From 7b858cfd3d604c0909765b4cdb3c0bcc6147cbb2 Mon Sep 17 00:00:00 2001 From: Bryan Petty Date: Thu, 10 Jun 1999 23:00:03 +0000 Subject: [PATCH] This commit was manufactured by cvs2svn to create tag 'WXDLLEXPORTLOCAL'. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/WXDLLEXPORTLOCAL@2756 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- .cvsignore | 32 - Makefile.am | 13 - acconfig.h | 576 - aclocal.m4 | 1064 -- config.guess | 951 -- config.sub | 955 -- configure.in | 2079 --- distrib/gtk/README.txt | 310 - distrib/gtk/Setup | 47 - distrib/gtk/copy_src | 775 - distrib/msw/bc.rsp | 3 - distrib/msw/cw.rsp | 109 - distrib/msw/docsrc.rsp | 97 - distrib/msw/generic.rsp | 727 - distrib/msw/glcanvas.rsp | 43 - distrib/msw/gtk.rsp | 97 - distrib/msw/makefile.rsp | 91 - distrib/msw/motif.rsp | 104 - distrib/msw/msw.rsp | 173 - distrib/msw/ogl.rsp | 72 - distrib/msw/stubs.rsp | 15 - distrib/msw/tardist | 108 - distrib/msw/tardist.bat | 117 - distrib/msw/tex2rtf.rsp | 27 - distrib/msw/user.rsp | 27 - distrib/msw/vc.rsp | 159 - distrib/msw/wx_hlp.rsp | 2 - distrib/msw/wx_html.rsp | 37 - distrib/msw/wx_pdf.rsp | 1 - distrib/msw/wx_word.rsp | 2 - distrib/msw/wxtree.rsp | 10 - distrib/msw/zipdist.bat | 77 - docs/bugs.txt | 54 - docs/changes.txt | 746 - docs/gpl.txt | 339 - docs/gtk/COPYING.LIB | 481 - docs/gtk/install.txt | 533 - docs/gtk/licence.txt | 56 - docs/gtk/makewxgtk | 11 - docs/gtk/readme.txt | 63 - docs/gtk/todo.txt | Bin 866 -> 0 bytes docs/html/faq.htm | 43 - docs/html/faqgen.htm | 232 - docs/html/faqgtk.htm | 47 - docs/html/faqmac.htm | 37 - docs/html/faqmot.htm | 90 - docs/html/faqmsw.htm | 174 - docs/html/gettext/gettext.htm | 4961 ------- docs/html/gettext/msgfmt.htm | 222 - docs/html/gettext/xgettext.htm | 144 - docs/html/index.htm | 267 - docs/html/logo.gif | Bin 4656 -> 0 bytes docs/index.htm | 37 - docs/latex/porting/back.gif | Bin 225 -> 0 bytes docs/latex/porting/books.bmp | Bin 1222 -> 0 bytes docs/latex/porting/books.gif | Bin 242 -> 0 bytes docs/latex/porting/bullet.bmp | Bin 198 -> 0 bytes docs/latex/porting/contents.gif | Bin 231 -> 0 bytes docs/latex/porting/forward.gif | Bin 109 -> 0 bytes docs/latex/porting/porting.hpj | 16 - docs/latex/porting/porting.tex | 498 - docs/latex/porting/tex2rtf.ini | 28 - docs/latex/porting/texhelp.sty | 289 - docs/latex/porting/up.gif | 1 - docs/latex/proplist/back.gif | Bin 226 -> 0 bytes docs/latex/proplist/body.tex | 106 - docs/latex/proplist/books.bmp | Bin 1222 -> 0 bytes docs/latex/proplist/books.gif | Bin 243 -> 0 bytes docs/latex/proplist/bullet.bmp | Bin 138 -> 0 bytes docs/latex/proplist/changes.tex | 27 - docs/latex/proplist/classes.tex | 1785 --- docs/latex/proplist/contents.gif | Bin 231 -> 0 bytes docs/latex/proplist/forward.gif | Bin 164 -> 0 bytes docs/latex/proplist/prop.tex | 47 - docs/latex/proplist/prop1.bmp | Bin 29238 -> 0 bytes docs/latex/proplist/prop1.eps | 539 - docs/latex/proplist/prop1.gif | Bin 3048 -> 0 bytes docs/latex/proplist/prop2.bmp | Bin 42526 -> 0 bytes docs/latex/proplist/prop2.eps | 664 - docs/latex/proplist/prop2.gif | Bin 4318 -> 0 bytes docs/latex/proplist/readme.txt | 39 - docs/latex/proplist/tex2rtf.ini | 21 - docs/latex/proplist/up.gif | Bin 137 -> 0 bytes docs/latex/proplist/wxprop.hpj | 17 - docs/latex/wx/.cvsignore | 13 - docs/latex/wx/accel.tex | 198 - docs/latex/wx/activevt.tex | 60 - docs/latex/wx/app.tex | 443 - docs/latex/wx/array.tex | 540 - docs/latex/wx/arrstrng.tex | 249 - docs/latex/wx/autoobj.tex | 201 - docs/latex/wx/back.gif | Bin 225 -> 0 bytes docs/latex/wx/bbutton.tex | 235 - docs/latex/wx/bitmap.tex | 711 - docs/latex/wx/bmpdatob.tex | 116 - docs/latex/wx/body.tex | 719 - docs/latex/wx/book1.bmp | Bin 566 -> 0 bytes docs/latex/wx/books.bmp | Bin 1222 -> 0 bytes docs/latex/wx/books.gif | Bin 242 -> 0 bytes docs/latex/wx/brush.tex | 365 - docs/latex/wx/bullet.bmp | Bin 198 -> 0 bytes docs/latex/wx/busycurs.tex | 44 - docs/latex/wx/button.tex | 138 - docs/latex/wx/calclevt.tex | 64 - docs/latex/wx/category.tex | 401 - docs/latex/wx/checkbox.tex | 108 - docs/latex/wx/checklst.tex | 107 - docs/latex/wx/choice.tex | 210 - docs/latex/wx/clasinfo.tex | 79 - docs/latex/wx/classes.tex | 213 - docs/latex/wx/clientdc.tex | 35 - docs/latex/wx/clipbrd.tex | 116 - docs/latex/wx/closeevt.tex | 99 - docs/latex/wx/cmdevent.tex | 187 - docs/latex/wx/cmdproc.tex | 110 - docs/latex/wx/colordlg.tex | 52 - docs/latex/wx/colour.tex | 302 - docs/latex/wx/combobox.tex | 322 - docs/latex/wx/command.tex | 89 - docs/latex/wx/conditn.tex | 65 - docs/latex/wx/config.tex | 711 - docs/latex/wx/contents.gif | Bin 231 -> 0 bytes docs/latex/wx/control.tex | 41 - docs/latex/wx/cpp.bmp | Bin 630 -> 0 bytes docs/latex/wx/critsect.tex | 58 - docs/latex/wx/crtslock.tex | 36 - docs/latex/wx/cursor.tex | 189 - docs/latex/wx/database.tex | 277 - docs/latex/wx/dataobj.tex | 88 - docs/latex/wx/date.tex | 356 - docs/latex/wx/datstrm.tex | 136 - docs/latex/wx/dc.tex | 736 - docs/latex/wx/ddeclint.tex | 72 - docs/latex/wx/ddeconn.tex | 202 - docs/latex/wx/ddeservr.tex | 52 - docs/latex/wx/debugcxt.tex | 275 - docs/latex/wx/dialog.tex | 352 - docs/latex/wx/dirdlg.tex | 90 - docs/latex/wx/docchfrm.tex | 92 - docs/latex/wx/docmanag.tex | 365 - docs/latex/wx/docmdich.tex | 93 - docs/latex/wx/docmdipr.tex | 65 - docs/latex/wx/docprfrm.tex | 64 - docs/latex/wx/doctempl.tex | 236 - docs/latex/wx/document.tex | 346 - docs/latex/wx/dropevt.tex | 80 - docs/latex/wx/dropsrc.tex | 92 - docs/latex/wx/droptrgt.tex | 77 - docs/latex/wx/eraseevt.tex | 52 - docs/latex/wx/event.tex | 145 - docs/latex/wx/evthand.tex | 305 - docs/latex/wx/expr.tex | 511 - docs/latex/wx/fildatob.tex | 42 - docs/latex/wx/fildrptg.tex | 66 - docs/latex/wx/file.tex | 267 - docs/latex/wx/filedlg.tex | 180 - docs/latex/wx/filehist.tex | 128 - docs/latex/wx/filetype.tex | 204 - docs/latex/wx/fltinstr.tex | 31 - docs/latex/wx/fltoutst.tex | 31 - docs/latex/wx/focusevt.tex | 38 - docs/latex/wx/font.tex | 294 - docs/latex/wx/fontdlg.tex | 195 - docs/latex/wx/fontlist.tex | 52 - docs/latex/wx/forward.gif | Bin 109 -> 0 bytes docs/latex/wx/frame.tex | 543 - docs/latex/wx/ftp.tex | 217 - docs/latex/wx/function.tex | 2273 --- docs/latex/wx/gauge.tex | 186 - docs/latex/wx/gdiobj.tex | 30 - docs/latex/wx/grid.tex | 595 - docs/latex/wx/grid1.bmp | Bin 68518 -> 0 bytes docs/latex/wx/grid1.eps | 771 - docs/latex/wx/grid1.gif | Bin 485 -> 0 bytes docs/latex/wx/hand1.bmp | Bin 454 -> 0 bytes docs/latex/wx/hash.tex | 122 - docs/latex/wx/hellow.bmp | Bin 55918 -> 0 bytes docs/latex/wx/hellow.gif | Bin 112 -> 0 bytes docs/latex/wx/hellox.bmp | Bin 64118 -> 0 bytes docs/latex/wx/hellox.gif | Bin 112 -> 0 bytes docs/latex/wx/helpinst.tex | 161 - docs/latex/wx/http.tex | 57 - docs/latex/wx/icon.tex | 383 - docs/latex/wx/idleevt.tex | 63 - docs/latex/wx/ignore.txt | 7 - docs/latex/wx/ilayout.tex | 135 - docs/latex/wx/image.tex | 673 - docs/latex/wx/imaglist.tex | 174 - docs/latex/wx/indlgevt.tex | 38 - docs/latex/wx/inputstr.tex | 98 - docs/latex/wx/ipvaddr.tex | 95 - docs/latex/wx/joyevent.tex | 122 - docs/latex/wx/joystick.tex | 298 - docs/latex/wx/keycode.tex | 84 - docs/latex/wx/keyevent.tex | 136 - docs/latex/wx/layalgor.tex | 145 - docs/latex/wx/layout.tex | 98 - docs/latex/wx/list.tex | 291 - docs/latex/wx/listbox.tex | 384 - docs/latex/wx/listctrl.tex | 598 - docs/latex/wx/listevt.tex | 91 - docs/latex/wx/locale.tex | 148 - docs/latex/wx/log.tex | 191 - docs/latex/wx/longlong.tex | 16 - docs/latex/wx/manual.tex | 137 - docs/latex/wx/mask.tex | 80 - docs/latex/wx/mdi.tex | 531 - docs/latex/wx/memorydc.tex | 61 - docs/latex/wx/menu.tex | 683 - docs/latex/wx/menuevt.tex | 57 - docs/latex/wx/menuitem.tex | 195 - docs/latex/wx/metafile.tex | 131 - docs/latex/wx/mimetype.tex | 151 - docs/latex/wx/minifram.tex | 114 - docs/latex/wx/minimald.tex | 45 - docs/latex/wx/mltchdlg.tex | 25 - docs/latex/wx/module.tex | 110 - docs/latex/wx/mouseevt.tex | 325 - docs/latex/wx/moveevt.tex | 42 - docs/latex/wx/msgdlg.tex | 68 - docs/latex/wx/mutex.tex | 145 - docs/latex/wx/mutexlck.tex | 43 - docs/latex/wx/node.tex | 56 - docs/latex/wx/notebook.tex | 269 - docs/latex/wx/noteevt.tex | 85 - docs/latex/wx/notifevt.tex | 52 - docs/latex/wx/object.tex | 213 - docs/latex/wx/outptstr.tex | 82 - docs/latex/wx/pagedlg.tex | 288 - docs/latex/wx/paintdc.tex | 40 - docs/latex/wx/paintevt.tex | 35 - docs/latex/wx/palette.tex | 169 - docs/latex/wx/panel.tex | 126 - docs/latex/wx/pantabv.tex | 73 - docs/latex/wx/pathlist.tex | 79 - docs/latex/wx/pen.tex | 410 - docs/latex/wx/plug.bmp | Bin 384 -> 0 bytes docs/latex/wx/point.tex | 41 - docs/latex/wx/postscpt.tex | 45 - docs/latex/wx/prevwin.tex | 188 - docs/latex/wx/print.tex | 995 -- docs/latex/wx/process.tex | 75 - docs/latex/wx/procevt.tex | 56 - docs/latex/wx/progdlg.tex | 96 - docs/latex/wx/protocol.tex | 106 - docs/latex/wx/prvdatob.tex | 79 - docs/latex/wx/prvtdrpt.tex | 35 - docs/latex/wx/psbox.tex | 520 - docs/latex/wx/query.tex | 210 - docs/latex/wx/qylayevt.tex | 122 - docs/latex/wx/radiobox.tex | 272 - docs/latex/wx/radiobut.tex | 107 - docs/latex/wx/realpoin.tex | 35 - docs/latex/wx/recrdset.tex | 603 - docs/latex/wx/rect.tex | 163 - docs/latex/wx/referenc.tex | 82 - docs/latex/wx/refs.bib | 59 - docs/latex/wx/region.tex | 297 - docs/latex/wx/sashevt.tex | 89 - docs/latex/wx/sashlayw.tex | 132 - docs/latex/wx/sashwin.tex | 204 - docs/latex/wx/sckaddr.tex | 80 - docs/latex/wx/screendc.tex | 59 - docs/latex/wx/scrolbar.tex | 299 - docs/latex/wx/scrolevt.tex | 75 - docs/latex/wx/scrolwin.tex | 339 - docs/latex/wx/settings.tex | 145 - docs/latex/wx/shelves.bmp | Bin 630 -> 0 bytes docs/latex/wx/size.tex | 70 - docs/latex/wx/sizeevt.tex | 41 - docs/latex/wx/slider.tex | 375 - docs/latex/wx/sngchdlg.tex | 98 - docs/latex/wx/socket.tex | 822 -- docs/latex/wx/spinbutt.tex | 164 - docs/latex/wx/splitevt.tex | 120 - docs/latex/wx/splitter.bmp | Bin 22 -> 0 bytes docs/latex/wx/splitter.eps | 301 - docs/latex/wx/splitter.gif | Bin 76432 -> 0 bytes docs/latex/wx/splitter.tex | 420 - docs/latex/wx/statbmp.tex | 96 - docs/latex/wx/statbox.tex | 76 - docs/latex/wx/stattext.tex | 84 - docs/latex/wx/statusbr.tex | 255 - docs/latex/wx/stream.tex | 351 - docs/latex/wx/strlist.tex | 78 - docs/latex/wx/strmbase.tex | 94 - docs/latex/wx/strmfile.tex | 123 - docs/latex/wx/strmmem.tex | 113 - docs/latex/wx/strmsock.tex | 52 - docs/latex/wx/strmzlib.tex | 44 - docs/latex/wx/sysclevt.tex | 44 - docs/latex/wx/tab.tex | 584 - docs/latex/wx/tabctrl.tex | 237 - docs/latex/wx/tabevent.tex | 41 - docs/latex/wx/tapp.tex | 56 - docs/latex/wx/taskbar.tex | 94 - docs/latex/wx/tbitmap.tex | 166 - docs/latex/wx/tcommdlg.tex | 213 - docs/latex/wx/tconfig.tex | 51 - docs/latex/wx/tconstr.tex | 174 - docs/latex/wx/tcontain.tex | 59 - docs/latex/wx/tcpclint.tex | 68 - docs/latex/wx/tcpconn.tex | 200 - docs/latex/wx/tcpservr.tex | 49 - docs/latex/wx/tdb.tex | 238 - docs/latex/wx/tdc.tex | 42 - docs/latex/wx/tdebug.tex | 122 - docs/latex/wx/tdelwin.tex | 133 - docs/latex/wx/tdialog.tex | 31 - docs/latex/wx/tdnd.tex | 102 - docs/latex/wx/tdocview.tex | 305 - docs/latex/wx/tempfile.tex | 103 - docs/latex/wx/tevent.tex | 337 - docs/latex/wx/tex2rtf.ini | 40 - docs/latex/wx/texhelp.sty | 301 - docs/latex/wx/texpr.tex | 203 - docs/latex/wx/text.tex | 585 - docs/latex/wx/textdlg.tex | 68 - docs/latex/wx/textfile.tex | 256 - docs/latex/wx/tfile.tex | 27 - docs/latex/wx/tfont.tex | 36 - docs/latex/wx/tgrid.tex | 40 - docs/latex/wx/tguide.tex | 51 - docs/latex/wx/thread.tex | 191 - docs/latex/wx/ti18n.tex | 51 - docs/latex/wx/timaglst.tex | 13 - docs/latex/wx/time.tex | 245 - docs/latex/wx/timer.tex | 63 - docs/latex/wx/tipc.tex | 188 - docs/latex/wx/tlistctl.tex | 6 - docs/latex/wx/tlog.tex | 143 - docs/latex/wx/tokenizr.tex | 64 - docs/latex/wx/toolbar.tex | 667 - docs/latex/wx/topics.tex | 44 - docs/latex/wx/tprint.tex | 62 - docs/latex/wx/treectrl.tex | 641 - docs/latex/wx/treeevt.tex | 71 - docs/latex/wx/tresourc.tex | 333 - docs/latex/wx/truntime.tex | 109 - docs/latex/wx/tscroll.tex | 90 - docs/latex/wx/tsplittr.tex | 63 - docs/latex/wx/tstream.tex | 89 - docs/latex/wx/tstring.tex | 261 - docs/latex/wx/tstyles.tex | 14 - docs/latex/wx/ttab.tex | 186 - docs/latex/wx/tthreads.tex | 43 - docs/latex/wx/ttoolbar.tex | 287 - docs/latex/wx/ttreectl.tex | 80 - docs/latex/wx/tusage.tex | 22 - docs/latex/wx/tvalidat.tex | 122 - docs/latex/wx/txtdatob.tex | 83 - docs/latex/wx/txtdrptg.tex | 64 - docs/latex/wx/up.gif | 1 - docs/latex/wx/upduievt.tex | 149 - docs/latex/wx/url.tex | 145 - docs/latex/wx/valgen.tex | 85 - docs/latex/wx/validatr.tex | 101 - docs/latex/wx/valtext.tex | 130 - docs/latex/wx/variant.tex | 444 - docs/latex/wx/view.tex | 182 - docs/latex/wx/wave.tex | 68 - docs/latex/wx/window.tex | 2226 --- docs/latex/wx/windowdc.tex | 37 - docs/latex/wx/wx.hpj | 17 - docs/latex/wx/wxPython.tex | 518 - docs/latex/wx/wxstring.tex | 981 -- docs/latex/wx/wxtab1.bmp | Bin 73718 -> 0 bytes docs/latex/wx/wxtab1.eps | 1086 -- docs/latex/wx/wxtab1.gif | Bin 112 -> 0 bytes docs/lgpl.txt | 517 - docs/licence.txt | 53 - docs/licendoc.txt | 60 - docs/motif/aix.txt | 17 - docs/motif/install.txt | 211 - docs/motif/issues.txt | 13 - docs/motif/makewxmotif | 11 - docs/motif/readme.txt | 7 - docs/motif/todo.txt | 98 - docs/msw/bc_ide.txt | 30 - docs/msw/install.txt | 405 - docs/msw/issues.txt | 29 - docs/msw/mingw32.txt | 32 - docs/msw/readme.txt | 5 - docs/msw/todo.txt | 141 - docs/preamble.txt | 49 - docs/readme.txt | 135 - docs/symbols.txt | 63 - docs/todo.txt | 52 - docs/word/odbc.doc | Bin 198656 -> 0 bytes docs/wxQt.html | 70 - include/.cvsignore | 2 - include/Makefile.am | 7 - include/wx/.cvsignore | 2 - include/wx/Makefile.am | 188 - include/wx/accel.h | 19 - include/wx/app.h | 98 - include/wx/arrimpl.cpp | 108 - include/wx/bitmap.h | 19 - include/wx/bmpbuttn.h | 18 - include/wx/brush.h | 19 - include/wx/buffer.h | 127 - include/wx/button.h | 19 - include/wx/caret.h | 186 - include/wx/checkbox.h | 19 - include/wx/checklst.h | 19 - include/wx/choicdlg.h | 7 - include/wx/choice.h | 19 - include/wx/clipbrd.h | 19 - include/wx/cmndata.h | 386 - include/wx/colordlg.h | 24 - include/wx/colour.h | 21 - include/wx/combobox.h | 19 - include/wx/confbase.h | 320 - include/wx/config.h | 17 - include/wx/control.h | 22 - include/wx/cursor.h | 19 - include/wx/dataobj.h | 141 - include/wx/date.h | 144 - include/wx/datstrm.h | 48 - include/wx/db.h | 378 - include/wx/dbtable.h | 165 - include/wx/dc.h | 545 - include/wx/dcclient.h | 19 - include/wx/dcmemory.h | 19 - include/wx/dcprint.h | 9 - include/wx/dcps.h | 7 - include/wx/dcscreen.h | 19 - include/wx/dde.h | 19 - include/wx/debug.h | 124 - include/wx/defs.h | 1411 -- include/wx/dialog.h | 19 - include/wx/dirdlg.h | 23 - include/wx/dnd.h | 21 - include/wx/docmdi.h | 83 - include/wx/docview.h | 581 - include/wx/dragimag.h | 23 - include/wx/dynlib.h | 152 - include/wx/event.h | 1585 --- include/wx/expr.h | 126 - include/wx/file.h | 182 - include/wx/fileconf.h | 353 - include/wx/filedlg.h | 20 - include/wx/filefn.h | 239 - include/wx/font.h | 19 - include/wx/fontdlg.h | 29 - include/wx/frame.h | 19 - include/wx/gauge.h | 19 - include/wx/gdicmn.h | 453 - include/wx/gdiobj.h | 19 - include/wx/generic/.cvsignore | 2 - include/wx/generic/Makefile.am | 38 - include/wx/generic/caret.h | 68 - include/wx/generic/choicdgg.h | 102 - include/wx/generic/colrdlgg.h | 118 - include/wx/generic/dcpsg.h | 280 - include/wx/generic/dirdlgg.h | 121 - include/wx/generic/error.xpm | 591 - include/wx/generic/fontdlgg.h | 95 - include/wx/generic/gridg.h | 386 - include/wx/generic/helpext.h | 82 - include/wx/generic/helphtml.h | 130 - include/wx/generic/helpxlp.h | 127 - include/wx/generic/imaglist.h | 78 - include/wx/generic/info.xpm | 532 - include/wx/generic/laywin.h | 198 - include/wx/generic/listctrl.h | 651 - include/wx/generic/msgdlgg.h | 56 - include/wx/generic/notebook.h | 203 - include/wx/generic/panelg.h | 85 - include/wx/generic/printps.h | 66 - include/wx/generic/prntdlgg.h | 191 - include/wx/generic/progdlgg.h | 92 - include/wx/generic/question.xpm | 155 - include/wx/generic/sashwin.h | 218 - include/wx/generic/scrolwin.h | 133 - include/wx/generic/splitter.h | 338 - include/wx/generic/statusbr.h | 94 - include/wx/generic/tabg.h | 351 - include/wx/generic/textdlgg.h | 51 - include/wx/generic/treectrl.h | 503 - include/wx/generic/warning.xpm | 324 - include/wx/grid.h | 11 - include/wx/gtk/.cvsignore | 2 - include/wx/gtk/Makefile.am | 65 - include/wx/gtk/accel.h | 105 - include/wx/gtk/app.h | 154 - include/wx/gtk/bitmap.h | 100 - include/wx/gtk/bmpbuttn.h | 94 - include/wx/gtk/brush.h | 64 - include/wx/gtk/button.h | 69 - include/wx/gtk/checkbox.h | 76 - include/wx/gtk/checklst.h | 56 - include/wx/gtk/choice.h | 99 - include/wx/gtk/clipbrd.h | 115 - include/wx/gtk/colour.h | 93 - include/wx/gtk/combobox.h | 128 - include/wx/gtk/control.h | 55 - include/wx/gtk/cursor.h | 46 - include/wx/gtk/dataobj.h | 258 - include/wx/gtk/dc.h | 156 - include/wx/gtk/dcclient.h | 153 - include/wx/gtk/dcmemory.h | 49 - include/wx/gtk/dcps.h | 142 - include/wx/gtk/dcscreen.h | 47 - include/wx/gtk/dialog.h | 116 - include/wx/gtk/dnd.h | 235 - include/wx/gtk/filedlg.h | 113 - include/wx/gtk/font.h | 123 - include/wx/gtk/frame.h | 141 - include/wx/gtk/gauge.h | 82 - include/wx/gtk/gdiobj.h | 37 - include/wx/gtk/icon.h | 56 - include/wx/gtk/joystick.h | 102 - include/wx/gtk/listbox.h | 128 - include/wx/gtk/mdi.h | 178 - include/wx/gtk/menu.h | 195 - include/wx/gtk/menuitem.h | 97 - include/wx/gtk/minifram.h | 64 - include/wx/gtk/notebook.h | 154 - include/wx/gtk/palette.h | 59 - include/wx/gtk/pen.h | 66 - include/wx/gtk/radiobox.h | 107 - include/wx/gtk/radiobut.h | 73 - include/wx/gtk/region.h | 137 - include/wx/gtk/scrolbar.h | 90 - include/wx/gtk/settings.h | 41 - include/wx/gtk/slider.h | 92 - include/wx/gtk/spinbutt.h | 98 - include/wx/gtk/statbmp.h | 60 - include/wx/gtk/statbox.h | 59 - include/wx/gtk/statline.h | 55 - include/wx/gtk/stattext.h | 60 - include/wx/gtk/tbargtk.h | 123 - include/wx/gtk/textctrl.h | 167 - include/wx/gtk/timer.h | 71 - include/wx/gtk/tooltip.h | 56 - include/wx/gtk/treectrl.h | 492 - include/wx/gtk/wave.h | 63 - include/wx/gtk/win_gtk.h | 96 - include/wx/gtk/window.h | 239 - include/wx/gtk1/.cvsignore | 2 - include/wx/gtk1/Makefile.am | 65 - include/wx/gtk1/accel.h | 105 - include/wx/gtk1/app.h | 154 - include/wx/gtk1/bitmap.h | 100 - include/wx/gtk1/bmpbuttn.h | 94 - include/wx/gtk1/brush.h | 64 - include/wx/gtk1/button.h | 69 - include/wx/gtk1/checkbox.h | 76 - include/wx/gtk1/checklst.h | 56 - include/wx/gtk1/choice.h | 99 - include/wx/gtk1/clipbrd.h | 115 - include/wx/gtk1/colour.h | 93 - include/wx/gtk1/combobox.h | 128 - include/wx/gtk1/control.h | 55 - include/wx/gtk1/cursor.h | 46 - include/wx/gtk1/dataobj.h | 258 - include/wx/gtk1/dc.h | 156 - include/wx/gtk1/dcclient.h | 153 - include/wx/gtk1/dcmemory.h | 49 - include/wx/gtk1/dcps.h | 142 - include/wx/gtk1/dcscreen.h | 47 - include/wx/gtk1/dialog.h | 116 - include/wx/gtk1/dnd.h | 235 - include/wx/gtk1/filedlg.h | 113 - include/wx/gtk1/font.h | 123 - include/wx/gtk1/frame.h | 141 - include/wx/gtk1/gauge.h | 82 - include/wx/gtk1/gdiobj.h | 37 - include/wx/gtk1/icon.h | 56 - include/wx/gtk1/joystick.h | 102 - include/wx/gtk1/listbox.h | 128 - include/wx/gtk1/mdi.h | 178 - include/wx/gtk1/menu.h | 195 - include/wx/gtk1/menuitem.h | 97 - include/wx/gtk1/minifram.h | 64 - include/wx/gtk1/notebook.h | 154 - include/wx/gtk1/palette.h | 59 - include/wx/gtk1/pen.h | 66 - include/wx/gtk1/radiobox.h | 107 - include/wx/gtk1/radiobut.h | 73 - include/wx/gtk1/region.h | 137 - include/wx/gtk1/scrolbar.h | 90 - include/wx/gtk1/settings.h | 41 - include/wx/gtk1/slider.h | 92 - include/wx/gtk1/spinbutt.h | 98 - include/wx/gtk1/statbmp.h | 60 - include/wx/gtk1/statbox.h | 59 - include/wx/gtk1/statline.h | 55 - include/wx/gtk1/stattext.h | 60 - include/wx/gtk1/tbargtk.h | 123 - include/wx/gtk1/textctrl.h | 167 - include/wx/gtk1/timer.h | 71 - include/wx/gtk1/tooltip.h | 56 - include/wx/gtk1/treectrl.h | 492 - include/wx/gtk1/wave.h | 63 - include/wx/gtk1/win_gtk.h | 96 - include/wx/gtk1/window.h | 239 - include/wx/hash.h | 100 - include/wx/help.h | 19 - include/wx/helpbase.h | 57 - include/wx/helphtml.h | 7 - include/wx/helpwin.h | 7 - include/wx/helpxlp.h | 7 - include/wx/icon.h | 25 - include/wx/image.h | 255 - include/wx/imaggif.h | 46 - include/wx/imaglist.h | 23 - include/wx/intl.h | 153 - include/wx/ioswrap.h | 20 - include/wx/ipcbase.h | 119 - include/wx/joystick.h | 17 - include/wx/layout.h | 351 - include/wx/laywin.h | 7 - include/wx/list.h | 521 - include/wx/listbox.h | 19 - include/wx/listctrl.h | 23 - include/wx/listimpl.cpp | 24 - include/wx/log.h | 475 - include/wx/longlong.h | 338 - include/wx/mac/accel.h | 80 - include/wx/mac/app.h | 173 - include/wx/mac/bitmap.h | 197 - include/wx/mac/bmpbuttn.h | 83 - include/wx/mac/brush.h | 83 - include/wx/mac/button.h | 53 - include/wx/mac/checkbox.h | 81 - include/wx/mac/checklst.h | 49 - include/wx/mac/choice.h | 72 - include/wx/mac/clipbrd.h | 104 - include/wx/mac/colordlg.h | 46 - include/wx/mac/colour.h | 97 - include/wx/mac/combobox.h | 84 - include/wx/mac/control.h | 50 - include/wx/mac/cursor.h | 75 - include/wx/mac/dc.h | 374 - include/wx/mac/dcclient.h | 125 - include/wx/mac/dcmemory.h | 38 - include/wx/mac/dcprint.h | 34 - include/wx/mac/dcscreen.h | 39 - include/wx/mac/dialog.h | 97 - include/wx/mac/dirdlg.h | 49 - include/wx/mac/dnd.h | 238 - include/wx/mac/filedlg.h | 89 - include/wx/mac/font.h | 89 - include/wx/mac/fontdlg.h | 46 - include/wx/mac/frame.h | 156 - include/wx/mac/gauge.h | 69 - include/wx/mac/gdiobj.h | 48 - include/wx/mac/helpxxxx.h | 52 - include/wx/mac/icon.h | 106 - include/wx/mac/imaglist.h | 145 - include/wx/mac/joystick.h | 93 - include/wx/mac/listbox.h | 97 - include/wx/mac/listctrl.h | 451 - include/wx/mac/macsock.h | 1059 -- include/wx/mac/mdi.h | 164 - include/wx/mac/menu.h | 162 - include/wx/mac/menuitem.h | 95 - include/wx/mac/metafile.h | 101 - include/wx/mac/minifram.h | 46 - include/wx/mac/msgdlg.h | 50 - include/wx/mac/notebook.h | 206 - include/wx/mac/palette.h | 64 - include/wx/mac/pen.h | 101 - include/wx/mac/print.h | 56 - include/wx/mac/printdlg.h | 70 - include/wx/mac/private.h | 21 - include/wx/mac/radiobox.h | 88 - include/wx/mac/radiobut.h | 90 - include/wx/mac/region.h | 137 - include/wx/mac/scrolbar.h | 68 - include/wx/mac/settings.h | 133 - include/wx/mac/setup.h | 129 - include/wx/mac/slider.h | 91 - include/wx/mac/spinbutt.h | 97 - include/wx/mac/statbmp.h | 64 - include/wx/mac/statbox.h | 57 - include/wx/mac/stattext.h | 56 - include/wx/mac/statusbr.h | 54 - include/wx/mac/tabctrl.h | 138 - include/wx/mac/taskbar.h | 49 - include/wx/mac/textctrl.h | 140 - include/wx/mac/timer.h | 64 - include/wx/mac/toolbar.h | 77 - include/wx/mac/treectrl.h | 295 - include/wx/mac/wave.h | 44 - include/wx/mac/window.h | 592 - include/wx/matrix.h | 144 - include/wx/mdi.h | 19 - include/wx/memory.h | 302 - include/wx/menu.h | 19 - include/wx/menuitem.h | 19 - include/wx/metafile.h | 9 - include/wx/mimetype.h | 160 - include/wx/minifram.h | 17 - include/wx/module.h | 58 - include/wx/motif/.cvsignore | 2 - include/wx/motif/Makefile.am | 76 - include/wx/motif/accel.h | 98 - include/wx/motif/app.h | 179 - include/wx/motif/bitmap.h | 211 - include/wx/motif/bmpbuttn.h | 93 - include/wx/motif/brush.h | 79 - include/wx/motif/button.h | 55 - include/wx/motif/checkbox.h | 91 - include/wx/motif/checklst.h | 47 - include/wx/motif/choice.h | 91 - include/wx/motif/clipbrd.h | 167 - include/wx/motif/colordlg.h | 46 - include/wx/motif/colour.h | 92 - include/wx/motif/combobox.h | 97 - include/wx/motif/control.h | 56 - include/wx/motif/cursor.h | 84 - include/wx/motif/dataobj.h | 174 - include/wx/motif/dc.h | 183 - include/wx/motif/dcclient.h | 183 - include/wx/motif/dcmemory.h | 43 - include/wx/motif/dcprint.h | 34 - include/wx/motif/dcscreen.h | 48 - include/wx/motif/dialog.h | 119 - include/wx/motif/dirdlg.h | 49 - include/wx/motif/dnd.h | 178 - include/wx/motif/filedlg.h | 95 - include/wx/motif/font.h | 133 - include/wx/motif/fontdlg.h | 46 - include/wx/motif/frame.h | 209 - include/wx/motif/gauge.h | 73 - include/wx/motif/gdiobj.h | 48 - include/wx/motif/helpxxxx.h | 52 - include/wx/motif/icon.h | 70 - include/wx/motif/joystick.h | 93 - include/wx/motif/listbox.h | 112 - include/wx/motif/mdi.h | 248 - include/wx/motif/menu.h | 246 - include/wx/motif/menuitem.h | 115 - include/wx/motif/metafile.h | 101 - include/wx/motif/minifram.h | 46 - include/wx/motif/msgdlg.h | 50 - include/wx/motif/palette.h | 81 - include/wx/motif/pen.h | 100 - include/wx/motif/print.h | 56 - include/wx/motif/printdlg.h | 70 - include/wx/motif/private.h | 76 - include/wx/motif/radiobox.h | 100 - include/wx/motif/radiobut.h | 94 - include/wx/motif/region.h | 141 - include/wx/motif/scrolbar.h | 73 - include/wx/motif/settings.h | 133 - include/wx/motif/setup0.h | 632 - include/wx/motif/slider.h | 101 - include/wx/motif/spinbutt.h | 102 - include/wx/motif/statbmp.h | 68 - include/wx/motif/statbox.h | 75 - include/wx/motif/stattext.h | 57 - include/wx/motif/tabctrl.h | 138 - include/wx/motif/taskbar.h | 49 - include/wx/motif/textctrl.h | 179 - include/wx/motif/timer.h | 59 - include/wx/motif/toolbar.h | 94 - include/wx/motif/wave.h | 44 - include/wx/motif/window.h | 353 - include/wx/msgdlg.h | 19 - include/wx/mstream.h | 34 - include/wx/msw/.cvsignore | 3 - include/wx/msw/Makefile.am | 10 - include/wx/msw/accel.h | 81 - include/wx/msw/app.h | 169 - include/wx/msw/bitmap.h | 214 - include/wx/msw/blank.cur | Bin 326 -> 0 bytes include/wx/msw/bmpbuttn.h | 85 - include/wx/msw/brush.h | 78 - include/wx/msw/bullseye.cur | Bin 326 -> 0 bytes include/wx/msw/button.h | 61 - include/wx/msw/caret.h | 65 - include/wx/msw/checkbox.h | 96 - include/wx/msw/checklst.h | 73 - include/wx/msw/child.ico | Bin 766 -> 0 bytes include/wx/msw/choice.h | 82 - include/wx/msw/clipbrd.h | 113 - include/wx/msw/clock.cur | Bin 326 -> 0 bytes include/wx/msw/colordlg.h | 45 - include/wx/msw/colour.h | 94 - include/wx/msw/combobox.h | 83 - include/wx/msw/control.h | 86 - include/wx/msw/ctl3d/ctl3d.h | 61 - include/wx/msw/curico.h | 22 - include/wx/msw/curicop.h | 63 - include/wx/msw/cursor.h | 68 - include/wx/msw/dc.h | 171 - include/wx/msw/dcmemory.h | 35 - include/wx/msw/dcprint.h | 54 - include/wx/msw/dcscreen.h | 39 - include/wx/msw/dde.h | 153 - include/wx/msw/dialog.h | 141 - include/wx/msw/dib.h | 26 - include/wx/msw/dibutils.h | 132 - include/wx/msw/dirdlg.h | 49 - include/wx/msw/disable.bmp | Bin 630 -> 0 bytes include/wx/msw/dragimag.h | 189 - include/wx/msw/filedlg.h | 109 - include/wx/msw/font.h | 101 - include/wx/msw/fontdlg.h | 46 - include/wx/msw/frame.h | 211 - include/wx/msw/gauge.h | 30 - include/wx/msw/gauge95.h | 80 - include/wx/msw/gaugemsw.h | 80 - include/wx/msw/gdiobj.h | 67 - include/wx/msw/hand.cur | Bin 326 -> 0 bytes include/wx/msw/heart.cur | Bin 326 -> 0 bytes include/wx/msw/helpwin.h | 54 - include/wx/msw/icon.h | 112 - include/wx/msw/imaglist.h | 226 - include/wx/msw/iniconf.h | 111 - include/wx/msw/joystick.h | 93 - include/wx/msw/listctrl.h | 470 - include/wx/msw/magnif1.cur | Bin 326 -> 0 bytes include/wx/msw/mdi.h | 206 - include/wx/msw/mdi.ico | Bin 766 -> 0 bytes include/wx/msw/menu.h | 273 - include/wx/msw/menuitem.h | 100 - include/wx/msw/metafile.h | 179 - include/wx/msw/minifram.h | 46 - include/wx/msw/msgdlg.h | 49 - include/wx/msw/msvcrt.h | 52 - include/wx/msw/noentry.cur | Bin 326 -> 0 bytes include/wx/msw/ole/automtn.h | 94 - include/wx/msw/ole/dataobj.h | 132 - include/wx/msw/ole/dropsrc.h | 73 - include/wx/msw/ole/droptgt.h | 111 - include/wx/msw/ole/oleutils.h | 146 - include/wx/msw/ole/uuid.h | 91 - include/wx/msw/palette.h | 65 - include/wx/msw/pbrush.cur | Bin 326 -> 0 bytes include/wx/msw/pen.h | 98 - include/wx/msw/pencil.cur | Bin 326 -> 0 bytes include/wx/msw/pnghand.h | 37 - include/wx/msw/pngread.h | 294 - include/wx/msw/pntleft.cur | Bin 326 -> 0 bytes include/wx/msw/pntright.cur | Bin 326 -> 0 bytes include/wx/msw/printdlg.h | 72 - include/wx/msw/printwin.h | 66 - include/wx/msw/private.h | 267 - include/wx/msw/query.cur | Bin 326 -> 0 bytes include/wx/msw/radiobox.h | 117 - include/wx/msw/radiobut.h | 93 - include/wx/msw/regconf.h | 113 - include/wx/msw/region.h | 145 - include/wx/msw/registry.h | 216 - include/wx/msw/roller.cur | Bin 326 -> 0 bytes include/wx/msw/scrolbar.h | 91 - include/wx/msw/settings.h | 129 - include/wx/msw/setup0.h | 319 - include/wx/msw/size.cur | Bin 326 -> 0 bytes include/wx/msw/slider.h | 30 - include/wx/msw/slider95.h | 109 - include/wx/msw/slidrmsw.h | 109 - include/wx/msw/spinbutt.h | 113 - include/wx/msw/statbmp.h | 92 - include/wx/msw/statbox.h | 70 - include/wx/msw/statbr95.h | 55 - include/wx/msw/stattext.h | 65 - include/wx/msw/std.ico | Bin 766 -> 0 bytes include/wx/msw/tabctrl.h | 145 - include/wx/msw/taskbar.h | 104 - include/wx/msw/tbar95.h | 94 - include/wx/msw/tbarmsw.h | 124 - include/wx/msw/textctrl.h | 206 - include/wx/msw/timer.h | 62 - include/wx/msw/tooltip.h | 48 - include/wx/msw/treectrl.h | 552 - include/wx/msw/watch1.cur | Bin 326 -> 0 bytes include/wx/msw/wave.h | 48 - include/wx/msw/window.h | 435 - include/wx/msw/winundef.h | 204 - include/wx/msw/wx.rc | 122 - include/wx/msw/xpmhand.h | 51 - include/wx/notebook.h | 111 - include/wx/object.h | 289 - include/wx/objstrm.h | 83 - include/wx/odbc.h | 339 - include/wx/ownerdrw.h | 138 - include/wx/palette.h | 19 - include/wx/panel.h | 7 - include/wx/paper.h | 114 - include/wx/pen.h | 19 - include/wx/pnghand.h | 17 - include/wx/print.h | 30 - include/wx/printdlg.h | 30 - include/wx/prntbase.h | 371 - include/wx/process.h | 71 - include/wx/progdlg.h | 7 - include/wx/prop.h | 340 - include/wx/propform.h | 302 - include/wx/proplist.h | 561 - include/wx/protocol/.cvsignore | 2 - include/wx/protocol/Makefile.am | 9 - include/wx/protocol/file.h | 35 - include/wx/protocol/ftp.h | 74 - include/wx/protocol/http.h | 48 - include/wx/protocol/protocol.h | 79 - include/wx/qt/app.h | 153 - include/wx/qt/bitmap.h | 198 - include/wx/qt/bmpbuttn.h | 83 - include/wx/qt/brush.h | 86 - include/wx/qt/button.h | 53 - include/wx/qt/checkbox.h | 81 - include/wx/qt/choice.h | 72 - include/wx/qt/colour.h | 68 - include/wx/qt/combobox.h | 78 - include/wx/qt/control.h | 50 - include/wx/qt/cursor.h | 75 - include/wx/qt/dc.h | 375 - include/wx/qt/dcclient.h | 100 - include/wx/qt/dcmemory.h | 38 - include/wx/qt/dcscreen.h | 39 - include/wx/qt/dialog.h | 97 - include/wx/qt/dirdlg.h | 47 - include/wx/qt/dnd.h | 239 - include/wx/qt/filedlg.h | 71 - include/wx/qt/font.h | 88 - include/wx/qt/frame.h | 154 - include/wx/qt/gauge.h | 69 - include/wx/qt/gdiobj.h | 48 - include/wx/qt/icon.h | 107 - include/wx/qt/joystick.h | 93 - include/wx/qt/listbox.h | 97 - include/wx/qt/mdi.h | 160 - include/wx/qt/menu.h | 157 - include/wx/qt/notebook.h | 202 - include/wx/qt/palette.h | 66 - include/wx/qt/pen.h | 102 - include/wx/qt/radiobox.h | 88 - include/wx/qt/radiobut.h | 92 - include/wx/qt/region.h | 140 - include/wx/qt/scrolbar.h | 68 - include/wx/qt/settings.h | 129 - include/wx/qt/slider.h | 91 - include/wx/qt/statbmp.h | 64 - include/wx/qt/statbox.h | 57 - include/wx/qt/stattext.h | 56 - include/wx/qt/tbargtk.h | 139 - include/wx/qt/textctrl.h | 140 - include/wx/qt/timer.h | 64 - include/wx/qt/window.h | 547 - include/wx/radiobox.h | 19 - include/wx/radiobut.h | 19 - include/wx/region.h | 19 - include/wx/resource.h | 194 - include/wx/sashwin.h | 7 - include/wx/sckaddr.h | 136 - include/wx/sckint.h | 154 - include/wx/sckipc.h | 133 - include/wx/sckstrm.h | 65 - include/wx/scrolbar.h | 19 - include/wx/scrolwin.h | 7 - include/wx/serbase.h | 67 - include/wx/settings.h | 123 - include/wx/setup.h | 26 - include/wx/slider.h | 19 - include/wx/socket.h | 280 - include/wx/spinbutt.h | 19 - include/wx/splitter.h | 7 - include/wx/statbmp.h | 19 - include/wx/statbox.h | 19 - include/wx/statline.h | 19 - include/wx/stattext.h | 19 - include/wx/statusbr.h | 7 - include/wx/stream.h | 261 - include/wx/string.h | 1063 -- include/wx/stubs/accel.h | 80 - include/wx/stubs/app.h | 152 - include/wx/stubs/bitmap.h | 197 - include/wx/stubs/bmpbuttn.h | 83 - include/wx/stubs/brush.h | 83 - include/wx/stubs/button.h | 53 - include/wx/stubs/checkbox.h | 81 - include/wx/stubs/checklst.h | 47 - include/wx/stubs/choice.h | 72 - include/wx/stubs/clipbrd.h | 104 - include/wx/stubs/colordlg.h | 46 - include/wx/stubs/colour.h | 97 - include/wx/stubs/combobox.h | 84 - include/wx/stubs/control.h | 50 - include/wx/stubs/cursor.h | 75 - include/wx/stubs/dc.h | 374 - include/wx/stubs/dcclient.h | 125 - include/wx/stubs/dcmemory.h | 38 - include/wx/stubs/dcprint.h | 34 - include/wx/stubs/dcscreen.h | 39 - include/wx/stubs/dialog.h | 97 - include/wx/stubs/dirdlg.h | 49 - include/wx/stubs/dnd.h | 238 - include/wx/stubs/filedlg.h | 89 - include/wx/stubs/font.h | 89 - include/wx/stubs/fontdlg.h | 46 - include/wx/stubs/frame.h | 156 - include/wx/stubs/gauge.h | 69 - include/wx/stubs/gdiobj.h | 48 - include/wx/stubs/helpxxxx.h | 52 - include/wx/stubs/icon.h | 106 - include/wx/stubs/imaglist.h | 145 - include/wx/stubs/joystick.h | 93 - include/wx/stubs/listbox.h | 97 - include/wx/stubs/listctrl.h | 451 - include/wx/stubs/mdi.h | 164 - include/wx/stubs/menu.h | 172 - include/wx/stubs/menuitem.h | 95 - include/wx/stubs/metafile.h | 101 - include/wx/stubs/minifram.h | 46 - include/wx/stubs/msgdlg.h | 50 - include/wx/stubs/notebook.h | 209 - include/wx/stubs/palette.h | 64 - include/wx/stubs/pen.h | 101 - include/wx/stubs/print.h | 56 - include/wx/stubs/printdlg.h | 70 - include/wx/stubs/private.h | 21 - include/wx/stubs/radiobox.h | 88 - include/wx/stubs/radiobut.h | 90 - include/wx/stubs/region.h | 137 - include/wx/stubs/scrolbar.h | 68 - include/wx/stubs/settings.h | 133 - include/wx/stubs/setup.h | 148 - include/wx/stubs/slider.h | 91 - include/wx/stubs/spinbutt.h | 97 - include/wx/stubs/statbmp.h | 64 - include/wx/stubs/statbox.h | 57 - include/wx/stubs/stattext.h | 56 - include/wx/stubs/statusbr.h | 54 - include/wx/stubs/tabctrl.h | 138 - include/wx/stubs/taskbar.h | 49 - include/wx/stubs/textctrl.h | 167 - include/wx/stubs/timer.h | 64 - include/wx/stubs/toolbar.h | 77 - include/wx/stubs/treectrl.h | 295 - include/wx/stubs/wave.h | 44 - include/wx/stubs/window.h | 584 - include/wx/tab.h | 7 - include/wx/tabctrl.h | 16 - include/wx/taskbar.h | 17 - include/wx/tbar95.h | 13 - include/wx/tbarbase.h | 256 - include/wx/tbarmsw.h | 13 - include/wx/tbarsmpl.h | 81 - include/wx/textctrl.h | 19 - include/wx/textdlg.h | 7 - include/wx/textfile.h | 140 - include/wx/thread.h | 400 - include/wx/time.h | 112 - include/wx/timer.h | 19 - include/wx/tokenzr.h | 57 - include/wx/toolbar.h | 27 - include/wx/tooltip.h | 19 - include/wx/treectrl.h | 23 - include/wx/types.h | 97 - include/wx/unix/.cvsignore | 2 - include/wx/unix/Makefile.am | 9 - include/wx/unix/execute.h | 32 - include/wx/url.h | 75 - include/wx/utils.h | 368 - include/wx/valgen.h | 58 - include/wx/validate.h | 90 - include/wx/valtext.h | 81 - include/wx/variant.h | 245 - include/wx/version.h | 25 - include/wx/wave.h | 13 - include/wx/wfstream.h | 81 - include/wx/window.h | 817 -- include/wx/wx.h | 83 - include/wx/wx_cw.h | 38 - include/wx/wx_cw_cm.h | 45 - include/wx/wx_cw_d.h | 38 - include/wx/wxchar.h | 555 - include/wx/wxexpr.h | 280 - include/wx/wxprec.h | 39 - include/wx/xpmhand.h | 11 - include/wx/zstream.h | 56 - include/wx_cw.pch | 16 - include/wx_cw.pch++ | 19 - include/wx_cw_d.pch | 17 - include/wx_cw_d.pch++ | 20 - install-sh | 250 - lib/.cvsignore | 3 - lib/dummy | 1 - locale/Makefile | 23 - locale/cs.mo | Bin 22978 -> 0 bytes locale/cs.po | 1411 -- locale/cz.mo | Bin 23320 -> 0 bytes locale/cz.po | 1411 -- locale/de.po | 1634 --- locale/wxstd.po | 1667 --- ltconfig | 2101 --- ltmain.sh | 3079 ---- misc/.cvsignore | 32 - misc/Makefile.am | 7 - misc/afm/.cvsignore | 32 - misc/afm/Cour.afm | 341 - misc/afm/CourBo.afm | 341 - misc/afm/CourBoO.afm | 341 - misc/afm/CourO.afm | 341 - misc/afm/Helv.afm | 435 - misc/afm/HelvBo.afm | 431 - misc/afm/HelvBoO.afm | 429 - misc/afm/HelvO.afm | 428 - misc/afm/Makefile.am | 21 - misc/afm/TimesBo.afm | 454 - misc/afm/TimesBoO.afm | 438 - misc/afm/TimesO.afm | 450 - misc/afm/TimesRo.afm | 443 - misc/gs_afm/.cvsignore | 32 - misc/gs_afm/Cour.afm | 255 - misc/gs_afm/CourBo.afm | 255 - misc/gs_afm/CourBoO.afm | 255 - misc/gs_afm/CourO.afm | 255 - misc/gs_afm/Helv.afm | 1257 -- misc/gs_afm/HelvBo.afm | 1257 -- misc/gs_afm/HelvBoO.afm | 1257 -- misc/gs_afm/HelvO.afm | 1257 -- misc/gs_afm/Makefile.am | 21 - misc/gs_afm/TimesBo.afm | 1257 -- misc/gs_afm/TimesBoO.afm | 1253 -- misc/gs_afm/TimesO.afm | 1253 -- misc/gs_afm/TimesRo.afm | 1257 -- missing | 188 - mkinstalldirs | 40 - samples/Makefile.am | 24 - samples/bombs/.cvsignore | 2 - samples/bombs/Makefile.am | 7 - samples/bombs/bombs.bmp | Bin 654 -> 0 bytes samples/bombs/bombs.cpp | 252 - samples/bombs/bombs.def | 14 - samples/bombs/bombs.h | 119 - samples/bombs/bombs.ico | Bin 766 -> 0 bytes samples/bombs/bombs.rc | 3 - samples/bombs/bombs.xpm | 44 - samples/bombs/bombs1.cpp | 204 - samples/bombs/game.cpp | 105 - samples/bombs/game.h | 42 - samples/bombs/makefile.b32 | 16 - samples/bombs/makefile.bcc | 19 - samples/bombs/makefile.dos | 18 - samples/bombs/makefile.g95 | 16 - samples/bombs/makefile.unx | 17 - samples/bombs/makefile.vc | 18 - samples/bombs/makefile.wat | 15 - samples/bombs/readme.txt | 78 - samples/caret/.cvsignore | 2 - samples/caret/Makefile.am | 7 - samples/caret/caret.cpp | 390 - samples/caret/caret.def | 7 - samples/caret/caret.rc | 2 - samples/caret/makefile.b32 | 16 - samples/caret/makefile.bcc | 19 - samples/caret/makefile.dos | 17 - samples/caret/makefile.g95 | 16 - samples/caret/makefile.twn | 43 - samples/caret/makefile.unx | 17 - samples/caret/makefile.vc | 18 - samples/caret/makefile.wat | 15 - samples/caret/mondrian.xpm | 44 - samples/checklst/.cvsignore | 2 - samples/checklst/Makefile.am | 7 - samples/checklst/checklst.cpp | 261 - samples/checklst/checklst.def | 8 - samples/checklst/checklst.rc | 1 - samples/checklst/makefile.b32 | 16 - samples/checklst/makefile.dos | 17 - samples/checklst/makefile.g95 | 16 - samples/checklst/makefile.vc | 18 - samples/checklst/makefile.wat | 15 - samples/checklst/mondrian.xpm | 44 - samples/config/.cvsignore | 2 - samples/config/Makefile.am | 7 - samples/config/conftest.cpp | 240 - samples/config/conftest.def | 7 - samples/config/conftest.rc | 2 - samples/config/makefile.b32 | 16 - samples/config/makefile.bcc | 19 - samples/config/makefile.dos | 17 - samples/config/makefile.g95 | 16 - samples/config/makefile.unx | 17 - samples/config/makefile.vc | 18 - samples/config/makefile.wat | 15 - samples/controls/.cvsignore | 2 - samples/controls/Makefile.am | 7 - samples/controls/controls.cpp | 896 -- samples/controls/controls.def | 8 - samples/controls/controls.rc | 10 - samples/controls/icons/choice.bmp | Bin 1334 -> 0 bytes samples/controls/icons/choice.xpm | 27 - samples/controls/icons/combo.bmp | Bin 1334 -> 0 bytes samples/controls/icons/combo.xpm | 27 - samples/controls/icons/gauge.bmp | Bin 1334 -> 0 bytes samples/controls/icons/gauge.xpm | 27 - samples/controls/icons/list.bmp | Bin 1334 -> 0 bytes samples/controls/icons/list.xpm | 27 - samples/controls/icons/radio.bmp | Bin 1334 -> 0 bytes samples/controls/icons/radio.xpm | 27 - samples/controls/icons/stattext.xpm | 24 - samples/controls/icons/text.bmp | Bin 1334 -> 0 bytes samples/controls/icons/text.xpm | 27 - samples/controls/makefile.b32 | 16 - samples/controls/makefile.bcc | 19 - samples/controls/makefile.dos | 17 - samples/controls/makefile.g95 | 16 - samples/controls/makefile.unx | 17 - samples/controls/makefile.vc | 18 - samples/controls/makefile.wat | 15 - samples/controls/mondrian.ico | Bin 766 -> 0 bytes samples/controls/mondrian.xpm | 44 - samples/db/.cvsignore | 3 - samples/db/Makefile.am | 7 - samples/db/db.xpm | 48 - samples/db/dbtest.cpp | 2053 --- samples/db/dbtest.def | 8 - samples/db/dbtest.h | 384 - samples/db/dbtest.ico | Bin 766 -> 0 bytes samples/db/dbtest.rc | 3 - samples/db/listdb.cpp | 394 - samples/db/listdb.h | 128 - samples/db/makefile.b32 | 16 - samples/db/makefile.dos | 17 - samples/db/makefile.g95 | 16 - samples/db/makefile.unx | 17 - samples/db/makefile.vc | 18 - samples/db/makefile.wat | 15 - samples/dde/.cvsignore | 2 - samples/dde/client.cpp | 210 - samples/dde/client.def | 8 - samples/dde/client.g95 | 16 - samples/dde/client.h | 55 - samples/dde/client.rc | 2 - samples/dde/client.vc | 20 - samples/dde/client.wat | 15 - samples/dde/ddesetup.h | 42 - samples/dde/makefile.b32 | 82 - samples/dde/makefile.dos | 19 - samples/dde/makefile.g95 | 19 - samples/dde/makefile.vc | 20 - samples/dde/mondrian.ico | Bin 766 -> 0 bytes samples/dde/mondrian.xpm | 44 - samples/dde/server.cpp | 196 - samples/dde/server.def | 8 - samples/dde/server.g95 | 16 - samples/dde/server.h | 70 - samples/dde/server.rc | 3 - samples/dde/server.vc | 20 - samples/dde/server.wat | 15 - samples/dialogs/.cvsignore | 2 - samples/dialogs/Makefile.am | 7 - samples/dialogs/dialogs.cpp | 307 - samples/dialogs/dialogs.def | 8 - samples/dialogs/dialogs.h | 72 - samples/dialogs/dialogs.rc | 2 - samples/dialogs/makefile.b32 | 16 - samples/dialogs/makefile.bcc | 19 - samples/dialogs/makefile.dos | 17 - samples/dialogs/makefile.g95 | 16 - samples/dialogs/makefile.twn | 43 - samples/dialogs/makefile.unx | 17 - samples/dialogs/makefile.vc | 18 - samples/dialogs/makefile.wat | 15 - samples/dnd/.cvsignore | 2 - samples/dnd/Makefile.am | 7 - samples/dnd/d_and_d.txt | 167 - samples/dnd/dnd.cpp | 377 - samples/dnd/dnd.def | 8 - samples/dnd/dnd.rc | 3 - samples/dnd/makefile.b32 | 16 - samples/dnd/makefile.dos | 17 - samples/dnd/makefile.g95 | 16 - samples/dnd/makefile.unx | 17 - samples/dnd/makefile.vc | 18 - samples/dnd/makefile.wat | 15 - samples/dnd/mondrian.ico | Bin 766 -> 0 bytes samples/dnd/mondrian.xpm | 44 - samples/dnd/test.dsp | 121 - samples/dnd/test.dsw | 29 - samples/docview/.cvsignore | 2 - samples/docview/Makefile.am | 7 - samples/docview/chart.ico | Bin 766 -> 0 bytes samples/docview/doc.cpp | 275 - samples/docview/doc.h | 98 - samples/docview/doc.ico | Bin 766 -> 0 bytes samples/docview/docview.cpp | 270 - samples/docview/docview.def | 8 - samples/docview/docview.h | 66 - samples/docview/docview.rc | 5 - samples/docview/makefile.b32 | 16 - samples/docview/makefile.bcc | 19 - samples/docview/makefile.dos | 17 - samples/docview/makefile.g95 | 16 - samples/docview/makefile.sc | 38 - samples/docview/makefile.unx | 18 - samples/docview/makefile.vc | 18 - samples/docview/makefile.vms | 44 - samples/docview/makefile.wat | 15 - samples/docview/mondrian.ico | Bin 766 -> 0 bytes samples/docview/mondrian.xpm | 44 - samples/docview/notepad.ico | Bin 766 -> 0 bytes samples/docview/view.cpp | 286 - samples/docview/view.h | 79 - samples/docvwmdi/.cvsignore | 2 - samples/docvwmdi/Makefile.am | 7 - samples/docvwmdi/chart.ico | Bin 766 -> 0 bytes samples/docvwmdi/doc.cpp | 275 - samples/docvwmdi/doc.h | 98 - samples/docvwmdi/doc.ico | Bin 766 -> 0 bytes samples/docvwmdi/docview.cpp | 221 - samples/docvwmdi/docview.def | 8 - samples/docvwmdi/docview.h | 63 - samples/docvwmdi/docview.rc | 6 - samples/docvwmdi/makefile.b32 | 16 - samples/docvwmdi/makefile.bcc | 19 - samples/docvwmdi/makefile.dos | 17 - samples/docvwmdi/makefile.g95 | 16 - samples/docvwmdi/makefile.unx | 16 - samples/docvwmdi/makefile.vc | 18 - samples/docvwmdi/makefile.wat | 15 - samples/docvwmdi/notepad.ico | Bin 766 -> 0 bytes samples/docvwmdi/view.cpp | 264 - samples/docvwmdi/view.h | 79 - samples/drawing/.cvsignore | 2 - samples/drawing/Makefile.am | 7 - samples/drawing/drawing.cpp | 427 - samples/drawing/drawing.def | 7 - samples/drawing/drawing.rc | 1 - samples/drawing/makefile.b32 | 16 - samples/drawing/makefile.bcc | 19 - samples/drawing/makefile.dos | 17 - samples/drawing/makefile.g95 | 16 - samples/drawing/makefile.twn | 43 - samples/drawing/makefile.unx | 17 - samples/drawing/makefile.vc | 18 - samples/drawing/makefile.wat | 15 - samples/drawing/mondrian.xpm | 44 - samples/dynamic/.cvsignore | 2 - samples/dynamic/Makefile.am | 7 - samples/dynamic/dynamic.cpp | 116 - samples/dynamic/dynamic.def | 8 - samples/dynamic/dynamic.rc | 3 - samples/dynamic/makefile.b32 | 16 - samples/dynamic/makefile.bcc | 19 - samples/dynamic/makefile.dos | 17 - samples/dynamic/makefile.g95 | 16 - samples/dynamic/makefile.unx | 17 - samples/dynamic/makefile.vc | 18 - samples/dynamic/minimal.cpp | 113 - samples/dynamic/mondrian.ico | Bin 766 -> 0 bytes samples/dynamic/mondrian.xpm | 44 - samples/forty/.cvsignore | 2 - samples/forty/Makefile.am | 9 - samples/forty/canvas.cpp | 253 - samples/forty/canvas.h | 56 - samples/forty/card.cpp | 358 - samples/forty/card.h | 65 - samples/forty/cards.ico | Bin 766 -> 0 bytes samples/forty/forty.cpp | 267 - samples/forty/forty.def | 8 - samples/forty/forty.h | 31 - samples/forty/forty.rc | 6 - samples/forty/game.cpp | 944 -- samples/forty/game.h | 135 - samples/forty/makefile.b32 | 16 - samples/forty/makefile.bcc | 19 - samples/forty/makefile.dos | 17 - samples/forty/makefile.g95 | 16 - samples/forty/makefile.vc | 18 - samples/forty/makefile.wat | 15 - samples/forty/pictures.bmp | Bin 2818 -> 0 bytes samples/forty/pictures.xpm | 60 - samples/forty/pile.cpp | 305 - samples/forty/pile.h | 80 - samples/forty/playerdg.cpp | 188 - samples/forty/playerdg.h | 41 - samples/forty/scoredg.cpp | 192 - samples/forty/scoredg.h | 34 - samples/forty/scorefil.cpp | 183 - samples/forty/scorefil.h | 37 - samples/forty/symbols.bmp | Bin 662 -> 0 bytes samples/forty/symbols.xbm | 37 - samples/forty/symbols.xpm | 60 - samples/fractal/.cvsignore | 2 - samples/fractal/Makefile.am | 7 - samples/fractal/fractal.cpp | 251 - samples/fractal/fractal.def | 9 - samples/fractal/fractal.rc | 4 - samples/fractal/makefile.b32 | 16 - samples/fractal/makefile.bcc | 19 - samples/fractal/makefile.dos | 17 - samples/fractal/makefile.g95 | 16 - samples/fractal/makefile.unx | 17 - samples/fractal/makefile.vc | 18 - samples/fractal/makefile.wat | 15 - samples/fractal/mondrian.ico | Bin 766 -> 0 bytes samples/grid/.cvsignore | 2 - samples/grid/Makefile.am | 7 - samples/grid/bitmap1.bmp | Bin 406 -> 0 bytes samples/grid/bitmap2.bmp | Bin 238 -> 0 bytes samples/grid/makefile.b32 | 16 - samples/grid/makefile.bcc | 19 - samples/grid/makefile.dos | 17 - samples/grid/makefile.g95 | 16 - samples/grid/makefile.unx | 17 - samples/grid/makefile.vc | 18 - samples/grid/makefile.wat | 15 - samples/grid/test.cpp | 313 - samples/grid/test.def | 8 - samples/grid/test.rc | 5 - samples/help/.cvsignore | 2 - samples/help/Makefile.am | 7 - samples/help/demo.cpp | 261 - samples/help/demo.def | 8 - samples/help/demo.rc | 6 - samples/help/doc/ClassGraph.class | Bin 1146 -> 0 bytes samples/help/doc/ClassGraphPanel.class | Bin 4084 -> 0 bytes samples/help/doc/ClassLayout.class | Bin 2412 -> 0 bytes samples/help/doc/HIER.html | 9 - samples/help/doc/HIERjava.html | 15 - samples/help/doc/NavigatorButton.class | Bin 1741 -> 0 bytes samples/help/doc/USE_HELP.html | 38 - samples/help/doc/aindex.html | 21 - samples/help/doc/down.gif | Bin 1939 -> 0 bytes samples/help/doc/dxxgifs.tex | 4 - samples/help/doc/gifs.db | 0 samples/help/doc/icon1.gif | Bin 326 -> 0 bytes samples/help/doc/icon2.gif | Bin 326 -> 0 bytes samples/help/doc/index.html | 21 - samples/help/doc/logo.gif | Bin 11338 -> 0 bytes samples/help/doc/wx204.htm | 33 - samples/help/doc/wx34.htm | 349 - samples/help/doc/wxExtHelpController.html | 180 - samples/help/doc/wxhelp.map | 15 - samples/help/makefile.b32 | 16 - samples/help/makefile.bcc | 19 - samples/help/makefile.dos | 17 - samples/help/makefile.g95 | 16 - samples/help/makefile.unx | 17 - samples/help/makefile.vc | 18 - samples/help/makefile.wat | 15 - samples/help/mondrian.ico | Bin 766 -> 0 bytes samples/help/mondrian.xpm | 44 - samples/image/.cvsignore | 3 - samples/image/Makefile.am | 7 - samples/image/horse.bmp | Bin 60722 -> 0 bytes samples/image/horse.gif | Bin 46200 -> 0 bytes samples/image/horse.jpg | Bin 6213 -> 0 bytes samples/image/horse.png | Bin 68852 -> 0 bytes samples/image/image.cpp | 301 - samples/image/image.def | 7 - samples/image/image.rc | 3 - samples/image/makefile.b32 | 16 - samples/image/makefile.bcc | 19 - samples/image/makefile.dos | 17 - samples/image/makefile.g95 | 16 - samples/image/makefile.unx | 17 - samples/image/makefile.vc | 18 - samples/image/makefile.wat | 15 - samples/internat/.cvsignore | 2 - samples/internat/Makefile.am | 7 - samples/internat/fr/internat.mo | Bin 1066 -> 0 bytes samples/internat/fr/internat.po | 77 - samples/internat/fr/wxstd.mo | Bin 1923 -> 0 bytes samples/internat/fr/wxstd.po | 131 - samples/internat/internat.cpp | 197 - samples/internat/internat.def | 8 - samples/internat/internat.rc | 3 - samples/internat/makefile.b32 | 16 - samples/internat/makefile.bcc | 19 - samples/internat/makefile.dos | 17 - samples/internat/makefile.g95 | 16 - samples/internat/makefile.sc | 35 - samples/internat/makefile.unx | 17 - samples/internat/makefile.vc | 18 - samples/internat/makefile.vms | 38 - samples/internat/makefile.wat | 15 - samples/internat/mondrian.ico | Bin 766 -> 0 bytes samples/internat/mondrian.xpm | 44 - samples/internat/readme.txt | 82 - samples/internat/wxstd.po | 136 - samples/joytest/.cvsignore | 2 - samples/joytest/Makefile.am | 7 - samples/joytest/chart.ico | Bin 766 -> 0 bytes samples/joytest/gun.wav | Bin 26838 -> 0 bytes samples/joytest/joytest.cpp | 166 - samples/joytest/joytest.def | 8 - samples/joytest/joytest.h | 50 - samples/joytest/joytest.ico | Bin 766 -> 0 bytes samples/joytest/joytest.rc | 5 - samples/joytest/makefile.b32 | 16 - samples/joytest/makefile.bcc | 19 - samples/joytest/makefile.dos | 17 - samples/joytest/makefile.g95 | 16 - samples/joytest/makefile.sc | 37 - samples/joytest/makefile.unx | 17 - samples/joytest/makefile.vc | 18 - samples/joytest/makefile.wat | 15 - samples/joytest/mondrian.ico | Bin 766 -> 0 bytes samples/layout/.cvsignore | 2 - samples/layout/Makefile.am | 7 - samples/layout/expt.cpp | 161 - samples/layout/fload.xbm | 11 - samples/layout/layout.cpp | 341 - samples/layout/layout.def | 9 - samples/layout/layout.h | 77 - samples/layout/layout.rc | 1 - samples/layout/makefile.b32 | 16 - samples/layout/makefile.bcc | 19 - samples/layout/makefile.dos | 17 - samples/layout/makefile.g95 | 16 - samples/layout/makefile.sc | 37 - samples/layout/makefile.unx | 17 - samples/layout/makefile.vc | 18 - samples/layout/makefile.vms | 41 - samples/layout/makefile.wat | 15 - samples/listctrl/.cvsignore | 2 - samples/listctrl/Makefile.am | 7 - samples/listctrl/bitmaps/small1.ico | Bin 1078 -> 0 bytes samples/listctrl/bitmaps/small1.xpm | 27 - samples/listctrl/bitmaps/toolbrai.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/toolbrai.xpm | 42 - samples/listctrl/bitmaps/toolchar.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/toolchar.xpm | 42 - samples/listctrl/bitmaps/toolchec.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/toolchec.xpm | 40 - samples/listctrl/bitmaps/tooldata.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/tooldata.xpm | 45 - samples/listctrl/bitmaps/toolgame.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/toolgame.xpm | 41 - samples/listctrl/bitmaps/toolnote.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/toolnote.xpm | 46 - samples/listctrl/bitmaps/tooltime.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/tooltime.xpm | 43 - samples/listctrl/bitmaps/tooltodo.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/tooltodo.xpm | 44 - samples/listctrl/bitmaps/toolword.ico | Bin 766 -> 0 bytes samples/listctrl/bitmaps/toolword.xpm | 41 - samples/listctrl/listtest.cpp | 477 - samples/listctrl/listtest.def | 8 - samples/listctrl/listtest.h | 86 - samples/listctrl/listtest.rc | 16 - samples/listctrl/makefile.b32 | 16 - samples/listctrl/makefile.bcc | 19 - samples/listctrl/makefile.dos | 17 - samples/listctrl/makefile.g95 | 16 - samples/listctrl/makefile.unx | 17 - samples/listctrl/makefile.vc | 18 - samples/listctrl/makefile.wat | 15 - samples/listctrl/mondrian.ico | Bin 766 -> 0 bytes samples/listctrl/mondrian.xpm | 44 - samples/listctrl/test.dsp | 118 - samples/listctrl/test.dsw | 29 - samples/makefile.b32 | 159 - samples/makefile.dos | 160 - samples/makefile.g95 | 94 - samples/makefile.unx | 82 - samples/makefile.vc | 178 - samples/mdi/.cvsignore | 2 - samples/mdi/Makefile.am | 7 - samples/mdi/bitmaps/bitmap1.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/bitmap2.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/calc.bmp | Bin 702 -> 0 bytes samples/mdi/bitmaps/copy.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/copy.xpm | 25 - samples/mdi/bitmaps/cut.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/cut.xpm | 24 - samples/mdi/bitmaps/dirplain.xbm | 14 - samples/mdi/bitmaps/draft.xbm | 14 - samples/mdi/bitmaps/drawing.xbm | 14 - samples/mdi/bitmaps/flowchar.xbm | 14 - samples/mdi/bitmaps/help.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/help.xpm | 25 - samples/mdi/bitmaps/helpcs.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/new.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/new.xpm | 24 - samples/mdi/bitmaps/open.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/open.xpm | 26 - samples/mdi/bitmaps/paste.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/paste.xpm | 27 - samples/mdi/bitmaps/preview.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/preview.xpm | 26 - samples/mdi/bitmaps/print.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/print.xpm | 26 - samples/mdi/bitmaps/save.bmp | Bin 238 -> 0 bytes samples/mdi/bitmaps/save.xpm | 25 - samples/mdi/bitmaps/tick.bmp | Bin 220 -> 0 bytes samples/mdi/bitmaps/write.xbm | 14 - samples/mdi/chart.ico | Bin 766 -> 0 bytes samples/mdi/makefile.b32 | 16 - samples/mdi/makefile.bcc | 19 - samples/mdi/makefile.dos | 17 - samples/mdi/makefile.g95 | 16 - samples/mdi/makefile.sc | 36 - samples/mdi/makefile.sl | 18 - samples/mdi/makefile.twn | 37 - samples/mdi/makefile.unx | 17 - samples/mdi/makefile.vc | 18 - samples/mdi/makefile.vms | 38 - samples/mdi/makefile.wat | 15 - samples/mdi/mdi.cpp | 437 - samples/mdi/mdi.def | 8 - samples/mdi/mdi.h | 81 - samples/mdi/mdi.ico | Bin 766 -> 0 bytes samples/mdi/mdi.rc | 24 - samples/mdi/mondrian.ico | Bin 766 -> 0 bytes samples/mdi/mondrian.xpm | 44 - samples/memcheck/.cvsignore | 2 - samples/memcheck/Makefile.am | 7 - samples/memcheck/makefile.b32 | 16 - samples/memcheck/makefile.bcc | 19 - samples/memcheck/makefile.dos | 17 - samples/memcheck/makefile.g95 | 16 - samples/memcheck/makefile.unx | 17 - samples/memcheck/makefile.vc | 18 - samples/memcheck/makefile.wat | 15 - samples/memcheck/memcheck.cpp | 122 - samples/memcheck/memcheck.def | 8 - samples/memcheck/memcheck.rc | 3 - samples/memcheck/mondrian.ico | Bin 766 -> 0 bytes samples/memcheck/mondrian.xpm | 44 - samples/mfc/.cvsignore | 2 - samples/mfc/Makefile.am | 7 - samples/mfc/makefile.b32 | 71 - samples/mfc/makefile.bcc | 76 - samples/mfc/makefile.dos | 89 - samples/mfc/makefile.g95 | 16 - samples/mfc/makefile.vc | 19 - samples/mfc/makefile.wat | 47 - samples/mfc/mfctest.cpp | 390 - samples/mfc/mfctest.def | 21 - samples/mfc/mfctest.h | 66 - samples/mfc/mfctest.ico | Bin 766 -> 0 bytes samples/mfc/mfctest.rc | 108 - samples/mfc/resource.h | 18 - samples/mfc/stdafx.h | 12 - samples/minifram/.cvsignore | 2 - samples/minifram/Makefile.am | 7 - samples/minifram/bitmaps/copy.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/copy.xpm | 25 - samples/minifram/bitmaps/cut.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/cut.xpm | 24 - samples/minifram/bitmaps/help.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/help.xpm | 25 - samples/minifram/bitmaps/new.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/new.xpm | 24 - samples/minifram/bitmaps/open.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/open.xpm | 26 - samples/minifram/bitmaps/page.bmp | Bin 714 -> 0 bytes samples/minifram/bitmaps/paste.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/preview.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/preview.xpm | 26 - samples/minifram/bitmaps/print.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/print.xpm | 26 - samples/minifram/bitmaps/save.bmp | Bin 238 -> 0 bytes samples/minifram/bitmaps/save.xpm | 25 - samples/minifram/makefile.b32 | 16 - samples/minifram/makefile.bcc | 19 - samples/minifram/makefile.dos | 17 - samples/minifram/makefile.g95 | 16 - samples/minifram/makefile.unx | 18 - samples/minifram/makefile.vc | 18 - samples/minifram/makefile.wat | 15 - samples/minifram/mondrian.ico | Bin 766 -> 0 bytes samples/minifram/mondrian.xpm | 44 - samples/minifram/test.cpp | 197 - samples/minifram/test.def | 8 - samples/minifram/test.h | 50 - samples/minifram/test.rc | 13 - samples/minimal/.cvsignore | 2 - samples/minimal/Makefile.am | 7 - samples/minimal/make_cw.mcp | Bin 133039 -> 0 bytes samples/minimal/makefile.b32 | 16 - samples/minimal/makefile.bcc | 19 - samples/minimal/makefile.dos | 17 - samples/minimal/makefile.g95 | 16 - samples/minimal/makefile.sc | 36 - samples/minimal/makefile.sl | 18 - samples/minimal/makefile.twn | 43 - samples/minimal/makefile.unx | 17 - samples/minimal/makefile.vc | 18 - samples/minimal/makefile.wat | 15 - samples/minimal/minimal.cpp | 194 - samples/minimal/minimal.def | 7 - samples/minimal/minimal.rc | 6 - samples/minimal/mondrian.ico | Bin 766 -> 0 bytes samples/minimal/mondrian.xpm | 44 - samples/nativdlg/Makefile.am | 7 - samples/nativdlg/dialog1.rc | 76 - samples/nativdlg/makefile.b32 | 16 - samples/nativdlg/makefile.bcc | 19 - samples/nativdlg/makefile.dos | 17 - samples/nativdlg/makefile.g95 | 16 - samples/nativdlg/makefile.sc | 35 - samples/nativdlg/makefile.unx | 17 - samples/nativdlg/makefile.vc | 18 - samples/nativdlg/makefile.vms | 38 - samples/nativdlg/makefile.wat | 15 - samples/nativdlg/nativdlg.cpp | 127 - samples/nativdlg/nativdlg.def | 9 - samples/nativdlg/nativdlg.h | 46 - samples/nativdlg/nativdlg.rc | 4 - samples/nativdlg/resource.h | 25 - samples/notebook/.cvsignore | 1 - samples/notebook/Makefile.am | 7 - samples/notebook/makefile.b32 | 16 - samples/notebook/makefile.bcc | 19 - samples/notebook/makefile.dos | 17 - samples/notebook/makefile.g95 | 16 - samples/notebook/makefile.unx | 17 - samples/notebook/makefile.vc | 18 - samples/notebook/makefile.wat | 15 - samples/notebook/mondrian.ico | Bin 766 -> 0 bytes samples/notebook/test.cpp | 231 - samples/notebook/test.def | 8 - samples/notebook/test.h | 83 - samples/notebook/test.rc | 3 - samples/oleauto/Makefile.am | 7 - samples/oleauto/makefile.b32 | 16 - samples/oleauto/makefile.g95 | 16 - samples/oleauto/makefile.vc | 18 - samples/oleauto/makefile.wat | 15 - samples/oleauto/mondrian.ico | Bin 766 -> 0 bytes samples/oleauto/mondrian.xpm | 44 - samples/oleauto/oleauto.cpp | 220 - samples/oleauto/oleauto.def | 8 - samples/oleauto/oleauto.rc | 3 - samples/ownerdrw/Makefile.am | 7 - samples/ownerdrw/bell.bmp | Bin 370 -> 0 bytes samples/ownerdrw/makefile.b32 | 16 - samples/ownerdrw/makefile.bcc | 19 - samples/ownerdrw/makefile.dos | 17 - samples/ownerdrw/makefile.g95 | 16 - samples/ownerdrw/makefile.vc | 18 - samples/ownerdrw/makefile.wat | 15 - samples/ownerdrw/mondrian.ico | Bin 766 -> 0 bytes samples/ownerdrw/nosound.bmp | Bin 370 -> 0 bytes samples/ownerdrw/ownerdrw.cpp | 296 - samples/ownerdrw/ownerdrw.def | 8 - samples/ownerdrw/ownerdrw.rc | 6 - samples/ownerdrw/sound.bmp | Bin 370 -> 0 bytes samples/png/.cvsignore | 2 - samples/png/Makefile.am | 7 - samples/png/julian.png | Bin 5439 -> 0 bytes samples/png/makefile.b32 | 16 - samples/png/makefile.bcc | 19 - samples/png/makefile.g95 | 16 - samples/png/makefile.vc | 18 - samples/png/makefile.wat | 15 - samples/png/paint.png | Bin 950 -> 0 bytes samples/png/paint16.png | Bin 236 -> 0 bytes samples/png/pngdemo.cpp | 210 - samples/png/pngdemo.h | 58 - samples/png/pngdemo.rc | 2 - samples/printing/.cvsignore | 2 - samples/printing/Makefile.am | 7 - samples/printing/fload.xbm | 11 - samples/printing/folder.xpm | 48 - samples/printing/makefile.b32 | 16 - samples/printing/makefile.bcc | 19 - samples/printing/makefile.dos | 17 - samples/printing/makefile.g95 | 16 - samples/printing/makefile.unx | 17 - samples/printing/makefile.vc | 18 - samples/printing/makefile.wat | 15 - samples/printing/mondrian.ico | Bin 766 -> 0 bytes samples/printing/mondrian.xpm | 44 - samples/printing/printing.cpp | 540 - samples/printing/printing.def | 9 - samples/printing/printing.h | 95 - samples/printing/printing.rc | 3 - samples/printing/test.dsp | 118 - samples/printing/test.dsw | 29 - samples/proplist/.cvsignore | 2 - samples/proplist/Makefile.am | 7 - samples/proplist/cross.bmp | Bin 198 -> 0 bytes samples/proplist/makefile.b32 | 16 - samples/proplist/makefile.bcc | 19 - samples/proplist/makefile.dos | 17 - samples/proplist/makefile.g95 | 16 - samples/proplist/makefile.unx | 17 - samples/proplist/makefile.vc | 18 - samples/proplist/makefile.wat | 15 - samples/proplist/test.cpp | 317 - samples/proplist/test.def | 8 - samples/proplist/test.h | 127 - samples/proplist/test.rc | 5 - samples/proplist/tick.bmp | Bin 198 -> 0 bytes samples/regtest/Makefile.am | 7 - samples/regtest/key1.ico | Bin 318 -> 0 bytes samples/regtest/key2.ico | Bin 318 -> 0 bytes samples/regtest/key3.ico | Bin 318 -> 0 bytes samples/regtest/makefile.b32 | 16 - samples/regtest/makefile.g95 | 16 - samples/regtest/makefile.vc | 18 - samples/regtest/makefile.wat | 15 - samples/regtest/registry.ico | Bin 1078 -> 0 bytes samples/regtest/regtest.cpp | 840 -- samples/regtest/regtest.rc | 9 - samples/regtest/value1.ico | Bin 318 -> 0 bytes samples/regtest/value2.ico | Bin 318 -> 0 bytes samples/resource/.cvsignore | 2 - samples/resource/Makefile.am | 7 - samples/resource/dialog1.h | 14 - samples/resource/dialog1.wxr | 26 - samples/resource/makefile.b32 | 16 - samples/resource/makefile.bcc | 19 - samples/resource/makefile.dos | 17 - samples/resource/makefile.g95 | 16 - samples/resource/makefile.sc | 35 - samples/resource/makefile.unx | 17 - samples/resource/makefile.vc | 18 - samples/resource/makefile.vms | 38 - samples/resource/makefile.wat | 15 - samples/resource/menu1.wxr | 13 - samples/resource/resource.cpp | 192 - samples/resource/resource.def | 9 - samples/resource/resource.h | 69 - samples/resource/resource.rc | 10 - samples/richedit/Makefile.am | 7 - samples/richedit/Micon.xpm | 309 - samples/richedit/Mpch.h | 8 - samples/richedit/README | 50 - samples/richedit/TODO | 44 - samples/richedit/kbList.cpp | 339 - samples/richedit/kbList.h | 315 - samples/richedit/makefile.vc | 18 - samples/richedit/wxLayout.cpp | 501 - samples/richedit/wxLayout.h | 66 - samples/richedit/wxLayout.rc | 2 - samples/richedit/wxllist.cpp | 2931 ---- samples/richedit/wxllist.h | 1258 -- samples/richedit/wxlparser.cpp | 265 - samples/richedit/wxlparser.h | 78 - samples/richedit/wxlwindow.cpp | 1155 -- samples/richedit/wxlwindow.h | 244 - samples/sashtest/.cvsignore | 2 - samples/sashtest/Makefile.am | 7 - samples/sashtest/makefile.b32 | 16 - samples/sashtest/makefile.bcc | 19 - samples/sashtest/makefile.g95 | 16 - samples/sashtest/makefile.unx | 17 - samples/sashtest/makefile.vc | 18 - samples/sashtest/makefile.wat | 15 - samples/sashtest/sashtest.cpp | 352 - samples/sashtest/sashtest.def | 8 - samples/sashtest/sashtest.h | 77 - samples/sashtest/sashtest.ico | Bin 766 -> 0 bytes samples/sashtest/sashtest.rc | 9 - samples/scroll/.cvsignore | 2 - samples/scroll/Makefile.am | 7 - samples/scroll/makefile.b32 | 16 - samples/scroll/makefile.bcc | 19 - samples/scroll/makefile.dos | 17 - samples/scroll/makefile.g95 | 16 - samples/scroll/makefile.twn | 43 - samples/scroll/makefile.unx | 17 - samples/scroll/makefile.vc | 18 - samples/scroll/makefile.wat | 15 - samples/scroll/scroll.cpp | 192 - samples/scroll/scroll.def | 7 - samples/scroll/scroll.rc | 2 - samples/splitter/.cvsignore | 2 - samples/splitter/Makefile.am | 7 - samples/splitter/makefile.b32 | 16 - samples/splitter/makefile.bcc | 19 - samples/splitter/makefile.dos | 17 - samples/splitter/makefile.g95 | 16 - samples/splitter/makefile.unx | 18 - samples/splitter/makefile.vc | 18 - samples/splitter/makefile.wat | 15 - samples/splitter/mondrian.ico | Bin 766 -> 0 bytes samples/splitter/test.cpp | 276 - samples/splitter/test.def | 8 - samples/splitter/test.rc | 4 - samples/tab/.cvsignore | 2 - samples/tab/Makefile.am | 7 - samples/tab/makefile.b32 | 16 - samples/tab/makefile.bcc | 19 - samples/tab/makefile.dos | 17 - samples/tab/makefile.g95 | 16 - samples/tab/makefile.unx | 17 - samples/tab/makefile.vc | 18 - samples/tab/makefile.wat | 15 - samples/tab/mondrian.ico | Bin 766 -> 0 bytes samples/tab/test.cpp | 270 - samples/tab/test.def | 8 - samples/tab/test.h | 87 - samples/tab/test.rc | 3 - samples/taskbar/Makefile.am | 7 - samples/taskbar/makefile.b32 | 16 - samples/taskbar/makefile.dos | 65 - samples/taskbar/makefile.g95 | 16 - samples/taskbar/makefile.vc | 18 - samples/taskbar/makefile.wat | 15 - samples/taskbar/mondrian.ico | Bin 766 -> 0 bytes samples/taskbar/tbtest.cpp | 154 - samples/taskbar/tbtest.def | 8 - samples/taskbar/tbtest.h | 55 - samples/taskbar/tbtest.rc | 3 - samples/text/.cvsignore | 2 - samples/text/Makefile.am | 7 - samples/text/controls.cpp | 653 - samples/text/controls.def | 8 - samples/text/controls.rc | 10 - samples/text/makefile.b32 | 16 - samples/text/makefile.bcc | 19 - samples/text/makefile.dos | 17 - samples/text/makefile.g95 | 16 - samples/text/makefile.unx | 17 - samples/text/makefile.vc | 18 - samples/text/makefile.wat | 15 - samples/text/mondrian.ico | Bin 766 -> 0 bytes samples/text/mondrian.xpm | 44 - samples/thread/.cvsignore | 2 - samples/thread/Makefile.am | 7 - samples/thread/makefile.b32 | 16 - samples/thread/makefile.dos | 65 - samples/thread/makefile.g95 | 16 - samples/thread/makefile.unx | 17 - samples/thread/makefile.vc | 18 - samples/thread/makefile.wat | 15 - samples/thread/test.cpp | 434 - samples/thread/test.def | 7 - samples/thread/test.rc | 2 - samples/toolbar/.cvsignore | 2 - samples/toolbar/Makefile.am | 7 - samples/toolbar/bitmaps/copy.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/copy.xpm | 25 - samples/toolbar/bitmaps/cut.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/cut.xpm | 24 - samples/toolbar/bitmaps/help.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/help.xpm | 25 - samples/toolbar/bitmaps/new.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/new.xpm | 24 - samples/toolbar/bitmaps/open.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/open.xpm | 26 - samples/toolbar/bitmaps/page.bmp | Bin 714 -> 0 bytes samples/toolbar/bitmaps/paste.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/preview.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/preview.xpm | 26 - samples/toolbar/bitmaps/print.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/print.xpm | 26 - samples/toolbar/bitmaps/save.bmp | Bin 238 -> 0 bytes samples/toolbar/bitmaps/save.xpm | 25 - samples/toolbar/makefile.b32 | 16 - samples/toolbar/makefile.bcc | 19 - samples/toolbar/makefile.dos | 17 - samples/toolbar/makefile.g95 | 16 - samples/toolbar/makefile.unx | 18 - samples/toolbar/makefile.vc | 18 - samples/toolbar/makefile.wat | 15 - samples/toolbar/mondrian.ico | Bin 766 -> 0 bytes samples/toolbar/mondrian.xpm | 44 - samples/toolbar/test.cpp | 209 - samples/toolbar/test.def | 8 - samples/toolbar/test.h | 52 - samples/toolbar/test.rc | 13 - samples/treectrl/.cvsignore | 2 - samples/treectrl/Makefile.am | 7 - samples/treectrl/bitmaps/file1.bmp | Bin 246 -> 0 bytes samples/treectrl/bitmaps/file1.ico | Bin 318 -> 0 bytes samples/treectrl/bitmaps/folder1.bmp | Bin 246 -> 0 bytes samples/treectrl/bitmaps/folder1.ico | Bin 318 -> 0 bytes samples/treectrl/icon1.xpm | 41 - samples/treectrl/icon2.xpm | 45 - samples/treectrl/makefile.b32 | 16 - samples/treectrl/makefile.bcc | 19 - samples/treectrl/makefile.dos | 17 - samples/treectrl/makefile.g95 | 16 - samples/treectrl/makefile.unx | 17 - samples/treectrl/makefile.vc | 18 - samples/treectrl/makefile.wat | 15 - samples/treectrl/mondrian.ico | Bin 766 -> 0 bytes samples/treectrl/mondrian.xpm | 44 - samples/treectrl/treetest.cpp | 537 - samples/treectrl/treetest.def | 8 - samples/treectrl/treetest.h | 161 - samples/treectrl/treetest.rc | 10 - samples/typetest/.cvsignore | 2 - samples/typetest/Makefile.am | 7 - samples/typetest/makefile.b32 | 16 - samples/typetest/makefile.bcc | 19 - samples/typetest/makefile.dos | 17 - samples/typetest/makefile.g95 | 16 - samples/typetest/makefile.unx | 17 - samples/typetest/makefile.vc | 18 - samples/typetest/makefile.wat | 15 - samples/typetest/mondrian.ico | Bin 766 -> 0 bytes samples/typetest/mondrian.xpm | 44 - samples/typetest/typetest.cpp | 333 - samples/typetest/typetest.def | 8 - samples/typetest/typetest.h | 68 - samples/typetest/typetest.rc | 3 - samples/validate/.cvsignore | 2 - samples/validate/Makefile.am | 7 - samples/validate/makefile.b32 | 16 - samples/validate/makefile.bcc | 19 - samples/validate/makefile.dos | 17 - samples/validate/makefile.g95 | 16 - samples/validate/makefile.unx | 17 - samples/validate/makefile.vc | 18 - samples/validate/makefile.wat | 15 - samples/validate/mondrian.ico | Bin 766 -> 0 bytes samples/validate/mondrian.xpm | 44 - samples/validate/validate.cpp | 121 - samples/validate/validate.def | 8 - samples/validate/validate.h | 56 - samples/validate/validate.rc | 3 - samples/wxpoem/.cvsignore | 2 - samples/wxpoem/Makefile.am | 11 - samples/wxpoem/corner1.ico | Bin 766 -> 0 bytes samples/wxpoem/corner1.xpm | 42 - samples/wxpoem/corner2.ico | Bin 766 -> 0 bytes samples/wxpoem/corner2.xpm | 42 - samples/wxpoem/corner3.ico | Bin 766 -> 0 bytes samples/wxpoem/corner3.xpm | 42 - samples/wxpoem/corner4.ico | Bin 766 -> 0 bytes samples/wxpoem/corner4.xpm | 42 - samples/wxpoem/makefile.b32 | 16 - samples/wxpoem/makefile.bcc | 19 - samples/wxpoem/makefile.dos | 17 - samples/wxpoem/makefile.g95 | 16 - samples/wxpoem/makefile.unx | 17 - samples/wxpoem/makefile.vc | 18 - samples/wxpoem/makefile.wat | 15 - samples/wxpoem/wxpoem.cpp | 1148 -- samples/wxpoem/wxpoem.dat | 2532 ---- samples/wxpoem/wxpoem.def | 9 - samples/wxpoem/wxpoem.h | 91 - samples/wxpoem/wxpoem.ico | Bin 766 -> 0 bytes samples/wxpoem/wxpoem.rc | 11 - samples/wxpoem/wxpoem.txt | 121 - samples/wxpoem/wxpoem.xpm | 47 - samples/wxsocket/.cvsignore | 2 - samples/wxsocket/Makefile.am | 8 - samples/wxsocket/client.cpp | 294 - samples/wxsocket/client.def | 8 - samples/wxsocket/client.g95 | 16 - samples/wxsocket/client.rc | 3 - samples/wxsocket/client.vc | 18 - samples/wxsocket/client.wat | 15 - samples/wxsocket/connect.ico | Bin 766 -> 0 bytes samples/wxsocket/makefile.b32 | 82 - samples/wxsocket/makefile.dos | 19 - samples/wxsocket/makefile.g95 | 46 - samples/wxsocket/makefile.vc | 20 - samples/wxsocket/mondrian.ico | Bin 766 -> 0 bytes samples/wxsocket/mondrian.xpm | 44 - samples/wxsocket/server.cpp | 209 - samples/wxsocket/server.def | 8 - samples/wxsocket/server.g95 | 16 - samples/wxsocket/server.rc | 4 - samples/wxsocket/server.vc | 18 - samples/wxsocket/server.wat | 15 - src/.cvsignore | 5 - src/Makefile.am | 7 - src/common/.cvsignore | 2 - src/common/cmndata.cpp | 1190 -- src/common/config.cpp | 406 - src/common/cwlex_yy.c | 1214 -- src/common/cwy_tab.c | 528 - src/common/date.cpp | 661 - src/common/datstrm.cpp | 202 - src/common/db.cpp | 1485 -- src/common/dbtable.cpp | 1553 --- src/common/dcbase.cpp | 111 - src/common/docmdi.cpp | 166 - src/common/docview.cpp | 1979 --- src/common/doslex.c | 1226 -- src/common/dosyacc.c | 523 - src/common/dynarray.cpp | 288 - src/common/dynlib.cpp | 331 - src/common/event.cpp | 801 -- src/common/extended.c | 188 - src/common/file.cpp | 575 - src/common/fileconf.cpp | 1485 -- src/common/filefn.cpp | 1791 --- src/common/framecmn.cpp | 70 - src/common/ftp.cpp | 408 - src/common/gdicmn.cpp | 654 - src/common/glob.inc | 361 - src/common/hash.cpp | 357 - src/common/helpbase.cpp | 35 - src/common/http.cpp | 282 - src/common/image.cpp | 1916 --- src/common/imaggif.cpp | 427 - src/common/imagjpeg.cpp | 324 - src/common/imagpng.cpp | 323 - src/common/intl.cpp | 648 - src/common/ipcbase.cpp | 35 - src/common/layout.cpp | 1764 --- src/common/lexer.l | 192 - src/common/list.cpp | 636 - src/common/log.cpp | 1076 -- src/common/longlong.cpp | 469 - src/common/matrix.cpp | 267 - src/common/memory.cpp | 1204 -- src/common/mimetype.cpp | 1347 -- src/common/module.cpp | 101 - src/common/mstream.cpp | 62 - src/common/object.cpp | 378 - src/common/objstrm.cpp | 330 - src/common/odbc.cpp | 1838 --- src/common/paper.cpp | 309 - src/common/parser.y | 167 - src/common/prntbase.cpp | 765 - src/common/process.cpp | 53 - src/common/protocol.cpp | 144 - src/common/resourc2.cpp | 1577 --- src/common/resource.cpp | 2956 ---- src/common/sckaddr.cpp | 425 - src/common/sckfile.cpp | 51 - src/common/sckint.cpp | 598 - src/common/sckipc.cpp | 523 - src/common/sckstrm.cpp | 92 - src/common/serbase.cpp | 124 - src/common/socket.cpp | 1192 -- src/common/stream.cpp | 857 -- src/common/string.cpp | 2339 ---- src/common/tbarbase.cpp | 772 - src/common/tbarsmpl.cpp | 460 - src/common/textfile.cpp | 265 - src/common/time.cpp | 425 - src/common/timercmn.cpp | 225 - src/common/tokenzr.cpp | 138 - src/common/url.cpp | 325 - src/common/utilscmn.cpp | 897 -- src/common/valgen.cpp | 398 - src/common/validate.cpp | 48 - src/common/valtext.cpp | 308 - src/common/variant.cpp | 1795 --- src/common/wfstream.cpp | 165 - src/common/wincmn.cpp | 1299 -- src/common/wxchar.cpp | 321 - src/common/wxexpr.cpp | 1267 -- src/common/zstream.cpp | 191 - src/cygnus.bat | 10 - src/generic/caret.cpp | 139 - src/generic/choicdgg.cpp | 361 - src/generic/colrdlgg.cpp | 487 - src/generic/dcpsg.cpp | 2269 --- src/generic/dirdlgg.cpp | 503 - src/generic/fontdlgg.cpp | 457 - src/generic/gridg.cpp | 2566 ---- src/generic/helpext.cpp | 90 - src/generic/helphtml.cpp | 284 - src/generic/helpxlp.cpp | 265 - src/generic/imaglist.cpp | 148 - src/generic/laywin.cpp | 261 - src/generic/listctrl.cpp | 2884 ---- src/generic/msgdlgg.cpp | 182 - src/generic/notebook.cpp | 687 - src/generic/panelg.cpp | 156 - src/generic/printps.cpp | 347 - src/generic/prntdlgg.cpp | 772 - src/generic/progdlgg.cpp | 174 - src/generic/prop.cpp | 1150 -- src/generic/propform.cpp | 751 - src/generic/proplist.cpp | 1965 --- src/generic/sashwin.cpp | 627 - src/generic/scrolwin.cpp | 501 - src/generic/splitter.cpp | 877 -- src/generic/statusbr.cpp | 339 - src/generic/tabg.cpp | 1277 -- src/generic/textdlgg.cpp | 162 - src/generic/treectrl.cpp | 1751 --- src/gtk/.cvsignore | 2 - src/gtk/Makefile.am | 213 - src/gtk/accel.cpp | 96 - src/gtk/app.cpp | 755 - src/gtk/bdiag.xbm | 6 - src/gtk/bitmap.cpp | 377 - src/gtk/bmpbuttn.cpp | 311 - src/gtk/brush.cpp | 180 - src/gtk/button.cpp | 147 - src/gtk/cdiag.xbm | 6 - src/gtk/checkbox.cpp | 186 - src/gtk/checklst.cpp | 93 - src/gtk/choice.cpp | 390 - src/gtk/clipbrd.cpp | 627 - src/gtk/colour.cpp | 226 - src/gtk/combobox.cpp | 627 - src/gtk/control.cpp | 61 - src/gtk/cross.xbm | 6 - src/gtk/cursor.cpp | 185 - src/gtk/data.cpp | 186 - src/gtk/dataobj.cpp | 469 - src/gtk/dc.cpp | 218 - src/gtk/dcclient.cpp | 1437 -- src/gtk/dcmemory.cpp | 83 - src/gtk/dcscreen.cpp | 345 - src/gtk/dialog.cpp | 629 - src/gtk/dnd.cpp | 887 -- src/gtk/fdiag.xbm | 6 - src/gtk/filedlg.cpp | 252 - src/gtk/font.cpp | 1013 -- src/gtk/frame.cpp | 1016 -- src/gtk/gauge.cpp | 80 - src/gtk/gdiobj.cpp | 19 - src/gtk/horiz.xbm | 6 - src/gtk/icon.cpp | 47 - src/gtk/joystick.cpp | 357 - src/gtk/listbox.cpp | 942 -- src/gtk/main.cpp | 29 - src/gtk/makefile.unx | 220 - src/gtk/mdi.cpp | 423 - src/gtk/menu.cpp | 1091 -- src/gtk/minifram.cpp | 320 - src/gtk/notebook.cpp | 625 - src/gtk/palette.cpp | 119 - src/gtk/pen.cpp | 192 - src/gtk/radiobox.cpp | 518 - src/gtk/radiobut.cpp | 154 - src/gtk/region.cpp | 440 - src/gtk/scrolbar.cpp | 309 - src/gtk/settings.cpp | 197 - src/gtk/slider.cpp | 291 - src/gtk/spinbutt.cpp | 210 - src/gtk/statbmp.cpp | 82 - src/gtk/statbox.cpp | 74 - src/gtk/statline.cpp | 57 - src/gtk/stattext.cpp | 127 - src/gtk/tbargtk.cpp | 586 - src/gtk/textctrl.cpp | 1071 -- src/gtk/threadno.cpp | 187 - src/gtk/threadsgi.cpp | 269 - src/gtk/timer.cpp | 117 - src/gtk/tooltip.cpp | 107 - src/gtk/treegtk.cpp | 936 -- src/gtk/utilsgtk.cpp | 135 - src/gtk/utilsres.cpp | 367 - src/gtk/verti.xbm | 6 - src/gtk/wave.cpp | 229 - src/gtk/win_gtk.c | 725 - src/gtk/window.cpp | 3038 ---- src/gtk1/.cvsignore | 2 - src/gtk1/Makefile.am | 213 - src/gtk1/accel.cpp | 96 - src/gtk1/app.cpp | 755 - src/gtk1/bdiag.xbm | 6 - src/gtk1/bitmap.cpp | 377 - src/gtk1/bmpbuttn.cpp | 311 - src/gtk1/brush.cpp | 180 - src/gtk1/button.cpp | 147 - src/gtk1/cdiag.xbm | 6 - src/gtk1/checkbox.cpp | 186 - src/gtk1/checklst.cpp | 93 - src/gtk1/choice.cpp | 390 - src/gtk1/clipbrd.cpp | 627 - src/gtk1/colour.cpp | 226 - src/gtk1/combobox.cpp | 627 - src/gtk1/control.cpp | 61 - src/gtk1/cross.xbm | 6 - src/gtk1/cursor.cpp | 185 - src/gtk1/data.cpp | 186 - src/gtk1/dataobj.cpp | 469 - src/gtk1/dc.cpp | 218 - src/gtk1/dcclient.cpp | 1437 -- src/gtk1/dcmemory.cpp | 83 - src/gtk1/dcscreen.cpp | 345 - src/gtk1/dialog.cpp | 629 - src/gtk1/dnd.cpp | 887 -- src/gtk1/fdiag.xbm | 6 - src/gtk1/filedlg.cpp | 252 - src/gtk1/font.cpp | 1013 -- src/gtk1/frame.cpp | 1016 -- src/gtk1/gauge.cpp | 80 - src/gtk1/gdiobj.cpp | 19 - src/gtk1/horiz.xbm | 6 - src/gtk1/icon.cpp | 47 - src/gtk1/joystick.cpp | 357 - src/gtk1/listbox.cpp | 942 -- src/gtk1/main.cpp | 29 - src/gtk1/makefile.unx | 220 - src/gtk1/mdi.cpp | 423 - src/gtk1/menu.cpp | 1091 -- src/gtk1/minifram.cpp | 320 - src/gtk1/notebook.cpp | 625 - src/gtk1/palette.cpp | 119 - src/gtk1/pen.cpp | 192 - src/gtk1/radiobox.cpp | 518 - src/gtk1/radiobut.cpp | 154 - src/gtk1/region.cpp | 440 - src/gtk1/scrolbar.cpp | 309 - src/gtk1/settings.cpp | 197 - src/gtk1/slider.cpp | 291 - src/gtk1/spinbutt.cpp | 210 - src/gtk1/statbmp.cpp | 82 - src/gtk1/statbox.cpp | 74 - src/gtk1/statline.cpp | 57 - src/gtk1/stattext.cpp | 127 - src/gtk1/tbargtk.cpp | 586 - src/gtk1/textctrl.cpp | 1071 -- src/gtk1/threadno.cpp | 187 - src/gtk1/threadsgi.cpp | 269 - src/gtk1/timer.cpp | 117 - src/gtk1/tooltip.cpp | 107 - src/gtk1/treegtk.cpp | 936 -- src/gtk1/utilsgtk.cpp | 135 - src/gtk1/utilsres.cpp | 367 - src/gtk1/verti.xbm | 6 - src/gtk1/wave.cpp | 229 - src/gtk1/win_gtk.c | 725 - src/gtk1/window.cpp | 3038 ---- src/iodbc/AUTHORS | 4 - src/iodbc/COPYING | 482 - src/iodbc/Changes.log | 67 - src/iodbc/IAFA-PACKAGE | 40 - src/iodbc/INSTALL | 182 - src/iodbc/NEWS | 8 - src/iodbc/README | 187 - src/iodbc/autoconfig | 230 - src/iodbc/catalog.c | 987 -- src/iodbc/config.h | 100 - src/iodbc/connect.c | 1241 -- src/iodbc/dlf.c | 612 - src/iodbc/dlf.h | 55 - src/iodbc/dlproc.c | 119 - src/iodbc/dlproc.h | 55 - src/iodbc/execute.c | 768 - src/iodbc/fetch.c | 649 - src/iodbc/hdbc.c | 811 -- src/iodbc/hdbc.h | 93 - src/iodbc/henv.c | 89 - src/iodbc/henv.ci | 117 - src/iodbc/henv.h | 160 - src/iodbc/herr.c | 378 - src/iodbc/herr.ci | 124 - src/iodbc/herr.h | 153 - src/iodbc/hstmt.c | 600 - src/iodbc/hstmt.h | 75 - src/iodbc/info.c | 517 - src/iodbc/iodbc.h | 66 - src/iodbc/isql.h | 228 - src/iodbc/isqlext.h | 1177 -- src/iodbc/itrace.c | 117 - src/iodbc/itrace.h | 124 - src/iodbc/misc.c | 413 - src/iodbc/prepare.c | 525 - src/iodbc/result.c | 523 - src/iodbc/shrsub.exp | 64 - src/jpeg/README | 385 - src/jpeg/ansi2knr.1 | 36 - src/jpeg/ansi2knr.c | 693 - src/jpeg/change.log | 217 - src/jpeg/jcapimin.c | 280 - src/jpeg/jcapistd.c | 161 - src/jpeg/jccoefct.c | 449 - src/jpeg/jccolor.c | 459 - src/jpeg/jcdctmgr.c | 387 - src/jpeg/jchuff.c | 909 -- src/jpeg/jchuff.h | 47 - src/jpeg/jcinit.c | 72 - src/jpeg/jcmainct.c | 293 - src/jpeg/jcmarker.c | 664 - src/jpeg/jcmaster.c | 590 - src/jpeg/jcomapi.c | 106 - src/jpeg/jconfig.h | 73 - src/jpeg/jconfig.vc | 45 - src/jpeg/jcparam.c | 610 - src/jpeg/jcphuff.c | 833 -- src/jpeg/jcprepct.c | 354 - src/jpeg/jcsample.c | 519 - src/jpeg/jctrans.c | 388 - src/jpeg/jdapimin.c | 395 - src/jpeg/jdapistd.c | 275 - src/jpeg/jdatadst.c | 151 - src/jpeg/jdatasrc.c | 212 - src/jpeg/jdcoefct.c | 736 - src/jpeg/jdcolor.c | 396 - src/jpeg/jdct.h | 176 - src/jpeg/jddctmgr.c | 269 - src/jpeg/jdhuff.c | 651 - src/jpeg/jdhuff.h | 201 - src/jpeg/jdinput.c | 381 - src/jpeg/jdmainct.c | 512 - src/jpeg/jdmarker.c | 1360 -- src/jpeg/jdmaster.c | 557 - src/jpeg/jdmerge.c | 400 - src/jpeg/jdphuff.c | 668 - src/jpeg/jdpostct.c | 290 - src/jpeg/jdsample.c | 478 - src/jpeg/jdtrans.c | 143 - src/jpeg/jerror.c | 252 - src/jpeg/jerror.h | 291 - src/jpeg/jfdctflt.c | 168 - src/jpeg/jfdctfst.c | 224 - src/jpeg/jfdctint.c | 283 - src/jpeg/jidctflt.c | 242 - src/jpeg/jidctfst.c | 368 - src/jpeg/jidctint.c | 389 - src/jpeg/jidctred.c | 398 - src/jpeg/jinclude.h | 91 - src/jpeg/jmemansi.c | 167 - src/jpeg/jmemdos.c | 638 - src/jpeg/jmemdosa.asm | 379 - src/jpeg/jmemmac.c | 289 - src/jpeg/jmemmgr.c | 1118 -- src/jpeg/jmemname.c | 276 - src/jpeg/jmemnobs.c | 109 - src/jpeg/jmemsys.h | 198 - src/jpeg/jmorecfg.h | 369 - src/jpeg/jpegint.h | 392 - src/jpeg/jpeglib.h | 1096 -- src/jpeg/jpegtran.1 | 238 - src/jpeg/jpegtran.c | 504 - src/jpeg/jquant1.c | 856 -- src/jpeg/jquant2.c | 1310 -- src/jpeg/jutils.c | 179 - src/jpeg/jversion.h | 14 - src/jpeg/makefile.b32 | 77 - src/jpeg/makefile.bcc | 285 - src/jpeg/makefile.unx | 36 - src/jpeg/makefile.vc | 99 - src/mac/accel.cpp | 93 - src/mac/app.cpp | 1405 -- src/mac/apprsrc.r | 627 - src/mac/bitmap.cpp | 430 - src/mac/bmpbuttn.cpp | 65 - src/mac/brush.cpp | 140 - src/mac/button.cpp | 75 - src/mac/carbon/accel.cpp | 93 - src/mac/carbon/app.cpp | 1405 -- src/mac/carbon/apprsrc.r | 627 - src/mac/carbon/bitmap.cpp | 430 - src/mac/carbon/bmpbuttn.cpp | 65 - src/mac/carbon/brush.cpp | 140 - src/mac/carbon/button.cpp | 75 - src/mac/carbon/checkbox.cpp | 117 - src/mac/carbon/checklst.cpp | 74 - src/mac/carbon/choice.cpp | 119 - src/mac/carbon/clipbrd.cpp | 237 - src/mac/carbon/colordlg.cpp | 53 - src/mac/carbon/colour.cpp | 103 - src/mac/carbon/combobox.cpp | 165 - src/mac/carbon/control.cpp | 95 - src/mac/carbon/corersrc.r | 539 - src/mac/carbon/cursor.cpp | 187 - src/mac/carbon/data.cpp | 147 - src/mac/carbon/dc.cpp | 385 - src/mac/carbon/dcclient.cpp | 635 - src/mac/carbon/dcmemory.cpp | 64 - src/mac/carbon/dcscreen.cpp | 32 - src/mac/carbon/dialog.cpp | 286 - src/mac/carbon/dirdlg.cpp | 42 - src/mac/carbon/dnd.cpp | 133 - src/mac/carbon/filedlg.cpp | 143 - src/mac/carbon/font.cpp | 244 - src/mac/carbon/fontdlg.cpp | 55 - src/mac/carbon/frame.cpp | 565 - src/mac/carbon/gauge.cpp | 95 - src/mac/carbon/gdiobj.cpp | 22 - src/mac/carbon/helpxxxx.cpp | 83 - src/mac/carbon/icon.cpp | 70 - src/mac/carbon/imaglist.cpp | 118 - src/mac/carbon/joystick.cpp | 279 - src/mac/carbon/listbox.cpp | 235 - src/mac/carbon/listctrl.cpp | 596 - src/mac/carbon/main.cpp | 18 - src/mac/carbon/makefile.nt | 955 -- src/mac/carbon/makefile.unx | 201 - src/mac/carbon/mdi.cpp | 265 - src/mac/carbon/menu.cpp | 571 - src/mac/carbon/menuitem.cpp | 96 - src/mac/carbon/metafile.cpp | 239 - src/mac/carbon/minifram.cpp | 22 - src/mac/carbon/msgdlg.cpp | 36 - src/mac/carbon/notebook.cpp | 377 - src/mac/carbon/palette.cpp | 82 - src/mac/carbon/pen.cpp | 202 - src/mac/carbon/print.cpp | 82 - src/mac/carbon/printdlg.cpp | 115 - src/mac/carbon/radiobox.cpp | 194 - src/mac/carbon/radiobut.cpp | 68 - src/mac/carbon/region.cpp | 363 - src/mac/carbon/scrolbar.cpp | 81 - src/mac/carbon/settings.cpp | 176 - src/mac/carbon/slider.cpp | 190 - src/mac/carbon/spinbutt.cpp | 78 - src/mac/carbon/statbmp.cpp | 59 - src/mac/carbon/statbox.cpp | 62 - src/mac/carbon/stattext.cpp | 60 - src/mac/carbon/statusbr.cpp | 162 - src/mac/carbon/tabctrl.cpp | 201 - src/mac/carbon/taskbar.cpp | 70 - src/mac/carbon/textctrl.cpp | 452 - src/mac/carbon/thread.cpp | 264 - src/mac/carbon/timer.cpp | 52 - src/mac/carbon/toolbar.cpp | 145 - src/mac/carbon/treectrl.cpp | 418 - src/mac/carbon/utils.cpp | 272 - src/mac/carbon/utilsexc.cpp | 28 - src/mac/carbon/wave.cpp | 61 - src/mac/carbon/window.cpp | 1295 -- src/mac/checkbox.cpp | 117 - src/mac/checklst.cpp | 74 - src/mac/choice.cpp | 119 - src/mac/clipbrd.cpp | 237 - src/mac/colordlg.cpp | 53 - src/mac/colour.cpp | 103 - src/mac/combobox.cpp | 165 - src/mac/control.cpp | 95 - src/mac/corersrc.r | 539 - src/mac/cursor.cpp | 187 - src/mac/data.cpp | 147 - src/mac/dc.cpp | 385 - src/mac/dcclient.cpp | 635 - src/mac/dcmemory.cpp | 64 - src/mac/dcscreen.cpp | 32 - src/mac/dialog.cpp | 286 - src/mac/dirdlg.cpp | 42 - src/mac/dnd.cpp | 133 - src/mac/filedlg.cpp | 143 - src/mac/font.cpp | 244 - src/mac/fontdlg.cpp | 55 - src/mac/frame.cpp | 565 - src/mac/gauge.cpp | 95 - src/mac/gdiobj.cpp | 22 - src/mac/helpxxxx.cpp | 83 - src/mac/icon.cpp | 70 - src/mac/imaglist.cpp | 118 - src/mac/joystick.cpp | 279 - src/mac/listbox.cpp | 235 - src/mac/listctrl.cpp | 596 - src/mac/macsock/sock_PPC.lib | 1 - src/mac/main.cpp | 18 - src/mac/makefile.nt | 955 -- src/mac/makefile.unx | 201 - src/mac/mdi.cpp | 265 - src/mac/menu.cpp | 571 - src/mac/menuitem.cpp | 96 - src/mac/metafile.cpp | 239 - src/mac/minifram.cpp | 22 - src/mac/morefile/Director.cpp | 653 - src/mac/morefile/Director.h | 493 - src/mac/morefile/FSpCompa.cpp | 928 -- src/mac/morefile/FSpCompa.h | 488 - src/mac/morefile/FileCopy.cpp | 593 - src/mac/morefile/FileCopy.h | 220 - src/mac/morefile/FullPath.cpp | 246 - src/mac/morefile/FullPath.h | 243 - src/mac/morefile/IterateD.cpp | 189 - src/mac/morefile/IterateD.h | 171 - src/mac/morefile/MoreDesk.cpp | 1254 -- src/mac/morefile/MoreDesk.h | 541 - src/mac/morefile/MoreExtr.cpp | 3228 ----- src/mac/morefile/MoreExtr.h | 3141 ----- src/mac/morefile/MoreFile.cpp | 628 - src/mac/morefile/MoreFile.h | 1244 -- src/mac/morefile/Optim.h | 91 - src/mac/morefile/OptimEnd.h | 40 - src/mac/morefile/Search.cpp | 1275 -- src/mac/morefile/Search.h | 246 - src/mac/msgdlg.cpp | 36 - src/mac/notebook.cpp | 377 - src/mac/palette.cpp | 82 - src/mac/pen.cpp | 202 - src/mac/print.cpp | 82 - src/mac/printdlg.cpp | 115 - src/mac/radiobox.cpp | 194 - src/mac/radiobut.cpp | 68 - src/mac/region.cpp | 363 - src/mac/scrolbar.cpp | 81 - src/mac/settings.cpp | 176 - src/mac/slider.cpp | 190 - src/mac/spinbutt.cpp | 78 - src/mac/statbmp.cpp | 59 - src/mac/statbox.cpp | 62 - src/mac/stattext.cpp | 60 - src/mac/statusbr.cpp | 162 - src/mac/tabctrl.cpp | 201 - src/mac/taskbar.cpp | 70 - src/mac/textctrl.cpp | 452 - src/mac/thread.cpp | 264 - src/mac/timer.cpp | 52 - src/mac/toolbar.cpp | 145 - src/mac/treectrl.cpp | 418 - src/mac/utils.cpp | 272 - src/mac/utilsexc.cpp | 28 - src/mac/wave.cpp | 61 - src/mac/window.cpp | 1295 -- src/make.env | 122 - src/make_cw.mcp | Bin 265246 -> 0 bytes src/makeb32.env | 67 - src/makebcc.env | 33 - src/makeenvs/linux.env | 122 - src/makeenvs/sgi.env | 119 - src/makeenvs/solaris.env | 122 - src/makefile.bcc | 97 - src/makefile.dos | 51 - src/makefile.vc | 35 - src/makeg95.env | 170 - src/makelib.b32 | 33 - src/makelib.bcc | 37 - src/makelib.env | 14 - src/makelib.g95 | 23 - src/makelib.vc | 42 - src/makelib.wat | 26 - src/makemsc.env | 71 - src/makeprog.b32 | 57 - src/makeprog.bcc | 35 - src/makeprog.env | 13 - src/makeprog.g95 | 23 - src/makeprog.msc | 58 - src/makeprog.sl | 28 - src/makeprog.vc | 49 - src/makeprog.wat | 39 - src/makesc.env | 41 - src/makesl.env | 53 - src/maketwin.env | 160 - src/makevc.env | 206 - src/makewat.env | 91 - src/mingegcs.bat | 17 - src/mingw32.bat | 16 - src/motif/Makefile.am | 210 - src/motif/accel.cpp | 118 - src/motif/app.cpp | 659 - src/motif/bdiag.xbm | 6 - src/motif/bitmap.cpp | 1030 -- src/motif/bmpbuttn.cpp | 254 - src/motif/brush.cpp | 135 - src/motif/button.cpp | 154 - src/motif/cdiag.xbm | 6 - src/motif/checkbox.cpp | 186 - src/motif/checklst.cpp | 74 - src/motif/choice.cpp | 479 - src/motif/clipbrd.cpp | 527 - src/motif/colordlg.cpp | 53 - src/motif/colour.cpp | 210 - src/motif/combobox.cpp | 334 - src/motif/control.cpp | 130 - src/motif/cross.xbm | 6 - src/motif/cursor.cpp | 436 - src/motif/data.cpp | 150 - src/motif/dataobj.cpp | 69 - src/motif/dc.cpp | 259 - src/motif/dcclient.cpp | 2223 --- src/motif/dcmemory.cpp | 148 - src/motif/dcscreen.cpp | 127 - src/motif/dialog.cpp | 696 - src/motif/dirdlg.cpp | 42 - src/motif/dnd.cpp | 238 - src/motif/fdiag.xbm | 6 - src/motif/filedlg.cpp | 360 - src/motif/font.cpp | 379 - src/motif/fontdlg.cpp | 55 - src/motif/frame.cpp | 1117 -- src/motif/gauge.cpp | 773 - src/motif/gdiobj.cpp | 20 - src/motif/helpxxxx.cpp | 83 - src/motif/horiz.xbm | 6 - src/motif/icon.cpp | 73 - src/motif/joystick.cpp | 279 - src/motif/listbox.cpp | 789 -- src/motif/main.cpp | 18 - src/motif/makefile.unx | 250 - src/motif/mdi.cpp | 665 - src/motif/mdi/COPYRIGHT | 28 - src/motif/mdi/Imakefile | 9 - src/motif/mdi/README | 221 - src/motif/mdi/config/C++.rules | 9 - src/motif/mdi/config/MDI.tmpl | 52 - src/motif/mdi/doc/canvas.html | 140 - src/motif/mdi/doc/mdi.html | 182 - src/motif/mdi/doc/mwindow.html | 277 - src/motif/mdi/doc/pics/classes.gif | Bin 4051 -> 0 bytes src/motif/mdi/doc/pics/mdi.gif | Bin 13227 -> 0 bytes src/motif/mdi/doc/pics/winclass.gif | Bin 4652 -> 0 bytes src/motif/mdi/lib/Imakefile | 21 - src/motif/mdi/lib/XsComponent.C | 201 - src/motif/mdi/lib/XsComponent.h | 95 - src/motif/mdi/lib/XsMDICanvas.C | 298 - src/motif/mdi/lib/XsMDICanvas.h | 98 - src/motif/mdi/lib/XsMDIWindow.C | 156 - src/motif/mdi/lib/XsMDIWindow.h | 89 - src/motif/mdi/lib/XsMotifWindow.C | 3386 ----- src/motif/mdi/lib/XsMotifWindow.h | 665 - src/motif/mdi/lib/XsMoveOutline.C | 82 - src/motif/mdi/lib/XsMoveOutline.h | 52 - src/motif/mdi/lib/XsOutline.C | 241 - src/motif/mdi/lib/XsOutline.h | 109 - src/motif/mdi/lib/XsResizeOutline.C | 231 - src/motif/mdi/lib/XsResizeOutline.h | 70 - src/motif/mdi/lib/xs_motif_icon.xbm | 27 - src/motif/mdi/test/Imakefile | 25 - src/motif/mdi/test/MDItest.C | 391 - src/motif/menu.cpp | 1187 -- src/motif/menuitem.cpp | 363 - src/motif/metafile.cpp | 239 - src/motif/minifram.cpp | 22 - src/motif/msgdlg.cpp | 36 - src/motif/palette.cpp | 353 - src/motif/pen.cpp | 194 - src/motif/printdlg.cpp | 115 - src/motif/radiobox.cpp | 497 - src/motif/radiobut.cpp | 153 - src/motif/region.cpp | 399 - src/motif/scrolbar.cpp | 242 - src/motif/settings.cpp | 227 - src/motif/slider.cpp | 293 - src/motif/spinbutt.cpp | 93 - src/motif/statbmp.cpp | 132 - src/motif/statbox.cpp | 221 - src/motif/stattext.cpp | 96 - src/motif/tabctrl.cpp | 201 - src/motif/taskbar.cpp | 70 - src/motif/textctrl.cpp | 1058 -- src/motif/timer.cpp | 92 - src/motif/toolbar.cpp | 606 - src/motif/utils.cpp | 1184 -- src/motif/verti.xbm | 6 - src/motif/wave.cpp | 61 - src/motif/window.cpp | 2799 ---- src/motif/wxwin.xbm | 46 - src/motif/xmcombo/combobox.doc | 220 - src/motif/xmcombo/combobox.man | 1386 -- src/motif/xmcombo/combop.h | 131 - src/motif/xmcombo/copying.txt | 339 - src/motif/xmcombo/demo.c | 214 - src/motif/xmcombo/xmcombo.c | 3543 ----- src/motif/xmcombo/xmcombo.h | 223 - src/msw/Makefile.am | 203 - src/msw/accel.cpp | 160 - src/msw/app.cpp | 1158 -- src/msw/bitmap.cpp | 787 -- src/msw/bmpbuttn.cpp | 271 - src/msw/brush.cpp | 239 - src/msw/button.cpp | 200 - src/msw/caret.cpp | 192 - src/msw/checkbox.cpp | 315 - src/msw/checklst.cpp | 405 - src/msw/choice.cpp | 352 - src/msw/clipbrd.cpp | 623 - src/msw/colordlg.cpp | 126 - src/msw/colour.cpp | 111 - src/msw/combobox.cpp | 328 - src/msw/control.cpp | 187 - src/msw/ctl3d/borland/makefile.b32 | 25 - src/msw/ctl3d/borland/makefile.bcc | 25 - src/msw/ctl3d/ctl3d.dll | Bin 255 -> 0 bytes src/msw/ctl3d/ctl3d32.dll | Bin 6510 -> 0 bytes src/msw/ctl3d/ctl3dv2.dll | Bin 255 -> 0 bytes src/msw/ctl3d/msvc/ctl3d.h | 61 - src/msw/ctl3d/msvc/ctl3d.lib | Bin 338 -> 0 bytes src/msw/ctl3d/msvc/ctl3dv2.lib | Bin 1557 -> 0 bytes src/msw/ctl3d/readme.txt | 31 - src/msw/ctl3d/wat32/import32.zip | Bin 567 -> 0 bytes src/msw/ctl3d/wat386/ctl3d.h | 61 - src/msw/ctl3d/wat386/ctl3d32.c | 285 - src/msw/ctl3d/wat386/ctl3d32.lnk | 1 - src/msw/ctl3d/wat386/ctl3d32.obj | Bin 1597 -> 0 bytes src/msw/ctl3d/wat386/ctl3d32.txt | 11 - src/msw/ctl3d/wat386/makefile.wat | 23 - src/msw/curico.cpp | 906 -- src/msw/cursor.cpp | 282 - src/msw/data.cpp | 788 -- src/msw/dc.cpp | 1575 --- src/msw/dcclient.cpp | 242 - src/msw/dcmemory.cpp | 130 - src/msw/dcprint.cpp | 391 - src/msw/dcscreen.cpp | 50 - src/msw/dde.cpp | 804 -- src/msw/dialog.cpp | 661 - src/msw/dib.cpp | 945 -- src/msw/dibutils.cpp | 709 - src/msw/dirdlg.cpp | 131 - src/msw/dragimag.cpp | 253 - src/msw/dummy.cpp | 38 - src/msw/dummydll.cpp | 25 - src/msw/filedlg.cpp | 389 - src/msw/font.cpp | 382 - src/msw/fontdlg.cpp | 281 - src/msw/frame.cpp | 1056 -- src/msw/gauge95.cpp | 205 - src/msw/gaugemsw.cpp | 1183 -- src/msw/gdiobj.cpp | 68 - src/msw/helpwin.cpp | 160 - src/msw/icon.cpp | 189 - src/msw/imaglist.cpp | 232 - src/msw/iniconf.cpp | 470 - src/msw/joystick.cpp | 546 - src/msw/listbox.cpp | 816 -- src/msw/listctrl.cpp | 1496 -- src/msw/main.cpp | 102 - src/msw/makefile.b32 | 765 - src/msw/makefile.bcc | 754 - src/msw/makefile.dos | 1147 -- src/msw/makefile.g95 | 317 - src/msw/makefile.sc | 259 - src/msw/makefile.sl | 929 -- src/msw/makefile.twn | 325 - src/msw/makefile.vc | 735 - src/msw/makefile.wat | 945 -- src/msw/mdi.cpp | 1191 -- src/msw/menu.cpp | 1139 -- src/msw/menuitem.cpp | 217 - src/msw/metafile.cpp | 419 - src/msw/minifram.cpp | 1610 --- src/msw/msgdlg.cpp | 105 - src/msw/nativdlg.cpp | 301 - src/msw/notebook.cpp | 531 - src/msw/ole/automtn.cpp | 1158 -- src/msw/ole/dataobj.cpp | 499 - src/msw/ole/dropsrc.cpp | 239 - src/msw/ole/droptgt.cpp | 420 - src/msw/ole/oleutils.cpp | 208 - src/msw/ole/uuid.cpp | 152 - src/msw/ownerdrw.cpp | 237 - src/msw/palette.cpp | 145 - src/msw/pen.cpp | 424 - src/msw/penwin.cpp | 120 - src/msw/pnghand.cpp | 786 -- src/msw/printdlg.cpp | 186 - src/msw/printwin.cpp | 407 - src/msw/radiobox.cpp | 785 -- src/msw/radiobut.cpp | 266 - src/msw/regconf.cpp | 567 - src/msw/region.cpp | 429 - src/msw/registry.cpp | 838 -- src/msw/salford.lnk | 153 - src/msw/scrolbar.cpp | 349 - src/msw/settings.cpp | 167 - src/msw/slider95.cpp | 645 - src/msw/slidrmsw.cpp | 585 - src/msw/spinbutt.cpp | 199 - src/msw/statbmp.cpp | 261 - src/msw/statbox.cpp | 233 - src/msw/statbr95.cpp | 235 - src/msw/stattext.cpp | 211 - src/msw/tabctrl.cpp | 458 - src/msw/taskbar.cpp | 350 - src/msw/tbar95.cpp | 634 - src/msw/tbarmsw.cpp | 963 -- src/msw/textctrl.cpp | 1281 -- src/msw/thread.cpp | 864 -- src/msw/timer.cpp | 151 - src/msw/tooltip.cpp | 280 - src/msw/treectrl.cpp | 1085 -- src/msw/utils.cpp | 1222 -- src/msw/utilsexc.cpp | 340 - src/msw/wave.cpp | 168 - src/msw/window.cpp | 3853 ----- src/msw/winestub.c | 45 - src/msw/wx.def | 11 - src/msw/wxb32.def | 9 - src/msw/xpmhand.cpp | 182 - src/ntwxwin.mak | 3 - src/png/ANNOUNCE | 53 - src/png/CHANGES | 389 - src/png/INSTALL | 91 - src/png/README | 198 - src/png/TODO | 24 - src/png/Y2KINFO | 52 - src/png/ansi2knr.1 | 36 - src/png/ansi2knr.c | 695 - src/png/example.c | 702 - src/png/libpng.3 | 2621 ---- src/png/libpng.txt | 2067 --- src/png/libpngpf.3 | 347 - src/png/makefile.b32 | 20 - src/png/makefile.bcc | 92 - src/png/makefile.dos | 77 - src/png/makefile.nt | 68 - src/png/makefile.unx | 30 - src/png/makefile.vc | 64 - src/png/makefile.wat | 37 - src/png/png.5 | 44 - src/png/png.c | 359 - src/png/png.h | 2227 --- src/png/pngconf.h | 705 - src/png/pngerror.c | 172 - src/png/pngget.c | 650 - src/png/pngmem.c | 511 - src/png/pngpread.c | 1141 -- src/png/pngread.c | 885 -- src/png/pngrio.c | 151 - src/png/pngrtran.c | 3931 ------ src/png/pngrutil.c | 2272 --- src/png/pngset.c | 380 - src/png/pngtest.c | 1081 -- src/png/pngtrans.c | 572 - src/png/pngwio.c | 213 - src/png/pngwrite.c | 1004 -- src/png/pngwtran.c | 497 - src/png/pngwutil.c | 2063 --- src/png/scripts/SCOPTIONS.ppc | 7 - src/png/scripts/build.bat | 2 - src/png/scripts/descrip.mms | 52 - src/png/scripts/makefile.aco | 221 - src/png/scripts/makefile.ama | 42 - src/png/scripts/makefile.atr | 31 - src/png/scripts/makefile.bor | 168 - src/png/scripts/makefile.dec | 68 - src/png/scripts/makefile.dj2 | 52 - src/png/scripts/makefile.knr | 73 - src/png/scripts/makefile.lnx | 99 - src/png/scripts/makefile.mip | 62 - src/png/scripts/makefile.msc | 86 - src/png/scripts/makefile.os2 | 69 - src/png/scripts/makefile.s2x | 104 - src/png/scripts/makefile.sgi | 69 - src/png/scripts/makefile.std | 68 - src/png/scripts/makefile.sun | 72 - src/png/scripts/makefile.tc3 | 82 - src/png/scripts/makefile.wat | 88 - src/png/scripts/makevms.com | 125 - src/png/scripts/pngos2.def | 286 - src/png/scripts/smakefile.ppc | 29 - src/qt/app.cpp | 395 - src/qt/bdiag.xbm | 6 - src/qt/bitmap.cpp | 430 - src/qt/bmpbuttn.cpp | 65 - src/qt/brush.cpp | 162 - src/qt/button.cpp | 75 - src/qt/cdiag.xbm | 6 - src/qt/checkbox.cpp | 117 - src/qt/choice.cpp | 119 - src/qt/colour.cpp | 126 - src/qt/combobox.cpp | 116 - src/qt/control.cpp | 111 - src/qt/cross.xbm | 6 - src/qt/cursor.cpp | 186 - src/qt/data.cpp | 145 - src/qt/dc.cpp | 392 - src/qt/dcclient.cpp | 620 - src/qt/dcmemory.cpp | 68 - src/qt/dcscreen.cpp | 32 - src/qt/dialog.cpp | 293 - src/qt/dnd.cpp | 133 - src/qt/fdiag.xbm | 6 - src/qt/filedlg.cpp | 142 - src/qt/font.cpp | 241 - src/qt/frame.cpp | 535 - src/qt/gauge.cpp | 105 - src/qt/gdiobj.cpp | 22 - src/qt/horiz.xbm | 6 - src/qt/icon.cpp | 70 - src/qt/joystick.cpp | 279 - src/qt/listbox.cpp | 240 - src/qt/mdi.cpp | 263 - src/qt/menu.cpp | 568 - src/qt/notebook.cpp | 371 - src/qt/palette.cpp | 91 - src/qt/pen.cpp | 229 - src/qt/radiobox.cpp | 194 - src/qt/radiobut.cpp | 68 - src/qt/region.cpp | 373 - src/qt/scrolbar.cpp | 78 - src/qt/settings.cpp | 151 - src/qt/slider.cpp | 185 - src/qt/statbmp.cpp | 59 - src/qt/statbox.cpp | 62 - src/qt/stattext.cpp | 211 - src/qt/tbargtk.cpp | 193 - src/qt/textctrl.cpp | 444 - src/qt/threadgui.inc | 65 - src/qt/threadno.cpp | 187 - src/qt/threadpsx.cpp | 396 - src/qt/threadsgi.cpp | 254 - src/qt/timer.cpp | 56 - src/qt/utilsgtk.cpp | 367 - src/qt/utilsres.cpp | 332 - src/qt/verti.xbm | 6 - src/qt/window.cpp | 1284 -- src/regex/COPYRIGHT | 20 - src/regex/Makefile | 130 - src/regex/README | 32 - src/regex/WHATSNEW | 108 - src/regex/cclass.h | 31 - src/regex/cname.h | 102 - src/regex/mkh | 76 - src/regex/regerror.c | 109 - src/regex/regex.3 | 509 - src/regex/regex.7 | 235 - src/regex/regfree.c | 53 - src/regex/regfronts.c | 83 - src/regex/tests | 477 - src/stubs/accel.cpp | 93 - src/stubs/app.cpp | 391 - src/stubs/bitmap.cpp | 430 - src/stubs/bmpbuttn.cpp | 65 - src/stubs/brush.cpp | 140 - src/stubs/button.cpp | 75 - src/stubs/checkbox.cpp | 117 - src/stubs/checklst.cpp | 74 - src/stubs/choice.cpp | 119 - src/stubs/clipbrd.cpp | 237 - src/stubs/colordlg.cpp | 53 - src/stubs/colour.cpp | 103 - src/stubs/combobox.cpp | 165 - src/stubs/control.cpp | 95 - src/stubs/cursor.cpp | 187 - src/stubs/data.cpp | 147 - src/stubs/dc.cpp | 385 - src/stubs/dcclient.cpp | 635 - src/stubs/dcmemory.cpp | 64 - src/stubs/dcscreen.cpp | 32 - src/stubs/dialog.cpp | 286 - src/stubs/dirdlg.cpp | 42 - src/stubs/dnd.cpp | 133 - src/stubs/filedlg.cpp | 138 - src/stubs/font.cpp | 244 - src/stubs/fontdlg.cpp | 55 - src/stubs/frame.cpp | 562 - src/stubs/gauge.cpp | 95 - src/stubs/gdiobj.cpp | 22 - src/stubs/helpxxxx.cpp | 83 - src/stubs/icon.cpp | 70 - src/stubs/imaglist.cpp | 118 - src/stubs/joystick.cpp | 279 - src/stubs/listbox.cpp | 235 - src/stubs/listctrl.cpp | 596 - src/stubs/main.cpp | 18 - src/stubs/makefile.unx | 204 - src/stubs/makefile.vc | 979 -- src/stubs/mdi.cpp | 265 - src/stubs/menu.cpp | 614 - src/stubs/menuitem.cpp | 96 - src/stubs/metafile.cpp | 239 - src/stubs/minifram.cpp | 22 - src/stubs/msgdlg.cpp | 36 - src/stubs/notebook.cpp | 382 - src/stubs/palette.cpp | 82 - src/stubs/pen.cpp | 202 - src/stubs/print.cpp | 82 - src/stubs/printdlg.cpp | 115 - src/stubs/radiobox.cpp | 194 - src/stubs/radiobut.cpp | 68 - src/stubs/region.cpp | 363 - src/stubs/scrolbar.cpp | 78 - src/stubs/settings.cpp | 176 - src/stubs/slider.cpp | 190 - src/stubs/spinbutt.cpp | 78 - src/stubs/statbmp.cpp | 59 - src/stubs/statbox.cpp | 62 - src/stubs/stattext.cpp | 60 - src/stubs/statusbr.cpp | 162 - src/stubs/tabctrl.cpp | 201 - src/stubs/taskbar.cpp | 70 - src/stubs/textctrl.cpp | 558 - src/stubs/thread.cpp | 265 - src/stubs/timer.cpp | 52 - src/stubs/toolbar.cpp | 145 - src/stubs/treectrl.cpp | 418 - src/stubs/utils.cpp | 272 - src/stubs/utilsexc.cpp | 28 - src/stubs/wave.cpp | 61 - src/stubs/window.cpp | 1317 -- src/unix/threadpsx.cpp | 880 -- src/unix/utilsunx.cpp | 560 - src/xpm/changes | 704 - src/xpm/copyrigh.t | 31 - src/xpm/crbuffri.c | 324 - src/xpm/crbuffrp.c | 82 - src/xpm/crdatfri.c | 304 - src/xpm/crdatfrp.c | 83 - src/xpm/create.c | 1461 -- src/xpm/crifrbuf.c | 90 - src/xpm/crifrdat.c | 89 - src/xpm/crpfrbuf.c | 72 - src/xpm/crpfrdat.c | 75 - src/xpm/data.c | 627 - src/xpm/dataxpm.c | 627 - src/xpm/files | 47 - src/xpm/hashtab.c | 224 - src/xpm/makefile.vc | 160 - src/xpm/makefile.wat | 54 - src/xpm/misc.c | 572 - src/xpm/parse.c | 705 - src/xpm/rdftodat.c | 63 - src/xpm/rdftoi.c | 91 - src/xpm/rdftop.c | 72 - src/xpm/readme | 192 - src/xpm/readme.msw | 83 - src/xpm/rgb.c | 282 - src/xpm/rgbtab.h | 292 - src/xpm/scan.c | 843 -- src/xpm/simx.c | 284 - src/xpm/simx.h | 142 - src/xpm/wrffrdat.c | 58 - src/xpm/wrffri.c | 258 - src/xpm/wrffrp.c | 83 - src/xpm/xpm34.h | 555 - src/xpm/xpm34p.h | 304 - src/zlib/ChangeLog | 423 - src/zlib/INDEX | 82 - src/zlib/Make_vms.com | 115 - src/zlib/Makefile.in2 | 160 - src/zlib/Makefile.riscos | 46 - src/zlib/README | 143 - src/zlib/adler32.c | 48 - src/zlib/algorithm.txt | 213 - src/zlib/compress.c | 68 - src/zlib/configure | 163 - src/zlib/crc32.c | 162 - src/zlib/deflate.c | 1348 -- src/zlib/deflate.h | 318 - src/zlib/descrip.mms | 48 - src/zlib/example.c | 550 - src/zlib/gzio.c | 869 -- src/zlib/infblock.c | 405 - src/zlib/infblock.h | 39 - src/zlib/infcodes.c | 250 - src/zlib/infcodes.h | 27 - src/zlib/inffast.c | 170 - src/zlib/inffast.h | 17 - src/zlib/inffixed.h | 125 - src/zlib/inflate.c | 366 - src/zlib/inftrees.c | 455 - src/zlib/inftrees.h | 58 - src/zlib/infutil.c | 87 - src/zlib/infutil.h | 98 - src/zlib/makefile.b32 | 24 - src/zlib/makefile.bcc | 88 - src/zlib/makefile.dos | 91 - src/zlib/makefile.unx | 30 - src/zlib/makefile.vc | 88 - src/zlib/makefile.wat | 107 - src/zlib/maketree.c | 119 - src/zlib/minigzip.c | 317 - src/zlib/trees.c | 1216 -- src/zlib/trees.h | 128 - src/zlib/uncompr.c | 58 - src/zlib/zconf.h | 252 - src/zlib/zlib.3 | 107 - src/zlib/zlib.h | 888 -- src/zlib/zutil.c | 225 - src/zlib/zutil.h | 221 - tests/lltest.cpp | 645 - user/wxConvert/.cvsignore | 2 - user/wxConvert/wxConvert.cpp | 175 - user/wxConvert/wxConvert.h | 71 - user/wxFile/.cvsignore | 2 - user/wxFile/FMJobs.cpp | 326 - user/wxFile/FMJobs.h | 143 - user/wxFile/commanderview.xpm | 31 - user/wxFile/delete.xpm | 31 - user/wxFile/dirctrl.cpp | 211 - user/wxFile/dirctrl.h | 74 - user/wxFile/exit.xpm | 29 - user/wxFile/filectrl.cpp | 544 - user/wxFile/filectrl.h | 115 - user/wxFile/fileopen.xpm | 30 - user/wxFile/find.xpm | 99 - user/wxFile/folder.xpm | 48 - user/wxFile/help.xpm | 29 - user/wxFile/home.xpm | 28 - user/wxFile/iconview.xpm | 31 - user/wxFile/list.xpm | 45 - user/wxFile/listview.xpm | 30 - user/wxFile/prev.xpm | 29 - user/wxFile/reportview.xpm | 31 - user/wxFile/save.xpm | 30 - user/wxFile/search.xpm | 32 - user/wxFile/singleview.xpm | 30 - user/wxFile/trash.xpm | 44 - user/wxFile/treeview.xpm | 31 - user/wxFile/txt.xpm | 53 - user/wxFile/wxFile.cpp | 355 - user/wxFile/wxFile.h | 85 - user/wxTest/.cvsignore | 2 - user/wxTest/folder.xpm | 48 - user/wxTest/horse.png | Bin 68850 -> 0 bytes user/wxTest/list.xpm | 45 - user/wxTest/test.xpm | 11638 ---------------- user/wxTest/wxTest.cpp | 581 - user/wxTest/wxTest.h | 164 - utils/HelpGen/include/cjparser.h | 125 - utils/HelpGen/include/docripper.h | 157 - utils/HelpGen/include/ifcontext.h | 100 - utils/HelpGen/include/markup.h | 51 - utils/HelpGen/include/scriptbinder.h | 377 - utils/HelpGen/include/sourcepainter.h | 104 - utils/HelpGen/include/srcparser.h | 769 - utils/HelpGen/include/wxstlac.h | 667 - utils/HelpGen/include/wxstllst.h | 559 - utils/HelpGen/include/wxstlvec.h | 781 -- utils/HelpGen/src/HelpGen.cpp | 1965 --- utils/HelpGen/src/HelpGen.rc | 3 - utils/HelpGen/src/cjparser.cpp | 2294 --- utils/HelpGen/src/docripper.cpp | 568 - utils/HelpGen/src/ifcontext.cpp | 295 - utils/HelpGen/src/makefile.nt | 66 - utils/HelpGen/src/markup.cpp | 46 - utils/HelpGen/src/ripper_main.cpp | 157 - utils/HelpGen/src/scriptbinder.cpp | 618 - utils/HelpGen/src/sourcepainter.cpp | 676 - utils/HelpGen/src/srcparser.cpp | 708 - utils/HelpGen/src/wx_extra_imps.cpp | 81 - utils/HelpHTML/README | 58 - utils/HelpHTML/html2wxhelp | 44 - utils/HelpHTML/striphelpids | 17 - utils/dialoged/docs/alignb.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/alignb.eps | 161 - utils/dialoged/docs/alignb.gif | Bin 132 -> 0 bytes utils/dialoged/docs/alignl.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/alignl.eps | 161 - utils/dialoged/docs/alignl.gif | Bin 124 -> 0 bytes utils/dialoged/docs/alignr.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/alignr.eps | 161 - utils/dialoged/docs/alignr.gif | Bin 126 -> 0 bytes utils/dialoged/docs/alignt.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/alignt.eps | 161 - utils/dialoged/docs/alignt.gif | Bin 131 -> 0 bytes utils/dialoged/docs/arrow.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/arrow.eps | 174 - utils/dialoged/docs/arrow.gif | Bin 193 -> 0 bytes utils/dialoged/docs/back.gif | Bin 225 -> 0 bytes utils/dialoged/docs/bmpbuttn.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/bmpbuttn.eps | 174 - utils/dialoged/docs/bmpbuttn.gif | Bin 216 -> 0 bytes utils/dialoged/docs/body.tex | 200 - utils/dialoged/docs/books.bmp | Bin 1222 -> 0 bytes utils/dialoged/docs/books.gif | Bin 438 -> 0 bytes utils/dialoged/docs/bugs.tex | 17 - utils/dialoged/docs/bullet.bmp | Bin 138 -> 0 bytes utils/dialoged/docs/button.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/button.eps | 174 - utils/dialoged/docs/button.gif | Bin 201 -> 0 bytes utils/dialoged/docs/changes.tex | 71 - utils/dialoged/docs/check.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/check.eps | 174 - utils/dialoged/docs/check.gif | Bin 215 -> 0 bytes utils/dialoged/docs/choice.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/choice.eps | 174 - utils/dialoged/docs/choice.gif | Bin 217 -> 0 bytes utils/dialoged/docs/classes.tex | 5 - utils/dialoged/docs/contents.gif | Bin 231 -> 0 bytes utils/dialoged/docs/copysize.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/copysize.eps | 161 - utils/dialoged/docs/copysize.gif | Bin 132 -> 0 bytes utils/dialoged/docs/dialog.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/dialog.eps | 174 - utils/dialoged/docs/dialog.gif | Bin 233 -> 0 bytes utils/dialoged/docs/dialoged.hpj | 17 - utils/dialoged/docs/dialoged.tex | 48 - utils/dialoged/docs/forward.gif | Bin 164 -> 0 bytes utils/dialoged/docs/gauge.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/gauge.eps | 174 - utils/dialoged/docs/gauge.gif | Bin 212 -> 0 bytes utils/dialoged/docs/group.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/group.eps | 174 - utils/dialoged/docs/group.gif | Bin 212 -> 0 bytes utils/dialoged/docs/help.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/help.eps | 161 - utils/dialoged/docs/help.gif | Bin 129 -> 0 bytes utils/dialoged/docs/horiz.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/horiz.eps | 161 - utils/dialoged/docs/horiz.gif | Bin 126 -> 0 bytes utils/dialoged/docs/listbox.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/listbox.eps | 174 - utils/dialoged/docs/listbox.gif | Bin 213 -> 0 bytes utils/dialoged/docs/load.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/load.eps | 161 - utils/dialoged/docs/load.gif | Bin 139 -> 0 bytes utils/dialoged/docs/message.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/message.eps | 174 - utils/dialoged/docs/message.gif | Bin 208 -> 0 bytes utils/dialoged/docs/mtext.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/mtext.eps | 174 - utils/dialoged/docs/mtext.gif | Bin 229 -> 0 bytes utils/dialoged/docs/new.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/new.eps | 161 - utils/dialoged/docs/new.gif | Bin 131 -> 0 bytes utils/dialoged/docs/notes.txt | 16 - utils/dialoged/docs/open.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/open.eps | 161 - utils/dialoged/docs/open.gif | Bin 137 -> 0 bytes utils/dialoged/docs/picture.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/picture.eps | 176 - utils/dialoged/docs/picture.gif | Bin 224 -> 0 bytes utils/dialoged/docs/radio.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/radio.eps | 174 - utils/dialoged/docs/radio.gif | Bin 215 -> 0 bytes utils/dialoged/docs/readme.txt | 39 - utils/dialoged/docs/save.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/save.eps | 161 - utils/dialoged/docs/save.gif | Bin 137 -> 0 bytes utils/dialoged/docs/scroll.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/scroll.eps | 174 - utils/dialoged/docs/scroll.gif | Bin 212 -> 0 bytes utils/dialoged/docs/slider.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/slider.eps | 174 - utils/dialoged/docs/slider.gif | Bin 204 -> 0 bytes utils/dialoged/docs/tech.tex | 97 - utils/dialoged/docs/tex2rtf.ini | 22 - utils/dialoged/docs/text.bmp | Bin 566 -> 0 bytes utils/dialoged/docs/text.eps | 178 - utils/dialoged/docs/text.gif | Bin 226 -> 0 bytes utils/dialoged/docs/toback.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/toback.eps | 161 - utils/dialoged/docs/toback.gif | Bin 137 -> 0 bytes utils/dialoged/docs/tofront.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/tofront.eps | 161 - utils/dialoged/docs/tofront.gif | Bin 137 -> 0 bytes utils/dialoged/docs/up.gif | Bin 137 -> 0 bytes utils/dialoged/docs/vert.bmp | Bin 238 -> 0 bytes utils/dialoged/docs/vert.eps | 161 - utils/dialoged/docs/vert.gif | Bin 131 -> 0 bytes utils/dialoged/src/.cvsignore | 7 - utils/dialoged/src/bitmaps/alignb.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/alignb.xbm | 9 - utils/dialoged/src/bitmaps/alignb.xpm | 24 - utils/dialoged/src/bitmaps/alignl.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/alignl.xbm | 9 - utils/dialoged/src/bitmaps/alignl.xpm | 24 - utils/dialoged/src/bitmaps/alignr.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/alignr.xbm | 9 - utils/dialoged/src/bitmaps/alignr.xpm | 24 - utils/dialoged/src/bitmaps/alignt.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/alignt.xbm | 9 - utils/dialoged/src/bitmaps/alignt.xpm | 24 - utils/dialoged/src/bitmaps/arrow.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/arrow.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/arrow.xbm | 13 - utils/dialoged/src/bitmaps/arrow.xpm | 24 - utils/dialoged/src/bitmaps/bmpbuttn.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/bmpbuttn.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/bmpbuttn.xbm | 11 - utils/dialoged/src/bitmaps/bmpbuttn.xpm | 30 - utils/dialoged/src/bitmaps/button.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/button.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/button.xbm | 13 - utils/dialoged/src/bitmaps/button.xpm | 26 - utils/dialoged/src/bitmaps/buttonsm.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/buttonsm.xpm | 26 - utils/dialoged/src/bitmaps/canvas.xbm | 13 - utils/dialoged/src/bitmaps/check.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/check.xbm | 13 - utils/dialoged/src/bitmaps/checkbox.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/checkbox.xpm | 27 - utils/dialoged/src/bitmaps/choice.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/choice.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/choice.xbm | 13 - utils/dialoged/src/bitmaps/choice.xpm | 27 - utils/dialoged/src/bitmaps/combobox.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/combobox.xpm | 27 - utils/dialoged/src/bitmaps/copysize.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/copysize.xbm | 8 - utils/dialoged/src/bitmaps/copysize.xpm | 24 - utils/dialoged/src/bitmaps/cpp.xbm | 9 - utils/dialoged/src/bitmaps/cross.bmp | Bin 198 -> 0 bytes utils/dialoged/src/bitmaps/dialog.bmp | Bin 566 -> 0 bytes utils/dialoged/src/bitmaps/dialog.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/dialog.xbm | 13 - utils/dialoged/src/bitmaps/dialog.xpm | 28 - utils/dialoged/src/bitmaps/dialoged.ico | Bin 766 -> 0 bytes utils/dialoged/src/bitmaps/dialoged.xpm | 44 - utils/dialoged/src/bitmaps/folder1.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/folder1.xpm | 28 - utils/dialoged/src/bitmaps/folder2.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/folder2.xpm | 28 - utils/dialoged/src/bitmaps/frame.xbm | 13 - utils/dialoged/src/bitmaps/gauge.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/gauge.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/gauge.xbm | 11 - utils/dialoged/src/bitmaps/gauge.xpm | 27 - utils/dialoged/src/bitmaps/group.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/group.xbm | 13 - utils/dialoged/src/bitmaps/help.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/help.xbm | 9 - utils/dialoged/src/bitmaps/help.xpm | 24 - utils/dialoged/src/bitmaps/horiz.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/horiz.xbm | 9 - utils/dialoged/src/bitmaps/horiz.xpm | 24 - utils/dialoged/src/bitmaps/listbox.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/listbox.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/listbox.xbm | 13 - utils/dialoged/src/bitmaps/listbox.xpm | 27 - utils/dialoged/src/bitmaps/load.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/load.xbm | 9 - utils/dialoged/src/bitmaps/load.xpm | 26 - utils/dialoged/src/bitmaps/message.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/message.xbm | 13 - utils/dialoged/src/bitmaps/mtext.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/mtext.xbm | 13 - utils/dialoged/src/bitmaps/new.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/new.xbm | 8 - utils/dialoged/src/bitmaps/new.xpm | 24 - utils/dialoged/src/bitmaps/open.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/panel.xbm | 13 - utils/dialoged/src/bitmaps/picture.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/picture.xbm | 11 - utils/dialoged/src/bitmaps/radio.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/radio.xbm | 13 - utils/dialoged/src/bitmaps/radiobox.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/radiobox.xpm | 27 - utils/dialoged/src/bitmaps/radiobtn.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/radiobtn.xpm | 26 - utils/dialoged/src/bitmaps/report.xbm | 9 - utils/dialoged/src/bitmaps/save.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/save.xbm | 9 - utils/dialoged/src/bitmaps/save.xpm | 25 - utils/dialoged/src/bitmaps/scrolbar.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/scrolbar.xpm | 26 - utils/dialoged/src/bitmaps/scroll.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/scroll.xbm | 11 - utils/dialoged/src/bitmaps/slider.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/slider.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/slider.xbm | 11 - utils/dialoged/src/bitmaps/slider.xpm | 26 - utils/dialoged/src/bitmaps/statbmp.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/statbmp.xpm | 30 - utils/dialoged/src/bitmaps/statbox.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/statbox.xpm | 26 - utils/dialoged/src/bitmaps/stattext.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/stattext.xpm | 24 - utils/dialoged/src/bitmaps/text.bmp | Bin 382 -> 0 bytes utils/dialoged/src/bitmaps/text.xbm | 13 - utils/dialoged/src/bitmaps/textmult.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/textmult.xpm | 27 - utils/dialoged/src/bitmaps/textsing.ico | Bin 1078 -> 0 bytes utils/dialoged/src/bitmaps/textsing.xpm | 27 - utils/dialoged/src/bitmaps/textsw.xbm | 13 - utils/dialoged/src/bitmaps/tick.bmp | Bin 198 -> 0 bytes utils/dialoged/src/bitmaps/toback.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/toback.xbm | 8 - utils/dialoged/src/bitmaps/toback.xpm | 25 - utils/dialoged/src/bitmaps/tofront.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/tofront.xbm | 8 - utils/dialoged/src/bitmaps/tofront.xpm | 25 - utils/dialoged/src/bitmaps/tree.xbm | 9 - utils/dialoged/src/bitmaps/treeicn.xbm | 46 - utils/dialoged/src/bitmaps/vert.bmp | Bin 238 -> 0 bytes utils/dialoged/src/bitmaps/vert.xbm | 9 - utils/dialoged/src/bitmaps/vert.xpm | 24 - utils/dialoged/src/bitmaps/wxbuild.xbm | 46 - utils/dialoged/src/bitmaps/wxwin.bmp | Bin 630 -> 0 bytes utils/dialoged/src/bitmaps/wxwin.xbm | 12 - utils/dialoged/src/bitmaps/wxwin.xpm | 46 - utils/dialoged/src/dialoged.cpp | 58 - utils/dialoged/src/dialoged.def | 8 - utils/dialoged/src/dialoged.h | 37 - utils/dialoged/src/dialoged.ico | Bin 766 -> 0 bytes utils/dialoged/src/dialoged.rc | 67 - utils/dialoged/src/dlghndlr.cpp | 1212 -- utils/dialoged/src/dlghndlr.h | 139 - utils/dialoged/src/edlist.cpp | 167 - utils/dialoged/src/edlist.h | 38 - utils/dialoged/src/edtree.cpp | 92 - utils/dialoged/src/edtree.h | 36 - utils/dialoged/src/makefile.b32 | 21 - utils/dialoged/src/makefile.bcc | 20 - utils/dialoged/src/makefile.dos | 178 - utils/dialoged/src/makefile.g95 | 17 - utils/dialoged/src/makefile.sc | 36 - utils/dialoged/src/makefile.unx | 18 - utils/dialoged/src/makefile.vc | 134 - utils/dialoged/src/makefile.wat | 15 - utils/dialoged/src/reseditr.cpp | 2427 ---- utils/dialoged/src/reseditr.h | 454 - utils/dialoged/src/reswrite.cpp | 601 - utils/dialoged/src/symbtabl.cpp | 333 - utils/dialoged/src/symbtabl.h | 52 - utils/dialoged/src/winprop.cpp | 2559 ---- utils/dialoged/src/winprop.h | 420 - utils/dialoged/src/winstyle.cpp | 385 - utils/dialoged/src/winstyle.h | 77 - utils/framelayout/README | 120 - .../framelayout/samples/bitmaps/bookmarks.bmp | Bin 1650 -> 0 bytes .../framelayout/samples/bitmaps/bookmarks.xpm | 30 - .../samples/bitmaps/class_icon.bmp | Bin 214 -> 0 bytes .../samples/bitmaps/class_icon.xpm | 30 - .../samples/bitmaps/class_icon1.bmp | Bin 822 -> 0 bytes .../samples/bitmaps/class_icon1.xpm | 25 - utils/framelayout/samples/bitmaps/copy.bmp | Bin 1566 -> 0 bytes utils/framelayout/samples/bitmaps/copy.xpm | 28 - utils/framelayout/samples/bitmaps/cut.bmp | Bin 1566 -> 0 bytes utils/framelayout/samples/bitmaps/cut.xpm | 27 - .../framelayout/samples/bitmaps/file_icon.bmp | Bin 214 -> 0 bytes .../framelayout/samples/bitmaps/file_icon.xpm | 31 - .../samples/bitmaps/folder_icon.bmp | Bin 822 -> 0 bytes .../samples/bitmaps/folder_icon.xpm | 25 - .../framelayout/samples/bitmaps/help_icon.bmp | Bin 214 -> 0 bytes .../framelayout/samples/bitmaps/help_icon.xpm | 31 - utils/framelayout/samples/bitmaps/new.bmp | Bin 1398 -> 0 bytes utils/framelayout/samples/bitmaps/new.xpm | 29 - .../framelayout/samples/bitmaps/nextmark.bmp | Bin 1734 -> 0 bytes .../framelayout/samples/bitmaps/nextmark.xpm | 30 - utils/framelayout/samples/bitmaps/open.bmp | Bin 1314 -> 0 bytes utils/framelayout/samples/bitmaps/open.xpm | 29 - utils/framelayout/samples/bitmaps/paste.bmp | Bin 1566 -> 0 bytes utils/framelayout/samples/bitmaps/paste.xpm | 31 - .../framelayout/samples/bitmaps/prevmark.bmp | Bin 1734 -> 0 bytes .../framelayout/samples/bitmaps/prevmark.xpm | 30 - .../framelayout/samples/bitmaps/res_icon.bmp | Bin 214 -> 0 bytes .../framelayout/samples/bitmaps/res_icon.xpm | 32 - utils/framelayout/samples/bitmaps/save.bmp | Bin 1482 -> 0 bytes utils/framelayout/samples/bitmaps/save.xpm | 28 - utils/framelayout/samples/bitmaps/saveall.bmp | Bin 1566 -> 0 bytes utils/framelayout/samples/bitmaps/saveall.xpm | 28 - utils/framelayout/samples/bitmaps/search.bmp | Bin 1482 -> 0 bytes utils/framelayout/samples/bitmaps/search.xpm | 30 - .../samples/bitmaps/start95_dp.bmp | Bin 3918 -> 0 bytes .../samples/bitmaps/start95_dp.xpm | 34 - .../samples/bitmaps/start95_pr.bmp | Bin 4086 -> 0 bytes .../samples/bitmaps/start95_pr.xpm | 36 - utils/framelayout/samples/bitmaps/tile.bmp | Bin 1894 -> 0 bytes utils/framelayout/samples/bitmaps/tile.xpm | 32 - utils/framelayout/samples/demo/.cvsignore | 3 - utils/framelayout/samples/demo/fl_demo.cpp | 1170 -- utils/framelayout/samples/demo/fl_demo.h | 137 - utils/framelayout/samples/demo/fl_demo.rc | 21 - .../framelayout/samples/demo/settingsdlg.cpp | 496 - utils/framelayout/samples/demo/settingsdlg.h | 99 - utils/framelayout/samples/demo/wxinfo.cpp | 138 - utils/framelayout/samples/demo/wxinfo.h | 35 - utils/framelayout/samples/make_Linux_make | 29 - utils/framelayout/samples/sample/.cvsignore | 3 - .../framelayout/samples/sample/fl_sample.cpp | 235 - utils/framelayout/samples/sample/fl_sample.rc | 2 - utils/framelayout/samples/test/.cvsignore | 3 - utils/framelayout/samples/test/fl_test.cpp | 242 - utils/framelayout/samples/test/fl_test.h | 35 - utils/framelayout/samples/test/fl_test.rc | 2 - utils/framelayout/src/.cvsignore | 3 - utils/framelayout/src/antiflickpl.cpp | 238 - utils/framelayout/src/antiflickpl.h | 59 - utils/framelayout/src/bardragpl.cpp | 929 -- utils/framelayout/src/bardragpl.h | 117 - utils/framelayout/src/barhintspl.cpp | 535 - utils/framelayout/src/barhintspl.h | 89 - utils/framelayout/src/cbcustom.cpp | 203 - utils/framelayout/src/cbcustom.h | 46 - utils/framelayout/src/controlarea.cpp | 1171 -- utils/framelayout/src/controlarea.h | 262 - utils/framelayout/src/controlbar.cpp | 3348 ----- utils/framelayout/src/controlbar.h | 1652 --- utils/framelayout/src/dynbarhnd.h | 18 - utils/framelayout/src/dyntbar.cpp | 454 - utils/framelayout/src/dyntbar.h | 167 - utils/framelayout/src/dyntbarhnd.cpp | 50 - utils/framelayout/src/dyntbarhnd.h | 26 - utils/framelayout/src/frmview.cpp | 449 - utils/framelayout/src/frmview.h | 135 - utils/framelayout/src/garbagec.cpp | 224 - utils/framelayout/src/garbagec.h | 69 - utils/framelayout/src/gcupdatesmgr.cpp | 409 - utils/framelayout/src/gcupdatesmgr.h | 118 - utils/framelayout/src/hintanimpl.cpp | 406 - utils/framelayout/src/hintanimpl.h | 115 - utils/framelayout/src/makefile.b32 | 21 - utils/framelayout/src/makefile.g95 | 21 - utils/framelayout/src/makefile.unx | 46 - utils/framelayout/src/makefile.vc | 29 - utils/framelayout/src/makefile.wat | 32 - utils/framelayout/src/newbmpbtn.cpp | 820 -- utils/framelayout/src/newbmpbtn.h | 160 - utils/framelayout/src/panedrawpl.cpp | 1265 -- utils/framelayout/src/panedrawpl.h | 118 - utils/framelayout/src/rowdragpl.cpp | 1466 -- utils/framelayout/src/rowdragpl.h | 159 - utils/framelayout/src/rowlayoutpl.cpp | 1206 -- utils/framelayout/src/rowlayoutpl.h | 82 - utils/framelayout/src/toolwnd.cpp | 1144 -- utils/framelayout/src/toolwnd.h | 210 - utils/framelayout/src/updatesmgr.cpp | 292 - utils/framelayout/src/updatesmgr.h | 51 - utils/glcanvas/distrib/glcanvas.rsp | 40 - utils/glcanvas/distrib/zipsrc.bat | 27 - utils/glcanvas/docs/notes.txt | 5 - utils/glcanvas/gtk/.cvsignore | 3 - utils/glcanvas/gtk/glcanvas.cpp | 415 - utils/glcanvas/gtk/glcanvas.h | 146 - utils/glcanvas/motif/glcanvas.cpp | 161 - utils/glcanvas/motif/glcanvas.h | 44 - utils/glcanvas/motif/makefile.unx | 20 - utils/glcanvas/motif/readme.txt | 52 - utils/glcanvas/samples/cube/Makefile | 29 - utils/glcanvas/samples/cube/cube.cpp | 500 - utils/glcanvas/samples/cube/cube.h | 93 - utils/glcanvas/samples/cube/cube.rc | 3 - utils/glcanvas/samples/cube/makefile.b32 | 18 - utils/glcanvas/samples/cube/makefile.bcc | 21 - utils/glcanvas/samples/cube/makefile.g95 | 18 - utils/glcanvas/samples/cube/makefile.unx | 23 - utils/glcanvas/samples/cube/makefile.vc | 20 - utils/glcanvas/samples/cube/makefile.wat | 17 - utils/glcanvas/samples/cube/mondrian.ico | Bin 766 -> 0 bytes utils/glcanvas/samples/isosurf/Makefile | 29 - utils/glcanvas/samples/isosurf/isosurf.cpp | 412 - utils/glcanvas/samples/isosurf/isosurf.dat.gz | Bin 65537 -> 0 bytes utils/glcanvas/samples/isosurf/isosurf.h | 52 - utils/glcanvas/samples/isosurf/isosurf.rc | 3 - utils/glcanvas/samples/isosurf/makefile.b32 | 22 - utils/glcanvas/samples/isosurf/makefile.bcc | 25 - utils/glcanvas/samples/isosurf/makefile.g95 | 20 - utils/glcanvas/samples/isosurf/makefile.unx | 27 - utils/glcanvas/samples/isosurf/makefile.vc | 25 - utils/glcanvas/samples/isosurf/makefile.wat | 20 - utils/glcanvas/samples/isosurf/mondrian.ico | Bin 766 -> 0 bytes utils/glcanvas/samples/penguin/Makefile | 36 - utils/glcanvas/samples/penguin/lw.cpp | 427 - utils/glcanvas/samples/penguin/lw.h | 69 - utils/glcanvas/samples/penguin/makefile.b32 | 18 - utils/glcanvas/samples/penguin/makefile.bcc | 21 - utils/glcanvas/samples/penguin/makefile.g95 | 18 - utils/glcanvas/samples/penguin/makefile.unx | 21 - utils/glcanvas/samples/penguin/makefile.vc | 25 - utils/glcanvas/samples/penguin/makefile.wat | 17 - utils/glcanvas/samples/penguin/penguin.cpp | 236 - utils/glcanvas/samples/penguin/penguin.h | 84 - utils/glcanvas/samples/penguin/penguin.lwo | Bin 10028 -> 0 bytes utils/glcanvas/samples/penguin/penguin.rc | 3 - utils/glcanvas/samples/penguin/trackball.c | 324 - utils/glcanvas/samples/penguin/trackball.h | 78 - utils/glcanvas/win/glcanvas.cpp | 463 - utils/glcanvas/win/glcanvas.h | 159 - utils/glcanvas/win/makefile.b32 | 17 - utils/glcanvas/win/makefile.bcc | 19 - utils/glcanvas/win/makefile.g95 | 16 - utils/glcanvas/win/makefile.vc | 75 - utils/glcanvas/win/makefile.wat | 16 - utils/makefile.vc | 92 - utils/nplugin/docs/notes.txt | 32 - utils/nplugin/lib/dummy | 1 - utils/nplugin/makefile.vc | 32 - utils/nplugin/samples/gui/gui.cpp | 186 - utils/nplugin/samples/gui/gui.h | 59 - utils/nplugin/samples/gui/index.html | 34 - utils/nplugin/samples/gui/makefile.vc | 70 - utils/nplugin/samples/gui/npgui32.def | 9 - utils/nplugin/samples/gui/npgui32.rc | 44 - utils/nplugin/samples/simple/index.html | 34 - utils/nplugin/samples/simple/makefile.vc | 70 - utils/nplugin/samples/simple/npsimple32.def | 9 - utils/nplugin/samples/simple/npsimple32.rc | 44 - utils/nplugin/samples/simple/simple.cpp | 174 - utils/nplugin/src/makefile.vc | 78 - utils/nplugin/src/npapi.h | 258 - utils/nplugin/src/npapp.cpp | 278 - utils/nplugin/src/npapp.h | 91 - utils/nplugin/src/npframe.cpp | 293 - utils/nplugin/src/npframe.h | 81 - utils/nplugin/src/npshell.cpp | 282 - utils/nplugin/src/npupp.h | 799 -- utils/nplugin/src/npwin.cpp | 186 - utils/ogl/distrib/ogl.rsp | 43 - utils/ogl/distrib/tarogl.bat | 48 - utils/ogl/distrib/zipogl.bat | 30 - utils/ogl/docs/back.gif | Bin 225 -> 0 bytes utils/ogl/docs/books.bmp | Bin 1222 -> 0 bytes utils/ogl/docs/bugs.tex | 11 - utils/ogl/docs/bullet.bmp | Bin 138 -> 0 bytes utils/ogl/docs/changes.tex | 19 - utils/ogl/docs/classes.tex | 2861 ---- utils/ogl/docs/contents.gif | Bin 231 -> 0 bytes utils/ogl/docs/forward.gif | Bin 164 -> 0 bytes utils/ogl/docs/intro.tex | 47 - utils/ogl/docs/ogl.hpj | 17 - utils/ogl/docs/ogl.tex | 46 - utils/ogl/docs/ogledit.bmp | Bin 87670 -> 0 bytes utils/ogl/docs/ogledit.gif | Bin 7163 -> 0 bytes utils/ogl/docs/sample.tex | 87 - utils/ogl/docs/tex2rtf.ini | 26 - utils/ogl/docs/texhelp.sty | 298 - utils/ogl/docs/topics.tex | 161 - utils/ogl/docs/up.gif | Bin 137 -> 0 bytes utils/ogl/samples/ogledit/bitmaps/arrow.bmp | Bin 382 -> 0 bytes utils/ogl/samples/ogledit/bitmaps/arrow.xpm | 44 - utils/ogl/samples/ogledit/bitmaps/tool1.bmp | Bin 382 -> 0 bytes utils/ogl/samples/ogledit/bitmaps/tool1.xpm | 44 - utils/ogl/samples/ogledit/bitmaps/tool2.bmp | Bin 382 -> 0 bytes utils/ogl/samples/ogledit/bitmaps/tool2.xpm | 44 - utils/ogl/samples/ogledit/bitmaps/tool3.bmp | Bin 382 -> 0 bytes utils/ogl/samples/ogledit/bitmaps/tool3.xpm | 44 - utils/ogl/samples/ogledit/bitmaps/tool4.bmp | Bin 382 -> 0 bytes utils/ogl/samples/ogledit/bitmaps/tool4.xpm | 44 - utils/ogl/samples/ogledit/doc.cpp | 570 - utils/ogl/samples/ogledit/doc.h | 172 - utils/ogl/samples/ogledit/makefile.b32 | 18 - utils/ogl/samples/ogledit/makefile.bcc | 21 - utils/ogl/samples/ogledit/makefile.dos | 103 - utils/ogl/samples/ogledit/makefile.g95 | 18 - utils/ogl/samples/ogledit/makefile.sc | 33 - utils/ogl/samples/ogledit/makefile.unx | 20 - utils/ogl/samples/ogledit/makefile.vc | 95 - utils/ogl/samples/ogledit/makefile.vms | 44 - utils/ogl/samples/ogledit/makefile.wat | 43 - utils/ogl/samples/ogledit/ogl.ico | Bin 766 -> 0 bytes utils/ogl/samples/ogledit/ogl.xpm | 45 - utils/ogl/samples/ogledit/ogledit.cpp | 213 - utils/ogl/samples/ogledit/ogledit.def | 8 - utils/ogl/samples/ogledit/ogledit.h | 77 - utils/ogl/samples/ogledit/ogledit.rc | 10 - utils/ogl/samples/ogledit/palette.cpp | 125 - utils/ogl/samples/ogledit/palette.h | 66 - utils/ogl/samples/ogledit/view.cpp | 337 - utils/ogl/samples/ogledit/view.h | 79 - utils/ogl/samples/studio/bitmaps/alignb.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/alignb.xpm | 24 - utils/ogl/samples/studio/bitmaps/alignl.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/alignl.xpm | 24 - utils/ogl/samples/studio/bitmaps/alignr.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/alignr.xpm | 24 - utils/ogl/samples/studio/bitmaps/alignt.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/alignt.xpm | 24 - utils/ogl/samples/studio/bitmaps/arrow.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/bitmaps/arrow.xpm | 31 - utils/ogl/samples/studio/bitmaps/bitmap1.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/bitmap2.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/copy.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/copy.xpm | 25 - utils/ogl/samples/studio/bitmaps/copysize.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/copysize.xpm | 24 - utils/ogl/samples/studio/bitmaps/cut.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/cut.xpm | 24 - utils/ogl/samples/studio/bitmaps/cutpoint.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/cutpoint.xpm | 25 - utils/ogl/samples/studio/bitmaps/file1.ico | Bin 1078 -> 0 bytes utils/ogl/samples/studio/bitmaps/folder1.ico | Bin 1078 -> 0 bytes utils/ogl/samples/studio/bitmaps/help.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/help.xpm | 24 - utils/ogl/samples/studio/bitmaps/helpcs.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/helpcs.xpm | 24 - utils/ogl/samples/studio/bitmaps/horiz.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/horiz.xpm | 24 - .../ogl/samples/studio/bitmaps/linearrow.bmp | Bin 238 -> 0 bytes .../ogl/samples/studio/bitmaps/linearrow.xpm | 25 - utils/ogl/samples/studio/bitmaps/new.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/new.xpm | 24 - utils/ogl/samples/studio/bitmaps/newpoint.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/newpoint.xpm | 25 - utils/ogl/samples/studio/bitmaps/open.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/open.xpm | 26 - utils/ogl/samples/studio/bitmaps/paste.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/paste.xpm | 27 - utils/ogl/samples/studio/bitmaps/preview.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/preview.xpm | 26 - utils/ogl/samples/studio/bitmaps/print.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/print.xpm | 26 - utils/ogl/samples/studio/bitmaps/redo.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/redo.xpm | 25 - utils/ogl/samples/studio/bitmaps/save.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/save.xpm | 25 - utils/ogl/samples/studio/bitmaps/straight.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/straight.xpm | 24 - utils/ogl/samples/studio/bitmaps/texttool.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/bitmaps/texttool.xpm | 31 - utils/ogl/samples/studio/bitmaps/tick.bmp | Bin 220 -> 0 bytes utils/ogl/samples/studio/bitmaps/tick.xpm | Bin 6101 -> 0 bytes utils/ogl/samples/studio/bitmaps/toback.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/toback.xpm | 25 - utils/ogl/samples/studio/bitmaps/tofront.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/tofront.xpm | 25 - utils/ogl/samples/studio/bitmaps/undo.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/undo.xpm | 25 - utils/ogl/samples/studio/bitmaps/vert.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/bitmaps/vert.xpm | 24 - utils/ogl/samples/studio/cspalette.cpp | 153 - utils/ogl/samples/studio/cspalette.h | 57 - utils/ogl/samples/studio/csprint.cpp | 318 - utils/ogl/samples/studio/dialogs.cpp | 525 - utils/ogl/samples/studio/dialogs.h | 248 - utils/ogl/samples/studio/doc.cpp | 598 - utils/ogl/samples/studio/doc.h | 134 - utils/ogl/samples/studio/mainfrm.cpp | 256 - utils/ogl/samples/studio/mainfrm.h | 55 - utils/ogl/samples/studio/makefile.b32 | 19 - utils/ogl/samples/studio/makefile.bcc | 22 - utils/ogl/samples/studio/makefile.g95 | 19 - utils/ogl/samples/studio/makefile.unx | 39 - utils/ogl/samples/studio/makefile.vc | 143 - utils/ogl/samples/studio/manual/BACK.GIF | Bin 225 -> 0 bytes utils/ogl/samples/studio/manual/BULLET.BMP | Bin 138 -> 0 bytes utils/ogl/samples/studio/manual/CONTENTS.GIF | Bin 231 -> 0 bytes utils/ogl/samples/studio/manual/FORWARD.GIF | Bin 164 -> 0 bytes utils/ogl/samples/studio/manual/Tex2rtf.ini | 20 - utils/ogl/samples/studio/manual/UP.GIF | Bin 137 -> 0 bytes utils/ogl/samples/studio/manual/abacus.bmp | Bin 566 -> 0 bytes utils/ogl/samples/studio/manual/alignb.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/alignl.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/alignr.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/alignt.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/arrow.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/manual/bitmap1.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/bitmap2.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/brush.bmp | Bin 740 -> 0 bytes utils/ogl/samples/studio/manual/calc.bmp | Bin 702 -> 0 bytes utils/ogl/samples/studio/manual/chart.bmp | Bin 600 -> 0 bytes utils/ogl/samples/studio/manual/colour.bmp | Bin 734 -> 0 bytes utils/ogl/samples/studio/manual/copy.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/copysize.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/cut.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/cutpoint.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/files.bmp | Bin 672 -> 0 bytes utils/ogl/samples/studio/manual/help.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/helpcs.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/horiz.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/linearrow.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/magnify.bmp | Bin 722 -> 0 bytes utils/ogl/samples/studio/manual/mike.bmp | Bin 708 -> 0 bytes utils/ogl/samples/studio/manual/new.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/newpoint.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/open.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/page.bmp | Bin 714 -> 0 bytes utils/ogl/samples/studio/manual/paste.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/pointsize.bmp | Bin 538 -> 0 bytes utils/ogl/samples/studio/manual/preview.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/print.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/redo.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/save.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/screw.bmp | Bin 636 -> 0 bytes utils/ogl/samples/studio/manual/shapes.bmp | Bin 780 -> 0 bytes utils/ogl/samples/studio/manual/speaker.bmp | Bin 648 -> 0 bytes utils/ogl/samples/studio/manual/straight.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/studio.tex | 381 - utils/ogl/samples/studio/manual/telephon.bmp | Bin 676 -> 0 bytes utils/ogl/samples/studio/manual/texttool.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/manual/therm.bmp | Bin 812 -> 0 bytes utils/ogl/samples/studio/manual/tick.bmp | Bin 220 -> 0 bytes utils/ogl/samples/studio/manual/toback.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/tofront.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/tool1.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/manual/tool2.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/manual/tool3.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/manual/tool4.bmp | Bin 382 -> 0 bytes utils/ogl/samples/studio/manual/torch.bmp | Bin 706 -> 0 bytes utils/ogl/samples/studio/manual/undo.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/vert.bmp | Bin 238 -> 0 bytes utils/ogl/samples/studio/manual/wrench.bmp | Bin 744 -> 0 bytes utils/ogl/samples/studio/manual/zoom.bmp | Bin 790 -> 0 bytes utils/ogl/samples/studio/project.cpp | 89 - utils/ogl/samples/studio/project.h | 42 - utils/ogl/samples/studio/shapes.cpp | 1185 -- utils/ogl/samples/studio/shapes.h | 258 - utils/ogl/samples/studio/studio.cpp | 506 - utils/ogl/samples/studio/studio.h | 171 - utils/ogl/samples/studio/studio.ico | Bin 766 -> 0 bytes utils/ogl/samples/studio/studio.rc | 41 - utils/ogl/samples/studio/studio.xpm | 44 - utils/ogl/samples/studio/studio_resources.h | 44 - utils/ogl/samples/studio/studio_resources.wxr | 191 - utils/ogl/samples/studio/symbols.cpp | 203 - utils/ogl/samples/studio/symbols.h | 76 - utils/ogl/samples/studio/view.cpp | 1039 -- utils/ogl/samples/studio/view.h | 141 - utils/ogl/src/basic.cpp | 3274 ----- utils/ogl/src/basic.h | 738 - utils/ogl/src/basic2.cpp | 1902 --- utils/ogl/src/basicp.h | 223 - utils/ogl/src/bmpshape.cpp | 115 - utils/ogl/src/bmpshape.h | 53 - utils/ogl/src/canvas.cpp | 516 - utils/ogl/src/canvas.h | 83 - utils/ogl/src/composit.cpp | 1761 --- utils/ogl/src/composit.h | 240 - utils/ogl/src/constrnt.cpp | 619 - utils/ogl/src/constrnt.h | 87 - utils/ogl/src/divided.cpp | 720 - utils/ogl/src/divided.h | 75 - utils/ogl/src/drawn.cpp | 2489 ---- utils/ogl/src/drawn.h | 227 - utils/ogl/src/drawnp.h | 205 - utils/ogl/src/lines.cpp | 2515 ---- utils/ogl/src/lines.h | 296 - utils/ogl/src/linesp.h | 89 - utils/ogl/src/makefile.b32 | 18 - utils/ogl/src/makefile.bcc | 21 - utils/ogl/src/makefile.dos | 161 - utils/ogl/src/makefile.g95 | 17 - utils/ogl/src/makefile.unx | 42 - utils/ogl/src/makefile.vc | 180 - utils/ogl/src/makefile.wat | 28 - utils/ogl/src/mfutils.cpp | 1085 -- utils/ogl/src/mfutils.h | 211 - utils/ogl/src/misc.cpp | 906 -- utils/ogl/src/misc.h | 113 - utils/ogl/src/ogl.h | 26 - utils/ogl/src/ogldiag.cpp | 756 - utils/ogl/src/ogldiag.h | 124 - utils/serialize/.cvsignore | 3 - utils/serialize/makefile.b32 | 58 - utils/serialize/sercore.cpp | 107 - utils/serialize/sercore.h | 24 - utils/serialize/serctrl.cpp | 478 - utils/serialize/serctrl.h | 52 - utils/serialize/serext.cpp | 137 - utils/serialize/serext.h | 26 - utils/serialize/sergdi.cpp | 334 - utils/serialize/sergdi.h | 37 - utils/serialize/sermain.cpp | 27 - utils/serialize/serwnd.cpp | 498 - utils/serialize/serwnd.h | 57 - utils/tex2rtf/docs/back.gif | Bin 225 -> 0 bytes utils/tex2rtf/docs/books.gif | Bin 433 -> 0 bytes utils/tex2rtf/docs/bullet.bmp | Bin 138 -> 0 bytes utils/tex2rtf/docs/contents.gif | Bin 231 -> 0 bytes utils/tex2rtf/docs/fancyhea.sty | 145 - utils/tex2rtf/docs/forward.gif | Bin 164 -> 0 bytes utils/tex2rtf/docs/install.txt | 43 - utils/tex2rtf/docs/makeidx.sty | 11 - utils/tex2rtf/docs/mysober.sty | 154 - utils/tex2rtf/docs/mytitle.sty | 33 - utils/tex2rtf/docs/notes.txt | 140 - utils/tex2rtf/docs/psbox.tex | 520 - utils/tex2rtf/docs/readme.txt | 81 - utils/tex2rtf/docs/refs.bib | 35 - utils/tex2rtf/docs/screen.bmp | Bin 66010 -> 0 bytes utils/tex2rtf/docs/screen.gif | Bin 4382 -> 0 bytes utils/tex2rtf/docs/screen.shg | Bin 8857 -> 0 bytes utils/tex2rtf/docs/tex2rtf.hpj | 17 - utils/tex2rtf/docs/tex2rtf.ini | 21 - utils/tex2rtf/docs/tex2rtf.tex | 3299 ----- utils/tex2rtf/docs/tex2rtf.wmf | Bin 5750 -> 0 bytes utils/tex2rtf/docs/texhelp.sty | 282 - utils/tex2rtf/docs/up.gif | Bin 137 -> 0 bytes utils/tex2rtf/docs/verbatim.sty | 212 - utils/tex2rtf/src/bmputils.h | 227 - utils/tex2rtf/src/books.bmp | Bin 1222 -> 0 bytes utils/tex2rtf/src/dos.def | 10 - utils/tex2rtf/src/htmlutil.cpp | 3190 ----- utils/tex2rtf/src/makefile.b32 | 20 - utils/tex2rtf/src/makefile.bcc | 19 - utils/tex2rtf/src/makefile.dos | 17 - utils/tex2rtf/src/makefile.g95 | 16 - utils/tex2rtf/src/makefile.unx | 17 - utils/tex2rtf/src/makefile.vc | 141 - utils/tex2rtf/src/makefile.wat | 14 - utils/tex2rtf/src/makengui.nt | 98 - utils/tex2rtf/src/maths.cpp | 25 - utils/tex2rtf/src/readshg.cpp | 163 - utils/tex2rtf/src/readshg.h | 64 - utils/tex2rtf/src/rtfutils.cpp | 5250 ------- utils/tex2rtf/src/rtfutils.h | 60 - utils/tex2rtf/src/table.cpp | 156 - utils/tex2rtf/src/table.h | 36 - utils/tex2rtf/src/tex2any.cpp | 3483 ----- utils/tex2rtf/src/tex2any.h | 1068 -- utils/tex2rtf/src/tex2rtf.cpp | 1095 -- utils/tex2rtf/src/tex2rtf.def | 8 - utils/tex2rtf/src/tex2rtf.h | 157 - utils/tex2rtf/src/tex2rtf.ico | Bin 766 -> 0 bytes utils/tex2rtf/src/tex2rtf.ini | 17 - utils/tex2rtf/src/tex2rtf.rc | 4 - utils/tex2rtf/src/tex2rtf.xpm | 42 - utils/tex2rtf/src/texutils.cpp | 1648 --- utils/tex2rtf/src/wxhlpblk.h | 30 - utils/tex2rtf/src/xlputils.cpp | 1219 -- utils/wxMMedia/TODO | 7 - utils/wxMMedia/WARNING | 7 - utils/wxMMedia/adpcm/g711.cpp | 283 - utils/wxMMedia/adpcm/g721.cpp | 173 - utils/wxMMedia/adpcm/g723_24.cpp | 158 - utils/wxMMedia/adpcm/g723_40.cpp | 178 - utils/wxMMedia/adpcm/g72x.cpp | 608 - utils/wxMMedia/adpcm/g72x.h | 123 - utils/wxMMedia/cdbase.cpp | 53 - utils/wxMMedia/cdbase.h | 88 - utils/wxMMedia/cdunix.cpp | 199 - utils/wxMMedia/cdunix.h | 61 - utils/wxMMedia/cdwin.cpp | 208 - utils/wxMMedia/cdwin.h | 67 - utils/wxMMedia/makefile.b32 | 91 - utils/wxMMedia/makefile.nt | 90 - utils/wxMMedia/mmdata.cpp | 96 - utils/wxMMedia/mmedia.h | 31 - utils/wxMMedia/mmfile.cpp | 199 - utils/wxMMedia/mmfile.h | 89 - utils/wxMMedia/mmriff.cpp | 215 - utils/wxMMedia/mmriff.h | 81 - utils/wxMMedia/mmsolve.cpp | 124 - utils/wxMMedia/mmsolve.h | 92 - utils/wxMMedia/mmtype.h | 41 - utils/wxMMedia/sndadpcm.cpp | 118 - utils/wxMMedia/sndadpcm.h | 30 - utils/wxMMedia/sndaiff.cpp | 252 - utils/wxMMedia/sndaiff.h | 58 - utils/wxMMedia/sndau.cpp | 112 - utils/wxMMedia/sndau.h | 47 - utils/wxMMedia/sndfile.cpp | 325 - utils/wxMMedia/sndfile.h | 93 - utils/wxMMedia/sndfrag.cpp | 271 - utils/wxMMedia/sndfrag.h | 100 - utils/wxMMedia/sndfrmt.cpp | 295 - utils/wxMMedia/sndfrmt.h | 136 - utils/wxMMedia/sndmulaw.cpp | 94 - utils/wxMMedia/sndmulaw.h | 28 - utils/wxMMedia/sndpcm.cpp | 209 - utils/wxMMedia/sndpcm.h | 35 - utils/wxMMedia/sndsnd.cpp | 262 - utils/wxMMedia/sndsnd.h | 275 - utils/wxMMedia/snduss.cpp | 302 - utils/wxMMedia/snduss.h | 86 - utils/wxMMedia/sndwav.cpp | 183 - utils/wxMMedia/sndwav.h | 59 - utils/wxMMedia/sndwin.cpp | 384 - utils/wxMMedia/sndwin.h | 108 - utils/wxMMedia/ulaw.h | 69 - utils/wxMMedia/vidbase.cpp | 87 - utils/wxMMedia/vidbase.h | 106 - utils/wxMMedia/vidwin.cpp | 131 - utils/wxMMedia/vidwin.h | 62 - utils/wxMMedia/vidxanm.cpp | 232 - utils/wxMMedia/vidxanm.h | 69 - utils/wxMMedia/wave.cpp | 65 - utils/wxMMedia/wave.h | 43 - utils/wxOLE/gtk/wxole.cpp | 428 - utils/wxOLE/gtk/wxole.h | 109 - utils/wxOLE/samples/servlet/.cvsignore | 7 - utils/wxOLE/samples/servlet/mondrian.xpm | 44 - utils/wxOLE/samples/servlet/servlet.cpp | 135 - utils/wxOLE/samples/servlet/servlet.gnorba | 13 - utils/wxPython/.cvsignore | 106 - utils/wxPython/README.txt | 281 - utils/wxPython/SWIG.patches/Include.patch | 97 - utils/wxPython/SWIG.patches/Modules.patch | 136 - utils/wxPython/SWIG.patches/SWIG.patch | 499 - utils/wxPython/demo/.cvsignore | 5 - utils/wxPython/demo/ColorPanel.py | 25 - utils/wxPython/demo/DialogUnits.py | 123 - utils/wxPython/demo/Layoutf.py | 62 - utils/wxPython/demo/Main.py | 318 - utils/wxPython/demo/README.txt | 7 - utils/wxPython/demo/SlashDot.py | 378 - utils/wxPython/demo/bitmaps/copy.bmp | Bin 238 -> 0 bytes utils/wxPython/demo/bitmaps/image.bmp | Bin 57138 -> 0 bytes utils/wxPython/demo/bitmaps/image.gif | Bin 7116 -> 0 bytes utils/wxPython/demo/bitmaps/image.jpg | Bin 8087 -> 0 bytes utils/wxPython/demo/bitmaps/image.png | Bin 17905 -> 0 bytes utils/wxPython/demo/bitmaps/mondrian.ico | Bin 766 -> 0 bytes utils/wxPython/demo/bitmaps/new.bmp | Bin 238 -> 0 bytes utils/wxPython/demo/bitmaps/open.bmp | Bin 238 -> 0 bytes utils/wxPython/demo/bitmaps/paste.bmp | Bin 238 -> 0 bytes utils/wxPython/demo/bitmaps/smiles.bmp | Bin 246 -> 0 bytes utils/wxPython/demo/bitmaps/smiles.ico | Bin 766 -> 0 bytes utils/wxPython/demo/bitmaps/test2.bmp | Bin 12342 -> 0 bytes utils/wxPython/demo/bitmaps/tog1.bmp | Bin 238 -> 0 bytes utils/wxPython/demo/bitmaps/tog2.bmp | Bin 238 -> 0 bytes utils/wxPython/demo/demo.py | 5 - utils/wxPython/demo/hangman.py | 463 - utils/wxPython/demo/pyTree.py | 211 - utils/wxPython/demo/wxButton.py | 47 - utils/wxPython/demo/wxCheckBox.py | 80 - utils/wxPython/demo/wxCheckListBox.py | 53 - utils/wxPython/demo/wxChoice.py | 76 - utils/wxPython/demo/wxColourDialog.py | 38 - utils/wxPython/demo/wxComboBox.py | 79 - utils/wxPython/demo/wxDialog.py | 33 - utils/wxPython/demo/wxDirDialog.py | 53 - utils/wxPython/demo/wxFileDialog.py | 62 - utils/wxPython/demo/wxFontDialog.py | 39 - utils/wxPython/demo/wxFrame.py | 41 - utils/wxPython/demo/wxGLCanvas.py | 153 - utils/wxPython/demo/wxGauge.py | 55 - utils/wxPython/demo/wxGrid.py | 77 - utils/wxPython/demo/wxImage.py | 40 - utils/wxPython/demo/wxLayoutConstraints.py | 142 - utils/wxPython/demo/wxListBox.py | 99 - utils/wxPython/demo/wxListCtrl.py | 106 - utils/wxPython/demo/wxMessageDialog.py | 62 - utils/wxPython/demo/wxMiniFrame.py | 42 - utils/wxPython/demo/wxMultipleChoiceDialog.py | 27 - utils/wxPython/demo/wxNotebook.py | 84 - utils/wxPython/demo/wxPageSetupDialog.py | 33 - utils/wxPython/demo/wxPlotCanvas.py | 39 - utils/wxPython/demo/wxPrintDialog.py | 31 - utils/wxPython/demo/wxRadioBox.py | 76 - utils/wxPython/demo/wxSashWindow.py | 152 - .../wxPython/demo/wxScrolledMessageDialog.py | 24 - utils/wxPython/demo/wxScrolledWindow.py | 122 - utils/wxPython/demo/wxSingleChoiceDialog.py | 59 - utils/wxPython/demo/wxSlider.py | 41 - utils/wxPython/demo/wxSpinButton.py | 49 - utils/wxPython/demo/wxSplitterWindow.py | 67 - utils/wxPython/demo/wxStaticBitmap.py | 41 - utils/wxPython/demo/wxStaticText.py | 73 - utils/wxPython/demo/wxStatusBar.py | 114 - utils/wxPython/demo/wxTextCtrl.py | 40 - utils/wxPython/demo/wxTextEntryDialog.py | 50 - utils/wxPython/demo/wxTimer.py | 67 - utils/wxPython/demo/wxToolBar.py | 125 - utils/wxPython/demo/wxTreeCtrl.py | 98 - utils/wxPython/distrib/.cvsignore | 6 - utils/wxPython/distrib/.rpmrc | 5 - utils/wxPython/distrib/makerpm | 22 - utils/wxPython/distrib/maketgz | 36 - utils/wxPython/distrib/wxPython.bmp | Bin 131190 -> 0 bytes utils/wxPython/distrib/wxPython.rsp | 44 - utils/wxPython/distrib/wxPython.spec.in | 41 - utils/wxPython/distrib/wxPython.wse | 1397 -- utils/wxPython/distrib/wxPython.wsm | Bin 6382 -> 0 bytes utils/wxPython/distrib/zipit.bat | 16 - utils/wxPython/lib/.cvsignore | 1 - utils/wxPython/lib/__init__.py | 3 - utils/wxPython/lib/dialogs.py | 106 - utils/wxPython/lib/layoutf.py | 262 - utils/wxPython/lib/wxPlotCanvas.py | 467 - utils/wxPython/src/.cvsignore | 30 - utils/wxPython/src/Makefile.pre.in | 421 - utils/wxPython/src/Setup.in | 45 - utils/wxPython/src/Setup.in.linux | 56 - utils/wxPython/src/Setup.in.solaris | 45 - utils/wxPython/src/__init__.py | 43 - utils/wxPython/src/_defs.i | 926 -- utils/wxPython/src/_extras.py | 709 - utils/wxPython/src/cmndlgs.i | 369 - utils/wxPython/src/controls.i | 587 - utils/wxPython/src/controls2.i | 602 - utils/wxPython/src/events.i | 373 - utils/wxPython/src/frames.i | 122 - utils/wxPython/src/gdi.i | 549 - utils/wxPython/src/glcanvas.i | 1104 -- utils/wxPython/src/glcanvasc.def | 2 - utils/wxPython/src/gtk/.cvsignore | 1 - utils/wxPython/src/gtk/cmndlgs.cpp | 4437 ------ utils/wxPython/src/gtk/cmndlgs.py | 603 - utils/wxPython/src/gtk/controls.cpp | 6825 --------- utils/wxPython/src/gtk/controls.py | 863 -- utils/wxPython/src/gtk/controls2.cpp | 5393 ------- utils/wxPython/src/gtk/controls2.py | 673 - utils/wxPython/src/gtk/dummy | 0 utils/wxPython/src/gtk/events.cpp | 3348 ----- utils/wxPython/src/gtk/events.py | 638 - utils/wxPython/src/gtk/frames.cpp | 1119 -- utils/wxPython/src/gtk/frames.py | 124 - utils/wxPython/src/gtk/gdi.cpp | 6132 -------- utils/wxPython/src/gtk/gdi.py | 808 -- utils/wxPython/src/gtk/glcanvas.cpp | 9533 ------------- utils/wxPython/src/gtk/glcanvas.py | 1392 -- utils/wxPython/src/gtk/image.cpp | 1595 --- utils/wxPython/src/gtk/image.py | 226 - utils/wxPython/src/gtk/mdi.cpp | 899 -- utils/wxPython/src/gtk/mdi.py | 119 - utils/wxPython/src/gtk/misc.cpp | 4241 ------ utils/wxPython/src/gtk/misc.py | 676 - utils/wxPython/src/gtk/stattool.cpp | 2162 --- utils/wxPython/src/gtk/stattool.py | 230 - utils/wxPython/src/gtk/utils.cpp | 1254 -- utils/wxPython/src/gtk/utils.py | 111 - utils/wxPython/src/gtk/windows.cpp | 5392 ------- utils/wxPython/src/gtk/windows.py | 661 - utils/wxPython/src/gtk/windows2.cpp | 4461 ------ utils/wxPython/src/gtk/windows2.py | 553 - utils/wxPython/src/gtk/windows3.cpp | 1933 --- utils/wxPython/src/gtk/windows3.py | 300 - utils/wxPython/src/gtk/wx.cpp | 2190 --- utils/wxPython/src/gtk/wx.py | 1400 -- utils/wxPython/src/helpers.cpp | 802 -- utils/wxPython/src/helpers.h | 176 - utils/wxPython/src/image.i | 152 - utils/wxPython/src/makefile.vc | 332 - utils/wxPython/src/mdi.i | 98 - utils/wxPython/src/misc.i | 509 - utils/wxPython/src/motif/dummy | 0 utils/wxPython/src/msw/cmndlgs.cpp | 4438 ------ utils/wxPython/src/msw/cmndlgs.py | 603 - utils/wxPython/src/msw/controls.cpp | 6857 --------- utils/wxPython/src/msw/controls.py | 866 -- utils/wxPython/src/msw/controls2.cpp | 5542 -------- utils/wxPython/src/msw/controls2.py | 692 - utils/wxPython/src/msw/dummy | 0 utils/wxPython/src/msw/events.cpp | 3347 ----- utils/wxPython/src/msw/events.py | 638 - utils/wxPython/src/msw/frames.cpp | 1147 -- utils/wxPython/src/msw/frames.py | 127 - utils/wxPython/src/msw/gdi.cpp | 6657 --------- utils/wxPython/src/msw/gdi.py | 862 -- utils/wxPython/src/msw/glcanvas.cpp | 9793 ------------- utils/wxPython/src/msw/glcanvas.py | 1418 -- utils/wxPython/src/msw/image.cpp | 1596 --- utils/wxPython/src/msw/image.py | 226 - utils/wxPython/src/msw/mdi.cpp | 931 -- utils/wxPython/src/msw/mdi.py | 122 - utils/wxPython/src/msw/misc.cpp | 4407 ------ utils/wxPython/src/msw/misc.py | 694 - utils/wxPython/src/msw/stattool.cpp | 2603 ---- utils/wxPython/src/msw/stattool.py | 281 - utils/wxPython/src/msw/utils.cpp | 1253 -- utils/wxPython/src/msw/utils.py | 111 - utils/wxPython/src/msw/windows.cpp | 6270 --------- utils/wxPython/src/msw/windows.py | 763 - utils/wxPython/src/msw/windows2.cpp | 4676 ------- utils/wxPython/src/msw/windows2.py | 596 - utils/wxPython/src/msw/windows3.cpp | 1936 --- utils/wxPython/src/msw/windows3.py | 300 - utils/wxPython/src/msw/wx.cpp | 2254 --- utils/wxPython/src/msw/wx.py | 1412 -- utils/wxPython/src/my_typemaps.i | 246 - utils/wxPython/src/qt/dummy | 0 utils/wxPython/src/stattool.i | 234 - utils/wxPython/src/utils.i | 184 - utils/wxPython/src/utilsc.def | 2 - utils/wxPython/src/windows.i | 511 - utils/wxPython/src/windows2.i | 413 - utils/wxPython/src/windows3.i | 199 - utils/wxPython/src/wx.i | 161 - utils/wxPython/src/wxc.def | 6 - utils/wxPython/src/wxc.rc | 2 - utils/wxPython/src/wxp.ico | Bin 766 -> 0 bytes utils/wxPython/tests/.cvsignore | 7 - utils/wxPython/tests/README.txt | 7 - utils/wxPython/tests/bitmaps/copy.bmp | Bin 238 -> 0 bytes utils/wxPython/tests/bitmaps/mondrian.ico | Bin 766 -> 0 bytes utils/wxPython/tests/bitmaps/new.bmp | Bin 238 -> 0 bytes utils/wxPython/tests/bitmaps/open.bmp | Bin 238 -> 0 bytes utils/wxPython/tests/bitmaps/paste.bmp | Bin 238 -> 0 bytes utils/wxPython/tests/bitmaps/smiles.bmp | Bin 246 -> 0 bytes utils/wxPython/tests/bitmaps/smiles.ico | Bin 766 -> 0 bytes utils/wxPython/tests/bitmaps/test2.bmp | Bin 12342 -> 0 bytes utils/wxPython/tests/bitmaps/tog1.bmp | Bin 238 -> 0 bytes utils/wxPython/tests/bitmaps/tog2.bmp | Bin 238 -> 0 bytes utils/wxPython/tests/hangman.py | 390 - utils/wxPython/tests/test1.py | 83 - utils/wxPython/tests/test2.py | 190 - utils/wxPython/tests/test3.py | 194 - utils/wxPython/tests/test4.py | 1095 -- utils/wxPython/tests/test5.py | 119 - utils/wxPython/tests/test6.py | 106 - utils/wxPython/tests/test7.py | 110 - utils/wxPython/tests/test8.py | 85 - utils/wxPython/tests/wxPlotCanvas.py | 460 - utils/wxPython/tests/wxSlash.py | 359 - utils/wxtree/docs/back.gif | Bin 225 -> 0 bytes utils/wxtree/docs/books.gif | Bin 433 -> 0 bytes utils/wxtree/docs/classes.tex | 304 - utils/wxtree/docs/contents.gif | Bin 231 -> 0 bytes utils/wxtree/docs/forward.gif | Bin 164 -> 0 bytes utils/wxtree/docs/tex2rtf.ini | 28 - utils/wxtree/docs/tree.bib | 8 - utils/wxtree/docs/treetst.bmp | Bin 14982 -> 0 bytes utils/wxtree/docs/treetst.gif | Bin 2490 -> 0 bytes utils/wxtree/docs/up.gif | Bin 137 -> 0 bytes utils/wxtree/docs/wxtree.tex | 73 - utils/wxtree/lib/dummy | 1 - utils/wxtree/src/makefile.b32 | 16 - utils/wxtree/src/makefile.bcc | 16 - utils/wxtree/src/makefile.dos | 118 - utils/wxtree/src/makefile.g95 | 16 - utils/wxtree/src/makefile.sc | 73 - utils/wxtree/src/makefile.unx | 133 - utils/wxtree/src/makefile.vc | 133 - utils/wxtree/src/makefile.wat | 49 - utils/wxtree/src/mondrian.ico | Bin 766 -> 0 bytes utils/wxtree/src/test.cpp | 201 - utils/wxtree/src/test.def | 8 - utils/wxtree/src/test.h | 54 - utils/wxtree/src/test.rc | 3 - utils/wxtree/src/wxtree.cpp | 440 - utils/wxtree/src/wxtree.h | 135 - wx-config.in | 63 - wxGTK.spec | 59 - 4242 files changed, 935615 deletions(-) delete mode 100644 .cvsignore delete mode 100644 Makefile.am delete mode 100644 acconfig.h delete mode 100644 aclocal.m4 delete mode 100755 config.guess delete mode 100755 config.sub delete mode 100644 configure.in delete mode 100644 distrib/gtk/README.txt delete mode 100644 distrib/gtk/Setup delete mode 100755 distrib/gtk/copy_src delete mode 100644 distrib/msw/bc.rsp delete mode 100644 distrib/msw/cw.rsp delete mode 100644 distrib/msw/docsrc.rsp delete mode 100644 distrib/msw/generic.rsp delete mode 100644 distrib/msw/glcanvas.rsp delete mode 100644 distrib/msw/gtk.rsp delete mode 100644 distrib/msw/makefile.rsp delete mode 100644 distrib/msw/motif.rsp delete mode 100644 distrib/msw/msw.rsp delete mode 100644 distrib/msw/ogl.rsp delete mode 100644 distrib/msw/stubs.rsp delete mode 100644 distrib/msw/tardist delete mode 100755 distrib/msw/tardist.bat delete mode 100644 distrib/msw/tex2rtf.rsp delete mode 100644 distrib/msw/user.rsp delete mode 100644 distrib/msw/vc.rsp delete mode 100644 distrib/msw/wx_hlp.rsp delete mode 100644 distrib/msw/wx_html.rsp delete mode 100644 distrib/msw/wx_pdf.rsp delete mode 100644 distrib/msw/wx_word.rsp delete mode 100644 distrib/msw/wxtree.rsp delete mode 100755 distrib/msw/zipdist.bat delete mode 100644 docs/bugs.txt delete mode 100644 docs/changes.txt delete mode 100644 docs/gpl.txt delete mode 100644 docs/gtk/COPYING.LIB delete mode 100644 docs/gtk/install.txt delete mode 100644 docs/gtk/licence.txt delete mode 100644 docs/gtk/makewxgtk delete mode 100644 docs/gtk/readme.txt delete mode 100644 docs/gtk/todo.txt delete mode 100644 docs/html/faq.htm delete mode 100644 docs/html/faqgen.htm delete mode 100644 docs/html/faqgtk.htm delete mode 100644 docs/html/faqmac.htm delete mode 100644 docs/html/faqmot.htm delete mode 100644 docs/html/faqmsw.htm delete mode 100644 docs/html/gettext/gettext.htm delete mode 100644 docs/html/gettext/msgfmt.htm delete mode 100644 docs/html/gettext/xgettext.htm delete mode 100644 docs/html/index.htm delete mode 100644 docs/html/logo.gif delete mode 100644 docs/index.htm delete mode 100644 docs/latex/porting/back.gif delete mode 100644 docs/latex/porting/books.bmp delete mode 100644 docs/latex/porting/books.gif delete mode 100644 docs/latex/porting/bullet.bmp delete mode 100644 docs/latex/porting/contents.gif delete mode 100644 docs/latex/porting/forward.gif delete mode 100644 docs/latex/porting/porting.hpj delete mode 100644 docs/latex/porting/porting.tex delete mode 100644 docs/latex/porting/tex2rtf.ini delete mode 100644 docs/latex/porting/texhelp.sty delete mode 100644 docs/latex/porting/up.gif delete mode 100644 docs/latex/proplist/back.gif delete mode 100644 docs/latex/proplist/body.tex delete mode 100644 docs/latex/proplist/books.bmp delete mode 100644 docs/latex/proplist/books.gif delete mode 100644 docs/latex/proplist/bullet.bmp delete mode 100644 docs/latex/proplist/changes.tex delete mode 100644 docs/latex/proplist/classes.tex delete mode 100644 docs/latex/proplist/contents.gif delete mode 100644 docs/latex/proplist/forward.gif delete mode 100644 docs/latex/proplist/prop.tex delete mode 100644 docs/latex/proplist/prop1.bmp delete mode 100644 docs/latex/proplist/prop1.eps delete mode 100644 docs/latex/proplist/prop1.gif delete mode 100644 docs/latex/proplist/prop2.bmp delete mode 100644 docs/latex/proplist/prop2.eps delete mode 100644 docs/latex/proplist/prop2.gif delete mode 100644 docs/latex/proplist/readme.txt delete mode 100644 docs/latex/proplist/tex2rtf.ini delete mode 100644 docs/latex/proplist/up.gif delete mode 100644 docs/latex/proplist/wxprop.hpj delete mode 100644 docs/latex/wx/.cvsignore delete mode 100644 docs/latex/wx/accel.tex delete mode 100644 docs/latex/wx/activevt.tex delete mode 100644 docs/latex/wx/app.tex delete mode 100644 docs/latex/wx/array.tex delete mode 100644 docs/latex/wx/arrstrng.tex delete mode 100644 docs/latex/wx/autoobj.tex delete mode 100644 docs/latex/wx/back.gif delete mode 100644 docs/latex/wx/bbutton.tex delete mode 100644 docs/latex/wx/bitmap.tex delete mode 100644 docs/latex/wx/bmpdatob.tex delete mode 100644 docs/latex/wx/body.tex delete mode 100644 docs/latex/wx/book1.bmp delete mode 100644 docs/latex/wx/books.bmp delete mode 100644 docs/latex/wx/books.gif delete mode 100644 docs/latex/wx/brush.tex delete mode 100644 docs/latex/wx/bullet.bmp delete mode 100644 docs/latex/wx/busycurs.tex delete mode 100644 docs/latex/wx/button.tex delete mode 100644 docs/latex/wx/calclevt.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/choice.tex delete mode 100644 docs/latex/wx/clasinfo.tex delete mode 100644 docs/latex/wx/classes.tex delete mode 100644 docs/latex/wx/clientdc.tex delete mode 100644 docs/latex/wx/clipbrd.tex delete mode 100644 docs/latex/wx/closeevt.tex delete mode 100644 docs/latex/wx/cmdevent.tex delete mode 100644 docs/latex/wx/cmdproc.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/command.tex delete mode 100644 docs/latex/wx/conditn.tex delete mode 100644 docs/latex/wx/config.tex delete mode 100644 docs/latex/wx/contents.gif delete mode 100644 docs/latex/wx/control.tex delete mode 100644 docs/latex/wx/cpp.bmp delete mode 100644 docs/latex/wx/critsect.tex delete mode 100644 docs/latex/wx/crtslock.tex delete mode 100644 docs/latex/wx/cursor.tex delete mode 100644 docs/latex/wx/database.tex delete mode 100644 docs/latex/wx/dataobj.tex delete mode 100644 docs/latex/wx/date.tex delete mode 100644 docs/latex/wx/datstrm.tex delete mode 100644 docs/latex/wx/dc.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/dialog.tex delete mode 100644 docs/latex/wx/dirdlg.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/dropevt.tex delete mode 100644 docs/latex/wx/dropsrc.tex delete mode 100644 docs/latex/wx/droptrgt.tex delete mode 100644 docs/latex/wx/eraseevt.tex delete mode 100644 docs/latex/wx/event.tex delete mode 100644 docs/latex/wx/evthand.tex delete mode 100644 docs/latex/wx/expr.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/filedlg.tex delete mode 100644 docs/latex/wx/filehist.tex delete mode 100644 docs/latex/wx/filetype.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/fontlist.tex delete mode 100644 docs/latex/wx/forward.gif delete mode 100644 docs/latex/wx/frame.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/gdiobj.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/hand1.bmp delete mode 100644 docs/latex/wx/hash.tex delete mode 100644 docs/latex/wx/hellow.bmp delete mode 100644 docs/latex/wx/hellow.gif delete mode 100644 docs/latex/wx/hellox.bmp delete mode 100644 docs/latex/wx/hellox.gif delete mode 100644 docs/latex/wx/helpinst.tex delete mode 100644 docs/latex/wx/http.tex delete mode 100644 docs/latex/wx/icon.tex delete mode 100644 docs/latex/wx/idleevt.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/indlgevt.tex delete mode 100644 docs/latex/wx/inputstr.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/layalgor.tex delete mode 100644 docs/latex/wx/layout.tex delete mode 100644 docs/latex/wx/list.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/locale.tex delete mode 100644 docs/latex/wx/log.tex delete mode 100644 docs/latex/wx/longlong.tex delete mode 100644 docs/latex/wx/manual.tex delete mode 100644 docs/latex/wx/mask.tex delete mode 100644 docs/latex/wx/mdi.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/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/mutex.tex delete mode 100644 docs/latex/wx/mutexlck.tex delete mode 100644 docs/latex/wx/node.tex delete mode 100644 docs/latex/wx/notebook.tex delete mode 100644 docs/latex/wx/noteevt.tex delete mode 100644 docs/latex/wx/notifevt.tex delete mode 100644 docs/latex/wx/object.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/pathlist.tex delete mode 100644 docs/latex/wx/pen.tex delete mode 100644 docs/latex/wx/plug.bmp delete mode 100644 docs/latex/wx/point.tex delete mode 100644 docs/latex/wx/postscpt.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/protocol.tex delete mode 100644 docs/latex/wx/prvdatob.tex delete mode 100644 docs/latex/wx/prvtdrpt.tex delete mode 100644 docs/latex/wx/psbox.tex delete mode 100644 docs/latex/wx/query.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/realpoin.tex delete mode 100644 docs/latex/wx/recrdset.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/region.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/sckaddr.tex delete mode 100644 docs/latex/wx/screendc.tex delete mode 100644 docs/latex/wx/scrolbar.tex delete mode 100644 docs/latex/wx/scrolevt.tex delete mode 100644 docs/latex/wx/scrolwin.tex delete mode 100644 docs/latex/wx/settings.tex delete mode 100644 docs/latex/wx/shelves.bmp delete mode 100644 docs/latex/wx/size.tex delete mode 100644 docs/latex/wx/sizeevt.tex delete mode 100644 docs/latex/wx/slider.tex delete mode 100644 docs/latex/wx/sngchdlg.tex delete mode 100644 docs/latex/wx/socket.tex delete mode 100644 docs/latex/wx/spinbutt.tex delete mode 100644 docs/latex/wx/splitevt.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/statbmp.tex delete mode 100644 docs/latex/wx/statbox.tex delete mode 100644 docs/latex/wx/stattext.tex delete mode 100644 docs/latex/wx/statusbr.tex delete mode 100644 docs/latex/wx/stream.tex delete mode 100644 docs/latex/wx/strlist.tex delete mode 100644 docs/latex/wx/strmbase.tex delete mode 100644 docs/latex/wx/strmfile.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/sysclevt.tex delete mode 100644 docs/latex/wx/tab.tex delete mode 100644 docs/latex/wx/tabctrl.tex delete mode 100644 docs/latex/wx/tabevent.tex delete mode 100644 docs/latex/wx/tapp.tex delete mode 100644 docs/latex/wx/taskbar.tex delete mode 100644 docs/latex/wx/tbitmap.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/tdb.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/tevent.tex delete mode 100644 docs/latex/wx/tex2rtf.ini delete mode 100644 docs/latex/wx/texhelp.sty delete mode 100644 docs/latex/wx/texpr.tex delete mode 100644 docs/latex/wx/text.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/tgrid.tex delete mode 100644 docs/latex/wx/tguide.tex delete mode 100644 docs/latex/wx/thread.tex delete mode 100644 docs/latex/wx/ti18n.tex delete mode 100644 docs/latex/wx/timaglst.tex delete mode 100644 docs/latex/wx/time.tex delete mode 100644 docs/latex/wx/timer.tex delete mode 100644 docs/latex/wx/tipc.tex delete mode 100644 docs/latex/wx/tlistctl.tex delete mode 100644 docs/latex/wx/tlog.tex delete mode 100644 docs/latex/wx/tokenizr.tex delete mode 100644 docs/latex/wx/toolbar.tex delete mode 100644 docs/latex/wx/topics.tex delete mode 100644 docs/latex/wx/tprint.tex delete mode 100644 docs/latex/wx/treectrl.tex delete mode 100644 docs/latex/wx/treeevt.tex delete mode 100644 docs/latex/wx/tresourc.tex delete mode 100644 docs/latex/wx/truntime.tex delete mode 100644 docs/latex/wx/tscroll.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/ttoolbar.tex delete mode 100644 docs/latex/wx/ttreectl.tex delete mode 100644 docs/latex/wx/tusage.tex delete mode 100644 docs/latex/wx/tvalidat.tex delete mode 100644 docs/latex/wx/txtdatob.tex delete mode 100644 docs/latex/wx/txtdrptg.tex delete mode 100644 docs/latex/wx/up.gif delete mode 100644 docs/latex/wx/upduievt.tex delete mode 100644 docs/latex/wx/url.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/variant.tex delete mode 100644 docs/latex/wx/view.tex delete mode 100644 docs/latex/wx/wave.tex delete mode 100644 docs/latex/wx/window.tex delete mode 100644 docs/latex/wx/windowdc.tex delete mode 100644 docs/latex/wx/wx.hpj delete mode 100644 docs/latex/wx/wxPython.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/lgpl.txt delete mode 100644 docs/licence.txt delete mode 100644 docs/licendoc.txt delete mode 100644 docs/motif/aix.txt delete mode 100644 docs/motif/install.txt delete mode 100644 docs/motif/issues.txt delete mode 100644 docs/motif/makewxmotif delete mode 100644 docs/motif/readme.txt delete mode 100644 docs/motif/todo.txt delete mode 100644 docs/msw/bc_ide.txt delete mode 100644 docs/msw/install.txt delete mode 100644 docs/msw/issues.txt delete mode 100644 docs/msw/mingw32.txt delete mode 100644 docs/msw/readme.txt delete mode 100644 docs/msw/todo.txt delete mode 100644 docs/preamble.txt delete mode 100644 docs/readme.txt delete mode 100644 docs/symbols.txt delete mode 100644 docs/todo.txt delete mode 100644 docs/word/odbc.doc delete mode 100644 docs/wxQt.html delete mode 100644 include/.cvsignore delete mode 100644 include/Makefile.am delete mode 100644 include/wx/.cvsignore delete mode 100644 include/wx/Makefile.am delete mode 100644 include/wx/accel.h delete mode 100644 include/wx/app.h delete mode 100644 include/wx/arrimpl.cpp delete mode 100644 include/wx/bitmap.h delete mode 100644 include/wx/bmpbuttn.h delete mode 100644 include/wx/brush.h delete mode 100644 include/wx/buffer.h delete mode 100644 include/wx/button.h delete mode 100644 include/wx/caret.h delete mode 100644 include/wx/checkbox.h delete mode 100644 include/wx/checklst.h delete mode 100644 include/wx/choicdlg.h delete mode 100644 include/wx/choice.h delete mode 100644 include/wx/clipbrd.h delete mode 100644 include/wx/cmndata.h delete mode 100644 include/wx/colordlg.h delete mode 100644 include/wx/colour.h delete mode 100644 include/wx/combobox.h delete mode 100644 include/wx/confbase.h delete mode 100644 include/wx/config.h delete mode 100644 include/wx/control.h delete mode 100644 include/wx/cursor.h delete mode 100644 include/wx/dataobj.h delete mode 100644 include/wx/date.h delete mode 100644 include/wx/datstrm.h delete mode 100644 include/wx/db.h delete mode 100644 include/wx/dbtable.h delete mode 100644 include/wx/dc.h delete mode 100644 include/wx/dcclient.h delete mode 100644 include/wx/dcmemory.h delete mode 100644 include/wx/dcprint.h delete mode 100644 include/wx/dcps.h delete mode 100644 include/wx/dcscreen.h delete mode 100644 include/wx/dde.h delete mode 100644 include/wx/debug.h delete mode 100644 include/wx/defs.h delete mode 100644 include/wx/dialog.h delete mode 100644 include/wx/dirdlg.h delete mode 100644 include/wx/dnd.h delete mode 100644 include/wx/docmdi.h delete mode 100644 include/wx/docview.h delete mode 100644 include/wx/dragimag.h delete mode 100644 include/wx/dynlib.h delete mode 100644 include/wx/event.h delete mode 100644 include/wx/expr.h delete mode 100644 include/wx/file.h delete mode 100644 include/wx/fileconf.h delete mode 100644 include/wx/filedlg.h delete mode 100644 include/wx/filefn.h delete mode 100644 include/wx/font.h delete mode 100644 include/wx/fontdlg.h delete mode 100644 include/wx/frame.h delete mode 100644 include/wx/gauge.h delete mode 100644 include/wx/gdicmn.h delete mode 100644 include/wx/gdiobj.h delete mode 100644 include/wx/generic/.cvsignore delete mode 100644 include/wx/generic/Makefile.am delete mode 100644 include/wx/generic/caret.h delete mode 100644 include/wx/generic/choicdgg.h delete mode 100644 include/wx/generic/colrdlgg.h delete mode 100644 include/wx/generic/dcpsg.h delete mode 100644 include/wx/generic/dirdlgg.h delete mode 100644 include/wx/generic/error.xpm delete mode 100644 include/wx/generic/fontdlgg.h delete mode 100644 include/wx/generic/gridg.h delete mode 100644 include/wx/generic/helpext.h delete mode 100644 include/wx/generic/helphtml.h delete mode 100644 include/wx/generic/helpxlp.h delete mode 100644 include/wx/generic/imaglist.h delete mode 100644 include/wx/generic/info.xpm delete mode 100644 include/wx/generic/laywin.h delete mode 100644 include/wx/generic/listctrl.h delete mode 100644 include/wx/generic/msgdlgg.h delete mode 100644 include/wx/generic/notebook.h delete mode 100644 include/wx/generic/panelg.h delete mode 100644 include/wx/generic/printps.h delete mode 100644 include/wx/generic/prntdlgg.h delete mode 100644 include/wx/generic/progdlgg.h delete mode 100644 include/wx/generic/question.xpm delete mode 100644 include/wx/generic/sashwin.h delete mode 100644 include/wx/generic/scrolwin.h delete mode 100644 include/wx/generic/splitter.h delete mode 100644 include/wx/generic/statusbr.h delete mode 100644 include/wx/generic/tabg.h delete mode 100644 include/wx/generic/textdlgg.h delete mode 100644 include/wx/generic/treectrl.h delete mode 100644 include/wx/generic/warning.xpm delete mode 100644 include/wx/grid.h delete mode 100644 include/wx/gtk/.cvsignore delete mode 100644 include/wx/gtk/Makefile.am delete mode 100644 include/wx/gtk/accel.h delete mode 100644 include/wx/gtk/app.h delete mode 100644 include/wx/gtk/bitmap.h delete mode 100644 include/wx/gtk/bmpbuttn.h delete mode 100644 include/wx/gtk/brush.h delete mode 100644 include/wx/gtk/button.h delete mode 100644 include/wx/gtk/checkbox.h delete mode 100644 include/wx/gtk/checklst.h delete mode 100644 include/wx/gtk/choice.h delete mode 100644 include/wx/gtk/clipbrd.h delete mode 100644 include/wx/gtk/colour.h delete mode 100644 include/wx/gtk/combobox.h delete mode 100644 include/wx/gtk/control.h delete mode 100644 include/wx/gtk/cursor.h delete mode 100644 include/wx/gtk/dataobj.h delete mode 100644 include/wx/gtk/dc.h delete mode 100644 include/wx/gtk/dcclient.h delete mode 100644 include/wx/gtk/dcmemory.h delete mode 100644 include/wx/gtk/dcps.h delete mode 100644 include/wx/gtk/dcscreen.h delete mode 100644 include/wx/gtk/dialog.h delete mode 100644 include/wx/gtk/dnd.h delete mode 100644 include/wx/gtk/filedlg.h delete mode 100644 include/wx/gtk/font.h delete mode 100644 include/wx/gtk/frame.h delete mode 100644 include/wx/gtk/gauge.h delete mode 100644 include/wx/gtk/gdiobj.h delete mode 100644 include/wx/gtk/icon.h delete mode 100644 include/wx/gtk/joystick.h delete mode 100644 include/wx/gtk/listbox.h delete mode 100644 include/wx/gtk/mdi.h delete mode 100644 include/wx/gtk/menu.h delete mode 100644 include/wx/gtk/menuitem.h delete mode 100644 include/wx/gtk/minifram.h delete mode 100644 include/wx/gtk/notebook.h delete mode 100644 include/wx/gtk/palette.h delete mode 100644 include/wx/gtk/pen.h delete mode 100644 include/wx/gtk/radiobox.h delete mode 100644 include/wx/gtk/radiobut.h delete mode 100644 include/wx/gtk/region.h delete mode 100644 include/wx/gtk/scrolbar.h delete mode 100644 include/wx/gtk/settings.h delete mode 100644 include/wx/gtk/slider.h delete mode 100644 include/wx/gtk/spinbutt.h delete mode 100644 include/wx/gtk/statbmp.h delete mode 100644 include/wx/gtk/statbox.h delete mode 100644 include/wx/gtk/statline.h delete mode 100644 include/wx/gtk/stattext.h delete mode 100644 include/wx/gtk/tbargtk.h delete mode 100644 include/wx/gtk/textctrl.h delete mode 100644 include/wx/gtk/timer.h delete mode 100644 include/wx/gtk/tooltip.h delete mode 100644 include/wx/gtk/treectrl.h delete mode 100644 include/wx/gtk/wave.h delete mode 100644 include/wx/gtk/win_gtk.h delete mode 100644 include/wx/gtk/window.h delete mode 100644 include/wx/gtk1/.cvsignore delete mode 100644 include/wx/gtk1/Makefile.am delete mode 100644 include/wx/gtk1/accel.h delete mode 100644 include/wx/gtk1/app.h delete mode 100644 include/wx/gtk1/bitmap.h delete mode 100644 include/wx/gtk1/bmpbuttn.h delete mode 100644 include/wx/gtk1/brush.h delete mode 100644 include/wx/gtk1/button.h delete mode 100644 include/wx/gtk1/checkbox.h delete mode 100644 include/wx/gtk1/checklst.h delete mode 100644 include/wx/gtk1/choice.h delete mode 100644 include/wx/gtk1/clipbrd.h delete mode 100644 include/wx/gtk1/colour.h delete mode 100644 include/wx/gtk1/combobox.h delete mode 100644 include/wx/gtk1/control.h delete mode 100644 include/wx/gtk1/cursor.h delete mode 100644 include/wx/gtk1/dataobj.h delete mode 100644 include/wx/gtk1/dc.h delete mode 100644 include/wx/gtk1/dcclient.h delete mode 100644 include/wx/gtk1/dcmemory.h delete mode 100644 include/wx/gtk1/dcps.h delete mode 100644 include/wx/gtk1/dcscreen.h delete mode 100644 include/wx/gtk1/dialog.h delete mode 100644 include/wx/gtk1/dnd.h delete mode 100644 include/wx/gtk1/filedlg.h delete mode 100644 include/wx/gtk1/font.h delete mode 100644 include/wx/gtk1/frame.h delete mode 100644 include/wx/gtk1/gauge.h delete mode 100644 include/wx/gtk1/gdiobj.h delete mode 100644 include/wx/gtk1/icon.h delete mode 100644 include/wx/gtk1/joystick.h delete mode 100644 include/wx/gtk1/listbox.h delete mode 100644 include/wx/gtk1/mdi.h delete mode 100644 include/wx/gtk1/menu.h delete mode 100644 include/wx/gtk1/menuitem.h delete mode 100644 include/wx/gtk1/minifram.h delete mode 100644 include/wx/gtk1/notebook.h delete mode 100644 include/wx/gtk1/palette.h delete mode 100644 include/wx/gtk1/pen.h delete mode 100644 include/wx/gtk1/radiobox.h delete mode 100644 include/wx/gtk1/radiobut.h delete mode 100644 include/wx/gtk1/region.h delete mode 100644 include/wx/gtk1/scrolbar.h delete mode 100644 include/wx/gtk1/settings.h delete mode 100644 include/wx/gtk1/slider.h delete mode 100644 include/wx/gtk1/spinbutt.h delete mode 100644 include/wx/gtk1/statbmp.h delete mode 100644 include/wx/gtk1/statbox.h delete mode 100644 include/wx/gtk1/statline.h delete mode 100644 include/wx/gtk1/stattext.h delete mode 100644 include/wx/gtk1/tbargtk.h delete mode 100644 include/wx/gtk1/textctrl.h delete mode 100644 include/wx/gtk1/timer.h delete mode 100644 include/wx/gtk1/tooltip.h delete mode 100644 include/wx/gtk1/treectrl.h delete mode 100644 include/wx/gtk1/wave.h delete mode 100644 include/wx/gtk1/win_gtk.h delete mode 100644 include/wx/gtk1/window.h delete mode 100644 include/wx/hash.h delete mode 100644 include/wx/help.h delete mode 100644 include/wx/helpbase.h delete mode 100644 include/wx/helphtml.h delete mode 100644 include/wx/helpwin.h delete mode 100644 include/wx/helpxlp.h delete mode 100644 include/wx/icon.h delete mode 100644 include/wx/image.h delete mode 100644 include/wx/imaggif.h delete mode 100644 include/wx/imaglist.h delete mode 100644 include/wx/intl.h delete mode 100644 include/wx/ioswrap.h delete mode 100644 include/wx/ipcbase.h delete mode 100644 include/wx/joystick.h delete mode 100644 include/wx/layout.h delete mode 100644 include/wx/laywin.h delete mode 100644 include/wx/list.h delete mode 100644 include/wx/listbox.h delete mode 100644 include/wx/listctrl.h delete mode 100644 include/wx/listimpl.cpp delete mode 100644 include/wx/log.h delete mode 100644 include/wx/longlong.h delete mode 100644 include/wx/mac/accel.h delete mode 100644 include/wx/mac/app.h delete mode 100644 include/wx/mac/bitmap.h delete mode 100644 include/wx/mac/bmpbuttn.h delete mode 100644 include/wx/mac/brush.h delete mode 100644 include/wx/mac/button.h delete mode 100644 include/wx/mac/checkbox.h delete mode 100644 include/wx/mac/checklst.h delete mode 100644 include/wx/mac/choice.h delete mode 100644 include/wx/mac/clipbrd.h delete mode 100644 include/wx/mac/colordlg.h delete mode 100644 include/wx/mac/colour.h delete mode 100644 include/wx/mac/combobox.h delete mode 100644 include/wx/mac/control.h delete mode 100644 include/wx/mac/cursor.h delete mode 100644 include/wx/mac/dc.h delete mode 100644 include/wx/mac/dcclient.h delete mode 100644 include/wx/mac/dcmemory.h delete mode 100644 include/wx/mac/dcprint.h delete mode 100644 include/wx/mac/dcscreen.h delete mode 100644 include/wx/mac/dialog.h delete mode 100644 include/wx/mac/dirdlg.h delete mode 100644 include/wx/mac/dnd.h delete mode 100644 include/wx/mac/filedlg.h delete mode 100644 include/wx/mac/font.h delete mode 100644 include/wx/mac/fontdlg.h delete mode 100644 include/wx/mac/frame.h delete mode 100644 include/wx/mac/gauge.h delete mode 100644 include/wx/mac/gdiobj.h delete mode 100644 include/wx/mac/helpxxxx.h delete mode 100644 include/wx/mac/icon.h delete mode 100644 include/wx/mac/imaglist.h delete mode 100644 include/wx/mac/joystick.h delete mode 100644 include/wx/mac/listbox.h delete mode 100644 include/wx/mac/listctrl.h delete mode 100644 include/wx/mac/macsock.h delete mode 100644 include/wx/mac/mdi.h delete mode 100644 include/wx/mac/menu.h delete mode 100644 include/wx/mac/menuitem.h delete mode 100644 include/wx/mac/metafile.h delete mode 100644 include/wx/mac/minifram.h delete mode 100644 include/wx/mac/msgdlg.h delete mode 100644 include/wx/mac/notebook.h delete mode 100644 include/wx/mac/palette.h delete mode 100644 include/wx/mac/pen.h delete mode 100644 include/wx/mac/print.h delete mode 100644 include/wx/mac/printdlg.h delete mode 100644 include/wx/mac/private.h delete mode 100644 include/wx/mac/radiobox.h delete mode 100644 include/wx/mac/radiobut.h delete mode 100644 include/wx/mac/region.h delete mode 100644 include/wx/mac/scrolbar.h delete mode 100644 include/wx/mac/settings.h delete mode 100644 include/wx/mac/setup.h delete mode 100644 include/wx/mac/slider.h delete mode 100644 include/wx/mac/spinbutt.h delete mode 100644 include/wx/mac/statbmp.h delete mode 100644 include/wx/mac/statbox.h delete mode 100644 include/wx/mac/stattext.h delete mode 100644 include/wx/mac/statusbr.h delete mode 100644 include/wx/mac/tabctrl.h delete mode 100644 include/wx/mac/taskbar.h delete mode 100644 include/wx/mac/textctrl.h delete mode 100644 include/wx/mac/timer.h delete mode 100644 include/wx/mac/toolbar.h delete mode 100644 include/wx/mac/treectrl.h delete mode 100644 include/wx/mac/wave.h delete mode 100644 include/wx/mac/window.h delete mode 100644 include/wx/matrix.h delete mode 100644 include/wx/mdi.h delete mode 100644 include/wx/memory.h delete mode 100644 include/wx/menu.h delete mode 100644 include/wx/menuitem.h delete mode 100644 include/wx/metafile.h delete mode 100644 include/wx/mimetype.h delete mode 100644 include/wx/minifram.h delete mode 100644 include/wx/module.h delete mode 100644 include/wx/motif/.cvsignore delete mode 100644 include/wx/motif/Makefile.am delete mode 100644 include/wx/motif/accel.h delete mode 100644 include/wx/motif/app.h delete mode 100644 include/wx/motif/bitmap.h delete mode 100644 include/wx/motif/bmpbuttn.h delete mode 100644 include/wx/motif/brush.h delete mode 100644 include/wx/motif/button.h delete mode 100644 include/wx/motif/checkbox.h delete mode 100644 include/wx/motif/checklst.h delete mode 100644 include/wx/motif/choice.h delete mode 100644 include/wx/motif/clipbrd.h delete mode 100644 include/wx/motif/colordlg.h delete mode 100644 include/wx/motif/colour.h delete mode 100644 include/wx/motif/combobox.h delete mode 100644 include/wx/motif/control.h delete mode 100644 include/wx/motif/cursor.h delete mode 100644 include/wx/motif/dataobj.h delete mode 100644 include/wx/motif/dc.h delete mode 100644 include/wx/motif/dcclient.h delete mode 100644 include/wx/motif/dcmemory.h delete mode 100644 include/wx/motif/dcprint.h delete mode 100644 include/wx/motif/dcscreen.h delete mode 100644 include/wx/motif/dialog.h delete mode 100644 include/wx/motif/dirdlg.h delete mode 100644 include/wx/motif/dnd.h delete mode 100644 include/wx/motif/filedlg.h delete mode 100644 include/wx/motif/font.h delete mode 100644 include/wx/motif/fontdlg.h delete mode 100644 include/wx/motif/frame.h delete mode 100644 include/wx/motif/gauge.h delete mode 100644 include/wx/motif/gdiobj.h delete mode 100644 include/wx/motif/helpxxxx.h delete mode 100644 include/wx/motif/icon.h delete mode 100644 include/wx/motif/joystick.h delete mode 100644 include/wx/motif/listbox.h delete mode 100644 include/wx/motif/mdi.h delete mode 100644 include/wx/motif/menu.h delete mode 100644 include/wx/motif/menuitem.h delete mode 100644 include/wx/motif/metafile.h delete mode 100644 include/wx/motif/minifram.h delete mode 100644 include/wx/motif/msgdlg.h delete mode 100644 include/wx/motif/palette.h delete mode 100644 include/wx/motif/pen.h delete mode 100644 include/wx/motif/print.h delete mode 100644 include/wx/motif/printdlg.h delete mode 100644 include/wx/motif/private.h delete mode 100644 include/wx/motif/radiobox.h delete mode 100644 include/wx/motif/radiobut.h delete mode 100644 include/wx/motif/region.h delete mode 100644 include/wx/motif/scrolbar.h delete mode 100644 include/wx/motif/settings.h delete mode 100644 include/wx/motif/setup0.h delete mode 100644 include/wx/motif/slider.h delete mode 100644 include/wx/motif/spinbutt.h delete mode 100644 include/wx/motif/statbmp.h delete mode 100644 include/wx/motif/statbox.h delete mode 100644 include/wx/motif/stattext.h delete mode 100644 include/wx/motif/tabctrl.h delete mode 100644 include/wx/motif/taskbar.h delete mode 100644 include/wx/motif/textctrl.h delete mode 100644 include/wx/motif/timer.h delete mode 100644 include/wx/motif/toolbar.h delete mode 100644 include/wx/motif/wave.h delete mode 100644 include/wx/motif/window.h delete mode 100644 include/wx/msgdlg.h delete mode 100644 include/wx/mstream.h delete mode 100644 include/wx/msw/.cvsignore delete mode 100644 include/wx/msw/Makefile.am delete mode 100644 include/wx/msw/accel.h delete mode 100644 include/wx/msw/app.h delete mode 100644 include/wx/msw/bitmap.h delete mode 100644 include/wx/msw/blank.cur delete mode 100644 include/wx/msw/bmpbuttn.h delete mode 100644 include/wx/msw/brush.h delete mode 100644 include/wx/msw/bullseye.cur delete mode 100644 include/wx/msw/button.h delete mode 100644 include/wx/msw/caret.h delete mode 100644 include/wx/msw/checkbox.h delete mode 100644 include/wx/msw/checklst.h delete mode 100644 include/wx/msw/child.ico delete mode 100644 include/wx/msw/choice.h delete mode 100644 include/wx/msw/clipbrd.h delete mode 100644 include/wx/msw/clock.cur delete mode 100644 include/wx/msw/colordlg.h delete mode 100644 include/wx/msw/colour.h delete mode 100644 include/wx/msw/combobox.h delete mode 100644 include/wx/msw/control.h delete mode 100644 include/wx/msw/ctl3d/ctl3d.h delete mode 100644 include/wx/msw/curico.h delete mode 100644 include/wx/msw/curicop.h delete mode 100644 include/wx/msw/cursor.h delete mode 100644 include/wx/msw/dc.h delete mode 100644 include/wx/msw/dcmemory.h delete mode 100644 include/wx/msw/dcprint.h delete mode 100644 include/wx/msw/dcscreen.h delete mode 100644 include/wx/msw/dde.h delete mode 100644 include/wx/msw/dialog.h delete mode 100644 include/wx/msw/dib.h delete mode 100644 include/wx/msw/dibutils.h delete mode 100644 include/wx/msw/dirdlg.h delete mode 100644 include/wx/msw/disable.bmp delete mode 100644 include/wx/msw/dragimag.h delete mode 100644 include/wx/msw/filedlg.h delete mode 100644 include/wx/msw/font.h delete mode 100644 include/wx/msw/fontdlg.h delete mode 100644 include/wx/msw/frame.h delete mode 100644 include/wx/msw/gauge.h delete mode 100644 include/wx/msw/gauge95.h delete mode 100644 include/wx/msw/gaugemsw.h delete mode 100644 include/wx/msw/gdiobj.h delete mode 100644 include/wx/msw/hand.cur delete mode 100644 include/wx/msw/heart.cur delete mode 100644 include/wx/msw/helpwin.h delete mode 100644 include/wx/msw/icon.h delete mode 100644 include/wx/msw/imaglist.h delete mode 100644 include/wx/msw/iniconf.h delete mode 100644 include/wx/msw/joystick.h delete mode 100644 include/wx/msw/listctrl.h delete mode 100644 include/wx/msw/magnif1.cur delete mode 100644 include/wx/msw/mdi.h delete mode 100644 include/wx/msw/mdi.ico delete mode 100644 include/wx/msw/menu.h delete mode 100644 include/wx/msw/menuitem.h delete mode 100644 include/wx/msw/metafile.h delete mode 100644 include/wx/msw/minifram.h delete mode 100644 include/wx/msw/msgdlg.h delete mode 100644 include/wx/msw/msvcrt.h delete mode 100644 include/wx/msw/noentry.cur delete mode 100644 include/wx/msw/ole/automtn.h delete mode 100644 include/wx/msw/ole/dataobj.h delete mode 100644 include/wx/msw/ole/dropsrc.h delete mode 100644 include/wx/msw/ole/droptgt.h delete mode 100644 include/wx/msw/ole/oleutils.h delete mode 100644 include/wx/msw/ole/uuid.h delete mode 100644 include/wx/msw/palette.h delete mode 100644 include/wx/msw/pbrush.cur delete mode 100644 include/wx/msw/pen.h delete mode 100644 include/wx/msw/pencil.cur delete mode 100644 include/wx/msw/pnghand.h delete mode 100644 include/wx/msw/pngread.h delete mode 100644 include/wx/msw/pntleft.cur delete mode 100644 include/wx/msw/pntright.cur delete mode 100644 include/wx/msw/printdlg.h delete mode 100644 include/wx/msw/printwin.h delete mode 100644 include/wx/msw/private.h delete mode 100644 include/wx/msw/query.cur delete mode 100644 include/wx/msw/radiobox.h delete mode 100644 include/wx/msw/radiobut.h delete mode 100644 include/wx/msw/regconf.h delete mode 100644 include/wx/msw/region.h delete mode 100644 include/wx/msw/registry.h delete mode 100644 include/wx/msw/roller.cur delete mode 100644 include/wx/msw/scrolbar.h delete mode 100644 include/wx/msw/settings.h delete mode 100644 include/wx/msw/setup0.h delete mode 100644 include/wx/msw/size.cur delete mode 100644 include/wx/msw/slider.h delete mode 100644 include/wx/msw/slider95.h delete mode 100644 include/wx/msw/slidrmsw.h delete mode 100644 include/wx/msw/spinbutt.h delete mode 100644 include/wx/msw/statbmp.h delete mode 100644 include/wx/msw/statbox.h delete mode 100644 include/wx/msw/statbr95.h delete mode 100644 include/wx/msw/stattext.h delete mode 100644 include/wx/msw/std.ico delete mode 100644 include/wx/msw/tabctrl.h delete mode 100644 include/wx/msw/taskbar.h delete mode 100644 include/wx/msw/tbar95.h delete mode 100644 include/wx/msw/tbarmsw.h delete mode 100644 include/wx/msw/textctrl.h delete mode 100644 include/wx/msw/timer.h delete mode 100644 include/wx/msw/tooltip.h delete mode 100644 include/wx/msw/treectrl.h delete mode 100644 include/wx/msw/watch1.cur delete mode 100644 include/wx/msw/wave.h delete mode 100644 include/wx/msw/window.h delete mode 100644 include/wx/msw/winundef.h delete mode 100644 include/wx/msw/wx.rc delete mode 100644 include/wx/msw/xpmhand.h delete mode 100644 include/wx/notebook.h delete mode 100644 include/wx/object.h delete mode 100644 include/wx/objstrm.h delete mode 100644 include/wx/odbc.h delete mode 100644 include/wx/ownerdrw.h delete mode 100644 include/wx/palette.h delete mode 100644 include/wx/panel.h delete mode 100644 include/wx/paper.h delete mode 100644 include/wx/pen.h delete mode 100644 include/wx/pnghand.h delete mode 100644 include/wx/print.h delete mode 100644 include/wx/printdlg.h delete mode 100644 include/wx/prntbase.h delete mode 100644 include/wx/process.h delete mode 100644 include/wx/progdlg.h delete mode 100644 include/wx/prop.h delete mode 100644 include/wx/propform.h delete mode 100644 include/wx/proplist.h delete mode 100644 include/wx/protocol/.cvsignore delete mode 100644 include/wx/protocol/Makefile.am delete mode 100644 include/wx/protocol/file.h delete mode 100644 include/wx/protocol/ftp.h delete mode 100644 include/wx/protocol/http.h delete mode 100644 include/wx/protocol/protocol.h delete mode 100644 include/wx/qt/app.h delete mode 100644 include/wx/qt/bitmap.h delete mode 100644 include/wx/qt/bmpbuttn.h delete mode 100644 include/wx/qt/brush.h delete mode 100644 include/wx/qt/button.h delete mode 100644 include/wx/qt/checkbox.h delete mode 100644 include/wx/qt/choice.h delete mode 100644 include/wx/qt/colour.h delete mode 100644 include/wx/qt/combobox.h delete mode 100644 include/wx/qt/control.h delete mode 100644 include/wx/qt/cursor.h delete mode 100644 include/wx/qt/dc.h delete mode 100644 include/wx/qt/dcclient.h delete mode 100644 include/wx/qt/dcmemory.h delete mode 100644 include/wx/qt/dcscreen.h delete mode 100644 include/wx/qt/dialog.h delete mode 100644 include/wx/qt/dirdlg.h delete mode 100644 include/wx/qt/dnd.h delete mode 100644 include/wx/qt/filedlg.h delete mode 100644 include/wx/qt/font.h delete mode 100644 include/wx/qt/frame.h delete mode 100644 include/wx/qt/gauge.h delete mode 100644 include/wx/qt/gdiobj.h delete mode 100644 include/wx/qt/icon.h delete mode 100644 include/wx/qt/joystick.h delete mode 100644 include/wx/qt/listbox.h delete mode 100644 include/wx/qt/mdi.h delete mode 100644 include/wx/qt/menu.h delete mode 100644 include/wx/qt/notebook.h delete mode 100644 include/wx/qt/palette.h delete mode 100644 include/wx/qt/pen.h delete mode 100644 include/wx/qt/radiobox.h delete mode 100644 include/wx/qt/radiobut.h delete mode 100644 include/wx/qt/region.h delete mode 100644 include/wx/qt/scrolbar.h delete mode 100644 include/wx/qt/settings.h delete mode 100644 include/wx/qt/slider.h delete mode 100644 include/wx/qt/statbmp.h delete mode 100644 include/wx/qt/statbox.h delete mode 100644 include/wx/qt/stattext.h delete mode 100644 include/wx/qt/tbargtk.h delete mode 100644 include/wx/qt/textctrl.h delete mode 100644 include/wx/qt/timer.h delete mode 100644 include/wx/qt/window.h delete mode 100644 include/wx/radiobox.h delete mode 100644 include/wx/radiobut.h delete mode 100644 include/wx/region.h delete mode 100644 include/wx/resource.h delete mode 100644 include/wx/sashwin.h delete mode 100644 include/wx/sckaddr.h delete mode 100644 include/wx/sckint.h delete mode 100644 include/wx/sckipc.h delete mode 100644 include/wx/sckstrm.h delete mode 100644 include/wx/scrolbar.h delete mode 100644 include/wx/scrolwin.h delete mode 100644 include/wx/serbase.h delete mode 100644 include/wx/settings.h delete mode 100644 include/wx/setup.h delete mode 100644 include/wx/slider.h delete mode 100644 include/wx/socket.h delete mode 100644 include/wx/spinbutt.h delete mode 100644 include/wx/splitter.h delete mode 100644 include/wx/statbmp.h delete mode 100644 include/wx/statbox.h delete mode 100644 include/wx/statline.h delete mode 100644 include/wx/stattext.h delete mode 100644 include/wx/statusbr.h delete mode 100644 include/wx/stream.h delete mode 100644 include/wx/string.h delete mode 100644 include/wx/stubs/accel.h delete mode 100644 include/wx/stubs/app.h delete mode 100644 include/wx/stubs/bitmap.h delete mode 100644 include/wx/stubs/bmpbuttn.h delete mode 100644 include/wx/stubs/brush.h delete mode 100644 include/wx/stubs/button.h delete mode 100644 include/wx/stubs/checkbox.h delete mode 100644 include/wx/stubs/checklst.h delete mode 100644 include/wx/stubs/choice.h delete mode 100644 include/wx/stubs/clipbrd.h delete mode 100644 include/wx/stubs/colordlg.h delete mode 100644 include/wx/stubs/colour.h delete mode 100644 include/wx/stubs/combobox.h delete mode 100644 include/wx/stubs/control.h delete mode 100644 include/wx/stubs/cursor.h delete mode 100644 include/wx/stubs/dc.h delete mode 100644 include/wx/stubs/dcclient.h delete mode 100644 include/wx/stubs/dcmemory.h delete mode 100644 include/wx/stubs/dcprint.h delete mode 100644 include/wx/stubs/dcscreen.h delete mode 100644 include/wx/stubs/dialog.h delete mode 100644 include/wx/stubs/dirdlg.h delete mode 100644 include/wx/stubs/dnd.h delete mode 100644 include/wx/stubs/filedlg.h delete mode 100644 include/wx/stubs/font.h delete mode 100644 include/wx/stubs/fontdlg.h delete mode 100644 include/wx/stubs/frame.h delete mode 100644 include/wx/stubs/gauge.h delete mode 100644 include/wx/stubs/gdiobj.h delete mode 100644 include/wx/stubs/helpxxxx.h delete mode 100644 include/wx/stubs/icon.h delete mode 100644 include/wx/stubs/imaglist.h delete mode 100644 include/wx/stubs/joystick.h delete mode 100644 include/wx/stubs/listbox.h delete mode 100644 include/wx/stubs/listctrl.h delete mode 100644 include/wx/stubs/mdi.h delete mode 100644 include/wx/stubs/menu.h delete mode 100644 include/wx/stubs/menuitem.h delete mode 100644 include/wx/stubs/metafile.h delete mode 100644 include/wx/stubs/minifram.h delete mode 100644 include/wx/stubs/msgdlg.h delete mode 100644 include/wx/stubs/notebook.h delete mode 100644 include/wx/stubs/palette.h delete mode 100644 include/wx/stubs/pen.h delete mode 100644 include/wx/stubs/print.h delete mode 100644 include/wx/stubs/printdlg.h delete mode 100644 include/wx/stubs/private.h delete mode 100644 include/wx/stubs/radiobox.h delete mode 100644 include/wx/stubs/radiobut.h delete mode 100644 include/wx/stubs/region.h delete mode 100644 include/wx/stubs/scrolbar.h delete mode 100644 include/wx/stubs/settings.h delete mode 100644 include/wx/stubs/setup.h delete mode 100644 include/wx/stubs/slider.h delete mode 100644 include/wx/stubs/spinbutt.h delete mode 100644 include/wx/stubs/statbmp.h delete mode 100644 include/wx/stubs/statbox.h delete mode 100644 include/wx/stubs/stattext.h delete mode 100644 include/wx/stubs/statusbr.h delete mode 100644 include/wx/stubs/tabctrl.h delete mode 100644 include/wx/stubs/taskbar.h delete mode 100644 include/wx/stubs/textctrl.h delete mode 100644 include/wx/stubs/timer.h delete mode 100644 include/wx/stubs/toolbar.h delete mode 100644 include/wx/stubs/treectrl.h delete mode 100644 include/wx/stubs/wave.h delete mode 100644 include/wx/stubs/window.h delete mode 100644 include/wx/tab.h delete mode 100644 include/wx/tabctrl.h delete mode 100644 include/wx/taskbar.h delete mode 100644 include/wx/tbar95.h delete mode 100644 include/wx/tbarbase.h delete mode 100644 include/wx/tbarmsw.h delete mode 100644 include/wx/tbarsmpl.h delete mode 100644 include/wx/textctrl.h delete mode 100644 include/wx/textdlg.h delete mode 100644 include/wx/textfile.h delete mode 100644 include/wx/thread.h delete mode 100644 include/wx/time.h delete mode 100644 include/wx/timer.h delete mode 100644 include/wx/tokenzr.h delete mode 100644 include/wx/toolbar.h delete mode 100644 include/wx/tooltip.h delete mode 100644 include/wx/treectrl.h delete mode 100644 include/wx/types.h delete mode 100644 include/wx/unix/.cvsignore delete mode 100644 include/wx/unix/Makefile.am delete mode 100644 include/wx/unix/execute.h delete mode 100644 include/wx/url.h delete mode 100644 include/wx/utils.h delete mode 100644 include/wx/valgen.h delete mode 100644 include/wx/validate.h delete mode 100644 include/wx/valtext.h delete mode 100644 include/wx/variant.h delete mode 100644 include/wx/version.h delete mode 100644 include/wx/wave.h delete mode 100644 include/wx/wfstream.h delete mode 100644 include/wx/window.h delete mode 100644 include/wx/wx.h delete mode 100644 include/wx/wx_cw.h delete mode 100644 include/wx/wx_cw_cm.h delete mode 100644 include/wx/wx_cw_d.h delete mode 100644 include/wx/wxchar.h delete mode 100644 include/wx/wxexpr.h delete mode 100644 include/wx/wxprec.h delete mode 100644 include/wx/xpmhand.h delete mode 100644 include/wx/zstream.h delete mode 100644 include/wx_cw.pch delete mode 100644 include/wx_cw.pch++ delete mode 100644 include/wx_cw_d.pch delete mode 100644 include/wx_cw_d.pch++ delete mode 100755 install-sh delete mode 100644 lib/.cvsignore delete mode 100644 lib/dummy delete mode 100644 locale/Makefile delete mode 100644 locale/cs.mo delete mode 100644 locale/cs.po delete mode 100644 locale/cz.mo delete mode 100644 locale/cz.po delete mode 100644 locale/de.po delete mode 100644 locale/wxstd.po delete mode 100755 ltconfig delete mode 100644 ltmain.sh delete mode 100644 misc/.cvsignore delete mode 100644 misc/Makefile.am delete mode 100644 misc/afm/.cvsignore delete mode 100644 misc/afm/Cour.afm delete mode 100644 misc/afm/CourBo.afm delete mode 100644 misc/afm/CourBoO.afm delete mode 100644 misc/afm/CourO.afm delete mode 100644 misc/afm/Helv.afm delete mode 100644 misc/afm/HelvBo.afm delete mode 100644 misc/afm/HelvBoO.afm delete mode 100644 misc/afm/HelvO.afm delete mode 100644 misc/afm/Makefile.am delete mode 100644 misc/afm/TimesBo.afm delete mode 100644 misc/afm/TimesBoO.afm delete mode 100644 misc/afm/TimesO.afm delete mode 100644 misc/afm/TimesRo.afm delete mode 100644 misc/gs_afm/.cvsignore delete mode 100644 misc/gs_afm/Cour.afm delete mode 100644 misc/gs_afm/CourBo.afm delete mode 100644 misc/gs_afm/CourBoO.afm delete mode 100644 misc/gs_afm/CourO.afm delete mode 100644 misc/gs_afm/Helv.afm delete mode 100644 misc/gs_afm/HelvBo.afm delete mode 100644 misc/gs_afm/HelvBoO.afm delete mode 100644 misc/gs_afm/HelvO.afm delete mode 100644 misc/gs_afm/Makefile.am delete mode 100644 misc/gs_afm/TimesBo.afm delete mode 100644 misc/gs_afm/TimesBoO.afm delete mode 100644 misc/gs_afm/TimesO.afm delete mode 100644 misc/gs_afm/TimesRo.afm delete mode 100755 missing delete mode 100644 mkinstalldirs delete mode 100644 samples/Makefile.am delete mode 100644 samples/bombs/.cvsignore delete mode 100644 samples/bombs/Makefile.am delete mode 100644 samples/bombs/bombs.bmp delete mode 100644 samples/bombs/bombs.cpp delete mode 100644 samples/bombs/bombs.def delete mode 100644 samples/bombs/bombs.h delete mode 100644 samples/bombs/bombs.ico delete mode 100644 samples/bombs/bombs.rc delete mode 100644 samples/bombs/bombs.xpm delete mode 100644 samples/bombs/bombs1.cpp delete mode 100644 samples/bombs/game.cpp delete mode 100644 samples/bombs/game.h delete mode 100644 samples/bombs/makefile.b32 delete mode 100644 samples/bombs/makefile.bcc delete mode 100644 samples/bombs/makefile.dos delete mode 100644 samples/bombs/makefile.g95 delete mode 100644 samples/bombs/makefile.unx delete mode 100644 samples/bombs/makefile.vc delete mode 100644 samples/bombs/makefile.wat delete mode 100644 samples/bombs/readme.txt delete mode 100644 samples/caret/.cvsignore delete mode 100644 samples/caret/Makefile.am delete mode 100644 samples/caret/caret.cpp delete mode 100644 samples/caret/caret.def delete mode 100644 samples/caret/caret.rc delete mode 100644 samples/caret/makefile.b32 delete mode 100644 samples/caret/makefile.bcc delete mode 100644 samples/caret/makefile.dos delete mode 100644 samples/caret/makefile.g95 delete mode 100644 samples/caret/makefile.twn delete mode 100644 samples/caret/makefile.unx delete mode 100644 samples/caret/makefile.vc delete mode 100644 samples/caret/makefile.wat delete mode 100644 samples/caret/mondrian.xpm delete mode 100644 samples/checklst/.cvsignore delete mode 100644 samples/checklst/Makefile.am delete mode 100644 samples/checklst/checklst.cpp delete mode 100644 samples/checklst/checklst.def delete mode 100644 samples/checklst/checklst.rc delete mode 100644 samples/checklst/makefile.b32 delete mode 100644 samples/checklst/makefile.dos delete mode 100644 samples/checklst/makefile.g95 delete mode 100644 samples/checklst/makefile.vc delete mode 100644 samples/checklst/makefile.wat delete mode 100644 samples/checklst/mondrian.xpm delete mode 100644 samples/config/.cvsignore delete mode 100644 samples/config/Makefile.am delete mode 100644 samples/config/conftest.cpp delete mode 100644 samples/config/conftest.def delete mode 100644 samples/config/conftest.rc delete mode 100644 samples/config/makefile.b32 delete mode 100644 samples/config/makefile.bcc delete mode 100644 samples/config/makefile.dos delete mode 100644 samples/config/makefile.g95 delete mode 100644 samples/config/makefile.unx delete mode 100644 samples/config/makefile.vc delete mode 100644 samples/config/makefile.wat delete mode 100644 samples/controls/.cvsignore delete mode 100644 samples/controls/Makefile.am delete mode 100644 samples/controls/controls.cpp delete mode 100644 samples/controls/controls.def delete mode 100644 samples/controls/controls.rc delete mode 100644 samples/controls/icons/choice.bmp delete mode 100644 samples/controls/icons/choice.xpm delete mode 100644 samples/controls/icons/combo.bmp delete mode 100644 samples/controls/icons/combo.xpm delete mode 100644 samples/controls/icons/gauge.bmp delete mode 100644 samples/controls/icons/gauge.xpm delete mode 100644 samples/controls/icons/list.bmp delete mode 100644 samples/controls/icons/list.xpm delete mode 100644 samples/controls/icons/radio.bmp delete mode 100644 samples/controls/icons/radio.xpm delete mode 100644 samples/controls/icons/stattext.xpm delete mode 100644 samples/controls/icons/text.bmp delete mode 100644 samples/controls/icons/text.xpm delete mode 100644 samples/controls/makefile.b32 delete mode 100644 samples/controls/makefile.bcc delete mode 100644 samples/controls/makefile.dos delete mode 100644 samples/controls/makefile.g95 delete mode 100644 samples/controls/makefile.unx delete mode 100644 samples/controls/makefile.vc delete mode 100644 samples/controls/makefile.wat delete mode 100644 samples/controls/mondrian.ico delete mode 100644 samples/controls/mondrian.xpm delete mode 100644 samples/db/.cvsignore delete mode 100644 samples/db/Makefile.am delete mode 100644 samples/db/db.xpm delete mode 100644 samples/db/dbtest.cpp delete mode 100644 samples/db/dbtest.def delete mode 100644 samples/db/dbtest.h delete mode 100644 samples/db/dbtest.ico delete mode 100644 samples/db/dbtest.rc delete mode 100644 samples/db/listdb.cpp delete mode 100644 samples/db/listdb.h delete mode 100644 samples/db/makefile.b32 delete mode 100644 samples/db/makefile.dos delete mode 100644 samples/db/makefile.g95 delete mode 100644 samples/db/makefile.unx delete mode 100644 samples/db/makefile.vc delete mode 100644 samples/db/makefile.wat delete mode 100644 samples/dde/.cvsignore delete mode 100644 samples/dde/client.cpp delete mode 100644 samples/dde/client.def delete mode 100644 samples/dde/client.g95 delete mode 100644 samples/dde/client.h delete mode 100644 samples/dde/client.rc delete mode 100644 samples/dde/client.vc delete mode 100644 samples/dde/client.wat delete mode 100644 samples/dde/ddesetup.h delete mode 100644 samples/dde/makefile.b32 delete mode 100644 samples/dde/makefile.dos delete mode 100644 samples/dde/makefile.g95 delete mode 100644 samples/dde/makefile.vc delete mode 100644 samples/dde/mondrian.ico delete mode 100644 samples/dde/mondrian.xpm delete mode 100644 samples/dde/server.cpp delete mode 100644 samples/dde/server.def delete mode 100644 samples/dde/server.g95 delete mode 100644 samples/dde/server.h delete mode 100644 samples/dde/server.rc delete mode 100644 samples/dde/server.vc delete mode 100644 samples/dde/server.wat delete mode 100644 samples/dialogs/.cvsignore delete mode 100644 samples/dialogs/Makefile.am delete mode 100644 samples/dialogs/dialogs.cpp delete mode 100644 samples/dialogs/dialogs.def delete mode 100644 samples/dialogs/dialogs.h delete mode 100644 samples/dialogs/dialogs.rc delete mode 100644 samples/dialogs/makefile.b32 delete mode 100644 samples/dialogs/makefile.bcc delete mode 100644 samples/dialogs/makefile.dos delete mode 100644 samples/dialogs/makefile.g95 delete mode 100644 samples/dialogs/makefile.twn delete mode 100644 samples/dialogs/makefile.unx delete mode 100644 samples/dialogs/makefile.vc delete mode 100644 samples/dialogs/makefile.wat delete mode 100644 samples/dnd/.cvsignore delete mode 100644 samples/dnd/Makefile.am delete mode 100644 samples/dnd/d_and_d.txt delete mode 100644 samples/dnd/dnd.cpp delete mode 100644 samples/dnd/dnd.def delete mode 100644 samples/dnd/dnd.rc delete mode 100644 samples/dnd/makefile.b32 delete mode 100644 samples/dnd/makefile.dos delete mode 100644 samples/dnd/makefile.g95 delete mode 100644 samples/dnd/makefile.unx delete mode 100644 samples/dnd/makefile.vc delete mode 100644 samples/dnd/makefile.wat delete mode 100644 samples/dnd/mondrian.ico delete mode 100644 samples/dnd/mondrian.xpm delete mode 100644 samples/dnd/test.dsp delete mode 100644 samples/dnd/test.dsw delete mode 100644 samples/docview/.cvsignore delete mode 100644 samples/docview/Makefile.am delete mode 100644 samples/docview/chart.ico delete mode 100644 samples/docview/doc.cpp delete mode 100644 samples/docview/doc.h delete mode 100644 samples/docview/doc.ico delete mode 100644 samples/docview/docview.cpp delete mode 100644 samples/docview/docview.def delete mode 100644 samples/docview/docview.h delete mode 100644 samples/docview/docview.rc delete mode 100644 samples/docview/makefile.b32 delete mode 100644 samples/docview/makefile.bcc delete mode 100644 samples/docview/makefile.dos delete mode 100644 samples/docview/makefile.g95 delete mode 100644 samples/docview/makefile.sc delete mode 100644 samples/docview/makefile.unx delete mode 100644 samples/docview/makefile.vc delete mode 100644 samples/docview/makefile.vms delete mode 100644 samples/docview/makefile.wat delete mode 100644 samples/docview/mondrian.ico delete mode 100644 samples/docview/mondrian.xpm delete mode 100644 samples/docview/notepad.ico delete mode 100644 samples/docview/view.cpp delete mode 100644 samples/docview/view.h delete mode 100644 samples/docvwmdi/.cvsignore delete mode 100644 samples/docvwmdi/Makefile.am delete mode 100644 samples/docvwmdi/chart.ico delete mode 100644 samples/docvwmdi/doc.cpp delete mode 100644 samples/docvwmdi/doc.h delete mode 100644 samples/docvwmdi/doc.ico delete mode 100644 samples/docvwmdi/docview.cpp delete mode 100644 samples/docvwmdi/docview.def delete mode 100644 samples/docvwmdi/docview.h delete mode 100644 samples/docvwmdi/docview.rc delete mode 100644 samples/docvwmdi/makefile.b32 delete mode 100644 samples/docvwmdi/makefile.bcc delete mode 100644 samples/docvwmdi/makefile.dos delete mode 100644 samples/docvwmdi/makefile.g95 delete mode 100644 samples/docvwmdi/makefile.unx delete mode 100644 samples/docvwmdi/makefile.vc delete mode 100644 samples/docvwmdi/makefile.wat delete mode 100644 samples/docvwmdi/notepad.ico delete mode 100644 samples/docvwmdi/view.cpp delete mode 100644 samples/docvwmdi/view.h delete mode 100644 samples/drawing/.cvsignore delete mode 100644 samples/drawing/Makefile.am delete mode 100644 samples/drawing/drawing.cpp delete mode 100644 samples/drawing/drawing.def delete mode 100644 samples/drawing/drawing.rc delete mode 100644 samples/drawing/makefile.b32 delete mode 100644 samples/drawing/makefile.bcc delete mode 100644 samples/drawing/makefile.dos delete mode 100644 samples/drawing/makefile.g95 delete mode 100644 samples/drawing/makefile.twn delete mode 100644 samples/drawing/makefile.unx delete mode 100644 samples/drawing/makefile.vc delete mode 100644 samples/drawing/makefile.wat delete mode 100644 samples/drawing/mondrian.xpm delete mode 100644 samples/dynamic/.cvsignore delete mode 100644 samples/dynamic/Makefile.am delete mode 100644 samples/dynamic/dynamic.cpp delete mode 100644 samples/dynamic/dynamic.def delete mode 100644 samples/dynamic/dynamic.rc delete mode 100644 samples/dynamic/makefile.b32 delete mode 100644 samples/dynamic/makefile.bcc delete mode 100644 samples/dynamic/makefile.dos delete mode 100644 samples/dynamic/makefile.g95 delete mode 100644 samples/dynamic/makefile.unx delete mode 100644 samples/dynamic/makefile.vc delete mode 100644 samples/dynamic/minimal.cpp delete mode 100644 samples/dynamic/mondrian.ico delete mode 100644 samples/dynamic/mondrian.xpm delete mode 100644 samples/forty/.cvsignore delete mode 100644 samples/forty/Makefile.am delete mode 100644 samples/forty/canvas.cpp delete mode 100644 samples/forty/canvas.h delete mode 100644 samples/forty/card.cpp delete mode 100644 samples/forty/card.h delete mode 100644 samples/forty/cards.ico delete mode 100644 samples/forty/forty.cpp delete mode 100644 samples/forty/forty.def delete mode 100644 samples/forty/forty.h delete mode 100644 samples/forty/forty.rc delete mode 100644 samples/forty/game.cpp delete mode 100644 samples/forty/game.h delete mode 100644 samples/forty/makefile.b32 delete mode 100644 samples/forty/makefile.bcc delete mode 100644 samples/forty/makefile.dos delete mode 100644 samples/forty/makefile.g95 delete mode 100644 samples/forty/makefile.vc delete mode 100644 samples/forty/makefile.wat delete mode 100644 samples/forty/pictures.bmp delete mode 100644 samples/forty/pictures.xpm delete mode 100644 samples/forty/pile.cpp delete mode 100644 samples/forty/pile.h delete mode 100644 samples/forty/playerdg.cpp delete mode 100644 samples/forty/playerdg.h delete mode 100644 samples/forty/scoredg.cpp delete mode 100644 samples/forty/scoredg.h delete mode 100644 samples/forty/scorefil.cpp delete mode 100644 samples/forty/scorefil.h delete mode 100644 samples/forty/symbols.bmp delete mode 100644 samples/forty/symbols.xbm delete mode 100644 samples/forty/symbols.xpm delete mode 100644 samples/fractal/.cvsignore delete mode 100644 samples/fractal/Makefile.am delete mode 100644 samples/fractal/fractal.cpp delete mode 100644 samples/fractal/fractal.def delete mode 100644 samples/fractal/fractal.rc delete mode 100644 samples/fractal/makefile.b32 delete mode 100644 samples/fractal/makefile.bcc delete mode 100644 samples/fractal/makefile.dos delete mode 100644 samples/fractal/makefile.g95 delete mode 100644 samples/fractal/makefile.unx delete mode 100644 samples/fractal/makefile.vc delete mode 100644 samples/fractal/makefile.wat delete mode 100644 samples/fractal/mondrian.ico delete mode 100644 samples/grid/.cvsignore delete mode 100644 samples/grid/Makefile.am delete mode 100644 samples/grid/bitmap1.bmp delete mode 100644 samples/grid/bitmap2.bmp delete mode 100644 samples/grid/makefile.b32 delete mode 100644 samples/grid/makefile.bcc delete mode 100644 samples/grid/makefile.dos delete mode 100644 samples/grid/makefile.g95 delete mode 100644 samples/grid/makefile.unx delete mode 100644 samples/grid/makefile.vc delete mode 100644 samples/grid/makefile.wat delete mode 100644 samples/grid/test.cpp delete mode 100644 samples/grid/test.def delete mode 100644 samples/grid/test.rc delete mode 100644 samples/help/.cvsignore delete mode 100644 samples/help/Makefile.am delete mode 100644 samples/help/demo.cpp delete mode 100644 samples/help/demo.def delete mode 100644 samples/help/demo.rc delete mode 100644 samples/help/doc/ClassGraph.class delete mode 100644 samples/help/doc/ClassGraphPanel.class delete mode 100644 samples/help/doc/ClassLayout.class delete mode 100644 samples/help/doc/HIER.html delete mode 100644 samples/help/doc/HIERjava.html delete mode 100644 samples/help/doc/NavigatorButton.class delete mode 100644 samples/help/doc/USE_HELP.html delete mode 100644 samples/help/doc/aindex.html delete mode 100644 samples/help/doc/down.gif delete mode 100644 samples/help/doc/dxxgifs.tex delete mode 100644 samples/help/doc/gifs.db delete mode 100644 samples/help/doc/icon1.gif delete mode 100644 samples/help/doc/icon2.gif delete mode 100644 samples/help/doc/index.html delete mode 100644 samples/help/doc/logo.gif delete mode 100644 samples/help/doc/wx204.htm delete mode 100644 samples/help/doc/wx34.htm delete mode 100644 samples/help/doc/wxExtHelpController.html delete mode 100644 samples/help/doc/wxhelp.map delete mode 100644 samples/help/makefile.b32 delete mode 100644 samples/help/makefile.bcc delete mode 100644 samples/help/makefile.dos delete mode 100644 samples/help/makefile.g95 delete mode 100644 samples/help/makefile.unx delete mode 100644 samples/help/makefile.vc delete mode 100644 samples/help/makefile.wat delete mode 100644 samples/help/mondrian.ico delete mode 100644 samples/help/mondrian.xpm delete mode 100644 samples/image/.cvsignore delete mode 100644 samples/image/Makefile.am delete mode 100644 samples/image/horse.bmp delete mode 100644 samples/image/horse.gif delete mode 100644 samples/image/horse.jpg delete mode 100644 samples/image/horse.png delete mode 100644 samples/image/image.cpp delete mode 100644 samples/image/image.def delete mode 100644 samples/image/image.rc delete mode 100644 samples/image/makefile.b32 delete mode 100644 samples/image/makefile.bcc delete mode 100644 samples/image/makefile.dos delete mode 100644 samples/image/makefile.g95 delete mode 100644 samples/image/makefile.unx delete mode 100644 samples/image/makefile.vc delete mode 100644 samples/image/makefile.wat delete mode 100644 samples/internat/.cvsignore delete mode 100644 samples/internat/Makefile.am delete mode 100644 samples/internat/fr/internat.mo delete mode 100644 samples/internat/fr/internat.po delete mode 100644 samples/internat/fr/wxstd.mo delete mode 100644 samples/internat/fr/wxstd.po delete mode 100644 samples/internat/internat.cpp delete mode 100644 samples/internat/internat.def delete mode 100644 samples/internat/internat.rc delete mode 100644 samples/internat/makefile.b32 delete mode 100644 samples/internat/makefile.bcc delete mode 100644 samples/internat/makefile.dos delete mode 100644 samples/internat/makefile.g95 delete mode 100644 samples/internat/makefile.sc delete mode 100644 samples/internat/makefile.unx delete mode 100644 samples/internat/makefile.vc delete mode 100644 samples/internat/makefile.vms delete mode 100644 samples/internat/makefile.wat delete mode 100644 samples/internat/mondrian.ico delete mode 100644 samples/internat/mondrian.xpm delete mode 100644 samples/internat/readme.txt delete mode 100644 samples/internat/wxstd.po delete mode 100644 samples/joytest/.cvsignore delete mode 100644 samples/joytest/Makefile.am delete mode 100644 samples/joytest/chart.ico delete mode 100644 samples/joytest/gun.wav delete mode 100644 samples/joytest/joytest.cpp delete mode 100644 samples/joytest/joytest.def delete mode 100644 samples/joytest/joytest.h delete mode 100644 samples/joytest/joytest.ico delete mode 100644 samples/joytest/joytest.rc delete mode 100644 samples/joytest/makefile.b32 delete mode 100644 samples/joytest/makefile.bcc delete mode 100644 samples/joytest/makefile.dos delete mode 100644 samples/joytest/makefile.g95 delete mode 100644 samples/joytest/makefile.sc delete mode 100644 samples/joytest/makefile.unx delete mode 100644 samples/joytest/makefile.vc delete mode 100644 samples/joytest/makefile.wat delete mode 100644 samples/joytest/mondrian.ico delete mode 100644 samples/layout/.cvsignore delete mode 100644 samples/layout/Makefile.am delete mode 100644 samples/layout/expt.cpp delete mode 100644 samples/layout/fload.xbm delete mode 100644 samples/layout/layout.cpp delete mode 100644 samples/layout/layout.def delete mode 100644 samples/layout/layout.h delete mode 100644 samples/layout/layout.rc delete mode 100644 samples/layout/makefile.b32 delete mode 100644 samples/layout/makefile.bcc delete mode 100644 samples/layout/makefile.dos delete mode 100644 samples/layout/makefile.g95 delete mode 100644 samples/layout/makefile.sc delete mode 100644 samples/layout/makefile.unx delete mode 100644 samples/layout/makefile.vc delete mode 100644 samples/layout/makefile.vms delete mode 100644 samples/layout/makefile.wat delete mode 100644 samples/listctrl/.cvsignore delete mode 100644 samples/listctrl/Makefile.am delete mode 100644 samples/listctrl/bitmaps/small1.ico delete mode 100644 samples/listctrl/bitmaps/small1.xpm delete mode 100644 samples/listctrl/bitmaps/toolbrai.ico delete mode 100644 samples/listctrl/bitmaps/toolbrai.xpm delete mode 100644 samples/listctrl/bitmaps/toolchar.ico delete mode 100644 samples/listctrl/bitmaps/toolchar.xpm delete mode 100644 samples/listctrl/bitmaps/toolchec.ico delete mode 100644 samples/listctrl/bitmaps/toolchec.xpm delete mode 100644 samples/listctrl/bitmaps/tooldata.ico delete mode 100644 samples/listctrl/bitmaps/tooldata.xpm delete mode 100644 samples/listctrl/bitmaps/toolgame.ico delete mode 100644 samples/listctrl/bitmaps/toolgame.xpm delete mode 100644 samples/listctrl/bitmaps/toolnote.ico delete mode 100644 samples/listctrl/bitmaps/toolnote.xpm delete mode 100644 samples/listctrl/bitmaps/tooltime.ico delete mode 100644 samples/listctrl/bitmaps/tooltime.xpm delete mode 100644 samples/listctrl/bitmaps/tooltodo.ico delete mode 100644 samples/listctrl/bitmaps/tooltodo.xpm delete mode 100644 samples/listctrl/bitmaps/toolword.ico delete mode 100644 samples/listctrl/bitmaps/toolword.xpm delete mode 100644 samples/listctrl/listtest.cpp delete mode 100644 samples/listctrl/listtest.def delete mode 100644 samples/listctrl/listtest.h delete mode 100644 samples/listctrl/listtest.rc delete mode 100644 samples/listctrl/makefile.b32 delete mode 100644 samples/listctrl/makefile.bcc delete mode 100644 samples/listctrl/makefile.dos delete mode 100644 samples/listctrl/makefile.g95 delete mode 100644 samples/listctrl/makefile.unx delete mode 100644 samples/listctrl/makefile.vc delete mode 100644 samples/listctrl/makefile.wat delete mode 100644 samples/listctrl/mondrian.ico delete mode 100644 samples/listctrl/mondrian.xpm delete mode 100644 samples/listctrl/test.dsp delete mode 100644 samples/listctrl/test.dsw delete mode 100644 samples/makefile.b32 delete mode 100644 samples/makefile.dos delete mode 100644 samples/makefile.g95 delete mode 100644 samples/makefile.unx delete mode 100644 samples/makefile.vc delete mode 100644 samples/mdi/.cvsignore delete mode 100644 samples/mdi/Makefile.am delete mode 100644 samples/mdi/bitmaps/bitmap1.bmp delete mode 100644 samples/mdi/bitmaps/bitmap2.bmp delete mode 100644 samples/mdi/bitmaps/calc.bmp delete mode 100644 samples/mdi/bitmaps/copy.bmp delete mode 100644 samples/mdi/bitmaps/copy.xpm delete mode 100644 samples/mdi/bitmaps/cut.bmp delete mode 100644 samples/mdi/bitmaps/cut.xpm delete mode 100644 samples/mdi/bitmaps/dirplain.xbm delete mode 100644 samples/mdi/bitmaps/draft.xbm delete mode 100644 samples/mdi/bitmaps/drawing.xbm delete mode 100644 samples/mdi/bitmaps/flowchar.xbm delete mode 100644 samples/mdi/bitmaps/help.bmp delete mode 100644 samples/mdi/bitmaps/help.xpm delete mode 100644 samples/mdi/bitmaps/helpcs.bmp delete mode 100644 samples/mdi/bitmaps/new.bmp delete mode 100644 samples/mdi/bitmaps/new.xpm delete mode 100644 samples/mdi/bitmaps/open.bmp delete mode 100644 samples/mdi/bitmaps/open.xpm delete mode 100644 samples/mdi/bitmaps/paste.bmp delete mode 100644 samples/mdi/bitmaps/paste.xpm delete mode 100644 samples/mdi/bitmaps/preview.bmp delete mode 100644 samples/mdi/bitmaps/preview.xpm delete mode 100644 samples/mdi/bitmaps/print.bmp delete mode 100644 samples/mdi/bitmaps/print.xpm delete mode 100644 samples/mdi/bitmaps/save.bmp delete mode 100644 samples/mdi/bitmaps/save.xpm delete mode 100644 samples/mdi/bitmaps/tick.bmp delete mode 100644 samples/mdi/bitmaps/write.xbm delete mode 100644 samples/mdi/chart.ico delete mode 100644 samples/mdi/makefile.b32 delete mode 100644 samples/mdi/makefile.bcc delete mode 100644 samples/mdi/makefile.dos delete mode 100644 samples/mdi/makefile.g95 delete mode 100644 samples/mdi/makefile.sc delete mode 100644 samples/mdi/makefile.sl delete mode 100644 samples/mdi/makefile.twn delete mode 100644 samples/mdi/makefile.unx delete mode 100644 samples/mdi/makefile.vc delete mode 100644 samples/mdi/makefile.vms delete mode 100644 samples/mdi/makefile.wat delete mode 100644 samples/mdi/mdi.cpp delete mode 100644 samples/mdi/mdi.def delete mode 100644 samples/mdi/mdi.h delete mode 100644 samples/mdi/mdi.ico delete mode 100644 samples/mdi/mdi.rc delete mode 100644 samples/mdi/mondrian.ico delete mode 100644 samples/mdi/mondrian.xpm delete mode 100644 samples/memcheck/.cvsignore delete mode 100644 samples/memcheck/Makefile.am delete mode 100644 samples/memcheck/makefile.b32 delete mode 100644 samples/memcheck/makefile.bcc delete mode 100644 samples/memcheck/makefile.dos delete mode 100644 samples/memcheck/makefile.g95 delete mode 100644 samples/memcheck/makefile.unx delete mode 100644 samples/memcheck/makefile.vc delete mode 100644 samples/memcheck/makefile.wat delete mode 100644 samples/memcheck/memcheck.cpp delete mode 100644 samples/memcheck/memcheck.def delete mode 100644 samples/memcheck/memcheck.rc delete mode 100644 samples/memcheck/mondrian.ico delete mode 100644 samples/memcheck/mondrian.xpm delete mode 100644 samples/mfc/.cvsignore delete mode 100644 samples/mfc/Makefile.am delete mode 100644 samples/mfc/makefile.b32 delete mode 100644 samples/mfc/makefile.bcc delete mode 100644 samples/mfc/makefile.dos delete mode 100644 samples/mfc/makefile.g95 delete mode 100644 samples/mfc/makefile.vc delete mode 100644 samples/mfc/makefile.wat delete mode 100644 samples/mfc/mfctest.cpp delete mode 100644 samples/mfc/mfctest.def delete mode 100644 samples/mfc/mfctest.h delete mode 100644 samples/mfc/mfctest.ico delete mode 100644 samples/mfc/mfctest.rc delete mode 100644 samples/mfc/resource.h delete mode 100644 samples/mfc/stdafx.h delete mode 100644 samples/minifram/.cvsignore delete mode 100644 samples/minifram/Makefile.am delete mode 100644 samples/minifram/bitmaps/copy.bmp delete mode 100644 samples/minifram/bitmaps/copy.xpm delete mode 100644 samples/minifram/bitmaps/cut.bmp delete mode 100644 samples/minifram/bitmaps/cut.xpm delete mode 100644 samples/minifram/bitmaps/help.bmp delete mode 100644 samples/minifram/bitmaps/help.xpm delete mode 100644 samples/minifram/bitmaps/new.bmp delete mode 100644 samples/minifram/bitmaps/new.xpm delete mode 100644 samples/minifram/bitmaps/open.bmp delete mode 100644 samples/minifram/bitmaps/open.xpm delete mode 100644 samples/minifram/bitmaps/page.bmp delete mode 100644 samples/minifram/bitmaps/paste.bmp delete mode 100644 samples/minifram/bitmaps/preview.bmp delete mode 100644 samples/minifram/bitmaps/preview.xpm delete mode 100644 samples/minifram/bitmaps/print.bmp delete mode 100644 samples/minifram/bitmaps/print.xpm delete mode 100644 samples/minifram/bitmaps/save.bmp delete mode 100644 samples/minifram/bitmaps/save.xpm delete mode 100644 samples/minifram/makefile.b32 delete mode 100644 samples/minifram/makefile.bcc delete mode 100644 samples/minifram/makefile.dos delete mode 100644 samples/minifram/makefile.g95 delete mode 100644 samples/minifram/makefile.unx delete mode 100644 samples/minifram/makefile.vc delete mode 100644 samples/minifram/makefile.wat delete mode 100644 samples/minifram/mondrian.ico delete mode 100644 samples/minifram/mondrian.xpm delete mode 100644 samples/minifram/test.cpp delete mode 100644 samples/minifram/test.def delete mode 100644 samples/minifram/test.h delete mode 100644 samples/minifram/test.rc delete mode 100644 samples/minimal/.cvsignore delete mode 100644 samples/minimal/Makefile.am delete mode 100644 samples/minimal/make_cw.mcp delete mode 100644 samples/minimal/makefile.b32 delete mode 100644 samples/minimal/makefile.bcc delete mode 100644 samples/minimal/makefile.dos delete mode 100644 samples/minimal/makefile.g95 delete mode 100644 samples/minimal/makefile.sc delete mode 100644 samples/minimal/makefile.sl delete mode 100644 samples/minimal/makefile.twn delete mode 100644 samples/minimal/makefile.unx delete mode 100644 samples/minimal/makefile.vc delete mode 100644 samples/minimal/makefile.wat delete mode 100644 samples/minimal/minimal.cpp delete mode 100644 samples/minimal/minimal.def delete mode 100644 samples/minimal/minimal.rc delete mode 100644 samples/minimal/mondrian.ico delete mode 100644 samples/minimal/mondrian.xpm delete mode 100644 samples/nativdlg/Makefile.am delete mode 100644 samples/nativdlg/dialog1.rc delete mode 100644 samples/nativdlg/makefile.b32 delete mode 100644 samples/nativdlg/makefile.bcc delete mode 100644 samples/nativdlg/makefile.dos delete mode 100644 samples/nativdlg/makefile.g95 delete mode 100644 samples/nativdlg/makefile.sc delete mode 100644 samples/nativdlg/makefile.unx delete mode 100644 samples/nativdlg/makefile.vc delete mode 100644 samples/nativdlg/makefile.vms delete mode 100644 samples/nativdlg/makefile.wat delete mode 100644 samples/nativdlg/nativdlg.cpp delete mode 100644 samples/nativdlg/nativdlg.def delete mode 100644 samples/nativdlg/nativdlg.h delete mode 100644 samples/nativdlg/nativdlg.rc delete mode 100644 samples/nativdlg/resource.h delete mode 100644 samples/notebook/.cvsignore delete mode 100644 samples/notebook/Makefile.am delete mode 100644 samples/notebook/makefile.b32 delete mode 100644 samples/notebook/makefile.bcc delete mode 100644 samples/notebook/makefile.dos delete mode 100644 samples/notebook/makefile.g95 delete mode 100644 samples/notebook/makefile.unx delete mode 100644 samples/notebook/makefile.vc delete mode 100644 samples/notebook/makefile.wat delete mode 100644 samples/notebook/mondrian.ico delete mode 100644 samples/notebook/test.cpp delete mode 100644 samples/notebook/test.def delete mode 100644 samples/notebook/test.h delete mode 100644 samples/notebook/test.rc delete mode 100644 samples/oleauto/Makefile.am delete mode 100644 samples/oleauto/makefile.b32 delete mode 100644 samples/oleauto/makefile.g95 delete mode 100644 samples/oleauto/makefile.vc delete mode 100644 samples/oleauto/makefile.wat delete mode 100644 samples/oleauto/mondrian.ico delete mode 100644 samples/oleauto/mondrian.xpm delete mode 100644 samples/oleauto/oleauto.cpp delete mode 100644 samples/oleauto/oleauto.def delete mode 100644 samples/oleauto/oleauto.rc delete mode 100644 samples/ownerdrw/Makefile.am delete mode 100644 samples/ownerdrw/bell.bmp delete mode 100644 samples/ownerdrw/makefile.b32 delete mode 100644 samples/ownerdrw/makefile.bcc delete mode 100644 samples/ownerdrw/makefile.dos delete mode 100644 samples/ownerdrw/makefile.g95 delete mode 100644 samples/ownerdrw/makefile.vc delete mode 100644 samples/ownerdrw/makefile.wat delete mode 100644 samples/ownerdrw/mondrian.ico delete mode 100644 samples/ownerdrw/nosound.bmp delete mode 100644 samples/ownerdrw/ownerdrw.cpp delete mode 100644 samples/ownerdrw/ownerdrw.def delete mode 100644 samples/ownerdrw/ownerdrw.rc delete mode 100644 samples/ownerdrw/sound.bmp delete mode 100644 samples/png/.cvsignore delete mode 100644 samples/png/Makefile.am delete mode 100644 samples/png/julian.png delete mode 100644 samples/png/makefile.b32 delete mode 100644 samples/png/makefile.bcc delete mode 100644 samples/png/makefile.g95 delete mode 100644 samples/png/makefile.vc delete mode 100644 samples/png/makefile.wat delete mode 100644 samples/png/paint.png delete mode 100644 samples/png/paint16.png delete mode 100644 samples/png/pngdemo.cpp delete mode 100644 samples/png/pngdemo.h delete mode 100644 samples/png/pngdemo.rc delete mode 100644 samples/printing/.cvsignore delete mode 100644 samples/printing/Makefile.am delete mode 100644 samples/printing/fload.xbm delete mode 100644 samples/printing/folder.xpm delete mode 100644 samples/printing/makefile.b32 delete mode 100644 samples/printing/makefile.bcc delete mode 100644 samples/printing/makefile.dos delete mode 100644 samples/printing/makefile.g95 delete mode 100644 samples/printing/makefile.unx delete mode 100644 samples/printing/makefile.vc delete mode 100644 samples/printing/makefile.wat delete mode 100644 samples/printing/mondrian.ico delete mode 100644 samples/printing/mondrian.xpm delete mode 100644 samples/printing/printing.cpp delete mode 100644 samples/printing/printing.def delete mode 100644 samples/printing/printing.h delete mode 100644 samples/printing/printing.rc delete mode 100644 samples/printing/test.dsp delete mode 100644 samples/printing/test.dsw delete mode 100644 samples/proplist/.cvsignore delete mode 100644 samples/proplist/Makefile.am delete mode 100644 samples/proplist/cross.bmp delete mode 100644 samples/proplist/makefile.b32 delete mode 100644 samples/proplist/makefile.bcc delete mode 100644 samples/proplist/makefile.dos delete mode 100644 samples/proplist/makefile.g95 delete mode 100644 samples/proplist/makefile.unx delete mode 100644 samples/proplist/makefile.vc delete mode 100644 samples/proplist/makefile.wat delete mode 100644 samples/proplist/test.cpp delete mode 100644 samples/proplist/test.def delete mode 100644 samples/proplist/test.h delete mode 100644 samples/proplist/test.rc delete mode 100644 samples/proplist/tick.bmp delete mode 100644 samples/regtest/Makefile.am delete mode 100644 samples/regtest/key1.ico delete mode 100644 samples/regtest/key2.ico delete mode 100644 samples/regtest/key3.ico delete mode 100644 samples/regtest/makefile.b32 delete mode 100644 samples/regtest/makefile.g95 delete mode 100644 samples/regtest/makefile.vc delete mode 100644 samples/regtest/makefile.wat delete mode 100644 samples/regtest/registry.ico delete mode 100644 samples/regtest/regtest.cpp delete mode 100644 samples/regtest/regtest.rc delete mode 100644 samples/regtest/value1.ico delete mode 100644 samples/regtest/value2.ico delete mode 100644 samples/resource/.cvsignore delete mode 100644 samples/resource/Makefile.am delete mode 100644 samples/resource/dialog1.h delete mode 100644 samples/resource/dialog1.wxr delete mode 100644 samples/resource/makefile.b32 delete mode 100644 samples/resource/makefile.bcc delete mode 100644 samples/resource/makefile.dos delete mode 100644 samples/resource/makefile.g95 delete mode 100644 samples/resource/makefile.sc delete mode 100644 samples/resource/makefile.unx delete mode 100644 samples/resource/makefile.vc delete mode 100644 samples/resource/makefile.vms delete mode 100644 samples/resource/makefile.wat delete mode 100644 samples/resource/menu1.wxr delete mode 100644 samples/resource/resource.cpp delete mode 100644 samples/resource/resource.def delete mode 100644 samples/resource/resource.h delete mode 100644 samples/resource/resource.rc delete mode 100644 samples/richedit/Makefile.am delete mode 100644 samples/richedit/Micon.xpm delete mode 100644 samples/richedit/Mpch.h delete mode 100644 samples/richedit/README delete mode 100644 samples/richedit/TODO delete mode 100644 samples/richedit/kbList.cpp delete mode 100644 samples/richedit/kbList.h delete mode 100644 samples/richedit/makefile.vc delete mode 100644 samples/richedit/wxLayout.cpp delete mode 100644 samples/richedit/wxLayout.h delete mode 100644 samples/richedit/wxLayout.rc delete mode 100644 samples/richedit/wxllist.cpp delete mode 100644 samples/richedit/wxllist.h delete mode 100644 samples/richedit/wxlparser.cpp delete mode 100644 samples/richedit/wxlparser.h delete mode 100644 samples/richedit/wxlwindow.cpp delete mode 100644 samples/richedit/wxlwindow.h delete mode 100644 samples/sashtest/.cvsignore delete mode 100644 samples/sashtest/Makefile.am delete mode 100644 samples/sashtest/makefile.b32 delete mode 100644 samples/sashtest/makefile.bcc delete mode 100644 samples/sashtest/makefile.g95 delete mode 100644 samples/sashtest/makefile.unx delete mode 100644 samples/sashtest/makefile.vc delete mode 100644 samples/sashtest/makefile.wat delete mode 100644 samples/sashtest/sashtest.cpp delete mode 100644 samples/sashtest/sashtest.def delete mode 100644 samples/sashtest/sashtest.h delete mode 100644 samples/sashtest/sashtest.ico delete mode 100644 samples/sashtest/sashtest.rc delete mode 100644 samples/scroll/.cvsignore delete mode 100644 samples/scroll/Makefile.am delete mode 100644 samples/scroll/makefile.b32 delete mode 100644 samples/scroll/makefile.bcc delete mode 100644 samples/scroll/makefile.dos delete mode 100644 samples/scroll/makefile.g95 delete mode 100644 samples/scroll/makefile.twn delete mode 100644 samples/scroll/makefile.unx delete mode 100644 samples/scroll/makefile.vc delete mode 100644 samples/scroll/makefile.wat delete mode 100644 samples/scroll/scroll.cpp delete mode 100644 samples/scroll/scroll.def delete mode 100644 samples/scroll/scroll.rc delete mode 100644 samples/splitter/.cvsignore delete mode 100644 samples/splitter/Makefile.am delete mode 100644 samples/splitter/makefile.b32 delete mode 100644 samples/splitter/makefile.bcc delete mode 100644 samples/splitter/makefile.dos delete mode 100644 samples/splitter/makefile.g95 delete mode 100644 samples/splitter/makefile.unx delete mode 100644 samples/splitter/makefile.vc delete mode 100644 samples/splitter/makefile.wat delete mode 100644 samples/splitter/mondrian.ico delete mode 100644 samples/splitter/test.cpp delete mode 100644 samples/splitter/test.def delete mode 100644 samples/splitter/test.rc delete mode 100644 samples/tab/.cvsignore delete mode 100644 samples/tab/Makefile.am delete mode 100644 samples/tab/makefile.b32 delete mode 100644 samples/tab/makefile.bcc delete mode 100644 samples/tab/makefile.dos delete mode 100644 samples/tab/makefile.g95 delete mode 100644 samples/tab/makefile.unx delete mode 100644 samples/tab/makefile.vc delete mode 100644 samples/tab/makefile.wat delete mode 100644 samples/tab/mondrian.ico delete mode 100644 samples/tab/test.cpp delete mode 100644 samples/tab/test.def delete mode 100644 samples/tab/test.h delete mode 100644 samples/tab/test.rc delete mode 100644 samples/taskbar/Makefile.am delete mode 100644 samples/taskbar/makefile.b32 delete mode 100644 samples/taskbar/makefile.dos delete mode 100644 samples/taskbar/makefile.g95 delete mode 100644 samples/taskbar/makefile.vc delete mode 100644 samples/taskbar/makefile.wat delete mode 100644 samples/taskbar/mondrian.ico delete mode 100644 samples/taskbar/tbtest.cpp delete mode 100644 samples/taskbar/tbtest.def delete mode 100644 samples/taskbar/tbtest.h delete mode 100644 samples/taskbar/tbtest.rc delete mode 100644 samples/text/.cvsignore delete mode 100644 samples/text/Makefile.am delete mode 100644 samples/text/controls.cpp delete mode 100644 samples/text/controls.def delete mode 100644 samples/text/controls.rc delete mode 100644 samples/text/makefile.b32 delete mode 100644 samples/text/makefile.bcc delete mode 100644 samples/text/makefile.dos delete mode 100644 samples/text/makefile.g95 delete mode 100644 samples/text/makefile.unx delete mode 100644 samples/text/makefile.vc delete mode 100644 samples/text/makefile.wat delete mode 100644 samples/text/mondrian.ico delete mode 100644 samples/text/mondrian.xpm delete mode 100644 samples/thread/.cvsignore delete mode 100644 samples/thread/Makefile.am delete mode 100644 samples/thread/makefile.b32 delete mode 100644 samples/thread/makefile.dos delete mode 100644 samples/thread/makefile.g95 delete mode 100644 samples/thread/makefile.unx delete mode 100644 samples/thread/makefile.vc delete mode 100644 samples/thread/makefile.wat delete mode 100644 samples/thread/test.cpp delete mode 100644 samples/thread/test.def delete mode 100644 samples/thread/test.rc delete mode 100644 samples/toolbar/.cvsignore delete mode 100644 samples/toolbar/Makefile.am delete mode 100644 samples/toolbar/bitmaps/copy.bmp delete mode 100644 samples/toolbar/bitmaps/copy.xpm delete mode 100644 samples/toolbar/bitmaps/cut.bmp delete mode 100644 samples/toolbar/bitmaps/cut.xpm delete mode 100644 samples/toolbar/bitmaps/help.bmp delete mode 100644 samples/toolbar/bitmaps/help.xpm delete mode 100644 samples/toolbar/bitmaps/new.bmp delete mode 100644 samples/toolbar/bitmaps/new.xpm delete mode 100644 samples/toolbar/bitmaps/open.bmp delete mode 100644 samples/toolbar/bitmaps/open.xpm delete mode 100644 samples/toolbar/bitmaps/page.bmp delete mode 100644 samples/toolbar/bitmaps/paste.bmp delete mode 100644 samples/toolbar/bitmaps/preview.bmp delete mode 100644 samples/toolbar/bitmaps/preview.xpm delete mode 100644 samples/toolbar/bitmaps/print.bmp delete mode 100644 samples/toolbar/bitmaps/print.xpm delete mode 100644 samples/toolbar/bitmaps/save.bmp delete mode 100644 samples/toolbar/bitmaps/save.xpm delete mode 100644 samples/toolbar/makefile.b32 delete mode 100644 samples/toolbar/makefile.bcc delete mode 100644 samples/toolbar/makefile.dos delete mode 100644 samples/toolbar/makefile.g95 delete mode 100644 samples/toolbar/makefile.unx delete mode 100644 samples/toolbar/makefile.vc delete mode 100644 samples/toolbar/makefile.wat delete mode 100644 samples/toolbar/mondrian.ico delete mode 100644 samples/toolbar/mondrian.xpm delete mode 100644 samples/toolbar/test.cpp delete mode 100644 samples/toolbar/test.def delete mode 100644 samples/toolbar/test.h delete mode 100644 samples/toolbar/test.rc delete mode 100644 samples/treectrl/.cvsignore delete mode 100644 samples/treectrl/Makefile.am delete mode 100644 samples/treectrl/bitmaps/file1.bmp delete mode 100644 samples/treectrl/bitmaps/file1.ico delete mode 100644 samples/treectrl/bitmaps/folder1.bmp delete mode 100644 samples/treectrl/bitmaps/folder1.ico delete mode 100644 samples/treectrl/icon1.xpm delete mode 100644 samples/treectrl/icon2.xpm delete mode 100644 samples/treectrl/makefile.b32 delete mode 100644 samples/treectrl/makefile.bcc delete mode 100644 samples/treectrl/makefile.dos delete mode 100644 samples/treectrl/makefile.g95 delete mode 100644 samples/treectrl/makefile.unx delete mode 100644 samples/treectrl/makefile.vc delete mode 100644 samples/treectrl/makefile.wat delete mode 100644 samples/treectrl/mondrian.ico delete mode 100644 samples/treectrl/mondrian.xpm delete mode 100644 samples/treectrl/treetest.cpp delete mode 100644 samples/treectrl/treetest.def delete mode 100644 samples/treectrl/treetest.h delete mode 100644 samples/treectrl/treetest.rc delete mode 100644 samples/typetest/.cvsignore delete mode 100644 samples/typetest/Makefile.am delete mode 100644 samples/typetest/makefile.b32 delete mode 100644 samples/typetest/makefile.bcc delete mode 100644 samples/typetest/makefile.dos delete mode 100644 samples/typetest/makefile.g95 delete mode 100644 samples/typetest/makefile.unx delete mode 100644 samples/typetest/makefile.vc delete mode 100644 samples/typetest/makefile.wat delete mode 100644 samples/typetest/mondrian.ico delete mode 100644 samples/typetest/mondrian.xpm delete mode 100644 samples/typetest/typetest.cpp delete mode 100644 samples/typetest/typetest.def delete mode 100644 samples/typetest/typetest.h delete mode 100644 samples/typetest/typetest.rc delete mode 100644 samples/validate/.cvsignore delete mode 100644 samples/validate/Makefile.am delete mode 100644 samples/validate/makefile.b32 delete mode 100644 samples/validate/makefile.bcc delete mode 100644 samples/validate/makefile.dos delete mode 100644 samples/validate/makefile.g95 delete mode 100644 samples/validate/makefile.unx delete mode 100644 samples/validate/makefile.vc delete mode 100644 samples/validate/makefile.wat delete mode 100644 samples/validate/mondrian.ico delete mode 100644 samples/validate/mondrian.xpm delete mode 100644 samples/validate/validate.cpp delete mode 100644 samples/validate/validate.def delete mode 100644 samples/validate/validate.h delete mode 100644 samples/validate/validate.rc delete mode 100644 samples/wxpoem/.cvsignore delete mode 100644 samples/wxpoem/Makefile.am delete mode 100644 samples/wxpoem/corner1.ico delete mode 100644 samples/wxpoem/corner1.xpm delete mode 100644 samples/wxpoem/corner2.ico delete mode 100644 samples/wxpoem/corner2.xpm delete mode 100644 samples/wxpoem/corner3.ico delete mode 100644 samples/wxpoem/corner3.xpm delete mode 100644 samples/wxpoem/corner4.ico delete mode 100644 samples/wxpoem/corner4.xpm delete mode 100644 samples/wxpoem/makefile.b32 delete mode 100644 samples/wxpoem/makefile.bcc delete mode 100644 samples/wxpoem/makefile.dos delete mode 100644 samples/wxpoem/makefile.g95 delete mode 100644 samples/wxpoem/makefile.unx delete mode 100644 samples/wxpoem/makefile.vc delete mode 100644 samples/wxpoem/makefile.wat delete mode 100644 samples/wxpoem/wxpoem.cpp delete mode 100644 samples/wxpoem/wxpoem.dat delete mode 100644 samples/wxpoem/wxpoem.def delete mode 100644 samples/wxpoem/wxpoem.h delete mode 100644 samples/wxpoem/wxpoem.ico delete mode 100644 samples/wxpoem/wxpoem.rc delete mode 100644 samples/wxpoem/wxpoem.txt delete mode 100644 samples/wxpoem/wxpoem.xpm delete mode 100644 samples/wxsocket/.cvsignore delete mode 100644 samples/wxsocket/Makefile.am delete mode 100644 samples/wxsocket/client.cpp delete mode 100644 samples/wxsocket/client.def delete mode 100644 samples/wxsocket/client.g95 delete mode 100644 samples/wxsocket/client.rc delete mode 100644 samples/wxsocket/client.vc delete mode 100644 samples/wxsocket/client.wat delete mode 100644 samples/wxsocket/connect.ico delete mode 100644 samples/wxsocket/makefile.b32 delete mode 100644 samples/wxsocket/makefile.dos delete mode 100644 samples/wxsocket/makefile.g95 delete mode 100644 samples/wxsocket/makefile.vc delete mode 100644 samples/wxsocket/mondrian.ico delete mode 100644 samples/wxsocket/mondrian.xpm delete mode 100644 samples/wxsocket/server.cpp delete mode 100644 samples/wxsocket/server.def delete mode 100644 samples/wxsocket/server.g95 delete mode 100644 samples/wxsocket/server.rc delete mode 100644 samples/wxsocket/server.vc delete mode 100644 samples/wxsocket/server.wat delete mode 100644 src/.cvsignore delete mode 100644 src/Makefile.am delete mode 100644 src/common/.cvsignore delete mode 100644 src/common/cmndata.cpp delete mode 100644 src/common/config.cpp delete mode 100644 src/common/cwlex_yy.c delete mode 100644 src/common/cwy_tab.c delete mode 100644 src/common/date.cpp delete mode 100644 src/common/datstrm.cpp delete mode 100644 src/common/db.cpp delete mode 100644 src/common/dbtable.cpp delete mode 100644 src/common/dcbase.cpp delete mode 100644 src/common/docmdi.cpp delete mode 100644 src/common/docview.cpp delete mode 100644 src/common/doslex.c delete mode 100644 src/common/dosyacc.c delete mode 100644 src/common/dynarray.cpp delete mode 100644 src/common/dynlib.cpp delete mode 100644 src/common/event.cpp delete mode 100644 src/common/extended.c delete mode 100644 src/common/file.cpp delete mode 100644 src/common/fileconf.cpp delete mode 100644 src/common/filefn.cpp delete mode 100644 src/common/framecmn.cpp delete mode 100644 src/common/ftp.cpp delete mode 100644 src/common/gdicmn.cpp delete mode 100644 src/common/glob.inc delete mode 100644 src/common/hash.cpp delete mode 100644 src/common/helpbase.cpp delete mode 100644 src/common/http.cpp delete mode 100644 src/common/image.cpp delete mode 100644 src/common/imaggif.cpp delete mode 100644 src/common/imagjpeg.cpp delete mode 100644 src/common/imagpng.cpp delete mode 100644 src/common/intl.cpp delete mode 100644 src/common/ipcbase.cpp delete mode 100644 src/common/layout.cpp delete mode 100644 src/common/lexer.l delete mode 100644 src/common/list.cpp delete mode 100644 src/common/log.cpp delete mode 100644 src/common/longlong.cpp delete mode 100644 src/common/matrix.cpp delete mode 100644 src/common/memory.cpp delete mode 100644 src/common/mimetype.cpp delete mode 100644 src/common/module.cpp delete mode 100644 src/common/mstream.cpp delete mode 100644 src/common/object.cpp delete mode 100644 src/common/objstrm.cpp delete mode 100644 src/common/odbc.cpp delete mode 100644 src/common/paper.cpp delete mode 100644 src/common/parser.y delete mode 100644 src/common/prntbase.cpp delete mode 100644 src/common/process.cpp delete mode 100644 src/common/protocol.cpp delete mode 100644 src/common/resourc2.cpp delete mode 100644 src/common/resource.cpp delete mode 100644 src/common/sckaddr.cpp delete mode 100644 src/common/sckfile.cpp delete mode 100644 src/common/sckint.cpp delete mode 100644 src/common/sckipc.cpp delete mode 100644 src/common/sckstrm.cpp delete mode 100644 src/common/serbase.cpp delete mode 100644 src/common/socket.cpp delete mode 100644 src/common/stream.cpp delete mode 100644 src/common/string.cpp delete mode 100644 src/common/tbarbase.cpp delete mode 100644 src/common/tbarsmpl.cpp delete mode 100644 src/common/textfile.cpp delete mode 100644 src/common/time.cpp delete mode 100644 src/common/timercmn.cpp delete mode 100644 src/common/tokenzr.cpp delete mode 100644 src/common/url.cpp delete mode 100644 src/common/utilscmn.cpp delete mode 100644 src/common/valgen.cpp delete mode 100644 src/common/validate.cpp delete mode 100644 src/common/valtext.cpp delete mode 100644 src/common/variant.cpp delete mode 100644 src/common/wfstream.cpp delete mode 100644 src/common/wincmn.cpp delete mode 100644 src/common/wxchar.cpp delete mode 100644 src/common/wxexpr.cpp delete mode 100644 src/common/zstream.cpp delete mode 100644 src/cygnus.bat delete mode 100644 src/generic/caret.cpp delete mode 100644 src/generic/choicdgg.cpp delete mode 100644 src/generic/colrdlgg.cpp delete mode 100644 src/generic/dcpsg.cpp delete mode 100644 src/generic/dirdlgg.cpp delete mode 100644 src/generic/fontdlgg.cpp delete mode 100644 src/generic/gridg.cpp delete mode 100644 src/generic/helpext.cpp delete mode 100644 src/generic/helphtml.cpp delete mode 100644 src/generic/helpxlp.cpp delete mode 100644 src/generic/imaglist.cpp delete mode 100644 src/generic/laywin.cpp delete mode 100644 src/generic/listctrl.cpp delete mode 100644 src/generic/msgdlgg.cpp delete mode 100644 src/generic/notebook.cpp delete mode 100644 src/generic/panelg.cpp delete mode 100644 src/generic/printps.cpp delete mode 100644 src/generic/prntdlgg.cpp delete mode 100644 src/generic/progdlgg.cpp delete mode 100644 src/generic/prop.cpp delete mode 100644 src/generic/propform.cpp delete mode 100644 src/generic/proplist.cpp delete mode 100644 src/generic/sashwin.cpp delete mode 100644 src/generic/scrolwin.cpp delete mode 100644 src/generic/splitter.cpp delete mode 100644 src/generic/statusbr.cpp delete mode 100644 src/generic/tabg.cpp delete mode 100644 src/generic/textdlgg.cpp delete mode 100644 src/generic/treectrl.cpp delete mode 100644 src/gtk/.cvsignore delete mode 100644 src/gtk/Makefile.am delete mode 100644 src/gtk/accel.cpp delete mode 100644 src/gtk/app.cpp delete mode 100644 src/gtk/bdiag.xbm delete mode 100644 src/gtk/bitmap.cpp delete mode 100644 src/gtk/bmpbuttn.cpp delete mode 100644 src/gtk/brush.cpp delete mode 100644 src/gtk/button.cpp delete mode 100644 src/gtk/cdiag.xbm delete mode 100644 src/gtk/checkbox.cpp delete mode 100644 src/gtk/checklst.cpp delete mode 100644 src/gtk/choice.cpp delete mode 100644 src/gtk/clipbrd.cpp delete mode 100644 src/gtk/colour.cpp delete mode 100644 src/gtk/combobox.cpp delete mode 100644 src/gtk/control.cpp delete mode 100644 src/gtk/cross.xbm delete mode 100644 src/gtk/cursor.cpp delete mode 100644 src/gtk/data.cpp delete mode 100644 src/gtk/dataobj.cpp delete mode 100644 src/gtk/dc.cpp delete mode 100644 src/gtk/dcclient.cpp delete mode 100644 src/gtk/dcmemory.cpp delete mode 100644 src/gtk/dcscreen.cpp delete mode 100644 src/gtk/dialog.cpp delete mode 100644 src/gtk/dnd.cpp delete mode 100644 src/gtk/fdiag.xbm delete mode 100644 src/gtk/filedlg.cpp delete mode 100644 src/gtk/font.cpp delete mode 100644 src/gtk/frame.cpp delete mode 100644 src/gtk/gauge.cpp delete mode 100644 src/gtk/gdiobj.cpp delete mode 100644 src/gtk/horiz.xbm delete mode 100644 src/gtk/icon.cpp delete mode 100644 src/gtk/joystick.cpp delete mode 100644 src/gtk/listbox.cpp delete mode 100644 src/gtk/main.cpp delete mode 100644 src/gtk/makefile.unx delete mode 100644 src/gtk/mdi.cpp delete mode 100644 src/gtk/menu.cpp delete mode 100644 src/gtk/minifram.cpp delete mode 100644 src/gtk/notebook.cpp delete mode 100644 src/gtk/palette.cpp delete mode 100644 src/gtk/pen.cpp delete mode 100644 src/gtk/radiobox.cpp delete mode 100644 src/gtk/radiobut.cpp delete mode 100644 src/gtk/region.cpp delete mode 100644 src/gtk/scrolbar.cpp delete mode 100644 src/gtk/settings.cpp delete mode 100644 src/gtk/slider.cpp delete mode 100644 src/gtk/spinbutt.cpp delete mode 100644 src/gtk/statbmp.cpp delete mode 100644 src/gtk/statbox.cpp delete mode 100644 src/gtk/statline.cpp delete mode 100644 src/gtk/stattext.cpp delete mode 100644 src/gtk/tbargtk.cpp delete mode 100644 src/gtk/textctrl.cpp delete mode 100644 src/gtk/threadno.cpp delete mode 100644 src/gtk/threadsgi.cpp delete mode 100644 src/gtk/timer.cpp delete mode 100644 src/gtk/tooltip.cpp delete mode 100644 src/gtk/treegtk.cpp delete mode 100644 src/gtk/utilsgtk.cpp delete mode 100644 src/gtk/utilsres.cpp delete mode 100644 src/gtk/verti.xbm delete mode 100644 src/gtk/wave.cpp delete mode 100644 src/gtk/win_gtk.c delete mode 100644 src/gtk/window.cpp delete mode 100644 src/gtk1/.cvsignore delete mode 100644 src/gtk1/Makefile.am delete mode 100644 src/gtk1/accel.cpp delete mode 100644 src/gtk1/app.cpp delete mode 100644 src/gtk1/bdiag.xbm delete mode 100644 src/gtk1/bitmap.cpp delete mode 100644 src/gtk1/bmpbuttn.cpp delete mode 100644 src/gtk1/brush.cpp delete mode 100644 src/gtk1/button.cpp delete mode 100644 src/gtk1/cdiag.xbm delete mode 100644 src/gtk1/checkbox.cpp delete mode 100644 src/gtk1/checklst.cpp delete mode 100644 src/gtk1/choice.cpp delete mode 100644 src/gtk1/clipbrd.cpp delete mode 100644 src/gtk1/colour.cpp delete mode 100644 src/gtk1/combobox.cpp delete mode 100644 src/gtk1/control.cpp delete mode 100644 src/gtk1/cross.xbm delete mode 100644 src/gtk1/cursor.cpp delete mode 100644 src/gtk1/data.cpp delete mode 100644 src/gtk1/dataobj.cpp delete mode 100644 src/gtk1/dc.cpp delete mode 100644 src/gtk1/dcclient.cpp delete mode 100644 src/gtk1/dcmemory.cpp delete mode 100644 src/gtk1/dcscreen.cpp delete mode 100644 src/gtk1/dialog.cpp delete mode 100644 src/gtk1/dnd.cpp delete mode 100644 src/gtk1/fdiag.xbm delete mode 100644 src/gtk1/filedlg.cpp delete mode 100644 src/gtk1/font.cpp delete mode 100644 src/gtk1/frame.cpp delete mode 100644 src/gtk1/gauge.cpp delete mode 100644 src/gtk1/gdiobj.cpp delete mode 100644 src/gtk1/horiz.xbm delete mode 100644 src/gtk1/icon.cpp delete mode 100644 src/gtk1/joystick.cpp delete mode 100644 src/gtk1/listbox.cpp delete mode 100644 src/gtk1/main.cpp delete mode 100644 src/gtk1/makefile.unx delete mode 100644 src/gtk1/mdi.cpp delete mode 100644 src/gtk1/menu.cpp delete mode 100644 src/gtk1/minifram.cpp delete mode 100644 src/gtk1/notebook.cpp delete mode 100644 src/gtk1/palette.cpp delete mode 100644 src/gtk1/pen.cpp delete mode 100644 src/gtk1/radiobox.cpp delete mode 100644 src/gtk1/radiobut.cpp delete mode 100644 src/gtk1/region.cpp delete mode 100644 src/gtk1/scrolbar.cpp delete mode 100644 src/gtk1/settings.cpp delete mode 100644 src/gtk1/slider.cpp delete mode 100644 src/gtk1/spinbutt.cpp delete mode 100644 src/gtk1/statbmp.cpp delete mode 100644 src/gtk1/statbox.cpp delete mode 100644 src/gtk1/statline.cpp delete mode 100644 src/gtk1/stattext.cpp delete mode 100644 src/gtk1/tbargtk.cpp delete mode 100644 src/gtk1/textctrl.cpp delete mode 100644 src/gtk1/threadno.cpp delete mode 100644 src/gtk1/threadsgi.cpp delete mode 100644 src/gtk1/timer.cpp delete mode 100644 src/gtk1/tooltip.cpp delete mode 100644 src/gtk1/treegtk.cpp delete mode 100644 src/gtk1/utilsgtk.cpp delete mode 100644 src/gtk1/utilsres.cpp delete mode 100644 src/gtk1/verti.xbm delete mode 100644 src/gtk1/wave.cpp delete mode 100644 src/gtk1/win_gtk.c delete mode 100644 src/gtk1/window.cpp delete mode 100644 src/iodbc/AUTHORS delete mode 100644 src/iodbc/COPYING delete mode 100644 src/iodbc/Changes.log delete mode 100644 src/iodbc/IAFA-PACKAGE delete mode 100644 src/iodbc/INSTALL delete mode 100644 src/iodbc/NEWS delete mode 100644 src/iodbc/README delete mode 100755 src/iodbc/autoconfig delete mode 100644 src/iodbc/catalog.c delete mode 100644 src/iodbc/config.h delete mode 100644 src/iodbc/connect.c delete mode 100644 src/iodbc/dlf.c delete mode 100644 src/iodbc/dlf.h delete mode 100644 src/iodbc/dlproc.c delete mode 100644 src/iodbc/dlproc.h delete mode 100644 src/iodbc/execute.c delete mode 100644 src/iodbc/fetch.c delete mode 100644 src/iodbc/hdbc.c delete mode 100644 src/iodbc/hdbc.h delete mode 100644 src/iodbc/henv.c delete mode 100644 src/iodbc/henv.ci delete mode 100644 src/iodbc/henv.h delete mode 100644 src/iodbc/herr.c delete mode 100644 src/iodbc/herr.ci delete mode 100644 src/iodbc/herr.h delete mode 100644 src/iodbc/hstmt.c delete mode 100644 src/iodbc/hstmt.h delete mode 100644 src/iodbc/info.c delete mode 100644 src/iodbc/iodbc.h delete mode 100644 src/iodbc/isql.h delete mode 100644 src/iodbc/isqlext.h delete mode 100644 src/iodbc/itrace.c delete mode 100644 src/iodbc/itrace.h delete mode 100644 src/iodbc/misc.c delete mode 100644 src/iodbc/prepare.c delete mode 100644 src/iodbc/result.c delete mode 100644 src/iodbc/shrsub.exp delete mode 100644 src/jpeg/README delete mode 100644 src/jpeg/ansi2knr.1 delete mode 100644 src/jpeg/ansi2knr.c delete mode 100644 src/jpeg/change.log delete mode 100644 src/jpeg/jcapimin.c delete mode 100644 src/jpeg/jcapistd.c delete mode 100644 src/jpeg/jccoefct.c delete mode 100644 src/jpeg/jccolor.c delete mode 100644 src/jpeg/jcdctmgr.c delete mode 100644 src/jpeg/jchuff.c delete mode 100644 src/jpeg/jchuff.h delete mode 100644 src/jpeg/jcinit.c delete mode 100644 src/jpeg/jcmainct.c delete mode 100644 src/jpeg/jcmarker.c delete mode 100644 src/jpeg/jcmaster.c delete mode 100644 src/jpeg/jcomapi.c delete mode 100644 src/jpeg/jconfig.h delete mode 100644 src/jpeg/jconfig.vc delete mode 100644 src/jpeg/jcparam.c delete mode 100644 src/jpeg/jcphuff.c delete mode 100644 src/jpeg/jcprepct.c delete mode 100644 src/jpeg/jcsample.c delete mode 100644 src/jpeg/jctrans.c delete mode 100644 src/jpeg/jdapimin.c delete mode 100644 src/jpeg/jdapistd.c delete mode 100644 src/jpeg/jdatadst.c delete mode 100644 src/jpeg/jdatasrc.c delete mode 100644 src/jpeg/jdcoefct.c delete mode 100644 src/jpeg/jdcolor.c delete mode 100644 src/jpeg/jdct.h delete mode 100644 src/jpeg/jddctmgr.c delete mode 100644 src/jpeg/jdhuff.c delete mode 100644 src/jpeg/jdhuff.h delete mode 100644 src/jpeg/jdinput.c delete mode 100644 src/jpeg/jdmainct.c delete mode 100644 src/jpeg/jdmarker.c delete mode 100644 src/jpeg/jdmaster.c delete mode 100644 src/jpeg/jdmerge.c delete mode 100644 src/jpeg/jdphuff.c delete mode 100644 src/jpeg/jdpostct.c delete mode 100644 src/jpeg/jdsample.c delete mode 100644 src/jpeg/jdtrans.c delete mode 100644 src/jpeg/jerror.c delete mode 100644 src/jpeg/jerror.h delete mode 100644 src/jpeg/jfdctflt.c delete mode 100644 src/jpeg/jfdctfst.c delete mode 100644 src/jpeg/jfdctint.c delete mode 100644 src/jpeg/jidctflt.c delete mode 100644 src/jpeg/jidctfst.c delete mode 100644 src/jpeg/jidctint.c delete mode 100644 src/jpeg/jidctred.c delete mode 100644 src/jpeg/jinclude.h delete mode 100644 src/jpeg/jmemansi.c delete mode 100644 src/jpeg/jmemdos.c delete mode 100644 src/jpeg/jmemdosa.asm delete mode 100644 src/jpeg/jmemmac.c delete mode 100644 src/jpeg/jmemmgr.c delete mode 100644 src/jpeg/jmemname.c delete mode 100644 src/jpeg/jmemnobs.c delete mode 100644 src/jpeg/jmemsys.h delete mode 100644 src/jpeg/jmorecfg.h delete mode 100644 src/jpeg/jpegint.h delete mode 100644 src/jpeg/jpeglib.h delete mode 100644 src/jpeg/jpegtran.1 delete mode 100644 src/jpeg/jpegtran.c delete mode 100644 src/jpeg/jquant1.c delete mode 100644 src/jpeg/jquant2.c delete mode 100644 src/jpeg/jutils.c delete mode 100644 src/jpeg/jversion.h delete mode 100644 src/jpeg/makefile.b32 delete mode 100644 src/jpeg/makefile.bcc delete mode 100644 src/jpeg/makefile.unx delete mode 100644 src/jpeg/makefile.vc delete mode 100644 src/mac/accel.cpp delete mode 100644 src/mac/app.cpp delete mode 100644 src/mac/apprsrc.r delete mode 100644 src/mac/bitmap.cpp delete mode 100644 src/mac/bmpbuttn.cpp delete mode 100644 src/mac/brush.cpp delete mode 100644 src/mac/button.cpp delete mode 100644 src/mac/carbon/accel.cpp delete mode 100644 src/mac/carbon/app.cpp delete mode 100644 src/mac/carbon/apprsrc.r delete mode 100644 src/mac/carbon/bitmap.cpp delete mode 100644 src/mac/carbon/bmpbuttn.cpp delete mode 100644 src/mac/carbon/brush.cpp delete mode 100644 src/mac/carbon/button.cpp delete mode 100644 src/mac/carbon/checkbox.cpp delete mode 100644 src/mac/carbon/checklst.cpp delete mode 100644 src/mac/carbon/choice.cpp delete mode 100644 src/mac/carbon/clipbrd.cpp delete mode 100644 src/mac/carbon/colordlg.cpp delete mode 100644 src/mac/carbon/colour.cpp delete mode 100644 src/mac/carbon/combobox.cpp delete mode 100644 src/mac/carbon/control.cpp delete mode 100644 src/mac/carbon/corersrc.r delete mode 100644 src/mac/carbon/cursor.cpp delete mode 100644 src/mac/carbon/data.cpp delete mode 100644 src/mac/carbon/dc.cpp delete mode 100644 src/mac/carbon/dcclient.cpp delete mode 100644 src/mac/carbon/dcmemory.cpp delete mode 100644 src/mac/carbon/dcscreen.cpp delete mode 100644 src/mac/carbon/dialog.cpp delete mode 100644 src/mac/carbon/dirdlg.cpp delete mode 100644 src/mac/carbon/dnd.cpp delete mode 100644 src/mac/carbon/filedlg.cpp delete mode 100644 src/mac/carbon/font.cpp delete mode 100644 src/mac/carbon/fontdlg.cpp delete mode 100644 src/mac/carbon/frame.cpp delete mode 100644 src/mac/carbon/gauge.cpp delete mode 100644 src/mac/carbon/gdiobj.cpp delete mode 100644 src/mac/carbon/helpxxxx.cpp delete mode 100644 src/mac/carbon/icon.cpp delete mode 100644 src/mac/carbon/imaglist.cpp delete mode 100644 src/mac/carbon/joystick.cpp delete mode 100644 src/mac/carbon/listbox.cpp delete mode 100644 src/mac/carbon/listctrl.cpp delete mode 100644 src/mac/carbon/main.cpp delete mode 100644 src/mac/carbon/makefile.nt delete mode 100644 src/mac/carbon/makefile.unx delete mode 100644 src/mac/carbon/mdi.cpp delete mode 100644 src/mac/carbon/menu.cpp delete mode 100644 src/mac/carbon/menuitem.cpp delete mode 100644 src/mac/carbon/metafile.cpp delete mode 100644 src/mac/carbon/minifram.cpp delete mode 100644 src/mac/carbon/msgdlg.cpp delete mode 100644 src/mac/carbon/notebook.cpp delete mode 100644 src/mac/carbon/palette.cpp delete mode 100644 src/mac/carbon/pen.cpp delete mode 100644 src/mac/carbon/print.cpp delete mode 100644 src/mac/carbon/printdlg.cpp delete mode 100644 src/mac/carbon/radiobox.cpp delete mode 100644 src/mac/carbon/radiobut.cpp delete mode 100644 src/mac/carbon/region.cpp delete mode 100644 src/mac/carbon/scrolbar.cpp delete mode 100644 src/mac/carbon/settings.cpp delete mode 100644 src/mac/carbon/slider.cpp delete mode 100644 src/mac/carbon/spinbutt.cpp delete mode 100644 src/mac/carbon/statbmp.cpp delete mode 100644 src/mac/carbon/statbox.cpp delete mode 100644 src/mac/carbon/stattext.cpp delete mode 100644 src/mac/carbon/statusbr.cpp delete mode 100644 src/mac/carbon/tabctrl.cpp delete mode 100644 src/mac/carbon/taskbar.cpp delete mode 100644 src/mac/carbon/textctrl.cpp delete mode 100644 src/mac/carbon/thread.cpp delete mode 100644 src/mac/carbon/timer.cpp delete mode 100644 src/mac/carbon/toolbar.cpp delete mode 100644 src/mac/carbon/treectrl.cpp delete mode 100644 src/mac/carbon/utils.cpp delete mode 100644 src/mac/carbon/utilsexc.cpp delete mode 100644 src/mac/carbon/wave.cpp delete mode 100644 src/mac/carbon/window.cpp delete mode 100644 src/mac/checkbox.cpp delete mode 100644 src/mac/checklst.cpp delete mode 100644 src/mac/choice.cpp delete mode 100644 src/mac/clipbrd.cpp delete mode 100644 src/mac/colordlg.cpp delete mode 100644 src/mac/colour.cpp delete mode 100644 src/mac/combobox.cpp delete mode 100644 src/mac/control.cpp delete mode 100644 src/mac/corersrc.r delete mode 100644 src/mac/cursor.cpp delete mode 100644 src/mac/data.cpp delete mode 100644 src/mac/dc.cpp delete mode 100644 src/mac/dcclient.cpp delete mode 100644 src/mac/dcmemory.cpp delete mode 100644 src/mac/dcscreen.cpp delete mode 100644 src/mac/dialog.cpp delete mode 100644 src/mac/dirdlg.cpp delete mode 100644 src/mac/dnd.cpp delete mode 100644 src/mac/filedlg.cpp delete mode 100644 src/mac/font.cpp delete mode 100644 src/mac/fontdlg.cpp delete mode 100644 src/mac/frame.cpp delete mode 100644 src/mac/gauge.cpp delete mode 100644 src/mac/gdiobj.cpp delete mode 100644 src/mac/helpxxxx.cpp delete mode 100644 src/mac/icon.cpp delete mode 100644 src/mac/imaglist.cpp delete mode 100644 src/mac/joystick.cpp delete mode 100644 src/mac/listbox.cpp delete mode 100644 src/mac/listctrl.cpp delete mode 100644 src/mac/macsock/sock_PPC.lib delete mode 100644 src/mac/main.cpp delete mode 100644 src/mac/makefile.nt delete mode 100644 src/mac/makefile.unx delete mode 100644 src/mac/mdi.cpp delete mode 100644 src/mac/menu.cpp delete mode 100644 src/mac/menuitem.cpp delete mode 100644 src/mac/metafile.cpp delete mode 100644 src/mac/minifram.cpp delete mode 100644 src/mac/morefile/Director.cpp delete mode 100644 src/mac/morefile/Director.h delete mode 100644 src/mac/morefile/FSpCompa.cpp delete mode 100644 src/mac/morefile/FSpCompa.h delete mode 100644 src/mac/morefile/FileCopy.cpp delete mode 100644 src/mac/morefile/FileCopy.h delete mode 100644 src/mac/morefile/FullPath.cpp delete mode 100644 src/mac/morefile/FullPath.h delete mode 100644 src/mac/morefile/IterateD.cpp delete mode 100644 src/mac/morefile/IterateD.h delete mode 100644 src/mac/morefile/MoreDesk.cpp delete mode 100644 src/mac/morefile/MoreDesk.h delete mode 100644 src/mac/morefile/MoreExtr.cpp delete mode 100644 src/mac/morefile/MoreExtr.h delete mode 100644 src/mac/morefile/MoreFile.cpp delete mode 100644 src/mac/morefile/MoreFile.h delete mode 100644 src/mac/morefile/Optim.h delete mode 100644 src/mac/morefile/OptimEnd.h delete mode 100644 src/mac/morefile/Search.cpp delete mode 100644 src/mac/morefile/Search.h delete mode 100644 src/mac/msgdlg.cpp delete mode 100644 src/mac/notebook.cpp delete mode 100644 src/mac/palette.cpp delete mode 100644 src/mac/pen.cpp delete mode 100644 src/mac/print.cpp delete mode 100644 src/mac/printdlg.cpp delete mode 100644 src/mac/radiobox.cpp delete mode 100644 src/mac/radiobut.cpp delete mode 100644 src/mac/region.cpp delete mode 100644 src/mac/scrolbar.cpp delete mode 100644 src/mac/settings.cpp delete mode 100644 src/mac/slider.cpp delete mode 100644 src/mac/spinbutt.cpp delete mode 100644 src/mac/statbmp.cpp delete mode 100644 src/mac/statbox.cpp delete mode 100644 src/mac/stattext.cpp delete mode 100644 src/mac/statusbr.cpp delete mode 100644 src/mac/tabctrl.cpp delete mode 100644 src/mac/taskbar.cpp delete mode 100644 src/mac/textctrl.cpp delete mode 100644 src/mac/thread.cpp delete mode 100644 src/mac/timer.cpp delete mode 100644 src/mac/toolbar.cpp delete mode 100644 src/mac/treectrl.cpp delete mode 100644 src/mac/utils.cpp delete mode 100644 src/mac/utilsexc.cpp delete mode 100644 src/mac/wave.cpp delete mode 100644 src/mac/window.cpp delete mode 100644 src/make.env delete mode 100644 src/make_cw.mcp delete mode 100644 src/makeb32.env delete mode 100644 src/makebcc.env delete mode 100644 src/makeenvs/linux.env delete mode 100644 src/makeenvs/sgi.env delete mode 100644 src/makeenvs/solaris.env delete mode 100644 src/makefile.bcc delete mode 100644 src/makefile.dos delete mode 100644 src/makefile.vc delete mode 100644 src/makeg95.env delete mode 100644 src/makelib.b32 delete mode 100644 src/makelib.bcc delete mode 100644 src/makelib.env delete mode 100644 src/makelib.g95 delete mode 100644 src/makelib.vc delete mode 100644 src/makelib.wat delete mode 100644 src/makemsc.env delete mode 100644 src/makeprog.b32 delete mode 100644 src/makeprog.bcc delete mode 100644 src/makeprog.env delete mode 100644 src/makeprog.g95 delete mode 100644 src/makeprog.msc delete mode 100644 src/makeprog.sl delete mode 100644 src/makeprog.vc delete mode 100644 src/makeprog.wat delete mode 100644 src/makesc.env delete mode 100644 src/makesl.env delete mode 100644 src/maketwin.env delete mode 100644 src/makevc.env delete mode 100644 src/makewat.env delete mode 100644 src/mingegcs.bat delete mode 100644 src/mingw32.bat delete mode 100644 src/motif/Makefile.am delete mode 100644 src/motif/accel.cpp delete mode 100644 src/motif/app.cpp delete mode 100644 src/motif/bdiag.xbm delete mode 100644 src/motif/bitmap.cpp delete mode 100644 src/motif/bmpbuttn.cpp delete mode 100644 src/motif/brush.cpp delete mode 100644 src/motif/button.cpp delete mode 100644 src/motif/cdiag.xbm delete mode 100644 src/motif/checkbox.cpp delete mode 100644 src/motif/checklst.cpp delete mode 100644 src/motif/choice.cpp delete mode 100644 src/motif/clipbrd.cpp delete mode 100644 src/motif/colordlg.cpp delete mode 100644 src/motif/colour.cpp delete mode 100644 src/motif/combobox.cpp delete mode 100644 src/motif/control.cpp delete mode 100644 src/motif/cross.xbm delete mode 100644 src/motif/cursor.cpp delete mode 100644 src/motif/data.cpp delete mode 100644 src/motif/dataobj.cpp delete mode 100644 src/motif/dc.cpp delete mode 100644 src/motif/dcclient.cpp delete mode 100644 src/motif/dcmemory.cpp delete mode 100644 src/motif/dcscreen.cpp delete mode 100644 src/motif/dialog.cpp delete mode 100644 src/motif/dirdlg.cpp delete mode 100644 src/motif/dnd.cpp delete mode 100644 src/motif/fdiag.xbm delete mode 100644 src/motif/filedlg.cpp delete mode 100644 src/motif/font.cpp delete mode 100644 src/motif/fontdlg.cpp delete mode 100644 src/motif/frame.cpp delete mode 100644 src/motif/gauge.cpp delete mode 100644 src/motif/gdiobj.cpp delete mode 100644 src/motif/helpxxxx.cpp delete mode 100644 src/motif/horiz.xbm delete mode 100644 src/motif/icon.cpp delete mode 100644 src/motif/joystick.cpp delete mode 100644 src/motif/listbox.cpp delete mode 100644 src/motif/main.cpp delete mode 100644 src/motif/makefile.unx delete mode 100644 src/motif/mdi.cpp delete mode 100644 src/motif/mdi/COPYRIGHT delete mode 100644 src/motif/mdi/Imakefile delete mode 100644 src/motif/mdi/README delete mode 100644 src/motif/mdi/config/C++.rules delete mode 100644 src/motif/mdi/config/MDI.tmpl delete mode 100644 src/motif/mdi/doc/canvas.html delete mode 100644 src/motif/mdi/doc/mdi.html delete mode 100644 src/motif/mdi/doc/mwindow.html delete mode 100644 src/motif/mdi/doc/pics/classes.gif delete mode 100644 src/motif/mdi/doc/pics/mdi.gif delete mode 100644 src/motif/mdi/doc/pics/winclass.gif delete mode 100644 src/motif/mdi/lib/Imakefile delete mode 100644 src/motif/mdi/lib/XsComponent.C delete mode 100644 src/motif/mdi/lib/XsComponent.h delete mode 100644 src/motif/mdi/lib/XsMDICanvas.C delete mode 100644 src/motif/mdi/lib/XsMDICanvas.h delete mode 100644 src/motif/mdi/lib/XsMDIWindow.C delete mode 100644 src/motif/mdi/lib/XsMDIWindow.h delete mode 100644 src/motif/mdi/lib/XsMotifWindow.C delete mode 100644 src/motif/mdi/lib/XsMotifWindow.h delete mode 100644 src/motif/mdi/lib/XsMoveOutline.C delete mode 100644 src/motif/mdi/lib/XsMoveOutline.h delete mode 100644 src/motif/mdi/lib/XsOutline.C delete mode 100644 src/motif/mdi/lib/XsOutline.h delete mode 100644 src/motif/mdi/lib/XsResizeOutline.C delete mode 100644 src/motif/mdi/lib/XsResizeOutline.h delete mode 100644 src/motif/mdi/lib/xs_motif_icon.xbm delete mode 100644 src/motif/mdi/test/Imakefile delete mode 100644 src/motif/mdi/test/MDItest.C delete mode 100644 src/motif/menu.cpp delete mode 100644 src/motif/menuitem.cpp delete mode 100644 src/motif/metafile.cpp delete mode 100644 src/motif/minifram.cpp delete mode 100644 src/motif/msgdlg.cpp delete mode 100644 src/motif/palette.cpp delete mode 100644 src/motif/pen.cpp delete mode 100644 src/motif/printdlg.cpp delete mode 100644 src/motif/radiobox.cpp delete mode 100644 src/motif/radiobut.cpp delete mode 100644 src/motif/region.cpp delete mode 100644 src/motif/scrolbar.cpp delete mode 100644 src/motif/settings.cpp delete mode 100644 src/motif/slider.cpp delete mode 100644 src/motif/spinbutt.cpp delete mode 100644 src/motif/statbmp.cpp delete mode 100644 src/motif/statbox.cpp delete mode 100644 src/motif/stattext.cpp delete mode 100644 src/motif/tabctrl.cpp delete mode 100644 src/motif/taskbar.cpp delete mode 100644 src/motif/textctrl.cpp delete mode 100644 src/motif/timer.cpp delete mode 100644 src/motif/toolbar.cpp delete mode 100644 src/motif/utils.cpp delete mode 100644 src/motif/verti.xbm delete mode 100644 src/motif/wave.cpp delete mode 100644 src/motif/window.cpp delete mode 100644 src/motif/wxwin.xbm delete mode 100644 src/motif/xmcombo/combobox.doc delete mode 100644 src/motif/xmcombo/combobox.man delete mode 100644 src/motif/xmcombo/combop.h delete mode 100644 src/motif/xmcombo/copying.txt delete mode 100644 src/motif/xmcombo/demo.c delete mode 100644 src/motif/xmcombo/xmcombo.c delete mode 100644 src/motif/xmcombo/xmcombo.h delete mode 100644 src/msw/Makefile.am delete mode 100644 src/msw/accel.cpp delete mode 100644 src/msw/app.cpp delete mode 100644 src/msw/bitmap.cpp delete mode 100644 src/msw/bmpbuttn.cpp delete mode 100644 src/msw/brush.cpp delete mode 100644 src/msw/button.cpp delete mode 100644 src/msw/caret.cpp delete mode 100644 src/msw/checkbox.cpp delete mode 100644 src/msw/checklst.cpp delete mode 100644 src/msw/choice.cpp delete mode 100644 src/msw/clipbrd.cpp delete mode 100644 src/msw/colordlg.cpp delete mode 100644 src/msw/colour.cpp delete mode 100644 src/msw/combobox.cpp delete mode 100644 src/msw/control.cpp delete mode 100644 src/msw/ctl3d/borland/makefile.b32 delete mode 100644 src/msw/ctl3d/borland/makefile.bcc delete mode 100644 src/msw/ctl3d/ctl3d.dll delete mode 100644 src/msw/ctl3d/ctl3d32.dll delete mode 100644 src/msw/ctl3d/ctl3dv2.dll delete mode 100644 src/msw/ctl3d/msvc/ctl3d.h delete mode 100644 src/msw/ctl3d/msvc/ctl3d.lib delete mode 100644 src/msw/ctl3d/msvc/ctl3dv2.lib delete mode 100644 src/msw/ctl3d/readme.txt delete mode 100644 src/msw/ctl3d/wat32/import32.zip delete mode 100644 src/msw/ctl3d/wat386/ctl3d.h delete mode 100644 src/msw/ctl3d/wat386/ctl3d32.c delete mode 100644 src/msw/ctl3d/wat386/ctl3d32.lnk delete mode 100644 src/msw/ctl3d/wat386/ctl3d32.obj delete mode 100644 src/msw/ctl3d/wat386/ctl3d32.txt delete mode 100644 src/msw/ctl3d/wat386/makefile.wat delete mode 100644 src/msw/curico.cpp delete mode 100644 src/msw/cursor.cpp delete mode 100644 src/msw/data.cpp delete mode 100644 src/msw/dc.cpp delete mode 100644 src/msw/dcclient.cpp delete mode 100644 src/msw/dcmemory.cpp delete mode 100644 src/msw/dcprint.cpp delete mode 100644 src/msw/dcscreen.cpp delete mode 100644 src/msw/dde.cpp delete mode 100644 src/msw/dialog.cpp delete mode 100644 src/msw/dib.cpp delete mode 100644 src/msw/dibutils.cpp delete mode 100644 src/msw/dirdlg.cpp delete mode 100644 src/msw/dragimag.cpp delete mode 100644 src/msw/dummy.cpp delete mode 100644 src/msw/dummydll.cpp delete mode 100644 src/msw/filedlg.cpp delete mode 100644 src/msw/font.cpp delete mode 100644 src/msw/fontdlg.cpp delete mode 100644 src/msw/frame.cpp delete mode 100644 src/msw/gauge95.cpp delete mode 100644 src/msw/gaugemsw.cpp delete mode 100644 src/msw/gdiobj.cpp delete mode 100644 src/msw/helpwin.cpp delete mode 100644 src/msw/icon.cpp delete mode 100644 src/msw/imaglist.cpp delete mode 100644 src/msw/iniconf.cpp delete mode 100644 src/msw/joystick.cpp delete mode 100644 src/msw/listbox.cpp delete mode 100644 src/msw/listctrl.cpp delete mode 100644 src/msw/main.cpp delete mode 100644 src/msw/makefile.b32 delete mode 100644 src/msw/makefile.bcc delete mode 100644 src/msw/makefile.dos delete mode 100644 src/msw/makefile.g95 delete mode 100644 src/msw/makefile.sc delete mode 100644 src/msw/makefile.sl delete mode 100644 src/msw/makefile.twn delete mode 100644 src/msw/makefile.vc delete mode 100644 src/msw/makefile.wat delete mode 100644 src/msw/mdi.cpp delete mode 100644 src/msw/menu.cpp delete mode 100644 src/msw/menuitem.cpp delete mode 100644 src/msw/metafile.cpp delete mode 100644 src/msw/minifram.cpp delete mode 100644 src/msw/msgdlg.cpp delete mode 100644 src/msw/nativdlg.cpp delete mode 100644 src/msw/notebook.cpp delete mode 100644 src/msw/ole/automtn.cpp delete mode 100644 src/msw/ole/dataobj.cpp delete mode 100644 src/msw/ole/dropsrc.cpp delete mode 100644 src/msw/ole/droptgt.cpp delete mode 100644 src/msw/ole/oleutils.cpp delete mode 100644 src/msw/ole/uuid.cpp delete mode 100644 src/msw/ownerdrw.cpp delete mode 100644 src/msw/palette.cpp delete mode 100644 src/msw/pen.cpp delete mode 100644 src/msw/penwin.cpp delete mode 100644 src/msw/pnghand.cpp delete mode 100644 src/msw/printdlg.cpp delete mode 100644 src/msw/printwin.cpp delete mode 100644 src/msw/radiobox.cpp delete mode 100644 src/msw/radiobut.cpp delete mode 100644 src/msw/regconf.cpp delete mode 100644 src/msw/region.cpp delete mode 100644 src/msw/registry.cpp delete mode 100644 src/msw/salford.lnk delete mode 100644 src/msw/scrolbar.cpp delete mode 100644 src/msw/settings.cpp delete mode 100644 src/msw/slider95.cpp delete mode 100644 src/msw/slidrmsw.cpp delete mode 100644 src/msw/spinbutt.cpp delete mode 100644 src/msw/statbmp.cpp delete mode 100644 src/msw/statbox.cpp delete mode 100644 src/msw/statbr95.cpp delete mode 100644 src/msw/stattext.cpp delete mode 100644 src/msw/tabctrl.cpp delete mode 100644 src/msw/taskbar.cpp delete mode 100644 src/msw/tbar95.cpp delete mode 100644 src/msw/tbarmsw.cpp delete mode 100644 src/msw/textctrl.cpp delete mode 100644 src/msw/thread.cpp delete mode 100644 src/msw/timer.cpp delete mode 100644 src/msw/tooltip.cpp delete mode 100644 src/msw/treectrl.cpp delete mode 100644 src/msw/utils.cpp delete mode 100644 src/msw/utilsexc.cpp delete mode 100644 src/msw/wave.cpp delete mode 100644 src/msw/window.cpp delete mode 100644 src/msw/winestub.c delete mode 100644 src/msw/wx.def delete mode 100644 src/msw/wxb32.def delete mode 100644 src/msw/xpmhand.cpp delete mode 100644 src/ntwxwin.mak delete mode 100644 src/png/ANNOUNCE delete mode 100644 src/png/CHANGES delete mode 100644 src/png/INSTALL delete mode 100644 src/png/README delete mode 100644 src/png/TODO delete mode 100644 src/png/Y2KINFO delete mode 100644 src/png/ansi2knr.1 delete mode 100644 src/png/ansi2knr.c delete mode 100644 src/png/example.c delete mode 100644 src/png/libpng.3 delete mode 100644 src/png/libpng.txt delete mode 100644 src/png/libpngpf.3 delete mode 100644 src/png/makefile.b32 delete mode 100644 src/png/makefile.bcc delete mode 100644 src/png/makefile.dos delete mode 100644 src/png/makefile.nt delete mode 100644 src/png/makefile.unx delete mode 100644 src/png/makefile.vc delete mode 100644 src/png/makefile.wat delete mode 100644 src/png/png.5 delete mode 100644 src/png/png.c delete mode 100644 src/png/png.h delete mode 100644 src/png/pngconf.h delete mode 100644 src/png/pngerror.c delete mode 100644 src/png/pngget.c delete mode 100644 src/png/pngmem.c delete mode 100644 src/png/pngpread.c delete mode 100644 src/png/pngread.c delete mode 100644 src/png/pngrio.c delete mode 100644 src/png/pngrtran.c delete mode 100644 src/png/pngrutil.c delete mode 100644 src/png/pngset.c delete mode 100644 src/png/pngtest.c delete mode 100644 src/png/pngtrans.c delete mode 100644 src/png/pngwio.c delete mode 100644 src/png/pngwrite.c delete mode 100644 src/png/pngwtran.c delete mode 100644 src/png/pngwutil.c delete mode 100644 src/png/scripts/SCOPTIONS.ppc delete mode 100644 src/png/scripts/build.bat delete mode 100644 src/png/scripts/descrip.mms delete mode 100644 src/png/scripts/makefile.aco delete mode 100644 src/png/scripts/makefile.ama delete mode 100644 src/png/scripts/makefile.atr delete mode 100644 src/png/scripts/makefile.bor delete mode 100644 src/png/scripts/makefile.dec delete mode 100644 src/png/scripts/makefile.dj2 delete mode 100644 src/png/scripts/makefile.knr delete mode 100644 src/png/scripts/makefile.lnx delete mode 100644 src/png/scripts/makefile.mip delete mode 100644 src/png/scripts/makefile.msc delete mode 100644 src/png/scripts/makefile.os2 delete mode 100644 src/png/scripts/makefile.s2x delete mode 100644 src/png/scripts/makefile.sgi delete mode 100644 src/png/scripts/makefile.std delete mode 100644 src/png/scripts/makefile.sun delete mode 100644 src/png/scripts/makefile.tc3 delete mode 100644 src/png/scripts/makefile.wat delete mode 100644 src/png/scripts/makevms.com delete mode 100644 src/png/scripts/pngos2.def delete mode 100644 src/png/scripts/smakefile.ppc delete mode 100644 src/qt/app.cpp delete mode 100644 src/qt/bdiag.xbm delete mode 100644 src/qt/bitmap.cpp delete mode 100644 src/qt/bmpbuttn.cpp delete mode 100644 src/qt/brush.cpp delete mode 100644 src/qt/button.cpp delete mode 100644 src/qt/cdiag.xbm delete mode 100644 src/qt/checkbox.cpp delete mode 100644 src/qt/choice.cpp delete mode 100644 src/qt/colour.cpp delete mode 100644 src/qt/combobox.cpp delete mode 100644 src/qt/control.cpp delete mode 100644 src/qt/cross.xbm delete mode 100644 src/qt/cursor.cpp delete mode 100644 src/qt/data.cpp delete mode 100644 src/qt/dc.cpp delete mode 100644 src/qt/dcclient.cpp delete mode 100644 src/qt/dcmemory.cpp delete mode 100644 src/qt/dcscreen.cpp delete mode 100644 src/qt/dialog.cpp delete mode 100644 src/qt/dnd.cpp delete mode 100644 src/qt/fdiag.xbm delete mode 100644 src/qt/filedlg.cpp delete mode 100644 src/qt/font.cpp delete mode 100644 src/qt/frame.cpp delete mode 100644 src/qt/gauge.cpp delete mode 100644 src/qt/gdiobj.cpp delete mode 100644 src/qt/horiz.xbm delete mode 100644 src/qt/icon.cpp delete mode 100644 src/qt/joystick.cpp delete mode 100644 src/qt/listbox.cpp delete mode 100644 src/qt/mdi.cpp delete mode 100644 src/qt/menu.cpp delete mode 100644 src/qt/notebook.cpp delete mode 100644 src/qt/palette.cpp delete mode 100644 src/qt/pen.cpp delete mode 100644 src/qt/radiobox.cpp delete mode 100644 src/qt/radiobut.cpp delete mode 100644 src/qt/region.cpp delete mode 100644 src/qt/scrolbar.cpp delete mode 100644 src/qt/settings.cpp delete mode 100644 src/qt/slider.cpp delete mode 100644 src/qt/statbmp.cpp delete mode 100644 src/qt/statbox.cpp delete mode 100644 src/qt/stattext.cpp delete mode 100644 src/qt/tbargtk.cpp delete mode 100644 src/qt/textctrl.cpp delete mode 100644 src/qt/threadgui.inc delete mode 100644 src/qt/threadno.cpp delete mode 100644 src/qt/threadpsx.cpp delete mode 100644 src/qt/threadsgi.cpp delete mode 100644 src/qt/timer.cpp delete mode 100644 src/qt/utilsgtk.cpp delete mode 100644 src/qt/utilsres.cpp delete mode 100644 src/qt/verti.xbm delete mode 100644 src/qt/window.cpp delete mode 100644 src/regex/COPYRIGHT delete mode 100644 src/regex/Makefile delete mode 100644 src/regex/README delete mode 100644 src/regex/WHATSNEW delete mode 100644 src/regex/cclass.h delete mode 100644 src/regex/cname.h delete mode 100644 src/regex/mkh delete mode 100644 src/regex/regerror.c delete mode 100644 src/regex/regex.3 delete mode 100644 src/regex/regex.7 delete mode 100644 src/regex/regfree.c delete mode 100644 src/regex/regfronts.c delete mode 100644 src/regex/tests delete mode 100644 src/stubs/accel.cpp delete mode 100644 src/stubs/app.cpp delete mode 100644 src/stubs/bitmap.cpp delete mode 100644 src/stubs/bmpbuttn.cpp delete mode 100644 src/stubs/brush.cpp delete mode 100644 src/stubs/button.cpp delete mode 100644 src/stubs/checkbox.cpp delete mode 100644 src/stubs/checklst.cpp delete mode 100644 src/stubs/choice.cpp delete mode 100644 src/stubs/clipbrd.cpp delete mode 100644 src/stubs/colordlg.cpp delete mode 100644 src/stubs/colour.cpp delete mode 100644 src/stubs/combobox.cpp delete mode 100644 src/stubs/control.cpp delete mode 100644 src/stubs/cursor.cpp delete mode 100644 src/stubs/data.cpp delete mode 100644 src/stubs/dc.cpp delete mode 100644 src/stubs/dcclient.cpp delete mode 100644 src/stubs/dcmemory.cpp delete mode 100644 src/stubs/dcscreen.cpp delete mode 100644 src/stubs/dialog.cpp delete mode 100644 src/stubs/dirdlg.cpp delete mode 100644 src/stubs/dnd.cpp delete mode 100644 src/stubs/filedlg.cpp delete mode 100644 src/stubs/font.cpp delete mode 100644 src/stubs/fontdlg.cpp delete mode 100644 src/stubs/frame.cpp delete mode 100644 src/stubs/gauge.cpp delete mode 100644 src/stubs/gdiobj.cpp delete mode 100644 src/stubs/helpxxxx.cpp delete mode 100644 src/stubs/icon.cpp delete mode 100644 src/stubs/imaglist.cpp delete mode 100644 src/stubs/joystick.cpp delete mode 100644 src/stubs/listbox.cpp delete mode 100644 src/stubs/listctrl.cpp delete mode 100644 src/stubs/main.cpp delete mode 100644 src/stubs/makefile.unx delete mode 100644 src/stubs/makefile.vc delete mode 100644 src/stubs/mdi.cpp delete mode 100644 src/stubs/menu.cpp delete mode 100644 src/stubs/menuitem.cpp delete mode 100644 src/stubs/metafile.cpp delete mode 100644 src/stubs/minifram.cpp delete mode 100644 src/stubs/msgdlg.cpp delete mode 100644 src/stubs/notebook.cpp delete mode 100644 src/stubs/palette.cpp delete mode 100644 src/stubs/pen.cpp delete mode 100644 src/stubs/print.cpp delete mode 100644 src/stubs/printdlg.cpp delete mode 100644 src/stubs/radiobox.cpp delete mode 100644 src/stubs/radiobut.cpp delete mode 100644 src/stubs/region.cpp delete mode 100644 src/stubs/scrolbar.cpp delete mode 100644 src/stubs/settings.cpp delete mode 100644 src/stubs/slider.cpp delete mode 100644 src/stubs/spinbutt.cpp delete mode 100644 src/stubs/statbmp.cpp delete mode 100644 src/stubs/statbox.cpp delete mode 100644 src/stubs/stattext.cpp delete mode 100644 src/stubs/statusbr.cpp delete mode 100644 src/stubs/tabctrl.cpp delete mode 100644 src/stubs/taskbar.cpp delete mode 100644 src/stubs/textctrl.cpp delete mode 100644 src/stubs/thread.cpp delete mode 100644 src/stubs/timer.cpp delete mode 100644 src/stubs/toolbar.cpp delete mode 100644 src/stubs/treectrl.cpp delete mode 100644 src/stubs/utils.cpp delete mode 100644 src/stubs/utilsexc.cpp delete mode 100644 src/stubs/wave.cpp delete mode 100644 src/stubs/window.cpp delete mode 100644 src/unix/threadpsx.cpp delete mode 100644 src/unix/utilsunx.cpp delete mode 100644 src/xpm/changes delete mode 100644 src/xpm/copyrigh.t delete mode 100644 src/xpm/crbuffri.c delete mode 100644 src/xpm/crbuffrp.c delete mode 100644 src/xpm/crdatfri.c delete mode 100644 src/xpm/crdatfrp.c delete mode 100644 src/xpm/create.c delete mode 100644 src/xpm/crifrbuf.c delete mode 100644 src/xpm/crifrdat.c delete mode 100644 src/xpm/crpfrbuf.c delete mode 100644 src/xpm/crpfrdat.c delete mode 100644 src/xpm/data.c delete mode 100644 src/xpm/dataxpm.c delete mode 100644 src/xpm/files delete mode 100644 src/xpm/hashtab.c delete mode 100644 src/xpm/makefile.vc delete mode 100644 src/xpm/makefile.wat delete mode 100644 src/xpm/misc.c delete mode 100644 src/xpm/parse.c delete mode 100644 src/xpm/rdftodat.c delete mode 100644 src/xpm/rdftoi.c delete mode 100644 src/xpm/rdftop.c delete mode 100644 src/xpm/readme delete mode 100644 src/xpm/readme.msw delete mode 100644 src/xpm/rgb.c delete mode 100644 src/xpm/rgbtab.h delete mode 100644 src/xpm/scan.c delete mode 100644 src/xpm/simx.c delete mode 100644 src/xpm/simx.h delete mode 100644 src/xpm/wrffrdat.c delete mode 100644 src/xpm/wrffri.c delete mode 100644 src/xpm/wrffrp.c delete mode 100644 src/xpm/xpm34.h delete mode 100644 src/xpm/xpm34p.h delete mode 100644 src/zlib/ChangeLog delete mode 100644 src/zlib/INDEX delete mode 100644 src/zlib/Make_vms.com delete mode 100644 src/zlib/Makefile.in2 delete mode 100644 src/zlib/Makefile.riscos delete mode 100644 src/zlib/README delete mode 100644 src/zlib/adler32.c delete mode 100644 src/zlib/algorithm.txt delete mode 100644 src/zlib/compress.c delete mode 100644 src/zlib/configure delete mode 100644 src/zlib/crc32.c delete mode 100644 src/zlib/deflate.c delete mode 100644 src/zlib/deflate.h delete mode 100644 src/zlib/descrip.mms delete mode 100644 src/zlib/example.c delete mode 100644 src/zlib/gzio.c delete mode 100644 src/zlib/infblock.c delete mode 100644 src/zlib/infblock.h delete mode 100644 src/zlib/infcodes.c delete mode 100644 src/zlib/infcodes.h delete mode 100644 src/zlib/inffast.c delete mode 100644 src/zlib/inffast.h delete mode 100644 src/zlib/inffixed.h delete mode 100644 src/zlib/inflate.c delete mode 100644 src/zlib/inftrees.c delete mode 100644 src/zlib/inftrees.h delete mode 100644 src/zlib/infutil.c delete mode 100644 src/zlib/infutil.h delete mode 100644 src/zlib/makefile.b32 delete mode 100644 src/zlib/makefile.bcc delete mode 100644 src/zlib/makefile.dos delete mode 100644 src/zlib/makefile.unx delete mode 100644 src/zlib/makefile.vc delete mode 100644 src/zlib/makefile.wat delete mode 100644 src/zlib/maketree.c delete mode 100644 src/zlib/minigzip.c delete mode 100644 src/zlib/trees.c delete mode 100644 src/zlib/trees.h delete mode 100644 src/zlib/uncompr.c delete mode 100644 src/zlib/zconf.h delete mode 100644 src/zlib/zlib.3 delete mode 100644 src/zlib/zlib.h delete mode 100644 src/zlib/zutil.c delete mode 100644 src/zlib/zutil.h delete mode 100644 tests/lltest.cpp delete mode 100644 user/wxConvert/.cvsignore delete mode 100644 user/wxConvert/wxConvert.cpp delete mode 100644 user/wxConvert/wxConvert.h delete mode 100644 user/wxFile/.cvsignore delete mode 100644 user/wxFile/FMJobs.cpp delete mode 100644 user/wxFile/FMJobs.h delete mode 100644 user/wxFile/commanderview.xpm delete mode 100644 user/wxFile/delete.xpm delete mode 100644 user/wxFile/dirctrl.cpp delete mode 100644 user/wxFile/dirctrl.h delete mode 100644 user/wxFile/exit.xpm delete mode 100644 user/wxFile/filectrl.cpp delete mode 100644 user/wxFile/filectrl.h delete mode 100644 user/wxFile/fileopen.xpm delete mode 100644 user/wxFile/find.xpm delete mode 100644 user/wxFile/folder.xpm delete mode 100644 user/wxFile/help.xpm delete mode 100644 user/wxFile/home.xpm delete mode 100644 user/wxFile/iconview.xpm delete mode 100644 user/wxFile/list.xpm delete mode 100644 user/wxFile/listview.xpm delete mode 100644 user/wxFile/prev.xpm delete mode 100644 user/wxFile/reportview.xpm delete mode 100644 user/wxFile/save.xpm delete mode 100644 user/wxFile/search.xpm delete mode 100644 user/wxFile/singleview.xpm delete mode 100644 user/wxFile/trash.xpm delete mode 100644 user/wxFile/treeview.xpm delete mode 100644 user/wxFile/txt.xpm delete mode 100644 user/wxFile/wxFile.cpp delete mode 100644 user/wxFile/wxFile.h delete mode 100644 user/wxTest/.cvsignore delete mode 100644 user/wxTest/folder.xpm delete mode 100644 user/wxTest/horse.png delete mode 100644 user/wxTest/list.xpm delete mode 100644 user/wxTest/test.xpm delete mode 100644 user/wxTest/wxTest.cpp delete mode 100644 user/wxTest/wxTest.h delete mode 100644 utils/HelpGen/include/cjparser.h delete mode 100644 utils/HelpGen/include/docripper.h delete mode 100644 utils/HelpGen/include/ifcontext.h delete mode 100644 utils/HelpGen/include/markup.h delete mode 100644 utils/HelpGen/include/scriptbinder.h delete mode 100644 utils/HelpGen/include/sourcepainter.h delete mode 100644 utils/HelpGen/include/srcparser.h delete mode 100644 utils/HelpGen/include/wxstlac.h delete mode 100644 utils/HelpGen/include/wxstllst.h delete mode 100644 utils/HelpGen/include/wxstlvec.h delete mode 100644 utils/HelpGen/src/HelpGen.cpp delete mode 100644 utils/HelpGen/src/HelpGen.rc delete mode 100644 utils/HelpGen/src/cjparser.cpp delete mode 100644 utils/HelpGen/src/docripper.cpp delete mode 100644 utils/HelpGen/src/ifcontext.cpp delete mode 100644 utils/HelpGen/src/makefile.nt delete mode 100644 utils/HelpGen/src/markup.cpp delete mode 100644 utils/HelpGen/src/ripper_main.cpp delete mode 100644 utils/HelpGen/src/scriptbinder.cpp delete mode 100644 utils/HelpGen/src/sourcepainter.cpp delete mode 100644 utils/HelpGen/src/srcparser.cpp delete mode 100644 utils/HelpGen/src/wx_extra_imps.cpp delete mode 100644 utils/HelpHTML/README delete mode 100755 utils/HelpHTML/html2wxhelp delete mode 100755 utils/HelpHTML/striphelpids delete mode 100644 utils/dialoged/docs/alignb.bmp delete mode 100644 utils/dialoged/docs/alignb.eps delete mode 100644 utils/dialoged/docs/alignb.gif delete mode 100644 utils/dialoged/docs/alignl.bmp delete mode 100644 utils/dialoged/docs/alignl.eps delete mode 100644 utils/dialoged/docs/alignl.gif delete mode 100644 utils/dialoged/docs/alignr.bmp delete mode 100644 utils/dialoged/docs/alignr.eps delete mode 100644 utils/dialoged/docs/alignr.gif delete mode 100644 utils/dialoged/docs/alignt.bmp delete mode 100644 utils/dialoged/docs/alignt.eps delete mode 100644 utils/dialoged/docs/alignt.gif delete mode 100644 utils/dialoged/docs/arrow.bmp delete mode 100644 utils/dialoged/docs/arrow.eps delete mode 100644 utils/dialoged/docs/arrow.gif delete mode 100644 utils/dialoged/docs/back.gif delete mode 100644 utils/dialoged/docs/bmpbuttn.bmp delete mode 100644 utils/dialoged/docs/bmpbuttn.eps delete mode 100644 utils/dialoged/docs/bmpbuttn.gif delete mode 100644 utils/dialoged/docs/body.tex delete mode 100644 utils/dialoged/docs/books.bmp delete mode 100644 utils/dialoged/docs/books.gif delete mode 100644 utils/dialoged/docs/bugs.tex delete mode 100644 utils/dialoged/docs/bullet.bmp delete mode 100644 utils/dialoged/docs/button.bmp delete mode 100644 utils/dialoged/docs/button.eps delete mode 100644 utils/dialoged/docs/button.gif delete mode 100644 utils/dialoged/docs/changes.tex delete mode 100644 utils/dialoged/docs/check.bmp delete mode 100644 utils/dialoged/docs/check.eps delete mode 100644 utils/dialoged/docs/check.gif delete mode 100644 utils/dialoged/docs/choice.bmp delete mode 100644 utils/dialoged/docs/choice.eps delete mode 100644 utils/dialoged/docs/choice.gif delete mode 100644 utils/dialoged/docs/classes.tex delete mode 100644 utils/dialoged/docs/contents.gif delete mode 100644 utils/dialoged/docs/copysize.bmp delete mode 100644 utils/dialoged/docs/copysize.eps delete mode 100644 utils/dialoged/docs/copysize.gif delete mode 100644 utils/dialoged/docs/dialog.bmp delete mode 100644 utils/dialoged/docs/dialog.eps delete mode 100644 utils/dialoged/docs/dialog.gif delete mode 100644 utils/dialoged/docs/dialoged.hpj delete mode 100644 utils/dialoged/docs/dialoged.tex delete mode 100644 utils/dialoged/docs/forward.gif delete mode 100644 utils/dialoged/docs/gauge.bmp delete mode 100644 utils/dialoged/docs/gauge.eps delete mode 100644 utils/dialoged/docs/gauge.gif delete mode 100644 utils/dialoged/docs/group.bmp delete mode 100644 utils/dialoged/docs/group.eps delete mode 100644 utils/dialoged/docs/group.gif delete mode 100644 utils/dialoged/docs/help.bmp delete mode 100644 utils/dialoged/docs/help.eps delete mode 100644 utils/dialoged/docs/help.gif delete mode 100644 utils/dialoged/docs/horiz.bmp delete mode 100644 utils/dialoged/docs/horiz.eps delete mode 100644 utils/dialoged/docs/horiz.gif delete mode 100644 utils/dialoged/docs/listbox.bmp delete mode 100644 utils/dialoged/docs/listbox.eps delete mode 100644 utils/dialoged/docs/listbox.gif delete mode 100644 utils/dialoged/docs/load.bmp delete mode 100644 utils/dialoged/docs/load.eps delete mode 100644 utils/dialoged/docs/load.gif delete mode 100644 utils/dialoged/docs/message.bmp delete mode 100644 utils/dialoged/docs/message.eps delete mode 100644 utils/dialoged/docs/message.gif delete mode 100644 utils/dialoged/docs/mtext.bmp delete mode 100644 utils/dialoged/docs/mtext.eps delete mode 100644 utils/dialoged/docs/mtext.gif delete mode 100644 utils/dialoged/docs/new.bmp delete mode 100644 utils/dialoged/docs/new.eps delete mode 100644 utils/dialoged/docs/new.gif delete mode 100644 utils/dialoged/docs/notes.txt delete mode 100644 utils/dialoged/docs/open.bmp delete mode 100644 utils/dialoged/docs/open.eps delete mode 100644 utils/dialoged/docs/open.gif delete mode 100644 utils/dialoged/docs/picture.bmp delete mode 100644 utils/dialoged/docs/picture.eps delete mode 100644 utils/dialoged/docs/picture.gif delete mode 100644 utils/dialoged/docs/radio.bmp delete mode 100644 utils/dialoged/docs/radio.eps delete mode 100644 utils/dialoged/docs/radio.gif delete mode 100644 utils/dialoged/docs/readme.txt delete mode 100644 utils/dialoged/docs/save.bmp delete mode 100644 utils/dialoged/docs/save.eps delete mode 100644 utils/dialoged/docs/save.gif delete mode 100644 utils/dialoged/docs/scroll.bmp delete mode 100644 utils/dialoged/docs/scroll.eps delete mode 100644 utils/dialoged/docs/scroll.gif delete mode 100644 utils/dialoged/docs/slider.bmp delete mode 100644 utils/dialoged/docs/slider.eps delete mode 100644 utils/dialoged/docs/slider.gif delete mode 100644 utils/dialoged/docs/tech.tex delete mode 100644 utils/dialoged/docs/tex2rtf.ini delete mode 100644 utils/dialoged/docs/text.bmp delete mode 100644 utils/dialoged/docs/text.eps delete mode 100644 utils/dialoged/docs/text.gif delete mode 100644 utils/dialoged/docs/toback.bmp delete mode 100644 utils/dialoged/docs/toback.eps delete mode 100644 utils/dialoged/docs/toback.gif delete mode 100644 utils/dialoged/docs/tofront.bmp delete mode 100644 utils/dialoged/docs/tofront.eps delete mode 100644 utils/dialoged/docs/tofront.gif delete mode 100644 utils/dialoged/docs/up.gif delete mode 100644 utils/dialoged/docs/vert.bmp delete mode 100644 utils/dialoged/docs/vert.eps delete mode 100644 utils/dialoged/docs/vert.gif delete mode 100644 utils/dialoged/src/.cvsignore delete mode 100644 utils/dialoged/src/bitmaps/alignb.bmp delete mode 100644 utils/dialoged/src/bitmaps/alignb.xbm delete mode 100644 utils/dialoged/src/bitmaps/alignb.xpm delete mode 100644 utils/dialoged/src/bitmaps/alignl.bmp delete mode 100644 utils/dialoged/src/bitmaps/alignl.xbm delete mode 100644 utils/dialoged/src/bitmaps/alignl.xpm delete mode 100644 utils/dialoged/src/bitmaps/alignr.bmp delete mode 100644 utils/dialoged/src/bitmaps/alignr.xbm delete mode 100644 utils/dialoged/src/bitmaps/alignr.xpm delete mode 100644 utils/dialoged/src/bitmaps/alignt.bmp delete mode 100644 utils/dialoged/src/bitmaps/alignt.xbm delete mode 100644 utils/dialoged/src/bitmaps/alignt.xpm delete mode 100644 utils/dialoged/src/bitmaps/arrow.bmp delete mode 100644 utils/dialoged/src/bitmaps/arrow.ico delete mode 100644 utils/dialoged/src/bitmaps/arrow.xbm delete mode 100644 utils/dialoged/src/bitmaps/arrow.xpm delete mode 100644 utils/dialoged/src/bitmaps/bmpbuttn.bmp delete mode 100644 utils/dialoged/src/bitmaps/bmpbuttn.ico delete mode 100644 utils/dialoged/src/bitmaps/bmpbuttn.xbm delete mode 100644 utils/dialoged/src/bitmaps/bmpbuttn.xpm delete mode 100644 utils/dialoged/src/bitmaps/button.bmp delete mode 100644 utils/dialoged/src/bitmaps/button.ico delete mode 100644 utils/dialoged/src/bitmaps/button.xbm delete mode 100644 utils/dialoged/src/bitmaps/button.xpm delete mode 100644 utils/dialoged/src/bitmaps/buttonsm.ico delete mode 100644 utils/dialoged/src/bitmaps/buttonsm.xpm delete mode 100644 utils/dialoged/src/bitmaps/canvas.xbm delete mode 100644 utils/dialoged/src/bitmaps/check.bmp delete mode 100644 utils/dialoged/src/bitmaps/check.xbm delete mode 100644 utils/dialoged/src/bitmaps/checkbox.ico delete mode 100644 utils/dialoged/src/bitmaps/checkbox.xpm delete mode 100644 utils/dialoged/src/bitmaps/choice.bmp delete mode 100644 utils/dialoged/src/bitmaps/choice.ico delete mode 100644 utils/dialoged/src/bitmaps/choice.xbm delete mode 100644 utils/dialoged/src/bitmaps/choice.xpm delete mode 100644 utils/dialoged/src/bitmaps/combobox.ico delete mode 100644 utils/dialoged/src/bitmaps/combobox.xpm delete mode 100644 utils/dialoged/src/bitmaps/copysize.bmp delete mode 100644 utils/dialoged/src/bitmaps/copysize.xbm delete mode 100644 utils/dialoged/src/bitmaps/copysize.xpm delete mode 100644 utils/dialoged/src/bitmaps/cpp.xbm delete mode 100644 utils/dialoged/src/bitmaps/cross.bmp delete mode 100644 utils/dialoged/src/bitmaps/dialog.bmp delete mode 100644 utils/dialoged/src/bitmaps/dialog.ico delete mode 100644 utils/dialoged/src/bitmaps/dialog.xbm delete mode 100644 utils/dialoged/src/bitmaps/dialog.xpm delete mode 100644 utils/dialoged/src/bitmaps/dialoged.ico delete mode 100644 utils/dialoged/src/bitmaps/dialoged.xpm delete mode 100644 utils/dialoged/src/bitmaps/folder1.ico delete mode 100644 utils/dialoged/src/bitmaps/folder1.xpm delete mode 100644 utils/dialoged/src/bitmaps/folder2.ico delete mode 100644 utils/dialoged/src/bitmaps/folder2.xpm delete mode 100644 utils/dialoged/src/bitmaps/frame.xbm delete mode 100644 utils/dialoged/src/bitmaps/gauge.bmp delete mode 100644 utils/dialoged/src/bitmaps/gauge.ico delete mode 100644 utils/dialoged/src/bitmaps/gauge.xbm delete mode 100644 utils/dialoged/src/bitmaps/gauge.xpm delete mode 100644 utils/dialoged/src/bitmaps/group.bmp delete mode 100644 utils/dialoged/src/bitmaps/group.xbm delete mode 100644 utils/dialoged/src/bitmaps/help.bmp delete mode 100644 utils/dialoged/src/bitmaps/help.xbm delete mode 100644 utils/dialoged/src/bitmaps/help.xpm delete mode 100644 utils/dialoged/src/bitmaps/horiz.bmp delete mode 100644 utils/dialoged/src/bitmaps/horiz.xbm delete mode 100644 utils/dialoged/src/bitmaps/horiz.xpm delete mode 100644 utils/dialoged/src/bitmaps/listbox.bmp delete mode 100644 utils/dialoged/src/bitmaps/listbox.ico delete mode 100644 utils/dialoged/src/bitmaps/listbox.xbm delete mode 100644 utils/dialoged/src/bitmaps/listbox.xpm delete mode 100644 utils/dialoged/src/bitmaps/load.bmp delete mode 100644 utils/dialoged/src/bitmaps/load.xbm delete mode 100644 utils/dialoged/src/bitmaps/load.xpm delete mode 100644 utils/dialoged/src/bitmaps/message.bmp delete mode 100644 utils/dialoged/src/bitmaps/message.xbm delete mode 100644 utils/dialoged/src/bitmaps/mtext.bmp delete mode 100644 utils/dialoged/src/bitmaps/mtext.xbm delete mode 100644 utils/dialoged/src/bitmaps/new.bmp delete mode 100644 utils/dialoged/src/bitmaps/new.xbm delete mode 100644 utils/dialoged/src/bitmaps/new.xpm delete mode 100644 utils/dialoged/src/bitmaps/open.bmp delete mode 100644 utils/dialoged/src/bitmaps/panel.xbm delete mode 100644 utils/dialoged/src/bitmaps/picture.bmp delete mode 100644 utils/dialoged/src/bitmaps/picture.xbm delete mode 100644 utils/dialoged/src/bitmaps/radio.bmp delete mode 100644 utils/dialoged/src/bitmaps/radio.xbm delete mode 100644 utils/dialoged/src/bitmaps/radiobox.ico delete mode 100644 utils/dialoged/src/bitmaps/radiobox.xpm delete mode 100644 utils/dialoged/src/bitmaps/radiobtn.ico delete mode 100644 utils/dialoged/src/bitmaps/radiobtn.xpm delete mode 100644 utils/dialoged/src/bitmaps/report.xbm delete mode 100644 utils/dialoged/src/bitmaps/save.bmp delete mode 100644 utils/dialoged/src/bitmaps/save.xbm delete mode 100644 utils/dialoged/src/bitmaps/save.xpm delete mode 100644 utils/dialoged/src/bitmaps/scrolbar.ico delete mode 100644 utils/dialoged/src/bitmaps/scrolbar.xpm delete mode 100644 utils/dialoged/src/bitmaps/scroll.bmp delete mode 100644 utils/dialoged/src/bitmaps/scroll.xbm delete mode 100644 utils/dialoged/src/bitmaps/slider.bmp delete mode 100644 utils/dialoged/src/bitmaps/slider.ico delete mode 100644 utils/dialoged/src/bitmaps/slider.xbm delete mode 100644 utils/dialoged/src/bitmaps/slider.xpm delete mode 100644 utils/dialoged/src/bitmaps/statbmp.ico delete mode 100644 utils/dialoged/src/bitmaps/statbmp.xpm delete mode 100644 utils/dialoged/src/bitmaps/statbox.ico delete mode 100644 utils/dialoged/src/bitmaps/statbox.xpm delete mode 100644 utils/dialoged/src/bitmaps/stattext.ico delete mode 100644 utils/dialoged/src/bitmaps/stattext.xpm delete mode 100644 utils/dialoged/src/bitmaps/text.bmp delete mode 100644 utils/dialoged/src/bitmaps/text.xbm delete mode 100644 utils/dialoged/src/bitmaps/textmult.ico delete mode 100644 utils/dialoged/src/bitmaps/textmult.xpm delete mode 100644 utils/dialoged/src/bitmaps/textsing.ico delete mode 100644 utils/dialoged/src/bitmaps/textsing.xpm delete mode 100644 utils/dialoged/src/bitmaps/textsw.xbm delete mode 100644 utils/dialoged/src/bitmaps/tick.bmp delete mode 100644 utils/dialoged/src/bitmaps/toback.bmp delete mode 100644 utils/dialoged/src/bitmaps/toback.xbm delete mode 100644 utils/dialoged/src/bitmaps/toback.xpm delete mode 100644 utils/dialoged/src/bitmaps/tofront.bmp delete mode 100644 utils/dialoged/src/bitmaps/tofront.xbm delete mode 100644 utils/dialoged/src/bitmaps/tofront.xpm delete mode 100644 utils/dialoged/src/bitmaps/tree.xbm delete mode 100644 utils/dialoged/src/bitmaps/treeicn.xbm delete mode 100644 utils/dialoged/src/bitmaps/vert.bmp delete mode 100644 utils/dialoged/src/bitmaps/vert.xbm delete mode 100644 utils/dialoged/src/bitmaps/vert.xpm delete mode 100644 utils/dialoged/src/bitmaps/wxbuild.xbm delete mode 100644 utils/dialoged/src/bitmaps/wxwin.bmp delete mode 100644 utils/dialoged/src/bitmaps/wxwin.xbm delete mode 100644 utils/dialoged/src/bitmaps/wxwin.xpm delete mode 100644 utils/dialoged/src/dialoged.cpp delete mode 100644 utils/dialoged/src/dialoged.def delete mode 100644 utils/dialoged/src/dialoged.h delete mode 100644 utils/dialoged/src/dialoged.ico delete mode 100644 utils/dialoged/src/dialoged.rc delete mode 100644 utils/dialoged/src/dlghndlr.cpp delete mode 100644 utils/dialoged/src/dlghndlr.h delete mode 100644 utils/dialoged/src/edlist.cpp delete mode 100644 utils/dialoged/src/edlist.h delete mode 100644 utils/dialoged/src/edtree.cpp delete mode 100644 utils/dialoged/src/edtree.h delete mode 100644 utils/dialoged/src/makefile.b32 delete mode 100644 utils/dialoged/src/makefile.bcc delete mode 100644 utils/dialoged/src/makefile.dos delete mode 100644 utils/dialoged/src/makefile.g95 delete mode 100644 utils/dialoged/src/makefile.sc delete mode 100644 utils/dialoged/src/makefile.unx delete mode 100644 utils/dialoged/src/makefile.vc delete mode 100644 utils/dialoged/src/makefile.wat delete mode 100644 utils/dialoged/src/reseditr.cpp delete mode 100644 utils/dialoged/src/reseditr.h delete mode 100644 utils/dialoged/src/reswrite.cpp delete mode 100644 utils/dialoged/src/symbtabl.cpp delete mode 100644 utils/dialoged/src/symbtabl.h delete mode 100644 utils/dialoged/src/winprop.cpp delete mode 100644 utils/dialoged/src/winprop.h delete mode 100644 utils/dialoged/src/winstyle.cpp delete mode 100644 utils/dialoged/src/winstyle.h delete mode 100644 utils/framelayout/README delete mode 100644 utils/framelayout/samples/bitmaps/bookmarks.bmp delete mode 100644 utils/framelayout/samples/bitmaps/bookmarks.xpm delete mode 100644 utils/framelayout/samples/bitmaps/class_icon.bmp delete mode 100644 utils/framelayout/samples/bitmaps/class_icon.xpm delete mode 100644 utils/framelayout/samples/bitmaps/class_icon1.bmp delete mode 100644 utils/framelayout/samples/bitmaps/class_icon1.xpm delete mode 100644 utils/framelayout/samples/bitmaps/copy.bmp delete mode 100644 utils/framelayout/samples/bitmaps/copy.xpm delete mode 100644 utils/framelayout/samples/bitmaps/cut.bmp delete mode 100644 utils/framelayout/samples/bitmaps/cut.xpm delete mode 100644 utils/framelayout/samples/bitmaps/file_icon.bmp delete mode 100644 utils/framelayout/samples/bitmaps/file_icon.xpm delete mode 100644 utils/framelayout/samples/bitmaps/folder_icon.bmp delete mode 100644 utils/framelayout/samples/bitmaps/folder_icon.xpm delete mode 100644 utils/framelayout/samples/bitmaps/help_icon.bmp delete mode 100644 utils/framelayout/samples/bitmaps/help_icon.xpm delete mode 100644 utils/framelayout/samples/bitmaps/new.bmp delete mode 100644 utils/framelayout/samples/bitmaps/new.xpm delete mode 100644 utils/framelayout/samples/bitmaps/nextmark.bmp delete mode 100644 utils/framelayout/samples/bitmaps/nextmark.xpm delete mode 100644 utils/framelayout/samples/bitmaps/open.bmp delete mode 100644 utils/framelayout/samples/bitmaps/open.xpm delete mode 100644 utils/framelayout/samples/bitmaps/paste.bmp delete mode 100644 utils/framelayout/samples/bitmaps/paste.xpm delete mode 100644 utils/framelayout/samples/bitmaps/prevmark.bmp delete mode 100644 utils/framelayout/samples/bitmaps/prevmark.xpm delete mode 100644 utils/framelayout/samples/bitmaps/res_icon.bmp delete mode 100644 utils/framelayout/samples/bitmaps/res_icon.xpm delete mode 100644 utils/framelayout/samples/bitmaps/save.bmp delete mode 100644 utils/framelayout/samples/bitmaps/save.xpm delete mode 100644 utils/framelayout/samples/bitmaps/saveall.bmp delete mode 100644 utils/framelayout/samples/bitmaps/saveall.xpm delete mode 100644 utils/framelayout/samples/bitmaps/search.bmp delete mode 100644 utils/framelayout/samples/bitmaps/search.xpm delete mode 100644 utils/framelayout/samples/bitmaps/start95_dp.bmp delete mode 100644 utils/framelayout/samples/bitmaps/start95_dp.xpm delete mode 100644 utils/framelayout/samples/bitmaps/start95_pr.bmp delete mode 100644 utils/framelayout/samples/bitmaps/start95_pr.xpm delete mode 100644 utils/framelayout/samples/bitmaps/tile.bmp delete mode 100644 utils/framelayout/samples/bitmaps/tile.xpm delete mode 100644 utils/framelayout/samples/demo/.cvsignore delete mode 100644 utils/framelayout/samples/demo/fl_demo.cpp delete mode 100644 utils/framelayout/samples/demo/fl_demo.h delete mode 100644 utils/framelayout/samples/demo/fl_demo.rc delete mode 100644 utils/framelayout/samples/demo/settingsdlg.cpp delete mode 100644 utils/framelayout/samples/demo/settingsdlg.h delete mode 100644 utils/framelayout/samples/demo/wxinfo.cpp delete mode 100644 utils/framelayout/samples/demo/wxinfo.h delete mode 100755 utils/framelayout/samples/make_Linux_make delete mode 100644 utils/framelayout/samples/sample/.cvsignore delete mode 100644 utils/framelayout/samples/sample/fl_sample.cpp delete mode 100644 utils/framelayout/samples/sample/fl_sample.rc delete mode 100644 utils/framelayout/samples/test/.cvsignore delete mode 100644 utils/framelayout/samples/test/fl_test.cpp delete mode 100644 utils/framelayout/samples/test/fl_test.h delete mode 100644 utils/framelayout/samples/test/fl_test.rc delete mode 100644 utils/framelayout/src/.cvsignore delete mode 100644 utils/framelayout/src/antiflickpl.cpp delete mode 100644 utils/framelayout/src/antiflickpl.h delete mode 100644 utils/framelayout/src/bardragpl.cpp delete mode 100644 utils/framelayout/src/bardragpl.h delete mode 100644 utils/framelayout/src/barhintspl.cpp delete mode 100644 utils/framelayout/src/barhintspl.h delete mode 100644 utils/framelayout/src/cbcustom.cpp delete mode 100644 utils/framelayout/src/cbcustom.h delete mode 100644 utils/framelayout/src/controlarea.cpp delete mode 100644 utils/framelayout/src/controlarea.h delete mode 100644 utils/framelayout/src/controlbar.cpp delete mode 100644 utils/framelayout/src/controlbar.h delete mode 100644 utils/framelayout/src/dynbarhnd.h delete mode 100644 utils/framelayout/src/dyntbar.cpp delete mode 100644 utils/framelayout/src/dyntbar.h delete mode 100644 utils/framelayout/src/dyntbarhnd.cpp delete mode 100644 utils/framelayout/src/dyntbarhnd.h delete mode 100644 utils/framelayout/src/frmview.cpp delete mode 100644 utils/framelayout/src/frmview.h delete mode 100644 utils/framelayout/src/garbagec.cpp delete mode 100644 utils/framelayout/src/garbagec.h delete mode 100644 utils/framelayout/src/gcupdatesmgr.cpp delete mode 100644 utils/framelayout/src/gcupdatesmgr.h delete mode 100644 utils/framelayout/src/hintanimpl.cpp delete mode 100644 utils/framelayout/src/hintanimpl.h delete mode 100644 utils/framelayout/src/makefile.b32 delete mode 100644 utils/framelayout/src/makefile.g95 delete mode 100644 utils/framelayout/src/makefile.unx delete mode 100644 utils/framelayout/src/makefile.vc delete mode 100644 utils/framelayout/src/makefile.wat delete mode 100644 utils/framelayout/src/newbmpbtn.cpp delete mode 100644 utils/framelayout/src/newbmpbtn.h delete mode 100644 utils/framelayout/src/panedrawpl.cpp delete mode 100644 utils/framelayout/src/panedrawpl.h delete mode 100644 utils/framelayout/src/rowdragpl.cpp delete mode 100644 utils/framelayout/src/rowdragpl.h delete mode 100644 utils/framelayout/src/rowlayoutpl.cpp delete mode 100644 utils/framelayout/src/rowlayoutpl.h delete mode 100644 utils/framelayout/src/toolwnd.cpp delete mode 100644 utils/framelayout/src/toolwnd.h delete mode 100644 utils/framelayout/src/updatesmgr.cpp delete mode 100644 utils/framelayout/src/updatesmgr.h delete mode 100644 utils/glcanvas/distrib/glcanvas.rsp delete mode 100755 utils/glcanvas/distrib/zipsrc.bat delete mode 100644 utils/glcanvas/docs/notes.txt delete mode 100644 utils/glcanvas/gtk/.cvsignore delete mode 100644 utils/glcanvas/gtk/glcanvas.cpp delete mode 100644 utils/glcanvas/gtk/glcanvas.h delete mode 100644 utils/glcanvas/motif/glcanvas.cpp delete mode 100644 utils/glcanvas/motif/glcanvas.h delete mode 100644 utils/glcanvas/motif/makefile.unx delete mode 100644 utils/glcanvas/motif/readme.txt delete mode 100644 utils/glcanvas/samples/cube/Makefile delete mode 100644 utils/glcanvas/samples/cube/cube.cpp delete mode 100644 utils/glcanvas/samples/cube/cube.h delete mode 100644 utils/glcanvas/samples/cube/cube.rc delete mode 100644 utils/glcanvas/samples/cube/makefile.b32 delete mode 100644 utils/glcanvas/samples/cube/makefile.bcc delete mode 100644 utils/glcanvas/samples/cube/makefile.g95 delete mode 100644 utils/glcanvas/samples/cube/makefile.unx delete mode 100644 utils/glcanvas/samples/cube/makefile.vc delete mode 100644 utils/glcanvas/samples/cube/makefile.wat delete mode 100644 utils/glcanvas/samples/cube/mondrian.ico delete mode 100644 utils/glcanvas/samples/isosurf/Makefile delete mode 100644 utils/glcanvas/samples/isosurf/isosurf.cpp delete mode 100644 utils/glcanvas/samples/isosurf/isosurf.dat.gz delete mode 100644 utils/glcanvas/samples/isosurf/isosurf.h delete mode 100644 utils/glcanvas/samples/isosurf/isosurf.rc delete mode 100644 utils/glcanvas/samples/isosurf/makefile.b32 delete mode 100644 utils/glcanvas/samples/isosurf/makefile.bcc delete mode 100644 utils/glcanvas/samples/isosurf/makefile.g95 delete mode 100644 utils/glcanvas/samples/isosurf/makefile.unx delete mode 100644 utils/glcanvas/samples/isosurf/makefile.vc delete mode 100644 utils/glcanvas/samples/isosurf/makefile.wat delete mode 100644 utils/glcanvas/samples/isosurf/mondrian.ico delete mode 100644 utils/glcanvas/samples/penguin/Makefile delete mode 100644 utils/glcanvas/samples/penguin/lw.cpp delete mode 100644 utils/glcanvas/samples/penguin/lw.h delete mode 100644 utils/glcanvas/samples/penguin/makefile.b32 delete mode 100644 utils/glcanvas/samples/penguin/makefile.bcc delete mode 100644 utils/glcanvas/samples/penguin/makefile.g95 delete mode 100644 utils/glcanvas/samples/penguin/makefile.unx delete mode 100644 utils/glcanvas/samples/penguin/makefile.vc delete mode 100644 utils/glcanvas/samples/penguin/makefile.wat delete mode 100644 utils/glcanvas/samples/penguin/penguin.cpp delete mode 100644 utils/glcanvas/samples/penguin/penguin.h delete mode 100644 utils/glcanvas/samples/penguin/penguin.lwo delete mode 100644 utils/glcanvas/samples/penguin/penguin.rc delete mode 100644 utils/glcanvas/samples/penguin/trackball.c delete mode 100644 utils/glcanvas/samples/penguin/trackball.h delete mode 100644 utils/glcanvas/win/glcanvas.cpp delete mode 100644 utils/glcanvas/win/glcanvas.h delete mode 100644 utils/glcanvas/win/makefile.b32 delete mode 100644 utils/glcanvas/win/makefile.bcc delete mode 100644 utils/glcanvas/win/makefile.g95 delete mode 100644 utils/glcanvas/win/makefile.vc delete mode 100644 utils/glcanvas/win/makefile.wat delete mode 100644 utils/makefile.vc delete mode 100644 utils/nplugin/docs/notes.txt delete mode 100644 utils/nplugin/lib/dummy delete mode 100644 utils/nplugin/makefile.vc delete mode 100644 utils/nplugin/samples/gui/gui.cpp delete mode 100644 utils/nplugin/samples/gui/gui.h delete mode 100644 utils/nplugin/samples/gui/index.html delete mode 100644 utils/nplugin/samples/gui/makefile.vc delete mode 100644 utils/nplugin/samples/gui/npgui32.def delete mode 100644 utils/nplugin/samples/gui/npgui32.rc delete mode 100644 utils/nplugin/samples/simple/index.html delete mode 100644 utils/nplugin/samples/simple/makefile.vc delete mode 100644 utils/nplugin/samples/simple/npsimple32.def delete mode 100644 utils/nplugin/samples/simple/npsimple32.rc delete mode 100644 utils/nplugin/samples/simple/simple.cpp delete mode 100644 utils/nplugin/src/makefile.vc delete mode 100644 utils/nplugin/src/npapi.h delete mode 100644 utils/nplugin/src/npapp.cpp delete mode 100644 utils/nplugin/src/npapp.h delete mode 100644 utils/nplugin/src/npframe.cpp delete mode 100644 utils/nplugin/src/npframe.h delete mode 100644 utils/nplugin/src/npshell.cpp delete mode 100644 utils/nplugin/src/npupp.h delete mode 100644 utils/nplugin/src/npwin.cpp delete mode 100644 utils/ogl/distrib/ogl.rsp delete mode 100755 utils/ogl/distrib/tarogl.bat delete mode 100755 utils/ogl/distrib/zipogl.bat delete mode 100644 utils/ogl/docs/back.gif delete mode 100644 utils/ogl/docs/books.bmp delete mode 100644 utils/ogl/docs/bugs.tex delete mode 100644 utils/ogl/docs/bullet.bmp delete mode 100644 utils/ogl/docs/changes.tex delete mode 100644 utils/ogl/docs/classes.tex delete mode 100644 utils/ogl/docs/contents.gif delete mode 100644 utils/ogl/docs/forward.gif delete mode 100644 utils/ogl/docs/intro.tex delete mode 100644 utils/ogl/docs/ogl.hpj delete mode 100644 utils/ogl/docs/ogl.tex delete mode 100644 utils/ogl/docs/ogledit.bmp delete mode 100644 utils/ogl/docs/ogledit.gif delete mode 100644 utils/ogl/docs/sample.tex delete mode 100644 utils/ogl/docs/tex2rtf.ini delete mode 100644 utils/ogl/docs/texhelp.sty delete mode 100644 utils/ogl/docs/topics.tex delete mode 100644 utils/ogl/docs/up.gif delete mode 100644 utils/ogl/samples/ogledit/bitmaps/arrow.bmp delete mode 100644 utils/ogl/samples/ogledit/bitmaps/arrow.xpm delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool1.bmp delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool1.xpm delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool2.bmp delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool2.xpm delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool3.bmp delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool3.xpm delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool4.bmp delete mode 100644 utils/ogl/samples/ogledit/bitmaps/tool4.xpm delete mode 100644 utils/ogl/samples/ogledit/doc.cpp delete mode 100644 utils/ogl/samples/ogledit/doc.h delete mode 100644 utils/ogl/samples/ogledit/makefile.b32 delete mode 100644 utils/ogl/samples/ogledit/makefile.bcc delete mode 100644 utils/ogl/samples/ogledit/makefile.dos delete mode 100644 utils/ogl/samples/ogledit/makefile.g95 delete mode 100644 utils/ogl/samples/ogledit/makefile.sc delete mode 100644 utils/ogl/samples/ogledit/makefile.unx delete mode 100644 utils/ogl/samples/ogledit/makefile.vc delete mode 100644 utils/ogl/samples/ogledit/makefile.vms delete mode 100644 utils/ogl/samples/ogledit/makefile.wat delete mode 100644 utils/ogl/samples/ogledit/ogl.ico delete mode 100644 utils/ogl/samples/ogledit/ogl.xpm delete mode 100644 utils/ogl/samples/ogledit/ogledit.cpp delete mode 100644 utils/ogl/samples/ogledit/ogledit.def delete mode 100644 utils/ogl/samples/ogledit/ogledit.h delete mode 100644 utils/ogl/samples/ogledit/ogledit.rc delete mode 100644 utils/ogl/samples/ogledit/palette.cpp delete mode 100644 utils/ogl/samples/ogledit/palette.h delete mode 100644 utils/ogl/samples/ogledit/view.cpp delete mode 100644 utils/ogl/samples/ogledit/view.h delete mode 100644 utils/ogl/samples/studio/bitmaps/alignb.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/alignb.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/alignl.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/alignl.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/alignr.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/alignr.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/alignt.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/alignt.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/arrow.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/arrow.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/bitmap1.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/bitmap2.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/copy.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/copy.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/copysize.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/copysize.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/cut.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/cut.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/cutpoint.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/cutpoint.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/file1.ico delete mode 100644 utils/ogl/samples/studio/bitmaps/folder1.ico delete mode 100644 utils/ogl/samples/studio/bitmaps/help.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/help.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/helpcs.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/helpcs.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/horiz.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/horiz.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/linearrow.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/linearrow.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/new.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/new.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/newpoint.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/newpoint.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/open.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/open.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/paste.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/paste.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/preview.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/preview.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/print.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/print.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/redo.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/redo.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/save.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/save.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/straight.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/straight.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/texttool.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/texttool.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/tick.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/tick.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/toback.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/toback.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/tofront.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/tofront.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/undo.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/undo.xpm delete mode 100644 utils/ogl/samples/studio/bitmaps/vert.bmp delete mode 100644 utils/ogl/samples/studio/bitmaps/vert.xpm delete mode 100644 utils/ogl/samples/studio/cspalette.cpp delete mode 100644 utils/ogl/samples/studio/cspalette.h delete mode 100644 utils/ogl/samples/studio/csprint.cpp delete mode 100644 utils/ogl/samples/studio/dialogs.cpp delete mode 100644 utils/ogl/samples/studio/dialogs.h delete mode 100644 utils/ogl/samples/studio/doc.cpp delete mode 100644 utils/ogl/samples/studio/doc.h delete mode 100644 utils/ogl/samples/studio/mainfrm.cpp delete mode 100644 utils/ogl/samples/studio/mainfrm.h delete mode 100644 utils/ogl/samples/studio/makefile.b32 delete mode 100644 utils/ogl/samples/studio/makefile.bcc delete mode 100644 utils/ogl/samples/studio/makefile.g95 delete mode 100644 utils/ogl/samples/studio/makefile.unx delete mode 100644 utils/ogl/samples/studio/makefile.vc delete mode 100644 utils/ogl/samples/studio/manual/BACK.GIF delete mode 100644 utils/ogl/samples/studio/manual/BULLET.BMP delete mode 100644 utils/ogl/samples/studio/manual/CONTENTS.GIF delete mode 100644 utils/ogl/samples/studio/manual/FORWARD.GIF delete mode 100644 utils/ogl/samples/studio/manual/Tex2rtf.ini delete mode 100644 utils/ogl/samples/studio/manual/UP.GIF delete mode 100644 utils/ogl/samples/studio/manual/abacus.bmp delete mode 100644 utils/ogl/samples/studio/manual/alignb.bmp delete mode 100644 utils/ogl/samples/studio/manual/alignl.bmp delete mode 100644 utils/ogl/samples/studio/manual/alignr.bmp delete mode 100644 utils/ogl/samples/studio/manual/alignt.bmp delete mode 100644 utils/ogl/samples/studio/manual/arrow.bmp delete mode 100644 utils/ogl/samples/studio/manual/bitmap1.bmp delete mode 100644 utils/ogl/samples/studio/manual/bitmap2.bmp delete mode 100644 utils/ogl/samples/studio/manual/brush.bmp delete mode 100644 utils/ogl/samples/studio/manual/calc.bmp delete mode 100644 utils/ogl/samples/studio/manual/chart.bmp delete mode 100644 utils/ogl/samples/studio/manual/colour.bmp delete mode 100644 utils/ogl/samples/studio/manual/copy.bmp delete mode 100644 utils/ogl/samples/studio/manual/copysize.bmp delete mode 100644 utils/ogl/samples/studio/manual/cut.bmp delete mode 100644 utils/ogl/samples/studio/manual/cutpoint.bmp delete mode 100644 utils/ogl/samples/studio/manual/files.bmp delete mode 100644 utils/ogl/samples/studio/manual/help.bmp delete mode 100644 utils/ogl/samples/studio/manual/helpcs.bmp delete mode 100644 utils/ogl/samples/studio/manual/horiz.bmp delete mode 100644 utils/ogl/samples/studio/manual/linearrow.bmp delete mode 100644 utils/ogl/samples/studio/manual/magnify.bmp delete mode 100644 utils/ogl/samples/studio/manual/mike.bmp delete mode 100644 utils/ogl/samples/studio/manual/new.bmp delete mode 100644 utils/ogl/samples/studio/manual/newpoint.bmp delete mode 100644 utils/ogl/samples/studio/manual/open.bmp delete mode 100644 utils/ogl/samples/studio/manual/page.bmp delete mode 100644 utils/ogl/samples/studio/manual/paste.bmp delete mode 100644 utils/ogl/samples/studio/manual/pointsize.bmp delete mode 100644 utils/ogl/samples/studio/manual/preview.bmp delete mode 100644 utils/ogl/samples/studio/manual/print.bmp delete mode 100644 utils/ogl/samples/studio/manual/redo.bmp delete mode 100644 utils/ogl/samples/studio/manual/save.bmp delete mode 100644 utils/ogl/samples/studio/manual/screw.bmp delete mode 100644 utils/ogl/samples/studio/manual/shapes.bmp delete mode 100644 utils/ogl/samples/studio/manual/speaker.bmp delete mode 100644 utils/ogl/samples/studio/manual/straight.bmp delete mode 100644 utils/ogl/samples/studio/manual/studio.tex delete mode 100644 utils/ogl/samples/studio/manual/telephon.bmp delete mode 100644 utils/ogl/samples/studio/manual/texttool.bmp delete mode 100644 utils/ogl/samples/studio/manual/therm.bmp delete mode 100644 utils/ogl/samples/studio/manual/tick.bmp delete mode 100644 utils/ogl/samples/studio/manual/toback.bmp delete mode 100644 utils/ogl/samples/studio/manual/tofront.bmp delete mode 100644 utils/ogl/samples/studio/manual/tool1.bmp delete mode 100644 utils/ogl/samples/studio/manual/tool2.bmp delete mode 100644 utils/ogl/samples/studio/manual/tool3.bmp delete mode 100644 utils/ogl/samples/studio/manual/tool4.bmp delete mode 100644 utils/ogl/samples/studio/manual/torch.bmp delete mode 100644 utils/ogl/samples/studio/manual/undo.bmp delete mode 100644 utils/ogl/samples/studio/manual/vert.bmp delete mode 100644 utils/ogl/samples/studio/manual/wrench.bmp delete mode 100644 utils/ogl/samples/studio/manual/zoom.bmp delete mode 100644 utils/ogl/samples/studio/project.cpp delete mode 100644 utils/ogl/samples/studio/project.h delete mode 100644 utils/ogl/samples/studio/shapes.cpp delete mode 100644 utils/ogl/samples/studio/shapes.h delete mode 100644 utils/ogl/samples/studio/studio.cpp delete mode 100644 utils/ogl/samples/studio/studio.h delete mode 100644 utils/ogl/samples/studio/studio.ico delete mode 100644 utils/ogl/samples/studio/studio.rc delete mode 100644 utils/ogl/samples/studio/studio.xpm delete mode 100644 utils/ogl/samples/studio/studio_resources.h delete mode 100644 utils/ogl/samples/studio/studio_resources.wxr delete mode 100644 utils/ogl/samples/studio/symbols.cpp delete mode 100644 utils/ogl/samples/studio/symbols.h delete mode 100644 utils/ogl/samples/studio/view.cpp delete mode 100644 utils/ogl/samples/studio/view.h delete mode 100644 utils/ogl/src/basic.cpp delete mode 100644 utils/ogl/src/basic.h delete mode 100644 utils/ogl/src/basic2.cpp delete mode 100644 utils/ogl/src/basicp.h delete mode 100644 utils/ogl/src/bmpshape.cpp delete mode 100644 utils/ogl/src/bmpshape.h delete mode 100644 utils/ogl/src/canvas.cpp delete mode 100644 utils/ogl/src/canvas.h delete mode 100644 utils/ogl/src/composit.cpp delete mode 100644 utils/ogl/src/composit.h delete mode 100644 utils/ogl/src/constrnt.cpp delete mode 100644 utils/ogl/src/constrnt.h delete mode 100644 utils/ogl/src/divided.cpp delete mode 100644 utils/ogl/src/divided.h delete mode 100644 utils/ogl/src/drawn.cpp delete mode 100644 utils/ogl/src/drawn.h delete mode 100644 utils/ogl/src/drawnp.h delete mode 100644 utils/ogl/src/lines.cpp delete mode 100644 utils/ogl/src/lines.h delete mode 100644 utils/ogl/src/linesp.h delete mode 100644 utils/ogl/src/makefile.b32 delete mode 100644 utils/ogl/src/makefile.bcc delete mode 100644 utils/ogl/src/makefile.dos delete mode 100644 utils/ogl/src/makefile.g95 delete mode 100644 utils/ogl/src/makefile.unx delete mode 100644 utils/ogl/src/makefile.vc delete mode 100644 utils/ogl/src/makefile.wat delete mode 100644 utils/ogl/src/mfutils.cpp delete mode 100644 utils/ogl/src/mfutils.h delete mode 100644 utils/ogl/src/misc.cpp delete mode 100644 utils/ogl/src/misc.h delete mode 100644 utils/ogl/src/ogl.h delete mode 100644 utils/ogl/src/ogldiag.cpp delete mode 100644 utils/ogl/src/ogldiag.h delete mode 100644 utils/serialize/.cvsignore delete mode 100644 utils/serialize/makefile.b32 delete mode 100644 utils/serialize/sercore.cpp delete mode 100644 utils/serialize/sercore.h delete mode 100644 utils/serialize/serctrl.cpp delete mode 100644 utils/serialize/serctrl.h delete mode 100644 utils/serialize/serext.cpp delete mode 100644 utils/serialize/serext.h delete mode 100644 utils/serialize/sergdi.cpp delete mode 100644 utils/serialize/sergdi.h delete mode 100644 utils/serialize/sermain.cpp delete mode 100644 utils/serialize/serwnd.cpp delete mode 100644 utils/serialize/serwnd.h delete mode 100644 utils/tex2rtf/docs/back.gif delete mode 100644 utils/tex2rtf/docs/books.gif delete mode 100644 utils/tex2rtf/docs/bullet.bmp delete mode 100644 utils/tex2rtf/docs/contents.gif delete mode 100644 utils/tex2rtf/docs/fancyhea.sty delete mode 100644 utils/tex2rtf/docs/forward.gif delete mode 100644 utils/tex2rtf/docs/install.txt delete mode 100644 utils/tex2rtf/docs/makeidx.sty delete mode 100644 utils/tex2rtf/docs/mysober.sty delete mode 100644 utils/tex2rtf/docs/mytitle.sty delete mode 100644 utils/tex2rtf/docs/notes.txt delete mode 100644 utils/tex2rtf/docs/psbox.tex delete mode 100644 utils/tex2rtf/docs/readme.txt delete mode 100644 utils/tex2rtf/docs/refs.bib delete mode 100644 utils/tex2rtf/docs/screen.bmp delete mode 100644 utils/tex2rtf/docs/screen.gif delete mode 100644 utils/tex2rtf/docs/screen.shg delete mode 100644 utils/tex2rtf/docs/tex2rtf.hpj delete mode 100644 utils/tex2rtf/docs/tex2rtf.ini delete mode 100644 utils/tex2rtf/docs/tex2rtf.tex delete mode 100644 utils/tex2rtf/docs/tex2rtf.wmf delete mode 100644 utils/tex2rtf/docs/texhelp.sty delete mode 100644 utils/tex2rtf/docs/up.gif delete mode 100644 utils/tex2rtf/docs/verbatim.sty delete mode 100644 utils/tex2rtf/src/bmputils.h delete mode 100644 utils/tex2rtf/src/books.bmp delete mode 100644 utils/tex2rtf/src/dos.def delete mode 100644 utils/tex2rtf/src/htmlutil.cpp delete mode 100644 utils/tex2rtf/src/makefile.b32 delete mode 100644 utils/tex2rtf/src/makefile.bcc delete mode 100644 utils/tex2rtf/src/makefile.dos delete mode 100644 utils/tex2rtf/src/makefile.g95 delete mode 100644 utils/tex2rtf/src/makefile.unx delete mode 100644 utils/tex2rtf/src/makefile.vc delete mode 100644 utils/tex2rtf/src/makefile.wat delete mode 100644 utils/tex2rtf/src/makengui.nt delete mode 100644 utils/tex2rtf/src/maths.cpp delete mode 100644 utils/tex2rtf/src/readshg.cpp delete mode 100644 utils/tex2rtf/src/readshg.h delete mode 100644 utils/tex2rtf/src/rtfutils.cpp delete mode 100644 utils/tex2rtf/src/rtfutils.h delete mode 100644 utils/tex2rtf/src/table.cpp delete mode 100644 utils/tex2rtf/src/table.h delete mode 100644 utils/tex2rtf/src/tex2any.cpp delete mode 100644 utils/tex2rtf/src/tex2any.h delete mode 100644 utils/tex2rtf/src/tex2rtf.cpp delete mode 100644 utils/tex2rtf/src/tex2rtf.def delete mode 100644 utils/tex2rtf/src/tex2rtf.h delete mode 100644 utils/tex2rtf/src/tex2rtf.ico delete mode 100644 utils/tex2rtf/src/tex2rtf.ini delete mode 100644 utils/tex2rtf/src/tex2rtf.rc delete mode 100644 utils/tex2rtf/src/tex2rtf.xpm delete mode 100644 utils/tex2rtf/src/texutils.cpp delete mode 100644 utils/tex2rtf/src/wxhlpblk.h delete mode 100644 utils/tex2rtf/src/xlputils.cpp delete mode 100644 utils/wxMMedia/TODO delete mode 100644 utils/wxMMedia/WARNING delete mode 100644 utils/wxMMedia/adpcm/g711.cpp delete mode 100644 utils/wxMMedia/adpcm/g721.cpp delete mode 100644 utils/wxMMedia/adpcm/g723_24.cpp delete mode 100644 utils/wxMMedia/adpcm/g723_40.cpp delete mode 100644 utils/wxMMedia/adpcm/g72x.cpp delete mode 100644 utils/wxMMedia/adpcm/g72x.h delete mode 100644 utils/wxMMedia/cdbase.cpp delete mode 100644 utils/wxMMedia/cdbase.h delete mode 100644 utils/wxMMedia/cdunix.cpp delete mode 100644 utils/wxMMedia/cdunix.h delete mode 100644 utils/wxMMedia/cdwin.cpp delete mode 100644 utils/wxMMedia/cdwin.h delete mode 100644 utils/wxMMedia/makefile.b32 delete mode 100644 utils/wxMMedia/makefile.nt delete mode 100644 utils/wxMMedia/mmdata.cpp delete mode 100644 utils/wxMMedia/mmedia.h delete mode 100644 utils/wxMMedia/mmfile.cpp delete mode 100644 utils/wxMMedia/mmfile.h delete mode 100644 utils/wxMMedia/mmriff.cpp delete mode 100644 utils/wxMMedia/mmriff.h delete mode 100644 utils/wxMMedia/mmsolve.cpp delete mode 100644 utils/wxMMedia/mmsolve.h delete mode 100644 utils/wxMMedia/mmtype.h delete mode 100644 utils/wxMMedia/sndadpcm.cpp delete mode 100644 utils/wxMMedia/sndadpcm.h delete mode 100644 utils/wxMMedia/sndaiff.cpp delete mode 100644 utils/wxMMedia/sndaiff.h delete mode 100644 utils/wxMMedia/sndau.cpp delete mode 100644 utils/wxMMedia/sndau.h delete mode 100644 utils/wxMMedia/sndfile.cpp delete mode 100644 utils/wxMMedia/sndfile.h delete mode 100644 utils/wxMMedia/sndfrag.cpp delete mode 100644 utils/wxMMedia/sndfrag.h delete mode 100644 utils/wxMMedia/sndfrmt.cpp delete mode 100644 utils/wxMMedia/sndfrmt.h delete mode 100644 utils/wxMMedia/sndmulaw.cpp delete mode 100644 utils/wxMMedia/sndmulaw.h delete mode 100644 utils/wxMMedia/sndpcm.cpp delete mode 100644 utils/wxMMedia/sndpcm.h delete mode 100644 utils/wxMMedia/sndsnd.cpp delete mode 100644 utils/wxMMedia/sndsnd.h delete mode 100644 utils/wxMMedia/snduss.cpp delete mode 100644 utils/wxMMedia/snduss.h delete mode 100644 utils/wxMMedia/sndwav.cpp delete mode 100644 utils/wxMMedia/sndwav.h delete mode 100644 utils/wxMMedia/sndwin.cpp delete mode 100644 utils/wxMMedia/sndwin.h delete mode 100644 utils/wxMMedia/ulaw.h delete mode 100644 utils/wxMMedia/vidbase.cpp delete mode 100644 utils/wxMMedia/vidbase.h delete mode 100644 utils/wxMMedia/vidwin.cpp delete mode 100644 utils/wxMMedia/vidwin.h delete mode 100644 utils/wxMMedia/vidxanm.cpp delete mode 100644 utils/wxMMedia/vidxanm.h delete mode 100644 utils/wxMMedia/wave.cpp delete mode 100644 utils/wxMMedia/wave.h delete mode 100644 utils/wxOLE/gtk/wxole.cpp delete mode 100644 utils/wxOLE/gtk/wxole.h delete mode 100644 utils/wxOLE/samples/servlet/.cvsignore delete mode 100644 utils/wxOLE/samples/servlet/mondrian.xpm delete mode 100644 utils/wxOLE/samples/servlet/servlet.cpp delete mode 100644 utils/wxOLE/samples/servlet/servlet.gnorba delete mode 100644 utils/wxPython/.cvsignore delete mode 100644 utils/wxPython/README.txt delete mode 100644 utils/wxPython/SWIG.patches/Include.patch delete mode 100644 utils/wxPython/SWIG.patches/Modules.patch delete mode 100644 utils/wxPython/SWIG.patches/SWIG.patch delete mode 100644 utils/wxPython/demo/.cvsignore delete mode 100644 utils/wxPython/demo/ColorPanel.py delete mode 100644 utils/wxPython/demo/DialogUnits.py delete mode 100644 utils/wxPython/demo/Layoutf.py delete mode 100644 utils/wxPython/demo/Main.py delete mode 100644 utils/wxPython/demo/README.txt delete mode 100644 utils/wxPython/demo/SlashDot.py delete mode 100644 utils/wxPython/demo/bitmaps/copy.bmp delete mode 100644 utils/wxPython/demo/bitmaps/image.bmp delete mode 100644 utils/wxPython/demo/bitmaps/image.gif delete mode 100644 utils/wxPython/demo/bitmaps/image.jpg delete mode 100644 utils/wxPython/demo/bitmaps/image.png delete mode 100644 utils/wxPython/demo/bitmaps/mondrian.ico delete mode 100644 utils/wxPython/demo/bitmaps/new.bmp delete mode 100644 utils/wxPython/demo/bitmaps/open.bmp delete mode 100644 utils/wxPython/demo/bitmaps/paste.bmp delete mode 100644 utils/wxPython/demo/bitmaps/smiles.bmp delete mode 100644 utils/wxPython/demo/bitmaps/smiles.ico delete mode 100644 utils/wxPython/demo/bitmaps/test2.bmp delete mode 100644 utils/wxPython/demo/bitmaps/tog1.bmp delete mode 100644 utils/wxPython/demo/bitmaps/tog2.bmp delete mode 100755 utils/wxPython/demo/demo.py delete mode 100644 utils/wxPython/demo/hangman.py delete mode 100644 utils/wxPython/demo/pyTree.py delete mode 100644 utils/wxPython/demo/wxButton.py delete mode 100644 utils/wxPython/demo/wxCheckBox.py delete mode 100644 utils/wxPython/demo/wxCheckListBox.py delete mode 100644 utils/wxPython/demo/wxChoice.py delete mode 100644 utils/wxPython/demo/wxColourDialog.py delete mode 100644 utils/wxPython/demo/wxComboBox.py delete mode 100644 utils/wxPython/demo/wxDialog.py delete mode 100644 utils/wxPython/demo/wxDirDialog.py delete mode 100644 utils/wxPython/demo/wxFileDialog.py delete mode 100644 utils/wxPython/demo/wxFontDialog.py delete mode 100644 utils/wxPython/demo/wxFrame.py delete mode 100644 utils/wxPython/demo/wxGLCanvas.py delete mode 100644 utils/wxPython/demo/wxGauge.py delete mode 100644 utils/wxPython/demo/wxGrid.py delete mode 100644 utils/wxPython/demo/wxImage.py delete mode 100644 utils/wxPython/demo/wxLayoutConstraints.py delete mode 100644 utils/wxPython/demo/wxListBox.py delete mode 100644 utils/wxPython/demo/wxListCtrl.py delete mode 100644 utils/wxPython/demo/wxMessageDialog.py delete mode 100644 utils/wxPython/demo/wxMiniFrame.py delete mode 100644 utils/wxPython/demo/wxMultipleChoiceDialog.py delete mode 100644 utils/wxPython/demo/wxNotebook.py delete mode 100644 utils/wxPython/demo/wxPageSetupDialog.py delete mode 100644 utils/wxPython/demo/wxPlotCanvas.py delete mode 100644 utils/wxPython/demo/wxPrintDialog.py delete mode 100644 utils/wxPython/demo/wxRadioBox.py delete mode 100644 utils/wxPython/demo/wxSashWindow.py delete mode 100644 utils/wxPython/demo/wxScrolledMessageDialog.py delete mode 100644 utils/wxPython/demo/wxScrolledWindow.py delete mode 100644 utils/wxPython/demo/wxSingleChoiceDialog.py delete mode 100644 utils/wxPython/demo/wxSlider.py delete mode 100644 utils/wxPython/demo/wxSpinButton.py delete mode 100644 utils/wxPython/demo/wxSplitterWindow.py delete mode 100644 utils/wxPython/demo/wxStaticBitmap.py delete mode 100644 utils/wxPython/demo/wxStaticText.py delete mode 100644 utils/wxPython/demo/wxStatusBar.py delete mode 100644 utils/wxPython/demo/wxTextCtrl.py delete mode 100644 utils/wxPython/demo/wxTextEntryDialog.py delete mode 100644 utils/wxPython/demo/wxTimer.py delete mode 100644 utils/wxPython/demo/wxToolBar.py delete mode 100644 utils/wxPython/demo/wxTreeCtrl.py delete mode 100644 utils/wxPython/distrib/.cvsignore delete mode 100644 utils/wxPython/distrib/.rpmrc delete mode 100755 utils/wxPython/distrib/makerpm delete mode 100755 utils/wxPython/distrib/maketgz delete mode 100644 utils/wxPython/distrib/wxPython.bmp delete mode 100644 utils/wxPython/distrib/wxPython.rsp delete mode 100644 utils/wxPython/distrib/wxPython.spec.in delete mode 100644 utils/wxPython/distrib/wxPython.wse delete mode 100644 utils/wxPython/distrib/wxPython.wsm delete mode 100755 utils/wxPython/distrib/zipit.bat delete mode 100644 utils/wxPython/lib/.cvsignore delete mode 100644 utils/wxPython/lib/__init__.py delete mode 100644 utils/wxPython/lib/dialogs.py delete mode 100644 utils/wxPython/lib/layoutf.py delete mode 100644 utils/wxPython/lib/wxPlotCanvas.py delete mode 100644 utils/wxPython/src/.cvsignore delete mode 100644 utils/wxPython/src/Makefile.pre.in delete mode 100644 utils/wxPython/src/Setup.in delete mode 100644 utils/wxPython/src/Setup.in.linux delete mode 100644 utils/wxPython/src/Setup.in.solaris delete mode 100644 utils/wxPython/src/__init__.py delete mode 100644 utils/wxPython/src/_defs.i delete mode 100644 utils/wxPython/src/_extras.py delete mode 100644 utils/wxPython/src/cmndlgs.i delete mode 100644 utils/wxPython/src/controls.i delete mode 100644 utils/wxPython/src/controls2.i delete mode 100644 utils/wxPython/src/events.i delete mode 100644 utils/wxPython/src/frames.i delete mode 100644 utils/wxPython/src/gdi.i delete mode 100644 utils/wxPython/src/glcanvas.i delete mode 100644 utils/wxPython/src/glcanvasc.def delete mode 100644 utils/wxPython/src/gtk/.cvsignore delete mode 100644 utils/wxPython/src/gtk/cmndlgs.cpp delete mode 100644 utils/wxPython/src/gtk/cmndlgs.py delete mode 100644 utils/wxPython/src/gtk/controls.cpp delete mode 100644 utils/wxPython/src/gtk/controls.py delete mode 100644 utils/wxPython/src/gtk/controls2.cpp delete mode 100644 utils/wxPython/src/gtk/controls2.py delete mode 100644 utils/wxPython/src/gtk/dummy delete mode 100644 utils/wxPython/src/gtk/events.cpp delete mode 100644 utils/wxPython/src/gtk/events.py delete mode 100644 utils/wxPython/src/gtk/frames.cpp delete mode 100644 utils/wxPython/src/gtk/frames.py delete mode 100644 utils/wxPython/src/gtk/gdi.cpp delete mode 100644 utils/wxPython/src/gtk/gdi.py delete mode 100644 utils/wxPython/src/gtk/glcanvas.cpp delete mode 100644 utils/wxPython/src/gtk/glcanvas.py delete mode 100644 utils/wxPython/src/gtk/image.cpp delete mode 100644 utils/wxPython/src/gtk/image.py delete mode 100644 utils/wxPython/src/gtk/mdi.cpp delete mode 100644 utils/wxPython/src/gtk/mdi.py delete mode 100644 utils/wxPython/src/gtk/misc.cpp delete mode 100644 utils/wxPython/src/gtk/misc.py delete mode 100644 utils/wxPython/src/gtk/stattool.cpp delete mode 100644 utils/wxPython/src/gtk/stattool.py delete mode 100644 utils/wxPython/src/gtk/utils.cpp delete mode 100644 utils/wxPython/src/gtk/utils.py delete mode 100644 utils/wxPython/src/gtk/windows.cpp delete mode 100644 utils/wxPython/src/gtk/windows.py delete mode 100644 utils/wxPython/src/gtk/windows2.cpp delete mode 100644 utils/wxPython/src/gtk/windows2.py delete mode 100644 utils/wxPython/src/gtk/windows3.cpp delete mode 100644 utils/wxPython/src/gtk/windows3.py delete mode 100644 utils/wxPython/src/gtk/wx.cpp delete mode 100644 utils/wxPython/src/gtk/wx.py delete mode 100644 utils/wxPython/src/helpers.cpp delete mode 100644 utils/wxPython/src/helpers.h delete mode 100644 utils/wxPython/src/image.i delete mode 100644 utils/wxPython/src/makefile.vc delete mode 100644 utils/wxPython/src/mdi.i delete mode 100644 utils/wxPython/src/misc.i delete mode 100644 utils/wxPython/src/motif/dummy delete mode 100644 utils/wxPython/src/msw/cmndlgs.cpp delete mode 100644 utils/wxPython/src/msw/cmndlgs.py delete mode 100644 utils/wxPython/src/msw/controls.cpp delete mode 100644 utils/wxPython/src/msw/controls.py delete mode 100644 utils/wxPython/src/msw/controls2.cpp delete mode 100644 utils/wxPython/src/msw/controls2.py delete mode 100644 utils/wxPython/src/msw/dummy delete mode 100644 utils/wxPython/src/msw/events.cpp delete mode 100644 utils/wxPython/src/msw/events.py delete mode 100644 utils/wxPython/src/msw/frames.cpp delete mode 100644 utils/wxPython/src/msw/frames.py delete mode 100644 utils/wxPython/src/msw/gdi.cpp delete mode 100644 utils/wxPython/src/msw/gdi.py delete mode 100644 utils/wxPython/src/msw/glcanvas.cpp delete mode 100644 utils/wxPython/src/msw/glcanvas.py delete mode 100644 utils/wxPython/src/msw/image.cpp delete mode 100644 utils/wxPython/src/msw/image.py delete mode 100644 utils/wxPython/src/msw/mdi.cpp delete mode 100644 utils/wxPython/src/msw/mdi.py delete mode 100644 utils/wxPython/src/msw/misc.cpp delete mode 100644 utils/wxPython/src/msw/misc.py delete mode 100644 utils/wxPython/src/msw/stattool.cpp delete mode 100644 utils/wxPython/src/msw/stattool.py delete mode 100644 utils/wxPython/src/msw/utils.cpp delete mode 100644 utils/wxPython/src/msw/utils.py delete mode 100644 utils/wxPython/src/msw/windows.cpp delete mode 100644 utils/wxPython/src/msw/windows.py delete mode 100644 utils/wxPython/src/msw/windows2.cpp delete mode 100644 utils/wxPython/src/msw/windows2.py delete mode 100644 utils/wxPython/src/msw/windows3.cpp delete mode 100644 utils/wxPython/src/msw/windows3.py delete mode 100644 utils/wxPython/src/msw/wx.cpp delete mode 100644 utils/wxPython/src/msw/wx.py delete mode 100644 utils/wxPython/src/my_typemaps.i delete mode 100644 utils/wxPython/src/qt/dummy delete mode 100644 utils/wxPython/src/stattool.i delete mode 100644 utils/wxPython/src/utils.i delete mode 100644 utils/wxPython/src/utilsc.def delete mode 100644 utils/wxPython/src/windows.i delete mode 100644 utils/wxPython/src/windows2.i delete mode 100644 utils/wxPython/src/windows3.i delete mode 100644 utils/wxPython/src/wx.i delete mode 100644 utils/wxPython/src/wxc.def delete mode 100644 utils/wxPython/src/wxc.rc delete mode 100644 utils/wxPython/src/wxp.ico delete mode 100644 utils/wxPython/tests/.cvsignore delete mode 100644 utils/wxPython/tests/README.txt delete mode 100644 utils/wxPython/tests/bitmaps/copy.bmp delete mode 100644 utils/wxPython/tests/bitmaps/mondrian.ico delete mode 100644 utils/wxPython/tests/bitmaps/new.bmp delete mode 100644 utils/wxPython/tests/bitmaps/open.bmp delete mode 100644 utils/wxPython/tests/bitmaps/paste.bmp delete mode 100644 utils/wxPython/tests/bitmaps/smiles.bmp delete mode 100644 utils/wxPython/tests/bitmaps/smiles.ico delete mode 100644 utils/wxPython/tests/bitmaps/test2.bmp delete mode 100644 utils/wxPython/tests/bitmaps/tog1.bmp delete mode 100644 utils/wxPython/tests/bitmaps/tog2.bmp delete mode 100644 utils/wxPython/tests/hangman.py delete mode 100644 utils/wxPython/tests/test1.py delete mode 100644 utils/wxPython/tests/test2.py delete mode 100644 utils/wxPython/tests/test3.py delete mode 100644 utils/wxPython/tests/test4.py delete mode 100644 utils/wxPython/tests/test5.py delete mode 100644 utils/wxPython/tests/test6.py delete mode 100644 utils/wxPython/tests/test7.py delete mode 100644 utils/wxPython/tests/test8.py delete mode 100644 utils/wxPython/tests/wxPlotCanvas.py delete mode 100644 utils/wxPython/tests/wxSlash.py delete mode 100644 utils/wxtree/docs/back.gif delete mode 100644 utils/wxtree/docs/books.gif delete mode 100644 utils/wxtree/docs/classes.tex delete mode 100644 utils/wxtree/docs/contents.gif delete mode 100644 utils/wxtree/docs/forward.gif delete mode 100644 utils/wxtree/docs/tex2rtf.ini delete mode 100644 utils/wxtree/docs/tree.bib delete mode 100644 utils/wxtree/docs/treetst.bmp delete mode 100644 utils/wxtree/docs/treetst.gif delete mode 100644 utils/wxtree/docs/up.gif delete mode 100644 utils/wxtree/docs/wxtree.tex delete mode 100644 utils/wxtree/lib/dummy delete mode 100644 utils/wxtree/src/makefile.b32 delete mode 100644 utils/wxtree/src/makefile.bcc delete mode 100644 utils/wxtree/src/makefile.dos delete mode 100644 utils/wxtree/src/makefile.g95 delete mode 100644 utils/wxtree/src/makefile.sc delete mode 100644 utils/wxtree/src/makefile.unx delete mode 100644 utils/wxtree/src/makefile.vc delete mode 100644 utils/wxtree/src/makefile.wat delete mode 100644 utils/wxtree/src/mondrian.ico delete mode 100644 utils/wxtree/src/test.cpp delete mode 100644 utils/wxtree/src/test.def delete mode 100644 utils/wxtree/src/test.h delete mode 100644 utils/wxtree/src/test.rc delete mode 100644 utils/wxtree/src/wxtree.cpp delete mode 100644 utils/wxtree/src/wxtree.h delete mode 100755 wx-config.in delete mode 100644 wxGTK.spec diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 982c36f56d..0000000000 --- a/.cvsignore +++ /dev/null @@ -1,32 +0,0 @@ -system.list -bin -.gdb_history -Test -config.cache -config.status -system.list -linux.system.cache -wx-config -config.log -linux-gnu.system.cache -*.dsp -*.dsw -*.plg -*.opt -*.aps -*.ncb -*.pro -*.opt -Release -Debug -ReleaseDLL -DebugDLL -robert -Makefile.in -setup.h.in -stamp-h.in -Makefile -configure -setup.h -stamp-h -libtool diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 6540a67638..0000000000 --- a/Makefile.am +++ /dev/null @@ -1,13 +0,0 @@ - -AUTOMAKE_OPTIONS = 1.3 -# no-dependencies - -SUBDIRS = include src samples misc # utils user docs - -bin_SCRIPTS = wx-config - -configincludedir = $(libdir)/wx/include/wx/$(TOOLKIT_DIR) - -configinclude_DATA = \ - setup.h - diff --git a/acconfig.h b/acconfig.h deleted file mode 100644 index c27c455c42..0000000000 --- a/acconfig.h +++ /dev/null @@ -1,576 +0,0 @@ -/* Generate setup.h.in from this file using autoheader. */ -/* */ -/* Version: $Id$ */ - -#ifndef __GTKSETUPH__ -#define __GTKSETUPH__ - -#ifdef __GNUG__ - #pragma interface -#endif - -@TOP@ - -/* ------------------------------------------------------------------------ */ -/* wxWindows version (not used but required by autoheader) */ -/* ------------------------------------------------------------------------ */ - -#if 0 -#undef PACKAGE -#undef VERSION -#endif - -/* needed for older automake? */ -#undef WITH_SYMBOL_UNDERSCORE - -/* ------------------------------------------------------------------------ */ -/* define if support for GTK 1.2 features */ -/* ------------------------------------------------------------------------ */ - -#undef __WXGTK12__ - -/* ------------------------------------------------------------------------ */ -/* define the system to compile */ -/* ------------------------------------------------------------------------ */ - -/* - * Define to 1 for Unix[-like] system - */ -#define wxUSE_UNIX 1 - -#undef __UNIX__ -#undef __LINUX__ -#undef __SGI__ -#undef __HPUX__ -#undef __SYSV__ -#undef __SVR4__ -#undef __AIX__ -#undef __SUN__ -#undef __SOLARIS__ -#undef __SUNOS__ -#undef __ALPHA__ -#undef __OSF__ -#undef __BSD__ -#undef __FREEBSD__ -#undef __VMS__ -#undef __ULTRIX__ -#undef __DATA_GENERAL__ - -/* ------------------------------------------------------------------------ */ -/* compiler options */ -/* ------------------------------------------------------------------------ */ - -/* - * Supports bool type - */ -#undef HAVE_BOOL - -/* ------------------------------------------------------------------------ */ -/* library options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use zlib - */ -#define wxUSE_ZLIB 0 -/* - * Use libpng - */ -#define wxUSE_LIBPNG 0 -/* - * Use libjpeg - */ -#define wxUSE_LIBJPEG 0 -/* - * Use libgif - */ -#define wxUSE_LIBGIF 0 -/* - * Use iODBC - */ -#define wxUSE_ODBC 0 -/* - * Use Threads - */ -#define wxUSE_THREADS 0 -/* - * Have glibc2 - */ -#define wxHAVE_GLIBC2 0 -/* - * Use libXpm - */ -#define wxHAVE_LIB_XPM 0 -/* - * Use OpenGL - */ -#define wxUSE_OPENGL 0 - -/* ------------------------------------------------------------------------ */ -/* GUI or not GUI? */ -/* ------------------------------------------------------------------------ */ - -/* - * Use GUI - */ -#define wxUSE_GUI 1 -/* - * Defined if !wxUSE_GUI - */ -#undef wxUSE_NOGUI - -/* ------------------------------------------------------------------------ */ -/* "global" GUI options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use constraints mechanism - */ -#define wxUSE_CONSTRAINTS 0 - -/* - * Use validators - */ -#define wxUSE_VALIDATORS 0 - -/* - * Use accelerators - */ -#define wxUSE_ACCEL 0 - -/* - * Use wxTextEntryDialog - */ -#define wxUSE_TEXTDLG 0 - -/* - * Use directory chooser dialog - */ -#define wxUSE_DIRDLG 0 - -/* - * Joystick support (Linux/GTK only) - */ -#define wxUSE_JOYSTICK 0 - -/* ------------------------------------------------------------------------ */ -/* GUI control options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use this control - */ -#define wxUSE_CARET 0 -/* - * Use this control - */ -#define wxUSE_BMPBUTTON 0 -/* - * Use this control - */ -#define wxUSE_CHECKBOX 0 -/* - * Use this control - */ -#define wxUSE_CHECKLISTBOX 0 -/* - * Use this control - */ -#define wxUSE_COMBOBOX 0 -/* - * Use this control - */ -#define wxUSE_GAUGE 0 -/* - * Use this control - */ -#define wxUSE_GRID 0 -/* - * Use this control - */ -#define wxUSE_IMAGLIST 0 -/* - * Use this control - */ -#define wxUSE_LISTBOX 0 -/* - * Use this control - */ -#define wxUSE_LISTCTRL 0 -/* - * Use this control - */ -#define wxUSE_NOTEBOOK 0 -/* - * Use this control - */ -#define wxUSE_RADIOBOX 0 -/* - * Use this control - */ -#define wxUSE_RADIOBTN 0 -/* - * Use this control - */ -#define wxUSE_SASH 0 -/* - * Use this control - */ -#define wxUSE_SCROLLBAR 0 -/* - * Use this control - */ -#define wxUSE_SLIDER 0 -/* - * Use this control - */ -#define wxUSE_SPINBTN 0 -/* - * Use this control - */ -#define wxUSE_SPLITTER 0 -/* - * Use this control - */ -#define wxUSE_STATBMP 0 -/* - * Use this control - */ -#define wxUSE_STATBOX 0 -/* - * Use this control - */ -#define wxUSE_STATLINE 0 -/* - * Use this control - */ -#define wxUSE_STATUSBAR 0 -/* - * Use Tab dialog class - obsolete, use wxNotebook instead - */ -#define wxUSE_TAB_DIALOG 0 -/* compatibility */ -#define wxUSE_TABDIALOG wxUSE_TAB_DIALOG -/* - * Use this control - */ -#define wxUSE_TOOLBAR 0 - -#ifdef __WXWINE__ - #if wxUSE_TOOLBAR - #define wxUSE_BUTTONBAR 1 - #endif -#endif - -/* - * Use this control - */ -#define wxUSE_TREECTRL 0 - -/* ------------------------------------------------------------------------ */ -/* non-GUI options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use wxLongLong (a.k.a. int64) class - */ -#define wxUSE_LONGLONG 0 - -/* - * Use wxFile class - */ -#define wxUSE_FILE 0 -/* - * Use wxTextFile class - */ -#define wxUSE_TEXTFILE 0 -/* - * Use log classes and logging functions - */ -#define wxUSE_LOG 1 -/* - * Use time and date classes - */ -#define wxUSE_TIMEDATE 0 -/* - * Use wave class - */ -#define wxUSE_WAVE 0 -/* - * Use config system - */ -#define wxUSE_CONFIG 0 -/* - * Use intl system - */ -#define wxUSE_INTL 0 -/* - * Use streams - */ -#define wxUSE_STREAMS 0 -/* - * Use class serialization - */ -#define wxUSE_SERIAL 0 -/* - * Use sockets - */ -#define wxUSE_SOCKETS 0 -/* - * Use standard C++ streams if 1. If 0, use wxWin - * streams implementation. - */ -#define wxUSE_STD_IOSTREAM 1 -/* - * wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 1 - -/* ------------------------------------------------------------------------ */ -/* PS options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use font metric files in GetTextExtent for wxPostScriptDC - * Use consistent PostScript fonts for AFM and printing (!) - */ -#define wxUSE_AFM_FOR_POSTSCRIPT 0 -#define wxUSE_NORMALIZED_PS_FONTS 0 - -/* compatibility */ -#define WX_NORMALIZED_PS_FONTS wxUSE_NORMALIZED_PS_FONTS - -/* - * Use PostScript device context - */ -#define wxUSE_POSTSCRIPT 0 - -/* ------------------------------------------------------------------------ */ -/* wxString options */ -/* ------------------------------------------------------------------------ */ - -/* - * Compile wxString with wide character (Unicode) support? - */ -#define wxUSE_UNICODE 0 - -/* - * Work around a bug in GNU libc 5.x wcstombs() implementation. - * - * Note that you must link your programs with libc.a if you enable this and you - * have libc 5 (you should enable this for libc6 where wcsrtombs() is - * thread-safe version of wcstombs()). - */ -#define wxUSE_WCSRTOMBS 0 - -/* - * On some platforms overloading on size_t/int doesn't work, yet we'd like - * to define both size_t and int version of wxString::operator[] because it - * should really be size_t, but a lot of old, broken code uses int indices. - */ -#define wxUSE_SIZE_T_STRING_OPERATOR 0 - -/* - * Use the new experimental implementation of wxString::Printf()? - * - * Warning: enabling this may cause internal compiler errors with gcc! - */ -#define wxUSE_EXPERIMENTAL_PRINTF 0 - -/* ------------------------------------------------------------------------ */ -/* misc options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use Interprocess communication - */ -#define wxUSE_IPC 0 -/* - * Use wxGetResource & wxWriteResource (change .Xdefaults) - */ -#define wxUSE_X_RESOURCES 0 -/* - * Use clipboard - */ -#define wxUSE_CLIPBOARD 0 -/* - * Use tooltips - */ -#define wxUSE_TOOLTIPS 0 -/* - * Use dnd - */ -#define wxUSE_DRAG_AND_DROP 0 -/* - * Use spline - */ -#define wxUSE_SPLINES 0 -/* - * Use wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 0 - -/* ------------------------------------------------------------------------ */ -/* architecture options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use the mdi architecture - */ -#define wxUSE_MDI_ARCHITECTURE 0 -/* - * Use the document/view architecture - */ -#define wxUSE_DOC_VIEW_ARCHITECTURE 0 -/* - * Use the print/preview architecture - */ -#define wxUSE_PRINTING_ARCHITECTURE 0 - -/* ------------------------------------------------------------------------ */ -/* Prolog and wxWindows' resource system options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use Prolog IO - */ -#define wxUSE_PROLOGIO 0 -/* - * Use wxWindows resource loading (.wxr-files) (Needs wxUSE_PROLOGIO 1) - */ -#define wxUSE_RESOURCES 0 - -/* for compatibility */ -#define wxUSE_WX_RESOURCES wxUSE_RESOURCES - -/* ------------------------------------------------------------------------ */ -/* the rest */ -/* ------------------------------------------------------------------------ */ - -/* - * Use wxWindows help facility (needs wxUSE_IPC 1) - */ -#define wxUSE_HELP 0 -/* - * Use iostream.h rather than iostream - */ -#define wxUSE_IOSTREAMH 0 -/* - * Use Apple Ieee-double converter - */ -#define wxUSE_APPLE_IEEE 0 -/* - * Compatibility with 1.66 API. - * Level 0: no backward compatibility, all new features - * Level 1: wxDC, OnSize (etc.) compatibility, but - * some new features such as event tables - */ -#define WXWIN_COMPATIBILITY 0 -/* - * Compatibility with 2.0 API. - */ -#define WXWIN_COMPATIBILITY_2 1 -/* - * Enables debugging: memory tracing, assert, etc., contains debug level - */ -#define WXDEBUG 0 -/* - * Enables debugging version of wxObject::new and wxObject::delete (IF WXDEBUG) - * WARNING: this code may not work with all architectures, especially - * if alignment is an issue. - */ -#define wxUSE_MEMORY_TRACING 0 -/* - * Enable debugging version of global memory operators new and delete - * Disable it, If this causes problems (e.g. link errors) - */ -#define wxUSE_DEBUG_NEW_ALWAYS 0 -/* - * VZ: What does this one do? (FIXME) - */ -#define wxUSE_DEBUG_CONTEXT 0 -/* - * In debug mode, causes new to be defined to - * be WXDEBUG_NEW (see object.h). If this causes - * problems (e.g. link errors), set this to 0. - */ -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 -/* - * Matthews garbage collection (used for MrEd?) - */ -#define WXGARBAGE_COLLECTION_ON 0 -/* - * Use splines - */ -#define wxUSE_SPLINES 0 -/* - * wxUSE_DYNAMIC_CLASSES is TRUE for the Xt port - */ -#define wxUSE_DYNAMIC_CLASSES 1 - -/* - * Support for metafiles - */ -#define wxUSE_METAFILE 0 - -/* - * wxMiniFrame - */ -#define wxUSE_MINIFRAME 0 - -/* - * Disable this if your compiler can't cope - * with omission of prototype parameters. - */ -#define REMOVE_UNUSED_ARG 1 -/* - * The const keyword is being introduced more in wxWindows. - * You can use this setting to maintain backward compatibility. - * If 0: will use const wherever possible. - * If 1: will use const only where necessary - * for precompiled headers to work. - * If 2: will be totally backward compatible, but precompiled - * headers may not work and program size will be larger. - */ -#define CONST_COMPATIBILITY 0 - -/* ------------------------------------------------------------------------ */ -/* System-specific stuff */ -/* ------------------------------------------------------------------------ */ - -/* The type of 3rd argument to getsockname() - usually size_t or int */ -#undef SOCKLEN_T - -/* Define if you have dlopen() */ -#undef HAVE_DLOPEN - -/* Define if you have nanosleep() */ -#undef HAVE_NANOSLEEP - -/* Define if you have sched_yield */ -#undef HAVE_SCHED_YIELD - -/* Define if you have pthread_cancel */ -#undef HAVE_PTHREAD_CANCEL - -/* Define if you have all functions to set thread priority */ -#undef HAVE_THREAD_PRIORITY_FUNCTIONS - -/* Define if you can specify exit functions to a thread */ -#undef HAVE_THREAD_CLEANUP_FUNCTIONS - -/* Define if you have shl_load() */ -#undef HAVE_SHL_LOAD - -/* Define if you have vsnprintf() */ -#undef HAVE_VSNPRINTF - -/* Define if you have usleep() */ -#undef HAVE_USLEEP - -/* Define if you have wcslen function */ -#undef HAVE_WCSLEN - -@BOTTOM@ - -#endif /* __GTKSETUPH__ */ diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index cff69dd1bb..0000000000 --- a/aclocal.m4 +++ /dev/null @@ -1,1064 +0,0 @@ -dnl --------------------------------------------------------------------------- -dnl -dnl Purpose: Cursom macros for autoconf configure script. -dnl Authoer: Vadim Zeitlin -dnl Created: 26.05.99 -dnl Version: $Id$ -dnl --------------------------------------------------------------------------- - -dnl =========================================================================== -dnl include automake macros -dnl =========================================================================== - -dnl Like AC_CONFIG_HEADER, but automatically create stamp file. -AC_DEFUN(AM_CONFIG_HEADER, -[AC_PREREQ([2.12]) -AC_CONFIG_HEADER([$1]) -dnl When config.status generates a header, we must update the stamp-h file. -dnl This file resides in the same directory as the config header -dnl that is generated. We must strip everything past the first ":", -dnl and everything past the last "/". -AC_OUTPUT_COMMANDS(changequote(<<,>>)dnl -ifelse(patsubst(<<$1>>, <<[^ ]>>, <<>>), <<>>, -<>CONFIG_HEADERS" || echo timestamp > patsubst(<<$1>>, <<^\([^:]*/\)?.*>>, <<\1>>)stamp-h<<>>dnl>>, -<>; do - case " <<$>>CONFIG_HEADERS " in - *" <<$>>am_file "*<<)>> - echo timestamp > `echo <<$>>am_file | sed -e 's%:.*%%' -e 's%[^/]*$%%'`stamp-h$am_indx - ;; - esac - am_indx=`expr "<<$>>am_indx" + 1` -done<<>>dnl>>) -changequote([,]))]) - -# Do all the work for Automake. This macro actually does too much -- -# some checks are only needed if your package does certain things. -# But this isn't really a big deal. - -# serial 1 - -dnl Usage: -dnl AM_INIT_AUTOMAKE(package,version, [no-define]) - -AC_DEFUN(AM_INIT_AUTOMAKE, -[AC_REQUIRE([AC_PROG_INSTALL]) -PACKAGE=[$1] -AC_SUBST(PACKAGE) -VERSION=[$2] -AC_SUBST(VERSION) -dnl test to see if srcdir already configured -if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) -fi -ifelse([$3],, -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") -AC_DEFINE_UNQUOTED(VERSION, "$VERSION")) -AC_REQUIRE([AM_SANITY_CHECK]) -AC_REQUIRE([AC_ARG_PROGRAM]) -dnl FIXME This is truly gross. -missing_dir=`cd $ac_aux_dir && pwd` -AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) -AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) -AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) -AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) -AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) -AC_REQUIRE([AC_PROG_MAKE_SET])]) - - -# serial 1 - -AC_DEFUN(AM_PROG_INSTALL, -[AC_REQUIRE([AC_PROG_INSTALL]) -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' -AC_SUBST(INSTALL_SCRIPT)dnl -]) - -# -# Check to make sure that the build environment is sane. -# - -AC_DEFUN(AM_SANITY_CHECK, -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftestfile -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null` - if test "[$]*" = "X"; then - # -L didn't work. - set X `ls -t $srcdir/configure conftestfile` - fi - if test "[$]*" != "X $srcdir/configure conftestfile" \ - && test "[$]*" != "X conftestfile $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "[$]2" = conftestfile - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -rm -f conftest* -AC_MSG_RESULT(yes)]) - -dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) -dnl The program must properly implement --version. -AC_DEFUN(AM_MISSING_PROG, -[AC_MSG_CHECKING(for working $2) -# Run test in a subshell; some versions of sh will print an error if -# an executable is not found, even if stderr is redirected. -# Redirect stdin to placate older versions of autoconf. Sigh. -if ($2 --version) < /dev/null > /dev/null 2>&1; then - $1=$2 - AC_MSG_RESULT(found) -else - $1="$3/missing $2" - AC_MSG_RESULT(missing) -fi -AC_SUBST($1)]) - - -dnl AM_PROG_LEX -dnl Look for flex, lex or missing, then run AC_PROG_LEX and AC_DECL_YYTEXT -AC_DEFUN(AM_PROG_LEX, -[missing_dir=ifelse([$1],,`cd $ac_aux_dir && pwd`,$1) -AC_CHECK_PROGS(LEX, flex lex, "$missing_dir/missing flex") -AC_PROG_LEX -AC_DECL_YYTEXT]) - - -# serial 29 AM_PROG_LIBTOOL -AC_DEFUN(AM_PROG_LIBTOOL, -[AC_REQUIRE([AM_ENABLE_SHARED])dnl -AC_REQUIRE([AM_ENABLE_STATIC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -AC_REQUIRE([AC_PROG_RANLIB])dnl -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AM_PROG_LD])dnl -AC_REQUIRE([AM_PROG_NM])dnl -AC_REQUIRE([AM_SYS_NM_PARSE])dnl -AC_REQUIRE([AM_SYS_SYMBOL_UNDERSCORE])dnl -AC_REQUIRE([AC_PROG_LN_S])dnl -dnl -# Always use our own libtool. -LIBTOOL='$(SHELL) $(top_builddir)/libtool' -AC_SUBST(LIBTOOL)dnl - -# Check for any special flags to pass to ltconfig. -libtool_flags= -test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared" -test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static" -test "$silent" = yes && libtool_flags="$libtool_flags --silent" -test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc" -test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld" - -# Some flags need to be propagated to the compiler or linker for good -# libtool support. -case "$host" in -*-*-irix6*) - # Find out which ABI we are using. - echo '[#]line __oline__ "configure"' > conftest.$ac_ext - if AC_TRY_EVAL(ac_compile); then - case "`/usr/bin/file conftest.o`" in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - rm -rf conftest* - ;; - -*-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, - [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])]) - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - -*-*-cygwin32*) - AM_SYS_LIBTOOL_CYGWIN32 - ;; - -esac - -# enable the --disable-libtool-lock switch - -AC_ARG_ENABLE(libtool-lock, -[ --disable-libtool-lock force libtool not to do file locking], -need_locks=$enableval, -need_locks=yes) - -if test x"$need_locks" = xno; then - libtool_flags="$libtool_flags --disable-lock" -fi - - -# Actually configure libtool. ac_aux_dir is where install-sh is found. -CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \ -LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \ -DLLTOOL="$DLLTOOL" AS="$AS" \ -${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \ -$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \ -|| AC_MSG_ERROR([libtool configure failed]) - -# Redirect the config.log output again, so that the ltconfig log is not -# clobbered by the next message. -exec 5>>./config.log -]) - -# AM_ENABLE_SHARED - implement the --enable-shared flag -# Usage: AM_ENABLE_SHARED[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AM_ENABLE_SHARED, -[define([AM_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(shared, -changequote(<<, >>)dnl -<< --enable-shared[=PKGS] build shared libraries [default=>>AM_ENABLE_SHARED_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_shared=yes ;; -no) enable_shared=no ;; -*) - enable_shared=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_shared=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_shared=AM_ENABLE_SHARED_DEFAULT)dnl -]) - -# AM_DISABLE_SHARED - set the default shared flag to --disable-shared -AC_DEFUN(AM_DISABLE_SHARED, -[AM_ENABLE_SHARED(no)]) - -# AM_DISABLE_STATIC - set the default static flag to --disable-static -AC_DEFUN(AM_DISABLE_STATIC, -[AM_ENABLE_STATIC(no)]) - -# AM_ENABLE_STATIC - implement the --enable-static flag -# Usage: AM_ENABLE_STATIC[(DEFAULT)] -# Where DEFAULT is either `yes' or `no'. If omitted, it defaults to -# `yes'. -AC_DEFUN(AM_ENABLE_STATIC, -[define([AM_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl -AC_ARG_ENABLE(static, -changequote(<<, >>)dnl -<< --enable-static[=PKGS] build static libraries [default=>>AM_ENABLE_STATIC_DEFAULT], -changequote([, ])dnl -[p=${PACKAGE-default} -case "$enableval" in -yes) enable_static=yes ;; -no) enable_static=no ;; -*) - enable_static=no - # Look at the argument we got. We use all the common list separators. - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," - for pkg in $enableval; do - if test "X$pkg" = "X$p"; then - enable_static=yes - fi - done - IFS="$ac_save_ifs" - ;; -esac], -enable_static=AM_ENABLE_STATIC_DEFAULT)dnl -]) - - -# AM_PROG_LD - find the path to the GNU or non-GNU linker -AC_DEFUN(AM_PROG_LD, -[AC_ARG_WITH(gnu-ld, -[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], -test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) -AC_REQUIRE([AC_PROG_CC])dnl -AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AC_CANONICAL_BUILD])dnl -ac_prog=ld -if test "$ac_cv_prog_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - AC_MSG_CHECKING([for ld used by GCC]) - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. -changequote(,)dnl - /* | [A-Za-z]:/*) - # Canonicalize the path of ld - re_direlt='/[^/][^/]*/\.\./' - sub_uncdrive='s%^\([A-Za-z]\):/%//\1/%' -changequote([,])dnl - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - case "$host_os" in - cygwin*) - # Convert to a UNC path for cygwin - test -z "$LD" && LD=`echo X$ac_prog | $Xsed -e "$sub_uncdrive"` - ;; - *) - test -z "$LD" && LD="$ac_prog" - ;; - esac - ;; - ## - ## FIXME: The code fails later on if we try to use an $LD with - ## '\\' path separators. - ## -changequote(,)dnl - [A-Za-z]:[\\]*) - # Canonicalize the path of ld - re_direlt='\\[^\\][^\\]*\\\.\.\(\\\)' - sub_uncdrive='s%^\([A-Za-z]\):\\%//\1/%' -changequote([,])dnl - sub_uncdir='s%\\%/%g' - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%\1%"` - done - case "$host_os" in - cygwin*) - # Convert to a UNC path for cygwin - test -z "$LD" && LD=`echo X$ac_prog | sed -e 's%^X%%' -e "$sub_uncdrive" -e "$sub_uncdir"` - ;; - *) - test -z "$LD" && LD="$ac_prog" - ;; - esac - ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac -elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) -else - AC_MSG_CHECKING([for non-GNU ld]) -fi -AC_CACHE_VAL(ac_cv_path_LD, -[if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog"; then - ac_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" -else - ac_cv_path_LD="$LD" # Let the user override the test with a path. -fi]) -LD="$ac_cv_path_LD" -if test -n "$LD"; then - AC_MSG_RESULT($LD) -else - AC_MSG_RESULT(no) -fi -test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) -AC_SUBST(LD) -AM_PROG_LD_GNU -]) - -AC_DEFUN(AM_PROG_LD_GNU, -[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld, -[# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - ac_cv_prog_gnu_ld=yes -else - ac_cv_prog_gnu_ld=no -fi]) -]) - -# AM_PROG_NM - find the path to a BSD-compatible name lister -AC_DEFUN(AM_PROG_NM, -[AC_MSG_CHECKING([for BSD-compatible nm]) -AC_CACHE_VAL(ac_cv_path_NM, -[if test -n "$NM"; then - # Let the user override the test. - ac_cv_path_NM="$NM" -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - ac_cv_path_NM="$ac_dir/nm -p" - else - ac_cv_path_NM="$ac_dir/nm" - fi - break - fi - done - IFS="$ac_save_ifs" - test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm -fi]) -NM="$ac_cv_path_NM" -AC_MSG_RESULT([$NM]) -AC_SUBST(NM) -]) - -# AM_SYS_NM_PARSE - Check for command ro grab the raw symbol name followed -# by C symbol name from nm. -AC_DEFUN(AM_SYS_NM_PARSE, -[AC_REQUIRE([AC_CANONICAL_HOST])dnl -AC_REQUIRE([AM_PROG_NM])dnl -# Check for command to grab the raw symbol name followed by C symbol from nm. -AC_MSG_CHECKING([command to parse $NM output]) -AC_CACHE_VAL(ac_cv_sys_global_symbol_pipe, -[# These are sane defaults that work on at least a few old systems. -# {They come from Ultrix. What could be older than Ultrix?!! ;)} - -changequote(,)dnl -# Character class describing NM global symbol codes. -ac_symcode='[BCDEGRSTU]' - -# Regexp to match symbols that can be accessed directly from C. -ac_sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -ac_symxfrm='\1 \1' - -# Define system-specific variables. -case "$host_os" in -aix*) - ac_symcode='[BCDTU]' - ;; -sunos* | cygwin32* | mingw32*) - ac_sympat='_\([_A-Za-z][_A-Za-z0-9]*\)' - ac_symxfrm='_\1 \1' - ;; -irix*) - # Cannot use undefined symbols on IRIX because inlined functions mess us up. - ac_symcode='[BCDEGRST]' - ;; -solaris*) - ac_symcode='[BDTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - ac_symcode='[ABCDGISTUW]' -fi - -case "$host_os" in -cygwin32* | mingw32*) - # We do not want undefined symbols on cygwin32. The user must - # arrange to define them via -l arguments. - ac_symcode='[ABCDGISTW]' - ;; -esac -changequote([,])dnl - -# Write the raw and C identifiers. -ac_cv_sys_global_symbol_pipe="sed -n -e 's/^.* $ac_symcode $ac_sympat$/$ac_symxfrm/p'" - -# Check to see that the pipe works correctly. -ac_pipe_works=no -cat > conftest.$ac_ext < $ac_nlist) && test -s "$ac_nlist"; then - - # Try sorting and uniquifying the output. - if sort "$ac_nlist" | uniq > "$ac_nlist"T; then - mv -f "$ac_nlist"T "$ac_nlist" - ac_wcout=`wc "$ac_nlist" 2>/dev/null` -changequote(,)dnl - ac_count=`echo "X$ac_wcout" | sed -e 's,^X,,' -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` -changequote([,])dnl - (test "$ac_count" -ge 0) 2>/dev/null || ac_count=-1 - else - rm -f "$ac_nlist"T - ac_count=-1 - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$ac_nlist" >/dev/null; then - if egrep ' nm_test_func$' "$ac_nlist" >/dev/null; then - cat < conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - sed 's/^.* \(.*\)$/extern char \1;/' < "$ac_nlist" >> conftest.c - - cat <> conftest.c -#if defined (__STDC__) && __STDC__ -# define __ptr_t void * -#else -# define __ptr_t char * -#endif - -/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ -int dld_preloaded_symbol_count = $ac_count; - -/* The mapping between symbol names and symbols. */ -struct { - char *name; - __ptr_t address; -} -changequote(,)dnl -dld_preloaded_symbols[] = -changequote([,])dnl -{ -EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$ac_nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (__ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$ac_objext conftestm.$ac_objext - ac_save_LIBS="$LIBS" - ac_save_CFLAGS="$CFLAGS" - LIBS="conftestm.$ac_objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if AC_TRY_EVAL(ac_link) && test -s conftest; then - ac_pipe_works=yes - else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC - fi - LIBS="$ac_save_LIBS" - CFLAGS="$ac_save_CFLAGS" - else - echo "cannot find nm_test_func in $ac_nlist" >&AC_FD_CC - fi - else - echo "cannot find nm_test_var in $ac_nlist" >&AC_FD_CC - fi - else - echo "cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi -else - echo "$progname: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC -fi -rm -rf conftest* - -# Do not use the global_symbol_pipe unless it works. -test "$ac_pipe_works" = yes || ac_cv_sys_global_symbol_pipe= -]) - -ac_result=yes -if test -z "$ac_cv_sys_global_symbol_pipe"; then - ac_result=no -fi -AC_MSG_RESULT($ac_result) -]) - -# AM_SYS_LIBTOOL_CYGWIN32 - find tools needed on cygwin32 -AC_DEFUN(AM_SYS_LIBTOOL_CYGWIN32, -[AC_CHECK_TOOL(DLLTOOL, dlltool, false) -AC_CHECK_TOOL(AS, as, false) -]) - -# AM_SYS_SYMBOL_UNDERSCORE - does the compiler prefix global symbols -# with an underscore? -AC_DEFUN(AM_SYS_SYMBOL_UNDERSCORE, -[AC_REQUIRE([AM_PROG_NM])dnl -AC_REQUIRE([AM_SYS_NM_PARSE])dnl -AC_MSG_CHECKING([for _ prefix in compiled symbols]) -AC_CACHE_VAL(ac_cv_sys_symbol_underscore, -[ac_cv_sys_symbol_underscore=no -cat > conftest.$ac_ext < $ac_nlist) && test -s "$ac_nlist"; then - # See whether the symbols have a leading underscore. - if egrep '^_nm_test_func' "$ac_nlist" >/dev/null; then - ac_cv_sys_symbol_underscore=yes - else - if egrep '^nm_test_func ' "$ac_nlist" >/dev/null; then - : - else - echo "configure: cannot find nm_test_func in $ac_nlist" >&AC_FD_CC - fi - fi - else - echo "configure: cannot run $ac_cv_sys_global_symbol_pipe" >&AC_FD_CC - fi -else - echo "configure: failed program was:" >&AC_FD_CC - cat conftest.c >&AC_FD_CC -fi -rm -rf conftest* -]) -AC_MSG_RESULT($ac_cv_sys_symbol_underscore) -if test x$ac_cv_sys_symbol_underscore = xyes; then - AC_DEFINE(WITH_SYMBOL_UNDERSCORE,1, - [define if compiled symbols have a leading underscore]) -fi -]) - - -dnl =========================================================================== -dnl GKT+ version test -dnl =========================================================================== - -dnl --------------------------------------------------------------------------- -dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) -dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS -dnl --------------------------------------------------------------------------- -dnl -AC_DEFUN(AM_PATH_GTK, -[dnl -dnl Get the cflags and libraries from the gtk-config script -dnl -AC_ARG_WITH(gtk-prefix,[**--with-gtk-prefix=PFX Prefix where GTK is installed], - gtk_config_prefix="$withval", gtk_config_prefix="") -AC_ARG_WITH(gtk-exec-prefix,[**--with-gtk-exec-prefix=PFX Exec prefix where GTK is installed], - gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") - - if test x$gtk_config_exec_prefix != x ; then - gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" - if test x${GTK_CONFIG+set} != xset ; then - GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config - fi - fi - if test x$gtk_config_prefix != x ; then - gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" - if test x${GTK_CONFIG+set} != xset ; then - GTK_CONFIG=$gtk_config_prefix/bin/gtk-config - fi - fi - - AC_PATH_PROG(GTK_CONFIG, gtk-config, no) - min_gtk_version=ifelse([$1], ,0.99.7,$1) - AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) - no_gtk="" - if test "$GTK_CONFIG" != "no" ; then - GTK_CFLAGS=`$GTK_CONFIG --cflags` - GTK_LIBS=`$GTK_CONFIG --libs` - ac_save_CFLAGS="$CFLAGS" - ac_save_LIBS="$LIBS" - CFLAGS="$CFLAGS $GTK_CFLAGS" - LIBS="$LIBS $GTK_LIBS" -dnl -dnl Now check if the installed GTK is sufficiently new. (Also sanity -dnl checks the results of gtk-config to some extent) -dnl - AC_TRY_RUN([ -#include -#include - -int -main () -{ - int major, minor, micro; - - if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, µ) != 3) { - printf("%s, bad version string\n", "$min_gtk_version"); - exit(1); - } - - if (gtk_minor_version == 1) return FALSE; - - return !((gtk_major_version > major) || - ((gtk_major_version == major) && (gtk_minor_version > minor)) || - ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))); -} -],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) - CFLAGS="$ac_save_CFLAGS" - LIBS="$ac_save_LIBS" - else - no_gtk=yes - fi - if test "x$no_gtk" = x ; then - AC_MSG_RESULT(yes) - ifelse([$2], , :, [$2]) - else - AC_MSG_RESULT(no) - GTK_CFLAGS="" - GTK_LIBS="" - ifelse([$3], , :, [$3]) - fi - AC_SUBST(GTK_CFLAGS) - AC_SUBST(GTK_LIBS) -]) - -dnl =========================================================================== -dnl macros to find the a file in the list of include/lib paths -dnl =========================================================================== - -dnl --------------------------------------------------------------------------- -dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes -dnl to the full name of the file that was found or leaves it empty if not found -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_PATH_FIND_INCLUDES, -[ -ac_find_includes= -for ac_dir in $1; - do - if test -f "$ac_dir/$2"; then - ac_find_includes=$ac_dir - break - fi - done -]) - -dnl --------------------------------------------------------------------------- -dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes -dnl to the full name of the file that was found or leaves it empty if not found -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_PATH_FIND_LIBRARIES, -[ -ac_find_libraries= -for ac_dir in $1; - do - for ac_extension in a so sl; do - if test -f "$ac_dir/lib$2.$ac_extension"; then - ac_find_libraries=$ac_dir - break 2 - fi - done - done -]) - -dnl --------------------------------------------------------------------------- -dnl Path to include, already defined -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_INCLUDE_PATH_EXIST, -[ - ac_path_to_include=$1 - echo "$2" | grep "\-I$1" > /dev/null - result=$? - if test $result = 0; then - ac_path_to_include="" - else - ac_path_to_include="-I$1" - fi -]) - -dnl --------------------------------------------------------------------------- -dnl Path to link, already defined -dnl --------------------------------------------------------------------------- -AC_DEFUN(WX_LINK_PATH_EXIST, -[ - echo "$2" | grep "\-L$1" > /dev/null - result=$? - if test $result = 0; then - ac_path_to_link="" - else - ac_path_to_link="-L$1" - fi -]) - -dnl =========================================================================== -dnl C++ features test -dnl =========================================================================== - -dnl --------------------------------------------------------------------------- -dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" header -dnl or only the old one - it may be generally assumed that if -dnl exists, the other "new" headers (without .h) exist too. -dnl -dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling) -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_CPP_NEW_HEADERS, -[ - if test "$cross_compiling" = "yes"; then - ifelse([$2], , :, [$2]) - else - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - - AC_CHECK_HEADERS(iostream) - - if test "x$HAVE_IOSTREAM" = x ; then - ifelse([$2], , :, [$2]) - else - ifelse([$1], , :, [$1]) - fi - - AC_LANG_RESTORE - fi -]) - -dnl --------------------------------------------------------------------------- -dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type -dnl -dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_CPP_BOOL, -[ - AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - - AC_TRY_RUN([ - int main() - { - bool b = true; - - return 0; - } - ], - [ - AC_DEFINE(HAVE_BOOL) - wx_cv_cpp_bool=yes - ], - wx_cv_cpp_bool=no, - wx_cv_cpp_bool=no - ) - - AC_LANG_RESTORE - ]) - - if test "$wx_cv_cpp_bool" = "yes"; then - AC_DEFINE(HAVE_BOOL) - fi -]) - -dnl --------------------------------------------------------------------------- -dnl WX_CPP_SIZE_T_IS_NOT_INT checks whether size_t and int are different types, -dnl i.e. whether we may overload operator[] on its argument type -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_CPP_SIZE_T_IS_NOT_INT, -[ - AC_CACHE_CHECK([if size_t and int are different types], wx_cv_cpp_sizet_not_int, - [ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - - AC_TRY_RUN([ - #include - - class S - { - public: - S(char *s) { m_s = s; } - - char operator[](size_t n) const { return m_s[n]; } - char operator[](int n) const { return m_s[n]; } - - private: - char *m_s; - }; - - int main() - { - S s("dummy"); - size_t n1 = 2; - int n2 = 3; - - return s[n1] == s[n2]; - } - ], - AC_DEFINE(wxUSE_SIZE_T_STRING_OPERATOR) wx_cv_cpp_sizet_not_int=yes, - wx_cv_cpp_sizet_not_int=no, - wx_cv_cpp_sizet_not_int=no - ) - - AC_LANG_RESTORE - ]) -]) - -dnl --------------------------------------------------------------------------- -dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_C_BIGENDIAN, -[AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian, -[ac_cv_c_bigendian=unknown -# See if sys/param.h defines the BYTE_ORDER macro. -AC_TRY_COMPILE([#include -#include ], [ -#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN - bogus endian macros -#endif], [# It does; now see whether it defined to BIG_ENDIAN or not. -AC_TRY_COMPILE([#include -#include ], [ -#if BYTE_ORDER != BIG_ENDIAN - not big endian -#endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)]) -if test $ac_cv_c_bigendian = unknown; then -AC_TRY_RUN([main () { - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long l; - char c[sizeof (long)]; - } u; - u.l = 1; - exit (u.c[sizeof (long) - 1] == 1); -}], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown) -fi]) -if test $ac_cv_c_bigendian = unknown; then - AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file]) -fi -if test $ac_cv_c_bigendian = yes; then - AC_DEFINE(WORDS_BIGENDIAN) -fi -]) - -dnl --------------------------------------------------------------------------- -dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file -dnl --------------------------------------------------------------------------- - -AC_DEFUN(WX_ARG_CACHE_INIT, - [ - wx_arg_cache_file="configarg.cache" - echo "loading argument cache $wx_arg_cache_file" - rm -f ${wx_arg_cache_file}.tmp - touch ${wx_arg_cache_file}.tmp - touch ${wx_arg_cache_file} - ]) - -AC_DEFUN(WX_ARG_CACHE_FLUSH, - [ - echo "saving argument cache $wx_arg_cache_file" - mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file} - ]) - -dnl this macro checks for a command line argument and caches the result -dnl usage: WX_ARG_WITH(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_WITH, - [ - AC_MSG_CHECKING("for --with-$1") - no_cache=0 - AC_ARG_WITH($1, $2, - [ - if test "$withval" = yes; then - ac_cv_use_$1='$3=yes' - else - ac_cv_use_$1='$3=no' - fi - ], - [ - LINE=`grep "$3" ${wx_arg_cache_file}` - if test "x$LINE" != x ; then - eval "DEFAULT_$LINE" - else - no_cache=1 - fi - - ac_cv_use_$1='$3='$DEFAULT_$3 - ]) - - eval "$ac_cv_use_$1" - if test "$no_cache" != 1; then - echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp - fi - - if test "$$3" = yes; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - ]) - -dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH -dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name) -AC_DEFUN(WX_ARG_ENABLE, - [ - AC_MSG_CHECKING("for --enable-$1") - no_cache=0 - AC_ARG_ENABLE($1, $2, - [ - if test "$enableval" = yes; then - ac_cv_use_$1='$3=yes' - else - ac_cv_use_$1='$3=no' - fi - ], - [ - LINE=`grep "$3" ${wx_arg_cache_file}` - if test "x$LINE" != x ; then - eval "DEFAULT_$LINE" - else - no_cache=1 - fi - - ac_cv_use_$1='$3='$DEFAULT_$3 - ]) - - eval "$ac_cv_use_$1" - if test "$no_cache" != 1; then - echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp - fi - - if test "$$3" = yes; then - AC_MSG_RESULT(yes) - else - AC_MSG_RESULT(no) - fi - ]) - diff --git a/config.guess b/config.guess deleted file mode 100755 index 1ec70cc19e..0000000000 --- a/config.guess +++ /dev/null @@ -1,951 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc. -# -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Written by Per Bothner . -# The master version of this file is at the FSF in /home/gd/gnu/lib. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# The plan is that this can be called by configure scripts if you -# don't specify an explicit system type (host/target name). -# -# Only a few systems have been added to this list; please add others -# (but try to keep the structure clean). -# - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 8/24/94.) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - alpha:OSF1:*:*) - if test $UNAME_RELEASE = "V4.0"; then - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - fi - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - cat <dummy.s - .globl main - .ent main -main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - ${CC-cc} dummy.s -o dummy 2>/dev/null - if test "$?" = 0 ; then - ./dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - fi - rm -f dummy.s dummy - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]` - exit 0 ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit 0 ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-cbm-sysv4 - exit 0;; - amiga:NetBSD:*:*) - echo m68k-cbm-netbsd${UNAME_RELEASE} - exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit 0 ;; - arc64:OpenBSD:*:*) - echo mips64el-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hkmips:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - pmax:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - wgrisc:OpenBSD:*:*) - echo mipsel-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit 0;; - arm32:NetBSD:*:*) - echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - SR2?01:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit 0;; - Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit 0 ;; - NILE:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit 0 ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - i86pc:SunOS:5.*:*) - echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit 0 ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit 0 ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit 0 ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit 0 ;; - atari*:NetBSD:*:*) - echo m68k-atari-netbsd${UNAME_RELEASE} - exit 0 ;; - atari*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:NetBSD:*:*) - echo m68k-sun-netbsd${UNAME_RELEASE} - exit 0 ;; - sun3*:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:NetBSD:*:*) - echo m68k-apple-netbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit 0 ;; - macppc:NetBSD:*:*) - echo powerpc-apple-netbsd${UNAME_RELEASE} - exit 0 ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit 0 ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit 0 ;; - 2020:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit 0 ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - sed 's/^ //' << EOF >dummy.c - int main (argc, argv) int argc; char **argv; { - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - ${CC-cc} dummy.c -o dummy \ - && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ - && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo mips-mips-riscos${UNAME_RELEASE} - exit 0 ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit 0 ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit 0 ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit 0 ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit 0 ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ - -o ${TARGET_BINARY_INTERFACE}x = x ] ; then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else echo i586-dg-dgux${UNAME_RELEASE} - fi - exit 0 ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit 0 ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit 0 ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit 0 ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit 0 ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit 0 ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i?86:AIX:*:*) - echo i386-ibm-aix - exit 0 ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - sed 's/^ //' << EOF >dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo rs6000-ibm-aix3.2.5 - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit 0 ;; - *:AIX:*:4) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'` - if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=4.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit 0 ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit 0 ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit 0 ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit 0 ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit 0 ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit 0 ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit 0 ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit 0 ;; - 9000/[34678]??:HP-UX:*:*) - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/6?? | 9000/7?? | 9000/80[24] | 9000/8?[13679] | 9000/892 ) - sed 's/^ //' << EOF >dummy.c - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (${CC-cc} dummy.c -o dummy 2>/dev/null ) && HP_ARCH=`./dummy` - rm -f dummy.c dummy - esac - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit 0 ;; - 3050*:HI-UX:*:*) - sed 's/^ //' << EOF >dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - echo unknown-hitachi-hiuxwe2 - exit 0 ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit 0 ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit 0 ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit 0 ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit 0 ;; - i?86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit 0 ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit 0 ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit 0 ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit 0 ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit 0 ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit 0 ;; - CRAY*X-MP:*:*:*) - echo xmp-cray-unicos - exit 0 ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ - exit 0 ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} - exit 0 ;; - CRAY-2:*:*:*) - echo cray2-cray-unicos - exit 0 ;; - F300:UNIX_System_V:*:*) - FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit 0 ;; - F301:UNIX_System_V:*:*) - echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` - exit 0 ;; - hp3[0-9][05]:NetBSD:*:*) - echo m68k-hp-netbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit 0 ;; - i?86:BSD/386:*:* | *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit 0 ;; - *:FreeBSD:*:*) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit 0 ;; - *:NetBSD:*:*) - echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - exit 0 ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin32 - exit 0 ;; - i*:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit 0 ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin32 - exit 0 ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit 0 ;; - *:GNU:*:*) - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit 0 ;; - *:Linux:*:*) - # uname on the ARM produces all sorts of strangeness, and we need to - # filter it out. - case "$UNAME_MACHINE" in - arm* | sa110*) UNAME_MACHINE="arm" ;; - esac - - # The BFD linker knows what the default object file format is, so - # first see if it will tell us. - ld_help_string=`ld --help 2>&1` - ld_supported_emulations=`echo $ld_help_string \ - | sed -ne '/supported emulations:/!d - s/[ ][ ]*/ /g - s/.*supported emulations: *// - s/ .*// - p'` - case "$ld_supported_emulations" in - i?86linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 ;; - i?86coff) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 ;; - sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - armlinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - m68klinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;; - elf32ppc) echo "powerpc-unknown-linux-gnu" ; exit 0 ;; - esac - - if test "${UNAME_MACHINE}" = "alpha" ; then - sed 's/^ //' <dummy.s - .globl main - .ent main - main: - .frame \$30,0,\$26,0 - .prologue 0 - .long 0x47e03d80 # implver $0 - lda \$2,259 - .long 0x47e20c21 # amask $2,$1 - srl \$1,8,\$2 - sll \$2,2,\$2 - sll \$0,3,\$0 - addl \$1,\$0,\$0 - addl \$2,\$0,\$0 - ret \$31,(\$26),1 - .end main -EOF - LIBC="" - ${CC-cc} dummy.s -o dummy 2>/dev/null - if test "$?" = 0 ; then - ./dummy - case "$?" in - 7) - UNAME_MACHINE="alpha" - ;; - 15) - UNAME_MACHINE="alphaev5" - ;; - 14) - UNAME_MACHINE="alphaev56" - ;; - 10) - UNAME_MACHINE="alphapca56" - ;; - 16) - UNAME_MACHINE="alphaev6" - ;; - esac - - objdump --private-headers dummy | \ - grep ld.so.1 > /dev/null - if test "$?" = 0 ; then - LIBC="libc1" - fi - fi - rm -f dummy.s dummy - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0 - elif test "${UNAME_MACHINE}" = "mips" ; then - cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - else - # Either a pre-BFD a.out linker (linux-gnuoldld) - # or one that does not give us useful --help. - # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout. - # If ld does not provide *any* "supported emulations:" - # that means it is gnuoldld. - echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:" - test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 - - case "${UNAME_MACHINE}" in - i?86) - VENDOR=pc; - ;; - *) - VENDOR=unknown; - ;; - esac - # Determine whether the default compiler is a.out or elf - cat >dummy.c < -main(argc, argv) - int argc; - char *argv[]; -{ -#ifdef __ELF__ -# ifdef __GLIBC__ -# if __GLIBC__ >= 2 - printf ("%s-${VENDOR}-linux-gnu\n", argv[1]); -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -# else - printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]); -# endif -#else - printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]); -#endif - return 0; -} -EOF - ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 - rm -f dummy.c dummy - fi ;; -# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions -# are messed up and put the nodename in both sysname and nodename. - i?86:DYNIX/ptx:4*:*) - echo i386-sequent-sysv4 - exit 0 ;; - i?86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit 0 ;; - i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} - fi - exit 0 ;; - i?86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` - (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit 0 ;; - i?86:UnixWare:*:*) - if /bin/uname -X 2>/dev/null >/dev/null ; then - (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - fi - echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION} - exit 0 ;; - pc:*:*:*) - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i386. - echo i386-pc-msdosdjgpp - exit 0 ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit 0 ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit 0 ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit 0 ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit 0 ;; - M68*:*:R3V[567]*:*) - test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; - 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4.3${OS_REL} && exit 0 - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && echo i486-ncr-sysv4 && exit 0 ;; - m68*:LynxOS:2.*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit 0 ;; - i?86:LynxOS:2.*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit 0 ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit 0 ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit 0 ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit 0 ;; - PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit 0 ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit 0 ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit 0 ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit 0 ;; - news*:NEWS-OS:*:6*) - echo mips-sony-newsos6 - exit 0 ;; - R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit 0 ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit 0 ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit 0 ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit 0 ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -cat >dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -#if !defined (ultrix) - printf ("vax-dec-bsd\n"); exit (0); -#else - printf ("vax-dec-ultrix\n"); exit (0); -#endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 -rm -f dummy.c dummy - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit 0 ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit 0 ;; - c34*) - echo c34-convex-bsd - exit 0 ;; - c38*) - echo c38-convex-bsd - exit 0 ;; - c4*) - echo c4-convex-bsd - exit 0 ;; - esac -fi - -#echo '(Unable to guess system type)' 1>&2 - -exit 1 diff --git a/config.sub b/config.sub deleted file mode 100755 index f791166458..0000000000 --- a/config.sub +++ /dev/null @@ -1,955 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script, version 1.1. -# Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc. -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -if [ x$1 = x ] -then - echo Configuration name missing. 1>&2 - echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 - echo "or $0 ALIAS" 1>&2 - echo where ALIAS is a recognized configuration type. 1>&2 - exit 1 -fi - -# First pass through any local machine types. -case $1 in - *local*) - echo $1 - exit 0 - ;; - *) - ;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - linux-gnu*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple) - os= - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco5) - os=sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \ - | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \ - | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 | hppa2.0 \ - | alpha | alphaev5 | alphaev56 | we32k | ns16k | clipper \ - | i370 | sh | powerpc | powerpcle | 1750a | dsp16xx | pdp11 \ - | mips64 | mipsel | mips64el | mips64orion | mips64orionel \ - | mipstx39 | mipstx39el \ - | sparc | sparclet | sparclite | sparc64 | v850) - basic_machine=$basic_machine-unknown - ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i[34567]86) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \ - | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \ - | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \ - | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \ - | xmp-* | ymp-* | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* \ - | alpha-* | alphaev5-* | alphaev56-* | we32k-* | cydra-* \ - | ns16k-* | pn-* | np1-* | xps100-* | clipper-* | orion-* \ - | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \ - | sparc64-* | mips64-* | mipsel-* \ - | mips64el-* | mips64orion-* | mips64orionel-* \ - | mipstx39-* | mipstx39el-* \ - | f301-*) - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-cbm - ;; - amigaos | amigados) - basic_machine=m68k-cbm - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-cbm - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | ymp) - basic_machine=ymp-cray - os=-unicos - ;; - cray2) - basic_machine=cray2-cray - os=-unicos - ;; - [ctj]90-cray) - basic_machine=c90-cray - os=-unicos - ;; - crds | unos) - basic_machine=m68k-crds - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - os=-mvs - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i[34567]86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i[34567]86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i[34567]86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i[34567]86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - miniframe) - basic_machine=m68000-convergent - ;; - mipsel*-linux*) - basic_machine=mipsel-unknown - os=-linux-gnu - ;; - mips*-linux*) - basic_machine=mips-unknown - os=-linux-gnu - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - np1) - basic_machine=np1-gould - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pentium | p5 | k5 | nexen) - basic_machine=i586-pc - ;; - pentiumpro | p6 | k6 | 6x86) - basic_machine=i686-pc - ;; - pentiumii | pentium2) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | nexen-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | k6-* | 6x86-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=rs6000-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - xmp) - basic_machine=xmp-cray - os=-unicos - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - mips) - if [ x$os = x-linux-gnu ]; then - basic_machine=mips-unknown - else - basic_machine=mips-mips - fi - ;; - romp) - basic_machine=romp-ibm - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sparc) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ - | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -uxpv* | -beos*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -ctix* | -uts*) - os=-sysv - ;; - -ns2 ) - os=-nextstep2 - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -xenix) - os=-xenix - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - *-acorn) - os=-riscix1.2 - ;; - arm*-semi) - os=-aout - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-ibm) - os=-aix - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f301-fujitsu) - os=-uxpv - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -aix*) - vendor=ibm - ;; - -hpux*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -vxsim* | -vxworks*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os diff --git a/configure.in b/configure.in deleted file mode 100644 index 04073d1d23..0000000000 --- a/configure.in +++ /dev/null @@ -1,2079 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_REVISION($Id$)dnl - -dnl --------------------------------------------------------------------------- -dnl -dnl Top-level configure.in for wxWindows by Robert Roebling, Phil Blecker and -dnl Vadim Zeitlin -dnl -dnl This script is under the wxWindows licence. -dnl -dnl Version: $Id$ -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl initialization -dnl --------------------------------------------------------------------------- - -dnl the file passed to AC_INIT should be speicific to our package -AC_INIT(wx-config.in) - -AC_CANONICAL_HOST - -dnl When making releases do: -dnl -dnl WX_RELEASE_NUMBER += 1 -dnl WX_INTERFACE_AGE += 1 -dnl WX_BINARY_AGE += 1 -dnl -dnl if any functions have been added, do: -dnl -dnl WX_INTERFACE_AGE = 1 - -WX_MAJOR_VERSION_NUMBER=2 -WX_MINOR_VERSION_NUMBER=1 -WX_RELEASE_NUMBER=0 - -WX_INTERFACE_AGE=0 -WX_BINARY_AGE=0 - -WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER - -AM_INIT_AUTOMAKE(wxWindows, $WX_VERSION) - -dnl libtool versioning -LT_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER -LT_CURRENT=`expr $WX_RELEASE_NUMBER - $WX_INTERFACE_AGE` -LT_REVISION=$WX_INTERFACE_AGE -LT_AGE=`expr $WX_BINARY_AGE - $WX_INTERFACE_AGE` -AC_SUBST(LT_RELEASE) -AC_SUBST(LT_CURRENT) -AC_SUBST(LT_REVISION) -AC_SUBST(LT_AGE) - -dnl FIXME this hack suppresses automake 1.4 warning about @LTLIBOBJS@ being -dnl never defined in configure.in (remove these lines to see what I'm -dnl speaking about) - Tom Tromey told me that it will -dnl be fixed in the next release. -LIBOBJS= -LIBOBJS="$LIBOBJS ../common/extended.o" - -dnl ------------------------------------------------------------------------ -dnl Check platform (host system) -dnl ------------------------------------------------------------------------ - -dnl assume Unix -USE_UNIX=1 -USE_LINUX= -USE_SGI= -USE_HPUX= -USE_SYSV= -USE_SVR4= -USE_AIX= -USE_SUN= -USE_SOLARIS= -USE_SUNOS= -USE_ALPHA= -USE_OSF= -USE_BSD= -USE_FREEBSD= -USE_VMS= -USE_ULTRIX= -USE_CYGWIN= -USE_MINGW32= -USE_DATA_GENERAL= - -dnl the list of all available toolkits -ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF WINE" - -dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones -dnl which are either yes or no -DEFAULT_wxUSE_GTK=0 -DEFAULT_wxUSE_MOTIF=0 -DEFAULT_wxUSE_MSW=0 -DEFAULT_wxUSE_WINE=0 - -dnl these are the values which are really default for the given platform - -dnl they're not cached and are only used if no --with-toolkit was given *and* -dnl nothing was found in the cache -DEFAULT_DEFAULT_wxUSE_GTK=0 -DEFAULT_DEFAULT_wxUSE_MOTIF=0 -DEFAULT_DEFAULT_wxUSE_MSW=0 -DEFAULT_DEFAULT_wxUSE_WINE=0 - -case "${host}" in - *-hp-hpux* ) - USE_HPUX=1 - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - AC_DEFINE(__HPUX__) - ;; - *-*-linux* ) - USE_LINUX=1 - AC_DEFINE(__LINUX__) - TMP=`uname -m` - if test "x$TMP" = "xalpha"; then - USE_ALPHA=1 - AC_DEFINE(__ALPHA__) - fi - DEFAULT_DEFAULT_wxUSE_GTK=1 - ;; - *-*-irix5* | *-*-irix6* ) - USE_SGI=1 - USE_SVR4=1 - AC_DEFINE(__SGI__) - AC_DEFINE(__SVR4__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *-*-solaris2* ) - USE_SUN=1 - USE_SOLARIS=1 - USE_SVR4=1 - AC_DEFINE(__SUN__) - AC_DEFINE(__SOLARIS__) - AC_DEFINE(__SVR4__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *-*-sunos4* ) - USE_SUN=1 - USE_SUNOS=1 - USE_BSD=1 - AC_DEFINE(__SUN__) - AC_DEFINE(__SUNOS__) - AC_DEFINE(__BSD__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *-*-freebsd* | *-*-netbsd*) - USE_BSD=1 - USE_FREEBSD=1 - AC_DEFINE(__FREEBSD__) - AC_DEFINE(__BSD__) - DEFAULT_DEFAULT_wxUSE_GTK=1 - ;; - *-*-osf* ) - USE_ALPHA=1 - USE_OSF=1 - AC_DEFINE(__ALPHA__) - AC_DEFINE(__OSF__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *-*-dgux5* ) - USE_ALPHA=1 - USE_SVR4=1 - AC_DEFINE(__ALPHA__) - AC_DEFINE(__SVR4__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *-*-sysv5* ) - USE_SYSV=1 - USE_SVR4=1 - AC_DEFINE(__SYSV__) - AC_DEFINE(__SVR4__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *-*-aix* ) - USE_AIX=1 - USE_SYSV=1 - USE_SVR4=1 - AC_DEFINE(__AIX__) - AC_DEFINE(__SYSV__) - AC_DEFINE(__SVR4__) - DEFAULT_DEFAULT_wxUSE_MOTIF=1 - ;; - *) - AC_MSG_ERROR(unknown system type $(host).) -esac - -if test "$USE_UNIX" = 1 ; then - wxUSE_UNIX=yes - AC_DEFINE(__UNIX__) - EXTRA_VPATH="$EXTRA_VPATH:\$(srcdir)/../unix" - SRC_SUBDIRS="$SRC_SUBDIRS unix" - INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS unix" -fi - -dnl Linux: test for libc5/glibc2: glibc2 has gettext() included -if test "$USE_LINUX" = 1; then - AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2)) -fi - -dnl TODO cross-compiling for Windows not yet supported -AC_DEFINE(__UNIX__) - -dnl if eval "test $USE_CYGWIN != 1 -a $USE_MINGW32 != 1"; then -dnl AC_DEFINE(__UNIX__) -dnl else -dnl AC_DEFINE(__WINDOWS__) -dnl DEFAULT_wxUSE_MSW=1 -dnl fi - -dnl --------------------------------------------------------------------------- -dnl command line options for configure -dnl --------------------------------------------------------------------------- - -dnl the default values for all options - we collect them all here to simplify -dnl modification of the default values (for example, if the defaults for some -dnl platform should be changed, it can be done here too) -dnl -dnl NB: see also DEFAULT_wxUSE variables defined above - -WX_ARG_CACHE_INIT - -dnl useful to test the compilation with minimum options, define as 0 for normal -dnl usage -DEBUG_CONFIGURE=0 -if test $DEBUG_CONFIGURE = 1; then - DEFAULT_wxUSE_THREADS=yes - - DEFAULT_wxUSE_OPTIMISE=no - DEFAULT_wxUSE_PROFILE=no - DEFAULT_wxUSE_DEBUG_FLAG=yes - DEFAULT_wxUSE_DEBUG_INFO=yes - DEFAULT_wxUSE_DEBUG_GDB=yes - DEFAULT_wxUSE_MEM_TRACING=no - DEFAULT_wxUSE_DEBUG_CONTEXT=no - DEFAULT_wxUSE_DMALLOC=no - DEFAULT_wxUSE_APPLE_IEEE=no - - DEFAULT_wxUSE_LOG=yes - - DEFAULT_wxUSE_GUI=yes - - DEFAULT_wxUSE_ZLIB=no - DEFAULT_wxUSE_LIBPNG=no - DEFAULT_wxUSE_LIBGIF=no - DEFAULT_wxUSE_LIBJPEG=no - DEFAULT_wxUSE_ODBC=no - - DEFAULT_wxUSE_FILE=no - DEFAULT_wxUSE_TEXTFILE=no - DEFAULT_wxUSE_TIMEDATE=no - DEFAULT_wxUSE_WAVE=no - DEFAULT_wxUSE_INTL=no - DEFAULT_wxUSE_CONFIG=no - DEFAULT_wxUSE_STREAMS=no - DEFAULT_wxUSE_SOCKETS=no - DEFAULT_wxUSE_SERIAL=no - DEFAULT_wxUSE_JOYSTICK=no - DEFAULT_wxUSE_DYNLIB_CLASS=no - DEFAULT_wxUSE_LONGLONG=no - - DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no - DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no - DEFAULT_wxUSE_POSTSCRIPT=no - - DEFAULT_wxUSE_X_RESOURCES=no - DEFAULT_wxUSE_CLIPBOARD=no - DEFAULT_wxUSE_TOOLTIPS=no - DEFAULT_wxUSE_DRAG_AND_DROP=no - DEFAULT_wxUSE_SPLINES=no - - DEFAULT_wxUSE_MDI_ARCHITECTURE=no - DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no - DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no - - DEFAULT_wxUSE_PROLOGIO=no - DEFAULT_wxUSE_RESOURCES=no - DEFAULT_wxUSE_CONSTRAINTS=no - DEFAULT_wxUSE_IPC=no - DEFAULT_wxUSE_HELP=no - DEFAULT_wxUSE_WXTREE=no - DEFAULT_wxUSE_METAFILE=no - - DEFAULT_wxUSE_COMMONDLGS=no - DEFAULT_wxUSE_MINIFRAME=no - DEFAULT_wxUSE_VALIDATORS=yes - - DEFAULT_wxUSE_ACCEL=no - DEFAULT_wxUSE_CARET=no - DEFAULT_wxUSE_BMPBUTTON=no - DEFAULT_wxUSE_CHECKBOX=no - DEFAULT_wxUSE_CHECKLST=no - DEFAULT_wxUSE_COMBOBOX=no - DEFAULT_wxUSE_GAUGE=no - DEFAULT_wxUSE_GRID=no - DEFAULT_wxUSE_IMAGLIST=no - DEFAULT_wxUSE_LISTBOX=no - DEFAULT_wxUSE_LISTCTRL=no - DEFAULT_wxUSE_NOTEBOOK=no - DEFAULT_wxUSE_RADIOBOX=no - DEFAULT_wxUSE_RADIOBTN=no - DEFAULT_wxUSE_SASH=no - DEFAULT_wxUSE_SCROLLBAR=no - DEFAULT_wxUSE_SLIDER=no - DEFAULT_wxUSE_SPINBTN=no - DEFAULT_wxUSE_SPLITTER=no - DEFAULT_wxUSE_STATBMP=no - DEFAULT_wxUSE_STATBOX=no - DEFAULT_wxUSE_STATLINE=no - DEFAULT_wxUSE_STATUSBAR=yes - DEFAULT_wxUSE_TABDIALOG=no - DEFAULT_wxUSE_TOOLBAR=no - DEFAULT_wxUSE_TREECTRL=no - - DEFAULT_wxUSE_UNICODE=no - DEFAULT_wxUSE_WCSRTOMBS=no -else - DEFAULT_wxUSE_THREADS=yes - - DEFAULT_wxUSE_OPTIMISE=yes - DEFAULT_wxUSE_PROFILE=no - DEFAULT_wxUSE_DEBUG_FLAG=no - DEFAULT_wxUSE_DEBUG_INFO=no - DEFAULT_wxUSE_DEBUG_GDB=no - DEFAULT_wxUSE_MEM_TRACING=no - DEFAULT_wxUSE_DEBUG_CONTEXT=no - DEFAULT_wxUSE_DMALLOC=no - DEFAULT_wxUSE_APPLE_IEEE=yes - - DEFAULT_wxUSE_LOG=yes - - DEFAULT_wxUSE_GUI=yes - - DEFAULT_wxUSE_ZLIB=yes - DEFAULT_wxUSE_LIBPNG=yes - DEFAULT_wxUSE_LIBGIF=yes - DEFAULT_wxUSE_LIBJPEG=yes - DEFAULT_wxUSE_ODBC=no - - DEFAULT_wxUSE_FILE=yes - DEFAULT_wxUSE_TEXTFILE=yes - DEFAULT_wxUSE_TIMEDATE=yes - DEFAULT_wxUSE_WAVE=no - DEFAULT_wxUSE_INTL=yes - DEFAULT_wxUSE_CONFIG=yes - DEFAULT_wxUSE_STREAMS=yes - DEFAULT_wxUSE_SOCKETS=yes - DEFAULT_wxUSE_SERIAL=yes - DEFAULT_wxUSE_JOYSTICK=yes - DEFAULT_wxUSE_DYNLIB_CLASS=yes - DEFAULT_wxUSE_LONGLONG=no - - DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes - DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes - DEFAULT_wxUSE_POSTSCRIPT=yes - - DEFAULT_wxUSE_X_RESOURCES=no - DEFAULT_wxUSE_CLIPBOARD=yes - DEFAULT_wxUSE_TOOLTIPS=yes - DEFAULT_wxUSE_DRAG_AND_DROP=yes - DEFAULT_wxUSE_SPLINES=yes - - DEFAULT_wxUSE_MDI_ARCHITECTURE=yes - DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes - DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes - - DEFAULT_wxUSE_PROLOGIO=yes - DEFAULT_wxUSE_RESOURCES=yes - DEFAULT_wxUSE_CONSTRAINTS=yes - DEFAULT_wxUSE_IPC=yes - DEFAULT_wxUSE_HELP=yes - DEFAULT_wxUSE_WXTREE=yes - DEFAULT_wxUSE_METAFILE=yes - - DEFAULT_wxUSE_COMMONDLGS=yes - DEFAULT_wxUSE_MINIFRAME=yes - DEFAULT_wxUSE_VALIDATORS=yes - - DEFAULT_wxUSE_ACCEL=yes - DEFAULT_wxUSE_CARET=yes - DEFAULT_wxUSE_BMPBUTTON=yes - DEFAULT_wxUSE_CHECKBOX=yes - DEFAULT_wxUSE_CHECKLST=yes - DEFAULT_wxUSE_COMBOBOX=yes - DEFAULT_wxUSE_GAUGE=yes - DEFAULT_wxUSE_GRID=yes - DEFAULT_wxUSE_IMAGLIST=yes - DEFAULT_wxUSE_LISTBOX=yes - DEFAULT_wxUSE_LISTCTRL=yes - DEFAULT_wxUSE_NOTEBOOK=yes - DEFAULT_wxUSE_RADIOBOX=yes - DEFAULT_wxUSE_RADIOBTN=yes - DEFAULT_wxUSE_SASH=yes - DEFAULT_wxUSE_SCROLLBAR=yes - DEFAULT_wxUSE_SLIDER=yes - DEFAULT_wxUSE_SPINBTN=yes - DEFAULT_wxUSE_SPLITTER=yes - DEFAULT_wxUSE_STATBMP=yes - DEFAULT_wxUSE_STATBOX=yes - DEFAULT_wxUSE_STATLINE=yes - DEFAULT_wxUSE_STATUSBAR=yes - DEFAULT_wxUSE_TABDIALOG=no - DEFAULT_wxUSE_TOOLBAR=yes - DEFAULT_wxUSE_TREECTRL=yes - - DEFAULT_wxUSE_UNICODE=no - DEFAULT_wxUSE_WCSRTOMBS=no -fi - -dnl WX_ARG_WITH should be used to select whether an external package will be -dnl used or not, to configure compile-time features of this package itself, -dnl use WX_ARG_ENABLE instead - -dnl ============================ -dnl external package dependecies -dnl ============================ - -dnl TODO should support these options! -dnl -dnl AC_ARG_WITH(gtk-prefix, [ --with-gtk-prefix=PFX prefix where GTK is installed], -dnl gtk_config_prefix="$withval", gtk_config_prefix="") -dnl AC_ARG_WITH(gtk-exec-prefix, -dnl [ --with-gtk-exec-prefix=PFX exec prefix where GTK is installed], gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") - -dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache -dnl these values manually -for toolkit in `echo $ALL_TOOLKITS`; do - LINE=`grep "wxUSE_$toolkit" ${wx_arg_cache_file}` - if test "x$LINE" != x ; then - has_toolkit_in_cache=1 - eval "DEFAULT_$LINE" - eval "CACHE_$toolkit=1" - fi -done - -AC_ARG_WITH(gtk, [ --with-gtk use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(wine, [ --with-wine use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(cygwin, [ --with-cygwin use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1]) -AC_ARG_WITH(mingw, [ --with-mingw use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1]) - -WX_ARG_WITH(dmalloc, [ --with-dmalloc use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC) -WX_ARG_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB) -WX_ARG_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG) -WX_ARG_WITH(libgif, [ --with-libgif use libgif (GIF file format)], wxUSE_LIBGIF) -WX_ARG_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG) -WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL) -WX_ARG_WITH(odbc, [ --with-odbc use the IODBC and wxODBC classes], wxUSE_ODBC) - -dnl ==================== -dnl compile-time options -dnl ==================== - -dnl --------------------------------------------------------------------------- -dnl compile options -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(optimise, [ --enable-optimise create optimised code], wxUSE_OPTIMISE) -WX_ARG_ENABLE(debug, [ --enable-debug same as debug_flag and debug_info], wxUSE_DEBUG) - -if test "$wxUSE_DEBUG" = "yes"; then - DEFAULT_wxUSE_DEBUG_FLAG=yes - DEFAULT_wxUSE_DEBUG_INFO=yes -elif test "$wxUSE_DEBUG" = "no"; then - DEFAULT_wxUSE_DEBUG_FLAG=no - DEFAULT_wxUSE_DEBUG_INFO=no -fi - -WX_ARG_ENABLE(debug_flag, [ --enable-debug_flag set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG) -WX_ARG_ENABLE(debug_info, [ --enable-debug_info create code with debugging information], wxUSE_DEBUG_INFO) -WX_ARG_ENABLE(debug_gdb, [ --enable-debug_gdb create code with extra GDB debugging information], wxUSE_DEBUG_GDB) -WX_ARG_ENABLE(debug_cntxt, [ --enable-debug_cntxt use wxDebugContext], wxUSE_DEBUG_CONTEXT) -WX_ARG_ENABLE(mem_tracing, [ --enable-mem_tracing create code with memory tracing], wxUSE_MEM_TRACING) -WX_ARG_ENABLE(profile, [ --enable-profile create code with profiling information], wxUSE_PROFILE) - -dnl --------------------------------------------------------------------------- -dnl --disable-gui will build only non-GUI part of wxWindows -dnl -dnl NB: this is still in testing stage, don't use if you don't know what you're -dnl doing -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI) - -dnl --------------------------------------------------------------------------- -dnl (small) optional non GUI classes -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL) -WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG) -WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS) -WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC) -WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE) -WX_ARG_ENABLE(timedate, [ --enable-timedate use date/time classes], wxUSE_TIMEDATE) -WX_ARG_ENABLE(wave, [ --enable-wave use wxWave class], wxUSE_WAVE) -WX_ARG_ENABLE(fraction, [ --enable-fraction use wxFraction class], wxUSE_FRACTION) -WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS) -WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG) -WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG) -WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS) -WX_ARG_ENABLE(file, [ --enable-file use wxFile classes], wxUSE_FILE) -WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile classes], wxUSE_TEXTFILE) -WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE) -WX_ARG_ENABLE(wcsrtombs, [ --enable-wcsrtombs use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS) -WX_ARG_ENABLE(wxprintfv, [ --enable-wxprintfv use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF) -WX_ARG_ENABLE(joystick, [ --enable-joystick compile in joystick support (Linux only)], wxUSE_JOYSTICK) - -dnl --------------------------------------------------------------------------- -dnl "big" options (i.e. those which change a lot of things throughout the library) -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(threads, [ --enable-threads use threads], wxUSE_THREADS) -WX_ARG_ENABLE(serial, [ --enable-serial use class serialization], wxUSE_SERIAL) - -dnl --------------------------------------------------------------------------- -dnl "big" GUI options -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(docview, [ --enable-docview use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE) -WX_ARG_ENABLE(help, [ --enable-help use help (using external browser at present)], wxUSE_HELP) -WX_ARG_ENABLE(constraints, [ --enable-constraints use layout-constraints system], wxUSE_CONSTRAINTS) -WX_ARG_ENABLE(printarch, [ --enable-printarch use printing architecture], wxUSE_PRINTING_ARCHITECTURE) -WX_ARG_ENABLE(mdi, [ --enable-mdi use multiple document interface architecture], wxUSE_MDI_ARCHITECTURE) - -dnl --------------------------------------------------------------------------- -dnl PostScript options -dnl --------------------------------------------------------------------------- -WX_ARG_ENABLE(postscript, [ --enable-postscript use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT) - -dnl VZ: these options seem to be always on, if someone wants to change it please do -dnl WX_ARG_ENABLE(PS-normalized, [ --enable-PS-normalized use normalized PS fonts], dnl wxUSE_NORMALIZED_PS_FONTS) -dnl WX_ARG_ENABLE(afmfonts, [ --enable-afmfonts use Adobe Font Metric Font table], dnl wxUSE_AFM_FOR_POSTSCRIPT) - -dnl --------------------------------------------------------------------------- -dnl resources -dnl --------------------------------------------------------------------------- -WX_ARG_ENABLE(prologio, [ --enable-prologio use Prolog IO library], wxUSE_PROLOGIO) -WX_ARG_ENABLE(resources, [ --enable-resources use wxWindows resources], wxUSE_RESOURCES) - -WX_ARG_ENABLE(xresources, [ --enable-xresources use X resources for save (default for gtk+)], wxUSE_X_RESOURCES) - -dnl --------------------------------------------------------------------------- -dnl IPC &c -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard classes], wxUSE_CLIPBOARD) -WX_ARG_ENABLE(dnd, [ --enable-dnd use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP) - -dnl TODO: doesn't work yet -WX_ARG_ENABLE(wxtree, [ --enable-wxtree make wxTree library], wxUSE_WXTREE) - -dnl --------------------------------------------------------------------------- -dnl optional GUI controls (in alphabetical order except the first one) -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(controls, [ --enable-controls use all usual controls], wxUSE_CONTROLS) - -dnl even with --enable-controls, some may be disabled by giving -dnl --disable- later on the command line - but by default all will be -dnl used (and vice versa) -if test "$wxUSE_CONTROLS" = "yes"; then - DEFAULT_wxUSE_ACCEL=yes - DEFAULT_wxUSE_CARET=yes - DEFAULT_wxUSE_COMBOBOX=yes - DEFAULT_wxUSE_BMPBUTTON=yes - DEFAULT_wxUSE_CHECKBOX=yes - DEFAULT_wxUSE_CHECKLISTBOX=yes - DEFAULT_wxUSE_GAUGE=yes - DEFAULT_wxUSE_GRID=yes - DEFAULT_wxUSE_IMAGLIST=yes - DEFAULT_wxUSE_LISTBOX=yes - DEFAULT_wxUSE_LISTCTRL=yes - DEFAULT_wxUSE_NOTEBOOK=yes - DEFAULT_wxUSE_RADIOBOX=yes - DEFAULT_wxUSE_RADIOBTN=yes - DEFAULT_wxUSE_SASH=yes - DEFAULT_wxUSE_SCROLLBAR=yes - DEFAULT_wxUSE_SLIDER=yes - DEFAULT_wxUSE_SPINBTN=yes - DEFAULT_wxUSE_SPLITTER=yes - DEFAULT_wxUSE_STATBMP=yes - DEFAULT_wxUSE_STATBOX=yes - DEFAULT_wxUSE_STATLINE=yes - DEFAULT_wxUSE_STATUSBAR=yes - DEFAULT_wxUSE_TAB_DIALOG=yes - DEFAULT_wxUSE_TOOLBAR=yes - DEFAULT_wxUSE_TOOLTIPS=yes - DEFAULT_wxUSE_TREECTRL=yes -elif test "$wxUSE_CONTROLS" = "no"; then - DEFAULT_wxUSE_ACCEL=no - DEFAULT_wxUSE_CARET=no - DEFAULT_wxUSE_COMBOBOX=no - DEFAULT_wxUSE_BMPBUTTON=no - DEFAULT_wxUSE_CHECKBOX=no - DEFAULT_wxUSE_CHECKLISTBOX=no - DEFAULT_wxUSE_GAUGE=no - DEFAULT_wxUSE_GRID=no - DEFAULT_wxUSE_IMAGLIST=no - DEFAULT_wxUSE_LISTBOX=no - DEFAULT_wxUSE_LISTCTRL=no - DEFAULT_wxUSE_NOTEBOOK=no - DEFAULT_wxUSE_RADIOBOX=no - DEFAULT_wxUSE_RADIOBTN=no - DEFAULT_wxUSE_SASH=no - DEFAULT_wxUSE_SCROLLBAR=no - DEFAULT_wxUSE_SLIDER=no - DEFAULT_wxUSE_SPINBTN=no - DEFAULT_wxUSE_SPLITTER=no - DEFAULT_wxUSE_STATBMP=no - DEFAULT_wxUSE_STATBOX=no - DEFAULT_wxUSE_STATLINE=no - DEFAULT_wxUSE_STATUSBAR=no - DEFAULT_wxUSE_TAB_DIALOG=no - DEFAULT_wxUSE_TOOLBAR=no - DEFAULT_wxUSE_TOOLTIPS=no - DEFAULT_wxUSE_TREECTRL=no -fi - -WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL) -WX_ARG_ENABLE(caret, [ --enable-caret use wxCaret class], wxUSE_CARET) -WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON) -WX_ARG_ENABLE(checkbox, [ --enable-checkbox use wxCheckBox class], wxUSE_CHECKBOX) -WX_ARG_ENABLE(checklst, [ --enable-checklst use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST) -WX_ARG_ENABLE(combobox, [ --enable-combobox use wxChoice and wxComboBox classes], wxUSE_COMBOBOX) -WX_ARG_ENABLE(gauge, [ --enable-gauge use wxGauge class], wxUSE_GAUGE) -WX_ARG_ENABLE(grid, [ --enable-grid use wxGrid class], wxUSE_GRID) -WX_ARG_ENABLE(imaglist, [ --enable-imaglist use wxImageList class], wxUSE_IMAGLIST) -WX_ARG_ENABLE(listbox, [ --enable-listbox use wxListBox class], wxUSE_LISTBOX) -WX_ARG_ENABLE(listctrl, [ --enable-listctrl use wxListCtrl class], wxUSE_LISTCTRL) -WX_ARG_ENABLE(notebook, [ --enable-notebook use wxNotebook class], wxUSE_NOTEBOOK) -WX_ARG_ENABLE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX) -WX_ARG_ENABLE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN) -WX_ARG_ENABLE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH) -WX_ARG_ENABLE(scrollbar, [ --enable-scrollbar use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR) -WX_ARG_ENABLE(slider, [ --enable-slider use wxSlider class], wxUSE_SLIDER) -WX_ARG_ENABLE(spinbtn, [ --enable-spinbtn use wxSpinButton class], wxUSE_SPINBTN) -WX_ARG_ENABLE(splitter, [ --enable-splitter use wxSplitterWindow class], wxUSE_SPLITTER) -WX_ARG_ENABLE(statbmp, [ --enable-statbmp use wxStaticBitmap class], wxUSE_STATBMP) -WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wxUSE_STATBOX) -WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE) -WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR) -WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TABDIALOG) -WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR) -WX_ARG_ENABLE(treectrl, [ --enable-treectrl use wxTreeCtrl class], wxUSE_TREECTRL) - -dnl --------------------------------------------------------------------------- -dnl misc GUI options -dnl --------------------------------------------------------------------------- - -WX_ARG_ENABLE(commondlg, [ --enable-commondlg use common dialogs (wxDirDialog, wxProgressDialog, wxTextDialog, ...)], wxUSE_COMMONDLGS) -WX_ARG_ENABLE(miniframe, [ --enable-miniframe use wxMiniFrame class], wxUSE_MINIFRAME) -WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUSE_TOOLTIPS) -WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES) -WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS) - -dnl cache the options values before (may be) aborting below -WX_ARG_CACHE_FLUSH - -dnl check that no more than one toolkit is given and that if none are given that -dnl we have a default one - -AC_MSG_CHECKING(for toolkit) - -if test "$TOOLKIT_GIVEN" = 1; then - dnl convert "yes" to 1 and "no" to 0 - for toolkit in `echo $ALL_TOOLKITS`; do - var=wxUSE_$toolkit - eval "value=\$${var}" - eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`" - done -else - dnl try to guess the most apropriate toolkit for this platform - for toolkit in `echo $ALL_TOOLKITS`; do - if test "$has_toolkit_in_cache" != 1; then - var=DEFAULT_DEFAULT_wxUSE_$toolkit - else - var=DEFAULT_wxUSE_$toolkit - fi - eval "wxUSE_$toolkit=\$${var}" - done -fi - -dnl we suppose that expr exists... -NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}` - -case "$NUM_TOOLKITS" in - 1) - ;; - 0) - AC_MSG_ERROR(Please specify a toolkit - cannot determine the default for ${host}) - ;; - *) - AC_MSG_ERROR(Please specify at most one toolkit (may be some are cached?)) -esac - -dnl cache the wxUSE_ values too -for toolkit in `echo $ALL_TOOLKITS`; do - var=wxUSE_$toolkit - eval "value=\$${var}" - if test "x$value" != x; then - cache_var=CACHE_$toolkit - eval "cache=\$${cache_var}" - if test "$cache" = 1; then - echo "$var=$value" >> ${wx_arg_cache_file} - fi - if test "$value" = 1; then - AC_MSG_RESULT(`echo $toolkit | tr [[A-Z]] [[a-z]]`) - fi - fi -done - -dnl --------------------------------------------------------------------------- -dnl Checks for programs -dnl --------------------------------------------------------------------------- - -dnl flush the cache because checking for programs might abort -AC_CACHE_SAVE - -dnl cross-compiling support: we're cross compiling if the build system is -dnl different from the target one (assume host and target be always the same) -if eval "test $host != $build"; then - if eval "test $build != NONE"; then - CC="$build-gcc" - CXX="$build-g++" - RANLIB="$build-ranlib" - NM="$build-nm" - fi -fi - -dnl C-compiler checks -dnl defines CC with the compiler to use -dnl defines GCC with yes if using gcc -dnl defines GCC empty if not using gcc -dnl defines CFLAGS -AC_PROG_CC - -CFLAGS=`echo "$CFLAGS" | sed 's/-g//g'` - -dnl what is the c-preprocessor -dnl defines CPP with the c-preprocessor -AC_PROG_CPP - -dnl is -traditional needed for correct compilations -dnl adds -traditional for gcc if needed -AC_PROG_GCC_TRADITIONAL - -AC_LANG_SAVE -AC_LANG_CPLUSPLUS - -dnl C++-compiler checks -dnl defines CXX with the compiler to use -dnl defines GXX with yes if using gxx -dnl defines GXX empty if not using gxx -dnl defines CXXFLAGS -AC_PROG_CXX - -dnl what is the C++-preprocessor -dnl defines CXXCPP with the C++-preprocessor -AC_PROG_CXXCPP - -CXXFLAGS=`echo "$CXXFLAGS" | sed 's/-g//g'` - -AC_LANG_RESTORE - -dnl ranlib command -dnl defines RANLIB with the appropriate command -AC_PROG_RANLIB - -dnl ar command -dnl defines AR with the appropriate command -AC_CHECK_PROG(AR, ar, ar, ar) - -dnl install checks -dnl defines INSTALL with the appropriate command -AC_PROG_INSTALL - -dnl strip command -dnl defines STRIP as strip or nothing if not found -AC_CHECK_PROG(STRIP, strip, strip, true) - -dnl check if VPATH works -AC_MSG_CHECKING("make for VPATH support") -dnl create Makefile -cat - << EOF > confMake -check : file - cp \$? \$@ - cp \$? final_file -EOF - -if test ! -d sub ; then - mkdir sub -fi -echo dummy > sub/file -${MAKE-make} -f confMake VPATH=sub 2> config.log > /dev/null -RESULT=$? -rm -f sub/file check final_file confMake -rmdir sub -if test "$RESULT" = 0; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - AC_MSG_ERROR( -You need a make-utility that is able to use the variable -VPATH correctly. -If your version of make does not support VPATH correctly, -please install GNU-make (possibly as gmake), and start -configure with the following command: -export MAKE=gmake; ./configure for sh-type shells -setenv MAKE gmake; ./configure for csh-type shells -Also please do remember to use gmake in this case every time -you are trying to compile. -) -fi - -dnl YACC checks -dnl defines YACC with the appropriate command -AC_PROG_YACC - -dnl LEX checks -dnl defines LEX with the appropriate command -dnl defines LEXLIB with the appropriate library -dnl this AM version (don't use AC_PROG_LEX!) also -dnl defines YYTEXT_POINTER if yytext is char* -dnl defines LEX_OUTPUT_ROOT as to the base of the -dnl filename output by the lexer -AM_PROG_LEX - -dnl needed for making link to setup.h -AC_PROG_LN_S - -dnl libtool checks (disable static libs by default, this takes too much time...) -AM_DISABLE_STATIC -AM_PROG_LIBTOOL - -dnl --------------------------------------------------------------------------- -dnl Define search path for includes and libraries: all headers and libs will be -dnl looked for in all directories of this path -dnl --------------------------------------------------------------------------- - -SEARCH_INCLUDE="\ - /usr/Motif-1.2/include \ - /usr/Motif-2.1/include \ - \ - /usr/include/Motif1.2 \ - /opt/xpm/include/X11 \ - \ - /usr/Motif1.2/include \ - /usr/dt/include \ - /usr/include/Xm \ - \ - /usr/X11R6/include \ - /usr/X11R5/include \ - /usr/X11R4/include \ - \ - /usr/X11R6/lib \ - /usr/X11R5/lib \ - /usr/X11R4/lib \ - \ - /usr/include/X11R6 \ - /usr/include/X11R5 \ - /usr/include/X11R4 \ - \ - /usr/local/X11R6/include \ - /usr/local/X11R5/include \ - /usr/local/X11R4/include \ - \ - /usr/local/include/X11R6 \ - /usr/local/include/X11R5 \ - /usr/local/include/X11R4 \ - \ - /usr/X11/include \ - /usr/include/X11 \ - /usr/local/X11/include \ - /usr/local/include/X11 \ - \ - /usr/X386/include \ - /usr/x386/include \ - /usr/XFree86/include/X11 \ - \ - /usr/include \ - /usr/local/include \ - \ - /usr/include/gtk \ - /usr/local/include/gtk \ - /usr/include/glib \ - /usr/local/include/glib \ - \ - /usr/include/qt \ - /usr/local/include/qt \ - \ - /usr/include/wine \ - /usr/local/include/wine \ - \ - /usr/unsupported/include \ - /usr/athena/include \ - /usr/local/x11r5/include \ - /usr/lpp/Xamples/include \ - \ - /usr/openwin/include \ - /usr/openwin/share/include \ - " - -SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` " - -dnl ------------------------------------------------------------------------ -dnl Check for libraries -dnl ------------------------------------------------------------------------ - -dnl flush the cache because checking for libraries below might abort -AC_CACHE_SAVE - -dnl ---------------------------------------------------------------- -dnl search for toolkit (widget sets) -dnl ---------------------------------------------------------------- - -TOOLKIT= -TOOLKIT_DEF= -TOOLKIT_DIR= -TOOLKIT_INCLUDE= - -GUI_TK_LIBRARY= -GUI_TK_LINK= - -WXGTK12= - -WXWINE= - -if test "$wxUSE_GTK" = 1; then - dnl avoid calling AM_PATH_GTK twice, so check first for the newer version and - dnl only then, if it wasn't found, for an older one - AM_PATH_GTK(1.2.0, WXGTK12=1) - if test "$WXGTK12" != 1; then - AM_PATH_GTK(1.0.0, , AC_MSG_ERROR(Is gtk-config in path and GTK+ is version 1.2.X or 1.0.X?)) - fi - - TOOLKIT_INCLUDE="$GTK_CFLAGS" - GUI_TK_LIBRARY="$GTK_LIBS" - TOOLKIT=GTK -fi - -if test "$wxUSE_WINE" = 1; then - AC_MSG_CHECKING(for WINE includes) - WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h) - if test "$ac_find_includes" != "" ; then - AC_MSG_RESULT(found $ac_find_includes) - TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE -I$ac_find_includes" - else - AC_MSG_RESULT(no) - AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h) - fi - - XPM_LINK="" - AC_MSG_CHECKING(for Xpm library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) - if test "$ac_find_libraries" != "" ; then - GUI_TK_LIBRARY="-L$ac_find_libraries" - XPM_LINK="-lXpm" - AC_DEFINE(wxHAVE_LIB_XPM) - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_MSG_RESULT(no) - AC_MSG_WARN(library will be compiled without support for images in XPM format) - fi - - MESA_LINK="" - AC_MSG_CHECKING(for Mesa library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL) - if test "$ac_find_libraries" != "" ; then - GUI_TK_LIBRARY="$GUI_TK_LIBRARY -L$ac_find_libraries" - MESA_LINK="-lMesaGL" - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_MSG_ERROR(no) - fi - - GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses -ldl -lm" - GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" - WXWINE=1 - TOOLKIT=MSW -fi - -if test "$wxUSE_MOTIF" = 1; then - dnl find the X11 include and library files - dnl defines x_includes and x_libraries - AC_PATH_XTRA - - if test "$no_x" = "yes"; then - AC_MSG_ERROR(X11 libraries not found, aborting) - fi - - TOOLKIT_INCLUDE="$X_CFLAGS" - GUI_TK_LIBRARY="$X_LIBS" - - AC_MSG_CHECKING(for Motif/Lesstif includes) - WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h) - if test "$ac_find_includes" != "" ; then - AC_MSG_RESULT(found $ac_find_includes) - else - AC_MSG_RESULT(no) - AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h) - fi - - AC_MSG_CHECKING(for Motif/Lesstif library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm) - if test "$ac_find_libraries" != "" ; then - WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE) - WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY) - - CHECK_LINK="$GUI_TK_LIBRARY $ac_path_to_link" - TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include" - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_MSG_RESULT(no) - AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm) - fi - - AC_MSG_CHECKING(for Xt library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt) - if test "$ac_find_libraries" != "" ; then - WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) - CHECK_LINK="$GUI_TK_LIBRARY $ac_path_to_link" - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_MSG_RESULT(no) - AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt) - fi - - XPM_LINK="" - AC_MSG_CHECKING(for Xpm library) - WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm) - if test "$ac_find_libraries" != "" ; then - WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY) - CHECK_LINK="$GUI_TK_LIBRARY $ac_path_to_link" - XPM_LINK="-lXpm " - AC_DEFINE(wxHAVE_LIB_XPM) - AC_MSG_RESULT(found at $ac_find_libraries) - else - AC_MSG_RESULT(no) - AC_MSG_WARN(library will be compiled without support for images in XPM format) - fi - - GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXt -lX11 -lm" - GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK" - TOOLKIT=MOTIF -fi - -dnl the name of the directory where the files for this toolkit live -TOOLKIT_DIR=`echo ${TOOLKIT} | tr "A-Z" "a-z"` - -dnl the symbol which allows conditional compilation for the given toolkit -TOOLKIT_DEF=-D__WX${TOOLKIT}__ - -dnl the name of the (libtool) library -WX_LIBRARY_NAME="libwx_${TOOLKIT_DIR}.la" - -dnl the name of the library to be linked reported by wx-config -WX_LIBRARY="wx_${TOOLKIT_DIR}" - -dnl ------------------------------------------------------------------------ -dnl Check for headers -dnl ------------------------------------------------------------------------ - -dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example) -AC_CHECK_HEADERS(strings.h) -dnl defines HAVE_UNISTD_H -AC_CHECK_HEADERS(unistd.h) -dnl defines HAVE_WCHAR_H -AC_CHECK_HEADERS(wchar.h) -dnl defines HAVE_WCSTR_H -AC_CHECK_HEADERS(wcstr.h) -dnl defines HAVE_FNMATCH_H -AC_CHECK_HEADERS(fnmatch.h) -dnl defines HAVE_X11_XKBLIB_H -AC_CHECK_HEADERS(X11/XKBlib.h) - -dnl --------------------------------------------------------------------------- -dnl Checks for typedefs -dnl --------------------------------------------------------------------------- - -dnl defines mode_t if not already defined -AC_TYPE_MODE_T -dnl defines off_t if not already defined -AC_TYPE_OFF_T -dnl defines pid_t if not already defined -AC_TYPE_PID_T -dnl defines size_t if not already defined -AC_TYPE_SIZE_T -dnl defines uid_t and gid_t if not already defined -AC_TYPE_UID_T - -dnl --------------------------------------------------------------------------- -dnl Checks for structures -dnl --------------------------------------------------------------------------- - -dnl --------------------------------------------------------------------------- -dnl Checks for compiler characteristics -dnl --------------------------------------------------------------------------- - -dnl defines const to be empty if c-compiler does not support const fully -AC_C_CONST -dnl defines inline to a sensible value for the c-compiler -AC_C_INLINE - -dnl check the sizes of integral types (give some reasonable default values for -dnl cross-compiling) -dnl defines the size of certain types of variables in SIZEOF_ -AC_CHECK_SIZEOF(char, 1) -AC_CHECK_SIZEOF(short, 2) -AC_CHECK_SIZEOF(int *, 4) -AC_CHECK_SIZEOF(int, 4) -AC_CHECK_SIZEOF(long, 4) -AC_CHECK_SIZEOF(long long, 0) - -dnl for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling) -WX_C_BIGENDIAN - -dnl check for iostream (as opposed to iostream.h) standard header -WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH)) - -dnl check whether C++ compiler supports bool built-in type -WX_CPP_BOOL - -dnl check whether overloading on size_t/int parameter works -WX_CPP_SIZE_T_IS_NOT_INT - -dnl --------------------------------------------------------------------------- -dnl Check for functions -dnl --------------------------------------------------------------------------- - -dnl check for wcslen -AC_CHECK_LIB(c, wcslen, [ - AC_DEFINE(HAVE_WCSLEN) - WCHAR_LINK="" - ], [ - AC_CHECK_LIB(w, wcslen, [ - AC_DEFINE(HAVE_WCSLEN) - WCHAR_LINK="-lw" - ]) - ]) - -dnl check for vprintf/vsprintf() which are GNU extensions -AC_FUNC_VPRINTF - -dnl check for vsnprintf() - a safe version of vsprintf() -AC_CHECK_FUNCS(vsnprintf, - AC_DEFINE(HAVE_VSNPRINTF), - AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf) - ) - -dnl check for vfork() (even if it's the same as fork() in modern Unices) -AC_CHECK_FUNCS(vfork) - -POSIX4_LINK= -AC_CHECK_FUNCS(nanosleep, AC_DEFINE(HAVE_NANOSLEEP), [ - AC_CHECK_LIB(posix4, nanosleep, [ - AC_DEFINE(HAVE_NANOSLEEP) - POSIX4_LINK="-lposix4" - ], [ - AC_CHECK_FUNCS(usleep, - AC_DEFINE(HAVE_USLEEP), - AC_MSG_WARN([wxSleep() function will not work])) - ]) -]) - -dnl check for uname (POSIX) and gethostname (BSD) -AC_CHECK_FUNCS(uname gethostname, break) - -dnl =========================================================================== -dnl Now we have all the info we need - use it! -dnl =========================================================================== - -dnl flush the cache -AC_CACHE_SAVE - -dnl --------------------------------------------------------------------------- -dnl thread support -dnl --------------------------------------------------------------------------- - -dnl the code below: -dnl defines THREADS_OBJ which contains the object files to build -dnl defines THREADS_LINK which contains the thread library to link with -dnl defines wxUSE_THREADS=1 if thread support is activated - -THREADS_LINK="" -THREADS_OBJ="" - -if test "$wxUSE_THREADS" = "yes"; then - if test "$wxUSE_WINE" = 1; then - AC_MSG_WARN([Threads are not supported under WINE]) - wxUSE_THREADS="no" - fi -fi - -if test "$wxUSE_THREADS" = "yes"; then - dnl find if POSIX threads are available - - dnl standard lib name is pthread - dnl We no longer test for pthread-0.7 as it breaks compilation on some - dnl glibc2 systems, especially for static linkage. - AC_CHECK_LIB(pthread, pthread_create, [ - THREADS_OBJ="threadpsx.lo" - THREADS_LINK="pthread" - ], [ - dnl thread functions are in libc_r under FreeBSD - AC_CHECK_LIB(c_r, pthread_create, [ - THREADS_OBJ="threadpsx.lo" - THREADS_LINK="c_r" - ], [ - dnl VZ: SGI threads are not supported currently - AC_CHECK_HEADER(sys/prctl.h, [ - THREADS_OBJ="threadsgi.lo" - ]) - ]) - ]) - if test "$THREADS_LINK" != ""; then - AC_DEFINE(wxUSE_THREADS) - else - AC_MSG_WARN(No thread support on this system) - fi -fi - -if test -z "$THREADS_OBJ"; then - wxUSE_THREADS=no -fi - -dnl do other tests only if we are using threads -if test "$wxUSE_THREADS" = "yes"; then - dnl must define _REENTRANT for multithreaded code - CFLAGS="${CFLAGS} -D_REENTRANT" - CXXFLAGS="${CXXFLAGS} -D_REENTRANT" - - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread" -dnl LTLIBOBJS="$LTLIBOBJS $THREADS_OBJ" - - dnl define autoconf macro to check for given function in both pthread and - dnl posix4 libraries - dnl usage: AC_FUNC_THREAD(FUNCTION_NAME) - dnl VZ: TODO - dnl AC_DEFUN(AC_FUNC_THREAD, - dnl [ - dnl AC_CHECK_LIB($THREADS_LINK, $1, - dnl AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'), - dnl [AC_CHECK_LIB("posix4", $1, - dnl [AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z')) - dnl POSIX4_LINK="-lposix4" - dnl ]) - dnl ]) - dnl ]) - - AC_CHECK_HEADERS(sched.h) - - AC_CHECK_LIB($THREADS_LINK, sched_yield, - AC_DEFINE(HAVE_SCHED_YIELD), - [AC_CHECK_LIB("posix4", sched_yield, - [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK="-lposix4"], - AC_MSG_WARN(wxThread::Yield will not work properly) - )] - ) - - dnl VZ: we should be checking for all of the following functions instead: - dnl 1. pthread_attr_getschedpolicy - dnl 2. sched_get_priority_min and sched_get_priority_max - dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam - dnl but it seems that if the first one is there, the other ones are too (of - dnl course the proper solution would be to implement AC_FUNC_THREAD above - dnl and do test for them all - anyone?) - AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy, - AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS), - [AC_CHECK_LIB("posix4", pthread_attr_getschedpolicy, - [AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS) POSIX4_LINK="-lposix4"], - AC_MSG_WARN(Setting thread priority will not work) - )] - ) - - AC_CHECK_LIB($THREADS_LINK, pthread_cancel, - AC_DEFINE(HAVE_PTHREAD_CANCEL), - AC_MSG_WARN([wxThread::Kill() will not work properly])) - - AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push, - [ - AC_TRY_COMPILE([#include ], - [ - pthread_cleanup_push(NULL, NULL); - pthread_cleanup_pop(0); - ], [ - wx_cv_func_pthread_cleanup_push=yes - AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS) - ], [ - wx_cv_func_pthread_cleanup_push=no - ]) - ]) - - THREADS_LINK="-l$THREADS_LINK" -fi - -if test "$WXGTK12" = 1 ; then - AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12) -fi - -if test "$WXWINE" = 1 ; then - TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__" -fi - -WXDEBUG= -if test "$wxUSE_DEBUG_GDB" = "yes" ; then - wxUSE_DEBUG_INFO=yes - WXDEBUG="-ggdb" -fi - -if test "$wxUSE_DEBUG_INFO" = "yes" ; then - WXDEBUG="-g" - wxUSE_OPTIMISE=no -fi - -if test "$wxUSE_DEBUG_FLAG" = "yes" ; then - AC_DEFINE(WXDEBUG) - WXDEBUG_DEFINE="-D__WXDEBUG__" -else - WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS" -fi - -if test "$wxUSE_MEM_TRACING" = "yes" ; then - AC_DEFINE(wxUSE_MEMORY_TRACING) - AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck" -fi - -if test "$wxUSE_DMALLOC" = "yes" ; then - DMALLOC_LINK="-ldmalloc" -fi - -PROFILE= -if test "$wxUSE_PROFILE" = "yes" ; then - PROFILE="-pg" -fi - -CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" ` -CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" ` -if test "$wxUSE_OPTIMISE" = "no" ; then - OPTIMISE= -else - if test "$GCC" = yes ; then - OPTIMISE="-O2" - case "${host}" in - i586-*-*|i686-*-* ) - OPTIMISE="${OPTIMISE} " - ;; - esac - else - OPTIMISE="-O" - fi -fi - -dnl --------------------------------------------------------------------------- -dnl Optional libraries -dnl --------------------------------------------------------------------------- - -ZLIB_INCLUDE= -if test "$wxUSE_ZLIB" = "yes" ; then - AC_DEFINE(wxUSE_ZLIB) - EXTRA_VPATH="$EXTRA_VPATH:\${srcdir}/../zlib" - ZLIB_INCLUDE="-I\${srcdir}/../zlib" - LTLIBOBJS="$LTLIBOBJS adler32.lo compress.lo crc32.lo gzio.lo uncompr.lo deflate.lo \ - trees.lo zutil.lo inflate.lo infblock.lo inftrees.lo infcodes.lo \ - infutil.lo inffast.lo" -fi - -PNG_INCLUDE= -if test "$wxUSE_LIBPNG" = "yes" ; then - AC_DEFINE(wxUSE_LIBPNG) - LTLIBOBJS="$LTLIBOBJS png.lo pngset.lo pngget.lo pngrutil.lo pngtrans.lo pngwutil.lo \ - pngread.lo pngrio.lo pngwio.lo pngwrite.lo pngrtran.lo pngwtran.lo \ - pngmem.lo pngerror.lo pngpread.lo" - EXTRA_VPATH="$EXTRA_VPATH:\${srcdir}/../png" - PNG_INCLUDE="-I\${srcdir}/../png" - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png" -fi - -if test "$wxUSE_LIBGIF" = "yes" ; then - AC_DEFINE(wxUSE_LIBGIF) -fi - -JPEG_INCLUDE= -if test "$wxUSE_LIBJPEG" = "yes" ; then - AC_DEFINE(wxUSE_LIBJPEG) - EXTRA_VPATH="$EXTRA_VPATH:\${srcdir}/../jpeg" - JPEG_INCLUDE="-I\${srcdir}/../jpeg" - LTLIBOBJS="$LTLIBOBJS \ - jcomapi.lo jutils.lo jerror.lo jmemmgr.lo jmemnobs.lo \ - jcapimin.lo jcapistd.lo jctrans.lo jcparam.lo jdatadst.lo \ - jcinit.lo jcmaster.lo jcmarker.lo jcmainct.lo jcprepct.lo \ - jccoefct.lo jccolor.lo jcsample.lo jchuff.lo jcphuff.lo \ - jcdctmgr.lo jfdctfst.lo jfdctflt.lo jfdctint.lo \ - jdapimin.lo jdapistd.lo jdtrans.lo jdatasrc.lo \ - jdmaster.lo jdinput.lo jdmarker.lo jdhuff.lo jdphuff.lo \ - jdmainct.lo jdcoefct.lo jdpostct.lo jddctmgr.lo jidctfst.lo \ - jidctflt.lo jidctint.lo jidctred.lo jdsample.lo jdcolor.lo \ - jquant1.lo jquant2.lo jdmerge.lo" -fi - -if test "$wxUSE_OPENGL" = "yes"; then - AC_CHECK_HEADER(GL/gl.h, [ - AC_CHECK_LIB(GL, glInitNames, [ - OPENGL_LINK="-lGL" - AC_DEFINE(wxUSE_OPENGL) - UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src" - ],[ - AC_CHECK_LIB(MesaGL, glInitNames, [ - OPENGL_LINK="-lMesaGL" - AC_DEFINE(wxUSE_OPENGL) - UTILS_SUBDIRS="$UTILS_SUBDIRS glcanvas/src" - ],wxUSE_OPENGL=0) - ],wxUSE_OPENGL=0) - ],wxUSE_OPENGL=0) -fi - -dnl --------------------------------------------------------------------------- -dnl the library may be built without GUI classes at all -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_GUI" = "yes"; then - AC_DEFINE(wxUSE_GUI) - - dnl the things we always pull in the GUI version of the library: - dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the - dnl library really can't be built without those) - dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in - dnl almost any program and the first 2 are needed to show a message box - dnl which want to be always able to do) - dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice - dnl to compile without them (if the app doesn't do any drawing, it doesn't - dnl need the dcs, pens, brushes, ...), this just can't be done now - dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem - dnl 5. misc stuff: timers, settings, message box - dnl LTLIBOBJS="$LTLIBOBJS \ - dnl main.lo app.lo event.lo wincmn.lo window.lo control.lo framecmn.lo frame.lo dialog.lo panelg.lo \ - dnl button.lo stattext.lo textctrl.lo \ - dnl bitmap.lo brush.lo colour.lo cursor.lo data.lo dc.lo dcbase.lo dcclient.lo \ - dnl dcmemory.lo dcscreen.lo font.lo gdicmn.lo gdiobj.lo icon.lo palette.lo pen.lo region.lo \ - dnl menu.lo \ - dnl settings.lo timer.lo msgdlgg.lo" -else - AC_DEFINE(wxUSE_NOGUI) -fi - -dnl --------------------------------------------------------------------------- -dnl Unix/Windows -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_UNIX" = "yes"; then - AC_DEFINE(wxUSE_UNIX) -fi - -dnl --------------------------------------------------------------------------- -dnl Register non-GUI class options for makefiles and setup.h -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_APPLE_IEEE" = "yes"; then - AC_DEFINE(wxUSE_APPLE_IEEE) -fi - -if test "$wxUSE_TIMEDATE" = "yes"; then - AC_DEFINE(wxUSE_TIMEDATE) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest" -fi - -if test "$wxUSE_WAVE" = "yes"; then - AC_DEFINE(wxUSE_WAVE) -fi - -if test "$wxUSE_FILE" = "yes"; then - AC_DEFINE(wxUSE_FILE) -fi - -if test "$wxUSE_TEXTFILE" = "yes"; then - if test "$wxUSE_FILE" != "yes"; then - AC_MSG_WARN(wxTextFile requires wxFile and it won't be compiled without it) - else - AC_DEFINE(wxUSE_TEXTFILE) - fi -fi - -if test "$wxUSE_CONFIG" = "yes" ; then - if test "$wxUSE_TEXTFILE" != "yes"; then - AC_MSG_WARN(wxConfig requires wxTextFile and it won't be compiled without it) - else - AC_DEFINE(wxUSE_CONFIG) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config" - fi -fi - -if test "$wxUSE_INTL" = "yes" ; then - if test "$wxUSE_FILE" != "yes"; then - AC_MSG_WARN(I18n code requires wxFile and it won't be compiled without it) - else - AC_DEFINE(wxUSE_INTL) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat" - fi -fi - -if test "$wxUSE_LOG" = "yes"; then - AC_DEFINE(wxUSE_LOG) -fi - -if test "$wxUSE_LONGLONG" = "yes"; then - AC_DEFINE(wxUSE_LONGLONG) -fi - -if test "$wxUSE_SOCKETS" = "yes" ; then - if test "$wxUSE_THREADS" = "yes" ; then - AC_DEFINE(wxUSE_SOCKETS) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wxsocket" - INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS protocol" - else - AC_MSG_WARN(Socket classes require --with-threads and won't be compiled without it) - wxUSE_SOCKETS=0 - fi -fi - -if test "$wxUSE_STREAMS" = "yes" ; then - AC_DEFINE(wxUSE_STREAMS) -fi - -if test "$wxUSE_SERIAL" = "yes" ; then - AC_DEFINE(wxUSE_SERIAL) -fi - -dnl ------------------------------------------------------------------------ -dnl wxSocket -dnl ------------------------------------------------------------------------ - -if test "$wxUSE_SOCKETS" = "yes"; then - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - dnl determine the type of third argument for getsockname - AC_MSG_CHECKING(the type of the third argument of getsockname) - AC_TRY_COMPILE( - [#include ], - [socklen_t len; getsockname(0, NULL, &len);], - AC_DEFINE(SOCKLEN_T, socklen_t) AC_MSG_RESULT(socklen_t), - AC_TRY_COMPILE( - [#include ], - [size_t len; getsockname(0, NULL, &len);], - AC_DEFINE(SOCKLEN_T, size_t) AC_MSG_RESULT(size_t), - AC_TRY_COMPILE( - [#include ], - [int len; getsockname(0, NULL, &len);], - AC_DEFINE(SOCKLEN_T, int) AC_MSG_RESULT(int), - AC_MSG_RESULT(unknown) - ) - ) - ) - AC_LANG_RESTORE -fi - -dnl --------------------------------------------------------------------------- -dnl Joystick support -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_JOYSTICK" = 1; then - dnl joystick support is only for Linux 2.1.x or greater - AC_CHECK_HEADERS(linux/joystick.h) - if test "$ac_cv_header_linux_joystick_h" = "yes"; then - AC_DEFINE(wxUSE_JOYSTICK) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest" - fi -fi - -dnl ------------------------------------------------------------------------ -dnl DLL support -dnl ------------------------------------------------------------------------ - -HAVE_DL_FUNCS=0 -HAVE_SHL_FUNCS=0 -if test "$wxUSE_DYNLIB_CLASS" = "yes"; then - dnl the test is a bit complicated because we check for dlopen() both with - dnl and without -ldl - AC_CHECK_FUNCS(dlopen, - [AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1], - [AC_CHECK_LIB(dl, dlopen, - [AC_DEFINE(HAVE_DLOPEN) HAVE_DL_FUNCS=1])]) - AC_CHECK_FUNCS( shl_load, - [AC_DEFINE(HAVE_SHL_LOAD) HAVE_DL_FUNCS=1 HAVE_SHL_FUNCS=1]) - - if test "$HAVE_DL_FUNCS" = 0; then - AC_MSG_WARN("--with-dynlib and --with-odbc will be disabled due to missing shared library support") - wxUSE_ODBC=no - wxUSE_DYNLIB_CLASS=no - fi -fi - -if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then - AC_DEFINE(wxUSE_DYNLIB_CLASS) -fi - -dnl --------------------------------------------------------------------------- -dnl String stuff -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_UNICODE" = "yes" ; then - AC_DEFINE(wxUSE_UNICODE) -fi - -if test "$wxUSE_WCSRTOMBS" = "yes" ; then - AC_DEFINE(wxUSE_WCSRTOMBS) -fi - -if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then - AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF) -fi - -dnl ---------------------------------------------------------------- -dnl iODBC support -dnl ---------------------------------------------------------------- - -IODBC_C_SRC="" -if test "$wxUSE_ODBC" = "yes" ; then - AC_DEFINE(wxUSE_ODBC) - EXTRA_VPATH="$EXTRA_VPATH:\$(srcdir)/../iodbc" - LTLIBOBJS="$LTLIBOBJS catalog.lo connect.lo dlf.lo dlproc.lo execute.lo fetch.lo hdbc.lo henv.lo herr.lo hstmt.lo info.lo itrace.lo misc.lo prepare.lo result.lo" - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db" -fi - -dnl ---------------------------------------------------------------- -dnl Register PostScript options for makefiles and setup.h -dnl ---------------------------------------------------------------- - -if test "$wxUSE_POSTSCRIPT" = "yes" ; then - AC_DEFINE(wxUSE_POSTSCRIPT) -fi - -AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT) - -AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS) - -dnl --------------------------------------------------------------------------- -dnl big GUI components: MDI, doc/view, printing, help, ... -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_CONSTRAINTS" = "yes"; then - AC_DEFINE(wxUSE_CONSTRAINTS) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout" -fi - -if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then - AC_DEFINE(wxUSE_MDI_ARCHITECTURE) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi" -fi - -if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then - AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview" - if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi" - fi -fi - -if test "$wxUSE_HELP" = "yes"; then - AC_DEFINE(wxUSE_HELP) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help" -fi - -if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then - AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing" -fi - -if test "$wxUSE_PROLOGIO" = "yes" ; then - AC_DEFINE(wxUSE_PROLOGIO) -fi - -if test "$wxUSE_RESOURCES" = "yes" ; then - if test "$wxUSE_PROLOGIO" = "yes" ; then - AC_DEFINE(wxUSE_RESOURCES) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource" - else - AC_MSG_WARN([wxWindows ressource system requires PrologIO and can't be compiled without it.]) - fi -fi - -if test "$wxUSE_X_RESOURCES" = "yes"; then - AC_DEFINE(wxUSE_X_RESOURCES) -fi - -dnl --------------------------------------------------------------------------- -dnl IPC: IPC, d-n-d, clipboard, ... -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_IPC" = "yes"; then - AC_DEFINE(wxUSE_IPC) -fi - -if test "$wxUSE_CLIPBOARD" = "yes"; then - AC_DEFINE(wxUSE_CLIPBOARD) -fi - -if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then - if test "$WXGTK12" = 1 ; then - AC_DEFINE(wxUSE_DRAG_AND_DROP) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd" - else - AC_MSG_WARN([Drag and drop is only supported under wxGTK 2.1]) - fi -fi - -if test "$wxUSE_SPLINES" = "yes" ; then - AC_DEFINE(wxUSE_SPLINES) -fi - -dnl --------------------------------------------------------------------------- -dnl GUI controls -dnl --------------------------------------------------------------------------- - -if test "$wxUSE_ACCEL" = "yes"; then - AC_DEFINE(wxUSE_ACCEL) -fi - -if test "$wxUSE_CARET" = "yes"; then - AC_DEFINE(wxUSE_CARET) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret" -fi - -if test "$wxUSE_COMBOBOX" = "yes"; then - AC_DEFINE(wxUSE_COMBOBOX) -fi - -if test "$wxUSE_BMPBUTTON" = "yes"; then - AC_DEFINE(wxUSE_BMPBUTTON) -fi - -if test "$wxUSE_CHECKBOX" = "yes"; then - AC_DEFINE(wxUSE_CHECKBOX) -fi - -if test "$wxUSE_CHECKLST" = "yes"; then - AC_DEFINE(wxUSE_CHECKLISTBOX) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst" -fi - -if test "$wxUSE_GAUGE" = "yes"; then - AC_DEFINE(wxUSE_GAUGE) -fi - -if test "$wxUSE_GRID" = "yes"; then - AC_DEFINE(wxUSE_GRID) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid" -fi - -if test "$wxUSE_IMAGLIST" = "yes"; then - AC_DEFINE(wxUSE_IMAGLIST) -fi - -if test "$wxUSE_LISTBOX" = "yes"; then - AC_DEFINE(wxUSE_LISTBOX) -fi - -if test "$wxUSE_LISTCTRL" = "yes"; then - if test "$wxUSE_IMAGLIST" = "yes"; then - AC_DEFINE(wxUSE_LISTCTRL) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl" - else - AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it]) - fi -fi - -if test "$wxUSE_NOTEBOOK" = "yes"; then - AC_DEFINE(wxUSE_NOTEBOOK) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook" -fi - -if test "$wxUSE_RADIOBOX" = "yes"; then - AC_DEFINE(wxUSE_RADIOBOX) -fi - -if test "$wxUSE_RADIOBTN" = "yes"; then - AC_DEFINE(wxUSE_RADIOBTN) -fi - -if test "$wxUSE_SASH" = "yes"; then - AC_DEFINE(wxUSE_SASH) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest" -fi - -if test "$wxUSE_SCROLLBAR" = "yes"; then - AC_DEFINE(wxUSE_SCROLLBAR) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll" -fi - -if test "$wxUSE_SLIDER" = "yes"; then - AC_DEFINE(wxUSE_SLIDER) -fi - -if test "$wxUSE_SPINBTN" = "yes"; then - AC_DEFINE(wxUSE_SPINBTN) -fi - -if test "$wxUSE_SPLITTER" = "yes"; then - AC_DEFINE(wxUSE_SPLITTER) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter" -fi - -if test "$wxUSE_STATBMP" = "yes"; then - AC_DEFINE(wxUSE_STATBMP) -fi - -if test "$wxUSE_STATBOX" = "yes"; then - AC_DEFINE(wxUSE_STATBOX) -fi - -if test "$wxUSE_STATLINE" = "yes"; then - AC_DEFINE(wxUSE_STATLINE) -fi - -if test "$wxUSE_STATUSBAR" = "yes"; then - AC_DEFINE(wxUSE_STATUSBAR) -fi - -if test "$wxUSE_TABDIALOG" = "yes"; then - AC_DEFINE(wxUSE_TAB_DIALOG) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab" -fi - -if test "$wxUSE_TOOLBAR" = "yes"; then - AC_DEFINE(wxUSE_TOOLBAR) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar" -fi - -if test "$wxUSE_TOOLTIPS" = "yes"; then - if test "$wxUSE_MOTIF" = 1; then - AC_MSG_WARN(Tooltips are not supported yet under Motif) - else - if test "$wxUSE_WINE" = 1; then - AC_MSG_WARN(Tooltips are not supported yet under WINE) - else - AC_DEFINE(wxUSE_TOOLTIPS) - fi - fi -fi - -if test "$wxUSE_TREECTRL" = "yes"; then - if test "$wxUSE_IMAGLIST" = "yes"; then - AC_DEFINE(wxUSE_TREECTRL) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl" - else - AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it]) - fi -fi - -dnl --------------------------------------------------------------------------- -dnl misc options -dnl --------------------------------------------------------------------------- - -dnl TODO this is unused for now... -dnl if test "$wxUSE_WXTREE" = "yes"; then -dnl AC_DEFINE(wxUSE_WXTREE) -dnl fi - -if test "$wxUSE_METAFILE" = "yes"; then - AC_DEFINE(wxUSE_METAFILE) -fi - -if test "$wxUSE_COMMONDLGS" = "yes"; then - dnl these classes don't depend on anything at all - - if test "$wxUSE_CONSTRAINTS" != "yes"; then - AC_MSG_WARN(many common dialogs cannot be used without constraints so they won't be compiled without them) - else - AC_DEFINE(wxUSE_CONSTRAINTS) - AC_DEFINE(wxUSE_TEXTDLG) - - if test "$wxUSE_TREECTRL" != "yes"; then - AC_MSG_WARN(wxDirDialog cannot be used without wxTreeCtrl and it won't be compiled without it) - else - AC_DEFINE(wxUSE_DIRDLG) - fi - fi - - if test "$wxUSE_PRINTING_ARCHITECTURE" = "no"; then - AC_MSG_WARN([wxPrintDialog class won't be compiled without printing support]) - fi -fi - -if test "$wxUSE_MINIFRAME" = "yes"; then - AC_DEFINE(wxUSE_MINIFRAME) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram" -fi - -if test "$wxUSE_VALIDATORS" = "yes"; then - AC_DEFINE(wxUSE_VALIDATORS) - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate" -fi - -dnl --------------------------------------------------------------------------- -dnl Output the makefiles and such from the results found above -dnl --------------------------------------------------------------------------- - -dnl if we add wxUSE_GUI in the future, it might be handy to separate the libs -dnl into GUI and non-GUI parts -GUILIBS="$GUI_TK_LIBRARY $OPENGL_LINK $LIBPNG_LINK $ZLIB_LINK $TOOLKIT_LINK" - -dnl all additional libraries (except wxWindows itself) we link with -EXTRA_LIBS="$LIBS $POSIX4_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $GUILIBS" - -dnl all the libraries needed to link wxWindows programs (when the library is not -dnl yet installed) -LIBS="\${top_builddir}/src/${TOOLKIT_DIR}/${WX_LIBRARY_NAME} $EXTRA_LIBS" - -dnl all -I options we must pass to the compiler -INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TOOLKIT_INCLUDE" - -dnl C/C++ compiler options used to compile wxWindows -if test "$ac_cv_prog_gcc" = "yes"; then - dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror" - CXXWARNINGS="-Wall" - dnl there is one weird warning in docview.h:71 which prevents me from doing - dnl this... - dnl CXXWARNINGS="-Wall -Werror" -fi -EXTRA_CFLAGS="$WXDEBUG $PROFILE $OPTIMISE $INCLUDES" - -CFLAGS="$CFLAGS $EXTRA_CFLAGS" -CXXFLAGS="$CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS" - -if test "$wxUSE_GUI" = "yes"; then - dnl TODO add checks that these samples will really compile (i.e. all the - dnl library features they need are present) - - dnl TODO some samples are never built so far: - dnl mfc, nativdlg, oleauto, ownerdrw, proplist - SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS bombs controls dialogs drawing dynamic \ - forty fractal image richedit wxpoem" -fi - -dnl for convenience, sort the files to build in alphabetical order -dnl -dnl another shell command to do it which might be faster but is less clear: -dnl LTLIBOBJS="`for obj in $LTLIBOBJS; do echo $obj; done | sort | sed 's@^@ @'`" -LTLIBOBJS="`echo $LTLIBOBJS | tr -s ' ' | tr ' ' '\n' | sort | tr '\n' ' '`" - -dnl for convenience, sort the samples in alphabetical order -dnl -dnl FIXME For some mysterious reasons, sometimes the directories are duplicated -dnl in this list - hence uniq. But normally, this shouldn't be needed! -SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '`" - -dnl global options -AC_SUBST(WX_MAJOR_VERSION_NUMBER) -AC_SUBST(WX_MINOR_VERSION_NUMBER) -AC_SUBST(WX_RELEASE_NUMBER) -AC_SUBST(WX_LIBRARY_NAME) -AC_SUBST(WX_LIBRARY) - -dnl suppress libtool's informational messages - they duplicate its command line -LIBTOOL="$LIBTOOL --silent" -AC_SUBST(LIBTOOL) - -dnl debugging options -AC_SUBST(WXDEBUG_DEFINE) - -dnl toolkit options -AC_SUBST(TOOLKIT) -AC_SUBST(TOOLKIT_DEF) -AC_SUBST(TOOLKIT_DIR) -AC_SUBST(TOOLKIT_INCLUDE) - -dnl additional sources -AC_SUBST(EXTRA_VPATH) -AC_SUBST(LTLIBOBJS) - -dnl additional subdirectories where we will build -AC_SUBST(SRC_SUBDIRS) -AC_SUBST(INCLUDE_SUBDIRS) -AC_SUBST(UTILS_SUBDIRS) -AC_SUBST(DOCS_SUBDIRS) -AC_SUBST(SAMPLES_SUBDIRS) -AC_SUBST(USER_SUBDIRS) - -dnl additional libraries -AC_SUBST(EXTRA_LIBS) -AC_SUBST(LIBS) - -dnl create the configuration header file from the template -dnl -dnl NB: automake can't work correctly if our header lives in a directory which -dnl is only determined at configure time, so we create it on the top-level -dnl and make a link to allow '#include "wx/setup.h"' to still work -AM_CONFIG_HEADER(setup.h) - -dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE -dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am -dnl - and we do use it) -AC_PROG_MAKE_SET - -dnl create each of the files in the space separated list from the file.in -dnl (the original file name may be overriden by appending another name after a -dnl colon) -AC_OUTPUT([ - wx-config - Makefile - src/Makefile - src/gtk/Makefile - src/motif/Makefile - src/msw/Makefile - include/Makefile - include/wx/Makefile - include/wx/generic/Makefile - include/wx/gtk/Makefile - include/wx/motif/Makefile - include/wx/msw/Makefile - include/wx/protocol/Makefile - include/wx/unix/Makefile - misc/Makefile - misc/afm/Makefile - misc/gs_afm/Makefile - samples/Makefile - samples/bombs/Makefile - samples/caret/Makefile - samples/checklst/Makefile - samples/config/Makefile - samples/controls/Makefile - samples/db/Makefile - samples/dialogs/Makefile - samples/dnd/Makefile - samples/docview/Makefile - samples/docvwmdi/Makefile - samples/drawing/Makefile - samples/dynamic/Makefile - samples/forty/Makefile - samples/fractal/Makefile - samples/grid/Makefile - samples/help/Makefile - samples/image/Makefile - samples/internat/Makefile - samples/joytest/Makefile - samples/layout/Makefile - samples/listctrl/Makefile - samples/mdi/Makefile - samples/memcheck/Makefile - samples/mfc/Makefile - samples/minifram/Makefile - samples/minimal/Makefile - samples/nativdlg/Makefile - samples/notebook/Makefile - samples/oleauto/Makefile - samples/ownerdrw/Makefile - samples/png/Makefile - samples/printing/Makefile - samples/proplist/Makefile - samples/regtest/Makefile - samples/resource/Makefile - samples/richedit/Makefile - samples/sashtest/Makefile - samples/scroll/Makefile - samples/splitter/Makefile - samples/tab/Makefile - samples/taskbar/Makefile - samples/text/Makefile - samples/thread/Makefile - samples/toolbar/Makefile - samples/treectrl/Makefile - samples/typetest/Makefile - samples/validate/Makefile - samples/wxpoem/Makefile - samples/wxsocket/Makefile - ], - [ - chmod +x wx-config -dnl The following line is more elegant but test -e is not supported by all -dnl test varieties. -dnl if test ! -e include/wx/${TOOLKIT_DIR}/setup.h; then - cat include/wx/${TOOLKIT_DIR}/setup.h >/dev/null 2>&1 - if test $? != 0; then - ${LN_S} `pwd`/setup.h include/wx/${TOOLKIT_DIR}/setup.h - fi - ], - [ - LN_S="${ac_cv_prog_LN_S}" - TOOLKIT_DIR="${TOOLKIT_DIR}" - ] - ) - diff --git a/distrib/gtk/README.txt b/distrib/gtk/README.txt deleted file mode 100644 index 843b2cff75..0000000000 --- a/distrib/gtk/README.txt +++ /dev/null @@ -1,310 +0,0 @@ -wxPython README ---------------- - -Introduction ------------- -The code in this subtree is a Python Extension Module that enables the -use of wxWindows from the Python language. So what is Python? Go to -http://www.python.org to learn more but in a nutshell, it's an -extremly cool object oriented language. It's easier than Perl and -nearly as powerful. It runs on more platforms than Java, and by some -reports, is even faster than Java with a JIT compiler! - -So why would you want to use wxPython over just C++ and wxWindows? -Personally I prefer using Python for everything. I only use C++ when -I absolutly have to eek more performance out of an algorithm, and even -then I ususally 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 wxWindows apps. With C++ you have to -continuously go though the edit-compile-link-run cycle, which can be -quite time comsuming. 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 with C++. Converting a wxPython app to a -C++/wxWindows app should be a straight forward task. - -This extension module attempts to mirror the class heiarchy of -wxWindows as closely as possble. 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. Unfortunatly, I wasn't able -to match things exactly because of differences in the languages, but -the differences should be easy to absorb because they are natural to -Python. For example, some methods that return mutliple values via -argument pointers in C++ will return a tuple of values in Python. -These differences have not been documented yet so if something isn't -working the same as described in the wxWindows documents the best -thing to do is to scan through the wxPython sources, especially the .i -files, as that is where the interfaces for wxPython are defined. - -I have reports of successfully embedding wxPython within a wxWindows -C++ app on GTK. It hasn't yet been attempted on MSW (to my knowledge) -so I don't know how successful such an attempt would be. However it -is certainly possible. - - - -Getting Help ------------- - -Since wxPython is a blending of multiple technologies, help comes from -multiple sources. See the http://alldunn.com/wxPython 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 - - http://starship.python.net/mailman/listinfo/wxpython-users - -Or you can send mail directly to the list using this address: - - wxpython-users@starship.python.net - - - -What's new in 2.0b9 -------------------- -Bug fix for ListCtrl in test4.py (Was a missing file... DSM!) - -Bug fix for occassional GPF on Win32 systems upon termination of a -wxPython application. - -Added wxListBox.GetSelections returning selections as a Tuple. - -Added a wxTreeItemData that is able to hold any Python object and be -associated with items in a wxTreeCtrl. Added test pytree.py to show -this feature off. - -Added wxSafeYield function. - -OpenGL Canvas can be optionally compiled in to wxPython. - -Awesome new Demo Framework for showing off wxPython and for learning -how it all works. - -The pre-built Win32 version is no longer distributing the wxWindows -DLL. It is statically linked with the wxWindows library instead. - -Added a couple missing items from the docs. - -Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler, -wxGIFHandler and wxBMPHandler. - -Added new methods to wxTextCtrl. - - - -What's new in 2.0b8 -------------------- -Support for using Python threads in wxPython apps. - -Several missing methods from various classes. - -Various bug fixes. - - - -What's new in 2.0b7 -------------------- -Added DLG_PNT and DLG_SZE convienience methods to wxWindow class. - -Added missing constructor and other methods for wxMenuItem. - - - -What's new in 2.0b6 -------------------- -Just a quickie update to fix the self-installer to be compatible with -Python 1.5.2b2's Registry settings. - - -What's new in 2.0b5 -------------------- -Well obviously the numbering scheme has changed. I did this to -reflect the fact that this truly is the second major revision of -wxPython, (well the third actually if you count the one I did for -wxWindows 1.68 and then threw away...) and also that it is associated -with the 2.0 version of wxWindows. - -I have finally started documenting wxPython. There are several pages -in the wxWindows documentation tree specifically about wxPython, and I -have added notes within the class references about where wxPython -diverges from wxWindows. - -Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -window handle. If you can get the window handle into the python code, -it should just work... More news on this later. - -Added wxImageList, wxToolTip. - -Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -wxRegConfig class. - -As usual, some bug fixes, tweaks, etc. - - - -What's new in 0.5.3 -------------------- -Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. - -Various cleanup, tweaks, minor additions, etc. to maintain -compatibility with the current wxWindows. - - - -What's new in 0.5.0 -------------------- -Changed the import semantics from "from wxPython import *" to "from -wxPython.wx import *" This is for people who are worried about -namespace pollution, they can use "from wxPython import wx" and then -prefix all the wxPython identifiers with "wx." - -Added wxTaskbarIcon for wxMSW. - -Made the events work for wxGrid. - -Added wxConfig. - -Added wxMiniFrame for wxGTK. - -Changed many of the args and return values that were pointers to gdi -objects to references to reflect changes in the wxWindows API. - -Other assorted fixes and additions. - - - - -What's new in 0.4.2 -------------------- - -wxPython on wxGTK works!!! Both dynamic and static on Linux and -static on Solaris have been tested. Many thanks go to Harm - for his astute detective work on tracking -down a nasty DECREF bug. Okay so I have to confess that it was just a -DSM (Dumb Stupid Mistake) on my part but it was nasty none the less -because the behavior was so different on different platforms. - - -The dynamicly loaded module on Solaris is still segfaulting, so it -must have been a different issue all along... - - - -What's New in 0.4 ------------------ - -1. Worked on wxGTK compatibility. It is partially working. On a -Solaris/Sparc box wxPython is working but only when it is statically -linked with the Python interpreter. When built as a dyamically loaded -extension module, things start acting weirdly and it soon seg-faults. -And on Linux both the statically linked and the dynamically linked -version segfault shortly after starting up. - -2. Added Toolbar, StatusBar and SplitterWindow classes. - -3. Varioius bug fixes, enhancements, etc. - - - -Build Instructions ------------------- -I used SWIG (http://www.swig.org) to create the source code for the -extension module. This enabled me to only have to deal with a small -amount of code and only have to bother with the exceptional issues. -SWIG takes care of the rest and generates all the repetative code for -me. You don't need SWIG to build the extension module as all the -generated C++ code is included under the src directory. - -I added a few minor features to SWIG to control some of the code -generation. If you want to playaround with this the patches are in -wxPython/SWIG.patches and they should be applied to the 1.1p5 version -of SWIG. These new patches are documented at -http://starship.skyport.net/crew/robind/python/#swig, and they should -also end up in the 1.2 version of SWIG. - -wxPython is organized as a Python package. This means that the -directory containing the results of the build process should be a -subdirectory of a directory on the PYTHONPATH. (And preferably should -be named wxPython.) You can control where the build process will dump -wxPython by setting the TARGETDIR makefile variable. The default is -$(WXWIN)/utils/wxPython, where this README.txt is located. If you -leave it here then you should add $(WXWIN)/utils to your PYTHONPATH. -However, you may prefer to use something that is already on your -PYTHONPATH, such as the site-packages directory on Unix systems. - - -Win32 ------ - -1. Build wxWindows with wxUSE_RESOURCE_LOADING_IN_MSW set to 1 in -include/wx/msw/setup.h so icons can be loaded dynamically. While -there, make sure wxUSE_OWNER_DRAWN is also set to 1. - -2. Change into the $(WXWIN)/utils/wxPython/src directory. - -3. Edit makefile.vc and specify where your python installation is at. -You may also want to fiddle with the TARGETDIR variable as described -above. - -4. Run nmake -f makefile.vc - -5. If it builds successfully, congratulations! Move on to the next -step. If not then you can try mailing me for help. Also, I will -always have a pre-built win32 version of this extension module at -http://starship.skyport.net/crew/robind/python. - -6. Change to the $(WXWIN)/utils/wxPython/tests directory. - -7. Try executing the test programs. Note that some of these print -diagnositc or test info to standard output, so they will require the -console version of python. For example: - - python test1.py - -To run them without requiring a console, you can use the pythonw.exe -version of Python either from the command line or from a shortcut. - - - -Unix ----- - -1. Change into the $(WXWIN)/utils/wxPython/src directory. - -2. Edit Setup.in and ensure that the flags, directories, and toolkit -options are correct. See the above commentary about TARGETDIR. There -are a few sample Setup.in.[platform] files provided. - -[I've written a Setup which should work in almost all Unix systems, - so that the steps 1 and 2 don't have to be done. Robert Roebling. ] - -3. Run this command to generate a makefile: - - make -f Makefile.pre.in boot - -4. Run these commands to build and then install the wxPython extension -module: - - make - -4b. Log in as root. [Robert Roebling] - - make install - -4c. Log out from root. [Robert Roebling] - - -5. Change to the $(WXWIN)/utils/wxPython/tests directory. - -6. Try executing the test programs. For example: - - python test1.py - - ------------------------- -10/20/1998 - -Robin Dunn -robin@alldunn.com - - - diff --git a/distrib/gtk/Setup b/distrib/gtk/Setup deleted file mode 100644 index ed7cf93ccd..0000000000 --- a/distrib/gtk/Setup +++ /dev/null @@ -1,47 +0,0 @@ -# This file gives the details of what is needed to build this extension -# module so the Makefile can be created. - -### -### This file should be created by configure. Currently it is tweaked by hand. -### - -*shared* - -CCC=g++ -WXWIN=~/wxWindows -GENCODEDIR=gtk -srcdir=$(GENCODEDIR) -WX_CONFIG_CFLAGS=`wx-config --cflags` `gtk-config --cflags` -WX_CONFIG_LIBS=`wx-config --libs` - -# Depending on how your Python was built, you may have to set this -# value to use the C++ driver to link with instead of the default -# C driver. For example: -MY_LDSHARED=$(CCC) -shared $(WX_CONFIG_LIBS) - -# Same as above, but for statically linking Python and wxPython together, -# in other words, if you comment out the *shared* above. If this is the -# case then you should ensure that the main() function is Python's, not -# wxWindows'. You can rebuild $(WXWIN)/src/gtk/app.cpp with NOMAIN defined -# to force this... -MY_LINKCC=$(CCC) - - -## Pick one of these, or set your own. This is where the -## wxPython module should be installed. It should be a -## subdirectory named wxPython. -#TARGETDIR=.. -#TARGETDIR=$(BINLIBDEST)/site-packages/wxPython -TARGETDIR=$(BINLIBDEST)/wxPython - -wxc wx.cpp helpers.cpp windows.cpp events.cpp misc.cpp gdi.cpp \ - mdi.cpp controls.cpp controls2.cpp windows2.cpp cmndlgs.cpp \ - frames.cpp stattool.cpp windows3.cpp image.cpp \ - utils.cpp \ - ## comment out the next line to disable wxGLCanvas - ##_glcanvas.cpp glcanvas.cpp -DWITH_GLCANVAS -lGL -lGLU \ - -I. $(WX_CONFIG_CFLAGS) -I/usr/local/lib/glib/include \ - -DSWIG_GLOBAL -DWXP_WITH_THREAD $(SEPARATE) -Xlinker $(WX_CONFIG_LIBS) - - - diff --git a/distrib/gtk/copy_src b/distrib/gtk/copy_src deleted file mode 100755 index ca607d6b66..0000000000 --- a/distrib/gtk/copy_src +++ /dev/null @@ -1,775 +0,0 @@ -#! /bin/sh -# -# This script is creates a dir tree in ~/wxgtk_dist which -# can then be packed into an archive - -echo -------- -echo This script will copy the wxGTK release files into ~/wxgtk_dist -echo -------- -echo - -mkdir ~/wxgtk_dist -mkdir ~/wxgtk_dist/wxGTK - -echo Base dir.. - -cd ../.. -cp wxGTK.spec ~/wxgtk_dist/wxGTK -cp Makefile.am ~/wxgtk_dist/wxGTK -cp acconfig.h ~/wxgtk_dist/wxGTK -cp aclocal.m4 ~/wxgtk_dist/wxGTK -cp configure.in ~/wxgtk_dist/wxGTK -cp configure ~/wxgtk_dist/wxGTK -cp config.sub ~/wxgtk_dist/wxGTK -cp config.guess ~/wxgtk_dist/wxGTK -cp install-sh ~/wxgtk_dist/wxGTK -cp ltconfig ~/wxgtk_dist/wxGTK -cp ltmain.sh ~/wxgtk_dist/wxGTK -cp missing ~/wxgtk_dist/wxGTK -cp mkinstalldirs ~/wxgtk_dist/wxGTK -cp wx-config.in ~/wxgtk_dist/wxGTK -cp setup.h.in ~/wxgtk_dist/wxGTK -cp stamp-h.in ~/wxgtk_dist/wxGTK -cp Makefile.in ~/wxgtk_dist/wxGTK - -echo Docs.. - -cd docs/gtk -cp COPYING.LIB ~/wxgtk_dist/wxGTK -cp install.txt ~/wxgtk_dist/wxGTK/INSTALL.txt -cp licence.txt ~/wxgtk_dist/wxGTK/LICENCE.txt -cp readme.txt ~/wxgtk_dist/wxGTK/README.txt -cp todo.txt ~/wxgtk_dist/wxGTK/TODO.txt -cd .. -cp symbols.txt ~/wxgtk_dist/wxGTK/SYMBOLS.txt -cd .. - -echo Include dir.. - -mkdir ~/wxgtk_dist/wxGTK/include -cd include -cp Makefile.am ~/wxgtk_dist/wxGTK/include -cp Makefile.in ~/wxgtk_dist/wxGTK/include - -mkdir ~/wxgtk_dist/wxGTK/include/wx -cd wx -cp *.h ~/wxgtk_dist/wxGTK/include/wx -cp *.cpp ~/wxgtk_dist/wxGTK/include/wx -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx - -mkdir ~/wxgtk_dist/wxGTK/include/wx/generic -cd generic -cp *.h ~/wxgtk_dist/wxGTK/include/wx/generic -cp *.xpm ~/wxgtk_dist/wxGTK/include/wx/generic -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/generic -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/generic -cd .. - -mkdir ~/wxgtk_dist/wxGTK/include/wx/unix -cd unix -cp *.h ~/wxgtk_dist/wxGTK/include/wx/unix -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/unix -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/unix -cd .. - -mkdir ~/wxgtk_dist/wxGTK/include/wx/gtk -cd gtk -cp *.h ~/wxgtk_dist/wxGTK/include/wx/gtk -rm ~/wxgtk_dist/wxGTK/include/wx/gtk/setup.h -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/gtk -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/gtk -cd .. - -mkdir ~/wxgtk_dist/wxGTK/include/wx/motif -cd motif -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/motif -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/motif -cd .. - -mkdir ~/wxgtk_dist/wxGTK/include/wx/msw -cd msw -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/msw -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/msw -cd .. - -mkdir ~/wxgtk_dist/wxGTK/include/wx/protocol -cd protocol -cp *.h ~/wxgtk_dist/wxGTK/include/wx/protocol -cp Makefile.am ~/wxgtk_dist/wxGTK/include/wx/protocol -cp Makefile.in ~/wxgtk_dist/wxGTK/include/wx/protocol -cd .. - -cd ../.. - -echo Misc dir.. - -mkdir ~/wxgtk_dist/wxGTK/misc -cd misc -cp Makefile.am ~/wxgtk_dist/wxGTK/misc -cp Makefile.in ~/wxgtk_dist/wxGTK/misc -mkdir ~/wxgtk_dist/wxGTK/misc/afm -cd afm -cp *.afm ~/wxgtk_dist/wxGTK/misc/afm -cp Makefile.am ~/wxgtk_dist/wxGTK/misc/afm -cp Makefile.in ~/wxgtk_dist/wxGTK/misc/afm -cd .. -mkdir ~/wxgtk_dist/wxGTK/misc/gs_afm -cd gs_afm -cp *.afm ~/wxgtk_dist/wxGTK/misc/gs_afm -cp Makefile.am ~/wxgtk_dist/wxGTK/misc/gs_afm -cp Makefile.in ~/wxgtk_dist/wxGTK/misc/gs_afm -cd ../.. - -echo Src dir.. - -cd src -mkdir ~/wxgtk_dist/wxGTK/src -cp Makefile.am ~/wxgtk_dist/wxGTK/src -cp Makefile.in ~/wxgtk_dist/wxGTK/src - -cd gtk -mkdir ~/wxgtk_dist/wxGTK/src/gtk -cp Makefile.am ~/wxgtk_dist/wxGTK/src/gtk -cp Makefile.in ~/wxgtk_dist/wxGTK/src/gtk -cp *.xbm ~/wxgtk_dist/wxGTK/src/gtk -cp *.c ~/wxgtk_dist/wxGTK/src/gtk -cp *.inc ~/wxgtk_dist/wxGTK/src/gtk -cp *.cpp ~/wxgtk_dist/wxGTK/src/gtk -cd .. - -cd common -mkdir ~/wxgtk_dist/wxGTK/src/common -cp glob.inc ~/wxgtk_dist/wxGTK/src/common -cp lexer.l ~/wxgtk_dist/wxGTK/src/common -cp parser.y ~/wxgtk_dist/wxGTK/src/common -cp extended.c ~/wxgtk_dist/wxGTK/src/common -cp *.cpp ~/wxgtk_dist/wxGTK/src/common -cd .. - -cd unix -mkdir ~/wxgtk_dist/wxGTK/src/unix -cp *.cpp ~/wxgtk_dist/wxGTK/src/unix -cd .. - -cd generic -mkdir ~/wxgtk_dist/wxGTK/src/generic -cp *.cpp ~/wxgtk_dist/wxGTK/src/generic -cd .. - -cd iodbc -mkdir ~/wxgtk_dist/wxGTK/src/iodbc -cp * ~/wxgtk_dist/wxGTK/src/iodbc -cd .. - -cd zlib -mkdir ~/wxgtk_dist/wxGTK/src/zlib -cp * ~/wxgtk_dist/wxGTK/src/zlib -cd .. - -cd png -mkdir ~/wxgtk_dist/wxGTK/src/png -cp * ~/wxgtk_dist/wxGTK/src/png -cd .. - -cd jpeg -mkdir ~/wxgtk_dist/wxGTK/src/jpeg -cp * ~/wxgtk_dist/wxGTK/src/jpeg -cd .. - -cd .. - -echo Utils dir.. - -cd utils -mkdir ~/wxgtk_dist/wxGTK/utils -cp Makefile.am ~/wxgtk_dist/wxGTK/utils -cp Makefile.in ~/wxgtk_dist/wxGTK/utils - -echo wxGLCanvas.. - -cd glcanvas -mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas -cp ./docs/notes.txt ~/wxgtk_dist/wxGTK/utils/glcanvas/NOTES.txt - -mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk -cp ./gtk/glcanvas.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk -cp ./gtk/glcanvas.h ~/wxgtk_dist/wxGTK/utils/glcanvas/gtk - -mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples -mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube -mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf -mkdir ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin - -cd samples/cube -cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube -cp cube.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube -cp cube.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/cube -cd .. - -cd isosurf -cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf -cp isosurf.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf -cp isosurf.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf -cp isosurf.dat.gz ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/isosurf -cd .. - -cd penguin -cp Makefile ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp penguin.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp penguin.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp trackball.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp trackball.c ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp lw.h ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp lw.cpp ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cp penguin.lwo ~/wxgtk_dist/wxGTK/utils/glcanvas/samples/penguin -cd ../../.. - -echo DialogEd.. - -cd dialoged/src -mkdir ~/wxgtk_dist/wxGTK/utils/dialoged -cp Makefile ~/wxgtk_dist/wxGTK/utils/dialoged -cp dialoged.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp dlghndlr.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp edlist.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp edtree.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp reseditr.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp reswrite.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp symbtabl.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp winprop.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp winstyle.cpp ~/wxgtk_dist/wxGTK/utils/dialoged -cp dialoged.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp dlghndlr.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp edlist.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp edtree.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp reseditr.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp symbtabl.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp winprop.h ~/wxgtk_dist/wxGTK/utils/dialoged -cp winstyle.h ~/wxgtk_dist/wxGTK/utils/dialoged - -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/utils/dialoged/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/utils/dialoged/bitmaps -cd ../../.. - -echo wxPython.. - -cd wxPython -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython -cp README.txt ~/wxgtk_dist/wxGTK/utils/wxPython - -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/src -cp ./src/* ~/wxgtk_dist/wxGTK/utils/wxPython/src - -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/src/gtk -cp ./src/gtk/* ~/wxgtk_dist/wxGTK/utils/wxPython/src/gtk - -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/lib -cp ./lib/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/lib - -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests -cp ./tests/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/tests -cp ./tests/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/tests - -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo -cp ./demo/README.txt ~/wxgtk_dist/wxGTK/utils/wxPython/demo -cp ./demo/*.py ~/wxgtk_dist/wxGTK/utils/wxPython/demo -cp ./demo/*.pyc ~/wxgtk_dist/wxGTK/utils/wxPython/demo -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps -cp ./demo/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/demo/bitmaps - -mkdir ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps -cp ./tests/bitmaps/* ~/wxgtk_dist/wxGTK/utils/wxPython/tests/bitmaps -cd .. - -echo wxOLE.. - -cd wxOLE -mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE -mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk -cp ./gtk/wxole.* ~/wxgtk_dist/wxGTK/utils/wxOLE/gtk -mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples -mkdir ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet -cp ./samples/servlet/Makefile ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet -cp ./samples/servlet/*.xpm ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet -cp ./samples/servlet/*.cpp ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet -cp ./samples/servlet/*.gnorba ~/wxgtk_dist/wxGTK/utils/wxOLE/samples/servlet - -cd ../.. - - -echo Samples dir.. - -cd samples -mkdir ~/wxgtk_dist/wxGTK/samples -cp Makefile.am ~/wxgtk_dist/wxGTK/samples -cp Makefile.in ~/wxgtk_dist/wxGTK/samples - -echo Minimal sample.. - -cd minimal -mkdir ~/wxgtk_dist/wxGTK/samples/minimal -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/minimal -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/minimal -cp minimal.cpp ~/wxgtk_dist/wxGTK/samples/minimal -cp mondrian.xpm ~/wxgtk_dist/wxGTK/samples/minimal -cd .. - -echo Bombs sample.. - -cd bombs -mkdir ~/wxgtk_dist/wxGTK/samples/bombs -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/bombs -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/bombs -cp *.cpp ~/wxgtk_dist/wxGTK/samples/bombs -cp *.h ~/wxgtk_dist/wxGTK/samples/bombs -cp *.xpm ~/wxgtk_dist/wxGTK/samples/bombs -cd .. - -echo Caret sample.. - -cd caret -mkdir ~/wxgtk_dist/wxGTK/samples/caret -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/caret -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/caret -cp *.cpp ~/wxgtk_dist/wxGTK/samples/caret -cp *.xpm ~/wxgtk_dist/wxGTK/samples/caret -cd .. - -echo Checklst sample.. - -cd checklst -mkdir ~/wxgtk_dist/wxGTK/samples/checklst -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/checklst -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/checklst -cp *.cpp ~/wxgtk_dist/wxGTK/samples/checklst -cp *.xpm ~/wxgtk_dist/wxGTK/samples/checklst -cd .. - -echo Config sample.. - -cd config -mkdir ~/wxgtk_dist/wxGTK/samples/config -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/config -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/config -cp *.cpp ~/wxgtk_dist/wxGTK/samples/config -cd .. - -echo Controls sample.. - -cd controls -mkdir ~/wxgtk_dist/wxGTK/samples/controls -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/controls -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/controls -cp *.cpp ~/wxgtk_dist/wxGTK/samples/controls -cp *.xpm ~/wxgtk_dist/wxGTK/samples/controls -cd icons -mkdir ~/wxgtk_dist/wxGTK/samples/controls/icons -cp *.xpm ~/wxgtk_dist/wxGTK/samples/controls/icons -cd ../.. - -echo Db sample.. - -cd db -mkdir ~/wxgtk_dist/wxGTK/samples/db -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/db -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/db -cp *.cpp ~/wxgtk_dist/wxGTK/samples/db -cp *.h ~/wxgtk_dist/wxGTK/samples/db -cp *.xpm ~/wxgtk_dist/wxGTK/samples/db -cd .. - -echo DDE sample.. - -cd dde -mkdir ~/wxgtk_dist/wxGTK/samples/dde -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/dde -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dde -cp *.cpp ~/wxgtk_dist/wxGTK/samples/dde -cp *.h ~/wxgtk_dist/wxGTK/samples/dde -cp *.xpm ~/wxgtk_dist/wxGTK/samples/dde -cd .. - -echo Dialogs sample.. - -cd dialogs -mkdir ~/wxgtk_dist/wxGTK/samples/dialogs -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/dialogs -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dialogs -cp *.cpp ~/wxgtk_dist/wxGTK/samples/dialogs -cp *.h ~/wxgtk_dist/wxGTK/samples/dialogs -cd .. - -echo DnD sample.. - -cd dnd -mkdir ~/wxgtk_dist/wxGTK/samples/dnd -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/dnd -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dnd -cp *.cpp ~/wxgtk_dist/wxGTK/samples/dnd -cp *.xpm ~/wxgtk_dist/wxGTK/samples/dnd -cd .. - -echo Docview sample.. - -cd docview -mkdir ~/wxgtk_dist/wxGTK/samples/docview -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/docview -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/docview -cp *.cpp ~/wxgtk_dist/wxGTK/samples/docview -cp *.h ~/wxgtk_dist/wxGTK/samples/docview -cp *.xpm ~/wxgtk_dist/wxGTK/samples/docview -cd .. - -echo DocvwMDI sample.. - -cd docvwmdi -mkdir ~/wxgtk_dist/wxGTK/samples/docvwmdi -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/docvwmdi -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/docvwmdi -cp *.cpp ~/wxgtk_dist/wxGTK/samples/docvwmdi -cp *.h ~/wxgtk_dist/wxGTK/samples/docvwmdi -cd .. - -echo Dynamic sample.. - -cd dynamic -mkdir ~/wxgtk_dist/wxGTK/samples/dynamic -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/dynamic -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/dynamic -cp *.cpp ~/wxgtk_dist/wxGTK/samples/dynamic -cp *.xpm ~/wxgtk_dist/wxGTK/samples/dynamic -cd .. - -echo Drawing sample.. - -cd drawing -mkdir ~/wxgtk_dist/wxGTK/samples/drawing -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/drawing -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/drawing -cp *.cpp ~/wxgtk_dist/wxGTK/samples/drawing -cp *.xpm ~/wxgtk_dist/wxGTK/samples/drawing -cd .. - -echo Forty sample.. - -cd forty -mkdir ~/wxgtk_dist/wxGTK/samples/forty -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/forty -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/forty -cp *.cpp ~/wxgtk_dist/wxGTK/samples/forty -cp *.h ~/wxgtk_dist/wxGTK/samples/forty -cp *.xpm ~/wxgtk_dist/wxGTK/samples/forty -cp *.xbm ~/wxgtk_dist/wxGTK/samples/forty -cd .. - -echo Fractal sample.. - -cd fractal -mkdir ~/wxgtk_dist/wxGTK/samples/fractal -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/fractal -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/fractal -cp *.cpp ~/wxgtk_dist/wxGTK/samples/fractal -cd .. - -echo Grid sample.. - -cd grid -mkdir ~/wxgtk_dist/wxGTK/samples/grid -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/grid -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/grid -cp *.cpp ~/wxgtk_dist/wxGTK/samples/grid -cd .. - -echo Help sample.. - -cd help -mkdir ~/wxgtk_dist/wxGTK/samples/help -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/help -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/help -cp *.cpp ~/wxgtk_dist/wxGTK/samples/help -cp *.xpm ~/wxgtk_dist/wxGTK/samples/help -cd doc -mkdir ~/wxgtk_dist/wxGTK/samples/help/doc -cp * ~/wxgtk_dist/wxGTK/samples/help/doc -cd ../.. - -echo Image sample.. - -cd image -mkdir ~/wxgtk_dist/wxGTK/samples/image -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/image -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/image -cp *.cpp ~/wxgtk_dist/wxGTK/samples/image -cp horse.png ~/wxgtk_dist/wxGTK/samples/image -cp horse.gif ~/wxgtk_dist/wxGTK/samples/image -cp horse.jpg ~/wxgtk_dist/wxGTK/samples/image -cd .. - -echo Internat sample.. - -cd internat -mkdir ~/wxgtk_dist/wxGTK/samples/internat -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/internat -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/internat -cp *.cpp ~/wxgtk_dist/wxGTK/samples/internat -cp *.xpm ~/wxgtk_dist/wxGTK/samples/internat -cp readme.txt ~/wxgtk_dist/wxGTK/samples/internat -cp wxstd.po ~/wxgtk_dist/wxGTK/samples/internat -cd fr -mkdir ~/wxgtk_dist/wxGTK/samples/internat/fr -cp *.?o ~/wxgtk_dist/wxGTK/samples/internat/fr -cd ../.. - -echo Layout sample.. - -cd layout -mkdir ~/wxgtk_dist/wxGTK/samples/layout -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/layout -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/layout -cp *.cpp ~/wxgtk_dist/wxGTK/samples/layout -cp *.h ~/wxgtk_dist/wxGTK/samples/layout -cd .. - -echo Listctrl sample.. - -cd listctrl -mkdir ~/wxgtk_dist/wxGTK/samples/listctrl -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/listctrl -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/listctrl -cp *.cpp ~/wxgtk_dist/wxGTK/samples/listctrl -cp *.h ~/wxgtk_dist/wxGTK/samples/listctrl -cp *.xpm ~/wxgtk_dist/wxGTK/samples/listctrl -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/samples/listctrl/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/samples/listctrl/bitmaps -cd ../.. - -echo MDI sample.. - -cd mdi -mkdir ~/wxgtk_dist/wxGTK/samples/mdi -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/mdi -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/mdi -cp *.cpp ~/wxgtk_dist/wxGTK/samples/mdi -cp *.h ~/wxgtk_dist/wxGTK/samples/mdi -cp *.xpm ~/wxgtk_dist/wxGTK/samples/mdi -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/samples/mdi/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/samples/mdi/bitmaps -cd ../.. - -echo Memcheck sample.. - -cd memcheck -mkdir ~/wxgtk_dist/wxGTK/samples/memcheck -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/memcheck -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/memcheck -cp *.cpp ~/wxgtk_dist/wxGTK/samples/memcheck -cp *.xpm ~/wxgtk_dist/wxGTK/samples/memcheck -cd .. - -echo Minifram sample.. - -cd minifram -mkdir ~/wxgtk_dist/wxGTK/samples/minifram -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/minifram -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/minifram -cp *.cpp ~/wxgtk_dist/wxGTK/samples/minifram -cp *.h ~/wxgtk_dist/wxGTK/samples/minifram -cp *.xpm ~/wxgtk_dist/wxGTK/samples/minifram -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/samples/minifram/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/samples/minifram/bitmaps -cd ../.. - -echo Notebook sample.. - -cd notebook -mkdir ~/wxgtk_dist/wxGTK/samples/notebook -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/notebook -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/notebook -cp *.cpp ~/wxgtk_dist/wxGTK/samples/notebook -cp *.h ~/wxgtk_dist/wxGTK/samples/notebook -cd .. - -echo PNG sample.. - -cd png -mkdir ~/wxgtk_dist/wxGTK/samples/png -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/png -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/png -cp *.cpp ~/wxgtk_dist/wxGTK/samples/png -cp *.h ~/wxgtk_dist/wxGTK/samples/png -cp *.png ~/wxgtk_dist/wxGTK/samples/png -cd .. - -echo Printing sample.. - -cd printing -mkdir ~/wxgtk_dist/wxGTK/samples/printing -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/printing -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/printing -cp *.cpp ~/wxgtk_dist/wxGTK/samples/printing -cp *.h ~/wxgtk_dist/wxGTK/samples/printing -cp *.xpm ~/wxgtk_dist/wxGTK/samples/printing -cd .. - -echo Proplist sample.. - -cd proplist -mkdir ~/wxgtk_dist/wxGTK/samples/proplist -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/proplist -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/proplist -cp *.cpp ~/wxgtk_dist/wxGTK/samples/proplist -cp *.h ~/wxgtk_dist/wxGTK/samples/proplist -cd .. - -echo Resource sample.. - -cd resource -mkdir ~/wxgtk_dist/wxGTK/samples/resource -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/resource -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/resource -cp *.cpp ~/wxgtk_dist/wxGTK/samples/resource -cp *.h ~/wxgtk_dist/wxGTK/samples/resource -cp *.wxr ~/wxgtk_dist/wxGTK/samples/resource -cd .. - -echo Sashtest sample.. - -cd sashtest -mkdir ~/wxgtk_dist/wxGTK/samples/sashtest -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/sashtest -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/sashtest -cp *.cpp ~/wxgtk_dist/wxGTK/samples/sashtest -cp *.h ~/wxgtk_dist/wxGTK/samples/sashtest -cd .. - -echo Scroll sample.. - -cd sashtest -mkdir ~/wxgtk_dist/wxGTK/samples/scroll -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/scroll -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/scroll -cp *.cpp ~/wxgtk_dist/wxGTK/samples/scroll -cp *.h ~/wxgtk_dist/wxGTK/samples/scroll -cd .. - -echo Splitter sample.. - -cd splitter -mkdir ~/wxgtk_dist/wxGTK/samples/splitter -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/splitter -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/splitter -cp *.cpp ~/wxgtk_dist/wxGTK/samples/splitter -cd .. - -echo Tab sample.. - -cd tab -mkdir ~/wxgtk_dist/wxGTK/samples/tab -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/tab -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/tab -cp *.cpp ~/wxgtk_dist/wxGTK/samples/tab -cp *.h ~/wxgtk_dist/wxGTK/samples/tab -cd .. - -echo Text sample.. - -cd text -mkdir ~/wxgtk_dist/wxGTK/samples/text -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/text -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/text -cp *.cpp ~/wxgtk_dist/wxGTK/samples/text -cd .. - -echo Thread sample.. - -cd thread -mkdir ~/wxgtk_dist/wxGTK/samples/thread -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/thread -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/thread -cp *.cpp ~/wxgtk_dist/wxGTK/samples/thread -cd .. - -echo Toolbar sample.. - -cd toolbar -mkdir ~/wxgtk_dist/wxGTK/samples/toolbar -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/toolbar -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/toolbar -cp *.cpp ~/wxgtk_dist/wxGTK/samples/toolbar -cp *.h ~/wxgtk_dist/wxGTK/samples/toolbar -cp *.xpm ~/wxgtk_dist/wxGTK/samples/toolbar -cd bitmaps -mkdir ~/wxgtk_dist/wxGTK/samples/toolbar/bitmaps -cp *.xpm ~/wxgtk_dist/wxGTK/samples/toolbar/bitmaps -cd ../.. - -echo TreeCtrl sample.. - -cd treectrl -mkdir ~/wxgtk_dist/wxGTK/samples/treectrl -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/treectrl -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/treectrl -cp *.cpp ~/wxgtk_dist/wxGTK/samples/treectrl -cp *.h ~/wxgtk_dist/wxGTK/samples/treectrl -cp *.xpm ~/wxgtk_dist/wxGTK/samples/treectrl -cd .. - -echo typetest sample.. - -cd typetest -mkdir ~/wxgtk_dist/wxGTK/samples/typetest -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/typetest -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/typetest -cp *.cpp ~/wxgtk_dist/wxGTK/samples/typetest -cp *.h ~/wxgtk_dist/wxGTK/samples/typetest -cp *.xpm ~/wxgtk_dist/wxGTK/samples/typetest -cd .. - -echo Validate sample.. - -cd validate -mkdir ~/wxgtk_dist/wxGTK/samples/validate -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/validate -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/validate -cp *.cpp ~/wxgtk_dist/wxGTK/samples/validate -cp *.h ~/wxgtk_dist/wxGTK/samples/validate -cp *.xpm ~/wxgtk_dist/wxGTK/samples/validate -cd .. - -echo wxPoem sample.. - -cd wxpoem -mkdir ~/wxgtk_dist/wxGTK/samples/wxpoem -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/wxpoem -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/wxpoem -cp *.cpp ~/wxgtk_dist/wxGTK/samples/wxpoem -cp *.h ~/wxgtk_dist/wxGTK/samples/wxpoem -cp *.xpm ~/wxgtk_dist/wxGTK/samples/wxpoem -cp wxpoem.dat ~/wxgtk_dist/wxGTK/samples/wxpoem -cp wxpoem.txt ~/wxgtk_dist/wxGTK/samples/wxpoem -cp wxpoem.idx ~/wxgtk_dist/wxGTK/samples/wxpoem -cd .. - -echo wxSocket sample.. - -cd wxsocket -mkdir ~/wxgtk_dist/wxGTK/samples/wxsocket -cp Makefile.am ~/wxgtk_dist/wxGTK/samples/wxsocket -cp Makefile.in ~/wxgtk_dist/wxGTK/samples/wxsocket -cp *.cpp ~/wxgtk_dist/wxGTK/samples/wxsocket -cp *.xpm ~/wxgtk_dist/wxGTK/samples/wxsocket -cd ../.. - -echo LOCAL CORRECTCIONS - -cd distrib/gtk -cp README.txt ~/wxgtk_dist/wxGTK/utils/wxPython -cp Setup ~/wxgtk_dist/wxGTK/utils/wxPython/src - -cd ~/wxgtk_dist -tar ch wxGTK | gzip -f9 > wxGTK-2.1.0-b6.tgz diff --git a/distrib/msw/bc.rsp b/distrib/msw/bc.rsp deleted file mode 100644 index 5bfd4a99fa..0000000000 --- a/distrib/msw/bc.rsp +++ /dev/null @@ -1,3 +0,0 @@ -src/bc32.ide -src/bc32d.ide -samples/bc32.ide diff --git a/distrib/msw/cw.rsp b/distrib/msw/cw.rsp deleted file mode 100644 index d032bd9478..0000000000 --- a/distrib/msw/cw.rsp +++ /dev/null @@ -1,109 +0,0 @@ -src/make_cw.mcp -src/common/cwy_tab.c -src/common/cwlex_yy.c -include/wx_cw.pch -include/wx_cw.pch++ -include/wx_cw_d.pch -include/wx_cw_d.pch++ - -samples/bombs/make_cw.mcp - -samples/checklst/make_cw.mcp - -samples/config/make_cw.mcp - -samples/controls/make_cw.mcp - -samples/db/make_cw.mcp - -samples/dialogs/make_cw.mcp - -samples/dnd/make_cw.mcp - -samples/docview/make_cw.mcp - -samples/docvwmdi/make_cw.mcp - -samples/dynamic/make_cw.mcp - -samples/forty/make_cw.mcp - -samples/fractal/make_cw.mcp - -samples/grid/make_cw.mcp - -samples/help/make_cw.mcp - -samples/image/make_cw.mcp - -samples/internat/make_cw.mcp - -samples/joytest/make_cw.mcp - -samples/layout/make_cw.mcp - -samples/listctrl/make_cw.mcp - -samples/mdi/make_cw.mcp - -samples/memcheck/make_cw.mcp - -samples/mfc/make_cw.mcp - -samples/minimal/make_cw.mcp - -samples/minifram/make_cw.mcp - -samples/nativdlg/make_cw.mcp - -samples/notebook/make_cw.mcp - -samples/ownerdrw/make_cw.mcp - -samples/png/make_cw.mcp - -samples/printing/make_cw.mcp - -samples/proplist/make_cw.mcp - -samples/Regtest/make_cw.mcp - -samples/resource/make_cw.mcp - -samples/sashtest/make_cw.mcp - -samples/splitter/make_cw.mcp - -samples/tab/make_cw.mcp - -samples/taskbar/make_cw.mcp - -samples/thread/make_cw.mcp - -samples/toolbar/make_cw.mcp - -samples/treectrl/make_cw.mcp - -samples/typetest/make_cw.mcp - -samples/validate/make_cw.mcp - -samples/wxsocket/make_cw.mcp - -samples/wxpoem/make_cw.mcp - -utils/wxprop/src/make_cw.mcp -utils/wxprop/src/make_sample.mcp - -utils/dialoged/src/make_cw.mcp - -utils/glcanvas/win/make_cw.mcp -utils/glcanvas/samples/cube/make_cw.mcp -utils/glcanvas/samples/isosurf/make_cw.mcp - -utils/ogl/src/make_cw.mcp -utils/ogl/samples/ogledit/make_cw.mcp - -utils/wxtree/src/make_cw.mcp -utils/wxtree/src/make_cw.mcp - diff --git a/distrib/msw/docsrc.rsp b/distrib/msw/docsrc.rsp deleted file mode 100644 index d343f70080..0000000000 --- a/distrib/msw/docsrc.rsp +++ /dev/null @@ -1,97 +0,0 @@ -docs/latex/wx/*.tex -docs/latex/wx/*.sty -docs/latex/wx/*.bib -docs/latex/wx/*.hpj -docs/latex/wx/*.ini -docs/latex/wx/*.txt -docs/latex/wx/*.cnt -docs/latex/wx/*.eps -docs/latex/wx/*.bmp -docs/latex/wx/*.gif -docs/latex/wx/*.wmf - -docs/latex/proplist/*.tex -docs/latex/proplist/*.sty -docs/latex/proplist/*.bib -docs/latex/proplist/*.hpj -docs/latex/proplist/*.ini -docs/latex/proplist/*.txt -docs/latex/proplist/*.cnt -docs/latex/proplist/*.eps -docs/latex/proplist/*.bmp -docs/latex/proplist/*.gif -docs/latex/proplist/*.wmf - -docs/latex/porting/*.tex -docs/latex/porting/*.sty -docs/latex/porting/*.bib -docs/latex/porting/*.hpj -docs/latex/porting/*.ini -docs/latex/porting/*.txt -docs/latex/porting/*.cnt -docs/latex/porting/*.eps -docs/latex/porting/*.gif -docs/latex/porting/*.bmp - -utils/wxhelp/docs/*.tex -utils/wxhelp/docs/*.txt -utils/wxhelp/docs/*.hpj -utils/wxhelp/docs/*.ini -utils/wxhelp/docs/*.bmp -utils/wxhelp/docs/*.wmf -utils/wxhelp/docs/*.gif - -utils/tex2rtf/docs/*.tex -utils/tex2rtf/docs/*.txt -utils/tex2rtf/docs/*.hpj -utils/tex2rtf/docs/*.bib -utils/tex2rtf/docs/*.ini -utils/tex2rtf/docs/*.sty -utils/tex2rtf/docs/*.bmp -utils/tex2rtf/docs/*.shg -utils/tex2rtf/docs/*.wmf -utils/tex2rtf/docs/*.gif - -utils/wxtree/docs/*.tex -utils/wxtree/docs/*.ini -utils/wxtree/docs/*.bib -utils/wxtree/docs/*.txt -utils/wxtree/docs/*.hpj -utils/wxtree/docs/*.bmp -utils/wxtree/docs/*.wmf -utils/wxtree/docs/*.gif - -utils/wxgraph/docs/*.tex -utils/wxgraph/docs/*.ini -utils/wxgraph/docs/*.bib -utils/wxgraph/docs/*.txt -utils/wxgraph/docs/*.hpj -utils/wxgraph/docs/*.bmp -utils/wxgraph/docs/*.wmf -utils/wxgraph/docs/*.gif - -utils/mfutils/docs/*.tex -utils/mfutils/docs/*.txt -utils/mfutils/docs/*.hpj -utils/mfutils/docs/*.wmf -utils/mfutils/docs/*.bmp - -utils/wxprop/docs/*.txt -utils/wxprop/docs/*.hpj -utils/wxprop/docs/*.tex -utils/wxprop/docs/*.ini -utils/wxprop/docs/*.eps -utils/wxprop/docs/*.bmp -utils/wxprop/docs/*.wmf -utils/wxprop/docs/*.gif - -utils/dialoged/docs/*.txt -utils/dialoged/docs/*.hpj -utils/dialoged/docs/*.tex -utils/dialoged/docs/*.ini -utils/dialoged/docs/*.eps -utils/dialoged/docs/*.bmp -utils/dialoged/docs/*.wmf -utils/dialoged/docs/*.gif - - diff --git a/distrib/msw/generic.rsp b/distrib/msw/generic.rsp deleted file mode 100644 index 0e4b92175f..0000000000 --- a/distrib/msw/generic.rsp +++ /dev/null @@ -1,727 +0,0 @@ -distrib/msw/*.rsp -distrib/msw/*.bat -distrib/msw/tardist -distrib/gtk/* - -locale/*.po -locale/*.mo - -docs/readme.txt -docs/install.txt -docs/release.txt -docs/changes.txt -docs/upgrade.txt -docs/todo.txt -docs/licence.txt -docs/symbols.txt -docs/bugs.txt -docs/*.htm -docs/html/*.htm -docs/html/*.gif - -src/*.inc -src/mkdir - -src/common/*.cpp -src/common/dosyacc.c -src/common/doslex.c -src/common/vmsyacc.c -src/common/vmslex.c -src/common/extended.c -src/common/*.l -src/common/*.y -src/common/*.inc - -src/generic/*.cpp -src/generic/*.c -src/generic/*.inc - -src/unix/*.cpp - -src/png/*.c -src/png/*.h -src/png/makefile* -src/png/INSTALL -src/png/CHANGES -src/png/README -src/png/TODO -src/png/*.1 -src/png/*.3 -src/png/*.5 -src/png/scripts/* - -src/zlib/*.c -src/zlib/*.h -src/zlib/INDEX -src/zlib/README -src/zlib/ChangeLog -src/zlib/configure -src/zlib/*.txt -src/zlib/makefile* -src/zlib/*.com -src/zlib/*.3 -src/zlib/*.mms - -include/wx/*.h -include/wx/*.cpp -include/wx/protocol/*.h -include/wx/wx_setup.vms -include/wx/common/*.h -include/wx/generic/*.h -include/wx/unix/*.h -lib/dummy - -bin/*.* - -tools/gettext/*.* - -bitmaps/xpm/16x16/*.* -bitmaps/xpm/32x32/*.* -bitmaps/xpm/64x64/*.* -bitmaps/xpm/misc/*.* -bitmaps/*.* -bitmaps/bmp/16x15/*.* -bitmaps/bmp/10x8/*.* -bitmaps/ico/32x32/*.* - -afm/*.* - -utils/*.txt -utils/make* - -utils/xpmshow/src/makefile* -utils/xpmshow/src/*.cpp -utils/xpmshow/src/*.h -utils/xpmshow/src/*.def -utils/xpmshow/src/*.rc -utils/xpmshow/src/*.xpm -utils/xpmshow/src/*.bmp -utils/xpmshow/src/*.ico - -utils/wxhelp/src/*.cpp -utils/wxhelp/src/*.h -utils/wxhelp/src/makefile* -utils/wxhelp/src/*.xbm -utils/wxhelp/src/*.xpm -utils/wxhelp/src/*.txt -utils/wxhelp/src/*.ico -utils/wxhelp/src/*.def -utils/wxhelp/src/*.rc - -utils/wxgraph/src/*.cpp -utils/wxgraph/src/*.c -utils/wxgraph/src/*.h -utils/wxgraph/src/makefile* -utils/wxgraph/src/*.xbm -utils/wxgraph/src/*.xpm -utils/wxgraph/lib/dummy -utils/wxgraph/src/*.ico -utils/wxgraph/src/*.def -utils/wxgraph/src/*.rc - -utils/rcparser/src/*.cpp -utils/rcparser/src/*.c -utils/rcparser/src/*.h -utils/rcparser/src/makefile* -utils/rcparser/src/*.xbm -utils/rcparser/src/*.xpm -utils/rcparser/lib/dummy -utils/rcparser/src/*.ico -utils/rcparser/src/*.def -utils/rcparser/src/*.rc -utils/rcparser/src/*.rh - -utils/colours/*.h -utils/colours/*.cpp -utils/colours/*.def -utils/colours/*.rc -utils/colours/makefile* -utils/colours/*.xbm -utils/colours/*.xpm -utils/colours/*.txt - -utils/serialize/*.h -utils/serialize/*.cpp -utils/serialize/*.def -utils/serialize/*.rc -utils/serialize/makefile* -utils/serialize/*.xbm -utils/serialize/*.xpm -utils/serialize/*.txt - -utils/dialoged/Makefile -utils/dialoged/src/bitmaps/*.xbm -utils/dialoged/src/bitmaps/*.xpm -utils/dialoged/src/*.h -utils/dialoged/src/*.cpp -utils/dialoged/src/*.def -utils/dialoged/src/*.rc -utils/dialoged/src/makefile* -utils/dialoged/src/*.xbm -utils/dialoged/src/*.xpm -utils/dialoged/src/*.txt -utils/dialoged/src/*.inf -utils/dialoged/test/*.h -utils/dialoged/src/*.ico -utils/dialoged/src/*.prj -utils/dialoged/src/*.bmp -utils/dialoged/src/bitmaps/*.bmp -utils/dialoged/src/bitmaps/*.ico -utils/dialoged/test/*.cpp -utils/dialoged/test/*.def -utils/dialoged/test/*.rc -utils/dialoged/test/makefile* -utils/dialoged/lib/dummy -utils/dialoged/test/*.ico -utils/dialoged/test/*.prj -utils/dialoged/test/*.bmp - -samples/*.txt -samples/makefile* - -samples/config/*.cpp -samples/config/*.h -samples/config/*.def -samples/config/makefile* -samples/config/*.xbm -samples/config/*.xpm -samples/config/*.txt -samples/config/*.ico -samples/config/*.bmp -samples/config/*.rc -samples/config/*.wav - -samples/dynamic/*.cpp -samples/dynamic/*.h -samples/dynamic/*.def -samples/dynamic/makefile* -samples/dynamic/*.xbm -samples/dynamic/*.xpm -samples/dynamic/*.txt -samples/dynamic/*.ico -samples/dynamic/*.bmp -samples/dynamic/*.rc -samples/dynamic/*.wav - -samples/wxsocket/*.cpp -samples/wxsocket/*.h -samples/wxsocket/*.def -samples/wxsocket/makefile* -samples/wxsocket/client.wat -samples/wxsocket/server.wat -samples/wxsocket/client.vc -samples/wxsocket/server.vc -samples/wxsocket/client.dos -samples/wxsocket/server.dos -samples/wxsocket/client.b32 -samples/wxsocket/server.b32 -samples/wxsocket/client.bcc -samples/wxsocket/server.bcc -samples/wxsocket/*.xbm -samples/wxsocket/*.xpm -samples/wxsocket/*.ico -samples/wxsocket/*.rc - -samples/help/*.cpp -samples/help/*.h -samples/help/*.def -samples/help/makefile* -samples/help/*.xbm -samples/help/*.xpm -samples/help/*.ico -samples/help/*.rc -samples/help/doc/*.html -samples/help/doc/*.htm -samples/help/doc/*.class -samples/help/doc/*.db -samples/help/doc/*.tex -samples/help/doc/*.gif -samples/help/doc/*.map - -samples/bombs/*.cpp -samples/bombs/*.h -samples/bombs/*.def -samples/bombs/makefile* -samples/bombs/*.xbm -samples/bombs/*.xpm -samples/bombs/*.txt -samples/bombs/*.ico -samples/bombs/*.bmp -samples/bombs/*.rc - -samples/ipc/*.cpp -samples/ipc/*.h -samples/ipc/*.def -samples/ipc/makefile* -samples/ipc/*.xbm -samples/ipc/*.xpm -samples/ipc/*.ico -samples/ipc/*.rc - -samples/typetest/*.cpp -samples/typetest/*.h -samples/typetest/*.def -samples/typetest/*.rc -samples/typetest/*.txt -samples/typetest/makefile* -samples/typetest/*.xbm -samples/typetest/*.xpm -samples/typetest/*.ico - -samples/sashtest/*.cpp -samples/sashtest/*.h -samples/sashtest/*.def -samples/sashtest/*.rc -samples/sashtest/*.txt -samples/sashtest/makefile* -samples/sashtest/*.xbm -samples/sashtest/*.xpm -samples/sashtest/*.ico - -samples/resource/*.cpp -samples/resource/*.h -samples/resource/*.def -samples/resource/*.rc -samples/resource/*.txt -samples/resource/*.wxr -samples/resource/makefile* -samples/resource/*.xbm -samples/resource/*.xpm -samples/resource/*.ico - -samples/animate/*.cpp -samples/animate/*.h -samples/animate/*.def -samples/animate/makefile* -samples/animate/*.xbm -samples/animate/*.xpm -samples/animate/*.ico -samples/animate/*.rc - -samples/mdi/*.cpp -samples/mdi/*.h -samples/mdi/*.def -samples/mdi/makefile* -samples/mdi/*.xbm -samples/mdi/*.xpm -samples/mdi/*.ico -samples/mdi/*.rc -samples/mdi/bitmaps/*.bmp -samples/mdi/bitmaps/*.ico -samples/mdi/bitmaps/*.xpm -samples/mdi/bitmaps/*.xbm - -samples/minimal/*.cpp -samples/minimal/*.h -samples/minimal/*.def -samples/minimal/makefile* -samples/minimal/*.xbm -samples/minimal/*.xpm -samples/minimal/*.ico -samples/minimal/*.rc - -samples/controls/*.cpp -samples/controls/*.h -samples/controls/*.def -samples/controls/makefile* -samples/controls/*.xbm -samples/controls/*.xpm -samples/controls/*.ico -samples/controls/*.bmp -samples/controls/*.rc -samples/controls/icons/*.bmp -samples/controls/icons/*.ico -samples/controls/icons/*.xpm - -samples/fractal/*.cpp -samples/fractal/*.h -samples/fractal/*.def -samples/fractal/makefile* -samples/fractal/*.xbm -samples/fractal/*.xpm -samples/fractal/*.ico -samples/fractal/*.rc - -samples/proplist/*.cpp -samples/proplist/*.h -samples/proplist/*.def -samples/proplist/makefile* -samples/proplist/*.xbm -samples/proplist/*.xpm -samples/proplist/*.ico -samples/proplist/*.bmp -samples/proplist/*.rc - -samples/layout/*.cpp -samples/layout/*.h -samples/layout/*.def -samples/layout/makefile* -samples/layout/*.xbm -samples/layout/*.xpm -samples/layout/*.ico -samples/layout/*.rc -samples/layout/*.bmp - -samples/printing/*.cpp -samples/printing/*.h -samples/printing/*.def -samples/printing/makefile* -samples/printing/*.xbm -samples/printing/*.xpm -samples/printing/*.txt -samples/printing/*.ico -samples/printing/*.bmp -samples/printing/*.rc -samples/printing/*.afm - -samples/toolbar/*.cpp -samples/toolbar/*.h -samples/toolbar/*.def -samples/toolbar/makefile* -samples/toolbar/*.txt -samples/toolbar/*.xbm -samples/toolbar/*.xpm -samples/toolbar/bitmaps/*.xbm -samples/toolbar/bitmaps/*.xpm -samples/toolbar/*.ico -samples/toolbar/*.bmp -samples/toolbar/*.rc -samples/toolbar/bitmaps/*.bmp - -samples/docview/*.h -samples/docview/*.cpp -samples/docview/*.def -samples/docview/*.rc -samples/docview/makefile* -samples/docview/*.xbm -samples/docview/*.xpm -samples/docview/*.txt -samples/docview/*.ico -samples/docview/*.bmp - -samples/docvwmdi/*.h -samples/docvwmdi/*.cpp -samples/docvwmdi/*.def -samples/docvwmdi/*.rc -samples/docvwmdi/makefile* -samples/docvwmdi/*.xbm -samples/docvwmdi/*.xpm -samples/docvwmdi/*.txt -samples/docvwmdi/*.ico -samples/docvwmdi/*.bmp - -samples/minifram/*.h -samples/minifram/*.cpp -samples/minifram/*.def -samples/minifram/*.rc -samples/minifram/makefile* -samples/minifram/*.xbm -samples/minifram/*.xpm -samples/minifram/*.txt -samples/minifram/*.ico -samples/minifram/*.bmp -samples/minifram/bitmaps/*.bmp -samples/minifram/bitmaps/*.xpm - -samples/memcheck/*.h -samples/memcheck/*.cpp -samples/memcheck/*.def -samples/memcheck/*.rc -samples/memcheck/makefile* -samples/memcheck/*.xbm -samples/memcheck/*.xpm -samples/memcheck/*.txt -samples/memcheck/*.ico -samples/memcheck/*.bmp - -samples/odbc/*.h -samples/odbc/*.cpp -samples/odbc/*.def -samples/odbc/*.rc -samples/odbc/makefile* -samples/odbc/*.inf -samples/odbc/*.xbm -samples/odbc/*.xpm -samples/odbc/*.ico -samples/odbc/*.bmp -samples/odbc/*.dbf -samples/odbc/*.cdx - -samples/dialogs/*.h -samples/dialogs/*.cpp -samples/dialogs/*.def -samples/dialogs/*.rc -samples/dialogs/makefile* -samples/dialogs/*.xbm -samples/dialogs/*.xpm -samples/dialogs/*.txt -samples/dialogs/*.bmp -samples/dialogs/*.ico - -samples/wxpoem/*.cpp -samples/wxpoem/*.h -samples/wxpoem/*.def -samples/wxpoem/*.rc -samples/wxpoem/*.inf -samples/wxpoem/*.txt -samples/wxpoem/makefile* -samples/wxpoem/*.xbm -samples/wxpoem/*.xpm -samples/wxpoem/*.ico -samples/wxpoem/*.bmp -samples/wxpoem/*.dat - -samples/pressup/*.cpp -samples/pressup/*.c -samples/pressup/*.h -samples/pressup/*.def -samples/pressup/*.rc -samples/pressup/*.inf -samples/pressup/*.txt -samples/pressup/makefile* -samples/pressup/*.xbm -samples/pressup/*.xpm -samples/pressup/*.ico -samples/pressup/*.bmp - -samples/validate/*.cpp -samples/validate/*.h -samples/validate/*.def -samples/validate/*.rc -samples/validate/*.inf -samples/validate/*.txt -samples/validate/makefile* -samples/validate/*.xbm -samples/validate/*.xpm -samples/validate/*.ico -samples/validate/*.bmp - -samples/events/*.cpp -samples/events/*.h -samples/events/*.def -samples/events/*.rc -samples/events/*.inf -samples/events/*.txt -samples/events/makefile* -samples/events/*.xbm -samples/events/*.xpm -samples/events/*.ico -samples/events/*.bmp - -samples/treectrl/*.cpp -samples/treectrl/*.h -samples/treectrl/*.def -samples/treectrl/*.rc -samples/treectrl/*.txt -samples/treectrl/makefile* -samples/treectrl/*.xbm -samples/treectrl/*.xpm -samples/treectrl/bitmaps/*.xbm -samples/treectrl/bitmaps/*.xpm -samples/treectrl/*.ico -samples/treectrl/*.bmp -samples/treectrl/bitmaps/*.bmp -samples/treectrl/bitmaps/*.ico - -samples/listctrl/*.cpp -samples/listctrl/*.h -samples/listctrl/*.def -samples/listctrl/*.rc -samples/listctrl/*.txt -samples/listctrl/makefile* -samples/listctrl/*.xbm -samples/listctrl/*.xpm -samples/listctrl/bitmaps/*.xbm -samples/listctrl/bitmaps/*.xpm -samples/listctrl/*.ico -samples/listctrl/*.bmp -samples/listctrl/bitmaps/*.bmp -samples/listctrl/bitmaps/*.ico - -samples/splitter/*.cpp -samples/splitter/*.h -samples/splitter/*.def -samples/splitter/*.rc -samples/splitter/*.txt -samples/splitter/makefile* -samples/splitter/*.xbm -samples/splitter/*.xpm -samples/splitter/*.ico -samples/splitter/*.bmp - -samples/grid/*.cpp -samples/grid/*.h -samples/grid/*.def -samples/grid/*.rc -samples/grid/*.txt -samples/grid/makefile* -samples/grid/*.xbm -samples/grid/*.xpm -samples/grid/*.ico -samples/grid/*.bmp - -samples/internat/*.cpp -samples/internat/*.h -samples/internat/*.def -samples/internat/*.rc -samples/internat/*.txt -samples/internat/makefile* -samples/internat/*.xbm -samples/internat/*.xpm -samples/internat/*.po -samples/internat/*.ico -samples/internat/*.bmp -samples/internat/*.mo -samples/internat/fr/*.mo -samples/internat/fr/*.po - -samples/checklst/*.cpp -samples/checklst/*.h -samples/checklst/*.def -samples/checklst/*.rc -samples/checklst/*.txt -samples/checklst/makefile* -samples/checklst/*.xbm -samples/checklst/*.xpm -samples/checklst/*.ico -samples/checklst/*.bmp - -samples/dnd/*.cpp -samples/dnd/*.h -samples/dnd/makefile* -samples/dnd/*.rc -samples/dnd/*.def -samples/dnd/*.bmp -samples/dnd/*.xbm -samples/dnd/*.xpm -samples/dnd/*.ico -samples/dnd/*.txt - -samples/tab/*.cpp -samples/tab/*.h -samples/tab/makefile* -samples/tab/*.rc -samples/tab/*.def -samples/tab/*.bmp -samples/tab/*.xbm -samples/tab/*.xpm -samples/tab/*.ico -samples/tab/*.txt - -samples/notebook/*.cpp -samples/notebook/*.h -samples/notebook/makefile* -samples/notebook/*.rc -samples/notebook/*.def -samples/notebook/*.bmp -samples/notebook/*.xbm -samples/notebook/*.xpm -samples/notebook/*.ico -samples/notebook/*.txt - -samples/png/*.cpp -samples/png/*.h -samples/png/makefile* -samples/png/*.rc -samples/png/*.def -samples/png/*.bmp -samples/png/*.xpm -samples/png/*.xbm -samples/png/*.ico -samples/png/*.txt -samples/png/*.png - -samples/image/*.cpp -samples/image/*.h -samples/image/makefile* -samples/image/*.rc -samples/image/*.def -samples/image/*.bmp -samples/image/*.xpm -samples/image/*.xbm -samples/image/*.png -samples/image/*.ico -samples/image/*.txt - -samples/thread/*.cpp -samples/thread/*.h -samples/thread/makefile* -samples/thread/*.rc -samples/thread/*.def -samples/thread/*.bmp -samples/thread/*.xpm -samples/thread/*.xbm -samples/thread/*.png -samples/thread/*.ico -samples/thread/*.txt - -samples/forty/*.cpp -samples/forty/*.h -samples/forty/makefile* -samples/forty/*.rc -samples/forty/*.def -samples/forty/*.bmp -samples/forty/*.xpm -samples/forty/*.xbm -samples/forty/*.png -samples/forty/*.ico -samples/forty/*.txt - -samples/dde/*.cpp -samples/dde/*.h -samples/dde/makefile* -samples/dde/client.vc -samples/dde/server.vc -samples/dde/client.wat -samples/dde/server.wat -samples/dde/client.b32 -samples/dde/server.b32 -samples/dde/client.bcc -samples/dde/server.bcc -samples/dde/client.dos -samples/dde/server.dos -samples/dde/*.rc -samples/dde/*.def -samples/dde/*.bmp -samples/dde/*.xpm -samples/dde/*.xbm -samples/dde/*.png -samples/dde/*.ico -samples/dde/*.txt - -samples/scroll/*.cpp -samples/scroll/*.h -samples/scroll/makefile* -samples/scroll/*.rc -samples/scroll/*.def -samples/scroll/*.bmp -samples/scroll/*.xpm -samples/scroll/*.xbm -samples/scroll/*.png -samples/scroll/*.ico -samples/scroll/*.txt - -samples/caret/*.cpp -samples/caret/*.h -samples/caret/makefile* -samples/caret/*.rc -samples/caret/*.def -samples/caret/*.bmp -samples/caret/*.xpm -samples/caret/*.xbm -samples/caret/*.png -samples/caret/*.ico -samples/caret/*.txt - -samples/drawing/*.cpp -samples/drawing/*.h -samples/drawing/makefile* -samples/drawing/*.rc -samples/drawing/*.def -samples/drawing/*.bmp -samples/drawing/*.xpm -samples/drawing/*.xbm -samples/drawing/*.png -samples/drawing/*.ico -samples/drawing/*.txt - diff --git a/distrib/msw/glcanvas.rsp b/distrib/msw/glcanvas.rsp deleted file mode 100644 index 3269bf0ae8..0000000000 --- a/distrib/msw/glcanvas.rsp +++ /dev/null @@ -1,43 +0,0 @@ -utils/glcanvas/docs/*.* -utils/glcanvas/win/*.cpp -utils/glcanvas/win/*.h -utils/glcanvas/win/make*.* -utils/glcanvas/gtk/*.cpp -utils/glcanvas/gtk/*.h -utils/glcanvas/gtk/make*.* -utils/glcanvas/gtk/Makefile -utils/glcanvas/motif/*.cpp -utils/glcanvas/motif/*.h -utils/glcanvas/motif/make*.* -utils/glcanvas/motif/*.txt -utils/glcanvas/motif/Makefile -utils/glcanvas/samples/cube/*.cpp -utils/glcanvas/samples/cube/*.h -utils/glcanvas/samples/cube/*.rc -utils/glcanvas/samples/cube/*.ico -utils/glcanvas/samples/cube/*.xbm -utils/glcanvas/samples/cube/make*.* -utils/glcanvas/samples/cube/Makefile - -utils/glcanvas/samples/isosurf/*.cpp -utils/glcanvas/samples/isosurf/*.h -utils/glcanvas/samples/isosurf/*.rc -utils/glcanvas/samples/isosurf/*.ico -utils/glcanvas/samples/isosurf/*.xbm -utils/glcanvas/samples/isosurf/*.dat.gz -utils/glcanvas/samples/isosurf/make*.* -utils/glcanvas/samples/isosurf/Makefile - -utils/glcanvas/samples/penguin/*.cpp -utils/glcanvas/samples/penguin/*.c -utils/glcanvas/samples/penguin/*.h -utils/glcanvas/samples/penguin/*.rc -utils/glcanvas/samples/penguin/*.ico -utils/glcanvas/samples/penguin/*.xbm -utils/glcanvas/samples/penguin/*.xpm -utils/glcanvas/samples/penguin/make*.* -utils/glcanvas/samples/penguin/Makefile -utils/glcanvas/samples/penguin/penguin.lwo - - - diff --git a/distrib/msw/gtk.rsp b/distrib/msw/gtk.rsp deleted file mode 100644 index 1186662289..0000000000 --- a/distrib/msw/gtk.rsp +++ /dev/null @@ -1,97 +0,0 @@ -install-sh -Makefile -template.mak -configure -configure.in -config.guess -config.sub -wx-config.in -mkinstalldirs -wxGTK.spec - -distrib/gtk/copy_src -distrib/gtk/README.txt -distrib/gtk/Setup - -docs/gtk/*.html -docs/gtk/*.txt -docs/gtk/makewxgtk - -include/wx/gtk/*.h -include/install-sh -include/wx/install-sh - -src/Makefile -src/Makefile.in -src/gtk.inc -src/make.env -src/makelib.env -src/makeprog.env - -src/gtk/*.cpp -src/gtk/*.c -src/gtk/*.inc -src/gtk/*.xbm - -src/iodbc/*.c -src/iodbc/*.ci -src/iodbc/*.h -src/iodbc/IAFA-PACKAGE -src/iodbc/README -src/iodbc/*.exp -src/iodbc/*.mk -src/iodbc/autoconfig -src/iodbc/build -src/iodbc/Changes.log -src/iodbc/postgres/*.h - -setup/*.in -setup/*.hin - -setup/general/createall -setup/general/jointar -setup/general/makeapp -setup/general/makedirs -setup/general/makedoc -setup/general/mygrep -setup/general/needed - -setup/rules/bin -setup/rules/bin2 -setup/rules/doc -setup/rules/gbin -setup/rules/gbin2 -setup/rules/glib -setup/rules/glibbin -setup/rules/glibgbin -setup/rules/gslib -setup/rules/lib -setup/rules/libbin -setup/rules/libgbin - -setup/rules/generic/bin1 -setup/rules/generic/bin1gen -setup/rules/generic/bin2 -setup/rules/generic/bin2gen -setup/rules/generic/depend -setup/rules/generic/globals -setup/rules/generic/lib -setup/rules/generic/needed -setup/rules/generic/obj -setup/rules/generic/slib -setup/rules/generic/sobj - -setup/shared/sharedAIX -setup/shared/sharedBsd -setup/shared/sharedDgux -setup/shared/sharedHpux -setup/shared/sharedIrix -setup/shared/sharedLinux -setup/shared/sharedOSF -setup/shared/sharedSolaris2 -setup/shared/sharedSunos4 -setup/shared/sharedSysV - -misc/afm/*.afm -misc/gs_afm/*.afm - diff --git a/distrib/msw/makefile.rsp b/distrib/msw/makefile.rsp deleted file mode 100644 index a4929beecd..0000000000 --- a/distrib/msw/makefile.rsp +++ /dev/null @@ -1,91 +0,0 @@ -samples/bombs/Makefile.in -samples/bombs/Makefile -samples/checklst/Makefile.in -samples/checklst/Makefile -samples/config/Makefile.in -samples/config/Makefile -samples/controls/Makefile.in -samples/controls/Makefile -samples/db/Makefile.in -samples/db/Makefile -samples/dde/Makefile.in -samples/dde/Makefile -samples/dialogs/Makefile.in -samples/dialogs/Makefile -samples/dnd/Makefile.in -samples/dnd/Makefile -samples/docview/Makefile.in -samples/docview/Makefile -samples/docvwmdi/Makefile.in -samples/docvwmdi/Makefile -samples/dynamic/Makefile.in -samples/dynamic/Makefile -samples/forty/Makefile.in -samples/forty/Makefile -samples/fractal/Makefile.in -samples/fractal/Makefile -samples/grid/Makefile.in -samples/grid/Makefile -samples/help/Makefile.in -samples/help/Makefile -samples/image/Makefile.in -samples/image/Makefile -samples/internat/Makefile.in -samples/internat/Makefile -samples/layout/Makefile.in -samples/layout/Makefile -samples/listctrl/Makefile.in -samples/listctrl/Makefile -samples/mdi/Makefile.in -samples/mdi/Makefile -samples/memcheck/Makefile.in -samples/memcheck/Makefile -samples/minifram/Makefile.in -samples/minifram/Makefile -samples/minimal/Makefile.in -samples/minimal/Makefile -samples/notebook/Makefile.in -samples/notebook/Makefile -samples/png/Makefile.in -samples/png/Makefile -samples/printing/Makefile.in -samples/printing/Makefile -samples/proplist/Makefile.in -samples/proplist/Makefile -samples/resource/Makefile.in -samples/resource/Makefile -samples/sashtest/Makefile.in -samples/sashtest/Makefile -samples/splitter/Makefile.in -samples/splitter/Makefile -samples/tab/Makefile.in -samples/tab/Makefile -samples/thread/Makefile.in -samples/thread/Makefile -samples/toolbar/Makefile.in -samples/toolbar/Makefile -samples/treectrl/Makefile.in -samples/treectrl/Makefile -samples/typetest/Makefile.in -samples/typetest/Makefile -samples/validate/Makefile.in -samples/validate/Makefile -samples/wxpoem/Makefile.in -samples/wxpoem/Makefile -samples/wxsocket/Makefile.in -samples/wxsocket/Makefile -samples/scroll/Makefile.in -samples/scroll/Makefile -samples/caret/Makefile.in -samples/caret/Makefile -samples/drawing/Makefile.in -samples/drawing/Makefile -src/Makefile.in -src/Makefile -utils/ogl/samples/ogledit/Makefile.in -utils/ogl/samples/ogledit/Makefile -utils/ogl/samples/studio/Makefile.in -utils/ogl/samples/studio/Makefile -utils/ogl/src/Makefile.in -utils/ogl/src/Makefile - diff --git a/distrib/msw/motif.rsp b/distrib/msw/motif.rsp deleted file mode 100644 index a428eb0e79..0000000000 --- a/distrib/msw/motif.rsp +++ /dev/null @@ -1,104 +0,0 @@ -install-sh -Makefile -template.mak -configure -configure.in -config.guess -config.sub -wx-config.in -mkinstalldirs -wxinstall - -src/makeenvs/*.env -src/make.env -src/makeprog.env -src/makelib.env - -src/Makefile -src/Makefile.in -src/motif.inc - -src/motif/*.cpp -src/motif/*.c -src/motif/*.h -src/motif/makefile* -src/motif/*.inc -src/motif/*.xbm -src/motif/xmcombo/*.c -src/motif/xmcombo/*.h -src/motif/xmcombo/*.doc -src/motif/xmcombo/*.man -src/motif/xmcombo/*.txt - -src/iodbc/*.c -src/iodbc/*.ci -src/iodbc/*.h -src/iodbc/IAFA-PACKAGE -src/iodbc/README -src/iodbc/*.exp -src/iodbc/*.mk -src/iodbc/autoconfig -src/iodbc/build -src/iodbc/Changes.log -src/iodbc/postgres/*.h - -include/wx/motif/*.h -include/install-sh -include/wx/install-sh - -docs/motif/*.txt -docs/motif/makewxmotif - -lib/dummy - -misc/afm/*.afm -misc/gs_afm/*.afm - -setup/*.in -setup/*.hin - -setup/general/createall -setup/general/jointar -setup/general/makeapp -setup/general/makedirs -setup/general/makedoc -setup/general/mygrep -setup/general/needed - -setup/rules/bin -setup/rules/bin2 -setup/rules/doc -setup/rules/gbin -setup/rules/gbin2 -setup/rules/glib -setup/rules/glibbin -setup/rules/glibgbin -setup/rules/gslib -setup/rules/lib -setup/rules/libbin -setup/rules/libgbin - -setup/rules/generic/bin1 -setup/rules/generic/bin1gen -setup/rules/generic/bin2 -setup/rules/generic/bin2gen -setup/rules/generic/depend -setup/rules/generic/globals -setup/rules/generic/lib -setup/rules/generic/needed -setup/rules/generic/obj -setup/rules/generic/slib -setup/rules/generic/sobj - -setup/shared/sharedAIX -setup/shared/sharedBsd -setup/shared/sharedDgux -setup/shared/sharedHpux -setup/shared/sharedIrix -setup/shared/sharedLinux -setup/shared/sharedOSF -setup/shared/sharedSolaris2 -setup/shared/sharedSunos4 -setup/shared/sharedSysV - - diff --git a/distrib/msw/msw.rsp b/distrib/msw/msw.rsp deleted file mode 100644 index 710bf7ef3a..0000000000 --- a/distrib/msw/msw.rsp +++ /dev/null @@ -1,173 +0,0 @@ -docs/msw/*.txt -docs/licence.txt - -distrib/msw/*.rsp -distrib/msw/*.bat - -tools/gettext/xgettext.exe -tools/gettext/msgfmt.exe -tools/gettext/msgunfmt.exe - -src/makeb32.env -src/makeprog.b32 -src/makelib.b32 -src/makebcc.env -src/makeprog.bcc -src/makelib.bcc -src/makemsc.env -src/makeprog.msc -src/makelib.msc -src/makewat.env -src/makeprog.wat -src/makelib.wat -src/makesc.env -src/makevc.env -src/makeprog.vc -src/makelib.vc -src/makeg95.env -src/makeprog.g95 -src/makelib.g95 -src/makesl.env -src/makeprog.sl -src/makelib.sl -src/salford.lnk -src/maketwin.env -src/makeprog.twn -src/makelib.twn -src/makefile.bcc -src/makefile.dos -src/makefile.vc -src/*.bat - -src/common/dosyacc.c -src/common/doslex.c - -src/msw/*.cpp -src/msw/*.h -src/msw/makefile.* -src/msw/*.lst -src/msw/*.def -src/msw/*.inc - -src/msw/ctl3d/*.* -src/msw/ctl3d/msvc/*.* -src/msw/ctl3d/wat32/*.* -src/msw/ctl3d/wat386/*.* -src/msw/ctl3d/borland/*.* -src/msw/ole/*.cpp -src/msw/*.prj - -src/xpm/*.c -src/xpm/*.h -src/xpm/makefile* -src/xpm/changes -src/xpm/readme -src/xpm/readme.msw -src/xpm/copyrigh.t -src/xpm/files - -include/wx/msw/*.h -include/wx/msw/*.rc -include/wx/msw/ctl3d/*.h -include/wx/msw/gnuwin32/*.h -include/wx/msw/ole/*.h -include/wx/msw/*.cur -include/wx/msw/*.ico -include/wx/msw/*.bmp - -lib/dummy - -samples/ownerdrw/*.cpp -samples/ownerdrw/*.h -samples/ownerdrw/makefile.* -samples/ownerdrw/*.rc -samples/ownerdrw/*.def -samples/ownerdrw/*.bmp -samples/ownerdrw/*.ico -samples/ownerdrw/*.txt - -samples/taskbar/*.cpp -samples/taskbar/*.h -samples/taskbar/makefile.* -samples/taskbar/*.rc -samples/taskbar/*.def -samples/taskbar/*.bmp -samples/taskbar/*.ico -samples/taskbar/*.txt - -samples/regtest/*.cpp -samples/regtest/*.h -samples/regtest/makefile.* -samples/regtest/*.rc -samples/regtest/*.def -samples/regtest/*.bmp -samples/regtest/*.ico -samples/regtest/*.txt - -samples/nativdlg/*.cpp -samples/nativdlg/*.h -samples/nativdlg/*.def -samples/nativdlg/*.rc -samples/nativdlg/*.txt -samples/nativdlg/makefile.* -samples/nativdlg/*.xbm -samples/nativdlg/*.ico -samples/nativdlg/*.bmp - -samples/mfc/*.h -samples/mfc/*.cpp -samples/mfc/*.def -samples/mfc/*.rc -samples/mfc/makefile.* -samples/mfc/*.txt -samples/mfc/*.bmp -samples/mfc/*.ico - -samples/joytest/*.h -samples/joytest/*.cpp -samples/joytest/*.def -samples/joytest/*.rc -samples/joytest/makefile.* -samples/joytest/*.txt -samples/joytest/*.bmp -samples/joytest/*.wav -samples/joytest/*.ico - -samples/oleauto/*.h -samples/oleauto/*.cpp -samples/oleauto/*.def -samples/oleauto/*.rc -samples/oleauto/makefile.* -samples/oleauto/*.txt -samples/oleauto/*.bmp -samples/oleauto/*.ico - -utils/nplugin/make*.* -utils/nplugin/src/*.cpp -utils/nplugin/src/*.h -utils/nplugin/src/*.rc -utils/nplugin/src/*.def -utils/nplugin/src/makefile.* -utils/nplugin/src/*.txt -utils/nplugin/samples/simple/*.cpp -utils/nplugin/samples/simple/*.h -utils/nplugin/samples/simple/*.rc -utils/nplugin/samples/simple/*.def -utils/nplugin/samples/simple/makefile.* -utils/nplugin/samples/simple/*.txt -utils/nplugin/samples/gui/*.cpp -utils/nplugin/samples/gui/*.h -utils/nplugin/samples/gui/*.rc -utils/nplugin/samples/gui/*.def -utils/nplugin/samples/gui/makefile.* -utils/nplugin/samples/gui/*.txt -utils/nplugin/docs/*.tex -utils/nplugin/docs/*.txt -utils/nplugin/docs/*.hpj -utils/nplugin/docs/*.eps -utils/nplugin/docs/*.ps -utils/nplugin/docs/*.ini -utils/nplugin/docs/*.cnt -utils/nplugin/docs/*.hlp -utils/nplugin/lib/dummy - diff --git a/distrib/msw/ogl.rsp b/distrib/msw/ogl.rsp deleted file mode 100644 index 72d552d4f0..0000000000 --- a/distrib/msw/ogl.rsp +++ /dev/null @@ -1,72 +0,0 @@ -utils/ogl/Makefile - -utils/ogl/src/*.cpp -utils/ogl/src/*.h -utils/ogl/src/*.rc -utils/ogl/src/*.def -utils/ogl/src/*.xbm -utils/ogl/src/*.xpm -utils/ogl/src/make*.* -utils/ogl/src/Makefile -utils/ogl/src/*.txt -utils/ogl/src/*.ico -utils/ogl/src/*.bmp - -utils/ogl/samples/ogledit/*.cpp -utils/ogl/samples/ogledit/*.h -utils/ogl/samples/ogledit/*.rc -utils/ogl/samples/ogledit/*.def -utils/ogl/samples/ogledit/*.xbm -utils/ogl/samples/ogledit/make*.* -utils/ogl/samples/ogledit/Makefile -utils/ogl/samples/ogledit/*.txt -utils/ogl/samples/ogledit/*.ico -utils/ogl/samples/ogledit/*.bmp -utils/ogl/samples/ogledit/*.xpm -utils/ogl/samples/ogledit/bitmaps/*.bmp -utils/ogl/samples/ogledit/bitmaps/*.gif -utils/ogl/samples/ogledit/bitmaps/*.xbm -utils/ogl/samples/ogledit/bitmaps/*.xpm - -utils/ogl/samples/studio/*.cpp -utils/ogl/samples/studio/*.h -utils/ogl/samples/studio/*.rc -utils/ogl/samples/studio/*.def -utils/ogl/samples/studio/*.xbm -utils/ogl/samples/studio/make*.* -utils/ogl/samples/studio/Makefile -utils/ogl/samples/studio/*.txt -utils/ogl/samples/studio/*.ico -utils/ogl/samples/studio/*.bmp -utils/ogl/samples/studio/*.xpm -utils/ogl/samples/studio/*.wxr -utils/ogl/samples/studio/bitmaps/*.bmp -utils/ogl/samples/studio/bitmaps/*.gif -utils/ogl/samples/studio/bitmaps/*.xbm -utils/ogl/samples/studio/bitmaps/*.xpm -utils/ogl/samples/studio/manual/*.tex -utils/ogl/samples/studio/manual/*.ini -utils/ogl/samples/studio/manual/*.gif -utils/ogl/samples/studio/manual/*.bmp -utils/ogl/samples/studio/manual/*.htm -utils/ogl/samples/studio/manual/*.hlp -utils/ogl/samples/studio/manual/*.cnt -utils/ogl/samples/studio/manual/Makefile - -utils/ogl/distrib/*.rsp -utils/ogl/distrib/*.bat - -utils/ogl/docs/*.txt -utils/ogl/docs/*.tex -utils/ogl/docs/*.ini -utils/ogl/docs/*.hpj -utils/ogl/docs/*.ps -utils/ogl/docs/*.eps -utils/ogl/docs/*.bmp -utils/ogl/docs/*.gif - -docs/html/ogl/*.* -docs/winhelp/ogl.hlp -docs/winhelp/ogl.cnt -docs/pdf/ogl.pdf - diff --git a/distrib/msw/stubs.rsp b/distrib/msw/stubs.rsp deleted file mode 100644 index df64c1f58d..0000000000 --- a/distrib/msw/stubs.rsp +++ /dev/null @@ -1,15 +0,0 @@ -src/stubs/*.cpp -src/stubs/*.h -src/stubs/makefile* -src/stubs/*.inc - -src/make.env -src/makeprog.env -src/makelib.env - -include/wx/stubs/*.h -include/wx/stubs/*.rc - -lib/dummy - - diff --git a/distrib/msw/tardist b/distrib/msw/tardist deleted file mode 100644 index 72b1df566e..0000000000 --- a/distrib/msw/tardist +++ /dev/null @@ -1,108 +0,0 @@ -#!/bin/sh -# tardist: make up a tar.gz distribution of wxWindows 2 -# Supply a source (e.g. ~/wx2) and destination (e.g. ~/wx2/deliver) - -init="" -if [ $1 = "" ] -then - exit -fi - -if [ $2 = "" ] -then - exit -fi - -echo About to archive wxWindows: -echo From $1 -echo To $2 -echo CTRL-C if this is not correct. -read dummy - -cd $1 - -echo Removing backup files... -rm *~ */*~ */*/*~ */*/*/*~ */*/*/*/*~ - -rm -f $2/wx200*.tgz -rm -f $2/tex2rtf2.tgz -rm -f $2/ogl3.tgz -rm -f $2/treedraw.tar.gz -rm -f $2/glcanvas.tar.gz -rm -f $2/jpeg.tgz - -echo Tarring... - -### Generic -ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/makefile.rsp` > /tmp/wxgen.txt -tar cvf $2/wx200gen.tar -T /tmp/wxgen.txt -gzip $2/wx200gen.tar -mv $2/wx200gen.tar.gz $2/wx200gen.tgz - -### wxGTK -ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/gtk.rsp $1/distrib/msw/makefile.rsp` > /tmp/wxgtk.txt -tar cvf $2/wx200gtk.tar -T /tmp/wxgtk.txt -gzip $2/wx200gtk.tar -mv $2/wx200gtk.tar.gz $2/wx200gtk.tgz - -### wxMotif -ls `cat $1/distrib/msw/generic.rsp $1/distrib/msw/motif.rsp $1/distrib/msw/makefile.rsp` > /tmp/wxmotif.txt -tar cvf $2/wx200mot.tar -T /tmp/wxmotif.txt -gzip $2/wx200mot.tar -mv $2/wx200mot.tar.gz $2/wx200mot.tgz - -### Doc sources -ls `cat $1/distrib/msw/docsrc.rsp` > /tmp/docsrc.txt -tar cvf $2/wx200doc.tar -T /tmp/docsrc.txt -gzip $2/wx200doc.tar -mv $2/wx200doc.tar.gz $2/wx200doc.tgz - -### HTML docs -ls `cat $1/distrib/msw/wx_html.rsp` > /tmp/html.txt -tar cvf $2/wx200htm.tar -T /tmp/html.txt -gzip $2/wx200htm.tar -mv $2/wx200htm.tar.gz $2/wx200htm.tgz - -### PDF docs -ls `cat $1/distrib/msw/wx_pdf.rsp` > /tmp/pdf.txt -tar cvf $2/wx200pdf.tar -T /tmp/pdf.txt -gzip $2/wx200pdf.tar -mv $2/wx200pdf.tar.gz $2/wx200pdf.tgz - -### Stubs files -ls `cat $1/distrib/msw/stubs.rsp` > /tmp/stubs.txt -tar cvf $2/wx200stubs.tar -T /tmp/stubs.txt -gzip $2/wx200stubs.tar -mv $2/wx200stubs.tar.gz $2/wx200stubs.tgz - -### Tex2RTF -ls `cat $1/distrib/msw/tex2rtf.rsp` > /tmp/tex2rtf.txt -tar cvf $2/tex2rtf2.tar -T /tmp/tex2rtf.txt -gzip $2/tex2rtf2.tar -mv $2/tex2rtf2.tar.gz $2/tex2rtf2.tgz - -### OGL -ls `cat $1/distrib/msw/ogl.rsp` > /tmp/ogl.txt -tar cvf $2/ogl3.tar -T /tmp/ogl.txt -gzip $2/ogl3.tar -mv $2/ogl3.tar.gz $2/ogl3.tgz - -### wxGLCanvas -ls `cat $1/distrib/msw/glcanvas.rsp` > /tmp/glcanvas.txt -tar cvf $2/glcanvas.tar -T /tmp/glcanvas.txt -gzip $2/glcanvas.tar -mv $2/glcanvas.tar.gz $2/glcanvas.tgz - -### wxTreeLayout -ls `cat $1/distrib/msw/wxtree.rsp` > /tmp/wxtree.txt -tar cvf $2/treedraw.tar -T /tmp/wxtree.txt -gzip $2/treedraw.tar -mv $2/treedraw.tar.gz $2/treedraw.tgz - -### JPEG -ls `cat $1/distrib/msw/jpeg.rsp` > /tmp/jpeg.txt -tar cvf $2/jpeg.tar -T /tmp/jpeg.txt -gzip $2/jpeg.tar -mv $2/jpeg.tar.gz $2/jpeg.tgz - -echo Done! diff --git a/distrib/msw/tardist.bat b/distrib/msw/tardist.bat deleted file mode 100755 index 91ce1fdf16..0000000000 --- a/distrib/msw/tardist.bat +++ /dev/null @@ -1,117 +0,0 @@ -@echo off -rem Tar up an external distribution of wxWindows 2.0: but -rem putting in separate ASCII and binary files -rem This seems to be the one that works, using -rem separate tar programs for conversion/non-conversion -rem of ASCII/binary files. - -if "%1" == "" goto usage -if "%2" == "" goto usage -echo About to archive an external wxWindows 2.0 distribution: -echo From %1 -echo To %2\wx200_1.tgz, %2\wx200_2.tgz, %2\wx200hlp.tgz, %2\wx200ps.tgz, %2\wx200htm.tgz -echo CTRL-C if this is not correct. -inkey /W4 `Press any key to continue...` %%input - -erase %2\*.tgz -cd %1 - -rem First, expand the wildcards in the rsp files - -rem Create empty list file -erase %1\distrib\*.lis -c:\bin\touch %1\distrib\wx200asc.lis -c:\bin\touch %1\distrib\wx200bin.lis -c:\bin\touch %1\distrib\wx200hlp.lis -c:\bin\touch %1\distrib\wx200ps.lis -c:\bin\touch %1\distrib\wx200xlp.lis - -rem Create a .rsp file with backslashes instead -rem of forward slashes -rem No need if using ls2 (from UNIX95 distribution) -rem sed -e "s/\//\\/g" %1\distrib\wx_asc.rsp > %1\distrib\wx_asc.rs2 - -call %1\distrib\expdwild.bat %1\distrib\wx_asc.rsp %1\distrib\wx200asc.lis -call %1\distrib\expdwild.bat %1\distrib\util_asc.rsp %1\distrib\wx200asc.lis -call %1\distrib\expdwild.bat %1\distrib\smpl_asc.rsp %1\distrib\wx200asc.lis -rem call %1\distrib\expdwild.bat %1\distrib\wxim1asc.rsp %1\distrib\wx200asc.lis -rem call %1\distrib\expdwild.bat %1\distrib\wxim2asc.rsp %1\distrib\wx200asc.lis - -call %1\distrib\expdwild.bat %1\distrib\wx_bin.rsp %1\distrib\wx200bin.lis -call %1\distrib\expdwild.bat %1\distrib\util_bin.rsp %1\distrib\wx200bin.lis -call %1\distrib\expdwild.bat %1\distrib\smpl_bin.rsp %1\distrib\wx200bin.lis -rem call %1\distrib\expdwild.bat %1\distrib\wxim1bin.rsp %1\distrib\wx200bin.lis - -rem Docs -call %1\distrib\expdwild.bat %1\distrib\wx_hlp.rsp %1\distrib\wx200hlp.lis -call %1\distrib\expdwild.bat %1\distrib\wx_ps.rsp %1\distrib\wx200ps.lis -call %1\distrib\expdwild.bat %1\distrib\wx_html.rsp %1\distrib\wx200htm.lis -call %1\distrib\expdwild.bat %1\distrib\wx_pdf.rsp %1\distrib\wx200pdf.lis - -rem Do some further massaging of the .lis files -sed -e "s/\\/\//g" %1\distrib\wx200asc.lis > c:\temp\temp.tmp -sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200asc.lis - -sed -e "s/\\/\//g" %1\distrib\wx200bin.lis > c:\temp\temp.tmp -sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200bin.lis - -sed -e "s/\\/\//g" %1\distrib\wx200hlp.lis > c:\temp\temp.tmp -sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200hlp.lis - -sed -e "s/\\/\//g" %1\distrib\wx200ps.lis > c:\temp\temp.tmp -sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200ps.lis - -sed -e "s/\\/\//g" %1\distrib\wx200htm.lis > c:\temp\temp.tmp -sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200htm.lis - -sed -e "s/\\/\//g" %1\distrib\wx200pdf.lis > c:\temp\temp.tmp -sed -e "s/D:\/wx\///g" c:\temp\temp.tmp > %1\distrib\wx200pdf.lis - -rem 'tar' converts linefeeds. -tar -c -T %1\distrib\wx200asc.lis -f %2\wx200.tar -rem pause Press a key to continue. - -rem This converts to lower case -ren %2\wx200.tar %2\wx200_1.tar -gzip32 %2\wx200_1.tar -ren %2\wx200_1.tar.gz %2\wx200_1.tgz - -rem No linefeed conversion wanted -rem Note: GNU tar seems to crash with a full destination path, so -rem pander to it. -targnu -c -T %1\distrib\wx200bin.lis -f wx200_2.tar -move wx200_2.tar %2 -gzip32 %2\wx200_2.tar -ren %2\wx200_2.tar.gz %2\wx200_2.tgz - -targnu -c -T %1\distrib\wx200hlp.lis -f wx200_hlp.tar -move wx200_hlp.tar %2 -gzip32 %2\wx200_hlp.tar -ren %2\wx200_hlp.tar.gz %2\wx200hlp.tgz - -tar -c -T %1\distrib\wx200ps.lis -f %2\wx200ps.tar -gzip32 %2\wx200ps.tar -ren %2\wx200ps.tar.gz %2\wx200ps.tgz - -targnu -c -T %1\distrib\wx200htm.lis -f wx200htm.tar -move wx200htm.tar %2 -gzip32 %2\wx200htm.tar -ren %2\wx200htm.tar.gz %2\wx200htm.tgz - -targnu -c -T %1\distrib\wx200pdf.lis -f wx200pdf.tar -move wx200pdf.tar %2 -gzip32 %2\wx200pdf.tar -ren %2\wx200pdf.tar.gz %2\wx200pdf.tgz - -cd %2 -echo wxWindows archived. -goto end - -:usage -echo Tar/gzip wxWindows distribution under DOS, making an ASCII and binary file -echo Usage: tardist source destination -echo e.g. tardist d:\wx d:\wx\deliver - -:end - - diff --git a/distrib/msw/tex2rtf.rsp b/distrib/msw/tex2rtf.rsp deleted file mode 100644 index 294535d9d6..0000000000 --- a/distrib/msw/tex2rtf.rsp +++ /dev/null @@ -1,27 +0,0 @@ -utils/tex2rtf/src/*.cpp -utils/tex2rtf/src/*.h -utils/tex2rtf/src/make*.* -utils/tex2rtf/src/Makefile -utils/tex2rtf/src/*.xbm -utils/tex2rtf/src/*.xpm -utils/tex2rtf/src/*.sty -utils/tex2rtf/src/*.ini -utils/tex2rtf/lib/dummy -utils/tex2rtf/src/*.bmp -utils/tex2rtf/src/*.ico -utils/tex2rtf/src/*.def -utils/tex2rtf/src/*.rc - -utils/tex2rtf/docs/*.tex -utils/tex2rtf/docs/*.sty -utils/tex2rtf/docs/*.bib -utils/tex2rtf/docs/*.hpj -utils/tex2rtf/docs/*.ini -utils/tex2rtf/docs/*.txt -utils/tex2rtf/docs/*.cnt -utils/tex2rtf/docs/*.eps -utils/tex2rtf/docs/*.bmp -utils/tex2rtf/docs/*.gif -utils/tex2rtf/docs/*.wmf -utils/tex2rtf/docs/*.shg - diff --git a/distrib/msw/user.rsp b/distrib/msw/user.rsp deleted file mode 100644 index f9908ffa90..0000000000 --- a/distrib/msw/user.rsp +++ /dev/null @@ -1,27 +0,0 @@ -user/Makefile - -user/wxConvert/*.cpp -user/wxConvert/*.h -user/wxConvert/Makefile -user/wxConvert/Makefile.in - -user/wxFile/*.cpp -user/wxFile/*.h -user/wxFile/Makefile -user/wxFile/Makefile.in -user/wxFile/*.xpm - -user/wxTest/*.cpp -user/wxTest/*.h -user/wxTest/Makefile -user/wxTest/Makefile.in -user/wxTest/*.xpm -user/wxTest/*.png - -user/wxLayout/*.cpp -user/wxLayout/*.h -user/wxLayout/Makefile -user/wxLayout/Makefile.in -user/wxLayout/*.xpm -user/wxLayout/*.png - diff --git a/distrib/msw/vc.rsp b/distrib/msw/vc.rsp deleted file mode 100644 index 821c749a80..0000000000 --- a/distrib/msw/vc.rsp +++ /dev/null @@ -1,159 +0,0 @@ -src/wxvc.dsp -src/wxvc.dsw -src/wxvc6.dsp -src/wxvc6.dsw -src/wxvc_dll.dsp -src/wxvc_dll.dsw - -samples/checklst/ChecklstVC.dsp -samples/checklst/ChecklstVC.dsw - -samples/config/ConfigVC.dsp -samples/config/ConfigVC.dsw - -samples/controls/ControlsVC.dsp -samples/controls/ControlsVC.dsw - -samples/db/DbVC.dsp -samples/db/DbVC.dsw - -samples/dialogs/DialogsVC.dsp -samples/dialogs/DialogsVC.dsw - -samples/dnd/DndVC.dsp -samples/dnd/DndVC.dsw - -samples/docview/DocviewVC.dsp -samples/docview/DocviewVC.dsw - -samples/docvwmdi/DocViewVC.dsp -samples/docvwmdi/DocViewVC.dsw - -samples/dynamic/DynamicVC.dsp -samples/dynamic/DynamicVC.dsw - -samples/forty/FortyVC.dsp -samples/forty/FortyVC.dsw - -samples/grid/GridVC.dsp -samples/grid/GridVC.dsw - -samples/help/HelpVC.dsp -samples/help/HelpVC.dsw - -samples/image/ImageVC.dsp -samples/image/ImageVC.dsw - -samples/internat/InternatVC.dsp -samples/internat/InternatVC.dsw - -samples/joytest/JoytestVC.dsp -samples/joytest/JoytestVC.dsw - -samples/layout/LayoutVC.dsp -samples/layout/LayoutVC.dsw - -samples/listctrl/ListCtrlVC.dsp -samples/listctrl/ListCtrlVC.dsw - -samples/mdi/MdiVC.dsp -samples/mdi/MdiVC.dsw - -samples/memcheck/MemcheckVC.dsp -samples/memcheck/MemcheckVC.dsw - -samples/mfc/MfcVC.dsp -samples/mfc/MfcVC.dsw - -samples/minimal/MinimalVC.dsp -samples/minimal/MinimalVC.dsw - -samples/minifram/MiniframVC.dsp -samples/minifram/MiniframVC.dsw - -samples/nativdlg/NativdlgVC.dsp -samples/nativdlg/NativdlgVC.dsw - -samples/notebook/NotebookVC.dsp -samples/notebook/NotebookVC.dsw - -samples/ownerdrw/OwnerDrwVC.dsp -samples/ownerdrw/OwnerDrwVC.dsw - -samples/png/PngVC.dsp -samples/png/PngVC.dsw - -samples/printing/PrintingVC.dsp -samples/printing/PrintingVC.dsw - -samples/Regtest/RegtestVC.dsp -samples/Regtest/RegtestVC.dsw - -samples/resource/ResourceVC.dsp -samples/resource/ResourceVC.dsw - -samples/sashtest/SashtestVC.dsp -samples/sashtest/SashtestVC.dsw - -samples/splitter/SplitterVC.dsp -samples/splitter/SplitterVC.dsw - -samples/tab/TabVC.dsp -samples/tab/TabVC.dsw - -samples/taskbar/TaskbarVC.dsp -samples/taskbar/TaskbarVC.dsw - -samples/thread/ThreadVC.dsp -samples/thread/ThreadVC.dsw - -samples/toolbar/ToolbarVC.dsp -samples/toolbar/ToolbarVC.dsw - -samples/treectrl/TreectrlVC.dsp -samples/treectrl/TreeCtrlVC.dsw - -samples/typetest/TypetestVC.dsp -samples/typetest/TypetestVC.dsw - -samples/validate/ValidateVC.dsp -samples/validate/ValidateVC.dsw - -samples/wxsocket/ClientVC.dsp -samples/wxsocket/ServerVC.dsw - -samples/wxpoem/PoemVC.dsp -samples/wxpoem/PoemVC.dsw - -utils/wxprop/src/PropVC.dsp -utils/wxprop/src/PropVC.dsw -utils/wxprop/src/PropSampleVC.dsp -utils/wxprop/src/PropSampleVC.dsw - -utils/dialoged/src/DialogEdVC.dsp -utils/dialoged/src/DialogEdVC.dsw - -utils/tex2rtf/src/Tex2RTFVC.dsp -utils/tex2rtf/src/Tex2RTFVC.dsw - -utils/glcanvas/win/GlcanvasVC.dsp -utils/glcanvas/win/GlcanvasVC.dsw -utils/glcanvas/samples/cube/CubeVC.dsp -utils/glcanvas/samples/cube/CubeVC.dsw -utils/glcanvas/samples/isosurf/IsosurfVC.dsp -utils/glcanvas/samples/isosurf/IsosurfVC.dsw -utils/glcanvas/samples/penguin/PenguinVC.dsp -utils/glcanvas/samples/penguin/PenguinVC.dsw - -utils/ogl/src/OglVC.dsp -utils/ogl/src/OglVC.dsw -utils/ogl/samples/ogledit/OgleditVC.dsp -utils/ogl/samples/ogledit/OgleditVC.dsw -utils/ogl/samples/studio/StudioVC.dsp -utils/ogl/samples/studio/StudioVC.dsw - -utils/wxtree/src/TreeVC.dsp -utils/wxtree/src/TreeVC.dsw -utils/wxtree/src/TreeSampleVC.dsp -utils/wxtree/src/TreeSampleVC.dsw - diff --git a/distrib/msw/wx_hlp.rsp b/distrib/msw/wx_hlp.rsp deleted file mode 100644 index 1a72b4735b..0000000000 --- a/distrib/msw/wx_hlp.rsp +++ /dev/null @@ -1,2 +0,0 @@ -docs/winhelp/*.hlp -docs/winhelp/*.cnt diff --git a/distrib/msw/wx_html.rsp b/distrib/msw/wx_html.rsp deleted file mode 100644 index a67cc06bc3..0000000000 --- a/distrib/msw/wx_html.rsp +++ /dev/null @@ -1,37 +0,0 @@ -docs/html/*.htm -docs/html/*.gif - -docs/html/wx/*.htm -docs/html/wx/*.gif -docs/html/porting/*.htm -docs/html/porting/*.gif -docs/html/faq/*.htm -docs/html/faq/*.gif -docs/html/techref/*.htm -docs/html/techref/*.gif - -docs/html/dialoged/*.htm -docs/html/dialoged/*.gif - -docs/html/wxtree/*.htm -docs/html/wxtree/*.gif - -docs/html/wxgraph/*.htm -docs/html/wxgraph/*.gif - -docs/html/wxhelp/*.htm -docs/html/wxhelp/*.gif - -docs/html/proplist/*.htm -docs/html/proplist/*.gif - -docs/html/winstall/*.htm -docs/html/winstall/*.gif - -docs/html/tex2rtf/*.htm -docs/html/tex2rtf/*.gif - -docs/html/odbc/*.htm - -docs/html/gettext/*.htm - diff --git a/distrib/msw/wx_pdf.rsp b/distrib/msw/wx_pdf.rsp deleted file mode 100644 index 6a979c3678..0000000000 --- a/distrib/msw/wx_pdf.rsp +++ /dev/null @@ -1 +0,0 @@ -docs/pdf/*.pdf diff --git a/distrib/msw/wx_word.rsp b/distrib/msw/wx_word.rsp deleted file mode 100644 index 2cbc9b26ed..0000000000 --- a/distrib/msw/wx_word.rsp +++ /dev/null @@ -1,2 +0,0 @@ -docs/word/odbc.doc - diff --git a/distrib/msw/wxtree.rsp b/distrib/msw/wxtree.rsp deleted file mode 100644 index c84c1fa0e7..0000000000 --- a/distrib/msw/wxtree.rsp +++ /dev/null @@ -1,10 +0,0 @@ -utils/wxtree/src/*.cpp -utils/wxtree/src/*.h -utils/wxtree/src/makefile* -utils/wxtree/src/*.xbm -utils/wxtree/src/*.xpm -utils/wxtree/lib/dummy -utils/wxtree/src/*.ico -utils/wxtree/src/*.def -utils/wxtree/src/*.rc - diff --git a/distrib/msw/zipdist.bat b/distrib/msw/zipdist.bat deleted file mode 100755 index ae92d29bac..0000000000 --- a/distrib/msw/zipdist.bat +++ /dev/null @@ -1,77 +0,0 @@ -@echo off -rem Zip up an external, generic + Windows distribution of wxWindows 2.0 -set src=%wxwin -set dest=%src\deliver -if "%src" == "" goto usage -if "%dest" == "" goto usage -echo About to archive an external wxWindows distribution: -echo From %src -echo To %dest -echo CTRL-C if this is not correct. -pause - -erase %dest\wx200*.zip -erase %dest\glcanvas.zip -erase %dest\ogl3.zip -erase %dest\tex2rtf2.zip -erase %dest\jpeg.zip - -cd %src -echo Zipping... - -zip32 -@ %dest\wx200gen.zip < %src\distrib\msw\generic.rsp -zip32 -@ %dest\wx200msw.zip < %src\distrib\msw\msw.rsp -zip32 -@ %dest\wx200gtk.zip < %src\distrib\msw\gtk.rsp -zip32 -@ %dest\wx200stubs.zip < %src\distrib\msw\stubs.rsp -zip32 -@ %dest\wx200mot.zip < %src\distrib\msw\motif.rsp -zip32 -@ %dest\wx200user.zip < %src\distrib\msw\user.rsp - -zip32 -@ %dest\wx200doc.zip < %src\distrib\msw\docsrc.rsp -zip32 -@ %dest\wx200hlp.zip < %src\distrib\msw\wx_hlp.rsp -zip32 -@ %dest\wx200htm.zip < %src\distrib\msw\wx_html.rsp -zip32 -@ %dest\wx200pdf.zip < %src\distrib\msw\wx_pdf.rsp -zip32 -@ %dest\wx200wrd.zip < %src\distrib\msw\wx_word.rsp - -rem VC++ project files -zip32 -@ %dest\wx200vc.zip < %src\distrib\msw\vc.rsp - -rem BC++ project files -zip32 -@ %dest\wx200bc.zip < %src\distrib\msw\bc.rsp - -rem CodeWarrior project files -zip32 -@ %dest\wx200cw.zip < %src\distrib\msw\cw.rsp - -rem OGL 3 -zip32 -@ %dest\ogl3.zip < %src\distrib\msw\ogl.rsp - -rem GLCanvas -zip32 -@ %dest\glcanvas.zip < %src\distrib\msw\glcanvas.rsp - -rem Tex2RTF -zip32 -@ %dest\tex2rtf2.zip < %src\distrib\msw\tex2rtf.rsp - -rem wxTreeLayout -zip32 -@ %dest\treedraw.zip < %src\distrib\msw\wxtree.rsp - -rem JPEG source -zip32 -@ %dest\jpeg.zip < %src\distrib\msw\jpeg.rsp - -copy %src\docs\changes.txt %dest -copy %src\docs\msw\install.txt %dest\install_msw.txt -copy %src\docs\motif\install.txt %dest\install_motif.txt -copy %src\docs\gtk\install.txt %dest\install_gtk.txt -copy %src\docs\readme.txt %dest -copy %src\docs\motif\makewxmotif %dest -copy %src\docs\gtk\makewxgtk %dest - -cd %dest - -echo wxWindows archived. -goto end - -:usage -echo DOS wxWindows distribution. -echo Usage: zipdist source destination -echo e.g. zipdist d:\wx2\wxWindows d:\wx2\wxWindows\deliver - -:end diff --git a/docs/bugs.txt b/docs/bugs.txt deleted file mode 100644 index e65b274512..0000000000 --- a/docs/bugs.txt +++ /dev/null @@ -1,54 +0,0 @@ -wxWindows Buglist ------------------ - -wxGTK: ------- - -- It is impossible to reposition a window before showing it - on screen. Suspected GTK bug. - -- DnD does only moderately work. - -wxMSW: ------- - -- TODO - -wxMotif: --------- - -- If a popup wxMenu is destroyed after its parent window has been - destroyed, we get the message "Object XXX does not have windowed - ancestor". - Workaround: delete the menu before deleting the window on which it - was popped up. - Possible fix: call menu->DestroyMenu() before deleting the window, - if the window knows about the menu that was last popped up (hard - to know this with confidence). - -- In wxGrid, cell highlight is not drawn/erased properly. - -- Setting the size of a hidden window may show that window. - -- wxRadioBox sometimes doesn't show (e.g. in controls sample). - -- Can't set the colours for the buttons in the file selector, for - some reason. - -- On SGI IRIX 6.4, XtDestroyWidget in ~wxWindow causes a crash in - some cicumstances. This is being looked into. Meanwhile, a - possible workaround is to remove the final XtDestroyWidget line in ~wxWindow - (window.cpp). This will mean that child windows will only get - destroyed when frames and dialogs are destroyed, so dynamic subwindow - deletion may not work properly. - -- There are reports that scrolling can cause crashes under Lesstif. - This is probably a Lesstif bug. - -General: --------- - -- Dialog Editor could be more user-friendly. Controls are hard to - size and position accurately. No way of changing tab order - except by editing .wxr file. - diff --git a/docs/changes.txt b/docs/changes.txt deleted file mode 100644 index b465e7978d..0000000000 --- a/docs/changes.txt +++ /dev/null @@ -1,746 +0,0 @@ -wxWindows 2 Change Log ----------------------- - -2.1.0, b?, June 2nd 1999 ------------------------- - -wxGTK: - - -wxMSW: - - -wxMotif: - - -General: - -- Fixed day_of_week bug (Peter Stadel). -- Added Inside(), SetLeft/Right/Top/Bottom, +, += to wxRect. - -2.1.0, b4, May 9th 1999 ------------------------ - -wxGTK: - -- JPEG support added. -- Many fixes and changes not thought worth mentioning in this file :-) - -wxMSW: - -- wxNotebook changes: can add image only; wxNB_FIXEDWIDTH added; - SetTabSize added. -- JPEG support added. -- Fixes for Cygwin compilation. -- Added wxGA_SMOOTH and wxFRAME_FLOAT_ON_PARENT styles. -- Many fixes people didn't tell this file about. - -wxMotif: - - -General: - -- Some changes for Unicode support, including wxchar.h/cpp. - - -2.0.1 (release), March 1st 1999 -------------------------------- - -wxGTK: - -- wxGLCanvas fixes. -- Slider/spinbutton fixes. - -wxMSW: - -- Fixed problems with in dialogs/panels. -- Fixed window cursor setting. -- Fixed toolbar sizing and edge-clipping problems. -- Some makefile fixes. - -wxMotif: - -- None. - -General: - -- Added wxUSE_SOCKETS. -- More topic overviews. -- Put wxPrintPaperType, wxPrintPaperDatabase into - prntbase.h/cpp for use in non-PostScript situations - (e.g. Win16 wxPageSetupDialog). - - -Beta 5, February 18th 1999 --------------------------- - -wxGTK: - -- wxExecute improved. - -wxMSW: - -- Fixed wxWindow::IsShown (::IsWindowVisible doesn't behave as - expected). -- Changed VC++ makefiles (.vc) so that it's possible to have - debug/release/DLL versions of the library available simultaneously, - with names wx.lib, wx_d.lib, wx200.lib(dll), wx200_d.lib(dll). -- Added BC++ 5 IDE files and instructions. -- Fixed wxChoice, wxComboBox constructor bugs (m_noStrings initialisation). -- Fixed focus-related crash. - -wxMotif: - -- Cured asynchronous wxExecute crash. -- Added repaint event handlers to wxFrame, wxMDIChildFrame. - -General: - -- wxLocale documented. -- Added include filenames to class reference. -- wxHelpController API changed: SetBrowser becomes SetViewer, - DisplaySection works for WinHelp, help sample compiles under Windows - (though doesn't display help yet). - -Beta 4, February 12th 1999 --------------------------- - -wxGTK: - -- Miscellaneous fixes. - -wxMSW: - -- Makefiles for more compilers and samples; Cygwin makefiles - rationalised. -- Added VC++ project file for compiling wxWindows as DLL. - -wxMotif: - -- Added OnEraseBackground invocation. -- Added wxRETAINED implementation for wxScrolledWindow. -- Cured scrolling display problem by adding XmUpdateDisplay. -- Tried to make lex-ing in the makefile more generic (command line - syntax should apply to both lex and flex). -- Changed file selector colours for consistency (except for buttons: - crashes for some reason). -- Fixed wxMotif version of wxImage::ConvertToBitmap (used new instead - of malloc, which causes memory problems). - -General: - -- Further doc improvements. -- wxGenericValidator added. -- Added wxImageModule to image.cpp, so adds/cleans up standard handlers - automatically. - -Beta 3, January 31st 1999 -------------------------- - -wxGTK: - -- wxClipboard/DnD API changes (still in progress). -- wxToolTip class added. -- Miscellaneous fixes. - -wxMSW: - -- wxRegConfig DeleteAll bug fixed. -- Makefiles for more compilers. -- TWIN32 support added. -- Renamed VC++ makefiles from .nt to .vc, and - factored out program/library settings. -- Fixed wxIniConfig bug. - -wxMotif: - -- A few more colour fixes. -- wxGLCanvas and OpenGL samples working. -- Some compiler warnings fixed. -- wxChoice crash fix. -- Dialog Editor starting to work on Motif. - -General: - -- wxBusyCursor class added. -- Added samples/dde. -- More doc improvements, incl. expanding docs/html/index.htm. - -Beta 2, January 1999 --------------------- - -wxGTK: - -wxMSW: - -- 16-bit BC++ compilation/linking works albeit without the resource system. - -wxMotif: - -- Cured wxScreenDC origin problem so e.g. sash window sash is drawn at - the right place. -- Cured some widget table clashes. -- Added thread support (Robert). -- wxPoem sample now works. - -General: - -- Rearranged documentation a bit. -- Sash window uses area of first frame/dialog to paint over when drawing - the dragged sash, not just the sash window itself (it clipped to the right - or below). -- Made resource sample use the correct Cancel button id. -- Moved wxProp to main library (generic directory), created proplist - sample. -- Added bombs and fractal samples. - -Beta 1, December 24th 1998 --------------------------- - -wxGTK: - -- Various - -wxMSW, wxMotif: not in sync with this release. - - -Alpha 18, December 29th 1998 ----------------------------- - -wxMSW: - -- Win16 support working again (VC++ 1.5) -- Win16 now uses generic wxNotebook, wxListCtrl, - wxTreeCtrl -- more or less working now, although - a little work on wxNotebook is still needed. - Under 16-bit Windows, get assertion when you click - on a tab. -- Wrote 16-bit BC++ makefiles: samples don't yet link. -- Added CodeWarrior support to distribution courtesy - of Stefan Csomor. - -wxMotif: - -- Cured scrolling problem: scrollbars now show/hide themselves - without (permanently) resizing the window. -- Removed some commented-out lines in wxScrolledWindow::AdjustScrollbars - that disabled scrollbar paging. -- Set background colour of drawing area in wxWindow, so e.g. wxListCtrl - colours correctly. -- Removed major bug whereby dialogs were unmanaged automatically - when any button was pressed. -- Fixed colours of wxWindow scrollbars, made list and text controls - have a white background. -- Fixed dialog colour setting. -- Added settable fonts and colours for wxMenu/wxMenuBar. Now - they have sensible colours by default. -- Fixed a bug in wxStaticBox. -- Cured wxTreeCtrl bug: now works pretty well! -- Debugged DrawEllipticArc (a ! in the wrong place). -- Added SetClippingRegion( const wxRegion& region ). -- Added wxPoint, wxSize, wxRect versions of SetSize etc. - -Alpha 17, November 22nd 1998 ----------------------------- - -wxMSW: - -- More documentation updates, especially for - wxLayoutWindow classes and debugging facilities. -- Changed wxDebugContext to use wxDebugLog instead - of wxTrace. -- Now supports VC++ 6.0, and hopefully BC++ 5.0. - However, DLL support may be broken for BC++ since - VC++ 6 required changing of WXDLLEXPORT keyword - position. -- Numerous miscellaneous changes. - -wxMotif: - -- Reimplemented MDI using wxNotebook instead of the MDI widgets, which - were too buggy (probably not design for dynamic addition/removal of - child frames). -- Some improvements to the wxNotebook implementation. -- wxToolBar now uses a bulletin board instead of a form, in an attempt - to make it possible to add ordinary wxControls to a toolbar. -- Cured problem with not being able to use global memory operators, - by defining two more global operators, so that the delete will match - the debugging implementation. -- Added wxUSE_DEBUG_NEW_ALWAYS so we can distinguish between using - global memory operators (usually OK) and #defining new to be - WXDEBUG_NEW (sometimes it might not be OK). -- Added time.cpp to makefile; set wxUSE_DATETIME to 1. -- Added a parent-existance check to popup menu code to make it not crash. -- Added some optimization in wxWindow::SetSize to produce less flicker. - It remains to be seen whether this produces any resize bugs. - -It's a long time since I updated this file. Previously done: - -- wxFrame, wxDialog done. -- wxScrolledWindow done (but backing pixmap not used at present). -- wxBitmap done though could be tidied it up at some point. -- Most basic controls are there, if not rigorously tested. -- Some MDI support (menus appear on child frames at present). -- wxNotebook almost done. -- wxToolBar done (horizontal only, which would be easy to extend - to vertical toolbars). - -More recently: - -- Colour and font changing done (question mark over what happens - to scrollbars). -- Accelerators done (for menu items and buttons). Also event loop - tidied up in wxApp so that events are filtered through ProcessXEvent. -- wxWindow::GetUpdateRegion should now work. - -Alpha 16, September 8th 1998 ----------------------------- - -wxMSW: - -- Added wxSashWindow, wxSashLayoutWindow classes, and sashtest - sample. -- Guilhem's socket classes added, plus wxsocket sample. -- A few more makefiles added. -- GnuWin32/BC++ compatibility mods. -- Further doc updates. -- wxProp updates for correct working with wxGTK. - -wxMotif: - -- First start at Motif port. -- Made makefiles for wxMotif source directory and minimal sample. -- First go at wxApp, wxWindow, wxDialog, wxPen, wxBrush, wxFont, - wxColour, wxButton, wxCheckBox, wxTextCtrl, wxStaticText, - wxMenu, wxMenuItem, wxMenuBar - -Alpha 15, August 31st 1998 --------------------------- - -wxMSW: - -- wxBitmap debugged. -- wxDC::GetDepth added. -- Contribution added whereby wxBitmap will be - converted to DC depth if they don't match. -- wxConfig API improved, documentation updated. -- Printing classes name conventions cleaned up. -- wxUpdateUIEvent now derives from wxCommandEvent - so event can travel up the window hierachy. - -Alpha 14, July 31st 1998 ------------------------- - -wxMSW: - -- Toolbar API has been simplified, and now - wxFrame::GetClientArea returns the available client - area when toolbar, status bar etc. have been accounted for. - wxFrame::CreateToolBar added in line with CreateStatusBar. -- Documentation updates, incl. for wxToolBar. -- New wxAcceleratorTable class plus wxFrame::SetAcceleratorTable. -- Various additions from other folk, e.g. streams, wxConfig - changes, wxNotebook. -- Added wxDocMDIParentFrame, wxDocMDIChildFrame for doc/view. - -Alpha 13, July 8th 1998 ------------------------ - -wxMSW: - -- Implemented wxPoint as identical to POINT on Windows, and - altered wxDC wxPoint functions to use wxPoint directly in - Windows functions, for efficiency. -- Cured wxASSERT bug in wxStatusBar95. -- #ifdefed out some bits in oleutils.cpp for compilers that - don't support it. -- Added some operators to wxPoint, wxSize. -- Added inline wxDC functions using wxPoint, wxSize, wxRect. - -Alpha 12, July 7th 1998 ------------------------ - -wxMSW: - -- Added wxApp::GetComCtl32Version, and wxTB_FLAT style, so can - have flat toolbars on Win98 or Win95 with IE >= 3 installed. - -Alpha 11, July 3rd 1998 ------------------------ - -wxMSW: - -- Added thread.h, thread.cpp. -- Changed Enabled, Checked to IsEnabled, IsChecked in wxMenu, - wxMenuBar. -- Changed wxMenuItem::SetBackColor to SetBackgroundColour, - SetTextColor to SetTextColour, and added or made public several - wxMenuItem accessors. -- Added two overloads to wxRegion::Contains. Added - wxRegion::IsEmpty for a more consistent naming convention. -- Added Vadim's wxDataObject and wxDropSource. -- ENTER/LEAVE events now work. -- Cured wxMemoryDC bug where the DC wasn't being deleted. -- Cured wxGauge SetSize major bugginess. -- Cured problem where if a GDI object was created on the stack, - then went out of scope, then another object was selected into - the DC, GDI objects would leak. This is because the assignment - to e.g. wxDC::m_pen would delete the GDI object without it first - being selected out of the DC. Cured by selecting the old DC object - first, then doing the assignment. -- Split up wxGaugeMSW, wxGauge95, wxSliderMSW, wxSlider95 -- Various other bug fixes and additions. - -Generic: - -- Major work on Dialog Editor (still plenty to go). -- Expanded documentation a bit more. - -Alpha 10, May 7th 1998 ----------------------- - -wxMSW: - -- Added desiredWidth, desiredHeight parameters to wxBitmapHandler - and wxIcon functions so that you can specify what size of - icon should be loaded. Probably will remain a Windows-specific thing. -- wxStatusBar95 now works for MDI frames. -- Toolbars in MDI frames now behave normally. They still - require application-supplied positioning code though. -- Changed installation instructions, makefiles and batch files - for compiling with Gnu-Win32/Mingw32/EGCS. Also timercmn.cpp - change to support Mingw32/EGCS. Bison now used by default. - -Alpha 9, April 27th 1998 ------------------------- - -wxMSW: - -- Cured bug in wxStatusBar95 that caused a crash if multiple - fields were used. -- Added Gnu-Win32 b19/Mingw32 support by changing resource - compilation and pragmas. -- Cured wxMenu bug introduced in alpha 8 - didn't respond to - commands because VZ changed the id setting in wxMenu::MSWCommand. - -Generic: - -- Corrected some bugs, such as the wxModule compilation problem. -- Added Gnu-Win32 b19/Mingw32 support by changing resource - compilation and pragmas. -- Changed SIZEOF to WXSIZEOF. - -Alpha 8, April 17th 1998 ------------------------- - -wxMSW: - -- Added IsNull to wxGDIObject to check if the ref data is present or not. -- Added PNG handler and sample - doesn't work for 16-bit PNGs for - some reason :-( -- Added wxJoystick class and event handling, and simple demo. -- Added simple wxWave class. Needs Stop() function. -- Added wxModule (module.h/module.cpp) to allow definition - of modules to be initialized and cleaned up on wxWindows - startup/exit. -- Start of Mingw32 compatibility (see minimal and dialogs samples - makefile.m95 files, and install.txt). -- Note: Windows printing has stopped working... will investigate. -VADIM'S CHANGES: -- Updated wxString: bug fixes, added wxArrayString, some - compatibility functions. -- Updated log.h/cpp, added wxApp::CreateLogTarget. -- file.h: new wxTempFile class. -- defs.h: added wxSB_SIZE_GRIP for wxStatusBar95 -- statbr95: wxStatusBar95 control. -- registry.h/cpp: wxRegKey class for Win95 registry. -- listbox.cpp: corrected some bugs with owner-drawn listboxes. -- wxConfig and wxFileConfig classes. - -Generic: - -- Added src/other/png, src/other/zlib directories. -- Added samples/png. -- IMPORTANT: Changed 'no id' number from 0 to -1, in wxEVT_ macros. - Porters, please check particularly your wxTreeCtrl and wxListCtrl - header files. -- Added modules.h/cpp, config.cpp, fileconf.cpp, textfile.cpp/h. - -Alpha 7, March 30th 1998 ------------------------- - -wxMSW: - -- Added tab classes, tab sample. -- Now can return FALSE from OnInit and windows will be - cleaned up properly before exit. -- Improved border handling so panels don't get borders - automatically. -- Debugged MDI activation from Window menu. -- Changes to memory debug handling, including checking for - memory leaks on application exit - but see issues.txt for - unresolved issues. -- Added wxTaskBarIcon (taskbar.cpp/h, plus samples/taskbar) - to allow maintenance of an icon in the Windows 95 taskbar - tray area. -- Got MFC sample working (MFC and wxWindows in the same - application), partly by tweaking ntwxwin.mak settings. -- Got DLL compilation working again (VC++). -- Changed wxProp/Dialog Editor filenames. - -Generic: - -- Added tab classes, tab sample. -- Revised memory.cpp, memory.h slightly; memory.h now #defines - new to WXDEBUG_NEW in DEBUG mode. Windows implementation app.cpp - now checks for leaks on exit. Added memcheck sample. - See src/msw/issues.txt for more details. -- resource.h, resource.cpp changed to make wxDefaultResourceTable - a pointer. Now initialize resource system with - wxInitializeResourceSystem and wxCleanUpResourceSystem, to - allow better control of memory. -- wxString now derives from wxObject, to enable memory leak - checking. -- Added some #include fixes in various files, plus changed - float to long in wxToolBar files. - -Alpha 6, March 10th 1998 ------------------------- - -wxMSW: - -- Found stack error bug - stopped unwanted OnIdle recursion. -- Removed bug in wxTreeCtrl::InsertItem I added in alpha 5. -- Changed exit behaviour in wxApp/wxFrame/wxDialog. Now will - check if the number of top-level windows is zero before - exiting. Also, wxApp::GetTopWindow will return either - m_topWindow or the first member of wxTopLevelWindows, so you - don't have to call wxApp::SetTopWindow. -- Added dynarray.h/dynarray.cpp (from Vadim). -- Added first cut at OLE drag and drop (from Vadim). dnd sample - added. Drop target only at this stage. See src/msw/ole/*.cpp, - wx/include/msw/ole/*.h. WIN32 only because of UUID usage. - Doesn't work with GnuWin32 - no appropriate headers e.g. for - IUnknown. - Doesn't work with BC++ either - crashes on program startup. -- Added Vadim's owner-draw modifications - will probably remain - Windows-only. This enhances wxMenu, wxListBox. See ownerdrw sample. -- Added wxLB_OWNERDRAW for owner-draw listboxes. -- Vadim's wxCheckListBox derives from wxListBox. See checklst sample. - Doesn't entirely work for WIN16. -- Vadim has added wxMenuItem as a separate file menuitem.cpp. It - can also be used as an argument to wxMenu::Append, not just for - internal implementation. -- Some #ifdefs done for MINGW32 compilation (just alter OPTIONS - in makeg95.env, together with mingw32.bat). However, resource - binding is not working yet so most apps with dialogs crash. - -Generic: - -- Added Vadim's dynarray.h, dynarray.cpp. -- Added Vadim's menuitem.cpp. -- Added Windows-specific wxCheckListBox, - owner-draw wxListBox, and drag-and-drop - (see docs/msw/changes.txt). - -Alpha 5, 14th February 1998 --------------------------- - -wxMSW: - -- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE - DISTRIBUTIONS. This change log will therefore now refer to - the Windows-specific code only. See docs/changes.txt for generic - changes. -- Removed Windows-specific reference counting system (GDI - resources were cleaned up in idle time) - minimal - advantages now we have a wxWin reference counting system. -- Added missing WXDLLEXPORT keywords so DLL compilation works - again. -- Removed most warnings for GnuWin32 compilation. -- Added wxRegion/wxRegionIterator, but haven't yet used it in - e.g. wxDC. - -Generic: - -- GENERIC AND MSW-SPECIFIC CODE NOW TREATED AS TWO SEPARATE - DISTRIBUTIONS. This change log will therefore now refer to - the generic code only. See docs/msw/changes.txt for Windows-specific - changes. -- Readmes, change logs and installation files now go in - platform-specific directories under docs, e.g. docs/msw, - docs/gtk. -- Added DECLARE_APP and IMPLEMENT_APP macros so wxApp object gets - created dynamically, not as a global object. -- Put wxColour into wx/msw/colour.h, src/msw/colour.cpp. -- Changed names of some include/wx/generic headers to be - consistent and to conform to gcc pragma conventions. Also - changed choicesg.cpp to choicdgg.cpp. -- Added gcc pragmas. -- Added gtk inclusion in include/wx headers. -- Added consistent file headings to source and headers. -- Removed lang.cpp, lang.h and references to wxSTR_... variables; - added a few references to wxTransString. -- Added operator to wxTransString that converts automatically - to wxString, so we can say e.g. wxMessageBox(wxTransString("Hello"), ...). -- samples/internat now works (minimally). -- Added wxMouseEvent::GetPosition and - wxMouseEvent::GetLogicalPosition, both returning wxPoints. -- Made wxSize and wxRect contain longs not ints. -- Cured some lemory leaks (thanks Vadim). -- Tidied up OnIdle and introduced RequestMore/MoreRequested so - will only keep processing OnIdle if it returns TRUE from - MoreRequested. - -Alpha 4, 31st January 1998 --------------------------- - -All: - -- Changed wxDC functions to take longs instead of floats. GetSize now takes - integer pointers, plus a version that returns a wxSize. -- const keyword added to various wxDC functions. -- Under Windows, wxDC no longer has any knowledge of whether - an associated window is scrolled or not. Instead, the device - origin is set by wxScrolledWindow in wxScrolledWindow::PrepareDC. -- wxScrolledWindow applications can optionally override the virtual OnDraw - function instead of using the OnPaint event handler. The wxDC passed to - OnDraw will be translated by PrepareDC to reflect scrolling. - When drawing outside of OnDraw, must call PrepareDC explicitly. -- wxToolBarBase/wxToolBarSimple similarly changed to allow for - scrolling toolbars. -- Integrated wxPostScriptDC patches for 1.xx by Chris Breeze, - to help printing with multiple pages. -- IPC classes given base classes (wxConnectionBase etc.) which - define the API used by different implementations. DDE - implementation updated to use these base classes. -- wxHelpInstance now separated into wxHelpControllerBase (base - for all implementations), wxWinHelpController (uses standard - WinHelp), wxXLPHelPController (talks to wxHelp by DDE or - TCP/IP). There will be others eventually, such as - wxHTMLHelpController for Microsoft (and Netscape?) HTML Help. -- Added Vadim Zeitlin's wxString class plus - internationalization code (gettext simulation, wxLocale, etc.). - New files from Vadim: - include\wx\string.h - include\wx\debug.h - include\wx\file.h - include\wx\log.h - include\wx\intl.h - src\common\string.cpp - src\common\log.cpp - src\common\intl.cpp - src\common\file.cpp - No longer use GNU wxString files. -- Split off file-related functions into include\wx\filefn.h and - src\common\filefn.cpp. -- Borland C++ support (WIN32) for main library and - samples, using makefile.b32 files. -- Preparation done for allowing BC++ to compile wxWin as a DLL, - including changes to defs.h. -- wxIntPoint removed, wxPoint is now int, and wxRealPoint - introduced. -- Added wxShowEvent (generated when window is being shown or - hidden). -- Got minimal, docview, mdi samples working for 16-bit VC++ and - cured 16-bit problem with wxTextCtrl (removed global memory - trick). -- Updated GnuWin32 makefiles, checked minimal, mdi, docview samples. - -Alpha 3, September 1997 ------------------------ - -All: - -- wxListCtrl, wxTreeCtrl, wxImageList classes done. -- Instigated new file hierarchy, split files and classes up more logically. -- PrologIO and some other utils now put into core library. -- Revamped print/preview classes, added wxPageSetupDialog. -- Started documentation. - -Alpha 2, 30th April 1997 ------------------------- - -All: - -- EVT_... macros now have at least one argument, for conformance - with MetroWerks compiler. -- Added ids to .wxr file format. -- Got Dialog Editor compiled and running again but need - to extend functionality to be in line with new controls. - Added dialoged\test app to allow dynamic loading of .wxr files - for testing purposes. -- Rewrote wxBitmap to allow installable file type - handlers. -- Rewrote wxBitmapButton, wxStaticBitmap to not use Fafa. -- Wrote most of wxTreeCtrl and sample (need wxImageList to implement it - fully). -- Added back wxRadioBox. -- Tidied up wx_main.cpp, wxApp class, putting PenWin code in - a separate file. - -Alpha 1, 5th April 1997 ------------------------ - -Generic: - -At this point, the following has been achieved: - -- A lot, but not all, of the code has been revamped for better - naming conventions, protection of data members, and use of - wxString instead of char *. -- Obsolete functionality deleted (e.g. default wxPanel layout, - old system event system) and code size reduced. -- Class hierarchy changed (see design doc) - base classes such - as wxbWindow now removed. -- No longer includes windows.h in wxWin headers, by using stand-in - Windows types where needed e.g. WXHWND. -- PrologIO revised. -- wxScrolledWindow, wxStatusBar and new MDI classes added. - MDI is now achived using separate classes, not window styles. -- wxSystemSettings added, and made use of to reflect standard - Windows settings. -- SetButtonFont/SetLabelFont replaced by SetFont; font and colour - settings mucho rationalised. -- All windows are now subclassed with the same window proc to make - event handling far more consistent. Old internal wxWnd and derived - classes removed. -- API for controls revised, in particular addition of - wxValidator parameters and removal of labels for some controls. -- 1 validator written: see examples/validate. -- Event table system introduced (see most samples and - wx_event.cpp/ProcessEvent, wx_event.h). wxEvtHandler - made more flexible, with Push/PopEventHandler allowing a chain - of event handlers. -- wxRadioBox removed - will be added back soon. -- Toolbar class hierarchy revised: - wxToolBarBase - wxToolBarSimple (= old wxToolBar) - wxToolBar95 (= old wxButtonBar under Win95 - wxToolBarMSW (= old wxButtonBar under WIN16/WIN32) -- Constraint system debugged somewhat (sizers now work properly). -- wxFileDialog, wxDirDialog added; other common dialogs now - have class equivalents. Generic colour and font dialogs - rewritten to not need obsolete panel layout. -- .wxr resource system partially reinstated, though needs - an integer ID for controls. Hopefully the resource system - will be replaced by something better and more efficient - in the future. -- Device contexts no longer stored with window and accessed - with GetDC - use wxClientDC, wxPaintDC, wxWindowDC stack - variables instead. -- wxSlider uses trackbar class under Win95, and wxSL_LABELS flag - determines whether labels are shown. Other Win95-specific flags - introduced, e.g. for showing ticks. -- Styles introduced for dealing with 3D effects per window, for - any window: all Win95 3D effects supported, plus transparent windows. -- Major change to allow 3D effect support without CTL3D, under - Win95. -- Bitmap versions of button and checkbox separated out into new - classes, but unimplemented as yet because I intend to remove - the need for Fafa - it apparently causes GPFs in Win95 OSR 2. -- utils/wxprop classes working (except maybe wxPropertyFormView) - in preparation for use in Dialog Editor. -- GNU-WIN32 compilation verified (a month or so ago). - - diff --git a/docs/gpl.txt b/docs/gpl.txt deleted file mode 100644 index b8cf3a1ab2..0000000000 --- a/docs/gpl.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 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. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, 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 software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, 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 redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -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 give any other recipients of the Program a copy of this License -along with the Program. - -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 Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -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 Program, 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 Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) 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; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, 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 executable. 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. - -If distribution of executable or 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 counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program 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. - - 5. 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 Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program 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. - - 7. 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 Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program 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 Program. - -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. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program 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. - - 9. The Free Software Foundation may publish revised and/or new versions -of the 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 Program -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 Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, 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. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. 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. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/docs/gtk/COPYING.LIB b/docs/gtk/COPYING.LIB deleted file mode 100644 index eb685a5ec9..0000000000 --- a/docs/gtk/COPYING.LIB +++ /dev/null @@ -1,481 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - 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.] - - 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. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 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: - - 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.) - -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: - - 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. - - 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: - - 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. - - 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. - - NO WARRANTY - - 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. - - END OF TERMS AND CONDITIONS - - 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. - - - Copyright (C) - - 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. - -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: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! diff --git a/docs/gtk/install.txt b/docs/gtk/install.txt deleted file mode 100644 index 706b753d49..0000000000 --- a/docs/gtk/install.txt +++ /dev/null @@ -1,533 +0,0 @@ - - !!! When sending bug reports tell us what version of - wxWindows you are using (including the beta) and - what compiler on what system. One example: - wxGTK 2.1 beta 6, egcs 1.1.1, Redhat 5.0 !!! - -* The most simple case ------------------------ - -If you compile wxWindows on Unix for the first time and don't -like to read install instructions just do (in the base dir): - -./configure -make -su -make install -ldconfig -exit - -If you want to remove wxWindows on Unix you can do this: - -su -make uninstall -ldconfig -exit - -* The expert case ------------------ - -If you want to do some more serious cross-platform programming -with wxWindows, such as for GTK and Motif, you can now build -two complete libraries and use them concurretly. For this end, -you have to create a directory for each build of wxWindows - -you may also want to create different versions of wxWindows -and test them concurrently. Most typically, this would be a -version configured with --enable-debug_flag and one without. -Note, that only one build can currenty be installed, so you'd -have to use local version of the library for that purpose. -For building three version, one GTK, one Motif and a debug -version of the GTK source, you'd do this: - -md buildmotif -cd buildmotif -../configure --with-motif -make -cd .. - -md buildgtk -cd buildgtk -../configure --with-gtk -make -cd .. - -md buildgtkd -cd buildgtkd -../configure --with-gtk --enable-debug -make -cd .. - -* The most simple errors ------------------------- - -configure reports, that you don't have GTK 1.X installed -although you are certainly sure you have. Well, you have -installed it, but you also have another version of the -GTK installed, which you may need to removed including -other versions of glib (and its headers). Also, look -for the PATH variable and check if it includes the path -to the correct gtk-config! The check your LDPATH if -it points to the correct library. There is no way to -compile wxGTK if configure doesn't pass this test as -all this test does is compile and link a GTK program. - -You get errors during compilation: The reason is that you -probably have a broken compiler, which includes almost -everything that is called gcc. If you use gcc 2.8 you -have to disable optimsation as the compiler will give -up with an internal compiler error. - -If there is just any way for you to use egcs, use egcs. -We are sorry, but we cannot fix gcc. - -You get immediate segfault when starting any sample -or application: This is either due to having compiled -the library with different flags or options than your -program - typically you might have the __WXDEBUG__ option -set for the library but not for your program - or due -to using a broken compiler (and its optimisation) such -as GCC 2.8. - -* The most simple program -------------------------- - -Now create your super-application myfoo.app and compile anywhere -with - -g++ myfoo.cpp `wx-config --libs --cflags` -o myfoo - -* General ------------------------ - -The Unix variants of wxWindows use GNU configure. If you have -problems with your make use GNU make instead. - -If you have general problems with installation, read my -homepage at - - http://wesley.informatik.uni-freiburg.de/~wxxt - -for newest information. If you still don't have any success, -please send a bug report to one of our mailing lists (see -my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND -YOUR PROBLEM, SUCH AS YOUR VERSION OF GTK, WXGTK, WHAT -DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know -this has no effect, but I tried... - -* GUI libraries ------------------------ - -wxWindows/GTK requires the GTK+ library to be installed on your system. -It has to be a stable version, preferebly version 1.2.3. You can use -GTK 1.0 in connection with wxWindows, but only without Drag'n'Drop. -wxWindows does work with the 1.1.X versions of the GTK+ library. - -You can get the newest version of the GTK+ from the GTK homepage -at - http://www.gtk.org - -We also mirror GTK+ 1.2.1 at my ftp site soon. You'll find information -about downloading at my homepage. - -* Additional libraries ------------------------ - -wxWindows/Gtk requires a thread library and X libraries -known to work with threads. This is the case on all -commercial Unix-Variants and all Linux-Versions that -are based on glibc 2 except RedHat 5.0 which is broken -in many aspects. As of writing this, these Linux -distributions have correct glibc 2 support: - - - RedHat 5.1 - - Debian 2.0 - - Stampede - - DLD 6.0 - - SuSE 6.0 - -You can disable thread support by running - -./configure "--disable-threads" -make -su -make install -ldconfig -exit - -NB: DO NOT COMPILE WXGTK WITH GCC AND THREADS, SINCE -ALL PROGRAMS WILL CRASH UPON START-UP! Just always -use egcs and be happy. - -* Create your configuration ------------------------------ - -Usage: - ./configure options - -If you want to use system's C and C++ compiler, -set environment variables CC and CCC as - - % setenv CC cc - % setenv CCC CC - % ./configure options - -Using the SGI native compilers, it is recommended that you -also set CFLAGS and CXXFLAGS before running configure. These -should be set to : - -CFLAGS="-mips3 -n32" -CXXFLAGS="-mips3 -n32" - -This is essential if you want to use the resultant binaries -on any other machine than the one it was compiled on. If you -have a 64bit machine (Octane) you should also do this to ensure -you don't accidently build the libraries as 64bit (which is -untested). - -The SGI native compiler support has only been tested on Irix 6.5. - -to see all the options please use: - - ./configure --help - -The basic philosophy is that if you want to use different -configurations, like a debug and a release version, -or use the same source tree on different systems, -you have only to change the environment variable OSTYPE. -(Sadly this variable is not set by default on some systems -in some shells - on SGI's for example). So you will have to -set it there. This variable HAS to be set before starting -configure, so that it knows which system it tries to -configure for. - -Configure will complain if the system variable OSTYPE has -not been defined. And Make in some circumstances as well... - - -* General options -------------------- - -The confiugre options have not yet been thoroughly tested -in wxWindows snapshot 6. - -Normally, you won't have to choose a toolkit, because when -you download wxGTK, it will default to --with-gtk etc. But -if you use all of our CVS repository you have to choose a -toolkit. You must do this by running configure with either of: - - --with-gtk Use the GIMP ToolKit (GTK) - - --with-motif Use either Motif or Lesstif - Configure will look for both. - -The following options handle the kind of library you want to build. - - --disable-threads Compile without thread support. Threads - support is also required for the - socket code to work. - - --disable-shared Do not create shared libraries. - - --disable-optimise Do not optimise the code. Can - sometimes be useful for debugging - and is required on some architectures - such as Sun with gcc 2.8.X which - would otherwise produce segvs. - - --enable-profile Add profiling info to the object - files. Currently broken, I think. - - --enable-mem_tracing Add built-in memory tracing. - - --enable-dmalloc Use the dmalloc memory debugger. - Read more at www.letters.com/dmalloc/ - - --enable-debug_info Add debug info to object files and - executables for use with debuggers - such as gdb (or its many frontends). - - --enable-debug_flag Define __DEBUG__ and __WXDEBUG__ when - compiling. This enable wxWindows' very - useful internal debugging tricks (such - as automatically reporting illegal calls) - to work. Note that program and library - must be compiled with the same debug - options. - -* Feature Options -------------------- - -The confiugre options have not yet been thoroughly tested -in wxWindows snapshot 6. - -When producing an executable that is linked statically with wxGTK -you'll be surprised at its immense size. This can sometimes be -drastically reduced by removing features from wxWindows that -are not used in your program. The most relevant such features -are - - --without-libpng Disables PNG image format code. - - --without-libjpeg Disables JPEG image format code. - - --without-odbc Disables ODBC code. - - --disable-wxresources Disables the use of *.wxr type - resources. - - --disable-threads Disables threads. Will also - disable sockets. - - --disable-sockets Disables sockets. - - --disable-dnd Disables Drag'n'Drop. - - --disable-clipboard Disables Clipboard. - - --disable-serial Disables object instance serialiasation. - - --disable-streams Disables the wxStream classes. - -Apart from disabling certain features you can very often "strip" -the program of its debugging information resulting in a significant -reduction in size. - -* Compiling -------------- - -The following must be done in the base directory (e.g. ~/wxGTK -or ~/wxWin or whatever) - -Now the makefiles are created (by configure) and you can compile -the library by typing: - - make - -make yourself some coffee, as it will take some time. On an old -386SX possibly two weeks. During compilation, you'll get a few -warning messages depending in your compiler. - -if you want to be more selective, you can change into a specific -directiry and type "make" there. - -Then you may install the library and it's header files under -/usr/local/include/wx and /usr/local/lib respectively. You -have to log in as root (i.e. run "su" and enter the root -password) and type - - make install - -You can remove any traces of wxWindows by typing - - make uninstall - -If you want to save disk space by removing unnecessary -object-files: - - make clean - -in the various directories will do the work for you. - -* Creating a new Project --------------------------- - -There are two ways to create your own project: - -1) The first way uses the installed libraries and header files -automatically using wx-config - -g++ myfoo.cpp `wx-config --libs` `wx-config --cflags` -o myfoo - -Using this way, a make file for the minimal sample would look -like this - -CC = g++ - -minimal: minimal.o - $(CC) -o minimal minimal.o `wx-config --libs` - -minimal.o: minimal.cpp mondrian.xpm - $(CC) `wx-config --cflags` -c minimal.cpp -o minimal.o - -clean: - rm -f *.o minimal - -This is certain to become the standard way unless we decide -to sitch to tmake. - -2) The other way creates a project within the source code -directories of wxWindows. For this endeavour, you'll need -the usual number of GNU tools, at least - -GNU automake version 1.4 -GNU autoheader version 2.14 -GNU autoconf version 2.14 - -and quite possibly - -GNU make -GNU cc - -and if you have all this then you probably know enough to -go ahead yourself :-) - -** Something about Makefiles ------------------------------- - -On general principle it should only contain ONE line, which is as follows: - - include ../../setup/general/makeapp - -this will include all the necessary definitions for creating the applications - -the only case where you might want to add another line is the following: -this version of configure also supports creation of source archives of the -application for easy distribution and updates to newer version of wxWindows. - For this purpose all files in the application-directory will be put into -a gziped tar-file in the full notation user//* -if you want to include some other files that you want "more visible", like -a README. or a shell script for easy -compilation/installation/distribution, then you have to add a variable - - DISTRIBUTE_ADDITIONAL= - -to the Makefile. -So it would look like this: - - DISTRIBUTE_ADDITIONAL=README.TheApp - include ../../setup/general/makeapp - -As we have already talked about distribution the command to create a -distribution is: - - make distrib - -NOTE: If you are in the base directory of wxWindows it will create -distribution packages for wxWindows as well as for all packages in the -user directory. - So if you want to create only packages for the files in user, -then go to the directory other and type: - - make distrib - -or if you only want one application to be created then -enter the specific directory and type there: -make distrib - -All the distribution files will be put in the directory -distrib at the base of the wxWindows-tree (where also configure -and template.mak can be found). - -** Something about Makefile.in --------------------------------- - -As you have already seen with Makefile, configure makes a lot of use -if the include statement in make to keep the Makefiles as simple as -possible. - -So basically there are only variables to define and then a include command. -Exception to this rule is if you have special rules for some stuff... -These rules should go AFTER the include statement!!! - -so the general header looks like this: - - # wxWindows base directory - WXBASEDIR=@WXBASEDIR@ - # set the OS type for compilation - OS=@OS@ - # compile a library only - RULE=bin - -and the general footer will look like this: - - # include the definitions now - include ../../../template.mak - -the key variable is RULE, which defines what make should create -in this directory. - -here are some examples: - - RULE description - =========================================================================== - bin creates a local binary (for a global binary prefix bin with g) - additional variables needed: - BIN_TARGET this gives the name of your application - BIN_OBJ this gives the object files needed to - link the application - optional variables are: - BIN_SRC this gives the list of c/c++ files for - which dependencies will be checked. - (This can be achieved with: make depend) - BIN_LINK this gives commands for additional - libraries needed to link the application - --------------------------------------------------------------------------- - bin2 creates two local binaries (for global binaries prefix bin2 with g) - in addition to the variables specified above you MUST also - provide the same variables with BIN2_ instead of BIN_ - --------------------------------------------------------------------------- - lib creates a local library (for a global binary prefix bin with g) - additional variables needed: - LIB_TARGET this gives the name of your library - LIB_OBJ this gives the object files needed for - the library to be build. - optional variables are: - LIB_SRC this gives the list of c/c++ files for - which dependencies will be checked. - libbin and libgbin are also possible and will need in addition - the variables from bin - --------------------------------------------------------------------------- - gslib is similar to lib, but it creates a shared library if the system - supports it. - additional variables needed: - LIB_MAJOR major number of the shared library - LIB_MINOR minor number of the shared library - --------------------------------------------------------------------------- - other additional variables: - - ADD_COMPILE define additional includes/defines that - are needed to compile the object files - (if you need to reference some directory - utils - like wxGrid -, then please - reference them with the variables defined - in template.mak - e.g.: $(SRCDIR),$(UTILS), - $(SAMPLES),$(OTHERS)) - - NEEDED_DEFINES lists all the defines that HAVE to be set in - /include/wx/setup.h to compile correctly. - - SRC_DIR lists all directories that are needed to - compile. (i.e: lists all the directories, - where there are source-files.) But it is - also needed to clean an object and for - machines, for which make does not support - VPATH - -currently there are the following compiling rules provided: -object files are created for the following file extensions: -.c .cc .cpp - -Please have a closer look at the Makefiles in this distribution. - -* Platforms configure is working with ---------------------------------------- - -Please report build succes on any machine. Especially non- -Linux operating systems (which I don't have). - -Original author of the autoconf system for wxxt-1.66 and for this INSTALL -file: - - Martin Sperl sperl@dsn.ast.univie.ac.at - -Ported to wxGTK 0.1: - - Wolfram Gloger wmglo@dent.med.uni-muenchen.de - -Thanks alot to both of them. - -In the hope that it will be useful, - - Robert Roebling roebling@sun2.ruf.uni-freiburg.de - - diff --git a/docs/gtk/licence.txt b/docs/gtk/licence.txt deleted file mode 100644 index e6dcfbd25c..0000000000 --- a/docs/gtk/licence.txt +++ /dev/null @@ -1,56 +0,0 @@ - - -wxWindows Library License, Version 3 -==================================== - - Copyright (C) 1998 Julian Smart, Robert Roebling et al. - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - WXWINDOWS LIBRARY LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 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 MERCHAN- - TABILITY 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 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 licensed under the wxWindows Library License, applying - either version 3 of the License, or (at your option) any later version of - the License as published by the copyright holders of version 3 of the - License document. - - 2. The exception is that you may create binary object code versions of any - works using this library or based on this library, and use, copy, modify, - link and distribute such binary object code files unrestricted under terms - of your choice. - - 3. If you copy code from files distributed under the terms of the GNU - General Public License or the GNU Library General Public License into a - copy of this library, as this license 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. - - diff --git a/docs/gtk/makewxgtk b/docs/gtk/makewxgtk deleted file mode 100644 index 8956a8fe05..0000000000 --- a/docs/gtk/makewxgtk +++ /dev/null @@ -1,11 +0,0 @@ -# makewxgtk -# Sets permissions (in case we extracted wxGTK from zip files) -# and makes wxGTK. -# Call from top-level wxWindows directory. -# Note that this uses standard (but commonly-used) configure options; -# if you're feeling brave, you may wish to compile with threads. -# -- Julian Smart -chmod a+x configure config.sub config.guess setup/general/* setup/shared/* -./configure --with-shared --with-gtk --with-debug_flag --with-debug_info --without-threads -make makefiles -make diff --git a/docs/gtk/readme.txt b/docs/gtk/readme.txt deleted file mode 100644 index e3f3a23cf7..0000000000 --- a/docs/gtk/readme.txt +++ /dev/null @@ -1,63 +0,0 @@ - - Welcome to wxWindows/Gtk 2.1 snapshot 6, - -you have downloaded version 2.1 of the GTK+ 1.2 port of -the wxWindows GUI library. This is a developers release -and is it not suited for production development. Beware -that major changes can happen before a final release. - -Beginning from snapshot 6 wxWindows uses a completely -new make file system on Unix that uses GNU automake, -GNU autoconf and GNU autoheader. You do not need these -programs in order to use the library, but for taking -part in its development, they are required. Read the -INSTALL.txt file for learning what you can do with it. - -More information is available from my homepage at: - - http://wesley.informatik.uni-freiburg.de/~wxxt - -and about the wxWindows project as a whole (and the -Windows and Motif ports in particular) can be found -at Julian Smart's homepage at: - - http://web.ukonline.co.uk/julian.smart/wxwin - -Information on how to install can be found in the file -INSTALL.txt, but if you cannot wait, this should work on -many systems (when using GTK 1.0 read the INSTALL.txt): - -./configure -make -su -make install -ldconfig -exit - -When you run into problems, please read the INSTALL.txt and -follow those instructions. If you still don't have any success, -please send a bug report to one of our mailing lists (see -my homepage) INCLUDING A DESCRIPTION OF YOUR SYSTEM AND -YOUR PROBLEM, SUCH AS YOUR VERSION OF GTK, WXGTK, WHAT -DISTRIBUTION YOU USE AND WHAT ERROR WAS REPORTED. I know -this has no effect, but I tried... - -The library produced by the install process will be called -libwx_gtk.a (static) and libwx_gtk-2.1.so.0.0.0 (shared) so that -once a binary incompatible version of wxWindows/Gtk comes out -we'll augment the library version number to avoid linking problems. - -Please send problems concerning installation, feature requests, -bug reports or comments to the wxWindows users Information on -how to subscribe is available from my homepage. - -wxWindows/Gtk doesn't come with any guarantee whatsoever. It might -crash your harddisk or destroy your monitor. It doesn't claim to be -suitable for any special or general purpose. - - Regards, - - Robert Roebling - - - diff --git a/docs/gtk/todo.txt b/docs/gtk/todo.txt deleted file mode 100644 index 60b2b0d642ece9f969e2f6f660447c08e335cd9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 866 zcmbu8L2uMB5QTfruXwkDU?b5Z2QIr3RJ5W6B+g!YHXh;iME0cF{r5~#gtBO>s_LBV zjOF*udrq@DQ~1JNL|<46>k(&8tX564$(sgPeZuWf6Og+|&x zlCGo69R+Zn@FqIEse(j$S&a~^GrE0$+hW7J9s41vVL!orV?58;bg?K{HH-blck@}{ z5_j3Cd?f#SD+j6{4Z{x=(fZbm%DDqqj74(y9x9TQ`wH*!I_7+)a|LdJ>um5>G9`2mksC3ewuewI22PznHFezgX zmWb09FVzSZ2$d<(2d) - - -wxWindows 2 FAQ - - - - - - - - - - -
- -wxWindows 2 FAQ - -
- -

- -Welcome to the wxWindows FAQ. Please select a category:

- -

- -

- -For further information, please see the wxWindows Web site, -plus install.txt (per port), todo.txt (per port), and bugs.txt (all ports). -

- - - - - - diff --git a/docs/html/faqgen.htm b/docs/html/faqgen.htm deleted file mode 100644 index e0f0fc6673..0000000000 --- a/docs/html/faqgen.htm +++ /dev/null @@ -1,232 +0,0 @@ - - - -wxWindows 2 FAQ: General - - - - - - - - - - -
- -wxWindows 2 FAQ: General - -
- -

- -See also top-level FAQ page. -


- -

What is wxWindows?

- -wxWindows is a class library that allows you to compile graphical C++ programs on a range of -different platforms. wxWindows 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.

- -Although GUI applications are mostly built programmatically, there is a dialog editor to help -build attractive dialogs and panels.

- -You don't have to use C++ to use wxWindows: wxWindows 1 has been interfaced to several interpreted languages, -such as CLIPS, Python, Scheme, XLisp and Perl, and there is a Python interface for wxWindows 2. -

- -

Can I use wxWindows 2 for both proprietary (commercial) projects, and GPL'ed projects?

- -Yes. Please see the licence for details, but basically -you can distribute proprietary binaries without distributing any source code, and neither will wxWindows -conflict with GPL code you may be using or developing with it. -

-The conditions for using wxWindows 2 are the same whether you are a personal, academic -or commercial developer. -

- -

Is there support?

- -No official support, but the mailing list is very helpful and some people say that -wxWindows support is better than for much commercial software. The developers are -keen to fix bugs as soon as possible, though obviously there are no guarantees. -

- -

Who uses wxWindows?

- -Many organisations - commercial, government, and academic - across the -world. It's impossible to estimate the true number of users, since -wxWindows is obtained by many different means, and we cannot monitor -distribution. The mailing list contains around 300-400 entries which is -quite large for a list of this type.

- -

I am about to start a wxWindows 1.xx project. Should I use 2 instead?

- -wxWindows 2 is still in beta but it's actually pretty useable (Windows, GTK, Motif).

- -Porting to wxWindows 2 from 1.xx will not be too painful; see the next question -for ways in which you can make it easier.

- -

Why would I want to use wxWindows 2 in preference to wxWindows 1.xx?

- -Some reasons: - -
    -
  • In 2 there is far more flexibility, for example in the way windows can be -nested, and the way events are intercepted. -
  • There is more functionality for producing sophisticated applications, -for example using the wxTreeCtrl and wxListCtrl classes. -
  • There is better C++-conformance (such as usage of wxString and const) which -will make your applications more reliable and easier to maintain. -
  • wxWindows 2 will be better supported than 1.xx. -
  • The GTK version is attractive for people interested in writing Linux and GNOME -applications. -
  • The Mac version will be one of the best frameworks available on that platform. -
- -

How can I prepare for wxWindows 2?

- -To make porting to wxWindows 2 easier in the future, take a look at some -tips for writing existing code in a 2-compatible way.

- -

How much has the API changed since 1.xx?

- -It's difficult to summarize, but some aspects haven't changed very much. For example, if you have some -complex drawing code, you will mostly need to make sure it's parameterised with a device -context (instead of obtaining one from a window or storing it). You won't have -to completely rewrite the drawing code.

- -The way that events are handled has changed, so for example, where you overrode -OnSize before, you now have a non-virtual OnSize with a single event class argument. -To make this function known to wxWindows, you add an entry in an 'event table' using macros. Addition of these macros -will eventually be made easier by a tool which will allow selection from a list -and copy-and-paste into your editor. This is extended to button presses, listbox selection -etc. so callbacks have gone (they may be added back for limited backward compatibility).

- -The class hierarchy has changed to allow greater flexibility but it probably won't affect your -existing application. One exception to this is MDI applications which now use separate MDI classes instead of style -flags. As a result, it won't be possible to switch between MDI and SDI operation at run-time -without further coding, but a benefit is less interdependence between areas of code, -and therefore smaller executable size.

- -Panel items (now called controls) no longer have labels associated with most of them, -and default panel layout has been removed. The idea is that you make greater use -of dialog resources, for better-looking dialogs.

- -

What classes have disappeared?

- -wxForm, wxTextWindow (subsumed into wxTextCtrl). - -

Does wxWindows 2 mean that wxWindows 1.xx is dead?

- -While wxWindows 2 is being developed, there will be further patches to wxWindows 1.xx. -Obviously we are investing most of our energy into the new code, but we're also trying -to fix bugs in the current version.

- -

What platforms will be supported by wxWindows 2?

- -
    -
  • Windows 3.1, Windows 95/98, Windows NT; -
  • Linux and other Unix platforms with GTK+; -
  • Unix with Motif or the free Motif clone Lesstif; -
  • Mac (coming later in 1999); -
  • A BeOS port is being investigated. -
  • A Windows CE port is being investigated. -
  • There are no plans to support OS/2 or XView. However, -you may be able to compile the GTK and Motif versions under OS/2 with X and GTK -installed, or the Windows version with IBM's Open32 extensions. -
-

- -

How does wxWindows 2 support platform-specific features?

- -This is a hotly-debated topic amongst the developers. My own philosophy -is to make wxWindows as platform-independent as possible, but allow in a -few classes (functions, window styles) that are platform-specific. -For example, Windows metafiles and Windows 95 taskbar icons have -their own classes on Windows, but nowhere else. Because these classes -are provided and are wxWindows-compatible, it doesn't take much -coding effort for an application programmer to add support for -some functionality that the user on a particular platform might otherwise -miss. Also, some classes that started off as platform-specific, such -as the MDI classes, have been emulated on other platforms. I can imagine -that even wxTaskBarIcon may be implemented for Unix desktops one day. -

- -In other words, wxWindows is not a 'lowest common denominator' approach, -but it will still be possible to write portable programs using the -core API. Forbidding some platform-specific classes would be a stupid -approach that would alienate many potential users, and encourage -the perception that toolkits such as wxWindows are not up to the demands -of today's sophisticated applications.

- -Currently resources such as bitmaps and icons are handled in a platform-specific -way, but it is hoped to reduce this dependence in due course.

- -Another reason why wxWindows 2 is not a 'lowest common denominator' toolkit is that -some functionality missing on some platform has been provided using generic, -platform-independent code, such as the wxTreeCtrl and wxListCtrl classes.

- -

Does wxWindows use STL? or the standard string class?

- -No. This is a much-discussed topic that has (many times) ended with the conclusion that it is in -wxWindows' best interests to avoid use of templates. Not all compilers can handle -templates adequately so it would dramatically reduce the number of compilers -and platforms that could be supported. It would also be undersirable to make -wxWindows dependent on another large library that may have to be downloaded and installed. -In addition, use of templates can lead to executable bloat, which is something -wxWindows 2 is strenously trying to avoid.

- -The standard C++ string class is not used, again because it is not available to all compilers, -and it is not necessarily a very efficient implementation. Also, we retain more flexibility -by being able to modify our own string class. Some compatibility with the string class -has been built into wxString.

- -There is nothing to stop an application using templates or the string class for its own -purposes.

- -

How is wxWindows 2 being developed?

- -We are using the CVS system to develop and maintain wxWindows. This allows -us to make alterations and upload them instantly to the server in Edinburgh, from -which others can update their source.

- -

How is wxWindows 2 distributed?

- -By ftp, and via the wxWindows CD-ROM.

- -

What are the plans for the future?

- -Currently we're working too hard on getting wxWindows 2 finished (are GUI toolkits ever -finished?) to think very far ahead. However, we know we want to make wxWindows as robust -and well-publicised as possible. We also want to aim for better platform-independence of -resources such as icons and bitmaps, standardising on the PNG for all platforms.

- -Other possibilities include: DCOM/CORBA compatibility; a wxWindows book; an -IDE; -other platforms; other interface abilities such as speech output.

- -We will investigate the possibility of compiler or operating system vendors bundling wxWindows with -their product.

- -The high-level goal of wxWindows is to be thought of as the number one C++ framework, -for virtually any platform. Move over, MFC!

- -

What about Java?

- -The Java honeymoon period is over :-) and people are realising that it cannot -meet all their cross-platform development needs. We don't anticipate a major threat -from Java, and the level of interest in wxWindows is as high as ever.

- -

How can I help the project?

- -Please check out the Backroom pages, -in particular the suggested projects, and -mail Julian Smart or the developers' mailing list with your own suggestions.

- - - - - - diff --git a/docs/html/faqgtk.htm b/docs/html/faqgtk.htm deleted file mode 100644 index 1fe2c3586f..0000000000 --- a/docs/html/faqgtk.htm +++ /dev/null @@ -1,47 +0,0 @@ - - - -wxWindows 2 for GTK FAQ - - - - - - - - - - -
- -wxWindows 2 for GTK FAQ - -
- -

- -See also top-level FAQ page. -


- -

What is wxWindows 2 for GTK?

- -wxWindows 2 for GTK is a port of wxWindows to the GTK+ toolkit, -which is freely available for most flavours of Unix with X. wxWindows 2 for GTK is -often abbreviated to wxGTK. wxGTK has a separate home page here. -

- -

Does wxGTK have GNOME support?

- -Currently wxGTK does not have any features that would involve dependence on any desktop -environment's libraries, so it can work on GNOME, KDE and with other window managers -without installation hassles. Some GNOME and KDE integration features are file based, and -so may be added without dependence on libraries. Other features may be supported in the -future, probably as a separate library. -

- - - - - - - diff --git a/docs/html/faqmac.htm b/docs/html/faqmac.htm deleted file mode 100644 index 182e458cbc..0000000000 --- a/docs/html/faqmac.htm +++ /dev/null @@ -1,37 +0,0 @@ - - - -wxWindows 2 for Mac FAQ - - - - - - - - - - -
- -wxWindows 2 for Mac FAQ - -
- -

- -See also top-level FAQ page. -


- -

When is wxMac 2 due to be released?

- -There is a preview available. -A beta release can be expected by early Q2 1999. The author of this port -is Stefan Csomor (csomor@advancedconcepts.ch). -

- - - - - - diff --git a/docs/html/faqmot.htm b/docs/html/faqmot.htm deleted file mode 100644 index 6250821885..0000000000 --- a/docs/html/faqmot.htm +++ /dev/null @@ -1,90 +0,0 @@ - - - -wxWindows 2 for Motif FAQ - - - - - - - - - - -
- -wxWindows 2 for Motif FAQ - -
- -

- -See also top-level FAQ page. -


- -

What version of Motif do I need?

- -You will need version 1.2 or above. Version 2 should also be fine. Some people -have had a positive experience with Lesstif, -a free Motif clone. (Note from Julian Smart - I use the Linux version of MetroLink Motif 1.2.4). - -

- -

What features are missing or partially implemented?

- -The following classes are not yet implemented: wxSpinButton, wxCheckListBox, wxJoyStick, -wxGLCanvas.

- -The following classes are not likely to be implemented because there is no sensible -equivalent on Motif: wxMiniFrame, wxTaskBar.

- -These features are not yet implemented:

- -

    -
  • Clipboard and drag and drop support are currently under development. -
  • Support for selection of specific visuals. -
  • Wide character support (but when Unicode is supported under Windows, this support will -be relatively easy to add). -
  • Configurable colour/font settings (they are currently hard-wired in wxSystemSettings). -
  • A help system (please use wxHelpController and Netscape instead). An HTML widget and help -system is in preparation. -
- -

- -

Does Dialog Editor work with wxWindows for Motif?

- -Suport for Dialog Editor is almost there, but there are some wrinkles to iron -out. You may find it's useful though: compile it and see. -

- -

How do I switch between debugging and release compilation modes?

- -Unfortunately the makefile system doesn't currently allow you to compile -for both simultaneously: you need -to recompile wxWindows and your application having adjusted make.env. However, -you could rename the binary and release library archives, and adjust your makefiles -to use the appropriate one (or change a symbolic link). -

- -

Why are windows are not refreshed properly until I resize them?

- -Very occasionally you can experience this glitch, probably because sometimes the -window tries to resize and repaint itself before the final size is known. The workaround -is to add code like this after window creation and initialization:

- -

-#ifdef __WXMOTIF__
-  wxNoOptimize noOptimize;
-  window->SetSize(-1, -1, w, h);
-#endif
-
-

- - - - - - - diff --git a/docs/html/faqmsw.htm b/docs/html/faqmsw.htm deleted file mode 100644 index 984a87f3fc..0000000000 --- a/docs/html/faqmsw.htm +++ /dev/null @@ -1,174 +0,0 @@ - - - -wxWindows 2 for Windows FAQ - - - - - - - - - - -
- -wxWindows 2 for Windows FAQ - -
- -

- -See also top-level FAQ page. -


- -

Which Windows platforms are supported?

- -wxWindows 2 can be used to develop and deliver applications on Windows 3.1, Win32s, -Windows 95, Windows 98, and Windows NT. A Windows CE version is being looked into (see below).

- -wxWindows 2 is designed to make use of WIN32 features and controls. However, unlike Microsoft, -we have not forgotten users of 16-bit Windows. Most features -work under Windows 3.1, including wxTreeCtrl and wxListCtrl using the generic implementation. -However, don't expect very Windows-95-specific classes to work, such as wxTaskBarIcon. The wxRegConfig -class doesn't work either because the Windows 3.1 registry is very simplistic. Check out the 16-bit -makefiles to see what other files have been left out. -

-16-bit compilation is supported under Visual C++ 1.5, and Borland BC++ 4 to 5. -

- -wxWindows 2 for Windows will also compile on Unix with gcc using TWIN32 from Willows, -although TWIN32 is still in a preliminary state. The resulting executables are -Unix binaries that work with the TWIN32 Windows API emulator.

- -You can also compile wxWindows 2 for Windows on Unix with Cygwin or Mingw32, resulting -in executables that will run on Windows. So in theory you could write your applications -using wxGTK or wxMotif, then check/debug your wxWindows for Windows -programs with TWIN32, and finally produce an ix86 Windows executable using Cygwin/Mingw32, -without ever needing a copy of Microsoft Windows. See the Technical Note on the Web site detailing cross-compilation.

- -

What about Windows CE?

- -This is under consideration, though we need to get wxWindows Unicode-aware first. -There are other interesting issues, such as how to combine the menubar and toolbar APIs -as Windows CE requires. But there's no doubt that it will be possible, albeit -by mostly cutting down wxWindows 2 API functionality, and adding a few classes here -and there. Since wxWindows for 2 produces small binaries (less than 300K for -the statically-linked 'minimal' sample), shoehorning wxWindows 2 into a Windows CE device's limited -storage should not be a problem.

- -

What compilers are supported?

- -Please see the wxWindows 2 for Windows install.txt file for up-to-date information, but -currently the following are known to work:

- -

    -
  • Visual C++ 1.5, 4.0, 5.0, 6.0 -
  • Borland C++ 4.5, 5.0 -
  • Borland C++Builder 1.0, 3.0 -
  • Watcom C++ 10.6 (WIN32) -
  • Cygwin b20 -
  • Mingw32 -
  • MetroWerks CodeWarrior 4 -
-

- -There is a linking problem with Symantec C++ which I hope someone can help solve. -

- -

Which is the best compiler to use with wxWindows 2?

- -It's partly a matter of taste, but I (JACS) prefer Visual C++ since the debugger is very -good, it's very stable, the documentation is extensive, and it generates small executables. -Since project files are plain text, it's easy for me to generate appropriate project files -for wxWindows samples.

- -Borland C++ is fine - and very fast - but it's hard (impossible?) to use the debugger without using project files, and -the debugger is nowhere near up to VC++'s quality. The IDE isn't great.

- -C++Builder's power isn't really used with wxWindows since it needs integration with its -own class library (VCL). For wxWindows, I've only used it with makefiles, in which case -it's almost identical to BC++ 5.0 (the same makefiles can be used).

- -You can't beat Cygwin's price (free), and you can debug adequately using gdb. However, it's -quite slow to compile since it does not use precompiled headers.

- -CodeWarrior is cross-platform - you can debug and generate Windows executables from a Mac, but not -the other way around I think - but the IDE is, to my mind, a bit primitive.

- -Watcom C++ is a little slow and the debugger is not really up to today's standards.

- -

Is Unicode supported?

- -Not yet, although there are other internationalisation features.

- -However, the issues surrounding Unicode support have been looked into so we know -what we need to do, and have some header files ready to use containing appropriate -type definitions. Just about every file in wxWindows will need changes, due to the -pervasive nature of characters and character arrays. Unicode support is needed -for the port to Windows CE (see above), and will probably be added in time for version 2.1.

- -

Can you compile wxWindows 2 as a DLL?

- -Yes (using the Visual C++ or Borland C++ makefile), but be aware that distributing DLLs is a thorny issue -and you may be better off compiling statically-linked applications, unless you're -delivering a suite of separate programs, or you're compiling a lot of wxWindows applications -and have limited hard disk space.

- -With a DLL approach, and with different versions and configurations of wxWindows -needing to be catered for, the end user may end up with a host of large DLLs in his or her Windows system directory, -negating the point of using DLLs. Of course, this is not a problem just associated with -wxWindows! -

- -

How can I reduce executable size?

- -You can compile wxWindows as a DLL (see above, VC++/BC++ only at present). You should also -compile your programs for release using non-debugging and space-optimisation options, but -take with VC++ 5/6 space optimisation: it can sometimes cause problems.

- -Statically-linked wxWindows 2 programs are smaller than wxWindows 1.xx programs, because of the way -wxWindows 2 has been designed to reduce dependencies between classes, and other -techniques. The linker will not include code from the library that is not (directly or -indirectly) referenced -by your application. So for example, the 'minimal' sample is less than 300KB using VC++ 6.

- -If you want to distribute really small executables, you can -use Petite -by Ian Luck. This nifty utility compresses Windows executables by around 50%, so your 500KB executable -will shrink to a mere 250KB. With this sort of size, there is reduced incentive to -use DLLs.

- -

Is wxWindows compatible with MFC?

- -There is a sample which demonstrates MFC and wxWindows code co-existing in the same -application. However, don't expect to be able to enable wxWindows windows with OLE-2 -functionality using MFC.

- -

Why do I sometimes get bizarre crash problems using VC++ 5/6?

- -Some crash problems can be due to inconsistent compiler -options (and of course this isn't limited to wxWindows). -If strange/weird/impossible things start to happen please -check (dumping IDE project file as makefile and doing text comparison -if necessary) that the project settings, especially the list of defined -symbols, struct packing, etc. are exactly the same for all items in -the project. After this, delete everything (including PCH) and recompile.

- -VC++ 5's optimization code seems to be broken and can -cause problems: this can be seen when deleting an object Dialog -Editor, in Release mode with optimizations on. If in doubt, -switch off optimisations, although this will result in much -larger executables. It seems possible that the library can be created with -strong optimization, so long as the application is not strongly -optimized. For example, in wxWindows project, set to 'Minimum -Size'. In Dialog Editor project, set to 'Customize: Favor Small -Code' (and no others). This will then work.

- - - - - - - diff --git a/docs/html/gettext/gettext.htm b/docs/html/gettext/gettext.htm deleted file mode 100644 index c48fc3708b..0000000000 --- a/docs/html/gettext/gettext.htm +++ /dev/null @@ -1,4961 +0,0 @@ - - - - -GNU gettext utilities - - -

GNU gettext tools, version 0.10

-

Native Language Support Library and Tools

-

Edition 0.10, 26 November

-
Ulrich Drepper
-
Jim Meyering
-
Pinard
-

-


- -

-Copyright (C) 1995 Free Software Foundation, Inc. - -

-

-Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -

-

-Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - -

-

-Permission is granted to copy and distribute translations of this manual -into another language, under the above conditions for modified versions, -except that this permission notice may be stated in a translation approved -by the Foundation. - -

- - - -

Introduction

- - -
-

-This manual is still in DRAFT state. Some sections are still -empty, or almost. We keep merging material from other sources -(essentially email folders) while the proper integration of this -material is delayed. -

- -

-In this manual, we use he when speaking of the programmer or -maintainer, she when speaking of the translator, and they -when speaking of the installers or end users of the translated program. -This is only a convenience for clarifying the documentation. It is -absolutely not meant to imply that some roles are more appropriate -to males or females. Besides, as you might guess, GNU gettext -is meant to be useful for people using computers, whatever their sex, -race, religion or nationality! - -

-

-This chapter explains what are the goals seeked by the mere existence -of GNU gettext. Then, it explains a few wide concepts around -Native Language Support, and situates message translation in regard -to other aspects of national and cultural variance, as applicable -to programs. It also surveys what are those files used to convey -translations. It explains how the various tools interrelate in the -initial generation for these files, and later, how the maintenance -cycle usually operate. - -

- - - -

The Purpose of GNU gettext

- -

-Usually, programs are written and documented in English, and use -English at execution time for interacting with users. This is true -not only from within GNU, but also in a great deal of commercial -and free software. Using a common language is quite handy for -communication between developers, maintainers and users from all -countries. On the other hand, most people are less comfortable with -English than with their own native language, and would rather prefer -using their mother tongue for day to day's work, as far as possible. -Many would simply love seeing their computer screen showing -a lot less of English, and far more of their own spoken language. - -

-

-However, to some people, this dream might appear so far fetched that -they may believe it is not even worth spending time thinking about -it, and they have no confidence at all that the dream might ever -become true. Many did not loose hope yet, and organized themselves. -The GNU Translation Project is a formalization of this hope into a -workable structure, which has a good chance to get all of us nearer -the achievement of a truly multi-lingual set of programs. - -

-

-GNU gettext is an important step for the GNU Translation -Project, as it is an asset on which we may build many other steps. -This package offers to programmers, translators and even users, a -well integrated set of tools and documentation. Specifically, the GNU -gettext utilities are a set of tools that provides a framework -to help other GNU packages produce multi-lingual messages. These tools -include a set of conventions about how programs should be written to -support message catalogs, a directory and file naming organization -for the message catalogs themselves, a runtime library supporting the -retrieval of translated messages, and a few stand-alone programs to -massage in various ways the sets of translatable strings, or already -translated strings. A special GNU Emacs mode also helps interested -parties into preparing these sets, or bringing them up to date. - -

-

-GNU gettext is designed so it minimizes the impact of -internationalization on program sources, keeping this impact as small -and hardly noticeable as possible. Internationalization has better -chances of succeeding if it is very light weighted, or at least, -appear to be so, when looking at program sources. - -

-

-The GNU Translation Project also uses the GNU gettext -distribution as a vehicle for documenting its structure and methods, -even if this goes beyond the technicalities of the GNU gettext -proper. By doing so, translators will find in a single place, as -far as possible, all they need to know for properly doing their -translating work. Also, this supplementary documentation might also -help programmers, and even curious users, at understanding how GNU -gettext is related to the remainder of the GNU Translation -Project, and consequently, have a glimpse at the big picture. - -

- - -

I18n, L10n, and Such

- -

-Two long words appear all the time when we discuss support of native -language in programs, and these words have a precise meaning, worth -being explained here, once and for all in this document. The words are -internationalization and localization. Many people, -tired of writing these long words over and over again, took the -habit of writing i18n and l10n instead, quoting the first -and last letter of each word, and replacing the run of intermediate -letters by a number merely telling how many such letters there are. -But in this manual, in the sake of clarity, we will patiently write -the names in full, each time... - -

-

-By internationalization, one refers to the operation by which a -program, or a set of programs turned into a package, is made aware and -able to support multiple languages. This is a generalization process, -by which the programs are untied from using only English strings or -other English specific habits, and connected to generic ways of doing -the same, instead. Program developers may use various techniques to -internationalize their programs, some of them have been standardized. -GNU gettext offers one of these standards. See section The Programmer's View. - -

-

-By localization, one means the operation by which, in a set -of programs already internationalized, one gives the program all -needed information so that it can bend itself to handle its input -and output in a fashion which is correct for some native language and -cultural habits. This is a particularisation process, by which generic -methods already implemented in an internationalized program are used -in specific ways. The programming environment puts several functions -to the programmers disposal which allow this runtime configuration. -The formal description of specific set of cultural habits for some -country, together with all associated translations targeted to the -same native language, is called the locale for this language -or country. Users achieve localization of programs by setting proper -values to special environment variables, prior to executing those -programs, identifying which locale should be used. - -

-

-In fact, locale message support is only one component of the cultural -data that makes up a particular locale. There are a whole host of -routines and functions provided to aid programmers in developing -internationalized software and which allows them to access the data -stored in a particular locale. When someone presently refers to a -particular locale, they are obviously referring to the data stored -within that particular locale. Similarly, if a programmer is referring -to "accessing the locale routines", they are referring to the -complete suite of routines that access all of the locale's information. - -

-

-One uses the expression Native Language Support, or merely NLS, -for speaking of the overall activity or feature encompassing both -internationalization and localization, allowing for multi-lingual -interactions in a program. In a nutshell, one could say that -internationalization is the operation by which further localizations -are made possible. - -

-

-Also, very roughly said, when it comes to multi-lingual messages, -internationalization is usually taken care of by programmers, and -localization is usually taken care of by translators. - -

- - -

Aspects in Native Language Support

- -

-For a totally multi-lingual distribution, there are many things to -translate beyond output messages. - -

- -
    -
  • - -As of today, GNU gettext offers a complete toolset for -translating messages output by C programs. Perl scripts and shell -scripts also need to be translated. Even if there are some hooks -so this can be done, these hooks are not integrated as well as they -should be. - -
  • - -Some programs, like autoconf or bison, are able -to produce other programs (or scripts). Even if the generating -programs themselves are internationalized, the generated programs they -produce may need internationalization on their own, and this indirect -internationalization could be automated right from the generating -program. In fact, quite usually, generating and generated programs -could be internationalized independently, as the effort needed is -fairly orthogonal. - -
  • - -A few programs include textual tables which might need translation -themselves, independently of the strings contained in the program -itself. For example, RFC 1345 gives an English description for each -character which GNU recode is able to reconstruct at execution. -Since these descriptions are extracted from the RFC by mechanical means, -translating them properly would require a prior translation of the RFC -itself. - -
  • - -Almost all programs accept options, which are often worded out so to -be descriptive for the English readers; one might want to consider -offering translated versions for program options as well. - -
  • - -Many programs read, interpret, compile, or are somewhat driven by -input files which are texts containing keywords, identifiers, or -replies which are inherently translatable. For example, one may want -gcc to allow diacriticized characters in identifiers or use -translated keywords; `rm -i' might accept something else than -`y' or `n' for replies, etc. Even if the program will -eventually make most of its output in the foreign languages, one has -to decide whether the input syntax, option values, etc., are to be -localized or not. - -
  • - -The manual accompanying a package, as well as all documentation files -in the distribution, could surely be translated, too. Translating a -manual, with the intent of later keeping up with updates, is a major -undertaking in itself, generally. - -
- -

-As we already stressed, translation is only one aspect of locales. -Other internationalization aspects are not currently handled by GNU -gettext, but perhaps may be handled in future versions. There -are many attributes that are needed to define a country's cultural -conventions. These attributes include beside the country's native -language, the formatting of the date and time, the representation of -numbers, the symbols for currency, etc. These local rules are -termed the country's locale. The locale represents the knowledge -needed to support the country's native attributes. - -

-

-There are a few major areas which may vary between countries and -hence, define what a locale must describe. The following list helps -putting multi-lingual messages into the proper context of other tasks -related to locales, and also presents some other areas which GNU -gettext might eventually tackle, maybe, one of these days. - -

-
- -
Characters and Codesets -
-The codeset most commonly used through out the USA and most English -speaking parts of the world is the ASCII codeset. However, there are -many characters needed by various locales that are not found within -this codeset. The 8-bit ISO 8859-1 code set has most of the special -characters needed to handle the major European languages. However, in -many cases, the ISO 8859-1 font is not adequate. Hence each locale -will need to specify which codeset they need to use and will need -to have the appropriate character handling routines to cope with -the codeset. - -
Currency -
-The symbols used vary from country to country as does the position -used by the symbol. Software needs to be able to transparently -display currency figures in the native mode for each locale. - -
Dates -
-The format of date varies between locales. For example, Christmas day -in 1994 is written as 12/25/94 in the USA and as 25/12/94 in Australia. -Other countries might use ISO 8061 dates, etc. - -Time of the day may be noted as hh:mm, hh.mm, -or otherwise. Some locales require time to be specified in 24-hour -mode rather than as AM or PM. Further, the nature and yearly extent -of the Daylight Saving correction vary widely between countries. - -
Numbers -
-Numbers can be represented differently in different locales. -For example, the following numbers are all written correctly for -their respective locales: - - -
-12,345.67       English
-12.345,67       French
-1,2345.67       Asia
-
- -Some programs could go further and use different unit systems, like -English units or Metric units, or even take into account variants -about how numbers are spelled in full. - -
Messages -
-The most obvious area is the language support within a locale. This is -where GNU gettext provide an ease for developers and users to -easily change the language that the software uses to communicate to -the user. - -
- -

-In the near future we see no chance that beside message handling -more components of locale will be made available for use in other -GNU packages. The reason for this is that most modern system provide -a more or less reasonable support for at least some of the missing -components. Another point is that the GNU libc and Linux will get -a new and complete implementation of the whole locale functionality -which could be adopted by system lacking a reasonable locale support. - -

- - -

Files Conveying Translations

- -

-The letters PO in `.po' files means Portable Object, to -distinguish it from `.mo' files, where MO stands for Machine -Object. This paradigm, as well as the PO file format, is inspired -by the NLS standard developed by Uniforum, and implemented by Sun -in their Solaris system. - -

-

-PO files are meant to be read and edited by humans, and associate each -original, translatable string of a given package with its translation -in a particular target language. A single PO file is dedicated to -a single target language. If a package supports many languages, -there is one such PO file per language supported, and each package -has its own set of PO files. These PO files are best created by -the xgettext program, and later updated or refreshed through -the tupdate program. Program xgettext extracts all -marked messages from a set of C files and initializes a PO file with -empty translations. Program tupdate takes care of adjusting -PO files between releases of the corresponding sources, commenting -obsolete entries, initializing new ones, and updating all source -line references. Files ending with `.pot' are kind of base -translation files found in distributions, in PO file format, and -`.pox' files are often temporary PO files. - -

-

-MO files are meant to be read by programs, and are binary in nature. -A few systems already offer tools for creating and handling MO files -as part of the Native Language Support coming with the system, but the -format of these MO files is often different from system to system, -and non-portable. They do not necessary use `.mo' for file -extensions, but since system libraries are also used for accessing -these files, it works as long as the system is self-consistent about -it. If GNU gettext is able to interface with the tools already -provided with systems, it will consequently let these provided tools -take care of generating the MO files. Or else, if such tools are not -found or do not seem usable, GNU gettext will use its own ways -and its own format for MO files. Files ending with `.gmo' are -really MO files, when it is known that these files use the GNU format. - -

- - -

Overview of GNU gettext

- -

-The following diagram summarizes the relation between the files -handled by GNU gettext and the tools acting on these files. -It is followed by a somewhat detailed explanations, which you should -read while keeping an eye on the diagram. Having a clear understanding -of these interrelations would surely help programmers, translators -and maintainers. - -

- -
-Original C Sources ---> PO mode ---> Marked C Sources ---.
-                                                         |
-              .---------<--- GNU gettext Library         |
-.--- make <---+                                          |
-|             `---------<--------------------+-----------'
-|                                            |
-|   .-----<--- PACKAGE.pot <--- xgettext <---'   .---<--- PO Compendium
-|   |                                            |             ^
-|   |                                            `---.         |
-|   `---.                                            +---> PO mode ---.
-|       +----> tupdate -------> LANG.pox --->--------'                |
-|   .---'                                                             |
-|   |                                                                 |
-|   `-------------<---------------.                                   |
-|                                 +--- LANG.po <--- New LANG.pox <----'
-|   .--- LANG.gmo <--- msgfmt <---'
-|   |
-|   `---> install ---> /.../LANG/PACKAGE.mo ---.
-|                                              +---> "Hello world!"
-`-------> install ---> /.../bin/PROGRAM -------'
-
- -

-The indication `PO mode' appears in two places in this picture, -and you may safely read it as merely meaning "hand editing", using -any editor of your choice, really. However, for those of you being -the lucky users of GNU Emacs, PO mode has been specifically created -for providing a cosy environment for editing or modifying PO files. -While editing a PO file, PO mode allows for the easy browsing of -auxiliary and compendium PO files, as well as following references into -the set of C program sources from which PO files has been derived. -It has a few special features, among which the interactive marking -of program strings as translatable, and the validatation of PO files -with easy repositioning to PO file lines showing errors. - -

-

-As a programmer, the first step into bringing GNU gettext -into your package is identifying, right in the C sources, which -strings are meant to be translatable, and which are untranslatable. -This tedious job can be done a little more comfortably using PO -mode, but you can use any means being usual to you for modifying your -C sources. Some other simple, standard changes are also needed to -properly initialize the translation library. See section Preparing Program Sources, for -more information about all this. - -

-

-Once the C sources have been modified, the xgettext program -is used to find and extract all translatable strings, and create an -initial PO file out of all these. This `package.pot' file -contains all original program strings, it has sets of pointers to -exactly where in C sources each string is used, and all translations -are set to empty. The letter t in `.pot' marks that this is -a Template PO file, not yet oriented towards any particular language. -See section Invoking the xgettext Program, for more details about how one calls the -xgettext program. If you are really lazy, you might -be interested at working a lot more right away, and preparing the -whole distribution setup (see section The Maintainer's View). By doing so, you -spare typing the xgettext command yourself, as make -should now generate the proper things automatically for you! - -

-

-The first time through, there is no `lang.po' yet, so the -tupdate step may be skipped and replaced by a mere copy of -`package.pot' to `lang.pox', where lang -represents the target language. - -

-

-Then comes the initial translation of messages. Translation in -itself is a whole matter, still exclusively meant for humans, -and whose complexity far overwhelms the level of this manual. -Nevertheless, a few hints are given in some other chapter of this -manual (see section The Translator's View). You will also find there indications -about how to contact translating teams, or becoming part of them, -for sharing your translating concerns with others who target the same -native language. - -

-

-While adding the translated messages into the `lang.pox' -PO file, if you do not have GNU Emacs handy, you are on your own -for ensuring that your fully respect the PO file format, and quoting -conventions (see section The Format of PO Files). This is surely not an impossible task, -as this is the way many people handled PO files already for Uniforum or -Solaris. On the other hand, using PO mode in GNU Emacs, most details -of PO file format are taken care for you, but you have to acquire -some familiarity with PO mode itself. Besides main PO mode commands -(see section Main Commands), you should know how to move between entries -(see section Entry Positioning), and how to handle untranslated entries -(see section Untranslated Entries). - -

-

-If some common translations have already been saved into a compendium -PO file, translators may use PO mode for initializing untranslated -entries from the compendium, and also save selected translations into -the compendium, updating it (see section Using Translation Compendiums). Compendium files -are meant to be exchanged between members of a given translation team. - -

-

-Programs, or packages of programs, are dynamic in nature: users write -bug reports and suggestion for improvements, maintainers react by -modifying programs in various ways. The fact that a package has -already been internationalized should not make maintainers shy -of adding new strings, or modifying strings already translated. -They just do their job the best they can. For the GNU Translation -Project to work smoothly, it is important that maintainers do not -carry translation concerns on their already loaded shoulders, and that -translators be kept as free as possible of programmatic concerns. - -

-

-The only concern maintainers should have is carefully marking new -strings are translatable, when they should be, and do not otherwise -worry about them being translated, as this will come in proper time. -Consequently, when programs and their strings are adjusted in various -ways by maintainers, and for matters usually unrelated to translation, -xgettext would construct `package.pot' files which are -evolving over time, so the translations carried by `lang.po' -are slowly fading out of date. - -

-

-It is important for translators (and even maintainers) to understand -that package translation is a continuous process in the lifetime of a -package, and not something which is done once and for all at the start. -After an initial burst of translation activity for a given package, -interventions are needed once in a while, because here and there, -translated entries become obsolete, and new untranslated entries -appear, needing translation. - -

-

-The tupdate program has the purpose of refreshing an already -existing `lang.po' file, by comparing it with a newer -`package.pot' template file, extracted by xgettext -out of recent C sources. The refreshing operation adjusts all -references to C source locations for strings, since these strings -move as programs are modified. Also, tupdate comments out as -obsolete, in `lang.pox', those already translated entries -which are no longer used in the program sources (see section Obsolete Entries. It finally discovers new strings and insert them in -the resulting PO file as untranslated entries (see section Untranslated Entries. See section Invoking the tupdate Program, for more information about what -tupdate really does. - -

-

-Whatever route or means taken, the goal is obtaining an updated -`lang.pox' file offering translations for all strings. -When this is properly achieved, this file `lang.pox' may -take the place of the previous official `lang.po' file. - -

-

-The time mobility, or fluidity of PO files, is an integral part of -the translation game, and should be well understood, and accepted. -People resisting it will have a hard time participating in the GNU -Translation Project, or will give a hard time to other participants! -In particular, maintainers should relax and include all available PO -files in their distributions, even if these have not recently been -updated, without banging or otherwise trying to exert pressure on the -translator teams to get the job done. The pressure should rather -come from the community of users speaking a particular language, -and maintainers should consider themselves fairly relieved of any -concern about the adequacy of translation files. On the other hand, -translators should reasonably try updating the PO files they are -responsible for, while the package is undergoing pretest, prior to -an official distribution. - -

-

-Once the PO file is complete and dependable, the msgfmt program -is used for turning the PO file into a machine-oriented format, which -may yield efficient retrieval of translations by the programs of the -package, whenever needed at runtime (see section The Format of GNU MO Files). See section Invoking the msgfmt Program, for more information about all modalities of execution -for the msgfmt program. - -

-

-Finally, the modified and marked C sources are compiled and linked -with the GNU gettext library, usually through the operation of -make, given a suitable `Makefile' exists for the project, -and the resulting executable is installed somewhere users will find it. -The MO files themselves should also be properly installed. Given the -appropriate environment variables are set (see section Magic for End Users), the -program should localize itself automatically, whenever it executes. - -

-

-The remaining of this manual has the purpose of deepening the various -steps outlined in this section. - -

- - -

PO Files and PO Mode Basics

- -

-The GNU gettext toolset helps programmers and translators -at producing, updating and using translation files, mainly those -PO files which are textual, editable files. This chapter insists -on the format of PO files, and contains a PO mode starter. PO mode -description is spread over this manual instead of being concentrated -in one place, this chapter presents only the basics of PO mode. - -

- - - -

Completing GNU gettext Installation

- -

-Once you have received, unpacked, configured and compiled the GNU -gettext distribution, the `make install' command puts in -place the programs xgettext, msgfmt, gettext, and -tupdate, as well as their available message catalogs. For -completing a comfortable installation, you might also want to make the -PO mode available to your GNU Emacs users. - -

-

-To finish the installation of the PO mode, you might want modify your -file `.emacs', once and for all, so it contains a few lines looking -like: - -

- -
-(setq auto-mode-alist
-      (cons '("\\.pox?\\'" . po-mode) auto-mode-alist))
-(autoload 'po-mode "po-mode")
-
- -

-Later, whenever you edit some `.po' or `.pox' file, Emacs -loads `po-mode.elc' (or `po-mode.el') as needed, and -automatically activate PO mode commands for the associated buffer. -The string PO appears in the mode line for any buffer for -which PO mode is active. Many PO files may be active at once in a -single Emacs session. - -

- - -

The Format of PO Files

- -

-A PO file is made up of many entries, each entry holding the relation -between an original untranslated string and its corresponding -translation. All entries in a given PO file usually pertain -to a single project, and all translations are expressed in a single -target language. One PO file entry has the following schematic -structure: - -

- -
-white-space
-#  translator-comments
-#. automatic-comments
-#: reference...
-msgid untranslated-string
-msgstr translated-string
-
- -

-The general structure of a PO file should be well understood by -the translator. When using PO mode, very little has to be known -about the format details, as PO mode takes care of them for her. - -

-

-Entries begin with some optional white space. Usually, when generated -through GNU gettext tools, there is exactly one blank line -between entries. Then comments follow, on lines all starting with the -character #. There are two kinds of comments: those which have -some white space immediately following the #, which comments are -created and maintained exclusively by the translator, and those which -have some non-white character just after the #, which comments -are created and maintained automatically by GNU gettext tools. -All comments, of any kind, are optional. - -

-

-After white space and comments, entries show two strings, giving -first the untranslated string as it appears in the original program -sources, and then, the translation of this string. The original -string is introduced by the keyword msgid, and the translation, -by msgstr. The two strings, untranslated and translated, -are quoted in various ways in the PO file, using " -delimiters and \ escapes, but the translator does not really -have to pay attention to the precise quoting format, as PO mode fully -intend to take care of quoting for her. - -

-

-The msgid strings, as well as automatic comments, are produced -and managed by other GNU gettext tools, and PO mode does not -provide means for the translator to alter these. The most she can -do is merely deleting them, and only by deleting the whole entry. -On the other hand, the msgstr string, as well as translator -comments, are really meant for the translator, and PO mode gives her -the full control she needs. - -

-

-It happens that some lines, usually whitespace or comments, follow the -very last entry of a PO file. Such lines are not part of any entry, -and PO mode is unable to take action on those lines. By using the -PO mode function M-x po-normalize, the translator may get -rid of those spurious lines. See section Normalizing Strings in Entries. - -

-

-The remainder of this section may be safely skipped for those using -PO mode, yet it may be interesting for everybody to have a better -idea of the precise format of a PO file. On the other hand, those -not having GNU Emacs handy should carefully continue reading on. - -

-

-Each of untranslated-string and translated-string respects -the C syntax for a character string, including the surrounding quotes -and imbedded backslashed escape sequences. When the time comes -to write multi-line strings, one should not use escaped newlines. -Instead, a closing quote should follow the last character on the -line to be continued, and an opening quote should resume the string -at the beginning of the following PO file line. For example: - -

- -
-msgid ""
-"Here is an example of how one might continue a very long string\n"
-"for the common case the string represents multi-line output.\n"
-
- -

-In this example, the empty string is used on the first line, for -allowing the better alignment of the H from the word `Here' -over the f from the word `for'. In this example, the -msgid keyword is followed by three strings, which are meant -to be concatenated. Concatenating the empty string does not change -the resulting overall string, but it is a way for us to comply with -the necessity of msgid to be followed by a string on the same -line, while keeping the multi-line presentation left-justified, as -we find this to be cleaner disposition. The empty string could have -been omitted, but only if the string starting with `Here' was -promoted on the first line, right after msgid.(1) It was not really necessary -either to switch between the two last quoted strings immediately after -the newline `\n', the switch could have occurred after any -other character, we just did it this way because it is neater. - -

-

-One should carefully distinguish between end of lines marked as -`\n' inside quotes, which are part of the represented -string, and end of lines in the PO file itself, outside string quotes, -which have no incidence on the represented string. - -

-

-Outside strings, white lines and comments may be used freely. -Comments start at the beginning of a line with `#' and extend -until the end of the PO file line. Comments written by translators -should have the initial `#' immediately followed by some white -space. If the `#' is not immediately followed by white space, -this comment is most likely generated and managed by specialized GNU -tools, and might disappear or be replaced unexpectandly when the PO -file is given to tupdate. - -

- - -

Main Commands

- -

-When Emacs finds a PO file in a window, PO mode is activated -for that window. This puts the window read-only and establishes a -po-mode-map, which is a genuine Emacs mode, in that way that it is -not derived from text mode in any way. - -

-

-The main PO commands are those who do not fit in the other categories in -subsequent sections, they allow for quitting PO mode or managing windows -in special ways. - -

-
- -
u -
-Undo last modification to the PO file. - -
q -
-Quit processing and save the PO file. - -
o -
-Temporary leave the PO file window. - -
h -
-Show help about PO mode. - -
= -
-Give some PO file statistics. - -
v -
-Batch validate the format of the whole PO file. - -
- -

-The command u (po-undo) interfaces to the GNU Emacs -undo facility. See section `Undoing Changes' in The Emacs Editor. Each time u is typed, modifications the translator -did to the PO file are undone a little more. For the purpose of -undoing, each PO mode command is atomic. This is especially true for -the RET command: the whole edition made by using a single -use of this command is undone at once, even if the edition itself -implied several actions. However, while in the editing window, one -can undo the edition work quite parsimoniously. - -

-

-The command q (po-quit) is used when the translator is -done with the PO file. If the file has been modified, it is saved -on disk first. However, prior to all this, the command checks if -some untranslated message remains in the PO file and, if yes, the -translator is asked if she really wants to leave working with this -PO file. This is the preferred way of getting rid of an Emacs PO -file buffer. Merely killing it through the usual command C-x -k (kill-buffer), say, has the unnice effect of leaving a PO -internal work buffer behind. - -

-

-The command o (po-other-window) is another, softer -way, to leave PO mode, temporarily. It just moves the cursor in -some other Emacs window, and pops one if necessary. For example, if -the translator just got PO mode to show some source context in some -other, she might discover some apparent bug in the program source -that needs correction. This command allows the translator to change -sex, become a programmer, and have the cursor right into the window -containing the program she (or rather he) wants to modify. -By later getting the cursor back in the PO file window, or by -asking Emacs to edit this file once again, PO mode is then recovered. - -

-

-The command h (po-help) displays a summary of all -available PO mode commands. The translator should then type any -character to resume normal PO mode operations. The command ? -has the same effect as h. - -

-

-The command = (po-statistics) computes the total number -of entries in the PO file, the ordinal of the current entry -(counted from 1), the number of untranslated entries, the number of -obsolete entries, and displays all these numbers. - -

-

-The command v (po-validate) launches msgfmt in -verbose mode over the current PO file. This command first offers -to save the current PO file on disk. The msgfmt tool, from -GNU gettext, has the purpose of creating an MO file out of a -PO file, and PO mode uses the features of this program for checking -the overall format of a PO file, as well as all individual entries. - -

-

-The program msgfmt runs asynchronously with Emacs, so -the translator regains control immediately while her PO file -is being studied. Error output is collected in the GNU Emacs -`*compilation*' buffer, displayed in another window. The regular -GNU Emacs command C-x` (next-error), as well as other -usual compile commands, allow the translator to reposition quickly to -the offending parts of the PO file. Once the cursor on the line in -error, the translator may decide for any PO mode action which would -help correcting the error. - -

- - -

Entry Positioning

- -

-The cursor in a PO file window is almost always part of -an entry. The only exceptions are the special case when the cursor -is after the last entry in the file, or when the PO file is -empty. The entry where the cursor is found to be is said to be the -current entry. Many PO mode commands operate on the current entry, -so moving the cursor does more than allowing the translator to browse -the PO file, this also selects on which entry commands operate. - -

-

-Some PO mode commands alter the position of the cursor in a specialized -way. A few of those special purpose positioning are described here, -the others are described in following sections. - -

-
- -
. -
-Redisplay the current entry. - -
n -
-
SPC -
-Select the entry after the current one. - -
p -
-
DEL -
-Select the entry before the current one. - -
< -
-Select the first entry in the PO file. - -
> -
-Select the last entry in the PO file. - -
m -
-Record the location of the current entry for later use. - -
l -
-Return to a previously saved entry location. - -
x -
-Exchange the current entry location with the previously saved one. - -
- -

-Any GNU Emacs command able to reposition the cursor may be used -to select the current entry in PO mode, including commands which -move by characters, lines, paragraphs, screens or pages, and search -commands. However, there is a kind of standard way to display the -current entry in PO mode, which usual GNU Emacs commands moving -the cursor do not especially try to enforce. The command . -(po-current-entry) has the sole purpose of redisplaying the -current entry properly, after the current entry has been changed by -means external to PO mode, or the Emacs screen otherwise altered. - -

-

-It is yet to decide if PO mode would help the translator, or otherwise -irritate her, by forcing a more fixed window disposition while she -is doing her work. We originally had quite precise ideas about -how windows should behave, but on the other hand, anyone used to -GNU Emacs is often happy to keep full control. Maybe a fixed window -disposition might be offered as a PO mode option that the translator -might activate or deactivate at will, so it could be offered on an -experimental basis. If nobody feels a real need for using it, or -a compulsion for writing it, we might as well drop this whole idea. -The incentive for doing it should come from translators rather than -programmers, as opinions from an experienced translator are surely -more worth to me than opinions from programmers thinking about -how others should do translation. - -

-

-The commands n (po-next-entry) and p -(po-previous-entry) move the cursor the entry following, -or preceding, the current one. If n is given while the -cursor is on the last entry of the PO file, or if p -is given while the cursor is on the first entry, no move is done. -SPC and DEL are alternate keys for n and -p, respectively. - -

-

-The commands < (po-first-entry) and > -(po-last-entry) move the cursor to the first entry, or last -entry, of the PO file. When the cursor is located past the last -entry in a PO file, most PO mode commands will return an error saying -`After last entry'. However, the commands < and > -have the special property of being able to work even when the cursor -is not into some PO file entry, and you may use them for nicely -correcting this situation. But even these commands will fail on a -truly empty PO file. There are development plans for PO mode for it -to interactively fill an empty PO file from sources. See section Marking Translatable Strings. - -

-

-The translator may decide, before working at the translation of -a particular entry, that she needs browsing the remainder of the -PO file, maybe for finding the terminology or phraseology used -in related entries. She can of course use the standard Emacs idioms -for saving the current cursor location in some register, and use that -register for getting back, or else, to use the location ring. - -

-

-PO mode offers another approach, by which cursor locations may be saved -onto a special stack. The command m (po-push-location) -merely adds the location of current entry to the stack, pushing -the already saved locations under the new one. The command -l (po-pop-location) consumes the top stack element and -reposition the cursor to the entry associated with that top element. -This position is then lost, for the next l will move the cursor -to the previously saved location, and so on until locations remain -on the stack. - -

-

-If the translator wants the position to be kept on the location stack, -maybe for taking a mere look at the entry associated with the top -element, then go elsewhere with the intent of getting back later, she -ought to use m immediately after l. - -

-

-The command x (po-exchange-location) simultaneously -reposition the cursor to the entry associated with the top element of -the stack of saved locations, and replace that top element with the -location of the current entry before the move. Consequently, repeating -the x command toggles alternatively between two entries. -For achieving this, the translator will position the cursor on the -first entry, use m, then position to the second entry, and -merely use x for making the switch. - -

- - -

Normalizing Strings in Entries

- -

-There are many different ways for encoding a particular string into a -PO file entry, because there are so many different ways to split and -quote multi-line strings, and even, to represent special characters -by backslahsed escaped sequences. Some features of PO mode rely on -the ability for PO mode to scan an already existing PO file for a -particular string encoded into the msgid field of some entry. -Even if PO mode has internally all the built-in machinery for -implementing this recognition easily, doing it fast is technically -difficult. For facilitating a solution to this efficiency problem, -we decided for a canonical representation for strings. - -

-

-A conventional representation of strings in a PO file is currently -under discussion, and PO mode experiments a canonical representation. -Having both xgettext and PO mode converging towards a uniform -way of representing equivalent strings would be useful, as the internal -normalization needed by PO mode could be automatically satisfied -when using xgettext from GNU gettext. An explicit -PO mode normalization should then be only necessary for PO files -imported from elsewhere, or for when the convention itself evolves. - -

-

-So, for achieving normalization of at least the strings of a given -PO file needing a canonical representation, the following PO mode -command is available: - -

-
- -
M-x po-normalize -
-Tidy the whole PO file by making entries more uniform. - -
- -

-The special command M-x po-normalize, which has no associate -keys, revises all entries, ensuring that strings of both original -and translated entries use uniform internal quoting in the PO file. -It also removes any crumb after the last entry. This command may be -useful for PO files freshly imported from elsewhere, or if we ever -improve on the canonical quoting format we use. This canonical format -is not only meant for getting cleaner PO files, but also for greatly -speeding up msgid string lookup for some other PO mode commands. - -

-

-M-x po-normalize presently makes three passes over the entries. -The first implements heuristics for converting PO files for GNU -gettext 0.6 and earlier, in which msgid and msgstr -fields were using K&R style C string syntax for multi-line strings. -These heuristics may fail for comments not related to obsolete -entries and ending with a backslash; they also depend on subsequent -passes for finalizing the proper commenting of continued lines for -obsolete entries. This first pass might disappear once all oldish PO -files would have been adjusted. The second and third pass normalize -all msgid and msgstr strings respectively. They also -clean out those trailing backslashes used by XView's msgfmt -for continued lines. - -

-

-Having such an explicit normalizing command allows for importing PO -files from other sources, but also eases the evolution of the current -convention, evolution driven mostly by aesthetic concerns, as of now. -It is all easy to make suggested adjustments at a later time, as the -normalizing command and eventually, other GNU gettext tools -should greatly automate conformance. A description of the canonical -string format is given below, for the particular benefit of those not -having GNU Emacs handy, and who would nevertheless want to handcraft -their PO files in nice ways. - -

-

-Right now, in PO mode, strings are single line or multi-line. A string -goes multi-line if and only if it has embedded newlines, that -is, if it matches `[^\n]\n+[^\n]'. So, we would have: - -

- -
-msgstr "\n\nHello, world!\n\n\n"
-
- -

-but, replacing the space by a newline, this becomes: - -

- -
-msgstr ""
-"\n"
-"\n"
-"Hello,\n"
-"world!\n"
-"\n"
-"\n"
-
- -

-We are deliberately using a caricatural example, here, to make the -point clearer. Usually, multi-lines are not that bad looking. -It is probable that we will implement the following suggestion. -We might lump together all initial newlines into the empty string, -and also all newlines introducing empty lines (that is, for n -> 1, the n-1'th last newlines would go together on a separate -string), so making the previous example appear: - -

- -
-msgstr "\n\n"
-"Hello,\n"
-"world!\n"
-"\n\n"
-
- -

-There are a few yet undecided little points about string normalization, -to be documented in this manual, once these questions settle. - -

- - -

Preparing Program Sources

- -

-For the programmer, changes to the C source code fall into three -categories. First, you have to make the localization functions -known to all modules needing message translation. Second, you should -properly trigger the operation of GNU gettext when the program -initializes, usually from the main function. Last, you should -identify and especially mark all constant strings in your program -needing translation. - -

-

-Presuming that your set of programs, or package, has been adjusted -so all needed GNU gettext files are available, and your -`Makefile' files are adjusted (see section The Maintainer's View), each C module -having translated C strings should contain the line: - -

- -
-#include <libintl.h>
-
- -

-The remaining changes to your C sources are discussed in the further -sections of this chapter. - -

- - - -

Triggering gettext Operations

- -

-The initialization of locale data should be done with more or less -the same code in every program, as demonstrated below: - -

- -
-int
-main (argc, argv)
-     int argc;
-     char argv;
-{
-  ...
-  setlocale (LC_ALL, "");
-  bindtextdomain (PACKAGE, LOCALEDIR);
-  textdomain (PACKAGE);
-  ...
-}
-
- -

-PACKAGE and LOCALEDIR should be provided either by -`config.h' or by the Makefile. For now consult the gettext -sources for more information. - -

-

-The use of LC_ALL might not be appropriate for you. -LC_ALL includes all locale categories and especially -LC_CTYPE. This later category is responsible for determining -character classes with the isalnum etc. functions from -`ctype.h' which could especially for programs, which process some -kind of input language, be wrong. For example this would mean that a -source code using the (cedille character) is runnable in -France but not in the U.S. - -

-

-So it is sometimes necessary to replace the LC_ALL line in the -code above by a sequence of setlocale lines - -

- -
-{
-  ...
-  setlocale (LC_TIME, "");
-  setlocale (LC_MESSAGES, "");
-  ...
-}
-
- -

-or to switch for and back to the character class in question. - -

- - -

How Marks Appears in Sources

- -

-The C sources should mark all strings requiring translation. Marking -is done in such a way that each translatable string appears to be -the sole argument of some function or preprocessor macro. There are -only a few such possible functions or macros meant for translation, -and their names are said to be marking keywords. The marking is -attached to strings themselves, rather than to what we do with them. -This approach has more uses. A blatant example is an error message -produced by formatting. The format string needs translation, as -well as some strings inserted through some `%s' specification -in the format, while the result from sprintf may have so many -different instances that it is unpractical to list them all in some -`error_string_out()' routine, say. - -

-

-This marking operation has two goals. The first goal of marking -is for triggering the retrieval of the translation, at run time. -The keyword are possibly resolved into a routine able to dynamically -return the proper translation, as far as possible or wanted, for the -argument string. Most localizable strings are found into executable -positions, that is, affected to variables or given as parameter to -functions. But this is not universal usage, and some translatable -strings appear in structured initializations. See section Special Cases of Translatable Strings. - -

-

-The second goal of the marking operation is to help xgettext -at properly extracting all translatable strings when it scans a set -of program sources and produces PO file templates. - -

-

-The canonical keyword for marking translatable strings is -`gettext', it gave its name to the whole GNU gettext -package. For packages making only light use of the `gettext' -keyword, macro or function, it is easily used as is. However, -for packages using the gettext interface more heavily, it -is usually more convenient giving the main keyword a shorter, less -obtrusive name. Indeed, the keyword might appear on a lot of strings -all over the package, and programmers usually do not want nor need -that their program sources remind them loud, all the time, that they -are internationalized. Further, a long keyword has the disadvantage -of using more horizontal space, forcing more indentation work on -sources for those trying to keep them within 79 or 80 columns. - -

-

-Many GNU packages use `_' (a simple underline) as a keyword, -and write `_("Translatable string")' instead of `gettext -("Translatable string")'. Further, the usual GNU coding rule -wanting that there is a space between the keyword and the opening -parenthesis is relaxed, in practice, for this particular usage. -So, the textual overhead per translatable string is reduced to -only three characters: the underline and the two parentheses. -However, even if GNU gettext uses this convention internally, -it does not offer it officially. The real, genuine keyword is truly -`gettext' indeed. It is fairly easy for those wanting to use -`_' instead of `gettext' to declare: - -

- -
-#include <libintl.h>
-#define _(String) gettext (String)
-
- -

-instead of merely using `#include <libintl.h>'. - -

-

-Later on, the maintenance is relatively easy. If, as a programmer, -you add or modify a string, you will have to ask yourself if the -new or altered string requires translation, and include it within -`_()' if you think it should be translated. `"%s: %d"' is -an example of string not requiring translation! - -

- - -

Marking Translatable Strings

- -

-In PO mode, one set of features is meant more for the programmer than -for the translator, and allows him to interactively mark which strings, -in a set of program sources, are translatable, and which are not. -Even if it is a fairly easy job for a programmer to find and mark -such strings by other means, using any editor of his choice, PO mode -makes this work more comfortable. Further, this gives translators -who feel a little like programmers, or programmers who feel a little -like translators, a tool letting them work at marking translatable -strings in the program sources, while simultaneously producing a set of -translation in some language, for the package being internationalized. - -

-

-The set of program sources, aimed by the PO mode commands describe -here, should have an Emacs tags table constructed for your project, -prior to using these PO file commands. This is easy to do. In any -shell window, change the directory to the root of your project, then -execute a command resembling: - -

- -
-etags src/*.[hc] lib/*.[hc]
-
- -

-presuming here you want to process all `.h' and `.c' files -from the `src/' and `lib/' directories. This command will -explore all said files and create a `TAGS' file in your root -directory, somewhat summarizing the contents using a special file -format Emacs can understand. - -

-

-For official GNU packages which follow the GNU coding standard there is -a make goal tags or TAGS which construct the tag files in -all directories and for all files containing source code. - -

-

-Once your `TAGS' file is ready, the following commands assist -the programmer at marking translatable strings in his set of sources. -But these commands are necessarily driven from within a PO file -window, and it is likely that you do not even have such a PO file yet. -This is not a problem at all, as you may safely open a new, empty PO -file, mainly for using these commands. This empty PO file will slowly -fill in while you mark strings as translatable in your program sources. - -

-
- -
, -
-Search through program sources for a string which looks like a -candidate for translation. - -
M-, -
-Mark the last string found with `_()'. - -
M-. -
-Mark the last string found with a keyword taken from a set of possible -keywords. This command with a prefix allows some management of these -keywords. - -
- -

-The , (po-tags-search) command search for the next -occurrence of a string which looks like a possible candidate for -translation, and displays the program source in another Emacs window, -positioned in such a way that the string is near the top of this other -window. If the string is to big to fit whole in this window, it is -rather positioned so only its end is shown. In any case, the cursor -is left in the PO file window. If the shown string would be better -presented differently in different native languages, you may mark it -using M-, or M-.. Otherwise, you might rather ignore it -and skip to the next string by merely repeating the , command. - -

-

-A string is a good candidate for translation if it contains a sequence -of three or more letters. A string containing at most two letters in -a row will be considered as a candidate if it has more letters than -non-letters. The command disregards strings containing no letters, -or isolated letters only. It also disregards strings within comments, -or strings already marked with some keyword PO mode knows (see below). - -

-

-If you have never told Emacs about some `TAGS' file to use, the -command will request that you specify one from the minibuffer, the -first time you use the command. You may later change your `TAGS' -file by using the regular Emacs command M-x visit-tags-table, -which will ask you to name the precise `TAGS' file you want -to use. See section `Tag Tables' in The Emacs Editor. - -

-

-Each time you use the , command, the search resumes where it was -left over by the previous search, and goes through all program sources, -obeying the `TAGS' file, until all sources have been processed. -However, by giving a prefix argument to the command (C-u -,), you may request that the search be restarted all over again -from the first program source; but in this case, strings that you -recently marked as translatable will be automatically skipped. - -

-

-Using this , command does not prevent using of other regular -Emacs tags commands. For example, regular tags-search or -tags-query-replace commands may be used without disrupting the -independent , search sequence. However, as implemented, the -initial , command (or the , command is used with a -prefix) might also reinitialize the regular Emacs tags searching to the -first tags file, this reinitialization might be considered spurious. - -

-

-The M-, (po-mark-translatable) command will mark the -recently found string with the `_' keyword. The M-. -(po-select-mark-and-mark) command will request that you type -one keyword from the minibuffer and use that keyword for marking -the string. Both commands will automatically create a new PO file -untranslated entry for the string being marked, and make it the -current entry (making it easy for you to immediately proceed to its -translation, if you feel like doing it right away). It is possible -that the modifications made to the program source by M-, or -M-. render some source line longer than 80 columns, forcing you -to break and re-indent this line differently. You may use the o -command from PO mode, or any other window changing command from -GNU Emacs, to break out into the program source window, and do any -needed adjustments. You will have to use some regular Emacs command -to return the cursor to the PO file window, if you want commanding -, for the next string, say. - -

-

-The M-. command has a few built-in speedups, so you do not -have to explicitly type all keywords all the time. The first such -speedup is that you are presented with a preferred keyword, -which you may accept by merely typing RET at the prompt. -The second speedup is that you may type any non-ambiguous prefix of the -keyword you really mean, and the command will complete it automatically -for you. This also means that PO mode has to know all -your possible keywords, and that it will not accept mistyped keywords. - -

-

-If you reply ? to the keyword request, the command gives a -list of all known keywords, from which you may choose. When the -command is prefixed by an argument (C-u M-.), it inhibits -updating any program source or PO file buffer, and does some simple -keyword management instead. In this case, the command asks for a -keyword, written in full, which becomes a new allowed keyword for -later M-. commands. Moreover, this new keyword automatically -becomes the preferred keyword for later commands. By typing -an already known keyword in response to C-u M-., one merely -changes the preferred keyword and does nothing more. - -

-

-All keywords known for M-. are recognized by the , command -when scanning for strings, and strings already marked by any of those -known keywords are automatically skipped. If many PO files are opened -simultaneously, each one has its own independent set of known keywords. -There is no provision in PO mode, currently, for deleting a known -keyword, you have to quit the file (maybe using q) and reopen -it afresh. When a PO file is newly brought up in an Emacs window, only -`gettext' and `_' are known as keywords, and `gettext' -is preferred for the M-. command. In fact, this is not useful to -prefer `_', as this one is already built in the M-, command. - -

- - -

Special Cases of Translatable Strings

- -

-The attentive reader might now point out that it is not always possible -to mark translatable string with gettext or something like this. -Consider the following case: - -

- -
-{
-  static const char *messages[] = {
-    "some very meaningful message",
-    "and another one"
-  };
-  const char *string;
-  ...
-  string
-    = index > 1 ? "a default message" : messages[index];
-
-  fputs (string);
-  ...
-}
-
- -

-While it is no problem to mark the string "a default message" it -is not possible to mark the string initializers for messages. -What is to do? We have to fulfill two tasks. First we have to mark the -strings so that the xgettext program (see section Invoking the xgettext Program) -can find them, and second we have to translate the string at runtime -before printing them. - -

-

-The first task can be fulfilled by creating a new keyword, which names a -no-op. For the second we have to mark all access points to a string -from the array. So one solution can look like this: - -

- -
-#define gettext_noop(String) (String)
-
-{
-  static const char *messages[] = {
-    gettext_noop ("some very meaningful message"),
-    gettext_noop ("and another one")
-  };
-  const char *string;
-  ...
-  string
-    = index > 1 ? gettext ("a default message") : gettext (messages[index]);
-
-  fputs (string);
-  ...
-}
-
- -

-Please convince yourself that the string which is written by -fputs is translated in any case. How to get xgettext know -the additional keyword gettext_noop is explained in section Invoking the xgettext Program. - -

-

-The above is of course not the only solution. You could also come along -with the following one: - -

- -
-#define gettext_noop(String) (String)
-
-{
-  static const char *messages[] = {
-    gettext_noop ("some very meaningful message",
-    gettext_noop ("and another one")
-  };
-  const char *string;
-  ...
-  string
-    = index > 1 ? gettext_noop ("a default message") : messages[index];
-
-  fputs (gettext (string));
-  ...
-}
-
- -

-But this has some drawbacks. First the programmer has to take care that -he uses gettext_noop for the string "a default message". -A use of gettext could have in rare cases unpredictable results. -The second reason is found in the internals of the GNU gettext -Library which will make this solution less efficient. - -

-

-One advantage is that you need not make control flow analysis to make -sure the output is really translated in any case. But this analysis is -generally not very difficult. If it should be in any situation you can -use this second method in this situation. - -

- - - -

Making the Initial PO File

- - - -

Invoking the xgettext Program

- - -
-xgettext [option] inputfile ...
-
- -
- -
`-a' -
-
`--extract-all' -
-Extract all strings. - -
`-c [tag]' -
-
`--add-comments[=tag]' -
-Place comment block with tag (or those preceding keyword lines) -in output file. - -
`-C' -
-
`--c++' -
-Recognize C++ style comments. - -
`-d name' -
-
`--default-domain=name' -
-Use `name.po' for output (instead of `messages.po'). - -
`-D directory' -
-
`--directory=directory' -
-Change to directory before beginning to search and scan source -files. The resulting `.po' file will be written relative to the -original directory, though. - -
`-f file' -
-
`--files-from=file' -
-Read the names of the input files from file instead of getting -them from the command line. - -
`-h' -
-
`--help' -
-Display this help and exit. - -
`-I list' -
-
`--input-path=list' -
-List of directories searched for input files. - -
`-j' -
-
`--join-existing' -
-Join messages with existing file. - -
`-k word' -
-
`--keyword[=word]' -
-Additonal keyword to be looked for (without word means not to -use default keywords). - -The default keywords, which are always looked for if not explicitly -disabled, are gettext, dgettext, dcgettext and -gettext_noop. - -
`-m [string]' -
-
`--msgstr-prefix[=string]' -
-Use string or "" as prefix for msgstr entries. - -
`-M [string]' -
-
`--msgstr-suffix[=string]' -
-Use string or "" as suffix for msgstr entries. - -
`--no-location' -
-Do not write `#: filename:line' lines. - -
`-n' -
-
`--add-location' -
-Generate `#: filename:line' lines (default). - -
`--omit-header' -
-Don't write header with `msgid ""' entry. - -This is useful for testing purposes because it eliminates a source -of variance for generated .gmo files. We can ship some of -these files in the GNU gettext package, and the result of -regenerating them through msgfmt should yield the same values. - -
`-p dir' -
-
`--output-dir=dir' -
-Output files will be placed in directory dir. - -
`-s' -
-
`--sort-output' -
-Generate sorted output and remove duplicates. - -
`--strict' -
-Write out strict Uniforum conforming PO file. - -
`-v' -
-
`--version' -
-Output version information and exit. - -
`-x file' -
-
`--exclude-file=file' -
-Entries from file are not extracted. - -
- -

-Search path for supplementary PO files is: -`/usr/local/share/nls/src/'. - -

-

-If inputfile is `-', standard input is read. - -

-

-This implementation of xgettext is able to process a few awkward -cases, like strings in preprocessor macros, ANSI concatenation of -adjacent strings, and escaped end of lines for continued strings. - -

- - -

C Sources Context

- -

-PO mode is particularily powerful when used with PO files -created through GNU gettext utilities, as those utilities -insert special comments in the PO files they generate. -Some of these special comments relate the PO file entry to -exactly where the untranslated string appears in the program sources. - -

-

-When the translator gets to an untranslated entry, she is fairly -often faced with an original string which is not as informative as -it normally should, being succinct, cryptic, or otherwise ambiguous. -Before chosing how to translate the string, she needs to understand -better what the string really means and how tight the translation has -to be. Most of times, when problems arise, the only way left to make -her judgment is looking at the true program sources from where this -string originated, searching for surrounding comments the programmer -might have put in there, and looking around for helping clues of -any kind. - -

-

-Surely, when looking at program sources, the translator will receive -more help if she is a fluent programmer. However, even if she is -not versed in programming and feels a little lost in C code, the -translator should not be shy at taking a look, once in a while. -It is most probable that she will still be able to find some of the -hints she needs. She will learn quickly to not feel uncomfortable -in program code, paying more attention to programmer's comments, -variable and function names (if he dared chosing them well), and -overall organization, than to programmation itself. - -

-

-The following commands are meant to help the translator at getting -program source context for a PO file entry. - -

-
- -
c -
-Resume the display of a program source context, or cycle through them. - -
M-c -
-Display of a program source context selected by menu. - -
d -
-Add a directory to the search path for source files. - -
M-d -
-Delete a directory from the search path for source files. - -
- -

-The commands c (po-cycle-reference) and M-c -(po-select-reference) both open another window displaying -some source program file, and already positioned in such a way that -it shows an actual use of the current string to translate. By doing -so, the command gives source program context for the string. But if -the entry has no source context references, or if all references -are unresolved along the search path for program sources, then the -command diagnoses this as an error. - -

-

-Even if c (or M-c) opens a new window, the cursor stays -in the PO file window. If the translator really wants to -get into the program source window, she ought to do it explicitly, -maybe by using command o. - -

-

-When c is typed for the first time, or for a PO file entry which -is different of the last one used for getting source context, then the -command reacts by giving the first context available for this entry, -if any. If some context has already been recently displayed for the -current PO file entry, and the translator wandered to do other -things, typing c again will merely resume, in another window, -the context last displayed. In particular, if the translator moved -the cursor away from the context in the source file, the command will -bring the cursor back to the context. By using c many times -in a row, with no interning other commands, PO mode will cycle to -the next available contexts for this particular entry, getting back -to the first context once the last has been shown. - -

-

-The command M-c behaves differently. Instead of cycling through -references, it lets the translator choose of particular reference among -many, and displays that reference. It is best used with completion, -if the translator types TAB immediately after M-c, in -response to the question, she will be offered a menu of all possible -references, as a reminder of which are the acceptable answers. -This command is useful only where there are really many contexts -available for a single string to translate. - -

-

-Program source files are usually found relative to where the PO -file stands. As a special provision, when this fails, the file is -also looked for, but relative to the directory immediately above it. -Those two cases take proper care of most PO files. However, it might -happen that a PO file has been moved, or is edited in a different -place than its normal location. When this happens, the translator -should tell PO mode in which directory normally sits the genuine PO -file. Many such directories may be specified, and all together, they -constitute what is called the search path for program sources. -The command d (po-add-path) is used to interactively -enter a new directory at the front of the search path, and the command -M-d (po-delete-path) is used to select, with completion, -one of the directories she does not want anymore on the search path. - -

- - -

Using Translation Compendiums

- -

-Compendiums are yet to be implemented. - -

-

-An incoming PO mode feature will let the translator maintain a -compendium of already achieved translations. A compendium -is a special PO file containing a set of translations recurring in -many different packages. The translator will be given commands for -adding entries to her compendium, and later initializing untranslated -entries, or updating already translated entries, from translations -kept in the compendium. For this to work, however, the compendium -would have to be normalized. See section Normalizing Strings in Entries. - -

- - - -

Updating Existing PO Files

- - - -

Invoking the tupdate Program

- - -
-tupdate --help
-tupdate --version
-tupdate new old
-
- -

-File new is the last created PO file (generally by -xgettext). It need not contain any translations. File -old is the PO file including the old translations which will -be taken over to the newly created file as long as they still match. - -

-

-When English messages change in the programs, this is reflected in -the PO file as extracted by xgettext. In large messages, that -can be hard to detect, and will obviously result in an incomplete -translation. One of the virtues of tupdate is that it detects -such changes, saving the previous translation into a PO file comment, -so marking the entry as obsolete, and giving the modified string with -an empty translation, that is, marking the entry as untranslated. - -

- - -

Untranslated Entries

- -

-When xgettext originally creates a PO file, unless told -otherwise, it initializes the msgid field with the untranslated -string, and leaves the msgstr string to be empty. Such entries, -having an empty translation, are said to be untranslated entries. -Later, when the programmer slightly modifies some string right in -the program, this change is later reflected in the PO file -by the appearance of a new untranslated entry for the modified string. - -

-

-The usual commands moving from entry to entry consider untranslated -entries on the same level as active entries. Untranslated entries -are easily recognizable by the fact they end with `msgstr ""'. - -

-

-The work of the translator might be (quite naively) seen as the process -of seeking after an untranslated entry, editing a translation for -it, and repeating these actions until no untranslated entries remain. -Some commands are more specifically related to untranslated entry -processing. - -

-
- -
e -
-Find the next untranslated entry. - -
M-e -
-Find the previous untranslated entry. - -
k -
-Turn the current entry into an untranslated one. - -
- -

-The commands e (po-next-empty-entry) and M-e -(po-previous-empty) move forwards or backwards, chasing for an -obsolete entry. If none is found, the search is extended and wraps -around in the PO file buffer. - -

-

-An entry can be turned back into an untranslated entry by -merely emptying its translation, using the command k -(po-kill-msgstr). See section Modifying Translations. - -

-

-Also, when time comes to quit working on a PO file buffer -with the q command, the translator is asked for confirmation, -if some untranslated string still exists. - -

- - -

Obsolete Entries

- -

-By obsolete PO file entries, we mean those entries which are -commented out, usually by tupdate when it found that the -translation is not needed anymore by the package being localized. - -

-

-The usual commands moving from entry to entry consider obsolete -entries on the same level as active entries. Obsolete entries are -easily recognizable by the fact that all their lines start with -#, even those lines containing msgid or msgstr. - -

-

-Commands exist for emptying the translation or reinitializing it -to the original untranslated string. Commands interfacing with the -kill ring may force some previously saved text into the translation. -The user may interactively edit the translation. All these commands -may apply to obsolete entries, carefully leaving the entry obsolete -after the fact. - -

-

-Moreover, some commands are more specifically related to obsolete -entry processing. - -

-
- -
M-n -
-
M-SPC -
-Find the next obsolete entry. - -
M-p -
-
M-DEL -
-Find the previous obsolete entry. - -
z -
-Make an active entry obsolete, or zap out an obsolete entry. - -
- -

-The commands M-n (po-next-obsolete-entry) and M-p -(po-previous-obsolete-entry) move forwards or backwards, -chasing for an obsolete entry. If none is found, the search is -extended and wraps around in the PO file buffer. The commands -M-SPC and M-DEL are synonymous to M-n -and M-p, respectively. - -

-

-PO mode does not provide ways for un-commenting an obsolete entry -and making it active, because this would reintroduce an original -untranslated string which does not correspond to any marked string -in the program sources. This goes with the philosophy of never -introducing useless msgid values. - -

-

-However, it is possible to comment out an active entry, so making -it obsolete. GNU gettext utilities will later react to the -disappearance of a translation by using the untranslated string. -The command z (po-fade-out-entry) pushes the current entry -a little further towards annihilation. If the entry is active, then -the entry is merely commented out. If the entry is already obsolete, -then it is completely deleted from the PO file. It is easy to recycle -the translation so deleted into some other PO file entry, usually -one which is untranslated. See section Modifying Translations. - -

-

-Here is a quite interesting problem to solve for later development of -PO mode, for those nights you are not sleepy. The idea would be that -PO mode might become bright enough, one of these days, to make good -guesses at retrieving the most probable candidate, among all obsolete -entries, for initializing the translation of a newly appeared string. -I think it might be a quite hard problem to do this algorithmically, as -we have to develop good and efficient measures of string similarity. -Right now, PO mode completely lets the decision to the translator, -when the time comes to find the adequate obsolete translation, it -merely tries to provide handy tools for helping her to do so. - -

- - -

Modifying Translations

- -

-PO mode prevents direct edition of the PO file, by the usual -means Emacs give for altering a buffer's contents. By doing so, -it pretends helping the translator to avoid little clerical errors -about the overall file format, or the proper quoting of strings, -as those errors would be easily made. Other kinds of errors are -still possible, but some may be catched and diagnosed by the batch -validation process, which the translator may always trigger by the -v command. For all other errors, the translator has to rely on -her own judgment, and also on the linguistic reports submitted to her -by the users of the translated package, having the same mother tongue. - -

-

-When the time comes to create a translation, correct a error diagnosed -mechanically or reported by a user, the translator have to resort to -using the following commands for modifying the translations. - -

-
- -
RET -
-Interactively edit the translation. - -
TAB -
-Reinitialize the translation with the original, untranslated string. - -
k -
-Save the translation on the kill ring, and delete it. - -
w -
-Save the translation on the kill ring, without deleting it. - -
y -
-Replace the translation, taking the new from the kill ring. - -
- -

-The command RET (po-edit-msgstr) opens a new Emacs -window containing a copy of the translation taken from the current -PO file entry, all ready for edition, fully modifiable -and with the complete extent of GNU Emacs modifying commands. -The string is presented to the translator expunged of all quoting -marks, and she will modify the unquoted string in this -window to heart's content. Once done, the regular Emacs command -M-C-c (exit-recursive-edit) may be used to return the -edited translation into the PO file, replacing the original -translation. The keys C-c C-c are bound so they have the -same effect as M-C-c. - -

-

-If the translator becomes unsatisfied with her translation to the -extent she prefers keeping the translation which was existent prior to -the RET command, she may use the regular Emacs command C-] -(abort-recursive-edit) to merely get rid of edition, while -preserving the original translation. Another way would be for her -to exit normally with C-c C-c, then type u once for -undoing the whole effect of last edition. - -

-

-While editing her translation, the translator should pay attention at -not inserting unwanted RET (carriage returns) characters at -the end of the translated string if those are not meant to be there, -or removing such characters when they are required. Since these -characters are not visible in the editing buffer, they are easily to -introduce by mistake. To help her, RET automatically puts -the character < at the end of the string being edited, but this -< is not really part of the string. On exiting the editing -window with C-c C-c, PO mode automatically removes such -< and all whitespace added after it. If the translator adds -characters after the terminating <, it looses its delimiting -property and integrally becomes part of the string. If she removes -the delimiting <, then the edited string is taken as -is, with all trailing newlines, even if invisible. Also, if the -translated string ought to end itself with a genuine <, then the -delimiting < may not be removed; so the string should appear, -in the editing window, as ending with two < in a row. - -

-

-When a translation (or a comment) is being edited, the translator -may move the cursor back into the PO file buffer and freely -move to other entries, and browsing at will. The edited entry will -be recovered as soon as the edit ceases, because this is this entry -only which is being modified. If, with an edition still opened, the -translator wanders in the PO file buffer, she cannot modify -any other entry. If she tries to, PO mode will react by suggesting -that she aborts the current edit, or else, by inviting her to finish -the current edit prior to any other modification. - -

-

-The command TAB (po-msgid-to-msgstr) initializes, or -reinitializes the translation with the original string. This command -is normally used when the translator wants to redo a fresh translation -of the original string, disregarding any previous work. - -

-

-In fact, whether it is best to start a translation with an empty -string, or rather with a copy of the original string, is a matter of -taste or habit. Sometimes, the source mother tongue language and the -target language are so different that is simply best to start writing -on an empty page. At other times, the source and target languages -are so close that it would be a waste to retype a number of words -already being written in the original string. A translator may also -like having the original string right under her eyes, as she will -progressively overwrite the original text with the translation, even -if this requires some extra editing work to get rid of the original. - -

-

-The command k (po-kill-msgstr) merely empties the -translation string, so turning the entry into an untranslated -one. But while doing so, its previous contents is put apart in -a special place, known as the kill ring. The command w -(po-kill-ring-save-msgstr) has also the effect of taking a -copy of the translation onto the kill ring, but it otherwise leaves -the entry alone, and does not remove the translation from the -entry. Both commands use exactly the Emacs kill ring, which is shared -between buffers, and which is well known already to GNU Emacs lovers. - -

-

-The translator may use k or w many times in the course -of her work, as the kill ring may hold several saved translations. -From the kill ring, strings may later be reinserted in various -Emacs buffers. In particular, the kill ring may be used for moving -translation strings between different entries of a single PO file -buffer, or if the translator is handling many such buffers at once, -even between PO files. - -

-

-To facilitate exchanges with buffers which are not in PO mode, the -translation string put on the kill ring by the k command is fully -unquoted before being saved: external quotes are removed, multi-lines -strings are concatenated, and backslashed escaped sequences are turned -into their corresponding characters. In the special case of obsolete -entries, the translation is also uncommented prior to saving. - -

-

-The command y (po-yank-msgstr) completely replaces the -translation of the current entry by a string taken from the kill ring. -Following GNU Emacs terminology, we then say that the replacement -string is yanked into the PO file buffer. -See section `Yanking' in The Emacs Editor. -The first time y is used, the translation receives the value of -the most recent addition to the kill ring. If y is typed once -again, immediately, without intervening keystrokes, the translation -just inserted is taken away and replaced by the second most recent -addition to the kill ring. By repeating y many times in a row, -the translator may travel along the kill ring for saved strings, -until she finds the string she really wanted. - -

-

-When a string is yanked into a PO file entry, it is fully and -automatically requoted for complying with the format PO files should -have. Further, if the entry is obsolete, PO mode then appropriately -push the inserted string inside comments. Once again, translators -should not burden themselves with quoting considerations besides, of -course, the necessity of the translated string itself respective to -the program using it. - -

-

-Note that k or w are not the only commands pushing strings -on the kill ring, as almost any PO mode command replacing translation -strings (or the translator comments) automatically save the old string -on the kill ring. The main exceptions to this general rule are the -yanking commands themselves. - -

-

-To better illustrate the operation of killing and yanking, let's -use an actual example, taken from a common situation. When the -programmer slightly modifies some string right in the program, his -change is later reflected in the PO file by the appearance -of a new untranslated entry for the modified string, and the fact -that the entry translating the original or unmodified string becomes -obsolete. In many cases, the translator might spare herself some work -by retrieving the unmodified translation from the obsolete entry, -then initializing the untranslated entry msgstr field with -this retrieved translation. Once this done, the obsolete entry is -not wanted anymore, and may be safely deleted. - -

-

-When the translator finds an untranslated entry and suspects that a -slight variant of the translation exists, she immediately uses m -to mark the current entry location, then starts chasing obsolete -entries with M-SPC, hoping to find some translation corresponding -to the unmodified string. Once found, she uses the z command -for deleting the obsolete entry, knowing that z also kills -the translation, that is, pushes the translation on the kill ring. -Then, l returns to the initial untranslated entry, y -then yanks the saved translation right into the msgstr -field. The translator is then free to use RET for fine -tuning the translation contents, and maybe to later use e, -then m again, for going on with the next untranslated string. - -

-

-When some sequence of keys has to be typed over and over again, the -translator may find comfortable to become more acquainted with the GNU -Emacs capability of learning these sequences and playing them back under -request. See section `Keyboard Macros' in The Emacs Editor. - -

- - -

Modifying Comments

- -

-Any translation work done seriously will raise many linguistic -difficulties, for which decisions have to be made, and the choices -further documented. These documents may be saved within the -PO file in form of translator comments, which the translator -is free to create, delete, or modify at will. These comments may -be useful to herself when she returns to this PO file after a while. -Memory forgets! - -

-

-These commands are somewhat similar to those modifying translations, -so the general indications given for these apply here. See section Modifying Translations. - -

-
- -
M-RET -
-Interactively edit the translator comments. - -
M-k -
-Save the translator comments on the kill ring, and delete it. - -
M-w -
-Save the translator comments on the kill ring, without deleting it. - -
M-y -
-Replace the translator comments, taking the new from the kill ring. - -
- -

-Those commands parallel PO mode commands for modifying the translation -strings, and behave much the same way as them, except that they handle -this part of PO file comments meant for translator usage, rather -than the translation strings. So, the descriptions given below are -slightly succinct, because the full details have already been given. -See section Modifying Translations. - -

-

-The command M-RET (po-edit-comment) opens a new Emacs -window containing a copy of the translator comments the current -PO file entry. If there is no such comments, PO mode -understands that the translator wants to add a comment to the entry, -and she is presented an empty screen. Comment marks (#) and -the space following them are automatically removed before edition, -and reinstated after. For translator comments pertaining to obsolete -entries, the uncommenting and recommenting operations are done twice. -The command # also has the same effect as M-RET, and might -be easier to type. Once in the editing window, the keys C-c -C-c allow the translator to tell she is finished with editing -the comment. - -

-

-The command M-k (po-kill-comment) get rid of all -translator comments, while saving those comments on the kill ring. -The command M-w (po-kill-ring-save-comment) takes -a copy of the translator comments on the kill ring, but leaves -them undisturbed in the current entry. The command M-y -(po-yank-comment) completely replaces the translator comments -by a string taken at the front of the kill ring. When this command -is immediately repeated, the comments just inserted are withdrawn, -and replaced by other strings taken along the kill ring. - -

-

-On the kill ring, all strings have the same nature. There is no -distinction between translation strings and translator -comments strings. So, for example, let's presume the translator -has just finished editing a translation, and wants to create a new -translator comments for documenting why the previous translation was -not good, just to remember what was the problem. Foreseeing that she -will do that in her documentation, the translator will want to quote -the previous translation in her translator comments. For doing so, she -may initialize the translator comments with the previous translation, -still at the head of the kill ring. Because editing already pushed the -previous translation on the kill ring, she just has to type M-w -prior to #, and the previous translation will be right there, -all ready for being introduced by some explanatory text. - -

-

-On the other hand, presume there are some translator comments already -and that the translator wants to add to those comments, instead -of wholly replacing them. Then, she should edit the comment right -away with #. Once inside the editing window, she can use the -regular GNU Emacs commands C-y (yank) and M-y -(yank-pop) for getting the previous translation where she likes. - -

- - -

Consulting Auxiliary PO Files

- -

-An incoming feature of PO mode should help the knowledgeable translator -to take advantage of translations already achieved in other languages -she just happens to know, by providing these other language translation -as additional context for her own work. Each PO file existing for -the same package the translator is working on, but targeted to a -different mother tongue language, is called an auxiliary PO file. -Commands will exist for declaring and handling auxiliary PO files, -and also for showing contexts for the entry under work. For this to -work fully, all auxiliary PO files will have to be normalized. - -

- - -

Producing Binary MO Files

- - - -

Invoking the msgfmt Program

- - -
-Usage: msgfmt [option] filename.po ...
-
- -
- -
`-a number' -
-
`--alignment=number' -
-Align strings to number bytes (default: 1). - -
`-h' -
-
`--help' -
-Display this help and exit. - -
`-I list' -
-
`--input-path=list' -
-List of directories searched for input files. - -
`--no-hash' -
-Binary file will not include the hash table. - -
`-o file' -
-
`--output-file=file' -
-Specify output file name as file. - -
`-v' -
-
`--verbose' -
-Detect and diagnose input file anomalies which might represent -translation errors. The msgid and msgstr strings are -studied and compared. It is considered abnormal that one string -starts or ends with a newline while the other does not. Also, both -strings should have the same number of `%' format specifiers, -with matching types. For example, the check will diagnose using -`%.*s' against `%s', or `%d' against `%s', or -`%d' against `%x'. It can even handle positional parameters. - -
`-V' -
-
`--version' -
-Output version information and exit. - -
- -

-If input file is `-', standard input is read. If output file -is `-', output is written to standard output. - -

-

-The search patch for msgfmt is `/usr/local/share/nls/src/', -by default. It represents the path to additional directories where -other PO files can be found. This feature could be used for some -PO files for standard libraries, in case we would like to spare -translating their strings over and over again. The `-x' option -could then exclude these strings from the generation. - -

- - -

The Format of GNU MO Files

- -

-The format of the generated MO files is best described by a picture, -which appears below. - -

-

-The first two words serve the identification of the file. The magic -number will always signal GNU MO files. The number is stored in the -byte order of the generating machine, so the magic number really is -two numbers: 0x950412de and 0xde120495. The second -word describes the current revision of the file format. For now the -revision is 0. This might change in future versions, and ensures -that the readers of MO files can distinguish new formats from old -ones, so that both can be handled correctly. The version is kept -separate from the magic number, instead of using different magic -numbers for different formats, mainly because `/etc/magic' is -not updated often. It might be better to have magic separated from -internal format version identification. - -

-

-Follow a number of pointers to later tables in the file, allowing -for the extension of the prefix part of MO files without having to -recompile programs reading them. This might become useful for later -inserting a few flag bits, indication about the charset used, new -tables, or other things. - -

-

-Then, at offset O and offset T in the picture, two tables -of string descriptors can be found. In both tables, each string -descriptor uses two 32 bits integers, one for the string length, -another for the offset of the string in the MO file, counting in bytes -from the start of the file. The first table contains descriptors -for the original strings, and is sorted so the original strings -are in increasing lexicographical order. The second table contains -descriptors for the translated strings, and is parallel to the first -table: to find the corresponding translation one has to access the -array slot in the second array with the same index. - -

-

-Having the original strings sorted enables the use of simple binary -search, for when the MO file does not contain an hashing table, or -for when it is not practical to use the hashing table provided in -the MO file. This also has another advantage, as the empty string -in a PO file GNU gettext is usually translated into -some system information attached to that particular MO file, and the -empty string necessarily becomes the first in both the original and -translated tables, making the system information very easy to find. - -

-

-The size S of the hash table can be zero. In this case, the -hash table itself is not contained in the MO file. Some people might -prefer this because a precomputed hashing table takes disk space, and -does not win that much speed. The hash table contains indices -to the sorted array of strings in the MO file. Conflict resolution is -done by double hashing. The precise hashing algorithm used is fairly -dependent of GNU gettext code, and is not documented here. - -

-

-As for the strings themselves, they follow the hash file, and each -is terminated with a NUL, and this NUL is not counted in -the length which appears in the string descriptor. The msgfmt -program has an option selecting the alignment for MO file strings. -With this option, each string is separately aligned so it starts at -an offset which is a multiple of the alignment value. On some RISC -machines, a correct alignment will speed things up. - -

-

-Nothing prevents an MO file from having embedded NULs in strings. -However, the program interface currently used already presumes -that strings are NUL terminated, so embedded NULs are -somewhat useless. But MO file format is general enough so other -interfaces would be later possible, if for example, we ever want to -implement wide characters right in MO files, where NUL bytes may -accidently appear. - -

-

-This particular issue has been strongly debated in the GNU -gettext development forum, and it is expectable that MO file -format will evolve or change over time. It is even possible that many -formats may later be supported concurrently. But surely, we got to -start somewhere, and the MO file format described here is a good start. -Nothing is cast in concrete, and the format may later evolve fairly -easily, so we should feel comfortable with the current approach. - -

- -
-        byte
-             +------------------------------------------+
-          0  | magic number = 0x950412de                |
-             |                                          |
-          4  | file format revision = 0                 |
-             |                                          |
-          8  | number of strings                        |  == N
-             |                                          |
-         12  | offset of table with original strings    |  == O
-             |                                          |
-         16  | offset of table with translation strings |  == T
-             |                                          |
-         20  | size of hashing table                    |  == S
-             |                                          |
-         24  | offset of hashing table                  |  == H
-             |                                          |
-             .                                          .
-             .    (possibly more entries later)         .
-             .                                          .
-             |                                          |
-          O  | length & offset 0th string  ----------------.
-      O + 8  | length & offset 1st string  ------------------.
-              ...                                    ...   | |
-O + ((N-1)*8)| length & offset (N-1)th string           |  | |
-             |                                          |  | |
-          T  | length & offset 0th translation  ---------------.
-      T + 8  | length & offset 1st translation  -----------------.
-              ...                                    ...   | | | |
-T + ((N-1)*8)| length & offset (N-1)th translation      |  | | | |
-             |                                          |  | | | |
-          H  | start hash table                         |  | | | |
-              ...                                    ...   | | | |
-  H + S * 4  | end hash table                           |  | | | |
-             |                                          |  | | | |
-             | NUL terminated 0th string  <----------------' | | |
-             |                                          |    | | |
-             | NUL terminated 1st string  <------------------' | |
-             |                                          |      | |
-              ...                                    ...       | |
-             |                                          |      | |
-             | NUL terminated 0th translation  <---------------' |
-             |                                          |        |
-             | NUL terminated 1st translation  <-----------------'
-             |                                          |
-              ...                                    ...
-             |                                          |
-             +------------------------------------------+
-
- - - -

The User's View

- -

-When GNU gettext will truly have reached is goal, average users -should feel some kind of astonished pleasure, seeing the effect of -that strange kind of magic that just makes their own native language -appear everywhere on their screens. As for naive users, they would -ideally have no special pleasure about it, merely taking their own -language for granted, and becoming rather unhappy otherwise. - -

-

-So, let's try to describe here how we would like the magic to operate, -as we want the users' view to be the simplest, among all ways one -could look at GNU gettext. All other software engineers: -programmers, translators, maintainers, should work together in such a -way that the magic becomes possible. This is a long and progressive -undertaking, and information is available about the progress of the -GNU Translation Project. - -

-

-When a package is distributed, there are two kind of users: -installers who fetch the distribution, unpack it, configure -it, compile it and install it for themselves or others to use; and -end users that call programs of the package, once these have -been installed at their site. GNU gettext is offering magic -for both installers and end users. - -

- - - -

The Current `NLS' Matrix for GNU

- -

-Languages are not equally supported in all GNU packages. To know -if some GNU package uses GNU gettext, one may check -the distribution for the `NLS' information file, for some -`ll.po' files, often kept together into some `po/' -directory, or for an `intl/' directory. Internationalized -packages have usually many `ll.po' files, where ll -represents the language. section Magic for End Users for a complete description -of the format for ll. - -

-

-More generally, a matrix is available for showing the current state -of GNU internationalization, listing which packages are prepared -for multi-lingual messages, and which languages is supported by each. -Because this information changes often, this matrix is not kept within -this GNU gettext manual. This information is often found in -file `NLS' from various GNU distributions, but is also as old -as the distribution itself. A recent copy of this `NLS' file, -containing up-to-date information, should generally be found on most -GNU archive sites. - -

- - -

Magic for Installers

- -

-By default, packages fully using GNU gettext, internally, -are installed in such a way that they to allow translation of -messages. At configuration time, those packages should -automatically detect whether the underlying host system provides usable -catgets or gettext functions. If neither is present, -the GNU gettext library should be automatically prepared -and used. Installers may use special options at configuration -time for changing this behavior. The command `./configure ---with-gnu-gettext' bypasses system catgets or gettext to -use GNU gettext instead, while `./configure --disable-nls' -produces program totally unable to translate messages. - -

-

-Internationalized packages have usually many `ll.po' -files. Unless -translations are disabled, all those available are installed together -with the package. However, the environment variable LINGUAS -may be set, prior to configuration, to limit the installed set. -LINGUAS should then contain a space separated list of two-letter -codes, stating which languages are allowed. - -

- - -

Magic for End Users

- -

-We consider here those packages using GNU gettext internally, -and for which the installers did not disable translation at -configure time. Then, users only have to set the LANG -environment variable to the appropriate `ll' prior to -using the programs in the package. See section The Current `NLS' Matrix for GNU. For example, -let's presume a German site. At the shell prompt, users merely have to -execute `setenv LANG de' (in csh) or `export -LANG; LANG=de' (in sh). They could even do this from their -`.login' or `.profile' file. - -

- - -

The Programmer's View

- -

-One aim of the current message catalog implementation provided by -GNU gettext was to use the systems message catalog handling, if the -installer wishes to do so. So we perhaps should first take a look at -the solutions we know about. The people in the POSIX committee does not -manage to agree on one of the semi-official standards which we'll -describe below. In fact they couldn't agree on anything, so nothing -decide only to include an example of an interface. The major Unix vendors -are split in the usage of the two most important specifications: X/Opens -catgets vs. Uniforums gettext interface. We'll describe them both and -later explain our solution of this dilemma. - -

- - - -

About catgets

- -

-The catgets implementation is defined in the X/Open Portability -Guide, Volume 3, XSI Supplementary Definitions, Chapter 5. But the -process of creating this standard seemed to be too slow for some of -the Unix vendors so they created their implementations on preliminary -versions of the standard. Of course this leads again to problems while -writing platform independent programs: even the usage of catgets -does not guarantee a unique interface. - -

-

-Another, personal comment on this that only a bunch of committee members -could have made this interface. They never really tried to program -using this interface. It is a fast, memory-saving implementation, an -user can happily live with it. But programmers hate it (at least me and -some others do...) - -

-

-But we must not forget one point: after all the trouble with transfering -the rights on Unix(tm) they at last came to X/Open, the very same who -published this specifications. This leads me to making the prediction -that this interface will be in future Unix standards (e.g. Spec1170) and -therefore part of all Unix implementation (implementations, which are -allowed to wear this name). - -

- - - -

The Interface

- -

-The interface to the catgets implementation consists of three -functions which correspond to those used in file access: catopen -to open the catalog for using, catgets for accessing the message -tables, and catclose for closing after work is done. Prototypes -for the functions and the needed definitions are in the -<nl_types.h> header file. - -

-

-catopen is used like in this: - -

- -
-nl_catd catd = catopen ("catalog_name", 0);
-
- -

-The function takes as the argument the name of the catalog. This usual -refers to the name of the program or the package. The second parameter -is not further specified in the standard. I don't even know whether it -is implemented consistently among various systems. So the common advice -is to use 0 as the value. The return value is a handle to the -message catalog, equivalent to handles to file returned by open. - -

-

-This handle is of course used in the catgets function which can -be used like this: - -

- -
-char *translation = catgets (catd, set_no, msg_id, "original string");
-
- -

-The first parameter is this catalog descriptor. The second parameter -specifies the set of messages in this catalog, in which the message -described by msg_id is obtained. catgets therefore uses a -three-stage addressing: - -

- -
-catalog name => set number => message ID => translation
-
- -

-The fourth argument is not used to address the translation. It is given -as a default value in case when one of the addressing stages fail. One -important thing to remember is that although the return type of catgets -is char * the resulting string must not be changed. It -should better const char *, but the standard is published in -1988, one year before ANSI C. - -

-

-The last of these function functions is used and behaves as expected: - -

- -
-catclose (catd);
-
- -

-After this no catgets call using the descriptor is legal anymore. - -

- - -

Problems with the catgets Interface?!

- -

-Now that this descriptions seemed to be really easy where are the -problem we speak of. In fact the interface could be used in a -reasonable way, but constructing the message catalogs is a pain. The -reason for this lies in the third argument of catgets: the unique -message ID. This has to be a numeric value for all messages in a single -set. Perhaps you could imagine the problems keeping such list while -changing the source code. Add a new message here, remove one there. Of -course there have been developed a lot of tools helping to organize this -chaos but one as the other fails in one aspect or the other. We don't -want to say that the other approach has no problems but they are far -more easily to manage. - -

- - -

About gettext

- -

-The definition of the gettext interface comes from a Uniforum -proposal and it is followed by at least one major Unix vendor -(Sun) in its last developments. It is not specified in any official -standard, though. - -

-

-The main points about this solution is that it does not follow the -method of normal file handling (open-use-close) and that it does not -burden the programmer so many task, especially the unique key handling. -Of course here is also a unique key needed, but this key is the -message itself (how long or short it is). See section Comparing the Two Interfaces for a -more detailed comparison of the two methods. - -

-

-The following section contains a rather detailed description of the -interface. We make it that detailed because this is the interface -we chose for the GNU gettext Library. Programmers interested -in using this library will be interested in this description. - -

- - - -

The Interface

- -

-The minimal functionality an interface must have is a) to select a -domain the strings are coming from (a single domain for all programs is -not reasonable because its construction and maintenance is difficult, -perhaps impossible) and b) to access a string in a selected domain. - -

-

-This is principally the description of the gettext interface. It -has an global domain which unqualified usages reference. Of course this -domain is selectable by the user. - -

- -
-char *textdomain (const char *domain_name);
-
- -

-This provides the possibility to change or query the current status of -the current global domain of the LC_MESSAGE category. The -argument is a null-terminated string, whose characters must be legal in -the use in filenames. If the domain_name argument is NULL, -the function return the current value. If no value has been set -before, the name of the default domain is returned: messages. -Please note that although the return value of textdomain is of -type char * no changing is allowed. It is also important to know -that no checks of the availability are made. If the name is not -available you will see this by the fact that no translations are provided. - -

-

-To use a domain set by textdomain the function - -

- -
-char *gettext (const char *msgid);
-
- -

-is to be used. This is the simplest reasonable form one can imagine. -The translation of the string msgid is returned if it is available -in the current domain. If not available the argument itself is -returned. If the argument is NULL the result is undefined. - -

-

-One things which should come into mind is that no explicit dependency to -the used domain is given. The current value of the domain for the -LC_MESSAGES locale is used. If this changes between two -executions of the same gettext call in the program, both calls -reference a different message catalog. - -

-

-For the easiest case, which is normally used in internationalized GNU -packages, once at the beginning of execution a call to textdomain -is issued, setting the domain to a unique name, normally the package -name. In the following code all strings which have to be translated are -filtered through the gettext function. That's all, the package speaks -your language. - -

- - -

Solving Ambiguities

- -

-While this single name domain work good for most applications there -might be the need to get translations from more than one domain. Of -course one could switch between different domains with calls to -textdomain, but this is really not convenient nor is it fast. A -possible situation could be one case discussing while this writing: all -error messages of functions in the set of common used functions should -go into a separate domain error. By this mean we would only need -to translate them once. - -

-

-For this reasons there are two more functions to retrieve strings: - -

- -
-char *dgettext (const char *domain_name, const char *msgid);
-char *dcgettext (const char *domain_name, const char *msgid,
-                 int category);
-
- -

-Both take an additional argument at the first place, which corresponds -to the argument of textdomain. The third argument of -dcgettext allows to use another locale but LC_MESSAGES. -But I really don't know where this can be useful. If the -domain_name is NULL or category has an value beside -the known ones, the result is undefined. It should also be noted that -this function is not part of the second known implementation of this -function family, the one found in Solaris. - -

-

-A second ambiguity can arise by the fact, that perhaps more than one -domain has the same name. This can be solved by specifying where the -needed message catalog files can be found. - -

- -
-char *bindtextdomain (const char *domain_name,
-                      const char *dir_name);
-
- -

-Calling this function binds the given domain to a file in the specified -directory (how this file is determined follows below). Esp a file in -the systems default place is not favored against the specified file -anymore (as it would be by solely using textdomain). A NULL -pointer for the dir_name parameter returns the binding associated -with domain_name. If domain_name itself is NULL -nothing happens and a NULL pointer is returned. Here again as -for all the other functions is true that none of the return value must -be changed! - -

- - -

Locating Message Catalog Files

- -

-Because many different languages for many different packages have to be -stored we need some way to add these information to file message catalog -files. The way usually used in Unix environments is have this encoding -in the file name. This is also done here. The directory name given in -bindtextdomains second argument (or the default directory), -followed by the value and name of the locale and the domain name are -concatenated: - -

- -
-dir_name/locale/LC_category/domain_name.mo
-
- -

-The default value for dir_name is system specific. For the GNU -library it's: - -

-/usr/local/share/locale
-
- -

-locale is the value of the locale whose name is this -LC_category. For gettext and dgettext this -locale is always LC_MESSAGES. dcgettext specifies the -locale by the third argument.(2) (3) - -

- - -

Optimization of the *gettext functions

- -

-At this point of the discussion we should talk about an advantage of the -GNU gettext implementation. Some readers might have pointed out -that an internationalized program might have a poor performance if some -string has to be translated in an inner loop. While this is unavoidable -when the string varies from one run of the loop to the other it is -simply a waste of time when the string is always the same. Take the -following example: - -

- -
-{
-  while (...)
-    {
-      puts (gettext ("Hello world"));
-    }
-}
-
- -

-When the locale selection does not change between two runs the resulting -string is always the same. One way to use this is: - -

- -
-{
-  str = gettext ("Hello world");
-  while (...)
-    {
-      puts (str);
-    }
-}
-
- -

-But this solution is not usable in all situation (e.g. when the locale -selection changes) nor is it good readable. - -

-

-The GNU C compiler, version 2.7 and above, provide another solution for -this. To describe this we show here some lines of the -`intl/libgettext.h' file. For an explanation of the expression -command block see section `Statements and Declarations in Expressions' in The GNU CC Manual. - -

- -
-#  if defined __GNUC__ && __GNUC__ == 2 && __GNUC_MINOR__ >= 7
-#   define	dcgettext(domainname, msgid, category)           \
-  (__extension__                                                 \
-   ({                                                            \
-     char *result;                                               \
-     if (__builtin_constant_p (msgid))                           \
-       {                                                         \
-         extern int _nl_msg_cat_cntr;                            \
-         static char *__translation__;                           \
-         static int __catalog_counter__;                         \
-         if (! __translation__                                   \
-             || __catalog_counter__ != _nl_msg_cat_cntr)         \
-           {                                                     \
-             __translation__ =                                   \
-               dcgettext__ ((domainname), (msgid), (category));  \
-             __catalog_counter__ = _nl_msg_cat_cntr;             \
-           }                                                     \
-         result = __translation__;                               \
-       }                                                         \
-     else                                                        \
-       result = dcgettext__ ((domainname), (msgid), (category)); \
-     result;                                                     \
-    }))
-#  endif
-
- -

-The interesting thing here is the __builtin_constant_p predicate. -This is evaluated at compile time and so optimization can take place -immediately. Here two cases are distinguished: the argument to -gettext is not a constant value in which case simply the function -dcgettext__ is called, the real implementation of the -dcgettext function. - -

-

-If the string argument is constant we can reuse the once gained -translation when the locale selection has not changed. This is exactly -what is done here. The _nl_msg_cat_cntr variable is defined in -the `loadmsgcat.c' which is available in `libintl.a' and is -changed whenever a new message catalog is loaded. - -

- - -

Comparing the Two Interfaces

- -

-The following discussion is perhaps a little bit colored. As said -above we implemented GNU gettext following the Uniforum -proposal and this surely has its reasons. But it should show how we -came to this decision. - -

-

-First we take a look at the developing process. When we write an -application using NLS provided by gettext we proceed as always. -Only when we come to a string which might be seen by the users and thus -has to be translated we use gettext("...") instead of -"...". At the beginning of each source file (or in a central -header file) we define - -

- -
-#define gettext(String) (String)
-
- -

-Even this definition can be avoided when the system supports the -gettext function in its C library. When we compile this code the -result is the same as if no NLS code is used. When you take a look at -the GNU gettext code you will see that we use _("...") -instead of gettext("..."). This reduces the number of -additional characters per translatable string to 3 (in words: -three). - -

-

-When now a production version of the program is needed we simply replace -the definition - -

- -
-#define _(String) (String)
-
- -

-by - -

- -
-#include <libintl.h>
-#define _(String) gettext (String)
-
- -

-and include the header `libintl.h'. Additionally we run the -program `xgettext' on all source code file which contain -translatable strings and we are gone. We have a running program which -does not depend on translations to be available, but which can use any -that becomes available. - -

-

-The same procedure can be done for the gettext_noop invocations -(see section Special Cases of Translatable Strings). First you can define gettext_noop to a -no-op macro and later use the definition from `libintl.h'. Because -this name is not used in Suns implementation of `libintl.h', -you should consider the following code for your project: - -

- -
-#ifdef gettext_noop
-# define N_(Str) gettext_noop (Str)
-#else
-# define N_(Str) (Str)
-#endif
-
- -

-N_ is a short form similar to _. The `Makefile' in -the `po/' directory of GNU gettext knows by default both of the -mentioned short forms so you are invited to follow this proposal for -your own ease. - -

-

-Now to catgets. The main problem is the work for the -programmer. Every time he comes to a translatable string he has to -define a number (or a symbolic constant) which has also be defined in -the message catalog file. He also has to take care for duplicate -entries, duplicate message IDs etc. If he wants to have the same -quality in the message catalog as the GNU gettext program -provides he also has to put the descriptive comments for the strings and -the location in all source code files in the message catalog. This is -nearly a Mission: Impossible. - -

-

-But there are also some points people might call advantages speaking for -catgets. If you have a single word in a string and this string -is used in different contexts it is likely that in one or the other -language the word has different translations. Example: - -

- -
-printf ("%s: %d", gettext ("number"), number_of_errors)
-
-printf ("you should see %d %s", number_count,
-        number_count == 1 ? gettext ("number") : gettext ("numbers"))
-
- -

-Here we have to translate two times the string "number". Even -if you do not speak a language beside English it might be possible to -recognize that the two words have a different meaning. In German the -first appearance has to be translated to "Anzahl" and the second -to "Zahl". - -

-

-Now you can say that this example is really esoteric. And you are -right! This is exactly how we felt about this problem and decide that -it does not weight that much. The solution for the above problem could -be very easy: - -

- -
-printf (gettext ("number: %d"), number_of_errors)
-
-printf (number_count == 1 ? gettext ("you should see %d number")
-                          : gettext ("you should see %d numbers"),
-        number_count)
-
- -

-We believe that we can solve all conflicts with this method. If it is -difficult one can also consider changing one of the conflicting string a -little bit. But it is not impossible to overcome. - -

-

-Translator note: It is perhaps appropriate here to tell those English -speaking programmers that the plural form of a noun cannot be formed by -appending a single `s'. Most other languages use different methods. So -you should at least use the method given in the above example. - -

-

-But I have been told that some languages have even more complex rules. -A good approach might be to consider methods like the one used for -LC_TIME in the POSIX.2 standard. - -

- - - -

Using libintl.a in own programs

- -

-Starting with version 0.9.4 the library libintl.h should be more -or less self-contained. I.e. you can use it in your own programs. The -`Makefile' will put the header and the library in directories -selected using the $(prefix). - -

-

-One exception of the above is found on HP-UX systems. Here the C library -does not contain the alloca function (and the HP compiler does -not generate it inlined). But it is not intended to rewrite the whole -library just because of this dumb system. Instead include the -alloca function in all package you use the libintl.a in. - -

- - - -

Being a gettext grok

- -

-To fully exploit the functionality of the GNU gettext library it -is surely helpful to read the source code. But for those who don't want -to spend that much time in reading the (sometimes complicated) code here -is a list comments: - -

- -
    -
  • Changing the language at runtime - -For interactive programs it might be useful to offer a selection of the -used language at runtime. To understand how to do this one need to know -how the used language is determined while executing the gettext -function. The method which is presented here only works correctly -with the GNU implementation of the gettext functions. It is not -possible with underlying catgets functions or gettext -functions from the systems C library. The exception is of course the -GNU C Library which uses the GNU gettext Library for message handling. - -In the function dcgettext at every call the current setting of -the highest priority environment variable is determined and used. -Highest priority means here the following list with decreasing -priority: - - -
      -
    1. LANGUAGE - -
    2. LC_ALL - -
    3. LC_xxx, according to selected locale - -
    4. LANG - -
    - -Afterwards the path is constructed using the found value and the -translation file is loaded if available. - -What is now when the value for, say, LANGUAGE changes. According -to the process explained above the new value of this variable is found -as soon as the dcgettext function is called. But this also means -the (perhaps) different message catalog file is loaded. In other -words: the used language is changed. - -But there is one little hook. The code for gcc-2.7.0 and up provides -some optimization. This optimization normally prevents the calling of -the dcgettext function as long as now new catalog is loaded. But -if dcgettext is not called we program also cannot find the -LANGUAGE variable be changed (see section Optimization of the *gettext functions). But the -solution is very easy. Include the following code in the language -switching function. - - -
    -  /* Change language.  */
    -  setenv ("LANGUAGE", "fr", 1);
    -
    -  /* Make change known.  */
    -  {
    -    extern int  _nl_msg_cat_cntr;
    -    ++_nl_msg_cat_cntr;
    -  }
    -
    - -The variable _nl_msg_cat_cntr is defined in `loadmsgcat.c'. - -
- - - -

Temporary Notes for the Programmers Chapter

- - - -

Temporary - Two Possible Implementations

- -

-There are two competing methods for language independent messages: -the X/Open catgets method, and the Uniforum gettext -method. The catgets method indexes messages by integers; the -gettext method indexes them by their English translations. -The catgets method has been around longer and is supported -by more vendors. The gettext method is supported by Sun, -and it has been heard that the COSE multi-vendor initiative is -supporting it. Neither method is a POSIX standard; the POSIX.1 -committee had a lot of disagreement in this area. - -

-

-Neither one is in the POSIX standard. There was much disagreement -in the POSIX.1 committee about using the gettext routines -vs. catgets (XPG). In the end the committee couldn't -agree on anything, so no messaging system was included as part -of the standard. I believe the informative annex of the standard -includes the XPG3 messaging interfaces, "...as an example of -a messaging system that has been implemented..." - -

-

-They were very careful not to say anywhere that you should use one -set of interfaces over the other. For more on this topic please -see the Programming for Internationalization FAQ. - -

- - -

Temporary - About catgets

- -

-There have been a few discussions of late on the use of -catgets as a base. I think it important to present both -sides of the argument and hence am opting to play devil's advocate -for a little bit. - -

-

-I'll not deny the fact that catgets could have been designed -a lot better. It currently has quite a number of limitations and -these have already been pointed out. - -

-

-However there is a great deal to be said for consistency and -standardization. A common recurring problem when writing Unix -software is the myriad portability problems across Unix platforms. -It seems as if every Unix vendor had a look at the operating system -and found parts they could improve upon. Undoubtedly, these -modifications are probably innovative and solve real problems. -However, software developers have a hard time keeping up with all -these changes across so many platforms. - -

-

-And this has prompted the Unix vendors to begin to standardize their -systems. Hence the impetus for Spec1170. Every major Unix vendor -has committed to supporting this standard and every Unix software -developer waits with glee the day they can write software to this -standard and simply recompile (without having to use autoconf) -across different platforms. - -

-

-As I understand it, Spec1170 is roughly based upon version 4 of the -X/Open Portability Guidelines (XPG4). Because catgets and -friends are defined in XPG4, I'm led to believe that catgets -is a part of Spec1170 and hence will become a standardized component -of all Unix systems. - -

- - -

Temporary - Why a single implementation

- -

-Now it seems kind of wasteful to me to have two different systems -installed for accessing message catalogs. If we do want to remedy -catgets deficiencies why don't we try to expand catgets -(in a compatible manner) rather than implement an entirely new system. -Otherwise, we'll end up with two message catalog access systems -installed with an operating system - one set of routines for GNU -software, and another set of routines (catgets) for all other software. -Bloated? - -

-

-Supposing another catalog access system is implemented. Which do -we recommend? At least for Linux, we need to attract as many -software developers as possible. Hence we need to make it as easy -for them to port their software as possible. Which means supporting -catgets. We will be implementing the glocale code -within our libc, but does this mean we also have to incorporate -another message catalog access scheme within our libc as well? -And what about people who are going to be using the glocale -+ non-catgets routines. When they port their software to -other platforms, they're now going to have to include the front-end -(glocale) code plus the back-end code (the non-catgets -access routines) with their software instead of just including the -glocale code with their software. - -

-

-Message catalog support is however only the tip of the iceberg. -What about the data for the other locale categories. They also have -a number of deficiencies. Are we going to abandon them as well and -develop another duplicate set of routines (should glocale -expand beyond message catalog support)? - -

-

-Like many parts of Unix that can be improved upon, we're stuck with balancing -compatibility with the past with useful improvements and innovations for -the future. - -

- - -

Temporary - Double layer solution

- -

-GNU locale implements a gettext-style interface on top of a -catgets-style interface. - -

-

-This is not needless complexity. It is absolutely vital, because -it enables gettext to run on top of catgets, which -enables Linux International to recommend users use it today. - -

-

-Rewriting gettext so that it could use either -catgets or some simpler mechanism would not break -anything, but would not reduce complexity either. It might be -worth doing, but it isn't urgent. - -

-

-In general, simplicity is not enough of a reason to rewrite a -program that works. Simplicity is just one desirable thing. -It is not overridingly important. - -

- - -

Temporary - Notes

- -

-X/Open agreed very late on the standard form so that many -implementations differ from the final form. Both of my system (old -Linux catgets and Ultrix-4) have a strange variation. - -

-

-OK. After incorporating the last changes I have to spend some time on -making the GNU/Linux libc gettext functions. So in future Solaris is -not the only system having gettext. - -

- - -

The Translator's View

- - - -

Introduction 0

- -

-GNU is going international! The GNU Translation Project is a way -to get maintainers, translators and users all together, so GNU will -gradually become able to speak many native languages. - -

-

-The GNU gettext tool set contains everything maintainers -need for internationalizing their packages for messages. It also -contains quite useful tools for helping translators at localizing -messages to their native language, once a package has already been -internationalized. - -

-

-To achieve the GNU Translation Project, we need many interested -people who like their own language and write it well, and who are also -able to synergize with other translators speaking the same language. -If you'd like to volunteer to work at translating messages, -please send mail to your translating team. - -

-

-Each team has its own mailing list, courtesy of Linux -International. You may reach your translating team at the address -`ll@li.org', replacing ll by the two-letter ISO 639 -code for your language. Language codes are not the same as -country codes given in ISO 3166. The following translating teams -exist: - -

- -
-

-Chinese zh, Czech cs, Danish da, Dutch nl, -Esperanto eo, Finnish fi, French fr, Irish -ga, German de, Greek el, Italian it, -Japanese ja, Indonesian in, Norwegian no, Polish -pl, Portuguese pt, Russian ru, Spanish es, -Swedish sv and Turkish tr. -

- -

-For example, you may reach the Chinese translating team by writing to -`zh@li.org'. When you become a member of the translating team -for your own language, you may subscribe to its list. For example, -Swedish people can send a message to `sv-request@li.org', -having this message body: - -

- -
-subscribe
-
- -

-Keep in mind that team members should be interested in working -at translations, or at solving translational difficulties, rather than -merely lurking around. If your team does not exist yet and you want to -start one, please write to `gnu-translation@prep.ai.mit.edu'; -you will then reach the GNU coordinator for all translator teams. - -

-

-A handful of GNU packages have already been adapted and provided -with message translations for several languages. Translation -teams have begun to organize, using these packages as a starting -point. But there are many more packages and many languages for -which we have no volunteer translators. If you would like to -volunteer to work at translating messages, please send mail to -`gnu-translation@prep.ai.mit.edu' indicating what language(s) -you can work on. - -

- - -

Introduction 1

- -

-This is now official, GNU is going international! Here is the -announcement submitted for the January 1995 GNU Bulletin: - -

- -
-

-A handful of GNU packages have already been adapted and provided -with message translations for several languages. Translation -teams have begun to organize, using these packages as a starting -point. But there are many more packages and many languages -for which we have no volunteer translators. If you'd like to -volunteer to work at translating messages, please send mail to -`gnu-translation@prep.ai.mit.edu' indicating what language(s) -you can work on. -

- -

-This document should answer many questions for those who are curious -about the process or would like to contribute. Please at least skim -over it, hoping to cut down a little of the high volume of email -generated by this collective effort towards GNU internationalization. - -

-

-GNU programming is done in English, and currently, English is used -as the main communicating language between national communities -collaborating to the GNU project. This very document is written -in English. This will not change in the foreseeable future. - -

-

-However, there is a strong appetite from national communities for -having more software able to write using national language and habits, -and there is an on-going effort to modify GNU software in such a way -that it becomes able to do so. The experiments driven so far raised -an enthusiastic response from pretesters, so we believe that GNU -internationalization is dedicated to succeed. - -

-

-For suggestion clarifications, additions or corrections to this -document, please email to `gnu-translation@prep.ai.mit.edu'. - -

- - -

Discussions

- -

-Facing this internationalization effort, a few users expressed their -concerns. Some of these doubts are presented and discussed, here. - -

- -
    -
  • Smaller groups - -Some languages are not spoken by a very large number of people, -so people speaking them sometimes consider that there may not be -all that much demand such versions of GNU packages. Moreover, many -people being into computers, in some countries, generally seem -to prefer English versions of their software. - -On the other end, people might enjoy their own language a lot, and -be very motivated at providing to themselves the pleasure of having -their beloved GNU software speaking their mother tongue. They do -themselves a personal favor, and do not pay that much attention to -the number of people beneficiating of their work. - -
  • Misinterpretation - -Other users are shy to push forward their own language, seeing in this -some kind of misplaced propaganda. Someone thought there must be some -users of the language over the networks pestering other people with it. - -But any spoken language is worth localization, because there are -people behind the language for whom the language is important and -dear to their hearts. - -
  • Odd translations - -The biggest problem is to find the right translations so that -everybody can understand the messages. Translations are usually a -little odd. Some people get used to English, to the extent they may -find translations into their own language "rather pushy, obnoxious -and sometimes even hilarious." As a French speaking man, I have -the experience of those instruction manuals for goods, so poorly -translated in French in Korea or Taiwan... - -The fact is that we sometimes have to create a kind of national -computer culture, and this is not easy without the collaboration of -many people liking their mother tongue. This is why translations are -better achieved by people knowing and loving their own language, and -ready to work together at improving the results they obtain. - -
  • Dependencies over the GPL - -Some people wonder if using GNU gettext necessarily brings their package -under the protective wing of the GNU General Public License, when they -do not want to make their program free, or want other kinds of freedom. -The simplest answer is yes. - -The mere marking of localizable strings in a package, or conditional -inclusion of a few lines for initialization, is not really including -GPL'ed code. However, the localization routines themselves are under -the GPL and would bring the remainder of the package under the GPL -if they were distributed with it. So, I presume that, for those -for which this is a problem, it could be circumvented by letting to -the end installers the burden of assembling a package prepared for -localization, but not providing the localization routines themselves. - -
- - - -

Organization

- -

-On a larger scale, the true solution would be to organize some kind of -fairly precise set up in which volunteers could participate. I gave -some thought to this idea lately, and realize there will be some -touchy points. I thought of writing to Richard Stallman to launch -such a project, but feel it might be good to shake out the ideas -between ourselves first. Most probably that Linux International has -some experience in the field already, or would like to orchestrate -the volunteer work, maybe. Food for thought, in any case! - -

-

-I guess we have to setup something early, somehow, that will help -many possible contributors of the same language to interlock and avoid -work duplication, and further be put in contact for solving together -problems particular to their tongue (in most languages, there are many -difficulties peculiar to translating technical English). My Swedish -contributor acknowledged these difficulties, and I'm well aware of -them for French. - -

-

-This is surely not a technical issue, but we should manage so the -effort of locale contributors be maximally useful, despite the national -team layer interface between contributors and maintainers. - -

-

-GNU needs some setup for coordinating language coordinators. -Localizing evolving GNU programs will surely become a permanent -and continuous activity in GNU, once started. The setup should be -minimally completed and tested before GNU gettext becomes an official -reality. The email address `gnu-translation@prep.ai.mit.edu' -has been setup for receiving offers from volunteers and general -email on these topics. This address reaches the GNU Translation -Project coordinator. - -

- - - -

Central Coordination

- -

-I also think GNU will need sooner than it thinks, that someone setup -a way to organize and coordinate these groups. Some kind of group -of groups. My opinion is that it would be good that GNU delegate -this task to a small group of collaborating volunteers, shortly. -Perhaps in `gnu.announce' a list of this national committee's -can be published. - -

-

-My role as coordinator would simply be to refer to Ulrich any German -speaking volunteer interested to localization of GNU programs, and -maybe helping national groups to initially organize, while maintaining -national registries for until national groups are ready to take over. -In fact, the coordinator should ease volunteers to get in contact with -one another for creating national teams, which should then select -one coordinator per language, or country (regionalized language). -If well done, the coordination should be useful without being an -overwhelming task, the time to put delegations in place. - -

- - -

National Teams

- -

-I suggest we look for volunteer coordinators/editors for individual -languages. These people will scan contributions of translation files -for various programs, for their own languages, and will ensure high -and uniform standards of diction. - -

-

-From my current experience with other people in these days, those who -provide localizations are very enthusiastic about the process, and are -more interested in the localization process than in the program they -localize, and want to do many programs, not just one. This seems -to confirm that having a coordinator/editor for each language is a -good idea. - -

-

-We need to choose someone who is good at writing clear and concise -prose in the language in question. That is hard--we can't check -it ourselves. So we need to ask a few people to judge each others' -writing and select the one who is best. - -

-

-I announce my prerelease to a few dozen people, and you would not -believe all the discussions it generated already. I shudder to think -what will happen when this will be launched, for true, officially, -world wide. Who am I to arbitrate between two Czekolsovak users -contradicting each other, for example? - -

-

-I assume that your German is not much better than my French so that -I would not be able to judge about these formulations. What I would -suggest is that for each language there is a group for people who -maintain the PO files and judge about changes. I suspect there will -be cultural differences between how such groups of people will behave. -Some will have relaxed ways, reach consensus easily, and have anyone -of the group relate to the maintainers, while others will fight to -death, organize heavy administrations up to national standards, and -use strict channels. - -

-

-The German team is putting out a good example. Right now, they are -maybe half a dozen people revising translations of each other and -discussing the linguistic issues. I do not even have all the names. -Ulrich Drepper is taking care of coordinating the German team. -He subscribed to all my pretest lists, so I do not even have to warn -him specifically of incoming releases. - -

-

-I'm sure, that is a good idea to get teams for each language working -on translations. That will make the translations better and more -consistent. - -

- - - -

Sub-Cultures

- -

-Taking French for example, there are a few sub-cultures around -computers which developed diverging vocabularies. Picking volunteers -here and there without addressing this problem in an organized way, -soon in the project, might produce a distasteful mix of GNU programs, -and possibly trigger endless quarrels among those who really care. - -

-

-Keeping some kind of unity in the way French localization of GNU -programs is achieved is a difficult (and delicate) job. Knowing the -latin character of French people (:-), if we take this the wrong -way, we could end up nowhere, or spoil a lot of energies. Maybe we -should begin to address this problem seriously before GNU -gettext become officially published. And I suspect that this -means soon! - -

- - -

Organizational Ideas

- -

-I expect the next big changes after the official release. Please note -that I use the German translation of the short GPL message. We need -to set a few good examples before the localization goes out for true -in GNU. Here are a few points to discuss: - -

- -
    -
  • - -Each group should have one FTP server (at least one master). - -
  • - -The files on the server should reflect the latest version (of -course!) and it should also contain a RCS directory with the -corresponding archives (I don't have this now). - -
  • - -There should also be a ChangeLog file (this is more useful than the -RCS archive but can be generated automatically from the later by -Emacs). - -
  • - -A core group should judge about questionable changes (for now -this group consists solely by me but I ask some others occasionally; -this also seems to work). - -
- - - -

Mailing Lists

- -

-If we get any inquiries about GNU gettext, send them on to: - -

- -
-`gnu-translation@prep.ai.mit.edu'
-
- -

-The `*-pretest' lists are quite useful to me, maybe the idea could -be generalized to all GNU packages. But each maintainer his/her way! - -

-

-, we have a mechanism in place here at -`gnu.ai.mit.edu' to track teams, support mailing lists for -them and log members. We have a slight preference that you use it. -If this is OK with you, I can get you clued in. - -

-

-Things are changing! A few years ago, when Daniel Fekete and I -asked for a mailing list for GNU localization, nested at the FSF, we -were politely invited to organize it anywhere else, and so did we. -For communicating with my pretesters, I later made a handful of -mailing lists located at iro.umontreal.ca and administrated by -majordomo. These lists have been very dependable -so far... - -

-

-I suspect that the German team will organize itself a mailing list -located in Germany, and so forth for other countries. But before they -organize for true, it could surely be useful to offer mailing lists -located at the FSF to each national team. So yes, please explain me -how I should proceed to create and handle them. - -

-

-We should create temporary mailing lists, one per country, to help -people organize. Temporary, because once regrouped and structured, it -would be fair the volunteers from country bring back their list -in there and manage it as they want. My feeling is that, in the long -run, each team should run its own list, from within their country. -There also should be some central list to which all teams could -subscribe as they see fit, as long as each team is represented in it. - -

- - -

Information Flow

- -

-There will surely be some discussion about this messages after the -packages are finally released. If people now send you some proposals -for better messages, how do you proceed? Jim, please note that -right now, as I put forward nearly a dozen of localizable programs, I -receive both the translations and the coordination concerns about them. - -

-

-If I put one of my things to pretest, Ulrich receives the announcement -and passes it on to the German team, who make last minute revisions. -Then he submits the translation files to me as the maintainer. -For GNU packages I do not maintain, I would not even hear about it. -This scheme could be made to work GNU-wide, I think. For security -reasons, maybe Ulrich (national coordinators, in fact) should update -central registry kept by GNU (Jim, me, or Len's recruits) once in -a while. - -

-

-In December/January, I was aggressively ready to internationalize -all of GNU, giving myself the duty of one small GNU package per week -or so, taking many weeks or months for bigger packages. But it does -not work this way. I first did all the things I'm responsible for. -I've nothing against some missionary work on other maintainers, but -I'm also loosing a lot of energy over it--same debates over again. - -

-

-And when the first localized packages are released we'll get a lot of -responses about ugly translations :-). Surely, and we need to have -beforehand a fairly good idea about how to handle the information -flow between the national teams and the package maintainers. - -

-

-Please start saving somewhere a quick history of each PO file. I know -for sure that the file format will change, allowing for comments. -It would be nice that each file has a kind of log, and references for -those who want to submit comments or gripes, or otherwise contribute. -I sent a proposal for a fast and flexible format, but it is not -receiving acceptance yet by the GNU deciders. I'll tell you when I -have more information about this. - -

- - -

The Maintainer's View

- -

-The maintainer of a package has many responsibilities. One of them -is ensuring that the package will install easily on many platforms, -and that the magic we described earlier (see section The User's View) will work -for installers and end users. - -

-

-Of course, there are many possible ways by which GNU gettext -might be integrated in a distribution, and this chapter does not cover -them in all generality. Instead, it details one possible approach -which is especially adequate for many GNU distributions, because -GNU gettext is purposely for helping the internationalization -of the whole GNU project. So, the maintainer's view presented here -presumes that the package already has a `configure.in' file and -uses Autoconf. - -

-

-Nevertheless, GNU gettext may surely be useful for non-GNU -packages, but the maintainers of such packages might have to show -imagination and initiative in organizing their distributions so -gettext work for them in all situations. There are surely -many, out there. - -

-

-Even if gettext methods are now stabilizing, slight adjustments -might be needed between successive gettext versions, so you -should ideally revise this chapter in subsequent releases, looking -for changes. - -

- - - -

Flat or Non-Flat Directory Structures

- -

-Some GNU packages are distributed as tar files which unpack -in a single directory, these are said to be flat distributions. -Other GNU packages have a one level hierarchy of subdirectories, using -for example a subdirectory named `doc/' for the Texinfo manual and -man pages, another called `lib/' for holding functions meant to -replace or complement C libraries, and a subdirectory `src/' for -holding the proper sources for the package. These other distributions -are said to be non-flat. - -

-

-For now, we cannot say much about flat distributions. A flat -directory structure has the disadvantage of increasing the difficulty -of updating to a new version of GNU gettext. Also, if you have -many PO files, this could somewhat pollute your single directory. -In the GNU gettext distribution, the `misc/' directory -contains a shell script named `combine-sh'. That script may -be used for combining all the C files of the `intl/' directory -into a pair of C files (one `.c' and one `.h'). Those two -generated files would fit more easily in a flat directory structure, -and you will then have to add these two files to your project. - -

-

-Maybe because GNU gettext itself has a non-flat structure, -we have more experience with this approach, and this is what will be -described in the remaining of this chapter. Some maintainers might -use this as an opportunity to unflatten their package structure. -Only later, once gained more experience adapting GNU gettext -to flat distributions, we might add some notes about how to proceed -in flat situations. - -

- - -

Prerequisite Works

- -

-There are some works which are required for using GNU gettext -in one of your package. These works have some kind of generality -that escape the point by point descriptions used in the remainder -of this chapter. So, we describe them here. - -

- -
    -
  • - -Before attempting to use you should install some other packages first. -Ensure that recent versions of GNU m4, GNU Autoconf and GNU -gettext are already installed at your site, and if not, proceed -to do this first. If you got to install these things, beware that -GNU m4 must be fully installed before GNU Autoconf is even -configured. - -Those three packages are only needed to you, as a maintainer; the -installers of your own package and end users do not really need any -of GNU m4, GNU Autoconf or GNU gettext for successfully -installing and running your package, with messages properly translated. -But this is not completely true if you provide internationalized -shell scripts within your own package: GNU gettext shall -then be installed at the user site if the end users want to see the -translation of shell script messages. - -
  • - -Your package should use Autoconf and have a `configure.in' file. -If it does not, you have to learn how. The Autoconf documentation -is quite well written, it is a good idea that you print it and get -familiar with it. - -
  • - -Your C sources should have already been modified according to -instructions given earlier in this manual. See section Preparing Program Sources. - -
  • - -Your `po/' directory should receive all PO files submitted to you -by the translator teams, each having `ll.po' as a name. -This is not usually easy to get translation -work done before your package gets internationalized and available! -Since the cycle has to start somewhere, the easiest for the maintainer -is to start with absolutely no PO files, and wait until various -translator teams get interested in your package, and submit PO files. - -
- -

-It is worth adding here a few words about how the maintainer should -ideally behave with PO files submissions. As a maintainer, your -role is to authentify the origin of the submission as being the -representative of the appropriate GNU translating team (forward the -submission to `gnu-translation@prep.ai.mit.edu' in case of -doubt), to ensure that the PO file format is not severely broken and -does not prevent successful installation, and for the rest, to merely -to put these PO files in `po/' for distribution. - -

-

-As a maintainer, you do not have to take on your shoulders the -responsibility of checking if the translations are adequate or -complete, and should avoid diving into linguistic matters. Translation -teams drive themselves and are fully responsible of their linguistic -choices for GNU. Keep in mind that translator teams are not -driven by maintainers. You can help by carefully redirecting all -communications and reports from users about linguistic matters to the -appropriate translation team, or explain users how to reach or join -their team. The simplest might be to send them the `NLS' file. - -

-

-Maintainers should never ever apply PO file bug reports -themselves, short-cutting translation teams. If some translator has -difficulty to get some of her points through her team, it should not be -an issue for her to directly negotiate translations with maintainers. -Teams ought to settle their problems themselves, if any. If you, as -a maintainer, ever think there is a real problem with a team, please -never try to solve a team's problem on your own. - -

- - -

Invoking the gettextize Program

- -

-Some files are consistently and identically needed in every package -internationalized through GNU gettext. As a matter of -convenience, the gettextize program puts all these files right -in your package. This program has the following synopsis: - -

- -
-gettextize [ option... ] [ directory ]
-
- -

-and accepts the following options: - -

-
- -
`-f' -
-
`--force' -
-Force replacement of files which already exist. - -
`-h' -
-
`--help' -
-Display this help and exit. - -
`--version' -
-Output version information and exit. - -
- -

-If directory is given, this is the top level directory of a -package to prepare for using GNU gettext. If not given, it -is assumed that the current directory is the top level directory of -such a package. - -

-

-The program gettextize provides the following files. However, -no existing file will be replaced unless the option --force -(-f) is specified. - -

- -
    -
  1. - -The `NLS' file is copied in the main directory of your package, -the one being at the top level. This file gives the main indications -about how to install and use the Native Language Support features -of your program. You might elect to use a more recent copy of this -`NLS' file than the one provided through gettextize, if -you have one handy. You may also fetch a more recent copy of file -`NLS' from most GNU archive sites. - -
  2. - -A `po/' directory is created for eventually holding -all translation files, but initially only containing the file -`po/Makefile.in.in' from the GNU gettext distribution. -(beware the double `.in' in the file name). If the `po/' -directory already exists, it will be preserved along with the files -it contains, and only `Makefile.in.in' will be overwritten. - -
  3. - -A `intl/' directory is created and filled with most of the files -originally in the `intl/' directory of the GNU gettext -distribution. Also, if option --force (-f) is given, -the `intl/' directory is emptied first. - -
- -

-If your site support symbolic links, gettextize will not -actually copy the files into your package, but establish symbolic -links instead. This avoids duplicating the disk space needed in -all packages. Merely using the `-h' option while creating the -tar archive of your distribution will resolve each link by an -actual copy in the distribution archive. So, to insist, you really -should use `-h' option with tar within your dist -goal of your main `Makefile.in'. - -

-

-It is interesting to understand that most new files for supporting -GNU gettext facilities in one package go in `intl/' -and `po/' subdirectories. One distinction between these two -directories is that `intl/' is meant to be completely identical -in all packages using GNU gettext, while all newly created -files, which have to be different, go into `po/'. There is a -common `Makefile.in.in' in `po/', because the `po/' -directory needs its own `Makefile', and it has been designed so -it can be identical in all packages. - -

- - -

Files You Must Create or Alter

- -

-Besides files which are automatically added through gettextize, -there are many files needing revision for properly interacting with -GNU gettext. If you are closely following GNU standards for -Makefile engineering and auto-configuration, the adaptations should -be easier to achieve. Here is a point by point description of the -changes needed in each. - -

-

-So, here comes a list of files, each one followed by a description of -all alterations it needs. Many examples are taken out from the GNU -gettext 0.10 distribution itself. You may indeed -refer to the source code of the GNU gettext package, as it -is intended to be a good example and master implementation for using -its own functionality. - -

- - - -

`POTFILES' in `po/'

- -

-The `po/' directory should receive a file named -`POTFILES.in'. This file tells which files, among all program -sources, have marked strings needing translation. Here is an example -of such a file: - -

- -
-# List of source files containing translatable strings.
-# Copyright (C) 1995 Free Software Foundation, Inc.
-
-# Common library files
-lib/error.c
-lib/getopt.c
-lib/xmalloc.c
-
-# Package source files
-src/gettextp.c
-src/msgfmt.c
-src/xgettext.c
-
- -

-Dashed comments and white lines are ignored. All other lines -list those source files containing strings marked for translation -(see section How Marks Appears in Sources), in a notation relative to the top level -of your whole distribution, rather than the location of the -`POTFILES.in' file itself. - -

- - -

`configure.in' at top level

- - -
    -
  1. Declare the package and version. - -This is done by a set of lines like these: - - -
    -PACKAGE=gettext
    -VERSION=0.10
    -AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
    -AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
    -AC_SUBST(PACKAGE)
    -AC_SUBST(VERSION)
    -
    - -Of course, you replace `gettext' with the name of your package, -and `0.10' by its version numbers, exactly as they -should appear in the packaged tar file name of your distribution -(`gettext-0.10.tar.gz', here). - -
  2. Declare the available translations. - -This is done by defining ALL_LINGUAS to the white separated, -quoted list of available languages, in a single line, like this: - - -
    -ALL_LINGUAS="de fr"
    -
    - -This example means that German and French PO files are available, so -that these languages are currently supported by your package. If you -want to further restrict, at installation time, the set of installed -languages, this should not be done by modifying ALL_LINGUAS in -`configure.in', but rather by using the LINGUAS environment -variable (see section Magic for Installers). - -
  3. Check for internationalization support. - -Here is the main m4 macro for triggering internationalization -support. Just add this line to `configure.in': - - -
    -ud_GNU_GETTEXT
    -
    - -This call is purposely simple, even if it generates a lot of configure -time checking and actions. - -
  4. Obtain some `libintl.h' header file. - -Once you called ud_GNU_GETTEXT in `configure.in', use: - - -
    -AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
    -
    - -This will create one header file `libintl.h'. The reason for -this has to do with the fact that some systems, using the Uniforum -message handling functions, already have a file of this name. - -The AC_LINK_FILES call has not been integrated into the -ud_GNU_GETTEXT macro because there can be only one such call -in a `configure' file. If you already use it, you will have to -merge the needed AC_LINK_FILES within yours, by adding -the first argument at the end of the list of your first argument, -and adding the second argument at the end of the list of your second -argument. - -
  5. Have output files created. - -The AC_OUTPUT directive, at the end of your `configure.in' -file, needs to be modified in two ways: - - -
    -AC_OUTPUT([existing configuration files intl/Makefile po/Makefile.in],
    -[sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
    -existing additional actions])
    -
    - -The modification to the first argument to AC_OUTPUT asks -for substitution in the `intl/' and `po/' directories. -Note the `.in' suffix used for `po/' only. This is because -the distributed file is really `po/Makefile.in.in'. - -The modification to the second argument ensures that `po/Makefile' -gets generated out of the `po/Makefile.in' just created, including -in it the `po/POTFILES' produced by ud_GNU_GETTEXT. -Two steps are needed because `po/POTFILES' can get lengthy in -some packages, too lengthy in fact for being able to merely use an -Autoconf substituted variable, as many seds cannot handle very -long lines. - -
- - - -

`aclocal.m4' at top level

- -

-If you do not have an `aclocal.m4' file in your distribution, -the simplest is taking a copy of `aclocal.m4' from -GNU gettext. But to be precise, you only need macros -ud_LC_MESSAGES, ud_WITH_NLS and ud_GNU_GETTEXT, -so you may use an editor and remove macros you do not need. - -

-

-If you already have an `aclocal.m4' file, then you will have -to merge the said macros into your `aclocal.m4'. Note that if -you are upgrading from a previous release of GNU gettext, you -should most probably replace the said macros, as they usually -change a little from one release of GNU gettext to the next. -Their contents may vary as we get more experience with strange systems -out there. - -

-

-These macros check for the internationalization support functions -and related informations. Hopefully, once stabilized, these macros -might be integrated in the standard Autoconf set, because this -piece of m4 code will be the same for all projects using GNU -gettext. - -

- - -

`acconfig.h' at top level

- -

-If you do not have an `acconfig.h' file in your distribution, -the simplest is use take a copy of `acconfig.h' from -GNU gettext. But to be precise, you only need the -lines and comments for ENABLE_NLS, HAVE_CATGETS, -HAVE_GETTEXT and HAVE_LC_MESSAGES, so you may use -an editor and remove everything else. If you already have an -`acconfig.h' file, then you should merge the said definitions -into your `acconfig.h'. - -

- - -

`Makefile.in' at top level

- -

-Here are a few modifications you need to make to your main, top-level -`Makefile.in' file. - -

- -
    -
  1. - -Add the following lines near the beginning of your `Makefile.in', -so the `dist:' goal will work properly (as explained further down): - - -
    -PACKAGE = @PACKAGE@
    -VERSION = @VERSION@
    -
    - -
  2. - -Add file `NLS' to the DISTFILES definition, so the file gets -distributed. - -
  3. - -Wherever you process subdirectories in your `Makefile.in', be -sure you also process @INTLSUB@ and @POSUB@, which -are replaced respectively by `intl' and `po', or empty -when the configuration processes decides these directories should -not be processed. - -Here is an example of a canonical order of processing. In this -example, we also define SUBDIRS in Makefile.in for it -to be further used in the `dist:' goal. - - -
    -SUBDIRS = doc lib @INTLSUB@ src @POSUB@
    -
    - -that you will have to adapt to your own package. - -
  4. - -A delicate point is the `dist:' goal, as both -`intl/Makefile' and `po/Makefile' will later assume that the -proper directory has been set up from the main `Makefile'. Here is -an example at what the `dist:' goal might look like: - - -
    -distdir = $(PACKAGE)-$(VERSION)
    -dist: Makefile
    -	rm -fr $(distdir)
    -	mkdir $(distdir)
    -	chmod 777 $(distdir)
    -	for file in $(DISTFILES); do \
    -	  ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \
    -	done
    -	for subdir in $(SUBDIRS); do \
    -	  mkdir $(distdir)/$$subdir || exit 1; \
    -	  chmod 777 $(distdir)/$$subdir; \
    -	  (cd $$subdir && $(MAKE) $@) || exit 1; \
    -	done
    -	tar chozf $(distdir).tar.gz $(distdir)
    -	rm -fr $(distdir)
    -
    - -
- - - -

`Makefile.in' in `src/'

- -

-Some of the modifications made in the main `Makefile.in' will -also be needed in the `Makefile.in' from your package sources, -which we assume here to be in the `src/' subdirectory. Here are -all the modifications needed in `src/Makefile.in': - -

- -
    -
  1. - -In view of the `dist:' goal, you should have these lines near the -beginning of `src/Makefile.in': - - -
    -PACKAGE = @PACKAGE@
    -VERSION = @VERSION@
    -
    - -
  2. - -If not done already, you should guarantee that top_srcdir -gets defined. This will serve for cpp include files. Just add -the line: - - -
    -top_srcdir = @top_srcdir@
    -
    - -
  3. - -You might also want to define subdir as `src', later -allowing for almost uniform `dist:' goals in all your -`Makefile.in'. At list, the `dist:' goal below assume that -you used: - - -
    -subdir = src
    -
    - -
  4. - -You should ensure that the final linking will use @INTLLIBS@ as -a library. An easy way to achieve this is to manage that it gets into -LIBS, like this: - - -
    -LIBS = @INTLLIBS@ @LIBS@
    -
    - -In most GNU packages one will find a directory `lib/' in which a -library containing some helper functions will be build. (You need at -least the few functions which the GNU gettext Library itself -needs.) However some of the functions in the `lib/' also give -messages to the user which of course should be translated, too. Taking -care of this it is not enough to place the support library (say -`libsupport.a') just between the @INTLLIBS@ and -@LIBS@ in the above example. Instead one has to write this: - - -
    -LIBS = ../lib/libsupport.a @INTLLIBS@ ../lib/libsupport.a @LIBS@
    -
    - -
  5. - -You should also ensure that directory `intl/' will be searched for -C preprocessor include files in all circumstances. So, you have to -manage so both `-I../intl' and `-I$(top_srcdir)/intl' will -be given to the C compiler. - -
  6. - -Your `dist:' goal has to conform with others. Here is a -reasonable definition for it: - - -
    -distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
    -dist: Makefile $(DISTFILES)
    -	for file in $(DISTFILES); do \
    -	  ln $$file $(distdir) 2>/dev/null || cp -p $$file $(distdir); \
    -	done
    -
    - -
- - - -

Concluding Remarks

- -

-We would like to conclude this GNU gettext manual by presenting -an history of the GNU Translation Project so far. We finally give -a few pointers for those who want to do further research or readings -about Native Language Support matters. - -

- - - -

History of GNU gettext

- -

-Internationalization concerns and algorithms have been informally -and casually discussed for years in GNU, sometimes around GNU -libc, maybe around the incoming Hurd, or otherwise -(nobody clearly remembers). And even then, when the work started for -real, this was somewhat independently of these previous discussions. - -

-

-This all began in July 1994, when Patrick D'Cruze had the idea and -initiative of internationalizing version 3.9.2 of GNU fileutils. -He then asked Jim Meyering, the maintainer, how to get those changes -folded into an official release. That first draft was full of -#ifdefs and somewhat disconcerting, and Jim wanted to find -nicer ways. Patrick and Jim shared some tries and experimentations -in this area. Then, feeling that this might eventually have a deeper -impact on GNU, Jim wanted to know what standards were, and contacted -Richard Stallman, who very quickly and verbally described an overall -design for what was meant to become glocale, at that time. - -

-

-Jim implemented glocale and got a lot of exhausting feedback -from Patrick and Richard, of course, but also from Mitchum DSouza -(who wrote a catgets-like package), Roland McGrath, maybe David -MacKenzie, Pinard, and Paul Eggert, all pushing and -pulling in various directions, not always compatible, to the extent -that after a couple of test releases, glocale was torn apart. - -

-

-While Jim took some distance and time and became dad for a second -time, Roland wanted to get GNU libc internationalized, and -got Ulrich Drepper involved in that project. Instead of starting -from glocale, Ulrich rewrote something from scratch, but -more conformant to the set of guidelines who emerged out of the -glocale effort. Then, Ulrich got people from the previous -forum to involve themselves into this new project, and the switch -from glocale to what was first named msgutils, renamed -nlsutils, and later gettext, became officially accepted -by Richard in May 1995 or so. - -

-

-Let's summarize by saying that Ulrich Drepper wrote GNU gettext -in April 1995. The first official release of the package, including -PO mode, occurred in July 1995, and was numbered 0.7. Other people -contributed to the effort by providing a discussion forum around -Ulrich, writing little pieces of code, or testing. These are quoted -in the THANKS file which comes with the GNU gettext -distribution. - -

-

-While this was being done, adapted half a dozen of -GNU packages to glocale first, then later to gettext, -putting them in pretest, so providing along the way an effective -user environment for fine tuning the evolving tools. He also took -the responsibility of organizing and coordinating the GNU Translation -Project. After nearly a year of informal exchanges between people from -many countries, translator teams started to exist in May 1995, through -the creation and support by Patrick D'Cruze of twenty unmoderated -mailing lists for that many native languages, and two moderated -lists: one for reaching all teams at once, the other for reaching -all maintainers of internationalized packages in GNU. - -

-

- also wrote PO mode in June 1995 with the collaboration -of Greg McGary, as a kind of contribution to Ulrich's package. -He also gave a hand with the GNU gettext Texinfo manual. - -

- - -

Related Readings

- -

-Eugene H. Dorr (`dorre@well.com') maintains an interesting -bibliography on internationalization matters, called -Internationalization Reference List, which is available as: - -

-ftp://ftp.ora.com/pub/examples/nutshell/ujip/doc/i18n-books.txt
-
- -

-Michael Gschwind (`mike@vlsivie.tuwien.ac.at') maintains a -Frequently Asked Questions (FAQ) list, entitled Programming for -Internationalisation. This FAQ discusses writing programs which -can handle different language conventions, character sets, etc.; -and is applicable to all character set encodings, with particular -emphasis on ISO 8859-1. It is regularly published in Usenet -groups `comp.unix.questions', `comp.std.internat', -`comp.software.international', `comp.lang.c', -`comp.windows.x', `comp.std.c', `comp.answers' -and `news.answers'. The home location of this document is: - -

-ftp://ftp.vlsivie.tuwien.ac.at/pub/8bit/ISO-programming
-
- -

-Patrick D'Cruze (`pdcruze@li.org') wrote a tutorial about NLS -matters, and Jochen Hein (`Hein@student.tu-clausthal.de') took -over the responsibility of maintaining it. It may be found as: - -

-ftp://sunsite.unc.edu/pub/Linux/utils/nls/catalogs/Incoming/...
-     ...locale-tutorial-0.8.txt.gz
-
- -

-This site is mirrored in: - -

-ftp://ftp.ibp.fr/pub/linux/sunsite/
-
- -

-A French version of the same tutorial should be findable at: - -

-ftp://ftp.ibp.fr/pub/linux/french/docs/
-
- -

-together with French translations of many Linux-related documents. - -

-


-This document was generated on 4 September 1998 using the -texi2html -translator version 1.51.

- - diff --git a/docs/html/gettext/msgfmt.htm b/docs/html/gettext/msgfmt.htm deleted file mode 100644 index 7c4834163a..0000000000 --- a/docs/html/gettext/msgfmt.htm +++ /dev/null @@ -1,222 +0,0 @@ - - - - - -msgfmt(1) manual page - - -Table of Contents

- -

NAME

-msgfmt - create a message object from a message file -

SYNOPSIS -

-msgfmt [ -v ] [ -o output-file ] ... -

DESCRIPTION

-

-msgfmt creates message -object files from portable object files (filename.po ), without changing -the portable object files.

-The .po file contains messages displayed to -users by system commands or by application programs. .po files can be edited, -and the messages in them can be rewritten in any language supported by -the system.

-The xgettext(1) - command can be used to create .po files from -script or programs.

-msgfmt interprets data as characters according to the -current setting of the LC_CTYPE - locale category. -

Portable Object Files -

-

-Formats for all .po files are the same. Each .po file contains one or -more lines, with each line containing either a comment or a statement. -Comments start the line with a hash mark (#) and end with the newline -character. All comments are ignored. The format of a statement is: -

- -
directive -value
-
-
-

-Each directive starts at the beginning of the line and is separated -from value by white space (such as one or more space or tab characters). -value consists of one or more quoted strings separated by white space. -Use any of the following types of directives:

-

domain domainname
-msgid -message_identifier
-msgstr message_string
-

-The behavior of the domain -directive is affected by the options used. See OPTIONS - for the behavior -when the -o option is specified. If the -o option is not specified, the -behavior of the domain directive is as follows:

-
  • All msgids from the beginning -of each .po file to the first domain directive are put into a default -message object file, messages.mo.
  • ·
  • When msgfmt encounters a domain domainname -directive in the .po file, all following msgids until the next domain directive -are put into the message object file
  • ·
  • Duplicate msgids are defined in -the scope of each domain. That is, a msgid is considered a duplicate only -if the identical msgid exists in the same domain.
  • ·
  • All duplicate msgids -are ignored.
  • -
-
-

-The msgid directive specifies the value of a message identifier -associated with the directive that follows it. The message_identifier string -identifies a target string to be used at retrieval time. Each statement -containing a msgid directive must be followed by a statement containing -a msgstr directive.

-The msgstr directive specifies the target string associated -with the message_identifier string declared in the immediately preceding -msgid directive.

-Message strings can contain the escape sequences \n for -newline, \t for tab, \v for vertical tab, \b for backspace, \r for carriage -return, \f for formfeed, \\ for backslash, \" for double quote, \ddd for octal -bit pattern, and \xDD for hexadecimal bit pattern. -

OPTIONS

- -
- -
-v
-
Verbose. - List duplicate message identifiers. Message strings are not redefined. -
- -
-o output-file
-
Specify output file name as output-file. All domain directives -and duplicate msgids in the .po file are ignored.
-
- -

EXAMPLES

-In this example -module1.po and module2.po are portable message objects files.

-

example% -cat module1.po
- # default domain "messages.mo"
- msgid "msg 1"
- msgstr "msg -1 translation"
- #
- domain "help_domain"
- msgid "help 2"
- msgstr "help -2 translation"
- #
- domain "error_domain"
- msgid "error 3"
- msgstr "error -3 translation"
-

- example% cat module2.po
- # default domain "messages.mo" -
- msgid "mesg 4"
- msgstr "mesg 4 translation"
- #
- domain "error_domain" -
- msgid "error 5"
- msgstr "error 5 translation"
- #
- domain "window_domain" -
- msgid "window 6"
- msgstr "window 6 translation"
-

-

-The following command -will produce the output files, messages.mo, help_domain.mo, and error_domain.mo. - -

- -
example% msgfmt module1.po
-
-
-

-The following command will produce the output -files, messages.mo, help_domain.mo, error_domain.mo, and window_domain.mo. - -

- -
example% msgfmt module1.po module2.po
-
-
-

-The following example will produce -the output file hello.mo. -

- -
example% msgfmt -o hello.mo module1.po module2.po -
-
-
-

-Install message object files in /usr/lib/locale/locale/LC_MESSAGES/ -domain.mo -where locale is the message locale as set by setlocale(3C) -, and domain -is text domain as set by textdomain(). The /usr/lib/locale portion can -optionally be changed by calling bindtextdomain(). See gettext(3C) -. -

ENVIRONMENT -

-See environ(5) - for descriptions of the following environmental variables -that affect the execution of msgfmt: LC_CTYPE - , LC_MESSAGES - , NLSPATH - -. -

ATTRIBUTES

-See attributes(5) - for descriptions of the following attributes: -

- - - - -
ATTRIBUTE TYPE ATTRIBUTE VALUE
Availability SUNWloc
CSI - Enabled
- -

SEE ALSO

-xgettext(1) -, gettext(3C) -, setlocale(3C) -, attributes(5) -, -environ(5) - -

NOTES

-

-Neither msgfmt nor any gettext() routine imposes a limit -on the total length of a message. However, each line in the *.po file is -limited to MAX_INPUT - (512) bytes.

-Installing message catalogs under the -C locale is pointless, since they are ignored for the sake of efficiency. -

- -


-Table of Contents

-

- diff --git a/docs/html/gettext/xgettext.htm b/docs/html/gettext/xgettext.htm deleted file mode 100644 index a999626c4c..0000000000 --- a/docs/html/gettext/xgettext.htm +++ /dev/null @@ -1,144 +0,0 @@ - - - - - -xgettext(1) manual page - - -Table of Contents

- -

NAME

-xgettext - extract gettext call strings from C programs -

SYNOPSIS -

-xgettext [ -ns ] [ -a [ -x exclude-file ] ] [ -c comment-tag ] [ -d default-domain -] [ -j ] [ -m prefix ] [ -M suffix ] [ -p pathname ] -| filename ...
-xgettext --h -

DESCRIPTION

-

-xgettext is used to automate the creation of portable -message files (.po). A .po file contains copies of `C' strings that are found -in ANSI C source code in filename or the standard input if `-' is specified -on the command line. The .po file can be used as input to the msgfmt(1) - -utility, which produces a binary form of the message file that can be - used by application during run-time.

-xgettext writes msgid strings from -gettext(3C) - calls in filename to the default output file messages.po. The -default output file name can be changed by -d option. msgid strings in -dgettext() calls are written to the output file where domainname is the -first parameter to the dgettext() call.

-By default, xgettext creates a - .po file in the current working directory, and each entry is in the same -order the strings are extracted from filenames. When the -p option is specified, -the .po file is created in the pathname directory. An existing .po file -is overwritten.

-Duplicate msgids are written to the .po file as comment -lines. When the -s option is specified, the .po is sorted by the msgid -string, and all duplicated msgids are removed. All msgstr directives in -the .po file are empty unless the -m option is used. -

OPTIONS

- -
- -
-n
-
Add comment -lines to the output file indicating file name and line number in the source -file where each extracted string is encountered. These lines appear before -each msgid in the following format:
# # File: filename, line:
-
-line-number - - -
- -
-s
-
Generate output sorted by msgids with all duplicate msgids removed. -
- -
-a
-
Extract all strings, not just those found in gettext(3C) -, and dgettext -() calls. Only one .po file is created.
- -
-c comment-tag
-
The comment block -beginning with comment-tag as the first token of the comment block is -added to the output .po file as # delimited comments. For multiple domains, -xgettext directs comments and messages to the prevailing text domain.
- -
-d -default-domain
-
Rename default output file from messages.po to default-domain -.po.
- -
-j
-
Join messages with existing message files. If a .po file does not -exist, it is created. If a .po file does exist, new messages are appended. - Any duplicate msgids are commented out in the resulting .po file. Domain -directives in the existing .po file are ignored. Results not guaranteed -if the existing message file has been edited.
- -
-m prefix
-
Fill in the msgstr -with prefix. This is useful for debugging purposes. To make msgstr identical -to msgid, use an empty string ("" ) for prefix.
- -
-M suffix
-
Fill in the -msgstr with suffix. This is useful for debugging purposes.
- -
-p pathname -
-
Specify the directory where the output files will be placed. This option -overrides the current working directory.
-
- -
-x exclude-file
-
Specify a .po -file that contains a list of msgids that are not to be extracted from -the input files. The format of exclude-file is identical to the .po file. -However, only the msgid directive line in exclude-file is used. All other -lines are simply ignored. The -x option can only be used with the -a option. -
- -
-h
-
Print a help message on the standard output.
-
- -

ATTRIBUTES

-See attributes(5) - -for descriptions of the following attributes:

- - - -
ATTRIBUTE TYPE ATTRIBUTE -VALUE
Availability SUNWloc
- -

SEE ALSO

-msgfmt(1) -, gettext(3C) -, attributes(5) - - -

NOTES

-xgettext is not able to extract cast strings, for example ANSI -C casts of literal strings to (const char *). This is unnecessary anyway, -since the prototypes in <libintl.h> already specify this type.

- -


-Table of Contents

-

- diff --git a/docs/html/index.htm b/docs/html/index.htm deleted file mode 100644 index 00d0d0afd5..0000000000 --- a/docs/html/index.htm +++ /dev/null @@ -1,267 +0,0 @@ - - - -wxWindows Documentation - - - - - - - - - - - - - - -
- - - - -
- -

- -Welcome to wxWindows 2, the première cross-platform GUI C++ framework. This is an index of -the plain text, HTML, Windows Help and Acrobat documentation: availability depends on what you've -downloaded from the wxWindows Web site.

- -

- -[Install] -[Manuals] -[3rd party tools] -[Samples] - -
- -


Installation and release notes

- - - -


wxWindows manuals

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-HTML - -WinHelp - -PDF -
-Reference Manual - -Reference Manual - -Reference Manual -
-Porting Guide - -Porting Guide - -Porting Guide -
-Dialog Editor Manual - -Dialog Editor Manual - -Dialog Editor Manual -
-Property List Classes - -Propert List Classes - -Property List Classes -
-wxTreeLayout Class - -wxTreeLayout Class - -wxTreeLayout Class -
-Remstar ODBC Classes - -

-
-Remstar ODBC Classes -
- - -


Third-party tools

- - - -


Samples

- -
    -
  • bombs: minesweeper-like game. -
  • checklst: demonstrates wxCheckListBox on -supported platforms (currently Windows and GTK only). -
  • config: demonstrates use of wxConfig, which -defaults to wxRegConfig on WIN32, wxIniConfig on WIN16, and wxFileConfig on other platforms. -
  • controls: sample showing a variety of controls, including -wxNotebook. -
  • db: wxDB ODBC sample. -
  • dde: shows the DDE protocol in action, both using real -DDE on Windows, and TCP/IP on all platforms. Edit ddesetup.h -to switch between compilation modes. Currently the TCP/IP mode needs a bit of work. -
  • dialogs: shows some of the common dialogs available -- wxFontDialog, -wxColourDialog, wxFileDialog, wxDirDialog, wxMessageBox, wxTextEntryDialog, wxSingleChoiceDialog. -For printing-related dialogs, see the printing sample. -
  • dnd: demonstrates drag and drop on supported platforms. -
  • docview: demonstrates use of the document view classes, -using wxFrame. -
  • docvwmdi: : demonstrates use of the document view classes, -using wxMDIParentFrame, wxMDIChildFrame. -
  • dynamic: shows how to connect events to member functions -dynamically. -
  • forty: a great little card game by Chris Breeze. A -fully-fledged application! -
  • fractal: fractal mountains by Andrew Davison. -
  • grid: demonstrates the wxGrid class. -
  • help: shows how to use wxHelpController. -
  • image: shows off the cross-platform wxImage class. -
  • internat: use of wxWindows' internationalization support. -
  • joytest: tests the wxJoystick class (currently Windows and GTK only). -
  • layout: shows the constraint layout system in action. -
  • listctrl: demonstrates the wxListCtrl (implemented natively on -WIN32, and using a generic version on other platforms). -
  • mdi: shows off the MDI (Multiple Document Interface) classes. On Windows, the regular MDI -scheme is used whereby child windows have full sizing and moving rights within the main -window. On other platforms, tabbed windows are used, where the children are always maximized. -
  • memcheck: demonstrates the memory checking/debugging facilities. -
  • mfc: shows how to use MFC and wxWindows code in the same application (Windows only). -To compile this, you must edit include/wx/wxprec.h, comment out the windows.h inclusion, and recompile wxWindows. -
  • minifram: demonstrates a frame with a small title bar. On -platforms that don't support it, a normal-sized title bar is displayed. -
  • minimal: just shows a frame, a menubar, and a statusbar. About as -small a wxWindows application as you can get. -
  • nativdlg: shows how wxWindows can load a standard Windows -dialog resource, translating the controls into wxWindows controls (Windows only). -
  • notebook: shows the wxNotebook (tabbed window) control. -
  • oleauto: a little OLE automation controller (Windows only; requires -Excel to be present). -
  • ownerdrw: demonstrates owner-draw menus and controls (Windows only). -
  • png: demonstrates PNG loading. -
  • printing: shows printing and previewing. -
  • proplist: demonstrates the property list classes (a VB-style property editor). -
  • regtest: tests the low-level Windows registry functions (Windows only). -
  • resource: shows how to use wxWindows resources (.wxr files). -
  • sashtest: demonstrates use of the wxSashWindow class to allow -the user to resize subwindows. -
  • splitter: demonstrates the wxSplitterWindow class. -
  • tab: demonstrates the generic tab window class. You should -normally use wxNotebook instead, but the generic code is sometimes useful, for example for -implementing wxNotebook on platforms with no native support. -
  • taskbar: demonstrates the wxTaskBarIcon class, for -adding icons to the system tray. Windows only, but may eventually be implemented for other desktop -environments that use this metaphor. -
  • thread: tests the family of classes for doing thread -programming. -
  • toolbar: demonstrates wxToolBar. -
  • treectrl: demonstrates wxTreeCtrl. -
  • typetest: tests various data type classes, including -wxTime, wxDate and wxVariant. -
  • validate: shows simple use of validation. -
  • wxpoem: a little poetry display program. -
  • wxsocket: demonstrates the TCP/IP family of classes. -
- -
- -
- - - - - diff --git a/docs/html/logo.gif b/docs/html/logo.gif deleted file mode 100644 index 2242fffd965a2779c29b9599d4e14bf2bebe4005..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 zcmW+%d05m|`%N+{!z^JR8PtFS45BuOz^G`$qDDoHP$UT2C@N9G20r}1U<@fQ?-+k_L{y6V>-}|1sJa@*->E?+` zc7h1-1^`SZ)8OEsz;PnaJMDIt)9D@b4?;;4-5DCLH3^PNhR8jyi=yvlsR%b>TM9-0g zmB1M@>ZAw;Gg~p#YBpI=q=z9%GfJSQIud6wRHX183&{~?3xP4XnIkb4M=1j5DU7#J zbwfyFX4E8DDS;(KjW8qqa1?8X=j}RJ=kO6Ihti~hrozD;jj@scG@K}0}cykW!Rw=t)$h0+j&y74Q0_z z`%s9s)eZ54z|(dcBicx(o$e7Cfgci(E(bHHq#tRS>Qjv=yUR6GmeH3OF-kLuuYb z4y78hR6pN7-Gr^!kHAxmFhO9CePU55mBN&nzx>-YwFcih& z|IgAmNnwPAp#IenByGlM)J*CT4ku{DB;bS{Cq$g+A;{oArNF;q%)jvOn*fx9K!Gv{ z7x?xvrO)VWhtSZm4IVYC9&b5(rCJ}o>Yk(Ep~gF{Ih*ZjX}rGMly)@x`st>dm1tc` zrjH2@GN*moX1RXm^IM0oGS#z)N81mLpCAdI)or@&tU(iTO+sQw<&pHLAFRK(9=m&r zk}YUSdd)RV-yP;r>RlV6ma0c2i);b_dgv0-@&`x)r1n7cB=uQel~U^6y69_r!F9tz z$Au$l*XI9lw#IPDk7~cVqa^Mpe+R-wURFXOoUa{B)GBj+z58 zdxlRt?R!0<#{Z4`;@j<#X+9gr52*;n=^a{Q(!FWib}5Zz4Ohb zi#fipknbOKd|nfr@KGOLdivJl2`jsjJ8I&6NJwQm5ajUCd>;XWNpZRLqb;|VX(UnvEY!jRsEy>X#0qF9&<>{fvkA#@Caxsk)O@6Q)^IZg%3tY6 zeKX-={N-x_o7pA%jddGO&yM{uFGmyigYiuDSnCgoH%8b0+MiC*{{1ZEbMi?OnDctt zZH-<{VW6=W?x~AAuGp!NV1jn%#1OJ<{(bvOsemHe!hpN5#EHggBX` zZd=b;q!o95zWDYeAoYxB6z83ogglUqxXLBXi8$Q2>*nS2(lj;yA7kOyQQMjmZ=Aj$ zzEn>d*d9G6z9zA#OySWZ?*R3PTfE`%o<0%Mp+wKk4I4NKq?-Bm1Qy$Az~tKFNUIa- zM=?l&Vx=+&BY+GeiiXt|%$ed;6`a2cB#`eCn3U|;D*3|GBD|1zlshskZ_n+>QVu%M z4)qwIq{4sGs}kkNMdV;&)r7*D&%T{-lSrEz>osqqXN1S+OJ_%Z4q$W4PwIWDGL={x5F;4q9!&>G6I1gUD{Z?FH}am9V> z-T&K8Bbnpiu?a9kPh2?O2u=vi6!o9v9}=vD}J;#0nVT z%Sc}MB2kfU479yrZw0w>$4+Je25wS>8nf!wiU9YfO)9#!qDcFqftYiWegyhp^dZHd zKi8_RuZ+<#qP(X#IVf+)Cy#-MtHf|z+z{->^iUGe}*POE#j~D%FAHK_LNl{msE%y9krdJZ2Z8CcWW8NH2q~=rTc!6 z1Kw6(N*Z=YkjDxIHS4j@h->iGv3r(R&nF)!ueq;I`gy+YBWH&~&*vn?3+69!s)|7uvWy83w3&Ftxw){0U9@rtA=<{C1jNs^4KHZ?>xrn%JYpdFgZC z11OjU#?|adHJBD_y@|b%YuNbojR8sC0vqnfC+D{$fafv?VFN5q4tBJID~i3;=39Vr zY_L|#vn3`hT?>qqKd*$h)Xc2jx%RpW?$vpsFSNyE=f<~~eEhHNL3in`v(i`XaQHoJ zy5Q~%PYzb4av{Dm&{DK5SO-%sD4+-EMoPhm2sUY)u^o(OfbfPY6v~|QtBL3QFjt)d z&&Y1<3>tnT6^S!9EM0??1eshw@PtE)V^LPsi-91Qp`1I6YR{1* z?<0WJ*9C4;AyO^YE&pU0XLwHpN5Hspj8LMw=aN^SJ&rAK0im0>ZdmhS!0vcwFYzo5 z$)A;XYb{pdmxlmpg=3br&+1hUa-zgf#GFfAY+N58mx+(^6$Ee*{jLGtOTP+n8vUO7 zOAdAAR)+mO?A~QI9%9>7Bd9=cGZwS!thi*t&7Fabn0$Z>tuB4)Ma>CU>kdT zbQ8uN&Jz$CxRBlw2Hcag=e>mz^ov80sBJ6o)uV>NS zoM<9q892NuL23dd9to@wCGRIRdz2i_6M;{&+BI?}I>;g>KwW*ea5zOq9z%5~wk!&5 zfDlBY&>JN6*MoIQ(v#WWInT z`;tR4WDuankI@DJAS8{0vVJ9=sD#kxPfwOFXxbt1cVE=_&)XoaWWg1=(@KIe5Z%Eu zYp+c&Ipa^wigh>qCZ{A%Kl!E83}fKpe;#Yv&PmLenEp**uQbJ^n8-9wUxi5#K2A1m zK=P5_{B7@S57sW$cT70hzJ1kuWy8M4rf&vO&kQlq?~v)r*u)ZPOi^&p%D0gJ9;a^0 ztFn=+ij<=EnZi>v%-<>A(Xa3VRtfGy`!(ZT&l|BHys|V zit(^+zhH`p0)7i@(Ra-%1(yY#W!9w0C!M*aU86}?a|C3G{IbgMykAZ{rsCkQ?_wK| zto(MZeDs9zX}kNo%+{jhZ|u-*QIsriJ0`txuuNr{gc`lpRp#vI1&YL@F#iCWq+hL8 zFDUd0mIjML#c0zKk9B5g$UVUNPUjN!`*5f5@rmuLD9JDtbWyH(KzY*0A$F-d`%lP&*cF!_;F0pj#}c8W$^i zd5n9P5nG)v& z2X?QU84Ih?b#Gs<(3P%R7`IaN17HNSt;nqav+JkNR|BgKuaJN-VW%E}s<;>(y3Rw0 z_7oEg1+p!al48neL0L_dRWaeqM8zsZ^Lkp|*DiH0pqVa!dx;Gvhz*}{icUgv)#+&g z6mPqv2JFL;Jfw>X36f?n@y`rgItO$m2J?U|7A{`^#AU!O67Z*%%tsG_rV{v3Yhv`) z<+j7X@Gpj^KLCAQz%W-%>g$dF?DLb=6+P}7oBMh+H5fD1vJHNlJ1?|vQ|}9)`D)R_ z48vDf{OE0xr(bM7^l-+W7ZbjmF?AvZzWf~cqj-xhGd$7*0HjJ#N2Pm^ zfG530TSr&N#y0+u(A_zJbGO1_Ad>6Q5k9}o!h@Y(gf@H&F_%aFq7+3=#YN`**Apu4`0)SL%8=JY{NUVYhy@0nQGyMCZR*KlcoHr}Klw zX?h7#7FZ%JXXMqqvi|!1ZH$5?ltq+s59rZ}Y6nE^bC>paCpg(9`HcU#1@UaB#sKHl zKRPu}VA))*;=dx8Pp0IVW-Ofud!W|JC6bJCLh8zrJOCYyfCmNc359(b;MMJQLHmZw zc%bqRz}sc~?_kk;6`|nMmYvSxd4`o>^C>AK-zP1|5o#rJGB~I9uvI2Q7Bb(s@!zd`6fJPwl!V zBk*+KY-m2Hh9yz#G20d3`X@PF?qQcMcunCOt0~1wUa?wG7P7JdylD%fSj)>YFElMu zHMbI;CtRuqSk)qUcGRZUCu@I!W$z-;XdW^GHSTV~@O!QHBSSp5|G=Mkm0M2nvO^IH zJWBcULushc6w01z<1!Wc^ z%Vm_Sow7xO{MYZL;o>_}L{;c)&r_o6ucIHgbK2iv&Dg(BPg{Ft;oo}CFV9vNNJt=c z2`5WMrE!S#lMTL`-HKdFp6migq0sEC)29$s%CS@JjJjXc-gc^c1Z_X7&HUwTd6s=m zp(I6=#$#{{Cp$2+X+0y)MB~ryQrO)p-r3s9s@f2BKVaTGTl)~zZOyvS{ELvp$SF=n ziqa%x#J+UNK~a^Gb(%+@5L9;?&_*oRbR# - - -Welcome to wxWindows 2 - - - - - - - - - - - - - -
- -Welcome to wxWindows 2 - -
- -

- -Welcome to wxWindows 2, the premiere cross-platform GUI C++ framework.

- -Please click on docs/html/index.htm to view the main document index.

- -Have fun!

- - - - - - - diff --git a/docs/latex/porting/back.gif b/docs/latex/porting/back.gif deleted file mode 100644 index 8a61076d3ba74bdedc1d24f60c3d1f5a361a6cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmV<703QEGNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>t<(Iwfoo diff --git a/docs/latex/porting/books.bmp b/docs/latex/porting/books.bmp deleted file mode 100644 index cf1e148734c807052ec6359ad2eb1a3e8d43d43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 zcmb7?v2KGf5Qg0-f^PH?BCA8E<{c_a$x@Y}nZr;qXR5NnfE2boQZn^-S4x_%j?%%`Rfz!C$uHnGuoYEAr~D;JxHUzQYZhY(}{X$xY0SE&#JC# z5a%D|9QDv}6Qc3-Wv8+GlQ-*8<`8epNC>=NSLPUH1b$st*H{R=IXD*!fgA8x5Dt6l zUCo=!AsqI8={C$E9QGLr_q_i zFK;h=LxQhf>;v~gWIyoy(Zu$`w=UNZZuYl$t>-8&*n94Z?RTzqLWjlGhdMVK;w1@P zgX#l^|MHTQ1q9k0=J>%Sz9`L#Hix;bEVz#^(qoBse!qj(7b diff --git a/docs/latex/porting/books.gif b/docs/latex/porting/books.gif deleted file mode 100644 index 036d016fb16b793dd714a3916251f59b7efc654d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242 zcmZ?wbhEHb)MwCR*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zKZ6cPC&&y2mVX~kdamAU@%rrU{|Op>ib=ClxMcXbmpr~@cYwQjllG1B@c#@4*Bxh6 zXgW0aLdB!6GuAT~S-RNt`OVPr@_rW=wo=ji*1082C&e=)?D>Nd&T?mLf1Rh>9rogT zb5=!pc{od3n0ygKU42Pea&8+-0S8NmU4OSQYXiUa%t^xRQ&~D^_RQ&<*e14knp~++ aGOJLpXX!!_Q{5#SmiGi(ui53dZaM&TQeqzf diff --git a/docs/latex/porting/bullet.bmp b/docs/latex/porting/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/porting/contents.gif b/docs/latex/porting/contents.gif deleted file mode 100644 index 3dddfa3dd5f0c652e8b27cd6c29e1fdd49ced5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVG0Pz3-zrVld=jU&4Z(9HWEC2ui06_p40008OjE||y?GK}z zO&EZ)-n{z{a)K3v=81;mmA0S4Fj_r^UyThZDG{h6k9m zHI_(7spd!5_$SH6m{9_k^7`NQ&{w!+r zf%KU9zk~h~zZD#X^N5AuKea*5ueKt+`*Q6=#S#sWkN~ N6xIITmGWvyEC7KBF*X1I diff --git a/docs/latex/porting/porting.hpj b/docs/latex/porting/porting.hpj deleted file mode 100644 index 75e76d091b..0000000000 --- a/docs/latex/porting/porting.hpj +++ /dev/null @@ -1,16 +0,0 @@ -[OPTIONS] -TITLE=wxWindows Porting Guide -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -porting.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`porting.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/docs/latex/porting/porting.tex b/docs/latex/porting/porting.tex deleted file mode 100644 index 6729f323eb..0000000000 --- a/docs/latex/porting/porting.tex +++ /dev/null @@ -1,498 +0,0 @@ -\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} -\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 -\parskip=10pt -\parindent=0pt -\title{Guide to porting applications from wxWindows 1.xx to 2.0} -\author{Julian Smart} -\date{March 1999} -\makeindex -\begin{document} -\maketitle -\pagestyle{fancyplain} -\bibliographystyle{plain} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage}% -\pagenumbering{roman} -\tableofcontents -% -\chapter{About this document}\label{about} -\pagenumbering{arabic}% -\setheader{{\it Porting guide}}{}{}{}{}{{\it Porting guide}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This document gives guidelines and tips for porting applications from -version 1.xx of wxWindows 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 wxWindows 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 wxWindows can continue to evolve for the forseeable -future. - -{\it Please note that this document is a work in progress.} - -\chapter{Preparing for version 2.0}\label{preparing} - -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. wxWindows 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 -wxWindows 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 wxWindows 1.66. Yes, this is not easy... but I think it's 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 wxWindows 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 wxWindows 2.0, MDI functionality is separated into distinct classes. -\end{itemize} - -\chapter{The new event system}\label{eventsystem} - -The way that events are handled has been radically changed in wxWindows 2.0. Please -read the topic `Event handling overview' in the wxWindows 2.0 manual for background -on this. - -\section{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. - -\section{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). - -\chapter{Class hierarchy}\label{classhierarchy} - -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}{dc}. - -\chapter{GDI objects}\label{gdiobjects} - -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 derefence 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. - -\chapter{Dialogs and controls}\label{dialogscontrols} - -\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 wxWindows 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. - -\chapter{Device contexts and painting}\label{dc} - -In wxWindows 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. - -\chapter{Miscellaneous} - -\section{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 wxWindows 2.0 where a char* was -returned in wxWindows 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's 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(). - -\section{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. - -\chapter{Backward compatibility}\label{compat} - -Some wxWindows 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). - -\chapter{Quick reference}\label{quickreference} - -This section allows you to quickly find features that -need to be converted. - -\section{Include files} - -Use the form: - -\begin{verbatim} -#include -#include -\end{verbatim} - -For precompiled header support, use this form: - -\begin{verbatim} -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// Any files you want to include if not precompiling by including -// the whole of -#ifndef WX_PRECOMP - #include - #include - #include - #include -#endif - -// Any files you want to include regardless of precompiled headers -#include -\end{verbatim} - -\section{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. - -\section{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. - -\section{OnActivate} - -Replace the arguments with one wxActivateEvent\& argument, make sure the function isn't virtual, -and add an EVT\_ACTIVATE event table entry. - -\section{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. - -\section{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's obvious what's going on. - -\section{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}{dc}. - -If you are using a wxScrolledWindow (formerly wxCanvas), you should call -PrepareDC(dc) to set the correct translation for the current scroll position. - -\section{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. - -\section{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. - -\section{OnSize} - -Replace the arguments with one wxSizeEvent\& argument, make it non-virtual, and add to your -event table using EVT\_SIZE. - -\section{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. - -\section{wxButton} - -For bitmap buttons, use wxBitmapButton. - -\section{wxCanvas} - -Change the name to wxScrolledWindow. - -\section{wxDialogBox} - -Change the name to wxDialog, and for modal dialogs, use ShowModal instead of Show. - -\section{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}{dialogscontrols} - -\section{wxForm} - -Sorry, this class is no longer available. Try using the wxPropertyListView or wxPropertyFormView class -instead, or use .wxr files and validators. - -\section{wxPoint} - -The old wxPoint is called wxRealPoint, and wxPoint now uses integers. - -\section{wxRectangle} - -This is now called wxRect. - -\section{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. - -\section{wxText, wxMultiText, wxTextWindow} - -Change all these to wxTextCtrl. Add the window style wxTE\_MULTILINE if you -wish to have a multi-line text control. - -\section{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. - -\end{document} diff --git a/docs/latex/porting/tex2rtf.ini b/docs/latex/porting/tex2rtf.ini deleted file mode 100644 index 304529b8e4..0000000000 --- a/docs/latex/porting/tex2rtf.ini +++ /dev/null @@ -1,28 +0,0 @@ -;;; Tex2RTF initialisation file for 16-bit Winhelp -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 = no -htmlBrowseButtons = bitmap -winHelpContents = yes -winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95 -winHelpTitle = "wxWindows Porting Guide" -truncateFilenames = yes -combineSubSections = yes -\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}} -\htmlonly{\image{}{books.gif}}\helpref{#1}{#2} -\sethotspotcolour{on}\sethotspotunderline{on}} -\docparam [2]{\parskip{0}{\it #1}\par\parskip{10}\indented{1cm}{#2}} -\wxheading [1]{{\bf \fcol{blue}{#1}}} -\const [0] {{\bf const}} -\constfunc [3] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} - diff --git a/docs/latex/porting/texhelp.sty b/docs/latex/porting/texhelp.sty deleted file mode 100644 index 81704b0575..0000000000 --- a/docs/latex/porting/texhelp.sty +++ /dev/null @@ -1,289 +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}} - -% Void type -\newcommand{\void}{{\it void}} - -% Typeset destructor -\newcommand{\destruct}[1]{{$\sim$}#1} - -% Typeset insert/extract operators -\newcommand{\cinsert}{$<<$} -\newcommand{\cextract}{$>>$} - - -% =================== 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}} - diff --git a/docs/latex/porting/up.gif b/docs/latex/porting/up.gif deleted file mode 100644 index f9e7031e64..0000000000 --- a/docs/latex/porting/up.gif +++ /dev/null @@ -1 +0,0 @@ -GIF87a \ No newline at end of file diff --git a/docs/latex/proplist/back.gif b/docs/latex/proplist/back.gif deleted file mode 100644 index bfd15ce82c3e3fcf580c35d1a5fc63dc256bb2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmV<803H8FNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>

ZGT^H8%!L^>t1ZP<-XbXc2wf|8{PDA-=DcINBFvKX|{-KJsnSk%R^8+L44U z$i4ypjl*e0x17_nYJ{TLVo0D{@K#MLDW|A@*mc}m=&yKHEYr5oM3m!9)F6> zWRkara|1;v${y@VNlHBT1(UorWq!$nK2v742gLsKId5fXE%V@^%F%$Wm>CECwzGf~9 z`H|JEA(!tEPv%)p z?sR7>JK=AxFyGXPKi{iEP|B*;YN@Q@s;9DstDedlu6inKxX>S&vIDMqDr>mvsjT6ur?Q5t zp2`}odMazU>Zz>ZYNWD;tC7kYu0|?rxEiUf;cBF^hO3dv8m>kvYq%Pztl?^;vWBaX z${Ma_Dr>l!sjT6`4c(MAqiUwIhO3#%8m?w4Yq*-Jtl?^=vWBaf${Ma_Dr>k9vXQcK zUMrO~T&+~raJ5od!_`V<4Oc6bHC(M!)^H&{DuqQYh5c}~Qdz^*PGt>OJC!wD?Nruq zwNqKc)lOv%S38w8TnNQXStV0Dl{H-LRJP%2r?Q5tlgb*dPAY4-I;pJT>ZG!UtCPwa zu1+dzxH_q<;p(KahO3jx8m><2YPisXOW9RwSb566(-2mkvVOR*@|4|64J%Js#BW%6 z%HrX|%2U>c3oB3ARccsy%C1tw%2O5(7cLW1Si`08I}KsaQ&_`QNo5U}!tXSMWKUrY zm%{HfggsAT4VS|2G=x1*VGWnU?=*ytuoSl8Quv*Qu;-x-_wV2Tu@op4m5&N|WL%4= zNEE)d9sUlAqPiZTb#%{%#{22pEM zw2Cf^u8P`5WwVM=AIKdV&MVwG|%Xx-JRKMY# z=F5|{A3L8fyt|tmvi9(UE_KW0&a*X5eBkfs==i!TGoSV9H@)mZ>!^)9>LedK%ArPv zucd9)|5r!tymykkzRIWB{|=A#vkfbw!@Zg3_k3<`uCUcbqC(^IMd|a4j@mywTi8@( z!xpD)nK~@5gXP6j7u{~^a?zo6pNn=+D`(DvSzFZBv}GN0og8tOZk^8qsG{Oo=@8O8 zw+9NG8P(rN__3|o zGDk*qWWGD1O3@xWnLZpXg`*Ote;{q!^bS1J@41ud!!{O<_Avdq>GAX-H;b8muboUE za=)|@(cY#Xl56|rm)yzp;mWFT zw2$d;%)R~erFJrXXety|wu^MDn5bQo)nZ;*AzvgdX9uv(M|HLnS8x5>li%6 z(bme?mSZkYRLWAOrss{e{&blmw}~Z;P76nHvH#~1%4S_5xvUaX5Q-;_Vr6Dc+Untu$ z>t&UzEA2}tTVW0Pqy4u0%yJ$h(UH-K=15OJ(r}S%^VQ#4;zGUI$=qA!E#NhzMAkF< zqPo$s<}H?9*Sz8Azsx$qnnJ4XA7yN-Ve6K2TxZoiWfLmcsDiZf9INyS=E=X4bPVZp zz?P>5+R}!mt(vu^`J$$_>Qd|5w$9z61H(E)jb680+HQ{QZI6?zD(yX!DLw3ep@cI> z*=YN`K4@z$9Uc8v#50@HLmro~zIIaN+N@M;l9igBj9n!?j(4QAGTd4&UT50$=wScX zj2hMTq_Ol+Dhlpo&$gszdQ?tLS-)XX=bQ|W!OUHRYM z;ai?G7}n{bD#g-0)G;h2pWhSQHhjbH!&{g0|9m;m6o1tPVd?hmo!pUM2#cb!`TY`T z0lx;jTNE|-)E5aIl`Q5L1&c?~H+w|UBYXLU@qPRKUtjmgjh$7chG?h?jVoS9p!V z4B<`Q;(f+4jk)~DYQn>z(C8FpT`_QM1b(FPChu^+O zc$BgVzu1v}9rIYPb))E~deY=1zmTk9RH2byRc~r}=R{Gx3;oh|%P5+EnRQ%kJFbhO zTRKJ2DbirV&9!147=9!lFl?OL{YkfcXMMqB>9>2n`dav8^%d6oR|H7}ngROlJmPFpDpl%^bdF9`mt#(RbLzXaNiPiJ!5{(Gr#s z9!k3$NuU+um&jSeS|o|5n?+f_NU+iCuWaTwvI?x@AUsAngK)eT-b-GV^TZ^T)##IK z|5=WM%Ps4A`**kP>FfBGPwz{N{&upg9SG^y-|VmRE+6m_%c5`io<%IB z0(Gz|wQ!{Vi`0PD!2>*vRb{1nSVq{#uz%q=-k$>r5AZyb#u<FSo;>_ZJ|b2^uCC0*&q za|~l9U-A>V^2;j@;8>35Y_6pfJsHT$jAcIGlTpC0{c-@u(46zRiAQ*xH<-*+z9*CP zg7%YI97$6;a4q-p0)zN~FPXzSitnaA;|NaW3|eys-RQ?~K4b>VSw%i|?m-;F(VR;Q zuBI3F^CF`e$9#SzlahrU2h`y#uAw8{d7goM$ZY14R>bi`S*mgdjcH3)?&c}pV>qAj zGfT-|R9T@s^|^>k>B3X=<87ugoyFwcU0Gp&j-f6Wa1*!k0IxEbF?_>!Y+|osTh6W3 zy*8pLm(ZCm^yXz=V>q*z%~J9gcg09)YI78)(w57)nMdi%%Zz6t^ZAub_H-VsN)1k< z9aqqqzC6WXKH)RwvVmXOYY+7iH93{GT+S^##uGfxD8}#^KeLpyJ>?N)smy7dNpm`J zBVFmoa}4EkX0m`Zb$2d89bSQo)TSBda0U0!gXbB=7-qAU4HVwnyj0{kT5uuP(whf) zo2g7^3HkQX!lV$P4OhHSiOk{$cg%cb)W84#n*#rg!8u$&@%>9= zKGLQ5e&K&r=<>SW(<)wG*8l11e$9c%snzwDa=YDd-Duwxs!-QJ{?kh9(xppi#}!qF zr!Q~dt+G+R<<5^;GlnasB2mWj%EpUCxt5pDdO!d2uz>CV(xU=d^M!e|3&ITP%fl}w z6y3VOuvOtYFD!7B&HB>|G*4Jyn0}Pk=hC;VDC_FbnYCqF!R6h&--Yz(j_9c>eoH;; z|E^j8cgy;}M--+%Ijzdl%*+O9Gg`QENUOUhGqYjZna+5prZw7}nR!~)@EvKH(q&{? zQCt3bNWN%#*8elI{-2rk|8e$9uV%*H%l&R+Mo7!sGfs+bH*L|-pxXMkd)BZV@>gi< z`{_IEN7l9PcKhL4BI$mF=}%7k^3Jdy>lbBao|5*{h_D~;X)T*Mcq?(MeaJPdc=@M@GC!a5Qx`bQi$>&R+F5!lA^7)ddOSoN| zY`$-obO}!52~R>v zK40>53C|HpK40>52~XijK40>53D2-dHeYzeMDov)r%QN1L-P5Or%QOeLGt;Mr%QM^ zK=S#Lr%U*1eX{w&H{X+gmONd;_r{aYmpom|jo;++B~O>| zec5F5g|D+F|15dBgfD|8pD%g3gs)O2pD%g3gfAi{pD%g3gs<@>n=gb#m+)D#bP1m&OPBCjvUCZbB}5{y? z8)}K<$4dzAOSbRH+q+vrorP0#2CH#W8EbgXIkqt9+o} z3p+S1s_XY|FQKAd+VB_tcL|==8|9Kbs}CpiO1T^leMBNDLUc%o9|&<+;krDl`#`@! z=r_#;aAqq-bVJ?e7;Cvp;@ zH?IMw(2!F(4To=5FQ3C#ESF=ICN!lPXK^;?a4yX`4~KVjKA~suLN4NBF5yyI(u&r! zp)KvWjLW%#D`}5nB7VeOBCg?DuA?KJxSktOEW{$Y<3ULoQI0CSB14Aru}r8h@h_3k zCrI4c5_OIQY$fsDKTumHomis?`z}VWE?ZQ+m;^EpNYNQ z4ez6_c*I@hM~y$G4EJ+K?m1~bKwa~KJ7zCQ^Vb~PgKhhp?p(bkU*C3@^d0*+)SZrZ zt@nM)R<@rWB~QlauT-`NkF&1v(&S_H)I{s}-23y~v0LC+TI?>(66w5Bx~_ExeVzQ? zL@rdWH}kBrJxk`Ecp6sA+&@o_j6sXUjPp33OKHVbgmcC)Ch-|_`JN)B)D86I zS$<$4AyVdH9@^I{t69t0j?Hrk=b!NuP*Lp5QPksRZlgc1^DT>6!YaZ!>v)=QHs^3D zC#YObr4LU~NJVovGnhj-&t1gTbfgovb2q(tl&5)t*BH(ie&QFNIMgvi`3mYK>Z!QS zB%C{|QiFOleR+|AyvhfRVL9tLySloRc3jC-TuVo8qAT~(gZp@$H(10HekGh7 z(#buHv- ze8fa1*K^#G;rx}C&`vE)MXFGh+O(iGp$&U4Pw)&c^BV8)9;2AROupnwjfoB{K2bVS z=_JeK$Og8L<2acHoXNSg<`(YcZh8>f&Exoj+05Z5+B9^IC$ydUDpVNX?^x+voyL}{6nZZov^CQct?Yw_Hp>5xtzC6X# zyv{p}U=H6C+W)(A0OdG@s?^~)PNyl$SWT@)&OhAC!-VUG(7q^31v+pCFYzwnnj*A4 zW;35vY-0B&${CfYK_i;co*U@TKt5v*C7UXToJn(@WFWKnmh#Q)J6-6_XMDlWEGN%d zjxCO*0X=w_5lrJZLW8jc6*!0Hbf7DfnMJ8{q!Cwe8zcCX^`xCE9XOO4)Z;R)kS zC=>XNg3Yz1xPa$)l@)BJ@_Cj)5ANsk7Sfz>eHPkrlbFn}WSp=3)0{i$!JE9#_bg_g z3$*b$nKQYSZVcvK7O<4PFSHMwMl){XZiet4Kd^+oFESmc(v;5J#k-7TDQhTuvAp42 zE~Xa`Gnz@PWFr+Waoo|8D|np#e98=dBhRI#;Yixki2=OASA0u}mg)~q;tXz~E3fbt zb6G&qR`!9DID;;9XBZ#x6U#ZcwQ|UXw4o1AGMSlVlDCa*q8?Xp9sL=^G`=ElTWv3D zQl)5x~M8g(v?RDeIVglX%^q{JG^AYDdPT?F{aUC!67Q>i8=tKU7<*a56(WCN;&V>Hu$<%wyaZKoIp1_xU&0KzB zIqTTKX7W7lc%cBr*@M#TOF61@6g_#EVSL1wd_(Ui^CQx^Fr6P+&#!DIUw>tiZ)xzX^2JLGVFc4C z{haGls!*GU7(nQof1gkIjGtIc?E#KoLcjf4wBd4wF^Nz4nt3c^6&cSf|CFLR?a1|l zw5A|sIh5n5Ph-yF62iTK&h+LX`tU5ju$Ja8DnmTQ+kC~>{JTB^A5v!pK*N3mn>u@r@!o2=Q|d0(W|zV2YG}UEFj#|IG4+~lJ;EB zFh&vXcVx21VAoz8N)@V6lUmfJ0nKQ`RTLj0?|6ond6VIUdnajcs(aXzz1WYp8O>Pc z@(pX)K+(4>j{~VrZR${$8GOeNY$lUE-qy~eGT|OgeVTDD&AFJ>q`xDdDZ_r$pbm{_ zN=w51ot`{Jf1YI!b%&~xX~bn*!5!SiQ}kmn;oi`f{K9&|eWKMAc+bAGFXbrDVH{3v zj^a4Z=0Y-tIVTeCF->6sE7?HWaG#ThycA_`4x%Q<@;ysv@quzm2W}+XuNuQw{Kzsk z@++ByudNlN3dhiiE-YgcMMp|&8gdT3MyaEDmBB1zDOEp`woDkU{^K*gV=*gONxm`C zgi6%r1Wus^S8_Gia5J}X8@JPqhj@%n_?)bJZ)2S&c!!~UO5t&i53Zy${dtWK8O=8= zWZ&`fgNtcHM{ed;x)JW_g}(nE_=!cVVm0e1Izhd`>kMVzkL5GrKH%{*;cPCYHMh~5 z(i7zyy?B^#&+t{oF_EdvU?%hUi6s=Aqz+>&pYR#;`RWt-%3+_%15V})+R%|tn8PWP zZ4XnKNA=GfgG}N}x=&Ge@BtIKe5yR)cJ3!_n&Xq**`GtG&c{q=HEEyAU-qXl=hBhe zd5Iys!wABC(r;MKYSxf3UAdtcWhu|mGnH>{q6_(FDa$ne((>6v`d8W))MOH0vCnMt zb10Shn6H@2QcBEmEkG#_;3Y=zA>&xa8a9#fwR(VaXwIdy;tFn|2M_ZKuQP?)=W09B zodLFOj-ehWa54=zoo1ZFg69ayeIVJ-2f=&+q~-F_e*vXA(15 z!dgnL)b~e-)wqT`xtn`)&DoW2wGIp7S1)IeD%0Cd7eU z&pq^{7f&*PR~W`egjkVH?6%%<#T8u3l^b1`Fqn53$|R<;Z@$EW?EWw3^#E*U3i$Md5d=$%h#-8 zGlku&FUnp#PCrUzq(ujD7)Ko@Hpf@WgIRpZLYA|6t4yy&tEWY~Z&l1|ahh`;hl;PM zK!~%+u+^pi0i`T6_D?MT-(~(Y`Sx$R{+q7<9s~a#1OFZa{~iPX9s~a#1OFZa{~iPX z9s~a#1OFZaIe!d2~!6x&}vBp1?(L4=t2 zxqL&2g|AMCfp1BPL-aq>iJJ*A?@bA@?p=su+UFR~I8+}laZG!)3ikOh^N{y&eL}>s z?ID)E4co`8&#tJChY*{-8zm`CTiO$1&L^^nrG%LC$%L5mw!Fm$gxK;*gxK=7#IfX$ zRCBM05F>sbw{r&}2K-Gz4ER!xs-bU;5bJ#h&oYn@^F5Ui>%ERR#yiAzpG}DAzK1xL zdr2MlF*x{0Y0J?ZOB|cs&Tt2M^DrSsdms~;Oo-7g!!aCBh|TU!h|L~Mh|OM4h|S)Q z5S!hc5S!hV5S#r2AtrkdwvWBO_gH;=jAa6gSVD-g&db3ZN{FrQ#&f*LdVXb}y4FiO zuBFTIiLujD>gf+B#7vhU#7fs8#7K9gAJ6j*3kb2$H<3y86CF=1;>ZTljV3hXO@# zta6A+&P9ktu0|Y#9O92R1&!ESg>8-X9@$ax)#TwT*|mAjCknCysFpv5oH&$2P_>iOFIS3*9W= zn0K2zr(_rR7P)|nn8UaHO8OnPjglNrRj%h29^+}^*u&Qhzrkdtv4XXnaHo4x+(Ktc zb`?XxF&sx6GZ@DR#<78MEMOc17{~r?AM+Q-_{Fh(aV%f1yW~G{?B4b9s|ajadNyAxyV;+VQPmM)H+i(}^E*tqRu;^G*%IQA`$b&F%%;#juqF>DjNI|j)f z!xm!HY7%18u4C1G@~QWh*tD~}hM2VX2(f6339)D$`2L|SF=(s2t|5*=>)l8BC3`H| zG~=sSM~Fe2N{Br>fe>5vIU%Mj?NQ~O{RuH;~OxX4@U~$Y>KhwQHi20gLi1o_f-|@{{LTuMq z4t!31$794XU4sqBFvXQ*T1GLNi=THdl%L5Yj@7F4g5#P7gcz;!h-0+c8xFBq z&oSUd+s9&-a{eG~A%0*XC%%*zdv&YvIQHr>!y)EsJaMd5o|i3y&E$PW9KoxO9S(g> zJB<)ybvl<3VyqUut`4Q>U}c%2oiUxfsZTWzu#4$$uk93^Sn5Og^B`k5QX@mIA$os3Uw#M2u z1Y?O~fI|GwWcL2Val=qXF`w^f|EYS3&zV7^$=X!R;wz?ortC6iigPB{OjX~JZ<;m; z$zpnL`dpii0SqF0EYB3tr!+vw+9W^f{Fv5pW^ z(S{I95#lJ~*ohD$aV#VGh>W%BAwrBqYeH;{E6JjG)vHN;ufH)T7%Z=(@ zR+2piqV^`|4MGe=L)y`SIQAiqd04f1ON>Jt+i>=8TVfgF7={mxhggLWqcDpQn~*1S zTTDV6bMTy)f)H!)0oh{>(!~{oScCA~kK+k31_u+K0dgMUIUpMd&jNXzPnphoqTE}a z4>Hno1ZMChKeLhluf02gkD@x@IR3KP4IwIoQx1XU5CURIP-sAooIrpi5F!x-!jfzt zl4N0%C@57F4~kMy4lhb*>w!f91uGS51GZ{yt)NnmR!gh2^{Ay5i%2E?{bzPDgrp7H zPqiOr^7-b?{bt_G&d!^C^Il7uZfJ$0&8hPPszbz0Jp&!l6RJ;S8LIIRRJTYAsD6=c zP#q)Vpn68$hUyx*26tc$RPV^gIER)KS|JA$(TVyBxTtOg_o5oA z&*dVF!4%9#CDM9wY@xbd9>#9Gh}>QgW-?U&%lkNnS`6&Xe&P{4ihbCRgLoH%<08y3 z^z29aq8O!Eg}bpC+wlVS;Y}Pwj|zYi_fI7EA8g_uiUrrncqDe-Y-%0n3uF_0-HedAx?m zTc@?jU%zM1@`k2$oqlX?W7BxzW7U~Ta8h?xEagUMC08x;wtI$_ocFq-a>nw!1%Wuj zgM~v{)FfN~Pb@k|gV9>lZq(PsU_5ivH85v~I&%(+HiM(hh<>yr+m@DOc}fprie%Bg z#`|AcM-=N)LTPitof0S9uTY8H(D047J#KA7c={`$VI8o#^D}r-x03n1>_uZ~aB6C4 z@dMUUYB-rL+4_GXl7`dRj?{f(E*{s?PX(Ut2v@YJO&*_dSyoE!IB$Mtc7ASVUPi9> z;)Dbg06+)eY)=M`~!eu>ULM76c8 zL+fZoi6{FO+sn;bsddw?bK3qotg_Crrp)6$u^xUjV~sl3W{1|NHTyX8icags`Ah8N zsf!-xi@|MO%}$=C#5{0Q^+!i@=EQEgJ=$E*XWQ$fy4lVIC6T7z1tr@C=*->)H(rAW zhoG-B&8*KkKd0!M#PG9#Rd@O@Lal2IVGN;;;8}$82+t;5M0gJ2Qogk>elJ#%xyct{jJr!Z~$1MM3cfEe4 zy|ziAE=LM=NmA%^P6{|F;G}?)0!|7zDd41llLAf(I4R(yfRh4F3Md5{%l|8%>e~Op z{&n%4V^`ft{=fgx&FPHu)EhUGjHmMR$~!9$IuFXDFMyr}=ox|X&l{j;0UOZ@TX8OS zKzaTeC{O3<)!s3LF+yMJrg*Nx_N!glj|?5sPqNBndLkUF85WI1j@;d`|SMh zOD-$aLpkM#uZKcCGE$h>F4~Hp-bTZ&Y?$_~;pYlxGgVup9KH51ucWfnZ>?L)X#d0c za4-EDHyB!CL}*z3dj3%`Av3*T^re~UC-yLfvDvtW_S**W@F)>OcxaSJTW=X=lu?V6 z7c!*r3G}7X)|*<1y^#6!r0p&-P|5P4T`E}*hm5bHy+WM`&Ig~e59$oow<;C?|yz=$rU2dH>PCv?Vn=mO=GyTOa@=z*T-h4axHeGrGf=!XlyPut{dRalR@29SV6 z48%pa7?iuQ^4H%WOu`Th#U&Vq;ZVMNB$A;Vb}G`K=NlOqh0z#;OpL`ij7JufBhSGE zOhhgwArF^gGE{!=GEBi#T#jj&ju|MxO!zPhg(!j_#h8sbD8Ut&i&B)K90AP3d<0Q} zN>t%WT!jT#h^ui87D4&{YjGVG<9ghHCAbkc;bz=|rT7+>;a1#+<@h#MU?pzH9ax3c zScA2=6L;Zm+=F|u4&T9gRAU3ai|^t4xDWT^0X&F}cnCkhCOnKsuo+vh6_4UEY{Pau zjvwL)?7)xkBz9sKevGH^6VzZg_TXv!6hFf=coxs$=Xf5!z%TIveuWpY7yIxMUdAif zk6+_eyoT5D27ZIz;!V7T-{Am$k3ZmTyn}=IBmRUx<6XRm_wfP#f)DXm9Kzr55&n+D z_!$4d5qyH9_!P(RPke^ssD&OzQTWkNh|xsC4G*HgE7T?$ygtn{!rEG1jke0~@anVS zb!S6yUK0ymQ8v7uY}%kLc&*s*+ORnnyf$n)g4c!(uLfJs33(OR@EWk;RbS%;uk4y0 z=!st7)my{swWbf^ptyN$*6_+KWiz;TVCDNJa`$k%n|+U=&6}<&rW%abhzLm404gUnA3wTPATwDE3S@e{7TJY`3>Uj6Z z?oOGZff0RK;MpbignUw81prkru#l^_iq7gdG_~u*{zoyh2ik(BE?3>!K29FKxfH94 zHR{-B5__?=O&X&&kpkBDO=Ihg`vU1dR|yttuhDbLo}b?KBoV)xRfUqjN&8<>Cw^)M zU=PdqF3sV4_=?7Mv(fRbiC-z%EVK=c&RB0kI3_z*KgYh3`w4v(OY6<~?+4p+_J#Mo zvEv{9+=ausYt%JC*9LLAGcN`7QE-m^nRnd7dmO>hkBqUepY^}HJ8*8)E1#SmD6A^; mmseVO!mLRuv&<;#Vy^!9@bvg3b9l&O^Xpz|oc^z43j7PU4M+0; diff --git a/docs/wxQt.html b/docs/wxQt.html deleted file mode 100644 index 87f7013694..0000000000 --- a/docs/wxQt.html +++ /dev/null @@ -1,70 +0,0 @@ - $Id$ -
-

Proposal for a port of wxWindows to Qt - wxQt

-

- Following the recent discussions - and flamewars about KDE vs Gnome, we got worried that we'll see a - repetition of the same damaging infighting from which Unix has - suffered before. Competition is a good thing, but the current - situation leaves application developers with a difficult decision to - make: Write for KDE, using qt/harmony or write for Gnome, using GTK? - Whatever happens to these projects, we will end up with a lot of - duplicated efforts and a mix of applications written for either of the - two environments. The result will not be the consistent look and feel - that both projects aim for. -

- - The people on the wxWindows developers team thought that we might have - a solution for this problem, if we can get some outside help to get it - done. Let us explain: wxWindows is a cross-platform development - toolkit, a library of C++ classes which provide GUI concepts as well - as other cross-platform issues such as container classes, debug - features or configuration management. It has been around since 1992 - and started by supporting Motif, XView and MS-Windows, with a direct - X11/Xt port added later. Last year, a major rewrite was started and we - now have a much advanced library, available for MS Windows, with a - Motif port under construction. Later last year, Robert Roebling set - out on a one-man project to build wxGTK, a gtk-based implementation of - wxWindows which in less than a year has become sufficiently stable to - use it as the main development platform of rather large - applications. The wxWindows license is a variant of the LGPL, - which should meet no objections from the free software community. In - fact, this has been an open source project long before the term became - commonly used. -

- - Our idea is, that if this is good enough to work across different - operating systems (a MacOS port is under construction, too), it could - easily bridge the gap between KDE and Gnome. The quick evolution of - wxGTK has shown that a new port based on an existing widget set or - toolkit can easily be created by a small team within a few - months. Therefore, we would like to start a project for a Qt/Harmony - based wxWindow library, wxQt. It would then be possible for - application developers to write the same source and compile it either - for KDE, Gnome or even any of the other supported systems. -

- - But for this we need help. The core developers are all pretty busy on - the existing ports, but we could provide significant help and support - for any such effort. A wxQt port could also recycle lots of existing - code from the other ports. - - Please, join us in this effort and, if you feel that you could - contribute, join the wxWindows developers mailing list for further - discussions. Just send a mail containing "subscribe" to - wxwin-developers-request@wx.dent.med.uni-muenchen.de -

- You can find some more information about wxWindows at the following places: -

-

-


- Karsten Ballueder Ballueder@usa.net http://Ballueder.home.ml.org/ diff --git a/include/.cvsignore b/include/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/include/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/include/Makefile.am b/include/Makefile.am deleted file mode 100644 index 53eefcf67d..0000000000 --- a/include/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUBDIRS = wx diff --git a/include/wx/.cvsignore b/include/wx/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/include/wx/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/include/wx/Makefile.am b/include/wx/Makefile.am deleted file mode 100644 index 51ff5cf0b6..0000000000 --- a/include/wx/Makefile.am +++ /dev/null @@ -1,188 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUBDIRS = generic @TOOLKIT_DIR@ @INCLUDE_SUBDIRS@ - -wx_includedir = ${includedir}/wx -wx_include_HEADERS = \ -\ - arrimpl.cpp \ - listimpl.cpp \ -\ - accel.h \ - app.h \ - bitmap.h \ - bmpbuttn.h \ - brush.h \ - buffer.h \ - button.h \ - caret.h \ - checkbox.h \ - checklst.h \ - choicdlg.h \ - choice.h \ - clipbrd.h \ - cmndata.h \ - colordlg.h \ - colour.h \ - combobox.h \ - confbase.h \ - config.h \ - control.h \ - cursor.h \ - dataobj.h \ - date.h \ - datstrm.h \ - db.h \ - dbtable.h \ - dc.h \ - dcclient.h \ - dcmemory.h \ - dcprint.h \ - dcps.h \ - dcscreen.h \ - dde.h \ - debug.h \ - defs.h \ - dialog.h \ - dirdlg.h \ - dnd.h \ - docmdi.h \ - docview.h \ - dragimag.h \ - dynarray.h \ - dynlib.h \ - event.h \ - expr.h \ - file.h \ - fileconf.h \ - filedlg.h \ - filefn.h \ - font.h \ - fontdlg.h \ - frame.h \ - gauge.h \ - gdicmn.h \ - gdiobj.h \ - grid.h \ - hash.h \ - help.h \ - helpbase.h \ - helphtml.h \ - helpwin.h \ - helpxlp.h \ - icon.h \ - image.h \ - imaggif.h \ - imaglist.h \ - intl.h \ - ioswrap.h \ - ipcbase.h \ - joystick.h \ - layout.h \ - laywin.h \ - list.h \ - listbox.h \ - listctrl.h \ - log.h \ - longlong.h \ - matrix.h \ - mdi.h \ - memory.h \ - menu.h \ - menuitem.h \ - metafile.h \ - mimetype.h \ - minifram.h \ - module.h \ - msgdlg.h \ - mstream.h \ - notebook.h \ - object.h \ - objstrm.h \ - odbc.h \ - ownerdrw.h \ - palette.h \ - panel.h \ - paper.h \ - pen.h \ - pnghand.h \ - print.h \ - printdlg.h \ - prntbase.h \ - process.h \ - progdlg.h \ - prop.h \ - propform.h \ - proplist.h \ - radiobox.h \ - radiobut.h \ - region.h \ - resource.h \ - sashwin.h \ - sckaddr.h \ - sckint.h \ - sckipc.h \ - sckstrm.h \ - scrolbar.h \ - scrolwin.h \ - serbase.h \ - settings.h \ - setup.h \ - slider.h \ - socket.h \ - spinbutt.h \ - splitter.h \ - statbmp.h \ - statbox.h \ - statline.h \ - stattext.h \ - statusbr.h \ - stream.h \ - string.h \ - tab.h \ - tabctrl.h \ - taskbar.h \ - tbar95.h \ - tbarbase.h \ - tbarmsw.h \ - tbarsmpl.h \ - textctrl.h \ - textdlg.h \ - textfile.h \ - thread.h \ - time.h \ - timer.h \ - tokenzr.h \ - toolbar.h \ - tooltip.h \ - treectrl.h \ - types.h \ - url.h \ - utils.h \ - valgen.h \ - validate.h \ - valtext.h \ - variant.h \ - version.h \ - wave.h \ - wfstream.h \ - window.h \ - wx.h \ - wx_cw.h \ - wx_cw_cm.h \ - wx_cw_d.h \ - wxchar.h \ - wxexpr.h \ - wxprec.h \ - xpmhand.h \ - zstream.h - -# setup.h is installed in another directory because several versions of wxwin -# should be able to coexist on the same machine -portheadersdir = ${datadir}/@PACKAGE@/include/wx/@TOOLKIT_DIR@ -portheaders_headers = setup.h - diff --git a/include/wx/accel.h b/include/wx/accel.h deleted file mode 100644 index a36d4a0a44..0000000000 --- a/include/wx/accel.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_ACCEL_H_BASE_ -#define _WX_ACCEL_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/accel.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/accel.h" -#elif defined(__WXGTK__) -#include "wx/gtk/accel.h" -#elif defined(__WXQT__) -#include "wx/qt/accel.h" -#elif defined(__WXMAC__) -#include "wx/mac/accel.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/accel.h" -#endif - -#endif - // _WX_ACCEL_H_BASE_ diff --git a/include/wx/app.h b/include/wx/app.h deleted file mode 100644 index 64b479d1f0..0000000000 --- a/include/wx/app.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp inclusion -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_BASE_ -#define _WX_APP_H_BASE_ - -#ifdef __WXMSW__ -class WXDLLEXPORT wxApp; -typedef wxApp* (*wxAppInitializerFunction) (void); -#endif - -#include "wx/object.h" - -#ifndef __WXMSW__ -typedef wxObject* (*wxAppInitializerFunction) (void); // returning wxApp* won't work with gcc -#endif - -#if defined(__WXMSW__) -#include "wx/msw/app.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/app.h" -#elif defined(__WXQT__) -#include "wx/qt/app.h" -#elif defined(__WXGTK__) -#include "wx/gtk/app.h" -#elif defined(__WXMAC__) -#include "wx/mac/app.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/app.h" -#endif - -// Having a global instance of this class allows -// wxApp to be aware of the app creator function. -// wxApp can then call this function to create a new -// app object. Convoluted, but necessary. - -class WXDLLEXPORT wxAppInitializer -{ -public: - wxAppInitializer(wxAppInitializerFunction fn) - { - wxApp::SetInitializerFunction(fn); - } -}; - -// Here's a macro you can use if your compiler -// really, really wants main() to be in your main program -// (e.g. hello.cpp). -// Now IMPLEMENT_APP should add this code if required. - -#if defined(__AIX__) || defined(__HPUX__) -#define IMPLEMENT_WXWIN_MAIN \ -extern int wxEntry( int argc, char *argv[] ); \ -int main(int argc, char *argv[]) { return wxEntry(argc, argv); } - -#elif defined(__WXMSW__) && defined(WXUSINGDLL) - -// NT defines APIENTRY, 3.x not -#if !defined(WXAPIENTRY) -# ifdef __WATCOMC__ -# define WXAPIENTRY PASCAL -# else -# define WXAPIENTRY FAR PASCAL -# endif -#endif - -#define IMPLEMENT_WXWIN_MAIN \ -int WXAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\ - LPSTR m_lpCmdLine, int nCmdShow )\ -{\ - return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance,\ - m_lpCmdLine, nCmdShow);\ -} - -#else -#define IMPLEMENT_WXWIN_MAIN -#endif - -#define IMPLEMENT_APP(appname) \ - wxApp *wxCreateApp(void) { return new appname; } \ - wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \ - appname& wxGetApp(void) { return *(appname *)wxTheApp; } \ - IMPLEMENT_WXWIN_MAIN - -#define DECLARE_APP(appname) \ - extern appname& wxGetApp(void) ; - - -#endif - // _WX_APP_H_BASE_ diff --git a/include/wx/arrimpl.cpp b/include/wx/arrimpl.cpp deleted file mode 100644 index e7bca61b23..0000000000 --- a/include/wx/arrimpl.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listimpl.cpp -// Purpose: helper file for implementation of dynamic lists -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.10.97 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -/***************************************************************************** - * Purpose: implements methods of "template" class declared in * - * DECLARE_OBJARRAY macro and which couldn't be implemented inline * - * (because they need the full definition of type T in scope) * - * * - * Usage: 1) #include dynarray.h * - * 2) WX_DECLARE_OBJARRAY * - * 3) #include arrimpl.cpp * - * 4) WX_DEFINE_OBJARRAY * - *****************************************************************************/ - -// macro implements remaining (not inline) methods of template list -// (it's private to this file) -#undef _DEFINE_OBJARRAY -#define _DEFINE_OBJARRAY(T, name) \ -name::~name() \ -{ \ - Empty(); \ -} \ - \ -void name::DoCopy(const name& src) \ -{ \ - for ( size_t ui = 0; ui < src.Count(); ui++ ) \ - Add(src[ui]); \ -} \ - \ -name& name::operator=(const name& src) \ -{ \ - Empty(); \ - DoCopy(src); \ - \ - return *this; \ -} \ - \ -name::name(const name& src) \ -{ \ - DoCopy(src); \ -} \ - \ -void name::Empty() \ -{ \ - for ( size_t ui = 0; ui < Count(); ui++ ) \ - delete (T*)wxBaseArray::Item(ui); \ - \ - wxBaseArray::Clear(); \ -} \ - \ -void name::Remove(size_t uiIndex) \ -{ \ - wxCHECK_RET( uiIndex < Count(), _T("bad index in " #name "::Remove()") ); \ - \ - delete (T*)wxBaseArray::Item(uiIndex); \ - \ - wxBaseArray::Remove(uiIndex); \ -} \ - \ -void name::Add(const T& item) \ -{ \ - T* pItem = new T(item); \ - if ( pItem != NULL ) \ - Add(pItem); \ -} \ - \ -void name::Insert(const T& item, size_t uiIndex) \ -{ \ - T* pItem = new T(item); \ - if ( pItem != NULL ) \ - Insert(pItem, uiIndex); \ -} \ - \ -int name::Index(const T& Item, bool bFromEnd) const \ -{ \ - if ( bFromEnd ) { \ - if ( Count() > 0 ) { \ - size_t ui = Count() - 1; \ - do { \ - if ( (T*)wxBaseArray::Item(ui) == &Item ) \ - return ui; \ - ui--; \ - } \ - while ( ui != 0 ); \ - } \ - } \ - else { \ - for( size_t ui = 0; ui < Count(); ui++ ) { \ - if( (T*)wxBaseArray::Item(ui) == &Item ) \ - return ui; \ - } \ - } \ - \ - return wxNOT_FOUND; \ -} - -// redefine the macro so that now it will generate the class implementation -// old value would provoke a compile-time error if this file is not included -#undef WX_DEFINE_OBJARRAY -#define WX_DEFINE_OBJARRAY(name) _DEFINE_OBJARRAY(_L##name, name) diff --git a/include/wx/bitmap.h b/include/wx/bitmap.h deleted file mode 100644 index f031e7041a..0000000000 --- a/include/wx/bitmap.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_BITMAP_H_BASE_ -#define _WX_BITMAP_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/bitmap.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/bitmap.h" -#elif defined(__WXGTK__) -#include "wx/gtk/bitmap.h" -#elif defined(__WXQT__) -#include "wx/qt/bitmap.h" -#elif defined(__WXMAC__) -#include "wx/mac/bitmap.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/bitmap.h" -#endif - -#endif - // _WX_BITMAP_H_BASE_ diff --git a/include/wx/bmpbuttn.h b/include/wx/bmpbuttn.h deleted file mode 100644 index 2ff65ebbb2..0000000000 --- a/include/wx/bmpbuttn.h +++ /dev/null @@ -1,18 +0,0 @@ -#ifndef _WX_BMPBUTTON_H_BASE_ -#define _WX_BMPBUTTON_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/bmpbuttn.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/bmpbuttn.h" -#elif defined(__WXGTK__) -#include "wx/gtk/bmpbuttn.h" -#elif defined(__WXQT__) -#include "wx/qt/bmpbuttn.h" -#elif defined(__WXMAC__) -#include "wx/mac/bmpbuttn.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/bmpbuttn.h" -#endif - -#endif diff --git a/include/wx/brush.h b/include/wx/brush.h deleted file mode 100644 index e5d99b39a1..0000000000 --- a/include/wx/brush.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_BRUSH_H_BASE_ -#define _WX_BRUSH_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/brush.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/brush.h" -#elif defined(__WXGTK__) -#include "wx/gtk/brush.h" -#elif defined(__WXQT__) -#include "wx/qt/brush.h" -#elif defined(__WXMAC__) -#include "wx/mac/brush.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/brush.h" -#endif - -#endif - // _WX_BRUSH_H_BASE_ diff --git a/include/wx/buffer.h b/include/wx/buffer.h deleted file mode 100644 index afc0776994..0000000000 --- a/include/wx/buffer.h +++ /dev/null @@ -1,127 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: buffer.h -// Purpose: auto buffer classes: buffers which automatically free memory -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.04.99 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// these classes are for private use only for now, they're not documented - -#ifndef _WX_BUFFER_H -#define _WX_BUFFER_H - -#include "wx/wxchar.h" -#include // strdup - -// ---------------------------------------------------------------------------- -// Special classes for (wide) character strings: they use malloc/free instead -// of new/delete -// ---------------------------------------------------------------------------- - -class wxCharBuffer -{ -public: - wxCharBuffer(const char *str) - { - wxASSERT_MSG( str, _T("NULL string in wxCharBuffer") ); - - m_str = str ? strdup(str) : (char *)NULL; - } - wxCharBuffer(size_t len) - { - m_str = (char *)malloc(len+1); - m_str[len] = '\0'; - } - // no need to check for NULL, free() does it - ~wxCharBuffer() { free(m_str); } - - wxCharBuffer(const wxCharBuffer& src) - { - m_str = src.m_str; - // no reference count yet... - ((wxCharBuffer*)&src)->m_str = (char *)NULL; - } - wxCharBuffer& operator=(const wxCharBuffer& src) - { - m_str = src.m_str; - // no reference count yet... - ((wxCharBuffer*)&src)->m_str = (char *)NULL; - return *this; - } - - operator const char *() const { return m_str; } - char operator[](size_t n) const { return m_str[n]; } - -private: - char *m_str; -}; - -#if wxUSE_WCHAR_T -class wxWCharBuffer -{ -public: - wxWCharBuffer(const wchar_t *wcs) - { - wxASSERT_MSG( wcs, _T("NULL string in wxWCharBuffer") ); - - if (wcs) { - size_t siz = (wcslen(wcs)+1)*sizeof(wchar_t); - m_wcs = (wchar_t *)malloc(siz); - memcpy(m_wcs, wcs, siz); - } - else m_wcs = (wchar_t *)NULL; - } - wxWCharBuffer(size_t len) - { - m_wcs = (wchar_t *)malloc((len+1)*sizeof(wchar_t)); - m_wcs[len] = L'\0'; - } - - // no need to check for NULL, free() does it - ~wxWCharBuffer() { free(m_wcs); } - - wxWCharBuffer(const wxWCharBuffer& src) - { - m_wcs = src.m_wcs; - // no reference count yet... - ((wxWCharBuffer*)&src)->m_wcs = (wchar_t *)NULL; - } - wxWCharBuffer& operator=(const wxWCharBuffer& src) - { - m_wcs = src.m_wcs; - // no reference count yet... - ((wxWCharBuffer*)&src)->m_wcs = (wchar_t *)NULL; - return *this; - } - - operator const wchar_t *() const { return m_wcs; } - wchar_t operator[](size_t n) const { return m_wcs[n]; } - -private: - wchar_t *m_wcs; -}; -#endif - -#if wxUSE_UNICODE -#define wxMB2WXbuf wxWCharBuffer -#define wxWX2MBbuf wxCharBuffer -#define wxWC2WXbuf wxChar* -#define wxWX2WCbuf wxChar* -#else -#define wxMB2WXbuf wxChar* -#define wxWX2MBbuf wxChar* -#define wxWC2WXbuf wxCharBuffer -#define wxWX2WCbuf wxWCharBuffer -#endif - -// ---------------------------------------------------------------------------- -// template class for any kind of data -// ---------------------------------------------------------------------------- - -// TODO - -#endif // _WX_BUFFER_H diff --git a/include/wx/button.h b/include/wx/button.h deleted file mode 100644 index 454a0a58f6..0000000000 --- a/include/wx/button.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_BUTTON_H_BASE_ -#define _WX_BUTTON_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/button.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/button.h" -#elif defined(__WXGTK__) -#include "wx/gtk/button.h" -#elif defined(__WXQT__) -#include "wx/qt/button.h" -#elif defined(__WXMAC__) -#include "wx/mac/button.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/button.h" -#endif - -#endif - // _WX_BUTTON_H_BASE_ diff --git a/include/wx/caret.h b/include/wx/caret.h deleted file mode 100644 index e88f6c96ca..0000000000 --- a/include/wx/caret.h +++ /dev/null @@ -1,186 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: caret.h -// Purpose: wxCaretBase class - the interface of wxCaret -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.05.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CARET_H_BASE_ -#define _WX_CARET_H_BASE_ - -// --------------------------------------------------------------------------- -// forward declarations -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxWindowBase; - -// ---------------------------------------------------------------------------- -// headers we have to include -// ---------------------------------------------------------------------------- - -#include "wx/gdicmn.h" // for wxPoint, wxSize - -// ---------------------------------------------------------------------------- -// A caret is a blinking cursor showing the position where the typed text will -// appear. It can be either a solid block or a custom bitmap (TODO) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxCaretBase -{ -public: - // ctors - // ----- - // default - use Create - wxCaretBase() { Init(); } - // create the caret of given (in pixels) width and height and associate - // with the given window - wxCaretBase(wxWindowBase *window, int width, int height) - { - Init(); - - (void)Create(window, width, height); - } - // same as above - wxCaretBase(wxWindowBase *window, const wxSize& size) - { - Init(); - - (void)Create(window, size); - } - - // Create() functions - same as ctor but returns the success code - // -------------------------------------------------------------- - - // same as ctor - bool Create(wxWindowBase *window, int width, int height) - { return DoCreate(window, width, height); } - // same as ctor - bool Create(wxWindowBase *window, const wxSize& size) - { return DoCreate(window, size.x, size.y); } - - // accessors - // --------- - - // is the caret valid? - bool IsOk() const { return m_width != 0 && m_height != 0; } - - // is the caret currently shown? - bool IsVisible() const { return m_countVisible > 0; } - - // get the caret position - void GetPosition(int *x, int *y) const - { - if ( x ) *x = m_x; - if ( y ) *y = m_y; - } - wxPoint GetPosition() const { return wxPoint(m_x, m_y); } - - // get the caret size - void GetSize(int *width, int *height) const - { - if ( width ) *width = m_width; - if ( height ) *height = m_height; - } - wxSize GetSize() const { return wxSize(m_width, m_height); } - - // get the window we're associated with - wxWindow *GetWindow() const { return (wxWindow *)m_window; } - - // operations - // ---------- - - // move the caret to given position (in logical coords) - void Move(int x, int y) { m_x = x; m_y = y; DoMove(); } - void Move(const wxPoint& pt) { m_x = pt.x; m_y = pt.y; DoMove(); } - - // show/hide the caret (should be called by wxWindow when needed): - // Show() must be called as many times as Hide() + 1 to make the caret - // visible - virtual void Show(bool show = TRUE) - { - if ( show ) - { - if ( m_countVisible++ == 0 ) - DoShow(); - } - else - { - if ( --m_countVisible == 0 ) - DoHide(); - } - } - virtual void Hide() { Show(FALSE); } - - // blink time is measured in milliseconds and is the time elapsed - // between 2 inversions of the caret (blink time of the caret is common - // to all carets in the Universe, so these functions are static) - static int GetBlinkTime(); - static void SetBlinkTime(int milliseconds); - - // implementation from now on - // -------------------------- - - // these functions should be called by wxWindow when the window gets/loses - // the focus - we create/show and hide/destroy the caret here - virtual void OnSetFocus() { } - virtual void OnKillFocus() { } - -protected: - // these functions may be overriden in the derived classes, but they - // should call the base class version first - virtual bool DoCreate(wxWindowBase *window, int width, int height) - { - m_window = window; - m_width = width; - m_height = height; - - return TRUE; - } - - // pure virtuals to implement in the derived class - virtual void DoShow() = 0; - virtual void DoHide() = 0; - virtual void DoMove() = 0; - - // the common initialization - void Init() - { - m_window = (wxWindowBase *)NULL; - m_x = m_y = 0; - m_width = m_height = 0; - m_countVisible = 0; - } - - // the size of the caret - int m_width, m_height; - - // the position of the caret - int m_x, m_y; - - // the window we're associated with - wxWindowBase *m_window; - - // visibility count: the caret is visible only if it's positive - int m_countVisible; - -private: - DECLARE_NO_COPY_CLASS(wxCaretBase); -}; - -// --------------------------------------------------------------------------- -// now include the real thing -// --------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/caret.h" -#else - #include "wx/generic/caret.h" -#endif // platform - -#endif // _WX_CARET_H_BASE_ - diff --git a/include/wx/checkbox.h b/include/wx/checkbox.h deleted file mode 100644 index 47895df8cd..0000000000 --- a/include/wx/checkbox.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_CHECKBOX_H_BASE_ -#define _WX_CHECKBOX_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/checkbox.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/checkbox.h" -#elif defined(__WXGTK__) -#include "wx/gtk/checkbox.h" -#elif defined(__WXQT__) -#include "wx/qt/checkbox.h" -#elif defined(__WXMAC__) -#include "wx/mac/checkbox.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/checkbox.h" -#endif - -#endif - // _WX_CHECKBOX_H_BASE_ diff --git a/include/wx/checklst.h b/include/wx/checklst.h deleted file mode 100644 index 96f31e454f..0000000000 --- a/include/wx/checklst.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_CHECKLST_H_BASE_ -#define _WX_CHECKLST_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/checklst.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/checklst.h" -#elif defined(__WXGTK__) -#include "wx/gtk/checklst.h" -#elif defined(__WXQT__) -#include "wx/qt/checklst.h" -#elif defined(__WXMAC__) -#include "wx/mac/checklst.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/checklst.h" -#endif - -#endif - // _WX_CHECKLST_H_BASE_ diff --git a/include/wx/choicdlg.h b/include/wx/choicdlg.h deleted file mode 100644 index 52439ffd71..0000000000 --- a/include/wx/choicdlg.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_CHOICDLG_H_BASE_ -#define _WX_CHOICDLG_H_BASE_ - -#include "wx/generic/choicdgg.h" - -#endif - // _WX_CHOICDLG_H_BASE_ diff --git a/include/wx/choice.h b/include/wx/choice.h deleted file mode 100644 index 1830d779aa..0000000000 --- a/include/wx/choice.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_CHOICE_H_BASE_ -#define _WX_CHOICE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/choice.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/choice.h" -#elif defined(__WXGTK__) -#include "wx/gtk/choice.h" -#elif defined(__WXQT__) -#include "wx/qt/choice.h" -#elif defined(__WXMAC__) -#include "wx/mac/choice.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/choice.h" -#endif - -#endif - // _WX_CHOICE_H_BASE_ diff --git a/include/wx/clipbrd.h b/include/wx/clipbrd.h deleted file mode 100644 index c37f46116f..0000000000 --- a/include/wx/clipbrd.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_CLIPBRD_H_BASE_ -#define _WX_CLIPBRD_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/clipbrd.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/clipbrd.h" -#elif defined(__WXGTK__) -#include "wx/gtk/clipbrd.h" -#elif defined(__WXQT__) -#include "wx/gtk/clipbrd.h" -#elif defined(__WXMAC__) -#include "wx/mac/clipbrd.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/clipbrd.h" -#endif - -#endif - // _WX_CLIPBRD_H_BASE_ diff --git a/include/wx/cmndata.h b/include/wx/cmndata.h deleted file mode 100644 index 2b298bd016..0000000000 --- a/include/wx/cmndata.h +++ /dev/null @@ -1,386 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cmndata.h -// Purpose: Common GDI data classes -// Author: Julian Smart and others -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CMNDATA_H_BASE_ -#define _WX_CMNDATA_H_BASE_ - -#ifdef __GNUG__ -#pragma interface "cmndata.h" -#endif - -#include "wx/font.h" -#include "wx/colour.h" - -#if (defined(__WXMOTIF__) || defined(__WXGTK__)) && wxUSE_POSTSCRIPT -class WXDLLEXPORT wxPrintSetupData; -#endif - -class WXDLLEXPORT wxColourData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxColourData) -public: - wxColourData(); - wxColourData(const wxColourData& data); - ~wxColourData(); - - void SetChooseFull(bool flag) { chooseFull = flag; } - bool GetChooseFull() const { return chooseFull; } - void SetColour(wxColour& colour) { dataColour = colour; } - wxColour &GetColour() { return dataColour; } - - // Array of 16 custom colours - void SetCustomColour(int i, wxColour& colour); - wxColour GetCustomColour(int i); - - void operator=(const wxColourData& data); - -public: - wxColour dataColour; - wxColour custColours[16]; - bool chooseFull; -}; - -class WXDLLEXPORT wxFontData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFontData) -public: - wxFontData(); - wxFontData(const wxFontData& fontData); - ~wxFontData(); - - void SetAllowSymbols(bool flag) { allowSymbols = flag; } - bool GetAllowSymbols() const { return allowSymbols; } - - void SetColour(const wxColour& colour) { fontColour = colour; } - wxColour &GetColour() { return fontColour; } - - void SetShowHelp(bool flag) { showHelp = flag; } - bool GetShowHelp() const { return showHelp; } - - void EnableEffects(bool flag) { enableEffects = flag; } - bool GetEnableEffects() const { return enableEffects; } - - void SetInitialFont(const wxFont& font) { initialFont = font; } - wxFont GetInitialFont() const { return initialFont; } - - void SetChosenFont(const wxFont& font) { chosenFont = font; } - wxFont GetChosenFont() const { return chosenFont; } - - void SetRange(int minRange, int maxRange) { minSize = minRange; maxSize = maxRange; } - - void operator=(const wxFontData& data); - -public: - wxColour fontColour; - bool showHelp; - bool allowSymbols; - bool enableEffects; - wxFont initialFont; - wxFont chosenFont; - int minSize; - int maxSize; -}; - -#if wxUSE_PRINTING_ARCHITECTURE -/* - * wxPrintData - * Encapsulates printer information (not printer dialog information) - */ - -class WXDLLEXPORT wxPrintData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPrintData) - - wxPrintData(); - wxPrintData(const wxPrintData& printData); - ~wxPrintData(); - - int GetNoCopies() const { return m_printNoCopies; }; - bool GetCollate() const { return m_printCollate; }; - int GetOrientation() const { return m_printOrientation; }; - - const wxString& GetPrinterName() const { return m_printerName; } - bool GetColour() const { return m_colour; } - wxDuplexMode GetDuplex() const { return m_duplexMode; } - wxPaperSize GetPaperId() const { return m_paperId; } - const wxSize& GetPaperSize() const { return m_paperSize; } // Not used yet: confusable with paper size - // in wxPageSetupDialogData - wxPrintQuality GetQuality() const { return m_printQuality; } - - void SetNoCopies(int v) { m_printNoCopies = v; }; - void SetCollate(bool flag) { m_printCollate = flag; }; - void SetOrientation(int orient) { m_printOrientation = orient; }; - - void SetPrinterName(const wxString& name) { m_printerName = name; } - void SetColour(bool colour) { m_colour = colour; } - void SetDuplex(wxDuplexMode duplex) { m_duplexMode = duplex; } - void SetPaperId(wxPaperSize sizeId) { m_paperId = sizeId; } - void SetPaperSize(const wxSize& sz) { m_paperSize = sz; } - void SetQuality(wxPrintQuality quality) { m_printQuality = quality; } - - // PostScript-specific data - const wxString& GetPrinterCommand() const { return m_printerCommand; } - const wxString& GetPrinterOptions() const { return m_printerOptions; } - const wxString& GetPreviewCommand() const { return m_previewCommand; } - const wxString& GetFilename() const { return m_filename; } - const wxString& GetFontMetricPath() const { return m_afmPath; } - double GetPrinterScaleX() const { return m_printerScaleX; } - double GetPrinterScaleY() const { return m_printerScaleY; } - long GetPrinterTranslateX() const { return m_printerTranslateX; } - long GetPrinterTranslateY() const { return m_printerTranslateY; } - wxPrintMode GetPrintMode() const { return m_printMode; } - - void SetPrinterCommand(const wxString& command) { m_printerCommand = command; } - void SetPrinterOptions(const wxString& options) { m_printerOptions = options; } - void SetPreviewCommand(const wxString& command) { m_previewCommand = command; } - void SetFilename(const wxString& filename) { m_filename = filename; } - void SetFontMetricPath(const wxString& path) { m_afmPath = path; } - void SetPrinterScaleX(double x) { m_printerScaleX = x; } - void SetPrinterScaleY(double y) { m_printerScaleY = y; } - void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; } - void SetPrinterTranslateX(long x) { m_printerTranslateX = x; } - void SetPrinterTranslateY(long y) { m_printerTranslateY = y; } - void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; } - void SetPrintMode(wxPrintMode printMode) { m_printMode = printMode; } - - void operator=(const wxPrintData& data); - - // For compatibility -#if (defined(__WXMOTIF__) || defined(__WXGTK__)) && wxUSE_POSTSCRIPT - void operator=(const wxPrintSetupData& setupData); -#endif - -#if defined(__WXMSW__) - // Convert to/from the DEVMODE structure - void ConvertToNative(); - void ConvertFromNative(); - void* GetNativeData() const { return m_devMode; } - void SetNativeData(void* data) { m_devMode = data; } -#endif - -public: -#ifdef __WXMSW__ - void* m_devMode; -#endif - -private: - - int m_printNoCopies; - int m_printOrientation; - bool m_printCollate; - - // New members, 24/3/99 - wxString m_printerName; - bool m_colour; - wxDuplexMode m_duplexMode; - wxPrintQuality m_printQuality; - wxPaperSize m_paperId; - wxSize m_paperSize; - - // PostScript-specific data - wxString m_printerCommand; - wxString m_previewCommand; - wxString m_printerOptions; - wxString m_filename; - wxString m_afmPath; - double m_printerScaleX; - double m_printerScaleY; - long m_printerTranslateX; - long m_printerTranslateY; - wxPrintMode m_printMode; -}; - -/* - * wxPrintDialogData - * Encapsulates information displayed and edited in the printer dialog box. - * Contains a wxPrintData object which is filled in according to the values retrieved - * from the dialog. - */ - -class WXDLLEXPORT wxPrintDialogData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPrintDialogData) - - wxPrintDialogData(); - wxPrintDialogData(const wxPrintDialogData& dialogData); - wxPrintDialogData(const wxPrintData& printData); - ~wxPrintDialogData(); - - int GetFromPage() const { return m_printFromPage; }; - int GetToPage() const { return m_printToPage; }; - int GetMinPage() const { return m_printMinPage; }; - int GetMaxPage() const { return m_printMaxPage; }; - int GetNoCopies() const { return m_printNoCopies; }; - bool GetAllPages() const { return m_printAllPages; }; - bool GetCollate() const { return m_printCollate; }; - bool GetPrintToFile() const { return m_printToFile; }; - bool GetSetupDialog() const { return m_printSetupDialog; }; - - void SetFromPage(int v) { m_printFromPage = v; }; - void SetToPage(int v) { m_printToPage = v; }; - void SetMinPage(int v) { m_printMinPage = v; }; - void SetMaxPage(int v) { m_printMaxPage = v; }; - void SetNoCopies(int v) { m_printNoCopies = v; }; - void SetAllPages(bool flag) { m_printAllPages = flag; }; - void SetCollate(bool flag) { m_printCollate = flag; }; - void SetPrintToFile(bool flag) { m_printToFile = flag; }; - void SetSetupDialog(bool flag) { m_printSetupDialog = flag; }; - - void EnablePrintToFile(bool flag) { m_printEnablePrintToFile = flag; }; - void EnableSelection(bool flag) { m_printEnableSelection = flag; }; - void EnablePageNumbers(bool flag) { m_printEnablePageNumbers = flag; }; - void EnableHelp(bool flag) { m_printEnableHelp = flag; }; - - bool GetEnablePrintToFile() const { return m_printEnablePrintToFile; }; - bool GetEnableSelection() const { return m_printEnableSelection; }; - bool GetEnablePageNumbers() const { return m_printEnablePageNumbers; }; - bool GetEnableHelp() const { return m_printEnableHelp; }; - - wxPrintData& GetPrintData() { return m_printData; } - void SetPrintData(const wxPrintData& printData) { m_printData = printData; } - - void operator=(const wxPrintDialogData& data); - void operator=(const wxPrintData& data); // Sets internal m_printData member - -#ifdef __WXMSW__ - // Convert to/from the PRINTDLG structure - void ConvertToNative(); - void ConvertFromNative(); - void SetOwnerWindow(wxWindow* win); - void* GetNativeData() const { return m_printDlgData; } -#endif - -#ifdef __WXMSW__ - void* m_printDlgData; -#endif - -private: - - int m_printFromPage; - int m_printToPage; - int m_printMinPage; - int m_printMaxPage; - int m_printNoCopies; - bool m_printAllPages; - bool m_printCollate; - bool m_printToFile; - bool m_printEnableSelection; - bool m_printEnablePageNumbers; - bool m_printEnableHelp; - bool m_printEnablePrintToFile; - bool m_printSetupDialog; - - wxPrintData m_printData; -}; - -/* -* This is the data used (and returned) by the wxPageSetupDialog. -*/ - -// Compatibility with old name -#define wxPageSetupData wxPageSetupDialogData - -class WXDLLEXPORT wxPageSetupDialogData: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPageSetupDialogData) - -public: - wxPageSetupDialogData(); - wxPageSetupDialogData(const wxPageSetupDialogData& dialogData); - wxPageSetupDialogData(const wxPrintData& printData); - ~wxPageSetupDialogData(); - - wxSize GetPaperSize() const { return m_paperSize; }; - wxPaperSize GetPaperId() const { return m_printData.GetPaperId(); }; - wxPoint GetMinMarginTopLeft() const { return m_minMarginTopLeft; }; - wxPoint GetMinMarginBottomRight() const { return m_minMarginBottomRight; }; - wxPoint GetMarginTopLeft() const { return m_marginTopLeft; }; - wxPoint GetMarginBottomRight() const { return m_marginBottomRight; }; - - bool GetDefaultMinMargins() const { return m_defaultMinMargins; }; - bool GetEnableMargins() const { return m_enableMargins; }; - bool GetEnableOrientation() const { return m_enableOrientation; }; - bool GetEnablePaper() const { return m_enablePaper; }; - bool GetEnablePrinter() const { return m_enablePrinter; }; - bool GetDefaultInfo() const { return m_getDefaultInfo; }; - bool GetEnableHelp() const { return m_enableHelp; }; - - // If a corresponding paper type is found in the paper database, will set the m_printData - // paper size id member as well. - void SetPaperSize(const wxSize& sz); - - void SetPaperId(wxPaperSize& id) { m_printData.SetPaperId(id); }; - - // Sets the wxPrintData id, plus the paper width/height if found in the paper database. - void SetPaperSize(wxPaperSize id); - - void SetMinMarginTopLeft(const wxPoint& pt) { m_minMarginTopLeft = pt; }; - void SetMinMarginBottomRight(const wxPoint& pt) { m_minMarginBottomRight = pt; }; - void SetMarginTopLeft(const wxPoint& pt) { m_marginTopLeft = pt; }; - void SetMarginBottomRight(const wxPoint& pt) { m_marginBottomRight = pt; }; - void SetDefaultMinMargins(bool flag) { m_defaultMinMargins = flag; }; - void SetDefaultInfo(bool flag) { m_getDefaultInfo = flag; }; - - void EnableMargins(bool flag) { m_enableMargins = flag; }; - void EnableOrientation(bool flag) { m_enableOrientation = flag; }; - void EnablePaper(bool flag) { m_enablePaper = flag; }; - void EnablePrinter(bool flag) { m_enablePrinter = flag; }; - void EnableHelp(bool flag) { m_enableHelp = flag; }; - -#if defined(__WIN95__) - // Convert to/from the PAGESETUPDLG structure - void ConvertToNative(); - void ConvertFromNative(); - void SetOwnerWindow(wxWindow* win); - void* GetNativeData() const { return m_pageSetupData; } -#endif - - // Use paper size defined in this object to set the wxPrintData - // paper id - void CalculateIdFromPaperSize(); - - // Use paper id in wxPrintData to set this object's paper size - void CalculatePaperSizeFromId(); - - void operator=(const wxPageSetupData& data); - void operator=(const wxPrintData& data); - - wxPrintData& GetPrintData() { return m_printData; } - void SetPrintData(const wxPrintData& printData) { m_printData = printData; } - -#if defined(__WIN95__) - void* m_pageSetupData; -#endif - -private: - - wxSize m_paperSize; // The dimensions selected by the user (on return, same as in wxPrintData?) - wxPoint m_minMarginTopLeft; - wxPoint m_minMarginBottomRight; - wxPoint m_marginTopLeft; - wxPoint m_marginBottomRight; - - // Flags - bool m_defaultMinMargins; - bool m_enableMargins; - bool m_enableOrientation; - bool m_enablePaper; - bool m_enablePrinter; - bool m_getDefaultInfo; // Equiv. to PSD_RETURNDEFAULT - bool m_enableHelp; - - wxPrintData m_printData; -}; - -#endif // wxUSE_PRINTING_ARCHITECTURE - -#endif -// _WX_CMNDATA_H_BASE_ diff --git a/include/wx/colordlg.h b/include/wx/colordlg.h deleted file mode 100644 index a8ca97c25b..0000000000 --- a/include/wx/colordlg.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef _WX_COLORDLG_H_BASE_ -#define _WX_COLORDLG_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/colordlg.h" -#elif defined(__WXMOTIF__) -#include "wx/generic/colrdlgg.h" -#elif defined(__WXGTK__) -#include "wx/generic/colrdlgg.h" -#elif defined(__WXQT__) -#include "wx/generic/colrdlgg.h" -#elif defined(__WXMAC__) -#include "wx/generic/colrdlgg.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/colrdlgg.h" -#endif - -#ifndef __WXMSW__ -#define wxColourDialog wxGenericColourDialog -#define sm_classwxColourDialog sm_classwxColourDialog -#endif - -#endif - // _WX_COLORDLG_H_BASE_ diff --git a/include/wx/colour.h b/include/wx/colour.h deleted file mode 100644 index 3fff200431..0000000000 --- a/include/wx/colour.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _WX_COLOUR_H_BASE_ -#define _WX_COLOUR_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/colour.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/colour.h" -#elif defined(__WXGTK__) -#include "wx/gtk/colour.h" -#elif defined(__WXQT__) -#include "wx/qt/colour.h" -#elif defined(__WXMAC__) -#include "wx/mac/colour.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/colour.h" -#endif - -#define wxColor wxColour - -#endif - // _WX_COLOUR_H_BASE_ diff --git a/include/wx/combobox.h b/include/wx/combobox.h deleted file mode 100644 index 26512aa0cd..0000000000 --- a/include/wx/combobox.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_COMBOBOX_H_BASE_ -#define _WX_COMBOBOX_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/combobox.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/combobox.h" -#elif defined(__WXGTK__) -#include "wx/gtk/combobox.h" -#elif defined(__WXQT__) -#include "wx/qt/combobox.h" -#elif defined(__WXMAC__) -#include "wx/mac/combobox.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/combobox.h" -#endif - -#endif - // _WX_COMBOBOX_H_BASE_ diff --git a/include/wx/confbase.h b/include/wx/confbase.h deleted file mode 100644 index 7e6cfeacf2..0000000000 --- a/include/wx/confbase.h +++ /dev/null @@ -1,320 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: confbase.h -// Purpose: declaration of the base class of all config implementations -// (see also: fileconf.h and msw/regconf.h and iniconf.h) -// Author: Karsten Ballüder & Vadim Zeitlin -// Modified by: -// Created: 07.04.98 (adapted from appconf.h) -// RCS-ID: $Id$ -// Copyright: (c) 1997 Karsten Ballüder Ballueder@usa.net -// Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONFBASE_H_ -#define _WX_CONFBASE_H_ - -#ifdef __GNUG__ -#pragma interface "confbase.h" -#endif - -#include "wx/defs.h" - -#if wxUSE_CONFIG - -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -/// shall we be case sensitive in parsing variable names? -#ifndef wxCONFIG_CASE_SENSITIVE - #define wxCONFIG_CASE_SENSITIVE FALSE -#endif - -/// separates group and entry names (probably shouldn't be changed) -#ifndef wxCONFIG_PATH_SEPARATOR - #define wxCONFIG_PATH_SEPARATOR '/' -#endif - -/// introduces immutable entries -// (i.e. the ones which can't be changed from the local config file) -#ifndef wxCONFIG_IMMUTABLE_PREFIX - #define wxCONFIG_IMMUTABLE_PREFIX '!' -#endif - -/// should we use registry instead of configuration files under Win32? -// (i.e. whether wxConfigBase::Create() will create a wxFileConfig (if it's -// FALSE) or wxRegConfig (if it's true and we're under Win32) or wxIniConfig -// (under Win16)) -#ifndef wxCONFIG_WIN32_NATIVE - #define wxCONFIG_WIN32_NATIVE TRUE -#endif - -// Style flags for constructor style parameter -enum -{ - wxCONFIG_USE_LOCAL_FILE = 1, - wxCONFIG_USE_GLOBAL_FILE = 2, - wxCONFIG_USE_RELATIVE_PATH = 4 -}; - -// ---------------------------------------------------------------------------- -// various helper global functions -// ---------------------------------------------------------------------------- - -/* - Replace environment variables ($SOMETHING) with their values. The format is - $VARNAME or ${VARNAME} where VARNAME contains alphanumeric characters and - '_' only. '$' must be escaped ('\$') in order to be taken literally. - */ -extern wxString wxExpandEnvVars(const wxString &sz); - -/* - Split path into parts removing '..' in progress - */ -extern void wxSplitPath(wxArrayString& aParts, const wxChar *sz); - -// ---------------------------------------------------------------------------- -// abstract base class wxConfigBase which defines the interface for derived -// classes -// -// wxConfig organizes the items in a tree-like structure (modeled after the -// Unix/Dos filesystem). There are groups (directories) and keys (files). -// There is always one current group given by the current path. -// -// Keys are pairs "key_name = value" where value may be of string or integer -// (long) type (TODO doubles and other types such as wxDate coming soon). -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxConfigBase -{ -public: - // constants - // the type of an entry - enum EntryType - { - Type_Unknown, - Type_String, - Type_Boolean, - Type_Integer, // use Read(long *) - Type_Float // use Read(double *) - }; - - // static functions - // sets the config object, returns the previous pointer - static wxConfigBase *Set(wxConfigBase *pConfig); - // get the config object, creates it on demand unless DontCreateOnDemand - // was called - static wxConfigBase *Get() { if ( !ms_pConfig ) Create(); return ms_pConfig; } - // create a new config object: this function will create the "best" - // implementation of wxConfig available for the current platform, see - // comments near definition wxCONFIG_WIN32_NATIVE for details. It returns - // the created object and also sets it as ms_pConfig. - static wxConfigBase *Create(); - // should Get() try to create a new log object if the current one is NULL? - static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; } - - // ctor & virtual dtor - // ctor (can be used as default ctor too) - // - // Not all args will always be used by derived classes, but including - // them all in each class ensures compatibility. If appName is empty, - // uses wxApp name - wxConfigBase(const wxString& appName = wxEmptyString, - const wxString& vendorName = wxEmptyString, - const wxString& localFilename = wxEmptyString, - const wxString& globalFilename = wxEmptyString, - long style = 0); - - // empty but ensures that dtor of all derived classes is virtual - virtual ~wxConfigBase() { } - - // path management - // set current path: if the first character is '/', it's the absolute path, - // otherwise it's a relative path. '..' is supported. If the strPath - // doesn't exist it is created. - virtual void SetPath(const wxString& strPath) = 0; - // retrieve the current path (always as absolute path) - virtual const wxString& GetPath() const = 0; - - // enumeration: all functions here return false when there are no more items. - // you must pass the same lIndex to GetNext and GetFirst (don't modify it) - // enumerate subgroups - virtual bool GetFirstGroup(wxString& str, long& lIndex) const = 0; - virtual bool GetNextGroup (wxString& str, long& lIndex) const = 0; - // enumerate entries - virtual bool GetFirstEntry(wxString& str, long& lIndex) const = 0; - virtual bool GetNextEntry (wxString& str, long& lIndex) const = 0; - // get number of entries/subgroups in the current group, with or without - // it's subgroups - virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const = 0; - virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const = 0; - - // tests of existence - // returns TRUE if the group by this name exists - virtual bool HasGroup(const wxString& strName) const = 0; - // same as above, but for an entry - virtual bool HasEntry(const wxString& strName) const = 0; - // returns TRUE if either a group or an entry with a given name exist - bool Exists(const wxString& strName) const - { return HasGroup(strName) || HasEntry(strName); } - - // get the entry type - virtual EntryType GetEntryType(const wxString& name) const - { - // by default all entries are strings - return HasEntry(name) ? Type_String : Type_Unknown; - } - - // key access: returns TRUE if value was really read, FALSE if default used - // (and if the key is not found the default value is returned.) - // read a string from the key - virtual bool Read(const wxString& key, wxString *pStr) const = 0; - virtual bool Read(const wxString& key, wxString *pStr, const wxString& defVal) const; - - virtual wxString Read(const wxString& key, const wxString& defVal = wxEmptyString) const; - - virtual bool Read(const wxString& key, long *pl) const = 0; - virtual bool Read(const wxString& key, long *pl, long defVal) const; - - virtual long Read(const wxString& strKey, long defVal) const - { long l; Read(strKey, &l, defVal); return l; } - - // Convenience functions that are built on other forms - - // int - virtual bool Read(const wxString& key, int *pi) const; - virtual bool Read(const wxString& key, int *pi, int defVal) const; - - // double - virtual bool Read(const wxString& key, double* val) const; - virtual bool Read(const wxString& key, double* val, double defVal) const; - - // bool - virtual bool Read(const wxString& key, bool* val) const; - virtual bool Read(const wxString& key, bool* val, bool defVal) const; - - // write the value (return true on success) - virtual bool Write(const wxString& key, const wxString& value) = 0; - virtual bool Write(const wxString& key, long value) = 0; - - // Convenience functions - virtual bool Write(const wxString& key, double value); - virtual bool Write(const wxString& key, bool value); - - // permanently writes all changes - virtual bool Flush(bool bCurrentOnly = FALSE) = 0; - - // renaming, all functions return FALSE on failure (probably because the new - // name is already taken by an existing entry) - // rename an entry - virtual bool RenameEntry(const wxString& oldName, - const wxString& newName) = 0; - // rename a group - virtual bool RenameGroup(const wxString& oldName, - const wxString& newName) = 0; - - // delete entries/groups - // deletes the specified entry and the group it belongs to if - // it was the last key in it and the second parameter is true - virtual bool DeleteEntry(const wxString& key, - bool bDeleteGroupIfEmpty = TRUE) = 0; - // delete the group (with all subgroups) - virtual bool DeleteGroup(const wxString& key) = 0; - // delete the whole underlying object (disk file, registry key, ...) - // primarly for use by desinstallation routine. - virtual bool DeleteAll() = 0; - - // options - // we can automatically expand environment variables in the config entries - // (this option is on by default, you can turn it on/off at any time) - bool IsExpandingEnvVars() const { return m_bExpandEnvVars; } - void SetExpandEnvVars(bool bDoIt = TRUE) { m_bExpandEnvVars = bDoIt; } - // recording of default values - void SetRecordDefaults(bool bDoIt = TRUE) { m_bRecordDefaults = bDoIt; } - bool IsRecordingDefaults() const { return m_bRecordDefaults; } - // does expansion only if needed - wxString ExpandEnvVars(const wxString& str) const; - - // misc accessors - wxString GetAppName() const { return m_appName; } - wxString GetVendorName() const { return m_vendorName; } - - void SetStyle(long style) { m_style = style; } - long GetStyle() const { return m_style; } - -protected: - static bool IsImmutable(const wxString& key) - #ifndef __WXMAC__ - { return !key.IsEmpty() && key[0u] == wxCONFIG_IMMUTABLE_PREFIX; } - #else - { return !key.IsEmpty() && key[0ul] == wxCONFIG_IMMUTABLE_PREFIX; } - #endif - -private: - // are we doing automatic environment variable expansion? - bool m_bExpandEnvVars; - // do we record default values? - bool m_bRecordDefaults; - - // static variables - static wxConfigBase *ms_pConfig; - static bool ms_bAutoCreate; - - // Application name and organisation name - wxString m_appName; - wxString m_vendorName; - - // Style flag - long m_style; -}; - - // a handy little class which changes current path to the path of given entry - // and restores it in dtor: so if you declare a local variable of this type, - // you work in the entry directory and the path is automatically restored - // when the function returns - // Taken out of wxConfig since not all compilers can cope with nested classes. - class wxConfigPathChanger - { - public: - // ctor/dtor do path changing/restorin - wxConfigPathChanger(const wxConfigBase *pContainer, const wxString& strEntry); - ~wxConfigPathChanger(); - - // get the key name - const wxString& Name() const { return m_strName; } - - private: - wxConfigBase *m_pContainer; // object we live in - wxString m_strName, // name of entry (i.e. name only) - m_strOldPath; // saved path - bool m_bChanged; // was the path changed? - }; - - -// ---------------------------------------------------------------------------- -// the native wxConfigBase implementation -// ---------------------------------------------------------------------------- - -// under Windows we prefer to use the native implementation -#if defined(__WXMSW__) && wxCONFIG_WIN32_NATIVE - #ifdef __WIN32__ - #define wxConfig wxRegConfig - #define sm_classwxConfig sm_classwxRegConfig - #else //WIN16 - #define wxConfig wxIniConfig - #define sm_classwxConfig sm_classwxIniConfig - #endif -#else // either we're under Unix or wish to use files even under Windows - #define wxConfig wxFileConfig - #define sm_classwxConfig sm_classwxFileConfig -#endif - -#endif - - // wxUSE_CONFIG - -#endif - // _WX_CONFIG_H_ - diff --git a/include/wx/config.h b/include/wx/config.h deleted file mode 100644 index d9ffb9fa58..0000000000 --- a/include/wx/config.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _WX_CONFIG_H_BASE_ -#define _WX_CONFIG_H_BASE_ - -#include "wx/confbase.h" - -#if defined(__WXMSW__) && defined(wxCONFIG_WIN32_NATIVE) -# ifdef __WIN32__ -# include "wx/msw/regconf.h" -#else -# include "wx/msw/iniconf.h" -# endif -#else -# include "wx/fileconf.h" -#endif - -#endif - // _WX_CONFIG_H_BASE_ diff --git a/include/wx/control.h b/include/wx/control.h deleted file mode 100644 index 40bc3ab8fd..0000000000 --- a/include/wx/control.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef _WX_CONTROL_H_BASE_ -#define _WX_CONTROL_H_BASE_ - -// all classes derived from wxControl need the validators -#include "wx/validate.h" - -#if defined(__WXMSW__) -#include "wx/msw/control.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/control.h" -#elif defined(__WXGTK__) -#include "wx/gtk/control.h" -#elif defined(__WXQT__) -#include "wx/qt/control.h" -#elif defined(__WXMAC__) -#include "wx/mac/control.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/control.h" -#endif - -#endif - // _WX_CONTROL_H_BASE_ diff --git a/include/wx/cursor.h b/include/wx/cursor.h deleted file mode 100644 index 4ebe73a971..0000000000 --- a/include/wx/cursor.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_CURSOR_H_BASE_ -#define _WX_CURSOR_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/cursor.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/cursor.h" -#elif defined(__WXGTK__) -#include "wx/gtk/cursor.h" -#elif defined(__WXQT__) -#include "wx/qt/cursor.h" -#elif defined(__WXMAC__) -#include "wx/mac/cursor.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/cursor.h" -#endif - -#endif - // _WX_CURSOR_H_BASE_ diff --git a/include/wx/dataobj.h b/include/wx/dataobj.h deleted file mode 100644 index 95e4296b55..0000000000 --- a/include/wx/dataobj.h +++ /dev/null @@ -1,141 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.h -// Purpose: common data object classes -// Author: Robert Roebling, Vadim Zeitlin -// Modified by: -// Created: 26.05.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows Team -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAOBJ_H_BASE_ -#define _WX_DATAOBJ_H_BASE_ - -#if defined(__WXMSW__) -// ---------------------------------------------------------------------------- -// wxDataFormat identifies the single format of data -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataFormat -{ -public: - // the clipboard formats under Win32 are UINTs - typedef unsigned int NativeFormat; - - wxDataFormat(NativeFormat format = wxDF_INVALID) { m_format = format; } - wxDataFormat& operator=(NativeFormat format) - { m_format = format; return *this; } - - // defautl copy ctor/assignment operators ok - - // comparison (must have both versions) - bool operator==(wxDataFormatId format) const - { return m_format == (NativeFormat)format; } - bool operator!=(wxDataFormatId format) const - { return m_format != (NativeFormat)format; } - bool operator==(const wxDataFormat& format) const - { return m_format == format.m_format; } - bool operator!=(const wxDataFormat& format) const - { return m_format != format.m_format; } - - // explicit and implicit conversions to NativeFormat which is one of - // standard data types (implicit conversion is useful for preserving the - // compatibility with old code) - NativeFormat GetFormatId() const { return m_format; } - operator NativeFormat() const { return m_format; } - - // this only works with standard ids - void SetId(wxDataFormatId format) { m_format = format; } - - // string ids are used for custom types - this SetId() must be used for - // application-specific formats - wxString GetId() const; - void SetId(const wxChar *format); - -private: - // returns TRUE if the format is one of those defined in wxDataFormatId - bool IsStandard() const { return m_format > 0 && m_format < wxDF_MAX; } - - NativeFormat m_format; -}; - - #include "wx/msw/ole/dataobj.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/dataobj.h" -#elif defined(__WXGTK__) - #include "wx/gtk/dataobj.h" -#elif defined(__WXQT__) - #include "wx/qt/dnd.h" -#elif defined(__WXMAC__) - #include "wx/mac/dnd.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/dnd.h" -#endif - -// --------------------------------------------------------------------------- -// wxPrivateDataObject is a specialization of wxDataObject for app specific -// data (of some given kind, derive directly from wxDataObject if you wish to -// efficiently support multiple formats) -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxPrivateDataObject : public wxDataObject -{ -#ifdef __WXGTK__ - DECLARE_DYNAMIC_CLASS( wxPrivateDataObject ) -#endif - -public: - wxPrivateDataObject(); - virtual ~wxPrivateDataObject() { Free(); } - - // get the format object - it is used to decide whether we support the - // given output format or not - wxDataFormat& GetFormat() { return m_format; } - - // set data. will make copy of the data - void SetData( const void *data, size_t size ); - - // returns pointer to data - void *GetData() const { return m_data; } - - // get the size of the data - virtual size_t GetSize() const; - - // copy data to the given buffer - virtual void WriteData( void *dest ) const; - - // these functions are provided for wxGTK compatibility, their usage is - // deprecated - use GetFormat().SetId() instead - void SetId( const wxString& id ) { m_format.SetId(id); } - wxString GetId() const { return m_format.GetId(); } - - // implement the base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return m_format; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return m_format == format; } - virtual size_t GetDataSize() const - { return m_size; } - virtual void GetDataHere(void *dest) const - { WriteData(dest); } - - // the function which really copies the data - called by WriteData() above - // and uses GetSize() to get the size of the data - void WriteData( const void *data, void *dest ) const; - -private: - // free the data - inline void Free(); - - // the data - size_t m_size; - void *m_data; - - // the data format - wxDataFormat m_format; -}; - - -#endif - // _WX_DATAOBJ_H_BASE_ diff --git a/include/wx/date.h b/include/wx/date.h deleted file mode 100644 index 3063dd31af..0000000000 --- a/include/wx/date.h +++ /dev/null @@ -1,144 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: date.h -// Purpose: wxDate class -// Author: Julian Smart, Steve Marcus, Eric Simon, Chris Hill, -// Charles D. Price -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATE_H_ -#define _WX_DATE_H_ - -#ifdef __GNUG__ -#pragma interface "date.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" - -#if wxUSE_TIMEDATE -// These lines necessary to stop VC++ 6 being confused about namespaces -class WXDLLEXPORT wxDate; -bool WXDLLEXPORT operator<(const wxDate &dt1, const wxDate &dt2); -bool WXDLLEXPORT operator<(const wxDate &dt1, const wxDate &dt2); -bool WXDLLEXPORT operator <= (const wxDate &dt1, const wxDate &dt2); -bool WXDLLEXPORT operator > (const wxDate &dt1, const wxDate &dt2); -bool WXDLLEXPORT operator >= (const wxDate &dt1, const wxDate &dt2); -bool WXDLLEXPORT operator == (const wxDate &dt1, const wxDate &dt2); -bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2); - -enum wxdate_format_type {wxMDY, wxDAY, wxMONTH, wxFULL, wxEUROPEAN}; - -#define wxNO_CENTURY 0x02 -#define wxDATE_ABBR 0x04 - -class WXDLLEXPORT wxDate : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxDate) - -protected: - unsigned long julian; // see julDate(); days since 1/1/4713 B.C. - int month; // see NMonth() - int day; // see Day() - int year; // see NYear4() - int day_of_week; // see NDOW(); 1 = Sunday, ... 7 = Saturday - -private: - int DisplayFormat; - unsigned char DisplayOptions; - - void julian_to_mdy (); // convert julian day to mdy - void julian_to_wday (); // convert julian day to day_of_week - void mdy_to_julian (); // convert mdy to julian day - -public: - wxDate (); - wxDate (long j); - wxDate (int m, int d, int y); - wxDate (const wxString& dat); - wxDate (const wxDate &dt); - -#ifndef __SALFORDC__ - operator wxString (void); -#endif - - void operator = (const wxDate& date); - void operator = (const wxString& date); - - wxDate operator + (long i); - wxDate operator + (int i); - - wxDate operator - (long i); - wxDate operator - (int i); - - long operator - (const wxDate &dt); - - wxDate &operator += (long i); - wxDate &operator -= (long i); - - wxDate &operator ++ (); // Prefix increment - wxDate &operator ++ (int); // Postfix increment - wxDate &operator -- (); // Prefix decrement - wxDate &operator -- (int); // Postfix decrement - - friend bool WXDLLEXPORT operator < (const wxDate &dt1, const wxDate &dt2); - friend bool WXDLLEXPORT operator <= (const wxDate &dt1, const wxDate &dt2); - friend bool WXDLLEXPORT operator > (const wxDate &dt1, const wxDate &dt2); - friend bool WXDLLEXPORT operator >= (const wxDate &dt1, const wxDate &dt2); - friend bool WXDLLEXPORT operator == (const wxDate &dt1, const wxDate &dt2); - friend bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2); - - friend ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt); - - wxString FormatDate (int type=-1) const; - void SetFormat (int format); - int SetOption (int option, bool enable=TRUE); - - long GetJulianDate() const; // returns julian date - int GetDayOfYear() const; // returns relative date since Jan. 1 - bool IsLeapYear() const; // returns TRUE if leap year, FALSE if not - - // Version 4.0 Extension to Public Interface - CDP - - // These 'Set's modify the date object and actually SET it - // They all return a reference to self (*this) - - wxDate &Set(); // Sets to current system date - wxDate &Set(long lJulian); - wxDate &Set(int nMonth, int nDay, int nYear); - - wxDate &AddWeeks(int nCount = 1); // - wxDate &AddMonths(int nCount = 1); // May also pass neg# to decrement - wxDate &AddYears(int nCount = 1); // - - int GetDay() const; // Numeric Day of date object - int GetDaysInMonth(); // Number of days in month (1..31) - int GetFirstDayOfMonth() const; // First Day Of Month (1..7) - - wxString GetDayOfWeekName(); // Character Day Of Week ('Sunday'..'Saturday') - int GetDayOfWeek() const; // (1..7) - - int GetWeekOfMonth(); // Numeric Week Of Month (1..6) - int GetWeekOfYear(); // Numeric Week Of Year (1..52) - - wxString GetMonthName(); // Character Month name - int GetMonth() const; // Month Number (1..12) - wxDate GetMonthStart(); // First Date Of Month - wxDate GetMonthEnd(); // Last Date Of Month - - int GetYear() const; // eg. 1992 - wxDate GetYearStart(); // First Date Of Year - wxDate GetYearEnd(); // Last Date Of Year - - bool IsBetween(const wxDate& first, const wxDate& second) const; - - wxDate Previous(int dayOfWeek) const; -}; - -#endif // wxUSE_TIMEDATE -#endif - // _WX_DATE_H_ diff --git a/include/wx/datstrm.h b/include/wx/datstrm.h deleted file mode 100644 index 82e7b8daa9..0000000000 --- a/include/wx/datstrm.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: datstrm.h -// Purpose: Data stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 28/06/1998 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATSTREAM_H_ -#define _WX_DATSTREAM_H_ - -#ifdef __GNUG__ -#pragma interface "datstrm.h" -#endif - -#include - -class WXDLLEXPORT wxDataInputStream: public wxFilterInputStream { -public: - wxDataInputStream(wxInputStream& s); - virtual ~wxDataInputStream(); - - unsigned long Read32(); - unsigned short Read16(); - unsigned char Read8(); - double ReadDouble(); - wxString ReadLine(); - wxString ReadString(); -}; - -class WXDLLEXPORT wxDataOutputStream: public wxFilterOutputStream { - public: - wxDataOutputStream(wxOutputStream& s); - virtual ~wxDataOutputStream(); - - void Write32(unsigned long i); - void Write16(unsigned short i); - void Write8(unsigned char i); - void WriteDouble(double d); - void WriteLine(const wxString& line); - void WriteString(const wxString& string); -}; - -#endif - // _WX_DATSTREAM_H_ diff --git a/include/wx/db.h b/include/wx/db.h deleted file mode 100644 index 466000ddde..0000000000 --- a/include/wx/db.h +++ /dev/null @@ -1,378 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: db.h -// Purpose: Header file wxDB class. The wxDB class represents a connection -// to an ODBC data source. The wxDB class allows operations on the data -// source such as opening and closing the data source. -// Author: Doug Card -// Modified by: -// Mods: Dec, 1998: Added support for SQL statement logging and database -// cataloging -// Created: 9.96 -// RCS-ID: $Id$ -// Copyright: (c) 1996 Remstar International, Inc. -// Licence: wxWindows licence, plus: -// Notice: This class library and its intellectual design are free of charge for use, -// modification, enhancement, debugging under the following conditions: -// 1) These classes may only be used as part of the implementation of a -// wxWindows-based application -// 2) All enhancements and bug fixes are to be submitted back to the wxWindows -// user groups free of all charges for use with the wxWindows library. -// 3) These classes may not be distributed as part of any other class library, -// DLL, text (written or electronic), other than a complete distribution of -// the wxWindows GUI development toolkit. -// -/////////////////////////////////////////////////////////////////////////////// - -/* -// SYNOPSIS START -// SYNOPSIS STOP -*/ - -#ifndef DB_DOT_H -#define DB_DOT_H - -#ifdef __GNUG__ -#pragma interface "db.h" -#endif - -#if defined(__WXMSW__) || defined(WIN32) -#include -#endif - - -#ifdef __WXGTK__ - -extern "C" { -#include "../../src/iodbc/isql.h" -#include "../../src/iodbc/isqlext.h" -typedef float SFLOAT; -typedef double SDOUBLE; -typedef unsigned int UINT; -#define ULONG UDWORD - -} - -#else - -#define ODBCVER 0x0250 -#include -#include - -#endif - -enum enumDummy {enumDum1}; - -#define SQL_C_BOOLEAN (sizeof(int) == 2 ? SQL_C_USHORT : SQL_C_ULONG) -#define SQL_C_ENUM (sizeof(enumDummy) == 2 ? SQL_C_USHORT : SQL_C_ULONG) //glt 2-21-97 - -// Database Globals -const int DB_TYPE_NAME_LEN = 40; -const int DB_MAX_STATEMENT_LEN = 2048; -const int DB_MAX_WHERE_CLAUSE_LEN = 1024; -const int DB_MAX_ERROR_MSG_LEN = 512; -const int DB_MAX_ERROR_HISTORY = 5; -const int DB_MAX_TABLE_NAME_LEN = 128; -const int DB_MAX_COLUMN_NAME_LEN = 128; - -const int DB_DATA_TYPE_VARCHAR = 1; -const int DB_DATA_TYPE_INTEGER = 2; -const int DB_DATA_TYPE_FLOAT = 3; -const int DB_DATA_TYPE_DATE = 4; - -const int DB_SELECT_KEYFIELDS = 1; -const int DB_SELECT_WHERE = 2; -const int DB_SELECT_MATCHING = 3; -const int DB_SELECT_STATEMENT = 4; - -const int DB_UPD_KEYFIELDS = 1; -const int DB_UPD_WHERE = 2; - -const int DB_DEL_KEYFIELDS = 1; -const int DB_DEL_WHERE = 2; -const int DB_DEL_MATCHING = 3; - -const int DB_WHERE_KEYFIELDS = 1; -const int DB_WHERE_MATCHING = 2; - -const int DB_CURSOR0 = 0; -const int DB_CURSOR1 = 1; -const int DB_CURSOR2 = 2; -//const int DB_CURSOR3 = 3; -//const int DB_CURSOR4 = 4; -//const int DB_CURSOR5 = 5; - -const int DB_GRANT_SELECT = 1; -const int DB_GRANT_INSERT = 2; -const int DB_GRANT_UPDATE = 4; -const int DB_GRANT_DELETE = 8; -const int DB_GRANT_ALL = DB_GRANT_SELECT | DB_GRANT_INSERT | DB_GRANT_UPDATE | DB_GRANT_DELETE; - -// ODBC Error codes (derived from ODBC SqlState codes) -enum ODBC_ERRORS -{ - DB_FAILURE = 0, - DB_SUCCESS = 1, - DB_ERR_NOT_IN_USE, - DB_ERR_GENERAL_WARNING, // SqlState = '01000' - DB_ERR_DISCONNECT_ERROR, // SqlState = '01002' - DB_ERR_DATA_TRUNCATED, // SqlState = '01004' - DB_ERR_PRIV_NOT_REVOKED, // SqlState = '01006' - DB_ERR_INVALID_CONN_STR_ATTR, // SqlState = '01S00' - DB_ERR_ERROR_IN_ROW, // SqlState = '01S01' - DB_ERR_OPTION_VALUE_CHANGED, // SqlState = '01S02' - DB_ERR_NO_ROWS_UPD_OR_DEL, // SqlState = '01S03' - DB_ERR_MULTI_ROWS_UPD_OR_DEL, // SqlState = '01S04' - DB_ERR_WRONG_NO_OF_PARAMS, // SqlState = '07001' - DB_ERR_DATA_TYPE_ATTR_VIOL, // SqlState = '07006' - DB_ERR_UNABLE_TO_CONNECT, // SqlState = '08001' - DB_ERR_CONNECTION_IN_USE, // SqlState = '08002' - DB_ERR_CONNECTION_NOT_OPEN, // SqlState = '08003' - DB_ERR_REJECTED_CONNECTION, // SqlState = '08004' - DB_ERR_CONN_FAIL_IN_TRANS, // SqlState = '08007' - DB_ERR_COMM_LINK_FAILURE, // SqlState = '08S01' - DB_ERR_INSERT_VALUE_LIST_MISMATCH, // SqlState = '21S01' - DB_ERR_DERIVED_TABLE_MISMATCH, // SqlState = '21S02' - DB_ERR_STRING_RIGHT_TRUNC, // SqlState = '22001' - DB_ERR_NUMERIC_VALUE_OUT_OF_RNG, // SqlState = '22003' - DB_ERR_ERROR_IN_ASSIGNMENT, // SqlState = '22005' - DB_ERR_DATETIME_FLD_OVERFLOW, // SqlState = '22008' - DB_ERR_DIVIDE_BY_ZERO, // SqlState = '22012' - DB_ERR_STR_DATA_LENGTH_MISMATCH, // SqlState = '22026' - DB_ERR_INTEGRITY_CONSTRAINT_VIOL, // SqlState = '23000' - DB_ERR_INVALID_CURSOR_STATE, // SqlState = '24000' - DB_ERR_INVALID_TRANS_STATE, // SqlState = '25000' - DB_ERR_INVALID_AUTH_SPEC, // SqlState = '28000' - DB_ERR_INVALID_CURSOR_NAME, // SqlState = '34000' - DB_ERR_SYNTAX_ERROR_OR_ACCESS_VIOL, // SqlState = '37000' - DB_ERR_DUPLICATE_CURSOR_NAME, // SqlState = '3C000' - DB_ERR_SERIALIZATION_FAILURE, // SqlState = '40001' - DB_ERR_SYNTAX_ERROR_OR_ACCESS_VIOL2, // SqlState = '42000' - DB_ERR_OPERATION_ABORTED, // SqlState = '70100' - DB_ERR_UNSUPPORTED_FUNCTION, // SqlState = 'IM001' - DB_ERR_NO_DATA_SOURCE, // SqlState = 'IM002' - DB_ERR_DRIVER_LOAD_ERROR, // SqlState = 'IM003' - DB_ERR_SQLALLOCENV_FAILED, // SqlState = 'IM004' - DB_ERR_SQLALLOCCONNECT_FAILED, // SqlState = 'IM005' - DB_ERR_SQLSETCONNECTOPTION_FAILED, // SqlState = 'IM006' - DB_ERR_NO_DATA_SOURCE_DLG_PROHIB, // SqlState = 'IM007' - DB_ERR_DIALOG_FAILED, // SqlState = 'IM008' - DB_ERR_UNABLE_TO_LOAD_TRANSLATION_DLL, // SqlState = 'IM009' - DB_ERR_DATA_SOURCE_NAME_TOO_LONG, // SqlState = 'IM010' - DB_ERR_DRIVER_NAME_TOO_LONG, // SqlState = 'IM011' - DB_ERR_DRIVER_KEYWORD_SYNTAX_ERROR, // SqlState = 'IM012' - DB_ERR_TRACE_FILE_ERROR, // SqlState = 'IM013' - DB_ERR_TABLE_OR_VIEW_ALREADY_EXISTS, // SqlState = 'S0001' - DB_ERR_TABLE_NOT_FOUND, // SqlState = 'S0002' - DB_ERR_INDEX_ALREADY_EXISTS, // SqlState = 'S0011' - DB_ERR_INDEX_NOT_FOUND, // SqlState = 'S0012' - DB_ERR_COLUMN_ALREADY_EXISTS, // SqlState = 'S0021' - DB_ERR_COLUMN_NOT_FOUND, // SqlState = 'S0022' - DB_ERR_NO_DEFAULT_FOR_COLUMN, // SqlState = 'S0023' - DB_ERR_GENERAL_ERROR, // SqlState = 'S1000' - DB_ERR_MEMORY_ALLOCATION_FAILURE, // SqlState = 'S1001' - DB_ERR_INVALID_COLUMN_NUMBER, // SqlState = 'S1002' - DB_ERR_PROGRAM_TYPE_OUT_OF_RANGE, // SqlState = 'S1003' - DB_ERR_SQL_DATA_TYPE_OUT_OF_RANGE, // SqlState = 'S1004' - DB_ERR_OPERATION_CANCELLED, // SqlState = 'S1008' - DB_ERR_INVALID_ARGUMENT_VALUE, // SqlState = 'S1009' - DB_ERR_FUNCTION_SEQUENCE_ERROR, // SqlState = 'S1010' - DB_ERR_OPERATION_INVALID_AT_THIS_TIME, // SqlState = 'S1011' - DB_ERR_INVALID_TRANS_OPERATION_CODE, // SqlState = 'S1012' - DB_ERR_NO_CURSOR_NAME_AVAIL, // SqlState = 'S1015' - DB_ERR_INVALID_STR_OR_BUF_LEN, // SqlState = 'S1090' - DB_ERR_DESCRIPTOR_TYPE_OUT_OF_RANGE, // SqlState = 'S1091' - DB_ERR_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1092' - DB_ERR_INVALID_PARAM_NO, // SqlState = 'S1093' - DB_ERR_INVALID_SCALE_VALUE, // SqlState = 'S1094' - DB_ERR_FUNCTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1095' - DB_ERR_INF_TYPE_OUT_OF_RANGE, // SqlState = 'S1096' - DB_ERR_COLUMN_TYPE_OUT_OF_RANGE, // SqlState = 'S1097' - DB_ERR_SCOPE_TYPE_OUT_OF_RANGE, // SqlState = 'S1098' - DB_ERR_NULLABLE_TYPE_OUT_OF_RANGE, // SqlState = 'S1099' - DB_ERR_UNIQUENESS_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1100' - DB_ERR_ACCURACY_OPTION_TYPE_OUT_OF_RANGE, // SqlState = 'S1101' - DB_ERR_DIRECTION_OPTION_OUT_OF_RANGE, // SqlState = 'S1103' - DB_ERR_INVALID_PRECISION_VALUE, // SqlState = 'S1104' - DB_ERR_INVALID_PARAM_TYPE, // SqlState = 'S1105' - DB_ERR_FETCH_TYPE_OUT_OF_RANGE, // SqlState = 'S1106' - DB_ERR_ROW_VALUE_OUT_OF_RANGE, // SqlState = 'S1107' - DB_ERR_CONCURRENCY_OPTION_OUT_OF_RANGE, // SqlState = 'S1108' - DB_ERR_INVALID_CURSOR_POSITION, // SqlState = 'S1109' - DB_ERR_INVALID_DRIVER_COMPLETION, // SqlState = 'S1110' - DB_ERR_INVALID_BOOKMARK_VALUE, // SqlState = 'S1111' - DB_ERR_DRIVER_NOT_CAPABLE, // SqlState = 'S1C00' - DB_ERR_TIMEOUT_EXPIRED // SqlState = 'S1T00' -}; - -struct DbStuff -{ - HENV Henv; - char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name - char Uid[20]; // User ID - char AuthStr[20]; // Authorization string (password) -}; - -typedef struct -{ - char TypeName[DB_TYPE_NAME_LEN]; - int FsqlType; - long Precision; - short CaseSensitive; -// short MinimumScale; - short MaximumScale; -} SqlTypeInfo; - -class WXDLLEXPORT CcolInf -{ -public: - char tableName[DB_MAX_TABLE_NAME_LEN+1]; - char colName[DB_MAX_COLUMN_NAME_LEN+1]; - int sqlDataType; -}; - -enum sqlLog -{ - sqlLogOFF, - sqlLogON -}; - -class WXDLLEXPORT wxDB -{ -private: - - // Private data - bool dbIsOpen; - char *dsn; // Data source name - char *uid; // User ID - char *authStr; // Authorization string (password) - FILE *fpSqlLog; // Sql Log file pointer - enum sqlLog sqlLogState; // On or Off - - // Private member functions - bool getDbInfo(void); - bool getDataTypeInfo(SWORD fSqlType, SqlTypeInfo &structSQLTypeInfo); - bool setConnectionOptions(void); - void logError(char *errMsg, char *SQLState); - -public: - - // The following structure contains database information gathered from the - // datasource when the datasource is first opened. - struct - { - char dbmsName[40]; // Name of the dbms product - char dbmsVer[40]; // Version # of the dbms product - char driverName[40]; // Driver name - char odbcVer[60]; // ODBC version of the driver - char drvMgrOdbcVer[60]; // ODBC version of the driver manager - char driverVer[60]; // Driver version - char serverName[80]; // Server Name, typically a connect string - char databaseName[128]; // Database filename - char outerJoins[2]; // Indicates whether the data source supports outer joins - char procedureSupport[2]; // Indicates whether the data source supports stored procedures - UWORD maxConnections; // Maximum # of connections the data source supports - UWORD maxStmts; // Maximum # of HSTMTs per HDBC - UWORD apiConfLvl; // ODBC API conformance level - UWORD cliConfLvl; // Indicates whether the data source is SAG compliant - UWORD sqlConfLvl; // SQL conformance level - UWORD cursorCommitBehavior; // Indicates how cursors are affected by a db commit - UWORD cursorRollbackBehavior; // Indicates how cursors are affected by a db rollback - UWORD supportNotNullClause; // Indicates if data source supports NOT NULL clause - char supportIEF[2]; // Integrity Enhancement Facility (Referential Integrity) - UDWORD txnIsolation; // Default transaction isolation level supported by the driver - UDWORD txnIsolationOptions; // Transaction isolation level options available - UDWORD fetchDirections; // Fetch directions supported - UDWORD lockTypes; // Lock types supported in SQLSetPos - UDWORD posOperations; // Position operations supported in SQLSetPos - UDWORD posStmts; // Position statements supported - UDWORD scrollConcurrency; // Concurrency control options supported for scrollable cursors - UDWORD scrollOptions; // Scroll Options supported for scrollable cursors - UDWORD staticSensitivity; // Indicates if additions, deletions and updates can be detected - UWORD txnCapable; // Indicates if the data source supports transactions - UDWORD loginTimeout; // Number seconds to wait for a login request - } dbInf; - - // ODBC handles - HENV henv; // ODBC Environment handle - HDBC hdbc; // ODBC DB Connection handle - HSTMT hstmt; // ODBC Statement handle - - // ODBC Error Inf. - char sqlState[20]; - SDWORD nativeError; - char errorMsg[SQL_MAX_MESSAGE_LENGTH]; - SWORD cbErrorMsg; - char errorList[DB_MAX_ERROR_HISTORY][DB_MAX_ERROR_MSG_LEN]; - int DB_STATUS; - - //Error reporting mode - bool silent; - - // Inf. about logical data types VARCHAR, INTEGER, FLOAT and DATE. - // This inf. is obtained from the ODBC driver by use of the - // SQLGetTypeInfo() function. The key piece of inf. is the - // type name the data source uses for each logical data type. - // e.g. VARCHAR; Oracle calls it VARCHAR2. - SqlTypeInfo typeInfVarchar, typeInfInteger, typeInfFloat, typeInfDate; - - // Public member functions - wxDB(HENV &aHenv); - bool Open(char *Dsn, char *Uid, char *AuthStr); // Data Source Name, User ID, Password - void Close(void); - bool CommitTrans(void); - bool RollbackTrans(void); - bool DispAllErrors(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT); - bool GetNextError(HENV aHenv, HDBC aHdbc = SQL_NULL_HDBC, HSTMT aHstmt = SQL_NULL_HSTMT); - void DispNextError(void); - bool CreateView(char *viewName, char *colList, char *pSqlStmt); - bool ExecSql(char *pSqlStmt); - bool Grant(int privileges, char *tableName, char *userList = "PUBLIC"); - int TranslateSqlState(char *SQLState); - bool Catalog(char *userID, char *fileName = "Catalog.txt"); - CcolInf *GetColumns(char *tableName[]); - char *GetDatabaseName(void) {return dbInf.dbmsName;} - char *GetDataSource(void) {return dsn;} - char *GetUsername(void) {return uid;} - char *GetPassword(void) {return authStr;} - bool IsOpen(void) {return dbIsOpen;} - HENV GetHENV(void) {return henv;} - HDBC GetHDBC(void) {return hdbc;} - HSTMT GetHSTMT(void) {return hstmt;} - bool TableExists(char *tableName); // Table name can refer to a table, view, alias or synonym - void LogError(char *errMsg, char *SQLState = 0) {logError(errMsg, SQLState);} - bool SqlLog(enum sqlLog state, char *filename = "sqllog.txt", bool append = FALSE); - bool WriteSqlLog(char *logMsg); - -}; // wxDB - -// This structure forms a node in a linked list. The linked list of "DbList" objects -// keeps track of allocated database connections. This allows the application to -// open more than one database connection through ODBC for multiple transaction support -// or for multiple database support. - -struct DbList -{ - DbList *PtrPrev; // Pointer to previous item in the list - char Dsn[SQL_MAX_DSN_LENGTH+1]; // Data Source Name - wxDB *PtrDb; // Pointer to the wxDB object - bool Free; // Is item free or in use? - DbList *PtrNext; // Pointer to next item in the list -}; - -// The following routines allow a user to get new database connections, free them -// for other code segments to use, or close all of them when the application has -// completed. - -wxDB* WXDLLEXPORT GetDbConnection(DbStuff *pDbStuff); -bool WXDLLEXPORT FreeDbConnection(wxDB *pDb); -void WXDLLEXPORT CloseDbConnections(void); -int WXDLLEXPORT NumberDbConnectionsInUse(void); - -// This routine allows you to query a driver manager -// for a list of available datasources. Call this routine -// the first time using SQL_FETCH_FIRST. Continue to call it -// using SQL_FETCH_NEXT until you've exhausted the list. -bool WXDLLEXPORT GetDataSource(HENV henv, char *Dsn, SWORD DsnMax, char *DsDesc, SWORD DsDescMax, - UWORD direction = SQL_FETCH_NEXT); - -#endif diff --git a/include/wx/dbtable.h b/include/wx/dbtable.h deleted file mode 100644 index 004f02a299..0000000000 --- a/include/wx/dbtable.h +++ /dev/null @@ -1,165 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: table.h -// Purpose: Declaration of the wxTable class. -// Author: Doug Card -// Modified by: -// Created: 9.96 -// RCS-ID: $Id$ -// Copyright: (c) 1996 Remstar International, Inc. -// Licence: wxWindows licence, plus: -// Notice: This class library and its intellectual design are free of charge for use, -// modification, enhancement, debugging under the following conditions: -// 1) These classes may only be used as part of the implementation of a -// wxWindows-based application -// 2) All enhancements and bug fixes are to be submitted back to the wxWindows -// user groups free of all charges for use with the wxWindows library. -// 3) These classes may not be distributed as part of any other class library, -// DLL, text (written or electronic), other than a complete distribution of -// the wxWindows GUI development toolkit. -/////////////////////////////////////////////////////////////////////////////// - -/* -// SYNOPSIS START -// SYNOPSIS STOP -*/ - -#ifndef TABLE_DOT_H -#define TABLE_DOT_H - -#ifdef __GNUG__ -#pragma interface "dbtable.h" -#endif - -#include "wx/db.h" - -const int ROWID_LEN = 24; // 18 is the max, 24 is in case it gets larger - -// The following class is used to define a column of a table. -// The wxTable constructor will dynamically allocate as many of -// these as there are columns in the table. The class derived -// from wxTable must initialize these column definitions in it's -// constructor. These column definitions provide inf. to the -// wxTable class which allows it to create a table in the data -// source, exchange data between the data source and the C++ -// object, and so on. - -class WXDLLEXPORT CcolDef -{ -public: - char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator - int DbDataType; // Logical Data Type; e.g. DB_DATA_TYPE_INTEGER - int SqlCtype; // C data type; e.g. SQL_C_LONG - void *PtrDataObj; // Address of the data object - int SzDataObj; // Size, in bytes, of the data object - bool KeyField; // TRUE if this column is part of the PRIMARY KEY to the table; Date fields should NOT be KeyFields. - bool Updateable; // Specifies whether this column is updateable - bool InsertAllowed; // Specifies whether this column should be included in an INSERT statement - bool DerivedCol; // Specifies whether this column is a derived value - SDWORD CbValue; // Internal use only!!! -}; // CcolDef - -// This structure is used when creating secondary indexes. -class WXDLLEXPORT CidxDef -{ -public: - char ColName[DB_MAX_COLUMN_NAME_LEN+1]; // Column Name glt 4/19/97 added one for the null terminator - bool Ascending; -}; // CidxDef - -class WXDLLEXPORT wxTable -{ -private: - - // Private member variables - int currCursorNo; - - // Private member functions - bool bindInsertParams(void); - bool bindUpdateParams(void); - bool bindCols(HSTMT cursor); - bool getRec(UWORD fetchType); - bool execDelete(char *pSqlStmt); - bool execUpdate(char *pSqlStmt); - bool query(int queryType, bool forUpdate, bool distinct, char *pSqlStmt = 0); - -public: - - // Pointer to the database object this table belongs to - wxDB *pDb; - - // ODBC Handles - HENV henv; // ODBC Environment handle - HDBC hdbc; // ODBC DB Connection handle - HSTMT hstmt; // ODBC Statement handle -// HSTMT c0, c1, c2, c3, c4, c5; // Cursors 0 through 5 - HSTMT c0, c1, c2; // Limited to Cursors 0 through 2 for now - HSTMT hstmtInsert; // ODBC Statement handle used specifically for inserts - HSTMT hstmtDelete; // ODBC Statement handle used specifically for deletes - HSTMT hstmtUpdate; // ODBC Statement handle used specifically for updates - HSTMT hstmtCount; // ODBC Statement handle used specifically for COUNT(*) - - // Table Inf. - char tableName[DB_MAX_TABLE_NAME_LEN+1]; // Table name - char queryTableName[DB_MAX_TABLE_NAME_LEN+1]; // Query Table Name - int noCols; // # of columns in the table - - // Column Definitions - CcolDef *colDefs; // Array of CcolDef structures - - // Where, Order By and From clauses - char *where; // Standard SQL where clause, minus the word WHERE - char *orderBy; // Standard SQL order by clause, minus the ORDER BY - char *from; // Allows for joins in a Ctable::Query(). Format: ",tbl,tbl..." - - // Flags - bool selectForUpdate; - - // Public member functions - wxTable(wxDB *pwxDB, const char *tblName, const int nCols, const char *qryTblName = 0); - virtual ~wxTable(); - bool Open(void); - bool CreateTable(void); - bool CreateIndex(char * idxName, bool unique, int noIdxCols, CidxDef *pIdxDefs); - bool CloseCursor(HSTMT cursor); - int Insert(void); - bool Update(void); - bool Update(char *pSqlStmt); - bool UpdateWhere(char *pWhereClause); - bool Delete(void); - bool DeleteWhere(char *pWhereClause); - bool DeleteMatching(void); - virtual bool Query(bool forUpdate = FALSE, bool distinct = FALSE); - bool QueryBySqlStmt(char *pSqlStmt); - bool QueryMatching(bool forUpdate = FALSE, bool distinct = FALSE); - bool QueryOnKeyFields(bool forUpdate = FALSE, bool distinct = FALSE); - bool GetNext(void) { return(getRec(SQL_FETCH_NEXT)); } - bool operator++(int) { return(getRec(SQL_FETCH_NEXT)); } -#ifndef FWD_ONLY_CURSORS - bool GetPrev(void) { return(getRec(SQL_FETCH_PRIOR)); } - bool operator--(int) { return(getRec(SQL_FETCH_PRIOR)); } - bool GetFirst(void) { return(getRec(SQL_FETCH_FIRST)); } - bool GetLast(void) { return(getRec(SQL_FETCH_LAST)); } -#endif - bool IsCursorClosedOnCommit(void); - bool IsColNull(int colNo); - UWORD GetRowNum(void); - void GetSelectStmt(char *pSqlStmt, int typeOfSelect, bool distinct); - void GetDeleteStmt(char *pSqlStmt, int typeOfDel, char *pWhereClause = 0); - void GetUpdateStmt(char *pSqlStmt, int typeOfUpd, char *pWhereClause = 0); - void GetWhereClause(char *pWhereClause, int typeOfWhere, char *qualTableName = 0); - bool CanSelectForUpdate(void); - bool CanUpdByROWID(void); - void ClearMemberVars(void); - bool SetQueryTimeout(UDWORD nSeconds); - void SetColDefs (int index, char *fieldName, int dataType, void *pData, int cType, - int size, bool keyField = FALSE, bool upd = TRUE, - bool insAllow = TRUE, bool derivedCol = FALSE); - bool SetCursor(int cursorNo = DB_CURSOR0); - int GetCursor(void) { return(currCursorNo); } - ULONG Count(void); - int DB_STATUS(void) { return(pDb->DB_STATUS); } - bool Refresh(void); - -}; // wxTable - -#endif diff --git a/include/wx/dc.h b/include/wx/dc.h deleted file mode 100644 index 588fc24068..0000000000 --- a/include/wx/dc.h +++ /dev/null @@ -1,545 +0,0 @@ -#ifndef _WX_DC_H_BASE_ -#define _WX_DC_H_BASE_ - -#ifdef __GNUG__ - #pragma interface "dcbase.h" -#endif - -// ---------------------------------------------------------------------------- -// headers which we must include here -// ---------------------------------------------------------------------------- - -#include "wx/object.h" // the base class - -#include "wx/cursor.h" // we have member variables of these classes -#include "wx/font.h" // so we can't do without them -#include "wx/colour.h" -#include "wx/brush.h" -#include "wx/pen.h" -#include "wx/palette.h" - -#include "wx/list.h" // we use wxList in inline functions - -// --------------------------------------------------------------------------- -// types -// --------------------------------------------------------------------------- - -// type which should be used (whenever possible, i.e. as long as it doesn't -// break compatibility) for screen coordinates -typedef int wxCoord; - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern int) wxPageNumber; - -// --------------------------------------------------------------------------- -// wxDC is the device context - object on which any drawing is done -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxDCBase : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxDCBase) - -public: - wxDCBase() - { - m_clipping = FALSE; - m_ok = TRUE; - - m_minX = m_minY = m_maxX = m_maxY = 0; - - m_signX = m_signY = 1; - - m_logicalOriginX = m_logicalOriginY = - m_deviceOriginX = m_deviceOriginY = 0; - - m_logicalScaleX = m_logicalScaleY = - m_userScaleX = m_userScaleY = - m_scaleX = m_scaleY = 1.0; - - m_logicalFunction = -1; - - m_backgroundMode = wxTRANSPARENT; - - m_mappingMode = wxMM_TEXT; - - m_backgroundBrush = *wxTRANSPARENT_BRUSH; - - m_textForegroundColour = *wxBLACK; - m_textBackgroundColour = *wxWHITE; - - m_colour = wxColourDisplay(); - } - - ~wxDCBase() { } - - virtual void BeginDrawing() { } - virtual void EndDrawing() { } - - // graphic primitives - // ------------------ - - void FloodFill(long x, long y, const wxColour& col, - int style = wxFLOOD_SURFACE) - { DoFloodFill(x, y, col, style); } - void FloodFill(const wxPoint& pt, const wxColour& col, - int style = wxFLOOD_SURFACE) - { DoFloodFill(pt.x, pt.y, col, style); } - - bool GetPixel(long x, long y, wxColour *col) const - { return DoGetPixel(x, y, col); } - bool GetPixel(const wxPoint& pt, wxColour *col) const - { return DoGetPixel(pt.x, pt.y, col); } - - void DrawLine(long x1, long y1, long x2, long y2) - { DoDrawLine(x1, y1, x2, y2); } - void DrawLine(const wxPoint& pt1, const wxPoint& pt2) - { DoDrawLine(pt1.x, pt1.y, pt2.x, pt2.y); } - - void CrossHair(long x, long y) - { DoCrossHair(x, y); } - void CrossHair(const wxPoint& pt) - { DoCrossHair(pt.x, pt.y); } - - void DrawArc(long x1, long y1, long x2, long y2, long xc, long yc) - { DoDrawArc(x1, y1, x2, y2, xc, yc); } - void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre) - { DoDrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); } - - void DrawEllipticArc(long x, long y, long w, long h, double sa, double ea) - { DoDrawEllipticArc(x, y, w, h, sa, ea); } - void DrawEllipticArc(const wxPoint& pt, const wxSize& sz, - double sa, double ea) - { DoDrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); } - - void DrawPoint(long x, long y) - { DoDrawPoint(x, y); } - void DrawPoint(const wxPoint& pt) - { DoDrawPoint(pt.x, pt.y); } - - void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0) - { DoDrawLines(n, points, xoffset, yoffset); } - void DrawLines(const wxList *list, long xoffset = 0, long yoffset = 0); - - void DrawPolygon(int n, wxPoint points[], - long xoffset = 0, long yoffset = 0, - int fillStyle = wxODDEVEN_RULE) - { DoDrawPolygon(n, points, xoffset, yoffset, fillStyle); } - - void DrawPolygon(const wxList *list, - long xoffset = 0, long yoffset = 0, - int fillStyle = wxODDEVEN_RULE); - - void DrawRectangle(long x, long y, long width, long height) - { DoDrawRectangle(x, y, width, height); } - void DrawRectangle(const wxPoint& pt, const wxSize& sz) - { DoDrawRectangle(pt.x, pt.y, sz.x, sz.y); } - void DrawRectangle(const wxRect& rect) - { DoDrawRectangle(rect.x, rect.y, rect.width, rect.height); } - - void DrawRoundedRectangle(long x, long y, long width, long height, - double radius) - { DoDrawRoundedRectangle(x, y, width, height, radius); } - void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, - double radius) - { DoDrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius); } - void DrawRoundedRectangle(const wxRect& r, double radius) - { DoDrawRoundedRectangle(r.x, r.y, r.width, r.height, radius); } - - void DrawCircle(long x, long y, long radius) - { DoDrawEllipse(x - radius, y - radius, 2*radius, 2*radius); } - void DrawEllipse(long x, long y, long width, long height) - { DoDrawEllipse(x, y, width, height); } - void DrawEllipse(const wxPoint& pt, const wxSize& sz) - { DoDrawEllipse(pt.x, pt.y, sz.x, sz.y); } - void DrawEllipse(const wxRect& rect) - { DoDrawEllipse(rect.x, rect.y, rect.width, rect.height); } - - void DrawIcon(const wxIcon& icon, long x, long y) - { DoDrawIcon(icon, x, y); } - void DrawIcon(const wxIcon& icon, const wxPoint& pt) - { DoDrawIcon(icon, pt.x, pt.y); } - - void DrawBitmap(const wxBitmap &bmp, long x, long y, bool useMask = FALSE) - { DoDrawBitmap(bmp, x, y, useMask); } - void DrawBitmap(const wxBitmap &bmp, const wxPoint& pt, - bool useMask = FALSE) - { DoDrawBitmap(bmp, pt.x, pt.y, useMask); } - - void DrawText(const wxString& text, long x, long y) - { DoDrawText(text, x, y); } - void DrawText(const wxString& text, const wxPoint& pt) - { DoDrawText(text, pt.x, pt.y); } - - bool Blit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int rop = wxCOPY, bool useMask = FALSE) - { - return DoBlit(xdest, ydest, width, height, - source, xsrc, ysrc, rop, useMask); - } - bool Blit(const wxPoint& destPt, const wxSize& sz, - wxDC *source, const wxPoint& srcPt, - int rop = wxCOPY, bool useMask = FALSE) - { - return DoBlit(destPt.x, destPt.y, sz.x, sz.y, - source, srcPt.x, srcPt.y, rop, useMask); - } - -#if wxUSE_SPLINES -// TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?) - void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3); - void DrawSpline(int n, wxPoint points[]); - - void DrawSpline(wxList *points) { DoDrawSpline(points); } -#endif // wxUSE_SPLINES - - // global DC operations - // -------------------- - - virtual void Clear() = 0; - - virtual bool StartDoc(const wxString& WXUNUSED(message)) { return TRUE; } - virtual void EndDoc() { } - - virtual void StartPage() { } - virtual void EndPage() { } - - // set objects to use for drawing - // ------------------------------ - - virtual void SetFont(const wxFont& font) = 0; - virtual void SetPen(const wxPen& pen) = 0; - virtual void SetBrush(const wxBrush& brush) = 0; - virtual void SetBackground(const wxBrush& brush) = 0; - virtual void SetBackgroundMode(int mode) = 0; - virtual void SetPalette(const wxPalette& palette) = 0; - - // clipping region - // --------------- - - void SetClippingRegion(long x, long y, long width, long height) - { DoSetClippingRegion(x, y, width, height); } - void SetClippingRegion(const wxPoint& pt, const wxSize& sz) - { DoSetClippingRegion(pt.x, pt.y, sz.x, sz.y); } - void SetClippingRegion(const wxRect& rect) - { DoSetClippingRegion(rect.x, rect.y, rect.width, rect.height); } - void SetClippingRegion(const wxRegion& region) - { DoSetClippingRegionAsRegion(region); } - - virtual void DestroyClippingRegion() = 0; - - void GetClippingBox(long *x, long *y, long *w, long *h) const - { DoGetClippingBox(x, y, w, h); } - void GetClippingBox(wxRect& rect) const - { DoGetClippingBox(&rect.x, &rect.y, &rect.width, &rect.height); } - - // text extent - // ----------- - - virtual long GetCharHeight() const = 0; - virtual long GetCharWidth() const = 0; - virtual void GetTextExtent(const wxString& string, - long *x, long *y, - long *descent = NULL, - long *externalLeading = NULL, - wxFont *theFont = NULL) const = 0; - - // size and resolution - // ------------------- - - // in device units - void GetSize(int *width, int *height) const - { DoGetSize(width, height); } - wxSize GetSize() const - { - int w, h; - DoGetSize(&w, &h); - - return wxSize(w, h); - } - - // in mm - void GetSizeMM(int* width, int* height) const - { DoGetSizeMM(width, height); } - wxSize GetSizeMM() const - { - int w, h; - DoGetSizeMM(&w, &h); - - return wxSize(w, h); - } - - // coordinates conversions - // ----------------------- - - // This group of functions does actual conversion of the input, as you'd - // expect. - long DeviceToLogicalX(long x) const; - long DeviceToLogicalY(long y) const; - long DeviceToLogicalXRel(long x) const; - long DeviceToLogicalYRel(long y) const; - long LogicalToDeviceX(long x) const; - long LogicalToDeviceY(long y) const; - long LogicalToDeviceXRel(long x) const; - long LogicalToDeviceYRel(long y) const; - - // query DC capabilities - // --------------------- - - virtual bool CanDrawBitmap() const = 0; - virtual bool CanGetTextExtent() const = 0; - - // colour depth - virtual int GetDepth() const = 0; - - // Resolution in Pixels per inch - virtual wxSize GetPPI() const = 0; - - virtual bool Ok() const { return m_ok; } - - // accessors - // --------- - - // const... - const wxBrush& GetBackground() const { return m_backgroundBrush; } - const wxBrush& GetBrush() const { return m_brush; } - const wxFont& GetFont() const { return m_font; } - const wxPen& GetPen() const { return m_pen; } - const wxColour& GetTextBackground() const { return m_textBackgroundColour; } - const wxColour& GetTextForeground() const { return m_textForegroundColour; } - - // ... and non const - wxBrush& GetBackground() { return m_backgroundBrush; } - wxBrush& GetBrush() { return m_brush; } - wxFont& GetFont() { return m_font; } - wxPen& GetPen() { return m_pen; } - wxColour& GetTextBackground() { return m_textBackgroundColour; } - wxColour& GetTextForeground() { return m_textForegroundColour; } - - virtual void SetTextForeground(const wxColour& colour) - { m_textForegroundColour = colour; } - virtual void SetTextBackground(const wxColour& colour) - { m_textBackgroundColour = colour; } - - int GetMapMode() const { return m_mappingMode; } - virtual void SetMapMode(int mode) = 0; - - virtual void GetUserScale(double *x, double *y) const - { - if ( x ) *x = m_userScaleX; - if ( y ) *y = m_userScaleY; - } - virtual void SetUserScale(double x, double y) = 0; - - virtual void GetLogicalScale(double *x, double *y) - { - if ( x ) *x = m_logicalScaleX; - if ( y ) *y = m_logicalScaleY; - } - virtual void SetLogicalScale(double x, double y) - { - m_logicalScaleX = x; - m_logicalScaleY = y; - } - - void GetLogicalOrigin(long *x, long *y) const - { DoGetLogicalOrigin(x, y); } - wxPoint GetLogicalOrigin() const - { long x, y; DoGetLogicalOrigin(&x, &y); return wxPoint(x, y); } - virtual void SetLogicalOrigin(long x, long y) = 0; - - void GetDeviceOrigin(long *x, long *y) const - { DoGetDeviceOrigin(x, y); } - wxPoint GetDeviceOrigin() const - { long x, y; DoGetDeviceOrigin(&x, &y); return wxPoint(x, y); } - virtual void SetDeviceOrigin(long x, long y) = 0; - - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp) = 0; - - int GetLogicalFunction() const { return m_logicalFunction; } - virtual void SetLogicalFunction(int function) = 0; - - // Sometimes we need to override optimization, e.g. if other software is - // drawing onto our surface and we can't be sure of who's done what. - // - // FIXME: is this (still) used? - virtual void SetOptimization(bool WXUNUSED(opt)) { } - virtual bool GetOptimization() { return FALSE; } - - // bounding box - // ------------ - - virtual void CalcBoundingBox(long x, long y) - { - if (x < m_minX) m_minX = x; - if (y < m_minY) m_minY = y; - if (x > m_maxX) m_maxX = x; - if (y > m_maxY) m_maxY = y; - } - - // Get the final bounding box of the PostScript or Metafile picture. - long MinX() const { return m_minX; } - long MaxX() const { return m_maxX; } - long MinY() const { return m_minY; } - long MaxY() const { return m_maxY; } - - // misc old functions - // ------------------ - -#if WXWIN_COMPATIBILITY - virtual void SetColourMap(const wxPalette& palette) { SetPalette(palette); } - void GetTextExtent(const wxString& string, float *x, float *y, - float *descent = NULL, float *externalLeading = NULL, - wxFont *theFont = NULL, bool use16bit = FALSE) const ; - void GetSize(float* width, float* height) const { int w, h; GetSize(& w, & h); *width = w; *height = h; } - void GetSizeMM(float *width, float *height) const { long w, h; GetSizeMM(& w, & h); *width = (float) w; *height = (float) h; } -#endif // WXWIN_COMPATIBILITY - -protected: - // the pure virtual functions which should be implemented by wxDC - virtual void DoFloodFill(long x, long y, const wxColour& col, - int style = wxFLOOD_SURFACE) = 0; - - virtual bool DoGetPixel(long x, long y, wxColour *col) const = 0; - - virtual void DoDrawPoint(long x, long y) = 0; - virtual void DoDrawLine(long x1, long y1, long x2, long y2) = 0; - - virtual void DoDrawArc(long x1, long y1, - long x2, long y2, - long xc, long yc) = 0; - virtual void DoDrawEllipticArc(long x, long y, long w, long h, - double sa, double ea) = 0; - - virtual void DoDrawRectangle(long x, long y, long width, long height) = 0; - virtual void DoDrawRoundedRectangle(long x, long y, - long width, long height, - double radius) = 0; - virtual void DoDrawEllipse(long x, long y, long width, long height) = 0; - - virtual void DoCrossHair(long x, long y) = 0; - - virtual void DoDrawIcon(const wxIcon& icon, long x, long y) = 0; - virtual void DoDrawBitmap(const wxBitmap &bmp, long x, long y, - bool useMask = FALSE) = 0; - - virtual void DoDrawText(const wxString& text, long x, long y) = 0; - - virtual bool DoBlit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int rop = wxCOPY, bool useMask = FALSE) = 0; - - virtual void DoGetSize(int *width, int *height) const = 0; - virtual void DoGetSizeMM(int* width, int* height) const = 0; - - virtual void DoDrawLines(int n, wxPoint points[], - long xoffset, long yoffset) = 0; - virtual void DoDrawPolygon(int n, wxPoint points[], - long xoffset, long yoffset, - int fillStyle = wxODDEVEN_RULE) = 0; - - virtual void DoSetClippingRegionAsRegion(const wxRegion& region) = 0; - virtual void DoSetClippingRegion(long x, long y, - long width, long height) = 0; - - // FIXME are these functions really different? - virtual void DoGetClippingRegion(long *x, long *y, - long *w, long *h) - { DoGetClippingBox(x, y, w, h); } - virtual void DoGetClippingBox(long *x, long *y, - long *w, long *h) const - { - if ( m_clipping ) - { - if ( x ) *x = m_clipX1; - if ( y ) *y = m_clipY1; - if ( w ) *w = m_clipX2 - m_clipX1; - if ( h ) *h = m_clipY2 - m_clipY1; - } - else - { - *x = *y = *w = *h = 0; - } - } - - virtual void DoGetLogicalOrigin(long *x, long *y) const - { - if ( x ) *x = m_logicalOriginX; - if ( y ) *y = m_logicalOriginY; - } - - virtual void DoGetDeviceOrigin(long *x, long *y) const - { - if ( x ) *x = m_deviceOriginX; - if ( y ) *y = m_deviceOriginY; - } - -#if wxUSE_SPLINES - virtual void DoDrawSpline(wxList *points) = 0; -#endif - -protected: - // flags - bool m_colour:1; - bool m_ok:1; - bool m_clipping:1; - bool m_isInteractive:1; - - // coordinate system variables - - // TODO short descriptions of what exactly they are would be nice... - - long m_logicalOriginX, m_logicalOriginY; - long m_deviceOriginX, m_deviceOriginY; - - double m_logicalScaleX, m_logicalScaleY; - double m_userScaleX, m_userScaleY; - double m_scaleX, m_scaleY; - - // Used by SetAxisOrientation() to invert the axes - int m_signX, m_signY; - - // bounding and clipping boxes - long m_minX, m_minY, m_maxX, m_maxY; - long m_clipX1, m_clipY1, m_clipX2, m_clipY2; - - int m_logicalFunction; - int m_backgroundMode; - int m_mappingMode; - - // GDI objects - wxPen m_pen; - wxBrush m_brush; - wxBrush m_backgroundBrush; - wxColour m_textForegroundColour; - wxColour m_textBackgroundColour; - wxFont m_font; - wxPalette m_palette; - -private: - DECLARE_NO_COPY_CLASS(wxDCBase); -}; - -// ---------------------------------------------------------------------------- -// now include the declaration of wxDC class -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/dc.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/dc.h" -#elif defined(__WXGTK__) - #include "wx/gtk/dc.h" -#elif defined(__WXQT__) - #include "wx/qt/dc.h" -#elif defined(__WXMAC__) - #include "wx/mac/dc.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/dc.h" -#endif - -#endif - // _WX_DC_H_BASE_ diff --git a/include/wx/dcclient.h b/include/wx/dcclient.h deleted file mode 100644 index 557e2f4dc2..0000000000 --- a/include/wx/dcclient.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_DCCLIENT_H_BASE_ -#define _WX_DCCLIENT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dcclient.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/dcclient.h" -#elif defined(__WXGTK__) -#include "wx/gtk/dcclient.h" -#elif defined(__WXQT__) -#include "wx/qt/dcclient.h" -#elif defined(__WXMAC__) -#include "wx/mac/dcclient.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dcclient.h" -#endif - -#endif - // _WX_DCCLIENT_H_BASE_ diff --git a/include/wx/dcmemory.h b/include/wx/dcmemory.h deleted file mode 100644 index 84a814c4d6..0000000000 --- a/include/wx/dcmemory.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_DCMEMORY_H_BASE_ -#define _WX_DCMEMORY_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dcmemory.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/dcmemory.h" -#elif defined(__WXGTK__) -#include "wx/gtk/dcmemory.h" -#elif defined(__WXQT__) -#include "wx/qt/dcmemory.h" -#elif defined(__WXMAC__) -#include "wx/mac/dcmemory.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dcmemory.h" -#endif - -#endif - // _WX_DCMEMORY_H_BASE_ diff --git a/include/wx/dcprint.h b/include/wx/dcprint.h deleted file mode 100644 index 532323e9d2..0000000000 --- a/include/wx/dcprint.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _WX_DCPRINT_H_BASE_ -#define _WX_DCPRINT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dcprint.h" -#endif - -#endif - // _WX_DCPRINT_H_BASE_ diff --git a/include/wx/dcps.h b/include/wx/dcps.h deleted file mode 100644 index 6c146675cb..0000000000 --- a/include/wx/dcps.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_DCPS_H_BASE_ -#define _WX_DCPS_H_BASE_ - -#include "wx/generic/dcpsg.h" - -#endif - diff --git a/include/wx/dcscreen.h b/include/wx/dcscreen.h deleted file mode 100644 index bd35719499..0000000000 --- a/include/wx/dcscreen.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_DCSCREEN_H_BASE_ -#define _WX_DCSCREEN_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dcscreen.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/dcscreen.h" -#elif defined(__WXGTK__) -#include "wx/gtk/dcscreen.h" -#elif defined(__WXQT__) -#include "wx/qt/dcscreen.h" -#elif defined(__WXMAC__) -#include "wx/mac/dcscreen.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dcscreen.h" -#endif - -#endif - // _WX_DCSCREEN_H_BASE_ diff --git a/include/wx/dde.h b/include/wx/dde.h deleted file mode 100644 index 908fb09388..0000000000 --- a/include/wx/dde.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_DDE_H_BASE_ -#define _WX_DDE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dde.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/dde.h" -#elif defined(__WXGTK__) -#include "wx/gtk/dde.h" -#elif defined(__WXQT__) -#include "wx/qt/dde.h" -#elif defined(__WXMAC__) -#include "wx/mac/dde.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dde.h" -#endif - -#endif - // _WX_DDE_H_BASE_ diff --git a/include/wx/debug.h b/include/wx/debug.h deleted file mode 100644 index 99d01d268a..0000000000 --- a/include/wx/debug.h +++ /dev/null @@ -1,124 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: debug.h -// Purpose: Misc debug functions and macros -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DEBUG_H_ -#define _WX_DEBUG_H_ - -#include - -#include "wx/wxchar.h" - -#ifndef __TFILE__ -#define __XFILE__(x) _T(x) -#define __TFILE__ __XFILE__(__FILE__) -#endif - -// ---------------------------------------------------------------------------- -/** - @name Debugging macros - - All debugging macros rely on ASSERT() which in turn calls user-defined - OnAssert() function. To keep things simple, it's called even when the - expression is TRUE (i.e. everything is ok) and by default does nothing: just - returns the same value back. But if you redefine it to do something more sexy - (popping up a message box in your favourite GUI, sending you e-mail or - whatever) it will affect all ASSERTs, FAILs and CHECKs in your code. -
-
- Warning: if you don't like advices on programming style, don't read - further! ;-) -
-
- Extensive use of these macros is recommended! Remember that ASSERTs are - disabled in final (without __WXDEBUG__ defined) build, so they add strictly - nothing to your program's code. On the other hand, CHECK macros do stay - even in release builds, but in general are not much of a burden, while - a judicious use of them might increase your program's stability. - - @memo Debugging macros (replacement for standard assert()) and more. - */ -// ---------------------------------------------------------------------------- -//@{ - -/** @name Macros which are completely disabled in 'release' mode */ -//@{ -#ifdef __WXDEBUG__ - /** - this function may be redefined to do something non trivial and is called - whenever one of debugging macros fails (i.e. condition is false in an - assertion) - @param szFile and nLine - file name and line number of the ASSERT - szMsg - optional message explaining the reason - */ - void WXDLLEXPORT wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg = (const wxChar *) NULL); - - /// generic assert macro - #define wxASSERT(cond) if ( !(cond) ) wxOnAssert(__TFILE__, __LINE__) - -#if 0 // defined(__BORLANDC__) && defined(__WIN16__) - // Too much text, so make wxASSERT_MSG the same as wxASSERT, - // thus removing the text from the program. - #define wxASSERT_MSG(x, m) if ( !(x) ) wxOnAssert(__TFILE__, __LINE__) -#else - /// assert with additional message explaining it's cause - #define wxASSERT_MSG(x, m) if ( !(x) ) wxOnAssert(__TFILE__, __LINE__, m) -#endif - -#else - // nothing to do in release modes (hopefully at this moment there are - // no more bugs ;-) - #define wxASSERT(cond) - #define wxASSERT_MSG(x, m) -#endif //__WXDEBUG__ - - /// special form of assert: always triggers it (in debug mode) -#define wxFAIL wxASSERT(wxFalse) - -#if 0 // defined(__BORLANDC__) && defined(__WIN16__) - // Too much text, so make wxFAIL_MSG the same as wxFAIL, - // thus removing the text from the program. -#define wxFAIL_MSG(msg) wxASSERT(wxFalse) -#else - /// FAIL with some message -#define wxFAIL_MSG(msg) wxASSERT_MSG(wxFalse, msg) -#endif -//@} - -// NB: these macros work also in release mode! - -/** - These macros must be used only in invalid situation: for example, an - invalid parameter (NULL pointer) is passed to a function. Instead of - dereferencing it and causing core dump the function might try using - CHECK( p != NULL ) or CHECK( p != NULL, return LogError("p is NULL!!") ) - - @name Macros which remain even in 'release' mode -*/ -//@{ - /// check that expression is true, "return" if not (also FAILs in debug mode) -#define wxCHECK(x, rc) if (!(x)) {wxFAIL; return rc; } - /// as wxCHECK but with a message explaining why we fail -#define wxCHECK_MSG(x, rc, msg) if (!(x)) {wxFAIL_MSG(msg); return rc; } - /// check that expression is true, perform op if not -#define wxCHECK2(x, op) if (!(x)) {wxFAIL; op; } - /// as wxCHECK2 but with a message explaining why we fail -#define wxCHECK2_MSG(x, op, msg) if (!(x)) {wxFAIL_MSG(msg); op; } - /// special form of wxCHECK2: as wxCHECK, but for use in void functions - // NB: there is only one form (with msg parameter) and it's intentional: - // there is no other way to tell the caller what exactly went wrong - // from the void function (of course, the function shouldn't be void - // to begin with...) -#define wxCHECK_RET(x, msg) if (!(x)) {wxFAIL_MSG(msg); return; } -//@} - -//@} - -#endif // _WX_DEBUG_H_ diff --git a/include/wx/defs.h b/include/wx/defs.h deleted file mode 100644 index 9bdeb7b0f6..0000000000 --- a/include/wx/defs.h +++ /dev/null @@ -1,1411 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: defs.h -// Purpose: Declarations/definitions common to all wx source files -// Author: Julian Smart and others -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DEFS_H_ -#define _WX_DEFS_H_ - -#ifdef __GNUG__ -#pragma interface "defs.h" -#endif - -#include - -#include "wx/setup.h" -#include "wx/version.h" - -// ---------------------------------------------------------------------------- -// compiler and OS identification -// ---------------------------------------------------------------------------- - -// OS -#if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ - defined(__LINUX__) || defined(__sgi ) || \ - defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) - - #ifndef __UNIX__ - #define __UNIX__ - #endif // Unix - - // Helps SGI compilation, apparently - #ifdef __SGI__ - #ifdef __GNUG__ - #define __need_wchar_t - #else // !gcc - // Note I use the term __SGI_CC__ for both cc and CC, its not a good - // idea to mix gcc and cc/CC, the name mangling is different - #define __SGI_CC__ - #endif // gcc/!gcc - #endif // SGI - - #if defined(sun) || defined(__SUN__) - #ifndef __GNUG__ - #ifndef __SUNCC__ - #define __SUNCC__ - #endif // Sun CC - #endif - #endif // Sun - - #if defined(__hpux) && !defined(__HPUX__) - #define __HPUX__ - #endif // HP-UX - -#elif defined(applec) || defined(THINK_C) || ( defined( __MWERKS__ ) && !defined(__INTEL__) ) - // MacOS -#else // Windows - #ifndef __WINDOWS__ - #define __WINDOWS__ - #endif // Windows - - // define another standard symbol for Microsoft Visual C++: the standard one - // (_MSC_VER) is also defined by Metrowerks compiler - #if defined(_MSC_VER) && !defined(__MWERKS__) - #define __VISUALC__ _MSC_VER - #elif defined(__BCPLUSPLUS__) && !defined(__BORLANDC__) - #define __BORLANDC__ - #elif defined(__WATCOMC__) - //#define __WATCOMC__ - #elif defined(__SC__) - #define __SYMANTECC__ - #endif // compiler -#endif // OS - -// suppress some Visual C++ warnings -#ifdef __VISUALC__ -# pragma warning(disable:4244) // conversion from double to float -# pragma warning(disable:4100) // unreferenced formal parameter -# pragma warning(disable:4511) // copy ctor couldn't be generated -# pragma warning(disable:4512) // operator=() couldn't be generated -#endif // __VISUALC__ - -// suppress some Salford C++ warnings -#ifdef __SALFORDC__ -# pragma suppress 353 // Possible nested comments -# pragma suppress 593 // Define not used -# pragma suppress 61 // enum has no name (doesn't suppress!) -# pragma suppress 106 // unnamed, unused parameter -# pragma suppress 571 // Virtual function hiding -#endif // __SALFORDC__ - -// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files, -// so define it ourselves -#ifdef __DECCXX - #define __cplusplus -#endif // __DECCXX - -// Resolves linking problems under HP-UX -#if defined(__HPUX__) && defined(__GNUG__) - #define va_list __gnuc_va_list -#endif // HP-UX - -////////////////////////////////////////////////////////////////////////////////// -// Currently Only MS-Windows/NT, XView and Motif are supported -// -#if defined(__HPUX__) && !defined(__WXGTK__) - #ifndef __WXMOTIF__ - #define __WXMOTIF__ - #endif // __WXMOTIF__ -#endif - -#if defined(__WXMOTIF__) - #define __X__ -#endif - -#ifdef __WXMSW__ -// wxWindows checks for WIN32, not __WIN32__ -#if ((defined(WIN32) || defined(__NT__)) && !defined(__WIN32__) && !defined(__WXSTUBS__)) -#define __WIN32__ -#endif - -#ifdef __WXWINE__ - #ifndef __WIN32__ - #define __WIN32__ - #endif - #ifndef __WIN95__ - #define __WIN95__ - #endif - #ifndef STRICT - #define STRICT - #endif -#endif - -#ifndef __WIN32__ -#define __WIN16__ -#endif - -#if !defined(__WIN95__) && (WINVER >= 0x0400) -#define __WIN95__ -#endif - -#if defined(TWIN32) && !defined(__TWIN32__) -#define __TWIN32__ -#endif - -#endif // wxMSW - -// Make sure the environment is set correctly -#if defined(__WXMSW__) && defined(__X__) - #error "Target can't be both X and Windows" -#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \ - !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__) - #error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXSTUBS__]" -#endif - -// ============================================================================ -// non portable C++ features -// ============================================================================ - -// ---------------------------------------------------------------------------- -// check for native bool type and TRUE/FALSE constants -// ---------------------------------------------------------------------------- - -#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXSTUBS__) - // Bool is now obsolete, use bool instead - // typedef int Bool; - - #ifndef TRUE - #define TRUE 1 - #define FALSE 0 - #define Bool_DEFINED - #endif -#elif defined(__WXMSW__) - #ifndef TRUE - #define TRUE 1 - #define FALSE 0 - #endif -#endif // TRUE/FALSE - -// Add more tests here for Windows compilers that already define bool -// (under Unix, configure tests for this) -#ifndef HAVE_BOOL - #if defined( __MWERKS__ ) - #if (__MWERKS__ >= 0x1000) && !__option(bool) - #define HAVE_BOOL - #endif - #elif defined(__VISUALC__) && (__VISUALC__ == 1020) - // in VC++ 4.2 the bool keyword is reserved (hence can't be typedefed) - // but not implemented, so we must #define it - #define bool unsigned int - #elif defined(__VISUALC__) && (__VISUALC__ == 1010) - // For VisualC++ 4.1, we need to define - // bool as something between 4.0 & 5.0... - typedef unsigned int wxbool; - #define bool wxbool - #define HAVE_BOOL - #elif defined(__VISUALC__) && (__VISUALC__ > 1020) - // VC++ supports bool since 4.2 - #define HAVE_BOOL - #elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x500) - // Borland 5.0+ supports bool - #define HAVE_BOOL - #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100) - // Watcom 11+ supports bool - #define HAVE_BOOL - #elif defined(__GNUWIN32__) - // Cygwin supports bool - #define HAVE_BOOL - #endif // compilers -#endif // HAVE_BOOL - -#if !defined(HAVE_BOOL) && !defined(bool) - // NB: of course, this doesn't replace the standard type, because, for - // example, overloading based on bool/int parameter doesn't work and - // so should be avoided in portable programs - typedef unsigned int bool; -#endif // bool - -typedef short int WXTYPE; - -// special care should be taken with this type under Windows where the real -// window id is unsigned, so we must always do the cast before comparing them -// (or else they would be always different!). Usign wxGetWindowId() which does -// the cast itself is recommended. Note that this type can't be unsigned -// because -1 is a valid (and largely used) value for window id. -typedef int wxWindowID; - -// Macro to cut down on compiler warnings. -#if REMOVE_UNUSED_ARG - #define WXUNUSED(identifier) /* identifier */ -#else // stupid, broken compiler - #define WXUNUSED(identifier) identifier -#endif - -/* - * Making or using wxWindows as a Windows DLL - */ - -#ifdef __WXMSW__ - -// _declspec works in BC++ 5 and later, as well as VC++ -#if defined(__VISUALC__) || defined(__BORLANDC__) - -# ifdef WXMAKINGDLL -# define WXDLLEXPORT _declspec( dllexport ) -# define WXDLLEXPORT_DATA(type) _declspec( dllexport ) type -# define WXDLLEXPORT_CTORFN -# elif defined(WXUSINGDLL) -# define WXDLLEXPORT _declspec( dllimport ) -# define WXDLLEXPORT_DATA(type) _declspec( dllimport ) type -# define WXDLLEXPORT_CTORFN -# else -# define WXDLLEXPORT -# define WXDLLEXPORT_DATA(type) type -# define WXDLLEXPORT_CTORFN -# endif - -#else -# define WXDLLEXPORT -# define WXDLLEXPORT_DATA(type) type -# define WXDLLEXPORT_CTORFN -#endif - -#else // !Windows -# define WXDLLEXPORT -# define WXDLLEXPORT_DATA(type) type -# define WXDLLEXPORT_CTORFN -#endif // Win/!Win - -// For ostream, istream ofstream -#if defined(__BORLANDC__) && defined( _RTLDLL ) -# define WXDLLIMPORT __import -#else -# define WXDLLIMPORT -#endif - -class WXDLLEXPORT wxObject; -class WXDLLEXPORT wxEvent; - - /** symbolic constant used by all Find()-like functions returning positive - integer on success as failure indicator */ -#define wxNOT_FOUND (-1) - -// ---------------------------------------------------------------------------- -/** @name Very common macros */ -// ---------------------------------------------------------------------------- -//@{ -/// delete pointer if it is not NULL and NULL it afterwards -// (checking that it's !NULL before passing it to delete is just a -// a question of style, because delete will do it itself anyhow, but it might -// be considered as an error by some overzealous debugging implementations of -// the library, so we do it ourselves) -#if defined(__SGI_CC__) -// Okay this is bad styling, but the native SGI compiler is very picky, it -// wont let you compare/assign between a NULL (void *) and another pointer -// type. To be really clean we'd need to pass in another argument, the type -// of p. -// Also note the use of 0L, this would allow future possible 64bit support -// (as yet untested) by ensuring that we zero all the bits in a pointer -// (which is always the same length as a long (at least with the LP64 standard) -// --- offer aug 98 -#define wxDELETE(p) if ( (p) ) { delete (p); p = 0L; } -#else -#define wxDELETE(p) if ( (p) != NULL ) { delete p; p = NULL; } -#endif /* __SGI__CC__ */ - -// delete an array and NULL it (see comments above) -#if defined(__SGI_CC__) -// see above comment. -#define wxDELETEA(p) if ( (p) ) { delete [] (p); p = 0L; } -#else -#define wxDELETEA(p) if ( ((void *) (p)) != NULL ) { delete [] p; p = NULL; } -#endif /* __SGI__CC__ */ - -/// size of statically declared array -#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0])) - -// Use of these suppresses some compiler warnings -WXDLLEXPORT_DATA(extern const bool) wxTrue; -WXDLLEXPORT_DATA(extern const bool) wxFalse; - -// ---------------------------------------------------------------------------- -// compiler specific settings -// ---------------------------------------------------------------------------- - -// to allow compiling with warning level 4 under Microsoft Visual C++ some -// warnings just must be disabled -#ifdef __VISUALC__ - #pragma warning(disable: 4514) // unreferenced inline func has been removed -/* - you might be tempted to disable this one also: triggered by CHECK and FAIL - macros in debug.h, but it's, overall, a rather useful one, so I leave it and - will try to find some way to disable this warning just for CHECK/FAIL. Anyone? -*/ - #pragma warning(disable: 4127) // conditional expression is constant -#endif // VC++ - -#if defined(__MWERKS__) - #undef try - #undef except - #undef finally - #define except(x) catch(...) -#endif // Metrowerks - -// where should i put this? we need to make sure of this as it breaks -// the code. -#if !wxUSE_IOSTREAMH && defined(__WXDEBUG__) -#ifndef __MWERKS__ -#undef __WXDEBUG__ -#endif -#endif - -// Callback function type definition -typedef void (*wxFunction) (wxObject&, wxEvent&); - -// ---------------------------------------------------------------------------- -// machine specific settings -// ---------------------------------------------------------------------------- - -// fixed length types - -typedef char signed wxInt8; -typedef char unsigned wxUint8; - -#ifdef __WIN16__ -typedef int signed wxInt16; -typedef int unsigned wxUint16; -typedef long signed wxInt32; -typedef long unsigned wxUint32; -#endif - -#ifdef __WIN32__ -typedef short signed wxInt16; -typedef short unsigned wxUint16; -typedef int signed wxInt32; -typedef int unsigned wxUint32; -#endif - -#ifdef __WXMAC__ -typedef short signed wxInt16; -typedef short unsigned wxUint16; -typedef int signed wxInt32; -typedef int unsigned wxUint32; -#endif - -#ifdef __WXOS2__ -typedef short signed wxInt16; -typedef short unsigned wxUint16; -typedef int signed wxInt32; -typedef int unsigned wxUint32; -#endif - -#if !defined(__WXMSW__) && !defined(__WXMAC__) && !defined(__WXOS2__) - #if defined(SIZEOF_INT) - #if (SIZEOF_SHORT == 2) - typedef short signed wxInt16; - typedef short unsigned wxUint16; - #else - #error "FIXME" - #endif - #if (SIZEOF_INT == 4) - typedef int signed wxInt32; - typedef int unsigned wxUint32; - #else - #error "FIXME" - #endif - #else - typedef short signed wxInt16; - typedef short unsigned wxUint16; - typedef int signed wxInt32; - typedef int unsigned wxUint32; - #endif -#endif - -typedef wxUint8 wxByte; -typedef wxUint16 wxWord; - -// byte sex - -#define wxBIG_ENDIAN 4321 -#define wxLITTLE_ENDIAN 1234 -#define wxPDP_ENDIAN 3412 - -#ifdef WORDS_BIGENDIAN -#define wxBYTE_ORDER wxBIG_ENDIAN -#else -#define wxBYTE_ORDER wxLITTLE_ENDIAN -#endif - -// byte swapping - -#define wxUINT16_SWAP_ALWAYS(val) \ - ((wxUint16) ( \ - (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ - (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8))) - -#define wxINT16_SWAP_ALWAYS(val) \ - ((wxInt16) ( \ - (((wxUint16) (val) & (wxUint16) 0x00ffU) << 8) | \ - (((wxUint16) (val) & (wxUint16) 0xff00U) >> 8))) - -#define wxUINT32_SWAP_ALWAYS(val) \ - ((wxUint32) ( \ - (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \ - (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ - (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ - (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) - -#define wxINT32_SWAP_ALWAYS(val) \ - ((wxInt32) ( \ - (((wxUint32) (val) & (wxUint32) 0x000000ffU) << 24) | \ - (((wxUint32) (val) & (wxUint32) 0x0000ff00U) << 8) | \ - (((wxUint32) (val) & (wxUint32) 0x00ff0000U) >> 8) | \ - (((wxUint32) (val) & (wxUint32) 0xff000000U) >> 24))) - -// machine specific byte swapping - -#ifdef WORDS_BIGENDIAN - #define wxUINT16_SWAP_ON_BE(val) wxUINT16_SWAP_ALWAYS(val) - #define wxINT16_SWAP_ON_BE(val) wxINT16_SWAP_ALWAYS(val) - #define wxUINT16_SWAP_ON_LE(val) (val) - #define wxINT16_SWAP_ON_LE(val) (val) - #define wxUINT32_SWAP_ON_BE(val) wxUINT32_SWAP_ALWAYS(val) - #define wxINT32_SWAP_ON_BE(val) wxINT32_SWAP_ALWAYS(val) - #define wxUINT32_SWAP_ON_LE(val) (val) - #define wxINT32_SWAP_ON_LE(val) (val) -#else - #define wxUINT16_SWAP_ON_LE(val) wxUINT16_SWAP_ALWAYS(val) - #define wxINT16_SWAP_ON_LE(val) wxINT16_SWAP_ALWAYS(val) - #define wxUINT16_SWAP_ON_BE(val) (val) - #define wxINT16_SWAP_ON_BE(val) (val) - #define wxUINT32_SWAP_ON_LE(val) wxUINT32_SWAP_ALWAYS(val) - #define wxINT32_SWAP_ON_LE(val) wxINT32_SWAP_ALWAYS(val) - #define wxUINT32_SWAP_ON_BE(val) (val) - #define wxINT32_SWAP_ON_BE(val) (val) -#endif - -// ---------------------------------------------------------------------------- -// Window style flags -// ---------------------------------------------------------------------------- - -/* - * Values are chosen so they can be |'ed in a bit list. - * Some styles are used across more than one group, - * so the values mustn't clash with others in the group. - * Otherwise, numbers can be reused across groups. - * - * From version 1.66: - * Window (cross-group) styles now take up the first half - * of the flag, and control-specific styles the - * second half. - * - */ - -/* - * Window (Frame/dialog/subwindow/panel item) style flags - */ -#define wxVSCROLL 0x80000000 -#define wxHSCROLL 0x40000000 -#define wxCAPTION 0x20000000 - -// New styles -#define wxDOUBLE_BORDER 0x10000000 -#define wxSUNKEN_BORDER 0x08000000 -#define wxRAISED_BORDER 0x04000000 -#define wxBORDER 0x02000000 -#define wxSIMPLE_BORDER wxBORDER -#define wxSTATIC_BORDER 0x01000000 -#define wxTRANSPARENT_WINDOW 0x00100000 -#define wxNO_BORDER 0x00200000 - -#define wxUSER_COLOURS 0x00800000 - // Override CTL3D etc. control colour processing to - // allow own background colour - // OBSOLETE - use wxNO_3D instead -#define wxNO_3D 0x00800000 - // Override CTL3D or native 3D styles for children -#define wxCLIP_CHILDREN 0x00400000 - // Clip children when painting, which reduces flicker in - // e.g. frames and splitter windows, but can't be used in - // a panel where a static box must be 'transparent' (panel - // paints the background for it) - -// Add this style to a panel to get tab traversal working -// outside of dialogs. -#define wxTAB_TRAVERSAL 0x00080000 - -// Add this style if the control wants to get all keyboard messages (under -// Windows, it won't normally get the dialog navigation key events) -#define wxWANTS_CHARS 0x00040000 - -// Orientations -enum wxOrientation -{ - wxHORIZONTAL = 0x01, - wxVERTICAL = 0x02, - wxBOTH = (wxVERTICAL | wxHORIZONTAL) -}; - -#define wxCENTER_FRAME 0x04 /* centering into frame rather than screen */ - -/* - * Frame/dialog style flags - */ -#define wxSTAY_ON_TOP 0x8000 -#define wxICONIZE 0x4000 -#define wxMINIMIZE wxICONIZE -#define wxMAXIMIZE 0x2000 -#define wxTHICK_FRAME 0x1000 -#define wxSYSTEM_MENU 0x0800 -#define wxMINIMIZE_BOX 0x0400 -#define wxMAXIMIZE_BOX 0x0200 -#define wxTINY_CAPTION_HORIZ 0x0100 -#define wxTINY_CAPTION_VERT 0x0080 -#define wxRESIZE_BOX wxMAXIMIZE_BOX -#define wxRESIZE_BORDER 0x0040 -#define wxDIALOG_MODAL 0x0020 -#define wxDIALOG_MODELESS 0x0000 -/* Add for normal Windows frame behaviour */ -#define wxFRAME_FLOAT_ON_PARENT 0x0020 - - -#if WXWIN_COMPATIBILITY -#define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE -#endif - -#define wxDEFAULT_FRAME_STYLE (wxSYSTEM_MENU|wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) - -#ifdef __WXMSW__ -# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) -#else -// Under Unix, the dialogs don't have a system menu. Specifying -// wxSYSTEM_MENU here, will make a close button appear. -# define wxDEFAULT_DIALOG_STYLE (wxCAPTION) -#endif - - -/* - * Subwindow style flags - */ -#define wxRETAINED 0x0001 -#define wxBACKINGSTORE wxRETAINED -// wxCanvas or wxPanel can optionally have a thick frame under MS Windows. -// #define wxTHICK_FRAME 0x1000 - -/* - * wxToolBar style flags - */ -#define wxTB_3DBUTTONS 0x8000 -#define wxTB_HORIZONTAL 0x0002 -#define wxTB_VERTICAL 0x0004 -// Flatbar/Coolbar under Win98/ GTK 1.2 -#define wxTB_FLAT 0x0008 -// use native docking under GTK -#define wxTB_DOCKABLE 0x0010 - -/* - * wxMenuBar style flags - */ -// use native docking -#define wxMB_DOCKABLE 0x0001 - - -/* - * Apply to all panel items - */ -#define wxCOLOURED 0x0800 -// Alignment for panel item labels: replaces characters with zeros -// when creating label, so spaces can be included in string for alignment. -#define wxFIXED_LENGTH 0x0400 -#define wxALIGN_LEFT 0x0000 -#define wxALIGN_CENTER 0x0100 -#define wxALIGN_CENTRE 0x0100 -#define wxALIGN_RIGHT 0x0200 - -/* - * Styles for wxListBox - */ -#define wxLB_SORT 0x0010 -#define wxLB_SINGLE 0x0020 -#define wxLB_MULTIPLE 0x0040 -#define wxLB_EXTENDED 0x0080 -// wxLB_OWNERDRAW is Windows-only -#define wxLB_OWNERDRAW 0x0100 -#define wxLB_NEEDED_SB 0x0200 -#define wxLB_ALWAYS_SB 0x0400 -#define wxLB_HSCROLL wxHSCROLL - -/* - * wxTextCtrl style flags - */ -#define wxPROCESS_ENTER 0x0004 -#define wxPASSWORD 0x0008 -#define wxTE_PROCESS_ENTER wxPROCESS_ENTER -#define wxTE_PASSWORD wxPASSWORD -#define wxTE_READONLY 0x0010 -#define wxTE_MULTILINE 0x0020 -#define wxTE_PROCESS_TAB 0x0040 - -/* - * wxComboBox style flags - */ -#define wxCB_SIMPLE 0x0004 -#define wxCB_SORT 0x0008 -#define wxCB_READONLY 0x0010 -#define wxCB_DROPDOWN 0x0020 - -/* - * wxRadioBox/wxRadioButton style flags - */ - -// New, more intuitive names to specify majorDim argument - -// Same as wxRA_HORIZONTAL -#define wxRA_SPECIFY_COLS 0x0001 -// Same as wxRA_VERTICAL -#define wxRA_SPECIFY_ROWS 0x0002 - -// Old names for compatibility -#define wxRA_HORIZONTAL wxHORIZONTAL -#define wxRA_VERTICAL wxVERTICAL -#define wxRB_GROUP 0x0004 - -/* - * wxGauge flags - */ -#define wxGA_PROGRESSBAR 0x0004 -#define wxGA_HORIZONTAL wxHORIZONTAL -#define wxGA_VERTICAL wxVERTICAL -/* Windows only */ -#define wxGA_SMOOTH 0x0008 - -/* - * wxSlider flags - */ -#define wxSL_HORIZONTAL wxHORIZONTAL -#define wxSL_VERTICAL wxVERTICAL -// The next one is obsolete - use scroll events instead -#define wxSL_NOTIFY_DRAG 0x0000 -#define wxSL_AUTOTICKS 0x0008 -// #define wxSL_MANUALTICKS 0x0010 -#define wxSL_LABELS 0x0020 -#define wxSL_LEFT 0x0040 -#define wxSL_TOP 0x0080 -#define wxSL_RIGHT 0x0100 -#define wxSL_BOTTOM 0x0200 -#define wxSL_BOTH 0x0400 -#define wxSL_SELRANGE 0x0800 - -/* - * wxScrollBar flags - */ -#define wxSB_HORIZONTAL wxHORIZONTAL -#define wxSB_VERTICAL wxVERTICAL - -/* - * wxButton flags (Win32 only) - */ -#define wxBU_AUTODRAW 0x0004 -#define wxBU_NOAUTODRAW 0x0000 - -/* - * wxTreeCtrl flags - */ -#define wxTR_HAS_BUTTONS 0x0004 -#define wxTR_EDIT_LABELS 0x0008 -#define wxTR_LINES_AT_ROOT 0x0010 - -#define wxTR_SINGLE 0x0000 -#define wxTR_MULTIPLE 0x0020 -#define wxTR_EXTENDED 0x0040 -#define wxTR_HAS_VARIABLE_ROW_HIGHT 0x0080 - -/* - * wxListCtrl flags - */ -#define wxLC_ICON 0x0004 -#define wxLC_SMALL_ICON 0x0008 -#define wxLC_LIST 0x0010 -#define wxLC_REPORT 0x0020 -#define wxLC_ALIGN_TOP 0x0040 -#define wxLC_ALIGN_LEFT 0x0080 -#define wxLC_AUTOARRANGE 0x0100 -#define wxLC_USER_TEXT 0x0200 -#define wxLC_EDIT_LABELS 0x0400 -#define wxLC_NO_HEADER 0x0800 -#define wxLC_NO_SORT_HEADER 0x1000 -#define wxLC_SINGLE_SEL 0x2000 -#define wxLC_SORT_ASCENDING 0x4000 -#define wxLC_SORT_DESCENDING 0x8000 - -#define wxLC_MASK_TYPE (wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT) -#define wxLC_MASK_ALIGN (wxLC_ALIGN_TOP | wxLC_ALIGN_LEFT) -#define wxLC_MASK_SORT (wxLC_SORT_ASCENDING | wxLC_SORT_DESCENDING) - -// Omitted because (a) too much detail (b) not enough style flags -// #define wxLC_NO_SCROLL -// #define wxLC_NO_LABEL_WRAP -// #define wxLC_OWNERDRAW_FIXED -// #define wxLC_SHOW_SEL_ALWAYS - -/* - * wxSpinButton flags - */ - -#define wxSP_VERTICAL 0x0004 -#define wxSP_HORIZONTAL 0x0008 -#define wxSP_ARROW_KEYS 0x0010 -#define wxSP_WRAP 0x0020 - -/* - * wxSplitterWindow flags - */ - -#define wxSP_NOBORDER 0x0000 -#define wxSP_3D 0x0004 -#define wxSP_BORDER 0x0008 -#define wxSP_PERMIT_UNSPLIT 0x0010 -#define wxSP_LIVE_UPDATE 0x0020 - -/* - * wxFrame extra flags - */ - -// No title on taskbar -#define wxFRAME_TOOL_WINDOW 0x0004 - -/* - * wxTabCtrl flags - */ - -#define wxTC_MULTILINE 0x0000 -#define wxTC_RIGHTJUSTIFY 0x0004 -#define wxTC_FIXEDWIDTH 0x0008 -#define wxTC_OWNERDRAW 0x0010 - -/* - * wxNotebook flags - */ -#define wxNB_FIXEDWIDTH 0x0008 - -/* - * wxStatusBar95 flags - */ - -#define wxST_SIZEGRIP 0x0002 - -/* - * wxStaticLine flags - */ -#define wxLI_HORIZONTAL wxHORIZONTAL -#define wxLI_VERTICAL wxVERTICAL - -/* - * wxProgressDialog flags - */ -#define wxPD_CAN_ABORT 0x0001 -#define wxPD_APP_MODAL 0x0002 -#define wxPD_AUTO_HIDE 0x0004 - -/* - * GDI descriptions - */ - -enum { -// Text font families - wxDEFAULT = 70, - wxDECORATIVE, - wxROMAN, - wxSCRIPT, - wxSWISS, - wxMODERN, - wxTELETYPE, /* @@@@ */ - -// Proportional or Fixed width fonts (not yet used) - wxVARIABLE = 80, - wxFIXED, - - wxNORMAL = 90, - wxLIGHT, - wxBOLD, -// Also wxNORMAL for normal (non-italic text) - wxITALIC, - wxSLANT, - -// Pen styles - wxSOLID = 100, - wxDOT, - wxLONG_DASH, - wxSHORT_DASH, - wxDOT_DASH, - wxUSER_DASH, - - wxTRANSPARENT, - -// Brush & Pen Stippling. Note that a stippled pen cannot be dashed!! -// Note also that stippling a Pen IS meaningfull, because a Line is -// drawn with a Pen, and without any Brush -- and it can be stippled. - wxSTIPPLE = 110, - wxBDIAGONAL_HATCH, - wxCROSSDIAG_HATCH, - wxFDIAGONAL_HATCH, - wxCROSS_HATCH, - wxHORIZONTAL_HATCH, - wxVERTICAL_HATCH, -#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH) - - wxJOIN_BEVEL = 120, - wxJOIN_MITER, - wxJOIN_ROUND, - - wxCAP_ROUND = 130, - wxCAP_PROJECTING, - wxCAP_BUTT -}; - - -// Logical ops -typedef enum -{ - wxCLEAR, // 0 - wxXOR, // src XOR dst - wxINVERT, // NOT dst - wxOR_REVERSE, // src OR (NOT dst) - wxAND_REVERSE,// src AND (NOT dst) - wxCOPY, // src - wxAND, // src AND dst - wxAND_INVERT, // (NOT src) AND dst - wxNO_OP, // dst - wxNOR, // (NOT src) AND (NOT dst) - wxEQUIV, // (NOT src) XOR dst - wxSRC_INVERT, // (NOT src) - wxOR_INVERT, // (NOT src) OR dst - wxNAND, // (NOT src) OR (NOT dst) - wxOR, // src OR dst - wxSET, // 1 - wxSRC_OR, // source _bitmap_ OR destination - wxSRC_AND // source _bitmap_ AND destination -} form_ops_t; - -// Flood styles -#define wxFLOOD_SURFACE 1 -#define wxFLOOD_BORDER 2 - -// Polygon filling mode -#define wxODDEVEN_RULE 1 -#define wxWINDING_RULE 2 - -// ToolPanel in wxFrame -#define wxTOOL_TOP 1 -#define wxTOOL_BOTTOM 2 -#define wxTOOL_LEFT 3 -#define wxTOOL_RIGHT 4 - -// Dialog specifiers/return values - -#define wxOK 0x0001 -#define wxYES_NO 0x0002 -#define wxCANCEL 0x0004 -#define wxYES 0x0008 -#define wxNO 0x0010 - -#define wxICON_EXCLAMATION 0x0020 -#define wxICON_HAND 0x0040 -#define wxICON_QUESTION 0x0080 -#define wxICON_INFORMATION 0x0100 - -#define wxICON_STOP wxICON_HAND -#define wxICON_ASTERISK wxICON_INFORMATION -#define wxICON_MASK (0x0020|0x0040|0x0080|0x0100) - -#define wxCENTRE 0x0200 -#define wxCENTER wxCENTRE - -// Possible SetSize flags - -// Use internally-calculated width if -1 -#define wxSIZE_AUTO_WIDTH 0x0001 -// Use internally-calculated height if -1 -#define wxSIZE_AUTO_HEIGHT 0x0002 -// Use internally-calculated width and height if each is -1 -#define wxSIZE_AUTO (wxSIZE_AUTO_WIDTH|wxSIZE_AUTO_HEIGHT) -// Ignore missing (-1) dimensions (use existing). -// For readability only: test for wxSIZE_AUTO_WIDTH/HEIGHT in code. -#define wxSIZE_USE_EXISTING 0x0000 -// Allow -1 as a valid position -#define wxSIZE_ALLOW_MINUS_ONE 0x0004 -// Don't do parent client adjustments (for implementation only) -#define wxSIZE_NO_ADJUSTMENTS 0x0008 - -enum wxDataFormatId -{ - wxDF_INVALID = 0, - wxDF_TEXT = 1, /* CF_TEXT */ - wxDF_BITMAP = 2, /* CF_BITMAP */ - wxDF_METAFILE = 3, /* CF_METAFILEPICT */ - wxDF_SYLK = 4, - wxDF_DIF = 5, - wxDF_TIFF = 6, - wxDF_OEMTEXT = 7, /* CF_OEMTEXT */ - wxDF_DIB = 8, /* CF_DIB */ - wxDF_PALETTE = 9, - wxDF_PENDATA = 10, - wxDF_RIFF = 11, - wxDF_WAVE = 12, - wxDF_UNICODETEXT = 13, - wxDF_ENHMETAFILE = 14, - wxDF_FILENAME = 15, /* CF_HDROP */ - wxDF_LOCALE = 16, - wxDF_PRIVATE = 20, - wxDF_MAX -}; - -/* Virtual keycodes */ - -enum wxKeyCode -{ - WXK_BACK = 8, - WXK_TAB = 9, - WXK_RETURN = 13, - WXK_ESCAPE = 27, - WXK_SPACE = 32, - WXK_DELETE = 127, - - 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_PRIOR, /* Page up */ - WXK_NEXT, /* Page down */ - 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_PRIOR, - WXK_NUMPAD_PAGEUP, - WXK_NUMPAD_NEXT, - 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 -}; - -/* OS mnemonics -- Identify the running OS (useful for Windows) - * [Not all platforms are currently available or supported] */ -enum -{ - wxUNKNOWN_PLATFORM, - wxCURSES, // Text-only CURSES - wxXVIEW_X, // Sun's XView OpenLOOK toolkit - wxMOTIF_X, // OSF Motif 1.x.x - wxCOSE_X, // OSF Common Desktop Environment - wxNEXTSTEP, // NeXTStep - wxMACINTOSH, // Apple System 7 - wxGTK, // GTK - wxQT, // Qt - wxGEOS, // GEOS - wxOS2_PM, // OS/2 Workplace - wxWINDOWS, // Windows or WfW - wxPENWINDOWS, // Windows for Pen Computing - wxWINDOWS_NT, // Windows NT - wxWIN32S, // Windows 32S API - wxWIN95, // Windows 95 - wxWIN386 // Watcom 32-bit supervisor modus -}; - -/* Standard menu identifiers */ -#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_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 - -// Mapping modes (as per Windows) -#define wxMM_TEXT 1 -#define wxMM_LOMETRIC 2 -#define wxMM_HIMETRIC 3 -#define wxMM_LOENGLISH 4 -#define wxMM_HIENGLISH 5 -#define wxMM_TWIPS 6 -#define wxMM_ISOTROPIC 7 -#define wxMM_ANISOTROPIC 8 - -#define wxMM_POINTS 9 -#define wxMM_METRIC 10 - -/* Shortcut for easier dialog-unit-to-pixel conversion */ -#define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) - -/* Paper types */ -typedef enum { - 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 - - 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 - -} wxPaperSize ; - -/* Printing orientation */ -#ifndef wxPORTRAIT -#define wxPORTRAIT 1 -#define wxLANDSCAPE 2 -#endif - -/* Duplex printing modes - */ - -typedef enum { - wxDUPLEX_SIMPLEX, // Non-duplex - wxDUPLEX_HORIZONTAL, - wxDUPLEX_VERTICAL -} wxDuplexMode; - -/* Print quality. - */ - -#define wxPRINT_QUALITY_HIGH -1 -#define wxPRINT_QUALITY_MEDIUM -2 -#define wxPRINT_QUALITY_LOW -3 -#define wxPRINT_QUALITY_DRAFT -4 - -typedef int wxPrintQuality; - -/* Print mode (currently PostScript only) - */ - -typedef enum { - wxPRINT_MODE_NONE = 0, - wxPRINT_MODE_PREVIEW = 1, // Preview in external application - wxPRINT_MODE_FILE = 2, // Print to file - wxPRINT_MODE_PRINTER = 3 // Send to printer -} wxPrintMode; - - -#ifdef __WXMSW__ -// Stand-ins for Windows types, to avoid #including all of windows.h -typedef unsigned long WXHWND; -typedef unsigned long WXHANDLE; -typedef unsigned long WXHICON; -typedef unsigned long WXHFONT; -typedef unsigned long WXHMENU; -typedef unsigned long WXHPEN; -typedef unsigned long WXHBRUSH; -typedef unsigned long WXHPALETTE; -typedef unsigned long WXHCURSOR; -typedef unsigned long WXHRGN; -typedef unsigned long WXHACCEL; -typedef unsigned long WXHINSTANCE; -typedef unsigned long WXHBITMAP; -typedef unsigned long WXHIMAGELIST; -typedef unsigned long WXHGLOBAL; -typedef unsigned long WXHDC; -typedef unsigned int WXUINT; -typedef unsigned long WXDWORD; -typedef unsigned short WXWORD; -typedef unsigned int WXWPARAM; -typedef long WXLPARAM; -typedef unsigned long WXCOLORREF; -typedef void * WXRGNDATA; -typedef void * WXMSG; -typedef unsigned long WXHCONV; -typedef unsigned long WXHKEY; -typedef unsigned long WXHTREEITEM; - -typedef void * WXDRAWITEMSTRUCT; -typedef void * WXMEASUREITEMSTRUCT; -typedef void * WXLPCREATESTRUCT; - -#if defined(__GNUWIN32__) || defined(__WXWINE__) - typedef int (*WXFARPROC)(); -#elif defined(__WIN32__) - typedef int (__stdcall *WXFARPROC)(); -#else - typedef int (*WXFARPROC)(); -#endif - -typedef WXHWND WXWidget; -#endif // MSW - -#ifdef __WXMOTIF__ -/* Stand-ins for X/Xt/Motif types */ -typedef void* WXWindow; -typedef void* WXWidget; -typedef void* WXAppContext; -typedef void* WXColormap; -typedef void WXDisplay; -typedef void WXEvent; -typedef void* WXCursor; -typedef void* WXPixmap; -typedef void* WXFontStructPtr; -typedef void* WXGC; -typedef void* WXRegion; -typedef void* WXFont; -typedef void* WXImage; -typedef void* WXCursor; -typedef void* WXFontList; -#endif // Motif - -#ifdef __WXGTK__ -/* Stand-ins for GLIB types */ -typedef int gint; -typedef unsigned guint; -typedef unsigned long gulong; -typedef void* gpointer; - -/* Stand-ins for GDK types */ -typedef gulong GdkAtom; -typedef struct _GdkColor GdkColor; -typedef struct _GdkColormap GdkColormap; -typedef struct _GdkFont GdkFont; -typedef struct _GdkGC GdkGC; -typedef struct _GdkWindow GdkWindow; -typedef struct _GdkWindow GdkBitmap; -typedef struct _GdkWindow GdkPixmap; -typedef struct _GdkCursor GdkCursor; -typedef struct _GdkRegion GdkRegion; -typedef struct _GdkDragContext GdkDragContext; - -/* Stand-ins for GTK types */ -typedef struct _GtkWidget GtkWidget; -typedef struct _GtkStyle GtkStyle; -typedef struct _GtkAdjustment GtkAdjustment; -typedef struct _GtkList GtkList; -typedef struct _GtkToolbar GtkToolbar; -typedef struct _GtkTooltips GtkTooltips; -typedef struct _GtkNotebook GtkNotebook; -typedef struct _GtkNotebookPage GtkNotebookPage; -typedef struct _GtkAccelGroup GtkAccelGroup; -typedef struct _GtkItemFactory GtkItemFactory; -typedef struct _GtkSelectionData GtkSelectionData; - -typedef GtkWidget *WXWidget; -#endif // GTK - -// This is required because of clashing macros in windows.h, which may be -// included before or after wxWindows classes, and therefore must be -// disabled here before any significant wxWindows headers are included. -#ifdef __WXMSW__ -#ifdef GetClassInfo -#undef GetClassInfo -#endif - -#ifdef GetClassName -#undef GetClassName -#endif - -#ifdef DrawText -#undef DrawText -#endif - -#ifdef GetCharWidth -#undef GetCharWidth -#endif - -#ifdef StartDoc -#undef StartDoc -#endif - -#ifdef FindWindow -#undef FindWindow -#endif - -#ifdef FindResource -#undef FindResource -#endif -#endif - // __WXMSW__ - -// --------------------------------------------------------------------------- -// macro to define a class without copy ctor nor assignment operator -// --------------------------------------------------------------------------- - -#define DECLARE_NO_COPY_CLASS(classname) \ - private: \ - classname(const classname&); \ - classname& operator=(const classname&) - -#endif - // _WX_DEFS_H_ diff --git a/include/wx/dialog.h b/include/wx/dialog.h deleted file mode 100644 index 823d2d4573..0000000000 --- a/include/wx/dialog.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_DIALOG_H_BASE_ -#define _WX_DIALOG_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/dialog.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/dialog.h" -#elif defined(__WXGTK__) -#include "wx/gtk/dialog.h" -#elif defined(__WXQT__) -#include "wx/qt/dialog.h" -#elif defined(__WXMAC__) -#include "wx/mac/dialog.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dialog.h" -#endif - -#endif - // _WX_DIALOG_H_BASE_ diff --git a/include/wx/dirdlg.h b/include/wx/dirdlg.h deleted file mode 100644 index f2d1dbbdf2..0000000000 --- a/include/wx/dirdlg.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _WX_DIRDLG_H_BASE_ -#define _WX_DIRDLG_H_BASE_ - -#if defined(__WXMSW__) -#if defined(__WIN16__) || defined(__GNUWIN32__) || defined(__SALFORDC__) -#include "wx/generic/dirdlgg.h" -#else -#include "wx/msw/dirdlg.h" -#endif -#elif defined(__WXMOTIF__) -#include "wx/generic/dirdlgg.h" -#elif defined(__WXGTK__) -#include "wx/generic/dirdlgg.h" -#elif defined(__WXQT__) -#include "wx/qt/dirdlg.h" -#elif defined(__WXMAC__) -#include "wx/mac/dirdlg.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dirdlg.h" -#endif - -#endif - // _WX_DIRDLG_H_BASE_ diff --git a/include/wx/dnd.h b/include/wx/dnd.h deleted file mode 100644 index d67e09fc7a..0000000000 --- a/include/wx/dnd.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef _WX_DND_H_BASE_ -#define _WX_DND_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/dataobj.h" -#include "wx/msw/ole/dropsrc.h" -#include "wx/msw/ole/droptgt.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/dnd.h" -#elif defined(__WXGTK__) -#include "wx/gtk/dnd.h" -#elif defined(__WXQT__) -#include "wx/qt/dnd.h" -#elif defined(__WXMAC__) -#include "wx/mac/dnd.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/dnd.h" -#endif - -#endif - // _WX_DND_H_BASE_ diff --git a/include/wx/docmdi.h b/include/wx/docmdi.h deleted file mode 100644 index 1fd76e1abe..0000000000 --- a/include/wx/docmdi.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: docmdi.h -// Purpose: Frame classes for MDI document/view applications -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DOCMDI_H_ -#define _WX_DOCMDI_H_ - -#ifdef __GNUG__ -#pragma interface "docmdi.h" -#endif - -#include "wx/docview.h" -#include "wx/mdi.h" - -/* - * Use this instead of wxMDIParentFrame - */ - -class WXDLLEXPORT wxDocMDIParentFrame: public wxMDIParentFrame -{ - DECLARE_CLASS(wxDocMDIParentFrame) - public: - wxDocMDIParentFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id, - const wxString& title, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); - - // Extend event processing to search the document manager's event table - virtual bool ProcessEvent(wxEvent& event); - - wxDocManager *GetDocumentManager(void) const { return m_docManager; } - - void OnExit(wxCommandEvent& event); - void OnMRUFile(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - protected: - wxDocManager *m_docManager; - - -DECLARE_EVENT_TABLE() -}; - -/* - * Use this instead of wxMDIChildFrame - */ - -class WXDLLEXPORT wxDocMDIChildFrame: public wxMDIChildFrame -{ - DECLARE_CLASS(wxDocMDIChildFrame) - - public: - wxDocMDIChildFrame(wxDocument *doc, wxView *view, wxMDIParentFrame *frame, wxWindowID id, - const wxString& title, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long type = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); - ~wxDocMDIChildFrame(void); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - void OnActivate(wxActivateEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - inline wxDocument *GetDocument(void) const { return m_childDocument; } - inline wxView *GetView(void) const { return m_childView; } - inline void SetDocument(wxDocument *doc) { m_childDocument = doc; } - inline void SetView(wxView *view) { m_childView = view; } - protected: - wxDocument* m_childDocument; - wxView* m_childView; - -DECLARE_EVENT_TABLE() - -}; - -#endif - // _WX_DOCMDI_H_ diff --git a/include/wx/docview.h b/include/wx/docview.h deleted file mode 100644 index 598d84c125..0000000000 --- a/include/wx/docview.h +++ /dev/null @@ -1,581 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: docview.h -// Purpose: Doc/View classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DOCH__ -#define _WX_DOCH__ - -#ifdef __GNUG__ - #pragma interface "docview.h" -#endif - -#include "wx/defs.h" -#include "wx/list.h" -#include "wx/cmndata.h" -#include "wx/string.h" - -#if wxUSE_PRINTING_ARCHITECTURE - #include "wx/print.h" -#endif - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxDocument; -class WXDLLEXPORT wxView; -class WXDLLEXPORT wxDocTemplate; -class WXDLLEXPORT wxDocManager; -class WXDLLEXPORT wxPrintInfo; -class WXDLLEXPORT wxCommand; -class WXDLLEXPORT wxCommandProcessor; -class WXDLLEXPORT wxFileHistory; -class WXDLLEXPORT wxConfigBase; - -#include "wx/ioswrap.h" - -// Document manager flags -enum -{ - wxDOC_SDI = 1, - wxDOC_MDI, - wxDOC_NEW, - wxDOC_SILENT, - wxDEFAULT_DOCMAN_FLAGS = wxDOC_SDI -}; - -// Document template flags -enum -{ - wxTEMPLATE_VISIBLE = 1, - wxTEMPLATE_INVISIBLE, - wxDEFAULT_TEMPLATE_FLAGS = wxTEMPLATE_VISIBLE -}; - -#define wxMAX_FILE_HISTORY 9 - -class WXDLLEXPORT wxDocument : public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxDocument) - -public: - wxDocument(wxDocument *parent = (wxDocument *) NULL); - ~wxDocument(); - - // accessors - void SetFilename(const wxString& filename, bool notifyViews = FALSE); - wxString GetFilename() const { return m_documentFile; } - - void SetTitle(const wxString& title) { m_documentTitle = title; }; - wxString GetTitle() const { return m_documentTitle; } - - void SetDocumentName(const wxString& name) { m_documentTypeName = name; }; - wxString GetDocumentName() const { return m_documentTypeName; } - - bool GetDocumentSaved() const { return m_savedYet; } - void SetDocumentSaved(bool saved = TRUE) { m_savedYet = saved; } - - virtual bool Close(); - virtual bool Save(); - virtual bool SaveAs(); - virtual bool Revert(); - - virtual ostream& SaveObject(ostream& stream); - virtual istream& LoadObject(istream& stream); - - // Called by wxWindows - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool OnNewDocument(); - virtual bool OnCloseDocument(); - - // Prompts for saving if about to close a modified document. Returns TRUE - // if ok to close the document (may have saved in the meantime, or set - // modified to FALSE) - virtual bool OnSaveModified(); - - // Called by framework if created automatically by the default document - // manager: gives document a chance to initialise and (usually) create a - // view - virtual bool OnCreate(const wxString& path, long flags); - - // By default, creates a base wxCommandProcessor. - virtual wxCommandProcessor *OnCreateCommandProcessor(); - virtual wxCommandProcessor *GetCommandProcessor() const { return m_commandProcessor; } - virtual void SetCommandProcessor(wxCommandProcessor *proc) { m_commandProcessor = proc; } - - // Called after a view is added or removed. The default implementation - // deletes the document if this is there are no more views. - virtual void OnChangedViewList(); - - virtual bool DeleteContents(); - - virtual bool Draw(wxDC&); - virtual bool IsModified() const { return m_documentModified; } - virtual void Modify(bool mod) { m_documentModified = mod; } - - virtual bool AddView(wxView *view); - virtual bool RemoveView(wxView *view); - wxList& GetViews() const { return (wxList&) m_documentViews; } - wxView *GetFirstView() const; - - virtual void UpdateAllViews(wxView *sender = (wxView *) NULL, wxObject *hint = (wxObject *) NULL); - - // Remove all views (because we're closing the document) - virtual bool DeleteAllViews(); - - // Other stuff - virtual wxDocManager *GetDocumentManager() const; - virtual wxDocTemplate *GetDocumentTemplate() const { return m_documentTemplate; } - virtual void SetDocumentTemplate(wxDocTemplate *temp) { m_documentTemplate = temp; } - - // Get title, or filename if no title, else [unnamed] - virtual bool GetPrintableName(wxString& buf) const; - - // Returns a window that can be used as a parent for document-related - // dialogs. Override if necessary. - virtual wxWindow *GetDocumentWindow() const; - -protected: - wxList m_documentViews; - wxString m_documentFile; - wxString m_documentTitle; - wxString m_documentTypeName; - wxDocTemplate* m_documentTemplate; - bool m_documentModified; - wxDocument* m_documentParent; - wxCommandProcessor* m_commandProcessor; - bool m_savedYet; -}; - -class WXDLLEXPORT wxView: public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxView) - -public: - // wxView(wxDocument *doc = (wxDocument *) NULL); - wxView(); - ~wxView(); - - wxDocument *GetDocument() const { return m_viewDocument; } - void SetDocument(wxDocument *doc); - - wxString GetViewName() const { return m_viewTypeName; } - void SetViewName(const wxString& name) { m_viewTypeName = name; }; - - wxFrame *GetFrame() const { return m_viewFrame ; } - void SetFrame(wxFrame *frame) { m_viewFrame = frame; } - - virtual void OnActivateView(bool activate, wxView *activeView, wxView *deactiveView); - virtual void OnDraw(wxDC *dc) = 0; - virtual void OnPrint(wxDC *dc, wxObject *info); - virtual void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); - virtual void OnChangeFilename(); - - // Called by framework if created automatically by the default document - // manager class: gives view a chance to initialise - virtual bool OnCreate(wxDocument *WXUNUSED(doc), long WXUNUSED(flags)) { return TRUE; }; - - // Checks if the view is the last one for the document; if so, asks user - // to confirm save data (if modified). If ok, deletes itself and returns - // TRUE. - virtual bool Close(bool deleteWindow = TRUE); - - // Override to do cleanup/veto close - virtual bool OnClose(bool deleteWindow); - -#if WXWIN_COMPATIBILITY - // Defeat compiler warning - bool OnClose() { return wxEvtHandler::OnClose(); } -#endif - - // Extend event processing to search the document's event table - virtual bool ProcessEvent(wxEvent& event); - - // A view's window can call this to notify the view it is (in)active. - // The function then notifies the document manager. - virtual void Activate(bool activate); - - wxDocManager *GetDocumentManager() const - { return m_viewDocument->GetDocumentManager(); } - -#if wxUSE_PRINTING_ARCHITECTURE - virtual wxPrintout *OnCreatePrintout(); -#endif - -protected: - wxDocument* m_viewDocument; - wxString m_viewTypeName; - wxFrame* m_viewFrame; -}; - -// Represents user interface (and other) properties of documents and views -class WXDLLEXPORT wxDocTemplate: public wxObject -{ -DECLARE_CLASS(wxDocTemplate) - -friend class WXDLLEXPORT wxDocManager; - -public: - // Associate document and view types. They're for identifying what view is - // associated with what template/document type - wxDocTemplate(wxDocManager *manager, - const wxString& descr, - const wxString& filter, - const wxString& dir, - const wxString& ext, - const wxString& docTypeName, - const wxString& viewTypeName, - wxClassInfo *docClassInfo = (wxClassInfo *) NULL, - wxClassInfo *viewClassInfo = (wxClassInfo *)NULL, - long flags = wxDEFAULT_TEMPLATE_FLAGS); - - ~wxDocTemplate(); - - // By default, these two member functions dynamically creates document and - // view using dynamic instance construction. Override these if you need a - // different method of construction. - virtual wxDocument *CreateDocument(const wxString& path, long flags = 0); - virtual wxView *CreateView(wxDocument *doc, long flags = 0); - - wxString GetDefaultExtension() const { return m_defaultExt; }; - wxString GetDescription() const { return m_description; } - wxString GetDirectory() const { return m_directory; }; - wxDocManager *GetDocumentManager() const { return m_documentManager; } - void SetDocumentManager(wxDocManager *manager) { m_documentManager = manager; } - wxString GetFileFilter() const { return m_fileFilter; }; - long GetFlags() const { return m_flags; }; - virtual wxString GetViewName() const { return m_viewTypeName; } - virtual wxString GetDocumentName() const { return m_docTypeName; } - - void SetFileFilter(const wxString& filter) { m_fileFilter = filter; }; - void SetDirectory(const wxString& dir) { m_directory = dir; }; - void SetDescription(const wxString& descr) { m_description = descr; }; - void SetDefaultExtension(const wxString& ext) { m_defaultExt = ext; }; - void SetFlags(long flags) { m_flags = flags; }; - - bool IsVisible() const { return ((m_flags & wxTEMPLATE_VISIBLE) == wxTEMPLATE_VISIBLE); } - - virtual bool FileMatchesTemplate(const wxString& path); - -protected: - long m_flags; - wxString m_fileFilter; - wxString m_directory; - wxString m_description; - wxString m_defaultExt; - wxString m_docTypeName; - wxString m_viewTypeName; - wxDocManager* m_documentManager; - - // For dynamic creation of appropriate instances. - wxClassInfo* m_docClassInfo; - wxClassInfo* m_viewClassInfo; -}; - -// One object of this class may be created in an application, to manage all -// the templates and documents. -class WXDLLEXPORT wxDocManager: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxDocManager) - -public: - wxDocManager(long flags = wxDEFAULT_DOCMAN_FLAGS, bool initialize = TRUE); - ~wxDocManager(); - - virtual bool Initialize(); - - // Handlers for common user commands - void OnFileClose(wxCommandEvent& event); - void OnFileNew(wxCommandEvent& event); - void OnFileOpen(wxCommandEvent& event); - void OnFileRevert(wxCommandEvent& event); - void OnFileSave(wxCommandEvent& event); - void OnFileSaveAs(wxCommandEvent& event); - void OnPrint(wxCommandEvent& event); - void OnPrintSetup(wxCommandEvent& event); - void OnPreview(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - virtual wxDocument *CreateDocument(const wxString& path, long flags = 0); - virtual wxView *CreateView(wxDocument *doc, long flags = 0); - virtual void DeleteTemplate(wxDocTemplate *temp, long flags = 0); - virtual bool FlushDoc(wxDocument *doc); - virtual wxDocTemplate *MatchTemplate(const wxString& path); - virtual wxDocTemplate *SelectDocumentPath(wxDocTemplate **templates, - int noTemplates, wxString& path, long flags, bool save = FALSE); - virtual wxDocTemplate *SelectDocumentType(wxDocTemplate **templates, - int noTemplates); - virtual wxDocTemplate *SelectViewType(wxDocTemplate **templates, - int noTemplates); - virtual wxDocTemplate *FindTemplateForPath(const wxString& path); - - void AssociateTemplate(wxDocTemplate *temp); - void DisassociateTemplate(wxDocTemplate *temp); - - wxDocument *GetCurrentDocument() const; - - void SetMaxDocsOpen(int n) { m_maxDocsOpen = n; } - int GetMaxDocsOpen() const { return m_maxDocsOpen; } - - // Add and remove a document from the manager's list - void AddDocument(wxDocument *doc); - void RemoveDocument(wxDocument *doc); - - // Clear remaining documents and templates - bool Clear(bool force = TRUE); - - // Views or windows should inform the document manager - // when a view is going in or out of focus - virtual void ActivateView(wxView *view, bool activate = TRUE, bool deleting = FALSE); - virtual wxView *GetCurrentView() const; - - virtual wxList& GetDocuments() const { return (wxList&) m_docs; } - - // Make a default document name - virtual bool MakeDefaultName(wxString& buf); - - virtual wxFileHistory *OnCreateFileHistory(); - virtual wxFileHistory *GetFileHistory() const { return m_fileHistory; } - - // File history management - virtual void AddFileToHistory(const wxString& file); - virtual int GetNoHistoryFiles() const; - virtual wxString GetHistoryFile(int i) const; - virtual void FileHistoryUseMenu(wxMenu *menu); - virtual void FileHistoryRemoveMenu(wxMenu *menu); -#if wxUSE_CONFIG - virtual void FileHistoryLoad(wxConfigBase& config); - virtual void FileHistorySave(wxConfigBase& config); -#endif // wxUSE_CONFIG - - virtual void FileHistoryAddFilesToMenu(); - virtual void FileHistoryAddFilesToMenu(wxMenu* menu); - -protected: - long m_flags; - int m_defaultDocumentNameCounter; - int m_maxDocsOpen; - wxList m_docs; - wxList m_templates; - wxView* m_currentView; - wxFileHistory* m_fileHistory; - - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// A default child frame -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxDocChildFrame : public wxFrame -{ - DECLARE_CLASS(wxDocChildFrame) - -public: - wxDocChildFrame(wxDocument *doc, - wxView *view, - wxFrame *frame, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long type = wxDEFAULT_FRAME_STYLE, - const wxString& name = "frame"); - ~wxDocChildFrame(); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - void OnActivate(wxActivateEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - wxDocument *GetDocument() const { return m_childDocument; } - wxView *GetView() const { return m_childView; } - void SetDocument(wxDocument *doc) { m_childDocument = doc; } - void SetView(wxView *view) { m_childView = view; } - -protected: - wxDocument* m_childDocument; - wxView* m_childView; - - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// A default parent frame -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxDocParentFrame : public wxFrame -{ - DECLARE_CLASS(wxDocParentFrame) - -public: - wxDocParentFrame(wxDocManager *manager, - wxFrame *frame, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long type = wxDEFAULT_FRAME_STYLE, - const wxString& name = "frame"); - - // Extend event processing to search the document manager's event table - virtual bool ProcessEvent(wxEvent& event); - - wxDocManager *GetDocumentManager() const { return m_docManager; } - - void OnExit(wxCommandEvent& event); - void OnMRUFile(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - -protected: - wxDocManager *m_docManager; - - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// Provide simple default printing facilities -// ---------------------------------------------------------------------------- - -#if wxUSE_PRINTING_ARCHITECTURE -class WXDLLEXPORT wxDocPrintout : public wxPrintout -{ - DECLARE_DYNAMIC_CLASS(wxDocPrintout) - -public: - wxDocPrintout(wxView *view = (wxView *) NULL, const wxString& title = "Printout"); - bool OnPrintPage(int page); - bool HasPage(int page); - bool OnBeginDocument(int startPage, int endPage); - void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo); - - virtual wxView *GetView() { return m_printoutView; } - -protected: - wxView* m_printoutView; -}; -#endif // wxUSE_PRINTING_ARCHITECTURE - -// ---------------------------------------------------------------------------- -// Command processing framework -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxCommand : public wxObject -{ - DECLARE_CLASS(wxCommand) - -public: - wxCommand(bool canUndoIt = FALSE, const wxString& name = ""); - ~wxCommand(); - - // Override this to perform a command - virtual bool Do() = 0; - - // Override this to undo a command - virtual bool Undo() = 0; - - virtual bool CanUndo() const { return m_canUndo; } - virtual wxString GetName() const { return m_commandName; } - -protected: - bool m_canUndo; - wxString m_commandName; -}; - -class WXDLLEXPORT wxCommandProcessor : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxCommandProcessor) - -public: - wxCommandProcessor(int maxCommands = 100); - ~wxCommandProcessor(); - - // Pass a command to the processor. The processor calls Do(); if - // successful, is appended to the command history unless storeIt is FALSE. - virtual bool Submit(wxCommand *command, bool storeIt = TRUE); - virtual bool Undo(); - virtual bool Redo(); - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - // Call this to manage an edit menu. - void SetEditMenu(wxMenu *menu) { m_commandEditMenu = menu; } - wxMenu *GetEditMenu() const { return m_commandEditMenu; } - virtual void SetMenuStrings(); - virtual void Initialize(); - - wxList& GetCommands() const { return (wxList&) m_commands; } - int GetMaxCommands() const { return m_maxNoCommands; } - virtual void ClearCommands(); - -protected: - int m_maxNoCommands; - wxList m_commands; - wxNode* m_currentCommand; - wxMenu* m_commandEditMenu; -}; - -// ---------------------------------------------------------------------------- -// File history management -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileHistory : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFileHistory) - -public: - wxFileHistory(int maxFiles = 9); - ~wxFileHistory(); - - // Operations - virtual void AddFileToHistory(const wxString& file); - virtual int GetMaxFiles() const { return m_fileMaxFiles; } - virtual void UseMenu(wxMenu *menu); - - // Remove menu from the list (MDI child may be closing) - virtual void RemoveMenu(wxMenu *menu); - -#if wxUSE_CONFIG - virtual void Load(wxConfigBase& config); - virtual void Save(wxConfigBase& config); -#endif // wxUSE_CONFIG - - virtual void AddFilesToMenu(); - virtual void AddFilesToMenu(wxMenu* menu); // Single menu - - // Accessors - virtual wxString GetHistoryFile(int i) const; - - // A synonym for GetNoHistoryFiles - virtual int GetCount() const { return m_fileHistoryN; } - int GetNoHistoryFiles() const { return m_fileHistoryN; } - - wxList& GetMenus() const { return (wxList&) m_fileMenus; } - -protected: - // Last n files - wxChar** m_fileHistory; - // Number of files saved - int m_fileHistoryN; - // Menus to maintain (may need several for an MDI app) - wxList m_fileMenus; - // Max files to maintain - int m_fileMaxFiles; -}; - -// For compatibility with existing file formats: -// converts from/to a stream to/from a temporary file. -bool WXDLLEXPORT wxTransferFileToStream(const wxString& filename, ostream& stream); -bool WXDLLEXPORT wxTransferStreamToFile(istream& stream, const wxString& filename); - -#endif // _WX_DOCH__ diff --git a/include/wx/dragimag.h b/include/wx/dragimag.h deleted file mode 100644 index dbbce924d2..0000000000 --- a/include/wx/dragimag.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _WX_DRAGIMAG_H_BASE_ -#define _WX_DRAGIMAG_H_BASE_ - -#if defined(__WXMSW__) -#ifdef __WIN16__ -#include "wx/generic/dragimag.h" -#else -#include "wx/msw/dragimag.h" -#endif -#elif defined(__WXMOTIF__) -#include "wx/generic/dragimag.h" -#elif defined(__WXGTK__) -#include "wx/generic/dragimag.h" -#elif defined(__WXQT__) -#include "wx/generic/dragimag.h" -#elif defined(__WXMAC__) -#include "wx/generic/dragimag.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/dragimag.h" -#endif - -#endif - // _WX_DRAGIMAG_H_BASE_ diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h deleted file mode 100644 index 68a16fceaf..0000000000 --- a/include/wx/dynlib.h +++ /dev/null @@ -1,152 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dynlib.cpp -// Purpose: Dynamic library management -// Author: Guilhem Lavaux -// Modified by: -// Created: 20/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DYNLIB_H__ -#define _WX_DYNLIB_H__ - -#ifdef __GNUG__ -# pragma interface -#endif - -#include - -#if wxUSE_DYNLIB_CLASS - -#include -#include -#include - -// this is normally done by configure, but I leave it here for now... -#if defined(__UNIX__) && !(defined(HAVE_DLOPEN) || defined(HAVE_SHL_LOAD)) -# if defined(__LINUX__) || defined(__SOLARIS__) || defined(__SUNOS__) || defined(__FREEBSD__) -# define HAVE_DLOPEN -# elif defined(__HPUX__) -# define HAVE_SHL_LOAD -# endif // Unix flavour -#endif // !Unix or already have some HAVE_xxx defined - -#if defined(HAVE_DLOPEN) -# include - typedef void *wxDllType; -#elif defined(HAVE_SHL_LOAD) -# include - typedef shl_t wxDllType; -#elif defined(__WINDOWS__) -# include - typedef HMODULE wxDllType; -#elif defined(__WXMAC__) - typedef CFragConnectionID wxDllType; -#else -# error "wxLibrary can't be compiled on this platform, sorry." -#endif // OS - -// defined in windows.h -#ifdef LoadLibrary -# undef LoadLibrary -#endif - -// ---------------------------------------------------------------------------- -// wxDllLoader -// ---------------------------------------------------------------------------- -/** wxDllLoader is a class providing an interface similar to unix's - dlopen(). It is used by the wxLibrary framework and manages the - actual loading of DLLs 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. -*/ -class wxDllLoader -{ - public: - /** This function loads a shared library into memory, with libname - being the basename of the library, without the filename - extension. No initialisation of the library will be done. - @param libname Name of the shared object to load. - @param success Must point to a bool variable which will be set to TRUE or FALSE. - @return A handle to the loaded DLL. Use success parameter to test if it is valid. - */ - static wxDllType LoadLibrary(const wxString & libname, bool *success); - /** This function resolves a symbol in a loaded DLL, such as a - variable or function name. - @param dllHandle Handle of the DLL, as returned by LoadDll(). - @param name Name of the symbol. - @return A pointer to the symbol. - */ - static void * GetSymbol(wxDllType dllHandle, const wxString &name); - private: - /// forbid construction of objects - wxDllLoader(); -}; - -// ---------------------------------------------------------------------------- -// wxLibrary -// ---------------------------------------------------------------------------- - -class wxLibrary : public wxObject -{ -public: - wxHashTable classTable; - -public: - wxLibrary(wxDllType handle); - ~wxLibrary(); - - // Get a symbol from the dynamic library - void *GetSymbol(const wxString& symbname); - - // Create the object whose classname is "name" - wxObject *CreateObject(const wxString& name); - -protected: - void PrepareClasses(wxClassInfo *first); - - wxDllType m_handle; -}; - - - -// ---------------------------------------------------------------------------- -// wxLibraries -// ---------------------------------------------------------------------------- - -class wxLibraries -{ -public: - wxLibraries(); - ~wxLibraries(); - - // caller is responsible for deleting the returned pointer if !NULL - wxLibrary *LoadLibrary(const wxString& basename); - - wxObject *CreateObject(const wxString& name); - -protected: - wxList m_loaded; -}; - -// ---------------------------------------------------------------------------- -// Global variables -// ---------------------------------------------------------------------------- - -extern wxLibraries wxTheLibraries; - -// ---------------------------------------------------------------------------- -// Interesting defines -// ---------------------------------------------------------------------------- - -#define WXDLL_ENTRY_FUNCTION() \ -extern "C" wxClassInfo *wxGetClassFirst(); \ -wxClassInfo *wxGetClassFirst() { \ - return wxClassInfo::GetFirst(); \ -} - -#endif // wxUSE_DYNLIB_CLASS - -#endif // _WX_DYNLIB_H__ diff --git a/include/wx/event.h b/include/wx/event.h deleted file mode 100644 index 0453f4fc9a..0000000000 --- a/include/wx/event.h +++ /dev/null @@ -1,1585 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: event.h -// Purpose: Event classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_EVENTH__ -#define _WX_EVENTH__ - -#ifdef __GNUG__ - #pragma interface "event.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" - -#if wxUSE_THREADS - #include "wx/thread.h" -#endif - -/* - * Event types - * - */ - -typedef int wxEventType; - -const wxEventType wxEVT_NULL = 0; -const wxEventType wxEVT_FIRST = 10000; - -const wxEventType wxEVT_COMMAND_BUTTON_CLICKED = wxEVT_FIRST + 1; -const wxEventType wxEVT_COMMAND_CHECKBOX_CLICKED = wxEVT_FIRST + 2; -const wxEventType wxEVT_COMMAND_CHOICE_SELECTED = wxEVT_FIRST + 3; -const wxEventType wxEVT_COMMAND_LISTBOX_SELECTED = wxEVT_FIRST + 4; -const wxEventType wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = wxEVT_FIRST + 5; -const wxEventType wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxEVT_FIRST + 6; -const wxEventType wxEVT_COMMAND_TEXT_UPDATED = wxEVT_FIRST + 7; -const wxEventType wxEVT_COMMAND_TEXT_ENTER = wxEVT_FIRST + 8; -const wxEventType wxEVT_COMMAND_MENU_SELECTED = wxEVT_FIRST + 9; -const wxEventType wxEVT_COMMAND_TOOL_CLICKED = wxEVT_COMMAND_MENU_SELECTED; -const wxEventType wxEVT_COMMAND_SLIDER_UPDATED = wxEVT_FIRST + 10; -const wxEventType wxEVT_COMMAND_RADIOBOX_SELECTED = wxEVT_FIRST + 11; -const wxEventType wxEVT_COMMAND_RADIOBUTTON_SELECTED = wxEVT_FIRST + 12; -//const wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED is now obsolete since we use wxEVT_SCROLL... events -const wxEventType wxEVT_COMMAND_SCROLLBAR_UPDATED = wxEVT_FIRST + 13; -const wxEventType wxEVT_COMMAND_VLBOX_SELECTED = wxEVT_FIRST + 14; -const wxEventType wxEVT_COMMAND_COMBOBOX_SELECTED = wxEVT_FIRST + 15; -const wxEventType wxEVT_COMMAND_TOOL_RCLICKED = wxEVT_FIRST + 16; -const wxEventType wxEVT_COMMAND_TOOL_ENTER = wxEVT_FIRST + 17; - -/* Sockets send events, too */ -const wxEventType wxEVT_SOCKET = wxEVT_FIRST + 50; - -/* Mouse event types */ -const wxEventType wxEVT_LEFT_DOWN = wxEVT_FIRST + 100; -const wxEventType wxEVT_LEFT_UP = wxEVT_FIRST + 101; -const wxEventType wxEVT_MIDDLE_DOWN = wxEVT_FIRST + 102; -const wxEventType wxEVT_MIDDLE_UP = wxEVT_FIRST + 103; -const wxEventType wxEVT_RIGHT_DOWN = wxEVT_FIRST + 104; -const wxEventType wxEVT_RIGHT_UP = wxEVT_FIRST + 105; -const wxEventType wxEVT_MOTION = wxEVT_FIRST + 106; -const wxEventType wxEVT_ENTER_WINDOW = wxEVT_FIRST + 107; -const wxEventType wxEVT_LEAVE_WINDOW = wxEVT_FIRST + 108; -const wxEventType wxEVT_LEFT_DCLICK = wxEVT_FIRST + 109; -const wxEventType wxEVT_MIDDLE_DCLICK = wxEVT_FIRST + 110; -const wxEventType wxEVT_RIGHT_DCLICK = wxEVT_FIRST + 111; -const wxEventType wxEVT_SET_FOCUS = wxEVT_FIRST + 112; -const wxEventType wxEVT_KILL_FOCUS = wxEVT_FIRST + 113; - - /* Non-client mouse events */ -const wxEventType wxEVT_NC_LEFT_DOWN = wxEVT_FIRST + 200; -const wxEventType wxEVT_NC_LEFT_UP = wxEVT_FIRST + 201; -const wxEventType wxEVT_NC_MIDDLE_DOWN = wxEVT_FIRST + 202; -const wxEventType wxEVT_NC_MIDDLE_UP = wxEVT_FIRST + 203; -const wxEventType wxEVT_NC_RIGHT_DOWN = wxEVT_FIRST + 204; -const wxEventType wxEVT_NC_RIGHT_UP = wxEVT_FIRST + 205; -const wxEventType wxEVT_NC_MOTION = wxEVT_FIRST + 206; -const wxEventType wxEVT_NC_ENTER_WINDOW = wxEVT_FIRST + 207; -const wxEventType wxEVT_NC_LEAVE_WINDOW = wxEVT_FIRST + 208; -const wxEventType wxEVT_NC_LEFT_DCLICK = wxEVT_FIRST + 209; -const wxEventType wxEVT_NC_MIDDLE_DCLICK = wxEVT_FIRST + 210; -const wxEventType wxEVT_NC_RIGHT_DCLICK = wxEVT_FIRST + 211; - -/* Character input event type */ -const wxEventType wxEVT_CHAR = wxEVT_FIRST + 212; -const wxEventType wxEVT_CHAR_HOOK = wxEVT_FIRST + 213; -const wxEventType wxEVT_NAVIGATION_KEY = wxEVT_FIRST + 214; -const wxEventType wxEVT_KEY_DOWN = wxEVT_FIRST + 215; -const wxEventType wxEVT_KEY_UP = wxEVT_FIRST + 216; - - /* - * wxScrollbar and wxSlider event identifiers - */ -const wxEventType wxEVT_SCROLL_TOP = wxEVT_FIRST + 300; -const wxEventType wxEVT_SCROLL_BOTTOM = wxEVT_FIRST + 301; -const wxEventType wxEVT_SCROLL_LINEUP = wxEVT_FIRST + 302; -const wxEventType wxEVT_SCROLL_LINEDOWN = wxEVT_FIRST + 303; -const wxEventType wxEVT_SCROLL_PAGEUP = wxEVT_FIRST + 304; -const wxEventType wxEVT_SCROLL_PAGEDOWN = wxEVT_FIRST + 305; -const wxEventType wxEVT_SCROLL_THUMBTRACK = wxEVT_FIRST + 306; - - /* - * Scroll events from wxWindow - */ -const wxEventType wxEVT_SCROLLWIN_TOP = wxEVT_FIRST + 320; -const wxEventType wxEVT_SCROLLWIN_BOTTOM = wxEVT_FIRST + 321; -const wxEventType wxEVT_SCROLLWIN_LINEUP = wxEVT_FIRST + 322; -const wxEventType wxEVT_SCROLLWIN_LINEDOWN = wxEVT_FIRST + 323; -const wxEventType wxEVT_SCROLLWIN_PAGEUP = wxEVT_FIRST + 324; -const wxEventType wxEVT_SCROLLWIN_PAGEDOWN = wxEVT_FIRST + 325; -const wxEventType wxEVT_SCROLLWIN_THUMBTRACK = wxEVT_FIRST + 326; - - /* - * System events - */ -const wxEventType wxEVT_SIZE = wxEVT_FIRST + 400; -const wxEventType wxEVT_MOVE = wxEVT_FIRST + 401; -const wxEventType wxEVT_CLOSE_WINDOW = wxEVT_FIRST + 402; -const wxEventType wxEVT_END_SESSION = wxEVT_FIRST + 403; -const wxEventType wxEVT_QUERY_END_SESSION = wxEVT_FIRST + 404; -const wxEventType wxEVT_ACTIVATE_APP = wxEVT_FIRST + 405; -const wxEventType wxEVT_POWER = wxEVT_FIRST + 406; -const wxEventType wxEVT_ACTIVATE = wxEVT_FIRST + 409; -const wxEventType wxEVT_CREATE = wxEVT_FIRST + 410; -const wxEventType wxEVT_DESTROY = wxEVT_FIRST + 411; -const wxEventType wxEVT_SHOW = wxEVT_FIRST + 412; -const wxEventType wxEVT_ICONIZE = wxEVT_FIRST + 413; -const wxEventType wxEVT_MAXIMIZE = wxEVT_FIRST + 414; -const wxEventType wxEVT_MOUSE_CAPTURE_CHANGED = wxEVT_FIRST + 415; -const wxEventType wxEVT_PAINT = wxEVT_FIRST + 416; -const wxEventType wxEVT_ERASE_BACKGROUND = wxEVT_FIRST + 417; -const wxEventType wxEVT_NC_PAINT = wxEVT_FIRST + 418; -const wxEventType wxEVT_PAINT_ICON = wxEVT_FIRST + 419; -const wxEventType wxEVT_MENU_CHAR = wxEVT_FIRST + 420; -const wxEventType wxEVT_MENU_INIT = wxEVT_FIRST + 421; -const wxEventType wxEVT_MENU_HIGHLIGHT = wxEVT_FIRST + 422; -const wxEventType wxEVT_POPUP_MENU_INIT = wxEVT_FIRST + 423; -const wxEventType wxEVT_CONTEXT_MENU = wxEVT_FIRST + 424; -const wxEventType wxEVT_SYS_COLOUR_CHANGED = wxEVT_FIRST + 425; -const wxEventType wxEVT_SETTING_CHANGED = wxEVT_FIRST + 426; -const wxEventType wxEVT_QUERY_NEW_PALETTE = wxEVT_FIRST + 427; -const wxEventType wxEVT_PALETTE_CHANGED = wxEVT_FIRST + 428; -const wxEventType wxEVT_JOY_BUTTON_DOWN = wxEVT_FIRST + 429; -const wxEventType wxEVT_JOY_BUTTON_UP = wxEVT_FIRST + 430; -const wxEventType wxEVT_JOY_MOVE = wxEVT_FIRST + 431; -const wxEventType wxEVT_JOY_ZMOVE = wxEVT_FIRST + 432; -const wxEventType wxEVT_DROP_FILES = wxEVT_FIRST + 433; -const wxEventType wxEVT_DRAW_ITEM = wxEVT_FIRST + 434; -const wxEventType wxEVT_MEASURE_ITEM = wxEVT_FIRST + 435; -const wxEventType wxEVT_COMPARE_ITEM = wxEVT_FIRST + 436; -const wxEventType wxEVT_INIT_DIALOG = wxEVT_FIRST + 437; -const wxEventType wxEVT_IDLE = wxEVT_FIRST + 438; -const wxEventType wxEVT_UPDATE_UI = wxEVT_FIRST + 439; - /* System misc. */ -const wxEventType wxEVT_END_PROCESS = wxEVT_FIRST + 440; - - /* Generic command events */ - /* Note: a click is a higher-level event than button down/up */ -const wxEventType wxEVT_COMMAND_LEFT_CLICK = wxEVT_FIRST + 500; -const wxEventType wxEVT_COMMAND_LEFT_DCLICK = wxEVT_FIRST + 501; -const wxEventType wxEVT_COMMAND_RIGHT_CLICK = wxEVT_FIRST + 502; -const wxEventType wxEVT_COMMAND_RIGHT_DCLICK = wxEVT_FIRST + 503; -const wxEventType wxEVT_COMMAND_SET_FOCUS = wxEVT_FIRST + 504; -const wxEventType wxEVT_COMMAND_KILL_FOCUS = wxEVT_FIRST + 505; -const wxEventType wxEVT_COMMAND_ENTER = wxEVT_FIRST + 506; - - /* Tree control event types */ -const wxEventType wxEVT_COMMAND_TREE_BEGIN_DRAG = wxEVT_FIRST + 600; -const wxEventType wxEVT_COMMAND_TREE_BEGIN_RDRAG = wxEVT_FIRST + 601; -const wxEventType wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT = wxEVT_FIRST + 602; -const wxEventType wxEVT_COMMAND_TREE_END_LABEL_EDIT = wxEVT_FIRST + 603; -const wxEventType wxEVT_COMMAND_TREE_DELETE_ITEM = wxEVT_FIRST + 604; -const wxEventType wxEVT_COMMAND_TREE_GET_INFO = wxEVT_FIRST + 605; -const wxEventType wxEVT_COMMAND_TREE_SET_INFO = wxEVT_FIRST + 606; -const wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDED = wxEVT_FIRST + 607; -const wxEventType wxEVT_COMMAND_TREE_ITEM_EXPANDING = wxEVT_FIRST + 608; -const wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSED = wxEVT_FIRST + 609; -const wxEventType wxEVT_COMMAND_TREE_ITEM_COLLAPSING = wxEVT_FIRST + 610; -const wxEventType wxEVT_COMMAND_TREE_SEL_CHANGED = wxEVT_FIRST + 611; -const wxEventType wxEVT_COMMAND_TREE_SEL_CHANGING = wxEVT_FIRST + 612; -const wxEventType wxEVT_COMMAND_TREE_KEY_DOWN = wxEVT_FIRST + 613; -const wxEventType wxEVT_COMMAND_TREE_ITEM_ACTIVATED = wxEVT_FIRST + 614; - - /* List control event types */ -const wxEventType wxEVT_COMMAND_LIST_BEGIN_DRAG = wxEVT_FIRST + 700; -const wxEventType wxEVT_COMMAND_LIST_BEGIN_RDRAG = wxEVT_FIRST + 701; -const wxEventType wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = wxEVT_FIRST + 702; -const wxEventType wxEVT_COMMAND_LIST_END_LABEL_EDIT = wxEVT_FIRST + 703; -const wxEventType wxEVT_COMMAND_LIST_DELETE_ITEM = wxEVT_FIRST + 704; -const wxEventType wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = wxEVT_FIRST + 705; -const wxEventType wxEVT_COMMAND_LIST_GET_INFO = wxEVT_FIRST + 706; -const wxEventType wxEVT_COMMAND_LIST_SET_INFO = wxEVT_FIRST + 707; -const wxEventType wxEVT_COMMAND_LIST_ITEM_SELECTED = wxEVT_FIRST + 708; -const wxEventType wxEVT_COMMAND_LIST_ITEM_DESELECTED = wxEVT_FIRST + 709; -const wxEventType wxEVT_COMMAND_LIST_KEY_DOWN = wxEVT_FIRST + 710; -const wxEventType wxEVT_COMMAND_LIST_INSERT_ITEM = wxEVT_FIRST + 711; -const wxEventType wxEVT_COMMAND_LIST_COL_CLICK = wxEVT_FIRST + 712; -const wxEventType wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK = wxEVT_FIRST + 713; -const wxEventType wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK = wxEVT_FIRST + 714; -const wxEventType wxEVT_COMMAND_LIST_ITEM_ACTIVATED = wxEVT_FIRST + 715; - - /* Tab and notebook control event types */ -const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGED = wxEVT_FIRST + 800; -const wxEventType wxEVT_COMMAND_TAB_SEL_CHANGING = wxEVT_FIRST + 801; - -#if defined(__BORLANDC__) && defined(__WIN16__) -/* For 16-bit BC++, these 2 are identical (truncated) */ -const wxEventType wxEVT_COMMAND_NB_PAGE_CHANGED = wxEVT_FIRST + 802; -const wxEventType wxEVT_COMMAND_NB_PAGE_CHANGING = wxEVT_FIRST + 803; -#else -const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxEVT_FIRST + 802; -const wxEventType wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxEVT_FIRST + 803; -#endif - -/* Splitter events */ -const wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED = wxEVT_FIRST + 850; -const wxEventType wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING = wxEVT_FIRST + 851; -const wxEventType wxEVT_COMMAND_SPLITTER_DOUBLECLICKED = wxEVT_FIRST + 852; -const wxEventType wxEVT_COMMAND_SPLITTER_UNSPLIT = wxEVT_FIRST + 853; - -const wxEventType wxEVT_USER_FIRST = wxEVT_FIRST + 2000; - -/* Compatibility */ - -#if WXWIN_COMPATIBILITY - -#define wxEVENT_TYPE_BUTTON_COMMAND wxEVT_COMMAND_BUTTON_CLICKED -#define wxEVENT_TYPE_CHECKBOX_COMMAND wxEVT_COMMAND_CHECKBOX_CLICKED -#define wxEVENT_TYPE_CHOICE_COMMAND wxEVT_COMMAND_CHOICE_SELECTED -#define wxEVENT_TYPE_LISTBOX_COMMAND wxEVT_COMMAND_LISTBOX_SELECTED -#define wxEVENT_TYPE_LISTBOX_DCLICK_COMMAND wxEVT_COMMAND_LISTBOX_DOUBLECLICKED -#define wxEVENT_TYPE_TEXT_COMMAND wxEVT_COMMAND_TEXT_UPDATED -#define wxEVENT_TYPE_MULTITEXT_COMMAND wxEVT_COMMAND_TEXT_UPDATED -#define wxEVENT_TYPE_MENU_COMMAND wxEVT_COMMAND_MENU_SELECTED -#define wxEVENT_TYPE_SLIDER_COMMAND wxEVT_COMMAND_SLIDER_UPDATED -#define wxEVENT_TYPE_RADIOBOX_COMMAND wxEVT_COMMAND_RADIOBOX_SELECTED -#define wxEVENT_TYPE_RADIOBUTTON_COMMAND wxEVT_COMMAND_RADIOBUTTON_SELECTED -#define wxEVENT_TYPE_TEXT_ENTER_COMMAND wxEVT_COMMAND_TEXT_ENTER -#define wxEVENT_TYPE_SET_FOCUS wxEVT_SET_FOCUS -#define wxEVENT_TYPE_KILL_FOCUS wxEVT_KILL_FOCUS -#define wxEVENT_TYPE_SCROLLBAR_COMMAND wxEVT_COMMAND_SCROLLBAR_UPDATED -#define wxEVENT_TYPE_VIRT_LISTBOX_COMMAND wxEVT_COMMAND_VLBOX_SELECTED -#define wxEVENT_TYPE_COMBOBOX_COMMAND wxEVT_COMMAND_COMBOBOX_SELECTED - -#define wxEVENT_TYPE_LEFT_DOWN wxEVT_LEFT_DOWN -#define wxEVENT_TYPE_LEFT_UP wxEVT_LEFT_UP -#define wxEVENT_TYPE_MIDDLE_DOWN wxEVT_MIDDLE_DOWN -#define wxEVENT_TYPE_MIDDLE_UP wxEVT_MIDDLE_UP -#define wxEVENT_TYPE_RIGHT_DOWN wxEVT_RIGHT_DOWN -#define wxEVENT_TYPE_RIGHT_UP wxEVT_RIGHT_UP -#define wxEVENT_TYPE_MOTION wxEVT_MOTION -#define wxEVENT_TYPE_ENTER_WINDOW wxEVT_ENTER_WINDOW -#define wxEVENT_TYPE_LEAVE_WINDOW wxEVT_LEAVE_WINDOW -#define wxEVENT_TYPE_LEFT_DCLICK wxEVT_LEFT_DCLICK -#define wxEVENT_TYPE_MIDDLE_DCLICK wxEVT_MIDDLE_DCLICK -#define wxEVENT_TYPE_RIGHT_DCLICK wxEVT_RIGHT_DCLICK -#define wxEVENT_TYPE_CHAR wxEVT_CHAR -#define wxEVENT_TYPE_SCROLL_TOP wxEVT_SCROLL_TOP -#define wxEVENT_TYPE_SCROLL_BOTTOM wxEVT_SCROLL_BOTTOM -#define wxEVENT_TYPE_SCROLL_LINEUP wxEVT_SCROLL_LINEUP -#define wxEVENT_TYPE_SCROLL_LINEDOWN wxEVT_SCROLL_LINEDOWN -#define wxEVENT_TYPE_SCROLL_PAGEUP wxEVT_SCROLL_PAGEUP -#define wxEVENT_TYPE_SCROLL_PAGEDOWN wxEVT_SCROLL_PAGEDOWN -#define wxEVENT_TYPE_SCROLL_THUMBTRACK wxEVT_SCROLL_THUMBTRACK - -#endif // WXWIN_COMPATIBILITY - -/* - * wxWindows events, covering all interesting things that might happen - * (button clicking, resizing, setting text in widgets, etc.). - * - * For each completely new event type, derive a new event class. - * An event CLASS represents a C++ class defining a range of similar event TYPES; - * examples are canvas events, panel item command events. - * An event TYPE is a unique identifier for a particular system event, - * such as a button press or a listbox deselection. - * - */ - -class WXDLLEXPORT wxEvent : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxEvent) - -public: - wxEvent(int id = 0); - ~wxEvent() {} - - void SetEventType(wxEventType typ) { m_eventType = typ; } - wxEventType GetEventType() const { return m_eventType; } - wxObject *GetEventObject() const { return m_eventObject; } - void SetEventObject(wxObject *obj) { m_eventObject = obj; } - long GetTimestamp() const { return m_timeStamp; } - void SetTimestamp(long ts = 0) { m_timeStamp = ts; } - int GetId() const { return m_id; } - void SetId(int Id) { m_id = Id; } - - // Can instruct event processor that we wish to ignore this event - // (treat as if the event table entry had not been found): this must be done - // to allow the event processing by the base classes (calling event.Skip() - // is the analog of calling the base class verstion of a virtual function) - void Skip(bool skip = TRUE) { m_skipped = skip; } - bool GetSkipped() const { return m_skipped; }; - - // implementation only: this test is explicitlty anti OO and this functions - // exists only for optimization purposes - bool IsCommandEvent() const { return m_isCommandEvent; } - - void CopyObject(wxObject& object_dest) const; - -public: - wxObject* m_eventObject; - wxEventType m_eventType; - long m_timeStamp; - int m_id; - wxObject* m_callbackUserData; - bool m_skipped; - - // optimization: instead of using costly IsKindOf() we keep a flag telling - // whether we're a command event (by far the most common case) - bool m_isCommandEvent; -}; - -// Item or menu event class -/* - wxEVT_COMMAND_BUTTON_CLICKED - wxEVT_COMMAND_CHECKBOX_CLICKED - wxEVT_COMMAND_CHOICE_SELECTED - wxEVT_COMMAND_LISTBOX_SELECTED - wxEVT_COMMAND_LISTBOX_DOUBLECLICKED - wxEVT_COMMAND_TEXT_UPDATED - wxEVT_COMMAND_TEXT_ENTER - wxEVT_COMMAND_MENU_SELECTED - wxEVT_COMMAND_SLIDER_UPDATED - wxEVT_COMMAND_RADIOBOX_SELECTED - wxEVT_COMMAND_RADIOBUTTON_SELECTED - wxEVT_COMMAND_SCROLLBAR_UPDATED - wxEVT_COMMAND_VLBOX_SELECTED - wxEVT_COMMAND_COMBOBOX_SELECTED -*/ - -class WXDLLEXPORT wxClientData; - -class WXDLLEXPORT wxCommandEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxCommandEvent) - -public: - wxCommandEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - ~wxCommandEvent() {} - - /* - * Accessors dependent on context - * - */ - - // Set/Get client data from controls - void SetClientData(void* clientData) { m_clientData = clientData; } - void *GetClientData() const { return m_clientData; } - - // Set/Get client object from controls - void SetClientObject(wxClientData* clientObject) { m_clientObject = clientObject; } - void *GetClientObject() const { return m_clientObject; } - - // Get listbox selection if single-choice - int GetSelection() const { return m_commandInt; } - - // Set/Get listbox/choice selection string - void SetString(const wxString& s) { m_commandString = s; } - wxString GetString() const { return m_commandString; } - - // Get checkbox value - bool Checked() const { return (m_commandInt != 0); } - - // TRUE if the listbox event was a selection. - bool IsSelection() const { return (m_extraLong != 0); } - - void SetExtraLong(long extraLong) { m_extraLong = extraLong; } - long GetExtraLong() const { return m_extraLong ; } - - void SetInt(int i) { m_commandInt = i; } - long GetInt() const { return m_commandInt ; } - - void CopyObject(wxObject& obj) const; - -public: - wxString m_commandString; // String event argument - int m_commandInt; - long m_extraLong; // Additional information (e.g. select/deselect) - void* m_clientData; // Arbitrary client data - wxClientData* m_clientObject; // Arbitrary client object -}; - -// this class adds a possibility to react (from the user) code to a control -// notification: allow or veto the operation being reported. -class WXDLLEXPORT wxNotifyEvent : public wxCommandEvent -{ -public: - wxNotifyEvent(wxEventType commandType = wxEVT_NULL, int id = 0) - : wxCommandEvent(commandType, id) { m_bAllow = TRUE; } - - // veto the operation (by default it's allowed) - void Veto() { m_bAllow = FALSE; } - - // for implementation code only: is the operation allowed? - bool IsAllowed() const { return m_bAllow; } - -private: - bool m_bAllow; - - DECLARE_DYNAMIC_CLASS(wxNotifyEvent) -}; - -// Scroll event class, derived form wxCommandEvent. wxScrollEvents are -// sent by wxSlider and wxScrollbar. -/* - wxEVT_SCROLL_TOP - wxEVT_SCROLL_BOTTOM - wxEVT_SCROLL_LINEUP - wxEVT_SCROLL_LINEDOWN - wxEVT_SCROLL_PAGEUP - wxEVT_SCROLL_PAGEDOWN - wxEVT_SCROLL_THUMBTRACK -*/ - -class WXDLLEXPORT wxScrollEvent : public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxScrollEvent) - -public: - wxScrollEvent(wxEventType commandType = wxEVT_NULL, - int id = 0, int pos = 0, int orient = 0); - ~wxScrollEvent() {} - - /* - * Accessors - * - */ - - int GetOrientation() const { return (int) m_extraLong ; } - int GetPosition() const { return m_commandInt ; } - void SetOrientation(int orient) { m_extraLong = (long) orient; } - void SetPosition(int pos) { m_commandInt = pos; } -}; - -// ScrollWin event class, derived fom wxEvent. wxScrollWinEvents -// are sent by wxWindow. -/* - wxEVT_SCROLLWIN_TOP - wxEVT_SCROLLWIN_BOTTOM - wxEVT_SCROLLWIN_LINEUP - wxEVT_SCROLLWIN_LINEDOWN - wxEVT_SCROLLWIN_PAGEUP - wxEVT_SCROLLWIN_PAGEDOWN - wxEVT_SCROLLWIN_THUMBTRACK -*/ - -class WXDLLEXPORT wxScrollWinEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxScrollWinEvent) - -public: - wxScrollWinEvent(wxEventType commandType = wxEVT_NULL, - int pos = 0, int orient = 0); - ~wxScrollWinEvent() {} - - /* - * Accessors - */ - - int GetOrientation() const { return (int) m_extraLong ; } - int GetPosition() const { return m_commandInt ; } - void SetOrientation(int orient) { m_extraLong = (long) orient; } - void SetPosition(int pos) { m_commandInt = pos; } - - void CopyObject(wxObject& object_dest) const; -public: - int m_commandInt; // Additional information - long m_extraLong; -}; - -// Mouse event class - -/* - wxEVT_LEFT_DOWN - wxEVT_LEFT_UP - wxEVT_MIDDLE_DOWN - wxEVT_MIDDLE_UP - wxEVT_RIGHT_DOWN - wxEVT_RIGHT_UP - wxEVT_MOTION - wxEVT_ENTER_WINDOW - wxEVT_LEAVE_WINDOW - wxEVT_LEFT_DCLICK - wxEVT_MIDDLE_DCLICK - wxEVT_RIGHT_DCLICK - wxEVT_NC_LEFT_DOWN - wxEVT_NC_LEFT_UP, - wxEVT_NC_MIDDLE_DOWN, - wxEVT_NC_MIDDLE_UP, - wxEVT_NC_RIGHT_DOWN, - wxEVT_NC_RIGHT_UP, - wxEVT_NC_MOTION, - wxEVT_NC_ENTER_WINDOW, - wxEVT_NC_LEAVE_WINDOW, - wxEVT_NC_LEFT_DCLICK, - wxEVT_NC_MIDDLE_DCLICK, - wxEVT_NC_RIGHT_DCLICK, -*/ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxMouseEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxMouseEvent) - -public: - wxMouseEvent(wxEventType mouseType = wxEVT_NULL); - - // Was it a button event? (*doesn't* mean: is any button *down*?) - bool IsButton() const { return Button(-1); } - - // Was it a down event from button 1, 2 or 3 or any? - bool ButtonDown(int but = -1) const; - - // Was it a dclick event from button 1, 2 or 3 or any? - bool ButtonDClick(int but = -1) const; - - // Was it a up event from button 1, 2 or 3 or any? - bool ButtonUp(int but = -1) const; - - // Was the given button 1,2,3 or any changing state? - bool Button(int but) const; - - // Was the given button 1,2,3 or any in Down state? - bool ButtonIsDown(int but) const; - - // Find state of shift/control keys - bool ControlDown() const { return m_controlDown; } - bool MetaDown() const { return m_metaDown; } - bool AltDown() const { return m_altDown; } - bool ShiftDown() const { return m_shiftDown; } - - // Find which event was just generated - bool LeftDown() const { return (m_eventType == wxEVT_LEFT_DOWN); } - bool MiddleDown() const { return (m_eventType == wxEVT_MIDDLE_DOWN); } - bool RightDown() const { return (m_eventType == wxEVT_RIGHT_DOWN); } - - bool LeftUp() const { return (m_eventType == wxEVT_LEFT_UP); } - bool MiddleUp() const { return (m_eventType == wxEVT_MIDDLE_UP); } - bool RightUp() const { return (m_eventType == wxEVT_RIGHT_UP); } - - bool LeftDClick() const { return (m_eventType == wxEVT_LEFT_DCLICK); } - bool MiddleDClick() const { return (m_eventType == wxEVT_MIDDLE_DCLICK); } - bool RightDClick() const { return (m_eventType == wxEVT_RIGHT_DCLICK); } - - // Find the current state of the mouse buttons (regardless - // of current event type) - bool LeftIsDown() const { return m_leftDown; } - bool MiddleIsDown() const { return m_middleDown; } - bool RightIsDown() const { return m_rightDown; } - - // True if a button is down and the mouse is moving - bool Dragging() const - { - return ((m_eventType == wxEVT_MOTION) && - (LeftIsDown() || MiddleIsDown() || RightIsDown())); - } - - // True if the mouse is moving, and no button is down - bool Moving() const { return (m_eventType == wxEVT_MOTION); } - - // True if the mouse is just entering the window - bool Entering() const { return (m_eventType == wxEVT_ENTER_WINDOW); } - - // True if the mouse is just leaving the window - bool Leaving() const { return (m_eventType == wxEVT_LEAVE_WINDOW); } - - // Find the position of the event - void GetPosition(long *xpos, long *ypos) const { *xpos = m_x; *ypos = m_y; } - void Position(long *xpos, long *ypos) const { *xpos = m_x; *ypos = m_y; } - - // Find the position of the event - wxPoint GetPosition() const { return wxPoint(m_x, m_y); } - - // Find the logical position of the event given the DC - wxPoint GetLogicalPosition(const wxDC& dc) const ; - - // Compatibility -#if WXWIN_COMPATIBILITY - void Position(float *xpos, float *ypos) const - { - *xpos = (float) m_x; *ypos = (float) m_y; - } -#endif // WXWIN_COMPATIBILITY - - // Get X position - long GetX() const { return m_x; } - - // Get Y position - long GetY() const { return m_y; } - - void CopyObject(wxObject& obj) const; - -public: - long m_x; - long m_y; - bool m_leftDown; - bool m_middleDown; - bool m_rightDown; - - bool m_controlDown; - bool m_shiftDown; - bool m_altDown; - bool m_metaDown; -}; - -// Keyboard input event class - -/* - wxEVT_CHAR - wxEVT_CHAR_HOOK - wxEVT_KEY_DOWN - wxEVT_KEY_UP - */ - -class WXDLLEXPORT wxKeyEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxKeyEvent) - -public: - wxKeyEvent(wxEventType keyType = wxEVT_NULL); - - // Find state of shift/control keys - bool ControlDown() const { return m_controlDown; } - bool MetaDown() const { return m_metaDown; } - bool AltDown() const { return m_altDown; } - bool ShiftDown() const { return m_shiftDown; } - long KeyCode() const { return m_keyCode; } - - // Find the position of the event - void GetPosition(long *xpos, long *ypos) const - { *xpos = m_x; *ypos = m_y; } - - wxPoint GetPosition() const - { return wxPoint(m_x, m_y); } - - // Get X position - long GetX() const { return m_x; } - - // Get Y position - long GetY() const { return m_y; } - - void CopyObject(wxObject& obj) const; - -public: - long m_x; - long m_y; - long m_keyCode; - bool m_controlDown; - bool m_shiftDown; - bool m_altDown; - bool m_metaDown; - bool m_scanCode; -}; - -// Size event class -/* - wxEVT_SIZE - */ - -class WXDLLEXPORT wxSizeEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxSizeEvent) - -public: - wxSize m_size; - - wxSizeEvent() { m_eventType = wxEVT_SIZE; } - wxSizeEvent(const wxSize& sz, int id = 0) - : m_size(sz) - { m_eventType = wxEVT_SIZE; m_id = id; } - - wxSize GetSize() const { return m_size; } - - void CopyObject(wxObject& obj) const; -}; - -// Move event class - -/* - wxEVT_MOVE - */ - -class WXDLLEXPORT wxMoveEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxMoveEvent) - -public: - wxPoint m_pos; - - wxMoveEvent() { m_eventType = wxEVT_MOVE; } - wxMoveEvent(const wxPoint& pos, int id = 0) - : m_pos(pos) - { m_eventType = wxEVT_MOVE; m_id = id; } - - wxPoint GetPosition() const { return m_pos; } - - void CopyObject(wxObject& obj) const; -}; - -// Paint event class -/* - wxEVT_PAINT - wxEVT_NC_PAINT - wxEVT_PAINT_ICON - */ - -class WXDLLEXPORT wxPaintEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxPaintEvent) - -public: - wxPaintEvent(int Id = 0) { m_eventType = wxEVT_PAINT; m_id = Id; } -}; - -// Erase background event class -/* - wxEVT_ERASE_BACKGROUND - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxEraseEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxEraseEvent) - -public: - wxDC *m_dc; - - wxEraseEvent(int Id = 0, wxDC *dc = (wxDC *) NULL) - { m_eventType = wxEVT_ERASE_BACKGROUND; m_id = Id; m_dc = dc; } - wxDC *GetDC() const { return m_dc; } - - void CopyObject(wxObject& obj) const; -}; - -// Focus event class -/* - wxEVT_SET_FOCUS - wxEVT_KILL_FOCUS - */ - -class WXDLLEXPORT wxFocusEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxFocusEvent) - -public: - wxFocusEvent(wxEventType type = wxEVT_NULL, int Id = 0) - { m_eventType = type; m_id = Id; } -}; - -// Activate event class -/* - wxEVT_ACTIVATE - wxEVT_ACTIVATE_APP - */ - -class WXDLLEXPORT wxActivateEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxActivateEvent) - -public: - wxActivateEvent(wxEventType type = wxEVT_NULL, bool active = TRUE, int Id = 0) - { m_eventType = type; m_active = active; m_id = Id; } - bool GetActive() const { return m_active; } - - void CopyObject(wxObject& obj) const; - -private: - bool m_active; -}; - -// InitDialog event class -/* - wxEVT_INIT_DIALOG - */ - -class WXDLLEXPORT wxInitDialogEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxInitDialogEvent) - -public: - wxInitDialogEvent(int Id = 0) - { m_eventType = wxEVT_INIT_DIALOG; m_id = Id; } -}; - -// Miscellaneous menu event class -/* - wxEVT_MENU_CHAR, - wxEVT_MENU_INIT, - wxEVT_MENU_HIGHLIGHT, - wxEVT_POPUP_MENU_INIT, - wxEVT_CONTEXT_MENU, -*/ - -class WXDLLEXPORT wxMenuEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxMenuEvent) - -public: - wxMenuEvent(wxEventType type = wxEVT_NULL, int id = 0) - { m_eventType = type; m_menuId = id; } - - int GetMenuId() const { return m_menuId; } - - void CopyObject(wxObject& obj) const; -private: - int m_menuId; -}; - -// Window close or session close event class -/* - wxEVT_CLOSE_WINDOW, - wxEVT_END_SESSION, - wxEVT_QUERY_END_SESSION - */ - -class WXDLLEXPORT wxCloseEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxCloseEvent) - -public: - wxCloseEvent(wxEventType type = wxEVT_NULL, int id = 0) - { - m_eventType = type; - m_loggingOff = TRUE; - m_veto = FALSE; // should be FALSE by default - m_id = id; -#if WXWIN_COMPATIBILITY - m_force = FALSE; -#endif // WXWIN_COMPATIBILITY - m_canVeto = TRUE; - } - - void SetLoggingOff(bool logOff) { m_loggingOff = logOff; } - bool GetLoggingOff() const { return m_loggingOff; } - - void Veto(bool veto = TRUE) - { - // GetVeto() will return FALSE anyhow... - wxCHECK_RET( m_canVeto, - _T("call to Veto() ignored (can't veto this event)") ); - - m_veto = veto; - } - void SetCanVeto(bool canVeto) { m_canVeto = canVeto; } - // No more asserts here please, the one you put here was wrong. - bool CanVeto() const { return m_canVeto; } - bool GetVeto() const { return m_canVeto && m_veto; } - -#if WXWIN_COMPATIBILITY - // This is probably obsolete now, since we use CanVeto instead, in - // both OnCloseWindow and OnQueryEndSession. - // m_force == ! m_canVeto i.e., can't veto means we must force it to close. - void SetForce(bool force) { m_force = force; } - bool GetForce() const { return m_force; } -#endif - - void CopyObject(wxObject& obj) const; - -protected: - bool m_loggingOff; - bool m_veto, m_canVeto; - -#if WXWIN_COMPATIBILITY - bool m_force; -#endif -}; - -/* - wxEVT_SHOW - */ - -class WXDLLEXPORT wxShowEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxShowEvent) - -public: - - wxShowEvent(int id = 0, bool show = FALSE) - { m_eventType = wxEVT_SHOW; m_id = id; m_show = show; } - - void SetShow(bool show) { m_show = show; } - bool GetShow() const { return m_show; } - - void CopyObject(wxObject& obj) const; - -protected: - bool m_show; -}; - -/* - wxEVT_ICONIZE - */ - -class WXDLLEXPORT wxIconizeEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxIconizeEvent) - -public: - wxIconizeEvent(int id = 0) - { m_eventType = wxEVT_ICONIZE; m_id = id; } -}; - -/* - wxEVT_MAXIMIZE - */ - -class WXDLLEXPORT wxMaximizeEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxMaximizeEvent) - -public: - wxMaximizeEvent(int id = 0) - { m_eventType = wxEVT_MAXIMIZE; m_id = id; } -}; - -// Joystick event class -/* - wxEVT_JOY_BUTTON_DOWN, - wxEVT_JOY_BUTTON_UP, - wxEVT_JOY_MOVE, - wxEVT_JOY_ZMOVE -*/ - -// Which joystick? Same as Windows ids so no conversion necessary. -#define wxJOYSTICK1 0 -#define wxJOYSTICK2 1 - -// Which button is down? -#define wxJOY_BUTTON1 1 -#define wxJOY_BUTTON2 2 -#define wxJOY_BUTTON3 4 -#define wxJOY_BUTTON4 8 -#define wxJOY_BUTTON_ANY -1 - -class WXDLLEXPORT wxJoystickEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxJoystickEvent) - -public: - wxPoint m_pos; - int m_zPosition; - int m_buttonChange; // Which button changed? - int m_buttonState; // Which buttons are down? - int m_joyStick; // Which joystick? - - wxJoystickEvent(wxEventType type = wxEVT_NULL, - int state = 0, - int joystick = wxJOYSTICK1, - int change = 0) - { - m_eventType = type; - m_buttonState = state; - m_pos = wxPoint(0,0); - m_zPosition = 0; - m_joyStick = joystick; - m_buttonChange = change; - } - - wxPoint GetPosition() const { return m_pos; } - int GetZPosition() const { return m_zPosition; } - int GetButtonState() const { return m_buttonState; } - int GetButtonChange() const { return m_buttonChange; } - int GetJoystick() const { return m_joyStick; } - - void SetJoystick(int stick) { m_joyStick = stick; } - void SetButtonState(int state) { m_buttonState = state; } - void SetButtonChange(int change) { m_buttonChange = change; } - void SetPosition(const wxPoint& pos) { m_pos = pos; } - void SetZPosition(int zPos) { m_zPosition = zPos; } - - // Was it a button event? (*doesn't* mean: is any button *down*?) - bool IsButton() const { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) || - (GetEventType() == wxEVT_JOY_BUTTON_DOWN)); } - - // Was it a move event? - bool IsMove() const { return (GetEventType() == wxEVT_JOY_MOVE) ; } - - // Was it a zmove event? - bool IsZMove() const { return (GetEventType() == wxEVT_JOY_ZMOVE) ; } - - // Was it a down event from button 1, 2, 3, 4 or any? - bool ButtonDown(int but = wxJOY_BUTTON_ANY) const - { return ((GetEventType() == wxEVT_JOY_BUTTON_DOWN) && - ((but == wxJOY_BUTTON_ANY) || (but == m_buttonChange))); } - - // Was it a up event from button 1, 2, 3 or any? - bool ButtonUp(int but = wxJOY_BUTTON_ANY) const - { return ((GetEventType() == wxEVT_JOY_BUTTON_UP) && - ((but == wxJOY_BUTTON_ANY) || (but == m_buttonChange))); } - - // Was the given button 1,2,3,4 or any in Down state? - bool ButtonIsDown(int but = wxJOY_BUTTON_ANY) const - { return (((but == wxJOY_BUTTON_ANY) && (m_buttonState != 0)) || - ((m_buttonState & but) == but)); } - - void CopyObject(wxObject& obj) const; -}; - -// Drop files event class -/* - wxEVT_DROP_FILES - */ - -class WXDLLEXPORT wxDropFilesEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxDropFilesEvent) - -public: - int m_noFiles; - wxPoint m_pos; - wxString* m_files; // Memory (de)allocated by code calling ProcessEvent - - wxDropFilesEvent(wxEventType type = wxEVT_NULL, - int noFiles = 0, - wxString *files = (wxString *) NULL) - { m_eventType = type; m_noFiles = noFiles; m_files = files; } - - wxPoint GetPosition() const { return m_pos; } - int GetNumberOfFiles() const { return m_noFiles; } - wxString *GetFiles() const { return m_files; } - - void CopyObject(wxObject& obj) const; -}; - -// Idle event -/* - wxEVT_IDLE - */ - -class WXDLLEXPORT wxIdleEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxIdleEvent) - -public: - wxIdleEvent() - { m_eventType = wxEVT_IDLE; m_requestMore = FALSE; } - - void RequestMore(bool needMore = TRUE) { m_requestMore = needMore; } - bool MoreRequested() const { return m_requestMore; } - - void CopyObject(wxObject& obj) const; - -protected: - bool m_requestMore; -}; - -// Update UI event -/* - wxEVT_UPDATE_UI - */ - -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxWindow; - -class WXDLLEXPORT wxUpdateUIEvent : public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxUpdateUIEvent) - -public: - wxUpdateUIEvent(wxWindowID commandId = 0) - { - m_eventType = wxEVT_UPDATE_UI; - m_id = commandId; - m_checked = FALSE; - m_setChecked = FALSE; - m_enabled = FALSE; - m_setEnabled = FALSE; - m_setText = FALSE; - m_text = ""; - } - - bool GetChecked() const { return m_checked; } - bool GetEnabled() const { return m_enabled; } - wxString GetText() const { return m_text; } - bool GetSetText() const { return m_setText; } - bool GetSetChecked() const { return m_setChecked; } - bool GetSetEnabled() const { return m_setEnabled; } - - void Check(bool check) { m_checked = check; m_setChecked = TRUE; } - void Enable(bool enable) { m_enabled = enable; m_setEnabled = TRUE; } - void SetText(const wxString& text) { m_text = text; m_setText = TRUE; } - - void CopyObject(wxObject& obj) const; - -protected: - bool m_checked; - bool m_enabled; - bool m_setEnabled; - bool m_setText; - bool m_setChecked; - wxString m_text; -}; - -/* - wxEVT_SYS_COLOUR_CHANGED - */ - -// TODO: shouldn't all events record the window ID? -class WXDLLEXPORT wxSysColourChangedEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxSysColourChangedEvent) - -public: - wxSysColourChangedEvent() - { m_eventType = wxEVT_SYS_COLOUR_CHANGED; } -}; - -/* - wxEVT_PALETTE_CHANGED - */ - -class WXDLLEXPORT wxPaletteChangedEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxPaletteChangedEvent) - -public: - wxPaletteChangedEvent(wxWindowID id = 0) : wxEvent(id) - { - m_eventType = wxEVT_PALETTE_CHANGED; - m_changedWindow = (wxWindow *) NULL; - } - - void SetChangedWindow(wxWindow* win) { m_changedWindow = win; } - wxWindow* GetChangedWindow() const { return m_changedWindow; } - - void CopyObject(wxObject& obj) const; - -protected: - wxWindow* m_changedWindow; -}; - -/* - wxEVT_QUERY_NEW_PALETTE - Indicates the window is getting keyboard focus and should re-do its palette. - */ - -class WXDLLEXPORT wxQueryNewPaletteEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxQueryNewPaletteEvent) - -public: - wxQueryNewPaletteEvent(wxWindowID id = 0): wxEvent(id) - { m_eventType = wxEVT_QUERY_NEW_PALETTE; m_paletteRealized = FALSE; } - - // App sets this if it changes the palette. - void SetPaletteRealized(bool realized) { m_paletteRealized = realized; } - bool GetPaletteRealized() const { return m_paletteRealized; } - - void CopyObject(wxObject& obj) const; - -protected: - bool m_paletteRealized; -}; - -/* - Event generated by dialog navigation keys - wxEVT_NAVIGATION_KEY - */ -// must derive from command event to be propagated to the parent -class WXDLLEXPORT wxNavigationKeyEvent : public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxNavigationKeyEvent) - -public: - wxNavigationKeyEvent() : wxCommandEvent(wxEVT_NAVIGATION_KEY) { } - - // direction: forward (true) or backward (false) - bool GetDirection() const { return m_commandInt == 1; } - void SetDirection(bool bForward) { m_commandInt = bForward; } - - // it may be a window change event (MDI, notebook pages...) or a control - // change event - bool IsWindowChange() const { return m_extraLong == 1; } - void SetWindowChange(bool bIs) { m_extraLong = bIs; } - - // the child which has the focus currently (may be NULL - use - // wxWindow::FindFocus then) - wxWindow* GetCurrentFocus() const { return (wxWindow *)m_clientData; } - void SetCurrentFocus(wxWindow *win) { m_clientData = (void *)win; } -}; - -// Window creation/destruction events: the first is sent as soon as window is -// created (i.e. the underlying GUI object exists), but when the C++ object is -// fully initialized (so virtual functions may be called). The second, -// wxEVT_DESTROY, is sent right before the window is destroyed - again, it's -// still safe to call virtual functions at this moment -/* - wxEVT_CREATE - wxEVT_DESTROY - */ - -class WXDLLEXPORT wxWindowCreateEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxWindowCreateEvent) - -public: - wxWindowCreateEvent(wxWindow *win = NULL); - - wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } -}; - -class WXDLLEXPORT wxWindowDestroyEvent : public wxEvent -{ - DECLARE_DYNAMIC_CLASS(wxWindowDestroyEvent) - -public: - wxWindowDestroyEvent(wxWindow *win = NULL); - - wxWindow *GetWindow() const { return (wxWindow *)GetEventObject(); } -}; - -/* TODO - wxEVT_POWER, - wxEVT_MOUSE_CAPTURE_CHANGED, - wxEVT_SETTING_CHANGED, // WM_WININICHANGE (NT) / WM_SETTINGCHANGE (Win95) -// wxEVT_FONT_CHANGED, // WM_FONTCHANGE: roll into wxEVT_SETTING_CHANGED, but remember to propagate - // wxEVT_FONT_CHANGED to all other windows (maybe). - wxEVT_DRAW_ITEM, // Leave these three as virtual functions in wxControl?? Platform-specific. - wxEVT_MEASURE_ITEM, - wxEVT_COMPARE_ITEM -*/ - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxControl; - -// struct WXDLLEXPORT wxEventTableEntry; - -typedef void (wxObject::*wxObjectEventFunction)(wxEvent&); - -struct WXDLLEXPORT wxEventTableEntry -{ - // For some reason, this can't be wxEventType, or VC++ complains. - int m_eventType; // main event type - int m_id; // control/menu/toolbar id - int m_lastId; // used for ranges of ids - wxObjectEventFunction m_fn; // function to call: not wxEventFunction, - // because of dependency problems - - wxObject* m_callbackUserData; -}; - -struct WXDLLEXPORT wxEventTable -{ - const wxEventTable *baseTable; // Points to base event table (next in chain) - const wxEventTableEntry *entries; // Points to bottom of entry array -}; - -class WXDLLEXPORT wxEvtHandler : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxEvtHandler) - -public: - wxEvtHandler(); - ~wxEvtHandler(); - - wxEvtHandler *GetNextHandler() const { return m_nextHandler; } - wxEvtHandler *GetPreviousHandler() const { return m_previousHandler; } - void SetNextHandler(wxEvtHandler *handler) { m_nextHandler = handler; } - void SetPreviousHandler(wxEvtHandler *handler) { m_previousHandler = handler; } - - void SetEvtHandlerEnabled(bool en) { m_enabled = en; } - bool GetEvtHandlerEnabled() const { return m_enabled; } - -#if WXWIN_COMPATIBILITY_2 - virtual void OnCommand(wxWindow& WXUNUSED(win), - wxCommandEvent& WXUNUSED(event)) - { - } - - // Called if child control has no - // callback function - // Default behaviour - virtual long Default() - { return GetNextHandler() ? GetNextHandler()->Default() : 0; }; -#endif // WXWIN_COMPATIBILITY_2 - -#if WXWIN_COMPATIBILITY - virtual bool OnClose(); -#endif - -#if wxUSE_THREADS - bool ProcessThreadEvent(wxEvent& event); - void ProcessPendingEvents(); -#endif - virtual bool ProcessEvent(wxEvent& event); - virtual bool SearchEventTable(wxEventTable& table, wxEvent& event); - - // Dynamic association of a member function handler with the event handler, - // id and event type - void Connect( int id, int lastId, wxEventType eventType, - wxObjectEventFunction func, - wxObject *userData = (wxObject *) NULL ); - - // Convenience function: take just one id - void Connect( int id, wxEventType eventType, - wxObjectEventFunction func, - wxObject *userData = (wxObject *) NULL ) - { Connect(id, -1, eventType, func, userData); } - - bool SearchDynamicEventTable( wxEvent& event ); - -#if wxUSE_THREADS - void ClearEventLocker() { delete m_eventsLocker; m_eventsLocker = NULL; }; -#endif - -private: - static const wxEventTableEntry sm_eventTableEntries[]; - -protected: - static const wxEventTable sm_eventTable; - - virtual const wxEventTable *GetEventTable() const; - -protected: - wxEvtHandler* m_nextHandler; - wxEvtHandler* m_previousHandler; - bool m_enabled; // Is event handler enabled? - wxList* m_dynamicEvents; - wxList* m_pendingEvents; -#if wxUSE_THREADS - wxCriticalSection* m_eventsLocker; -#endif - - // optimization: instead of using costly IsKindOf() to decide whether we're - // a window (which is true in 99% of cases), use this flag - bool m_isWindow; -}; - -typedef void (wxEvtHandler::*wxEventFunction)(wxEvent&); -typedef void (wxEvtHandler::*wxCommandEventFunction)(wxCommandEvent&); -typedef void (wxEvtHandler::*wxScrollEventFunction)(wxScrollEvent&); -typedef void (wxEvtHandler::*wxScrollWinEventFunction)(wxScrollWinEvent&); -typedef void (wxEvtHandler::*wxSizeEventFunction)(wxSizeEvent&); -typedef void (wxEvtHandler::*wxMoveEventFunction)(wxMoveEvent&); -typedef void (wxEvtHandler::*wxPaintEventFunction)(wxPaintEvent&); -typedef void (wxEvtHandler::*wxEraseEventFunction)(wxEraseEvent&); -typedef void (wxEvtHandler::*wxMouseEventFunction)(wxMouseEvent&); -typedef void (wxEvtHandler::*wxCharEventFunction)(wxKeyEvent&); -typedef void (wxEvtHandler::*wxFocusEventFunction)(wxFocusEvent&); -typedef void (wxEvtHandler::*wxActivateEventFunction)(wxActivateEvent&); -typedef void (wxEvtHandler::*wxMenuEventFunction)(wxMenuEvent&); -typedef void (wxEvtHandler::*wxJoystickEventFunction)(wxJoystickEvent&); -typedef void (wxEvtHandler::*wxDropFilesEventFunction)(wxDropFilesEvent&); -typedef void (wxEvtHandler::*wxInitDialogEventFunction)(wxInitDialogEvent&); -typedef void (wxEvtHandler::*wxSysColourChangedFunction)(wxSysColourChangedEvent&); -typedef void (wxEvtHandler::*wxUpdateUIEventFunction)(wxUpdateUIEvent&); -typedef void (wxEvtHandler::*wxIdleEventFunction)(wxIdleEvent&); -typedef void (wxEvtHandler::*wxCloseEventFunction)(wxCloseEvent&); -typedef void (wxEvtHandler::*wxShowEventFunction)(wxShowEvent&); -typedef void (wxEvtHandler::*wxIconizeEventFunction)(wxShowEvent&); -typedef void (wxEvtHandler::*wxMaximizeEventFunction)(wxShowEvent&); -typedef void (wxEvtHandler::*wxNavigationKeyEventFunction)(wxNavigationKeyEvent&); -typedef void (wxEvtHandler::*wxPaletteChangedEventFunction)(wxPaletteChangedEvent&); -typedef void (wxEvtHandler::*wxQueryNewPaletteEventFunction)(wxQueryNewPaletteEvent&); - -// N.B. In GNU-WIN32, you *have* to take the address of a member function -// (use &) or the compiler crashes... - -#define DECLARE_EVENT_TABLE() \ -private:\ - static const wxEventTableEntry sm_eventTableEntries[];\ -protected:\ - static const wxEventTable sm_eventTable;\ - virtual const wxEventTable* GetEventTable() const; - -#define BEGIN_EVENT_TABLE(theClass, baseClass) \ -const wxEventTable *theClass::GetEventTable() const { return &theClass::sm_eventTable; }\ -const wxEventTable theClass::sm_eventTable =\ - { &baseClass::sm_eventTable, &theClass::sm_eventTableEntries[0] };\ -const wxEventTableEntry theClass::sm_eventTableEntries[] = { \ - -#define END_EVENT_TABLE() \ - { 0, 0, 0, 0, 0 } }; - -/* - * Event table macros - */ - -// Generic events -#define EVT_CUSTOM(event, id, func) { event, id, -1, (wxObjectEventFunction) (wxEventFunction) & func, (wxObject *) NULL }, -#define EVT_CUSTOM_RANGE(event, id1, id2, func) { event, id1, id2, (wxObjectEventFunction) (wxEventFunction) & func, (wxObject *) NULL }, - -// Miscellaneous -#define EVT_SIZE(func) { wxEVT_SIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxSizeEventFunction) & func, (wxObject *) NULL }, -#define EVT_MOVE(func) { wxEVT_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMoveEventFunction) & func, (wxObject *) NULL }, -#define EVT_CLOSE(func) { wxEVT_CLOSE_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL }, -#define EVT_END_SESSION(func) { wxEVT_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL }, -#define EVT_QUERY_END_SESSION(func) { wxEVT_QUERY_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL }, -#define EVT_PAINT(func) { wxEVT_PAINT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaintEventFunction) & func, (wxObject *) NULL }, -#define EVT_ERASE_BACKGROUND(func) { wxEVT_ERASE_BACKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxEraseEventFunction) & func, (wxObject *) NULL }, -#define EVT_CHAR(func) { wxEVT_CHAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL }, -#define EVT_KEY_DOWN(func) { wxEVT_KEY_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL }, -#define EVT_KEY_UP(func) { wxEVT_KEY_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, (wxObject *) NULL }, -#define EVT_CHAR_HOOK(func) { wxEVT_CHAR_HOOK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCharEventFunction) & func, NULL }, -#define EVT_MENU_HIGHLIGHT(id, func) { wxEVT_MENU_HIGHLIGHT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL }, -#define EVT_MENU_HIGHLIGHT_ALL(func) { wxEVT_MENU_HIGHLIGHT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMenuEventFunction) & func, (wxObject *) NULL }, -#define EVT_SET_FOCUS(func) { wxEVT_SET_FOCUS, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxFocusEventFunction) & func, (wxObject *) NULL }, -#define EVT_KILL_FOCUS(func) { wxEVT_KILL_FOCUS, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxFocusEventFunction) & func, (wxObject *) NULL }, -#define EVT_ACTIVATE(func) { wxEVT_ACTIVATE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxActivateEventFunction) & func, (wxObject *) NULL }, -#define EVT_ACTIVATE_APP(func) { wxEVT_ACTIVATE_APP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxActivateEventFunction) & func, (wxObject *) NULL }, -#define EVT_END_SESSION(func) { wxEVT_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL }, -#define EVT_QUERY_END_SESSION(func) { wxEVT_QUERY_END_SESSION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCloseEventFunction) & func, (wxObject *) NULL }, -#define EVT_DROP_FILES(func) { wxEVT_DROP_FILES, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxDropFilesEventFunction) & func, (wxObject *) NULL }, -#define EVT_INIT_DIALOG(func) { wxEVT_INIT_DIALOG, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxInitDialogEventFunction) & func, (wxObject *) NULL }, -#define EVT_SYS_COLOUR_CHANGED(func) { wxEVT_SYS_COLOUR_CHANGED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxSysColourChangedFunction) & func, (wxObject *) NULL }, -#define EVT_SHOW(func) { wxEVT_SHOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxShowEventFunction) & func, (wxObject *) NULL }, -#define EVT_MAXIMIZE(func) { wxEVT_MAXIMIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMaximizeEventFunction) & func, (wxObject *) NULL }, -#define EVT_ICONIZE(func) { wxEVT_ICONIZE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxIconizeEventFunction) & func, (wxObject *) NULL }, -#define EVT_NAVIGATION_KEY(func) { wxEVT_NAVIGATION_KEY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNavigationKeyEventFunction) & func, (wxObject *) NULL }, -#define EVT_PALETTE_CHANGED(func) { wxEVT_PALETTE_CHANGED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxPaletteChangedEventFunction) & func, (wxObject *) NULL }, -#define EVT_QUERY_NEW_PALETTE(func) { wxEVT_QUERY_NEW_PALETTE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, (wxObject *) NULL }, -#define EVT_WINDOW_CREATE(func) { wxEVT_CREATE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, (wxObject *) NULL }, -#define EVT_WINDOW_DESTROY(func) { wxEVT_DESTROY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryNewPaletteEventFunction) & func, (wxObject *) NULL }, - -// Mouse events -#define EVT_LEFT_DOWN(func) { wxEVT_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_LEFT_UP(func) { wxEVT_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_MIDDLE_DOWN(func) { wxEVT_MIDDLE_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_MIDDLE_UP(func) { wxEVT_MIDDLE_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_RIGHT_DOWN(func) { wxEVT_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_RIGHT_UP(func) { wxEVT_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_MOTION(func) { wxEVT_MOTION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_LEFT_DCLICK(func) { wxEVT_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_MIDDLE_DCLICK(func) { wxEVT_MIDDLE_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_RIGHT_DCLICK(func) { wxEVT_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_LEAVE_WINDOW(func) { wxEVT_LEAVE_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, -#define EVT_ENTER_WINDOW(func) { wxEVT_ENTER_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, - -// All mouse events -#define EVT_MOUSE_EVENTS(func) \ - { wxEVT_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_MIDDLE_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_MIDDLE_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_MOTION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_MIDDLE_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_ENTER_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_LEAVE_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxMouseEventFunction) & func, (wxObject *) NULL }, - -// EVT_COMMAND -#define EVT_COMMAND(id, event, fn) { event, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_RANGE(id1, id2, event, fn) { event, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, - -// Scrolling from wxWindow (sent to wxScrolledWindow) -#define EVT_SCROLLWIN(func) \ - { wxEVT_SCROLLWIN_TOP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLLWIN_BOTTOM, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLLWIN_LINEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLLWIN_LINEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLLWIN_PAGEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLLWIN_PAGEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLLWIN_THUMBTRACK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, - -#define EVT_SCROLLWIN_TOP(func) { wxEVT_SCROLLWIN_TOP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLLWIN_BOTTOM(func) { wxEVT_SCROLLWIN_BOTTOM, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLLWIN_LINEUP(func) { wxEVT_SCROLLWIN_LINEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLLWIN_LINEDOWN(func) { wxEVT_SCROLLWIN_LINEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLLWIN_PAGEUP(func) { wxEVT_SCROLLWIN_PAGEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLLWIN_PAGEDOWN(func) { wxEVT_SCROLLWIN_PAGEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLLWIN_THUMBTRACK(func) { wxEVT_SCROLLWIN_THUMBTRACK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollWinEventFunction) & func, (wxObject *) NULL }, - -// Scrolling from wxSlider and wxScrollBar -#define EVT_SCROLL(func) \ - { wxEVT_SCROLL_TOP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_BOTTOM, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_LINEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_LINEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_PAGEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_PAGEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_THUMBTRACK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, - -#define EVT_SCROLL_TOP(func) { wxEVT_SCROLL_TOP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLL_BOTTOM(func) { wxEVT_SCROLL_BOTTOM, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLL_LINEUP(func) { wxEVT_SCROLL_LINEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLL_LINEDOWN(func) { wxEVT_SCROLL_LINEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLL_PAGEUP(func) { wxEVT_SCROLL_PAGEUP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLL_PAGEDOWN(func) { wxEVT_SCROLL_PAGEDOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_SCROLL_THUMBTRACK(func) { wxEVT_SCROLL_THUMBTRACK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, - -// Scrolling from wxSlider and wxScrollBar, with an id -#define EVT_COMMAND_SCROLL(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, - -#define EVT_COMMAND_SCROLL_TOP(id, func) { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_COMMAND_SCROLL_BOTTOM(id, func) { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_COMMAND_SCROLL_LINEUP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_COMMAND_SCROLL_LINEDOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_COMMAND_SCROLL_PAGEUP(id, func) { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_COMMAND_SCROLL_PAGEDOWN(id, func) { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, -#define EVT_COMMAND_SCROLL_THUMBTRACK(id, func) { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxScrollEventFunction) & func, (wxObject *) NULL }, - -// Convenience macros for commonly-used commands -#define EVT_BUTTON(id, fn) { wxEVT_COMMAND_BUTTON_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CHECKBOX(id, fn) { wxEVT_COMMAND_CHECKBOX_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CHOICE(id, fn) { wxEVT_COMMAND_CHOICE_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LISTBOX(id, fn) { wxEVT_COMMAND_LISTBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LISTBOX_DCLICK(id, fn) { wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TEXT(id, fn) { wxEVT_COMMAND_TEXT_UPDATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TEXT_ENTER(id, fn) { wxEVT_COMMAND_TEXT_ENTER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_MENU(id, fn) { wxEVT_COMMAND_MENU_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_MENU_RANGE(id1, id2, fn) { wxEVT_COMMAND_MENU_SELECTED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_SLIDER(id, fn) { wxEVT_COMMAND_SLIDER_UPDATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_RADIOBOX(id, fn) { wxEVT_COMMAND_RADIOBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_RADIOBUTTON(id, fn) { wxEVT_COMMAND_RADIOBUTTON_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -// EVT_SCROLLBAR is now obsolete since we use EVT_COMMAND_SCROLL... events -#define EVT_SCROLLBAR(id, fn) { wxEVT_COMMAND_SCROLLBAR_UPDATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_VLBOX(id, fn) { wxEVT_COMMAND_VLBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMBOBOX(id, fn) { wxEVT_COMMAND_COMBOBOX_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TOOL(id, fn) { wxEVT_COMMAND_TOOL_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TOOL_RANGE(id1, id2, fn) { wxEVT_COMMAND_TOOL_CLICKED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TOOL_RCLICKED(id, fn) { wxEVT_COMMAND_TOOL_RCLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TOOL_RCLICKED_RANGE(id1, id2, fn) { wxEVT_COMMAND_TOOL_RCLICKED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TOOL_ENTER(id, fn) { wxEVT_COMMAND_TOOL_ENTER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_CHECKLISTBOX(id, fn) { wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, - -// Generic command events -#define EVT_COMMAND_LEFT_CLICK(id, fn) { wxEVT_COMMAND_LEFT_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_LEFT_DCLICK(id, fn) { wxEVT_COMMAND_LEFT_DCLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_RIGHT_CLICK(id, fn) { wxEVT_COMMAND_RIGHT_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_RIGHT_DCLICK(id, fn) { wxEVT_COMMAND_RIGHT_DCLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_SET_FOCUS(id, fn) { wxEVT_COMMAND_SET_FOCUS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_KILL_FOCUS(id, fn) { wxEVT_COMMAND_KILL_FOCUS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, -#define EVT_COMMAND_ENTER(id, fn) { wxEVT_COMMAND_ENTER, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL }, - -// Joystick events -#define EVT_JOY_DOWN(func) \ - { wxEVT_JOY_BUTTON_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL }, -#define EVT_JOY_UP(func) \ - { wxEVT_JOY_BUTTON_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL }, -#define EVT_JOY_MOVE(func) \ - { wxEVT_JOY_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL }, -#define EVT_JOY_ZMOVE(func) \ - { wxEVT_JOY_ZMOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL }, - -// All joystick events -#define EVT_JOYSTICK_EVENTS(func) \ - { wxEVT_JOY_BUTTON_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_JOY_BUTTON_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_JOY_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ - { wxEVT_JOY_ZMOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxJoystickEventFunction) & func, (wxObject *) NULL },\ - -// Idle event -#define EVT_IDLE(func) \ - { wxEVT_IDLE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxIdleEventFunction) & func, (wxObject *) NULL },\ - -// Update UI event -#define EVT_UPDATE_UI(id, func) \ - { wxEVT_UPDATE_UI, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxUpdateUIEventFunction) & func, (wxObject *) NULL },\ - -/* - * Helper functions - */ - -// Find a window with the focus, that is also a descendant of the given window. -// This is used to determine the window to initially send commands to. -wxWindow* wxFindFocusDescendant(wxWindow* ancestor); - -#endif - // _WX_EVENTH__ diff --git a/include/wx/expr.h b/include/wx/expr.h deleted file mode 100644 index 777676fddd..0000000000 --- a/include/wx/expr.h +++ /dev/null @@ -1,126 +0,0 @@ -/* ////////////////////////////////////////////////////////////////////////// -// Name: expr.h -// Purpose: C helper defines and functions for wxExpr class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -////////////////////////////////////////////////////////////////////////// */ - -#ifndef _WX_EXPRH__ -#define _WX_EXPRH__ - -#include -#include - -#ifdef ____HPUX__ -#define alloca malloc -#endif - -/* Rename all YACC/LEX stuff or we'll conflict with other - * applications - */ - -#define yyback PROIO_yyback -#define yylook PROIO_yylook -#define yywrap PROIO_yywrap -#define yyoutput PROIO_yyoutput -#define yylex PROIO_yylex -#define yyerror PROIO_yyerror -#define yyleng PROIO_yyleng -#define yytext PROIO_yytext -#define yymorfg PROIO_yymorfg -#define yylineno PROIO_yylineno -#define yytchar PROIO_yytchar -#define yyin PROIO_yyin -#define yyout PROIO_yyout -#define yysvf PROIO_yysvf -#define yyestate PROIO_yyestate -#define yysvec PROIO_yysvec -#define yybgin PROIO_yybgin -#define yyprevious PROIO_yyprevious -#define yylhs PROIO_yylhs -#define yylen PROIO_yylen -#define yydefred PROIO_yydefred -#define yydgoto PROIO_yydgoto -#define yysindex PROIO_yysindex -#define yyrindex PROIO_yyrindex -#define yygindex PROIO_yygindex -#define yytable PROIO_yytable -#define yycheck PROIO_yycheck -#define yyname PROIO_yyname -#define yyrule PROIO_yyrule -#define yydebug PROIO_yydebug -#define yynerrs PROIO_yynerrs -#define yyerrflag PROIO_yyerrflag -#define yychar PROIO_yychar -#define yyvsp PROIO_yyvsp -#define yyssp PROIO_yyssp -#define yyval PROIO_yyval -#define yylval PROIO_yylval -#define yyss PROIO_yyss -#define yyvs PROIO_yyvs -#define yyparse PROIO_yyparse - -/* +++steve162e: more defines necessary */ -#define yy_init_buffer PROIO_yy_init_buffer -#define yy_create_buffer PROIO_yy_create_buffer -#define yy_load_buffer_state PROIO_yy_load_buffer_state -#define yyrestart PROIO_yyrestart -#define yy_switch_to_buffer PROIO_yy_switch_to_buffer -#define yy_delete_buffer PROIO_yy_delete_buffer -/* ---steve162e */ - -/* WG 1/96: still more for flex 2.5 */ -#define yy_scan_buffer PROIO_scan_buffer -#define yy_scan_string PROIO_scan_string -#define yy_scan_bytes PROIO_scan_bytes -#define yy_flex_debug PROIO_flex_debug -#define yy_flush_buffer PROIO_flush_buffer -#define yyleng PROIO_yyleng -#define yytext PROIO_yytext - -#ifdef __cplusplus -extern "C" { -char *proio_cons(char *, char *); -char * wxmake_integer(char *); -char * wxmake_word(char *); -char * wxmake_string(char *); -char * wxmake_real(char *, char *); -char * wxmake_exp(char *, char *); -char * wxmake_exp2(char *, char *, char*); -void add_expr(char *); -void process_command(char *); -void syntax_error(char *); -} -#else -#if __BORLANDC__ -char *proio_cons(char *, char *); -char * wxmake_integer(char *); -char * wxmake_word(char *); -char * wxmake_string(char *); -char * wxmake_real(char *, char *); -char * wxmake_exp(char *, char *); -char * wxmake_exp2(char *, char *, char*); -void add_expr(char *); -void process_command(char *); -void syntax_error(char *); -#else -char *proio_cons(); -char * wxmake_integer(); -char * wxmake_word(); -char * wxmake_string(); -char * wxmake_real(); -char * wxmake_exp(); -char * wxmake_exp2(); - -void add_expr(); -void process_command(); -void syntax_error(); -#endif -#endif - -#endif - /* _WX_EXPRH__ */ diff --git a/include/wx/file.h b/include/wx/file.h deleted file mode 100644 index 038b578e33..0000000000 --- a/include/wx/file.h +++ /dev/null @@ -1,182 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: file.cpp -// Purpose: wxFile - encapsulates low-level "file descriptor" -// wxTempFile - safely replace the old file -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __FILEH__ -#define __FILEH__ - -#ifdef __GNUG__ -#pragma interface "file.h" -#endif - -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/filefn.h" -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// we redefine these constants here because S_IREAD &c are _not_ standard -// however, we do assume that the values correspond to the Unix umask bits -#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) - -// ---------------------------------------------------------------------------- -// class wxFile: raw file IO -// -// NB: for space efficiency this class has no virtual functions, including -// dtor which is _not_ virtual, so it shouldn't be used as a base class. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFile -{ -public: - // more file constants - // ------------------- - // opening mode - enum OpenMode { read, write, read_write, write_append }; - // standard values for file descriptor - enum { fd_invalid = -1, fd_stdin, fd_stdout, fd_stderr }; - - // static functions - // ---------------- - // check whether a regular file by this name exists - static bool Exists(const wxChar *name); - // check whetther we can access the given file in given mode - // (only read and write make sense here) - static bool Access(const wxChar *name, OpenMode mode); - - // ctors - // ----- - // def ctor - wxFile() { m_fd = fd_invalid; } - // open specified file (may fail, use IsOpened()) - wxFile(const wxChar *szFileName, OpenMode mode = read); - // attach to (already opened) file - wxFile(int fd) { m_fd = fd; } - - // open/close - // create a new file (with the default value of bOverwrite, it will fail if - // the file already exists, otherwise it will overwrite it and succeed) - bool Create(const wxChar *szFileName, bool bOverwrite = FALSE, - int access = wxS_DEFAULT); - bool Open(const wxChar *szFileName, OpenMode mode = read, - int access = wxS_DEFAULT); - bool Close(); // Close is a NOP if not opened - - // assign an existing file descriptor and get it back from wxFile object - void Attach(int fd) { Close(); m_fd = fd; } - void Detach() { m_fd = fd_invalid; } - int fd() const { return m_fd; } - - // read/write (unbuffered) - // returns number of bytes read or ofsInvalid on error - off_t Read(void *pBuf, off_t nCount); - // returns true on success - size_t Write(const void *pBuf, size_t nCount); - // returns true on success - bool Write(const wxString& s) { return Write(s.c_str(), s.Len()*sizeof(wxChar)) != 0; } - // flush data not yet written - bool Flush(); - - // file pointer operations (return ofsInvalid on failure) - // move ptr ofs bytes related to start/current off_t/end of file - off_t Seek(off_t ofs, wxSeekMode mode = wxFromStart); - // move ptr to ofs bytes before the end - off_t SeekEnd(off_t ofs = 0) { return Seek(ofs, wxFromEnd); } - // get current off_t - off_t Tell() const; - // get current file length - off_t Length() const; - - // simple accessors - // is file opened? - bool IsOpened() const { return m_fd != fd_invalid; } - // is end of file reached? - bool Eof() const; - // is an error occured? - bool Error() const { return m_error; } - - // dtor closes the file if opened - ~wxFile(); - -private: - // copy ctor and assignment operator are private because - // it doesn't make sense to copy files this way: - // attempt to do it will provoke a compile-time error. - wxFile(const wxFile&); - wxFile& operator=(const wxFile&); - - int m_fd; // file descriptor or INVALID_FD if not opened - bool m_error; // error memory -}; - -// ---------------------------------------------------------------------------- -// class wxTempFile: if you want to replace another file, create an instance -// of wxTempFile passing the name of the file to be replaced to the ctor. Then -// you can write to wxTempFile and call Commit() function to replace the old -// file (and close this one) or call Discard() to cancel the modification. If -// you call neither of them, dtor will call Discard(). -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTempFile -{ -public: - // ctors - // default - wxTempFile() { } - // associates the temp file with the file to be replaced and opens it - wxTempFile(const wxString& strName); - - // open the temp file (strName is the name of file to be replaced) - bool Open(const wxString& strName); - - // is the file opened? - bool IsOpened() const { return m_file.IsOpened(); } - - // I/O (both functions return true on success, false on failure) - bool Write(const void *p, size_t n) { return m_file.Write(p, n) != 0; } - bool Write(const wxString& str) { return m_file.Write(str); } - - // different ways to close the file - // validate changes and delete the old file of name m_strName - bool Commit(); - // discard changes - void Discard(); - - // dtor calls Discard() if file is still opened - ~wxTempFile(); - -private: - // no copy ctor/assignment operator - wxTempFile(const wxTempFile&); - wxTempFile& operator=(const wxTempFile&); - - wxString m_strName, // name of the file to replace in Commit() - m_strTemp; // temporary file name - wxFile m_file; // the temporary file -}; - -#endif - // _WX_FILEH__ diff --git a/include/wx/fileconf.h b/include/wx/fileconf.h deleted file mode 100644 index d5e34274d4..0000000000 --- a/include/wx/fileconf.h +++ /dev/null @@ -1,353 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: fileconf.h -// Purpose: wxFileConfig derivation of wxConfigBase -// Author: Vadim Zeitlin -// Modified by: -// Created: 07.04.98 (adapted from appconf.cpp) -// RCS-ID: $Id$ -// Copyright: (c) 1997 Karsten Ballüder & Vadim Zeitlin -// Ballueder@usa.net -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _FILECONF_H -#define _FILECONF_H - -#ifdef __GNUG__ -#pragma interface "fileconf.h" -#endif - -#include "wx/defs.h" -#include "wx/textfile.h" -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// compile options -// ---------------------------------------------------------------------------- - -// it won't compile without it anyhow -#ifndef wxUSE_CONFIG - #error "Please define wxUSE_CONFIG or remove fileconf.cpp from your makefile" -#endif // wxUSE_CONFIG - -// ---------------------------------------------------------------------------- -// wxFileConfig -// ---------------------------------------------------------------------------- - -/* - wxFileConfig derives from base Config and implements file based config class, - i.e. it uses ASCII disk files to store the information. These files are - alternatively called INI, .conf or .rc in the documentation. They are - organized in groups or sections, which can nest (i.e. a group contains - subgroups, which contain their own subgroups &c). Each group has some - number of entries, which are "key = value" pairs. More precisely, the format - is: - - # comments are allowed after either ';' or '#' (Win/UNIX standard) - - # blank lines (as above) are ignored - - # global entries are members of special (no name) top group - written_for = Windows - platform = Linux - - # the start of the group 'Foo' - [Foo] # may put comments like this also - # following 3 lines are entries - key = value - another_key = " strings with spaces in the beginning should be quoted, \ - otherwise the spaces are lost" - last_key = but you don't have to put " normally (nor quote them, like here) - - # subgroup of the group 'Foo' - # (order is not important, only the name is: separator is '/', as in paths) - [Foo/Bar] - # entries prefixed with "!" are immutable, i.e. can't be changed if they are - # set in the system-wide config file - !special_key = value - bar_entry = whatever - - [Foo/Bar/Fubar] # depth is (theoretically :-) unlimited - # may have the same name as key in another section - bar_entry = whatever not - - You have {read/write/delete}Entry functions (guess what they do) and also - setCurrentPath to select current group. enum{Subgroups/Entries} allow you - to get all entries in the config file (in the current group). Finally, - flush() writes immediately all changed entries to disk (otherwise it would - be done automatically in dtor) - - wxFileConfig manages not less than 2 config files for each program: global - and local (or system and user if you prefer). Entries are read from both of - them and the local entries override the global ones unless the latter is - immutable (prefixed with '!') in which case a warning message is generated - and local value is ignored. Of course, the changes are always written to local - file only. - - The names of these files can be specified in a number of ways. First of all, - you can use the standard convention: using the ctor which takes 'strAppName' - parameter will probably be sufficient for 90% of cases. If, for whatever - reason you wish to use the files with some other names, you can always use the - second ctor. - - wxFileConfig also may automatically expand the values of environment variables - in the entries it reads: for example, if you have an entry - score_file = $HOME/.score - a call to Read(&str, "score_file") will return a complete path to .score file - unless the expansion was previousle disabled with SetExpandEnvVars(FALSE) call - (it's on by default, the current status can be retrieved with - IsExpandingEnvVars function). -*/ -class wxFileConfig; -class ConfigGroup; -class ConfigEntry; - -// we store all lines of the local config file as a linked list in memory -class LineList -{ -public: - void SetNext(LineList *pNext) { m_pNext = pNext; } - void SetPrev(LineList *pPrev) { m_pPrev = pPrev; } - - // ctor - LineList(const wxString& str, LineList *pNext = (LineList *) NULL) : m_strLine(str) - { SetNext(pNext); SetPrev((LineList *) NULL); } - - // - LineList *Next() const { return m_pNext; } - LineList *Prev() const { return m_pPrev; } - - // - void SetText(const wxString& str) { m_strLine = str; } - const wxString& Text() const { return m_strLine; } - -private: - wxString m_strLine; // line contents - LineList *m_pNext, // next node - *m_pPrev; // previous one -}; - -class wxFileConfig : public wxConfigBase -{ -public: - // construct the "standard" full name for global (system-wide) and - // local (user-specific) config files from the base file name. - // - // the following are the filenames returned by this functions: - // global local - // Unix /etc/file.ext ~/.file - // Win %windir%\file.ext %USERPROFILE%\file.ext - // - // where file is the basename of szFile, ext is it's extension - // or .conf (Unix) or .ini (Win) if it has none - static wxString GetGlobalFileName(const wxChar *szFile); - static wxString GetLocalFileName(const wxChar *szFile); - - // ctor & dtor - // New constructor: one size fits all. Specify wxCONFIG_USE_LOCAL_FILE or - // wxCONFIG_USE_GLOBAL_FILE to say which files should be used. - wxFileConfig(const wxString& appName, - const wxString& vendorName = _T(""), - const wxString& localFilename = _T(""), - const wxString& globalFilename = _T(""), - long style = wxCONFIG_USE_LOCAL_FILE); - - // dtor will save unsaved data - virtual ~wxFileConfig(); - - // implement inherited pure virtual functions - virtual void SetPath(const wxString& strPath); - virtual const wxString& GetPath() const { return m_strPath; } - - virtual bool GetFirstGroup(wxString& str, long& lIndex) const; - virtual bool GetNextGroup (wxString& str, long& lIndex) const; - virtual bool GetFirstEntry(wxString& str, long& lIndex) const; - virtual bool GetNextEntry (wxString& str, long& lIndex) const; - - virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const; - virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const; - - virtual bool HasGroup(const wxString& strName) const; - virtual bool HasEntry(const wxString& strName) const; - - virtual bool Read(const wxString& key, wxString *pStr) const; - virtual bool Read(const wxString& key, wxString *pStr, const wxString& defValue) const; - virtual bool Read(const wxString& key, long *pl) const; - - // The following are necessary to satisfy the compiler - wxString Read(const wxString& key, const wxString& defVal) const - { return wxConfigBase::Read(key, defVal); } - bool Read(const wxString& key, long *pl, long defVal) const - { return wxConfigBase::Read(key, pl, defVal); } - long Read(const wxString& key, long defVal) const - { return wxConfigBase::Read(key, defVal); } - bool Read(const wxString& key, int *pi, int defVal) const - { return wxConfigBase::Read(key, pi, defVal); } - bool Read(const wxString& key, int *pi) const - { return wxConfigBase::Read(key, pi); } - bool Read(const wxString& key, double* val) const - { return wxConfigBase::Read(key, val); } - bool Read(const wxString& key, double* val, double defVal) const - { return wxConfigBase::Read(key, val, defVal); } - bool Read(const wxString& key, bool* val) const - { return wxConfigBase::Read(key, val); } - bool Read(const wxString& key, bool* val, bool defVal) const - { return wxConfigBase::Read(key, val, defVal); } - - virtual bool Write(const wxString& key, const wxString& szValue); - virtual bool Write(const wxString& key, long lValue); - bool Write(const wxString& key, double value) - { return wxConfigBase::Write(key, value); } - bool Write(const wxString& key, bool value) - { return wxConfigBase::Write(key, value); } - - virtual bool Flush(bool bCurrentOnly = FALSE); - - virtual bool RenameEntry(const wxString& oldName, const wxString& newName); - virtual bool RenameGroup(const wxString& oldName, const wxString& newName); - - virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso); - virtual bool DeleteGroup(const wxString& szKey); - virtual bool DeleteAll(); - -public: - // functions to work with this list - LineList *LineListAppend(const wxString& str); - LineList *LineListInsert(const wxString& str, - LineList *pLine); // NULL => Prepend() - void LineListRemove(LineList *pLine); - bool LineListIsEmpty(); - -private: - // GetXXXFileName helpers: return ('/' terminated) directory names - static wxString GetGlobalDir(); - static wxString GetLocalDir(); - - // common part of all ctors (assumes that m_str{Local|Global}File are already - // initialized - void Init(); - - // common part of from dtor and DeleteAll - void CleanUp(); - - // parse the whole file - void Parse(wxTextFile& file, bool bLocal); - - // the same as SetPath("/") - void SetRootPath(); - - // member variables - // ---------------- - LineList *m_linesHead, // head of the linked list - *m_linesTail; // tail - - wxString m_strLocalFile, // local file name passed to ctor - m_strGlobalFile; // global - wxString m_strPath; // current path (not '/' terminated) - - ConfigGroup *m_pRootGroup, // the top (unnamed) group - *m_pCurrentGroup; // the current group - -public: - WX_DEFINE_SORTED_ARRAY(ConfigEntry *, ArrayEntries); - WX_DEFINE_SORTED_ARRAY(ConfigGroup *, ArrayGroups); -}; - -class ConfigEntry -{ -private: - ConfigGroup *m_pParent; // group that contains us - wxString m_strName, // entry name - m_strValue; // value - bool m_bDirty, // changed since last read? - m_bImmutable; // can be overriden locally? - int m_nLine; // used if m_pLine == NULL only - LineList *m_pLine; // pointer to our line in the linked list - // or NULL if it was found in global file - -public: - ConfigEntry(ConfigGroup *pParent, const wxString& strName, int nLine); - - // simple accessors - const wxString& Name() const { return m_strName; } - const wxString& Value() const { return m_strValue; } - ConfigGroup *Group() const { return m_pParent; } - bool IsDirty() const { return m_bDirty; } - bool IsImmutable() const { return m_bImmutable; } - bool IsLocal() const { return m_pLine != 0; } - int Line() const { return m_nLine; } - LineList *GetLine() const { return m_pLine; } - - // modify entry attributes - void SetValue(const wxString& strValue, bool bUser = TRUE); - void SetDirty(); - void SetLine(LineList *pLine); -}; - -class ConfigGroup -{ -private: - wxFileConfig *m_pConfig; // config object we belong to - ConfigGroup *m_pParent; // parent group (NULL for root group) - wxFileConfig::ArrayEntries m_aEntries; // entries in this group - wxFileConfig::ArrayGroups m_aSubgroups; // subgroups - wxString m_strName; // group's name - bool m_bDirty; // if FALSE => all subgroups are not dirty - LineList *m_pLine; // pointer to our line in the linked list - ConfigEntry *m_pLastEntry; // last entry/subgroup of this group in the - ConfigGroup *m_pLastGroup; // local file (we insert new ones after it) - - // DeleteSubgroupByName helper - bool DeleteSubgroup(ConfigGroup *pGroup); - -public: - // ctor - ConfigGroup(ConfigGroup *pParent, const wxString& strName, wxFileConfig *); - - // dtor deletes all entries and subgroups also - ~ConfigGroup(); - - // simple accessors - const wxString& Name() const { return m_strName; } - ConfigGroup *Parent() const { return m_pParent; } - wxFileConfig *Config() const { return m_pConfig; } - bool IsDirty() const { return m_bDirty; } - - const wxFileConfig::ArrayEntries& Entries() const { return m_aEntries; } - const wxFileConfig::ArrayGroups& Groups() const { return m_aSubgroups; } - bool IsEmpty() const { return Entries().IsEmpty() && Groups().IsEmpty(); } - - // find entry/subgroup (NULL if not found) - ConfigGroup *FindSubgroup(const wxChar *szName) const; - ConfigEntry *FindEntry (const wxChar *szName) const; - - // delete entry/subgroup, return FALSE if doesn't exist - bool DeleteSubgroupByName(const wxChar *szName); - bool DeleteEntry(const wxChar *szName); - - // create new entry/subgroup returning pointer to newly created element - ConfigGroup *AddSubgroup(const wxString& strName); - ConfigEntry *AddEntry (const wxString& strName, int nLine = wxNOT_FOUND); - - // will also recursively set parent's dirty flag - void SetDirty(); - void SetLine(LineList *pLine); - - // rename: no checks are done to ensure that the name is unique! - void Rename(const wxString& newName); - - // - wxString GetFullName() const; - - // get the last line belonging to an entry/subgroup of this group - LineList *GetGroupLine(); // line which contains [group] - LineList *GetLastEntryLine(); // after which our subgroups start - LineList *GetLastGroupLine(); // after which the next group starts - - // called by entries/subgroups when they're created/deleted - void SetLastEntry(ConfigEntry *pEntry) { m_pLastEntry = pEntry; } - void SetLastGroup(ConfigGroup *pGroup) { m_pLastGroup = pGroup; } -}; - -#endif //_FILECONF_H - diff --git a/include/wx/filedlg.h b/include/wx/filedlg.h deleted file mode 100644 index 7fc2e7a76e..0000000000 --- a/include/wx/filedlg.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _WX_FILEDLG_H_BASE_ -#define _WX_FILEDLG_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/filedlg.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/filedlg.h" -#elif defined(__WXGTK__) -#include "wx/gtk/filedlg.h" -#elif defined(__WXQT__) -#include "wx/qt/filedlg.h" -#elif defined(__WXMAC__) -#include "wx/mac/filedlg.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/filedlg.h" -#endif - - -#endif - // _WX_FILEDLG_H_BASE_ diff --git a/include/wx/filefn.h b/include/wx/filefn.h deleted file mode 100644 index 22db00222b..0000000000 --- a/include/wx/filefn.h +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filefn.h -// Purpose: File- and directory-related functions -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _FILEFN_H_ -#define _FILEFN_H_ - -#ifdef __GNUG__ - #pragma interface "filefn.h" -#endif - -#include - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// define off_t -#ifndef __WXMAC__ - #include -#else - typedef long off_t; -#endif - -#if defined(__VISUALC__) || ( defined(__MWERKS__) && defined( __INTEL__) ) - typedef _off_t off_t; -#elif defined(__BORLANDC__) && defined(__WIN16__) - typedef long off_t; -#elif defined(__SC__) - typedef long off_t; -#elif defined(__MWERKS__) && !defined(__INTEL__) - typedef long off_t; -#endif - -const off_t wxInvalidOffset = (off_t)-1; - -enum wxSeekMode -{ - wxFromStart, - wxFromCurrent, - wxFromEnd -}; - -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// functions -// ---------------------------------------------------------------------------- -WXDLLEXPORT bool wxFileExists(const wxString& filename); -#define FileExists wxFileExists - -// does the path exist? (may have or not '/' or '\\' at the end) -WXDLLEXPORT bool wxPathExists(const wxChar *pszPathName); - -#define wxDirExists wxPathExists -#define DirExists wxDirExists - -WXDLLEXPORT bool wxIsAbsolutePath(const wxString& filename); -#define IsAbsolutePath wxIsAbsolutePath - -// Get filename -WXDLLEXPORT wxChar* wxFileNameFromPath(wxChar *path); -WXDLLEXPORT wxString wxFileNameFromPath(const wxString& path); -#define FileNameFromPath wxFileNameFromPath - -// Get directory -WXDLLEXPORT wxString wxPathOnly(const wxString& path); -#define PathOnly wxPathOnly - -// wxString version -WXDLLEXPORT wxString wxRealPath(const wxString& path); - -WXDLLEXPORT void wxDos2UnixFilename(wxChar *s); -#define Dos2UnixFilename wxDos2UnixFilename - -WXDLLEXPORT void wxUnix2DosFilename(wxChar *s); -#define Unix2DosFilename wxUnix2DosFilename - -#ifdef __WXMAC__ - WXDLLEXPORT void wxMacPathToFSSpec( const wxChar *path , FSSpec *spec ) ; - WXDLLEXPORT void wxMac2UnixFilename(wxChar *s); - WXDLLEXPORT void wxUnix2MacFilename(wxChar *s); -#endif - -// Strip the extension, in situ -WXDLLEXPORT void wxStripExtension(wxChar *buffer); -WXDLLEXPORT void wxStripExtension(wxString& buffer); - -// Get a temporary filename, opening and closing the file. -WXDLLEXPORT wxChar* wxGetTempFileName(const wxString& prefix, wxChar *buf = (wxChar *) NULL); - -// Expand file name (~/ and ${OPENWINHOME}/ stuff) -WXDLLEXPORT wxChar* wxExpandPath(wxChar *dest, const wxChar *path); - -// Contract w.r.t environment ( -> ${OPENWINHOME}/lib) -// and make (if under the home tree) relative to home -// [caller must copy-- volatile] -WXDLLEXPORT wxChar* wxContractPath(const wxString& filename, - const wxString& envname = wxEmptyString, - const wxString& user = wxEmptyString); - -// Destructive removal of /./ and /../ stuff -WXDLLEXPORT wxChar* wxRealPath(wxChar *path); - -// Allocate a copy of the full absolute path -WXDLLEXPORT wxChar* wxCopyAbsolutePath(const wxString& path); - -// Get first file name matching given wild card. -// Flags are reserved for future use. -#define wxFILE 1 -#define wxDIR 2 -WXDLLEXPORT wxString wxFindFirstFile(const wxChar *spec, int flags = wxFILE); -WXDLLEXPORT wxString wxFindNextFile(); - -// Does the pattern contain wildcards? -WXDLLEXPORT bool wxIsWild(const wxString& pattern); - -// Does the pattern match the text (usually a filename)? -// If dot_special is TRUE, doesn't match * against . (eliminating -// `hidden' dot files) -WXDLLEXPORT bool wxMatchWild(const wxString& pattern, const wxString& text, bool dot_special = TRUE); - -// Concatenate two files to form third -WXDLLEXPORT bool wxConcatFiles(const wxString& file1, const wxString& file2, const wxString& file3); - -// Copy file1 to file2 -WXDLLEXPORT bool wxCopyFile(const wxString& file1, const wxString& file2); - -// Remove file -WXDLLEXPORT bool wxRemoveFile(const wxString& file); - -// Rename file -WXDLLEXPORT bool wxRenameFile(const wxString& file1, const wxString& file2); - -// Get current working directory. -// If buf is NULL, allocates space using new, else -// copies into buf. -// IMPORTANT NOTE getcwd is know not to work under some releases -// of Win32s 1.3, according to MS release notes! -WXDLLEXPORT wxChar* wxGetWorkingDirectory(wxChar *buf = (wxChar *) NULL, int sz = 1000); -// new and preferred version of wxGetWorkingDirectory -// NB: can't have the same name because of overloading ambiguity -WXDLLEXPORT wxString wxGetCwd(); - -// Set working directory -WXDLLEXPORT bool wxSetWorkingDirectory(const wxString& d); - -// Make directory -WXDLLEXPORT bool wxMkdir(const wxString& dir, int perm = 0777); - -// Remove directory. Flags reserved for future use. -WXDLLEXPORT bool wxRmdir(const wxString& dir, int flags = 0); - -// separators in file names -#define wxFILE_SEP_EXT _T('.') -#define wxFILE_SEP_DSK _T(':') -#define wxFILE_SEP_PATH_DOS _T('\\') -#define wxFILE_SEP_PATH_UNIX _T('/') - -// separator in the path list (as in PATH environment variable) -// NB: these are strings and not characters on purpose! -#define wxPATH_SEP_DOS _T(";") -#define wxPATH_SEP_UNIX _T(":") - -// platform independent versions -#ifdef __UNIX__ - #define wxFILE_SEP_PATH wxFILE_SEP_PATH_UNIX - #define wxPATH_SEP wxPATH_SEP_UNIX -#else // Windows - #define wxFILE_SEP_PATH wxFILE_SEP_PATH_DOS - #define wxPATH_SEP wxPATH_SEP_DOS -#endif // Unix/Windows - -// this is useful for wxString::IsSameAs(): to compare two file names use -// filename1.IsSameAs(filename2, wxARE_FILENAMES_CASE_SENSITIVE) -#ifdef __UNIX__ - #define wxARE_FILENAMES_CASE_SENSITIVE TRUE -#else // Windows - #define wxARE_FILENAMES_CASE_SENSITIVE FALSE -#endif // Unix/Windows - -// is the char a path separator? -inline bool wxIsPathSeparator(wxChar c) - { return c == wxFILE_SEP_PATH_DOS || c == wxFILE_SEP_PATH_UNIX; } - -// does the string ends with path separator? -WXDLLEXPORT bool wxEndsWithPathSeparator(const wxChar *pszFileName); - -// split the full path into path (including drive for DOS), name and extension -// (understands both '/' and '\\') -WXDLLEXPORT void wxSplitPath(const wxChar *pszFileName, - wxString *pstrPath, - wxString *pstrName, - wxString *pstrExt); - -// find a file in a list of directories, returns false if not found -WXDLLEXPORT bool wxFindFileInPath(wxString *pStr, const wxChar *pszPath, const wxChar *pszFile); - -// Get the OS directory if appropriate (such as the Windows directory). -// On non-Windows platform, probably just return the empty string. -WXDLLEXPORT wxString wxGetOSDirectory(); - -// ---------------------------------------------------------------------------- -// classes -// ---------------------------------------------------------------------------- - -// Path searching -class WXDLLEXPORT wxPathList : public wxStringList -{ -public: - // Adds all paths in environment variable - void AddEnvList(const wxString& envVariable); - - void Add(const wxString& path); - // Avoid compiler warning - wxNode *Add(const wxChar *s) { return wxStringList::Add(s); } - // Find the first full path for which the file exists - wxString FindValidPath(const wxString& filename); - // Find the first full path for which the file exists; ensure it's an - // absolute path that gets returned. - wxString FindAbsoluteValidPath(const wxString& filename); - // Given full path and filename, add path to list - void EnsureFileAccessible(const wxString& path); - // Returns TRUE if the path is in the list - bool Member(const wxString& path); - -private: - DECLARE_DYNAMIC_CLASS(wxPathList) -}; - -#endif - // _WX_FILEFN_H_ diff --git a/include/wx/font.h b/include/wx/font.h deleted file mode 100644 index 165c9c9f06..0000000000 --- a/include/wx/font.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_FONT_H_BASE_ -#define _WX_FONT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/font.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/font.h" -#elif defined(__WXGTK__) -#include "wx/gtk/font.h" -#elif defined(__WXQT__) -#include "wx/qt/font.h" -#elif defined(__WXMAC__) -#include "wx/mac/font.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/font.h" -#endif - -#endif - // _WX_FONT_H_BASE_ diff --git a/include/wx/fontdlg.h b/include/wx/fontdlg.h deleted file mode 100644 index f851cd8ee9..0000000000 --- a/include/wx/fontdlg.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef _WX_FONTDLG_H_BASE_ -#define _WX_FONTDLG_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/fontdlg.h" -#elif defined(__WXMOTIF__) -#include "wx/generic/fontdlgg.h" -# define wxFontDialog wxGenericFontDialog -# define sm_classwxFontDialog sm_classwxGenericFontDialog -#elif defined(__WXGTK__) -#include "wx/generic/fontdlgg.h" -# define wxFontDialog wxGenericFontDialog -# define sm_classwxFontDialog sm_classwxGenericFontDialog -#elif defined(__WXQT__) -#include "wx/generic/fontdlgg.h" -# define wxFontDialog wxGenericFontDialog -# define sm_classwxFontDialog sm_classwxGenericFontDialog -#elif defined(__WXMAC__) -#include "wx/generic/fontdlgg.h" -# define wxFontDialog wxGenericFontDialog -# define sm_classwxFontDialog sm_classwxGenericFontDialog -#elif defined(__WXSTUBS__) -#include "wx/generic/fontdlgg.h" -# define wxFontDialog wxGenericFontDialog -# define sm_classwxFontDialog sm_classwxGenericFontDialog -#endif - -#endif - // _WX_FONTDLG_H_BASE_ diff --git a/include/wx/frame.h b/include/wx/frame.h deleted file mode 100644 index 329561fd9a..0000000000 --- a/include/wx/frame.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_FRAME_H_BASE_ -#define _WX_FRAME_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/frame.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/frame.h" -#elif defined(__WXGTK__) -#include "wx/gtk/frame.h" -#elif defined(__WXQT__) -#include "wx/qt/frame.h" -#elif defined(__WXMAC__) -#include "wx/mac/frame.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/frame.h" -#endif - -#endif - // _WX_FRAME_H_BASE_ diff --git a/include/wx/gauge.h b/include/wx/gauge.h deleted file mode 100644 index abf8a1f7e0..0000000000 --- a/include/wx/gauge.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_GAUGE_H_BASE_ -#define _WX_GAUGE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/gauge.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/gauge.h" -#elif defined(__WXGTK__) -#include "wx/gtk/gauge.h" -#elif defined(__WXQT__) -#include "wx/qt/gauge.h" -#elif defined(__WXMAC__) -#include "wx/mac/gauge.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/gauge.h" -#endif - -#endif - // _WX_GAUGE_H_BASE_ diff --git a/include/wx/gdicmn.h b/include/wx/gdicmn.h deleted file mode 100644 index 32569e0a49..0000000000 --- a/include/wx/gdicmn.h +++ /dev/null @@ -1,453 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdicmn.h -// Purpose: Common GDI classes, types and declarations -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDICMNH__ -#define _WX_GDICMNH__ - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "gdicmn.h" -#endif - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/hash.h" -#include "wx/string.h" -#include "wx/setup.h" -#include "wx/colour.h" - -// --------------------------------------------------------------------------- -// forward declarations -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxBrush; -class WXDLLEXPORT wxColour; -class WXDLLEXPORT wxCursor; -class WXDLLEXPORT wxFont; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxPalette; -class WXDLLEXPORT wxPen; -class WXDLLEXPORT wxRegion; -class WXDLLEXPORT wxString; - -// --------------------------------------------------------------------------- -// constants -// --------------------------------------------------------------------------- - -// Bitmap flags -enum -{ - wxBITMAP_TYPE_BMP = 1, - wxBITMAP_TYPE_BMP_RESOURCE, - wxBITMAP_TYPE_RESOURCE = wxBITMAP_TYPE_BMP_RESOURCE, - wxBITMAP_TYPE_ICO, - wxBITMAP_TYPE_ICO_RESOURCE, - wxBITMAP_TYPE_CUR, - wxBITMAP_TYPE_CUR_RESOURCE, - wxBITMAP_TYPE_XBM, - wxBITMAP_TYPE_XBM_DATA, - wxBITMAP_TYPE_XPM, - wxBITMAP_TYPE_XPM_DATA, - wxBITMAP_TYPE_TIF, - wxBITMAP_TYPE_TIF_RESOURCE, - wxBITMAP_TYPE_GIF, - wxBITMAP_TYPE_GIF_RESOURCE, - wxBITMAP_TYPE_PNG, - wxBITMAP_TYPE_PNG_RESOURCE, - wxBITMAP_TYPE_JPEG, - wxBITMAP_TYPE_JPEG_RESOURCE, - wxBITMAP_TYPE_ANY = 50 -}; - -// Standard cursors -enum wxStockCursor -{ - wxCURSOR_NONE, // should be 0 - wxCURSOR_ARROW, - wxCURSOR_BULLSEYE, - wxCURSOR_CHAR, - wxCURSOR_CROSS, - wxCURSOR_HAND, - wxCURSOR_IBEAM, - wxCURSOR_LEFT_BUTTON, - wxCURSOR_MAGNIFIER, - wxCURSOR_MIDDLE_BUTTON, - wxCURSOR_NO_ENTRY, - wxCURSOR_PAINT_BRUSH, - wxCURSOR_PENCIL, - wxCURSOR_POINT_LEFT, - wxCURSOR_POINT_RIGHT, - wxCURSOR_QUESTION_ARROW, - wxCURSOR_RIGHT_BUTTON, - wxCURSOR_SIZENESW, - wxCURSOR_SIZENS, - wxCURSOR_SIZENWSE, - wxCURSOR_SIZEWE, - wxCURSOR_SIZING, - wxCURSOR_SPRAYCAN, - wxCURSOR_WAIT, - wxCURSOR_WATCH, - wxCURSOR_BLANK, -#ifdef __X__ - // Not yet implemented for Windows - wxCURSOR_CROSS_REVERSE, - wxCURSOR_DOUBLE_ARROW, - wxCURSOR_BASED_ARROW_UP, - wxCURSOR_BASED_ARROW_DOWN, -#endif // X11 - - wxCURSOR_MAX -}; - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -/* Useful macro for creating icons portably, for example: - - wxIcon *icon = new wxICON(mondrian); - - expands into: - - wxIcon *icon = new wxIcon("mondrian"); // On wxMSW - wxIcon *icon = new wxIcon(mondrian_xpm); // On wxGTK - */ - -#ifdef __WXMSW__ - // Load from a resource - #define wxICON(X) wxIcon("" #X "") -#elif defined(__WXGTK__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( (const char**) X##_xpm ) -#elif defined(__WXMOTIF__) - // Initialize from an included XPM - #define wxICON(X) wxIcon( X##_xpm ) -#else - // This will usually mean something on any platform - #define wxICON(X) wxIcon("" #X "") -#endif // platform - -// =========================================================================== -// classes -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxSize -// --------------------------------------------------------------------------- -class WXDLLEXPORT wxSize -{ -public: - // members are public for compatibility - long x; - long y; - - // constructors - wxSize() { x = y = 0; } - wxSize(long xx, long yy) { Set(xx, yy); } - - // no copy ctor or assignment operator - the defaults are ok - - bool operator==(const wxSize& sz) const { return x == sz.x && y == sz.y; } - - // FIXME are these really useful? If they're, we should have += &c as well - wxSize operator+(const wxSize& sz) { return wxSize(x + sz.x, y + sz.y); } - wxSize operator-(const wxSize& sz) { return wxSize(x - sz.x, y - sz.y); } - - void Set(long xx, long yy) { x = xx; y = yy; } - - long GetX() const { return x; } - long GetY() const { return y; } -}; - -// --------------------------------------------------------------------------- -// Point classes: with real or integer coordinates -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxRealPoint -{ -public: - double x; - double y; - - wxRealPoint() { x = y = 0.0; }; - wxRealPoint(double xx, double yy) { x = xx; y = yy; }; - - wxRealPoint operator+(const wxRealPoint& pt) { return wxRealPoint(x + pt.x, y + pt.y); } - wxRealPoint operator-(const wxRealPoint& pt) { return wxRealPoint(x - pt.x, y - pt.y); } - - bool operator==(const wxRealPoint& pt) const { return x == pt.x && y == pt.y; } -}; - -class WXDLLEXPORT wxPoint -{ -public: -#if defined(__WXMSW__) && !defined(__WIN32__) - int x; - int y; -#else - long x; - long y; -#endif - - wxPoint() { x = y = 0; }; - wxPoint(long xx, long yy) { x = xx; y = yy; }; - - // no copy ctor or assignment operator - the defaults are ok - - // comparison - bool operator==(const wxPoint& p) const { return x == p.x && y == p.y; } - bool operator!=(const wxPoint& p) const { return !(*this == p); } - - // arithmetic operations (component wise) - wxPoint operator+(const wxPoint& p) { return wxPoint(x + p.x, y + p.y); } - wxPoint operator-(const wxPoint& p) { return wxPoint(x - p.x, y - p.y); } - - wxPoint& operator+=(const wxPoint& p) { x += p.x; y += p.y; return *this; } - wxPoint& operator-=(const wxPoint& p) { x -= p.x; y -= p.y; return *this; } -}; - -#if WXWIN_COMPATIBILITY - #define wxIntPoint wxPoint - #define wxRectangle wxRect -#endif // WXWIN_COMPATIBILITY - -// --------------------------------------------------------------------------- -// wxRect -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxRect -{ -public: - wxRect() { x = y = width = height = 0; } - wxRect(long xx, long yy, long ww, long hh) - { x = xx; y = yy; width = ww; height = hh; } - wxRect(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRect(const wxPoint& pos, const wxSize& size); - - // default copy ctor and assignment operators ok - - long GetX() const { return x; } - void SetX(long xx) { x = xx; } - - long GetY() const { return y; } - void SetY(long yy) { y = yy; } - - long GetWidth() const { return width; } - void SetWidth(long w) { width = w; } - - long GetHeight() const { return height; } - void SetHeight(long h) { height = h; } - - wxPoint GetPosition() const { return wxPoint(x, y); } - wxSize GetSize() const { return wxSize(width, height); } - - long GetLeft() const { return x; } - long GetTop() const { return y; } - long GetBottom() const { return y + height; } - long GetRight() const { return x + width; } - - - bool operator==(const wxRect& rect) const; - bool operator!=(const wxRect& rect) const { return !(*this == rect); } - - bool Inside(int cx, int cy) const; - wxRect operator + (const wxRect& rect) const; - const wxRect& operator += (const wxRect& rect); - -public: - long x, y, width, height; -}; - -// --------------------------------------------------------------------------- -// Management of pens, brushes and fonts -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxPenList : public wxList -{ - DECLARE_DYNAMIC_CLASS(wxPenList) - -public: - wxPenList() { } - ~wxPenList(); - - void AddPen(wxPen *pen); - void RemovePen(wxPen *pen); - wxPen *FindOrCreatePen(const wxColour& colour, int width, int style); -}; - -class WXDLLEXPORT wxBrushList : public wxList -{ - DECLARE_DYNAMIC_CLASS(wxBrushList) - -public: - wxBrushList() { } - ~wxBrushList(); - - void AddBrush(wxBrush *brush); - void RemoveBrush(wxBrush *brush); - wxBrush *FindOrCreateBrush(const wxColour& colour, int style); -}; - -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -class WXDLLEXPORT wxFontList : public wxList -{ - DECLARE_DYNAMIC_CLASS(wxFontList) - -public: - wxFontList() { } - ~wxFontList(); - - void AddFont(wxFont *font); - void RemoveFont(wxFont *font); - wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight, - bool underline = FALSE, - const wxString& face = wxEmptyString); -}; - -class WXDLLEXPORT wxColourDatabase : public wxList -{ - DECLARE_CLASS(wxColourDatabase) - -public: - wxColourDatabase(int type); - ~wxColourDatabase() ; - - // Not const because it may add a name to the database - wxColour *FindColour(const wxString& colour) ; - wxString FindName(const wxColour& colour) const; - void Initialize(); -}; - -class WXDLLEXPORT wxBitmapList : public wxList -{ - DECLARE_DYNAMIC_CLASS(wxBitmapList) - -public: - wxBitmapList(); - ~wxBitmapList(); - - void AddBitmap(wxBitmap *bitmap); - void RemoveBitmap(wxBitmap *bitmap); -}; - -class WXDLLEXPORT wxResourceCache: public wxList -{ -public: - wxResourceCache() { } - wxResourceCache(const unsigned int keyType) : wxList(keyType) { } - ~wxResourceCache(); - -private: - DECLARE_DYNAMIC_CLASS(wxResourceCache) -}; - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -// Lists of GDI objects -WXDLLEXPORT_DATA(extern wxPenList*) wxThePenList; -WXDLLEXPORT_DATA(extern wxBrushList*) wxTheBrushList; -WXDLLEXPORT_DATA(extern wxFontList*) wxTheFontList; -WXDLLEXPORT_DATA(extern wxBitmapList*) wxTheBitmapList; - -// Stock objects -WXDLLEXPORT_DATA(extern wxFont*) wxNORMAL_FONT; -WXDLLEXPORT_DATA(extern wxFont*) wxSMALL_FONT; -WXDLLEXPORT_DATA(extern wxFont*) wxITALIC_FONT; -WXDLLEXPORT_DATA(extern wxFont*) wxSWISS_FONT; - -WXDLLEXPORT_DATA(extern wxPen*) wxRED_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxCYAN_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxGREEN_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxBLACK_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxWHITE_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxTRANSPARENT_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxBLACK_DASHED_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxGREY_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxMEDIUM_GREY_PEN; -WXDLLEXPORT_DATA(extern wxPen*) wxLIGHT_GREY_PEN; - -WXDLLEXPORT_DATA(extern wxBrush*) wxBLUE_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxGREEN_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxWHITE_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxBLACK_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxGREY_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxMEDIUM_GREY_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxLIGHT_GREY_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxTRANSPARENT_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxCYAN_BRUSH; -WXDLLEXPORT_DATA(extern wxBrush*) wxRED_BRUSH; - -WXDLLEXPORT_DATA(extern wxColour*) wxBLACK; -WXDLLEXPORT_DATA(extern wxColour*) wxWHITE; -WXDLLEXPORT_DATA(extern wxColour*) wxRED; -WXDLLEXPORT_DATA(extern wxColour*) wxBLUE; -WXDLLEXPORT_DATA(extern wxColour*) wxGREEN; -WXDLLEXPORT_DATA(extern wxColour*) wxCYAN; -WXDLLEXPORT_DATA(extern wxColour*) wxLIGHT_GREY; - -// 'Null' objects -WXDLLEXPORT_DATA(extern wxBitmap) wxNullBitmap; -WXDLLEXPORT_DATA(extern wxIcon) wxNullIcon; -WXDLLEXPORT_DATA(extern wxCursor) wxNullCursor; -WXDLLEXPORT_DATA(extern wxPen) wxNullPen; -WXDLLEXPORT_DATA(extern wxBrush) wxNullBrush; -WXDLLEXPORT_DATA(extern wxPalette) wxNullPalette; -WXDLLEXPORT_DATA(extern wxFont) wxNullFont; -WXDLLEXPORT_DATA(extern wxColour) wxNullColour; - -// Stock cursors types -WXDLLEXPORT_DATA(extern wxCursor*) wxSTANDARD_CURSOR; -WXDLLEXPORT_DATA(extern wxCursor*) wxHOURGLASS_CURSOR; -WXDLLEXPORT_DATA(extern wxCursor*) wxCROSS_CURSOR; - -WXDLLEXPORT_DATA(extern wxColourDatabase*) wxTheColourDatabase; - -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; - -WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize; -WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition; - -// The list of objects which should be deleted -WXDLLEXPORT_DATA(extern wxList) wxPendingDelete; - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -// resource management -extern void WXDLLEXPORT wxInitializeStockObjects(); -extern void WXDLLEXPORT wxInitializeStockLists(); -extern void WXDLLEXPORT wxDeleteStockObjects(); -extern void WXDLLEXPORT wxDeleteStockLists(); - -// is the display colour (or monochrome)? -extern bool WXDLLEXPORT wxColourDisplay(); - -// Returns depth of screen -extern int WXDLLEXPORT wxDisplayDepth(); -#define wxGetDisplayDepth wxDisplayDepth - -// get the diaplay size -extern void WXDLLEXPORT wxDisplaySize(int *width, int *height); -extern wxSize WXDLLEXPORT wxGetDisplaySize(); - -// set global cursor -extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor); - -#endif - // _WX_GDICMNH__ diff --git a/include/wx/gdiobj.h b/include/wx/gdiobj.h deleted file mode 100644 index 39762ec749..0000000000 --- a/include/wx/gdiobj.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_GDIOBJ_H_BASE_ -#define _WX_GDIOBJ_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/gdiobj.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/gdiobj.h" -#elif defined(__WXGTK__) -#include "wx/gtk/gdiobj.h" -#elif defined(__WXQT__) -#include "wx/qt/gdiobj.h" -#elif defined(__WXMAC__) -#include "wx/mac/gdiobj.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/gdiobj.h" -#endif - -#endif - // _WX_GDIOBJ_H_BASE_ diff --git a/include/wx/generic/.cvsignore b/include/wx/generic/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/include/wx/generic/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/include/wx/generic/Makefile.am b/include/wx/generic/Makefile.am deleted file mode 100644 index 7aef75c0cd..0000000000 --- a/include/wx/generic/Makefile.am +++ /dev/null @@ -1,38 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/generic subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -wx_generic_includedir = ${includedir}/wx/generic -wx_generic_include_HEADERS = \ - caret.h \ - choicdgg.h \ - colrdlgg.h \ - dcpsg.h \ - dirdlgg.h \ - error.xpm \ - fontdlgg.h \ - gridg.h \ - helpext.h \ - helphtml.h \ - helpxlp.h \ - imaglist.h \ - info.xpm \ - laywin.h \ - listctrl.h \ - msgdlgg.h \ - notebook.h \ - panelg.h \ - printps.h \ - prntdlgg.h \ - progdlgg.h \ - question.xpm \ - sashwin.h \ - scrolwin.h \ - splitter.h \ - statusbr.h \ - tabg.h \ - textdlgg.h \ - treectrl.h \ - warning.xpm diff --git a/include/wx/generic/caret.h b/include/wx/generic/caret.h deleted file mode 100644 index 93df894ea6..0000000000 --- a/include/wx/generic/caret.h +++ /dev/null @@ -1,68 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: generic/caret.h -// Purpose: generic wxCaret class -// Author: Vadim Zeitlin (original code by Robert Roebling) -// Modified by: -// Created: 25.05.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#if 0 //def __GNUG__ - #pragma implementation "caret.h" -#endif - -#ifndef _WX_CARET_H_ -#define _WX_CARET_H_ - -#include "wx/timer.h" - -class wxCaret : public wxCaretBase -{ -public: - // ctors - // ----- - // default - use Create() - wxCaret() : m_timer(this) { InitGeneric(); } - // creates a block caret associated with the given window - wxCaret(wxWindowBase *window, int width, int height) - : wxCaretBase(window, width, height), m_timer(this) { InitGeneric(); } - wxCaret(wxWindowBase *window, const wxSize& size) - : wxCaretBase(window, size), m_timer(this) { InitGeneric(); } - - virtual ~wxCaret(); - - // implementation - // -------------- - - // blink the caret once - void Blink(); - -protected: - virtual void DoShow(); - virtual void DoHide(); - virtual void DoMove(); - - // draw the caret on the given DC - void DoDraw(wxDC *dc); - -private: - // GTK specific initialization - void InitGeneric(); - - class CaretTimer : public wxTimer - { - public: - CaretTimer(wxCaret *caret) { m_caret = caret; } - - virtual void Notify() { m_caret->Blink(); } - - private: - wxCaret *m_caret; - } m_timer; - - bool m_blinkedOut; // TRUE => caret hidden right now -}; - -#endif // _WX_CARET_H_ diff --git a/include/wx/generic/choicdgg.h b/include/wx/generic/choicdgg.h deleted file mode 100644 index 7295334639..0000000000 --- a/include/wx/generic/choicdgg.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choicdgg.h -// Purpose: Generic choice dialogs -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __CHOICEDLGH_G__ -#define __CHOICEDLGH_G__ - -#ifdef __GNUG__ -#pragma interface "choicdgg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -#define wxCHOICE_HEIGHT 150 -#define wxCHOICE_WIDTH 200 - -#define wxID_LISTBOX 3000 - -class WXDLLEXPORT wxSingleChoiceDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxSingleChoiceDialog) -public: - wxSingleChoiceDialog(wxWindow *parent, const wxString& message, const wxString& caption, - int n, const wxString *choices, wxChar **clientData = (wxChar **) NULL, long style = wxOK|wxCANCEL|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - wxSingleChoiceDialog(wxWindow *parent, const wxString& message, const wxString& caption, - const wxStringList& choices, wxChar **clientData = (wxChar **) NULL, long style = wxOK|wxCANCEL|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - bool Create(wxWindow *parent, const wxString& message, const wxString& caption, - int n, const wxString *choices, wxChar **clientData = (wxChar **) NULL, long style = wxOK|wxCANCEL|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - bool Create(wxWindow *parent, const wxString& message, const wxString& caption, - const wxStringList& choices, wxChar **clientData = (wxChar **) NULL, long style = wxOK|wxCANCEL|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - void SetSelection(int sel) ; - inline int GetSelection(void) const { return m_selection; } - inline wxString GetStringSelection(void) const { return m_stringSelection; } - inline wxChar *GetSelectionClientData(void) const { return m_clientData; } - - void OnOK(wxCommandEvent& event); - void OnListBoxDClick(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() - -protected: - long m_dialogStyle; - int m_selection; - wxString m_stringSelection; - wxChar* m_clientData; -}; - -WXDLLEXPORT wxString wxGetSingleChoice(const wxString& message, const wxString& caption, - int n, const wxString *choices, wxWindow *parent = (wxWindow *) NULL, - int x = -1, int y = -1, bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); - -WXDLLEXPORT wxString wxGetSingleChoice(const wxString& message, const wxString& caption, - int n, wxChar *choices[], wxWindow *parent = (wxWindow *) NULL, - int x = -1, int y = -1, bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); - -// Same as above but gets position in list of strings, instead of string, -// or -1 if no selection -WXDLLEXPORT int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption, - int n, const wxString *choices, wxWindow *parent = (wxWindow *) NULL, - int x = -1, int y = -1, bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); - -WXDLLEXPORT int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption, - int n, wxChar *choices[], wxWindow *parent = (wxWindow *) NULL, - int x = -1, int y = -1, bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); - -// Return client data instead -WXDLLEXPORT wxChar* wxGetSingleChoiceData(const wxString& message, const wxString& caption, - int n, const wxString *choices, wxChar **client_data, - wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1, - bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); - -WXDLLEXPORT wxChar* wxGetSingleChoiceData(const wxString& message, const wxString& caption, - int n, wxChar *choices[], wxChar **client_data, - wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1, - bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); - -/* -WXDLLEXPORT int wxGetMultipleChoice(const wxString& message, const wxString& caption, - int n, const wxString *choices, - int nsel, int * selection, - wxWindow *parent = NULL, int x = -1 , int y = -1, bool centre = TRUE, - int width = wxCHOICE_WIDTH, int height = wxCHOICE_HEIGHT); -*/ - -#endif diff --git a/include/wx/generic/colrdlgg.h b/include/wx/generic/colrdlgg.h deleted file mode 100644 index 35dc8fd95e..0000000000 --- a/include/wx/generic/colrdlgg.h +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colrdlgg.h -// Purpose: wxGenericColourDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __COLORDLGH_G__ -#define __COLORDLGH_G__ - -#ifdef __GNUG__ -#pragma interface "colrdlgg.h" -#endif - -#include "wx/setup.h" -#include "wx/gdicmn.h" -#include "wx/dialog.h" -#include "wx/cmndata.h" - -#define wxID_ADD_CUSTOM 3000 -#define wxID_RED_SLIDER 3001 -#define wxID_GREEN_SLIDER 3002 -#define wxID_BLUE_SLIDER 3003 - -class WXDLLEXPORT wxSlider; -class WXDLLEXPORT wxGenericColourDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxGenericColourDialog) - protected: - wxColourData colourData; - wxWindow *dialogParent; - - // Area reserved for grids of colours - wxRect standardColoursRect; - wxRect customColoursRect; - wxRect singleCustomColourRect; - - // Size of each colour rectangle - wxPoint smallRectangleSize; - - // For single customizable colour - wxPoint customRectangleSize; - - // Grid spacing (between rectangles) - int gridSpacing; - - // Section spacing (between left and right halves of dialog box) - int sectionSpacing; - - // 48 'standard' colours - wxColour standardColours[48]; - - // 16 'custom' colours - wxColour customColours[16]; - - // One single custom colour (use sliders) - wxColour singleCustomColour; - - // Which colour is selected? An index into one of the two areas. - int colourSelection; - int whichKind; // 1 for standard colours, 2 for custom colours, - - wxSlider *redSlider; - wxSlider *greenSlider; - wxSlider *blueSlider; - - int buttonY; - - int okButtonX; - int customButtonX; - -// static bool colourDialogCancelled; - public: - wxGenericColourDialog(void); - wxGenericColourDialog(wxWindow *parent, wxColourData *data = (wxColourData *) NULL); - ~wxGenericColourDialog(void); - - bool Create(wxWindow *parent, wxColourData *data = (wxColourData *) NULL); - - int ShowModal(void); - wxColourData &GetColourData(void) { return colourData; } - - // Internal functions - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - - virtual void CalculateMeasurements(void); - virtual void CreateWidgets(void); - virtual void InitializeColours(void); - - virtual void PaintBasicColours(wxDC& dc); - virtual void PaintCustomColours(wxDC& dc); - virtual void PaintCustomColour(wxDC& dc); - virtual void PaintHighlight(wxDC& dc, bool draw); - - virtual void OnBasicColourClick(int which); - virtual void OnCustomColourClick(int which); - - void OnAddCustom(wxCommandEvent& event); - - void OnRedSlider(wxCommandEvent& event); - void OnGreenSlider(wxCommandEvent& event); - void OnBlueSlider(wxCommandEvent& event); - - void OnCloseWindow(wxCloseEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#ifdef __WXGTK__ -typedef wxGenericColourDialog wxColourDialog; -#endif - -#endif diff --git a/include/wx/generic/dcpsg.h b/include/wx/generic/dcpsg.h deleted file mode 100644 index 5be42ac46b..0000000000 --- a/include/wx/generic/dcpsg.h +++ /dev/null @@ -1,280 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcps.h -// Purpose: wxPostScriptDC class -// Author: Julian Smart and others -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart, Robert Roebling and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPSG_H_ -#define _WX_DCPSG_H_ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dc.h" - -#if wxUSE_POSTSCRIPT - -#include "wx/dialog.h" -#include "wx/module.h" -#include "wx/cmndata.h" - -#include - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPostScriptDC; - -//----------------------------------------------------------------------------- -// wxPostScriptDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPostScriptDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxPostScriptDC) - -public: - - wxPostScriptDC(); - - // Deprecated constructor - wxPostScriptDC(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL); - - // Recommended constructor - wxPostScriptDC(const wxPrintData& printData); - - ~wxPostScriptDC(); - - // Deprecated - bool Create(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL); - - virtual bool Ok() const; - - // Deprecated: use wxGenericPrintDialog instead - virtual bool PrinterDialog(wxWindow *parent = (wxWindow *) NULL); - - virtual void BeginDrawing() {} - virtual void EndDrawing() {} - - void DoFloodFill(long x1, long y1, const wxColour &col, int style=wxFLOOD_SURFACE ); - bool DoGetPixel(long x1, long y1, wxColour *col) const; - - void DoDrawLine(long x1, long y1, long x2, long y2); - void DoCrossHair(long x, long y) ; - void DoDrawArc(long x1,long y1,long x2,long y2,long xc,long yc); - void DoDrawEllipticArc(long x,long y,long w,long h,double sa,double ea); - void DoDrawPoint(long x, long y); - void DoDrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0); - void DoDrawPolygon(int n, wxPoint points[], long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE); - void DoDrawRectangle(long x, long y, long width, long height); - void DoDrawRoundedRectangle(long x, long y, long width, long height, double radius = 20); - void DoDrawEllipse(long x, long y, long width, long height); - - void DoDrawSpline(wxList *points); - - bool DoBlit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE); - inline bool CanDrawBitmap(void) const { return TRUE; } - - void DoDrawIcon( const wxIcon& icon, long x, long y ); - void DoDrawBitmap( const wxBitmap& bitmap, long x, long y, bool useMask=FALSE ); - - void DoDrawText(const wxString& text, long x, long y ); - - void Clear(); - void SetFont( const wxFont& font ); - void SetPen( const wxPen& pen ); - void SetBrush( const wxBrush& brush ); - void SetLogicalFunction( int function ); - void SetBackground( const wxBrush& brush ); - - void SetClippingRegion(long x, long y, long width, long height); - void SetClippingRegion( const wxRegion ®ion ); - void DestroyClippingRegion(); - - void DoSetClippingRegionAsRegion( const wxRegion &WXUNUSED(clip) ) {} - - bool StartDoc(const wxString& message); - void EndDoc(); - void StartPage(); - void EndPage(); - - long GetCharHeight() const; - long GetCharWidth() const; - inline bool CanGetTextExtent(void) const { return FALSE; } - void GetTextExtent(const wxString& string, long *x, long *y, - long *descent = (long *) NULL, - long *externalLeading = (long *) NULL, - wxFont *theFont = (wxFont *) NULL ) const; - - void DoGetSize(int* width, int* height) const; - void DoGetSizeMM(int *width, int *height) const; - - // Resolution in pixels per logical inch - wxSize GetPPI(void) const; - - void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - void SetDeviceOrigin( long x, long y ); - - inline void SetBackgroundMode(int WXUNUSED(mode)) {} - inline void SetPalette(const wxPalette& WXUNUSED(palette)) {} - - ofstream *GetStream(void) const { return m_pstream; } - - wxPrintData& GetPrintData() { return m_printData; } - void SetPrintData(const wxPrintData& data) { m_printData = data; } - - virtual int GetDepth() const { return 24; } - -protected: - - ofstream * m_pstream; // PostScript output stream - wxString m_title; - unsigned char m_currentRed; - unsigned char m_currentGreen; - unsigned char m_currentBlue; - int m_pageNumber; - bool m_clipping; - double m_underlinePosition; - double m_underlineThickness; - wxPrintData m_printData; -}; - -// Deprecated: should use wxGenericPrintDialog instead. -#if 1 -#define wxID_PRINTER_COMMAND 1 -#define wxID_PRINTER_OPTIONS 2 -#define wxID_PRINTER_ORIENTATION 3 -#define wxID_PRINTER_MODES 4 -#define wxID_PRINTER_X_SCALE 5 -#define wxID_PRINTER_Y_SCALE 6 -#define wxID_PRINTER_X_TRANS 7 -#define wxID_PRINTER_Y_TRANS 8 - -class WXDLLEXPORT wxPostScriptPrintDialog: public wxDialog -{ -DECLARE_CLASS(wxPostScriptPrintDialog) -public: - wxPostScriptPrintDialog (wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE); - - virtual int ShowModal(void) ; -}; -#endif - -// Print Orientation (Should also add Left, Right) -enum -{ - PS_PORTRAIT = 1, - PS_LANDSCAPE = 2 -};// ps_orientation = PS_PORTRAIT; - -// Print Actions -enum -{ - PS_NONE, - PS_PREVIEW, - PS_FILE, - PS_PRINTER -};// ps_action = PS_PREVIEW; - -// PostScript printer settings -WXDLLEXPORT void wxSetPrinterCommand(const wxString& cmd); -WXDLLEXPORT void wxSetPrintPreviewCommand(const wxString& cmd); -WXDLLEXPORT void wxSetPrinterOptions(const wxString& flags); -WXDLLEXPORT void wxSetPrinterOrientation(int orientation); -WXDLLEXPORT void wxSetPrinterScaling(double x, double y); -WXDLLEXPORT void wxSetPrinterTranslation(long x, long y); -WXDLLEXPORT void wxSetPrinterMode(int mode); -WXDLLEXPORT void wxSetPrinterFile(const wxString& f); -WXDLLEXPORT void wxSetAFMPath(const wxString& f); - -// Get current values -WXDLLEXPORT wxString wxGetPrinterCommand(); -WXDLLEXPORT wxString wxGetPrintPreviewCommand(); -WXDLLEXPORT wxString wxGetPrinterOptions(); -WXDLLEXPORT int wxGetPrinterOrientation(); -WXDLLEXPORT void wxGetPrinterScaling(double* x, double* y); -WXDLLEXPORT void wxGetPrinterTranslation(long *x, long *y); -WXDLLEXPORT int wxGetPrinterMode(); -WXDLLEXPORT wxString wxGetPrinterFile(); -WXDLLEXPORT wxString wxGetAFMPath(); - -/* - * PostScript print setup information. - * This is now obsolete, but retained for a while for compatibility - */ - -class WXDLLEXPORT wxPrintSetupData: public wxObject -{ -public: - wxPrintSetupData(); - ~wxPrintSetupData(); - - void SetPrinterCommand(const wxString& cmd) { m_printerCommand = cmd; }; - void SetPaperName(const wxString& paper) { m_paperName = paper; }; - void SetPrintPreviewCommand(const wxString& cmd) { m_previewCommand = cmd; }; - void SetPrinterOptions(const wxString& flags) { m_printerFlags = flags; }; - void SetPrinterFile(const wxString& f) { m_printerFile = f; }; - void SetPrinterOrientation(int orient) { m_printerOrient = orient; }; - void SetPrinterScaling(double x, double y) { m_printerScaleX = x; m_printerScaleY = y; }; - void SetPrinterTranslation(long x, long y) { m_printerTranslateX = x; m_printerTranslateY = y; }; - // 1 = Preview, 2 = print to file, 3 = send to printer - void SetPrinterMode(int mode) { m_printerMode = mode; }; - void SetAFMPath(const wxString& f) { m_afmPath = f; }; - void SetColour(bool col) { m_printColour = col; }; - - // Get current values - wxString GetPrinterCommand() const { return m_printerCommand; } ; - wxString GetPrintPreviewCommand() const { return m_previewCommand; } ; - wxString GetPrinterOptions() const { return m_printerFlags; }; - wxString GetPrinterFile() const { return m_printerFile; }; - wxString GetPaperName() const { return m_paperName; } - int GetPrinterOrientation() const { return m_printerOrient; }; - void GetPrinterScaling(double* x, double* y) const { *x = m_printerScaleX; *y = m_printerScaleY; }; - void GetPrinterTranslation(long *x, long *y) const { *x = m_printerTranslateX; *y = m_printerTranslateY; }; - int GetPrinterMode() const { return m_printerMode; }; - wxString GetAFMPath() const { return m_afmPath; }; - bool GetColour() const { return m_printColour; }; - - void operator=(wxPrintSetupData& data); - - // Initialize from a wxPrintData object (wxPrintData should now be used instead of wxPrintSetupData). - // There is also an operator for initializing a wxPrintData from a wxPrintSetupData. - void operator=(const wxPrintData& data); - -public: - wxString m_printerCommand; - wxString m_previewCommand; - wxString m_printerFlags; - wxString m_printerFile; - int m_printerOrient; - double m_printerScaleX; - double m_printerScaleY; - long m_printerTranslateX; - long m_printerTranslateY; - // 1 = Preview, 2 = print to file, 3 = send to printer - int m_printerMode; - wxString m_afmPath; - // A name in the paper database (see paper.h) - wxString m_paperName; - bool m_printColour; - - DECLARE_DYNAMIC_CLASS(wxPrintSetupData) -}; - -WXDLLEXPORT_DATA(extern wxPrintSetupData*) wxThePrintSetupData; -WXDLLEXPORT extern void wxInitializePrintSetupData(bool init = TRUE); - -#endif - // wxUSE_POSTSCRIPT - -#endif - // _WX_DCPSG_H_ diff --git a/include/wx/generic/dirdlgg.h b/include/wx/generic/dirdlgg.h deleted file mode 100644 index 052d8ff6f8..0000000000 --- a/include/wx/generic/dirdlgg.h +++ /dev/null @@ -1,121 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlgg.h -// Purpose: wxDirDialog -// Author: Harm van der Heijden and Robert Roebling -// Modified by: -// Created: 12/12/98 -// Copyright: (c) Harm van der Heijden and Robert Roebling -// Licence: wxWindows licence -// -// Notes: wxDirDialog class written by Harm van der Heijden, -// uses wxDirCtrl class written by Robert Roebling for the -// wxFile application, modified by Harm van der Heijden -// -// Description: This generic dirdialog implementation defines three classes: -// 1) wxDirItemData(public wxTreeItemData) stores pathname and -// displayed name for each item in the directory tree -// 2) wxDirCtrl(public wxTreeCtrl) is a tree widget that -// displays a directory tree. It is possible to define sections -// for fast access to parts of the file system (such as the -// user's homedir, /usr/local, /tmp ...etc), similar to -// Win95 Explorer's shortcuts to 'My Computer', 'Desktop', etc. -// 3) wxDirDialog is the dialog box itself. The user can choose -// a directory by navigating the tree, or by typing a dir -// in an inputbox. The inputbox displays paths selected in the -// tree. It is possible to create new directories. The user -// will automatically be prompted for dir creation if he -// enters a non-existing dir. -// -// TODO/BUGS: - standard sections only have reasonable defaults for Unix -// (but others are easily added in wxDirCtrl::SetupSections) -// - No direct support for "show hidden" toggle. Partly due -// to laziness on my part and partly because -// wxFindFirst/NextFile never seems to find hidden dirs -// anyway. -// - No automatic update of the tree (branch) after directory -// creation. -// - I call wxBeginBusyCursor while expanding items (creating -// a new branch might take a few seconds, especially if a -// CDROM drive or something is involved) but that doesn't -// seem to do anything. Need to look into that. -// - Am still looking for an efficient way to delete wxTreeCtrl -// branches. DeleteChildren has disappeared and -// CollapseAndReset( parent ) deletes the parent as well. -// - The dialog window layout is done using wxConstraints. It -// works, but it's not as simple as I'd like it to be (see -// comments in wxDirDialog::doSize) -// -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLGG_H_ -#define _WX_DIRDLGG_H_ - -#ifdef __GNUG__ -#pragma interface "dirdlgg.h" -#endif - -#include "wx/dialog.h" -//#include "wx/checkbox.h" -#include "wx/treectrl.h" - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr; - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDirItemData; -class wxDirCtrl; -class wxDirDialog; - -//----------------------------------------------------------------------------- -// wxDirDialog -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxDirDialog) - public: - wxDirDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = wxEmptyString, - long style = 0, const wxPoint& pos = wxDefaultPosition); - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetStyle(long style) { m_dialogStyle = style; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline long GetStyle() const { return m_dialogStyle; } - - int ShowModal(); - - void OnTreeSelected( wxTreeEvent &event ); - void OnTreeKeyDown( wxTreeEvent &event ); - void OnSize(wxSizeEvent& event); - void OnOK(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - void OnNew(wxCommandEvent& event); - // void OnCheck(wxCommandEvent& event); - DECLARE_EVENT_TABLE() - - protected: - // implementation - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_path; - wxDirCtrl *m_dir; - wxTextCtrl *m_input; - // wxCheckBox *m_check; - wxButton *m_ok, *m_cancel, *m_new; - void doSize(); -}; - -#endif - // _WX_DIRDLGG_H_ - diff --git a/include/wx/generic/error.xpm b/include/wx/generic/error.xpm deleted file mode 100644 index 267494bad1..0000000000 --- a/include/wx/generic/error.xpm +++ /dev/null @@ -1,591 +0,0 @@ -/* XPM */ -static char *error[] = { -/* columns rows colors chars-per-pixel */ -"48 48 537 2", -" c Gray0", -". c #000001010101", -"X c #010101010101", -"o c #010102020202", -"O c #020202020202", -"+ c #020203030303", -"@ c #030302020202", -"# c Gray1", -"$ c #020204040404", -"% c #030304040404", -"& c #070703030202", -"* c #040404040404", -"= c #040405050505", -"- c Gray2", -"; c #050507070707", -": c #060606060606", -"> c #060607070707", -", c #070707070707", -"< c #070709090909", -"1 c #0c0c04040303", -"2 c #0d0d04040404", -"3 c #0d0d05050404", -"4 c Gray3", -"5 c #080809090909", -"6 c #090909090909", -"7 c #0b0b0b0b0b0b", -"8 c #0a0a0d0d0d0d", -"9 c #0b0b0d0d0d0d", -"0 c #0c0c0c0c0c0c", -"q c Gray5", -"w c #0d0d0f0f1010", -"e c #101006060505", -"r c #141404040303", -"t c #141407070606", -"y c #171707070606", -"u c #1d1d09090707", -"i c #181809090808", -"p c #1d1d09090808", -"a c #1e1e0a0a0808", -"s c #1e1e0b0b0909", -"d c #101010101010", -"f c #101011111212", -"g c Gray7", -"h c #131313131313", -"j c Gray9", -"k c #181818181818", -"l c #191919191919", -"z c Gray11", -"x c #1d1d1d1d1d1d", -"c c Gray12", -"v c #24240b0b0a0a", -"b c #27270d0d0b0b", -"n c #2b2b0e0e0c0c", -"m c #2d2d0e0e0b0b", -"M c #30300e0e0b0b", -"N c #33330d0d0909", -"B c #3a3a0f0f0b0b", -"V c #333310100e0e", -"C c #373710100d0d", -"Z c #373711110e0e", -"A c #363612120f0f", -"S c #3d3d13130f0f", -"D c #363612121010", -"F c Gray14", -"G c #252525252525", -"H c #2a2a2a2a2a2a", -"J c Gray18", -"K c #323232323232", -"L c Gray20", -"P c Gray22", -"I c #3f3f3f3f3f3f", -"U c #414113130e0e", -"Y c #414113130f0f", -"T c #404013131010", -"R c #404014141111", -"E c #404015151212", -"W c #4d4d17171212", -"Q c #4e4e18181313", -"! c #4e4e18181414", -"~ c #4e4e19191515", -"^ c #4e4e1a1a1616", -"/ c #57571b1b1515", -"( c #595917171010", -") c #5b5b1a1a1313", -"_ c #58581b1b1616", -"` c #58581c1c1717", -"' c #5c5c1e1e1a1a", -"] c #5c5c1f1f1b1b", -"[ c #6e6e19190f0f", -"{ c #67671c1c1616", -"} c #6b6b1b1b1212", -"| c #68681e1e1717", -" . c #6e6e1e1e1616", -".. c #79791e1e1515", -"X. c #666622221d1d", -"o. c #6b6b24241e1e", -"O. c #6c6c22221d1d", -"+. c #6d6d24241f1f", -"@. c #7d7d23231c1c", -"#. c #727226262020", -"$. c #757526262020", -"%. c #777728282222", -"&. c #7f7f28282121", -"*. c #484848484848", -"=. c Gray33", -"-. c #555555555555", -";. c #656565656565", -":. c Gray", -">. c #94941f1f1212", -",. c #96961f1f1111", -"<. c #98981f1f1111", -"1. c #818126261e1e", -"2. c #858523231919", -"3. c #858525251c1c", -"4. c #878728281e1e", -"5. c #898921211717", -"6. c #8a8a22221616", -"7. c #8b8b25251c1c", -"8. c #8c8c27271d1d", -"9. c #888828281f1f", -"0. c #8a8a29291f1f", -"q. c #959520201111", -"w. c #969620201111", -"e. c #949424241717", -"r. c #969624241717", -"t. c #909024241919", -"y. c #929225251919", -"u. c #929225251b1b", -"i. c #959526261b1b", -"p. c #969624241818", -"a. c #90902a2a1f1f", -"s. c #969629291f1f", -"d. c #9b9b20201313", -"f. c #999924241616", -"g. c #9c9c21211212", -"h. c #9f9f21211212", -"j. c #9d9d22221414", -"k. c #9d9d23231414", -"l. c #9c9c23231616", -"z. c #989827271b1b", -"x. c #999927271b1b", -"c. c #9a9a26261b1b", -"v. c #989827271c1c", -"b. c #9c9c25251818", -"n. c #9c9c27271b1b", -"m. c #9d9d27271b1b", -"M. c #999928281c1c", -"N. c #999929291e1e", -"B. c #9b9b28281c1c", -"V. c #9b9b28281d1d", -"C. c #9a9a29291e1e", -"Z. c #9a9a2a2a1e1e", -"A. c #9a9a2b2b1f1f", -"S. c #9b9b2a2a1f1f", -"D. c #9c9c28281c1c", -"F. c #9e9e29291f1f", -"G. c #9f9f29291e1e", -"H. c #9e9e2a2a1e1e", -"J. c #83832b2b2424", -"K. c #83832c2c2525", -"L. c #84842a2a2424", -"P. c #8b8b29292121", -"I. c #89892b2b2424", -"U. c #8b8b2c2c2626", -"Y. c #8f8f2a2a2222", -"T. c #8f8f2b2b2323", -"R. c #8d8d2e2e2828", -"E. c #8f8f2f2f2828", -"W. c #8f8f38383232", -"Q. c #919129292020", -"!. c #90902b2b2222", -"~. c #91912d2d2525", -"^. c #90902d2d2626", -"/. c #969629292020", -"(. c #95952c2c2323", -"). c #97972c2c2222", -"_. c #94942d2d2525", -"`. c #94942e2e2626", -"'. c #97972d2d2525", -"]. c #96962e2e2424", -"[. c #97972e2e2626", -"{. c #97972f2f2727", -"}. c #99992b2b2020", -"|. c #99992c2c2121", -" X c #98982d2d2323", -".X c #99992c2c2222", -"XX c #9b9b2c2c2121", -"oX c #9a9a2c2c2323", -"OX c #98982d2d2424", -"+X c #98982e2e2525", -"@X c #98982e2e2626", -"#X c #9d9d2b2b2121", -"$X c #9e9e2a2a2020", -"%X c #9c9c2c2c2121", -"&X c #9c9c2d2d2323", -"*X c #9d9d2e2e2323", -"=X c #9f9f2d2d2323", -"-X c #9e9e2e2e2020", -";X c #9f9f2e2e2323", -":X c #9c9c2d2d2424", -">X c #9d9d2f2f2525", -",X c #9c9c2f2f2626", -"o c #a8a822221212", -",o c #a8a823231212", -"O c #a9a935352929", -",O c #a9a936362a2a", -"+ c #dbdbacac2e2e", -",+ c #dddda8a82a2a", -"<+ c #ddddacac2a2a", -"1+ c #dedeadad2929", -"2+ c #dfdfaeae2828", -"3+ c #dcdcadad2d2d", -"4+ c #d0d0a1a13131", -"5+ c #d1d1a2a23030", -"6+ c #d1d1a3a33333", -"7+ c #d2d2a3a33232", -"8+ c #d3d3a3a33232", -"9+ c #d3d3a4a43333", -"0+ c #d1d1a4a43636", -"q+ c #d1d1a4a43737", -"w+ c #d2d2a4a43535", -"e+ c #d2d2a4a43636", -"r+ c #d5d5a5a53333", -"t+ c #d5d5a6a63434", -"y+ c #d4d4a6a63737", -"u+ c #d6d6a7a73535", -"i+ c #d7d7a7a73434", -"p+ c #d2d2a5a53939", -"a+ c #d3d3a6a63838", -"s+ c #d3d3a6a63a3a", -"d+ c #d0d0a5a53d3d", -"f+ c #d1d1a5a53c3c", -"g+ c #d0d0a5a53f3f", -"h+ c #d8d8a7a73333", -"j+ c #d9d9a8a83232", -"k+ c #d9d9acac3232", -"l+ c #dfdfadad3636", -"z+ c #d9d9abab3e3e", -"x+ c #dadaaeae3939", -"c+ c #dbdbafaf3a3a", -"v+ c #dadaacac3f3f", -"b+ c #dbdbadad3e3e", -"n+ c #dfdfb1b13535", -"m+ c #dfdfb0b03636", -"M+ c #dcdcb0b03b3b", -"N+ c #ddddb0b03a3a", -"B+ c #dedeb1b13939", -"V+ c #e3e3afaf2222", -"C+ c #e0e0adad2525", -"Z+ c #e1e1aeae2424", -"A+ c #e4e4afaf2121", -"S+ c #e2e2b2b23232", -"D+ c #e0e0b2b23434", -"F+ c #cfcfa5a54040", -"G+ c #d3d3aaaa4747", -"H+ c #d5d5abab4343", -"J+ c #d6d6abab4242", -"K+ c #d4d4aaaa4444", -"L+ c #d2d2aaaa4848", -"P+ c #d8d8acac4040", -"I+ c #dfdfb4b44545", -"U+ c #fbfbfbfbfbfb", -"Y+ c Gray99", -"T+ c #fdfdfdfdfdfd", -"R+ c #fefefefefefe", -"E+ c Gray100", -"W+ c None", -/* pixels */ -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+'O(OWOTOGOAOBONOCOZOVO W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+]O_OQOmOjOpOBokohohofozoAosOfOgOSo W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+)OIOxOiOdo7o1o>oAX,.q.BXPXPX9o0ocoDono W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+`O!OnOuOao5o:o>o,oSXh.MXKXPXPXUXTX(X)Xqouoto5. W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+^OPOzOMo5o-o:o>oFXSXw.NXKXPXIXUX/X)X)XWXXoooro#o.. W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+~OYOhOso=o-o;o>oo>oo,oO,O%o&o[XFoN.{ w W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+/OLOVo5o:o>o,oo.-X:OIX#O$O)X)X.o!Xe.p.`X$o%o*o4O6OEoJoKo/.) $ W+W+W+W+W+W+", -"W+W+W+W+W+W+W+DORONo;o>oCX<.JXKXk.PXLX#O$O*O%O.oXooo_Xy.t.m.*o oRo7O8OQoLoXX@.i f W+W+W+W+W+W+", -"W+W+W+W+W+W+W+KOcO8oFX+x+c+b+k+h+i+i+t+e+y+a+s+p+(o2X(.W % 9 W+W+W+W+W+", -"W+W+W+W+W+W+ FOloJXV+V+Z+S+C+2+1+1+<+3+3+>+;+-+5+z+v+i+u+u+y+a+a+s+f+f+[o3X]./ + < F W+W+W+W+W+", -"W+W+W+W+W+W+ SOfoKXV+Z+C+C+D+n+1+<+3+3+>+:+:+j+8+4+r+P+P+y+a+a+.+X+X+o+{owX_._ o ; z W+W+W+W+W+", -"W+W+W+W+W+W+ MOgoPXZ+C+2+2+1+l+m+3+>+>+:+j+k+h+i+9+$+w+J+H+H+s+f+f+d+g+]oeX~.! . + l W+W+W+W+W+", -"W+W+W+W+W+W+ vOxoPXC+2+2+1+<+<+B+N+>+:+j+k+#+i+i+u+0+@+&+s+K+G+d+d+=+F+}ojXI.S . + l W+W+W+W+W+", -"W+W+W+W+W+W+ lOvoUX|O1+1+<+<+3+>+N+M+j+k+h+++++u+y+y+q+%+*+f+L+L+=+F+ +|ouX&.v . + l E+W+W+W+W+", -"W+W+W+W+W+W+ boZo/XEX)X.oXooon.c.$o z E+W+W+W+W+", -"W+W+W+W+W+W+ [ dOwo~X.oXoooOo$oz.i.G.oORoEoWoQoa.a._o X(o^oX[o'.}o}oqXkXcXvXmXW.^ X + - j =.W+W+W+W+W+", -"W+W+W+W+W+W+W+ - 6.po+o'X%o&o oRoRoA.}.Qo@OPo*X~o[o[o]o[.[.|oxXzXvXhXE.X.e O + 6 J Y+W+W+W+W+W+", -"W+W+W+W+W+W+W+ X r n.$o]X{X oRoEoWoQo|.|.)oeO(o[o{o]o}o|o{.xXvXvXdX8X#.b X + o d I Y+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+ - B D.[X[XGoEoWoQo!o!o_o(oeOnXY.+X}o|o|o9X0XvXhX8X%.D X O # 6 H :.W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+ * N 7.S.GoKoKo!o)o/o(o[oOX0O5X@X|o OcXvXgXpXR.+.V X O + + j =.E+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+L # u .s.#XLoPo;X(o[o[o]o[.bXtOxXcXfXpX6XK.] a X O + - j *.T+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+ - U 3.Q.).:X2X2XwXeXrXjXqOsXiX4XJ.o.E & O O + O 0 K T+E+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+ - 1 C | 1.P.T._.`.`.^.U.L.$.' A 3 X O O # - q J :.Y+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+ # - # O y m T Q _ ` ~ R n t @ O O O + O # g P :.E+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+ - # # # O O O O O O O O O O O + # + 7 x ;.T+Y+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+ G k : # - # # X X + . # # # O , g j -.:.R+E+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+ h 6 : 6 6 # # # 6 6 0 g F *.:.T+E+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+ L F c z z z c F K =.T+E+U+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+E+E+E+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+", -"W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+W+" -}; diff --git a/include/wx/generic/fontdlgg.h b/include/wx/generic/fontdlgg.h deleted file mode 100644 index a32deeaffd..0000000000 --- a/include/wx/generic/fontdlgg.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlgg.h -// Purpose: wxGenericFontDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __FONTDLGH_G__ -#define __FONTDLGH_G__ - -#ifdef __GNUG__ -#pragma interface "fontdlgg.h" -#endif - -#include "wx/setup.h" -#include "wx/gdicmn.h" -#include "wx/font.h" -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * FONT DIALOG - */ - -class WXDLLEXPORT wxChoice; -class WXDLLEXPORT wxText; -class WXDLLEXPORT wxCheckBox; - -#define wxID_FONT_UNDERLINE 3000 -#define wxID_FONT_STYLE 3001 -#define wxID_FONT_WEIGHT 3002 -#define wxID_FONT_FAMILY 3003 -#define wxID_FONT_COLOUR 3004 -#define wxID_FONT_SIZE 3005 - -class WXDLLEXPORT wxGenericFontDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxGenericFontDialog) - protected: - wxFontData fontData; - wxFont dialogFont; - wxWindow *dialogParent; - - // Area reserved for font display - wxRect fontRect; - - wxChoice *familyChoice; - wxChoice *styleChoice; - wxChoice *weightChoice; - wxChoice *colourChoice; - wxCheckBox *underLineCheckBox; - wxChoice *pointSizeChoice; - bool m_useEvents; - -// static bool fontDialogCancelled; - public: - - wxGenericFontDialog(void); - wxGenericFontDialog(wxWindow *parent, wxFontData *data = (wxFontData *) NULL); - ~wxGenericFontDialog(void); - - bool Create(wxWindow *parent, wxFontData *data = (wxFontData *) NULL); - - int ShowModal(void); - - inline wxFontData& GetFontData(void) { return fontData; } - - // Internal functions - void OnPaint(wxPaintEvent& event); - - void OnCloseWindow(wxCloseEvent& event); - - virtual void CreateWidgets(void); - virtual void InitializeFont(void); - - virtual void PaintFontBackground(wxDC& dc); - virtual void PaintFont(wxDC& dc); - - void OnChangeFont(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -wxChar WXDLLEXPORT *wxFontFamilyIntToString(int family); -wxChar WXDLLEXPORT *wxFontWeightIntToString(int weight); -wxChar WXDLLEXPORT *wxFontStyleIntToString(int style); -int WXDLLEXPORT wxFontFamilyStringToInt(wxChar *family); -int WXDLLEXPORT wxFontWeightStringToInt(wxChar *weight); -int WXDLLEXPORT wxFontStyleStringToInt(wxChar *style); - -#endif diff --git a/include/wx/generic/gridg.h b/include/wx/generic/gridg.h deleted file mode 100644 index b7bd11f4be..0000000000 --- a/include/wx/generic/gridg.h +++ /dev/null @@ -1,386 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gridg.h -// Purpose: wxGenericGrid -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GRIDH_G__ -#define __GRIDH_G__ - -#ifdef __GNUG__ -#pragma interface "gridg.h" -#endif - -#include "wx/defs.h" -#include "wx/panel.h" -#include "wx/string.h" -#include "wx/scrolbar.h" -#include "wx/event.h" - -#define wxGRID_DEFAULT_EDIT_WIDTH 300 -#define wxGRID_DEFAULT_EDIT_HEIGHT 27 -#define wxGRID_DEFAULT_EDIT_X 2 -#define wxGRID_DEFAULT_EDIT_Y 1 -#define wxGRID_DEFAULT_SHEET_TOP 31 -#define wxGRID_DEFAULT_SHEET_LEFT 0 -#define wxGRID_DEFAULT_CELL_HEIGHT 20 -#define wxGRID_DEFAULT_CELL_WIDTH 80 -#define wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH 40 -#define wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT 20 - -#ifndef wxLEFT -#define wxLEFT 0x0400 -#endif - -#ifndef wxRIGHT -#define wxRIGHT 0x0800 -#endif - -#define WXGENERIC_GRID_VERSION 0.5 - -class WXDLLEXPORT wxGridEvent; -class WXDLLEXPORT wxGridCell; -class WXDLLEXPORT wxGenericGrid: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxGenericGrid) - public: - wxGenericGrid(void); - - inline wxGenericGrid(wxWindow *parent, int x, int y, int width, int height, long style = 0, char *name = "grid") - { - Create(parent, -1, wxPoint(x, y), wxSize(width, height), style, name); - } - inline wxGenericGrid(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style = 0, const wxString& name = "grid") - { - Create(parent, id, pos, size, style, name); - } - ~wxGenericGrid(void); - - void OnPaint(wxPaintEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnSize(wxSizeEvent& event); - - bool Create(wxWindow *parent, wxWindowID, const wxPoint& pos, const wxSize& size, long style = 0, const wxString& name = "grid"); - - bool CreateGrid(int nRows, int nCols, wxString **cellValues = (wxString **) NULL, short *widths = (short *) NULL, - short defaultWidth = wxGRID_DEFAULT_CELL_WIDTH, short defaultHeight = wxGRID_DEFAULT_CELL_HEIGHT); - void PaintGrid(wxDC& dc); - void ClearGrid(void); - virtual wxGridCell *GetCell(int row, int col) const; - inline wxGridCell ***GetCells(void) const { return m_gridCells; } - bool InsertCols(int pos = 0, int n = 1, bool updateLabels = TRUE); - bool InsertRows(int pos = 0, int n = 1, bool updateLabels = TRUE); - bool AppendCols(int n = 1, bool updateLabels = TRUE); - bool AppendRows(int n = 1, bool updateLabels = TRUE); - bool DeleteCols(int pos = 0, int n = 1, bool updateLabels = TRUE); - bool DeleteRows(int pos = 0, int n = 1, bool updateLabels = TRUE); - - // Cell accessors - void SetCellValue(const wxString& val, int row, int col); - wxString& GetCellValue(int row, int col) const; - void SetCellAlignment(int flag, int row, int col); - void SetCellAlignment(int flag); - int GetCellAlignment(int row, int col) const; - int GetCellAlignment(void) const; - void SetCellTextColour(const wxColour& val, int row, int col); - void SetCellTextColour(const wxColour& col); - wxColour& GetCellTextColour(int row, int col) const; - inline wxColour& GetCellTextColour(void) const { return (wxColour&) m_cellTextColour; } - void SetCellBackgroundColour(const wxColour& col); - void SetCellBackgroundColour(const wxColour& colour, int row, int col); - inline wxColour& GetCellBackgroundColour(void) const { return (wxColour&) m_cellBackgroundColour; } - wxColour& GetCellBackgroundColour(int row, int col) const; - inline wxFont& GetCellTextFont(void) const { return (wxFont&) m_cellTextFont; } - wxFont& GetCellTextFont(int row, int col) const; - void SetCellTextFont(const wxFont& fnt); - void SetCellTextFont(const wxFont& fnt, int row, int col); - wxBitmap *GetCellBitmap(int row, int col) const; - void SetCellBitmap(wxBitmap *bitmap, int row, int col); - - // Size accessors - void SetColumnWidth(int col, int width); - int GetColumnWidth(int col) const; - void SetRowHeight(int row, int height); - int GetRowHeight(int row) const; - - // Label accessors - void SetLabelSize(int orientation, int sz); - int GetLabelSize(int orientation) const; - void SetLabelAlignment(int orientation, int alignment); - int GetLabelAlignment(int orientation) const; - wxGridCell *GetLabelCell(int orientation, int pos) const; - void SetLabelValue(int orientation, const wxString& val, int pos); - wxString& GetLabelValue(int orientation, int pos) const; - void SetLabelTextColour(const wxColour& colour); - void SetLabelBackgroundColour(const wxColour& colour); - inline wxColour& GetLabelTextColour(void) const { return (wxColour&) m_labelTextColour; } - inline wxColour& GetLabelBackgroundColour(void) { return (wxColour&) m_labelBackgroundColour; } - inline wxFont& GetLabelTextFont(void) { return (wxFont&) m_labelTextFont; } - inline void SetLabelTextFont(const wxFont& fnt) { m_labelTextFont = fnt; } - - // Miscellaneous accessors - inline int GetCursorRow(void) const { return m_wCursorRow; } - inline int GetCursorColumn(void) const { return m_wCursorColumn; } - void SetGridCursor(int row, int col); - inline int GetRows(void) const { return m_totalRows; } - inline int GetCols(void) const { return m_totalCols; } - inline int GetScrollPosX(void) const { return m_scrollPosX; } - inline int GetScrollPosY(void) const { return m_scrollPosY; } - inline void SetScrollPosX(int pos) { m_scrollPosX = pos; } - inline void SetScrollPosY(int pos) { m_scrollPosY = pos; } - inline wxTextCtrl *GetTextItem(void) const { return m_textItem; } - inline wxScrollBar *GetHorizScrollBar(void) const { return m_hScrollBar; } - inline wxScrollBar *GetVertScrollBar(void) const { return m_vScrollBar; } - inline bool GetEditable(void) const { return m_editable; } - void SetEditable(bool edit); - inline wxRect& GetCurrentRect(void) const { return (wxRect&) m_currentRect; } - inline bool CurrentCellVisible(void) const { return m_currentRectVisible; } - inline void SetDividerPen(const wxPen& pen) { m_divisionPen = pen; } - inline wxPen& GetDividerPen(void) const { return (wxPen&) m_divisionPen; } - - // High-level event handling - // Override e.g. to check value of current cell; but call - // base member for default processing. - virtual void OnSelectCellImplementation(wxDC *dc, int row, int col); - - virtual void OnSelectCell(int WXUNUSED(row), int WXUNUSED(col)) {}; - void _OnSelectCell(wxGridEvent& event); - - // Override to create your own class of grid cell - virtual wxGridCell *OnCreateCell(void); - void _OnCreateCell(wxGridEvent& event); - - // Override to change labels e.g. creation of grid, inserting/deleting a row/col. - // By default, auto-labels the grid. - virtual void OnChangeLabels(void); - void _OnChangeLabels(wxGridEvent& event); - - // Override to change the label of the edit field when selecting a cell - // By default, sets it to e.g. A12 - virtual void OnChangeSelectionLabel(void); - void _OnChangeSelectionLabel(wxGridEvent& event); - - // Override for event processing - virtual void OnCellChange(int WXUNUSED(row), int WXUNUSED(col)) {}; - virtual void OnCellLeftClick(int WXUNUSED(row), int WXUNUSED(col), int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(control), bool WXUNUSED(shift)) {}; - virtual void OnCellRightClick(int WXUNUSED(row), int WXUNUSED(col), int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(control), bool WXUNUSED(shift)) {}; - virtual void OnLabelLeftClick(int WXUNUSED(row), int WXUNUSED(col), int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(control), bool WXUNUSED(shift)) {}; - virtual void OnLabelRightClick(int WXUNUSED(row), int WXUNUSED(col), int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(control), bool WXUNUSED(shift)) {}; - - void _OnCellChange(wxGridEvent& event); - void _OnCellLeftClick(wxGridEvent& event); - void _OnCellRightClick(wxGridEvent& event); - void _OnLabelLeftClick(wxGridEvent& event); - void _OnLabelRightClick(wxGridEvent& event); - - // Activation: call from wxFrame::OnActivate - void OnActivate(bool active); - - // Miscellaneous - void AdjustScrollbars(void); - void UpdateDimensions(void); - - /* INTERNAL - */ - void SetCurrentRect (int Row, int Column, int canvasW = -1, int canvasH = -1); - void HighlightCell (wxDC *dc); - void DrawCellText(void); - void SetGridClippingRegion(wxDC *dc); - virtual bool CellHitTest(int x, int y, int *row, int *col); - virtual bool LabelSashHitTest(int x, int y, int *orientation, int *rowOrCol, int *startPos); - virtual bool LabelHitTest(int x, int y, int *row, int *col); - // Painting - virtual void DrawLabelAreas(wxDC *dc); - virtual void DrawEditableArea(wxDC *dc); - virtual void DrawGridLines(wxDC *dc); - virtual void DrawColumnLabels(wxDC *dc); - virtual void DrawColumnLabel(wxDC *dc, wxRect *rect, int col); - virtual void DrawRowLabels(wxDC *dc); - virtual void DrawRowLabel(wxDC *dc, wxRect *rect, int row); - virtual void DrawCells(wxDC *dc); - virtual void DrawCellValue(wxDC *dc, wxRect *rect, int row, int col); - virtual void DrawCellBackground(wxDC *dc, wxRect *rect, int row, int col); - virtual void DrawTextRect(wxDC *dc, const wxString& text, wxRect *rect, int flag); - virtual void DrawBitmapRect(wxDC *dc, wxBitmap *bitmap, wxRect *rect, int flag); - - // Refresh cell and optionally set the text field - void RefreshCell(int row, int col, bool setText = FALSE); - - // Don't refresh within the outer pair of these. - inline void BeginBatch(void) { m_batchCount ++; } - inline void EndBatch(void) { m_batchCount --; } - inline int GetBatchCount(void) { return m_batchCount; } - - void OnText(wxCommandEvent& ev); - void OnGridScroll(wxScrollEvent& ev); - - protected: - wxPanel* m_editingPanel; // Contains the text control - wxTextCtrl* m_textItem; - wxScrollBar* m_hScrollBar; - wxScrollBar* m_vScrollBar; - int m_wCursorRow; - int m_wCursorColumn; - wxRect m_currentRect; - bool m_currentRectVisible; - wxGridCell*** m_gridCells; - wxGridCell** m_rowLabelCells; - wxGridCell** m_colLabelCells; - bool m_editCreated; - bool m_editable; - - int m_totalRows; - int m_totalCols; - - // Row and column we're currently looking at - int m_scrollPosX; - int m_scrollPosY; - - // Dimensions - int m_leftOfSheet; - int m_topOfSheet; - int m_rightOfSheet; // Calculated from m_colWidths - int m_bottomOfSheet; // Calculated from m_rowHeights - int m_totalGridWidth; // Total 'virtual' size - int m_totalGridHeight; - int m_cellHeight; // For now, a default - int m_verticalLabelWidth; - int m_horizontalLabelHeight; - int m_verticalLabelAlignment; - int m_horizontalLabelAlignment; - int m_cellAlignment; - short* m_colWidths; // Dynamically allocated - short* m_rowHeights; // Dynamically allocated - int m_scrollWidth; // Vert. scroll width, horiz. scroll height - - // Colours - wxColour m_cellTextColour; - wxColour m_cellBackgroundColour; - wxFont m_cellTextFont; - wxColour m_labelTextColour; - wxColour m_labelBackgroundColour; - wxBrush m_labelBackgroundBrush; - wxFont m_labelTextFont; - wxPen m_divisionPen; - wxBitmap* m_doubleBufferingBitmap; - - // Position of Edit control - wxRect m_editControlPosition; - - // Drag status - int m_dragStatus; - int m_dragRowOrCol; - int m_dragStartPosition; - int m_dragLastPosition; - wxCursor m_horizontalSashCursor; - wxCursor m_verticalSashCursor; - - // To avoid multiple refreshes, use Begin/EndBatch - int m_batchCount; - -DECLARE_EVENT_TABLE() -}; - -#define wxGRID_TEXT_CTRL 2000 -#define wxGRID_HSCROLL 2001 -#define wxGRID_VSCROLL 2002 - -class WXDLLEXPORT wxGridCell: public wxObject -{ - public: - wxString textValue; - wxFont font; - wxColour textColour; - wxColour backgroundColour; - wxBrush backgroundBrush; - wxBitmap* cellBitmap; - int alignment; - - wxGridCell(wxGenericGrid *window = (wxGenericGrid *) NULL); - ~wxGridCell(void); - - virtual wxString& GetTextValue(void) const { return (wxString&) textValue; } - virtual void SetTextValue(const wxString& str) { textValue = str; } - inline wxFont& GetFont(void) const { return (wxFont&) font; } - inline void SetFont(const wxFont& f) { font = f; } - inline wxColour& GetTextColour(void) const { return (wxColour&) textColour; } - inline void SetTextColour(const wxColour& colour) { textColour = colour; } - inline wxColour& GetBackgroundColour(void) const { return (wxColour&) backgroundColour; } - void SetBackgroundColour(const wxColour& colour); - inline wxBrush& GetBackgroundBrush(void) const { return (wxBrush&) backgroundBrush; } - inline void SetBackgroundBrush(const wxBrush& brush) { backgroundBrush = brush; } - inline int GetAlignment(void) const { return alignment; } - inline void SetAlignment(int align) { alignment = align; } - inline wxBitmap *GetCellBitmap(void) const { return cellBitmap; } - inline void SetCellBitmap(wxBitmap *bitmap) { cellBitmap = bitmap; } -}; - -class WXDLLEXPORT wxGrid: public wxGenericGrid -{ - public: - wxGrid(void):wxGenericGrid() {} - wxGrid(wxWindow *parent, int x=-1, int y=-1, int width=-1, int height=-1, - long style=0, char *name = "gridWindow"): - wxGenericGrid(parent, x, y, width, height, style, name) - { - } -}; - -class WXDLLEXPORT wxGridEvent : public wxCommandEvent { - DECLARE_DYNAMIC_CLASS(wxGridEvent) -public: - wxGridEvent() - : wxCommandEvent(), m_row(-1), m_col(-1), m_x(-1), m_y(-1), - m_control(0), m_shift(0), m_cell(0) - {} - - wxGridEvent(int id, wxEventType type, wxObject* obj, - int row=-1, int col=-1, int x=-1, int y=-1, - bool control=FALSE, bool shift=FALSE) - : wxCommandEvent(type, id), m_row(row), m_col(col), m_x(x), m_y(y), - m_control(control), m_shift(shift), m_cell(0) - { - SetEventObject(obj); - } - - - int m_row; - int m_col; - int m_x; - int m_y; - bool m_control; - bool m_shift; - wxGridCell* m_cell; -}; - -const wxEventType wxEVT_GRID_SELECT_CELL = wxEVT_FIRST + 1575; -const wxEventType wxEVT_GRID_CREATE_CELL = wxEVT_FIRST + 1576; -const wxEventType wxEVT_GRID_CHANGE_LABELS = wxEVT_FIRST + 1577; -const wxEventType wxEVT_GRID_CHANGE_SEL_LABEL = wxEVT_FIRST + 1578; -const wxEventType wxEVT_GRID_CELL_CHANGE = wxEVT_FIRST + 1579; -const wxEventType wxEVT_GRID_CELL_LCLICK = wxEVT_FIRST + 1580; -const wxEventType wxEVT_GRID_CELL_RCLICK = wxEVT_FIRST + 1581; -const wxEventType wxEVT_GRID_LABEL_LCLICK = wxEVT_FIRST + 1582; -const wxEventType wxEVT_GRID_LABEL_RCLICK = wxEVT_FIRST + 1583; - - -typedef void (wxEvtHandler::*wxGridEventFunction)(wxGridEvent&); - -#define EVT_GRID_SELECT_CELL(fn) { wxEVT_GRID_SELECT_CELL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CREATE_CELL(fn) { wxEVT_GRID_CREATE_CELL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CHANGE_LABELS(fn) { wxEVT_GRID_CHANGE_LABELS, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CHANGE_SEL_LABEL(fn) { wxEVT_GRID_CHANGE_SEL_LABEL, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CELL_CHANGE(fn) { wxEVT_GRID_CELL_CHANGE, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CELL_LCLICK(fn) { wxEVT_GRID_CELL_LCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_CELL_RCLICK(fn) { wxEVT_GRID_CELL_RCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_LABEL_LCLICK(fn) { wxEVT_GRID_LABEL_LCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, -#define EVT_GRID_LABEL_RCLICK(fn) { wxEVT_GRID_LABEL_RCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxGridEventFunction) &fn, NULL }, - -#endif - diff --git a/include/wx/generic/helpext.h b/include/wx/generic/helpext.h deleted file mode 100644 index 19d5b1e652..0000000000 --- a/include/wx/generic/helpext.h +++ /dev/null @@ -1,82 +0,0 @@ -/*-*- c++ -*-******************************************************** - * helpext.h - an external help controller for wxWindows * - * * - * (C) 1998 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - *******************************************************************/ - -#ifndef __WX_HELPEXT_H_ -#define __WX_HELPEXT_H_ - -#if wxUSE_HELP - -#ifdef __GNUG__ -# pragma interface "wxexthlp.h" -#endif - -#include "wx/generic/helphtml.h" - -#ifndef WXEXTHELP_DEFAULTBROWSER -/// Default browser name. -# define WXEXTHELP_DEFAULTBROWSER "netscape" -/// Is default browse a variant of netscape? -# define WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE TRUE -#endif -/// Name of environment variable to set help browser. -#define WXEXTHELP_ENVVAR_BROWSER "WX_HELPBROWSER" -/// Is browser a netscape browser? -#define WXEXTHELP_ENVVAR_BROWSERISNETSCAPE "WX_HELPBROWSER_NS" - -/** - This class implements help via an external browser. - It requires the name of a directory containing the documentation - and a file mapping numerical Section numbers to relative URLS. - - The map file contains two or three fields per line: - numeric_id relative_URL [; comment/documentation] - - The numeric_id is the id used to look up the entry in - DisplaySection()/DisplayBlock(). The relative_URL is a filename of - an html file, relative to the help directory. The optional - comment/documentation field (after a ';') is used for keyword - searches, so some meaningful text here does not hurt. - If the documentation itself contains a ';', only the part before - that will be displayed in the listbox, but all of it used for search. - - Lines starting with ';' will be ignored. -*/ - -class WXDLLEXPORT wxExtHelpController : public wxHTMLHelpControllerBase -{ -DECLARE_CLASS(wxExtHelpController) - public: - wxExtHelpController(void); - - /** Tell it which browser to use. - The Netscape support will check whether Netscape is already - running (by looking at the .netscape/lock file in the user's - home directory) and tell it to load the page into the existing - window. - @param browsername The command to call a browser/html viewer. - @param isNetscape Set this to TRUE if the browser is some variant of Netscape. - */ - // Obsolete form - void SetBrowser(wxString const & browsername = WXEXTHELP_DEFAULTBROWSER, - bool isNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE); - - // Set viewer: new name for SetBrowser - virtual void SetViewer(const wxString& viewer = WXEXTHELP_DEFAULTBROWSER, long flags = wxHELP_NETSCAPE); - - private: - /// How to call the html viewer. - wxString m_BrowserName; - /// Is the viewer a variant of netscape? - bool m_BrowserIsNetscape; - /// Call the browser using a relative URL. - bool DisplayHelp(wxString const &); -}; - -#endif // wxUSE_HELP - -#endif // __WX_HELPEXT_H_ diff --git a/include/wx/generic/helphtml.h b/include/wx/generic/helphtml.h deleted file mode 100644 index dc16448f21..0000000000 --- a/include/wx/generic/helphtml.h +++ /dev/null @@ -1,130 +0,0 @@ -/*-*- c++ -*-******************************************************** - * helphtml.h - base class for html based help controllers * - * * - * (C) 1999 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - *******************************************************************/ - -#ifndef __WX_HELPHTML_H_ -#define __WX_HELPHTML_H_ - -#if wxUSE_HELP - -#ifdef __GNUG__ -# pragma interface "helphtml.h" -#endif - -#include "wx/helpbase.h" - -/// Name for map file. -#define WXEXTHELP_MAPFILE "wxhelp.map" -/// Path separator. -#define WXEXTHELP_SEPARATOR '/' -/// Maximum line length in map file. -#define WXEXTHELP_BUFLEN 512 -/// Character introducing comments/documentation field in map file. -#define WXEXTHELP_COMMENTCHAR ';' - -class WXDLLEXPORT wxExtHelpMapList; - - -/** - This class is the base class for all html help implementations. - It requires the name of a directory containing the documentation - and a file mapping numerical Section numbers to relative URLS. - - The map file contains two or three fields per line: - numeric_id relative_URL [; comment/documentation] - - The numeric_id is the id used to look up the entry in - DisplaySection()/DisplayBlock(). The relative_URL is a filename of - an html file, relative to the help directory. The optional - comment/documentation field (after a ';') is used for keyword - searches, so some meaningful text here does not hurt. - If the documentation itself contains a ';', only the part before - that will be displayed in the listbox, but all of it used for search. - - Lines starting with ';' will be ignored. -*/ - -class WXDLLEXPORT wxHTMLHelpControllerBase : public wxHelpControllerBase -{ -DECLARE_ABSTRACT_CLASS(wxHTMLHelpControllerBase) - public: - wxHTMLHelpControllerBase(void); - virtual ~wxHTMLHelpControllerBase(void); - - /** This must be called to tell the controller where to find the - documentation. - If a locale is set, look in file/localename, i.e. - If passed "/usr/local/myapp/help" and the current wxLocale is - set to be "de", then look in "/usr/local/myapp/help/de/" - first and fall back to "/usr/local/myapp/help" if that - doesn't exist. - - @param file - NOT a filename, but a directory name. - @return true on success - */ - virtual bool Initialize(const wxString& dir, int WXUNUSED(server)) - { return Initialize(dir); } - - /** This must be called to tell the controller where to find the - documentation. - If a locale is set, look in file/localename, i.e. - If passed "/usr/local/myapp/help" and the current wxLocale is - set to be "de", then look in "/usr/local/myapp/help/de/" - first and fall back to "/usr/local/myapp/help" if that - doesn't exist. - @param dir - directory name where to fine the help files - @return true on success - */ - virtual bool Initialize(const wxString& dir); - - /** If file is "", reloads file given in Initialize. - @file Name of help directory. - @return true on success - */ - virtual bool LoadFile(const wxString& file = ""); - - /** Display list of all help entries. - @return true on success - */ - virtual bool DisplayContents(void); - /** Display help for id sectionNo. - @return true on success - */ - virtual bool DisplaySection(int sectionNo); - /** Display help for id sectionNo -- identical with DisplaySection(). - @return true on success - */ - virtual bool DisplayBlock(long blockNo); - /** Search comment/documentation fields in map file and present a - list to chose from. - @key k string to search for, empty string will list all entries - @return true on success - */ - virtual bool KeywordSearch(const wxString& k); - - /// does nothing - virtual bool Quit(void); - /// does nothing - virtual void OnQuit(void); - - /// Call the browser using a relative URL. - virtual bool DisplayHelp(wxString const &) = 0; - - protected: - /// Filename of currently active map file. - wxString m_MapFile; - /// How many entries do we have in the map file? - int m_NumOfEntries; - /// A list containing all id,url,documentation triples. - wxList *m_MapList; - /// Deletes the list and all objects. - void DeleteList(void); -}; - -#endif // wxUSE_HELP - -#endif // __WX_HELPHTML_H_ diff --git a/include/wx/generic/helpxlp.h b/include/wx/generic/helpxlp.h deleted file mode 100644 index ec5aa7e174..0000000000 --- a/include/wx/generic/helpxlp.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxlp.h -// Purpose: Help system: wxHelp implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -/* sccsid[] = "@(#)wx_help.h 1.2 5/9/94" */ - -#ifndef __HELPXLPH__ -#define __HELPXLPH__ - -#ifdef __GNUG__ -#pragma interface "helpxlp.h" -#endif - -#include -#include "wx/wx.h" - -#if wxUSE_HELP - -#include "wx/helpbase.h" - -#ifdef __WXMSW__ -#include "wx/dde.h" -#else -// Or whatever it'll be called -#include "wx/ipctcp.h" -#endif - -class WXDLLEXPORT wxXLPHelpController; - -// Connection class for implementing the connection between the -// wxHelp process and the application -class WXDLLEXPORT wxXLPHelpConnection: public - -#ifdef __WXMSW__ - wxDDEConnection -#else - wxTCPConnection -#endif - -{ - friend class wxXLPHelpController; - - DECLARE_DYNAMIC_CLASS(wxXLPHelpConnection) - - public: - - wxXLPHelpConnection(wxXLPHelpController *instance); - bool OnDisconnect(void); - - private: - wxXLPHelpController *helpInstance; -}; - -// Connection class for implementing the client process -// controlling the wxHelp process -class WXDLLEXPORT wxXLPHelpClient: public - -#ifdef __WXMSW__ - wxDDEClient -#else - wxTCPClient -#endif - -{ -DECLARE_CLASS(wxXLPHelpClient) - - friend class WXDLLEXPORT wxXLPHelpController; -public: - wxXLPHelpClient(wxXLPHelpController* c) { m_controller = c; } - - wxConnectionBase *OnMakeConnection(void) - { return new wxXLPHelpConnection(m_controller); - } -protected: - wxXLPHelpController* m_controller; -}; - -// An application can have one or more instances of wxHelp, -// represented by an object of this class. -// Nothing happens on initial creation; the application -// must call a member function to display help. -// If the instance of wxHelp is already active, that instance -// will be used for subsequent help. - -class WXDLLEXPORT wxXLPHelpController: public wxHelpControllerBase -{ - friend class WXDLLEXPORT wxXLPHelpConnection; - DECLARE_CLASS(wxXLPHelpController) - - public: - wxXLPHelpController(void); - ~wxXLPHelpController(void); - - // Must call this to set the filename and server name - virtual bool Initialize(const wxString& file, int server = -1); - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = ""); - virtual bool DisplayContents(void); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplayBlock(long blockNo); - virtual bool KeywordSearch(const wxString& k); - - virtual bool Quit(void); - virtual void OnQuit(void); - - // Private - bool Run(void); - - protected: - wxString helpFile; - wxString helpHost; - int helpServer; - bool helpRunning; - wxXLPHelpConnection* helpConnection; - wxXLPHelpClient helpClient; -}; - -#endif // wxUSE_HELP -#endif - // __HELPXLPH__ diff --git a/include/wx/generic/imaglist.h b/include/wx/generic/imaglist.h deleted file mode 100644 index 60f0c5d8e3..0000000000 --- a/include/wx/generic/imaglist.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __IMAGELISTH_G__ -#define __IMAGELISTH_G__ - -#ifdef __GNUG__ -#pragma interface "imaglist.h" -#endif - -#include "wx/defs.h" -#include "wx/gdicmn.h" -#include "wx/bitmap.h" -#include "wx/dc.h" - -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. - */ - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -class wxImageList: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxImageList) - - public: - - wxImageList() { } - wxImageList( int width, int height, bool mask = TRUE, int initialCount = 1 ); - ~wxImageList(); - bool Create(); - int GetImageCount() const; - int Add( const wxBitmap &bitmap ); - const wxBitmap *GetBitmap(int index) const; - bool Replace( int index, const wxBitmap &bitmap ); - bool Remove( int index ); - bool RemoveAll(); - bool GetSize( int index, int &width, int &height ) const; - bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, bool solidBackground = FALSE ); - - private: - - wxList m_images; - int m_width; - int m_height; -}; - -#endif // __IMAGELISTH_G__ - diff --git a/include/wx/generic/info.xpm b/include/wx/generic/info.xpm deleted file mode 100644 index e0eb7a6d30..0000000000 --- a/include/wx/generic/info.xpm +++ /dev/null @@ -1,532 +0,0 @@ -/* XPM */ -static char *info[] = { -/* columns rows colors chars-per-pixel */ -"48 48 478 2", -" c Gray0", -". c #010101010101", -"X c #020202020202", -"o c #050505050404", -"O c Gray2", -"+ c #080808080707", -"@ c #090909090808", -"# c #0b0b0b0b0909", -"$ c #0b0b0b0b0b0b", -"% c #0c0c0c0c0b0b", -"& c #0d0d0d0d0a0a", -"* c #0c0c0c0c0c0c", -"= c #0f0f0e0e0c0c", -"- c #0f0f0f0f0e0e", -"; c Gray6", -": c #101010100e0e", -"> c #121212120f0f", -", c #101010101010", -"< c #121212121111", -"1 c #131313131111", -"2 c #131313131313", -"3 c #141414141111", -"4 c #141414141212", -"5 c #161616161313", -"6 c #161616161414", -"7 c #1a1a1a1a1717", -"8 c #1d1d1d1d1616", -"9 c #191919191919", -"0 c #1e1e1e1e1e1e", -"q c #20201d1d1313", -"w c #202020201c1c", -"e c #212121211d1d", -"r c #212120201e1e", -"t c #232323231f1f", -"y c #242421211919", -"u c Gray15", -"i c #272727272727", -"p c #2a2a2a2a2727", -"a c #282828282828", -"s c #2a2a2a2a2a2a", -"d c #2c2c2c2c2a2a", -"f c #2f2f2f2f2929", -"g c #2d2d2d2d2d2d", -"h c Gray18", -"j c #313131312b2b", -"k c #303030302f2f", -"l c #333333332f2f", -"z c #353535352e2e", -"x c #383835352626", -"c c #3b3b37372424", -"v c #333333333131", -"b c Gray20", -"n c #343434343434", -"m c #353535353535", -"M c #393937373232", -"N c #383838383737", -"B c #3d3d3d3d3535", -"V c Gray23", -"C c #3e3e3e3e3e3e", -"Z c #42423f3f3636", -"A c #434340403232", -"S c #424242423a3a", -"D c #434343433d3d", -"F c #444444443b3b", -"G c #474744443939", -"H c #4f4f49493838", -"J c #4d4d49493c3c", -"K c #434343434242", -"L c #434343434343", -"P c #474747474242", -"I c #464646464444", -"U c #464646464646", -"Y c Gray28", -"T c #4b4b4b4b4444", -"R c #4d4d4c4c4747", -"E c #4e4e4e4e4545", -"W c #494949494949", -"Q c #4b4b4b4b4b4b", -"! c #4e4e4e4e4e4e", -"~ c #4f4f4f4f4e4e", -"^ c #525252524848", -"/ c #525252524949", -"( c #555555554e4e", -") c #565656564f4f", -"_ c #5a5a59594c4c", -"` c #5f5f5c5c4f4f", -"' c Gray32", -"] c Gray33", -"[ c #585858585151", -"{ c #585858585858", -"} c #595959595858", -"| c #5c5c5c5c5b5b", -" . c #5f5f5e5e5959", -".. c #6d6d66664d4d", -"X. c #646461615959", -"o. c #71716d6d5b5b", -"O. c #797971715757", -"+. c #626262626262", -"@. c Gray39", -"#. c #646464646464", -"$. c #696969696464", -"%. c #6d6d6d6d6464", -"&. c #696969696868", -"*. c #6b6b6b6b6a6a", -"=. c #6d6d6d6d6d6d", -"-. c #6f6f6f6f6f6f", -";. c #73736f6f6161", -":. c #707070706b6b", -">. c #717171716f6f", -",. c #757575756c6c", -"<. c #797976766c6c", -"1. c #7f7f7a7a6464", -"2. c Gray45", -"3. c #757575757171", -"4. c #7b7b7b7b7a7a", -"5. c #7b7b7b7b7b7b", -"6. c #7f7f7f7f7b7b", -"7. c Gray49", -"8. c #818179795959", -"9. c #808079795f5f", -"0. c #8f8f82825555", -"q. c #959588885757", -"w. c #9b9b8c8c5a5a", -"e. c #929289896363", -"r. c #9d9d91916464", -"t. c #a9a999995959", -"y. c #abab9b9b5b5b", -"u. c #b3b3a0a05e5e", -"i. c #a9a9a0a07777", -"p. c #aeaea4a47575", -"a. c #b9b9a9a96464", -"s. c #babaa8a86464", -"d. c #b7b7aaaa7c7c", -"f. c #c1c1aeae6767", -"g. c #c4c4b2b26969", -"h. c #c4c4b3b36b6b", -"j. c #c6c6b3b36a6a", -"k. c #c9c9b7b76d6d", -"l. c #ccccb9b96e6e", -"z. c #c1c1b3b37272", -"x. c #c2c2b0b07171", -"c. c #c6c6b6b67777", -"v. c #cacab8b87171", -"b. c #cdcdbcbc7070", -"n. c #d1d1bcbc7070", -"m. c #d1d1bfbf7373", -"M. c #d1d1c0c07676", -"N. c #d9d9c5c57777", -"B. c #d9d9c6c67777", -"V. c #dadac7c77777", -"C. c #d9d9c6c67979", -"Z. c #dbdbc7c77c7c", -"A. c #dbdbc8c87878", -"S. c #dbdbc9c97c7c", -"D. c #dadac8c87e7e", -"F. c #dbdbc9c97e7e", -"G. c #e2e2cdcd7f7f", -"H. c #e4e4d0d07e7e", -"J. c #e4e4d0d07f7f", -"K. c #e4e4d1d17e7e", -"L. c #e6e6d2d27e7e", -"P. c #818181818181", -"I. c #838383838383", -"U. c #848484848484", -"Y. c Gray53", -"T. c #898987878282", -"R. c #8d8d8d8d8585", -"E. c #8d8d8d8d8787", -"W. c #929292928d8d", -"Q. c #969696968e8e", -"!. c #989895958585", -"~. c #9b9b95958484", -"^. c #929292929292", -"/. c #939393939393", -"(. c Gray58", -"). c Gray60", -"_. c #9d9d9d9d9999", -"`. c #9e9e9e9e9a9a", -"'. c #a2a29c9c8484", -"]. c #b2b2b2b29b9b", -"[. c #b8b8b0b09595", -"{. c #a0a0a0a0a0a0", -"}. c Gray63", -"|. c #a5a5a5a5a5a5", -" X c #a7a7a7a7a7a7", -".X c #a9a9a9a9a4a4", -"XX c #aeaeaeaea9a9", -"oX c #babab6b6a9a9", -"OX c #b3b3b3b3b0b0", -"+X c #b3b3b3b3b1b1", -"@X c #b4b4b4b4b2b2", -"#X c #b4b4b4b4b4b4", -"$X c #b6b6b6b6b6b6", -"%X c #b9b9b9b9b1b1", -"&X c Gray73", -"*X c #bbbbbbbbbbbb", -"=X c #bcbcbcbcb9b9", -"-X c Gray75", -";X c #c1c1b9b99999", -":X c #c2c2bebeafaf", -">X c #d7d7c4c48080", -",X c #d8d8c7c78e8e", -"o c #f3f3e4e4a1a1", -",o c #f3f3e6e6a3a3", -"O c #ecececececec", -",O c Gray93", -"+ c Gray100", -",+ c None", -/* pixels */ -",+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+>+(O>+>+>+>+>+>+>+>+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+QOO+>+>+>+>+>+>+>+++!OO+>+>+>+>+>+>+>+>+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+++/O$+>+>+>+>+>+>+>+(O(O/O>+>+>+>+>+>+>+>+>+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+$+)OO+>+>+>+>+>+>+%+$+++O+>+>+>+>+>+>+>+>+>+>+>+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+O+++++-+>+>+>+>+;+-+;+-+@+>+>+>+>+>+>+)O>+>+>+>+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+>+@+;+;+-+>+>+>+>+;+:+:+;+%+>+>+>+>+%+/O~O>+>+>+>+>+,+", -",+,+,+,+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+>+>+-+;+:+:+:+>+>+:+:+:+:+:+:+>+;+-+++++)O$+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+,+>+>+>+/OQO++>+>+>+>+>+>+;+:+:+:+:+:+:+:+:+:+:+:+:+:+;+-+-+;+++%+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+,+>+>+>+)O~O/O)O@+;+>+>+>+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:+:+;+@+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+>+>+>+>+>+$+)O#+;+;+;+:+:+:+:+:+:+COVoCoCo,O:+:+:+:+:+:+:+:+;+;+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+>+>+>+>+>+>+++-+:+:+:+:+:+:+,O).Q 2 h M Z y a +.no}O:+:+:+:+:+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+-+:+:+:+:+:+nog ;.7XjX[XYXJXiX,Xd.w.` $X:+:+:+:+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+;+;+:+:+:+}.0 :XVXTX5oyoeo#o$o.ovXG.>Xr I.`O:+:+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+:+:+:+no0 FosXgXuo[o%O{oro*o@o/XcX0X6X} /.:+:+:+:+;+;+%+@+/OQO", -",+,+,+,+,+,+,+>+>+>+(O!O(OO+@+-+;+:+:+}OY oX1omXpo8OfOMOBOmOOO&o+oDXxX+", -",+,+,+,+,+,+,+>+>+>+WO~O)O@+-+;+:+:+:+#X] ZXNXoo_opO6OhOsOzOfOko%oOoRXyXn.'.' :+:+:+:+;+%+%+>+>+", -",+,+,+,+,+,+,+>+>+>+>+++)O$+;+:+:+:+:+U.!.rXEXto9OgO6OqO6OtOsO^o4o(XFXSXA.c.p Po:+:+:+;+;+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+-+%+;+:+:+:+#.;XaX}XxoiOpOdOaO.O7OXOgo3oOoOoKXH.f.X.{.:+:+:+:+>+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+>+>+:+:+:+:+#.;XpX{XxoqOlOlOwO6O#O`o!o+>+>+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+>+>+>+:+:+:+@.[.pXEXxosONOcOyOjO5O/odo2o`X|XHXqXl.O.(.:+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+>+>+;+:+:+:+P.T.BX)XwopObOuOkOnOcolo(o,o^X~XGXK.g...|.:+:+>+>+>+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+>+>+-+:+:+:+-XU zXMX0o$ONO OrO)oioao=o]X!XWXhXB.y.q Jo:+:+:+>+>+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+>+EOX+&+&+*+`O-.~.bXXo|ovO0O4Ozo6o9o-oQXRXkXJ.b.8.! `O:+:+:+;+>+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+>+>+++[OX+&+&+*+*+YoC fXqo}oxOeO'o7o o:o'XCXwXF.N.a.H X:+:+:+:+;+-+>+>+>+", -",+,+,+,+,+,+,+>+>+>+>+++(O++[O|Oo+&+*+*+=+u PXjo+O@O]o~o>oUXLXlXeXD.V.h.q.m FO:+:+:+:+;+$+%+>+>+", -",+,+,+,+,+,+,+,+>+>+>+O+(OO+TO[O.+o+&+*+*OA nXhooOWoQo8o'XjXdX1XM.m.k.r.D }.:+:+:+:+;+-+++O+$+>+", -",+,+,+,+,+,+,+,+>+>+>+)O++%+ROo+{OX+o+&+voJ tXfosoAX;oPXjX8XC.v.z.p.1.$ 7.}O:+:+:+;+-+@+O+)O^O>+", -",+,+,+,+,+,+,+,+>+>+>+>+>+>+'O|Oo+*+=+=+%.< x ._ i.uX9XZ.S.s.0.c = W *X:+:+>+>+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+>+>+>+>+>+_O]Oo+&+*+=+z _.@X+>+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+>+>+>+>+>+YO'O|Oo+&+`Oo 6 ( R.GoKONo[ R 9.o.s Ko*+*+:+:+:+>+>+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+,+>+>+>+>+IOYO]O|Oo+{ t Mo.XB 1 E.bo4.| & V &X*+*+*+:+:+;+>+>+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+,+>+>+>+>+HOIOYOVO|O9 ^ Ho=+LOZof P >.3.; >O&+&+&+&+:+:+-+>+>+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+,+,+>+>+>+AOHOIO>OVO + f Q.To ++X:.~ S L =+=+=+o+o+:+:+%+>+>+>+>+>+>+>+>+>+>+", -",+,+,+,+,+,+,+,+,+,+,+,+>+>+3OAOHO;O9 =XXXT - W.^.-.&.4 Y.*+*+*+X+[O;+;+@+>+>+>+>+>+>+>+>+>+,+", -",+,+,+,+,+,+,+,+,+,+,+,+>+>+:O3OAOHO ,.moVOVO%X/ I 6.=.O LO&+o+o+o+'O++@+O+%+>+>+>+>+>+>+>+>+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+>+Eo:O3OAO F v OX1OSo&.K ) i + +|O|O|O]O>+%+(O@+>+>+>+>+>+>+>+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+5XEo-O2O* 5 > f d `.-.*. n ]O]O]O'O'O_O>+>+++O+>+>+>+>+>+>+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].5XRo-OAo : e w N &.2. UOYOYOYOUOIOPO>+>+>+>+>+>+>+>+>+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].Do&O3 @ 5 1 # j l k , JOJOJOHOHODOSO>+>+>+>+>+>+>+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].].5XE . 3 7 % : PoUoAOAOAOAOZO3O3O>+>+>+>+>+>+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].].].].X X . X * -O:O2O2O2O2O2O:O-O-O>+>+>+>+,+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].].].].].].3X4XDoRoRo=O=O=O=O=ORoRoDo>+>+,+,+,+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].].].].].].].].].].].5X5X5X5X5X].].].,+,+,+,+,+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].].].].].].].].].].].].].].].].].].].,+,+,+,+,+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+].].].].].].].].].].].].].].].].].].].].].,+,+,+,+,+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+", -",+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+,+" -}; diff --git a/include/wx/generic/laywin.h b/include/wx/generic/laywin.h deleted file mode 100644 index bc6f743951..0000000000 --- a/include/wx/generic/laywin.h +++ /dev/null @@ -1,198 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: laywin.h -// Purpose: Implements a simple layout algorithm, plus -// wxSashLayoutWindow which is an example of a window with -// layout-awareness (via event handlers). This is suited to -// IDE-style window layout. -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LAYWIN_H_G_ -#define _WX_LAYWIN_H_G_ - -#ifdef __GNUG__ -#pragma interface "laywin.h" -#endif - -#if wxUSE_SASH - #include "wx/sashwin.h" -#endif // wxUSE_SASH - -const wxEventType wxEVT_QUERY_LAYOUT_INFO = wxEVT_FIRST + 1500; -const wxEventType wxEVT_CALCULATE_LAYOUT = wxEVT_FIRST + 1501; - -enum wxLayoutOrientation -{ - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment -{ - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM -}; - -// Not sure this is necessary -// Tell window which dimension we're sizing on -#define wxLAYOUT_LENGTH_Y 0x0008 -#define wxLAYOUT_LENGTH_X 0x0000 - -// Use most recently used length -#define wxLAYOUT_MRU_LENGTH 0x0010 - -// Only a query, so don't actually move it. -#define wxLAYOUT_QUERY 0x0100 - -/* - * This event is used to get information about window alignment, - * orientation and size. - */ - -class WXDLLEXPORT wxQueryLayoutInfoEvent: public wxEvent -{ -DECLARE_DYNAMIC_CLASS(wxQueryLayoutInfoEvent) -public: - - wxQueryLayoutInfoEvent(wxWindowID id = 0) - { - SetEventType(wxEVT_QUERY_LAYOUT_INFO); - m_requestedLength = 0; - m_flags = 0; - m_id = id; - m_alignment = wxLAYOUT_TOP; - m_orientation = wxLAYOUT_HORIZONTAL; - } - - // Read by the app - void SetRequestedLength(int length) { m_requestedLength = length; } - int GetRequestedLength() const { return m_requestedLength; } - - void SetFlags(int flags) { m_flags = flags; } - int GetFlags() const { return m_flags; } - - // Set by the app - void SetSize(const wxSize& size) { m_size = size; } - wxSize GetSize() const { return m_size; } - - void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; } - wxLayoutOrientation GetOrientation() const { return m_orientation; } - - void SetAlignment(wxLayoutAlignment align) { m_alignment = align; } - wxLayoutAlignment GetAlignment() const { return m_alignment; } - -protected: - int m_flags; - int m_requestedLength; - wxSize m_size; - wxLayoutOrientation m_orientation; - wxLayoutAlignment m_alignment; - -}; - -typedef void (wxEvtHandler::*wxQueryLayoutInfoEventFunction)(wxQueryLayoutInfoEvent&); - -#define EVT_QUERY_LAYOUT_INFO(func) { wxEVT_QUERY_LAYOUT_INFO, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxQueryLayoutInfoEventFunction) & func, NULL }, - -/* - * This event is used to take a bite out of the available client area. - */ - -class WXDLLEXPORT wxCalculateLayoutEvent: public wxEvent -{ -DECLARE_DYNAMIC_CLASS(wxCalculateLayoutEvent) -public: - wxCalculateLayoutEvent(wxWindowID id = 0) - { - SetEventType(wxEVT_CALCULATE_LAYOUT); - m_flags = 0; - m_id = id; - } -// Read by the app - inline void SetFlags(int flags) { m_flags = flags; } - inline int GetFlags() const { return m_flags; } - -// Set by the app - inline void SetRect(const wxRect& rect) { m_rect = rect; } - inline wxRect GetRect() const { return m_rect; } -protected: - int m_flags; - wxRect m_rect; -}; - -typedef void (wxEvtHandler::*wxCalculateLayoutEventFunction)(wxCalculateLayoutEvent&); - -#define EVT_CALCULATE_LAYOUT(func) { wxEVT_CALCULATE_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (wxCalculateLayoutEventFunction) & func, NULL }, - -#if wxUSE_SASH - -// This is window that can remember alignment/orientation, does its own layout, -// and can provide sashes too. Useful for implementing docked windows with sashes in -// an IDE-style interface. -class WXDLLEXPORT wxSashLayoutWindow: public wxSashWindow -{ - DECLARE_CLASS(wxSashLayoutWindow) -public: - wxSashLayoutWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "layoutWindow"); - -// Accessors - inline wxLayoutAlignment GetAlignment() const { return m_alignment; }; - inline wxLayoutOrientation GetOrientation() const { return m_orientation; }; - - inline void SetAlignment(wxLayoutAlignment align) { m_alignment = align; }; - inline void SetOrientation(wxLayoutOrientation orient) { m_orientation = orient; }; - - // Give the window default dimensions - inline void SetDefaultSize(const wxSize& size) { m_defaultSize = size; } - -// Event handlers - // Called by layout algorithm to allow window to take a bit out of the - // client rectangle, and size itself if not in wxLAYOUT_QUERY mode. - void OnCalculateLayout(wxCalculateLayoutEvent& event); - - // Called by layout algorithm to retrieve information about the window. - void OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event); -protected: - wxLayoutAlignment m_alignment; - wxLayoutOrientation m_orientation; - wxSize m_defaultSize; - -DECLARE_EVENT_TABLE() -}; - -#endif // wxUSE_SASH - -class WXDLLEXPORT wxMDIParentFrame; -class WXDLLEXPORT wxFrame; - -// This class implements the layout algorithm -class WXDLLEXPORT wxLayoutAlgorithm: public wxObject -{ -public: - wxLayoutAlgorithm() {} - - // The MDI client window is sized to whatever's left over. - bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = (wxRect*) NULL); - - // mainWindow is sized to whatever's left over. This function for backward - // compatibility; use LayoutWindow. - bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = (wxWindow*) NULL) - { - return LayoutWindow(frame, mainWindow); - } - - // mainWindow is sized to whatever's left over. This function for backward - bool LayoutWindow(wxWindow* frame, wxWindow* mainWindow = (wxWindow*) NULL); -}; - -#endif - // _WX_LAYWIN_H_G_ diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h deleted file mode 100644 index b9a9e74ce5..0000000000 --- a/include/wx/generic/listctrl.h +++ /dev/null @@ -1,651 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.h -// Purpose: Generic list control -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __LISTCTRLH_G__ -#define __LISTCTRLH_G__ - -#ifdef __GNUG__ -#pragma interface "listctrl.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/generic/imaglist.h" -#include "wx/control.h" -#include "wx/timer.h" -#include "wx/textctrl.h" -#include "wx/dcclient.h" -#include "wx/scrolwin.h" -#include "wx/settings.h" - -#if wxUSE_DRAG_AND_DROP -class WXDLLEXPORT wxDropTarget; -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListItem; -class WXDLLEXPORT wxListEvent; -class WXDLLEXPORT wxListCtrl; - -//----------------------------------------------------------------------------- -// internal classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListHeaderData; -class WXDLLEXPORT wxListItemData; -class WXDLLEXPORT wxListLineData; - -class WXDLLEXPORT wxListHeaderWindow; -class WXDLLEXPORT wxListMainWindow; - -class WXDLLEXPORT wxListRenameTimer; -//class wxListTextCtrl; - -//----------------------------------------------------------------------------- -// types -//----------------------------------------------------------------------------- - -// type of compare function for wxListCtrl sort operation -typedef int (*wxListCtrlCompare)(long item1, long item2, long sortData); - -//----------------------------------------------------------------------------- -// wxListCtrl flags -//----------------------------------------------------------------------------- - -#define wxLC_ICON 0x0004 -#define wxLC_SMALL_ICON 0x0008 -#define wxLC_LIST 0x0010 -#define wxLC_REPORT 0x0020 -#define wxLC_ALIGN_TOP 0x0040 -#define wxLC_ALIGN_LEFT 0x0080 -#define wxLC_AUTOARRANGE 0x0100 // not supported in wxGLC -#define wxLC_USER_TEXT 0x0200 // not supported in wxGLC (how does it work?) -#define wxLC_EDIT_LABELS 0x0400 -#define wxLC_NO_HEADER 0x0800 // not supported in wxGLC -#define wxLC_NO_SORT_HEADER 0x1000 // not supported in wxGLC -#define wxLC_SINGLE_SEL 0x2000 -#define wxLC_SORT_ASCENDING 0x4000 -#define wxLC_SORT_DESCENDING 0x8000 // not supported in wxGLC - -#define wxLC_MASK_TYPE (wxLC_ICON | wxLC_SMALL_ICON | wxLC_LIST | wxLC_REPORT) -#define wxLC_MASK_ALIGN (wxLC_ALIGN_TOP | wxLC_ALIGN_LEFT) -#define wxLC_MASK_SORT (wxLC_SORT_ASCENDING | wxLC_SORT_DESCENDING) - -// Omitted because (a) too much detail (b) not enough style flags -// #define wxLC_NO_SCROLL -// #define wxLC_NO_LABEL_WRAP -// #define wxLC_OWNERDRAW_FIXED -// #define wxLC_SHOW_SEL_ALWAYS - -// Mask flags to tell app/GUI what fields of wxListItem are valid -#define wxLIST_MASK_STATE 0x0001 -#define wxLIST_MASK_TEXT 0x0002 -#define wxLIST_MASK_IMAGE 0x0004 -#define wxLIST_MASK_DATA 0x0008 -#define wxLIST_SET_ITEM 0x0010 -#define wxLIST_MASK_WIDTH 0x0020 -#define wxLIST_MASK_FORMAT 0x0040 - -// State flags for indicating the state of an item -#define wxLIST_STATE_DONTCARE 0x0000 -#define wxLIST_STATE_DROPHILITED 0x0001 // not supported in wxGLC -#define wxLIST_STATE_FOCUSED 0x0002 -#define wxLIST_STATE_SELECTED 0x0004 -#define wxLIST_STATE_CUT 0x0008 // not supported in wxGLC - -// Hit test flags, used in HitTest // wxGLC suppots 20 and 80 -#define wxLIST_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxLIST_HITTEST_BELOW 0x0002 // Below the client area. -#define wxLIST_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxLIST_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxLIST_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxLIST_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxLIST_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxLIST_HITTEST_TOLEFT 0x0400 // To the right of the client area. -#define wxLIST_HITTEST_TORIGHT 0x0800 // To the left of the client area. - -#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL | wxLIST_HITTEST_ONITEMSTATEICON) - - - -// Flags for GetNextItem // always wxLIST_NEXT_ALL in wxGLC -enum { - wxLIST_NEXT_ABOVE, // Searches for an item above the specified item - wxLIST_NEXT_ALL, // Searches for subsequent item by index - wxLIST_NEXT_BELOW, // Searches for an item below the specified item - wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item - wxLIST_NEXT_RIGHT // Searches for an item to the right of the specified item -}; - -// Alignment flags for Arrange // always wxLIST_ALIGN_LEFT in wxGLC -enum { - wxLIST_ALIGN_DEFAULT, - wxLIST_ALIGN_LEFT, - wxLIST_ALIGN_TOP, - wxLIST_ALIGN_SNAP_TO_GRID -}; - -// Column format // always wxLIST_FORMAT_LEFT in wxGLC -enum { - wxLIST_FORMAT_LEFT, - wxLIST_FORMAT_RIGHT, - wxLIST_FORMAT_CENTRE, - wxLIST_FORMAT_CENTER = wxLIST_FORMAT_CENTRE -}; - -// Autosize values for SetColumnWidth -enum { - wxLIST_AUTOSIZE = -1, // always 80 in wxGLC (what else?) - wxLIST_AUTOSIZE_USEHEADER = -2 -}; - -// Flag values for GetItemRect -enum { - wxLIST_RECT_BOUNDS, - wxLIST_RECT_ICON, - wxLIST_RECT_LABEL -}; - -// Flag values for FindItem // not supported by wxGLC -enum { - wxLIST_FIND_UP, - wxLIST_FIND_DOWN, - wxLIST_FIND_LEFT, - wxLIST_FIND_RIGHT -}; - -//----------------------------------------------------------------------------- -// wxListItem -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListItem: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListItem) - - public: - long m_mask; // Indicates what fields are valid - long m_itemId; // The zero-based item position - int m_col; // Zero-based column, if in report mode - long m_state; // The state of the item - long m_stateMask; // Which flags of m_state are valid (uses same flags) - wxString m_text; // The label/header text - int m_image; // The zero-based index into an image list - long m_data; // App-defined data - wxColour *m_colour; // only wxGLC, not supported by Windows ;-> - - // For columns only - int m_format; // left, right, centre - int m_width; // width of column - - wxListItem(void); -}; - -//----------------------------------------------------------------------------- -// wxListEvent -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListEvent: public wxNotifyEvent -{ - DECLARE_DYNAMIC_CLASS(wxListEvent) - - public: - wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - int m_code; - long m_itemIndex; - long m_oldItemIndex; - int m_col; - bool m_cancelled; - wxPoint m_pointDrag; - - wxListItem m_item; -}; - -typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); - -#define EVT_LIST_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_DELETE_ITEM(id, fn) { wxEVT_COMMAND_LIST_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) { wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_GET_INFO(id, fn) { wxEVT_COMMAND_LIST_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_SET_INFO(id, fn) { wxEVT_COMMAND_LIST_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_ITEM_SELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_ITEM_DESELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_DESELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_KEY_DOWN(id, fn) { wxEVT_COMMAND_LIST_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_INSERT_ITEM(id, fn) { wxEVT_COMMAND_LIST_INSERT_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_COL_CLICK(id, fn) { wxEVT_COMMAND_LIST_COL_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_ITEM_RIGHT_CLICK(id, fn) { wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_ITEM_MIDDLE_CLICK(id, fn) { wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, -#define EVT_LIST_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_LIST_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, - -//----------------------------------------------------------------------------- -// wxListItemData (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListItemData : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListItemData); - - public: - wxString m_text; - int m_image; - long m_data; - int m_xpos,m_ypos; - int m_width,m_height; - wxColour *m_colour; - - public: - wxListItemData(void); - wxListItemData( const wxListItem &info ); - void SetItem( const wxListItem &info ); - void SetText( const wxString &s ); - void SetImage( int image ); - void SetData( long data ); - void SetPosition( int x, int y ); - void SetSize( int width, int height ); - void SetColour( wxColour *col ); - bool HasImage(void) const; - bool HasText(void) const; - bool IsHit( int x, int y ) const; - void GetText( wxString &s ); - int GetX( void ) const; - int GetY( void ) const; - int GetWidth(void) const; - int GetHeight(void) const; - int GetImage(void) const; - void GetItem( wxListItem &info ); - wxColour *GetColour(void); -}; - -//----------------------------------------------------------------------------- -// wxListHeaderData (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListHeaderData : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListHeaderData); - - protected: - long m_mask; - int m_image; - wxString m_text; - int m_format; - int m_width; - int m_xpos,m_ypos; - int m_height; - - public: - wxListHeaderData(void); - wxListHeaderData( const wxListItem &info ); - void SetItem( const wxListItem &item ); - void SetPosition( int x, int y ); - void SetWidth( int w ); - void SetFormat( int format ); - void SetHeight( int h ); - bool HasImage(void) const; - bool HasText(void) const; - bool IsHit( int x, int y ) const; - void GetItem( wxListItem &item ); - void GetText( wxString &s ); - int GetImage(void) const; - int GetWidth(void) const; - int GetFormat(void) const; -}; - -//----------------------------------------------------------------------------- -// wxListLineData (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListLineData : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListLineData); - - public: - wxList m_items; - wxRect m_bound_all; - wxRect m_bound_label; - wxRect m_bound_icon; - wxRect m_bound_hilight; - int m_mode; - bool m_hilighted; - wxBrush *m_hilightBrush; - int m_spacing; - wxListMainWindow *m_owner; - - void DoDraw( wxDC *dc, bool hilight, bool paintBG ); - - public: - wxListLineData( void ) {}; - wxListLineData( wxListMainWindow *owner, int mode, wxBrush *hilightBrush ); - void CalculateSize( wxDC *dc, int spacing ); - void SetPosition( wxDC *dc, int x, int y, int window_width ); - void SetColumnPosition( int index, int x ); - void GetSize( int &width, int &height ); - void GetExtent( int &x, int &y, int &width, int &height ); - void GetLabelExtent( int &x, int &y, int &width, int &height ); - long IsHit( int x, int y ); - void InitItems( int num ); - void SetItem( int index, const wxListItem &info ); - void GetItem( int index, wxListItem &info ); - void GetText( int index, wxString &s ); - void SetText( int index, const wxString s ); - int GetImage( int index ); - void GetRect( wxRect &rect ); - void Hilight( bool on ); - void ReverseHilight( void ); - void DrawRubberBand( wxDC *dc, bool on ); - void Draw( wxDC *dc ); - bool IsInRect( int x, int y, const wxRect &rect ); - bool IsHilighted( void ); - void AssignRect( wxRect &dest, int x, int y, int width, int height ); - void AssignRect( wxRect &dest, const wxRect &source ); -}; - -//----------------------------------------------------------------------------- -// wxListHeaderWindow (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListHeaderWindow : public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxListHeaderWindow) - - protected: - wxListMainWindow *m_owner; - wxCursor *m_currentCursor; - wxCursor *m_resizeCursor; - bool m_isDragging; - int m_column; - int m_minX; - int m_currentX; - - public: - wxListHeaderWindow( void ); - ~wxListHeaderWindow( void ); - wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = "columntitles" ); - void DoDrawRect( wxDC *dc, int x, int y, int w, int h ); - void OnPaint( wxPaintEvent &event ); - void DrawCurrent(); - void OnMouse( wxMouseEvent &event ); - void OnSetFocus( wxFocusEvent &event ); - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxListRenameTimer (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListRenameTimer: public wxTimer -{ - private: - wxListMainWindow *m_owner; - - public: - wxListRenameTimer( wxListMainWindow *owner ); - void Notify(); -}; - -//----------------------------------------------------------------------------- -// wxListTextCtrl (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListTextCtrl: public wxTextCtrl -{ - DECLARE_DYNAMIC_CLASS(wxListTextCtrl); - - private: - bool *m_accept; - wxString *m_res; - wxListMainWindow *m_owner; - - public: - wxListTextCtrl(void) {}; - wxListTextCtrl( wxWindow *parent, const wxWindowID id, - bool *accept, wxString *res, wxListMainWindow *owner, - const wxString &value = "", - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - int style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString &name = "wxListTextCtrlText" ); - void OnChar( wxKeyEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxListMainWindow (internal) -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListMainWindow: public wxScrolledWindow -{ - DECLARE_DYNAMIC_CLASS(wxListMainWindow); - - public: - long m_mode; - wxList m_lines; - wxList m_columns; - wxListLineData *m_current; - int m_visibleLines; - wxBrush *m_hilightBrush; - wxColour *m_hilightColour; - int m_xScroll,m_yScroll; - bool m_dirty; - wxImageList *m_small_image_list; - wxImageList *m_normal_image_list; - int m_small_spacing; - int m_normal_spacing; - bool m_hasFocus; - bool m_usedKeys; - bool m_lastOnSame; - wxTimer *m_renameTimer; -// wxListTextCtrl *m_text; - bool m_renameAccept; - wxString m_renameRes; - bool m_isCreated; - int m_dragCount; - - public: - wxListMainWindow(void); - wxListMainWindow( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = "listctrl" ); - ~wxListMainWindow(void); - void RefreshLine( wxListLineData *line ); - void OnPaint( wxPaintEvent &event ); - void HilightAll( bool on ); - void SendNotify( wxListLineData *line, wxEventType command ); - void FocusLine( wxListLineData *line ); - void UnfocusLine( wxListLineData *line ); - void SelectLine( wxListLineData *line ); - void DeselectLine( wxListLineData *line ); - void DeleteLine( wxListLineData *line ); - void RenameLine( wxListLineData *line, const wxString &newName ); - void StartLabelEdit( wxListLineData *line ); - void OnRenameTimer(void); - void OnRenameAccept(void); - void OnMouse( wxMouseEvent &event ); - void MoveToFocus( void ); - void OnArrowChar( wxListLineData *newCurrent, bool shiftDown ); - void OnChar( wxKeyEvent &event ); - void OnKeyDown( wxKeyEvent &event ); - void OnSetFocus( wxFocusEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - void OnSize( wxSizeEvent &event ); - void DrawImage( int index, wxDC *dc, int x, int y ); - void GetImageSize( int index, int &width, int &height ); - int GetIndexOfLine( const wxListLineData *line ); - int GetTextLength( wxString &s ); // should be const - - void SetImageList( wxImageList *imageList, int which ); - void SetItemSpacing( int spacing, bool isSmall = FALSE ); - int GetItemSpacing( bool isSmall = FALSE ); - void SetColumn( int col, wxListItem &item ); - void SetColumnWidth( int col, int width ); - void GetColumn( int col, wxListItem &item ); - int GetColumnWidth( int vol ); - int GetColumnCount( void ); - int GetCountPerPage( void ); - void SetItem( wxListItem &item ); - void GetItem( wxListItem &item ); - void SetItemState( long item, long state, long stateMask ); - int GetItemState( long item, long stateMask ); - int GetItemCount( void ); - void GetItemRect( long index, wxRect &rect ); - bool GetItemPosition(long item, wxPoint& pos); - int GetSelectedItemCount( void ); - void SetMode( long mode ); - long GetMode( void ) const; - void CalculatePositions( void ); - void RealizeChanges(void); - long GetNextItem( long item, int geometry, int state ); - void DeleteItem( long index ); - void DeleteAllItems( void ); - void DeleteColumn( int col ); - void DeleteEverything( void ); - void EnsureVisible( long index ); - long FindItem(long start, const wxString& str, bool partial = FALSE ); - long FindItem(long start, long data); - long HitTest( int x, int y, int &flags ); - void InsertItem( wxListItem &item ); -// void AddItem( wxListItem &item ); - void InsertColumn( long col, wxListItem &item ); -// void AddColumn( wxListItem &item ); - void SortItems( wxListCtrlCompare fn, long data ); - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxListCtrl -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxListCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListCtrl); - - public: - - wxListCtrl(void); - wxListCtrl( wxWindow *parent, wxWindowID id = -1, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, - const wxString &name = "listctrl" ) - { - Create(parent, id, pos, size, style, validator, name); - } - ~wxListCtrl(void); - bool Create( wxWindow *parent, wxWindowID id = -1, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, - const wxString &name = "listctrl" ); - void OnSize( wxSizeEvent &event ); - bool GetColumn( int col, wxListItem& item ) const; - bool SetColumn( int col, wxListItem& item ); - int GetColumnWidth( int col ) const; - bool SetColumnWidth( int col, int width); - int GetCountPerPage(void) const; // not the same in wxGLC as in Windows, I think -// wxText& GetEditControl(void) const; // not supported in wxGLC - bool GetItem( wxListItem& info ) const; - bool SetItem( wxListItem& info ) ; - long SetItem( long index, int col, const wxString& label, int imageId = -1 ); - int GetItemState( long item, long stateMask ) const; - bool SetItemState( long item, long state, long stateMask); - bool SetItemImage( long item, int image, int selImage); - wxString GetItemText( long item ) const; - void SetItemText( long item, const wxString& str ); - long GetItemData( long item ) const; - bool SetItemData( long item, long data ); - bool GetItemRect( long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS ) const; - bool GetItemPosition( long item, wxPoint& pos ) const; - bool SetItemPosition( long item, const wxPoint& pos ); // not supported in wxGLC - int GetItemCount(void) const; - int GetColumnCount(void) const; - void SetItemSpacing( int spacing, bool isSmall = FALSE ); - int GetItemSpacing( bool isSmall ) const; - int GetSelectedItemCount(void) const; -// wxColour GetTextColour(void) const; // wxGLC has colours for every Item (see wxListItem) -// void SetTextColour(const wxColour& col); - long GetTopItem(void) const; - void SetSingleStyle( long style, bool add = TRUE ) ; - void SetWindowStyleFlag(long style); - void RecreateWindow(void) {}; - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const; - wxImageList *GetImageList(int which) const; - void SetImageList(wxImageList *imageList, int which) ; - bool Arrange( int flag = wxLIST_ALIGN_DEFAULT ); // always wxLIST_ALIGN_LEFT in wxGLC - void ClearAll(); - bool DeleteItem( long item ); - bool DeleteAllItems(void); - bool DeleteAllColumns(void); - bool DeleteColumn( int col ); -// wxText& Edit(long item) ; // not supported in wxGLC - bool EnsureVisible( long item ); - long FindItem(long start, const wxString& str, bool partial = FALSE ); - long FindItem(long start, long data); - long FindItem(long start, const wxPoint& pt, int direction); // not supported in wxGLC - long HitTest(const wxPoint& point, int& flags); - long InsertItem(wxListItem& info); - long InsertItem(long index, const wxString& label); - long InsertItem(long index, int imageIndex); - long InsertItem(long index, const wxString& label, int imageIndex); - long InsertColumn(long col, wxListItem& info); - long InsertColumn(long col, const wxString& heading, int format = wxLIST_FORMAT_LEFT, - int width = -1); - bool ScrollList(int dx, int dy); - bool SortItems(wxListCtrlCompare fn, long data); - bool Update(long item); - void OnIdle( wxIdleEvent &event ); - - // We have to hand down a few functions - - bool SetBackgroundColour( const wxColour &colour ); - bool SetForegroundColour( const wxColour &colour ); - bool SetFont( const wxFont &font ); - -#if wxUSE_DRAG_AND_DROP - void SetDropTarget( wxDropTarget *dropTarget ) - { m_mainWin->SetDropTarget( dropTarget ); } - wxDropTarget *GetDropTarget() const - { return m_mainWin->GetDropTarget(); } -#endif - - bool SetCursor( const wxCursor &cursor ) - { return m_mainWin ? m_mainWin->wxWindow::SetCursor(cursor) : FALSE; } - wxColour GetBackgroundColour() const - { return m_mainWin ? m_mainWin->GetBackgroundColour() : wxColour(); } - wxColour GetForegroundColour() const - { return m_mainWin ? m_mainWin->GetForegroundColour() : wxColour(); } - bool PopupMenu( wxMenu *menu, int x, int y ) - { return m_mainWin->PopupMenu( menu, x, y ); } - void SetFocus() - { m_mainWin->SetFocus(); } - - // implementation - -// wxListTextCtrl m_textCtrl; - wxImageList *m_imageListNormal; - wxImageList *m_imageListSmall; - wxImageList *m_imageListState; // what's that ? - wxListHeaderWindow *m_headerWin; - wxListMainWindow *m_mainWin; - - DECLARE_EVENT_TABLE() - -}; - - -#endif // __LISTCTRLH_G__ diff --git a/include/wx/generic/msgdlgg.h b/include/wx/generic/msgdlgg.h deleted file mode 100644 index a545631340..0000000000 --- a/include/wx/generic/msgdlgg.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlgg.h -// Purpose: Generic wxMessageDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __MSGDLGH_G__ -#define __MSGDLGH_G__ - -#ifdef __GNUG__ -#pragma interface "msgdlgg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -// type is an 'or' (|) of wxOK, wxCANCEL, wxYES_NO -// Returns wxYES/NO/OK/CANCEL - -WXDLLEXPORT_DATA(extern const wxChar*) wxMessageBoxCaptionStr; - -class WXDLLEXPORT wxGenericMessageDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxGenericMessageDialog) - -public: - wxGenericMessageDialog(wxWindow *parent, const wxString& message, - const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - void OnYes(wxCommandEvent& event); - void OnNo(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - -private: - wxList m_buttons; - int m_dialogStyle; - -DECLARE_EVENT_TABLE() -}; - -#if !defined( __WXMSW__ ) && !defined( __WXMAC__) -#define wxMessageDialog wxGenericMessageDialog - -int wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, wxWindow *parent = (wxWindow *) NULL, int x = -1, int y = -1); - -#endif - -#endif - // __MSGDLGH_G__ diff --git a/include/wx/generic/notebook.h b/include/wx/generic/notebook.h deleted file mode 100644 index 4b3ed0980c..0000000000 --- a/include/wx/generic/notebook.h +++ /dev/null @@ -1,203 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.h -// Purpose: wxNotebook class (a.k.a. property sheet, tabbed dialog) -// Author: Julian Smart -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_ -#define _WX_NOTEBOOK_H_ - -#ifdef __GNUG__ -#pragma interface "notebook.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/dynarray.h" -#include "wx/event.h" -#include "wx/control.h" -#include "wx/generic/tabg.h" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLEXPORT wxImageList; -class WXDLLEXPORT wxWindow; - -// array of notebook pages -typedef wxWindow wxNotebookPage; // so far, any window can be a page -WX_DEFINE_ARRAY(wxNotebookPage *, wxArrayPages); - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxNotebook; - -// This reuses wxTabView to draw the tabs. -class WXDLLEXPORT wxNotebookTabView: public wxTabView -{ -DECLARE_DYNAMIC_CLASS(wxNotebookTabView) -public: - wxNotebookTabView(wxNotebook* notebook, long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR); - ~wxNotebookTabView(void); - - // Called when a tab is activated - virtual void OnTabActivate(int activateId, int deactivateId); - -protected: - wxNotebook* m_notebook; -}; - -class wxNotebook : public wxControl -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // dtor - ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - int GetPageCount() const; - - // Find the position of the wxNotebookPage, -1 if not found. - int FindPagePosition(wxNotebookPage* page) const; - - // set the currently selected page, return the index of the previously - // selected one (or -1 on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(int nPage); - // cycle thru the tabs - void AdvanceSelection(bool bForward = TRUE); - // get the currently selected page - int GetSelection() const { return m_nSelection; } - - // set/get the title of a page - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - // get pointer (may be NULL) to the associated image list - wxImageList* GetImageList() const { return m_pImageList; } - - // sets/returns item's image index in the current image list - int GetPageImage(int nPage) const; - bool SetPageImage(int nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - - // Sets the size of the tabs (assumes all tabs are the same size) - void SetTabSize(const wxSize& sz); - - // operations - // ---------- - // remove one page from the notebook, and delete the page. - bool DeletePage(int nPage); - bool DeletePage(wxNotebookPage* page); - // remove one page from the notebook, without deleting the page. - bool RemovePage(int nPage); - bool RemovePage(wxNotebookPage* page); - // remove all pages - bool DeleteAllPages(); - // adds a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // the same as AddPage(), but adds it at the specified position - bool InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // get the panel which represents the given page - wxNotebookPage *GetPage(int nPage) { return m_aPages[nPage]; } - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnIdle(wxIdleEvent& event); - void OnSelChange(wxNotebookEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - virtual void Command(wxCommandEvent& event); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool DoPhase(int nPhase); - - // Implementation - - // wxNotebook on Motif uses a generic wxTabView to implement itself. - wxTabView *GetTabView() const { return m_tabView; } - void SetTabView(wxTabView *v) { m_tabView = v; } - - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - - virtual wxRect GetAvailableClientSize(); - - // Implementation: calculate the layout of the view rect - // and resize the children if required - bool RefreshLayout(bool force = TRUE); - -protected: - // common part of all ctors - void Init(); - - // helper functions - void ChangePage(int nOldSel, int nSel); // change pages - - wxImageList *m_pImageList; // we can have an associated image list - wxArrayPages m_aPages; // array of pages - - int m_nSelection; // the current selection (-1 if none) - - wxTabView* m_tabView; - - DECLARE_DYNAMIC_CLASS(wxNotebook) - DECLARE_EVENT_TABLE() -}; - -#endif // _WX_NOTEBOOK_H_ diff --git a/include/wx/generic/panelg.h b/include/wx/generic/panelg.h deleted file mode 100644 index a4c8029462..0000000000 --- a/include/wx/generic/panelg.h +++ /dev/null @@ -1,85 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: panelg.h -// Purpose: wxPanel: similar to wxWindows but is coloured as for a dialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PANELH_G__ -#define __PANELH_G__ - -#ifdef __GNUG__ -#pragma interface "panelg.h" -#endif - -#include "wx/window.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; - - -class WXDLLEXPORT wxPanel : public wxWindow -{ -public: - wxPanel(); - - // Old-style constructor (no default values for coordinates to avoid - // ambiguity with the new one) - wxPanel(wxWindow *parent, - int x, int y, int width, int height, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr) - { - Create(parent, -1, wxPoint(x, y), wxSize(width, height), style, name); - } - - // Constructor - wxPanel(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr) - { - Create(parent, id, pos, size, style, name); - } - - // Pseudo ctor - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTAB_TRAVERSAL | wxNO_BORDER, - const wxString& name = wxPanelNameStr); - - // Sends an OnInitDialog event, which in turns transfers data to - // to the dialog via validators. - virtual void InitDialog(); - - // implementation - // responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // process a keyboard navigation message (Tab traversal) - void OnNavigationKey(wxNavigationKeyEvent& event); - - // set the focus to the first child if we get it - void OnFocus(wxFocusEvent& event); - - // called by wxWindow whenever it gets focus - void SetLastFocus(long focus) { m_lastFocus = focus; } - long GetLastFocus() const { return m_lastFocus; } - -protected: - // the child which had the focus last time this panel was activated - long m_lastFocus; - -private: - DECLARE_DYNAMIC_CLASS(wxPanel) - DECLARE_EVENT_TABLE() -}; - -#endif - // __PANELH_G__ diff --git a/include/wx/generic/printps.h b/include/wx/generic/printps.h deleted file mode 100644 index f02bd11d10..0000000000 --- a/include/wx/generic/printps.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printps.h -// Purpose: wxPostScriptPrinter, wxPostScriptPrintPreview -// wxGenericPageSetupDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PRINTPSH__ -#define __PRINTPSH__ - -#ifdef __GNUG__ - #pragma interface "printps.h" -#endif - -#include "wx/prntbase.h" - -// ---------------------------------------------------------------------------- -// Represents the printer: manages printing a wxPrintout object -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxPostScriptPrinter : public wxPrinterBase -{ - DECLARE_DYNAMIC_CLASS(wxPostScriptPrinter) - -public: - wxPostScriptPrinter(wxPrintDialogData *data = (wxPrintDialogData *) NULL); - virtual ~wxPostScriptPrinter(); - - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE); - virtual wxDC* PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); -}; - -// ---------------------------------------------------------------------------- -// wxPrintPreview: programmer creates an object of this class to preview a -// wxPrintout. -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxPostScriptPrintPreview : public wxPrintPreviewBase -{ - DECLARE_CLASS(wxPostScriptPrintPreview) - -public: - wxPostScriptPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = (wxPrintout *) NULL, - wxPrintDialogData *data = (wxPrintDialogData *) NULL); - wxPostScriptPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - - virtual ~wxPostScriptPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); - -private: - void Init(wxPrintout *printout, wxPrintout *printoutForPrinting); -}; - -#endif -// __PRINTPSH__ diff --git a/include/wx/generic/prntdlgg.h b/include/wx/generic/prntdlgg.h deleted file mode 100644 index 258d2afe20..0000000000 --- a/include/wx/generic/prntdlgg.h +++ /dev/null @@ -1,191 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: prntdlgg.h -// Purpose: wxGenericPrintDialog, wxGenericPrintSetupDialog, -// wxGenericPageSetupDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PRINTDLGH_G_ -#define __PRINTDLGH_G_ - -#ifdef __GNUG__ - #pragma interface "prntdlgg.h" -#endif - -#include "wx/defs.h" -#include "wx/dialog.h" -#include "wx/dialog.h" - -#if wxUSE_POSTSCRIPT - #include "wx/dcps.h" -#endif - -class WXDLLEXPORT wxTextCtrl; -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxCheckBox; -class WXDLLEXPORT wxChoice; -class WXDLLEXPORT wxStaticText; -class WXDLLEXPORT wxRadioBox; -class WXDLLEXPORT wxPrintSetupData; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// FIXME why all these enums start with 10 or 30? - -enum -{ - wxPRINTID_STATIC = 10, - wxPRINTID_RANGE, - wxPRINTID_FROM, - wxPRINTID_TO, - wxPRINTID_COPIES, - wxPRINTID_PRINTTOFILE, - wxPRINTID_SETUP -}; - -enum -{ - wxPRINTID_LEFTMARGIN = 30, - wxPRINTID_RIGHTMARGIN, - wxPRINTID_TOPMARGIN, - wxPRINTID_BOTTOMMARGIN -}; - -enum -{ - wxPRINTID_PRINTCOLOUR = 10, - wxPRINTID_ORIENTATION, - wxPRINTID_COMMAND, - wxPRINTID_OPTIONS, - wxPRINTID_PAPERSIZE -}; - -// ---------------------------------------------------------------------------- -// Simulated Print and Print Setup dialogs for non-Windows platforms (and -// Windows using PostScript print/preview) -// ---------------------------------------------------------------------------- - -#if wxUSE_POSTSCRIPT -class WXDLLEXPORT wxGenericPrintDialog : public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxGenericPrintDialog) - -public: - wxGenericPrintDialog(wxWindow *parent, - wxPrintDialogData* data = (wxPrintDialogData*)NULL); - wxGenericPrintDialog(wxWindow *parent, wxPrintData* data); - - virtual ~wxGenericPrintDialog(); - - void OnSetup(wxCommandEvent& event); - void OnRange(wxCommandEvent& event); - void OnOK(wxCommandEvent& event); - - virtual bool TransferDataFromWindow(); - virtual bool TransferDataToWindow(); - - virtual int ShowModal(); - -#if wxUSE_POSTSCRIPT - wxPrintData& GetPrintData() - { return m_printDialogData.GetPrintData(); } -#endif // wxUSE_POSTSCRIPT - - wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } - wxDC *GetPrintDC(); - -public: -// wxStaticText* m_printerMessage; - wxButton* m_setupButton; -// wxButton* m_helpButton; - wxRadioBox* m_rangeRadioBox; - wxTextCtrl* m_fromText; - wxTextCtrl* m_toText; - wxTextCtrl* m_noCopiesText; - wxCheckBox* m_printToFileCheckBox; -// wxCheckBox* m_collateCopiesCheckBox; - - wxPrintDialogData m_printDialogData; - -protected: - void Init(wxWindow *parent); - -private: - DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxGenericPrintSetupDialog : public wxDialog -{ - DECLARE_CLASS(wxGenericPrintSetupDialog) - -public: - // There are no configuration options for the dialog, so we - // just pass the wxPrintData object (no wxPrintSetupDialogData class needed) - wxGenericPrintSetupDialog(wxWindow *parent, wxPrintData* data); - wxGenericPrintSetupDialog(wxWindow *parent, wxPrintSetupData* data); - virtual ~wxGenericPrintSetupDialog(); - - void Init(wxPrintData* data); - - virtual bool TransferDataFromWindow(); - virtual bool TransferDataToWindow(); - - wxChoice *CreatePaperTypeChoice(int* x, int* y); - -public: - wxRadioBox* m_orientationRadioBox; - wxTextCtrl* m_printerCommandText; - wxTextCtrl* m_printerOptionsText; - wxCheckBox* m_colourCheckBox; - wxChoice* m_paperTypeChoice; - -#if wxUSE_POSTSCRIPT - wxPrintData m_printData; - wxPrintData& GetPrintData() { return m_printData; } -#endif // wxUSE_POSTSCRIPT -}; -#endif - // wxUSE_POSTSCRIPT - -class WXDLLEXPORT wxGenericPageSetupDialog : public wxDialog -{ - DECLARE_CLASS(wxGenericPageSetupDialog) - -public: - wxGenericPageSetupDialog(wxWindow *parent, wxPageSetupData* data = (wxPageSetupData*) NULL); - virtual ~wxGenericPageSetupDialog(); - - virtual bool TransferDataFromWindow(); - virtual bool TransferDataToWindow(); - - void OnPrinter(wxCommandEvent& event); - - wxChoice *CreatePaperTypeChoice(int* x, int* y); - wxPageSetupData& GetPageSetupData() { return m_pageData; } - -public: - wxButton* m_printerButton; - wxRadioBox* m_orientationRadioBox; - wxTextCtrl* m_marginLeftText; - wxTextCtrl* m_marginTopText; - wxTextCtrl* m_marginRightText; - wxTextCtrl* m_marginBottomText; - wxChoice* m_paperTypeChoice; - - static bool m_pageSetupDialogCancelled; - - wxPageSetupData m_pageData; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif -// __PRINTDLGH_G__ diff --git a/include/wx/generic/progdlgg.h b/include/wx/generic/progdlgg.h deleted file mode 100644 index 6958ed035d..0000000000 --- a/include/wx/generic/progdlgg.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: progdlgg.h -// Purpose: wxProgressDialog class -// Author: Karsten Ballüder -// Modified by: -// Created: 09.05.1999 -// RCS-ID: $Id$ -// Copyright: (c) Karsten Ballüder -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PROGDLGH_G__ -#define __PROGDLGH_G__ - -#ifdef __GNUG__ -#pragma interface "progdlgg.h" -#endif - -#include "wx/setup.h" -#include "wx/frame.h" - - - -/** Progress dialog which shows a moving progress bar. - Taken from the Mahogany project.*/ - -class WXDLLEXPORT wxProgressDialog : public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxProgressDialog) -public: - /** Creates and displays dialog, disables event handling for other - frames or parent frame to avoid recursion problems. - @param title title for window - @param message message to display in window - @param maximum value for status bar, if <= 0, no bar is shown - @param parent window or NULL - @param style is the bit mask of wxPD_XXX constants from wx/defs.h - */ - wxProgressDialog(const wxString &title, wxString const &message, - int maximum = 100, - wxWindow *parent = NULL, - int style = wxPD_APP_MODAL | wxPD_AUTO_HIDE); - /** Destructor. - Re-enables event handling for other windows. - */ - ~wxProgressDialog(); - - /** Update the status bar to the new value. - @param value new value - @param newmsg if used, new message to display - @returns true if ABORT button has not been pressed - */ - bool Update(int value = -1, const wxString& newmsg = _T("")); - - /** Can be called to continue after the cancel button has been pressed, but - the program decided to continue the operation (e.g., user didn't - confirm it) - */ - void Resume() { m_state = Continue; } - - /// Callback for optional abort button - void OnCancel(wxCommandEvent& WXUNUSED(event)) { m_state = Canceled; } - - /// callback to disable "hard" window closing - void OnClose(wxCloseEvent& event); - -private: - /// the status bar - class wxGauge *m_gauge; - /// the message displayed - class wxStaticText *m_msg; - /// disable all or parent window only - bool m_disableParentOnly; - /// parent window - class wxWindow *m_parent; - /// continue processing or not (return value for Update()) - enum - { - Uncancelable = -1, // dialog can't be canceled - Canceled, // can be cancelled and, in fact, was - Continue, // can be cancelled but wasn't - Finished // finished, waiting to be removed from screen - } m_state; - /// the abort button (or NULL if none) - class wxButton *m_btnAbort; - /// the maximum value - int m_maximum; - - DECLARE_EVENT_TABLE() -}; -#endif - // __PROGDLGH_G__ diff --git a/include/wx/generic/question.xpm b/include/wx/generic/question.xpm deleted file mode 100644 index 35e7a56bf9..0000000000 --- a/include/wx/generic/question.xpm +++ /dev/null @@ -1,155 +0,0 @@ -/* XPM */ -static char *question[] = { -/* columns rows colors chars-per-pixel */ -"48 48 101 2", -" c Gray0", -". c Transparent", -"X c #010101010101", -"o c #000000000202", -"O c #000001010202", -"+ c #010101010202", -"@ c #010102020303", -"# c #020202020202", -"$ c #020202020303", -"% c Gray1", -"& c #030305050707", -"* c #040404040404", -"= c #040404040606", -"- c #070707070707", -"; c #060607070808", -": c #060608080a0a", -"> c #060608080b0b", -", c Gray3", -"< c #0d0d0d0d0c0c", -"1 c Gray6", -"2 c #191915150d0d", -"3 c Gray8", -"4 c Gray10", -"5 c #22221c1c1212", -"6 c #393939393939", -"7 c #2b2b3d3d6161", -"8 c #353545456464", -"9 c #65654f4f2424", -"0 c #6b6b55552727", -"q c #6e6e55552626", -"w c #707056562727", -"e c #717159592929", -"r c #73735f5f3b3b", -"t c #7c7c62622d2d", -"y c #7f7f69694141", -"u c Gray39", -"i c #727272727272", -"p c #737375757979", -"a c Gray50", -"s c #808063632d2d", -"d c #828266662f2f", -"f c #87876a6a3131", -"g c #8c8c6d6d3131", -"h c #929273733535", -"j c #939374743535", -"k c #949475753636", -"l c #979777773737", -"z c #99997a7a3b3b", -"x c #9d9d7d7d3a3a", -"c c #a2a27f7f3b3b", -"v c #92927c7c5252", -"b c #a6a682823c3c", -"n c #a8a884843d3d", -"m c #aaaa86863e3e", -"M c #a6a687874848", -"N c #a3a38e8e5555", -"B c #a4a48b8b5a5a", -"V c #b3b38d8d4040", -"C c #b8b892924343", -"Z c #b9b993934444", -"A c #bebe95954444", -"S c #bebe9b9b5353", -"D c #bebea3a36363", -"F c #bfbfa1a16a6a", -"G c #bebea2a27272", -"H c #c0c097974545", -"J c #c3c39f9f5555", -"K c #c3c39f9f5757", -"L c #c9c9a4a45b5b", -"P c #d2d2a6a64c4c", -"I c #d2d2a6a64d4d", -"U c #d8d8abab4e4e", -"Y c #d8d8acac5858", -"T c #d8d8acac5b5b", -"R c #d8d8b1b15f5f", -"E c #c3c3a4a46666", -"W c #c6c6a7a76a6a", -"Q c #c9c9acac7373", -"! c #d2d2b0b06c6c", -"~ c #d8d8b1b16363", -"^ c #d8d8b1b16565", -"/ c #dcdcb4b46363", -"( c #d8d8b5b56e6e", -") c #d8d8b6b66e6e", -"_ c #dadab8b87272", -"` c #ddddbcbc7474", -"' c #d8d8baba7b7b", -"] c #f7f7c3c35a5a", -"[ c #f7f7c9c96d6d", -"{ c #f7f7cfcf7e7e", -"} c #aaaaaaaaaaaa", -"| c #d8d8bebe8686", -" . c #dcdcc4c49494", -".. c #f7f7d4d48c8c", -"X. c #f7f7d8d89999", -"o. c #f7f7dcdca5a5", -"O. c #f7f7dfdfafaf", -"+. c #f7f7e2e2b8b8", -"@. c #f7f7e5e5c0c0", -"#. c Gray100", -"$. c None", -/* pixels */ -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.< $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. c C U x b t $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. U X.X.+.X.' ' ' S b $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. ] O.@.X...] ] ] { ' R b q $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.< ] O.o.] n j j m ] ] { ) R b * $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$. D X.+.] k h ] ] [ R R s 1 $.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.< [ @.{ k o 7 @ K ] { U R b % $.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$. N ..O.U o 8 a a B ] [ R U b # #.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$. I { ] b 8 a #.#. B [ [ ) U d # } #.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$. ] { ] b a #.#.$. B ] ) ) U 9 % } #.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$. / R A d a #.$. E [ ' U b a } #.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$. a #.$. g ! | R U e + a } #.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$. : a #. Z ..| U A 3 a #.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$. a a a a a a - V [ | U U $ a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. a a a a #. ] ..( Y z . 3 a #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. 0 J ._ Q F 2 3 a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. f ! ( L W y & a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. l ' ^ T G . p } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. H ' ~ T v = a #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. U | R U r a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. S ' U A X a #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. M M b s ; } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. 4 6 O a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. O > a #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. a i u a a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.5 , #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. ` { ..A $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. { X.X.U # $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. ....R A # } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. ..) U A # } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. P R A w # } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. # } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. + a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. , , , a a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. a a a } #.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.", -"$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$." -}; diff --git a/include/wx/generic/sashwin.h b/include/wx/generic/sashwin.h deleted file mode 100644 index 847a4054a5..0000000000 --- a/include/wx/generic/sashwin.h +++ /dev/null @@ -1,218 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sashwin.h -// Purpose: wxSashWindow implementation. A sash window has an optional -// sash on each edge, allowing it to be dragged. An event -// is generated when the sash is released. -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SASHWIN_H_G_ -#define _WX_SASHWIN_H_G_ - -#ifdef __GNUG__ -#pragma interface "sashwin.h" -#endif - -#if wxUSE_SASH - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/string.h" - -#define wxSASH_DRAG_NONE 0 -#define wxSASH_DRAG_DRAGGING 1 -#define wxSASH_DRAG_LEFT_DOWN 2 - -enum wxSashEdgePosition { - wxSASH_TOP = 0, - wxSASH_RIGHT, - wxSASH_BOTTOM, - wxSASH_LEFT, - wxSASH_NONE = 100 -}; - -/* - * wxSashEdge represents one of the four edges of a window. - */ - -class WXDLLEXPORT wxSashEdge -{ -public: - wxSashEdge() { m_show = FALSE; m_border = FALSE; m_margin = 0; } - - bool m_show; // Is the sash showing? - bool m_border; // Do we draw a border? - int m_margin; // The margin size -}; - -/* - * wxSashWindow flags - */ - -#define wxSW_3D 0x0004 - -/* - * 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 as a child - * of wxSashWindow. - */ - -class WXDLLEXPORT wxSashWindow: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxSashWindow) - -public: - -//////////////////////////////////////////////////////////////////////////// -// Public API - - // Default constructor - wxSashWindow(); - - // Normal constructor - wxSashWindow(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxSW_3D|wxCLIP_CHILDREN, const wxString& name = "sashWindow"); - ~wxSashWindow(); - - // Set whether there's a sash in this position - void SetSashVisible(wxSashEdgePosition edge, bool sash); - - // Get whether there's a sash in this position - inline bool GetSashVisible(wxSashEdgePosition edge) const { return m_sashes[edge].m_show; } - - // Set whether there's a border in this position - inline void SetSashBorder(wxSashEdgePosition edge, bool border) { m_sashes[edge].m_border = border; } - - // Get whether there's a border in this position - inline bool HasBorder(wxSashEdgePosition edge) const { return m_sashes[edge].m_border; } - - // Get border size - inline int GetEdgeMargin(wxSashEdgePosition edge) const { return m_sashes[edge].m_margin; } - - // Sets the default sash border size - inline void SetDefaultBorderSize(int width) { m_borderSize = width; } - - // Gets the default sash border size - inline int GetDefaultBorderSize() const { return m_borderSize; } - - // Sets the addition border size between child and sash window - inline void SetExtraBorderSize(int width) { m_extraBorderSize = width; } - - // Gets the addition border size between child and sash window - inline int GetExtraBorderSize() const { return m_extraBorderSize; } - - virtual void SetMinimumSizeX(int min) { m_minimumPaneSizeX = min; } - virtual void SetMinimumSizeY(int min) { m_minimumPaneSizeY = min; } - virtual int GetMinimumSizeX() const { return m_minimumPaneSizeX; } - virtual int GetMinimumSizeY() const { return m_minimumPaneSizeY; } - - virtual void SetMaximumSizeX(int max) { m_maximumPaneSizeX = max; } - virtual void SetMaximumSizeY(int max) { m_maximumPaneSizeY = max; } - virtual int GetMaximumSizeX() const { return m_maximumPaneSizeX; } - virtual int GetMaximumSizeY() const { return m_maximumPaneSizeY; } - -//////////////////////////////////////////////////////////////////////////// -// Implementation - - // Paints the border and sash - void OnPaint(wxPaintEvent& event); - - // Handles mouse events - void OnMouseEvent(wxMouseEvent& ev); - - // Adjusts the panes - void OnSize(wxSizeEvent& event); - - // Draws borders - void DrawBorders(wxDC& dc); - - // Draws the sashes - void DrawSash(wxSashEdgePosition edge, wxDC& dc); - - // Draws the sashes - void DrawSashes(wxDC& dc); - - // Draws the sash tracker (for whilst moving the sash) - void DrawSashTracker(wxSashEdgePosition edge, int x, int y); - - // Tests for x, y over sash - wxSashEdgePosition SashHitTest(int x, int y, int tolerance = 2); - - // Resizes subwindows - void SizeWindows(); - - // Initialize colours - void InitColours(); - -protected: - wxSashEdge m_sashes[4]; - int m_dragMode; - wxSashEdgePosition m_draggingEdge; - int m_oldX; - int m_oldY; - int m_borderSize; - int m_extraBorderSize; - int m_firstX; - int m_firstY; - int m_minimumPaneSizeX; - int m_minimumPaneSizeY; - int m_maximumPaneSizeX; - int m_maximumPaneSizeY; - wxCursor* m_sashCursorWE; - wxCursor* m_sashCursorNS; - wxColour m_lightShadowColour; - wxColour m_mediumShadowColour; - wxColour m_darkShadowColour; - wxColour m_hilightColour; - wxColour m_faceColour; - -DECLARE_EVENT_TABLE() -}; - -#define wxEVT_SASH_DRAGGED (wxEVT_FIRST + 1200) - -enum wxSashDragStatus -{ - wxSASH_STATUS_OK, - wxSASH_STATUS_OUT_OF_RANGE -}; - -class WXDLLEXPORT wxSashEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxSashEvent) - - public: - inline wxSashEvent(int id = 0, wxSashEdgePosition edge = wxSASH_NONE) { - m_eventType = (wxEventType) wxEVT_SASH_DRAGGED; m_id = id; m_edge = edge; } - - inline void SetEdge(wxSashEdgePosition edge) { m_edge = edge; } - inline wxSashEdgePosition GetEdge() const { return m_edge; } - - //// The rectangle formed by the drag operation - inline void SetDragRect(const wxRect& rect) { m_dragRect = rect; } - inline wxRect GetDragRect() const { return m_dragRect; } - - //// Whether the drag caused the rectangle to be reversed (e.g. - //// dragging the top below the bottom) - inline void SetDragStatus(wxSashDragStatus status) { m_dragStatus = status; } - inline wxSashDragStatus GetDragStatus() const { return m_dragStatus; } - private: - wxSashEdgePosition m_edge; - wxRect m_dragRect; - wxSashDragStatus m_dragStatus; -}; - -typedef void (wxEvtHandler::*wxSashEventFunction)(wxSashEvent&); - -#define EVT_SASH_DRAGGED(id, fn) { wxEVT_SASH_DRAGGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL }, -#define EVT_SASH_DRAGGED_RANGE(id1, id2, fn) { wxEVT_SASH_DRAGGED, id1, id2, (wxObjectEventFunction) (wxEventFunction) (wxSashEventFunction) & fn, NULL }, - -#endif // wxUSE_SASH - -#endif - // _WX_SASHWIN_H_G_ diff --git a/include/wx/generic/scrolwin.h b/include/wx/generic/scrolwin.h deleted file mode 100644 index 9a29985ec8..0000000000 --- a/include/wx/generic/scrolwin.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolwin.h -// Purpose: wxScrolledWindow class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SCROLWINH_G__ -#define __SCROLWINH_G__ - -#ifdef __GNUG__ -#pragma interface "scrolwin.h" -#endif - -#include "wx/window.h" -#include "wx/panel.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; - -class WXDLLEXPORT wxScrolledWindow: public wxPanel -{ - DECLARE_ABSTRACT_CLASS(wxScrolledWindow) - -public: - wxScrolledWindow(); - inline wxScrolledWindow(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHSCROLL|wxVSCROLL, - const wxString& name = wxPanelNameStr) - { - Create(parent, id, pos, size, style, name); - } - - ~wxScrolledWindow() {} - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxHSCROLL|wxVSCROLL, - const wxString& name = wxPanelNameStr); - - // Set client size - // Should take account of scrollbars -// virtual void SetClientSize(int width, int size); - - // Is the window retained? -// inline bool IsRetained(void) const; - - // Number of pixels per user unit (0 or -1 for no scrollbar) - // Length of virtual canvas in user units - // Length of page in user units - virtual void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, - int noUnitsX, int noUnitsY, - int xPos = 0, int yPos = 0, - bool noRefresh = FALSE ); - - // Physically scroll the window - virtual void Scroll(int x_pos, int y_pos); - -#if WXWIN_COMPATIBILITY - virtual void GetScrollUnitsPerPage(int *x_page, int *y_page) const; -#endif - - int GetScrollPageSize(int orient) const ; - void SetScrollPageSize(int orient, int pageSize); - - virtual void GetScrollPixelsPerUnit(int *x_unit, int *y_unit) const; - // Enable/disable Windows scrolling in either direction. - // If TRUE, wxWindows scrolls the canvas and only a bit of - // the canvas is invalidated; no Clear() is necessary. - // If FALSE, the whole canvas is invalidated and a Clear() is - // necessary. Disable for when the scroll increment is used - // to actually scroll a non-constant distance - virtual void EnableScrolling(bool x_scrolling, bool y_scrolling); - - // Get the view start - virtual void ViewStart(int *x, int *y) const; - - // Actual size in pixels when scrolling is taken into account - virtual void GetVirtualSize(int *x, int *y) const; - - // Set the scale factor, used in PrepareDC - inline void SetScale(double xs, double ys) { m_scaleX = xs; m_scaleY = ys; } - inline double GetScaleX() const { return m_scaleX; } - inline double GetScaleY() const { return m_scaleY; } - - virtual void CalcScrolledPosition(int x, int y, int *xx, int *yy) const ; - virtual void CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const ; - - // Adjust the scrollbars - virtual void AdjustScrollbars(void); - - void OnScroll(wxScrollWinEvent& event); - void OnSize(wxSizeEvent& event); - void OnPaint(wxPaintEvent& event); - - // Override this function to draw the graphic. - virtual void OnDraw(wxDC& WXUNUSED(dc)) {}; - - // Override this function if you don't want to have wxScrolledWindow - // automatically change the origin according to the scroll position. - virtual void PrepareDC(wxDC& dc); - -public: - // IMPLEMENTATION - - // Calculate scroll increment - virtual int CalcScrollInc(wxScrollWinEvent& event); - -protected: - int m_xScrollPixelsPerLine; - int m_yScrollPixelsPerLine; - bool m_xScrollingEnabled; - bool m_yScrollingEnabled; - int m_xScrollPosition; - int m_yScrollPosition; - int m_xScrollLines; - int m_yScrollLines; - int m_xScrollLinesPerPage; - int m_yScrollLinesPerPage; - double m_scaleX; - double m_scaleY; - -DECLARE_EVENT_TABLE() -}; - -#endif - // __SCROLWINH_G__ diff --git a/include/wx/generic/splitter.h b/include/wx/generic/splitter.h deleted file mode 100644 index 17e349a051..0000000000 --- a/include/wx/generic/splitter.h +++ /dev/null @@ -1,338 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: splitter.h -// Purpose: wxSplitterWindow class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SPLITTERH_G__ -#define __SPLITTERH_G__ - -#ifdef __GNUG__ - #pragma interface "splitter.h" -#endif - -#include "wx/window.h" // base class declaration - -class WXDLLEXPORT wxSplitterEvent; - -// --------------------------------------------------------------------------- -// splitter constants -// --------------------------------------------------------------------------- - -enum -{ - wxSPLIT_HORIZONTAL = 1, - wxSPLIT_VERTICAL -}; - -enum -{ - wxSPLIT_DRAG_NONE, - wxSPLIT_DRAG_DRAGGING, - wxSPLIT_DRAG_LEFT_DOWN -}; - -// --------------------------------------------------------------------------- -// wxSplitterWindow maintains one or two panes, with -// an optional vertical or horizontal split which -// can be used with the mouse or programmatically. -// --------------------------------------------------------------------------- - -// TODO: -// 1) Perhaps make the borders sensitive to dragging in order to create a split. -// The MFC splitter window manages scrollbars as well so is able to -// put sash buttons on the scrollbars, but we probably don't want to go down -// this path. -// 2) for wxWindows 2.0, we must find a way to set the WS_CLIPCHILDREN style -// to prevent flickering. (WS_CLIPCHILDREN doesn't work in all cases so can't be -// standard). - -class WXDLLEXPORT wxSplitterWindow: public wxWindow -{ -public: - -//////////////////////////////////////////////////////////////////////////// -// Public API - - // Default constructor - wxSplitterWindow(); - - // Normal constructor - wxSplitterWindow(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_3D|wxCLIP_CHILDREN, - const wxString& name = "splitter"); - ~wxSplitterWindow(); - - // Gets the only or left/top pane - wxWindow *GetWindow1() const { return m_windowOne; } - - // Gets the right/bottom pane - wxWindow *GetWindow2() const { return m_windowTwo; } - - // Sets the split mode - void SetSplitMode(int mode) { m_splitMode = mode; } - - // Gets the split mode - int GetSplitMode() const { return m_splitMode; }; - - // Initialize with one window - void Initialize(wxWindow *window); - - // Associates the given window with window 2, drawing the appropriate sash - // and changing the split mode. - // Does nothing and returns FALSE if the window is already split. - // A sashPosition of 0 means choose a default sash position, - // negative sashPosition specifies the size of right/lower pane as it's - // absolute value rather than the size of left/upper pane. - virtual bool SplitVertically(wxWindow *window1, - wxWindow *window2, - int sashPosition = 0); - virtual bool SplitHorizontally(wxWindow *window1, - wxWindow *window2, - int sashPosition = 0); - - // Removes the specified (or second) window from the view - // Doesn't actually delete the window. - bool Unsplit(wxWindow *toRemove = (wxWindow *) NULL); - - // Replaces one of the windows with another one (neither old nor new - // parameter should be NULL) - bool ReplaceWindow(wxWindow *winOld, wxWindow *winNew); - - // Is the window split? - bool IsSplit() const { return (m_windowTwo != NULL); } - - // Sets the sash size - void SetSashSize(int width) { m_sashSize = width; } - - // Sets the border size - void SetBorderSize(int width) { m_borderSize = width; } - - // Gets the sash size - int GetSashSize() const { return m_sashSize; } - - // Gets the border size - int GetBorderSize() const { return m_borderSize; } - - // Set the sash position - void SetSashPosition(int position, bool redraw = TRUE); - - // Gets the sash position - int GetSashPosition() const { return m_sashPosition; } - - // If this is zero, we can remove panes by dragging the sash. - void SetMinimumPaneSize(int min) { m_minimumPaneSize = min; } - int GetMinimumPaneSize() const { return m_minimumPaneSize; } - - // Called when the sash position is about to be changed, return - // FALSE from here to prevent the change from taking place. - // Repositions sash to minimum position if pane would be too small. - // newSashPosition here is always positive or zero. - virtual bool OnSashPositionChange(int WXUNUSED(newSashPosition)) - { return TRUE; } - - // If the sash is moved to an extreme position, a subwindow - // is removed from the splitter window, and the app is - // notified. The app should delete or hide the window. - virtual void OnUnsplit(wxWindow *WXUNUSED(removed)) { } - - // Called when the sash is double-clicked. - // The default behaviour is to remove the sash if the - // minimum pane size is zero. - virtual void OnDoubleClickSash(int WXUNUSED(x), int WXUNUSED(y)) { } - -//////////////////////////////////////////////////////////////////////////// -// Implementation - - // Paints the border and sash - void OnPaint(wxPaintEvent& event); - - // Handles mouse events - void OnMouseEvent(wxMouseEvent& ev); - - // Adjusts the panes - void OnSize(wxSizeEvent& event); - - // In live mode, resize child windows in idle time - void OnIdle(wxIdleEvent& event); - - // Draws borders - void DrawBorders(wxDC& dc); - - // Draws the sash - void DrawSash(wxDC& dc); - - // Draws the sash tracker (for whilst moving the sash) - void DrawSashTracker(int x, int y); - - // Tests for x, y over sash - bool SashHitTest(int x, int y, int tolerance = 2); - - // Resizes subwindows - void SizeWindows(); - - // Initialize colours - void InitColours(); - -protected: - // our event handlers - void OnSashPosChanged(wxSplitterEvent& event); - void OnSashPosChanging(wxSplitterEvent& event); - void OnDoubleClick(wxSplitterEvent& event); - void OnUnsplitEvent(wxSplitterEvent& event); - - void SendUnsplitEvent(wxWindow *winRemoved); - - int m_splitMode; - bool m_permitUnsplitAlways; - bool m_needUpdating; // when in live mode, set the to TRUE to resize children in idle - wxWindow* m_windowOne; - wxWindow* m_windowTwo; - int m_dragMode; - int m_oldX; - int m_oldY; - int m_borderSize; - int m_sashSize; // Sash width or height - int m_sashPosition; // Number of pixels from left or top - int m_firstX; - int m_firstY; - int m_minimumPaneSize; - wxCursor* m_sashCursorWE; - wxCursor* m_sashCursorNS; - wxPen* m_sashTrackerPen; - wxPen* m_lightShadowPen; - wxPen* m_mediumShadowPen; - wxPen* m_darkShadowPen; - wxPen* m_hilightPen; - wxBrush* m_faceBrush; - wxPen* m_facePen; - -private: - DECLARE_DYNAMIC_CLASS(wxSplitterWindow) - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// event class and macros -// ---------------------------------------------------------------------------- - -// we reuse the same class for all splitter event types because this is the -// usual wxWin convention, but the three event types have different kind of -// data associated with them, so the accessors can be only used if the real -// event type matches with the one for which the accessors make sense -class WXDLLEXPORT wxSplitterEvent : public wxCommandEvent -{ -public: - wxSplitterEvent(wxEventType type = wxEVT_NULL, - wxSplitterWindow *splitter = (wxSplitterWindow *)NULL) - : wxCommandEvent(type) - { - SetEventObject(splitter); - } - - // SASH_POS_CHANGED methods - - // setting the sash position to -1 prevents the change from taking place at - // all - void SetSashPosition(int pos) - { - wxASSERT( GetEventType() == wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED - || GetEventType() == wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING); - - m_data.pos = pos; - } - - int GetSashPosition() const - { - wxASSERT( GetEventType() == wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED - || GetEventType() == wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING); - - return m_data.pos; - } - - // UNSPLIT event methods - wxWindow *GetWindowBeingRemoved() const - { - wxASSERT( GetEventType() == wxEVT_COMMAND_SPLITTER_UNSPLIT ); - - return m_data.win; - } - - // DCLICK event methods - int GetX() const - { - wxASSERT( GetEventType() == wxEVT_COMMAND_SPLITTER_DOUBLECLICKED ); - - return m_data.pt.x; - } - - int GetY() const - { - wxASSERT( GetEventType() == wxEVT_COMMAND_SPLITTER_DOUBLECLICKED ); - - return m_data.pt.y; - } - -private: - friend wxSplitterWindow; - - // data for the different types of event - union - { - int pos; // position for SASH_POS_CHANGED event - wxWindow *win; // window being removed for UNSPLIT event - struct - { - int x, y; - } pt; // position of double click for DCLICK event - } m_data; - - DECLARE_DYNAMIC_CLASS(wxSplitterEvent) -}; - -typedef void (wxEvtHandler::*wxSplitterEventFunction)(wxSplitterEvent&); - -#define EVT_SPLITTER_SASH_POS_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn, \ - NULL \ - }, - -#define EVT_SPLITTER_SASH_POS_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn, \ - NULL \ - }, - -#define EVT_SPLITTER_DCLICK(id, fn) \ - { \ - wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn, \ - NULL \ - }, - -#define EVT_SPLITTER_UNSPLIT(id, fn) \ - { \ - wxEVT_COMMAND_SPLITTER_UNSPLIT, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxSplitterEventFunction) &fn, \ - NULL \ - }, - -#endif // __SPLITTERH_G__ diff --git a/include/wx/generic/statusbr.h b/include/wx/generic/statusbr.h deleted file mode 100644 index 0c85830028..0000000000 --- a/include/wx/generic/statusbr.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statusbr.h -// Purpose: wxStatusBar class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __STATUSBRH_G__ -#define __STATUSBRH_G__ - -#ifdef __GNUG__ -#pragma interface "statusbr.h" -#endif - -#include "wx/window.h" -#include "wx/pen.h" -#include "wx/font.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxPanelNameStr; - -class WXDLLEXPORT wxStatusBar: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxStatusBar) - -public: - wxStatusBar(void); - inline wxStatusBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Create(parent, id, pos, size, style, name); - } - - ~wxStatusBar(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // Create status line - virtual void SetFieldsCount(int number=1, const int widths[] = (const int *) NULL); - inline int GetFieldsCount() const { return m_nFields; } - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - virtual wxString GetStatusText(int number = 0) const; - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - virtual void DrawFieldText(wxDC& dc, int i); - virtual void DrawField(wxDC& dc, int i); - - // Get the position and size of the field's internal bounding rectangle - virtual bool GetFieldRect(int i, wxRect& rect) const; - - inline int GetBorderX() const { return m_borderX; } - inline int GetBorderY() const { return m_borderY; } - inline void SetBorderX(int x); - inline void SetBorderY(int y); - - //////////////////////////////////////////////////////////////////////// - // Implementation - - void OnPaint(wxPaintEvent& event); - - virtual void InitColours(); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -protected: - int * m_statusWidths; - int m_nFields; - wxString * m_statusStrings; - int m_borderX; - int m_borderY; - wxFont m_defaultStatusBarFont; - wxPen m_mediumShadowPen; - wxPen m_hilightPen; - - DECLARE_EVENT_TABLE() -}; - -#endif - // __STATUSBRH_G__ diff --git a/include/wx/generic/tabg.h b/include/wx/generic/tabg.h deleted file mode 100644 index c78b18a470..0000000000 --- a/include/wx/generic/tabg.h +++ /dev/null @@ -1,351 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabg.h -// Purpose: Generic tabbed dialogs -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TABGH_G__ -#define __TABGH_G__ - -#ifdef __GNUG__ -#pragma interface "tabg.h" -#endif - -#define WXTAB_VERSION 1.1 - -#include "wx/hash.h" -#include "wx/string.h" -#include "wx/dialog.h" - -class WXDLLEXPORT wxTabView; - -/* - * A wxTabControl is the internal and visual representation - * of the tab. - */ - -class WXDLLEXPORT wxTabControl: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxTabControl) -public: - wxTabControl(wxTabView *v = (wxTabView *) NULL); - ~wxTabControl(void); - - virtual void OnDraw(wxDC& dc, bool lastInRow); - void SetLabel(const wxString& str) { m_controlLabel = str; } - wxString GetLabel(void) const { return m_controlLabel; } - - void SetFont(const wxFont& f) { m_labelFont = f; } - wxFont *GetFont(void) const { return (wxFont*) & m_labelFont; } - - void SetSelected(bool sel) { m_isSelected = sel; } - bool IsSelected(void) const { return m_isSelected; } - - void SetPosition(int x, int y) { m_offsetX = x; m_offsetY = y; } - void SetSize(int x, int y) { m_width = x; m_height = y; } - - void SetRowPosition(int r) { m_rowPosition = r; } - int GetRowPosition() const { return m_rowPosition; } - void SetColPosition(int c) { m_colPosition = c; } - int GetColPosition() const { return m_colPosition; } - - int GetX(void) const { return m_offsetX; } - int GetY(void) const { return m_offsetY; } - int GetWidth(void) const { return m_width; } - int GetHeight(void) const { return m_height; } - - int GetId(void) const { return m_id; } - void SetId(int i) { m_id = i; } - - virtual bool HitTest(int x, int y) const ; - -protected: - wxTabView* m_view; - wxString m_controlLabel; - bool m_isSelected; - wxFont m_labelFont; - int m_offsetX; // Offsets from top-left of tab view area (the area below the tabs) - int m_offsetY; - int m_width; - int m_height; - int m_id; - int m_rowPosition; // Position in row from 0 - int m_colPosition; // Position in col from 0 -}; - -/* - * Each wxTabLayer is a list of tabs. E.g. there - * are 3 layers in the MS Word Options dialog. - */ - -class WXDLLEXPORT wxTabLayer: public wxList -{ - DECLARE_DYNAMIC_CLASS(wxTabLayer) -}; - -/* - * The wxTabView controls and draws the tabbed object - */ - -#define wxTAB_STYLE_DRAW_BOX 1 // Draws 3D boxes round tab layers -#define wxTAB_STYLE_COLOUR_INTERIOR 2 // Colours interior of tabs, otherwise draws outline - -class WXDLLEXPORT wxTabView: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxTabView) -public: - wxTabView(long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR); - ~wxTabView(); - - inline int GetNumberOfLayers() const { return m_layers.Number(); } - inline wxList& GetLayers() { return m_layers; } - - inline void SetWindow(wxWindow* wnd) { m_window = wnd; } - inline wxWindow* GetWindow(void) const { return m_window; } - - // Automatically positions tabs - wxTabControl *AddTab(int id, const wxString& label, wxTabControl *existingTab = (wxTabControl *) NULL); - - // Remove the tab without deleting the window - bool RemoveTab(int id); - - void ClearTabs(bool deleteTabs = TRUE); - - bool SetTabText(int id, const wxString& label); - wxString GetTabText(int id) const; - - // Layout tabs (optional, e.g. if resizing window) - void LayoutTabs(); - - // Draw all tabs - virtual void Draw(wxDC& dc); - - // Process mouse event, return FALSE if we didn't process it - virtual bool OnEvent(wxMouseEvent& event); - - // Called when a tab is activated - virtual void OnTabActivate(int activateId, int deactivateId); - // Allows vetoing - virtual bool OnTabPreActivate(int WXUNUSED(activateId), int WXUNUSED(deactivateId) ) { return TRUE; }; - - // Allows use of application-supplied wxTabControl classes. - virtual wxTabControl *OnCreateTabControl(void) { return new wxTabControl(this); } - - void SetHighlightColour(const wxColour& col); - void SetShadowColour(const wxColour& col); - void SetBackgroundColour(const wxColour& col); - inline void SetTextColour(const wxColour& col) { m_textColour = col; } - - inline wxColour GetHighlightColour(void) const { return m_highlightColour; } - inline wxColour GetShadowColour(void) const { return m_shadowColour; } - inline wxColour GetBackgroundColour(void) const { return m_backgroundColour; } - inline wxColour GetTextColour(void) const { return m_textColour; } - inline wxPen *GetHighlightPen(void) const { return m_highlightPen; } - inline wxPen *GetShadowPen(void) const { return m_shadowPen; } - inline wxPen *GetBackgroundPen(void) const { return m_backgroundPen; } - inline wxBrush *GetBackgroundBrush(void) const { return m_backgroundBrush; } - - inline void SetViewRect(const wxRect& rect) { m_tabViewRect = rect; } - inline wxRect GetViewRect(void) const { return m_tabViewRect; } - - // Calculate tab width to fit to view, and optionally adjust the view - // to fit the tabs exactly. - int CalculateTabWidth(int noTabs, bool adjustView = FALSE); - - inline void SetTabStyle(long style) { m_tabStyle = style; } - inline long GetTabStyle(void) const { return m_tabStyle; } - - inline void SetTabSize(int w, int h) { m_tabWidth = w; m_tabHeight = h; } - inline int GetTabWidth(void) const { return m_tabWidth; } - inline int GetTabHeight(void) const { return m_tabHeight; } - inline void SetTabSelectionHeight(int h) { m_tabSelectionHeight = h; } - inline int GetTabSelectionHeight(void) const { return m_tabSelectionHeight; } - - // Returns the total height of the tabs component -- this may be several - // times the height of a tab, if there are several tab layers (rows). - int GetTotalTabHeight(); - - inline int GetTopMargin(void) const { return m_topMargin; } - inline void SetTopMargin(int margin) { m_topMargin = margin; } - - void SetTabSelection(int sel, bool activateTool = TRUE); - inline int GetTabSelection() const { return m_tabSelection; } - - // Find tab control for id - wxTabControl *FindTabControlForId(int id) const ; - - // Find tab control for layer, position (starting from zero) - wxTabControl *FindTabControlForPosition(int layer, int position) const ; - - inline int GetHorizontalTabOffset() const { return m_tabHorizontalOffset; } - inline int GetHorizontalTabSpacing() const { return m_tabHorizontalSpacing; } - inline void SetHorizontalTabOffset(int sp) { m_tabHorizontalOffset = sp; } - inline void SetHorizontalTabSpacing(int sp) { m_tabHorizontalSpacing = sp; } - - inline void SetVerticalTabTextSpacing(int s) { m_tabVerticalTextSpacing = s; } - inline int GetVerticalTabTextSpacing() const { return m_tabVerticalTextSpacing; } - - inline wxFont *GetTabFont() const { return (wxFont*) & m_tabFont; } - inline void SetTabFont(const wxFont& f) { m_tabFont = f; } - - inline wxFont *GetSelectedTabFont() const { return (wxFont*) & m_tabSelectedFont; } - inline void SetSelectedTabFont(const wxFont& f) { m_tabSelectedFont = f; } - // Find the node and the column at which this control is positioned. - wxNode *FindTabNodeAndColumn(wxTabControl *control, int *col) const ; - - // Do the necessary to change to this tab - virtual bool ChangeTab(wxTabControl *control); - - // Move the selected tab to the bottom layer, if necessary, - // without calling app activation code - bool MoveSelectionTab(wxTabControl *control); - - inline int GetNumberOfTabs() const { return m_noTabs; } - -protected: - // List of layers, from front to back. - wxList m_layers; - - // Selected tab - int m_tabSelection; - - // Usual tab height - int m_tabHeight; - - // The height of the selected tab - int m_tabSelectionHeight; - - // Usual tab width - int m_tabWidth; - - // Space between tabs - int m_tabHorizontalSpacing; - - // Space between top of normal tab and text - int m_tabVerticalTextSpacing; - - // Horizontal offset of each tab row above the first - int m_tabHorizontalOffset; - - // The distance between the bottom of the first tab row - // and the top of the client area (i.e. the margin) - int m_topMargin; - - // The position and size of the view above which the tabs are placed. - // I.e., the internal client area of the sheet. - wxRect m_tabViewRect; - - // Bitlist of styles - long m_tabStyle; - - // Colours - wxColour m_highlightColour; - wxColour m_shadowColour; - wxColour m_backgroundColour; - wxColour m_textColour; - - // Pen and brush cache - wxPen* m_highlightPen; - wxPen* m_shadowPen; - wxPen* m_backgroundPen; - wxBrush* m_backgroundBrush; - - wxFont m_tabFont; - wxFont m_tabSelectedFont; - - int m_noTabs; - - wxWindow* m_window; -}; - -/* - * A dialog box class that is tab-friendly - */ - -class WXDLLEXPORT wxTabbedDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxTabbedDialog) - -public: - - wxTabbedDialog(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long windowStyle = wxDEFAULT_DIALOG_STYLE, const wxString& name = wxDialogNameStr); - ~wxTabbedDialog(void); - - inline wxTabView *GetTabView() const { return m_tabView; } - inline void SetTabView(wxTabView *v) { m_tabView = v; } - - void OnCloseWindow(wxCloseEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - -protected: - wxTabView* m_tabView; - -DECLARE_EVENT_TABLE() -}; - -/* - * A panel class that is tab-friendly - */ - -class WXDLLEXPORT wxTabbedPanel: public wxPanel -{ -DECLARE_DYNAMIC_CLASS(wxTabbedPanel) - -public: - - wxTabbedPanel(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long windowStyle = 0, const wxString& name = wxPanelNameStr); - ~wxTabbedPanel(void); - - inline wxTabView *GetTabView() const { return m_tabView; } - inline void SetTabView(wxTabView *v) { m_tabView = v; } - - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - -protected: - wxTabView* m_tabView; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxPanelTabView: public wxTabView -{ -DECLARE_DYNAMIC_CLASS(wxPanelTabView) -public: - wxPanelTabView(wxPanel *pan, long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR); - ~wxPanelTabView(void); - - // Called when a tab is activated - virtual void OnTabActivate(int activateId, int deactivateId); - - // Specific to this class - void AddTabWindow(int id, wxWindow *window); - wxWindow *GetTabWindow(int id) const ; - void ClearWindows(bool deleteWindows = TRUE); - inline wxWindow *GetCurrentWindow() const { return m_currentWindow; } - - void ShowWindowForTab(int id); - inline wxList& GetWindows() const { return (wxList&) m_tabWindows; } - -protected: - // List of panels, one for each tab. Indexed - // by tab ID. - wxList m_tabWindows; - wxWindow* m_currentWindow; - wxPanel* m_panel; -}; - -#endif - diff --git a/include/wx/generic/textdlgg.h b/include/wx/generic/textdlgg.h deleted file mode 100644 index e93dd84f5b..0000000000 --- a/include/wx/generic/textdlgg.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textdlgg.h -// Purpose: wxStatusBar class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TEXTDLGH_G__ -#define __TEXTDLGH_G__ - -#ifdef __GNUG__ -#pragma interface "textdlgg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -// Handy dialog functions (will be converted into classes at some point) -WXDLLEXPORT_DATA(extern const wxChar*) wxGetTextFromUserPromptStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -#define wxID_TEXT 3000 - -class WXDLLEXPORT wxTextEntryDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxTextEntryDialog) -protected: - long m_dialogStyle; - wxString m_value; -public: - wxTextEntryDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxGetTextFromUserPromptStr, - const wxString& value = wxEmptyString, long style = wxOK|wxCANCEL|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - inline void SetValue(const wxString& val) { m_value = val; } - inline wxString GetValue(void) const { return m_value; } - - void OnOK(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -wxString WXDLLEXPORT wxGetTextFromUser(const wxString& message, const wxString& caption = wxGetTextFromUserPromptStr, - const wxString& default_value = wxEmptyString, wxWindow *parent = (wxWindow *) NULL, - int x = -1, int y = -1, bool centre = TRUE); - -#endif - // __TEXTDLGH_G__ diff --git a/include/wx/generic/treectrl.h b/include/wx/generic/treectrl.h deleted file mode 100644 index 9e57b50785..0000000000 --- a/include/wx/generic/treectrl.h +++ /dev/null @@ -1,503 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h -// Purpose: wxTreeCtrl class -// Author: Robert Roebling -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) 1997,1998 Robert Roebling -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _GENERIC_TREECTRL_H_ -#define _GENERIC_TREECTRL_H_ - -#ifdef __GNUG__ - #pragma interface "treectrl.h" -#endif - -#ifdef __WXMSW__ -WXDLLEXPORT_DATA(extern const char*) wxTreeCtrlNameStr; -#else -#define wxTreeCtrlNameStr "wxTreeCtrl" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/object.h" -#include "wx/event.h" -#include "wx/scrolwin.h" -#include "wx/textctrl.h" -#include "wx/pen.h" - -// ----------------------------------------------------------------------------- -// constants -// ----------------------------------------------------------------------------- - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0020; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0080; - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL; - -// ----------------------------------------------------------------------------- -// forward declaration -// ----------------------------------------------------------------------------- - -class wxImageList; -class wxGenericTreeItem; - -class wxTreeItemData; - -// ----------------------------------------------------------------------------- -// wxTreeItemId - unique identifier of a tree element -// ----------------------------------------------------------------------------- - -class WXDLLEXPORT wxTreeItemId -{ -friend class wxTreeCtrl; -friend class wxTreeEvent; -public: - // ctors - // 0 is invalid value for HTREEITEM - wxTreeItemId() { m_pItem = 0; } - - // default copy ctor/assignment operator are ok for us - - // accessors - // is this a valid tree item? - bool IsOk() const { return m_pItem != 0; } - - // deprecated: only for compatibility - wxTreeItemId(long itemId) { m_pItem = (wxGenericTreeItem *)itemId; } - operator long() const { return (long)m_pItem; } - -//protected: // not for gcc - // for wxTreeCtrl usage only - wxTreeItemId(wxGenericTreeItem *pItem) { m_pItem = pItem; } - - wxGenericTreeItem *m_pItem; -}; - -// ---------------------------------------------------------------------------- -// wxTreeItemData is some (arbitrary) user class associated with some item. -// -// Because the objects of this class are deleted by the tree, they should -// always be allocated on the heap! -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemData: public wxClientData -{ -friend class wxTreeCtrl; -public: - // creation/destruction - // -------------------- - // default ctor - wxTreeItemData() { } - - // default copy ctor/assignment operator are ok - - // accessor: get the item associated with us - const wxTreeItemId& GetId() const { return m_pItem; } - void SetId(const wxTreeItemId& id) { m_pItem = id; } - -protected: - wxTreeItemId m_pItem; -}; - -// ----------------------------------------------------------------------------- -// wxTreeEvent - the event generated by the tree control -// ----------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeEvent : public wxNotifyEvent -{ -friend class wxTreeCtrl; -public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - // accessors - // get the item on which the operation was performed or the newly - // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events - wxTreeItemId GetItem() const { return m_item; } - - // for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events, get the previously - // selected item - wxTreeItemId GetOldItem() const { return m_itemOld; } - - // the point where the mouse was when the drag operation started (for - // wxEVT_COMMAND_TREE_BEGIN_(R)DRAG events only) - wxPoint GetPoint() const { return m_pointDrag; } - - // keyboard code (for wxEVT_COMMAND_TREE_KEY_DOWN only) - int GetCode() const { return m_code; } - - // set return code for wxEVT_COMMAND_TREE_ITEM_{EXPAND|COLLAPS}ING events - // call this to forbid the change in item status - void Veto() { m_code = TRUE; } - - // for implementation usage only - bool WasVetoed() const { return m_code; } - -private: - // @@ we could save some space by using union here - int m_code; - wxTreeItemId m_item, - m_itemOld; - wxPoint m_pointDrag; - - DECLARE_DYNAMIC_CLASS(wxTreeEvent) -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -// ---------------------------------------------------------------------------- -// macros for handling tree control events -// ---------------------------------------------------------------------------- - -// GetItem() returns the item being dragged, GetPoint() the mouse coords -#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() returns the itme whose label is being edited -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// provide/update information about GetItem() item -#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() is the item being expanded/collapsed, the "ING" versions can use -#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetOldItem() is the item which had the selection previously, GetItem() is -// the item which acquires selection -#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, -#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetCode() returns the key code -// NB: this is the only message for which GetItem() is invalid (you may get the -// item from GetSelection()) -#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetItem() returns the item being deleted, the associated data (if any) will -// be deleted just after the return of this event handler (if any) -#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() returns the item that was activated (double click, enter, space) -#define EVT_TREE_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_TREE_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// ----------------------------------------------------------------------------- -// wxTreeCtrl - the tree control -// ----------------------------------------------------------------------------- - -class WXDLLEXPORT wxTreeCtrl : public wxScrolledWindow -{ -public: - // creation - // -------- - wxTreeCtrl() { Init(); } - - wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator &validator = wxDefaultValidator, - const wxString& name = wxTreeCtrlNameStr); - - // accessors - // --------- - - // get the total number of items in the control - size_t GetCount() const; - - // indent is the number of pixels the children are indented relative to - // the parents position. SetIndent() also redraws the control - // immediately. - unsigned int GetIndent() const { return m_indent; } - void SetIndent(unsigned int indent); - - // spacing is the number of pixels between the start and the Text - unsigned int GetSpacing() const { return m_spacing; } - void SetSpacing(unsigned int spacing); - - // image list: these functions allow to associate an image list with - // the control and retrieve it. Note that the control does _not_ delete - // the associated image list when it's deleted in order to allow image - // lists to be shared between different controls. - // - // The normal image list is for the icons which correspond to the - // normal tree item state (whether it is selected or not). - // Additionally, the application might choose to show a state icon - // which corresponds to an app-defined item state (for example, - // checked/unchecked) which are taken from the state image list. - wxImageList *GetImageList() const; - wxImageList *GetStateImageList() const; - - void SetImageList(wxImageList *imageList); - void SetStateImageList(wxImageList *imageList); - - // Functions to work with tree ctrl items. - - // accessors - // --------- - - // retrieve items label - wxString GetItemText(const wxTreeItemId& item) const; - // get the normal item image - int GetItemImage(const wxTreeItemId& item) const; - // get the selected item image - int GetItemSelectedImage(const wxTreeItemId& item) const; - // get the data associated with the item - wxTreeItemData *GetItemData(const wxTreeItemId& item) const; - - // modifiers - // --------- - - // set items label - void SetItemText(const wxTreeItemId& item, const wxString& text); - // set the normal item image - void SetItemImage(const wxTreeItemId& item, int image); - // set the selected item image - void SetItemSelectedImage(const wxTreeItemId& item, int image); - // associate some data with the item - void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); - - // force appearance of [+] button near the item. This is useful to - // allow the user to expand the items which don't have any children now - // - but instead add them only when needed, thus minimizing memory - // usage and loading time. - void SetItemHasChildren(const wxTreeItemId& item, bool has = TRUE); - - // the item will be shown in bold - void SetItemBold(const wxTreeItemId& item, bool bold = TRUE); - - // item status inquiries - // --------------------- - - // is the item visible (it might be outside the view or not expanded)? - bool IsVisible(const wxTreeItemId& item) const; - // does the item has any children? - bool HasChildren(const wxTreeItemId& item) const - { return ItemHasChildren(item); } - bool ItemHasChildren(const wxTreeItemId& item) const; - // is the item expanded (only makes sense if HasChildren())? - bool IsExpanded(const wxTreeItemId& item) const; - // is this item currently selected (the same as has focus)? - bool IsSelected(const wxTreeItemId& item) const; - // is item text in bold font? - bool IsBold(const wxTreeItemId& item) const; - - // number of children - // ------------------ - - // if 'recursively' is FALSE, only immediate children count, otherwise - // the returned number is the number of all items in this branch - size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); - - // navigation - // ---------- - - // wxTreeItemId.IsOk() will return FALSE if there is no such item - - // get the root tree item - wxTreeItemId GetRootItem() const { return m_anchor; } - - // get the item currently selected (may return NULL if no selection) - wxTreeItemId GetSelection() const { return m_current; } - - // get the items currently selected, return the number of such item - //size_t GetSelections(wxArrayTreeItems*) const; - - // get the parent of this item (may return NULL if root) - wxTreeItemId GetParent(const wxTreeItemId& item) const; - - // 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). Of course, - // the "cookie" passed to GetFirstChild() and GetNextChild() should be - // the same! - - // get the first child of this item - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; - // get the next child - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; - // get the last child of this item - this method doesn't use cookies - wxTreeItemId GetLastChild(const wxTreeItemId& item) const; - - // get the next sibling of this item - wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; - // get the previous sibling - wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const; - - // get first visible item - wxTreeItemId GetFirstVisibleItem() const; - // get the next visible item: item must be visible itself! - // see IsVisible() and wxTreeCtrl::GetFirstVisibleItem() - wxTreeItemId GetNextVisible(const wxTreeItemId& item) const; - // get the previous visible item: item must be visible itself! - wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; - - // operations - // ---------- - - // add the root node to the tree - wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the first child of the parent - wxTreeItemId PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item after a given one - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the last child of the parent - wxTreeItemId AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // delete this item and associated data if any - void Delete(const wxTreeItemId& item); - // delete all children (but don't delete the item itself) - // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events - void DeleteChildren(const wxTreeItemId& item); - // delete all items from the tree - // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events - void DeleteAllItems(); - - // expand this item - void Expand(const wxTreeItemId& item); - // collapse the item without removing its children - void Collapse(const wxTreeItemId& item); - // collapse the item and remove all children - void CollapseAndReset(const wxTreeItemId& item); - // toggles the current state - void Toggle(const wxTreeItemId& item); - - // remove the selection from currently selected item (if any) - void Unselect(); - void UnselectAll(); - // select this item - void SelectItem(const wxTreeItemId& item, bool unselect_others=TRUE, bool extended_select=FALSE); - // make sure this item is visible (expanding the parent item and/or - // scrolling to this item if necessary) - void EnsureVisible(const wxTreeItemId& item); - // scroll to this item (but don't expand its parent) - void ScrollTo(const wxTreeItemId& item); - - // The first function is more portable (because easier to implement - // on other platforms), but the second one returns some extra info. - wxTreeItemId HitTest(const wxPoint& point) - { int dummy; return HitTest(point, dummy); } - wxTreeItemId HitTest(const wxPoint& point, int& flags); - - // start editing the item label: this (temporarily) replaces the item - // with a one line edit control. The item will be selected if it hadn't - // been before. textCtrlClass parameter allows you to create an edit - // control of arbitrary user-defined class deriving from wxTextCtrl. - wxTextCtrl* EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); - // returns the same pointer as StartEdit() if the item is being edited, - // NULL otherwise (it's assumed that no more than one item may be - // edited simultaneously) - wxTextCtrl* GetEditControl() const; - // end editing and accept or discard the changes to item label - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); - - // sorting - // this function is called to compare 2 items and should return -1, 0 - // or +1 if the first item is less than, equal to or greater than the - // second one. The base class version performs alphabetic comparaison - // of item labels (GetText) - virtual int OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2); - // sort the children of this item using OnCompareItems - // - // NB: this function is not reentrant and not MT-safe (FIXME)! - void SortChildren(const wxTreeItemId& item); - - // callbacks - void OnPaint( wxPaintEvent &event ); - void OnSetFocus( wxFocusEvent &event ); - void OnKillFocus( wxFocusEvent &event ); - void OnChar( wxKeyEvent &event ); - void OnMouse( wxMouseEvent &event ); - void OnIdle( wxIdleEvent &event ); - - // implementation - void SendDeleteEvent(wxGenericTreeItem *itemBeingDeleted); - -protected: - wxGenericTreeItem *m_anchor; - wxGenericTreeItem *m_current; - bool m_hasFocus; - bool m_dirty; - int m_xScroll,m_yScroll; - unsigned int m_indent; - unsigned int m_spacing; - int m_lineHeight; - wxPen m_dottedPen; - wxBrush *m_hilightBrush; - wxImageList *m_imageListNormal, - *m_imageListState; - int m_dragCount; - - // the common part of all ctors - void Init(); - - // misc helpers - wxTreeItemId DoInsertItem(const wxTreeItemId& parent, - size_t previous, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data); - - void AdjustMyScrollbars(); - void PaintLevel( wxGenericTreeItem *item, wxDC& dc, int level, int &y ); - void PaintItem( wxGenericTreeItem *item, wxDC& dc); - - void CalculateLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y ); - void CalculatePositions(); - - void RefreshSubtree( wxGenericTreeItem *item ); - void RefreshLine( wxGenericTreeItem *item ); - - void SelectItemRange( wxGenericTreeItem *item1, wxGenericTreeItem *item2 ); - bool TagAllChildrenUntilLast(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select); - bool TagNextChildren(wxGenericTreeItem *crt_item, wxGenericTreeItem *last_item, bool select); - void UnselectAllChildren( wxGenericTreeItem *item ); - -private: - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -#endif // _GENERIC_TREECTRL_H_ - diff --git a/include/wx/generic/warning.xpm b/include/wx/generic/warning.xpm deleted file mode 100644 index bf3aeac4bc..0000000000 --- a/include/wx/generic/warning.xpm +++ /dev/null @@ -1,324 +0,0 @@ -/* XPM */ -static char *warning[] = { -/* columns rows colors chars-per-pixel */ -"48 48 270 2", -" c Gray0", -". c #010100000000", -"X c #010101010000", -"o c #010101010101", -"O c #020201010000", -"+ c #030301010000", -"@ c #020202020000", -"# c #020202020202", -"$ c Gray1", -"% c #040403030000", -"& c #050504040000", -"* c #070704040000", -"= c #040404040404", -"- c Gray2", -"; c #060606060606", -": c #090907070000", -"> c #090907070101", -", c #0e0e03030202", -"< c #0d0d04040303", -"1 c #0a0a08080000", -"2 c #0b0b09090000", -"3 c #0e0e0b0b0000", -"4 c Gray3", -"5 c #090909090909", -"6 c Gray4", -"7 c #0b0b0b0b0b0b", -"8 c Gray6", -"9 c #171704040202", -"0 c #10100d0d0101", -"q c #13130f0f0000", -"w c #13130f0f0101", -"e c #1c1c07070505", -"r c #151510100101", -"t c #191913130000", -"y c #1d1d16160202", -"u c #1e1e17170202", -"i c #111111111111", -"p c #161616161616", -"a c #212107070505", -"s c #222207070505", -"d c #232307070404", -"f c #232307070505", -"g c #262608080606", -"h c #2b2b0a0a0707", -"j c #2c2c08080505", -"k c #2e2e08080505", -"l c #2e2e09090606", -"z c #2e2e0a0a0808", -"x c #24241c1c0303", -"c c #25251d1d0202", -"v c #25251d1d0303", -"b c #27271e1e0202", -"n c #3b3b0b0b0707", -"m c #3b3b0c0c0909", -"M c #3c3c0c0c0909", -"N c #3d3d0c0c0909", -"B c #3e3e0c0c0808", -"V c #292920200303", -"C c #2c2c23230303", -"Z c #313126260404", -"A c #313126260505", -"S c #333327270404", -"D c #38382c2c0505", -"F c #3c3c2e2e0505", -"G c Gray17", -"H c #41410c0c0707", -"J c #42420c0c0606", -"K c #42420c0c0707", -"L c #42420d0d0808", -"P c #44440e0e0909", -"I c #44440e0e0a0a", -"U c #47470e0e0909", -"Y c #46460e0e0a0a", -"T c #49490d0d0707", -"R c #4d4d0d0d0707", -"E c #49490e0e0909", -"W c #49490e0e0a0a", -"Q c #4d4d10100c0c", -"! c #52520e0e0707", -"~ c #575711110909", -"^ c #5a5a12120d0d", -"/ c #5d5d11110b0b", -"( c #5e5e11110a0a", -") c #5c5c12120d0d", -"_ c #5e5e12120c0c", -"` c #404031310404", -"' c #404031310505", -"] c #414132320606", -"[ c #424233330505", -"{ c #454535350606", -"} c #4b4b3a3a0707", -"| c #4e4e3d3d0606", -" . c #51513f3f0707", -".. c #606012120b0b", -"X. c #636311110909", -"o. c #616113130e0e", -"O. c #646412120909", -"+. c #6a6a13130b0b", -"@. c #6e6e13130a0a", -"#. c #6e6e14140a0a", -"$. c #6f6f14140b0b", -"%. c #6d6d16160e0e", -"&. c #6e6e15150c0c", -"*. c #717115150d0d", -"=. c #727215150d0d", -"-. c #737315150c0c", -";. c #737316160e0e", -":. c #777715150c0c", -">. c #787815150b0b", -",. c #787815150c0c", -"<. c #737317171111", -"1. c #7a7a17171010", -"2. c #787818181212", -"3. c #7b7b19191212", -"4. c #525240400707", -"5. c #676750500909", -"6. c #696952520a0a", -"7. c #717157570a0a", -"8. c #74745a5a0c0c", -"9. c #7a7a61610909", -"0. c #7c7c61610c0c", -"q. c #858517170c0c", -"w. c #868618180d0d", -"e. c #8a8a18180c0c", -"r. c #8a8a19190f0f", -"t. c #808018181010", -"y. c #80801a1a1313", -"u. c #868619191010", -"i. c #86861b1b1313", -"p. c #87871b1b1212", -"a. c #85851b1b1414", -"s. c #88881a1a1111", -"d. c #89891a1a1111", -"f. c #8b8b1c1c1515", -"g. c #8d8d1b1b1212", -"h. c #8f8f1b1b1010", -"j. c #8c8c1c1c1414", -"k. c #90901a1a0f0f", -"l. c #91911a1a0f0f", -"z. c #92921a1a0e0e", -"x. c #9b9b1b1b0e0e", -"c. c #9a9a1c1c0f0f", -"v. c #93931b1b1010", -"b. c #90901e1e1212", -"n. c #97971e1e1515", -"m. c #99991d1d1313", -"M. c #98981d1d1414", -"N. c #98981f1f1717", -"B. c #99991f1f1616", -"V. c #9a9a1f1f1515", -"C. c #9b9b1e1e1414", -"Z. c #9b9b1f1f1717", -"A. c #9c9c1e1e1313", -"S. c #9d9d1e1e1212", -"D. c #9e9e1d1d1111", -"F. c #9f9f1d1d1010", -"G. c #9f9f1e1e1313", -"H. c #9d9d1f1f1515", -"J. c #9c9c1f1f1616", -"K. c #9e9e1e1e1414", -"L. c #a0a01d1d0f0f", -"P. c #a1a11c1c0e0e", -"I. c #a2a21d1d0f0f", -"U. c #a3a31c1c0e0e", -"Y. c #a3a31d1d0f0f", -"T. c #a4a41c1c0e0e", -"R. c #a6a61d1d0f0f", -"E. c #a7a71d1d0e0e", -"W. c #a9a91d1d0f0f", -"Q. c #a1a11d1d1010", -"!. c #a1a11d1d1111", -"~. c #a0a01e1e1212", -"^. c #a2a21d1d1010", -"/. c #b3b31f1f0f0f", -"(. c #b2b21f1f1010", -"). c #b9b920200f0f", -"_. c #b6b621211111", -"`. c #b7b720201010", -"'. c #baba20201010", -"]. c #bdbd21211111", -"[. c #bfbf22221212", -"{. c #abab42421616", -"}. c #b1b140401010", -"|. c #b9b95b5b1313", -" X c #bbbb5b5b1111", -".X c #bfbf6f6f1616", -"XX c #92924f4f4848", -"oX c #c6c622221010", -"OX c #c8c823231212", -"+X c #caca23231010", -"@X c #cdcd25251313", -"#X c #d1d124241212", -"$X c #d2d224241111", -"%X c #d2d226261414", -"&X c #d5d525251111", -"*X c #d4d425251313", -"=X c #d9d926261313", -"-X c #dbdb26261212", -";X c #d8d827271515", -":X c #dcdc26261313", -">X c #dede26261212", -",X c #e0e027271212", -"XR.T.T.^XTXxXTXRXBX^.F.k.T `X`X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X1XwX'.T.T.DXCXX 3 ' RXRX^.!.D.-. `X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`XE.rX#XT.T.T.~X9.* q @ RXRXnX!.D.k.E `X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X4X5X(.T.T.)X~XC + . t RXRXYX!.!.S.=. `X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`XE.uXOXT.T.FX~X~Xc % V RXYXYXnX~.S.h.E `X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`XE.eX:XR.T.Y.~X~X~Xb y [ YXYXYXYX~.~.S.*. `X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X@.0X].T.T.GX~X~XRX| ` { YXYXYXIXmX~.S.d.U `X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`XR.aX=XR.T.Y.~X~X~XRXu X v ] YXYXIXIXIX~.G.m.( `X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X 8.PXPXWXWXWXWXJXJXJXH.J.j.Y - `X`X`X`X`X`X", -"`X`X`X`X`X`X`X`XR.3X;XY.Y.zX(XEXRXYXYXYXYXIXIXcXA 0.HXPXWXWXWXWXJXJXJXJX.XJ.B.o. 7 `X`X`X`X`X", -"`X`X`X`X`X`X`X`X#.7X[.Y.^.^.^.^.!.!.!.|.hXlXNXLXUXUXUX!X!X!X!XQXQXQXQXKXkX{.B.2.g G `X`X`X`X`X", -"`X`X`X`X`X`X`X`XJ @XY.L.^.^.^.!.!.!.!.~.~.~.~.G.G.G.G.K.K.K.H.H.H.H.J.J.J.J.Z.f.I `X`X`X`X", -"`X`X`X`X`X`X`X`X9 >.! +.$.,.w.r.v.D.S.~.~.~.G.G.G.G.K.K.K.H.H.H.H.J.J.J.J.Z.Z.N.^ o `X`X`X`X", -"`X`X`X`X`X`X`X`X - # # , d l H K ~ / ..&.;.;.;.t.s.s.s.s.p.p.p.i.i.i.i.a.a.y.<.Q # ; `X`X`X`X", -"`X`X`X`X`X`X`X`X # # # # # # # # # < s a a f L B B B B B B N N N M M M m z e # `X`X`X`X", -"`X`X`X`X`X`X`X`X $ $ # # # # # # # # # # # # # # # # # # # # # # # # # o `X`X`X`X", -"`X`X`X`X`X`X`X`X`X 8 6 o o = = $ $ # # # # # # # # # # # # # # $ $ `X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X 5 5 4 `X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X `X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X", -"`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X`X" -}; diff --git a/include/wx/grid.h b/include/wx/grid.h deleted file mode 100644 index 668f69a3e3..0000000000 --- a/include/wx/grid.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _WX_GRID_H_BASE_ -#define _WX_GRID_H_BASE_ - -#include "wx/generic/gridg.h" - -#ifndef wxGrid -#define wxGrid wxGenericGrid -#endif - -#endif - // _WX_GRID_H_BASE_ diff --git a/include/wx/gtk/.cvsignore b/include/wx/gtk/.cvsignore deleted file mode 100644 index 6d050a0ed7..0000000000 --- a/include/wx/gtk/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -setup.h -Makefile.in diff --git a/include/wx/gtk/Makefile.am b/include/wx/gtk/Makefile.am deleted file mode 100644 index a8b71160e6..0000000000 --- a/include/wx/gtk/Makefile.am +++ /dev/null @@ -1,65 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/gtk subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -wx_gtk_includedir = ${includedir}/wx/gtk -wx_gtk_include_HEADERS = \ - accel.h \ - app.h \ - bitmap.h \ - bmpbuttn.h \ - brush.h \ - button.h \ - checkbox.h \ - checklst.h \ - choice.h \ - clipbrd.h \ - colour.h \ - combobox.h \ - control.h \ - cursor.h \ - dataobj.h \ - dc.h \ - dcclient.h \ - dcmemory.h \ - dcps.h \ - dcscreen.h \ - dialog.h \ - dnd.h \ - filedlg.h \ - font.h \ - frame.h \ - gauge.h \ - gdiobj.h \ - icon.h \ - joystick.h \ - listbox.h \ - mdi.h \ - menu.h \ - menuitem.h \ - minifram.h \ - notebook.h \ - palette.h \ - pen.h \ - radiobox.h \ - radiobut.h \ - region.h \ - scrolbar.h \ - settings.h \ - slider.h \ - spinbutt.h \ - statbmp.h \ - statbox.h \ - statline.h \ - stattext.h \ - tbargtk.h \ - textctrl.h \ - timer.h \ - tooltip.h \ - treectrl.h \ - wave.h \ - win_gtk.h \ - window.h - diff --git a/include/wx/gtk/accel.h b/include/wx/gtk/accel.h deleted file mode 100644 index 4765e6fe3d..0000000000 --- a/include/wx/gtk/accel.h +++ /dev/null @@ -1,105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.h -// Purpose: wxAcceleratorTable class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKACCELH__ -#define __GTKACCELH__ - -#ifdef __GNUG__ -#pragma interface "accel.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/event.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxAcceleratorEntry; -class wxAcceleratorTable; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -extern wxAcceleratorTable wxNullAcceleratorTable; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -// Hold Ctrl key down -#define wxACCEL_ALT 0x01 - -// Hold Ctrl key down -#define wxACCEL_CTRL 0x02 - - // Hold Shift key down -#define wxACCEL_SHIFT 0x04 - - // Hold no other key -#define wxACCEL_NORMAL 0x00 - -//----------------------------------------------------------------------------- -// wxAcceleratorEntry -//----------------------------------------------------------------------------- - -class wxAcceleratorEntry: public wxObject -{ - public: - - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline void Set(int flags, int keyCode, int cmd) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline int GetFlags() const { return m_flags; } - inline int GetKeyCode() const { return m_keyCode; } - inline int GetCommand() const { return m_command; } - - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -//----------------------------------------------------------------------------- -// wxAcceleratorTable -//----------------------------------------------------------------------------- - -class wxAcceleratorTable: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxAcceleratorTable) - - public: - wxAcceleratorTable(); - wxAcceleratorTable(int n, wxAcceleratorEntry entries[] ); - ~wxAcceleratorTable(); - - inline wxAcceleratorTable(const wxAcceleratorTable& accel) : wxObject() - { Ref(accel); } - inline wxAcceleratorTable(const wxAcceleratorTable* accel) - { if (accel) Ref(*accel); } - inline bool operator == (const wxAcceleratorTable& accel) - { return m_refData == accel.m_refData; } - inline bool operator != (const wxAcceleratorTable& accel) - { return m_refData != accel.m_refData; } - inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) - { if (*this == accel) return (*this); Ref(accel); return *this; } - - bool Ok() const; - -// private: - - int GetCommand( wxKeyEvent &event ); - -}; - -#endif diff --git a/include/wx/gtk/app.h b/include/wx/gtk/app.h deleted file mode 100644 index dbf52b110c..0000000000 --- a/include/wx/gtk/app.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKAPPH__ -#define __GTKAPPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/frame.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxApp; -class wxLog; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern wxApp *wxTheApp; - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -void wxExit(void); -bool wxYield(void); - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 - -//----------------------------------------------------------------------------- -// wxApp -//----------------------------------------------------------------------------- - -class wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - - public: - - wxApp(); - ~wxApp(); - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - /* override for altering the way wxGTK intializes the GUI (palette/visual/colorcube). - * under wxMSW, OnInitGui() does nothing by default. when overriding this method, - * the code in it is likely to be platform dependent, otherwise use OnInit(). */ - virtual bool OnInitGui(); - - /* override to create top level frame, display splash screen etc. */ - virtual bool OnInit() { return FALSE; } - - virtual int OnRun() { return MainLoop(); } - virtual int OnExit() { return 0; } - - wxWindow *GetTopWindow(); - void SetTopWindow( wxWindow *win ); - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending(); - virtual void Dispatch(); - - inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; } - inline bool GetWantDebugOutput() { return m_wantDebugOutput; } - - void OnIdle( wxIdleEvent &event ); - bool SendIdleEvents(); - bool SendIdleEvents( wxWindow* win ); - - inline wxString GetAppName() const - { if (m_appName != "") return m_appName; else return m_className; } - inline void SetAppName( const wxString& name ) { m_appName = name; } - - inline wxString GetClassName() const { return m_className; } - inline void SetClassName( const wxString& name ) { m_className = name; } - - const wxString& GetVendorName() const { return m_vendorName; } - void SetVendorName( const wxString& name ) { m_vendorName = name; } - - inline void SetExitOnFrameDelete( bool flag ) { m_exitOnFrameDelete = flag; } - inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - void SetPrintMode( int WXUNUSED(mode) ) {} - int GetPrintMode() const { return wxPRINT_POSTSCRIPT; } - -#if wxUSE_LOG - /* override this function to create default log target of arbitrary - * user-defined classv (default implementation creates a wxLogGui object) */ - virtual wxLog *CreateLogTarget(); -#endif // wxUSE_LOG - - // implementation - - static bool Initialize(); - static bool InitialzeVisual(); - static void CleanUp(); - - bool ProcessIdle(); -#if wxUSE_THREADS - void ProcessPendingEvents(); -#endif - void DeletePendingObjects(); - - /// This can be used to suppress the generation of Idle events. - inline void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; } - inline bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; } - - bool m_initialized; - bool m_exitOnFrameDelete; - bool m_wantDebugOutput; - wxWindow *m_topWindow; - - gint m_idleTag; -#if wxUSE_THREADS - gint m_wakeUpTimerTag; -#endif - unsigned char *m_colorCube; - - int argc; - char **argv; - - wxString m_vendorName; - wxString m_appName; - wxString m_className; - - static wxAppInitializerFunction m_appInitFn; - private: - /// Set to TRUE while we are in wxYield(). - bool m_suppressIdleEvents; - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKAPPH__ diff --git a/include/wx/gtk/bitmap.h b/include/wx/gtk/bitmap.h deleted file mode 100644 index 61245d92c1..0000000000 --- a/include/wx/gtk/bitmap.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKBITMAPH__ -#define __GTKBITMAPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/palette.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMask; -class wxBitmap; - -//----------------------------------------------------------------------------- -// wxMask -//----------------------------------------------------------------------------- - -class wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(); - wxMask( const wxBitmap& bitmap, const wxColour& colour ); - wxMask( const wxBitmap& bitmap, int paletteIndex ); - wxMask( const wxBitmap& bitmap ); - ~wxMask(); - - // implementation - - GdkBitmap *m_bitmap; - GdkBitmap *GetBitmap() const; -}; - -//----------------------------------------------------------------------------- -// wxBitmap -//----------------------------------------------------------------------------- - -class wxBitmap: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - -public: - wxBitmap(); - wxBitmap( int width, int height, int depth = -1 ); - wxBitmap( const char bits[], int width, int height, int depth = 1 ); - wxBitmap( const char **bits ); - wxBitmap( char **bits ); - wxBitmap( const wxBitmap& bmp ); - wxBitmap( const wxString &filename, int type = wxBITMAP_TYPE_XPM ); - ~wxBitmap(); - wxBitmap& operator = ( const wxBitmap& bmp ); - bool operator == ( const wxBitmap& bmp ); - bool operator != ( const wxBitmap& bmp ); - bool Ok() const; - - int GetHeight() const; - int GetWidth() const; - int GetDepth() const; - - wxMask *GetMask() const; - void SetMask( wxMask *mask ); - - bool SaveFile( const wxString &name, int type, wxPalette *palette = (wxPalette *) NULL ); - bool LoadFile( const wxString &name, int type = wxBITMAP_TYPE_XPM ); - - wxPalette *GetPalette() const; - wxPalette *GetColourMap() const - { return GetPalette(); }; - -// implementation - - void SetHeight( int height ); - void SetWidth( int width ); - void SetDepth( int depth ); - void SetPixmap( GdkPixmap *pixmap ); - - GdkPixmap *GetPixmap() const; - GdkBitmap *GetBitmap() const; - - // no data :-) -}; - -#endif // __GTKBITMAPH__ diff --git a/include/wx/gtk/bmpbuttn.h b/include/wx/gtk/bmpbuttn.h deleted file mode 100644 index 4a029af1b9..0000000000 --- a/include/wx/gtk/bmpbuttn.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbutton.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __BMPBUTTONH__ -#define __BMPBUTTONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBitmapButton; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxButtonNameStr; - -//----------------------------------------------------------------------------- -// wxBitmapButton -//----------------------------------------------------------------------------- - -class wxBitmapButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - -public: - wxBitmapButton(); - inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr ) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - void SetDefault(); - - void SetLabel( const wxString &label ); - wxString GetLabel() const; - virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); } - - wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; } - wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; } - wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; } - wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; } - - void SetBitmapDisabled( const wxBitmap& bitmap ); - void SetBitmapFocus( const wxBitmap& bitmap ); - void SetBitmapLabel( const wxBitmap& bitmap ); - void SetBitmapSelected( const wxBitmap& bitmap ); - - virtual bool Enable(const bool); - -// implementation - - void HasFocus(); - void NotFocus(); - void StartSelect(); - void EndSelect(); - void SetBitmap(); - void ApplyWidgetStyle(); - - bool m_hasFocus; - bool m_isSelected; - wxBitmap m_bitmap; - wxBitmap m_disabled; - wxBitmap m_focus; - wxBitmap m_selected; -}; - -#endif // __BMPBUTTONH__ diff --git a/include/wx/gtk/brush.h b/include/wx/gtk/brush.h deleted file mode 100644 index c52eb45011..0000000000 --- a/include/wx/gtk/brush.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKBRUSHH__ -#define __GTKBRUSHH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBrush; - -//----------------------------------------------------------------------------- -// wxBrush -//----------------------------------------------------------------------------- - -class wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - - public: - - wxBrush(); - wxBrush( const wxColour &colour, int style ); - wxBrush( const wxBitmap &stippleBitmap ); - wxBrush( const wxBrush &brush ); - ~wxBrush(); - wxBrush& operator = ( const wxBrush& brush ); - bool operator == ( const wxBrush& brush ); - bool operator != ( const wxBrush& brush ); - bool Ok() const; - - int GetStyle() const; - wxColour &GetColour() const; - wxBitmap *GetStipple() const; - - void SetColour( const wxColour& col ); - void SetColour( unsigned char r, unsigned char g, unsigned char b ); - void SetStyle( int style ); - void SetStipple( const wxBitmap& stipple ); - - void Unshare(); - - // no data :-) -}; - -#endif // __GTKBRUSHH__ diff --git a/include/wx/gtk/button.h b/include/wx/gtk/button.h deleted file mode 100644 index 596299520d..0000000000 --- a/include/wx/gtk/button.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKBUTTONH__ -#define __GTKBUTTONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxButton; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxButtonNameStr; - -//----------------------------------------------------------------------------- -// wxButton -//----------------------------------------------------------------------------- - -class wxButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxButton) - - public: - - wxButton(); - inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - ~wxButton(); - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - void SetDefault(); - void SetLabel( const wxString &label ); - bool Enable( bool enable ); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKBUTTONH__ diff --git a/include/wx/gtk/checkbox.h b/include/wx/gtk/checkbox.h deleted file mode 100644 index cf2109123b..0000000000 --- a/include/wx/gtk/checkbox.h +++ /dev/null @@ -1,76 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCHECKBOXH__ -#define __GTKCHECKBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxCheckBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxCheckBoxNameStr; - -//----------------------------------------------------------------------------- -// wxCheckBox -//----------------------------------------------------------------------------- - -class wxCheckBox: public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxCheckBox) - -public: - wxCheckBox(); - wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr ); - - void SetValue( bool state ); - bool GetValue() const; - - void SetLabel( const wxString& label ); - bool Enable( bool enable ); - - // implementation - void ApplyWidgetStyle(); - - bool m_blockFirstEvent; - GtkWidget *m_widgetCheckbox; - GtkWidget *m_widgetLabel; -}; - -#endif // __GTKCHECKBOXH__ diff --git a/include/wx/gtk/checklst.h b/include/wx/gtk/checklst.h deleted file mode 100644 index cbdd0ee233..0000000000 --- a/include/wx/gtk/checklst.h +++ /dev/null @@ -1,56 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.h -// Purpose: wxCheckListBox class -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKCHECKLISTH__ -#define __GTKCHECKLISTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/listbox.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxCheckListBox; - -//----------------------------------------------------------------------------- -// wxCheckListBox -//----------------------------------------------------------------------------- - -class wxCheckListBox : public wxListBox -{ -DECLARE_DYNAMIC_CLASS(wxCheckListBox) - -public: - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString *choices = (const wxString *)NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - bool IsChecked( int index ) const; - void Check( int index, bool check = TRUE ); - - int GetItemHeight() const; -}; - -#endif - //__GTKCHECKLISTH__ diff --git a/include/wx/gtk/choice.h b/include/wx/gtk/choice.h deleted file mode 100644 index da0b83c288..0000000000 --- a/include/wx/gtk/choice.h +++ /dev/null @@ -1,99 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKCHOICEH__ -#define __GTKCHOICEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxChoice; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxChoiceNameStr; - -//----------------------------------------------------------------------------- -// wxChoice -//----------------------------------------------------------------------------- - -class wxChoice : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - -public: - wxChoice(); - wxChoice( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - ~wxChoice(); - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ); - - void Append( const wxString &item ); - void Append( const wxString &item, void* clientData ); - void Append( const wxString &item, wxClientData* clientData ); - - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ); - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ); - - void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); } - wxClientData *GetClientObject() const { return wxControl::GetClientObject(); } - void SetClientData( void *data ) { wxControl::SetClientData( data ); } - void *GetClientData() const { return wxControl::GetClientData(); } - - void Clear(); - void Delete(int n); - - int FindString( const wxString &string ) const; - int GetColumns() const; - int GetSelection(); - wxString GetString( int n ) const; - wxString GetStringSelection() const; - int Number() const; - void SetColumns( int n = 1 ); - void SetSelection( int n ); - void SetStringSelection( const wxString &string ); - - // implementation - - wxList m_clientDataList; - wxList m_clientObjectList; - - void AppendCommon( const wxString &item ); - void ApplyWidgetStyle(); -}; - -#endif // __GTKCHOICEH__ diff --git a/include/wx/gtk/clipbrd.h b/include/wx/gtk/clipbrd.h deleted file mode 100644 index d940100715..0000000000 --- a/include/wx/gtk/clipbrd.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipboard.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCLIPBOARDH__ -#define __GTKCLIPBOARDH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_CLIPBOARD - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/dataobj.h" -#include "wx/control.h" -#include "wx/module.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxClipboard; -class wxClipboardModule; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern wxClipboard* wxTheClipboard; - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -class wxClipboard : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - -public: - wxClipboard(); - ~wxClipboard(); - - // open the clipboard before SetData() and GetData() - virtual bool Open(); - - // close the clipboard after SetData() and GetData() - virtual void Close(); - - // set the clipboard data. all other formats will be deleted. - virtual bool SetData( wxDataObject *data ); - - // add to the clipboard data. - virtual bool AddData( wxDataObject *data ); - - // ask if data in correct format is available - virtual bool IsSupported( wxDataFormat format ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject *data ); - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear(); - - /// If primary == TRUE, use primary selection in all further ops, - /// primary=FALSE resets it. - inline void UsePrimarySelection(bool primary = TRUE) { m_usePrimary = primary; } - - // implementation - - bool m_open; - - bool m_ownsClipboard; - bool m_ownsPrimarySelection; - - wxDataBroker *m_dataBroker; - GtkWidget *m_clipboardWidget; /* for getting and offering data */ - GtkWidget *m_targetsWidget; /* for getting list of supported formats */ - bool m_waiting; /* querying data or formats is asynchronous */ - - bool m_formatSupported; - GdkAtom m_targetRequested; - bool m_usePrimary; - wxDataObject *m_receivedData; -}; - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -class wxClipboardModule: public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxClipboardModule) - -public: - wxClipboardModule() {} - bool OnInit(); - void OnExit(); -}; - -#endif - - // wxUSE_CLIPBOARD - -#endif - // __GTKCLIPBOARDH__ diff --git a/include/wx/gtk/colour.h b/include/wx/gtk/colour.h deleted file mode 100644 index 8d27d3f3b2..0000000000 --- a/include/wx/gtk/colour.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCOLOURH__ -#define __GTKCOLOURH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdiobj.h" -#include "wx/palette.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDC; -class wxPaintDC; -class wxBitmap; -class wxWindow; - -class wxColour; - -//----------------------------------------------------------------------------- -// wxColour -//----------------------------------------------------------------------------- - -class wxColour: public wxGDIObject -{ -public: - // ctors - // default - wxColour(); - // from RGB - wxColour( unsigned char red, unsigned char green, unsigned char blue ); - wxColour( unsigned long colRGB ) { Set(colRGB); } - - // implicit conversion from the colour name - wxColour( const wxString &colourName ) { InitFromName(colourName); } - wxColour( const char *colourName ) { InitFromName(colourName); } - - // copy ctors and assignment operators - wxColour( const wxColour& col ); - wxColour& operator = ( const wxColour& col ); - - // dtor - ~wxColour(); - - // comparison - bool operator == ( const wxColour& col ) const; - bool operator != ( const wxColour& col ) const; - - // accessors - void Set( unsigned char red, unsigned char green, unsigned char blue ); - void Set( unsigned long colRGB ) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((unsigned char)colRGB, - (unsigned char)(colRGB >> 8), - (unsigned char)(colRGB >> 16)); - } - - unsigned char Red() const; - unsigned char Green() const; - unsigned char Blue() const; - bool Ok() const; - - // implementation - void CalcPixel( GdkColormap *cmap ); - int GetPixel() const; - GdkColor *GetColor() const; - -protected: - // helper functions - void InitFromName(const wxString& colourName); - -private: - DECLARE_DYNAMIC_CLASS(wxColour) -}; - -#endif // __GTKCOLOURH__ diff --git a/include/wx/gtk/combobox.h b/include/wx/gtk/combobox.h deleted file mode 100644 index a9910b78a3..0000000000 --- a/include/wx/gtk/combobox.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCOMBOBOXH__ -#define __GTKCOMBOBOXH__ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/defs.h" - -#include "wx/object.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxComboBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxComboBoxNameStr; -extern const wxChar* wxEmptyString; - -//----------------------------------------------------------------------------- -// wxComboBox -//----------------------------------------------------------------------------- - -class wxComboBox : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - -public: - - inline wxComboBox() {} - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - ~wxComboBox(); - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - void Append( const wxString &item ); - void Append( const wxString &item, void* clientData ); - void Append( const wxString &item, wxClientData* clientData ); - - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ); - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ); - - void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); } - wxClientData *GetClientObject() const { return wxControl::GetClientObject(); } - void SetClientData( void *data ) { wxControl::SetClientData( data ); } - void *GetClientData() const { return wxControl::GetClientData(); } - - void Clear(); - void Delete( int n ); - - int FindString( const wxString &item ); - int GetSelection() const; - wxString GetString( int n ) const; - wxString GetStringSelection() const; - int Number() const; - void SetSelection( int n ); - void SetStringSelection( const wxString &string ); - - wxString GetValue() const; - void SetValue(const wxString& value); - - void Copy(); - void Cut(); - void Paste(); - void SetInsertionPoint( long pos ); - void SetInsertionPointEnd(); - long GetInsertionPoint() const; - long GetLastPosition() const; - void Replace( long from, long to, const wxString& value ); - void Remove( long from, long to ); - void SetSelection( long from, long to ); - void SetEditable( bool editable ); - - void OnSize( wxSizeEvent &event ); - void OnChar( wxKeyEvent &event ); - -// implementation - - bool m_alreadySent; - wxList m_clientDataList; - wxList m_clientObjectList; - - void AppendCommon( const wxString &item ); - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - DECLARE_EVENT_TABLE() -}; - -#endif - - // __GTKCOMBOBOXH__ diff --git a/include/wx/gtk/control.h b/include/wx/gtk/control.h deleted file mode 100644 index d3a164d275..0000000000 --- a/include/wx/gtk/control.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKCONTROLH__ -#define __GTKCONTROLH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/window.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxControl; - -//----------------------------------------------------------------------------- -// wxControl -//----------------------------------------------------------------------------- - -class wxControl: public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxControl) - -public: - wxControl(); - wxControl( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxPanelNameStr ); - - virtual void Command( wxCommandEvent &event ); - - // this function will filter out '&' characters and will put the accelerator - // char (the one immediately after '&') into m_chAccel (@@ not yet) - virtual void SetLabel( const wxString &label ); - virtual wxString GetLabel() const; - -protected: - wxString m_label; - char m_chAccel; // enabled to avoid breaking binary compatibility later on - -}; - -#endif // __GTKCONTROLH__ diff --git a/include/wx/gtk/cursor.h b/include/wx/gtk/cursor.h deleted file mode 100644 index d274b6be95..0000000000 --- a/include/wx/gtk/cursor.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCURSORH__ -#define __GTKCURSORH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// wxCursor -//----------------------------------------------------------------------------- - -class wxCursor: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - - public: - - wxCursor(); - wxCursor( int cursorId ); - wxCursor( const wxCursor &cursor ); - ~wxCursor(); - wxCursor& operator = ( const wxCursor& cursor ); - bool operator == ( const wxCursor& cursor ) const; - bool operator != ( const wxCursor& cursor ) const; - bool Ok() const; - - GdkCursor *GetCursor() const; - - // no data :-) -}; - -#endif // __GTKCURSORH__ diff --git a/include/wx/gtk/dataobj.h b/include/wx/gtk/dataobj.h deleted file mode 100644 index e8d598e3dd..0000000000 --- a/include/wx/gtk/dataobj.h +++ /dev/null @@ -1,258 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.h -// Purpose: declaration of the wxDataObject class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDATAOBJECTH__ -#define __GTKDATAOBJECTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/bitmap.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class wxDataFormat; -class wxDataBroker; -class wxDataObject; -class wxTextDataObject; -class wxBitmapDataObject; -class wxPrivateDataObject; -class wxFileDataObject; - -//------------------------------------------------------------------------- -// wxDataFormat (internal) -//------------------------------------------------------------------------- - -class wxDataFormat : public wxObject -{ - DECLARE_CLASS( wxDataFormat ) - -public: - wxDataFormat(); - wxDataFormat( wxDataFormatId type ); - wxDataFormat( const wxString &id ); - wxDataFormat( const wxChar *id ); - wxDataFormat( const wxDataFormat &format ); - wxDataFormat( const GdkAtom atom ); - - void SetType( wxDataFormatId type ); - wxDataFormatId GetType() const; - - /* the string Id identifies the format of clipboard or DnD data. a word - * processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - * to the clipboard - the latter with the Id "application/wxword", an - * image manipulation program would put a wxBitmapDataObject and a - * wxPrivateDataObject to the clipboard - the latter with "image/png". */ - - wxString GetId() const; - void SetId( const wxChar *id ); - - GdkAtom GetAtom(); - void SetAtom(GdkAtom atom) { m_hasAtom = TRUE; m_atom = atom; } - - // implicit conversion to wxDataFormatId - operator wxDataFormatId() const { return m_type; } - - bool operator==(wxDataFormatId type) const { return m_type == type; } - bool operator!=(wxDataFormatId type) const { return m_type != type; } - -private: - wxDataFormatId m_type; - wxString m_id; - bool m_hasAtom; - GdkAtom m_atom; -}; - -//------------------------------------------------------------------------- -// wxDataBroker (internal) -//------------------------------------------------------------------------- - -class wxDataBroker : public wxObject -{ - DECLARE_CLASS( wxDataBroker ) - -public: - - /* constructor */ - wxDataBroker(); - - /* add data object */ - void Add( wxDataObject *dataObject, bool preferred = FALSE ); - -private: - - /* OLE implementation, the methods don't need to be overridden */ - - /* get number of supported formats */ - virtual size_t GetFormatCount() const; - - /* return nth supported format */ - virtual wxDataFormat &GetNthFormat( size_t nth ) const; - - /* return preferrd/best supported format */ - virtual wxDataFormatId GetPreferredFormat() const; - - /* search through m_dataObjects, return TRUE if found */ - virtual bool IsSupportedFormat( wxDataFormat &format ) const; - - /* search through m_dataObjects and call child's GetSize() */ - virtual size_t GetSize( wxDataFormat& format ) const; - - /* search through m_dataObjects and call child's WriteData(dest) */ - virtual void WriteData( wxDataFormat& format, void *dest ) const; - - /* implementation */ - -public: - - wxList m_dataObjects; - size_t m_preferred; -}; - -//---------------------------------------------------------------------------- -// wxDataObject to be placed in wxDataBroker -//---------------------------------------------------------------------------- - -class wxDataObject : public wxObject -{ - DECLARE_DYNAMIC_CLASS( wxDataObject ) - -public: - - /* constructor */ - wxDataObject(); - - /* destructor */ - ~wxDataObject(); - - /* write data to dest */ - virtual void WriteData( void *dest ) const = 0; - - /* get size of data */ - virtual size_t GetSize() const = 0; - - /* implementation */ - - wxDataFormat &GetFormat(); - - wxDataFormatId GetFormatType() const; - wxString GetFormatId() const; - GdkAtom GetFormatAtom() const; - - wxDataFormat m_format; -}; - -//---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -//---------------------------------------------------------------------------- - -class wxTextDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxTextDataObject ) - -public: - - /* default constructor. call SetText() later or override - WriteData() and GetSize() for working on-demand */ - wxTextDataObject(); - - /* constructor */ - wxTextDataObject( const wxString& data ); - - /* set current text data */ - void SetText( const wxString& data ); - - /* get current text data */ - wxString GetText() const; - - /* by default calls WriteString() with string set by constructor or - by SetText(). can be overridden for working on-demand */ - virtual void WriteData( void *dest ) const; - - /* by default, returns length of string as set by constructor or - by SetText(). can be overridden for working on-demand */ - virtual size_t GetSize() const; - - /* write string to dest */ - void WriteString( const wxString &str, void *dest ) const; - - /* implementation */ - - wxString m_data; -}; - -//---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -//---------------------------------------------------------------------------- - -class wxFileDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxFileDataObject ) - -public: - - /* default constructor */ - wxFileDataObject(); - - /* add file name to list */ - void AddFile( const wxString &file ); - - /* get all filename as one string. each file name is 0 terminated, - the list is double zero terminated */ - wxString GetFiles() const; - - /* write list of filenames */ - virtual void WriteData( void *dest ) const; - - /* return length of list of filenames */ - virtual size_t GetSize() const; - - /* implementation */ - - wxString m_files; -}; - -//---------------------------------------------------------------------------- -// wxBitmapDataObject is a specialization of wxDataObject for bitmaps -//---------------------------------------------------------------------------- - -class wxBitmapDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxBitmapDataObject ) - -public: - - /* see wxTextDataObject for explanation */ - - wxBitmapDataObject(); - wxBitmapDataObject( const wxBitmap& bitmap ); - - void SetBitmap( const wxBitmap &bitmap ); - wxBitmap GetBitmap() const; - - virtual void WriteData( void *dest ) const; - virtual size_t GetSize() const; - - void WriteBitmap( const wxBitmap &bitmap, void *dest ) const; - - // implementation - - wxBitmap m_bitmap; - -}; - -#endif - //__GTKDNDH__ - diff --git a/include/wx/gtk/dc.h b/include/wx/gtk/dc.h deleted file mode 100644 index acc56d3bcd..0000000000 --- a/include/wx/gtk/dc.h +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDCH__ -#define __GTKDCH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDC; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define MM_TEXT 0 -#define MM_ISOTROPIC 1 -#define MM_ANISOTROPIC 2 -#define MM_LOMETRIC 3 -#define MM_HIMETRIC 4 -#define MM_TWIPS 5 -#define MM_POINTS 6 -#define MM_METRIC 7 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -class wxDC : public wxDCBase -{ - DECLARE_ABSTRACT_CLASS(wxDC) - -public: - wxDC(); - ~wxDC() { } - - void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }; - - // the first two must be overridden and called - virtual void DestroyClippingRegion(); - - // Resolution in pixels per logical inch - virtual wxSize GetPPI() const; - - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; } - virtual void EndDoc() { } - virtual void StartPage() { } - virtual void EndPage() { } - - virtual void SetMapMode( int mode ); - virtual void SetUserScale( double x, double y ); - virtual void SetLogicalScale( double x, double y ); - virtual void SetLogicalOrigin( long x, long y ); - virtual void SetDeviceOrigin( long x, long y ); - - virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - - // implementation - // -------------- - - virtual void ComputeScaleAndOrigin(); - - long XDEV2LOG(long x) const - { - long new_x = x - m_deviceOriginX; - if (new_x > 0) - return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; - } - long XDEV2LOGREL(long x) const - { - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); - } - long YDEV2LOG(long y) const - { - long new_y = y - m_deviceOriginY; - if (new_y > 0) - return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; - } - long YDEV2LOGREL(long y) const - { - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); - } - long XLOG2DEV(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX; - } - long XLOG2DEVREL(long x) const - { - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); - } - long YLOG2DEV(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY; - } - long YLOG2DEVREL(long y) const - { - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); - } - -protected: - // base class pure virtuals implemented here - virtual void DoSetClippingRegion(long x, long y, long width, long height); - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - -public: - // GTK-specific member variables - - // not sure what for, but what is a mm on a screen you don't know the size - // of? - double m_mm_to_pix_x, - m_mm_to_pix_y; - - bool m_needComputeScaleX, - m_needComputeScaleY; // not yet used - - float m_scaleFactor; // wxPSDC wants to have this. Will disappear. -}; - -#endif // __GTKDCH__ diff --git a/include/wx/gtk/dcclient.h b/include/wx/gtk/dcclient.h deleted file mode 100644 index b3b0439b4a..0000000000 --- a/include/wx/gtk/dcclient.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDCCLIENTH__ -#define __GTKDCCLIENTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dc.h" -#include "wx/window.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxWindowDC; -class wxPaintDC; -class wxClientDC; - -//----------------------------------------------------------------------------- -// wxWindowDC -//----------------------------------------------------------------------------- - -class wxWindowDC : public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxWindowDC) - -public: - wxWindowDC(); - wxWindowDC( wxWindow *win ); - - ~wxWindowDC(); - - virtual bool CanDrawBitmap() const { return TRUE; } - virtual bool CanGetTextExtent() const { return TRUE; } - - virtual void DoFloodFill( long x, long y, const wxColour& col, int style=wxFLOOD_SURFACE ); - virtual bool DoGetPixel( long x1, long y1, wxColour *col ) const; - - virtual void DoDrawLine( long x1, long y1, long x2, long y2 ); - virtual void DoCrossHair( long x, long y ); - virtual void DoDrawArc( long x1, long y1, long x2, long y2, - long xc, long yc ); - virtual void DoDrawEllipticArc( long x, long y, long width, long height, - double sa, double ea ); - virtual void DoDrawPoint( long x, long y ); - - virtual void DoDrawLines(int n, wxPoint points[], - long xoffset, long yoffset); - virtual void DoDrawPolygon(int n, wxPoint points[], - long xoffset, long yoffset, - int fillStyle = wxODDEVEN_RULE); - - virtual void DoDrawRectangle( long x, long y, long width, long height ); - virtual void DoDrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); - virtual void DoDrawEllipse( long x, long y, long width, long height ); - - virtual void DoDrawIcon( const wxIcon &icon, long x, long y ); - virtual void DoDrawBitmap( const wxBitmap &bitmap, long x, long y, - bool useMask = FALSE ); - - virtual bool DoBlit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int logical_func = wxCOPY, bool useMask = FALSE ); - - virtual void DoDrawText( const wxString &text, long x, long y ); - virtual void GetTextExtent( const wxString &string, - long *width, long *height, - long *descent = (long *) NULL, - long *externalLeading = (long *) NULL, - wxFont *theFont = (wxFont *) NULL) const; - virtual long GetCharWidth() const; - virtual long GetCharHeight() const; - - virtual void Clear(); - - virtual void SetFont( const wxFont &font ); - virtual void SetPen( const wxPen &pen ); - virtual void SetBrush( const wxBrush &brush ); - virtual void SetBackground( const wxBrush &brush ); - virtual void SetLogicalFunction( int function ); - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual void SetBackgroundMode( int mode ); - virtual void SetPalette( const wxPalette& palette ); - - virtual void DoSetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(); - virtual void DoSetClippingRegionAsRegion( const wxRegion ®ion ); - -#if wxUSE_SPLINES - virtual void DoDrawSpline( wxList *points ); -#endif - - // Resolution in pixels per logical inch - virtual wxSize GetPPI() const; - virtual int GetDepth() const; - - // implementation - // -------------- - - GdkWindow *m_window; - GdkGC *m_penGC; - GdkGC *m_brushGC; - GdkGC *m_textGC; - GdkGC *m_bgGC; - GdkColormap *m_cmap; - bool m_isMemDC; - wxWindow *m_owner; - - void SetUpDC(); - void Destroy(); - void ComputeScaleAndOrigin(); - - GdkWindow *GetWindow() { return m_window; } -}; - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class wxPaintDC : public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - -public: - wxPaintDC(); - wxPaintDC( wxWindow *win ); -}; - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -class wxClientDC : public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxClientDC) - -public: - wxClientDC(); - wxClientDC( wxWindow *win ); -}; - - -#endif // __GTKDCCLIENTH__ diff --git a/include/wx/gtk/dcmemory.h b/include/wx/gtk/dcmemory.h deleted file mode 100644 index 982dee3119..0000000000 --- a/include/wx/gtk/dcmemory.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDCMEMORYH__ -#define __GTKDCMEMORYH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/dcclient.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMemoryDC; - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -class wxMemoryDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxMemoryDC) - -public: - wxMemoryDC(); - wxMemoryDC( wxDC *dc ); // Create compatible DC - ~wxMemoryDC(); - virtual void SelectObject( const wxBitmap& bitmap ); - void DoGetSize( int *width, int *height ) const; - - // implementation - - wxBitmap m_selected; -}; - -#endif - // __GTKDCMEMORYH__ - diff --git a/include/wx/gtk/dcps.h b/include/wx/gtk/dcps.h deleted file mode 100644 index df8f2d0b09..0000000000 --- a/include/wx/gtk/dcps.h +++ /dev/null @@ -1,142 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcps.h -// Purpose: wxPostScriptDC class -// Author: Julian Smart and others -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart, Robert Roebling and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDCPSH__ -#define __GTKDCPSNH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dc.h" - -#if wxUSE_POSTSCRIPT - -#include "wx/dialog.h" -#include "wx/module.h" -#include - - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPostScriptDC; - -//----------------------------------------------------------------------------- -// wxPostScriptDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPostScriptDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxPostScriptDC) - -public: - - wxPostScriptDC(); - wxPostScriptDC(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL); - - ~wxPostScriptDC(); - - bool Create(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL); - - virtual bool Ok() const; - - virtual bool PrinterDialog(wxWindow *parent = (wxWindow *) NULL); - - virtual void BeginDrawing() {} - virtual void EndDrawing() {} - - void FloodFill(long x1, long y1, const wxColour &col, int style=wxFLOOD_SURFACE) ; - bool GetPixel(long x1, long y1, wxColour *col) const; - - void DrawLine(long x1, long y1, long x2, long y2); - void CrossHair(long x, long y) ; - void DrawArc(long x1,long y1,long x2,long y2,long xc,long yc); - void DrawEllipticArc(long x,long y,long w,long h,double sa,double ea); - void DrawPoint(long x, long y); - // Avoid compiler warning - void DrawPoint(wxPoint& point) { wxDC::DrawPoint(point); } - void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0); - // Avoid compiler warning - void DrawLines(wxList *lines, long xoffset = 0, long yoffset = 0) - { wxDC::DrawLines(lines, xoffset, yoffset); } - void DrawPolygon(int n, wxPoint points[], long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE); - // Avoid compiler warning - void DrawPolygon(wxList *lines, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE) - { wxDC::DrawPolygon(lines, xoffset, yoffset, fillStyle); } - void DrawRectangle(long x, long y, long width, long height); - void DrawRoundedRectangle(long x, long y, long width, long height, double radius = 20); - void DrawEllipse(long x, long y, long width, long height); - - void DrawSpline(wxList *points); - - bool Blit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE); - inline bool CanDrawBitmap(void) const { return TRUE; } - - void DrawIcon( const wxIcon& icon, long x, long y ); - void DrawBitmap( const wxBitmap& bitmap, long x, long y, bool useMask=FALSE ); - - void DrawText(const wxString& text, long x, long y, bool use16 = FALSE); - - void Clear(); - void SetFont( const wxFont& font ); - void SetPen( const wxPen& pen ); - void SetBrush( const wxBrush& brush ); - void SetLogicalFunction( int function ); - void SetBackground( const wxBrush& brush ); - - void SetClippingRegion(long x, long y, long width, long height); - void SetClippingRegion( const wxRegion ®ion ); - void DestroyClippingRegion(); - - bool StartDoc(const wxString& message); - void EndDoc(); - void StartPage(); - void EndPage(); - - long GetCharHeight(); - long GetCharWidth(); - inline bool CanGetTextExtent(void) const { return FALSE; } - void GetTextExtent(const wxString& string, long *x, long *y, - long *descent = (long *) NULL, - long *externalLeading = (long *) NULL, - wxFont *theFont = (wxFont *) NULL, bool use16 = FALSE); - - void GetSize(int* width, int* height) const; - void GetSizeMM(long *width, long *height) const; - - void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - void SetDeviceOrigin( long x, long y ); - - inline void SetBackgroundMode(int WXUNUSED(mode)) {} - inline void SetPalette(const wxPalette& WXUNUSED(palette)) {} - - inline ofstream *GetStream(void) const { return m_pstream; } - -protected: - - ofstream * m_pstream; // PostScript output stream - wxString m_title; - unsigned char m_currentRed; - unsigned char m_currentGreen; - unsigned char m_currentBlue; - int m_pageNumber; - bool m_clipping; - double m_underlinePosition; - double m_underlineThickness; -}; - -#endif - // wxUSE_POSTSCRIPT - -#endif - // __GTKDCPSH__ diff --git a/include/wx/gtk/dcscreen.h b/include/wx/gtk/dcscreen.h deleted file mode 100644 index 34a90bc599..0000000000 --- a/include/wx/gtk/dcscreen.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDCSCREENH__ -#define __GTKDCSCREENH__ - -#include "wx/dcclient.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxScreenDC; - -//----------------------------------------------------------------------------- -// wxScreenDC -//----------------------------------------------------------------------------- - -class wxScreenDC: public wxPaintDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - -public: - wxScreenDC(void); - ~wxScreenDC(void); - - static bool StartDrawingOnTop( wxWindow *window ); - static bool StartDrawingOnTop( wxRect *rect = (wxRect *) NULL ); - static bool EndDrawingOnTop(void); - - // implementation - - static GdkWindow *sm_overlayWindow; - static int sm_overlayWindowX; - static int sm_overlayWindowY; -}; - -#endif - - // __GTKDCSCREENH__ - diff --git a/include/wx/gtk/dialog.h b/include/wx/gtk/dialog.h deleted file mode 100644 index 82334eb479..0000000000 --- a/include/wx/gtk/dialog.h +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: -// Author: Robert Roebling -// Created: -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDIALOGH__ -#define __GTKDIALOGH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/panel.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDialog; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxDialogNameStr; - -//----------------------------------------------------------------------------- -// wxDialog -//----------------------------------------------------------------------------- - -class wxDialog: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxDialog) - -public: - wxDialog() { Init(); } - wxDialog( wxWindow *parent, wxWindowID id, - const wxString &title, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString &name = wxDialogNameStr ); - bool Create( wxWindow *parent, wxWindowID id, - const wxString &title, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString &name = wxDialogNameStr ); - ~wxDialog(); - - void SetTitle(const wxString& title); - wxString GetTitle() const; - - void OnApply( wxCommandEvent &event ); - void OnCancel( wxCommandEvent &event ); - void OnOK( wxCommandEvent &event ); - void OnPaint( wxPaintEvent& event ); - void OnSize( wxSizeEvent &event ); - void OnCloseWindow( wxCloseEvent& event ); - /* - void OnCharHook( wxKeyEvent& event ); - */ - - bool Destroy(); - - virtual bool Show( bool show ); - virtual int ShowModal(); - virtual void EndModal( int retCode ); - virtual bool IsModal() const; - void SetModal( bool modal ); - - virtual void InitDialog(void); - - virtual void Centre( int direction = wxHORIZONTAL ); - - virtual void SetIcon( const wxIcon &icon ); - virtual void Iconize( bool WXUNUSED(iconize)) { } - virtual bool IsIconized() const { return FALSE; } - bool Iconized() const { return IsIconized(); } - virtual void Maximize() { } - virtual void Restore() { } - - void SetReturnCode(int returnCode) { m_returnCode = returnCode; } - int GetReturnCode() const { return m_returnCode; } - - // implementation - - virtual void GtkOnSize( int x, int y, int width, int height ); - virtual void OnInternalIdle(); - - bool m_modalShowing; - wxString m_title; - wxIcon m_icon; - -protected: - // common part of all ctors - void Init(); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - int m_returnCode; - - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKDIALOGH__ diff --git a/include/wx/gtk/dnd.h b/include/wx/gtk/dnd.h deleted file mode 100644 index 0e76509e1a..0000000000 --- a/include/wx/gtk/dnd.h +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.h -// Purpose: declaration of the wxDropTarget class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDNDH__ -#define __GTKDNDH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dataobj.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/gdicmn.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class wxWindow; - -class wxDropTarget; -class wxTextDropTarget; -class wxFileDropTarget; -class wxPrivateDropTarget; - -class wxDropSource; - -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class wxDropTarget: public wxObject -{ -public: - - wxDropTarget(); - ~wxDropTarget(); - - /* may be overridden to react to events */ - virtual void OnEnter(); - virtual void OnLeave(); - - /* may be overridden to reject certain formats or drops - on certain areas. always returns TRUE by default - indicating that you'd accept the data from the drag. */ - virtual bool OnMove( int x, int y ); - - /* has to be overridden to accept a drop event. call - IsSupported() to ask which formats are available - and then call RequestData() to indicate the format - you request. */ - virtual bool OnDrop( int x, int y ); - - /* this gets called once the data has actually arrived. get - it with GetData(). this has to be overridden. */ - virtual bool OnData( int x, int y ); - - /* called from within OnDrop() to request a certain format - from the drop event. */ - bool RequestData( wxDataFormat format ); - - /* called to query what formats are available */ - bool IsSupported( wxDataFormat format ); - - /* fill data with data from the dragging source */ - bool GetData( wxDataObject *data ); - -// implementation - - void RegisterWidget( GtkWidget *widget ); - void UnregisterWidget( GtkWidget *widget ); - - GdkDragContext *m_dragContext; - GtkWidget *m_dragWidget; - GtkSelectionData *m_dragData; - guint m_dragTime; - bool m_firstMotion; /* gdk has no "gdk_drag_enter" event */ - - void SetDragContext( GdkDragContext *dc ) { m_dragContext = dc; } - void SetDragWidget( GtkWidget *w ) { m_dragWidget = w; } - void SetDragData( GtkSelectionData *sd ) { m_dragData = sd; } - void SetDragTime( guint time ) { m_dragTime = time; } -}; - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -class wxTextDropTarget: public wxDropTarget -{ -public: - - wxTextDropTarget() {} - - virtual bool OnMove( int x, int y ); - virtual bool OnDrop( int x, int y ); - virtual bool OnData( int x, int y ); - - /* you have to override OnDropData to get at the text */ - virtual bool OnDropText( int x, int y, const wxChar *text ) = 0; - -}; - -//------------------------------------------------------------------------- -// wxPrivateDropTarget -//------------------------------------------------------------------------- - -class wxPrivateDropTarget: public wxDropTarget -{ -public: - - /* sets id to "application/myprogram" where "myprogram" is the - same as wxApp->GetAppName() */ - wxPrivateDropTarget(); - /* see SetId() below for explanation */ - wxPrivateDropTarget( const wxString &id ); - - virtual bool OnMove( int x, int y ); - virtual bool OnDrop( int x, int y ); - virtual bool OnData( int x, int y ); - - /* you have to override OnDropData to get at the data */ - virtual bool OnDropData( int x, int y, void *data, size_t size ) = 0; - - /* the string ID identifies the format of clipboard or DnD data. a word - processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - to the clipboard - the latter with the Id "application/wxword" or - "image/png". */ - void SetId( const wxString& id ) { m_id = id; } - wxString GetId() { return m_id; } - -private: - - wxString m_id; -}; - -//---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -//---------------------------------------------------------------------------- - -class wxFileDropTarget: public wxDropTarget -{ -public: - - wxFileDropTarget() {} - - virtual bool OnMove( int x, int y ); - virtual bool OnDrop( int x, int y ); - virtual bool OnData( int x, int y ); - - /* you have to override OnDropFiles to get at the file names */ - virtual bool OnDropFiles( int x, int y, size_t nFiles, const wxChar * const aszFiles[] ) = 0; - -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -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) - wxDragCancel // the operation was cancelled by user (not an error) -}; - -class wxDropSource: public wxObject -{ -public: - - /* constructor. set data later with SetData() */ - wxDropSource( wxWindow *win, const wxIcon &go = wxNullIcon, const wxIcon &stop = wxNullIcon ); - - /* constructor for setting one data object */ - wxDropSource( wxDataObject *data, wxWindow *win, const wxIcon &go = wxNullIcon, const wxIcon &stop = wxNullIcon ); - - /* constructor for setting several data objects via wxDataBroker */ - wxDropSource( wxDataBroker *data, wxWindow *win ); - - ~wxDropSource(); - - /* set several dataobjects via wxDataBroker */ - void SetData( wxDataBroker *data ); - - /* set one dataobject */ - void SetData( wxDataObject *data ); - - /* start drag action */ - wxDragResult DoDragDrop( bool bAllowMove = FALSE ); - - /* override to give feedback */ - virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; } - - /* GTK implementation */ - - void RegisterWindow(); - void UnregisterWindow(); - - GtkWidget *m_widget; - wxWindow *m_window; - wxDragResult m_retValue; - wxDataBroker *m_data; - - wxCursor m_defaultCursor; - wxCursor m_goaheadCursor; - - wxIcon m_goIcon; - wxIcon m_stopIcon; - - bool m_waiting; -}; - -#endif - - // wxUSE_DRAG_AND_DROP - -#endif - //__GTKDNDH__ - diff --git a/include/wx/gtk/filedlg.h b/include/wx/gtk/filedlg.h deleted file mode 100644 index 64485e5e4e..0000000000 --- a/include/wx/gtk/filedlg.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKFILEDLGH__ -#define __GTKFILEDLGH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dialog.h" - -//------------------------------------------------------------------------- -// File selector -//------------------------------------------------------------------------- - -extern const wxChar *wxFileSelectorPromptStr; -extern const wxChar *wxFileSelectorDefaultWildcardStr; - -class wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) - -public: - wxFileDialog() { } - - wxFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", - const wxString& defaultFile = "", - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, - const wxPoint& pos = wxDefaultPosition); - - void SetMessage(const wxString& message) { m_message = message; } - void SetPath(const wxString& path); - void SetDirectory(const wxString& dir) { m_dir = dir; } - void SetFilename(const wxString& name) { m_fileName = name; } - void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - void SetStyle(long style) { m_dialogStyle = style; } - void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - wxString GetMessage() const { return m_message; } - wxString GetPath() const { return m_path; } - wxString GetDirectory() const { return m_dir; } - wxString GetFilename() const { return m_fileName; } - wxString GetWildcard() const { return m_wildCard; } - long GetStyle() const { return m_dialogStyle; } - int GetFilterIndex() const { return m_filterIndex ; } - -protected: - - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; -}; - -#define wxOPEN 1 -#define wxSAVE 2 -#define wxOVERWRITE_PROMPT 4 -#define wxHIDE_READONLY 8 -#define wxFILE_MUST_EXIST 16 - -// File selector - backward compatibility -WXDLLEXPORT wxString -wxFileSelector(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - const wxChar *default_extension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString -wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - int *indexDefaultExtension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// Ask for filename to load -WXDLLEXPORT wxString -wxLoadFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *)NULL, - wxWindow *parent = (wxWindow *) NULL); - -// Ask for filename to save -WXDLLEXPORT wxString -wxSaveFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *) NULL, - wxWindow *parent = (wxWindow *) NULL); - -#endif - // __GTKFILEDLGH__ diff --git a/include/wx/gtk/font.h b/include/wx/gtk/font.h deleted file mode 100644 index 5cd30bc79a..0000000000 --- a/include/wx/gtk/font.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKFONTH__ -#define __GTKFONTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/hash.h" -#include "wx/gdiobj.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDC; -class wxPaintDC; -class wxWindow; - -class wxFont; -/* -class wxFontNameDirectory; -*/ - -//----------------------------------------------------------------------------- -// global variables -//----------------------------------------------------------------------------- - -/* -extern wxFontNameDirectory *wxTheFontNameDirectory; -*/ -extern const wxChar* wxEmptyString; - -//----------------------------------------------------------------------------- -// wxFont -//----------------------------------------------------------------------------- - -class wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) - -public: - wxFont(); - wxFont( int pointSize, int family, int style, int weight, bool underlined = FALSE, - const wxString& face = wxEmptyString ); - wxFont( const wxFont& font ); - ~wxFont(); - wxFont& operator = ( const wxFont& font ); - bool operator == ( const wxFont& font ) const; - bool operator != ( const wxFont& font ) const; - bool Ok() const; - - int GetPointSize() const; - int GetFamily() const; - int GetStyle() const; - int GetWeight() const; - bool GetUnderlined() const; - - void SetPointSize( int pointSize ); - void SetFamily( int family ); - void SetStyle( int style ); - void SetWeight( int weight ); - void SetFaceName( const wxString& faceName ); - void SetUnderlined( bool underlined ); - - wxString GetFaceName() const; - wxString GetFamilyString() const; - wxString GetStyleString() const; - wxString GetWeightString() const; - - // implementation - - wxFont( char *xFontName ); - void Unshare(); - - GdkFont* GetInternalFont(float scale = 1.0) const; - - // no data :-) -}; - -/* -//----------------------------------------------------------------------------- -// wxFontDirectory -//----------------------------------------------------------------------------- - -class wxFontNameDirectory: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFontNameDirectory) - - public: - wxFontNameDirectory(); - ~wxFontNameDirectory(); - - void Initialize(); - void Initialize(int fontid, int family, const char *name); - - int FindOrCreateFontId(const char *name, int family); - char* GetAFMName(int fontid, int weight, int style); - int GetFamily(int fontid); - int GetFontId(const char *name); - char* GetFontName(int fontid); - int GetNewFontId(); - char* GetPostScriptName(int fontid, int weight, int style); - char* GetScreenName(int fontid, int weight, int style); - - class wxHashTable *table; - int nextFontId; -}; -*/ - -#endif // __GTKFONTH__ diff --git a/include/wx/gtk/frame.h b/include/wx/gtk/frame.h deleted file mode 100644 index 5595a21347..0000000000 --- a/include/wx/gtk/frame.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKFRAMEH__ -#define __GTKFRAMEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/window.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMDIChildFrame; -class wxMDIClientWindow; -class wxMenu; -class wxMenuBar; -class wxToolBar; -class wxStatusBar; - -class wxFrame; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxFrameNameStr; -extern const wxChar *wxToolBarNameStr; - -//----------------------------------------------------------------------------- -// wxFrame -//----------------------------------------------------------------------------- - -class wxFrame: public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame() { Init(); } - wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr ); - ~wxFrame(); - bool Destroy(); - - virtual bool Show( bool show ); - virtual void Centre( int direction = wxHORIZONTAL ); - -#if wxUSE_STATUSBAR - virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0, - const wxString& name = _T("statusBar")); - virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id, - const wxString& name ); - virtual wxStatusBar *GetStatusBar() const; - inline void SetStatusBar(wxStatusBar *statusBar) { m_frameStatusBar = statusBar; } - virtual void SetStatusText( const wxString &text, int number = 0 ); - virtual void SetStatusWidths( int n, const int widths_field[] ); -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, - const wxString& name = wxToolBarNameStr); - virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name ); - virtual wxToolBar *GetToolBar() const; - void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } -#endif // wxUSE_TOOLBAR - - virtual void SetMenuBar( wxMenuBar *menuBar ); - virtual wxMenuBar *GetMenuBar() const; - - virtual void SetTitle( const wxString &title ); - virtual wxString GetTitle() const { return m_title; } - - // make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal = TRUE); - - virtual void SetIcon( const wxIcon &icon ); - virtual void Iconize( bool WXUNUSED(iconize)) { } - virtual bool IsIconized() const { return FALSE; } - bool Iconized() const { return IsIconized(); } - virtual void Maximize(bool WXUNUSED(maximize)) {} - virtual void Restore() {} - - virtual void Command( int id ); - - void OnCloseWindow( wxCloseEvent& event ); - void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp - void OnSize( wxSizeEvent &event ); - - void OnMenuHighlight( wxMenuEvent& event ); - - // implementation - - virtual void GtkOnSize( int x, int y, int width, int height ); - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin); - virtual void OnInternalIdle(); - - wxMenuBar *m_frameMenuBar; - wxStatusBar *m_frameStatusBar; - wxToolBar *m_frameToolBar; - wxString m_title; - wxIcon m_icon; - int m_miniEdge,m_miniTitle; - GtkWidget *m_mainWidget; - bool m_menuBarDetached; - bool m_toolBarDetached; - bool m_insertInClientArea; /* not from within OnCreateXXX */ - -protected: - // common part of all ctors - void Init(); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - virtual void DoSetClientSize(int width, int height); - virtual void DoGetClientSize( int *width, int *height ) const; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKFRAMEH__ diff --git a/include/wx/gtk/gauge.h b/include/wx/gtk/gauge.h deleted file mode 100644 index e75a0c41b5..0000000000 --- a/include/wx/gtk/gauge.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKGAUGEH__ -#define __GTKGAUGEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxGauge; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxGaugeNameStr; - -//----------------------------------------------------------------------------- -// wxGaugeBox -//----------------------------------------------------------------------------- - -class wxGauge: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge) - - public: - inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; } - - inline wxGauge( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr ) - { - Create(parent, id, range, pos, size, style, validator, name); - } - bool Create( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr ); - void SetShadowWidth( int WXUNUSED(w) ) {}; - void SetBezelFace( int WXUNUSED(w) ) {}; - void SetRange( int r ); - void SetValue( int pos ); - int GetShadowWidth() const { return 0; }; - int GetBezelFace() const { return 0; }; - int GetRange() const; - int GetValue() const; - - // Are we a Win95/GTK progress bar, or a normal gauge? - inline bool GetProgressBar() const { return m_useProgressBar; } - - // implementation - - void ApplyWidgetStyle(); - - int m_rangeMax; - int m_gaugePos; - bool m_useProgressBar; -}; - -#endif // __GTKGAUGEH__ diff --git a/include/wx/gtk/gdiobj.h b/include/wx/gtk/gdiobj.h deleted file mode 100644 index ac8e8e9447..0000000000 --- a/include/wx/gtk/gdiobj.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GDIOBJH__ -#define __GDIOBJH__ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface -#endif - -class wxGDIObject : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - -public: - inline wxGDIObject() { m_visible = FALSE; }; - inline ~wxGDIObject() {}; - - virtual bool GetVisible() { return m_visible; } - virtual void SetVisible( bool visible ) { m_visible = visible; } - -protected: - bool m_visible; /* can a pointer to this object be safely taken? - * - only if created within FindOrCreate... */ -}; - -#endif - // __GDIOBJH__ diff --git a/include/wx/gtk/icon.h b/include/wx/gtk/icon.h deleted file mode 100644 index e306018665..0000000000 --- a/include/wx/gtk/icon.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKICONH__ -#define __GTKICONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxIcon; - -//----------------------------------------------------------------------------- -// wxIcon -//----------------------------------------------------------------------------- - -class wxIcon: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - - wxIcon(); - wxIcon( const wxIcon& icon); - wxIcon( const char **bits, int width=-1, int height=-1 ); - - // For compatibility with wxMSW where desired size is sometimes required to - // distinguish between multiple icons in a resource. - wxIcon( const wxString& filename, int type = wxBITMAP_TYPE_XPM, int WXUNUSED(desiredWidth)=-1, int WXUNUSED(desiredHeight)=-1 ): - wxBitmap(filename, type) - { - } - wxIcon( char **bits, int width=-1, int height=-1 ); - - wxIcon& operator = (const wxIcon& icon); - inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; } - inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; } -}; - - -#endif // __GTKICONH__ diff --git a/include/wx/gtk/joystick.h b/include/wx/gtk/joystick.h deleted file mode 100644 index 957c16581a..0000000000 --- a/include/wx/gtk/joystick.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: Guilhem Lavaux -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __JOYSTICKH__ -#define __JOYSTICKH__ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" -#include "wx/thread.h" - -class WXDLLEXPORT wxJoystick: public wxObject, public wxThread -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition(void) const; - int GetZPosition(void) const; - int GetButtonState(void) const; - int GetPOVPosition(void) const; - int GetPOVCTSPosition(void) const; - int GetRudderPosition(void) const; - int GetUPosition(void) const; - int GetVPosition(void) const; - int GetMovementThreshold(void) const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk(void) const; // Checks that the joystick is functioning - int GetNumberJoysticks(void) const ; - int GetManufacturerId(void) const ; - int GetProductId(void) const ; - wxString GetProductName(void) const ; - int GetXMin(void) const; - int GetYMin(void) const; - int GetZMin(void) const; - int GetXMax(void) const; - int GetYMax(void) const; - int GetZMax(void) const; - int GetNumberButtons(void) const; - int GetNumberAxes(void) const; - int GetMaxButtons(void) const; - int GetMaxAxes(void) const; - int GetPollingMin(void) const; - int GetPollingMax(void) const; - int GetRudderMin(void) const; - int GetRudderMax(void) const; - int GetUMin(void) const; - int GetUMax(void) const; - int GetVMin(void) const; - int GetVMax(void) const; - - bool HasRudder(void) const; - bool HasZ(void) const; - bool HasU(void) const; - bool HasV(void) const; - bool HasPOV(void) const; - bool HasPOV4Dir(void) const; - bool HasPOVCTS(void) const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(void); - -protected: - int m_joystick; - wxPoint m_lastposition; - int m_axe[15]; - int m_buttons; - wxWindow *m_catchwin; - int m_polling; - - void *Entry(void); -}; - -#endif - // __JOYSTICKH__ - diff --git a/include/wx/gtk/listbox.h b/include/wx/gtk/listbox.h deleted file mode 100644 index fa19c2d4f9..0000000000 --- a/include/wx/gtk/listbox.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class declaration -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKLISTBOXH__ -#define __GTKLISTBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxListBox; -class wxArrayInt; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxListBoxNameStr; - -//----------------------------------------------------------------------------- -// wxListBox -//----------------------------------------------------------------------------- - -class wxListBox : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxListBox) - -public: - wxListBox(); - wxListBox( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr ) - { -#if wxUSE_CHECKLISTBOX - m_hasCheckBoxes = FALSE; -#endif // wxUSE_CHECKLISTBOX - Create(parent, id, pos, size, n, choices, style, validator, name); - } - virtual ~wxListBox(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - void Append( const wxString &item ); - void Append( const wxString &item, void* clientData ); - void Append( const wxString &item, wxClientData* clientData ); - - void InsertItems(int nItems, const wxString items[], int pos); - - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ); - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ); - - void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); } - wxClientData *GetClientObject() const { return wxControl::GetClientObject(); } - void SetClientData( void *data ) { wxControl::SetClientData( data ); } - void *GetClientData() const { return wxControl::GetClientData(); } - - void Clear(); - void Delete( int n ); - - void Deselect( int n ); - int FindString( const wxString &item ) const; - int GetSelection(void) const; - int GetSelections( class wxArrayInt &) const; - wxString GetString( int n ) const; - wxString GetStringSelection(void) const; - int Number(); - bool Selected( int n ); - void Set( int n, const wxString *choices ); - void SetFirstItem( int n ); - void SetFirstItem( const wxString &item ); - void SetSelection( int n, bool select = TRUE ); - void SetString( int n, const wxString &string ); - void SetStringSelection( const wxString &string, bool select = TRUE ); - -#if wxUSE_DRAG_AND_DROP - void SetDropTarget( wxDropTarget *dropTarget ); -#endif - - // implementation - - void AppendCommon( const wxString &item ); - int GetIndex( GtkWidget *item ) const; - GtkWidget *GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - -#if wxUSE_TOOLTIPS - void ApplyToolTip( GtkTooltips *tips, const wxChar *tip ); -#endif // wxUSE_TOOLTIPS - - GtkList *m_list; - wxList m_clientDataList; - wxList m_clientObjectList; - -#if wxUSE_CHECKLISTBOX - bool m_hasCheckBoxes; -#endif // wxUSE_CHECKLISTBOX -}; - -#endif // __GTKLISTBOXH__ diff --git a/include/wx/gtk/mdi.h b/include/wx/gtk/mdi.h deleted file mode 100644 index 152af27a48..0000000000 --- a/include/wx/gtk/mdi.h +++ /dev/null @@ -1,178 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __MDIH__ -#define __MDIH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/panel.h" -#include "wx/frame.h" -#include "wx/toolbar.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMDIParentFrame; -class wxMDIClientWindow; -class wxMDIChildFrame; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar* wxFrameNameStr; -extern const wxChar* wxStatusLineNameStr; - -//----------------------------------------------------------------------------- -// wxMDIParentFrame -//----------------------------------------------------------------------------- - -class wxMDIParentFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - - friend class wxMDIChildFrame; - -public: - - wxMDIParentFrame(void); - wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - ~wxMDIParentFrame(void); - bool Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - - - void GetClientSize(int *width, int *height) const; - wxMDIChildFrame *GetActiveChild() const; - - wxMDIClientWindow *GetClientWindow() const; - virtual wxMDIClientWindow *OnCreateClient(); - - virtual void Cascade() {} - virtual void Tile() {} - virtual void ArrangeIcons() {} - virtual void ActivateNext(); - virtual void ActivatePrevious(); - - void OnActivate( wxActivateEvent& event ); - void OnSysColourChanged( wxSysColourChangedEvent& event ); - - // implementation - - wxMDIClientWindow *m_clientWindow; - bool m_justInserted; - - virtual void GtkOnSize( int x, int y, int width, int height ); - virtual void OnInternalIdle(); - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxMDIChildFrame -//----------------------------------------------------------------------------- - -class wxMDIChildFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) - - public: - - wxMDIChildFrame(); - wxMDIChildFrame( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - ~wxMDIChildFrame(void); - bool Create( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - - virtual void SetMenuBar( wxMenuBar *menu_bar ); - virtual wxMenuBar *GetMenuBar() const; - - virtual void GetClientSize( int *width, int *height ) const; - virtual void AddChild( wxWindow *child ); - - virtual void Activate(); - - // no status bars - virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number)=1, long WXUNUSED(style)=1, - wxWindowID WXUNUSED(id)=1, const wxString& WXUNUSED(name)=WXSTRINGCAST NULL ) {return (wxStatusBar*)NULL; } - virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; } - virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {} - virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {} - - // no size hints - virtual void SetSizeHints( int WXUNUSED(minW), int WXUNUSED(minH), - int WXUNUSED(maxW), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH) ) {} - - // no toolbar bars - virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), - const wxString& WXUNUSED(name) ) { return (wxToolBar*)NULL; } - virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; } - - // no icon - void SetIcon( const wxIcon &icon ) { m_icon = icon; } - - // no title - void SetTitle( const wxString &title ) { m_title = title; } - wxString GetTitle() const { return m_title; } - - // no maximize etc - virtual void Maximize( bool WXUNUSED(maximize) ) {} - virtual void Restore() {} - - void OnActivate( wxActivateEvent &event ); - - // implementation - - wxMenuBar *m_menuBar; - GtkNotebookPage *m_page; - bool m_justInserted; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxMDIClientWindow -//----------------------------------------------------------------------------- - -class wxMDIClientWindow: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - -public: - - wxMDIClientWindow(void); - wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 ); - ~wxMDIClientWindow(void); - virtual bool CreateClient( wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL ); -}; - -#endif // __MDIH__ - diff --git a/include/wx/gtk/menu.h b/include/wx/gtk/menu.h deleted file mode 100644 index f09ee3bc04..0000000000 --- a/include/wx/gtk/menu.h +++ /dev/null @@ -1,195 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKMENUH__ -#define __GTKMENUH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/window.h" -#include "wx/menuitem.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMenuBar; -class wxMenuItem; -class wxMenu; - -//----------------------------------------------------------------------------- -// const -//----------------------------------------------------------------------------- - -#define ID_SEPARATOR (-1) - -//----------------------------------------------------------------------------- -// wxMenuBar -//----------------------------------------------------------------------------- - -class wxMenuBar : public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - -public: - // ctors - wxMenuBar(); - wxMenuBar(long style); - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - ~wxMenuBar(); - - // menubar construction - void Append( wxMenu *menu, const wxString &title ); - - // item search - // by menu and item names, returns wxNOT_FOUND if not found - virtual int FindMenuItem(const wxString& menuString, - const wxString& itemString) const; - // returns NULL if not found - wxMenuItem* FindItem( int id ) const; - // returns NULL if not found, fills menuForItem if !NULL - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const; - - // state control - void Check( int id, bool check ); - bool IsChecked( int id ) const; - void Enable( int id, bool enable ); - bool IsEnabled( int id ) const; - - void SetLabel( int id, const wxString &label ); - wxString GetLabel( int id ) const; - wxString GetLabel() const { return wxWindow::GetLabel(); } - - void EnableTop( int pos, bool flag ); - void SetLabelTop( int pos, const wxString& label ); - wxString GetLabelTop( int pos ) const; - - virtual void SetHelpString( int id, const wxString& helpString ); - virtual wxString GetHelpString( int id ) const; - - int GetMenuCount() const { return m_menus.Number(); } - wxMenu *GetMenu( int n ) const { return (wxMenu *)m_menus.Nth(n)->Data(); } - -#ifdef WXWIN_COMPATIBILITY - // compatibility: these functions are deprecated - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } - - wxMenuItem* FindMenuItemById( int id ) const { return FindItem(id); } -#endif // WXWIN_COMPATIBILITY - - // implementation only - wxList& GetMenus() { return m_menus; } - - void SetInvokingWindow( wxWindow *win ); - void UnsetInvokingWindow( wxWindow *win ); - - GtkAccelGroup *m_accel; - GtkItemFactory *m_factory; - wxList m_menus; - GtkWidget *m_menubar; -}; - -//----------------------------------------------------------------------------- -// wxMenu -//----------------------------------------------------------------------------- - -class wxMenu : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - wxMenu( const wxString& title = wxEmptyString, - const wxFunction func = (wxFunction) NULL ); - ~wxMenu(); - - // operations - // title - void SetTitle(const wxString& label); - const wxString GetTitle() const; - // menu creation - void AppendSeparator(); - void Append(int id, const wxString &item, - const wxString &helpStr = "", bool checkable = FALSE); - void Append(int id, const wxString &item, - wxMenu *subMenu, const wxString &helpStr = "" ); - void Append(wxMenuItem *pItem); - void Break() { } - - // find item by name/id - int FindItem( const wxString itemString ) const; - wxMenuItem *FindItem( int id ) const; - - // get/set item's state - void Enable( int id, bool enable ); - bool IsEnabled( int id ) const; - void Check( int id, bool check ); - bool IsChecked( int id ) const; - - void SetLabel( int id, const wxString &label ); - wxString GetLabel( int id ) const; - - // helpstring - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - // accessors - wxList& GetItems() { return m_items; } - - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - void SetClientData( void* clientData ) { m_clientData = clientData; } - void* GetClientData() const { return m_clientData; } - - // Updates the UI for a menu and all submenus recursively. - // source is the object that has the update event handlers - // defined for it. If NULL, the menu or associated window - // will be used. - void UpdateUI(wxEvtHandler* source = (wxEvtHandler*) NULL); - - wxMenuItem *FindItemForId( int id ) const { return FindItem( id ); } - -#ifdef WXWIN_COMPATIBILITY - wxFunction GetCallback() const { return m_callback; } - void Callback(const wxFunction func) { m_callback = func; } - - // compatibility: these functions are deprecated - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } -#endif // WXWIN_COMPATIBILITY - - // implementation - int FindMenuIdByMenuItem( GtkWidget *menuItem ) const; - void SetInvokingWindow( wxWindow *win ); - wxWindow *GetInvokingWindow(); - - // implementation GTK only - GtkWidget *m_menu; // GtkMenu - GtkWidget *m_owner; - GtkAccelGroup *m_accel; - GtkItemFactory *m_factory; - -private: - - wxString m_title; - wxList m_items; - wxWindow *m_invokingWindow; - wxFunction m_callback; - wxEvtHandler *m_eventHandler; - void *m_clientData; -}; - -#endif // __GTKMENUH__ diff --git a/include/wx/gtk/menuitem.h b/include/wx/gtk/menuitem.h deleted file mode 100644 index 0575a81dab..0000000000 --- a/include/wx/gtk/menuitem.h +++ /dev/null @@ -1,97 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h -// Purpose: wxMenuItem class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKMENUITEMH__ -#define __GTKMENUITEMH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define ID_SEPARATOR (-1) - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMenuItem; -class wxMenu; - -//----------------------------------------------------------------------------- -// wxMenuItem -//----------------------------------------------------------------------------- - -class wxMenuItem : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - wxMenuItem(); - - // accessors - // id - void SetId(int id) { m_id = id; } - int GetId() const { return m_id; } - bool IsSeparator() const { return m_id == ID_SEPARATOR; } - - // the item's text = name - void SetName(const wxString& str); - void SetText(const wxString& str) { SetName(str); } // compatibility - const wxString& GetName() const { return m_text; } - const wxString& GetText() const { return GetName(); } - - // what kind of menu item we are - void SetCheckable(bool checkable) { m_isCheckMenu = checkable; } - bool IsCheckable() const { return m_isCheckMenu; } - void SetSubMenu(wxMenu *menu) { m_subMenu = menu; } - wxMenu *GetSubMenu() const { return m_subMenu; } - bool IsSubMenu() const { return m_subMenu != NULL; } - - // state - void Enable( bool enable = TRUE ); - bool IsEnabled() const { return m_isEnabled; } - void Check( bool check = TRUE ); - bool IsChecked() const; - - // help string (displayed in the status bar by default) - void SetHelp(const wxString& str) { m_helpStr = str; } - const wxString& GetHelp() const { return m_helpStr; } - - // implementation - void SetMenuItem(GtkWidget *menuItem) { m_menuItem = menuItem; } - GtkWidget *GetMenuItem() const { return m_menuItem; } - - wxString GetHotKey() const { return m_hotKey; } - - void SetCheckedFlag(bool checked) { m_isChecked = checked; } - bool GetCheckedFlag() const { return m_isChecked; } - -private: - int m_id; - wxString m_text; - wxString m_hotKey; - bool m_isCheckMenu; - bool m_isChecked; - bool m_isEnabled; - wxMenu *m_subMenu; - wxString m_helpStr; - - GtkWidget *m_menuItem; // GtkMenuItem -}; - - -#endif - //__GTKMENUITEMH__ diff --git a/include/wx/gtk/minifram.h b/include/wx/gtk/minifram.h deleted file mode 100644 index 1828439281..0000000000 --- a/include/wx/gtk/minifram.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.h -// Purpose: wxMiniFrame class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKMINIFRAMEH__ -#define __GTKMINIFRAMEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/frame.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMiniFrame; - -//----------------------------------------------------------------------------- -// wxMiniFrame -//----------------------------------------------------------------------------- - -class wxMiniFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMiniFrame) - -public: - wxMiniFrame() {} - wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr); - - // implementation - - bool m_isDragging; - int m_oldX,m_oldY; - int m_diffX,m_diffY; -}; - -#endif - // __GTKMINIFRAMEH__ diff --git a/include/wx/gtk/notebook.h b/include/wx/gtk/notebook.h deleted file mode 100644 index 2d10456907..0000000000 --- a/include/wx/gtk/notebook.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.h -// Purpose: wxNotebook class -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Robert Roebling -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKNOTEBOOKH__ -#define __GTKNOTEBOOKH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxImageList; -class wxNotebook; -class wxNotebookPage; - -//----------------------------------------------------------------------------- -// wxNotebook -//----------------------------------------------------------------------------- - -class wxNotebook : public wxControl -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // dtor - ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - int GetPageCount() const; - - // set the currently selected page, return the index of the previously - // selected one (or -1 on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(int nPage); - // cycle thru the tabs - void AdvanceSelection(bool bForward = TRUE); - // get the currently selected page - int GetSelection() const; - - // set/get the title of a page - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - // get pointer (may be NULL) to the associated image list - wxImageList *GetImageList() const { return m_imageList; } - - // sets/returns item's image index in the current image list - int GetPageImage(int nPage) const; - bool SetPageImage(int nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - // sets the size of the tabs (assumes all tabs are the same size) - void SetTabSize(const wxSize& sz); - - // operations - // ---------- - // remove one page from the notebook but do not destroy it - bool RemovePage(int nPage); - // remove one page from the notebook - bool DeletePage(int nPage); - // remove all pages - bool DeleteAllPages(); - - // adds a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool AddPage( wxWindow *win, - const wxString& strText, - bool select = FALSE, - int imageId = -1 ); - // the same as AddPage(), but adds it at the specified position - bool InsertPage( int position, - wxWindow *win, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1 ); - - // get the panel which represents the given page - wxWindow *GetPage(int nPage) const; - - void OnNavigationKey(wxNavigationKeyEvent& event); - - // implementation - - void SetConstraintSizes(bool recurse); - bool DoPhase(int phase); - void ApplyWidgetStyle(); - - // report if window belongs to notebook - bool IsOwnGtkWindow( GdkWindow *window ); - - // common part of all ctors - void Init(); - - // helper function - wxNotebookPage* GetNotebookPage(int page) const; - - wxImageList* m_imageList; - wxList m_pages; - int m_lastSelection; /* hack */ - - DECLARE_DYNAMIC_CLASS(wxNotebook) - DECLARE_EVENT_TABLE() -}; - -#endif - // __GTKNOTEBOOKH__ diff --git a/include/wx/gtk/palette.h b/include/wx/gtk/palette.h deleted file mode 100644 index 8574526cb3..0000000000 --- a/include/wx/gtk/palette.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKPALETTEH__ -#define __GTKPALETTEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPalette; - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -class wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - - public: - - wxPalette(); - wxPalette( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue ); - wxPalette( const wxPalette& palette ); - ~wxPalette(); - wxPalette& operator = ( const wxPalette& palette ); - bool operator == ( const wxPalette& palette ); - bool operator != ( const wxPalette& palette ); - bool Ok() const; - - bool Create( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel( const unsigned char red, const unsigned char green, const unsigned char blue ) const; - bool GetRGB( int pixel, unsigned char *red, unsigned char *green, unsigned char *blue ) const; - - // no data -}; - -#define wxColorMap wxPalette -#define wxColourMap wxPalette - -#endif // __GTKPALETTEH__ diff --git a/include/wx/gtk/pen.h b/include/wx/gtk/pen.h deleted file mode 100644 index fb37103370..0000000000 --- a/include/wx/gtk/pen.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKPENH__ -#define __GTKPENH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPen; - -//----------------------------------------------------------------------------- -// wxPen -//----------------------------------------------------------------------------- - -class wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) - - public: - - wxPen(); - wxPen( const wxColour &colour, int width, int style ); - wxPen( const wxPen& pen ); - ~wxPen(); - wxPen& operator = ( const wxPen& pen ); - bool operator == ( const wxPen& pen ); - bool operator != ( const wxPen& pen ); - - void SetColour( const wxColour &colour ); - void SetColour( int red, int green, int blue ); - void SetCap( int capStyle ); - void SetJoin( int joinStyle ); - void SetStyle( int style ); - void SetWidth( int width ); - wxColour &GetColour() const; - int GetCap() const; - int GetJoin() const; - int GetStyle() const; - int GetWidth() const; - bool Ok() const; - - void Unshare(); - - // no data :-) -}; - -#endif // __GTKPENH__ diff --git a/include/wx/gtk/radiobox.h b/include/wx/gtk/radiobox.h deleted file mode 100644 index a73c1a608e..0000000000 --- a/include/wx/gtk/radiobox.h +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKRADIOBOXH__ -#define __GTKRADIOBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxRadioBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxRadioBoxNameStr; - -//----------------------------------------------------------------------------- -// wxRadioBox -//----------------------------------------------------------------------------- - -class wxRadioBox: public wxControl -{ - - DECLARE_DYNAMIC_CLASS(wxRadioBox) - -public: - wxRadioBox(); - inline wxRadioBox( wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - int majorDim = 1, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr ) - { - Create( parent, id, title, pos, size, n, choices, majorDim, style, val, name ); - } - ~wxRadioBox(void); - bool Create( wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr ); - - int FindString( const wxString& s) const; - void SetSelection( int n ); - int GetSelection() const; - - wxString GetString( int n ) const; - - wxString GetLabel( int item ) const; - wxString GetLabel() const { return wxControl::GetLabel(); } - void SetLabel( const wxString& label ); - void SetLabel( int item, const wxString& label ); - - /* doesn't work */ - void SetLabel( int item, wxBitmap *bitmap ); - - bool Show( bool show ); - void Show( int item, bool show ); - - bool Enable( bool enable ); - void Enable( int item, bool enable ); - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection( const wxString& s ); - - virtual int Number() const; - int GetNumberOfRowsOrCols() const; - void SetNumberOfRowsOrCols( int n ); - - void OnSize( wxSizeEvent &event ); - void SetFocus(); - - // implementation - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - wxSize LayoutItems(); - - bool m_alreadySent; - int m_majorDim; - wxList m_boxes; - - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKRADIOBOXH__ diff --git a/include/wx/gtk/radiobut.h b/include/wx/gtk/radiobut.h deleted file mode 100644 index 35a610b1ad..0000000000 --- a/include/wx/gtk/radiobut.h +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKRADIOBUTTONH__ -#define __GTKRADIOBUTTONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxRadioButton; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern const char* wxRadioButtonNameStr; - -//----------------------------------------------------------------------------- -// wxRadioButton -//----------------------------------------------------------------------------- - -class wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) - - public: - inline wxRadioButton() {} - inline wxRadioButton( wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr ) - { - Create( parent, id, label, pos, size, style, validator, name ); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr ); - virtual void SetLabel(const wxString& label); - virtual void SetValue(bool val); - virtual bool GetValue() const; - bool Enable( bool enable ); - - // implementation - - void ApplyWidgetStyle(); - - bool m_blockFirstEvent; - GtkWidget* m_theOtherRadioButtton; -}; - -#endif // __GTKRADIOBUTTONH__ diff --git a/include/wx/gtk/region.h b/include/wx/gtk/region.h deleted file mode 100644 index b61066a208..0000000000 --- a/include/wx/gtk/region.h +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __REGIONH__ -#define __REGIONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxRegion; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -enum wxRegionContain -{ - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -class wxRegion : public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxRegion); - - public: - - wxRegion( long x, long y, long w, long h ); - wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight ); - wxRegion( const wxRect& rect ); - wxRegion(void); - ~wxRegion(void); - - inline wxRegion( const wxRegion& r ): wxGDIObject() - { Ref(r); } - inline wxRegion& operator = ( const wxRegion& r ) - { Ref(r); return (*this); } - - bool operator == ( const wxRegion& region ); - bool operator != ( const wxRegion& region ); - - void Clear(void); - - bool Union( long x, long y, long width, long height ); - bool Union( const wxRect& rect ); - bool Union( const wxRegion& region ); - - bool Intersect( long x, long y, long width, long height ); - bool Intersect( const wxRect& rect ); - bool Intersect( const wxRegion& region ); - - bool Subtract( long x, long y, long width, long height ); - bool Subtract( const wxRect& rect ); - bool Subtract( const wxRegion& region ); - - bool Xor( long x, long y, long width, long height ); - bool Xor( const wxRect& rect ); - bool Xor( const wxRegion& region ); - - void GetBox( long& x, long& y, long&w, long &h ) const; - wxRect GetBox(void) const ; - - bool Empty(void) const; - - wxRegionContain Contains( long x, long y ) const; - wxRegionContain Contains( long x, long y, long w, long h ) const; - wxRegionContain Contains(const wxPoint& pt) const; - wxRegionContain Contains(const wxRect& rect) const; - - public: - - wxList *GetRectList() const; - GdkRegion *GetRegion(void) const; -}; - -class wxRegionIterator: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxRegionIterator); - - public: - - wxRegionIterator(void); - wxRegionIterator(const wxRegion& region); - - void Reset(void) { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool (void) const; - bool HaveRects(void) const; - - void operator ++ (void); - void operator ++ (int); - - long GetX(void) const; - long GetY(void) const; - long GetW(void) const; - long GetWidth(void) const { return GetW(); } - long GetH(void) const; - long GetHeight(void) const { return GetH(); } - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); } - - private: - - long m_current; - wxRegion m_region; -}; - - -#endif - // __REGIONH__ diff --git a/include/wx/gtk/scrolbar.h b/include/wx/gtk/scrolbar.h deleted file mode 100644 index 98a3da43b1..0000000000 --- a/include/wx/gtk/scrolbar.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSCROLLBARH__ -#define __GTKSCROLLBARH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxScrollBar; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxScrollBarNameStr; - -//----------------------------------------------------------------------------- -// wxScrollBar -//----------------------------------------------------------------------------- - -class wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - - public: - - wxScrollBar(void) { m_adjust = (GtkAdjustment *) NULL; m_oldPos = 0.0; }; - inline wxScrollBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr ) - { - Create( parent, id, pos, size, style, validator, name ); - } - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr ); - ~wxScrollBar(void); - int GetThumbPosition(void) const; - int GetThumbSize() const; - int GetPageSize() const; - int GetRange() const; - virtual void SetThumbPosition( int viewStart ); - virtual void SetScrollbar( int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE ); - - // Backward compatibility - - int GetValue(void) const; - void SetValue( int viewStart ); - void GetValues( int *viewStart, int *viewLength, int *objectLength, int *pageLength) const; - int GetViewLength() const; - int GetObjectLength() const; - void SetPageSize( int pageLength ); - void SetObjectLength( int objectLength ); - void SetViewLength( int viewLength ); - - // implementation - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; -}; - -#endif - // __GTKSCROLLBARH__ diff --git a/include/wx/gtk/settings.h b/include/wx/gtk/settings.h deleted file mode 100644 index 9e7db68bcd..0000000000 --- a/include/wx/gtk/settings.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKSETTINGSH__ -#define __GTKSETTINGSH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/font.h" - -class wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings() {} - - inline static void Init() {} - static void Done(); - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // __GTKSETTINGSH__ diff --git a/include/wx/gtk/slider.h b/include/wx/gtk/slider.h deleted file mode 100644 index 1e2714065a..0000000000 --- a/include/wx/gtk/slider.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKSLIDERH__ -#define __GTKSLIDERH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxSlider; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxSliderNameStr; - -//----------------------------------------------------------------------------- -// wxSlider -//----------------------------------------------------------------------------- - -class wxSlider: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSlider) - - public: - wxSlider(void); - inline wxSlider( wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr ) - { - Create( parent, id, value, minValue, maxValue, pos, size, style, validator, name ); - } - ~wxSlider(void); - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr ); - virtual int GetValue(void) const; - virtual void SetValue( int ); - void SetRange( int minValue, int maxValue ); - int GetMin(void) const; - int GetMax(void) const; - void SetTickFreq( int n, int pos ); - int GetTickFreq(void) const; - void SetPageSize( int pageSize ); - int GetPageSize(void) const; - void ClearSel(void); - void ClearTicks(void); - void SetLineSize( int lineSize ); - int GetLineSize(void) const; - int GetSelEnd(void) const; - int GetSelStart(void) const; - void SetSelection( int minPos, int maxPos ); - void SetThumbLength( int len ); - int GetThumbLength(void) const; - void SetTick( int tickPos ); - - // implementation - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; - -}; - -#endif // __GTKSLIDERH__ diff --git a/include/wx/gtk/spinbutt.h b/include/wx/gtk/spinbutt.h deleted file mode 100644 index 88161fd770..0000000000 --- a/include/wx/gtk/spinbutt.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.h -// Purpose: wxSpinButton class -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKSPINPUTTH__ -#define __GTKSPINBUTTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxSpinButton; -class wxSpinEvent; - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -class wxSpinButton : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - -public: - wxSpinButton(); - inline wxSpinButton( wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton") - { - Create(parent, id, pos, size, style, name); - } - ~wxSpinButton(); - bool Create( wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton" ); - - int GetValue() const; - void SetValue( int value ); - void SetRange( int minVal, int maxVal ); - int GetMin() const; - int GetMax() const; - -// implementation - - void OnSize( wxSizeEvent &event ); - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxSpinEvent -//----------------------------------------------------------------------------- - -class wxSpinEvent : public wxScrollEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - -public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// Spin events - -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } - -#define EVT_SPIN(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, - -#endif - // __GTKSPINBUTTH__ diff --git a/include/wx/gtk/statbmp.h b/include/wx/gtk/statbmp.h deleted file mode 100644 index ab6e7c331d..0000000000 --- a/include/wx/gtk/statbmp.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICBITMAPH__ -#define __GTKSTATICBITMAPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/control.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticBitmap; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxStaticBitmapNameStr; - -//----------------------------------------------------------------------------- -// wxStaticBitmap -//----------------------------------------------------------------------------- - -class wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - - public: - - wxStaticBitmap(void); - wxStaticBitmap( wxWindow *parent, wxWindowID id, const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxStaticBitmapNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxStaticBitmapNameStr); - virtual void SetBitmap( const wxBitmap& bitmap ); - wxBitmap& GetBitmap(void) const { return (wxBitmap&)m_bitmap; } - - private: - - wxBitmap m_bitmap; -}; - -#endif // __GTKSTATICBITMAPH__ diff --git a/include/wx/gtk/statbox.h b/include/wx/gtk/statbox.h deleted file mode 100644 index 7d827c0d4b..0000000000 --- a/include/wx/gtk/statbox.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stabox.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICBOXH__ -#define __GTKSTATICBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxStaticBoxNameStr; - -//----------------------------------------------------------------------------- -// wxStaticBox -//----------------------------------------------------------------------------- - -class wxStaticBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBox) - - public: - - wxStaticBox(void); - wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticBoxNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticBoxNameStr ); - void SetLabel( const wxString &label ); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKSTATICBOXH__ diff --git a/include/wx/gtk/statline.h b/include/wx/gtk/statline.h deleted file mode 100644 index c6819e51a5..0000000000 --- a/include/wx/gtk/statline.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statline.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICLINEH__ -#define __GTKSTATICLINEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticLine; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxStaticTextNameStr; - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -class wxStaticLine: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - - public: - - wxStaticLine(void); - wxStaticLine( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr ); - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr ); - -}; - -#endif // __GTKSTATICLINEH__ diff --git a/include/wx/gtk/stattext.h b/include/wx/gtk/stattext.h deleted file mode 100644 index 1febeb3139..0000000000 --- a/include/wx/gtk/stattext.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICTEXTH__ -#define __GTKSTATICTEXTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticText; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxStaticTextNameStr; - -//----------------------------------------------------------------------------- -// wxStaticText -//----------------------------------------------------------------------------- - -class wxStaticText: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticText) - - public: - - wxStaticText(void); - wxStaticText( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticTextNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticTextNameStr ); - wxString GetLabel(void) const; - void SetLabel( const wxString &label ); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKSTATICTEXTH__ diff --git a/include/wx/gtk/tbargtk.h b/include/wx/gtk/tbargtk.h deleted file mode 100644 index 39545eb984..0000000000 --- a/include/wx/gtk/tbargtk.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbargtk.h -// Purpose: GTK toolbar -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TBARGTKH__ -#define __TBARGTKH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/tbarbase.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxToolBarTool; -class wxToolBar; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxTOOL_STYLE_BUTTON 1 -#define wxTOOL_STYLE_SEPARATOR 2 - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxToolBarNameStr; - -//----------------------------------------------------------------------------- -// wxToolBar -//----------------------------------------------------------------------------- - -class wxToolBar: public wxControl -{ - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxToolBar) - - public: - - wxToolBar(void); - wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr ); - ~wxToolBar(void); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr); - - // Only allow toggle if returns TRUE. Call when left button up. - virtual bool OnLeftClick(int toolIndex, bool toggleDown); - - // Call when right button down. - virtual void OnRightClick(int toolIndex, float x, float y); - - // Called when the mouse cursor enters a tool bitmap. - // Argument is -1 if mouse is exiting the toolbar. - virtual void OnMouseEnter(int toolIndex); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - virtual wxToolBarTool *AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, bool toggle = FALSE, - float xPos = -1, float yPos = -1, wxObject *clientData = (wxObject *)NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - virtual void AddSeparator(void); - virtual void ClearTools(void); - - virtual bool Realize(void); - - virtual void EnableTool(int toolIndex, bool enable); - virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - virtual wxObject *GetToolClientData(int index) const; - - virtual bool GetToolState(int toolIndex) const; - virtual bool GetToolEnabled(int toolIndex) const; - - virtual void SetMargins(int x, int y); - void SetMargins(const wxSize& size) { SetMargins(size.x, size.y); }; - virtual wxSize GetToolMargins(void) { return wxSize(m_xMargin, m_yMargin); } - - virtual void SetToolPacking(int packing); - virtual void SetToolSeparation(int separation); - virtual int GetToolPacking(); - virtual int GetToolSeparation(); - - virtual wxString GetToolLongHelp(int toolIndex); - virtual wxString GetToolShortHelp(int toolIndex); - - virtual void SetToolLongHelp(int toolIndex, const wxString& helpString); - virtual void SetToolShortHelp(int toolIndex, const wxString& helpString); - - void OnIdle( wxIdleEvent &ievent ); - - // implementation - - GtkToolbar *m_toolbar; - int m_separation; - wxList m_tools; - - GdkColor *m_fg; - GdkColor *m_bg; - int m_xMargin; - int m_yMargin; - bool m_hasToolAlready; -}; - -#endif - // __TBARGTKH__ diff --git a/include/wx/gtk/textctrl.h b/include/wx/gtk/textctrl.h deleted file mode 100644 index 95161e5246..0000000000 --- a/include/wx/gtk/textctrl.h +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKTEXTCTRLH__ -#define __GTKTEXTCTRLH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/control.h" - -#if wxUSE_STD_IOSTREAM - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -#else - -#define NO_TEXT_WINDOW_STREAM - -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxTextCtrl; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxTextCtrlNameStr; - -//----------------------------------------------------------------------------- -// wxTextCtrl -//----------------------------------------------------------------------------- - -#ifndef NO_TEXT_WINDOW_STREAM -class wxTextCtrl: public wxControl, public streambuf -#else -class wxTextCtrl: public wxControl -#endif -{ - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTextCtrl); - - public: - wxTextCtrl(); - wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value = "", - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - int style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &value = "", - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - int style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr ); - wxString GetValue() const; - void SetValue( const wxString &value ); - void WriteText( const wxString &text ); - void AppendText( const wxString &text ); - - bool LoadFile( const wxString &file ); - bool SaveFile( const wxString &file ); - bool IsModified() const { return m_modified; } - void SetModified() { m_modified = TRUE; } - void DiscardEdits() { m_modified = FALSE; } - wxString GetLineText( long lineNo ) const; - void OnDropFiles( wxDropFilesEvent &event ); - long PositionToXY( long pos, long *x, long *y ) const; - long XYToPosition( long x, long y ) const; - int GetLineLength(long lineNo) const; - int GetNumberOfLines() const; - virtual void SetInsertionPoint( long pos ); - virtual void SetInsertionPointEnd(); - virtual void SetEditable( bool editable ); - virtual void SetSelection( long from, long to ); - void ShowPosition( long pos ); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - virtual void Remove( long from, long to ); - virtual void Replace( long from, long to, const wxString &value ); - void Cut(); - void Copy(); - void Paste(); - void Clear(); - - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - // If the return values from and to are the same, there is no - // selection. - virtual void GetSelection(long* from, long* to) const; - virtual bool IsEditable() const ; - - void OnChar( wxKeyEvent &event ); - - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); -#endif - - bool SetFont( const wxFont &font ); - bool SetForegroundColour(const wxColour &colour); - bool SetBackgroundColour(const wxColour &colour); - - // implementation - - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - void CalculateScrollbar(); - - private: - - bool m_modified; - GtkWidget *m_text; - GtkWidget *m_vScrollbar; - bool m_vScrollbarVisible; -}; - -#endif // __GTKTEXTCTRLH__ - - diff --git a/include/wx/gtk/timer.h b/include/wx/gtk/timer.h deleted file mode 100644 index ad3fbc619d..0000000000 --- a/include/wx/gtk/timer.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKTIMERH__ -#define __GTKTIMERH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class wxTimer; - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -/* Timer functions (milliseconds) */ -void wxStartTimer(); - -/* Gets time since last wxStartTimer or wxGetElapsedTime */ -long wxGetElapsedTime(bool resetTimer = TRUE); - -/* EXPERIMENTAL: comment this out if it doesn't compile. */ -bool wxGetLocalTime(long *timeZone, int *dstObserved); - -/* Get number of seconds since 00:00:00 GMT, Jan 1st 1970. */ -long wxGetCurrentTime(); - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -class wxTimer: public wxObject -{ -public: - wxTimer(); - ~wxTimer(); - - int Interval() const { return m_time; } - - bool OneShot() const { return m_oneShot; } - - virtual bool Start( int millisecs = -1, bool oneShot = FALSE ); - virtual void Stop(); - - virtual void Notify() = 0; // override this - -protected: - int m_tag; - int m_time; - bool m_oneShot; - -private: - DECLARE_ABSTRACT_CLASS(wxTimer) -}; - -#endif // __GTKTIMERH__ diff --git a/include/wx/gtk/tooltip.h b/include/wx/gtk/tooltip.h deleted file mode 100644 index eed2386111..0000000000 --- a/include/wx/gtk/tooltip.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tooltip.h -// Purpose: wxToolTip class -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKTOOLTIPH__ -#define __GTKTOOLTIPH__ - -#ifdef __GNUG__ - #pragma interface -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/object.h" - -//----------------------------------------------------------------------------- -// forward declarations -//----------------------------------------------------------------------------- - -class wxToolTip; -class wxWindow; - -//----------------------------------------------------------------------------- -// wxToolTip -//----------------------------------------------------------------------------- - -class wxToolTip : public wxObject -{ -public: - // globally change the tooltip parameters - static void Enable( bool flag ); - static void SetDelay( long msecs ); - - wxToolTip( const wxString &tip ); - - // get/set the tooltip text - void SetTip( const wxString &tip ); - wxString GetTip() const { return m_text; } - - wxWindow *GetWindow() const { return m_window; } - bool IsOk() const { return m_window != NULL; } - - // implementation - void Apply( wxWindow *win ); - -private: - wxString m_text; - wxWindow *m_window; -}; - -#endif // __GTKTOOLTIPH__ diff --git a/include/wx/gtk/treectrl.h b/include/wx/gtk/treectrl.h deleted file mode 100644 index 7598a25c5a..0000000000 --- a/include/wx/gtk/treectrl.h +++ /dev/null @@ -1,492 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h -// Purpose: wxTreeCtrl class -// Author: Denis Pershin -// Modified by: -// Created: 08/08/98 -// RCS-ID: $Id$ -// Copyright: (c) Denis Pershin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREECTRL_H_ -#define _WX_TREECTRL_H_ - -#ifdef __GNUG__ -#pragma interface "treectrl.h" -#endif - -#include "wx/textctrl.h" -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -#include - -// the type for "untyped" data -typedef long wxDataType; - -// fwd decl -class wxImageList; -struct wxTreeViewItem; - -// a callback function used for sorting tree items, it should return -1 if the -// first item precedes the second, +1 if the second precedes the first or 0 if -// they're equivalent -class wxTreeItemData; -typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2); - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: - // above the client area. -static const int wxTREE_HITTEST_ABOVE = 0x0001; - // below the client area. -static const int wxTREE_HITTEST_BELOW = 0x0002; - // in the client area but below the last item. -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the button associated with an item. -static const int wxTREE_HITTEST_ONITEMBUTTON = 0x0010; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0020; - // in the indentation associated with an item. -static const int wxTREE_HITTEST_ONITEMINDENT = 0x0040; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0080; - // in the area to the right of an item. -static const int wxTREE_HITTEST_ONITEMRIGHT = 0x0100; - // on the state icon for a tree view item that is in a user-defined state. -static const int wxTREE_HITTEST_ONITEMSTATEICON = 0x0200; - // to the right of the client area. -static const int wxTREE_HITTEST_TOLEFT = 0x0400; - // to the left of the client area. -static const int wxTREE_HITTEST_TORIGHT = 0x0800; - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL | - wxTREE_HITTEST_ONITEMSTATEICON; - -// NB: all the following flags are for compatbility only and will be removed in -// next versions - -// flags for deprecated `Expand(int action)' -enum -{ - wxTREE_EXPAND_EXPAND, - wxTREE_EXPAND_COLLAPSE, - wxTREE_EXPAND_COLLAPSE_RESET, - wxTREE_EXPAND_TOGGLE -}; - -// flags for deprecated InsertItem() variant -#define wxTREE_INSERT_FIRST 0xFFFF0001 -#define wxTREE_INSERT_LAST 0xFFFF0002 - -// ---------------------------------------------------------------------------- -// wxTreeItemId identifies an element of the tree. In this implementation, it's -// just a trivial wrapper around GTK GtkTreeItem *. It's opaque for the -// application. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemId { -public: - // ctors - wxTreeItemId() { m_itemId = NULL; } - - // default copy ctor/assignment operator are ok for us - - // accessors - // is this a valid tree item? - bool IsOk() const { return m_itemId != NULL; } - - // conversion to/from either real (system-dependent) tree item id or - // to "long" which used to be the type for tree item ids in previous - // versions of wxWindows - - // for wxTreeCtrl usage only - wxTreeItemId(GtkTreeItem *itemId) { m_itemId = itemId; } - operator GtkTreeItem *() const { return m_itemId; } - void operator =(GtkTreeItem *item) { m_itemId = item; } - -protected: - GtkTreeItem *m_itemId; -}; - -// ---------------------------------------------------------------------------- -// wxTreeItemData is some (arbitrary) user class associated with some item. The -// main advantage of having this class (compared to old untyped interface) is -// that wxTreeItemData's are destroyed automatically by the tree and, as this -// class has virtual dtor, it means that the memory will be automatically -// freed. OTOH, we don't just use wxObject instead of wxTreeItemData because -// the size of this class is critical: in any real application, each tree leaf -// will have wxTreeItemData associated with it and number of leaves may be -// quite big. -// -// Because the objects of this class are deleted by the tree, they should -// always be allocated on the heap! -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemData : private wxTreeItemId { -public: - // default ctor/copy ctor/assignment operator are ok - - // dtor is virtual and all the items are deleted by the tree control when - // it's deleted, so you normally don't have to care about freeing memory - // allocated in your wxTreeItemData-derived class - virtual ~wxTreeItemData() { } - - // accessors: set/get the item associated with this node - void SetId(const wxTreeItemId& id) { m_itemId = id; } - const wxTreeItemId& GetId() const { return (wxTreeItemId&) m_itemId; } -}; - -class WXDLLEXPORT wxTreeCtrl: public wxControl { -public: - // creation - // -------- - wxTreeCtrl() { Init(); } - - wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl") { - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl"); - - // accessors - // --------- - - // get the total number of items in the control - size_t GetCount() const; - - // indent is the number of pixels the children are indented relative to - // the parents position. SetIndent() also redraws the control - // immediately. - unsigned int GetIndent() const; - void SetIndent(unsigned int indent); - - // image list: these functions allow to associate an image list with - // the control and retrieve it. Note that the control does _not_ delete - // the associated image list when it's deleted in order to allow image - // lists to be shared between different controls. - // - // The normal image list is for the icons which correspond to the - // normal tree item state (whether it is selected or not). - // Additionally, the application might choose to show a state icon - // which corresponds to an app-defined item state (for example, - // checked/unchecked) which are taken from the state image list. - wxImageList *GetImageList() const; - wxImageList *GetStateImageList() const; - - void SetImageList(wxImageList *imageList); - void SetStateImageList(wxImageList *imageList); - - // Functions to work with tree ctrl items. Unfortunately, they can _not_ be - // member functions of wxTreeItem because they must know the tree the item - // belongs to for Windows implementation and storing the pointer to - // wxTreeCtrl in each wxTreeItem is just too much waste. - - // accessors - // --------- - - // retrieve items label - wxString GetItemText(const wxTreeItemId& item) const; - // get the normal item image - int GetItemImage(const wxTreeItemId& item) const; - // get the selected item image - int GetItemSelectedImage(const wxTreeItemId& item) const; - // get the data associated with the item - wxTreeItemData *GetItemData(const wxTreeItemId& item) const; - - // modifiers - // --------- - - // set items label - void SetItemText(const wxTreeItemId& item, const wxString& text); - // set the normal item image - void SetItemImage(const wxTreeItemId& item, int image); - // set the selected item image - void SetItemSelectedImage(const wxTreeItemId& item, int image); - // associate some data with the item - void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); - - // item status inquiries - // --------------------- - - // is the item visible (it might be outside the view or not expanded)? - bool IsVisible(const wxTreeItemId& item) const; - // does the item has any children? - bool ItemHasChildren(const wxTreeItemId& item) const; - // is the item expanded (only makes sense if HasChildren())? - bool IsExpanded(const wxTreeItemId& item) const; - // is this item currently selected (the same as has focus)? - bool IsSelected(const wxTreeItemId& item) const; - - // number of children - // ------------------ - - // if 'recursively' is FALSE, only immediate children count, otherwise - // the returned number is the number of all items in this branch - size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); - - // navigation - // ---------- - - // wxTreeItemId.IsOk() will return FALSE if there is no such item - - // get the root tree item - wxTreeItemId GetRootItem() const; - - // get the item currently selected (may return NULL if no selection) - wxTreeItemId GetSelection() const; - - // get the parent of this item (may return NULL if root) - wxTreeItemId GetParent(const wxTreeItemId& item) const; - - // 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). Of course, - // the "cookie" passed to GetFirstChild() and GetNextChild() should be - // the same! - - // get the first child of this item - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; - // get the next child (after GetFirstChild or GetNextChild) - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; - // get the last child of this item - this method doesn't use cookies - wxTreeItemId GetLastChild(const wxTreeItemId& item) const; - - // get the next sibling of this item - wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; - // get the previous sibling - wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const; - - // get first visible item - wxTreeItemId GetFirstVisibleItem() const; - // get the next visible item: item must be visible itself! - // see IsVisible() and wxTreeCtrl::GetFirstVisibleItem() - wxTreeItemId GetNextVisible(const wxTreeItemId& item) const; - // get the previous visible item: item must be visible itself! - wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; - - // operations - // ---------- - - // add the root node to the tree - wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the first child of the parent - wxTreeItemId PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item after a given one - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the last child of the parent - wxTreeItemId AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // delete this item and associated data if any - void Delete(const wxTreeItemId& item); - // delete all items from the tree - void DeleteAllItems(); - - // expand this item - void Expand(const wxTreeItemId& item); - // collapse the item without removing its children - void Collapse(const wxTreeItemId& item); - // collapse the item and remove all children - void CollapseAndReset(const wxTreeItemId& item); - // toggles the current state - void Toggle(const wxTreeItemId& item); - - // remove the selection from currently selected item (if any) - void Unselect(); - // select this item - void SelectItem(const wxTreeItemId& item); - // make sure this item is visible (expanding the parent item and/or - // scrolling to this item if necessary) - void EnsureVisible(const wxTreeItemId& item); - // scroll to this item (but don't expand its parent) - void ScrollTo(const wxTreeItemId& item); - - // start editing the item label: this (temporarily) replaces the item - // with a one line edit control. The item will be selected if it hadn't - // been before. textCtrlClass parameter allows you to create an edit - // control of arbitrary user-defined class deriving from wxTextCtrl. - wxTextCtrl* EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); - // returns the same pointer as StartEdit() if the item is being edited, - // NULL otherwise (it's assumed that no more than one item may be - // edited simultaneously) - wxTextCtrl* GetEditControl() const; - // end editing and accept or discard the changes to item label - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); - - // sort the children of this item using the specified callback function - // (it should return -1, 0 or +1 as usual), if it's not specified - // alphabetical comparaison is performed. - // - // NB: this function is not reentrant! - void SortChildren(const wxTreeItemId& item, - wxTreeItemCmpFunc *cmpFunction = NULL); - - // deprecated - // ---------- - - // these methods are deprecated and will be removed in future versions of - // wxWindows, they're here for compatibility only, don't use them in new - // code (the comments indicate why these methods are now useless and how to - // replace them) - - // use Expand, Collapse, CollapseAndReset or Toggle - void ExpandItem(const wxTreeItemId& item, int action); - - // use AddRoot, PrependItem or AppendItem - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selImage = -1, - long insertAfter = wxTREE_INSERT_LAST); - - // use Set/GetImageList and Set/GetStateImageList - wxImageList *GetImageList(int) const - { return GetImageList(); } - void SetImageList(wxImageList *imageList, int) - { SetImageList(imageList); } - - void SendExpanding(const wxTreeItemId& item); - void SendExpanded(const wxTreeItemId& item); - void SendCollapsing(const wxTreeItemId& item); - void SendCollapsed(const wxTreeItemId& item); - void SendSelChanging(const wxTreeItemId& item); - void SendSelChanged(const wxTreeItemId& item); -protected: - wxTreeItemId m_editItem; - GtkTree *m_tree; - GtkTreeItem *m_anchor; - wxTextCtrl* m_textCtrl; - wxImageList* m_imageListNormal; - wxImageList* m_imageListState; - - long m_curitemId; - - void SendMessage(wxEventType command, const wxTreeItemId& item); -// GtkTreeItem *findGtkTreeItem(wxTreeCtrlId &id) const; - - // the common part of all ctors - void Init(); - // insert a new item in as the last child of the parent - wxTreeItemId p_InsertItem(GtkTreeItem *p, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data); - - - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -// ---------------------------------------------------------------------------- -// wxTreeEvent is a special class for all events associated with tree controls -// -// NB: note that not all accessors make sense for all events, see the event -// descriptions below -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeEvent : public wxCommandEvent -{ -friend wxTreeCtrl; -public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - // accessors - // get the item on which the operation was performed or the newly - // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events - wxTreeItemId GetItem() const { return m_item; } - - // for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events, get the previously - // selected item - wxTreeItemId GetOldItem() const { return m_itemOld; } - - // the point where the mouse was when the drag operation started (for - // wxEVT_COMMAND_TREE_BEGIN_(R)DRAG events only) - wxPoint GetPoint() const { return m_pointDrag; } - - // keyboard code (for wxEVT_COMMAND_TREE_KEY_DOWN only) - int GetCode() const { return m_code; } - - // set return code for wxEVT_COMMAND_TREE_ITEM_{EXPAND|COLLAPS}ING events - // call this to forbid the change in item status - void Veto() { m_code = TRUE; } - -private: - // @@ we could save some space by using union here - int m_code; - wxTreeItemId m_item, - m_itemOld; - wxPoint m_pointDrag; - - DECLARE_DYNAMIC_CLASS(wxTreeEvent) -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -// ---------------------------------------------------------------------------- -// macros for handling tree control events -// ---------------------------------------------------------------------------- - -// GetItem() returns the item being dragged, GetPoint() the mouse coords -#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() returns the itme whose label is being edited -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// provide/update information about GetItem() item -#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() is the item being expanded/collapsed, the "ING" versions can use -#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetOldItem() is the item which had the selection previously, GetItem() is -// the item which acquires selection -#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, -#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetCode() returns the key code -// NB: this is the only message for which GetItem() is invalid (you may get the -// item from GetSelection()) -#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetItem() returns the item being deleted, the associated data (if any) will -// be deleted just after the return of this event handler (if any) -#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/gtk/wave.h b/include/wx/gtk/wave.h deleted file mode 100644 index c75f264084..0000000000 --- a/include/wx/gtk/wave.h +++ /dev/null @@ -1,63 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class -// Author: Julian Smart -// Modified by: -// Created: 25/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WAVE_H_ -#define _WX_WAVE_H_ - -#if wxUSE_WAVE - -#ifdef __GNUG__ -#pragma interface "wave.h" -#endif - -#include "wx/object.h" - -#ifndef AUDIODEV -#define AUDIODEV "/dev/dsp" // Default path for audio device -#endif - -class wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - wxWave(int size, const wxByte* data); - ~wxWave(); - -public: - // Create from resource or file - bool Create(const wxString& fileName, bool isResource = FALSE); - // Create from data - bool Create(int size, const wxByte* data); - - bool IsOk() const { return (m_waveData ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE); - -protected: - bool Free(); - -private: - wxByte* m_waveData; - int m_waveLength; - bool m_isResource; - - - int OpenDSP(void); - bool InitDSP(int dev, int iDataBits, int iChannel,unsigned long ulSamplingRate); - int m_DSPblkSize; // Size of the DSP buffer - char *m_data; - int m_sizeData; -}; - -#endif - -#endif - diff --git a/include/wx/gtk/win_gtk.h b/include/wx/gtk/win_gtk.h deleted file mode 100644 index d27296eb13..0000000000 --- a/include/wx/gtk/win_gtk.h +++ /dev/null @@ -1,96 +0,0 @@ -/* /////////////////////////////////////////////////////////////////////////// -// Name: win_gtk.h -// Purpose: wxWindows's GTK base widget -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////// */ - - -#ifndef __GTK_MYFIXED_H__ -#define __GTK_MYFIXED_H__ - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GTK_MYFIXED(obj) GTK_CHECK_CAST (obj, gtk_myfixed_get_type (), GtkMyFixed) -#define GTK_MYFIXED_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_myfixed_get_type (), GtkMyFixedClass) -#define GTK_IS_MYFIXED(obj) GTK_CHECK_TYPE (obj, gtk_myfixed_get_type ()) - - -typedef struct _GtkMyFixed GtkMyFixed; -typedef struct _GtkMyFixedClass GtkMyFixedClass; -typedef struct _GtkMyFixedChild GtkMyFixedChild; - -struct _GtkMyFixed -{ - GtkContainer container; - GList *children; -#if (GTK_MINOR_VERSION > 0) - GtkShadowType shadow_type; -#endif -}; - -struct _GtkMyFixedClass -{ - GtkContainerClass parent_class; - -#if (GTK_MINOR_VERSION > 0) - void (*set_scroll_adjustments) (GtkMyFixed *myfixed, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); -#endif -}; - -struct _GtkMyFixedChild -{ - GtkWidget *widget; - gint16 x; - gint16 y; - gint16 width; - gint16 height; -}; - -guint gtk_myfixed_get_type (void); -GtkWidget* gtk_myfixed_new (void); -#if (GTK_MINOR_VERSION > 0) -void gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed, - GtkShadowType type); -#endif -void gtk_myfixed_put (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height); - -void gtk_myfixed_move (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y ); - -void gtk_myfixed_resize (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 width, - gint16 height ); - -void gtk_myfixed_set_size (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_MYFIXED_H__ */ diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h deleted file mode 100644 index aa722a2f14..0000000000 --- a/include/wx/gtk/window.h +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKWINDOWH__ -#define __GTKWINDOWH__ - -#ifdef __GNUG__ - #pragma interface -#endif - -//----------------------------------------------------------------------------- -// callback definition for inserting a window (internal) -//----------------------------------------------------------------------------- - -typedef void (*wxInsertChildFunction)( wxWindow*, wxWindow* ); - -//----------------------------------------------------------------------------- -// wxWindow -//----------------------------------------------------------------------------- - -class wxWindow : public wxWindowBase -{ - DECLARE_DYNAMIC_CLASS(wxWindow) - -public: - // creating the window - // ------------------- - wxWindow(); - wxWindow(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - virtual ~wxWindow(); - - // implement base class (pure) virtual methods - // ------------------------------------------- - virtual bool Destroy(); - - virtual void Raise(); - virtual void Lower(); - - virtual bool Show( bool show = TRUE ); - virtual bool Enable( bool enable = TRUE ); - - virtual bool IsRetained() const; - - virtual void SetFocus(); - virtual bool AcceptsFocus() const; - - virtual bool Reparent( wxWindow *newParent ); - - virtual void WarpPointer(int x, int y); - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - virtual void Refresh( bool eraseBackground = TRUE, - const wxRect *rect = (const wxRect *) NULL ); - virtual void Clear(); - - virtual bool SetBackgroundColour( const wxColour &colour ); - virtual bool SetForegroundColour( const wxColour &colour ); - virtual bool SetCursor( const wxCursor &cursor ); - virtual bool SetFont( const wxFont &font ); - - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - virtual void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = (int *) NULL, - int *externalLeading = (int *) NULL, - const wxFont *theFont = (const wxFont *) NULL) - const; - - virtual bool PopupMenu( wxMenu *menu, int x, int y ); - - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE ); - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = (wxRect *) NULL ); - -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ); -#endif // wxUSE_DRAG_AND_DROP - - // implementation - // -------------- - - virtual WXWidget GetHandle() const { return m_widget; } - - // also sets the global flag - void SetScrolling(bool scroll); - - bool HasScrolling() const { return m_hasScrolling; } - bool IsScrolling() const { return m_isScrolling; } - - /* I don't want users to override what's done in idle so everything that - has to be done in idle time in order for wxGTK to work is done in - OnInternalIdle */ - virtual void OnInternalIdle(); - - /* For compatibility across platforms (not in event table) */ - void OnIdle(wxIdleEvent& WXUNUSED(event)) {}; - - /* used by all classes in the widget creation process */ - void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos, - const wxSize &size, long style, const wxString &name ); - void PostCreation(); - - /* internal addition of child windows. differs from class - to class not by using virtual functions but by using - the m_insertCallback */ - void DoAddChild(wxWindow *child); - - /* the methods below are required because many native widgets - are composed of several subwidgets and setting a style for - the widget means setting it for all subwidgets as well. - also, it is nor clear, which native widget is the top - widget where (most of) the input goes. even tooltips have - to be applied to all subwidgets. */ - - virtual GtkWidget* GetConnectWidget(); - virtual bool IsOwnGtkWindow( GdkWindow *window ); - void ConnectWidget( GtkWidget *widget ); - - /* creates a new widget style if none is there - and sets m_widgetStyle to this value. */ - GtkStyle *GetWidgetStyle(); - - /* called by SetFont() and SetXXXColour etc */ - void SetWidgetStyle(); - - /* overridden in many GTK widgets */ - virtual void ApplyWidgetStyle(); - -#if wxUSE_TOOLTIPS - virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip ); -#endif // wxUSE_TOOLTIPS - - // called from GTK signales handlers. it indicates that - // the layouting functions have to be called later on - // (i.e. in idle time, implemented in OnInternalIdle() ). - void UpdateSize() { m_sizeSet = FALSE; } - - // position and size of the window - int m_x, m_y; - int m_width, m_height; - - /* see the docs in src/gtk/window.cpp */ - GtkWidget *m_widget; - GtkWidget *m_wxwindow; - - /* scrolling stuff */ - GtkAdjustment *m_hAdjust,*m_vAdjust; - float m_oldHorizontalPos; - float m_oldVerticalPos; - - // we need an extra XGC flag set to get exposed - // events from overlapping children upon moving - // them. this flag will be set in this GC and - // the GC will be used in wxWindow::ScrollWindow(). - GdkGC *m_scrollGC; - - // extra (wxGTK-specific) flags - bool m_needParent:1; /* ! wxFrame, wxDialog, wxNotebookPage ? */ - bool m_hasScrolling:1; - bool m_isScrolling:1; - bool m_hasVMT:1; - bool m_sizeSet:1; - bool m_resizing:1; - bool m_isStaticBox:1; /* faster than IS_KIND_OF */ - bool m_isFrame:1; /* faster than IS_KIND_OF */ - bool m_acceptsFocus:1; /* ! wxStaticBox etc. */ - - // these are true if the style were set before the widget was realized - // (typcally in the constructor) but the actual GTK style must not be set - // before the widget has been "realized" - bool m_delayedFont:1; - bool m_delayedForegroundColour:1; - bool m_delayedBackgroundColour:1; - bool m_delayedCursor:1; - - // the cursor is set in OnInternalIdle(). this fields holds - // a reference to the cursor currently set in theGdk window - // so that we don't have to set it more than once - wxCursor m_currentGdkCursor; - - // contains GTK's widgets internal information about non-default widget - // font and colours. we create one for each widget that gets any - // non-default attribute set via SetFont() or SetForegroundColour() / - // SetBackgroundColour(). - GtkStyle *m_widgetStyle; - - // C++ has no virtual methods in the constrcutor of any class but we need - // different methods of inserting a child window into a wxFrame, - // wxMDIFrame, wxNotebook etc. this is the callback that will get used. - wxInsertChildFunction m_insertCallback; - - // implement the base class pure virtuals - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetClientSize( int *width, int *height ) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - - // common part of all ctors (can't be virtual because called from ctor) - void Init(); - -private: - DECLARE_NO_COPY_CLASS(wxWindow); -}; - -#endif // __GTKWINDOWH__ diff --git a/include/wx/gtk1/.cvsignore b/include/wx/gtk1/.cvsignore deleted file mode 100644 index 6d050a0ed7..0000000000 --- a/include/wx/gtk1/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -setup.h -Makefile.in diff --git a/include/wx/gtk1/Makefile.am b/include/wx/gtk1/Makefile.am deleted file mode 100644 index a8b71160e6..0000000000 --- a/include/wx/gtk1/Makefile.am +++ /dev/null @@ -1,65 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/gtk subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -wx_gtk_includedir = ${includedir}/wx/gtk -wx_gtk_include_HEADERS = \ - accel.h \ - app.h \ - bitmap.h \ - bmpbuttn.h \ - brush.h \ - button.h \ - checkbox.h \ - checklst.h \ - choice.h \ - clipbrd.h \ - colour.h \ - combobox.h \ - control.h \ - cursor.h \ - dataobj.h \ - dc.h \ - dcclient.h \ - dcmemory.h \ - dcps.h \ - dcscreen.h \ - dialog.h \ - dnd.h \ - filedlg.h \ - font.h \ - frame.h \ - gauge.h \ - gdiobj.h \ - icon.h \ - joystick.h \ - listbox.h \ - mdi.h \ - menu.h \ - menuitem.h \ - minifram.h \ - notebook.h \ - palette.h \ - pen.h \ - radiobox.h \ - radiobut.h \ - region.h \ - scrolbar.h \ - settings.h \ - slider.h \ - spinbutt.h \ - statbmp.h \ - statbox.h \ - statline.h \ - stattext.h \ - tbargtk.h \ - textctrl.h \ - timer.h \ - tooltip.h \ - treectrl.h \ - wave.h \ - win_gtk.h \ - window.h - diff --git a/include/wx/gtk1/accel.h b/include/wx/gtk1/accel.h deleted file mode 100644 index 4765e6fe3d..0000000000 --- a/include/wx/gtk1/accel.h +++ /dev/null @@ -1,105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.h -// Purpose: wxAcceleratorTable class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKACCELH__ -#define __GTKACCELH__ - -#ifdef __GNUG__ -#pragma interface "accel.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/event.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxAcceleratorEntry; -class wxAcceleratorTable; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -extern wxAcceleratorTable wxNullAcceleratorTable; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -// Hold Ctrl key down -#define wxACCEL_ALT 0x01 - -// Hold Ctrl key down -#define wxACCEL_CTRL 0x02 - - // Hold Shift key down -#define wxACCEL_SHIFT 0x04 - - // Hold no other key -#define wxACCEL_NORMAL 0x00 - -//----------------------------------------------------------------------------- -// wxAcceleratorEntry -//----------------------------------------------------------------------------- - -class wxAcceleratorEntry: public wxObject -{ - public: - - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline void Set(int flags, int keyCode, int cmd) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline int GetFlags() const { return m_flags; } - inline int GetKeyCode() const { return m_keyCode; } - inline int GetCommand() const { return m_command; } - - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -//----------------------------------------------------------------------------- -// wxAcceleratorTable -//----------------------------------------------------------------------------- - -class wxAcceleratorTable: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxAcceleratorTable) - - public: - wxAcceleratorTable(); - wxAcceleratorTable(int n, wxAcceleratorEntry entries[] ); - ~wxAcceleratorTable(); - - inline wxAcceleratorTable(const wxAcceleratorTable& accel) : wxObject() - { Ref(accel); } - inline wxAcceleratorTable(const wxAcceleratorTable* accel) - { if (accel) Ref(*accel); } - inline bool operator == (const wxAcceleratorTable& accel) - { return m_refData == accel.m_refData; } - inline bool operator != (const wxAcceleratorTable& accel) - { return m_refData != accel.m_refData; } - inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) - { if (*this == accel) return (*this); Ref(accel); return *this; } - - bool Ok() const; - -// private: - - int GetCommand( wxKeyEvent &event ); - -}; - -#endif diff --git a/include/wx/gtk1/app.h b/include/wx/gtk1/app.h deleted file mode 100644 index dbf52b110c..0000000000 --- a/include/wx/gtk1/app.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKAPPH__ -#define __GTKAPPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/frame.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxApp; -class wxLog; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern wxApp *wxTheApp; - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -void wxExit(void); -bool wxYield(void); - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 - -//----------------------------------------------------------------------------- -// wxApp -//----------------------------------------------------------------------------- - -class wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - - public: - - wxApp(); - ~wxApp(); - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - /* override for altering the way wxGTK intializes the GUI (palette/visual/colorcube). - * under wxMSW, OnInitGui() does nothing by default. when overriding this method, - * the code in it is likely to be platform dependent, otherwise use OnInit(). */ - virtual bool OnInitGui(); - - /* override to create top level frame, display splash screen etc. */ - virtual bool OnInit() { return FALSE; } - - virtual int OnRun() { return MainLoop(); } - virtual int OnExit() { return 0; } - - wxWindow *GetTopWindow(); - void SetTopWindow( wxWindow *win ); - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending(); - virtual void Dispatch(); - - inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; } - inline bool GetWantDebugOutput() { return m_wantDebugOutput; } - - void OnIdle( wxIdleEvent &event ); - bool SendIdleEvents(); - bool SendIdleEvents( wxWindow* win ); - - inline wxString GetAppName() const - { if (m_appName != "") return m_appName; else return m_className; } - inline void SetAppName( const wxString& name ) { m_appName = name; } - - inline wxString GetClassName() const { return m_className; } - inline void SetClassName( const wxString& name ) { m_className = name; } - - const wxString& GetVendorName() const { return m_vendorName; } - void SetVendorName( const wxString& name ) { m_vendorName = name; } - - inline void SetExitOnFrameDelete( bool flag ) { m_exitOnFrameDelete = flag; } - inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - void SetPrintMode( int WXUNUSED(mode) ) {} - int GetPrintMode() const { return wxPRINT_POSTSCRIPT; } - -#if wxUSE_LOG - /* override this function to create default log target of arbitrary - * user-defined classv (default implementation creates a wxLogGui object) */ - virtual wxLog *CreateLogTarget(); -#endif // wxUSE_LOG - - // implementation - - static bool Initialize(); - static bool InitialzeVisual(); - static void CleanUp(); - - bool ProcessIdle(); -#if wxUSE_THREADS - void ProcessPendingEvents(); -#endif - void DeletePendingObjects(); - - /// This can be used to suppress the generation of Idle events. - inline void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; } - inline bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; } - - bool m_initialized; - bool m_exitOnFrameDelete; - bool m_wantDebugOutput; - wxWindow *m_topWindow; - - gint m_idleTag; -#if wxUSE_THREADS - gint m_wakeUpTimerTag; -#endif - unsigned char *m_colorCube; - - int argc; - char **argv; - - wxString m_vendorName; - wxString m_appName; - wxString m_className; - - static wxAppInitializerFunction m_appInitFn; - private: - /// Set to TRUE while we are in wxYield(). - bool m_suppressIdleEvents; - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKAPPH__ diff --git a/include/wx/gtk1/bitmap.h b/include/wx/gtk1/bitmap.h deleted file mode 100644 index 61245d92c1..0000000000 --- a/include/wx/gtk1/bitmap.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKBITMAPH__ -#define __GTKBITMAPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/palette.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMask; -class wxBitmap; - -//----------------------------------------------------------------------------- -// wxMask -//----------------------------------------------------------------------------- - -class wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(); - wxMask( const wxBitmap& bitmap, const wxColour& colour ); - wxMask( const wxBitmap& bitmap, int paletteIndex ); - wxMask( const wxBitmap& bitmap ); - ~wxMask(); - - // implementation - - GdkBitmap *m_bitmap; - GdkBitmap *GetBitmap() const; -}; - -//----------------------------------------------------------------------------- -// wxBitmap -//----------------------------------------------------------------------------- - -class wxBitmap: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - -public: - wxBitmap(); - wxBitmap( int width, int height, int depth = -1 ); - wxBitmap( const char bits[], int width, int height, int depth = 1 ); - wxBitmap( const char **bits ); - wxBitmap( char **bits ); - wxBitmap( const wxBitmap& bmp ); - wxBitmap( const wxString &filename, int type = wxBITMAP_TYPE_XPM ); - ~wxBitmap(); - wxBitmap& operator = ( const wxBitmap& bmp ); - bool operator == ( const wxBitmap& bmp ); - bool operator != ( const wxBitmap& bmp ); - bool Ok() const; - - int GetHeight() const; - int GetWidth() const; - int GetDepth() const; - - wxMask *GetMask() const; - void SetMask( wxMask *mask ); - - bool SaveFile( const wxString &name, int type, wxPalette *palette = (wxPalette *) NULL ); - bool LoadFile( const wxString &name, int type = wxBITMAP_TYPE_XPM ); - - wxPalette *GetPalette() const; - wxPalette *GetColourMap() const - { return GetPalette(); }; - -// implementation - - void SetHeight( int height ); - void SetWidth( int width ); - void SetDepth( int depth ); - void SetPixmap( GdkPixmap *pixmap ); - - GdkPixmap *GetPixmap() const; - GdkBitmap *GetBitmap() const; - - // no data :-) -}; - -#endif // __GTKBITMAPH__ diff --git a/include/wx/gtk1/bmpbuttn.h b/include/wx/gtk1/bmpbuttn.h deleted file mode 100644 index 4a029af1b9..0000000000 --- a/include/wx/gtk1/bmpbuttn.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbutton.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __BMPBUTTONH__ -#define __BMPBUTTONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBitmapButton; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxButtonNameStr; - -//----------------------------------------------------------------------------- -// wxBitmapButton -//----------------------------------------------------------------------------- - -class wxBitmapButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - -public: - wxBitmapButton(); - inline wxBitmapButton( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr ) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - void SetDefault(); - - void SetLabel( const wxString &label ); - wxString GetLabel() const; - virtual void SetLabel( const wxBitmap& bitmap ) { SetBitmapLabel(bitmap); } - - wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_disabled; } - wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_focus; } - wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_bitmap; } - wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_selected; } - - void SetBitmapDisabled( const wxBitmap& bitmap ); - void SetBitmapFocus( const wxBitmap& bitmap ); - void SetBitmapLabel( const wxBitmap& bitmap ); - void SetBitmapSelected( const wxBitmap& bitmap ); - - virtual bool Enable(const bool); - -// implementation - - void HasFocus(); - void NotFocus(); - void StartSelect(); - void EndSelect(); - void SetBitmap(); - void ApplyWidgetStyle(); - - bool m_hasFocus; - bool m_isSelected; - wxBitmap m_bitmap; - wxBitmap m_disabled; - wxBitmap m_focus; - wxBitmap m_selected; -}; - -#endif // __BMPBUTTONH__ diff --git a/include/wx/gtk1/brush.h b/include/wx/gtk1/brush.h deleted file mode 100644 index c52eb45011..0000000000 --- a/include/wx/gtk1/brush.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKBRUSHH__ -#define __GTKBRUSHH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBrush; - -//----------------------------------------------------------------------------- -// wxBrush -//----------------------------------------------------------------------------- - -class wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - - public: - - wxBrush(); - wxBrush( const wxColour &colour, int style ); - wxBrush( const wxBitmap &stippleBitmap ); - wxBrush( const wxBrush &brush ); - ~wxBrush(); - wxBrush& operator = ( const wxBrush& brush ); - bool operator == ( const wxBrush& brush ); - bool operator != ( const wxBrush& brush ); - bool Ok() const; - - int GetStyle() const; - wxColour &GetColour() const; - wxBitmap *GetStipple() const; - - void SetColour( const wxColour& col ); - void SetColour( unsigned char r, unsigned char g, unsigned char b ); - void SetStyle( int style ); - void SetStipple( const wxBitmap& stipple ); - - void Unshare(); - - // no data :-) -}; - -#endif // __GTKBRUSHH__ diff --git a/include/wx/gtk1/button.h b/include/wx/gtk1/button.h deleted file mode 100644 index 596299520d..0000000000 --- a/include/wx/gtk1/button.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKBUTTONH__ -#define __GTKBUTTONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxButton; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxButtonNameStr; - -//----------------------------------------------------------------------------- -// wxButton -//----------------------------------------------------------------------------- - -class wxButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxButton) - - public: - - wxButton(); - inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - ~wxButton(); - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - void SetDefault(); - void SetLabel( const wxString &label ); - bool Enable( bool enable ); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKBUTTONH__ diff --git a/include/wx/gtk1/checkbox.h b/include/wx/gtk1/checkbox.h deleted file mode 100644 index cf2109123b..0000000000 --- a/include/wx/gtk1/checkbox.h +++ /dev/null @@ -1,76 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCHECKBOXH__ -#define __GTKCHECKBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxCheckBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxCheckBoxNameStr; - -//----------------------------------------------------------------------------- -// wxCheckBox -//----------------------------------------------------------------------------- - -class wxCheckBox: public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxCheckBox) - -public: - wxCheckBox(); - wxCheckBox( wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr ); - - void SetValue( bool state ); - bool GetValue() const; - - void SetLabel( const wxString& label ); - bool Enable( bool enable ); - - // implementation - void ApplyWidgetStyle(); - - bool m_blockFirstEvent; - GtkWidget *m_widgetCheckbox; - GtkWidget *m_widgetLabel; -}; - -#endif // __GTKCHECKBOXH__ diff --git a/include/wx/gtk1/checklst.h b/include/wx/gtk1/checklst.h deleted file mode 100644 index cbdd0ee233..0000000000 --- a/include/wx/gtk1/checklst.h +++ /dev/null @@ -1,56 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.h -// Purpose: wxCheckListBox class -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKCHECKLISTH__ -#define __GTKCHECKLISTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/listbox.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxCheckListBox; - -//----------------------------------------------------------------------------- -// wxCheckListBox -//----------------------------------------------------------------------------- - -class wxCheckListBox : public wxListBox -{ -DECLARE_DYNAMIC_CLASS(wxCheckListBox) - -public: - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString *choices = (const wxString *)NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - bool IsChecked( int index ) const; - void Check( int index, bool check = TRUE ); - - int GetItemHeight() const; -}; - -#endif - //__GTKCHECKLISTH__ diff --git a/include/wx/gtk1/choice.h b/include/wx/gtk1/choice.h deleted file mode 100644 index da0b83c288..0000000000 --- a/include/wx/gtk1/choice.h +++ /dev/null @@ -1,99 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKCHOICEH__ -#define __GTKCHOICEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxChoice; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxChoiceNameStr; - -//----------------------------------------------------------------------------- -// wxChoice -//----------------------------------------------------------------------------- - -class wxChoice : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - -public: - wxChoice(); - wxChoice( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - ~wxChoice(); - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr ); - - void Append( const wxString &item ); - void Append( const wxString &item, void* clientData ); - void Append( const wxString &item, wxClientData* clientData ); - - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ); - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ); - - void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); } - wxClientData *GetClientObject() const { return wxControl::GetClientObject(); } - void SetClientData( void *data ) { wxControl::SetClientData( data ); } - void *GetClientData() const { return wxControl::GetClientData(); } - - void Clear(); - void Delete(int n); - - int FindString( const wxString &string ) const; - int GetColumns() const; - int GetSelection(); - wxString GetString( int n ) const; - wxString GetStringSelection() const; - int Number() const; - void SetColumns( int n = 1 ); - void SetSelection( int n ); - void SetStringSelection( const wxString &string ); - - // implementation - - wxList m_clientDataList; - wxList m_clientObjectList; - - void AppendCommon( const wxString &item ); - void ApplyWidgetStyle(); -}; - -#endif // __GTKCHOICEH__ diff --git a/include/wx/gtk1/clipbrd.h b/include/wx/gtk1/clipbrd.h deleted file mode 100644 index d940100715..0000000000 --- a/include/wx/gtk1/clipbrd.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipboard.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCLIPBOARDH__ -#define __GTKCLIPBOARDH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_CLIPBOARD - -#include "wx/object.h" -#include "wx/list.h" -#include "wx/dataobj.h" -#include "wx/control.h" -#include "wx/module.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxClipboard; -class wxClipboardModule; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern wxClipboard* wxTheClipboard; - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -class wxClipboard : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - -public: - wxClipboard(); - ~wxClipboard(); - - // open the clipboard before SetData() and GetData() - virtual bool Open(); - - // close the clipboard after SetData() and GetData() - virtual void Close(); - - // set the clipboard data. all other formats will be deleted. - virtual bool SetData( wxDataObject *data ); - - // add to the clipboard data. - virtual bool AddData( wxDataObject *data ); - - // ask if data in correct format is available - virtual bool IsSupported( wxDataFormat format ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject *data ); - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear(); - - /// If primary == TRUE, use primary selection in all further ops, - /// primary=FALSE resets it. - inline void UsePrimarySelection(bool primary = TRUE) { m_usePrimary = primary; } - - // implementation - - bool m_open; - - bool m_ownsClipboard; - bool m_ownsPrimarySelection; - - wxDataBroker *m_dataBroker; - GtkWidget *m_clipboardWidget; /* for getting and offering data */ - GtkWidget *m_targetsWidget; /* for getting list of supported formats */ - bool m_waiting; /* querying data or formats is asynchronous */ - - bool m_formatSupported; - GdkAtom m_targetRequested; - bool m_usePrimary; - wxDataObject *m_receivedData; -}; - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -class wxClipboardModule: public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxClipboardModule) - -public: - wxClipboardModule() {} - bool OnInit(); - void OnExit(); -}; - -#endif - - // wxUSE_CLIPBOARD - -#endif - // __GTKCLIPBOARDH__ diff --git a/include/wx/gtk1/colour.h b/include/wx/gtk1/colour.h deleted file mode 100644 index 8d27d3f3b2..0000000000 --- a/include/wx/gtk1/colour.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCOLOURH__ -#define __GTKCOLOURH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdiobj.h" -#include "wx/palette.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDC; -class wxPaintDC; -class wxBitmap; -class wxWindow; - -class wxColour; - -//----------------------------------------------------------------------------- -// wxColour -//----------------------------------------------------------------------------- - -class wxColour: public wxGDIObject -{ -public: - // ctors - // default - wxColour(); - // from RGB - wxColour( unsigned char red, unsigned char green, unsigned char blue ); - wxColour( unsigned long colRGB ) { Set(colRGB); } - - // implicit conversion from the colour name - wxColour( const wxString &colourName ) { InitFromName(colourName); } - wxColour( const char *colourName ) { InitFromName(colourName); } - - // copy ctors and assignment operators - wxColour( const wxColour& col ); - wxColour& operator = ( const wxColour& col ); - - // dtor - ~wxColour(); - - // comparison - bool operator == ( const wxColour& col ) const; - bool operator != ( const wxColour& col ) const; - - // accessors - void Set( unsigned char red, unsigned char green, unsigned char blue ); - void Set( unsigned long colRGB ) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((unsigned char)colRGB, - (unsigned char)(colRGB >> 8), - (unsigned char)(colRGB >> 16)); - } - - unsigned char Red() const; - unsigned char Green() const; - unsigned char Blue() const; - bool Ok() const; - - // implementation - void CalcPixel( GdkColormap *cmap ); - int GetPixel() const; - GdkColor *GetColor() const; - -protected: - // helper functions - void InitFromName(const wxString& colourName); - -private: - DECLARE_DYNAMIC_CLASS(wxColour) -}; - -#endif // __GTKCOLOURH__ diff --git a/include/wx/gtk1/combobox.h b/include/wx/gtk1/combobox.h deleted file mode 100644 index a9910b78a3..0000000000 --- a/include/wx/gtk1/combobox.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCOMBOBOXH__ -#define __GTKCOMBOBOXH__ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/defs.h" - -#include "wx/object.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxComboBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxComboBoxNameStr; -extern const wxChar* wxEmptyString; - -//----------------------------------------------------------------------------- -// wxComboBox -//----------------------------------------------------------------------------- - -class wxComboBox : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - -public: - - inline wxComboBox() {} - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - ~wxComboBox(); - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - void Append( const wxString &item ); - void Append( const wxString &item, void* clientData ); - void Append( const wxString &item, wxClientData* clientData ); - - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ); - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ); - - void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); } - wxClientData *GetClientObject() const { return wxControl::GetClientObject(); } - void SetClientData( void *data ) { wxControl::SetClientData( data ); } - void *GetClientData() const { return wxControl::GetClientData(); } - - void Clear(); - void Delete( int n ); - - int FindString( const wxString &item ); - int GetSelection() const; - wxString GetString( int n ) const; - wxString GetStringSelection() const; - int Number() const; - void SetSelection( int n ); - void SetStringSelection( const wxString &string ); - - wxString GetValue() const; - void SetValue(const wxString& value); - - void Copy(); - void Cut(); - void Paste(); - void SetInsertionPoint( long pos ); - void SetInsertionPointEnd(); - long GetInsertionPoint() const; - long GetLastPosition() const; - void Replace( long from, long to, const wxString& value ); - void Remove( long from, long to ); - void SetSelection( long from, long to ); - void SetEditable( bool editable ); - - void OnSize( wxSizeEvent &event ); - void OnChar( wxKeyEvent &event ); - -// implementation - - bool m_alreadySent; - wxList m_clientDataList; - wxList m_clientObjectList; - - void AppendCommon( const wxString &item ); - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - DECLARE_EVENT_TABLE() -}; - -#endif - - // __GTKCOMBOBOXH__ diff --git a/include/wx/gtk1/control.h b/include/wx/gtk1/control.h deleted file mode 100644 index d3a164d275..0000000000 --- a/include/wx/gtk1/control.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKCONTROLH__ -#define __GTKCONTROLH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/window.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxControl; - -//----------------------------------------------------------------------------- -// wxControl -//----------------------------------------------------------------------------- - -class wxControl: public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxControl) - -public: - wxControl(); - wxControl( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxPanelNameStr ); - - virtual void Command( wxCommandEvent &event ); - - // this function will filter out '&' characters and will put the accelerator - // char (the one immediately after '&') into m_chAccel (@@ not yet) - virtual void SetLabel( const wxString &label ); - virtual wxString GetLabel() const; - -protected: - wxString m_label; - char m_chAccel; // enabled to avoid breaking binary compatibility later on - -}; - -#endif // __GTKCONTROLH__ diff --git a/include/wx/gtk1/cursor.h b/include/wx/gtk1/cursor.h deleted file mode 100644 index d274b6be95..0000000000 --- a/include/wx/gtk1/cursor.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKCURSORH__ -#define __GTKCURSORH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// wxCursor -//----------------------------------------------------------------------------- - -class wxCursor: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - - public: - - wxCursor(); - wxCursor( int cursorId ); - wxCursor( const wxCursor &cursor ); - ~wxCursor(); - wxCursor& operator = ( const wxCursor& cursor ); - bool operator == ( const wxCursor& cursor ) const; - bool operator != ( const wxCursor& cursor ) const; - bool Ok() const; - - GdkCursor *GetCursor() const; - - // no data :-) -}; - -#endif // __GTKCURSORH__ diff --git a/include/wx/gtk1/dataobj.h b/include/wx/gtk1/dataobj.h deleted file mode 100644 index e8d598e3dd..0000000000 --- a/include/wx/gtk1/dataobj.h +++ /dev/null @@ -1,258 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.h -// Purpose: declaration of the wxDataObject class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDATAOBJECTH__ -#define __GTKDATAOBJECTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/bitmap.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class wxDataFormat; -class wxDataBroker; -class wxDataObject; -class wxTextDataObject; -class wxBitmapDataObject; -class wxPrivateDataObject; -class wxFileDataObject; - -//------------------------------------------------------------------------- -// wxDataFormat (internal) -//------------------------------------------------------------------------- - -class wxDataFormat : public wxObject -{ - DECLARE_CLASS( wxDataFormat ) - -public: - wxDataFormat(); - wxDataFormat( wxDataFormatId type ); - wxDataFormat( const wxString &id ); - wxDataFormat( const wxChar *id ); - wxDataFormat( const wxDataFormat &format ); - wxDataFormat( const GdkAtom atom ); - - void SetType( wxDataFormatId type ); - wxDataFormatId GetType() const; - - /* the string Id identifies the format of clipboard or DnD data. a word - * processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - * to the clipboard - the latter with the Id "application/wxword", an - * image manipulation program would put a wxBitmapDataObject and a - * wxPrivateDataObject to the clipboard - the latter with "image/png". */ - - wxString GetId() const; - void SetId( const wxChar *id ); - - GdkAtom GetAtom(); - void SetAtom(GdkAtom atom) { m_hasAtom = TRUE; m_atom = atom; } - - // implicit conversion to wxDataFormatId - operator wxDataFormatId() const { return m_type; } - - bool operator==(wxDataFormatId type) const { return m_type == type; } - bool operator!=(wxDataFormatId type) const { return m_type != type; } - -private: - wxDataFormatId m_type; - wxString m_id; - bool m_hasAtom; - GdkAtom m_atom; -}; - -//------------------------------------------------------------------------- -// wxDataBroker (internal) -//------------------------------------------------------------------------- - -class wxDataBroker : public wxObject -{ - DECLARE_CLASS( wxDataBroker ) - -public: - - /* constructor */ - wxDataBroker(); - - /* add data object */ - void Add( wxDataObject *dataObject, bool preferred = FALSE ); - -private: - - /* OLE implementation, the methods don't need to be overridden */ - - /* get number of supported formats */ - virtual size_t GetFormatCount() const; - - /* return nth supported format */ - virtual wxDataFormat &GetNthFormat( size_t nth ) const; - - /* return preferrd/best supported format */ - virtual wxDataFormatId GetPreferredFormat() const; - - /* search through m_dataObjects, return TRUE if found */ - virtual bool IsSupportedFormat( wxDataFormat &format ) const; - - /* search through m_dataObjects and call child's GetSize() */ - virtual size_t GetSize( wxDataFormat& format ) const; - - /* search through m_dataObjects and call child's WriteData(dest) */ - virtual void WriteData( wxDataFormat& format, void *dest ) const; - - /* implementation */ - -public: - - wxList m_dataObjects; - size_t m_preferred; -}; - -//---------------------------------------------------------------------------- -// wxDataObject to be placed in wxDataBroker -//---------------------------------------------------------------------------- - -class wxDataObject : public wxObject -{ - DECLARE_DYNAMIC_CLASS( wxDataObject ) - -public: - - /* constructor */ - wxDataObject(); - - /* destructor */ - ~wxDataObject(); - - /* write data to dest */ - virtual void WriteData( void *dest ) const = 0; - - /* get size of data */ - virtual size_t GetSize() const = 0; - - /* implementation */ - - wxDataFormat &GetFormat(); - - wxDataFormatId GetFormatType() const; - wxString GetFormatId() const; - GdkAtom GetFormatAtom() const; - - wxDataFormat m_format; -}; - -//---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -//---------------------------------------------------------------------------- - -class wxTextDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxTextDataObject ) - -public: - - /* default constructor. call SetText() later or override - WriteData() and GetSize() for working on-demand */ - wxTextDataObject(); - - /* constructor */ - wxTextDataObject( const wxString& data ); - - /* set current text data */ - void SetText( const wxString& data ); - - /* get current text data */ - wxString GetText() const; - - /* by default calls WriteString() with string set by constructor or - by SetText(). can be overridden for working on-demand */ - virtual void WriteData( void *dest ) const; - - /* by default, returns length of string as set by constructor or - by SetText(). can be overridden for working on-demand */ - virtual size_t GetSize() const; - - /* write string to dest */ - void WriteString( const wxString &str, void *dest ) const; - - /* implementation */ - - wxString m_data; -}; - -//---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -//---------------------------------------------------------------------------- - -class wxFileDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxFileDataObject ) - -public: - - /* default constructor */ - wxFileDataObject(); - - /* add file name to list */ - void AddFile( const wxString &file ); - - /* get all filename as one string. each file name is 0 terminated, - the list is double zero terminated */ - wxString GetFiles() const; - - /* write list of filenames */ - virtual void WriteData( void *dest ) const; - - /* return length of list of filenames */ - virtual size_t GetSize() const; - - /* implementation */ - - wxString m_files; -}; - -//---------------------------------------------------------------------------- -// wxBitmapDataObject is a specialization of wxDataObject for bitmaps -//---------------------------------------------------------------------------- - -class wxBitmapDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxBitmapDataObject ) - -public: - - /* see wxTextDataObject for explanation */ - - wxBitmapDataObject(); - wxBitmapDataObject( const wxBitmap& bitmap ); - - void SetBitmap( const wxBitmap &bitmap ); - wxBitmap GetBitmap() const; - - virtual void WriteData( void *dest ) const; - virtual size_t GetSize() const; - - void WriteBitmap( const wxBitmap &bitmap, void *dest ) const; - - // implementation - - wxBitmap m_bitmap; - -}; - -#endif - //__GTKDNDH__ - diff --git a/include/wx/gtk1/dc.h b/include/wx/gtk1/dc.h deleted file mode 100644 index acc56d3bcd..0000000000 --- a/include/wx/gtk1/dc.h +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDCH__ -#define __GTKDCH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDC; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define MM_TEXT 0 -#define MM_ISOTROPIC 1 -#define MM_ANISOTROPIC 2 -#define MM_LOMETRIC 3 -#define MM_HIMETRIC 4 -#define MM_TWIPS 5 -#define MM_POINTS 6 -#define MM_METRIC 7 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -class wxDC : public wxDCBase -{ - DECLARE_ABSTRACT_CLASS(wxDC) - -public: - wxDC(); - ~wxDC() { } - - void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }; - - // the first two must be overridden and called - virtual void DestroyClippingRegion(); - - // Resolution in pixels per logical inch - virtual wxSize GetPPI() const; - - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; } - virtual void EndDoc() { } - virtual void StartPage() { } - virtual void EndPage() { } - - virtual void SetMapMode( int mode ); - virtual void SetUserScale( double x, double y ); - virtual void SetLogicalScale( double x, double y ); - virtual void SetLogicalOrigin( long x, long y ); - virtual void SetDeviceOrigin( long x, long y ); - - virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - - // implementation - // -------------- - - virtual void ComputeScaleAndOrigin(); - - long XDEV2LOG(long x) const - { - long new_x = x - m_deviceOriginX; - if (new_x > 0) - return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; - } - long XDEV2LOGREL(long x) const - { - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); - } - long YDEV2LOG(long y) const - { - long new_y = y - m_deviceOriginY; - if (new_y > 0) - return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; - } - long YDEV2LOGREL(long y) const - { - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); - } - long XLOG2DEV(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX; - } - long XLOG2DEVREL(long x) const - { - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); - } - long YLOG2DEV(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY; - } - long YLOG2DEVREL(long y) const - { - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); - } - -protected: - // base class pure virtuals implemented here - virtual void DoSetClippingRegion(long x, long y, long width, long height); - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - -public: - // GTK-specific member variables - - // not sure what for, but what is a mm on a screen you don't know the size - // of? - double m_mm_to_pix_x, - m_mm_to_pix_y; - - bool m_needComputeScaleX, - m_needComputeScaleY; // not yet used - - float m_scaleFactor; // wxPSDC wants to have this. Will disappear. -}; - -#endif // __GTKDCH__ diff --git a/include/wx/gtk1/dcclient.h b/include/wx/gtk1/dcclient.h deleted file mode 100644 index b3b0439b4a..0000000000 --- a/include/wx/gtk1/dcclient.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDCCLIENTH__ -#define __GTKDCCLIENTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dc.h" -#include "wx/window.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxWindowDC; -class wxPaintDC; -class wxClientDC; - -//----------------------------------------------------------------------------- -// wxWindowDC -//----------------------------------------------------------------------------- - -class wxWindowDC : public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxWindowDC) - -public: - wxWindowDC(); - wxWindowDC( wxWindow *win ); - - ~wxWindowDC(); - - virtual bool CanDrawBitmap() const { return TRUE; } - virtual bool CanGetTextExtent() const { return TRUE; } - - virtual void DoFloodFill( long x, long y, const wxColour& col, int style=wxFLOOD_SURFACE ); - virtual bool DoGetPixel( long x1, long y1, wxColour *col ) const; - - virtual void DoDrawLine( long x1, long y1, long x2, long y2 ); - virtual void DoCrossHair( long x, long y ); - virtual void DoDrawArc( long x1, long y1, long x2, long y2, - long xc, long yc ); - virtual void DoDrawEllipticArc( long x, long y, long width, long height, - double sa, double ea ); - virtual void DoDrawPoint( long x, long y ); - - virtual void DoDrawLines(int n, wxPoint points[], - long xoffset, long yoffset); - virtual void DoDrawPolygon(int n, wxPoint points[], - long xoffset, long yoffset, - int fillStyle = wxODDEVEN_RULE); - - virtual void DoDrawRectangle( long x, long y, long width, long height ); - virtual void DoDrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); - virtual void DoDrawEllipse( long x, long y, long width, long height ); - - virtual void DoDrawIcon( const wxIcon &icon, long x, long y ); - virtual void DoDrawBitmap( const wxBitmap &bitmap, long x, long y, - bool useMask = FALSE ); - - virtual bool DoBlit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int logical_func = wxCOPY, bool useMask = FALSE ); - - virtual void DoDrawText( const wxString &text, long x, long y ); - virtual void GetTextExtent( const wxString &string, - long *width, long *height, - long *descent = (long *) NULL, - long *externalLeading = (long *) NULL, - wxFont *theFont = (wxFont *) NULL) const; - virtual long GetCharWidth() const; - virtual long GetCharHeight() const; - - virtual void Clear(); - - virtual void SetFont( const wxFont &font ); - virtual void SetPen( const wxPen &pen ); - virtual void SetBrush( const wxBrush &brush ); - virtual void SetBackground( const wxBrush &brush ); - virtual void SetLogicalFunction( int function ); - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual void SetBackgroundMode( int mode ); - virtual void SetPalette( const wxPalette& palette ); - - virtual void DoSetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(); - virtual void DoSetClippingRegionAsRegion( const wxRegion ®ion ); - -#if wxUSE_SPLINES - virtual void DoDrawSpline( wxList *points ); -#endif - - // Resolution in pixels per logical inch - virtual wxSize GetPPI() const; - virtual int GetDepth() const; - - // implementation - // -------------- - - GdkWindow *m_window; - GdkGC *m_penGC; - GdkGC *m_brushGC; - GdkGC *m_textGC; - GdkGC *m_bgGC; - GdkColormap *m_cmap; - bool m_isMemDC; - wxWindow *m_owner; - - void SetUpDC(); - void Destroy(); - void ComputeScaleAndOrigin(); - - GdkWindow *GetWindow() { return m_window; } -}; - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class wxPaintDC : public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - -public: - wxPaintDC(); - wxPaintDC( wxWindow *win ); -}; - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -class wxClientDC : public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxClientDC) - -public: - wxClientDC(); - wxClientDC( wxWindow *win ); -}; - - -#endif // __GTKDCCLIENTH__ diff --git a/include/wx/gtk1/dcmemory.h b/include/wx/gtk1/dcmemory.h deleted file mode 100644 index 982dee3119..0000000000 --- a/include/wx/gtk1/dcmemory.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDCMEMORYH__ -#define __GTKDCMEMORYH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/dcclient.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMemoryDC; - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -class wxMemoryDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxMemoryDC) - -public: - wxMemoryDC(); - wxMemoryDC( wxDC *dc ); // Create compatible DC - ~wxMemoryDC(); - virtual void SelectObject( const wxBitmap& bitmap ); - void DoGetSize( int *width, int *height ) const; - - // implementation - - wxBitmap m_selected; -}; - -#endif - // __GTKDCMEMORYH__ - diff --git a/include/wx/gtk1/dcps.h b/include/wx/gtk1/dcps.h deleted file mode 100644 index df8f2d0b09..0000000000 --- a/include/wx/gtk1/dcps.h +++ /dev/null @@ -1,142 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcps.h -// Purpose: wxPostScriptDC class -// Author: Julian Smart and others -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart, Robert Roebling and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDCPSH__ -#define __GTKDCPSNH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dc.h" - -#if wxUSE_POSTSCRIPT - -#include "wx/dialog.h" -#include "wx/module.h" -#include - - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPostScriptDC; - -//----------------------------------------------------------------------------- -// wxPostScriptDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPostScriptDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxPostScriptDC) - -public: - - wxPostScriptDC(); - wxPostScriptDC(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL); - - ~wxPostScriptDC(); - - bool Create(const wxString& output, bool interactive = TRUE, wxWindow *parent = (wxWindow *) NULL); - - virtual bool Ok() const; - - virtual bool PrinterDialog(wxWindow *parent = (wxWindow *) NULL); - - virtual void BeginDrawing() {} - virtual void EndDrawing() {} - - void FloodFill(long x1, long y1, const wxColour &col, int style=wxFLOOD_SURFACE) ; - bool GetPixel(long x1, long y1, wxColour *col) const; - - void DrawLine(long x1, long y1, long x2, long y2); - void CrossHair(long x, long y) ; - void DrawArc(long x1,long y1,long x2,long y2,long xc,long yc); - void DrawEllipticArc(long x,long y,long w,long h,double sa,double ea); - void DrawPoint(long x, long y); - // Avoid compiler warning - void DrawPoint(wxPoint& point) { wxDC::DrawPoint(point); } - void DrawLines(int n, wxPoint points[], long xoffset = 0, long yoffset = 0); - // Avoid compiler warning - void DrawLines(wxList *lines, long xoffset = 0, long yoffset = 0) - { wxDC::DrawLines(lines, xoffset, yoffset); } - void DrawPolygon(int n, wxPoint points[], long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE); - // Avoid compiler warning - void DrawPolygon(wxList *lines, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE) - { wxDC::DrawPolygon(lines, xoffset, yoffset, fillStyle); } - void DrawRectangle(long x, long y, long width, long height); - void DrawRoundedRectangle(long x, long y, long width, long height, double radius = 20); - void DrawEllipse(long x, long y, long width, long height); - - void DrawSpline(wxList *points); - - bool Blit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE); - inline bool CanDrawBitmap(void) const { return TRUE; } - - void DrawIcon( const wxIcon& icon, long x, long y ); - void DrawBitmap( const wxBitmap& bitmap, long x, long y, bool useMask=FALSE ); - - void DrawText(const wxString& text, long x, long y, bool use16 = FALSE); - - void Clear(); - void SetFont( const wxFont& font ); - void SetPen( const wxPen& pen ); - void SetBrush( const wxBrush& brush ); - void SetLogicalFunction( int function ); - void SetBackground( const wxBrush& brush ); - - void SetClippingRegion(long x, long y, long width, long height); - void SetClippingRegion( const wxRegion ®ion ); - void DestroyClippingRegion(); - - bool StartDoc(const wxString& message); - void EndDoc(); - void StartPage(); - void EndPage(); - - long GetCharHeight(); - long GetCharWidth(); - inline bool CanGetTextExtent(void) const { return FALSE; } - void GetTextExtent(const wxString& string, long *x, long *y, - long *descent = (long *) NULL, - long *externalLeading = (long *) NULL, - wxFont *theFont = (wxFont *) NULL, bool use16 = FALSE); - - void GetSize(int* width, int* height) const; - void GetSizeMM(long *width, long *height) const; - - void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - void SetDeviceOrigin( long x, long y ); - - inline void SetBackgroundMode(int WXUNUSED(mode)) {} - inline void SetPalette(const wxPalette& WXUNUSED(palette)) {} - - inline ofstream *GetStream(void) const { return m_pstream; } - -protected: - - ofstream * m_pstream; // PostScript output stream - wxString m_title; - unsigned char m_currentRed; - unsigned char m_currentGreen; - unsigned char m_currentBlue; - int m_pageNumber; - bool m_clipping; - double m_underlinePosition; - double m_underlineThickness; -}; - -#endif - // wxUSE_POSTSCRIPT - -#endif - // __GTKDCPSH__ diff --git a/include/wx/gtk1/dcscreen.h b/include/wx/gtk1/dcscreen.h deleted file mode 100644 index 34a90bc599..0000000000 --- a/include/wx/gtk1/dcscreen.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDCSCREENH__ -#define __GTKDCSCREENH__ - -#include "wx/dcclient.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxScreenDC; - -//----------------------------------------------------------------------------- -// wxScreenDC -//----------------------------------------------------------------------------- - -class wxScreenDC: public wxPaintDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - -public: - wxScreenDC(void); - ~wxScreenDC(void); - - static bool StartDrawingOnTop( wxWindow *window ); - static bool StartDrawingOnTop( wxRect *rect = (wxRect *) NULL ); - static bool EndDrawingOnTop(void); - - // implementation - - static GdkWindow *sm_overlayWindow; - static int sm_overlayWindowX; - static int sm_overlayWindowY; -}; - -#endif - - // __GTKDCSCREENH__ - diff --git a/include/wx/gtk1/dialog.h b/include/wx/gtk1/dialog.h deleted file mode 100644 index 82334eb479..0000000000 --- a/include/wx/gtk1/dialog.h +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: -// Author: Robert Roebling -// Created: -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKDIALOGH__ -#define __GTKDIALOGH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/panel.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDialog; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxDialogNameStr; - -//----------------------------------------------------------------------------- -// wxDialog -//----------------------------------------------------------------------------- - -class wxDialog: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxDialog) - -public: - wxDialog() { Init(); } - wxDialog( wxWindow *parent, wxWindowID id, - const wxString &title, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString &name = wxDialogNameStr ); - bool Create( wxWindow *parent, wxWindowID id, - const wxString &title, - const wxPoint &pos = wxDefaultPosition, - const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString &name = wxDialogNameStr ); - ~wxDialog(); - - void SetTitle(const wxString& title); - wxString GetTitle() const; - - void OnApply( wxCommandEvent &event ); - void OnCancel( wxCommandEvent &event ); - void OnOK( wxCommandEvent &event ); - void OnPaint( wxPaintEvent& event ); - void OnSize( wxSizeEvent &event ); - void OnCloseWindow( wxCloseEvent& event ); - /* - void OnCharHook( wxKeyEvent& event ); - */ - - bool Destroy(); - - virtual bool Show( bool show ); - virtual int ShowModal(); - virtual void EndModal( int retCode ); - virtual bool IsModal() const; - void SetModal( bool modal ); - - virtual void InitDialog(void); - - virtual void Centre( int direction = wxHORIZONTAL ); - - virtual void SetIcon( const wxIcon &icon ); - virtual void Iconize( bool WXUNUSED(iconize)) { } - virtual bool IsIconized() const { return FALSE; } - bool Iconized() const { return IsIconized(); } - virtual void Maximize() { } - virtual void Restore() { } - - void SetReturnCode(int returnCode) { m_returnCode = returnCode; } - int GetReturnCode() const { return m_returnCode; } - - // implementation - - virtual void GtkOnSize( int x, int y, int width, int height ); - virtual void OnInternalIdle(); - - bool m_modalShowing; - wxString m_title; - wxIcon m_icon; - -protected: - // common part of all ctors - void Init(); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - int m_returnCode; - - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKDIALOGH__ diff --git a/include/wx/gtk1/dnd.h b/include/wx/gtk1/dnd.h deleted file mode 100644 index 0e76509e1a..0000000000 --- a/include/wx/gtk1/dnd.h +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.h -// Purpose: declaration of the wxDropTarget class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDNDH__ -#define __GTKDNDH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dataobj.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/gdicmn.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class wxWindow; - -class wxDropTarget; -class wxTextDropTarget; -class wxFileDropTarget; -class wxPrivateDropTarget; - -class wxDropSource; - -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class wxDropTarget: public wxObject -{ -public: - - wxDropTarget(); - ~wxDropTarget(); - - /* may be overridden to react to events */ - virtual void OnEnter(); - virtual void OnLeave(); - - /* may be overridden to reject certain formats or drops - on certain areas. always returns TRUE by default - indicating that you'd accept the data from the drag. */ - virtual bool OnMove( int x, int y ); - - /* has to be overridden to accept a drop event. call - IsSupported() to ask which formats are available - and then call RequestData() to indicate the format - you request. */ - virtual bool OnDrop( int x, int y ); - - /* this gets called once the data has actually arrived. get - it with GetData(). this has to be overridden. */ - virtual bool OnData( int x, int y ); - - /* called from within OnDrop() to request a certain format - from the drop event. */ - bool RequestData( wxDataFormat format ); - - /* called to query what formats are available */ - bool IsSupported( wxDataFormat format ); - - /* fill data with data from the dragging source */ - bool GetData( wxDataObject *data ); - -// implementation - - void RegisterWidget( GtkWidget *widget ); - void UnregisterWidget( GtkWidget *widget ); - - GdkDragContext *m_dragContext; - GtkWidget *m_dragWidget; - GtkSelectionData *m_dragData; - guint m_dragTime; - bool m_firstMotion; /* gdk has no "gdk_drag_enter" event */ - - void SetDragContext( GdkDragContext *dc ) { m_dragContext = dc; } - void SetDragWidget( GtkWidget *w ) { m_dragWidget = w; } - void SetDragData( GtkSelectionData *sd ) { m_dragData = sd; } - void SetDragTime( guint time ) { m_dragTime = time; } -}; - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -class wxTextDropTarget: public wxDropTarget -{ -public: - - wxTextDropTarget() {} - - virtual bool OnMove( int x, int y ); - virtual bool OnDrop( int x, int y ); - virtual bool OnData( int x, int y ); - - /* you have to override OnDropData to get at the text */ - virtual bool OnDropText( int x, int y, const wxChar *text ) = 0; - -}; - -//------------------------------------------------------------------------- -// wxPrivateDropTarget -//------------------------------------------------------------------------- - -class wxPrivateDropTarget: public wxDropTarget -{ -public: - - /* sets id to "application/myprogram" where "myprogram" is the - same as wxApp->GetAppName() */ - wxPrivateDropTarget(); - /* see SetId() below for explanation */ - wxPrivateDropTarget( const wxString &id ); - - virtual bool OnMove( int x, int y ); - virtual bool OnDrop( int x, int y ); - virtual bool OnData( int x, int y ); - - /* you have to override OnDropData to get at the data */ - virtual bool OnDropData( int x, int y, void *data, size_t size ) = 0; - - /* the string ID identifies the format of clipboard or DnD data. a word - processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - to the clipboard - the latter with the Id "application/wxword" or - "image/png". */ - void SetId( const wxString& id ) { m_id = id; } - wxString GetId() { return m_id; } - -private: - - wxString m_id; -}; - -//---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -//---------------------------------------------------------------------------- - -class wxFileDropTarget: public wxDropTarget -{ -public: - - wxFileDropTarget() {} - - virtual bool OnMove( int x, int y ); - virtual bool OnDrop( int x, int y ); - virtual bool OnData( int x, int y ); - - /* you have to override OnDropFiles to get at the file names */ - virtual bool OnDropFiles( int x, int y, size_t nFiles, const wxChar * const aszFiles[] ) = 0; - -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -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) - wxDragCancel // the operation was cancelled by user (not an error) -}; - -class wxDropSource: public wxObject -{ -public: - - /* constructor. set data later with SetData() */ - wxDropSource( wxWindow *win, const wxIcon &go = wxNullIcon, const wxIcon &stop = wxNullIcon ); - - /* constructor for setting one data object */ - wxDropSource( wxDataObject *data, wxWindow *win, const wxIcon &go = wxNullIcon, const wxIcon &stop = wxNullIcon ); - - /* constructor for setting several data objects via wxDataBroker */ - wxDropSource( wxDataBroker *data, wxWindow *win ); - - ~wxDropSource(); - - /* set several dataobjects via wxDataBroker */ - void SetData( wxDataBroker *data ); - - /* set one dataobject */ - void SetData( wxDataObject *data ); - - /* start drag action */ - wxDragResult DoDragDrop( bool bAllowMove = FALSE ); - - /* override to give feedback */ - virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; } - - /* GTK implementation */ - - void RegisterWindow(); - void UnregisterWindow(); - - GtkWidget *m_widget; - wxWindow *m_window; - wxDragResult m_retValue; - wxDataBroker *m_data; - - wxCursor m_defaultCursor; - wxCursor m_goaheadCursor; - - wxIcon m_goIcon; - wxIcon m_stopIcon; - - bool m_waiting; -}; - -#endif - - // wxUSE_DRAG_AND_DROP - -#endif - //__GTKDNDH__ - diff --git a/include/wx/gtk1/filedlg.h b/include/wx/gtk1/filedlg.h deleted file mode 100644 index 64485e5e4e..0000000000 --- a/include/wx/gtk1/filedlg.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKFILEDLGH__ -#define __GTKFILEDLGH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/dialog.h" - -//------------------------------------------------------------------------- -// File selector -//------------------------------------------------------------------------- - -extern const wxChar *wxFileSelectorPromptStr; -extern const wxChar *wxFileSelectorDefaultWildcardStr; - -class wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) - -public: - wxFileDialog() { } - - wxFileDialog(wxWindow *parent, - const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", - const wxString& defaultFile = "", - const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, - const wxPoint& pos = wxDefaultPosition); - - void SetMessage(const wxString& message) { m_message = message; } - void SetPath(const wxString& path); - void SetDirectory(const wxString& dir) { m_dir = dir; } - void SetFilename(const wxString& name) { m_fileName = name; } - void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - void SetStyle(long style) { m_dialogStyle = style; } - void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - wxString GetMessage() const { return m_message; } - wxString GetPath() const { return m_path; } - wxString GetDirectory() const { return m_dir; } - wxString GetFilename() const { return m_fileName; } - wxString GetWildcard() const { return m_wildCard; } - long GetStyle() const { return m_dialogStyle; } - int GetFilterIndex() const { return m_filterIndex ; } - -protected: - - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; -}; - -#define wxOPEN 1 -#define wxSAVE 2 -#define wxOVERWRITE_PROMPT 4 -#define wxHIDE_READONLY 8 -#define wxFILE_MUST_EXIST 16 - -// File selector - backward compatibility -WXDLLEXPORT wxString -wxFileSelector(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - const wxChar *default_extension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString -wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - int *indexDefaultExtension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// Ask for filename to load -WXDLLEXPORT wxString -wxLoadFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *)NULL, - wxWindow *parent = (wxWindow *) NULL); - -// Ask for filename to save -WXDLLEXPORT wxString -wxSaveFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *) NULL, - wxWindow *parent = (wxWindow *) NULL); - -#endif - // __GTKFILEDLGH__ diff --git a/include/wx/gtk1/font.h b/include/wx/gtk1/font.h deleted file mode 100644 index 5cd30bc79a..0000000000 --- a/include/wx/gtk1/font.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKFONTH__ -#define __GTKFONTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/hash.h" -#include "wx/gdiobj.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDC; -class wxPaintDC; -class wxWindow; - -class wxFont; -/* -class wxFontNameDirectory; -*/ - -//----------------------------------------------------------------------------- -// global variables -//----------------------------------------------------------------------------- - -/* -extern wxFontNameDirectory *wxTheFontNameDirectory; -*/ -extern const wxChar* wxEmptyString; - -//----------------------------------------------------------------------------- -// wxFont -//----------------------------------------------------------------------------- - -class wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) - -public: - wxFont(); - wxFont( int pointSize, int family, int style, int weight, bool underlined = FALSE, - const wxString& face = wxEmptyString ); - wxFont( const wxFont& font ); - ~wxFont(); - wxFont& operator = ( const wxFont& font ); - bool operator == ( const wxFont& font ) const; - bool operator != ( const wxFont& font ) const; - bool Ok() const; - - int GetPointSize() const; - int GetFamily() const; - int GetStyle() const; - int GetWeight() const; - bool GetUnderlined() const; - - void SetPointSize( int pointSize ); - void SetFamily( int family ); - void SetStyle( int style ); - void SetWeight( int weight ); - void SetFaceName( const wxString& faceName ); - void SetUnderlined( bool underlined ); - - wxString GetFaceName() const; - wxString GetFamilyString() const; - wxString GetStyleString() const; - wxString GetWeightString() const; - - // implementation - - wxFont( char *xFontName ); - void Unshare(); - - GdkFont* GetInternalFont(float scale = 1.0) const; - - // no data :-) -}; - -/* -//----------------------------------------------------------------------------- -// wxFontDirectory -//----------------------------------------------------------------------------- - -class wxFontNameDirectory: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFontNameDirectory) - - public: - wxFontNameDirectory(); - ~wxFontNameDirectory(); - - void Initialize(); - void Initialize(int fontid, int family, const char *name); - - int FindOrCreateFontId(const char *name, int family); - char* GetAFMName(int fontid, int weight, int style); - int GetFamily(int fontid); - int GetFontId(const char *name); - char* GetFontName(int fontid); - int GetNewFontId(); - char* GetPostScriptName(int fontid, int weight, int style); - char* GetScreenName(int fontid, int weight, int style); - - class wxHashTable *table; - int nextFontId; -}; -*/ - -#endif // __GTKFONTH__ diff --git a/include/wx/gtk1/frame.h b/include/wx/gtk1/frame.h deleted file mode 100644 index 5595a21347..0000000000 --- a/include/wx/gtk1/frame.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKFRAMEH__ -#define __GTKFRAMEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/window.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMDIChildFrame; -class wxMDIClientWindow; -class wxMenu; -class wxMenuBar; -class wxToolBar; -class wxStatusBar; - -class wxFrame; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxFrameNameStr; -extern const wxChar *wxToolBarNameStr; - -//----------------------------------------------------------------------------- -// wxFrame -//----------------------------------------------------------------------------- - -class wxFrame: public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame() { Init(); } - wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString &name = wxFrameNameStr ); - ~wxFrame(); - bool Destroy(); - - virtual bool Show( bool show ); - virtual void Centre( int direction = wxHORIZONTAL ); - -#if wxUSE_STATUSBAR - virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0, - const wxString& name = _T("statusBar")); - virtual wxStatusBar *OnCreateStatusBar( int number, long style, wxWindowID id, - const wxString& name ); - virtual wxStatusBar *GetStatusBar() const; - inline void SetStatusBar(wxStatusBar *statusBar) { m_frameStatusBar = statusBar; } - virtual void SetStatusText( const wxString &text, int number = 0 ); - virtual void SetStatusWidths( int n, const int widths_field[] ); -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - virtual wxToolBar* CreateToolBar( long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, - const wxString& name = wxToolBarNameStr); - virtual wxToolBar *OnCreateToolBar( long style, wxWindowID id, const wxString& name ); - virtual wxToolBar *GetToolBar() const; - void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } -#endif // wxUSE_TOOLBAR - - virtual void SetMenuBar( wxMenuBar *menuBar ); - virtual wxMenuBar *GetMenuBar() const; - - virtual void SetTitle( const wxString &title ); - virtual wxString GetTitle() const { return m_title; } - - // make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal = TRUE); - - virtual void SetIcon( const wxIcon &icon ); - virtual void Iconize( bool WXUNUSED(iconize)) { } - virtual bool IsIconized() const { return FALSE; } - bool Iconized() const { return IsIconized(); } - virtual void Maximize(bool WXUNUSED(maximize)) {} - virtual void Restore() {} - - virtual void Command( int id ); - - void OnCloseWindow( wxCloseEvent& event ); - void OnActivate( wxActivateEvent &WXUNUSED(event) ) { } // called from docview.cpp - void OnSize( wxSizeEvent &event ); - - void OnMenuHighlight( wxMenuEvent& event ); - - // implementation - - virtual void GtkOnSize( int x, int y, int width, int height ); - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin); - virtual void OnInternalIdle(); - - wxMenuBar *m_frameMenuBar; - wxStatusBar *m_frameStatusBar; - wxToolBar *m_frameToolBar; - wxString m_title; - wxIcon m_icon; - int m_miniEdge,m_miniTitle; - GtkWidget *m_mainWidget; - bool m_menuBarDetached; - bool m_toolBarDetached; - bool m_insertInClientArea; /* not from within OnCreateXXX */ - -protected: - // common part of all ctors - void Init(); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - virtual void DoSetClientSize(int width, int height); - virtual void DoGetClientSize( int *width, int *height ) const; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKFRAMEH__ diff --git a/include/wx/gtk1/gauge.h b/include/wx/gtk1/gauge.h deleted file mode 100644 index e75a0c41b5..0000000000 --- a/include/wx/gtk1/gauge.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKGAUGEH__ -#define __GTKGAUGEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxGauge; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxGaugeNameStr; - -//----------------------------------------------------------------------------- -// wxGaugeBox -//----------------------------------------------------------------------------- - -class wxGauge: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge) - - public: - inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; m_useProgressBar = TRUE; } - - inline wxGauge( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr ) - { - Create(parent, id, range, pos, size, style, validator, name); - } - bool Create( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr ); - void SetShadowWidth( int WXUNUSED(w) ) {}; - void SetBezelFace( int WXUNUSED(w) ) {}; - void SetRange( int r ); - void SetValue( int pos ); - int GetShadowWidth() const { return 0; }; - int GetBezelFace() const { return 0; }; - int GetRange() const; - int GetValue() const; - - // Are we a Win95/GTK progress bar, or a normal gauge? - inline bool GetProgressBar() const { return m_useProgressBar; } - - // implementation - - void ApplyWidgetStyle(); - - int m_rangeMax; - int m_gaugePos; - bool m_useProgressBar; -}; - -#endif // __GTKGAUGEH__ diff --git a/include/wx/gtk1/gdiobj.h b/include/wx/gtk1/gdiobj.h deleted file mode 100644 index ac8e8e9447..0000000000 --- a/include/wx/gtk1/gdiobj.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GDIOBJH__ -#define __GDIOBJH__ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface -#endif - -class wxGDIObject : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - -public: - inline wxGDIObject() { m_visible = FALSE; }; - inline ~wxGDIObject() {}; - - virtual bool GetVisible() { return m_visible; } - virtual void SetVisible( bool visible ) { m_visible = visible; } - -protected: - bool m_visible; /* can a pointer to this object be safely taken? - * - only if created within FindOrCreate... */ -}; - -#endif - // __GDIOBJH__ diff --git a/include/wx/gtk1/icon.h b/include/wx/gtk1/icon.h deleted file mode 100644 index e306018665..0000000000 --- a/include/wx/gtk1/icon.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKICONH__ -#define __GTKICONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxIcon; - -//----------------------------------------------------------------------------- -// wxIcon -//----------------------------------------------------------------------------- - -class wxIcon: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - - wxIcon(); - wxIcon( const wxIcon& icon); - wxIcon( const char **bits, int width=-1, int height=-1 ); - - // For compatibility with wxMSW where desired size is sometimes required to - // distinguish between multiple icons in a resource. - wxIcon( const wxString& filename, int type = wxBITMAP_TYPE_XPM, int WXUNUSED(desiredWidth)=-1, int WXUNUSED(desiredHeight)=-1 ): - wxBitmap(filename, type) - { - } - wxIcon( char **bits, int width=-1, int height=-1 ); - - wxIcon& operator = (const wxIcon& icon); - inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; } - inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; } -}; - - -#endif // __GTKICONH__ diff --git a/include/wx/gtk1/joystick.h b/include/wx/gtk1/joystick.h deleted file mode 100644 index 957c16581a..0000000000 --- a/include/wx/gtk1/joystick.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: Guilhem Lavaux -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __JOYSTICKH__ -#define __JOYSTICKH__ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" -#include "wx/thread.h" - -class WXDLLEXPORT wxJoystick: public wxObject, public wxThread -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition(void) const; - int GetZPosition(void) const; - int GetButtonState(void) const; - int GetPOVPosition(void) const; - int GetPOVCTSPosition(void) const; - int GetRudderPosition(void) const; - int GetUPosition(void) const; - int GetVPosition(void) const; - int GetMovementThreshold(void) const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk(void) const; // Checks that the joystick is functioning - int GetNumberJoysticks(void) const ; - int GetManufacturerId(void) const ; - int GetProductId(void) const ; - wxString GetProductName(void) const ; - int GetXMin(void) const; - int GetYMin(void) const; - int GetZMin(void) const; - int GetXMax(void) const; - int GetYMax(void) const; - int GetZMax(void) const; - int GetNumberButtons(void) const; - int GetNumberAxes(void) const; - int GetMaxButtons(void) const; - int GetMaxAxes(void) const; - int GetPollingMin(void) const; - int GetPollingMax(void) const; - int GetRudderMin(void) const; - int GetRudderMax(void) const; - int GetUMin(void) const; - int GetUMax(void) const; - int GetVMin(void) const; - int GetVMax(void) const; - - bool HasRudder(void) const; - bool HasZ(void) const; - bool HasU(void) const; - bool HasV(void) const; - bool HasPOV(void) const; - bool HasPOV4Dir(void) const; - bool HasPOVCTS(void) const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(void); - -protected: - int m_joystick; - wxPoint m_lastposition; - int m_axe[15]; - int m_buttons; - wxWindow *m_catchwin; - int m_polling; - - void *Entry(void); -}; - -#endif - // __JOYSTICKH__ - diff --git a/include/wx/gtk1/listbox.h b/include/wx/gtk1/listbox.h deleted file mode 100644 index fa19c2d4f9..0000000000 --- a/include/wx/gtk1/listbox.h +++ /dev/null @@ -1,128 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class declaration -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKLISTBOXH__ -#define __GTKLISTBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxListBox; -class wxArrayInt; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxListBoxNameStr; - -//----------------------------------------------------------------------------- -// wxListBox -//----------------------------------------------------------------------------- - -class wxListBox : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxListBox) - -public: - wxListBox(); - wxListBox( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr ) - { -#if wxUSE_CHECKLISTBOX - m_hasCheckBoxes = FALSE; -#endif // wxUSE_CHECKLISTBOX - Create(parent, id, pos, size, n, choices, style, validator, name); - } - virtual ~wxListBox(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - void Append( const wxString &item ); - void Append( const wxString &item, void* clientData ); - void Append( const wxString &item, wxClientData* clientData ); - - void InsertItems(int nItems, const wxString items[], int pos); - - void SetClientData( int n, void* clientData ); - void* GetClientData( int n ); - void SetClientObject( int n, wxClientData* clientData ); - wxClientData* GetClientObject( int n ); - - void SetClientObject( wxClientData *data ) { wxControl::SetClientObject( data ); } - wxClientData *GetClientObject() const { return wxControl::GetClientObject(); } - void SetClientData( void *data ) { wxControl::SetClientData( data ); } - void *GetClientData() const { return wxControl::GetClientData(); } - - void Clear(); - void Delete( int n ); - - void Deselect( int n ); - int FindString( const wxString &item ) const; - int GetSelection(void) const; - int GetSelections( class wxArrayInt &) const; - wxString GetString( int n ) const; - wxString GetStringSelection(void) const; - int Number(); - bool Selected( int n ); - void Set( int n, const wxString *choices ); - void SetFirstItem( int n ); - void SetFirstItem( const wxString &item ); - void SetSelection( int n, bool select = TRUE ); - void SetString( int n, const wxString &string ); - void SetStringSelection( const wxString &string, bool select = TRUE ); - -#if wxUSE_DRAG_AND_DROP - void SetDropTarget( wxDropTarget *dropTarget ); -#endif - - // implementation - - void AppendCommon( const wxString &item ); - int GetIndex( GtkWidget *item ) const; - GtkWidget *GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - -#if wxUSE_TOOLTIPS - void ApplyToolTip( GtkTooltips *tips, const wxChar *tip ); -#endif // wxUSE_TOOLTIPS - - GtkList *m_list; - wxList m_clientDataList; - wxList m_clientObjectList; - -#if wxUSE_CHECKLISTBOX - bool m_hasCheckBoxes; -#endif // wxUSE_CHECKLISTBOX -}; - -#endif // __GTKLISTBOXH__ diff --git a/include/wx/gtk1/mdi.h b/include/wx/gtk1/mdi.h deleted file mode 100644 index 152af27a48..0000000000 --- a/include/wx/gtk1/mdi.h +++ /dev/null @@ -1,178 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __MDIH__ -#define __MDIH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/panel.h" -#include "wx/frame.h" -#include "wx/toolbar.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMDIParentFrame; -class wxMDIClientWindow; -class wxMDIChildFrame; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar* wxFrameNameStr; -extern const wxChar* wxStatusLineNameStr; - -//----------------------------------------------------------------------------- -// wxMDIParentFrame -//----------------------------------------------------------------------------- - -class wxMDIParentFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - - friend class wxMDIChildFrame; - -public: - - wxMDIParentFrame(void); - wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - ~wxMDIParentFrame(void); - bool Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr ); - - - void GetClientSize(int *width, int *height) const; - wxMDIChildFrame *GetActiveChild() const; - - wxMDIClientWindow *GetClientWindow() const; - virtual wxMDIClientWindow *OnCreateClient(); - - virtual void Cascade() {} - virtual void Tile() {} - virtual void ArrangeIcons() {} - virtual void ActivateNext(); - virtual void ActivatePrevious(); - - void OnActivate( wxActivateEvent& event ); - void OnSysColourChanged( wxSysColourChangedEvent& event ); - - // implementation - - wxMDIClientWindow *m_clientWindow; - bool m_justInserted; - - virtual void GtkOnSize( int x, int y, int width, int height ); - virtual void OnInternalIdle(); - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxMDIChildFrame -//----------------------------------------------------------------------------- - -class wxMDIChildFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) - - public: - - wxMDIChildFrame(); - wxMDIChildFrame( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - ~wxMDIChildFrame(void); - bool Create( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = wxFrameNameStr ); - - virtual void SetMenuBar( wxMenuBar *menu_bar ); - virtual wxMenuBar *GetMenuBar() const; - - virtual void GetClientSize( int *width, int *height ) const; - virtual void AddChild( wxWindow *child ); - - virtual void Activate(); - - // no status bars - virtual wxStatusBar* CreateStatusBar( int WXUNUSED(number)=1, long WXUNUSED(style)=1, - wxWindowID WXUNUSED(id)=1, const wxString& WXUNUSED(name)=WXSTRINGCAST NULL ) {return (wxStatusBar*)NULL; } - virtual wxStatusBar *GetStatusBar() const { return (wxStatusBar*)NULL; } - virtual void SetStatusText( const wxString &WXUNUSED(text), int WXUNUSED(number)=0 ) {} - virtual void SetStatusWidths( int WXUNUSED(n), const int WXUNUSED(widths_field)[] ) {} - - // no size hints - virtual void SetSizeHints( int WXUNUSED(minW), int WXUNUSED(minH), - int WXUNUSED(maxW), int WXUNUSED(maxH), - int WXUNUSED(incW), int WXUNUSED(incH) ) {} - - // no toolbar bars - virtual wxToolBar* CreateToolBar( long WXUNUSED(style), wxWindowID WXUNUSED(id), - const wxString& WXUNUSED(name) ) { return (wxToolBar*)NULL; } - virtual wxToolBar *GetToolBar() const { return (wxToolBar*)NULL; } - - // no icon - void SetIcon( const wxIcon &icon ) { m_icon = icon; } - - // no title - void SetTitle( const wxString &title ) { m_title = title; } - wxString GetTitle() const { return m_title; } - - // no maximize etc - virtual void Maximize( bool WXUNUSED(maximize) ) {} - virtual void Restore() {} - - void OnActivate( wxActivateEvent &event ); - - // implementation - - wxMenuBar *m_menuBar; - GtkNotebookPage *m_page; - bool m_justInserted; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxMDIClientWindow -//----------------------------------------------------------------------------- - -class wxMDIClientWindow: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - -public: - - wxMDIClientWindow(void); - wxMDIClientWindow( wxMDIParentFrame *parent, long style = 0 ); - ~wxMDIClientWindow(void); - virtual bool CreateClient( wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL ); -}; - -#endif // __MDIH__ - diff --git a/include/wx/gtk1/menu.h b/include/wx/gtk1/menu.h deleted file mode 100644 index f09ee3bc04..0000000000 --- a/include/wx/gtk1/menu.h +++ /dev/null @@ -1,195 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKMENUH__ -#define __GTKMENUH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/window.h" -#include "wx/menuitem.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMenuBar; -class wxMenuItem; -class wxMenu; - -//----------------------------------------------------------------------------- -// const -//----------------------------------------------------------------------------- - -#define ID_SEPARATOR (-1) - -//----------------------------------------------------------------------------- -// wxMenuBar -//----------------------------------------------------------------------------- - -class wxMenuBar : public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - -public: - // ctors - wxMenuBar(); - wxMenuBar(long style); - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - ~wxMenuBar(); - - // menubar construction - void Append( wxMenu *menu, const wxString &title ); - - // item search - // by menu and item names, returns wxNOT_FOUND if not found - virtual int FindMenuItem(const wxString& menuString, - const wxString& itemString) const; - // returns NULL if not found - wxMenuItem* FindItem( int id ) const; - // returns NULL if not found, fills menuForItem if !NULL - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const; - - // state control - void Check( int id, bool check ); - bool IsChecked( int id ) const; - void Enable( int id, bool enable ); - bool IsEnabled( int id ) const; - - void SetLabel( int id, const wxString &label ); - wxString GetLabel( int id ) const; - wxString GetLabel() const { return wxWindow::GetLabel(); } - - void EnableTop( int pos, bool flag ); - void SetLabelTop( int pos, const wxString& label ); - wxString GetLabelTop( int pos ) const; - - virtual void SetHelpString( int id, const wxString& helpString ); - virtual wxString GetHelpString( int id ) const; - - int GetMenuCount() const { return m_menus.Number(); } - wxMenu *GetMenu( int n ) const { return (wxMenu *)m_menus.Nth(n)->Data(); } - -#ifdef WXWIN_COMPATIBILITY - // compatibility: these functions are deprecated - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } - - wxMenuItem* FindMenuItemById( int id ) const { return FindItem(id); } -#endif // WXWIN_COMPATIBILITY - - // implementation only - wxList& GetMenus() { return m_menus; } - - void SetInvokingWindow( wxWindow *win ); - void UnsetInvokingWindow( wxWindow *win ); - - GtkAccelGroup *m_accel; - GtkItemFactory *m_factory; - wxList m_menus; - GtkWidget *m_menubar; -}; - -//----------------------------------------------------------------------------- -// wxMenu -//----------------------------------------------------------------------------- - -class wxMenu : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - wxMenu( const wxString& title = wxEmptyString, - const wxFunction func = (wxFunction) NULL ); - ~wxMenu(); - - // operations - // title - void SetTitle(const wxString& label); - const wxString GetTitle() const; - // menu creation - void AppendSeparator(); - void Append(int id, const wxString &item, - const wxString &helpStr = "", bool checkable = FALSE); - void Append(int id, const wxString &item, - wxMenu *subMenu, const wxString &helpStr = "" ); - void Append(wxMenuItem *pItem); - void Break() { } - - // find item by name/id - int FindItem( const wxString itemString ) const; - wxMenuItem *FindItem( int id ) const; - - // get/set item's state - void Enable( int id, bool enable ); - bool IsEnabled( int id ) const; - void Check( int id, bool check ); - bool IsChecked( int id ) const; - - void SetLabel( int id, const wxString &label ); - wxString GetLabel( int id ) const; - - // helpstring - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - // accessors - wxList& GetItems() { return m_items; } - - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - void SetClientData( void* clientData ) { m_clientData = clientData; } - void* GetClientData() const { return m_clientData; } - - // Updates the UI for a menu and all submenus recursively. - // source is the object that has the update event handlers - // defined for it. If NULL, the menu or associated window - // will be used. - void UpdateUI(wxEvtHandler* source = (wxEvtHandler*) NULL); - - wxMenuItem *FindItemForId( int id ) const { return FindItem( id ); } - -#ifdef WXWIN_COMPATIBILITY - wxFunction GetCallback() const { return m_callback; } - void Callback(const wxFunction func) { m_callback = func; } - - // compatibility: these functions are deprecated - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } -#endif // WXWIN_COMPATIBILITY - - // implementation - int FindMenuIdByMenuItem( GtkWidget *menuItem ) const; - void SetInvokingWindow( wxWindow *win ); - wxWindow *GetInvokingWindow(); - - // implementation GTK only - GtkWidget *m_menu; // GtkMenu - GtkWidget *m_owner; - GtkAccelGroup *m_accel; - GtkItemFactory *m_factory; - -private: - - wxString m_title; - wxList m_items; - wxWindow *m_invokingWindow; - wxFunction m_callback; - wxEvtHandler *m_eventHandler; - void *m_clientData; -}; - -#endif // __GTKMENUH__ diff --git a/include/wx/gtk1/menuitem.h b/include/wx/gtk1/menuitem.h deleted file mode 100644 index 0575a81dab..0000000000 --- a/include/wx/gtk1/menuitem.h +++ /dev/null @@ -1,97 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h -// Purpose: wxMenuItem class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKMENUITEMH__ -#define __GTKMENUITEMH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/string.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define ID_SEPARATOR (-1) - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMenuItem; -class wxMenu; - -//----------------------------------------------------------------------------- -// wxMenuItem -//----------------------------------------------------------------------------- - -class wxMenuItem : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - wxMenuItem(); - - // accessors - // id - void SetId(int id) { m_id = id; } - int GetId() const { return m_id; } - bool IsSeparator() const { return m_id == ID_SEPARATOR; } - - // the item's text = name - void SetName(const wxString& str); - void SetText(const wxString& str) { SetName(str); } // compatibility - const wxString& GetName() const { return m_text; } - const wxString& GetText() const { return GetName(); } - - // what kind of menu item we are - void SetCheckable(bool checkable) { m_isCheckMenu = checkable; } - bool IsCheckable() const { return m_isCheckMenu; } - void SetSubMenu(wxMenu *menu) { m_subMenu = menu; } - wxMenu *GetSubMenu() const { return m_subMenu; } - bool IsSubMenu() const { return m_subMenu != NULL; } - - // state - void Enable( bool enable = TRUE ); - bool IsEnabled() const { return m_isEnabled; } - void Check( bool check = TRUE ); - bool IsChecked() const; - - // help string (displayed in the status bar by default) - void SetHelp(const wxString& str) { m_helpStr = str; } - const wxString& GetHelp() const { return m_helpStr; } - - // implementation - void SetMenuItem(GtkWidget *menuItem) { m_menuItem = menuItem; } - GtkWidget *GetMenuItem() const { return m_menuItem; } - - wxString GetHotKey() const { return m_hotKey; } - - void SetCheckedFlag(bool checked) { m_isChecked = checked; } - bool GetCheckedFlag() const { return m_isChecked; } - -private: - int m_id; - wxString m_text; - wxString m_hotKey; - bool m_isCheckMenu; - bool m_isChecked; - bool m_isEnabled; - wxMenu *m_subMenu; - wxString m_helpStr; - - GtkWidget *m_menuItem; // GtkMenuItem -}; - - -#endif - //__GTKMENUITEMH__ diff --git a/include/wx/gtk1/minifram.h b/include/wx/gtk1/minifram.h deleted file mode 100644 index 1828439281..0000000000 --- a/include/wx/gtk1/minifram.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.h -// Purpose: wxMiniFrame class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKMINIFRAMEH__ -#define __GTKMINIFRAMEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/frame.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxMiniFrame; - -//----------------------------------------------------------------------------- -// wxMiniFrame -//----------------------------------------------------------------------------- - -class wxMiniFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMiniFrame) - -public: - wxMiniFrame() {} - wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr); - - // implementation - - bool m_isDragging; - int m_oldX,m_oldY; - int m_diffX,m_diffY; -}; - -#endif - // __GTKMINIFRAMEH__ diff --git a/include/wx/gtk1/notebook.h b/include/wx/gtk1/notebook.h deleted file mode 100644 index 2d10456907..0000000000 --- a/include/wx/gtk1/notebook.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.h -// Purpose: wxNotebook class -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Robert Roebling -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKNOTEBOOKH__ -#define __GTKNOTEBOOKH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxImageList; -class wxNotebook; -class wxNotebookPage; - -//----------------------------------------------------------------------------- -// wxNotebook -//----------------------------------------------------------------------------- - -class wxNotebook : public wxControl -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // dtor - ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - int GetPageCount() const; - - // set the currently selected page, return the index of the previously - // selected one (or -1 on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(int nPage); - // cycle thru the tabs - void AdvanceSelection(bool bForward = TRUE); - // get the currently selected page - int GetSelection() const; - - // set/get the title of a page - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - // get pointer (may be NULL) to the associated image list - wxImageList *GetImageList() const { return m_imageList; } - - // sets/returns item's image index in the current image list - int GetPageImage(int nPage) const; - bool SetPageImage(int nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - // sets the size of the tabs (assumes all tabs are the same size) - void SetTabSize(const wxSize& sz); - - // operations - // ---------- - // remove one page from the notebook but do not destroy it - bool RemovePage(int nPage); - // remove one page from the notebook - bool DeletePage(int nPage); - // remove all pages - bool DeleteAllPages(); - - // adds a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool AddPage( wxWindow *win, - const wxString& strText, - bool select = FALSE, - int imageId = -1 ); - // the same as AddPage(), but adds it at the specified position - bool InsertPage( int position, - wxWindow *win, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1 ); - - // get the panel which represents the given page - wxWindow *GetPage(int nPage) const; - - void OnNavigationKey(wxNavigationKeyEvent& event); - - // implementation - - void SetConstraintSizes(bool recurse); - bool DoPhase(int phase); - void ApplyWidgetStyle(); - - // report if window belongs to notebook - bool IsOwnGtkWindow( GdkWindow *window ); - - // common part of all ctors - void Init(); - - // helper function - wxNotebookPage* GetNotebookPage(int page) const; - - wxImageList* m_imageList; - wxList m_pages; - int m_lastSelection; /* hack */ - - DECLARE_DYNAMIC_CLASS(wxNotebook) - DECLARE_EVENT_TABLE() -}; - -#endif - // __GTKNOTEBOOKH__ diff --git a/include/wx/gtk1/palette.h b/include/wx/gtk1/palette.h deleted file mode 100644 index 8574526cb3..0000000000 --- a/include/wx/gtk1/palette.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKPALETTEH__ -#define __GTKPALETTEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPalette; - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -class wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - - public: - - wxPalette(); - wxPalette( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue ); - wxPalette( const wxPalette& palette ); - ~wxPalette(); - wxPalette& operator = ( const wxPalette& palette ); - bool operator == ( const wxPalette& palette ); - bool operator != ( const wxPalette& palette ); - bool Ok() const; - - bool Create( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel( const unsigned char red, const unsigned char green, const unsigned char blue ) const; - bool GetRGB( int pixel, unsigned char *red, unsigned char *green, unsigned char *blue ) const; - - // no data -}; - -#define wxColorMap wxPalette -#define wxColourMap wxPalette - -#endif // __GTKPALETTEH__ diff --git a/include/wx/gtk1/pen.h b/include/wx/gtk1/pen.h deleted file mode 100644 index fb37103370..0000000000 --- a/include/wx/gtk1/pen.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKPENH__ -#define __GTKPENH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxPen; - -//----------------------------------------------------------------------------- -// wxPen -//----------------------------------------------------------------------------- - -class wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) - - public: - - wxPen(); - wxPen( const wxColour &colour, int width, int style ); - wxPen( const wxPen& pen ); - ~wxPen(); - wxPen& operator = ( const wxPen& pen ); - bool operator == ( const wxPen& pen ); - bool operator != ( const wxPen& pen ); - - void SetColour( const wxColour &colour ); - void SetColour( int red, int green, int blue ); - void SetCap( int capStyle ); - void SetJoin( int joinStyle ); - void SetStyle( int style ); - void SetWidth( int width ); - wxColour &GetColour() const; - int GetCap() const; - int GetJoin() const; - int GetStyle() const; - int GetWidth() const; - bool Ok() const; - - void Unshare(); - - // no data :-) -}; - -#endif // __GTKPENH__ diff --git a/include/wx/gtk1/radiobox.h b/include/wx/gtk1/radiobox.h deleted file mode 100644 index a73c1a608e..0000000000 --- a/include/wx/gtk1/radiobox.h +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKRADIOBOXH__ -#define __GTKRADIOBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxRadioBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxRadioBoxNameStr; - -//----------------------------------------------------------------------------- -// wxRadioBox -//----------------------------------------------------------------------------- - -class wxRadioBox: public wxControl -{ - - DECLARE_DYNAMIC_CLASS(wxRadioBox) - -public: - wxRadioBox(); - inline wxRadioBox( wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - int majorDim = 1, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr ) - { - Create( parent, id, title, pos, size, n, choices, majorDim, style, val, name ); - } - ~wxRadioBox(void); - bool Create( wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = (const wxString *) NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, - const wxString& name = wxRadioBoxNameStr ); - - int FindString( const wxString& s) const; - void SetSelection( int n ); - int GetSelection() const; - - wxString GetString( int n ) const; - - wxString GetLabel( int item ) const; - wxString GetLabel() const { return wxControl::GetLabel(); } - void SetLabel( const wxString& label ); - void SetLabel( int item, const wxString& label ); - - /* doesn't work */ - void SetLabel( int item, wxBitmap *bitmap ); - - bool Show( bool show ); - void Show( int item, bool show ); - - bool Enable( bool enable ); - void Enable( int item, bool enable ); - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection( const wxString& s ); - - virtual int Number() const; - int GetNumberOfRowsOrCols() const; - void SetNumberOfRowsOrCols( int n ); - - void OnSize( wxSizeEvent &event ); - void SetFocus(); - - // implementation - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - wxSize LayoutItems(); - - bool m_alreadySent; - int m_majorDim; - wxList m_boxes; - - DECLARE_EVENT_TABLE() -}; - -#endif // __GTKRADIOBOXH__ diff --git a/include/wx/gtk1/radiobut.h b/include/wx/gtk1/radiobut.h deleted file mode 100644 index 35a610b1ad..0000000000 --- a/include/wx/gtk1/radiobut.h +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKRADIOBUTTONH__ -#define __GTKRADIOBUTTONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxRadioButton; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern const char* wxRadioButtonNameStr; - -//----------------------------------------------------------------------------- -// wxRadioButton -//----------------------------------------------------------------------------- - -class wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) - - public: - inline wxRadioButton() {} - inline wxRadioButton( wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr ) - { - Create( parent, id, label, pos, size, style, validator, name ); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr ); - virtual void SetLabel(const wxString& label); - virtual void SetValue(bool val); - virtual bool GetValue() const; - bool Enable( bool enable ); - - // implementation - - void ApplyWidgetStyle(); - - bool m_blockFirstEvent; - GtkWidget* m_theOtherRadioButtton; -}; - -#endif // __GTKRADIOBUTTONH__ diff --git a/include/wx/gtk1/region.h b/include/wx/gtk1/region.h deleted file mode 100644 index b61066a208..0000000000 --- a/include/wx/gtk1/region.h +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __REGIONH__ -#define __REGIONH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxRegion; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -enum wxRegionContain -{ - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -class wxRegion : public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxRegion); - - public: - - wxRegion( long x, long y, long w, long h ); - wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight ); - wxRegion( const wxRect& rect ); - wxRegion(void); - ~wxRegion(void); - - inline wxRegion( const wxRegion& r ): wxGDIObject() - { Ref(r); } - inline wxRegion& operator = ( const wxRegion& r ) - { Ref(r); return (*this); } - - bool operator == ( const wxRegion& region ); - bool operator != ( const wxRegion& region ); - - void Clear(void); - - bool Union( long x, long y, long width, long height ); - bool Union( const wxRect& rect ); - bool Union( const wxRegion& region ); - - bool Intersect( long x, long y, long width, long height ); - bool Intersect( const wxRect& rect ); - bool Intersect( const wxRegion& region ); - - bool Subtract( long x, long y, long width, long height ); - bool Subtract( const wxRect& rect ); - bool Subtract( const wxRegion& region ); - - bool Xor( long x, long y, long width, long height ); - bool Xor( const wxRect& rect ); - bool Xor( const wxRegion& region ); - - void GetBox( long& x, long& y, long&w, long &h ) const; - wxRect GetBox(void) const ; - - bool Empty(void) const; - - wxRegionContain Contains( long x, long y ) const; - wxRegionContain Contains( long x, long y, long w, long h ) const; - wxRegionContain Contains(const wxPoint& pt) const; - wxRegionContain Contains(const wxRect& rect) const; - - public: - - wxList *GetRectList() const; - GdkRegion *GetRegion(void) const; -}; - -class wxRegionIterator: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxRegionIterator); - - public: - - wxRegionIterator(void); - wxRegionIterator(const wxRegion& region); - - void Reset(void) { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool (void) const; - bool HaveRects(void) const; - - void operator ++ (void); - void operator ++ (int); - - long GetX(void) const; - long GetY(void) const; - long GetW(void) const; - long GetWidth(void) const { return GetW(); } - long GetH(void) const; - long GetHeight(void) const { return GetH(); } - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); } - - private: - - long m_current; - wxRegion m_region; -}; - - -#endif - // __REGIONH__ diff --git a/include/wx/gtk1/scrolbar.h b/include/wx/gtk1/scrolbar.h deleted file mode 100644 index 98a3da43b1..0000000000 --- a/include/wx/gtk1/scrolbar.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSCROLLBARH__ -#define __GTKSCROLLBARH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxScrollBar; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxScrollBarNameStr; - -//----------------------------------------------------------------------------- -// wxScrollBar -//----------------------------------------------------------------------------- - -class wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - - public: - - wxScrollBar(void) { m_adjust = (GtkAdjustment *) NULL; m_oldPos = 0.0; }; - inline wxScrollBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr ) - { - Create( parent, id, pos, size, style, validator, name ); - } - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr ); - ~wxScrollBar(void); - int GetThumbPosition(void) const; - int GetThumbSize() const; - int GetPageSize() const; - int GetRange() const; - virtual void SetThumbPosition( int viewStart ); - virtual void SetScrollbar( int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE ); - - // Backward compatibility - - int GetValue(void) const; - void SetValue( int viewStart ); - void GetValues( int *viewStart, int *viewLength, int *objectLength, int *pageLength) const; - int GetViewLength() const; - int GetObjectLength() const; - void SetPageSize( int pageLength ); - void SetObjectLength( int objectLength ); - void SetViewLength( int viewLength ); - - // implementation - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; -}; - -#endif - // __GTKSCROLLBARH__ diff --git a/include/wx/gtk1/settings.h b/include/wx/gtk1/settings.h deleted file mode 100644 index 9e7db68bcd..0000000000 --- a/include/wx/gtk1/settings.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKSETTINGSH__ -#define __GTKSETTINGSH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/font.h" - -class wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings() {} - - inline static void Init() {} - static void Done(); - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // __GTKSETTINGSH__ diff --git a/include/wx/gtk1/slider.h b/include/wx/gtk1/slider.h deleted file mode 100644 index 1e2714065a..0000000000 --- a/include/wx/gtk1/slider.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKSLIDERH__ -#define __GTKSLIDERH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxSlider; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxSliderNameStr; - -//----------------------------------------------------------------------------- -// wxSlider -//----------------------------------------------------------------------------- - -class wxSlider: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSlider) - - public: - wxSlider(void); - inline wxSlider( wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr ) - { - Create( parent, id, value, minValue, maxValue, pos, size, style, validator, name ); - } - ~wxSlider(void); - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr ); - virtual int GetValue(void) const; - virtual void SetValue( int ); - void SetRange( int minValue, int maxValue ); - int GetMin(void) const; - int GetMax(void) const; - void SetTickFreq( int n, int pos ); - int GetTickFreq(void) const; - void SetPageSize( int pageSize ); - int GetPageSize(void) const; - void ClearSel(void); - void ClearTicks(void); - void SetLineSize( int lineSize ); - int GetLineSize(void) const; - int GetSelEnd(void) const; - int GetSelStart(void) const; - void SetSelection( int minPos, int maxPos ); - void SetThumbLength( int len ); - int GetThumbLength(void) const; - void SetTick( int tickPos ); - - // implementation - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; - -}; - -#endif // __GTKSLIDERH__ diff --git a/include/wx/gtk1/spinbutt.h b/include/wx/gtk1/spinbutt.h deleted file mode 100644 index 88161fd770..0000000000 --- a/include/wx/gtk1/spinbutt.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.h -// Purpose: wxSpinButton class -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKSPINPUTTH__ -#define __GTKSPINBUTTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxSpinButton; -class wxSpinEvent; - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -class wxSpinButton : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - -public: - wxSpinButton(); - inline wxSpinButton( wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton") - { - Create(parent, id, pos, size, style, name); - } - ~wxSpinButton(); - bool Create( wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton" ); - - int GetValue() const; - void SetValue( int value ); - void SetRange( int minVal, int maxVal ); - int GetMin() const; - int GetMax() const; - -// implementation - - void OnSize( wxSizeEvent &event ); - - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - - GtkAdjustment *m_adjust; - float m_oldPos; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// wxSpinEvent -//----------------------------------------------------------------------------- - -class wxSpinEvent : public wxScrollEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - -public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// Spin events - -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } - -#define EVT_SPIN(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, - -#endif - // __GTKSPINBUTTH__ diff --git a/include/wx/gtk1/statbmp.h b/include/wx/gtk1/statbmp.h deleted file mode 100644 index ab6e7c331d..0000000000 --- a/include/wx/gtk1/statbmp.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICBITMAPH__ -#define __GTKSTATICBITMAPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/control.h" -#include "wx/bitmap.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticBitmap; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char* wxStaticBitmapNameStr; - -//----------------------------------------------------------------------------- -// wxStaticBitmap -//----------------------------------------------------------------------------- - -class wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - - public: - - wxStaticBitmap(void); - wxStaticBitmap( wxWindow *parent, wxWindowID id, const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxStaticBitmapNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxStaticBitmapNameStr); - virtual void SetBitmap( const wxBitmap& bitmap ); - wxBitmap& GetBitmap(void) const { return (wxBitmap&)m_bitmap; } - - private: - - wxBitmap m_bitmap; -}; - -#endif // __GTKSTATICBITMAPH__ diff --git a/include/wx/gtk1/statbox.h b/include/wx/gtk1/statbox.h deleted file mode 100644 index 7d827c0d4b..0000000000 --- a/include/wx/gtk1/statbox.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stabox.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICBOXH__ -#define __GTKSTATICBOXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticBox; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxStaticBoxNameStr; - -//----------------------------------------------------------------------------- -// wxStaticBox -//----------------------------------------------------------------------------- - -class wxStaticBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBox) - - public: - - wxStaticBox(void); - wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticBoxNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticBoxNameStr ); - void SetLabel( const wxString &label ); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKSTATICBOXH__ diff --git a/include/wx/gtk1/statline.h b/include/wx/gtk1/statline.h deleted file mode 100644 index c6819e51a5..0000000000 --- a/include/wx/gtk1/statline.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statline.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICLINEH__ -#define __GTKSTATICLINEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticLine; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxStaticTextNameStr; - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -class wxStaticLine: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticLine) - - public: - - wxStaticLine(void); - wxStaticLine( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr ); - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = wxLI_HORIZONTAL, const wxString &name = wxStaticTextNameStr ); - -}; - -#endif // __GTKSTATICLINEH__ diff --git a/include/wx/gtk1/stattext.h b/include/wx/gtk1/stattext.h deleted file mode 100644 index 1febeb3139..0000000000 --- a/include/wx/gtk1/stattext.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKSTATICTEXTH__ -#define __GTKSTATICTEXTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxStaticText; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxStaticTextNameStr; - -//----------------------------------------------------------------------------- -// wxStaticText -//----------------------------------------------------------------------------- - -class wxStaticText: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticText) - - public: - - wxStaticText(void); - wxStaticText( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticTextNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - long style = 0, const wxString &name = wxStaticTextNameStr ); - wxString GetLabel(void) const; - void SetLabel( const wxString &label ); - - // implementation - - void ApplyWidgetStyle(); -}; - -#endif // __GTKSTATICTEXTH__ diff --git a/include/wx/gtk1/tbargtk.h b/include/wx/gtk1/tbargtk.h deleted file mode 100644 index 39545eb984..0000000000 --- a/include/wx/gtk1/tbargtk.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbargtk.h -// Purpose: GTK toolbar -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TBARGTKH__ -#define __TBARGTKH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/control.h" -#include "wx/bitmap.h" -#include "wx/tbarbase.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxToolBarTool; -class wxToolBar; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxTOOL_STYLE_BUTTON 1 -#define wxTOOL_STYLE_SEPARATOR 2 - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxToolBarNameStr; - -//----------------------------------------------------------------------------- -// wxToolBar -//----------------------------------------------------------------------------- - -class wxToolBar: public wxControl -{ - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxToolBar) - - public: - - wxToolBar(void); - wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr ); - ~wxToolBar(void); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr); - - // Only allow toggle if returns TRUE. Call when left button up. - virtual bool OnLeftClick(int toolIndex, bool toggleDown); - - // Call when right button down. - virtual void OnRightClick(int toolIndex, float x, float y); - - // Called when the mouse cursor enters a tool bitmap. - // Argument is -1 if mouse is exiting the toolbar. - virtual void OnMouseEnter(int toolIndex); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - virtual wxToolBarTool *AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, bool toggle = FALSE, - float xPos = -1, float yPos = -1, wxObject *clientData = (wxObject *)NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - virtual void AddSeparator(void); - virtual void ClearTools(void); - - virtual bool Realize(void); - - virtual void EnableTool(int toolIndex, bool enable); - virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - virtual wxObject *GetToolClientData(int index) const; - - virtual bool GetToolState(int toolIndex) const; - virtual bool GetToolEnabled(int toolIndex) const; - - virtual void SetMargins(int x, int y); - void SetMargins(const wxSize& size) { SetMargins(size.x, size.y); }; - virtual wxSize GetToolMargins(void) { return wxSize(m_xMargin, m_yMargin); } - - virtual void SetToolPacking(int packing); - virtual void SetToolSeparation(int separation); - virtual int GetToolPacking(); - virtual int GetToolSeparation(); - - virtual wxString GetToolLongHelp(int toolIndex); - virtual wxString GetToolShortHelp(int toolIndex); - - virtual void SetToolLongHelp(int toolIndex, const wxString& helpString); - virtual void SetToolShortHelp(int toolIndex, const wxString& helpString); - - void OnIdle( wxIdleEvent &ievent ); - - // implementation - - GtkToolbar *m_toolbar; - int m_separation; - wxList m_tools; - - GdkColor *m_fg; - GdkColor *m_bg; - int m_xMargin; - int m_yMargin; - bool m_hasToolAlready; -}; - -#endif - // __TBARGTKH__ diff --git a/include/wx/gtk1/textctrl.h b/include/wx/gtk1/textctrl.h deleted file mode 100644 index 95161e5246..0000000000 --- a/include/wx/gtk1/textctrl.h +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKTEXTCTRLH__ -#define __GTKTEXTCTRLH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/control.h" - -#if wxUSE_STD_IOSTREAM - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -#else - -#define NO_TEXT_WINDOW_STREAM - -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxTextCtrl; - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxTextCtrlNameStr; - -//----------------------------------------------------------------------------- -// wxTextCtrl -//----------------------------------------------------------------------------- - -#ifndef NO_TEXT_WINDOW_STREAM -class wxTextCtrl: public wxControl, public streambuf -#else -class wxTextCtrl: public wxControl -#endif -{ - DECLARE_EVENT_TABLE() - DECLARE_DYNAMIC_CLASS(wxTextCtrl); - - public: - wxTextCtrl(); - wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value = "", - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - int style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr ); - bool Create( wxWindow *parent, wxWindowID id, const wxString &value = "", - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - int style = 0, const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxTextCtrlNameStr ); - wxString GetValue() const; - void SetValue( const wxString &value ); - void WriteText( const wxString &text ); - void AppendText( const wxString &text ); - - bool LoadFile( const wxString &file ); - bool SaveFile( const wxString &file ); - bool IsModified() const { return m_modified; } - void SetModified() { m_modified = TRUE; } - void DiscardEdits() { m_modified = FALSE; } - wxString GetLineText( long lineNo ) const; - void OnDropFiles( wxDropFilesEvent &event ); - long PositionToXY( long pos, long *x, long *y ) const; - long XYToPosition( long x, long y ) const; - int GetLineLength(long lineNo) const; - int GetNumberOfLines() const; - virtual void SetInsertionPoint( long pos ); - virtual void SetInsertionPointEnd(); - virtual void SetEditable( bool editable ); - virtual void SetSelection( long from, long to ); - void ShowPosition( long pos ); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - virtual void Remove( long from, long to ); - virtual void Replace( long from, long to, const wxString &value ); - void Cut(); - void Copy(); - void Paste(); - void Clear(); - - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - // If the return values from and to are the same, there is no - // selection. - virtual void GetSelection(long* from, long* to) const; - virtual bool IsEditable() const ; - - void OnChar( wxKeyEvent &event ); - - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); -#endif - - bool SetFont( const wxFont &font ); - bool SetForegroundColour(const wxColour &colour); - bool SetBackgroundColour(const wxColour &colour); - - // implementation - - GtkWidget* GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - void ApplyWidgetStyle(); - void CalculateScrollbar(); - - private: - - bool m_modified; - GtkWidget *m_text; - GtkWidget *m_vScrollbar; - bool m_vScrollbarVisible; -}; - -#endif // __GTKTEXTCTRLH__ - - diff --git a/include/wx/gtk1/timer.h b/include/wx/gtk1/timer.h deleted file mode 100644 index ad3fbc619d..0000000000 --- a/include/wx/gtk1/timer.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKTIMERH__ -#define __GTKTIMERH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class wxTimer; - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -/* Timer functions (milliseconds) */ -void wxStartTimer(); - -/* Gets time since last wxStartTimer or wxGetElapsedTime */ -long wxGetElapsedTime(bool resetTimer = TRUE); - -/* EXPERIMENTAL: comment this out if it doesn't compile. */ -bool wxGetLocalTime(long *timeZone, int *dstObserved); - -/* Get number of seconds since 00:00:00 GMT, Jan 1st 1970. */ -long wxGetCurrentTime(); - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -class wxTimer: public wxObject -{ -public: - wxTimer(); - ~wxTimer(); - - int Interval() const { return m_time; } - - bool OneShot() const { return m_oneShot; } - - virtual bool Start( int millisecs = -1, bool oneShot = FALSE ); - virtual void Stop(); - - virtual void Notify() = 0; // override this - -protected: - int m_tag; - int m_time; - bool m_oneShot; - -private: - DECLARE_ABSTRACT_CLASS(wxTimer) -}; - -#endif // __GTKTIMERH__ diff --git a/include/wx/gtk1/tooltip.h b/include/wx/gtk1/tooltip.h deleted file mode 100644 index eed2386111..0000000000 --- a/include/wx/gtk1/tooltip.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tooltip.h -// Purpose: wxToolTip class -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GTKTOOLTIPH__ -#define __GTKTOOLTIPH__ - -#ifdef __GNUG__ - #pragma interface -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/object.h" - -//----------------------------------------------------------------------------- -// forward declarations -//----------------------------------------------------------------------------- - -class wxToolTip; -class wxWindow; - -//----------------------------------------------------------------------------- -// wxToolTip -//----------------------------------------------------------------------------- - -class wxToolTip : public wxObject -{ -public: - // globally change the tooltip parameters - static void Enable( bool flag ); - static void SetDelay( long msecs ); - - wxToolTip( const wxString &tip ); - - // get/set the tooltip text - void SetTip( const wxString &tip ); - wxString GetTip() const { return m_text; } - - wxWindow *GetWindow() const { return m_window; } - bool IsOk() const { return m_window != NULL; } - - // implementation - void Apply( wxWindow *win ); - -private: - wxString m_text; - wxWindow *m_window; -}; - -#endif // __GTKTOOLTIPH__ diff --git a/include/wx/gtk1/treectrl.h b/include/wx/gtk1/treectrl.h deleted file mode 100644 index 7598a25c5a..0000000000 --- a/include/wx/gtk1/treectrl.h +++ /dev/null @@ -1,492 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h -// Purpose: wxTreeCtrl class -// Author: Denis Pershin -// Modified by: -// Created: 08/08/98 -// RCS-ID: $Id$ -// Copyright: (c) Denis Pershin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREECTRL_H_ -#define _WX_TREECTRL_H_ - -#ifdef __GNUG__ -#pragma interface "treectrl.h" -#endif - -#include "wx/textctrl.h" -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -#include - -// the type for "untyped" data -typedef long wxDataType; - -// fwd decl -class wxImageList; -struct wxTreeViewItem; - -// a callback function used for sorting tree items, it should return -1 if the -// first item precedes the second, +1 if the second precedes the first or 0 if -// they're equivalent -class wxTreeItemData; -typedef int (*wxTreeItemCmpFunc)(wxTreeItemData *item1, wxTreeItemData *item2); - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: - // above the client area. -static const int wxTREE_HITTEST_ABOVE = 0x0001; - // below the client area. -static const int wxTREE_HITTEST_BELOW = 0x0002; - // in the client area but below the last item. -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the button associated with an item. -static const int wxTREE_HITTEST_ONITEMBUTTON = 0x0010; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0020; - // in the indentation associated with an item. -static const int wxTREE_HITTEST_ONITEMINDENT = 0x0040; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0080; - // in the area to the right of an item. -static const int wxTREE_HITTEST_ONITEMRIGHT = 0x0100; - // on the state icon for a tree view item that is in a user-defined state. -static const int wxTREE_HITTEST_ONITEMSTATEICON = 0x0200; - // to the right of the client area. -static const int wxTREE_HITTEST_TOLEFT = 0x0400; - // to the left of the client area. -static const int wxTREE_HITTEST_TORIGHT = 0x0800; - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL | - wxTREE_HITTEST_ONITEMSTATEICON; - -// NB: all the following flags are for compatbility only and will be removed in -// next versions - -// flags for deprecated `Expand(int action)' -enum -{ - wxTREE_EXPAND_EXPAND, - wxTREE_EXPAND_COLLAPSE, - wxTREE_EXPAND_COLLAPSE_RESET, - wxTREE_EXPAND_TOGGLE -}; - -// flags for deprecated InsertItem() variant -#define wxTREE_INSERT_FIRST 0xFFFF0001 -#define wxTREE_INSERT_LAST 0xFFFF0002 - -// ---------------------------------------------------------------------------- -// wxTreeItemId identifies an element of the tree. In this implementation, it's -// just a trivial wrapper around GTK GtkTreeItem *. It's opaque for the -// application. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemId { -public: - // ctors - wxTreeItemId() { m_itemId = NULL; } - - // default copy ctor/assignment operator are ok for us - - // accessors - // is this a valid tree item? - bool IsOk() const { return m_itemId != NULL; } - - // conversion to/from either real (system-dependent) tree item id or - // to "long" which used to be the type for tree item ids in previous - // versions of wxWindows - - // for wxTreeCtrl usage only - wxTreeItemId(GtkTreeItem *itemId) { m_itemId = itemId; } - operator GtkTreeItem *() const { return m_itemId; } - void operator =(GtkTreeItem *item) { m_itemId = item; } - -protected: - GtkTreeItem *m_itemId; -}; - -// ---------------------------------------------------------------------------- -// wxTreeItemData is some (arbitrary) user class associated with some item. The -// main advantage of having this class (compared to old untyped interface) is -// that wxTreeItemData's are destroyed automatically by the tree and, as this -// class has virtual dtor, it means that the memory will be automatically -// freed. OTOH, we don't just use wxObject instead of wxTreeItemData because -// the size of this class is critical: in any real application, each tree leaf -// will have wxTreeItemData associated with it and number of leaves may be -// quite big. -// -// Because the objects of this class are deleted by the tree, they should -// always be allocated on the heap! -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemData : private wxTreeItemId { -public: - // default ctor/copy ctor/assignment operator are ok - - // dtor is virtual and all the items are deleted by the tree control when - // it's deleted, so you normally don't have to care about freeing memory - // allocated in your wxTreeItemData-derived class - virtual ~wxTreeItemData() { } - - // accessors: set/get the item associated with this node - void SetId(const wxTreeItemId& id) { m_itemId = id; } - const wxTreeItemId& GetId() const { return (wxTreeItemId&) m_itemId; } -}; - -class WXDLLEXPORT wxTreeCtrl: public wxControl { -public: - // creation - // -------- - wxTreeCtrl() { Init(); } - - wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl") { - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl"); - - // accessors - // --------- - - // get the total number of items in the control - size_t GetCount() const; - - // indent is the number of pixels the children are indented relative to - // the parents position. SetIndent() also redraws the control - // immediately. - unsigned int GetIndent() const; - void SetIndent(unsigned int indent); - - // image list: these functions allow to associate an image list with - // the control and retrieve it. Note that the control does _not_ delete - // the associated image list when it's deleted in order to allow image - // lists to be shared between different controls. - // - // The normal image list is for the icons which correspond to the - // normal tree item state (whether it is selected or not). - // Additionally, the application might choose to show a state icon - // which corresponds to an app-defined item state (for example, - // checked/unchecked) which are taken from the state image list. - wxImageList *GetImageList() const; - wxImageList *GetStateImageList() const; - - void SetImageList(wxImageList *imageList); - void SetStateImageList(wxImageList *imageList); - - // Functions to work with tree ctrl items. Unfortunately, they can _not_ be - // member functions of wxTreeItem because they must know the tree the item - // belongs to for Windows implementation and storing the pointer to - // wxTreeCtrl in each wxTreeItem is just too much waste. - - // accessors - // --------- - - // retrieve items label - wxString GetItemText(const wxTreeItemId& item) const; - // get the normal item image - int GetItemImage(const wxTreeItemId& item) const; - // get the selected item image - int GetItemSelectedImage(const wxTreeItemId& item) const; - // get the data associated with the item - wxTreeItemData *GetItemData(const wxTreeItemId& item) const; - - // modifiers - // --------- - - // set items label - void SetItemText(const wxTreeItemId& item, const wxString& text); - // set the normal item image - void SetItemImage(const wxTreeItemId& item, int image); - // set the selected item image - void SetItemSelectedImage(const wxTreeItemId& item, int image); - // associate some data with the item - void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); - - // item status inquiries - // --------------------- - - // is the item visible (it might be outside the view or not expanded)? - bool IsVisible(const wxTreeItemId& item) const; - // does the item has any children? - bool ItemHasChildren(const wxTreeItemId& item) const; - // is the item expanded (only makes sense if HasChildren())? - bool IsExpanded(const wxTreeItemId& item) const; - // is this item currently selected (the same as has focus)? - bool IsSelected(const wxTreeItemId& item) const; - - // number of children - // ------------------ - - // if 'recursively' is FALSE, only immediate children count, otherwise - // the returned number is the number of all items in this branch - size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); - - // navigation - // ---------- - - // wxTreeItemId.IsOk() will return FALSE if there is no such item - - // get the root tree item - wxTreeItemId GetRootItem() const; - - // get the item currently selected (may return NULL if no selection) - wxTreeItemId GetSelection() const; - - // get the parent of this item (may return NULL if root) - wxTreeItemId GetParent(const wxTreeItemId& item) const; - - // 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). Of course, - // the "cookie" passed to GetFirstChild() and GetNextChild() should be - // the same! - - // get the first child of this item - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& cookie) const; - // get the next child (after GetFirstChild or GetNextChild) - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& cookie) const; - // get the last child of this item - this method doesn't use cookies - wxTreeItemId GetLastChild(const wxTreeItemId& item) const; - - // get the next sibling of this item - wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; - // get the previous sibling - wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const; - - // get first visible item - wxTreeItemId GetFirstVisibleItem() const; - // get the next visible item: item must be visible itself! - // see IsVisible() and wxTreeCtrl::GetFirstVisibleItem() - wxTreeItemId GetNextVisible(const wxTreeItemId& item) const; - // get the previous visible item: item must be visible itself! - wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; - - // operations - // ---------- - - // add the root node to the tree - wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the first child of the parent - wxTreeItemId PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item after a given one - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the last child of the parent - wxTreeItemId AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // delete this item and associated data if any - void Delete(const wxTreeItemId& item); - // delete all items from the tree - void DeleteAllItems(); - - // expand this item - void Expand(const wxTreeItemId& item); - // collapse the item without removing its children - void Collapse(const wxTreeItemId& item); - // collapse the item and remove all children - void CollapseAndReset(const wxTreeItemId& item); - // toggles the current state - void Toggle(const wxTreeItemId& item); - - // remove the selection from currently selected item (if any) - void Unselect(); - // select this item - void SelectItem(const wxTreeItemId& item); - // make sure this item is visible (expanding the parent item and/or - // scrolling to this item if necessary) - void EnsureVisible(const wxTreeItemId& item); - // scroll to this item (but don't expand its parent) - void ScrollTo(const wxTreeItemId& item); - - // start editing the item label: this (temporarily) replaces the item - // with a one line edit control. The item will be selected if it hadn't - // been before. textCtrlClass parameter allows you to create an edit - // control of arbitrary user-defined class deriving from wxTextCtrl. - wxTextCtrl* EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); - // returns the same pointer as StartEdit() if the item is being edited, - // NULL otherwise (it's assumed that no more than one item may be - // edited simultaneously) - wxTextCtrl* GetEditControl() const; - // end editing and accept or discard the changes to item label - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); - - // sort the children of this item using the specified callback function - // (it should return -1, 0 or +1 as usual), if it's not specified - // alphabetical comparaison is performed. - // - // NB: this function is not reentrant! - void SortChildren(const wxTreeItemId& item, - wxTreeItemCmpFunc *cmpFunction = NULL); - - // deprecated - // ---------- - - // these methods are deprecated and will be removed in future versions of - // wxWindows, they're here for compatibility only, don't use them in new - // code (the comments indicate why these methods are now useless and how to - // replace them) - - // use Expand, Collapse, CollapseAndReset or Toggle - void ExpandItem(const wxTreeItemId& item, int action); - - // use AddRoot, PrependItem or AppendItem - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selImage = -1, - long insertAfter = wxTREE_INSERT_LAST); - - // use Set/GetImageList and Set/GetStateImageList - wxImageList *GetImageList(int) const - { return GetImageList(); } - void SetImageList(wxImageList *imageList, int) - { SetImageList(imageList); } - - void SendExpanding(const wxTreeItemId& item); - void SendExpanded(const wxTreeItemId& item); - void SendCollapsing(const wxTreeItemId& item); - void SendCollapsed(const wxTreeItemId& item); - void SendSelChanging(const wxTreeItemId& item); - void SendSelChanged(const wxTreeItemId& item); -protected: - wxTreeItemId m_editItem; - GtkTree *m_tree; - GtkTreeItem *m_anchor; - wxTextCtrl* m_textCtrl; - wxImageList* m_imageListNormal; - wxImageList* m_imageListState; - - long m_curitemId; - - void SendMessage(wxEventType command, const wxTreeItemId& item); -// GtkTreeItem *findGtkTreeItem(wxTreeCtrlId &id) const; - - // the common part of all ctors - void Init(); - // insert a new item in as the last child of the parent - wxTreeItemId p_InsertItem(GtkTreeItem *p, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data); - - - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -// ---------------------------------------------------------------------------- -// wxTreeEvent is a special class for all events associated with tree controls -// -// NB: note that not all accessors make sense for all events, see the event -// descriptions below -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeEvent : public wxCommandEvent -{ -friend wxTreeCtrl; -public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - // accessors - // get the item on which the operation was performed or the newly - // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events - wxTreeItemId GetItem() const { return m_item; } - - // for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events, get the previously - // selected item - wxTreeItemId GetOldItem() const { return m_itemOld; } - - // the point where the mouse was when the drag operation started (for - // wxEVT_COMMAND_TREE_BEGIN_(R)DRAG events only) - wxPoint GetPoint() const { return m_pointDrag; } - - // keyboard code (for wxEVT_COMMAND_TREE_KEY_DOWN only) - int GetCode() const { return m_code; } - - // set return code for wxEVT_COMMAND_TREE_ITEM_{EXPAND|COLLAPS}ING events - // call this to forbid the change in item status - void Veto() { m_code = TRUE; } - -private: - // @@ we could save some space by using union here - int m_code; - wxTreeItemId m_item, - m_itemOld; - wxPoint m_pointDrag; - - DECLARE_DYNAMIC_CLASS(wxTreeEvent) -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -// ---------------------------------------------------------------------------- -// macros for handling tree control events -// ---------------------------------------------------------------------------- - -// GetItem() returns the item being dragged, GetPoint() the mouse coords -#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() returns the itme whose label is being edited -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// provide/update information about GetItem() item -#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() is the item being expanded/collapsed, the "ING" versions can use -#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetOldItem() is the item which had the selection previously, GetItem() is -// the item which acquires selection -#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, -#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetCode() returns the key code -// NB: this is the only message for which GetItem() is invalid (you may get the -// item from GetSelection()) -#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetItem() returns the item being deleted, the associated data (if any) will -// be deleted just after the return of this event handler (if any) -#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/gtk1/wave.h b/include/wx/gtk1/wave.h deleted file mode 100644 index c75f264084..0000000000 --- a/include/wx/gtk1/wave.h +++ /dev/null @@ -1,63 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class -// Author: Julian Smart -// Modified by: -// Created: 25/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WAVE_H_ -#define _WX_WAVE_H_ - -#if wxUSE_WAVE - -#ifdef __GNUG__ -#pragma interface "wave.h" -#endif - -#include "wx/object.h" - -#ifndef AUDIODEV -#define AUDIODEV "/dev/dsp" // Default path for audio device -#endif - -class wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - wxWave(int size, const wxByte* data); - ~wxWave(); - -public: - // Create from resource or file - bool Create(const wxString& fileName, bool isResource = FALSE); - // Create from data - bool Create(int size, const wxByte* data); - - bool IsOk() const { return (m_waveData ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE); - -protected: - bool Free(); - -private: - wxByte* m_waveData; - int m_waveLength; - bool m_isResource; - - - int OpenDSP(void); - bool InitDSP(int dev, int iDataBits, int iChannel,unsigned long ulSamplingRate); - int m_DSPblkSize; // Size of the DSP buffer - char *m_data; - int m_sizeData; -}; - -#endif - -#endif - diff --git a/include/wx/gtk1/win_gtk.h b/include/wx/gtk1/win_gtk.h deleted file mode 100644 index d27296eb13..0000000000 --- a/include/wx/gtk1/win_gtk.h +++ /dev/null @@ -1,96 +0,0 @@ -/* /////////////////////////////////////////////////////////////////////////// -// Name: win_gtk.h -// Purpose: wxWindows's GTK base widget -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////// */ - - -#ifndef __GTK_MYFIXED_H__ -#define __GTK_MYFIXED_H__ - -#include -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - - -#define GTK_MYFIXED(obj) GTK_CHECK_CAST (obj, gtk_myfixed_get_type (), GtkMyFixed) -#define GTK_MYFIXED_CLASS(klass) GTK_CHECK_CLASS_CAST (klass, gtk_myfixed_get_type (), GtkMyFixedClass) -#define GTK_IS_MYFIXED(obj) GTK_CHECK_TYPE (obj, gtk_myfixed_get_type ()) - - -typedef struct _GtkMyFixed GtkMyFixed; -typedef struct _GtkMyFixedClass GtkMyFixedClass; -typedef struct _GtkMyFixedChild GtkMyFixedChild; - -struct _GtkMyFixed -{ - GtkContainer container; - GList *children; -#if (GTK_MINOR_VERSION > 0) - GtkShadowType shadow_type; -#endif -}; - -struct _GtkMyFixedClass -{ - GtkContainerClass parent_class; - -#if (GTK_MINOR_VERSION > 0) - void (*set_scroll_adjustments) (GtkMyFixed *myfixed, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); -#endif -}; - -struct _GtkMyFixedChild -{ - GtkWidget *widget; - gint16 x; - gint16 y; - gint16 width; - gint16 height; -}; - -guint gtk_myfixed_get_type (void); -GtkWidget* gtk_myfixed_new (void); -#if (GTK_MINOR_VERSION > 0) -void gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed, - GtkShadowType type); -#endif -void gtk_myfixed_put (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height); - -void gtk_myfixed_move (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y ); - -void gtk_myfixed_resize (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 width, - gint16 height ); - -void gtk_myfixed_set_size (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_MYFIXED_H__ */ diff --git a/include/wx/gtk1/window.h b/include/wx/gtk1/window.h deleted file mode 100644 index aa722a2f14..0000000000 --- a/include/wx/gtk1/window.h +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKWINDOWH__ -#define __GTKWINDOWH__ - -#ifdef __GNUG__ - #pragma interface -#endif - -//----------------------------------------------------------------------------- -// callback definition for inserting a window (internal) -//----------------------------------------------------------------------------- - -typedef void (*wxInsertChildFunction)( wxWindow*, wxWindow* ); - -//----------------------------------------------------------------------------- -// wxWindow -//----------------------------------------------------------------------------- - -class wxWindow : public wxWindowBase -{ - DECLARE_DYNAMIC_CLASS(wxWindow) - -public: - // creating the window - // ------------------- - wxWindow(); - wxWindow(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - virtual ~wxWindow(); - - // implement base class (pure) virtual methods - // ------------------------------------------- - virtual bool Destroy(); - - virtual void Raise(); - virtual void Lower(); - - virtual bool Show( bool show = TRUE ); - virtual bool Enable( bool enable = TRUE ); - - virtual bool IsRetained() const; - - virtual void SetFocus(); - virtual bool AcceptsFocus() const; - - virtual bool Reparent( wxWindow *newParent ); - - virtual void WarpPointer(int x, int y); - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - virtual void Refresh( bool eraseBackground = TRUE, - const wxRect *rect = (const wxRect *) NULL ); - virtual void Clear(); - - virtual bool SetBackgroundColour( const wxColour &colour ); - virtual bool SetForegroundColour( const wxColour &colour ); - virtual bool SetCursor( const wxCursor &cursor ); - virtual bool SetFont( const wxFont &font ); - - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - virtual void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = (int *) NULL, - int *externalLeading = (int *) NULL, - const wxFont *theFont = (const wxFont *) NULL) - const; - - virtual bool PopupMenu( wxMenu *menu, int x, int y ); - - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE ); - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = (wxRect *) NULL ); - -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ); -#endif // wxUSE_DRAG_AND_DROP - - // implementation - // -------------- - - virtual WXWidget GetHandle() const { return m_widget; } - - // also sets the global flag - void SetScrolling(bool scroll); - - bool HasScrolling() const { return m_hasScrolling; } - bool IsScrolling() const { return m_isScrolling; } - - /* I don't want users to override what's done in idle so everything that - has to be done in idle time in order for wxGTK to work is done in - OnInternalIdle */ - virtual void OnInternalIdle(); - - /* For compatibility across platforms (not in event table) */ - void OnIdle(wxIdleEvent& WXUNUSED(event)) {}; - - /* used by all classes in the widget creation process */ - void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos, - const wxSize &size, long style, const wxString &name ); - void PostCreation(); - - /* internal addition of child windows. differs from class - to class not by using virtual functions but by using - the m_insertCallback */ - void DoAddChild(wxWindow *child); - - /* the methods below are required because many native widgets - are composed of several subwidgets and setting a style for - the widget means setting it for all subwidgets as well. - also, it is nor clear, which native widget is the top - widget where (most of) the input goes. even tooltips have - to be applied to all subwidgets. */ - - virtual GtkWidget* GetConnectWidget(); - virtual bool IsOwnGtkWindow( GdkWindow *window ); - void ConnectWidget( GtkWidget *widget ); - - /* creates a new widget style if none is there - and sets m_widgetStyle to this value. */ - GtkStyle *GetWidgetStyle(); - - /* called by SetFont() and SetXXXColour etc */ - void SetWidgetStyle(); - - /* overridden in many GTK widgets */ - virtual void ApplyWidgetStyle(); - -#if wxUSE_TOOLTIPS - virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip ); -#endif // wxUSE_TOOLTIPS - - // called from GTK signales handlers. it indicates that - // the layouting functions have to be called later on - // (i.e. in idle time, implemented in OnInternalIdle() ). - void UpdateSize() { m_sizeSet = FALSE; } - - // position and size of the window - int m_x, m_y; - int m_width, m_height; - - /* see the docs in src/gtk/window.cpp */ - GtkWidget *m_widget; - GtkWidget *m_wxwindow; - - /* scrolling stuff */ - GtkAdjustment *m_hAdjust,*m_vAdjust; - float m_oldHorizontalPos; - float m_oldVerticalPos; - - // we need an extra XGC flag set to get exposed - // events from overlapping children upon moving - // them. this flag will be set in this GC and - // the GC will be used in wxWindow::ScrollWindow(). - GdkGC *m_scrollGC; - - // extra (wxGTK-specific) flags - bool m_needParent:1; /* ! wxFrame, wxDialog, wxNotebookPage ? */ - bool m_hasScrolling:1; - bool m_isScrolling:1; - bool m_hasVMT:1; - bool m_sizeSet:1; - bool m_resizing:1; - bool m_isStaticBox:1; /* faster than IS_KIND_OF */ - bool m_isFrame:1; /* faster than IS_KIND_OF */ - bool m_acceptsFocus:1; /* ! wxStaticBox etc. */ - - // these are true if the style were set before the widget was realized - // (typcally in the constructor) but the actual GTK style must not be set - // before the widget has been "realized" - bool m_delayedFont:1; - bool m_delayedForegroundColour:1; - bool m_delayedBackgroundColour:1; - bool m_delayedCursor:1; - - // the cursor is set in OnInternalIdle(). this fields holds - // a reference to the cursor currently set in theGdk window - // so that we don't have to set it more than once - wxCursor m_currentGdkCursor; - - // contains GTK's widgets internal information about non-default widget - // font and colours. we create one for each widget that gets any - // non-default attribute set via SetFont() or SetForegroundColour() / - // SetBackgroundColour(). - GtkStyle *m_widgetStyle; - - // C++ has no virtual methods in the constrcutor of any class but we need - // different methods of inserting a child window into a wxFrame, - // wxMDIFrame, wxNotebook etc. this is the callback that will get used. - wxInsertChildFunction m_insertCallback; - - // implement the base class pure virtuals - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetClientSize( int *width, int *height ) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - - // common part of all ctors (can't be virtual because called from ctor) - void Init(); - -private: - DECLARE_NO_COPY_CLASS(wxWindow); -}; - -#endif // __GTKWINDOWH__ diff --git a/include/wx/hash.h b/include/wx/hash.h deleted file mode 100644 index ec71b9b8c1..0000000000 --- a/include/wx/hash.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: hash.h -// Purpose: wxHashTable class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXHASHH__ -#define _WX_WXHASHH__ - -#ifdef __GNUG__ -#pragma interface "hash.h" -#endif - -#include "wx/object.h" -#include "wx/list.h" - -/* - * A hash table is an array of user-definable size with lists - * of data items hanging off the array positions. Usually there'll - * be a hit, so no search is required; otherwise we'll have to run down - * the list to find the desired item. -*/ - -class WXDLLEXPORT wxHashTable: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxHashTable) - - public: - int n; - int current_position; - wxNode *current_node; - - unsigned int key_type; - wxList **hash_table; - - wxHashTable(int the_key_type = wxKEY_INTEGER, int size = 1000); - ~wxHashTable(void); - - void Destroy(void); // Robert Roebling - - bool Create(int the_key_type = wxKEY_INTEGER, int size = 1000); - - // Note that there are 2 forms of Put, Get. - // With a key and a value, the *value* will be checked - // when a collision is detected. Otherwise, if there are - // 2 items with a different value but the same key, - // we'll retrieve the WRONG ONE. So where possible, - // supply the required value along with the key. - // In fact, the value-only versions make a key, and still store - // the value. The use of an explicit key might be required - // e.g. when combining several values into one key. - // When doing that, it's highly likely we'll get a collision, - // e.g. 1 + 2 = 3, 2 + 1 = 3. - - // key and value are NOT necessarily the same - void Put(long key, long value, wxObject *object); - void Put(long key, const wxChar *value, wxObject *object); - - // key and value are the same - void Put(long value, wxObject *object); - void Put(const wxChar *value, wxObject *object); - - // key and value not the same - wxObject *Get(long key, long value) const; - wxObject *Get(long key, const wxChar *value) const; - - // key and value are the same - wxObject *Get(long value) const; - wxObject *Get(const wxChar *value) const; - - // Deletes entry and returns data if found - wxObject *Delete(long key); - wxObject *Delete(const wxChar *key); - - wxObject *Delete(long key, int value); - wxObject *Delete(long key, const wxChar *value); - - // Construct your own integer key from a string, e.g. in case - // you need to combine it with something - long MakeKey(const wxChar *string) const; - - // Way of iterating through whole hash table (e.g. to delete everything) - // Not necessary, of course, if you're only storing pointers to - // objects maintained separately - - void BeginFind(void); - wxNode *Next(void); - - void DeleteContents(bool flag); - void Clear(void); - -}; - -#endif - // _WX_WXHASHH__ diff --git a/include/wx/help.h b/include/wx/help.h deleted file mode 100644 index 3c7cd47280..0000000000 --- a/include/wx/help.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_HELP_H_BASE_ -#define _WX_HELP_H_BASE_ - -#include "wx/helpbase.h" - -#ifdef __WXMSW__ - #include "wx/msw/helpwin.h" - - #define wxHelpController wxWinHelpController - #define sm_classwxHelpController sm_classwxWinHelpController -#else // !MSW - #include "wx/generic/helpext.h" - - #define wxHelpController wxExtHelpController - #define sm_classwxHelpController sm_classwxExtHelpController -#endif // MSW/!MSW - -#endif - // _WX_HELP_H_BASE_ diff --git a/include/wx/helpbase.h b/include/wx/helpbase.h deleted file mode 100644 index b93771f806..0000000000 --- a/include/wx/helpbase.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpbase.h -// Purpose: Help system base classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPBASEH__ -#define _WX_HELPBASEH__ - -#ifdef __GNUG__ -#pragma interface "helpbase.h" -#endif - -#include "wx/wx.h" - -#if wxUSE_HELP - -// Flags for SetViewer -#define wxHELP_NETSCAPE 1 - -// Defines the API for help controllers -class WXDLLEXPORT wxHelpControllerBase: public wxObject -{ - DECLARE_CLASS(wxHelpControllerBase) - - public: - inline wxHelpControllerBase(void) {} - inline ~wxHelpControllerBase(void) {}; - - // Must call this to set the filename and server name. - // server is only required when implementing TCP/IP-based - // help controllers. - virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return FALSE; }; - virtual bool Initialize(const wxString& file) = 0; - - // Set viewer: only relevant to some kinds of controller - virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {} - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = "") = 0; - virtual bool DisplayContents(void) = 0; - virtual bool DisplaySection(int sectionNo) = 0; - virtual bool DisplayBlock(long blockNo) = 0; - virtual bool KeywordSearch(const wxString& k) = 0; - - virtual bool Quit(void) = 0; - virtual void OnQuit(void) {}; -}; - -#endif // wxUSE_HELP -#endif - // _WX_HELPBASEH__ diff --git a/include/wx/helphtml.h b/include/wx/helphtml.h deleted file mode 100644 index 20ce2789ab..0000000000 --- a/include/wx/helphtml.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_HELPHTML_H_BASE_ -#define _WX_HELPHTML_H_BASE_ - -#include "wx/generic/helphtml.h" - -#endif - // _WX_HELPHTML_H_BASE_ diff --git a/include/wx/helpwin.h b/include/wx/helpwin.h deleted file mode 100644 index 5743288dad..0000000000 --- a/include/wx/helpwin.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_HELPWIN_H_BASE_ -#define _WX_HELPWIN_H_BASE_ - -#include "wx/msw/helpwin.h" - -#endif - // _WX_HELPWIN_H_BASE_ diff --git a/include/wx/helpxlp.h b/include/wx/helpxlp.h deleted file mode 100644 index b9f6af78eb..0000000000 --- a/include/wx/helpxlp.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_HELPXLP_H_BASE_ -#define _WX_HELPXLP_H_BASE_ - -#include "wx/generic/helpxlp.h" - -#endif - // _WX_HELPXLP_H_BASE_ diff --git a/include/wx/icon.h b/include/wx/icon.h deleted file mode 100644 index 4fa9b5d225..0000000000 --- a/include/wx/icon.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef _WX_ICON_H_BASE_ -#define _WX_ICON_H_BASE_ - -/* Commenting out since duplicated in gdicmn.h -// this is for Unix (i.e. now for anything other than MSW) -#undef wxICON -#define wxICON(icon_name) wxIcon(icon_name##_xpm) -*/ - -#if defined(__WXMSW__) - #include "wx/msw/icon.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/icon.h" -#elif defined(__WXGTK__) - #include "wx/gtk/icon.h" -#elif defined(__WXQT__) - #include "wx/qt/icon.h" -#elif defined(__WXMAC__) - #include "wx/mac/icon.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/icon.h" -#endif - -#endif - // _WX_ICON_H_BASE_ diff --git a/include/wx/image.h b/include/wx/image.h deleted file mode 100644 index 21d0f14710..0000000000 --- a/include/wx/image.h +++ /dev/null @@ -1,255 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: image.h -// Purpose: wxImage class -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGE_H_ -#define _WX_IMAGE_H_ - -#ifdef __GNUG__ -#pragma interface "image.h" -#endif - -#include "wx/setup.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/gdicmn.h" - -#if wxUSE_STREAMS -#include "wx/stream.h" -#endif - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxImageHandler; -#if wxUSE_LIBPNG -class WXDLLEXPORT wxPNGHandler; -#endif -#if wxUSE_LIBJPEG -class WXDLLEXPORT wxJPEGHandler; -#endif -class WXDLLEXPORT wxBMPHandler; -class WXDLLEXPORT wxImage; - -class WXDLLEXPORT wxBitmap; - -//----------------------------------------------------------------------------- -// wxImageHandler -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxImageHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxImageHandler) - -public: - wxImageHandler() { m_name = ""; m_extension = ""; m_type = 0; } - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream ); -#endif - - inline void SetName(const wxString& name) { m_name = name; } - inline void SetExtension(const wxString& ext) { m_extension = ext; } - inline void SetType(long type) { m_type = type; } - inline void SetMimeType(const wxString& type) { m_mime = type; } - inline wxString GetName() const { return m_name; } - inline wxString GetExtension() const { return m_extension; } - inline long GetType() const { return m_type; } - inline wxString GetMimeType() const { return m_mime; } - -protected: - wxString m_name; - wxString m_extension; - wxString m_mime; - long m_type; - -}; - -//----------------------------------------------------------------------------- -// wxPNGHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBPNG -class WXDLLEXPORT wxPNGHandler: public wxImageHandler -{ - DECLARE_DYNAMIC_CLASS(wxPNGHandler) - -public: - - inline wxPNGHandler() - { - m_name = "PNG file"; - m_extension = "png"; - m_type = wxBITMAP_TYPE_PNG; - m_mime = "image/png"; - }; - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream ); -#endif - -}; -#endif - -//----------------------------------------------------------------------------- -// wxJPEGHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBJPEG -class WXDLLEXPORT wxJPEGHandler: public wxImageHandler -{ - DECLARE_DYNAMIC_CLASS(wxJPEGHandler) - -public: - - inline wxJPEGHandler() - { - m_name = "JPEG file"; - m_extension = "jpg"; - m_type = wxBITMAP_TYPE_JPEG; - m_mime = "image/jpeg"; - }; - - virtual bool LoadFile( wxImage *image, wxInputStream& stream ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream ); -}; -#endif - -//----------------------------------------------------------------------------- -// wxBMPHandler -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxBMPHandler: public wxImageHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPHandler) - -public: - - inline wxBMPHandler() - { - m_name = "BMP file"; - m_extension = "bmp"; - m_type = wxBITMAP_TYPE_BMP; - m_mime = "image/bmp"; - }; - -#if wxUSE_STREAMS - virtual bool LoadFile( wxImage *image, wxInputStream& stream ); -#endif -}; - -//----------------------------------------------------------------------------- -// wxGIFHandler -//----------------------------------------------------------------------------- - -/* why an extra headers for GIF, RR */ - -#include "wx/imaggif.h" - -//----------------------------------------------------------------------------- -// wxImage -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxImage: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxImage) - - friend class WXDLLEXPORT wxImageHandler; - -public: - - wxImage(); - wxImage( int width, int height ); - wxImage( const wxString& name, long type = wxBITMAP_TYPE_PNG ); - wxImage( wxInputStream& stream, long type = wxBITMAP_TYPE_PNG ); - wxImage( const wxString& name, const wxString& mimetype ); - wxImage( wxInputStream& stream, const wxString& mimetype ); - - wxImage( const wxImage& image ); - wxImage( const wxImage* image ); - - // these functions get implemented in /src/(platform)/bitmap.cpp - wxImage( const wxBitmap &bitmap ); - wxBitmap ConvertToBitmap() const; - - void Create( int width, int height ); - void Destroy(); - - wxImage Scale( int width, int height ); - - // these routines are slow but safe - void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b ); - unsigned char GetRed( int x, int y ); - unsigned char GetGreen( int x, int y ); - unsigned char GetBlue( int x, int y ); - - virtual bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_PNG ); - virtual bool LoadFile( const wxString& name, const wxString& mimetype ); - -#if wxUSE_STREAMS - virtual bool LoadFile( wxInputStream& stream, long type = wxBITMAP_TYPE_PNG ); - virtual bool LoadFile( wxInputStream& stream, const wxString& mimetype ); -#endif - - virtual bool SaveFile( const wxString& name, int type ); - virtual bool SaveFile( const wxString& name, const wxString& mimetype ); - -#if wxUSE_STREAMS - virtual bool SaveFile( wxOutputStream& stream, int type ); - virtual bool SaveFile( wxOutputStream& stream, const wxString& mimetype ); -#endif - - bool Ok() const; - int GetWidth() const; - int GetHeight() const; - - char unsigned *GetData() const; - void SetData( char unsigned *data ); - - void SetMaskColour( unsigned char r, unsigned char g, unsigned char b ); - unsigned char GetMaskRed() const; - unsigned char GetMaskGreen() const; - unsigned char GetMaskBlue() const; - void SetMask( bool mask = TRUE ); - bool HasMask() const; - - inline wxImage& operator = (const wxImage& image) - { if ((*this) == image) - return (*this); - Ref(image); - return *this; } - - inline bool operator == (const wxImage& image) - { return m_refData == image.m_refData; } - inline bool operator != (const wxImage& image) - { return m_refData != image.m_refData; } - - static inline wxList& GetHandlers() { return sm_handlers; } - static void AddHandler( wxImageHandler *handler ); - static void InsertHandler( wxImageHandler *handler ); - static bool RemoveHandler( const wxString& name ); - static wxImageHandler *FindHandler( const wxString& name ); - static wxImageHandler *FindHandler( const wxString& extension, long imageType ); - static wxImageHandler *FindHandler( long imageType ); - static wxImageHandler *FindHandlerMime( const wxString& mimetype ); - - static void CleanUpHandlers(); - static void InitStandardHandlers(); - -protected: - - static wxList sm_handlers; - -}; - -#endif - // _WX_IMAGE_H_ - diff --git a/include/wx/imaggif.h b/include/wx/imaggif.h deleted file mode 100644 index 909a69c17a..0000000000 --- a/include/wx/imaggif.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaggif.h -// Purpose: wxImage handler for GIFs (read-only) -// Author: Vaclav Slavik (of this header only) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGGIF_H_ -#define _WX_IMAGGIF_H_ - -#ifdef __GNUG__ -#pragma interface "imaggif.h" -#endif - -#include -#include -#include -#include -#include -#include - -//----------------------------------------------------------------------------- -// wxGIFHandler -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxGIFHandler : public wxImageHandler -{ - DECLARE_DYNAMIC_CLASS(wxGIFHandler) - -public: - - inline wxGIFHandler() - { - m_name = "GIF file"; - m_extension = "gif"; - m_type = wxBITMAP_TYPE_GIF; - m_mime = "image/gif"; - }; - - virtual bool LoadFile( wxImage *image, wxInputStream& stream ); - virtual bool SaveFile( wxImage *image, wxOutputStream& stream ); -}; - -#endif - // _WX_IMAGGIF_H_ - diff --git a/include/wx/imaglist.h b/include/wx/imaglist.h deleted file mode 100644 index 7aa92ee1bf..0000000000 --- a/include/wx/imaglist.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _WX_IMAGLIST_H_BASE_ -#define _WX_IMAGLIST_H_BASE_ - -#if defined(__WXMSW__) -#ifdef __WIN16__ -#include "wx/generic/imaglist.h" -#else -#include "wx/msw/imaglist.h" -#endif -#elif defined(__WXMOTIF__) -#include "wx/generic/imaglist.h" -#elif defined(__WXGTK__) -#include "wx/generic/imaglist.h" -#elif defined(__WXQT__) -#include "wx/generic/imaglist.h" -#elif defined(__WXMAC__) -#include "wx/generic/imaglist.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/imaglist.h" -#endif - -#endif - // _WX_IMAGLIST_H_BASE_ diff --git a/include/wx/intl.h b/include/wx/intl.h deleted file mode 100644 index 2a8ccef47b..0000000000 --- a/include/wx/intl.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: intl.h -// Purpose: Internationalization and localisation for wxWindows -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __INTLH__ -#define __INTLH__ - -#ifdef __GNUG__ - #pragma interface "intl.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" - -#if wxUSE_INTL - -// ============================================================================ -// global decls -// ============================================================================ - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// gettext() style macro (notice that xgettext should be invoked with "-k_" -// option to extract the strings inside _() from the sources) -#ifndef WXINTL_NO_GETTEXT_MACRO - #define _(str) wxGetTranslation(_T(str)) -#endif - -// ---------------------------------------------------------------------------- -// forward decls -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxLocale; -class WXDLLEXPORT wxMsgCatalog; - -// ============================================================================ -// locale support -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxLocale: encapsulates all language dependent settings, including current -// message catalogs, date, time and currency formats (TODO) &c -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxLocale -{ -public: - // ctor & dtor - // ----------- - - // call Init() if you use this ctor - wxLocale(); - // the ctor has a side effect of changing current locale - wxLocale(const wxChar *szName, // name (for messages) - const wxChar *szShort = (const wxChar *) NULL, // dir prefix (for msg files) - const wxChar *szLocale = (const wxChar *) NULL, // locale (for setlocale) - bool bLoadDefault = TRUE) // preload wxstd.mo? - { Init(szName, szShort, szLocale, bLoadDefault); } - // the same as a function (returns TRUE on success) - bool Init(const wxChar *szName, - const wxChar *szShort = (const wxChar *) NULL, - const wxChar *szLocale = (const wxChar *) NULL, - bool bLoadDefault = TRUE); - // restores old locale - ~wxLocale(); - - // returns locale name - const wxChar *GetLocale() const { return m_strLocale; } - - // add a prefix to the catalog lookup path: the message catalog files will be - // looked up under prefix//LC_MESSAGES, prefix/LC_MESSAGES and prefix - // (in this order). - // - // This only applies to subsequent invocations of AddCatalog()! - static void AddCatalogLookupPathPrefix(const wxString& prefix); - - // add a catalog: it's searched for in standard places (current directory - // first, system one after), but the you may prepend additional directories to - // the search path with AddCatalogLookupPathPrefix(). - // - // The loaded catalog will be used for message lookup by GetString(). - // - // Returns 'true' if it was successfully loaded - bool AddCatalog(const wxChar *szDomain); - - // check if the given catalog is loaded - bool IsLoaded(const wxChar *szDomain) const; - - // retrieve the translation for a string in all loaded domains unless - // the szDomain parameter is specified (and then only this domain is - // searched) - // - // return original string if translation is not available - // (in this case an error message is generated the first time - // a string is not found; use wxLogNull to suppress it) - // - // domains are searched in the last to first order, i.e. catalogs - // added later override those added before. - const wxMB2WXbuf GetString(const wxChar *szOrigString, - const wxChar *szDomain = (const wxChar *) NULL) const; - - // Returns the current short name for the locale - const wxString& GetName() const { return m_strShort; } - -private: - // find catalog by name in a linked list, return NULL if !found - wxMsgCatalog *FindCatalog(const wxChar *szDomain) const; - - wxString m_strLocale, // this locale name - m_strShort; // short name for the locale - - const wxChar *m_pszOldLocale; // previous locale from setlocale() - wxLocale *m_pOldLocale; // previous wxLocale - - wxMsgCatalog *m_pMsgCat; // pointer to linked list of catalogs -}; - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// get the current locale object (note that it may be NULL!) -extern WXDLLEXPORT wxLocale* wxGetLocale(); - -// get the translation of the string in the current locale -inline const wxMB2WXbuf wxGetTranslation(const wxChar *sz) -{ - wxLocale *pLoc = wxGetLocale(); - if (pLoc) - return pLoc->GetString(sz); - else - return (const wxMB2WXbuf)sz; -} - -#else // !wxUSE_INTL - -#ifndef WXINTL_NO_GETTEXT_MACRO - #define _(str) (str) -#endif - -inline const wxChar *wxGetTranslation(const wxChar *sz) { return sz; } - -#endif // wxUSE_INTL/!wxUSE_INTL - -#endif - // _WX_INTLH__ diff --git a/include/wx/ioswrap.h b/include/wx/ioswrap.h deleted file mode 100644 index ce0b15357c..0000000000 --- a/include/wx/ioswrap.h +++ /dev/null @@ -1,20 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ioswrap.h -// Purpose: includes the correct iostream headers for current compiler -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.02.99 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#if wxUSE_IOSTREAMH - // N.B. BC++ doesn't have istream.h, ostream.h -# include -#else -# include -# if defined(__VISUALC__) || defined(__MWERKS__) - using namespace std; -# endif -#endif diff --git a/include/wx/ipcbase.h b/include/wx/ipcbase.h deleted file mode 100644 index 168eeefdf0..0000000000 --- a/include/wx/ipcbase.h +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ipcbase.h -// Purpose: Base classes for IPC -// Author: Julian Smart -// Modified by: -// Created: 4/1/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IPCBASEH__ -#define _WX_IPCBASEH__ - -#ifdef __GNUG__ -#pragma interface "ipcbase.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" - -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_UNICODETEXT = 13, - wxIPC_ENHMETAFILE = 14, - wxIPC_FILENAME = 15, /* CF_HDROP */ - wxIPC_LOCALE = 16, - wxIPC_PRIVATE = 20 -}; - -class WXDLLEXPORT wxDDEServerBase; -class WXDLLEXPORT wxDDEClientBase; - -class WXDLLEXPORT wxConnectionBase: public wxObject -{ - DECLARE_CLASS(wxConnectionBase) - public: - inline wxConnectionBase(void) {} - inline ~wxConnectionBase(void) {} - - // Calls that CLIENT can make - virtual bool Execute(wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT ) = 0; - virtual bool Execute(const wxString& str) { return Execute(WXSTRINGCAST str, -1, wxIPC_TEXT); } - virtual char *Request(const wxString& item, int *size = (int *) NULL, wxIPCFormat format = wxIPC_TEXT) = 0; - virtual bool Poke(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT) = 0; - virtual bool StartAdvise(const wxString& item) = 0; - virtual bool StopAdvise(const wxString& item) = 0; - - // Calls that SERVER can make - virtual bool Advise(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT) = 0; - - // Calls that both can make - virtual bool Disconnect(void) = 0; - - // Callbacks to SERVER - override at will - virtual bool OnExecute( const wxString& WXUNUSED(topic), char *WXUNUSED(data), int WXUNUSED(size), - int WXUNUSED(format) ) { return FALSE; }; - virtual char *OnRequest( const wxString& WXUNUSED(topic), const wxString& WXUNUSED(item), - int *WXUNUSED(size), int WXUNUSED(format) ) { return (char *) NULL; }; - virtual bool OnPoke( const wxString& WXUNUSED(topic), const wxString& WXUNUSED(item), wxChar *WXUNUSED(data), - int WXUNUSED(size), int WXUNUSED(format) ) { return FALSE; }; - virtual bool OnStartAdvise( const wxString& WXUNUSED(topic), const wxString& WXUNUSED(item) ) - { return FALSE; }; - virtual bool OnStopAdvise( const wxString& WXUNUSED(topic), const wxString& WXUNUSED(item) ) - { return FALSE; }; - - // Callbacks to CLIENT - override at will - virtual bool OnAdvise( const wxString& WXUNUSED(topic), const wxString& WXUNUSED(item), char *WXUNUSED(data), - int WXUNUSED(size), int WXUNUSED(format) ) { return FALSE; }; - - // Callbacks to BOTH - - // Default behaviour is to delete connection and return TRUE - virtual bool OnDisconnect(void) = 0; -}; - -class WXDLLEXPORT wxServerBase: public wxObject -{ - DECLARE_CLASS(wxServerBase) - public: - - inline wxServerBase(void) {} - inline ~wxServerBase(void) {}; - virtual bool Create(const wxString& serverName) = 0; // Returns FALSE if can't create server (e.g. port - // number is already in use) - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic) = 0; - -}; - -class WXDLLEXPORT wxClientBase: public wxObject -{ - DECLARE_CLASS(wxClientBase) - public: - inline wxClientBase(void) {}; - inline ~wxClientBase(void) {}; - virtual bool ValidHost(const wxString& host) = 0; - virtual wxConnectionBase *MakeConnection(const wxString& host, const wxString& server, const wxString& topic) = 0; - // Call this to make a connection. - // Returns NULL if cannot. - virtual wxConnectionBase *OnMakeConnection(void) = 0; // Tailor this to return own connection. - -}; - -#endif - // _WX_IPCBASEH__ diff --git a/include/wx/joystick.h b/include/wx/joystick.h deleted file mode 100644 index 5391c9c5c3..0000000000 --- a/include/wx/joystick.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _WX_JOYSTICK_H_BASE_ -#define _WX_JOYSTICK_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/joystick.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/joystick.h" -#elif defined(__WXGTK__) -#include "wx/gtk/joystick.h" -#elif defined(__WXMAC__) -#include "wx/mac/joystick.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/joystick.h" -#endif - -#endif - // _WX_JOYSTICK_H_BASE_ diff --git a/include/wx/layout.h b/include/wx/layout.h deleted file mode 100644 index f0affc67ed..0000000000 --- a/include/wx/layout.h +++ /dev/null @@ -1,351 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: layout.h -// Purpose: Layout classes -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LAYOUTH__ -#define _WX_LAYOUTH__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "layout.h" -#endif - -#include "wx/defs.h" - -// X stupidly defines these in X.h -#ifdef Above - #undef Above -#endif -#ifdef Below - #undef Below -#endif - -// ---------------------------------------------------------------------------- -// forward declrations -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowBase; -class WXDLLEXPORT wxLayoutConstraints; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define wxLAYOUT_DEFAULT_MARGIN 0 - -enum wxEdge -{ - wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight, - wxCentre, wxCenter = wxCentre, wxCentreX, wxCentreY -}; - -enum wxRelationship -{ - wxUnconstrained = 0, - wxAsIs, - wxPercentOf, - wxAbove, - wxBelow, - wxLeftOf, - wxRightOf, - wxSameAs, - wxAbsolute -}; - -enum wxSizerBehaviour -{ - wxSizerShrink, - wxSizerExpand, - wxSizerNone -}; - -#define wxTYPE_SIZER 90 - -// ============================================================================= -// classes -// ============================================================================= - -// ---------------------------------------------------------------------------- -// wxIndividualLayoutConstraint: a constraint on window position -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxIndividualLayoutConstraint : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxIndividualLayoutConstraint) - -protected: - // To be allowed to modify the internal variables - friend class wxIndividualLayoutConstraint_Serialize; - - // 'This' window is the parent or sibling of otherWin - wxWindowBase *otherWin; - - wxEdge myEdge; - wxRelationship relationship; - int margin; - int value; - int percent; - wxEdge otherEdge; - bool done; - -public: - wxIndividualLayoutConstraint(); - ~wxIndividualLayoutConstraint(); - - void Set(wxRelationship rel, wxWindowBase *otherW, wxEdge otherE, int val = 0, int marg = wxLAYOUT_DEFAULT_MARGIN); - - // - // Sibling relationships - // - void LeftOf(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - void RightOf(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - void Above(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - void Below(wxWindowBase *sibling, int marg = wxLAYOUT_DEFAULT_MARGIN); - - // - // 'Same edge' alignment - // - void SameAs(wxWindowBase *otherW, wxEdge edge, int marg = wxLAYOUT_DEFAULT_MARGIN); - - // The edge is a percentage of the other window's edge - void PercentOf(wxWindowBase *otherW, wxEdge wh, int per); - - // - // Edge has absolute value - // - void Absolute(int val); - - // - // Dimension is unconstrained - // - void Unconstrained() { relationship = wxUnconstrained; } - - // - // Dimension is 'as is' (use current size settings) - // - void AsIs() { relationship = wxAsIs; } - - // - // Accessors - // - wxWindowBase *GetOtherWindow() { return otherWin; } - wxEdge GetMyEdge() const { return myEdge; } - void SetEdge(wxEdge which) { myEdge = which; } - void SetValue(int v) { value = v; } - int GetMargin() { return margin; } - void SetMargin(int m) { margin = m; } - int GetValue() const { return value; } - int GetPercent() const { return percent; } - int GetOtherEdge() const { return otherEdge; } - bool GetDone() const { return done; } - void SetDone(bool d) { done = d; } - wxRelationship GetRelationship() { return relationship; } - void SetRelationship(wxRelationship r) { relationship = r; } - - // Reset constraint if it mentions otherWin - bool ResetIfWin(wxWindowBase *otherW); - - // Try to satisfy constraint - bool SatisfyConstraint(wxLayoutConstraints *constraints, wxWindowBase *win); - - // Get the value of this edge or dimension, or if this - // is not determinable, -1. - int GetEdge(wxEdge which, wxWindowBase *thisWin, wxWindowBase *other) const; -}; - -// ---------------------------------------------------------------------------- -// wxLayoutConstraints: the complete set of constraints for a window -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxLayoutConstraints : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxLayoutConstraints) - -public: - // Edge constraints - wxIndividualLayoutConstraint left; - wxIndividualLayoutConstraint top; - wxIndividualLayoutConstraint right; - wxIndividualLayoutConstraint bottom; - // Size constraints - wxIndividualLayoutConstraint width; - wxIndividualLayoutConstraint height; - // Centre constraints - wxIndividualLayoutConstraint centreX; - wxIndividualLayoutConstraint centreY; - - wxLayoutConstraints(); - ~wxLayoutConstraints(); - - bool SatisfyConstraints(wxWindowBase *win, int *noChanges); - bool AreSatisfied() const - { - return left.GetDone() && top.GetDone() && right.GetDone() && - bottom.GetDone() && centreX.GetDone() && centreY.GetDone(); - } -}; - -// ---------------------------------------------------------------------------- -// sizers -// ---------------------------------------------------------------------------- - -/* - -Algorithm: - - Each sizer has a Layout function. - - wxExpandSizer::Layout ; E.g. for resizeable windows - - - parent size must be known (i.e. called - from OnSize or explicitly) - - call Layout on each child to give it a chance to resize - (e.g. child shrinks around its own children): - stop when all children return TRUE, or no change - - evaluate constraints on self to set size - - wxShrinkSizer::Layout ; E.g. fit-to-contents windows - ; Perhaps 2 rowcols, one above other. - - - call Layout on each child to give it a chance to resize - (e.g. child shrinks around its own children): - stop when each returns TRUE, or no change - - fit around children - (what if some want to be centred? E.g. OK/Cancel rowcol. - - done by centring e.g. bottom sizer w.r.t. top sizer. - (sibling relationship only)) - - evaluate own constraints (e.g. may be below another window) - - IF parent is a real window (remember: a real window can - have only one child sizer, although a sizer can have several child - (real) windows), then resize this parent WITHOUT invoking Layout - again. - Frame and dialog box OnSizes can check if the sizer is a shrink - sizer; if not, can call layout. Maybe have virtual bool AutoSizeLayout() - to determine this. - -How to relayout if a child sizer/window changes? Need to go all the way -to the top of the hierarchy and call Layout() again. - - wxRowColSizer::Layout - - - Similar to wxShrinkSizer only instead of shrinking to fit - contents, more sophisticated layout of contents, and THEN - shrinking (possibly). - - Do the same parent window check/setsize as for wxShrinkSizer. - -*/ - -class WXDLLEXPORT wxSizer : public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxSizer) - -protected: - wxSizerBehaviour sizerBehaviour; - int borderX; - int borderY; - int sizerWidth; - int sizerHeight; - int sizerX; - int sizerY; - -public: - wxSizer(); - wxSizer(wxWindowBase *parent, wxSizerBehaviour behav = wxSizerNone); - ~wxSizer(); - - bool Create(wxWindowBase *parent, wxSizerBehaviour behav = wxSizerNone); - - virtual void DoGetSize(int *w, int *h) const; - virtual void DoGetClientSize(int *w, int *h) const { GetSize(w, h); } - virtual void DoGetPosition(int *x, int *y) const; - - void SizerSetSize(int x, int y, int w, int h) { SetSize(x, y, w, h); } - void SizerMove(int x, int y) { Move(x, y); } - - virtual void SetBorder(int w, int h); - int GetBorderX() { return borderX ; } - int GetBorderY() { return borderY ; } - - virtual void AddSizerChild(wxWindowBase *child); - virtual void RemoveSizerChild(wxWindowBase *child); - - virtual void SetBehaviour(wxSizerBehaviour b) { sizerBehaviour = b; } - virtual wxSizerBehaviour GetBehaviour() { return sizerBehaviour; } - - virtual bool LayoutPhase1(int *); - virtual bool LayoutPhase2(int *); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#define wxSIZER_ROWS TRUE -#define wxSIZER_COLS FALSE - -class WXDLLEXPORT wxRowColSizer : public wxSizer -{ - DECLARE_DYNAMIC_CLASS(wxRowColSizer) - -protected: - bool rowOrCol; - int rowOrColSize; - int xSpacing; - int ySpacing; - -public: - // rowOrCol = TRUE to be laid out in rows, otherwise in columns. - wxRowColSizer(); - wxRowColSizer(wxWindowBase *parent, bool rowOrCol = wxSIZER_ROWS, - int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink); - ~wxRowColSizer(); - - bool Create(wxWindowBase *parent, bool rowOrCol = wxSIZER_ROWS, - int rowsOrColSize = 20, wxSizerBehaviour = wxSizerShrink); - - virtual void SetRowOrCol(bool rc) { rowOrCol = rc; } - virtual bool GetRowOrCol() { return rowOrCol; } - virtual void SetRowOrColSize(int n) { rowOrColSize = n; } - virtual int GetRowOrColSize() { return rowOrColSize; } - virtual void SetSpacing(int x, int y) { xSpacing = x; ySpacing = y; } - virtual void GetSpacing(int *x, int *y) { *x = xSpacing; *y = ySpacing; } - - bool LayoutPhase1(int *); - bool LayoutPhase2(int *); -}; - -class WXDLLEXPORT wxSpacingSizer : public wxSizer -{ - DECLARE_DYNAMIC_CLASS(wxSpacingSizer) - -public: - wxSpacingSizer(); - wxSpacingSizer(wxWindowBase *parent, wxRelationship rel, wxWindowBase *other, int spacing); - wxSpacingSizer(wxWindowBase *parent); - ~wxSpacingSizer(); - - bool Create(wxWindowBase *parent, wxRelationship rel, wxWindowBase *other, int sp); - bool Create(wxWindowBase *parent); -}; - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY - extern bool WXDLLEXPORT wxOldDoLayout(wxWindowBase *win); -#endif // WXWIN_COMPATIBILITY - -#endif - // _WX_LAYOUTH__ diff --git a/include/wx/laywin.h b/include/wx/laywin.h deleted file mode 100644 index f3ad27274d..0000000000 --- a/include/wx/laywin.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_LAYWIN_H_BASE_ -#define _WX_LAYWIN_H_BASE_ - -#include "wx/generic/laywin.h" - -#endif - // _WX_LAYWIN_H_BASE_ diff --git a/include/wx/list.h b/include/wx/list.h deleted file mode 100644 index 01eddf8190..0000000000 --- a/include/wx/list.h +++ /dev/null @@ -1,521 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: list.h -// Purpose: wxList, wxStringList classes -// Author: Julian Smart -// Modified by: VZ at 16/11/98: WX_DECLARE_LIST() and typesafe lists added -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -/* - All this is quite ugly but serves two purposes: - 1. Be almost 100% compatible with old, untyped, wxList class - 2. Ensure compile-time type checking for the linked lists - - The idea is to have one base class (wxListBase) working with "void *" data, - but to hide these untyped functions - i.e. make them protected, so they - can only be used from derived classes which have inline member functions - working with right types. This achieves the 2nd goal. As for the first one, - we provide a special derivation of wxListBase called wxList which looks just - like the old class. -*/ - -#ifndef _WX_LISTH__ -#define _WX_LISTH__ - -#ifdef __GNUG__ -#pragma interface "list.h" -#endif - -// ----------------------------------------------------------------------------- -// headers -// ----------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/debug.h" -#include "wx/object.h" -#include "wx/string.h" - -// due to circular header dependencies this function has to be declared here -// (normally it's found in utils.h which includes itself list.h...) -extern WXDLLEXPORT wxChar* copystring(const wxChar *s); - -class WXDLLEXPORT wxObjectListNode; -typedef wxObjectListNode wxNode; - -// undef it to get rid of old, deprecated functions -#define wxLIST_COMPATIBILITY - -// ----------------------------------------------------------------------------- -// constants -// ----------------------------------------------------------------------------- -enum wxKeyType -{ - wxKEY_NONE, - wxKEY_INTEGER, - wxKEY_STRING -}; - -// ----------------------------------------------------------------------------- -// types -// ----------------------------------------------------------------------------- - -// type of compare function for list sort operation (as in 'qsort'): it should -// return a negative value, 0 or positive value if the first element is less -// than, equal or greater than the second -typedef int (*wxSortCompareFunction)(const void *elem1, const void *elem2); - -// -typedef int (*wxListIterateFunction)(void *current); - -// ----------------------------------------------------------------------------- -// key stuff: a list may be optionally keyed on integer or string key -// ----------------------------------------------------------------------------- - -union wxListKeyValue -{ - long integer; - wxChar *string; -}; - -// a struct which may contain both types of keys -// -// implementation note: on one hand, this class allows to have only one function -// for any keyed operation instead of 2 almost equivalent. OTOH, it's needed to -// resolve ambiguity which we would otherwise have with wxStringList::Find() and -// wxList::Find(const char *). -class WXDLLEXPORT wxListKey -{ -public: - // implicit ctors - wxListKey() - { m_keyType = wxKEY_NONE; } - wxListKey(long i) - { m_keyType = wxKEY_INTEGER; m_key.integer = i; } - wxListKey(const wxChar *s) - { m_keyType = wxKEY_STRING; m_key.string = wxStrdup(s); } - wxListKey(const wxString& s) - { m_keyType = wxKEY_STRING; m_key.string = wxStrdup(s.c_str()); } - - // accessors - wxKeyType GetKeyType() const { return m_keyType; } - const wxChar *GetString() const - { wxASSERT( m_keyType == wxKEY_STRING ); return m_key.string; } - long GetNumber() const - { wxASSERT( m_keyType == wxKEY_INTEGER ); return m_key.integer; } - - // comparison - // Note: implementation moved to list.cpp to prevent BC++ inline - // expansion warning. - bool operator==(wxListKeyValue value) const ; - - // dtor - ~wxListKey() - { - if ( m_keyType == wxKEY_STRING ) - free(m_key.string); - } - -private: - wxKeyType m_keyType; - wxListKeyValue m_key; -}; - -// ----------------------------------------------------------------------------- -// wxNodeBase class is a (base for) node in a double linked list -// ----------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern wxListKey) wxDefaultListKey; - -class WXDLLEXPORT wxNodeBase -{ -friend class wxListBase; -public: - // ctor - wxNodeBase(wxListBase *list = (wxListBase *)NULL, - wxNodeBase *previous = (wxNodeBase *)NULL, - wxNodeBase *next = (wxNodeBase *)NULL, - void *data = NULL, - const wxListKey& key = wxDefaultListKey); - - virtual ~wxNodeBase(); - - // FIXME no check is done that the list is really keyed on strings - const wxChar *GetKeyString() const { return m_key.string; } - long GetKeyInteger() const { return m_key.integer; } - - // Necessary for some existing code - void SetKeyString(wxChar* s) { m_key.string = s; } - void SetKeyInteger(long i) { m_key.integer = i; } - -#ifdef wxLIST_COMPATIBILITY - // compatibility methods - wxNode *Next() const { return (wxNode *)GetNext(); } - wxNode *Previous() const { return (wxNode *)GetPrevious(); } - wxObject *Data() const { return (wxObject *)GetData(); } -#endif // wxLIST_COMPATIBILITY - -protected: - // all these are going to be "overloaded" in the derived classes - wxNodeBase *GetNext() const { return m_next; } - wxNodeBase *GetPrevious() const { return m_previous; } - - void *GetData() const { return m_data; } - void SetData(void *data) { m_data = data; } - - // get 0-based index of this node within the list or wxNOT_FOUND - int IndexOf() const; - - virtual void DeleteData() { } - -private: - // optional key stuff - wxListKeyValue m_key; - - void *m_data; // user data - wxNodeBase *m_next, // next and previous nodes in the list - *m_previous; - - wxListBase *m_list; // list we belong to -}; - -// ----------------------------------------------------------------------------- -// a double-linked list class -// ----------------------------------------------------------------------------- -class WXDLLEXPORT wxListBase : public wxObject -{ -friend class wxNodeBase; // should be able to call DetachNode() -public: - // default ctor & dtor - wxListBase(wxKeyType keyType = wxKEY_NONE) { Init(keyType); } - virtual ~wxListBase(); - - // accessors - // count of items in the list - size_t GetCount() const { return m_count; } - - // operations - - // delete all nodes - void Clear(); - - // instruct it to destroy user data when deleting nodes - void DeleteContents(bool destroy) { m_destroy = destroy; } - - // query if to delete - bool GetDeleteContents() const - { return m_destroy; } - - // get the keytype - wxKeyType GetKeyType() const - { return m_keyType; } - - // set the keytype (required by the serial code) - void SetKeyType(wxKeyType keyType) - { wxASSERT( m_count==0 ); m_keyType = keyType; } - -#ifdef wxLIST_COMPATIBILITY - int Number() const { return GetCount(); } - wxNode *First() const { return (wxNode *)GetFirst(); } - wxNode *Last() const { return (wxNode *)GetLast(); } - wxNode *Nth(size_t index) const { return (wxNode *)Item(index); } -#endif // wxLIST_COMPATIBILITY - -protected: - - // all methods here are "overloaded" in derived classes to provide compile - // time type checking - - // create a node for the list of this type - virtual wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, - void *data, - const wxListKey& key = wxDefaultListKey) = 0; - -// Can't access these from derived classes otherwise (bug in Salford C++?) -#ifdef __SALFORDC__ -public: -#endif - - // ctors - // from an array - wxListBase(size_t count, void *elements[]); - // from a sequence of objects - wxListBase(void *object, ... /* terminate with NULL */); - -protected: - // copy ctor and assignment operator - wxListBase(const wxListBase& list) - { DoCopy(list); } - wxListBase& operator=(const wxListBase& list) - { Clear(); DoCopy(list); return *this; } - - // get list head/tail - wxNodeBase *GetFirst() const { return m_nodeFirst; } - wxNodeBase *GetLast() const { return m_nodeLast; } - - // by (0-based) index - wxNodeBase *Item(size_t index) const; - - // get the list item's data - void *operator[](size_t index) const - { wxNodeBase *node = Item(index); return node ? node->GetData() : (wxNodeBase*)NULL; } - - // operations - // append to end of list - wxNodeBase *Append(void *object); - // insert a new item at the beginning of the list - wxNodeBase *Insert(void *object) { return Insert( (wxNodeBase*)NULL, object); } - // insert before given node or at front of list if prev == NULL - wxNodeBase *Insert(wxNodeBase *prev, void *object); - - // keyed append - wxNodeBase *Append(long key, void *object); - wxNodeBase *Append(const wxChar *key, void *object); - - // removes node from the list but doesn't delete it (returns pointer - // to the node or NULL if it wasn't found in the list) - wxNodeBase *DetachNode(wxNodeBase *node); - // delete element from list, returns FALSE if node not found - bool DeleteNode(wxNodeBase *node); - // finds object pointer and deletes node (and object if DeleteContents - // is on), returns FALSE if object not found - bool DeleteObject(void *object); - - // search (all return NULL if item not found) - // by data - wxNodeBase *Find(void *object) const; - - // by key - wxNodeBase *Find(const wxListKey& key) const; - - // get 0-based index of object or wxNOT_FOUND - int IndexOf( void *object ) const; - - // this function allows the sorting of arbitrary lists by giving - // a function to compare two list elements. The list is sorted in place. - void Sort(const wxSortCompareFunction compfunc); - - // functions for iterating over the list - void *FirstThat(wxListIterateFunction func); - void ForEach(wxListIterateFunction func); - void *LastThat(wxListIterateFunction func); - -private: - // helpers - // common part of all ctors - void Init(wxKeyType keyType = wxKEY_NONE); - // common part of copy ctor and assignment operator - void DoCopy(const wxListBase& list); - // common part of all Append()s - wxNodeBase *AppendCommon(wxNodeBase *node); - // free node's data and node itself - void DoDeleteNode(wxNodeBase *node); - - size_t m_count; // number of elements in the list - bool m_destroy; // destroy user data when deleting list items? - wxNodeBase *m_nodeFirst, // pointers to the head and tail of the list - *m_nodeLast; - - wxKeyType m_keyType; // type of our keys (may be wxKEY_NONE) -}; - -// ----------------------------------------------------------------------------- -// macros for definition of "template" list type -// ----------------------------------------------------------------------------- - -// and now some heavy magic... - -// declare a list type named 'name' and containing elements of type 'T *' -// (as a by product of macro expansion you also get wx##name##Node -// wxNode-derived type) -// -// implementation details: -// 1. We define _WX_LIST_ITEM_TYPE_##name typedef to save in it the item type -// for the list of given type - this allows us to pass only the list name -// to WX_DEFINE_LIST() even if it needs both the name and the type -// -// 2. We redefine all non-type-safe wxList functions with type-safe versions -// which don't take any space (everything is inline), but bring compile -// time error checking. -// -// 3. The macro which is usually used (WX_DECLARE_LIST) is defined in terms of -// a more generic WX_DECLARE_LIST_2 macro which, in turn, uses the most -// generic WX_DECLARE_LIST_3 one. The last macro adds a sometimes -// interesting capability to store polymorphic objects in the list and is -// particularly useful with, for example, "wxWindow *" list where the -// wxWindowBase pointers are put into the list, but wxWindow pointers are -// retrieved from it. - -#define WX_DECLARE_LIST_3(T, Tbase, name, nodetype) \ - typedef int (*wxSortFuncFor_##name)(const T *, const T *); \ - \ - class WXDLLEXPORT nodetype : public wxNodeBase \ - { \ - public: \ - nodetype(wxListBase *list = (wxListBase *)NULL, \ - nodetype *previous = (nodetype *)NULL, \ - nodetype *next = (nodetype *)NULL, \ - T *data = (T *)NULL, \ - const wxListKey& key = wxDefaultListKey) \ - : wxNodeBase(list, previous, next, data, key) { } \ - \ - nodetype *GetNext() const \ - { return (nodetype *)wxNodeBase::GetNext(); } \ - nodetype *GetPrevious() const \ - { return (nodetype *)wxNodeBase::GetPrevious(); } \ - \ - T *GetData() const \ - { return (T *)wxNodeBase::GetData(); } \ - void SetData(T *data) \ - { wxNodeBase::SetData(data); } \ - \ - virtual void DeleteData(); \ - }; \ - \ - class WXDLLEXPORT name : public wxListBase \ - { \ - public: \ - typedef nodetype Node; \ - \ - name(wxKeyType keyType = wxKEY_NONE) : wxListBase(keyType) \ - { } \ - name(size_t count, T *elements[]) \ - : wxListBase(count, (void **)elements) { } \ - \ - nodetype *GetFirst() const \ - { return (nodetype *)wxListBase::GetFirst(); } \ - nodetype *GetLast() const \ - { return (nodetype *)wxListBase::GetLast(); } \ - \ - nodetype *Item(size_t index) const \ - { return (nodetype *)wxListBase::Item(index); } \ - \ - T *operator[](size_t index) const \ - { \ - nodetype *node = Item(index); \ - return node ? (T*)(node->GetData()) : (T*)NULL; \ - } \ - \ - nodetype *Append(Tbase *object) \ - { return (nodetype *)wxListBase::Append(object); } \ - nodetype *Insert(Tbase *object) \ - { return (nodetype *)Insert((nodetype*)NULL, object); } \ - nodetype *Insert(nodetype *prev, Tbase *object) \ - { return (nodetype *)wxListBase::Insert(prev, object); } \ - \ - nodetype *Append(long key, void *object) \ - { return (nodetype *)wxListBase::Append(key, object); } \ - nodetype *Append(const wxChar *key, void *object) \ - { return (nodetype *)wxListBase::Append(key, object); } \ - \ - nodetype *DetachNode(nodetype *node) \ - { return (nodetype *)wxListBase::DetachNode(node); } \ - bool DeleteNode(nodetype *node) \ - { return wxListBase::DeleteNode(node); } \ - bool DeleteObject(Tbase *object) \ - { return wxListBase::DeleteObject(object); } \ - \ - nodetype *Find(Tbase *object) const \ - { return (nodetype *)wxListBase::Find(object); } \ - \ - virtual nodetype *Find(const wxListKey& key) const \ - { return (nodetype *)wxListBase::Find(key); } \ - \ - int IndexOf(Tbase *object) const \ - { return wxListBase::IndexOf(object); } \ - \ - void Sort(wxSortFuncFor_##name func) \ - { wxListBase::Sort((wxSortCompareFunction)func); } \ - \ - protected: \ - wxNodeBase *CreateNode(wxNodeBase *prev, wxNodeBase *next, \ - void *data, \ - const wxListKey& key = wxDefaultListKey) \ - { \ - return new nodetype(this, \ - (nodetype *)prev, (nodetype *)next, \ - (T *)data, key); \ - } \ - } - -#define WX_DECLARE_LIST_2(elementtype, listname, nodename) \ - WX_DECLARE_LIST_3(elementtype, elementtype, listname, nodename) - -#define WX_DECLARE_LIST(elementtype, listname) \ - typedef elementtype _WX_LIST_ITEM_TYPE_##listname; \ - WX_DECLARE_LIST_2(elementtype, listname, wx##listname##Node) - -// this macro must be inserted in your program after -// #include -#define WX_DEFINE_LIST(name) "don't forget to include listimpl.cpp!" - -// ============================================================================= -// now we can define classes 100% compatible with the old ones -// ============================================================================= - -// ---------------------------------------------------------------------------- -// commonly used list classes -// ---------------------------------------------------------------------------- - -#ifdef wxLIST_COMPATIBILITY - -// ----------------------------------------------------------------------------- -// wxList compatibility class: in fact, it's a list of wxObjects -// ----------------------------------------------------------------------------- - -WX_DECLARE_LIST_2(wxObject, wxObjectList, wxObjectListNode); - -class WXDLLEXPORT wxList : public wxObjectList -{ -public: - wxList(int key_type = wxKEY_NONE) : wxObjectList((wxKeyType)key_type) { } - - // compatibility methods - void Sort(wxSortCompareFunction compfunc) { wxListBase::Sort(compfunc); } - - wxNode *Member(wxObject *object) const { return (wxNode *)Find(object); } -}; - -// ----------------------------------------------------------------------------- -// wxStringList class for compatibility with the old code -// ----------------------------------------------------------------------------- - -WX_DECLARE_LIST_2(wxChar, wxStringListBase, wxStringListNode); - -class WXDLLEXPORT wxStringList : public wxStringListBase -{ -public: - // ctors and such - // default - wxStringList() { DeleteContents(TRUE); } - wxStringList(const wxChar *first ...); - - // copying the string list: the strings are copied, too (extremely - // inefficient!) - wxStringList(const wxStringList& other) { DoCopy(other); } - wxStringList& operator=(const wxStringList& other) - { Clear(); DoCopy(other); return *this; } - - // operations - // makes a copy of the string - wxNode *Add(const wxChar *s) - { return (wxNode *)wxStringListBase::Append(copystring(s)); } - - bool Delete(const wxChar *s); - - wxChar **ListToArray(bool new_copies = FALSE) const; - bool Member(const wxChar *s) const; - - // alphabetic sort - void Sort(); - -private: - void DoCopy(const wxStringList&); // common part of copy ctor and operator= -}; - -#endif // wxLIST_COMPATIBILITY - -#endif - // _WX_LISTH__ diff --git a/include/wx/listbox.h b/include/wx/listbox.h deleted file mode 100644 index 9d8a3460db..0000000000 --- a/include/wx/listbox.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_LISTBOX_H_BASE_ -#define _WX_LISTBOX_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/listbox.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/listbox.h" -#elif defined(__WXGTK__) -#include "wx/gtk/listbox.h" -#elif defined(__WXQT__) -#include "wx/qt/listbox.h" -#elif defined(__WXMAC__) -#include "wx/mac/listbox.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/listbox.h" -#endif - -#endif - // _WX_LISTBOX_H_BASE_ diff --git a/include/wx/listctrl.h b/include/wx/listctrl.h deleted file mode 100644 index 1e5c3480c8..0000000000 --- a/include/wx/listctrl.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _WX_LISTCTRL_H_BASE_ -#define _WX_LISTCTRL_H_BASE_ - -#if defined(__WXMSW__) -#ifdef __WIN16__ -#include "wx/generic/listctrl.h" -#else -#include "wx/msw/listctrl.h" -#endif -#elif defined(__WXMOTIF__) -#include "wx/generic/listctrl.h" -#elif defined(__WXGTK__) -#include "wx/generic/listctrl.h" -#elif defined(__WXQT__) -#include "wx/generic/listctrl.h" -#elif defined(__WXMAC__) -#include "wx/generic/listctrl.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/listctrl.h" -#endif - -#endif - // _WX_LISTCTRL_H_BASE_ diff --git a/include/wx/listimpl.cpp b/include/wx/listimpl.cpp deleted file mode 100644 index ccb1e6397c..0000000000 --- a/include/wx/listimpl.cpp +++ /dev/null @@ -1,24 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listimpl.cpp -// Purpose: second-part of macro based implementation of template lists -// Author: Vadim Zeitlin -// Modified by: -// Created: 16/11/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#define _DEFINE_LIST(T, name) \ - void wx##name##Node::DeleteData() \ - { \ - delete (T *)GetData(); \ - } - -// redefine the macro so that now it will generate the class implementation -// old value would provoke a compile-time error if this file is not included -#undef WX_DEFINE_LIST -#define WX_DEFINE_LIST(name) _DEFINE_LIST(_WX_LIST_ITEM_TYPE_##name, name) - -// don't pollute preprocessor's name space -//#undef _DEFINE_LIST diff --git a/include/wx/log.h b/include/wx/log.h deleted file mode 100644 index 2c9e5ccb33..0000000000 --- a/include/wx/log.h +++ /dev/null @@ -1,475 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: log.h -// Purpose: Assorted wxLogXXX functions, and wxLog (sink for logs) -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LOG_H_ -#define _WX_LOG_H_ - -#ifdef __GNUG__ - #pragma interface "log.h" -#endif - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextCtrl; -class WXDLLEXPORT wxLogFrame; -class WXDLLEXPORT wxFrame; - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -typedef unsigned long wxTraceMask; -typedef unsigned long wxLogLevel; - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#if wxUSE_LOG - -#include // for time_t - -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// different standard log levels (you may also define your own) -enum -{ - wxLOG_FatalError, // program can't continue, abort immediately - wxLOG_Error, // a serious error, user must be informed about it - wxLOG_Warning, // user is normally informed about it but may be ignored - wxLOG_Message, // normal message (i.e. normal output of a non GUI app) - wxLOG_Info, // informational message (a.k.a. 'Verbose') - wxLOG_Status, // informational: might go to the status line of GUI app - wxLOG_Debug, // never shown to the user, disabled in release mode - wxLOG_Trace, // trace messages are also only enabled in debug mode - wxLOG_Progress, // used for progress indicator (not yet) - wxLOG_User = 100 // user defined levels start here -}; - -// symbolic trace masks - wxLogTrace("foo", "some trace message...") will be -// discarded unless the string "foo" has been added to the list of allowed -// ones with AddTraceMask() - -#define wxTRACE_MemAlloc "memalloc" // trace memory allocation (new/delete) -#define wxTRACE_Messages "messages" // trace window messages/X callbacks -#define wxTRACE_ResAlloc "resalloc" // trace GDI resource allocation -#define wxTRACE_RefCount "refcount" // trace various ref counting operations - -#ifdef __WXMSW__ - #define wxTRACE_OleCalls "ole" // OLE interface calls -#endif - -// the trace masks have been superceded by symbolic trace constants, they're -// for compatibility only andwill be removed soon - do NOT use them - -// meaning of different bits of the trace mask (which allows selectively -// enable/disable some trace messages) -#define wxTraceMemAlloc 0x0001 // trace memory allocation (new/delete) -#define wxTraceMessages 0x0002 // trace window messages/X callbacks -#define wxTraceResAlloc 0x0004 // trace GDI resource allocation -#define wxTraceRefCount 0x0008 // trace various ref counting operations - -#ifdef __WXMSW__ - #define wxTraceOleCalls 0x0100 // OLE interface calls -#endif - -#if wxUSE_IOSTREAMH -// N.B. BC++ doesn't have istream.h, ostream.h -# include -#else -# include -# if defined(__VISUALC__) || defined(__MWERKS__) - using namespace std; -# endif -#endif - -// ---------------------------------------------------------------------------- -// derive from this class to redirect (or suppress, or ...) log messages -// normally, only a single instance of this class exists but it's not enforced -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxLog -{ -public: - // ctor - wxLog(); - - // these functions allow to completely disable all log messages - // is logging disabled now? - static bool IsEnabled() { return ms_doLog; } - // change the flag state, return the previous one - static bool EnableLogging(bool doIt = TRUE) - { bool doLogOld = ms_doLog; ms_doLog = doIt; return doLogOld; } - - // static sink function - see DoLog() for function to overload in the - // derived classes - static void OnLog(wxLogLevel level, const wxChar *szString, time_t t) - { - if ( IsEnabled() ) { - wxLog *pLogger = GetActiveTarget(); - if ( pLogger ) - pLogger->DoLog(level, szString, t); - } - } - - // message buffering - // flush shows all messages if they're not logged immediately (FILE - // and iostream logs don't need it, but wxGuiLog does to avoid showing - // 17 modal dialogs one after another) - virtual void Flush(); - // call to Flush() may be optimized: call it only if this function - // returns true (although Flush() also returns immediately if there is - // no messages, this functions is more efficient because inline) - bool HasPendingMessages() const { return m_bHasMessages; } - - // only one sink is active at each moment - // get current log target, will call wxApp::CreateLogTarget() to - // create one if none exists - static wxLog *GetActiveTarget(); - // change log target, pLogger may be NULL - static wxLog *SetActiveTarget(wxLog *pLogger); - - // functions controlling the default wxLog behaviour - // verbose mode is activated by standard command-line '-verbose' - // option - void SetVerbose(bool bVerbose = TRUE) { m_bVerbose = bVerbose; } - // should GetActiveTarget() try to create a new log object if the - // current is NULL? - static void DontCreateOnDemand() { ms_bAutoCreate = FALSE; } - - // trace mask (see wxTraceXXX constants for details) - static void SetTraceMask(wxTraceMask ulMask) { ms_ulTraceMask = ulMask; } - // add string trace mask - static void AddTraceMask(const wxString& str) { ms_aTraceMasks.Add(str); } - // add string trace mask - static void RemoveTraceMask(const wxString& str); - - // accessors - // gets the verbose status - bool GetVerbose() const { return m_bVerbose; } - // get trace mask - static wxTraceMask GetTraceMask() { return ms_ulTraceMask; } - // is this trace mask in the list? - static bool IsAllowedTraceMask(const wxChar *mask) - { return ms_aTraceMasks.Index(mask) != wxNOT_FOUND; } - - // make dtor virtual for all derived classes - virtual ~wxLog() { } - -protected: - bool m_bHasMessages; // any messages in the queue? - bool m_bVerbose; // FALSE => ignore LogInfo messages - - // the logging functions that can be overriden - // default DoLog() prepends the time stamp and a prefix corresponding - // to the message to szString and then passes it to DoLogString() - virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t); - // default DoLogString does nothing but is not pure virtual because if - // you override DoLog() you might not need it at all - virtual void DoLogString(const wxChar *szString, time_t t); - -private: - // static variables - // ---------------- - - static wxLog *ms_pLogger; // currently active log sink - static bool ms_doLog; // FALSE => all logging disabled - static bool ms_bAutoCreate; // create new log targets on demand? - - static wxTraceMask ms_ulTraceMask; // controls wxLogTrace behaviour - static wxArrayString ms_aTraceMasks; // more powerful filter for wxLogTrace -}; - -// ---------------------------------------------------------------------------- -// "trivial" derivations of wxLog -// ---------------------------------------------------------------------------- - -// log everything to a "FILE *", stderr by default -class WXDLLEXPORT wxLogStderr : public wxLog -{ -public: - // redirect log output to a FILE - wxLogStderr(FILE *fp = (FILE *) NULL); - -private: - // implement sink function - virtual void DoLogString(const wxChar *szString, time_t t); - - FILE *m_fp; -}; - -#if wxUSE_STD_IOSTREAM -// log everything to an "ostream", cerr by default -class WXDLLEXPORT wxLogStream : public wxLog -{ -public: - // redirect log output to an ostream - wxLogStream(ostream *ostr = (ostream *) NULL); - -protected: - // implement sink function - virtual void DoLogString(const wxChar *szString, time_t t); - - // using ptr here to avoid including from this file - ostream *m_ostr; -}; -#endif - -#ifndef wxUSE_NOGUI - -#if wxUSE_STD_IOSTREAM -// log everything to a text window (GUI only of course) -class WXDLLEXPORT wxLogTextCtrl : public wxLogStream -{ -public: - // we just create an ostream from wxTextCtrl and use it in base class - wxLogTextCtrl(wxTextCtrl *pTextCtrl); - ~wxLogTextCtrl(); -}; -#endif - -// ---------------------------------------------------------------------------- -// GUI log target, the default one for wxWindows programs -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxLogGui : public wxLog -{ -public: - // ctor - wxLogGui(); - - // show all messages that were logged since the last Flush() - virtual void Flush(); - -protected: - virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t); - - // empty everything - void Clear(); - - wxArrayString m_aMessages; - wxArrayLong m_aTimes; - bool m_bErrors, // do we have any errors? - m_bWarnings; // any warnings? -}; - -// ---------------------------------------------------------------------------- -// (background) log window: this class forwards all log messages to the log -// target which was active when it was instantiated, but also collects them -// to the log window. This window has it's own menu which allows the user to -// close it, clear the log contents or save it to the file. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxLogWindow : public wxLog -{ -public: - wxLogWindow(wxFrame *pParent, // the parent frame (can be NULL) - const wxChar *szTitle, // the title of the frame - bool bShow = TRUE, // show window immediately? - bool bPassToOld = TRUE); // pass log messages to the old target? - ~wxLogWindow(); - - // window operations - // show/hide the log window - void Show(bool bShow = TRUE); - // retrieve the pointer to the frame - wxFrame *GetFrame() const; - - // accessors - // the previous log target (may be NULL) - wxLog *GetOldLog() const { return m_pOldLog; } - // are we passing the messages to the previous log target? - bool IsPassingMessages() const { return m_bPassMessages; } - - // we can pass the messages to the previous log target (we're in this mode by - // default: we collect all messages in the window, but also let the default - // processing take place) - void PassMessages(bool bDoPass) { m_bPassMessages = bDoPass; } - - // base class virtuals - // we don't need it ourselves, but we pass it to the previous logger - virtual void Flush(); - - // overridables - // called immediately after the log frame creation allowing for - // any extra initializations - virtual void OnFrameCreate(wxFrame *frame); - // called right before the log frame is going to be deleted - virtual void OnFrameDelete(wxFrame *frame); - -protected: - virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t); - virtual void DoLogString(const wxChar *szString, time_t t); - -private: - bool m_bPassMessages; // pass messages to m_pOldLog? - wxLog *m_pOldLog; // previous log target - wxLogFrame *m_pLogFrame; // the log frame -}; - -#endif // wxUSE_NOGUI - -// ---------------------------------------------------------------------------- -// /dev/null log target: suppress logging until this object goes out of scope -// ---------------------------------------------------------------------------- - -// example of usage: -/* - void Foo() { - 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 -} - */ -class WXDLLEXPORT wxLogNull -{ -public: - wxLogNull() { m_flagOld = wxLog::EnableLogging(FALSE); } - ~wxLogNull() { (void)wxLog::EnableLogging(m_flagOld); } - -private: - bool m_flagOld; // the previous value of the wxLog::ms_doLog -}; - -// ============================================================================ -// global functions -// ============================================================================ - -// ---------------------------------------------------------------------------- -// Log functions should be used by application instead of stdio, iostream &c -// for log messages for easy redirection -// ---------------------------------------------------------------------------- - -// are we in 'verbose' mode? -// (note that it's often handy to change this var manually from the -// debugger, thus enabling/disabling verbose reporting for some -// parts of the program only) -WXDLLEXPORT_DATA(extern bool) g_bVerbose; - -// ---------------------------------------------------------------------------- -// get error code/error message from system in a portable way -// ---------------------------------------------------------------------------- - -// return the last system error code -WXDLLEXPORT unsigned long wxSysErrorCode(); -// return the error message for given (or last if 0) error code -WXDLLEXPORT const wxChar* wxSysErrorMsg(unsigned long nErrCode = 0); - -// define wxLog -// ------------------- - -#define DECLARE_LOG_FUNCTION(level) \ -extern void WXDLLEXPORT wxLog##level(const wxChar *szFormat, ...) -#define DECLARE_LOG_FUNCTION2(level, arg1) \ -extern void WXDLLEXPORT wxLog##level(arg1, const wxChar *szFormat, ...) - -#else // !wxUSE_LOG - -// log functions do nothing at all -#define DECLARE_LOG_FUNCTION(level) \ -inline void WXDLLEXPORT wxLog##level(const wxChar *szFormat, ...) {} -#define DECLARE_LOG_FUNCTION2(level, arg1) \ -inline void WXDLLEXPORT wxLog##level(arg1, const wxChar *szFormat, ...) {} - -#endif // wxUSE_LOG/!wxUSE_LOG - -// a generic function for all levels (level is passes as parameter) -DECLARE_LOG_FUNCTION2(Generic, wxLogLevel level); - -// one function per each level -DECLARE_LOG_FUNCTION(FatalError); -DECLARE_LOG_FUNCTION(Error); -DECLARE_LOG_FUNCTION(Warning); -DECLARE_LOG_FUNCTION(Message); -DECLARE_LOG_FUNCTION(Info); -DECLARE_LOG_FUNCTION(Verbose); - -// this function sends the log message to the status line of the top level -// application frame, if any -DECLARE_LOG_FUNCTION(Status); - -// this one is the same as previous except that it allows to explicitly -// specify the frame to which the output should go -DECLARE_LOG_FUNCTION2(Status, wxFrame *pFrame); - -// additional one: as wxLogError, but also logs last system call error code -// and the corresponding error message if available -DECLARE_LOG_FUNCTION(SysError); - -// and another one which also takes the error code (for those broken APIs -// that don't set the errno (like registry APIs in Win32)) -DECLARE_LOG_FUNCTION2(SysError, long lErrCode); - -// debug functions do nothing in release mode -#ifdef __WXDEBUG__ - DECLARE_LOG_FUNCTION(Debug); - - // first king of LogTrace is uncoditional: it doesn't check the level, - DECLARE_LOG_FUNCTION(Trace); - - // this second version will only log the message if the mask had been - // added to the list of masks with AddTraceMask() - DECLARE_LOG_FUNCTION2(Trace, const char *mask); - - // the last one does nothing if all of level bits are not set - // in wxLog::GetActive()->GetTraceMask() - it's deprecated in favour of - // string identifiers - DECLARE_LOG_FUNCTION2(Trace, wxTraceMask mask); -#else //!debug - // these functions do nothing in release builds - inline void wxLogDebug(const wxChar *, ...) { } - inline void wxLogTrace(const wxChar *, ...) { } - inline void wxLogTrace(wxTraceMask, const wxChar *, ...) { } - inline void wxLogTrace(const wxChar *, const wxChar *, ...) { } -#endif // debug/!debug - -// ---------------------------------------------------------------------------- -// debug only logging functions: use them with API name and error code -// ---------------------------------------------------------------------------- - -#ifndef __TFILE__ - #define __XFILE__(x) _T(x) - #define __TFILE__ __XFILE__(__FILE__) -#endif - -#ifdef __WXDEBUG__ - // make life easier for people using VC++ IDE: clicking on the message - // will take us immediately to the place of the failed API -#ifdef __VISUALC__ - #define wxLogApiError(api, rc) \ - wxLogDebug(_T("%s(%d): '%s' failed with error 0x%08lx (%s)."), \ - __TFILE__, __LINE__, api, \ - rc, wxSysErrorMsg(rc)) -#else // !VC++ - #define wxLogApiError(api, rc) \ - wxLogDebug(_T("In file %s at line %d: '%s' failed with " \ - "error 0x%08lx (%s)."), \ - __TFILE__, __LINE__, api, \ - rc, wxSysErrorMsg(rc)) -#endif // VC++/!VC++ - - #define wxLogLastError(api) wxLogApiError(api, wxSysErrorCode()) - -#else //!debug - inline void wxLogApiError(const wxChar *, long) { } - inline void wxLogLastError(const wxChar *) { } -#endif //debug/!debug - -#endif // _WX_LOG_H_ diff --git a/include/wx/longlong.h b/include/wx/longlong.h deleted file mode 100644 index 3d912f8b62..0000000000 --- a/include/wx/longlong.h +++ /dev/null @@ -1,338 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/longlong.h -// Purpose: declaration of wxLongLong class - best implementation of a 64 -// bit integer for the current platform. -// Author: Jeffrey C. Ollie , Vadim Zeitlin -// Remarks: this class is not public in wxWindows 2.0! It is intentionally -// not documented and is for private use only. -// Modified by: -// Created: 10.02.99 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LONGLONG_H -#define _WX_LONGLONG_H - -#ifdef __GNUG__ - #pragma interface "longlong.h" -#endif - -// ---------------------------------------------------------------------------- -// decide upon which class we will use -// ---------------------------------------------------------------------------- - -// to avoid compilation problems on 64bit machines with ambiguous method calls -// we will need this -#undef wxLongLongIsLong - -// NB: we #define and not typedef wxLongLong_t because we want to be able to -// use 'unsigned wxLongLong_t' as well -#if defined(SIZEOF_LONG) && (SIZEOF_LONG == 8) - #define wxLongLong_t long - #define wxLongLongIsLong -#elif defined(__VISUALC__) - #define wxLongLong_t __int64 -#elif defined(__GNUG__) - #define wxLongLong_t long long -#elif defined(__MWERKS__) - #if __option(longlong) - #define wxLongLong_t long long - #else - #error "The 64 bit integer support in CodeWarrior has been disabled." - #error "See the documentation on the 'longlong' pragma." - #endif -#else - #warning "Your compiler does not appear to support 64 bit integers, "\ - "using emulation class instead." - #define wxUSE_LONGLONG_WX 1 -#endif // compiler - -// the user may predefine wxUSE_LONGLONG_NATIVE and/or wxUSE_LONGLONG_NATIVE -// to disable automatic testing (useful for the test program which defines -// both classes) but by default we only use one class -#ifndef wxLongLong_t - #undef wxUSE_LONGLONG_NATIVE - #define wxUSE_LONGLONG_NATIVE 0 - class WXDLLEXPORT wxLongLongWx; - typedef wxLongLongWx wxLongLong; -#endif - -#ifndef wxUSE_LONGLONG_WX - #define wxUSE_LONGLONG_WX 0 - class WXDLLEXPORT wxLongLongNative; - typedef wxLongLongNative wxLongLong; -#endif - -// NB: if both wxUSE_LONGLONG_WX and NATIVE are defined, the user code should -// typedef wxLongLong as it wants, we don't do it - -// ---------------------------------------------------------------------------- -// choose the appropriate class -// ---------------------------------------------------------------------------- - -// we use iostream for wxLongLong output -#include "wx/ioswrap.h" - -#if wxUSE_LONGLONG_NATIVE - -class WXDLLEXPORT wxLongLongNative -{ -public: - // ctors - // default ctor initializes to 0 - wxLongLongNative() { m_ll = 0; } - // from long long - wxLongLongNative(wxLongLong_t ll) { m_ll = ll; } - // from 2 longs - wxLongLongNative(long hi, unsigned long lo) - { - // assign first to avoid precision loss! - m_ll = ((wxLongLong_t) hi) << 32; - m_ll |= (wxLongLong_t) lo; - } - - // default copy ctor is ok in both cases - - // no dtor - - // assignment operators - // from native 64 bit integer - wxLongLongNative& operator=(wxLongLong_t ll) - { m_ll = ll; return *this; } - - // assignment operators from wxLongLongNative is ok - - // accessors - // get high part - long GetHi() const - { return (long)((m_ll & 0xFFFFFFFF00000000l) >> 32); } - // get low part - unsigned long GetLo() const - { return (unsigned long) (m_ll & 0x00000000FFFFFFFFl); } - - // convert to native long long - wxLongLong_t GetValue() const { return m_ll; } - - operator wxLongLong_t() const { return m_ll; } - - // operations - // addition - wxLongLongNative operator+(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll + ll.m_ll); } - wxLongLongNative& operator+=(const wxLongLongNative& ll) - { m_ll += ll.m_ll; return *this; } - - wxLongLongNative operator+(const wxLongLong_t ll) const - { return wxLongLongNative(m_ll + ll); } - wxLongLongNative& operator+=(const wxLongLong_t ll) - { m_ll += ll; return *this; } - - // pre increment - wxLongLongNative& operator++() - { m_ll++; return *this; } - - // post increment - wxLongLongNative& operator++(int) - { m_ll++; return *this; } - - // negation operator - wxLongLongNative operator-() const - { return wxLongLongNative(-m_ll); } - - // subtraction - wxLongLongNative operator-(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll - ll.m_ll); } - wxLongLongNative& operator-=(const wxLongLongNative& ll) - { m_ll -= ll.m_ll; return *this; } - - wxLongLongNative operator-(const wxLongLong_t ll) const - { return wxLongLongNative(m_ll - ll); } - wxLongLongNative& operator-=(const wxLongLong_t ll) - { m_ll -= ll; return *this; } - - // pre decrement - wxLongLongNative& operator--() - { m_ll--; return *this; } - - // post decrement - wxLongLongNative& operator--(int) - { m_ll--; return *this; } - - // shifts - // left shift - wxLongLongNative operator<<(int shift) const - { return wxLongLongNative(m_ll << shift);; } - wxLongLongNative& operator<<=(int shift) - { m_ll <<= shift; return *this; } - - // right shift - wxLongLongNative operator>>(int shift) const - { return wxLongLongNative(m_ll >> shift);; } - wxLongLongNative& operator>>=(int shift) - { m_ll >>= shift; return *this; } - - // bitwise operators - wxLongLongNative operator&(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll & ll.m_ll); } - wxLongLongNative& operator&=(const wxLongLongNative& ll) - { m_ll &= ll.m_ll; return *this; } - - wxLongLongNative operator|(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll | ll.m_ll); } - wxLongLongNative& operator|=(const wxLongLongNative& ll) - { m_ll |= ll.m_ll; return *this; } - - wxLongLongNative operator^(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll ^ ll.m_ll); } - wxLongLongNative& operator^=(const wxLongLongNative& ll) - { m_ll ^= ll.m_ll; return *this; } - - // multiplication/division TODO - wxLongLongNative operator*(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll * ll.m_ll); } - wxLongLongNative& operator*=(const wxLongLongNative& ll) - { m_ll *= ll.m_ll; return *this; } - - wxLongLongNative operator/(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll / ll.m_ll); } - wxLongLongNative& operator/=(const wxLongLongNative& ll) - { m_ll /= ll.m_ll; return *this; } - - wxLongLongNative operator%(const wxLongLongNative& ll) const - { return wxLongLongNative(m_ll % ll.m_ll); } - - // comparison - bool operator==(const wxLongLongNative& ll) const - { return m_ll == ll.m_ll; } - bool operator!=(const wxLongLongNative& ll) const - { return m_ll != ll.m_ll; } - bool operator<(const wxLongLongNative& ll) const - { return m_ll < ll.m_ll; } - bool operator>(const wxLongLongNative& ll) const - { return m_ll > ll.m_ll; } - bool operator<=(const wxLongLongNative& ll) const - { return m_ll <= ll.m_ll; } - bool operator>=(const wxLongLongNative& ll) const - { return m_ll >= ll.m_ll; } - - // miscellaneous - // conversion to byte array: returns a pointer to static buffer! - void *asArray() const; - - // input/output - friend ostream& operator<<(ostream&, const wxLongLongNative&); - -private: - wxLongLong_t m_ll; -}; - -#endif // wxUSE_LONGLONG_NATIVE - -#if wxUSE_LONGLONG_WX - -class WXDLLEXPORT wxLongLongWx -{ -public: - // ctors - // default ctor initializes to 0 - wxLongLongWx() { m_lo = m_hi = 0; } - // from long - wxLongLongWx(long l) - { m_lo = l; m_hi = (l < 0 ? -1l : 0l); } - // from 2 longs - wxLongLongWx(long hi, unsigned long lo) - { m_hi = hi; m_lo = lo; } - - // default copy ctor is ok in both cases - - // no dtor - - // assignment operators - // from long - wxLongLongWx& operator=(long l) - { m_lo = l; m_hi = (l < 0 ? -1l : 0l); return *this; } - // can't have assignment operator from 2 longs - - // accessors - // get high part - long GetHi() const { return m_hi; } - // get low part - unsigned long GetLo() const { return m_lo; } - - // operations - // addition - wxLongLongWx operator+(const wxLongLongWx& ll) const; - wxLongLongWx& operator+=(const wxLongLongWx& ll); - wxLongLongWx operator+(long l) const; - wxLongLongWx& operator+=(long l); - - // pre increment operator - wxLongLongWx& operator++(); - - // post increment operator - wxLongLongWx& operator++(int); - - // negation operator - wxLongLongWx operator-() const; - - // subraction - wxLongLongWx operator-(const wxLongLongWx& ll) const; - wxLongLongWx& operator-=(const wxLongLongWx& ll); - - // pre decrement operator - wxLongLongWx& operator--(); - - // post decrement operator - wxLongLongWx& operator--(int); - - // shifts - // left shift - wxLongLongWx operator<<(int shift) const; - wxLongLongWx& operator<<=(int shift); - - // right shift - wxLongLongWx operator>>(int shift) const; - wxLongLongWx& operator>>=(int shift); - - // bitwise operators - wxLongLongWx operator&(const wxLongLongWx& ll) const; - wxLongLongWx& operator&=(const wxLongLongWx& ll); - wxLongLongWx operator|(const wxLongLongWx& ll) const; - wxLongLongWx& operator|=(const wxLongLongWx& ll); - wxLongLongWx operator^(const wxLongLongWx& ll) const; - wxLongLongWx& operator^=(const wxLongLongWx& ll); - wxLongLongWx operator~() const; - - // comparison - bool operator==(const wxLongLongWx& ll) const; - bool operator!=(const wxLongLongWx& ll) const; - bool operator<(const wxLongLongWx& ll) const; - bool operator>(const wxLongLongWx& ll) const; - bool operator<=(const wxLongLongWx& ll) const; - bool operator>=(const wxLongLongWx& ll) const; - - // multiplication - wxLongLongWx operator*(const wxLongLongWx& ll) const; - wxLongLongWx& operator*=(const wxLongLongWx& ll); - void *asArray(void) const; - - // division - void Divide(const wxLongLongWx& divisor, - wxLongLongWx& quotient, - wxLongLongWx& remainder) const; - - // input/output - friend ostream& operator<<(ostream&, const wxLongLongWx&); - -private: - // long is at least 32 bits, so represent our 64bit number as 2 longs - - long m_hi; // signed bit is in the high part - unsigned long m_lo; -}; - -#endif // wxUSE_LONGLONG_WX - -#endif // _WX_LONGLONG_H diff --git a/include/wx/mac/accel.h b/include/wx/mac/accel.h deleted file mode 100644 index ec39737483..0000000000 --- a/include/wx/mac/accel.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.h -// Purpose: wxAcceleratorTable class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_ -#define _WX_ACCEL_H_ - -#ifdef __GNUG__ -#pragma interface "accel.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" - -class WXDLLEXPORT wxAcceleratorTable; - -// Hold Ctrl key down -#define wxACCEL_ALT 0x01 - -// Hold Ctrl key down -#define wxACCEL_CTRL 0x02 - - // Hold Shift key down -#define wxACCEL_SHIFT 0x04 - - // Hold no key down -#define wxACCEL_NORMAL 0x00 - -class WXDLLEXPORT wxAcceleratorEntry -{ -public: - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { - m_flags = flags; m_keyCode = keyCode; m_command = cmd; - } - - inline void Set(int flags, int keyCode, int cmd) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline int GetFlags() const { return m_flags; } - inline int GetKeyCode() const { return m_keyCode; } - inline int GetCommand() const { return m_command; } - - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -class WXDLLEXPORT wxAcceleratorTable: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxAcceleratorTable) -public: - wxAcceleratorTable(); - wxAcceleratorTable(const wxString& resource); // Load from .rc resource - wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array - - // Copy constructors - inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); } - inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); } - - ~wxAcceleratorTable(); - - inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; } - inline bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; } - inline bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; } - - bool Ok() const; -}; - -WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable; - -#endif - // _WX_ACCEL_H_ diff --git a/include/wx/mac/app.h b/include/wx/mac/app.h deleted file mode 100644 index 02ed040e88..0000000000 --- a/include/wx/mac/app.h +++ /dev/null @@ -1,173 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#ifdef __GNUG__ -#pragma interface "app.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" -#include "wx/event.h" - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 - -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; - -// Force an exit from main loop -void WXDLLEXPORT wxExit(); - -// Yield to other apps/messages -bool WXDLLEXPORT wxYield(); - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLEXPORT wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - wxApp(); - inline ~wxApp() {} - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - void OnIdle(wxIdleEvent& event); - -// Generic - virtual bool OnInit() { return FALSE; }; - - // No specific tasks to do here. - virtual bool OnInitGui() { return TRUE; } - - // Called to set off the main loop - virtual int OnRun() { return MainLoop(); }; - virtual int OnExit() { return 0; } - - inline void SetPrintMode(int mode) { m_printMode = mode; } - inline int GetPrintMode() const { return m_printMode; } - - inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - inline wxString GetAppName() const { - if (m_appName != "") - return m_appName; - else return m_className; - } - - inline void SetAppName(const wxString& name) { m_appName = name; }; - inline wxString GetClassName() const { return m_className; } - inline void SetClassName(const wxString& name) { m_className = name; } - - void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } - const wxString& GetVendorName() const { return m_vendorName; } - - wxWindow *GetTopWindow() const ; - inline void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; } - inline bool GetWantDebugOutput() { return m_wantDebugOutput; } - - // Send idle event to all top-level windows. - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(); - - // Send idle event to window and all subwindows - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(wxWindow* win); - - // Windows only, but for compatibility... - inline void SetAuto3D(bool flag) { m_auto3D = flag; } - inline bool GetAuto3D() const { return m_auto3D; } - - // Creates a log object - virtual wxLog* CreateLogTarget(); - -public: - // Will always be set to the appropriate, main-style values. - int argc; - char ** argv; - -protected: - bool m_wantDebugOutput ; - wxString m_className; - wxString m_appName, - m_vendorName; - wxWindow * m_topWindow; - bool m_exitOnFrameDelete; - bool m_showOnInit; - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except - // where overriden - static wxAppInitializerFunction m_appInitFn; - -public: - - // Implementation - static bool Initialize(); - static void CleanUp(); - - void DeletePendingObjects(); - bool ProcessIdle(); - -public: - static long sm_lastMessageTime; - int m_nCmdShow; - -protected: - bool m_keepGoing ; - -// mac specifics - -public : - - void MacDoOneEvent() ; - - void MacHandleOneEvent( EventRecord *ev ) ; - void MacHandleNullEvent( EventRecord *ev ) ; - void MacHandleHighLevelEvent( EventRecord *ev ) ; - void MacHandleMouseDownEvent( EventRecord *ev ) ; - void MacHandleMouseUpEvent( EventRecord *ev ) ; - void MacHandleKeyDownEvent( EventRecord *ev ) ; - void MacHandleKeyUpEvent( EventRecord *ev ) ; - void MacHandleAutoKeyEvent( EventRecord *ev ) ; - void MacHandleActivateEvent( EventRecord *ev ) ; - void MacHandleUpdateEvent( EventRecord *ev ) ; - void MacHandleDiskEvent( EventRecord *ev ) ; - void MacHandleOSEvent( EventRecord *ev ) ; - - - -DECLARE_EVENT_TABLE() -}; - -// TODO: add platform-specific arguments -int WXDLLEXPORT wxEntry( int argc, char *argv[] ); - -#endif - // _WX_APP_H_ - diff --git a/include/wx/mac/bitmap.h b/include/wx/mac/bitmap.h deleted file mode 100644 index 1d2f5417e5..0000000000 --- a/include/wx/mac/bitmap.h +++ /dev/null @@ -1,197 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: wxBitmap class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#ifdef __GNUG__ -#pragma interface "bitmap.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" -#include "wx/palette.h" - -// Bitmap -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxBitmapHandler; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxCursor; - -// A mask is a mono bitmap used for drawing bitmaps -// transparently. -class WXDLLEXPORT wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(); - - // Construct a mask from a bitmap and a colour indicating - // the transparent area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating - // the transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - -/* TODO: platform-specific data access - // Implementation - inline WXHBITMAP GetMaskBitmap() const { return m_maskBitmap; } - inline void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; } -protected: - WXHBITMAP m_maskBitmap; -*/ -}; - -class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; - friend class WXDLLEXPORT wxCursor; -public: - wxBitmapRefData(); - ~wxBitmapRefData(); - -public: - int m_width; - int m_height; - int m_depth; - bool m_ok; - int m_numColors; - wxPalette m_bitmapPalette; - int m_quality; - -/* WXHBITMAP m_hBitmap; TODO: platform-specific handle */ - wxMask * m_bitmapMask; // Optional mask -}; - -#define M_BITMAPDATA ((wxBitmapRefData *)m_refData) - -class WXDLLEXPORT wxBitmapHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmapHandler) -public: - wxBitmapHandler() { m_name = ""; m_extension = ""; m_type = 0; }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); - - inline void SetName(const wxString& name) { m_name = name; } - inline void SetExtension(const wxString& ext) { m_extension = ext; } - inline void SetType(long type) { m_type = type; } - inline wxString GetName() const { return m_name; } - inline wxString GetExtension() const { return m_extension; } - inline long GetType() const { return m_type; } -protected: - wxString m_name; - wxString m_extension; - long m_type; -}; - -#define M_BITMAPHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData()) - -class WXDLLEXPORT wxBitmap: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - - friend class WXDLLEXPORT wxBitmapHandler; - -public: - wxBitmap(); // Platform-specific - - // Copy constructors - inline wxBitmap(const wxBitmap& bitmap) - { Ref(bitmap); if ( wxTheBitmapList ) wxTheBitmapList->AddBitmap(this); } - - // Initialize with raw data. - wxBitmap(const char bits[], int width, int height, int depth = 1); - -/* TODO: maybe implement XPM reading - // Initialize with XPM data - wxBitmap(const char **data); -*/ - - // Load a file or resource - // TODO: make default type whatever's appropriate for the platform. - wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - - // Constructor for generalised creation from data - wxBitmap(void *data, long type, int width, int height, int depth = 1); - - // If depth is omitted, will create a bitmap compatible with the display - wxBitmap(int width, int height, int depth = -1); - ~wxBitmap(); - - virtual bool Create(int width, int height, int depth = -1); - virtual bool Create(void *data, long type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL); - - inline bool Ok() const { return (M_BITMAPDATA && M_BITMAPDATA->m_ok); } - inline int GetWidth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_width : 0); } - inline int GetHeight() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_height : 0); } - inline int GetDepth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_depth : 0); } - inline int GetQuality() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_quality : 0); } - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetQuality(int q); - void SetOk(bool isOk); - - inline wxPalette* GetPalette() const { return (M_BITMAPDATA ? (& M_BITMAPDATA->m_bitmapPalette) : (wxPalette*) NULL); } - void SetPalette(const wxPalette& palette); - - inline wxMask *GetMask() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_bitmapMask : (wxMask*) NULL); } - void SetMask(wxMask *mask) ; - - inline wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; } - inline bool operator == (const wxBitmap& bitmap) { return m_refData == bitmap.m_refData; } - inline bool operator != (const wxBitmap& bitmap) { return m_refData != bitmap.m_refData; } - - // Format handling - static inline wxList& GetHandlers() { return sm_handlers; } - static void AddHandler(wxBitmapHandler *handler); - static void InsertHandler(wxBitmapHandler *handler); - static bool RemoveHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& extension, long bitmapType); - static wxBitmapHandler *FindHandler(long bitmapType); - - static void InitStandardHandlers(); - static void CleanUpHandlers(); -protected: - static wxList sm_handlers; - -/* - // TODO: Implementation -public: - void SetHBITMAP(WXHBITMAP bmp); - inline WXHBITMAP GetHBITMAP() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_hBitmap : 0); } - bool FreeResource(bool force = FALSE); -*/ - -}; -#endif - // _WX_BITMAP_H_ diff --git a/include/wx/mac/bmpbuttn.h b/include/wx/mac/bmpbuttn.h deleted file mode 100644 index defe39e438..0000000000 --- a/include/wx/mac/bmpbuttn.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTN_H_ -#define _WX_BMPBUTTN_H_ - -#ifdef __GNUG__ -#pragma interface "bmpbuttn.h" -#endif - -#include "wx/button.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -#define wxDEFAULT_BUTTON_MARGIN 4 - -class WXDLLEXPORT wxBitmapButton: public wxButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - public: - inline wxBitmapButton() { m_marginX = wxDEFAULT_BUTTON_MARGIN; m_marginY = wxDEFAULT_BUTTON_MARGIN; } - inline wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetLabel(const wxBitmap& bitmap) - { - SetBitmapLabel(bitmap); - } - - virtual void SetBitmapLabel(const wxBitmap& bitmap); - - inline wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_buttonBitmap; } - inline wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_buttonBitmapSelected; } - inline wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_buttonBitmapFocus; } - inline wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_buttonBitmapDisabled; } - - inline void SetBitmapSelected(const wxBitmap& sel) { m_buttonBitmapSelected = sel; }; - inline void SetBitmapFocus(const wxBitmap& focus) { m_buttonBitmapFocus = focus; }; - inline void SetBitmapDisabled(const wxBitmap& disabled) { m_buttonBitmapDisabled = disabled; }; - - inline void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } - inline int GetMarginX() { return m_marginX; } - inline int GetMarginY() { return m_marginY; } - -/* - // TODO: Implementation - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg ); -*/ - - protected: - wxBitmap m_buttonBitmap; - wxBitmap m_buttonBitmapSelected; - wxBitmap m_buttonBitmapFocus; - wxBitmap m_buttonBitmapDisabled; - int m_marginX; - int m_marginY; -}; - -#endif - // _WX_BMPBUTTN_H_ diff --git a/include/wx/mac/brush.h b/include/wx/mac/brush.h deleted file mode 100644 index a0a1bd7471..0000000000 --- a/include/wx/mac/brush.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: wxBrush class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -#ifdef __GNUG__ -#pragma interface "brush.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -class WXDLLEXPORT wxBrush; - -class WXDLLEXPORT wxBrushRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBrush; -public: - wxBrushRefData(); - wxBrushRefData(const wxBrushRefData& data); - ~wxBrushRefData(); - -protected: - int m_style; - wxBitmap m_stipple ; - wxColour m_colour; - -/* TODO: implementation - WXHBRUSH m_hBrush; -*/ -}; - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -// Brush -class WXDLLEXPORT wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - -public: - wxBrush(); - wxBrush(const wxColour& col, int style); - wxBrush(const wxBitmap& stipple); - inline wxBrush(const wxBrush& brush) { Ref(brush); } - ~wxBrush(); - - virtual void SetColour(const wxColour& col) ; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - virtual void SetStyle(int style) ; - virtual void SetStipple(const wxBitmap& stipple) ; - - inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; } - inline bool operator == (const wxBrush& brush) { return m_refData == brush.m_refData; } - inline bool operator != (const wxBrush& brush) { return m_refData != brush.m_refData; } - - inline wxColour& GetColour() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); }; - inline int GetStyle() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); }; - inline wxBitmap *GetStipple() const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); }; - - virtual bool Ok() const { return (m_refData != NULL) ; } - -// Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_BRUSH_H_ diff --git a/include/wx/mac/button.h b/include/wx/mac/button.h deleted file mode 100644 index 68b67d8c96..0000000000 --- a/include/wx/mac/button.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: wxButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUTTON_H_ -#define _WX_BUTTON_H_ - -#ifdef __GNUG__ -#pragma interface "button.h" -#endif - -#include "wx/control.h" -#include "wx/gdicmn.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -// Pushbutton -class WXDLLEXPORT wxButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxButton) - public: - inline wxButton() {} - inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetDefault(); - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - virtual void Command(wxCommandEvent& event); -}; - -#endif - // _WX_BUTTON_H_ diff --git a/include/wx/mac/checkbox.h b/include/wx/mac/checkbox.h deleted file mode 100644 index 8bf41d9958..0000000000 --- a/include/wx/mac/checkbox.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: wxCheckBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_ -#define _WX_CHECKBOX_H_ - -#ifdef __GNUG__ -#pragma interface "checkbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxCheckBoxNameStr; - -// Checkbox item (single checkbox) -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxCheckBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxCheckBox) - - public: - inline wxCheckBox() { } - inline wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxString& label); - virtual void Command(wxCommandEvent& event); -}; - -class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox -{ - DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox) - - public: - int checkWidth ; - int checkHeight ; - - inline wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; } - inline wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxBitmap *bitmap); -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/include/wx/mac/checklst.h b/include/wx/mac/checklst.h deleted file mode 100644 index fd6ad64785..0000000000 --- a/include/wx/mac/checklst.h +++ /dev/null @@ -1,49 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.h -// Purpose: wxCheckListBox class - a listbox with checkable items -// Note: this is an optional class. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKLST_H_ -#define _WX_CHECKLST_H_ - -#ifdef __GNUG__ -#pragma interface "checklst.h" -#endif - -#include "wx/listbox.h" - -#ifndef __MWERKS__ -typedef unsigned int size_t; -#endif - -class wxCheckListBox : public wxListBox -{ - DECLARE_DYNAMIC_CLASS(wxCheckListBox) -public: - // ctors - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - // items may be checked - bool IsChecked(size_t uiIndex) const; - void Check(size_t uiIndex, bool bCheck = TRUE); - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CHECKLST_H_ diff --git a/include/wx/mac/choice.h b/include/wx/mac/choice.h deleted file mode 100644 index 7f360ed5cc..0000000000 --- a/include/wx/mac/choice.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: wxChoice class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -#ifdef __GNUG__ -#pragma interface "choice.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxChoiceNameStr; - -// Choice item -class WXDLLEXPORT wxChoice: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - - public: - inline wxChoice() { m_noStrings = 0; } - - inline wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - - virtual inline int Number() const { return m_noStrings; } - virtual void Command(wxCommandEvent& event); - - virtual inline void SetColumns(int WXUNUSED(n) = 1 ) { /* No effect */ } ; - virtual inline int GetColumns() const { return 1 ; }; - -protected: - int m_noStrings; -}; - -#endif - // _WX_CHOICE_H_ diff --git a/include/wx/mac/clipbrd.h b/include/wx/mac/clipbrd.h deleted file mode 100644 index 697dc9d939..0000000000 --- a/include/wx/mac/clipbrd.h +++ /dev/null @@ -1,104 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.h -// Purpose: Clipboard functionality. -// Note: this functionality is under review, and -// is derived from wxWindows 1.xx code. Please contact -// the wxWindows developers for further information. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_ -#define _WX_CLIPBRD_H_ - -#ifdef __GNUG__ -#pragma interface "clipbrd.h" -#endif - -#include "wx/defs.h" -#include "wx/setup.h" - -#include "wx/list.h" - -bool WXDLLEXPORT wxOpenClipboard(); -bool WXDLLEXPORT wxClipboardOpen(); -bool WXDLLEXPORT wxCloseClipboard(); -bool WXDLLEXPORT wxEmptyClipboard(); -bool WXDLLEXPORT wxIsClipboardFormatAvailable(int dataFormat); -bool WXDLLEXPORT wxSetClipboardData(int dataFormat, wxObject *obj, int width = 0, int height = 0); -wxObject* WXDLLEXPORT wxGetClipboardData(int dataFormat, long *len = NULL); -int WXDLLEXPORT wxEnumClipboardFormats(int dataFormat); -int WXDLLEXPORT wxRegisterClipboardFormat(char *formatName); -bool WXDLLEXPORT wxGetClipboardFormatName(int dataFormat, char *formatName, int maxCount); - -/* A clipboard client holds data belonging to the clipboard. - For plain text, a client is not necessary. */ -class WXDLLEXPORT wxClipboardClient : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxClipboardClient) - - public: - /* This list should be filled in with strings indicating the formats - this client can provide. Almost all clients will provide "TEXT". - Format names should be 4 characters long, so things will work - out on the Macintosh */ - wxStringList formats; - - /* This method is called when the client is losing the selection. */ - virtual void BeingReplaced() = 0; - - /* This method is called when someone wants the data this client is - supplying to the clipboard. "format" is a string indicating the - format of the data - one of the strings from the "formats" - list. "*size" should be filled with the size of the resulting - data. In the case of text, "*size" does not count the - NULL terminator. */ - virtual char *GetData(char *format, long *size) = 0; -}; - -/* ONE instance of this class: */ -class WXDLLEXPORT wxClipboard : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - - public: - wxClipboardClient *clipOwner; - char *cbString, *sentString, *receivedString; - void *receivedTargets; - long receivedLength; - - wxClipboard(); - ~wxClipboard(); - - /* Set the clipboard data owner. "time" comes from the event record. */ - void SetClipboardClient(wxClipboardClient *, long time); - - /* Set the clipboard string; does not require a client. */ - void SetClipboardString(char *, long time); - - /* Get data from the clipboard in the format "TEXT". */ - char *GetClipboardString(long time); - - /* Get data from the clipboard */ - char *GetClipboardData(char *format, long *length, long time); - - /* Get the clipboard client directly. Will be NULL if clipboard data - is a string, or if some other application owns the clipboard. - This can be useful for shortcutting data translation, if the - clipboard user can check for a specific client. (This is used - by the wxMediaEdit class.) */ - wxClipboardClient *GetClipboardClient(); -}; - -/* Initialize wxTheClipboard. Can be called repeatedly */ -void WXDLLEXPORT wxInitClipboard(); - -/* The clipboard */ -WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard; - -#endif - // _WX_CLIPBRD_H_ diff --git a/include/wx/mac/colordlg.h b/include/wx/mac/colordlg.h deleted file mode 100644 index 556c2f316e..0000000000 --- a/include/wx/mac/colordlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.h -// Purpose: wxColourDialog class. Use generic version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLG_H_ -#define _WX_COLORDLG_H_ - -#ifdef __GNUG__ -#pragma interface "colordlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * Platform-specific colour dialog implementation - */ - -class WXDLLEXPORT wxColourDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxColourDialog) -public: - wxColourDialog(); - wxColourDialog(wxWindow *parent, wxColourData *data = NULL); - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - int ShowModal(); - wxColourData& GetColourData() { return m_colourData; } - -protected: - wxColourData m_colourData; - wxWindow* m_dialogParent; -}; - -#endif - // _WX_COLORDLG_H_ diff --git a/include/wx/mac/colour.h b/include/wx/mac/colour.h deleted file mode 100644 index 16ffdac9aa..0000000000 --- a/include/wx/mac/colour.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_ -#define _WX_COLOUR_H_ - -#ifdef __GNUG__ -#pragma interface "colour.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" - -// Colour -class WXDLLEXPORT wxColour: public wxObject -{ -public: - // ctors - // default - wxColour(); - // from RGB - wxColour( unsigned char red, unsigned char green, unsigned char blue ); - // implicit conversion from the colour name - wxColour( const wxString &colourName ) { InitFromName(colourName); } - wxColour( const char *colourName ) { InitFromName(colourName); } - - // copy ctors and assignment operators - wxColour( const wxColour& col ); - wxColour( const wxColour* col ); - wxColour& operator = ( const wxColour& col ); - - // dtor - ~wxColour(); - - // Set() functions - void Set( unsigned char red, unsigned char green, unsigned char blue ); - void Set( unsigned long colRGB ) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((unsigned char)colRGB, - (unsigned char)(colRGB >> 8), - (unsigned char)(colRGB >> 16)); - } - - // accessors - bool Ok() const {return m_isInit; } - - // Let's remove this inelegant function -#if WXWIN_COMPATIBILITY - void Get(unsigned char *r, unsigned char *g, unsigned char *b) const; -#endif - - unsigned char Red() const { return m_red; } - unsigned char Green() const { return m_green; } - unsigned char Blue() const { return m_blue; } - - // comparison - bool operator == (const wxColour& colour) - { - return (m_red == colour.m_red && - m_green == colour.m_green && - m_blue == colour.m_blue); - } - bool operator != (const wxColour& colour) { return !(*this == colour); } - - void InitFromName(const wxString& col); - -/* TODO - WXCOLORREF GetPixel() const { return m_pixel; }; -*/ - -private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - -public: - /* TODO: implementation - WXCOLORREF m_pixel ; - */ - -private: - DECLARE_DYNAMIC_CLASS(wxColour) -}; - -#endif - // _WX_COLOUR_H_ diff --git a/include/wx/mac/combobox.h b/include/wx/mac/combobox.h deleted file mode 100644 index 07054af74e..0000000000 --- a/include/wx/mac/combobox.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/choice.h" - -WXDLLEXPORT_DATA(extern const char*) wxComboBoxNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Combobox item -class WXDLLEXPORT wxComboBox: public wxChoice -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - - public: - inline wxComboBox() {} - - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - // List functions - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - virtual inline int Number() const { return m_noStrings; } - - // Text field functions - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); -}; - -#endif - // _WX_COMBOBOX_H_ diff --git a/include/wx/mac/control.h b/include/wx/mac/control.h deleted file mode 100644 index c75756a72a..0000000000 --- a/include/wx/mac/control.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -#ifdef __GNUG__ -#pragma interface "control.h" -#endif - -#include "wx/window.h" -#include "wx/list.h" -#include "wx/validate.h" - -// General item class -class WXDLLEXPORT wxControl: public wxWindow -{ - DECLARE_ABSTRACT_CLASS(wxControl) -public: - wxControl(); - ~wxControl(); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; // Simulates an event - virtual void ProcessCommand(wxCommandEvent& event); // Calls the callback and - // appropriate event handlers - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - - // Places item in centre of panel - so can't be used BEFORE panel->Fit() - void Centre(int direction = wxHORIZONTAL); - inline void Callback(const wxFunction function) { m_callback = function; }; // Adds callback - - inline wxFunction GetCallback() { return m_callback; } - -protected: - wxFunction m_callback; // Callback associated with the window - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CONTROL_H_ diff --git a/include/wx/mac/cursor.h b/include/wx/mac/cursor.h deleted file mode 100644 index bc6397069f..0000000000 --- a/include/wx/mac/cursor.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -#ifdef __GNUG__ -#pragma interface "cursor.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxCursorRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxCursor; -public: - wxCursorRefData(); - ~wxCursorRefData(); - -protected: -/* TODO: implementation - WXHCURSOR m_hCursor; -*/ -}; - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) -#define M_CURSORHANDLERDATA ((wxCursorRefData *)bitmap->m_refData) - -// Cursor -class WXDLLEXPORT wxCursor: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - -public: - wxCursor(); - - // Copy constructors - inline wxCursor(const wxCursor& cursor) { Ref(cursor); } - - wxCursor(const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1, - const char maskBits[] = NULL); - - /* TODO: make default type suit platform */ - wxCursor(const wxString& name, long flags = wxBITMAP_TYPE_CUR_RESOURCE, - int hotSpotX = 0, int hotSpotY = 0); - - wxCursor(int cursor_type); - ~wxCursor(); - - // TODO: also verify the internal cursor handle - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline wxCursor& operator = (const wxCursor& cursor) { if (*this == cursor) return (*this); Ref(cursor); return *this; } - inline bool operator == (const wxCursor& cursor) { return m_refData == cursor.m_refData; } - inline bool operator != (const wxCursor& cursor) { return m_refData != cursor.m_refData; } - -/* TODO: implementation - void SetHCURSOR(WXHCURSOR cursor); - inline WXHCURSOR GetHCURSOR() const { return (M_CURSORDATA ? M_CURSORDATA->m_hCursor : 0); } -*/ -}; - -extern WXDLLEXPORT void wxSetCursor(const wxCursor& cursor); - -#endif - // _WX_CURSOR_H_ diff --git a/include/wx/mac/dc.h b/include/wx/mac/dc.h deleted file mode 100644 index ce3e9998d1..0000000000 --- a/include/wx/mac/dc.h +++ /dev/null @@ -1,374 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_ -#define _WX_DC_H_ - -#ifdef __GNUG__ -#pragma interface "dc.h" -#endif - -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/icon.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#ifndef MM_TEXT -#define MM_TEXT 0 -#define MM_ISOTROPIC 1 -#define MM_ANISOTROPIC 2 -#define MM_LOMETRIC 3 -#define MM_HIMETRIC 4 -#define MM_TWIPS 5 -#define MM_POINTS 6 -#define MM_METRIC 7 -#endif - -//----------------------------------------------------------------------------- -// global variables -//----------------------------------------------------------------------------- - -extern int wxPageNumber; - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDC: public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxDC) - - public: - - wxDC(void); - ~wxDC(void); - - void BeginDrawing(void) {}; - void EndDrawing(void) {}; - - virtual bool Ok(void) const { return m_ok; }; - - virtual void FloodFill( long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE ) = 0; - inline void FloodFill(const wxPoint& pt, const wxColour& col, int style=wxFLOOD_SURFACE) - { - FloodFill(pt.x, pt.y, col, style); - } - - virtual bool GetPixel( long x1, long y1, wxColour *col ) const = 0; - inline bool GetPixel(const wxPoint& pt, wxColour *col) const - { - return GetPixel(pt.x, pt.y, col); - } - - virtual void DrawLine( long x1, long y1, long x2, long y2 ) = 0; - inline void DrawLine(const wxPoint& pt1, const wxPoint& pt2) - { - DrawLine(pt1.x, pt1.y, pt2.x, pt2.y); - } - - virtual void CrossHair( long x, long y ) = 0; - inline void CrossHair(const wxPoint& pt) - { - CrossHair(pt.x, pt.y); - } - - virtual void DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) = 0; - inline void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre) - { - DrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); - } - - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) = 0; - virtual void DrawEllipticArc (const wxPoint& pt, const wxSize& sz, double sa, double ea) - { - DrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); - } - - virtual void DrawPoint( long x, long y ) = 0; - virtual void DrawPoint( wxPoint& point ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ) = 0; - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ) = 0; - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ) = 0; - inline void DrawRectangle(const wxPoint& pt, const wxSize& sz) - { - DrawRectangle(pt.x, pt.y, sz.x, sz.y); - } - inline void DrawRectangle(const wxRect& rect) - { - DrawRectangle(rect.x, rect.y, rect.width, rect.height); - } - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ) = 0; - inline void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, double radius = 20.0) - { - DrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius); - } - inline void DrawRoundedRectangle(const wxRect& rect, double radius = 20.0) - { - DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, radius); - } - - virtual void DrawEllipse( long x, long y, long width, long height ) = 0; - inline void DrawEllipse(const wxPoint& pt, const wxSize& sz) - { - DrawEllipse(pt.x, pt.y, sz.x, sz.y); - } - inline void DrawEllipse(const wxRect& rect) - { - DrawEllipse(rect.x, rect.y, rect.width, rect.height); - } - - virtual void DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ); - virtual void DrawSpline( wxList *points ) = 0; - virtual void DrawSpline( int n, wxPoint points[] ); - - virtual bool CanDrawBitmap(void) const = 0; - - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - inline void DrawIcon(const wxIcon& icon, const wxPoint& pt) - { - DrawIcon(icon, pt.x, pt.y); - } - - // TODO DrawBitmap is not always the same as DrawIcon, especially if bitmaps and - // icons are implemented differently. - void DrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask=FALSE ) - { DrawIcon( *((wxIcon*)(&bmp)), x, y, useMask ); } - - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ) = 0; - inline bool Blit(const wxPoint& destPt, const wxSize& sz, - wxDC *source, const wxPoint& srcPt, int rop = wxCOPY, bool useMask = FALSE) - { - return Blit(destPt.x, destPt.y, sz.x, sz.y, source, srcPt.x, srcPt.y, rop, useMask); - } - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ) = 0; - inline void DrawText(const wxString& text, const wxPoint& pt, bool use16bit = FALSE) - { - DrawText(text, pt.x, pt.y, use16bit); - } - - virtual bool CanGetTextExtent(void) const = 0; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16 = FALSE ) = 0; - virtual long GetCharWidth(void) = 0; - virtual long GetCharHeight(void) = 0; - - virtual void Clear(void) = 0; - - virtual void SetFont( const wxFont &font ) = 0; - virtual wxFont& GetFont(void) const { return (wxFont&) m_font; }; - - virtual void SetPen( const wxPen &pen ) = 0; - virtual wxPen& GetPen(void) const { return (wxPen&) m_pen; }; - - virtual void SetBrush( const wxBrush &brush ) = 0; - virtual wxBrush& GetBrush(void) const { return (wxBrush&) m_brush; }; - - virtual void SetBackground( const wxBrush &brush ) = 0; - virtual wxBrush& GetBackground(void) const { return (wxBrush&) m_backgroundBrush; }; - - virtual void SetLogicalFunction( int function ) = 0; - virtual int GetLogicalFunction(void) const { return m_logicalFunction; }; - - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual wxColour& GetTextBackground(void) const { return (wxColour&)m_textBackgroundColour; }; - virtual wxColour& GetTextForeground(void) const { return (wxColour&)m_textForegroundColour; }; - - virtual void SetBackgroundMode( int mode ) = 0; - virtual int GetBackgroundMode(void) const { return m_backgroundMode; }; - - virtual void SetPalette( const wxPalette& palette ) = 0; - void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }; - - // the first two must be overridden and called - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(void); - virtual void GetClippingBox( long *x, long *y, long *width, long *height ) const; - - virtual inline long MinX(void) const { return m_minX; } - virtual inline long MaxX(void) const { return m_maxX; } - virtual inline long MinY(void) const { return m_minY; } - virtual inline long MaxY(void) const { return m_maxY; } - - virtual void GetSize( int* width, int* height ) const; - inline wxSize GetSize(void) const { int w, h; GetSize(&w, &h); return wxSize(w, h); } - virtual void GetSizeMM( long* width, long* height ) const; - - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; }; - virtual void EndDoc(void) {}; - virtual void StartPage(void) {}; - virtual void EndPage(void) {}; - - virtual void SetMapMode( int mode ); - virtual int GetMapMode(void) const { return m_mappingMode; }; - - virtual void SetUserScale( double x, double y ); - virtual void GetUserScale( double *x, double *y ); - virtual void SetLogicalScale( double x, double y ); - virtual void GetLogicalScale( double *x, double *y ); - - virtual void SetLogicalOrigin( long x, long y ); - virtual void GetLogicalOrigin( long *x, long *y ); - virtual void SetDeviceOrigin( long x, long y ); - virtual void GetDeviceOrigin( long *x, long *y ); - virtual void SetInternalDeviceOrigin( long x, long y ); - virtual void GetInternalDeviceOrigin( long *x, long *y ); - - virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - - virtual void SetOptimization( bool WXUNUSED(optimize) ) {}; - virtual bool GetOptimization(void) { return m_optimize; }; - - virtual long DeviceToLogicalX(long x) const; - virtual long DeviceToLogicalY(long y) const; - virtual long DeviceToLogicalXRel(long x) const; - virtual long DeviceToLogicalYRel(long y) const; - virtual long LogicalToDeviceX(long x) const; - virtual long LogicalToDeviceY(long y) const; - virtual long LogicalToDeviceXRel(long x) const; - virtual long LogicalToDeviceYRel(long y) const; - - public: - - void CalcBoundingBox( long x, long y ); - void ComputeScaleAndOrigin(void); - - long XDEV2LOG(long x) const - { - long new_x = x - m_deviceOriginX; - if (new_x > 0) - return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; - } - long XDEV2LOGREL(long x) const - { - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); - } - long YDEV2LOG(long y) const - { - long new_y = y - m_deviceOriginY; - if (new_y > 0) - return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; - } - long YDEV2LOGREL(long y) const - { - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); - } - long XLOG2DEV(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX; - } - long XLOG2DEVREL(long x) const - { - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); - } - long YLOG2DEV(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY; - } - long YLOG2DEVREL(long y) const - { - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); - } - - public: - - bool m_ok; - bool m_colour; - - // not sure, what these mean - bool m_clipping; // Is clipping on right now ? - bool m_isInteractive; // Is GetPixel possible ? - bool m_autoSetting; // wxMSW only ? - bool m_dontDelete; // wxMSW only ? - bool m_optimize; // wxMSW only ? - wxString m_filename; // Not sure where this belongs. - - wxPen m_pen; - wxBrush m_brush; - wxBrush m_backgroundBrush; - wxColour m_textForegroundColour; - wxColour m_textBackgroundColour; - wxFont m_font; - - int m_logicalFunction; - int m_backgroundMode; - int m_textAlignment; // gone in wxWin 2.0 ? - - int m_mappingMode; - - // not sure what for, but what is a mm on a screen you don't know the size of? - double m_mm_to_pix_x,m_mm_to_pix_y; - - long m_internalDeviceOriginX,m_internalDeviceOriginY; // If un-scrolled is non-zero or - // d.o. changes with scrolling. - // Set using SetInternalDeviceOrigin(). - - long m_externalDeviceOriginX,m_externalDeviceOriginY; // To be set by external classes - // such as wxScrolledWindow - // using SetDeviceOrigin() - - long m_deviceOriginX,m_deviceOriginY; // Sum of the two above. - - long m_logicalOriginX,m_logicalOriginY; // User defined. - - double m_scaleX,m_scaleY; - double m_logicalScaleX,m_logicalScaleY; - double m_userScaleX,m_userScaleY; - long m_signX,m_signY; - - bool m_needComputeScaleX,m_needComputeScaleY; // not yet used - - float m_scaleFactor; // wxPSDC wants to have this. Will disappear. - - long m_clipX1,m_clipY1,m_clipX2,m_clipY2; - long m_minX,m_maxX,m_minY,m_maxY; -}; - -#endif - // _WX_DC_H_ diff --git a/include/wx/mac/dcclient.h b/include/wx/mac/dcclient.h deleted file mode 100644 index 29e4e6f7a0..0000000000 --- a/include/wx/mac/dcclient.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -#ifdef __GNUG__ -#pragma interface "dcclient.h" -#endif - -#include "wx/dc.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC; -class WXDLLEXPORT wxWindow; - -// Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented differently. -// On many platforms, however, they will be the same. - -class WXDLLEXPORT wxWindowDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxWindowDC) - - public: - - wxWindowDC(void); - wxWindowDC( wxWindow *win ); - - ~wxWindowDC(void); - - virtual void FloodFill( long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE ); - virtual bool GetPixel( long x1, long y1, wxColour *col ) const; - - virtual void DrawLine( long x1, long y1, long x2, long y2 ); - virtual void CrossHair( long x, long y ); - virtual void DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ); - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ); - virtual void DrawPoint( long x, long y ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ); - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ); - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); - virtual void DrawEllipse( long x, long y, long width, long height ); - - virtual bool CanDrawBitmap(void) const; - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ); - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ); - virtual bool CanGetTextExtent(void) const; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16 = FALSE ); - virtual long GetCharWidth(void); - virtual long GetCharHeight(void); - - virtual void Clear(void); - - virtual void SetFont( const wxFont &font ); - virtual void SetPen( const wxPen &pen ); - virtual void SetBrush( const wxBrush &brush ); - virtual void SetBackground( const wxBrush &brush ); - virtual void SetLogicalFunction( int function ); - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual void SetBackgroundMode( int mode ); - virtual void SetPalette( const wxPalette& palette ); - - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void SetClippingRegion( const wxRegion& region ) ; - virtual void DestroyClippingRegion(void); - - virtual void DrawSpline( wxList *points ); -}; - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - - public: - - wxPaintDC(void):wxWindowDC() {}; - wxPaintDC( wxWindow *win ): wxWindowDC(win) {}; - -}; - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxClientDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxClientDC) - - public: - - wxClientDC(void):wxWindowDC() {}; - wxClientDC( wxWindow *win ): wxWindowDC(win) {}; - -}; - -#endif - // _WX_DCCLIENT_H_ diff --git a/include/wx/mac/dcmemory.h b/include/wx/mac/dcmemory.h deleted file mode 100644 index c6c5737642..0000000000 --- a/include/wx/mac/dcmemory.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#ifdef __GNUG__ -#pragma interface "dcmemory.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxMemoryDC: public wxPaintDC -{ - DECLARE_DYNAMIC_CLASS(wxMemoryDC) - - public: - wxMemoryDC(void); - wxMemoryDC( wxDC *dc ); // Create compatible DC - ~wxMemoryDC(void); - virtual void SelectObject( const wxBitmap& bitmap ); - void GetSize( int *width, int *height ) const; - - private: - friend wxPaintDC; - wxBitmap m_selected; -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/include/wx/mac/dcprint.h b/include/wx/mac/dcprint.h deleted file mode 100644 index 2ea66d15bf..0000000000 --- a/include/wx/mac/dcprint.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcprint.h -// Purpose: wxPrinterDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPRINT_H_ -#define _WX_DCPRINT_H_ - -#ifdef __GNUG__ -#pragma interface "dcprint.h" -#endif - -#include "wx/dc.h" - -class WXDLLEXPORT wxPrinterDC: public wxDC -{ - public: - DECLARE_CLASS(wxPrinterDC) - - // Create a printer DC - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT); - - ~wxPrinterDC(); -}; - -#endif - // _WX_DCPRINT_H_ - diff --git a/include/wx/mac/dcscreen.h b/include/wx/mac/dcscreen.h deleted file mode 100644 index e04b450f69..0000000000 --- a/include/wx/mac/dcscreen.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_ -#define _WX_DCSCREEN_H_ - -#ifdef __GNUG__ -#pragma interface "dcscreen.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxScreenDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - - public: - // Create a DC representing the whole screen - wxScreenDC(); - ~wxScreenDC(); - - // Compatibility with X's requirements for - // drawing on top of all windows - static bool StartDrawingOnTop(wxWindow* WXUNUSED(window)) { return TRUE; } - static bool StartDrawingOnTop(wxRect* WXUNUSED(rect) = NULL) { return TRUE; } - static bool EndDrawingOnTop() { return TRUE; } -}; - -#endif - // _WX_DCSCREEN_H_ - diff --git a/include/wx/mac/dialog.h b/include/wx/mac/dialog.h deleted file mode 100644 index d68cc7c9a0..0000000000 --- a/include/wx/mac/dialog.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#ifdef __GNUG__ -#pragma interface "dialog.h" -#endif - -#include "wx/panel.h" - -WXDLLEXPORT_DATA(extern const char*) wxDialogNameStr; - -// Dialog boxes -class WXDLLEXPORT wxDialog: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxDialog) -public: - - wxDialog(); - - // Constructor with a modal flag, but no window id - the old convention - inline wxDialog(wxWindow *parent, - const wxString& title, bool modal, - int x = -1, int y= -1, int width = 500, int height = 500, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - long modalStyle = modal ? wxDIALOG_MODAL : wxDIALOG_MODELESS ; - Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), style|modalStyle, name); - } - - // Constructor with no modal flag - the new convention. - inline wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, // bool modal = FALSE, // TODO make this a window style? - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - ~wxDialog(); - - virtual bool Destroy(); - void SetClientSize(int width, int height); - void GetPosition(int *x, int *y) const; - bool Show(bool show); - void Iconize(bool iconize); - - virtual bool IsIconized() const; - void Fit(); - - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void OnCharHook(wxKeyEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - void SetModal(bool flag); - - virtual void Centre(int direction = wxBOTH); - virtual bool IsModal() const { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - virtual int ShowModal(); - virtual void EndModal(int retCode); - - // Standard buttons - void OnOK(wxCommandEvent& event); - void OnApply(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_DIALOG_H_ diff --git a/include/wx/mac/dirdlg.h b/include/wx/mac/dirdlg.h deleted file mode 100644 index 44f96238e2..0000000000 --- a/include/wx/mac/dirdlg.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.h -// Purpose: wxDirDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -#ifdef __GNUG__ -#pragma interface "dirdlg.h" -#endif - -#include "wx/dialog.h" - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxDirDialog) -public: - wxDirDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = "", - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetStyle(long style) { m_dialogStyle = style; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline long GetStyle() const { return m_dialogStyle; } - - int ShowModal(); - -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_path; -}; - -#endif - // _WX_DIRDLG_H_ diff --git a/include/wx/mac/dnd.h b/include/wx/mac/dnd.h deleted file mode 100644 index 5a7a65335f..0000000000 --- a/include/wx/mac/dnd.h +++ /dev/null @@ -1,238 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.h -// Purpose: Declaration of the wxDropTarget, wxDropSource class etc. -// Author: AUTHOR -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DND_H_ -#define _WX_DND_H_ - -#ifdef __GNUG__ -#pragma interface "dnd.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/cursor.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindow; - -class WXDLLEXPORT wxDataObject; -class WXDLLEXPORT wxTextDataObject; -class WXDLLEXPORT wxFileDataObject; - -class WXDLLEXPORT wxDropTarget; -class WXDLLEXPORT wxTextDropTarget; -class WXDLLEXPORT wxFileDropTarget; - -class WXDLLEXPORT wxDropSource; - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject: public wxObject -{ -public: - // all data formats (values are the same as in windows.h, do not change!) - enum StdFormat - { - Invalid, - Text, - Bitmap, - MetafilePict, - Sylk, - Dif, - Tiff, - OemText, - Dib, - Palette, - Pendata, - Riff, - Wave, - UnicodeText, - EnhMetafile, - Hdrop, - Locale, - Max - }; - - // function to return symbolic name of clipboard format (debug messages) - static const char *GetFormatName(wxDataFormat format); - - // ctor & dtor - wxDataObject() {}; - ~wxDataObject() {}; - - // pure virtuals to override - // get the best suited format for our data - virtual wxDataFormat GetPreferredFormat() const = 0; - // decide if we support this format (should be one of values of - // StdFormat enumerations or a user-defined format) - virtual bool IsSupportedFormat(wxDataFormat format) const = 0; - // get the (total) size of data - virtual size_t GetDataSize() const = 0; - // copy raw data to provided pointer - virtual void GetDataHere(void *pBuf) const = 0; - -}; - -// ---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextDataObject : public wxDataObject -{ -public: - // ctors - wxTextDataObject() { } - wxTextDataObject(const wxString& strText) : m_strText(strText) { } - void Init(const wxString& strText) { m_strText = strText; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_TEXT; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_TEXT; } - virtual size_t GetDataSize() const - { return m_strText.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_strText.c_str(), GetDataSize()); } - -private: - wxString m_strText; - -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileDataObject : public wxDataObject -{ -public: - - wxFileDataObject(void) { } - void AddFile( const wxString &file ) - { m_files += file; m_files += ";"; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_FILENAME; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_FILENAME; } - virtual size_t GetDataSize() const - { return m_files.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_files.c_str(), GetDataSize()); } - -private: - wxString m_files; - -}; -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDropTarget: public wxObject -{ - public: - - wxDropTarget(); - ~wxDropTarget(); - - virtual void OnEnter() { } - virtual void OnLeave() { } - virtual bool OnDrop( long x, long y, const void *pData ) = 0; - -// protected: - - friend wxWindow; - - // Override these to indicate what kind of data you support: - - virtual size_t GetFormatCount() const = 0; - virtual wxDataFormat GetFormat(size_t n) const = 0; -}; - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextDropTarget: public wxDropTarget -{ - public: - - wxTextDropTarget() {}; - virtual bool OnDrop( long x, long y, const void *pData ); - virtual bool OnDropText( long x, long y, const char *psz ); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -// ---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileDropTarget: public wxDropTarget -{ - public: - - wxFileDropTarget() {}; - - virtual bool OnDrop(long x, long y, const void *pData); - virtual bool OnDropFiles( long x, long y, - size_t nFiles, const char * const aszFiles[]); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -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 - wxDragCancel // the operation was cancelled by user (not an error) - }; - -class WXDLLEXPORT wxDropSource: public wxObject -{ - public: - - wxDropSource( wxWindow *win ); - wxDropSource( wxDataObject &data, wxWindow *win ); - - ~wxDropSource(void); - - void SetData( wxDataObject &data ); - wxDragResult DoDragDrop( bool bAllowMove = FALSE ); - - virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; }; - - protected: - - wxDataObject *m_data; -}; - -#endif - //_WX_DND_H_ - diff --git a/include/wx/mac/filedlg.h b/include/wx/mac/filedlg.h deleted file mode 100644 index 911f7ffe85..0000000000 --- a/include/wx/mac/filedlg.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: wxFileDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -#ifdef __GNUG__ -#pragma interface "filedlg.h" -#endif - -#include "wx/dialog.h" - -/* - * File selector - */ - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorDefaultWildcardStr; - -class WXDLLEXPORT wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; -public: - wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", const wxString& defaultFile = "", const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetDirectory(const wxString& dir) { m_dir = dir; } - inline void SetFilename(const wxString& name) { m_fileName = name; } - inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - inline void SetStyle(long style) { m_dialogStyle = style; } - inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline wxString GetDirectory() const { return m_dir; } - inline wxString GetFilename() const { return m_fileName; } - inline wxString GetWildcard() const { return m_wildCard; } - inline long GetStyle() const { return m_dialogStyle; } - inline int GetFilterIndex() const { return m_filterIndex ; } - - int ShowModal(); -}; - -#define wxOPEN 0x0001 -#define wxSAVE 0x0002 -#define wxOVERWRITE_PROMPT 0x0004 -#define wxHIDE_READONLY 0x0008 -#define wxFILE_MUST_EXIST 0x0010 - -// File selector - backward compatibility -WXDLLEXPORT wxString wxFileSelector(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL, - const char *default_filename = NULL, const char *default_extension = NULL, - const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0, - wxWindow *parent = NULL, int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString wxFileSelectorEx(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL, - const char *default_filename = NULL, int *indexDefaultExtension = NULL, - const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0, - wxWindow *parent = NULL, int x = -1, int y = -1); - -// Generic file load dialog -WXDLLEXPORT wxString wxLoadFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL); - -// Generic file save dialog -WXDLLEXPORT wxString wxSaveFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL); - -#endif - // _WX_FILEDLG_H_ diff --git a/include/wx/mac/font.h b/include/wx/mac/font.h deleted file mode 100644 index aff8fb3a75..0000000000 --- a/include/wx/mac/font.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -#ifdef __GNUG__ -#pragma interface "font.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxFont; - -class WXDLLEXPORT wxFontRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxFont; -public: - wxFontRefData(); - wxFontRefData(const wxFontRefData& data); - ~wxFontRefData(); -protected: - int m_pointSize; - int m_family; - int m_style; - int m_weight; - bool m_underlined; - wxString m_faceName; -/* TODO: implementation - WXHFONT m_hFont; -*/ -}; - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Font -class WXDLLEXPORT wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) -public: - wxFont(); - wxFont(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - inline wxFont(const wxFont& font) { Ref(font); } - - ~wxFont(); - - bool Create(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline int GetPointSize() const { return M_FONTDATA->m_pointSize; } - inline int GetFamily() const { return M_FONTDATA->m_family; } - inline int GetStyle() const { return M_FONTDATA->m_style; } - inline int GetWeight() const { return M_FONTDATA->m_weight; } - wxString GetFamilyString() const ; - wxString GetFaceName() const ; - wxString GetStyleString() const ; - wxString GetWeightString() const ; - inline bool GetUnderlined() const { return M_FONTDATA->m_underlined; } - - void SetPointSize(int pointSize); - void SetFamily(int family); - void SetStyle(int style); - void SetWeight(int weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - - inline wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; } - inline bool operator == (const wxFont& font) { return m_refData == font.m_refData; } - inline bool operator != (const wxFont& font) { return m_refData != font.m_refData; } - - // Implementation -protected: - bool RealizeResource(); - void Unshare(); -}; - -#endif - // _WX_FONT_H_ diff --git a/include/wx/mac/fontdlg.h b/include/wx/mac/fontdlg.h deleted file mode 100644 index 39da6fd967..0000000000 --- a/include/wx/mac/fontdlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.h -// Purpose: wxFontDialog class. Use generic version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDLG_H_ -#define _WX_FONTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "fontdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * Font dialog - */ - -class WXDLLEXPORT wxFontDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFontDialog) -public: - wxFontDialog(); - wxFontDialog(wxWindow *parent, wxFontData *data = NULL); - - bool Create(wxWindow *parent, wxFontData *data = NULL); - - int ShowModal(); - wxFontData& GetFontData() { return m_fontData; } - -protected: - wxWindow* m_dialogParent; - wxFontData m_fontData; -}; - -#endif - // _WX_FONTDLG_H_ - diff --git a/include/wx/mac/frame.h b/include/wx/mac/frame.h deleted file mode 100644 index 64ec0d6cd1..0000000000 --- a/include/wx/mac/frame.h +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: wxFrame class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#ifdef __GNUG__ -#pragma interface "frame.h" -#endif - -#include "wx/window.h" -#include "wx/toolbar.h" -#include "wx/accel.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxStatusBar; - -class WXDLLEXPORT wxFrame: public wxWindow { - - DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame(); - inline wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual bool Destroy(); - void SetClientSize(int width, int height); - void GetClientSize(int *width, int *height) const; - - void GetSize(int *width, int *height) const ; - void GetPosition(int *x, int *y) const ; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void ClientToScreen(int *x, int *y) const; - void ScreenToClient(int *x, int *y) const; - - void OnSize(wxSizeEvent& event); - void OnMenuHighlight(wxMenuEvent& event); - void OnActivate(wxActivateEvent& event); - void OnIdle(wxIdleEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - bool Show(bool show); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - virtual wxMenuBar *GetMenuBar() const ; - - // Set title - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void Centre(int direction = wxBOTH); - - // Call this to simulate a menu command - virtual void Command(int id); - virtual void ProcessCommand(int id); - - // Set icon - virtual void SetIcon(const wxIcon& icon); - - // Create status line - virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0, - const wxString& name = "statusBar"); - inline wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } - virtual void PositionStatusBar(); - virtual wxStatusBar *OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name); - - // Create toolbar - virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, const wxString& name = wxToolBarNameStr); - virtual wxToolBar *OnCreateToolBar(long style, wxWindowID id, const wxString& name); - // If made known to the frame, the frame will manage it automatically. - virtual inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } - virtual inline wxToolBar *GetToolBar() const { return m_frameToolBar; } - virtual void PositionToolBar(); - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // Hint to tell framework which status bar to use - // TODO: should this go into a wxFrameworkSettings class perhaps? - static void UseNativeStatusBar(bool useNative) { m_useNativeStatusBar = useNative; }; - static bool UsesNativeStatusBar() { return m_useNativeStatusBar; }; - - // Fit frame around subwindows - virtual void Fit(); - - // Iconize - virtual void Iconize(bool iconize); - - virtual bool IsIconized() const ; - - // Compatibility - inline bool Iconized() const { return IsIconized(); } - - // Is the frame maximized? - virtual bool IsMaximized(void) const ; - - virtual void Maximize(bool maximize); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Query app for menu item updates (called from OnIdle) - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin); - - // Checks if there is a toolbar, and returns the first free client position - virtual wxPoint GetClientAreaOrigin() const; - -protected: - wxMenuBar * m_frameMenuBar; - wxStatusBar * m_frameStatusBar; - wxIcon m_icon; - bool m_iconized; - static bool m_useNativeStatusBar; - wxToolBar * m_frameToolBar ; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_FRAME_H_ diff --git a/include/wx/mac/gauge.h b/include/wx/mac/gauge.h deleted file mode 100644 index ce19d9ef1f..0000000000 --- a/include/wx/mac/gauge.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_ -#define _WX_GAUGE_H_ - -#ifdef __GNUG__ -#pragma interface "gauge.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxGaugeNameStr; - -// Group box -class WXDLLEXPORT wxGauge: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge) - public: - inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; } - - inline wxGauge(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - void SetShadowWidth(int w); - void SetBezelFace(int w); - void SetRange(int r); - void SetValue(int pos); - - int GetShadowWidth() const ; - int GetBezelFace() const ; - int GetRange() const ; - int GetValue() const ; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ; - - protected: - int m_rangeMax; - int m_gaugePos; -}; - -#endif - // _WX_GAUGE_H_ diff --git a/include/wx/mac/gdiobj.h b/include/wx/mac/gdiobj.h deleted file mode 100644 index 9263d4d6ad..0000000000 --- a/include/wx/mac/gdiobj.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: wxGDIObject class: base class for other GDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDIOBJ_H_ -#define _WX_GDIOBJ_H_ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface "gdiobj.h" -#endif - -class WXDLLEXPORT wxGDIRefData: public wxObjectRefData { -public: - inline wxGDIRefData() - { - } -}; - -#define M_GDIDATA ((wxGDIRefData *)m_refData) - -class WXDLLEXPORT wxGDIObject: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - public: - inline wxGDIObject() { m_visible = FALSE; }; - inline ~wxGDIObject() {}; - - inline bool IsNull() const { return (m_refData == 0); } - - virtual bool GetVisible() { return m_visible; } - virtual void SetVisible(bool v) { m_visible = v; } - -protected: - bool m_visible; // Can a pointer to this object be safely taken? - // - only if created within FindOrCreate... -}; - -#endif - // _WX_GDIOBJ_H_ diff --git a/include/wx/mac/helpxxxx.h b/include/wx/mac/helpxxxx.h deleted file mode 100644 index d53c28b7e4..0000000000 --- a/include/wx/mac/helpxxxx.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.h -// Purpose: Help system: native implementation for your system. Replace -// XXXX with suitable name. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPXXXX_H_ -#define _WX_HELPXXXX_H_ - -#ifdef __GNUG__ -#pragma interface "helpxxxx.h" -#endif - -#include "wx/wx.h" - -#include "wx/helpbase.h" - -class WXDLLEXPORT wxXXXXHelpController: public wxHelpControllerBase -{ - DECLARE_CLASS(wxXXXXHelpController) - - public: - wxXXXXHelpController(); - ~wxXXXXHelpController(); - - // Must call this to set the filename and server name - virtual bool Initialize(const wxString& file); - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = ""); - virtual bool DisplayContents(); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplayBlock(long blockNo); - virtual bool KeywordSearch(const wxString& k); - - virtual bool Quit(); - virtual void OnQuit(); - - inline wxString GetHelpFile() const { return m_helpFile; } - -protected: - wxString m_helpFile; -}; - -#endif - // _WX_HELPXXXX_H_ diff --git a/include/wx/mac/icon.h b/include/wx/mac/icon.h deleted file mode 100644 index df475672ba..0000000000 --- a/include/wx/mac/icon.h +++ /dev/null @@ -1,106 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -#ifdef __GNUG__ -#pragma interface "icon.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxIconRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; -public: - wxIconRefData(); - ~wxIconRefData(); - -public: -/* TODO: whatever your actual icon handle is - WXHICON m_hIcon; -*/ -}; - -#define M_ICONDATA ((wxIconRefData *)m_refData) -#define M_ICONHANDLERDATA ((wxIconRefData *)bitmap->GetRefData()) - -// Icon -class WXDLLEXPORT wxIcon: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - wxIcon(); - - // Copy constructors - inline wxIcon(const wxIcon& icon) { Ref(icon); } - - wxIcon(const char bits[], int width, int height); - wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - ~wxIcon(); - - bool LoadFile(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - - inline wxIcon& operator = (const wxIcon& icon) { if (*this == icon) return (*this); Ref(icon); return *this; } - inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; } - inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; } - -/* TODO: implementation - void SetHICON(WXHICON ico); - inline WXHICON GetHICON() const { return (M_ICONDATA ? M_ICONDATA->m_hIcon : 0); } -*/ - -/* TODO */ - virtual bool Ok() const { return (m_refData != NULL) ; } -}; - -/* Example handlers. TODO: write your own handlers for relevant types. - -class WXDLLEXPORT wxICOFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxICOFileHandler) -public: - inline wxICOFileHandler() - { - m_name = "ICO icon file"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); -}; - -class WXDLLEXPORT wxICOResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxICOResourceHandler) -public: - inline wxICOResourceHandler() - { - m_name = "ICO resource"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); - -}; - -*/ - -#endif - // _WX_ICON_H_ diff --git a/include/wx/mac/imaglist.h b/include/wx/mac/imaglist.h deleted file mode 100644 index 7e66ffb36a..0000000000 --- a/include/wx/mac/imaglist.h +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.h -// Purpose: wxImageList class. Note: if your GUI doesn't have -// an image list equivalent, you can use the generic class -// in src/generic. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLIST_H_ -#define _WX_IMAGLIST_H_ - -#ifdef __GNUG__ -#pragma interface "imaglist.h" -#endif - -#include "wx/bitmap.h" - -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - */ - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -// Eventually we'll make this a reference-counted wxGDIObject. For -// now, the app must take care of ownership issues. That is, the -// image lists must be explicitly deleted after the control(s) that uses them -// is (are) deleted, or when the app exits. -class WXDLLEXPORT wxImageList: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxImageList) - public: - /* - * Public interface - */ - - wxImageList(); - - // Creates an image list. - // Specify the width and height of the images in the list, - // whether there are masks associated with them (e.g. if creating images - // from icons), and the initial size of the list. - inline wxImageList(int width, int height, bool mask = TRUE, int initialCount = 1) - { - Create(width, height, mask, initialCount); - } - ~wxImageList(); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Returns the number of images in the image list. - int GetImageCount() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Creates an image list - // width, height specify the size of the images in the list (all the same). - // mask specifies whether the images have masks or not. - // initialNumber is the initial number of images to reserve. - bool Create(int width, int height, bool mask = TRUE, int initialNumber = 1); - - // Adds a bitmap, and optionally a mask bitmap. - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Add. - int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - - // Adds a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' after calling Add. - int Add(const wxBitmap& bitmap, const wxColour& maskColour); - - // Adds a bitmap and mask from an icon. - int Add(const wxIcon& icon); - - // Replaces a bitmap, optionally passing a mask bitmap. - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Replace. - bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - -/* Not supported by Win95 - // Replacing a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap'. - bool Replace(int index, const wxBitmap& bitmap, const wxColour& maskColour); -*/ - - // Replaces a bitmap and mask from an icon. - // You can delete 'icon' after calling Replace. - bool Replace(int index, const wxIcon& icon); - - // Removes the image at the given index. - bool Remove(int index); - - // Remove all images - bool RemoveAll(); - - // Draws the given image on a dc at the specified position. - // If 'solidBackground' is TRUE, Draw sets the image list background - // colour to the background colour of the wxDC, to speed up - // drawing by eliminating masked drawing where possible. - bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, bool solidBackground = FALSE); - -/* TODO (optional?) - wxIcon *MakeIcon(int index); -*/ - -/* TODO - // Implementation - //////////////////////////////////////////////////////////////////////////// - - // Returns the native image list handle - inline WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; } - -protected: - WXHIMAGELIST m_hImageList; -*/ - -}; - -#endif - // _WX_IMAGLIST_H_ diff --git a/include/wx/mac/joystick.h b/include/wx/mac/joystick.h deleted file mode 100644 index 30324fc035..0000000000 --- a/include/wx/mac/joystick.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" - -class WXDLLEXPORT wxJoystick: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; }; - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition() const; - int GetZPosition() const; - int GetButtonState() const; - int GetPOVPosition() const; - int GetPOVCTSPosition() const; - int GetRudderPosition() const; - int GetUPosition() const; - int GetVPosition() const; - int GetMovementThreshold() const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk() const; // Checks that the joystick is functioning - int GetNumberJoysticks() const ; - int GetManufacturerId() const ; - int GetProductId() const ; - wxString GetProductName() const ; - int GetXMin() const; - int GetYMin() const; - int GetZMin() const; - int GetXMax() const; - int GetYMax() const; - int GetZMax() const; - int GetNumberButtons() const; - int GetNumberAxes() const; - int GetMaxButtons() const; - int GetMaxAxes() const; - int GetPollingMin() const; - int GetPollingMax() const; - int GetRudderMin() const; - int GetRudderMax() const; - int GetUMin() const; - int GetUMax() const; - int GetVMin() const; - int GetVMax() const; - - bool HasRudder() const; - bool HasZ() const; - bool HasU() const; - bool HasV() const; - bool HasPOV() const; - bool HasPOV4Dir() const; - bool HasPOVCTS() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/include/wx/mac/listbox.h b/include/wx/mac/listbox.h deleted file mode 100644 index d95db4379b..0000000000 --- a/include/wx/mac/listbox.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_ -#define _WX_LISTBOX_H_ - -#ifdef __GNUG__ -#pragma interface "listbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxListBoxNameStr; - -// forward decl for GetSelections() -class WXDLLEXPORT wxArrayInt; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// List box item -class WXDLLEXPORT wxListBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListBox) - public: - - wxListBox(); - inline wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - ~wxListBox(); - - virtual void Append(const wxString& item); - virtual void Append(const wxString& item, char *clientData); - virtual void Set(int n, const wxString* choices, char **clientData = NULL); - virtual int FindString(const wxString& s) const ; - virtual void Clear(); - virtual void SetSelection(int n, bool select = TRUE); - - virtual void Deselect(int n); - - // For single choice list item only - virtual int GetSelection() const ; - virtual void Delete(int n); - virtual char *GetClientData(int n) const ; - virtual void SetClientData(int n, char *clientData); - virtual void SetString(int n, const wxString& s); - - // For single or multiple choice list item - virtual int GetSelections(wxArrayInt& aSelections) const; - virtual bool Selected(int n) const ; - virtual wxString GetString(int n) const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - // Set the specified item at the first visible item - // or scroll to max range. - virtual void SetFirstItem(int n) ; - virtual void SetFirstItem(const wxString& s) ; - - virtual void InsertItems(int nItems, const wxString items[], int pos); - - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& s, bool flag = TRUE); - virtual int Number() const ; - - void Command(wxCommandEvent& event); - - protected: - int m_noItems; - int m_selected; -}; - -#endif - // _WX_LISTBOX_H_ diff --git a/include/wx/mac/listctrl.h b/include/wx/mac/listctrl.h deleted file mode 100644 index 6dfc25df98..0000000000 --- a/include/wx/mac/listctrl.h +++ /dev/null @@ -1,451 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.h -// Purpose: wxListCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTCTRL_H_ -#define _WX_LISTCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "listctrl.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -/* - The wxListCtrl can show lists of items in four different modes: - wxLC_LIST: multicolumn list view, with optional small icons (icons could be - optional for some platforms). Columns are computed automatically, - i.e. you don't set columns as in wxLC_REPORT. In other words, - the list wraps, unlike a wxListBox. - wxLC_REPORT: single or multicolumn report view (with optional header) - wxLC_ICON: large icon view, with optional labels - wxLC_SMALL_ICON: small icon view, with optional labels - - You can change the style dynamically, either with SetSingleStyle or - SetWindowStyleFlag. - - Further window styles: - - wxLC_ALIGN_TOP icons align to the top (default) - wxLC_ALIGN_LEFT icons align to the left - wxLC_AUTOARRANGE icons arrange themselves - wxLC_USER_TEXT the app provides label text on demand, except for column headers - wxLC_EDIT_LABELS labels are editable: app will be notified. - wxLC_NO_HEADER no header in report mode - wxLC_NO_SORT_HEADER can't click on header - wxLC_SINGLE_SEL single selection - wxLC_SORT_ASCENDING sort ascending (must still supply a comparison callback in SortItems) - wxLC_SORT_DESCENDING sort descending (ditto) - - Items are referred to by their index (position in the list starting from zero). - - Label text is supplied via insertion/setting functions and is stored by the - control, unless the wxLC_USER_TEXT style has been specified, in which case - the app will be notified when text is required (see sample). - - Images are dealt with by (optionally) associating 3 image lists with the control. - Zero-based indexes into these image lists indicate which image is to be used for - which item. Each image in an image list can contain a mask, and can be made out - of either a bitmap, two bitmaps or an icon. See ImagList.h for more details. - - Notifications are passed via the wxWindows 2.0 event system. - - See the sample wxListCtrl app for API usage. - - */ - -// Mask flags to tell app/GUI what fields of wxListItem are valid -#define wxLIST_MASK_STATE 0x0001 -#define wxLIST_MASK_TEXT 0x0002 -#define wxLIST_MASK_IMAGE 0x0004 -#define wxLIST_MASK_DATA 0x0008 -#define wxLIST_SET_ITEM 0x0010 -#define wxLIST_MASK_WIDTH 0x0020 -#define wxLIST_MASK_FORMAT 0x0040 - -// State flags for indicating the state of an item -#define wxLIST_STATE_DONTCARE 0x0000 -#define wxLIST_STATE_DROPHILITED 0x0001 -#define wxLIST_STATE_FOCUSED 0x0002 -#define wxLIST_STATE_SELECTED 0x0004 -#define wxLIST_STATE_CUT 0x0008 - -// Hit test flags, used in HitTest -#define wxLIST_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxLIST_HITTEST_BELOW 0x0002 // Below the client area. -#define wxLIST_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxLIST_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxLIST_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxLIST_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxLIST_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxLIST_HITTEST_TOLEFT 0x0400 // To the left of the client area. -#define wxLIST_HITTEST_TORIGHT 0x0800 // To the right of the client area. - -#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL wxLIST_HITTEST_ONITEMSTATEICON) - -// Flags for GetNextItem -enum { - wxLIST_NEXT_ABOVE, // Searches for an item above the specified item - wxLIST_NEXT_ALL, // Searches for subsequent item by index - wxLIST_NEXT_BELOW, // Searches for an item below the specified item - wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item - wxLIST_NEXT_RIGHT, // Searches for an item to the right of the specified item -}; - -// Alignment flags for Arrange -enum { - wxLIST_ALIGN_DEFAULT, - wxLIST_ALIGN_LEFT, - wxLIST_ALIGN_TOP, - wxLIST_ALIGN_SNAP_TO_GRID -}; - -// Column format -enum { - wxLIST_FORMAT_LEFT, - wxLIST_FORMAT_RIGHT, - wxLIST_FORMAT_CENTRE, - wxLIST_FORMAT_CENTER = wxLIST_FORMAT_CENTRE -}; - -// Autosize values for SetColumnWidth -enum { - wxLIST_AUTOSIZE = -1, - wxLIST_AUTOSIZE_USEHEADER = -2 -}; - -// Flag values for GetItemRect -enum { - wxLIST_RECT_BOUNDS, - wxLIST_RECT_ICON, - wxLIST_RECT_LABEL -}; - -// Flag values for FindItem -enum { - wxLIST_FIND_UP, - wxLIST_FIND_DOWN, - wxLIST_FIND_LEFT, - wxLIST_FIND_RIGHT -}; - -// wxListItem: data representing an item, or report field. -// It also doubles up to represent entire column information -// when inserting or setting a column. -class WXDLLEXPORT wxListItem: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListItem) -public: - long m_mask; // Indicates what fields are valid - long m_itemId; // The zero-based item position - int m_col; // Zero-based column, if in report mode - long m_state; // The state of the item - long m_stateMask; // Which flags of m_state are valid (uses same flags) - wxString m_text; // The label/header text - int m_image; // The zero-based index into an image list - long m_data; // App-defined data - - // For columns only - int m_format; // left, right, centre - int m_width; // width of column - - wxListItem(); -}; - -// type of compare function for wxListCtrl sort operation -typedef int (*wxListCtrlCompare)(long item1, long item2, long sortData); - -class WXDLLEXPORT wxListCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListCtrl) - public: - /* - * Public interface - */ - - wxListCtrl(); - - inline wxListCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, - const wxString& name = "listCtrl") - { - Create(parent, id, pos, size, style, validator, name); - } - ~wxListCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "wxListCtrl"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Gets information about this column - bool GetColumn(int col, wxListItem& item) const; - - // Sets information about this column - bool SetColumn(int col, wxListItem& item) ; - - // Gets the column width - int GetColumnWidth(int col) const; - - // Sets the column width - bool SetColumnWidth(int col, int width) ; - - // 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) - int GetCountPerPage() const; - - // Gets the edit control for editing labels. - wxTextCtrl* GetEditControl() const; - - // Gets information about the item - bool GetItem(wxListItem& info) const ; - - // Sets information about the item - bool SetItem(wxListItem& info) ; - - // Sets a string field at a particular column - long SetItem(long index, int col, const wxString& label, int imageId = -1); - - // Gets the item state - int GetItemState(long item, long stateMask) const ; - - // Sets the item state - bool SetItemState(long item, long state, long stateMask) ; - - // Sets the item image - bool SetItemImage(long item, int image, int selImage) ; - - // Gets the item text - wxString GetItemText(long item) const ; - - // Sets the item text - void SetItemText(long item, const wxString& str) ; - - // Gets the item data - long GetItemData(long item) const ; - - // Sets the item data - bool SetItemData(long item, long data) ; - - // Gets the item rectangle - bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ; - - // Gets the item position - bool GetItemPosition(long item, wxPoint& pos) const ; - - // Sets the item position - bool SetItemPosition(long item, const wxPoint& pos) ; - - // Gets the number of items in the list control - int GetItemCount() const; - - // Gets the number of columns in the list control - int GetColumnCount() const; - - // Retrieves the spacing between icons in pixels. - // If small is TRUE, gets the spacing for the small icon - // view, otherwise the large icon view. - int GetItemSpacing(bool isSmall) const; - - // Gets the number of selected items in the list control - int GetSelectedItemCount() const; - - // Gets the text colour of the listview - wxColour GetTextColour() const; - - // Sets the text colour of the listview - void SetTextColour(const wxColour& col); - - // Gets the index of the topmost visible item when in - // list or report view - long GetTopItem() const ; - - // Add or remove a single window style - void SetSingleStyle(long style, bool add = TRUE) ; - - // Set the whole window style - void SetWindowStyleFlag(long style) ; - - // Searches for an item, starting from 'item'. - // item can be -1 to find the first item that matches the - // specified flags. - // Returns the item or -1 if unsuccessful. - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const ; - - // Implementation: converts wxWindows style to MSW style. - // Can be a single style flag or a bit list. - // oldStyle is 'normalised' so that it doesn't contain - // conflicting styles. - long ConvertToMSWStyle(long& oldStyle, long style) const; - - // Gets one of the three image lists - wxImageList *GetImageList(int which) const ; - - // Sets the image list - // N.B. There's a quirk in the Win95 list view implementation. - // If in wxLC_LIST mode, it'll *still* display images by the labels if - // there's a small-icon image list set for the control - even though you - // haven't specified wxLIST_MASK_IMAGE when inserting. - // So you have to set a NULL small-icon image list to be sure that - // the wxLC_LIST mode works without icons. Of course, you may want icons... - void SetImageList(wxImageList *imageList, int which) ; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Arranges the items - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - - // Deletes an item - bool DeleteItem(long item); - - // Deletes all items - bool DeleteAllItems() ; - - // Deletes a column - bool DeleteColumn(int col); - - // Deletes all columns - bool DeleteAllColumns(); - - // Clears items, and columns if there are any. - void ClearAll(); - - // Edit the label - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - // Ensures this item is visible - bool EnsureVisible(long item) ; - - // Find an item whose label matches this string, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, const wxString& str, bool partial = FALSE); - - // Find an item whose data matches this data, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, long data); - - // Find an item nearest this position in the specified direction, starting from - // the item after 'start' or the beginning if 'start' is -1. - long FindItem(long start, const wxPoint& pt, int direction); - - // Determines which item (if any) is at the specified point, - // giving details in 'flags' (see wxLIST_HITTEST_... flags above) - long HitTest(const wxPoint& point, int& flags); - - // Inserts an item, returning the index of the new item if successful, - // -1 otherwise. - // TOD: Should also have some further convenience functions - // which don't require setting a wxListItem object - long InsertItem(wxListItem& info); - - // Insert a string item - long InsertItem(long index, const wxString& label); - - // Insert an image item - long InsertItem(long index, int imageIndex); - - // Insert an image/string item - long InsertItem(long index, const wxString& label, int imageIndex); - - // For list view mode (only), inserts a column. - long InsertColumn(long col, wxListItem& info); - - long InsertColumn(long col, const wxString& heading, int format = wxLIST_FORMAT_LEFT, - int width = -1); - - // Scrolls the list control. If in icon, small icon or report view mode, - // x specifies the number of pixels to scroll. If in list view mode, x - // specifies the number of columns to scroll. - // If in icon, small icon or list view mode, y specifies the number of pixels - // to scroll. If in report view mode, y specifies the number of lines to scroll. - bool ScrollList(int dx, int dy); - - // Sort items. - - // fn is a function which takes 3 long arguments: item1, item2, data. - // item1 is the long data associated with a first item (NOT the index). - // item2 is the long data associated with a second item (NOT the index). - // data is the same value as passed to SortItems. - // The return value is a negative number if the first item should precede the second - // item, a positive number of the second item should precede the first, - // or zero if the two items are equivalent. - - // data is arbitrary data to be passed to the sort function. - bool SortItems(wxListCtrlCompare fn, long data); - -/* Why should we need this function? Leave for now. - * We might need it because item data may have changed, - * but the display needs refreshing (in string callback mode) - // Updates an item. If the list control has the wxLI_AUTO_ARRANGE style, - // the items will be rearranged. - bool Update(long item); -*/ - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -protected: - wxTextCtrl* m_textCtrl; // The control used for editing a label - wxImageList * m_imageListNormal; // The image list for normal icons - wxImageList * m_imageListSmall; // The image list for small icons - wxImageList * m_imageListState; // The image list state icons (not implemented yet) - - long m_baseStyle; // Basic Windows style flags, for recreation purposes - wxStringList m_stringPool; // Pool of 3 strings to satisfy Windows callback - // requirements - int m_colCount; // Windows doesn't have GetColumnCount so must - // keep track of inserted/deleted columns - -}; - -class WXDLLEXPORT wxListEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxListEvent) - - public: - wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - int m_code; - long m_itemIndex; - long m_oldItemIndex; - int m_col; - bool m_cancelled; - wxPoint m_pointDrag; - - wxListItem m_item; -}; - -typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); - -#define EVT_LIST_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_DELETE_ITEM(id, fn) { wxEVT_COMMAND_LIST_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) { wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_GET_INFO(id, fn) { wxEVT_COMMAND_LIST_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_SET_INFO(id, fn) { wxEVT_COMMAND_LIST_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_SELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_DESELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_DESELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_KEY_DOWN(id, fn) { wxEVT_COMMAND_LIST_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_INSERT_ITEM(id, fn) { wxEVT_COMMAND_LIST_INSERT_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_COL_CLICK(id, fn) { wxEVT_COMMAND_LIST_COL_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, - -#endif - // _WX_LISTCTRL_H_ diff --git a/include/wx/mac/macsock.h b/include/wx/mac/macsock.h deleted file mode 100644 index 6866a2eeff..0000000000 --- a/include/wx/mac/macsock.h +++ /dev/null @@ -1,1059 +0,0 @@ -/********************************************************************* -Project : GUSI - Grand Unified Socket Interface -File : GUSI.h - Socket calls -Author : Matthias Neeracher -Language : MPW C/C++ -*********************************************************************/ - -#ifndef _GUSI_ -#define _GUSI_ - -#ifdef __MWERKS__ - #ifndef macintosh - #define macintosh 1 - #endif -#endif - -#ifdef macintosh -#include -#else -#ifndef KERNEL -extern int errno; /* global error number */ -#endif -#endif - -#define __P(protos) protos /* full-blown ANSI C */ - -#define EPERM 1 /* Operation not permitted */ -/* MSL defines ENOMEM, EACCES, ENOENT, ENOSYS. We give in. */ -#ifndef ENOENT -#define ENOENT 2 /* No such file or directory */ -#endif -#define ESRCH 3 /* No such process */ -#define EINTR 4 /* Interrupted system call */ -#define EIO 5 /* Input/output error */ -#define ENXIO 6 /* Device not configured */ -#define E2BIG 7 /* Argument list too long */ -#define ENOEXEC 8 /* Exec format error */ -#define EBADF 9 /* Bad file descriptor */ -#define ECHILD 10 /* No child processes */ -#define EDEADLK 11 /* Resource deadlock avoided */ - /* 11 was EAGAIN */ -#ifndef ENOMEM -#define ENOMEM 12 /* Cannot allocate memory */ -#define EACCES 13 /* Permission denied */ -#endif -#define EFAULT 14 /* Bad address */ -#ifndef _POSIX_SOURCE -#define ENOTBLK 15 /* Block device required */ -#define EBUSY 16 /* Device busy */ -#endif -#define EEXIST 17 /* File exists */ -#define EXDEV 18 /* Cross-device link */ -#define ENODEV 19 /* Operation not supported by device */ -#define ENOTDIR 20 /* Not a directory */ -#define EISDIR 21 /* Is a directory */ -#define EINVAL 22 /* Invalid argument */ -#define ENFILE 23 /* Too many open files in system */ -#define EMFILE 24 /* Too many open files */ -#define ENOTTY 25 /* Inappropriate ioctl for device */ -#ifndef _POSIX_SOURCE -#define ETXTBSY 26 /* Text file busy */ -#endif -#define EFBIG 27 /* File too large */ -#define ENOSPC 28 /* No space left on device */ -#define ESPIPE 29 /* Illegal seek */ -#define EROFS 30 /* Read-only file system */ -#define EMLINK 31 /* Too many links */ -#define EPIPE 32 /* Broken pipe */ - -#ifndef __MWERKS__ -/* math software */ -#define EDOM 33 /* Numerical argument out of domain */ -#define ERANGE 34 /* Result too large */ -#endif - -/* non-blocking and interrupt i/o */ -#if defined(macintosh) -#ifndef EAGAIN -#define EAGAIN 11 -#endif -#else -#define EAGAIN 35 /* Resource temporarily unavailable */ -#endif -#define EWOULDBLOCK EAGAIN /* Operation would block */ -#ifndef _POSIX_SOURCE -/* Did I tell that MSL also occupies errnos 33-40? We give in. */ -#if ENOMEM==37 -#define EINPROGRESS 136 /* Operation now in progress */ -#define EALREADY 137 /* Operation already in progress */ - -/* ipc/network software -- argument errors */ -#define ENOTSOCK 138 /* Socket operation on non-socket */ -#define EDESTADDRREQ 139 /* Destination address required */ -#define EMSGSIZE 140 /* Message too long */ -#else -#define EINPROGRESS 36 /* Operation now in progress */ -#define EALREADY 37 /* Operation already in progress */ - -/* ipc/network software -- argument errors */ -#define ENOTSOCK 38 /* Socket operation on non-socket */ -#define EDESTADDRREQ 39 /* Destination address required */ -#define EMSGSIZE 40 /* Message too long */ -#endif -#define EPROTOTYPE 41 /* Protocol wrong type for socket */ -#define ENOPROTOOPT 42 /* Protocol not available */ -#define EPROTONOSUPPORT 43 /* Protocol not supported */ -#define ESOCKTNOSUPPORT 44 /* Socket type not supported */ -#define EOPNOTSUPP 45 /* Operation not supported on socket */ -#define EPFNOSUPPORT 46 /* Protocol family not supported */ -#define EAFNOSUPPORT 47 /* Address family not supported by protocol family */ -#define EADDRINUSE 48 /* Address already in use */ -#define EADDRNOTAVAIL 49 /* Can't assign requested address */ - -/* ipc/network software -- operational errors */ -#define ENETDOWN 50 /* Network is down */ -#define ENETUNREACH 51 /* Network is unreachable */ -#define ENETRESET 52 /* Network dropped connection on reset */ -#define ECONNABORTED 53 /* Software caused connection abort */ -#define ECONNRESET 54 /* Connection reset by peer */ -#define ENOBUFS 55 /* No buffer space available */ -#define EISCONN 56 /* Socket is already connected */ -#define ENOTCONN 57 /* Socket is not connected */ -#define ESHUTDOWN 58 /* Can't send after socket shutdown */ -#define ETOOMANYREFS 59 /* Too many references: can't splice */ -#define ETIMEDOUT 60 /* Connection timed out */ -#define ECONNREFUSED 61 /* Connection refused */ - -#define ELOOP 62 /* Too many levels of symbolic links */ -#endif /* _POSIX_SOURCE */ -#define ENAMETOOLONG 63 /* File name too long */ - -/* should be rearranged */ -#ifndef _POSIX_SOURCE -#define EHOSTDOWN 64 /* Host is down */ -#define EHOSTUNREACH 65 /* No route to host */ -#endif /* _POSIX_SOURCE */ -#define ENOTEMPTY 66 /* Directory not empty */ - -/* quotas & mush */ -#ifndef _POSIX_SOURCE -#define EPROCLIM 67 /* Too many processes */ -#define EUSERS 68 /* Too many users */ -#define EDQUOT 69 /* Disc quota exceeded */ - -/* Network File System */ -#define ESTALE 70 /* Stale NFS file handle */ -#define EREMOTE 71 /* Too many levels of remote in path */ -#define EBADRPC 72 /* RPC struct is bad */ -#define ERPCMISMATCH 73 /* RPC version wrong */ -#define EPROGUNAVAIL 74 /* RPC prog. not avail */ -#define EPROGMISMATCH 75 /* Program version wrong */ -#define EPROCUNAVAIL 76 /* Bad procedure for program */ -#endif /* _POSIX_SOURCE */ - -#define ENOLCK 77 /* No locks available */ - -#ifndef ENOSYS -#define ENOSYS 78 /* Function not implemented */ -#endif - -#define EFTYPE 79 /* Inappropriate file type or format */ - -#ifdef KERNEL -/* pseudo-errors returned inside kernel to modify return to process */ -#define ERESTART -1 /* restart syscall */ -#define EJUSTRETURN -2 /* don't modify regs, just return */ -#endif - -#define NBBY 8 /* number of bits in a byte */ - -/* - * Select uses bit masks of file descriptors in longs. These macros - * manipulate such bit fields (the filesystem macros use chars). - * FD_SETSIZE may be defined by the user, but the default here should - * be enough for most uses. - */ -#ifndef FD_SETSIZE -#ifdef macintosh -#define FD_SETSIZE 64 -#else -#define FD_SETSIZE 256 -#endif -#endif - -typedef long fd_mask; -#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */ - -#ifndef howmany -#define howmany(x, y) (((x)+((y)-1))/(y)) -#endif - -typedef struct fd_set { - fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)]; -} fd_set; - -#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS))) -#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS))) -#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS))) -#define FD_ZERO(p) bzero((char *)(p), sizeof(*(p))) - -// #include -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -typedef unsigned short ushort; /* Sys V compatibility */ - -typedef char * caddr_t; /* core address */ -typedef long daddr_t; /* disk address */ -typedef short dev_t; /* device number */ -typedef u_long ino_t; /* inode number */ -typedef long off_t; /* file offset (should be a quad) */ -typedef u_short nlink_t; /* link count */ -typedef long swblk_t; /* swap offset */ -typedef long segsz_t; /* segment size */ -typedef u_short uid_t; /* user id */ -typedef u_short gid_t; /* group id */ -typedef short pid_t; /* process id */ -typedef u_short mode_t; /* permissions */ -typedef u_long fixpt_t; /* fixed point number */ - - -// Feel free to increase FD_SETSIZE as needed -#define GUSI_MAX_FD FD_SETSIZE - -//#include - -#ifndef macintosh -#ifdef __MWERKS__ -#define macintosh 1 -#endif -#endif - -#if defined(__cplusplus) -#define __BEGIN_DECLS extern "C" { -#define __END_DECLS } -#else -#define __BEGIN_DECLS -#define __END_DECLS -#endif - -//#include -//#include -#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */ -#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK) -#define IOCBASECMD(x) ((x) & ~IOCPARM_MASK) -#define IOCGROUP(x) (((x) >> 8) & 0xff) - -#define IOCPARM_MAX NBPG /* max size of ioctl, mult. of NBPG */ -#define IOC_VOID 0x20000000 /* no parameters */ -#define IOC_OUT 0x40000000 /* copy out parameters */ -#define IOC_IN 0x80000000 /* copy in parameters */ -#define IOC_INOUT (IOC_IN|IOC_OUT) -#define IOC_DIRMASK 0xe0000000 /* mask for IN/OUT/VOID */ - -#define _IOC(inout,group,num,len) \ - (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num)) -#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0) -#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t)) -#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t)) -/* this should be _IORW, but stdio got there first */ -#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t)) - -#define FIOCLEX _IO('f', 1) /* set close on exec on fd */ -#define FIONCLEX _IO('f', 2) /* remove close on exec */ -#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */ -#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */ -#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */ -#define FIOSETOWN _IOW('f', 124, int) /* set owner */ -#define FIOGETOWN _IOR('f', 123, int) /* get owner */ - -__BEGIN_DECLS -#ifdef macintosh -int ioctl(int fildes, unsigned int cmd, unsigned long *arg); -#else -int ioctl __P((int, unsigned long, ...)); -#endif -__END_DECLS - -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include - - -/* - * Definitions for byte order, according to byte significance from low - * address to high. - */ -#define LITTLE_ENDIAN 1234 /* LSB first: i386, vax */ -#define BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net */ -#define PDP_ENDIAN 3412 /* LSB first in word, MSW first in long */ - -#define BYTE_ORDER BIG_ENDIAN - -__BEGIN_DECLS -unsigned long htonl (unsigned long); -unsigned short htons (unsigned short); -unsigned long ntohl (unsigned long); -unsigned short ntohs (unsigned short); -__END_DECLS - -/* - * Macros for network/external number representation conversion. - */ -#if BYTE_ORDER == BIG_ENDIAN && !defined(lint) -#define ntohl(x) (x) -#define ntohs(x) (x) -#define htonl(x) (x) -#define htons(x) (x) - -#define NTOHL(x) (x) -#define NTOHS(x) (x) -#define HTONL(x) (x) -#define HTONS(x) (x) - -#else - -#define NTOHL(x) (x) = ntohl((u_long)x) -#define NTOHS(x) (x) = ntohs((u_short)x) -#define HTONL(x) (x) = htonl((u_long)x) -#define HTONS(x) (x) = htons((u_short)x) -#endif - - - -/* - * Constants and structures defined by the internet system, - * Per RFC 790, September 1981. - */ - -/* - * Protocols - */ -#define IPPROTO_IP 0 /* dummy for IP */ -#define IPPROTO_ICMP 1 /* control message protocol */ -#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */ -#define IPPROTO_TCP 6 /* tcp */ -#define IPPROTO_EGP 8 /* exterior gateway protocol */ -#define IPPROTO_PUP 12 /* pup */ -#define IPPROTO_UDP 17 /* user datagram protocol */ -#define IPPROTO_IDP 22 /* xns idp */ -#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */ -#define IPPROTO_EON 80 /* ISO cnlp */ - -#define IPPROTO_RAW 255 /* raw IP packet */ -#define IPPROTO_MAX 256 - - -/* - * Local port number conventions: - * Ports < IPPORT_RESERVED are reserved for - * privileged processes (e.g. root). - * Ports > IPPORT_USERRESERVED are reserved - * for servers, not necessarily privileged. - */ -#define IPPORT_RESERVED 1024 -#define IPPORT_USERRESERVED 5000 - -/* - * Internet address (a structure for historical reasons) - */ -struct in_addr { - u_long s_addr; -}; - -/* - * Definitions of bits in internet address integers. - * On subnets, the decomposition of addresses to host and net parts - * is done according to subnet mask, not the masks here. - */ -#define IN_CLASSA(i) (((long)(i) & 0x80000000) == 0) -#define IN_CLASSA_NET 0xff000000 -#define IN_CLASSA_NSHIFT 24 -#define IN_CLASSA_HOST 0x00ffffff -#define IN_CLASSA_MAX 128 - -#define IN_CLASSB(i) (((long)(i) & 0xc0000000) == 0x80000000) -#define IN_CLASSB_NET 0xffff0000 -#define IN_CLASSB_NSHIFT 16 -#define IN_CLASSB_HOST 0x0000ffff -#define IN_CLASSB_MAX 65536 - -#define IN_CLASSC(i) (((long)(i) & 0xe0000000) == 0xc0000000) -#define IN_CLASSC_NET 0xffffff00 -#define IN_CLASSC_NSHIFT 8 -#define IN_CLASSC_HOST 0x000000ff - -#define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000) -#define IN_MULTICAST(i) IN_CLASSD(i) - -#define IN_EXPERIMENTAL(i) (((long)(i) & 0xe0000000) == 0xe0000000) -#define IN_BADCLASS(i) (((long)(i) & 0xf0000000) == 0xf0000000) - -#define INADDR_ANY (u_long)0x00000000 -#define INADDR_BROADCAST (u_long)0xffffffff /* must be masked */ -#ifndef KERNEL -#define INADDR_NONE 0xffffffff /* -1 return */ -#endif - -#define IN_LOOPBACKNET 127 /* official! */ - -/* - * Socket address, internet style. - */ -struct sockaddr_in { - u_char sin_len; - u_char sin_family; - u_short sin_port; - struct in_addr sin_addr; - char sin_zero[8]; -}; - -/* - * Structure used to describe IP options. - * Used to store options internally, to pass them to a process, - * or to restore options retrieved earlier. - * The ip_dst is used for the first-hop gateway when using a source route - * (this gets put into the header proper). - */ -#ifdef __MWERKS__ -#pragma cplusplus off -#endif -struct ip_opts { - struct in_addr ip_dst; /* first hop, 0 w/o src rt */ - char ip_opts[40]; /* actually variable in size */ -}; -#ifdef __MWERKS__ -#pragma cplusplus reset -#endif - -/* - * Options for use with [gs]etsockopt at the IP level. - * First word of comment is data type; bool is stored in int. - */ -#define IP_OPTIONS 1 /* buf/ip_opts; set/get IP per-packet options */ -#define IP_HDRINCL 2 /* int; header is included with data (raw) */ -#define IP_TOS 3 /* int; IP type of service and precedence */ -#define IP_TTL 4 /* int; IP time to live */ -#define IP_RECVOPTS 5 /* bool; receive all IP options w/datagram */ -#define IP_RECVRETOPTS 6 /* bool; receive IP options for response */ -#define IP_RECVDSTADDR 7 /* bool; receive IP dst addr w/datagram */ -#define IP_RETOPTS 8 /* ip_opts; set/get IP per-packet options */ - -/* - * Structure returned by gettimeofday(2) system call, - * and used in other calls. - */ -struct timeval { - long tv_sec; /* seconds */ - long tv_usec; /* and microseconds */ -}; - -struct timezone { - int tz_minuteswest; /* minutes west of Greenwich */ - int tz_dsttime; /* type of dst correction */ -}; -#define DST_NONE 0 /* not on dst */ -#define DST_USA 1 /* USA style dst */ -#define DST_AUST 2 /* Australian style dst */ -#define DST_WET 3 /* Western European dst */ -#define DST_MET 4 /* Middle European dst */ -#define DST_EET 5 /* Eastern European dst */ -#define DST_CAN 6 /* Canada */ -//#include - -/* - * Definitions related to sockets: types, address families, options. - */ - -/* - * Types - */ -#define SOCK_STREAM 1 /* stream socket */ -#define SOCK_DGRAM 2 /* datagram socket */ -#define SOCK_RAW 3 /* raw-protocol interface */ -#define SOCK_RDM 4 /* reliably-delivered message */ -#define SOCK_SEQPACKET 5 /* sequenced packet stream */ - -/* - * Option flags per-socket. - */ -#define SO_DEBUG 0x0001 /* turn on debugging info recording */ -#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */ -#define SO_REUSEADDR 0x0004 /* allow local address reuse */ -#define SO_KEEPALIVE 0x0008 /* keep connections alive */ -#define SO_DONTROUTE 0x0010 /* just use interface addresses */ -#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */ -#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */ -#define SO_LINGER 0x0080 /* linger on close if data present */ -#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */ - -/* - * Additional options, not kept in so_options. - */ -#define SO_SNDBUF 0x1001 /* send buffer size */ -#define SO_RCVBUF 0x1002 /* receive buffer size */ -#define SO_SNDLOWAT 0x1003 /* send low-water mark */ -#define SO_RCVLOWAT 0x1004 /* receive low-water mark */ -#define SO_SNDTIMEO 0x1005 /* send timeout */ -#define SO_RCVTIMEO 0x1006 /* receive timeout */ -#define SO_ERROR 0x1007 /* get error status and clear */ -#define SO_TYPE 0x1008 /* get socket type */ - -/* - * Structure used for manipulating linger option. - */ -struct linger { - int l_onoff; /* option on/off */ - int l_linger; /* linger time */ -}; - -/* - * Level number for (get/set)sockopt() to apply to socket itself. - */ -#define SOL_SOCKET 0xffff /* options for socket level */ - -/* - * Address families. - */ -#ifdef macintosh -#define AF_UNSPEC 0 /* unspecified */ -#define AF_UNIX 1 /* local to host (pipes, portals) */ -#define AF_INET 2 /* internetwork: UDP, TCP, etc. */ -#define AF_CTB 3 /* Apple Comm Toolbox (not yet supported) */ -#define AF_FILE 4 /* Normal File I/O (used internally) */ -#define AF_PPC 5 /* PPC Toolbox */ -#define AF_PAP 6 /* Printer Access Protocol (client only) */ -#define AF_APPLETALK 16 /* Apple Talk */ - -#define AF_MAX 20 -#else -#define ATALK_SYMADDR 272 /* Symbolic Address for AppleTalk */ -#define AF_UNSPEC 0 /* unspecified */ -#define AF_UNIX 1 /* local to host (pipes, portals) */ -#define AF_INET 2 /* internetwork: UDP, TCP, etc. */ -#define AF_IMPLINK 3 /* arpanet imp addresses */ -#define AF_PUP 4 /* pup protocols: e.g. BSP */ -#define AF_CHAOS 5 /* mit CHAOS protocols */ -#define AF_NS 6 /* XEROX NS protocols */ -#define AF_ISO 7 /* ISO protocols */ -#define AF_OSI AF_ISO -#define AF_ECMA 8 /* european computer manufacturers */ -#define AF_DATAKIT 9 /* datakit protocols */ -#define AF_CCITT 10 /* CCITT protocols, X.25 etc */ -#define AF_SNA 11 /* IBM SNA */ -#define AF_DECnet 12 /* DECnet */ -#define AF_DLI 13 /* DEC Direct data link interface */ -#define AF_LAT 14 /* LAT */ -#define AF_HYLINK 15 /* NSC Hyperchannel */ -#define AF_APPLETALK16 /* Apple Talk */ -#define AF_ROUTE 17 /* Internal Routing Protocol */ -#define AF_LINK 18 /* Link layer interface */ -#define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */ - -#define AF_MAX 20 -#endif - -/* - * Structure used by kernel to store most - * addresses. - */ -#if defined(powerc) || defined (__powerc) -#pragma options align=mac68k -#endif -struct sockaddr { - u_char sa_len; /* total length */ - u_char sa_family; /* address family */ - char sa_data[14]; /* actually longer; address value */ -}; -#if defined(powerc) || defined (__powerc) -#pragma options align=reset -#endif - -/* - * Structure used by kernel to pass protocol - * information in raw sockets. - */ -struct sockproto { - u_short sp_family; /* address family */ - u_short sp_protocol; /* protocol */ -}; - -/* - * Protocol families, same as address families for now. - */ -#ifdef macintosh -#define PF_UNSPEC AF_UNSPEC /* unspecified */ -#define PF_UNIX AF_UNIX /* local to host (pipes, portals) */ -#define PF_INET AF_INET /* internetwork: UDP, TCP, etc. */ -#define PF_CTB AF_CTB /* Apple Comm Toolbox (not yet supported) */ -#define PF_FILE AF_FILE /* Normal File I/O (used internally) */ -#define PF_PPC AF_PPC /* PPC Toolbox */ -#define PF_PAP AF_PAP /* Printer Access Protocol (client only) */ -#define PF_APPLETALK AF_APPLETALK /* Apple Talk */ -#else -#define PF_UNSPEC AF_UNSPEC -#define PF_UNIX AF_UNIX -#define PF_INET AF_INET -#define PF_IMPLINK AF_IMPLINK -#define PF_PUP AF_PUP -#define PF_CHAOS AF_CHAOS -#define PF_NS AF_NS -#define PF_ISO AF_ISO -#define PF_OSI AF_ISO -#define PF_ECMA AF_ECMA -#define PF_DATAKIT AF_DATAKIT -#define PF_CCITT AF_CCITT -#define PF_SNA AF_SNA -#define PF_DECnet AF_DECnet -#define PF_DLI AF_DLI -#define PF_LAT AF_LAT -#define PF_HYLINK AF_HYLINK -#define PF_APPLETALK AF_APPLETALK -#define PF_ROUTE AF_ROUTE -#define PF_LINK AF_LINK -#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */ -#endif - -#define PF_MAX AF_MAX - -/* - * Maximum queue length specifiable by listen. - */ -#define SOMAXCONN 5 - -/* - * Message header for recvmsg and sendmsg calls. - * Used value-result for recvmsg, value only for sendmsg. - */ -struct msghdr { - caddr_t msg_name; /* optional address */ - u_int msg_namelen; /* size of address */ - struct iovec *msg_iov; /* scatter/gather array */ - u_int msg_iovlen; /* # elements in msg_iov */ - caddr_t msg_control; /* ancillary data, see below */ - u_int msg_controllen; /* ancillary data buffer len */ - int msg_flags; /* flags on received message */ -}; - -#define MSG_OOB 0x1 /* process out-of-band data */ -#define MSG_PEEK 0x2 /* peek at incoming message */ -#define MSG_DONTROUTE 0x4 /* send without using routing tables */ -#define MSG_EOR 0x8 /* data completes record */ -#define MSG_TRUNC 0x10 /* data discarded before delivery */ -#define MSG_CTRUNC 0x20 /* control data lost before delivery */ -#define MSG_WAITALL 0x40 /* wait for full request or error */ - -/* - * Header for ancillary data objects in msg_control buffer. - * Used for additional information with/about a datagram - * not expressible by flags. The format is a sequence - * of message elements headed by cmsghdr structures. - */ -struct cmsghdr { - u_int cmsg_len; /* data byte count, including hdr */ - int cmsg_level; /* originating protocol */ - int cmsg_type; /* protocol-specific type */ -/* followed by u_char cmsg_data[]; */ -}; - -/* given pointer to struct adatahdr, return pointer to data */ -#define CMSG_DATA(cmsg) ((u_char *)((cmsg) + 1)) - -/* given pointer to struct adatahdr, return pointer to next adatahdr */ -#define CMSG_NXTHDR(mhdr, cmsg) \ - (((caddr_t)(cmsg) + (cmsg)->cmsg_len + sizeof(struct cmsghdr) > \ - (mhdr)->msg_control + (mhdr)->msg_controllen) ? \ - (struct cmsghdr *)NULL : \ - (struct cmsghdr *)((caddr_t)(cmsg) + ALIGN((cmsg)->cmsg_len))) - -#define CMSG_FIRSTHDR(mhdr) ((struct cmsghdr *)(mhdr)->msg_control) - -/* "Socket"-level control message types: */ -#define SCM_RIGHTS 0x01 /* access rights (array of int) */ - -/* - * 4.3 compat sockaddr, move to compat file later - */ -struct osockaddr { - u_short sa_family; /* address family */ - char sa_data[14]; /* up to 14 bytes of direct address */ -}; - -/* - * 4.3-compat message header (move to compat file later). - */ -struct omsghdr { - caddr_t msg_name; /* optional address */ - int msg_namelen; /* size of address */ - struct iovec *msg_iov; /* scatter/gather array */ - int msg_iovlen; /* # elements in msg_iov */ - caddr_t msg_accrights; /* access rights sent/received */ - int msg_accrightslen; -}; - -//#include -//#include -//#include -//#include -//#include -//#include -// - -typedef enum spin_msg { - SP_MISC, /* some weird thing, usually just return immediately if you get this */ - SP_SELECT, /* in a select call */ - SP_NAME, /* getting a host by name */ - SP_ADDR, /* getting a host by address */ - SP_STREAM_READ, /* Stream read call */ - SP_STREAM_WRITE, /* Stream write call */ - SP_DGRAM_READ, /* Datagram read call */ - SP_DGRAM_WRITE, /* Datagram write call */ - SP_SLEEP, /* sleeping, passes ticks left to sleep */ - SP_AUTO_SPIN /* Autospin, passes argument to SpinCursor */ -} spin_msg; - -typedef int (*GUSISpinFn)(spin_msg msg, long param); -typedef void (*GUSIEvtHandler)(EventRecord * ev); -typedef GUSIEvtHandler GUSIEvtTable[24]; - -/* - * Address families, defined in sys/socket.h - * - -#define AF_UNSPEC 0 // unspecified -#define AF_UNIX 1 // local to host (pipes, portals) -#define AF_INET 2 // internetwork: UDP, TCP, etc. -#define AF_CTB 3 // Apple Comm Toolbox (not yet supported) -#define AF_FILE 4 // Normal File I/O (used internally) -#define AF_PPC 5 // PPC Toolbox -#define AF_PAP 6 // Printer Access Protocol (client only) -#define AF_APPLETALK 16 // Apple Talk - -*/ - -#define ATALK_SYMADDR 272 /* Symbolic Address for AppleTalk */ - -/* - * Some Implementations of GUSI require you to call GUSISetup for the - * socket families you'd like to have defined. It's a good idea to call - * this for *all* implementations. - * - * GUSIDefaultSetup() will include all socket families. - * - * Never call any of the GUSIwithXXX routines directly. - */ - -__BEGIN_DECLS -void GUSIwithAppleTalkSockets(); -void GUSIwithInternetSockets(); -void GUSIwithPAPSockets(); -void GUSIwithPPCSockets(); -void GUSIwithUnixSockets(); -void GUSIwithSIOUXSockets(); -void GUSIwithMPWSockets(); - -void GUSISetup(void (*socketfamily)()); -void GUSIDefaultSetup(); -__END_DECLS -/* - * Types, defined in sys/socket.h - * - -#define SOCK_STREAM 1 // stream socket -#define SOCK_DGRAM 2 // datagram socket - -*/ - -/* - * Defined in sys/un.h - * - -struct sockaddr_un { - short sun_family; - char sun_path[108]; -}; - -*/ - -#ifndef PRAGMA_ALIGN_SUPPORTED -#error Apple had some fun with the conditional macros again -#endif - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif - -/* -struct sockaddr_atlk { - short family; - AddrBlock addr; -}; - -struct sockaddr_atlk_sym { - short family; - EntityName name; -}; - -struct sockaddr_ppc { - short family; - LocationNameRec location; - PPCPortRec port; -}; - -// Definitions for choose() - -#define CHOOSE_DEFAULT 1 -#define CHOOSE_NEW 2 -#define CHOOSE_DIR 4 - -typedef struct { - short numTypes; - SFTypeList types; -} sa_constr_file; - -typedef struct { - short numTypes; - NLType types; -} sa_constr_atlk; - - -// Definitions for sa_constr_ppc - -#define PPC_CON_NEWSTYLE 0x8000 -#define PPC_CON_MATCH_NAME 0x0001 -#define PPC_CON_MATCH_TYPE 0x0002 -#define PPC_CON_MATCH_NBP 0x0004 - -typedef struct { - short flags; - Str32 nbpType; - PPCPortRec match; -} sa_constr_ppc; - -*/ - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -__BEGIN_DECLS -/* - * IO/Socket stuff, defined elsewhere (unistd.h, sys/socket.h - * -*/ -int socket(int domain, int type, short protocol); -int bind(int s, void *name, int namelen); -int connect(int s, void *addr, int addrlen); -int listen(int s, int qlen); -int accept(int s, void *addr, int *addrlen); -int close(int s); -int read(int s, char *buffer, unsigned buflen); -int readv(int s, struct iovec *iov, int count); -int recv(int s, void *buffer, int buflen, int flags); -int recvfrom(int s, void *buffer, int buflen, int flags, void *from, int *fromlen); -int recvmsg(int s,struct msghdr *msg,int flags); -int write(int s, const char *buffer, unsigned buflen); -int writev(int s, struct iovec *iov, int count); -int send(int s, void *buffer, int buflen, int flags); -int sendto (int s, void *buffer, int buflen, int flags, void *to, int tolen); -int sendmsg(int s,struct msghdr *msg,int flags); -int select(int width, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); -int getdtablesize(void); -int getsockname(int s, void *name, int *namelen); -int getpeername(int s, struct sockaddr *name, int *namelen); -int shutdown(int s, int how); -int fcntl(int s, unsigned int cmd, int arg); -int dup(int s); -int dup2(int s, int s1); -//int ioctl(int d, unsigned int request, long *argp); -int getsockopt(int s, int level, int optname, char *optval, int * optlen); -int setsockopt(int s, int level, int optname, char *optval, int optlen); -int isatty(int); -int remove(const char *filename); -int rename(const char *oldname, const char *newname); -int creat(const char*); -int faccess(char*, unsigned int, long*); -long lseek(int, long, int); -int open(const char*, int); -int unlink(char*); -int symlink(char* linkto, char* linkname); -int readlink(char* path, char* buf, int bufsiz); -int truncate(char *path, long length); -int ftruncate(int fd, long length); -int chdir(char * path); -int mkdir(char * path); -int rmdir(char * path); -char * getcwd(char * buf, int size); - - -/* - * Defined in stdio.h - */ - -#ifdef __MWERKS__ -void fsetfileinfo (char *filename, unsigned long newcreator, unsigned long newtype); -#endif - -void fgetfileinfo (char *filename, unsigned long * creator, unsigned long * type); - -#ifdef __MWERKS__ -FILE *fdopen(int fd, const char *mode); -int fwalk(int (*func)(FILE * stream)); -#endif - -int choose( - int domain, - int type, - char * prompt, - void * constraint, - int flags, - void * name, - int * namelen); - -/* - * Hostname routines, defined in netdb.h - * -*/ - -/* - * Structures returned by network data base library. All addresses are - * supplied in host order, and returned in network order (suitable for - * use in system calls). - */ -struct hostent { - char *h_name; /* official name of host */ - char **h_aliases; /* alias list */ - int h_addrtype; /* host address type */ - int h_length; /* length of address */ - char **h_addr_list; /* list of addresses from name server */ -#define h_addr h_addr_list[0] /* address, for backward compatiblity */ -}; - -/* - * Assumption here is that a network number - * fits in 32 bits -- probably a poor one. - */ -struct netent { - char *n_name; /* official name of net */ - char **n_aliases; /* alias list */ - int n_addrtype; /* net address type */ - unsigned long n_net; /* network # */ -}; - -struct servent { - char *s_name; /* official service name */ - char **s_aliases; /* alias list */ - int s_port; /* port # */ - char *s_proto; /* protocol to use */ -}; - -struct protoent { - char *p_name; /* official protocol name */ - char **p_aliases; /* alias list */ - int p_proto; /* protocol # */ -}; - -/* - * Error return codes from gethostbyname() and gethostbyaddr() - * (left in extern int h_errno). - */ - -#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ -#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */ -#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ -#define NO_DATA 4 /* Valid name, no data record of requested type */ -#define NO_ADDRESS NO_DATA /* no address, look for MX record */ - -int gethostname(char *machname, long buflen); - -void endhostent __P((void)); -void endnetent __P((void)); -void endprotoent __P((void)); -void endservent __P((void)); -struct hostent *gethostbyaddr __P((const char *, int, int)); -struct hostent *gethostbyname __P((const char *)); -struct hostent *gethostent __P((void)); -struct netent *getnetbyaddr __P((long, int)); /* u_long? */ -struct netent *getnetbyname __P((const char *)); -struct netent *getnetent __P((void)); -struct protoent *getprotobyname __P((const char *)); -struct protoent *getprotobynumber __P((int)); -struct protoent *getprotoent __P((void)); -struct servent *getservbyname __P((const char *, const char *)); -struct servent *getservbyport __P((int, const char *)); -struct servent *getservent __P((void)); -void herror __P((const char *)); -void sethostent __P((int)); -/* void sethostfile __P((const char *)); */ -void setnetent __P((int)); -void setprotoent __P((int)); -void setservent __P((int)); - - -char * inet_ntoa(struct in_addr inaddr); -struct in_addr inet_addr(const char *address); - -/* - * GUSI supports a number of hooks. Every one of them has a different prototype, but needs - * to be passed as a GUSIHook - */ - -typedef enum { - GUSI_SpinHook, /* A GUSISpinFn, to be called when a call blocks */ - GUSI_ExecHook, /* Boolean (*hook)(const GUSIFileRef & ref), decides if file is executable */ - GUSI_FTypeHook,/* Boolean (*hook)(const FSSpec & spec) sets a default file type */ - GUSI_SpeedHook /* A long integer, to be added to the cursor spin variable */ -} GUSIHookCode; - -typedef void (*GUSIHook)(void); -void GUSISetHook(GUSIHookCode code, GUSIHook hook); -GUSIHook GUSIGetHook(GUSIHookCode code); - -/* - * What to do when a routine blocks - */ - -/* Defined for compatibility */ -#define GUSISetSpin(routine) GUSISetHook(GUSI_SpinHook, (GUSIHook)routine) -#define GUSIGetSpin() (GUSISpinFn) GUSIGetHook(GUSI_SpinHook) - -int GUSISetEvents(GUSIEvtTable table); -GUSIEvtHandler * GUSIGetEvents(void); - -extern GUSIEvtHandler GUSISIOWEvents[]; - -#define SIGPIPE 13 -#define SIGALRM 14 - -/* - * BSD memory routines, defined in compat.h - * -*/ -#define index(a, b) strchr(a, b) -#define rindex(a, b) strrchr(a, b) -#define bzero(from, len) memset(from, 0, len) -#define bcopy(from, to, len) memcpy(to, from, len) -#define bcmp(s1, s2, len) memcmp(s1, s2, len) -#define bfill(from, len, x) memset(from, x, len) - - -__END_DECLS - - typedef struct wxSockInternal - { - long nothing ; - } ; - -#endif /* !_GUSI_ */ \ No newline at end of file diff --git a/include/wx/mac/mdi.h b/include/wx/mac/mdi.h deleted file mode 100644 index 6f9fc294e2..0000000000 --- a/include/wx/mac/mdi.h +++ /dev/null @@ -1,164 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: MDI (Multiple Document Interface) classes. -// This doesn't have to be implemented just like Windows, -// it could be a tabbed design as in wxGTK. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MDI_H_ -#define _WX_MDI_H_ - -#ifdef __GNUG__ -#pragma interface "mdi.h" -#endif - -#include "wx/frame.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxStatusLineNameStr; - -class WXDLLEXPORT wxMDIClientWindow; -class WXDLLEXPORT wxMDIChildFrame; - -class WXDLLEXPORT wxMDIParentFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - - friend class WXDLLEXPORT wxMDIChildFrame; -public: - - wxMDIParentFrame(); - inline wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, // Scrolling refers to client window - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - void OnSize(wxSizeEvent& event); - void OnActivate(wxActivateEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - - void SetMenuBar(wxMenuBar *menu_bar); - - // Gets the size available for subwindows after menu size, toolbar size - // and status bar size have been subtracted. If you want to manage your own - // toolbar(s), don't call SetToolBar. - void GetClientSize(int *width, int *height) const; - - // Get the active MDI child window (Windows only) - wxMDIChildFrame *GetActiveChild() const ; - - // Get the client window - inline wxMDIClientWindow *GetClientWindow() const { return m_clientWindow; }; - - // Create the client window class (don't Create the window, - // just return a new class) - virtual wxMDIClientWindow *OnCreateClient() ; - - // MDI operations - virtual void Cascade(); - virtual void Tile(); - virtual void ArrangeIcons(); - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -protected: - - // TODO maybe have this member - wxMDIClientWindow *m_clientWindow; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxMDIChildFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) -public: - - wxMDIChildFrame(); - inline wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIChildFrame(); - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - void SetClientSize(int width, int height); - void GetPosition(int *x, int *y) const ; - - // MDI operations - virtual void Maximize(); - virtual void Restore(); - virtual void Activate(); -}; - -/* The client window is a child of the parent MDI frame, and itself - * contains the child MDI frames. - * However, you create the MDI children as children of the MDI parent: - * only in the implementation does the client window become the parent - * of the children. Phew! So the children are sort of 'adopted'... - */ - -class WXDLLEXPORT wxMDIClientWindow: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - public: - - wxMDIClientWindow() ; - inline wxMDIClientWindow(wxMDIParentFrame *parent, long style = 0) - { - CreateClient(parent, style); - } - - ~wxMDIClientWindow(); - - // Note: this is virtual, to allow overridden behaviour. - virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL); - - // Explicitly call default scroll behaviour - void OnScroll(wxScrollEvent& event); - -protected: - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_MDI_H_ diff --git a/include/wx/mac/menu.h b/include/wx/mac/menu.h deleted file mode 100644 index fa3936557c..0000000000 --- a/include/wx/mac/menu.h +++ /dev/null @@ -1,162 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -#ifdef __GNUG__ -#pragma interface "menu.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" - -class WXDLLEXPORT wxMenuItem; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenu; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenu: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - // ctor & dtor - wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL); - ~wxMenu(); - - // construct menu - // append items to the menu - // separator line - void AppendSeparator(); - // normal item - void Append(int id, const wxString& Label, const wxString& helpString = wxEmptyString, - bool checkable = FALSE); - // a submenu - void Append(int id, const wxString& Label, wxMenu *SubMenu, - const wxString& helpString = wxEmptyString); - // the most generic form (create wxMenuItem first and use it's functions) - void Append(wxMenuItem *pItem); - // insert a break in the menu - void Break(); - // delete an item - void Delete(int id); - - // menu item control - void Enable(int id, bool Flag); - bool Enabled(int id) const; - inline bool IsEnabled(int id) const { return Enabled(id); }; - void Check(int id, bool Flag); - bool Checked(int id) const; - inline bool IsChecked(int id) const { return IsChecked(id); }; - - // Client data - inline void SetClientData(void* clientData) { m_clientData = clientData; } - inline void* GetClientData() const { return m_clientData; } - - // item properties - // title - void SetTitle(const wxString& label); - const wxString GetTitle() const; - // label - void SetLabel(int id, const wxString& label); - wxString GetLabel(int id) const; - // help string - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - // find item - // Finds the item id matching the given string, -1 if not found. - virtual int FindItem(const wxString& itemString) const ; - // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const; - - void ProcessCommand(wxCommandEvent& event); - inline void Callback(const wxFunction func) { m_callback = func; } - - virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; } - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline wxList& GetItems() const { return (wxList&) m_menuItems; } - -public: - wxFunction m_callback; - - int m_noItems; - wxString m_title; - wxMenuBar * m_menuBar; - wxList m_menuItems; - wxEvtHandler * m_parent; - wxEvtHandler * m_eventHandler; - void* m_clientData; -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxMenuBar: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - - wxMenuBar(); - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - ~wxMenuBar(); - - void Append(wxMenu *menu, const wxString& title); - // Must only be used AFTER menu has been attached to frame, - // otherwise use individual menus to enable/disable items - void Enable(int Id, bool Flag); - bool Enabled(int Id) const ; - inline bool IsEnabled(int Id) const { return Enabled(Id); }; - void EnableTop(int pos, bool Flag); - void Check(int id, bool Flag); - bool Checked(int id) const ; - inline bool IsChecked(int Id) const { return Checked(Id); }; - void SetLabel(int id, const wxString& label) ; - wxString GetLabel(int id) const ; - void SetLabelTop(int pos, const wxString& label) ; - wxString GetLabelTop(int pos) const ; - virtual void Delete(wxMenu *menu, int index = 0); /* Menu not destroyed */ - virtual bool OnAppend(wxMenu *menu, const char *title); - virtual bool OnDelete(wxMenu *menu, int index); - - virtual void SetHelpString(int Id, const wxString& helpString); - virtual wxString GetHelpString(int Id) const ; - - virtual int FindMenuItem(const wxString& menuString, const wxString& itemString) const ; - - // Find wxMenuItem for item ID, and return item's - // menu too if itemMenu is non-NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const ; - - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline int GetMenuCount() const { return m_menuCount; } - inline wxMenu* GetMenu(int i) const { return m_menus[i]; } - - public: - wxEvtHandler * m_eventHandler; - int m_menuCount; - wxMenu ** m_menus; - wxString * m_titles; - wxFrame * m_menuBarFrame; -/* TODO: data that represents the actual menubar when created. - */ -}; - -#endif // _WX_MENU_H_ diff --git a/include/wx/mac/menuitem.h b/include/wx/mac/menuitem.h deleted file mode 100644 index 9c912967f1..0000000000 --- a/include/wx/mac/menuitem.h +++ /dev/null @@ -1,95 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MENUITEM_H -#define _MENUITEM_H - -#ifdef __GNUG__ -#pragma interface "menuitem.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/setup.h" - -// an exception to the general rule that a normal header doesn't include other -// headers - only because ownerdrw.h is not always included and I don't want -// to write #ifdef's everywhere... -#if wxUSE_OWNER_DRAWN -#include "wx/ownerdrw.h" -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// id for a separator line in the menu (invalid for normal item) -#define ID_SEPARATOR (-1) - -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenuItem: public wxObject -#if wxUSE_OWNER_DRAWN - , public wxOwnerDrawn -#endif -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - // ctor & dtor - wxMenuItem(wxMenu *pParentMenu = NULL, int id = ID_SEPARATOR, - const wxString& strName = "", const wxString& wxHelp = "", - bool bCheckable = FALSE, wxMenu *pSubMenu = NULL); - virtual ~wxMenuItem(); - - // accessors (some more are inherited from wxOwnerDrawn or are below) - bool IsSeparator() const { return m_idItem == ID_SEPARATOR; } - bool IsEnabled() const { return m_bEnabled; } - bool IsChecked() const { return m_bChecked; } - - int GetId() const { return m_idItem; } - const wxString& GetHelp() const { return m_strHelp; } - wxMenu *GetSubMenu() const { return m_pSubMenu; } - - // operations - void SetName(const wxString& strName) { m_strName = strName; } - void SetHelp(const wxString& strHelp) { m_strHelp = strHelp; } - - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); - - void DeleteSubMenu(); - -private: - int m_idItem; // numeric id of the item - wxString m_strHelp; // associated help string - wxMenu *m_pSubMenu, // may be NULL - *m_pParentMenu; // menu this item is contained in - bool m_bEnabled, // enabled or greyed? - m_bChecked; // checked? (only if checkable) - -#if wxUSE_OWNER_DRAWN - // wxOwnerDrawn base class already has these variables - nothing to do - -#else //!owner drawn - bool m_bCheckable; // can be checked? - wxString m_strName; // name or label of the item - -public: - const wxString& GetName() const { return m_strName; } - bool IsCheckable() const { return m_bCheckable; } -#endif //owner drawn -}; - -#endif //_MENUITEM_H diff --git a/include/wx/mac/metafile.h b/include/wx/mac/metafile.h deleted file mode 100644 index e4be296d92..0000000000 --- a/include/wx/mac/metafile.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.h -// Purpose: wxMetaFile, wxMetaFileDC classes. -// This probably should be restricted to Windows platforms, -// but if there is an equivalent on your platform, great. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_METAFIILE_H_ -#define _WX_METAFIILE_H_ - -#ifdef __GNUG__ -#pragma interface "metafile.h" -#endif - -#include "wx/setup.h" - -/* - * Metafile and metafile device context classes - work in Windows 3.1 only - * - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxMetaFile: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMetaFile) - public: - wxMetaFile(const wxString& file = ""); - ~wxMetaFile(); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - virtual bool SetClipboard(int width = 0, int height = 0); - - virtual bool Play(wxDC *dc); - // TODO - inline bool Ok() { return FALSE; }; - -/* TODO: Implementation - inline WXHANDLE GetHMETAFILE() { return m_metaFile; } - inline void SetHMETAFILE(WXHANDLE mf) { m_metaFile = mf; } - -protected: - WXHANDLE m_metaFile; -*/ -}; - -class WXDLLEXPORT wxMetaFileDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxMetaFileDC) - - public: - // Don't supply origin and extent - // Supply them to wxMakeMetaFilePlaceable instead. - wxMetaFileDC(const wxString& file = ""); - - // Supply origin and extent (recommended). - // Then don't need to supply them to wxMakeMetaFilePlaceable. - wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg); - - ~wxMetaFileDC(); - - // Should be called at end of drawing - virtual wxMetaFile *Close(); - virtual void SetMapMode(int mode); - virtual void GetTextExtent(const wxString& string, float *x, float *y, - float *descent = NULL, float *externalLeading = NULL, - wxFont *theFont = NULL, bool use16bit = FALSE); - - // Implementation - inline wxMetaFile *GetMetaFile() { return m_metaFile; } - inline void SetMetaFile(wxMetaFile *mf) { m_metaFile = mf; } - inline int GetWindowsMappingMode() { return m_windowsMappingMode; } - inline void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } - -protected: - int m_windowsMappingMode; - wxMetaFile *m_metaFile; -}; - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -// No origin or extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, float scale = 1.0); - -// Optional origin and extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = TRUE); - -#endif - // _WX_METAFIILE_H_ diff --git a/include/wx/mac/minifram.h b/include/wx/mac/minifram.h deleted file mode 100644 index 8f1644d558..0000000000 --- a/include/wx/mac/minifram.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.h -// Purpose: wxMiniFrame class. A small frame for e.g. floating toolbars. -// If there is no equivalent on your platform, just make it a -// normal frame. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#ifdef __GNUG__ -#pragma interface "minifram.h" -#endif - -#include "wx/frame.h" - -class WXDLLEXPORT wxMiniFrame: public wxFrame { - - DECLARE_DYNAMIC_CLASS(wxMiniFrame) - -public: - inline wxMiniFrame() {} - inline wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE|wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr) - { - // Use wxFrame constructor in absence of more specific code. - Create(parent, id, title, pos, size, style, name); - } - - ~wxMiniFrame() {} -protected: -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/include/wx/mac/msgdlg.h b/include/wx/mac/msgdlg.h deleted file mode 100644 index 58fa8e51ae..0000000000 --- a/include/wx/mac/msgdlg.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.h -// Purpose: wxMessageDialog class. Use generic version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGBOXDLG_H_ -#define _WX_MSGBOXDLG_H_ - -#ifdef __GNUG__ -#pragma interface "msgdlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -/* - * Message box dialog - */ - -WXDLLEXPORT_DATA(extern const char*) wxMessageBoxCaptionStr; - -class WXDLLEXPORT wxMessageDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxMessageDialog) -protected: - wxString m_caption; - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; -public: - wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - int ShowModal(); -}; - - -int WXDLLEXPORT wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - wxWindow *parent = NULL, int x = -1, int y = -1); - -#endif - // _WX_MSGBOXDLG_H_ diff --git a/include/wx/mac/notebook.h b/include/wx/mac/notebook.h deleted file mode 100644 index 83f8c1ce4e..0000000000 --- a/include/wx/mac/notebook.h +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) -// Author: AUTHOR -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_ -#define _WX_NOTEBOOK_H_ - -#ifdef __GNUG__ -#pragma interface "notebook.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/dynarray.h" -#include "wx/event.h" -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLEXPORT wxImageList; -class WXDLLEXPORT wxWindow; - -// array of notebook pages -typedef wxWindow wxNotebookPage; // so far, any window can be a page -WX_DEFINE_ARRAY(wxNotebookPage *, wxArrayPages); - -// ---------------------------------------------------------------------------- -// notebook events -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxNotebookEvent : public wxCommandEvent -{ -public: - wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0, - int nSel = -1, int nOldSel = -1) - : wxCommandEvent(commandType, id) { m_nSel = nSel; m_nOldSel = nOldSel; } - - // accessors - int GetSelection() const { return m_nSel; } - int GetOldSelection() const { return m_nOldSel; } - -private: - int m_nSel, // currently selected page - m_nOldSel; // previously selected page - - DECLARE_DYNAMIC_CLASS(wxNotebookEvent) -}; - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -// @@@ this class should really derive from wxTabCtrl, but the interface is not -// exactly the same, so I can't do it right now and instead we reimplement -// part of wxTabCtrl here -class wxNotebook : public wxControl -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // dtor - ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - int GetPageCount() const; - - // set the currently selected page, return the index of the previously - // selected one (or -1 on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(int nPage); - // cycle thru the tabs - void AdvanceSelection(bool bForward = TRUE); - // get the currently selected page - int GetSelection() const { return m_nSelection; } - - // set/get the title of a page - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - // get pointer (may be NULL) to the associated image list - wxImageList* GetImageList() const { return m_pImageList; } - - // sets/returns item's image index in the current image list - int GetPageImage(int nPage) const; - bool SetPageImage(int nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - - // operations - // ---------- - // remove one page from the notebook - bool DeletePage(int nPage); - // remove one page from the notebook, without deleting - bool RemovePage(int nPage); - // remove all pages - bool DeleteAllPages(); - // adds a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // the same as AddPage(), but adds it at the specified position - bool InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // get the panel which represents the given page - wxNotebookPage *GetPage(int nPage) { return m_aPages[nPage]; } - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnSelChange(wxNotebookEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - virtual void Command(wxCommandEvent& event); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool DoPhase(int nPhase); - -protected: - // common part of all ctors - void Init(); - - // helper functions - void ChangePage(int nOldSel, int nSel); // change pages - - wxImageList *m_pImageList; // we can have an associated image list - wxArrayPages m_aPages; // array of pages - - int m_nSelection; // the current selection (-1 if none) - - DECLARE_DYNAMIC_CLASS(wxNotebook) - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// event macros -// ---------------------------------------------------------------------------- -typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); - -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, \ \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#endif // _WX_NOTEBOOK_H_ diff --git a/include/wx/mac/palette.h b/include/wx/mac/palette.h deleted file mode 100644 index 3482b33934..0000000000 --- a/include/wx/mac/palette.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: wxPalette class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#ifdef __GNUG__ -#pragma interface "palette.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxPalette; - -class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPalette; -public: - wxPaletteRefData(); - ~wxPaletteRefData(); -/* TODO: implementation -protected: - WXHPALETTE m_hPalette; -*/ -}; - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -class WXDLLEXPORT wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - -public: - wxPalette(); - inline wxPalette(const wxPalette& palette) { Ref(palette); } - - wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - ~wxPalette(); - bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } - inline bool operator == (const wxPalette& palette) { return m_refData == palette.m_refData; } - inline bool operator != (const wxPalette& palette) { return m_refData != palette.m_refData; } - -/* TODO: implementation - inline WXHPALETTE GetHPALETTE() const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } - void SetHPALETTE(WXHPALETTE pal); -*/ -}; - -#endif - // _WX_PALETTE_H_ diff --git a/include/wx/mac/pen.h b/include/wx/mac/pen.h deleted file mode 100644 index 938908b56b..0000000000 --- a/include/wx/mac/pen.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: wxPen class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#ifdef __GNUG__ -#pragma interface "pen.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/colour.h" -#include "wx/bitmap.h" - -typedef long wxDash ; - -class WXDLLEXPORT wxPen; - -class WXDLLEXPORT wxPenRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPen; -public: - wxPenRefData(); - wxPenRefData(const wxPenRefData& data); - ~wxPenRefData(); - -protected: - int m_width; - int m_style; - int m_join ; - int m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; - wxColour m_colour; -/* TODO: implementation - WXHPEN m_hPen; -*/ -}; - -#define M_PENDATA ((wxPenRefData *)m_refData) - -// Pen -class WXDLLEXPORT wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) -public: - wxPen(); - wxPen(const wxColour& col, int width, int style); - wxPen(const wxBitmap& stipple, int width); - inline wxPen(const wxPen& pen) { Ref(pen); } - ~wxPen(); - - inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; } - inline bool operator == (const wxPen& pen) { return m_refData == pen.m_refData; } - inline bool operator != (const wxPen& pen) { return m_refData != pen.m_refData; } - - virtual bool Ok() const { return (m_refData != NULL) ; } - - // Override in order to recreate the pen - void SetColour(const wxColour& col) ; - void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - - void SetWidth(int width) ; - void SetStyle(int style) ; - void SetStipple(const wxBitmap& stipple) ; - void SetDashes(int nb_dashes, const wxDash *dash) ; - void SetJoin(int join) ; - void SetCap(int cap) ; - - inline wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); }; - inline int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); }; - inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); }; - inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); }; - inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); }; - inline int GetDashes(wxDash **ptr) const { - *ptr = (M_PENDATA ? M_PENDATA->m_dash : (wxDash*) NULL); return (M_PENDATA ? M_PENDATA->m_nbDash : 0); - } - - inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); }; - -// Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_PEN_H_ diff --git a/include/wx/mac/print.h b/include/wx/mac/print.h deleted file mode 100644 index bac3703496..0000000000 --- a/include/wx/mac/print.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: print.h -// Purpose: wxPrinter, wxPrintPreview classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINT_H_ -#define _WX_PRINT_H_ - -#ifdef __GNUG__ -#pragma interface "print.h" -#endif - -#include "wx/prntbase.h" - -/* - * Represents the printer: manages printing a wxPrintout object - */ - -class WXDLLEXPORT wxPrinter: public wxPrinterBase -{ - DECLARE_DYNAMIC_CLASS(wxPrinter) - - public: - wxPrinter(wxPrintData *data = NULL); - ~wxPrinter(); - - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE); - virtual bool PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); -}; - -/* - * wxPrintPreview - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLEXPORT wxPrintPreview: public wxPrintPreviewBase -{ - DECLARE_CLASS(wxPrintPreview) - - public: - wxPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting = NULL, wxPrintData *data = NULL); - ~wxPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); -}; - -#endif - // _WX_PRINT_H_ diff --git a/include/wx/mac/printdlg.h b/include/wx/mac/printdlg.h deleted file mode 100644 index ac31a49096..0000000000 --- a/include/wx/mac/printdlg.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.h -// Purpose: wxPrintDialog, wxPageSetupDialog classes. -// Use generic, PostScript version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_ -#define _WX_PRINTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "printdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * wxPrinterDialog - * The common dialog for printing. - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxPrintDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPrintDialog) - - public: - wxPrintDialog(); - wxPrintDialog(wxWindow *parent, wxPrintData* data = NULL); - ~wxPrintDialog(); - - bool Create(wxWindow *parent, wxPrintData* data = NULL); - virtual int ShowModal(); - - inline wxPrintData& GetPrintData() { return m_printData; } - virtual wxDC *GetPrintDC(); - - private: - wxPrintData m_printData; - wxDC* m_printerDC; - wxWindow* m_dialogParent; -}; - -class WXDLLEXPORT wxPageSetupDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPageSetupDialog) - - private: - wxPageSetupData m_pageSetupData; - wxWindow* m_dialogParent; - public: - wxPageSetupDialog(); - wxPageSetupDialog(wxWindow *parent, wxPageSetupData *data = NULL); - ~wxPageSetupDialog(); - - bool Create(wxWindow *parent, wxPageSetupData *data = NULL); - virtual int ShowModal(); - - inline wxPageSetupData& GetPageSetupData() { return m_pageSetupData; } -}; - -#endif - // _WX_PRINTDLG_H_ diff --git a/include/wx/mac/private.h b/include/wx/mac/private.h deleted file mode 100644 index 922c172436..0000000000 --- a/include/wx/mac/private.h +++ /dev/null @@ -1,21 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: private.h -// Purpose: Private declarations -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_H_ -#define _WX_PRIVATE_H_ - -#include "wx/defs.h" - -/* TODO: put any private declarations here. - */ - -#endif - // _WX_PRIVATE_H_ diff --git a/include/wx/mac/radiobox.h b/include/wx/mac/radiobox.h deleted file mode 100644 index cb7c5ba405..0000000000 --- a/include/wx/mac/radiobox.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: wxRadioBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "radiobox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioBoxNameStr; - -// List box item -class WXDLLEXPORT wxBitmap ; - -class WXDLLEXPORT wxRadioBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioBox) -public: - wxRadioBox(); - - inline wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); - } - - ~wxRadioBox(); - - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr); - - int FindString(const wxString& s) const; - void SetSelection(int N); - int GetSelection() const; - wxString GetString(int N) const; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void GetSize(int *x, int *y) const; - void GetPosition(int *x, int *y) const; - wxString GetLabel() const; - void SetLabel(const wxString& label); - void SetLabel(int item, const wxString& label) ; - wxString GetLabel(int item) const; - bool Show(bool show); - void SetFocus(); - void Enable(bool enable); - void Enable(int item, bool enable); - void Show(int item, bool show) ; - inline void SetLabelFont(const wxFont& WXUNUSED(font)) {}; - inline void SetButtonFont(const wxFont& font) { SetFont(font); } - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection(const wxString& s); - inline virtual int Number() const { return m_noItems; } ; - void Command(wxCommandEvent& event); - - inline int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } - inline void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } - -protected: -/* TODO: implementation - WXHWND * m_radioButtons; -*/ - int m_majorDim ; - int m_noItems; - int m_noRowsOrCols; - int m_selectedButton; - -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/include/wx/mac/radiobut.h b/include/wx/mac/radiobut.h deleted file mode 100644 index 8e8bf1313d..0000000000 --- a/include/wx/mac/radiobut.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: wxRadioButton class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -#ifdef __GNUG__ -#pragma interface "radiobut.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioButtonNameStr; - -class WXDLLEXPORT wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) - protected: - public: - inline wxRadioButton() {} - inline wxRadioButton(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - virtual void SetLabel(const wxString& label); - virtual void SetValue(bool val); - virtual bool GetValue() const ; - - void Command(wxCommandEvent& event); -}; - -// Not implemented -#if 0 -class WXDLLEXPORT wxBitmap ; - -WXDLLEXPORT_DATA(extern const char*) wxBitmapRadioButtonNameStr; - -class WXDLLEXPORT wxBitmapRadioButton: public wxRadioButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapRadioButton) - protected: - wxBitmap *theButtonBitmap; - public: - inline wxBitmapRadioButton() { theButtonBitmap = NULL; } - inline wxBitmapRadioButton(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr); - - virtual void SetLabel(const wxBitmap *label); - virtual void SetValue(bool val) ; - virtual bool GetValue() const ; -}; -#endif - -#endif - // _WX_RADIOBUT_H_ diff --git a/include/wx/mac/region.h b/include/wx/mac/region.h deleted file mode 100644 index 04d143c2e9..0000000000 --- a/include/wx/mac/region.h +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: wxRegion class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGION_H_ -#define _WX_REGION_H_ - -#ifdef __GNUG__ -#pragma interface "region.h" -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxPoint; - -enum wxRegionContain { - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -class WXDLLEXPORT wxRegion : public wxGDIObject { -DECLARE_DYNAMIC_CLASS(wxRegion); - friend class WXDLLEXPORT wxRegionIterator; -public: - wxRegion(long x, long y, long w, long h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(); - ~wxRegion(); - - //# Copying - inline wxRegion(const wxRegion& r) - { Ref(r); } - inline wxRegion& operator = (const wxRegion& r) - { Ref(r); return (*this); } - - //# Modify region - // Clear current region - void Clear(); - - // Union rectangle or region with this. - inline bool Union(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_OR); } - inline bool Union(const wxRect& rect) { return Combine(rect, wxRGN_OR); } - inline bool Union(const wxRegion& region) { return Combine(region, wxRGN_OR); } - - // Intersect rectangle or region with this. - inline bool Intersect(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_AND); } - inline bool Intersect(const wxRect& rect) { return Combine(rect, wxRGN_AND); } - inline bool Intersect(const wxRegion& region) { return Combine(region, wxRGN_AND); } - - // Subtract rectangle or region from this: - // Combines the parts of 'this' that are not part of the second region. - inline bool Subtract(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_DIFF); } - inline bool Subtract(const wxRect& rect) { return Combine(rect, wxRGN_DIFF); } - inline bool Subtract(const wxRegion& region) { return Combine(region, wxRGN_DIFF); } - - // XOR: the union of two combined regions except for any overlapping areas. - inline bool Xor(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_XOR); } - inline bool Xor(const wxRect& rect) { return Combine(rect, wxRGN_XOR); } - inline bool Xor(const wxRegion& region) { return Combine(region, wxRGN_XOR); } - - //# Information on region - // Outer bounds of region - void GetBox(long& x, long& y, long&w, long &h) const; - wxRect GetBox() const ; - - // Is region empty? - bool Empty() const; - inline bool IsEmpty() const { return Empty(); } - - //# Tests - // Does the region contain the point (x,y)? - wxRegionContain Contains(long x, long y) const; - // Does the region contain the point pt? - wxRegionContain Contains(const wxPoint& pt) const; - // Does the region contain the rectangle (x, y, w, h)? - wxRegionContain Contains(long x, long y, long w, long h) const; - // Does the region contain the rectangle rect? - wxRegionContain Contains(const wxRect& rect) const; - -// Internal - bool Combine(long x, long y, long width, long height, wxRegionOp op); - bool Combine(const wxRegion& region, wxRegionOp op); - bool Combine(const wxRect& rect, wxRegionOp op); -}; - -class WXDLLEXPORT wxRegionIterator : public wxObject { -DECLARE_DYNAMIC_CLASS(wxRegionIterator); -public: - wxRegionIterator(); - wxRegionIterator(const wxRegion& region); - ~wxRegionIterator(); - - void Reset() { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool () const { return m_current < m_numRects; } - bool HaveRects() const { return m_current < m_numRects; } - - void operator ++ (); - void operator ++ (int); - - long GetX() const; - long GetY() const; - long GetW() const; - long GetWidth() const { return GetW(); } - long GetH() const; - long GetHeight() const { return GetH(); } - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); } - -private: - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; -}; - -#endif - // _WX_REGION_H_ diff --git a/include/wx/mac/scrolbar.h b/include/wx/mac/scrolbar.h deleted file mode 100644 index 3ec992e78e..0000000000 --- a/include/wx/mac/scrolbar.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrollbar.h -// Purpose: wxScrollBar class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "scrolbar.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxScrollBarNameStr; - -// Scrollbar item -class WXDLLEXPORT wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - -public: - inline wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - ~wxScrollBar(); - - inline wxScrollBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - int GetThumbPosition() const ; - inline int GetThumbSize() const { return m_pageSize; } - inline int GetPageSize() const { return m_viewSize; } - inline int GetRange() const { return m_objectSize; } - - virtual void SetThumbPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE); - - void Command(wxCommandEvent& event); - -protected: - int m_pageSize; - int m_viewSize; - int m_objectSize; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SCROLBAR_H_ diff --git a/include/wx/mac/settings.h b/include/wx/mac/settings.h deleted file mode 100644 index 8ed994f1ba..0000000000 --- a/include/wx/mac/settings.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: wxSystemSettings class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_ -#define _WX_SETTINGS_H_ - -#ifdef __GNUG__ -#pragma interface "settings.h" -#endif - -#include "wx/setup.h" -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/colour.h" -#include "wx/font.h" - -#define wxSYS_WHITE_BRUSH 0 -#define wxSYS_LTGRAY_BRUSH 1 -#define wxSYS_GRAY_BRUSH 2 -#define wxSYS_DKGRAY_BRUSH 3 -#define wxSYS_BLACK_BRUSH 4 -#define wxSYS_NULL_BRUSH 5 -#define wxSYS_HOLLOW_BRUSH wxSYS_NULL_BRUSH -#define wxSYS_WHITE_PEN 6 -#define wxSYS_BLACK_PEN 7 -#define wxSYS_NULL_PEN 8 -#define wxSYS_OEM_FIXED_FONT 10 -#define wxSYS_ANSI_FIXED_FONT 11 -#define wxSYS_ANSI_VAR_FONT 12 -#define wxSYS_SYSTEM_FONT 13 -#define wxSYS_DEVICE_DEFAULT_FONT 14 -#define wxSYS_DEFAULT_PALETTE 15 -#define wxSYS_SYSTEM_FIXED_FONT 16 // Obsolete -#define wxSYS_DEFAULT_GUI_FONT 17 - -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT - -// Metrics -#define wxSYS_MOUSE_BUTTONS 1 -#define wxSYS_BORDER_X 2 -#define wxSYS_BORDER_Y 3 -#define wxSYS_CURSOR_X 4 -#define wxSYS_CURSOR_Y 5 -#define wxSYS_DCLICK_X 6 -#define wxSYS_DCLICK_Y 7 -#define wxSYS_DRAG_X 8 -#define wxSYS_DRAG_Y 9 -#define wxSYS_EDGE_X 10 -#define wxSYS_EDGE_Y 11 -#define wxSYS_HSCROLL_ARROW_X 12 -#define wxSYS_HSCROLL_ARROW_Y 13 -#define wxSYS_HTHUMB_X 14 -#define wxSYS_ICON_X 15 -#define wxSYS_ICON_Y 16 -#define wxSYS_ICONSPACING_X 17 -#define wxSYS_ICONSPACING_Y 18 -#define wxSYS_WINDOWMIN_X 19 -#define wxSYS_WINDOWMIN_Y 20 -#define wxSYS_SCREEN_X 21 -#define wxSYS_SCREEN_Y 22 -#define wxSYS_FRAMESIZE_X 23 -#define wxSYS_FRAMESIZE_Y 24 -#define wxSYS_SMALLICON_X 25 -#define wxSYS_SMALLICON_Y 26 -#define wxSYS_HSCROLL_Y 27 -#define wxSYS_VSCROLL_X 28 -#define wxSYS_VSCROLL_ARROW_X 29 -#define wxSYS_VSCROLL_ARROW_Y 30 -#define wxSYS_VTHUMB_Y 31 -#define wxSYS_CAPTION_Y 32 -#define wxSYS_MENU_Y 33 -#define wxSYS_NETWORK_PRESENT 34 -#define wxSYS_PENWINDOWS_PRESENT 35 -#define wxSYS_SHOW_SOUNDS 36 -#define wxSYS_SWAP_BUTTONS 37 - -class WXDLLEXPORT wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings() {} - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // _WX_SETTINGS_H_ diff --git a/include/wx/mac/setup.h b/include/wx/mac/setup.h deleted file mode 100644 index 77f7dfa27b..0000000000 --- a/include/wx/mac/setup.h +++ /dev/null @@ -1,129 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: setup.h -// Purpose: Configuration for the library -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - -/* - * General features - * - */ - -#define wxUSE_CONSTRAINTS 1 - // Use constraints mechanism -#define wxUSE_CONFIG 1 - // Use wxConfig, with CreateConfig in wxApp -#define _WX_GOODCOMPILER__ - // gcc can have problems, but Windows compilers - // are generally OK. -#define WXWIN_COMPATIBILITY 1 - // Compatibility with 1.66 API. - // Level 0: no backward compatibility, all new features - // Level 1: wxDC, OnSize (etc.) compatibility, but - // some new features such as event tables - -#define wxUSE_AUTOTRANS 0 - // Define wxTString -#define wxUSE_POSTSCRIPT 0 - // 0 for no PostScript device context -#define wxUSE_AFM_FOR_POSTSCRIPT 0 - // 1 to use font metric files in GetTextExtent -#define wxUSE_METAFILE 0 - // 0 for no Metafile and metafile device context -#define wxUSE_FORM 0 - // 0 for no wxForm -#define wxUSE_IPC 0 - // 0 for no interprocess comms -#define wxUSE_HELP 0 - // 0 for no help facility -#define wxUSE_RESOURCES 0 - // 0 for no wxGetResource/wxWriteResource -#define wxUSE_CLIPBOARD 0 - // 0 for no clipboard functions -#define wxUSE_SPLINES 0 - // 0 for no splines -#define wxUSE_XFIG_SPLINE_CODE 0 - // 1 for XFIG spline code, 0 for AIAI spline code. -// AIAI spline code is slower, but freer of copyright issues. - // 0 for no splines - -#define wxUSE_TOOLBAR 0 - // Use toolbars -#define wxUSE_DRAG_AND_DROP 0 - // 0 for no drag and drop - -#define wxUSE_WX_RESOURCES 0 - // Use .wxr resource mechanism (requires PrologIO library) - -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - // Set to 0 to disable document/view architecture -#define wxUSE_PRINTING_ARCHITECTURE 0 - // Set to 0 to disable print/preview architecture code -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0 - // Set to 0 to disable PostScript print/preview architecture code - // under Windows (just use Windows printing). -#define wxUSE_DYNAMIC_CLASSES 1 - // If 1, enables provision of run-time type information. - // NOW MANDATORY: don't change. -#define wxUSE_MEMORY_TRACING 1 - // If 1, enables debugging versions of wxObject::new and - // wxObject::delete *IF* WXDEBUG is also defined. - // WARNING: this code may not work with all architectures, especially - // if alignment is an issue. -#define wxUSE_DEBUG_CONTEXT 1 - // If 1, enables wxDebugContext, for - // writing error messages to file, etc. - // If WXDEBUG is not defined, will still use - // normal memory operators. - // It's recommended to set this to 1, - // since you may well need to output - // an error log in a production - // version (or non-debugging beta) -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - // In debug mode, cause new and delete to be redefined globally. - // If this causes problems (e.g. link errors), set this to 0. - -#define wxUSE_DEBUG_NEW_ALWAYS 1 - // In debug mode, causes new to be defined to - // be WXDEBUG_NEW (see object.h). - // If this causes problems (e.g. link errors), set this to 0. - -#define REMOVE_UNUSED_ARG 1 - // Set this to 0 if your compiler can't cope - // with omission of prototype parameters. - -#define wxUSE_C_MAIN 0 - // Set to 1 to use main.c instead of main.cpp (UNIX only) - -#define wxUSE_ODBC 0 - // Define 1 to use ODBC classes - -#define wxUSE_IOSTREAMH 0 - // VC++ 4.2 and above allows and - // but you can't mix them. Set to 1 for , - // 0 for - -#define wxUSE_WXCONFIG 0 - // if enabled, compiles built-in OS independent wxConfig - // class and it's file (any platform) and registry (Win) - // based implementations -/* - * Finer detail - * - */ - -#define wxUSE_APPLE_IEEE 1 - // if enabled, the float codec written by Apple - // will be used to write, in a portable way, - // float on the disk - -#endif - // _WX_SETUP_H_ diff --git a/include/wx/mac/slider.h b/include/wx/mac/slider.h deleted file mode 100644 index 239e914e5c..0000000000 --- a/include/wx/mac/slider.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: wxSlider class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_ -#define _WX_SLIDER_H_ - -#ifdef __GNUG__ -#pragma interface "slider.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxSliderNameStr; - -// Slider -class WXDLLEXPORT wxSlider: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSlider) - -public: - wxSlider(); - - inline wxSlider(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - ~wxSlider(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const ; - virtual void SetValue(int); - void GetSize(int *x, int *y) const ; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void GetPosition(int *x, int *y) const ; - bool Show(bool show); - - void SetRange(int minValue, int maxValue); - - inline int GetMin() const { return m_rangeMin; } - inline int GetMax() const { return m_rangeMax; } - - // For trackbars only - void SetTickFreq(int n, int pos); - inline int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const ; - void ClearSel() ; - void ClearTicks() ; - void SetLineSize(int lineSize); - int GetLineSize() const ; - int GetSelEnd() const ; - int GetSelStart() const ; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len) ; - int GetThumbLength() const ; - void SetTick(int tickPos) ; - - void Command(wxCommandEvent& event); - protected: - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SLIDER_H_ diff --git a/include/wx/mac/spinbutt.h b/include/wx/mac/spinbutt.h deleted file mode 100644 index afdb978c3f..0000000000 --- a/include/wx/mac/spinbutt.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.h -// Purpose: wxSpinButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_ -#define _WX_SPINBUTT_H_ - -#ifdef __GNUG__ -#pragma interface "spinbutt.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" - -/* - The wxSpinButton is like a small scrollbar than is often placed next - to a text control. - - wxSP_HORIZONTAL: horizontal spin button - wxSP_VERTICAL: vertical spin button (the default) - wxSP_ARROW_KEYS: arrow keys increment/decrement value - wxSP_WRAP: value wraps at either end - */ - -class WXDLLEXPORT wxSpinButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - public: - /* - * Public interface - */ - - wxSpinButton(); - - inline wxSpinButton(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton") - { - Create(parent, id, pos, size, style, name); - } - ~wxSpinButton(); - - bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - int GetValue() const ; - void SetValue(int val) ; - void SetRange(int minVal, int maxVal) ; - inline int GetMin() const { return m_min; } - inline int GetMax() const { return m_max; } - - // Operations - //////////////////////////////////////////////////////////////////////////// - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -protected: - int m_min; - int m_max; -}; - -class WXDLLEXPORT wxSpinEvent: public wxScrollEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - - public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// Spin events - -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } - -#define EVT_SPIN(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, - -#endif - // _WX_SPINBUTT_H_ diff --git a/include/wx/mac/statbmp.h b/include/wx/mac/statbmp.h deleted file mode 100644 index f371fddd2d..0000000000 --- a/include/wx/mac/statbmp.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: wxStaticBitmap class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_ -#define _WX_STATBMP_H_ - -#ifdef __GNUG__ -#pragma interface "statbmp.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBitmapNameStr; - -class WXDLLEXPORT wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - public: - inline wxStaticBitmap() { } - - inline wxStaticBitmap(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual void SetBitmap(const wxBitmap& bitmap); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; } - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - - protected: - wxBitmap m_messageBitmap; - -}; - -#endif - // _WX_STATBMP_H_ diff --git a/include/wx/mac/statbox.h b/include/wx/mac/statbox.h deleted file mode 100644 index 1aa4a6f88a..0000000000 --- a/include/wx/mac/statbox.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.h -// Purpose: wxStaticBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_ -#define _WX_STATBOX_H_ - -#ifdef __GNUG__ -#pragma interface "statbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBoxNameStr; - -// Group box -class WXDLLEXPORT wxStaticBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBox) - - public: - inline wxStaticBox() {} - inline wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetLabel(const wxString& label); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_STATBOX_H_ diff --git a/include/wx/mac/stattext.h b/include/wx/mac/stattext.h deleted file mode 100644 index aa8eaf229e..0000000000 --- a/include/wx/mac/stattext.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: wxStaticText class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -#ifdef __GNUG__ -#pragma interface "stattext.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticTextNameStr; - -class WXDLLEXPORT wxStaticText: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticText) - public: - inline wxStaticText() { } - - inline wxStaticText(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // accessors - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetLabel(const wxString&); - - // operations - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/include/wx/mac/statusbr.h b/include/wx/mac/statusbr.h deleted file mode 100644 index c5dcc0dc7d..0000000000 --- a/include/wx/mac/statusbr.h +++ /dev/null @@ -1,54 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: statusbr.h -// Purpose: native implementation of wxStatusBar. Optional; can use generic -// version instead. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBAR_H_ -#define _WX_STATBAR_H_ - -#ifdef __GNUG__ -#pragma interface "statbar.h" -#endif - -#include "wx/generic/statusbr.h" - -class WXDLLEXPORT wxStatusBarXX : public wxStatusBar -{ - DECLARE_DYNAMIC_CLASS(wxStatusBarXX); - -public: - // ctors - wxStatusBarXX(); - wxStatusBarXX(wxWindow *parent, wxWindowID id = -1, long style = wxST_SIZEGRIP); - - // create status line - bool Create(wxWindow *parent, wxWindowID id = -1, long style = wxST_SIZEGRIP); - - // a status line can have several (<256) fields numbered from 0 - virtual void SetFieldsCount(int number = 1, const int widths[] = NULL); - - // each field of status line has its own text - virtual void SetStatusText(const wxString& text, int number = 0); - virtual wxString GetStatusText(int number = 0) const; - - // set status line fields' widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - void OnSize(wxSizeEvent& event); - - DECLARE_EVENT_TABLE() - -protected: - void CopyFieldsWidth(const int widths[]); - void SetFieldsWidth(); -}; - -#endif - // _WX_STATBAR_H_ \ No newline at end of file diff --git a/include/wx/mac/tabctrl.h b/include/wx/mac/tabctrl.h deleted file mode 100644 index 80740019b4..0000000000 --- a/include/wx/mac/tabctrl.h +++ /dev/null @@ -1,138 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.h -// Purpose: wxTabCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TABCTRL_H_ -#define _WX_TABCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "tabctrl.h" -#endif - -class wxImageList; - -/* - * Flags returned by HitTest - */ - -#define wxTAB_HITTEST_NOWHERE 1 -#define wxTAB_HITTEST_ONICON 2 -#define wxTAB_HITTEST_ONLABEL 4 -#define wxTAB_HITTEST_ONITEM 6 - -class WXDLLEXPORT wxTabCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxTabCtrl) - public: - /* - * Public interface - */ - - wxTabCtrl(); - - inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl") - { - Create(parent, id, pos, size, style, name); - } - ~wxTabCtrl(); - -// Accessors - - // Get the selection - int GetSelection() const; - - // Get the tab with the current keyboard focus - int GetCurFocus() const; - - // Get the associated image list - wxImageList* GetImageList() const; - - // Get the number of items - int GetItemCount() const; - - // Get the rect corresponding to the tab - bool GetItemRect(int item, wxRect& rect) const; - - // Get the number of rows - int GetRowCount() const; - - // Get the item text - wxString GetItemText(int item) const ; - - // Get the item image - int GetItemImage(int item) const; - - // Get the item data - void* GetItemData(int item) const; - - // Set the selection - int SetSelection(int item); - - // Set the image list - void SetImageList(wxImageList* imageList); - - // Set the text for an item - bool SetItemText(int item, const wxString& text); - - // Set the image for an item - bool SetItemImage(int item, int image); - - // Set the data for an item - bool SetItemData(int item, void* data); - - // Set the size for a fixed-width tab control - void SetItemSize(const wxSize& size); - - // Set the padding between tabs - void SetPadding(const wxSize& padding); - -// Operations - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl"); - - // Delete all items - bool DeleteAllItems(); - - // Delete an item - bool DeleteItem(int item); - - // Hit test - int HitTest(const wxPoint& pt, long& flags); - - // Insert an item - bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL); - - void Command(wxCommandEvent& event); - -protected: - wxImageList* m_imageList; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxTabEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxTabEvent) - - public: - wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&); - -#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, -#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, - -#endif - // _WX_TABCTRL_H_ diff --git a/include/wx/mac/taskbar.h b/include/wx/mac/taskbar.h deleted file mode 100644 index 7f4a36b8b4..0000000000 --- a/include/wx/mac/taskbar.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.h -// Purpose: Defines wxTaskBarIcon class for manipulating icons on the -// task bar. Optional. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TASKBAR_H_ -#define _WX_TASKBAR_H_ - -#ifdef __GNUG__ -#pragma interface "taskbar.h" -#endif - -#include -#include - -class wxTaskBarIcon: public wxObject -{ -public: - wxTaskBarIcon(); - virtual ~wxTaskBarIcon(); - -// Accessors - -// Operations - bool SetIcon(const wxIcon& icon, const wxString& tooltip = ""); - bool RemoveIcon(); - -// Overridables - virtual void OnMouseMove(); - virtual void OnLButtonDown(); - virtual void OnLButtonUp(); - virtual void OnRButtonDown(); - virtual void OnRButtonUp(); - virtual void OnLButtonDClick(); - virtual void OnRButtonDClick(); - -// Data members -protected: -}; - -#endif - // _WX_TASKBAR_H_ diff --git a/include/wx/mac/textctrl.h b/include/wx/mac/textctrl.h deleted file mode 100644 index 675e21bb3f..0000000000 --- a/include/wx/mac/textctrl.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: wxTextCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "textctrl.h" -#endif - -#include "wx/control.h" - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -WXDLLEXPORT_DATA(extern const char*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Single-line text item -class WXDLLEXPORT wxTextCtrl: public wxControl - -// TODO Some platforms/compilers don't like inheritance from streambuf. - -#if (defined(__BORLANDC__) && !defined(__WIN32__)) || defined(__MWERKS__) -#define NO_TEXT_WINDOW_STREAM -#endif - -#ifndef NO_TEXT_WINDOW_STREAM -, public streambuf -#endif - -{ - DECLARE_DYNAMIC_CLASS(wxTextCtrl) - -public: - // creation - // -------- - wxTextCtrl(); - inline wxTextCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif - { - Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // accessors - // --------- - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - // operations - // ---------- - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // streambuf implementation -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); -#endif - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); - - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file); - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - virtual void DiscardEdits(); - virtual bool IsModified() const; - - virtual long XYToPosition(long x, long y) const ; - virtual void PositionToXY(long pos, long *x, long *y) const ; - virtual void ShowPosition(long pos); - virtual void Clear(); - - // callbacks - // --------- - void OnDropFiles(wxDropFilesEvent& event); -// void OnChar(wxKeyEvent& event); // Process 'enter' if required -// void OnEraseBackground(wxEraseEvent& event); - - // Implementation - // -------------- - virtual void Command(wxCommandEvent& event); - -protected: - wxString m_fileName; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TEXTCTRL_H_ diff --git a/include/wx/mac/timer.h b/include/wx/mac/timer.h deleted file mode 100644 index 953da997c6..0000000000 --- a/include/wx/mac/timer.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: wxTimer class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMER_H_ -#define _WX_TIMER_H_ - -#ifdef __GNUG__ -#pragma interface "timer.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxTimer: public wxObject -{ -public: - wxTimer(); - ~wxTimer(); - - virtual bool Start(int milliseconds = -1, - bool one_shot = FALSE); // Start timer - virtual void Stop(); // Stop timer - - virtual void Notify() = 0; // Override this member - - // Returns the current interval time (0 if stop) - int Interval() const { return m_milli; }; - bool OneShot() const { return m_oneShot; } - -protected: - bool m_oneShot ; - int m_milli ; - int m_lastMilli ; - - long m_id; - -private: - DECLARE_ABSTRACT_CLASS(wxTimer) -}; - -/* Note: these are implemented in common/timercmn.cpp, so need to implement them separately. - * But you may need to modify timercmn.cpp. - */ - -// Timer functions (milliseconds) -void WXDLLEXPORT wxStartTimer(); -// Gets time since last wxStartTimer or wxGetElapsedTime -long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); - -// EXPERIMENTAL: comment this out if it doesn't compile. -bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved); - -// Get number of seconds since 00:00:00 GMT, Jan 1st 1970. -long WXDLLEXPORT wxGetCurrentTime(); - -#endif - // _WX_TIMER_H_ diff --git a/include/wx/mac/toolbar.h b/include/wx/mac/toolbar.h deleted file mode 100644 index e42c5827ef..0000000000 --- a/include/wx/mac/toolbar.h +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.h -// Purpose: wxToolBar class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLBAR_H_ -#define _WX_TOOLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "toolbar.h" -#endif - -#include "wx/tbarbase.h" - -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxToolBar: public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxToolBar) - public: - /* - * Public interface - */ - - wxToolBar(); - - inline wxToolBar(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr) - { - Create(parent, id, pos, size, style, name); - } - ~wxToolBar(); - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - - // Set default bitmap size - void SetToolBitmapSize(const wxSize& size); - void EnableTool(int toolIndex, bool enable); // additional drawing on enabling - void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - void ClearTools(); - - // The button size is bigger than the bitmap size - wxSize GetToolSize() const; - - wxSize GetMaxSize() const; - - // Add all the buttons - virtual bool CreateTools(); - virtual void Layout() {} - - // The post-tool-addition call. TODO: do here whatever's - // necessary for completing the toolbar construction. - bool Realize() { return CreateTools(); }; - -protected: - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TOOLBAR_H_ diff --git a/include/wx/mac/treectrl.h b/include/wx/mac/treectrl.h deleted file mode 100644 index cb307ec0e9..0000000000 --- a/include/wx/mac/treectrl.h +++ /dev/null @@ -1,295 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h -// Purpose: wxTreeCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREECTRL_H_ -#define _WX_TREECTRL_H_ - -#ifdef __GNUG__ -#pragma interface "treectrl.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -#define wxTREE_MASK_HANDLE 0x0001 -#define wxTREE_MASK_STATE 0x0002 -#define wxTREE_MASK_TEXT 0x0004 -#define wxTREE_MASK_IMAGE 0x0008 -#define wxTREE_MASK_SELECTED_IMAGE 0x0010 -#define wxTREE_MASK_CHILDREN 0x0020 -#define wxTREE_MASK_DATA 0x0040 - -#define wxTREE_STATE_BOLD 0x0001 -#define wxTREE_STATE_DROPHILITED 0x0002 -#define wxTREE_STATE_EXPANDED 0x0004 -#define wxTREE_STATE_EXPANDEDONCE 0x0008 -#define wxTREE_STATE_FOCUSED 0x0010 -#define wxTREE_STATE_SELECTED 0x0020 -#define wxTREE_STATE_CUT 0x0040 - -#define wxTREE_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxTREE_HITTEST_BELOW 0x0002 // Below the client area. -#define wxTREE_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxTREE_HITTEST_ONITEMBUTTON 0x0010 // On the button associated with an item. -#define wxTREE_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxTREE_HITTEST_ONITEMINDENT 0x0040 // In the indentation associated with an item. -#define wxTREE_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxTREE_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxTREE_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxTREE_HITTEST_TOLEFT 0x0400 // To the right of the client area. -#define wxTREE_HITTEST_TORIGHT 0x0800 // To the left of the client area. - -#define wxTREE_HITTEST_ONITEM (wxTREE_HITTEST_ONITEMICON | wxTREE_HITTEST_ONITEMLABEL | wxTREE_HITTEST_ONITEMSTATEICON) - -// Flags for GetNextItem -enum { - wxTREE_NEXT_CARET, // Retrieves the currently selected item. - wxTREE_NEXT_CHILD, // Retrieves the first child item. The hItem parameter must be NULL. - wxTREE_NEXT_DROPHILITE, // Retrieves the item that is the target of a drag-and-drop operation. - wxTREE_NEXT_FIRSTVISIBLE, // Retrieves the first visible item. - wxTREE_NEXT_NEXT, // Retrieves the next sibling item. - wxTREE_NEXT_NEXTVISIBLE, // Retrieves the next visible item that follows the specified item. - wxTREE_NEXT_PARENT, // Retrieves the parent of the specified item. - wxTREE_NEXT_PREVIOUS, // Retrieves the previous sibling item. - wxTREE_NEXT_PREVIOUSVISIBLE, // Retrieves the first visible item that precedes the specified item. - wxTREE_NEXT_ROOT // Retrieves the first child item of the root item of which the specified item is a part. -}; - -// Flags for ExpandItem -enum { - wxTREE_EXPAND_EXPAND, - wxTREE_EXPAND_COLLAPSE, - wxTREE_EXPAND_COLLAPSE_RESET, - wxTREE_EXPAND_TOGGLE -}; - -// Flags for InsertItem -enum { - wxTREE_INSERT_LAST = -1, - wxTREE_INSERT_FIRST = -2, - wxTREE_INSERT_SORT = -3 -}; - -class WXDLLEXPORT wxTreeItem: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxTreeItem) -public: - long m_mask; - long m_itemId; - long m_state; - long m_stateMask; - wxString m_text; - int m_image; - int m_selectedImage; - int m_children; - long m_data; - - wxTreeItem(); - -// Accessors - inline long GetMask() const { return m_mask; } - inline long GetItemId() const { return m_itemId; } - inline long GetState() const { return m_state; } - inline long GetStateMask() const { return m_stateMask; } - inline wxString GetText() const { return m_text; } - inline int GetImage() const { return m_image; } - inline int GetSelectedImage() const { return m_selectedImage; } - inline int GetChildren() const { return m_children; } - inline long GetData() const { return m_data; } - - inline void SetMask(long mask) { m_mask = mask; } - inline void SetItemId(long id) { m_itemId = m_itemId = id; } - inline void SetState(long state) { m_state = state; } - inline void SetStateMask(long stateMask) { m_stateMask = stateMask; } - inline void GetText(const wxString& text) { m_text = text; } - inline void SetImage(int image) { m_image = image; } - inline void GetSelectedImage(int selImage) { m_selectedImage = selImage; } - inline void SetChildren(int children) { m_children = children; } - inline void SetData(long data) { m_data = data; } -}; - -class WXDLLEXPORT wxTreeCtrl: public wxControl -{ -public: - /* - * Public interface - */ - - // creation - // -------- - wxTreeCtrl(); - - inline wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl") - { - Create(parent, id, pos, size, style, validator, name); - } - ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl"); - - // accessors - // --------- - // - int GetCount() const; - - // indent - int GetIndent() const; - void SetIndent(int indent); - // image list - wxImageList *GetImageList(int which = wxIMAGE_LIST_NORMAL) const; - void SetImageList(wxImageList *imageList, int which = wxIMAGE_LIST_NORMAL); - - // navigation inside the tree - long GetNextItem(long item, int code) const; - bool ItemHasChildren(long item) const; - long GetChild(long item) const; - long GetParent(long item) const; - long GetFirstVisibleItem() const; - long GetNextVisibleItem(long item) const; - long GetSelection() const; - long GetRootItem() const; - - // generic function for (g|s)etting item attributes - bool GetItem(wxTreeItem& info) const; - bool SetItem(wxTreeItem& info); - // item state - int GetItemState(long item, long stateMask) const; - bool SetItemState(long item, long state, long stateMask); - // item image - bool SetItemImage(long item, int image, int selImage); - // item text - wxString GetItemText(long item) const; - void SetItemText(long item, const wxString& str); - // custom data associated with the item - long GetItemData(long item) const; - bool SetItemData(long item, long data); - // convenience function - bool IsItemExpanded(long item) - { - return (GetItemState(item, wxTREE_STATE_EXPANDED) & - wxTREE_STATE_EXPANDED) != 0; - } - - // bounding rect - bool GetItemRect(long item, wxRect& rect, bool textOnly = FALSE) const; - // - wxTextCtrl* GetEditControl() const; - - // operations - // ---------- - // adding/deleting items - bool DeleteItem(long item); - long InsertItem(long parent, wxTreeItem& info, - long insertAfter = wxTREE_INSERT_LAST); - // If image > -1 and selImage == -1, the same image is used for - // both selected and unselected items. - long InsertItem(long parent, const wxString& label, - int image = -1, int selImage = -1, - long insertAfter = wxTREE_INSERT_LAST); - - // changing item state - bool ExpandItem(long item) { return ExpandItem(item, wxTREE_EXPAND_EXPAND); } - bool CollapseItem(long item) { return ExpandItem(item, wxTREE_EXPAND_COLLAPSE); } - bool ToggleItem(long item) { return ExpandItem(item, wxTREE_EXPAND_TOGGLE); } - // common interface for {Expand|Collapse|Toggle}Item - bool ExpandItem(long item, int action); - - // - bool SelectItem(long item); - bool ScrollTo(long item); - bool DeleteAllItems(); - - // Edit the label (tree must have the focus) - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - long HitTest(const wxPoint& point, int& flags); - // wxImageList *CreateDragImage(long item); - bool SortChildren(long item); - bool EnsureVisible(long item); - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -protected: - wxTextCtrl* m_textCtrl; - wxImageList* m_imageListNormal; - wxImageList* m_imageListState; - - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -/* - wxEVT_COMMAND_TREE_BEGIN_DRAG, - wxEVT_COMMAND_TREE_BEGIN_RDRAG, - wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, - wxEVT_COMMAND_TREE_END_LABEL_EDIT, - wxEVT_COMMAND_TREE_DELETE_ITEM, - wxEVT_COMMAND_TREE_GET_INFO, - wxEVT_COMMAND_TREE_SET_INFO, - wxEVT_COMMAND_TREE_ITEM_EXPANDED, - wxEVT_COMMAND_TREE_ITEM_EXPANDING, - wxEVT_COMMAND_TREE_ITEM_COLLAPSED, - wxEVT_COMMAND_TREE_ITEM_COLLAPSING, - wxEVT_COMMAND_TREE_SEL_CHANGED, - wxEVT_COMMAND_TREE_SEL_CHANGING, - wxEVT_COMMAND_TREE_KEY_DOWN -*/ - -class WXDLLEXPORT wxTreeEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxTreeEvent) - - public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - int m_code; - wxTreeItem m_item; - long m_oldItem; - wxPoint m_pointDrag; - - inline long GetOldItem() const { return m_oldItem; } - inline wxTreeItem& GetItem() const { return (wxTreeItem&) m_item; } - inline wxPoint GetPoint() const { return m_pointDrag; } - inline int GetCode() const { return m_code; } -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/mac/wave.h b/include/wx/mac/wave.h deleted file mode 100644 index e55bd5aa5f..0000000000 --- a/include/wx/mac/wave.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class (loads and plays short Windows .wav files). -// Optional on non-Windows platforms. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WAVE_H_ -#define _WX_WAVE_H_ - -#ifdef __GNUG__ -#pragma interface "wave.h" -#endif - -#include "wx/object.h" - -class wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - ~wxWave(); - -public: - bool Create(const wxString& fileName, bool isResource = FALSE); - bool IsOk() const { return (m_waveData ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE) const; - -protected: - bool Free(); - -private: - char* m_waveData; - int m_waveLength; - bool m_isResource; -}; - -#endif - // _WX_WAVE_H_ diff --git a/include/wx/mac/window.h b/include/wx/mac/window.h deleted file mode 100644 index 0d37a8b071..0000000000 --- a/include/wx/mac/window.h +++ /dev/null @@ -1,592 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindow class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -#ifdef __GNUG__ -#pragma interface "window.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/pen.h" -#include "wx/font.h" -#include "wx/validate.h" -#include "wx/event.h" -#include "wx/string.h" -#include "wx/list.h" -#include "wx/region.h" -#include "wx/accel.h" - -#define wxKEY_SHIFT 1 -#define wxKEY_CTRL 2 - -/* - * Base class for frame, panel, canvas, panel items, dialog box. - * - */ - -/* - * Event handler: windows have themselves as their event handlers - * by default, but their event handlers could be set to another - * object entirely. This separation can reduce the amount of - * derivation required, and allow alteration of a window's functionality - * (e.g. by a resource editor that temporarily switches event handlers). - */ - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxEvent; -class WXDLLEXPORT wxCommandEvent; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxCursor; -class WXDLLEXPORT wxColourMap; -class WXDLLEXPORT wxFont; -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxSizer; -class WXDLLEXPORT wxList; -class WXDLLEXPORT wxLayoutConstraints; -class WXDLLEXPORT wxMouseEvent; -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxColour; -class WXDLLEXPORT wxBrush; -class WXDLLEXPORT wxPen; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxValidator; - -#if wxUSE_DRAG_AND_DROP -class WXDLLEXPORT wxDropTarget; -#endif - -#if wxUSE_WX_RESOURCES -class WXDLLEXPORT wxResourceTable; -class WXDLLEXPORT wxItemResource; -#endif - -WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr; - -WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize; -WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition; - -//----------------------------------------------------------------------------- -// wxClientData -//----------------------------------------------------------------------------- - -class wxClientData -{ -public: - wxClientData() { } - virtual ~wxClientData() { } -}; - -//----------------------------------------------------------------------------- -// wxStringClientData -//----------------------------------------------------------------------------- - -class wxStringClientData: public wxClientData -{ -public: - wxStringClientData() { } - wxStringClientData( wxString &data ) { m_data = data; } - void SetData( wxString &data ) { m_data = data; } - wxString GetData() const { return m_data; } - -private: - wxString m_data; -}; - -class WXDLLEXPORT wxWindow: public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxWindow) - - friend class wxDC; - friend class wxPaintDC; - -public: - wxWindow(); - inline wxWindow(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - m_children = new wxList; - Create(parent, id, pos, size, style, name); - } - - virtual ~wxWindow(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // Fit the window around the items - virtual void Fit(); - - // Show or hide the window - virtual bool Show(bool show); - - // Is the window shown? - virtual bool IsShown() const; - - // Raise the window to the top of the Z order - virtual void Raise(); - - // Lower the window to the bottom of the Z order - virtual void Lower(); - - // Is the window enabled? - virtual bool IsEnabled() const; - - // For compatibility - inline bool Enabled() const { return IsEnabled(); } - - // Dialog support: override these and call - // base class members to add functionality - // that can't be done using validators. - - // Transfer values to controls. If returns FALSE, - // it's an application error (pops up a dialog) - virtual bool TransferDataToWindow(); - - // Transfer values from controls. If returns FALSE, - // transfer failed: don't quit - virtual bool TransferDataFromWindow(); - - // Validate controls. If returns FALSE, - // validation failed: don't quit - virtual bool Validate(); - - // Return code for dialogs - inline void SetReturnCode(int retCode); - inline int GetReturnCode(); - - // Set the cursor - virtual void SetCursor(const wxCursor& cursor); - inline virtual wxCursor *GetCursor() const { return (wxCursor *)& m_windowCursor; }; - - // Get the window with the focus - static wxWindow *FindFocus(); - - // Get character size - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - - // Get overall window size - virtual void GetSize(int *width, int *height) const; - wxSize GetSize() const { int w, h; GetSize(& w, & h); return wxSize(w, h); } - - // Get window position, relative to parent (or screen if no parent) - virtual void GetPosition(int *x, int *y) const; - wxPoint GetPosition() const - { int x, y; GetPosition(&x, &y); return wxPoint(x, y); } - - // Get size and position - wxRect GetRect() const - { int x, y, w, h; GetPosition(& x, & y); GetSize(& w, & h); return wxRect(x, y, w, h); } - - // Get client (application-useable) size - virtual void GetClientSize(int *width, int *height) const; - wxSize GetClientSize() const { int w, h; GetClientSize(& w, & h); return wxSize(w, h); } - - // Set overall size and position - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetSize(const wxRect& rect, int sizeFlags = wxSIZE_AUTO) - { SetSize(rect.x, rect.y, rect.width, rect.height, sizeFlags); } - - // set size only - void SetSize(int width, int height) - { SetSize(-1, -1, width, height, wxSIZE_USE_EXISTING); } - void SetSize(const wxSize& size) - { SetSize(-1, -1, size.x, size.y, wxSIZE_USE_EXISTING); } - - // set position only - virtual void Move(int x, int y) { SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING); } - void Move(const wxPoint& pt) { SetSize(pt.x, pt.y, -1, -1, wxSIZE_USE_EXISTING); } - - // Set client size - virtual void SetClientSize(int width, int height); - void SetClientSize(const wxSize& sz) { SetClientSize(sz.x, sz.y); } - - // Convert client to screen coordinates - virtual void ClientToScreen(int *x, int *y) const; - wxPoint ClientToScreen(const wxPoint& pt) const - { int x = pt.x; int y = pt.y; ClientToScreen(& x, & y); return wxPoint(x, y); } - - // Convert screen to client coordinates - virtual void ScreenToClient(int *x, int *y) const; - wxPoint ScreenToClient(const wxPoint& pt) const - { int x = pt.x; int y = pt.y; ScreenToClient(& x, & y); return wxPoint(x, y); } - - // Set the focus to this window - virtual void SetFocus(); - - // Capture/release mouse - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - // Enable or disable the window - virtual void Enable(bool enable); - -#if wxUSE_DRAG_AND_DROP - // Associate a drop target with this window (if the window already had a drop - // target, it's deleted!) and return the current drop target (may be NULL). - void SetDropTarget(wxDropTarget *pDropTarget); - wxDropTarget *GetDropTarget() const { return m_pDropTarget; } -#endif - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - - // Update region access - virtual wxRegion GetUpdateRegion() const; - virtual bool IsExposed(int x, int y, int w, int h) const; - virtual bool IsExposed(const wxPoint& pt) const; - virtual bool IsExposed(const wxRect& rect) const; - - // Set/get the window title - virtual inline void SetTitle(const wxString& WXUNUSED(title)) {}; - inline virtual wxString GetTitle() const { return wxString(""); }; - // Most windows have the concept of a label; for frames, this is the - // title; for items, this is the label or button text. - inline virtual wxString GetLabel() const { return GetTitle(); } - - // Set/get the window name (used for resource setting in X) - inline virtual wxString GetName() const; - inline virtual void SetName(const wxString& name); - - // Centre the window - virtual void Centre(int direction) ; - inline void Center(int direction = wxHORIZONTAL) { Centre(direction); } - - // Popup a menu - virtual bool PopupMenu(wxMenu *menu, int x, int y); - - // Send the window a refresh event - virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL); - - // New functions that will replace the above. - virtual void SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE); - - virtual void SetScrollPos(int orient, int pos, bool refresh = TRUE); - virtual int GetScrollPos(int orient) const; - virtual int GetScrollRange(int orient) const; - virtual int GetScrollThumb(int orient) const; - - virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL); - - // Caret manipulation - virtual void CreateCaret(int w, int h); - virtual void CreateCaret(const wxBitmap *bitmap); - virtual void DestroyCaret(); - virtual void ShowCaret(bool show); - virtual void SetCaretPos(int x, int y); - virtual void GetCaretPos(int *x, int *y) const; - - // Tell window how much it can be sized - virtual void SetSizeHints(int minW = -1, int minH = -1, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1); - - // Set/get the window's identifier - inline int GetId() const; - inline void SetId(int id); - - virtual void SetAcceleratorTable(const wxAcceleratorTable& accel); - inline virtual wxAcceleratorTable& GetAcceleratorTable() const { return (wxAcceleratorTable&) m_acceleratorTable; } - - // Make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal); - - // Get the private handle (platform-dependent) - inline void *GetHandle() const; - - // Set/get the window's relatives - inline wxWindow *GetParent() const; - inline void SetParent(wxWindow *p) ; - inline wxWindow *GetGrandParent() const; - inline wxList& GetChildren() const; - - // Set/get the window's font - virtual void SetFont(const wxFont& f); - inline virtual wxFont& GetFont() const; - - // Set/get the window's validator - void SetValidator(const wxValidator& validator); - inline wxValidator *GetValidator() const; - - // Set/get the window's style - inline void SetWindowStyleFlag(long flag); - inline long GetWindowStyleFlag() const; - - // Handle a control command - virtual void OnCommand(wxWindow& win, wxCommandEvent& event); - - // Set/get event handler - inline void SetEventHandler(wxEvtHandler *handler); - inline wxEvtHandler *GetEventHandler() const; - - // Push/pop event handler (i.e. allow a chain of event handlers - // be searched) - void PushEventHandler(wxEvtHandler *handler) ; - wxEvtHandler *PopEventHandler(bool deleteHandler = FALSE) ; - - // Close the window by calling OnClose, posting a deletion - virtual bool Close(bool force = FALSE); - - // Destroy the window (delayed, if a managed window) - virtual bool Destroy() ; - - // Mode for telling default OnSize members to - // call Layout(), if not using Sizers, just top-down constraints - inline void SetAutoLayout(bool a); - inline bool GetAutoLayout() const; - - // Set/get constraints - inline wxLayoutConstraints *GetConstraints() const; - void SetConstraints(wxLayoutConstraints *c); - - // Set/get window background colour - inline virtual void SetBackgroundColour(const wxColour& col); - inline virtual wxColour GetBackgroundColour() const; - - // Set/get window foreground colour - inline virtual void SetForegroundColour(const wxColour& col); - inline virtual wxColour GetForegroundColour() const; - - // Get the default button, if there is one - inline virtual wxButton *GetDefaultItem() const; - inline virtual void SetDefaultItem(wxButton *but); - - // Override to define new behaviour for default action (e.g. double clicking - // on a listbox) - virtual void OnDefaultAction(wxControl *initiatingItem); - - // Resource loading -#if wxUSE_WX_RESOURCES - virtual bool LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table = NULL); - virtual wxControl *CreateItem(const wxItemResource* childResource, const wxItemResource* parentResource, - const wxResourceTable *table = (const wxResourceTable *) NULL); -#endif - - virtual void GetTextExtent(const wxString& string, int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *theFont = NULL, bool use16 = FALSE) const; - - // Is the window retained? - inline bool IsRetained() const; - - // Warp the pointer the given position - virtual void WarpPointer(int x_pos, int y_pos) ; - - // Clear the window - virtual void Clear(); - - // Find a window by id or name - virtual wxWindow *FindWindow(long id); - virtual wxWindow *FindWindow(const wxString& name); - - // Constraint operations - bool Layout(); - void SetSizer(wxSizer *sizer); // Adds sizer child to this window - inline wxSizer *GetSizer() const ; - inline wxWindow *GetSizerParent() const ; - inline void SetSizerParent(wxWindow *win); - - // Do Update UI processing for controls - void UpdateWindowUI(); - - void OnEraseBackground(wxEraseEvent& event); - void OnChar(wxKeyEvent& event); - void OnPaint(wxPaintEvent& event); - void OnIdle(wxIdleEvent& event); - - // Does this window want to accept keyboard focus? - virtual bool AcceptsFocus() const; - - virtual void PrepareDC( wxDC &dc ) {}; - - -public: - //////////////////////////////////////////////////////////////////////// - //// IMPLEMENTATION - - // For implementation purposes - sometimes decorations make the client area - // smaller - virtual wxPoint GetClientAreaOrigin() const; - - // Makes an adjustment to the window position (for example, a frame that has - // a toolbar that it manages itself). - virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags); - - // Executes the default message - virtual long Default(); - -/* TODO: you may need something like this - // Determine whether 3D effects are wanted - virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D); -*/ - - virtual void AddChild(wxWindow *child); // Adds reference to the child object - virtual void RemoveChild(wxWindow *child); // Removes reference to child - // (but doesn't delete the child object) - virtual void DestroyChildren(); // Removes and destroys all children - - inline bool IsBeingDeleted() const { return FALSE; } // TODO: Should probably eliminate this - - // Constraint implementation - void UnsetConstraints(wxLayoutConstraints *c); - inline wxList *GetConstraintsInvolvedIn() const ; - // Back-pointer to other windows we're involved with, so if we delete - // this window, we must delete any constraints we're involved with. - void AddConstraintReference(wxWindow *otherWin); - void RemoveConstraintReference(wxWindow *otherWin); - void DeleteRelatedConstraints(); - - virtual void ResetConstraints(); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool LayoutPhase1(int *noChanges); - virtual bool LayoutPhase2(int *noChanges); - virtual bool DoPhase(int); - // Transforms from sizer coordinate space to actual - // parent coordinate space - virtual void TransformSizerToActual(int *x, int *y) const ; - - // Set size with transformation to actual coordinates if nec. - virtual void SizerSetSize(int x, int y, int w, int h); - virtual void SizerMove(int x, int y); - - // Only set/get the size/position of the constraint (if any) - virtual void SetSizeConstraint(int x, int y, int w, int h); - virtual void MoveConstraint(int x, int y); - virtual void GetSizeConstraint(int *w, int *h) const ; - virtual void GetClientSizeConstraint(int *w, int *h) const ; - virtual void GetPositionConstraint(int *x, int *y) const ; - - // Dialog units translations. Implemented in wincmn.cpp. - wxPoint ConvertPixelsToDialog(const wxPoint& pt) ; - wxPoint ConvertDialogToPixels(const wxPoint& pt) ; - inline wxSize ConvertPixelsToDialog(const wxSize& sz) - { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); } - inline wxSize ConvertDialogToPixels(const wxSize& sz) - { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); } - - wxObject *GetChild(int number) const ; - - // Generates a new id for controls - static int NewControlId(); - - // Responds to colour changes: passes event on to children. - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Transfers data to any child controls - void OnInitDialog(wxInitDialogEvent& event); - - // Sends an OnInitDialog event, which in turns transfers data to - // to the window via validators. - virtual void InitDialog(); - - //////////////////////////////////////////////////////////////////////// - //// PROTECTED DATA -protected: - int m_windowId; - long m_windowStyle; // Store the window's style - wxEvtHandler * m_windowEventHandler; // Usually is 'this' - wxLayoutConstraints * m_constraints; // Constraints for this window - wxList * m_constraintsInvolvedIn; // List of constraints we're involved in - wxSizer * m_windowSizer; // Window's top-level sizer (if any) - wxWindow * m_sizerParent; // Window's parent sizer (if any) - bool m_autoLayout; // Whether to call Layout() in OnSize - wxWindow * m_windowParent; // Each window always knows its parent - wxValidator * m_windowValidator; - int m_minSizeX; - int m_minSizeY; - int m_maxSizeX; - int m_maxSizeY; - - // Caret data - int m_caretWidth; - int m_caretHeight; - bool m_caretEnabled; - bool m_caretShown; - wxFont m_windowFont; // Window's font - wxCursor m_windowCursor; // Window's cursor - wxString m_windowName; // Window name - - wxButton * m_defaultItem; - - wxColour m_backgroundColour ; - wxColour m_foregroundColour ; - wxAcceleratorTable m_acceleratorTable; - -#if wxUSE_DRAG_AND_DROP - wxDropTarget *m_pDropTarget; // the current drop target or NULL -#endif //USE_DRAG_AND_DROP - -public: - wxRegion m_updateRegion; - wxList * m_children; // Window's children - int m_returnCode; - -DECLARE_EVENT_TABLE() -}; - -//////////////////////////////////////////////////////////////////////// -//// INLINES - -inline void *wxWindow::GetHandle() const { return (void *)NULL; } -inline int wxWindow::GetId() const { return m_windowId; } -inline void wxWindow::SetId(int id) { m_windowId = id; } -inline wxWindow *wxWindow::GetParent() const { return m_windowParent; } -inline void wxWindow::SetParent(wxWindow *p) { m_windowParent = p; } -inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : (wxWindow*) NULL); } -inline wxList& wxWindow::GetChildren() const { return (wxList&) * m_children; } -inline wxFont& wxWindow::GetFont() const { return (wxFont&) m_windowFont; } -inline wxString wxWindow::GetName() const { return m_windowName; } -inline void wxWindow::SetName(const wxString& name) { m_windowName = name; } -inline long wxWindow::GetWindowStyleFlag() const { return m_windowStyle; } -inline void wxWindow::SetWindowStyleFlag(long flag) { m_windowStyle = flag; } -inline void wxWindow::SetEventHandler(wxEvtHandler *handler) { m_windowEventHandler = handler; } -inline wxEvtHandler *wxWindow::GetEventHandler() const { return m_windowEventHandler; } -inline void wxWindow::SetAutoLayout(bool a) { m_autoLayout = a; } -inline bool wxWindow::GetAutoLayout() const { return m_autoLayout; } -inline wxLayoutConstraints *wxWindow::GetConstraints() const { return m_constraints; } -inline void wxWindow::SetBackgroundColour(const wxColour& col) { m_backgroundColour = col; }; -inline wxColour wxWindow::GetBackgroundColour() const { return m_backgroundColour; }; -inline void wxWindow::SetForegroundColour(const wxColour& col) { m_foregroundColour = col; }; -inline wxColour wxWindow::GetForegroundColour() const { return m_foregroundColour; }; - -inline wxButton *wxWindow::GetDefaultItem() const { return m_defaultItem; } -inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; } -inline bool wxWindow::IsRetained() const { return ((m_windowStyle & wxRETAINED) == wxRETAINED); } - -inline wxList *wxWindow::GetConstraintsInvolvedIn() const { return m_constraintsInvolvedIn; } -inline wxSizer *wxWindow::GetSizer() const { return m_windowSizer; } -inline wxWindow *wxWindow::GetSizerParent() const { return m_sizerParent; } -inline void wxWindow::SetSizerParent(wxWindow *win) { m_sizerParent = win; } -inline wxValidator *wxWindow::GetValidator() const { return m_windowValidator; } -inline void wxWindow::SetReturnCode(int retCode) { m_returnCode = retCode; } -inline int wxWindow::GetReturnCode() { return m_returnCode; } - -// Get the active window. -wxWindow* WXDLLEXPORT wxGetActiveWindow(); - -WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows; - -#endif - // _WX_WINDOW_H_ diff --git a/include/wx/matrix.h b/include/wx/matrix.h deleted file mode 100644 index 8204b66f39..0000000000 --- a/include/wx/matrix.h +++ /dev/null @@ -1,144 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: matrix.h -// Purpose: wxTransformMatrix class. NOT YET USED -// Author: Chris Breeze, Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MATRIXH__ -#define _WX_MATRIXH__ - -#ifdef __GNUG__ -#pragma interface "matrix.h" -#endif - -#include "wx/object.h" - -// A simple 3x3 matrix. This may be replaced by a more general matrix -// class some day. -// -// Note: this is intended to be used in wxDC at some point to replace -// the current system of scaling/translation. It is not yet used. - -class WXDLLEXPORT wxTransformMatrix: public wxObject -{ -public: - wxTransformMatrix(void); - wxTransformMatrix(const wxTransformMatrix& mat); - - double GetValue(int row, int col) const; - void SetValue(int row, int col, double value); - - void operator = (const wxTransformMatrix& mat); - bool operator == (const wxTransformMatrix& mat); - bool operator != (const wxTransformMatrix& mat); - - double& operator()(int row, int col); - double operator()(int row, int col) const; - - // Invert matrix - bool Invert(void); - - // Make into identity matrix - bool Identity(void); - - // Is the matrix the identity matrix? - // Only returns a flag, which is set whenever an operation - // is done. - inline bool IsIdentity(void) const { return m_isIdentity; }; - - // This does an actual check. - inline bool IsIdentity1(void) const ; - - // Isotropic scaling - bool Scale(double scale); - - // Translate - bool Translate(double x, double y); - - // Rotate - bool Rotate(double angle); - - // Transform X value from logical to device - inline double TransformX(double x) const; - - // Transform Y value from logical to device - inline double TransformY(double y) const; - - // Transform a point from logical to device coordinates - bool TransformPoint(double x, double y, double& tx, double& ty) const; - - // Transform a point from device to logical coordinates. - - // Example of use: - // wxTransformMatrix mat = dc.GetTransformation(); - // mat.Invert(); - // mat.InverseTransformPoint(x, y, x1, y1); - // OR (shorthand:) - // dc.LogicalToDevice(x, y, x1, y1); - // The latter is slightly less efficient if we're doing several - // conversions, since the matrix is inverted several times. - - // N.B. 'this' matrix is the inverse at this point - - bool InverseTransformPoint(double x, double y, double& tx, double& ty) const; - -public: - double m_matrix[3][3]; - bool m_isIdentity; -/* - double m11, m21, m31; - double m12, m22, m32; - double m13, m23, m33; -*/ -}; - - -/* -The code is wrong and doesn't compile. Chris Breeze als reported, that -some functions of wxTransformMatrix cannot work because it is not -known if he matrix has been inverted. Be careful when using it. - -// Transform X value from logical to device -inline double wxTransformMatrix::TransformX(double x) const -{ - return (m_isIdentity ? x : (x * m_matrix[0][0] + y * m_matrix[1][0] + m_matrix[2][0])); -} - -// Transform Y value from logical to device -inline double wxTransformMatrix::TransformY(double y) const -{ - return (m_isIdentity ? y : (x * m_matrix[0][1] + y * m_matrix[1][1] + m_matrix[2][1])); -} -*/ - -// Is the matrix the identity matrix? -// Perhaps there's some kind of optimization we can do to make this -// a faster operation. E.g. each operation (scale, translate etc.) -// checks whether it's still the identity matrix and sets a flag. -inline bool wxTransformMatrix::IsIdentity1(void) const -{ - return - (m_matrix[0][0] == 1.0 && - m_matrix[1][1] == 1.0 && - m_matrix[2][2] == 1.0 && - m_matrix[1][0] == 0.0 && - m_matrix[2][0] == 0.0 && - m_matrix[0][1] == 0.0 && - m_matrix[2][1] == 0.0 && - m_matrix[0][2] == 0.0 && - m_matrix[1][2] == 0.0) ; -} - -// Calculates the determinant of a 2 x 2 matrix -inline double wxCalculateDet(double a11, double a21, double a12, double a22) -{ - return a11 * a22 - a12 * a21; -} - -#endif - // _WX_MATRIXH__ diff --git a/include/wx/mdi.h b/include/wx/mdi.h deleted file mode 100644 index 1ce5e5555c..0000000000 --- a/include/wx/mdi.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_MDI_H_BASE_ -#define _WX_MDI_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/mdi.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/mdi.h" -#elif defined(__WXGTK__) -#include "wx/gtk/mdi.h" -#elif defined(__WXQT__) -#include "wx/qt/mdi.h" -#elif defined(__WXMAC__) -#include "wx/mac/mdi.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/mdi.h" -#endif - -#endif - // _WX_MDI_H_BASE_ diff --git a/include/wx/memory.h b/include/wx/memory.h deleted file mode 100644 index 85d2e2954f..0000000000 --- a/include/wx/memory.h +++ /dev/null @@ -1,302 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: memory.h -// Purpose: MDI classes -// Author: Arthur Seaton, Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MEMORYH__ -#define _WX_MEMORYH__ - -#ifdef __GNUG__ -#pragma interface "memory.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" - -/* - The macro which will be expanded to include the file and line number - info, or to be a straight call to the new operator. -*/ - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - -#include - -#if wxUSE_IOSTREAMH - // N.B. BC++ doesn't have istream.h, ostream.h -# include -#else -# include -# if defined(__VISUALC__) || defined(__MWERKS__) - using namespace std; -# endif -#endif - -#ifdef __WXDEBUG__ - -void * wxDebugAlloc(size_t size, wxChar * fileName, int lineNum, bool isObject, bool isVect = FALSE); -void wxDebugFree(void * buf, bool isVect = FALSE); - -// Global versions of the new and delete operators. -#if wxUSE_GLOBAL_MEMORY_OPERATORS - -// Undefine temporarily (new is #defined in object.h) because we want to -// declare some new operators. -#ifdef new - #undef new -#endif - -#if defined(__SUNCC__) - #define wxUSE_ARRAY_MEMORY_OPERATORS 0 -#elif !( defined (__VISUALC__) && (__VISUALC__ <= 1020) ) || defined( __MWERKS__) - #define wxUSE_ARRAY_MEMORY_OPERATORS 1 -#elif defined (__SGI_CC_) - // only supported by -n32 compilers - #ifndef __EDG_ABI_COMPATIBILITY_VERSION - #define wxUSE_ARRAY_MEMORY_OPERATORS 0 - #endif -#else - // ::operator new[] is a recent C++ feature, so assume it's not supported - #define wxUSE_ARRAY_MEMORY_OPERATORS 0 -#endif - -// Added JACS 25/11/98: needed for some compilers -void * operator new (size_t size); - -void * operator new (size_t size, wxChar * fileName, int lineNum); -void operator delete (void * buf); - -#if wxUSE_ARRAY_MEMORY_OPERATORS - void * operator new[] (size_t size); - void * operator new[] (size_t size, wxChar * fileName, int lineNum); - void operator delete[] (void * buf); -#endif - -// VC++ 6.0 -#if defined(__VISUALC__) && (__VISUALC__ >= 1200) - void operator delete(void *buf, wxChar*, int); - void operator delete[](void *buf, wxChar*, int); -#endif - -#endif - // wxUSE_GLOBAL_MEMORY_OPERATORS -#endif - // __WXDEBUG__ - -typedef unsigned int wxMarkerType; - -/* - Define the struct which will be placed at the start of all dynamically - allocated memory. -*/ - -class WXDLLEXPORT wxMemStruct { - -friend class WXDLLEXPORT wxDebugContext; // access to the m_next pointer for list traversal. - -public: -public: - int AssertList (); - - size_t RequestSize () { return m_reqSize; } - wxMarkerType Marker () { return m_firstMarker; } - - // When an object is deleted we set the id slot to a specific value. - inline void SetDeleted (); - inline int IsDeleted (); - - int Append (); - int Unlink (); - - // Used to determine if the object is really a wxMemStruct. - // Not a foolproof test by any means, but better than none I hope! - int AssertIt (); - - // Do all validation on a node. - int ValidateNode (); - - // Check the integrity of a node and of the list, node by node. - int CheckBlock (); - int CheckAllPrevious (); - - // Print a single node. - void PrintNode (); - - // Called when the memory linking functions get an error. - void ErrorMsg (const char *); - void ErrorMsg (); - - inline void *GetActualData(void) const { return m_actualData; } - - void Dump(void); - -public: - // Check for underwriting. There are 2 of these checks. This one - // inside the struct and another right after the struct. - wxMarkerType m_firstMarker; - - // File name and line number are from cpp. - wxChar* m_fileName; - int m_lineNum; - - // The amount of memory requested by the caller. - size_t m_reqSize; - - // Used to try to verify that we really are dealing with an object - // of the required class. Can be 1 of 2 values these indicating a valid - // wxMemStruct object, or a deleted wxMemStruct object. - wxMarkerType m_id; - - wxMemStruct * m_prev; - wxMemStruct * m_next; - - void * m_actualData; - bool m_isObject; -}; - - -typedef void (wxMemStruct::*PmSFV) (); - - -/* - Debugging class. This will only have a single instance, but it\'s - a reasonable way to keep everything together and to make this - available for change if needed by someone else. - A lot of this stuff would be better off within the wxMemStruct class, but - it\'s stuff which we need to access at times when there is no wxMemStruct - object so we use this class instead. Think of it as a collection of - globals which have to do with the wxMemStruct class. -*/ - -class WXDLLEXPORT wxDebugContext { - -protected: - // Used to set alignment for markers. - static size_t CalcAlignment (); - - // Returns the amount of padding needed after something of the given - // size. This is so that when we cast pointers backwards and forwards - // the pointer value will be valid for a wxMarkerType. - static size_t GetPadding (const size_t size) ; - - // Traverse the list. - static void TraverseList (PmSFV, wxMemStruct *from = NULL); - - static streambuf *m_streamBuf; - static ostream *m_debugStream; - - static int debugLevel; - static bool debugOn; - -public: - // Set a checkpoint to dump only the memory from - // a given point - static wxMemStruct *checkPoint; - - wxDebugContext(void); - ~wxDebugContext(void); - - static bool HasStream(void) { return (m_debugStream != NULL); }; - static ostream& GetStream(void) { return *m_debugStream; } - static streambuf *GetStreamBuf(void) { return m_streamBuf; } - static void SetStream(ostream *stream, streambuf *buf = NULL); - static bool SetFile(const wxString& file); - static bool SetStandardError(void); - - static int GetLevel(void) { return debugLevel; } - static void SetLevel(int level) { debugLevel = level; } - - static bool GetDebugMode(void) { return debugOn; } - static void SetDebugMode(bool flag) { debugOn = flag; } - - static void SetCheckpoint(bool all = FALSE); - static wxMemStruct *GetCheckpoint(void) { return checkPoint; } - - // Calculated from the request size and any padding needed - // before the final marker. - static size_t PaddedSize (const size_t reqSize); - - // Calc the total amount of space we need from the system - // to satisfy a caller request. This includes all padding. - static size_t TotSize (const size_t reqSize); - - // Return valid pointers to offsets within the allocated memory. - static char * StructPos (const char * buf); - static char * MidMarkerPos (const char * buf); - static char * CallerMemPos (const char * buf); - static char * EndMarkerPos (const char * buf, const size_t size); - - // Given a pointer to the start of the caller requested area - // return a pointer to the start of the entire alloc\'d buffer. - static char * StartPos (const char * caller); - - // Access to the list. - static wxMemStruct * GetHead () { return m_head; } - static wxMemStruct * GetTail () { return m_tail; } - - // Set the list sentinals. - static wxMemStruct * SetHead (wxMemStruct * st) { return (m_head = st); } - static wxMemStruct * SetTail (wxMemStruct * st) { return (m_tail = st); } - - // If this is set then every new operation checks the validity - // of the all previous nodes in the list. - static bool GetCheckPrevious () { return m_checkPrevious; } - static void SetCheckPrevious (bool value) { m_checkPrevious = value; } - - // Checks all nodes, or all nodes if checkAll is TRUE - static int Check(bool checkAll = FALSE); - - // Print out the list of wxMemStruct nodes. - static bool PrintList(void); - - // Dump objects - static bool Dump(void); - - // Print statistics - static bool PrintStatistics(bool detailed = TRUE); - - // Print out the classes in the application. - static bool PrintClasses(void); - - // Count the number of non-wxDebugContext-related objects - // that are outstanding - static int CountObjectsLeft(bool sinceCheckpoint = FALSE); - -private: - // Store these here to allow access to the list without - // needing to have a wxMemStruct object. - static wxMemStruct* m_head; - static wxMemStruct* m_tail; - - // Set to FALSE if we're not checking all previous nodes when - // we do a new. Set to TRUE when we are. - static bool m_checkPrevious; -}; - -// Output a debug message, in a system dependent fashion. -void WXDLLEXPORT wxTrace(const wxChar *fmt ...); -void WXDLLEXPORT wxTraceLevel(int level, const wxChar *fmt ...); - -#define WXTRACE wxTrace -#define WXTRACELEVEL wxTraceLevel - -#else // else part for the #if __WXDEBUG__ - -inline void wxTrace(const wxChar *WXUNUSED(fmt)) {} -inline void wxTraceLevel(int WXUNUSED(level), const wxChar *WXUNUSED(fmt)) {} - -#define WXTRACE TRUE ? (void)0 : wxTrace -#define WXTRACELEVEL TRUE ? (void)0 : wxTraceLevel -// #define WXDEBUG_NEW new - -#endif // __WXDEBUG__ - -#endif - // _WX_MEMORYH__ - diff --git a/include/wx/menu.h b/include/wx/menu.h deleted file mode 100644 index 2d0ce9798b..0000000000 --- a/include/wx/menu.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_MENU_H_BASE_ -#define _WX_MENU_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/menu.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/menu.h" -#elif defined(__WXGTK__) -#include "wx/gtk/menu.h" -#elif defined(__WXQT__) -#include "wx/qt/menu.h" -#elif defined(__WXMAC__) -#include "wx/mac/menu.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/menu.h" -#endif - -#endif - // _WX_MENU_H_BASE_ diff --git a/include/wx/menuitem.h b/include/wx/menuitem.h deleted file mode 100644 index ffb693fe0c..0000000000 --- a/include/wx/menuitem.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_MENUITEM_H_BASE_ -#define _WX_MENUITEM_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/menuitem.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/menuitem.h" -#elif defined(__WXGTK__) -#include "wx/gtk/menuitem.h" -#elif defined(__WXQT__) -#include "wx/qt/menuitem.h" -#elif defined(__WXMAC__) -#include "wx/mac/menuitem.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/menuitem.h" -#endif - -#endif - // _WX_MENUITEM_H_BASE_ diff --git a/include/wx/metafile.h b/include/wx/metafile.h deleted file mode 100644 index dab13f19f2..0000000000 --- a/include/wx/metafile.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _WX_METAFILE_H_BASE_ -#define _WX_METAFILE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/metafile.h" -#endif - -#endif - // _WX_METAFILE_H_BASE_ diff --git a/include/wx/mimetype.h b/include/wx/mimetype.h deleted file mode 100644 index d30eb3c70d..0000000000 --- a/include/wx/mimetype.h +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/mimetype.h -// Purpose: classes and functions to manage MIME types -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.09.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license (part of wxExtra library) -///////////////////////////////////////////////////////////////////////////// - -#ifndef _MIMETYPE_H -#define _MIMETYPE_H - -// fwd decls -class wxIcon; -class wxFileTypeImpl; -class wxMimeTypesManagerImpl; - -// the things we really need -#include "wx/string.h" - -// This class holds information about a given "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 many different ways and depending -// on how it was created some fields may be unknown so the return value of all -// the accessors *must* be checked! -class wxFileType -{ -friend wxMimeTypesManagerImpl; // it has access to m_impl - -public: - // An object of this class must be passed to Get{Open|Print}Command. The - // default implementation is trivial and doesn't know anything at all about - // parameters, only filename and MIME type are used (so it's probably ok for - // Windows where %{param} is not used anyhow) - class MessageParameters - { - public: - // ctors - MessageParameters() { } - MessageParameters(const wxString& filename, const wxString& mimetype) - : m_filename(filename), m_mimetype(mimetype) { } - - // accessors (called by GetOpenCommand) - // filename - const wxString& GetFileName() const { return m_filename; } - // mime type - const wxString& GetMimeType() const { return m_mimetype; } - - // override this function in derived class - virtual wxString GetParamValue(const wxString& WXUNUSED(paramName)) const - { return ""; } - - // virtual dtor as in any base class - virtual ~MessageParameters() { } - - protected: - wxString m_filename, m_mimetype; - }; - - // accessors: all of them return true if the corresponding information - // could be retrieved/found, false otherwise (and in this case all [out] - // parameters are unchanged) - // return the MIME type for this file type - bool GetMimeType(wxString *mimeType) const; - // fill passed in array with all extensions associated with this file - // type - bool GetExtensions(wxArrayString& extensions); - // get the icon corresponding to this file type - bool GetIcon(wxIcon *icon) const; - // get a brief file type description ("*.txt" => "text document") - bool GetDescription(wxString *desc) const; - - // get the command to be used to open/print the given file. - // get the command to execute the file of given type - bool GetOpenCommand(wxString *openCmd, - const MessageParameters& params) const; - // get the command to print the file of given type - bool GetPrintCommand(wxString *printCmd, - const MessageParameters& params) const; - - // operations - // expand a string in the format of GetOpenCommand (which may contain - // '%s' and '%t' format specificators for the file name and mime type - // and %{param} constructions). - static wxString ExpandCommand(const wxString& command, - const MessageParameters& params); - - // dtor (not virtual, shouldn't be derived from) - ~wxFileType(); - -private: - // default ctor is private because the user code never creates us - wxFileType(); - - // no copy ctor/assignment operator - wxFileType(const wxFileType&); - wxFileType& operator=(const wxFileType&); - - wxFileTypeImpl *m_impl; -}; - -// This class accesses the information about all known MIME types and allows -// the application to retrieve information (including how to handle data of -// given type) about them. -// -// NB: currently it doesn't support modifying MIME database (read-only access). -class wxMimeTypesManager -{ -public: - // static helper functions - // ----------------------- - - // check if the given MIME type is the same as the other one: the second - // argument may contain wildcards ('*'), but not the first. If the - // types are equal or if the mimeType matches wildcard the function - // returns TRUE, otherwise it returns FALSE - static bool IsOfType(const wxString& mimeType, const wxString& wildcard); - - // ctor - wxMimeTypesManager(); - - // Database lookup: all functions return a pointer to wxFileType object - // whose methods may be used to query it for the information you're - // interested in. If the return value is !NULL, caller is responsible for - // deleting it. - // get file type from file extension - wxFileType *GetFileTypeFromExtension(const wxString& ext); - // get file type from MIME type (in format /) - wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); - - // other operations: return TRUE if there were no errors or FALSE if there - // were some unreckognized entries (the good entries are always read anyhow) - // read in additional file (the standard ones are read automatically) - // in mailcap format (see mimetype.cpp for description) - // - // 'fallback' parameter may be set to TRUE to avoid overriding the - // settings from other, previously parsed, files by this one: normally, - // the files read most recently would override the older files, but with - // fallback == TRUE this won't happen - bool ReadMailcap(const wxString& filename, bool fallback = FALSE); - // read in additional file in mime.types format - bool ReadMimeTypes(const wxString& filename); - - // dtor (not virtual, shouldn't be derived from) - ~wxMimeTypesManager(); - -private: - // no copy ctor/assignment operator - wxMimeTypesManager(const wxMimeTypesManager&); - wxMimeTypesManager& operator=(const wxMimeTypesManager&); - - wxMimeTypesManagerImpl *m_impl; -}; - -#endif //_MIMETYPE_H - -/* vi: set cin tw=80 ts=4 sw=4: */ diff --git a/include/wx/minifram.h b/include/wx/minifram.h deleted file mode 100644 index 3b45d33a52..0000000000 --- a/include/wx/minifram.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _WX_MINIFRAM_H_BASE_ -#define _WX_MINIFRAMH_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/minifram.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/minifram.h" -#elif defined(__WXGTK__) -#include "wx/gtk/minifram.h" -#elif defined(__WXMAC__) -#include "wx/mac/minifram.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/minifram.h" -#endif - -#endif - // _WX_MINIFRAM_H_BASE_ diff --git a/include/wx/module.h b/include/wx/module.h deleted file mode 100644 index e15b4de06b..0000000000 --- a/include/wx/module.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: module.h -// Purpose: Modules handling -// Author: Wolfram Gloger/adapted by Guilhem Lavaux -// Modified by: -// Created: 04/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger and Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MODULEH__ -#define _WX_MODULEH__ - -#ifdef __GNUG__ - #pragma interface "module.h" -#endif - -#include "wx/object.h" -#include "wx/list.h" - -// declare a linked list of modules -class wxModule; -WX_DECLARE_LIST(wxModule, wxModuleList); - -// declaring a class derived from wxModule will automatically create an -// instance of this class on program startup, call its OnInit() method and call -// OnExit() on program termination (but only if OnInit() succeeded) -class WXDLLEXPORT wxModule : public wxObject -{ -public: - wxModule() {} - virtual ~wxModule() {} - - // if module init routine returns FALSE application will fail to startup - bool Init() { return OnInit(); } - void Exit() { OnExit(); } - - // Override both of these - // called on program startup - virtual bool OnInit() = 0; - // called just before program termination, but only if OnInit() - // succeeded - virtual void OnExit() = 0; - - static void RegisterModule(wxModule* module); - static void RegisterModules(); - static bool InitializeModules(); - static void CleanUpModules(); - -protected: - static wxModuleList m_modules; - - DECLARE_CLASS(wxModule) -}; - -#endif // _WX_MODULEH__ - diff --git a/include/wx/motif/.cvsignore b/include/wx/motif/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/include/wx/motif/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/include/wx/motif/Makefile.am b/include/wx/motif/Makefile.am deleted file mode 100644 index cbd7bdeda6..0000000000 --- a/include/wx/motif/Makefile.am +++ /dev/null @@ -1,76 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/motif subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -wx_motif_includedir = ${includedir}/wx/motif -wx_motif_include_HEADERS = \ - accel.h \ - app.h \ - bitmap.h \ - bmpbuttn.h \ - brush.h \ - button.h \ - checkbox.h \ - checklst.h \ - choice.h \ - clipbrd.h \ - colordlg.h \ - colour.h \ - combobox.h \ - control.h \ - cursor.h \ - dataobj.h \ - dc.h \ - dcclient.h \ - dcmemory.h \ - dcprint.h \ - dcscreen.h \ - dialog.h \ - dirdlg.h \ - dnd.h \ - filedlg.h \ - font.h \ - fontdlg.h \ - frame.h \ - gauge.h \ - gdiobj.h \ - helpxxxx.h \ - icon.h \ - joystick.h \ - listbox.h \ - mdi.h \ - menu.h \ - menuitem.h \ - metafile.h \ - minifram.h \ - msgdlg.h \ - palette.h \ - pen.h \ - print.h \ - printdlg.h \ - private.h \ - radiobox.h \ - radiobut.h \ - region.h \ - scrolbar.h \ - settings.h \ - slider.h \ - spinbutt.h \ - statbmp.h \ - statbox.h \ - stattext.h \ - tabctrl.h \ - taskbar.h \ - textctrl.h \ - timer.h \ - toolbar.h \ - wave.h \ - window.h - -# setup.h is installed in another directory because several versions of wxwin -# should be able to coexist on the same machine -portheadersdir = ${datadir}/@PACKAGE@/include/wx -portheaders_HEADERS = setup.h - diff --git a/include/wx/motif/accel.h b/include/wx/motif/accel.h deleted file mode 100644 index cd08c75f1d..0000000000 --- a/include/wx/motif/accel.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.h -// Purpose: wxAcceleratorTable class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_ -#define _WX_ACCEL_H_ - -#ifdef __GNUG__ -#pragma interface "accel.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/event.h" - -class WXDLLEXPORT wxAcceleratorTable; - -// Hold Ctrl key down -#define wxACCEL_ALT 0x01 - -// Hold Ctrl key down -#define wxACCEL_CTRL 0x02 - - // Hold Shift key down -#define wxACCEL_SHIFT 0x04 - - // Hold no key down -#define wxACCEL_NORMAL 0x00 - -class WXDLLEXPORT wxAcceleratorEntry -{ -public: - wxAcceleratorEntry(const wxAcceleratorEntry& entry) - { - m_flags = entry.m_flags; m_keyCode = entry.m_keyCode; m_command = entry.m_command; - } - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { - m_flags = flags; m_keyCode = keyCode; m_command = cmd; - } - - inline void Set(int flags, int keyCode, int cmd) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline int GetFlags() const { return m_flags; } - inline int GetKeyCode() const { return m_keyCode; } - inline int GetCommand() const { return m_command; } - - void operator = (const wxAcceleratorEntry& entry) - { - m_flags = entry.m_flags; m_keyCode = entry.m_keyCode; m_command = entry.m_command; - } - - // Implementation use only - bool MatchesEvent(const wxKeyEvent& event) const; - -public: - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -class WXDLLEXPORT wxAcceleratorTable: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxAcceleratorTable) -public: - wxAcceleratorTable(); - wxAcceleratorTable(const wxString& resource); // Load from .rc resource - wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array - - // Copy constructors - inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); } - inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); } - - ~wxAcceleratorTable(); - - inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; } - inline bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; } - inline bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; } - - bool Ok() const; - -// Implementation only - int GetCount() const; - wxAcceleratorEntry* GetEntries() const; -}; - -WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable; - -#endif - // _WX_ACCEL_H_ diff --git a/include/wx/motif/app.h b/include/wx/motif/app.h deleted file mode 100644 index 2b24418913..0000000000 --- a/include/wx/motif/app.h +++ /dev/null @@ -1,179 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#ifdef __GNUG__ -#pragma interface "app.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" -#include "wx/event.h" - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 - -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; - -// Force an exit from main loop -void WXDLLEXPORT wxExit(); - -// Yield to other apps/messages -bool WXDLLEXPORT wxYield(); - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLEXPORT wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - wxApp(); - inline ~wxApp() {} - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - void OnIdle(wxIdleEvent& event); - -// Generic - virtual bool OnInit() { return FALSE; }; - - // Create an application context - virtual bool OnInitGui(); - - // Called to set off the main loop - virtual int OnRun() { return MainLoop(); }; - virtual int OnExit() { return 0; } - - inline void SetPrintMode(int mode) { m_printMode = mode; } - inline int GetPrintMode() const { return m_printMode; } - - inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - inline wxString GetAppName() const { - if (m_appName != "") - return m_appName; - else return m_className; - } - - inline void SetAppName(const wxString& name) { m_appName = name; }; - inline wxString GetClassName() const { return m_className; } - inline void SetClassName(const wxString& name) { m_className = name; } - - void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } - const wxString& GetVendorName() const { return m_vendorName; } - - wxWindow *GetTopWindow() const ; - inline void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; } - inline bool GetWantDebugOutput() { return m_wantDebugOutput; } - - // Send idle event to all top-level windows. - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(); - - // Send idle event to window and all subwindows - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(wxWindow* win); - - // Windows only, but for compatibility... - inline void SetAuto3D(bool flag) { m_auto3D = flag; } - inline bool GetAuto3D() const { return m_auto3D; } - - // Creates a log object - virtual wxLog* CreateLogTarget(); - -// Motif implementation. - - // Processes an X event. - virtual void ProcessXEvent(WXEvent* event); - - // Returns TRUE if an accelerator has been processed - virtual bool CheckForAccelerator(WXEvent* event); - -public: - // Will always be set to the appropriate, main-style values. - int argc; - char ** argv; - -protected: - bool m_wantDebugOutput ; - wxString m_className; - wxString m_appName, - m_vendorName; - wxWindow * m_topWindow; - bool m_exitOnFrameDelete; - bool m_showOnInit; - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except - // where overriden - static wxAppInitializerFunction m_appInitFn; - -public: - - // Implementation - static bool Initialize(); - static void CleanUp(); - - void DeletePendingObjects(); - bool ProcessIdle(); -#if wxUSE_THREADS - void ProcessPendingEvents(); -#endif - - // Motif-specific - inline WXAppContext GetAppContext() const { return m_appContext; } - inline WXWidget GetTopLevelWidget() const { return m_topLevelWidget; } - WXColormap GetMainColormap(WXDisplay* display) ; - WXDisplay* GetInitialDisplay() const { return m_initialDisplay; } - inline long GetMaxRequestSize() const { return m_maxRequestSize; } - - // This handler is called when a property change event occurs - virtual void HandlePropertyChange(WXEvent *event); - -public: - static long sm_lastMessageTime; - int m_nCmdShow; - -protected: - bool m_keepGoing ; - -// Motif-specific - WXAppContext m_appContext; - WXWidget m_topLevelWidget; - WXColormap m_mainColormap; - WXDisplay* m_initialDisplay; - long m_maxRequestSize; - -DECLARE_EVENT_TABLE() -}; - -int WXDLLEXPORT wxEntry( int argc, char *argv[] ); - -#endif - // _WX_APP_H_ - diff --git a/include/wx/motif/bitmap.h b/include/wx/motif/bitmap.h deleted file mode 100644 index 644039ef0a..0000000000 --- a/include/wx/motif/bitmap.h +++ /dev/null @@ -1,211 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: wxBitmap class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#ifdef __GNUG__ -#pragma interface "bitmap.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" -#include "wx/palette.h" - -// Bitmap -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxBitmapHandler; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxCursor; - -// A mask is a mono bitmap used for drawing bitmaps -// transparently. -class WXDLLEXPORT wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(); - - // Construct a mask from a bitmap and a colour indicating - // the transparent area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating - // the transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - - inline WXPixmap GetPixmap() const { return m_pixmap; } - inline void SetPixmap(WXPixmap pixmap) { m_pixmap = pixmap; } - -protected: - WXPixmap m_pixmap; -}; - -class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; - friend class WXDLLEXPORT wxCursor; -public: - wxBitmapRefData(); - ~wxBitmapRefData(); - -public: - int m_width; - int m_height; - int m_depth; - bool m_ok; - int m_numColors; - wxPalette m_bitmapPalette; - int m_quality; - - wxMask * m_bitmapMask; // Optional mask - - // Motif implementation -public: - WXPixmap m_pixmap; - WXDisplay* m_display; - bool m_freePixmap; - unsigned long* m_freeColors; - long m_freeColorsCount; - - // These 5 variables are for wxControl - WXPixmap m_insensPixmap ; - WXPixmap m_labelPixmap ; - WXPixmap m_armPixmap ; - WXImage* m_image ; - WXImage* m_insensImage ; -}; - -#define M_BITMAPDATA ((wxBitmapRefData *)m_refData) - -class WXDLLEXPORT wxBitmapHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmapHandler) -public: - wxBitmapHandler() { m_name = ""; m_extension = ""; m_type = 0; }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); - - inline void SetName(const wxString& name) { m_name = name; } - inline void SetExtension(const wxString& ext) { m_extension = ext; } - inline void SetType(long type) { m_type = type; } - inline wxString GetName() const { return m_name; } - inline wxString GetExtension() const { return m_extension; } - inline long GetType() const { return m_type; } -protected: - wxString m_name; - wxString m_extension; - long m_type; -}; - -#define M_BITMAPHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData()) - -class WXDLLEXPORT wxBitmap: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - - friend class WXDLLEXPORT wxBitmapHandler; - -public: - wxBitmap(); // Platform-specific - - // Copy constructors - inline wxBitmap(const wxBitmap& bitmap) - { Ref(bitmap); if ( wxTheBitmapList ) wxTheBitmapList->AddBitmap(this); } - - // Initialize with raw XBM data - wxBitmap(const char bits[], int width, int height, int depth = 1); - - // Initialize with XPM data - wxBitmap(char **data, wxControl* control = NULL); - - // Load a file or resource - wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_XPM); - - // Constructor for generalised creation from data - wxBitmap(void *data, long type, int width, int height, int depth = 1); - - // If depth is omitted, will create a bitmap compatible with the display - wxBitmap(int width, int height, int depth = -1); - ~wxBitmap(); - - virtual bool Create(int width, int height, int depth = -1); - virtual bool Create(void *data, long type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_XPM); - virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL); - - inline bool Ok() const { return (M_BITMAPDATA && M_BITMAPDATA->m_ok); } - inline int GetWidth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_width : 0); } - inline int GetHeight() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_height : 0); } - inline int GetDepth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_depth : 0); } - inline int GetQuality() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_quality : 0); } - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetQuality(int q); - void SetOk(bool isOk); - - inline wxPalette* GetPalette() const { return (M_BITMAPDATA ? (& M_BITMAPDATA->m_bitmapPalette) : (wxPalette*) NULL); } - void SetPalette(const wxPalette& palette); - - inline wxMask *GetMask() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_bitmapMask : (wxMask*) NULL); } - void SetMask(wxMask *mask) ; - - inline wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; } - inline bool operator == (const wxBitmap& bitmap) { return m_refData == bitmap.m_refData; } - inline bool operator != (const wxBitmap& bitmap) { return m_refData != bitmap.m_refData; } - - // Format handling - static inline wxList& GetHandlers() { return sm_handlers; } - static void AddHandler(wxBitmapHandler *handler); - static void InsertHandler(wxBitmapHandler *handler); - static bool RemoveHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& extension, long bitmapType); - static wxBitmapHandler *FindHandler(long bitmapType); - - static void InitStandardHandlers(); - static void CleanUpHandlers(); - - // Motif implementation -public: - inline WXDisplay* GetDisplay() const { return M_BITMAPDATA->m_display; } - inline WXDisplay* GetPixmap() const { return M_BITMAPDATA->m_pixmap; } - virtual WXPixmap GetLabelPixmap(WXWidget w) ; - virtual WXPixmap GetArmPixmap(WXWidget w) ; - virtual WXPixmap GetInsensPixmap(WXWidget w = (WXWidget) 0) ; - -protected: - static wxList sm_handlers; -}; - -// Creates a bitmap with transparent areas drawn in -// the given colour. -wxBitmap wxCreateMaskedBitmap(wxBitmap& bitmap, wxColour& colour); - -#endif - // _WX_BITMAP_H_ diff --git a/include/wx/motif/bmpbuttn.h b/include/wx/motif/bmpbuttn.h deleted file mode 100644 index 47fe63c018..0000000000 --- a/include/wx/motif/bmpbuttn.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTN_H_ -#define _WX_BMPBUTTN_H_ - -#ifdef __GNUG__ -#pragma interface "bmpbuttn.h" -#endif - -#include "wx/button.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -#define wxDEFAULT_BUTTON_MARGIN 4 - -class WXDLLEXPORT wxBitmapButton: public wxButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - public: - wxBitmapButton(); - ~wxBitmapButton(); - inline wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetLabel(const wxBitmap& bitmap) - { - SetBitmapLabel(bitmap); - } - virtual void SetLabel(const wxString& label) - { - wxControl::SetLabel(label); - } - - virtual void SetBitmapLabel(const wxBitmap& bitmap); - - inline wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_buttonBitmap; } - inline wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_buttonBitmapSelected; } - inline wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_buttonBitmapFocus; } - inline wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_buttonBitmapDisabled; } - - void SetBitmapSelected(const wxBitmap& sel); - void SetBitmapFocus(const wxBitmap& focus); - void SetBitmapDisabled(const wxBitmap& disabled); - - inline void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } - inline int GetMarginX() { return m_marginX; } - inline int GetMarginY() { return m_marginY; } - -// Implementation - void DoSetBitmap(); - virtual void ChangeBackgroundColour(); - - protected: - wxBitmap m_buttonBitmapFocus; - wxBitmap m_buttonBitmap; - wxBitmap m_buttonBitmapOriginal; // May be different from m_buttonBitmap - // if m_buttonBitmap has been changed - // to reflect button background colour - wxBitmap m_buttonBitmapSelected; - wxBitmap m_buttonBitmapSelectedOriginal; - - wxBitmap m_buttonBitmapDisabled; - wxBitmap m_buttonBitmapDisabledOriginal; - - int m_marginX; - int m_marginY; - - WXPixmap m_insensPixmap; -}; - -#endif - // _WX_BMPBUTTN_H_ diff --git a/include/wx/motif/brush.h b/include/wx/motif/brush.h deleted file mode 100644 index 15488cba9b..0000000000 --- a/include/wx/motif/brush.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: wxBrush class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -#ifdef __GNUG__ -#pragma interface "brush.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -class WXDLLEXPORT wxBrush; - -class WXDLLEXPORT wxBrushRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBrush; -public: - wxBrushRefData(); - wxBrushRefData(const wxBrushRefData& data); - ~wxBrushRefData(); - -protected: - int m_style; - wxBitmap m_stipple ; - wxColour m_colour; -}; - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -// Brush -class WXDLLEXPORT wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - -public: - wxBrush(); - wxBrush(const wxColour& col, int style); - wxBrush(const wxBitmap& stipple); - inline wxBrush(const wxBrush& brush) { Ref(brush); } - ~wxBrush(); - - virtual void SetColour(const wxColour& col) ; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - virtual void SetStyle(int style) ; - virtual void SetStipple(const wxBitmap& stipple) ; - - inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; } - inline bool operator == (const wxBrush& brush) { return m_refData == brush.m_refData; } - inline bool operator != (const wxBrush& brush) { return m_refData != brush.m_refData; } - - inline wxColour& GetColour() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); }; - inline int GetStyle() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); }; - inline wxBitmap *GetStipple() const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); }; - - virtual bool Ok() const { return (m_refData != NULL) ; } - -// Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_BRUSH_H_ diff --git a/include/wx/motif/button.h b/include/wx/motif/button.h deleted file mode 100644 index 3c155e38b3..0000000000 --- a/include/wx/motif/button.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: wxButton class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUTTON_H_ -#define _WX_BUTTON_H_ - -#ifdef __GNUG__ -#pragma interface "button.h" -#endif - -#include "wx/control.h" -#include "wx/gdicmn.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -// Pushbutton -class WXDLLEXPORT wxButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxButton) - public: - inline wxButton() {} - inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetDefault(); - virtual void Command(wxCommandEvent& event); - -// Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); -}; - -#endif - // _WX_BUTTON_H_ diff --git a/include/wx/motif/checkbox.h b/include/wx/motif/checkbox.h deleted file mode 100644 index e6ca1a43ae..0000000000 --- a/include/wx/motif/checkbox.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: wxCheckBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_ -#define _WX_CHECKBOX_H_ - -#ifdef __GNUG__ -#pragma interface "checkbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxCheckBoxNameStr; - -// Checkbox item (single checkbox) -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxCheckBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxCheckBox) - - public: - inline wxCheckBox() { } - inline wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void Command(wxCommandEvent& event); - -// Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); -}; - -class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox -{ - DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox) - -public: - int checkWidth; - int checkHeight; - - inline wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; } - inline wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - - virtual void SetValue(bool value); - virtual bool GetValue() const; - - virtual void SetLabel(const wxBitmap& bitmap); - virtual void SetLabel(const wxString& label) { wxControl::SetLabel(label); }; - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/include/wx/motif/checklst.h b/include/wx/motif/checklst.h deleted file mode 100644 index 554ee2e6e5..0000000000 --- a/include/wx/motif/checklst.h +++ /dev/null @@ -1,47 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.h -// Purpose: wxCheckListBox class - a listbox with checkable items -// Note: this is an optional class. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKLST_H_ -#define _WX_CHECKLST_H_ - -#ifdef __GNUG__ - #pragma interface "checklst.h" -#endif - -#include "wx/listbox.h" - -class wxCheckListBox : public wxListBox -{ -DECLARE_DYNAMIC_CLASS(wxCheckListBox) - -public: - // ctors - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - // items may be checked - bool IsChecked(size_t uiIndex) const; - void Check(size_t uiIndex, bool bCheck = TRUE); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CHECKLST_H_ diff --git a/include/wx/motif/choice.h b/include/wx/motif/choice.h deleted file mode 100644 index 18f80ca5bd..0000000000 --- a/include/wx/motif/choice.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: wxChoice class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -#ifdef __GNUG__ -#pragma interface "choice.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxChoiceNameStr; - -// Choice item -class WXDLLEXPORT wxChoice: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - -public: - wxChoice(); - ~wxChoice(); - - wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - - virtual int Number() const { return m_noStrings; } - virtual void Command(wxCommandEvent& event); - - virtual void SetColumns(int n = 1 ); - virtual int GetColumns() const ; - - void SetFocus(); - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - WXWidget GetTopWidget() const { return m_formWidget; } - WXWidget GetMainWidget() const { return m_buttonWidget; } - -protected: - int m_noStrings; - WXWidget m_menuWidget; - WXWidget m_buttonWidget; - WXWidget* m_widgetList ; - WXWidget m_formWidget; - wxStringList m_stringList; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_CHOICE_H_ diff --git a/include/wx/motif/clipbrd.h b/include/wx/motif/clipbrd.h deleted file mode 100644 index a86215aeab..0000000000 --- a/include/wx/motif/clipbrd.h +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.h -// Purpose: Clipboard functionality. -// Note: this functionality is under review, and -// is derived from wxWindows 1.xx code. Please contact -// the wxWindows developers for further information. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_ -#define _WX_CLIPBRD_H_ - -#ifdef __GNUG__ -#pragma interface "clipbrd.h" -#endif - -#include "wx/defs.h" -#include "wx/setup.h" - -#include "wx/list.h" -#include "wx/module.h" - -bool WXDLLEXPORT wxOpenClipboard(); -bool WXDLLEXPORT wxClipboardOpen(); -bool WXDLLEXPORT wxCloseClipboard(); -bool WXDLLEXPORT wxEmptyClipboard(); -bool WXDLLEXPORT wxIsClipboardFormatAvailable(wxDataFormat dataFormat); -bool WXDLLEXPORT wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int width = 0, int height = 0); -wxObject* WXDLLEXPORT wxGetClipboardData(wxDataFormat dataFormat, long *len = NULL); -wxDataFormat WXDLLEXPORT wxEnumClipboardFormats(wxDataFormat dataFormat); -wxDataFormat WXDLLEXPORT wxRegisterClipboardFormat(char *formatName); -bool WXDLLEXPORT wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int maxCount); - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject; -class WXDLLEXPORT wxClipboard: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - -public: - - wxClipboard(); - ~wxClipboard(); - - // open the clipboard before SetData() and GetData() - virtual bool Open(); - - // close the clipboard after SetData() and GetData() - virtual void Close(); - - // can be called several times - virtual bool SetData( wxDataObject *data ); - - // format available on the clipboard ? - // supply ID if private format, the same as wxPrivateDataObject::SetId() - virtual bool IsSupported( wxDataFormat format ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject *data ); - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear(); - - // implementation - - bool m_open; - wxList m_data; -}; - -/* The clipboard */ -WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard; - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -class wxClipboardModule: public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxClipboardModule) - -public: - wxClipboardModule() {} - bool OnInit(); - void OnExit(); -}; - -// This is the old, 1.68 implementation -#if 0 - -/* A clipboard client holds data belonging to the clipboard. - For plain text, a client is not necessary. */ -class WXDLLEXPORT wxClipboardClient : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxClipboardClient) - - public: - /* This list should be filled in with strings indicating the formats - this client can provide. Almost all clients will provide "TEXT". - Format names should be 4 characters long, so things will work - out on the Macintosh */ - wxStringList formats; - - /* This method is called when the client is losing the selection. */ - virtual void BeingReplaced() = 0; - - /* This method is called when someone wants the data this client is - supplying to the clipboard. "format" is a string indicating the - format of the data - one of the strings from the "formats" - list. "*size" should be filled with the size of the resulting - data. In the case of text, "*size" does not count the - NULL terminator. */ - virtual char *GetData(char *format, long *size) = 0; -}; - -/* ONE instance of this class: */ -class WXDLLEXPORT wxClipboard : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - - public: - wxClipboardClient *clipOwner; - char *cbString, *sentString, *receivedString; - void *receivedTargets; - long receivedLength; - - wxClipboard(); - ~wxClipboard(); - - /* Set the clipboard data owner. "time" comes from the event record. */ - void SetClipboardClient(wxClipboardClient *, long time); - - /* Set the clipboard string; does not require a client. */ - void SetClipboardString(char *, long time); - - /* Get data from the clipboard in the format "TEXT". */ - char *GetClipboardString(long time); - - /* Get data from the clipboard */ - char *GetClipboardData(char *format, long *length, long time); - - /* Get the clipboard client directly. Will be NULL if clipboard data - is a string, or if some other application owns the clipboard. - This can be useful for shortcutting data translation, if the - clipboard user can check for a specific client. (This is used - by the wxMediaEdit class.) */ - wxClipboardClient *GetClipboardClient(); -}; - -/* Initialize wxTheClipboard. Can be called repeatedly */ -void WXDLLEXPORT wxInitClipboard(); - -/* The clipboard */ -WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard; - -#endif - // Old clipboard class - -#endif - // _WX_CLIPBRD_H_ diff --git a/include/wx/motif/colordlg.h b/include/wx/motif/colordlg.h deleted file mode 100644 index 58cbb11e0a..0000000000 --- a/include/wx/motif/colordlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.h -// Purpose: wxColourDialog class. Use generic version if no -// platform-specific implementation. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLG_H_ -#define _WX_COLORDLG_H_ - -#ifdef __GNUG__ -#pragma interface "colordlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * Platform-specific colour dialog implementation - */ - -class WXDLLEXPORT wxColourDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxColourDialog) -public: - wxColourDialog(); - wxColourDialog(wxWindow *parent, wxColourData *data = NULL); - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - int ShowModal(); - wxColourData& GetColourData() { return m_colourData; } - -protected: - wxColourData m_colourData; - wxWindow* m_dialogParent; -}; - -#endif - // _WX_COLORDLG_H_ diff --git a/include/wx/motif/colour.h b/include/wx/motif/colour.h deleted file mode 100644 index 238d46cfe1..0000000000 --- a/include/wx/motif/colour.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: wxColour class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_ -#define _WX_COLOUR_H_ - -#ifdef __GNUG__ -#pragma interface "colour.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" - -// Colour -class WXDLLEXPORT wxColour : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxColour) -public: - // ctors - // default - wxColour(); - // from RGB - wxColour( unsigned char red, unsigned char green, unsigned char blue ); - wxColour( unsigned long colRGB ) { Set(colRGB); } - - // implicit conversion from the colour name - wxColour( const wxString &colourName ) { InitFromName(colourName); } - wxColour( const char *colourName ) { InitFromName(colourName); } - - // copy ctors and assignment operators - wxColour( const wxColour& col ); - wxColour& operator = ( const wxColour& col ); - - // dtor - ~wxColour(); - - // Set() functions - void Set( unsigned char red, unsigned char green, unsigned char blue ); - void Set( unsigned long colRGB ) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((unsigned char)colRGB, - (unsigned char)(colRGB >> 8), - (unsigned char)(colRGB >> 16)); - } - - // accessors - bool Ok() const {return m_isInit; } - unsigned char Red() const { return m_red; } - unsigned char Green() const { return m_green; } - unsigned char Blue() const { return m_blue; } - - int GetPixel() const { return m_pixel; }; - void SetPixel(int pixel) { m_pixel = pixel; m_isInit = TRUE; }; - - inline bool operator == (const wxColour& colour) const { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); } - - inline bool operator != (const wxColour& colour) const { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); } - - // Allocate a colour, or nearest colour, using the given display. - // If realloc is TRUE, ignore the existing pixel, otherwise just return - // the existing one. - // Returns the allocated pixel. - - // TODO: can this handle mono displays? If not, we should have an extra - // flag to specify whether this should be black or white by default. - - int AllocColour(WXDisplay* display, bool realloc = FALSE); - - void InitFromName(const wxString& col); - -private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - -public: - int m_pixel; -}; - -#endif - // _WX_COLOUR_H_ diff --git a/include/wx/motif/combobox.h b/include/wx/motif/combobox.h deleted file mode 100644 index 4df7da5137..0000000000 --- a/include/wx/motif/combobox.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: wxComboBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/choice.h" - -WXDLLEXPORT_DATA(extern const char*) wxComboBoxNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Combobox item -class WXDLLEXPORT wxComboBox: public wxChoice -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - -public: - inline wxComboBox() {} - ~wxComboBox(); - - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - // List functions - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - virtual inline int Number() const { return m_noStrings; } - - // Text field functions - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - WXWidget GetTopWidget() const { return m_mainWidget; } - WXWidget GetMainWidget() const { return m_mainWidget; } - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_COMBOBOX_H_ diff --git a/include/wx/motif/control.h b/include/wx/motif/control.h deleted file mode 100644 index 7eef8e4bc0..0000000000 --- a/include/wx/motif/control.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: wxControl class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -#ifdef __GNUG__ -#pragma interface "control.h" -#endif - -#include "wx/window.h" -#include "wx/list.h" -#include "wx/validate.h" - -// General item class -class WXDLLEXPORT wxControl: public wxWindow -{ - DECLARE_ABSTRACT_CLASS(wxControl) - -public: - wxControl(); - ~wxControl(); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; // Simulates an event - virtual void ProcessCommand(wxCommandEvent& event); // Calls the callback and - // appropriate event handlers - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - - // Places item in centre of panel - so can't be used BEFORE panel->Fit() - void Centre(int direction = wxHORIZONTAL); - void Callback(const wxFunction function) { m_callback = function; }; // Adds callback - - wxFunction GetCallback() { return m_callback; } - - bool InSetValue() const { return m_inSetValue; } - -protected: - wxFunction m_callback; // Callback associated with the window - - bool m_inSetValue; // Motif: prevent callbacks being called while - // in SetValue - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CONTROL_H_ diff --git a/include/wx/motif/cursor.h b/include/wx/motif/cursor.h deleted file mode 100644 index 9d4c270ccd..0000000000 --- a/include/wx/motif/cursor.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: wxCursor class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -#ifdef __GNUG__ -#pragma interface "cursor.h" -#endif - -#include "wx/bitmap.h" - -/* Cursor for one display, so we can choose the correct one for - * the current display. - */ -class wxXCursor : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxXCursor) - - public: - WXDisplay* m_display; - WXCursor m_cursor; -}; - -class WXDLLEXPORT wxCursorRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxCursor; -public: - wxCursorRefData(); - ~wxCursorRefData(); - - wxList m_cursors; // wxXCursor objects, one per display - wxStockCursor m_cursorId; // wxWindows standard cursor id -}; - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) -#define M_CURSORHANDLERDATA ((wxCursorRefData *)bitmap->m_refData) - -// Cursor -class WXDLLEXPORT wxCursor: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - -public: - wxCursor(); - - // Copy constructors - inline wxCursor(const wxCursor& cursor) { Ref(cursor); } - - wxCursor(const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1, - const char maskBits[] = NULL); - - wxCursor(const wxString& name, long flags = wxBITMAP_TYPE_XBM, - int hotSpotX = 0, int hotSpotY = 0); - - wxCursor(wxStockCursor id); - ~wxCursor(); - - virtual bool Ok() const { return ((m_refData != NULL) && M_CURSORDATA->m_ok); } - - inline wxCursor& operator = (const wxCursor& cursor) { if (*this == cursor) return (*this); Ref(cursor); return *this; } - inline bool operator == (const wxCursor& cursor) const { return m_refData == cursor.m_refData; } - inline bool operator != (const wxCursor& cursor) const { return m_refData != cursor.m_refData; } - - // Motif-specific. - // Create/get a cursor for the current display - WXCursor GetXCursor(WXDisplay* display) ; - // Make a cursor from standard id - WXCursor MakeCursor(WXDisplay* display, wxStockCursor id); -}; - -extern WXDLLEXPORT void wxSetCursor(const wxCursor& cursor); - -#endif - // _WX_CURSOR_H_ diff --git a/include/wx/motif/dataobj.h b/include/wx/motif/dataobj.h deleted file mode 100644 index 02daba2b37..0000000000 --- a/include/wx/motif/dataobj.h +++ /dev/null @@ -1,174 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.h -// Purpose: declaration of the wxDataObject class -// Author: Julian Smart -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DATAOBJ_H_ -#define _WX_DATAOBJ_H_ - -#ifdef __GNUG__ -#pragma interface "dataobj.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/bitmap.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject; -class WXDLLEXPORT wxTextDataObject; -class WXDLLEXPORT wxBitmapDataObject; -class WXDLLEXPORT wxPrivateDataObject; -class WXDLLEXPORT wxFileDataObject; - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject: public wxObject -{ - DECLARE_ABSTRACT_CLASS( wxDataObject ) - -public: - - wxDataObject() {} - ~wxDataObject() {} - - virtual wxDataFormat GetFormat() const = 0; - - // implementation -}; - -// ---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxTextDataObject ) - -public: - - wxTextDataObject() {} - wxTextDataObject( const wxString& strText ) - : m_strText(strText) { } - - virtual wxDataFormat GetFormat() const - { return wxDF_TEXT; } - - void SetText( const wxString& strText) - { m_strText = strText; } - - wxString GetText() const - { return m_strText; } - -private: - wxString m_strText; - -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxFileDataObject ) - -public: - - wxFileDataObject(void) {} - - virtual wxDataFormat GetFormat() const - { return wxDF_FILENAME; } - - void AddFile( const wxString &file ) - { m_files += file; m_files += (char)0; } - - wxString GetFiles() const - { return m_files; } - -private: - wxString m_files; - -}; - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject is a specialization of wxDataObject for bitmaps -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxBitmapDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxBitmapDataObject ) - -public: - - wxBitmapDataObject(void) {} - - virtual wxDataFormat GetFormat() const - { return wxDF_BITMAP; } - - void SetBitmap( const wxBitmap &bitmap ) - { m_bitmap = bitmap; } - - wxBitmap GetBitmap() const - { return m_bitmap; } - -private: - wxBitmap m_bitmap; -}; - -// ---------------------------------------------------------------------------- -// wxPrivateDataObject is a specialization of wxDataObject for app specific data -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxPrivateDataObject : public wxDataObject -{ - DECLARE_DYNAMIC_CLASS( wxPrivateDataObject ) - -public: - - wxPrivateDataObject(); - - ~wxPrivateDataObject(); - - virtual wxDataFormat GetFormat() const - { return wxDF_PRIVATE; } - - // the string ID identifies the format of clipboard or DnD data. a word - // processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - // to the clipboard - the latter with the Id "WXWORD_FORMAT". - - void SetId( const wxString& id ) - { m_id = id; } - - wxString GetId() const - { return m_id; } - - // will make internal copy - void SetData( const char *data, size_t size ); - - size_t GetDataSize() const - { return m_size; } - - char* GetData() const - { return m_data; } - -private: - size_t m_size; - char* m_data; - wxString m_id; -}; - - -#endif - //_WX_DATAOBJ_H_ - diff --git a/include/wx/motif/dc.h b/include/wx/motif/dc.h deleted file mode 100644 index aa4ffe8a57..0000000000 --- a/include/wx/motif/dc.h +++ /dev/null @@ -1,183 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: wxDC class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_ -#define _WX_DC_H_ - -#ifdef __GNUG__ - #pragma interface "dc.h" -#endif - -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/icon.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#ifndef MM_TEXT - #define MM_TEXT 0 - #define MM_ISOTROPIC 1 - #define MM_ANISOTROPIC 2 - #define MM_LOMETRIC 3 - #define MM_HIMETRIC 4 - #define MM_TWIPS 5 - #define MM_POINTS 6 - #define MM_METRIC 7 -#endif - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDC : public wxDCBase -{ - DECLARE_DYNAMIC_CLASS(wxDC) - -public: - wxDC(); - ~wxDC() { } - - // implement base class pure virtuals - // ---------------------------------- - - virtual void DestroyClippingRegion(); - - virtual wxSize GetPPI() const; - - virtual void SetMapMode(int mode); - virtual void SetUserScale(double x, double y); - virtual void SetSystemScale(double x, double y); - virtual void SetLogicalScale(double x, double y); - virtual void SetLogicalOrigin(long x, long y); - virtual void SetDeviceOrigin(long x, long y); - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp); - virtual void SetLogicalFunction(int function); - -protected: - virtual void DoDrawIcon(const wxIcon& icon, long x, long y); - virtual void DoDrawBitmap(const wxBitmap &bmp, long x, long y, - bool useMask = FALSE); - - virtual void DoSetClippingRegion(long x, long y, - long width, long height); - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - -public: - void ComputeScaleAndOrigin(); - - long XDEV2LOG(long x) const - { - long new_x = x - m_deviceOriginX; - if (new_x > 0) - return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; - } - long XDEV2LOGREL(long x) const - { - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); - } - long YDEV2LOG(long y) const - { - long new_y = y - m_deviceOriginY; - if (new_y > 0) - return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; - } - long YDEV2LOGREL(long y) const - { - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); - } - long XLOG2DEV(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX; - } - // Without device translation, for backing pixmap purposes - long XLOG2DEV_2(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX; - } - long XLOG2DEVREL(long x) const - { - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); - } - long YLOG2DEV(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY; - } - // Without device translation, for backing pixmap purposes - long YLOG2DEV_2(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY; - } - long YLOG2DEVREL(long y) const - { - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); - } - - void SetInternalDeviceOrigin( long x, long y ); - void GetInternalDeviceOrigin( long *x, long *y ); - -public: - // not sure what for, but what is a mm on a screen you don't know the size of? - double m_mm_to_pix_x,m_mm_to_pix_y; - - // If un-scrolled is non-zero or d.o. changes with scrolling. Set using - // SetInternalDeviceOrigin(). - long m_internalDeviceOriginX,m_internalDeviceOriginY; - - // To be set by external classes such as wxScrolledWindow using - // SetDeviceOrigin() - long m_externalDeviceOriginX,m_externalDeviceOriginY; - - // recompute scale? - bool m_needComputeScaleX, m_needComputeScaleY; - - // wxPSDC wants to have this. Will disappear. - float m_scaleFactor; -}; - -#endif - // _WX_DC_H_ diff --git a/include/wx/motif/dcclient.h b/include/wx/motif/dcclient.h deleted file mode 100644 index c7d6c2c205..0000000000 --- a/include/wx/motif/dcclient.h +++ /dev/null @@ -1,183 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -#ifdef __GNUG__ - #pragma interface "dcclient.h" -#endif - -#include "wx/dc.h" - -// ----------------------------------------------------------------------------- -// fwd declarations -// ----------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowDC; -class WXDLLEXPORT wxWindow; - -// Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented -// differently. On many platforms, however, they will be the same. - -//----------------------------------------------------------------------------- -// wxWindowDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowDC : public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxWindowDC) - -public: - wxWindowDC(); - wxWindowDC( wxWindow *win ); - - ~wxWindowDC(); - - // TODO this function is Motif-only for now - should it go into base class? - void Clear(const wxRect& rect); - - // implement base class pure virtuals - // ---------------------------------- - - virtual void Clear(); - - virtual void SetFont(const wxFont& font); - virtual void SetPen(const wxPen& pen); - virtual void SetBrush(const wxBrush& brush); - virtual void SetBackground(const wxBrush& brush); - virtual void SetBackgroundMode(int mode); - virtual void SetPalette(const wxPalette& palette); - virtual void SetLogicalFunction( int function ); - - virtual void SetTextForeground(const wxColour& colour); - virtual void SetTextBackground(const wxColour& colour); - - virtual long GetCharHeight() const; - virtual long GetCharWidth() const; - virtual void GetTextExtent(const wxString& string, - long *x, long *y, - long *descent = NULL, - long *externalLeading = NULL, - wxFont *theFont = NULL) const; - - virtual bool CanDrawBitmap() const; - virtual bool CanGetTextExtent() const; - - virtual int GetDepth() const; - virtual wxSize GetPPI() const; - - virtual void DestroyClippingRegion(); - - // Helper function for setting clipping - void SetDCClipping(); - - // implementation from now on - // -------------------------- - - WXGC GetGC() const { return m_gc; } - WXGC GetBackingGC() const { return m_gcBacking; } - WXDisplay* GetDisplay() const { return m_display; } - bool GetAutoSetting() const { return m_autoSetting; } - void SetAutoSetting(bool flag) { m_autoSetting = flag; } - -protected: - virtual void DoFloodFill(long x, long y, const wxColour& col, - int style = wxFLOOD_SURFACE); - - virtual bool DoGetPixel(long x, long y, wxColour *col) const; - - virtual void DoDrawPoint(long x, long y); - virtual void DoDrawLine(long x1, long y1, long x2, long y2); - - virtual void DoDrawArc(long x1, long y1, - long x2, long y2, - long xc, long yc); - virtual void DoDrawEllipticArc(long x, long y, long w, long h, - double sa, double ea); - - virtual void DoDrawRectangle(long x, long y, long width, long height); - virtual void DoDrawRoundedRectangle(long x, long y, - long width, long height, - double radius); - virtual void DoDrawEllipse(long x, long y, long width, long height); - - virtual void DoCrossHair(long x, long y); - - virtual void DoDrawText(const wxString& text, long x, long y); - - virtual bool DoBlit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int rop = wxCOPY, bool useMask = FALSE); - - virtual void DoSetClippingRegionAsRegion(const wxRegion& region); - virtual void DoSetClippingRegion(long x, long y, - long width, long height); - - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - - virtual void DoDrawLines(int n, wxPoint points[], - long xoffset, long yoffset); - virtual void DoDrawPolygon(int n, wxPoint points[], - long xoffset, long yoffset, - int fillStyle = wxODDEVEN_RULE); - -#if wxUSE_SPLINES - virtual void DoDrawSpline(wxList *points); -#endif // wxUSE_SPLINES - - WXGC m_gc; - WXGC m_gcBacking; - WXDisplay* m_display; - wxWindow* m_window; - WXRegion m_currentRegion; // Current clipping region (incl. paint clip region) - WXRegion m_userRegion; // User-defined clipping region - WXPixmap m_pixmap; // Pixmap for drawing on - - // Not sure if we'll need all of these - int m_backgroundPixel; - wxColour m_currentColour; - // int m_currentBkMode; - int m_currentPenWidth ; - int m_currentPenJoin ; - int m_currentPenCap ; - int m_currentPenDashCount ; - char* m_currentPenDash ; - wxBitmap m_currentStipple ; - int m_currentStyle ; - int m_currentFill ; - int m_autoSetting ; // See comment in dcclient.cpp - WXFont m_oldFont; -}; - -class WXDLLEXPORT wxPaintDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - -public: - wxPaintDC() { } - wxPaintDC(wxWindow* win); - - ~wxPaintDC(); -}; - -class WXDLLEXPORT wxClientDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxClientDC) - -public: - wxClientDC() { } - wxClientDC(wxWindow* win) : wxWindowDC(win) { } -}; - -#endif - // _WX_DCCLIENT_H_ diff --git a/include/wx/motif/dcmemory.h b/include/wx/motif/dcmemory.h deleted file mode 100644 index 40434bd5f4..0000000000 --- a/include/wx/motif/dcmemory.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: wxMemoryDC class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#ifdef __GNUG__ - #pragma interface "dcmemory.h" -#endif - -#include "wx/dcclient.h" - -class wxMemoryDC : public wxWindowDC -{ -DECLARE_DYNAMIC_CLASS(wxMemoryDC) - -public: - wxMemoryDC(); - wxMemoryDC( wxDC *dc ); // Create compatible DC - ~wxMemoryDC(); - - virtual void SelectObject( const wxBitmap& bitmap ); - - void GetSize( int *width, int *height ) const; - - wxBitmap& GetBitmap() const { return (wxBitmap&) m_bitmap; } - -private: - friend wxPaintDC; - - wxBitmap m_bitmap; -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/include/wx/motif/dcprint.h b/include/wx/motif/dcprint.h deleted file mode 100644 index d46260ffce..0000000000 --- a/include/wx/motif/dcprint.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcprint.h -// Purpose: wxPrinterDC class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPRINT_H_ -#define _WX_DCPRINT_H_ - -#ifdef __GNUG__ -#pragma interface "dcprint.h" -#endif - -#include "wx/dc.h" - -class WXDLLEXPORT wxPrinterDC: public wxDC -{ - public: - DECLARE_CLASS(wxPrinterDC) - - // Create a printer DC - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT); - - ~wxPrinterDC(); -}; - -#endif - // _WX_DCPRINT_H_ - diff --git a/include/wx/motif/dcscreen.h b/include/wx/motif/dcscreen.h deleted file mode 100644 index e4d4c16979..0000000000 --- a/include/wx/motif/dcscreen.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: wxScreenDC class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_ -#define _WX_DCSCREEN_H_ - -#ifdef __GNUG__ -#pragma interface "dcscreen.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxScreenDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - - public: - // Create a DC representing the whole screen - wxScreenDC(); - ~wxScreenDC(); - - // Compatibility with X's requirements for - // drawing on top of all windows - static bool StartDrawingOnTop(wxWindow* window); - static bool StartDrawingOnTop(wxRect* rect = NULL); - static bool EndDrawingOnTop(); - -private: - static WXWindow sm_overlayWindow; - - // If we have started transparent drawing at a non-(0,0) point - // then we will have to adjust the device origin in the - // constructor. - static int sm_overlayWindowX; - static int sm_overlayWindowY; -}; - -#endif - // _WX_DCSCREEN_H_ - diff --git a/include/wx/motif/dialog.h b/include/wx/motif/dialog.h deleted file mode 100644 index 2fde3e3060..0000000000 --- a/include/wx/motif/dialog.h +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: wxDialog class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#ifdef __GNUG__ -#pragma interface "dialog.h" -#endif - -#include "wx/panel.h" - -WXDLLEXPORT_DATA(extern const char*) wxDialogNameStr; - -// Dialog boxes -class WXDLLEXPORT wxDialog : public wxPanel -{ -DECLARE_DYNAMIC_CLASS(wxDialog) - -public: - wxDialog(); - - // Constructor with a modal flag, but no window id - the old convention - wxDialog(wxWindow *parent, - const wxString& title, bool modal, - int x = -1, int y= -1, int width = 500, int height = 500, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - long modalStyle = modal ? wxDIALOG_MODAL : wxDIALOG_MODELESS ; - Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), style|modalStyle, name); - } - - // Constructor with no modal flag - the new convention. - wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, // bool modal = FALSE, // TODO make this a window style? - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - ~wxDialog(); - - virtual bool Destroy(); - - bool Show(bool show); - void Iconize(bool iconize); - void Raise(); - void Lower(); - - virtual bool IsIconized() const; - void Fit(); - - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - // bool OnClose(); - void OnCharHook(wxKeyEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - void SetModal(bool flag); - - virtual void Centre(int direction = wxBOTH); - virtual bool IsModal() const { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - virtual int ShowModal(); - virtual void EndModal(int retCode); - - // Standard buttons - void OnOK(wxCommandEvent& event); - void OnApply(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - inline WXWidget GetTopWidget() const { return m_mainWidget; } - inline WXWidget GetClientWidget() const { return m_mainWidget; } - -public: - //// Motif-specific - bool m_modalShowing; - wxString m_dialogTitle; - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - virtual void DoSetClientSize(int width, int height); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_DIALOG_H_ diff --git a/include/wx/motif/dirdlg.h b/include/wx/motif/dirdlg.h deleted file mode 100644 index b27cb74466..0000000000 --- a/include/wx/motif/dirdlg.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.h -// Purpose: wxDirDialog class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -#ifdef __GNUG__ -#pragma interface "dirdlg.h" -#endif - -#include "wx/dialog.h" - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxDirDialog) -public: - wxDirDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = "", - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetStyle(long style) { m_dialogStyle = style; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline long GetStyle() const { return m_dialogStyle; } - - int ShowModal(); - -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_path; -}; - -#endif - // _WX_DIRDLG_H_ diff --git a/include/wx/motif/dnd.h b/include/wx/motif/dnd.h deleted file mode 100644 index fab08d7476..0000000000 --- a/include/wx/motif/dnd.h +++ /dev/null @@ -1,178 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.h -// Purpose: declaration of wxDropTarget, wxDropSource classes -// Author: Julian Smart -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling, Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_DND_H_ -#define _WX_DND_H_ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dataobj.h" -#include "wx/cursor.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindow; - -class WXDLLEXPORT wxDropTarget; -class WXDLLEXPORT wxTextDropTarget; -class WXDLLEXPORT wxFileDropTarget; -class WXDLLEXPORT wxPrivateDropTarget; - -class WXDLLEXPORT wxDropSource; - -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDropTarget: public wxObject -{ - public: - - wxDropTarget(); - ~wxDropTarget(); - - virtual void OnEnter() { } - virtual void OnLeave() { } - virtual bool OnDrop( long x, long y, const void *data, size_t size ) = 0; - - // Override these to indicate what kind of data you support: - - virtual size_t GetFormatCount() const = 0; - virtual wxDataFormat GetFormat(size_t n) const = 0; - - // implementation -}; - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextDropTarget: public wxDropTarget -{ - public: - - wxTextDropTarget() {}; - virtual bool OnDrop( long x, long y, const void *data, size_t size ); - virtual bool OnDropText( long x, long y, const char *psz ); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -//------------------------------------------------------------------------- -// wxPrivateDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxPrivateDropTarget: public wxDropTarget -{ -public: - - wxPrivateDropTarget(); - - // you have to override OnDrop to get at the data - - // the string ID identifies the format of clipboard or DnD data. a word - // processor would e.g. add a wxTextDataObject and a wxPrivateDataObject - // to the clipboard - the latter with the Id "WXWORD_FORMAT". - - void SetId( const wxString& id ) - { m_id = id; } - - wxString GetId() - { return m_id; } - -private: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; - - wxString m_id; -}; - -// ---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileDropTarget: public wxDropTarget -{ - public: - - wxFileDropTarget() {}; - - virtual bool OnDrop( long x, long y, const void *data, size_t size ); - virtual bool OnDropFiles( long x, long y, - size_t nFiles, const char * const aszFiles[] ); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -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 - wxDragCancel // the operation was cancelled by user (not an error) -}; - -class WXDLLEXPORT wxDropSource: public wxObject -{ - public: - - wxDropSource( wxWindow *win ); - wxDropSource( wxDataObject &data, wxWindow *win ); - - ~wxDropSource(void); - - void SetData( wxDataObject &data ); - wxDragResult DoDragDrop( bool bAllowMove = FALSE ); - - virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; }; - - // implementation -#if 0 - void RegisterWindow(void); - void UnregisterWindow(void); - - wxWindow *m_window; - wxDragResult m_retValue; - wxDataObject *m_data; - - wxCursor m_defaultCursor; - wxCursor m_goaheadCursor; -#endif -}; - -#endif - - // wxUSE_DRAG_AND_DROP - -#endif - //_WX_DND_H_ - diff --git a/include/wx/motif/filedlg.h b/include/wx/motif/filedlg.h deleted file mode 100644 index 29cd0fb8f7..0000000000 --- a/include/wx/motif/filedlg.h +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: wxFileDialog class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -#ifdef __GNUG__ -#pragma interface "filedlg.h" -#endif - -#include "wx/dialog.h" - -/* - * File selector - */ - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorDefaultWildcardStr; - -class WXDLLEXPORT wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) -public: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; - - // For Motif - wxPoint m_pos; - static wxString m_fileSelectorAnswer; - static bool m_fileSelectorReturned; - -public: - wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", const wxString& defaultFile = "", const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetDirectory(const wxString& dir) { m_dir = dir; } - inline void SetFilename(const wxString& name) { m_fileName = name; } - inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - inline void SetStyle(long style) { m_dialogStyle = style; } - inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline wxString GetDirectory() const { return m_dir; } - inline wxString GetFilename() const { return m_fileName; } - inline wxString GetWildcard() const { return m_wildCard; } - inline long GetStyle() const { return m_dialogStyle; } - inline int GetFilterIndex() const { return m_filterIndex ; } - - int ShowModal(); -}; - -#define wxOPEN 0x0001 -#define wxSAVE 0x0002 -#define wxOVERWRITE_PROMPT 0x0004 -#define wxHIDE_READONLY 0x0008 -#define wxFILE_MUST_EXIST 0x0010 - -// File selector - backward compatibility -WXDLLEXPORT wxString wxFileSelector(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL, - const char *default_filename = NULL, const char *default_extension = NULL, - const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0, - wxWindow *parent = NULL, int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString wxFileSelectorEx(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL, - const char *default_filename = NULL, int *indexDefaultExtension = NULL, - const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0, - wxWindow *parent = NULL, int x = -1, int y = -1); - -// Generic file load dialog -WXDLLEXPORT wxString wxLoadFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL); - -// Generic file save dialog -WXDLLEXPORT wxString wxSaveFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL); - -#endif - // _WX_FILEDLG_H_ diff --git a/include/wx/motif/font.h b/include/wx/motif/font.h deleted file mode 100644 index f5b5a2cb6f..0000000000 --- a/include/wx/motif/font.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: wxFont class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -#ifdef __GNUG__ -#pragma interface "font.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/list.h" - -class WXDLLEXPORT wxFont; - -// For every wxFont, there must be a font for each display and scale requested. -// So these objects are stored in wxFontRefData::m_fonts -class WXDLLEXPORT wxXFont: public wxObject -{ -public: - wxXFont(); - ~wxXFont(); - - WXFontStructPtr m_fontStruct; // XFontStruct - WXFontList m_fontList; // Motif XmFontList - WXDisplay* m_display; // XDisplay - int m_scale; // Scale * 100 -}; - -class WXDLLEXPORT wxFontRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxFont; -public: - wxFontRefData(); - wxFontRefData(const wxFontRefData& data); - ~wxFontRefData(); -protected: - int m_pointSize; - int m_family; - int m_style; - int m_weight; - bool m_underlined; - wxString m_faceName; - - // A list of wxXFonts - wxList m_fonts; -}; - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Font -class WXDLLEXPORT wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) -public: - wxFont(); - wxFont(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - inline wxFont(const wxFont& font) { Ref(font); } - - ~wxFont(); - - bool Create(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline int GetPointSize() const { return M_FONTDATA->m_pointSize; } - inline int GetFamily() const { return M_FONTDATA->m_family; } - inline int GetStyle() const { return M_FONTDATA->m_style; } - inline int GetWeight() const { return M_FONTDATA->m_weight; } - wxString GetFamilyString() const ; - wxString GetFaceName() const ; - wxString GetStyleString() const ; - wxString GetWeightString() const ; - inline bool GetUnderlined() const { return M_FONTDATA->m_underlined; } - - void SetPointSize(int pointSize); - void SetFamily(int family); - void SetStyle(int style); - void SetWeight(int weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - - inline wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; } - inline bool operator == (const wxFont& font) const { return m_refData == font.m_refData; } - inline bool operator != (const wxFont& font) const { return m_refData != font.m_refData; } - -// Implementation - - // Find an existing, or create a new, XFontStruct - // based on this wxFont and the given scale. Append the - // font to list in the private data for future reference. - - // TODO This is a fairly basic implementation, that doesn't - // allow for different facenames, and also doesn't do a mapping - // between 'standard' facenames (e.g. Arial, Helvetica, Times Roman etc.) - // and the fonts that are available on a particular system. - // Maybe we need to scan the user's machine to build up a profile - // of the fonts and a mapping file. - - // Return font struct, and optionally the Motif font list - wxXFont* GetInternalFont(double scale = 1.0, WXDisplay* display = NULL) const; - - // These two are helper functions for convenient access of the above. - inline WXFontStructPtr GetFontStruct(double scale = 1.0, WXDisplay* display = NULL) const - { - wxXFont* f = GetInternalFont(scale, display); - return (f ? f->m_fontStruct : (WXFontStructPtr) 0); - } - WXFontList GetFontList(double scale = 1.0, WXDisplay* display = NULL) const - { - wxXFont* f = GetInternalFont(scale, display); - return (f ? f->m_fontList : (WXFontList) 0); - } - - WXFontStructPtr LoadQueryFont(int pointSize, int family, int style, - int weight, bool underlined) const; -protected: - bool RealizeResource(); - void Unshare(); -}; - -#endif - // _WX_FONT_H_ diff --git a/include/wx/motif/fontdlg.h b/include/wx/motif/fontdlg.h deleted file mode 100644 index ca799d759a..0000000000 --- a/include/wx/motif/fontdlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.h -// Purpose: wxFontDialog class. Use generic version if no -// platform-specific implementation. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDLG_H_ -#define _WX_FONTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "fontdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * Font dialog - */ - -class WXDLLEXPORT wxFontDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFontDialog) -public: - wxFontDialog(); - wxFontDialog(wxWindow *parent, wxFontData *data = NULL); - - bool Create(wxWindow *parent, wxFontData *data = NULL); - - int ShowModal(); - wxFontData& GetFontData() { return m_fontData; } - -protected: - wxWindow* m_dialogParent; - wxFontData m_fontData; -}; - -#endif - // _WX_FONTDLG_H_ - diff --git a/include/wx/motif/frame.h b/include/wx/motif/frame.h deleted file mode 100644 index b8f741e825..0000000000 --- a/include/wx/motif/frame.h +++ /dev/null @@ -1,209 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: wxFrame class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#ifdef __GNUG__ -#pragma interface "frame.h" -#endif - -#include "wx/window.h" -#include "wx/toolbar.h" -#include "wx/accel.h" -#include "wx/icon.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxStatusBar; - -class WXDLLEXPORT wxFrame : public wxWindow -{ -DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame(); - wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual bool Destroy(); - - void GetClientSize(int *width, int *height) const; - void GetSize(int *width, int *height) const ; - void GetPosition(int *x, int *y) const ; - - wxSize GetSize() const { return wxWindow::GetSize(); } - wxPoint GetPosition() const { return wxWindow::GetPosition(); } - wxSize GetClientSize() const { return wxWindow::GetClientSize(); } - - void ClientToScreen(int *x, int *y) const; - wxPoint ClientToScreen(const wxPoint& pt) const { return wxWindow::ClientToScreen(pt); } - - void ScreenToClient(int *x, int *y) const; - wxPoint ScreenToClient(const wxPoint& pt) const { return wxWindow::ScreenToClient(pt); } - - void OnSize(wxSizeEvent& event); - void OnMenuHighlight(wxMenuEvent& event); - void OnActivate(wxActivateEvent& event); - void OnIdle(wxIdleEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - bool Show(bool show); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - virtual wxMenuBar *GetMenuBar() const ; - - // Set title - void SetTitle(const wxString& title); - wxString GetTitle() const { return m_title; } - - void Centre(int direction = wxBOTH); - - // Call this to simulate a menu command - virtual void Command(int id); - virtual void ProcessCommand(int id); - - // Set icon - virtual void SetIcon(const wxIcon& icon); - - // Create status line - virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0, - const wxString& name = "statusBar"); - wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } - virtual void PositionStatusBar(); - virtual wxStatusBar *OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name); - - // Create toolbar -#if wxUSE_TOOLBAR - virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, const wxString& name = wxToolBarNameStr); - virtual wxToolBar *OnCreateToolBar(long style, wxWindowID id, const wxString& name); - // If made known to the frame, the frame will manage it automatically. - virtual void SetToolBar(wxToolBar *toolbar) ; - virtual wxToolBar *GetToolBar() const ; - virtual void PositionToolBar(); -#endif // wxUSE_TOOLBAR - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // Hint to tell framework which status bar to use - // TODO: should this go into a wxFrameworkSettings class perhaps? - static void UseNativeStatusBar(bool useNative) { m_useNativeStatusBar = useNative; }; - static bool UsesNativeStatusBar() { return m_useNativeStatusBar; }; - - // Fit frame around subwindows - virtual void Fit(); - - // Iconize - virtual void Iconize(bool iconize); - - virtual bool IsIconized() const ; - - // Compatibility - bool Iconized() const { return IsIconized(); } - - // Is the frame maximized? Returns FALSE under Motif (but TRUE for - // wxMDIChildFrame due to the tabbed implementation). - virtual bool IsMaximized(void) const ; - - virtual void Maximize(bool maximize); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Query app for menu item updates (called from OnIdle) - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin); - - // Checks if there is a toolbar, and returns the first free client position - virtual wxPoint GetClientAreaOrigin() const; - - virtual void Raise(); - virtual void Lower(); - - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - WXWidget GetMenuBarWidget() const ; - WXWidget GetShellWidget() const { return m_frameShell; } - WXWidget GetWorkAreaWidget() const { return m_workArea; } - WXWidget GetClientAreaWidget() const { return m_clientArea; } - WXWidget GetTopWidget() const { return m_frameShell; } - WXWidget GetMainWindowWidget() const { return m_frameWidget; } - - // The widget that can have children on it - WXWidget GetClientWidget() const; - bool GetVisibleStatus() const { return m_visibleStatus; } - - bool PreResize(); - -protected: - wxMenuBar * m_frameMenuBar; - wxStatusBar * m_frameStatusBar; - wxIcon m_icon; - bool m_iconized; - static bool m_useNativeStatusBar; - -#if wxUSE_TOOLBAR - wxToolBar * m_frameToolBar ; -#endif // wxUSE_TOOLBAR - - //// Motif-specific - - WXWidget m_frameShell; - WXWidget m_frameWidget; - WXWidget m_workArea; - WXWidget m_clientArea; - // WXWidget m_menuBarWidget; - bool m_visibleStatus; - wxString m_title; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - virtual void DoSetClientSize(int width, int height); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_FRAME_H_ diff --git a/include/wx/motif/gauge.h b/include/wx/motif/gauge.h deleted file mode 100644 index 201b6e5488..0000000000 --- a/include/wx/motif/gauge.h +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: wxGauge class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_ -#define _WX_GAUGE_H_ - -#ifdef __GNUG__ -#pragma interface "gauge.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxGaugeNameStr; - -// Group box -class WXDLLEXPORT wxGauge : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge) - -public: - inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; } - - inline wxGauge(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - void SetShadowWidth(int w); - void SetBezelFace(int w); - void SetRange(int r); - void SetValue(int pos); - - int GetShadowWidth() const ; - int GetBezelFace() const ; - int GetRange() const ; - int GetValue() const ; - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ; - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - -protected: - int m_rangeMax; - int m_gaugePos; -}; - -#endif - // _WX_GAUGE_H_ diff --git a/include/wx/motif/gdiobj.h b/include/wx/motif/gdiobj.h deleted file mode 100644 index c25575dffc..0000000000 --- a/include/wx/motif/gdiobj.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: wxGDIObject class: base class for other GDI classes -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDIOBJ_H_ -#define _WX_GDIOBJ_H_ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface "gdiobj.h" -#endif - -class WXDLLEXPORT wxGDIRefData: public wxObjectRefData { -public: - inline wxGDIRefData() - { - } -}; - -#define M_GDIDATA ((wxGDIRefData *)m_refData) - -class WXDLLEXPORT wxGDIObject: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - public: - inline wxGDIObject() { m_visible = FALSE; }; - inline ~wxGDIObject() {}; - - inline bool IsNull() const { return (m_refData == 0); } - - virtual bool GetVisible() { return m_visible; } - virtual void SetVisible(bool v) { m_visible = v; } - -protected: - bool m_visible; // Can a pointer to this object be safely taken? - // - only if created within FindOrCreate... -}; - -#endif - // _WX_GDIOBJ_H_ diff --git a/include/wx/motif/helpxxxx.h b/include/wx/motif/helpxxxx.h deleted file mode 100644 index fc991a93b3..0000000000 --- a/include/wx/motif/helpxxxx.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.h -// Purpose: Help system: native implementation for your system. Replace -// XXXX with suitable name. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPXXXX_H_ -#define _WX_HELPXXXX_H_ - -#ifdef __GNUG__ -#pragma interface "helpxxxx.h" -#endif - -#include "wx/wx.h" - -#include "wx/helpbase.h" - -class WXDLLEXPORT wxXXXXHelpController: public wxHelpControllerBase -{ - DECLARE_CLASS(wxXXXXHelpController) - - public: - wxXXXXHelpController(); - ~wxXXXXHelpController(); - - // Must call this to set the filename and server name - virtual bool Initialize(const wxString& file); - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = ""); - virtual bool DisplayContents(); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplayBlock(long blockNo); - virtual bool KeywordSearch(const wxString& k); - - virtual bool Quit(); - virtual void OnQuit(); - - inline wxString GetHelpFile() const { return m_helpFile; } - -protected: - wxString m_helpFile; -}; - -#endif - // _WX_HELPXXXX_H_ diff --git a/include/wx/motif/icon.h b/include/wx/motif/icon.h deleted file mode 100644 index 3ac1eb4450..0000000000 --- a/include/wx/motif/icon.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: wxIcon class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -#ifdef __GNUG__ -#pragma interface "icon.h" -#endif - -#include "wx/bitmap.h" - -/* -// Same as for wxBitmap -class WXDLLEXPORT wxIconRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; -public: - wxIconRefData(); - ~wxIconRefData(); -}; -*/ - -#define M_ICONDATA ((wxBitmapRefData *)m_refData) -#define M_ICONHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData()) - -// Icon -class WXDLLEXPORT wxIcon: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - wxIcon(); - - // Copy constructors - inline wxIcon(const wxIcon& icon) { Ref(icon); } - - // Initialize with XBM data - wxIcon(const char bits[], int width, int height); - - // Initialize with XPM data - wxIcon(char **data); - - wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_XPM, - int desiredWidth = -1, int desiredHeight = -1); - ~wxIcon(); - - bool LoadFile(const wxString& name, long flags = wxBITMAP_TYPE_XPM, - int desiredWidth = -1, int desiredHeight = -1); - bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_XBM) - { return wxBitmap::LoadFile(name, type); } - - inline wxIcon& operator = (const wxIcon& icon) { if (*this == icon) return (*this); Ref(icon); return *this; } - inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; } - inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; } - - virtual bool Ok() const { return ((m_refData != NULL) && (M_ICONDATA->m_ok)); } -}; - -#endif - // _WX_ICON_H_ diff --git a/include/wx/motif/joystick.h b/include/wx/motif/joystick.h deleted file mode 100644 index cc544c4d93..0000000000 --- a/include/wx/motif/joystick.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" - -class WXDLLEXPORT wxJoystick: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; }; - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition() const; - int GetZPosition() const; - int GetButtonState() const; - int GetPOVPosition() const; - int GetPOVCTSPosition() const; - int GetRudderPosition() const; - int GetUPosition() const; - int GetVPosition() const; - int GetMovementThreshold() const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk() const; // Checks that the joystick is functioning - int GetNumberJoysticks() const ; - int GetManufacturerId() const ; - int GetProductId() const ; - wxString GetProductName() const ; - int GetXMin() const; - int GetYMin() const; - int GetZMin() const; - int GetXMax() const; - int GetYMax() const; - int GetZMax() const; - int GetNumberButtons() const; - int GetNumberAxes() const; - int GetMaxButtons() const; - int GetMaxAxes() const; - int GetPollingMin() const; - int GetPollingMax() const; - int GetRudderMin() const; - int GetRudderMax() const; - int GetUMin() const; - int GetUMax() const; - int GetVMin() const; - int GetVMax() const; - - bool HasRudder() const; - bool HasZ() const; - bool HasU() const; - bool HasV() const; - bool HasPOV() const; - bool HasPOV4Dir() const; - bool HasPOVCTS() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/include/wx/motif/listbox.h b/include/wx/motif/listbox.h deleted file mode 100644 index ea5c008089..0000000000 --- a/include/wx/motif/listbox.h +++ /dev/null @@ -1,112 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_ -#define _WX_LISTBOX_H_ - -#ifdef __GNUG__ -#pragma interface "listbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxListBoxNameStr; - -// forward decl for GetSelections() -class WXDLLEXPORT wxArrayInt; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// List box item -class WXDLLEXPORT wxListBox: public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxListBox) - -public: - wxListBox(); - wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr): - m_clientDataList(wxKEY_INTEGER) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - ~wxListBox(); - - virtual void Append(const wxString& item); - virtual void Append(const wxString& item, char *clientData); - virtual void Set(int n, const wxString* choices, char **clientData = NULL); - virtual int FindString(const wxString& s) const ; - virtual void Clear(); - virtual void SetSelection(int n, bool select = TRUE); - - virtual void Deselect(int n); - - // For single choice list item only - virtual int GetSelection() const ; - virtual void Delete(int n); - virtual char *GetClientData(int n) const ; - virtual void *GetClientData() { return wxWindow::GetClientData(); } - virtual void SetClientData(int n, char *clientData); - virtual void SetClientData( void *data ) { wxWindow::SetClientData(data); } - virtual void SetString(int n, const wxString& s); - - // For single or multiple choice list item - virtual int GetSelections(wxArrayInt& aSelections) const; - virtual bool Selected(int n) const ; - virtual wxString GetString(int n) const ; - - // Set the specified item at the first visible item - // or scroll to max range. - virtual void SetFirstItem(int n) ; - virtual void SetFirstItem(const wxString& s) ; - - virtual void InsertItems(int nItems, const wxString items[], int pos); - - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& s, bool flag = TRUE); - virtual int Number() const ; - - void Command(wxCommandEvent& event); - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - WXWidget GetTopWidget() const; - -protected: - int m_noItems; - int m_selected; - - // List mapping positions->client data - wxList m_clientDataList; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_LISTBOX_H_ diff --git a/include/wx/motif/mdi.h b/include/wx/motif/mdi.h deleted file mode 100644 index 143596828a..0000000000 --- a/include/wx/motif/mdi.h +++ /dev/null @@ -1,248 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: MDI (Multiple Document Interface) classes. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MDI_H_ -#define _WX_MDI_H_ - -#ifdef __GNUG__ -#pragma interface "mdi.h" -#endif - -/* -New MDI scheme using tabs. We can use a wxNotebook to implement the client -window. wxMDIChildFrame can be implemented as an XmMainWindow widget -as before, and is a child of the notebook _and_ of the parent frame... -but wxMDIChildFrame::GetParent should return the parent frame. - -*/ - -#include "wx/frame.h" -#include "wx/notebook.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxStatusLineNameStr; - -class WXDLLEXPORT wxMDIClientWindow; -class WXDLLEXPORT wxMDIChildFrame; - -class WXDLLEXPORT wxMDIParentFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - - friend class WXDLLEXPORT wxMDIChildFrame; -public: - - wxMDIParentFrame(); - inline wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, // Scrolling refers to client window - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - void OnSize(wxSizeEvent& event); - void OnActivate(wxActivateEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - - void SetMenuBar(wxMenuBar *menu_bar); - - // Gets the size available for subwindows after menu size, toolbar size - // and status bar size have been subtracted. If you want to manage your own - // toolbar(s), don't call SetToolBar. - void GetClientSize(int *width, int *height) const; - wxSize GetClientSize() const { return wxWindow::GetClientSize(); } - - // Get the active MDI child window - wxMDIChildFrame *GetActiveChild() const ; - - // Get the client window - wxMDIClientWindow *GetClientWindow() const { return m_clientWindow; }; - - // Create the client window class (don't Create the window, - // just return a new class) - virtual wxMDIClientWindow *OnCreateClient() ; - - // MDI operations - virtual void Cascade(); - virtual void Tile(); - virtual void ArrangeIcons(); - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -// Implementation - - // Set the active child - inline void SetActiveChild(wxMDIChildFrame* child) { m_activeChild = child; } - - // Set the child's menubar into the parent frame - void SetChildMenuBar(wxMDIChildFrame* frame); - - inline wxMenuBar* GetActiveMenuBar() const { return m_activeMenuBar; } - - // Redirect events to active child first - virtual bool ProcessEvent(wxEvent& event); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - - -protected: - - wxMDIClientWindow* m_clientWindow; - wxMDIChildFrame* m_activeChild; - wxMenuBar* m_activeMenuBar; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxMDIChildFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) - -public: - wxMDIChildFrame(); - wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIChildFrame(); - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - void SetTitle(const wxString& title); - - void GetClientSize(int *width, int *height) const; - void GetSize(int *width, int *height) const; - void GetPosition(int *x, int *y) const ; - - // Set icon - virtual void SetIcon(const wxIcon& icon); - - // Override wxFrame operations - void CaptureMouse(); - void ReleaseMouse(); - void Raise(); - void Lower(void); - void SetSizeHints(int minW = -1, int minH = -1, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1); - - // MDI operations - virtual void Maximize(); - virtual void Maximize(bool WXUNUSED(maximize)) { }; - inline void Minimize() { Iconize(TRUE); }; - virtual void Iconize(bool iconize); - virtual void Restore(); - virtual void Activate(); - virtual bool IsIconized() const ; - - // Is the frame maximized? Returns TRUE for - // wxMDIChildFrame due to the tabbed implementation. - virtual bool IsMaximized(void) const ; - - bool Show(bool show); - - WXWidget GetMainWidget() const { return m_mainWidget; }; - WXWidget GetTopWidget() const { return m_mainWidget; }; - WXWidget GetClientWidget() const { return m_mainWidget; }; - - /* - virtual void OnRaise(); - virtual void OnLower(); - */ - - void SetMDIParentFrame(wxMDIParentFrame* parentFrame) { m_mdiParentFrame = parentFrame; } - wxMDIParentFrame* GetMDIParentFrame() const { return m_mdiParentFrame; } - -protected: - wxMDIParentFrame* m_mdiParentFrame; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); -}; - -/* The client window is a child of the parent MDI frame, and itself - * contains the child MDI frames. - * However, you create the MDI children as children of the MDI parent: - * only in the implementation does the client window become the parent - * of the children. Phew! So the children are sort of 'adopted'... - */ - -class WXDLLEXPORT wxMDIClientWindow: public wxNotebook -{ -DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - -public: - wxMDIClientWindow() ; - wxMDIClientWindow(wxMDIParentFrame *parent, long style = 0) - { - CreateClient(parent, style); - } - - ~wxMDIClientWindow(); - - void GetClientSize(int *width, int *height) const; - void GetSize(int *width, int *height) const ; - void GetPosition(int *x, int *y) const ; - - // Note: this is virtual, to allow overridden behaviour. - virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL); - - // Explicitly call default scroll behaviour - void OnScroll(wxScrollEvent& event); - - // Implementation - void OnPageChanged(wxNotebookEvent& event); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_MDI_H_ diff --git a/include/wx/motif/menu.h b/include/wx/motif/menu.h deleted file mode 100644 index 22ddece86e..0000000000 --- a/include/wx/motif/menu.h +++ /dev/null @@ -1,246 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -#ifdef __GNUG__ -#pragma interface "menu.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -class WXDLLEXPORT wxMenuItem; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenu; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenu: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - // ctor & dtor - wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL); - ~wxMenu(); - - // construct menu - // append items to the menu - // separator line - void AppendSeparator(); - // normal item - void Append(int id, const wxString& Label, const wxString& helpString = wxEmptyString, - bool checkable = FALSE); - // a submenu - void Append(int id, const wxString& Label, wxMenu *SubMenu, - const wxString& helpString = wxEmptyString); - // the most generic form (create wxMenuItem first and use it's functions) - void Append(wxMenuItem *pItem); - // insert a break in the menu - void Break(); - // delete an item - void Delete(int id); - - // menu item control - void Enable(int id, bool Flag); - bool Enabled(int id) const; - inline bool IsEnabled(int id) const { return Enabled(id); }; - void Check(int id, bool Flag); - bool Checked(int id) const; - inline bool IsChecked(int id) const { return IsChecked(id); }; - - // Client data - inline void SetClientData(void* clientData) { m_clientData = clientData; } - inline void* GetClientData() const { return m_clientData; } - - // item properties - // title - void SetTitle(const wxString& label); - const wxString GetTitle() const; - // label - void SetLabel(int id, const wxString& label); - wxString GetLabel(int id) const; - // help string - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - // find item - // Finds the item id matching the given string, -1 if not found. - virtual int FindItem(const wxString& itemString) const ; - // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const; - - // Updates the UI for a menu and all submenus recursively. - // source is the object that has the update event handlers - // defined for it. If NULL, the menu or associated window - // will be used. - void UpdateUI(wxEvtHandler* source = (wxEvtHandler*) NULL); - - void ProcessCommand(wxCommandEvent& event); - inline void Callback(const wxFunction func) { m_callback = func; } - - virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; } - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline wxList& GetItems() const { return (wxList&) m_menuItems; } - - void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; } - wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; } - - //// Motif-specific - inline WXWidget GetButtonWidget() const { return m_buttonWidget; } - inline void SetButtonWidget(WXWidget buttonWidget) { m_buttonWidget = buttonWidget; } - inline WXWidget GetMainWidget() const { return m_menuWidget; } - inline wxMenu* GetParent() const { return m_menuParent; } - inline int GetId() const { return m_menuId; } - inline void SetId(int id) { m_menuId = id; } - inline void SetMenuBar(wxMenuBar* menuBar) { m_menuBar = menuBar; } - inline wxMenuBar* GetMenuBar() const { return m_menuBar; } - - void CreatePopup (WXWidget logicalParent, int x, int y); - void DestroyPopup (void); - void ShowPopup (int x, int y); - void HidePopup (void); - - WXWidget CreateMenu(wxMenuBar *menuBar, WXWidget parent, wxMenu *topMenu, - const wxString& title = "", bool isPulldown = FALSE); - - // For popups, need to destroy, then recreate menu for a different (or - // possibly same) window, since the parent may change. - void DestroyMenu(bool full); - WXWidget FindMenuItem(int id, wxMenuItem **it = NULL) const; - - const wxColour& GetBackgroundColour() const { return m_backgroundColour; } - const wxColour& GetForegroundColour() const { return m_foregroundColour; } - const wxFont& GetFont() const { return m_font; } - - void SetBackgroundColour(const wxColour& colour); - void SetForegroundColour(const wxColour& colour); - void SetFont(const wxFont& colour); - void ChangeFont(bool keepOriginalSize = FALSE); - -public: - wxFunction m_callback; - - int m_noItems; - wxString m_title; - wxMenuBar * m_menuBar; - wxList m_menuItems; - wxEvtHandler * m_parent; - wxEvtHandler * m_eventHandler; - void* m_clientData; - wxWindow* m_pInvokingWindow; - - //// Motif-specific - int m_numColumns; - WXWidget m_menuWidget; - WXWidget m_popupShell; // For holding the popup shell widget - WXWidget m_buttonWidget; // The actual string, so we can grey it etc. - int m_menuId; - wxMenu* m_topLevelMenu ; - wxMenu* m_menuParent; - bool m_ownedByMenuBar; - wxColour m_foregroundColour; - wxColour m_backgroundColour; - wxFont m_font; -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxMenuBar: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - - wxMenuBar( long style ); - wxMenuBar(); - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - ~wxMenuBar(); - - void Append(wxMenu *menu, const wxString& title); - // Must only be used AFTER menu has been attached to frame, - // otherwise use individual menus to enable/disable items - void Enable(int Id, bool Flag); - bool Enabled(int Id) const ; - inline bool IsEnabled(int Id) const { return Enabled(Id); }; - void EnableTop(int pos, bool Flag); - void Check(int id, bool Flag); - bool Checked(int id) const ; - inline bool IsChecked(int Id) const { return Checked(Id); }; - void SetLabel(int id, const wxString& label) ; - wxString GetLabel(int id) const ; - void SetLabelTop(int pos, const wxString& label) ; - wxString GetLabelTop(int pos) const ; - virtual void Delete(wxMenu *menu, int index = 0); /* Menu not destroyed */ - virtual bool OnAppend(wxMenu *menu, const char *title); - virtual bool OnDelete(wxMenu *menu, int index); - - virtual void SetHelpString(int Id, const wxString& helpString); - virtual wxString GetHelpString(int Id) const ; - - virtual int FindMenuItem(const wxString& menuString, const wxString& itemString) const ; - - // Find wxMenuItem for item ID, and return item's - // menu too if itemMenu is non-NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const ; - - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline int GetMenuCount() const { return m_menuCount; } - inline wxMenu* GetMenu(int i) const { return m_menus[i]; } - - //// Motif-specific - inline wxFrame* GetMenuBarFrame() const { return m_menuBarFrame; } - inline void SetMenuBarFrame(wxFrame* frame) { m_menuBarFrame = frame; } - inline WXWidget GetMainWidget() const { return m_mainWidget; } - inline void SetMainWidget(WXWidget widget) { m_mainWidget = widget; } - - // Create menubar - bool CreateMenuBar(wxFrame* frame); - - // Destroy menubar, but keep data structures intact so we can recreate it. - bool DestroyMenuBar(); - - const wxColour& GetBackgroundColour() const { return m_backgroundColour; } - const wxColour& GetForegroundColour() const { return m_foregroundColour; } - const wxFont& GetFont() const { return m_font; } - - void SetBackgroundColour(const wxColour& colour); - void SetForegroundColour(const wxColour& colour); - void SetFont(const wxFont& colour); - void ChangeFont(bool keepOriginalSize = FALSE); - - public: - wxEvtHandler * m_eventHandler; - int m_menuCount; - wxMenu ** m_menus; - wxString * m_titles; - wxFrame * m_menuBarFrame; - - //// Motif-specific - WXWidget m_mainWidget; - - wxColour m_foregroundColour; - wxColour m_backgroundColour; - wxFont m_font; -}; - -#endif // _WX_MENU_H_ diff --git a/include/wx/motif/menuitem.h b/include/wx/motif/menuitem.h deleted file mode 100644 index 8fc4a7418a..0000000000 --- a/include/wx/motif/menuitem.h +++ /dev/null @@ -1,115 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MENUITEM_H -#define _MENUITEM_H - -#ifdef __GNUG__ -#pragma interface "menuitem.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/setup.h" - -// an exception to the general rule that a normal header doesn't include other -// headers - only because ownerdrw.h is not always included and I don't want -// to write #ifdef's everywhere... -#if wxUSE_OWNER_DRAWN -#include "wx/ownerdrw.h" -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// id for a separator line in the menu (invalid for normal item) -#define ID_SEPARATOR (-1) - -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenuItem: public wxObject -#if wxUSE_OWNER_DRAWN - , public wxOwnerDrawn -#endif -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - // ctor & dtor - wxMenuItem(wxMenu *pParentMenu = NULL, int id = ID_SEPARATOR, - const wxString& strName = "", const wxString& wxHelp = "", - bool bCheckable = FALSE, wxMenu *pSubMenu = NULL); - virtual ~wxMenuItem(); - - // accessors (some more are inherited from wxOwnerDrawn or are below) - bool IsSeparator() const { return m_idItem == ID_SEPARATOR; } - bool IsEnabled() const { return m_bEnabled; } - bool IsChecked() const { return m_bChecked; } - - int GetId() const { return m_idItem; } - const wxString& GetHelp() const { return m_strHelp; } - wxMenu *GetSubMenu() const { return m_pSubMenu; } - - // operations - void SetName(const wxString& strName) { m_strName = strName; } - void SetHelp(const wxString& strHelp) { m_strHelp = strHelp; } - - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); - - void DeleteSubMenu(); - - //// Motif-specific - - // These two should probably exist for all ports - void SetLabel(const wxString& label); - wxString GetLabel() const { return m_strName; } - void CreateItem (WXWidget menu, wxMenuBar * menuBar, wxMenu * topMenu); - void DestroyItem(bool full); - - inline WXWidget GetButtonWidget() const { return m_buttonWidget; } - inline void SetChecked(bool check) { m_bChecked = check; } - inline wxMenuBar* GetMenuBar() const { return m_menuBar; } - inline void SetMenuBar(wxMenuBar* menuBar) { m_menuBar = menuBar; } - inline wxMenu* GetTopMenu() const { return m_topMenu; } - inline void SetTopMenu(wxMenu* menu) { m_topMenu = menu; } - -private: - int m_idItem; // numeric id of the item - wxString m_strHelp; // associated help string - wxMenu *m_pSubMenu, // may be NULL - *m_pParentMenu; // menu this item is contained in - bool m_bEnabled, // enabled or greyed? - m_bChecked; // checked? (only if checkable) - - //// Motif-specific - WXWidget m_buttonWidget; - wxMenuBar* m_menuBar; - wxMenu* m_topMenu; // Top-level menu e.g. popup-menu - -#if wxUSE_OWNER_DRAWN - // wxOwnerDrawn base class already has these variables - nothing to do - -#else //!owner drawn - bool m_bCheckable; // can be checked? - wxString m_strName; // name or label of the item - -public: - const wxString& GetName() const { return m_strName; } - bool IsCheckable() const { return m_bCheckable; } -#endif //owner drawn -}; - -#endif //_MENUITEM_H diff --git a/include/wx/motif/metafile.h b/include/wx/motif/metafile.h deleted file mode 100644 index b6f823b860..0000000000 --- a/include/wx/motif/metafile.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.h -// Purpose: wxMetaFile, wxMetaFileDC classes. -// This probably should be restricted to Windows platforms, -// but if there is an equivalent on your platform, great. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_METAFIILE_H_ -#define _WX_METAFIILE_H_ - -#ifdef __GNUG__ -#pragma interface "metafile.h" -#endif - -#include "wx/setup.h" - -/* - * Metafile and metafile device context classes - work in Windows 3.1 only - * - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxMetaFile: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMetaFile) - public: - wxMetaFile(const wxString& file = ""); - ~wxMetaFile(); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - virtual bool SetClipboard(int width = 0, int height = 0); - - virtual bool Play(wxDC *dc); - // TODO - inline bool Ok() { return FALSE; }; - -/* TODO: Implementation - inline WXHANDLE GetHMETAFILE() { return m_metaFile; } - inline void SetHMETAFILE(WXHANDLE mf) { m_metaFile = mf; } - -protected: - WXHANDLE m_metaFile; -*/ -}; - -class WXDLLEXPORT wxMetaFileDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxMetaFileDC) - - public: - // Don't supply origin and extent - // Supply them to wxMakeMetaFilePlaceable instead. - wxMetaFileDC(const wxString& file = ""); - - // Supply origin and extent (recommended). - // Then don't need to supply them to wxMakeMetaFilePlaceable. - wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg); - - ~wxMetaFileDC(); - - // Should be called at end of drawing - virtual wxMetaFile *Close(); - virtual void SetMapMode(int mode); - virtual void GetTextExtent(const wxString& string, float *x, float *y, - float *descent = NULL, float *externalLeading = NULL, - wxFont *theFont = NULL, bool use16bit = FALSE); - - // Implementation - inline wxMetaFile *GetMetaFile() { return m_metaFile; } - inline void SetMetaFile(wxMetaFile *mf) { m_metaFile = mf; } - inline int GetWindowsMappingMode() { return m_windowsMappingMode; } - inline void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } - -protected: - int m_windowsMappingMode; - wxMetaFile *m_metaFile; -}; - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -// No origin or extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, float scale = 1.0); - -// Optional origin and extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = TRUE); - -#endif - // _WX_METAFIILE_H_ diff --git a/include/wx/motif/minifram.h b/include/wx/motif/minifram.h deleted file mode 100644 index 07d9fff441..0000000000 --- a/include/wx/motif/minifram.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.h -// Purpose: wxMiniFrame class. A small frame for e.g. floating toolbars. -// If there is no equivalent on your platform, just make it a -// normal frame. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#ifdef __GNUG__ -#pragma interface "minifram.h" -#endif - -#include "wx/frame.h" - -class WXDLLEXPORT wxMiniFrame: public wxFrame { - - DECLARE_DYNAMIC_CLASS(wxMiniFrame) - -public: - inline wxMiniFrame() {} - inline wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE|wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr) - { - // Use wxFrame constructor in absence of more specific code. - Create(parent, id, title, pos, size, style, name); - } - - ~wxMiniFrame() {} -protected: -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/include/wx/motif/msgdlg.h b/include/wx/motif/msgdlg.h deleted file mode 100644 index 4e8b790290..0000000000 --- a/include/wx/motif/msgdlg.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.h -// Purpose: wxMessageDialog class. Use generic version if no -// platform-specific implementation. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGBOXDLG_H_ -#define _WX_MSGBOXDLG_H_ - -#ifdef __GNUG__ -#pragma interface "msgdlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -/* - * Message box dialog - */ - -WXDLLEXPORT_DATA(extern const char*) wxMessageBoxCaptionStr; - -class WXDLLEXPORT wxMessageDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxMessageDialog) -protected: - wxString m_caption; - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; -public: - wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - int ShowModal(); -}; - - -int WXDLLEXPORT wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - wxWindow *parent = NULL, int x = -1, int y = -1); - -#endif - // _WX_MSGBOXDLG_H_ diff --git a/include/wx/motif/palette.h b/include/wx/motif/palette.h deleted file mode 100644 index 18302f09df..0000000000 --- a/include/wx/motif/palette.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: wxPalette class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#ifdef __GNUG__ -#pragma interface "palette.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/list.h" - -class WXDLLEXPORT wxPalette; - -// Palette for one display -class wxXPalette : public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxXPalette) - -public: - wxXPalette(); - - WXDisplay* m_display; - int m_pix_array_n; - unsigned long* m_pix_array; - WXColormap m_cmap; - bool m_destroyable; -}; - -class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPalette; -public: - wxPaletteRefData(); - ~wxPaletteRefData(); - -protected: - wxList m_palettes; -}; - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -class WXDLLEXPORT wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - -public: - wxPalette(); - inline wxPalette(const wxPalette& palette) { Ref(palette); } - - wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - ~wxPalette(); - bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } - inline bool operator == (const wxPalette& palette) { return m_refData == palette.m_refData; } - inline bool operator != (const wxPalette& palette) { return m_refData != palette.m_refData; } - - // Motif-specific - WXColormap GetXColormap(WXDisplay* display = NULL) const; - bool TransferBitmap(void *data, int depth, int size); - bool TransferBitmap8(unsigned char *data, unsigned long size, void *dest, unsigned int bpp); - unsigned long *GetXPixArray(WXDisplay* display, int *pix_array_n); - void PutXColormap(WXDisplay* display, WXColormap cmap, bool destroyable); -}; - -#endif - // _WX_PALETTE_H_ diff --git a/include/wx/motif/pen.h b/include/wx/motif/pen.h deleted file mode 100644 index 4bc54d41b7..0000000000 --- a/include/wx/motif/pen.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: wxPen class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#ifdef __GNUG__ -#pragma interface "pen.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/colour.h" -#include "wx/bitmap.h" - -typedef char wxDash ; - -class WXDLLEXPORT wxPen; - -class WXDLLEXPORT wxPenRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPen; -public: - wxPenRefData(); - wxPenRefData(const wxPenRefData& data); - ~wxPenRefData(); - -protected: - int m_width; - int m_style; - int m_join ; - int m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; - wxColour m_colour; -}; - -#define M_PENDATA ((wxPenRefData *)m_refData) - -// Pen -class WXDLLEXPORT wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) -public: - wxPen(); - wxPen(const wxColour& col, int width, int style); - wxPen(const wxBitmap& stipple, int width); - inline wxPen(const wxPen& pen) { Ref(pen); } - ~wxPen(); - - inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; } - inline bool operator == (const wxPen& pen) { return m_refData == pen.m_refData; } - inline bool operator != (const wxPen& pen) { return m_refData != pen.m_refData; } - - virtual bool Ok() const { return (m_refData != NULL) ; } - - // Override in order to recreate the pen - void SetColour(const wxColour& col) ; - void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - - void SetWidth(int width) ; - void SetStyle(int style) ; - void SetStipple(const wxBitmap& stipple) ; - void SetDashes(int nb_dashes, const wxDash *dash) ; - void SetJoin(int join) ; - void SetCap(int cap) ; - - inline wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); }; - inline int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); }; - inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); }; - inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); }; - inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); }; - inline int GetDashes(wxDash **ptr) const { - *ptr = (M_PENDATA ? M_PENDATA->m_dash : (wxDash*) NULL); return (M_PENDATA ? M_PENDATA->m_nbDash : 0); - } - inline int GetDashCount() const { return (M_PENDATA->m_nbDash); } - inline wxDash* GetDash() const { return (M_PENDATA->m_dash); } - - inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); }; - -// Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_PEN_H_ diff --git a/include/wx/motif/print.h b/include/wx/motif/print.h deleted file mode 100644 index 3f4b4a6b7d..0000000000 --- a/include/wx/motif/print.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: print.h -// Purpose: wxPrinter, wxPrintPreview classes -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINT_H_ -#define _WX_PRINT_H_ - -#ifdef __GNUG__ -#pragma interface "print.h" -#endif - -#include "wx/prntbase.h" - -/* - * Represents the printer: manages printing a wxPrintout object - */ - -class WXDLLEXPORT wxPrinter: public wxPrinterBase -{ - DECLARE_DYNAMIC_CLASS(wxPrinter) - - public: - wxPrinter(wxPrintData *data = NULL); - ~wxPrinter(); - - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE); - virtual bool PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); -}; - -/* - * wxPrintPreview - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLEXPORT wxPrintPreview: public wxPrintPreviewBase -{ - DECLARE_CLASS(wxPrintPreview) - - public: - wxPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting = NULL, wxPrintData *data = NULL); - ~wxPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); -}; - -#endif - // _WX_PRINT_H_ diff --git a/include/wx/motif/printdlg.h b/include/wx/motif/printdlg.h deleted file mode 100644 index 81d630d5b2..0000000000 --- a/include/wx/motif/printdlg.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.h -// Purpose: wxPrintDialog, wxPageSetupDialog classes. -// Use generic, PostScript version if no -// platform-specific implementation. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_ -#define _WX_PRINTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "printdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * wxPrinterDialog - * The common dialog for printing. - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxPrintDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPrintDialog) - - public: - wxPrintDialog(); - wxPrintDialog(wxWindow *parent, wxPrintData* data = NULL); - ~wxPrintDialog(); - - bool Create(wxWindow *parent, wxPrintData* data = NULL); - virtual int ShowModal(); - - inline wxPrintData& GetPrintData() { return m_printData; } - virtual wxDC *GetPrintDC(); - - private: - wxPrintData m_printData; - wxDC* m_printerDC; - wxWindow* m_dialogParent; -}; - -class WXDLLEXPORT wxPageSetupDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPageSetupDialog) - - private: - wxPageSetupData m_pageSetupData; - wxWindow* m_dialogParent; - public: - wxPageSetupDialog(); - wxPageSetupDialog(wxWindow *parent, wxPageSetupData *data = NULL); - ~wxPageSetupDialog(); - - bool Create(wxWindow *parent, wxPageSetupData *data = NULL); - virtual int ShowModal(); - - inline wxPageSetupData& GetPageSetupData() { return m_pageSetupData; } -}; - -#endif - // _WX_PRINTDLG_H_ diff --git a/include/wx/motif/private.h b/include/wx/motif/private.h deleted file mode 100644 index f8dbeba90d..0000000000 --- a/include/wx/motif/private.h +++ /dev/null @@ -1,76 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: private.h -// Purpose: Private declarations for wxMotif port -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_H_ -#define _WX_PRIVATE_H_ - -#include "wx/defs.h" - -class wxMouseEvent; -class wxKeyEvent; - -// Put any private declarations here: native Motif types may be used because -// this header is included after Xm/Xm.h - -// ---------------------------------------------------------------------------- -// common callbacks -// ---------------------------------------------------------------------------- - -// All widgets should have this as their resize proc. -extern void wxWidgetResizeProc(Widget w, XConfigureEvent *event, String args[], int *num_args); - -// For repainting arbitrary windows -void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data), XEvent *event, char *); - -// ---------------------------------------------------------------------------- -// we maintain a hash table which contains the mapping from Widget to wxWindow -// corresponding to the window for this widget -// ---------------------------------------------------------------------------- - -extern void wxDeleteWindowFromTable(Widget w); -extern wxWindow *wxGetWindowFromTable(Widget w); -extern bool wxAddWindowToTable(Widget w, wxWindow *win); - -extern char wxFindMnemonic(const char* s); -extern char * wxFindAccelerator (char *s); -extern XmString wxFindAcceleratorText (char *s); -extern int wxCharCodeXToWX(KeySym keySym); -extern KeySym wxCharCodeWXToX(int id); - -// ---------------------------------------------------------------------------- -// TranslateXXXEvent() functions - translate Motif event to wxWindow one -// ---------------------------------------------------------------------------- -extern bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Widget widget, XEvent *xevent); -extern bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Widget widget, XEvent *xevent); - -int wxGetBestMatchingPixel(Display *display, XColor *desiredColor, Colormap cmap); -Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap ); - -extern XColor g_itemColors[]; -extern int wxComputeColours (Display *display, wxColour * back, wxColour * fore); - -extern void wxDoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour); -extern void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour = FALSE); - -#define wxNO_COLORS 0x00 -#define wxBACK_COLORS 0x01 -#define wxFORE_COLORS 0x02 - -extern XColor itemColors[5] ; - -#define wxBACK_INDEX 0 -#define wxFORE_INDEX 1 -#define wxSELE_INDEX 2 -#define wxTOPS_INDEX 3 -#define wxBOTS_INDEX 4 - -#endif - // _WX_PRIVATE_H_ diff --git a/include/wx/motif/radiobox.h b/include/wx/motif/radiobox.h deleted file mode 100644 index 23f853f25e..0000000000 --- a/include/wx/motif/radiobox.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: wxRadioBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "radiobox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioBoxNameStr; - -// List box item -class WXDLLEXPORT wxBitmap ; - -class WXDLLEXPORT wxRadioBox : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxRadioBox) - -public: - wxRadioBox(); - - wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); - } - - ~wxRadioBox(); - - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr); - - int FindString(const wxString& s) const; - void SetSelection(int N); - int GetSelection() const; - wxString GetString(int N) const; - - void SetLabel(const wxString& label) { wxControl::SetLabel(label); }; - void SetLabel(int item, const wxString& label) ; - wxString GetLabel(int item) const; - wxString GetLabel() const { return wxControl::GetLabel(); }; - bool Enable(bool enable); - void Enable(int item, bool enable); - void Show(int item, bool show) ; - bool Show(bool show) ; - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection(const wxString& s); - virtual int Number() const { return m_noItems; } ; - void Command(wxCommandEvent& event); - - int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } - void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - WXWidget GetTopWidget() const { return m_formWidget; } - WXWidget GetLabelWidget() const { return m_labelWidget; } - WXWidget GetFrameWidget() const { return m_frameWidget; } - inline WXWidget* GetRadioButtons() const { return m_radioButtons; } - inline void SetSel(int i) { m_selectedButton = i; } - -protected: - int m_majorDim ; - int m_noItems; - int m_noRowsOrCols; - int m_selectedButton; - - WXWidget m_formWidget; - WXWidget m_labelWidget; - WXWidget m_frameWidget; - WXWidget* m_radioButtons; - wxString* m_radioButtonLabels; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/include/wx/motif/radiobut.h b/include/wx/motif/radiobut.h deleted file mode 100644 index 1292321fad..0000000000 --- a/include/wx/motif/radiobut.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: wxRadioButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -#ifdef __GNUG__ -#pragma interface "radiobut.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioButtonNameStr; - -class WXDLLEXPORT wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) -protected: -public: - wxRadioButton(); - inline wxRadioButton(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - virtual void SetValue(bool val); - virtual bool GetValue() const ; - - void Command(wxCommandEvent& event); - -// Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); -}; - -// Not implemented -#if 0 -class WXDLLEXPORT wxBitmap ; - -WXDLLEXPORT_DATA(extern const char*) wxBitmapRadioButtonNameStr; - -class WXDLLEXPORT wxBitmapRadioButton: public wxRadioButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapRadioButton) - protected: - wxBitmap *theButtonBitmap; - public: - inline wxBitmapRadioButton() { theButtonBitmap = NULL; } - inline wxBitmapRadioButton(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr); - - virtual void SetLabel(const wxBitmap *label); - virtual void SetValue(bool val) ; - virtual bool GetValue() const ; -}; -#endif - -#endif - // _WX_RADIOBUT_H_ diff --git a/include/wx/motif/region.h b/include/wx/motif/region.h deleted file mode 100644 index 969a44f654..0000000000 --- a/include/wx/motif/region.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: wxRegion class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGION_H_ -#define _WX_REGION_H_ - -#ifdef __GNUG__ -#pragma interface "region.h" -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxPoint; - -enum wxRegionContain { - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -class WXDLLEXPORT wxRegion : public wxGDIObject { -DECLARE_DYNAMIC_CLASS(wxRegion); - friend class WXDLLEXPORT wxRegionIterator; -public: - wxRegion(long x, long y, long w, long h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(); - ~wxRegion(); - - //# Copying - inline wxRegion(const wxRegion& r) - { Ref(r); } - inline wxRegion& operator = (const wxRegion& r) - { Ref(r); return (*this); } - - //# Modify region - // Clear current region - void Clear(); - - // Union rectangle or region with this. - inline bool Union(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_OR); } - inline bool Union(const wxRect& rect) { return Combine(rect, wxRGN_OR); } - inline bool Union(const wxRegion& region) { return Combine(region, wxRGN_OR); } - - // Intersect rectangle or region with this. - inline bool Intersect(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_AND); } - inline bool Intersect(const wxRect& rect) { return Combine(rect, wxRGN_AND); } - inline bool Intersect(const wxRegion& region) { return Combine(region, wxRGN_AND); } - - // Subtract rectangle or region from this: - // Combines the parts of 'this' that are not part of the second region. - inline bool Subtract(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_DIFF); } - inline bool Subtract(const wxRect& rect) { return Combine(rect, wxRGN_DIFF); } - inline bool Subtract(const wxRegion& region) { return Combine(region, wxRGN_DIFF); } - - // XOR: the union of two combined regions except for any overlapping areas. - inline bool Xor(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_XOR); } - inline bool Xor(const wxRect& rect) { return Combine(rect, wxRGN_XOR); } - inline bool Xor(const wxRegion& region) { return Combine(region, wxRGN_XOR); } - - //# Information on region - // Outer bounds of region - void GetBox(long& x, long& y, long&w, long &h) const; - wxRect GetBox() const ; - - // Is region empty? - bool Empty() const; - inline bool IsEmpty() const { return Empty(); } - bool Ok() const { return (m_refData != NULL) ; } - - //# Tests - // Does the region contain the point (x,y)? - wxRegionContain Contains(long x, long y) const; - // Does the region contain the point pt? - wxRegionContain Contains(const wxPoint& pt) const; - // Does the region contain the rectangle (x, y, w, h)? - wxRegionContain Contains(long x, long y, long w, long h) const; - // Does the region contain the rectangle rect? - wxRegionContain Contains(const wxRect& rect) const; - -// Internal - bool Combine(long x, long y, long width, long height, wxRegionOp op); - bool Combine(const wxRegion& region, wxRegionOp op); - bool Combine(const wxRect& rect, wxRegionOp op); - - // Get the internal Region handle - WXRegion GetXRegion() const; -}; - -class WXDLLEXPORT wxRegionIterator : public wxObject { -DECLARE_DYNAMIC_CLASS(wxRegionIterator); -public: - wxRegionIterator(); - wxRegionIterator(const wxRegion& region); - ~wxRegionIterator(); - - void Reset() { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool () const { return m_current < m_numRects; } - bool HaveRects() const { return m_current < m_numRects; } - - void operator ++ (); - void operator ++ (int); - - long GetX() const; - long GetY() const; - long GetW() const; - long GetWidth() const { return GetW(); } - long GetH() const; - long GetHeight() const { return GetH(); } - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); } - -private: - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; -}; - -#endif - // _WX_REGION_H_ diff --git a/include/wx/motif/scrolbar.h b/include/wx/motif/scrolbar.h deleted file mode 100644 index 2cda645071..0000000000 --- a/include/wx/motif/scrolbar.h +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrollbar.h -// Purpose: wxScrollBar class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "scrolbar.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxScrollBarNameStr; - -// Scrollbar item -class WXDLLEXPORT wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - -public: - inline wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - ~wxScrollBar(); - - inline wxScrollBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - int GetThumbPosition() const ; - inline int GetThumbSize() const { return m_pageSize; } - inline int GetPageSize() const { return m_viewSize; } - inline int GetRange() const { return m_objectSize; } - - virtual void SetThumbPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE); - - void Command(wxCommandEvent& event); - -// Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - -protected: - int m_pageSize; - int m_viewSize; - int m_objectSize; - -// DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SCROLBAR_H_ diff --git a/include/wx/motif/settings.h b/include/wx/motif/settings.h deleted file mode 100644 index 435e30b53b..0000000000 --- a/include/wx/motif/settings.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: wxSystemSettings class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_ -#define _WX_SETTINGS_H_ - -#ifdef __GNUG__ -#pragma interface "settings.h" -#endif - -#include "wx/setup.h" -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/colour.h" -#include "wx/font.h" - -#define wxSYS_WHITE_BRUSH 0 -#define wxSYS_LTGRAY_BRUSH 1 -#define wxSYS_GRAY_BRUSH 2 -#define wxSYS_DKGRAY_BRUSH 3 -#define wxSYS_BLACK_BRUSH 4 -#define wxSYS_NULL_BRUSH 5 -#define wxSYS_HOLLOW_BRUSH wxSYS_NULL_BRUSH -#define wxSYS_WHITE_PEN 6 -#define wxSYS_BLACK_PEN 7 -#define wxSYS_NULL_PEN 8 -#define wxSYS_OEM_FIXED_FONT 10 -#define wxSYS_ANSI_FIXED_FONT 11 -#define wxSYS_ANSI_VAR_FONT 12 -#define wxSYS_SYSTEM_FONT 13 -#define wxSYS_DEVICE_DEFAULT_FONT 14 -#define wxSYS_DEFAULT_PALETTE 15 -#define wxSYS_SYSTEM_FIXED_FONT 16 // Obsolete -#define wxSYS_DEFAULT_GUI_FONT 17 - -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT - -// Metrics -#define wxSYS_MOUSE_BUTTONS 1 -#define wxSYS_BORDER_X 2 -#define wxSYS_BORDER_Y 3 -#define wxSYS_CURSOR_X 4 -#define wxSYS_CURSOR_Y 5 -#define wxSYS_DCLICK_X 6 -#define wxSYS_DCLICK_Y 7 -#define wxSYS_DRAG_X 8 -#define wxSYS_DRAG_Y 9 -#define wxSYS_EDGE_X 10 -#define wxSYS_EDGE_Y 11 -#define wxSYS_HSCROLL_ARROW_X 12 -#define wxSYS_HSCROLL_ARROW_Y 13 -#define wxSYS_HTHUMB_X 14 -#define wxSYS_ICON_X 15 -#define wxSYS_ICON_Y 16 -#define wxSYS_ICONSPACING_X 17 -#define wxSYS_ICONSPACING_Y 18 -#define wxSYS_WINDOWMIN_X 19 -#define wxSYS_WINDOWMIN_Y 20 -#define wxSYS_SCREEN_X 21 -#define wxSYS_SCREEN_Y 22 -#define wxSYS_FRAMESIZE_X 23 -#define wxSYS_FRAMESIZE_Y 24 -#define wxSYS_SMALLICON_X 25 -#define wxSYS_SMALLICON_Y 26 -#define wxSYS_HSCROLL_Y 27 -#define wxSYS_VSCROLL_X 28 -#define wxSYS_VSCROLL_ARROW_X 29 -#define wxSYS_VSCROLL_ARROW_Y 30 -#define wxSYS_VTHUMB_Y 31 -#define wxSYS_CAPTION_Y 32 -#define wxSYS_MENU_Y 33 -#define wxSYS_NETWORK_PRESENT 34 -#define wxSYS_PENWINDOWS_PRESENT 35 -#define wxSYS_SHOW_SOUNDS 36 -#define wxSYS_SWAP_BUTTONS 37 - -class WXDLLEXPORT wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings() {} - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // _WX_SETTINGS_H_ diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h deleted file mode 100644 index 8fe235aafe..0000000000 --- a/include/wx/motif/setup0.h +++ /dev/null @@ -1,632 +0,0 @@ -/* ./include/wx/motif/setup.h. Generated automatically by configure. */ -/* setup.h - - Do not edit this file. It is autogenerated by configure. - - Leave the following blank line there!! Autoheader needs it. */ - - -/* ------------------------------------------------------------------------ */ -/* Features as requested by configure */ -/* ------------------------------------------------------------------------ */ - -#ifndef __GTKSETUPH__ -#define __GTKSETUPH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -/* define the system to compile */ -#define __UNIX__ 1 -#define __LINUX__ 1 -/* #undef __SGI__ */ -/* #undef __HPUX__ */ -/* #undef __SYSV__ */ -/* #undef __SVR4__ */ -/* #undef __AIX__ */ -/* #undef __SUN__ */ -/* #undef __SOLARIS__ */ -/* #undef __SUNOS__ */ -/* #undef __ALPHA__ */ -/* #undef __OSF__ */ -/* #undef __BSD__ */ -/* #undef __FREEBSD__ */ -/* #undef __VMS__ */ -/* #undef __ULTRIX__ */ -/* #undef __DATA_GENERAL__ */ - -/* ------------------------------------------------------------------------ */ -/* compiler options */ -/* ------------------------------------------------------------------------ */ - -/* - * Supports bool type - */ -#define HAVE_BOOL 1 - -/* ------------------------------------------------------------------------ */ -/* library options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use zlib - */ -#define wxUSE_ZLIB 1 -/* - * Use libpng - */ -#define wxUSE_LIBPNG 1 -/* - * Use libjpeg - */ -#define wxUSE_LIBJPEG 0 -/* - * Use iODBC - */ -#define wxUSE_ODBC 0 -/* - * Use Threads - */ -#define wxUSE_THREADS 0 -/* - * Have glibc2 - */ -#define wxHAVE_GLIBC2 1 -/* - * Use libXpm - */ -#define wxHAVE_LIB_XPM 0 - -#define wxUSE_XPM 1 - -/* ------------------------------------------------------------------------ */ -/* GUI control options (always enabled in wxGTK) */ -/* ------------------------------------------------------------------------ */ -/* - * Use gauge item - */ -#define wxUSE_GAUGE 1 -/* - * Use combobox item - */ -#define wxUSE_COMBOBOX 1 -/* - * Use scrollbar item - */ -#define wxUSE_SCROLLBAR 1 -/* - * Use scrollbar item - */ -#define wxUSE_RADIOBUTTON 1 -/* - * Use toolbar item - */ -#define wxUSE_TOOLBAR 1 - -/* ------------------------------------------------------------------------ */ -/* non-GUI options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use time and date classes - */ -#define wxUSE_TIMEDATE 1 -/* - * Use config system - */ -#define wxUSE_CONFIG 1 -/* - * Use intl system - */ -#define wxUSE_INTL 1 -/* - * Use streams - */ -#define wxUSE_STREAMS 1 -/* - * Use class serialization - */ -#define wxUSE_SERIAL 0 -/* - * Use sockets - */ -#define wxUSE_SOCKETS 1 -/* - * Use standard C++ streams if 1. If 0, use wxWin - * streams implementation. - */ -#define wxUSE_STD_IOSTREAM 1 -/* - * Use constraints mechanism - */ -#define wxUSE_CONSTRAINTS 1 - -/* ------------------------------------------------------------------------ */ -/* PS options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use font metric files in GetTextExtent for wxPostScriptDC - * Use consistent PostScript fonts for AFM and printing (!) - */ -#define wxUSE_AFM_FOR_POSTSCRIPT 1 -#define WX_NORMALIZED_PS_FONTS 1 -/* - * Use PostScript device context - */ -#define wxUSE_POSTSCRIPT 1 - -/* ------------------------------------------------------------------------ */ -/* wxString options */ -/* ------------------------------------------------------------------------ */ - -/* - * Compile wxString with wide character (Unicode) support? - */ -#define wxUSE_UNICODE 1 - -/* - * Work around a bug in GNU libc 5.x wcstombs() implementation. - * - * Note that you must link your programs with libc.a if you enable this and you - * have libc 5 (you should enable this for libc6 where wcsrtombs() is - * thread-safe version of wcstombs()). - */ -#define wxUSE_WCSRTOMBS 0 - -/* - * On some platforms overloading on size_t/int doesn't work, yet we'd like - * to define both size_t and int version of wxString::operator[] because it - * should really be size_t, but a lot of old, broken code uses int indices. - */ -#define wxUSE_SIZE_T_STRING_OPERATOR 1 - -/* ------------------------------------------------------------------------ */ -/* misc options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use Interprocess communication - */ -#define wxUSE_IPC 1 -/* - * Use wxGetResource & wxWriteResource (change .Xdefaults) - */ -#define wxUSE_RESOURCES 1 -/* - * Use clipboard - */ -#define wxUSE_CLIPBOARD 1 -/* - * Use tooltips - */ -#define wxUSE_TOOLTIPS 0 -/* - * Use dnd - */ -#define wxUSE_DRAG_AND_DROP 0 -/* - * Use wxLibrary class - */ -#define wxUSE_DYNLIB_CLASS 0 - -/* ------------------------------------------------------------------------ */ -/* architecture options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use the mdi architecture - */ -#define wxUSE_MDI_ARCHITECTURE 1 -/* - * Use the document/view architecture - */ -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 -/* - * Use the print/preview architecture - */ -#define wxUSE_PRINTING_ARCHITECTURE 1 - -/* ------------------------------------------------------------------------ */ -/* Prolog and wxWindows' resource system options */ -/* ------------------------------------------------------------------------ */ - -/* - * Use Prolog IO - */ -#define wxUSE_PROLOGIO 1 -/* - * Use Remote Procedure Call (Needs wxUSE_IPC and wxUSE_PROLOGIO) - */ -#define wxUSE_RPC 0 -/* - * Use wxWindows resource loading (.wxr-files) (Needs wxUSE_PROLOGIO 1) - */ -#define wxUSE_WX_RESOURCES 1 - -/* ------------------------------------------------------------------------ */ -/* the rest */ -/* ------------------------------------------------------------------------ */ - -/* - * Use wxWindows help facility (needs wxUSE_IPC 1) - */ -#define wxUSE_HELP 1 -/* - * Use iostream.h rather than iostream - */ -#define wxUSE_IOSTREAMH 1 -/* - * Use Apple Ieee-double converter - */ -#define wxUSE_APPLE_IEEE 1 -/* Compatibility with 1.66 API. - Level 0: no backward compatibility, all new features - Level 1: wxDC, OnSize (etc.) compatibility, but - some new features such as event tables */ -#define WXWIN_COMPATIBILITY 0 -/* - * Enables debugging: memory tracing, assert, etc., contains debug level - */ -#define WXDEBUG 1 -/* - * Enables debugging version of wxObject::new and wxObject::delete (IF WXDEBUG) - * WARNING: this code may not work with all architectures, especially - * if alignment is an issue. - */ -#define wxUSE_MEMORY_TRACING 0 -/* - * Enable debugging version of global memory operators new and delete - * Disable it, If this causes problems (e.g. link errors) - */ -#define wxUSE_DEBUG_NEW_ALWAYS 1 -/* - * In debug mode, causes new to be defined to - * be WXDEBUG_NEW (see object.h). If this causes - * problems (e.g. link errors), set this to 0. - */ -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 -/* - * Matthews garbage collection (used for MrEd?) - */ -#define WXGARBAGE_COLLECTION_ON 0 -/* - * Use splines - */ -#define wxUSE_SPLINES 1 -/* - * wxUSE_DYNAMIC_CLASSES is TRUE for the Xt port - */ -#define wxUSE_DYNAMIC_CLASSES 1 -/* - * Disable this if your compiler can't cope - * with omission of prototype parameters. - */ -#define REMOVE_UNUSED_ARG 1 -/* - * The const keyword is being introduced more in wxWindows. - * You can use this setting to maintain backward compatibility. - * If 0: will use const wherever possible. - * If 1: will use const only where necessary - * for precompiled headers to work. - * If 2: will be totally backward compatible, but precompiled - * headers may not work and program size will be larger. - */ -#define CONST_COMPATIBILITY 0 - -/* ------------------------------------------------------------------------ */ -/* System-specific stuff */ -/* ------------------------------------------------------------------------ */ - -/* acconfig.h - This file is in the public domain. - - Descriptive text for the C preprocessor macros that - the distributed Autoconf macros can define. - No software package will use all of them; autoheader copies the ones - your configure.in uses into your configuration header file templates. - - The entries are in sort -df order: alphabetical, case insensitive, - ignoring punctuation (such as underscores). Although this order - can split up related entries, it makes it easier to check whether - a given entry is in the file. */ - -/* Define if on AIX 3. - System headers sometimes define this. - We just want to avoid a redefinition error message. */ -#ifndef _ALL_SOURCE -/* #undef _ALL_SOURCE */ -#endif - -/* Define if using alloca.c. */ -/* #undef C_ALLOCA */ - -/* Define if type char is unsigned and you are not using gcc. */ -#ifndef __CHAR_UNSIGNED__ -/* #undef __CHAR_UNSIGNED__ */ -#endif - -/* Define if the closedir function returns void instead of int. */ -/* #undef CLOSEDIR_VOID */ - -/* Define to empty if the keyword does not work. */ -/* #undef const */ - -/* Define to one of _getb67, GETB67, getb67 for Cray-2 and Cray-YMP systems. - This function is required for alloca.c support on those systems. */ -/* #undef CRAY_STACKSEG_END */ - -/* Define for DGUX with . */ -/* #undef DGUX */ - -/* Define if you have . */ -/* #undef DIRENT */ - -/* Define to the type of elements in the array set by `getgroups'. - Usually this is either `int' or `gid_t'. */ -#define GETGROUPS_T gid_t - -/* The type of 3rd argument to getsockname() - usually size_t or int */ -#define SOCKLEN_T size_t - -/* Define if the `getloadavg' function needs to be run setuid or setgid. */ -/* #undef GETLOADAVG_PRIVILEGED */ - -/* Define if the `getpgrp' function takes no argument. */ -/* #undef GETPGRP_VOID */ - -/* Define to `int' if doesn't define. */ -/* #undef gid_t */ - -/* Define if you have alloca, as a function or macro. */ -/* #undef HAVE_ALLOCA */ - -/* Define if you have and it should be used (not on Ultrix). */ -/* #undef HAVE_ALLOCA_H */ - -/* Define if you don't have vprintf but do have _doprnt. */ -/* #undef HAVE_DOPRNT */ - -/* Define if you have sched.h */ -#define HAVE_SCHED_H 0 - -/* Define if you have strings.h */ -#define HAVE_STRINGS_H 1 - -/* Define if you have vprintf() */ -#define HAVE_VPRINTF 1 - -/* Define if you have dlopen() */ -/* #undef HAVE_DLOPEN */ - -/* Define if you have shl_load() */ -/* #undef HAVE_SHL_LOAD */ - -/* Define if you have vsnprintf() */ -#define HAVE_VSNPRINTF 1 - -/* Define if you have usleep() */ -#define HAVE_USLEEP 1 - -/* Define if you have nanosleep() */ -#define HAVE_NANOSLEEP 0 - -/* Define if you have vfork() */ -#define HAVE_VFORK 1 - -/* Define if you have uname() */ -#define HAVE_UNAME 1 - -/* Define if you have gethostname() */ -/* #undef HAVE_GETHOSTNAME */ - -/* Define if you have sched_yield */ -#define HAVE_SCHED_YIELD 1 - -/* Define if you have pthread_cancel */ -#define HAVE_PTHREAD_CANCEL 1 - -/* Define if you have all functions to set thread priority */ -#define HAVE_THREAD_PRIORITY_FUNCTIONS 1 - -/* Define if your system has its own `getloadavg' function. */ -/* #undef HAVE_GETLOADAVG */ - -/* Define if you have the getmntent function. */ -/* #undef HAVE_GETMNTENT */ - -/* Define if the `long double' type works. */ -#define HAVE_LONG_DOUBLE 1 - -/* Define if you support file names longer than 14 characters. */ -#define HAVE_LONG_FILE_NAMES 1 - -/* Define if you have a working `mmap' system call. */ -/* #undef HAVE_MMAP */ - -/* Define if system calls automatically restart after interruption - by a signal. */ -/* #undef HAVE_RESTARTABLE_SYSCALLS */ - -/* Define if your struct stat has st_blksize. */ -#define HAVE_ST_BLKSIZE 1 - -/* Define if your struct stat has st_blocks. */ -#define HAVE_ST_BLOCKS 1 - -/* Define if you have the strcoll function and it is properly defined. */ -/* #undef HAVE_STRCOLL */ - -/* Define if your struct stat has st_rdev. */ -#define HAVE_ST_RDEV 1 - -/* Define if you have the strftime function. */ -/* #undef HAVE_STRFTIME */ - -/* Define if you have that is POSIX.1 compatible. */ -#define HAVE_SYS_WAIT_H 1 - -/* Define if your struct tm has tm_zone. */ -#define HAVE_TM_ZONE 1 - -/* Define if you don't have tm_zone but do have the external array - tzname. */ -/* #undef HAVE_TZNAME */ - -/* Define if you have . */ -#define HAVE_UNISTD_H 1 - -/* Define if you have . */ -#define HAVE_FNMATCH_H 1 - -/* Define if utime(file, NULL) sets file's timestamp to the present. */ -/* #undef HAVE_UTIME_NULL */ - -/* Define if you have . */ -/* #undef HAVE_VFORK_H */ - -/* Define if you have the vprintf function. */ -#define HAVE_VPRINTF 1 - -/* Define if you have the wait3 system call. */ -/* #undef HAVE_WAIT3 */ - -/* Define as __inline if that's what the C compiler calls it. */ -#ifndef __cplusplus -/* #undef inline */ -#endif - -/* Define if major, minor, and makedev are declared in . */ -/* #undef MAJOR_IN_MKDEV */ - -/* Define if major, minor, and makedev are declared in . */ -/* #undef MAJOR_IN_SYSMACROS */ - -/* Define if on MINIX. */ -/* #undef _MINIX */ - -/* Define to `int' if doesn't define. */ -/* #undef mode_t */ - -/* Define if you don't have , but have . */ -/* #undef NDIR */ - -/* Define if you have , and doesn't declare the - mem* functions. */ -/* #undef NEED_MEMORY_H */ - -/* Define if your struct nlist has an n_un member. */ -/* #undef NLIST_NAME_UNION */ - -/* Define if you have . */ -/* #undef NLIST_STRUCT */ - -/* Define if your C compiler doesn't accept -c and -o together. */ -/* #undef NO_MINUS_C_MINUS_O */ - -/* Define to `long' if doesn't define. */ -/* #undef off_t */ - -/* Define to `int' if doesn't define. */ -/* #undef pid_t */ - -/* Define if the system does not provide POSIX.1 features except - with this defined. */ -/* #undef _POSIX_1_SOURCE */ - -/* Define if you need to in order for stat and other things to work. */ -/* #undef _POSIX_SOURCE */ - -/* Define as the return type of signal handlers (int or void). */ -#define RETSIGTYPE void - -/* Define if the setvbuf function takes the buffering type as its second - argument and the buffer pointer as the third, as on System V - before release 3. */ -/* #undef SETVBUF_REVERSED */ - -/* Define SIZESOF for some Objects */ -#define SIZEOF_INT 4 -#define SIZEOF_INT_P 4 -#define SIZEOF_LONG 4 -#define SIZEOF_LONG_LONG 8 - -/* Define to `unsigned' if doesn't define. */ -/* #undef size_t */ - -/* If using the C implementation of alloca, define if you know the - direction of stack growth for your system; otherwise it will be - automatically deduced at run-time. - STACK_DIRECTION > 0 => grows toward higher addresses - STACK_DIRECTION < 0 => grows toward lower addresses - STACK_DIRECTION = 0 => direction of growth unknown - */ -/* #undef STACK_DIRECTION */ - -/* Define if the `S_IS*' macros in do not work properly. */ -/* #undef STAT_MACROS_BROKEN */ - -/* Define if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define on System V Release 4. */ -/* #undef SVR4 */ - -/* Define on BSD */ -/* #undef BSD */ - -/* Define on System V */ -/* #undef SYSV */ - -/* Define if you don't have , but have . */ -/* #undef SYSDIR */ - -/* Define if you don't have , but have . */ -/* #undef SYSNDIR */ - -/* Define if `sys_siglist' is declared by . */ -/* #undef SYS_SIGLIST_DECLARED */ - -/* Define if you can safely include both and . */ -#define TIME_WITH_SYS_TIME 1 - -/* Define if your declares struct tm. */ -/* #undef TM_IN_SYS_TIME */ - -/* Define to `int' if doesn't define. */ -/* #undef uid_t */ - -/* Define for Encore UMAX. */ -/* #undef UMAX */ - -/* Define for Encore UMAX 4.3 that has - instead of . */ -/* #undef UMAX4_3 */ - -/* Define if you do not have , index, bzero, etc.. */ -/* #undef USG */ - -/* Define if the system is System V Release 4 */ -/* #undef SVR4 */ - -/* Define vfork as fork if vfork does not work. */ -/* #undef vfork */ - -/* Define if the closedir function returns void instead of int. */ -/* #undef VOID_CLOSEDIR */ - -/* Define if your processor stores words with the most significant - byte first (like Motorola and SPARC, unlike Intel and VAX). */ -/* #undef WORDS_BIGENDIAN */ - -/* Define if lex declares yytext as a char * by default, not a char[]. */ -#define YYTEXT_POINTER 1 - -#endif /* __GTKSETUPH__ */ - - -/* Leave that blank line there!! Autoheader needs it. - If you're adding to this file, keep in mind: - The entries are in sort -df order: alphabetical, case insensitive, - ignoring punctuation (such as underscores). */ diff --git a/include/wx/motif/slider.h b/include/wx/motif/slider.h deleted file mode 100644 index fd9e5b3c28..0000000000 --- a/include/wx/motif/slider.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: wxSlider class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_ -#define _WX_SLIDER_H_ - -#ifdef __GNUG__ -#pragma interface "slider.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxSliderNameStr; - -// Slider -class WXDLLEXPORT wxSlider: public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxSlider) - -public: - wxSlider(); - - wxSlider(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - ~wxSlider(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const ; - virtual void SetValue(int); - - void GetSize(int *x, int *y) const ; - - void SetRange(int minValue, int maxValue); - - inline int GetMin() const { return m_rangeMin; } - inline int GetMax() const { return m_rangeMax; } - - // For trackbars only - void SetTickFreq(int n, int pos); - inline int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const ; - void ClearSel() ; - void ClearTicks() ; - void SetLineSize(int lineSize); - int GetLineSize() const ; - int GetSelEnd() const ; - int GetSelStart() const ; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len) ; - int GetThumbLength() const ; - void SetTick(int tickPos) ; - - void Command(wxCommandEvent& event); - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - -protected: - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SLIDER_H_ diff --git a/include/wx/motif/spinbutt.h b/include/wx/motif/spinbutt.h deleted file mode 100644 index 0f3b2dafd7..0000000000 --- a/include/wx/motif/spinbutt.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.h -// Purpose: wxSpinButton class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_ -#define _WX_SPINBUTT_H_ - -#ifdef __GNUG__ -#pragma interface "spinbutt.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" - -/* - The wxSpinButton is like a small scrollbar than is often placed next - to a text control. - - wxSP_HORIZONTAL: horizontal spin button - wxSP_VERTICAL: vertical spin button (the default) - wxSP_ARROW_KEYS: arrow keys increment/decrement value - wxSP_WRAP: value wraps at either end - */ - -class WXDLLEXPORT wxSpinButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - public: - /* - * Public interface - */ - - wxSpinButton(); - - inline wxSpinButton(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton") - { - Create(parent, id, pos, size, style, name); - } - ~wxSpinButton(); - - bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - int GetValue() const ; - void SetValue(int val) ; - void SetRange(int minVal, int maxVal) ; - inline int GetMin() const { return m_min; } - inline int GetMax() const { return m_max; } - - // Operations - //////////////////////////////////////////////////////////////////////////// - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -// Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - -protected: - int m_min; - int m_max; -}; - -class WXDLLEXPORT wxSpinEvent: public wxScrollEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - - public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// Spin events - -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } - -#define EVT_SPIN(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, - -#endif - // _WX_SPINBUTT_H_ diff --git a/include/wx/motif/statbmp.h b/include/wx/motif/statbmp.h deleted file mode 100644 index 24688066d9..0000000000 --- a/include/wx/motif/statbmp.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: wxStaticBitmap class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_ -#define _WX_STATBMP_H_ - -#ifdef __GNUG__ -#pragma interface "statbmp.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBitmapNameStr; - -class WXDLLEXPORT wxStaticBitmap : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - -public: - wxStaticBitmap() { } - ~wxStaticBitmap(); - - wxStaticBitmap(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual void SetBitmap(const wxBitmap& bitmap); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; } - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - -protected: - wxBitmap m_messageBitmap; -}; - -#endif - // _WX_STATBMP_H_ diff --git a/include/wx/motif/statbox.h b/include/wx/motif/statbox.h deleted file mode 100644 index 48059b5318..0000000000 --- a/include/wx/motif/statbox.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.h -// Purpose: wxStaticBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_ -#define _WX_STATBOX_H_ - -#ifdef __GNUG__ -#pragma interface "statbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBoxNameStr; - -// Group box -class WXDLLEXPORT wxStaticBox: public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxStaticBox) - -public: - wxStaticBox(); - wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - ~wxStaticBox(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetLabel(const wxString& label); - wxString GetLabel() const; - - // Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - WXWidget GetTopWidget() const { return m_formWidget; } - WXWidget GetLabelWidget() const { return m_labelWidget; } - -protected: - // Motif-specific - WXWidget m_formWidget; - WXWidget m_labelWidget; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_STATBOX_H_ diff --git a/include/wx/motif/stattext.h b/include/wx/motif/stattext.h deleted file mode 100644 index c4205fa426..0000000000 --- a/include/wx/motif/stattext.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: wxStaticText class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -#ifdef __GNUG__ -#pragma interface "stattext.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticTextNameStr; - -class WXDLLEXPORT wxStaticText: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticText) - public: - inline wxStaticText() { } - - inline wxStaticText(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // operations - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - -// Implementation - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/include/wx/motif/tabctrl.h b/include/wx/motif/tabctrl.h deleted file mode 100644 index c7ffd57bf7..0000000000 --- a/include/wx/motif/tabctrl.h +++ /dev/null @@ -1,138 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.h -// Purpose: wxTabCtrl class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TABCTRL_H_ -#define _WX_TABCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "tabctrl.h" -#endif - -class wxImageList; - -/* - * Flags returned by HitTest - */ - -#define wxTAB_HITTEST_NOWHERE 1 -#define wxTAB_HITTEST_ONICON 2 -#define wxTAB_HITTEST_ONLABEL 4 -#define wxTAB_HITTEST_ONITEM 6 - -class WXDLLEXPORT wxTabCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxTabCtrl) - public: - /* - * Public interface - */ - - wxTabCtrl(); - - inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl") - { - Create(parent, id, pos, size, style, name); - } - ~wxTabCtrl(); - -// Accessors - - // Get the selection - int GetSelection() const; - - // Get the tab with the current keyboard focus - int GetCurFocus() const; - - // Get the associated image list - wxImageList* GetImageList() const; - - // Get the number of items - int GetItemCount() const; - - // Get the rect corresponding to the tab - bool GetItemRect(int item, wxRect& rect) const; - - // Get the number of rows - int GetRowCount() const; - - // Get the item text - wxString GetItemText(int item) const ; - - // Get the item image - int GetItemImage(int item) const; - - // Get the item data - void* GetItemData(int item) const; - - // Set the selection - int SetSelection(int item); - - // Set the image list - void SetImageList(wxImageList* imageList); - - // Set the text for an item - bool SetItemText(int item, const wxString& text); - - // Set the image for an item - bool SetItemImage(int item, int image); - - // Set the data for an item - bool SetItemData(int item, void* data); - - // Set the size for a fixed-width tab control - void SetItemSize(const wxSize& size); - - // Set the padding between tabs - void SetPadding(const wxSize& padding); - -// Operations - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl"); - - // Delete all items - bool DeleteAllItems(); - - // Delete an item - bool DeleteItem(int item); - - // Hit test - int HitTest(const wxPoint& pt, long& flags); - - // Insert an item - bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL); - - void Command(wxCommandEvent& event); - -protected: - wxImageList* m_imageList; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxTabEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxTabEvent) - - public: - wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&); - -#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, -#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, - -#endif - // _WX_TABCTRL_H_ diff --git a/include/wx/motif/taskbar.h b/include/wx/motif/taskbar.h deleted file mode 100644 index d9453f7033..0000000000 --- a/include/wx/motif/taskbar.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.h -// Purpose: Defines wxTaskBarIcon class for manipulating icons on the -// task bar. Optional. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TASKBAR_H_ -#define _WX_TASKBAR_H_ - -#ifdef __GNUG__ -#pragma interface "taskbar.h" -#endif - -#include -#include - -class wxTaskBarIcon: public wxObject -{ -public: - wxTaskBarIcon(); - virtual ~wxTaskBarIcon(); - -// Accessors - -// Operations - bool SetIcon(const wxIcon& icon, const wxString& tooltip = ""); - bool RemoveIcon(); - -// Overridables - virtual void OnMouseMove(); - virtual void OnLButtonDown(); - virtual void OnLButtonUp(); - virtual void OnRButtonDown(); - virtual void OnRButtonUp(); - virtual void OnLButtonDClick(); - virtual void OnRButtonDClick(); - -// Data members -protected: -}; - -#endif - // _WX_TASKBAR_H_ diff --git a/include/wx/motif/textctrl.h b/include/wx/motif/textctrl.h deleted file mode 100644 index 2466ff7376..0000000000 --- a/include/wx/motif/textctrl.h +++ /dev/null @@ -1,179 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: wxTextCtrl class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -#ifdef __GNUG__ - #pragma interface "textctrl.h" -#endif - -#include "wx/control.h" -#include "wx/ioswrap.h" - -// TODO Some platforms/compilers don't like inheritance from streambuf. -#if (defined(__BORLANDC__) && !defined(__WIN32__)) || defined(__MWERKS__) - #define NO_TEXT_WINDOW_STREAM -#endif - -WXDLLEXPORT_DATA(extern const char*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Single-line text item -class WXDLLEXPORT wxTextCtrl: public wxControl -#ifndef NO_TEXT_WINDOW_STREAM - , public streambuf -#endif -{ - DECLARE_DYNAMIC_CLASS(wxTextCtrl) - -public: - // creation - // -------- - wxTextCtrl(); - wxTextCtrl(wxWindow *parent, - wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) -#ifndef NO_TEXT_WINDOW_STREAM - : streambuf() -#endif - { - Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // accessors - // --------- - virtual wxString GetValue() const; - virtual void SetValue(const wxString& value); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - // operations - // ---------- - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const; - virtual long GetLastPosition() const; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - // If the return values from and to are the same, there is no - // selection. - virtual void GetSelection(long* from, long* to) const; - virtual bool IsEditable() const ; - - // streambuf implementation -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); -#endif - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); - - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file); - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - virtual void DiscardEdits(); - virtual bool IsModified() const; - - virtual long XYToPosition(long x, long y) const; - virtual void PositionToXY(long pos, long *x, long *y) const; - virtual void ShowPosition(long pos); - virtual void Clear(); - - // callbacks - // --------- - void OnDropFiles(wxDropFilesEvent& event); - void OnChar(wxKeyEvent& event); - // void OnEraseBackground(wxEraseEvent& event); - - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - - virtual void Command(wxCommandEvent& event); - - // implementation from here to the end - // ----------------------------------- - virtual void ChangeFont(bool keepOriginalSize = TRUE); - virtual void ChangeBackgroundColour(); - virtual void ChangeForegroundColour(); - void SetModified(bool mod) { m_modified = mod; } - virtual WXWidget GetTopWidget() const; - - // send the CHAR and TEXT_UPDATED events - void DoSendEvents(void /* XmTextVerifyCallbackStruct */ *cbs, - long keycode); - -protected: - wxString m_fileName; - -public: - // Motif-specific - void* m_tempCallbackStruct; - bool m_modified; - wxString m_value; // Required for password text controls - - // Did we call wxTextCtrl::OnChar? If so, generate a command event. - bool m_processedDefault; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TEXTCTRL_H_ diff --git a/include/wx/motif/timer.h b/include/wx/motif/timer.h deleted file mode 100644 index 7065c19ca4..0000000000 --- a/include/wx/motif/timer.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: wxTimer class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMER_H_ -#define _WX_TIMER_H_ - -#ifdef __GNUG__ -#pragma interface "timer.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxTimer: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxTimer) - - friend void wxTimerCallback (wxTimer * timer); - - public: - wxTimer(); - ~wxTimer(); - virtual bool Start(int milliseconds = -1,bool one_shot = FALSE); // Start timer - virtual void Stop(); // Stop timer - virtual void Notify() = 0; // Override this member - inline int Interval() { return m_milli ; }; // Returns the current interval time (0 if stop) - -protected: - bool m_oneShot ; - int m_milli ; - int m_lastMilli ; - long m_id; - -}; - -/* Note: these are implemented in common/timercmn.cpp, so need to implement them separately. - * But you may need to modify timercmn.cpp. - */ - -// Timer functions (milliseconds) -void WXDLLEXPORT wxStartTimer(); -// Gets time since last wxStartTimer or wxGetElapsedTime -long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); - -// EXPERIMENTAL: comment this out if it doesn't compile. -bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved); - -// Get number of seconds since 00:00:00 GMT, Jan 1st 1970. -long WXDLLEXPORT wxGetCurrentTime(); - -#endif - // _WX_TIMER_H_ diff --git a/include/wx/motif/toolbar.h b/include/wx/motif/toolbar.h deleted file mode 100644 index 5b26b9357a..0000000000 --- a/include/wx/motif/toolbar.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.h -// Purpose: wxToolBar class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLBAR_H_ -#define _WX_TOOLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "toolbar.h" -#endif - -#include "wx/tbarbase.h" - -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxToolBar: public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxToolBar) - public: - /* - * Public interface - */ - - wxToolBar(); - - inline wxToolBar(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr): - m_widgets(wxKEY_INTEGER) - - { - Create(parent, id, pos, size, style, name); - } - ~wxToolBar(); - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - - // Set default bitmap size - void SetToolBitmapSize(const wxSize& size); - void EnableTool(int toolIndex, bool enable); // additional drawing on enabling - void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - void ClearTools(); - - // The button size is bigger than the bitmap size - wxSize GetToolSize() const; - - wxSize GetMaxSize() const; - - // Add all the buttons - virtual bool CreateTools(); - virtual void LayoutTools() {} - - // The post-tool-addition call. TODO: do here whatever's - // necessary for completing the toolbar construction. - bool Realize() { return CreateTools(); }; - -// Implementation - void DestroyPixmaps(); - int FindIndexForWidget(WXWidget w); - WXWidget FindWidgetForIndex(int index); - - WXWidget GetTopWidget() const; - WXWidget GetClientWidget() const; - WXWidget GetMainWidget() const; - -protected: - // List of widgets in the toolbar, indexed by tool index - wxList m_widgets; - - // List of pixmaps to destroy when tools are recreated or - // or toolbar is destroyed. - wxList m_pixmaps; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TOOLBAR_H_ diff --git a/include/wx/motif/wave.h b/include/wx/motif/wave.h deleted file mode 100644 index 272b152aa3..0000000000 --- a/include/wx/motif/wave.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class (loads and plays short Windows .wav files). -// Optional on non-Windows platforms. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WAVE_H_ -#define _WX_WAVE_H_ - -#ifdef __GNUG__ -#pragma interface "wave.h" -#endif - -#include "wx/object.h" - -class wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - ~wxWave(); - -public: - bool Create(const wxString& fileName, bool isResource = FALSE); - bool IsOk() const { return (m_waveData ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE) const; - -protected: - bool Free(); - -private: - char* m_waveData; - int m_waveLength; - bool m_isResource; -}; - -#endif - // _WX_WAVE_H_ diff --git a/include/wx/motif/window.h b/include/wx/motif/window.h deleted file mode 100644 index e174a4538e..0000000000 --- a/include/wx/motif/window.h +++ /dev/null @@ -1,353 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindow class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -#ifdef __GNUG__ - #pragma interface "window.h" -#endif - -// ---------------------------------------------------------------------------- -// A list of rectangles type used by wxWindow -// ---------------------------------------------------------------------------- - -WX_DECLARE_LIST(wxRect, wxRectList); - -// ---------------------------------------------------------------------------- -// wxWindow class for Motif - see also wxWindowBase -// ---------------------------------------------------------------------------- - -class wxWindow : public wxWindowBase -{ -DECLARE_DYNAMIC_CLASS(wxWindow) - -friend class WXDLLEXPORT wxDC; -friend class WXDLLEXPORT wxWindowDC; - -public: - wxWindow() { Init(); } - - wxWindow(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Init(); - Create(parent, id, pos, size, style, name); - } - - virtual ~wxWindow(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // implement base class pure virtuals - virtual void SetTitle( const wxString& title); - virtual wxString GetTitle() const; - - virtual void Raise(); - virtual void Lower(); - - virtual bool Show( bool show = TRUE ); - virtual bool Enable( bool enable = TRUE ); - - virtual void SetFocus(); - - virtual void WarpPointer(int x, int y); - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - virtual void Refresh( bool eraseBackground = TRUE, - const wxRect *rect = (const wxRect *) NULL ); - virtual void Clear(); - - virtual bool SetBackgroundColour( const wxColour &colour ); - virtual bool SetForegroundColour( const wxColour &colour ); - - virtual bool SetCursor( const wxCursor &cursor ); - virtual bool SetFont( const wxFont &font ); - - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - virtual void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = (int *) NULL, - int *externalLeading = (int *) NULL, - const wxFont *theFont = (const wxFont *) NULL) - const; - - virtual bool PopupMenu( wxMenu *menu, int x, int y ); - - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE ); - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = (wxRect *) NULL ); - - virtual void SetSizeHints(int minW, int minH, - int maxW, int maxH, - int incW, int incH); -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ); -#endif // wxUSE_DRAG_AND_DROP - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - - // Get the unique identifier of a window - virtual WXWidget GetHandle() const { return GetMainWidget(); } - - // implementation from now on - // -------------------------- - - // accessors - // --------- - - // Get main widget for this window, e.g. a text widget - virtual WXWidget GetMainWidget() const; - // Get the widget that corresponds to the label (for font setting, label setting etc.) - virtual WXWidget GetLabelWidget() const; - // Get the client widget for this window (something we can create other - // windows on) - virtual WXWidget GetClientWidget() const; - // Get the top widget for this window, e.g. the scrolled widget parent of a - // multi-line text widget. Top means, top in the window hierarchy that - // implements this window. - virtual WXWidget GetTopWidget() const; - - // Get the underlying X window and display - WXWindow GetXWindow() const; - WXDisplay *GetXDisplay() const; - - // called from Motif callbacks - and should only be called from there - - void SetButton1(bool pressed) { m_button1Pressed = pressed; } - void SetButton2(bool pressed) { m_button2Pressed = pressed; } - void SetButton3(bool pressed) { m_button3Pressed = pressed; } - - void SetLastClick(int button, long timestamp) - { m_lastButton = button; m_lastTS = timestamp; } - - int GetLastClickedButton() const { return m_lastButton; } - long GetLastClickTime() const { return m_lastTS; } - - // Gives window a chance to do something in response to a size message, e.g. - // arrange status bar, toolbar etc. - virtual bool PreResize(); - - // Generates a paint event - virtual void DoPaint(); - - // update rectangle/region manipulation - // (for wxWindowDC and Motif callbacks only) - // ----------------------------------------- - - // read/write access to the update rect list - const wxRectList& GetUpdateRects() const { return m_updateRects; } - - // Adds a recangle to the updates list - void AddUpdateRect(int x, int y, int w, int h) - { m_updateRects.Append(new wxRect(x, y, w, h)); } - - // Empties the m_updateRects list - void ClearUpdateRects(); - - void ClearUpdateRegion() { m_updateRegion.Clear(); } - void SetUpdateRegion(const wxRegion& region) { m_updateRegion = region; } - -protected: - // event handlers (not virtual by design) - void OnIdle(wxIdleEvent& event); - - // For implementation purposes - sometimes decorations make the client area - // smaller - virtual wxPoint GetClientAreaOrigin() const; - - // Makes an adjustment to the window position (for example, a frame that has - // a toolbar that it manages itself). - virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags); - - wxWindow *GetChild(int number) const - { return GetChildren().Item(number)->GetData(); } - - // Responds to colour changes: passes event on to children. - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Motif-specific - - // CanvasXXXSiize functions - void CanvasGetSize(int* width, int* height) const; // If have drawing area - void CanvasGetClientSize(int *width, int *height) const; - void CanvasGetPosition(int *x, int *y) const; // If have drawing area - void CanvasSetClientSize(int width, int size); - void CanvasSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - void SetMainWidget(WXWidget w) { m_mainWidget = w; } - - bool CanAddEventHandler() const { return m_canAddEventHandler; } - void SetCanAddEventHandler(bool flag) { m_canAddEventHandler = flag; } - - WXPixmap GetBackingPixmap() const { return m_backingPixmap; } - int GetPixmapWidth() const { return m_pixmapWidth; } - int GetPixmapHeight() const { return m_pixmapHeight; } - - // Change properties - virtual void ChangeFont(bool keepOriginalSize = TRUE); // Change to the current font (often overridden) - virtual void DoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour); - virtual void DoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour = FALSE); - - // Change background and foreground colour using current background colour - // setting (Motif generates foreground based on background) - virtual void ChangeBackgroundColour(); - // Change foreground colour using current foreground colour setting - virtual void ChangeForegroundColour(); - - // Adds the widget to the hash table and adds event handlers. - bool AttachWidget(wxWindow* parent, WXWidget mainWidget, - WXWidget formWidget, int x, int y, int width, int height); - bool DetachWidget(WXWidget widget); - - // How to implement accelerators. If we find a key event, translate to - // wxWindows wxKeyEvent form. Find a widget for the window. Now find a - // wxWindow for the widget. If there isn't one, go up the widget hierarchy - // trying to find one. Once one is found, call ProcessAccelerator for the - // window. If it returns TRUE (processed the event), skip the X event, - // otherwise carry on up the wxWindows window hierarchy calling - // ProcessAccelerator. If all return FALSE, process the X event as normal. - // Eventually we can implement OnCharHook the same way, but concentrate on - // accelerators for now. ProcessAccelerator must look at the current - // accelerator table, and try to find what menu id or window (beneath it) - // has this ID. Then construct an appropriate command - // event and send it. - virtual bool ProcessAccelerator(wxKeyEvent& event); - - // unmanage and destroy an X widget f it's !NULL (passing NULL is ok) - void UnmanageAndDestroy(WXWidget widget); - - // map or unmap an X widget (passing NULL is ok), returns TRUE if widget was - // mapped/unmapped - bool MapOrUnmap(WXWidget widget, bool map); - - // scrolling stuff - // --------------- - - // create/destroy window scrollbars - void CreateScrollbar(wxOrientation orientation); - void DestroyScrollbar(wxOrientation orientation); - - // get either hor or vert scrollbar widget - WXWidget GetScrollbar(wxOrientation orient) const - { return orient == wxHORIZONTAL ? m_hScrollBar : m_vScrollBar; } - - // set the scroll pos - void SetInternalScrollPos(wxOrientation orient, int pos) - { - if ( orient == wxHORIZONTAL ) - m_scrollPosX = pos; - else - m_scrollPosY = pos; - } - - // Motif-specific flags - // -------------------- - - bool m_needsRefresh:1; // repaint backing store? - bool m_canAddEventHandler:1; // ??? - bool m_button1Pressed:1; - bool m_button2Pressed:1; - bool m_button3Pressed:1; - - // For double-click detection - long m_lastTS; // last timestamp - int m_lastButton; // last pressed button - - // List of wxRects representing damaged region - wxRectList m_updateRects; - -protected: - WXWidget m_mainWidget; - WXWidget m_hScrollBar; - WXWidget m_vScrollBar; - WXWidget m_borderWidget; - WXWidget m_scrolledWindow; - WXWidget m_drawingArea; - bool m_winCaptured; - bool m_hScroll; - bool m_vScroll; - WXPixmap m_backingPixmap; - int m_pixmapWidth; - int m_pixmapHeight; - int m_pixmapOffsetX; - int m_pixmapOffsetY; - - // Store the last scroll pos, since in wxWin the pos isn't set automatically - // by system - int m_scrollPosX; - int m_scrollPosY; - - // implement the base class pure virtuals - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetClientSize( int *width, int *height ) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - -private: - // common part of all ctors - void Init(); - - DECLARE_NO_COPY_CLASS(wxWindow); - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// A little class to switch off `size optimization' while an instance of the -// object exists: this may be useful to temporarily disable the optimisation -// which consists to do nothing when the new size is equal to the old size - -// although quite useful usually to avoid flicker, sometimes it leads to -// undesired effects. -// -// Usage: create an instance of this class on the stack to disable the size -// optimisation, it will be reenabled as soon as the object goes out from scope. -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxNoOptimize -{ -public: - wxNoOptimize() { ms_count++; } - ~wxNoOptimize() { ms_count--; } - - static bool CanOptimize() { return ms_count == 0; } - -protected: - static int ms_count; -}; - -#endif - // _WX_WINDOW_H_ diff --git a/include/wx/msgdlg.h b/include/wx/msgdlg.h deleted file mode 100644 index e0f80d630c..0000000000 --- a/include/wx/msgdlg.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_MSGDLG_H_BASE_ -#define _WX_MSGDLG_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/msgdlg.h" -#elif defined(__WXMOTIF__) -#include "wx/generic/msgdlgg.h" -#elif defined(__WXGTK__) -#include "wx/generic/msgdlgg.h" -#elif defined(__WXQT__) -#include "wx/generic/msgdlgg.h" -#elif defined(__WXMAC__) -#include "wx/mac/msgdlg.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/msgdlgg.h" -#endif - -#endif - // _WX_MSGDLG_H_BASE_ diff --git a/include/wx/mstream.h b/include/wx/mstream.h deleted file mode 100644 index 3bd53e642d..0000000000 --- a/include/wx/mstream.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mstream.h -// Purpose: Memory stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_WXMMSTREAM_H__ -#define _WX_WXMMSTREAM_H__ - -#include - -class wxMemoryInputStream: public wxInputStream { - private: - size_t m_length; - - public: - wxMemoryInputStream(const char *data, size_t length); - virtual ~wxMemoryInputStream(); - virtual size_t StreamSize() const { return m_length; } - - char Peek(); -}; - -class wxMemoryOutputStream: public wxOutputStream { - public: - wxMemoryOutputStream(char *data = NULL, size_t length = 0); - virtual ~wxMemoryOutputStream(); -}; - -#endif diff --git a/include/wx/msw/.cvsignore b/include/wx/msw/.cvsignore deleted file mode 100644 index ecb6b1c795..0000000000 --- a/include/wx/msw/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -setup.h -Makefile.in -Makefile diff --git a/include/wx/msw/Makefile.am b/include/wx/msw/Makefile.am deleted file mode 100644 index 851d48cae2..0000000000 --- a/include/wx/msw/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/msw subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -# TODO - -# include_HEADERS = - diff --git a/include/wx/msw/accel.h b/include/wx/msw/accel.h deleted file mode 100644 index af0a7ca0e7..0000000000 --- a/include/wx/msw/accel.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.h -// Purpose: wxAcceleratorTable class -// Author: Julian Smart -// Modified by: -// Created: 31/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_ -#define _WX_ACCEL_H_ - -#ifdef __GNUG__ -#pragma interface "accel.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxAcceleratorTable; - -// Hold Ctrl key down -#define wxACCEL_ALT 0x01 - -// Hold Ctrl key down -#define wxACCEL_CTRL 0x02 - - // Hold Shift key down -#define wxACCEL_SHIFT 0x04 - - // Hold no other key -#define wxACCEL_NORMAL 0x00 - -class WXDLLEXPORT wxAcceleratorEntry -{ -public: - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { - m_flags = flags; m_keyCode = keyCode; m_command = cmd; - } - - inline void Set(int flags, int keyCode, int cmd) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline int GetFlags() const { return m_flags; } - inline int GetKeyCode() const { return m_keyCode; } - inline int GetCommand() const { return m_command; } - - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -class WXDLLEXPORT wxAcceleratorTable: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxAcceleratorTable) -public: - wxAcceleratorTable(); - wxAcceleratorTable(const wxString& resource); // Load from .rc resource - wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]); // Load from array - - // Copy constructors - inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); } - inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); } - - ~wxAcceleratorTable(); - - inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; } - inline bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; } - inline bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; } - - bool Ok(void) const; - void SetHACCEL(WXHACCEL hAccel); - WXHACCEL GetHACCEL() const; -}; - -WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable; - -#endif - // _WX_ACCEL_H_ diff --git a/include/wx/msw/app.h b/include/wx/msw/app.h deleted file mode 100644 index 0b79229f8b..0000000000 --- a/include/wx/msw/app.h +++ /dev/null @@ -1,169 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#ifdef __GNUG__ -#pragma interface "app.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/event.h" - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -static const int wxPRINT_WINDOWS = 1; -static const int wxPRINT_POSTSCRIPT = 2; - -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; - -// Force an exit from main loop -void WXDLLEXPORT wxExit(); - -// Yield to other apps/messages -bool WXDLLEXPORT wxYield(); - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLEXPORT wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - wxApp(); - ~wxApp(); - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - void OnIdle(wxIdleEvent& event); - void OnEndSession(wxCloseEvent& event); - void OnQueryEndSession(wxCloseEvent& event); - - // Generic - virtual bool OnInit() { return FALSE; }; - - // No specific tasks to do here. - virtual bool OnInitGui() { return TRUE; } - - // Called to set off the main loop - virtual int OnRun() { return MainLoop(); }; - virtual int OnExit() { return 0; } - - // called when a fatal exception occurs, this function should take care not - // to do anything which might provoke a nested exception! - virtual void OnFatalException() { } - - void SetPrintMode(int mode) { m_printMode = mode; } - int GetPrintMode() const { return m_printMode; } - - void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - const wxString& GetAppName() const { - if (m_appName != _T("")) - return m_appName; - else return m_className; - } - - void SetAppName(const wxString& name) { m_appName = name; }; - wxString GetClassName() const { return m_className; } - void SetClassName(const wxString& name) { m_className = name; } - - void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } - const wxString& GetVendorName() const { return m_vendorName; } - - wxWindow *GetTopWindow() const ; - void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; } - bool GetWantDebugOutput() { return m_wantDebugOutput; } - - // Send idle event to all top-level windows. - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(); - - // Send idle event to window and all subwindows - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(wxWindow* win); - - void SetAuto3D(bool flag) { m_auto3D = flag; } - bool GetAuto3D() const { return m_auto3D; } - - // Creates a log object - virtual wxLog* CreateLogTarget(); - -public: - int argc; - wxChar ** argv; - -protected: - bool m_wantDebugOutput ; - wxString m_className; - wxString m_appName, - m_vendorName; - wxWindow * m_topWindow; - bool m_exitOnFrameDelete; - bool m_showOnInit; - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except - // where overriden - static wxAppInitializerFunction m_appInitFn; - -/* Windows-specific wxApp definitions */ - -public: - - // Implementation - static bool Initialize(); - static void CleanUp(); - - static bool RegisterWindowClasses(); - // Convert Windows to argc, argv style - void ConvertToStandardCommandArgs(char* p); - virtual bool DoMessage(); - virtual bool ProcessMessage(WXMSG* pMsg); - void DeletePendingObjects(); - bool ProcessIdle(); -#if wxUSE_THREADS - void ProcessPendingEvents(); -#endif - int GetComCtl32Version() const; - -public: - int m_nCmdShow; - -protected: - bool m_keepGoing ; - -DECLARE_EVENT_TABLE() -}; - -#if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL)) -int WXDLLEXPORT wxEntry(WXHINSTANCE hInstance, WXHINSTANCE hPrevInstance, char *lpszCmdLine, - int nCmdShow, bool enterLoop = TRUE); -#else -int WXDLLEXPORT wxEntry(WXHINSTANCE hInstance); -#endif - -#endif - // _WX_APP_H_ - diff --git a/include/wx/msw/bitmap.h b/include/wx/msw/bitmap.h deleted file mode 100644 index a17235451c..0000000000 --- a/include/wx/msw/bitmap.h +++ /dev/null @@ -1,214 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: wxBitmap class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#ifdef __GNUG__ -#pragma interface "bitmap.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" -#include "wx/palette.h" - -// Bitmap -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxBitmapHandler; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxCursor; -class WXDLLEXPORT wxControl; - -// A mask is a mono bitmap used for drawing bitmaps -// transparently. -class WXDLLEXPORT wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(void); - - // Construct a mask from a bitmap and a colour indicating - // the transparent area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating - // the transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - ~wxMask(void); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - - // Implementation - inline WXHBITMAP GetMaskBitmap(void) const { return m_maskBitmap; } - inline void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; } -protected: - WXHBITMAP m_maskBitmap; -}; - -class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; - friend class WXDLLEXPORT wxCursor; -public: - wxBitmapRefData(void); - ~wxBitmapRefData(void); - -public: - int m_width; - int m_height; - int m_depth; - bool m_ok; - int m_numColors; - wxPalette m_bitmapPalette; - int m_quality; - -#ifdef __WXMSW__ - WXHBITMAP m_hBitmap; - wxDC * m_selectedInto; // So bitmap knows whether it's been selected into - // a device context (for error checking) - wxMask * m_bitmapMask; // Option mask -#endif -}; - -#define M_BITMAPDATA ((wxBitmapRefData *)m_refData) - -class WXDLLEXPORT wxBitmapHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmapHandler) -public: - wxBitmapHandler(void) { m_name = ""; m_extension = ""; m_type = 0; }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); - - inline void SetName(const wxString& name) { m_name = name; } - inline void SetExtension(const wxString& ext) { m_extension = ext; } - inline void SetType(long type) { m_type = type; } - inline wxString GetName(void) const { return m_name; } - inline wxString GetExtension(void) const { return m_extension; } - inline long GetType(void) const { return m_type; } -protected: - wxString m_name; - wxString m_extension; - long m_type; -}; -#define M_BITMAPHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData()) - -class WXDLLEXPORT wxBitmap: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - - friend class WXDLLEXPORT wxBitmapHandler; - -public: - wxBitmap(void); // Platform-specific - - // Copy constructors - inline wxBitmap(const wxBitmap& bitmap) - { Ref(bitmap); if ( wxTheBitmapList ) wxTheBitmapList->AddBitmap(this); } - - // Initialize with raw data - wxBitmap(const char bits[], int width, int height, int depth = 1); - - // Initialize with XPM data - wxBitmap(char **data, wxControl *anItem = NULL); - - // Load a file or resource - wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - - // New constructor for generalised creation from data - wxBitmap(void *data, long type, int width, int height, int depth = 1); - - // If depth is omitted, will create a bitmap compatible with the display - wxBitmap(int width, int height, int depth = -1); - ~wxBitmap(void); - - virtual bool Create(int width, int height, int depth = -1); - virtual bool Create(void *data, long type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL); - - inline bool Ok(void) const { return (M_BITMAPDATA && M_BITMAPDATA->m_ok); } - inline int GetWidth(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_width : 0); } - inline int GetHeight(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_height : 0); } - inline int GetDepth(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_depth : 0); } - inline int GetQuality(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_quality : 0); } - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetQuality(int q); - void SetOk(bool isOk); -#if WXWIN_COMPATIBILITY - inline wxPalette *GetColourMap(void) const { return GetPalette(); } - void SetColourMap(wxPalette *cmap) { SetPalette(*cmap); }; -#endif - inline wxPalette* GetPalette(void) const { return (M_BITMAPDATA ? (& M_BITMAPDATA->m_bitmapPalette) : (wxPalette*) NULL); } - void SetPalette(const wxPalette& palette); - - inline wxMask *GetMask(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_bitmapMask : (wxMask*) NULL); } - void SetMask(wxMask *mask) ; - - inline wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; } - - inline bool operator == (const wxBitmap& bitmap) { return m_refData == bitmap.m_refData; } - inline bool operator != (const wxBitmap& bitmap) { return m_refData != bitmap.m_refData; } - - // Format handling - static inline wxList& GetHandlers(void) { return sm_handlers; } - static void AddHandler(wxBitmapHandler *handler); - static void InsertHandler(wxBitmapHandler *handler); - static bool RemoveHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& extension, long bitmapType); - static wxBitmapHandler *FindHandler(long bitmapType); - - static void InitStandardHandlers(void); - static void CleanUpHandlers(void); -protected: - static wxList sm_handlers; - - // Implementation -public: - void SetHBITMAP(WXHBITMAP bmp); - inline WXHBITMAP GetHBITMAP(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_hBitmap : 0); } - inline void SetSelectedInto(wxDC *dc) { if (M_BITMAPDATA) M_BITMAPDATA->m_selectedInto = dc; } - inline wxDC *GetSelectedInto(void) const { return (M_BITMAPDATA ? M_BITMAPDATA->m_selectedInto : (wxDC*) NULL); } - bool FreeResource(bool force = FALSE); - - // Creates a bitmap that matches the device context's depth, from - // an arbitray bitmap. At present, the original bitmap must have an - // associated palette. (TODO: use a default palette if no palette exists.) - // This function is necessary for you to Blit an arbitrary bitmap (which may have - // the wrong depth). wxDC::SelectObject will compare the depth of the bitmap - // with the DC's depth, and create a new bitmap if the depths differ. - // Eventually we should perhaps make this a public API function so that - // an app can efficiently produce bitmaps of the correct depth. - // The Windows solution is to use SetDibBits to blit an arbotrary DIB directly to a DC, but - // this is too Windows-specific, hence this solution of quietly converting the wxBitmap. - // Contributed by Frederic Villeneuve - wxBitmap GetBitmapForDC(wxDC& dc) const; - -}; - -#endif - // _WX_BITMAP_H_ diff --git a/include/wx/msw/blank.cur b/include/wx/msw/blank.cur deleted file mode 100644 index 048f06b4aefde54e0ff825ccb5a5db4d7001d513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZQzU}9ioP*7k10|Q0|1~DK@1BexX*a3(cfe;L!6oi8y|NsAw;0zE8=!O9W0CiJ? AlK=n! diff --git a/include/wx/msw/bmpbuttn.h b/include/wx/msw/bmpbuttn.h deleted file mode 100644 index 846a2813f7..0000000000 --- a/include/wx/msw/bmpbuttn.h +++ /dev/null @@ -1,85 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTN_H_ -#define _WX_BMPBUTTN_H_ - -#ifdef __GNUG__ -#pragma interface "bmpbuttn.h" -#endif - -#include "wx/button.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxButtonNameStr; - -#define wxDEFAULT_BUTTON_MARGIN 4 - -class WXDLLEXPORT wxBitmapButton: public wxButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - public: - inline wxBitmapButton(void) { m_marginX = wxDEFAULT_BUTTON_MARGIN; m_marginY = wxDEFAULT_BUTTON_MARGIN; } - inline wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetLabel(const wxBitmap& bitmap) - { - SetBitmapLabel(bitmap); - } - - virtual void SetBitmapLabel(const wxBitmap& bitmap); - -#if WXWIN_COMPATIBILITY - inline wxBitmap *GetBitmap(void) const { return (wxBitmap *) & m_buttonBitmap; } -#endif - - inline wxBitmap& GetBitmapLabel(void) const { return (wxBitmap&) m_buttonBitmap; } - inline wxBitmap& GetBitmapSelected(void) const { return (wxBitmap&) m_buttonBitmapSelected; } - inline wxBitmap& GetBitmapFocus(void) const { return (wxBitmap&) m_buttonBitmapFocus; } - inline wxBitmap& GetBitmapDisabled(void) const { return (wxBitmap&) m_buttonBitmapDisabled; } - - inline void SetBitmapSelected(const wxBitmap& sel) { m_buttonBitmapSelected = sel; }; - inline void SetBitmapFocus(const wxBitmap& focus) { m_buttonBitmapFocus = focus; }; - inline void SetBitmapDisabled(const wxBitmap& disabled) { m_buttonBitmapDisabled = disabled; }; - - inline void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } - inline int GetMarginX(void) { return m_marginX; } - inline int GetMarginY(void) { return m_marginY; } - - // Implementation - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg ); - - protected: - wxBitmap m_buttonBitmap; - wxBitmap m_buttonBitmapSelected; - wxBitmap m_buttonBitmapFocus; - wxBitmap m_buttonBitmapDisabled; - int m_marginX; - int m_marginY; -}; - -#endif - // _WX_BMPBUTTN_H_ diff --git a/include/wx/msw/brush.h b/include/wx/msw/brush.h deleted file mode 100644 index 05ae288300..0000000000 --- a/include/wx/msw/brush.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: wxBrush class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -#ifdef __GNUG__ -#pragma interface "brush.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -class WXDLLEXPORT wxBrush; - -class WXDLLEXPORT wxBrushRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBrush; -public: - wxBrushRefData(void); - wxBrushRefData(const wxBrushRefData& data); - ~wxBrushRefData(void); - -protected: - int m_style; - wxBitmap m_stipple ; - wxColour m_colour; - WXHBRUSH m_hBrush; -}; - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -// Brush -class WXDLLEXPORT wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - -public: - wxBrush(void); - wxBrush(const wxColour& col, int style); - wxBrush(const wxBitmap& stipple); - inline wxBrush(const wxBrush& brush) { Ref(brush); } - ~wxBrush(void); - - virtual void SetColour(const wxColour& col) ; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - virtual void SetStyle(int style) ; - virtual void SetStipple(const wxBitmap& stipple) ; - - inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; } - inline bool operator == (const wxBrush& brush) { return m_refData == brush.m_refData; } - inline bool operator != (const wxBrush& brush) { return m_refData != brush.m_refData; } - - inline wxColour& GetColour(void) const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); }; - inline int GetStyle(void) const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); }; - inline wxBitmap *GetStipple(void) const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); }; - - virtual bool Ok(void) const { return (m_refData != NULL) ; } - - // Internal - bool RealizeResource(void); - WXHANDLE GetResourceHandle(void) ; - bool FreeResource(bool force = FALSE); - bool IsFree() const; - void Unshare(); -}; - -#endif - // _WX_BRUSH_H_ diff --git a/include/wx/msw/bullseye.cur b/include/wx/msw/bullseye.cur deleted file mode 100644 index 308c07d3325a0d7dc7b480cfd402abd7a25830f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcma)0u?@m75Ioa_0*O?#q@-j5Oc5~$5`$y`Bu2<6q+kyU1_+W1u!uPR5+qAdz`fq@ zyT5-M7{Q?^fT_jO0W$y#OOvp+bQV3{WgzJ!naHnO)&P?&kmvTm7})KB%?T*Wp^8ga zUq1Q&fc@bc*E!i_ -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef __CHECKLST__H_ -#define __CHECKLST__H_ - -#ifdef __GNUG__ -#pragma interface "checklst.h" -#endif - -// No! -// typedef unsigned int size_t; -#include - -#if !wxUSE_OWNER_DRAWN - #error "wxCheckListBox class requires owner-drawn functionality." -#endif - -class wxCheckListBoxItem; // fwd decl, define in checklst.cpp - -class WXDLLEXPORT wxCheckListBox : public wxListBox -{ - DECLARE_DYNAMIC_CLASS(wxCheckListBox) -public: - // ctors - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - // override base class virtuals - virtual void Delete(int n); - virtual void InsertItems(int nItems, const wxString items[], int pos); - - virtual bool SetFont( const wxFont &font ); - - // items may be checked - bool IsChecked(size_t uiIndex) const; - void Check(size_t uiIndex, bool bCheck = TRUE); - - // accessors - size_t GetItemHeight() const { return m_nItemHeight; } - -protected: - // we create our items ourselves and they have non-standard size, - // so we need to override these functions - virtual wxOwnerDrawn *CreateItem(size_t n); - virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item); - - // pressing space or clicking the check box toggles the item - void OnChar(wxKeyEvent& event); - void OnLeftClick(wxMouseEvent& event); - -private: - size_t m_nItemHeight; // height of checklistbox items (the same for all) - - DECLARE_EVENT_TABLE() -}; - -#endif //_CHECKLST_H diff --git a/include/wx/msw/child.ico b/include/wx/msw/child.ico deleted file mode 100644 index 00c8d8b8a4c243143ecca37973cbc13ea97484a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmchUJ#K_B5JqRCNGRTwoGLYCj*%nLZOak1r2%SJ^e*5AzCy~-Slqz-2D7YIiMGrK zV|e~N<3EuDPg%Z;>gPq|gYPF%5?{nYUTG2D-x@`DWgPQ|mS35sN$R@BNb4&p=^w$P zT{JQ4`{=WNbJI3$%>LkgoExMp-Va9~6>m)6oweSOId1unJjf&8$M5yXpPQKHXFjbT z<4kPpVSc#Xnf0OO#$+g?eSd8KsW=nWVq8{AHnS-AlC0H^#S{iEDoE^N7t>eRXJb=1 z2|dO!pr~95uvhLYY!^a0O)I+s+lAE0#%jCN!Gn$`8^7!H#@76^&e^5#c5!R{ijrDC i^O{{4>dU3a*WwHatd*Nyj8M@zy>r#Rzo&=s59SqGV?PG~ diff --git a/include/wx/msw/choice.h b/include/wx/msw/choice.h deleted file mode 100644 index 2870c78b71..0000000000 --- a/include/wx/msw/choice.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: wxChoice class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -#ifdef __GNUG__ -#pragma interface "choice.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxChoiceNameStr; - -// Choice item -class WXDLLEXPORT wxChoice: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - -public: - wxChoice() { m_noStrings = 0; } - - wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - - virtual int Number() const { return m_noStrings; } - virtual void Command(wxCommandEvent& event); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - - virtual void SetColumns(int WXUNUSED(n) = 1 ) { /* No effect */ } - virtual int GetColumns() const { return 1 ; } - - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - -protected: - int m_noStrings; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_CHOICE_H_ diff --git a/include/wx/msw/clipbrd.h b/include/wx/msw/clipbrd.h deleted file mode 100644 index 223801a6a6..0000000000 --- a/include/wx/msw/clipbrd.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.h -// Purpose: Clipboard functionality -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_ -#define _WX_CLIPBRD_H_ - -#ifdef __GNUG__ -#pragma interface "clipbrd.h" -#endif - -#include "wx/defs.h" -#include "wx/setup.h" - -#if wxUSE_CLIPBOARD - -#include "wx/list.h" -#include "wx/module.h" -#include "wx/dataobj.h" // for wxDataFormat - -// These functions superceded by wxClipboard, but retained in order to -// implement wxClipboard, and for compatibility. - -// open/close the clipboard -WXDLLEXPORT bool wxOpenClipboard(); -WXDLLEXPORT bool wxIsClipboardOpened(); -#define wxClipboardOpen wxIsClipboardOpened -WXDLLEXPORT bool wxCloseClipboard(); - -// get/set data -WXDLLEXPORT bool wxEmptyClipboard(); -WXDLLEXPORT bool wxSetClipboardData(wxDataFormat dataFormat, - const void *data, - int width = 0, int height = 0); -WXDLLEXPORT void* wxGetClipboardData(wxDataFormat dataFormat, - long *len = NULL); - -// clipboard formats -WXDLLEXPORT bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat); -WXDLLEXPORT wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat); -WXDLLEXPORT int wxRegisterClipboardFormat(wxChar *formatName); -WXDLLEXPORT bool wxGetClipboardFormatName(wxDataFormat dataFormat, - wxChar *formatName, - int maxCount); - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject; -class WXDLLEXPORT wxClipboard : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - -public: - wxClipboard(); - ~wxClipboard(); - - // open the clipboard before SetData() and GetData() - virtual bool Open(); - - // close the clipboard after SetData() and GetData() - virtual void Close(); - - // set the clipboard data. all other formats will be deleted. - virtual bool SetData( wxDataObject *data ); - - // add to the clipboard data. - virtual bool AddData( wxDataObject *data ); - - // ask if data in correct format is available - virtual bool IsSupported( wxDataFormat format ); - - // fill data with data on the clipboard (if available) - virtual bool GetData( wxDataObject *data ); - - // clears wxTheClipboard and the system's clipboard if possible - virtual void Clear(); - - /// X11 has two clipboards which get selected by this call. Empty on MSW. - inline void UsePrimarySelection( bool WXUNUSED(primary) ) { } - -}; - -// The global clipboard object -WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard; - -//----------------------------------------------------------------------------- -// wxClipboardModule: module responsible for initializing the global clipboard -// object -//----------------------------------------------------------------------------- - -class wxClipboardModule : public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxClipboardModule) - -public: - wxClipboardModule() { } - - bool OnInit(); - void OnExit(); -}; - -#endif // wxUSE_CLIPBOARD -#endif - // _WX_CLIPBRD_H_ diff --git a/include/wx/msw/clock.cur b/include/wx/msw/clock.cur deleted file mode 100644 index 6693b04d6b52ad5bcce3fb27f77ca16c88ddcb58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ{fI}XAy5JV@WpbRv$rljNqgqu+0AfZczI08rD27r_zB_$mRN=ZRnAR;~> 8), - (unsigned char)(colRGB >> 16)); - } - - // accessors - bool Ok() const {return m_isInit; } - - // Let's remove this inelegant function -#if WXWIN_COMPATIBILITY - void Get(unsigned char *r, unsigned char *g, unsigned char *b) const; -#endif - - unsigned char Red() const { return m_red; } - unsigned char Green() const { return m_green; } - unsigned char Blue() const { return m_blue; } - - // comparison - bool operator == (const wxColour& colour) const - { - return (m_red == colour.m_red && - m_green == colour.m_green && - m_blue == colour.m_blue); - } - bool operator != (const wxColour& colour) const { return !(*this == colour); } - - WXCOLORREF GetPixel() const { return m_pixel; }; - -private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - - // helper func - void InitFromName(const wxString& colourName); - -public: - WXCOLORREF m_pixel ; - -private: - DECLARE_DYNAMIC_CLASS(wxColour) -}; - -#endif - // _WX_COLOUR_H_ diff --git a/include/wx/msw/combobox.h b/include/wx/msw/combobox.h deleted file mode 100644 index a44538e7ff..0000000000 --- a/include/wx/msw/combobox.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: wxComboBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/choice.h" - -#if wxUSE_COMBOBOX - -WXDLLEXPORT_DATA(extern const wxChar*) wxComboBoxNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// Combobox item -class WXDLLEXPORT wxComboBox: public wxChoice -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - - public: - inline wxComboBox(void) {} - - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - // List functions: see wxChoice - - // Text field functions - virtual wxString GetValue(void) const ; - virtual void SetValue(const wxString& value); - - // Clipboard operations - virtual void Copy(void); - virtual void Cut(void); - virtual void Paste(void); - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(void); - virtual long GetInsertionPoint(void) const ; - virtual long GetLastPosition(void) const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(int n) - { - wxChoice::SetSelection(n); - } - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - virtual bool MSWCommand(WXUINT param, WXWORD id); -}; - -#endif // wxUSE_COMBOBOX -#endif - // _WX_COMBOBOX_H_ diff --git a/include/wx/msw/control.h b/include/wx/msw/control.h deleted file mode 100644 index 446d49f333..0000000000 --- a/include/wx/msw/control.h +++ /dev/null @@ -1,86 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: wxControl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -#ifdef __GNUG__ - #pragma interface "control.h" -#endif - -#include "wx/window.h" -#include "wx/list.h" - -// General item class -class WXDLLEXPORT wxControl : public wxWindow -{ - DECLARE_ABSTRACT_CLASS(wxControl) - -public: - wxControl(); - virtual ~wxControl(); - - // Simulates an event - bool Command(wxCommandEvent& event) { return ProcessCommand(event); } - - // Calls the callback and appropriate event handlers - bool ProcessCommand(wxCommandEvent& event); - - // MSW-specific -#ifdef __WIN95__ - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); -#endif // Win95 - - // For ownerdraw items - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *WXUNUSED(item)) { return FALSE; }; - virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *WXUNUSED(item)) { return FALSE; }; - - wxList& GetSubcontrols() { return m_subControls; } - - void OnEraseBackground(wxEraseEvent& event); - -#if WXWIN_COMPATIBILITY - virtual void SetButtonColour(const wxColour& WXUNUSED(col)) { } - wxColour* GetButtonColour() const { return NULL; } - - inline virtual void SetLabelFont(const wxFont& font); - inline virtual void SetButtonFont(const wxFont& font); - inline wxFont& GetLabelFont() const; - inline wxFont& GetButtonFont() const; - - // Adds callback - inline void Callback(const wxFunction function); - - wxFunction GetCallback() { return m_callback; } - -protected: - wxFunction m_callback; // Callback associated with the window -#endif // WXWIN_COMPATIBILITY - -protected: - // For controls like radiobuttons which are really composite - wxList m_subControls; - -private: - DECLARE_EVENT_TABLE() -}; - - -#if WXWIN_COMPATIBILITY - inline void wxControl::Callback(const wxFunction f) { m_callback = f; }; - inline wxFont& wxControl::GetLabelFont() const { return GetFont() ; } - inline wxFont& wxControl::GetButtonFont() const { return GetFont() ; } - inline void wxControl::SetLabelFont(const wxFont& font) { SetFont(font); } - inline void wxControl::SetButtonFont(const wxFont& font) { SetFont(font); } -#endif // WXWIN_COMPATIBILITY - -#endif - // _WX_CONTROL_H_ diff --git a/include/wx/msw/ctl3d/ctl3d.h b/include/wx/msw/ctl3d/ctl3d.h deleted file mode 100644 index de7e67aa50..0000000000 --- a/include/wx/msw/ctl3d/ctl3d.h +++ /dev/null @@ -1,61 +0,0 @@ -/*----------------------------------------------------------------------- -| CTL3D.DLL -| -| Adds 3d effects to Windows controls -| -| See ctl3d.doc for info -| ------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" { -#endif - - -BOOL WINAPI Ctl3dSubclassDlg(HWND, WORD); -BOOL WINAPI Ctl3dSubclassDlgEx(HWND, DWORD); -WORD WINAPI Ctl3dGetVer(void); -BOOL WINAPI Ctl3dEnabled(void); -HBRUSH WINAPI Ctl3dCtlColor(HDC, LONG); // ARCHAIC, use Ctl3dCtlColorEx -HBRUSH WINAPI Ctl3dCtlColorEx(UINT wm, WPARAM wParam, LPARAM lParam); -BOOL WINAPI Ctl3dColorChange(void); -BOOL WINAPI Ctl3dSubclassCtl(HWND); -LONG WINAPI Ctl3dDlgFramePaint(HWND, UINT, WPARAM, LPARAM); - -BOOL WINAPI Ctl3dAutoSubclass(HANDLE); - -BOOL WINAPI Ctl3dRegister(HANDLE); -BOOL WINAPI Ctl3dUnregister(HANDLE); - -//begin DBCS: far east short cut key support -VOID WINAPI Ctl3dWinIniChange(void); -//end DBCS - - -/* Ctl3dSubclassDlg3d flags */ -#define CTL3D_BUTTONS 0x0001 -#define CTL3D_LISTBOXES 0x0002 -#define CTL3D_EDITS 0x0004 -#define CTL3D_COMBOS 0x0008 -#define CTL3D_STATICTEXTS 0x0010 -#define CTL3D_STATICFRAMES 0x0020 - -#define CTL3D_NODLGWINDOW 0x00010000 -#define CTL3D_ALL 0xffff - -#define WM_DLGBORDER (WM_USER+3567) -/* WM_DLGBORDER *(int FAR *)lParam return codes */ -#define CTL3D_NOBORDER 0 -#define CTL3D_BORDER 1 - -#define WM_DLGSUBCLASS (WM_USER+3568) -/* WM_DLGSUBCLASS *(int FAR *)lParam return codes */ -#define CTL3D_NOSUBCLASS 0 -#define CTL3D_SUBCLASS 1 - -/* Resource ID for 3dcheck.bmp (for .lib version of ctl3d) */ -#define CTL3D_3DCHECK 26567 - - -#ifdef __cplusplus -} -#endif diff --git a/include/wx/msw/curico.h b/include/wx/msw/curico.h deleted file mode 100644 index 3b8c83375a..0000000000 --- a/include/wx/msw/curico.h +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: curico.h -// Purpose: Icon and cursor functions -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -HICON ReadIconFile( wxChar *szFileName, HINSTANCE hInst, - int *W = 0, int *H = 0); -HCURSOR ReadCursorFile( wxChar *szFileName, HINSTANCE hInst, - int *W = 0, int *H = 0, int *XHot = 0, int *YHot = 0); -HCURSOR IconToCursor( wxChar *szFileName, HINSTANCE hInst, int XHot, int YHot, - int *W = 0, int *H = 0); -HICON CursorToIcon( wxChar *szFileName, HINSTANCE hInst, - int *W = 0, int *H = 0); - -HCURSOR MakeCursorFromBitmap(HINSTANCE hInst, HBITMAP hBitmap, POINT *pPoint); -HICON MakeIconFromBitmap(HINSTANCE hInst, HBITMAP hBitmap); diff --git a/include/wx/msw/curicop.h b/include/wx/msw/curicop.h deleted file mode 100644 index 1ec5056e90..0000000000 --- a/include/wx/msw/curicop.h +++ /dev/null @@ -1,63 +0,0 @@ -// PRIVATE STUFF FOLLOWS UNTIL END - -// Header signatures for various resources -#define BFT_ICON 0x4349 /* 'IC' */ -#define BFT_BITMAP 0x4d42 /* 'BM' */ -#define BFT_CURSOR 0x5450 /* 'PT' */ - -// This WIDTHBYTES macro determines the number of BYTES per scan line. -#define WIDTHBYTES( i) ((i + 31) / 32 * 4) -#define IS_WIN30_DIB( lpbi) ((*(LPDWORD)( lpbi)) == sizeof( BITMAPINFOHEADER)) - -WORD DIBNumColors(LPSTR pv); -WORD PaletteSize(LPSTR lpbi); - - -struct tagCURFILEHEADER { WORD wReserved; // Always 0 - WORD wResourceType; // 2 = cursor - WORD wResourceCount; // Number of icons in the file - }; - -typedef struct tagCURFILEHEADER CURFILEHEADER; - -struct tagCURFILERES { - BYTE bWidth; // Width of image - BYTE bHeight; // Height of image - BYTE bColorCount; // Number of colors in image (2, 8, or 16) - BYTE bReserved1; // Reserved - WORD wXHotspot; // x coordinate of hotspot - WORD wYHotspot; // y coordinate of hotspot - DWORD dwDIBSize; // Size of DIB for this image - DWORD dwDIBOffset; // Offset to DIB for this image - }; - -typedef struct tagCURFILERES CURFILERES; - -HANDLE ReadCur( LPSTR szFileName, LPPOINT lpptHotSpot, int *W = 0, int *H = 0); -HBITMAP ColorDDBToMonoDDB( HBITMAP hbm); -HCURSOR MakeCursor( HANDLE hDIB, LPPOINT lpptHotSpot, HINSTANCE hInst); - -struct tagICONFILEHEADER { - WORD wReserved; // Always 0 - WORD wResourceType; // 1 = icon - WORD wResourceCount; // Number of icons in the file - }; - -typedef struct tagICONFILEHEADER ICONFILEHEADER; - -struct tagICONFILERES { - BYTE bWidth; // Width of image - BYTE bHeight; // Height of image - BYTE bColorCount; // Number of colors in image (2, 8, or 16) - BYTE bReserved1; // Reserved - WORD wReserved2; - WORD wReserved3; - DWORD dwDIBSize; // Size of DIB for this image - DWORD dwDIBOffset; // Offset to DIB for this image - }; - -typedef struct tagICONFILERES ICONFILERES; - -HANDLE ReadIcon( char *szFileName, int *W = 0, int *H = 0); -HICON MakeIcon( HANDLE hDIB, HINSTANCE hInst); - diff --git a/include/wx/msw/cursor.h b/include/wx/msw/cursor.h deleted file mode 100644 index d5fab5b83b..0000000000 --- a/include/wx/msw/cursor.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: wxCursor class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -#ifdef __GNUG__ -#pragma interface "cursor.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxCursorRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxCursor; -public: - wxCursorRefData(void); - ~wxCursorRefData(void); - -protected: - WXHCURSOR m_hCursor; - bool m_destroyCursor; -}; - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) -#define M_CURSORHANDLERDATA ((wxCursorRefData *)bitmap->m_refData) - -// Cursor -class WXDLLEXPORT wxCursor: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - -public: - wxCursor(void); - - // Copy constructors - inline wxCursor(const wxCursor& cursor) { Ref(cursor); } - - wxCursor(const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1, - const char maskBits[] = NULL); - wxCursor(const wxString& name, long flags = wxBITMAP_TYPE_CUR_RESOURCE, - int hotSpotX = 0, int hotSpotY = 0); - wxCursor(int cursor_type); - ~wxCursor(void); - - virtual bool Ok(void) const { return (m_refData != NULL && M_CURSORDATA->m_hCursor) ; } - - wxCursor& operator = (const wxCursor& cursor) { if (*this == cursor) return (*this); Ref(cursor); return *this; } - bool operator == (const wxCursor& cursor) const { return m_refData == cursor.m_refData; } - bool operator != (const wxCursor& cursor) const { return m_refData != cursor.m_refData; } - - void SetHCURSOR(WXHCURSOR cursor); - inline WXHCURSOR GetHCURSOR(void) const { return (M_CURSORDATA ? M_CURSORDATA->m_hCursor : 0); } - - bool FreeResource(bool force = FALSE); -}; - -#endif - // _WX_CURSOR_H_ diff --git a/include/wx/msw/dc.h b/include/wx/msw/dc.h deleted file mode 100644 index 8851693235..0000000000 --- a/include/wx/msw/dc.h +++ /dev/null @@ -1,171 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: wxDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_ -#define _WX_DC_H_ - -#ifdef __GNUG__ - #pragma interface "dc.h" -#endif - -class WXDLLEXPORT wxDC : public wxDCBase -{ - DECLARE_DYNAMIC_CLASS(wxDC) - -public: - wxDC(); - ~wxDC(); - - // implement base class pure virtuals - // ---------------------------------- - - virtual void Clear(); - - virtual bool StartDoc(const wxString& message); - virtual void EndDoc(); - - virtual void StartPage(); - virtual void EndPage(); - - virtual void SetFont(const wxFont& font); - virtual void SetPen(const wxPen& pen); - virtual void SetBrush(const wxBrush& brush); - virtual void SetBackground(const wxBrush& brush); - virtual void SetBackgroundMode(int mode); - virtual void SetPalette(const wxPalette& palette); - - virtual void DestroyClippingRegion(); - - virtual long GetCharHeight() const; - virtual long GetCharWidth() const; - virtual void GetTextExtent(const wxString& string, - long *x, long *y, - long *descent = NULL, - long *externalLeading = NULL, - wxFont *theFont = NULL) const; - - virtual bool CanDrawBitmap() const; - virtual bool CanGetTextExtent() const; - virtual int GetDepth() const; - virtual wxSize GetPPI() const; - - virtual void SetMapMode(int mode); - virtual void SetUserScale(double x, double y); - virtual void SetSystemScale(double x, double y); - virtual void SetLogicalScale(double x, double y); - virtual void SetLogicalOrigin(long x, long y); - virtual void SetDeviceOrigin(long x, long y); - virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp); - virtual void SetLogicalFunction(int function); - - // implementation from now on - // -------------------------- - - virtual void SetRop(WXHDC cdc); - virtual void DoClipping(WXHDC cdc); - virtual void SelectOldObjects(WXHDC dc); - - wxWindow *GetWindow() const { return m_canvas; } - void SetWindow(wxWindow *win) { m_canvas = win; } - - WXHDC GetHDC() const { return m_hDC; } - void SetHDC(WXHDC dc, bool bOwnsDC = FALSE) - { - m_hDC = dc; - m_bOwnsDC = bOwnsDC; - } - -protected: - virtual void DoFloodFill(long x, long y, const wxColour& col, - int style = wxFLOOD_SURFACE); - - virtual bool DoGetPixel(long x, long y, wxColour *col) const; - - virtual void DoDrawPoint(long x, long y); - virtual void DoDrawLine(long x1, long y1, long x2, long y2); - - virtual void DoDrawArc(long x1, long y1, - long x2, long y2, - long xc, long yc); - virtual void DoDrawEllipticArc(long x, long y, long w, long h, - double sa, double ea); - - virtual void DoDrawRectangle(long x, long y, long width, long height); - virtual void DoDrawRoundedRectangle(long x, long y, - long width, long height, - double radius); - virtual void DoDrawEllipse(long x, long y, long width, long height); - - virtual void DoCrossHair(long x, long y); - - virtual void DoDrawIcon(const wxIcon& icon, long x, long y); - virtual void DoDrawBitmap(const wxBitmap &bmp, long x, long y, - bool useMask = FALSE); - - virtual void DoDrawText(const wxString& text, long x, long y); - - virtual bool DoBlit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int rop = wxCOPY, bool useMask = FALSE); - - // this is gnarly - we can't even call this function DoSetClippingRegion() - // because of virtual function hiding - virtual void DoSetClippingRegionAsRegion(const wxRegion& region); - virtual void DoSetClippingRegion(long x, long y, - long width, long height); - virtual void DoGetClippingRegion(long *x, long *y, - long *width, long *height) - { - GetClippingBox(x, y, width, height); - } - - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetSizeMM(int* width, int* height) const; - - virtual void DoDrawLines(int n, wxPoint points[], - long xoffset, long yoffset); - virtual void DoDrawPolygon(int n, wxPoint points[], - long xoffset, long yoffset, - int fillStyle = wxODDEVEN_RULE); - -#if wxUSE_SPLINES - virtual void DoDrawSpline(wxList *points); -#endif // wxUSE_SPLINES - - // MSW-specific member variables - int m_windowExtX; - int m_windowExtY; - - // the window associated with this DC (may be NULL) - wxWindow *m_canvas; - - wxBitmap m_selectedBitmap; - - // TRUE => DeleteDC() in dtor, FALSE => only ReleaseDC() it - bool m_bOwnsDC:1; - - // our HDC and its usage count: we only free it when the usage count drops - // to 0 - WXHDC m_hDC; - int m_hDCCount; - - // Store all old GDI objects when do a SelectObject, so we can select them - // back in (this unselecting user's objects) so we can safely delete the - // DC. - WXHBITMAP m_oldBitmap; - WXHPEN m_oldPen; - WXHBRUSH m_oldBrush; - WXHFONT m_oldFont; - WXHPALETTE m_oldPalette; -}; - -#endif - // _WX_DC_H_ diff --git a/include/wx/msw/dcmemory.h b/include/wx/msw/dcmemory.h deleted file mode 100644 index 5ba8eb59e8..0000000000 --- a/include/wx/msw/dcmemory.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: wxMemoryDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#ifdef __GNUG__ -#pragma interface "dcmemory.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxMemoryDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxMemoryDC) - - public: - wxMemoryDC(void); - wxMemoryDC(wxDC *dc); // Create compatible DC - - ~wxMemoryDC(void); - virtual void SelectObject(const wxBitmap& bitmap); - virtual void DoGetSize(int* width, int* height) const; -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/include/wx/msw/dcprint.h b/include/wx/msw/dcprint.h deleted file mode 100644 index 3dcf523f55..0000000000 --- a/include/wx/msw/dcprint.h +++ /dev/null @@ -1,54 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcprint.h -// Purpose: wxPrinterDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPRINT_H_ -#define _WX_DCPRINT_H_ - -#ifdef __GNUG__ -#pragma interface "dcprint.h" -#endif - -#include "wx/dc.h" -#include "wx/cmndata.h" - -class WXDLLEXPORT wxPrinterDC: public wxDC -{ -public: -DECLARE_CLASS(wxPrinterDC) - - // Create a printer DC (obsolete function: use wxPrintData version now) - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT); - - // Create from print data - wxPrinterDC(const wxPrintData& data); - - wxPrinterDC(WXHDC theDC); - - ~wxPrinterDC(void); - - bool StartDoc(const wxString& message); - void EndDoc(void); - void StartPage(void); - void EndPage(void); - -protected: - wxPrintData m_printData; -}; - -// Gets an HDC for the default printer configuration -// WXHDC WXDLLEXPORT wxGetPrinterDC(int orientation); - -// Gets an HDC for the specified printer configuration -WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& data); - -#endif - // _WX_DCPRINT_H_ - diff --git a/include/wx/msw/dcscreen.h b/include/wx/msw/dcscreen.h deleted file mode 100644 index 67a0cbd95e..0000000000 --- a/include/wx/msw/dcscreen.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: wxScreenDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_ -#define _WX_DCSCREEN_H_ - -#ifdef __GNUG__ -#pragma interface "dcscreen.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxScreenDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - - public: - // Create a DC representing the whole screen - wxScreenDC(void); - ~wxScreenDC(void); - - // Compatibility with X's requirements for - // drawing on top of all windows - static bool StartDrawingOnTop(wxWindow* WXUNUSED(window)) { return TRUE; } - static bool StartDrawingOnTop(wxRect* WXUNUSED(rect) = NULL) { return TRUE; } - static bool EndDrawingOnTop(void) { return TRUE; } -}; - -#endif - // _WX_DCSCREEN_H_ - diff --git a/include/wx/msw/dde.h b/include/wx/msw/dde.h deleted file mode 100644 index ac926b679f..0000000000 --- a/include/wx/msw/dde.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dde.h -// Purpose: DDE class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DDE_H_ -#define _WX_DDE_H_ - -#ifdef __GNUG__ -#pragma interface "dde.h" -#endif - -#include "wx/ipcbase.h" - -/* - * Mini-DDE implementation - - Most transactions involve a topic name and an item name (choose these - as befits your application). - - A client can: - - - ask the server to execute commands (data) associated with a topic - - request data from server by topic and item - - poke data into the server - - ask the server to start an advice loop on topic/item - - ask the server to stop an advice loop - - A server can: - - - respond to execute, request, poke and advice start/stop - - send advise data to client - - Note that this limits the server in the ways it can send data to the - client, i.e. it can't send unsolicited information. - * - */ - -class WXDLLEXPORT wxDDEServer; -class WXDLLEXPORT wxDDEClient; - -class WXDLLEXPORT wxDDEConnection: public wxConnectionBase -{ - DECLARE_DYNAMIC_CLASS(wxDDEConnection) -public: - wxDDEConnection(char *buffer, int size); - wxDDEConnection(void); - ~wxDDEConnection(void); - - // Calls that CLIENT can make - virtual bool Execute(wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); - virtual bool Execute(const wxString& str) { return Execute(WXSTRINGCAST str, -1, wxIPC_TEXT); } - virtual char *Request(const wxString& item, int *size = NULL, wxIPCFormat format = wxIPC_TEXT); - virtual bool Poke(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); - virtual bool StartAdvise(const wxString& item); - virtual bool StopAdvise(const wxString& item); - - // Calls that SERVER can make - virtual bool Advise(const wxString& item, wxChar *data, int size = -1, wxIPCFormat format = wxIPC_TEXT); - - // Calls that both can make - virtual bool Disconnect(void); - - // Callbacks to SERVER - override at will - virtual bool OnExecute(const wxString& topic, char *data, int size, wxIPCFormat format) { return FALSE; }; - virtual char *OnRequest(const wxString& topic, const wxString& item, int *size, wxIPCFormat format) { return NULL; }; - virtual bool OnPoke(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) { return FALSE; }; - virtual bool OnStartAdvise(const wxString& topic, const wxString& item) { return FALSE; }; - virtual bool OnStopAdvise(const wxString& topic, const wxString& item) { return FALSE; }; - - // Callbacks to CLIENT - override at will - virtual bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) { return FALSE; }; - - // Callbacks to BOTH - - // Default behaviour is to delete connection and return TRUE - virtual bool OnDisconnect(void); - - public: - char* m_bufPtr; - wxString m_topicName; - int m_bufSize; - wxDDEServer* m_server; - wxDDEClient* m_client; - - WXHCONV m_hConv; - wxChar* m_sendingData; - int m_dataSize; - wxIPCFormat m_dataType; -}; - -class WXDLLEXPORT wxDDEServer: public wxServerBase -{ - DECLARE_DYNAMIC_CLASS(wxDDEServer) - public: - - wxDDEServer(void); - ~wxDDEServer(void); - bool Create(const wxString& server_name); // Returns FALSE if can't create server (e.g. port - // number is already in use) - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic); - - //////////////////////////////////////////////////////////// - // Implementation - - // Find/delete wxDDEConnection corresponding to the HCONV - wxDDEConnection *FindConnection(WXHCONV conv); - bool DeleteConnection(WXHCONV conv); - inline wxString& GetServiceName(void) const { return (wxString&) m_serviceName; } - inline wxList& GetConnections(void) const { return (wxList&) m_connections; } - - protected: - int m_lastError; - wxString m_serviceName; - wxList m_connections; -}; - -class WXDLLEXPORT wxDDEClient: public wxClientBase -{ - DECLARE_DYNAMIC_CLASS(wxDDEClient) - public: - wxDDEClient(void); - ~wxDDEClient(void); - bool ValidHost(const wxString& host); - virtual wxConnectionBase *MakeConnection(const wxString& host, const wxString& server, const wxString& topic); - // Call this to make a connection. - // Returns NULL if cannot. - virtual wxConnectionBase *OnMakeConnection(void); // Tailor this to return own connection. - - //////////////////////////////////////////////////////////// - // Implementation - - // Find/delete wxDDEConnection corresponding to the HCONV - wxDDEConnection *FindConnection(WXHCONV conv); - bool DeleteConnection(WXHCONV conv); - inline wxList& GetConnections(void) const { return (wxList&) m_connections; } - - protected: - int m_lastError; - wxList m_connections; -}; - -void WXDLLEXPORT wxDDEInitialize(); -void WXDLLEXPORT wxDDECleanUp(); - -#endif - // _WX_DDE_H_ diff --git a/include/wx/msw/dialog.h b/include/wx/msw/dialog.h deleted file mode 100644 index 74a07e5685..0000000000 --- a/include/wx/msw/dialog.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: wxDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#ifdef __GNUG__ - #pragma interface "dialog.h" -#endif - -#include "wx/panel.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxDialogNameStr; - -// Dialog boxes -class WXDLLEXPORT wxDialog : public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxDialog) - -public: - wxDialog(); - - // Constructor with a modal flag, but no window id - the old convention - wxDialog(wxWindow *parent, - const wxString& title, bool modal, - int x = -1, int y= -1, int width = 500, int height = 500, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - long modalStyle = modal ? wxDIALOG_MODAL : wxDIALOG_MODELESS ; - Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), - style | modalStyle, name); - } - - // Constructor with no modal flag - the new convention. - wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - ~wxDialog(); - - void SetReturnCode(int returnCode) { m_returnCode = returnCode; } - int GetReturnCode() const { return m_returnCode; } - - virtual bool Destroy(); - - virtual void DoSetClientSize(int width, int height); - - virtual void GetPosition(int *x, int *y) const; - - bool Show(bool show); - bool IsShown() const; - void Iconize(bool iconize); - -#if WXWIN_COMPATIBILITY - bool Iconized() const { return IsIconized(); }; -#endif - - virtual bool IsIconized() const; - void Fit(); - - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void OnSize(wxSizeEvent& event); - bool OnClose(); - void OnCharHook(wxKeyEvent& event); - void OnPaint(wxPaintEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - void SetModal(bool flag); - - virtual void Centre(int direction = wxBOTH); - virtual bool IsModal() const - { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - // For now, same as Show(TRUE) but returns return code - virtual int ShowModal(); - virtual void EndModal(int retCode); - - // Standard buttons - void OnOK(wxCommandEvent& event); - void OnApply(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // implementation - // -------------- - - long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - bool IsModalShowing() const { return m_modalShowing; } - - // tooltip management -#if wxUSE_TOOLTIPS - WXHWND GetToolTipCtrl() const { return m_hwndToolTip; } - void SetToolTipCtrl(WXHWND hwndTT) { m_hwndToolTip = hwndTT; } -#endif // tooltips - -protected: - bool m_modalShowing; - WXHWND m_hwndOldFocus; // the window which had focus before we were shown - -private: -#if wxUSE_TOOLTIPS - WXHWND m_hwndToolTip; -#endif // tooltips - - int m_returnCode; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_DIALOG_H_ diff --git a/include/wx/msw/dib.h b/include/wx/msw/dib.h deleted file mode 100644 index 06d8d8aa60..0000000000 --- a/include/wx/msw/dib.h +++ /dev/null @@ -1,26 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dib.h -// Purpose: Routines for loading and saving DIBs -// Author: Various -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// Save (device dependent) wxBitmap as a DIB -bool wxSaveBitmap(wxChar *filename, wxBitmap *bitmap, wxColourMap *colourmap = NULL); - -// Load device independent bitmap into device dependent bitmap -wxBitmap *wxLoadBitmap(wxChar *filename, wxColourMap **colourmap = NULL); - -// Load into existing bitmap; -bool wxLoadIntoBitmap(wxChar *filename, wxBitmap *bitmap, wxColourMap **pal = NULL); - -HANDLE BitmapToDIB (HBITMAP hBitmap, HPALETTE hPal); -BOOL ReadDIB(LPTSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette); -HANDLE ReadDIB2(LPTSTR lpFileName); -LPSTR FindDIBBits (LPTSTR lpbi); -HPALETTE MakeDIBPalette(LPBITMAPINFOHEADER lpInfo); - diff --git a/include/wx/msw/dibutils.h b/include/wx/msw/dibutils.h deleted file mode 100644 index 75970604f8..0000000000 --- a/include/wx/msw/dibutils.h +++ /dev/null @@ -1,132 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dibutils.h -// Purpose: Utilities for DIBs -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Microsoft, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/*************************************************************************** - - (C) Copyright 1994 Microsoft Corp. All rights reserved. - - You have a royalty-free right to use, modify, reproduce and - distribute the Sample Files (and/or any modified version) in - any way you find useful, provided that you agree that - Microsoft has no warranty obligations or liability for any - Sample Application Files which are modified. - - **************************************************************************/ - -/*************************************************************************** - Functions for handling Device Independent Bitmaps and clearing the - System Palette. - **************************************************************************/ - -#ifndef SAMPLES_UTILS_H -#define SAMPLES_UTILS_H - -#ifdef __GNUG__ -#pragma interface "dibutils.h" -#endif - -typedef LPBITMAPINFOHEADER PDIB; -typedef HANDLE HDIB; - -/*************************************************************************** - External function declarations - **************************************************************************/ - -void ClearSystemPalette(void); -PDIB DibOpenFile(LPSTR szFile); -int DibWriteFile(LPSTR szFile, LPBITMAPINFOHEADER lpbi); -BOOL DibSetUsage(PDIB pdib, HPALETTE hpal,UINT wUsage); -PDIB DibCreate(int bits, int dx, int dy); -BOOL DibMapToPalette(PDIB pdib, HPALETTE hpal); -HPALETTE MakePalette(const BITMAPINFO FAR* Info, UINT flags); - -/**************************************************************************** - Internal function declarations - ***************************************************************************/ - -PDIB DibReadBitmapInfo(HFILE fh); - -/**************************************************************************** - DIB macros. - ***************************************************************************/ - -#ifdef WIN32 - #define HandleFromDib(lpbi) GlobalHandle(lpbi) -#else - #define HandleFromDib(lpbi) (HANDLE)GlobalHandle(SELECTOROF(lpbi)) -#endif - -#define DibFromHandle(h) (PDIB)GlobalLock(h) - -#define DibFree(pdib) GlobalFreePtr(pdib) - -#define WIDTHBYTES(i) ((unsigned)((i+31)&(~31))/8) /* ULONG aligned ! */ - -#define DibWidth(lpbi) (UINT)(((LPBITMAPINFOHEADER)(lpbi))->biWidth) -#define DibHeight(lpbi) (UINT)(((LPBITMAPINFOHEADER)(lpbi))->biHeight) -#define DibBitCount(lpbi) (UINT)(((LPBITMAPINFOHEADER)(lpbi))->biBitCount) -#define DibCompression(lpbi) (DWORD)(((LPBITMAPINFOHEADER)(lpbi))->biCompression) - -#define DibWidthBytesN(lpbi, n) (UINT)WIDTHBYTES((UINT)(lpbi)->biWidth * (UINT)(n)) -#define DibWidthBytes(lpbi) DibWidthBytesN(lpbi, (lpbi)->biBitCount) - -#define DibSizeImage(lpbi) ((lpbi)->biSizeImage == 0 \ - ? ((DWORD)(UINT)DibWidthBytes(lpbi) * (DWORD)(UINT)(lpbi)->biHeight) \ - : (lpbi)->biSizeImage) - -#define DibSize(lpbi) ((lpbi)->biSize + (lpbi)->biSizeImage + (int)(lpbi)->biClrUsed * sizeof(RGBQUAD)) -#define DibPaletteSize(lpbi) (DibNumColors(lpbi) * sizeof(RGBQUAD)) - -#define DibFlipY(lpbi, y) ((int)(lpbi)->biHeight-1-(y)) - -//HACK for NT BI_BITFIELDS DIBs -#ifdef WIN32 - #define DibPtr(lpbi) ((lpbi)->biCompression == BI_BITFIELDS \ - ? (LPVOID)(DibColors(lpbi) + 3) \ - : (LPVOID)(DibColors(lpbi) + (UINT)(lpbi)->biClrUsed)) -#else - #define DibPtr(lpbi) (LPVOID)(DibColors(lpbi) + (UINT)(lpbi)->biClrUsed) -#endif - -#define DibColors(lpbi) ((RGBQUAD FAR *)((LPBYTE)(lpbi) + (int)(lpbi)->biSize)) - -#define DibNumColors(lpbi) ((lpbi)->biClrUsed == 0 && (lpbi)->biBitCount <= 8 \ - ? (int)(1 << (int)(lpbi)->biBitCount) \ - : (int)(lpbi)->biClrUsed) - -#define DibXYN(lpbi,pb,x,y,n) (LPVOID)( \ - (BYTE _huge *)(pb) + \ - (UINT)((UINT)(x) * (UINT)(n) / 8u) + \ - ((DWORD)DibWidthBytesN(lpbi,n) * (DWORD)(UINT)(y))) - -#define DibXY(lpbi,x,y) DibXYN(lpbi,DibPtr(lpbi),x,y,(lpbi)->biBitCount) - -#define FixBitmapInfo(lpbi) if ((lpbi)->biSizeImage == 0) \ - (lpbi)->biSizeImage = DibSizeImage(lpbi); \ - if ((lpbi)->biClrUsed == 0) \ - (lpbi)->biClrUsed = DibNumColors(lpbi); - -// if ((lpbi)->biCompression == BI_BITFIELDS && (lpbi)->biClrUsed == 0) -// ; // (lpbi)->biClrUsed = 3; - -#define DibInfo(pDIB) ((BITMAPINFO FAR *)(pDIB)) - -/***************************************************************************/ - -#ifndef BI_BITFIELDS - #define BI_BITFIELDS 3 -#endif - -#ifndef HALFTONE - #define HALFTONE COLORONCOLOR -#endif - -#endif diff --git a/include/wx/msw/dirdlg.h b/include/wx/msw/dirdlg.h deleted file mode 100644 index 71886f18c5..0000000000 --- a/include/wx/msw/dirdlg.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.h -// Purpose: wxDirDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -#ifdef __GNUG__ -#pragma interface "dirdlg.h" -#endif - -#include "wx/dialog.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr; - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxDirDialog) -public: - wxDirDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = "", - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetStyle(long style) { m_dialogStyle = style; } - - inline wxString GetMessage(void) const { return m_message; } - inline wxString GetPath(void) const { return m_path; } - inline long GetStyle(void) const { return m_dialogStyle; } - - int ShowModal(void); - -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_path; -}; - -#endif - // _WX_DIRDLG_H_ diff --git a/include/wx/msw/disable.bmp b/include/wx/msw/disable.bmp deleted file mode 100644 index 8859e1b9ae0aae4441e0c2322ee0a5e16f855f36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmZ?rEn{K;gEAng0mKSW%*en3WZ?r13=BZT(9i&(fFzK~aNxiJAPtiE4@M0C|ASaS d41^#dAW?t@*wFx*bOD+)`=~r>2n@CG0RVBeginDrag(wxPoint(0, 0), this); - m_dragImage->Move(pt, this); - m_dragImage->Show(this); - ... - } - - In your OnMouseMove function, hide the image, do any display updating required, - then move and show the image again: - - void MyTreeCtrl::OnMouseMove(wxMouseEvent& event) - { - if (m_dragMode == MY_TREE_DRAG_NONE) - { - event.Skip(); - return; - } - - // Prevent screen corruption by hiding the image - if (m_dragImage) - m_dragImage->Hide(this); - - // Do some updating of the window, such as highlighting the drop target - ... - -#ifdef __WXMSW__ - if (updateWindow) - ::UpdateWindow((HWND) GetHWND()); -#endif - - // Move and show the image again - m_dragImage->Move(event.GetPosition(), this); - m_dragImage->Show(this); - } - - Eventually we end the drag and delete the drag image. - - void MyTreeCtrl::OnLeftUp(wxMouseEvent& event) - { - ... - - // End the drag and delete the drag image - if (m_dragImage) - { - m_dragImage->EndDrag(this); - delete m_dragImage; - m_dragImage = NULL; - } - ReleaseMouse(); - } -*/ - -/* - Notes for Unix version: - Can we simply use cursors instead, creating a cursor dynamically, setting it into the window - in BeginDrag, and restoring the old cursor in EndDrag? - For a really bog-standard implementation, we could simply use a normal dragging cursor - and ignore the image. -*/ - -/* - * wxDragImage - */ - -class WXDLLEXPORT wxDragImage: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxDragImage) -public: - - // Ctors & dtor - //////////////////////////////////////////////////////////////////////////// - - wxDragImage(); - wxDragImage(const wxBitmap& image, const wxCursor& cursor = wxNullCursor, const wxPoint& hotspot = wxPoint(0, 0)) - { - m_hImageList = 0; - Create(image, cursor); - } - wxDragImage(const wxIcon& image, const wxCursor& cursor = wxNullCursor, const wxPoint& hotspot = wxPoint(0, 0)) - { - m_hImageList = 0; - Create(image, cursor); - } - wxDragImage(const wxString& str, const wxCursor& cursor = wxNullCursor, const wxPoint& hotspot = wxPoint(0, 0)) - { - m_hImageList = 0; - Create(str, cursor); - } - wxDragImage(const wxTreeCtrl& treeCtrl, wxTreeItemId& id) - { - m_hImageList = 0; - Create(treeCtrl, id); - } - wxDragImage(const wxListCtrl& listCtrl, long id) - { - m_hImageList = 0; - Create(listCtrl, id); - } - ~wxDragImage(); - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Create a drag image from a bitmap and optional cursor - bool Create(const wxBitmap& image, const wxCursor& cursor = wxNullCursor, const wxPoint& hotspot = wxPoint(0, 0)); - - // Create a drag image from an icon and optional cursor - bool Create(const wxIcon& image, const wxCursor& cursor = wxNullCursor, const wxPoint& hotspot = wxPoint(0, 0)); - - // Create a drag image from a string and optional cursor - bool Create(const wxString& str, const wxCursor& cursor = wxNullCursor, const wxPoint& hotspot = wxPoint(0, 0)); - - // Create a drag image for the given tree control item - bool Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id); - - // Create a drag image for the given list control item - bool Create(const wxListCtrl& listCtrl, long id); - - // Begin drag. hotspot is the location of the drag position relative to the upper-left - // corner of the image. - bool BeginDrag(const wxPoint& hotspot, wxWindow* window); - - // End drag - bool EndDrag(wxWindow* window); - - // Move the image: call from OnMouseMove. Pt is in window client coordinates if window - // is non-NULL, or in screen coordinates if NULL. - bool Move(const wxPoint& pt, wxWindow* window); - - // Show the image - bool Show(wxWindow* window); - - // Hide the image - bool Hide(wxWindow* window); - - // Implementation - //////////////////////////////////////////////////////////////////////////// - - // Returns the native image list handle - inline WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; } - -protected: - WXHIMAGELIST m_hImageList; - wxCursor m_cursor; - wxPoint m_hotspot; - wxPoint m_position; -}; - -#endif - // _WX_DRAGIMAG_H_ diff --git a/include/wx/msw/filedlg.h b/include/wx/msw/filedlg.h deleted file mode 100644 index 65a4badb0c..0000000000 --- a/include/wx/msw/filedlg.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: wxFileDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -#ifdef __GNUG__ -#pragma interface "filedlg.h" -#endif - -#include "wx/dialog.h" - -/* - * File selector - */ - -WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxFileSelectorDefaultWildcardStr; - -class WXDLLEXPORT wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) - -public: - wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = wxEmptyString, const wxString& defaultFile = wxEmptyString, const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetDirectory(const wxString& dir) { m_dir = dir; } - inline void SetFilename(const wxString& name) { m_fileName = name; } - inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - inline void SetStyle(long style) { m_dialogStyle = style; } - inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - inline wxString GetMessage(void) const { return m_message; } - inline wxString GetPath(void) const { return m_path; } - inline wxString GetDirectory(void) const { return m_dir; } - inline wxString GetFilename(void) const { return m_fileName; } - inline wxString GetWildcard(void) const { return m_wildCard; } - inline long GetStyle(void) const { return m_dialogStyle; } - inline int GetFilterIndex(void) const { return m_filterIndex ; } - - int ShowModal(void); - -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; -}; - -#define wxOPEN 0x0001 -#define wxSAVE 0x0002 -#define wxOVERWRITE_PROMPT 0x0004 -#define wxHIDE_READONLY 0x0008 -#define wxFILE_MUST_EXIST 0x0010 - -// File selector - backward compatibility -WXDLLEXPORT wxString -wxFileSelector(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - const wxChar *default_extension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString -wxFileSelectorEx(const wxChar *message = wxFileSelectorPromptStr, - const wxChar *default_path = NULL, - const wxChar *default_filename = NULL, - int *indexDefaultExtension = NULL, - const wxChar *wildcard = wxFileSelectorDefaultWildcardStr, - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -// Ask for filename to load -WXDLLEXPORT wxString -wxLoadFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *)NULL, - wxWindow *parent = (wxWindow *) NULL); - -// Ask for filename to save -WXDLLEXPORT wxString -wxSaveFileSelector(const wxChar *what, - const wxChar *extension, - const wxChar *default_name = (const wxChar *) NULL, - wxWindow *parent = (wxWindow *) NULL); - -#endif - // _WX_FILEDLG_H_ diff --git a/include/wx/msw/font.h b/include/wx/msw/font.h deleted file mode 100644 index a7a6609d2f..0000000000 --- a/include/wx/msw/font.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: wxFont class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -#ifdef __GNUG__ -#pragma interface "font.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxFont; - -class WXDLLEXPORT wxFontRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxFont; -public: - wxFontRefData(void); - wxFontRefData(const wxFontRefData& data); - ~wxFontRefData(void); -protected: - bool m_temporary; // If TRUE, the pointer to the actual font - // is temporary and SHOULD NOT BE DELETED by - // destructor - int m_pointSize; - int m_family; - int m_fontId; - int m_style; - int m_weight; - bool m_underlined; - wxString m_faceName; - WXHFONT m_hFont; - -}; - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// Font -class WXDLLEXPORT wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) -public: - wxFont(void); - wxFont(int PointSize, int Family, int Style, int Weight, bool underlined = FALSE, const wxString& Face = wxEmptyString); - inline wxFont(const wxFont& font) { Ref(font); } - - ~wxFont(void); - - bool Create(int PointSize, int Family, int Style, int Weight, bool underlined = FALSE, const wxString& Face = wxEmptyString); - - // Internal - virtual bool RealizeResource(void); - virtual WXHANDLE GetResourceHandle(void) ; - virtual bool FreeResource(bool force = FALSE); -/* - virtual bool UseResource(void); - virtual bool ReleaseResource(void); -*/ - - virtual bool IsFree() const; - virtual bool Ok(void) const { return (m_refData != NULL) ; } - - inline int GetPointSize(void) const { return M_FONTDATA->m_pointSize; } - inline int GetFamily(void) const { return M_FONTDATA->m_family; } - inline int GetFontId(void) const { return M_FONTDATA->m_fontId; } /* New font system */ - inline int GetStyle(void) const { return M_FONTDATA->m_style; } - inline int GetWeight(void) const { return M_FONTDATA->m_weight; } - wxString GetFamilyString(void) const ; - wxString GetFaceName(void) const ; - wxString GetStyleString(void) const ; - wxString GetWeightString(void) const ; - inline bool GetUnderlined(void) const { return M_FONTDATA->m_underlined; } - - void SetPointSize(int pointSize); - void SetFamily(int family); - void SetStyle(int style); - void SetWeight(int weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - - wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; } - bool operator == (const wxFont& font) const { return m_refData == font.m_refData; } - bool operator != (const wxFont& font) const { return m_refData != font.m_refData; } - -protected: - void Unshare(); -}; - -#endif - // _WX_FONT_H_ diff --git a/include/wx/msw/fontdlg.h b/include/wx/msw/fontdlg.h deleted file mode 100644 index 43d5d315be..0000000000 --- a/include/wx/msw/fontdlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.h -// Purpose: wxFontDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDLG_H_ -#define _WX_FONTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "fontdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * FONT DIALOG - */ - -class WXDLLEXPORT wxFontDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFontDialog) - -public: - wxFontDialog(void); - wxFontDialog(wxWindow *parent, wxFontData *data = NULL); - - bool Create(wxWindow *parent, wxFontData *data = NULL); - - int ShowModal(void); - wxFontData& GetFontData(void) { return m_fontData; } - -protected: - wxWindow *m_dialogParent; - wxFontData m_fontData; -}; - -#endif - // _WX_FONTDLG_H_ - diff --git a/include/wx/msw/frame.h b/include/wx/msw/frame.h deleted file mode 100644 index c54d5f66f8..0000000000 --- a/include/wx/msw/frame.h +++ /dev/null @@ -1,211 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: wxFrame class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#ifdef __GNUG__ - #pragma interface "frame.h" -#endif - -#include "wx/window.h" -#include "wx/toolbar.h" -#include "wx/msw/accel.h" -#include "wx/icon.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStatusLineNameStr; - -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxStatusBar; - -class WXDLLEXPORT wxFrame : public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame(); - wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual bool Destroy(); - - virtual void ClientToScreen(int *x, int *y) const; - virtual void ScreenToClient(int *x, int *y) const; - - void OnSize(wxSizeEvent& event); - void OnMenuHighlight(wxMenuEvent& event); - void OnActivate(wxActivateEvent& event); - void OnIdle(wxIdleEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - bool Show(bool show); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - virtual wxMenuBar *GetMenuBar() const; - - // Call this to simulate a menu command - bool Command(int id) { return ProcessCommand(id); } - - // process menu command: returns TRUE if processed - bool ProcessCommand(int id); - - // make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal = TRUE); - - // Set icon - virtual void SetIcon(const wxIcon& icon); - - // Toolbar - virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER | wxTB_HORIZONTAL | wxTB_FLAT, - wxWindowID id = -1, - const wxString& name = wxToolBarNameStr); - - virtual wxToolBar *OnCreateToolBar(long style, wxWindowID id, const wxString& name); - - virtual void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } - virtual wxToolBar *GetToolBar() const { return m_frameToolBar; } - - virtual void PositionToolBar(); - - // Status bar - virtual wxStatusBar* CreateStatusBar(int number = 1, - long style = wxST_SIZEGRIP, - wxWindowID id = 0, - const wxString& name = wxStatusLineNameStr); - - wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } - void SetStatusBar(wxStatusBar *statusBar) { m_frameStatusBar = statusBar; } - - virtual void PositionStatusBar(); - virtual wxStatusBar *OnCreateStatusBar(int number, - long style, - wxWindowID id, - const wxString& name); - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // Hint to tell framework which status bar to use - // TODO: should this go into a wxFrameworkSettings class perhaps? - static void UseNativeStatusBar(bool useNative) { m_useNativeStatusBar = useNative; }; - static bool UsesNativeStatusBar() { return m_useNativeStatusBar; }; - - // Iconize - virtual void Iconize(bool iconize); - - virtual bool IsIconized() const; - - // Is it maximized? - virtual bool IsMaximized() const; - - // Compatibility - bool Iconized() const { return IsIconized(); } - - virtual void Maximize(bool maximize); - // virtual bool LoadAccelerators(const wxString& table); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Query app for menu item updates (called from OnIdle) - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin); - - WXHMENU GetWinMenu() const { return m_hMenu; } - - // Returns the origin of client area (may be different from (0,0) if the - // frame has a toolbar) - virtual wxPoint GetClientAreaOrigin() const; - - // Implementation only from here - // event handlers - bool HandlePaint(); - bool HandleSize(int x, int y, WXUINT flag); - bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); - bool HandleMenuSelect(WXWORD nItem, WXWORD nFlags, WXHMENU hMenu); - - bool MSWCreate(int id, wxWindow *parent, const char *wclass, - wxWindow *wx_win, const char *title, - int x, int y, int width, int height, long style); - - // tooltip management -#if wxUSE_TOOLTIPS - WXHWND GetToolTipCtrl() const { return m_hwndToolTip; } - void SetToolTipCtrl(WXHWND hwndTT) { m_hwndToolTip = hwndTT; } -#endif // tooltips - -protected: - // override base class virtuals - virtual void DoGetClientSize(int *width, int *height) const; - virtual void DoGetSize(int *width, int *height) const; - virtual void DoGetPosition(int *x, int *y) const; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - - // a plug in for MDI frame classes which need to do something special when - // the menubar is set - virtual void InternalSetMenuBar(); - - // propagate our state change to all child frames - void IconizeChildFrames(bool bIconize); - - // we add menu bar accel processing - bool MSWTranslateMessage(WXMSG* pMsg); - - // window proc for the frames - long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - wxMenuBar * m_frameMenuBar; - wxStatusBar * m_frameStatusBar; - wxIcon m_icon; - bool m_iconized; - WXHICON m_defaultIcon; - wxToolBar * m_frameToolBar; - - static bool m_useNativeStatusBar; - -private: -#if wxUSE_TOOLTIPS - WXHWND m_hwndToolTip; -#endif // tooltips - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_FRAME_H_ diff --git a/include/wx/msw/gauge.h b/include/wx/msw/gauge.h deleted file mode 100644 index 3b5569a769..0000000000 --- a/include/wx/msw/gauge.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: wxGauge header, includes gauge class headers as appropriate -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_ -#define _WX_GAUGE_H_ - -#ifdef __GNUG__ -#pragma interface "gauge.h" -#endif - -#ifdef __WIN95__ -#include "wx/msw/gauge95.h" -#define wxGauge wxGauge95 -#define sm_classwxGauge sm_classwxGauge95 -#else -#include "wx/msw/gaugemsw.h" -#define wxGauge wxGaugeMSW -#define sm_classwxGauge sm_classwxGaugeMSW -#endif - -#endif - // _WX_GAUGE_H_ diff --git a/include/wx/msw/gauge95.h b/include/wx/msw/gauge95.h deleted file mode 100644 index 0bab3e7163..0000000000 --- a/include/wx/msw/gauge95.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge95.h -// Purpose: wxGauge95 class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _GAUGE95_H_ -#define _GAUGE95_H_ - -#ifdef __GNUG__ -#pragma interface "gauge95.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr; - -// Group box -class WXDLLEXPORT wxGauge95 : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge95) - -public: - wxGauge95(void) { m_rangeMax = 0; m_gaugePos = 0; } - - wxGauge95(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - void SetShadowWidth(int w); - void SetBezelFace(int w); - void SetRange(int r); - void SetValue(int pos); - - int GetShadowWidth(void) const ; - int GetBezelFace(void) const ; - int GetRange(void) const ; - int GetValue(void) const ; - - bool SetForegroundColour(const wxColour& col); - bool SetBackgroundColour(const wxColour& col); - - // Backward compatibility -#if WXWIN_COMPATIBILITY - void SetButtonColour(const wxColour& col) { SetForegroundColour(col); } -#endif - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ; - -protected: - int m_rangeMax; - int m_gaugePos; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _GAUGEMSW_H_ diff --git a/include/wx/msw/gaugemsw.h b/include/wx/msw/gaugemsw.h deleted file mode 100644 index 60e2fc1702..0000000000 --- a/include/wx/msw/gaugemsw.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gaugemsw.h -// Purpose: wxGauge class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _GAUGEMSW_H_ -#define _GAUGEMSW_H_ - -#ifdef __GNUG__ -#pragma interface "gaugemsw.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxGaugeNameStr; - -// Group box -class WXDLLEXPORT wxGaugeMSW: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGaugeMSW) - -public: - wxGaugeMSW(void) { m_rangeMax = 0; m_gaugePos = 0; } - - wxGaugeMSW(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - void SetShadowWidth(int w); - void SetBezelFace(int w); - void SetRange(int r); - void SetValue(int pos); - - int GetShadowWidth(void) const ; - int GetBezelFace(void) const ; - int GetRange(void) const ; - int GetValue(void) const ; - - bool SetForegroundColour(const wxColour& col); - bool SetBackgroundColour(const wxColour& col); - - // Backward compatibility -#if WXWIN_COMPATIBILITY - void SetButtonColour(const wxColour& col) { SetForegroundColour(col); } -#endif - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ; - -protected: - int m_rangeMax; - int m_gaugePos; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _GAUGEMSW_H_ diff --git a/include/wx/msw/gdiobj.h b/include/wx/msw/gdiobj.h deleted file mode 100644 index 8f79cd0133..0000000000 --- a/include/wx/msw/gdiobj.h +++ /dev/null @@ -1,67 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: wxGDIObject class: base class for other GDI classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDIOBJ_H_ -#define _WX_GDIOBJ_H_ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface "gdiobj.h" -#endif - -// wxGDIRefData is the reference-counted data part of a GDI object. -// It contains another counter, m_usageCount, which counts the number -// of times this object has been used; e.g. in SetFont, the count -// is incremented. This is different from reference counting, -// where only the constructors, destructors and (un)clone operations -// affect the reference count. -// THIS IS NOW BEING REMOVED AS REDUNDANT AND ERROR-PRONE - -class WXDLLEXPORT wxGDIRefData: public wxObjectRefData { -public: - inline wxGDIRefData(void) - { - } -}; - -#define M_GDIDATA ((wxGDIRefData *)m_refData) - -class WXDLLEXPORT wxGDIObject: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - public: - inline wxGDIObject(void) { m_visible = FALSE; }; - inline ~wxGDIObject(void) {}; - - // Creates the resource - virtual bool RealizeResource(void) { return FALSE; }; - - // Frees the resource - virtual bool FreeResource(bool WXUNUSED(force) = FALSE) { return FALSE; }; - - virtual bool IsFree(void) const { return FALSE; }; - - inline bool IsNull(void) const { return (m_refData == 0); } - - // Returns handle. - virtual WXHANDLE GetResourceHandle(void) { return 0; } - - virtual bool GetVisible(void) { return m_visible; } - virtual void SetVisible(bool v) { m_visible = v; } - -protected: - bool m_visible; // Can a pointer to this object be safely taken? - // - only if created within FindOrCreate... -}; - -#endif - // _WX_GDIOBJ_H_ diff --git a/include/wx/msw/hand.cur b/include/wx/msw/hand.cur deleted file mode 100644 index ce349aa3324a9dee883052b92064b2d63300ede7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmaLRu?@m75QX92Ae4e49YUfYB_$h>Q5b+7V3Vw3i9tw5o01~R%X5enBm!rB_W3ON z4i*H80@kcJ2G{@xbBWS|*AV0JzD&EM>GCVfYDn@1_AfXkEnH14;bE2Y-DPx!E#F+4 n3(xRBnp{fiOo~hCmIO~8)S0^vy3)0n_&rwA-QRwC&bR3S<|=*2 diff --git a/include/wx/msw/heart.cur b/include/wx/msw/heart.cur deleted file mode 100644 index 53811dcc55b75b2a6d25cc0915f81e65ef55a465..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmc)Dy$!=47=+=MP|$@gEiO}L17|Zc8lx}*r3>WCM@SUO3*^wlzjScHu`Cd|@^Eki z?#8Zo8fW93&oU3cSrW#wNyo5CJxP0%+7P7brQ)PK*mu~DY3-19t8Wl0_%gX{)hF}K T5vtFzg_3$|R``u=|J45i+#Y=v diff --git a/include/wx/msw/helpwin.h b/include/wx/msw/helpwin.h deleted file mode 100644 index 308439b8b3..0000000000 --- a/include/wx/msw/helpwin.h +++ /dev/null @@ -1,54 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpwin.h -// Purpose: Help system: WinHelp implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPWIN_H_ -#define _WX_HELPWIN_H_ - -#ifdef __GNUG__ -#pragma interface "helpwin.h" -#endif - -#include "wx/wx.h" - -#if wxUSE_HELP - -#include "wx/helpbase.h" - -class WXDLLEXPORT wxWinHelpController: public wxHelpControllerBase -{ - DECLARE_CLASS(wxWinHelpController) - - public: - wxWinHelpController(void); - ~wxWinHelpController(void); - - // Must call this to set the filename and server name - virtual bool Initialize(const wxString& file); - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = ""); - virtual bool DisplayContents(void); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplayBlock(long blockNo); - virtual bool KeywordSearch(const wxString& k); - - virtual bool Quit(void); - virtual void OnQuit(void); - - inline wxString GetHelpFile(void) const { return m_helpFile; } - -protected: - wxString m_helpFile; -}; - -#endif // wxUSE_HELP -#endif - // _WX_HELPWIN_H_ diff --git a/include/wx/msw/icon.h b/include/wx/msw/icon.h deleted file mode 100644 index e331678228..0000000000 --- a/include/wx/msw/icon.h +++ /dev/null @@ -1,112 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: wxIcon class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -#ifdef __GNUG__ - #pragma interface "icon.h" -#endif - -#include "wx/bitmap.h" - -// --------------------------------------------------------------------------- -// icon data -// --------------------------------------------------------------------------- -class WXDLLEXPORT wxIconRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; - -public: - wxIconRefData(); - ~wxIconRefData(); - -public: - WXHICON m_hIcon; -}; - -#define M_ICONDATA ((wxIconRefData *)m_refData) -#define M_ICONHANDLERDATA ((wxIconRefData *)bitmap->GetRefData()) - -// --------------------------------------------------------------------------- -// Icon -// --------------------------------------------------------------------------- -class WXDLLEXPORT wxIcon : public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - wxIcon(); - - // Copy constructors - wxIcon(const wxIcon& icon) { Ref(icon); } - - wxIcon(const char bits[], int width, int height); - wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - ~wxIcon(); - - bool LoadFile(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - - wxIcon& operator = (const wxIcon& icon) - { if (*this == icon) return (*this); Ref(icon); return *this; } - bool operator == (const wxIcon& icon) const - { return m_refData == icon.m_refData; } - bool operator != (const wxIcon& icon) const - { return m_refData != icon.m_refData; } - - void SetHICON(WXHICON ico); - WXHICON GetHICON() const { return (M_ICONDATA ? M_ICONDATA->m_hIcon : 0); } - - bool Ok() const { return (m_refData != NULL && M_ICONDATA->m_hIcon != 0) ; } - - bool FreeResource(bool force = FALSE); -}; - -// TODO: Put these in separate, private header - -class WXDLLEXPORT wxICOFileHandler: public wxBitmapHandler -{ -DECLARE_DYNAMIC_CLASS(wxICOFileHandler) - -public: - wxICOFileHandler() - { - m_name = "ICO icon file"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); -}; - -class WXDLLEXPORT wxICOResourceHandler: public wxBitmapHandler -{ -DECLARE_DYNAMIC_CLASS(wxICOResourceHandler) - -public: - wxICOResourceHandler() - { - m_name = "ICO resource"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); - -}; - -#endif - // _WX_ICON_H_ diff --git a/include/wx/msw/imaglist.h b/include/wx/msw/imaglist.h deleted file mode 100644 index 153cfd00d1..0000000000 --- a/include/wx/msw/imaglist.h +++ /dev/null @@ -1,226 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.h -// Purpose: wxImageList class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLIST_H_ -#define _WX_IMAGLIST_H_ - -#ifdef __GNUG__ -#pragma interface "imaglist.h" -#endif - -#include "wx/bitmap.h" - -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - * Image lists can also create and draw images used for drag and drop functionality. - * This is not yet implemented in wxImageList. We need to discuss a generic API - * for doing drag and drop and see whether it ties in with the Win95 view of it. - * See below for candidate functions and an explanation of how they might be - * used. - */ - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -// Eventually we'll make this a reference-counted wxGDIObject. For -// now, the app must take care of ownership issues. That is, the -// image lists must be explicitly deleted after the control(s) that uses them -// is (are) deleted, or when the app exits. -class WXDLLEXPORT wxImageList: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxImageList) - public: - /* - * Public interface - */ - - wxImageList(void); - - // Creates an image list. - // Specify the width and height of the images in the list, - // whether there are masks associated with them (e.g. if creating images - // from icons), and the initial size of the list. - inline wxImageList(int width, int height, bool mask = TRUE, int initialCount = 1) - { - Create(width, height, mask, initialCount); - } - ~wxImageList(void); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Returns the number of images in the image list. - int GetImageCount(void) const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Creates an image list - // width, height specify the size of the images in the list (all the same). - // mask specifies whether the images have masks or not. - // initialNumber is the initial number of images to reserve. - bool Create(int width, int height, bool mask = TRUE, int initialNumber = 1); - - // Adds a bitmap, and optionally a mask bitmap. - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Add. - int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - - // Adds a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' after calling Add. - int Add(const wxBitmap& bitmap, const wxColour& maskColour); - - // Adds a bitmap and mask from an icon. - int Add(const wxIcon& icon); - - // Replaces a bitmap, optionally passing a mask bitmap. - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Replace. - bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - -/* Not supported by Win95 - // Replacing a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap'. - bool Replace(int index, const wxBitmap& bitmap, const wxColour& maskColour); -*/ - - // Replaces a bitmap and mask from an icon. - // You can delete 'icon' after calling Replace. - bool Replace(int index, const wxIcon& icon); - - // Removes the image at the given index. - bool Remove(int index); - - // Remove all images - bool RemoveAll(void); - - // Draws the given image on a dc at the specified position. - // If 'solidBackground' is TRUE, Draw sets the image list background - // colour to the background colour of the wxDC, to speed up - // drawing by eliminating masked drawing where possible. - bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, bool solidBackground = FALSE); - - // TODO: miscellaneous functionality -/* - wxIcon *MakeIcon(int index); - bool SetOverlayImage(int index, int overlayMask); - -*/ - - // TODO: Drag-and-drop related functionality. - -#if 0 - // Creates a new drag image by combining the given image (typically a mouse cursor image) - // with the current drag image. - bool SetDragCursorImage(int index, const wxPoint& hotSpot); - - // If successful, returns a pointer to the temporary image list that is used for dragging; - // otherwise, NULL. - // dragPos: receives the current drag position. - // hotSpot: receives the offset of the drag image relative to the drag position. - static wxImageList *GetDragImageList(wxPoint& dragPos, wxPoint& hotSpot); - - // Call this function to begin dragging an image. This function creates a temporary image list - // that is used for dragging. The image combines the specified image and its mask with the - // current cursor. In response to subsequent mouse move messages, you can move the drag image - // by using the DragMove member function. To end the drag operation, you can use the EndDrag - // member function. - bool BeginDrag(int index, const wxPoint& hotSpot); - - // Ends a drag operation. - bool EndDrag(void); - - // Call this function to move the image that is being dragged during a drag-and-drop operation. - // This function is typically called in response to a mouse move message. To begin a drag - // operation, use the BeginDrag member function. - static bool DragMove(const wxPoint& point); - - // During a drag operation, locks updates to the window specified by lockWindow and displays - // the drag image at the position specified by point. - // The coordinates are relative to the window's upper left corner, so you must compensate - // for the widths of window elements, such as the border, title bar, and menu bar, when - // specifying the coordinates. - // If lockWindow is NULL, this function draws the image in the display context associated - // with the desktop window, and coordinates are relative to the upper left corner of the screen. - // This function locks all other updates to the given window during the drag operation. - // If you need to do any drawing during a drag operation, such as highlighting the target - // of a drag-and-drop operation, you can temporarily hide the dragged image by using the - // wxImageList::DragLeave function. - - // lockWindow: pointer to the window that owns the drag image. - // point: position at which to display the drag image. Coordinates are relative to the - // upper left corner of the window (not the client area). - - static bool DragEnter( wxWindow *lockWindow, const wxPoint& point ); - - // Unlocks the window specified by pWndLock and hides the drag image, allowing the - // window to be updated. - static bool DragLeave( wxWindow *lockWindow ); - - /* Here's roughly how you'd use these functions if implemented in this Win95-like way: - - 1) Starting to drag: - - wxImageList *dragImageList = new wxImageList(16, 16, TRUE); - dragImageList->Add(myDragImage); // Provide an image to combine with the current cursor - dragImageList->BeginDrag(0, wxPoint(0, 0)); - wxShowCursor(FALSE); // wxShowCursor not yet implemented in wxWin - myWindow->CaptureMouse(); - - 2) Dragging: - - // Called within mouse move event. Could also use dragImageList instead of assuming - // these are static functions. - // These two functions could possibly be combined into one, since DragEnter is - // a bit obscure. - wxImageList::DragMove(wxPoint(x, y)); // x, y are current cursor position - wxImageList::DragEnter(NULL, wxPoint(x, y)); // NULL assumes dragging across whole screen - - 3) Finishing dragging: - - dragImageList->EndDrag(); - myWindow->ReleaseMouse(); - wxShowCursor(TRUE); -*/ - -#endif - - // Implementation - //////////////////////////////////////////////////////////////////////////// - - // Returns the native image list handle - inline WXHIMAGELIST GetHIMAGELIST(void) const { return m_hImageList; } - -protected: - WXHIMAGELIST m_hImageList; -}; - -#endif - // _WX_IMAGLIST_H_ diff --git a/include/wx/msw/iniconf.h b/include/wx/msw/iniconf.h deleted file mode 100644 index a49994978f..0000000000 --- a/include/wx/msw/iniconf.h +++ /dev/null @@ -1,111 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: include/wx/msw/iniconf.h -// Purpose: INI-file based wxConfigBase implementation -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.07.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _INICONF_H -#define _INICONF_H - -// ---------------------------------------------------------------------------- -// wxIniConfig is a wxConfig implementation which uses MS Windows INI files to -// store the data. Because INI files don't really support arbitrary nesting of -// groups, we do the following: -// (1) in win.ini file we store all entries in the [vendor] section and -// the value group1/group2/key is mapped to the value group1_group2_key -// in this section, i.e. all path separators are replaced with underscore -// (2) in appname.ini file we map group1/group2/group3/key to the entry -// group2_group3_key in [group1] -// -// Of course, it might lead to indesirable results if '_' is also used in key -// names (i.e. group/key is the same as group_key) and also GetPath() result -// may be not what you would expect it to be. -// -// Another limitation: the keys and section names are never case-sensitive -// which might differ from wxFileConfig it it was compiled with -// wxCONFIG_CASE_SENSITIVE option. -// ---------------------------------------------------------------------------- - -// for this class, "local" file is the file appname.ini and the global file -// is the [vendor] subsection of win.ini (default for "vendor" is to be the -// same as appname). The file name (strAppName parameter) may, in fact, -// contain the full path to the file. If it doesn't, the file is searched for -// in the Windows directory. -class WXDLLEXPORT wxIniConfig : public wxConfigBase -{ -public: - // ctor & dtor - // if strAppName doesn't contain the extension and is not an absolute path, - // ".ini" is appended to it. if strVendor is empty, it's taken to be the - // same as strAppName. - wxIniConfig(const wxString& strAppName = wxEmptyString, const wxString& strVendor = wxEmptyString, - const wxString& localFilename = wxEmptyString, const wxString& globalFilename = wxEmptyString, long style = wxCONFIG_USE_LOCAL_FILE); - virtual ~wxIniConfig(); - - // implement inherited pure virtual functions - virtual void SetPath(const wxString& strPath); - virtual const wxString& GetPath() const; - - virtual bool GetFirstGroup(wxString& str, long& lIndex) const; - virtual bool GetNextGroup (wxString& str, long& lIndex) const; - virtual bool GetFirstEntry(wxString& str, long& lIndex) const; - virtual bool GetNextEntry (wxString& str, long& lIndex) const; - - virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const; - virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const; - - virtual bool HasGroup(const wxString& strName) const; - virtual bool HasEntry(const wxString& strName) const; - - // return TRUE if the current group is empty - bool IsEmpty() const; - - // read/write - bool Read(const wxString& key, wxString *pStr) const; - bool Read(const wxString& key, wxString *pStr, const wxString& szDefault) const; - bool Read(const wxString& key, long *plResult) const; - - // The following are necessary to satisfy the compiler - wxString Read(const wxString& key, const wxString& defVal) const - { return wxConfigBase::Read(key, defVal); } - bool Read(const wxString& key, long *pl, long defVal) const - { return wxConfigBase::Read(key, pl, defVal); } - long Read(const wxString& key, long defVal) const - { return wxConfigBase::Read(key, defVal); } - bool Read(const wxString& key, int *pi, int defVal) const - { return wxConfigBase::Read(key, pi, defVal); } - bool Read(const wxString& key, int *pi) const - { return wxConfigBase::Read(key, pi); } - bool Read(const wxString& key, double* val) const - { return wxConfigBase::Read(key, val); } - bool Read(const wxString& key, double* val, double defVal) const - { return wxConfigBase::Read(key, val, defVal); } - - bool Write(const wxString& key, const wxString& szValue); - bool Write(const wxString& key, long lValue); - - virtual bool Flush(bool bCurrentOnly = FALSE); - - virtual bool RenameEntry(const wxString& oldName, const wxString& newName); - virtual bool RenameGroup(const wxString& oldName, const wxString& newName); - - virtual bool DeleteEntry(const wxString& Key, bool bGroupIfEmptyAlso); - virtual bool DeleteGroup(const wxString& szKey); - virtual bool DeleteAll(); - -private: - // helpers - wxString GetPrivateKeyName(const wxString& szKey) const; - wxString GetKeyName(const wxString& szKey) const; - - wxString m_strLocalFilename; // name of the private INI file - wxString m_strGroup, // current group in appname.ini file - m_strPath; // the rest of the path (no trailing '_'!) -}; - -#endif //_INICONF_H diff --git a/include/wx/msw/joystick.h b/include/wx/msw/joystick.h deleted file mode 100644 index 4b15a0245e..0000000000 --- a/include/wx/msw/joystick.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" - -class WXDLLEXPORT wxJoystick: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; }; - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition(void) const; - int GetZPosition(void) const; - int GetButtonState(void) const; - int GetPOVPosition(void) const; - int GetPOVCTSPosition(void) const; - int GetRudderPosition(void) const; - int GetUPosition(void) const; - int GetVPosition(void) const; - int GetMovementThreshold(void) const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk(void) const; // Checks that the joystick is functioning - int GetNumberJoysticks(void) const ; - int GetManufacturerId(void) const ; - int GetProductId(void) const ; - wxString GetProductName(void) const ; - int GetXMin(void) const; - int GetYMin(void) const; - int GetZMin(void) const; - int GetXMax(void) const; - int GetYMax(void) const; - int GetZMax(void) const; - int GetNumberButtons(void) const; - int GetNumberAxes(void) const; - int GetMaxButtons(void) const; - int GetMaxAxes(void) const; - int GetPollingMin(void) const; - int GetPollingMax(void) const; - int GetRudderMin(void) const; - int GetRudderMax(void) const; - int GetUMin(void) const; - int GetUMax(void) const; - int GetVMin(void) const; - int GetVMax(void) const; - - bool HasRudder(void) const; - bool HasZ(void) const; - bool HasU(void) const; - bool HasV(void) const; - bool HasPOV(void) const; - bool HasPOV4Dir(void) const; - bool HasPOVCTS(void) const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(void); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/include/wx/msw/listctrl.h b/include/wx/msw/listctrl.h deleted file mode 100644 index dbde573c9f..0000000000 --- a/include/wx/msw/listctrl.h +++ /dev/null @@ -1,470 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.h -// Purpose: wxListCtrl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTCTRL_H_ -#define _WX_LISTCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "listctrl.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -/* - The wxListCtrl can show lists of items in four different modes: - wxLC_LIST: multicolumn list view, with optional small icons (icons could be - optional for some platforms). Columns are computed automatically, - i.e. you don't set columns as in wxLC_REPORT. In other words, - the list wraps, unlike a wxListBox. - wxLC_REPORT: single or multicolumn report view (with optional header) - wxLC_ICON: large icon view, with optional labels - wxLC_SMALL_ICON: small icon view, with optional labels - - You can change the style dynamically, either with SetSingleStyle or - SetWindowStyleFlag. - - Further window styles: - - wxLC_ALIGN_TOP icons align to the top (default) - wxLC_ALIGN_LEFT icons align to the left - wxLC_AUTOARRANGE icons arrange themselves - wxLC_USER_TEXT the app provides label text on demand, except for column headers - wxLC_EDIT_LABELS labels are editable: app will be notified. - wxLC_NO_HEADER no header in report mode - wxLC_NO_SORT_HEADER can't click on header - wxLC_SINGLE_SEL single selection - wxLC_SORT_ASCENDING sort ascending (must still supply a comparison callback in SortItems) - wxLC_SORT_DESCENDING sort descending (ditto) - - Items are referred to by their index (position in the list starting from zero). - - Label text is supplied via insertion/setting functions and is stored by the - control, unless the wxLC_USER_TEXT style has been specified, in which case - the app will be notified when text is required (see sample). - - Images are dealt with by (optionally) associating 3 image lists with the control. - Zero-based indexes into these image lists indicate which image is to be used for - which item. Each image in an image list can contain a mask, and can be made out - of either a bitmap, two bitmaps or an icon. See ImagList.h for more details. - - Notifications are passed via the wxWindows 2.0 event system, or using virtual - functions in wxWindows 1.66. - - See the sample wxListCtrl app for API usage. - - TODO: - - addition of further convenience functions - to avoid use of wxListItem in some functions - - state/overlay images: probably not needed. - - in Win95, you can be called back to supply other information - besides text, such as state information. This saves no memory - and is probably superfluous to requirements. - - discover why SetWindowLong doesn't properly change the - style, requiring RecreateWindow instead. - - testing of whole API, extending current sample. - - - */ - -// Mask flags to tell app/GUI what fields of wxListItem are valid -#define wxLIST_MASK_STATE 0x0001 -#define wxLIST_MASK_TEXT 0x0002 -#define wxLIST_MASK_IMAGE 0x0004 -#define wxLIST_MASK_DATA 0x0008 -#define wxLIST_SET_ITEM 0x0010 -#define wxLIST_MASK_WIDTH 0x0020 -#define wxLIST_MASK_FORMAT 0x0040 - -// State flags for indicating the state of an item -#define wxLIST_STATE_DONTCARE 0x0000 -#define wxLIST_STATE_DROPHILITED 0x0001 -#define wxLIST_STATE_FOCUSED 0x0002 -#define wxLIST_STATE_SELECTED 0x0004 -#define wxLIST_STATE_CUT 0x0008 - -// Hit test flags, used in HitTest -#define wxLIST_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxLIST_HITTEST_BELOW 0x0002 // Below the client area. -#define wxLIST_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxLIST_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxLIST_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxLIST_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxLIST_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxLIST_HITTEST_TOLEFT 0x0400 // To the left of the client area. -#define wxLIST_HITTEST_TORIGHT 0x0800 // To the right of the client area. - -#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL | wxLIST_HITTEST_ONITEMSTATEICON) - -// Flags for GetNextItem -enum { - wxLIST_NEXT_ABOVE, // Searches for an item above the specified item - wxLIST_NEXT_ALL, // Searches for subsequent item by index - wxLIST_NEXT_BELOW, // Searches for an item below the specified item - wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item - wxLIST_NEXT_RIGHT, // Searches for an item to the right of the specified item -}; - -// Alignment flags for Arrange -enum { - wxLIST_ALIGN_DEFAULT, - wxLIST_ALIGN_LEFT, - wxLIST_ALIGN_TOP, - wxLIST_ALIGN_SNAP_TO_GRID -}; - -// Column format -enum { - wxLIST_FORMAT_LEFT, - wxLIST_FORMAT_RIGHT, - wxLIST_FORMAT_CENTRE, - wxLIST_FORMAT_CENTER = wxLIST_FORMAT_CENTRE -}; - -// Autosize values for SetColumnWidth -enum { - wxLIST_AUTOSIZE = -1, - wxLIST_AUTOSIZE_USEHEADER = -2 -}; - -// Flag values for GetItemRect -enum { - wxLIST_RECT_BOUNDS, - wxLIST_RECT_ICON, - wxLIST_RECT_LABEL -}; - -// Flag values for FindItem -enum { - wxLIST_FIND_UP, - wxLIST_FIND_DOWN, - wxLIST_FIND_LEFT, - wxLIST_FIND_RIGHT -}; - -// wxListItem: data representing an item, or report field. -// It also doubles up to represent entire column information -// when inserting or setting a column. -class WXDLLEXPORT wxListItem: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListItem) -public: - long m_mask; // Indicates what fields are valid - long m_itemId; // The zero-based item position - int m_col; // Zero-based column, if in report mode - long m_state; // The state of the item - long m_stateMask; // Which flags of m_state are valid (uses same flags) - wxString m_text; // The label/header text - int m_image; // The zero-based index into an image list - long m_data; // App-defined data - - // For columns only - int m_format; // left, right, centre - int m_width; // width of column - - wxListItem(); -}; - -// type of compare function for wxListCtrl sort operation -typedef int (*wxListCtrlCompare)(long item1, long item2, long sortData); - -class WXDLLEXPORT wxListCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListCtrl) - public: - /* - * Public interface - */ - - wxListCtrl(); - - inline wxListCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, - const wxString& name = "listCtrl") - { - Create(parent, id, pos, size, style, validator, name); - } - ~wxListCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "wxListCtrl"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Sets the background colour (GetBackgroundColour already implicit in - // wxWindow class) - bool SetBackgroundColour(const wxColour& col); - - // Gets information about this column - bool GetColumn(int col, wxListItem& item) const; - - // Sets information about this column - bool SetColumn(int col, wxListItem& item) ; - - // Gets the column width - int GetColumnWidth(int col) const; - - // Sets the column width - bool SetColumnWidth(int col, int width) ; - - // 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) - int GetCountPerPage() const; - - // Gets the edit control for editing labels. - wxTextCtrl* GetEditControl() const; - - // Gets information about the item - bool GetItem(wxListItem& info) const ; - - // Sets information about the item - bool SetItem(wxListItem& info) ; - - // Sets a string field at a particular column - long SetItem(long index, int col, const wxString& label, int imageId = -1); - - // Gets the item state - int GetItemState(long item, long stateMask) const ; - - // Sets the item state - bool SetItemState(long item, long state, long stateMask) ; - - // Sets the item image - bool SetItemImage(long item, int image, int selImage) ; - - // Gets the item text - wxString GetItemText(long item) const ; - - // Sets the item text - void SetItemText(long item, const wxString& str) ; - - // Gets the item data - long GetItemData(long item) const ; - - // Sets the item data - bool SetItemData(long item, long data) ; - - // Gets the item rectangle - bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ; - - // Gets the item position - bool GetItemPosition(long item, wxPoint& pos) const ; - - // Sets the item position - bool SetItemPosition(long item, const wxPoint& pos) ; - - // Gets the number of items in the list control - int GetItemCount() const; - - // Gets the number of columns in the list control - int GetColumnCount() const { return m_colCount; } - - // Retrieves the spacing between icons in pixels. - // If small is TRUE, gets the spacing for the small icon - // view, otherwise the large icon view. - int GetItemSpacing(bool isSmall) const; - - // Gets the number of selected items in the list control - int GetSelectedItemCount() const; - - // Gets the text colour of the listview - wxColour GetTextColour() const; - - // Sets the text colour of the listview - void SetTextColour(const wxColour& col); - - // Gets the index of the topmost visible item when in - // list or report view - long GetTopItem() const ; - - // Add or remove a single window style - void SetSingleStyle(long style, bool add = TRUE) ; - - // Set the whole window style - void SetWindowStyleFlag(long style) ; - - // Searches for an item, starting from 'item'. - // item can be -1 to find the first item that matches the - // specified flags. - // Returns the item or -1 if unsuccessful. - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const ; - - // Implementation: converts wxWindows style to MSW style. - // Can be a single style flag or a bit list. - // oldStyle is 'normalised' so that it doesn't contain - // conflicting styles. - long ConvertToMSWStyle(long& oldStyle, long style) const; - - // Gets one of the three image lists - wxImageList *GetImageList(int which) const ; - - // Sets the image list - // N.B. There's a quirk in the Win95 list view implementation. - // If in wxLC_LIST mode, it'll *still* display images by the labels if - // there's a small-icon image list set for the control - even though you - // haven't specified wxLIST_MASK_IMAGE when inserting. - // So you have to set a NULL small-icon image list to be sure that - // the wxLC_LIST mode works without icons. Of course, you may want icons... - void SetImageList(wxImageList *imageList, int which) ; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Arranges the items - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - - // Deletes an item - bool DeleteItem(long item); - - // Deletes all items - bool DeleteAllItems() ; - - // Deletes a column - bool DeleteColumn(int col); - - // Deletes all columns - bool DeleteAllColumns(); - - // Clears items, and columns if there are any. - void ClearAll(); - - // Edit the label - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - // Ensures this item is visible - bool EnsureVisible(long item) ; - - // Find an item whose label matches this string, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, const wxString& str, bool partial = FALSE); - - // Find an item whose data matches this data, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, long data); - - // Find an item nearest this position in the specified direction, starting from - // the item after 'start' or the beginning if 'start' is -1. - long FindItem(long start, const wxPoint& pt, int direction); - - // Determines which item (if any) is at the specified point, - // giving details in 'flags' (see wxLIST_HITTEST_... flags above) - long HitTest(const wxPoint& point, int& flags); - - // Inserts an item, returning the index of the new item if successful, - // -1 otherwise. - // TOD: Should also have some further convenience functions - // which don't require setting a wxListItem object - long InsertItem(wxListItem& info); - - // Insert a string item - long InsertItem(long index, const wxString& label); - - // Insert an image item - long InsertItem(long index, int imageIndex); - - // Insert an image/string item - long InsertItem(long index, const wxString& label, int imageIndex); - - // For list view mode (only), inserts a column. - long InsertColumn(long col, wxListItem& info); - - long InsertColumn(long col, const wxString& heading, int format = wxLIST_FORMAT_LEFT, - int width = -1); - - // Scrolls the list control. If in icon, small icon or report view mode, - // x specifies the number of pixels to scroll. If in list view mode, x - // specifies the number of columns to scroll. - // If in icon, small icon or list view mode, y specifies the number of pixels - // to scroll. If in report view mode, y specifies the number of lines to scroll. - bool ScrollList(int dx, int dy); - - // Sort items. - - // fn is a function which takes 3 long arguments: item1, item2, data. - // item1 is the long data associated with a first item (NOT the index). - // item2 is the long data associated with a second item (NOT the index). - // data is the same value as passed to SortItems. - // The return value is a negative number if the first item should precede the second - // item, a positive number of the second item should precede the first, - // or zero if the two items are equivalent. - - // data is arbitrary data to be passed to the sort function. - bool SortItems(wxListCtrlCompare fn, long data); - - // IMPLEMENTATION - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // Recreate window - seems to be necessary when changing a style. - void RecreateWindow(); - - // Add to pool: necessary because Windows needs to have a string - // still exist across 3 callbacks. - char *AddPool(const wxString& str); - -protected: - wxTextCtrl* m_textCtrl; // The control used for editing a label - wxImageList * m_imageListNormal; // The image list for normal icons - wxImageList * m_imageListSmall; // The image list for small icons - wxImageList * m_imageListState; // The image list state icons (not implemented yet) - - long m_baseStyle; // Basic Windows style flags, for recreation purposes - wxStringList m_stringPool; // Pool of 3 strings to satisfy Windows callback - // requirements - int m_colCount; // Windows doesn't have GetColumnCount so must - // keep track of inserted/deleted columns - -}; - -class WXDLLEXPORT wxListEvent : public wxNotifyEvent -{ -public: - wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - int m_code; - long m_itemIndex; - long m_oldItemIndex; - int m_col; - bool m_cancelled; - wxPoint m_pointDrag; - - wxListItem m_item; - - DECLARE_DYNAMIC_CLASS(wxListEvent) -}; - -typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); - -#define EVT_LIST_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_DELETE_ITEM(id, fn) { wxEVT_COMMAND_LIST_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) { wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_GET_INFO(id, fn) { wxEVT_COMMAND_LIST_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_SET_INFO(id, fn) { wxEVT_COMMAND_LIST_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_SELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_DESELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_DESELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_KEY_DOWN(id, fn) { wxEVT_COMMAND_LIST_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_INSERT_ITEM(id, fn) { wxEVT_COMMAND_LIST_INSERT_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_COL_CLICK(id, fn) { wxEVT_COMMAND_LIST_COL_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_LIST_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, (wxObject *) NULL }, - -#endif - // _WX_LISTCTRL_H_ diff --git a/include/wx/msw/magnif1.cur b/include/wx/msw/magnif1.cur deleted file mode 100644 index bb4c8978d6ff06cf471120492e33ef0ec3aa5a9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcma)$I}Uj%~Y^Ahh2U5B#=yVarEx8MAFE4>7bUl^2Og?mRSL=Gs&6db^TgQ3<2@rcN diff --git a/include/wx/msw/mdi.h b/include/wx/msw/mdi.h deleted file mode 100644 index 397ab3f1dd..0000000000 --- a/include/wx/msw/mdi.h +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: MDI (Multiple Document Interface) classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MDI_H_ -#define _WX_MDI_H_ - -#ifdef __GNUG__ - #pragma interface "mdi.h" -#endif - -#include "wx/frame.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxStatusLineNameStr; - -class WXDLLEXPORT wxMDIClientWindow; -class WXDLLEXPORT wxMDIChildFrame; - -// --------------------------------------------------------------------------- -// wxMDIParentFrame -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxMDIParentFrame : public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - -public: - wxMDIParentFrame(); - wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - // accessors - // --------- - - // Get the active MDI child window (Windows only) - wxMDIChildFrame *GetActiveChild() const; - - // Get the client window - wxMDIClientWindow *GetClientWindow() const { return m_clientWindow; } - - // Create the client window class (don't Create the window, - // just return a new class) - virtual wxMDIClientWindow *OnCreateClient(void); - - WXHMENU GetWindowMenu() const { return m_windowMenu; } - - // MDI operations - // -------------- - virtual void Cascade(); - virtual void Tile(); - virtual void ArrangeIcons(); - virtual void ActivateNext(); - virtual void ActivatePrevious(); - - // handlers - // -------- - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - void OnSize(wxSizeEvent& event); - - bool HandleActivate(int state, bool minimized, WXHWND activate); - bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); - - // override window proc for MDI-specific message processing - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - virtual long MSWDefWindowProc(WXUINT, WXWPARAM, WXLPARAM); - virtual bool MSWTranslateMessage(WXMSG* msg); - -protected: - virtual void InternalSetMenuBar(); - - wxMDIClientWindow * m_clientWindow; - wxMDIChildFrame * m_currentChild; - WXHMENU m_windowMenu; - - // TRUE if MDI Frame is intercepting commands, not child - bool m_parentFrameActive; - -private: - friend class WXDLLEXPORT wxMDIChildFrame; - - DECLARE_EVENT_TABLE() -}; - -// --------------------------------------------------------------------------- -// wxMDIChildFrame -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxMDIChildFrame : public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) - -public: - wxMDIChildFrame(); - wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIChildFrame(); - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // MDI operations - virtual void Maximize(); - virtual void Restore(); - virtual void Activate(); - - // Handlers - - bool HandleMDIActivate(long bActivate, WXHWND, WXHWND); - bool HandleSize(int x, int y, WXUINT); - bool HandleWindowPosChanging(void *lpPos); - bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); - - virtual long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual long MSWDefWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWTranslateMessage(WXMSG *msg); - - virtual void MSWDestroyWindow(); - - // Implementation - bool ResetWindowStyle(void *vrect); - -protected: - virtual void DoGetPosition(int *x, int *y) const; - virtual void DoSetClientSize(int width, int height); - virtual void InternalSetMenuBar(); -}; - -// --------------------------------------------------------------------------- -// wxMDIClientWindow -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxMDIClientWindow : public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - -public: - wxMDIClientWindow() { Init(); } - wxMDIClientWindow(wxMDIParentFrame *parent, long style = 0) - { - Init(); - - CreateClient(parent, style); - } - - // Note: this is virtual, to allow overridden behaviour. - virtual bool CreateClient(wxMDIParentFrame *parent, - long style = wxVSCROLL | wxHSCROLL); - - // Explicitly call default scroll behaviour - void OnScroll(wxScrollEvent& event); - -protected: - void Init() { m_scrollX = m_scrollY = 0; } - - int m_scrollX, m_scrollY; - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_MDI_H_ diff --git a/include/wx/msw/mdi.ico b/include/wx/msw/mdi.ico deleted file mode 100644 index 00c8d8b8a4c243143ecca37973cbc13ea97484a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmchUJ#K_B5JqRCNGRTwoGLYCj*%nLZOak1r2%SJ^e*5AzCy~-Slqz-2D7YIiMGrK zV|e~N<3EuDPg%Z;>gPq|gYPF%5?{nYUTG2D-x@`DWgPQ|mS35sN$R@BNb4&p=^w$P zT{JQ4`{=WNbJI3$%>LkgoExMp-Va9~6>m)6oweSOId1unJjf&8$M5yXpPQKHXFjbT z<4kPpVSc#Xnf0OO#$+g?eSd8KsW=nWVq8{AHnS-AlC0H^#S{iEDoE^N7t>eRXJb=1 z2|dO!pr~95uvhLYY!^a0O)I+s+lAE0#%jCN!Gn$`8^7!H#@76^&e^5#c5!R{ijrDC i^O{{4>dU3a*WwHatd*Nyj8M@zy>r#Rzo&=s59SqGV?PG~ diff --git a/include/wx/msw/menu.h b/include/wx/msw/menu.h deleted file mode 100644 index 82663872ef..0000000000 --- a/include/wx/msw/menu.h +++ /dev/null @@ -1,273 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: Julian Smart -// Modified by: Vadim Zeitlin (wxMenuItem is now in separate file) -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -#ifdef __GNUG__ - #pragma interface "menu.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" -#include "wx/dynarray.h" - -class WXDLLEXPORT wxMenuItem; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxFrame; - -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxMenu : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - // ctor & dtor - wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL); - virtual ~wxMenu(); - - // construct menu - // append a separator to the menu - void AppendSeparator(); - // append a normal item to the menu - void Append(int id, const wxString& label, - const wxString& helpString = wxEmptyString, - bool checkable = FALSE); - // append a submenu - void Append(int id, const wxString& label, - wxMenu *submenu, - const wxString& helpString = wxEmptyString); - // append anything (create wxMenuItem first) - void Append(wxMenuItem *pItem); - - // insert a break in the menu - void Break(); - - // delete an item - // If it's a submenu, menu is not destroyed. - // VZ: why? shouldn't it return "wxMenu *" then? - void Delete(int id); - - // client data - void SetClientData(void* clientData) { m_clientData = clientData; } - void* GetClientData() const { return m_clientData; } - - // menu item control - // enable/disable item - void Enable(int id, bool enable); - // TRUE if enabled - bool IsEnabled(int id) const; - - // check/uncheck item - only for checkable items, of course - void Check(int id, bool check); - // TRUE if checked - bool IsChecked(int id) const; - - // other properties - // the menu title - void SetTitle(const wxString& label); - const wxString GetTitle() const; - // the item label - void SetLabel(int id, const wxString& label); - wxString GetLabel(int id) const; - // help string - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const; - - // get the list of items - wxList& GetItems() const { return (wxList &)m_menuItems; } - - // find item - // returns id of the item matching the given string or wxNOT_FOUND - virtual int FindItem(const wxString& itemString) const; - // returns NULL if not found - wxMenuItem* FindItem(int id) const { return FindItemForId(id); } - // find wxMenuItem by ID, and item's menu too if itemMenu is !NULL - wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const; - - // Updates the UI for a menu and all submenus recursively. source is the - // object that has the update event handlers defined for it. If NULL, the - // menu or associated window will be used. - void UpdateUI(wxEvtHandler* source = (wxEvtHandler*)NULL); - - bool ProcessCommand(wxCommandEvent& event); - - virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; } - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() const { return m_eventHandler; } - - // IMPLEMENTATION - bool MSWCommand(WXUINT param, WXWORD id); - - void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; } - wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; } - - // semi-private accessors - // get the window which contains this menu - wxWindow *GetWindow() const; - // get the menu handle - WXHMENU GetHMenu() const; - - // only for wxMenuBar - void Attach(wxMenuBar *menubar); - void Detach(); - - size_t GetAccelCount() const { return m_accelKeyCodes.GetCount(); } - size_t CopyAccels(wxAcceleratorEntry *accels) const; - -#ifdef WXWIN_COMPATIBILITY - void Callback(const wxFunction func) { m_callback = func; } - - // compatibility: these functions are deprecated - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } - -private: - wxFunction m_callback; -#endif // WXWIN_COMPATIBILITY - -private: - bool m_doBreak; - - // This is used when m_hMenu is NULL because we don't want to - // delete it in ~wxMenu (it's been added to a parent menu). - // But we'll still need the handle for other purposes. - // Might be better to have a flag saying whether it's deleteable or not. - WXHMENU m_savehMenu ; // Used for Enable() on popup - WXHMENU m_hMenu; - - int m_noItems; - wxString m_title; - wxMenu * m_topLevelMenu; - wxMenuBar * m_menuBar; - wxList m_menuItems; - wxEvtHandler * m_parent; - wxEvtHandler * m_eventHandler; - wxWindow *m_pInvokingWindow; - void* m_clientData; - - // the accelerators data - wxArrayInt m_accelKeyCodes, m_accelFlags, m_accelIds; -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxMenuBar : public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - -public: - // ctors & dtor - // default constructor - wxMenuBar(); - // unused under MSW - wxMenuBar(long style); - // menubar takes ownership of the menus arrays but copies the titles - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - virtual ~wxMenuBar(); - - // menubar construction - WXHMENU Create(); - void Append(wxMenu *menu, const wxString& title); - virtual void Delete(wxMenu *menu, int index = 0); /* Menu not destroyed */ - - // state control - // NB: must only be used AFTER menu has been attached to frame, - // otherwise use individual menus to enable/disable items - // enable the item - void Enable(int id, bool enable); - // TRUE if item enabled - bool IsEnabled(int id) const; - // - void EnableTop(int pos, bool enable); - - // works only with checkable items - void Check(int id, bool check); - // TRUE if checked - bool IsChecked(int id) const; - - void SetLabel(int id, const wxString& label) ; - wxString GetLabel(int id) const ; - - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - void SetLabelTop(int pos, const wxString& label) ; - wxString GetLabelTop(int pos) const ; - - // notifications: return FALSE to prevent the menu from being - // appended/deleted - virtual bool OnAppend(wxMenu *menu, const char *title); - virtual bool OnDelete(wxMenu *menu, int index); - - // item search - // by menu and item names, returns wxNOT_FOUND if not found - virtual int FindMenuItem(const wxString& menuString, - const wxString& itemString) const; - // returns NULL if not found - wxMenuItem* FindItem(int id) const { return FindItemForId(id); } - // returns NULL if not found, fills menuForItem if !NULL - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const; - - // submenus access - int GetMenuCount() const { return m_menuCount; } - wxMenu *GetMenu(int i) const { return m_menus[i]; } - - void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - wxEvtHandler *GetEventHandler() { return m_eventHandler; } - -#ifdef WXWIN_COMPATIBILITY - // compatibility: these functions are deprecated - bool Enabled(int id) const { return IsEnabled(id); } - bool Checked(int id) const { return IsChecked(id); } -#endif // WXWIN_COMPATIBILITY - - // IMPLEMENTATION - // returns TRUE if we're attached to a frame - bool IsAttached() const { return m_menuBarFrame != NULL; } - // get the frame we live in - wxFrame *GetFrame() const { return m_menuBarFrame; } - // attach to a frame - void Attach(wxFrame *frame); - - // get the accel table for the menus - const wxAcceleratorTable& GetAccelTable() const { return m_accelTable; } - // get the menu handle - WXHMENU GetHMenu() const { return m_hMenu; } - -protected: - // common part of all ctors - void Init(); - - // if the menubar is modified, the display is not updated automatically, - // call this function to update it (m_menuBarFrame should be !NULL) - void Refresh(); - - wxEvtHandler *m_eventHandler; - int m_menuCount; - wxMenu **m_menus; - wxString *m_titles; - wxFrame *m_menuBarFrame; - WXHMENU m_hMenu; - - // the accelerator table for all accelerators in all our menus - wxAcceleratorTable m_accelTable; -}; - -#endif // _WX_MENU_H_ diff --git a/include/wx/msw/menuitem.h b/include/wx/msw/menuitem.h deleted file mode 100644 index 28e8e1c9db..0000000000 --- a/include/wx/msw/menuitem.h +++ /dev/null @@ -1,100 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MENUITEM_H -#define _MENUITEM_H - -#ifdef __GNUG__ - #pragma interface "menuitem.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/setup.h" - -// an exception to the general rule that a normal header doesn't include other -// headers - only because ownerdrw.h is not always included and I don't want -// to write #ifdef's everywhere... -#if wxUSE_OWNER_DRAWN - #include "wx/ownerdrw.h" -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// id for a separator line in the menu (invalid for normal item) -#define ID_SEPARATOR (-1) - -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenuItem: public wxObject -#if wxUSE_OWNER_DRAWN - , public wxOwnerDrawn -#endif -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - // ctor & dtor - wxMenuItem(wxMenu *pParentMenu = NULL, int id = ID_SEPARATOR, - const wxString& strName = "", const wxString& wxHelp = "", - bool bCheckable = FALSE, wxMenu *pSubMenu = NULL); - virtual ~wxMenuItem(); - - // accessors (some more are inherited from wxOwnerDrawn or are below) - bool IsSeparator() const { return m_idItem == ID_SEPARATOR; } - bool IsEnabled() const { return m_bEnabled; } - bool IsChecked() const { return m_bChecked; } - bool IsSubMenu() const { return GetSubMenu() != NULL; } - - int GetId() const { return m_idItem; } - const wxString& GetHelp() const { return m_strHelp; } - wxMenu *GetSubMenu() const { return m_pSubMenu; } - - // the id for a popup menu is really its menu handle (as required by - // ::AppendMenu() API) - int GetRealId() const; - - // operations - void SetName(const wxString& strName); - void SetHelp(const wxString& strHelp) { m_strHelp = strHelp; } - - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); - - void DeleteSubMenu(); - -private: - int m_idItem; // numeric id of the item - wxString m_strHelp; // associated help string - wxMenu *m_pSubMenu, // may be NULL - *m_pParentMenu; // menu this item is contained in - bool m_bEnabled, // enabled or greyed? - m_bChecked; // checked? (only if checkable) - -#if wxUSE_OWNER_DRAWN - // wxOwnerDrawn base class already has these variables - nothing to do - -#else //!owner drawn - bool m_bCheckable; // can be checked? - wxString m_strName; // name or label of the item - -public: - const wxString& GetName() const { return m_strName; } - bool IsCheckable() const { return m_bCheckable; } -#endif //owner drawn -}; - -#endif //_MENUITEM_H diff --git a/include/wx/msw/metafile.h b/include/wx/msw/metafile.h deleted file mode 100644 index ec1237bf29..0000000000 --- a/include/wx/msw/metafile.h +++ /dev/null @@ -1,179 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.h -// Purpose: wxMetaFile, wxMetaFileDC classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_METAFIILE_H_ -#define _WX_METAFIILE_H_ - -#ifdef __GNUG__ -#pragma interface "metafile.h" -#endif - -#include "wx/setup.h" - -#if wxUSE_METAFILE -#include "wx/dc.h" -#include "wx/gdiobj.h" - -#if wxUSE_DRAG_AND_DROP -#include "wx/dataobj.h" -#endif - -/* - * Metafile and metafile device context classes - * - */ - -#define wxMetaFile wxMetafile -#define wxMetaFileDC wxMetafileDC - -class WXDLLEXPORT wxMetafile; - -class WXDLLEXPORT wxMetafileRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxMetafile; -public: - wxMetafileRefData(void); - ~wxMetafileRefData(void); - -public: - WXHANDLE m_metafile; - int m_windowsMappingMode; -}; - -#define M_METAFILEDATA ((wxMetafileRefData *)m_refData) - -class WXDLLEXPORT wxMetafile: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxMetafile) - public: - // Copy constructor - inline wxMetafile(const wxMetafile& metafile) - { Ref(metafile); } - - wxMetafile(const wxString& file = ""); - ~wxMetafile(void); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - virtual bool SetClipboard(int width = 0, int height = 0); - - virtual bool Play(wxDC *dc); - inline bool Ok(void) const { return (M_METAFILEDATA && (M_METAFILEDATA->m_metafile != 0)); }; - - // Implementation - inline WXHANDLE GetHMETAFILE(void) { return M_METAFILEDATA->m_metafile; } - void SetHMETAFILE(WXHANDLE mf) ; - inline int GetWindowsMappingMode(void) { return M_METAFILEDATA->m_windowsMappingMode; } - void SetWindowsMappingMode(int mm); - - // Operators - inline wxMetafile& operator = (const wxMetafile& metafile) { if (*this == metafile) return (*this); Ref(metafile); return *this; } - inline bool operator == (const wxMetafile& metafile) { return m_refData == metafile.m_refData; } - inline bool operator != (const wxMetafile& metafile) { return m_refData != metafile.m_refData; } - -protected: -}; - -class WXDLLEXPORT wxMetafileDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxMetafileDC) - - public: - // Don't supply origin and extent - // Supply them to wxMakeMetaFilePlaceable instead. - wxMetafileDC(const wxString& file = ""); - - // Supply origin and extent (recommended). - // Then don't need to supply them to wxMakeMetaFilePlaceable. - wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg); - - ~wxMetafileDC(void); - - // Should be called at end of drawing - virtual wxMetafile *Close(void); - virtual void SetMapMode(int mode); - virtual void GetTextExtent(const wxString& string, long *x, long *y, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16bit = FALSE) const; - - // Implementation - inline wxMetafile *GetMetaFile(void) const { return m_metaFile; } - inline void SetMetaFile(wxMetafile *mf) { m_metaFile = mf; } - inline int GetWindowsMappingMode(void) const { return m_windowsMappingMode; } - inline void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } - -protected: - int m_windowsMappingMode; - wxMetafile* m_metaFile; -}; - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -// No origin or extent -#define wxMakeMetaFilePlaceable wxMakeMetafilePlaceable -bool WXDLLEXPORT wxMakeMetafilePlaceable(const wxString& filename, float scale = 1.0); - -// Optional origin and extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = TRUE); - -// ---------------------------------------------------------------------------- -// wxMetafileDataObject is a specialization of wxDataObject for metafile data -// ---------------------------------------------------------------------------- - -// TODO: implement OLE side of things. At present, it's just for clipboard -// use. - -#if wxUSE_DRAG_AND_DROP -class WXDLLEXPORT wxMetafileDataObject : public wxDataObject -{ -public: - // ctors - wxMetafileDataObject() { m_width = 0; m_height = 0; }; - wxMetafileDataObject(const wxMetafile& metafile, int width = 0, int height = 0): - m_metafile(metafile), m_width(width), m_height(height) { } - - void SetMetafile(const wxMetafile& metafile, int w = 0, int h = 0) - { m_metafile = metafile; m_width = w; m_height = h; } - wxMetafile GetMetafile() const { return m_metafile; } - int GetWidth() const { return m_width; } - int GetHeight() const { return m_height; } - - virtual wxDataFormat GetFormat() const { return wxDF_METAFILE; } - -/* ?? - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return (wxDataFormat) wxDataObject::Text; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDataObject::Text || format == wxDataObject::Locale; } - virtual size_t GetDataSize() const - { return m_strText.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_strText.c_str(), GetDataSize()); } -*/ - -private: - wxMetafile m_metafile; - int m_width; - int m_height; -}; -#endif - -#endif // wxUSE_METAFILE -#endif - // _WX_METAFIILE_H_ - diff --git a/include/wx/msw/minifram.h b/include/wx/msw/minifram.h deleted file mode 100644 index 97ba03c69a..0000000000 --- a/include/wx/msw/minifram.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.h -// Purpose: wxMiniFrame class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#ifdef __GNUG__ -#pragma interface "minifram.h" -#endif - -#include "wx/frame.h" - -class WXDLLEXPORT wxMiniFrame: public wxFrame { - - DECLARE_DYNAMIC_CLASS(wxMiniFrame) - -public: - inline wxMiniFrame(void) {} - inline wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE|wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMiniFrame(void); - - long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - -protected: -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/include/wx/msw/msgdlg.h b/include/wx/msw/msgdlg.h deleted file mode 100644 index 43093a234f..0000000000 --- a/include/wx/msw/msgdlg.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.h -// Purpose: wxMessageDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGBOXDLG_H_ -#define _WX_MSGBOXDLG_H_ - -#ifdef __GNUG__ -#pragma interface "msgdlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -/* - * Message box dialog - */ - -WXDLLEXPORT_DATA(extern const wxChar*) wxMessageBoxCaptionStr; - -class WXDLLEXPORT wxMessageDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxMessageDialog) -protected: - wxString m_caption; - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; -public: - wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - int ShowModal(void); -}; - - -int WXDLLEXPORT wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - wxWindow *parent = NULL, int x = -1, int y = -1); - -#endif - // _WX_MSGBOXDLG_H_ diff --git a/include/wx/msw/msvcrt.h b/include/wx/msw/msvcrt.h deleted file mode 100644 index ee7db39355..0000000000 --- a/include/wx/msw/msvcrt.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/msvcrt.h -// Purpose: macros to use some non-standard features of MS Visual C++ -// C run-time library -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.01.1999 -// RCS-ID: $Id$ -// Copyright: (c) Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// the goal of this file is to define wxCrtSetDbgFlag() macro which may be -// used like this: -// wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); -// to turn on memory leak checks for programs compiled with Microsoft Visual -// C++ (5.0+). The macro will expand to nothing under other compilers. - -#ifndef _MSW_MSVCRT_H_ -#define _MSW_MSVCRT_H_ - -// use debug CRT functions for memory leak detections in VC++ 5.0+ in debug -// builds -#undef wxUSE_VC_CRTDBG -#if defined(__WXDEBUG__) && defined(__VISUALC__) && (__VISUALC__ >= 1000) - // it doesn't combine well with wxWin own memory debugging methods - #if !wxUSE_GLOBAL_MEMORY_OPERATORS && !defined(__NO_VC_CRTDBG__) - #define wxUSE_VC_CRTDBG - #endif -#endif - -#ifdef wxUSE_VC_CRTDBG - // VC++ uses this macro as debug/release mode indicator - #ifndef _DEBUG - #define _DEBUG - #endif - - // Need to undef new if including crtdbg.h which redefines new itself - #ifdef new - #undef new - #endif - - #include - - #define wxCrtSetDbgFlag(flag) \ - _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | (flag)) -#else // !using VC CRT - #define wxCrtSetDbgFlag(flag) -#endif // wxUSE_VC_CRTDBG - -#endif // _MSW_MSVCRT_H_ - diff --git a/include/wx/msw/noentry.cur b/include/wx/msw/noentry.cur deleted file mode 100644 index b002e96b36dc2bd4664a6b7ef2d08c5a8f25f5a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ{eJqp4=5QX1t0 -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEDATAOBJ_H -#define _WX_OLEDATAOBJ_H - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- -struct IDataObject; - -// ---------------------------------------------------------------------------- -// wxDataObject is a "smart" and polymorphic piece of data. -// -// TODO it's currently "read-only" from COM point of view, i.e. we don't support -// SetData. We don't support all advise functions neither (but it's easy to -// do if we really want them) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject -{ -public: - // function to return symbolic name of clipboard format (debug messages) - static const char *GetFormatName(wxDataFormat format); - - // ctor & dtor - wxDataObject(); - virtual ~wxDataObject(); - - // pure virtuals to override - // get the best suited format for our data - virtual wxDataFormat GetPreferredFormat() const = 0; - // decide if we support this format (should be one of values of - // wxDataFormatId enumerations or a user-defined format) - virtual bool IsSupportedFormat(wxDataFormat format) const = 0; - // get the (total) size of data - virtual size_t GetDataSize() const = 0; - // copy raw data to provided pointer - virtual void GetDataHere(void *pBuf) const = 0; - - // accessors - // retrieve IDataObject interface (for other OLE related classes) - IDataObject *GetInterface() const { return m_pIDataObject; } - - ////// wxGTK compatibility: hopefully to become the preferred API. - virtual wxDataFormat GetFormat() const { return GetPreferredFormat(); } - -private: - IDataObject *m_pIDataObject; // pointer to the COM interface -}; - -// ---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTextDataObject : public wxDataObject -{ -public: - // ctors - wxTextDataObject() { } - wxTextDataObject(const wxString& strText) : m_strText(strText) { } - void Init(const wxString& strText) { m_strText = strText; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_TEXT; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_TEXT || format == wxDF_LOCALE; } - virtual size_t GetDataSize() const - { return m_strText.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_strText.c_str(), GetDataSize()); } - - ////// wxGTK compatibility: hopefully to become the preferred API. - void SetText(const wxString& strText) { m_strText = strText; } - wxString GetText() const { return m_strText; } - virtual wxDataFormat GetFormat() const { return wxDF_TEXT; } - -private: - wxString m_strText; -}; - -// ---------------------------------------------------------------------------- -// @@@ TODO: wx{Bitmap|Metafile|...}DataObject -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject is a specialization of wxDataObject for bitmap data -// ---------------------------------------------------------------------------- - -// TODO: implement OLE side of things. At present, it's just for clipboard -// use. -class WXDLLEXPORT wxBitmapDataObject : public wxDataObject -{ -public: - // ctors - wxBitmapDataObject() {}; - wxBitmapDataObject(const wxBitmap& bitmap): m_bitmap(bitmap) {} - void SetBitmap(const wxBitmap& bitmap) { m_bitmap = bitmap; } - wxBitmap GetBitmap() const { return m_bitmap; } - - virtual wxDataFormat GetFormat() const { return wxDF_BITMAP; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_BITMAP; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_BITMAP; } - virtual size_t GetDataSize() const - { wxASSERT(FALSE); return 0; } // BEMIMP - virtual void GetDataHere(void *pBuf) const - { wxASSERT(FALSE); } // BEMIMP - -private: - wxBitmap m_bitmap; -}; - -// ---------------------------------------------------------------------------- -// wxMetaFileDataObject: see metafile.h is a specialization of wxDataObject for bitmap data -// ---------------------------------------------------------------------------- - -// TODO: wxFileDataObject. - -#endif //_WX_OLEDATAOBJ_H - diff --git a/include/wx/msw/ole/dropsrc.h b/include/wx/msw/ole/dropsrc.h deleted file mode 100644 index bafcddee67..0000000000 --- a/include/wx/msw/ole/dropsrc.h +++ /dev/null @@ -1,73 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/dropsrc.h -// Purpose: declaration of the wxDropSource class -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.03.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEDROPSRC_H -#define _WX_OLEDROPSRC_H - -#ifdef __GNUG__ -#pragma interface -#endif - -#if !wxUSE_DRAG_AND_DROP - #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" -#endif //WX_DRAG_DROP - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- -class wxIDropSource; -class wxDataObject; - -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 - wxDragCancel // the operation was cancelled by user (not an error) - }; - -// ---------------------------------------------------------------------------- -// wxDropSource is used to start the drag-&-drop operation on associated -// wxDataObject object. It's responsible for giving UI feedback while dragging. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDropSource -{ -public: - // ctors: if you use default ctor you must call SetData() later! - // NB: the "wxWindow *win" parameter is unused and is here only for wxGTK - // compatibility - wxDropSource(wxWindow *win = NULL); - wxDropSource(wxDataObject& data, wxWindow *win = NULL); - - void SetData(wxDataObject& data); - - virtual ~wxDropSource(); - - // do it (call this in response to a mouse button press, for example) - // params: if bAllowMove is false, data can be only copied - wxDragResult DoDragDrop(bool bAllowMove = FALSE); - - // overridable: you may give some custom UI feedback during d&d operation - // in this function (it's called on each mouse move, so it shouldn't be too - // slow). Just return false if you want default feedback. - virtual bool GiveFeedback(wxDragResult effect, bool bScrolling); - -protected: - void Init(); - - wxDataObject *m_pData; // pointer to associated data object - -private: - wxIDropSource *m_pIDropSource; // the pointer to COM interface -}; - -#endif //_WX_OLEDROPSRC_H diff --git a/include/wx/msw/ole/droptgt.h b/include/wx/msw/ole/droptgt.h deleted file mode 100644 index 95484cf7a6..0000000000 --- a/include/wx/msw/ole/droptgt.h +++ /dev/null @@ -1,111 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/droptgt.h -// Purpose: declaration of the wxDropTarget class -// Author: Vadim Zeitlin -// Modified by: -// Created: 06.03.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// prolog -// ============================================================================ -#ifndef _WX_OLEDROPTGT_H -#define _WX_OLEDROPTGT_H - -#ifdef __GNUG__ -#pragma interface "droptgt.h" -#endif - -#if !wxUSE_DRAG_AND_DROP - #error "You should #define wxUSE_DRAG_AND_DROP to 1 to compile this file!" -#endif //WX_DRAG_DROP - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- -class wxIDropTarget; -struct IDataObject; - -// ---------------------------------------------------------------------------- -// An instance of the class wxDropTarget may be associated with any wxWindow -// derived object via SetDropTarget() function. If this is done, the virtual -// methods of wxDropTarget are called when something is dropped on the window. -// -// Note that wxDropTarget is an abstract base class (ABC) and you should derive -// your own class from it implementing pure virtual function in order to use it -// (all of them, including protected ones which are called by the class itself) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxDropTarget -{ -public: - // ctor & dtor - wxDropTarget(); - virtual ~wxDropTarget(); - - // normally called by wxWindow on window creation/destruction, but might be - // called `manually' as well. Register() returns true on success. - bool Register(WXHWND hwnd); - void Revoke(WXHWND hwnd); - - // do we accept this kind of data? - virtual bool IsAcceptedData(IDataObject *pIDataSource) const; - - // called when mouse enters/leaves the window: might be used to give - // some visual feedback to the user - virtual void OnEnter() { } - virtual void OnLeave() { } - - // this function is called when data is dropped. - // (x, y) are the coordinates of the drop - virtual bool OnDrop(long x, long y, const void *pData) = 0; - -protected: - // Override these to indicate what kind of data you support: the first - // format to which data can be converted is used. The classes below show - // how it can be done in the simplest cases. - // how many different (clipboard) formats do you support? - virtual size_t GetFormatCount() const = 0; - // return the n-th supported format - virtual wxDataFormat GetFormat(size_t n) const = 0; - -private: - wxIDropTarget *m_pIDropTarget; // the pointer to COM interface -}; - -// ---------------------------------------------------------------------------- -// A simple wxDropTarget derived class for text data: you only need to -// override OnDropText() to get something working -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTextDropTarget : public wxDropTarget -{ -public: - virtual bool OnDrop(long x, long y, const void *pData); - virtual bool OnDropText(long x, long y, const char *psz) = 0; - -protected: - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -// ---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFileDropTarget : public wxDropTarget -{ -public: - virtual bool OnDrop(long x, long y, const void *pData); - - // params: the number of files and the array of file names - virtual bool OnDropFiles(long x, long y, - size_t nFiles, const char * const aszFiles[]) = 0; - -protected: - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -// ============================================================================ -#endif //_WX_OLEDROPTGT_H diff --git a/include/wx/msw/ole/oleutils.h b/include/wx/msw/ole/oleutils.h deleted file mode 100644 index 9809d398e0..0000000000 --- a/include/wx/msw/ole/oleutils.h +++ /dev/null @@ -1,146 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: oleutils.h -// Purpose: OLE helper routines, OLE debugging support &c -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.02.1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEUTILS_H -#define _WX_OLEUTILS_H - -#ifdef __GNUG__ -#pragma interface "oleutils.h" -#endif - -#include "wx/defs.h" - -// ============================================================================ -// General purpose functions and macros -// ============================================================================ - -// ---------------------------------------------------------------------------- -// misc helper functions/macros -// ---------------------------------------------------------------------------- - -// release the interface pointer (if !NULL) -inline void ReleaseInterface(IUnknown *pIUnk) -{ - if ( pIUnk != NULL ) - pIUnk->Release(); -} - -// release the interface pointer (if !NULL) and make it NULL -#define RELEASE_AND_NULL(p) if ( (p) != NULL ) { p->Release(); p = NULL; }; - -// return TRUE if the iid is in the array -bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount); - -// ============================================================================ -// IUnknown implementation helpers -// ============================================================================ - -/* - The most dumb implementation of IUnknown methods. We don't support - aggregation nor containment, but for 99% of cases this simple - implementation is quite enough. - - Usage is trivial: here is all you should have - 1) DECLARE_IUNKNOWN_METHOS in your (IUnknown derived!) class declaration - 2) BEGIN/END_IID_TABLE with ADD_IID in between for all interfaces you - support (at least all for which you intent to return 'this' from QI, - i.e. you should derive from IFoo if you have ADD_IID(Foo)) somewhere else - 3) IMPLEMENT_IUNKNOWN_METHOS somewhere also - - These macros are quite simple: AddRef and Release are trivial and QI does - lookup in a static member array of IIDs and returns 'this' if it founds - the requested interface in it or E_NOINTERFACE if not. - */ - -// declare the methods and the member variable containing reference count -// you must also define the ms_aIids array somewhere with BEGIN_IID_TABLE -// and friends (see below) -#define DECLARE_IUNKNOWN_METHODS \ - public: \ - STDMETHODIMP QueryInterface(REFIID, void **); \ - STDMETHODIMP_(ULONG) AddRef(); \ - STDMETHODIMP_(ULONG) Release(); \ - private: \ - static const IID *ms_aIids[]; \ - ULONG m_cRef - -// macros for declaring supported interfaces -// NB: you should write ADD_INTERFACE(Foo) and not ADD_INTERFACE(IID_IFoo)! -#define BEGIN_IID_TABLE(cname) const IID *cname::ms_aIids[] = { -#define ADD_IID(iid) &IID_I##iid, -#define END_IID_TABLE } - -// implementation is as straightforward as possible -// Parameter: classname - the name of the class -#define IMPLEMENT_IUNKNOWN_METHODS(classname) \ - STDMETHODIMP classname::QueryInterface(REFIID riid, void **ppv) \ - { \ - wxLogQueryInterface(#classname, riid); \ - \ - if ( IsIidFromList(riid, ms_aIids, WXSIZEOF(ms_aIids)) ) { \ - *ppv = this; \ - AddRef(); \ - \ - return S_OK; \ - } \ - else { \ - *ppv = NULL; \ - \ - return (HRESULT) E_NOINTERFACE; \ - } \ - } \ - \ - STDMETHODIMP_(ULONG) classname::AddRef() \ - { \ - wxLogAddRef(#classname, m_cRef); \ - \ - return ++m_cRef; \ - } \ - \ - STDMETHODIMP_(ULONG) classname::Release() \ - { \ - wxLogRelease(#classname, m_cRef); \ - \ - if ( --m_cRef == 0 ) { \ - delete this; \ - return 0; \ - } \ - else \ - return m_cRef; \ - } - -// ============================================================================ -// Debugging support -// ============================================================================ - -// VZ: I don't know it's not done for compilers other than VC++ but I leave it -// as is. Please note, though, that tracing OLE interface calls may be -// incredibly useful when debugging OLE programs. -#if defined(__WXDEBUG__) && defined(__VISUALC__) && (__VISUALC__ >= 1000) -// ---------------------------------------------------------------------------- -// All OLE specific log functions have DebugTrace level (as LogTrace) -// ---------------------------------------------------------------------------- - -// tries to translate riid into a symbolic name, if possible -void wxLogQueryInterface(const char *szInterface, REFIID riid); - -// these functions print out the new value of reference counter -void wxLogAddRef (const char *szInterface, ULONG cRef); -void wxLogRelease(const char *szInterface, ULONG cRef); - -#else //!WXDEBUG - #define wxLogQueryInterface(szInterface, riid) - #define wxLogAddRef(szInterface, cRef) - #define wxLogRelease(szInterface, cRef) -#endif //WXDEBUG - -#endif //_WX_OLEUTILS_H - diff --git a/include/wx/msw/ole/uuid.h b/include/wx/msw/ole/uuid.h deleted file mode 100644 index 2dee9946aa..0000000000 --- a/include/wx/msw/ole/uuid.h +++ /dev/null @@ -1,91 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/uuid.h -// Purpose: encapsulates an UUID with some added helper functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.07.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -// -// Notes: you should link your project with RPCRT4.LIB! -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OLEUUID_H -#define _WX_OLEUUID_H - -#ifdef __GNUG__ -#pragma interface "uuid.h" -#endif - -// ------------------------------------------------------------------ -// UUID (Universally Unique IDentifier) definition -// ------------------------------------------------------------------ - -// ----- taken from RPC.H -#ifndef UUID_DEFINED // in some cases RPC.H will be already - #ifdef __WIN32__ // included, so avoid redefinition - typedef struct - { - unsigned long Data1; - unsigned short Data2; - unsigned short Data3; - unsigned char Data4[8]; - } UUID; // UUID = GUID = CLSID = LIBID = IID - #else // WIN16 - #error "Don't know about UUIDs on this platform" - #endif // WIN32 -#endif // UUID_DEFINED - -#ifndef GUID_DEFINED - typedef UUID GUID; - #define UUID_DEFINED // prevent redefinition -#endif // GUID_DEFINED - -typedef unsigned char uchar; - -// ------------------------------------------------------------------ -// a class to store UUID and it's string representation -// ------------------------------------------------------------------ - -// uses RPC functions to create/convert Universally Unique Identifiers -class WXDLLEXPORT Uuid -{ -private: - UUID m_uuid; - uchar *m_pszUuid; // this string is alloc'd and freed by RPC - char *m_pszCForm; // this string is allocated in Set/Create - - void UuidToCForm(); - - // function used to set initial state by all ctors - void Init() { m_pszUuid = NULL; m_pszCForm = NULL; } - -public: - // ctors & dtor - Uuid() { Init(); } - Uuid(const char *pc) { Init(); Set(pc); } - Uuid(const UUID &uuid) { Init(); Set(uuid); } - ~Uuid(); - - // copy ctor and assignment operator needed for this class - Uuid(const Uuid& uuid); - Uuid& operator=(const Uuid& uuid); - - // create a brand new UUID - void Create(); - - // set value of UUID - bool Set(const char *pc); // from a string, returns true if ok - void Set(const UUID& uuid); // from another UUID (never fails) - - // accessors - operator const UUID*() const { return &m_uuid; } - operator const char*() const { return (char *)(m_pszUuid); } - - // return string representation of the UUID in the C form - // (as in DEFINE_GUID macro) - const char *CForm() const { return m_pszCForm; } -}; - -#endif //_WX_OLEUUID_H diff --git a/include/wx/msw/palette.h b/include/wx/msw/palette.h deleted file mode 100644 index 4383c44a3f..0000000000 --- a/include/wx/msw/palette.h +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: wxPalette class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#ifdef __GNUG__ -#pragma interface "palette.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxPalette; - -class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPalette; -public: - wxPaletteRefData(void); - ~wxPaletteRefData(void); -protected: - WXHPALETTE m_hPalette; -}; - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -class WXDLLEXPORT wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - -public: - wxPalette(void); - inline wxPalette(const wxPalette& palette) { Ref(palette); } - - wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - ~wxPalette(void); - bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - - virtual bool Ok(void) const { return (m_refData != NULL) ; } - - inline wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } - inline bool operator == (const wxPalette& palette) { return m_refData == palette.m_refData; } - inline bool operator != (const wxPalette& palette) { return m_refData != palette.m_refData; } - - virtual bool FreeResource(bool force = FALSE); - - inline WXHPALETTE GetHPALETTE(void) const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } - void SetHPALETTE(WXHPALETTE pal); -}; - -#define wxColorMap wxPalette -#define wxColourMap wxPalette - -#endif - // _WX_PALETTE_H_ diff --git a/include/wx/msw/pbrush.cur b/include/wx/msw/pbrush.cur deleted file mode 100644 index 97212e3faad4bb1f28892269ee9bdfed99e70a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmaKmF%m#95Jg{%(HWi5Q7Rq5C7dUY>Ihnm^@EIRz06DYXET|Fg1|69O~(|V1xBeW zW*M|@-s1`1Zf0Nbs%3_3+#s3Ab-zNTT>hw*hh}g&=`~^V@2WRjG~4x!=b@g%1>swF A?*IS* diff --git a/include/wx/msw/pen.h b/include/wx/msw/pen.h deleted file mode 100644 index d30a10ff83..0000000000 --- a/include/wx/msw/pen.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: wxPen class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#ifdef __GNUG__ -#pragma interface "pen.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -typedef WXDWORD wxDash ; - -class WXDLLEXPORT wxPen; - -class WXDLLEXPORT wxPenRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPen; -public: - wxPenRefData(); - wxPenRefData(const wxPenRefData& data); - ~wxPenRefData(); - -protected: - int m_width; - int m_style; - int m_join ; - int m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; - wxColour m_colour; - WXHPEN m_hPen; -}; - -#define M_PENDATA ((wxPenRefData *)m_refData) - -// Pen -class WXDLLEXPORT wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) -public: - wxPen(); - wxPen(const wxColour& col, int width, int style); - wxPen(const wxBitmap& stipple, int width); - inline wxPen(const wxPen& pen) { Ref(pen); } - ~wxPen(); - - inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; } - inline bool operator == (const wxPen& pen) { return m_refData == pen.m_refData; } - inline bool operator != (const wxPen& pen) { return m_refData != pen.m_refData; } - - virtual bool Ok() const { return (m_refData != NULL) ; } - - // Override in order to recreate the pen - void SetColour(const wxColour& col) ; - void SetColour(unsigned char r, unsigned char g, unsigned char b); - - void SetWidth(int width) ; - void SetStyle(int style) ; - void SetStipple(const wxBitmap& stipple) ; - void SetDashes(int nb_dashes, const wxDash *dash) ; - void SetJoin(int join) ; - void SetCap(int cap) ; - - inline wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); }; - inline int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); }; - inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); }; - inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); }; - inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); }; - inline int GetDashes(wxDash **ptr) const { - *ptr = (M_PENDATA ? M_PENDATA->m_dash : (wxDash*) NULL); return (M_PENDATA ? M_PENDATA->m_nbDash : 0); - } - - inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); }; - - // Internal - bool RealizeResource(); - bool FreeResource(bool force = FALSE); - WXHANDLE GetResourceHandle() ; - bool IsFree() const; - void Unshare(); -}; - -int wx2msPenStyle(int wx_style); - -#endif - // _WX_PEN_H_ diff --git a/include/wx/msw/pencil.cur b/include/wx/msw/pencil.cur deleted file mode 100644 index 231ed1e79f7bc3c1b4291024697607f58f1c91ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmbWxAr8Vo5QX8lG@*{707F<=i9liKq44YtxB^G%5jX-8Sy>X&#}92%f$MC(o!QMy zGSW;zF^X7fAEXskiHHh;^NS(%kMXuWJ| - * - * - */ - -#ifndef _WX_PNGREAD__ -#define _WX_PNGREAD__ - -#ifdef __GNUG__ -#pragma interface "pngread.h" -#endif - -#ifndef byte -typedef unsigned char byte; -#endif - -#define WXIMA_COLORS DIB_PAL_COLORS - -#ifdef __WIN32__ -typedef byte* ImagePointerType; -#else -typedef byte huge* ImagePointerType; -#endif - -typedef struct -{ - byte red; - byte green; - byte blue; -} rgb_color_struct; - - -#define COLORTYPE_PALETTE 1 -#define COLORTYPE_COLOR 2 -#define COLORTYPE_ALPHA 4 - -class wxPNGReader -{ -protected: - int filetype; - char filename[255]; - ImagePointerType RawImage; // Image data - - int Width, Height; // Dimensions - int Depth; // (bits x pixel) - int ColorType; // Bit 1 = Palette used - // Bit 2 = Color used - // Bit 3 = Alpha used - - long EfeWidth; // Efective Width - - LPBITMAPINFOHEADER lpbi; - int bgindex; - wxPalette* Palette; - bool imageOK; -friend class wxPNGReaderIter; -public: - wxPNGReader(void); - wxPNGReader (char* ImageFileName); // Read an image file - ~wxPNGReader (); - - void Create(int width, int height, int deep, int colortype=-1); - - bool ReadFile( char* ImageFileName=0 ); - bool SaveFile( char* ImageFileName=0 ); - bool SaveXPM(char *filename, char *name = 0); - int GetWidth( void ) const { return Width; }; - int GetHeight( void ) const { return Height; }; - int GetDepth( void ) const { return Depth; }; - int GetColorType( void ) const { return ColorType; }; - - int GetIndex(int x, int y); - bool GetRGB(int x, int y, byte* r, byte* g, byte* b); - - bool SetIndex(int x, int y, int index); - bool SetRGB(int x, int y, byte r, byte g, byte b); - - // ColorMap settings - bool SetPalette(wxPalette* colourmap); - bool SetPalette(int n, rgb_color_struct *rgb_struct); - bool SetPalette(int n, byte *r, byte *g=0, byte *b=0); - wxPalette* GetPalette() const { return Palette; } - - void NullData(); - inline int GetBGIndex(void) { return bgindex; } - - inline bool Inside(int x, int y) - { return (0<=y && yRawImage; - Itx = Ity = 0; - Stepx = Stepy = 0; -} - -inline -wxPNGReaderIter::operator wxPNGReader* () -{ - return ima; -} - -inline -bool wxPNGReaderIter::ItOK () -{ - if (ima) - return ima->Inside(Itx, Ity); - else - return FALSE; -} - - -inline void wxPNGReaderIter::reset() -{ - IterImage = ima->RawImage; - Itx = Ity = 0; -} - -inline void wxPNGReaderIter::upset() -{ - Itx = 0; - Ity = ima->Height-1; - IterImage = ima->RawImage + ima->EfeWidth*(ima->Height-1); -} - -inline bool wxPNGReaderIter::NextRow() -{ - if (++Ity >= ima->Height) return 0; - IterImage += ima->EfeWidth; - return 1; -} - -inline bool wxPNGReaderIter::PrevRow() -{ - if (--Ity < 0) return 0; - IterImage -= ima->EfeWidth; - return 1; -} - -////////////////////////// AD - for interlace /////////////////////////////// -inline void wxPNGReaderIter::SetY(int y) -{ - if ((y < 0) || (y > ima->Height)) return; - Ity = y; - IterImage = ima->RawImage + ima->EfeWidth*y; -} - -///////////////////////////////////////////////////////////////////////////// - -inline void wxPNGReaderIter::SetRow(byte *buf, int n) -{ -// Here should be bcopy or memcpy - //_fmemcpy(IterImage, (void far *)buf, n); - if (n<0) - n = ima->GetWidth(); - - for (int i=0; iEfeWidth) - return 1; - else - if (++Ity < ima->Height) - { - IterImage += ima->EfeWidth; - Itx = 0; - return 1; - } else - return 0; -} - -inline bool wxPNGReaderIter::PrevByte() -{ - if (--Itx >= 0) - return 1; - else - if (--Ity >= 0) - { - IterImage -= ima->EfeWidth; - Itx = 0; - return 1; - } else - return 0; -} - -inline bool wxPNGReaderIter::NextStep() -{ - Itx += Stepx; - if (Itx < ima->EfeWidth) - return 1; - else { - Ity += Stepy; - if (Ity < ima->Height) - { - IterImage += ima->EfeWidth; - Itx = 0; - return 1; - } else - return 0; - } -} - -inline bool wxPNGReaderIter::PrevStep() -{ - Itx -= Stepx; - if (Itx >= 0) - return 1; - else { - Ity -= Stepy; - if (Ity >= 0 && Ity < ima->Height) - { - IterImage -= ima->EfeWidth; - Itx = 0; - return 1; - } else - return 0; - } -} - -#endif - diff --git a/include/wx/msw/pntleft.cur b/include/wx/msw/pntleft.cur deleted file mode 100644 index 222b25b86408566858225dab95d0d8e78a86babc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmaiuyAc905JR%f`ZD0jM z&XCqP7_gPwi!6@9G@8EU6PB6e5_)c<19k;=r;4FCrkmqDJCX=N@vd|u_N68HkD=IZVP*JAV(X;&%%ld&8MqNW< z!_i;|9E7eo3)A_;SiWM)5iyCy?gG~qd!F#V!(V%RxQQ&1bl}lr@fc|Cnba?CECcc| f8>x$^*vja7#8s^r|EH1u{jyS@T2f@6-CZ8va`9(v diff --git a/include/wx/msw/printdlg.h b/include/wx/msw/printdlg.h deleted file mode 100644 index 69921c0b4a..0000000000 --- a/include/wx/msw/printdlg.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.h -// Purpose: wxPrintDialog, wxPageSetupDialog classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_ -#define _WX_PRINTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "printdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -class WXDLLEXPORT wxDC; - -// --------------------------------------------------------------------------- -// wxPrinterDialog: the common dialog for printing. -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxPrintDialog : public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPrintDialog) - -public: - wxPrintDialog(); - wxPrintDialog(wxWindow *parent, wxPrintDialogData* data = NULL); - wxPrintDialog(wxWindow *parent, wxPrintData* data); - virtual ~wxPrintDialog(); - - bool Create(wxWindow *parent, wxPrintDialogData* data = NULL); - virtual int ShowModal(); - - wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } - wxPrintData& GetPrintData() { return m_printDialogData.GetPrintData(); } - virtual wxDC *GetPrintDC(); - -private: - wxPrintDialogData m_printDialogData; - wxDC* m_printerDC; - bool m_destroyDC; - wxWindow* m_dialogParent; -}; - -class WXDLLEXPORT wxPageSetupDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPageSetupDialog) - -public: - wxPageSetupDialog(); - wxPageSetupDialog(wxWindow *parent, wxPageSetupData *data = NULL); - virtual ~wxPageSetupDialog(); - - bool Create(wxWindow *parent, wxPageSetupData *data = NULL); - virtual int ShowModal(); - - wxPageSetupData& GetPageSetupData() { return m_pageSetupData; } - -private: - wxPageSetupData m_pageSetupData; - wxWindow* m_dialogParent; -}; - -#endif - // _WX_PRINTDLG_H_ diff --git a/include/wx/msw/printwin.h b/include/wx/msw/printwin.h deleted file mode 100644 index 9f7d368f7a..0000000000 --- a/include/wx/msw/printwin.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printwin.h -// Purpose: wxWindowsPrinter, wxWindowsPrintPreview classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTWIN_H_ -#define _WX_PRINTWIN_H_ - -#ifdef __GNUG__ - #pragma interface "printwin.h" -#endif - -#include "wx/prntbase.h" - -// --------------------------------------------------------------------------- -// Represents the printer: manages printing a wxPrintout object -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowsPrinter : public wxPrinterBase -{ - DECLARE_DYNAMIC_CLASS(wxWindowsPrinter) - -public: - wxWindowsPrinter(wxPrintDialogData *data = NULL); - virtual ~wxWindowsPrinter(); - - virtual bool Print(wxWindow *parent, - wxPrintout *printout, - bool prompt = TRUE); - virtual wxDC* PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); - -private: - WXFARPROC m_lpAbortProc; -}; - -// --------------------------------------------------------------------------- -// wxPrintPreview: programmer creates an object of this class to preview a -// wxPrintout. -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowsPrintPreview : public wxPrintPreviewBase -{ - DECLARE_CLASS(wxWindowsPrintPreview) - -public: - wxWindowsPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting = NULL, - wxPrintDialogData *data = NULL); - wxWindowsPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - virtual ~wxWindowsPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); -}; - -#endif -// _WX_PRINTWIN_H_ diff --git a/include/wx/msw/private.h b/include/wx/msw/private.h deleted file mode 100644 index 889b6d7f67..0000000000 --- a/include/wx/msw/private.h +++ /dev/null @@ -1,267 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: private.h -// Purpose: Private declarations: as this header is only included by -// wxWindows itself, it may contain identifiers which don't start -// with "wx". -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_H_ -#define _WX_PRIVATE_H_ - -#include - -// undefine conflicting symbols which were defined in windows.h -#include "wx/msw/winundef.h" - -class WXDLLEXPORT wxFont; - -// --------------------------------------------------------------------------- -// private constants -// --------------------------------------------------------------------------- - -// Conversion -static const double METRIC_CONVERSION_CONSTANT = 0.0393700787; - -// Scaling factors for various unit conversions -static const double mm2inches = (METRIC_CONVERSION_CONSTANT); -static const double inches2mm = (1/METRIC_CONVERSION_CONSTANT); - -static const double mm2twips = (METRIC_CONVERSION_CONSTANT*1440); -static const double twips2mm = (1/(METRIC_CONVERSION_CONSTANT*1440)); - -static const double mm2pt = (METRIC_CONVERSION_CONSTANT*72); -static const double pt2mm = (1/(METRIC_CONVERSION_CONSTANT*72)); - -// --------------------------------------------------------------------------- -// standard icons from the resources -// --------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern HICON) wxSTD_FRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxSTD_MDIPARENTFRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxSTD_MDICHILDFRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxDEFAULT_FRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxDEFAULT_MDIPARENTFRAME_ICON; -WXDLLEXPORT_DATA(extern HICON) wxDEFAULT_MDICHILDFRAME_ICON; -WXDLLEXPORT_DATA(extern HFONT) wxSTATUS_LINE_FONT; - -// --------------------------------------------------------------------------- -// this defines a CASTWNDPROC macro which casts a pointer to the type of a -// window proc -// --------------------------------------------------------------------------- - -#if defined(__GNUWIN32__) && !defined(__MINGW32__) -# define CASTWNDPROC (long unsigned) -#else -# ifdef __BORLANDC__ - -# ifdef __WIN32__ -# define CASTWNDPROC -# else - typedef int (pascal * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# endif - -# else -# if defined (__WIN32__) && defined(STRICT) - typedef long (_stdcall * WndProcCast) (HWND, unsigned int, unsigned int, long); -# define CASTWNDPROC (WndProcCast) -# elif defined(__WIN16__) -# ifdef __BORLANDC__ - typedef int (pascal * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# else - typedef int (PASCAL * WndProcCast) (); -# define CASTWNDPROC (WndProcCast) -# endif -# else -# define CASTWNDPROC -# endif -# endif -#endif - -// --------------------------------------------------------------------------- -// some stuff for old Windows versions (FIXME: what does it do here??) -// --------------------------------------------------------------------------- - -#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not - #define APIENTRY FAR PASCAL -#endif - -#ifdef __WIN32__ - #define _EXPORT -#else - #define _EXPORT _export -#endif - -#ifndef __WIN32__ - typedef signed short int SHORT; -#endif - -#if !defined(__WIN32__) // 3.x uses FARPROC for dialogs - #define DLGPROC FARPROC -#endif - -#if wxUSE_PENWIN - WXDLLEXPORT void wxRegisterPenWin(); - WXDLLEXPORT void wxCleanUpPenWin(); - WXDLLEXPORT void wxEnablePenAppHooks (bool hook); -#endif // wxUSE_PENWIN - -#if wxUSE_ITSY_BITSY - #define IBS_HORZCAPTION 0x4000L - #define IBS_VERTCAPTION 0x8000L - - UINT WINAPI ibGetCaptionSize( HWND hWnd ) ; - UINT WINAPI ibSetCaptionSize( HWND hWnd, UINT nSize ) ; - LRESULT WINAPI ibDefWindowProc( HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam ) ; - VOID WINAPI ibAdjustWindowRect( HWND hWnd, LPRECT lprc ) ; -#endif // wxUSE_ITSY_BITSY - -#if wxUSE_CTL3D - #include "wx/msw/ctl3d/ctl3d.h" -#endif // wxUSE_CTL3D - -/* - * Decide what window classes we're going to use - * for this combination of CTl3D/FAFA settings - */ - -#define STATIC_CLASS _T("STATIC") -#define STATIC_FLAGS (SS_LEFT|WS_CHILD|WS_VISIBLE) -#define CHECK_CLASS _T("BUTTON") -#define CHECK_FLAGS (BS_AUTOCHECKBOX|WS_TABSTOP|WS_CHILD) -#define CHECK_IS_FAFA FALSE -#define RADIO_CLASS _T("BUTTON") -#define RADIO_FLAGS (BS_AUTORADIOBUTTON|WS_CHILD|WS_VISIBLE) -#define RADIO_SIZE 20 -#define RADIO_IS_FAFA FALSE -#define PURE_WINDOWS -#define GROUP_CLASS _T("BUTTON") -#define GROUP_FLAGS (BS_GROUPBOX|WS_CHILD|WS_VISIBLE) - -/* -#define BITCHECK_FLAGS (FB_BITMAP|FC_BUTTONDRAW|FC_DEFAULT|WS_VISIBLE) -#define BITRADIO_FLAGS (FC_BUTTONDRAW|FB_BITMAP|FC_RADIO|WS_CHILD|WS_VISIBLE) -*/ - -// --------------------------------------------------------------------------- -// misc macros -// --------------------------------------------------------------------------- - -#define MEANING_CHARACTER '0' -#define DEFAULT_ITEM_WIDTH 200 -#define DEFAULT_ITEM_HEIGHT 80 - -// Scale font to get edit control height -#define EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy) (3*(cy)/2) - -// Generic subclass proc, for panel item moving/sizing and intercept -// EDIT control VK_RETURN messages -extern LONG APIENTRY _EXPORT - wxSubclassedGenericControlProc(WXHWND hWnd, WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - -// --------------------------------------------------------------------------- -// constants which might miss from some compilers' headers -// --------------------------------------------------------------------------- - -#if !defined(__WIN32__) && !defined(WS_EX_CLIENTEDGE) - #define WS_EX_CLIENTEDGE 0 -#endif - -#if defined(__WIN32__) && !defined(WS_EX_CLIENTEDGE) - #define WS_EX_CLIENTEDGE 0x00000200L -#endif - -#ifndef ENDSESSION_LOGOFF - #define ENDSESSION_LOGOFF 0x80000000 -#endif - -// --------------------------------------------------------------------------- -// debug messages -// --------------------------------------------------------------------------- -#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32 - - #ifndef __TWIN32__ - #ifdef OutputDebugString - #undef OutputDebugString - #endif - - #define OutputDebugString OutputDebugStringW95 - #endif // __TWIN32__ - - extern void OutputDebugStringW95(const wxChar*, ...); -#endif // USE_DBWIN32 - -// --------------------------------------------------------------------------- -// macros to make casting between WXFOO and FOO a bit easier: the GetFoo() -// returns Foo cast to the Windows type for oruselves, while GetFoosFoo() takes -// an argument which should be a pointer to wxFoo (is this really clear?) -// --------------------------------------------------------------------------- - -#define GetHwnd() ((HWND)GetHWND()) -#define GetWinHwnd(win) ((HWND)((win)->GetHWND())) - -#define GetHdc() ((HDC)GetHDC()) - -#define GetHicon() ((HICON)GetHICON()) -#define GetIconHicon(icon) ((HICON)(icon).GetHICON()) - -#define GetHaccel() ((HACCEL)GetHACCEL()) -#define GetTableHaccel(table) ((HACCEL)((table).GetHACCEL())) - -// --------------------------------------------------------------------------- -// global data -// --------------------------------------------------------------------------- - -// The MakeProcInstance version of the function wxSubclassedGenericControlProc -WXDLLEXPORT_DATA(extern FARPROC) wxGenericControlSubClassProc; -WXDLLEXPORT_DATA(extern wxChar*) wxBuffer; -WXDLLEXPORT_DATA(extern HINSTANCE) wxhInstance; - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -WXDLLEXPORT HINSTANCE wxGetInstance(); -WXDLLEXPORT void wxSetInstance(HINSTANCE hInst); - -WXDLLEXPORT wxWindow* wxFindWinFromHandle(WXHWND hWnd); - -WXDLLEXPORT void wxGetCharSize(WXHWND wnd, int *x, int *y,wxFont *the_font); -WXDLLEXPORT void wxFillLogFont(LOGFONT *logFont, wxFont *font); -WXDLLEXPORT wxFont wxCreateFontFromLogFont(LOGFONT *logFont); - -WXDLLEXPORT void wxSliderEvent(WXHWND control, WXWORD wParam, WXWORD pos); -WXDLLEXPORT void wxScrollBarEvent(WXHWND hbar, WXWORD wParam, WXWORD pos); - -// Find maximum size of window/rectangle -WXDLLEXPORT extern void wxFindMaxSize(WXHWND hwnd, RECT *rect); - -WXDLLEXPORT wxWindow* wxFindControlFromHandle(WXHWND hWnd); -WXDLLEXPORT void wxAddControlHandle(WXHWND hWnd, wxWindow *item); - -// Safely get the window text (i.e. without using fixed size buffer) -WXDLLEXPORT extern wxString wxGetWindowText(WXHWND hWnd); - -// get the window class name -WXDLLEXPORT extern wxString wxGetWindowClass(WXHWND hWnd); - -// get the window id (should be unsigned, hence this is not wxWindowID which -// is, for mainly historical reasons, signed) -WXDLLEXPORT extern WXWORD wxGetWindowId(WXHWND hWnd); - -// Does this window style specify any border? -inline bool wxStyleHasBorder(long style) -{ - return (style & (wxSIMPLE_BORDER | wxRAISED_BORDER | - wxSUNKEN_BORDER | wxDOUBLE_BORDER)) != 0; -} - -#endif - // _WX_PRIVATE_H_ diff --git a/include/wx/msw/query.cur b/include/wx/msw/query.cur deleted file mode 100644 index 3578e90fd956ff8ff5288634e9c7a96505910746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZY3t#Se}6vgp>Hakt+Mqv|)MAmgtyhc@ZC4%9jHGQm=eGD9SC4%Afrj%iJdNRM9 z+^Yf&j#3(G77k|Cb5l%joSonN)opm(k{-kT6$Xf9s_tq|1AG@;^;PgyEUenZTNBy3 zmfiTlu3b)SZQgtySoaO@rR6n6`j{Xbu|G_6ev!sJWxH!9U86Nwmvr;I$V!HFCpJMm Yc@doO`~N_0@8k!sa183kPWhbm0~DuU7XSbN diff --git a/include/wx/msw/radiobox.h b/include/wx/msw/radiobox.h deleted file mode 100644 index 998c6880e6..0000000000 --- a/include/wx/msw/radiobox.h +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: wxRadioBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "radiobox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxRadioBoxNameStr; - -// List box item -class WXDLLEXPORT wxBitmap; - -class WXDLLEXPORT wxRadioBox : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioBox) - -public: - wxRadioBox(); - -#if WXWIN_COMPATIBILITY - wxRadioBox(wxWindow *parent, wxFunction func, const char *title, - int x = -1, int y = -1, int width = -1, int height = -1, - int n = 0, char **choices = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, const char *name = wxRadioBoxNameStr); -#endif // WXWIN_COMPATIBILITY - - wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); - } - - ~wxRadioBox(); - - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr); - - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - int FindString(const wxString& s) const; - void SetSelection(int N); - int GetSelection() const; - wxString GetString(int N) const; - - void GetSize(int *x, int *y) const; - void GetPosition(int *x, int *y) const; - - void SetLabel(int item, const wxString& label); - void SetLabel(int item, wxBitmap *bitmap); - wxString GetLabel(int item) const; - bool Show(bool show); - void SetFocus(); - bool Enable(bool enable); - void Enable(int item, bool enable); - void Show(int item, bool show); - void SetLabelFont(const wxFont& WXUNUSED(font)) {}; - void SetButtonFont(const wxFont& font) { SetFont(font); } - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection(const wxString& s); - virtual int Number() const { return m_noItems; }; - void Command(wxCommandEvent& event); - - int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } - void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } - - // Implementation - WXHWND *GetRadioButtons() const { return m_radioButtons; } - bool ContainsHWND(WXHWND hWnd) const; - void SendNotificationEvent(); - - long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - // get the number of buttons per column/row - inline int GetNumVer() const; - inline int GetNumHor() const; - -protected: - void SubclassRadioButton(WXHWND hWndBtn); - - WXHWND * m_radioButtons; - int m_majorDim; - int * m_radioWidth; // for bitmaps - int * m_radioHeight; - - int m_noItems; - int m_noRowsOrCols; - int m_selectedButton; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/include/wx/msw/radiobut.h b/include/wx/msw/radiobut.h deleted file mode 100644 index 35cb5dc292..0000000000 --- a/include/wx/msw/radiobut.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: wxRadioButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -#ifdef __GNUG__ -#pragma interface "radiobut.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxRadioButtonNameStr; - -class WXDLLEXPORT wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) - protected: - public: - inline wxRadioButton(void) {} - inline wxRadioButton(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - virtual void SetLabel(const wxString& label); - virtual void SetValue(bool val); - virtual bool GetValue(void) const ; - - bool MSWCommand(WXUINT param, WXWORD id); - void Command(wxCommandEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); -}; - -// Not implemented -#if 0 -class WXDLLEXPORT wxBitmap ; - -WXDLLEXPORT_DATA(extern const char*) wxBitmapRadioButtonNameStr; - -class WXDLLEXPORT wxBitmapRadioButton: public wxRadioButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapRadioButton) - protected: - wxBitmap *theButtonBitmap; - public: - inline wxBitmapRadioButton(void) { theButtonBitmap = NULL; } - inline wxBitmapRadioButton(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr); - - virtual void SetLabel(const wxBitmap *label); - virtual void SetValue(bool val) ; - virtual bool GetValue(void) const ; -}; -#endif - -#endif - // _WX_RADIOBUT_H_ diff --git a/include/wx/msw/regconf.h b/include/wx/msw/regconf.h deleted file mode 100644 index 681f2a6201..0000000000 --- a/include/wx/msw/regconf.h +++ /dev/null @@ -1,113 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/regconf.h -// Purpose: Registry based implementation of wxConfigBase -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _REGCONF_H -#define _REGCONF_H - -#ifdef __GNUG__ -#pragma interface "regconf.h" -#endif - -#ifndef _REGISTRY_H - #include -#endif - -// ---------------------------------------------------------------------------- -// wxRegConfig -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegConfig : public wxConfigBase -{ -public: - // ctor & dtor - // will store data in HKLM\appName and HKCU\appName - wxRegConfig(const wxString& appName = "", - const wxString& vendorName = "", - const wxString& localFilename = "", - const wxString& globalFilename = "", - long style = 0); - - // dtor will save unsaved data - virtual ~wxRegConfig(); - - // implement inherited pure virtual functions - // ------------------------------------------ - - // path management - virtual void SetPath(const wxString& strPath); - virtual const wxString& GetPath() const { return m_strPath; } - - // entry/subgroup info - // enumerate all of them - virtual bool GetFirstGroup(wxString& str, long& lIndex) const; - virtual bool GetNextGroup (wxString& str, long& lIndex) const; - virtual bool GetFirstEntry(wxString& str, long& lIndex) const; - virtual bool GetNextEntry (wxString& str, long& lIndex) const; - - // tests for existence - virtual bool HasGroup(const wxString& strName) const; - virtual bool HasEntry(const wxString& strName) const; - virtual EntryType GetEntryType(const wxString& name) const; - - // get number of entries/subgroups in the current group, with or without - // it's subgroups - virtual size_t GetNumberOfEntries(bool bRecursive = FALSE) const; - virtual size_t GetNumberOfGroups(bool bRecursive = FALSE) const; - - // read/write - bool Read(const wxString& key, wxString *pStr) const; - bool Read(const wxString& key, wxString *pStr, const wxString& szDefault) const; - bool Read(const wxString& key, long *plResult) const; - - // The following are necessary to satisfy the compiler - wxString Read(const wxString& key, const wxString& defVal) const - { return wxConfigBase::Read(key, defVal); } - bool Read(const wxString& key, long *pl, long defVal) const - { return wxConfigBase::Read(key, pl, defVal); } - bool Read(const wxString& key, int *pi, int defVal) const - { return wxConfigBase::Read(key, pi, defVal); } - bool Read(const wxString& key, int *pi) const - { return wxConfigBase::Read(key, pi); } - long Read(const wxString& key, long defVal) const - { return wxConfigBase::Read(key, defVal); } - bool Read(const wxString& key, double* val) const - { return wxConfigBase::Read(key, val); } - bool Read(const wxString& key, double* val, double defVal) const - { return wxConfigBase::Read(key, val, defVal); } - - bool Write(const wxString& key, const wxString& szValue); - bool Write(const wxString& key, long lValue); - - virtual bool Flush(bool /* bCurrentOnly = FALSE */ ) { return TRUE; } - - // rename - virtual bool RenameEntry(const wxString& oldName, const wxString& newName); - virtual bool RenameGroup(const wxString& oldName, const wxString& newName); - - // delete - virtual bool DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso); - virtual bool DeleteGroup(const wxString& key); - virtual bool DeleteAll(); - -private: - // no copy ctor/assignment operator - wxRegConfig(const wxRegConfig&); - wxRegConfig& operator=(const wxRegConfig&); - - // these keys are opened during all lifetime of wxRegConfig object - wxRegKey m_keyLocalRoot, m_keyLocal, - m_keyGlobalRoot, m_keyGlobal; - - // current path (not '/' terminated) - wxString m_strPath; -}; - -#endif //_REGCONF_H diff --git a/include/wx/msw/region.h b/include/wx/msw/region.h deleted file mode 100644 index 4349debda6..0000000000 --- a/include/wx/msw/region.h +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: wxRegion class -// Author: Markus Holzem, Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGION_H_ -#define _WX_REGION_H_ - -#ifdef __GNUG__ -#pragma interface "region.h" -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxPoint; - -enum wxRegionContain { - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -class WXDLLEXPORT wxRegion : public wxGDIObject { -DECLARE_DYNAMIC_CLASS(wxRegion); - friend class WXDLLEXPORT wxRegionIterator; -public: - wxRegion(long x, long y, long w, long h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(WXHRGN hRegion); // Hangs on to this region - - wxRegion(void); - ~wxRegion(void); - - //# Copying - inline wxRegion(const wxRegion& r) - { Ref(r); } - inline wxRegion& operator = (const wxRegion& r) - { Ref(r); return (*this); } - - //# Modify region - // Clear current region - void Clear(void); - - // Union rectangle or region with this. - inline bool Union(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_OR); } - inline bool Union(const wxRect& rect) { return Combine(rect, wxRGN_OR); } - inline bool Union(const wxRegion& region) { return Combine(region, wxRGN_OR); } - - // Intersect rectangle or region with this. - inline bool Intersect(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_AND); } - inline bool Intersect(const wxRect& rect) { return Combine(rect, wxRGN_AND); } - inline bool Intersect(const wxRegion& region) { return Combine(region, wxRGN_AND); } - - // Subtract rectangle or region from this: - // Combines the parts of 'this' that are not part of the second region. - inline bool Subtract(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_DIFF); } - inline bool Subtract(const wxRect& rect) { return Combine(rect, wxRGN_DIFF); } - inline bool Subtract(const wxRegion& region) { return Combine(region, wxRGN_DIFF); } - - // XOR: the union of two combined regions except for any overlapping areas. - inline bool Xor(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_XOR); } - inline bool Xor(const wxRect& rect) { return Combine(rect, wxRGN_XOR); } - inline bool Xor(const wxRegion& region) { return Combine(region, wxRGN_XOR); } - - //# Information on region - // Outer bounds of region - void GetBox(long& x, long& y, long&w, long &h) const; - wxRect GetBox(void) const ; - - // Is region empty? - bool Empty(void) const; - inline bool IsEmpty(void) const { return Empty(); } - - //# Tests - // Does the region contain the point (x,y)? - wxRegionContain Contains(long x, long y) const; - // Does the region contain the point pt? - wxRegionContain Contains(const wxPoint& pt) const; - // Does the region contain the rectangle (x, y, w, h)? - wxRegionContain Contains(long x, long y, long w, long h) const; - // Does the region contain the rectangle rect? - wxRegionContain Contains(const wxRect& rect) const; - -// Internal - bool Combine(long x, long y, long width, long height, wxRegionOp op); - bool Combine(const wxRegion& region, wxRegionOp op); - bool Combine(const wxRect& rect, wxRegionOp op); - - // Get internal region handle - WXHRGN GetHRGN() const; -}; - -class WXDLLEXPORT wxRegionIterator : public wxObject { -DECLARE_DYNAMIC_CLASS(wxRegionIterator); -public: - wxRegionIterator(void); - wxRegionIterator(const wxRegion& region); - ~wxRegionIterator(void); - - void Reset(void) { m_current = 0; } - void Reset(const wxRegion& region); - -#ifndef __SALFORDC__ - operator bool (void) const { return (m_current < m_numRects); } -#endif - - bool HaveRects(void) const { return (m_current < m_numRects); } - - void operator ++ (void); - void operator ++ (int); - - long GetX(void) const; - long GetY(void) const; - long GetW(void) const; - long GetWidth(void) const { return GetW(); } - long GetH(void) const; - long GetHeight(void) const { return GetH(); } - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); } - -private: - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; -}; - -#endif - // _WX_REGION_H_ diff --git a/include/wx/msw/registry.h b/include/wx/msw/registry.h deleted file mode 100644 index 3bdce82bca..0000000000 --- a/include/wx/msw/registry.h +++ /dev/null @@ -1,216 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/registry.h -// Purpose: Registry classes and functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.198 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _REGISTRY_H -#define _REGISTRY_H - -#ifdef __GNUG__ -#pragma interface "registry.h" -#endif - -// ---------------------------------------------------------------------------- -// mutable hack (see also registry.cpp) -// ---------------------------------------------------------------------------- -#if wxUSE_MUTABLE - #define MUTABLE mutable -#else - #define MUTABLE -#endif - -// ---------------------------------------------------------------------------- -// types used in this module -// ---------------------------------------------------------------------------- - -/* -#ifndef HKEY_DEFINED - #define HKEY_DEFINED - #define HKEY unsigned long -#endif -*/ - -typedef unsigned long ulong; - -// ---------------------------------------------------------------------------- -// class wxRegKey encapsulates window HKEY handle -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxRegKey -{ -public: - // NB: do _not_ change the values of elements in these enumerations! - - // registry value types (with comments from winnt.h) - enum ValueType - { - Type_None, // No value type - Type_String, // Unicode nul terminated string -#ifdef __WIN32__ - Type_Expand_String, // Unicode nul terminated string - // (with environment variable references) - Type_Binary, // Free form binary - Type_Dword, // 32-bit number - Type_Dword_little_endian, // 32-bit number (same as Type_DWORD) - Type_Dword_big_endian, // 32-bit number - Type_Link, // Symbolic Link (unicode) - Type_Multi_String, // Multiple Unicode strings - Type_Resource_list, // Resource list in the resource map - Type_Full_resource_descriptor, // Resource list in the hardware description - Type_Resource_requirements_list // ??? -#endif //WIN32 - }; - - // predefined registry keys - enum StdKey - { - HKCR // classes root -#ifdef __WIN32__ - , HKCU, // current user - HKLM, // local machine - HKUSR, // users - HKPD // performance data (@@ NT only?) -#if WINVER >= 0x0400 - , HKCC, // current config - HKDD // dynamic data -#endif // Winver -#endif // Win32/16 - }; - - // information about standard (predefined) registry keys - // number of standard keys - static const size_t nStdKeys; - // get the name of a standard key - static const wxChar *GetStdKeyName(size_t key); - // get the short name of a standard key - static const wxChar *GetStdKeyShortName(size_t key); - // get StdKey from root HKEY - static StdKey GetStdKeyFromHkey(WXHKEY hkey); - - // extacts the std key prefix from the string (return value) and - // leaves only the part after it (i.e. modifies the string passed!) - static StdKey ExtractKeyName(wxString& str); - - // ctors - // root key is set to HKCR (the only root key under Win16) - wxRegKey(); - // strKey is the full name of the key (i.e. starting with HKEY_xxx...) - wxRegKey(const wxString& strKey); - // strKey is the name of key under (standard key) keyParent - wxRegKey(StdKey keyParent, const wxString& strKey); - // strKey is the name of key under (previously created) keyParent - wxRegKey(const wxRegKey& keyParent, const wxString& strKey); - // - ~wxRegKey(); - - // change key (closes the previously opened key if any) - // the name is absolute, i.e. should start with HKEY_xxx - void SetName(const wxString& strKey); - // the name is relative to the parent key - void SetName(StdKey keyParent, const wxString& strKey); - // the name is relative to the parent key - void SetName(const wxRegKey& keyParent, const wxString& strKey); - // hKey should be opened and will be closed in wxRegKey dtor - void SetHkey(WXHKEY hKey); - - // get infomation about the key - // get the (full) key name. Abbreviate std root keys if bShortPrefix. - wxString GetName(bool bShortPrefix = TRUE) const; - // return true if the key exists - bool Exists() const; - // get the info about key (any number of these pointers may be NULL) - -#ifdef __GNUWIN32__ - bool GetKeyInfo(size_t *pnSubKeys, // number of subkeys - size_t *pnMaxKeyLen, // max len of subkey name - size_t *pnValues, // number of values - size_t *pnMaxValueLen) const; -#else - bool GetKeyInfo(ulong *pnSubKeys, // number of subkeys - ulong *pnMaxKeyLen, // max len of subkey name - ulong *pnValues, // number of values - ulong *pnMaxValueLen) const; -#endif - // return true if the key is opened - bool IsOpened() const { return m_hKey != 0; } - // for "if ( !key ) wxLogError(...)" kind of expressions - operator bool() const { return m_dwLastError == 0; } - - // operations on the key itself - // explicitly open the key (will be automatically done by all functions - // which need the key to be opened if the key is not opened yet) - bool Open(); - // create the key: will fail if the key already exists and bOkIfExists - bool Create(bool bOkIfExists = TRUE); - // close the key (will be automatically done in dtor) - bool Close(); - - // deleting keys/values - // deletes this key and all of it's subkeys/values - bool DeleteSelf(); - // deletes the subkey with all of it's subkeys/values recursively - bool DeleteKey(const wxChar *szKey); - // deletes the named value (may be NULL to remove the default value) - bool DeleteValue(const wxChar *szValue); - - // access to values and subkeys - // get value type - ValueType GetValueType(const wxChar *szValue) const; - // returns TRUE if the value contains a number (else it's some string) - bool IsNumericValue(const wxChar *szValue) const; - - // assignment operators set the default value of the key - wxRegKey& operator=(const wxString& strValue) - { SetValue(NULL, strValue); return *this; } - wxRegKey& operator=(long lValue) - { SetValue(NULL, lValue); return *this; } - - // conversion operators query the default value of the key - operator wxString() const; - - // set the string value - bool SetValue(const wxChar *szValue, const wxString& strValue); - // return the string value - bool QueryValue(const wxChar *szValue, wxString& strValue) const; - -#ifdef __WIN32__ - // set the numeric value - bool SetValue(const wxChar *szValue, long lValue); - // return the numeric value - bool QueryValue(const wxChar *szValue, long *plValue) const; -#endif //Win32 - - // query existence of a key/value - // return true if value exists - bool HasValue(const wxChar *szKey) const; - // return true if given subkey exists - bool HasSubKey(const wxChar *szKey) const; - // return true if any subkeys exist - bool HasSubkeys() const; - - // enumerate values and subkeys - bool GetFirstValue(wxString& strValueName, long& lIndex); - bool GetNextValue (wxString& strValueName, long& lIndex) const; - - bool GetFirstKey (wxString& strKeyName , long& lIndex); - bool GetNextKey (wxString& strKeyName , long& lIndex) const; - -private: - // no copy ctor/assignment operator - wxRegKey(const wxRegKey& key); // not implemented - wxRegKey& operator=(const wxRegKey& key); // not implemented - - WXHKEY m_hKey, // our handle - m_hRootKey; // handle of the top key (i.e. StdKey) - wxString m_strKey; // key name (relative to m_hRootKey) - - MUTABLE long m_dwLastError; // last error (0 if none) -}; - -#endif //_REGISTRY_H - diff --git a/include/wx/msw/roller.cur b/include/wx/msw/roller.cur deleted file mode 100644 index bb7f16613384321a0a749dd94a669c8412bff613..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmc)Eu?@m75QX7)i4X+^RH-6#B_$=LN1#dXP2v$UN2c%yjKBy?!10G5WdzRpY(MK{ zoz%$WE~?knq>kGKjs#vybS+aqEN+zK*oIOF(~_HU_;mu%^cC^pa4h9U7~#-04& feWKl^v97-qVuIs@9?NtG?26P>rptuN41cW;gqE8j diff --git a/include/wx/msw/scrolbar.h b/include/wx/msw/scrolbar.h deleted file mode 100644 index ec4e2dfebd..0000000000 --- a/include/wx/msw/scrolbar.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrollbar.h -// Purpose: wxScrollBar class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "scrolbar.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxScrollBarNameStr; - -// Scrollbar item -class WXDLLEXPORT wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - -public: - wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - ~wxScrollBar(); - - wxScrollBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - int GetThumbPosition() const ; - int GetThumbSize() const { return m_pageSize; } - int GetPageSize() const { return m_viewSize; } - int GetRange() const { return m_objectSize; } - - virtual void SetThumbPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE); - -#if WXWIN_COMPATIBILITY - // Backward compatibility - int GetValue() const { return GetThumbPosition(); } - void SetValue(int viewStart) { SetThumbPosition(viewStart); } - void GetValues(int *viewStart, int *viewLength, int *objectLength, - int *pageLength) const ; - int GetViewLength() const { return m_viewSize; } - int GetObjectLength() const { return m_objectSize; } - - void SetPageSize(int pageLength); - void SetObjectLength(int objectLength); - void SetViewLength(int viewLength); -#endif - - void Command(wxCommandEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - -#if WXWIN_COMPATIBILITY - // Backward compatibility: generate an old-style scroll command - void OnScroll(wxScrollEvent& event); -#endif // WXWIN_COMPATIBILITY - -protected: - int m_pageSize; - int m_viewSize; - int m_objectSize; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SCROLBAR_H_ diff --git a/include/wx/msw/settings.h b/include/wx/msw/settings.h deleted file mode 100644 index 2df189e9ae..0000000000 --- a/include/wx/msw/settings.h +++ /dev/null @@ -1,129 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: wxSystemSettings class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_ -#define _WX_SETTINGS_H_ - -#ifdef __GNUG__ -#pragma interface "settings.h" -#endif - -#include "wx/setup.h" - -#define wxSYS_WHITE_BRUSH 0 -#define wxSYS_LTGRAY_BRUSH 1 -#define wxSYS_GRAY_BRUSH 2 -#define wxSYS_DKGRAY_BRUSH 3 -#define wxSYS_BLACK_BRUSH 4 -#define wxSYS_NULL_BRUSH 5 -#define wxSYS_HOLLOW_BRUSH wxSYS_NULL_BRUSH -#define wxSYS_WHITE_PEN 6 -#define wxSYS_BLACK_PEN 7 -#define wxSYS_NULL_PEN 8 -#define wxSYS_OEM_FIXED_FONT 10 -#define wxSYS_ANSI_FIXED_FONT 11 -#define wxSYS_ANSI_VAR_FONT 12 -#define wxSYS_SYSTEM_FONT 13 -#define wxSYS_DEVICE_DEFAULT_FONT 14 -#define wxSYS_DEFAULT_PALETTE 15 -#define wxSYS_SYSTEM_FIXED_FONT 16 // Obsolete -#define wxSYS_DEFAULT_GUI_FONT 17 - -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT - -// Metrics -#define wxSYS_MOUSE_BUTTONS 1 -#define wxSYS_BORDER_X 2 -#define wxSYS_BORDER_Y 3 -#define wxSYS_CURSOR_X 4 -#define wxSYS_CURSOR_Y 5 -#define wxSYS_DCLICK_X 6 -#define wxSYS_DCLICK_Y 7 -#define wxSYS_DRAG_X 8 -#define wxSYS_DRAG_Y 9 -#define wxSYS_EDGE_X 10 -#define wxSYS_EDGE_Y 11 -#define wxSYS_HSCROLL_ARROW_X 12 -#define wxSYS_HSCROLL_ARROW_Y 13 -#define wxSYS_HTHUMB_X 14 -#define wxSYS_ICON_X 15 -#define wxSYS_ICON_Y 16 -#define wxSYS_ICONSPACING_X 17 -#define wxSYS_ICONSPACING_Y 18 -#define wxSYS_WINDOWMIN_X 19 -#define wxSYS_WINDOWMIN_Y 20 -#define wxSYS_SCREEN_X 21 -#define wxSYS_SCREEN_Y 22 -#define wxSYS_FRAMESIZE_X 23 -#define wxSYS_FRAMESIZE_Y 24 -#define wxSYS_SMALLICON_X 25 -#define wxSYS_SMALLICON_Y 26 -#define wxSYS_HSCROLL_Y 27 -#define wxSYS_VSCROLL_X 28 -#define wxSYS_VSCROLL_ARROW_X 29 -#define wxSYS_VSCROLL_ARROW_Y 30 -#define wxSYS_VTHUMB_Y 31 -#define wxSYS_CAPTION_Y 32 -#define wxSYS_MENU_Y 33 -#define wxSYS_NETWORK_PRESENT 34 -#define wxSYS_PENWINDOWS_PRESENT 35 -#define wxSYS_SHOW_SOUNDS 36 -#define wxSYS_SWAP_BUTTONS 37 - -class WXDLLEXPORT wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings(void) {} - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // _WX_SETTINGS_H_ diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h deleted file mode 100644 index 2d2b52a2dc..0000000000 --- a/include/wx/msw/setup0.h +++ /dev/null @@ -1,319 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: setup.h -// Purpose: Configuration for the library -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - -/* - * General features - * - */ - -#define wxUSE_CONFIG 1 - // Use wxConfig, with CreateConfig in wxApp - -#define WXWIN_COMPATIBILITY 0 - // Compatibility with 1.68 API. - // Level 0: no backward compatibility, all new features - // Level 1: Some compatibility. In fact - // the compatibility code is now very minimal so there - // is little advantage to setting it to 1. - -#define wxUSE_POSTSCRIPT 0 - // 0 for no PostScript device context -#define wxUSE_AFM_FOR_POSTSCRIPT 0 - // 1 to use font metric files in GetTextExtent -#define wxUSE_METAFILE 1 - // 0 for no Metafile and metafile device context -#define wxUSE_IPC 1 - // 0 for no interprocess comms -// Note: wxHELP uses IPC under X so these are interdependent! -#define wxUSE_HELP 1 - // 0 for no help facility -#define wxUSE_RESOURCES 1 - // 0 for no wxGetResource/wxWriteResource -#define wxUSE_CONSTRAINTS 1 - // 0 for no window layout constraint system - -#define wxUSE_TIMEDATE 1 - // 0 for no wxTime/wxDate classes - -#define wxUSE_CLIPBOARD 1 - // 0 for no clipboard functions - -#define wxUSE_SPLINES 1 - // 0 for no splines - -#define wxUSE_DRAG_AND_DROP 1 - // 0 for no drag and drop - -#define wxUSE_TOOLBAR 1 - // Define 1 to use toolbar classes -#define wxUSE_BUTTONBAR 1 - // Define 1 to use buttonbar classes (enhanced toolbar - // for MS Windows) -#define wxUSE_GAUGE 1 - // Define 1 to use Microsoft's gauge (Windows) - // or Bull's gauge (Motif) library (both in contrib). -#define wxUSE_COMBOBOX 1 - // Define 1 to use COMBOXBOX control (Windows) - // or FWW's ComboBox widget (Motif). -#define wxUSE_RADIOBUTTON 1 - // Define 1 to use radio button control - -#define wxUSE_SCROLLBAR 1 - // Define 1 to compile contributed wxScrollBar class -#define wxUSE_CARET 1 - // Define 1 to use wxCaret class -#define wxUSE_XPM_IN_MSW 1 - // Define 1 to support the XPM package in wxBitmap. -#define wxUSE_IMAGE_LOADING_IN_MSW 1 - // Use dynamic DIB loading/saving code in utils/dib under MSW. -#define wxUSE_RESOURCE_LOADING_IN_MSW 1 - // Use dynamic icon/cursor loading/saving code - // under MSW. -#define wxUSE_WX_RESOURCES 1 - // Use .wxr resource mechanism (requires PrologIO library) - -// BC++/Win16 can't cope with the amount of data in resource.cpp -#if defined(__WIN16__) && defined(__BORLANDC__) -#undef wxUSE_WX_RESOURCES -#define wxUSE_WX_RESOURCES 0 -#endif - -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - // Set to 0 to disable document/view architecture -#define wxUSE_PRINTING_ARCHITECTURE 1 - // Set to 0 to disable print/preview architecture code -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1 - // Set to 0 to disable PostScript print/preview architecture code - // under Windows (just use Windows printing). -#define wxUSE_DYNAMIC_CLASSES 1 - // If 1, enables provision of run-time type information. - // NOW MANDATORY: don't change. -#define wxUSE_MEMORY_TRACING 1 - // If 1, enables debugging versions of wxObject::new and - // wxObject::delete *IF* __WXDEBUG__ is also defined. - // WARNING: this code may not work with all architectures, especially - // if alignment is an issue. -#define wxUSE_DEBUG_CONTEXT 1 - // If 1, enables wxDebugContext, for - // writing error messages to file, etc. - // If __WXDEBUG__ is not defined, will still use - // normal memory operators. - // It's recommended to set this to 1, - // since you may well need to output - // an error log in a production - // version (or non-debugging beta) -#define wxUSE_GLOBAL_MEMORY_OPERATORS 1 - // In debug mode, cause new and delete to be redefined globally. - // If this causes problems (e.g. link errors), set this to 0. - -#define wxUSE_DEBUG_NEW_ALWAYS 1 - // In debug mode, causes new to be defined to - // be WXDEBUG_NEW (see object.h). - // If this causes problems (e.g. link errors), set this to 0. - // You may need to set this to 0 if using templates (at least - // for VC++). - -#define REMOVE_UNUSED_ARG 1 - // Set this to 0 if your compiler can't cope - // with omission of prototype parameters. - -#define wxUSE_ODBC 1 - // Define 1 to use ODBC classes - -#ifndef __MWERKS__ -#define wxUSE_IOSTREAMH 1 -#else -#define wxUSE_IOSTREAMH 1 -#endif - // VC++ 4.2 and above allows and - // but you can't mix them. Set to 1 for , - // 0 for - -#define wxUSE_STREAMS 1 - // If enabled (1), compiles wxWindows streams classes - -#define wxUSE_STD_IOSTREAM 1 - // Use standard C++ streams if 1. If 0, use wxWin - // streams implementation. - -#define wxUSE_WXCONFIG 1 - // if enabled, compiles built-in OS independent wxConfig - // class and it's file (any platform) and registry (Win) - // based implementations -#define wxUSE_THREADS 1 - // support for multithreaded applications: if - // 1, compile in thread classes (thread.h) - // and make the library thread safe -#define wxUSE_ZLIB 1 - // Use zlib for compression in streams and PNG code -#define wxUSE_LIBPNG 1 - // Use PNG bitmap code -#define wxUSE_LIBJPEG 0 - // Use JPEG bitmap code -#define wxUSE_SERIAL 0 - // Use serialization (requires utils/serialize) -#define wxUSE_DYNLIB_CLASS 0 - // Compile in wxLibrary class for run-time - // DLL loading and function calling -#define wxUSE_TOOLTIPS 1 - // Define to use wxToolTip class and - // wxWindow::SetToolTip() method -#define wxUSE_SOCKETS 0 - // Set to 1 to use socket classes - -// these settings can't be set to 0 for now -#define wxUSE_INTL 1 -#define wxUSE_LOG 1 -#define wxUSE_VALIDATORS 1 -#define wxUSE_ACCEL 1 -#define wxUSE_SASH 1 -#define wxUSE_TEXTDLG 1 - -/* - * Finer detail - * - */ - -#define wxUSE_APPLE_IEEE 1 - // if enabled, the float codec written by Apple - // will be used to write, in a portable way, - // float on the disk - -/* - * MS Windows/Windows NT - * - */ - -#define wxUSE_OLE 1 - // drag-and-drop, clipboard, OLE Automation - -#if defined(__WIN95__) -#define wxUSE_CTL3D 0 -#else -#define wxUSE_CTL3D 1 - // Define 1 to use Microsoft CTL3D library. - // See note above about using FAFA and CTL3D. -#endif - -#define wxUSE_COMMON_DIALOGS 1 - // On rare occasions (e.g. using DJGPP) may want - // to omit common dialogs - // (e.g. file selector, printer dialog). - // Switching this off also switches off - // the printing architecture and interactive - // wxPrinterDC. -#define wxUSE_ITSY_BITSY 1 - // Define 1 to use Microsoft's ItsyBitsy - // small title bar library, for wxMiniFrame -#define wxUSE_BITMAP_MESSAGE 1 - // Define 1 to use bitmap messages. -#define wxUSE_PORTABLE_FONTS_IN_MSW 0 - // Define 1 to use new portable font scheme in Windows - // (used by default under X) -#define wxFONT_SIZE_COMPATIBILITY 0 - // Define 1 for font size to be backward compatible - // to 1.63 and earlier. 1.64 and later define point - // sizes to be compatible with Windows. -#define wxUSE_GENERIC_DIALOGS_IN_MSW 1 - // Define 1 to use generic dialogs in Windows, even though - // they duplicate native common dialog (e.g. wxColourDialog) -#define wxUSE_PENWINDOWS 0 - // Set to 1 to use PenWindows - -#define wxUSE_OWNER_DRAWN 1 - // Owner-drawn menus and listboxes - -#define wxUSE_NATIVE_STATUSBAR 1 - // Set to 0 to use cross-platform wxStatusBar -#define wxUSE_DBWIN32 1 - // Use Andrew Tucker's OutputDebugString implementation - // (required on Win95 only). See utils.cpp. - -/* - * Any platform - * - */ - -#define wxUSE_TYPEDEFS 0 - // Use typedefs not classes for wxPoint - // and others, to reduce overhead and avoid - // MS C7 memory bug. Bounds checker - // complains about deallocating - // arrays of wxPoints if wxPoint is a class. - -#if (!defined(WIN32) && !defined(__WIN32__)) || defined(__GNUWIN32__) -// Can't use OLE drag and drop in Windows 3.1 because we don't know how -// to implement UUIDs -// GnuWin32 doesn't have appropriate headers for e.g. IUnknown. -#undef wxUSE_DRAG_AND_DROP -#define wxUSE_DRAG_AND_DROP 0 -#endif - -// Only WIN32 supports wxStatusBar95 -#if !defined(__WIN32__) && wxUSE_NATIVE_STATUSBAR -#undef wxUSE_NATIVE_STATUSBAR -#define wxUSE_NATIVE_STATUSBAR 0 -#endif - -// Salford C++ doesn't like some of the memory operator definitions -#ifdef __SALFORDC__ -#undef wxUSE_MEMORY_TRACING -#define wxUSE_MEMORY_TRACING 0 - -#undef wxUSE_GLOBAL_MEMORY_OPERATORS -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - -#undef wxUSE_DEBUG_NEW_ALWAYS -#define wxUSE_DEBUG_NEW_ALWAYS 0 - -#undef wxUSE_THREADS -#define wxUSE_THREADS 0 - -#undef wxUSE_DBWIN32 -#define wxUSE_DBWIN32 0 - -#undef wxUSE_OWNER_DRAWN -#define wxUSE_OWNER_DRAWN 0 -#endif - -#ifdef __TWIN32__ - -#undef wxUSE_THREADS -#define wxUSE_THREADS 0 - -#undef wxUSE_DBWIN32 -#define wxUSE_DBWIN32 0 - -#undef wxUSE_ODBC -#define wxUSE_ODBC 0 - -#endif - -#if defined(__WXMSW__) && defined(__BORLANDC__) -#undef wxUSE_ODBC -#define wxUSE_ODBC 0 -#endif - -#if defined(__WXMSW__) && !defined(__WIN32__) - -#undef wxUSE_THREADS -#define wxUSE_THREADS 0 - -#undef wxUSE_TOOLTIPS -#define wxUSE_TOOLTIPS 0 - -#endif - -#endif - // _WX_SETUP_H_ diff --git a/include/wx/msw/size.cur b/include/wx/msw/size.cur deleted file mode 100644 index 01a731c1b21b8c373b8f358e7501fd02d9d9ec4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZvWF%p763`O6Xf=)VHC@sAK9&4@OXdHzjP*O0)`~?Sf%uY7>KgmzvM51lsOwBF9 z1-OO>#XUU5E4GIX9KX9C;4`xT)d2Mf%>=@`Cp%$gRAxi%KFXDgQ|;YXqGqKbEzSS2 zxZ&H@fJ^T_ckWZOZ-_0yJ@doYoPEi;pP`$!>l)?aR8voxFPFufG^8a>Y5&*@<;HQ& diff --git a/include/wx/msw/slider.h b/include/wx/msw/slider.h deleted file mode 100644 index 95cf43b5f6..0000000000 --- a/include/wx/msw/slider.h +++ /dev/null @@ -1,30 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: wxSlider header, includes slider class headers as appropriate -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _SLIDER_H_ -#define _SLIDER_H_ - -#ifdef __GNUG__ -#pragma interface "slider.h" -#endif - -#ifdef __WIN95__ -#include "wx/msw/slider95.h" -#define wxSlider wxSlider95 -#define sm_classwxSlider sm_classwxSlider95 -#else -#include "wx/msw/slidrmsw.h" -#define wxSlider wxSliderMSW -#define sm_classwxSlider sm_classwxSliderMSW -#endif - -#endif - // _SLIDER_H_ diff --git a/include/wx/msw/slider95.h b/include/wx/msw/slider95.h deleted file mode 100644 index 1a38d44350..0000000000 --- a/include/wx/msw/slider95.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider95.h -// Purpose: wxSlider95 class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _SLIDER95_H_ -#define _SLIDER95_H_ - -#ifdef __GNUG__ -#pragma interface "slider95.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxSliderNameStr; - -// Slider -class WXDLLEXPORT wxSlider95 : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSlider95) - -public: - wxSlider95(); - - wxSlider95(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - ~wxSlider95(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const ; - virtual void SetValue(int); - - void GetSize(int *x, int *y) const ; - void GetPosition(int *x, int *y) const ; - - bool Show(bool show); - - void SetRange(int minValue, int maxValue); - - int GetMin() const { return m_rangeMin; } - int GetMax() const { return m_rangeMax; } - - // For trackbars only - void SetTickFreq(int n, int pos); - int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const ; - void ClearSel() ; - void ClearTicks() ; - void SetLineSize(int lineSize); - int GetLineSize() const ; - int GetSelEnd() const ; - int GetSelStart() const ; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len) ; - int GetThumbLength() const ; - void SetTick(int tickPos) ; - - // IMPLEMENTATION - WXHWND GetStaticMin() const { return m_staticMin; } - WXHWND GetStaticMax() const { return m_staticMax; } - WXHWND GetEditValue() const { return m_staticValue; } - virtual bool ContainsHWND(WXHWND hWnd) const; - - void Command(wxCommandEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - -protected: - WXHWND m_staticMin; - WXHWND m_staticMax; - WXHWND m_staticValue; - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _SLIDER95_H_ diff --git a/include/wx/msw/slidrmsw.h b/include/wx/msw/slidrmsw.h deleted file mode 100644 index cac82c6c96..0000000000 --- a/include/wx/msw/slidrmsw.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slidrmsw.h -// Purpose: wxSliderMSW class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _SLIDRMSW_H_ -#define _SLIDRMSW_H_ - -#ifdef __GNUG__ -#pragma interface "slidrmsw.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxSliderNameStr; - -// Slider -class WXDLLEXPORT wxSliderMSW : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSliderMSW) - -public: - wxSliderMSW(); - - wxSliderMSW(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - ~wxSliderMSW(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const ; - virtual void SetValue(int); - - void GetSize(int *x, int *y) const ; - void GetPosition(int *x, int *y) const ; - - bool Show(bool show); - - void SetRange(int minValue, int maxValue); - - int GetMin() const { return m_rangeMin; } - int GetMax() const { return m_rangeMax; } - - // For trackbars only - void SetTickFreq(int n, int pos); - int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const ; - void ClearSel() ; - void ClearTicks() ; - void SetLineSize(int lineSize); - int GetLineSize() const ; - int GetSelEnd() const ; - int GetSelStart() const ; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len) ; - int GetThumbLength() const ; - void SetTick(int tickPos) ; - - // IMPLEMENTATION - WXHWND GetStaticMin() const { return m_staticMin; } - WXHWND GetStaticMax() const { return m_staticMax; } - WXHWND GetEditValue() const { return m_staticValue; } - virtual bool ContainsHWND(WXHWND hWnd) const; - - void Command(wxCommandEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - -protected: - WXHWND m_staticMin; - WXHWND m_staticMax; - WXHWND m_staticValue; - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _SLIDRMSW_H_ diff --git a/include/wx/msw/spinbutt.h b/include/wx/msw/spinbutt.h deleted file mode 100644 index 161df41293..0000000000 --- a/include/wx/msw/spinbutt.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.h -// Purpose: wxSpinButton class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_ -#define _WX_SPINBUTT_H_ - -#ifdef __GNUG__ -#pragma interface "spinbutt.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" - -#if defined(__WIN95__) - -/* - The wxSpinButton is like a small scrollbar than is often placed next - to a text control. - - wxSP_HORIZONTAL: horizontal spin button - wxSP_VERTICAL: vertical spin button (the default) - wxSP_ARROW_KEYS: arrow keys increment/decrement value - wxSP_WRAP: value wraps at either end - */ - -class WXDLLEXPORT wxSpinButton : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxSpinButton) - -public: - /* - * Public interface - */ - wxSpinButton(); - - wxSpinButton(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL | wxSP_ARROW_KEYS, - const wxString& name = "wxSpinButton") - { - Create(parent, id, pos, size, style, name); - } - - virtual ~wxSpinButton(); - - bool Create(wxWindow *parent, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL | wxSP_ARROW_KEYS, - const wxString& name = "wxSpinButton"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - int GetValue() const ; - void SetValue(int val) ; - void SetRange(int minVal, int maxVal); - int GetMin() const { return m_min; } - int GetMax() const { return m_max; } - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // IMPLEMENTATION - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control); - -protected: - int m_min; - int m_max; -}; - -class WXDLLEXPORT wxSpinEvent: public wxScrollEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - -public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// Spin events - -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } - -#define EVT_SPIN(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, - -#endif - // _WX_WIN95__ -#endif - // _WX_SPINBUTT_H_ diff --git a/include/wx/msw/statbmp.h b/include/wx/msw/statbmp.h deleted file mode 100644 index 6c0669b806..0000000000 --- a/include/wx/msw/statbmp.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: wxStaticBitmap class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_ -#define _WX_STATBMP_H_ - -#ifdef __GNUG__ - #pragma interface "statbmp.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticBitmapNameStr; - -// a control showing an icon or a bitmap -class WXDLLEXPORT wxStaticBitmap : public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - -public: - wxStaticBitmap() { Init(); } - - wxStaticBitmap(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, - wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual ~wxStaticBitmap() { Free(); } - - virtual void SetIcon(const wxIcon& icon) { SetBitmap(icon); } - virtual void SetBitmap(const wxBitmap& bitmap); - - // assert failure is provoked by an attempt to get an icon from bitmap or - // vice versa - const wxIcon& GetIcon() const - { wxASSERT( m_isIcon ); return *m_image.icon; } - const wxBitmap& GetBitmap() const - { wxASSERT( !m_isIcon ); return *m_image.bitmap; } - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - - // IMPLEMENTATION -#ifdef __WIN16__ - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); -#endif // __WIN16__ - -protected: - void Init() { m_isIcon = TRUE; m_image.icon = NULL; } - void Free(); - - // TRUE if icon/bitmap is valid - bool ImageIsOk() const; - - // we can have either an icon or a bitmap - bool m_isIcon; - union - { - wxIcon *icon; - wxBitmap *bitmap; - } m_image; - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_STATBMP_H_ diff --git a/include/wx/msw/statbox.h b/include/wx/msw/statbox.h deleted file mode 100644 index 361fc3608f..0000000000 --- a/include/wx/msw/statbox.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.h -// Purpose: wxStaticBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_ -#define _WX_STATBOX_H_ - -#ifdef __GNUG__ -#pragma interface "statbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticBoxNameStr; - -// Group box -class WXDLLEXPORT wxStaticBox : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxStaticBox) - -public: - wxStaticBox() { } - - wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - void OnEraseBackground(wxEraseEvent& event); - - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - void SetLabel(const wxString& label); - - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_STATBOX_H_ diff --git a/include/wx/msw/statbr95.h b/include/wx/msw/statbr95.h deleted file mode 100644 index ab844a5910..0000000000 --- a/include/wx/msw/statbr95.h +++ /dev/null @@ -1,55 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/statbr95.h -// Purpose: native implementation of wxStatusBar -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _STATBR95_H -#define _STATBR95_H - -#ifdef __GNUG__ -#pragma interface "statbr95.h" -#endif - -#if wxUSE_NATIVE_STATUSBAR - -class WXDLLEXPORT wxStatusBar95 : public wxStatusBar -{ - DECLARE_DYNAMIC_CLASS(wxStatusBar95); - -public: - // ctors - wxStatusBar95(); - wxStatusBar95(wxWindow *parent, wxWindowID id = -1, long style = wxST_SIZEGRIP); - - // create status line - bool Create(wxWindow *parent, wxWindowID id = -1, long style = wxST_SIZEGRIP); - - // a status line can have several (<256) fields numbered from 0 - virtual void SetFieldsCount(int number = 1, const int widths[] = NULL); - - // each field of status line has it's own text - virtual void SetStatusText(const wxString& text, int number = 0); - virtual wxString GetStatusText(int number = 0) const; - - // set status line fields' widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // we're going to process WM_SIZE (of the parent window) - void OnSize(wxSizeEvent& event); - - DECLARE_EVENT_TABLE() - -protected: - void CopyFieldsWidth(const int widths[]); - void SetFieldsWidth(); -}; - -#endif // wxUSE_NATIVE_STATUSBAR - -#endif //_STATBR95_H \ No newline at end of file diff --git a/include/wx/msw/stattext.h b/include/wx/msw/stattext.h deleted file mode 100644 index e59beeab30..0000000000 --- a/include/wx/msw/stattext.h +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: wxStaticText class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -#ifdef __GNUG__ - #pragma interface "stattext.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxStaticTextNameStr; - -class WXDLLEXPORT wxStaticText : public wxControl -{ -DECLARE_DYNAMIC_CLASS(wxStaticText) - -public: - wxStaticText() { } - - wxStaticText(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // accessors - void SetLabel(const wxString& label); - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - - // callbacks - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/include/wx/msw/std.ico b/include/wx/msw/std.ico deleted file mode 100644 index 00c8d8b8a4c243143ecca37973cbc13ea97484a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmchUJ#K_B5JqRCNGRTwoGLYCj*%nLZOak1r2%SJ^e*5AzCy~-Slqz-2D7YIiMGrK zV|e~N<3EuDPg%Z;>gPq|gYPF%5?{nYUTG2D-x@`DWgPQ|mS35sN$R@BNb4&p=^w$P zT{JQ4`{=WNbJI3$%>LkgoExMp-Va9~6>m)6oweSOId1unJjf&8$M5yXpPQKHXFjbT z<4kPpVSc#Xnf0OO#$+g?eSd8KsW=nWVq8{AHnS-AlC0H^#S{iEDoE^N7t>eRXJb=1 z2|dO!pr~95uvhLYY!^a0O)I+s+lAE0#%jCN!Gn$`8^7!H#@76^&e^5#c5!R{ijrDC i^O{{4>dU3a*WwHatd*Nyj8M@zy>r#Rzo&=s59SqGV?PG~ diff --git a/include/wx/msw/tabctrl.h b/include/wx/msw/tabctrl.h deleted file mode 100644 index c193c9d44c..0000000000 --- a/include/wx/msw/tabctrl.h +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.h -// Purpose: wxTabCtrl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TABCTRL_H_ -#define _WX_TABCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "tabctrl.h" -#endif - -class wxImageList; - -// WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr; - -/* - * Flags returned by HitTest - */ - -#define wxTAB_HITTEST_NOWHERE 1 -#define wxTAB_HITTEST_ONICON 2 -#define wxTAB_HITTEST_ONLABEL 4 -#define wxTAB_HITTEST_ONITEM 6 - -class WXDLLEXPORT wxTabCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxTabCtrl) - public: - /* - * Public interface - */ - - wxTabCtrl(); - - inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl") - { - Create(parent, id, pos, size, style, name); - } - ~wxTabCtrl(); - -// Accessors - - // Get the selection - int GetSelection() const; - - // Get the tab with the current keyboard focus - int GetCurFocus() const; - - // Get the associated image list - wxImageList* GetImageList() const; - - // Get the number of items - int GetItemCount() const; - - // Get the rect corresponding to the tab - bool GetItemRect(int item, wxRect& rect) const; - - // Get the number of rows - int GetRowCount() const; - - // Get the item text - wxString GetItemText(int item) const ; - - // Get the item image - int GetItemImage(int item) const; - - // Get the item data - void* GetItemData(int item) const; - - // Set the selection - int SetSelection(int item); - - // Set the image list - void SetImageList(wxImageList* imageList); - - // Set the text for an item - bool SetItemText(int item, const wxString& text); - - // Set the image for an item - bool SetItemImage(int item, int image); - - // Set the data for an item - bool SetItemData(int item, void* data); - - // Set the size for a fixed-width tab control - void SetItemSize(const wxSize& size); - - // Set the padding between tabs - void SetPadding(const wxSize& padding); - -// Operations - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl"); - - // Delete all items - bool DeleteAllItems(); - - // Delete an item - bool DeleteItem(int item); - - // Hit test - int HitTest(const wxPoint& pt, long& flags); - - // Insert an item - bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL); - - // Implementation - - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -protected: - wxImageList* m_imageList; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxTabEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxTabEvent) - - public: - wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&); - -#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, -#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, - -#endif - // _WX_TABCTRL_H_ diff --git a/include/wx/msw/taskbar.h b/include/wx/msw/taskbar.h deleted file mode 100644 index 966f030ee8..0000000000 --- a/include/wx/msw/taskbar.h +++ /dev/null @@ -1,104 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.h -// Purpose: Defines wxTaskBarIcon class for manipulating icons on the -// Windows task bar. -// Author: Julian Smart -// Modified by: -// Created: 24/3/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifndef _TASKBAR_H_ -#define _TASKBAR_H_ - -#ifdef __GNUG__ -#pragma interface "taskbar.h" -#endif - -#include -#include -#include - -class WXDLLEXPORT wxTaskBarIcon: public wxEvtHandler { - DECLARE_DYNAMIC_CLASS(wxTaskBarIcon) -public: - wxTaskBarIcon(void); - virtual ~wxTaskBarIcon(void); - -// Accessors - inline WXHWND GetHWND() const { return m_hWnd; } - inline bool IsOK() const { return (m_hWnd != 0) ; } - inline bool IsIconInstalled() const { return m_iconAdded; } - -// Operations - bool SetIcon(const wxIcon& icon, const wxString& tooltip = ""); - bool RemoveIcon(void); - bool PopupMenu(wxMenu *menu); //, int x, int y); - -// Overridables - virtual void OnMouseMove(wxEvent&); - virtual void OnLButtonDown(wxEvent&); - virtual void OnLButtonUp(wxEvent&); - virtual void OnRButtonDown(wxEvent&); - virtual void OnRButtonUp(wxEvent&); - virtual void OnLButtonDClick(wxEvent&); - virtual void OnRButtonDClick(wxEvent&); - -// Implementation - static wxTaskBarIcon* FindObjectForHWND(WXHWND hWnd); - static void AddObject(wxTaskBarIcon* obj); - static void RemoveObject(wxTaskBarIcon* obj); - static bool RegisterWindowClass(); - static WXHWND CreateTaskBarWindow(); - long WindowProc( WXHWND hWnd, unsigned int msg, unsigned int wParam, long lParam ); - -// Data members -protected: - WXHWND m_hWnd; - bool m_iconAdded; - static wxList sm_taskBarIcons; - static bool sm_registeredClass; - static unsigned int sm_taskbarMsg; - - // non-virtual default event handlers to forward events to the virtuals - void _OnMouseMove(wxEvent&); - void _OnLButtonDown(wxEvent&); - void _OnLButtonUp(wxEvent&); - void _OnRButtonDown(wxEvent&); - void _OnRButtonUp(wxEvent&); - void _OnLButtonDClick(wxEvent&); - void _OnRButtonDClick(wxEvent&); - - - DECLARE_EVENT_TABLE() -}; - - - -const wxEventType wxEVT_TASKBAR_MOVE = wxEVT_FIRST + 1550; -const wxEventType wxEVT_TASKBAR_LEFT_DOWN = wxEVT_FIRST + 1551; -const wxEventType wxEVT_TASKBAR_LEFT_UP = wxEVT_FIRST + 1552; -const wxEventType wxEVT_TASKBAR_RIGHT_DOWN = wxEVT_FIRST + 1553; -const wxEventType wxEVT_TASKBAR_RIGHT_UP = wxEVT_FIRST + 1554; -const wxEventType wxEVT_TASKBAR_LEFT_DCLICK = wxEVT_FIRST + 1555; -const wxEventType wxEVT_TASKBAR_RIGHT_DCLICK = wxEVT_FIRST + 1556; - - -#define EVT_TASKBAR_MOVE(fn) { wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_LEFT_DOWN(fn) { wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_LEFT_UP(fn) { wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_RIGHT_DOWN(fn) { wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_RIGHT_UP(fn) { wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_LEFT_DCLICK(fn) { wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, -#define EVT_TASKBAR_RIGHT_DCLICK(fn) { wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, - - -#endif - // _TASKBAR_H_ - - - - - diff --git a/include/wx/msw/tbar95.h b/include/wx/msw/tbar95.h deleted file mode 100644 index acbf6aed48..0000000000 --- a/include/wx/msw/tbar95.h +++ /dev/null @@ -1,94 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbar95.h -// Purpose: wxToolBar95 (Windows 95 toolbar) class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TBAR95_H_ -#define _WX_TBAR95_H_ - -#ifdef __GNUG__ -#pragma interface "tbar95.h" -#endif - -#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR -#include "wx/tbarbase.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr; - -class WXDLLEXPORT wxToolBar95: public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxToolBar95) - public: - /* - * Public interface - */ - - wxToolBar95(); - - wxToolBar95(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr) - { - Create(parent, id, pos, size, style, name); - } - ~wxToolBar95(); - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr); - - // Call default behaviour - void OnMouseEvent(wxMouseEvent& event); - - // Handle wxToolBar95 events - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - - // Set default bitmap size - void SetToolBitmapSize(const wxSize& size); - void EnableTool(int toolIndex, bool enable); // additional drawing on enabling - void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - void ClearTools(); - - // The button size is bigger than the bitmap size - wxSize GetToolSize() const; - - wxSize GetMaxSize() const; - - virtual bool GetToolState(int toolIndex) const; - - // Add all the buttons: required for Win95. - virtual bool CreateTools(); - virtual void SetRows(int nRows); - virtual void LayoutButtons() {} - - // The post-tool-addition call - bool Realize() { return CreateTools(); }; - - // IMPLEMENTATION - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -protected: - WXHBITMAP m_hBitmap; - -DECLARE_EVENT_TABLE() -}; - -#endif // wxUSE_TOOL/BUTTONBAR -#endif - // _WX_TBAR95_H_ diff --git a/include/wx/msw/tbarmsw.h b/include/wx/msw/tbarmsw.h deleted file mode 100644 index accd6148a7..0000000000 --- a/include/wx/msw/tbarmsw.h +++ /dev/null @@ -1,124 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbarmsw.h -// Purpose: wxToolBarMSW class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TBARMSW_H_ -#define _WX_TBARMSW_H_ - -#ifdef __GNUG__ -#pragma interface "tbarmsw.h" -#endif - -#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR - -#include "wx/tbarbase.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxButtonBarNameStr; - -class WXDLLEXPORT wxMemoryDC; - -// Non-Win95 (WIN32, WIN16, UNIX) version - -class WXDLLEXPORT wxToolBarMSW: public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxToolBarMSW) -public: - /* - * Public interface - */ - wxToolBarMSW(void); - - inline wxToolBarMSW(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, const wxString& name = wxButtonBarNameStr) - { - Create(parent, id, pos, size, style, name); - } - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, const wxString& name = wxButtonBarNameStr); - - ~wxToolBarMSW(void); - - // Handle wxWindows events - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - void OnMouseEvent(wxMouseEvent& event); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = wxEmptyString, const wxString& helpString2 = wxEmptyString); - - void DrawTool(wxDC& dc, wxMemoryDC& memDc, wxToolBarTool *tool); - - // Set default bitmap size - virtual void SetToolBitmapSize(const wxSize& size); - void EnableTool(int toolIndex, bool enable); // additional drawing on enabling - - // The button size is bigger than the bitmap size - wxSize GetToolSize(void) const; - - void LayoutTools(); - - // The post-tool-addition call - bool Realize() { Layout(); return TRUE; }; - - protected: - void DrawTool(wxDC& dc, wxToolBarTool *tool, int state); - - void GetSysColors(void); - bool InitGlobalObjects(void); - void FreeGlobalObjects(void); - void PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb); - void CreateMask(WXHDC hDC, int xoffset, int yoffset, int dx, int dy); - void DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state); - void DrawButton(WXHDC hdc, int x, int y, int dx, int dy, wxToolBarTool *tool, int state); - WXHBITMAP CreateDitherBitmap(); - bool CreateDitherBrush(void); - bool FreeDitherBrush(void); - WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, void *lpBitmapInfo); - WXHBITMAP CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap); - -protected: - int m_currentRowsOrColumns; - long m_lastX, m_lastY; - - WXHBRUSH m_hbrDither; - WXDWORD m_rgbFace; - WXDWORD m_rgbShadow; - WXDWORD m_rgbHilight; - WXDWORD m_rgbFrame; - -// -// m_hdcMono is the DC that holds a mono bitmap, m_hbmMono -// that is used to create highlights -// of button faces. -// m_hbmDefault hold the default bitmap if there is one. -// - WXHDC m_hdcMono; - WXHBITMAP m_hbmMono; - WXHBITMAP m_hbmDefault; - -DECLARE_EVENT_TABLE() -}; - -// -// States (not all of them currently used) -// -#define wxTBSTATE_CHECKED 0x01 // radio button is checked -#define wxTBSTATE_PRESSED 0x02 // button is being depressed (any style) -#define wxTBSTATE_ENABLED 0x04 // button is enabled -#define wxTBSTATE_HIDDEN 0x08 // button is hidden -#define wxTBSTATE_INDETERMINATE 0x10 // button is indeterminate - -#endif // wxUSE_TOOL/BUTTONBAR -#endif - // _WX_TBARMSW_H_ diff --git a/include/wx/msw/textctrl.h b/include/wx/msw/textctrl.h deleted file mode 100644 index 46f240ad91..0000000000 --- a/include/wx/msw/textctrl.h +++ /dev/null @@ -1,206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: wxTextCtrl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -#ifdef __GNUG__ - #pragma interface "textctrl.h" -#endif - -#include "wx/setup.h" -#include "wx/control.h" - -#if wxUSE_IOSTREAMH - #include -#else - #include -#endif - -#if defined(__WIN95__) && !defined(__TWIN32__) && !defined(__WXWINE__) - #define wxUSE_RICHEDIT 1 -#else - #define wxUSE_RICHEDIT 0 -#endif - -WXDLLEXPORT_DATA(extern const wxChar*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// Single-line text item -class WXDLLEXPORT wxTextCtrl : public wxControl - -// 16-bit Borland 4.0 doesn't seem to allow multiple inheritance with wxWindow and streambuf: -// it complains about deriving a huge class from the huge class streambuf. !! -// Also, can't use streambuf if making or using a DLL :-( - -#if (defined(__BORLANDC__)) || defined(__MWERKS__) || defined(_WINDLL) || defined(WXUSINGDLL) || defined(WXMAKINGDLL) -#define NO_TEXT_WINDOW_STREAM -#endif - -#ifndef NO_TEXT_WINDOW_STREAM -, public streambuf -#endif - -{ - DECLARE_DYNAMIC_CLASS(wxTextCtrl) - -public: - // creation - // -------- - wxTextCtrl(); - wxTextCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif - { - Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxTE_PROCESS_TAB, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // accessors - // --------- - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - // operations - // ---------- - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // If the return values from and to are the same, there is no - // selection. - virtual void GetSelection(long* from, long* to) const; - virtual bool IsEditable() const ; - - // streambuf implementation -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); -#endif - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); - - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file); - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - virtual void DiscardEdits(); - virtual bool IsModified() const; - -#if WXWIN_COMPATIBILITY - inline bool Modified() const { return IsModified(); } -#endif - - virtual long XYToPosition(long x, long y) const ; - virtual void PositionToXY(long pos, long *x, long *y) const ; - virtual void ShowPosition(long pos); - virtual void Clear(); - - // callbacks - // --------- - void OnDropFiles(wxDropFilesEvent& event); - void OnChar(wxKeyEvent& event); // Process 'enter' if required - - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - - // Implementation - // -------------- - virtual void Command(wxCommandEvent& event); - virtual bool MSWCommand(WXUINT param, WXWORD id); - -#if wxUSE_RICHEDIT - bool IsRich() const { return m_isRich; } - void SetRichEdit(bool isRich) { m_isRich = isRich; } -#endif - - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, - WXLPARAM lParam); - - virtual void AdoptAttributesFromHWND(); - virtual void SetupColours(); - virtual long MSWGetDlgCode(); - -protected: -#if wxUSE_RICHEDIT - bool m_isRich; // Are we using rich text edit to implement this? -#endif - - wxString m_fileName; - - // call this to increase the size limit (will do nothing if the current - // limit is big enough) - void AdjustSpaceLimit(); - - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TEXTCTRL_H_ diff --git a/include/wx/msw/timer.h b/include/wx/msw/timer.h deleted file mode 100644 index 8ce875f657..0000000000 --- a/include/wx/msw/timer.h +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: wxTimer class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMER_H_ -#define _WX_TIMER_H_ - -#ifdef __GNUG__ -#pragma interface "timer.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxTimer : public wxObject -{ -friend void wxProcessTimer(wxTimer& timer); - -public: - wxTimer(); - ~wxTimer(); - - virtual bool Start(int milliseconds = -1, - bool one_shot = FALSE); // Start timer - virtual void Stop(); // Stop timer - - virtual void Notify() = 0; // Override this member - - // Returns the current interval time (0 if stop) - int Interval() const { return milli; }; - bool OneShot() const { return oneShot; } - -protected: - bool oneShot ; - int milli ; - int lastMilli ; - - long id; - -private: - DECLARE_ABSTRACT_CLASS(wxTimer) -}; - -// Timer functions (milliseconds) -void WXDLLEXPORT wxStartTimer(); -// Gets time since last wxStartTimer or wxGetElapsedTime -long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); - -// EXPERIMENTAL: comment this out if it doesn't compile. -bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved); - -// Get number of seconds since 00:00:00 GMT, Jan 1st 1970. -long WXDLLEXPORT wxGetCurrentTime(); - -#endif - // _WX_TIMERH_ diff --git a/include/wx/msw/tooltip.h b/include/wx/msw/tooltip.h deleted file mode 100644 index 8b7f805f1a..0000000000 --- a/include/wx/msw/tooltip.h +++ /dev/null @@ -1,48 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/tooltip.h -// Purpose: wxToolTip class - tooltip control -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.01.99 -// RCS-ID: $Id$ -// Copyright: (c) 1999 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -class wxToolTip : public wxObject -{ -public: - // ctor & dtor - wxToolTip(const wxString &tip); - virtual ~wxToolTip(); - - // accessors - // tip text - void SetTip(const wxString& tip); - const wxString& GetTip() const { return m_text; } - - // the window we're associated with - void SetWindow(wxWindow *win); - wxWindow *GetWindow() const { return m_window; } - - // controlling tooltip behaviour: globally change tooltip parameters - // enable or disable the tooltips globally - static void Enable(bool flag); - // set the delay after which the tooltip appears - static void SetDelay(long milliseconds); - - // implementation - void RelayEvent(WXMSG *msg); - -private: - // create the tooltip ctrl for our parent frame if it doesn't exist yet - // and return its window handle - WXHWND GetToolTipCtrl(); - - // remove this tooltip from the tooltip control - void Remove(); - - wxString m_text; // tooltip text - wxWindow *m_window; // window we're associated with -}; - diff --git a/include/wx/msw/treectrl.h b/include/wx/msw/treectrl.h deleted file mode 100644 index 97baa3f6a4..0000000000 --- a/include/wx/msw/treectrl.h +++ /dev/null @@ -1,552 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h -// Purpose: wxTreeCtrl class -// Author: Julian Smart -// Modified by: Vadim Zeitlin to be less MSW-specific on 10/10/98 -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREECTRL_H_ -#define _WX_TREECTRL_H_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma interface "treectrl.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/textctrl.h" - -// the type for "untyped" data -typedef long wxDataType; - -// fwd decl -class WXDLLEXPORT wxImageList; -struct WXDLLEXPORT wxTreeViewItem; - -// a callback function used for sorting tree items, it should return -1 if the -// first item precedes the second, +1 if the second precedes the first or 0 if -// they're equivalent -class wxTreeItemData; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// values for the `flags' parameter of wxTreeCtrl::HitTest() which determine -// where exactly the specified point is situated: - // above the client area. -static const int wxTREE_HITTEST_ABOVE = 0x0001; - // below the client area. -static const int wxTREE_HITTEST_BELOW = 0x0002; - // in the client area but below the last item. -static const int wxTREE_HITTEST_NOWHERE = 0x0004; - // on the button associated with an item. -static const int wxTREE_HITTEST_ONITEMBUTTON = 0x0010; - // on the bitmap associated with an item. -static const int wxTREE_HITTEST_ONITEMICON = 0x0020; - // in the indentation associated with an item. -static const int wxTREE_HITTEST_ONITEMINDENT = 0x0040; - // on the label (string) associated with an item. -static const int wxTREE_HITTEST_ONITEMLABEL = 0x0080; - // in the area to the right of an item. -static const int wxTREE_HITTEST_ONITEMRIGHT = 0x0100; - // on the state icon for a tree view item that is in a user-defined state. -static const int wxTREE_HITTEST_ONITEMSTATEICON = 0x0200; - // to the right of the client area. -static const int wxTREE_HITTEST_TOLEFT = 0x0400; - // to the left of the client area. -static const int wxTREE_HITTEST_TORIGHT = 0x0800; - // anywhere on the item -static const int wxTREE_HITTEST_ONITEM = wxTREE_HITTEST_ONITEMICON | - wxTREE_HITTEST_ONITEMLABEL | - wxTREE_HITTEST_ONITEMSTATEICON; - -// NB: all the following flags are for compatbility only and will be removed in the -// next versions - -// flags for deprecated `Expand(int action)' -enum -{ - wxTREE_EXPAND_EXPAND, - wxTREE_EXPAND_COLLAPSE, - wxTREE_EXPAND_COLLAPSE_RESET, - wxTREE_EXPAND_TOGGLE -}; - -// flags for deprecated InsertItem() variant -#define wxTREE_INSERT_FIRST 0xFFFF0001 -#define wxTREE_INSERT_LAST 0xFFFF0002 - -// ---------------------------------------------------------------------------- -// wxTreeItemId identifies an element of the tree. In this implementation, it's -// just a trivial wrapper around Win32 HTREEITEM. It's opaque for the -// application. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemId -{ -public: - // ctors - // 0 is invalid value for HTREEITEM - wxTreeItemId() { m_itemId = 0; } - - // default copy ctor/assignment operator are ok for us - - // accessors - // is this a valid tree item? - bool IsOk() const { return m_itemId != 0; } - - // conversion to/from either real (system-dependent) tree item id or - // to "long" which used to be the type for tree item ids in previous - // versions of wxWindows - - // for wxTreeCtrl usage only - wxTreeItemId(WXHTREEITEM itemId) { m_itemId = (long)itemId; } - operator WXHTREEITEM() const { return (WXHTREEITEM)m_itemId; } - - void operator=(WXHTREEITEM item) { m_itemId = (long) item; } - -protected: - long m_itemId; -}; - -// ---------------------------------------------------------------------------- -// wxTreeItemData is some (arbitrary) user class associated with some item. The -// main advantage of having this class (compared to old untyped interface) is -// that wxTreeItemData's are destroyed automatically by the tree and, as this -// class has virtual dtor, it means that the memory will be automatically -// freed. OTOH, we don't just use wxObject instead of wxTreeItemData because -// the size of this class is critical: in any real application, each tree leaf -// will have wxTreeItemData associated with it and number of leaves may be -// quite big. -// -// Because the objects of this class are deleted by the tree, they should -// always be allocated on the heap! -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeItemData : private wxTreeItemId -{ -public: - // default ctor/copy ctor/assignment operator are ok - - // dtor is virtual and all the items are deleted by the tree control when - // it's deleted, so you normally don't have to care about freeing memory - // allocated in your wxTreeItemData-derived class - virtual ~wxTreeItemData() { } - - // accessors: set/get the item associated with this node - void SetId(const wxTreeItemId& id) { m_itemId = id; } -#ifdef __WATCOMC__ - const wxTreeItemId GetId() const { return m_itemId; } -#else - const wxTreeItemId& GetId() const { return (wxTreeItemId&) m_itemId; } -#endif -}; - -// ---------------------------------------------------------------------------- -// wxTreeCtrl -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeCtrl : public wxControl -{ -public: - // creation - // -------- - wxTreeCtrl() { Init(); } - - wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl") - { - Create(parent, id, pos, size, style, validator, name); - } - - virtual ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl"); - - // accessors - // --------- - - // get the total number of items in the control - size_t GetCount() const; - - // indent is the number of pixels the children are indented relative to - // the parents position. SetIndent() also redraws the control - // immediately. - unsigned int GetIndent() const; - void SetIndent(unsigned int indent); - - // spacing is the number of pixels between the start and the Text - // not implemented under wxMSW - unsigned int GetSpacing() const { return 18; } // return wxGTK default - void SetSpacing(unsigned int ) {} - - // image list: these functions allow to associate an image list with - // the control and retrieve it. Note that the control does _not_ delete - // the associated image list when it's deleted in order to allow image - // lists to be shared between different controls. - // - // The normal image list is for the icons which correspond to the - // normal tree item state (whether it is selected or not). - // Additionally, the application might choose to show a state icon - // which corresponds to an app-defined item state (for example, - // checked/unchecked) which are taken from the state image list. - wxImageList *GetImageList() const; - wxImageList *GetStateImageList() const; - - void SetImageList(wxImageList *imageList); - void SetStateImageList(wxImageList *imageList); - - // Functions to work with tree ctrl items. Unfortunately, they can _not_ be - // member functions of wxTreeItem because they must know the tree the item - // belongs to for Windows implementation and storing the pointer to - // wxTreeCtrl in each wxTreeItem is just too much waste. - - // accessors - // --------- - - // retrieve items label - wxString GetItemText(const wxTreeItemId& item) const; - // get the normal item image - int GetItemImage(const wxTreeItemId& item) const; - // get the selected item image - int GetItemSelectedImage(const wxTreeItemId& item) const; - // get the data associated with the item - wxTreeItemData *GetItemData(const wxTreeItemId& item) const; - - // modifiers - // --------- - - // set items label - void SetItemText(const wxTreeItemId& item, const wxString& text); - // set the normal item image - void SetItemImage(const wxTreeItemId& item, int image); - // set the selected item image - void SetItemSelectedImage(const wxTreeItemId& item, int image); - // associate some data with the item - void SetItemData(const wxTreeItemId& item, wxTreeItemData *data); - - // force appearance of [+] button near the item. This is useful to - // allow the user to expand the items which don't have any children now - // - but instead add them only when needed, thus minimizing memory - // usage and loading time. - void SetItemHasChildren(const wxTreeItemId& item, bool has = TRUE); - - // the item will be shown in bold - void SetItemBold(const wxTreeItemId& item, bool bold = TRUE); - - // the item will be shown with a drop highlight - void SetItemDropHighlight(const wxTreeItemId& item, bool highlight = TRUE); - - // item status inquiries - // --------------------- - - // is the item visible (it might be outside the view or not expanded)? - bool IsVisible(const wxTreeItemId& item) const; - // does the item has any children? - bool ItemHasChildren(const wxTreeItemId& item) const; - // is the item expanded (only makes sense if HasChildren())? - bool IsExpanded(const wxTreeItemId& item) const; - // is this item currently selected (the same as has focus)? - bool IsSelected(const wxTreeItemId& item) const; - // is item text in bold font? - bool IsBold(const wxTreeItemId& item) const; - - // number of children - // ------------------ - - // if 'recursively' is FALSE, only immediate children count, otherwise - // the returned number is the number of all items in this branch - size_t GetChildrenCount(const wxTreeItemId& item, bool recursively = TRUE); - - // navigation - // ---------- - - // wxTreeItemId.IsOk() will return FALSE if there is no such item - - // get the root tree item - wxTreeItemId GetRootItem() const; - - // get the item currently selected (may return NULL if no selection) - wxTreeItemId GetSelection() const; - - // get the parent of this item (may return NULL if root) - wxTreeItemId GetParent(const wxTreeItemId& item) const; - - // 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). Of course, - // the "cookie" passed to GetFirstChild() and GetNextChild() should be - // the same! - - // get the first child of this item - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& _cookie) const; - // get the next child - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& _cookie) const; - // get the last child of this item - this method doesn't use cookies - wxTreeItemId GetLastChild(const wxTreeItemId& item) const; - - // get the next sibling of this item - wxTreeItemId GetNextSibling(const wxTreeItemId& item) const; - // get the previous sibling - wxTreeItemId GetPrevSibling(const wxTreeItemId& item) const; - - // get first visible item - wxTreeItemId GetFirstVisibleItem() const; - // get the next visible item: item must be visible itself! - // see IsVisible() and wxTreeCtrl::GetFirstVisibleItem() - wxTreeItemId GetNextVisible(const wxTreeItemId& item) const; - // get the previous visible item: item must be visible itself! - wxTreeItemId GetPrevVisible(const wxTreeItemId& item) const; - - // operations - // ---------- - - // add the root node to the tree - wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the first child of the parent - wxTreeItemId PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item after a given one - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // insert a new item in as the last child of the parent - wxTreeItemId AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxTreeItemData *data = NULL); - - // delete this item and associated data if any - void Delete(const wxTreeItemId& item); - // delete all children (but don't delete the item itself) - // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events - void DeleteChildren(const wxTreeItemId& item); - // delete all items from the tree - // NB: this won't send wxEVT_COMMAND_TREE_ITEM_DELETED events - void DeleteAllItems(); - - // expand this item - void Expand(const wxTreeItemId& item); - // collapse the item without removing its children - void Collapse(const wxTreeItemId& item); - // collapse the item and remove all children - void CollapseAndReset(const wxTreeItemId& item); - // toggles the current state - void Toggle(const wxTreeItemId& item); - - // remove the selection from currently selected item (if any) - void Unselect(); - // select this item - void SelectItem(const wxTreeItemId& item); - // make sure this item is visible (expanding the parent item and/or - // scrolling to this item if necessary) - void EnsureVisible(const wxTreeItemId& item); - // scroll to this item (but don't expand its parent) - void ScrollTo(const wxTreeItemId& item); - - // start editing the item label: this (temporarily) replaces the item - // with a one line edit control. The item will be selected if it hadn't - // been before. textCtrlClass parameter allows you to create an edit - // control of arbitrary user-defined class deriving from wxTextCtrl. - wxTextCtrl* EditLabel(const wxTreeItemId& item, - wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); - // returns the same pointer as StartEdit() if the item is being edited, - // NULL otherwise (it's assumed that no more than one item may be - // edited simultaneously) - wxTextCtrl* GetEditControl() const; - // end editing and accept or discard the changes to item label - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); - - // sorting - // this function is called to compare 2 items and should return -1, 0 - // or +1 if the first item is less than, equal to or greater than the - // second one. The base class version performs alphabetic comparaison - // of item labels (GetText) - virtual int OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2); - // sort the children of this item using OnCompareItems - // - // NB: this function is not reentrant and not MT-safe (FIXME)! - void SortChildren(const wxTreeItemId& item); - - // helpers - // ------- - - // determine to which item (if any) belongs the given point (the - // coordinates specified are relative to the client area of tree ctrl) - // and fill the flags parameter with a bitmask of wxTREE_HITTEST_xxx - // constants. - // - // The first function is more portable (because easier to implement - // on other platforms), but the second one returns some extra info. - wxTreeItemId HitTest(const wxPoint& point) - { int dummy; return HitTest(point, dummy); } - wxTreeItemId HitTest(const wxPoint& point, int& flags); - - // get the bounding rectangle of the item (or of its label only) - bool GetBoundingRect(const wxTreeItemId& item, - wxRect& rect, - bool textOnly = FALSE) const; - - // deprecated - // ---------- - - // these methods are deprecated and will be removed in future versions of - // wxWindows, they're here for compatibility only, don't use them in new - // code (the comments indicate why these methods are now useless and how to - // replace them) - - // use Expand, Collapse, CollapseAndReset or Toggle - void ExpandItem(const wxTreeItemId& item, int action); - - // use AddRoot, PrependItem or AppendItem - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selImage = -1, - long insertAfter = wxTREE_INSERT_LAST); - - // use Set/GetImageList and Set/GetStateImageList - wxImageList *GetImageList(int) const - { return GetImageList(); } - void SetImageList(wxImageList *imageList, int) - { SetImageList(imageList); } - - // implementation - // -------------- - virtual bool MSWCommand(WXUINT param, WXWORD id); - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); - -protected: - // SetImageList helper - void SetAnyImageList(wxImageList *imageList, int which); - - wxTextCtrl* m_textCtrl; // used while editing the item label - wxImageList *m_imageListNormal, // images for tree elements - *m_imageListState; // special images for app defined states - -private: - // the common part of all ctors - void Init(); - - // helper functions - inline bool DoGetItem(wxTreeViewItem *tvItem) const; - inline void DoSetItem(wxTreeViewItem *tvItem); - - inline void DoExpand(const wxTreeItemId& item, int flag); - - wxTreeItemId DoInsertItem(const wxTreeItemId& parent, - wxTreeItemId hInsertAfter, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data); - - void DeleteTextCtrl(); - - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -// ---------------------------------------------------------------------------- -// wxTreeEvent is a special class for all events associated with tree controls -// -// NB: note that not all accessors make sense for all events, see the event -// descriptions below -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxTreeEvent : public wxNotifyEvent -{ -friend wxTreeCtrl; -public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - // accessors - // get the item on which the operation was performed or the newly - // selected item for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events - wxTreeItemId GetItem() const { return m_item; } - - // for wxEVT_COMMAND_TREE_SEL_CHANGED/ING events, get the previously - // selected item - wxTreeItemId GetOldItem() const { return m_itemOld; } - - // the point where the mouse was when the drag operation started (for - // wxEVT_COMMAND_TREE_BEGIN_(R)DRAG events only) - wxPoint GetPoint() const { return m_pointDrag; } - - // keyboard code (for wxEVT_COMMAND_TREE_KEY_DOWN only) - int GetCode() const { return m_code; } - -private: - // @@ we could save some space by using union here - int m_code; - wxTreeItemId m_item, - m_itemOld; - wxPoint m_pointDrag; - - DECLARE_DYNAMIC_CLASS(wxTreeEvent) -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -// ---------------------------------------------------------------------------- -// macros for handling tree control events -// ---------------------------------------------------------------------------- - -// GetItem() returns the item being dragged, GetPoint() the mouse coords -#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() returns the itme whose label is being edited -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// provide/update information about GetItem() item -#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() is the item being expanded/collapsed, the "ING" versions can use -#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetOldItem() is the item which had the selection previously, GetItem() is -// the item which acquires selection -#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, -#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetCode() returns the key code -// NB: this is the only message for which GetItem() is invalid (you may get the -// item from GetSelection()) -#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -// GetItem() returns the item being deleted, the associated data (if any) will -// be deleted just after the return of this event handler (if any) -#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -// GetItem() returns the item that was activated (double click, enter, space) -#define EVT_TREE_ITEM_ACTIVATED(id, fn) { wxEVT_COMMAND_TREE_ITEM_ACTIVATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, NULL }, - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/msw/watch1.cur b/include/wx/msw/watch1.cur deleted file mode 100644 index 323f01c3e5e7698be6414ef664354d7ea0f22e9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmaivJraU25QSf)pp2D`1(cRnc8K@U&N5=Sffr&X+D1Gxgi3q~VR9qe@^c#Y7>X|n8t*m76w1H{s zr7CaR)|{f(J!4c8mx}1ip7d3bc70DoI%77Z4}m_{fk|pv94%{lCdt{O^Kzc--2m~F i8VD>PE5OeIk4fEEM(`)bcU<#fzj9iv$=XvdzJCB`+hyqh diff --git a/include/wx/msw/wave.h b/include/wx/msw/wave.h deleted file mode 100644 index d95560bc6f..0000000000 --- a/include/wx/msw/wave.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WAVE_H_ -#define _WX_WAVE_H_ - -#ifdef __GNUG__ -#pragma interface "wave.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - wxWave(int size, const wxByte* data); - ~wxWave(); - -public: - // Create from resource or file - bool Create(const wxString& fileName, bool isResource = FALSE); - // Create from data - bool Create(int size, const wxByte* data); - - bool IsOk() const { return (m_waveData ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE) const; - -protected: - bool Free(); - -private: - wxByte* m_waveData; - int m_waveLength; - bool m_isResource; -}; - -#endif - diff --git a/include/wx/msw/window.h b/include/wx/msw/window.h deleted file mode 100644 index 8349de73e3..0000000000 --- a/include/wx/msw/window.h +++ /dev/null @@ -1,435 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindow class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "window.h" -#endif - -// #include "wx/msw/winundef.h" - -// VZ: apparently some version of Windows send extra mouse move messages after -// a mouse click. My tests under NT 4.0 and 95 didn't show it so I'm -// tempted to think that it was just an effect of a poor mouse and so the -// code to work around this is currently disabled - just define this as 1 -// to reenable it -#define wxUSE_MOUSEEVENT_HACK 0 - -// --------------------------------------------------------------------------- -// forward declarations -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxButton; - -// --------------------------------------------------------------------------- -// constants -// --------------------------------------------------------------------------- - -// FIXME does anybody use those? they're unused by wxWindows... -enum -{ - wxKEY_SHIFT = 1, - wxKEY_CTRL = 2 -}; - -// --------------------------------------------------------------------------- -// wxWindow declaration for MSW -// --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindow : public wxWindowBase -{ - DECLARE_DYNAMIC_CLASS(wxWindow); - -public: - wxWindow() { Init(); } - - wxWindow(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - Init(); - Create(parent, id, pos, size, style, name); - } - - virtual ~wxWindow(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // implement base class pure virtuals - virtual void SetTitle( const wxString& title); - virtual wxString GetTitle() const; - - virtual void Raise(); - virtual void Lower(); - - virtual bool Show( bool show = TRUE ); - virtual bool Enable( bool enable = TRUE ); - - virtual void SetFocus(); - - virtual bool Reparent( wxWindow *newParent ); - - virtual void WarpPointer(int x, int y); - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - virtual void Refresh( bool eraseBackground = TRUE, - const wxRect *rect = (const wxRect *) NULL ); - virtual void Clear(); - - virtual bool SetCursor( const wxCursor &cursor ); - virtual bool SetFont( const wxFont &font ); - - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - virtual void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = (int *) NULL, - int *externalLeading = (int *) NULL, - const wxFont *theFont = (const wxFont *) NULL) - const; - - virtual bool PopupMenu( wxMenu *menu, int x, int y ); - - virtual void SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE ); - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ); - virtual int GetScrollPos( int orient ) const; - virtual int GetScrollThumb( int orient ) const; - virtual int GetScrollRange( int orient ) const; - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = (wxRect *) NULL ); - -#if wxUSE_DRAG_AND_DROP - virtual void SetDropTarget( wxDropTarget *dropTarget ); -#endif // wxUSE_DRAG_AND_DROP - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - -#if WXWIN_COMPATIBILITY - // Set/get scroll attributes - virtual void SetScrollRange(int orient, int range, bool refresh = TRUE); - virtual void SetScrollPage(int orient, int page, bool refresh = TRUE); - virtual int OldGetScrollRange(int orient) const; - virtual int GetScrollPage(int orient) const; - - // event handlers - // Handle a control command - virtual void OnCommand(wxWindow& win, wxCommandEvent& event); - - // Override to define new behaviour for default action (e.g. double - // clicking on a listbox) - virtual void OnDefaultAction(wxControl * WXUNUSED(initiatingItem)) { } -#endif // WXWIN_COMPATIBILITY - -#if wxUSE_CARET && WXWIN_COMPATIBILITY - // caret manipulation (old MSW only functions, see wxCaret class for the - // new API) - void CreateCaret(int w, int h); - void CreateCaret(const wxBitmap *bitmap); - void DestroyCaret(); - void ShowCaret(bool show); - void SetCaretPos(int x, int y); - void GetCaretPos(int *x, int *y) const; -#endif // wxUSE_CARET - - // Native resource loading (implemented in src/msw/nativdlg.cpp) - // FIXME: should they really be all virtual? - virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID& id); - virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name); - wxWindow* GetWindowChild1(wxWindowID id); - wxWindow* GetWindowChild(wxWindowID id); - - // implementation from now on - // -------------------------- - - // simple accessors - // ---------------- - - WXHWND GetHWND() const { return m_hWnd; } - void SetHWND(WXHWND hWnd) { m_hWnd = hWnd; } - virtual WXWidget GetHandle() const { return GetHWND(); } - - bool GetUseCtl3D() const { return m_useCtl3D; } - bool GetTransparentBackground() const { return m_backgroundTransparent; } - void SetTransparent(bool t = TRUE) { m_backgroundTransparent = t; } - - // event handlers - // -------------- - void OnEraseBackground(wxEraseEvent& event); - void OnIdle(wxIdleEvent& event); - - // a window may have a default button - // TODO move into wxPanel and/or wxFrame - wxButton *GetDefaultItem() const { return m_btnDefault; } - void SetDefaultItem(wxButton *btn) { m_btnDefault = btn; } - -public: - // For implementation purposes - sometimes decorations make the client area - // smaller - virtual wxPoint GetClientAreaOrigin() const; - - // Makes an adjustment to the window position (for example, a frame that has - // a toolbar that it manages itself). - virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags); - - // Windows subclassing - void SubclassWin(WXHWND hWnd); - void UnsubclassWin(); - - WXFARPROC MSWGetOldWndProc() const { return m_oldWndProc; } - void MSWSetOldWndProc(WXFARPROC proc) { m_oldWndProc = proc; } - - wxWindow *FindItem(int id) const; - wxWindow *FindItemByHWND(WXHWND hWnd, bool controlOnly = FALSE) const; - - // Make a Windows extended style from the given wxWindows window style - virtual WXDWORD MakeExtendedStyle(long style, bool eliminateBorders = TRUE); - // Determine whether 3D effects are wanted - virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D); - - // MSW only: TRUE if this control is part of the main control - virtual bool ContainsHWND(WXHWND WXUNUSED(hWnd)) const { return FALSE; }; - - // returns TRUE if the window has been created - bool MSWCreate(int id, - wxWindow *parent, - const char *wclass, - wxWindow *wx_win, - const char *title, - int x, int y, int width, int height, - WXDWORD style, - const char *dialog_template = NULL, - WXDWORD exendedStyle = 0); - virtual bool MSWCommand(WXUINT param, WXWORD id); - -#if WXWIN_COMPATIBILITY - wxObject *GetChild(int number) const; - virtual void MSWDeviceToLogical(float *x, float *y) const; -#endif // WXWIN_COMPATIBILITY - - // Create an appropriate wxWindow from a HWND - virtual wxWindow* CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd); - - // Make sure the window style reflects the HWND style (roughly) - virtual void AdoptAttributesFromHWND(); - - // Setup background and foreground colours correctly - virtual void SetupColours(); - - // ------------------------------------------------------------------------ - // helpers for message handlers: these perform the same function as the - // message crackers from - they unpack WPARAM and LPARAM into - // the correct parameters - // ------------------------------------------------------------------------ - - void UnpackCommand(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *id, WXHWND *hwnd, WXWORD *cmd); - void UnpackActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *state, WXWORD *minimized, WXHWND *hwnd); - void UnpackScroll(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *code, WXWORD *pos, WXHWND *hwnd); - void UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *nCtlColor, WXHDC *hdc, WXHWND *hwnd); - void UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *item, WXWORD *flags, WXHMENU *hmenu); - - // ------------------------------------------------------------------------ - // internal handlers for MSW messages: all handlers return a boolen value: - // TRUE means that the handler processed the event and FALSE that it didn't - // ------------------------------------------------------------------------ - - // there are several cases where we have virtual functions for Windows - // message processing: this is because these messages often require to be - // processed in a different manner in the derived classes. For all other - // messages, however, we do *not* have corresponding MSWOnXXX() function - // and if the derived class wants to process them, it should override - // MSWWindowProc() directly. - - // scroll event (both horizontal and vertical) - virtual bool MSWOnScroll(int orientation, WXWORD nSBCode, - WXWORD pos, WXHWND control); - - // child control notifications -#ifdef __WIN95__ - virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); -#endif // __WIN95__ - - // owner-drawn controls need to process these messages - virtual bool MSWOnDrawItem(int id, WXDRAWITEMSTRUCT *item); - virtual bool MSWOnMeasureItem(int id, WXMEASUREITEMSTRUCT *item); - - // the rest are not virtual - bool HandleCreate(WXLPCREATESTRUCT cs, bool *mayCreate); - bool HandleInitDialog(WXHWND hWndFocus); - bool HandleDestroy(); - - bool HandlePaint(); - bool HandleEraseBkgnd(WXHDC pDC); - - bool HandleMinimize(); - bool HandleMaximize(); - bool HandleSize(int x, int y, WXUINT flag); - bool HandleGetMinMaxInfo(void *mmInfo); - - bool HandleShow(bool show, int status); - bool HandleActivate(int flag, bool minimized, WXHWND activate); - - bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control); - bool HandleSysCommand(WXWPARAM wParam, WXLPARAM lParam); - - bool HandleCtlColor(WXHBRUSH *hBrush, - WXHDC hdc, - WXHWND hWnd, - WXUINT nCtlColor, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam); - - bool HandlePaletteChanged(WXHWND hWndPalChange); - bool HandleQueryNewPalette(); - bool HandleSysColorChange(); - - bool HandleQueryEndSession(long logOff, bool *mayEnd); - bool HandleEndSession(bool endSession, long logOff); - - bool HandleSetFocus(WXHWND wnd); - bool HandleKillFocus(WXHWND wnd); - - bool HandleDropFiles(WXWPARAM wParam); - - bool HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags); - bool HandleMouseMove(int x, int y, WXUINT flags); - - bool HandleChar(WXWORD wParam, WXLPARAM lParam, bool isASCII = FALSE); - bool HandleKeyDown(WXWORD wParam, WXLPARAM lParam); - bool HandleKeyUp(WXWORD wParam, WXLPARAM lParam); - - bool HandleQueryDragIcon(WXHICON *hIcon); - - bool HandleSetCursor(WXHWND hWnd, short nHitTest, int mouseMsg); - - // Window procedure - virtual long MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - - // Calls an appropriate default window procedure - virtual long MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); - virtual bool MSWProcessMessage(WXMSG* pMsg); - virtual bool MSWTranslateMessage(WXMSG* pMsg); - virtual void MSWDestroyWindow(); - - // Detach "Window" menu from menu bar so it doesn't get deleted - void MSWDetachWindowMenu(); - - // this function should return the brush to paint the window background - // with or 0 for the default brush - virtual WXHBRUSH OnCtlColor(WXHDC hDC, - WXHWND hWnd, - WXUINT nCtlColor, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam); - -#if WXWIN_COMPATIBILITY - void SetShowing(bool show) { (void)Show(show); } - bool IsUserEnabled() const { return IsEnabled(); } -#endif // WXWIN_COMPATIBILITY - - // Responds to colour changes: passes event on to children. - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // initialize various fields of wxMouseEvent (common part of MSWOnMouseXXX) - void InitMouseEvent(wxMouseEvent& event, int x, int y, WXUINT flags); - -protected: - // the window handle - WXHWND m_hWnd; - - // the old window proc (we subclass all windows) - WXFARPROC m_oldWndProc; - - // additional (MSW specific) flags - bool m_useCtl3D:1; // Using CTL3D for this control - bool m_backgroundTransparent:1; - bool m_mouseInWindow:1; - bool m_doubleClickAllowed:1; - bool m_winCaptured:1; - - // the size of one page for scrolling - int m_xThumbSize; - int m_yThumbSize; - -#if wxUSE_MOUSEEVENT_HACK - // the coordinates of the last mouse event and the type of it - long m_lastMouseX, - m_lastMouseY; - int m_lastMouseEvent; -#endif // wxUSE_MOUSEEVENT_HACK - - WXHMENU m_hMenu; // Menu, if any - - wxButton *m_btnDefault; - - // implement the base class pure virtuals - virtual void DoClientToScreen( int *x, int *y ) const; - virtual void DoScreenToClient( int *x, int *y ) const; - virtual void DoGetPosition( int *x, int *y ) const; - virtual void DoGetSize( int *width, int *height ) const; - virtual void DoGetClientSize( int *width, int *height ) const; - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - virtual void DoSetClientSize(int width, int height); - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - -private: - // common part of all ctors - void Init(); - - // the (non-virtual) handlers for the events - bool HandleMove(int x, int y); - bool HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags); - -#ifdef __WIN95__ - bool HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result); -#endif // __WIN95__ - - DECLARE_NO_COPY_CLASS(wxWindow); - DECLARE_EVENT_TABLE() -}; - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -// kbd code translation -WXDLLEXPORT int wxCharCodeMSWToWX(int keySym); -WXDLLEXPORT int wxCharCodeWXToMSW(int id, bool *IsVirtual); - -#endif - // _WX_WINDOW_H_ diff --git a/include/wx/msw/winundef.h b/include/wx/msw/winundef.h deleted file mode 100644 index ac2fa36577..0000000000 --- a/include/wx/msw/winundef.h +++ /dev/null @@ -1,204 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: winundef.h -// Purpose: undefine the common symbols #define'd by -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.05.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* THIS SHOULD NOT BE USED since you might include it once e.g. in window.h, - * then again _AFTER_ you've included windows.h, in which case it won't work - * a 2nd time -- JACS -#ifndef _WX_WINUNDEF_H_ -#define _WX_WINUNDEF_H_ - */ - -// windows.h #defines the following identifiers which are also used in wxWin - -// GetCharWidth - -#ifdef GetCharWidth - #undef GetCharWidth - inline BOOL GetCharWidth(HDC dc, UINT first, UINT last, LPINT buffer) - { - #ifdef _UNICODE - return GetCharWidthW(dc, first, last, buffer); - #else - return GetCharWidthA(dc, first, last, buffer); - #endif - } -#endif - -// FindWindow - -#ifdef FindWindow - #undef FindWindow - #ifdef _UNICODE - inline HWND FindWindow(LPCWSTR classname, LPCWSTR windowname) - { - return FindWindowW(classname, windowname); - } - #else - inline HWND FindWindow(LPCSTR classname, LPCSTR windowname) - { - return FindWindowA(classname, windowname); - } - #endif -#endif - -// GetClassName - -#ifdef GetClassName - #undef GetClassName - #ifdef _UNICODE - inline int GetClassName(HWND h, LPWSTR classname, int maxcount) - { - return GetClassNameW(h, classname, maxcount); - } - #else - inline int GetClassName(HWND h, LPSTR classname, int maxcount) - { - return GetClassNameA(h, classname, maxcount); - } - #endif -#endif - -// GetClassInfo - -#ifdef GetClassInfo - #undef GetClassInfo - #ifdef _UNICODE - inline BOOL GetClassInfo(HINSTANCE h, LPCWSTR name, LPWNDCLASSW winclass) - { - return GetClassInfoW(h, name, winclass); - } - #else - inline BOOL GetClassInfo(HINSTANCE h, LPCSTR name, LPWNDCLASSA winclass) - { - return GetClassInfoA(h, name, winclass); - } - #endif -#endif - -// LoadAccelerators - -#ifdef LoadAccelerators - #undef LoadAccelerators - #ifdef _UNICODE - inline HACCEL LoadAccelerators(HINSTANCE h, LPCWSTR name) - { - return LoadAcceleratorsW(h, name); - } - #else - inline HACCEL LoadAccelerators(HINSTANCE h, LPCSTR name) - { - return LoadAcceleratorsA(h, name); - } - #endif -#endif - -// DrawText - -#ifdef DrawText - #undef DrawText - #ifdef _UNICODE - inline int DrawText(HDC h, LPCWSTR str, int count, LPRECT rect, UINT format) - { - return DrawTextW(h, str, count, rect, format); - } - #else - inline int DrawText(HDC h, LPCSTR str, int count, LPRECT rect, UINT format) - { - return DrawTextA(h, str, count, rect, format); - } - #endif -#endif - -// StartDoc - -#ifdef StartDoc - #undef StartDoc - #ifdef __GNUWIN32__ - #define DOCINFOW DOCINFO - #define DOCINFOA DOCINFO - #endif - #ifdef _UNICODE - inline int StartDoc(HDC h, CONST DOCINFOW* info) - { - return StartDocW(h, info); - } - #else - inline int StartDoc(HDC h, CONST DOCINFOA* info) - { - return StartDocA(h, info); - } - #endif -#endif - -// GetObject - -#ifdef GetObject - #undef GetObject - inline int GetObject(HGDIOBJ h, int i, LPVOID buffer) - { - #ifdef _UNICODE - return GetObjectW(h, i, buffer); - #else - return GetObjectA(h, i, buffer); - #endif - } -#endif - - -#ifdef GetMessage - #undef GetMessage - inline int GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax) - { - #ifdef _UNICODE - return GetMessageW(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); - #else - return GetMessageA(lpMsg, hWnd, wMsgFilterMin, wMsgFilterMax); - #endif - } -#endif - -// For WINE - -#if defined(GetWindowStyle) || defined(__WXWINE__) - #undef GetWindowStyle -#endif - -// For ming and cygwin - -// GetFirstChild -#ifdef GetFirstChild - #undef GetFirstChild - inline HWND GetFirstChild(HWND h) - { - return GetTopWindow(h); - } -#endif - - -// GetNextSibling -#ifdef GetNextSibling - #undef GetNextSibling - inline HWND GetNextSibling(HWND h) - { - return GetWindow(h, GW_HWNDNEXT); - } -#endif - -// GetWindowProc -//ifdef GetWindowProc -// #undef GetWindowProc -//endif -//ifdef GetNextChild -// #undef GetNextChild -//endif - -// #endif // _WX_WINUNDEF_H_ - diff --git a/include/wx/msw/wx.rc b/include/wx/msw/wx.rc deleted file mode 100644 index d064760b5f..0000000000 --- a/include/wx/msw/wx.rc +++ /dev/null @@ -1,122 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: wx.rc -// Purpose: wxWindows resource definitions. ALWAYS include -// this in your application resource file. -// -// wxWindows version 1.50 -// Copyright (c) 1993 Artificial Intelligence Applications Institute, -// The University of Edinburgh -// -// Author: Julian Smart -// Date: 9-4-93 -// -// 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 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. -///////////////////////////////////////////////////////////////////////////// -// -// - -#if (defined( __GNUWIN32__ ) && !defined(__TWIN32__)) || defined(__MWERKS__) -#include -#else -#include -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// Dummy Dialog for all wxCAPTION Dialog boxes -// - -wxResizeableDialog DIALOG DISCARDABLE 34, 22, 144, 75 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME -CAPTION "" -BEGIN - LTEXT "", -1,-2,-2,1,1 //necessary for __WATCOMC__ -END - -wxCaptionDialog DIALOG DISCARDABLE 34, 22, 144, 75 -STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU -CAPTION "Dummy dialog" -BEGIN - LTEXT "", -1,-2,-2,1,1 //necessary for __WATCOMC__ -END - -// -// Dummy dialog for dialog boxes without caption & with thin frame -// -wxNoCaptionDialog DIALOG 34, 22, 144, 75 -STYLE WS_POPUP -BEGIN - LTEXT "", -1,-2,-2,1,1 //necessary for __WATCOMC__ -END - -////////////////////////////////////////////////////////////////////////////// -// -// This is the MDI Window menu -// - -wxWindowMenu MENU DISCARDABLE -BEGIN - POPUP "&Window" - BEGIN - MENUITEM "&Cascade", 4002 - MENUITEM "Tile &Horizontally", 4001 - MENUITEM "Tile &Vertically", 4005 - MENUITEM "", -1 - MENUITEM "&Arrange Icons", 4003 - MENUITEM "&Next", 4004 - END -END - -////////////////////////////////////////////////////////////////////////////// -// -// Standard wxWindows Cursors -// - -WXCURSOR_HAND CURSOR DISCARDABLE "wx/msw/hand.cur" -WXCURSOR_BULLSEYE CURSOR DISCARDABLE "wx/msw/bullseye.cur" -WXCURSOR_PENCIL CURSOR DISCARDABLE "wx/msw/pencil.cur" -WXCURSOR_MAGNIFIER CURSOR DISCARDABLE "wx/msw/magnif1.cur" -WXCURSOR_NO_ENTRY CURSOR DISCARDABLE "wx/msw/noentry.cur" -WXCURSOR_SIZING CURSOR DISCARDABLE "wx/msw/size.cur" -WXCURSOR_ROLLER CURSOR DISCARDABLE "wx/msw/roller.cur" -WXCURSOR_WATCH CURSOR DISCARDABLE "wx/msw/watch1.cur" -WXCURSOR_PBRUSH CURSOR DISCARDABLE "wx/msw/pbrush.cur" -WXCURSOR_PLEFT CURSOR DISCARDABLE "wx/msw/pntleft.cur" -WXCURSOR_PRIGHT CURSOR DISCARDABLE "wx/msw/pntright.cur" -WXCURSOR_QARROW CURSOR DISCARDABLE "wx/msw/query.cur" -WXCURSOR_BLANK CURSOR DISCARDABLE "wx/msw/blank.cur" - -////////////////////////////////////////////////////////////////////////////// -// -// Default Icons -// - -//wxDEFAULT_FRAME ICON "wx/msw/std.ico" -//wxDEFAULT_MDIPARENTFRAME ICON "wx/msw/mdi.ico" -//wxDEFAULT_MDICHILDFRAME ICON "wx/msw/child.ico" - -////////////////////////////////////////////////////////////////////////////// -// -// Bitmaps -// - -#ifdef __SALFORDC__ -wxDISABLE_BUTTON_BITMAP BITMAP WXINCDIR"wx/msw/disable.bmp" -#else -wxDISABLE_BUTTON_BITMAP BITMAP "wx/msw/disable.bmp" -#endif - diff --git a/include/wx/msw/xpmhand.h b/include/wx/msw/xpmhand.h deleted file mode 100644 index 2289cd1995..0000000000 --- a/include/wx/msw/xpmhand.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: xpmhand.h -// Purpose: XPM bitmap handler -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "xpmhand.h" -#endif - -#ifndef _WX_XPMHAND_H_ -#define _WX_XPMHAND_H_ - -class WXDLLEXPORT wxXPMFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxXPMFileHandler) -public: - inline wxXPMFileHandler(void) - { - m_name = "XPM bitmap file"; - m_extension = "xpm"; - m_type = wxBITMAP_TYPE_XPM; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); -}; - -class WXDLLEXPORT wxXPMDataHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxXPMDataHandler) -public: - inline wxXPMDataHandler(void) - { - m_name = "XPM bitmap data"; - m_extension = "xpm"; - m_type = wxBITMAP_TYPE_XPM_DATA; - }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); -}; - -#endif - // _WX_XPMHAND_H_ - diff --git a/include/wx/notebook.h b/include/wx/notebook.h deleted file mode 100644 index 04fec2227f..0000000000 --- a/include/wx/notebook.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef _WX_NOTEBOOK_H_BASE_ -#define _WX_NOTEBOOK_H_BASE_ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/event.h" // the base class: wxNotifyEvent - -// ---------------------------------------------------------------------------- -// notebook event class (used by NOTEBOOK_PAGE_CHANGED/ING events) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxNotebookEvent : public wxNotifyEvent -{ -public: - wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0, - int nSel = -1, int nOldSel = -1) - : wxNotifyEvent(commandType, id) - { - m_nSel = nSel; - m_nOldSel = nOldSel; - } - - // accessors - // the currently selected page (-1 if none) - int GetSelection() const { return m_nSel; } - void SetSelection(int nSel) { m_nSel = nSel; } - // the page that was selected before the change (-1 if none) - int GetOldSelection() const { return m_nOldSel; } - void SetOldSelection(int nOldSel) { m_nOldSel = nOldSel; } - -private: - int m_nSel, // currently selected page - m_nOldSel; // previously selected page - - DECLARE_DYNAMIC_CLASS(wxNotebookEvent) -}; - -// ---------------------------------------------------------------------------- -// event macros -// ---------------------------------------------------------------------------- - -typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); - -// Truncation in 16-bit BC++ means we need to define these differently -#if defined(__BORLANDC__) && defined(__WIN16__) -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_NB_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_NB_PAGE_CHANGING, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#else - -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#endif - -// ---------------------------------------------------------------------------- -// wxNotebook class itself -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) -#ifdef __WIN16__ - #include "wx/generic/notebook.h" -#else - #include "wx/msw/notebook.h" -#endif -#elif defined(__WXMOTIF__) - #include "wx/generic/notebook.h" -#elif defined(__WXGTK__) - #include "wx/gtk/notebook.h" -#elif defined(__WXQT__) - #include "wx/qt/notebook.h" -#elif defined(__WXMAC__) - #include "wx/mac/notebook.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/notebook.h" -#endif - -#endif - // _WX_NOTEBOOK_H_BASE_ diff --git a/include/wx/object.h b/include/wx/object.h deleted file mode 100644 index 3f7faec6b2..0000000000 --- a/include/wx/object.h +++ /dev/null @@ -1,289 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: object.h -// Purpose: wxObject class, plus run-time type information macros -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_OBJECTH__ -#define _WX_OBJECTH__ - -#ifdef __GNUG__ -#pragma interface "object.h" -#endif - -#include "wx/defs.h" -#include "wx/memory.h" - -class WXDLLEXPORT wxObject; - -#if wxUSE_DYNAMIC_CLASSES - -// #ifdef __GNUWIN32__ -#ifdef GetClassName -#undef GetClassName -#endif -#ifdef GetClassInfo -#undef GetClassInfo -#endif -// #endif - -class WXDLLEXPORT wxClassInfo; -class WXDLLEXPORT wxInputStream; -class WXDLLEXPORT wxOutputStream; -class WXDLLEXPORT wxObjectInputStream; -class WXDLLEXPORT wxObjectOutputStream; -class WXDLLEXPORT wxHashTable; -class WXDLLEXPORT wxObject_Serialize; - -#if wxUSE_IOSTREAMH - // N.B. BC++ doesn't have istream.h, ostream.h -# include -#else -# include -# if defined(__VISUALC__) || defined(__MWERKS__) - using namespace std; -# endif -#endif - -/* - * Dynamic object system declarations - */ - -typedef wxObject * (*wxObjectConstructorFn) (void); - -class WXDLLEXPORT wxClassInfo -{ - public: - wxClassInfo(wxChar *cName, wxChar *baseName1, wxChar *baseName2, int sz, wxObjectConstructorFn fn); - - wxObject *CreateObject(void); - - inline wxChar *GetClassName(void) const { return m_className; } - inline wxChar *GetBaseClassName1(void) const { return m_baseClassName1; } - inline wxChar *GetBaseClassName2(void) const { return m_baseClassName2; } - inline wxClassInfo* GetBaseClass1() const { return m_baseInfo1; } - inline wxClassInfo* GetBaseClass2() const { return m_baseInfo2; } - inline int GetSize(void) const { return m_objectSize; } - inline wxObjectConstructorFn GetConstructor() const { return m_objectConstructor; } - static inline wxClassInfo* GetFirst() { return sm_first; } - inline wxClassInfo* GetNext() const { return m_next; } - bool IsKindOf(wxClassInfo *info) const; - - static wxClassInfo *FindClass(wxChar *c); - - // Initializes parent pointers and hash table for fast searching. - static void InitializeClasses(void); - - // Cleans up hash table used for fast searching. - static void CleanUpClasses(void); - -public: - wxChar* m_className; - wxChar* m_baseClassName1; - wxChar* m_baseClassName2; - int m_objectSize; - wxObjectConstructorFn m_objectConstructor; - - // Pointers to base wxClassInfos: set in InitializeClasses - // called from wx_main.cc - wxClassInfo* m_baseInfo1; - wxClassInfo* m_baseInfo2; - - static wxClassInfo* sm_first; - wxClassInfo* m_next; - - static wxHashTable* sm_classTable; -}; - -WXDLLEXPORT wxObject* wxCreateDynamicObject(const wxChar *name); - -#if wxUSE_SERIAL -WXDLLEXPORT wxObject* wxCreateStoredObject( wxInputStream& stream ); -#endif - -#define DECLARE_DYNAMIC_CLASS(name) \ - public:\ - static wxClassInfo sm_class##name;\ - wxClassInfo *GetClassInfo() const \ - { return &name::sm_class##name; } - -#define DECLARE_ABSTRACT_CLASS(name) DECLARE_DYNAMIC_CLASS(name) -#define DECLARE_CLASS(name) DECLARE_DYNAMIC_CLASS(name) - -////// -////// for concrete classes -////// - -// Single inheritance with one base class -#define IMPLEMENT_DYNAMIC_CLASS(name, basename) \ -wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \ - { return new name; }\ - wxClassInfo name::sm_class##name((wxChar *) _T(#name), (wxChar *) _T(#basename), (wxChar *) NULL, (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name); - -// Multiple inheritance with two base classes -#define IMPLEMENT_DYNAMIC_CLASS2(name, basename1, basename2) \ -wxObject* WXDLLEXPORT_CTORFN wxConstructorFor##name(void) \ - { return new name; }\ - wxClassInfo name::sm_class##name((wxChar *) _T(#name), (wxChar *) _T(#basename1), (wxChar *) _T(#basename2), (int) sizeof(name), (wxObjectConstructorFn) wxConstructorFor##name); - -////// -////// for abstract classes -////// - -// Single inheritance with one base class -#define IMPLEMENT_ABSTRACT_CLASS(name, basename) \ - wxClassInfo name::sm_class##name((wxChar *) _T(#name), (wxChar *) _T(#basename), \ - (wxChar *) NULL, (int) sizeof(name), (wxObjectConstructorFn) NULL); - -// Multiple inheritance with two base classes -#define IMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) \ - wxClassInfo name::sm_class##name((wxChar *) _T(#name), (wxChar *) _T(#basename1), \ - (wxChar *) _T(#basename2), (int) sizeof(name), (wxObjectConstructorFn) NULL); - -#define IMPLEMENT_CLASS IMPLEMENT_ABSTRACT_CLASS -#define IMPLEMENT_CLASS2 IMPLEMENT_ABSTRACT_CLASS2 - -#define CLASSINFO(name) (&name::sm_class##name) - -#else // !wxUSE_DYNAMIC_CLASSES - -// No dynamic class system: so stub out the macros -#define DECLARE_DYNAMIC_CLASS(name) -#define DECLARE_ABSTRACT_CLASS(name) -#define DECLARE_CLASS(name) -#define IMPLEMENT_DYNAMIC_CLASS(name, basename) -#define IMPLEMENT_DYNAMIC_CLASS2(name, basename1, basename2) -#define IMPLEMENT_ABSTRACT_CLASS(name, basename) -#define IMPLEMENT_ABSTRACT_CLASS2(name, basename1, basename2) -#define IMPLEMENT_CLASS IMPLEMENT_ABSTRACT_CLASS -#define IMPLEMENT_CLASS2 IMPLEMENT_ABSTRACT_CLASS2 - -#endif // wxUSE_DYNAMIC_CLASSES/!wxUSE_DYNAMIC_CLASSES - -#define wxIS_KIND_OF(obj, className) obj->IsKindOf(&className::sm_class##className) - -// Just seems a bit nicer-looking (pretend it's not a macro) -#define wxIsKindOf(obj, className) obj->IsKindOf(&className::sm_class##className) - -// to be replaced by dynamic_cast<> in the future -#define wxDynamicCast(obj, className) \ - ((obj) && ((obj)->IsKindOf(&className::sm_class##className)) \ - ? (className *)(obj) \ - : (className *)0) - -// Unfortunately Borland seems to need this include. -#ifdef __BORLANDC__ - #if wxUSE_IOSTREAMH - #include - #else - #include - #endif -#endif - -class WXDLLEXPORT wxObjectRefData; - -class WXDLLEXPORT wxObject -{ - public: - - // This is equivalent to using the macro DECLARE_ABSTRACT_CLASS - static wxClassInfo sm_classwxObject; - - wxObject(void); - virtual ~wxObject(void); - - virtual wxClassInfo *GetClassInfo(void) const { return &sm_classwxObject; } - wxObject *Clone(void) const; - virtual void CopyObject(wxObject& object_dest) const; - - bool IsKindOf(wxClassInfo *info) const; - -#if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING - void * operator new (size_t size, wxChar * fileName = NULL, int lineNum = 0); - void operator delete (void * buf); - -// VC++ 6.0 -#if defined(__VISUALC__) && (__VISUALC__ >= 1200) - void operator delete(void *buf, char*, int); -#endif - - // Causes problems for VC++ -#if wxUSE_ARRAY_MEMORY_OPERATORS && !defined(__VISUALC__) && !defined( __MWERKS__) - void * operator new[] (size_t size, wxChar * fileName = NULL, int lineNum = 0); - void operator delete[] (void * buf); -#endif - -#ifdef __MWERKS__ - void * operator new[] (size_t size, wxChar * fileName , int lineNum = 0); - void operator delete[] (void * buf); -#endif - -#endif // Debug & memory tracing - -#if defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT - virtual void Dump(ostream& str); -#endif - -#if wxUSE_SERIAL - virtual void StoreObject( wxObjectOutputStream &stream ); - virtual void LoadObject( wxObjectInputStream &stream ); -#endif - - // make a 'clone' of the object - void Ref(const wxObject& clone); - - // destroy a reference - void UnRef(void); - - inline wxObjectRefData *GetRefData(void) const { return m_refData; } - inline void SetRefData(wxObjectRefData *data) { m_refData = data; } - -protected: - wxObjectRefData* m_refData; -#if wxUSE_SERIAL - wxObject_Serialize* m_serialObj; -#endif -}; - -/* - * wxObjectData - */ - -class WXDLLEXPORT wxObjectRefData { - - friend class wxObject; - -public: - wxObjectRefData(void); - virtual ~wxObjectRefData(void); - - inline int GetRefCount(void) const { return m_count; } -private: - int m_count; -}; - -#ifdef __WXDEBUG__ -#ifndef WXDEBUG_NEW -#define WXDEBUG_NEW new(__TFILE__,__LINE__) -#endif -#else -#define WXDEBUG_NEW new -#endif - -// Redefine new to be the debugging version. This doesn't -// work with all compilers, in which case you need to -// use WXDEBUG_NEW explicitly if you wish to use the debugging version. - -#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS -#define new new(__TFILE__,__LINE__) -#endif - -#endif - // _WX_OBJECTH__ - - diff --git a/include/wx/objstrm.h b/include/wx/objstrm.h deleted file mode 100644 index 699492671c..0000000000 --- a/include/wx/objstrm.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: objstrm.h -// Purpose: wxObjectStream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 16/07/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_WXOBJSTRM_H__ -#define _WX_WXOBJSTRM_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stream.h" - -class wxObjectStreamInfo : public wxObject { - public: - wxString object_name; - int n_children, children_removed; - wxList children; - wxObjectStreamInfo *parent; - wxObject *object; - bool duplicate, recall; -}; - -class wxObjectOutputStream : public wxFilterOutputStream { - public: - wxObjectOutputStream(wxOutputStream& s); - - void AddChild(wxObject *obj); - bool SaveObject(wxObject& obj); - - bool FirstStage() const { return m_stage == 0; } - - wxString GetObjectName(wxObject *obj); - - protected: - void WriteObjectDef(wxObjectStreamInfo& info); - void ProcessObjectDef(wxObjectStreamInfo *info); - void ProcessObjectData(wxObjectStreamInfo *info); - - protected: - int m_stage; - bool m_saving; - wxObjectStreamInfo *m_current_info; - wxList m_saved_objs; -}; - -class wxObjectInputStream : public wxFilterInputStream { - public: - wxObjectInputStream(wxInputStream& s); - - bool SecondCall() const { return m_secondcall; } - void Recall(bool on = TRUE) { m_current_info->recall = on; } - - wxObject *GetChild(int no) const; - wxObject *GetChild(); - int NumberOfChildren() const { return m_current_info->n_children; } - void RemoveChildren(int nb); - wxObject *GetParent() const; - wxObject *LoadObject(); - - wxObject *SolveName(const wxString& objName) const; - - protected: - bool ReadObjectDef(wxObjectStreamInfo *info); - wxObjectStreamInfo *ProcessObjectDef(wxObjectStreamInfo *info); - void ProcessObjectData(wxObjectStreamInfo *info); - - protected: - bool m_secondcall; - wxObjectStreamInfo *m_current_info; - wxList m_solver; -}; - -#endif diff --git a/include/wx/odbc.h b/include/wx/odbc.h deleted file mode 100644 index 2ade1bae75..0000000000 --- a/include/wx/odbc.h +++ /dev/null @@ -1,339 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: odbc.h -// Purpose: ODBC classes -// Author: Olaf Klein, Patrick Halke, Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/setup.h" - -#if wxUSE_ODBC - -#ifdef __GNUG__ -#pragma interface "odbc.h" -#endif - -#ifndef _WX_ODBCH__ -#define _WX_ODBCH__ - -#ifdef __WXMSW__ -#include -#endif - - -#ifdef __WXGTK__ -extern "C" { -#include "../../src/iodbc/isql.h" -#include "../../src/iodbc/isqlext.h" -#include "../../src/iodbc/odbc_funcs.h" -#include "../../src/iodbc/odbc_types.h" -typedef float SFLOAT; -typedef double SDOUBLE; -#define ULONG UDWORD -} -#else -#include -#endif - -#include "wx/defs.h" -#include "wx/list.h" -#include "wx/string.h" - -typedef RETCODE wxRETCODE; - -// Recordset open types -#define wxOPEN_TYPE_DYNASET 1 -#define wxOPEN_TYPE_SNAPSHOT 2 -#define wxOPEN_TYPE_FORWARD_ONLY 3 - -// Recordset open options -#define wxOPTION_DEFAULT 1 -#define wxOPTION_APPEND_ONLY 2 -#define wxOPTION_READ_ONLY 3 - -// Data types -class WXDLLEXPORT wxRecordSet; - -class WXDLLEXPORT wxDatabase: public wxObject -{ - // JACS - DECLARE_DYNAMIC_CLASS(wxDatabase) - private: - protected: - static HENV hEnv; - static int refCount; - - HDBC hDBC; - char* username; - char* password; - char* datasource; - char* dbname; - char* connectstring; - bool isOpen; - - // error-handling variables - wxRETCODE retcode; - char sqlstate[SQL_SQLSTATE_SIZE+1]; // error class and subclass - char errmsg[SQL_MAX_MESSAGE_LENGTH]; // error message - long nat_err; // error number by ODBC driver - bool err_occured; - - wxList recordSets; // Record sets: Added by JACS - - public: - wxDatabase(void); - ~wxDatabase(void); - - bool Open(char *, bool exclusive =FALSE, bool readOnly =TRUE, char *username ="ODBC", char *password =""); - bool Close(void); - - // Cleanup operations, added by JACS - void DeleteRecordSets(void); // Called when the database is deleted - void ResetRecordSets(void); // Required if the database is closed - inline wxList& GetRecordSets(void) { return recordSets; } - - inline char *GetUsername(void) { return username; } - inline char *GetPassword(void) { return password; } - inline char *GetDataSource(void) { return datasource; } - inline bool IsOpen(void) { return isOpen; } - inline wxRETCODE GetErrorCode(void) { return retcode; } - inline HDBC GetHDBC(void) { return hDBC; } - inline HENV GetHENV(void) { return hEnv; } - - void SetPassword(char *s); - void SetUsername(char *s); - void SetDataSource(char *s); - - // Database attributes - char *GetDatabaseName(void); - bool CanUpdate(void); - bool CanTransact(void); - bool InWaitForDataSource(void); - void SetLoginTimeout(long seconds); - void SetQueryTimeout(long seconds); - void SetSynchronousMode(bool synchronous); - - // Database operations - bool BeginTrans(void); - bool CommitTrans(void); - bool RollbackTrans(void); - void Cancel(void); - - // Error handling - bool ErrorOccured(void); - char* GetErrorMessage(void); - long GetErrorNumber(void); - char* GetErrorClass(void); - inline void ErrorSnapshot(HSTMT =SQL_NULL_HSTMT); - - // Overridables - virtual void OnSetOptions(wxRecordSet *recordSet); - virtual void OnWaitForDataSource(bool stillExecuting); - - bool GetInfo(long infoType, long *buf); - bool GetInfo(long infoType, char *buf, int bufSize = -1); - - // implementation = TRUE means get the DLL version. - // Otherwise, returns header file version. - wxString GetODBCVersionString(bool implementation = TRUE); - float GetODBCVersionFloat(bool implementation = TRUE); -}; - -// Represents a data row -class WXDLLEXPORT wxQueryField: public wxObject -{ - // JACS - DECLARE_DYNAMIC_CLASS(wxQueryField) - private: - void *data; - short type; - long size; - bool dirty; - - bool AllocData(void); - - public: - wxQueryField(void); - ~wxQueryField(void); - - bool SetData(void*, long); - void SetDirty(bool =TRUE); - void ClearData(void); - void SetType(short); - void SetSize(long); - - void* GetData(void); - short GetType(void); - long GetSize(void); - - bool IsDirty(void); -}; - -// Represents a column description -class WXDLLEXPORT wxQueryCol: public wxObject -{ - // JACS - DECLARE_DYNAMIC_CLASS(wxQueryCol) - private: - short type; - char *name; - bool nullable; - long varsize; - void* var; - - public: - wxList fields; - - wxQueryCol(void); - ~wxQueryCol(void); - - void* BindVar(void*, long); - void FillVar(int); - void AppendField(void*, long); - bool SetData(int, void*, long); - void SetName(char*); - void SetNullable(bool); - void SetFieldDirty(int, bool =TRUE); - void SetType(short); - - char* GetName(void); - short GetType(void); - bool IsNullable(void); - void* GetData(int); - long GetSize(int); - - bool IsFieldDirty(int); -}; - -class WXDLLEXPORT wxRecordSet: public wxObject -{ - // JACS - DECLARE_DYNAMIC_CLASS(wxRecordSet) - private: - int cursor; - int type; - int options; - - protected: - HSTMT hStmt; - int nFields; - int nParams; - int nRecords; - short nCols; - char *recordFilter; - char *sortString; - char *defaultSQL; - char* tablename; - wxDatabase *parentdb; - wxRETCODE retcode; - wxList cols; - wxList fetchbuf; - - void FillVars(int); - - public: - // JACS gave parent a default value for benefit of IMPLEMENT_DYNAMIC_CLASS - wxRecordSet(wxDatabase *parent = NULL, int =wxOPEN_TYPE_DYNASET, int =wxOPTION_DEFAULT); - ~wxRecordSet(void); - - // My own, lower-level functions. - bool BeginQuery(int openType, char *sql = NULL, int options = wxOPTION_DEFAULT); - bool EndQuery(void); - bool Query(char* columns, char* table =NULL, char *filter =NULL); - - // Attributes - inline int GetNumberFields(void) { return nFields; } - inline int GetNumberParams(void) { return nParams; } - long GetNumberRecords(void); - long GetNumberCols(void); - inline char *GetFilter(void) { return recordFilter; } - inline char *GetSortString(void) { return sortString; } - inline wxDatabase *GetDatabase(void) { return parentdb; } - inline wxRETCODE GetErrorCode(void) { return retcode; } - bool CanAppend(void); - bool CanRestart(void); - bool CanScroll(void); - bool CanTransact(void); - bool CanUpdate(void); - long GetCurrentRecord(void); - bool RecordCountFinal(void); - bool GetResultSet(void); - bool ExecuteSQL(char*); - bool GetTables(void); - bool GetColumns(char* =NULL); - bool GetPrimaryKeys(char* =NULL); - bool GetForeignKeys(char* , char * ); - char *GetTableName(void); - void SetTableName(char*); - char *GetSQL(void); - bool IsOpen(void); - bool IsBOF(void); - bool IsEOF(void); - bool IsDeleted(void); - - bool GetFieldData(int colPos, int dataType, void *dataPtr); - bool GetFieldData(const char*, int dataType, void *dataPtr); - void* GetFieldDataPtr(int, int); - void* GetFieldDataPtr(const char*, int); - char* GetColName(int); - short GetColType(int); - short GetColType(const char*); - void* BindVar(int, void*, long); - void* BindVar(const char*, void*, long); - - void SetType(int); - int GetType(void); - void SetOptions(int); - int GetOptions(void); - - // Update operations - void AddNew(void); - bool Delete(void); - void Edit(void); - bool Update(void); - - // Record navigation - virtual bool Move(long rows); - virtual bool MoveFirst(void); - virtual bool MoveLast(void); - virtual bool MoveNext(void); - virtual bool MovePrev(void); - virtual bool GoTo(long); - - // Others - bool GetDataSources(void); - - // Associate a column name/position with a data location - // bool BindColumn(int colPos, int dataType, void *dataPtr); - - void Cancel(void); - bool IsFieldDirty(int); - bool IsFieldDirty(const char*); - bool IsFieldNull(int); - bool IsFieldNull(const char*); - bool IsColNullable(int); - bool IsColNullable(const char*); - virtual bool Requery(void); - virtual void SetFieldDirty(int, bool dirty = TRUE); - virtual void SetFieldDirty(const char*, bool dirty = TRUE); - void SetFieldNull(void *p, bool isNull = TRUE); - - // Overridables - virtual char *GetDefaultConnect(void); - virtual char *GetDefaultSQL(void); - - // Internal - - // Build SQL query from column specification - bool ConstructDefaultSQL(void); - void SetDefaultSQL(char *s); - bool ReleaseHandle(void); // Added JACS -}; - -#endif - -#endif // wxUSE_ODBC diff --git a/include/wx/ownerdrw.h b/include/wx/ownerdrw.h deleted file mode 100644 index fa89707d20..0000000000 --- a/include/wx/ownerdrw.h +++ /dev/null @@ -1,138 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ownerdrw.h -// Purpose: interface for owner-drawn GUI elements -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _OWNERDRW_H -#define _OWNERDRW_H - -#ifdef __GNUG__ -#pragma interface "ownerdrw.h" -#endif - -#include - -// ---------------------------------------------------------------------------- -// wxOwnerDrawn - a mix-in base class, derive from it to implement owner-drawn -// behaviour -// -// wxOwnerDrawn supports drawing of an item with non standard font, color and -// also supports 3 bitmaps: either a checked/unchecked bitmap for a checkable -// element or one unchangeable bitmap otherwise. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxOwnerDrawn -{ -public: - // ctor & dtor - wxOwnerDrawn(const wxString& str = "", - bool bCheckable = FALSE, - bool bMenuItem = FALSE); // FIXME kludge for colors - virtual ~wxOwnerDrawn() { } - - // fix appearance - void SetFont(const wxFont& font) - { m_font = font; m_bOwnerDrawn = TRUE; } - - wxFont& GetFont() const { return (wxFont &)m_font; } - - void SetTextColour(const wxColour& colText) - { m_colText = colText; m_bOwnerDrawn = TRUE; } - - wxColour& GetTextColour() const { return (wxColour&) m_colText; } - - void SetBackgroundColour(const wxColour& colBack) - { m_colBack = colBack; m_bOwnerDrawn = TRUE; } - - wxColour& GetBackgroundColour() const - { return (wxColour&) m_colBack ; } - - void SetBitmaps(const wxBitmap& bmpChecked, - const wxBitmap& bmpUnchecked = wxNullBitmap) - { m_bmpChecked = bmpChecked; - m_bmpUnchecked = bmpUnchecked; - m_bOwnerDrawn = TRUE; } - - const wxBitmap& GetBitmap(bool bChecked = TRUE) const - { return (bChecked ? m_bmpChecked : m_bmpUnchecked); } - - // the height of the menu checkmark (or bitmap) is determined by the font - // for the current item, but the width should be always the same (for the - // items to be aligned), so by default it's taken to be the same as for - // the last item (and default width for the first one). - // - // NB: default is too small for bitmaps, but ok for checkmarks. - void SetMarginWidth(int nWidth) - { - ms_nLastMarginWidth = m_nMarginWidth = (size_t) nWidth; - if ( ((size_t) nWidth) != ms_nDefaultMarginWidth ) - m_bOwnerDrawn = TRUE; - } - - int GetMarginWidth() const { return (int) m_nMarginWidth; } - static int GetDefaultMarginWidth() { return (int) ms_nDefaultMarginWidth; } - - // accessors - void SetName(const wxString& strName) { m_strName = strName; } - const wxString& GetName() const { return m_strName; } - bool IsCheckable() const { return m_bCheckable; } - - // this function might seem strange, but if it returns FALSE it means that - // no non-standard attribute are set, so there is no need for this control - // to be owner-drawn. Moreover, you can force owner-drawn to FALSE if you - // want to change, say, the color for the item but only if it is owner-drawn - // (see wxMenuItem::wxMenuItem for example) - bool IsOwnerDrawn() const { return m_bOwnerDrawn; } - void ResetOwnerDrawn() { m_bOwnerDrawn = FALSE; } - -public: - // constants used in OnDrawItem - // (they have the same values as corresponding Win32 constants) - enum wxODAction - { - wxODDrawAll = 0x0001, // redraw entire control - wxODSelectChanged = 0x0002, // selection changed (see Status.Select) - wxODFocusChanged = 0x0004, // keyboard focus changed (see Status.Focus) - }; - - enum wxODStatus - { - wxODSelected = 0x0001, // control is currently selected - wxODGrayed = 0x0002, // item is to be grayed - wxODDisabled = 0x0004, // item is to be drawn as disabled - wxODChecked = 0x0008, // item is to be checked - wxODHasFocus = 0x0010, // item has the keyboard focus - wxODDefault = 0x0020, // item is the default item - }; - - // virtual functions to implement drawing (return TRUE if processed) - virtual bool OnMeasureItem(size_t *pwidth, size_t *pheight); - virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat); - -protected: - wxString m_strName; // label for a manu item - -private: - static size_t ms_nDefaultMarginWidth; // menu check mark width - static size_t ms_nLastMarginWidth; // handy for aligning all items - - bool m_bCheckable, // used only for menu or check listbox items - m_bOwnerDrawn; // true if something is non standard - - wxFont m_font; // font to use for drawing - wxColour m_colText, // color ----"---"---"---- - m_colBack; // background color - wxBitmap m_bmpChecked, // bitmap to put near the item - m_bmpUnchecked; // (checked is used also for 'uncheckable' items) - - size_t m_nHeight, // font height - m_nMarginWidth; // space occupied by bitmap to the left of the item -}; - -#endif - // _OWNERDRW_H diff --git a/include/wx/palette.h b/include/wx/palette.h deleted file mode 100644 index 9702d374a1..0000000000 --- a/include/wx/palette.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_PALETTE_H_BASE_ -#define _WX_PALETTE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/palette.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/palette.h" -#elif defined(__WXGTK__) -#include "wx/gtk/palette.h" -#elif defined(__WXQT__) -#include "wx/qt/palette.h" -#elif defined(__WXMAC__) -#include "wx/mac/palette.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/palette.h" -#endif - -#endif - // _WX_PALETTE_H_BASE_ diff --git a/include/wx/panel.h b/include/wx/panel.h deleted file mode 100644 index 0bfa7daaca..0000000000 --- a/include/wx/panel.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_PANEL_H_BASE_ -#define _WX_PANEL_H_BASE_ - -#include "wx/generic/panelg.h" - -#endif - // _WX_PANELH_BASE_ diff --git a/include/wx/paper.h b/include/wx/paper.h deleted file mode 100644 index 1d9a7bb750..0000000000 --- a/include/wx/paper.h +++ /dev/null @@ -1,114 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: paper.h -// Purpose: Paper database types and classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PAPERH__ -#define _WX_PAPERH__ - -#ifdef __GNUG__ -#pragma interface "paper.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" -#include "wx/cmndata.h" - -/* - * Paper type: see defs.h for wxPaperSize enum. - * A wxPrintePaperType can have an id and a name, or just a name and wxPAPER_NONE, - * so you can add further paper types without needing new ids. - */ - -#ifdef __WXMSW__ -#define WXADDPAPER(paperId, platformId, name, w, h) AddPaperType(paperId, platformId, name, w, h) -#else -#define WXADDPAPER(paperId, platformId, name, w, h) AddPaperType(paperId, 0, name, w, h) -#endif - -class WXDLLEXPORT wxPrintPaperType: public wxObject -{ -public: - wxPrintPaperType(); - - // platformId is a platform-specific id, such as in Windows, DMPAPER_... - wxPrintPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h); - - inline const wxString& GetName() const { return m_paperName; } - inline wxPaperSize GetId() const { return m_paperId; } - inline int GetPlatformId() const { return m_platformId; } - - // Get width and height in tenths of a millimetre - inline int GetWidth() const { return m_width; } - inline int GetHeight() const { return m_height; } - - // Get size in tenths of a millimetre - inline wxSize GetSize() const { return wxSize(m_width, m_height); } - - // Get size in a millimetres - inline wxSize GetSizeMM() const { return wxSize(m_width/10, m_height/10); } - - // Get width and height in device units (1/72th of an inch) - wxSize GetSizeDeviceUnits() const ; - -public: - wxPaperSize m_paperId; - int m_platformId; - int m_width; // In tenths of a millimetre - int m_height; // In tenths of a millimetre - wxString m_paperName; - -private: - DECLARE_DYNAMIC_CLASS(wxPrintPaperType) -}; - -class WXDLLEXPORT wxPrintPaperDatabase: public wxList -{ -public: - wxPrintPaperDatabase(); - - void CreateDatabase(); - void ClearDatabase(); - - void AddPaperType(wxPaperSize paperId, const wxString& name, int w, int h); - void AddPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h); - - // Find by name - wxPrintPaperType *FindPaperType(const wxString& name); - - // Find by size id - wxPrintPaperType *FindPaperType(wxPaperSize id); - - // Find by platform id - wxPrintPaperType *FindPaperTypeByPlatformId(int id); - - // Find by size - wxPrintPaperType *FindPaperType(const wxSize& size); - - // Convert name to size id - wxPaperSize ConvertNameToId(const wxString& name); - - // Convert size id to name - wxString ConvertIdToName(wxPaperSize paperId); - - // Get the paper size - wxSize GetSize(wxPaperSize paperId); - - // Get the paper size - wxPaperSize GetSize(const wxSize& size); - -private: - DECLARE_DYNAMIC_CLASS(wxPrintPaperDatabase) -}; - -WXDLLEXPORT_DATA(extern wxPrintPaperDatabase*) wxThePrintPaperDatabase; - - -#endif - // _WX_PAPERH__ diff --git a/include/wx/pen.h b/include/wx/pen.h deleted file mode 100644 index d132d8a7c9..0000000000 --- a/include/wx/pen.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_PEN_H_BASE_ -#define _WX_PEN_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/pen.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/pen.h" -#elif defined(__WXGTK__) -#include "wx/gtk/pen.h" -#elif defined(__WXQT__) -#include "wx/qt/pen.h" -#elif defined(__WXMAC__) -#include "wx/mac/pen.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/pen.h" -#endif - -#endif - // _WX_PEN_H_BASE_ diff --git a/include/wx/pnghand.h b/include/wx/pnghand.h deleted file mode 100644 index 405e234ba5..0000000000 --- a/include/wx/pnghand.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _WX_PNGHAND_H_BASE_ -#define _WX_PNGHAND_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/pnghand.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/pnghand.h" -#elif defined(__WXGTK__) -#include "wx/gtk/pnghand.h" -#elif defined(__WXMAC__) -#include "wx/mac/pnghand.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/pnghand.h" -#endif - -#endif - // _WX_PNGHAND_H_BASE_ diff --git a/include/wx/print.h b/include/wx/print.h deleted file mode 100644 index 5d7c7a4f60..0000000000 --- a/include/wx/print.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _WX_PRINT_H_BASE_ -#define _WX_PRINT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/printwin.h" - -#ifndef wxPrinter -#define wxPrinter wxWindowsPrinter -#endif -#ifndef wxPrintPreview -#define wxPrintPreview wxWindowsPrintPreview -#endif - -#else -#include "wx/generic/printps.h" - -#ifndef wxPrinter -#define wxPrinter wxPostScriptPrinter -#define sm_classwxPrinter sm_classwxPostScriptPrinter -#endif -#ifndef wxPrintPreview -#define wxPrintPreview wxPostScriptPrintPreview -#define sm_classwxPrintPreview sm_classwxPostScriptPrintPreview -#endif - -#endif - - -#endif - // _WX_PRINT_H_BASE_ diff --git a/include/wx/printdlg.h b/include/wx/printdlg.h deleted file mode 100644 index 59d382735e..0000000000 --- a/include/wx/printdlg.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef _WX_PRINTDLG_H_BASE_ -#define _WX_PRINTDLG_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/printdlg.h" -#elif defined(__WXMOTIF__) -#include "wx/generic/prntdlgg.h" -#elif defined(__WXGTK__) -#include "wx/generic/prntdlgg.h" -#elif defined(__WXQT__) -#include "wx/generic/prntdlgg.h" -#elif defined(__WXMAC__) -#include "wx/mac/printdlg.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/prntdlgg.h" -#endif - -#if !defined(__WXMSW__) && !defined(__WXMAC__) -#define wxPrintDialog wxGenericPrintDialog -#define sm_classwxPrintDialog sm_classwxGenericPrintDialog - -#define wxPrintSetupDialog wxGenericPrintSetupDialog -#define sm_classwxPrintSetupDialog sm_classwxGenericPrintSetupDialog - -#define wxPageSetupDialog wxGenericPageSetupDialog -#define sm_classwxPageSetupDialog sm_classwxGenericPageSetupDialog -#endif - -#endif - // _WX_PRINTDLG_H_BASE_ diff --git a/include/wx/prntbase.h b/include/wx/prntbase.h deleted file mode 100644 index 9e3cd730bc..0000000000 --- a/include/wx/prntbase.h +++ /dev/null @@ -1,371 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: prntbase.h -// Purpose: Base classes for printing framework -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRNTBASEH__ -#define _WX_PRNTBASEH__ - -#ifdef __GNUG__ - #pragma interface "prntbase.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" -#include "wx/cmndata.h" -#include "wx/panel.h" -#include "wx/scrolwin.h" -#include "wx/dialog.h" -#include "wx/frame.h" - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxChoice; -class WXDLLEXPORT wxPrintout; -class WXDLLEXPORT wxPrinterBase; -class WXDLLEXPORT wxPrintDialog; -class WXDLLEXPORT wxPrintPreviewBase; -class WXDLLEXPORT wxPreviewCanvas; -class WXDLLEXPORT wxPreviewControlBar; -class WXDLLEXPORT wxPreviewFrame; - -/* - * Represents the printer: manages printing a wxPrintout object - */ - -class WXDLLEXPORT wxPrinterBase: public wxObject -{ - DECLARE_CLASS(wxPrinterBase) - -public: - wxPrinterBase(wxPrintDialogData *data = (wxPrintDialogData *) NULL); - virtual ~wxPrinterBase(); - - virtual wxWindow *CreateAbortWindow(wxWindow *parent, wxPrintout *printout); - virtual void ReportError(wxWindow *parent, wxPrintout *printout, char *message); - - wxPrintDialogData& GetPrintDialogData() const - { return (wxPrintDialogData&) m_printDialogData; } - bool GetAbort() const { return sm_abortIt; } - - /////////////////////////////////////////////////////////////////////////// - // OVERRIDES - - virtual bool Setup(wxWindow *parent) = 0; - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE) = 0; - virtual wxDC* PrintDialog(wxWindow *parent) = 0; - -protected: - wxPrintDialogData m_printDialogData; - wxPrintout* m_currentPrintout; -public: - static wxWindow* sm_abortWindow; - static bool sm_abortIt; - -}; - -/* - * wxPrintout - * Represents an object via which a document may be printed. - * The programmer derives from this, overrides (at least) OnPrintPage, - * and passes it to a wxPrinter object for printing, or a wxPrintPreview - * object for previewing. - */ - -class WXDLLEXPORT wxPrintout: public wxObject -{ -DECLARE_ABSTRACT_CLASS(wxPrintout) - -public: - wxPrintout(const wxString& title = "Printout"); - virtual ~wxPrintout(); - - virtual bool OnBeginDocument(int startPage, int endPage); - virtual void OnEndDocument(); - virtual void OnBeginPrinting(); - virtual void OnEndPrinting(); - - // Guaranteed to be before any other functions are called - virtual void OnPreparePrinting() { } - - virtual bool HasPage(int page); - virtual bool OnPrintPage(int page) = 0; - virtual void GetPageInfo(int *minPage, int *maxPage, int *pageFrom, int *pageTo); - - virtual wxString GetTitle() const { return m_printoutTitle; } - - wxDC *GetDC() const { return m_printoutDC; } - void SetDC(wxDC *dc) { m_printoutDC = dc; } - void SetPageSizePixels(int w, int h) { m_pageWidthPixels = w; m_pageHeightPixels = h; } - void GetPageSizePixels(int *w, int *h) const { *w = m_pageWidthPixels; *h = m_pageHeightPixels; } - void SetPageSizeMM(int w, int h) { m_pageWidthMM = w; m_pageHeightMM = h; } - void GetPageSizeMM(int *w, int *h) const { *w = m_pageWidthMM; *h = m_pageHeightMM; } - - void SetPPIScreen(int x, int y) { m_PPIScreenX = x; m_PPIScreenY = y; } - void GetPPIScreen(int *x, int *y) const { *x = m_PPIScreenX; *y = m_PPIScreenY; } - void SetPPIPrinter(int x, int y) { m_PPIPrinterX = x; m_PPIPrinterY = y; } - void GetPPIPrinter(int *x, int *y) const { *x = m_PPIPrinterX; *y = m_PPIPrinterY; } - - virtual bool IsPreview() const { return m_isPreview; } - - virtual void SetIsPreview(bool p) { m_isPreview = p; } - -private: - wxString m_printoutTitle; - wxDC* m_printoutDC; - - int m_pageWidthPixels; - int m_pageHeightPixels; - - int m_pageWidthMM; - int m_pageHeightMM; - - int m_PPIScreenX; - int m_PPIScreenY; - int m_PPIPrinterX; - int m_PPIPrinterY; - - bool m_isPreview; -}; - -/* - * wxPreviewCanvas - * Canvas upon which a preview is drawn. - */ - -class WXDLLEXPORT wxPreviewCanvas: public wxScrolledWindow -{ - DECLARE_CLASS(wxPreviewCanvas) - -public: - wxPreviewCanvas(wxPrintPreviewBase *preview, - wxWindow *parent, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "canvas"); - ~wxPreviewCanvas(); - - void OnPaint(wxPaintEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -private: - wxPrintPreviewBase* m_printPreview; - - DECLARE_EVENT_TABLE() -}; - -/* - * wxPreviewFrame - * Default frame for showing preview. - */ - -class WXDLLEXPORT wxPreviewFrame: public wxFrame -{ - DECLARE_CLASS(wxPreviewFrame) - -public: - wxPreviewFrame(wxPrintPreviewBase *preview, - wxFrame *parent, - const wxString& title = "Print Preview", - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = "frame"); - ~wxPreviewFrame(); - - void OnCloseWindow(wxCloseEvent& event); - virtual void Initialize(); - virtual void CreateCanvas(); - virtual void CreateControlBar(); - -protected: - wxWindow* m_previewCanvas; - wxPreviewControlBar* m_controlBar; - wxPrintPreviewBase* m_printPreview; - -private: - DECLARE_EVENT_TABLE() -}; - -/* - * wxPreviewControlBar - * A panel with buttons for controlling a print preview. - * The programmer may wish to use other means for controlling - * the print preview. - */ - -#define wxPREVIEW_PRINT 1 -#define wxPREVIEW_PREVIOUS 2 -#define wxPREVIEW_NEXT 4 -#define wxPREVIEW_ZOOM 8 - -#define wxPREVIEW_DEFAULT wxPREVIEW_PREVIOUS|wxPREVIEW_NEXT|wxPREVIEW_ZOOM - -// Ids for controls -#define wxID_PREVIEW_CLOSE 1 -#define wxID_PREVIEW_NEXT 2 -#define wxID_PREVIEW_PREVIOUS 3 -#define wxID_PREVIEW_PRINT 4 -#define wxID_PREVIEW_ZOOM 5 - -class WXDLLEXPORT wxPreviewControlBar: public wxPanel -{ - DECLARE_CLASS(wxPreviewControlBar) - -public: - wxPreviewControlBar(wxPrintPreviewBase *preview, - long buttons, - wxWindow *parent, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "panel"); - ~wxPreviewControlBar(); - - virtual void CreateButtons(); - virtual void SetZoomControl(int zoom); - virtual int GetZoomControl(); - virtual wxPrintPreviewBase *GetPrintPreview() const - { return m_printPreview; } - - void OnPrint(wxCommandEvent& event); - void OnWindowClose(wxCommandEvent& event); - void OnNext(wxCommandEvent& event); - void OnPrevious(wxCommandEvent& event); - void OnZoom(wxCommandEvent& event); - void OnPaint(wxPaintEvent& event); - -protected: - wxPrintPreviewBase* m_printPreview; - wxButton* m_closeButton; - wxButton* m_nextPageButton; - wxButton* m_previousPageButton; - wxButton* m_printButton; - wxChoice* m_zoomControl; - long m_buttonFlags; - -private: - DECLARE_EVENT_TABLE() -}; - -/* - * wxPrintPreview - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLEXPORT wxPrintPreviewBase: public wxObject -{ - DECLARE_CLASS(wxPrintPreviewBase) - -public: - wxPrintPreviewBase(wxPrintout *printout, - wxPrintout *printoutForPrinting = (wxPrintout *) NULL, - wxPrintDialogData *data = (wxPrintDialogData *) NULL); - wxPrintPreviewBase(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data); - virtual ~wxPrintPreviewBase(); - - virtual bool SetCurrentPage(int pageNum); - int GetCurrentPage() const { return m_currentPage; }; - - void SetPrintout(wxPrintout *printout) { m_previewPrintout = printout; }; - wxPrintout *GetPrintout() const { return m_previewPrintout; }; - wxPrintout *GetPrintoutForPrinting() const { return m_printPrintout; }; - - void SetFrame(wxFrame *frame) { m_previewFrame = frame; }; - void SetCanvas(wxWindow *canvas) { m_previewCanvas = canvas; }; - - virtual wxFrame *GetFrame() const { return m_previewFrame; } - virtual wxWindow *GetCanvas() const { return m_previewCanvas; } - - // The preview canvas should call this from OnPaint - virtual bool PaintPage(wxWindow *canvas, wxDC& dc); - - // This draws a blank page onto the preview canvas - virtual bool DrawBlankPage(wxWindow *canvas, wxDC& dc); - - // This is called by wxPrintPreview to render a page into a wxMemoryDC. - virtual bool RenderPage(int pageNum); - - wxPrintDialogData& GetPrintDialogData() { return m_printDialogData; } - - virtual void SetZoom(int percent); - int GetZoom() const { return m_currentZoom; }; - - int GetMaxPage() const { return m_maxPage; } - int GetMinPage() const { return m_minPage; } - - bool Ok() const { return m_isOk; } - void SetOk(bool ok) { m_isOk = ok; } - - /////////////////////////////////////////////////////////////////////////// - // OVERRIDES - - // If we own a wxPrintout that can be used for printing, this - // will invoke the actual printing procedure. Called - // by the wxPreviewControlBar. - virtual bool Print(bool interactive) = 0; - - // Calculate scaling that needs to be done to get roughly - // the right scaling for the screen pretending to be - // the currently selected printer. - virtual void DetermineScaling() = 0; - -protected: - wxPrintDialogData m_printDialogData; - wxWindow* m_previewCanvas; - wxFrame* m_previewFrame; - wxBitmap* m_previewBitmap; - wxPrintout* m_previewPrintout; - wxPrintout* m_printPrintout; - int m_currentPage; - int m_currentZoom; - float m_previewScale; - int m_topMargin; - int m_leftMargin; - int m_pageWidth; - int m_pageHeight; - int m_minPage; - int m_maxPage; - - bool m_isOk; - -private: - void Init(wxPrintout *printout, wxPrintout *printoutForPrinting); -}; - -/* - * Abort dialog - */ - -class WXDLLEXPORT wxPrintAbortDialog: public wxDialog -{ -public: - wxPrintAbortDialog(wxWindow *parent, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "dialog") - : wxDialog(parent, -1, title, pos, size, style, name) - { - } - - void OnCancel(wxCommandEvent& event); - -private: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_PRNTBASEH__ diff --git a/include/wx/process.h b/include/wx/process.h deleted file mode 100644 index b612306a66..0000000000 --- a/include/wx/process.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: process.h -// Purpose: wxProcess class -// Author: Guilhem Lavaux -// Modified by: Vadim Zeitlin to check error codes, added Detach() method -// Created: 24/06/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROCESSH__ -#define _WX_PROCESSH__ - -#ifdef __GNUG__ - #pragma interface "process.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/event.h" - -// Process Event handling -class WXDLLEXPORT wxProcessEvent : public wxEvent -{ -DECLARE_DYNAMIC_CLASS(wxProcessEvent) - -public: - wxProcessEvent(int id = 0, int pid = 0, int exitcode = 0) : wxEvent(id) - { - m_eventType = wxEVT_END_PROCESS; - m_pid = pid; - m_exitcode = exitcode; - } - - // accessors - // PID of process which terminated - int GetPid() { return m_pid; } - - // the exit code - int GetExitCode() { return m_exitcode; } - -public: - int m_pid, m_exitcode; -}; - -// A wxProcess object should be passed to wxExecute - than its OnTerminate() -// function will be called when the process terminates. -class WXDLLEXPORT wxProcess : public wxEvtHandler -{ -DECLARE_DYNAMIC_CLASS(wxProcess) - -public: - wxProcess(wxEvtHandler *parent = (wxEvtHandler *) NULL, int id = -1); - - virtual void OnTerminate(int pid, int status); - - // detach from the parent - should be called by the parent if it's deleted - // before the process it started terminates - void Detach(); - -protected: - int m_id; -}; - -typedef void (wxObject::*wxProcessEventFunction)(wxProcessEvent&); - -#define EVT_END_PROCESS(id, func) { wxEVT_END_PROCESS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxProcessEventFunction) & func, NULL}, - -#endif - // _WX_PROCESSH__ diff --git a/include/wx/progdlg.h b/include/wx/progdlg.h deleted file mode 100644 index 38e3b0d18d..0000000000 --- a/include/wx/progdlg.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_PROGDLG_H_BASE_ -#define _WX_PROGDLG_H_BASE_ - -#include "wx/generic/progdlgg.h" - -#endif - // _WX_PROGDLG_H_BASE_ diff --git a/include/wx/prop.h b/include/wx/prop.h deleted file mode 100644 index 9afa515b19..0000000000 --- a/include/wx/prop.h +++ /dev/null @@ -1,340 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: prop.h -// Purpose: Property sheet classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROP_H_ -#define _WX_PROP_H_ - -#ifdef __GNUG__ -#pragma interface "prop.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/hash.h" -#include "wx/dialog.h" -#include "wx/frame.h" -#include "wx/button.h" -#include "wx/listbox.h" -#include "wx/textctrl.h" -#include "wx/gdicmn.h" -#include "wx/layout.h" - -class wxWindow; -class wxProperty; -class wxPropertyValue; -class wxPropertySheet; -class wxPropertyView; -class wxPropertyValidator; -class wxPropertyValidatorRegistry; - -#define wxPROPERTY_VERSION 2.0 - -// A storable sheet of values -class WXDLLEXPORT wxPropertySheet: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPropertySheet) - public: - wxPropertySheet(const wxString& name = ""); - ~wxPropertySheet(void); - - // Set the name of the sheet - inline virtual void SetName(const wxString& name) { m_name=name; } - inline virtual wxString GetName() const { return m_name; } - // Does this sheet contain a property with this name - virtual bool HasProperty(const wxString& name) const; - - // Set property name to value - virtual bool SetProperty(const wxString& name, const wxPropertyValue& value); - - // Remove property from sheet by name, deleting it - virtual void RemoveProperty(const wxString& name); - - // Get the name of the sheet - // Add a property - virtual void AddProperty(wxProperty *property); - - // Get property by name - virtual wxProperty *GetProperty(const wxString& name) const; - - // Clear all properties - virtual void Clear(void); - - virtual bool Save(ostream& str); - virtual bool Load(ostream& str); - - virtual void UpdateAllViews(wxPropertyView *thisView = NULL); - inline virtual wxList& GetProperties(void) const { return (wxList&) m_properties; } - - // Sets/clears the modified flag for each property value - virtual void SetAllModified(bool flag = TRUE); - - protected: - wxObject* m_viewedObject; - wxList m_properties; - wxPropertyView* m_propertyView; - wxString m_name; -}; - - -// Base class for property sheet views. There are currently two directly derived -// classes: wxPropertyListView, and wxPropertyFormView. -class WXDLLEXPORT wxPropertyView: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxPropertyView) - public: - wxPropertyView(long flags = 0); - ~wxPropertyView(void); - - // Associates and shows the view - virtual void ShowView(wxPropertySheet *WXUNUSED(propertySheet), wxWindow *WXUNUSED(panel)) {} - - // Update this view of the viewed object, called e.g. by - // the object itself. - virtual bool OnUpdateView(void) {return FALSE;}; - - // Override this to do something as soon as the property changed, - // if the view and validators support it. - virtual void OnPropertyChanged(wxProperty *WXUNUSED(property)) {} - - virtual void AddRegistry(wxPropertyValidatorRegistry *registry); - inline virtual wxList& GetRegistryList(void) const - { return (wxList&) m_validatorRegistryList; } - - virtual wxPropertyValidator *FindPropertyValidator(wxProperty *property); - inline virtual void SetPropertySheet(wxPropertySheet *sheet) { m_propertySheet = sheet; } - inline virtual wxPropertySheet *GetPropertySheet(void) const { return m_propertySheet; } - -/* - virtual void OnOk(void) {}; - virtual void OnCancel(void) {}; - virtual void OnHelp(void) {}; -*/ - - inline virtual bool OnClose(void) { return FALSE; } - inline long GetFlags(void) { return m_buttonFlags; } - - protected: - long m_buttonFlags; - wxPropertySheet* m_propertySheet; - wxProperty* m_currentProperty; - wxList m_validatorRegistryList; - wxPropertyValidator* m_currentValidator; -}; - - -class WXDLLEXPORT wxPropertyValidator: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxPropertyValidator) - public: - wxPropertyValidator(long flags = 0); - ~wxPropertyValidator(void); - - inline long GetFlags(void) const { return m_validatorFlags; } - inline void SetValidatorProperty(wxProperty *prop) { m_validatorProperty = prop; } - inline wxProperty *GetValidatorProperty(void) const { return m_validatorProperty; } - - virtual bool StringToFloat (wxChar *s, float *number); - virtual bool StringToDouble (wxChar *s, double *number); - virtual bool StringToInt (wxChar *s, int *number); - virtual bool StringToLong (wxChar *s, long *number); - virtual wxChar *FloatToString (float number); - virtual wxChar *DoubleToString (double number); - virtual wxChar *IntToString (int number); - virtual wxChar *LongToString (long number); - - protected: - long m_validatorFlags; - wxProperty* m_validatorProperty; -}; - - -// extern wxPropertyValidator *wxDefaultPropertyValidator; - -class WXDLLEXPORT wxPropertyValidatorRegistry: public wxHashTable -{ - DECLARE_DYNAMIC_CLASS(wxPropertyValidatorRegistry) - public: - wxPropertyValidatorRegistry(void); - ~wxPropertyValidatorRegistry(void); - - virtual void RegisterValidator(const wxString& roleName, wxPropertyValidator *validator); - virtual wxPropertyValidator *GetValidator(const wxString& roleName); - void ClearRegistry(void); -}; - -/* - * Property value class - */ - -typedef enum { - wxPropertyValueNull, - wxPropertyValueInteger, - wxPropertyValueReal, - wxPropertyValuebool, - wxPropertyValueString, - wxPropertyValueList, - wxPropertyValueIntegerPtr, - wxPropertyValueRealPtr, - wxPropertyValueboolPtr, - wxPropertyValueStringPtr -} wxPropertyValueType; - -class WXDLLEXPORT wxPropertyValue: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPropertyValue) - - wxPropertyValue(void); // Unknown type - wxPropertyValue(const wxPropertyValue& copyFrom); // Copy constructor - wxPropertyValue(const wxChar *val); - wxPropertyValue(const wxString& val); - wxPropertyValue(long val); - wxPropertyValue(bool val); - wxPropertyValue(float val); - wxPropertyValue(double the_real); - wxPropertyValue(wxList *val); - wxPropertyValue(wxStringList *val); - // Pointer versions - wxPropertyValue(wxChar **val); - wxPropertyValue(long *val); - wxPropertyValue(bool *val); - wxPropertyValue(float *val); - - ~wxPropertyValue(void); - - virtual inline wxPropertyValueType Type(void) const { return m_type; } - virtual inline void SetType(wxPropertyValueType typ) { m_type = typ; } - virtual long IntegerValue(void) const; - virtual float RealValue(void) const; - virtual bool BoolValue(void) const; - virtual wxChar *StringValue(void) const; - virtual long *IntegerValuePtr(void) const; - virtual float *RealValuePtr(void) const; - virtual bool *BoolValuePtr(void) const; - virtual wxChar **StringValuePtr(void) const; - - // Get nth arg of clause (starting from 1) - virtual wxPropertyValue *Arg(wxPropertyValueType type, int arg) const; - - // Return nth argument of a list expression (starting from zero) - virtual wxPropertyValue *Nth(int arg) const; - // Returns the number of elements in a list expression - virtual int Number(void) const; - - virtual wxPropertyValue *NewCopy(void) const; - virtual void Copy(wxPropertyValue& copyFrom); - - virtual void WritePropertyClause(ostream& stream); // Write this expression as a top-level clause - virtual void WritePropertyType(ostream& stream); // Write as any other subexpression - - // Append an expression to a list - virtual void Append(wxPropertyValue *expr); - // Insert at beginning of list - virtual void Insert(wxPropertyValue *expr); - - // Get first expr in list - virtual inline wxPropertyValue *GetFirst(void) const - { return ((m_type == wxPropertyValueList) ? m_value.first : (wxPropertyValue*)NULL); } - - // Get next expr if this is a node in a list - virtual inline wxPropertyValue *GetNext(void) const - { return m_next; } - - // Get last expr in list - virtual inline wxPropertyValue *GetLast(void) const - { return ((m_type == wxPropertyValueList) ? m_last : (wxPropertyValue*)NULL); } - - // Delete this node from the list - virtual void Delete(wxPropertyValue *node); - - // Clear list - virtual void ClearList(void); - - virtual inline void SetClientData(wxObject *data) { m_clientData = data; } - virtual inline wxObject *GetClientData(void) { return m_clientData; } - - virtual wxString GetStringRepresentation(void); - - inline void SetModified(bool flag = TRUE) { m_modifiedFlag = flag; } - inline bool GetModified(void) { return m_modifiedFlag; } - - // Operators - void operator=(const wxPropertyValue& val); -// void operator=(const char *val); - void operator=(const wxString& val); - void operator=(const long val); - void operator=(const bool val); - void operator=(const float val); - void operator=(const wxChar **val); - void operator=(const long *val); - void operator=(const bool *val); - void operator=(const float *val); - - public: - wxObject* m_clientData; - wxPropertyValueType m_type; - bool m_modifiedFlag; - - union { - long integer; // Also doubles as bool - wxChar *string; - float real; - long *integerPtr; - bool *boolPtr; - wxChar **stringPtr; - float *realPtr; - wxPropertyValue *first; // If is a list expr, points to the first node - } m_value; - - wxPropertyValue* m_next; // If this is a node in a list, points to the next node - wxPropertyValue* m_last; // If is a list expr, points to the last node - -}; - -/* - * Property class: contains a name and a value. - */ - -class WXDLLEXPORT wxProperty: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxProperty) - protected: - bool m_enabled; - public: - wxPropertyValue m_value; - wxString m_name; - wxString m_propertyRole; - wxPropertyValidator* m_propertyValidator; - wxWindow* m_propertyWindow; // Usually a panel item, if anything - - wxProperty(void); - wxProperty(wxProperty& copyFrom); - wxProperty(wxString name, wxString role, wxPropertyValidator *ed = NULL); - wxProperty(wxString name, const wxPropertyValue& val, wxString role, wxPropertyValidator *ed = NULL); - ~wxProperty(void); - - virtual wxPropertyValue& GetValue(void) const; - virtual wxPropertyValidator *GetValidator(void) const; - virtual wxString& GetName(void) const; - virtual wxString& GetRole(void) const; - virtual void SetValue(const wxPropertyValue& val); - virtual void SetValidator(wxPropertyValidator *v); - virtual void SetName(wxString& nm); - virtual void SetRole(wxString& role); - void operator=(const wxPropertyValue& val); - virtual inline void SetWindow(wxWindow *win) { m_propertyWindow = win; } - virtual inline wxWindow *GetWindow(void) const { return m_propertyWindow; } - - inline void Enable(bool en) { m_enabled = en; } - inline bool IsEnabled(void) const { return m_enabled; } -}; - -#endif - // _WX_PROP_H_ diff --git a/include/wx/propform.h b/include/wx/propform.h deleted file mode 100644 index 4acff593bb..0000000000 --- a/include/wx/propform.h +++ /dev/null @@ -1,302 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: propform.h -// Purpose: Property form classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PROPFORM_H_ -#define _WX_PROPFORM_H_ - -#ifdef __GNUG__ -#pragma interface "propform.h" -#endif - -#include "wx/prop.h" - -//// -//// Property form classes: for using an existing dialog or panel -//// - -#define wxID_PROP_REVERT 3100 -#define wxID_PROP_UPDATE 3101 - -// Mediates between a physical panel and the property sheet -class WXDLLEXPORT wxPropertyFormView: public wxPropertyView -{ - DECLARE_DYNAMIC_CLASS(wxPropertyFormView) - public: - wxPropertyFormView(wxWindow *propPanel = NULL, long flags = 0); - ~wxPropertyFormView(void); - - // Associates and shows the view - virtual void ShowView(wxPropertySheet *propertySheet, wxWindow *panel); - - // Update this view of the viewed object, called e.g. by - // the object itself. - virtual bool OnUpdateView(void); - - // Transfer values from property sheet to dialog - virtual bool TransferToDialog(void); - - // Transfer values from dialog to property sheet - virtual bool TransferToPropertySheet(void); - - // Check that all the values are valid - virtual bool Check(void); - - // Give each property in the sheet a panel item, by matching - // the name of the property to the name of the panel item. - // The user doesn't always want to call this; sometimes, it - // will have been done explicitly (e.g., no matching names). - virtual bool AssociateNames(void); - - void OnOk(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - void OnHelp(wxCommandEvent& event); - void OnUpdate(wxCommandEvent& event); - void OnRevert(wxCommandEvent& event); - - virtual bool OnClose(); - virtual void OnDoubleClick(wxControl *item); - - // TODO: does OnCommand still get called...??? - virtual void OnCommand(wxWindow& win, wxCommandEvent& event); - - inline virtual void AssociatePanel(wxWindow *win) { m_propertyWindow = win; } - inline virtual wxWindow *GetPanel(void) const { return m_propertyWindow; } - - inline virtual void SetManagedWindow(wxWindow *win) { m_managedWindow = win; } - inline virtual wxWindow *GetManagedWindow(void) const { return m_managedWindow; } - - inline virtual wxButton *GetWindowCloseButton() const { return m_windowCloseButton; } - inline virtual wxButton *GetWindowCancelButton() const { return m_windowCancelButton; } - inline virtual wxButton *GetHelpButton() const { return m_windowHelpButton; } - -public: - static bool sm_dialogCancelled; - - protected: - bool m_detailedEditing; // E.g. using listbox for choices - - wxWindow* m_propertyWindow; // Panel that the controls will appear on - wxWindow* m_managedWindow; // Frame or dialog - - wxButton* m_windowCloseButton; // Or OK - wxButton* m_windowCancelButton; - wxButton* m_windowHelpButton; - -DECLARE_EVENT_TABLE() - -}; - -/* - * The type of validator used for forms (wxForm style but using an existing panel - * or dialog box). - * Classes derived from this know how to map from whatever widget they - * find themselves paired with, to the wxProperty and vice versa. - * Should the widget pointer be stored with the validator, or - * the wxProperty? If with the property, we don't have to supply - * a validator for every property. Otherwise, there ALWAYS needs - * to be a validator. On the other hand, not storing a wxWindow pointer - * in the wxProperty is more elegant. Perhaps. - * I think on balance, should put wxWindow pointer into wxProperty. - * After all, wxProperty will often be used to represent the data - * assocated with a window. It's that kinda thing. - */ - -class WXDLLEXPORT wxPropertyFormValidator: public wxPropertyValidator -{ - DECLARE_DYNAMIC_CLASS(wxPropertyFormValidator) - protected: - public: - wxPropertyFormValidator(long flags = 0): wxPropertyValidator(flags) { } - ~wxPropertyFormValidator(void) {} - - // Called to check value is OK (e.g. when OK is pressed) - // Return FALSE if value didn't check out; signal to restore old value. - virtual bool OnCheckValue( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) { return TRUE; } - - // Does the transferance from the property editing area to the property itself. - // Called by the view, e.g. when closing the window. - virtual bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow) = 0; - - // Called by the view to transfer the property to the window. - virtual bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow) = 0; - - virtual void OnDoubleClick( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) { } - virtual void OnSetFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) { } - virtual void OnKillFocus( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) { } - virtual void OnCommand( wxProperty *WXUNUSED(property), wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow), wxCommandEvent& WXUNUSED(event) ) {} -}; - -/* - * Some default validators - */ - -class WXDLLEXPORT wxRealFormValidator: public wxPropertyFormValidator -{ - DECLARE_DYNAMIC_CLASS(wxRealFormValidator) - public: - // 0.0, 0.0 means no range - wxRealFormValidator(float min = 0.0, float max = 0.0, long flags = 0):wxPropertyFormValidator(flags) - { - m_realMin = min; m_realMax = max; - } - ~wxRealFormValidator(void) {} - - bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - // Called by the view to transfer the property to the window. - bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - - protected: - float m_realMin; - float m_realMax; -}; - -class WXDLLEXPORT wxIntegerFormValidator: public wxPropertyFormValidator -{ - DECLARE_DYNAMIC_CLASS(wxIntegerFormValidator) - public: - // 0, 0 means no range - wxIntegerFormValidator(long min = 0, long max = 0, long flags = 0):wxPropertyFormValidator(flags) - { - m_integerMin = min; m_integerMax = max; - } - ~wxIntegerFormValidator(void) {} - - bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - - protected: - long m_integerMin; - long m_integerMax; -}; - -class WXDLLEXPORT wxBoolFormValidator: public wxPropertyFormValidator -{ - DECLARE_DYNAMIC_CLASS(wxBoolFormValidator) - protected: - public: - wxBoolFormValidator(long flags = 0):wxPropertyFormValidator(flags) - { - } - ~wxBoolFormValidator(void) {} - - bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); -}; - -class WXDLLEXPORT wxStringFormValidator: public wxPropertyFormValidator -{ - DECLARE_DYNAMIC_CLASS(wxStringFormValidator) - public: - wxStringFormValidator(wxStringList *list = NULL, long flags = 0); - - ~wxStringFormValidator(void) - { - if (m_strings) - delete m_strings; - } - - bool OnCheckValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnRetrieveValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyFormView *view, wxWindow *parentWindow); - - protected: - wxStringList* m_strings; -}; - -/* - * A default dialog box class to use. - */ - -class WXDLLEXPORT wxPropertyFormDialog: public wxDialog -{ - DECLARE_CLASS(wxPropertyFormDialog) - public: - wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"); - - void OnCloseWindow(wxCloseEvent& event); - void OnDefaultAction(wxControl *item); - void OnCommand(wxWindow& win, wxCommandEvent& event); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - private: - wxPropertyFormView* m_view; - -DECLARE_EVENT_TABLE() -}; - -/* - * A default panel class to use. - */ - -class WXDLLEXPORT wxPropertyFormPanel: public wxPanel -{ - DECLARE_CLASS(wxPropertyFormPanel) - public: - wxPropertyFormPanel(wxPropertyFormView *v, wxWindow *parent, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "panel"): - wxPanel(parent, -1, pos, size, style, name) - { - m_view = v; - } - void OnDefaultAction(wxControl *item); - void OnCommand(wxWindow& win, wxCommandEvent& event); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - private: - wxPropertyFormView* m_view; -}; - -/* - * A default frame class to use. - */ - -class WXDLLEXPORT wxPropertyFormFrame: public wxFrame -{ - DECLARE_CLASS(wxPropertyFormFrame) - public: - wxPropertyFormFrame(wxPropertyFormView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"): - wxFrame(parent, -1, title, pos, size, style, name) - { - m_view = v; - m_propertyPanel = NULL; - } - void OnCloseWindow(wxCloseEvent& event); - - // Must call this to create panel and associate view - virtual bool Initialize(void); - virtual wxPanel *OnCreatePanel(wxFrame *parent, wxPropertyFormView *v); - inline virtual wxPanel *GetPropertyPanel(void) const { return m_propertyPanel; } - - private: - wxPropertyFormView* m_view; - wxPanel* m_propertyPanel; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_PROPFORM_H_ diff --git a/include/wx/proplist.h b/include/wx/proplist.h deleted file mode 100644 index 87a674b2a1..0000000000 --- a/include/wx/proplist.h +++ /dev/null @@ -1,561 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: proplist.h -// Purpose: Property list classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - /* - - TO DO: - - (1) Optional popup-help for each item, and an optional Help button - for dialog. - - (2) Align Ok, Cancel, Help buttons properly. - - (3) Consider retrieving the rectangle on the panel that can be - drawn into (where the value listbox is) and giving an example - of editing graphically. May be too fancy. - - (4) Deriveable types for wxPropertyValue => may need to reorganise - wxPropertyValue to use inheritance rather than present all-types-in-one - scheme. - - (5) Optional popup panel for value list, perhaps. - - (6) Floating point checking routine still crashes with Floating - point error for zany input. - - (7) Property sheet with choice (or listbox) to select alternative - sheets... multiple views per panel, only one active. For this - we really need a wxChoice that can be dynamically set: XView - may be a problem; Motif? - - (8) More example validators, e.g. colour selector. - */ - -#ifndef _WX_PROPLIST_H_ -#define _WX_PROPLIST_H_ - -#ifdef __GNUG__ -#pragma interface "proplist.h" -#endif - -#include "wx/prop.h" - -#define wxPROP_BUTTON_CLOSE 1 -#define wxPROP_BUTTON_OK 2 -#define wxPROP_BUTTON_CANCEL 4 -#define wxPROP_BUTTON_CHECK_CROSS 8 -#define wxPROP_BUTTON_HELP 16 -#define wxPROP_DYNAMIC_VALUE_FIELD 32 -#define wxPROP_PULLDOWN 64 -#define wxPROP_SHOWVALUES 128 - -// Show OK/Cancel buttons on X-based systems where window management is -// more awkward -#if defined(__WXMOTIF__) || defined(__WXGTK__) -#define wxPROP_BUTTON_DEFAULT wxPROP_BUTTON_OK | wxPROP_BUTTON_CANCEL | wxPROP_BUTTON_CHECK_CROSS | wxPROP_PULLDOWN -#else -#define wxPROP_BUTTON_DEFAULT wxPROP_BUTTON_CHECK_CROSS | wxPROP_PULLDOWN | wxPROP_SHOWVALUES -#endif - -#define wxID_PROP_CROSS 3000 -#define wxID_PROP_CHECK 3001 -#define wxID_PROP_EDIT 3002 -#define wxID_PROP_TEXT 3003 -#define wxID_PROP_SELECT 3004 -#define wxID_PROP_VALUE_SELECT 3005 - -// Mediates between a physical panel and the property sheet -class WXDLLEXPORT wxPropertyListView: public wxPropertyView -{ - DECLARE_DYNAMIC_CLASS(wxPropertyListView) - public: - wxPropertyListView(wxPanel *propPanel = NULL, long flags = wxPROP_BUTTON_DEFAULT); - ~wxPropertyListView(void); - - // Associates and shows the view - virtual void ShowView(wxPropertySheet *propertySheet, wxPanel *panel); - - // Update this view of the viewed object, called e.g. by - // the object itself. - virtual bool OnUpdateView(void); - - wxString MakeNameValueString(wxString name, wxString value); - - // Update a single line in the list of properties - virtual bool UpdatePropertyDisplayInList(wxProperty *property); - - // Update the whole list - virtual bool UpdatePropertyList(bool clearEditArea = TRUE); - - // Find the wxListBox index corresponding to this property - virtual int FindListIndexForProperty(wxProperty *property); - - // Select and show string representation in editor the given - // property. NULL resets to show no property. - virtual bool ShowProperty(wxProperty *property, bool select = TRUE); - virtual bool EditProperty(wxProperty *property); - - // Update the display from the property - virtual bool DisplayProperty(wxProperty *property); - // Update the property from the display - virtual bool RetrieveProperty(wxProperty *property); - - // Find appropriate validator and load property into value controls - virtual bool BeginShowingProperty(wxProperty *property); - // Find appropriate validator and unload property from value controls - virtual bool EndShowingProperty(wxProperty *property); - - // Begin detailed editing (e.g. using value listbox) - virtual void BeginDetailedEditing(void); - - // End detailed editing (e.g. using value listbox) - virtual void EndDetailedEditing(void); - - // Called by the property listbox - void OnPropertySelect(wxCommandEvent& event); - - // Called by the value listbox - void OnValueListSelect(wxCommandEvent& event); - - virtual bool CreateControls(void); - virtual void ShowTextControl(bool show); - virtual void ShowListBoxControl(bool show); - virtual void EnableCheck(bool show); - virtual void EnableCross(bool show); - - void OnOk(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - void OnHelp(wxCommandEvent& event); - void OnPropertyDoubleClick(wxCommandEvent& event); -// virtual void OnDoubleClick(void); - - void OnCheck(wxCommandEvent& event); - void OnCross(wxCommandEvent& event); - void OnEdit(wxCommandEvent& event); - void OnText(wxCommandEvent& event); - - inline virtual wxListBox *GetPropertyScrollingList() const { return m_propertyScrollingList; } - inline virtual wxListBox *GetValueList() const { return m_valueList; } - inline virtual wxTextCtrl *GetValueText() const { return m_valueText; } - inline virtual wxButton *GetConfirmButton() const { return m_confirmButton; } - inline virtual wxButton *GetCancelButton() const { return m_cancelButton; } - inline virtual wxButton *GetEditButton() const { return m_editButton; } - inline virtual bool GetDetailedEditing(void) const { return m_detailedEditing; } - - inline virtual void AssociatePanel(wxPanel *win) { m_propertyWindow = win; } - inline virtual wxPanel *GetPanel(void) const { return m_propertyWindow; } - - inline virtual void SetManagedWindow(wxWindow *win) { m_managedWindow = win; } - inline virtual wxWindow *GetManagedWindow(void) const { return m_managedWindow; } - - inline virtual wxButton *GetWindowCloseButton() const { return m_windowCloseButton; } - inline virtual wxButton *GetWindowCancelButton() const { return m_windowCancelButton; } - inline virtual wxButton *GetHelpButton() const { return m_windowHelpButton; } - - bool OnClose(void); - -public: - static bool sm_dialogCancelled; - - protected: - wxListBox* m_propertyScrollingList; - wxListBox* m_valueList; // Should really be a combobox, but we don't have one. - wxTextCtrl* m_valueText; - wxButton* m_confirmButton; // A tick, as in VB - wxButton* m_cancelButton; // A cross, as in VB - wxButton* m_editButton; // Invokes the custom validator, if any - - bool m_detailedEditing; // E.g. using listbox for choices - - static wxBitmap* sm_tickBitmap; - static wxBitmap* sm_crossBitmap; - - wxPanel* m_propertyWindow; // Panel that the controls will appear on - wxWindow* m_managedWindow; // Frame or dialog - - wxButton* m_windowCloseButton; // Or OK - wxButton* m_windowCancelButton; - wxButton* m_windowHelpButton; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxPropertyTextEdit: public wxTextCtrl -{ - DECLARE_CLASS(wxPropertyTextEdit) - public: - wxPropertyTextEdit(wxPropertyListView *v, wxWindow *parent, const wxWindowID id, - const wxString& value, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "text"); - void OnSetFocus(void); - void OnKillFocus(void); - - wxPropertyListView* m_view; -}; - -#define wxPROP_ALLOW_TEXT_EDITING 1 - -/* - * The type of validator used for property lists (Visual Basic style) - */ - -class WXDLLEXPORT wxPropertyListValidator: public wxPropertyValidator -{ - DECLARE_DYNAMIC_CLASS(wxPropertyListValidator) - protected: - public: - wxPropertyListValidator(long flags = wxPROP_ALLOW_TEXT_EDITING): wxPropertyValidator(flags) { } - ~wxPropertyListValidator(void) {} - - // Called when the property is selected or deselected: typically displays the value - // in the edit control (having chosen a suitable control to display: (non)editable text or listbox) - virtual bool OnSelect(bool select, wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the property is double clicked. Extra functionality can be provided, such as - // cycling through possible values. - inline virtual bool OnDoubleClick( - wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) ) - { return TRUE; } - - // Called when the value listbox is selected. Default behaviour is to copy - // string to text control, and retrieve the value into the property. - virtual bool OnValueListSelect(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the property value is edited using standard text control - inline virtual bool OnPrepareControls( - wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) ) - { return TRUE; } - - virtual bool OnClearControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the property is edited in detail - inline virtual bool OnPrepareDetailControls( - wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) ) - { return TRUE; } - - // Called if focus lost, IF we're in a modeless property editing situation. - inline virtual bool OnClearDetailControls( - wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) ) - { return TRUE; } - - // Called when the edit (...) button is pressed. The default implementation - // calls view->BeginDetailedEditing; the filename validator (for example) overrides - // this function to show the file selector. - virtual void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - inline virtual bool OnCheckValue( - wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) ) - { return TRUE; } - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transferance from the property editing area to the property itself - virtual bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - virtual bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); -}; - -/* - * A default dialog box class to use. - */ - -class WXDLLEXPORT wxPropertyListDialog: public wxDialog -{ - DECLARE_CLASS(wxPropertyListDialog) - public: - wxPropertyListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"); - void OnCloseWindow(wxCloseEvent& event); - void OnDefaultAction(wxControl *item); - void OnCancel(wxCommandEvent& event); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - private: - wxPropertyListView* m_view; - -DECLARE_EVENT_TABLE() -}; - -/* - * A default panel class to use. - */ - -class WXDLLEXPORT wxPropertyListPanel: public wxPanel -{ - DECLARE_CLASS(wxPropertyListPanel) - public: - wxPropertyListPanel(wxPropertyListView *v, wxWindow *parent, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "panel"): - wxPanel(parent, -1, pos, size, style, name) - { - m_view = v; - } - ~wxPropertyListPanel(); - void OnDefaultAction(wxControl *item); - - inline void SetView(wxPropertyListView* v) { m_view = v; } - inline wxPropertyListView* GetView() const { return m_view; } - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - // Call Layout() - void OnSize(wxSizeEvent& event); - - private: - wxPropertyListView* m_view; - -DECLARE_EVENT_TABLE() -}; - -/* - * A default frame class to use. - */ - -class WXDLLEXPORT wxPropertyListFrame: public wxFrame -{ - DECLARE_CLASS(wxPropertyListFrame) - public: - wxPropertyListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"): - wxFrame(parent, -1, title, pos, size, style, name) - { - m_view = v; - m_propertyPanel = NULL; - } - void OnCloseWindow(wxCloseEvent& event); - - // Must call this to create panel and associate view - virtual bool Initialize(void); - virtual wxPropertyListPanel *OnCreatePanel(wxFrame *parent, wxPropertyListView *v); - inline virtual wxPropertyListPanel *GetPropertyPanel(void) const { return m_propertyPanel; } - - private: - wxPropertyListView* m_view; - wxPropertyListPanel* m_propertyPanel; - -DECLARE_EVENT_TABLE() -}; - -/* - * Some default validators - */ - -class WXDLLEXPORT wxRealListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxRealListValidator) - public: - // 0.0, 0.0 means no range - wxRealListValidator(float min = 0.0, float max = 0.0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags) - { - m_realMin = min; m_realMax = max; - } - ~wxRealListValidator(void) {} - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transfer from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - protected: - float m_realMin; - float m_realMax; -}; - -class WXDLLEXPORT wxIntegerListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxIntegerListValidator) - public: - // 0, 0 means no range - wxIntegerListValidator(long min = 0, long max = 0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags) - { - m_integerMin = min; m_integerMax = max; - } - ~wxIntegerListValidator(void) {} - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transfer from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - protected: - long m_integerMin; - long m_integerMax; -}; - -class WXDLLEXPORT wxBoolListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxBoolListValidator) - protected: - public: - wxBoolListValidator(long flags = 0):wxPropertyListValidator(flags) - { - } - ~wxBoolListValidator(void) {} - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transfer from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the property is double clicked. Extra functionality can be provided, - // cycling through possible values. - virtual bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); -}; - -class WXDLLEXPORT wxStringListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxStringListValidator) - public: - wxStringListValidator(wxStringList *list = NULL, long flags = 0); - - ~wxStringListValidator(void) - { - if (m_strings) - delete m_strings; - } - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transfer from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the property is double clicked. Extra functionality can be provided, - // cycling through possible values. - bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - protected: - wxStringList* m_strings; -}; - -class WXDLLEXPORT wxFilenameListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxFilenameListValidator) - public: - wxFilenameListValidator(wxString message = "Select a file", wxString wildcard = "*.*", long flags = 0); - - ~wxFilenameListValidator(void); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transferance from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the edit (...) button is pressed. - void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - protected: - wxString m_filenameWildCard; - wxString m_filenameMessage; - -}; - -class WXDLLEXPORT wxColourListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxColourListValidator) - protected: - public: - wxColourListValidator(long flags = 0); - - ~wxColourListValidator(void); - - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the edit (...) button is pressed. - void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); -}; - -class WXDLLEXPORT wxListOfStringsListValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxListOfStringsListValidator) - protected: - public: - wxListOfStringsListValidator(long flags = 0); - - ~wxListOfStringsListValidator(void) - { - } - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transfer from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the property is double clicked. - bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title = _T("String List Editor")); - - // Called when the edit (...) button is pressed. - void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); -}; - -#endif - // _WX_PROPLIST_H_ diff --git a/include/wx/protocol/.cvsignore b/include/wx/protocol/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/include/wx/protocol/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/include/wx/protocol/Makefile.am b/include/wx/protocol/Makefile.am deleted file mode 100644 index 6607bc630d..0000000000 --- a/include/wx/protocol/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/protocol subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -wx_protocol_includedir = ${includedir}/wx/protocol -wx_protocol_include_HEADERS = file.h ftp.h http.h protocol.h - diff --git a/include/wx/protocol/file.h b/include/wx/protocol/file.h deleted file mode 100644 index 773cdcc5b2..0000000000 --- a/include/wx/protocol/file.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: file.h -// Purpose: File protocol -// Author: Guilhem Lavaux -// Modified by: -// Created: 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef __WX_PROTO_FILE_H__ -#define __WX_PROTO_FILE_H__ - -#ifdef __GNUG__ -#pragma interface "sckfile.h" -#endif - -#include "wx/protocol/protocol.h" -#include "wx/url.h" - -class WXDLLEXPORT wxFileProto: public wxProtocol { - DECLARE_DYNAMIC_CLASS(wxFileProto) - DECLARE_PROTOCOL(wxFileProto) -protected: - wxProtocolError m_error; -public: - wxFileProto(); - ~wxFileProto(); - - wxProtocolError GetError() { return m_error; } - bool Abort() { return TRUE; } - wxInputStream *GetInputStream(const wxString& path); -}; - -#endif diff --git a/include/wx/protocol/ftp.h b/include/wx/protocol/ftp.h deleted file mode 100644 index 9f71992f2b..0000000000 --- a/include/wx/protocol/ftp.h +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ftp.h -// Purpose: FTP protocol -// Author: Vadim Zeitlin -// Modified by: -// Created: 07/07/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef __WX_FTP_H__ -#define __WX_FTP_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/object.h" -#include "wx/sckaddr.h" -#include "wx/protocol/protocol.h" -#include "wx/url.h" - -class WXDLLEXPORT wxFTP : public wxProtocol { - DECLARE_DYNAMIC_CLASS(wxFTP) - DECLARE_PROTOCOL(wxFTP) -public: - typedef enum { ASCII, BINARY } wxFTPmode; - - wxFTP(); - ~wxFTP(); - - bool Close(); - bool Connect(wxSockAddress& addr, bool wait = TRUE); - bool Connect(const wxString& host); - - void SetUser(const wxString& user) { m_user = user; } - void SetPassword(const wxString& passwd) { m_passwd = passwd; } - - // Low-level methods - bool SendCommand(const wxString& command, char exp_ret); - inline virtual wxProtocolError GetError() - { return m_lastError; } - const wxString& GetLastResult(); // Get the complete return - - // Filesystem commands - bool ChDir(const wxString& dir); - bool MkDir(const wxString& dir); - bool RmDir(const wxString& dir); - wxString Pwd(); - bool Rename(const wxString& src, const wxString& dst); - bool RmFile(const wxString& path); - - // Download methods - bool Abort(); - wxInputStream *GetInputStream(const wxString& path); - wxOutputStream *GetOutputStream(const wxString& path); - - // List method - wxList *GetList(const wxString& wildcard); - -protected: - wxString m_user, m_passwd; - wxString m_lastResult; - wxProtocolError m_lastError; - bool m_streaming; - - friend class wxInputFTPStream; - friend class wxOutputFTPStream; - - wxSocketClient *GetPort(); - bool GetResult(char exp); -}; - -#endif diff --git a/include/wx/protocol/http.h b/include/wx/protocol/http.h deleted file mode 100644 index 82c1365889..0000000000 --- a/include/wx/protocol/http.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: http.h -// Purpose: HTTP protocol -// Author: Guilhem Lavaux -// Modified by: -// Created: August 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_HTTP_H -#define _WX_HTTP_H - -#include "wx/list.h" -#include "wx/protocol/protocol.h" - -class WXDLLEXPORT wxHTTP : public wxProtocol { - DECLARE_DYNAMIC_CLASS(wxHTTP) - DECLARE_PROTOCOL(wxHTTP) -protected: - wxProtocolError m_perr; - wxList m_headers; - bool m_read; - wxSockAddress *m_addr; -public: - wxHTTP(); - ~wxHTTP(); - - bool Connect(const wxString& host); - bool Connect(wxSockAddress& addr, bool wait); - bool Abort(); - wxInputStream *GetInputStream(const wxString& path); - inline wxProtocolError GetError() { return m_perr; } - wxString GetContentType(); - - void SetHeader(const wxString& header, const wxString& h_data); - wxString GetHeader(const wxString& header); - -protected: - typedef enum { - wxHTTP_GET - } wxHTTP_Req; - bool BuildRequest(const wxString& path, wxHTTP_Req req); - void SendHeaders(); - bool ParseHeaders(); -}; - -#endif diff --git a/include/wx/protocol/protocol.h b/include/wx/protocol/protocol.h deleted file mode 100644 index f9d105406d..0000000000 --- a/include/wx/protocol/protocol.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: protocol.h -// Purpose: Protocol base class -// Author: Guilhem Lavaux -// Modified by: -// Created: 10/07/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_PROTOCOL_PROTOCOL_H -#define _WX_PROTOCOL_PROTOCOL_H - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stream.h" -#include "wx/socket.h" - -typedef enum { - wxPROTO_NOERR = 0, - wxPROTO_NETERR, - wxPROTO_PROTERR, - wxPROTO_CONNERR, - wxPROTO_INVVAL, - wxPROTO_NOHNDLR, - wxPROTO_NOFILE, - wxPROTO_ABRT, - wxPROTO_RCNCT, - wxPROTO_STREAMING -} wxProtocolError; - -// For protocols -#define DECLARE_PROTOCOL(class) \ -public: \ - static wxProtoInfo g_proto_##class; - -#define IMPLEMENT_PROTOCOL(class, name, serv, host) \ -wxProtoInfo class::g_proto_##class(name, serv, host, CLASSINFO(class)); - -class WXDLLEXPORT wxProtoInfo : public wxObject { - DECLARE_DYNAMIC_CLASS(wxProtoInfo) -protected: - wxProtoInfo *next; - wxString m_protoname; - wxString prefix; - wxString m_servname; - wxClassInfo *m_cinfo; - bool m_needhost; - - friend class wxURL; -public: - wxProtoInfo(const wxChar *name, const wxChar *serv_name, const bool need_host1, - wxClassInfo *info); -}; - -class WXDLLEXPORT wxProtocol : public wxSocketClient { - DECLARE_ABSTRACT_CLASS(wxProtocol) -public: - wxProtocol(); - - bool Reconnect(); - virtual bool Connect( const wxString& WXUNUSED(host) ) { return FALSE; } - virtual bool Connect( wxSockAddress& addr, bool WXUNUSED(wait) = TRUE) { return wxSocketClient::Connect(addr); } - - virtual bool Abort() = 0; - virtual wxInputStream *GetInputStream(const wxString& path) = 0; - virtual wxProtocolError GetError() = 0; - virtual wxString GetContentType() { return wxEmptyString; } - virtual void SetUser(const wxString& WXUNUSED(user)) {} - virtual void SetPassword(const wxString& WXUNUSED(passwd) ) {} -}; - -wxProtocolError WXDLLEXPORT GetLine(wxSocketBase *sock, wxString& result); - -#endif diff --git a/include/wx/qt/app.h b/include/wx/qt/app.h deleted file mode 100644 index cb50ba9c9e..0000000000 --- a/include/wx/qt/app.h +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#ifdef __GNUG__ -#pragma interface "app.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 - -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; - -void WXDLLEXPORT wxCleanUp(); -void WXDLLEXPORT wxCommonCleanUp(); // Call this from the platform's wxCleanUp() -void WXDLLEXPORT wxCommonInit(); // Call this from the platform's initialization - -// Force an exit from main loop -void WXDLLEXPORT wxExit(); - -// Yield to other apps/messages -bool WXDLLEXPORT wxYield(); - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLEXPORT wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - wxApp(); - inline ~wxApp() {} - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - virtual void OnIdle(wxIdleEvent& event); - -// Generic - virtual bool OnInit() { return FALSE; }; - - // No specific tasks to do here. - virtual bool OnInitGui() { return TRUE; } - - // Called to set off the main loop - virtual int OnRun() { return MainLoop(); }; - virtual int OnExit() { return 0; } - - inline void SetPrintMode(int mode) { m_printMode = mode; } - inline int GetPrintMode() const { return m_printMode; } - - inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - inline wxString GetAppName() const { - if (m_appName != "") - return m_appName; - else return m_className; - } - - inline void SetAppName(const wxString& name) { m_appName = name; }; - inline wxString GetClassName() const { return m_className; } - inline void SetClassName(const wxString& name) { m_className = name; } - - void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } - const wxString& GetVendorName() const { return m_vendorName; } - - wxWindow *GetTopWindow() const ; - inline void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; } - inline bool GetWantDebugOutput() { return m_wantDebugOutput; } - - // Send idle event to all top-level windows. - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(); - - // Send idle event to window and all subwindows - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(wxWindow* win); - - // Windows only, but for compatibility... - inline void SetAuto3D(bool flag) { m_auto3D = flag; } - inline bool GetAuto3D() const { return m_auto3D; } - - // Creates a log object - virtual wxLog* CreateLogTarget(); - -public: - // Will always be set to the appropriate, main-style values. - int argc; - char ** argv; - -protected: - bool m_wantDebugOutput ; - wxString m_className; - wxString m_appName, - m_vendorName; - wxWindow * m_topWindow; - bool m_exitOnFrameDelete; - bool m_showOnInit; - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except - // where overriden - static wxAppInitializerFunction m_appInitFn; - -public: - - // Implementation - static void CommonInit(); - static void CommonCleanUp(); - void DeletePendingObjects(); - bool ProcessIdle(); - -public: - static long sm_lastMessageTime; - int m_nCmdShow; - -protected: - bool m_keepGoing ; - -DECLARE_EVENT_TABLE() -}; - -// TODO: add platform-specific arguments -int WXDLLEXPORT wxEntry( int argc, char *argv[] ); - -#endif - // _WX_APP_H_ - diff --git a/include/wx/qt/bitmap.h b/include/wx/qt/bitmap.h deleted file mode 100644 index 195944f835..0000000000 --- a/include/wx/qt/bitmap.h +++ /dev/null @@ -1,198 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: wxBitmap class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#ifdef __GNUG__ -#pragma interface "bitmap.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" -#include "wx/palette.h" - -// Bitmap -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxBitmapHandler; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxCursor; - -// A mask is a mono bitmap used for drawing bitmaps -// transparently. -class WXDLLEXPORT wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(); - - // Construct a mask from a bitmap and a colour indicating - // the transparent area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating - // the transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - -/* TODO: platform-specific data access - // Implementation - inline WXHBITMAP GetMaskBitmap() const { return m_maskBitmap; } - inline void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; } -protected: - WXHBITMAP m_maskBitmap; -*/ -}; - -class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; - friend class WXDLLEXPORT wxCursor; -public: - wxBitmapRefData(); - ~wxBitmapRefData(); - -public: - int m_width; - int m_height; - int m_depth; - bool m_ok; - int m_numColors; - wxPalette m_bitmapPalette; - int m_quality; - -/* WXHBITMAP m_hBitmap; TODO: platform-specific handle */ - wxMask * m_bitmapMask; // Optional mask -}; - -#define M_BITMAPDATA ((wxBitmapRefData *)m_refData) - -class WXDLLEXPORT wxBitmapHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmapHandler) -public: - wxBitmapHandler() { m_name = ""; m_extension = ""; m_type = 0; }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); - - inline void SetName(const wxString& name) { m_name = name; } - inline void SetExtension(const wxString& ext) { m_extension = ext; } - inline void SetType(long type) { m_type = type; } - inline wxString GetName() const { return m_name; } - inline wxString GetExtension() const { return m_extension; } - inline long GetType() const { return m_type; } -protected: - wxString m_name; - wxString m_extension; - long m_type; -}; - -#define M_BITMAPHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData()) - -class WXDLLEXPORT wxBitmap: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - - friend class WXDLLEXPORT wxBitmapHandler; - -public: - wxBitmap(); // Platform-specific - - // Copy constructors - inline wxBitmap(const wxBitmap& bitmap) - { Ref(bitmap); if ( wxTheBitmapList ) wxTheBitmapList->AddBitmap(this); } - inline wxBitmap(const wxBitmap* bitmap) { if (bitmap) Ref(*bitmap); if ( wxTheBitmapList ) wxTheBitmapList->AddBitmap(this); } - - // Initialize with raw data. - wxBitmap(const char bits[], int width, int height, int depth = 1); - -/* TODO: maybe implement XPM reading - // Initialize with XPM data - wxBitmap(const char **data); -*/ - - // Load a file or resource - // TODO: make default type whatever's appropriate for the platform. - wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - - // Constructor for generalised creation from data - wxBitmap(void *data, long type, int width, int height, int depth = 1); - - // If depth is omitted, will create a bitmap compatible with the display - wxBitmap(int width, int height, int depth = -1); - ~wxBitmap(); - - virtual bool Create(int width, int height, int depth = -1); - virtual bool Create(void *data, long type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL); - - inline bool Ok() const { return (M_BITMAPDATA && M_BITMAPDATA->m_ok); } - inline int GetWidth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_width : 0); } - inline int GetHeight() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_height : 0); } - inline int GetDepth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_depth : 0); } - inline int GetQuality() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_quality : 0); } - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetQuality(int q); - void SetOk(bool isOk); - - inline wxPalette* GetPalette() const { return (M_BITMAPDATA ? (& M_BITMAPDATA->m_bitmapPalette) : NULL); } - void SetPalette(const wxPalette& palette); - - inline wxMask *GetMask() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_bitmapMask : NULL); } - void SetMask(wxMask *mask) ; - - inline wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; } - inline bool operator == (const wxBitmap& bitmap) { return m_refData == bitmap.m_refData; } - inline bool operator != (const wxBitmap& bitmap) { return m_refData != bitmap.m_refData; } - - // Format handling - static inline wxList& GetHandlers() { return sm_handlers; } - static void AddHandler(wxBitmapHandler *handler); - static void InsertHandler(wxBitmapHandler *handler); - static bool RemoveHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& extension, long bitmapType); - static wxBitmapHandler *FindHandler(long bitmapType); - - static void InitStandardHandlers(); - static void CleanUpHandlers(); -protected: - static wxList sm_handlers; - -/* - // TODO: Implementation -public: - void SetHBITMAP(WXHBITMAP bmp); - inline WXHBITMAP GetHBITMAP() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_hBitmap : 0); } - bool FreeResource(bool force = FALSE); -*/ - -}; -#endif - // _WX_BITMAP_H_ diff --git a/include/wx/qt/bmpbuttn.h b/include/wx/qt/bmpbuttn.h deleted file mode 100644 index defe39e438..0000000000 --- a/include/wx/qt/bmpbuttn.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTN_H_ -#define _WX_BMPBUTTN_H_ - -#ifdef __GNUG__ -#pragma interface "bmpbuttn.h" -#endif - -#include "wx/button.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -#define wxDEFAULT_BUTTON_MARGIN 4 - -class WXDLLEXPORT wxBitmapButton: public wxButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - public: - inline wxBitmapButton() { m_marginX = wxDEFAULT_BUTTON_MARGIN; m_marginY = wxDEFAULT_BUTTON_MARGIN; } - inline wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetLabel(const wxBitmap& bitmap) - { - SetBitmapLabel(bitmap); - } - - virtual void SetBitmapLabel(const wxBitmap& bitmap); - - inline wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_buttonBitmap; } - inline wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_buttonBitmapSelected; } - inline wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_buttonBitmapFocus; } - inline wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_buttonBitmapDisabled; } - - inline void SetBitmapSelected(const wxBitmap& sel) { m_buttonBitmapSelected = sel; }; - inline void SetBitmapFocus(const wxBitmap& focus) { m_buttonBitmapFocus = focus; }; - inline void SetBitmapDisabled(const wxBitmap& disabled) { m_buttonBitmapDisabled = disabled; }; - - inline void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } - inline int GetMarginX() { return m_marginX; } - inline int GetMarginY() { return m_marginY; } - -/* - // TODO: Implementation - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg ); -*/ - - protected: - wxBitmap m_buttonBitmap; - wxBitmap m_buttonBitmapSelected; - wxBitmap m_buttonBitmapFocus; - wxBitmap m_buttonBitmapDisabled; - int m_marginX; - int m_marginY; -}; - -#endif - // _WX_BMPBUTTN_H_ diff --git a/include/wx/qt/brush.h b/include/wx/qt/brush.h deleted file mode 100644 index 2475bd0b24..0000000000 --- a/include/wx/qt/brush.h +++ /dev/null @@ -1,86 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: wxBrush class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -#ifdef __GNUG__ -#pragma interface "brush.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -class WXDLLEXPORT wxBrush; - -class WXDLLEXPORT wxBrushRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBrush; -public: - wxBrushRefData(); - wxBrushRefData(const wxBrushRefData& data); - ~wxBrushRefData(); - -protected: - int m_style; - wxBitmap m_stipple ; - wxColour m_colour; - -/* TODO: implementation - WXHBRUSH m_hBrush; -*/ -}; - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -// Brush -class WXDLLEXPORT wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - -public: - wxBrush(); - wxBrush(const wxColour& col, int style); - wxBrush(const wxString& col, int style); - wxBrush(const wxBitmap& stipple); - inline wxBrush(const wxBrush& brush) { Ref(brush); } - inline wxBrush(const wxBrush* brush) { if (brush) Ref(*brush); } - ~wxBrush(); - - virtual void SetColour(const wxColour& col) ; - virtual void SetColour(const wxString& col) ; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - virtual void SetStyle(int style) ; - virtual void SetStipple(const wxBitmap& stipple) ; - - inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; } - inline bool operator == (const wxBrush& brush) { return m_refData == brush.m_refData; } - inline bool operator != (const wxBrush& brush) { return m_refData != brush.m_refData; } - - inline wxColour& GetColour() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); }; - inline int GetStyle() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); }; - inline wxBitmap *GetStipple() const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); }; - - virtual bool Ok() const { return (m_refData != NULL) ; } - -// Implementation - - // Useful helper: create the brush resource - void RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_BRUSH_H_ diff --git a/include/wx/qt/button.h b/include/wx/qt/button.h deleted file mode 100644 index 68b67d8c96..0000000000 --- a/include/wx/qt/button.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: wxButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUTTON_H_ -#define _WX_BUTTON_H_ - -#ifdef __GNUG__ -#pragma interface "button.h" -#endif - -#include "wx/control.h" -#include "wx/gdicmn.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -// Pushbutton -class WXDLLEXPORT wxButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxButton) - public: - inline wxButton() {} - inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetDefault(); - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - virtual void Command(wxCommandEvent& event); -}; - -#endif - // _WX_BUTTON_H_ diff --git a/include/wx/qt/checkbox.h b/include/wx/qt/checkbox.h deleted file mode 100644 index 8bf41d9958..0000000000 --- a/include/wx/qt/checkbox.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: wxCheckBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_ -#define _WX_CHECKBOX_H_ - -#ifdef __GNUG__ -#pragma interface "checkbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxCheckBoxNameStr; - -// Checkbox item (single checkbox) -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxCheckBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxCheckBox) - - public: - inline wxCheckBox() { } - inline wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxString& label); - virtual void Command(wxCommandEvent& event); -}; - -class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox -{ - DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox) - - public: - int checkWidth ; - int checkHeight ; - - inline wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; } - inline wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxBitmap *bitmap); -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/include/wx/qt/choice.h b/include/wx/qt/choice.h deleted file mode 100644 index 7f360ed5cc..0000000000 --- a/include/wx/qt/choice.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: wxChoice class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -#ifdef __GNUG__ -#pragma interface "choice.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxChoiceNameStr; - -// Choice item -class WXDLLEXPORT wxChoice: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - - public: - inline wxChoice() { m_noStrings = 0; } - - inline wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - - virtual inline int Number() const { return m_noStrings; } - virtual void Command(wxCommandEvent& event); - - virtual inline void SetColumns(int WXUNUSED(n) = 1 ) { /* No effect */ } ; - virtual inline int GetColumns() const { return 1 ; }; - -protected: - int m_noStrings; -}; - -#endif - // _WX_CHOICE_H_ diff --git a/include/wx/qt/colour.h b/include/wx/qt/colour.h deleted file mode 100644 index e8fca8e3b4..0000000000 --- a/include/wx/qt/colour.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_ -#define _WX_COLOUR_H_ - -#ifdef __GNUG__ -#pragma interface "colour.h" -#endif - -// Colour -class WXDLLEXPORT wxColour: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxColour) -public: - wxColour(); - wxColour(unsigned char r, unsigned char g, unsigned char b); - wxColour(unsigned long colRGB) { Set(colRGB); } - wxColour(const wxColour& col); - wxColour(const wxString& col); - ~wxColour() ; - wxColour& operator =(const wxColour& src) ; - wxColour& operator =(const wxString& src) ; - inline int Ok() const { return (m_isInit) ; } - - void Set(unsigned char r, unsigned char g, unsigned char b); - void Set(unsigned long colRGB) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((unsigned char)colRGB, - (unsigned char)(colRGB >> 8), - (unsigned char)(colRGB >> 16)); - } - - inline unsigned char Red() const { return m_red; } - inline unsigned char Green() const { return m_green; } - inline unsigned char Blue() const { return m_blue; } - - inline bool operator == (const wxColour& colour) { return (m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue); } - - inline bool operator != (const wxColour& colour) { return (!(m_red == colour.m_red && m_green == colour.m_green && m_blue == colour.m_blue)); } - - WXCOLORREF GetPixel() const { return m_pixel; }; - - private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - public: -/* TODO: implementation - WXCOLORREF m_pixel ; -*/ -}; - -#define wxColor wxColour - -#endif - // _WX_COLOUR_H_ diff --git a/include/wx/qt/combobox.h b/include/wx/qt/combobox.h deleted file mode 100644 index 86895e561c..0000000000 --- a/include/wx/qt/combobox.h +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/choice.h" - -WXDLLEXPORT_DATA(extern const char*) wxComboBoxNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Combobox item -class WXDLLEXPORT wxComboBox: public wxChoice -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - - public: - inline wxComboBox() {} - - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - // List functions: see wxChoice - - // Text field functions - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(int n) - { - wxChoice::SetSelection(n); - } - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); -}; - -#endif - // _WX_COMBOBOX_H_ diff --git a/include/wx/qt/control.h b/include/wx/qt/control.h deleted file mode 100644 index 5432b5c5e7..0000000000 --- a/include/wx/qt/control.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -#ifdef __GNUG__ -#pragma interface "control.h" -#endif - -#include "wx/window.h" -#include "wx/list.h" -#include "wx/validate.h" - -// General item class -class WXDLLEXPORT wxControl: public wxWindow -{ - DECLARE_ABSTRACT_CLASS(wxControl) -public: - wxControl(); - ~wxControl(); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) = 0; // Simulates an event - virtual void ProcessCommand(wxCommandEvent& event); // Calls the callback and - // appropriate event handlers - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - - // Places item in centre of panel - so can't be used BEFORE panel->Fit() - void Centre(int direction = wxHORIZONTAL); - inline void Callback(const wxFunction function) { m_callback = function; }; // Adds callback - - inline wxFunction GetCallback() { return m_callback; } - -protected: - wxFunction m_callback; // Callback associated with the window - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CONTROL_H_ diff --git a/include/wx/qt/cursor.h b/include/wx/qt/cursor.h deleted file mode 100644 index 9cf490cdc6..0000000000 --- a/include/wx/qt/cursor.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -#ifdef __GNUG__ -#pragma interface "cursor.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxCursorRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxCursor; -public: - wxCursorRefData(); - ~wxCursorRefData(); - -protected: -/* TODO: implementation - WXHCURSOR m_hCursor; -*/ -}; - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) -#define M_CURSORHANDLERDATA ((wxCursorRefData *)bitmap->m_refData) - -// Cursor -class WXDLLEXPORT wxCursor: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - -public: - wxCursor(); - - // Copy constructors - inline wxCursor(const wxCursor& cursor) { Ref(cursor); } - inline wxCursor(const wxCursor* cursor) { if (cursor) Ref(*cursor); } - - wxCursor(const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1, - const char maskBits[] = NULL); - - /* TODO: make default type suit platform */ - wxCursor(const wxString& name, long flags = wxBITMAP_TYPE_CUR_RESOURCE, - int hotSpotX = 0, int hotSpotY = 0); - - wxCursor(int cursor_type); - ~wxCursor(); - - virtual bool Ok() const { return (m_refData != NULL && M_CURSORDATA->m_hCursor) ; } - - inline wxCursor& operator = (const wxCursor& cursor) { if (*this == cursor) return (*this); Ref(cursor); return *this; } - inline bool operator == (const wxCursor& cursor) { return m_refData == cursor.m_refData; } - inline bool operator != (const wxCursor& cursor) { return m_refData != cursor.m_refData; } - -/* TODO: implementation - void SetHCURSOR(WXHCURSOR cursor); - inline WXHCURSOR GetHCURSOR() const { return (M_CURSORDATA ? M_CURSORDATA->m_hCursor : 0); } -*/ -}; - -extern WXDLLEXPORT void wxSetCursor(const wxCursor& cursor); - -#endif - // _WX_CURSOR_H_ diff --git a/include/wx/qt/dc.h b/include/wx/qt/dc.h deleted file mode 100644 index eb10154ab9..0000000000 --- a/include/wx/qt/dc.h +++ /dev/null @@ -1,375 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_ -#define _WX_DC_H_ - -#ifdef __GNUG__ -#pragma interface "dc.h" -#endif - -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/icon.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define MM_TEXT 0 -#define MM_ISOTROPIC 1 -#define MM_ANISOTROPIC 2 -#define MM_LOMETRIC 3 -#define MM_HIMETRIC 4 -#define MM_TWIPS 5 -#define MM_POINTS 6 -#define MM_METRIC 7 - -//----------------------------------------------------------------------------- -// global variables -//----------------------------------------------------------------------------- - -extern int wxPageNumber; - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDC: public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxDC) - - public: - - wxDC(void); - ~wxDC(void); - - void BeginDrawing(void) {}; - void EndDrawing(void) {}; - - virtual bool Ok(void) const { return m_ok; }; - - virtual void FloodFill( long x1, long y1, wxColour *col, int style=wxFLOOD_SURFACE ) = 0; - inline void FloodFill(const wxPoint& pt, const wxColour& col, int style=wxFLOOD_SURFACE) - { - FloodFill(pt.x, pt.y, col, style); - } - virtual bool GetPixel( long x1, long y1, wxColour *col ) const = 0; - inline bool GetPixel(const wxPoint& pt, wxColour *col) const - { - return GetPixel(pt.x, pt.y, col); - } - - virtual void DrawLine( long x1, long y1, long x2, long y2 ) = 0; - inline void DrawLine(const wxPoint& pt1, const wxPoint& pt2) - { - DrawLine(pt1.x, pt1.y, pt2.x, pt2.y); - } - - virtual void CrossHair( long x, long y ) = 0; - inline void CrossHair(const wxPoint& pt) - { - CrossHair(pt.x, pt.y); - } - - virtual void DrawArc( long x1, long y1, long x2, long y2, double xc, double yc ) = 0; - inline void DrawArc(const wxPoint& pt1, const wxPoint& pt2, double xc, double yc) - { - DrawArc(pt1.x, pt1.y, pt2.x, pt2.y, xc, yc); - } - - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) = 0; - virtual void DrawEllipticArc (const wxPoint& pt, const wxSize& sz, double sa, double ea) - { - DrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); - } - - virtual void DrawPoint( long x, long y ) = 0; - virtual void DrawPoint( wxPoint& point ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ) = 0; - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ) = 0; - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ) = 0; - inline void DrawRectangle(const wxPoint& pt, const wxSize& sz) - { - DrawRectangle(pt.x, pt.y, sz.x, sz.y); - } - inline void DrawRectangle(const wxRect& rect) - { - DrawRectangle(rect.x, rect.y, rect.width, rect.height); - } - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ) = 0; - inline void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, double radius = 20.0) - { - DrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius); - } - inline void DrawRoundedRectangle(const wxRect& rect, double radius = 20.0) - { - DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, radius); - } - - virtual void DrawEllipse( long x, long y, long width, long height ) = 0; - inline void DrawEllipse(const wxPoint& pt, const wxSize& sz) - { - DrawEllipse(pt.x, pt.y, sz.x, sz.y); - } - inline void DrawEllipse(const wxRect& rect) - { - DrawEllipse(rect.x, rect.y, rect.width, rect.height); - } - - virtual void DrawIcon(const wxIcon& icon, long x, long y) = 0; - - virtual void DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ); - virtual void DrawSpline( wxList *points ); - virtual void DrawSpline( int n, wxPoint points[] ); - - virtual bool CanDrawBitmap(void) const = 0; - - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - inline void DrawIcon(const wxIcon& icon, const wxPoint& pt) - { - DrawIcon(icon, pt.x, pt.y); - } - - // TODO DrawBitmap is not always the same as DrawIcon, especially if bitmaps and - // icons are implemented differently. - void DrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask=FALSE ) - { DrawIcon( *((wxIcon*)(&bmp)), x, y, useMask ); } - - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ) = 0; - inline bool Blit(const wxPoint& destPt, const wxSize& sz, - wxDC *source, const wxPoint& srcPt, int rop = wxCOPY, bool useMask = FALSE) - { - return Blit(destPt.x, destPt.y, sz.x, sz.y, source, srcPt.x, srcPt.y, rop, useMask); - } - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ) = 0; - inline void DrawText(const wxString& text, const wxPoint& pt, bool use16bit = FALSE) - { - DrawText(text, pt.x, pt.y, use16bit); - } - - virtual bool CanGetTextExtent(void) const = 0; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16 = FALSE ) = 0; - virtual long GetCharWidth(void) = 0; - virtual long GetCharHeight(void) = 0; - - virtual void Clear(void) = 0; - - virtual void SetFont( const wxFont &font ) = 0; - virtual wxFont *GetFont(void) const { return &m_font; }; - - virtual void SetPen( const wxPen &pen ) = 0; - virtual wxPen *GetPen(void) const { return &m_pen; }; - - virtual void SetBrush( const wxBrush &brush ) = 0; - virtual wxBrush *GetBrush(void) const { return &m_brush; }; - - virtual void SetBackground( const wxBrush &brush ) = 0; - virtual wxBrush *GetBackground(void) const { return &m_backgroundBrush; }; - - virtual void SetLogicalFunction( int function ) = 0; - virtual int GetLogicalFunction(void) const { return m_logicalFunction; }; - - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual wxColour& GetTextBackground(void) const { return (wxColour&)m_textBackgroundColour; }; - virtual wxColour& GetTextForeground(void) const { return (wxColour&)m_textForegroundColour; }; - - virtual void SetBackgroundMode( int mode ) = 0; - virtual int GetBackgroundMode(void) const { return m_backgroundMode; }; - - virtual void SetPalette( const wxPalette& palette ) = 0; - void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }; - - // the first two must be overridden and called - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(void); - virtual void GetClippingBox( long *x, long *y, long *width, long *height ) const; - - virtual inline long MinX(void) const { return m_minX; } - virtual inline long MaxX(void) const { return m_maxX; } - virtual inline long MinY(void) const { return m_minY; } - virtual inline long MaxY(void) const { return m_maxY; } - - virtual void GetSize( int* width, int* height ) const; - inline wxSize GetSize(void) const { int w, h; GetSize(&w, &h); return wxSize(w, h); } - virtual void GetSizeMM( long* width, long* height ) const; - - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; }; - virtual void EndDoc(void) {}; - virtual void StartPage(void) {}; - virtual void EndPage(void) {}; - - virtual void SetMapMode( int mode ); - virtual int GetMapMode(void) const { return m_mappingMode; }; - - virtual void SetUserScale( double x, double y ); - virtual void GetUserScale( double *x, double *y ); - virtual void SetLogicalScale( double x, double y ); - virtual void GetLogicalScale( double *x, double *y ); - - virtual void SetLogicalOrigin( long x, long y ); - virtual void GetLogicalOrigin( long *x, long *y ); - virtual void SetDeviceOrigin( long x, long y ); - virtual void GetDeviceOrigin( long *x, long *y ); - virtual void SetInternalDeviceOrigin( long x, long y ); - virtual void GetInternalDeviceOrigin( long *x, long *y ); - - virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - - virtual void SetOptimization( bool WXUNUSED(optimize) ) {}; - virtual bool GetOptimization(void) { return m_optimize; }; - - virtual long DeviceToLogicalX(long x) const; - virtual long DeviceToLogicalY(long y) const; - virtual long DeviceToLogicalXRel(long x) const; - virtual long DeviceToLogicalYRel(long y) const; - virtual long LogicalToDeviceX(long x) const; - virtual long LogicalToDeviceY(long y) const; - virtual long LogicalToDeviceXRel(long x) const; - virtual long LogicalToDeviceYRel(long y) const; - - public: - - void CalcBoundingBox( long x, long y ); - void ComputeScaleAndOrigin(void); - - long XDEV2LOG(long x) const - { - long new_x = x - m_deviceOriginX; - if (new_x > 0) - return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; - } - long XDEV2LOGREL(long x) const - { - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); - } - long YDEV2LOG(long y) const - { - long new_y = y - m_deviceOriginY; - if (new_y > 0) - return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; - } - long YDEV2LOGREL(long y) const - { - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); - } - long XLOG2DEV(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX; - } - long XLOG2DEVREL(long x) const - { - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); - } - long YLOG2DEV(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY; - } - long YLOG2DEVREL(long y) const - { - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); - } - - virtual void DrawOpenSpline( wxList *points ) = 0; - - public: - - bool m_ok; - bool m_colour; - - // not sure, what these mean - bool m_clipping; // Is clipping on right now ? - bool m_isInteractive; // Is GetPixel possible ? - bool m_autoSetting; // wxMSW only ? - bool m_dontDelete; // wxMSW only ? - bool m_optimize; // wxMSW only ? - wxString m_filename; // Not sure where this belongs. - - wxPen m_pen; - wxBrush m_brush; - wxBrush m_backgroundBrush; - wxColour m_textForegroundColour; - wxColour m_textBackgroundColour; - wxFont m_font; - - int m_logicalFunction; - int m_backgroundMode; - int m_textAlignment; // gone in wxWin 2.0 ? - - int m_mappingMode; - - // not sure what for, but what is a mm on a screen you don't know the size of? - double m_mm_to_pix_x,m_mm_to_pix_y; - - long m_internalDeviceOriginX,m_internalDeviceOriginY; // If un-scrolled is non-zero or - // d.o. changes with scrolling. - // Set using SetInternalDeviceOrigin(). - - long m_externalDeviceOriginX,m_externalDeviceOriginY; // To be set by external classes - // such as wxScrolledWindow - // using SetDeviceOrigin() - - long m_deviceOriginX,m_deviceOriginY; // Sum of the two above. - - long m_logicalOriginX,m_logicalOriginY; // User defined. - - double m_scaleX,m_scaleY; - double m_logicalScaleX,m_logicalScaleY; - double m_userScaleX,m_userScaleY; - long m_signX,m_signY; - - bool m_needComputeScaleX,m_needComputeScaleY; // not yet used - - float m_scaleFactor; // wxPSDC wants to have this. Will disappear. - - long m_clipX1,m_clipY1,m_clipX2,m_clipY2; - long m_minX,m_maxX,m_minY,m_maxY; -}; - -#endif - // _WX_DC_H_ diff --git a/include/wx/qt/dcclient.h b/include/wx/qt/dcclient.h deleted file mode 100644 index 828a507d75..0000000000 --- a/include/wx/qt/dcclient.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -#ifdef __GNUG__ -#pragma interface "dcclient.h" -#endif - -#include "wx/dc.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC; - -// Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented differently. -// On many platforms, however, they will be the same. - -typedef wxPaintDC wxClientDC; -typedef wxPaintDC wxWindowDC; - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - - public: - - wxPaintDC(void); - wxPaintDC( wxWindow *win ); - - ~wxPaintDC(void); - - virtual void FloodFill( long x1, long y1, wxColour *col, int style=wxFLOOD_SURFACE ); - virtual bool GetPixel( long x1, long y1, wxColour *col ) const; - - virtual void DrawLine( long x1, long y1, long x2, long y2 ); - virtual void CrossHair( long x, long y ); - virtual void DrawArc( long x1, long y1, long x2, long y2, double xc, double yc ); - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ); - virtual void DrawPoint( long x, long y ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ); - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ); - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); - virtual void DrawEllipse( long x, long y, long width, long height ); - - virtual bool CanDrawBitmap(void) const; - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ); - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ); - virtual bool CanGetTextExtent(void) const; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16 = FALSE ); - virtual long GetCharWidth(void); - virtual long GetCharHeight(void); - - virtual void Clear(void); - - virtual void SetFont( const wxFont &font ); - virtual void SetPen( const wxPen &pen ); - virtual void SetBrush( const wxBrush &brush ); - virtual void SetBackground( const wxBrush &brush ); - virtual void SetLogicalFunction( int function ); - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual void SetBackgroundMode( int mode ); - virtual void SetPalette( const wxPalette& palette ); - - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(void); - - virtual void DrawOpenSpline( wxList *points ); -}; - -#endif - // _WX_DCCLIENT_H_ diff --git a/include/wx/qt/dcmemory.h b/include/wx/qt/dcmemory.h deleted file mode 100644 index c6c5737642..0000000000 --- a/include/wx/qt/dcmemory.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#ifdef __GNUG__ -#pragma interface "dcmemory.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxMemoryDC: public wxPaintDC -{ - DECLARE_DYNAMIC_CLASS(wxMemoryDC) - - public: - wxMemoryDC(void); - wxMemoryDC( wxDC *dc ); // Create compatible DC - ~wxMemoryDC(void); - virtual void SelectObject( const wxBitmap& bitmap ); - void GetSize( int *width, int *height ) const; - - private: - friend wxPaintDC; - wxBitmap m_selected; -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/include/wx/qt/dcscreen.h b/include/wx/qt/dcscreen.h deleted file mode 100644 index 27961a1caa..0000000000 --- a/include/wx/qt/dcscreen.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_ -#define _WX_DCSCREEN_H_ - -#ifdef __GNUG__ -#pragma interface "dcscreen.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxScreenDC: public wxPaintDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - - public: - // Create a DC representing the whole screen - wxScreenDC(); - ~wxScreenDC(); - - // Compatibility with X's requirements for - // drawing on top of all windows - static bool StartDrawingOnTop(wxWindow* WXUNUSED(window)) { return TRUE; } - static bool StartDrawingOnTop(wxRect* WXUNUSED(rect) = NULL) { return TRUE; } - static bool EndDrawingOnTop() { return TRUE; } -}; - -#endif - // _WX_DCSCREEN_H_ - diff --git a/include/wx/qt/dialog.h b/include/wx/qt/dialog.h deleted file mode 100644 index d68cc7c9a0..0000000000 --- a/include/wx/qt/dialog.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#ifdef __GNUG__ -#pragma interface "dialog.h" -#endif - -#include "wx/panel.h" - -WXDLLEXPORT_DATA(extern const char*) wxDialogNameStr; - -// Dialog boxes -class WXDLLEXPORT wxDialog: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxDialog) -public: - - wxDialog(); - - // Constructor with a modal flag, but no window id - the old convention - inline wxDialog(wxWindow *parent, - const wxString& title, bool modal, - int x = -1, int y= -1, int width = 500, int height = 500, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - long modalStyle = modal ? wxDIALOG_MODAL : wxDIALOG_MODELESS ; - Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), style|modalStyle, name); - } - - // Constructor with no modal flag - the new convention. - inline wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, // bool modal = FALSE, // TODO make this a window style? - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - ~wxDialog(); - - virtual bool Destroy(); - void SetClientSize(int width, int height); - void GetPosition(int *x, int *y) const; - bool Show(bool show); - void Iconize(bool iconize); - - virtual bool IsIconized() const; - void Fit(); - - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void OnCharHook(wxKeyEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - void SetModal(bool flag); - - virtual void Centre(int direction = wxBOTH); - virtual bool IsModal() const { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - virtual int ShowModal(); - virtual void EndModal(int retCode); - - // Standard buttons - void OnOK(wxCommandEvent& event); - void OnApply(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_DIALOG_H_ diff --git a/include/wx/qt/dirdlg.h b/include/wx/qt/dirdlg.h deleted file mode 100644 index fe36bb7fec..0000000000 --- a/include/wx/qt/dirdlg.h +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.h -// Purpose: wxDirDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -#ifdef __GNUG__ -#pragma interface "dirdlg.h" -#endif - -#include "wx/dialog.h" - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxDirDialog) -public: - wxDirDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = "", - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetStyle(long style) { m_dialogStyle = style; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline long GetStyle() const { return m_dialogStyle; } - - int ShowModal(); - -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_path; -}; - -#endif - // _WX_DIRDLG_H_ diff --git a/include/wx/qt/dnd.h b/include/wx/qt/dnd.h deleted file mode 100644 index 217561903a..0000000000 --- a/include/wx/qt/dnd.h +++ /dev/null @@ -1,239 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.h -// Purpose: declaration of the wxDropTarget class -// Author: Robert Roebling -// RCS-ID: -// Copyright: (c) 1998 Vadim Zeitlin, Robert Roebling -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - - -#ifndef __GTKDNDH__ -#define __GTKDNDH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/cursor.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class wxWindow; - -class wxDataObject; -class wxTextDataObject; -class wxFileDataObject; - -class wxDropTarget; -class wxTextDropTarget; -class wxFileDropTarget; - -class wxDropSource; - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -class wxDataObject: public wxObject -{ -public: - // all data formats (values are the same as in windows.h, do not change!) - enum StdFormat - { - Invalid, - Text, - Bitmap, - MetafilePict, - Sylk, - Dif, - Tiff, - OemText, - Dib, - Palette, - Pendata, - Riff, - Wave, - UnicodeText, - EnhMetafile, - Hdrop, - Locale, - Max - }; - - // function to return symbolic name of clipboard format (debug messages) - static const char *GetFormatName(wxDataFormat format); - - // ctor & dtor - wxDataObject() {}; - ~wxDataObject() {}; - - // pure virtuals to override - // get the best suited format for our data - virtual wxDataFormat GetPreferredFormat() const = 0; - // decide if we support this format (should be one of values of - // StdFormat enumerations or a user-defined format) - virtual bool IsSupportedFormat(wxDataFormat format) const = 0; - // get the (total) size of data - virtual size_t GetDataSize() const = 0; - // copy raw data to provided pointer - virtual void GetDataHere(void *pBuf) const = 0; - -}; - -// ---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -// ---------------------------------------------------------------------------- - -class wxTextDataObject : public wxDataObject -{ -public: - // ctors - wxTextDataObject() { } - wxTextDataObject(const wxString& strText) : m_strText(strText) { } - void Init(const wxString& strText) { m_strText = strText; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_TEXT; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_TEXT; } - virtual size_t GetDataSize() const - { return m_strText.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_strText.c_str(), GetDataSize()); } - -private: - wxString m_strText; - -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -// ---------------------------------------------------------------------------- - -class wxFileDataObject : public wxDataObject -{ -public: - - wxFileDataObject(void) { } - void AddFile( const wxString &file ) - { m_files += file; m_files += ";"; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_FILENAME; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_FILENAME; } - virtual size_t GetDataSize() const - { return m_files.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_files.c_str(), GetDataSize()); } - -private: - wxString m_files; - -}; -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class wxDropTarget: public wxObject -{ - public: - - wxDropTarget(); - ~wxDropTarget(); - - virtual void OnEnter() { } - virtual void OnLeave() { } - virtual bool OnDrop( long x, long y, const void *pData ) = 0; - -// protected: - - friend wxWindow; - - // Override these to indicate what kind of data you support: - - virtual size_t GetFormatCount() const = 0; - virtual wxDataFormat GetFormat(size_t n) const = 0; -}; - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -class wxTextDropTarget: public wxDropTarget -{ - public: - - wxTextDropTarget() {}; - virtual bool OnDrop( long x, long y, const void *pData ); - virtual bool OnDropText( long x, long y, const char *psz ); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -// ---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -// ---------------------------------------------------------------------------- - -class wxFileDropTarget: public wxDropTarget -{ - public: - - wxFileDropTarget() {}; - - virtual bool OnDrop(long x, long y, const void *pData); - virtual bool OnDropFiles( long x, long y, - size_t nFiles, const char * const aszFiles[]); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -class wxDropSource: public wxObject -{ - public: - - enum DragResult - { - Error, // error prevented the d&d operation from completing - None, // drag target didn't accept the data - Copy, // the data was successfully copied - Move, // the data was successfully moved - Cancel // the operation was cancelled by user (not an error) - }; - - wxDropSource( wxWindow *win ); - wxDropSource( wxDataObject &data, wxWindow *win ); - - ~wxDropSource(void); - - void SetData( wxDataObject &data ); - DragResult DoDragDrop( bool bAllowMove = FALSE ); - - virtual bool GiveFeedback( DragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; }; - - protected: - - wxDataObject *m_data; -}; - -#endif - //__GTKDNDH__ - diff --git a/include/wx/qt/filedlg.h b/include/wx/qt/filedlg.h deleted file mode 100644 index 1abeed4d68..0000000000 --- a/include/wx/qt/filedlg.h +++ /dev/null @@ -1,71 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: wxFileDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -#ifdef __GNUG__ -#pragma interface "filedlg.h" -#endif - -#include "wx/dialog.h" - -/* - * File selector - */ - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorDefaultWildcardStr; - -class WXDLLEXPORT wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; -public: - wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", const wxString& defaultFile = "", const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetDirectory(const wxString& dir) { m_dir = dir; } - inline void SetFilename(const wxString& name) { m_fileName = name; } - inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - inline void SetStyle(long style) { m_dialogStyle = style; } - inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline wxString GetDirectory() const { return m_dir; } - inline wxString GetFilename() const { return m_fileName; } - inline wxString GetWildcard() const { return m_wildCard; } - inline long GetStyle() const { return m_dialogStyle; } - inline int GetFilterIndex() const { return m_filterIndex ; } - - int ShowModal(); -}; - -#define wxOPEN 0x0001 -#define wxSAVE 0x0002 -#define wxOVERWRITE_PROMPT 0x0004 -#define wxHIDE_READONLY 0x0008 -#define wxFILE_MUST_EXIST 0x0010 - -#endif - // _WX_FILEDLG_H_ diff --git a/include/wx/qt/font.h b/include/wx/qt/font.h deleted file mode 100644 index 2079f2d0f0..0000000000 --- a/include/wx/qt/font.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -#ifdef __GNUG__ -#pragma interface "font.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxFont; - -class WXDLLEXPORT wxFontRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxFont; -public: - wxFontRefData(); - ~wxFontRefData(); -protected: - int m_pointSize; - int m_family; - int m_style; - int m_weight; - bool m_underlined; - wxString m_faceName; -/* TODO: implementation - WXHFONT m_hFont; -*/ -}; - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Font -class WXDLLEXPORT wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) -public: - wxFont(); - wxFont(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - inline wxFont(const wxFont& font) { Ref(font); } - inline wxFont(const wxFont* font) { if (font) Ref(*font); } - - ~wxFont(); - - bool Create(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline int GetPointSize() const { return M_FONTDATA->m_pointSize; } - inline int GetFamily() const { return M_FONTDATA->m_family; } - inline int GetStyle() const { return M_FONTDATA->m_style; } - inline int GetWeight() const { return M_FONTDATA->m_weight; } - wxString GetFamilyString() const ; - wxString GetFaceName() const ; - wxString GetStyleString() const ; - wxString GetWeightString() const ; - inline bool GetUnderlined() const { return M_FONTDATA->m_underlined; } - - void SetPointSize(int pointSize); - void SetFamily(int family); - void SetStyle(int style); - void SetWeight(int weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - - inline wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; } - inline bool operator == (const wxFont& font) { return m_refData == font.m_refData; } - inline bool operator != (const wxFont& font) { return m_refData != font.m_refData; } - - // Implementation -protected: - void Unshare(); -}; - -#endif - // _WX_FONT_H_ diff --git a/include/wx/qt/frame.h b/include/wx/qt/frame.h deleted file mode 100644 index 2e76caab02..0000000000 --- a/include/wx/qt/frame.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: wxFrame class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#ifdef __GNUG__ -#pragma interface "frame.h" -#endif - -#include "wx/window.h" -#include "wx/toolbar.h" -#include "wx/accel.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxStatusBar; - -class WXDLLEXPORT wxFrame: public wxWindow { - - DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame(); - inline wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual bool Destroy(); - void SetClientSize(int width, int height); - void GetClientSize(int *width, int *height) const; - - void GetSize(int *width, int *height) const ; - void GetPosition(int *x, int *y) const ; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - void OnSize(wxSizeEvent& event); - void OnMenuHighlight(wxMenuEvent& event); - void OnActivate(wxActivateEvent& event); - void OnIdle(wxIdleEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - bool Show(bool show); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - virtual wxMenuBar *GetMenuBar() const ; - - // Set title - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void Centre(int direction = wxBOTH); - - // Call this to simulate a menu command - virtual void Command(int id); - virtual void ProcessCommand(int id); - - // Set icon - virtual void SetIcon(const wxIcon& icon); - - // Create status line - virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0, - const wxString& name = "statusBar"); - inline wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } - virtual void PositionStatusBar(); - virtual wxStatusBar *OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name); - - // Create toolbar - virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, const wxString& name = wxToolBarNameStr); - virtual wxToolBar *OnCreateToolBar(long style, wxWindowID id, const wxString& name); - // If made known to the frame, the frame will manage it automatically. - virtual inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } - virtual inline wxToolBar *GetToolBar() const { return m_frameToolBar; } - virtual void PositionToolBar(); - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // Hint to tell framework which status bar to use - // TODO: should this go into a wxFrameworkSettings class perhaps? - static void UseNativeStatusBar(bool useNative) { m_useNativeStatusBar = useNative; }; - static bool UsesNativeStatusBar() { return m_useNativeStatusBar; }; - - // Fit frame around subwindows - virtual void Fit(); - - // Iconize - virtual void Iconize(bool iconize); - - virtual bool IsIconized() const ; - - // Compatibility - inline bool Iconized() const { return IsIconized(); } - - virtual void Maximize(bool maximize); - - virtual void SetAcceleratorTable(const wxAcceleratorTable& accel); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Query app for menu item updates (called from OnIdle) - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu); - - // Checks if there is a toolbar, and returns the first free client position - virtual wxPoint GetClientAreaOrigin() const; - -protected: - wxMenuBar * m_frameMenuBar; - wxStatusBar * m_frameStatusBar; - wxIcon m_icon; - bool m_iconized; - static bool m_useNativeStatusBar; - wxToolBar * m_frameToolBar ; - wxAcceleratorTable m_acceleratorTable; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_FRAME_H_ diff --git a/include/wx/qt/gauge.h b/include/wx/qt/gauge.h deleted file mode 100644 index ce19d9ef1f..0000000000 --- a/include/wx/qt/gauge.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_ -#define _WX_GAUGE_H_ - -#ifdef __GNUG__ -#pragma interface "gauge.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxGaugeNameStr; - -// Group box -class WXDLLEXPORT wxGauge: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge) - public: - inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; } - - inline wxGauge(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - void SetShadowWidth(int w); - void SetBezelFace(int w); - void SetRange(int r); - void SetValue(int pos); - - int GetShadowWidth() const ; - int GetBezelFace() const ; - int GetRange() const ; - int GetValue() const ; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ; - - protected: - int m_rangeMax; - int m_gaugePos; -}; - -#endif - // _WX_GAUGE_H_ diff --git a/include/wx/qt/gdiobj.h b/include/wx/qt/gdiobj.h deleted file mode 100644 index 9263d4d6ad..0000000000 --- a/include/wx/qt/gdiobj.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: wxGDIObject class: base class for other GDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDIOBJ_H_ -#define _WX_GDIOBJ_H_ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface "gdiobj.h" -#endif - -class WXDLLEXPORT wxGDIRefData: public wxObjectRefData { -public: - inline wxGDIRefData() - { - } -}; - -#define M_GDIDATA ((wxGDIRefData *)m_refData) - -class WXDLLEXPORT wxGDIObject: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - public: - inline wxGDIObject() { m_visible = FALSE; }; - inline ~wxGDIObject() {}; - - inline bool IsNull() const { return (m_refData == 0); } - - virtual bool GetVisible() { return m_visible; } - virtual void SetVisible(bool v) { m_visible = v; } - -protected: - bool m_visible; // Can a pointer to this object be safely taken? - // - only if created within FindOrCreate... -}; - -#endif - // _WX_GDIOBJ_H_ diff --git a/include/wx/qt/icon.h b/include/wx/qt/icon.h deleted file mode 100644 index f68c23154b..0000000000 --- a/include/wx/qt/icon.h +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -#ifdef __GNUG__ -#pragma interface "icon.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxIconRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; -public: - wxIconRefData(); - ~wxIconRefData(); - -public: -/* TODO: whatever your actual icon handle is - WXHICON m_hIcon; -*/ -}; - -#define M_ICONDATA ((wxIconRefData *)m_refData) -#define M_ICONHANDLERDATA ((wxIconRefData *)bitmap->GetRefData()) - -// Icon -class WXDLLEXPORT wxIcon: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - wxIcon(); - - // Copy constructors - inline wxIcon(const wxIcon& icon) { Ref(icon); } - inline wxIcon(const wxIcon* icon) { if (icon) Ref(*icon); } - - wxIcon(const char bits[], int width, int height); - wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - ~wxIcon(); - - bool LoadFile(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - - inline wxIcon& operator = (const wxIcon& icon) { if (*this == icon) return (*this); Ref(icon); return *this; } - inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; } - inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; } - -/* TODO: implementation - void SetHICON(WXHICON ico); - inline WXHICON GetHICON() const { return (M_ICONDATA ? M_ICONDATA->m_hIcon : 0); } -*/ - -/* TODO */ - virtual bool Ok() const { return (m_refData != NULL) ; } -}; - -/* Example handlers. TODO: write your own handlers for relevant types. - -class WXDLLEXPORT wxICOFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxICOFileHandler) -public: - inline wxICOFileHandler() - { - m_name = "ICO icon file"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); -}; - -class WXDLLEXPORT wxICOResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxICOResourceHandler) -public: - inline wxICOResourceHandler() - { - m_name = "ICO resource"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); - -}; - -*/ - -#endif - // _WX_ICON_H_ diff --git a/include/wx/qt/joystick.h b/include/wx/qt/joystick.h deleted file mode 100644 index 30324fc035..0000000000 --- a/include/wx/qt/joystick.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" - -class WXDLLEXPORT wxJoystick: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; }; - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition() const; - int GetZPosition() const; - int GetButtonState() const; - int GetPOVPosition() const; - int GetPOVCTSPosition() const; - int GetRudderPosition() const; - int GetUPosition() const; - int GetVPosition() const; - int GetMovementThreshold() const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk() const; // Checks that the joystick is functioning - int GetNumberJoysticks() const ; - int GetManufacturerId() const ; - int GetProductId() const ; - wxString GetProductName() const ; - int GetXMin() const; - int GetYMin() const; - int GetZMin() const; - int GetXMax() const; - int GetYMax() const; - int GetZMax() const; - int GetNumberButtons() const; - int GetNumberAxes() const; - int GetMaxButtons() const; - int GetMaxAxes() const; - int GetPollingMin() const; - int GetPollingMax() const; - int GetRudderMin() const; - int GetRudderMax() const; - int GetUMin() const; - int GetUMax() const; - int GetVMin() const; - int GetVMax() const; - - bool HasRudder() const; - bool HasZ() const; - bool HasU() const; - bool HasV() const; - bool HasPOV() const; - bool HasPOV4Dir() const; - bool HasPOVCTS() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/include/wx/qt/listbox.h b/include/wx/qt/listbox.h deleted file mode 100644 index d95db4379b..0000000000 --- a/include/wx/qt/listbox.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_ -#define _WX_LISTBOX_H_ - -#ifdef __GNUG__ -#pragma interface "listbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxListBoxNameStr; - -// forward decl for GetSelections() -class WXDLLEXPORT wxArrayInt; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// List box item -class WXDLLEXPORT wxListBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListBox) - public: - - wxListBox(); - inline wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - ~wxListBox(); - - virtual void Append(const wxString& item); - virtual void Append(const wxString& item, char *clientData); - virtual void Set(int n, const wxString* choices, char **clientData = NULL); - virtual int FindString(const wxString& s) const ; - virtual void Clear(); - virtual void SetSelection(int n, bool select = TRUE); - - virtual void Deselect(int n); - - // For single choice list item only - virtual int GetSelection() const ; - virtual void Delete(int n); - virtual char *GetClientData(int n) const ; - virtual void SetClientData(int n, char *clientData); - virtual void SetString(int n, const wxString& s); - - // For single or multiple choice list item - virtual int GetSelections(wxArrayInt& aSelections) const; - virtual bool Selected(int n) const ; - virtual wxString GetString(int n) const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - // Set the specified item at the first visible item - // or scroll to max range. - virtual void SetFirstItem(int n) ; - virtual void SetFirstItem(const wxString& s) ; - - virtual void InsertItems(int nItems, const wxString items[], int pos); - - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& s, bool flag = TRUE); - virtual int Number() const ; - - void Command(wxCommandEvent& event); - - protected: - int m_noItems; - int m_selected; -}; - -#endif - // _WX_LISTBOX_H_ diff --git a/include/wx/qt/mdi.h b/include/wx/qt/mdi.h deleted file mode 100644 index 1daec94008..0000000000 --- a/include/wx/qt/mdi.h +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: MDI (Multiple Document Interface) classes. -// This doesn't have to be implemented just like Windows, -// it could be a tabbed design as in wxGTK. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MDI_H_ -#define _WX_MDI_H_ - -#ifdef __GNUG__ -#pragma interface "mdi.h" -#endif - -#include "wx/frame.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxStatusLineNameStr; - -class WXDLLEXPORT wxMDIClientWindow; -class WXDLLEXPORT wxMDIChildFrame; - -class WXDLLEXPORT wxMDIParentFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - - friend class WXDLLEXPORT wxMDIChildFrame; -public: - - wxMDIParentFrame(); - inline wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, // Scrolling refers to client window - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - void OnSize(wxSizeEvent& event); - void OnActivate(wxActivateEvent& event); - - void SetMenuBar(wxMenuBar *menu_bar); - - // Gets the size available for subwindows after menu size, toolbar size - // and status bar size have been subtracted. If you want to manage your own - // toolbar(s), don't call SetToolBar. - void GetClientSize(int *width, int *height) const; - - // Get the active MDI child window (Windows only) - wxMDIChildFrame *GetActiveChild() const ; - - // Get the client window - inline wxMDIClientWindow *GetClientWindow() const { return m_clientWindow; }; - - // Create the client window class (don't Create the window, - // just return a new class) - virtual wxMDIClientWindow *OnCreateClient() ; - - // MDI operations - virtual void Cascade(); - virtual void Tile(); - virtual void ArrangeIcons(); - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -protected: - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxMDIChildFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) -public: - - wxMDIChildFrame(); - inline wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIChildFrame(); - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - void SetClientSize(int width, int height); - void GetPosition(int *x, int *y) const ; - - // MDI operations - virtual void Maximize(); - virtual void Restore(); - virtual void Activate(); -}; - -/* The client window is a child of the parent MDI frame, and itself - * contains the child MDI frames. - * However, you create the MDI children as children of the MDI parent: - * only in the implementation does the client window become the parent - * of the children. Phew! So the children are sort of 'adopted'... - */ - -class WXDLLEXPORT wxMDIClientWindow: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - public: - - wxMDIClientWindow() ; - inline wxMDIClientWindow(wxMDIParentFrame *parent, long style = 0) - { - CreateClient(parent, style); - } - - ~wxMDIClientWindow(); - - // Note: this is virtual, to allow overridden behaviour. - virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL); - - // Explicitly call default scroll behaviour - void OnScroll(wxScrollEvent& event); - -protected: - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_MDI_H_ diff --git a/include/wx/qt/menu.h b/include/wx/qt/menu.h deleted file mode 100644 index 1654602141..0000000000 --- a/include/wx/qt/menu.h +++ /dev/null @@ -1,157 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -#ifdef __GNUG__ -#pragma interface "menu.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" - -class WXDLLEXPORT wxMenuItem; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenu; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenu: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - // ctor & dtor - wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL); - ~wxMenu(); - - // construct menu - // append items to the menu - // separator line - void AppendSeparator(); - // normal item - void Append(int id, const wxString& Label, const wxString& helpString = wxEmptyString, - bool checkable = FALSE); - // a submenu - void Append(int id, const wxString& Label, wxMenu *SubMenu, - const wxString& helpString = wxEmptyString); - // the most generic form (create wxMenuItem first and use it's functions) - void Append(wxMenuItem *pItem); - // insert a break in the menu - void Break(); - // delete an item - void Delete(int id); - - // menu item control - void Enable(int id, bool Flag); - bool Enabled(int id) const; - inline bool IsEnabled(int id) const { return Enabled(id); }; - void Check(int id, bool Flag); - bool Checked(int id) const; - inline bool IsChecked(int id) const { return IsChecked(id); }; - - // item properties - // title - void SetTitle(const wxString& label); - const wxString& GetTitle() const; - // label - void SetLabel(int id, const wxString& label); - wxString GetLabel(int id) const; - // help string - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - // find item - // Finds the item id matching the given string, -1 if not found. - virtual int FindItem(const wxString& itemString) const ; - // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const; - - void ProcessCommand(wxCommandEvent& event); - inline void Callback(const wxFunction func) { m_callback = func; } - - virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; } - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline wxList& GetItems() const { return (wxList&) m_menuItems; } - -public: - wxFunction m_callback; - - int m_noItems; - wxString m_title; - wxMenuBar * m_menuBar; - wxList m_menuItems; - wxEvtHandler * m_parent; - wxEvtHandler * m_eventHandler; -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxMenuBar: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - - wxMenuBar(); - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - ~wxMenuBar(); - - void Append(wxMenu *menu, const wxString& title); - // Must only be used AFTER menu has been attached to frame, - // otherwise use individual menus to enable/disable items - void Enable(int Id, bool Flag); - bool Enabled(int Id) const ; - inline bool IsEnabled(int Id) const { return Enabled(Id); }; - void EnableTop(int pos, bool Flag); - void Check(int id, bool Flag); - bool Checked(int id) const ; - inline bool IsChecked(int Id) const { return Checked(Id); }; - void SetLabel(int id, const wxString& label) ; - wxString GetLabel(int id) const ; - void SetLabelTop(int pos, const wxString& label) ; - wxString GetLabelTop(int pos) const ; - virtual void Delete(wxMenu *menu, int index = 0); /* Menu not destroyed */ - virtual bool OnAppend(wxMenu *menu, const char *title); - virtual bool OnDelete(wxMenu *menu, int index); - - virtual void SetHelpString(int Id, const wxString& helpString); - virtual wxString GetHelpString(int Id) const ; - - virtual int FindMenuItem(const wxString& menuString, const wxString& itemString) const ; - - // Find wxMenuItem for item ID, and return item's - // menu too if itemMenu is non-NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const ; - - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline int GetMenuCount() const { return m_menuCount; } - inline wxMenu* GetMenu(int i) const { return m_menus[i]; } - - public: - wxEvtHandler * m_eventHandler; - int m_menuCount; - wxMenu ** m_menus; - wxString * m_titles; - wxFrame * m_menuBarFrame; -/* TODO: data that represents the actual menubar when created. - */ -}; - -#endif // _WX_MENU_H_ diff --git a/include/wx/qt/notebook.h b/include/wx/qt/notebook.h deleted file mode 100644 index b5834ec181..0000000000 --- a/include/wx/qt/notebook.h +++ /dev/null @@ -1,202 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) -// Author: AUTHOR -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_ -#define _WX_NOTEBOOK_H_ - -#ifdef __GNUG__ -#pragma interface "notebook.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLEXPORT wxImageList; -class WXDLLEXPORT wxWindow; - -// array of notebook pages -typedef wxWindow wxNotebookPage; // so far, any window can be a page -WX_DEFINE_ARRAY(wxNotebookPage *, wxArrayPages); - -// ---------------------------------------------------------------------------- -// notebook events -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxNotebookEvent : public wxCommandEvent -{ -public: - wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0, - int nSel = -1, int nOldSel = -1) - : wxCommandEvent(commandType, id) { m_nSel = nSel; m_nOldSel = nOldSel; } - - // accessors - int GetSelection() const { return m_nSel; } - int GetOldSelection() const { return m_nOldSel; } - -private: - int m_nSel, // currently selected page - m_nOldSel; // previously selected page - - DECLARE_DYNAMIC_CLASS(wxNotebookEvent) -}; - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -// @@@ this class should really derive from wxTabCtrl, but the interface is not -// exactly the same, so I can't do it right now and instead we reimplement -// part of wxTabCtrl here -class wxNotebook : public wxControl -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // dtor - ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - int GetPageCount() const; - - // set the currently selected page, return the index of the previously - // selected one (or -1 on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(int nPage); - // cycle thru the tabs - void AdvanceSelection(bool bForward = TRUE); - // get the currently selected page - int GetSelection() const { return m_nSelection; } - - // set/get the title of a page - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - // get pointer (may be NULL) to the associated image list - wxImageList* GetImageList() const { return m_pImageList; } - - // sets/returns item's image index in the current image list - int GetPageImage(int nPage) const; - bool SetPageImage(int nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - - // operations - // ---------- - // remove one page from the notebook - bool DeletePage(int nPage); - // remove all pages - bool DeleteAllPages(); - // adds a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // the same as AddPage(), but adds it at the specified position - bool InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // get the panel which represents the given page - wxNotebookPage *GetPage(int nPage) { return m_aPages[nPage]; } - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnSelChange(wxNotebookEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - virtual void Command(wxCommandEvent& event); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool DoPhase(int nPhase); - -protected: - // common part of all ctors - void Init(); - - // helper functions - void ChangePage(int nOldSel, int nSel); // change pages - - wxImageList *m_pImageList; // we can have an associated image list - wxArrayPages m_aPages; // array of pages - - int m_nSelection; // the current selection (-1 if none) - - DECLARE_DYNAMIC_CLASS(wxNotebook) - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// event macros -// ---------------------------------------------------------------------------- -typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); - -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, \ \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#endif // _WX_NOTEBOOK_H_ diff --git a/include/wx/qt/palette.h b/include/wx/qt/palette.h deleted file mode 100644 index a5c85bb1d0..0000000000 --- a/include/wx/qt/palette.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: wxPalette class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#ifdef __GNUG__ -#pragma interface "palette.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxPalette; - -class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPalette; -public: - wxPaletteRefData(); - ~wxPaletteRefData(); -/* TODO: implementation -protected: - WXHPALETTE m_hPalette; -*/ -}; - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -class WXDLLEXPORT wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - -public: - wxPalette(); - inline wxPalette(const wxPalette& palette) { Ref(palette); } - inline wxPalette(const wxPalette* palette) { UnRef(); if (palette) Ref(*palette); } - - wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - ~wxPalette(); - bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } - inline bool operator == (const wxPalette& palette) { return m_refData == palette.m_refData; } - inline bool operator != (const wxPalette& palette) { return m_refData != palette.m_refData; } - - virtual bool FreeResource(bool force = FALSE); -/* TODO: implementation - inline WXHPALETTE GetHPALETTE() const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } - void SetHPALETTE(WXHPALETTE pal); -*/ -}; - -#endif - // _WX_PALETTE_H_ diff --git a/include/wx/qt/pen.h b/include/wx/qt/pen.h deleted file mode 100644 index 0e23c99daf..0000000000 --- a/include/wx/qt/pen.h +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: wxPen class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#ifdef __GNUG__ -#pragma interface "pen.h" -#endif - -#include "wx/gdiobj.h" - -typedef WXDWORD wxDash ; - -class WXDLLEXPORT wxPen; - -class WXDLLEXPORT wxPenRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPen; -public: - wxPenRefData(); - wxPenRefData(const wxPenRefData& data); - ~wxPenRefData(); - -protected: - int m_width; - int m_style; - int m_join ; - int m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; - wxColour m_colour; -/* TODO: implementation - WXHPEN m_hPen; -*/ -}; - -#define M_PENDATA ((wxPenRefData *)m_refData) - -// Pen -class WXDLLEXPORT wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) -public: - wxPen(); - wxPen(const wxColour& col, int width, int style); - wxPen(const wxString& col, int width, int style); - wxPen(const wxBitmap& stipple, int width); - inline wxPen(const wxPen& pen) { Ref(pen); } - inline wxPen(const wxPen* pen) { if (pen) Ref(*pen); } - ~wxPen(); - - inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; } - inline bool operator == (const wxPen& pen) { return m_refData == pen.m_refData; } - inline bool operator != (const wxPen& pen) { return m_refData != pen.m_refData; } - - virtual bool Ok() const { return (m_refData != NULL) ; } - - // Override in order to recreate the pen - void SetColour(const wxColour& col) ; - void SetColour(const wxString& col) ; - void SetColour(const unsigned char r, const unsigned char g, const unsigned char b) ; - - void SetWidth(int width) ; - void SetStyle(int style) ; - void SetStipple(const wxBitmap& stipple) ; - void SetDashes(int nb_dashes, const wxDash *dash) ; - void SetJoin(int join) ; - void SetCap(int cap) ; - - inline wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); }; - inline int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); }; - inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); }; - inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); }; - inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); }; - inline int GetDashes(wxDash **ptr) const { - *ptr = (M_PENDATA ? M_PENDATA->m_dash : NULL); return (M_PENDATA ? M_PENDATA->m_nbDash : 0); - } - - inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : NULL); }; - -// Implementation - - // Useful helper: create the brush resource - void RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_PEN_H_ diff --git a/include/wx/qt/radiobox.h b/include/wx/qt/radiobox.h deleted file mode 100644 index cb7c5ba405..0000000000 --- a/include/wx/qt/radiobox.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: wxRadioBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "radiobox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioBoxNameStr; - -// List box item -class WXDLLEXPORT wxBitmap ; - -class WXDLLEXPORT wxRadioBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioBox) -public: - wxRadioBox(); - - inline wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); - } - - ~wxRadioBox(); - - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr); - - int FindString(const wxString& s) const; - void SetSelection(int N); - int GetSelection() const; - wxString GetString(int N) const; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void GetSize(int *x, int *y) const; - void GetPosition(int *x, int *y) const; - wxString GetLabel() const; - void SetLabel(const wxString& label); - void SetLabel(int item, const wxString& label) ; - wxString GetLabel(int item) const; - bool Show(bool show); - void SetFocus(); - void Enable(bool enable); - void Enable(int item, bool enable); - void Show(int item, bool show) ; - inline void SetLabelFont(const wxFont& WXUNUSED(font)) {}; - inline void SetButtonFont(const wxFont& font) { SetFont(font); } - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection(const wxString& s); - inline virtual int Number() const { return m_noItems; } ; - void Command(wxCommandEvent& event); - - inline int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } - inline void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } - -protected: -/* TODO: implementation - WXHWND * m_radioButtons; -*/ - int m_majorDim ; - int m_noItems; - int m_noRowsOrCols; - int m_selectedButton; - -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/include/wx/qt/radiobut.h b/include/wx/qt/radiobut.h deleted file mode 100644 index 7a4ce62d50..0000000000 --- a/include/wx/qt/radiobut.h +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: wxRadioButton class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -#ifdef __GNUG__ -#pragma interface "radiobut.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioButtonNameStr; - -class WXDLLEXPORT wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) - protected: - public: - inline wxRadioButton() {} - inline wxRadioButton(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - virtual void SetLabel(const wxString& label); - virtual void SetValue(bool val); - virtual bool GetValue() const ; - - void Command(wxCommandEvent& event); - virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam); -}; - -// Not implemented -#if 0 -class WXDLLEXPORT wxBitmap ; - -WXDLLEXPORT_DATA(extern const char*) wxBitmapRadioButtonNameStr; - -class WXDLLEXPORT wxBitmapRadioButton: public wxRadioButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapRadioButton) - protected: - wxBitmap *theButtonBitmap; - public: - inline wxBitmapRadioButton() { theButtonBitmap = NULL; } - inline wxBitmapRadioButton(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr); - - virtual void SetLabel(const wxBitmap *label); - virtual void SetValue(bool val) ; - virtual bool GetValue() const ; -}; -#endif - -#endif - // _WX_RADIOBUT_H_ diff --git a/include/wx/qt/region.h b/include/wx/qt/region.h deleted file mode 100644 index 02bf97845f..0000000000 --- a/include/wx/qt/region.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: wxRegion class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGION_H_ -#define _WX_REGION_H_ - -#ifdef __GNUG__ -#pragma interface "region.h" -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxPoint; - -enum wxRegionContain { - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -class WXDLLEXPORT wxRegion : public wxGDIObject { -DECLARE_DYNAMIC_CLASS(wxRegion); - friend class WXDLLEXPORT wxRegionIterator; -public: - wxRegion(long x, long y, long w, long h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - -/* TODO: implementation - wxRegion(WXHRGN hRegion); // Hangs on to this region -*/ - - wxRegion(); - ~wxRegion(); - - //# Copying - inline wxRegion(const wxRegion& r) - { Ref(r); } - inline wxRegion& operator = (const wxRegion& r) - { Ref(r); return (*this); } - - //# Modify region - // Clear current region - void Clear(); - - // Union rectangle or region with this. - inline bool Union(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_OR); } - inline bool Union(const wxRect& rect) { return Combine(rect, wxRGN_OR); } - inline bool Union(const wxRegion& region) { return Combine(region, wxRGN_OR); } - - // Intersect rectangle or region with this. - inline bool Intersect(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_AND); } - inline bool Intersect(const wxRect& rect) { return Combine(rect, wxRGN_AND); } - inline bool Intersect(const wxRegion& region) { return Combine(region, wxRGN_AND); } - - // Subtract rectangle or region from this: - // Combines the parts of 'this' that are not part of the second region. - inline bool Subtract(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_DIFF); } - inline bool Subtract(const wxRect& rect) { return Combine(rect, wxRGN_DIFF); } - inline bool Subtract(const wxRegion& region) { return Combine(region, wxRGN_DIFF); } - - // XOR: the union of two combined regions except for any overlapping areas. - inline bool Xor(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_XOR); } - inline bool Xor(const wxRect& rect) { return Combine(rect, wxRGN_XOR); } - inline bool Xor(const wxRegion& region) { return Combine(region, wxRGN_XOR); } - - //# Information on region - // Outer bounds of region - void GetBox(long& x, long& y, long&w, long &h) const; - wxRect GetBox() const ; - - // Is region empty? - bool Empty() const; - inline bool IsEmpty() const { return Empty(); } - - //# Tests - // Does the region contain the point (x,y)? - wxRegionContain Contains(long x, long y) const; - // Does the region contain the point pt? - wxRegionContain Contains(const wxPoint& pt) const; - // Does the region contain the rectangle (x, y, w, h)? - wxRegionContain Contains(long x, long y, long w, long h) const; - // Does the region contain the rectangle rect? - wxRegionContain Contains(const wxRect& rect) const; - -// Internal - bool Combine(long x, long y, long width, long height, wxRegionOp op); - bool Combine(const wxRegion& region, wxRegionOp op); - bool Combine(const wxRect& rect, wxRegionOp op); -}; - -class WXDLLEXPORT wxRegionIterator : public wxObject { -DECLARE_DYNAMIC_CLASS(wxRegionIterator); -public: - wxRegionIterator(); - wxRegionIterator(const wxRegion& region); - ~wxRegionIterator(); - - void Reset() { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool () const { return m_current < m_numRects; } - bool HaveRects() const { return m_current < m_numRects; } - - void operator ++ (); - void operator ++ (int); - - long GetX() const; - long GetY() const; - long GetW() const; - long GetWidth() const { return GetW(); } - long GetH() const; - long GetHeight() const { return GetH(); } - -private: - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; -}; - -#endif - // _WX_REGION_H_ diff --git a/include/wx/qt/scrolbar.h b/include/wx/qt/scrolbar.h deleted file mode 100644 index eeef6727c5..0000000000 --- a/include/wx/qt/scrolbar.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrollbar.h -// Purpose: wxScrollBar class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "scrolbar.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxScrollBarNameStr; - -// Scrollbar item -class WXDLLEXPORT wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - -public: - inline wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - ~wxScrollBar(); - - inline wxScrollBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - int GetPosition() const ; - inline int GetThumbSize() const { return m_pageSize; } - inline int GetPageSize() const { return m_viewSize; } - inline int GetRange() const { return m_objectSize; } - - virtual void SetPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE); - - void Command(wxCommandEvent& event); - -protected: - int m_pageSize; - int m_viewSize; - int m_objectSize; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SCROLBAR_H_ diff --git a/include/wx/qt/settings.h b/include/wx/qt/settings.h deleted file mode 100644 index 7cd3cbe19e..0000000000 --- a/include/wx/qt/settings.h +++ /dev/null @@ -1,129 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: wxSystemSettings class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_ -#define _WX_SETTINGS_H_ - -#ifdef __GNUG__ -#pragma interface "settings.h" -#endif - -#include "wx/setup.h" - -#define wxSYS_WHITE_BRUSH 0 -#define wxSYS_LTGRAY_BRUSH 1 -#define wxSYS_GRAY_BRUSH 2 -#define wxSYS_DKGRAY_BRUSH 3 -#define wxSYS_BLACK_BRUSH 4 -#define wxSYS_NULL_BRUSH 5 -#define wxSYS_HOLLOW_BRUSH wxSYS_NULL_BRUSH -#define wxSYS_WHITE_PEN 6 -#define wxSYS_BLACK_PEN 7 -#define wxSYS_NULL_PEN 8 -#define wxSYS_OEM_FIXED_FONT 10 -#define wxSYS_ANSI_FIXED_FONT 11 -#define wxSYS_ANSI_VAR_FONT 12 -#define wxSYS_SYSTEM_FONT 13 -#define wxSYS_DEVICE_DEFAULT_FONT 14 -#define wxSYS_DEFAULT_PALETTE 15 -#define wxSYS_SYSTEM_FIXED_FONT 16 // Obsolete -#define wxSYS_DEFAULT_GUI_FONT 17 - -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT - -// Metrics -#define wxSYS_MOUSE_BUTTONS 1 -#define wxSYS_BORDER_X 2 -#define wxSYS_BORDER_Y 3 -#define wxSYS_CURSOR_X 4 -#define wxSYS_CURSOR_Y 5 -#define wxSYS_DCLICK_X 6 -#define wxSYS_DCLICK_Y 7 -#define wxSYS_DRAG_X 8 -#define wxSYS_DRAG_Y 9 -#define wxSYS_EDGE_X 10 -#define wxSYS_EDGE_Y 11 -#define wxSYS_HSCROLL_ARROW_X 12 -#define wxSYS_HSCROLL_ARROW_Y 13 -#define wxSYS_HTHUMB_X 14 -#define wxSYS_ICON_X 15 -#define wxSYS_ICON_Y 16 -#define wxSYS_ICONSPACING_X 17 -#define wxSYS_ICONSPACING_Y 18 -#define wxSYS_WINDOWMIN_X 19 -#define wxSYS_WINDOWMIN_Y 20 -#define wxSYS_SCREEN_X 21 -#define wxSYS_SCREEN_Y 22 -#define wxSYS_FRAMESIZE_X 23 -#define wxSYS_FRAMESIZE_Y 24 -#define wxSYS_SMALLICON_X 25 -#define wxSYS_SMALLICON_Y 26 -#define wxSYS_HSCROLL_Y 27 -#define wxSYS_VSCROLL_X 28 -#define wxSYS_VSCROLL_ARROW_X 29 -#define wxSYS_VSCROLL_ARROW_Y 30 -#define wxSYS_VTHUMB_Y 31 -#define wxSYS_CAPTION_Y 32 -#define wxSYS_MENU_Y 33 -#define wxSYS_NETWORK_PRESENT 34 -#define wxSYS_PENWINDOWS_PRESENT 35 -#define wxSYS_SHOW_SOUNDS 36 -#define wxSYS_SWAP_BUTTONS 37 - -class WXDLLEXPORT wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings() {} - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // _WX_SETTINGS_H_ diff --git a/include/wx/qt/slider.h b/include/wx/qt/slider.h deleted file mode 100644 index 239e914e5c..0000000000 --- a/include/wx/qt/slider.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: wxSlider class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_ -#define _WX_SLIDER_H_ - -#ifdef __GNUG__ -#pragma interface "slider.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxSliderNameStr; - -// Slider -class WXDLLEXPORT wxSlider: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSlider) - -public: - wxSlider(); - - inline wxSlider(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - ~wxSlider(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const ; - virtual void SetValue(int); - void GetSize(int *x, int *y) const ; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void GetPosition(int *x, int *y) const ; - bool Show(bool show); - - void SetRange(int minValue, int maxValue); - - inline int GetMin() const { return m_rangeMin; } - inline int GetMax() const { return m_rangeMax; } - - // For trackbars only - void SetTickFreq(int n, int pos); - inline int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const ; - void ClearSel() ; - void ClearTicks() ; - void SetLineSize(int lineSize); - int GetLineSize() const ; - int GetSelEnd() const ; - int GetSelStart() const ; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len) ; - int GetThumbLength() const ; - void SetTick(int tickPos) ; - - void Command(wxCommandEvent& event); - protected: - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SLIDER_H_ diff --git a/include/wx/qt/statbmp.h b/include/wx/qt/statbmp.h deleted file mode 100644 index f371fddd2d..0000000000 --- a/include/wx/qt/statbmp.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: wxStaticBitmap class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_ -#define _WX_STATBMP_H_ - -#ifdef __GNUG__ -#pragma interface "statbmp.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBitmapNameStr; - -class WXDLLEXPORT wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - public: - inline wxStaticBitmap() { } - - inline wxStaticBitmap(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual void SetBitmap(const wxBitmap& bitmap); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; } - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - - protected: - wxBitmap m_messageBitmap; - -}; - -#endif - // _WX_STATBMP_H_ diff --git a/include/wx/qt/statbox.h b/include/wx/qt/statbox.h deleted file mode 100644 index 1aa4a6f88a..0000000000 --- a/include/wx/qt/statbox.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.h -// Purpose: wxStaticBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_ -#define _WX_STATBOX_H_ - -#ifdef __GNUG__ -#pragma interface "statbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBoxNameStr; - -// Group box -class WXDLLEXPORT wxStaticBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBox) - - public: - inline wxStaticBox() {} - inline wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetLabel(const wxString& label); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_STATBOX_H_ diff --git a/include/wx/qt/stattext.h b/include/wx/qt/stattext.h deleted file mode 100644 index aa8eaf229e..0000000000 --- a/include/wx/qt/stattext.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: wxStaticText class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -#ifdef __GNUG__ -#pragma interface "stattext.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticTextNameStr; - -class WXDLLEXPORT wxStaticText: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticText) - public: - inline wxStaticText() { } - - inline wxStaticText(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // accessors - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetLabel(const wxString&); - - // operations - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/include/wx/qt/tbargtk.h b/include/wx/qt/tbargtk.h deleted file mode 100644 index f6a3636927..0000000000 --- a/include/wx/qt/tbargtk.h +++ /dev/null @@ -1,139 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbargtk.h -// Purpose: GTK toolbar -// Author: Robert Roebling -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TBARGTKH__ -#define __TBARGTKH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/control.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxToolBarTool; -class wxToolBar; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define wxTOOL_STYLE_BUTTON 1 -#define wxTOOL_STYLE_SEPARATOR 2 - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const char *wxToolBarNameStr; - -//----------------------------------------------------------------------------- -// wxToolBarTool -//----------------------------------------------------------------------------- - -class wxToolBarTool: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxToolBarTool) - - public: - - wxToolBarTool(void) {}; - wxToolBarTool( wxToolBar *owner, int theIndex = 0, - const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap, - bool toggle = FALSE, wxObject *clientData = NULL, - const wxString& shortHelpString = "", const wxString& longHelpString = ""); - ~wxToolBarTool(void); - - public: - - int m_toolStyle; - wxObject *m_clientData; - int m_index; - bool m_toggleState; - bool m_isToggle; - bool m_deleteSecondBitmap; - bool m_enabled; - wxBitmap m_bitmap1; - wxBitmap m_bitmap2; - bool m_isMenuCommand; - wxString m_shortHelpString; - wxString m_longHelpString; - wxToolBar *m_owner; -}; - -//----------------------------------------------------------------------------- -// wxToolBar -//----------------------------------------------------------------------------- - -class wxToolBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxToolBar) - - public: - - wxToolBar(void); - wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr ); - ~wxToolBar(void); - - bool Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = wxToolBarNameStr); - - // Only allow toggle if returns TRUE. Call when left button up. - virtual bool OnLeftClick(int toolIndex, bool toggleDown); - - // Call when right button down. - virtual void OnRightClick(int toolIndex, float x, float y); - - // Called when the mouse cursor enters a tool bitmap. - // Argument is -1 if mouse is exiting the toolbar. - virtual void OnMouseEnter(int toolIndex); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - virtual wxToolBarTool *AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap = wxNullBitmap, bool toggle = FALSE, - float xPos = -1, float yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - virtual void AddSeparator(void); - virtual void ClearTools(void); - - virtual void Realize(void); - - virtual void EnableTool(int toolIndex, bool enable); - virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - virtual wxObject *GetToolClientData(int index) const; - - virtual bool GetToolState(int toolIndex) const; - virtual bool GetToolEnabled(int toolIndex) const; - - virtual void SetMargins(int x, int y); - void SetMargins(const wxSize& size) { SetMargins(size.x, size.y); }; - virtual void SetToolPacking(int packing); - virtual void SetToolSeparation(int separation); - - public: - - wxList m_tools; - - DECLARE_EVENT_TABLE() -}; - -#endif - // __TBARGTKH__ - diff --git a/include/wx/qt/textctrl.h b/include/wx/qt/textctrl.h deleted file mode 100644 index 6b323a9fbe..0000000000 --- a/include/wx/qt/textctrl.h +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: wxTextCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "textctrl.h" -#endif - -#include "wx/control.h" - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -WXDLLEXPORT_DATA(extern const char*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Single-line text item -class WXDLLEXPORT wxTextCtrl: public wxControl - -// TODO Some platforms/compilers don't like inheritance from streambuf. - -#if (defined(__BORLANDC__) && !defined(__WIN32__)) || defined(__MWERKS__) -#define NO_TEXT_WINDOW_STREAM -#endif - -#ifndef NO_TEXT_WINDOW_STREAM -, public streambuf -#endif - -{ - DECLARE_DYNAMIC_CLASS(wxTextCtrl) - -public: - // creation - // -------- - wxTextCtrl(); - inline wxTextCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif - { - Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // accessors - // --------- - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - // operations - // ---------- - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // streambuf implementation -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); -#endif - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); - - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file); - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - virtual void DiscardEdits(); - virtual bool IsModified() const; - - virtual long XYToPosition(long x, long y) const ; - virtual void PositionToXY(long pos, long *x, long *y) const ; - virtual void ShowPosition(long pos); - virtual void Clear(); - - // callbacks - // --------- - void OnDropFiles(wxDropFilesEvent& event); - void OnChar(wxKeyEvent& event); // Process 'enter' if required - void OnEraseBackground(wxEraseEvent& event); - - // Implementation - // -------------- - virtual void Command(wxCommandEvent& event); - -protected: - wxString m_fileName; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TEXTCTRL_H_ diff --git a/include/wx/qt/timer.h b/include/wx/qt/timer.h deleted file mode 100644 index 2dc0c5b486..0000000000 --- a/include/wx/qt/timer.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: wxTimer class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMER_H_ -#define _WX_TIMER_H_ - -#ifdef __GNUG__ -#pragma interface "timer.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxTimer: public wxObject -{ -public: - wxTimer(); - ~wxTimer(); - - virtual bool Start(int milliseconds = -1, - bool one_shot = FALSE); // Start timer - virtual void Stop(); // Stop timer - - virtual void Notify() = 0; // Override this member - - // Returns the current interval time (0 if stop) - int Interval() const { return milli; }; - bool OneShot() const { return oneShot; } - -protected: - bool oneShot ; - int milli ; - int lastMilli ; - - long id; - -private: - DECLARE_ABSTRACT_CLASS(wxTimer) -}; - -/* Note: these are implemented in common/timercmn.cpp, so need to implement them separately. - * But you may need to modify timercmn.cpp. - */ - -// Timer functions (milliseconds) -void WXDLLEXPORT wxStartTimer(); -// Gets time since last wxStartTimer or wxGetElapsedTime -long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); - -// EXPERIMENTAL: comment this out if it doesn't compile. -bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved); - -// Get number of seconds since 00:00:00 GMT, Jan 1st 1970. -long WXDLLEXPORT wxGetCurrentTime(); - -#endif - // _WX_TIMER_H_ diff --git a/include/wx/qt/window.h b/include/wx/qt/window.h deleted file mode 100644 index cac783dfc4..0000000000 --- a/include/wx/qt/window.h +++ /dev/null @@ -1,547 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindow class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -#ifdef __GNUG__ -#pragma interface "window.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/pen.h" -#include "wx/font.h" -#include "wx/validate.h" -#include "wx/event.h" -#include "wx/string.h" -#include "wx/list.h" -#include "wx/region.h" - -#define wxKEY_SHIFT 1 -#define wxKEY_CTRL 2 - -/* - * Base class for frame, panel, canvas, panel items, dialog box. - * - */ - -/* - * Event handler: windows have themselves as their event handlers - * by default, but their event handlers could be set to another - * object entirely. This separation can reduce the amount of - * derivation required, and allow alteration of a window's functionality - * (e.g. by a resource editor that temporarily switches event handlers). - */ - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxEvent; -class WXDLLEXPORT wxCommandEvent; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxCursor; -class WXDLLEXPORT wxColourMap; -class WXDLLEXPORT wxFont; -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxSizer; -class WXDLLEXPORT wxList; -class WXDLLEXPORT wxLayoutConstraints; -class WXDLLEXPORT wxMouseEvent; -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxColour; -class WXDLLEXPORT wxBrush; -class WXDLLEXPORT wxPen; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxValidator; - -#if wxUSE_DRAG_AND_DROP -class WXDLLEXPORT wxDropTarget; -#endif - -#if wxUSE_WX_RESOURCES -class WXDLLEXPORT wxResourceTable; -class WXDLLEXPORT wxItemResource; -#endif - -WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr; - -WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize; -WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition; - -class WXDLLEXPORT wxWindow: public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxWindow) - - friend class wxDC; - friend class wxPaintDC; - -public: - wxWindow(); - inline wxWindow(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - m_children = new wxList; - Create(parent, id, pos, size, style, name); - } - - virtual ~wxWindow(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // Fit the window around the items - virtual void Fit(); - - // Show or hide the window - virtual bool Show(bool show); - - // Is the window shown? - virtual bool IsShown() const; - - // Raise the window to the top of the Z order - virtual void Raise(); - - // Lower the window to the bottom of the Z order - virtual void Lower(); - - // Is the window enabled? - virtual bool IsEnabled() const; - - // For compatibility - inline bool Enabled() const { return IsEnabled(); } - - // Dialog support: override these and call - // base class members to add functionality - // that can't be done using validators. - - // Transfer values to controls. If returns FALSE, - // it's an application error (pops up a dialog) - virtual bool TransferDataToWindow(); - - // Transfer values from controls. If returns FALSE, - // transfer failed: don't quit - virtual bool TransferDataFromWindow(); - - // Validate controls. If returns FALSE, - // validation failed: don't quit - virtual bool Validate(); - - // Return code for dialogs - inline void SetReturnCode(int retCode); - inline int GetReturnCode(); - - // Set the cursor - virtual void SetCursor(const wxCursor& cursor); - inline virtual wxCursor *GetCursor() const { return (wxCursor *)& m_windowCursor; }; - - // Get the window with the focus - static wxWindow *FindFocus(); - - // Get character size - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - - // Get overall window size - virtual void GetSize(int *width, int *height) const; - - // Get window position, relative to parent (or screen if no parent) - virtual void GetPosition(int *x, int *y) const; - - // Get client (application-useable) size - virtual void GetClientSize(int *width, int *height) const; - - // Set overall size and position - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - inline virtual void SetSize(int width, int height) { SetSize(-1, -1, width, height, wxSIZE_USE_EXISTING); } - inline virtual void Move(int x, int y) { SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING); } - - // Set client size - virtual void SetClientSize(int width, int size); - - // Convert client to screen coordinates - virtual void ClientToScreen(int *x, int *y) const; - - // Convert screen to client coordinates - virtual void ScreenToClient(int *x, int *y) const; - - // Set the focus to this window - virtual void SetFocus(); - - // Capture/release mouse - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - // Enable or disable the window - virtual void Enable(bool enable); - -#if wxUSE_DRAG_AND_DROP - // Associate a drop target with this window (if the window already had a drop - // target, it's deleted!) and return the current drop target (may be NULL). - void SetDropTarget(wxDropTarget *pDropTarget); - wxDropTarget *GetDropTarget() const { return m_pDropTarget; } -#endif - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - - // Update region access - virtual wxRegion GetUpdateRegion() const; - virtual bool IsExposed(int x, int y, int w, int h) const; - virtual bool IsExposed(const wxPoint& pt) const; - virtual bool IsExposed(const wxRect& rect) const; - - // Set/get the window title - virtual inline void SetTitle(const wxString& WXUNUSED(title)) {}; - inline virtual wxString GetTitle() const { return wxString(""); }; - // Most windows have the concept of a label; for frames, this is the - // title; for items, this is the label or button text. - inline virtual wxString GetLabel() const { return GetTitle(); } - - // Set/get the window name (used for resource setting in X) - inline virtual wxString GetName() const; - inline virtual void SetName(const wxString& name); - - // Centre the window - virtual void Centre(int direction) ; - inline void Center(int direction = wxHORIZONTAL) { Centre(direction); } - - // Popup a menu - virtual bool PopupMenu(wxMenu *menu, int x, int y); - - // Send the window a refresh event - virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL); - - // New functions that will replace the above. - virtual void SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE); - - virtual void SetScrollPos(int orient, int pos, bool refresh = TRUE); - virtual int GetScrollPos(int orient) const; - virtual int GetScrollRange(int orient) const; - virtual int GetScrollThumb(int orient) const; - - virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL); - - // Caret manipulation - virtual void CreateCaret(int w, int h); - virtual void CreateCaret(const wxBitmap *bitmap); - virtual void DestroyCaret(); - virtual void ShowCaret(bool show); - virtual void SetCaretPos(int x, int y); - virtual void GetCaretPos(int *x, int *y) const; - - // Tell window how much it can be sized - virtual void SetSizeHints(int minW = -1, int minH = -1, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1); - - // Set/get the window's identifier - inline int GetId() const; - inline void SetId(int id); - - // Make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal); - - // Get the private handle (platform-dependent) - inline void *GetHandle() const; - - // Set/get the window's relatives - inline wxWindow *GetParent() const; - inline void SetParent(wxWindow *p) ; - inline wxWindow *GetGrandParent() const; - inline wxList *GetChildren() const; - - // Set/get the window's font - virtual void SetFont(const wxFont& f); - inline virtual wxFont *GetFont() const; - - // Set/get the window's validator - void SetValidator(const wxValidator& validator); - inline wxValidator *GetValidator() const; - - // Set/get the window's style - inline void SetWindowStyleFlag(long flag); - inline long GetWindowStyleFlag() const; - - // Set/get event handler - inline void SetEventHandler(wxEvtHandler *handler); - inline wxEvtHandler *GetEventHandler() const; - - // Push/pop event handler (i.e. allow a chain of event handlers - // be searched) - void PushEventHandler(wxEvtHandler *handler) ; - wxEvtHandler *PopEventHandler(bool deleteHandler = FALSE) ; - - // Close the window by calling OnClose, posting a deletion - virtual bool Close(bool force = FALSE); - - // Destroy the window (delayed, if a managed window) - virtual bool Destroy() ; - - // Mode for telling default OnSize members to - // call Layout(), if not using Sizers, just top-down constraints - inline void SetAutoLayout(bool a); - inline bool GetAutoLayout() const; - - // Set/get constraints - inline wxLayoutConstraints *GetConstraints() const; - void SetConstraints(wxLayoutConstraints *c); - - // Set/get window background colour - inline virtual void SetBackgroundColour(const wxColour& col); - inline virtual wxColour GetBackgroundColour() const; - - // Set/get window foreground colour - inline virtual void SetForegroundColour(const wxColour& col); - inline virtual wxColour GetForegroundColour() const; - - // Set/get window default background colour (for children to inherit). - // NOTE: these may be removed in later revisions. - inline virtual void SetDefaultBackgroundColour(const wxColour& col); - inline virtual wxColour GetDefaultBackgroundColour(void) const; - - // Set/get window default foreground colour (for children to inherit) - inline virtual void SetDefaultForegroundColour(const wxColour& col); - inline virtual wxColour GetDefaultForegroundColour(void) const; - - // Get the default button, if there is one - inline virtual wxButton *GetDefaultItem() const; - inline virtual void SetDefaultItem(wxButton *but); - - // Override to define new behaviour for default action (e.g. double clicking - // on a listbox) - virtual void OnDefaultAction(wxControl *initiatingItem); - - // Resource loading -#if wxUSE_WX_RESOURCES - virtual bool LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table = NULL); - virtual wxControl *CreateItem(const wxItemResource *childResource, const wxResourceTable *table = NULL); -#endif - - // Native resource loading - virtual bool LoadNativeDialog(wxWindow* parent, wxWindowID& id); - virtual bool LoadNativeDialog(wxWindow* parent, const wxString& name); - virtual wxWindow* GetWindowChild1(wxWindowID& id); - virtual wxWindow* GetWindowChild(wxWindowID& id); - - virtual void GetTextExtent(const wxString& string, int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *theFont = NULL, bool use16 = FALSE) const; - - // Is the window retained? - inline bool IsRetained() const; - - // Warp the pointer the given position - virtual void WarpPointer(int x_pos, int y_pos) ; - - // Clear the window - virtual void Clear(); - - // Find a window by id or name - virtual wxWindow *FindWindow(long id); - virtual wxWindow *FindWindow(const wxString& name); - - // Constraint operations - bool Layout(); - void SetSizer(wxSizer *sizer); // Adds sizer child to this window - inline wxSizer *GetSizer() const ; - inline wxWindow *GetSizerParent() const ; - inline void SetSizerParent(wxWindow *win); - - // Do Update UI processing for controls - void UpdateWindowUI(); - - void OnEraseBackground(wxEraseEvent& event); - void OnChar(wxKeyEvent& event); - void OnPaint(wxPaintEvent& event); - void OnIdle(wxIdleEvent& event); - - // Does this window want to accept keyboard focus? - virtual bool AcceptsFocus() const; - -public: - //////////////////////////////////////////////////////////////////////// - //// IMPLEMENTATION - - // For implementation purposes - sometimes decorations make the client area - // smaller - virtual wxPoint GetClientAreaOrigin() const; - - // Makes an adjustment to the window position (for example, a frame that has - // a toolbar that it manages itself). - virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags); - - // Executes the default message - virtual long Default(); - -/* TODO: you may need something like this - // Determine whether 3D effects are wanted - virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D); -*/ - - virtual void AddChild(wxWindow *child); // Adds reference to the child object - virtual void RemoveChild(wxWindow *child); // Removes reference to child - // (but doesn't delete the child object) - virtual void DestroyChildren(); // Removes and destroys all children - - // Constraint implementation - void UnsetConstraints(wxLayoutConstraints *c); - inline wxList *GetConstraintsInvolvedIn() const ; - // Back-pointer to other windows we're involved with, so if we delete - // this window, we must delete any constraints we're involved with. - void AddConstraintReference(wxWindow *otherWin); - void RemoveConstraintReference(wxWindow *otherWin); - void DeleteRelatedConstraints(); - - virtual void ResetConstraints(); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool LayoutPhase1(int *noChanges); - virtual bool LayoutPhase2(int *noChanges); - virtual bool DoPhase(int); - // Transforms from sizer coordinate space to actual - // parent coordinate space - virtual void TransformSizerToActual(int *x, int *y) const ; - - // Set size with transformation to actual coordinates if nec. - virtual void SizerSetSize(int x, int y, int w, int h); - virtual void SizerMove(int x, int y); - - // Only set/get the size/position of the constraint (if any) - virtual void SetSizeConstraint(int x, int y, int w, int h); - virtual void MoveConstraint(int x, int y); - virtual void GetSizeConstraint(int *w, int *h) const ; - virtual void GetClientSizeConstraint(int *w, int *h) const ; - virtual void GetPositionConstraint(int *x, int *y) const ; - - wxObject *GetChild(int number) const ; - - inline void SetShowing(bool show); - inline bool IsUserEnabled() const; - inline bool GetTransparentBackground() const ; - - // Responds to colour changes: passes event on to children. - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Transfers data to any child controls - void OnInitDialog(wxInitDialogEvent& event); - - // Sends an OnInitDialog event, which in turns transfers data to - // to the window via validators. - virtual void InitDialog(); - - //////////////////////////////////////////////////////////////////////// - //// PROTECTED DATA -protected: - int m_windowId; - long m_windowStyle; // Store the window's style - wxEvtHandler * m_windowEventHandler; // Usually is 'this' - wxLayoutConstraints * m_constraints; // Constraints for this window - wxList * m_constraintsInvolvedIn; // List of constraints we're involved in - wxSizer * m_windowSizer; // Window's top-level sizer (if any) - wxWindow * m_sizerParent; // Window's parent sizer (if any) - bool m_autoLayout; // Whether to call Layout() in OnSize - wxWindow * m_windowParent; // Each window always knows its parent - wxValidator * m_windowValidator; - int m_minSizeX; - int m_minSizeY; - int m_maxSizeX; - int m_maxSizeY; - - // Caret data - int m_caretWidth; - int m_caretHeight; - bool m_caretEnabled; - bool m_caretShown; - wxFont m_windowFont; // Window's font - wxCursor m_windowCursor; // Window's cursor - wxString m_windowName; // Window name - - wxButton * m_defaultItem; - - wxColour m_backgroundColour ; - wxColour m_foregroundColour ; - wxColour m_defaultBackgroundColour; - wxColour m_defaultForegroundColour; - -#if wxUSE_DRAG_AND_DROP - wxDropTarget *m_pDropTarget; // the current drop target or NULL -#endif //USE_DRAG_AND_DROP - -public: - wxRegion m_updateRegion; - wxList * m_children; // Window's children - int m_returnCode; - -DECLARE_EVENT_TABLE() -}; - -//////////////////////////////////////////////////////////////////////// -//// INLINES - -inline void *wxWindow::GetHandle() const { return (void *)NULL; } -inline int wxWindow::GetId() const { return m_windowId; } -inline void wxWindow::SetId(int id) { m_windowId = id; } -inline wxWindow *wxWindow::GetParent() const { return m_windowParent; } -inline void wxWindow::SetParent(wxWindow *p) { m_windowParent = p; } -inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : NULL); } -inline wxList *wxWindow::GetChildren() const { return m_children; } -inline wxFont *wxWindow::GetFont() const { return (wxFont *) & m_windowFont; } -inline wxString wxWindow::GetName() const { return m_windowName; } -inline void wxWindow::SetName(const wxString& name) { m_windowName = name; } -inline long wxWindow::GetWindowStyleFlag() const { return m_windowStyle; } -inline void wxWindow::SetWindowStyleFlag(long flag) { m_windowStyle = flag; } -inline void wxWindow::SetDoubleClick(bool flag) { m_doubleClickAllowed = flag; } -inline bool wxWindow::GetDoubleClick() const { return m_doubleClickAllowed; } -inline void wxWindow::SetEventHandler(wxEvtHandler *handler) { m_windowEventHandler = handler; } -inline wxEvtHandler *wxWindow::GetEventHandler() const { return m_windowEventHandler; } -inline void wxWindow::SetAutoLayout(bool a) { m_autoLayout = a; } -inline bool wxWindow::GetAutoLayout() const { return m_autoLayout; } -inline wxLayoutConstraints *wxWindow::GetConstraints() const { return m_constraints; } -inline void wxWindow::SetBackgroundColour(const wxColour& col) { m_backgroundColour = col; }; -inline wxColour wxWindow::GetBackgroundColour() const { return m_backgroundColour; }; -inline void wxWindow::SetForegroundColour(const wxColour& col) { m_foregroundColour = col; }; -inline wxColour wxWindow::GetForegroundColour() const { return m_foregroundColour; }; -inline void wxWindow::SetDefaultForegroundColour(const wxColour& col) { m_defaultForegroundColour = col; }; -inline wxColour wxWindow::GetDefaultForegroundColour(void) const { return m_defaultForegroundColour; }; -inline void wxWindow::SetDefaultBackgroundColour(const wxColour& col) { m_defaultBackgroundColour = col; }; -inline wxColour wxWindow::GetDefaultBackgroundColour(void) const { return m_defaultBackgroundColour; }; - -inline wxButton *wxWindow::GetDefaultItem() const { return m_defaultItem; } -inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; } -inline bool wxWindow::IsRetained() const { return ((m_windowStyle & wxRETAINED) == wxRETAINED); } - -inline void wxWindow::SetShowing(bool show) { m_isShown = show; } -inline wxList *wxWindow::GetConstraintsInvolvedIn() const { return m_constraintsInvolvedIn; } -inline wxSizer *wxWindow::GetSizer() const { return m_windowSizer; } -inline wxWindow *wxWindow::GetSizerParent() const { return m_sizerParent; } -inline void wxWindow::SetSizerParent(wxWindow *win) { m_sizerParent = win; } -inline wxValidator *wxWindow::GetValidator() const { return m_windowValidator; } -inline bool wxWindow::IsUserEnabled() const { return m_winEnabled; } -inline bool wxWindow::GetTransparentBackground() const { return m_backgroundTransparent; } -inline void wxWindow::SetReturnCode(int retCode) { m_returnCode = retCode; } -inline int wxWindow::GetReturnCode() { return m_returnCode; } - -// Get the active window. -wxWindow* WXDLLEXPORT wxGetActiveWindow(); - -WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows; - -#endif - // _WX_WINDOW_H_ diff --git a/include/wx/radiobox.h b/include/wx/radiobox.h deleted file mode 100644 index 2f0253ddb9..0000000000 --- a/include/wx/radiobox.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_RADIOBOX_H_BASE_ -#define _WX_RADIOBOX_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/radiobox.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/radiobox.h" -#elif defined(__WXGTK__) -#include "wx/gtk/radiobox.h" -#elif defined(__WXQT__) -#include "wx/qt/radiobox.h" -#elif defined(__WXMAC__) -#include "wx/mac/radiobox.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/radiobox.h" -#endif - -#endif - // _WX_RADIOBOX_H_BASE_ diff --git a/include/wx/radiobut.h b/include/wx/radiobut.h deleted file mode 100644 index ce602dcc0f..0000000000 --- a/include/wx/radiobut.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_RADIOBUT_H_BASE_ -#define _WX_RADIOBUT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/radiobut.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/radiobut.h" -#elif defined(__WXGTK__) -#include "wx/gtk/radiobut.h" -#elif defined(__WXQT__) -#include "wx/qt/radiobut.h" -#elif defined(__WXMAC__) -#include "wx/mac/radiobut.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/radiobut.h" -#endif - -#endif - // _WX_RADIOBUT_H_BASE_ diff --git a/include/wx/region.h b/include/wx/region.h deleted file mode 100644 index 9c5afd22bc..0000000000 --- a/include/wx/region.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_REGION_H_BASE_ -#define _WX_REGION_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/region.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/region.h" -#elif defined(__WXGTK__) -#include "wx/gtk/region.h" -#elif defined(__WXQT__) -#include "wx/qt/region.h" -#elif defined(__WXMAC__) -#include "wx/mac/region.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/region.h" -#endif - -#endif - // _WX_REGION_H_BASE_ diff --git a/include/wx/resource.h b/include/wx/resource.h deleted file mode 100644 index 7e1f825e0f..0000000000 --- a/include/wx/resource.h +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: resource.h -// Purpose: Resource processing -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RESOURCEH__ -#define _WX_RESOURCEH__ - -#ifdef __GNUG__ -#pragma interface "resource.h" -#endif - -#include "wx/setup.h" - -#if wxUSE_WX_RESOURCES -#include - -// A few further types not in wx_types.h -#define wxRESOURCE_TYPE_SEPARATOR 1000 -#define wxRESOURCE_TYPE_XBM_DATA 1001 -#define wxRESOURCE_TYPE_XPM_DATA 1002 - -#define RESOURCE_PLATFORM_WINDOWS 1 -#define RESOURCE_PLATFORM_X 2 -#define RESOURCE_PLATFORM_MAC 3 -#define RESOURCE_PLATFORM_ANY 4 - -// Extended styles: for resource usage only - -// Use dialog units instead of pixels -#define wxRESOURCE_DIALOG_UNITS 1 -// Use default system colour and font -#define wxRESOURCE_USE_DEFAULTS 2 - -// Macros to help use dialog units -#define wxDLG_POINT(x, y, parent, useDlgUnits) (useDlgUnits ? parent->ConvertDialogToPixel(wxPoint(x, y)) : wxPoint(x, y)) -#define wxDLG_SIZE(x, y, parent, useDlgUnits) (useDlgUnits ? parent->ConvertDialogToPixel(wxSize(x, y)) : wxSize(x, y)) - -#ifdef FindResource -#undef FindResource -#endif - -/* - * Internal format for control/panel item - */ - -class WXDLLEXPORT wxItemResource: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxItemResource) - - public: - - wxItemResource(); - ~wxItemResource(); - - inline void SetType(const wxString& type) { m_itemType = type; } - inline void SetStyle(long styl) { m_windowStyle = styl; } - inline void SetId(int id) { m_windowId = id; } - inline void SetBitmap(const wxBitmap& bm) { m_bitmap = bm; } - inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_bitmap; } - inline void SetFont(const wxFont& font) { m_windowFont = font; } - inline wxFont& GetFont() const { return (wxFont&) m_windowFont; } - inline void SetSize(int xx, int yy, int ww, int hh) - { m_x = xx; m_y = yy; m_width = ww; m_height = hh; } - inline void SetTitle(const wxString& title) { m_title = title; } - inline void SetName(const wxString& name) { m_name = name; } - inline void SetValue1(long v) { m_value1 = v; } - inline void SetValue2(long v) { m_value2 = v; } - inline void SetValue3(long v) { m_value3 = v; } - inline void SetValue5(long v) { m_value5 = v; } - inline void SetValue4(const wxString& v) { m_value4 = v; } - inline void SetStringValues(const wxStringList& svalues) { m_stringValues = svalues; } - - inline const wxString& GetType() const { return m_itemType; } - inline int GetX() const { return m_x; } - inline int GetY() const { return m_y; } - inline int GetWidth() const { return m_width; } - inline int GetHeight() const { return m_height; } - - inline const wxString& GetTitle() const { return m_title; } - inline const wxString& GetName() const { return m_name; } - inline long GetStyle() const { return m_windowStyle; } - inline int GetId() const { return m_windowId; } - - inline long GetValue1() const { return m_value1; } - inline long GetValue2() const { return m_value2; } - inline long GetValue3() const { return m_value3; } - inline long GetValue5() const { return m_value5; } - inline wxString GetValue4() const { return m_value4; } - inline wxList& GetChildren() const { return (wxList&) m_children; } - inline wxStringList& GetStringValues() const { return (wxStringList&) m_stringValues; } - - inline void SetBackgroundColour(const wxColour& col) { m_backgroundColour = col; } - inline void SetLabelColour(const wxColour& col) { m_labelColour = col; } - inline void SetButtonColour(const wxColour& col) { m_buttonColour = col; } - - inline wxColour& GetBackgroundColour() const { return (wxColour&) m_backgroundColour; } - inline wxColour& GetLabelColour() const { return (wxColour&) m_labelColour; } - inline wxColour& GetButtonColour() const { return (wxColour&) m_buttonColour; } - - inline void SetResourceStyle(long style) { m_exStyle = style; } - inline long GetResourceStyle() const { return m_exStyle; } - - protected: - wxList m_children; - wxString m_itemType; - int m_x, m_y, m_width, m_height; - wxString m_title; - wxString m_name; - long m_windowStyle; - long m_value1, m_value2, m_value3, m_value5; - wxString m_value4; - int m_windowId; - wxStringList m_stringValues; // Optional string values - wxBitmap m_bitmap; - wxColour m_backgroundColour; - wxColour m_labelColour; - wxColour m_buttonColour; - wxFont m_windowFont; - long m_exStyle; // Extended, resource-specific styles -}; - -/* - * Resource table (normally only one of these) - */ - -class WXDLLEXPORT wxResourceTable: public wxHashTable -{ - DECLARE_DYNAMIC_CLASS(wxResourceTable) - - protected: - - public: - wxHashTable identifiers; - - wxResourceTable(); - ~wxResourceTable(); - - virtual wxItemResource *FindResource(const wxString& name) const; - virtual void AddResource(wxItemResource *item); - virtual bool DeleteResource(const wxString& name); - - virtual bool ParseResourceFile(const wxString& filename); - virtual bool ParseResourceData(const wxString& data); - virtual bool SaveResource(const wxString& filename); - - // Register XBM/XPM data - virtual bool RegisterResourceBitmapData(const wxString& name, char bits[], int width, int height); - virtual bool RegisterResourceBitmapData(const wxString& name, char **data); - - virtual wxControl *CreateItem(wxWindow *panel, const wxItemResource* childResource, const wxItemResource* parentResource) const; - - virtual void ClearTable(); -}; - -WXDLLEXPORT extern void wxInitializeResourceSystem(); -WXDLLEXPORT extern void wxCleanUpResourceSystem(); - -WXDLLEXPORT_DATA(extern wxResourceTable*) wxDefaultResourceTable; -WXDLLEXPORT extern long wxParseWindowStyle(const wxString& style); - -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxIcon; -WXDLLEXPORT extern wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern wxMenuBar* wxResourceCreateMenuBar(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL, wxMenuBar *menuBar = (wxMenuBar *) NULL); -WXDLLEXPORT extern wxMenu* wxResourceCreateMenu(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern bool wxResourceParseData(const wxString& resource, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern bool wxResourceParseFile(const wxString& filename, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern bool wxResourceParseString(char* s, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern void wxResourceClear(wxResourceTable *table = (wxResourceTable *) NULL); -// Register XBM/XPM data -WXDLLEXPORT extern bool wxResourceRegisterBitmapData(const wxString& name, char bits[], int width, int height, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern bool wxResourceRegisterBitmapData(const wxString& name, char **data, wxResourceTable *table = (wxResourceTable *) NULL); -#define wxResourceRegisterIconData wxResourceRegisterBitmapData - -/* - * Resource identifer code: #define storage - */ - -WXDLLEXPORT extern bool wxResourceAddIdentifier(const wxString& name, int value, wxResourceTable *table = (wxResourceTable *) NULL); -WXDLLEXPORT extern int wxResourceGetIdentifier(const wxString& name, wxResourceTable *table = (wxResourceTable *) NULL); - -#endif -#endif - // _WX_RESOURCEH__ diff --git a/include/wx/sashwin.h b/include/wx/sashwin.h deleted file mode 100644 index 6b46b6348f..0000000000 --- a/include/wx/sashwin.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_SASHWIN_H_BASE_ -#define _WX_SASHWIN_H_BASE_ - -#include "wx/generic/sashwin.h" - -#endif - // _WX_SASHWIN_H_BASE_ diff --git a/include/wx/sckaddr.h b/include/wx/sckaddr.h deleted file mode 100644 index 392a9d1387..0000000000 --- a/include/wx/sckaddr.h +++ /dev/null @@ -1,136 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckaddr.h -// Purpose: Network address classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 26/04/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_NETWORK_ADDRESS_H -#define _WX_NETWORK_ADDRESS_H - -#if defined(__WINDOWS__) && defined(WXSOCK_INTERNAL) -#include - -#elif defined(__UNIX__) && defined(WXSOCK_INTERNAL) - -#include -#include -#include -#endif - -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WXPREC -#include -#else -#include -#endif - -class WXDLLEXPORT wxSockAddress : public wxObject { - DECLARE_ABSTRACT_CLASS(wxSockAddress) -public: - typedef enum { IPV4=1, IPV6=2, UNIX=3 } Addr; - - wxSockAddress() {}; - virtual ~wxSockAddress() {}; - - virtual void Clear() = 0; - - virtual void Build(struct sockaddr*& addr, size_t& len) = 0; - virtual void Disassemble(struct sockaddr *addr, size_t len) = 0; - virtual int SockAddrLen() = 0; - - virtual int GetFamily() = 0; - virtual int Type() = 0; -}; - -class WXDLLEXPORT wxIPV4address : public wxSockAddress { - DECLARE_DYNAMIC_CLASS(wxIPV4address) -private: - struct sockaddr_in *m_addr; -public: - wxIPV4address(); - virtual ~wxIPV4address(); - - virtual void Clear(); -// const wxSockAddress& operator =(const wxSockAddress& addr); - - virtual bool Hostname(const wxString& name); - virtual bool Hostname(unsigned long addr); - virtual bool Service(const wxString& name); - virtual bool Service(unsigned short port); - virtual bool LocalHost(); - - wxString Hostname(); - unsigned short Service(); - - void Build(struct sockaddr*& addr, size_t& len); - void Disassemble(struct sockaddr *addr, size_t len); - - inline int SockAddrLen(); - inline int GetFamily(); - inline int Type() { return wxSockAddress::IPV4; } -}; - -#ifdef ENABLE_IPV6 -class WXDLLEXPORT wxIPV6address : public wxSockAddress { - DECLARE_DYNAMIC_CLASS(wxIPV6address) -private: - struct sockaddr_in6 *m_addr; -public: - wxIPV6address(); - ~wxIPV6address(); - - void Clear(); -// const wxSockAddress& operator =(const wxSockAddress& addr); - - bool Hostname(const wxString& name); - bool Hostname(unsigned char addr[16]); - bool Service(const wxString& name); - bool Service(unsigned short port); - bool LocalHost(); - - wxString Hostname() const; - unsigned short Service() const; - - void Build(struct sockaddr*& addr, size_t& len); - void Disassemble(struct sockaddr *addr, size_t len); - - inline int SockAddrLen(); - inline int GetFamily(); - inline int Type() { return wxSockAddress::IPV6; } -}; -#endif - -#ifdef __UNIX__ -#include - -class WXDLLEXPORT wxUNIXaddress : public wxSockAddress { - DECLARE_DYNAMIC_CLASS(wxUNIXaddress) -private: - struct sockaddr_un *m_addr; -public: - wxUNIXaddress(); - ~wxUNIXaddress(); - - void Clear(); -// const wxSockAddress& operator =(const wxSockAddress& addr); - - void Filename(const wxString& name); - wxString Filename(); - - void Build(struct sockaddr*& addr, size_t& len); - void Disassemble(struct sockaddr *addr, size_t len); - - inline int SockAddrLen(); - inline int GetFamily(); - inline int Type() { return wxSockAddress::UNIX; } -}; -#endif - -#endif diff --git a/include/wx/sckint.h b/include/wx/sckint.h deleted file mode 100644 index 3fec426a7a..0000000000 --- a/include/wx/sckint.h +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckint.h -// Purpose: Socket internal classes -// Author: Guilhem Lavaux -// Modified by: -// Created: April 1999 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_NETWORK_SOCKET_INT_H -#define _WX_NETWORK_SOCKET_INT_H - -#ifdef __GNUG__ -#pragma interface -#endif - -#if wxUSE_SOCKETS - -#include -#include -#include -#include - -// Socket state -class SocketState -{ - public: - // TRUE if the background notifyier is on. - bool notify_state; - // Specifies which events we want to be notified. - wxSocketBase::wxRequestNotify evt_notify_state; - // Socket flags. - wxSocketBase::wxSockFlags socket_flags; - // Pointer to the C callback function. - wxSocketBase::wxSockCbk c_callback; - char *c_callback_data; -}; - -// Socket request -class SockRequest -{ - public: - // Buffer where to get/put data. - char *buffer; - // Size of the buffer. - size_t size; - // Number of bytes really read/written. - size_t io_nbytes; - // Error. - unsigned int error; - // Type of the request. - wxSocketBase::wxRequestNotify type; - // Timeout (in milliseconds). - unsigned int timeout; - // TRUE if the buffer has been processed. - bool done; - // TRUE if we must wait for the request completion, in the other case an - // event will be sent to the main thread when the request is finished. - bool wait; -}; - -class wxSocketInternal; - -#if wxUSE_THREADS -class SocketWaiter: public wxThread { - public: - SocketWaiter(wxSocketBase *socket, wxSocketInternal *internal); - ~SocketWaiter(); - - // Thread Entry point - // --- - virtual void *Entry(); - - protected: - void ProcessReadEvent(); - void ProcessWriteEvent(); - - public: - wxSocketBase *m_socket; - wxSocketInternal *m_internal; - int m_fd; -}; - -class SocketRequester -#if wxUSE_THREADS - : public wxThread -#endif - { - public: - SocketRequester(wxSocketBase *socket, wxSocketInternal *internal); - ~SocketRequester(); - - void ProcessWaitEvent(SockRequest *req); - void ProcessReadEvent(SockRequest *req); - void ProcessWriteEvent(SockRequest *req); - - bool WaitFor(wxSocketBase::wxRequestNotify req, int millisec); - - // Thread Entry point - // --- - virtual void *Entry(); - - public: - wxSocketBase *m_socket; - wxSocketInternal *m_internal; - int m_fd; -}; -#endif - // wxUSE_THREADS - -class wxSocketInternal { - public: - wxSocketInternal(wxSocketBase *socket); - ~wxSocketInternal(); - - // wxSocket thread manager - // ----------------------- - void AcquireData(); - void ReleaseData(); - void AcquireFD(); - void ReleaseFD(); - - int GetFD() { return m_fd; } - void SetFD(int fd) { m_fd = fd; } - - void ResumeWaiter(); - void StopWaiter(); - void ResumeRequester(); - void StopRequester(); - - void QueueRequest(SockRequest *request, bool async); - void WaitForEnd(SockRequest *request); - - SockRequest *WaitForReq(); - void EndRequest(SockRequest *req); - public: - wxSocketBase *m_socket; -#if wxUSE_THREADS - wxMutex m_socket_locker, m_fd_locker, m_request_locker, m_end_requester; - wxCondition m_socket_cond; - SocketWaiter *m_thread_waiter; -#endif - SocketRequester *m_thread_requester; - wxList m_requests; - int m_fd; - bool m_invalid_requester; -}; - -#endif - // wxUSE_SOCKETS - -#endif - // _WX_NETWORK_SOCKET_INT_H diff --git a/include/wx/sckipc.h b/include/wx/sckipc.h deleted file mode 100644 index ef78d5f866..0000000000 --- a/include/wx/sckipc.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckipc.h -// Purpose: Interprocess communication -// Author: Julian Smart/Guilhem Lavaux (big rewrite) -// Modified by: Guilhem Lavaux 1997 -// Created: 1993 -// RCS-ID: $Id$ -// Copyright: (c) 1993 Julian Smart -// (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_SCKIPC_H -#define _WX_SCKIPC_H - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/setup.h" -#include "wx/ipcbase.h" -#include "wx/socket.h" -#include "wx/sckstrm.h" -#include "wx/datstrm.h" - -/* - * Mini-DDE implementation - - Most transactions involve a topic name and an item name (choose these - as befits your application). - - A client can: - - - ask the server to execute commands (data) associated with a topic - - request data from server by topic and item - - poke data into the server - - ask the server to start an advice loop on topic/item - - ask the server to stop an advice loop - - A server can: - - - respond to execute, request, poke and advice start/stop - - send advise data to client - - Note that this limits the server in the ways it can send data to the - client, i.e. it can't send unsolicited information. - * - */ - -class wxTCPServer; -class wxTCPClient; -class wxTCPConnection: public wxConnectionBase -{ - DECLARE_DYNAMIC_CLASS(wxTCPConnection) - -protected: - wxSocketBase *m_sock; - wxSocketStream *m_sockstrm; - wxDataInputStream *m_codeci; - wxDataOutputStream *m_codeco; - wxString m_topic; - - friend class wxTCPServer; - friend class wxTCPClient; - friend void Client_OnRequest(wxSocketBase&, - wxSocketBase::wxRequestEvent, char *); - friend void Server_OnRequest(wxSocketServer&, - wxSocketBase::wxRequestEvent, char *); -public: - - wxTCPConnection(char *buffer, int size); - wxTCPConnection(); - virtual ~wxTCPConnection(); - - // Calls that CLIENT can make - bool Execute(wxChar *data, int size = -1, - wxIPCFormat format = wxIPC_TEXT); - char *Request(const wxString& item, int *size = NULL, - wxIPCFormat format = wxIPC_TEXT); - bool Poke(const wxString& item, wxChar *data, int size = -1, - wxIPCFormat format = wxIPC_TEXT); - bool StartAdvise(const wxString& item); - bool StopAdvise(const wxString& item); - - // Calls that SERVER can make - bool Advise(const wxString& item, wxChar *data, int size = -1, - wxIPCFormat format = wxIPC_TEXT); - - // Calls that both can make - bool Disconnect(); - - // Called when we lost the peer. - bool OnDisconnect() { return TRUE; } - - // To enable the compressor - void Compress(bool on); -}; - -class wxTCPServer: public wxServerBase -{ - DECLARE_DYNAMIC_CLASS(wxTCPServer) - -public: - wxTCPConnection *topLevelConnection; - - wxTCPServer(); - virtual ~wxTCPServer(); - - // Returns FALSE if can't create server (e.g. port number is already in use) - virtual bool Create(const wxString& server_name); - virtual wxConnectionBase *OnAcceptConnection(const wxString& topic); -}; - -class wxTCPClient: public wxClientBase -{ - DECLARE_DYNAMIC_CLASS(wxTCPClient) - -public: - wxTCPClient(); - virtual ~wxTCPClient(); - - virtual bool ValidHost(const wxString& host); - // Call this to make a connection. - // Returns NULL if cannot. - virtual wxConnectionBase *MakeConnection(const wxString& host, - const wxString& server, - const wxString& topic); - - // Tailor this to return own connection. - virtual wxConnectionBase *OnMakeConnection(); -}; - -#endif // ipcsock.h diff --git a/include/wx/sckstrm.h b/include/wx/sckstrm.h deleted file mode 100644 index 57484b17fc..0000000000 --- a/include/wx/sckstrm.h +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckstrm.h -// Purpose: wxSocket*Stream -// Author: Guilhem Lavaux -// Modified by: -// Created: 17/07/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef __SCK_STREAM_H__ -#define __SCK_STREAM_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/stream.h" -#include "wx/socket.h" - -class WXDLLEXPORT wxSocketOutputStream : public wxOutputStream -{ - public: - wxSocketOutputStream(wxSocketBase& s); - ~wxSocketOutputStream(); - - wxOutputStream& Write(const void *buffer, size_t size); - off_t SeekO( off_t WXUNUSED(pos), wxSeekMode WXUNUSED(mode) ) - { return -1; } - off_t TellO() - { return -1; } - - protected: - wxSocketBase *m_o_socket; - - size_t OnSysWrite(const void *buffer, size_t bufsize); -}; - -class WXDLLEXPORT wxSocketInputStream : public wxInputStream -{ - public: - wxSocketInputStream(wxSocketBase& s); - ~wxSocketInputStream(); - - wxInputStream& Read(void *buffer, size_t size); - off_t SeekI( off_t WXUNUSED(pos), wxSeekMode WXUNUSED(mode) ) - { return -1; } - off_t TellI() - { return -1; } - - protected: - wxSocketBase *m_i_socket; - - size_t OnSysRead(void *buffer, size_t bufsize); -}; - -class WXDLLEXPORT wxSocketStream : public wxSocketInputStream, - public wxSocketOutputStream -{ - public: - wxSocketStream(wxSocketBase& s); - ~wxSocketStream(); -}; - -#endif diff --git a/include/wx/scrolbar.h b/include/wx/scrolbar.h deleted file mode 100644 index 49f9a11b05..0000000000 --- a/include/wx/scrolbar.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_SCROLBAR_H_BASE_ -#define _WX_SCROLBAR_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/scrolbar.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/scrolbar.h" -#elif defined(__WXGTK__) -#include "wx/gtk/scrolbar.h" -#elif defined(__WXQT__) -#include "wx/qt/scrolbar.h" -#elif defined(__WXMAC__) -#include "wx/mac/scrolbar.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/scrolbar.h" -#endif - -#endif - // _WX_SCROLBAR_H_BASE_ diff --git a/include/wx/scrolwin.h b/include/wx/scrolwin.h deleted file mode 100644 index 44298184bb..0000000000 --- a/include/wx/scrolwin.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_SCROLWIN_H_BASE_ -#define _WX_SCROLWIN_H_BASE_ - -#include "wx/generic/scrolwin.h" - -#endif - // _WX_SCROLWIN_H_BASE_ diff --git a/include/wx/serbase.h b/include/wx/serbase.h deleted file mode 100644 index 2b22998a44..0000000000 --- a/include/wx/serbase.h +++ /dev/null @@ -1,67 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serbase.h -// Purpose: Serialization plug-ins -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_WX_SERBASEH_H__ -#define _WX_WX_SERBASEH_H__ - -#include -#include - -#define WXSERIAL(classname) classname##_Serialize - -#if wxUSE_SERIAL -class wxObject_Serialize : public wxObject { - DECLARE_DYNAMIC_CLASS(wxObject_Serialize) - public: - wxObject_Serialize() {} - virtual ~wxObject_Serialize() {} - - void SetObject(wxObject *obj) { m_object = obj; } - wxObject *Object() { return m_object; } - - protected: - wxObject *m_object; -}; -#endif - // wxUSE_SERIAL - - -#define DECLARE_SERIAL_CLASS(classname, parent) \ -class WXSERIAL(classname) : public WXSERIAL(parent) { \ - DECLARE_DYNAMIC_CLASS(classname##_Serialize) \ - public: \ - WXSERIAL(classname)() { } \ - virtual ~WXSERIAL(classname)() { } \ -\ - virtual void StoreObject(wxObjectOutputStream& stream); \ - virtual void LoadObject(wxObjectInputStream& stream); \ -}; - -#define DECLARE_ALIAS_SERIAL_CLASS(classname, parent) \ -class WXSERIAL(classname) : public WXSERIAL(parent) { \ - DECLARE_DYNAMIC_CLASS(classname##_Serialize) \ - public: \ - WXSERIAL(classname)() { } \ - virtual ~WXSERIAL(classname)() { } \ -}; - -#define IMPLEMENT_SERIAL_CLASS(classname, parent) \ -IMPLEMENT_DYNAMIC_CLASS(classname##_Serialize, parent##_Serialize) - -#define IMPLEMENT_ALIAS_SERIAL_CLASS(classname, parent) \ -IMPLEMENT_DYNAMIC_CLASS(classname##_Serialize, parent##_Serialize) - -#if wxUSE_SERIAL -DECLARE_SERIAL_CLASS(wxList, wxObject) -DECLARE_SERIAL_CLASS(wxHashTable, wxObject) -#endif - // wxUSE_SERIAL - -#endif diff --git a/include/wx/settings.h b/include/wx/settings.h deleted file mode 100644 index 1dfc5d9280..0000000000 --- a/include/wx/settings.h +++ /dev/null @@ -1,123 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: wxSystemSettings defines; includes platform settings.h -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_BASE_ -#define _WX_SETTINGS_H_BASE_ - -#define wxSYS_WHITE_BRUSH 0 -#define wxSYS_LTGRAY_BRUSH 1 -#define wxSYS_GRAY_BRUSH 2 -#define wxSYS_DKGRAY_BRUSH 3 -#define wxSYS_BLACK_BRUSH 4 -#define wxSYS_NULL_BRUSH 5 -#define wxSYS_HOLLOW_BRUSH wxSYS_NULL_BRUSH -#define wxSYS_WHITE_PEN 6 -#define wxSYS_BLACK_PEN 7 -#define wxSYS_NULL_PEN 8 -#define wxSYS_OEM_FIXED_FONT 10 -#define wxSYS_ANSI_FIXED_FONT 11 -#define wxSYS_ANSI_VAR_FONT 12 -#define wxSYS_SYSTEM_FONT 13 -#define wxSYS_DEVICE_DEFAULT_FONT 14 -#define wxSYS_DEFAULT_PALETTE 15 -#define wxSYS_SYSTEM_FIXED_FONT 16 -#define wxSYS_DEFAULT_GUI_FONT 17 - -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT - -// Metrics -#define wxSYS_MOUSE_BUTTONS 1 -#define wxSYS_BORDER_X 2 -#define wxSYS_BORDER_Y 3 -#define wxSYS_CURSOR_X 4 -#define wxSYS_CURSOR_Y 5 -#define wxSYS_DCLICK_X 6 -#define wxSYS_DCLICK_Y 7 -#define wxSYS_DRAG_X 8 -#define wxSYS_DRAG_Y 9 -#define wxSYS_EDGE_X 10 -#define wxSYS_EDGE_Y 11 -#define wxSYS_HSCROLL_ARROW_X 12 -#define wxSYS_HSCROLL_ARROW_Y 13 -#define wxSYS_HTHUMB_X 14 -#define wxSYS_ICON_X 15 -#define wxSYS_ICON_Y 16 -#define wxSYS_ICONSPACING_X 17 -#define wxSYS_ICONSPACING_Y 18 -#define wxSYS_WINDOWMIN_X 19 -#define wxSYS_WINDOWMIN_Y 20 -#define wxSYS_SCREEN_X 21 -#define wxSYS_SCREEN_Y 22 -#define wxSYS_FRAMESIZE_X 23 -#define wxSYS_FRAMESIZE_Y 24 -#define wxSYS_SMALLICON_X 25 -#define wxSYS_SMALLICON_Y 26 -#define wxSYS_HSCROLL_Y 27 -#define wxSYS_VSCROLL_X 28 -#define wxSYS_VSCROLL_ARROW_X 29 -#define wxSYS_VSCROLL_ARROW_Y 30 -#define wxSYS_VTHUMB_Y 31 -#define wxSYS_CAPTION_Y 32 -#define wxSYS_MENU_Y 33 -#define wxSYS_NETWORK_PRESENT 34 -#define wxSYS_PENWINDOWS_PRESENT 35 -#define wxSYS_SHOW_SOUNDS 36 -#define wxSYS_SWAP_BUTTONS 37 - -#if defined(__WXMSW__) -#include "wx/msw/settings.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/settings.h" -#elif defined(__WXGTK__) -#include "wx/gtk/settings.h" -#elif defined(__WXQT__) -#include "wx/qt/settings.h" -#elif defined(__WXMAC__) -#include "wx/mac/settings.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/settings.h" -#endif - -#endif - // _WX_SETTINGS_H_BASE_ - diff --git a/include/wx/setup.h b/include/wx/setup.h deleted file mode 100644 index 54936598ae..0000000000 --- a/include/wx/setup.h +++ /dev/null @@ -1,26 +0,0 @@ - -#ifndef _WX_SETUP_H_BASE_ -#define _WX_SETUP_H_BASE_ - -/* compatibility code, to be removed asap: */ - -#if !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXMOTIF__) && !defined(__WXQT__) && !defined(__WXSTUBS__) && !defined(__WXMAC__) -# error No __WXxxx__ define set! Please define one of __WXGTK__,__WXMSW__,__WXMOTIF__,__WXMAC__,__WXQT__,__WXSTUBS__ -#endif - -#if defined(__WXMSW__) -#include "wx/msw/setup.h" -#elif defined(__WXMAC__) -#include "wx/mac/setup.h" -#elif defined(__WXQT__) -#include "wx/qt/setup.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/setup.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/setup.h" -#elif defined(__WXGTK__) -#include "wx/gtk/setup.h" -#endif - -#endif - /* _WX_SETUP_H_BASE_ */ diff --git a/include/wx/slider.h b/include/wx/slider.h deleted file mode 100644 index 739a311aa5..0000000000 --- a/include/wx/slider.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_SLIDER_H_BASE_ -#define _WX_SLIDER_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/slider.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/slider.h" -#elif defined(__WXGTK__) -#include "wx/gtk/slider.h" -#elif defined(__WXQT__) -#include "wx/qt/slider.h" -#elif defined(__WXMAC__) -#include "wx/mac/slider.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/slider.h" -#endif - -#endif - // _WX_SLIDER_H_BASE_ diff --git a/include/wx/socket.h b/include/wx/socket.h deleted file mode 100644 index ef410dbc30..0000000000 --- a/include/wx/socket.h +++ /dev/null @@ -1,280 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: socket.h -// Purpose: Socket handling classes -// Author: Guilhem Lavaux -// Modified by: -// Created: April 1997 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NETWORK_SOCKET_H -#define _WX_NETWORK_SOCKET_H - -#ifdef __GNUG__ -#pragma interface "socket.h" -#endif - -// --------------------------------------------------------------------------- -// Windows(tm) specific -// --------------------------------------------------------------------------- -#if defined(__WINDOWS__) && defined(WXSOCK_INTERNAL) -#include -#include -#endif // defined(__WINDOWS__) && defined(WXSOCK_INTERNAL) - -// --------------------------------------------------------------------------- -// Unix specific -// --------------------------------------------------------------------------- -#if defined(__UNIX__) && defined(WXSOCK_INTERNAL) -#include -#include -#include -#endif // defined(__UNIX__) && defined(WXSOCK_INTERNAL) - -// --------------------------------------------------------------------------- -// wxSocket headers (generic) -// --------------------------------------------------------------------------- -#ifdef WXPREC -#include -#else -#include -#endif -#include "wx/sckaddr.h" - -class WXDLLEXPORT wxSocketEvent; -class WXDLLEXPORT wxSocketHandler; -class wxSocketInternal; -class WXDLLEXPORT wxSocketBase : public wxEvtHandler -{ - DECLARE_CLASS(wxSocketBase) -#ifdef __WXMAC__ - friend void wxMacSocketOnRequestProc(void *refcon , short event) ; -#endif -public: - - enum wxSockFlags { NONE=0, NOWAIT=1, WAITALL=2, SPEED=4 }; - // Type of request - enum { REQ_READ=0x1, REQ_PEEK=0x2, REQ_WRITE=0x4, REQ_LOST=0x8, - REQ_ACCEPT=0x10, REQ_CONNECT=0x20, REQ_WAIT=0x40}; - enum { EVT_READ=0, EVT_PEEK=1, EVT_WRITE=2, EVT_LOST=3, EVT_ACCEPT=4, - EVT_CONNECT=5 }; - - typedef int wxRequestNotify; - typedef int wxRequestEvent; - enum wxSockType { SOCK_CLIENT, SOCK_SERVER, SOCK_INTERNAL, SOCK_UNINIT }; - typedef void (*wxSockCbk)(wxSocketBase& sock,wxRequestEvent evt,char *cdata); - -protected: - wxSockFlags m_flags; - wxSockType m_type; // wxSocket type - bool m_connected, m_connecting; // State of the socket - int m_fd; // Socket file descriptors - wxList m_states; // States list - int m_id; // Socket id (for event handler) - wxSocketHandler *m_handler; // the current socket handler - wxRequestNotify m_neededreq; // Specify which requet signals we need - unsigned long m_timeout; - size_t m_lcount; // Last IO request size - int m_error; // Last IO error - wxSocketInternal *m_internal; - char *m_unread; // Pushback buffer - size_t m_unrd_size; // Pushback buffer size - wxSockCbk m_cbk; - char *m_cdata; - bool m_notify_state; - -public: - wxSocketBase(); - virtual ~wxSocketBase(); - virtual bool Close(); - - // Base IO - wxSocketBase& Peek(char* buffer, size_t nbytes); - wxSocketBase& Read(char* buffer, size_t nbytes); - wxSocketBase& Write(const char *buffer, size_t nbytes); - wxSocketBase& Unread(const char *buffer, size_t nbytes); - wxSocketBase& ReadMsg(char *buffer, size_t nbytes); - wxSocketBase& WriteMsg(const char *buffer, size_t nbytes); - void Discard(); - - // Try not to use this two methods (they sould be protected) - void CreatePushbackAfter(const char *buffer, size_t size); - void CreatePushbackBefore(const char *buffer, size_t size); - - // Status - inline bool Ok() const { return (m_fd < 0 ? 0 : 1); }; - inline bool Error() const { return (m_error != 0); }; - inline bool IsConnected() const { return m_connected; }; - inline bool IsDisconnected() const { return !IsConnected(); }; - inline bool IsNoWait() const { return m_flags & NOWAIT; }; - bool IsData() const; - inline size_t LastCount() const { return m_lcount; } - inline int LastError() const { return m_error; } - inline wxSockType GetType() const { return m_type; } - - void SetFlags(wxSockFlags _flags); - wxSockFlags GetFlags() const; - inline void SetTimeout(unsigned long sec) { m_timeout = sec; } - - // seconds = -1 means infinite wait - // seconds = 0 means no wait - // seconds > 0 means specified wait - bool Wait(long seconds = -1, long microseconds = 0); - bool WaitForRead(long seconds = -1, long microseconds = 0); - bool WaitForWrite(long seconds = -1, long microseconds = 0); - bool WaitForLost(long seconds = -1, long microseconds = 0); - - // Save the current state of Socket - void SaveState(); - void RestoreState(); - - // Setup external callback - wxSockCbk Callback(wxSockCbk cbk_); - char *CallbackData(char *data); - - // Setup event handler - void SetEventHandler(wxEvtHandler& evt_hdlr, int id = -1); - - // Method called when it happens something on the socket - void SetNotify(wxRequestNotify flags); - virtual void OnRequest(wxRequestEvent req_evt); - - // Public internal callback - virtual void OldOnNotify(wxRequestEvent WXUNUSED(evt)); - - // Some info on the socket... - virtual bool GetPeer(wxSockAddress& addr_man) const; - virtual bool GetLocal(wxSockAddress& addr_man) const; - - // Install or uninstall callbacks - void Notify(bool notify); - - // So you can know what the socket driver is looking for ... - inline wxRequestNotify NeededReq() const { return m_neededreq; } - - static wxRequestNotify EventToNotify(wxRequestEvent evt); - -protected: - friend class wxSocketServer; - friend class wxSocketHandler; - friend class wxSocketInternal; - -#ifdef __SALFORDC__ -public: -#endif - - wxSocketBase(wxSockFlags flags, wxSockType type); - -#ifdef __SALFORDC__ -protected: -#endif - - bool _Wait(long seconds, long microseconds, int type); - - // Set "my" handler - inline virtual void SetHandler(wxSocketHandler *handler) - { m_handler = handler; } - - // Pushback library - size_t GetPushback(char *buffer, size_t size, bool peek); - - // To prevent many read or write on the same socket at the same time - // ==> cause strange things :-) - void WantSpeedBuffer(char *buffer, size_t size, wxRequestEvent req); - void WantBuffer(char *buffer, size_t size, wxRequestEvent req); -}; - -//////////////////////////////////////////////////////////////////////// - -class WXDLLEXPORT wxSocketServer : public wxSocketBase -{ - DECLARE_CLASS(wxSocketServer) -public: - - // 'service' can be a name or a port-number - - wxSocketServer(wxSockAddress& addr_man, wxSockFlags flags = wxSocketBase::NONE); - - wxSocketBase* Accept(); - bool AcceptWith(wxSocketBase& sock); -}; - -//////////////////////////////////////////////////////////////////////// - -class WXDLLEXPORT wxSocketClient : public wxSocketBase -{ - DECLARE_CLASS(wxSocketClient) -public: - - wxSocketClient(wxSockFlags flags = wxSocketBase::NONE); - virtual ~wxSocketClient(); - - virtual bool Connect(wxSockAddress& addr_man, bool wait = TRUE); - - bool WaitOnConnect(long seconds = -1, long microseconds = 0); - - virtual void OnRequest(wxRequestEvent flags); -}; - -//////////////////////////////////////////////////////////////////////// - -class WXDLLEXPORT wxSocketHandler : public wxObject -{ - DECLARE_CLASS(wxSocketHandler) -protected: - wxList *socks; - -public: - enum SockStatus { SOCK_NONE, SOCK_DATA, SOCK_CONNECT, SOCK_DISCONNECT, - SOCK_ERROR }; - static wxSocketHandler *master; - - wxSocketHandler(); - virtual ~wxSocketHandler(); - - void Register(wxSocketBase* sock); - void UnRegister(wxSocketBase* sock); - - unsigned long Count() const; - - // seconds = -1 means indefinite wait - // seconds = 0 means no wait - // seconds > 0 means specified wait - - int Wait(long seconds = -1, long microseconds = 0); - void YieldSock(); - - wxSocketServer *CreateServer - (wxSockAddress& addr, - wxSocketBase::wxSockFlags flags = wxSocketBase::NONE); - wxSocketClient *CreateClient - (wxSocketBase::wxSockFlags flags = wxSocketBase::NONE); - - // Create or reuse a socket handler - static wxSocketHandler& Master() { return *master; } -}; - -class WXDLLEXPORT wxSocketEvent : public wxEvent { - DECLARE_DYNAMIC_CLASS(wxSocketEvent) -public: - wxSocketEvent(int id = 0); - - wxSocketBase::wxRequestEvent SocketEvent() const { return m_skevt; } - wxSocketBase *Socket() const { return m_socket; } - - void CopyObject(wxObject& obj_d) const; - -public: - wxSocketBase::wxRequestEvent m_skevt; - wxSocketBase *m_socket; -}; - -typedef void (wxEvtHandler::*wxSocketEventFunction)(wxSocketEvent&); - -#define EVT_SOCKET(id, func) { wxEVT_SOCKET, id, -1, \ - (wxObjectEventFunction) (wxEventFunction) (wxSocketEventFunction) & func, \ - (wxObject *) NULL }, - -#endif diff --git a/include/wx/spinbutt.h b/include/wx/spinbutt.h deleted file mode 100644 index 7d1c5c3806..0000000000 --- a/include/wx/spinbutt.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_SPINBUTT_H_BASE_ -#define _WX_SPINBUTT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/spinbutt.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/spinbutt.h" -#elif defined(__WXGTK__) -#include "wx/gtk/spinbutt.h" -#elif defined(__WXQT__) -#include "wx/qt/spinbutt.h" -#elif defined(__WXMAC__) -#include "wx/mac/spinbutt.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/spinbutt.h" -#endif - -#endif - // _WX_SPINBUTT_H_BASE_ diff --git a/include/wx/splitter.h b/include/wx/splitter.h deleted file mode 100644 index 0a5232403b..0000000000 --- a/include/wx/splitter.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_SPLITTER_H_BASE_ -#define _WX_SPLITTER_H_BASE_ - -#include "wx/generic/splitter.h" - -#endif - // _WX_SPLITTER_H_BASE_ diff --git a/include/wx/statbmp.h b/include/wx/statbmp.h deleted file mode 100644 index 0f32d687a3..0000000000 --- a/include/wx/statbmp.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_STATBMP_H_BASE_ -#define _WX_STATBMP_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/statbmp.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/statbmp.h" -#elif defined(__WXGTK__) -#include "wx/gtk/statbmp.h" -#elif defined(__WXQT__) -#include "wx/qt/statbmp.h" -#elif defined(__WXMAC__) -#include "wx/mac/statbmp.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/statbmp.h" -#endif - -#endif - // _WX_STATBMP_H_BASE_ diff --git a/include/wx/statbox.h b/include/wx/statbox.h deleted file mode 100644 index f1a8bd6eea..0000000000 --- a/include/wx/statbox.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_STATBOX_H_BASE_ -#define _WX_STATBOX_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/statbox.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/statbox.h" -#elif defined(__WXGTK__) -#include "wx/gtk/statbox.h" -#elif defined(__WXQT__) -#include "wx/qt/statbox.h" -#elif defined(__WXMAC__) -#include "wx/mac/statbox.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/statbox.h" -#endif - -#endif - // _WX_STATBOX_H_BASE_ diff --git a/include/wx/statline.h b/include/wx/statline.h deleted file mode 100644 index d7e2de31b4..0000000000 --- a/include/wx/statline.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_STATLINE_H_BASE_ -#define _WX_STATLINE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/statline.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/statline.h" -#elif defined(__WXGTK__) -#include "wx/gtk/statline.h" -#elif defined(__WXQT__) -#include "wx/qt/statline.h" -#elif defined(__WXMAC__) -#include "wx/mac/statline.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/statline.h" -#endif - -#endif - // _WX_STATLINE_H_BASE_ diff --git a/include/wx/stattext.h b/include/wx/stattext.h deleted file mode 100644 index abfbbd5be6..0000000000 --- a/include/wx/stattext.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_STATTEXT_H_BASE_ -#define _WX_STATTEXT_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/stattext.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/stattext.h" -#elif defined(__WXGTK__) -#include "wx/gtk/stattext.h" -#elif defined(__WXQT__) -#include "wx/qt/stattext.h" -#elif defined(__WXMAC__) -#include "wx/mac/stattext.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/stattext.h" -#endif - -#endif - // _WX_STATTEXT_H_BASE_ diff --git a/include/wx/statusbr.h b/include/wx/statusbr.h deleted file mode 100644 index 327238fbd2..0000000000 --- a/include/wx/statusbr.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_STATUSBR_H_BASE_ -#define _WX_STATUSBR_H_BASE_ - -#include "wx/generic/statusbr.h" - -#endif - // _WX_STATUSBR_H_BASE_ diff --git a/include/wx/stream.h b/include/wx/stream.h deleted file mode 100644 index c9d0bb7b84..0000000000 --- a/include/wx/stream.h +++ /dev/null @@ -1,261 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stream.h -// Purpose: "wxWindows stream" base classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXSTREAM_H__ -#define _WX_WXSTREAM_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include "wx/object.h" -#include "wx/string.h" -#include "wx/filefn.h" // for off_t, wxInvalidOffset and wxSeekMode - -class WXDLLEXPORT wxStreamBase; -class WXDLLEXPORT wxInputStream; -class WXDLLEXPORT wxOutputStream; - -typedef wxInputStream& (*__wxInputManip)(wxInputStream&); -typedef wxOutputStream& (*__wxOutputManip)(wxOutputStream&); - -WXDLLEXPORT wxOutputStream& wxEndL(wxOutputStream& o_stream); - -// --------------------------------------------------------------------------- -// Stream buffer -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxStreamBuffer { - public: - typedef enum { - read = 0, write, read_write - } BufMode; - - // ----------- - // ctor & dtor - // ----------- - wxStreamBuffer(wxStreamBase& stream, BufMode mode); - wxStreamBuffer(BufMode mode); - wxStreamBuffer(const wxStreamBuffer& buf); - ~wxStreamBuffer(); - - // ----------- - // Filtered IO - // ----------- - size_t Read(void *buffer, size_t size); - size_t Read(wxStreamBuffer *buf); - size_t Write(const void *buffer, size_t size); - size_t Write(wxStreamBuffer *buf); - - size_t WriteBack(const char *buffer, size_t size); - bool WriteBack(char c); - char GetChar(); - void PutChar(char c); - off_t Tell() const; - off_t Seek(off_t pos, wxSeekMode mode); - - // -------------- - // Buffer control - // -------------- - void ResetBuffer(); - void SetBufferIO(char *buffer_start, char *buffer_end); - void SetBufferIO(size_t bufsize); - char *GetBufferStart() const { return m_buffer_start; } - char *GetBufferEnd() const { return m_buffer_end; } - char *GetBufferPos() const { return m_buffer_pos; } - off_t GetIntPosition() const { return m_buffer_pos-m_buffer_start; } - void SetIntPosition(off_t pos) { m_buffer_pos = m_buffer_start+pos; } - size_t GetLastAccess() const { return m_buffer_end-m_buffer_start; } - - void Fixed(bool fixed) { m_fixed = fixed; } - void Flushable(bool f) { m_flushable = f; } - - bool FlushBuffer(); - bool FillBuffer(); - size_t GetDataLeft(); - - // -------------- - // Administration - // -------------- - wxStreamBase *Stream() { return m_stream; } - - protected: - char *AllocSpaceWBack(size_t needed_size); - size_t GetWBack(char *buf, size_t bsize); - - void GetFromBuffer(void *buffer, size_t size); - void PutToBuffer(const void *buffer, size_t size); - - protected: - char *m_buffer_start, *m_buffer_end, *m_buffer_pos; - size_t m_buffer_size; - - char *m_wback; - size_t m_wbacksize, m_wbackcur; - - bool m_fixed, m_flushable; - - wxStreamBase *m_stream; - BufMode m_mode; - bool m_destroybuf, m_destroystream; -}; - -// --------------------------------------------------------------------------- -// wxStream: base classes -// --------------------------------------------------------------------------- - -typedef enum { - wxStream_NOERROR = 0, - wxStream_EOF, - wxStream_WRITE_ERR, - wxStream_READ_ERR -} wxStreamError; - -class WXDLLEXPORT wxStreamBase { - public: - wxStreamBase(); - virtual ~wxStreamBase(); - - wxStreamError LastError() const { return m_lasterror; } - virtual size_t StreamSize() const { return ~((size_t)0); } - - protected: - friend class wxStreamBuffer; - - virtual size_t OnSysRead(void *buffer, size_t bufsize); - virtual size_t OnSysWrite(const void *buffer, size_t bufsize); - virtual off_t OnSysSeek(off_t seek, wxSeekMode mode); - virtual off_t OnSysTell() const; - - protected: - size_t m_lastcount; - wxStreamError m_lasterror; -}; - -class WXDLLEXPORT wxInputStream: public wxStreamBase { - public: - wxInputStream(); - wxInputStream(wxStreamBuffer *sbuf); - virtual ~wxInputStream(); - - // IO functions - virtual char Peek(); - char GetC(); - virtual wxInputStream& Read(void *buffer, size_t size); - wxInputStream& Read(wxOutputStream& stream_out); - - // Position functions - off_t SeekI(off_t pos, wxSeekMode mode = wxFromStart); - off_t TellI() const; - - // State functions - wxStreamBuffer *InputStreamBuffer() { return m_i_streambuf; } - size_t LastRead() { return wxStreamBase::m_lastcount; } - - // Operators - wxInputStream& operator>>(wxOutputStream& out) { return Read(out); } - wxInputStream& operator>>(wxString& line); - wxInputStream& operator>>(char& c); - wxInputStream& operator>>(short& i); - wxInputStream& operator>>(int& i); - wxInputStream& operator>>(long& i); - wxInputStream& operator>>(double& i); -#if wxUSE_SERIAL - wxInputStream& operator>>(wxObject *& obj); -#endif - - wxInputStream& operator>>(float& f) { double d; operator>>((double&)d); f = (float)d; return *this; } - wxInputStream& operator>>(unsigned char& c) { return operator>>((char&)c); } - wxInputStream& operator>>(unsigned short& i) { return operator>>((short&)i); } - wxInputStream& operator>>(unsigned int& i) { return operator>>((int&)i); } - wxInputStream& operator>>(unsigned long& i) { return operator>>((long&)i); } - wxInputStream& operator>>( __wxInputManip func) { return func(*this); } - - protected: - bool m_i_destroybuf; - wxStreamBuffer *m_i_streambuf; -}; - -class WXDLLEXPORT wxOutputStream: public wxStreamBase { - public: - wxOutputStream(); - wxOutputStream(wxStreamBuffer *sbuf); - virtual ~wxOutputStream(); - - virtual wxOutputStream& Write(const void *buffer, size_t size); - wxOutputStream& Write(wxInputStream& stream_in); - - off_t SeekO(off_t pos, wxSeekMode mode = wxFromStart); - off_t TellO() const; - - size_t LastWrite() const { return wxStreamBase::m_lastcount; } - wxStreamBuffer *OutputStreamBuffer() { return m_o_streambuf; } - - void Sync(); - - wxOutputStream& operator<<(wxInputStream& out) { return Write(out); } - wxOutputStream& operator<<(const char *string); - wxOutputStream& operator<<(wxString& string); - wxOutputStream& operator<<(char c); - wxOutputStream& operator<<(short i); - wxOutputStream& operator<<(int i); - wxOutputStream& operator<<(long i); - wxOutputStream& operator<<(double f); -#if wxUSE_SERIAL - wxOutputStream& operator<<(wxObject& obj); -#endif - - wxOutputStream& operator<<(float f) { return operator<<((double)f); } - wxOutputStream& operator<<(unsigned char c) { return operator<<((char)c); } - wxOutputStream& operator<<(unsigned short i) { return operator<<((short)i); } - wxOutputStream& operator<<(unsigned int i) { return operator<<((int)i); } - wxOutputStream& operator<<(unsigned long i) { return operator<<((long)i); } - wxOutputStream& operator<<( __wxOutputManip func) { return func(*this); } - - protected: - bool m_o_destroybuf; - wxStreamBuffer *m_o_streambuf; -}; - -// --------------------------------------------------------------------------- -// "Filter" streams -// --------------------------------------------------------------------------- - -class WXDLLEXPORT wxFilterInputStream: public wxInputStream { - public: - wxFilterInputStream(); - wxFilterInputStream(wxInputStream& stream); - ~wxFilterInputStream(); - - char Peek() { return m_parent_i_stream->Peek(); } - - wxStreamError LastError() const { return m_parent_i_stream->LastError(); } - size_t StreamSize() const { return m_parent_i_stream->StreamSize(); } - - protected: - wxInputStream *m_parent_i_stream; -}; - -class WXDLLEXPORT wxFilterOutputStream: public wxOutputStream { - public: - wxFilterOutputStream(); - wxFilterOutputStream(wxOutputStream& stream); - ~wxFilterOutputStream(); - - wxStreamError LastError() const { return m_parent_o_stream->LastError(); } - size_t StreamSize() const { return m_parent_o_stream->StreamSize(); } - - protected: - wxOutputStream *m_parent_o_stream; -}; - -#endif diff --git a/include/wx/string.h b/include/wx/string.h deleted file mode 100644 index 8948591e53..0000000000 --- a/include/wx/string.h +++ /dev/null @@ -1,1063 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: string.h -// Purpose: wxString and wxArrayString classes -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXSTRINGH__ -#define _WX_WXSTRINGH__ - -#ifdef __GNUG__ -#pragma interface "string.h" -#endif - -#ifdef __WXMAC__ - #include -#endif - -#include -#include -#include -#include -#include - -#ifdef HAVE_STRINGS_H - #include // for strcasecmp() -#endif // AIX - -#ifndef WX_PRECOMP - #include "wx/defs.h" - - #ifdef WXSTRING_IS_WXOBJECT - #include "wx/object.h" - #endif -#endif // !PCH - -#include "wx/debug.h" -#include "wx/wxchar.h" -#include "wx/buffer.h" - -/* - Efficient string class [more or less] compatible with MFC CString, - wxWindows version 1 wxString and std::string and some handy functions - missing from string.h. -*/ - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -// compile the std::string compatibility functions if defined -#define wxSTD_STRING_COMPATIBILITY - -// define to derive wxString from wxObject -#ifdef WXSTRING_IS_WXOBJECT -#undef WXSTRING_IS_WXOBJECT -#endif - -// maximum possible length for a string means "take all string" everywhere -// (as sizeof(StringData) is unknown here we substract 100) -const unsigned int wxSTRING_MAXLEN = UINT_MAX - 100; - -// 'naughty' cast -#define WXSTRINGCAST (wxChar *)(const wxChar *) -#define WXCSTRINGCAST (wxChar *)(const wxChar *) -#define MBSTRINGCAST (char *)(const char *) -#define WCSTRINGCAST (wchar_t *)(const wchar_t *) - -// implementation only -#define ASSERT_VALID_INDEX(i) wxASSERT( (unsigned)(i) <= Len() ) - -// --------------------------------------------------------------------------- -// Global functions complementing standard C string library replacements for -// strlen() and portable strcasecmp() -//--------------------------------------------------------------------------- -// USE wx* FUNCTIONS IN wx/wxchar.h INSTEAD - THIS IS ONLY FOR BINARY COMPATIBILITY - -// checks whether the passed in pointer is NULL and if the string is empty -inline bool WXDLLEXPORT IsEmpty(const char *p) { return (!p || !*p); } - -// safe version of strlen() (returns 0 if passed NULL pointer) -inline size_t WXDLLEXPORT Strlen(const char *psz) - { return psz ? strlen(psz) : 0; } - -// portable strcasecmp/_stricmp -inline int WXDLLEXPORT Stricmp(const char *psz1, const char *psz2) -{ -#if defined(__VISUALC__) || ( defined(__MWERKS__) && defined(__INTEL__) ) - return _stricmp(psz1, psz2); -#elif defined(__SC__) - return _stricmp(psz1, psz2); -#elif defined(__SALFORDC__) - return stricmp(psz1, psz2); -#elif defined(__BORLANDC__) - return stricmp(psz1, psz2); -#elif defined(__WATCOMC__) - return stricmp(psz1, psz2); -#elif defined(__UNIX__) || defined(__GNUWIN32__) - return strcasecmp(psz1, psz2); -#elif defined(__MWERKS__) && !defined(__INTEL__) - register char c1, c2; - do { - c1 = tolower(*psz1++); - c2 = tolower(*psz2++); - } while ( c1 && (c1 == c2) ); - - return c1 - c2; -#else - // almost all compilers/libraries provide this function (unfortunately under - // different names), that's why we don't implement our own which will surely - // be more efficient than this code (uncomment to use): - /* - register char c1, c2; - do { - c1 = tolower(*psz1++); - c2 = tolower(*psz2++); - } while ( c1 && (c1 == c2) ); - - return c1 - c2; - */ - - #error "Please define string case-insensitive compare for your OS/compiler" -#endif // OS/compiler -} - -// ---------------------------------------------------------------------------- -// global data -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString; - -// global pointer to empty string -WXDLLEXPORT_DATA(extern const wxChar*) g_szNul; - -// return an empty wxString -class WXDLLEXPORT wxString; // not yet defined -inline const wxString& wxGetEmptyString() { return *(wxString *)&g_szNul; } - -// --------------------------------------------------------------------------- -// string data prepended with some housekeeping info (used by wxString class), -// is never used directly (but had to be put here to allow inlining) -// --------------------------------------------------------------------------- -struct WXDLLEXPORT wxStringData -{ - int nRefs; // reference count - size_t nDataLength, // actual string length - nAllocLength; // allocated memory size - - // mimics declaration 'wxChar data[nAllocLength]' - wxChar* data() const { return (wxChar*)(this + 1); } - - // empty string has a special ref count so it's never deleted - bool IsEmpty() const { return (nRefs == -1); } - bool IsShared() const { return (nRefs > 1); } - - // lock/unlock - void Lock() { if ( !IsEmpty() ) nRefs++; } - void Unlock() { if ( !IsEmpty() && --nRefs == 0) free(this); } - - // if we had taken control over string memory (GetWriteBuf), it's - // intentionally put in invalid state - void Validate(bool b) { nRefs = (b ? 1 : 0); } - bool IsValid() const { return (nRefs != 0); } -}; - -// --------------------------------------------------------------------------- -// types of multibyte<->Unicode conversions -// --------------------------------------------------------------------------- -#if wxUSE_WCHAR_T -class WXDLLEXPORT wxMBConv -{ - public: - virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const; - virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const; - // No longer inline since BC++ complains. - const wxWCharBuffer cMB2WC(const char *psz) const; - const wxCharBuffer cWC2MB(const wchar_t *psz) const; -#if wxUSE_UNICODE - const wxWCharBuffer cMB2WX(const char *psz) const { return cMB2WC(psz); } - const wxCharBuffer cWX2MB(const wchar_t *psz) const { return cWC2MB(psz); } - const wchar_t* cWC2WX(const wchar_t *psz) const { return psz; } - const wchar_t* cMB2WC(const wchar_t *psz) const { return psz; } -#else - const char* cMB2WX(const char *psz) const { return psz; } - const char* cWX2MB(const char *psz) const { return psz; } - const wxCharBuffer cWC2WX(const wchar_t *psz) const { return cWC2MB(psz); } - const wxWCharBuffer cWX2WC(const char *psz) const { return cMB2WC(psz); } -#endif -}; -WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc; -#define wxConv_libc wxConvLibc - -#define wxANOTHER_MBCONV(type) \ -class type : public wxMBConv { \ - public: \ - virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const; \ - virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const; \ -} - -WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvFile)) wxConvFile; -#define wxConv_file wxConvFile -WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF7)) wxConvUTF7; -WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvUTF8)) wxConvUTF8; -#define wxConv_UTF8 wxConvUTF8 -#if defined(__WXGTK12__) - WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConvGdk)) wxConvGdk; - #define wxConv_gdk wxConvGdk -#endif // GTK > 1.0 - -class wxCharacterSet; -class WXDLLEXPORT wxCSConv : public wxMBConv -{ - private: - wxChar *m_name; - wxCharacterSet *m_cset; - bool m_deferred; - void SetName(const wxChar *charset); - public: - wxCSConv(const wxChar *charset); - virtual ~wxCSConv(); - void LoadNow(); - virtual size_t MB2WC(wchar_t *buf, const char *psz, size_t n) const; - virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const; -}; - -WXDLLEXPORT_DATA(extern wxCSConv) wxConvLocal; -#define wxConv_local wxConvLocal - -WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent; -#define wxConv_current wxConvCurrent - -// filenames are multibyte on Unix and probably widechar on Windows? -#if defined(__UNIX__) || defined(__BORLANDC__) -#define wxMBFILES 1 -#else -#define wxMBFILES 0 -#endif - -#if wxMBFILES -#define wxFNCONV(name) wxConvFile.cWX2MB(name) -#define FNSTRINGCAST MBSTRINGCAST -#else -#define wxFNCONV(name) name -#define FNSTRINGCAST WXSTRINGCAST -#endif -#else//!wxUSE_WCHAR_T -class WXDLLEXPORT wxMBConv { -public: - const char* cMB2WX(const char *psz) const { return psz; } - const char* cWX2MB(const char *psz) const { return psz; } -}; -WXDLLEXPORT_DATA(extern wxMBConv) wxConvLibc, wxConvFile; -#define wxConv_libc wxConvLibc -#define wxConv_file wxConvFile -WXDLLEXPORT_DATA(extern wxMBConv *) wxConvCurrent; -#define wxConv_current wxConvCurrent -#define wxFNCONV(name) name -#define FNSTRINGCAST WXSTRINGCAST -#endif//wxUSE_WCHAR_T - -// --------------------------------------------------------------------------- -// This is (yet another one) String class for C++ programmers. It doesn't use -// any of "advanced" C++ features (i.e. templates, exceptions, namespaces...) -// thus you should be able to compile it with practicaly any C++ compiler. -// This class uses copy-on-write technique, i.e. identical strings share the -// same memory as long as neither of them is changed. -// -// This class aims to be as compatible as possible with the new standard -// std::string class, but adds some additional functions and should be at -// least as efficient than the standard implementation. -// -// Performance note: it's more efficient to write functions which take "const -// String&" arguments than "const char *" if you assign the argument to -// another string. -// -// It was compiled and tested under Win32, Linux (libc 5 & 6), Solaris 5.5. -// -// To do: -// - ressource support (string tables in ressources) -// - more wide character (UNICODE) support -// - regular expressions support -// --------------------------------------------------------------------------- - -#ifdef WXSTRING_IS_WXOBJECT -class WXDLLEXPORT wxString : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxString) -#else //WXSTRING_IS_WXOBJECT -class WXDLLEXPORT wxString -{ -#endif //WXSTRING_IS_WXOBJECT - -friend class WXDLLEXPORT wxArrayString; - - // NB: special care was taken in arranging the member functions in such order - // that all inline functions can be effectively inlined, verify that all - // performace critical functions are still inlined if you change order! -private: - // points to data preceded by wxStringData structure with ref count info - wxChar *m_pchData; - - // accessor to string data - wxStringData* GetStringData() const { return (wxStringData*)m_pchData - 1; } - - // string (re)initialization functions - // initializes the string to the empty value (must be called only from - // ctors, use Reinit() otherwise) - void Init() { m_pchData = (wxChar *)g_szNul; } - // initializaes the string with (a part of) C-string - void InitWith(const wxChar *psz, size_t nPos = 0, size_t nLen = wxSTRING_MAXLEN); - // as Init, but also frees old data - void Reinit() { GetStringData()->Unlock(); Init(); } - - // memory allocation - // allocates memory for string of lenght nLen - void AllocBuffer(size_t nLen); - // copies data to another string - void AllocCopy(wxString&, int, int) const; - // effectively copies data to string - void AssignCopy(size_t, const wxChar *); - - // append a (sub)string - void ConcatSelf(int nLen, const wxChar *src); - - // functions called before writing to the string: they copy it if there - // are other references to our data (should be the only owner when writing) - void CopyBeforeWrite(); - void AllocBeforeWrite(size_t); - - // this method is not implemented - there is _no_ conversion from int to - // string, you're doing something wrong if the compiler wants to call it! - // - // try `s << i' or `s.Printf("%d", i)' instead - wxString(int); - wxString(long); - -public: - // constructors and destructor - // ctor for an empty string - wxString() { Init(); } - // copy ctor - wxString(const wxString& stringSrc) - { - wxASSERT( stringSrc.GetStringData()->IsValid() ); - - if ( stringSrc.IsEmpty() ) { - // nothing to do for an empty string - Init(); - } - else { - m_pchData = stringSrc.m_pchData; // share same data - GetStringData()->Lock(); // => one more copy - } - } - // string containing nRepeat copies of ch - wxString(wxChar ch, size_t nRepeat = 1); - // ctor takes first nLength characters from C string - // (default value of wxSTRING_MAXLEN means take all the string) - wxString(const wxChar *psz, size_t nLength = wxSTRING_MAXLEN) - { InitWith(psz, 0, nLength); } -#if wxUSE_UNICODE - // from multibyte string - // (NB: nLength is right now number of Unicode characters, not - // characters in psz! So try not to use it yet!) - wxString(const char *psz, wxMBConv& conv = wxConvLibc, size_t nLength = wxSTRING_MAXLEN); - // from wxWCharBuffer (i.e. return from wxGetString) - wxString(const wxWCharBuffer& psz) - { InitWith(psz, 0, wxSTRING_MAXLEN); } -#else - // from C string (for compilers using unsigned char) - wxString(const unsigned char* psz, size_t nLength = wxSTRING_MAXLEN) - { InitWith((const char*)psz, 0, nLength); } - // from multibyte string - wxString(const char *psz, wxMBConv& WXUNUSED(conv), size_t nLength = wxSTRING_MAXLEN) - { InitWith(psz, 0, nLength); } -#if wxUSE_WCHAR_T - // from wide (Unicode) string - wxString(const wchar_t *pwz); -#endif - // from wxCharBuffer - wxString(const wxCharBuffer& psz) - { InitWith(psz, 0, wxSTRING_MAXLEN); } -#endif - // dtor is not virtual, this class must not be inherited from! - ~wxString() { GetStringData()->Unlock(); } - - // generic attributes & operations - // as standard strlen() - size_t Len() const { return GetStringData()->nDataLength; } - // string contains any characters? - bool IsEmpty() const { return Len() == 0; } - // empty string is "FALSE", so !str will return TRUE - bool operator!() const { return IsEmpty(); } - // empty string contents - void Empty() - { - if ( !IsEmpty() ) - Reinit(); - - // should be empty - wxASSERT( GetStringData()->nDataLength == 0 ); - } - // empty the string and free memory - void Clear() - { - if ( !GetStringData()->IsEmpty() ) - Reinit(); - - wxASSERT( GetStringData()->nDataLength == 0 ); // should be empty - wxASSERT( GetStringData()->nAllocLength == 0 ); // and not own any memory - } - - // contents test - // Is an ascii value - bool IsAscii() const; - // Is a number - bool IsNumber() const; - // Is a word - bool IsWord() const; - - // data access (all indexes are 0 based) - // read access - wxChar GetChar(size_t n) const - { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } - // read/write access - wxChar& GetWritableChar(size_t n) - { ASSERT_VALID_INDEX( n ); CopyBeforeWrite(); return m_pchData[n]; } - // write access - void SetChar(size_t n, wxChar ch) - { ASSERT_VALID_INDEX( n ); CopyBeforeWrite(); m_pchData[n] = ch; } - - // get last character - wxChar Last() const - { wxASSERT( !IsEmpty() ); return m_pchData[Len() - 1]; } - // get writable last character - wxChar& Last() - { wxASSERT( !IsEmpty() ); CopyBeforeWrite(); return m_pchData[Len()-1]; } - - // under Unix it is tested with configure, assume it works on other - // platforms (there might be overloading problems if size_t and int are - // the same type) -#if !defined(__UNIX__) || wxUSE_SIZE_T_STRING_OPERATOR - // operator version of GetChar - wxChar operator[](size_t n) const - { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } -#endif - - // operator version of GetChar - wxChar operator[](int n) const - { ASSERT_VALID_INDEX( n ); return m_pchData[n]; } - // operator version of GetWritableChar - wxChar& operator[](size_t n) - { ASSERT_VALID_INDEX( n ); CopyBeforeWrite(); return m_pchData[n]; } - - // implicit conversion to C string - operator const wxChar*() const { return m_pchData; } - // explicit conversion to C string (use this with printf()!) - const wxChar* c_str() const { return m_pchData; } - // (and this with [wx]Printf()!) - const wxChar* wx_str() const { return m_pchData; } - // - const wxChar* GetData() const { return m_pchData; } -#if wxUSE_UNICODE - const wxCharBuffer mb_str(wxMBConv& conv = wxConvLibc) const { return conv.cWC2MB(m_pchData); } - const wxChar* wc_str(wxMBConv& WXUNUSED(conv) = wxConvLibc) const { return m_pchData; } -#if wxMBFILES - const wxCharBuffer fn_str() const { return mb_str(wxConvFile); } -#else - const wxChar* fn_str() const { return m_pchData; } -#endif -#else - const wxChar* mb_str(wxMBConv& WXUNUSED(conv) = wxConvLibc ) const { return m_pchData; } -#if wxUSE_WCHAR_T - const wxWCharBuffer wc_str(wxMBConv& conv) const { return conv.cMB2WC(m_pchData); } -#endif - const wxChar* fn_str() const { return m_pchData; } -#endif - // for convenience - const wxWX2MBbuf mbc_str() const { return mb_str(*wxConvCurrent); } - - // overloaded assignment - // from another wxString - wxString& operator=(const wxString& stringSrc); - // from a character - wxString& operator=(wxChar ch); - // from a C string - wxString& operator=(const wxChar *psz); -#if wxUSE_UNICODE - // from wxWCharBuffer - wxString& operator=(const wxWCharBuffer& psz) { return operator=((const wchar_t *)psz); } -#else - // from another kind of C string - wxString& operator=(const unsigned char* psz); -#if wxUSE_WCHAR_T - // from a wide string - wxString& operator=(const wchar_t *pwz); -#endif - // from wxCharBuffer - wxString& operator=(const wxCharBuffer& psz) { return operator=((const char *)psz); } -#endif - - // string concatenation - // in place concatenation - /* - Concatenate and return the result. Note that the left to right - associativity of << allows to write things like "str << str1 << str2 - << ..." (unlike with +=) - */ - // string += string - wxString& operator<<(const wxString& s) - { - wxASSERT( s.GetStringData()->IsValid() ); - - ConcatSelf(s.Len(), s); - return *this; - } - // string += C string - wxString& operator<<(const wxChar *psz) - { ConcatSelf(wxStrlen(psz), psz); return *this; } - // string += char - wxString& operator<<(wxChar ch) { ConcatSelf(1, &ch); return *this; } - - // string += string - void operator+=(const wxString& s) { (void)operator<<(s); } - // string += C string - void operator+=(const wxChar *psz) { (void)operator<<(psz); } - // string += char - void operator+=(wxChar ch) { (void)operator<<(ch); } - - // string += buffer (i.e. from wxGetString) -#if wxUSE_UNICODE - wxString& operator<<(const wxWCharBuffer& s) { (void)operator<<((const wchar_t *)s); return *this; } - void operator+=(const wxWCharBuffer& s) { (void)operator<<((const wchar_t *)s); } -#else - wxString& operator<<(const wxCharBuffer& s) { (void)operator<<((const char *)s); return *this; } - void operator+=(const wxCharBuffer& s) { (void)operator<<((const char *)s); } -#endif - - // string += C string - wxString& Append(const wxChar* psz) - { ConcatSelf(wxStrlen(psz), psz); return *this; } - // append count copies of given character - wxString& Append(wxChar ch, size_t count = 1u) - { wxString str(ch, count); return *this << str; } - - // prepend a string, return the string itself - wxString& Prepend(const wxString& str) - { *this = str + *this; return *this; } - - // non-destructive concatenation - // - friend wxString WXDLLEXPORT operator+(const wxString& string1, const wxString& string2); - // - friend wxString WXDLLEXPORT operator+(const wxString& string, wxChar ch); - // - friend wxString WXDLLEXPORT operator+(wxChar ch, const wxString& string); - // - friend wxString WXDLLEXPORT operator+(const wxString& string, const wxChar *psz); - // - friend wxString WXDLLEXPORT operator+(const wxChar *psz, const wxString& string); - - // stream-like functions - // insert an int into string - wxString& operator<<(int i); - // insert a float into string - wxString& operator<<(float f); - // insert a double into string - wxString& operator<<(double d); - - // string comparison - // case-sensitive comparison (returns a value < 0, = 0 or > 0) - int Cmp(const wxChar *psz) const { return wxStrcmp(c_str(), psz); } - // same as Cmp() but not case-sensitive - int CmpNoCase(const wxChar *psz) const { return wxStricmp(c_str(), psz); } - // test for the string equality, either considering case or not - // (if compareWithCase then the case matters) - bool IsSameAs(const wxChar *psz, bool compareWithCase = TRUE) const - { return (compareWithCase ? Cmp(psz) : CmpNoCase(psz)) == 0; } - - // simple sub-string extraction - // return substring starting at nFirst of length nCount (or till the end - // if nCount = default value) - wxString Mid(size_t nFirst, size_t nCount = wxSTRING_MAXLEN) const; - - // operator version of Mid() - wxString operator()(size_t start, size_t len) const - { return Mid(start, len); } - - // get first nCount characters - wxString Left(size_t nCount) const; - // get last nCount characters - wxString Right(size_t nCount) const; - // get all characters before the first occurence of ch - // (returns the whole string if ch not found) - wxString BeforeFirst(wxChar ch) const; - // get all characters before the last occurence of ch - // (returns empty string if ch not found) - wxString BeforeLast(wxChar ch) const; - // get all characters after the first occurence of ch - // (returns empty string if ch not found) - wxString AfterFirst(wxChar ch) const; - // get all characters after the last occurence of ch - // (returns the whole string if ch not found) - wxString AfterLast(wxChar ch) const; - - // for compatibility only, use more explicitly named functions above - wxString Before(wxChar ch) const { return BeforeLast(ch); } - wxString After(wxChar ch) const { return AfterFirst(ch); } - - // case conversion - // convert to upper case in place, return the string itself - wxString& MakeUpper(); - // convert to upper case, return the copy of the string - // Here's something to remember: BC++ doesn't like returns in inlines. - wxString Upper() const ; - // convert to lower case in place, return the string itself - wxString& MakeLower(); - // convert to lower case, return the copy of the string - wxString Lower() const ; - - // trimming/padding whitespace (either side) and truncating - // remove spaces from left or from right (default) side - wxString& Trim(bool bFromRight = TRUE); - // add nCount copies chPad in the beginning or at the end (default) - wxString& Pad(size_t nCount, wxChar chPad = _T(' '), bool bFromRight = TRUE); - // truncate string to given length - wxString& Truncate(size_t uiLen); - - // searching and replacing - // searching (return starting index, or -1 if not found) - int Find(wxChar ch, bool bFromEnd = FALSE) const; // like strchr/strrchr - // searching (return starting index, or -1 if not found) - int Find(const wxChar *pszSub) const; // like strstr - // replace first (or all of bReplaceAll) occurences of substring with - // another string, returns the number of replacements made - size_t Replace(const wxChar *szOld, - const wxChar *szNew, - bool bReplaceAll = TRUE); - - // check if the string contents matches a mask containing '*' and '?' - bool Matches(const wxChar *szMask) const; - - // formated input/output - // as sprintf(), returns the number of characters written or < 0 on error - int Printf(const wxChar *pszFormat, ...); - // as vprintf(), returns the number of characters written or < 0 on error - int PrintfV(const wxChar* pszFormat, va_list argptr); - - // raw access to string memory - // ensure that string has space for at least nLen characters - // only works if the data of this string is not shared - void Alloc(size_t nLen); - // minimize the string's memory - // only works if the data of this string is not shared - void Shrink(); - // get writable buffer of at least nLen bytes. Unget() *must* be called - // a.s.a.p. to put string back in a reasonable state! - wxChar *GetWriteBuf(size_t nLen); - // call this immediately after GetWriteBuf() has been used - void UngetWriteBuf(); - - // wxWindows version 1 compatibility functions - - // use Mid() - wxString SubString(size_t from, size_t to) const - { return Mid(from, (to - from + 1)); } - // values for second parameter of CompareTo function - enum caseCompare {exact, ignoreCase}; - // values for first parameter of Strip function - enum stripType {leading = 0x1, trailing = 0x2, both = 0x3}; - - // use Printf() - int sprintf(const wxChar *pszFormat, ...); - - // use Cmp() - inline int CompareTo(const wxChar* psz, caseCompare cmp = exact) const - { return cmp == exact ? Cmp(psz) : CmpNoCase(psz); } - - // use Len - size_t Length() const { return Len(); } - // Count the number of characters - int Freq(wxChar ch) const; - // use MakeLower - void LowerCase() { MakeLower(); } - // use MakeUpper - void UpperCase() { MakeUpper(); } - // use Trim except that it doesn't change this string - wxString Strip(stripType w = trailing) const; - - // use Find (more general variants not yet supported) - size_t Index(const wxChar* psz) const { return Find(psz); } - size_t Index(wxChar ch) const { return Find(ch); } - // use Truncate - wxString& Remove(size_t pos) { return Truncate(pos); } - wxString& RemoveLast() { return Truncate(Len() - 1); } - - wxString& Remove(size_t nStart, size_t nLen) { return erase( nStart, nLen ); } - - // use Find() - int First( const wxChar ch ) const { return Find(ch); } - int First( const wxChar* psz ) const { return Find(psz); } - int First( const wxString &str ) const { return Find(str); } - int Last( const wxChar ch ) const { return Find(ch, TRUE); } - bool Contains(const wxString& str) const { return Find(str) != -1; } - - // use IsEmpty() - bool IsNull() const { return IsEmpty(); } - -#ifdef wxSTD_STRING_COMPATIBILITY - // std::string compatibility functions - - // standard types - typedef wxChar value_type; - typedef const value_type *const_iterator; - - // an 'invalid' value for string index - static const size_t npos; - - // constructors - // take nLen chars starting at nPos - wxString(const wxString& str, size_t nPos, size_t nLen) - { - wxASSERT( str.GetStringData()->IsValid() ); - InitWith(str.c_str(), nPos, nLen == npos ? 0 : nLen); - } - // take all characters from pStart to pEnd - wxString(const void *pStart, const void *pEnd); - - // lib.string.capacity - // return the length of the string - size_t size() const { return Len(); } - // return the length of the string - size_t length() const { return Len(); } - // return the maximum size of the string - size_t max_size() const { return wxSTRING_MAXLEN; } - // resize the string, filling the space with c if c != 0 - void resize(size_t nSize, wxChar ch = _T('\0')); - // delete the contents of the string - void clear() { Empty(); } - // returns true if the string is empty - bool empty() const { return IsEmpty(); } - - // lib.string.access - // return the character at position n - wxChar at(size_t n) const { return GetChar(n); } - // returns the writable character at position n - wxChar& at(size_t n) { return GetWritableChar(n); } - - // first valid index position - const_iterator begin() const { return wx_str(); } - // position one after the last valid one - const_iterator end() const { return wx_str() + length(); } - - // lib.string.modifiers - // append a string - wxString& append(const wxString& str) - { *this += str; return *this; } - // append elements str[pos], ..., str[pos+n] - wxString& append(const wxString& str, size_t pos, size_t n) - { ConcatSelf(n, str.c_str() + pos); return *this; } - // append first n (or all if n == npos) characters of sz - wxString& append(const wxChar *sz, size_t n = npos) - { ConcatSelf(n == npos ? wxStrlen(sz) : n, sz); return *this; } - - // append n copies of ch - wxString& append(size_t n, wxChar ch) { return Pad(n, ch); } - - // same as `this_string = str' - wxString& assign(const wxString& str) { return (*this) = str; } - // same as ` = str[pos..pos + n] - wxString& assign(const wxString& str, size_t pos, size_t n) - { return *this = wxString((const wxChar *)str + pos, n); } - // same as `= first n (or all if n == npos) characters of sz' - wxString& assign(const wxChar *sz, size_t n = npos) - { return *this = wxString(sz, n); } - // same as `= n copies of ch' - wxString& assign(size_t n, wxChar ch) - { return *this = wxString(ch, n); } - - // 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) - { return insert(nPos, wxString((const wxChar *)str + nStart, n)); } - - // insert first n (or all if n == npos) characters of sz - wxString& insert(size_t nPos, const wxChar *sz, size_t n = npos) - { return insert(nPos, wxString(sz, n)); } - // insert n copies of ch - wxString& insert(size_t nPos, size_t n, wxChar ch) - { return insert(nPos, wxString(ch, n)); } - - // 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 wxChar* sz); - // replaces the substring with nCount copies of ch - wxString& replace(size_t nStart, size_t nLen, size_t nCount, wxChar 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 wxChar* 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; - - // VC++ 1.5 can't cope with this syntax. -#if !defined(__VISUALC__) || defined(__WIN32__) - // find first n characters of sz - size_t find(const wxChar* sz, size_t nStart = 0, size_t n = npos) const; -#endif - - // Gives a duplicate symbol (presumably a case-insensitivity problem) -#if !defined(__BORLANDC__) - // find the first occurence of character ch after nStart - size_t find(wxChar ch, size_t nStart = 0) const; -#endif - // 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; - - // VC++ 1.5 can't cope with this syntax. -#if !defined(__VISUALC__) || defined(__WIN32__) - // as find, but from the end - size_t rfind(const wxChar* sz, size_t nStart = npos, - size_t n = npos) const; - // as find, but from the end - size_t rfind(wxChar ch, size_t nStart = npos) const; -#endif - - // find first/last occurence of any character in the set - - // as strpbrk() but starts at nStart, returns npos if not found - size_t find_first_of(const wxString& str, size_t nStart = 0) const - { return find_first_of(str.c_str(), nStart); } - // same as above - size_t find_first_of(const wxChar* sz, size_t nStart = 0) const; - // same as find(char, size_t) - size_t find_first_of(wxChar c, size_t nStart = 0) const - { return find(c, nStart); } - // find the last (starting from nStart) char from str in this string - size_t find_last_of (const wxString& str, size_t nStart = npos) const - { return find_last_of(str.c_str(), nStart); } - // same as above - size_t find_last_of (const wxChar* sz, size_t nStart = npos) const; - // same as above - size_t find_last_of(wxChar c, size_t nStart = npos) const - { return rfind(c, nStart); } - - // find first/last occurence of any character not in the set - - // as strspn() (starting from nStart), returns npos on failure - size_t find_first_not_of(const wxString& str, size_t nStart = 0) const - { return find_first_not_of(str.c_str(), nStart); } - // same as above - size_t find_first_not_of(const wxChar* sz, size_t nStart = 0) const; - // same as above - size_t find_first_not_of(wxChar ch, size_t nStart = 0) const; - // as strcspn() - size_t find_last_not_of(const wxString& str, size_t nStart=npos) const; - // same as above - size_t find_last_not_of(const wxChar* sz, size_t nStart = npos) const; - // same as above - size_t find_last_not_of(wxChar ch, size_t nStart = npos) const; - - // All compare functions return -1, 0 or 1 if the [sub]string is less, - // equal or greater than the compare() argument. - - // just like strcmp() - int compare(const wxString& str) const { return Cmp(str); } - // 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 wxChar* sz) const { return Cmp(sz); } - // substring comparison with first nCount characters of sz - int compare(size_t nStart, size_t nLen, - const wxChar* sz, size_t nCount = npos) const; - - // substring extraction - wxString substr(size_t nStart = 0, size_t nLen = npos) const; -#endif // wxSTD_STRING_COMPATIBILITY -}; - -// ---------------------------------------------------------------------------- -// The string array uses it's knowledge of internal structure of the wxString -// class to optimize string storage. Normally, we would store pointers to -// string, but as wxString is, in fact, itself a pointer (sizeof(wxString) is -// sizeof(char *)) we store these pointers instead. The cast to "wxString *" is -// really all we need to turn such pointer into a string! -// -// Of course, it can be called a dirty hack, but we use twice less memory and -// this approach is also more speed efficient, so it's probably worth it. -// -// Usage notes: when a string is added/inserted, a new copy of it is created, -// so the original string may be safely deleted. When a string is retrieved -// from the array (operator[] or Item() method), a reference is returned. -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxArrayString -{ -public: - // type of function used by wxArrayString::Sort() - typedef int (*CompareFunction)(const wxString& first, - const wxString& second); - - // constructors and destructor - // default ctor - wxArrayString(); - // copy ctor - wxArrayString(const wxArrayString& array); - // assignment operator - wxArrayString& operator=(const wxArrayString& src); - // not virtual, this class should not be derived from - ~wxArrayString(); - - // memory management - // empties the list, but doesn't release memory - void Empty(); - // empties the list and releases memory - void Clear(); - // preallocates memory for given number of items - void Alloc(size_t nCount); - // minimzes the memory usage (by freeing all extra memory) - void Shrink(); - - // simple accessors - // number of elements in the array - size_t GetCount() const { return m_nCount; } - // is it empty? - bool IsEmpty() const { return m_nCount == 0; } - // number of elements in the array (GetCount is preferred API) - size_t Count() const { return m_nCount; } - - // items access (range checking is done in debug version) - // get item at position uiIndex - wxString& Item(size_t nIndex) const - { wxASSERT( nIndex < m_nCount ); return *(wxString *)&(m_pItems[nIndex]); } - // same as Item() - wxString& operator[](size_t nIndex) const { return Item(nIndex); } - // get last item - wxString& Last() const { wxASSERT( !IsEmpty() ); return Item(Count() - 1); } - - // item management - // Search the element in the array, starting from the beginning if - // bFromEnd is FALSE or from end otherwise. If bCase, comparison is case - // sensitive (default). Returns index of the first item matched or - // wxNOT_FOUND - int Index (const wxChar *sz, bool bCase = TRUE, bool bFromEnd = FALSE) const; - // add new element at the end - void Add(const wxString& str); - // add new element at given position - void Insert(const wxString& str, size_t uiIndex); - // remove first item matching this value - void Remove(const wxChar *sz); - // remove item by index - void Remove(size_t nIndex); - - // sorting - // sort array elements in alphabetical order (or reversed alphabetical - // order if reverseOrder parameter is TRUE) - void Sort(bool reverseOrder = FALSE); - // sort array elements using specified comparaison function - void Sort(CompareFunction compareFunction); - -private: - void Grow(); // makes array bigger if needed - void Free(); // free the string stored - - void DoSort(); // common part of all Sort() variants - - size_t m_nSize, // current size of the array - m_nCount; // current number of elements - - wxChar **m_pItems; // pointer to data -}; - -// --------------------------------------------------------------------------- -// wxString comparison functions: operator versions are always case sensitive -// --------------------------------------------------------------------------- -// -inline bool operator==(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) == 0); } -// -inline bool operator==(const wxString& s1, const wxChar * s2) { return (s1.Cmp(s2) == 0); } -// -inline bool operator==(const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) == 0); } -// -inline bool operator!=(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) != 0); } -// -inline bool operator!=(const wxString& s1, const wxChar * s2) { return (s1.Cmp(s2) != 0); } -// -inline bool operator!=(const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) != 0); } -// -inline bool operator< (const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) < 0); } -// -inline bool operator< (const wxString& s1, const wxChar * s2) { return (s1.Cmp(s2) < 0); } -// -inline bool operator< (const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) > 0); } -// -inline bool operator> (const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) > 0); } -// -inline bool operator> (const wxString& s1, const wxChar * s2) { return (s1.Cmp(s2) > 0); } -// -inline bool operator> (const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) < 0); } -// -inline bool operator<=(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) <= 0); } -// -inline bool operator<=(const wxString& s1, const wxChar * s2) { return (s1.Cmp(s2) <= 0); } -// -inline bool operator<=(const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) >= 0); } -// -inline bool operator>=(const wxString& s1, const wxString& s2) { return (s1.Cmp(s2) >= 0); } -// -inline bool operator>=(const wxString& s1, const wxChar * s2) { return (s1.Cmp(s2) >= 0); } -// -inline bool operator>=(const wxChar * s1, const wxString& s2) { return (s2.Cmp(s1) <= 0); } - -wxString WXDLLEXPORT operator+(const wxString& string1, const wxString& string2); -wxString WXDLLEXPORT operator+(const wxString& string, wxChar ch); -wxString WXDLLEXPORT operator+(wxChar ch, const wxString& string); -wxString WXDLLEXPORT operator+(const wxString& string, const wxChar *psz); -wxString WXDLLEXPORT operator+(const wxChar *psz, const wxString& string); -#if wxUSE_UNICODE -inline wxString WXDLLEXPORT operator+(const wxString& string, const wxWCharBuffer& buf) -{ return string + (const wchar_t *)buf; } -inline wxString WXDLLEXPORT operator+(const wxWCharBuffer& buf, const wxString& string) -{ return (const wchar_t *)buf + string; } -#else -inline wxString WXDLLEXPORT operator+(const wxString& string, const wxCharBuffer& buf) -{ return string + (const char *)buf; } -inline wxString WXDLLEXPORT operator+(const wxCharBuffer& buf, const wxString& string) -{ return (const char *)buf + string; } -#endif - -// --------------------------------------------------------------------------- -// Implementation only from here until the end of file -// --------------------------------------------------------------------------- - -#ifdef wxSTD_STRING_COMPATIBILITY - -#include "wx/ioswrap.h" - -WXDLLEXPORT istream& operator>>(istream& is, wxString& str); - -#endif // wxSTD_STRING_COMPATIBILITY - -#endif // _WX_WXSTRINGH__ diff --git a/include/wx/stubs/accel.h b/include/wx/stubs/accel.h deleted file mode 100644 index ec39737483..0000000000 --- a/include/wx/stubs/accel.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.h -// Purpose: wxAcceleratorTable class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ACCEL_H_ -#define _WX_ACCEL_H_ - -#ifdef __GNUG__ -#pragma interface "accel.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" - -class WXDLLEXPORT wxAcceleratorTable; - -// Hold Ctrl key down -#define wxACCEL_ALT 0x01 - -// Hold Ctrl key down -#define wxACCEL_CTRL 0x02 - - // Hold Shift key down -#define wxACCEL_SHIFT 0x04 - - // Hold no key down -#define wxACCEL_NORMAL 0x00 - -class WXDLLEXPORT wxAcceleratorEntry -{ -public: - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0) - { - m_flags = flags; m_keyCode = keyCode; m_command = cmd; - } - - inline void Set(int flags, int keyCode, int cmd) - { m_flags = flags; m_keyCode = keyCode; m_command = cmd; } - - inline int GetFlags() const { return m_flags; } - inline int GetKeyCode() const { return m_keyCode; } - inline int GetCommand() const { return m_command; } - - int m_flags; - int m_keyCode; // ASCII or virtual keycode - int m_command; // Command id to generate -}; - -class WXDLLEXPORT wxAcceleratorTable: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxAcceleratorTable) -public: - wxAcceleratorTable(); - wxAcceleratorTable(const wxString& resource); // Load from .rc resource - wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array - - // Copy constructors - inline wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); } - inline wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); } - - ~wxAcceleratorTable(); - - inline wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; } - inline bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; } - inline bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; } - - bool Ok() const; -}; - -WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable; - -#endif - // _WX_ACCEL_H_ diff --git a/include/wx/stubs/app.h b/include/wx/stubs/app.h deleted file mode 100644 index 67bceb9169..0000000000 --- a/include/wx/stubs/app.h +++ /dev/null @@ -1,152 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.h -// Purpose: wxApp class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_APP_H_ -#define _WX_APP_H_ - -#ifdef __GNUG__ -#pragma interface "app.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/gdicmn.h" -#include "wx/event.h" - -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxApp ; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxLog; - -#define wxPRINT_WINDOWS 1 -#define wxPRINT_POSTSCRIPT 2 - -WXDLLEXPORT_DATA(extern wxApp*) wxTheApp; - -// Force an exit from main loop -void WXDLLEXPORT wxExit(); - -// Yield to other apps/messages -bool WXDLLEXPORT wxYield(); - -// Represents the application. Derive OnInit and declare -// a new App object to start application -class WXDLLEXPORT wxApp: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxApp) - wxApp(); - inline ~wxApp() {} - - static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; } - static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; } - - virtual int MainLoop(); - void ExitMainLoop(); - bool Initialized(); - virtual bool Pending() ; - virtual void Dispatch() ; - - void OnIdle(wxIdleEvent& event); - -// Generic - virtual bool OnInit() { return FALSE; }; - - // No specific tasks to do here. - virtual bool OnInitGui() { return TRUE; } - - // Called to set off the main loop - virtual int OnRun() { return MainLoop(); }; - virtual int OnExit() { return 0; } - - inline void SetPrintMode(int mode) { m_printMode = mode; } - inline int GetPrintMode() const { return m_printMode; } - - inline void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; } - inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; } - - inline wxString GetAppName() const { - if (m_appName != "") - return m_appName; - else return m_className; - } - - inline void SetAppName(const wxString& name) { m_appName = name; }; - inline wxString GetClassName() const { return m_className; } - inline void SetClassName(const wxString& name) { m_className = name; } - - void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; } - const wxString& GetVendorName() const { return m_vendorName; } - - wxWindow *GetTopWindow() const ; - inline void SetTopWindow(wxWindow *win) { m_topWindow = win; } - - inline void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; } - inline bool GetWantDebugOutput() { return m_wantDebugOutput; } - - // Send idle event to all top-level windows. - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(); - - // Send idle event to window and all subwindows - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(wxWindow* win); - - // Windows only, but for compatibility... - inline void SetAuto3D(bool flag) { m_auto3D = flag; } - inline bool GetAuto3D() const { return m_auto3D; } - - // Creates a log object - virtual wxLog* CreateLogTarget(); - -public: - // Will always be set to the appropriate, main-style values. - int argc; - char ** argv; - -protected: - bool m_wantDebugOutput ; - wxString m_className; - wxString m_appName, - m_vendorName; - wxWindow * m_topWindow; - bool m_exitOnFrameDelete; - bool m_showOnInit; - int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT - bool m_auto3D ; // Always use 3D controls, except - // where overriden - static wxAppInitializerFunction m_appInitFn; - -public: - - // Implementation - static bool Initialize(); - static void CleanUp(); - - void DeletePendingObjects(); - bool ProcessIdle(); - -public: - static long sm_lastMessageTime; - int m_nCmdShow; - -protected: - bool m_keepGoing ; - -DECLARE_EVENT_TABLE() -}; - -// TODO: add platform-specific arguments -int WXDLLEXPORT wxEntry( int argc, char *argv[] ); - -#endif - // _WX_APP_H_ - diff --git a/include/wx/stubs/bitmap.h b/include/wx/stubs/bitmap.h deleted file mode 100644 index 1d2f5417e5..0000000000 --- a/include/wx/stubs/bitmap.h +++ /dev/null @@ -1,197 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: wxBitmap class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BITMAP_H_ -#define _WX_BITMAP_H_ - -#ifdef __GNUG__ -#pragma interface "bitmap.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" -#include "wx/palette.h" - -// Bitmap -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxBitmapHandler; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxCursor; - -// A mask is a mono bitmap used for drawing bitmaps -// transparently. -class WXDLLEXPORT wxMask: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMask) - -public: - wxMask(); - - // Construct a mask from a bitmap and a colour indicating - // the transparent area - wxMask(const wxBitmap& bitmap, const wxColour& colour); - - // Construct a mask from a bitmap and a palette index indicating - // the transparent area - wxMask(const wxBitmap& bitmap, int paletteIndex); - - // Construct a mask from a mono bitmap (copies the bitmap). - wxMask(const wxBitmap& bitmap); - - ~wxMask(); - - bool Create(const wxBitmap& bitmap, const wxColour& colour); - bool Create(const wxBitmap& bitmap, int paletteIndex); - bool Create(const wxBitmap& bitmap); - -/* TODO: platform-specific data access - // Implementation - inline WXHBITMAP GetMaskBitmap() const { return m_maskBitmap; } - inline void SetMaskBitmap(WXHBITMAP bmp) { m_maskBitmap = bmp; } -protected: - WXHBITMAP m_maskBitmap; -*/ -}; - -class WXDLLEXPORT wxBitmapRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; - friend class WXDLLEXPORT wxCursor; -public: - wxBitmapRefData(); - ~wxBitmapRefData(); - -public: - int m_width; - int m_height; - int m_depth; - bool m_ok; - int m_numColors; - wxPalette m_bitmapPalette; - int m_quality; - -/* WXHBITMAP m_hBitmap; TODO: platform-specific handle */ - wxMask * m_bitmapMask; // Optional mask -}; - -#define M_BITMAPDATA ((wxBitmapRefData *)m_refData) - -class WXDLLEXPORT wxBitmapHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmapHandler) -public: - wxBitmapHandler() { m_name = ""; m_extension = ""; m_type = 0; }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); - - inline void SetName(const wxString& name) { m_name = name; } - inline void SetExtension(const wxString& ext) { m_extension = ext; } - inline void SetType(long type) { m_type = type; } - inline wxString GetName() const { return m_name; } - inline wxString GetExtension() const { return m_extension; } - inline long GetType() const { return m_type; } -protected: - wxString m_name; - wxString m_extension; - long m_type; -}; - -#define M_BITMAPHANDLERDATA ((wxBitmapRefData *)bitmap->GetRefData()) - -class WXDLLEXPORT wxBitmap: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBitmap) - - friend class WXDLLEXPORT wxBitmapHandler; - -public: - wxBitmap(); // Platform-specific - - // Copy constructors - inline wxBitmap(const wxBitmap& bitmap) - { Ref(bitmap); if ( wxTheBitmapList ) wxTheBitmapList->AddBitmap(this); } - - // Initialize with raw data. - wxBitmap(const char bits[], int width, int height, int depth = 1); - -/* TODO: maybe implement XPM reading - // Initialize with XPM data - wxBitmap(const char **data); -*/ - - // Load a file or resource - // TODO: make default type whatever's appropriate for the platform. - wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - - // Constructor for generalised creation from data - wxBitmap(void *data, long type, int width, int height, int depth = 1); - - // If depth is omitted, will create a bitmap compatible with the display - wxBitmap(int width, int height, int depth = -1); - ~wxBitmap(); - - virtual bool Create(int width, int height, int depth = -1); - virtual bool Create(void *data, long type, int width, int height, int depth = 1); - virtual bool LoadFile(const wxString& name, long type = wxBITMAP_TYPE_BMP_RESOURCE); - virtual bool SaveFile(const wxString& name, int type, const wxPalette *cmap = NULL); - - inline bool Ok() const { return (M_BITMAPDATA && M_BITMAPDATA->m_ok); } - inline int GetWidth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_width : 0); } - inline int GetHeight() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_height : 0); } - inline int GetDepth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_depth : 0); } - inline int GetQuality() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_quality : 0); } - void SetWidth(int w); - void SetHeight(int h); - void SetDepth(int d); - void SetQuality(int q); - void SetOk(bool isOk); - - inline wxPalette* GetPalette() const { return (M_BITMAPDATA ? (& M_BITMAPDATA->m_bitmapPalette) : (wxPalette*) NULL); } - void SetPalette(const wxPalette& palette); - - inline wxMask *GetMask() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_bitmapMask : (wxMask*) NULL); } - void SetMask(wxMask *mask) ; - - inline wxBitmap& operator = (const wxBitmap& bitmap) { if (*this == bitmap) return (*this); Ref(bitmap); return *this; } - inline bool operator == (const wxBitmap& bitmap) { return m_refData == bitmap.m_refData; } - inline bool operator != (const wxBitmap& bitmap) { return m_refData != bitmap.m_refData; } - - // Format handling - static inline wxList& GetHandlers() { return sm_handlers; } - static void AddHandler(wxBitmapHandler *handler); - static void InsertHandler(wxBitmapHandler *handler); - static bool RemoveHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& name); - static wxBitmapHandler *FindHandler(const wxString& extension, long bitmapType); - static wxBitmapHandler *FindHandler(long bitmapType); - - static void InitStandardHandlers(); - static void CleanUpHandlers(); -protected: - static wxList sm_handlers; - -/* - // TODO: Implementation -public: - void SetHBITMAP(WXHBITMAP bmp); - inline WXHBITMAP GetHBITMAP() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_hBitmap : 0); } - bool FreeResource(bool force = FALSE); -*/ - -}; -#endif - // _WX_BITMAP_H_ diff --git a/include/wx/stubs/bmpbuttn.h b/include/wx/stubs/bmpbuttn.h deleted file mode 100644 index defe39e438..0000000000 --- a/include/wx/stubs/bmpbuttn.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.h -// Purpose: wxBitmapButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BMPBUTTN_H_ -#define _WX_BMPBUTTN_H_ - -#ifdef __GNUG__ -#pragma interface "bmpbuttn.h" -#endif - -#include "wx/button.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -#define wxDEFAULT_BUTTON_MARGIN 4 - -class WXDLLEXPORT wxBitmapButton: public wxButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapButton) - public: - inline wxBitmapButton() { m_marginX = wxDEFAULT_BUTTON_MARGIN; m_marginY = wxDEFAULT_BUTTON_MARGIN; } - inline wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, bitmap, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetLabel(const wxBitmap& bitmap) - { - SetBitmapLabel(bitmap); - } - - virtual void SetBitmapLabel(const wxBitmap& bitmap); - - inline wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_buttonBitmap; } - inline wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_buttonBitmapSelected; } - inline wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_buttonBitmapFocus; } - inline wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_buttonBitmapDisabled; } - - inline void SetBitmapSelected(const wxBitmap& sel) { m_buttonBitmapSelected = sel; }; - inline void SetBitmapFocus(const wxBitmap& focus) { m_buttonBitmapFocus = focus; }; - inline void SetBitmapDisabled(const wxBitmap& disabled) { m_buttonBitmapDisabled = disabled; }; - - inline void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; } - inline int GetMarginX() { return m_marginX; } - inline int GetMarginY() { return m_marginY; } - -/* - // TODO: Implementation - virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); - virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel ); - virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg ); -*/ - - protected: - wxBitmap m_buttonBitmap; - wxBitmap m_buttonBitmapSelected; - wxBitmap m_buttonBitmapFocus; - wxBitmap m_buttonBitmapDisabled; - int m_marginX; - int m_marginY; -}; - -#endif - // _WX_BMPBUTTN_H_ diff --git a/include/wx/stubs/brush.h b/include/wx/stubs/brush.h deleted file mode 100644 index a0a1bd7471..0000000000 --- a/include/wx/stubs/brush.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.h -// Purpose: wxBrush class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BRUSH_H_ -#define _WX_BRUSH_H_ - -#ifdef __GNUG__ -#pragma interface "brush.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/gdiobj.h" -#include "wx/bitmap.h" - -class WXDLLEXPORT wxBrush; - -class WXDLLEXPORT wxBrushRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxBrush; -public: - wxBrushRefData(); - wxBrushRefData(const wxBrushRefData& data); - ~wxBrushRefData(); - -protected: - int m_style; - wxBitmap m_stipple ; - wxColour m_colour; - -/* TODO: implementation - WXHBRUSH m_hBrush; -*/ -}; - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -// Brush -class WXDLLEXPORT wxBrush: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxBrush) - -public: - wxBrush(); - wxBrush(const wxColour& col, int style); - wxBrush(const wxBitmap& stipple); - inline wxBrush(const wxBrush& brush) { Ref(brush); } - ~wxBrush(); - - virtual void SetColour(const wxColour& col) ; - virtual void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - virtual void SetStyle(int style) ; - virtual void SetStipple(const wxBitmap& stipple) ; - - inline wxBrush& operator = (const wxBrush& brush) { if (*this == brush) return (*this); Ref(brush); return *this; } - inline bool operator == (const wxBrush& brush) { return m_refData == brush.m_refData; } - inline bool operator != (const wxBrush& brush) { return m_refData != brush.m_refData; } - - inline wxColour& GetColour() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_colour : wxNullColour); }; - inline int GetStyle() const { return (M_BRUSHDATA ? M_BRUSHDATA->m_style : 0); }; - inline wxBitmap *GetStipple() const { return (M_BRUSHDATA ? & M_BRUSHDATA->m_stipple : 0); }; - - virtual bool Ok() const { return (m_refData != NULL) ; } - -// Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_BRUSH_H_ diff --git a/include/wx/stubs/button.h b/include/wx/stubs/button.h deleted file mode 100644 index 68b67d8c96..0000000000 --- a/include/wx/stubs/button.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.h -// Purpose: wxButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_BUTTON_H_ -#define _WX_BUTTON_H_ - -#ifdef __GNUG__ -#pragma interface "button.h" -#endif - -#include "wx/control.h" -#include "wx/gdicmn.h" - -WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr; - -// Pushbutton -class WXDLLEXPORT wxButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxButton) - public: - inline wxButton() {} - inline wxButton(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxButtonNameStr); - - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetDefault(); - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - virtual void Command(wxCommandEvent& event); -}; - -#endif - // _WX_BUTTON_H_ diff --git a/include/wx/stubs/checkbox.h b/include/wx/stubs/checkbox.h deleted file mode 100644 index cfc102058a..0000000000 --- a/include/wx/stubs/checkbox.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.h -// Purpose: wxCheckBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKBOX_H_ -#define _WX_CHECKBOX_H_ - -#ifdef __GNUG__ -#pragma interface "checkbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxCheckBoxNameStr; - -// Checkbox item (single checkbox) -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxCheckBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxCheckBox) - - public: - inline wxCheckBox() { } - inline wxCheckBox(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxString& label); - virtual void Command(wxCommandEvent& event); -}; - -class WXDLLEXPORT wxBitmapCheckBox: public wxCheckBox -{ - DECLARE_DYNAMIC_CLASS(wxBitmapCheckBox) - - public: - int checkWidth ; - int checkHeight ; - - inline wxBitmapCheckBox() { checkWidth = -1; checkHeight = -1; } - inline wxBitmapCheckBox(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, const wxBitmap *bitmap, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxCheckBoxNameStr); - virtual void SetValue(bool); - virtual bool GetValue() const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual void SetLabel(const wxBitmap& bitmap); -}; -#endif - // _WX_CHECKBOX_H_ diff --git a/include/wx/stubs/checklst.h b/include/wx/stubs/checklst.h deleted file mode 100644 index 19b4ccb8d3..0000000000 --- a/include/wx/stubs/checklst.h +++ /dev/null @@ -1,47 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.h -// Purpose: wxCheckListBox class - a listbox with checkable items -// Note: this is an optional class. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHECKLST_H_ -#define _WX_CHECKLST_H_ - -#ifdef __GNUG__ -#pragma interface "checklst.h" -#endif - -#include "wx/listbox.h" - -typedef unsigned int size_t; - -class wxCheckListBox : public wxListBox -{ - DECLARE_DYNAMIC_CLASS(wxCheckListBox) -public: - // ctors - wxCheckListBox(); - wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int nStrings = 0, - const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - // items may be checked - bool IsChecked(size_t uiIndex) const; - void Check(size_t uiIndex, bool bCheck = TRUE); - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CHECKLST_H_ diff --git a/include/wx/stubs/choice.h b/include/wx/stubs/choice.h deleted file mode 100644 index 7f360ed5cc..0000000000 --- a/include/wx/stubs/choice.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.h -// Purpose: wxChoice class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CHOICE_H_ -#define _WX_CHOICE_H_ - -#ifdef __GNUG__ -#pragma interface "choice.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxChoiceNameStr; - -// Choice item -class WXDLLEXPORT wxChoice: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxChoice) - - public: - inline wxChoice() { m_noStrings = 0; } - - inline wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxChoiceNameStr); - - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - - virtual inline int Number() const { return m_noStrings; } - virtual void Command(wxCommandEvent& event); - - virtual inline void SetColumns(int WXUNUSED(n) = 1 ) { /* No effect */ } ; - virtual inline int GetColumns() const { return 1 ; }; - -protected: - int m_noStrings; -}; - -#endif - // _WX_CHOICE_H_ diff --git a/include/wx/stubs/clipbrd.h b/include/wx/stubs/clipbrd.h deleted file mode 100644 index 697dc9d939..0000000000 --- a/include/wx/stubs/clipbrd.h +++ /dev/null @@ -1,104 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.h -// Purpose: Clipboard functionality. -// Note: this functionality is under review, and -// is derived from wxWindows 1.xx code. Please contact -// the wxWindows developers for further information. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CLIPBRD_H_ -#define _WX_CLIPBRD_H_ - -#ifdef __GNUG__ -#pragma interface "clipbrd.h" -#endif - -#include "wx/defs.h" -#include "wx/setup.h" - -#include "wx/list.h" - -bool WXDLLEXPORT wxOpenClipboard(); -bool WXDLLEXPORT wxClipboardOpen(); -bool WXDLLEXPORT wxCloseClipboard(); -bool WXDLLEXPORT wxEmptyClipboard(); -bool WXDLLEXPORT wxIsClipboardFormatAvailable(int dataFormat); -bool WXDLLEXPORT wxSetClipboardData(int dataFormat, wxObject *obj, int width = 0, int height = 0); -wxObject* WXDLLEXPORT wxGetClipboardData(int dataFormat, long *len = NULL); -int WXDLLEXPORT wxEnumClipboardFormats(int dataFormat); -int WXDLLEXPORT wxRegisterClipboardFormat(char *formatName); -bool WXDLLEXPORT wxGetClipboardFormatName(int dataFormat, char *formatName, int maxCount); - -/* A clipboard client holds data belonging to the clipboard. - For plain text, a client is not necessary. */ -class WXDLLEXPORT wxClipboardClient : public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxClipboardClient) - - public: - /* This list should be filled in with strings indicating the formats - this client can provide. Almost all clients will provide "TEXT". - Format names should be 4 characters long, so things will work - out on the Macintosh */ - wxStringList formats; - - /* This method is called when the client is losing the selection. */ - virtual void BeingReplaced() = 0; - - /* This method is called when someone wants the data this client is - supplying to the clipboard. "format" is a string indicating the - format of the data - one of the strings from the "formats" - list. "*size" should be filled with the size of the resulting - data. In the case of text, "*size" does not count the - NULL terminator. */ - virtual char *GetData(char *format, long *size) = 0; -}; - -/* ONE instance of this class: */ -class WXDLLEXPORT wxClipboard : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxClipboard) - - public: - wxClipboardClient *clipOwner; - char *cbString, *sentString, *receivedString; - void *receivedTargets; - long receivedLength; - - wxClipboard(); - ~wxClipboard(); - - /* Set the clipboard data owner. "time" comes from the event record. */ - void SetClipboardClient(wxClipboardClient *, long time); - - /* Set the clipboard string; does not require a client. */ - void SetClipboardString(char *, long time); - - /* Get data from the clipboard in the format "TEXT". */ - char *GetClipboardString(long time); - - /* Get data from the clipboard */ - char *GetClipboardData(char *format, long *length, long time); - - /* Get the clipboard client directly. Will be NULL if clipboard data - is a string, or if some other application owns the clipboard. - This can be useful for shortcutting data translation, if the - clipboard user can check for a specific client. (This is used - by the wxMediaEdit class.) */ - wxClipboardClient *GetClipboardClient(); -}; - -/* Initialize wxTheClipboard. Can be called repeatedly */ -void WXDLLEXPORT wxInitClipboard(); - -/* The clipboard */ -WXDLLEXPORT_DATA(extern wxClipboard*) wxTheClipboard; - -#endif - // _WX_CLIPBRD_H_ diff --git a/include/wx/stubs/colordlg.h b/include/wx/stubs/colordlg.h deleted file mode 100644 index 556c2f316e..0000000000 --- a/include/wx/stubs/colordlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.h -// Purpose: wxColourDialog class. Use generic version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLORDLG_H_ -#define _WX_COLORDLG_H_ - -#ifdef __GNUG__ -#pragma interface "colordlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * Platform-specific colour dialog implementation - */ - -class WXDLLEXPORT wxColourDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxColourDialog) -public: - wxColourDialog(); - wxColourDialog(wxWindow *parent, wxColourData *data = NULL); - - bool Create(wxWindow *parent, wxColourData *data = NULL); - - int ShowModal(); - wxColourData& GetColourData() { return m_colourData; } - -protected: - wxColourData m_colourData; - wxWindow* m_dialogParent; -}; - -#endif - // _WX_COLORDLG_H_ diff --git a/include/wx/stubs/colour.h b/include/wx/stubs/colour.h deleted file mode 100644 index 24028b6756..0000000000 --- a/include/wx/stubs/colour.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.h -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COLOUR_H_ -#define _WX_COLOUR_H_ - -#ifdef __GNUG__ -#pragma interface "colour.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" - -// Colour -class WXDLLEXPORT wxColour: public wxObject -{ -public: - // ctors - // default - wxColour(); - // from RGB - wxColour( unsigned char red, unsigned char green, unsigned char blue ); - // implicit conversion from the colour name - wxColour( const wxString &colourName ) { InitFromName(colourName); } - wxColour( const char *colourName ) { InitFromName(colourName); } - - // copy ctors and assignment operators - wxColour( const wxColour& col ); - wxColour( const wxColour* col ); - wxColour& operator = ( const wxColour& col ); - - // dtor - ~wxColour(); - - // Set() functions - void Set( unsigned char red, unsigned char green, unsigned char blue ); - void Set( unsigned long colRGB ) - { - // we don't need to know sizeof(long) here because we assume that the three - // least significant bytes contain the R, G and B values - Set((unsigned char)colRGB, - (unsigned char)(colRGB >> 8), - (unsigned char)(colRGB >> 16)); - } - - // accessors - bool Ok() const {return m_isInit; } - - // Let's remove this inelegant function -#if WXWIN_COMPATIBILITY - void Get(unsigned char *r, unsigned char *g, unsigned char *b) const; -#endif - - unsigned char Red() const { return m_red; } - unsigned char Green() const { return m_green; } - unsigned char Blue() const { return m_blue; } - - // comparison - bool operator == (const wxColour& colour) const - { - return (m_red == colour.m_red && - m_green == colour.m_green && - m_blue == colour.m_blue); - } - bool operator != (const wxColour& colour) const { return !(*this == colour); } - - void InitFromName(const wxString& col); - -/* TODO - WXCOLORREF GetPixel() const { return m_pixel; }; -*/ - -private: - bool m_isInit; - unsigned char m_red; - unsigned char m_blue; - unsigned char m_green; - -public: - /* TODO: implementation - WXCOLORREF m_pixel ; - */ - -private: - DECLARE_DYNAMIC_CLASS(wxColour) -}; - -#endif - // _WX_COLOUR_H_ diff --git a/include/wx/stubs/combobox.h b/include/wx/stubs/combobox.h deleted file mode 100644 index 07054af74e..0000000000 --- a/include/wx/stubs/combobox.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.h -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_COMBOBOX_H_ -#define _WX_COMBOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "combobox.h" -#endif - -#include "wx/choice.h" - -WXDLLEXPORT_DATA(extern const char*) wxComboBoxNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Combobox item -class WXDLLEXPORT wxComboBox: public wxChoice -{ - DECLARE_DYNAMIC_CLASS(wxComboBox) - - public: - inline wxComboBox() {} - - inline wxComboBox(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr) - { - Create(parent, id, value, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxComboBoxNameStr); - - // List functions - virtual void Append(const wxString& item); - virtual void Delete(int n); - virtual void Clear(); - virtual int GetSelection() const ; - virtual void SetSelection(int n); - virtual int FindString(const wxString& s) const; - virtual wxString GetString(int n) const ; - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& sel); - virtual inline int Number() const { return m_noStrings; } - - // Text field functions - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); -}; - -#endif - // _WX_COMBOBOX_H_ diff --git a/include/wx/stubs/control.h b/include/wx/stubs/control.h deleted file mode 100644 index c75756a72a..0000000000 --- a/include/wx/stubs/control.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.h -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CONTROL_H_ -#define _WX_CONTROL_H_ - -#ifdef __GNUG__ -#pragma interface "control.h" -#endif - -#include "wx/window.h" -#include "wx/list.h" -#include "wx/validate.h" - -// General item class -class WXDLLEXPORT wxControl: public wxWindow -{ - DECLARE_ABSTRACT_CLASS(wxControl) -public: - wxControl(); - ~wxControl(); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; // Simulates an event - virtual void ProcessCommand(wxCommandEvent& event); // Calls the callback and - // appropriate event handlers - virtual void SetLabel(const wxString& label); - virtual wxString GetLabel() const ; - - // Places item in centre of panel - so can't be used BEFORE panel->Fit() - void Centre(int direction = wxHORIZONTAL); - inline void Callback(const wxFunction function) { m_callback = function; }; // Adds callback - - inline wxFunction GetCallback() { return m_callback; } - -protected: - wxFunction m_callback; // Callback associated with the window - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_CONTROL_H_ diff --git a/include/wx/stubs/cursor.h b/include/wx/stubs/cursor.h deleted file mode 100644 index bc6397069f..0000000000 --- a/include/wx/stubs/cursor.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.h -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CURSOR_H_ -#define _WX_CURSOR_H_ - -#ifdef __GNUG__ -#pragma interface "cursor.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxCursorRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxCursor; -public: - wxCursorRefData(); - ~wxCursorRefData(); - -protected: -/* TODO: implementation - WXHCURSOR m_hCursor; -*/ -}; - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) -#define M_CURSORHANDLERDATA ((wxCursorRefData *)bitmap->m_refData) - -// Cursor -class WXDLLEXPORT wxCursor: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxCursor) - -public: - wxCursor(); - - // Copy constructors - inline wxCursor(const wxCursor& cursor) { Ref(cursor); } - - wxCursor(const char bits[], int width, int height, int hotSpotX = -1, int hotSpotY = -1, - const char maskBits[] = NULL); - - /* TODO: make default type suit platform */ - wxCursor(const wxString& name, long flags = wxBITMAP_TYPE_CUR_RESOURCE, - int hotSpotX = 0, int hotSpotY = 0); - - wxCursor(int cursor_type); - ~wxCursor(); - - // TODO: also verify the internal cursor handle - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline wxCursor& operator = (const wxCursor& cursor) { if (*this == cursor) return (*this); Ref(cursor); return *this; } - inline bool operator == (const wxCursor& cursor) { return m_refData == cursor.m_refData; } - inline bool operator != (const wxCursor& cursor) { return m_refData != cursor.m_refData; } - -/* TODO: implementation - void SetHCURSOR(WXHCURSOR cursor); - inline WXHCURSOR GetHCURSOR() const { return (M_CURSORDATA ? M_CURSORDATA->m_hCursor : 0); } -*/ -}; - -extern WXDLLEXPORT void wxSetCursor(const wxCursor& cursor); - -#endif - // _WX_CURSOR_H_ diff --git a/include/wx/stubs/dc.h b/include/wx/stubs/dc.h deleted file mode 100644 index ce3e9998d1..0000000000 --- a/include/wx/stubs/dc.h +++ /dev/null @@ -1,374 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.h -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DC_H_ -#define _WX_DC_H_ - -#ifdef __GNUG__ -#pragma interface "dc.h" -#endif - -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/icon.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#ifndef MM_TEXT -#define MM_TEXT 0 -#define MM_ISOTROPIC 1 -#define MM_ANISOTROPIC 2 -#define MM_LOMETRIC 3 -#define MM_HIMETRIC 4 -#define MM_TWIPS 5 -#define MM_POINTS 6 -#define MM_METRIC 7 -#endif - -//----------------------------------------------------------------------------- -// global variables -//----------------------------------------------------------------------------- - -extern int wxPageNumber; - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxDC: public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxDC) - - public: - - wxDC(void); - ~wxDC(void); - - void BeginDrawing(void) {}; - void EndDrawing(void) {}; - - virtual bool Ok(void) const { return m_ok; }; - - virtual void FloodFill( long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE ) = 0; - inline void FloodFill(const wxPoint& pt, const wxColour& col, int style=wxFLOOD_SURFACE) - { - FloodFill(pt.x, pt.y, col, style); - } - - virtual bool GetPixel( long x1, long y1, wxColour *col ) const = 0; - inline bool GetPixel(const wxPoint& pt, wxColour *col) const - { - return GetPixel(pt.x, pt.y, col); - } - - virtual void DrawLine( long x1, long y1, long x2, long y2 ) = 0; - inline void DrawLine(const wxPoint& pt1, const wxPoint& pt2) - { - DrawLine(pt1.x, pt1.y, pt2.x, pt2.y); - } - - virtual void CrossHair( long x, long y ) = 0; - inline void CrossHair(const wxPoint& pt) - { - CrossHair(pt.x, pt.y); - } - - virtual void DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) = 0; - inline void DrawArc(const wxPoint& pt1, const wxPoint& pt2, const wxPoint& centre) - { - DrawArc(pt1.x, pt1.y, pt2.x, pt2.y, centre.x, centre.y); - } - - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) = 0; - virtual void DrawEllipticArc (const wxPoint& pt, const wxSize& sz, double sa, double ea) - { - DrawEllipticArc(pt.x, pt.y, sz.x, sz.y, sa, ea); - } - - virtual void DrawPoint( long x, long y ) = 0; - virtual void DrawPoint( wxPoint& point ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ) = 0; - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ) = 0; - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ) = 0; - inline void DrawRectangle(const wxPoint& pt, const wxSize& sz) - { - DrawRectangle(pt.x, pt.y, sz.x, sz.y); - } - inline void DrawRectangle(const wxRect& rect) - { - DrawRectangle(rect.x, rect.y, rect.width, rect.height); - } - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ) = 0; - inline void DrawRoundedRectangle(const wxPoint& pt, const wxSize& sz, double radius = 20.0) - { - DrawRoundedRectangle(pt.x, pt.y, sz.x, sz.y, radius); - } - inline void DrawRoundedRectangle(const wxRect& rect, double radius = 20.0) - { - DrawRoundedRectangle(rect.x, rect.y, rect.width, rect.height, radius); - } - - virtual void DrawEllipse( long x, long y, long width, long height ) = 0; - inline void DrawEllipse(const wxPoint& pt, const wxSize& sz) - { - DrawEllipse(pt.x, pt.y, sz.x, sz.y); - } - inline void DrawEllipse(const wxRect& rect) - { - DrawEllipse(rect.x, rect.y, rect.width, rect.height); - } - - virtual void DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ); - virtual void DrawSpline( wxList *points ) = 0; - virtual void DrawSpline( int n, wxPoint points[] ); - - virtual bool CanDrawBitmap(void) const = 0; - - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - inline void DrawIcon(const wxIcon& icon, const wxPoint& pt) - { - DrawIcon(icon, pt.x, pt.y); - } - - // TODO DrawBitmap is not always the same as DrawIcon, especially if bitmaps and - // icons are implemented differently. - void DrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask=FALSE ) - { DrawIcon( *((wxIcon*)(&bmp)), x, y, useMask ); } - - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ) = 0; - inline bool Blit(const wxPoint& destPt, const wxSize& sz, - wxDC *source, const wxPoint& srcPt, int rop = wxCOPY, bool useMask = FALSE) - { - return Blit(destPt.x, destPt.y, sz.x, sz.y, source, srcPt.x, srcPt.y, rop, useMask); - } - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ) = 0; - inline void DrawText(const wxString& text, const wxPoint& pt, bool use16bit = FALSE) - { - DrawText(text, pt.x, pt.y, use16bit); - } - - virtual bool CanGetTextExtent(void) const = 0; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16 = FALSE ) = 0; - virtual long GetCharWidth(void) = 0; - virtual long GetCharHeight(void) = 0; - - virtual void Clear(void) = 0; - - virtual void SetFont( const wxFont &font ) = 0; - virtual wxFont& GetFont(void) const { return (wxFont&) m_font; }; - - virtual void SetPen( const wxPen &pen ) = 0; - virtual wxPen& GetPen(void) const { return (wxPen&) m_pen; }; - - virtual void SetBrush( const wxBrush &brush ) = 0; - virtual wxBrush& GetBrush(void) const { return (wxBrush&) m_brush; }; - - virtual void SetBackground( const wxBrush &brush ) = 0; - virtual wxBrush& GetBackground(void) const { return (wxBrush&) m_backgroundBrush; }; - - virtual void SetLogicalFunction( int function ) = 0; - virtual int GetLogicalFunction(void) const { return m_logicalFunction; }; - - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual wxColour& GetTextBackground(void) const { return (wxColour&)m_textBackgroundColour; }; - virtual wxColour& GetTextForeground(void) const { return (wxColour&)m_textForegroundColour; }; - - virtual void SetBackgroundMode( int mode ) = 0; - virtual int GetBackgroundMode(void) const { return m_backgroundMode; }; - - virtual void SetPalette( const wxPalette& palette ) = 0; - void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }; - - // the first two must be overridden and called - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void DestroyClippingRegion(void); - virtual void GetClippingBox( long *x, long *y, long *width, long *height ) const; - - virtual inline long MinX(void) const { return m_minX; } - virtual inline long MaxX(void) const { return m_maxX; } - virtual inline long MinY(void) const { return m_minY; } - virtual inline long MaxY(void) const { return m_maxY; } - - virtual void GetSize( int* width, int* height ) const; - inline wxSize GetSize(void) const { int w, h; GetSize(&w, &h); return wxSize(w, h); } - virtual void GetSizeMM( long* width, long* height ) const; - - virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; }; - virtual void EndDoc(void) {}; - virtual void StartPage(void) {}; - virtual void EndPage(void) {}; - - virtual void SetMapMode( int mode ); - virtual int GetMapMode(void) const { return m_mappingMode; }; - - virtual void SetUserScale( double x, double y ); - virtual void GetUserScale( double *x, double *y ); - virtual void SetLogicalScale( double x, double y ); - virtual void GetLogicalScale( double *x, double *y ); - - virtual void SetLogicalOrigin( long x, long y ); - virtual void GetLogicalOrigin( long *x, long *y ); - virtual void SetDeviceOrigin( long x, long y ); - virtual void GetDeviceOrigin( long *x, long *y ); - virtual void SetInternalDeviceOrigin( long x, long y ); - virtual void GetInternalDeviceOrigin( long *x, long *y ); - - virtual void SetAxisOrientation( bool xLeftRight, bool yBottomUp ); - - virtual void SetOptimization( bool WXUNUSED(optimize) ) {}; - virtual bool GetOptimization(void) { return m_optimize; }; - - virtual long DeviceToLogicalX(long x) const; - virtual long DeviceToLogicalY(long y) const; - virtual long DeviceToLogicalXRel(long x) const; - virtual long DeviceToLogicalYRel(long y) const; - virtual long LogicalToDeviceX(long x) const; - virtual long LogicalToDeviceY(long y) const; - virtual long LogicalToDeviceXRel(long x) const; - virtual long LogicalToDeviceYRel(long y) const; - - public: - - void CalcBoundingBox( long x, long y ); - void ComputeScaleAndOrigin(void); - - long XDEV2LOG(long x) const - { - long new_x = x - m_deviceOriginX; - if (new_x > 0) - return (long)((double)(new_x) / m_scaleX + 0.5) * m_signX + m_logicalOriginX; - else - return (long)((double)(new_x) / m_scaleX - 0.5) * m_signX + m_logicalOriginX; - } - long XDEV2LOGREL(long x) const - { - if (x > 0) - return (long)((double)(x) / m_scaleX + 0.5); - else - return (long)((double)(x) / m_scaleX - 0.5); - } - long YDEV2LOG(long y) const - { - long new_y = y - m_deviceOriginY; - if (new_y > 0) - return (long)((double)(new_y) / m_scaleY + 0.5) * m_signY + m_logicalOriginY; - else - return (long)((double)(new_y) / m_scaleY - 0.5) * m_signY + m_logicalOriginY; - } - long YDEV2LOGREL(long y) const - { - if (y > 0) - return (long)((double)(y) / m_scaleY + 0.5); - else - return (long)((double)(y) / m_scaleY - 0.5); - } - long XLOG2DEV(long x) const - { - long new_x = x - m_logicalOriginX; - if (new_x > 0) - return (long)((double)(new_x) * m_scaleX + 0.5) * m_signX + m_deviceOriginX; - else - return (long)((double)(new_x) * m_scaleX - 0.5) * m_signX + m_deviceOriginX; - } - long XLOG2DEVREL(long x) const - { - if (x > 0) - return (long)((double)(x) * m_scaleX + 0.5); - else - return (long)((double)(x) * m_scaleX - 0.5); - } - long YLOG2DEV(long y) const - { - long new_y = y - m_logicalOriginY; - if (new_y > 0) - return (long)((double)(new_y) * m_scaleY + 0.5) * m_signY + m_deviceOriginY; - else - return (long)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY; - } - long YLOG2DEVREL(long y) const - { - if (y > 0) - return (long)((double)(y) * m_scaleY + 0.5); - else - return (long)((double)(y) * m_scaleY - 0.5); - } - - public: - - bool m_ok; - bool m_colour; - - // not sure, what these mean - bool m_clipping; // Is clipping on right now ? - bool m_isInteractive; // Is GetPixel possible ? - bool m_autoSetting; // wxMSW only ? - bool m_dontDelete; // wxMSW only ? - bool m_optimize; // wxMSW only ? - wxString m_filename; // Not sure where this belongs. - - wxPen m_pen; - wxBrush m_brush; - wxBrush m_backgroundBrush; - wxColour m_textForegroundColour; - wxColour m_textBackgroundColour; - wxFont m_font; - - int m_logicalFunction; - int m_backgroundMode; - int m_textAlignment; // gone in wxWin 2.0 ? - - int m_mappingMode; - - // not sure what for, but what is a mm on a screen you don't know the size of? - double m_mm_to_pix_x,m_mm_to_pix_y; - - long m_internalDeviceOriginX,m_internalDeviceOriginY; // If un-scrolled is non-zero or - // d.o. changes with scrolling. - // Set using SetInternalDeviceOrigin(). - - long m_externalDeviceOriginX,m_externalDeviceOriginY; // To be set by external classes - // such as wxScrolledWindow - // using SetDeviceOrigin() - - long m_deviceOriginX,m_deviceOriginY; // Sum of the two above. - - long m_logicalOriginX,m_logicalOriginY; // User defined. - - double m_scaleX,m_scaleY; - double m_logicalScaleX,m_logicalScaleY; - double m_userScaleX,m_userScaleY; - long m_signX,m_signY; - - bool m_needComputeScaleX,m_needComputeScaleY; // not yet used - - float m_scaleFactor; // wxPSDC wants to have this. Will disappear. - - long m_clipX1,m_clipY1,m_clipX2,m_clipY2; - long m_minX,m_maxX,m_minY,m_maxY; -}; - -#endif - // _WX_DC_H_ diff --git a/include/wx/stubs/dcclient.h b/include/wx/stubs/dcclient.h deleted file mode 100644 index 29e4e6f7a0..0000000000 --- a/include/wx/stubs/dcclient.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.h -// Purpose: wxClientDC, wxPaintDC and wxWindowDC classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCCLIENT_H_ -#define _WX_DCCLIENT_H_ - -#ifdef __GNUG__ -#pragma interface "dcclient.h" -#endif - -#include "wx/dc.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC; -class WXDLLEXPORT wxWindow; - -// Under Windows, wxClientDC, wxPaintDC and wxWindowDC are implemented differently. -// On many platforms, however, they will be the same. - -class WXDLLEXPORT wxWindowDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxWindowDC) - - public: - - wxWindowDC(void); - wxWindowDC( wxWindow *win ); - - ~wxWindowDC(void); - - virtual void FloodFill( long x1, long y1, const wxColour& col, int style=wxFLOOD_SURFACE ); - virtual bool GetPixel( long x1, long y1, wxColour *col ) const; - - virtual void DrawLine( long x1, long y1, long x2, long y2 ); - virtual void CrossHair( long x, long y ); - virtual void DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ); - virtual void DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ); - virtual void DrawPoint( long x, long y ); - - virtual void DrawLines( int n, wxPoint points[], long xoffset = 0, long yoffset = 0 ); - virtual void DrawLines( wxList *points, long xoffset = 0, long yoffset = 0 ); - virtual void DrawPolygon( int n, wxPoint points[], long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - virtual void DrawPolygon( wxList *lines, long xoffset = 0, long yoffset = 0, - int fillStyle=wxODDEVEN_RULE ); - - virtual void DrawRectangle( long x, long y, long width, long height ); - virtual void DrawRoundedRectangle( long x, long y, long width, long height, double radius = 20.0 ); - virtual void DrawEllipse( long x, long y, long width, long height ); - - virtual bool CanDrawBitmap(void) const; - virtual void DrawIcon( const wxIcon &icon, long x, long y, bool useMask=FALSE ); - virtual bool Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int logical_func = wxCOPY, bool useMask=FALSE ); - - virtual void DrawText( const wxString &text, long x, long y, bool use16 = FALSE ); - virtual bool CanGetTextExtent(void) const; - virtual void GetTextExtent( const wxString &string, long *width, long *height, - long *descent = NULL, long *externalLeading = NULL, - wxFont *theFont = NULL, bool use16 = FALSE ); - virtual long GetCharWidth(void); - virtual long GetCharHeight(void); - - virtual void Clear(void); - - virtual void SetFont( const wxFont &font ); - virtual void SetPen( const wxPen &pen ); - virtual void SetBrush( const wxBrush &brush ); - virtual void SetBackground( const wxBrush &brush ); - virtual void SetLogicalFunction( int function ); - virtual void SetTextForeground( const wxColour &col ); - virtual void SetTextBackground( const wxColour &col ); - virtual void SetBackgroundMode( int mode ); - virtual void SetPalette( const wxPalette& palette ); - - virtual void SetClippingRegion( long x, long y, long width, long height ); - virtual void SetClippingRegion( const wxRegion& region ) ; - virtual void DestroyClippingRegion(void); - - virtual void DrawSpline( wxList *points ); -}; - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxPaintDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxPaintDC) - - public: - - wxPaintDC(void):wxWindowDC() {}; - wxPaintDC( wxWindow *win ): wxWindowDC(win) {}; - -}; - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxClientDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxClientDC) - - public: - - wxClientDC(void):wxWindowDC() {}; - wxClientDC( wxWindow *win ): wxWindowDC(win) {}; - -}; - -#endif - // _WX_DCCLIENT_H_ diff --git a/include/wx/stubs/dcmemory.h b/include/wx/stubs/dcmemory.h deleted file mode 100644 index c6c5737642..0000000000 --- a/include/wx/stubs/dcmemory.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.h -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCMEMORY_H_ -#define _WX_DCMEMORY_H_ - -#ifdef __GNUG__ -#pragma interface "dcmemory.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxMemoryDC: public wxPaintDC -{ - DECLARE_DYNAMIC_CLASS(wxMemoryDC) - - public: - wxMemoryDC(void); - wxMemoryDC( wxDC *dc ); // Create compatible DC - ~wxMemoryDC(void); - virtual void SelectObject( const wxBitmap& bitmap ); - void GetSize( int *width, int *height ) const; - - private: - friend wxPaintDC; - wxBitmap m_selected; -}; - -#endif - // _WX_DCMEMORY_H_ diff --git a/include/wx/stubs/dcprint.h b/include/wx/stubs/dcprint.h deleted file mode 100644 index 2ea66d15bf..0000000000 --- a/include/wx/stubs/dcprint.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcprint.h -// Purpose: wxPrinterDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCPRINT_H_ -#define _WX_DCPRINT_H_ - -#ifdef __GNUG__ -#pragma interface "dcprint.h" -#endif - -#include "wx/dc.h" - -class WXDLLEXPORT wxPrinterDC: public wxDC -{ - public: - DECLARE_CLASS(wxPrinterDC) - - // Create a printer DC - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT); - - ~wxPrinterDC(); -}; - -#endif - // _WX_DCPRINT_H_ - diff --git a/include/wx/stubs/dcscreen.h b/include/wx/stubs/dcscreen.h deleted file mode 100644 index e04b450f69..0000000000 --- a/include/wx/stubs/dcscreen.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.h -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DCSCREEN_H_ -#define _WX_DCSCREEN_H_ - -#ifdef __GNUG__ -#pragma interface "dcscreen.h" -#endif - -#include "wx/dcclient.h" - -class WXDLLEXPORT wxScreenDC: public wxWindowDC -{ - DECLARE_DYNAMIC_CLASS(wxScreenDC) - - public: - // Create a DC representing the whole screen - wxScreenDC(); - ~wxScreenDC(); - - // Compatibility with X's requirements for - // drawing on top of all windows - static bool StartDrawingOnTop(wxWindow* WXUNUSED(window)) { return TRUE; } - static bool StartDrawingOnTop(wxRect* WXUNUSED(rect) = NULL) { return TRUE; } - static bool EndDrawingOnTop() { return TRUE; } -}; - -#endif - // _WX_DCSCREEN_H_ - diff --git a/include/wx/stubs/dialog.h b/include/wx/stubs/dialog.h deleted file mode 100644 index d68cc7c9a0..0000000000 --- a/include/wx/stubs/dialog.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.h -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIALOG_H_ -#define _WX_DIALOG_H_ - -#ifdef __GNUG__ -#pragma interface "dialog.h" -#endif - -#include "wx/panel.h" - -WXDLLEXPORT_DATA(extern const char*) wxDialogNameStr; - -// Dialog boxes -class WXDLLEXPORT wxDialog: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxDialog) -public: - - wxDialog(); - - // Constructor with a modal flag, but no window id - the old convention - inline wxDialog(wxWindow *parent, - const wxString& title, bool modal, - int x = -1, int y= -1, int width = 500, int height = 500, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - long modalStyle = modal ? wxDIALOG_MODAL : wxDIALOG_MODELESS ; - Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), style|modalStyle, name); - } - - // Constructor with no modal flag - the new convention. - inline wxDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& title, // bool modal = FALSE, // TODO make this a window style? - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const wxString& name = wxDialogNameStr); - - ~wxDialog(); - - virtual bool Destroy(); - void SetClientSize(int width, int height); - void GetPosition(int *x, int *y) const; - bool Show(bool show); - void Iconize(bool iconize); - - virtual bool IsIconized() const; - void Fit(); - - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void OnCharHook(wxKeyEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - void SetModal(bool flag); - - virtual void Centre(int direction = wxBOTH); - virtual bool IsModal() const { return ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL); } - - virtual int ShowModal(); - virtual void EndModal(int retCode); - - // Standard buttons - void OnOK(wxCommandEvent& event); - void OnApply(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_DIALOG_H_ diff --git a/include/wx/stubs/dirdlg.h b/include/wx/stubs/dirdlg.h deleted file mode 100644 index 44f96238e2..0000000000 --- a/include/wx/stubs/dirdlg.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.h -// Purpose: wxDirDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DIRDLG_H_ -#define _WX_DIRDLG_H_ - -#ifdef __GNUG__ -#pragma interface "dirdlg.h" -#endif - -#include "wx/dialog.h" - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; - -class WXDLLEXPORT wxDirDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxDirDialog) -public: - wxDirDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultPath = "", - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetStyle(long style) { m_dialogStyle = style; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline long GetStyle() const { return m_dialogStyle; } - - int ShowModal(); - -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_path; -}; - -#endif - // _WX_DIRDLG_H_ diff --git a/include/wx/stubs/dnd.h b/include/wx/stubs/dnd.h deleted file mode 100644 index 5a7a65335f..0000000000 --- a/include/wx/stubs/dnd.h +++ /dev/null @@ -1,238 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.h -// Purpose: Declaration of the wxDropTarget, wxDropSource class etc. -// Author: AUTHOR -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_DND_H_ -#define _WX_DND_H_ - -#ifdef __GNUG__ -#pragma interface "dnd.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/cursor.h" - -//------------------------------------------------------------------------- -// classes -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindow; - -class WXDLLEXPORT wxDataObject; -class WXDLLEXPORT wxTextDataObject; -class WXDLLEXPORT wxFileDataObject; - -class WXDLLEXPORT wxDropTarget; -class WXDLLEXPORT wxTextDropTarget; -class WXDLLEXPORT wxFileDropTarget; - -class WXDLLEXPORT wxDropSource; - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDataObject: public wxObject -{ -public: - // all data formats (values are the same as in windows.h, do not change!) - enum StdFormat - { - Invalid, - Text, - Bitmap, - MetafilePict, - Sylk, - Dif, - Tiff, - OemText, - Dib, - Palette, - Pendata, - Riff, - Wave, - UnicodeText, - EnhMetafile, - Hdrop, - Locale, - Max - }; - - // function to return symbolic name of clipboard format (debug messages) - static const char *GetFormatName(wxDataFormat format); - - // ctor & dtor - wxDataObject() {}; - ~wxDataObject() {}; - - // pure virtuals to override - // get the best suited format for our data - virtual wxDataFormat GetPreferredFormat() const = 0; - // decide if we support this format (should be one of values of - // StdFormat enumerations or a user-defined format) - virtual bool IsSupportedFormat(wxDataFormat format) const = 0; - // get the (total) size of data - virtual size_t GetDataSize() const = 0; - // copy raw data to provided pointer - virtual void GetDataHere(void *pBuf) const = 0; - -}; - -// ---------------------------------------------------------------------------- -// wxTextDataObject is a specialization of wxDataObject for text data -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextDataObject : public wxDataObject -{ -public: - // ctors - wxTextDataObject() { } - wxTextDataObject(const wxString& strText) : m_strText(strText) { } - void Init(const wxString& strText) { m_strText = strText; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_TEXT; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_TEXT; } - virtual size_t GetDataSize() const - { return m_strText.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_strText.c_str(), GetDataSize()); } - -private: - wxString m_strText; - -}; - -// ---------------------------------------------------------------------------- -// wxFileDataObject is a specialization of wxDataObject for file names -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileDataObject : public wxDataObject -{ -public: - - wxFileDataObject(void) { } - void AddFile( const wxString &file ) - { m_files += file; m_files += ";"; } - - // implement base class pure virtuals - virtual wxDataFormat GetPreferredFormat() const - { return wxDF_FILENAME; } - virtual bool IsSupportedFormat(wxDataFormat format) const - { return format == wxDF_FILENAME; } - virtual size_t GetDataSize() const - { return m_files.Len() + 1; } // +1 for trailing '\0'of course - virtual void GetDataHere(void *pBuf) const - { memcpy(pBuf, m_files.c_str(), GetDataSize()); } - -private: - wxString m_files; - -}; -//------------------------------------------------------------------------- -// wxDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxDropTarget: public wxObject -{ - public: - - wxDropTarget(); - ~wxDropTarget(); - - virtual void OnEnter() { } - virtual void OnLeave() { } - virtual bool OnDrop( long x, long y, const void *pData ) = 0; - -// protected: - - friend wxWindow; - - // Override these to indicate what kind of data you support: - - virtual size_t GetFormatCount() const = 0; - virtual wxDataFormat GetFormat(size_t n) const = 0; -}; - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -class WXDLLEXPORT wxTextDropTarget: public wxDropTarget -{ - public: - - wxTextDropTarget() {}; - virtual bool OnDrop( long x, long y, const void *pData ); - virtual bool OnDropText( long x, long y, const char *psz ); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -// ---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxFileDropTarget: public wxDropTarget -{ - public: - - wxFileDropTarget() {}; - - virtual bool OnDrop(long x, long y, const void *pData); - virtual bool OnDropFiles( long x, long y, - size_t nFiles, const char * const aszFiles[]); - - protected: - - virtual size_t GetFormatCount() const; - virtual wxDataFormat GetFormat(size_t n) const; -}; - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -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 - wxDragCancel // the operation was cancelled by user (not an error) - }; - -class WXDLLEXPORT wxDropSource: public wxObject -{ - public: - - wxDropSource( wxWindow *win ); - wxDropSource( wxDataObject &data, wxWindow *win ); - - ~wxDropSource(void); - - void SetData( wxDataObject &data ); - wxDragResult DoDragDrop( bool bAllowMove = FALSE ); - - virtual bool GiveFeedback( wxDragResult WXUNUSED(effect), bool WXUNUSED(bScrolling) ) { return TRUE; }; - - protected: - - wxDataObject *m_data; -}; - -#endif - //_WX_DND_H_ - diff --git a/include/wx/stubs/filedlg.h b/include/wx/stubs/filedlg.h deleted file mode 100644 index bd6075eb15..0000000000 --- a/include/wx/stubs/filedlg.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.h -// Purpose: wxFileDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FILEDLG_H_ -#define _WX_FILEDLG_H_ - -#ifdef __GNUG__ -#pragma interface "filedlg.h" -#endif - -#include "wx/dialog.h" - -/* - * File selector - */ - -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorPromptStr; -WXDLLEXPORT_DATA(extern const char*) wxFileSelectorDefaultWildcardStr; - -class WXDLLEXPORT wxFileDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFileDialog) -protected: - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; - wxString m_dir; - wxString m_path; // Full path - wxString m_fileName; - wxString m_wildCard; - int m_filterIndex; -public: - wxFileDialog(wxWindow *parent, const wxString& message = wxFileSelectorPromptStr, - const wxString& defaultDir = "", const wxString& defaultFile = "", const wxString& wildCard = wxFileSelectorDefaultWildcardStr, - long style = 0, const wxPoint& pos = wxDefaultPosition); - - inline void SetMessage(const wxString& message) { m_message = message; } - inline void SetPath(const wxString& path) { m_path = path; } - inline void SetDirectory(const wxString& dir) { m_dir = dir; } - inline void SetFilename(const wxString& name) { m_fileName = name; } - inline void SetWildcard(const wxString& wildCard) { m_wildCard = wildCard; } - inline void SetStyle(long style) { m_dialogStyle = style; } - inline void SetFilterIndex(int filterIndex) { m_filterIndex = filterIndex; } - - inline wxString GetMessage() const { return m_message; } - inline wxString GetPath() const { return m_path; } - inline wxString GetDirectory() const { return m_dir; } - inline wxString GetFilename() const { return m_fileName; } - inline wxString GetWildcard() const { return m_wildCard; } - inline long GetStyle() const { return m_dialogStyle; } - inline int GetFilterIndex() const { return m_filterIndex ; } - - int ShowModal(); -}; - -#define wxOPEN 0x0001 -#define wxSAVE 0x0002 -#define wxOVERWRITE_PROMPT 0x0004 -#define wxHIDE_READONLY 0x0008 -#define wxFILE_MUST_EXIST 0x0010 - -// File selector - backward compatibility -WXDLLEXPORT wxString wxFileSelector(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL, - const char *default_filename = NULL, const char *default_extension = NULL, - const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0, - wxWindow *parent = NULL, int x = -1, int y = -1); - -// An extended version of wxFileSelector -WXDLLEXPORT wxString wxFileSelectorEx(const char *message = wxFileSelectorPromptStr, const char *default_path = NULL, - const char *default_filename = NULL, int *indexDefaultExtension = NULL, - const char *wildcard = wxFileSelectorDefaultWildcardStr, int flags = 0, - wxWindow *parent = NULL, int x = -1, int y = -1); - -// Generic file load dialog -WXDLLEXPORT wxString wxLoadFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL); - -// Generic file save dialog -WXDLLEXPORT wxString wxSaveFileSelector(const char *what, const char *extension, const char *default_name = NULL, wxWindow *parent = NULL); - -#endif - // _WX_FILEDLG_H_ diff --git a/include/wx/stubs/font.h b/include/wx/stubs/font.h deleted file mode 100644 index aff8fb3a75..0000000000 --- a/include/wx/stubs/font.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.h -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONT_H_ -#define _WX_FONT_H_ - -#ifdef __GNUG__ -#pragma interface "font.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxFont; - -class WXDLLEXPORT wxFontRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxFont; -public: - wxFontRefData(); - wxFontRefData(const wxFontRefData& data); - ~wxFontRefData(); -protected: - int m_pointSize; - int m_family; - int m_style; - int m_weight; - bool m_underlined; - wxString m_faceName; -/* TODO: implementation - WXHFONT m_hFont; -*/ -}; - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Font -class WXDLLEXPORT wxFont: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxFont) -public: - wxFont(); - wxFont(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - inline wxFont(const wxFont& font) { Ref(font); } - - ~wxFont(); - - bool Create(int pointSize, int family, int style, int weight, bool underlined = FALSE, const wxString& faceName = wxEmptyString); - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline int GetPointSize() const { return M_FONTDATA->m_pointSize; } - inline int GetFamily() const { return M_FONTDATA->m_family; } - inline int GetStyle() const { return M_FONTDATA->m_style; } - inline int GetWeight() const { return M_FONTDATA->m_weight; } - wxString GetFamilyString() const ; - wxString GetFaceName() const ; - wxString GetStyleString() const ; - wxString GetWeightString() const ; - inline bool GetUnderlined() const { return M_FONTDATA->m_underlined; } - - void SetPointSize(int pointSize); - void SetFamily(int family); - void SetStyle(int style); - void SetWeight(int weight); - void SetFaceName(const wxString& faceName); - void SetUnderlined(bool underlined); - - inline wxFont& operator = (const wxFont& font) { if (*this == font) return (*this); Ref(font); return *this; } - inline bool operator == (const wxFont& font) { return m_refData == font.m_refData; } - inline bool operator != (const wxFont& font) { return m_refData != font.m_refData; } - - // Implementation -protected: - bool RealizeResource(); - void Unshare(); -}; - -#endif - // _WX_FONT_H_ diff --git a/include/wx/stubs/fontdlg.h b/include/wx/stubs/fontdlg.h deleted file mode 100644 index 39da6fd967..0000000000 --- a/include/wx/stubs/fontdlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.h -// Purpose: wxFontDialog class. Use generic version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FONTDLG_H_ -#define _WX_FONTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "fontdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * Font dialog - */ - -class WXDLLEXPORT wxFontDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxFontDialog) -public: - wxFontDialog(); - wxFontDialog(wxWindow *parent, wxFontData *data = NULL); - - bool Create(wxWindow *parent, wxFontData *data = NULL); - - int ShowModal(); - wxFontData& GetFontData() { return m_fontData; } - -protected: - wxWindow* m_dialogParent; - wxFontData m_fontData; -}; - -#endif - // _WX_FONTDLG_H_ - diff --git a/include/wx/stubs/frame.h b/include/wx/stubs/frame.h deleted file mode 100644 index 64ec0d6cd1..0000000000 --- a/include/wx/stubs/frame.h +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.h -// Purpose: wxFrame class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_FRAME_H_ -#define _WX_FRAME_H_ - -#ifdef __GNUG__ -#pragma interface "frame.h" -#endif - -#include "wx/window.h" -#include "wx/toolbar.h" -#include "wx/accel.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxStatusBar; - -class WXDLLEXPORT wxFrame: public wxWindow { - - DECLARE_DYNAMIC_CLASS(wxFrame) - -public: - wxFrame(); - inline wxFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - virtual bool Destroy(); - void SetClientSize(int width, int height); - void GetClientSize(int *width, int *height) const; - - void GetSize(int *width, int *height) const ; - void GetPosition(int *x, int *y) const ; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void ClientToScreen(int *x, int *y) const; - void ScreenToClient(int *x, int *y) const; - - void OnSize(wxSizeEvent& event); - void OnMenuHighlight(wxMenuEvent& event); - void OnActivate(wxActivateEvent& event); - void OnIdle(wxIdleEvent& event); - void OnCloseWindow(wxCloseEvent& event); - - bool Show(bool show); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - virtual wxMenuBar *GetMenuBar() const ; - - // Set title - void SetTitle(const wxString& title); - wxString GetTitle() const ; - - void Centre(int direction = wxBOTH); - - // Call this to simulate a menu command - virtual void Command(int id); - virtual void ProcessCommand(int id); - - // Set icon - virtual void SetIcon(const wxIcon& icon); - - // Create status line - virtual wxStatusBar* CreateStatusBar(int number=1, long style = wxST_SIZEGRIP, wxWindowID id = 0, - const wxString& name = "statusBar"); - inline wxStatusBar *GetStatusBar() const { return m_frameStatusBar; } - virtual void PositionStatusBar(); - virtual wxStatusBar *OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name); - - // Create toolbar - virtual wxToolBar* CreateToolBar(long style = wxNO_BORDER|wxTB_HORIZONTAL, wxWindowID id = -1, const wxString& name = wxToolBarNameStr); - virtual wxToolBar *OnCreateToolBar(long style, wxWindowID id, const wxString& name); - // If made known to the frame, the frame will manage it automatically. - virtual inline void SetToolBar(wxToolBar *toolbar) { m_frameToolBar = toolbar; } - virtual inline wxToolBar *GetToolBar() const { return m_frameToolBar; } - virtual void PositionToolBar(); - - // Set status line text - virtual void SetStatusText(const wxString& text, int number = 0); - - // Set status line widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - // Hint to tell framework which status bar to use - // TODO: should this go into a wxFrameworkSettings class perhaps? - static void UseNativeStatusBar(bool useNative) { m_useNativeStatusBar = useNative; }; - static bool UsesNativeStatusBar() { return m_useNativeStatusBar; }; - - // Fit frame around subwindows - virtual void Fit(); - - // Iconize - virtual void Iconize(bool iconize); - - virtual bool IsIconized() const ; - - // Compatibility - inline bool Iconized() const { return IsIconized(); } - - // Is the frame maximized? - virtual bool IsMaximized(void) const ; - - virtual void Maximize(bool maximize); - - // Responds to colour changes - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Query app for menu item updates (called from OnIdle) - void DoMenuUpdates(); - void DoMenuUpdates(wxMenu* menu, wxWindow* focusWin); - - // Checks if there is a toolbar, and returns the first free client position - virtual wxPoint GetClientAreaOrigin() const; - -protected: - wxMenuBar * m_frameMenuBar; - wxStatusBar * m_frameStatusBar; - wxIcon m_icon; - bool m_iconized; - static bool m_useNativeStatusBar; - wxToolBar * m_frameToolBar ; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_FRAME_H_ diff --git a/include/wx/stubs/gauge.h b/include/wx/stubs/gauge.h deleted file mode 100644 index ce19d9ef1f..0000000000 --- a/include/wx/stubs/gauge.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.h -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GAUGE_H_ -#define _WX_GAUGE_H_ - -#ifdef __GNUG__ -#pragma interface "gauge.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxGaugeNameStr; - -// Group box -class WXDLLEXPORT wxGauge: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxGauge) - public: - inline wxGauge() { m_rangeMax = 0; m_gaugePos = 0; } - - inline wxGauge(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr) - { - Create(parent, id, range, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxGaugeNameStr); - - void SetShadowWidth(int w); - void SetBezelFace(int w); - void SetRange(int r); - void SetValue(int pos); - - int GetShadowWidth() const ; - int GetBezelFace() const ; - int GetRange() const ; - int GetValue() const ; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {} ; - - protected: - int m_rangeMax; - int m_gaugePos; -}; - -#endif - // _WX_GAUGE_H_ diff --git a/include/wx/stubs/gdiobj.h b/include/wx/stubs/gdiobj.h deleted file mode 100644 index 9263d4d6ad..0000000000 --- a/include/wx/stubs/gdiobj.h +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.h -// Purpose: wxGDIObject class: base class for other GDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_GDIOBJ_H_ -#define _WX_GDIOBJ_H_ - -#include "wx/object.h" - -#ifdef __GNUG__ -#pragma interface "gdiobj.h" -#endif - -class WXDLLEXPORT wxGDIRefData: public wxObjectRefData { -public: - inline wxGDIRefData() - { - } -}; - -#define M_GDIDATA ((wxGDIRefData *)m_refData) - -class WXDLLEXPORT wxGDIObject: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxGDIObject) - public: - inline wxGDIObject() { m_visible = FALSE; }; - inline ~wxGDIObject() {}; - - inline bool IsNull() const { return (m_refData == 0); } - - virtual bool GetVisible() { return m_visible; } - virtual void SetVisible(bool v) { m_visible = v; } - -protected: - bool m_visible; // Can a pointer to this object be safely taken? - // - only if created within FindOrCreate... -}; - -#endif - // _WX_GDIOBJ_H_ diff --git a/include/wx/stubs/helpxxxx.h b/include/wx/stubs/helpxxxx.h deleted file mode 100644 index d53c28b7e4..0000000000 --- a/include/wx/stubs/helpxxxx.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.h -// Purpose: Help system: native implementation for your system. Replace -// XXXX with suitable name. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_HELPXXXX_H_ -#define _WX_HELPXXXX_H_ - -#ifdef __GNUG__ -#pragma interface "helpxxxx.h" -#endif - -#include "wx/wx.h" - -#include "wx/helpbase.h" - -class WXDLLEXPORT wxXXXXHelpController: public wxHelpControllerBase -{ - DECLARE_CLASS(wxXXXXHelpController) - - public: - wxXXXXHelpController(); - ~wxXXXXHelpController(); - - // Must call this to set the filename and server name - virtual bool Initialize(const wxString& file); - - // If file is "", reloads file given in Initialize - virtual bool LoadFile(const wxString& file = ""); - virtual bool DisplayContents(); - virtual bool DisplaySection(int sectionNo); - virtual bool DisplayBlock(long blockNo); - virtual bool KeywordSearch(const wxString& k); - - virtual bool Quit(); - virtual void OnQuit(); - - inline wxString GetHelpFile() const { return m_helpFile; } - -protected: - wxString m_helpFile; -}; - -#endif - // _WX_HELPXXXX_H_ diff --git a/include/wx/stubs/icon.h b/include/wx/stubs/icon.h deleted file mode 100644 index df475672ba..0000000000 --- a/include/wx/stubs/icon.h +++ /dev/null @@ -1,106 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.h -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ICON_H_ -#define _WX_ICON_H_ - -#ifdef __GNUG__ -#pragma interface "icon.h" -#endif - -#include "wx/bitmap.h" - -class WXDLLEXPORT wxIconRefData: public wxBitmapRefData -{ - friend class WXDLLEXPORT wxBitmap; - friend class WXDLLEXPORT wxIcon; -public: - wxIconRefData(); - ~wxIconRefData(); - -public: -/* TODO: whatever your actual icon handle is - WXHICON m_hIcon; -*/ -}; - -#define M_ICONDATA ((wxIconRefData *)m_refData) -#define M_ICONHANDLERDATA ((wxIconRefData *)bitmap->GetRefData()) - -// Icon -class WXDLLEXPORT wxIcon: public wxBitmap -{ - DECLARE_DYNAMIC_CLASS(wxIcon) - -public: - wxIcon(); - - // Copy constructors - inline wxIcon(const wxIcon& icon) { Ref(icon); } - - wxIcon(const char bits[], int width, int height); - wxIcon(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - ~wxIcon(); - - bool LoadFile(const wxString& name, long flags = wxBITMAP_TYPE_ICO_RESOURCE, - int desiredWidth = -1, int desiredHeight = -1); - - inline wxIcon& operator = (const wxIcon& icon) { if (*this == icon) return (*this); Ref(icon); return *this; } - inline bool operator == (const wxIcon& icon) { return m_refData == icon.m_refData; } - inline bool operator != (const wxIcon& icon) { return m_refData != icon.m_refData; } - -/* TODO: implementation - void SetHICON(WXHICON ico); - inline WXHICON GetHICON() const { return (M_ICONDATA ? M_ICONDATA->m_hIcon : 0); } -*/ - -/* TODO */ - virtual bool Ok() const { return (m_refData != NULL) ; } -}; - -/* Example handlers. TODO: write your own handlers for relevant types. - -class WXDLLEXPORT wxICOFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxICOFileHandler) -public: - inline wxICOFileHandler() - { - m_name = "ICO icon file"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); -}; - -class WXDLLEXPORT wxICOResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxICOResourceHandler) -public: - inline wxICOResourceHandler() - { - m_name = "ICO resource"; - m_extension = "ico"; - m_type = wxBITMAP_TYPE_ICO_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); - -}; - -*/ - -#endif - // _WX_ICON_H_ diff --git a/include/wx/stubs/imaglist.h b/include/wx/stubs/imaglist.h deleted file mode 100644 index 7e66ffb36a..0000000000 --- a/include/wx/stubs/imaglist.h +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.h -// Purpose: wxImageList class. Note: if your GUI doesn't have -// an image list equivalent, you can use the generic class -// in src/generic. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_IMAGLIST_H_ -#define _WX_IMAGLIST_H_ - -#ifdef __GNUG__ -#pragma interface "imaglist.h" -#endif - -#include "wx/bitmap.h" - -/* - * wxImageList is used for wxListCtrl, wxTreeCtrl. These controls refer to - * images for their items by an index into an image list. - * A wxImageList is capable of creating images with optional masks from - * a variety of sources - a single bitmap plus a colour to indicate the mask, - * two bitmaps, or an icon. - * - */ - -// Flags for Draw -#define wxIMAGELIST_DRAW_NORMAL 0x0001 -#define wxIMAGELIST_DRAW_TRANSPARENT 0x0002 -#define wxIMAGELIST_DRAW_SELECTED 0x0004 -#define wxIMAGELIST_DRAW_FOCUSED 0x0008 - -// Flag values for Set/GetImageList -enum { - wxIMAGE_LIST_NORMAL, // Normal icons - wxIMAGE_LIST_SMALL, // Small icons - wxIMAGE_LIST_STATE // State icons: unimplemented (see WIN32 documentation) -}; - -// Eventually we'll make this a reference-counted wxGDIObject. For -// now, the app must take care of ownership issues. That is, the -// image lists must be explicitly deleted after the control(s) that uses them -// is (are) deleted, or when the app exits. -class WXDLLEXPORT wxImageList: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxImageList) - public: - /* - * Public interface - */ - - wxImageList(); - - // Creates an image list. - // Specify the width and height of the images in the list, - // whether there are masks associated with them (e.g. if creating images - // from icons), and the initial size of the list. - inline wxImageList(int width, int height, bool mask = TRUE, int initialCount = 1) - { - Create(width, height, mask, initialCount); - } - ~wxImageList(); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Returns the number of images in the image list. - int GetImageCount() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Creates an image list - // width, height specify the size of the images in the list (all the same). - // mask specifies whether the images have masks or not. - // initialNumber is the initial number of images to reserve. - bool Create(int width, int height, bool mask = TRUE, int initialNumber = 1); - - // Adds a bitmap, and optionally a mask bitmap. - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Add. - int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - - // Adds a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates *new* bitmaps, so you may delete - // 'bitmap' after calling Add. - int Add(const wxBitmap& bitmap, const wxColour& maskColour); - - // Adds a bitmap and mask from an icon. - int Add(const wxIcon& icon); - - // Replaces a bitmap, optionally passing a mask bitmap. - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap' and 'mask' after calling Replace. - bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - -/* Not supported by Win95 - // Replacing a bitmap, using the specified colour to create the mask bitmap - // Note that wxImageList creates new bitmaps, so you may delete - // 'bitmap'. - bool Replace(int index, const wxBitmap& bitmap, const wxColour& maskColour); -*/ - - // Replaces a bitmap and mask from an icon. - // You can delete 'icon' after calling Replace. - bool Replace(int index, const wxIcon& icon); - - // Removes the image at the given index. - bool Remove(int index); - - // Remove all images - bool RemoveAll(); - - // Draws the given image on a dc at the specified position. - // If 'solidBackground' is TRUE, Draw sets the image list background - // colour to the background colour of the wxDC, to speed up - // drawing by eliminating masked drawing where possible. - bool Draw(int index, wxDC& dc, int x, int y, - int flags = wxIMAGELIST_DRAW_NORMAL, bool solidBackground = FALSE); - -/* TODO (optional?) - wxIcon *MakeIcon(int index); -*/ - -/* TODO - // Implementation - //////////////////////////////////////////////////////////////////////////// - - // Returns the native image list handle - inline WXHIMAGELIST GetHIMAGELIST() const { return m_hImageList; } - -protected: - WXHIMAGELIST m_hImageList; -*/ - -}; - -#endif - // _WX_IMAGLIST_H_ diff --git a/include/wx/stubs/joystick.h b/include/wx/stubs/joystick.h deleted file mode 100644 index 30324fc035..0000000000 --- a/include/wx/stubs/joystick.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.h -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_JOYSTICK_H_ -#define _WX_JOYSTICK_H_ - -#ifdef __GNUG__ -#pragma interface "joystick.h" -#endif - -#include "wx/event.h" - -class WXDLLEXPORT wxJoystick: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxJoystick) - public: - /* - * Public interface - */ - - wxJoystick(int joystick = wxJOYSTICK1) { m_joystick = joystick; }; - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - wxPoint GetPosition() const; - int GetZPosition() const; - int GetButtonState() const; - int GetPOVPosition() const; - int GetPOVCTSPosition() const; - int GetRudderPosition() const; - int GetUPosition() const; - int GetVPosition() const; - int GetMovementThreshold() const; - void SetMovementThreshold(int threshold) ; - - // Capabilities - //////////////////////////////////////////////////////////////////////////// - - bool IsOk() const; // Checks that the joystick is functioning - int GetNumberJoysticks() const ; - int GetManufacturerId() const ; - int GetProductId() const ; - wxString GetProductName() const ; - int GetXMin() const; - int GetYMin() const; - int GetZMin() const; - int GetXMax() const; - int GetYMax() const; - int GetZMax() const; - int GetNumberButtons() const; - int GetNumberAxes() const; - int GetMaxButtons() const; - int GetMaxAxes() const; - int GetPollingMin() const; - int GetPollingMax() const; - int GetRudderMin() const; - int GetRudderMax() const; - int GetUMin() const; - int GetUMax() const; - int GetVMin() const; - int GetVMax() const; - - bool HasRudder() const; - bool HasZ() const; - bool HasU() const; - bool HasV() const; - bool HasPOV() const; - bool HasPOV4Dir() const; - bool HasPOVCTS() const; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // pollingFreq = 0 means that movement events are sent when above the threshold. - // If pollingFreq > 0, events are received every this many milliseconds. - bool SetCapture(wxWindow* win, int pollingFreq = 0); - bool ReleaseCapture(); - -protected: - int m_joystick; -}; - -#endif - // _WX_JOYSTICK_H_ diff --git a/include/wx/stubs/listbox.h b/include/wx/stubs/listbox.h deleted file mode 100644 index d95db4379b..0000000000 --- a/include/wx/stubs/listbox.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.h -// Purpose: wxListBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTBOX_H_ -#define _WX_LISTBOX_H_ - -#ifdef __GNUG__ -#pragma interface "listbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxListBoxNameStr; - -// forward decl for GetSelections() -class WXDLLEXPORT wxArrayInt; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// List box item -class WXDLLEXPORT wxListBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListBox) - public: - - wxListBox(); - inline wxListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr) - { - Create(parent, id, pos, size, n, choices, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxListBoxNameStr); - - ~wxListBox(); - - virtual void Append(const wxString& item); - virtual void Append(const wxString& item, char *clientData); - virtual void Set(int n, const wxString* choices, char **clientData = NULL); - virtual int FindString(const wxString& s) const ; - virtual void Clear(); - virtual void SetSelection(int n, bool select = TRUE); - - virtual void Deselect(int n); - - // For single choice list item only - virtual int GetSelection() const ; - virtual void Delete(int n); - virtual char *GetClientData(int n) const ; - virtual void SetClientData(int n, char *clientData); - virtual void SetString(int n, const wxString& s); - - // For single or multiple choice list item - virtual int GetSelections(wxArrayInt& aSelections) const; - virtual bool Selected(int n) const ; - virtual wxString GetString(int n) const ; - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - // Set the specified item at the first visible item - // or scroll to max range. - virtual void SetFirstItem(int n) ; - virtual void SetFirstItem(const wxString& s) ; - - virtual void InsertItems(int nItems, const wxString items[], int pos); - - virtual wxString GetStringSelection() const ; - virtual bool SetStringSelection(const wxString& s, bool flag = TRUE); - virtual int Number() const ; - - void Command(wxCommandEvent& event); - - protected: - int m_noItems; - int m_selected; -}; - -#endif - // _WX_LISTBOX_H_ diff --git a/include/wx/stubs/listctrl.h b/include/wx/stubs/listctrl.h deleted file mode 100644 index 6dfc25df98..0000000000 --- a/include/wx/stubs/listctrl.h +++ /dev/null @@ -1,451 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.h -// Purpose: wxListCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_LISTCTRL_H_ -#define _WX_LISTCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "listctrl.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -/* - The wxListCtrl can show lists of items in four different modes: - wxLC_LIST: multicolumn list view, with optional small icons (icons could be - optional for some platforms). Columns are computed automatically, - i.e. you don't set columns as in wxLC_REPORT. In other words, - the list wraps, unlike a wxListBox. - wxLC_REPORT: single or multicolumn report view (with optional header) - wxLC_ICON: large icon view, with optional labels - wxLC_SMALL_ICON: small icon view, with optional labels - - You can change the style dynamically, either with SetSingleStyle or - SetWindowStyleFlag. - - Further window styles: - - wxLC_ALIGN_TOP icons align to the top (default) - wxLC_ALIGN_LEFT icons align to the left - wxLC_AUTOARRANGE icons arrange themselves - wxLC_USER_TEXT the app provides label text on demand, except for column headers - wxLC_EDIT_LABELS labels are editable: app will be notified. - wxLC_NO_HEADER no header in report mode - wxLC_NO_SORT_HEADER can't click on header - wxLC_SINGLE_SEL single selection - wxLC_SORT_ASCENDING sort ascending (must still supply a comparison callback in SortItems) - wxLC_SORT_DESCENDING sort descending (ditto) - - Items are referred to by their index (position in the list starting from zero). - - Label text is supplied via insertion/setting functions and is stored by the - control, unless the wxLC_USER_TEXT style has been specified, in which case - the app will be notified when text is required (see sample). - - Images are dealt with by (optionally) associating 3 image lists with the control. - Zero-based indexes into these image lists indicate which image is to be used for - which item. Each image in an image list can contain a mask, and can be made out - of either a bitmap, two bitmaps or an icon. See ImagList.h for more details. - - Notifications are passed via the wxWindows 2.0 event system. - - See the sample wxListCtrl app for API usage. - - */ - -// Mask flags to tell app/GUI what fields of wxListItem are valid -#define wxLIST_MASK_STATE 0x0001 -#define wxLIST_MASK_TEXT 0x0002 -#define wxLIST_MASK_IMAGE 0x0004 -#define wxLIST_MASK_DATA 0x0008 -#define wxLIST_SET_ITEM 0x0010 -#define wxLIST_MASK_WIDTH 0x0020 -#define wxLIST_MASK_FORMAT 0x0040 - -// State flags for indicating the state of an item -#define wxLIST_STATE_DONTCARE 0x0000 -#define wxLIST_STATE_DROPHILITED 0x0001 -#define wxLIST_STATE_FOCUSED 0x0002 -#define wxLIST_STATE_SELECTED 0x0004 -#define wxLIST_STATE_CUT 0x0008 - -// Hit test flags, used in HitTest -#define wxLIST_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxLIST_HITTEST_BELOW 0x0002 // Below the client area. -#define wxLIST_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxLIST_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxLIST_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxLIST_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxLIST_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxLIST_HITTEST_TOLEFT 0x0400 // To the left of the client area. -#define wxLIST_HITTEST_TORIGHT 0x0800 // To the right of the client area. - -#define wxLIST_HITTEST_ONITEM (wxLIST_HITTEST_ONITEMICON | wxLIST_HITTEST_ONITEMLABEL wxLIST_HITTEST_ONITEMSTATEICON) - -// Flags for GetNextItem -enum { - wxLIST_NEXT_ABOVE, // Searches for an item above the specified item - wxLIST_NEXT_ALL, // Searches for subsequent item by index - wxLIST_NEXT_BELOW, // Searches for an item below the specified item - wxLIST_NEXT_LEFT, // Searches for an item to the left of the specified item - wxLIST_NEXT_RIGHT, // Searches for an item to the right of the specified item -}; - -// Alignment flags for Arrange -enum { - wxLIST_ALIGN_DEFAULT, - wxLIST_ALIGN_LEFT, - wxLIST_ALIGN_TOP, - wxLIST_ALIGN_SNAP_TO_GRID -}; - -// Column format -enum { - wxLIST_FORMAT_LEFT, - wxLIST_FORMAT_RIGHT, - wxLIST_FORMAT_CENTRE, - wxLIST_FORMAT_CENTER = wxLIST_FORMAT_CENTRE -}; - -// Autosize values for SetColumnWidth -enum { - wxLIST_AUTOSIZE = -1, - wxLIST_AUTOSIZE_USEHEADER = -2 -}; - -// Flag values for GetItemRect -enum { - wxLIST_RECT_BOUNDS, - wxLIST_RECT_ICON, - wxLIST_RECT_LABEL -}; - -// Flag values for FindItem -enum { - wxLIST_FIND_UP, - wxLIST_FIND_DOWN, - wxLIST_FIND_LEFT, - wxLIST_FIND_RIGHT -}; - -// wxListItem: data representing an item, or report field. -// It also doubles up to represent entire column information -// when inserting or setting a column. -class WXDLLEXPORT wxListItem: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxListItem) -public: - long m_mask; // Indicates what fields are valid - long m_itemId; // The zero-based item position - int m_col; // Zero-based column, if in report mode - long m_state; // The state of the item - long m_stateMask; // Which flags of m_state are valid (uses same flags) - wxString m_text; // The label/header text - int m_image; // The zero-based index into an image list - long m_data; // App-defined data - - // For columns only - int m_format; // left, right, centre - int m_width; // width of column - - wxListItem(); -}; - -// type of compare function for wxListCtrl sort operation -typedef int (*wxListCtrlCompare)(long item1, long item2, long sortData); - -class WXDLLEXPORT wxListCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxListCtrl) - public: - /* - * Public interface - */ - - wxListCtrl(); - - inline wxListCtrl(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, - const wxString& name = "listCtrl") - { - Create(parent, id, pos, size, style, validator, name); - } - ~wxListCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "wxListCtrl"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - // Gets information about this column - bool GetColumn(int col, wxListItem& item) const; - - // Sets information about this column - bool SetColumn(int col, wxListItem& item) ; - - // Gets the column width - int GetColumnWidth(int col) const; - - // Sets the column width - bool SetColumnWidth(int col, int width) ; - - // 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) - int GetCountPerPage() const; - - // Gets the edit control for editing labels. - wxTextCtrl* GetEditControl() const; - - // Gets information about the item - bool GetItem(wxListItem& info) const ; - - // Sets information about the item - bool SetItem(wxListItem& info) ; - - // Sets a string field at a particular column - long SetItem(long index, int col, const wxString& label, int imageId = -1); - - // Gets the item state - int GetItemState(long item, long stateMask) const ; - - // Sets the item state - bool SetItemState(long item, long state, long stateMask) ; - - // Sets the item image - bool SetItemImage(long item, int image, int selImage) ; - - // Gets the item text - wxString GetItemText(long item) const ; - - // Sets the item text - void SetItemText(long item, const wxString& str) ; - - // Gets the item data - long GetItemData(long item) const ; - - // Sets the item data - bool SetItemData(long item, long data) ; - - // Gets the item rectangle - bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ; - - // Gets the item position - bool GetItemPosition(long item, wxPoint& pos) const ; - - // Sets the item position - bool SetItemPosition(long item, const wxPoint& pos) ; - - // Gets the number of items in the list control - int GetItemCount() const; - - // Gets the number of columns in the list control - int GetColumnCount() const; - - // Retrieves the spacing between icons in pixels. - // If small is TRUE, gets the spacing for the small icon - // view, otherwise the large icon view. - int GetItemSpacing(bool isSmall) const; - - // Gets the number of selected items in the list control - int GetSelectedItemCount() const; - - // Gets the text colour of the listview - wxColour GetTextColour() const; - - // Sets the text colour of the listview - void SetTextColour(const wxColour& col); - - // Gets the index of the topmost visible item when in - // list or report view - long GetTopItem() const ; - - // Add or remove a single window style - void SetSingleStyle(long style, bool add = TRUE) ; - - // Set the whole window style - void SetWindowStyleFlag(long style) ; - - // Searches for an item, starting from 'item'. - // item can be -1 to find the first item that matches the - // specified flags. - // Returns the item or -1 if unsuccessful. - long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const ; - - // Implementation: converts wxWindows style to MSW style. - // Can be a single style flag or a bit list. - // oldStyle is 'normalised' so that it doesn't contain - // conflicting styles. - long ConvertToMSWStyle(long& oldStyle, long style) const; - - // Gets one of the three image lists - wxImageList *GetImageList(int which) const ; - - // Sets the image list - // N.B. There's a quirk in the Win95 list view implementation. - // If in wxLC_LIST mode, it'll *still* display images by the labels if - // there's a small-icon image list set for the control - even though you - // haven't specified wxLIST_MASK_IMAGE when inserting. - // So you have to set a NULL small-icon image list to be sure that - // the wxLC_LIST mode works without icons. Of course, you may want icons... - void SetImageList(wxImageList *imageList, int which) ; - - // Operations - //////////////////////////////////////////////////////////////////////////// - - // Arranges the items - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - - // Deletes an item - bool DeleteItem(long item); - - // Deletes all items - bool DeleteAllItems() ; - - // Deletes a column - bool DeleteColumn(int col); - - // Deletes all columns - bool DeleteAllColumns(); - - // Clears items, and columns if there are any. - void ClearAll(); - - // Edit the label - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - // Ensures this item is visible - bool EnsureVisible(long item) ; - - // Find an item whose label matches this string, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, const wxString& str, bool partial = FALSE); - - // Find an item whose data matches this data, starting from the item after 'start' - // or the beginning if 'start' is -1. - long FindItem(long start, long data); - - // Find an item nearest this position in the specified direction, starting from - // the item after 'start' or the beginning if 'start' is -1. - long FindItem(long start, const wxPoint& pt, int direction); - - // Determines which item (if any) is at the specified point, - // giving details in 'flags' (see wxLIST_HITTEST_... flags above) - long HitTest(const wxPoint& point, int& flags); - - // Inserts an item, returning the index of the new item if successful, - // -1 otherwise. - // TOD: Should also have some further convenience functions - // which don't require setting a wxListItem object - long InsertItem(wxListItem& info); - - // Insert a string item - long InsertItem(long index, const wxString& label); - - // Insert an image item - long InsertItem(long index, int imageIndex); - - // Insert an image/string item - long InsertItem(long index, const wxString& label, int imageIndex); - - // For list view mode (only), inserts a column. - long InsertColumn(long col, wxListItem& info); - - long InsertColumn(long col, const wxString& heading, int format = wxLIST_FORMAT_LEFT, - int width = -1); - - // Scrolls the list control. If in icon, small icon or report view mode, - // x specifies the number of pixels to scroll. If in list view mode, x - // specifies the number of columns to scroll. - // If in icon, small icon or list view mode, y specifies the number of pixels - // to scroll. If in report view mode, y specifies the number of lines to scroll. - bool ScrollList(int dx, int dy); - - // Sort items. - - // fn is a function which takes 3 long arguments: item1, item2, data. - // item1 is the long data associated with a first item (NOT the index). - // item2 is the long data associated with a second item (NOT the index). - // data is the same value as passed to SortItems. - // The return value is a negative number if the first item should precede the second - // item, a positive number of the second item should precede the first, - // or zero if the two items are equivalent. - - // data is arbitrary data to be passed to the sort function. - bool SortItems(wxListCtrlCompare fn, long data); - -/* Why should we need this function? Leave for now. - * We might need it because item data may have changed, - * but the display needs refreshing (in string callback mode) - // Updates an item. If the list control has the wxLI_AUTO_ARRANGE style, - // the items will be rearranged. - bool Update(long item); -*/ - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -protected: - wxTextCtrl* m_textCtrl; // The control used for editing a label - wxImageList * m_imageListNormal; // The image list for normal icons - wxImageList * m_imageListSmall; // The image list for small icons - wxImageList * m_imageListState; // The image list state icons (not implemented yet) - - long m_baseStyle; // Basic Windows style flags, for recreation purposes - wxStringList m_stringPool; // Pool of 3 strings to satisfy Windows callback - // requirements - int m_colCount; // Windows doesn't have GetColumnCount so must - // keep track of inserted/deleted columns - -}; - -class WXDLLEXPORT wxListEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxListEvent) - - public: - wxListEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - int m_code; - long m_itemIndex; - long m_oldItemIndex; - int m_col; - bool m_cancelled; - wxPoint m_pointDrag; - - wxListItem m_item; -}; - -typedef void (wxEvtHandler::*wxListEventFunction)(wxListEvent&); - -#define EVT_LIST_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_LIST_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_LIST_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_DELETE_ITEM(id, fn) { wxEVT_COMMAND_LIST_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_DELETE_ALL_ITEMS(id, fn) { wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_GET_INFO(id, fn) { wxEVT_COMMAND_LIST_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_SET_INFO(id, fn) { wxEVT_COMMAND_LIST_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_SELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_SELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_ITEM_DESELECTED(id, fn) { wxEVT_COMMAND_LIST_ITEM_DESELECTED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_KEY_DOWN(id, fn) { wxEVT_COMMAND_LIST_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_INSERT_ITEM(id, fn) { wxEVT_COMMAND_LIST_INSERT_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, -#define EVT_LIST_COL_CLICK(id, fn) { wxEVT_COMMAND_LIST_COL_CLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxListEventFunction) & fn, NULL }, - -#endif - // _WX_LISTCTRL_H_ diff --git a/include/wx/stubs/mdi.h b/include/wx/stubs/mdi.h deleted file mode 100644 index 6f9fc294e2..0000000000 --- a/include/wx/stubs/mdi.h +++ /dev/null @@ -1,164 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.h -// Purpose: MDI (Multiple Document Interface) classes. -// This doesn't have to be implemented just like Windows, -// it could be a tabbed design as in wxGTK. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MDI_H_ -#define _WX_MDI_H_ - -#ifdef __GNUG__ -#pragma interface "mdi.h" -#endif - -#include "wx/frame.h" - -WXDLLEXPORT_DATA(extern const char*) wxFrameNameStr; -WXDLLEXPORT_DATA(extern const char*) wxStatusLineNameStr; - -class WXDLLEXPORT wxMDIClientWindow; -class WXDLLEXPORT wxMDIChildFrame; - -class WXDLLEXPORT wxMDIParentFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIParentFrame) - - friend class WXDLLEXPORT wxMDIChildFrame; -public: - - wxMDIParentFrame(); - inline wxMDIParentFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, // Scrolling refers to client window - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIParentFrame(); - - bool Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const wxString& name = wxFrameNameStr); - - void OnSize(wxSizeEvent& event); - void OnActivate(wxActivateEvent& event); - void OnSysColourChanged(wxSysColourChangedEvent& event); - - void SetMenuBar(wxMenuBar *menu_bar); - - // Gets the size available for subwindows after menu size, toolbar size - // and status bar size have been subtracted. If you want to manage your own - // toolbar(s), don't call SetToolBar. - void GetClientSize(int *width, int *height) const; - - // Get the active MDI child window (Windows only) - wxMDIChildFrame *GetActiveChild() const ; - - // Get the client window - inline wxMDIClientWindow *GetClientWindow() const { return m_clientWindow; }; - - // Create the client window class (don't Create the window, - // just return a new class) - virtual wxMDIClientWindow *OnCreateClient() ; - - // MDI operations - virtual void Cascade(); - virtual void Tile(); - virtual void ArrangeIcons(); - virtual void ActivateNext(); - virtual void ActivatePrevious(); - -protected: - - // TODO maybe have this member - wxMDIClientWindow *m_clientWindow; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxMDIChildFrame: public wxFrame -{ -DECLARE_DYNAMIC_CLASS(wxMDIChildFrame) -public: - - wxMDIChildFrame(); - inline wxMDIChildFrame(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr) - { - Create(parent, id, title, pos, size, style, name); - } - - ~wxMDIChildFrame(); - - bool Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const wxString& name = wxFrameNameStr); - - // Set menu bar - void SetMenuBar(wxMenuBar *menu_bar); - void SetClientSize(int width, int height); - void GetPosition(int *x, int *y) const ; - - // MDI operations - virtual void Maximize(); - virtual void Restore(); - virtual void Activate(); -}; - -/* The client window is a child of the parent MDI frame, and itself - * contains the child MDI frames. - * However, you create the MDI children as children of the MDI parent: - * only in the implementation does the client window become the parent - * of the children. Phew! So the children are sort of 'adopted'... - */ - -class WXDLLEXPORT wxMDIClientWindow: public wxWindow -{ - DECLARE_DYNAMIC_CLASS(wxMDIClientWindow) - public: - - wxMDIClientWindow() ; - inline wxMDIClientWindow(wxMDIParentFrame *parent, long style = 0) - { - CreateClient(parent, style); - } - - ~wxMDIClientWindow(); - - // Note: this is virtual, to allow overridden behaviour. - virtual bool CreateClient(wxMDIParentFrame *parent, long style = wxVSCROLL | wxHSCROLL); - - // Explicitly call default scroll behaviour - void OnScroll(wxScrollEvent& event); - -protected: - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_MDI_H_ diff --git a/include/wx/stubs/menu.h b/include/wx/stubs/menu.h deleted file mode 100644 index db15f8fc70..0000000000 --- a/include/wx/stubs/menu.h +++ /dev/null @@ -1,172 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.h -// Purpose: wxMenu, wxMenuBar classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MENU_H_ -#define _WX_MENU_H_ - -#ifdef __GNUG__ -#pragma interface "menu.h" -#endif - -#include "wx/defs.h" -#include "wx/event.h" - -class WXDLLEXPORT wxMenuItem; -class WXDLLEXPORT wxMenuBar; -class WXDLLEXPORT wxMenu; - -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// ---------------------------------------------------------------------------- -// Menu -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenu: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenu) - -public: - // ctor & dtor - wxMenu(const wxString& title = wxEmptyString, const wxFunction func = NULL); - ~wxMenu(); - - // construct menu - // append items to the menu - // separator line - void AppendSeparator(); - // normal item - void Append(int id, const wxString& Label, const wxString& helpString = wxEmptyString, - bool checkable = FALSE); - // a submenu - void Append(int id, const wxString& Label, wxMenu *SubMenu, - const wxString& helpString = wxEmptyString); - // the most generic form (create wxMenuItem first and use it's functions) - void Append(wxMenuItem *pItem); - // insert a break in the menu - void Break(); - // delete an item - void Delete(int id); - - // menu item control - void Enable(int id, bool Flag); - bool Enabled(int id) const; - inline bool IsEnabled(int id) const { return Enabled(id); }; - void Check(int id, bool Flag); - bool Checked(int id) const; - inline bool IsChecked(int id) const { return IsChecked(id); }; - - // Client data - inline void SetClientData(void* clientData) { m_clientData = clientData; } - inline void* GetClientData() const { return m_clientData; } - - void SetInvokingWindow(wxWindow *pWin) { m_pInvokingWindow = pWin; } - wxWindow *GetInvokingWindow() const { return m_pInvokingWindow; } - - // item properties - // title - void SetTitle(const wxString& label); - const wxString GetTitle() const; - // label - void SetLabel(int id, const wxString& label); - wxString GetLabel(int id) const; - // help string - virtual void SetHelpString(int id, const wxString& helpString); - virtual wxString GetHelpString(int id) const ; - - // find item - // Finds the item id matching the given string, -1 if not found. - virtual int FindItem(const wxString& itemString) const ; - // Find wxMenuItem by ID, and item's menu too if itemMenu is !NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **itemMenu = NULL) const; - - void ProcessCommand(wxCommandEvent& event); - inline void Callback(const wxFunction func) { m_callback = func; } - - // Updates the UI for a menu and all submenus recursively. - // source is the object that has the update event handlers - // defined for it. If NULL, the menu or associated window - // will be used. - void UpdateUI(wxEvtHandler* source = (wxEvtHandler*) NULL); - - virtual void SetParent(wxEvtHandler *parent) { m_parent = parent; } - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline wxList& GetItems() const { return (wxList&) m_menuItems; } - -public: - wxFunction m_callback; - - int m_noItems; - wxString m_title; - wxMenuBar * m_menuBar; - wxList m_menuItems; - wxEvtHandler * m_parent; - wxEvtHandler * m_eventHandler; - void* m_clientData; - wxWindow* m_pInvokingWindow; -}; - -// ---------------------------------------------------------------------------- -// Menu Bar (a la Windows) -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxFrame; -class WXDLLEXPORT wxMenuBar: public wxEvtHandler -{ - DECLARE_DYNAMIC_CLASS(wxMenuBar) - - wxMenuBar(); - wxMenuBar(int n, wxMenu *menus[], const wxString titles[]); - ~wxMenuBar(); - - void Append(wxMenu *menu, const wxString& title); - // Must only be used AFTER menu has been attached to frame, - // otherwise use individual menus to enable/disable items - void Enable(int Id, bool Flag); - bool Enabled(int Id) const ; - inline bool IsEnabled(int Id) const { return Enabled(Id); }; - void EnableTop(int pos, bool Flag); - void Check(int id, bool Flag); - bool Checked(int id) const ; - inline bool IsChecked(int Id) const { return Checked(Id); }; - void SetLabel(int id, const wxString& label) ; - wxString GetLabel(int id) const ; - void SetLabelTop(int pos, const wxString& label) ; - wxString GetLabelTop(int pos) const ; - virtual void Delete(wxMenu *menu, int index = 0); /* Menu not destroyed */ - virtual bool OnAppend(wxMenu *menu, const char *title); - virtual bool OnDelete(wxMenu *menu, int index); - - virtual void SetHelpString(int Id, const wxString& helpString); - virtual wxString GetHelpString(int Id) const ; - - virtual int FindMenuItem(const wxString& menuString, const wxString& itemString) const ; - - // Find wxMenuItem for item ID, and return item's - // menu too if itemMenu is non-NULL. - wxMenuItem *FindItemForId(int itemId, wxMenu **menuForItem = NULL) const ; - - inline void SetEventHandler(wxEvtHandler *handler) { m_eventHandler = handler; } - inline wxEvtHandler *GetEventHandler() { return m_eventHandler; } - - inline int GetMenuCount() const { return m_menuCount; } - inline wxMenu* GetMenu(int i) const { return m_menus[i]; } - - public: - wxEvtHandler * m_eventHandler; - int m_menuCount; - wxMenu ** m_menus; - wxString * m_titles; - wxFrame * m_menuBarFrame; -/* TODO: data that represents the actual menubar when created. - */ -}; - -#endif // _WX_MENU_H_ diff --git a/include/wx/stubs/menuitem.h b/include/wx/stubs/menuitem.h deleted file mode 100644 index 9c912967f1..0000000000 --- a/include/wx/stubs/menuitem.h +++ /dev/null @@ -1,95 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.h -// Purpose: wxMenuItem class -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _MENUITEM_H -#define _MENUITEM_H - -#ifdef __GNUG__ -#pragma interface "menuitem.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/setup.h" - -// an exception to the general rule that a normal header doesn't include other -// headers - only because ownerdrw.h is not always included and I don't want -// to write #ifdef's everywhere... -#if wxUSE_OWNER_DRAWN -#include "wx/ownerdrw.h" -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// id for a separator line in the menu (invalid for normal item) -#define ID_SEPARATOR (-1) - -// ---------------------------------------------------------------------------- -// wxMenuItem: an item in the menu, optionally implements owner-drawn behaviour -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxMenuItem: public wxObject -#if wxUSE_OWNER_DRAWN - , public wxOwnerDrawn -#endif -{ -DECLARE_DYNAMIC_CLASS(wxMenuItem) - -public: - // ctor & dtor - wxMenuItem(wxMenu *pParentMenu = NULL, int id = ID_SEPARATOR, - const wxString& strName = "", const wxString& wxHelp = "", - bool bCheckable = FALSE, wxMenu *pSubMenu = NULL); - virtual ~wxMenuItem(); - - // accessors (some more are inherited from wxOwnerDrawn or are below) - bool IsSeparator() const { return m_idItem == ID_SEPARATOR; } - bool IsEnabled() const { return m_bEnabled; } - bool IsChecked() const { return m_bChecked; } - - int GetId() const { return m_idItem; } - const wxString& GetHelp() const { return m_strHelp; } - wxMenu *GetSubMenu() const { return m_pSubMenu; } - - // operations - void SetName(const wxString& strName) { m_strName = strName; } - void SetHelp(const wxString& strHelp) { m_strHelp = strHelp; } - - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); - - void DeleteSubMenu(); - -private: - int m_idItem; // numeric id of the item - wxString m_strHelp; // associated help string - wxMenu *m_pSubMenu, // may be NULL - *m_pParentMenu; // menu this item is contained in - bool m_bEnabled, // enabled or greyed? - m_bChecked; // checked? (only if checkable) - -#if wxUSE_OWNER_DRAWN - // wxOwnerDrawn base class already has these variables - nothing to do - -#else //!owner drawn - bool m_bCheckable; // can be checked? - wxString m_strName; // name or label of the item - -public: - const wxString& GetName() const { return m_strName; } - bool IsCheckable() const { return m_bCheckable; } -#endif //owner drawn -}; - -#endif //_MENUITEM_H diff --git a/include/wx/stubs/metafile.h b/include/wx/stubs/metafile.h deleted file mode 100644 index e4be296d92..0000000000 --- a/include/wx/stubs/metafile.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.h -// Purpose: wxMetaFile, wxMetaFileDC classes. -// This probably should be restricted to Windows platforms, -// but if there is an equivalent on your platform, great. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_METAFIILE_H_ -#define _WX_METAFIILE_H_ - -#ifdef __GNUG__ -#pragma interface "metafile.h" -#endif - -#include "wx/setup.h" - -/* - * Metafile and metafile device context classes - work in Windows 3.1 only - * - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxMetaFile: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxMetaFile) - public: - wxMetaFile(const wxString& file = ""); - ~wxMetaFile(); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - virtual bool SetClipboard(int width = 0, int height = 0); - - virtual bool Play(wxDC *dc); - // TODO - inline bool Ok() { return FALSE; }; - -/* TODO: Implementation - inline WXHANDLE GetHMETAFILE() { return m_metaFile; } - inline void SetHMETAFILE(WXHANDLE mf) { m_metaFile = mf; } - -protected: - WXHANDLE m_metaFile; -*/ -}; - -class WXDLLEXPORT wxMetaFileDC: public wxDC -{ - DECLARE_DYNAMIC_CLASS(wxMetaFileDC) - - public: - // Don't supply origin and extent - // Supply them to wxMakeMetaFilePlaceable instead. - wxMetaFileDC(const wxString& file = ""); - - // Supply origin and extent (recommended). - // Then don't need to supply them to wxMakeMetaFilePlaceable. - wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg); - - ~wxMetaFileDC(); - - // Should be called at end of drawing - virtual wxMetaFile *Close(); - virtual void SetMapMode(int mode); - virtual void GetTextExtent(const wxString& string, float *x, float *y, - float *descent = NULL, float *externalLeading = NULL, - wxFont *theFont = NULL, bool use16bit = FALSE); - - // Implementation - inline wxMetaFile *GetMetaFile() { return m_metaFile; } - inline void SetMetaFile(wxMetaFile *mf) { m_metaFile = mf; } - inline int GetWindowsMappingMode() { return m_windowsMappingMode; } - inline void SetWindowsMappingMode(int mm) { m_windowsMappingMode = mm; } - -protected: - int m_windowsMappingMode; - wxMetaFile *m_metaFile; -}; - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -// No origin or extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, float scale = 1.0); - -// Optional origin and extent -bool WXDLLEXPORT wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale = 1.0, bool useOriginAndExtent = TRUE); - -#endif - // _WX_METAFIILE_H_ diff --git a/include/wx/stubs/minifram.h b/include/wx/stubs/minifram.h deleted file mode 100644 index 8f1644d558..0000000000 --- a/include/wx/stubs/minifram.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.h -// Purpose: wxMiniFrame class. A small frame for e.g. floating toolbars. -// If there is no equivalent on your platform, just make it a -// normal frame. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MINIFRAM_H_ -#define _WX_MINIFRAM_H_ - -#ifdef __GNUG__ -#pragma interface "minifram.h" -#endif - -#include "wx/frame.h" - -class WXDLLEXPORT wxMiniFrame: public wxFrame { - - DECLARE_DYNAMIC_CLASS(wxMiniFrame) - -public: - inline wxMiniFrame() {} - inline wxMiniFrame(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE|wxTINY_CAPTION_HORIZ, - const wxString& name = wxFrameNameStr) - { - // Use wxFrame constructor in absence of more specific code. - Create(parent, id, title, pos, size, style, name); - } - - ~wxMiniFrame() {} -protected: -}; - -#endif - // _WX_MINIFRAM_H_ diff --git a/include/wx/stubs/msgdlg.h b/include/wx/stubs/msgdlg.h deleted file mode 100644 index 58fa8e51ae..0000000000 --- a/include/wx/stubs/msgdlg.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.h -// Purpose: wxMessageDialog class. Use generic version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_MSGBOXDLG_H_ -#define _WX_MSGBOXDLG_H_ - -#ifdef __GNUG__ -#pragma interface "msgdlg.h" -#endif - -#include "wx/setup.h" -#include "wx/dialog.h" - -/* - * Message box dialog - */ - -WXDLLEXPORT_DATA(extern const char*) wxMessageBoxCaptionStr; - -class WXDLLEXPORT wxMessageDialog: public wxDialog -{ -DECLARE_DYNAMIC_CLASS(wxMessageDialog) -protected: - wxString m_caption; - wxString m_message; - long m_dialogStyle; - wxWindow * m_parent; -public: - wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, const wxPoint& pos = wxDefaultPosition); - - int ShowModal(); -}; - - -int WXDLLEXPORT wxMessageBox(const wxString& message, const wxString& caption = wxMessageBoxCaptionStr, - long style = wxOK|wxCENTRE, - wxWindow *parent = NULL, int x = -1, int y = -1); - -#endif - // _WX_MSGBOXDLG_H_ diff --git a/include/wx/stubs/notebook.h b/include/wx/stubs/notebook.h deleted file mode 100644 index 18b0793da2..0000000000 --- a/include/wx/stubs/notebook.h +++ /dev/null @@ -1,209 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) -// Author: AUTHOR -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_NOTEBOOK_H_ -#define _WX_NOTEBOOK_H_ - -#ifdef __GNUG__ -#pragma interface "notebook.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/dynarray.h" -#include "wx/event.h" -#include "wx/control.h" - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -// fwd declarations -class WXDLLEXPORT wxImageList; -class WXDLLEXPORT wxWindow; - -// array of notebook pages -typedef wxWindow wxNotebookPage; // so far, any window can be a page -WX_DEFINE_ARRAY(wxNotebookPage *, wxArrayPages); - -// ---------------------------------------------------------------------------- -// notebook events -// ---------------------------------------------------------------------------- -class WXDLLEXPORT wxNotebookEvent : public wxCommandEvent -{ -public: - wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0, - int nSel = -1, int nOldSel = -1) - : wxCommandEvent(commandType, id) { m_nSel = nSel; m_nOldSel = nOldSel; } - - // accessors - int GetSelection() const { return m_nSel; } - int GetOldSelection() const { return m_nOldSel; } - -private: - int m_nSel, // currently selected page - m_nOldSel; // previously selected page - - DECLARE_DYNAMIC_CLASS(wxNotebookEvent) -}; - -// ---------------------------------------------------------------------------- -// wxNotebook -// ---------------------------------------------------------------------------- - -// @@@ this class should really derive from wxTabCtrl, but the interface is not -// exactly the same, so I can't do it right now and instead we reimplement -// part of wxTabCtrl here -class wxNotebook : public wxControl -{ -public: - // ctors - // ----- - // default for dynamic class - wxNotebook(); - // the same arguments as for wxControl (@@@ any special styles?) - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // Create() function - bool Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = "notebook"); - // dtor - ~wxNotebook(); - - // accessors - // --------- - // get number of pages in the dialog - int GetPageCount() const; - - // set the currently selected page, return the index of the previously - // selected one (or -1 on error) - // NB: this function will _not_ generate wxEVT_NOTEBOOK_PAGE_xxx events - int SetSelection(int nPage); - // cycle thru the tabs - void AdvanceSelection(bool bForward = TRUE); - // get the currently selected page - int GetSelection() const { return m_nSelection; } - - // set/get the title of a page - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - - // image list stuff: each page may have an image associated with it. All - // the images belong to an image list, so you have to - // 1) create an image list - // 2) associate it with the notebook - // 3) set for each page it's image - // associate image list with a control - void SetImageList(wxImageList* imageList); - // get pointer (may be NULL) to the associated image list - wxImageList* GetImageList() const { return m_pImageList; } - - // sets/returns item's image index in the current image list - int GetPageImage(int nPage) const; - bool SetPageImage(int nPage, int nImage); - - // currently it's always 1 because wxGTK doesn't support multi-row - // tab controls - int GetRowCount() const; - - // control the appearance of the notebook pages - // set the size (the same for all pages) - void SetPageSize(const wxSize& size); - // set the padding between tabs (in pixels) - void SetPadding(const wxSize& padding); - - // Sets the size of the tabs (assumes all tabs are the same size) - void SetTabSize(const wxSize& sz); - - // operations - // ---------- - // remove one page from the notebook - bool DeletePage(int nPage); - // remove one page from the notebook, without deleting - bool RemovePage(int nPage); - // remove all pages - bool DeleteAllPages(); - // adds a new page to the notebook (it will be deleted ny the notebook, - // don't delete it yourself). If bSelect, this page becomes active. - bool AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // the same as AddPage(), but adds it at the specified position - bool InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); - // get the panel which represents the given page - wxNotebookPage *GetPage(int nPage) { return m_aPages[nPage]; } - - // callbacks - // --------- - void OnSize(wxSizeEvent& event); - void OnSelChange(wxNotebookEvent& event); - void OnSetFocus(wxFocusEvent& event); - void OnNavigationKey(wxNavigationKeyEvent& event); - - // base class virtuals - // ------------------- - virtual void Command(wxCommandEvent& event); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool DoPhase(int nPhase); - -protected: - // common part of all ctors - void Init(); - - // helper functions - void ChangePage(int nOldSel, int nSel); // change pages - - wxImageList *m_pImageList; // we can have an associated image list - wxArrayPages m_aPages; // array of pages - - int m_nSelection; // the current selection (-1 if none) - - DECLARE_DYNAMIC_CLASS(wxNotebook) - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// event macros -// ---------------------------------------------------------------------------- -typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); - -#define EVT_NOTEBOOK_PAGE_CHANGED(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#define EVT_NOTEBOOK_PAGE_CHANGING(id, fn) \ - { \ - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, \ \ - id, \ - -1, \ - (wxObjectEventFunction)(wxEventFunction)(wxNotebookEventFunction) &fn, \ - NULL \ - }, - -#endif // _WX_NOTEBOOK_H_ diff --git a/include/wx/stubs/palette.h b/include/wx/stubs/palette.h deleted file mode 100644 index 3482b33934..0000000000 --- a/include/wx/stubs/palette.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: wxPalette class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PALETTE_H_ -#define _WX_PALETTE_H_ - -#ifdef __GNUG__ -#pragma interface "palette.h" -#endif - -#include "wx/gdiobj.h" - -class WXDLLEXPORT wxPalette; - -class WXDLLEXPORT wxPaletteRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPalette; -public: - wxPaletteRefData(); - ~wxPaletteRefData(); -/* TODO: implementation -protected: - WXHPALETTE m_hPalette; -*/ -}; - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -class WXDLLEXPORT wxPalette: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPalette) - -public: - wxPalette(); - inline wxPalette(const wxPalette& palette) { Ref(palette); } - - wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - ~wxPalette(); - bool Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue); - int GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const; - bool GetRGB(int pixel, unsigned char *red, unsigned char *green, unsigned char *blue) const; - - virtual bool Ok() const { return (m_refData != NULL) ; } - - inline wxPalette& operator = (const wxPalette& palette) { if (*this == palette) return (*this); Ref(palette); return *this; } - inline bool operator == (const wxPalette& palette) { return m_refData == palette.m_refData; } - inline bool operator != (const wxPalette& palette) { return m_refData != palette.m_refData; } - -/* TODO: implementation - inline WXHPALETTE GetHPALETTE() const { return (M_PALETTEDATA ? M_PALETTEDATA->m_hPalette : 0); } - void SetHPALETTE(WXHPALETTE pal); -*/ -}; - -#endif - // _WX_PALETTE_H_ diff --git a/include/wx/stubs/pen.h b/include/wx/stubs/pen.h deleted file mode 100644 index 938908b56b..0000000000 --- a/include/wx/stubs/pen.h +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.h -// Purpose: wxPen class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PEN_H_ -#define _WX_PEN_H_ - -#ifdef __GNUG__ -#pragma interface "pen.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/colour.h" -#include "wx/bitmap.h" - -typedef long wxDash ; - -class WXDLLEXPORT wxPen; - -class WXDLLEXPORT wxPenRefData: public wxGDIRefData -{ - friend class WXDLLEXPORT wxPen; -public: - wxPenRefData(); - wxPenRefData(const wxPenRefData& data); - ~wxPenRefData(); - -protected: - int m_width; - int m_style; - int m_join ; - int m_cap ; - wxBitmap m_stipple ; - int m_nbDash ; - wxDash * m_dash ; - wxColour m_colour; -/* TODO: implementation - WXHPEN m_hPen; -*/ -}; - -#define M_PENDATA ((wxPenRefData *)m_refData) - -// Pen -class WXDLLEXPORT wxPen: public wxGDIObject -{ - DECLARE_DYNAMIC_CLASS(wxPen) -public: - wxPen(); - wxPen(const wxColour& col, int width, int style); - wxPen(const wxBitmap& stipple, int width); - inline wxPen(const wxPen& pen) { Ref(pen); } - ~wxPen(); - - inline wxPen& operator = (const wxPen& pen) { if (*this == pen) return (*this); Ref(pen); return *this; } - inline bool operator == (const wxPen& pen) { return m_refData == pen.m_refData; } - inline bool operator != (const wxPen& pen) { return m_refData != pen.m_refData; } - - virtual bool Ok() const { return (m_refData != NULL) ; } - - // Override in order to recreate the pen - void SetColour(const wxColour& col) ; - void SetColour(unsigned char r, unsigned char g, unsigned char b) ; - - void SetWidth(int width) ; - void SetStyle(int style) ; - void SetStipple(const wxBitmap& stipple) ; - void SetDashes(int nb_dashes, const wxDash *dash) ; - void SetJoin(int join) ; - void SetCap(int cap) ; - - inline wxColour& GetColour() const { return (M_PENDATA ? M_PENDATA->m_colour : wxNullColour); }; - inline int GetWidth() const { return (M_PENDATA ? M_PENDATA->m_width : 0); }; - inline int GetStyle() const { return (M_PENDATA ? M_PENDATA->m_style : 0); }; - inline int GetJoin() const { return (M_PENDATA ? M_PENDATA->m_join : 0); }; - inline int GetCap() const { return (M_PENDATA ? M_PENDATA->m_cap : 0); }; - inline int GetDashes(wxDash **ptr) const { - *ptr = (M_PENDATA ? M_PENDATA->m_dash : (wxDash*) NULL); return (M_PENDATA ? M_PENDATA->m_nbDash : 0); - } - - inline wxBitmap *GetStipple() const { return (M_PENDATA ? (& M_PENDATA->m_stipple) : (wxBitmap*) NULL); }; - -// Implementation - - // Useful helper: create the brush resource - bool RealizeResource(); - - // When setting properties, we must make sure we're not changing - // another object - void Unshare(); -}; - -#endif - // _WX_PEN_H_ diff --git a/include/wx/stubs/print.h b/include/wx/stubs/print.h deleted file mode 100644 index bac3703496..0000000000 --- a/include/wx/stubs/print.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: print.h -// Purpose: wxPrinter, wxPrintPreview classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINT_H_ -#define _WX_PRINT_H_ - -#ifdef __GNUG__ -#pragma interface "print.h" -#endif - -#include "wx/prntbase.h" - -/* - * Represents the printer: manages printing a wxPrintout object - */ - -class WXDLLEXPORT wxPrinter: public wxPrinterBase -{ - DECLARE_DYNAMIC_CLASS(wxPrinter) - - public: - wxPrinter(wxPrintData *data = NULL); - ~wxPrinter(); - - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE); - virtual bool PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); -}; - -/* - * wxPrintPreview - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLEXPORT wxPrintPreview: public wxPrintPreviewBase -{ - DECLARE_CLASS(wxPrintPreview) - - public: - wxPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting = NULL, wxPrintData *data = NULL); - ~wxPrintPreview(); - - virtual bool Print(bool interactive); - virtual void DetermineScaling(); -}; - -#endif - // _WX_PRINT_H_ diff --git a/include/wx/stubs/printdlg.h b/include/wx/stubs/printdlg.h deleted file mode 100644 index ac31a49096..0000000000 --- a/include/wx/stubs/printdlg.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.h -// Purpose: wxPrintDialog, wxPageSetupDialog classes. -// Use generic, PostScript version if no -// platform-specific implementation. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRINTDLG_H_ -#define _WX_PRINTDLG_H_ - -#ifdef __GNUG__ -#pragma interface "printdlg.h" -#endif - -#include "wx/dialog.h" -#include "wx/cmndata.h" - -/* - * wxPrinterDialog - * The common dialog for printing. - */ - -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxPrintDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPrintDialog) - - public: - wxPrintDialog(); - wxPrintDialog(wxWindow *parent, wxPrintData* data = NULL); - ~wxPrintDialog(); - - bool Create(wxWindow *parent, wxPrintData* data = NULL); - virtual int ShowModal(); - - inline wxPrintData& GetPrintData() { return m_printData; } - virtual wxDC *GetPrintDC(); - - private: - wxPrintData m_printData; - wxDC* m_printerDC; - wxWindow* m_dialogParent; -}; - -class WXDLLEXPORT wxPageSetupDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(wxPageSetupDialog) - - private: - wxPageSetupData m_pageSetupData; - wxWindow* m_dialogParent; - public: - wxPageSetupDialog(); - wxPageSetupDialog(wxWindow *parent, wxPageSetupData *data = NULL); - ~wxPageSetupDialog(); - - bool Create(wxWindow *parent, wxPageSetupData *data = NULL); - virtual int ShowModal(); - - inline wxPageSetupData& GetPageSetupData() { return m_pageSetupData; } -}; - -#endif - // _WX_PRINTDLG_H_ diff --git a/include/wx/stubs/private.h b/include/wx/stubs/private.h deleted file mode 100644 index 922c172436..0000000000 --- a/include/wx/stubs/private.h +++ /dev/null @@ -1,21 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: private.h -// Purpose: Private declarations -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PRIVATE_H_ -#define _WX_PRIVATE_H_ - -#include "wx/defs.h" - -/* TODO: put any private declarations here. - */ - -#endif - // _WX_PRIVATE_H_ diff --git a/include/wx/stubs/radiobox.h b/include/wx/stubs/radiobox.h deleted file mode 100644 index cb7c5ba405..0000000000 --- a/include/wx/stubs/radiobox.h +++ /dev/null @@ -1,88 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.h -// Purpose: wxRadioBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBOX_H_ -#define _WX_RADIOBOX_H_ - -#ifdef __GNUG__ -#pragma interface "radiobox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioBoxNameStr; - -// List box item -class WXDLLEXPORT wxBitmap ; - -class WXDLLEXPORT wxRadioBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioBox) -public: - wxRadioBox(); - - inline wxRadioBox(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr) - { - Create(parent, id, title, pos, size, n, choices, majorDim, style, val, name); - } - - ~wxRadioBox(); - - bool Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - int n = 0, const wxString choices[] = NULL, - int majorDim = 0, long style = wxRA_HORIZONTAL, - const wxValidator& val = wxDefaultValidator, const wxString& name = wxRadioBoxNameStr); - - int FindString(const wxString& s) const; - void SetSelection(int N); - int GetSelection() const; - wxString GetString(int N) const; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void GetSize(int *x, int *y) const; - void GetPosition(int *x, int *y) const; - wxString GetLabel() const; - void SetLabel(const wxString& label); - void SetLabel(int item, const wxString& label) ; - wxString GetLabel(int item) const; - bool Show(bool show); - void SetFocus(); - void Enable(bool enable); - void Enable(int item, bool enable); - void Show(int item, bool show) ; - inline void SetLabelFont(const wxFont& WXUNUSED(font)) {}; - inline void SetButtonFont(const wxFont& font) { SetFont(font); } - - virtual wxString GetStringSelection() const; - virtual bool SetStringSelection(const wxString& s); - inline virtual int Number() const { return m_noItems; } ; - void Command(wxCommandEvent& event); - - inline int GetNumberOfRowsOrCols() const { return m_noRowsOrCols; } - inline void SetNumberOfRowsOrCols(int n) { m_noRowsOrCols = n; } - -protected: -/* TODO: implementation - WXHWND * m_radioButtons; -*/ - int m_majorDim ; - int m_noItems; - int m_noRowsOrCols; - int m_selectedButton; - -}; - -#endif - // _WX_RADIOBOX_H_ diff --git a/include/wx/stubs/radiobut.h b/include/wx/stubs/radiobut.h deleted file mode 100644 index 8e8bf1313d..0000000000 --- a/include/wx/stubs/radiobut.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.h -// Purpose: wxRadioButton class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_RADIOBUT_H_ -#define _WX_RADIOBUT_H_ - -#ifdef __GNUG__ -#pragma interface "radiobut.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxRadioButtonNameStr; - -class WXDLLEXPORT wxRadioButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxRadioButton) - protected: - public: - inline wxRadioButton() {} - inline wxRadioButton(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxRadioButtonNameStr); - - virtual void SetLabel(const wxString& label); - virtual void SetValue(bool val); - virtual bool GetValue() const ; - - void Command(wxCommandEvent& event); -}; - -// Not implemented -#if 0 -class WXDLLEXPORT wxBitmap ; - -WXDLLEXPORT_DATA(extern const char*) wxBitmapRadioButtonNameStr; - -class WXDLLEXPORT wxBitmapRadioButton: public wxRadioButton -{ - DECLARE_DYNAMIC_CLASS(wxBitmapRadioButton) - protected: - wxBitmap *theButtonBitmap; - public: - inline wxBitmapRadioButton() { theButtonBitmap = NULL; } - inline wxBitmapRadioButton(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr) - { - Create(parent, id, label, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap *label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxBitmapRadioButtonNameStr); - - virtual void SetLabel(const wxBitmap *label); - virtual void SetValue(bool val) ; - virtual bool GetValue() const ; -}; -#endif - -#endif - // _WX_RADIOBUT_H_ diff --git a/include/wx/stubs/region.h b/include/wx/stubs/region.h deleted file mode 100644 index 04d143c2e9..0000000000 --- a/include/wx/stubs/region.h +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.h -// Purpose: wxRegion class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_REGION_H_ -#define _WX_REGION_H_ - -#ifdef __GNUG__ -#pragma interface "region.h" -#endif - -#include "wx/list.h" -#include "wx/gdiobj.h" -#include "wx/gdicmn.h" - -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxPoint; - -enum wxRegionContain { - wxOutRegion = 0, wxPartRegion = 1, wxInRegion = 2 -}; - -// So far, for internal use only -enum wxRegionOp { -wxRGN_AND, // Creates the intersection of the two combined regions. -wxRGN_COPY, // Creates a copy of the region identified by hrgnSrc1. -wxRGN_DIFF, // Combines the parts of hrgnSrc1 that are not part of hrgnSrc2. -wxRGN_OR, // Creates the union of two combined regions. -wxRGN_XOR // Creates the union of two combined regions except for any overlapping areas. -}; - -class WXDLLEXPORT wxRegion : public wxGDIObject { -DECLARE_DYNAMIC_CLASS(wxRegion); - friend class WXDLLEXPORT wxRegionIterator; -public: - wxRegion(long x, long y, long w, long h); - wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight); - wxRegion(const wxRect& rect); - wxRegion(); - ~wxRegion(); - - //# Copying - inline wxRegion(const wxRegion& r) - { Ref(r); } - inline wxRegion& operator = (const wxRegion& r) - { Ref(r); return (*this); } - - //# Modify region - // Clear current region - void Clear(); - - // Union rectangle or region with this. - inline bool Union(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_OR); } - inline bool Union(const wxRect& rect) { return Combine(rect, wxRGN_OR); } - inline bool Union(const wxRegion& region) { return Combine(region, wxRGN_OR); } - - // Intersect rectangle or region with this. - inline bool Intersect(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_AND); } - inline bool Intersect(const wxRect& rect) { return Combine(rect, wxRGN_AND); } - inline bool Intersect(const wxRegion& region) { return Combine(region, wxRGN_AND); } - - // Subtract rectangle or region from this: - // Combines the parts of 'this' that are not part of the second region. - inline bool Subtract(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_DIFF); } - inline bool Subtract(const wxRect& rect) { return Combine(rect, wxRGN_DIFF); } - inline bool Subtract(const wxRegion& region) { return Combine(region, wxRGN_DIFF); } - - // XOR: the union of two combined regions except for any overlapping areas. - inline bool Xor(long x, long y, long width, long height) { return Combine(x, y, width, height, wxRGN_XOR); } - inline bool Xor(const wxRect& rect) { return Combine(rect, wxRGN_XOR); } - inline bool Xor(const wxRegion& region) { return Combine(region, wxRGN_XOR); } - - //# Information on region - // Outer bounds of region - void GetBox(long& x, long& y, long&w, long &h) const; - wxRect GetBox() const ; - - // Is region empty? - bool Empty() const; - inline bool IsEmpty() const { return Empty(); } - - //# Tests - // Does the region contain the point (x,y)? - wxRegionContain Contains(long x, long y) const; - // Does the region contain the point pt? - wxRegionContain Contains(const wxPoint& pt) const; - // Does the region contain the rectangle (x, y, w, h)? - wxRegionContain Contains(long x, long y, long w, long h) const; - // Does the region contain the rectangle rect? - wxRegionContain Contains(const wxRect& rect) const; - -// Internal - bool Combine(long x, long y, long width, long height, wxRegionOp op); - bool Combine(const wxRegion& region, wxRegionOp op); - bool Combine(const wxRect& rect, wxRegionOp op); -}; - -class WXDLLEXPORT wxRegionIterator : public wxObject { -DECLARE_DYNAMIC_CLASS(wxRegionIterator); -public: - wxRegionIterator(); - wxRegionIterator(const wxRegion& region); - ~wxRegionIterator(); - - void Reset() { m_current = 0; } - void Reset(const wxRegion& region); - - operator bool () const { return m_current < m_numRects; } - bool HaveRects() const { return m_current < m_numRects; } - - void operator ++ (); - void operator ++ (int); - - long GetX() const; - long GetY() const; - long GetW() const; - long GetWidth() const { return GetW(); } - long GetH() const; - long GetHeight() const { return GetH(); } - wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); } - -private: - long m_current; - long m_numRects; - wxRegion m_region; - wxRect* m_rects; -}; - -#endif - // _WX_REGION_H_ diff --git a/include/wx/stubs/scrolbar.h b/include/wx/stubs/scrolbar.h deleted file mode 100644 index 3ec992e78e..0000000000 --- a/include/wx/stubs/scrolbar.h +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrollbar.h -// Purpose: wxScrollBar class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SCROLBAR_H_ -#define _WX_SCROLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "scrolbar.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxScrollBarNameStr; - -// Scrollbar item -class WXDLLEXPORT wxScrollBar: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxScrollBar) - -public: - inline wxScrollBar() { m_pageSize = 0; m_viewSize = 0; m_objectSize = 0; } - ~wxScrollBar(); - - inline wxScrollBar(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr) - { - Create(parent, id, pos, size, style, validator, name); - } - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSB_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxScrollBarNameStr); - - int GetThumbPosition() const ; - inline int GetThumbSize() const { return m_pageSize; } - inline int GetPageSize() const { return m_viewSize; } - inline int GetRange() const { return m_objectSize; } - - virtual void SetThumbPosition(int viewStart); - virtual void SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh = TRUE); - - void Command(wxCommandEvent& event); - -protected: - int m_pageSize; - int m_viewSize; - int m_objectSize; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SCROLBAR_H_ diff --git a/include/wx/stubs/settings.h b/include/wx/stubs/settings.h deleted file mode 100644 index 8ed994f1ba..0000000000 --- a/include/wx/stubs/settings.h +++ /dev/null @@ -1,133 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.h -// Purpose: wxSystemSettings class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETTINGS_H_ -#define _WX_SETTINGS_H_ - -#ifdef __GNUG__ -#pragma interface "settings.h" -#endif - -#include "wx/setup.h" -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/colour.h" -#include "wx/font.h" - -#define wxSYS_WHITE_BRUSH 0 -#define wxSYS_LTGRAY_BRUSH 1 -#define wxSYS_GRAY_BRUSH 2 -#define wxSYS_DKGRAY_BRUSH 3 -#define wxSYS_BLACK_BRUSH 4 -#define wxSYS_NULL_BRUSH 5 -#define wxSYS_HOLLOW_BRUSH wxSYS_NULL_BRUSH -#define wxSYS_WHITE_PEN 6 -#define wxSYS_BLACK_PEN 7 -#define wxSYS_NULL_PEN 8 -#define wxSYS_OEM_FIXED_FONT 10 -#define wxSYS_ANSI_FIXED_FONT 11 -#define wxSYS_ANSI_VAR_FONT 12 -#define wxSYS_SYSTEM_FONT 13 -#define wxSYS_DEVICE_DEFAULT_FONT 14 -#define wxSYS_DEFAULT_PALETTE 15 -#define wxSYS_SYSTEM_FIXED_FONT 16 // Obsolete -#define wxSYS_DEFAULT_GUI_FONT 17 - -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT - -// Metrics -#define wxSYS_MOUSE_BUTTONS 1 -#define wxSYS_BORDER_X 2 -#define wxSYS_BORDER_Y 3 -#define wxSYS_CURSOR_X 4 -#define wxSYS_CURSOR_Y 5 -#define wxSYS_DCLICK_X 6 -#define wxSYS_DCLICK_Y 7 -#define wxSYS_DRAG_X 8 -#define wxSYS_DRAG_Y 9 -#define wxSYS_EDGE_X 10 -#define wxSYS_EDGE_Y 11 -#define wxSYS_HSCROLL_ARROW_X 12 -#define wxSYS_HSCROLL_ARROW_Y 13 -#define wxSYS_HTHUMB_X 14 -#define wxSYS_ICON_X 15 -#define wxSYS_ICON_Y 16 -#define wxSYS_ICONSPACING_X 17 -#define wxSYS_ICONSPACING_Y 18 -#define wxSYS_WINDOWMIN_X 19 -#define wxSYS_WINDOWMIN_Y 20 -#define wxSYS_SCREEN_X 21 -#define wxSYS_SCREEN_Y 22 -#define wxSYS_FRAMESIZE_X 23 -#define wxSYS_FRAMESIZE_Y 24 -#define wxSYS_SMALLICON_X 25 -#define wxSYS_SMALLICON_Y 26 -#define wxSYS_HSCROLL_Y 27 -#define wxSYS_VSCROLL_X 28 -#define wxSYS_VSCROLL_ARROW_X 29 -#define wxSYS_VSCROLL_ARROW_Y 30 -#define wxSYS_VTHUMB_Y 31 -#define wxSYS_CAPTION_Y 32 -#define wxSYS_MENU_Y 33 -#define wxSYS_NETWORK_PRESENT 34 -#define wxSYS_PENWINDOWS_PRESENT 35 -#define wxSYS_SHOW_SOUNDS 36 -#define wxSYS_SWAP_BUTTONS 37 - -class WXDLLEXPORT wxSystemSettings: public wxObject -{ -public: - inline wxSystemSettings() {} - - // Get a system colour - static wxColour GetSystemColour(int index); - - // Get a system font - static wxFont GetSystemFont(int index); - - // Get a system metric, e.g. scrollbar size - static int GetSystemMetric(int index); -}; - -#endif - // _WX_SETTINGS_H_ diff --git a/include/wx/stubs/setup.h b/include/wx/stubs/setup.h deleted file mode 100644 index 68f1572249..0000000000 --- a/include/wx/stubs/setup.h +++ /dev/null @@ -1,148 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: setup.h -// Purpose: Configuration for the library -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SETUP_H_ -#define _WX_SETUP_H_ - -/* - * General features - * - */ - -#define wxUSE_CONSTRAINTS 1 - // Use constraints mechanism -#define wxUSE_CONFIG 1 - // Use wxConfig, with CreateConfig in wxApp -#define _WX_GOODCOMPILER__ - // gcc can have problems, but Windows compilers - // are generally OK. -#define WXWIN_COMPATIBILITY 1 - // Compatibility with 1.66 API. - // Level 0: no backward compatibility, all new features - // Level 1: wxDC, OnSize (etc.) compatibility, but - // some new features such as event tables - -#define wxUSE_POSTSCRIPT 1 - // 0 for no PostScript device context -#define wxUSE_AFM_FOR_POSTSCRIPT 0 - // 1 to use font metric files in GetTextExtent -#define wxUSE_METAFILE 1 - // 0 for no Metafile and metafile device context -#define wxUSE_IPC 1 - // 0 for no interprocess comms -#define wxUSE_HELP 1 - // 0 for no help facility -#define wxUSE_RESOURCES 1 - // 0 for no wxGetResource/wxWriteResource -#define wxUSE_CLIPBOARD 1 - // 0 for no clipboard functions -#define wxUSE_SPLINES 1 - // 0 for no splines -#define wxUSE_XFIG_SPLINE_CODE 1 - // 1 for XFIG spline code, 0 for AIAI spline code. -// AIAI spline code is slower, but freer of copyright issues. - // 0 for no splines - -#define wxUSE_TOOLBAR 1 - // Use toolbars -#define wxUSE_DRAG_AND_DROP 1 - // 0 for no drag and drop - -#define wxUSE_WX_RESOURCES 1 - // Use .wxr resource mechanism (requires PrologIO library) - -#define wxUSE_DOC_VIEW_ARCHITECTURE 1 - // Set to 0 to disable document/view architecture -#define wxUSE_PRINTING_ARCHITECTURE 1 - // Set to 0 to disable print/preview architecture code -#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1 - // Set to 0 to disable PostScript print/preview architecture code - // under Windows (just use Windows printing). -#define wxUSE_DYNAMIC_CLASSES 1 - // If 1, enables provision of run-time type information. - // NOW MANDATORY: don't change. -#define wxUSE_MEMORY_TRACING 1 - // If 1, enables debugging versions of wxObject::new and - // wxObject::delete *IF* WXDEBUG is also defined. - // WARNING: this code may not work with all architectures, especially - // if alignment is an issue. -#define wxUSE_DEBUG_CONTEXT 1 - // If 1, enables wxDebugContext, for - // writing error messages to file, etc. - // If WXDEBUG is not defined, will still use - // normal memory operators. - // It's recommended to set this to 1, - // since you may well need to output - // an error log in a production - // version (or non-debugging beta) -#define wxUSE_GLOBAL_MEMORY_OPERATORS 0 - // In debug mode, cause new and delete to be redefined globally. - // If this causes problems (e.g. link errors), set this to 0. - -#define wxUSE_DEBUG_NEW_ALWAYS 1 - // In debug mode, causes new to be defined to - // be WXDEBUG_NEW (see object.h). - // If this causes problems (e.g. link errors), set this to 0. - -#define REMOVE_UNUSED_ARG 1 - // Set this to 0 if your compiler can't cope - // with omission of prototype parameters. - -#define wxUSE_C_MAIN 0 - // Set to 1 to use main.c instead of main.cpp (UNIX only) - -#define wxUSE_ODBC 0 - // Define 1 to use ODBC classes - -#define wxUSE_IOSTREAMH 1 - // VC++ 4.2 and above allows and - // but you can't mix them. Set to 1 for , - // 0 for - -#define wxUSE_WXCONFIG 1 - // if enabled, compiles built-in OS independent wxConfig - // class and it's file (any platform) and registry (Win) - // based implementations -#define wxUSE_TIMEDATE 1 - // Use time and date -#define wxUSE_THREADS 0 - // Use threads - -#define wxUSE_ZLIB 1 - // Use zlib for compression in streams and PNG code -#define wxUSE_LIBPNG 1 - // Use PNG bitmap code -#define wxUSE_STD_IOSTREAM 1 - // Use standard C++ streams if 1. If 0, use wxWin - // streams implementation. - -#define wxUSE_SERIAL 0 - // Use serialization - -#define wxUSE_TOOLTIPS 0 - // Use tooltips - -#define wxUSE_DYNLIB_CLASS 0 - // Use wxLibrary -#define wxUSE_SOCKETS 1 - // Set to 1 to use socket classes -/* - * Finer detail - * - */ - -#define wxUSE_APPLE_IEEE 1 - // if enabled, the float codec written by Apple - // will be used to write, in a portable way, - // float on the disk - -#endif - // _WX_SETUP_H_ diff --git a/include/wx/stubs/slider.h b/include/wx/stubs/slider.h deleted file mode 100644 index 239e914e5c..0000000000 --- a/include/wx/stubs/slider.h +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.h -// Purpose: wxSlider class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SLIDER_H_ -#define _WX_SLIDER_H_ - -#ifdef __GNUG__ -#pragma interface "slider.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxSliderNameStr; - -// Slider -class WXDLLEXPORT wxSlider: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSlider) - -public: - wxSlider(); - - inline wxSlider(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr) - { - Create(parent, id, value, minValue, maxValue, pos, size, style, validator, name); - } - - ~wxSlider(); - - bool Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxSL_HORIZONTAL, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxSliderNameStr); - - virtual int GetValue() const ; - virtual void SetValue(int); - void GetSize(int *x, int *y) const ; - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void GetPosition(int *x, int *y) const ; - bool Show(bool show); - - void SetRange(int minValue, int maxValue); - - inline int GetMin() const { return m_rangeMin; } - inline int GetMax() const { return m_rangeMax; } - - // For trackbars only - void SetTickFreq(int n, int pos); - inline int GetTickFreq() const { return m_tickFreq; } - void SetPageSize(int pageSize); - int GetPageSize() const ; - void ClearSel() ; - void ClearTicks() ; - void SetLineSize(int lineSize); - int GetLineSize() const ; - int GetSelEnd() const ; - int GetSelStart() const ; - void SetSelection(int minPos, int maxPos); - void SetThumbLength(int len) ; - int GetThumbLength() const ; - void SetTick(int tickPos) ; - - void Command(wxCommandEvent& event); - protected: - int m_rangeMin; - int m_rangeMax; - int m_pageSize; - int m_lineSize; - int m_tickFreq; -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_SLIDER_H_ diff --git a/include/wx/stubs/spinbutt.h b/include/wx/stubs/spinbutt.h deleted file mode 100644 index afdb978c3f..0000000000 --- a/include/wx/stubs/spinbutt.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.h -// Purpose: wxSpinButton class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_SPINBUTT_H_ -#define _WX_SPINBUTT_H_ - -#ifdef __GNUG__ -#pragma interface "spinbutt.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" - -/* - The wxSpinButton is like a small scrollbar than is often placed next - to a text control. - - wxSP_HORIZONTAL: horizontal spin button - wxSP_VERTICAL: vertical spin button (the default) - wxSP_ARROW_KEYS: arrow keys increment/decrement value - wxSP_WRAP: value wraps at either end - */ - -class WXDLLEXPORT wxSpinButton: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxSpinButton) - public: - /* - * Public interface - */ - - wxSpinButton(); - - inline wxSpinButton(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton") - { - Create(parent, id, pos, size, style, name); - } - ~wxSpinButton(); - - bool Create(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxSP_VERTICAL, const wxString& name = "wxSpinButton"); - - - // Attributes - //////////////////////////////////////////////////////////////////////////// - - int GetValue() const ; - void SetValue(int val) ; - void SetRange(int minVal, int maxVal) ; - inline int GetMin() const { return m_min; } - inline int GetMax() const { return m_max; } - - // Operations - //////////////////////////////////////////////////////////////////////////// - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -protected: - int m_min; - int m_max; -}; - -class WXDLLEXPORT wxSpinEvent: public wxScrollEvent -{ - DECLARE_DYNAMIC_CLASS(wxSpinEvent) - - public: - wxSpinEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxSpinEventFunction)(wxSpinEvent&); - -// Spin events - -#define EVT_SPIN_UP(id, func) { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } -#define EVT_SPIN_DOWN(id, func) { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func } - -#define EVT_SPIN(id, func) \ - { wxEVT_SCROLL_TOP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_BOTTOM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_LINEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEUP, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_PAGEDOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func },\ - { wxEVT_SCROLL_THUMBTRACK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxSpinEventFunction) & func }, - -#endif - // _WX_SPINBUTT_H_ diff --git a/include/wx/stubs/statbmp.h b/include/wx/stubs/statbmp.h deleted file mode 100644 index f371fddd2d..0000000000 --- a/include/wx/stubs/statbmp.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.h -// Purpose: wxStaticBitmap class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBMP_H_ -#define _WX_STATBMP_H_ - -#ifdef __GNUG__ -#pragma interface "statbmp.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBitmapNameStr; - -class WXDLLEXPORT wxStaticBitmap: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBitmap) - public: - inline wxStaticBitmap() { } - - inline wxStaticBitmap(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxBitmap& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBitmapNameStr); - - virtual void SetBitmap(const wxBitmap& bitmap); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_messageBitmap; } - - // overriden base class virtuals - virtual bool AcceptsFocus() const { return FALSE; } - - protected: - wxBitmap m_messageBitmap; - -}; - -#endif - // _WX_STATBMP_H_ diff --git a/include/wx/stubs/statbox.h b/include/wx/stubs/statbox.h deleted file mode 100644 index 1aa4a6f88a..0000000000 --- a/include/wx/stubs/statbox.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.h -// Purpose: wxStaticBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBOX_H_ -#define _WX_STATBOX_H_ - -#ifdef __GNUG__ -#pragma interface "statbox.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticBoxNameStr; - -// Group box -class WXDLLEXPORT wxStaticBox: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticBox) - - public: - inline wxStaticBox() {} - inline wxStaticBox(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticBoxNameStr); - - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetLabel(const wxString& label); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_STATBOX_H_ diff --git a/include/wx/stubs/stattext.h b/include/wx/stubs/stattext.h deleted file mode 100644 index aa8eaf229e..0000000000 --- a/include/wx/stubs/stattext.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.h -// Purpose: wxStaticText class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATTEXT_H_ -#define _WX_STATTEXT_H_ - -#ifdef __GNUG__ -#pragma interface "stattext.h" -#endif - -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const char*) wxStaticTextNameStr; - -class WXDLLEXPORT wxStaticText: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxStaticText) - public: - inline wxStaticText() { } - - inline wxStaticText(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr) - { - Create(parent, id, label, pos, size, style, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxStaticTextNameStr); - - // accessors - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - void SetLabel(const wxString&); - - // operations - virtual void Command(wxCommandEvent& WXUNUSED(event)) {}; - virtual void ProcessCommand(wxCommandEvent& WXUNUSED(event)) {}; -}; - -#endif - // _WX_STATTEXT_H_ diff --git a/include/wx/stubs/statusbr.h b/include/wx/stubs/statusbr.h deleted file mode 100644 index c5dcc0dc7d..0000000000 --- a/include/wx/stubs/statusbr.h +++ /dev/null @@ -1,54 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: statusbr.h -// Purpose: native implementation of wxStatusBar. Optional; can use generic -// version instead. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_STATBAR_H_ -#define _WX_STATBAR_H_ - -#ifdef __GNUG__ -#pragma interface "statbar.h" -#endif - -#include "wx/generic/statusbr.h" - -class WXDLLEXPORT wxStatusBarXX : public wxStatusBar -{ - DECLARE_DYNAMIC_CLASS(wxStatusBarXX); - -public: - // ctors - wxStatusBarXX(); - wxStatusBarXX(wxWindow *parent, wxWindowID id = -1, long style = wxST_SIZEGRIP); - - // create status line - bool Create(wxWindow *parent, wxWindowID id = -1, long style = wxST_SIZEGRIP); - - // a status line can have several (<256) fields numbered from 0 - virtual void SetFieldsCount(int number = 1, const int widths[] = NULL); - - // each field of status line has its own text - virtual void SetStatusText(const wxString& text, int number = 0); - virtual wxString GetStatusText(int number = 0) const; - - // set status line fields' widths - virtual void SetStatusWidths(int n, const int widths_field[]); - - void OnSize(wxSizeEvent& event); - - DECLARE_EVENT_TABLE() - -protected: - void CopyFieldsWidth(const int widths[]); - void SetFieldsWidth(); -}; - -#endif - // _WX_STATBAR_H_ \ No newline at end of file diff --git a/include/wx/stubs/tabctrl.h b/include/wx/stubs/tabctrl.h deleted file mode 100644 index 80740019b4..0000000000 --- a/include/wx/stubs/tabctrl.h +++ /dev/null @@ -1,138 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.h -// Purpose: wxTabCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TABCTRL_H_ -#define _WX_TABCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "tabctrl.h" -#endif - -class wxImageList; - -/* - * Flags returned by HitTest - */ - -#define wxTAB_HITTEST_NOWHERE 1 -#define wxTAB_HITTEST_ONICON 2 -#define wxTAB_HITTEST_ONLABEL 4 -#define wxTAB_HITTEST_ONITEM 6 - -class WXDLLEXPORT wxTabCtrl: public wxControl -{ - DECLARE_DYNAMIC_CLASS(wxTabCtrl) - public: - /* - * Public interface - */ - - wxTabCtrl(); - - inline wxTabCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl") - { - Create(parent, id, pos, size, style, name); - } - ~wxTabCtrl(); - -// Accessors - - // Get the selection - int GetSelection() const; - - // Get the tab with the current keyboard focus - int GetCurFocus() const; - - // Get the associated image list - wxImageList* GetImageList() const; - - // Get the number of items - int GetItemCount() const; - - // Get the rect corresponding to the tab - bool GetItemRect(int item, wxRect& rect) const; - - // Get the number of rows - int GetRowCount() const; - - // Get the item text - wxString GetItemText(int item) const ; - - // Get the item image - int GetItemImage(int item) const; - - // Get the item data - void* GetItemData(int item) const; - - // Set the selection - int SetSelection(int item); - - // Set the image list - void SetImageList(wxImageList* imageList); - - // Set the text for an item - bool SetItemText(int item, const wxString& text); - - // Set the image for an item - bool SetItemImage(int item, int image); - - // Set the data for an item - bool SetItemData(int item, void* data); - - // Set the size for a fixed-width tab control - void SetItemSize(const wxSize& size); - - // Set the padding between tabs - void SetPadding(const wxSize& padding); - -// Operations - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "tabCtrl"); - - // Delete all items - bool DeleteAllItems(); - - // Delete an item - bool DeleteItem(int item); - - // Hit test - int HitTest(const wxPoint& pt, long& flags); - - // Insert an item - bool InsertItem(int item, const wxString& text, int imageId = -1, void* data = NULL); - - void Command(wxCommandEvent& event); - -protected: - wxImageList* m_imageList; - -DECLARE_EVENT_TABLE() -}; - -class WXDLLEXPORT wxTabEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxTabEvent) - - public: - wxTabEvent(wxEventType commandType = wxEVT_NULL, int id = 0); -}; - -typedef void (wxEvtHandler::*wxTabEventFunction)(wxTabEvent&); - -#define EVT_TAB_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGED, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, -#define EVT_TAB_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TAB_SEL_CHANGING, \ - id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTabEventFunction) & fn, NULL }, - -#endif - // _WX_TABCTRL_H_ diff --git a/include/wx/stubs/taskbar.h b/include/wx/stubs/taskbar.h deleted file mode 100644 index 7f4a36b8b4..0000000000 --- a/include/wx/stubs/taskbar.h +++ /dev/null @@ -1,49 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.h -// Purpose: Defines wxTaskBarIcon class for manipulating icons on the -// task bar. Optional. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TASKBAR_H_ -#define _WX_TASKBAR_H_ - -#ifdef __GNUG__ -#pragma interface "taskbar.h" -#endif - -#include -#include - -class wxTaskBarIcon: public wxObject -{ -public: - wxTaskBarIcon(); - virtual ~wxTaskBarIcon(); - -// Accessors - -// Operations - bool SetIcon(const wxIcon& icon, const wxString& tooltip = ""); - bool RemoveIcon(); - -// Overridables - virtual void OnMouseMove(); - virtual void OnLButtonDown(); - virtual void OnLButtonUp(); - virtual void OnRButtonDown(); - virtual void OnRButtonUp(); - virtual void OnLButtonDClick(); - virtual void OnRButtonDClick(); - -// Data members -protected: -}; - -#endif - // _WX_TASKBAR_H_ diff --git a/include/wx/stubs/textctrl.h b/include/wx/stubs/textctrl.h deleted file mode 100644 index 09c11e063e..0000000000 --- a/include/wx/stubs/textctrl.h +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.h -// Purpose: wxTextCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TEXTCTRL_H_ -#define _WX_TEXTCTRL_H_ - -#ifdef __GNUG__ -#pragma interface "textctrl.h" -#endif - -#include "wx/control.h" - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -WXDLLEXPORT_DATA(extern const char*) wxTextCtrlNameStr; -WXDLLEXPORT_DATA(extern const char*) wxEmptyString; - -// Single-line text item -class WXDLLEXPORT wxTextCtrl: public wxControl - -// TODO Some platforms/compilers don't like inheritance from streambuf. - -#if (defined(__BORLANDC__) && !defined(__WIN32__)) || defined(__MWERKS__) -#define NO_TEXT_WINDOW_STREAM -#endif - -#ifndef NO_TEXT_WINDOW_STREAM -, public streambuf -#endif - -{ - DECLARE_DYNAMIC_CLASS(wxTextCtrl) - -public: - // creation - // -------- - wxTextCtrl(); - inline wxTextCtrl(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr) -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif - { - Create(parent, id, value, pos, size, style, validator, name); - } - - bool Create(wxWindow *parent, wxWindowID id, - const wxString& value = wxEmptyString, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = wxTextCtrlNameStr); - - // accessors - // --------- - virtual wxString GetValue() const ; - virtual void SetValue(const wxString& value); - - virtual int GetLineLength(long lineNo) const; - virtual wxString GetLineText(long lineNo) const; - virtual int GetNumberOfLines() const; - - // operations - // ---------- - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - - // Clipboard operations - virtual void Copy(); - virtual void Cut(); - virtual void Paste(); - - virtual bool CanCopy() const; - virtual bool CanCut() const; - virtual bool CanPaste() const; - - // Undo/redo - virtual void Undo(); - virtual void Redo(); - - virtual bool CanUndo() const; - virtual bool CanRedo() const; - - virtual void SetInsertionPoint(long pos); - virtual void SetInsertionPointEnd(); - virtual long GetInsertionPoint() const ; - virtual long GetLastPosition() const ; - virtual void Replace(long from, long to, const wxString& value); - virtual void Remove(long from, long to); - virtual void SetSelection(long from, long to); - virtual void SetEditable(bool editable); - - // If the return values from and to are the same, there is no - // selection. - virtual void GetSelection(long* from, long* to) const; - virtual bool IsEditable() const ; - - // streambuf implementation -#ifndef NO_TEXT_WINDOW_STREAM - int overflow(int i); - int sync(); - int underflow(); -#endif - - wxTextCtrl& operator<<(const wxString& s); - wxTextCtrl& operator<<(int i); - wxTextCtrl& operator<<(long i); - wxTextCtrl& operator<<(float f); - wxTextCtrl& operator<<(double d); - wxTextCtrl& operator<<(const char c); - - virtual bool LoadFile(const wxString& file); - virtual bool SaveFile(const wxString& file); - virtual void WriteText(const wxString& text); - virtual void AppendText(const wxString& text); - virtual void DiscardEdits(); - virtual bool IsModified() const; - - virtual long XYToPosition(long x, long y) const ; - virtual void PositionToXY(long pos, long *x, long *y) const ; - virtual void ShowPosition(long pos); - virtual void Clear(); - - // callbacks - // --------- - void OnDropFiles(wxDropFilesEvent& event); -// void OnChar(wxKeyEvent& event); // Process 'enter' if required -// void OnEraseBackground(wxEraseEvent& event); - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnUndo(wxCommandEvent& event); - void OnRedo(wxCommandEvent& event); - - void OnUpdateCut(wxUpdateUIEvent& event); - void OnUpdateCopy(wxUpdateUIEvent& event); - void OnUpdatePaste(wxUpdateUIEvent& event); - void OnUpdateUndo(wxUpdateUIEvent& event); - void OnUpdateRedo(wxUpdateUIEvent& event); - - // Implementation - // -------------- - virtual void Command(wxCommandEvent& event); - -protected: - wxString m_fileName; - - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TEXTCTRL_H_ diff --git a/include/wx/stubs/timer.h b/include/wx/stubs/timer.h deleted file mode 100644 index 953da997c6..0000000000 --- a/include/wx/stubs/timer.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.h -// Purpose: wxTimer class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMER_H_ -#define _WX_TIMER_H_ - -#ifdef __GNUG__ -#pragma interface "timer.h" -#endif - -#include "wx/object.h" - -class WXDLLEXPORT wxTimer: public wxObject -{ -public: - wxTimer(); - ~wxTimer(); - - virtual bool Start(int milliseconds = -1, - bool one_shot = FALSE); // Start timer - virtual void Stop(); // Stop timer - - virtual void Notify() = 0; // Override this member - - // Returns the current interval time (0 if stop) - int Interval() const { return m_milli; }; - bool OneShot() const { return m_oneShot; } - -protected: - bool m_oneShot ; - int m_milli ; - int m_lastMilli ; - - long m_id; - -private: - DECLARE_ABSTRACT_CLASS(wxTimer) -}; - -/* Note: these are implemented in common/timercmn.cpp, so need to implement them separately. - * But you may need to modify timercmn.cpp. - */ - -// Timer functions (milliseconds) -void WXDLLEXPORT wxStartTimer(); -// Gets time since last wxStartTimer or wxGetElapsedTime -long WXDLLEXPORT wxGetElapsedTime(bool resetTimer = TRUE); - -// EXPERIMENTAL: comment this out if it doesn't compile. -bool WXDLLEXPORT wxGetLocalTime(long *timeZone, int *dstObserved); - -// Get number of seconds since 00:00:00 GMT, Jan 1st 1970. -long WXDLLEXPORT wxGetCurrentTime(); - -#endif - // _WX_TIMER_H_ diff --git a/include/wx/stubs/toolbar.h b/include/wx/stubs/toolbar.h deleted file mode 100644 index e42c5827ef..0000000000 --- a/include/wx/stubs/toolbar.h +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.h -// Purpose: wxToolBar class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOOLBAR_H_ -#define _WX_TOOLBAR_H_ - -#ifdef __GNUG__ -#pragma interface "toolbar.h" -#endif - -#include "wx/tbarbase.h" - -WXDLLEXPORT_DATA(extern const char*) wxToolBarNameStr; - -class WXDLLEXPORT wxToolBar: public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxToolBar) - public: - /* - * Public interface - */ - - wxToolBar(); - - inline wxToolBar(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr) - { - Create(parent, id, pos, size, style, name); - } - ~wxToolBar(); - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - - // Set default bitmap size - void SetToolBitmapSize(const wxSize& size); - void EnableTool(int toolIndex, bool enable); // additional drawing on enabling - void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - void ClearTools(); - - // The button size is bigger than the bitmap size - wxSize GetToolSize() const; - - wxSize GetMaxSize() const; - - // Add all the buttons - virtual bool CreateTools(); - virtual void Layout() {} - - // The post-tool-addition call. TODO: do here whatever's - // necessary for completing the toolbar construction. - bool Realize() { return CreateTools(); }; - -protected: - -DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TOOLBAR_H_ diff --git a/include/wx/stubs/treectrl.h b/include/wx/stubs/treectrl.h deleted file mode 100644 index cb307ec0e9..0000000000 --- a/include/wx/stubs/treectrl.h +++ /dev/null @@ -1,295 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.h -// Purpose: wxTreeCtrl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TREECTRL_H_ -#define _WX_TREECTRL_H_ - -#ifdef __GNUG__ -#pragma interface "treectrl.h" -#endif - -#include "wx/control.h" -#include "wx/event.h" -#include "wx/imaglist.h" - -#define wxTREE_MASK_HANDLE 0x0001 -#define wxTREE_MASK_STATE 0x0002 -#define wxTREE_MASK_TEXT 0x0004 -#define wxTREE_MASK_IMAGE 0x0008 -#define wxTREE_MASK_SELECTED_IMAGE 0x0010 -#define wxTREE_MASK_CHILDREN 0x0020 -#define wxTREE_MASK_DATA 0x0040 - -#define wxTREE_STATE_BOLD 0x0001 -#define wxTREE_STATE_DROPHILITED 0x0002 -#define wxTREE_STATE_EXPANDED 0x0004 -#define wxTREE_STATE_EXPANDEDONCE 0x0008 -#define wxTREE_STATE_FOCUSED 0x0010 -#define wxTREE_STATE_SELECTED 0x0020 -#define wxTREE_STATE_CUT 0x0040 - -#define wxTREE_HITTEST_ABOVE 0x0001 // Above the client area. -#define wxTREE_HITTEST_BELOW 0x0002 // Below the client area. -#define wxTREE_HITTEST_NOWHERE 0x0004 // In the client area but below the last item. -#define wxTREE_HITTEST_ONITEMBUTTON 0x0010 // On the button associated with an item. -#define wxTREE_HITTEST_ONITEMICON 0x0020 // On the bitmap associated with an item. -#define wxTREE_HITTEST_ONITEMINDENT 0x0040 // In the indentation associated with an item. -#define wxTREE_HITTEST_ONITEMLABEL 0x0080 // On the label (string) associated with an item. -#define wxTREE_HITTEST_ONITEMRIGHT 0x0100 // In the area to the right of an item. -#define wxTREE_HITTEST_ONITEMSTATEICON 0x0200 // On the state icon for a tree view item that is in a user-defined state. -#define wxTREE_HITTEST_TOLEFT 0x0400 // To the right of the client area. -#define wxTREE_HITTEST_TORIGHT 0x0800 // To the left of the client area. - -#define wxTREE_HITTEST_ONITEM (wxTREE_HITTEST_ONITEMICON | wxTREE_HITTEST_ONITEMLABEL | wxTREE_HITTEST_ONITEMSTATEICON) - -// Flags for GetNextItem -enum { - wxTREE_NEXT_CARET, // Retrieves the currently selected item. - wxTREE_NEXT_CHILD, // Retrieves the first child item. The hItem parameter must be NULL. - wxTREE_NEXT_DROPHILITE, // Retrieves the item that is the target of a drag-and-drop operation. - wxTREE_NEXT_FIRSTVISIBLE, // Retrieves the first visible item. - wxTREE_NEXT_NEXT, // Retrieves the next sibling item. - wxTREE_NEXT_NEXTVISIBLE, // Retrieves the next visible item that follows the specified item. - wxTREE_NEXT_PARENT, // Retrieves the parent of the specified item. - wxTREE_NEXT_PREVIOUS, // Retrieves the previous sibling item. - wxTREE_NEXT_PREVIOUSVISIBLE, // Retrieves the first visible item that precedes the specified item. - wxTREE_NEXT_ROOT // Retrieves the first child item of the root item of which the specified item is a part. -}; - -// Flags for ExpandItem -enum { - wxTREE_EXPAND_EXPAND, - wxTREE_EXPAND_COLLAPSE, - wxTREE_EXPAND_COLLAPSE_RESET, - wxTREE_EXPAND_TOGGLE -}; - -// Flags for InsertItem -enum { - wxTREE_INSERT_LAST = -1, - wxTREE_INSERT_FIRST = -2, - wxTREE_INSERT_SORT = -3 -}; - -class WXDLLEXPORT wxTreeItem: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxTreeItem) -public: - long m_mask; - long m_itemId; - long m_state; - long m_stateMask; - wxString m_text; - int m_image; - int m_selectedImage; - int m_children; - long m_data; - - wxTreeItem(); - -// Accessors - inline long GetMask() const { return m_mask; } - inline long GetItemId() const { return m_itemId; } - inline long GetState() const { return m_state; } - inline long GetStateMask() const { return m_stateMask; } - inline wxString GetText() const { return m_text; } - inline int GetImage() const { return m_image; } - inline int GetSelectedImage() const { return m_selectedImage; } - inline int GetChildren() const { return m_children; } - inline long GetData() const { return m_data; } - - inline void SetMask(long mask) { m_mask = mask; } - inline void SetItemId(long id) { m_itemId = m_itemId = id; } - inline void SetState(long state) { m_state = state; } - inline void SetStateMask(long stateMask) { m_stateMask = stateMask; } - inline void GetText(const wxString& text) { m_text = text; } - inline void SetImage(int image) { m_image = image; } - inline void GetSelectedImage(int selImage) { m_selectedImage = selImage; } - inline void SetChildren(int children) { m_children = children; } - inline void SetData(long data) { m_data = data; } -}; - -class WXDLLEXPORT wxTreeCtrl: public wxControl -{ -public: - /* - * Public interface - */ - - // creation - // -------- - wxTreeCtrl(); - - inline wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl") - { - Create(parent, id, pos, size, style, validator, name); - } - ~wxTreeCtrl(); - - bool Create(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxDefaultValidator, - const wxString& name = "wxTreeCtrl"); - - // accessors - // --------- - // - int GetCount() const; - - // indent - int GetIndent() const; - void SetIndent(int indent); - // image list - wxImageList *GetImageList(int which = wxIMAGE_LIST_NORMAL) const; - void SetImageList(wxImageList *imageList, int which = wxIMAGE_LIST_NORMAL); - - // navigation inside the tree - long GetNextItem(long item, int code) const; - bool ItemHasChildren(long item) const; - long GetChild(long item) const; - long GetParent(long item) const; - long GetFirstVisibleItem() const; - long GetNextVisibleItem(long item) const; - long GetSelection() const; - long GetRootItem() const; - - // generic function for (g|s)etting item attributes - bool GetItem(wxTreeItem& info) const; - bool SetItem(wxTreeItem& info); - // item state - int GetItemState(long item, long stateMask) const; - bool SetItemState(long item, long state, long stateMask); - // item image - bool SetItemImage(long item, int image, int selImage); - // item text - wxString GetItemText(long item) const; - void SetItemText(long item, const wxString& str); - // custom data associated with the item - long GetItemData(long item) const; - bool SetItemData(long item, long data); - // convenience function - bool IsItemExpanded(long item) - { - return (GetItemState(item, wxTREE_STATE_EXPANDED) & - wxTREE_STATE_EXPANDED) != 0; - } - - // bounding rect - bool GetItemRect(long item, wxRect& rect, bool textOnly = FALSE) const; - // - wxTextCtrl* GetEditControl() const; - - // operations - // ---------- - // adding/deleting items - bool DeleteItem(long item); - long InsertItem(long parent, wxTreeItem& info, - long insertAfter = wxTREE_INSERT_LAST); - // If image > -1 and selImage == -1, the same image is used for - // both selected and unselected items. - long InsertItem(long parent, const wxString& label, - int image = -1, int selImage = -1, - long insertAfter = wxTREE_INSERT_LAST); - - // changing item state - bool ExpandItem(long item) { return ExpandItem(item, wxTREE_EXPAND_EXPAND); } - bool CollapseItem(long item) { return ExpandItem(item, wxTREE_EXPAND_COLLAPSE); } - bool ToggleItem(long item) { return ExpandItem(item, wxTREE_EXPAND_TOGGLE); } - // common interface for {Expand|Collapse|Toggle}Item - bool ExpandItem(long item, int action); - - // - bool SelectItem(long item); - bool ScrollTo(long item); - bool DeleteAllItems(); - - // Edit the label (tree must have the focus) - wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl)); - - // End label editing, optionally cancelling the edit - bool EndEditLabel(bool cancel); - - long HitTest(const wxPoint& point, int& flags); - // wxImageList *CreateDragImage(long item); - bool SortChildren(long item); - bool EnsureVisible(long item); - - void Command(wxCommandEvent& event) { ProcessCommand(event); }; - -protected: - wxTextCtrl* m_textCtrl; - wxImageList* m_imageListNormal; - wxImageList* m_imageListState; - - DECLARE_DYNAMIC_CLASS(wxTreeCtrl) -}; - -/* - wxEVT_COMMAND_TREE_BEGIN_DRAG, - wxEVT_COMMAND_TREE_BEGIN_RDRAG, - wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, - wxEVT_COMMAND_TREE_END_LABEL_EDIT, - wxEVT_COMMAND_TREE_DELETE_ITEM, - wxEVT_COMMAND_TREE_GET_INFO, - wxEVT_COMMAND_TREE_SET_INFO, - wxEVT_COMMAND_TREE_ITEM_EXPANDED, - wxEVT_COMMAND_TREE_ITEM_EXPANDING, - wxEVT_COMMAND_TREE_ITEM_COLLAPSED, - wxEVT_COMMAND_TREE_ITEM_COLLAPSING, - wxEVT_COMMAND_TREE_SEL_CHANGED, - wxEVT_COMMAND_TREE_SEL_CHANGING, - wxEVT_COMMAND_TREE_KEY_DOWN -*/ - -class WXDLLEXPORT wxTreeEvent: public wxCommandEvent -{ - DECLARE_DYNAMIC_CLASS(wxTreeEvent) - - public: - wxTreeEvent(wxEventType commandType = wxEVT_NULL, int id = 0); - - int m_code; - wxTreeItem m_item; - long m_oldItem; - wxPoint m_pointDrag; - - inline long GetOldItem() const { return m_oldItem; } - inline wxTreeItem& GetItem() const { return (wxTreeItem&) m_item; } - inline wxPoint GetPoint() const { return m_pointDrag; } - inline int GetCode() const { return m_code; } -}; - -typedef void (wxEvtHandler::*wxTreeEventFunction)(wxTreeEvent&); - -#define EVT_TREE_BEGIN_DRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_DRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_RDRAG(id, fn) { wxEVT_COMMAND_TREE_BEGIN_RDRAG, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_BEGIN_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_END_LABEL_EDIT(id, fn) { wxEVT_COMMAND_TREE_END_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_DELETE_ITEM(id, fn) { wxEVT_COMMAND_TREE_DELETE_ITEM, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_GET_INFO(id, fn) { wxEVT_COMMAND_TREE_GET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SET_INFO(id, fn) { wxEVT_COMMAND_TREE_SET_INFO, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDED(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_EXPANDING(id, fn) { wxEVT_COMMAND_TREE_ITEM_EXPANDING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSED(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_ITEM_COLLAPSING(id, fn) { wxEVT_COMMAND_TREE_ITEM_COLLAPSING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SEL_CHANGED(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_SEL_CHANGING(id, fn) { wxEVT_COMMAND_TREE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, -#define EVT_TREE_KEY_DOWN(id, fn) { wxEVT_COMMAND_TREE_KEY_DOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxTreeEventFunction) & fn, (wxObject *) NULL }, - -#endif - // _WX_TREECTRL_H_ diff --git a/include/wx/stubs/wave.h b/include/wx/stubs/wave.h deleted file mode 100644 index e55bd5aa5f..0000000000 --- a/include/wx/stubs/wave.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class (loads and plays short Windows .wav files). -// Optional on non-Windows platforms. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WAVE_H_ -#define _WX_WAVE_H_ - -#ifdef __GNUG__ -#pragma interface "wave.h" -#endif - -#include "wx/object.h" - -class wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - ~wxWave(); - -public: - bool Create(const wxString& fileName, bool isResource = FALSE); - bool IsOk() const { return (m_waveData ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE) const; - -protected: - bool Free(); - -private: - char* m_waveData; - int m_waveLength; - bool m_isResource; -}; - -#endif - // _WX_WAVE_H_ diff --git a/include/wx/stubs/window.h b/include/wx/stubs/window.h deleted file mode 100644 index b94c1afe41..0000000000 --- a/include/wx/stubs/window.h +++ /dev/null @@ -1,584 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindow class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_ -#define _WX_WINDOW_H_ - -#ifdef __GNUG__ -#pragma interface "window.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/pen.h" -#include "wx/font.h" -#include "wx/validate.h" -#include "wx/event.h" -#include "wx/string.h" -#include "wx/list.h" -#include "wx/region.h" -#include "wx/accel.h" -#include "wx/intl.h" - -#define wxKEY_SHIFT 1 -#define wxKEY_CTRL 2 - -/* - * Base class for frame, panel, canvas, panel items, dialog box. - * - */ - -/* - * Event handler: windows have themselves as their event handlers - * by default, but their event handlers could be set to another - * object entirely. This separation can reduce the amount of - * derivation required, and allow alteration of a window's functionality - * (e.g. by a resource editor that temporarily switches event handlers). - */ - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxEvent; -class WXDLLEXPORT wxCommandEvent; -class WXDLLEXPORT wxKeyEvent; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxCursor; -class WXDLLEXPORT wxColourMap; -class WXDLLEXPORT wxFont; -class WXDLLEXPORT wxMenu; -class WXDLLEXPORT wxRect; -class WXDLLEXPORT wxBitmap; -class WXDLLEXPORT wxSizer; -class WXDLLEXPORT wxList; -class WXDLLEXPORT wxLayoutConstraints; -class WXDLLEXPORT wxMouseEvent; -class WXDLLEXPORT wxButton; -class WXDLLEXPORT wxColour; -class WXDLLEXPORT wxBrush; -class WXDLLEXPORT wxPen; -class WXDLLEXPORT wxIcon; -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxValidator; - -#if wxUSE_DRAG_AND_DROP -class WXDLLEXPORT wxDropTarget; -#endif - -#if wxUSE_WX_RESOURCES -class WXDLLEXPORT wxResourceTable; -class WXDLLEXPORT wxItemResource; -#endif - -WXDLLEXPORT_DATA(extern const char*) wxPanelNameStr; - -WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize; -WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition; - -//----------------------------------------------------------------------------- -// wxClientData -//----------------------------------------------------------------------------- - -class wxClientData -{ -public: - wxClientData() { } - virtual ~wxClientData() { } -}; - -//----------------------------------------------------------------------------- -// wxStringClientData -//----------------------------------------------------------------------------- - -class wxStringClientData: public wxClientData -{ -public: - wxStringClientData() { } - wxStringClientData( wxString &data ) { m_data = data; } - void SetData( wxString &data ) { m_data = data; } - wxString GetData() const { return m_data; } - -private: - wxString m_data; -}; - -class WXDLLEXPORT wxWindow: public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxWindow) - - friend class wxDC; - friend class wxPaintDC; - -public: - wxWindow(); - inline wxWindow(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr) - { - m_children = new wxList; - Create(parent, id, pos, size, style, name); - } - - virtual ~wxWindow(); - - bool Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - // Fit the window around the items - virtual void Fit(); - - // Show or hide the window - virtual bool Show(bool show); - - // Is the window shown? - virtual bool IsShown() const; - - // Raise the window to the top of the Z order - virtual void Raise(); - - // Lower the window to the bottom of the Z order - virtual void Lower(); - - // Is the window enabled? - virtual bool IsEnabled() const; - - // For compatibility - inline bool Enabled() const { return IsEnabled(); } - - // Dialog support: override these and call - // base class members to add functionality - // that can't be done using validators. - - // Transfer values to controls. If returns FALSE, - // it's an application error (pops up a dialog) - virtual bool TransferDataToWindow(); - - // Transfer values from controls. If returns FALSE, - // transfer failed: don't quit - virtual bool TransferDataFromWindow(); - - // Validate controls. If returns FALSE, - // validation failed: don't quit - virtual bool Validate(); - - // Return code for dialogs - inline void SetReturnCode(int retCode); - inline int GetReturnCode(); - - // Set the cursor - virtual void SetCursor(const wxCursor& cursor); - inline virtual wxCursor *GetCursor() const { return (wxCursor *)& m_windowCursor; }; - - // Get the window with the focus - static wxWindow *FindFocus(); - - // Get character size - virtual int GetCharHeight() const; - virtual int GetCharWidth() const; - - // Get overall window size - virtual void GetSize(int *width, int *height) const; - - // Get window position, relative to parent (or screen if no parent) - virtual void GetPosition(int *x, int *y) const; - - // Get client (application-useable) size - virtual void GetClientSize(int *width, int *height) const; - - // Set overall size and position - virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - inline virtual void SetSize(int width, int height) { SetSize(-1, -1, width, height, wxSIZE_USE_EXISTING); } - inline virtual void Move(int x, int y) { SetSize(x, y, -1, -1, wxSIZE_USE_EXISTING); } - - // Set client size - virtual void SetClientSize(int width, int size); - - // Convert client to screen coordinates - virtual void ClientToScreen(int *x, int *y) const; - - // Convert screen to client coordinates - virtual void ScreenToClient(int *x, int *y) const; - - // Set the focus to this window - virtual void SetFocus(); - - // Capture/release mouse - virtual void CaptureMouse(); - virtual void ReleaseMouse(); - - // Enable or disable the window - virtual void Enable(bool enable); - -#if wxUSE_DRAG_AND_DROP - // Associate a drop target with this window (if the window already had a drop - // target, it's deleted!) and return the current drop target (may be NULL). - void SetDropTarget(wxDropTarget *pDropTarget); - wxDropTarget *GetDropTarget() const { return m_pDropTarget; } -#endif - - // Accept files for dragging - virtual void DragAcceptFiles(bool accept); - - // tooltips - // create a tooltip with this text - void SetToolTip(const wxString& tip); - - // TODO -#if 0 - // pointer may be NULL to remove the tooltip - void SetToolTip(wxToolTip *tooltip); - // get the current tooltip (may return NULL if none) - wxToolTip* GetToolTip() const { return m_tooltip; } -#endif - - // Update region access - virtual wxRegion GetUpdateRegion() const; - virtual bool IsExposed(int x, int y, int w, int h) const; - virtual bool IsExposed(const wxPoint& pt) const; - virtual bool IsExposed(const wxRect& rect) const; - - // Set/get the window title - virtual inline void SetTitle(const wxString& WXUNUSED(title)) {}; - inline virtual wxString GetTitle() const { return wxString(""); }; - // Most windows have the concept of a label; for frames, this is the - // title; for items, this is the label or button text. - inline virtual wxString GetLabel() const { return GetTitle(); } - - // Set/get the window name (used for resource setting in X) - inline virtual wxString GetName() const; - inline virtual void SetName(const wxString& name); - - // Centre the window - virtual void Centre(int direction) ; - inline void Center(int direction = wxHORIZONTAL) { Centre(direction); } - - // Popup a menu - virtual bool PopupMenu(wxMenu *menu, int x, int y); - - // Send the window a refresh event - virtual void Refresh(bool eraseBack = TRUE, const wxRect *rect = NULL); - - // New functions that will replace the above. - virtual void SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh = TRUE); - - virtual void SetScrollPos(int orient, int pos, bool refresh = TRUE); - virtual int GetScrollPos(int orient) const; - virtual int GetScrollRange(int orient) const; - virtual int GetScrollThumb(int orient) const; - - virtual void ScrollWindow(int dx, int dy, const wxRect *rect = NULL); - - // Caret manipulation - virtual void CreateCaret(int w, int h); - virtual void CreateCaret(const wxBitmap *bitmap); - virtual void DestroyCaret(); - virtual void ShowCaret(bool show); - virtual void SetCaretPos(int x, int y); - virtual void GetCaretPos(int *x, int *y) const; - - // Tell window how much it can be sized - virtual void SetSizeHints(int minW = -1, int minH = -1, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1); - - // Set/get the window's identifier - inline int GetId() const; - inline void SetId(int id); - - virtual void SetAcceleratorTable(const wxAcceleratorTable& accel); - inline virtual wxAcceleratorTable& GetAcceleratorTable() const { return (wxAcceleratorTable&) m_acceleratorTable; } - - // Make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal); - - // Get the private handle (platform-dependent) - inline void *GetHandle() const; - - // Set/get the window's relatives - inline wxWindow *GetParent() const; - inline void SetParent(wxWindow *p) ; - inline wxWindow *GetGrandParent() const; - inline wxList& GetChildren() const; - - // Set/get the window's font - virtual void SetFont(const wxFont& f); - inline virtual wxFont& GetFont() const; - - // Set/get the window's validator - void SetValidator(const wxValidator& validator); - inline wxValidator *GetValidator() const; - - // Set/get the window's style - inline void SetWindowStyleFlag(long flag); - inline long GetWindowStyleFlag() const; - - // Handle a control command - virtual void OnCommand(wxWindow& win, wxCommandEvent& event); - - // Set/get event handler - inline void SetEventHandler(wxEvtHandler *handler); - inline wxEvtHandler *GetEventHandler() const; - - // Push/pop event handler (i.e. allow a chain of event handlers - // be searched) - void PushEventHandler(wxEvtHandler *handler) ; - wxEvtHandler *PopEventHandler(bool deleteHandler = FALSE) ; - - // Close the window by calling OnClose, posting a deletion - virtual bool Close(bool force = FALSE); - - // Destroy the window (delayed, if a managed window) - virtual bool Destroy() ; - - // Mode for telling default OnSize members to - // call Layout(), if not using Sizers, just top-down constraints - inline void SetAutoLayout(bool a); - inline bool GetAutoLayout() const; - - // Set/get constraints - inline wxLayoutConstraints *GetConstraints() const; - void SetConstraints(wxLayoutConstraints *c); - - // Set/get window background colour - inline virtual void SetBackgroundColour(const wxColour& col); - inline virtual wxColour GetBackgroundColour() const; - - // Set/get window foreground colour - inline virtual void SetForegroundColour(const wxColour& col); - inline virtual wxColour GetForegroundColour() const; - - // Get the default button, if there is one - inline virtual wxButton *GetDefaultItem() const; - inline virtual void SetDefaultItem(wxButton *but); - - // Override to define new behaviour for default action (e.g. double clicking - // on a listbox) - virtual void OnDefaultAction(wxControl *initiatingItem); - - // Resource loading -#if wxUSE_WX_RESOURCES - virtual bool LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table = NULL); - virtual wxControl *CreateItem(const wxItemResource* childResource, const wxItemResource* parentResource, - const wxResourceTable *table = (const wxResourceTable *) NULL); -#endif - - virtual void GetTextExtent(const wxString& string, int *x, int *y, - int *descent = NULL, - int *externalLeading = NULL, - const wxFont *theFont = NULL, bool use16 = FALSE) const; - - // Is the window retained? - inline bool IsRetained() const; - - // Warp the pointer the given position - virtual void WarpPointer(int x_pos, int y_pos) ; - - // Clear the window - virtual void Clear(); - - // Find a window by id or name - virtual wxWindow *FindWindow(long id); - virtual wxWindow *FindWindow(const wxString& name); - - // Constraint operations - bool Layout(); - void SetSizer(wxSizer *sizer); // Adds sizer child to this window - inline wxSizer *GetSizer() const ; - inline wxWindow *GetSizerParent() const ; - inline void SetSizerParent(wxWindow *win); - - // Do Update UI processing for controls - void UpdateWindowUI(); - - void OnEraseBackground(wxEraseEvent& event); - void OnChar(wxKeyEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnKeyUp(wxKeyEvent& event); - void OnPaint(wxPaintEvent& event); - void OnIdle(wxIdleEvent& event); - - // Does this window want to accept keyboard focus? - virtual bool AcceptsFocus() const; - - virtual void PrepareDC( wxDC &dc ) {}; - - -public: - //////////////////////////////////////////////////////////////////////// - //// IMPLEMENTATION - - // For implementation purposes - sometimes decorations make the client area - // smaller - virtual wxPoint GetClientAreaOrigin() const; - - // Makes an adjustment to the window position (for example, a frame that has - // a toolbar that it manages itself). - virtual void AdjustForParentClientOrigin(int& x, int& y, int sizeFlags); - - // Executes the default message - virtual long Default(); - -/* TODO: you may need something like this - // Determine whether 3D effects are wanted - virtual WXDWORD Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D); -*/ - - virtual void AddChild(wxWindow *child); // Adds reference to the child object - virtual void RemoveChild(wxWindow *child); // Removes reference to child - // (but doesn't delete the child object) - virtual void DestroyChildren(); // Removes and destroys all children - - inline bool IsBeingDeleted() const { return FALSE; } // TODO: Should probably eliminate this - - // Constraint implementation - void UnsetConstraints(wxLayoutConstraints *c); - inline wxList *GetConstraintsInvolvedIn() const ; - // Back-pointer to other windows we're involved with, so if we delete - // this window, we must delete any constraints we're involved with. - void AddConstraintReference(wxWindow *otherWin); - void RemoveConstraintReference(wxWindow *otherWin); - void DeleteRelatedConstraints(); - - virtual void ResetConstraints(); - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool LayoutPhase1(int *noChanges); - virtual bool LayoutPhase2(int *noChanges); - virtual bool DoPhase(int); - // Transforms from sizer coordinate space to actual - // parent coordinate space - virtual void TransformSizerToActual(int *x, int *y) const ; - - // Set size with transformation to actual coordinates if nec. - virtual void SizerSetSize(int x, int y, int w, int h); - virtual void SizerMove(int x, int y); - - // Only set/get the size/position of the constraint (if any) - virtual void SetSizeConstraint(int x, int y, int w, int h); - virtual void MoveConstraint(int x, int y); - virtual void GetSizeConstraint(int *w, int *h) const ; - virtual void GetClientSizeConstraint(int *w, int *h) const ; - virtual void GetPositionConstraint(int *x, int *y) const ; - - // Dialog units translations. Implemented in wincmn.cpp. - wxPoint ConvertPixelsToDialog(const wxPoint& pt) ; - wxPoint ConvertDialogToPixels(const wxPoint& pt) ; - inline wxSize ConvertPixelsToDialog(const wxSize& sz) - { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); } - inline wxSize ConvertDialogToPixels(const wxSize& sz) - { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); } - - wxObject *GetChild(int number) const ; - - // Generates a new id for controls - static int NewControlId(); - - // Responds to colour changes: passes event on to children. - void OnSysColourChanged(wxSysColourChangedEvent& event); - - // Transfers data to any child controls - void OnInitDialog(wxInitDialogEvent& event); - - // Sends an OnInitDialog event, which in turns transfers data to - // to the window via validators. - virtual void InitDialog(); - - //////////////////////////////////////////////////////////////////////// - //// PROTECTED DATA -protected: - int m_windowId; - long m_windowStyle; // Store the window's style - wxEvtHandler * m_windowEventHandler; // Usually is 'this' - wxLayoutConstraints * m_constraints; // Constraints for this window - wxList * m_constraintsInvolvedIn; // List of constraints we're involved in - wxSizer * m_windowSizer; // Window's top-level sizer (if any) - wxWindow * m_sizerParent; // Window's parent sizer (if any) - bool m_autoLayout; // Whether to call Layout() in OnSize - wxWindow * m_windowParent; // Each window always knows its parent - wxValidator * m_windowValidator; - int m_minSizeX; - int m_minSizeY; - int m_maxSizeX; - int m_maxSizeY; - - // Caret data - int m_caretWidth; - int m_caretHeight; - bool m_caretEnabled; - bool m_caretShown; - wxFont m_windowFont; // Window's font - wxCursor m_windowCursor; // Window's cursor - wxString m_windowName; // Window name - - wxButton * m_defaultItem; - - wxColour m_backgroundColour ; - wxColour m_foregroundColour ; - wxAcceleratorTable m_acceleratorTable; - -#if wxUSE_DRAG_AND_DROP - wxDropTarget *m_pDropTarget; // the current drop target or NULL -#endif //USE_DRAG_AND_DROP - -public: - wxRegion m_updateRegion; - wxList * m_children; // Window's children - int m_returnCode; - -DECLARE_EVENT_TABLE() -}; - -//////////////////////////////////////////////////////////////////////// -//// INLINES - -inline void *wxWindow::GetHandle() const { return (void *)NULL; } -inline int wxWindow::GetId() const { return m_windowId; } -inline void wxWindow::SetId(int id) { m_windowId = id; } -inline wxWindow *wxWindow::GetParent() const { return m_windowParent; } -inline void wxWindow::SetParent(wxWindow *p) { m_windowParent = p; } -inline wxWindow *wxWindow::GetGrandParent() const { return (m_windowParent ? m_windowParent->m_windowParent : (wxWindow*) NULL); } -inline wxList& wxWindow::GetChildren() const { return (wxList&) * m_children; } -inline wxFont& wxWindow::GetFont() const { return (wxFont&) m_windowFont; } -inline wxString wxWindow::GetName() const { return m_windowName; } -inline void wxWindow::SetName(const wxString& name) { m_windowName = name; } -inline long wxWindow::GetWindowStyleFlag() const { return m_windowStyle; } -inline void wxWindow::SetWindowStyleFlag(long flag) { m_windowStyle = flag; } -inline void wxWindow::SetEventHandler(wxEvtHandler *handler) { m_windowEventHandler = handler; } -inline wxEvtHandler *wxWindow::GetEventHandler() const { return m_windowEventHandler; } -inline void wxWindow::SetAutoLayout(bool a) { m_autoLayout = a; } -inline bool wxWindow::GetAutoLayout() const { return m_autoLayout; } -inline wxLayoutConstraints *wxWindow::GetConstraints() const { return m_constraints; } -inline void wxWindow::SetBackgroundColour(const wxColour& col) { m_backgroundColour = col; }; -inline wxColour wxWindow::GetBackgroundColour() const { return m_backgroundColour; }; -inline void wxWindow::SetForegroundColour(const wxColour& col) { m_foregroundColour = col; }; -inline wxColour wxWindow::GetForegroundColour() const { return m_foregroundColour; }; - -inline wxButton *wxWindow::GetDefaultItem() const { return m_defaultItem; } -inline void wxWindow::SetDefaultItem(wxButton *but) { m_defaultItem = but; } -inline bool wxWindow::IsRetained() const { return ((m_windowStyle & wxRETAINED) == wxRETAINED); } - -inline wxList *wxWindow::GetConstraintsInvolvedIn() const { return m_constraintsInvolvedIn; } -inline wxSizer *wxWindow::GetSizer() const { return m_windowSizer; } -inline wxWindow *wxWindow::GetSizerParent() const { return m_sizerParent; } -inline void wxWindow::SetSizerParent(wxWindow *win) { m_sizerParent = win; } -inline wxValidator *wxWindow::GetValidator() const { return m_windowValidator; } -inline void wxWindow::SetReturnCode(int retCode) { m_returnCode = retCode; } -inline int wxWindow::GetReturnCode() { return m_returnCode; } - -// Get the active window. -wxWindow* WXDLLEXPORT wxGetActiveWindow(); - -WXDLLEXPORT_DATA(extern wxList) wxTopLevelWindows; - -#endif - // _WX_WINDOW_H_ diff --git a/include/wx/tab.h b/include/wx/tab.h deleted file mode 100644 index 808f9c7146..0000000000 --- a/include/wx/tab.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_TAB_H_BASE_ -#define _WX_TAB_H_BASE_ - -#include "wx/generic/tabg.h" - -#endif - // _WX_TAB_H_BASE_ diff --git a/include/wx/tabctrl.h b/include/wx/tabctrl.h deleted file mode 100644 index c766f72bf3..0000000000 --- a/include/wx/tabctrl.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _WX_TABCTRL_H_BASE_ -#define _WX_TABCTRL_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/tabctrl.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/tabctrl.h" -#elif defined(__WXGTK__) -#elif defined(__WXMAC__) -#include "wx/mac/tabctrl.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/tabctrl.h" -#endif - -#endif - // _WX_TABCTRL_H_BASE_ diff --git a/include/wx/taskbar.h b/include/wx/taskbar.h deleted file mode 100644 index 614edbb655..0000000000 --- a/include/wx/taskbar.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _WX_TASKBAR_H_BASE_ -#define _WX_TASKBAR_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/taskbar.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/taskbar.h" -#elif defined(__WXGTK__) -#elif defined(__WXQT__) -#elif defined(__WXMAC__) -#include "wx/mac/taskbar.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/taskbar.h" -#endif - -#endif - // _WX_TASKBAR_H_BASE_ diff --git a/include/wx/tbar95.h b/include/wx/tbar95.h deleted file mode 100644 index 5e1a009544..0000000000 --- a/include/wx/tbar95.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _WX_TBAR95_H_BASE_ -#define _WX_TBAR95_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/tbar95.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/tbar95.h" -#elif defined(__WXGTK__) -#include "wx/gtk/tbar95.h" -#endif - -#endif - // _WX_TBAR95_H_BASE_ diff --git a/include/wx/tbarbase.h b/include/wx/tbarbase.h deleted file mode 100644 index 48f37f7e08..0000000000 --- a/include/wx/tbarbase.h +++ /dev/null @@ -1,256 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbarbase.h -// Purpose: Base class for toolbar classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TBARBASE_H_ -#define _WX_TBARBASE_H_ - -#ifdef __GNUG__ -#pragma interface "tbarbase.h" -#endif - -#include "wx/setup.h" -#include "wx/defs.h" - -#include "wx/bitmap.h" -#include "wx/list.h" -#include "wx/control.h" - -WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr; -WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize; -WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition; - -#define wxTOOL_STYLE_BUTTON 1 -#define wxTOOL_STYLE_SEPARATOR 2 - -#ifdef __WXGTK__ -class WXDLLEXPORT wxToolBar; -#endif - -class WXDLLEXPORT wxToolBarTool: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxToolBarTool) - public: - wxToolBarTool() {} -#ifdef __WXGTK__ - wxToolBarTool(wxToolBar *owner, - int theIndex = 0, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap, - bool toggle = FALSE, wxObject *clientData = (wxObject *) NULL, - const wxString& shortHelpString = "", const wxString& longHelpString = "", - GtkWidget *pixmap = (GtkWidget *) NULL ); -#else - wxToolBarTool(int theIndex, const wxBitmap& bitmap1 = wxNullBitmap, const wxBitmap& bitmap2 = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, - const wxString& shortHelpString = wxEmptyString, const wxString& longHelpString = wxEmptyString); -#endif - ~wxToolBarTool (); - inline void SetSize( long w, long h ) { m_width = w; m_height = h; } - inline long GetWidth () const { return m_width; } - inline long GetHeight () const { return m_height; } - -public: - int m_toolStyle; - wxObject * m_clientData; - int m_index; - long m_x; - long m_y; - long m_width; - long m_height; - bool m_toggleState; - bool m_isToggle; - bool m_deleteSecondBitmap; - bool m_enabled; - wxBitmap m_bitmap1; - wxBitmap m_bitmap2; - bool m_isMenuCommand; - wxString m_shortHelpString; - wxString m_longHelpString; -#ifdef __WXGTK__ - wxToolBar *m_owner; - GtkWidget *m_item; - GtkWidget *m_pixmap; -#endif -}; - -class WXDLLEXPORT wxToolBarBase : public wxControl -{ - DECLARE_ABSTRACT_CLASS(wxToolBarBase) - public: - - wxToolBarBase(void); - ~wxToolBarBase(void); - - // Handle wxToolBar events - - // Only allow toggle if returns TRUE. Call when left button up. - virtual bool OnLeftClick(int toolIndex, bool toggleDown); - - // Call when right button down. - virtual void OnRightClick(int toolIndex, long x, long y); - - // Called when the mouse cursor enters a tool bitmap. - // Argument is -1 if mouse is exiting the toolbar. - virtual void OnMouseEnter(int toolIndex); - - // If pushedBitmap is NULL, a reversed version of bitmap is - // created and used as the pushed/toggled image. - // If toggle is TRUE, the button toggles between the two states. - virtual wxToolBarTool *AddTool(int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - bool toggle = FALSE, long xPos = -1, long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = wxEmptyString, const wxString& helpString2 = wxEmptyString); - virtual void AddSeparator(void); - virtual void ClearTools(void); - - virtual void EnableTool(int toolIndex, bool enable); - virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - virtual void SetToggle(int toolIndex, bool toggle); // Set this to be togglable (or not) - virtual wxObject *GetToolClientData(int index) const; - inline wxList& GetTools(void) const { return (wxList&) m_tools; } - - // After the toolbar has initialized, this is the size the tools take up -#if WXWXIN_COMPATIBILITY - inline void GetMaxSize ( long * width, long * height ) const - { wxSize maxSize(GetMaxSize()); *width = maxSize.x; *height = maxSize.y; } -#endif - virtual wxSize GetMaxSize ( void ) const; - - virtual bool GetToolState(int toolIndex) const; - virtual bool GetToolEnabled(int toolIndex) const; - virtual wxToolBarTool *FindToolForPosition(long x, long y) const; - - virtual void SetToolShortHelp(int toolIndex, const wxString& helpString); - virtual wxString GetToolShortHelp(int toolIndex) const; - virtual void SetToolLongHelp(int toolIndex, const wxString& helpString); - virtual wxString GetToolLongHelp(int toolIndex) const; - - virtual void SetMargins(int x, int y); - inline void SetMargins(const wxSize& size) { SetMargins((int) size.x, (int) size.y); } - virtual void SetToolPacking(int packing); - virtual void SetToolSeparation(int separation); - - inline virtual wxSize GetToolMargins(void) { return wxSize(m_xMargin, m_yMargin); } - inline virtual int GetToolPacking(void) { return m_toolPacking; } - inline virtual int GetToolSeparation(void) { return m_toolSeparation; } - - virtual void SetToolBitmapSize(const wxSize& size) { m_defaultWidth = size.x; m_defaultHeight = size.y; }; - virtual wxSize GetToolBitmapSize(void) const { return wxSize(m_defaultWidth, m_defaultHeight); } - - // The button size (in some implementations) is bigger than the bitmap size: this returns - // the total button size. - virtual wxSize GetToolSize(void) const { return wxSize(m_defaultWidth, m_defaultHeight); } ; - - // Compatibility -#if WXWIN_COMPATIBILITY - inline void SetDefaultSize(int w, int h) { SetDefaultSize(wxSize(w, h)); } - inline long GetDefaultWidth(void) const { return m_defaultWidth; } - inline long GetDefaultHeight(void) const { return m_defaultHeight; } - inline int GetDefaultButtonWidth(void) const { return (int) GetDefaultButtonSize().x; }; - inline int GetDefaultButtonHeight(void) const { return (int) GetDefaultButtonSize().y; }; - virtual void SetDefaultSize(const wxSize& size) { SetToolBitmapSize(size); } - virtual wxSize GetDefaultSize(void) const { return GetToolBitmapSize(); } - virtual wxSize GetDefaultButtonSize(void) const { return GetToolSize(); } -#endif - - // Lay the tools out - virtual void LayoutTools(); - - // Add all the buttons: required for Win95. - virtual bool CreateTools(void) { return TRUE; } - - // Calls the appropriate function after tools have been created. - // E.g. Layout, or CreateTools. - virtual bool Realize() = 0; - - void Command(wxCommandEvent& event); - - // SCROLLING: this has to be copied from wxScrolledWindow since wxToolBarBase - // inherits from wxControl. This could have been put into wxToolBarSimple, - // but we might want any derived toolbar class to be scrollable. - - // Number of pixels per user unit (0 or -1 for no scrollbar) - // Length of virtual canvas in user units - virtual void SetScrollbars(int horizontal, int vertical, - int x_length, int y_length, - int x_pos = 0, int y_pos = 0); - - // Physically scroll the window - virtual void Scroll(int x_pos, int y_pos); - virtual void GetScrollPixelsPerUnit(int *x_unit, int *y_unit) const; - virtual void EnableScrolling(bool x_scrolling, bool y_scrolling); - virtual void AdjustScrollbars(void); - - // Prepare the DC by translating it according to the current scroll position - virtual void PrepareDC(wxDC& dc); - - int GetScrollPageSize(int orient) const ; - void SetScrollPageSize(int orient, int pageSize); - - // Get the view start - virtual void ViewStart(int *x, int *y) const; - - // Actual size in pixels when scrolling is taken into account - virtual void GetVirtualSize(int *x, int *y) const; - - // Do the toolbar button updates (check for EVT_UPDATE_UI handlers) - virtual void DoToolbarUpdates(void); - - inline void SetMaxRowsCols(int rows, int cols) { m_maxRows = rows; m_maxCols = cols; } - inline int GetMaxRows() const { return m_maxRows; } - inline int GetMaxCols() const { return m_maxCols; } - - void OnScroll(wxScrollEvent& event); - void OnSize(wxSizeEvent& event); - void OnIdle(wxIdleEvent& event); - - protected: - wxList m_tools; -// int m_tilingDirection; -// int m_rowsOrColumns; - int m_maxRows; - int m_maxCols; - long m_maxWidth, m_maxHeight; - int m_currentTool; // Tool where mouse currently is - int m_pressedTool; // Tool where mouse pressed - int m_xMargin; - int m_yMargin; - int m_toolPacking; - int m_toolSeparation; - long m_defaultWidth; - long m_defaultHeight; - -public: - //////////////////////////////////////////////////////////////////////// - //// IMPLEMENTATION - - // Calculate scroll increment - virtual int CalcScrollInc(wxScrollEvent& event); - - //////////////////////////////////////////////////////////////////////// - //// PROTECTED DATA -protected: - int m_xScrollPixelsPerLine; - int m_yScrollPixelsPerLine; - bool m_xScrollingEnabled; - bool m_yScrollingEnabled; - int m_xScrollPosition; - int m_yScrollPosition; - bool m_calcScrolledOffset; // If TRUE, wxCanvasDC uses scrolled offsets - int m_xScrollLines; - int m_yScrollLines; - int m_xScrollLinesPerPage; - int m_yScrollLinesPerPage; - -public: - DECLARE_EVENT_TABLE() -}; - -#endif - // _WX_TBARBASE_H_ - diff --git a/include/wx/tbarmsw.h b/include/wx/tbarmsw.h deleted file mode 100644 index 4b9d761fcf..0000000000 --- a/include/wx/tbarmsw.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _WX_TBARMSW_H_BASE_ -#define _WX_TBARMSW_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/tbarmsw.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/tbarmsw.h" -#elif defined(__WXGTK__) -#include "wx/gtk/tbarmsw.h" -#endif - -#endif - // _WX_TBARMSW_H_BASE_ diff --git a/include/wx/tbarsmpl.h b/include/wx/tbarsmpl.h deleted file mode 100644 index 54e1354a77..0000000000 --- a/include/wx/tbarsmpl.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbarsmpl.h -// Purpose: wxToolBarSimple class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TBARSMPLH__ -#define _WX_TBARSMPLH__ - -#ifdef __GNUG__ -#pragma interface "tbarsmpl.h" -#endif - -#include "wx/defs.h" - -#if wxUSE_TOOLBAR - -#include "wx/bitmap.h" -#include "wx/list.h" -#include "wx/tbarbase.h" - -class WXDLLEXPORT wxMemoryDC; - -WXDLLEXPORT_DATA(extern const wxChar*) wxToolBarNameStr; -WXDLLEXPORT_DATA(extern const wxSize) wxDefaultSize; -WXDLLEXPORT_DATA(extern const wxPoint) wxDefaultPosition; - -// XView can't cope properly with panels that behave like canvases -// (e.g. no scrollbars in panels) -class WXDLLEXPORT wxToolBarSimple : public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxToolBarSimple) - - public: - - wxToolBarSimple(void); - inline wxToolBarSimple(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, - const wxString& name = wxToolBarNameStr) - { - Create(parent, id, pos, size, style, name); - } - ~wxToolBarSimple(void); - - bool Create(wxWindow *parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTB_HORIZONTAL, const wxString& name = wxToolBarNameStr); - - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnKillFocus(wxFocusEvent& event); - - // Handle wxToolBar events - - virtual void DrawTool(wxDC& dc, wxMemoryDC& memDC, wxToolBarTool *tool); - virtual void ToggleTool(int toolIndex, bool toggle); // toggle is TRUE if toggled on - - virtual void SpringUpButton(int index); - - virtual void LayoutTools(); - - // The post-tool-addition call - virtual bool Realize() { LayoutTools(); return TRUE; }; - -protected: - int m_currentRowsOrColumns; - long m_lastX, m_lastY; - -DECLARE_EVENT_TABLE() - -}; - -#endif // wxUSE_TOOLBAR -#endif - // _WX_TBARSMPLH__ - diff --git a/include/wx/textctrl.h b/include/wx/textctrl.h deleted file mode 100644 index 4123afeb1f..0000000000 --- a/include/wx/textctrl.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_TEXTCTRL_H_BASE_ -#define _WX_TEXTCTRL_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/textctrl.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/textctrl.h" -#elif defined(__WXGTK__) -#include "wx/gtk/textctrl.h" -#elif defined(__WXQT__) -#include "wx/qt/textctrl.h" -#elif defined(__WXMAC__) -#include "wx/mac/textctrl.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/textctrl.h" -#endif - -#endif - // _WX_TEXTCTRL_H_BASE_ diff --git a/include/wx/textdlg.h b/include/wx/textdlg.h deleted file mode 100644 index 491bd8b4fa..0000000000 --- a/include/wx/textdlg.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef _WX_TEXTDLG_H_BASE_ -#define _WX_TEXTDLG_H_BASE_ - -#include "wx/generic/textdlgg.h" - -#endif - // _WX_TEXTDLG_H_BASE_ diff --git a/include/wx/textfile.h b/include/wx/textfile.h deleted file mode 100644 index b6132bd178..0000000000 --- a/include/wx/textfile.h +++ /dev/null @@ -1,140 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: textfile.h -// Purpose: class wxTextFile to work with text files of _small_ size -// (file is fully loaded in memory) and which understands CR/LF -// differences between platforms. -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _TEXTFILE_H -#define _TEXTFILE_H - -#ifdef __GNUG__ -#pragma interface "textfile.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/file.h" -#include "wx/dynarray.h" - -// ---------------------------------------------------------------------------- -// wxTextFile -// ---------------------------------------------------------------------------- - -// the line termination type -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' -}; - -WX_DEFINE_ARRAY(wxTextFileType, ArrayFileType); - -class wxTextFile -{ -public: - // default type for current platform (determined at compile time) - static const wxTextFileType typeDefault; - - // ctors - // def ctor, use Open(string) - wxTextFile() { } - // - wxTextFile(const wxString& strFile); - - // file operations - // file exists? - bool Exists() const; - // Open() also loads file in memory on success - bool Open(); - // same as Open() but with (another) file name - bool Open(const wxString& strFile); - // closes the file and frees memory, losing all changes - bool Close(); - // is file currently opened? - bool IsOpened() const { return m_file.IsOpened(); } - - // accessors - // get the number of lines in the file - size_t GetLineCount() const { return m_aLines.Count(); } - // the returned line may be modified (but don't add CR/LF at the end!) - wxString& GetLine(size_t n) const { return m_aLines[n]; } - wxString& operator[](size_t n) const { return m_aLines[n]; } - - // the current line has meaning only when you're using - // GetFirstLine()/GetNextLine() functions, it doesn't get updated when - // you're using "direct access" i.e. GetLine() - size_t GetCurrentLine() const { return m_nCurLine; } - void GoToLine(size_t n) { m_nCurLine = n; } - bool Eof() const { return m_nCurLine == m_aLines.Count() - 1; } - - // these methods allow more "iterator-like" traversal of the list of - // lines, i.e. you may write something like: - // for ( str = GetFirstLine(); !Eof(); str = GetNextLine() ) { ... } - - // NB: const is commented out because not all compilers understand - // 'mutable' keyword yet (m_nCurLine should be mutable) - wxString& GetFirstLine() /* const */ { return m_aLines[m_nCurLine = 0]; } - wxString& GetNextLine() /* const */ { return m_aLines[++m_nCurLine]; } - wxString& GetPrevLine() /* const */ - { wxASSERT(m_nCurLine > 0); return m_aLines[--m_nCurLine]; } - wxString& GetLastLine() /* const */ - { return m_aLines[m_nCurLine = m_aLines.Count() - 1]; } - - // get the type of the line (see also GetEOL) - wxTextFileType GetLineType(size_t n) const { return m_aTypes[n]; } - // guess the type of file (m_file is supposed to be opened) - wxTextFileType GuessType() const; - // get the name of the file - const wxChar *GetName() const { return m_strFile.c_str(); } - - // add/remove lines - // add a line to the end - void AddLine(const wxString& str, wxTextFileType type = typeDefault) - { m_aLines.Add(str); m_aTypes.Add(type); } - // insert a line before the line number n - void InsertLine(const wxString& str, - size_t n, - wxTextFileType type = typeDefault) - { m_aLines.Insert(str, n); m_aTypes.Insert(type, n); } - // delete one line - void RemoveLine(size_t n) { m_aLines.Remove(n); m_aTypes.Remove(n); } - - // change the file on disk (default argument means "don't change type") - // possibly in another format - bool Write(wxTextFileType typeNew = wxTextFileType_None); - - // get the file termination string - // Note: implementation moved to textfile to prevent warning due to switch. - static const wxChar *GetEOL(wxTextFileType type = typeDefault); - - // dtor - ~wxTextFile(); - -private: - // copy ctor/assignment operator not implemented - wxTextFile(const wxTextFile&); - wxTextFile& operator=(const wxTextFile&); - - // read the file in memory (m_file is supposed to be just opened) - bool Read(); - - wxFile m_file; // current file - - ArrayFileType m_aTypes; // type of each line - wxArrayString m_aLines; // lines of file - - size_t m_nCurLine; // number of current line in the file - - wxString m_strFile; // name of the file -}; - -#endif //_TEXTFILE_H diff --git a/include/wx/thread.h b/include/wx/thread.h deleted file mode 100644 index b0bbc261f7..0000000000 --- a/include/wx/thread.h +++ /dev/null @@ -1,400 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.h -// Purpose: Thread API -// Author: Guilhem Lavaux -// Modified by: Vadim Zeitlin (modifications partly inspired by omnithreads -// package from Olivetti & Oracle Research Laboratory) -// Created: 04/13/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __THREADH__ -#define __THREADH__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// get the value of wxUSE_THREADS configuration flag -#include "wx/setup.h" - -#if wxUSE_THREADS -/* otherwise we get undefined references for non-thread case (KB)*/ -#ifdef __GNUG__ - #pragma interface "thread.h" -#endif - -// Windows headers define it -#ifdef Yield - #undef Yield -#endif - -#include "wx/module.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -typedef enum -{ - wxMUTEX_NO_ERROR = 0, - wxMUTEX_DEAD_LOCK, // Mutex has been already locked by THE CALLING thread - wxMUTEX_BUSY, // Mutex has been already locked by ONE thread - wxMUTEX_UNLOCKED, - wxMUTEX_MISC_ERROR -} wxMutexError; - -typedef enum -{ - wxTHREAD_NO_ERROR = 0, // No error - wxTHREAD_NO_RESOURCE, // No resource left to create a new thread - wxTHREAD_RUNNING, // The thread is already running - wxTHREAD_NOT_RUNNING, // The thread isn't running - wxTHREAD_MISC_ERROR // Some other error -} wxThreadError; - -// defines the interval of priority -#define WXTHREAD_MIN_PRIORITY 0u -#define WXTHREAD_DEFAULT_PRIORITY 50u -#define WXTHREAD_MAX_PRIORITY 100u - -// ---------------------------------------------------------------------------- -// 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. Only one thread at a time can own a mutex object. -// ---------------------------------------------------------------------------- - -// you should consider wxMutexLocker whenever possible instead of directly -// working with wxMutex class - it is safer -class WXDLLEXPORT wxMutexInternal; -class WXDLLEXPORT wxMutex -{ -public: - // constructor & destructor - wxMutex(); - ~wxMutex(); - - // Lock the mutex. - wxMutexError Lock(); - // Try to lock the mutex: if it can't, returns immediately with an error. - wxMutexError TryLock(); - // Unlock the mutex. - wxMutexError Unlock(); - - // Returns true if the mutex is locked. - bool IsLocked() const { return (m_locked > 0); } - -protected: - friend class wxCondition; - - // no assignment operator nor copy ctor - wxMutex(const wxMutex&); - wxMutex& operator=(const wxMutex&); - - int m_locked; - wxMutexInternal *p_internal; -}; - -// a helper class which locks the mutex in the ctor and unlocks it in the dtor: -// this ensures that mutex is always unlocked, even if the function returns or -// throws an exception before it reaches the end -class WXDLLEXPORT wxMutexLocker -{ -public: - // lock the mutex in the ctor - wxMutexLocker(wxMutex& mutex) : m_mutex(mutex) - { m_isOk = m_mutex.Lock() == wxMUTEX_NO_ERROR; } - - // returns TRUE if mutex was successfully locked in ctor - bool IsOk() const - { return m_isOk; } - - // unlock the mutex in dtor - ~wxMutexLocker() - { if ( IsOk() ) m_mutex.Unlock(); } - -private: - // no assignment operator nor copy ctor - wxMutexLocker(const wxMutexLocker&); - wxMutexLocker& operator=(const wxMutexLocker&); - - bool m_isOk; - wxMutex& m_mutex; -}; - -// ---------------------------------------------------------------------------- -// Critical section: this is the same as mutex but is only visible to the -// threads of the same process. For the platforms which don't have native -// support for critical sections, they're implemented entirely in terms of -// mutexes -// ---------------------------------------------------------------------------- - -// in order to avoid any overhead under !MSW make all wxCriticalSection class -// functions inline - but this can't be done under MSW -#ifdef __WXMSW__ - class WXDLLEXPORT wxCriticalSectionInternal; - #define WXCRITICAL_INLINE -#else // !MSW - #define WXCRITICAL_INLINE inline -#endif // MSW/!MSW - -// you should consider wxCriticalSectionLocker whenever possible instead of -// directly working with wxCriticalSection class - it is safer -class WXDLLEXPORT wxCriticalSection -{ -public: - // ctor & dtor - WXCRITICAL_INLINE wxCriticalSection(); - WXCRITICAL_INLINE ~wxCriticalSection(); - - // enter the section (the same as locking a mutex) - WXCRITICAL_INLINE void Enter(); - // leave the critical section (same as unlocking a mutex) - WXCRITICAL_INLINE void Leave(); - -private: - // no assignment operator nor copy ctor - wxCriticalSection(const wxCriticalSection&); - wxCriticalSection& operator=(const wxCriticalSection&); - -#ifdef __WXMSW__ - wxCriticalSectionInternal *m_critsect; -#else // !MSW - wxMutex m_mutex; -#endif // MSW/!MSW -}; - -// keep your preprocessor name space clean -#undef WXCRITICAL_INLINE - -// wxCriticalSectionLocker is the same to critical sections as wxMutexLocker is -// to th mutexes -class WXDLLEXPORT wxCriticalSectionLocker -{ -public: - wxCriticalSectionLocker(wxCriticalSection& critsect) : m_critsect(critsect) - { m_critsect.Enter(); } - ~wxCriticalSectionLocker() - { m_critsect.Leave(); } - -private: - // no assignment operator nor copy ctor - wxCriticalSectionLocker(const wxCriticalSectionLocker&); - wxCriticalSectionLocker& operator=(const wxCriticalSectionLocker&); - - wxCriticalSection& m_critsect; -}; - -// ---------------------------------------------------------------------------- -// Condition handler. -// ---------------------------------------------------------------------------- - -class wxConditionInternal; -class WXDLLEXPORT wxCondition -{ -public: - // constructor & destructor - wxCondition(); - ~wxCondition(); - - // Waits indefinitely. - void Wait(wxMutex& mutex); - // Waits until a signal is raised or the timeout is elapsed. - bool Wait(wxMutex& mutex, unsigned long sec, unsigned long nsec); - // Raises a signal: only one "Waiter" is released. - void Signal(); - // Broadcasts to all "Waiters". - void Broadcast(); - -private: - wxConditionInternal *p_internal; -}; - -// ---------------------------------------------------------------------------- -// Thread management class -// ---------------------------------------------------------------------------- - -// FIXME Thread termination model is still unclear. Delete() should probably -// have a timeout after which the thread must be Kill()ed. - -// NB: in the function descriptions the words "this thread" mean the thread -// created by the wxThread object while "main thread" is the thread created -// during the process initialization (a.k.a. the GUI thread) -class wxThreadInternal; -class WXDLLEXPORT wxThread -{ -public: - // the return type for the thread function - typedef void *ExitCode; - - // static functions - // Returns the wxThread object for the calling thread. NULL is returned - // if the caller is the main thread (but it's recommended to use - // IsMain() and only call This() for threads other than the main one - // because NULL is also returned on error). If the thread wasn't - // created with wxThread class, the returned value is undefined. - static wxThread *This(); - - // Returns true if current thread is the main thread. - static bool IsMain(); - - // Release the rest of our time slice leting the other threads run - static void Yield(); - - // Sleep during the specified period of time in milliseconds - // - // NB: at least under MSW worker threads can not call ::wxSleep()! - static void Sleep(unsigned long milliseconds); - - // default constructor - wxThread(); - - // function that change the thread state - // create a new thread - call Run() to start it - wxThreadError Create(); - - // starts execution of the thread - from the moment Run() is called the - // execution of wxThread::Entry() may start at any moment, caller - // shouldn't suppose that it starts after (or before) Run() returns. - wxThreadError Run(); - - // stops the thread if it's running and deletes the wxThread object - // freeing its memory. This function should also be called if the - // Create() or Run() fails to free memory (otherwise it will be done by - // the thread itself when it terminates). The return value is the - // thread exit code if the thread was gracefully terminated, 0 if it - // wasn't running and -1 if an error occured. - ExitCode Delete(); - - // kills the thread without giving it any chance to clean up - should - // not be used in normal circumstances, use Delete() instead. It is a - // dangerous function that should only be used in the most extreme - // cases! The wxThread object is deleted by Kill() if thread was - // killed (i.e. no errors occured). - wxThreadError Kill(); - - // pause a running thread - wxThreadError Pause(); - - // resume a paused thread - wxThreadError Resume(); - - // priority - // Sets the priority to "prio": see WXTHREAD_XXX_PRIORITY constants - // - // NB: the priority can only be set before the thread is created - void SetPriority(unsigned int prio); - - // Get the current priority. - unsigned int GetPriority() const; - - // Get the thread ID - a platform dependent number which uniquely - // identifies a thread inside a process - unsigned long GetID() const; - - // thread status inquiries - // Returns true if the thread is alive: i.e. running or suspended - bool IsAlive() const; - // Returns true if the thread is running (not paused, not killed). - bool IsRunning() const; - // Returns true if the thread is suspended - bool IsPaused() const; - - // called when the thread exits - in the context of this thread - // - // NB: this function will not be called if the thread is Kill()ed - virtual void OnExit() { } - -protected: - // Returns TRUE if the thread was asked to terminate: this function should - // be called by the thread from time to time, otherwise the main thread - // will be left forever in Delete()! - bool TestDestroy(); - - // exits from the current thread - can be called only from this thread - void Exit(void *exitcode = 0); - - // destructor is private - user code can't delete thread objects, they will - // auto-delete themselves (and thus must be always allocated on the heap). - // Use Delete() or Kill() instead. - // - // NB: derived classes dtors shouldn't be public neither! - virtual ~wxThread(); - - // entry point for the thread - called by Run() and executes in the context - // of this thread. - virtual void *Entry() = 0; - -private: - // no copy ctor/assignment operator - wxThread(const wxThread&); - wxThread& operator=(const wxThread&); - - friend class wxThreadInternal; - - // the (platform-dependent) thread class implementation - wxThreadInternal *p_internal; - - // protects access to any methods of wxThreadInternal object - wxCriticalSection m_critsect; -}; - -// ---------------------------------------------------------------------------- -// Automatic initialization -// ---------------------------------------------------------------------------- - -// GUI mutex handling. -void WXDLLEXPORT wxMutexGuiEnter(); -void WXDLLEXPORT wxMutexGuiLeave(); - -#else // !wxUSE_THREADS - -#include // for WXDLLEXPORT - -// no thread support -inline void WXDLLEXPORT wxMutexGuiEnter() { } -inline void WXDLLEXPORT wxMutexGuiLeave() { } - -#endif // wxUSE_THREADS - -// automatically unlock GUI mutex in dtor -class WXDLLEXPORT wxMutexGuiLocker -{ -public: - wxMutexGuiLocker() { wxMutexGuiEnter(); } - ~wxMutexGuiLocker() { wxMutexGuiLeave(); } -}; - -// ----------------------------------------------------------------------------- -// implementation only until the end of file -// ----------------------------------------------------------------------------- -#if wxUSE_THREADS -#ifdef __WXMSW__ - // unlock GUI if there are threads waiting for and lock it back when - // there are no more of them - should be called periodically by the main - // thread - extern void WXDLLEXPORT wxMutexGuiLeaveOrEnter(); - - // returns TRUE if the main thread has GUI lock - extern bool WXDLLEXPORT wxGuiOwnedByMainThread(); - - // wakes up the main thread if it's sleeping inside ::GetMessage() - extern void WXDLLEXPORT wxWakeUpMainThread(); - - // return TRUE if the main thread is waiting for some other to terminate: - // wxApp then should block all "dangerous" messages - extern bool WXDLLEXPORT wxIsWaitingForThread(); -#else // !MSW - // implement wxCriticalSection using mutexes - inline wxCriticalSection::wxCriticalSection() { } - inline wxCriticalSection::~wxCriticalSection() { } - - inline void wxCriticalSection::Enter() { (void)m_mutex.Lock(); } - inline void wxCriticalSection::Leave() { (void)m_mutex.Unlock(); } -#endif // MSW/!MSW -#endif // wxUSE_THREADS - -#endif // __THREADH__ diff --git a/include/wx/time.h b/include/wx/time.h deleted file mode 100644 index 35cce7f686..0000000000 --- a/include/wx/time.h +++ /dev/null @@ -1,112 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: time.h -// Purpose: wxTime class, from NIHCL -// Author: Julian Smart, after K. E. Gorlen -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TIMEH__ -#define _WX_TIMEH__ - -#include "wx/object.h" - -#if wxUSE_TIMEDATE - -#ifdef __GNUG__ -#pragma interface "time.h" -#endif - -class WXDLLEXPORT wxDate; - -typedef unsigned short hourTy; -typedef unsigned short minuteTy; -typedef unsigned short secondTy; -typedef unsigned long clockTy; - -class WXDLLEXPORT wxTime: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxTime) - -public: // type definitions - enum tFormat { wx12h, wx24h }; - enum tPrecision { wxStdMinSec, wxStdMin }; -private: - static tFormat Format; - static tPrecision Precision; - - clockTy sec; /* seconds since 1/1/1901 */ - - bool IsDST() const; - wxTime GetLocalTime() const; -private: // static member functions - static wxTime GetLocalTime(const wxDate& date, hourTy h=0, minuteTy m=0, secondTy s=0); - static wxTime GetBeginDST(unsigned year); - static wxTime GetEndDST(unsigned year); -public: - wxTime(); // current time - wxTime(clockTy s) { sec = s; } - void operator=(const wxTime& t) { sec = t.sec; } // Ordering required for some compilers - wxTime(const wxTime& t) { (*this) = t ; } - wxTime(hourTy h, minuteTy m, secondTy s =0, bool dst =FALSE); - wxTime(const wxDate&, hourTy h =0, minuteTy m =0, secondTy s=0, bool dst =FALSE); - - // Convert to string -#ifndef __SALFORDC__ - operator wxChar * (void); - operator wxDate() const; -#endif - - bool operator<(const wxTime& t) const { return sec < t.sec; } - bool operator<=(const wxTime& t) const { return sec <= t.sec; } - bool operator>(const wxTime& t) const { return sec > t.sec; } - bool operator>=(const wxTime& t) const { return sec >= t.sec; } - bool operator==(const wxTime& t) const { return sec == t.sec; } - bool operator!=(const wxTime& t) const { return sec != t.sec; } - friend wxTime operator+(const wxTime& t, long s) { return wxTime(t.sec+s); } - friend wxTime operator+(long s, const wxTime& t) { return wxTime(t.sec+s); } - long operator-(const wxTime& t) const { return sec - t.sec; } - wxTime operator-(long s) const { return wxTime(sec-s); } - void operator+=(long s) { sec += s; } - void operator-=(long s) { sec -= s; } - bool IsBetween(const wxTime& a, const wxTime& b) const; - - /// Get day - int GetDay() const; - /// Get month - int GetMonth() const; - /// Get year - int GetYear() const; - /// Get day of week (0=Sunday 6=Saturday) - int GetDayOfWeek() const; - - hourTy GetHour() const; // hour in local time - hourTy GetHourGMT() const; // hour in GMT - minuteTy GetMinute() const; // minute in local time - minuteTy GetMinuteGMT() const; // minute in GMT - secondTy GetSecond() const; // second in local time or GMT - clockTy GetSeconds() const { return sec; } - secondTy GetSecondGMT() const ; - wxTime Max(const wxTime&) const; - wxTime Min(const wxTime&) const; - static void SetFormat(const tFormat lFormat = wx12h, - const tPrecision lPrecision = wxStdMinSec); - wxChar *FormatTime() const; -/* - virtual int compare(const Object&) const; - virtual void deepenShallowCopy(); // {} - virtual unsigned hash() const; - virtual bool isEqual(const Object&) const; - virtual void printOn(ostream& strm =cout) const; - virtual const Class* species() const; -*/ -}; - -#endif - // wxUSE_TIMEDATE -#endif - // _WX_TIMEH__ - diff --git a/include/wx/timer.h b/include/wx/timer.h deleted file mode 100644 index 4cf5c35b26..0000000000 --- a/include/wx/timer.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_TIMER_H_BASE_ -#define _WX_TIMER_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/timer.h" -#elif defined(__WXMOTIF__) -#include "wx/motif/timer.h" -#elif defined(__WXGTK__) -#include "wx/gtk/timer.h" -#elif defined(__WXQT__) -#include "wx/qt/timer.h" -#elif defined(__WXMAC__) -#include "wx/mac/timer.h" -#elif defined(__WXSTUBS__) -#include "wx/stubs/timer.h" -#endif - -#endif - // _WX_TIMER_H_BASE_ diff --git a/include/wx/tokenzr.h b/include/wx/tokenzr.h deleted file mode 100644 index 1668cd47ba..0000000000 --- a/include/wx/tokenzr.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tokenzr.h -// Purpose: String tokenizer -// Author: Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TOKENZRH -#define _WX_TOKENZRH - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/filefn.h" - -class WXDLLEXPORT wxStringTokenizer : public wxObject -{ -public: - wxStringTokenizer(const wxString& to_tokenize, - const wxString& delims = " \t\r\n", - bool ret_delim = FALSE); - wxStringTokenizer() { m_retdelims = FALSE;} - virtual ~wxStringTokenizer(); - - int CountTokens() const; - bool HasMoreTokens(); - - wxString NextToken(); - wxString GetNextToken() { return NextToken(); }; - - wxString GetString() const { return m_string; } - - void SetString(const wxString& to_tokenize, - const wxString& delims = " \t\r\n", - bool ret_delim = FALSE) - { - m_string = to_tokenize; - m_delims = delims; - m_retdelims = ret_delim; - } - -protected: - off_t FindDelims(const wxString& str, const wxString& delims) const; - void EatLeadingDelims(); - - wxString m_string, m_delims; - bool m_retdelims; -}; - -#endif // _WX_TOKENZRH diff --git a/include/wx/toolbar.h b/include/wx/toolbar.h deleted file mode 100644 index 86d2444de7..0000000000 --- a/include/wx/toolbar.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef _TOOLBAR_H_BASE_ -#define _TOOLBAR_H_BASE_ - -// the application code should use only wxToolBar which is #define'd to be the -// native implementation for each platform -#if defined(__WXMSW__) && defined(__WIN95__) -# include "wx/msw/tbar95.h" -# define wxToolBar wxToolBar95 -# define sm_classwxToolBar sm_classwxToolBar95 -#elif defined(__WXMSW__) -# include "wx/msw/tbarmsw.h" -# define wxToolBar wxToolBarMSW -# define sm_classwxToolBar sm_classwxToolBarMSW -#elif defined(__WXMOTIF__) -# include "wx/motif/toolbar.h" -#elif defined(__WXGTK__) -# include "wx/gtk/tbargtk.h" -#elif defined(__WXQT__) -# include "wx/qt/tbarqt.h" -#elif defined(__WXMAC__) -# include "wx/mac/toolbar.h" -#elif defined(__WXSTUBS__) -# include "wx/stubs/toolbar.h" -#endif - -#endif - // _TOOLBAR_H_BASE_ diff --git a/include/wx/tooltip.h b/include/wx/tooltip.h deleted file mode 100644 index 451765c5e6..0000000000 --- a/include/wx/tooltip.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef _WX_TOOLTIP_H_BASE_ -#define _WX_TOOLTIP_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/tooltip.h" -#elif defined(__WXMOTIF__) -// #include "wx/motif/tooltip.h" -#elif defined(__WXGTK__) -#include "wx/gtk/tooltip.h" -#elif defined(__WXQT__) -#include "wx/qt/tooltip.h" -#elif defined(__WXMAC__) -#include "wx/mac/tooltip.h" -#elif defined(__WXSTUBS__) -// #include "wx/stubs/tooltip.h" -#endif - -#endif - // _WX_TOOLTIP_H_BASE_ diff --git a/include/wx/treectrl.h b/include/wx/treectrl.h deleted file mode 100644 index fc3a89e1b3..0000000000 --- a/include/wx/treectrl.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _WX_TREECTRL_H_BASE_ -#define _WX_TREECTRL_H_BASE_ - -#if defined(__WXMSW__) -#ifdef __WIN16__ -#include "wx/generic/treectrl.h" -#else -#include "wx/msw/treectrl.h" -#endif -#elif defined(__WXMOTIF__) -#include "wx/generic/treectrl.h" -#elif defined(__WXGTK__) -#include "wx/generic/treectrl.h" -#elif defined(__WXQT__) -#include "wx/qt/treectrl.h" -#elif defined(__WXMAC__) -#include "wx/generic/treectrl.h" -#elif defined(__WXSTUBS__) -#include "wx/generic/treectrl.h" -#endif - -#endif - // _WX_TREECTRL_H_BASE_ diff --git a/include/wx/types.h b/include/wx/types.h deleted file mode 100644 index 962783f387..0000000000 --- a/include/wx/types.h +++ /dev/null @@ -1,97 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: types.h -// Purpose: Type identifiers, used by resource system -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_TYPESH__ -#define _WX_TYPESH__ - -#ifdef __GNUG__ -// #pragma interface "types.h" -#endif - -// Types of objects -#define wxTYPE_ANY 0 -#define wxTYPE_OBJECT wxTYPE_ANY -#define wxTYPE_WINDOW 1 -#define wxTYPE_DIALOG_BOX 2 -#define wxTYPE_ITEM 3 -#define wxTYPE_PANEL 4 -#define wxTYPE_CANVAS 5 -#define wxTYPE_TEXT_WINDOW 6 -#define wxTYPE_FRAME 7 - -#define wxTYPE_BUTTON 8 -#define wxTYPE_TEXT 9 -#define wxTYPE_MESSAGE 10 -#define wxTYPE_CHOICE 11 -#define wxTYPE_LIST_BOX 12 -#define wxTYPE_SLIDER 13 -#define wxTYPE_CHECK_BOX 14 -#define wxTYPE_MENU 15 -#define wxTYPE_MENU_BAR 16 -#define wxTYPE_MULTI_TEXT 17 -#define wxTYPE_RADIO_BOX 18 -#define wxTYPE_GROUP_BOX 19 -#define wxTYPE_GAUGE 20 -#define wxTYPE_SCROLL_BAR 21 -#define wxTYPE_VIRT_LIST_BOX 22 -#define wxTYPE_COMBO_BOX 23 -#define wxTYPE_RADIO_BUTTON 24 - -#define wxTYPE_EVENT 25 -#define wxTYPE_DC 26 -#define wxTYPE_DC_CANVAS 27 -#define wxTYPE_DC_POSTSCRIPT 28 -#define wxTYPE_DC_PRINTER 29 -#define wxTYPE_DC_METAFILE 30 -#define wxTYPE_DC_MEMORY 31 -#define wxTYPE_MOUSE_EVENT 32 -#define wxTYPE_KEY_EVENT 33 -#define wxTYPE_COMMAND_EVENT 34 -#define wxTYPE_DC_PANEL 35 - -#define wxTYPE_PEN 40 -#define wxTYPE_BRUSH 41 -#define wxTYPE_FONT 42 -#define wxTYPE_ICON 42 -#define wxTYPE_BITMAP 43 -#define wxTYPE_METAFILE 44 -#define wxTYPE_TIMER 45 -#define wxTYPE_COLOUR 46 -#define wxTYPE_COLOURMAP 47 -#define wxTYPE_CURSOR 48 - -#define wxTYPE_DDE_CLIENT 60 -#define wxTYPE_DDE_SERVER 61 -#define wxTYPE_DDE_CONNECTION 62 - -#define wxTYPE_HELP_INSTANCE 63 - -#define wxTYPE_LIST 70 -#define wxTYPE_STRING_LIST 71 -#define wxTYPE_HASH_TABLE 72 -#define wxTYPE_NODE 73 -#define wxTYPE_APP 74 -#define wxTYPE_DATE 75 - -#define wxTYPE_ENHANCED_DIALOG 80 -#define wxTYPE_TOOLBAR 81 -#define wxTYPE_BUTTONBAR 82 - -#define wxTYPE_DATABASE 90 -#define wxTYPE_QUERY_FIELD 91 -#define wxTYPE_QUERY_COL 92 -#define wxTYPE_RECORDSET 93 - -#define wxTYPE_USER 500 - -#endif - // _WX_TYPESH__ - diff --git a/include/wx/unix/.cvsignore b/include/wx/unix/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/include/wx/unix/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/include/wx/unix/Makefile.am b/include/wx/unix/Makefile.am deleted file mode 100644 index b213b1d9d4..0000000000 --- a/include/wx/unix/Makefile.am +++ /dev/null @@ -1,9 +0,0 @@ -## Purpose: The automake makefile for wxWindows (include/wx/unix subdir) -## Author: Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -wx_unix_includedir = ${includedir}/wx/unix -wx_unix_include_HEADERS = execute.h - diff --git a/include/wx/unix/execute.h b/include/wx/unix/execute.h deleted file mode 100644 index 77a821e42b..0000000000 --- a/include/wx/unix/execute.h +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: unix/execute.h -// Purpose: private details of wxExecute() implementation -// Author: Vadim Zeitlin -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_UNIX_EXECUTE_H -#define _WX_UNIX_EXECUTE_H - -// if pid > 0, the execution is async and the data is freed in the callback -// executed when the process terminates, if pid < 0, the execution is -// synchronous and the caller (wxExecute) frees the data -struct wxEndProcessData -{ - int pid, // pid of the process - tag; // port dependent value - wxProcess *process; // if !NULL: notified on process termination - int exitcode; // the exit code -}; - -// this function is called when the process terminates from port specific -// callback function and is common to all ports (src/unix/utilsunx.cpp) -extern void wxHandleProcessTermination(wxEndProcessData *proc_data); - -// this function is called to associate the port-specific callback with the -// child process. The return valus is port-specific. -extern int wxAddProcessCallback(wxEndProcessData *proc_data, int fd); - -#endif // _WX_UNIX_EXECUTE_H diff --git a/include/wx/url.h b/include/wx/url.h deleted file mode 100644 index f8f54af963..0000000000 --- a/include/wx/url.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: url.h -// Purpose: URL parser -// Author: Guilhem Lavaux -// Modified by: -// Created: 20/07/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_URL_H -#define _WX_URL_H - -#ifdef __GNUG__ -#pragma interface -#endif - -// wxWindows header -#include "wx/object.h" - -// wxSocket headers -#include "wx/protocol/protocol.h" -#include "wx/protocol/http.h" - -typedef enum { - wxURL_NOERR = 0, - wxURL_SNTXERR, - wxURL_NOPROTO, - wxURL_NOHOST, - wxURL_NOPATH, - wxURL_CONNERR, - wxURL_PROTOERR -} wxURLError; - -class WXDLLEXPORT wxURL : public wxObject { - DECLARE_DYNAMIC_CLASS(wxURL) -protected: - static wxProtoInfo *g_protocols; - static wxHTTP *g_proxy; - wxProtoInfo *m_protoinfo; - wxProtocol *m_protocol; - wxHTTP m_proxy; - wxURLError m_error; - wxString m_protoname, m_hostname, m_servname, m_path, m_url; - wxString m_user, m_password; - - bool PrepProto(wxString& url); - bool PrepHost(wxString& url); - bool PrepPath(wxString& url); - bool ParseURL(); - void CleanData(); - bool FetchProtocol(); - - friend class wxProtoInfo; - friend class wxProtocolModule; -public: - - wxURL(const wxString& url); - virtual ~wxURL(); - - inline wxString GetProtocolName() const - { return m_protoinfo->m_protoname; } - inline wxProtocol& GetProtocol() { return *m_protocol; } - inline wxURLError GetError() const { return m_error; } - inline wxString GetPath() const { return m_path; } - - wxInputStream *GetInputStream(); - - static void SetDefaultProxy(const wxString& url_proxy); - void SetProxy(const wxString& url_proxy); - - static wxString ConvertToValidURI(const wxString& uri); -}; - -#endif diff --git a/include/wx/utils.h b/include/wx/utils.h deleted file mode 100644 index 02ce0c4099..0000000000 --- a/include/wx/utils.h +++ /dev/null @@ -1,368 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.h -// Purpose: Miscellaneous utilities -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_UTILSH__ -#define _WX_UTILSH__ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma interface "utils.h" -#endif - -#include "wx/setup.h" -#include "wx/object.h" -#include "wx/list.h" -#include "wx/window.h" -#include "wx/filefn.h" - -#include "wx/ioswrap.h" - -#ifdef __X__ - #include - #include -#endif - -#include - -// ---------------------------------------------------------------------------- -// Forward declaration -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxProcess; -class WXDLLEXPORT wxFrame; - -// FIXME should use wxStricmp() instead -#ifdef __GNUWIN32__ - #define stricmp strcasecmp - #define strnicmp strncasecmp -#endif - -// ---------------------------------------------------------------------------- -// Macros -// ---------------------------------------------------------------------------- - -#define wxMax(a,b) (((a) > (b)) ? (a) : (b)) -#define wxMin(a,b) (((a) < (b)) ? (a) : (b)) - -// ---------------------------------------------------------------------------- -// String functions (deprecated, use wxString) -// ---------------------------------------------------------------------------- - -// Useful buffer (FIXME VZ: yeah, that is. To be removed!) -WXDLLEXPORT_DATA(extern wxChar*) wxBuffer; - -// Make a copy of this string using 'new' -WXDLLEXPORT wxChar* copystring(const wxChar *s); - -// Matches string one within string two regardless of case -WXDLLEXPORT bool StringMatch(wxChar *one, wxChar *two, bool subString = TRUE, bool exact = FALSE); - -// A shorter way of using strcmp -#define wxStringEq(s1, s2) (s1 && s2 && (wxStrcmp(s1, s2) == 0)) - -// ---------------------------------------------------------------------------- -// Miscellaneous functions -// ---------------------------------------------------------------------------- - -// Sound the bell -WXDLLEXPORT void wxBell(void) ; - -// Get OS version -WXDLLEXPORT int wxGetOsVersion(int *majorVsn= (int *) NULL,int *minorVsn= (int *) NULL) ; - -// Return a string with the current date/time -WXDLLEXPORT wxString wxNow(); - -// Don't synthesize KeyUp events holding down a key and producing -// KeyDown events with autorepeat. On by default and always on -// in wxMSW. -WXDLLEXPORT bool wxSetDetectableAutoRepeat( bool flag ); - -// ---------------------------------------------------------------------------- -// Window ID management -// ---------------------------------------------------------------------------- - -// Generate a unique ID -WXDLLEXPORT long wxNewId(); -#if !defined(NewId) && defined(WXWIN_COMPATIBILITY) - #define NewId wxNewId -#endif - -// Ensure subsequent IDs don't clash with this one -WXDLLEXPORT void wxRegisterId(long id); -#if !defined(RegisterId) && defined(WXWIN_COMPATIBILITY) - #define RegisterId wxRegisterId -#endif - -// Return the current ID -WXDLLEXPORT long wxGetCurrentId(); - -// ---------------------------------------------------------------------------- -// Various conversions -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern const wxChar*) wxFloatToStringStr; -WXDLLEXPORT_DATA(extern const wxChar*) wxDoubleToStringStr; - -WXDLLEXPORT void StringToFloat(wxChar *s, float *number); -WXDLLEXPORT wxChar* FloatToString(float number, const wxChar *fmt = wxFloatToStringStr); -WXDLLEXPORT void StringToDouble(wxChar *s, double *number); -WXDLLEXPORT wxChar* DoubleToString(double number, const wxChar *fmt = wxDoubleToStringStr); -WXDLLEXPORT void StringToInt(wxChar *s, int *number); -WXDLLEXPORT void StringToLong(wxChar *s, long *number); -WXDLLEXPORT wxChar* IntToString(int number); -WXDLLEXPORT wxChar* LongToString(long number); - -// Convert 2-digit hex number to decimal -WXDLLEXPORT int wxHexToDec(const wxString& buf); - -// Convert decimal integer to 2-character hex string -WXDLLEXPORT void wxDecToHex(int dec, wxChar *buf); -WXDLLEXPORT wxString wxDecToHex(int dec); - -// ---------------------------------------------------------------------------- -// Process management -// ---------------------------------------------------------------------------- - -// Execute another program. Returns 0 if there was an error, a PID otherwise. -WXDLLEXPORT long wxExecute(wxChar **argv, bool sync = FALSE, - wxProcess *process = (wxProcess *) NULL); -WXDLLEXPORT long wxExecute(const wxString& command, bool sync = FALSE, - wxProcess *process = (wxProcess *) NULL); - -enum wxSignal -{ - wxSIGNONE = 0, // verify if the process exists under Unix - wxSIGHUP, - wxSIGINT, - wxSIGQUIT, - wxSIGILL, - wxSIGTRAP, - wxSIGABRT, - wxSIGIOT = wxSIGABRT, // another name - wxSIGEMT, - wxSIGFPE, - wxSIGKILL, - wxSIGBUS, - wxSIGSEGV, - wxSIGSYS, - wxSIGPIPE, - wxSIGALRM, - wxSIGTERM - - // further signals are different in meaning between different Unix systems -}; - -// the argument is ignored under Windows - the process is always killed -WXDLLEXPORT int wxKill(long pid, wxSignal sig = wxSIGTERM); - -// Execute a command in an interactive shell window -// If no command then just the shell -WXDLLEXPORT bool wxShell(const wxString& command = wxEmptyString); - -// Sleep for nSecs seconds under UNIX, do nothing under Windows -WXDLLEXPORT void wxSleep(int nSecs); - -// Sleep for a given amount of milliseconds -WXDLLEXPORT void wxUsleep(unsigned long milliseconds); - -// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) -WXDLLEXPORT long wxGetFreeMemory(); - -// ---------------------------------------------------------------------------- -// Network and username functions. -// ---------------------------------------------------------------------------- - -// NB: "char *" functions are deprecated, use wxString ones! - -// Get eMail address -WXDLLEXPORT bool wxGetEmailAddress(wxChar *buf, int maxSize); -WXDLLEXPORT wxString wxGetEmailAddress(); - -// Get hostname. -WXDLLEXPORT bool wxGetHostName(wxChar *buf, int maxSize); -WXDLLEXPORT wxString wxGetHostName(); - -// Get FQDN -WXDLLEXPORT wxString wxGetFullHostName(); - -// Get user ID e.g. jacs (this is known as login name under Unix) -WXDLLEXPORT bool wxGetUserId(wxChar *buf, int maxSize); -WXDLLEXPORT wxString wxGetUserId(); - -// Get user name e.g. Julian Smart -WXDLLEXPORT bool wxGetUserName(wxChar *buf, int maxSize); -WXDLLEXPORT wxString wxGetUserName(); - -// Get current Home dir and copy to dest (returns pstr->c_str()) -WXDLLEXPORT const wxChar* wxGetHomeDir(wxString *pstr); - -// Get the user's home dir (caller must copy --- volatile) -// returns NULL is no HOME dir is known -#if defined(__UNIX__) && wxUSE_UNICODE -WXDLLEXPORT const wxMB2WXbuf wxGetUserHome(const wxString& user = wxEmptyString); -#else -WXDLLEXPORT wxChar* wxGetUserHome(const wxString& user = wxEmptyString); -#endif - -// ---------------------------------------------------------------------------- -// Strip out any menu codes -// ---------------------------------------------------------------------------- - -WXDLLEXPORT wxChar* wxStripMenuCodes(wxChar *in, wxChar *out = (wxChar *) NULL); -WXDLLEXPORT wxString wxStripMenuCodes(const wxString& str); - -// ---------------------------------------------------------------------------- -// Window search -// ---------------------------------------------------------------------------- - -// Find the window/widget with the given title or label. -// Pass a parent to begin the search from, or NULL to look through -// all windows. -WXDLLEXPORT wxWindow* wxFindWindowByLabel(const wxString& title, wxWindow *parent = (wxWindow *) NULL); - -// Find window by name, and if that fails, by label. -WXDLLEXPORT wxWindow* wxFindWindowByName(const wxString& name, wxWindow *parent = (wxWindow *) NULL); - -// Returns menu item id or -1 if none. -WXDLLEXPORT int wxFindMenuItemId(wxFrame *frame, const wxString& menuString, const wxString& itemString); - -// ---------------------------------------------------------------------------- -// Message/event queue helpers -// ---------------------------------------------------------------------------- - -// Yield to other apps/messages -WXDLLEXPORT bool wxYield(); - -// Yield to other apps/messages and disable user input -WXDLLEXPORT bool wxSafeYield(wxWindow *win = NULL); - -// Enable or disable input to all top level windows -WXDLLEXPORT void wxEnableTopLevelWindows(bool enable = TRUE); - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -WXDLLEXPORT bool wxCheckForInterrupt(wxWindow *wnd); - -// Consume all events until no more left -WXDLLEXPORT void wxFlushEvents(); - -// ---------------------------------------------------------------------------- -// Cursors -// ---------------------------------------------------------------------------- - -// Set the cursor to the busy cursor for all windows -class WXDLLEXPORT wxCursor; -WXDLLEXPORT_DATA(extern wxCursor*) wxHOURGLASS_CURSOR; -WXDLLEXPORT void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR); - -// Restore cursor to normal -WXDLLEXPORT void wxEndBusyCursor(); - -// TRUE if we're between the above two calls -WXDLLEXPORT bool wxIsBusy(); - -// Convenience class so we can just create a wxBusyCursor object on the stack -class WXDLLEXPORT wxBusyCursor -{ -public: - wxBusyCursor(wxCursor* cursor = wxHOURGLASS_CURSOR) - { wxBeginBusyCursor(cursor); } - ~wxBusyCursor() - { wxEndBusyCursor(); } -}; - -// ---------------------------------------------------------------------------- -// Error message functions used by wxWindows (deprecated, use wxLog) -// ---------------------------------------------------------------------------- - -// Format a message on the standard error (UNIX) or the debugging -// stream (Windows) -WXDLLEXPORT void wxDebugMsg(const wxChar *fmt ...) ; - -// Non-fatal error (continues) -WXDLLEXPORT_DATA(extern const wxChar*) wxInternalErrorStr; -WXDLLEXPORT void wxError(const wxString& msg, const wxString& title = wxInternalErrorStr); - -// Fatal error (exits) -WXDLLEXPORT_DATA(extern const wxChar*) wxFatalErrorStr; -WXDLLEXPORT void wxFatalError(const wxString& msg, const wxString& title = wxFatalErrorStr); - -// ---------------------------------------------------------------------------- -// Reading and writing resources (eg WIN.INI, .Xdefaults) -// ---------------------------------------------------------------------------- - -#if wxUSE_RESOURCES -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file = wxEmptyString); - -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, wxChar **value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file = wxEmptyString); -WXDLLEXPORT bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file = wxEmptyString); -#endif // wxUSE_RESOURCES - -void WXDLLEXPORT wxGetMousePosition( int* x, int* y ); - -// MSW only: get user-defined resource from the .res file. -// Returns NULL or newly-allocated memory, so use delete[] to clean up. -#ifdef __WXMSW__ -WXDLLEXPORT extern const wxChar* wxUserResourceStr; -WXDLLEXPORT wxChar* wxLoadUserResource(const wxString& resourceName, const wxString& resourceType = wxUserResourceStr); - -// Implemented in utils.cpp: VC++, Win95 only. Sets up a console for standard -// input/output -WXDLLEXPORT void wxRedirectIOToConsole(); - -#endif // MSW - -// ---------------------------------------------------------------------------- -// Display and colorss (X only) -// ---------------------------------------------------------------------------- - -#ifdef __X__ - WXDisplay *wxGetDisplay(); - bool wxSetDisplay(const wxString& display_name); - wxString wxGetDisplayName(); -#endif - -#ifdef __X__ - -#include - -#define wxMAX_RGB 0xff -#define wxMAX_SV 1000 -#define wxSIGN(x) ((x < 0) ? -x : x) -#define wxH_WEIGHT 4 -#define wxS_WEIGHT 1 -#define wxV_WEIGHT 2 - -typedef struct wx_hsv { - int h,s,v; - } wxHSV; - -#define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z)) -#define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z)) - -void wxHSVToXColor(wxHSV *hsv,XColor *xcolor); -void wxXColorToHSV(wxHSV *hsv,XColor *xcolor); -void wxAllocNearestColor(Display *display,Colormap colormap,XColor *xcolor); -void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor); - -#endif //__X__ - -#endif - // _WX_UTILSH__ diff --git a/include/wx/valgen.h b/include/wx/valgen.h deleted file mode 100644 index 8fa29d6642..0000000000 --- a/include/wx/valgen.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: valgen.h -// Purpose: wxGenericValidator class -// Author: Kevin Smith -// Modified by: -// Created: Jan 22 1999 -// RCS-ID: -// Copyright: (c) 1999 Kevin Smith -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALGENH__ -#define _WX_VALGENH__ - -#ifdef __GNUG__ -#pragma interface "valgen.h" -#endif - -#include "wx/validate.h" - -class WXDLLEXPORT wxGenericValidator: public wxValidator -{ -public: - wxGenericValidator(bool* val); - wxGenericValidator(int* val); - wxGenericValidator(wxString* val); - wxGenericValidator(wxArrayInt* val); - wxGenericValidator(const wxGenericValidator& copyFrom); - - ~wxGenericValidator(); - - // Make a clone of this validator (or return NULL) - currently necessary - // if you're passing a reference to a validator. - // Another possibility is to always pass a pointer to a new validator - // (so the calling code can use a copy constructor of the relevant class). - virtual wxObject *Clone() const { return new wxGenericValidator(*this); } - bool Copy(const wxGenericValidator& val); - - // Called when the value in the window must be validated. - // This function can pop up an error message. - virtual bool Validate(wxWindow * WXUNUSED(parent)) { return TRUE; } - - // Called to transfer data to the window - virtual bool TransferToWindow(); - - // Called to transfer data to the window - virtual bool TransferFromWindow(); - -protected: - void Initialize(); - - bool* m_pBool; - int* m_pInt; - wxString* m_pString; - wxArrayInt* m_pArrayInt; -}; - -#endif // _WX_VALGENH__ diff --git a/include/wx/validate.h b/include/wx/validate.h deleted file mode 100644 index 25a4c5894a..0000000000 --- a/include/wx/validate.h +++ /dev/null @@ -1,90 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: validate.h -// Purpose: wxValidator class -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALIDATEH__ -#define _WX_VALIDATEH__ - -#ifdef __GNUG__ - #pragma interface "validate.h" -#endif - -#include "wx/event.h" - -#if defined(wxUSE_VALIDATORS) && !wxUSE_VALIDATORS - // wxWindows is compiled without support for wxValidator - class WXDLLEXPORT wxValidator; - #define wxDefaultValidator (*((wxValidator *)NULL)) -#else // wxUSE_VALIDATORS - -class WXDLLEXPORT wxWindow; -class WXDLLEXPORT wxWindowBase; - -/* - A validator has up to three purposes: - - 1) To validate the data in the window that's associated - with the validator. - 2) To transfer data to and from the window. - 3) To filter input, using its role as a wxEvtHandler - to intercept e.g. OnChar. - - Note that wxValidator and derived classes use reference counting. -*/ - -class WXDLLEXPORT wxValidator : public wxEvtHandler -{ -public: - wxValidator(); - virtual ~wxValidator(); - - // Make a clone of this validator (or return NULL) - currently necessary - // if you're passing a reference to a validator. - // Another possibility is to always pass a pointer to a new validator - // (so the calling code can use a copy constructor of the relevant class). - virtual wxObject *Clone() const - { return (wxValidator *)NULL; } - bool Copy(const wxValidator& val) - { m_validatorWindow = val.m_validatorWindow; return TRUE; } - - // Called when the value in the window must be validated. - // This function can pop up an error message. - virtual bool Validate(wxWindow *WXUNUSED(parent)) { return FALSE; }; - - // Called to transfer data to the window - virtual bool TransferToWindow() { return FALSE; } - - // Called to transfer data from the window - virtual bool TransferFromWindow() { return FALSE; }; - - // accessors - wxWindow *GetWindow() const { return (wxWindow *)m_validatorWindow; } - void SetWindow(wxWindowBase *win) { m_validatorWindow = win; } - - // validators beep by default if invalid key is pressed, these functions - // allow to change it - static bool IsSilent() { return ms_isSilent; } - static void SetBellOnError(bool doIt = TRUE) { ms_isSilent = doIt; } - -protected: - wxWindowBase *m_validatorWindow; - -private: - static bool ms_isSilent; - - DECLARE_DYNAMIC_CLASS(wxValidator) -}; - -WXDLLEXPORT_DATA(extern const wxValidator) wxDefaultValidator; - -#endif // wxUSE_VALIDATORS - -#endif - // _WX_VALIDATEH__ diff --git a/include/wx/valtext.h b/include/wx/valtext.h deleted file mode 100644 index 391ed8dfb2..0000000000 --- a/include/wx/valtext.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: valtext.h -// Purpose: wxTextValidator class -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VALTEXTH__ -#define _WX_VALTEXTH__ - -#ifdef __GNUG__ -#pragma interface "valtext.h" -#endif - -#if defined(wxUSE_VALIDATORS) && !wxUSE_VALIDATORS - #error "wxWindows is compiled without support for wxValidator" -#endif - -#include "wx/validate.h" - -#define wxFILTER_NONE 0x0000 -#define wxFILTER_ASCII 0x0001 -#define wxFILTER_ALPHA 0x0002 -#define wxFILTER_ALPHANUMERIC 0x0004 -#define wxFILTER_NUMERIC 0x0008 -#define wxFILTER_INCLUDE_LIST 0x0010 -#define wxFILTER_EXCLUDE_LIST 0x0020 - -class WXDLLEXPORT wxTextValidator: public wxValidator -{ -DECLARE_DYNAMIC_CLASS(wxTextValidator) -public: - wxTextValidator(long style = wxFILTER_NONE, wxString *val = (wxString *) NULL); - wxTextValidator(const wxTextValidator& val); - - ~wxTextValidator(); - - // Make a clone of this validator (or return NULL) - currently necessary - // if you're passing a reference to a validator. - // Another possibility is to always pass a pointer to a new validator - // (so the calling code can use a copy constructor of the relevant class). - virtual wxObject *Clone(void) const { return new wxTextValidator(*this); } - bool Copy(const wxTextValidator& val); - - // Called when the value in the window must be validated. - // This function can pop up an error message. - virtual bool Validate(wxWindow *parent); - - // Called to transfer data to the window - virtual bool TransferToWindow(void); - - // Called to transfer data to the window - virtual bool TransferFromWindow(void); - - // ACCESSORS - inline long GetStyle(void) const { return m_validatorStyle; } - inline void SetStyle(long style) { m_validatorStyle = style; } - - void SetIncludeList(const wxStringList& list); - inline wxStringList& GetIncludeList(void) { return m_includeList; } - - void SetExcludeList(const wxStringList& list); - inline wxStringList& GetExcludeList(void) { return m_excludeList; } - - // Filter keystrokes - void OnChar(wxKeyEvent& event); - -DECLARE_EVENT_TABLE() - -protected: - long m_validatorStyle; - wxString * m_stringValue; - wxStringList m_includeList; - wxStringList m_excludeList; -}; - -#endif diff --git a/include/wx/variant.h b/include/wx/variant.h deleted file mode 100644 index de915f8f7d..0000000000 --- a/include/wx/variant.h +++ /dev/null @@ -1,245 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: variant.h -// Purpose: wxVariant class, container for any type -// Author: Julian Smart -// Modified by: -// Created: 10/09/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VARIANT_H_ -#define _WX_VARIANT_H_ - -#ifdef __GNUG__ -#pragma interface "variant.h" -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/string.h" -#include "wx/list.h" - -#if wxUSE_TIMEDATE - #include "wx/time.h" - #include "wx/date.h" -#endif // time/date - -#include "wx/ioswrap.h" - -/* - * wxVariantData stores the actual data in a wxVariant object, - * to allow it to store any type of data. - * Derive from this to provide custom data handling. - * - * TODO: in order to replace wxPropertyValue, we would need - * to consider adding constructors that take pointers to C++ variables, - * or removing that functionality from the wxProperty library. - * Essentially wxPropertyValue takes on some of the wxValidator functionality - * by storing pointers and not just actual values, allowing update of C++ data - * to be handled automatically. Perhaps there's another way of doing this without - * overloading wxVariant with unnecessary functionality. - */ - -class WXDLLEXPORT wxVariantData: public wxObject -{ -DECLARE_ABSTRACT_CLASS(wxVariantData) -public: - -// Construction & destruction - wxVariantData() {}; - -// Override these to provide common functionality - // Copy to data - virtual void Copy(wxVariantData& data) = 0; - virtual bool Eq(wxVariantData& data) const = 0; - virtual bool Write(ostream& str) const = 0; - virtual bool Write(wxString& str) const = 0; - virtual bool Read(istream& str) = 0; - virtual bool Read(wxString& str) = 0; - // What type is it? Return a string name. - virtual wxString GetType() const = 0; -}; - -/* - * wxVariant can store any kind of data, but has some basic types - * built in. - * NOTE: this eventually should have a reference-counting implementation. - * PLEASE, if you change it to ref-counting, make sure it doesn't involve bloating - * this class too much. - */ - -class WXDLLEXPORT wxVariant: public wxObject -{ -DECLARE_DYNAMIC_CLASS(wxVariant) -public: - -// Construction & destruction - wxVariant(); - wxVariant(double val, const wxString& name = g_szNul); - wxVariant(long val, const wxString& name = g_szNul); -#ifdef HAVE_BOOL - wxVariant(bool val, const wxString& name = g_szNul); -#endif - wxVariant(char val, const wxString& name = g_szNul); - wxVariant(const wxString& val, const wxString& name = g_szNul); - wxVariant(const wxChar* val, const wxString& name = g_szNul); // Necessary or VC++ assumes bool! - wxVariant(const wxStringList& val, const wxString& name = g_szNul); - wxVariant(const wxList& val, const wxString& name = g_szNul); // List of variants -#if wxUSE_TIMEDATE - wxVariant(const wxTime& val, const wxString& name = g_szNul); // Time - wxVariant(const wxDate& val, const wxString& name = g_szNul); // Date -#endif - wxVariant(void* ptr, const wxString& name = g_szNul); // void* (general purpose) - wxVariant(wxVariantData* data, const wxString& name = g_szNul); // User-defined data - wxVariant(const wxVariant& variant); - ~wxVariant(); - -// Generic operators - // Assignment - void operator= (const wxVariant& variant); - - // Assignment using data, e.g. - // myVariant = new wxStringVariantData("hello"); - void operator= (wxVariantData* variantData); - bool operator== (const wxVariant& variant) const; - bool operator!= (const wxVariant& variant) const; - -// Specific operators - bool operator== (double value) const; - bool operator!= (double value) const; - void operator= (double value) ; - bool operator== (long value) const; - bool operator!= (long value) const; - void operator= (long value) ; - bool operator== (char value) const; - bool operator!= (char value) const; - void operator= (char value) ; -#ifdef HAVE_BOOL - bool operator== (bool value) const; - bool operator!= (bool value) const; - void operator= (bool value) ; -#endif - bool operator== (const wxString& value) const; - bool operator!= (const wxString& value) const; - void operator= (const wxString& value) ; - void operator= (const wxChar* value) ; // Necessary or VC++ assumes bool! - bool operator== (const wxStringList& value) const; - bool operator!= (const wxStringList& value) const; - void operator= (const wxStringList& value) ; - bool operator== (const wxList& value) const; - bool operator!= (const wxList& value) const; - void operator= (const wxList& value) ; -#if wxUSE_TIMEDATE - bool operator== (const wxTime& value) const; - bool operator!= (const wxTime& value) const; - void operator= (const wxTime& value) ; - bool operator== (const wxDate& value) const; - bool operator!= (const wxDate& value) const; - void operator= (const wxDate& value) ; -#endif - bool operator== (void* value) const; - bool operator!= (void* value) const; - void operator= (void* value) ; - - // Treat a list variant as an array - wxVariant operator[] (size_t idx) const; - wxVariant& operator[] (size_t idx) ; - - // Implicit conversion to a wxString - inline operator wxString () const { return MakeString(); } - wxString MakeString() const; - - // Other implicit conversions - inline operator double () const { return GetDouble(); } - inline operator char () const { return GetChar(); } - inline operator long () const { return GetLong(); } - inline operator bool () const { return GetBool(); } -#if wxUSE_TIMEDATE - inline operator wxTime () const { return GetTime(); } - inline operator wxDate () const { return GetDate(); } -#endif - inline operator void* () const { return GetVoidPtr(); } - -// Accessors - // Sets/gets name - inline void SetName(const wxString& name) { m_name = name; } - inline const wxString& GetName() const { return m_name; } - - // Tests whether there is data - inline bool IsNull() const { return (m_data == (wxVariantData*) NULL); } - - wxVariantData* GetData() const { return m_data; } - void SetData(wxVariantData* data) ; - - // Returns a string representing the type of the variant, - // e.g. "string", "bool", "stringlist", "list", "double", "long" - wxString GetType() const; - - bool IsType(const wxString& type) const; - - // Return the number of elements in a list - int GetCount() const; - -// Value accessors - double GetReal() const ; - inline double GetDouble() const { return GetReal(); }; - long GetInteger() const ; - inline long GetLong() const { return GetInteger(); }; - char GetChar() const ; - bool GetBool() const ; - wxString GetString() const ; - wxList& GetList() const ; - wxStringList& GetStringList() const ; -#if wxUSE_TIMEDATE - wxTime GetTime() const ; - wxDate GetDate() const ; -#endif - void* GetVoidPtr() const ; - -// Operations - // Make NULL (i.e. delete the data) - void MakeNull(); - - // Make empty list - void NullList(); - - // Append to list - void Append(const wxVariant& value); - - // Insert at front of list - void Insert(const wxVariant& value); - - // Returns TRUE if the variant is a member of the list - bool Member(const wxVariant& value) const; - - // Deletes the nth element of the list - bool Delete(int item); - - // Clear list - void ClearList(); - -// Implementation -protected: -// Type conversion - bool Convert(long* value) const; - bool Convert(bool* value) const; - bool Convert(double* value) const; - bool Convert(wxString* value) const; - bool Convert(char* value) const; -#if wxUSE_TIMEDATE - bool Convert(wxTime* value) const; - bool Convert(wxDate* value) const; -#endif - -// Attributes -protected: - wxVariantData* m_data; - wxString m_name; -}; - -extern wxVariant WXDLLEXPORT wxNullVariant; - -#endif - // _WX_VARIANT_H_ diff --git a/include/wx/version.h b/include/wx/version.h deleted file mode 100644 index 93baaf6b8f..0000000000 --- a/include/wx/version.h +++ /dev/null @@ -1,25 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: version.h -// Purpose: wxWindows version numbers -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_VERSIONH__ -#define _WX_VERSIONH__ - -/* Bump-up with each new version */ -#define wxMAJOR_VERSION 2 -#define wxMINOR_VERSION 1 -#define wxRELEASE_NUMBER 0 -#define wxVERSION_STRING "wxWindows 2.1.0" -#define wxVERSION_NUMBER (wxMAJOR_VERSION * 1000) + (wxMINOR_VERSION * 100) + wxRELEASE_NUMBER -#define wxBETA_NUMBER 6 -#define wxVERSION_FLOAT wxMAJOR_VERSION + (wxMINOR_VERSION/10.0) + (wxRELEASE_NUMBER/100.0) + (wxBETA_NUMBER/10000.0) - -#endif - // _WX_VERSIONH__ diff --git a/include/wx/wave.h b/include/wx/wave.h deleted file mode 100644 index cd61bad818..0000000000 --- a/include/wx/wave.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef _WX_WAVE_H_BASE_ -#define _WX_WAVE_H_BASE_ - -#if defined(__WXMSW__) -#include "wx/msw/wave.h" -#elif defined(__WXGTK__) -#include "wx/gtk/wave.h" -#elif defined(__WXQT__) -#include "wx/qt/wave.h" -#endif - -#endif - // _WX_TREECTRL_H_BASE_ diff --git a/include/wx/wfstream.h b/include/wx/wfstream.h deleted file mode 100644 index b0f4dbb02a..0000000000 --- a/include/wx/wfstream.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wfstream.h -// Purpose: File stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXFSTREAM_H__ -#define _WX_WXFSTREAM_H__ - -#ifdef __GNUG__ -#pragma interface "wfstream.h" -#endif - -#include -#include -#include -#include - -class wxFileInputStream: public wxInputStream { - public: - wxFileInputStream(const wxString& ifileName); - wxFileInputStream(wxFile& file); - wxFileInputStream(int fd); - ~wxFileInputStream(); - - char Peek(); - size_t StreamSize() const; - - bool Ok() const { return m_file->IsOpened(); } - - protected: - wxFileInputStream(); - - size_t OnSysRead(void *buffer, size_t size); - off_t OnSysSeek(off_t pos, wxSeekMode mode); - off_t OnSysTell() const; - - protected: - wxFile *m_file; - bool m_file_destroy; -}; - -class wxFileOutputStream: public wxOutputStream { - public: - wxFileOutputStream(const wxString& fileName); - wxFileOutputStream(wxFile& file); - wxFileOutputStream(int fd); - virtual ~wxFileOutputStream(); - - // To solve an ambiguity on GCC -// inline wxOutputStream& Write(const void *buffer, size_t size) -// { return wxOutputStream::Write(buffer, size); } - - void Sync(); - size_t StreamSize() const; - - bool Ok() const { return m_file->IsOpened(); } - - protected: - wxFileOutputStream(); - - size_t OnSysWrite(const void *buffer, size_t size); - off_t OnSysSeek(off_t pos, wxSeekMode mode); - off_t OnSysTell() const; - - protected: - wxFile *m_file; - bool m_file_destroy; -}; - -class wxFileStream: public wxFileInputStream, public wxFileOutputStream { - public: - wxFileStream(const wxString& fileName); -}; - -#endif diff --git a/include/wx/window.h b/include/wx/window.h deleted file mode 100644 index 6edbb62524..0000000000 --- a/include/wx/window.h +++ /dev/null @@ -1,817 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: window.h -// Purpose: wxWindowBase class - the interface of wxWindow -// Author: Vadim Zeitlin -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WINDOW_H_BASE_ -#define _WX_WINDOW_H_BASE_ - -#ifdef __GNUG__ - #pragma interface "windowbase.h" -#endif - -// ---------------------------------------------------------------------------- -// headers which we must include here -// ---------------------------------------------------------------------------- - -#include "wx/event.h" // the base class - -#include "wx/list.h" // defines wxWindowList - -#include "wx/cursor.h" // we have member variables of these classes -#include "wx/font.h" // so we can't do without them -#include "wx/colour.h" -#include "wx/region.h" - -#if wxUSE_ACCEL - #include "wx/accel.h" -#endif // wxUSE_ACCEL - -// ---------------------------------------------------------------------------- -// forward declarations -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxCaret; -class WXDLLEXPORT wxClientData; -class WXDLLEXPORT wxControl; -class WXDLLEXPORT wxCursor; -class WXDLLEXPORT wxDC; -class WXDLLEXPORT wxDropTarget; -class WXDLLEXPORT wxItemResource; -class WXDLLEXPORT wxLayoutConstraints; -class WXDLLEXPORT wxResourceTable; -class WXDLLEXPORT wxSizer; -class WXDLLEXPORT wxToolTip; -class WXDLLEXPORT wxValidator; -class WXDLLEXPORT wxWindowBase; -class WXDLLEXPORT wxWindow; - -// ---------------------------------------------------------------------------- -// (pseudo)template list classes -// ---------------------------------------------------------------------------- - -WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode); - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(extern wxWindowList) wxTopLevelWindows; - -// ---------------------------------------------------------------------------- -// helper classes used by [SG]etClientObject/Data -// -// TODO move into a separate header? -// ---------------------------------------------------------------------------- - -class wxClientData -{ -public: - wxClientData() { } - virtual ~wxClientData() { } -}; - -class wxStringClientData : public wxClientData -{ -public: - wxStringClientData() { } - wxStringClientData( const wxString &data ) : m_data(data) { } - void SetData( const wxString &data ) { m_data = data; } - const wxString& GetData() const { return m_data; } - -private: - wxString m_data; -}; - -// ---------------------------------------------------------------------------- -// wxWindowBase is the base class for all GUI controls/widgets, this is the public -// interface of this class. -// -// Event handler: windows have themselves as their event handlers by default, -// but their event handlers could be set to another object entirely. This -// separation can reduce the amount of derivation required, and allow -// alteration of a window's functionality (e.g. by a resource editor that -// temporarily switches event handlers). -// ---------------------------------------------------------------------------- - -class WXDLLEXPORT wxWindowBase : public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxWindowBase); - -public: - // creating the window - // ------------------- - - // default ctor - wxWindowBase() { InitBase(); } - - // pseudo ctor (can't be virtual, called from ctor) - bool CreateBase(wxWindowBase *parent, - wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, - const wxString& name = wxPanelNameStr); - - virtual ~wxWindowBase(); - -#if wxUSE_WX_RESOURCES - // these functions are implemented in resource.cpp and resourc2.cpp - virtual bool LoadFromResource(wxWindow *parent, - const wxString& resourceName, - const wxResourceTable *table = (const wxResourceTable *) NULL); - virtual wxControl *CreateItem(const wxItemResource* childResource, - const wxItemResource* parentResource, - const wxResourceTable *table = (const wxResourceTable *) NULL); -#endif // wxUSE_WX_RESOURCES - - // deleting the window - // ------------------- - - // ask the window to close itself, return TRUE if the event handler - // honoured our request - bool Close( bool force = FALSE ); - - // the following functions delete the C++ objects (the window itself - // or its children) as well as the GUI windows and normally should - // never be used directly - - // delete window unconditionally (dangerous!), returns TRUE if ok - virtual bool Destroy(); - // delete all children of this window, returns TRUE if ok - bool DestroyChildren(); - - // is the window being deleted? - bool IsBeingDeleted() const { return m_isBeingDeleted; } - - // window attributes - // ----------------- - - // the title (or label, see below) of the window: the text which the - // window shows - virtual void SetTitle( const wxString & WXUNUSED(title) ) { } - virtual wxString GetTitle() const { return ""; } - - // label is just the same as the title (but for, e.g., buttons it - // makes more sense to speak about labels) - virtual void SetLabel(const wxString& label) { SetTitle(label); } - virtual wxString GetLabel() const { return GetTitle(); } - - // the window name is used for ressource setting in X, it is not the - // same as the window title/label - virtual void SetName( const wxString &name ) { m_windowName = name; } - virtual wxString GetName() const { return m_windowName; } - - // window id uniquely identifies the window among its siblings unless - // it is -1 which means "don't care" - void SetId( wxWindowID id ) { m_windowId = id; } - wxWindowID GetId() const { return m_windowId; } - - // generate a control id for the controls which were not given one by - // user - static int NewControlId() { return --ms_lastControlId; } - // get the id of the control following the one with the given - // (autogenerated) id - static int NextControlId(int id) { return id - 1; } - // get the id of the control preceding the one with the given - // (autogenerated) id - static int PrevControlId(int id) { return id + 1; } - - // moving/resizing - // --------------- - - // set the window size and/or position - void SetSize( int x, int y, int width, int height, - int sizeFlags = wxSIZE_AUTO ) - { DoSetSize(x, y, width, height, sizeFlags); } - - void SetSize( int width, int height ) - { DoSetSize( -1, -1, width, height, wxSIZE_USE_EXISTING ); } - - void SetSize( const wxSize& size ) - { SetSize( size.x, size.y); } - - void SetSize(const wxRect& rect, int sizeFlags = wxSIZE_AUTO) - { DoSetSize(rect.x, rect.y, rect.width, rect.height, sizeFlags); } - - void Move( int x, int y ) - { DoSetSize( x, y, -1, -1, wxSIZE_USE_EXISTING ); } - - void Move(const wxPoint& pt) - { Move(pt.x, pt.y); } - - // Z-order - virtual void Raise() = 0; - virtual void Lower() = 0; - - // client size is the size of area available for subwindows - void SetClientSize( int width, int height ) - { DoSetClientSize(width, height); } - - void SetClientSize( const wxSize& size ) - { DoSetClientSize(size.x, size.y); } - - void SetClientSize(const wxRect& rect) - { SetClientSize( rect.width, rect.height ); } - - // get the window position and/or size (pointers may be NULL) - void GetPosition( int *x, int *y ) const { DoGetPosition(x, y); } - wxPoint GetPosition() const - { - int w, h; - DoGetPosition(&w, &h); - - return wxPoint(w, h); - } - - void GetSize( int *w, int *h ) const { DoGetSize(w, h); } - wxSize GetSize() const - { - int w, h; - DoGetSize(& w, & h); - return wxSize(w, h); - } - - wxRect GetRect() const - { - int x, y, w, h; - GetPosition(& x, & y); - GetSize(& w, & h); - - return wxRect(x, y, w, h); - } - - void GetClientSize( int *w, int *h ) const { DoGetClientSize(w, h); } - wxSize GetClientSize() const - { - int w, h; - DoGetClientSize(& w, & h); - - return wxSize(w, h); - } - - // centre with respect to the the parent window - void Centre( int direction = wxHORIZONTAL ); - void Center( int direction = wxHORIZONTAL ) { Centre(direction); } - void CentreOnParent(int direction = wxHORIZONTAL ); - void CenterOnParent(int direction = wxHORIZONTAL ) { CentreOnParent(direction); } - - // set window size to wrap around its children - virtual void Fit(); - - // set min/max size of the window - virtual void SetSizeHints( int minW, int minH, - int maxW = -1, int maxH = -1, - int incW = -1, int incH = -1 ); - - // window state - // ------------ - - // returns TRUE if window was shown/hidden, FALSE if the nothing was - // done (window was already shown/hidden) - virtual bool Show( bool show = TRUE ); - bool Hide() { return Show(FALSE); } - - // returns TRUE if window was enabled/disabled, FALSE if nothing done - virtual bool Enable( bool enable = TRUE ); - bool Disable() { return Enable(FALSE); } - - bool IsShown() const { return m_isShown; } - bool IsEnabled() const { return m_isEnabled; } - - // get/set window style (setting style won't update the window and so - // is only useful for internal usage) - virtual void SetWindowStyleFlag( long style ) { m_windowStyle = style; } - virtual long GetWindowStyleFlag() const { return m_windowStyle; } - - // just some (somewhat shorter) synonims - void SetWindowStyle( long style ) { SetWindowStyleFlag(style); } - long GetWindowStyle() const { return GetWindowStyleFlag(); } - - bool HasFlag(int flag) const { return (m_windowStyle & flag) != 0; } - - virtual bool IsRetained() const - { return (m_windowStyle & wxRETAINED) != 0; } - - // make the window modal (all other windows unresponsive) - virtual void MakeModal(bool modal = TRUE); - - // focus handling - // -------------- - - // set focus to this window - virtual void SetFocus() = 0; - - // return the window which currently has the focus or NULL - static wxWindow *FindFocus() /* = 0: implement in derived classes */; - - // can this window have focus? - virtual bool AcceptsFocus() const { return IsShown() && IsEnabled(); } - - // parent/children relations - // ------------------------- - - // get the list of children - const wxWindowList& GetChildren() const { return m_children; } - wxWindowList& GetChildren() { return m_children; } - - // get the parent or the parent of the parent - wxWindow *GetParent() const { return m_parent; } - inline wxWindow *GetGrandParent() const; - - // is this window a top level one? - bool IsTopLevel() const; - - // it doesn't really change parent, use ReParent() instead - void SetParent( wxWindowBase *parent ) { m_parent = (wxWindow *)parent; } - // change the real parent of this window, return TRUE if the parent - // was changed, FALSE otherwise (error or newParent == oldParent) - virtual bool Reparent( wxWindowBase *newParent ); - - // find window among the descendants of this one either by id or by - // name (return NULL if not found) - wxWindow *FindWindow( long id ); - wxWindow *FindWindow( const wxString& name ); - - // implementation mostly - virtual void AddChild( wxWindowBase *child ); - virtual void RemoveChild( wxWindowBase *child ); - - // event handler stuff - // ------------------- - - // get the current event handler - wxEvtHandler *GetEventHandler() const { return m_eventHandler; } - - // replace the event handler (allows to completely subclass the - // window) - void SetEventHandler( wxEvtHandler *handler ) { m_eventHandler = handler; } - - // push/pop event handler: allows to chain a custom event handler to - // alreasy existing ones - void PushEventHandler( wxEvtHandler *handler ); - wxEvtHandler *PopEventHandler( bool deleteHandler = FALSE ); - - // validators and client data - // -------------------------- - -#if wxUSE_VALIDATORS - // a window may have an associated validator which is used to control - // user input - virtual void SetValidator( const wxValidator &validator ); - virtual wxValidator *GetValidator() { return m_windowValidator; } -#endif // wxUSE_VALIDATORS - - // each window may have associated client data: either a pointer to - // wxClientData object in which case it is managed by the window (i.e. - // it will delete the data when it's destroyed) or an untyped pointer - // which won't be deleted by the window - virtual void SetClientObject( wxClientData *data ) - { - if ( m_clientObject ) - delete m_clientObject; - - m_clientObject = data; - } - virtual wxClientData *GetClientObject() const { return m_clientObject; } - - virtual void SetClientData( void *data ) { m_clientData = data; } - virtual void *GetClientData() const { return m_clientData; } - - // dialog oriented functions - // ------------------------- - - // validate the correctness of input, return TRUE if ok - virtual bool Validate(); - - // transfer data between internal and GUI representations - virtual bool TransferDataToWindow(); - virtual bool TransferDataFromWindow(); - - virtual void InitDialog(); - -#if wxUSE_ACCEL - // accelerators - // ------------ - virtual void SetAcceleratorTable( const wxAcceleratorTable& accel ) - { m_acceleratorTable = accel; } - wxAcceleratorTable *GetAcceleratorTable() - { return &m_acceleratorTable; } -#endif // wxUSE_ACCEL - - // dialog units translations - // ------------------------- - - wxPoint ConvertPixelsToDialog( const wxPoint& pt ); - wxPoint ConvertDialogToPixels( const wxPoint& pt ); - wxSize ConvertPixelsToDialog( const wxSize& sz ) - { - wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); - - return wxSize(pt.x, pt.y); - } - - wxSize ConvertDialogToPixels( const wxSize& sz ) - { - wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); - - return wxSize(pt.x, pt.y); - } - - // mouse functions - // --------------- - - // move the mouse to the specified position - virtual void WarpPointer(int x, int y) = 0; - - // start or end mouse capture - virtual void CaptureMouse() = 0; - virtual void ReleaseMouse() = 0; - - // painting the window - // ------------------- - - // mark the specified rectangle (or the whole window) as "dirty" so it - // will be repainted - virtual void Refresh( bool eraseBackground = TRUE, - const wxRect *rect = (const wxRect *) NULL ) = 0; - // clear the window entirely - virtual void Clear() = 0; - - // adjust DC for drawing on this window - virtual void PrepareDC( wxDC & WXUNUSED(dc) ) { } - - // the update region of the window contains the areas which must be - // repainted by the program - const wxRegion& GetUpdateRegion() const { return m_updateRegion; } - wxRegion& GetUpdateRegion() { return m_updateRegion; } - - // these functions verify whether the given point/rectangle belongs to - // (or at least intersects with) the update region - bool IsExposed( int x, int y ) const; - bool IsExposed( int x, int y, int w, int h ) const; - - bool IsExposed( const wxPoint& pt ) const - { return IsExposed(pt.x, pt.y); } - bool IsExposed( const wxRect& rect ) const - { return IsExposed(rect.x, rect.y, rect.width, rect.height); } - - // colours, fonts and cursors - // -------------------------- - - // set/retrieve the window colours (system defaults are used by - // default): Set functions return TRUE if colour was changed - virtual bool SetBackgroundColour( const wxColour &colour ); - virtual bool SetForegroundColour( const wxColour &colour ); - - wxColour GetBackgroundColour() const { return m_backgroundColour; } - wxColour GetForegroundColour() const { return m_foregroundColour; } - - // set/retrieve the cursor for this window (SetCursor() returns TRUE - // if the cursor was really changed) - virtual bool SetCursor( const wxCursor &cursor ); - const wxCursor& GetCursor() const { return m_cursor; } - wxCursor& GetCursor() { return m_cursor; } - - // set/retrieve the font for the window (SetFont() returns TRUE if the - // font really changed) - virtual bool SetFont( const wxFont &font ) = 0; - const wxFont& GetFont() const { return m_font; } - wxFont& GetFont() { return m_font; } - -#if wxUSE_CARET - // associate a caret with the window - void SetCaret(wxCaret *caret); - // get the current caret (may be NULL) - wxCaret *GetCaret() const { return m_caret; } -#endif // wxUSE_CARET - - // get the (average) character size for the current font - virtual int GetCharHeight() const = 0; - virtual int GetCharWidth() const = 0; - - // get the width/height/... of the text using current or specified - // font - virtual void GetTextExtent(const wxString& string, - int *x, int *y, - int *descent = (int *) NULL, - int *externalLeading = (int *) NULL, - const wxFont *theFont = (const wxFont *) NULL) - const = 0; - - // translate to/from screen/client coordinates (pointers may be NULL) - void ClientToScreen( int *x, int *y ) const - { DoClientToScreen(x, y); } - void ScreenToClient( int *x, int *y ) const - { DoScreenToClient(x, y); } - wxPoint ClientToScreen(const wxPoint& pt) const - { - int x = pt.x, y = pt.y; - DoClientToScreen(&x, &y); - - return wxPoint(x, y); - } - - wxPoint ScreenToClient(const wxPoint& pt) const - { - int x = pt.x, y = pt.y; - DoScreenToClient(&x, &y); - - return wxPoint(x, y); - } - - // misc - // ---- - - void UpdateWindowUI(); - - virtual bool PopupMenu( wxMenu *menu, int x, int y ) = 0; - - // scrollbars - // ---------- - - // configure the window scrollbars - virtual void SetScrollbar( int orient, - int pos, - int thumbVisible, - int range, - bool refresh = TRUE ) = 0; - virtual void SetScrollPos( int orient, int pos, bool refresh = TRUE ) = 0; - virtual int GetScrollPos( int orient ) const = 0; - virtual int GetScrollThumb( int orient ) const = 0; - virtual int GetScrollRange( int orient ) const = 0; - - // scroll window to the specified position - virtual void ScrollWindow( int dx, int dy, - const wxRect* rect = (wxRect *) NULL ) = 0; - - // tooltips - // -------- -#if wxUSE_TOOLTIPS - // the easiest way to set a tooltip for a window is to use this method - void SetToolTip( const wxString &tip ); - // attach a tooltip to the window - void SetToolTip( wxToolTip *tip ) { DoSetToolTip(tip); } - // get the associated tooltip or NULL if none - wxToolTip* GetToolTip() const { return m_tooltip; } -#endif // wxUSE_TOOLTIPS - - // drag and drop - // ------------- -#if wxUSE_DRAG_AND_DROP - // set/retrieve the drop target associated with this window (may be - // NULL; it's owned by the window and will be deleted by it) - virtual void SetDropTarget( wxDropTarget *dropTarget ) = 0; - virtual wxDropTarget *GetDropTarget() const { return m_dropTarget; } -#endif // wxUSE_DRAG_AND_DROP - - // constraints and sizers - // ---------------------- -#if wxUSE_CONSTRAINTS - // set the constraints for this window or retrieve them (may be NULL) - void SetConstraints( wxLayoutConstraints *constraints ); - wxLayoutConstraints *GetConstraints() const { return m_constraints; } - - // when using constraints, it makes sense to update children positions - // automatically whenever the window is resized - this is done if - // autoLayout is on - void SetAutoLayout( bool autoLayout ) { m_autoLayout = autoLayout; } - bool GetAutoLayout() const { return m_autoLayout; } - - // do layout the window and its children - virtual bool Layout(); - - // implementation only - void UnsetConstraints(wxLayoutConstraints *c); - wxWindowList *GetConstraintsInvolvedIn() const - { return m_constraintsInvolvedIn; } - void AddConstraintReference(wxWindowBase *otherWin); - void RemoveConstraintReference(wxWindowBase *otherWin); - void DeleteRelatedConstraints(); - void ResetConstraints(); - - // these methods may be overriden for special layout algorithms - virtual void SetConstraintSizes(bool recurse = TRUE); - virtual bool LayoutPhase1(int *noChanges); - virtual bool LayoutPhase2(int *noChanges); - virtual bool DoPhase(int); - - // these methods are virtual but normally won't be overridden - virtual void TransformSizerToActual(int *x, int *y) const ; - virtual void SetSizeConstraint(int x, int y, int w, int h); - virtual void MoveConstraint(int x, int y); - virtual void GetSizeConstraint(int *w, int *h) const ; - virtual void GetClientSizeConstraint(int *w, int *h) const ; - virtual void GetPositionConstraint(int *x, int *y) const ; - - // sizers - // TODO: what are they and how do they work?? - void SetSizer( wxSizer *sizer ); - wxSizer *GetSizer() const { return m_windowSizer; } - - void SetSizerParent( wxWindowBase *win ) { m_sizerParent = win; } - wxWindowBase *GetSizerParent() const { return m_sizerParent; } - - virtual void SizerSetSize(int x, int y, int w, int h); - virtual void SizerMove(int x, int y); -#endif // wxUSE_CONSTRAINTS - - // backward compatibility - // ---------------------- -#if WXWIN_COMPATIBILITY - bool Enabled() const { return IsEnabled(); } - - void SetButtonFont(const wxFont& font) { SetFont(font); } - void SetLabelFont(const wxFont& font) { SetFont(font); } - wxFont& GetLabelFont() { return GetFont(); }; - wxFont& GetButtonFont() { return GetFont(); }; -#endif // WXWIN_COMPATIBILITY - - // implementation - // -------------- - - // event handlers - void OnSysColourChanged( wxSysColourChangedEvent& event ); - void OnInitDialog( wxInitDialogEvent &event ); - - // get the haqndle of the window for the underlying window system: this - // is only used for wxWin itself or for user code which wants to call - // platform-specific APIs - virtual WXWidget GetHandle() const = 0; - -protected: - // the window id - a number which uniquely identifies a window among - // its siblings unless it is -1 - wxWindowID m_windowId; - - // the parent window of this window (or NULL) and the list of the children - // of this window - wxWindow *m_parent; - wxWindowList m_children; - - // the minimal allowed size for the window (no minimal size if variable(s) - // contain(s) -1) - int m_minWidth, m_minHeight, m_maxWidth, m_maxHeight; - - // event handler for this window: usually is just 'this' but may be - // changed with SetEventHandler() - wxEvtHandler *m_eventHandler; - -#if wxUSE_VALIDATORS - // associated validator or NULL if none - wxValidator *m_windowValidator; -#endif // wxUSE_VALIDATORS - -#if wxUSE_DRAG_AND_DROP - wxDropTarget *m_dropTarget; -#endif // wxUSE_DRAG_AND_DROP - - // visual window attributes - wxCursor m_cursor; - wxFont m_font; - wxColour m_backgroundColour, m_foregroundColour; - -#if wxUSE_CARET - wxCaret *m_caret; -#endif // wxUSE_CARET - - // the region which should be repainted in response to paint event - wxRegion m_updateRegion; - -#if wxUSE_ACCEL - // the accelerator table for the window which translates key strokes into - // command events - wxAcceleratorTable m_acceleratorTable; -#endif // wxUSE_ACCEL - - // user data associated with the window: either an object which will be - // deleted by the window when it's deleted or some raw pointer which we do - // nothing with - wxClientData *m_clientObject; - void *m_clientData; - - // the tooltip for this window (may be NULL) -#if wxUSE_TOOLTIPS - wxToolTip *m_tooltip; -#endif // wxUSE_TOOLTIPS - - // constraints and sizers -#if wxUSE_CONSTRAINTS - // the constraints for this window or NULL - wxLayoutConstraints *m_constraints; - - // constraints this window is involved in - wxWindowList *m_constraintsInvolvedIn; - - // top level and the parent sizers - // TODO what's this and how does it work?) - wxSizer *m_windowSizer; - wxWindowBase *m_sizerParent; - - // Layout() window automatically when its size changes? - bool m_autoLayout:1; -#endif // wxUSE_CONSTRAINTS - - // window state - bool m_isShown:1; - bool m_isEnabled:1; - bool m_isBeingDeleted:1; - - // window attributes - long m_windowStyle; - wxString m_windowName; - -protected: - // common part of all ctors: it is not virtual because it is called from - // ctor - void InitBase(); - - // get the default size for the new window if no explicit size given - // FIXME why 20 and not 30, 10 or ...? - static int WidthDefault(int w) { return w == -1 ? 20 : w; } - static int HeightDefault(int h) { return h == -1 ? 20 : h; } - - // more pure virtual functions - // --------------------------- - - // NB: we must have DoSomething() function when Something() is an overloaded - // method: indeed, we can't just have "virtual Something()" in case when - // the function is overloaded because then we'd have to make virtual all - // the variants (otherwise only the virtual function may be called on a - // pointer to derived class according to C++ rules) which is, in - // general, absolutely not needed. So instead we implement all - // overloaded Something()s in terms of DoSomething() which will be the - // only one to be virtual. - - // coordinates translation - virtual void DoClientToScreen( int *x, int *y ) const = 0; - virtual void DoScreenToClient( int *x, int *y ) const = 0; - - // retrieve the position/size of the window - virtual void DoGetPosition( int *x, int *y ) const = 0; - virtual void DoGetSize( int *width, int *height ) const = 0; - virtual void DoGetClientSize( int *width, int *height ) const = 0; - - // this is the virtual function to be overriden in any derived class which - // wants to change how SetSize() or Move() works - it is called by all - // versions of these functions in the base class - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO) = 0; - - // same as DoSetSize() for the client size - virtual void DoSetClientSize(int width, int height) = 0; - -#if wxUSE_TOOLTIPS - virtual void DoSetToolTip( wxToolTip *tip ); -#endif // wxUSE_TOOLTIPS - -private: - // contains the last id generated by NewControlId - static int ms_lastControlId; - - DECLARE_NO_COPY_CLASS(wxWindowBase); - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// now include the declaration of wxWindow class -// ---------------------------------------------------------------------------- - -#if defined(__WXMSW__) - #include "wx/msw/window.h" -#elif defined(__WXMOTIF__) - #include "wx/motif/window.h" -#elif defined(__WXGTK__) - #include "wx/gtk/window.h" -#elif defined(__WXQT__) - #include "wx/qt/window.h" -#elif defined(__WXMAC__) - #include "wx/mac/window.h" -#endif - -// ---------------------------------------------------------------------------- -// inline functions which couldn't be declared in the class body because of -// forward dependencies -// ---------------------------------------------------------------------------- - -inline wxWindow *wxWindowBase::GetGrandParent() const -{ - return m_parent ? m_parent->GetParent() : (wxWindow *)NULL; -} - -// ---------------------------------------------------------------------------- -// global function -// ---------------------------------------------------------------------------- - -WXDLLEXPORT extern wxWindow* wxGetActiveWindow(); -inline WXDLLEXPORT int NewControlId() { return wxWindowBase::NewControlId(); } - -#endif - // _WX_WINDOW_H_BASE_ diff --git a/include/wx/wx.h b/include/wx/wx.h deleted file mode 100644 index f9f587bcc2..0000000000 --- a/include/wx/wx.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx.h -// Purpose: wxWindows main include file -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXH__ -#define _WX_WXH__ - -#include "wx/setup.h" // Which features to include - user editable -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/log.h" -#include "wx/window.h" -#include "wx/panel.h" -#include "wx/frame.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/dcprint.h" -#include "wx/dcscreen.h" -#include "wx/button.h" -#include "wx/menu.h" -#include "wx/app.h" -#include "wx/event.h" -#include "wx/list.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/palette.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/dialog.h" -#include "wx/timer.h" -#include "wx/utils.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/cmndata.h" - -#include "wx/bmpbuttn.h" -#include "wx/checkbox.h" -#include "wx/choice.h" -#include "wx/scrolbar.h" -#include "wx/stattext.h" -#include "wx/statbmp.h" -#include "wx/statbox.h" -#include "wx/listbox.h" -#include "wx/radiobox.h" -#include "wx/radiobut.h" -#include "wx/textctrl.h" -#include "wx/slider.h" -#include "wx/gauge.h" -#include "wx/combobox.h" -#include "wx/layout.h" -#include "wx/memory.h" -#include "wx/mdi.h" -#include "wx/scrolwin.h" -#include "wx/statusbr.h" -#include "wx/scrolbar.h" -#include "wx/choicdlg.h" -#include "wx/textdlg.h" -#include "wx/filedlg.h" -#include "wx/dirdlg.h" - -#if wxUSE_INTL - #include "wx/intl.h" -#endif // wxUSE_INTL - -#if wxUSE_VALIDATORS - #include "wx/valtext.h" -#endif // wxUSE_VALIDATORS - -#if wxUSE_SERIAL - #include "wx/objstrm.h" - #include "wx/serbase.h" -#endif // wxUSE_SERIAL - -#endif - // _WX_WXH__ diff --git a/include/wx/wx_cw.h b/include/wx/wx_cw.h deleted file mode 100644 index c8bf670a26..0000000000 --- a/include/wx/wx_cw.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx_cw.h -// Purpose: wxWindows definitions for CodeWarrior builds -// Author: Stefan Csomor -// Modified by: -// Created: 12/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CW__ -#define _WX_CW__ - -#ifdef __cplusplus - #if __POWERPC__ - #include - #elif __INTEL__ - #include - #elif __CFM68K__ - #include - #else - #include - #endif -#else - #if __POWERPC__ - #include - #elif __INTEL__ - #include - #elif __CFM68K__ - #include - #else - #include - #endif -#endif - -#endif - // _WX_CW__ diff --git a/include/wx/wx_cw_cm.h b/include/wx/wx_cw_cm.h deleted file mode 100644 index b332079e91..0000000000 --- a/include/wx/wx_cw_cm.h +++ /dev/null @@ -1,45 +0,0 @@ -#define MSL_USE_PRECOMPILED_HEADERS 1 - -#if !defined( __MWERKS__ ) - #error "this file is only for builds with Metrowerks CodeWarrior" -#endif - -#define WX_COMP_INLINE_NO_CLASS // defined if the compiler does not want the classname repeated for inlines within a class definition - -#if (__MWERKS__ < 0x0900) || macintosh - #define __MAC__ - #define __WXMAC__ - #define USE_PRECOMPILED_MAC_HEADERS 1 /*Set to 0 if you don't want to use precompiled MacHeaders*/ -// automatically includes MacHeaders -#elif (__MWERKS__ >= 0x0900) && __INTEL__ - #define __WXMSW__ - #define __WINDOWS__ - #define __WIN95__ - #define STRICT - #define NOMINMAX -#elif __BEOS__ - #include - #include -#else - #error unknown MW compiler -#endif - -#ifdef __WXMSW__ - #include -#elif defined( __WXMAC__) - #include -#endif - -#define USE_DEFINE -// in order to avoid problems further down in wxWindows - -#ifdef __cplusplus -extern "C" -{ -#endif - char *strdup(const char *s) ; - int isascii( int c ) ; -#ifdef __cplusplus -} ; -#endif - diff --git a/include/wx/wx_cw_d.h b/include/wx/wx_cw_d.h deleted file mode 100644 index f56d8cdc0a..0000000000 --- a/include/wx/wx_cw_d.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx_cw_d.h -// Purpose: wxWindows definitions for CodeWarrior builds (Debug) -// Author: Stefan Csomor -// Modified by: -// Created: 12/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Stefan Csomor -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CW__ -#define _WX_CW__ - -#ifdef __cplusplus - #if __POWERPC__ - #include - #elif __INTEL__ - #include - #elif __CFM68K__ - #include - #else - #include - #endif -#else - #if __POWERPC__ - #include - #elif __INTEL__ - #include - #elif __CFM68K__ - #include - #else - #include - #endif -#endif - -#endif - // _WX_CW__ diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h deleted file mode 100644 index a26fcb502c..0000000000 --- a/include/wx/wxchar.h +++ /dev/null @@ -1,555 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxchar.h -// Purpose: Declarations common to wx char/wchar_t usage (wide chars) -// Author: Joel Farley -// Modified by: -// Created: 1998/06/12 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows copyright -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXCHAR_H_ -#define _WX_WXCHAR_H_ - -//#ifdef __GNUG__ -//#pragma interface "wxchar.h" -//#endif - -// only do SBCS or _UNICODE -#if defined (_MBCS ) -#error "MBCS is not supported by wxChar" -#endif - -// set wxUSE_UNICODE to 1 if UNICODE or _UNICODE is defined -#if defined(_UNICODE) || defined(UNICODE) -#undef wxUSE_UNICODE -#define wxUSE_UNICODE 1 -#else -#ifndef wxUSE_UNICODE -#define wxUSE_UNICODE 0 -#endif -#endif - -// and vice versa: define UNICODE and _UNICODE if wxUSE_UNICODE is 1... -#if wxUSE_UNICODE -#ifndef _UNICODE -#define _UNICODE -#endif -#ifndef UNICODE -#define UNICODE -#endif -#endif - -// Windows (VC++) has broad TCHAR support -#if defined(__VISUALC__) && defined(__WIN32__) - -#define HAVE_WCSLEN 1 - -#include -#if wxUSE_UNICODE // temporary - preserve binary compatibility -typedef _TCHAR wxChar; -typedef _TSCHAR wxSChar; -typedef _TUCHAR wxUChar; -#else -#define wxChar char -#define wxSChar signed char -#define wxUChar unsigned char -#endif - // wchar_t is available -#undef wxUSE_WCHAR_T -#define wxUSE_WCHAR_T 1 - - // ctype.h functions -#define wxIsalnum _istalnum -#define wxIsalpha _istalpha -#define wxIsctrl _istctrl -#define wxIsdigit _istdigit -#define wxIsgraph _istgraph -#define wxIslower _istlower -#define wxIsprint _istprint -#define wxIspunct _istpunct -#define wxIsspace _istspace -#define wxIsupper _istupper -#define wxIsxdigit _istxdigit -#define wxTolower _totlower -#define wxToupper _totupper - - // locale.h functons -#define wxSetlocale _tsetlocale - - // string.h functions -#define wxStrcat _tcscat -#define wxStrchr _tcschr -#define wxStrcmp _tcscmp -#define wxStrcoll _tcscoll -#define wxStrcpy _tcscpy -#define wxStrcspn _tcscspn -#define wxStrftime _tcsftime -#define wxStricmp _tcsicmp -#define wxStrlen_ _tcslen // used in wxStrlen inline function -#define wxStrncat _tcsncat -#define wxStrncmp _tcsncmp -#define wxStrncpy _tcsncpy -#define wxStrpbrk _tcspbrk -#define wxStrrchr _tcsrchr -#define wxStrspn _tcsspn -#define wxStrstr _tcsstr -#define wxStrtod _tcstod -// is there a _tcstok[_r] ? -#define wxStrtol _tcstol -#define wxStrtoul _tcstoul -#define wxStrxfrm _tcsxfrm - - // stdio.h functions -#define wxFgetc _fgettc -#define wxFgetchar _fgettchar -#define wxFgets _fgetts -#define wxFopen _tfopen -#define wxFputc _fputtc -#define wxFputchar _fputtchar -#define wxFprintf _ftprintf -#define wxFreopen _tfreopen -#define wxFscanf _ftscanf -#define wxGetc _gettc -#define wxGetchar _gettchar -#define wxGets _getts -#define wxPerror _tperror -#define wxPrintf _tprintf -#define wxPutc _puttc -#define wxPutchar _puttchar -#define wxPuts _putts -#define wxRemove _tremove -#define wxRename _trename -#define wxScanf _tscanf -#define wxSprintf _stprintf -#define wxSscanf _stscanf -#define wxTmpnam _ttmpnam -#define wxUngetc _tungetc -#define wxVfprint _vftprintf -#define wxVprintf _vtprintf -#define wxVsscanf _vstscanf -#define wxVsprintf _vstprintf - - // stdlib.h functions -#if !wxUSE_UNICODE -#define wxAtof atof -#endif -#define wxAtoi _ttoi -#define wxAtol _ttol -#define wxGetenv _tgetenv -#define wxSystem _tsystem - - // time.h functions -#define wxAsctime _tasctime -#define wxCtime _tctime - -// #elif defined(XXX) - // #include XXX-specific files here - // typeddef YYY wxChar; - - // translate wxZZZ names - -#elif defined(__BORLANDC__) && defined(__WIN32__) - -// Borland C++ 4.52 doesn't have much tchar support -// maybe Borland C++ 5.02 has, can't check right now -// but I'll use the Win32 API instead here - -#include -#if wxUSE_UNICODE // temporary - preserve binary compatibility -typedef _TCHAR wxChar; -typedef _TSCHAR wxSChar; -typedef _TUCHAR wxUChar; -#else -#define wxChar char -#define wxSChar signed char -#define wxUChar unsigned char -#endif - // wchar_t is available -#undef wxUSE_WCHAR_T -#define wxUSE_WCHAR_T 1 - -#define wxNEED_WX_CTYPE_H -// #define wxStrtok strtok_r // Borland C++ 4.52 doesn't have strtok_r -#define wxNEED_WX_STRING_H -#define wxNEED_WX_STDIO_H -#define wxNEED_WX_STDLIB_H -#define wxNEED_WX_TIME_H -#define wxNEED_WCSLEN - -#else//!TCHAR-aware compilers - -// check whether we should include wchar.h or equivalent -#if wxUSE_UNICODE - #undef wxUSE_WCHAR_T - #define wxUSE_WCHAR_T 1 // wchar_t *must* be available in Unicode mode -#elif !defined(wxUSE_WCHAR_T) - #if defined(__VISUALC__) && (__VISUALC__ < 900) - #define wxUSE_WCHAR_T 0 // wchar_t is not available for MSVC++ 1.5 - #elif defined(__UNIX__) - #if defined(HAVE_WCSTR_H) || defined(HAVE_WCHAR_H) || defined(__FreeBSD__) - #define wxUSE_WCHAR_T 1 - #else - #define wxUSE_WCHAR_T 0 - #endif - #elif defined(__GNUWIN32__) && !defined(__MINGW32__) // Cygwin (not Mingw32) doesn't have wcslen.h, needed in buffer.h - #define wxUSE_WCHAR_T 0 - #elif defined(__BORLANDC__) // WIN16 BC++ - #define wxUSE_WCHAR_T 0 - #elif defined(__WATCOMC__) - #define wxUSE_WCHAR_T 0 - #else - // add additional compiler checks if this fails - #define wxUSE_WCHAR_T 1 - #endif -#endif//wxUSE_UNICODE - -#if wxUSE_WCHAR_T - #ifdef HAVE_WCSTR_H - #include - #else - #ifndef __FreeBSD__ - #include - #else - #include - #define wxNEED_WCSLEN - #endif - #endif -#endif - -// check whether we are doing Unicode -#if wxUSE_UNICODE - -#include - -// this is probably glibc-specific -#if defined(__WCHAR_TYPE__) - -typedef __WCHAR_TYPE__ wxChar; -typedef signed __WCHAR_TYPE__ wxSChar; -typedef unsigned __WCHAR_TYPE__ wxUChar; - -#define _T(x) L##x - - // ctype.h functions (wctype.h) -#define wxIsalnum iswalnum -#define wxIsalpha iswalpha -#define wxIsctrl iswcntrl -#define wxIsdigit iswdigit -#define wxIsgraph iswgraph -#define wxIslower iswlower -#define wxIsprint iswprint -#define wxIspunct iswpunct -#define wxIsspace iswspace -#define wxIsupper iswupper -#define wxIsxdigit iswxdigit - -#if defined(__GLIBC__) && (__GLIBC__ == 2) && (__GLIBC_MINOR__ == 0) - // /usr/include/wctype.h incorrectly declares translations tables which - // provokes tons of compile-time warnings - try to correct this - #define wxTolower(wc) towctrans((wc), (wctrans_t)__ctype_tolower) - #define wxToupper(wc) towctrans((wc), (wctrans_t)__ctype_toupper) -#else - #define wxTolower towlower - #define wxToupper towupper -#endif // gcc/!gcc - - // string.h functions (wchar.h) -#define wxStrcat wcscat -#define wxStrchr wcschr -#define wxStrcmp wcscmp -#define wxStrcoll wcscoll -#define wxStrcpy wcscpy -#define wxStrcspn wcscspn -#define wxStrlen_ wcslen // used in wxStrlen inline function -#define wxStrncat wcsncat -#define wxStrncmp wcsncmp -#define wxStrncpy wcsncpy -#define wxStrpbrk wcspbrk -#define wxStrrchr wcsrchr -#define wxStrspn wcsspn -#define wxStrstr wcsstr -#define wxStrtod wcstod -#define wxStrtok wcstok -#define wxStrtol wcstol -#define wxStrtoul wcstoul -#define wxStrxfrm wcsxfrm - -// glibc doesn't have wc equivalents of the other stuff -#define wxNEED_WX_STDIO_H -#define wxNEED_WX_STDLIB_H -#define wxNEED_WX_TIME_H - -#else//!glibc -#error "Please define your compiler's Unicode conventions in wxChar.h" -#endif -#else//!Unicode - -#include -#include - -#if 0 // temporary - preserve binary compatibilty -typedef char wxChar; -typedef signed char wxSChar; -typedef unsigned char wxUChar; -#else -#define wxChar char -#define wxSChar signed char -#define wxUChar unsigned char -#endif - -#ifdef __FreeBSD__ - #undef _T -#endif -#define _T(x) x - - // ctype.h functions -#define wxIsalnum isalnum -#define wxIsalpha isalpha -#define wxIsctrl isctrl -#define wxIsdigit isdigit -#define wxIsgraph isgraph -#define wxIslower islower -#define wxIsprint isprint -#define wxIspunct ispunct -#define wxIsspace isspace -#define wxIsupper isupper -#define wxIsxdigit isxdigit -#define wxTolower tolower -#define wxToupper toupper - - // locale.h functons -#define wxSetlocale setlocale - - // string.h functions -// #define wxStricmp strcasecmp -// wxStricmp is defined below!! - -// #define wxStrtok strtok_r // this needs a configure check - - // leave the rest to defaults below -#define wxNEED_WX_STRING_H -#define wxNEED_WX_STDIO_H -#define wxNEED_WX_STDLIB_H -#define wxNEED_WX_TIME_H - -#endif//Unicode -#endif//TCHAR-aware compilers - -// define wxStricmp for various compilers without Unicode possibilities -#if !defined(wxStricmp) && !wxUSE_UNICODE -#if defined(__BORLANDC__) || defined(__WATCOMC__) || defined(__SALFORDC__) - #define wxStricmp stricmp -#elif defined(__SC__) || defined(__VISUALC__) || (defined(__MWERKS) && defined(__INTEL__)) - #define wxStricmp _stricmp -#elif defined(__UNIX__) || defined(__GNUWIN32__) - #define wxStricmp strcasecmp -#elif defined(__MWERKS__) && !defined(__INTEL__) - // use wxWindows' implementation -#else - // if you leave wxStricmp undefined, wxWindows' implementation will be used - #error "Please define string case-insensitive compare for your OS/compiler" -#endif -#endif - -// if we need to define for standard headers, and we're not using Unicode, -// just define to standard C library routines -#if !wxUSE_UNICODE -#ifdef wxNEED_WX_STRING_H -#define wxStrcat strcat -#define wxStrchr strchr -#define wxStrcmp strcmp -#define wxStrcoll strcoll -#define wxStrcpy strcpy -#define wxStrcspn strcspn -#define wxStrdup strdup -#define wxStrlen_ strlen // used in wxStrlen inline function -#define wxStrncat strncat -#define wxStrncmp strncmp -#define wxStrncpy strncpy -#define wxStrpbrk strpbrk -#define wxStrrchr strrchr -#define wxStrspn strspn -#define wxStrstr strstr -#define wxStrtod strtod -#define wxStrtol strtol -#define wxStrtoul strtoul -#define wxStrxfrm strxfrm -#undef wxNEED_WX_STRING_H -#endif - -#ifdef wxNEED_WX_STDIO_H -#define wxFgetc fgetc -#define wxFgetchar fgetchar -#define wxFgets fgets -#define wxFopen fopen -#define wxFputc fputc -#define wxFputchar fputchar -#define wxFprintf fprintf -#define wxFreopen freopen -#define wxFscanf fscanf -#define wxGetc getc -#define wxGetchar getchar -#define wxGets gets -#define wxPerror perror -#define wxPrintf printf -#define wxPutc putc -#define wxPutchar putchar -#define wxPuts puts -#define wxRemove remove -#define wxRename rename -#define wxScanf scanf -#define wxSprintf sprintf -#define wxSscanf sscanf -#define wxTmpnam tmpnam -#define wxUngetc ungetc -#define wxVfprint vfprintf -#define wxVprintf vprintf -#define wxVsscanf vsscanf -#define wxVsprintf vsprintf -#undef wxNEED_WX_STDIO_H -#endif - -#ifdef wxNEED_WX_STDLIB_H -#define wxAtof atof -#define wxAtoi atoi -#define wxAtol atol -#define wxGetenv getenv -#define wxSystem system -#undef wxNEED_WX_STDLIB_H -#endif - -#ifdef wxNEED_WX_TIME_H -#define wxAsctime asctime -#define wxCtime ctime -#define wxStrftime strftime -#undef wxNEED_WX_TIME_H -#endif -#endif //!Unicode - -#if defined(wxNEED_WCSLEN) && wxUSE_UNICODE -#define wcslen wxStrlen -#undef wxNEED_WCSLEN -#endif - -/// checks whether the passed in pointer is NULL and if the string is empty -WXDLLEXPORT inline bool wxIsEmpty(const wxChar *p) { return !p || !*p; } - -#ifndef wxNEED_WX_STRING_H -/// safe version of strlen() (returns 0 if passed NULL pointer) -WXDLLEXPORT inline size_t wxStrlen(const wxChar *psz) - { return psz ? wxStrlen_(psz) : 0; } -#endif - -#if wxUSE_WCHAR_T -// multibyte<->widechar conversion -WXDLLEXPORT size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n); -WXDLLEXPORT size_t wxWC2MB(char *buf, const wchar_t *psz, size_t n); -#if wxUSE_UNICODE -#define wxMB2WX wxMB2WC -#define wxWX2MB wxWC2MB -#define wxWC2WX wxStrncpy -#define wxWX2WC wxStrncpy -#else -#define wxMB2WX wxStrncpy -#define wxWX2MB wxStrncpy -#define wxWC2WX wxWC2MB -#define wxWX2WC wxMB2WC -#endif -#else -// No wxUSE_WCHAR_T: we have to do something (JACS) -#define wxMB2WC wxStrncpy -#define wxWC2MB wxStrncpy -#define wxMB2WX wxStrncpy -#define wxWX2MB wxStrncpy -#define wxWC2WX wxWC2MB -#define wxWX2WC wxMB2WC -#endif - -WXDLLEXPORT bool wxOKlibc(); // for internal use - -// if libc versions are not available, use replacements defined in wxchar.cpp -#ifndef wxStrdup -WXDLLEXPORT wxChar * wxStrdup(const wxChar *psz); -#endif - -#ifndef wxStricmp -WXDLLEXPORT int wxStricmp(const wxChar *psz1, const wxChar *psz2); -#endif - -#ifndef wxStrtok -WXDLLEXPORT wxChar * wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr); -#endif - -#ifndef wxSetlocale -WXDLLEXPORT wxChar * wxSetlocale(int category, const wxChar *locale); -#endif - -#ifdef wxNEED_WCSLEN // for use in buffer.h -WXDLLEXPORT size_t wcslen(const wchar_t *s); -#endif - -#ifdef wxNEED_WX_CTYPE_H -WXDLLEXPORT int wxIsalnum(wxChar ch); -WXDLLEXPORT int wxIsalpha(wxChar ch); -WXDLLEXPORT int wxIsctrl(wxChar ch); -WXDLLEXPORT int wxIsdigit(wxChar ch); -WXDLLEXPORT int wxIsgraph(wxChar ch); -WXDLLEXPORT int wxIslower(wxChar ch); -WXDLLEXPORT int wxIsprint(wxChar ch); -WXDLLEXPORT int wxIspunct(wxChar ch); -WXDLLEXPORT int wxIsspace(wxChar ch); -WXDLLEXPORT int wxIsupper(wxChar ch); -WXDLLEXPORT int wxIsxdigit(wxChar ch); -WXDLLEXPORT int wxTolower(wxChar ch); -WXDLLEXPORT int wxToupper(wxChar ch); -#endif - -#ifdef wxNEED_WX_STRING_H -WXDLLEXPORT wxChar * wxStrcat(wxChar *dest, const wxChar *src); -WXDLLEXPORT wxChar * wxStrchr(const wxChar *s, wxChar c); -WXDLLEXPORT int wxStrcmp(const wxChar *s1, const wxChar *s2); -WXDLLEXPORT int wxStrcoll(const wxChar *s1, const wxChar *s2); -WXDLLEXPORT wxChar * wxStrcpy(wxChar *dest, const wxChar *src); -WXDLLEXPORT size_t wxStrcspn(const wxChar *s, const wxChar *reject); -WXDLLEXPORT size_t wxStrlen(const wxChar *s); -WXDLLEXPORT wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n); -WXDLLEXPORT int wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n); -WXDLLEXPORT wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n); -WXDLLEXPORT wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept); -WXDLLEXPORT wxChar * wxStrrchr(const wxChar *s, wxChar c); -WXDLLEXPORT size_t wxStrspn(const wxChar *s, const wxChar *accept); -WXDLLEXPORT wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle); -WXDLLEXPORT double wxStrtod(const wxChar *nptr, wxChar **endptr); -WXDLLEXPORT long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base); -WXDLLEXPORT unsigned long int wxStrtoul(const wxChar *nptr, wxChar **endptr, int base); -WXDLLEXPORT size_t wxStrxfrm(wxChar *dest, const wxChar *src, size_t n); -#endif - -#ifdef wxNEED_WX_STDIO_H -#include -#include -WXDLLEXPORT int wxPrintf(const wxChar *fmt, ...); -WXDLLEXPORT int wxVprintf(const wxChar *fmt, va_list argptr); -WXDLLEXPORT int wxFprintf(FILE *stream, const wxChar *fmt, ...); -WXDLLEXPORT int wxVfprintf(FILE *stream, const wxChar *fmt, va_list argptr); -WXDLLEXPORT int wxSprintf(wxChar *buf, const wxChar *fmt, ...); -WXDLLEXPORT int wxVsprintf(wxChar *buf, const wxChar *fmt, va_list argptr); -WXDLLEXPORT int wxSscanf(const wxChar *buf, const wxChar *fmt, ...); -WXDLLEXPORT int wxVsscanf(const wxChar *buf, const wxChar *fmt, va_list argptr); -#endif - -#ifndef wxAtof -WXDLLEXPORT double wxAtof(const wxChar *psz); -#endif - -#ifdef wxNEED_WX_STDLIB_H -WXDLLEXPORT int wxAtoi(const wxChar *psz); -WXDLLEXPORT long wxAtol(const wxChar *psz); -WXDLLEXPORT wxChar * wxGetenv(const wxChar *name); -WXDLLEXPORT int wxSystem(const wxChar *psz); -#endif - -#endif - //_WX_WXCHAR_H_ diff --git a/include/wx/wxexpr.h b/include/wx/wxexpr.h deleted file mode 100644 index 756cf63915..0000000000 --- a/include/wx/wxexpr.h +++ /dev/null @@ -1,280 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxexpr.h -// Purpose: Prolog-like file I/O, used by resource system. -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_WXEXPRH__ -#define _WX_WXEXPRH__ - -#ifdef __GNUG__ -#pragma interface "wxexpr.h" -#endif - -#include - -#include "wx/defs.h" -#include "wx/string.h" - -#include "wx/ioswrap.h" - -#include "wx/list.h" -#include "wx/hash.h" - -#include "wx/expr.h" - -// Compatibility -#define PrologExpr wxExpr -#define PrologDatabase wxExprDatabase -#define proioErrorHandler wxExprErrorHandler -#define PROIO_ERROR_GENERAL 1 -#define PROIO_ERROR_SYNTAX 2 -#define PrologNull wxExprNull -#define PrologInteger wxExprInteger -#define PrologReal wxExprReal -#define PrologWord wxExprWord -#define PrologString wxExprString -#define PrologList wxExprList -#define PrologType wxExprType - -// Error types -#define WXEXPR_ERROR_GENERAL 1 -#define WXEXPR_ERROR_SYNTAX 2 - -// Error handler function definition. If app returns TRUE, -// carry on processing. -typedef bool (*wxExprErrorHandler) (int errorType, char *msg); - -WXDLLEXPORT_DATA(extern wxExprErrorHandler) currentwxExprErrorHandler; - -extern "C" WXDLLEXPORT_DATA(FILE*) yyin; - -extern "C" WXDLLEXPORT int yyparse(void); - -typedef enum { - wxExprNull, - wxExprInteger, - wxExprReal, - wxExprWord, - wxExprString, - wxExprList -} wxExprType; - -class WXDLLEXPORT wxExprDatabase; - -class WXDLLEXPORT wxExpr -{ - public: - wxObject *client_data; - wxExprType type; - union { - long integer; - wxChar *word; - wxChar *string; - double real; - wxExpr *first; // If is a list expr, points to the first node - } value; - - wxExpr *next; // If this is a node in a list, points to the next node - wxExpr *last; // If is a list expr, points to the last node - - wxExpr(wxExprType the_type, wxChar *word_or_string, bool allocate); - wxExpr(const wxString& functor); // Assume this is a new clause - pass functor - wxExpr(wxExprType the_type, const wxString& word_or_string = ""); - wxExpr(long the_integer); - wxExpr(double the_real); - wxExpr(wxList *the_list); - ~wxExpr(void); - - inline wxExprType Type(void) const { return type; } - inline long IntegerValue(void) const - { - if (type == wxExprInteger) - return value.integer; - else if (type == wxExprReal) - return (long)value.real; - else return 0; - } - - inline double RealValue(void) const { - if (type == wxExprReal) - return value.real; - else if (type == wxExprInteger) - return (double)value.integer; - else return (double)0.0; - } - - inline wxString WordValue(void) const { - if (type == wxExprWord) - return value.word; - else if (type == wxExprString) - return wxString(value.string); - else return wxString(_T("")); - } - - inline wxString StringValue(void) const { - if (type == wxExprString) - return wxString(value.string); - else if (type == wxExprWord) - return wxString(value.word); - else return wxString(_T("")); - } - - // Get nth arg of clause (starting from 1) - wxExpr *Arg(wxExprType type, int arg) const; - - // Return nth argument of a list expression (starting from zero) - wxExpr *Nth(int arg) const; - - // Returns the number of elements in a list expression - int Number(void) const; - - // Make a clone - wxExpr *Copy(void) const; - - wxExpr *GetAttributeValueNode(const wxString& word) const; // Use only for a clause or list - wxExpr *AttributeValue(const wxString& word) const; // Use only for a clause - wxString Functor(void) const; // Only for a clause - bool IsFunctor(const wxString& s) const; // Only for a clause - void WriteClause(ostream& stream); // Write this expression as a top-level clause - void WriteExpr(ostream& stream); // Write as any other subexpression - void WriteLispExpr(ostream& stream); - - // Append an expression to a list - void Append(wxExpr *expr); - // Insert at beginning of list - void Insert(wxExpr *expr); - - // Get first expr in list - inline wxExpr *GetFirst(void) const { return ((type == wxExprList) ? value.first : (wxExpr*)NULL); } - - // Get next expr if this is a node in a list - inline wxExpr *GetNext(void) const { return next; } - - // Get last expr in list - inline wxExpr *GetLast(void) const { return ((type == wxExprList) ? last : (wxExpr*)NULL); } - - // This should really be called SetAttributeValue since any existing - // attribute-value is deleted first. - void AddAttributeValue(const wxString& attribute, long value); - void AddAttributeValue(const wxString& attribute, double value); - void AddAttributeValueWord(const wxString& attribute, const wxString& value); - void AddAttributeValueString(const wxString& attribute, const wxString& value); - void AddAttributeValue(const wxString& attribute, wxList *value); - void AddAttributeValue(const wxString& attribute, wxExpr *value); - void AddAttributeValueStringList(const wxString& attribute, wxList *string_list); - - void DeleteAttributeValue(const wxString& attribute); - - bool GetAttributeValue(const wxString& att, int& var) const; - bool GetAttributeValue(const wxString& att, long& var) const; - bool GetAttributeValue(const wxString& att, float& var) const; - bool GetAttributeValue(const wxString& att, double& var) const; - bool GetAttributeValue(const wxString& att, wxString& var) const; // Word OR string -> string - bool GetAttributeValue(const wxString& att, wxExpr **var) const; - - // Compatibility with old PrologIO - inline void AssignAttributeValue(wxChar *att, int *var) const { GetAttributeValue(att, *var); } - inline void AssignAttributeValue(wxChar *att, long *var) const { GetAttributeValue(att, *var); } - inline void AssignAttributeValue(wxChar *att, float *var) const { GetAttributeValue(att, *var); } - inline void AssignAttributeValue(wxChar *att, double *var) const { GetAttributeValue(att, *var); } - inline void AssignAttributeValue(wxChar *att, wxExpr **var) const { GetAttributeValue(att, var); } - void AssignAttributeValue(wxChar *att, wxChar **var) const ; // Word OR string -> string - - // Add string items to list if the list attribute exists - bool GetAttributeValueStringList(const wxString& att, wxList *var) const; - - // Associate other data with this expression, e.g. when reading in a - // number of linked items - store C++ object pointer with the expression - // so we can index into the wxExpr database and fish out the pointer. - inline void SetClientData(wxObject *data) { client_data = data; } - inline wxObject *GetClientData(void) const { return client_data; } -}; - -class WXDLLEXPORT wxExprDatabase: public wxList -{ -private: - wxNode *position; // Where we are in a search - wxHashTable *hash_table; - wxString attribute_to_hash; - -public: - int noErrors; - - wxExprDatabase(wxExprErrorHandler handler = 0); - - // Use hashing on both the functor, and the attribute of - // specified type (wxExprString or wxExprInteger) and name. - // So to find node 45 - // (i.e. match the clause node(id=45, ...)) - // it usually requires 1 look-up: the keys for functor and attribute - // are added together. - // Obviously if the attribute was missing in a clause, it would - // fail to be found by this method, but could be retrieved by a - // linear search using BeginFind and FindClauseByFunctor, - // or just searching through the list as per usual. - - wxExprDatabase(wxExprType type, const wxString& attribute, int size = 500, - wxExprErrorHandler handler = 0); - - ~wxExprDatabase(void); - - void BeginFind(void) ; // Initialise a search - wxExpr *FindClause(long id) ; // Find a term based on an integer id attribute - // e.g. node(id=23, type=rectangle, ....). - - // Find on basis of attribute/value pairs, e.g. type=rectangle - // This doesn't use hashing; it's a linear search. - wxExpr *FindClause(const wxString& word, const wxString& value); - wxExpr *FindClause(const wxString& word, long value); - wxExpr *FindClause(const wxString& word, double value); - wxExpr *FindClauseByFunctor(const wxString& functor); - - wxExpr *HashFind(const wxString& functor, const wxString& value) const; - wxExpr *HashFind(const wxString& functor, long value) const; - - void Append(wxExpr *expr); // Does cleverer things if hashing is on - void ClearDatabase(void); - inline int GetErrorCount() const { return noErrors; } - bool Read(const wxString& filename); - bool ReadFromString(const wxString& buffer); - bool Write(const wxString& fileName); - bool Write(ostream& stream); - void WriteLisp(ostream& stream); - - // Compatibility - inline bool ReadProlog(wxChar *filename) { return Read(wxString(filename)); } - inline bool ReadPrologFromString(char *buffer) { return ReadFromString(wxString(buffer)); } - inline void WriteProlog(ostream& stream) { Write(stream); } - -private: - DECLARE_DYNAMIC_CLASS(wxExprDatabase) -}; - -// Function call-style interface - some more convenience wrappers/unwrappers - -// Make a call -WXDLLEXPORT wxExpr* wxExprMakeCall(const wxString& functor ...); - -#define wxExprMakeInteger(x) (new wxExpr((long)x)) -#define wxExprMakeReal(x) (new wxExpr((double)x)) -#define wxExprMakeString(x) (new wxExpr(wxExprString, x)) -#define wxExprMakeWord(x) (new wxExpr(wxExprWord, x)) -#define wxExprMake(x) (new wxExpr(x)) - -// Checks functor -WXDLLEXPORT bool wxExprIsFunctor(wxExpr *expr, const wxString& functor); - -// Temporary variable for communicating between wxexpr.cpp and YACC/LEX -WXDLLEXPORT_DATA(extern wxExprDatabase*) thewxExprDatabase; - -// YACC/LEX can leave memory lying around... -extern "C" WXDLLEXPORT int wxExprCleanUp(); - -#endif - diff --git a/include/wx/wxprec.h b/include/wx/wxprec.h deleted file mode 100644 index 80526f249b..0000000000 --- a/include/wx/wxprec.h +++ /dev/null @@ -1,39 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxprec.h -// Purpose: Includes the appropriate files for precompiled headers -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/setup.h" // always include this file (under Unix it's generated by configure) -#include "wx/defs.h" // compiler definitions - -// check if to use precompiled headers -#if (defined(__BORLANDC__) || defined(__VISUALC__) || defined(__WATCOMC__)) && defined(__WXMSW__) - #if !defined(NOPCH) - #define WX_PRECOMP - #endif -#endif - -// For some reason, this must be defined for common dialogs to work. -#ifdef __WATCOMC__ -#define INCLUDE_COMMDLG_H 1 -#endif - -// include the wx definitions -#ifdef WX_PRECOMP - -#ifdef __WXMSW__ -#include -#include "wx/msw/winundef.h" -#endif - -#include "wx/wx.h" - - -#endif // WX_PRECOMP - diff --git a/include/wx/xpmhand.h b/include/wx/xpmhand.h deleted file mode 100644 index 9a848a0f8c..0000000000 --- a/include/wx/xpmhand.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _WX_XPMHAND_H_BASE_ -#define _WX_XPMHAND_H_BASE_ - -// Only wxMSW currently defines a separate XPM handler, since -// mostly Windows apps won't need XPMs. -#if defined(__WXMSW__) -#include "wx/msw/xpmhand.h" -#endif - -#endif - // _WX_XPMHAND_H_BASE_ diff --git a/include/wx/zstream.h b/include/wx/zstream.h deleted file mode 100644 index 9a4f11c6ad..0000000000 --- a/include/wx/zstream.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: zstream.h -// Purpose: Memory stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifndef _WX_WXZSTREAM_H__ -#define _WX_WXZSTREAM_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" - -#if wxUSE_ZLIB - -#include - -class WXDLLEXPORT wxZlibInputStream: public wxFilterInputStream { - public: - wxZlibInputStream(wxInputStream& stream); - virtual ~wxZlibInputStream(); - - protected: - size_t OnSysRead(void *buffer, size_t size); - - protected: - size_t m_z_size; - unsigned char *m_z_buffer; - struct z_stream_s *m_inflate; -}; - -class WXDLLEXPORT wxZlibOutputStream: public wxFilterOutputStream { - public: - wxZlibOutputStream(wxOutputStream& stream); - virtual ~wxZlibOutputStream(); - - void Sync(); - - protected: - size_t OnSysWrite(const void *buffer, size_t size); - - protected: - size_t m_z_size; - unsigned char *m_z_buffer; - struct z_stream_s *m_deflate; -}; - -#endif - -#endif diff --git a/include/wx_cw.pch b/include/wx_cw.pch deleted file mode 100644 index c5efcf3859..0000000000 --- a/include/wx_cw.pch +++ /dev/null @@ -1,16 +0,0 @@ -#if __POWERPC__ - #pragma precompile_target "wx_PPC.mch" - -#elif __INTEL__ - #pragma precompile_target "wx_x86.mch" - -#elif __CFM68K__ - #pragma precompile_target "wx_cfm.mch" - -#else - #pragma precompile_target "wx_68k.mch" -#endif - -#pragma once on -#undef WX_PRECOMP -#include "wx/wx_cw_cm.h" diff --git a/include/wx_cw.pch++ b/include/wx_cw.pch++ deleted file mode 100644 index 35b82e4419..0000000000 --- a/include/wx_cw.pch++ +++ /dev/null @@ -1,19 +0,0 @@ -#if __POWERPC__ - #pragma precompile_target "wx_PPC++.mch" - -#elif __INTEL__ - - #pragma precompile_target "wx_x86++.mch" - - -#elif __CFM68K__ - #pragma precompile_target "wx_cfm++.mch" - -#else - #pragma precompile_target "wx_68k++.mch" -#endif - -#pragma once on -#define WX_PRECOMP -#include "wx/wx_cw_cm.h" -#include "wx/wxprec.h" \ No newline at end of file diff --git a/include/wx_cw_d.pch b/include/wx_cw_d.pch deleted file mode 100644 index 12b3530b86..0000000000 --- a/include/wx_cw_d.pch +++ /dev/null @@ -1,17 +0,0 @@ -#if __POWERPC__ - #pragma precompile_target "wx_PPC_d.mch" - -#elif __INTEL__ - #pragma precompile_target "wx_x86_d.mch" - -#elif __CFM68K__ - #pragma precompile_target "wx_cfm_d.mch" - -#else - #pragma precompile_target "wx_68k_d.mch" -#endif - -#pragma once on -#undef WX_PRECOMP -#define __WXDEBUG__ -#include "wx/wx_cw_cm.h" diff --git a/include/wx_cw_d.pch++ b/include/wx_cw_d.pch++ deleted file mode 100644 index 849502e79b..0000000000 --- a/include/wx_cw_d.pch++ +++ /dev/null @@ -1,20 +0,0 @@ -#if __POWERPC__ - #pragma precompile_target "wx_PPC++_d.mch" - -#elif __INTEL__ - - #pragma precompile_target "wx_x86++_d.mch" - - -#elif __CFM68K__ - #pragma precompile_target "wx_cfm++_d.mch" - -#else - #pragma precompile_target "wx_68k++_d.mch" -#endif - -#pragma once on -#define WX_PRECOMP -#define __WXDEBUG__ -#include "wx/wx_cw_cm.h" -#include "wx/wxprec.h" \ No newline at end of file diff --git a/install-sh b/install-sh deleted file mode 100755 index e8436696c1..0000000000 --- a/install-sh +++ /dev/null @@ -1,250 +0,0 @@ -#!/bin/sh -# -# install - install a program, script, or datafile -# This comes from X11R5 (mit/util/scripts/install.sh). -# -# Copyright 1991 by the Massachusetts Institute of Technology -# -# 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. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. It can only install one file at a time, a restriction -# shared with many OS's install programs. - - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit="${DOITPROG-}" - - -# put in absolute paths if you don't have them in your path; or use env. vars. - -mvprog="${MVPROG-mv}" -cpprog="${CPPROG-cp}" -chmodprog="${CHMODPROG-chmod}" -chownprog="${CHOWNPROG-chown}" -chgrpprog="${CHGRPPROG-chgrp}" -stripprog="${STRIPPROG-strip}" -rmprog="${RMPROG-rm}" -mkdirprog="${MKDIRPROG-mkdir}" - -transformbasename="" -transform_arg="" -instcmd="$mvprog" -chmodcmd="$chmodprog 0755" -chowncmd="" -chgrpcmd="" -stripcmd="" -rmcmd="$rmprog -f" -mvcmd="$mvprog" -src="" -dst="" -dir_arg="" - -while [ x"$1" != x ]; do - case $1 in - -c) instcmd="$cpprog" - shift - continue;; - - -d) dir_arg=true - shift - continue;; - - -m) chmodcmd="$chmodprog $2" - shift - shift - continue;; - - -o) chowncmd="$chownprog $2" - shift - shift - continue;; - - -g) chgrpcmd="$chgrpprog $2" - shift - shift - continue;; - - -s) stripcmd="$stripprog" - shift - continue;; - - -t=*) transformarg=`echo $1 | sed 's/-t=//'` - shift - continue;; - - -b=*) transformbasename=`echo $1 | sed 's/-b=//'` - shift - continue;; - - *) if [ x"$src" = x ] - then - src=$1 - else - # this colon is to work around a 386BSD /bin/sh bug - : - dst=$1 - fi - shift - continue;; - esac -done - -if [ x"$src" = x ] -then - echo "install: no input file specified" - exit 1 -else - true -fi - -if [ x"$dir_arg" != x ]; then - dst=$src - src="" - - if [ -d $dst ]; then - instcmd=: - else - instcmd=mkdir - fi -else - -# Waiting for this to be detected by the "$instcmd $src $dsttmp" command -# might cause directories to be created, which would be especially bad -# if $src (and thus $dsttmp) contains '*'. - - if [ -f $src -o -d $src ] - then - true - else - echo "install: $src does not exist" - exit 1 - fi - - if [ x"$dst" = x ] - then - echo "install: no destination specified" - exit 1 - else - true - fi - -# If destination is a directory, append the input filename; if your system -# does not like double slashes in filenames, you may need to add some logic - - if [ -d $dst ] - then - dst="$dst"/`basename $src` - else - true - fi -fi - -## this sed command emulates the dirname command -dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` - -# Make sure that the destination directory exists. -# this part is taken from Noah Friedman's mkinstalldirs script - -# Skip lots of stat calls in the usual case. -if [ ! -d "$dstdir" ]; then -defaultIFS=' -' -IFS="${IFS-${defaultIFS}}" - -oIFS="${IFS}" -# Some sh's can't handle IFS=/ for some reason. -IFS='%' -set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` -IFS="${oIFS}" - -pathcomp='' - -while [ $# -ne 0 ] ; do - pathcomp="${pathcomp}${1}" - shift - - if [ ! -d "${pathcomp}" ] ; - then - $mkdirprog "${pathcomp}" - else - true - fi - - pathcomp="${pathcomp}/" -done -fi - -if [ x"$dir_arg" != x ] -then - $doit $instcmd $dst && - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi -else - -# If we're going to rename the final executable, determine the name now. - - if [ x"$transformarg" = x ] - then - dstfile=`basename $dst` - else - dstfile=`basename $dst $transformbasename | - sed $transformarg`$transformbasename - fi - -# don't allow the sed command to completely eliminate the filename - - if [ x"$dstfile" = x ] - then - dstfile=`basename $dst` - else - true - fi - -# Make a temp file name in the proper directory. - - dsttmp=$dstdir/#inst.$$# - -# Move or copy the file name to the temp name - - $doit $instcmd $src $dsttmp && - - trap "rm -f ${dsttmp}" 0 && - -# and set any options; do chmod last to preserve setuid bits - -# If any of these fail, we abort the whole thing. If we want to -# ignore errors from any of these, just make sure not to ignore -# errors from the above "$doit $instcmd $src $dsttmp" command. - - if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && - if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && - if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && - if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && - -# Now rename the file to the real destination. - - $doit $rmcmd -f $dstdir/$dstfile && - $doit $mvcmd $dsttmp $dstdir/$dstfile - -fi && - - -exit 0 diff --git a/lib/.cvsignore b/lib/.cvsignore deleted file mode 100644 index 4646a42c35..0000000000 --- a/lib/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux diff --git a/lib/dummy b/lib/dummy deleted file mode 100644 index bfdf726d49..0000000000 --- a/lib/dummy +++ /dev/null @@ -1 +0,0 @@ -I'm just here to force the creation of a LIB directory. diff --git a/locale/Makefile b/locale/Makefile deleted file mode 100644 index e20bdcfdf9..0000000000 --- a/locale/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -# this is the makefile for generating wxstd.po message catalog file and -# building lang.mo files from the translated lang.po catalogs - -# this makefile may be invoked to build either wxstd.po or any lang.mo - -# the programs we use (TODO: use configure to detect them) -MSGFMT=msgfmt -XGETTEXT=xgettext -XARGS=xargs - -# implicit rules -%.mo: %.po - $(MSGFMT) -o $@ $< - - -wxstd.po: FORCE - find ../include -name "*.h" | $(XARGS) $(XGETTEXT) -C -k_ -j -o wxstd.po - find ../src -name "*.cpp" | $(XARGS) $(XGETTEXT) -C -k_ -j -o wxstd.po - -# targets depending on this one will be always remade -FORCE: - -# $Id$ diff --git a/locale/cs.mo b/locale/cs.mo deleted file mode 100644 index 2981cf518a99ec64f0972f18f2217a129a5ddf97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22978 zcmds;37jQWeeVm|dxll^MQRv&7MW>a7(iNZn4N)H+Sy=+MXT?v?!JBRt-4g*dwaTr z`x3+eqT) zectEge&+PIPSvTi{LlaV&;OiL^VF$FebD2#{0PrG55Dzy&wD@D!9jWgL%`~fH&|* z&nr;zxATW4diO!K_bX8Ce;S?%&$-a*%?fxG@x4%T`T)EdeiACbAHvh%FQDps8p7&; z=Rl?JgzC3fLCJd%sy}`Uo&diDDbo9ExEcNoDxXydPw%gXYWM9>`ql@17{gBZKF5ck z+VKQLHCaeNO%1-<*A>hm?Ie7*~neiSO7e}rnsxQkCh$xF(ncAp4U@3UR}0;u-9 z9Lj#Jg2%zF?)gnn_3VYpH-T#J>!I>_m%IOdsB%66HO@Zi?tjton^5^Y4pq(=RQgG% z@{YOKw(BIv1yFYOa>sR0@9%Q)5Oxr6LcRYcsC@5o&p+hue*(UV`=5o9+ZD?^50ma~ zbleNojw+lFQz$vU5lVmG0VU^;LG{P|Q1;?4pz8lUsCtb-)#Euh558o%&G$q|(cWp$ zhu1js+Y& z3muok6Nq2s;_F>}8&v&ngL*H3(%%xKDP9F$2tN#EH$D$lpC_Q~!Shh^KM&)r=a)n2 z+jh7V4!}zZ_2VFvT;2iu z;m4u$?gT0=`CS8L=UxL(hHroxAMb;D??dn;_z+b2Ux9k>pPi>tJ z?8Z2he9u~C`|DaLIo$?TZV@WK*FoveJy7j>1S;M4pyd61sCND{RDRF8=jUB#^?o5d zo%=V!AsE0x_&8KQuS58%e?L4A?t^OI2jK$v0QBMCLgn+XPAwZlFF%3Oo1el{;UrXj=h2xAb?;Ir`4*w-^L{9~e+=FTzYdkpnd@vl&xgvd z8y*GMK*@b0?1Z7?yP)!U07|akh3fxjpxQfcy^Sw{YWH<;8@v^6fq&%U&qKX`!v@=5 z1;@9*h1~yrsCIu9N-v*+YR3e;6#g8_PF%9l>iM0pyc~DcsBe9JP!T|RQfN#4Oa}cWBXQA?)hcfE^nNadw1f|cfgzDd|E`BT2doi2`-vZU&cf0sK zQ0@3ARQV6WI@}MHZ`Wq47i*!??SV(bGF1KUfb-y+q4fB@Q2BfkO70Ir_47BNX$Mq2 zpM~>b2gT5cE5VdR+rgfaemPGIz0W@F>DY!WO~< zgr5)^1nJFd2pWGk5=IFV1pV$Ld{h_wUQ0lIyn}>O$XmbLEKFa#lj{|P(+Lsb_X+L4 zgot$G+wSJkE{|^F?;va{vt7Ij&*R=7L+RUp zA)HM7$MDw(`pqYPIeZ&o9@qMn2=mO9{qr1nlJFJ68ws7H`wOVw0AV3y4>k0zC;W&Y{aWhMzMX6R&LI9Yl&$#;;eLXC(!s0D6>|psETKtQ zO!^-{+&u3I!ha(S5*{Wja(Vv`u760lny`i-`>~a9gnNFvBe%SNB>bK(`28;7zZ2d- zcr&4sFibd&^vAe&?je3G*MAFR0_MQmO=$m}O5{93KzNjJp?mi_u8-t;8}tb;Bm6o+ zzn@!}zbpAWNjQ#hthvL!1so#$Iia6$5#bQwHwoV*yoc~L!U95#px>u0ym7~K;U$Fs z>f#xW=Hglx`A&Az@ni7agf9{9b@%=Vev9xME-w5p!j}n)2p16kfuP?rgbjq3(e8!1 z!SA0f%zE>uT%XCaQ{aj4D8j3`?saLNhgT5(lJFM7n+W=Sldz0%vLgKYEX>+SmmTE8 zKl3}Ei`88HHQ_FM%i9jWL0G`Ea|o|;_s`<`R<5rk{F}S?Ap8X3Lxc|#K1IlWr;=X3 zk6UDFbochd z&|M1;5&o6%RYmx{pYRfw-{-kLjj)ICKM8e$ev1kJoA8H(9>Q-C+J83?`8&e92xpVm zGQyv7{TShOgcAsVL)c81PuNG$?@tJi5I#V7D;Jhp8XMbwAu!O6whKlQ5`iKKB)^>Rdi(y|W3c2G~8)@C|4gDbUOHn=S50fsB+a>-*&7e{$ny3m0{N7T% z8q}yt8aI+c=%=-?Q0glcf;zQnr6Z?8933uMIuJK1MHL%0s$o(pn3vt%II0Z$WKa)E zk-vJ!+D)7M!a$G&g?gBzb0!QbwSk~Ftd|P^&eTZ9RbtwU-F~T3S>6{XRivJ`xvx~A z;ltE!UzfLNZ6!`aZ_(zs-&?djEXMY)?=9LvzjbwyVppWQ`s;g(JJZGVXi8tzlfYlx z)wOt;U+Rxy`nAhGMebJCM)rO+Ow*u0^bv7TiThiLYDwH1^dczrN)#l+zADz`EhBGw zrB0R8I{i{u<}WNog-W9s`n1$_e8uEc*4>FQ7?rm7c4h9jUjvQt?*T zYGG9Lskssu(HR*mDGbE1DfyPI@ooMPg7)KPm<%N)qr6L3>D7wUEPuUp*jsZr?UO1? zaD8zjLY8adN|8TxRj3*y{baOGkJ6ytM7}fo_cM!>SO@CNz z)I<7u+AH-quGC94qo_$-$sdPCnKTB~T#X{X$ha-kWBN#q&r|k?b-zfzDv7i#sGH}0 zUm_`1O10iNNN7t|u+rC(QjCm-{UnG`3tscn!a!JTRMd^N7?BP8ooz4G8nYL|_?)E( zw4CvXy+JHRzjI$+b`sW;5>m<@%_y{0P1G)_yL8>YH9zWCRdDC#9c>94*blU0W@$qK z_DgMZj~Mt>lw4LuHCkNv-GH(Y*NHZ33;l8jyw;F+WOuJWz ztJQ#dWt~NF7)#ZYfse7mD2|xAIE8V&W~$2|GfHIcnWpk~B}SM-`*xUj{o-&GRIyT( zQg6bz%@UF ztid7E=<}N@2>-G;@L(#1eOIaWnH}%tt3Pz_f(* zpw}o%so3^JZgMbsIdD0`5mvVbMqv0eVIH1wB5akP9SOyZ@~$xMDQt)u)MN{f+g zmN1;zbh#uAL(ECk2r8z;0(}k=xm|!UabiuW>Rd8PI5 zwKg}aa%QhGbLly+Y->2=ugfL_Z(Z2i=;tq$!kjciFMs4ub?Q9l3l0Tpe(W1lVI^y< zM6Lpz=_=B0j{A3DtueQmZ>Om>L6M7osSnq1F@gvx6-i;eWN5^z@vh#Hs9O^jrCIB$ zl*|Ardd~!FV%A2Gm3q&r+EA%JU~G$WZkCcbGOF1Ou$sM^4RKCTJPEQdV0y$UHNGr$ zH5Q2}u!dh?3ji%KOo^)LxHm?ogmRKASMpv**(DE7!)%e{;4uALPapGp^U1X;Umw?lc+8+11u+J7N z{Uxma?(9sx4NQpqNy^z!*q{MTad@5Go|&jOMa6KRr#@+E!jz@nG-rF$FIy&UY8g;( z6YVV(yv=x6X(6bE-sZ5cKGjFx9QGrVSNNA*vVw)jWh=1*q^iqOY7Ub722jeomL^@G05u=bTgmbxtG8qAT|TJNx#HDr{H!;8hfqY>N1 zoGf~mwgnWB&OX%6&nhRMCPVXwqgG;RWUq z~`vH<1x!)Q>ro7%K)}!39rXa(OMU%c|CE015>JVk=Azaxw8rX?{&G=lr^cg= znFi=BTD;aSH5lzCf9^OTw%wr|d2a~Gz2xRIHOuA_JHbzj=Lzx>^BQrHw>|Dpf~x$Q z#P~(8ZiK1ny6s^%8k(4j9m*lo~;o4<*HU0@?zp>S%+DAsRR~r zW@S(3;fb@GMHk!D$g2@GQmLcarU<(`@(fy4*^Xz{l+WW-uG`xl)+zxTPx+u;g$13ArQI-w0Z3h#idIMv4~h7-Fx{+ey=9`na&d(5-3>$2A%Dc4B2w zWOf?D#6;TsmYsGdp&GM8f%(f8sO^KhTOOooKifx1m|03zj`m$v9#S)&VN1wgbD@9u z4EtJ+mTg(h<%KGDy|^q&w2nGE{XIz`AjcomeiRKq? zSCsF~NlUPWrl03@KX*lCHgUCh*9=0TCi#?k$4+d!A~uh-4dgHWHJ0_PQX;pCmkw2# zxP0{`{QJ~(afG==rM~ZR#|vakd)NR;o*By%XKHyN|QyXH%iJGag%ih2de>kL}vcq(RG!a^g?U zCb`y*Y1-%|Yqn`-6wyj!DluCUv+AgXQ9n!2Y-nknDPL{2VoiF9h~@D0+qSG<#`;FH zR<_TOTd^)D)xJt29hf^m?Nex{z-ZLqI3 zd-rB_Hc98Iig|cAC7F`T90{{D#w?rl)0`4FNpdA>)556_rfFAV2H_0Nb+uid{$kLqi*v80s z7x85<=w@h|txWRe9T6zZ2r)`4cM^_sQad%N&7LCbVivDjO(pE6nSCXn z4IsA^oBc)GUlPpWY)qEMrnE?JFt@yhkCqdyqS#5#?FY_^HSSrW0lnWE^lZb zdwOg=SZ`cMu~Dp3Pz1SvhsJAnOTRU23d;qM`=;e9Ta`L0XXsM*nF(?9*9M%Jn;lua zW!!6D?wgwq%%+lgu5xZ-q{c(|*Jg)?5fByCMbnI#IfCinTYxR2xSqARJ{k5#qke62 zB4tq#H@Qqkn}NOpU|lACXbgrOYX`Im>JP+zbGY7&CrfpG22dCn?hV>L1E@`QMO~HY zUjj_{y@xc5wY~!w3TRHvzLJn({q>Nm3m(MID?-D{*!s z?oES%xM|d=!6BAC`yYvdGG03yJiIeKiFt^K!$MemafxV7Z|tjFHcpf+>knjuTyVXKboi?Oa*o5A0G_M zqs`H(Sxrwl^f%4@zjEx~Gb!KRFZ+!HC8QBn((<9I-y0;n&Tu+m^W$5>jnqKT6DJ0Beoj27C)3ZJY5809t{_f=W0N zMy%`_2$mC&3bKjINigUR{TJ;Xt_GahvOQLf2O9ann06F3{i!?npMKkIyJwk=3^MR& zr0tAhzv%}>RA_XvWLlafYYq=qb#!F*nc11Z;8sWLP8ujXC+f*)Bu#haW%(xY2*ZM* zZchGnrZvZre^yVUhqIT%&hdGFmI84SVeG64&C9fWx9$ORU8Q(S1A`zfq2(gBlB_RzX%$b7Z3Kk7#sdjddo@ z)jqqOn(j6y|F&DEbVXKQO$i|205ZNv7NF%uds4ejyUnqz)kTcb>FP8HB&by?u; zO&a^z40XxaWGR@68cV7V0o()jk!8hPz6-p)7*^WJhXAPKV0Da&A$7Z0R2%u4BtB3c z_NPn%JFH||HT9frv|!jpG262BW>Ta|yN7GZ{;)z@Fa&1ipzY?2p}SKb0F-r>c%#n$ zyR%v{n8!xyEh9YR^gow|Iz?yyWzN~{sjb;X%1+=}8U5!v`F9N;i4#5?8DYFdqXQhF zqAF$c1wczv>MTjvJ+FWyqXcZKW8gj z^Hw(IqcE*b_#>DwKD+YeWwFOETfv7DW=8HEAK(sas~}?X3fm6*nV_oCcyy>RU}u5} zYh&nOOh2Z{3fH>hCNGzx<_meOqv+~HUVZzJO~Ih9k2Xx%CS_b1m5nmi+FIWKH;4Le zgf&KtiXUZc|GPZd4mfH=A4K#$9F! zXShRi&9bO%%bdtN$sL|9??!#zSSXL0l|(QtszVgxryHNb9^$hUz-O-|L9@sw-uXZ_ z13X~8X7$`T0PgkSsYm#nMh)g$ALaUW5_I8IXrEEcW{qNB zo8_%pZgDVavkX+OuBXVNC$XOaSRY4gyKVK+k#fL^`}D5>jGv{gr~uDf9|1@~stq66 zHO%?`ShcaNBll5QiXC7n&*Gk=|1tIl^gj`BFYw$;yyy=8@wu|1?T~Di(r|F1kPX>k z)(62r60oRnzMU}wtM~>Ym}YY9>HjXfqH>ln7Ipy^C zb8Z;3G|K%m)X6>>!6gkeEN6LU%ay+3n#s9!9g5av!$|!w<)eTy<&3j`fhpt!!PPu6 z10n`YPxXFRI@&_)1Hh)k>Q8S%>h(U9j}*EIXnK;l3d|;%<%!h{YD(aSfYbL zii6t|ADpNM2XjaF#htEaJK+D{pZKri#Q*wOdvUE<51AC}2~!sHS!g%rWZp5gVZn8) z87=tFBe(zs%|jFUf|qwjqETG+Y_4JD^{j~z|6iA`2}`v%Q%}8WgHs+X3w4aV-*x@J=rtm$sTVtn+>;Y z-L%%6`^)5TFzjnd)xgAnXbk77%oOcTUh;Xr%iAv>=Ma0{`k;eFxs3IBTCbG+UX%?J#H0{S8xl<& zm^%5Qwz*)nb81vq$4f<9!pw5oQrSxL;acAD(<tsNfU}ouH~uoQJ=b*K z31|gX8Z5OoEZkZ^6=wy>k1@ZuLBul(H#e zmcGm$>5~Do!GbAjZS%Fg(3Q0ydqcG`6YY!#bL22Roy$CJJ0s9WX!dqtB74F3{UdF1 zYS#esuw50Wyp=te+1+sw_cJi7<<<%;d$;wlXy-Dg4^!H!vqrOzI+xfZGo9m=WVL7? zcQYR1cGgPK@Pe!ktjtsVgSIZvbZoyU$htqko|`IYlW5if;tWfsr+A?4A})FPc@o|O z-xFw~SGDxpPEM@Cj=8-fTOan9WfrG>Rgg_fCI>c^nl`WIa9SSL`J>;QD3J33#ye}I zhS%1%>9bdB)uf#_f1tvtz(H)jlTz1Q@8*YHi?3xrYK{VO)ioA}SutsjAzX7(Bq6gv zG#h<$W?(y%T`QzUUoe?4hiBuVRdw9ewi;-;*_!gTUew11wm2+~_7Kd(Gp4QBMm3v- zieY3gNAbX#e5<83L{OWcgLc(}@D#6)+vUnU5AccYxDcj(4qAVo^O! z#+(^u`eBuV{|AVr9yi@;K02@iDH^ObJ zW|ueTTT@cCggoY7DDlqRT8x|<)%xhb)U@rRgSk_*eRN?&Ui diff --git a/locale/cs.po b/locale/cs.po deleted file mode 100644 index 222e88146b..0000000000 --- a/locale/cs.po +++ /dev/null @@ -1,1411 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -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 \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: src/generic/dirdlgg.cpp:461 src/generic/dirdlgg.cpp:489 -msgid "" -"\n" -"(Do you have the required permissions?)" -msgstr "" -"\n" -"(Máte potøebná pøístupová práva?)" - -#: src/generic/dirdlgg.cpp:449 -msgid "" -"\n" -"does not exist\n" -"Create it now?" -msgstr "" -"\n" -"neexistuje\n" -"Chcete ho vytvoøit?" - -#: src/common/log.cpp:209 -#, c-format -msgid " (error %ld: %s)" -msgstr " (chyba %ld: %s)" - -#: src/common/date.cpp:384 src/common/date.cpp:399 -msgid " B.C." -msgstr " pø.n.l." - -#: src/common/resourc2.cpp:265 src/common/resourc2.cpp:1334 -#: src/common/resource.cpp:1613 src/common/resource.cpp:2682 -#, c-format -msgid "#define %s must be an integer." -msgstr "#define %s musí být integer." - -#: src/common/valtext.cpp:143 src/common/valtext.cpp:154 -#, c-format -msgid "%s is invalid." -msgstr "%s je neplatný." - -#: src/common/resourc2.cpp:709 src/common/resource.cpp:2057 -#, c-format -msgid "%s not a bitmap resource specification." -msgstr "%s není specifikace bitmap resource." - -#: src/common/resourc2.cpp:864 src/common/resource.cpp:2212 -#, c-format -msgid "%s not an icon resource specification." -msgstr "%s není specifikace icon resource." - -#: src/common/valtext.cpp:188 -#, c-format -msgid "%s should be numeric." -msgstr "%s má být èíslo." - -#: src/common/valtext.cpp:163 -#, c-format -msgid "%s should only contain ASCII characters." -msgstr "%s má obsahovat pouze ASCII znaky." - -#: src/common/valtext.cpp:171 -#, c-format -msgid "%s should only contain alphabetic characters." -msgstr "%s má obsahovat pouze znaky abecedy." - -#: src/common/valtext.cpp:179 -#, c-format -msgid "%s should only contain alphabetic or numeric characters." -msgstr "%s má obsahovat pouze znaky abecedy nebo èíslice." - -#: src/common/resourc2.cpp:357 src/common/resourc2.cpp:1430 -#: src/common/resource.cpp:1705 src/common/resource.cpp:2778 -#, c-format -msgid "%s: ill-formed resource file syntax." -msgstr "%s: chybná syntaxe resource souboru." - -#: src/common/log.cpp:633 -msgid "&Close" -msgstr "&Zavøít" - -#: src/common/log.cpp:634 -msgid "&Log" -msgstr "&Log" - -#: src/common/docview.cpp:1687 src/common/docview.cpp:1698 -msgid "&Redo" -msgstr "&Zopakovat" - -#: src/common/docview.cpp:1681 src/common/docview.cpp:1708 -msgid "&Redo " -msgstr "&Zopakovat " - -#: src/common/log.cpp:630 -msgid "&Save..." -msgstr "&Ulo¾it..." - -#: src/common/docview.cpp:1693 -msgid "&Undo" -msgstr "Z&pìt" - -#: src/common/docview.cpp:1668 -msgid "&Undo " -msgstr "Z&pìt " - -#: src/common/config.cpp:393 -#, c-format -msgid "'%s' has extra '..', ignored." -msgstr "'%s' obsahuje pøebyteèné '..', ignoruji." - -#: src/common/intl.cpp:338 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "'%s' není katalog pøekladù." - -#: src/common/textfile.cpp:132 -#, c-format -msgid "'%s' is probably a binary file." -msgstr "'%s' je zøejmì binární soubor." - -#: src/common/resourc2.cpp:297 src/common/resourc2.cpp:1370 -#: src/common/resource.cpp:1645 src/common/resource.cpp:2718 -msgid "" -", expected static, #include or #define\n" -"whilst parsing resource." -msgstr "" -", oèekávám static, #include nebo #define\n" -"whilst parsing resource." - -#: src/generic/dcpsg.cpp:2389 -msgid "A3 297 x 420 mm" -msgstr "A3 297 x 420 mm" - -#: src/generic/dcpsg.cpp:1210 src/generic/dcpsg.cpp:1214 -#: src/generic/dcpsg.cpp:1800 src/generic/dcpsg.cpp:1804 -#: src/generic/dcpsg.cpp:2313 src/generic/dcpsg.cpp:2388 -#: src/generic/printps.cpp:239 src/generic/printps.cpp:243 -msgid "A4 210 x 297 mm" -msgstr "A4 210 x 297 mm" - -#: src/generic/fontdlgg.cpp:329 -msgid "ABCDEFGabcdefg12345" -msgstr "ABCDEFGabcdefg12345" - -#: src/generic/colrdlgg.cpp:236 -msgid "Add to custom colours" -msgstr "Pøidat k u¾ivatelským barvám" - -#: src/generic/prntdlgg.cpp:83 -msgid "All" -msgstr "V¹e" - -#: src/common/log.cpp:670 -#, c-format -msgid "Append log to file '%s' (choosing [No] will overwrite it)?" -msgstr "Pøipojit log k souboru '%s' (pokud zvolíte [Ne], soubor pøepí¹ete)?" - -#: src/gtk/window.cpp:2716 -msgid "Application Error" -msgstr "Chyba aplikace" - -#: src/common/resourc2.cpp:844 src/common/resource.cpp:2192 -#, c-format -msgid "Bitmap resource specification %s not found." -msgstr "Bitmap resource %s nenalezen." - -#: src/generic/fontdlgg.cpp:221 -msgid "Bold" -msgstr "Tuèné" - -#: src/generic/prntdlgg.cpp:536 -msgid "Bottom margin (mm):" -msgstr "Dolní okraj (mm):" - -#: src/common/log.cpp:631 -msgid "C&lear" -msgstr "&Vymazat" - -#: src/msw/thread.cpp:183 -msgid "Can not create event object." -msgstr "Nemohu vytvoøit event object." - -#: src/msw/thread.cpp:99 -msgid "Can not create mutex." -msgstr "Nemohu vytvoøit mutex." - -#: src/msw/tooltip.cpp:199 -msgid "Can not create tooltip control" -msgstr "Nemohu vytvoøit tooltip" - -#: src/common/filefn.cpp:1168 src/common/filefn.cpp:1282 -#, c-format -msgid "Can not enumerate files in directory '%s'" -msgstr "Nemohu zjistit soubory v adresáøi '%s'" - -#: src/msw/clipbrd.cpp:549 -#, c-format -msgid "Can not get data in format '%s' from clipboard." -msgstr "Nemohu vyjmout data ve formátu '%s' ze schránky." - -#: src/gtk/threadpsx.cpp:450 -#, c-format -msgid "Can not get priority range for scheduling policy %d." -msgstr "Nemohu zjistit rozsah priorit pro scheduling policy %d." - -#: src/msw/clipbrd.cpp:474 -#, c-format -msgid "Can not put data in format '%s' on clipboard." -msgstr "Nemohu vlo¾it data ve formátu '%s' do schránky." - -#: src/msw/thread.cpp:410 -#, c-format -msgid "Can not resume thread %x" -msgstr "Nemohu obnovit vlákno %x" - -#: src/gtk/threadpsx.cpp:442 -msgid "Can not retrieve thread scheduling policy." -msgstr "Nemohu zjistit scheduling policy vláken." - -#: src/gtk/threadpsx.cpp:270 src/msw/thread.cpp:330 -msgid "Can not start thread: error writing TLS." -msgstr "Nemohu spustit vlákno: chyba pøi zápisu TLS." - -#: src/msw/thread.cpp:395 -#, c-format -msgid "Can not suspend thread %x" -msgstr "Nemohu pozastavit vlákno %x" - -#: src/msw/thread.cpp:543 -msgid "Can not wait for thread termination" -msgstr "Nemohu poèkat na ukonèení vlákna" - -#: src/common/docview.cpp:1670 -msgid "Can't &Undo " -msgstr "Nemohu vzít zpìt" - -#: src/msw/thread.cpp:359 -msgid "Can't create thread" -msgstr "Nemohu vytvoøit vlákno" - -#: src/msw/iniconf.cpp:464 -#, c-format -msgid "Can't delete the INI file '%s'" -msgstr "Nemohu smazat INI soubor '%s'" - -#: src/gtk/utilsgtk.cpp:360 -#, c-format -msgid "Can't execute '%s'\n" -msgstr "Nemohu spustit '%s'\n" - -#: src/msw/utilsexc.cpp:208 -#, c-format -msgid "Can't execute command '%s'" -msgstr "Nemohu spustit pøíkaz '%s'" - -#: src/common/object.cpp:290 src/common/object.cpp:311 -#, c-format -msgid "Can't find the serialization object '%s' for the object '%s'." -msgstr "Nemohu najít serializaèní objekt '%s' k objektu '%s'." - -#: src/common/object.cpp:283 -msgid "Can't load wxSerial dynamic library." -msgstr "Nemohu naèíst dynamickou knihovnu wxSerial." - -#: src/common/log.cpp:717 -msgid "Can't save log contents to file." -msgstr "Nemohu ulo¾it obsah logu do souboru." - -#: src/msw/thread.cpp:384 -msgid "Can't set thread priority" -msgstr "Nemohu nastavit prioritu vlákna" - -#: src/common/prntbase.cpp:113 src/generic/choicdgg.cpp:306 -#: src/generic/colrdlgg.cpp:235 src/generic/dcpsg.cpp:1875 -#: src/generic/dirdlgg.cpp:341 src/generic/fontdlgg.cpp:261 -#: src/generic/msgdlgg.cpp:143 src/generic/prntdlgg.cpp:111 -#: src/generic/prntdlgg.cpp:317 src/generic/prntdlgg.cpp:473 -#: src/generic/textdlgg.cpp:141 src/gtk/filedlg.cpp:131 -msgid "Cancel" -msgstr "Zru¹it" - -#: src/msw/app.cpp:192 -msgid "Cannot initialize OLE" -msgstr "Nemohu inicializovat OLE" - -#: src/generic/dcpsg.cpp:1247 -msgid "Cannot open file!" -msgstr "Nemohu otevøít soubor!" - -#: src/common/CVS/Base/fileconf.cpp:614 src/common/fileconf.cpp:614 -#, c-format -msgid "Character '%c' is invalid in a config entry name." -msgstr "Znak '%c' ve jménu konfiguraèní polo¾ky je neplatný." - -#: src/common/log.cpp:631 -msgid "Clear the log contents" -msgstr "Smazat obsah logu" - -#: src/common/prntbase.cpp:342 -msgid "Close" -msgstr "Zavøít" - -#: src/common/log.cpp:633 -msgid "Close this window" -msgstr "Zavøít okno" - -#: src/gtk/filedlg.cpp:60 -msgid "Confirm" -msgstr "Potvrdit" - -#: src/generic/helpxlp.cpp:242 -#, c-format -msgid "Connection to wxHelp timed out in %d seconds" -msgstr "Vypr¹elo spojení s wxHelp :%d sekund" - -#: src/generic/prntdlgg.cpp:106 -msgid "Copies:" -msgstr "Kopie:" - -#: src/common/resourc2.cpp:287 src/common/resource.cpp:1635 -#, c-format -msgid "Could not find resource include file %s." -msgstr "Nemohu nalézt resource include file %s." - -#: src/generic/tabg.cpp:1038 -msgid "Could not find tab for id" -msgstr "Nemohu najít tab k id" - -#: src/common/resource.cpp:753 -#, c-format -msgid "" -"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n" -" or provide #define (see manual for caveats)" -msgstr "" -"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n" -" or provide #define (see manual for caveats)" - -#: src/common/resource.cpp:1199 -#, c-format -msgid "" -"Could not resolve menu id '%s'. Use (non-zero) integer instead\n" -"or provide #define (see manual for caveats)" -msgstr "" -"Could not resolve menu id '%s'. Use (non-zero) integer instead\n" -"or provide #define (see manual for caveats)" - -#: src/common/prntbase.cpp:673 -msgid "Could not start document preview." -msgstr "Nemohu zorbrazit náhled dokumentu." - -#: src/generic/printps.cpp:165 -msgid "Could not start printing." -msgstr "Nemohu tisknout." - -#: src/gtk/window.cpp:2716 src/msw/window.cpp:3756 -msgid "Could not transfer data to window" -msgstr "Nemohu pøenést data do okna." - -#: src/msw/thread.cpp:127 -msgid "Couldn't acquire a mutex lock" -msgstr "Nemohu získat zámek mutexu." - -#: src/msw/imaglist.cpp:96 -msgid "Couldn't add an image to the image list." -msgstr "Nemohu pøidat obrázek do seznamu." - -#: src/msw/thread.cpp:231 -msgid "Couldn't change the state of event object." -msgstr "Nemohu zmìnit stav event object." - -#: src/msw/timer.cpp:109 -msgid "Couldn't create a timer" -msgstr "Nemohu vytvoøit timer" - -#: src/msw/thread.cpp:430 -msgid "Couldn't get the current thread pointer" -msgstr "Nemohu získat ukazatel na aktuální vlákno" - -#: src/common/image.cpp:662 -msgid "Couldn't load a PNG image - probably file is corrupted." -msgstr "Nemohu naèíst obrázek ve formátu PNG - nejspí¹ je po¹kozený soubor." - -#: src/msw/thread.cpp:159 -msgid "Couldn't release a mutex" -msgstr "Nemohu uvolnit mutex" - -#: src/msw/listctrl.cpp:500 -#, c-format -msgid "Couldn't retrieve information about list control item %d." -msgstr "Nemohu získat informace o polo¾ce %d v seznamu." - -#: src/msw/thread.cpp:608 -msgid "Couldn't terminate thread" -msgstr "Nemohu pøeru¹it vlákno" - -#: src/generic/dirdlgg.cpp:478 -msgid "Create New Directory" -msgstr "Vytvoøit nový adresáø" - -#: src/common/log.cpp:1022 -msgid "Debug" -msgstr "Debug" - -#: src/generic/fontdlgg.cpp:211 -msgid "Decorative" -msgstr "Ozdobný" - -#: src/generic/dirdlgg.cpp:450 -msgid "Directory does not exist" -msgstr "Adresáø neexistuje" - -#: src/common/docview.cpp:371 -#, c-format -msgid "Do you want to save changes to document %s?" -msgstr "Chcete ulo¾it zmìny do dokumentu %s?" - -#: src/common/log.cpp:368 -msgid "DoLogString must be overrided if it's called." -msgstr "DoLogString musí být pøepsán pokud ho chcete volat." - -#: src/generic/dirdlgg.cpp:477 -msgid "Enter the name of the directory to create" -msgstr "Zadejte jméno adresáøe, který se má vytvoøit" - -#: src/generic/helphtml.cpp:260 -msgid "Entries found" -msgstr "Nalezené polo¾ky" - -#: src/common/CVS/Base/fileconf.cpp:607 src/common/fileconf.cpp:607 -#, c-format -msgid "Entry name can't start with '%c'." -msgstr "Jméno polo¾ky nesmí zaèínat znakem '%c'." - -#: src/common/config.cpp:345 -#, c-format -msgid "" -"Environment variables expansion failed: missing '%c' at position %d in '%s'." -msgstr "Chyba bìhem expanze environment promnìných: chybí '%c' na pozici %d v '%s'." - -#: src/common/log.cpp:474 src/generic/dcpsg.cpp:1247 -#: src/generic/helpxlp.cpp:243 -msgid "Error" -msgstr "Chyba" - -#: src/generic/dirdlgg.cpp:462 src/generic/dirdlgg.cpp:490 -msgid "Error creating directory" -msgstr "Chyba pøi vytváøení adresáøe" - -#: src/common/log.cpp:332 -msgid "Error: " -msgstr "Chyba: " - -#: src/generic/dirdlgg.cpp:230 -msgid "Etcetera" -msgstr "atd." - -#: src/msw/utilsexc.cpp:237 -#, c-format -msgid "Execution of command '%s' failed" -msgstr "Chyba pøi volání pøíkazu '%s'" - -#: src/common/resourc2.cpp:326 src/common/resourc2.cpp:1399 -#: src/common/resource.cpp:1674 src/common/resource.cpp:2747 -msgid "Expected '*' whilst parsing resource." -msgstr "Expected '*' whilst parsing resource." - -#: src/common/resourc2.cpp:342 src/common/resourc2.cpp:1415 -#: src/common/resource.cpp:1690 src/common/resource.cpp:2763 -msgid "Expected '=' whilst parsing resource." -msgstr "Expected '=' whilst parsing resource." - -#: src/common/resourc2.cpp:312 src/common/resourc2.cpp:1385 -#: src/common/resource.cpp:1660 src/common/resource.cpp:2733 -msgid "Expected 'char' whilst parsing resource." -msgstr "Expected 'char' whilst parsing resource." - -#: src/msw/clipbrd.cpp:106 -msgid "Failed to close the clipboard." -msgstr "Nemohu uzavøít schránku." - -#: src/generic/dirdlgg.cpp:460 src/generic/dirdlgg.cpp:488 -msgid "Failed to create directory " -msgstr "Nemohu vytvoøit adresáø" - -#: src/msw/tooltip.cpp:260 -#, c-format -msgid "Failed to create the tooltip '%s'" -msgstr "Nemohu vytvoøit tooltip '%s'" - -#: src/msw/dialog.cpp:143 -msgid "Failed to created dialog." -msgstr "Nemohu vytvoøit dialog." - -#: src/msw/clipbrd.cpp:118 -msgid "Failed to empty the clipboard." -msgstr "Nemohu vyprázdnit shcránku." - -#: src/common/resourc2.cpp:808 src/common/resource.cpp:2156 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" -"Nemohu nalézt XBM resource %s.\n" -"Nezapomnìl jste pou¾ít wxResourceLoadBitmapData?" - -#: src/common/resourc2.cpp:963 src/common/resource.cpp:2311 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadIconData?" -msgstr "" -"Nemohu nalézt XBM resource %s.\n" -"Nezapomnìl jste pou¾ít wxResourceLoadIconData?" - - -#: src/common/resourc2.cpp:824 src/common/resource.cpp:2172 -#, c-format -msgid "" -"Failed to find XPM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" -"Nemohu nalézt XPM resource %s.\n" -"Nezapomnìl jste pou¾ít wxResourceLoadBitmapData?" - -#: src/msw/clipbrd.cpp:86 -msgid "Failed to open the clipboard." -msgstr "Nemohu otevøít schránku." - -#: src/msw/clipbrd.cpp:375 -msgid "Failed to retrieve data from the clipboard." -msgstr "Nemohu získat data ze schránky." - -#: src/msw/clipbrd.cpp:262 -msgid "Failed to set clipboard data." -msgstr "Nemohu ulo¾it data do schránky." - -#: src/gtk/threadpsx.cpp:508 -#, c-format -msgid "Failed to set thread priority %d." -msgstr "Nemohu nastavit prioritu vlákna %d." - -#: src/gtk/threadpsx.cpp:611 -msgid "Failed to terminate a thread." -msgstr "Nemohu ukonèit vlákno." - -#: src/common/log.cpp:543 -msgid "Fatal error" -msgstr "Kritická chyba" - -#: src/common/log.cpp:325 -msgid "Fatal error: " -msgstr "Kritická chyba: " - -#: src/gtk/filedlg.cpp:57 -#, c-format -msgid "File '%s' already exists, do you really want to overwrite it?" -msgstr "Soubor '%s' existuje, opravdu ho chcete pøepsat?" - -#: src/common/docview.cpp:247 src/common/docview.cpp:278 -msgid "File error" -msgstr "Chyba souboru" - -#: src/msw/filedlg.cpp:252 -#, c-format -msgid "Files (%s)|%s" -msgstr "Soubory (%s)|%s" - -#: src/generic/fontdlgg.cpp:126 -msgid "Font" -msgstr "Font" - -#: src/gtk/utilsgtk.cpp:327 -msgid "Fork failed" -msgstr "Selhalo volání fork()" - -#: src/common/resourc2.cpp:295 src/common/resourc2.cpp:1368 -#: src/common/resource.cpp:1643 src/common/resource.cpp:2716 -msgid "Found " -msgstr "Nalezeno " - -#: src/generic/prntdlgg.cpp:97 -msgid "From:" -msgstr "Z:" - -#: src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:260 -msgid "Help Index" -msgstr "Index nápovìdy" - -#: src/common/resourc2.cpp:997 src/common/resourc2.cpp:1008 -#: src/common/resource.cpp:2345 src/common/resource.cpp:2356 -#, c-format -msgid "Icon resource specification %s not found." -msgstr "Icon resource specification %s nenalezen." - -#: src/common/resource.cpp:234 -msgid "Ill-formed resource file syntax." -msgstr "©patná syntaxe resource file." - -#: src/common/log.cpp:477 -msgid "Information" -msgstr "Informace" - -#: src/generic/fontdlgg.cpp:217 -msgid "Italic" -msgstr "Kurzíva" - -#: src/generic/dcpsg.cpp:1866 src/generic/prntdlgg.cpp:289 -#: src/generic/prntdlgg.cpp:499 -msgid "Landscape" -msgstr "Na ¹íøku" - -#: src/generic/prntdlgg.cpp:515 -msgid "Left margin (mm):" -msgstr "Levý okraj (mm):" - -#: src/generic/dcpsg.cpp:2391 -msgid "Legal 8 1/2 x 14 in" -msgstr "Legal 8 1/2 x 14 in" - -#: src/generic/dcpsg.cpp:2390 -msgid "Letter 8 1/2 x 11 in" -msgstr "Letter 8 1/2 x 11 in" - -#: src/generic/fontdlgg.cpp:220 -msgid "Light" -msgstr "Tenké" - -#: src/gtk/filedlg.cpp:177 src/msw/filedlg.cpp:352 -#, c-format -msgid "Load %s file" -msgstr "Naèíst soubor %s" - -#: src/common/log.cpp:720 -#, c-format -msgid "Log saved to the file '%s'." -msgstr "Log ulo¾en do souboru '%s'." - -#: src/gtk/mdi.cpp:321 -msgid "MDI child" -msgstr "MDI child" - -#: src/common/mimetype.cpp:1203 -#, c-format -msgid "Mailcap file %s, line %d: incomplete entry ignored." -msgstr "Soubor Mailcap %s, øádek %d: nekompletní polo¾ka ignorována." - -#: src/common/mimetype.cpp:968 -#, c-format -msgid "" -"Mime.types file %s, line %d: extra characters after the field value ignored." -msgstr "Soubor Mime.types %s, øádka %d: pøebyteèné znaky za hodnotou políèka ignorovány." - -#: src/common/mimetype.cpp:941 -#, c-format -msgid "Mime.types file %s, line %d: unterminated quoted string." -msgstr "Soubor Mime.types %s, øádka %d: neukonèený uzávorkovaný øetìzec." - -#: src/generic/fontdlgg.cpp:212 -msgid "Modern" -msgstr "Modern" - -#: src/generic/dirdlgg.cpp:226 -msgid "Mounted Devices" -msgstr "Pøipojená zaøízení" - -#: src/generic/dirdlgg.cpp:225 -msgid "My Home" -msgstr "Domovský adr" - -#: src/generic/dirdlgg.cpp:342 -msgid "New..." -msgstr "Nový..." - -#: src/generic/msgdlgg.cpp:131 -msgid "No" -msgstr "Ne" - -#: src/common/resourc2.cpp:814 src/common/resourc2.cpp:969 -#: src/common/resource.cpp:2162 src/common/resource.cpp:2317 -msgid "No XBM facility available!" -msgstr "Chybí podpora XBM!" - -#: src/common/resourc2.cpp:830 src/common/resource.cpp:2178 -msgid "No XPM facility available!" -msgstr "Chybí podpora XPM!" - -#: src/common/resourc2.cpp:991 src/common/resource.cpp:2339 -msgid "No XPM icon facility available!" -msgstr "Chybí podpora XPM ikon!" - -#: src/generic/helphtml.cpp:254 -msgid "No entries found." -msgstr "Nenalezeny ¾ádné polo¾ky." - -#: src/generic/fontdlgg.cpp:216 src/generic/fontdlgg.cpp:219 -msgid "Normal" -msgstr "Normální" - -#: src/generic/choicdgg.cpp:301 src/generic/colrdlgg.cpp:231 -#: src/generic/dcpsg.cpp:1874 src/generic/dirdlgg.cpp:340 -#: src/generic/fontdlgg.cpp:260 src/generic/msgdlgg.cpp:138 -#: src/generic/prntdlgg.cpp:110 src/generic/prntdlgg.cpp:316 -#: src/generic/prntdlgg.cpp:472 src/generic/textdlgg.cpp:136 -#: src/gtk/filedlg.cpp:125 -msgid "OK" -msgstr "OK" - -#: src/generic/prntdlgg.cpp:295 -msgid "Options" -msgstr "Nastavení" - -#: src/generic/prntdlgg.cpp:291 src/generic/prntdlgg.cpp:500 -msgid "Orientation" -msgstr "Orientae" - -#: src/common/prntbase.cpp:693 -#, c-format -msgid "Page %d" -msgstr "Strana %d" - -#: src/common/prntbase.cpp:691 -#, c-format -msgid "Page %d of %d" -msgstr "Strana %d z %d" - -#: src/generic/prntdlgg.cpp:457 -msgid "Page Setup" -msgstr "Nastavení stránky" - -#: src/generic/prntdlgg.cpp:84 -msgid "Pages" -msgstr "Strany" - -#: src/generic/prntdlgg.cpp:281 src/generic/prntdlgg.cpp:629 -msgid "Paper size" -msgstr "Velikost papíru" - -#: src/gtk/utilsgtk.cpp:315 -msgid "Pipe creation failed" -msgstr "Nelze vytvoøit pipe" - -#: src/common/prntbase.cpp:111 -msgid "Please wait..." -msgstr "Èekejte prosím..." - -#: src/generic/dcpsg.cpp:1865 src/generic/prntdlgg.cpp:288 -#: src/generic/prntdlgg.cpp:498 -msgid "Portrait" -msgstr "Na vý¹ku" - -#: src/generic/dcpsg.cpp:338 -msgid "PostScript" -msgstr "PostScript" - -#: src/generic/prntdlgg.cpp:159 -msgid "PostScript file" -msgstr "soubor PostScript" - -#: src/generic/dcpsg.cpp:1907 -msgid "PostScript:" -msgstr "PostScript:" - -#: src/generic/dcpsg.cpp:1870 -msgid "Preview Only" -msgstr "Pouze náhled" - -#: src/generic/prntdlgg.cpp:71 -msgid "Print" -msgstr "Vytisknout" - -#: src/generic/printps.cpp:165 -msgid "Print Error" -msgstr "Chyba tisku" - -#: src/common/docview.cpp:785 -msgid "Print Preview" -msgstr "Náhled tisku" - -#: src/common/prntbase.cpp:633 src/common/prntbase.cpp:655 -#: src/common/prntbase.cpp:673 -msgid "Print Preview Failure" -msgstr "Chyba bìhem vytváøení náhledu." - -#: src/generic/prntdlgg.cpp:90 -msgid "Print Range" -msgstr "Rozsah" - -#: src/generic/prntdlgg.cpp:276 -msgid "Print Setup" -msgstr "Nastavení tisku" - -#: src/generic/prntdlgg.cpp:303 -msgid "Print in colour" -msgstr "Tisknout barevnì" - -#: src/generic/prntdlgg.cpp:306 -msgid "Print spooling" -msgstr "Tisková fronta" - -#: src/generic/dcpsg.cpp:1869 src/generic/prntdlgg.cpp:78 -msgid "Print to File" -msgstr "Tisknout do souboru" - -#: src/common/prntbase.cpp:349 -msgid "Print..." -msgstr "Tisknout..." - -#: src/generic/dcpsg.cpp:1880 -msgid "Printer Command: " -msgstr "Pøíkaz tisku: " - -#: src/generic/dcpsg.cpp:1885 -msgid "Printer Options: " -msgstr "Nastavení tiskárny: " - -#: src/generic/dcpsg.cpp:306 -msgid "Printer Settings" -msgstr "Nastavení tiskárny" - -#: src/generic/prntdlgg.cpp:308 -msgid "Printer command:" -msgstr "Pøíkaz tisku:" - -#: src/generic/prntdlgg.cpp:76 -msgid "Printer options" -msgstr "Nastavení tiskárny" - -#: src/generic/prntdlgg.cpp:312 -msgid "Printer options:" -msgstr "Nastavení tiskárny:" - -#: src/generic/prntdlgg.cpp:475 -msgid "Printer..." -msgstr "Tiskárna..." - -#: src/common/prntbase.cpp:110 src/common/prntbase.cpp:152 -msgid "Printing" -msgstr "Tisk" - -#: src/common/prntbase.cpp:124 -msgid "Printing Error" -msgstr "Chyba tisku" - -#: src/common/log.cpp:326 -msgid "Program aborted." -msgstr "Program pøeru¹en." - -#: src/common/log.cpp:672 -msgid "Question" -msgstr "Otázka" - -#: src/msw/registry.cpp:435 -#, c-format -msgid "" -"Registry key '%s' is needed for normal system operation,\n" -"deleting it will leave your system in unusable state:\n" -"operation aborted." -msgstr "" -"Registry key '%s' je potøeba k normálnímu bìhu systému,\n" -"pokud ho sma¾ete, systém bude nestabilní:\n" -"operace pøeru¹ena." - -#: src/generic/helphtml.cpp:259 -msgid "Relevant entries:" -msgstr "Související polo¾ky:" - -#: src/msw/filedlg.cpp:329 -#, c-format -msgid "Replace file '%s'?" -msgstr "Nahradit soubor '%s'?" - -#: src/generic/prntdlgg.cpp:521 -msgid "Right margin (mm):" -msgstr "Pravý okraj (mm):" - -#: src/generic/fontdlgg.cpp:210 -msgid "Roman" -msgstr "Roman" - -#: src/gtk/filedlg.cpp:193 src/msw/filedlg.cpp:352 -#, c-format -msgid "Save %s file" -msgstr "Ulo¾it soubor %s" - -#: src/common/docview.cpp:198 -msgid "Save as" -msgstr "Ulo¾it jako" - -#: src/common/log.cpp:630 -msgid "Save log contents to file" -msgstr "Ulo¾it obsah logu do souboru" - -#: src/generic/fontdlgg.cpp:213 -msgid "Script" -msgstr "Script" - -#: src/common/docview.cpp:1243 -msgid "Select a document template" -msgstr "Vyberte ¹ablonu dokumentu" - -#: src/common/docview.cpp:1266 -msgid "Select a document view" -msgstr "Vyberte zobrazení dokumentu" - -#: src/common/docview.cpp:1168 src/common/docview.cpp:1198 -msgid "Select a file" -msgstr "Vyberte soubor" - -#: src/generic/dcpsg.cpp:1868 -msgid "Send to Printer" -msgstr "Poslat na tiskárnu" - -#: src/generic/prntdlgg.cpp:80 -msgid "Setup..." -msgstr "Nastavení..." - -#: src/common/layout.cpp:1326 -msgid "Sizer error" -msgstr "Sizer error" - -#: src/generic/fontdlgg.cpp:218 -msgid "Slant" -msgstr "Sklonìné" - -#: src/common/docview.cpp:252 -msgid "Sorry, could not open this file for saving." -msgstr "Tento soubor nelze otevøít pro zápis." - -#: src/common/docview.cpp:283 src/common/docview.cpp:289 -msgid "Sorry, could not open this file." -msgstr "Tento soubor nelze otevøít." - -#: src/common/docview.cpp:259 -msgid "Sorry, could not save this file." -msgstr "Tento soubor nelze ulo¾it." - -#: src/common/prntbase.cpp:655 -msgid "Sorry, not enough memory to create a preview." -msgstr "Nedostatek pamìti na vytvoøení náhledu." - -#: src/common/log.cpp:781 -msgid "Status: " -msgstr "Status: " - -#: src/generic/fontdlgg.cpp:214 -msgid "Swiss" -msgstr "Swiss" - -#: src/generic/fontdlgg.cpp:215 -msgid "Teletype" -msgstr "Teletype" - -#: src/common/docview.cpp:1243 -msgid "Templates" -msgstr "©ablony" - -#: src/generic/dirdlgg.cpp:231 -msgid "Temporary" -msgstr "Doèasný" - -#: src/generic/dirdlgg.cpp:223 -msgid "The Computer" -msgstr "Poèítaè" - -#: src/generic/dirdlgg.cpp:447 -msgid "The directory " -msgstr "Adresáø " - -#: src/msw/thread.cpp:719 -msgid "" -"Thread module initialization failed: can not store value in thread local " -"storage" -msgstr "" -"Thread module initialization failed: can not store value in thread local " -"storage" - - -#: src/gtk/threadpsx.cpp:708 -msgid "Thread module initialization failed: failed to create pthread key." -msgstr "Thread module initialization failed: failed to create pthread key." - -#: src/msw/thread.cpp:705 -msgid "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" -msgstr "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" - -#: src/generic/prntdlgg.cpp:101 -msgid "To:" -msgstr "Do:" - -#: src/generic/prntdlgg.cpp:530 -msgid "Top margin (mm):" -msgstr "Horní okraj (mm)" - -#: src/generic/fontdlgg.cpp:246 -msgid "Underline" -msgstr "Podtr¾ené" - -#: src/common/resourc2.cpp:305 src/common/resourc2.cpp:319 -#: src/common/resourc2.cpp:335 src/common/resourc2.cpp:349 -#: src/common/resourc2.cpp:1378 src/common/resourc2.cpp:1392 -#: src/common/resourc2.cpp:1408 src/common/resourc2.cpp:1422 -#: src/common/resource.cpp:1653 src/common/resource.cpp:1667 -#: src/common/resource.cpp:1683 src/common/resource.cpp:1697 -#: src/common/resource.cpp:2726 src/common/resource.cpp:2740 -#: src/common/resource.cpp:2756 src/common/resource.cpp:2770 -msgid "Unexpected end of file whilst parsing resource." -msgstr "Neoèekávaný konec souboru bìhem zpracování resource" - -#: src/common/mimetype.cpp:985 -#, c-format -msgid "Unknown field in file %s, line %d: '%s'." -msgstr "Neznámá polo¾ka v souboru %s, øádka %d: '%s'." - -#: src/common/mimetype.cpp:363 -#, c-format -msgid "Unmatched '{' in an entry for mime type %s." -msgstr "Pøebyteèná '{' v popisu mime typu %s." - -#: src/common/docview.cpp:1665 src/common/docview.cpp:1680 -#: src/common/docview.cpp:1707 -msgid "Unnamed command" -msgstr "Nepojmenovaný pøíkaz" - -#: src/common/resourc2.cpp:687 src/common/resource.cpp:2035 -#, c-format -msgid "Unrecognized style %s whilst parsing resource." -msgstr "Neznámý styl %s bìhem zpracování resource" - -#: src/msw/clipbrd.cpp:220 src/msw/clipbrd.cpp:330 -msgid "Unsupported clipboard format." -msgstr "Nepodporovaný formát schránky." - -#: src/generic/dirdlgg.cpp:227 -msgid "User" -msgstr "U¾ivatel" - -#: src/generic/dirdlgg.cpp:228 -msgid "User Local" -msgstr "Local" - -#: src/common/valtext.cpp:144 src/common/valtext.cpp:155 -#: src/common/valtext.cpp:164 src/common/valtext.cpp:172 -#: src/common/valtext.cpp:180 src/common/valtext.cpp:189 -msgid "Validation conflict" -msgstr "Konflikt validace" - -#: src/generic/dirdlgg.cpp:229 -msgid "Variables" -msgstr "Promnìné" - -#: src/common/docview.cpp:1266 -msgid "Views" -msgstr "Pohledy" - -#: src/common/docview.cpp:368 src/common/resource.cpp:121 -msgid "Warning" -msgstr "Varování" - -#: src/common/log.cpp:336 -msgid "Warning: " -msgstr "Varování: " - -#: src/generic/dcpsg.cpp:1925 -msgid "X Scaling" -msgstr "Mìøítko v X" - -#: src/generic/dcpsg.cpp:1934 -msgid "X Translation" -msgstr "Translace v X" - -#: src/generic/dcpsg.cpp:1929 -msgid "Y Scaling" -msgstr "Mìøítko v Y" - -#: src/generic/dcpsg.cpp:1938 -msgid "Y Translation" -msgstr "Translace v Y" - -#: src/generic/msgdlgg.cpp:130 -msgid "Yes" -msgstr "Ano" - -#: src/common/docview.cpp:1777 -msgid "[EMPTY]" -msgstr "[NIC]" - -#: src/common/time.cpp:358 -msgid "am" -msgstr "am" - -#: src/common/CVS/Base/fileconf.cpp:1269 src/common/fileconf.cpp:1269 -#, c-format -msgid "attempt to change immutable key '%s' ignored." -msgstr "pokus o zmìnu nemìnného klíèe '%s' ignorován." - -#: src/common/string.cpp:1430 -msgid "bad index in wxArrayString::Remove" -msgstr "¹patný index ve wxArrayString::Remove" - -#: src/common/file.cpp:268 -#, c-format -msgid "can't close file descriptor %d" -msgstr "nemohu zavøít deskriptor souboru %d" - -#: src/msw/registry.cpp:403 -#, c-format -msgid "can't close registry key '%s'" -msgstr "nemohu zavøít klíè registru '%s'" - -#: src/common/file.cpp:520 -#, c-format -msgid "can't commit changes to file '%s'" -msgstr "Nemohu ulo¾it zmìny v souboru '%s'" - -#: src/common/file.cpp:215 -#, c-format -msgid "can't create file '%s'" -msgstr "nemohu vytvoøit soubor '%s'" - -#: src/msw/registry.cpp:386 -#, c-format -msgid "can't create registry key '%s'" -msgstr "nemohu vytvoøit klíè registru '%s'" - -#: src/msw/registry.cpp:467 -#, c-format -msgid "can't delete key '%s'" -msgstr "nemohu smazat klíè '%s'" - -#: src/common/CVS/Base/fileconf.cpp:742 src/common/fileconf.cpp:742 -#, c-format -msgid "can't delete user configuration file '%s'" -msgstr "nemohu smazat u¾ivatelský konfiguraèní soubor '%s'" - -#: src/msw/registry.cpp:492 -#, c-format -msgid "can't delete value '%s' from key '%s'" -msgstr "nemohu smazat hodnotu '%s' z klíèe '%s'" - -#: src/msw/registry.cpp:503 -#, c-format -msgid "can't delete value of key '%s'" -msgstr "nemohu smazat hodnotu klíèe '%s'" - -#: src/common/file.cpp:447 -#, c-format -msgid "can't determine if the end of file is reached on descriptor %d" -msgstr "nemohu zjistit, jestli byl dosa¾en konec souboru v deskriptoru %d" - -#: src/msw/registry.cpp:780 -#, c-format -msgid "can't enumerate subkeys of key '%s'" -msgstr "nemohu vyjmenovat podklíèe klíèe '%s'" - -#: src/msw/registry.cpp:735 -#, c-format -msgid "can't enumerate values of key '%s'" -msgstr "nemohu vyjmenovat hodnoty klíèe '%s'" - -#: src/common/file.cpp:413 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "nemohu zjistit délku souboru na deskriptoru %d" - -#: src/msw/utils.cpp:561 -msgid "can't find user's HOME, using current directory." -msgstr "nemohu najít u¾ivatelùv HOME, pou¾iji aktuální adresáø" - -#: src/common/file.cpp:327 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "nemohu vyprázdnit (flush) deskriptor %d" - -#: src/msw/registry.cpp:335 -#, c-format -msgid "can't get info about registry key '%s'" -msgstr "nemohu zjistit informace o klíèi '%s'" - -#: src/common/file.cpp:381 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "nemohu zjistit pozici v deskriptoru %d" - -#: src/common/file.cpp:254 -#, c-format -msgid "can't open file '%s'" -msgstr "nemohu otevøít soubor '%s'" - -#: src/common/CVS/Base/fileconf.cpp:186 src/common/fileconf.cpp:186 -#, c-format -msgid "can't open global configuration file '%s'." -msgstr "nemohu otevøít globální konfiguraèní soubor '%s'." - -#: src/msw/registry.cpp:361 -#, c-format -msgid "can't open registry key '%s'" -msgstr "nemohu otevøít klíè '%s'" - -#: src/common/CVS/Base/fileconf.cpp:198 src/common/fileconf.cpp:198 -#, c-format -msgid "can't open user configuration file '%s'." -msgstr "nemohu otevøít konfiguraèní soubor '%s'" - -#: src/common/CVS/Base/fileconf.cpp:646 src/common/fileconf.cpp:646 -msgid "can't open user configuration file." -msgstr "nemohu otevøít soubor s u¾ivatelskou konfigurací" - -#: src/common/file.cpp:294 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "nemohu èíst z deskriptoru %d" - -#: src/msw/registry.cpp:658 -#, c-format -msgid "can't read value of '%s'" -msgstr "nemohu èíst hodnotu '%s'" - -#: src/msw/registry.cpp:569 src/msw/registry.cpp:608 -#, c-format -msgid "can't read value of key '%s'" -msgstr "nemohu èíst hodnotu klíèe '%s'" - -#: src/common/file.cpp:515 -#, c-format -msgid "can't remove file '%s'" -msgstr "nemohu odstranit soubor '%s'" - -#: src/common/file.cpp:531 -#, c-format -msgid "can't remove temporary file '%s'" -msgstr "nemohu odstranit doèasný soubor '%s'" - -#: src/common/file.cpp:367 -#, c-format -msgid "can't seek on file descriptor %d" -msgstr "nemohu seekovat v deskriptoru %d" - -#: src/msw/registry.cpp:594 src/msw/registry.cpp:682 -#, c-format -msgid "can't set value of '%s'" -msgstr "nemohu nastavit hodnotu '%s'" - -#: src/common/CVS/Base/fileconf.cpp:594 src/common/fileconf.cpp:594 -msgid "can't set value of a group!" -msgstr "nemohu nastavit hodnotu skupiny!" - -#: src/common/textfile.cpp:229 -#, c-format -msgid "can't write file '%s' to disk." -msgstr "nemohu zapsat soubor '%s' na disk." - -#: src/common/file.cpp:312 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "nemohu zapisovat do deskriptoru %d" - -#: src/common/CVS/Base/fileconf.cpp:653 src/common/fileconf.cpp:653 -msgid "can't write user configuration file." -msgstr "nemohu ulo¾it u¾ivatelskou konfiguraci" - -#: src/common/intl.cpp:300 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "katalog pro doménu '%s' nenalezen." - -#: src/common/filefn.cpp:1497 -msgid "empty file name in wxFindFileInPath" -msgstr "prázdné jméno souboru ve wxFindFileInPath" - -#: src/common/CVS/Base/fileconf.cpp:1256 src/common/fileconf.cpp:1256 -#, c-format -msgid "entry '%s' appears more than once in group '%s'" -msgstr "polo¾ka '%s' se v '%s' vyskytuje víc ne¾ jednou" - -#: src/common/CVS/Base/fileconf.cpp:338 src/common/fileconf.cpp:338 -#, c-format -msgid "file '%s', line %d: '%s' ignored after group header." -msgstr "soubor '%s', øádka %d: '%s' ignorováno po hlavièce skupiny." - -#: src/common/CVS/Base/fileconf.cpp:357 src/common/fileconf.cpp:357 -#, c-format -msgid "file '%s', line %d: '=' expected." -msgstr "soubor '%s', øádka %d: oèekávám '='." - -#: src/common/CVS/Base/fileconf.cpp:384 src/common/fileconf.cpp:384 -#, c-format -msgid "file '%s', line %d: key '%s' was first found at line %d." -msgstr "soubor '%s', øádka %d: klíè '%s' byl poprvé nalezen na øádce %d." - -#: src/common/CVS/Base/fileconf.cpp:373 src/common/fileconf.cpp:373 -#, c-format -msgid "file '%s', line %d: value for immutable key '%s' ignored." -msgstr "soubor '%s', øádka %d: hodnota pro nemìnný klíè '%s' ignorována." - -#: src/common/CVS/Base/fileconf.cpp:307 src/common/fileconf.cpp:307 -#, c-format -msgid "file '%s': unexpected character %c at line %d." -msgstr "soubor '%s': neoèekávaný znak %c na øádku %d." - -#: src/common/date.cpp:373 src/common/date.cpp:391 src/common/date.cpp:405 -msgid "invalid date" -msgstr "¹patné datum" - -#: src/common/date.cpp:355 -msgid "invalid day" -msgstr "¹patný den" - -#: src/common/file.cpp:452 -msgid "invalid eof() return value." -msgstr "¹patná návratová hodnota eof()" - -#: src/common/log.cpp:685 -msgid "invalid message box return value" -msgstr "¹patná návratová hodnota message boxu" - -#: src/common/date.cpp:363 -msgid "invalid month" -msgstr "¹patný mìsíc" - -#: src/common/intl.cpp:431 -#, c-format -msgid "locale '%s' can not be set." -msgstr "locale '%s' nemù¾e být nastaveno" - -#: src/common/intl.cpp:295 -#, c-format -msgid "looking for catalog '%s' in path '%s'." -msgstr "hledám katalog '%s' na cestì '%s'." - -#: src/common/time.cpp:360 -msgid "pm" -msgstr "pm" - -#: src/common/string.cpp:1446 -msgid "removing inexistent element in wxArrayString::Remove" -msgstr "odstraòuji neexistující prvek ve wxArrayString::Remove" - -#: src/common/intl.cpp:519 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "øetìzec '%s' nenalezen v doménì '%s' pro locale '%s'." - -#: src/common/intl.cpp:524 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "øetìzec '%s' nenalezen v locale '%s'." - -#: src/common/CVS/Base/fileconf.cpp:1376 src/common/fileconf.cpp:1376 -#, c-format -msgid "unexpected \" at position %d in '%s'." -msgstr "neoèekávané \" na pozici %d v '%s'." - -#: src/common/log.cpp:362 -msgid "unknown log level in wxLog::DoLog" -msgstr "neznámá log level ve wxLog::DoLog" - -#: src/common/log.cpp:559 -msgid "unknown log level in wxLogGui::DoLog" -msgstr "neznámá log level ve wxLogGui::DoLog" - -#: src/common/file.cpp:362 -msgid "unknown seek origin" -msgstr "neznámý seek origin" - -#: src/common/docview.cpp:337 -msgid "unnamed" -msgstr "nepojmenovaný" - -#: src/common/docview.cpp:1009 -#, c-format -msgid "unnamed%d" -msgstr "nepojmenovaný%d" - -#: src/common/intl.cpp:305 -#, c-format -msgid "using catalog '%s' from '%s'." -msgstr "pou¾ívám katalog '%s' z '%s'." - -#: src/common/layout.cpp:1326 -msgid "wxExpandSizer has no parent!" -msgstr "wxExpandSizer has no parent!" - -#: src/common/prntbase.cpp:632 -msgid "" -"wxPrintPreviewBase::RenderPage: must use wxPrintPreviewBase::SetCanvas to " -"let me know about the canvas!" -msgstr "" -"wxPrintPreviewBase::RenderPage: musíte pou¾ít wxPrintPreviewBase::SetCanvas " -"a dát mi vìdìt o canvas!" - -#: src/common/filefn.cpp:1123 -msgid "wxWindows: error finding temporary file name.\n" -msgstr "wxWindows: chyba pøi hledání jména doèasného souboru.\n" diff --git a/locale/cz.mo b/locale/cz.mo deleted file mode 100644 index ebceb3394c73ab63d62827542d29828204c0c9d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23320 zcmds;3!Gh5eeXB&9-i_RL3V(=VCIkn_b@IrECN ze(vXf+Vjbp?_Q6+p8xe<|F!nYw@*9jogTl;5uSG*eB1G!cR$bndYVE#@0Bm|ycIBj zFM)T$Q{l(p(eQB>{vkAcU+b6_X*oqrIjzT2Ske+`_3_rYE8)Fq4& zd=-Bb|Df|f25GAI4AlEShibonq34|qH$llw7G4G43e`_vfY-opLFIQAopT0U1y$cZ z*a0^|rQZ%UZZTAUzZ+^i{tTW3e*!7mJA%#{fEPjKQ-*rK4%P0vpyciMpby^%m%`6E zejlnGClN^3dsjk4%G(B&|Lsuqz1PJ*3^(HcGVFtAEVKTdQ2p`&sCqx?{0E@&>7Y{- z-w98EH$k;yJJh)6pxXZd7yd9j3jY&O>7Rthz%Rq2;nPs*pMmO^??E4)Ok z?{?w$!x!LxAC!DQ*C)GRnL2&@_h)Zy`O-}=QA$+^HAk{1!|ss%Z2~g@t08fbX;o7 zITtGZN~rR#f@;?dj$5GgY|gO;_5Pcj|6Q;H|3{$Se-x_zPq_F$cj4cJuOs|>Q2CE_ z(pPY|<6EKH@g8_0{2)|6J_04bd!YLHX{hn|29&<|XQ=w0*k$W=E>t}(fhWMrq4He| zDcb9UKD^!W9>_oMll;+p(@^Q3b^d>X$K!v_@yLv=-$_vIJQohbm2e%Lf;-@6;gRs{ z%WVI>7%HDm$UpB&{;YswQ1!YCo&ukMyy|@kYQFsfY95`l%J%d5Q1ZV5D!*%?>bn7| zzXn|RR>xPslL()1{<`!3CRF|20rlQJQ1bf#q^aJ6@Iv?{D82FnsQR3=+UkQ#q56Li zDn17#Z*PE13GaTm6n??Q?}yjpKW>d(S2jZBUw|~xdk3TlZ!c7SKZMKR$xL3==cQ2d zBMT8>Z#UGs_YhP+J_%8&-hQZjPrAbD(N$3C`l0GO27UNy$M-<#{Xc@z8-EQ|{!ic% zc-l+tdUgd|j(-PKIj@7N_lF=!y{|!~@3_+Hmri&M{t#+B-wRKKUxAX#Z$g##edxm@ zS!^^;7ej@wfolH{)VS23%GnJm%6k~9f4>V^0=(ll?o&%qSs`rs=tv%BTRsS8(hc&2vdlyvxAAu@wFFXT& z3!V#q1SJP2-eC2|I;e4v;05qrsDAn+RJo5s<@Yp{96bxwt_$carCSZv-&aGmb3Igk zgDyUSlK%!g6TTl#!pGn)c-cBT?hioK|Fcm2{1vG7{UclgkEOGHxDqO#o1pZ?DirN@zkU>IzVC%E zfKNfm_m`mh`x{X0JF4HNyAU3WzY`t@uYfA=I;eRw1T`+B@Mt*c;$IEb&Ue7$;m6^% z@KbOY{s`Ux*WG00>=ZGQO z@5e!n^M%l~1FD{b@I?4ZsP{`y{n&s@;p?H^`zVy&`eV2peg`Vuu}lut<5VdBSy1wD zf#Y(=%Ut|bP;zwxTnF!lJK$I0kuXD~+Oq~qE_&hRa1eIE*Fn|m6Hxu~HMkN!3pIXc zyxi8~a;SP;3)NriT=-U~`rYRIA(T8sQ0;HPli(Yj|6b>RFI4>=hRXL5DEWO1s$P#n z)oUNr{6Be%)st)Bh4@FH`myf(_dv~yPs26vFQEF>8?o=LfT(7#A1dFs!i(V}Fay61 zuY^Z$weMXEl`aRD!8@VG>k+sbei=$%{SvC2v$t72v=&NU%24rdhw8@cEN0(c5SbtOCvz7+ODz4uzEbRU9C;8Rfbcov=xPuXe5 z{~~w_{?$-=wg;-8ego#<9Z>mC!z19Qa7W|bhSTpT+#lo4CUQ~%{BFQa;C_m0{~@~O z*TdgSNPjNwMi+LEvtyZSlkmh&F2$|D?$DK$-=wcu@Byf`=2<; z%J1Md-{^ucjId>`)1xMRroAK_WJ<9OEZIScQ%;h*AU&))^#;=+Y}xFOvC!p-3H zJB4&#f@eX^ff#oHcP##kVfuTBhih=(!+iqx54iW@^m{E%`a-{7SeSL zxbNf6A#eR&jGM;YhWiQbQCuhPm$>wIBo9-#SK_{i)9=qMysyAb?)jT=4eo``FZ?EM zEp8R=7@U3)?!}aUJiG&U2=~vpkK)cF{3iHjoPG`5=gm{=&r>}9E^Z}hkH9_YqCN@# z&OJW^U*w)qf!Gv@1{kV(ppQr$Sr@J^k{|uMc1HZHN$Hjes$6opQ{VVQ4+_!LF z!##_;1*hM;aTVMdymvD0Qrt`Ne-PLH`*fRU8P8{uZoq|g@O&!If9Cvu32W~8DB`}( z^9tO5#Vx_T5qAPE#C73{xW{q&y}`nq0sWPG7VdY?S2+F=yc>6(^ZW38%K8)dLKwhD zaJz6P;q-eA?j7cd^GJ9!>D~^%;lj4USGebw!*}8?AkDkrM{qlF|ANcl^!pI*1me?Q zorgbko|6cF56?fsUFO2d@ErGCg%`Nz3*iH}ALB0Mz2A4?k2#JxE{9L!u6F+Kz*pn` z0=LJ7jXIu6J|E`!bIyM}e*OL)_gUPla7ze#32r^lD{+5-^Ey_nkNrkm^CyCO=vOB~ zKM8NI<&!Yym&2r#uT=7JR9U;y>&V4n#gF2uAMVaqsvW&a7*s<)UnOjEt>>=@lO#_3 zrNvygzqGQ_^Vem1Gu}nHa4a8%g!rXerRtA{eh~Tjs2YxkNyZ~M&%dZ16!SUbRRMuN zny;3EGF7R>wImz*m2#NPkL9yLmD;q@kyAE~4wtMl5!Z@26&uw`VUo|9mtANa6&pSo zRD*ov_l)%R_xst2APKV7FsUq>FesKMg3+*=&;A=z(>tybb6)KB^TlG0eTnW8p1M#@GY)hDn?O)$pHo~}NGNjlRDO7)bZ~4;7az?bmSXGn2 zU!KV<@AUKIQOvkzY%Kk5``YxqUkWRgU_A8c;-DChw-S|;cr+NLqckc}kTiT%EaP>O zH=|Oe%9SePlI`>_%17B^Ef@N<)D3*cNP065q-HXF6Q`CRfS4HGL9szD3w-rd%eqwVUT#eh`W+!?Q{w2VN~_w(OvXhW^QDu zRt*{JIj>aXxLD1Xji4rRu^Am2VbUB_b2W?n9P>6?jTs{~zL|17tok{|RY@deLDj_j zV~KjPm@kjUK|)*7f|b6U48QA-R0>q_Y-nUp!kmxjWz{b9HxKkFQlT-OY}&uX z>rK@t)ypn#)A16)KqZgm$9)P%RH-EDq*t@Ww7k7)1WWCizeJ+5Ch4Gf((6?YNlA34a zr-%{a3Q|HAZs{pAby$v=9%KF-Wvfv)Nv$dljGUmM({QOhy`QZmiQ1XYfmkEfmd?zw zz#ksk=&I7C@w1Dh5go)d8z)Jv%;MNq#RN?eAPcUgt%936FCSU;EO8D-CBSNBQ?yvJ zN>=BlRZjI)sxCcel?{cH{`zz=@YaW;wQ>GZDbz_l^qNurY@^O|w%}x-=EuHK6}D%M zmS~E=(#l%W4#eXlXlvAMYTIdPO%UXqpC7|CTuw&>#iDwlPkm^*SMyz?qpof(Sd?b9 zt5UK8RFHcXSmU!gf~+)pR@5f*)d{0plyg0w#E}urdVtm()oO@wg5aqm#{!l|j8bFE zQdgsqSOUw~1x9h8ADW2lwty62TjX6j)QZZJ*O2xg@}tyH(x`L<{~6`Bq7y?JpOrql#63)S2d zIr_(%jIEfkRK|2LlWC!1%_?`xy1|y}Mca04h?8-a5o%qd&Xc>hIO~6aRn3}Y>oH>1 zwpH=po=-n&df{A#f9=|s^>5KOHz&EV#Ej{+Xxa*zsA)7A&6#OywPI75!`@m+?av7F25mGnw0=;OIo7Z{yh#{ZTI5?P*L}k}zwlH^kVLGRkA@j^ajGQ>TDZ*ARMPpuJ%`7wuX(z>MPI#q^e3&H3L_h!2I|`)srBq zMpE*4#*Kb7I}(kgQTsUTytIKw-#u}OK^$wd^O-k7qylCv(Yq8zT zNuy`H!8jKt5m2I>zn(Qe8&>%%e-mgYQ1spHf)5>{(v6H(zW zry70*%hemsms#tj09&hsH*A+^?F-br;W)v7$ya%(R7bK&zTEz31)&wy?G0Pg$luJ# z0v-$p``2wOO^ELjxtR17&E8r*6Y9c883Y^P)R7AFazZ=&oEVKzW>#liO{0p|QD~JE^P*&Lw}NdpW=9+Q zZY+pJ$~6EZ2zTN%@<@?Zc_SF3jZOqdM`6vKn%Pd7_NkLG_2^07K785*5*Q<~nOQS| z$_b;mHa@}GQb}hLGDobv5w!LYBh24g1t}bv#sRi2?c1huG{w`9vxZB$rmuE{OM}J|W^~Kv3 zHP7ZGCFnvk&WoC#+oA%8xZ1pH1))%reAc>S7q)E?hetXF@|VAgZ9Th`$nD}KLnRh2 zU!%ut$WRGc`nl99#?RqYJRTvQIx=jSm2Gj8cw1Ddl^J*~J}p~_VyFR`b3S7J_yZa> zZ@UhV?O5p=$)&Za?!SHnB$8v~*dz5|1KH%~74)-IF9i!)~9tySFey z*q7NIj|!?sPE$;epl?tLq%iv%y0uRG>So8?M# zq1fvQ^Aea& zK3v~c7>R{yGb=ps$CJ2LUgEmmexPVhQt6mnzEVg#!A3iiVnM01DGt+@<~xsVjFfi{ zTLy)0rlvU>wcj_S;Or+Kb5JXtKe>AYdTayY-X9GI)d|n;U(A~U-(mRF!?MW&TSY1Q zF$c$b%e2l4SF=@Z+adF|+qJkojeTQ+Ral=27kr7+l60k8I7K?dY+kjSN;pk3=Sn^Y zKyE9x@QZf5)G>$C>CH-YV`io`X?@-Emu6=bt=25fUhdw*tj8B=7G@guCE_p`i zl@xPApL-c%AJfbnvKbLrX!*j3*DJF{h#Y3gmdb9cW5!$bty!tsy7xl$>4K+sHD|}j z?#7}Iiz<9_H(T}YZgX7eEuLayEk8Gro!Cj9k9xdlteKRo#!iXb@1?fUMk}fL8EjBzZT;49C@d2|=9{*!998O5Ia8Oq&rgV<-y877+?>c_ zEn{B$GT+>CU=Ec`yvn(mnHo=GUz-yeWe<-mZ|~bO(!Y7AV|eq{E_29CY!@eK)OPhX*Id)JYE9SbYy8z$cCWhp(p9Th zts-I97S0Tmi%YkouV+iw;O4INJuHLWgZ-E8+&t9RF%VR$U8(UEC*A&rZ36@TP|skW ze{J7jPyfITJ?qzR=^Gijo}|%ujSlMC8V03qf1qb*<2Kdp+JS)^iunx3hu3!u_7C>8 zYQH+Os-xF_=IYvtVcJd0cULcCo0X4VX67mL;=0}&d$x@9ZEdA=-z>WNIHOU2b^Coo zy_?tf4{hw=!o=V-_IWw39t=mLX}^4MrozrEuJf2o*8^RZVDqX;Q`;4G^iJrc*q?~~ zdZSv859X`7E0LXOj0SCYCCUdgQKmTey2Ok>dPqxs>$1cy?lEX*T8$3bTM%J1lU|M} zXumq=;>5y2h-h;7AquRX)rxvYGk>Y2apVuYzSgTvT`qm62~FWTRJMWVJV@2)>Y>fVBz;Uq2; zgWPj2j@PFShPz4!bS+{!(Kwh2>Sjc|FDy*gr%UF@Vb;wE)7<|jcO!-mY6IjK{Mz0; zy%82Gg+nEOG)Sn2w|x(1LI?BZco%yEX~%-AZOtmK73H{4%lT9FxHyBf-Z~WC*6C8H zlgcxD5Mu61^cuMhxG*7Un|DzHsi4b(VmK8>Y=3KXET4&r^i5nyf?e)r#Io&;Qox68 z&JauSM6Ee7=6tW48|!XI%nf$mCeqBNb}{j2q#cZgU-yF?A~bz4Z(5ort2cI)^nHyk z3w(}mSd~iCRo5E`JJ$}9=}409%1iT2;wh#DQ{7yT(1*W8?nR{aG;+9bIUKLgD<>X} z_!Nx2Se!t@893e39@VUnu9UBXJ4)uWk%olhLN&;e7^<$R@P??$-9<#-DH%h}HY zC6?oT$UbJDUn|7XKFtMFs~|0@J~dPIr!>3L#yS<}YM%yI%y66Q5q4N+4MkdCt(zUq zS6m~|u7zM~R{AK|MX_wB?EQ#+k}j@76x^kjg7ew2Z1zeNpkx?tdncm6g||YKN4@d! zJiRc{Ok1;KX4HgcOHCg_Y|T+WuB}npZ%!1DV+~p0?M!NWI5Bp~IEl)diW*I-+Y&B< z!**#gm+um9CyJGJa$5p%+*R67#prdrqgETaaue?@H2hghz=-YHR!u#p8!ec2QOwzO zwVvdt()LC<*%KCN3yQ$39JJkhi0NLcTM`9*aNVR!65VMnnaumAsx2iv?}|jTH#8`^ zAW`5lg8j5@j@r^|3Tz+$b6t;c4WEh=Zr4mPf1>FLzB3~#1#?ZJB`H<*Z5)JRf4g_k zsL_52qm&P##V7^M$f=o%X5G|uiLJZQd99q7#M1HcXfi!TtfVqz%`LT3OqC9B^r>~H z{wvg}F3BWmja;EM=9-oc&H12EtxZdHTTPUvbn_^!LYwN;eTXjf|E>zlg~YTR?(Y!}72FjFOc~5&i9AmTXMJ8v=|nTp()w*rbr1UUP^$FZ)rZYf zIrQow?hl%!fJ&zJ87rEx&)k$(_che7%~9kibKX@4YnN$VtW2|UGD{~0Ue;zs<8(r~ zlWprR)>2Jnj%sYlVW(f<2#X%!de3xo<@1K@nz=un<=#!^t#r;uVWl+VPocuNo94^P z;zNjZ1-DDgiadH?f)F;KLB!$}w%v$efht7@qC?pUyAsS;9m4>l`cX}`bM2nR*pzbMwK?u-cR{5!2?DFYUVUjYcDk`C>`e!@0@&>3B&g@O2j85?W`YOo*Q}g71HirBn0?QI zPj(Yrg7KOBnh2Pag%vB)Y0ZV~o!wr)`Jxj|vsFBhYy8Sv4=p?TV;s#av?0>rQ-*A1 zyUH5hR7<92>R4xizh~xPp~h7PG-12t{k-oxYz?EreljvPle5{DR?M9TjTrYlTNaV& zNbUxBvO|L%aGt$B79P5>?Jw#!_UVD(bFeVMxlJ$v%4YXFl^ySta2={)0{W9+} zDCw5X?lz|ahAhX4B_`QT zkhwIGj(o%4JDp=|>Q(`=)+U7|S$80YjQOcrxLXi>Hs-1VdYz-G=951qZ!;}+f!WpA z1PyO{$VQHv4IE6BXObF47n!6@bywzwg!fcfFzXl#NoA&FTF8#+&>rNgb@RbH;I(8MZ8K7LYm`zw)yX;$AouQ>&Z&;5G zcnZ+L4Civ(6ER*HVr|0P3^P|3>}JDchMs73n?l&)Hx>+JV{P^*_O%7xS|Et8w>HZ_ zUvLm-?n+o2M|-=?)#<51z_oY-Imzi7!COp?C;^@YRuNCX`dlZ zHf9QwG|;qMAkLO6dBrr7aq9*YsY|Dk#$ndYi2~&u;QRtr$Y&N;^TBGz*);>K8KajjL4KFL)RmMqq@&>qZ5y`yTwtQ%G{Td<#}Fafe! zhh~}^Uf!9CrZLsiwTg|1J%?mtVAeIaE?EnDI9;8l%>{`%ubCs4^kzhjw>0YPzxkA6 z7aD6cyMovma5I8bn!t-z$u2GSb$fD^TDmNF+uZpdtF>-MY%D`v;6m>pgZhYhz5_4k^~5mGsP zJ@>Vxs-a>)v>)TDz!L2~Pc_&5jJHQN&LPgab?b#q<-+$P$VCT+&ba4WdqFqy_@LAr zlbkm@jY?xMjn;Jg5@!P2DQK#vQ^GU{jboZeb0KuIf5Er~N^n(h$6h8u`>QUz?VNV@ zNzVeMxmT>Alb%wxb!A%PIq6z`ohER{n4Rp;E7fA&A4S+uK`aW#Cdm)pyAbmr%F$?Xyh(&Uko6cokY5PW?gV6Nt>`eNCvHPdm`l($4Ok}$# z&U!12m_OWc4)ZfGyXDpnEPb~XnX_w|lZRRD)dyK~j=EU4M`k(4DoJb6KJVs5Vs@7E zQDaG32X^Ka?1Q!;&~j|AU8KVwpwCSebV#(|1aXQbl~XLx_AbtQ&F@KA4_vy?L9c4* zw|zOW0=wUx9ohPDzAUvk=juheESVfQRI1y&>WxaFq3@4=eI`rJdztU-k!oIB+vcub ztzDB&-u#IoUj_D|^Ib1x7JIk(v1|EtoJTEEKvQ&$#$i=V>ig+j^QB0g%m&dM^evi! z9Z*iK=rzWI#e_9Hoe!<5W3INf5M$U|C-OMmGZM&JVc#5{088(rQPiZUvKUp_3_#oc0re^zCwaodN zKE=-JR{KTi*T1EqkEP8Myu)49K#fdu;LVxpf!qO3@VS1YD;%?~Xk?qmsYVj8LUnem QF9b5~Wji@dkm>OLFEv, YEAR. -# -#, fuzzy -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 \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: src/generic/dirdlgg.cpp:461 src/generic/dirdlgg.cpp:489 -msgid "" -"\n" -"(Do you have the required permissions?)" -msgstr "" -"\n" -"(Máte potøebná pøístupová práva?)" - -#: src/generic/dirdlgg.cpp:449 -msgid "" -"\n" -"does not exist\n" -"Create it now?" -msgstr "" -"\n" -"neexistuje\n" -"Chcete ho vytvoøit?" - -#: src/common/log.cpp:209 -#, c-format -msgid " (error %ld: %s)" -msgstr " (chyba %ld: %s)" - -#: src/common/date.cpp:384 src/common/date.cpp:399 -msgid " B.C." -msgstr " pø.n.l." - -#: src/common/resourc2.cpp:265 src/common/resourc2.cpp:1334 -#: src/common/resource.cpp:1613 src/common/resource.cpp:2682 -#, c-format -msgid "#define %s must be an integer." -msgstr "#define %s musí být integer." - -#: src/common/valtext.cpp:143 src/common/valtext.cpp:154 -#, c-format -msgid "%s is invalid." -msgstr "%s je neplatný." - -#: src/common/resourc2.cpp:709 src/common/resource.cpp:2057 -#, c-format -msgid "%s not a bitmap resource specification." -msgstr "%s není specifikace bitmap resource." - -#: src/common/resourc2.cpp:864 src/common/resource.cpp:2212 -#, c-format -msgid "%s not an icon resource specification." -msgstr "%s není specifikace icon resource." - -#: src/common/valtext.cpp:188 -#, c-format -msgid "%s should be numeric." -msgstr "%s má být èíslo." - -#: src/common/valtext.cpp:163 -#, c-format -msgid "%s should only contain ASCII characters." -msgstr "%s má obsahovat pouze ASCII znaky." - -#: src/common/valtext.cpp:171 -#, c-format -msgid "%s should only contain alphabetic characters." -msgstr "%s má obsahovat pouze znaky abecedy." - -#: src/common/valtext.cpp:179 -#, c-format -msgid "%s should only contain alphabetic or numeric characters." -msgstr "%s má obsahovat pouze znaky abecedy nebo èíslice." - -#: src/common/resourc2.cpp:357 src/common/resourc2.cpp:1430 -#: src/common/resource.cpp:1705 src/common/resource.cpp:2778 -#, c-format -msgid "%s: ill-formed resource file syntax." -msgstr "%s: chybná syntaxe resource souboru." - -#: src/common/log.cpp:633 -msgid "&Close" -msgstr "&Zavøít" - -#: src/common/log.cpp:634 -msgid "&Log" -msgstr "&Log" - -#: src/common/docview.cpp:1687 src/common/docview.cpp:1698 -msgid "&Redo" -msgstr "&Zopakovat" - -#: src/common/docview.cpp:1681 src/common/docview.cpp:1708 -msgid "&Redo " -msgstr "&Zopakovat " - -#: src/common/log.cpp:630 -msgid "&Save..." -msgstr "&Ulo¾it..." - -#: src/common/docview.cpp:1693 -msgid "&Undo" -msgstr "Z&pìt" - -#: src/common/docview.cpp:1668 -msgid "&Undo " -msgstr "Z&pìt " - -#: src/common/config.cpp:393 -#, c-format -msgid "'%s' has extra '..', ignored." -msgstr "'%s' obsahuje pøebyteèné '..', ignoruji." - -#: src/common/intl.cpp:338 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "'%s' není katalog pøekladù." - -#: src/common/textfile.cpp:132 -#, c-format -msgid "'%s' is probably a binary file." -msgstr "'%s' je zøejmì binární soubor." - -#: src/common/resourc2.cpp:297 src/common/resourc2.cpp:1370 -#: src/common/resource.cpp:1645 src/common/resource.cpp:2718 -msgid "" -", expected static, #include or #define\n" -"whilst parsing resource." -msgstr "" -", oèekávám static, #include nebo #define\n" -"whilst parsing resource." - -#: src/generic/dcpsg.cpp:2389 -msgid "A3 297 x 420 mm" -msgstr "A3 297 x 420 mm" - -#: src/generic/dcpsg.cpp:1210 src/generic/dcpsg.cpp:1214 -#: src/generic/dcpsg.cpp:1800 src/generic/dcpsg.cpp:1804 -#: src/generic/dcpsg.cpp:2313 src/generic/dcpsg.cpp:2388 -#: src/generic/printps.cpp:239 src/generic/printps.cpp:243 -msgid "A4 210 x 297 mm" -msgstr "A4 210 x 297 mm" - -#: src/generic/fontdlgg.cpp:329 -msgid "ABCDEFGabcdefg12345" -msgstr "ABCDEFGabcdefg12345" - -#: src/generic/colrdlgg.cpp:236 -msgid "Add to custom colours" -msgstr "Pøidat k u¾ivatelským barvám" - -#: src/generic/prntdlgg.cpp:83 -msgid "All" -msgstr "V¹e" - -#: src/common/log.cpp:670 -#, c-format -msgid "Append log to file '%s' (choosing [No] will overwrite it)?" -msgstr "Pøipojit log k souboru '%s' (pokud zvolíte [Ne], soubor pøepí¹ete)?" - -#: src/gtk/window.cpp:2716 -msgid "Application Error" -msgstr "Chyba aplikace" - -#: src/common/resourc2.cpp:844 src/common/resource.cpp:2192 -#, c-format -msgid "Bitmap resource specification %s not found." -msgstr "Bitmap resource %s nenalezen." - -#: src/generic/fontdlgg.cpp:221 -msgid "Bold" -msgstr "Tuèné" - -#: src/generic/prntdlgg.cpp:536 -msgid "Bottom margin (mm):" -msgstr "Dolní okraj (mm):" - -#: src/common/log.cpp:631 -msgid "C&lear" -msgstr "&Vymazat" - -#: src/msw/thread.cpp:183 -msgid "Can not create event object." -msgstr "Nemohu vytvoøit event object." - -#: src/msw/thread.cpp:99 -msgid "Can not create mutex." -msgstr "Nemohu vytvoøit mutex." - -#: src/msw/tooltip.cpp:199 -msgid "Can not create tooltip control" -msgstr "Nemohu vytvoøit tooltip" - -#: src/common/filefn.cpp:1168 src/common/filefn.cpp:1282 -#, c-format -msgid "Can not enumerate files in directory '%s'" -msgstr "Nemohu zjistit soubory v adresáøi '%s'" - -#: src/msw/clipbrd.cpp:549 -#, c-format -msgid "Can not get data in format '%s' from clipboard." -msgstr "Nemohu vyjmout data ve formátu '%s' ze schránky." - -#: src/gtk/threadpsx.cpp:450 -#, c-format -msgid "Can not get priority range for scheduling policy %d." -msgstr "Nemohu zjistit rozsah priorit pro scheduling policy %d." - -#: src/msw/clipbrd.cpp:474 -#, c-format -msgid "Can not put data in format '%s' on clipboard." -msgstr "Nemohu vlo¾it data ve formátu '%s' do schránky." - -#: src/msw/thread.cpp:410 -#, c-format -msgid "Can not resume thread %x" -msgstr "Nemohu obnovit vlákno %x" - -#: src/gtk/threadpsx.cpp:442 -msgid "Can not retrieve thread scheduling policy." -msgstr "Nemohu zjistit scheduling policy vláken." - -#: src/gtk/threadpsx.cpp:270 src/msw/thread.cpp:330 -msgid "Can not start thread: error writing TLS." -msgstr "Nemohu spustit vlákno: chyba pøi zápisu TLS." - -#: src/msw/thread.cpp:395 -#, c-format -msgid "Can not suspend thread %x" -msgstr "Nemohu pozastavit vlákno %x" - -#: src/msw/thread.cpp:543 -msgid "Can not wait for thread termination" -msgstr "Nemohu poèkat na ukonèení vlákna" - -#: src/common/docview.cpp:1670 -msgid "Can't &Undo " -msgstr "Nemohu vzít zpìt" - -#: src/msw/thread.cpp:359 -msgid "Can't create thread" -msgstr "Nemohu vytvoøit vlákno" - -#: src/msw/iniconf.cpp:464 -#, c-format -msgid "Can't delete the INI file '%s'" -msgstr "Nemohu smazat INI soubor '%s'" - -#: src/gtk/utilsgtk.cpp:360 -#, c-format -msgid "Can't execute '%s'\n" -msgstr "Nemohu spustit '%s'\n" - -#: src/msw/utilsexc.cpp:208 -#, c-format -msgid "Can't execute command '%s'" -msgstr "Nemohu spustit pøíkaz '%s'" - -#: src/common/object.cpp:290 src/common/object.cpp:311 -#, c-format -msgid "Can't find the serialization object '%s' for the object '%s'." -msgstr "Nemohu najít serializaèní objekt '%s' k objektu '%s'." - -#: src/common/object.cpp:283 -msgid "Can't load wxSerial dynamic library." -msgstr "Nemohu naèíst dynamickou knihovnu wxSerial." - -#: src/common/log.cpp:717 -msgid "Can't save log contents to file." -msgstr "Nemohu ulo¾it obsah logu do souboru." - -#: src/msw/thread.cpp:384 -msgid "Can't set thread priority" -msgstr "Nemohu nastavit prioritu vlákna" - -#: src/common/prntbase.cpp:113 src/generic/choicdgg.cpp:306 -#: src/generic/colrdlgg.cpp:235 src/generic/dcpsg.cpp:1875 -#: src/generic/dirdlgg.cpp:341 src/generic/fontdlgg.cpp:261 -#: src/generic/msgdlgg.cpp:143 src/generic/prntdlgg.cpp:111 -#: src/generic/prntdlgg.cpp:317 src/generic/prntdlgg.cpp:473 -#: src/generic/textdlgg.cpp:141 src/gtk/filedlg.cpp:131 -msgid "Cancel" -msgstr "Zru¹it" - -#: src/msw/app.cpp:192 -msgid "Cannot initialize OLE" -msgstr "Nemohu inicializovat OLE" - -#: src/generic/dcpsg.cpp:1247 -msgid "Cannot open file!" -msgstr "Nemohu otevøít soubor!" - -#: src/common/CVS/Base/fileconf.cpp:614 src/common/fileconf.cpp:614 -#, c-format -msgid "Character '%c' is invalid in a config entry name." -msgstr "Znak '%c' ve jménu konfiguraèní polo¾ky je neplatný." - -#: src/common/log.cpp:631 -msgid "Clear the log contents" -msgstr "Smazat obsah logu" - -#: src/common/prntbase.cpp:342 -msgid "Close" -msgstr "Zavøít" - -#: src/common/log.cpp:633 -msgid "Close this window" -msgstr "Zavøít okno" - -#: src/gtk/filedlg.cpp:60 -msgid "Confirm" -msgstr "Potvrdit" - -#: src/generic/helpxlp.cpp:242 -#, c-format -msgid "Connection to wxHelp timed out in %d seconds" -msgstr "Vypr¹elo spojení s wxHelp :%d sekund" - -#: src/generic/prntdlgg.cpp:106 -msgid "Copies:" -msgstr "Kopie:" - -#: src/common/resourc2.cpp:287 src/common/resource.cpp:1635 -#, c-format -msgid "Could not find resource include file %s." -msgstr "Nemohu nalézt resource include file %s." - -#: src/generic/tabg.cpp:1038 -msgid "Could not find tab for id" -msgstr "Nemohu najít tab k id" - -#: src/common/resource.cpp:753 -#, c-format -msgid "" -"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n" -" or provide #define (see manual for caveats)" -msgstr "" -"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n" -" or provide #define (see manual for caveats)" - -#: src/common/resource.cpp:1199 -#, c-format -msgid "" -"Could not resolve menu id '%s'. Use (non-zero) integer instead\n" -"or provide #define (see manual for caveats)" -msgstr "" -"Could not resolve menu id '%s'. Use (non-zero) integer instead\n" -"or provide #define (see manual for caveats)" - -#: src/common/prntbase.cpp:673 -msgid "Could not start document preview." -msgstr "Nemohu zorbrazit náhled dokumentu." - -#: src/generic/printps.cpp:165 -msgid "Could not start printing." -msgstr "Nemohu tisknout." - -#: src/gtk/window.cpp:2716 src/msw/window.cpp:3756 -msgid "Could not transfer data to window" -msgstr "Nemohu pøenést data do okna." - -#: src/msw/thread.cpp:127 -msgid "Couldn't acquire a mutex lock" -msgstr "Nemohu získat zámek mutexu." - -#: src/msw/imaglist.cpp:96 -msgid "Couldn't add an image to the image list." -msgstr "Nemohu pøidat obrázek do seznamu." - -#: src/msw/thread.cpp:231 -msgid "Couldn't change the state of event object." -msgstr "Nemohu zmìnit stav event object." - -#: src/msw/timer.cpp:109 -msgid "Couldn't create a timer" -msgstr "Nemohu vytvoøit timer" - -#: src/msw/thread.cpp:430 -msgid "Couldn't get the current thread pointer" -msgstr "Nemohu získat ukazatel na aktuální vlákno" - -#: src/common/image.cpp:662 -msgid "Couldn't load a PNG image - probably file is corrupted." -msgstr "Nemohu naèíst obrázek ve formátu PNG - nejspí¹ je po¹kozený soubor." - -#: src/msw/thread.cpp:159 -msgid "Couldn't release a mutex" -msgstr "Nemohu uvolnit mutex" - -#: src/msw/listctrl.cpp:500 -#, c-format -msgid "Couldn't retrieve information about list control item %d." -msgstr "Nemohu získat informace o polo¾ce %d v seznamu." - -#: src/msw/thread.cpp:608 -msgid "Couldn't terminate thread" -msgstr "Nemohu pøeru¹it vlákno" - -#: src/generic/dirdlgg.cpp:478 -msgid "Create New Directory" -msgstr "Vytvoøit nový adresáø" - -#: src/common/log.cpp:1022 -msgid "Debug" -msgstr "Debug" - -#: src/generic/fontdlgg.cpp:211 -msgid "Decorative" -msgstr "Ozdobný" - -#: src/generic/dirdlgg.cpp:450 -msgid "Directory does not exist" -msgstr "Adresáø neexistuje" - -#: src/common/docview.cpp:371 -#, c-format -msgid "Do you want to save changes to document %s?" -msgstr "Chcete ulo¾it zmìny do dokumentu %s?" - -#: src/common/log.cpp:368 -msgid "DoLogString must be overrided if it's called." -msgstr "DoLogString musí být pøepsán pokud ho chcete volat." - -#: src/generic/dirdlgg.cpp:477 -msgid "Enter the name of the directory to create" -msgstr "Zadejte jméno adresáøe, který se má vytvoøit" - -#: src/generic/helphtml.cpp:260 -msgid "Entries found" -msgstr "Nalezené polo¾ky" - -#: src/common/CVS/Base/fileconf.cpp:607 src/common/fileconf.cpp:607 -#, c-format -msgid "Entry name can't start with '%c'." -msgstr "Jméno polo¾ky nesmí zaèínat znakem '%c'." - -#: src/common/config.cpp:345 -#, c-format -msgid "" -"Environment variables expansion failed: missing '%c' at position %d in '%s'." -msgstr "Chyba bìhem expanze environment promnìných: chybí '%c' na pozici %d v '%s'." - -#: src/common/log.cpp:474 src/generic/dcpsg.cpp:1247 -#: src/generic/helpxlp.cpp:243 -msgid "Error" -msgstr "Chyba" - -#: src/generic/dirdlgg.cpp:462 src/generic/dirdlgg.cpp:490 -msgid "Error creating directory" -msgstr "Chyba pøi vytváøení adresáøe" - -#: src/common/log.cpp:332 -msgid "Error: " -msgstr "Chyba: " - -#: src/generic/dirdlgg.cpp:230 -msgid "Etcetera" -msgstr "atd." - -#: src/msw/utilsexc.cpp:237 -#, c-format -msgid "Execution of command '%s' failed" -msgstr "Chyba pøi volání pøíkazu '%s'" - -#: src/common/resourc2.cpp:326 src/common/resourc2.cpp:1399 -#: src/common/resource.cpp:1674 src/common/resource.cpp:2747 -msgid "Expected '*' whilst parsing resource." -msgstr "Expected '*' whilst parsing resource." - -#: src/common/resourc2.cpp:342 src/common/resourc2.cpp:1415 -#: src/common/resource.cpp:1690 src/common/resource.cpp:2763 -msgid "Expected '=' whilst parsing resource." -msgstr "Expected '=' whilst parsing resource." - -#: src/common/resourc2.cpp:312 src/common/resourc2.cpp:1385 -#: src/common/resource.cpp:1660 src/common/resource.cpp:2733 -msgid "Expected 'char' whilst parsing resource." -msgstr "Expected 'char' whilst parsing resource." - -#: src/msw/clipbrd.cpp:106 -msgid "Failed to close the clipboard." -msgstr "Nemohu uzavøít schránku." - -#: src/generic/dirdlgg.cpp:460 src/generic/dirdlgg.cpp:488 -msgid "Failed to create directory " -msgstr "Nemohu vytvoøit adresáø" - -#: src/msw/tooltip.cpp:260 -#, c-format -msgid "Failed to create the tooltip '%s'" -msgstr "Nemohu vytvoøit tooltip '%s'" - -#: src/msw/dialog.cpp:143 -msgid "Failed to created dialog." -msgstr "Nemohu vytvoøit dialog." - -#: src/msw/clipbrd.cpp:118 -msgid "Failed to empty the clipboard." -msgstr "Nemohu vyprázdnit shcránku." - -#: src/common/resourc2.cpp:808 src/common/resource.cpp:2156 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" -"Nemohu nalézt XBM resource %s.\n" -"Nezapomnìl jste pou¾ít wxResourceLoadBitmapData?" - -#: src/common/resourc2.cpp:963 src/common/resource.cpp:2311 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadIconData?" -msgstr "" -"Nemohu nalézt XBM resource %s.\n" -"Nezapomnìl jste pou¾ít wxResourceLoadIconData?" - - -#: src/common/resourc2.cpp:824 src/common/resource.cpp:2172 -#, c-format -msgid "" -"Failed to find XPM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" -"Nemohu nalézt XPM resource %s.\n" -"Nezapomnìl jste pou¾ít wxResourceLoadBitmapData?" - -#: src/msw/clipbrd.cpp:86 -msgid "Failed to open the clipboard." -msgstr "Nemohu otevøít schránku." - -#: src/msw/clipbrd.cpp:375 -msgid "Failed to retrieve data from the clipboard." -msgstr "Nemohu získat data ze schránky." - -#: src/msw/clipbrd.cpp:262 -msgid "Failed to set clipboard data." -msgstr "Nemohu ulo¾it data do schránky." - -#: src/gtk/threadpsx.cpp:508 -#, c-format -msgid "Failed to set thread priority %d." -msgstr "Nemohu nastavit prioritu vlákna %d." - -#: src/gtk/threadpsx.cpp:611 -msgid "Failed to terminate a thread." -msgstr "Nemohu ukonèit vlákno." - -#: src/common/log.cpp:543 -msgid "Fatal error" -msgstr "Kritická chyba" - -#: src/common/log.cpp:325 -msgid "Fatal error: " -msgstr "Kritická chyba: " - -#: src/gtk/filedlg.cpp:57 -#, c-format -msgid "File '%s' already exists, do you really want to overwrite it?" -msgstr "Soubor '%s' existuje, opravdu ho chcete pøepsat?" - -#: src/common/docview.cpp:247 src/common/docview.cpp:278 -msgid "File error" -msgstr "Chyba souboru" - -#: src/msw/filedlg.cpp:252 -#, c-format -msgid "Files (%s)|%s" -msgstr "Soubory (%s)|%s" - -#: src/generic/fontdlgg.cpp:126 -msgid "Font" -msgstr "Font" - -#: src/gtk/utilsgtk.cpp:327 -msgid "Fork failed" -msgstr "Selhalo volání fork()" - -#: src/common/resourc2.cpp:295 src/common/resourc2.cpp:1368 -#: src/common/resource.cpp:1643 src/common/resource.cpp:2716 -msgid "Found " -msgstr "Nalezeno " - -#: src/generic/prntdlgg.cpp:97 -msgid "From:" -msgstr "Z:" - -#: src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:260 -msgid "Help Index" -msgstr "Index nápovìdy" - -#: src/common/resourc2.cpp:997 src/common/resourc2.cpp:1008 -#: src/common/resource.cpp:2345 src/common/resource.cpp:2356 -#, c-format -msgid "Icon resource specification %s not found." -msgstr "Icon resource specification %s nenalezen." - -#: src/common/resource.cpp:234 -msgid "Ill-formed resource file syntax." -msgstr "©patná syntaxe resource file." - -#: src/common/log.cpp:477 -msgid "Information" -msgstr "Informace" - -#: src/generic/fontdlgg.cpp:217 -msgid "Italic" -msgstr "Kurzíva" - -#: src/generic/dcpsg.cpp:1866 src/generic/prntdlgg.cpp:289 -#: src/generic/prntdlgg.cpp:499 -msgid "Landscape" -msgstr "Na ¹íøku" - -#: src/generic/prntdlgg.cpp:515 -msgid "Left margin (mm):" -msgstr "Levý okraj (mm):" - -#: src/generic/dcpsg.cpp:2391 -msgid "Legal 8 1/2 x 14 in" -msgstr "Legal 8 1/2 x 14 in" - -#: src/generic/dcpsg.cpp:2390 -msgid "Letter 8 1/2 x 11 in" -msgstr "Letter 8 1/2 x 11 in" - -#: src/generic/fontdlgg.cpp:220 -msgid "Light" -msgstr "Tenké" - -#: src/gtk/filedlg.cpp:177 src/msw/filedlg.cpp:352 -#, c-format -msgid "Load %s file" -msgstr "Naèíst soubor %s" - -#: src/common/log.cpp:720 -#, c-format -msgid "Log saved to the file '%s'." -msgstr "Log ulo¾en do souboru '%s'." - -#: src/gtk/mdi.cpp:321 -msgid "MDI child" -msgstr "MDI child" - -#: src/common/mimetype.cpp:1203 -#, c-format -msgid "Mailcap file %s, line %d: incomplete entry ignored." -msgstr "Soubor Mailcap %s, øádek %d: nekompletní polo¾ka ignorována." - -#: src/common/mimetype.cpp:968 -#, c-format -msgid "" -"Mime.types file %s, line %d: extra characters after the field value ignored." -msgstr "Soubor Mime.types %s, øádka %d: pøebyteèné znaky za hodnotou políèka ignorovány." - -#: src/common/mimetype.cpp:941 -#, c-format -msgid "Mime.types file %s, line %d: unterminated quoted string." -msgstr "Soubor Mime.types %s, øádka %d: neukonèený uzávorkovaný øetìzec." - -#: src/generic/fontdlgg.cpp:212 -msgid "Modern" -msgstr "Modern" - -#: src/generic/dirdlgg.cpp:226 -msgid "Mounted Devices" -msgstr "Pøipojená zaøízení" - -#: src/generic/dirdlgg.cpp:225 -msgid "My Home" -msgstr "Domovský adr" - -#: src/generic/dirdlgg.cpp:342 -msgid "New..." -msgstr "Nový..." - -#: src/generic/msgdlgg.cpp:131 -msgid "No" -msgstr "Ne" - -#: src/common/resourc2.cpp:814 src/common/resourc2.cpp:969 -#: src/common/resource.cpp:2162 src/common/resource.cpp:2317 -msgid "No XBM facility available!" -msgstr "Chybí podpora XBM!" - -#: src/common/resourc2.cpp:830 src/common/resource.cpp:2178 -msgid "No XPM facility available!" -msgstr "Chybí podpora XPM!" - -#: src/common/resourc2.cpp:991 src/common/resource.cpp:2339 -msgid "No XPM icon facility available!" -msgstr "Chybí podpora XPM ikon!" - -#: src/generic/helphtml.cpp:254 -msgid "No entries found." -msgstr "Nenalezeny ¾ádné polo¾ky." - -#: src/generic/fontdlgg.cpp:216 src/generic/fontdlgg.cpp:219 -msgid "Normal" -msgstr "Normální" - -#: src/generic/choicdgg.cpp:301 src/generic/colrdlgg.cpp:231 -#: src/generic/dcpsg.cpp:1874 src/generic/dirdlgg.cpp:340 -#: src/generic/fontdlgg.cpp:260 src/generic/msgdlgg.cpp:138 -#: src/generic/prntdlgg.cpp:110 src/generic/prntdlgg.cpp:316 -#: src/generic/prntdlgg.cpp:472 src/generic/textdlgg.cpp:136 -#: src/gtk/filedlg.cpp:125 -msgid "OK" -msgstr "OK" - -#: src/generic/prntdlgg.cpp:295 -msgid "Options" -msgstr "Nastavení" - -#: src/generic/prntdlgg.cpp:291 src/generic/prntdlgg.cpp:500 -msgid "Orientation" -msgstr "Orientae" - -#: src/common/prntbase.cpp:693 -#, c-format -msgid "Page %d" -msgstr "Strana %d" - -#: src/common/prntbase.cpp:691 -#, c-format -msgid "Page %d of %d" -msgstr "Strana %d z %d" - -#: src/generic/prntdlgg.cpp:457 -msgid "Page Setup" -msgstr "Nastavení stránky" - -#: src/generic/prntdlgg.cpp:84 -msgid "Pages" -msgstr "Strany" - -#: src/generic/prntdlgg.cpp:281 src/generic/prntdlgg.cpp:629 -msgid "Paper size" -msgstr "Velikost papíru" - -#: src/gtk/utilsgtk.cpp:315 -msgid "Pipe creation failed" -msgstr "Nelze vytvoøit pipe" - -#: src/common/prntbase.cpp:111 -msgid "Please wait..." -msgstr "Èekejte prosím..." - -#: src/generic/dcpsg.cpp:1865 src/generic/prntdlgg.cpp:288 -#: src/generic/prntdlgg.cpp:498 -msgid "Portrait" -msgstr "Na vý¹ku" - -#: src/generic/dcpsg.cpp:338 -msgid "PostScript" -msgstr "PostScript" - -#: src/generic/prntdlgg.cpp:159 -msgid "PostScript file" -msgstr "soubor PostScript" - -#: src/generic/dcpsg.cpp:1907 -msgid "PostScript:" -msgstr "PostScript:" - -#: src/generic/dcpsg.cpp:1870 -msgid "Preview Only" -msgstr "Pouze náhled" - -#: src/generic/prntdlgg.cpp:71 -msgid "Print" -msgstr "Vytisknout" - -#: src/generic/printps.cpp:165 -msgid "Print Error" -msgstr "Chyba tisku" - -#: src/common/docview.cpp:785 -msgid "Print Preview" -msgstr "Náhled tisku" - -#: src/common/prntbase.cpp:633 src/common/prntbase.cpp:655 -#: src/common/prntbase.cpp:673 -msgid "Print Preview Failure" -msgstr "Chyba bìhem vytváøení náhledu." - -#: src/generic/prntdlgg.cpp:90 -msgid "Print Range" -msgstr "Rozsah" - -#: src/generic/prntdlgg.cpp:276 -msgid "Print Setup" -msgstr "Nastavení tisku" - -#: src/generic/prntdlgg.cpp:303 -msgid "Print in colour" -msgstr "Tisknout barevnì" - -#: src/generic/prntdlgg.cpp:306 -msgid "Print spooling" -msgstr "Tisková fronta" - -#: src/generic/dcpsg.cpp:1869 src/generic/prntdlgg.cpp:78 -msgid "Print to File" -msgstr "Tisknout do souboru" - -#: src/common/prntbase.cpp:349 -msgid "Print..." -msgstr "Tisknout..." - -#: src/generic/dcpsg.cpp:1880 -msgid "Printer Command: " -msgstr "Pøíkaz tisku: " - -#: src/generic/dcpsg.cpp:1885 -msgid "Printer Options: " -msgstr "Nastavení tiskárny: " - -#: src/generic/dcpsg.cpp:306 -msgid "Printer Settings" -msgstr "Nastavení tiskárny" - -#: src/generic/prntdlgg.cpp:308 -msgid "Printer command:" -msgstr "Pøíkaz tisku:" - -#: src/generic/prntdlgg.cpp:76 -msgid "Printer options" -msgstr "Nastavení tiskárny" - -#: src/generic/prntdlgg.cpp:312 -msgid "Printer options:" -msgstr "Nastavení tiskárny:" - -#: src/generic/prntdlgg.cpp:475 -msgid "Printer..." -msgstr "Tiskárna..." - -#: src/common/prntbase.cpp:110 src/common/prntbase.cpp:152 -msgid "Printing" -msgstr "Tisk" - -#: src/common/prntbase.cpp:124 -msgid "Printing Error" -msgstr "Chyba tisku" - -#: src/common/log.cpp:326 -msgid "Program aborted." -msgstr "Program pøeru¹en." - -#: src/common/log.cpp:672 -msgid "Question" -msgstr "Otázka" - -#: src/msw/registry.cpp:435 -#, c-format -msgid "" -"Registry key '%s' is needed for normal system operation,\n" -"deleting it will leave your system in unusable state:\n" -"operation aborted." -msgstr "" -"Registry key '%s' je potøeba k normálnímu bìhu systému,\n" -"pokud ho sma¾ete, systém bude nestabilní:\n" -"operace pøeru¹ena." - -#: src/generic/helphtml.cpp:259 -msgid "Relevant entries:" -msgstr "Související polo¾ky:" - -#: src/msw/filedlg.cpp:329 -#, c-format -msgid "Replace file '%s'?" -msgstr "Nahradit soubor '%s'?" - -#: src/generic/prntdlgg.cpp:521 -msgid "Right margin (mm):" -msgstr "Pravý okraj (mm):" - -#: src/generic/fontdlgg.cpp:210 -msgid "Roman" -msgstr "Roman" - -#: src/gtk/filedlg.cpp:193 src/msw/filedlg.cpp:352 -#, c-format -msgid "Save %s file" -msgstr "Ulo¾it soubor %s" - -#: src/common/docview.cpp:198 -msgid "Save as" -msgstr "Ulo¾it jako" - -#: src/common/log.cpp:630 -msgid "Save log contents to file" -msgstr "Ulo¾it obsah logu do souboru" - -#: src/generic/fontdlgg.cpp:213 -msgid "Script" -msgstr "Script" - -#: src/common/docview.cpp:1243 -msgid "Select a document template" -msgstr "Vyberte ¹ablonu dokumentu" - -#: src/common/docview.cpp:1266 -msgid "Select a document view" -msgstr "Vyberte zobrazení dokumentu" - -#: src/common/docview.cpp:1168 src/common/docview.cpp:1198 -msgid "Select a file" -msgstr "Vyberte soubor" - -#: src/generic/dcpsg.cpp:1868 -msgid "Send to Printer" -msgstr "Poslat na tiskárnu" - -#: src/generic/prntdlgg.cpp:80 -msgid "Setup..." -msgstr "Nastavení..." - -#: src/common/layout.cpp:1326 -msgid "Sizer error" -msgstr "Sizer error" - -#: src/generic/fontdlgg.cpp:218 -msgid "Slant" -msgstr "Sklonìné" - -#: src/common/docview.cpp:252 -msgid "Sorry, could not open this file for saving." -msgstr "Tento soubor nelze otevøít pro zápis." - -#: src/common/docview.cpp:283 src/common/docview.cpp:289 -msgid "Sorry, could not open this file." -msgstr "Tento soubor nelze otevøít." - -#: src/common/docview.cpp:259 -msgid "Sorry, could not save this file." -msgstr "Tento soubor nelze ulo¾it." - -#: src/common/prntbase.cpp:655 -msgid "Sorry, not enough memory to create a preview." -msgstr "Nedostatek pamìti na vytvoøení náhledu." - -#: src/common/log.cpp:781 -msgid "Status: " -msgstr "Status: " - -#: src/generic/fontdlgg.cpp:214 -msgid "Swiss" -msgstr "Swiss" - -#: src/generic/fontdlgg.cpp:215 -msgid "Teletype" -msgstr "Teletype" - -#: src/common/docview.cpp:1243 -msgid "Templates" -msgstr "©ablony" - -#: src/generic/dirdlgg.cpp:231 -msgid "Temporary" -msgstr "Doèasný" - -#: src/generic/dirdlgg.cpp:223 -msgid "The Computer" -msgstr "Poèítaè" - -#: src/generic/dirdlgg.cpp:447 -msgid "The directory " -msgstr "Adresáø " - -#: src/msw/thread.cpp:719 -msgid "" -"Thread module initialization failed: can not store value in thread local " -"storage" -msgstr "" -"Thread module initialization failed: can not store value in thread local " -"storage" - - -#: src/gtk/threadpsx.cpp:708 -msgid "Thread module initialization failed: failed to create pthread key." -msgstr "Thread module initialization failed: failed to create pthread key." - -#: src/msw/thread.cpp:705 -msgid "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" -msgstr "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" - -#: src/generic/prntdlgg.cpp:101 -msgid "To:" -msgstr "Do:" - -#: src/generic/prntdlgg.cpp:530 -msgid "Top margin (mm):" -msgstr "Horní okraj (mm)" - -#: src/generic/fontdlgg.cpp:246 -msgid "Underline" -msgstr "Podtr¾ené" - -#: src/common/resourc2.cpp:305 src/common/resourc2.cpp:319 -#: src/common/resourc2.cpp:335 src/common/resourc2.cpp:349 -#: src/common/resourc2.cpp:1378 src/common/resourc2.cpp:1392 -#: src/common/resourc2.cpp:1408 src/common/resourc2.cpp:1422 -#: src/common/resource.cpp:1653 src/common/resource.cpp:1667 -#: src/common/resource.cpp:1683 src/common/resource.cpp:1697 -#: src/common/resource.cpp:2726 src/common/resource.cpp:2740 -#: src/common/resource.cpp:2756 src/common/resource.cpp:2770 -msgid "Unexpected end of file whilst parsing resource." -msgstr "Neoèekávaný konec souboru bìhem zpracování resource" - -#: src/common/mimetype.cpp:985 -#, c-format -msgid "Unknown field in file %s, line %d: '%s'." -msgstr "Neznámá polo¾ka v souboru %s, øádka %d: '%s'." - -#: src/common/mimetype.cpp:363 -#, c-format -msgid "Unmatched '{' in an entry for mime type %s." -msgstr "Pøebyteèná '{' v popisu mime typu %s." - -#: src/common/docview.cpp:1665 src/common/docview.cpp:1680 -#: src/common/docview.cpp:1707 -msgid "Unnamed command" -msgstr "Nepojmenovaný pøíkaz" - -#: src/common/resourc2.cpp:687 src/common/resource.cpp:2035 -#, c-format -msgid "Unrecognized style %s whilst parsing resource." -msgstr "Neznámý styl %s bìhem zpracování resource" - -#: src/msw/clipbrd.cpp:220 src/msw/clipbrd.cpp:330 -msgid "Unsupported clipboard format." -msgstr "Nepodporovaný formát schránky." - -#: src/generic/dirdlgg.cpp:227 -msgid "User" -msgstr "U¾ivatel" - -#: src/generic/dirdlgg.cpp:228 -msgid "User Local" -msgstr "Local" - -#: src/common/valtext.cpp:144 src/common/valtext.cpp:155 -#: src/common/valtext.cpp:164 src/common/valtext.cpp:172 -#: src/common/valtext.cpp:180 src/common/valtext.cpp:189 -msgid "Validation conflict" -msgstr "Konflikt validace" - -#: src/generic/dirdlgg.cpp:229 -msgid "Variables" -msgstr "Promnìné" - -#: src/common/docview.cpp:1266 -msgid "Views" -msgstr "Pohledy" - -#: src/common/docview.cpp:368 src/common/resource.cpp:121 -msgid "Warning" -msgstr "Varování" - -#: src/common/log.cpp:336 -msgid "Warning: " -msgstr "Varování: " - -#: src/generic/dcpsg.cpp:1925 -msgid "X Scaling" -msgstr "Mìøítko v X" - -#: src/generic/dcpsg.cpp:1934 -msgid "X Translation" -msgstr "Translace v X" - -#: src/generic/dcpsg.cpp:1929 -msgid "Y Scaling" -msgstr "Mìøítko v Y" - -#: src/generic/dcpsg.cpp:1938 -msgid "Y Translation" -msgstr "Translace v Y" - -#: src/generic/msgdlgg.cpp:130 -msgid "Yes" -msgstr "Ano" - -#: src/common/docview.cpp:1777 -msgid "[EMPTY]" -msgstr "[NIC]" - -#: src/common/time.cpp:358 -msgid "am" -msgstr "am" - -#: src/common/CVS/Base/fileconf.cpp:1269 src/common/fileconf.cpp:1269 -#, c-format -msgid "attempt to change immutable key '%s' ignored." -msgstr "pokus o zmìnu nemìnného klíèe '%s' ignorován." - -#: src/common/string.cpp:1430 -msgid "bad index in wxArrayString::Remove" -msgstr "¹patný index ve wxArrayString::Remove" - -#: src/common/file.cpp:268 -#, c-format -msgid "can't close file descriptor %d" -msgstr "nemohu zavøít deskriptor souboru %d" - -#: src/msw/registry.cpp:403 -#, c-format -msgid "can't close registry key '%s'" -msgstr "nemohu zavøít klíè registru '%s'" - -#: src/common/file.cpp:520 -#, c-format -msgid "can't commit changes to file '%s'" -msgstr "Nemohu ulo¾it zmìny v souboru '%s'" - -#: src/common/file.cpp:215 -#, c-format -msgid "can't create file '%s'" -msgstr "nemohu vytvoøit soubor '%s'" - -#: src/msw/registry.cpp:386 -#, c-format -msgid "can't create registry key '%s'" -msgstr "nemohu vytvoøit klíè registru '%s'" - -#: src/msw/registry.cpp:467 -#, c-format -msgid "can't delete key '%s'" -msgstr "nemohu smazat klíè '%s'" - -#: src/common/CVS/Base/fileconf.cpp:742 src/common/fileconf.cpp:742 -#, c-format -msgid "can't delete user configuration file '%s'" -msgstr "nemohu smazat u¾ivatelský konfiguraèní soubor '%s'" - -#: src/msw/registry.cpp:492 -#, c-format -msgid "can't delete value '%s' from key '%s'" -msgstr "nemohu smazat hodnotu '%s' z klíèe '%s'" - -#: src/msw/registry.cpp:503 -#, c-format -msgid "can't delete value of key '%s'" -msgstr "nemohu smazat hodnotu klíèe '%s'" - -#: src/common/file.cpp:447 -#, c-format -msgid "can't determine if the end of file is reached on descriptor %d" -msgstr "nemohu zjistit, jestli byl dosa¾en konec souboru v deskriptoru %d" - -#: src/msw/registry.cpp:780 -#, c-format -msgid "can't enumerate subkeys of key '%s'" -msgstr "nemohu vyjmenovat podklíèe klíèe '%s'" - -#: src/msw/registry.cpp:735 -#, c-format -msgid "can't enumerate values of key '%s'" -msgstr "nemohu vyjmenovat hodnoty klíèe '%s'" - -#: src/common/file.cpp:413 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "nemohu zjistit délku souboru na deskriptoru %d" - -#: src/msw/utils.cpp:561 -msgid "can't find user's HOME, using current directory." -msgstr "nemohu najít u¾ivatelùv HOME, pou¾iji aktuální adresáø" - -#: src/common/file.cpp:327 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "nemohu vyprázdnit (flush) deskriptor %d" - -#: src/msw/registry.cpp:335 -#, c-format -msgid "can't get info about registry key '%s'" -msgstr "nemohu zjistit informace o klíèi '%s'" - -#: src/common/file.cpp:381 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "nemohu zjistit pozici v deskriptoru %d" - -#: src/common/file.cpp:254 -#, c-format -msgid "can't open file '%s'" -msgstr "nemohu otevøít soubor '%s'" - -#: src/common/CVS/Base/fileconf.cpp:186 src/common/fileconf.cpp:186 -#, c-format -msgid "can't open global configuration file '%s'." -msgstr "nemohu otevøít globální konfiguraèní soubor '%s'." - -#: src/msw/registry.cpp:361 -#, c-format -msgid "can't open registry key '%s'" -msgstr "nemohu otevøít klíè '%s'" - -#: src/common/CVS/Base/fileconf.cpp:198 src/common/fileconf.cpp:198 -#, c-format -msgid "can't open user configuration file '%s'." -msgstr "nemohu otevøít konfiguraèní soubor '%s'" - -#: src/common/CVS/Base/fileconf.cpp:646 src/common/fileconf.cpp:646 -msgid "can't open user configuration file." -msgstr "nemohu otevøít soubor s u¾ivatelskou konfigurací" - -#: src/common/file.cpp:294 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "nemohu èíst z deskriptoru %d" - -#: src/msw/registry.cpp:658 -#, c-format -msgid "can't read value of '%s'" -msgstr "nemohu èíst hodnotu '%s'" - -#: src/msw/registry.cpp:569 src/msw/registry.cpp:608 -#, c-format -msgid "can't read value of key '%s'" -msgstr "nemohu èíst hodnotu klíèe '%s'" - -#: src/common/file.cpp:515 -#, c-format -msgid "can't remove file '%s'" -msgstr "nemohu odstranit soubor '%s'" - -#: src/common/file.cpp:531 -#, c-format -msgid "can't remove temporary file '%s'" -msgstr "nemohu odstranit doèasný soubor '%s'" - -#: src/common/file.cpp:367 -#, c-format -msgid "can't seek on file descriptor %d" -msgstr "nemohu seekovat v deskriptoru %d" - -#: src/msw/registry.cpp:594 src/msw/registry.cpp:682 -#, c-format -msgid "can't set value of '%s'" -msgstr "nemohu nastavit hodnotu '%s'" - -#: src/common/CVS/Base/fileconf.cpp:594 src/common/fileconf.cpp:594 -msgid "can't set value of a group!" -msgstr "nemohu nastavit hodnotu skupiny!" - -#: src/common/textfile.cpp:229 -#, c-format -msgid "can't write file '%s' to disk." -msgstr "nemohu zapsat soubor '%s' na disk." - -#: src/common/file.cpp:312 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "nemohu zapisovat do deskriptoru %d" - -#: src/common/CVS/Base/fileconf.cpp:653 src/common/fileconf.cpp:653 -msgid "can't write user configuration file." -msgstr "nemohu ulo¾it u¾ivatelskou konfiguraci" - -#: src/common/intl.cpp:300 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "katalog pro doménu '%s' nenalezen." - -#: src/common/filefn.cpp:1497 -msgid "empty file name in wxFindFileInPath" -msgstr "prázdné jméno souboru ve wxFindFileInPath" - -#: src/common/CVS/Base/fileconf.cpp:1256 src/common/fileconf.cpp:1256 -#, c-format -msgid "entry '%s' appears more than once in group '%s'" -msgstr "polo¾ka '%s' se v '%s' vyskytuje víc ne¾ jednou" - -#: src/common/CVS/Base/fileconf.cpp:338 src/common/fileconf.cpp:338 -#, c-format -msgid "file '%s', line %d: '%s' ignored after group header." -msgstr "soubor '%s', øádka %d: '%s' ignorováno po hlavièce skupiny." - -#: src/common/CVS/Base/fileconf.cpp:357 src/common/fileconf.cpp:357 -#, c-format -msgid "file '%s', line %d: '=' expected." -msgstr "soubor '%s', øádka %d: oèekávám '='." - -#: src/common/CVS/Base/fileconf.cpp:384 src/common/fileconf.cpp:384 -#, c-format -msgid "file '%s', line %d: key '%s' was first found at line %d." -msgstr "soubor '%s', øádka %d: klíè '%s' byl poprvé nalezen na øádce %d." - -#: src/common/CVS/Base/fileconf.cpp:373 src/common/fileconf.cpp:373 -#, c-format -msgid "file '%s', line %d: value for immutable key '%s' ignored." -msgstr "soubor '%s', øádka %d: hodnota pro nemìnný klíè '%s' ignorována." - -#: src/common/CVS/Base/fileconf.cpp:307 src/common/fileconf.cpp:307 -#, c-format -msgid "file '%s': unexpected character %c at line %d." -msgstr "soubor '%s': neoèekávaný znak %c na øádku %d." - -#: src/common/date.cpp:373 src/common/date.cpp:391 src/common/date.cpp:405 -msgid "invalid date" -msgstr "¹patné datum" - -#: src/common/date.cpp:355 -msgid "invalid day" -msgstr "¹patný den" - -#: src/common/file.cpp:452 -msgid "invalid eof() return value." -msgstr "¹patná návratová hodnota eof()" - -#: src/common/log.cpp:685 -msgid "invalid message box return value" -msgstr "¹patná návratová hodnota message boxu" - -#: src/common/date.cpp:363 -msgid "invalid month" -msgstr "¹patný mìsíc" - -#: src/common/intl.cpp:431 -#, c-format -msgid "locale '%s' can not be set." -msgstr "locale '%s' nemù¾e být nastaveno" - -#: src/common/intl.cpp:295 -#, c-format -msgid "looking for catalog '%s' in path '%s'." -msgstr "hledám katalog '%s' na cestì '%s'." - -#: src/common/time.cpp:360 -msgid "pm" -msgstr "pm" - -#: src/common/string.cpp:1446 -msgid "removing inexistent element in wxArrayString::Remove" -msgstr "odstraòuji neexistující prvek ve wxArrayString::Remove" - -#: src/common/intl.cpp:519 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "øetìzec '%s' nenalezen v doménì '%s' pro locale '%s'." - -#: src/common/intl.cpp:524 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "øetìzec '%s' nenalezen v locale '%s'." - -#: src/common/CVS/Base/fileconf.cpp:1376 src/common/fileconf.cpp:1376 -#, c-format -msgid "unexpected \" at position %d in '%s'." -msgstr "neoèekávané \" na pozici %d v '%s'." - -#: src/common/log.cpp:362 -msgid "unknown log level in wxLog::DoLog" -msgstr "neznámá log level ve wxLog::DoLog" - -#: src/common/log.cpp:559 -msgid "unknown log level in wxLogGui::DoLog" -msgstr "neznámá log level ve wxLogGui::DoLog" - -#: src/common/file.cpp:362 -msgid "unknown seek origin" -msgstr "neznámý seek origin" - -#: src/common/docview.cpp:337 -msgid "unnamed" -msgstr "nepojmenovaný" - -#: src/common/docview.cpp:1009 -#, c-format -msgid "unnamed%d" -msgstr "nepojmenovaný%d" - -#: src/common/intl.cpp:305 -#, c-format -msgid "using catalog '%s' from '%s'." -msgstr "pou¾ívám katalog '%s' z '%s'." - -#: src/common/layout.cpp:1326 -msgid "wxExpandSizer has no parent!" -msgstr "wxExpandSizer has no parent!" - -#: src/common/prntbase.cpp:632 -msgid "" -"wxPrintPreviewBase::RenderPage: must use wxPrintPreviewBase::SetCanvas to " -"let me know about the canvas!" -msgstr "" -"wxPrintPreviewBase::RenderPage: musíte pou¾ít wxPrintPreviewBase::SetCanvas " -"a dát mi vìdìt o canvas!" - -#: src/common/filefn.cpp:1123 -msgid "wxWindows: error finding temporary file name.\n" -msgstr "wxWindows: chyba pøi hledání jména doèasného souboru.\n" diff --git a/locale/de.po b/locale/de.po deleted file mode 100644 index a1c0a1c5bc..0000000000 --- a/locale/de.po +++ /dev/null @@ -1,1634 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-05-10 18:29+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: ../src/generic/dirdlgg.cpp:461 ../src/generic/dirdlgg.cpp:489 -#: src/generic/dirdlgg.cpp:461 src/generic/dirdlgg.cpp:489 -msgid "" -"\n" -"(Do you have the required permissions?)" -msgstr "" -"\n" -"(Haben Sie die nötigen Zugriffsrechte?)" - -#: ../src/generic/dirdlgg.cpp:449 src/generic/dirdlgg.cpp:449 -msgid "" -"\n" -"does not exist\n" -"Create it now?" -msgstr "" -"\n" -"existiert nicht\n" -"Jetzt anlegen?" - -#: ../src/common/log.cpp:223 src/common/log.cpp:209 -#, c-format -msgid " (error %ld: %s)" -msgstr " (Fehler %ld: %s)" - -#: ../src/common/date.cpp:385 ../src/common/date.cpp:400 -#: src/common/date.cpp:384 src/common/date.cpp:399 -msgid " B.C." -msgstr " v.Chr." - -#: ../src/common/resourc2.cpp:265 ../src/common/resourc2.cpp:1334 -#: ../src/common/resource.cpp:1630 ../src/common/resource.cpp:2704 -#: src/common/resourc2.cpp:265 src/common/resourc2.cpp:1334 -#: src/common/resource.cpp:1613 src/common/resource.cpp:2682 -#, c-format -msgid "#define %s must be an integer." -msgstr "#define %s muß eine ganze Zahl sein" - -#: src/common/valtext.cpp:143 src/common/valtext.cpp:154 -#, c-format -msgid "%s is invalid." -msgstr "%s ist ungültig" - -#: ../src/common/resourc2.cpp:709 ../src/common/resource.cpp:2075 -#: src/common/resourc2.cpp:709 src/common/resource.cpp:2057 -#, c-format -msgid "%s not a bitmap resource specification." -msgstr "%s ist keine Bitmap-Resourcenangabe" - -#: ../src/common/resourc2.cpp:864 ../src/common/resource.cpp:2230 -#: src/common/resourc2.cpp:864 src/common/resource.cpp:2212 -#, c-format -msgid "%s not an icon resource specification." -msgstr "%s ist keine Icon-Resourcenangabe" - -#: src/common/valtext.cpp:188 -#, c-format -msgid "%s should be numeric." -msgstr "%s sollte numerisch sein" - -#: src/common/valtext.cpp:163 -#, c-format -msgid "%s should only contain ASCII characters." -msgstr "%s sollte nur ASCII Zeichen enthalten" - -#: src/common/valtext.cpp:171 -#, c-format -msgid "%s should only contain alphabetic characters." -msgstr "%s sollte nur Buchstaben enthalten" - -#: src/common/valtext.cpp:179 -#, c-format -msgid "%s should only contain alphabetic or numeric characters." -msgstr "%s sollte nur Buchstaben oder Ziffern enthalten" - -#: ../src/common/resourc2.cpp:357 ../src/common/resourc2.cpp:1430 -#: ../src/common/resource.cpp:1723 ../src/common/resource.cpp:2801 -#: src/common/resourc2.cpp:357 src/common/resourc2.cpp:1430 -#: src/common/resource.cpp:1705 src/common/resource.cpp:2778 -#, c-format -msgid "%s: ill-formed resource file syntax." -msgstr "%s: falsch formatierte Resourcendatei-Syntax" - -#: ../src/common/log.cpp:638 src/common/log.cpp:633 -msgid "&Close" -msgstr "&Schließen" - -#: ../src/common/log.cpp:639 src/common/log.cpp:634 -msgid "&Log" -msgstr "&Log" - -#: ../src/common/docview.cpp:1725 ../src/common/docview.cpp:1736 -#: src/common/docview.cpp:1687 src/common/docview.cpp:1698 -msgid "&Redo" -msgstr "&Wieder-Ausführen" - -#: ../src/common/docview.cpp:1719 ../src/common/docview.cpp:1746 -#: src/common/docview.cpp:1681 src/common/docview.cpp:1708 -msgid "&Redo " -msgstr "&Wieder-Ausführen " - -#: ../src/common/log.cpp:635 src/common/log.cpp:630 -msgid "&Save..." -msgstr "&Sichern..." - -#: ../src/common/docview.cpp:1731 src/common/docview.cpp:1693 -msgid "&Undo" -msgstr "&Rückgängig" - -#: ../src/common/docview.cpp:1706 src/common/docview.cpp:1668 -msgid "&Undo " -msgstr "&Rückgängig " - -#: ../src/common/config.cpp:382 src/common/config.cpp:393 -#, c-format -msgid "'%s' has extra '..', ignored." -msgstr "'%s' hat extra '..', ingoriert." - -#: ../src/common/intl.cpp:339 src/common/intl.cpp:338 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "'%s' ist kein gültiger Nachrichtenkatalog." - -#: ../src/common/textfile.cpp:133 src/common/textfile.cpp:132 -#, c-format -msgid "'%s' is probably a binary file." -msgstr "'%s' ist vermutlich eine Binärdatei." - -#: ../src/common/resourc2.cpp:297 ../src/common/resourc2.cpp:1370 -#: ../src/common/resource.cpp:1662 ../src/common/resource.cpp:2740 -#: src/common/resourc2.cpp:297 src/common/resourc2.cpp:1370 -#: src/common/resource.cpp:1645 src/common/resource.cpp:2718 -msgid "" -", expected static, #include or #define\n" -"whilst parsing resource." -msgstr "" -", erwartete static, #include oder #define\n" -"beim Lesen der Resource." - -#: src/generic/dcpsg.cpp:2389 -msgid "A3 297 x 420 mm" -msgstr "" - -#: src/generic/dcpsg.cpp:1210 src/generic/dcpsg.cpp:1214 -#: src/generic/dcpsg.cpp:1800 src/generic/dcpsg.cpp:1804 -#: src/generic/dcpsg.cpp:2313 src/generic/dcpsg.cpp:2388 -#: src/generic/printps.cpp:239 src/generic/printps.cpp:243 -msgid "A4 210 x 297 mm" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:329 src/generic/fontdlgg.cpp:329 -msgid "ABCDEFGabcdefg12345" -msgstr "" - -#: ../src/generic/colrdlgg.cpp:236 src/generic/colrdlgg.cpp:236 -msgid "Add to custom colours" -msgstr "Zu Benutzerfarben hinzufügen" - -#: ../src/generic/prntdlgg.cpp:140 src/generic/prntdlgg.cpp:83 -msgid "All" -msgstr "Alle" - -#: ../src/common/log.cpp:675 src/common/log.cpp:670 -#, c-format -msgid "Append log to file '%s' (choosing [No] will overwrite it)?" -msgstr "An Logdatei '%s' anhängen ([Nein] wird sie ersetzen)?" - -#: src/gtk/window.cpp:2716 -msgid "Application Error" -msgstr "Programmfehler" - -#: ../src/common/resourc2.cpp:844 ../src/common/resource.cpp:2210 -#: src/common/resourc2.cpp:844 src/common/resource.cpp:2192 -#, c-format -msgid "Bitmap resource specification %s not found." -msgstr "Bitmapresourceangabe %s nicht gefunden." - -#: ../src/generic/fontdlgg.cpp:221 src/generic/fontdlgg.cpp:221 -msgid "Bold" -msgstr "Fett" - -#: ../src/generic/prntdlgg.cpp:643 src/generic/prntdlgg.cpp:536 -msgid "Bottom margin (mm):" -msgstr "Unterer Rand (mm)" - -#: ../src/common/log.cpp:636 src/common/log.cpp:631 -msgid "C&lear" -msgstr "L&öschen" - -#: ../src/msw/thread.cpp:183 src/msw/thread.cpp:183 -msgid "Can not create event object." -msgstr "Kann Eventobjekt nicht erzeugen." - -#: ../src/msw/thread.cpp:99 src/msw/thread.cpp:99 -msgid "Can not create mutex." -msgstr "Kann Mutex nicht anlegen." - -#: ../src/msw/tooltip.cpp:199 src/msw/tooltip.cpp:199 -msgid "Can not create tooltip control" -msgstr "Kann Tooltip nicht erzeugen." - -#: ../src/common/filefn.cpp:1179 src/common/filefn.cpp:1168 -#: src/common/filefn.cpp:1282 -#, c-format -msgid "Can not enumerate files in directory '%s'" -msgstr "Kann Dateien in Verzeichnis '%s' nicht listen" - -#: ../src/msw/clipbrd.cpp:549 src/msw/clipbrd.cpp:549 -#, c-format -msgid "Can not get data in format '%s' from clipboard." -msgstr "Kann keine Daten im Format '%s' von der Zwischenablage bekommen." - -#: src/gtk/threadpsx.cpp:450 -#, c-format -msgid "Can not get priority range for scheduling policy %d." -msgstr "Kann Prioritätsbereich für Schedulingregeln %d nicht bekommen." - -#: ../src/msw/clipbrd.cpp:474 src/msw/clipbrd.cpp:474 -#, c-format -msgid "Can not put data in format '%s' on clipboard." -msgstr "Kann keine Daten im Fromat '%s' in die Zwischenablage kopieren." - -#: ../src/msw/thread.cpp:410 src/msw/thread.cpp:410 -#, c-format -msgid "Can not resume thread %x" -msgstr "Kann Thread %x nicht forsetzen." - -#: src/gtk/threadpsx.cpp:442 -msgid "Can not retrieve thread scheduling policy." -msgstr "Kann Schedulingregeln nicht bekommen." - -#: ../src/msw/thread.cpp:330 src/gtk/threadpsx.cpp:270 src/msw/thread.cpp:330 -msgid "Can not start thread: error writing TLS." -msgstr "Kann Thread nicht starten: Fehler beim Schreiben der TLS." - -#: ../src/msw/thread.cpp:395 src/msw/thread.cpp:395 -#, c-format -msgid "Can not suspend thread %x" -msgstr "Kann Thread %x nicht anhalten." - -#: ../src/msw/thread.cpp:547 src/msw/thread.cpp:543 -msgid "Can not wait for thread termination" -msgstr "Kann nicht auf Threadende warten" - -#: ../src/common/docview.cpp:1708 src/common/docview.cpp:1670 -msgid "Can't &Undo " -msgstr "Kann nicht rückgängig machen " - -#: ../src/msw/thread.cpp:359 src/msw/thread.cpp:359 -msgid "Can't create thread" -msgstr "Kann Thread nicht erzeugen" - -#: ../src/msw/iniconf.cpp:453 src/msw/iniconf.cpp:464 -#, c-format -msgid "Can't delete the INI file '%s'" -msgstr "Kann INI-Datei '%s' nicht löschen" - -#: ../src/unix/utilsunx.cpp:316 src/gtk/utilsgtk.cpp:360 -#, c-format -msgid "Can't execute '%s'\n" -msgstr "Kann '%s' nicht ausführen\n" - -#: ../src/msw/utilsexc.cpp:208 src/msw/utilsexc.cpp:208 -#, c-format -msgid "Can't execute command '%s'" -msgstr "Kann Befehl '%s' nicht ausführen" - -#: ../src/common/object.cpp:302 ../src/common/object.cpp:323 -#: src/common/object.cpp:290 src/common/object.cpp:311 -#, c-format -msgid "Can't find the serialization object '%s' for the object '%s'." -msgstr "Kann Serialisierungsobjekt '%s' für Object '%s' nicht finden." - -#: ../src/common/object.cpp:295 src/common/object.cpp:283 -msgid "Can't load wxSerial dynamic library." -msgstr "Kann wxSerial DLL nicht laden." - -#: ../src/common/log.cpp:722 src/common/log.cpp:717 -msgid "Can't save log contents to file." -msgstr "Kann Logtexte nicht in Datei sichern." - -#: ../src/msw/thread.cpp:384 src/msw/thread.cpp:384 -msgid "Can't set thread priority" -msgstr "Kann Thread-Priorität nicht setzen" - -#: ../src/common/prntbase.cpp:114 ../src/generic/choicdgg.cpp:306 -#: ../src/generic/colrdlgg.cpp:235 ../src/generic/dcpsg.cpp:1918 -#: ../src/generic/dirdlgg.cpp:341 ../src/generic/fontdlgg.cpp:261 -#: ../src/generic/msgdlgg.cpp:123 ../src/generic/prntdlgg.cpp:172 -#: ../src/generic/prntdlgg.cpp:430 ../src/generic/prntdlgg.cpp:580 -#: ../src/generic/progdlgg.cpp:94 ../src/generic/textdlgg.cpp:141 -#: ../src/gtk/filedlg.cpp:154 src/common/prntbase.cpp:113 -#: src/generic/choicdgg.cpp:306 src/generic/colrdlgg.cpp:235 -#: src/generic/dcpsg.cpp:1875 src/generic/dirdlgg.cpp:341 -#: src/generic/fontdlgg.cpp:261 src/generic/msgdlgg.cpp:143 -#: src/generic/prntdlgg.cpp:111 src/generic/prntdlgg.cpp:317 -#: src/generic/prntdlgg.cpp:473 src/generic/textdlgg.cpp:141 -#: src/gtk/filedlg.cpp:131 -msgid "Cancel" -msgstr "Abbruch" - -#: ../src/msw/app.cpp:223 src/msw/app.cpp:192 -msgid "Cannot initialize OLE" -msgstr "Kann OLE nicht initialisiern" - -#: ../src/generic/dcpsg.cpp:1296 src/generic/dcpsg.cpp:1247 -msgid "Cannot open file!" -msgstr "Kann Datei nicht öffnen!" - -#: src/common/CVS/Base/fileconf.cpp:614 src/common/fileconf.cpp:614 -#, c-format -msgid "Character '%c' is invalid in a config entry name." -msgstr "Zeichen '%c' ist in einem Konfigurationseintragsnamen nicht erlaubt." - -#: ../src/common/log.cpp:636 src/common/log.cpp:631 -msgid "Clear the log contents" -msgstr "Logtexte löschen" - -#: ../src/common/prntbase.cpp:343 src/common/prntbase.cpp:342 -msgid "Close" -msgstr "Schließen" - -#: ../src/common/log.cpp:638 src/common/log.cpp:633 -msgid "Close this window" -msgstr "Fenster schließen" - -#: ../src/gtk/filedlg.cpp:71 src/gtk/filedlg.cpp:60 -msgid "Confirm" -msgstr "Bestätigen" - -#: ../src/generic/helpxlp.cpp:242 src/generic/helpxlp.cpp:242 -#, c-format -msgid "Connection to wxHelp timed out in %d seconds" -msgstr "Verbindung mit wxHelp nach %d Sekunden abgebrochen" - -#: ../src/generic/prntdlgg.cpp:167 src/generic/prntdlgg.cpp:106 -msgid "Copies:" -msgstr "Kopien:" - -#: ../src/common/resourc2.cpp:287 ../src/common/resource.cpp:1652 -#: src/common/resourc2.cpp:287 src/common/resource.cpp:1635 -#, c-format -msgid "Could not find resource include file %s." -msgstr "Konnte Resourcedatei %s nicht finden." - -#: ../src/generic/tabg.cpp:1038 src/generic/tabg.cpp:1038 -msgid "Could not find tab for id" -msgstr "Konnte Seite für Id nicht finden" - -#: ../src/common/resource.cpp:753 src/common/resource.cpp:753 -#, c-format -msgid "" -"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n" -" or provide #define (see manual for caveats)" -msgstr "" -"Kann keine Kontrollklasse oder Id '%s' finden. Verwenden Sie eine ganze Zahl\n" -" oder ein #define." - -#: ../src/common/resource.cpp:1203 src/common/resource.cpp:1199 -#, c-format -msgid "" -"Could not resolve menu id '%s'. Use (non-zero) integer instead\n" -"or provide #define (see manual for caveats)" -msgstr "" -"Kann keine Kontrollklasse oder Id '%s' finden. Verwenden Sie eine ganze Zahl\n" -" oder ein #define." - -#: ../src/common/prntbase.cpp:675 src/common/prntbase.cpp:673 -msgid "Could not start document preview." -msgstr "Kann Druckvoransicht nicht starten." - -#: ../src/generic/printps.cpp:189 ../src/msw/printwin.cpp:228 -#: src/generic/printps.cpp:165 -msgid "Could not start printing." -msgstr "Kann Ausdruck nicht beginnen." - -#: ../src/common/wincmn.cpp:598 src/gtk/window.cpp:2716 -#: src/msw/window.cpp:3756 -msgid "Could not transfer data to window" -msgstr "Kann Daten nicht ins Fenster übertragen." - -#: ../src/msw/thread.cpp:127 src/msw/thread.cpp:127 -msgid "Couldn't acquire a mutex lock" -msgstr "Kann Mutex-Lock nicht bekommen" - -#: ../src/msw/dragimag.cpp:88 ../src/msw/dragimag.cpp:116 -#: ../src/msw/imaglist.cpp:96 src/msw/imaglist.cpp:96 -msgid "Couldn't add an image to the image list." -msgstr "Kann Bild nicht zur Liste hinzufügen." - -#: ../src/msw/thread.cpp:231 src/msw/thread.cpp:231 -msgid "Couldn't change the state of event object." -msgstr "Kann Zustand des Eventobjektes nicht ändern." - -#: ../src/msw/timer.cpp:109 src/msw/timer.cpp:109 -msgid "Couldn't create a timer" -msgstr "Kann keinen Wecker anlegen." - -#: ../src/msw/thread.cpp:430 src/msw/thread.cpp:430 -msgid "Couldn't get the current thread pointer" -msgstr "Kann den aktuellen Threadzeiger nicht bekommen." - -#: ../src/common/imagpng.cpp:218 src/common/image.cpp:662 -msgid "Couldn't load a PNG image - probably file is corrupted." -msgstr "" - -#: ../src/msw/thread.cpp:159 src/msw/thread.cpp:159 -msgid "Couldn't release a mutex" -msgstr "Kann Mutex nicht freigeben." - -#: ../src/msw/listctrl.cpp:526 src/msw/listctrl.cpp:500 -#, c-format -msgid "Couldn't retrieve information about list control item %d." -msgstr "Kann keine Informationen über ListControl %d bekommen." - -#: ../src/msw/thread.cpp:612 src/msw/thread.cpp:608 -msgid "Couldn't terminate thread" -msgstr "Kann Thread nicht beenden" - -#: ../src/generic/dirdlgg.cpp:478 src/generic/dirdlgg.cpp:478 -msgid "Create New Directory" -msgstr "Neues Verzeichnis anlegen" - -#: ../src/common/log.cpp:1041 src/common/log.cpp:1022 -msgid "Debug" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:211 src/generic/fontdlgg.cpp:211 -msgid "Decorative" -msgstr "Dekorativ" - -#: ../src/generic/dirdlgg.cpp:450 src/generic/dirdlgg.cpp:450 -msgid "Directory does not exist" -msgstr "Verzeichnis existiert nicht" - -#: ../src/common/docview.cpp:404 src/common/docview.cpp:371 -#, c-format -msgid "Do you want to save changes to document %s?" -msgstr "Möchten Sie die Änderungen in Dokument %s sichern?" - -#: src/common/log.cpp:368 -msgid "DoLogString must be overrided if it's called." -msgstr "" - -#: ../src/generic/dirdlgg.cpp:477 src/generic/dirdlgg.cpp:477 -msgid "Enter the name of the directory to create" -msgstr "Geben Sie einen Namen für das neue Verzeichnis ein" - -#: ../src/generic/helphtml.cpp:260 src/generic/helphtml.cpp:260 -msgid "Entries found" -msgstr "Einträge gefunden" - -#: src/common/CVS/Base/fileconf.cpp:607 src/common/fileconf.cpp:607 -#, c-format -msgid "Entry name can't start with '%c'." -msgstr "Eintragsname kann nicht mit '%c' beginnen." - -#: ../src/common/config.cpp:334 src/common/config.cpp:345 -#, c-format -msgid "" -"Environment variables expansion failed: missing '%c' at position %d in '%s'." -msgstr "" -"Umgebungsvariablenexpansion schlug fehl: fehlendes '%c' an Position %d in '%s'." - -#: ../src/common/log.cpp:474 ../src/generic/dcpsg.cpp:1296 -#: ../src/generic/helpxlp.cpp:243 ../src/gtk/filedlg.cpp:79 -#: src/common/log.cpp:474 src/generic/dcpsg.cpp:1247 -#: src/generic/helpxlp.cpp:243 -msgid "Error" -msgstr "Fehler" - -#: ../src/generic/dirdlgg.cpp:462 ../src/generic/dirdlgg.cpp:490 -#: src/generic/dirdlgg.cpp:462 src/generic/dirdlgg.cpp:490 -msgid "Error creating directory" -msgstr "Fehler beim Anlegen des Verzeichnisses" - -#: ../src/common/log.cpp:325 src/common/log.cpp:332 -msgid "Error: " -msgstr "Fehler: " - -#: ../src/generic/dirdlgg.cpp:230 src/generic/dirdlgg.cpp:230 -msgid "Etcetera" -msgstr "/etc" - -#: ../src/msw/utilsexc.cpp:237 src/msw/utilsexc.cpp:237 -#, c-format -msgid "Execution of command '%s' failed" -msgstr "Befehlsausführung '%s' schlug fehl" - -#: ../src/common/resourc2.cpp:326 ../src/common/resourc2.cpp:1399 -#: ../src/common/resource.cpp:1691 ../src/common/resource.cpp:2769 -#: src/common/resourc2.cpp:326 src/common/resourc2.cpp:1399 -#: src/common/resource.cpp:1674 src/common/resource.cpp:2747 -msgid "Expected '*' whilst parsing resource." -msgstr "Erwartete '*' beim Lesen der Resource." - -#: ../src/common/resourc2.cpp:342 ../src/common/resourc2.cpp:1415 -#: ../src/common/resource.cpp:1708 ../src/common/resource.cpp:2786 -#: src/common/resourc2.cpp:342 src/common/resourc2.cpp:1415 -#: src/common/resource.cpp:1690 src/common/resource.cpp:2763 -msgid "Expected '=' whilst parsing resource." -msgstr "" - -#: ../src/common/resourc2.cpp:312 ../src/common/resourc2.cpp:1385 -#: ../src/common/resource.cpp:1677 ../src/common/resource.cpp:2755 -#: src/common/resourc2.cpp:312 src/common/resourc2.cpp:1385 -#: src/common/resource.cpp:1660 src/common/resource.cpp:2733 -msgid "Expected 'char' whilst parsing resource." -msgstr "" - -#: ../src/msw/clipbrd.cpp:106 src/msw/clipbrd.cpp:106 -msgid "Failed to close the clipboard." -msgstr "Konnte Zwischenablage nicht schließen." - -#: ../src/generic/dirdlgg.cpp:460 ../src/generic/dirdlgg.cpp:488 -#: src/generic/dirdlgg.cpp:460 src/generic/dirdlgg.cpp:488 -msgid "Failed to create directory " -msgstr "Konnte Verzeichnis nicht anlegen " - -#: ../src/msw/tooltip.cpp:260 src/msw/tooltip.cpp:260 -#, c-format -msgid "Failed to create the tooltip '%s'" -msgstr "" - -#: src/msw/dialog.cpp:143 -msgid "Failed to created dialog." -msgstr "" - -#: ../src/msw/clipbrd.cpp:118 src/msw/clipbrd.cpp:118 -msgid "Failed to empty the clipboard." -msgstr "Konnte Zwischenablage nicht leeren." - -#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2174 -#: src/common/resourc2.cpp:808 src/common/resource.cpp:2156 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" - -#: ../src/common/resourc2.cpp:963 ../src/common/resource.cpp:2329 -#: src/common/resourc2.cpp:963 src/common/resource.cpp:2311 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadIconData?" -msgstr "" - -#: ../src/common/resourc2.cpp:824 ../src/common/resource.cpp:2190 -#: src/common/resourc2.cpp:824 src/common/resource.cpp:2172 -#, c-format -msgid "" -"Failed to find XPM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" - -#: ../src/msw/clipbrd.cpp:86 src/msw/clipbrd.cpp:86 -msgid "Failed to open the clipboard." -msgstr "Konnte Zwischenablage nicht öffnen." - -#: ../src/msw/clipbrd.cpp:375 src/msw/clipbrd.cpp:375 -msgid "Failed to retrieve data from the clipboard." -msgstr "Konnte Daten von der Zwischenablage nicht bekommen." - -#: ../src/msw/clipbrd.cpp:262 src/msw/clipbrd.cpp:262 -msgid "Failed to set clipboard data." -msgstr "Konnte Datein nicht in Zwischenablage kopieren." - -#: ../src/unix/threadpsx.cpp:551 src/gtk/threadpsx.cpp:508 -#, c-format -msgid "Failed to set thread priority %d." -msgstr "" - -#: ../src/unix/threadpsx.cpp:662 src/gtk/threadpsx.cpp:611 -msgid "Failed to terminate a thread." -msgstr "" - -#: ../src/common/log.cpp:545 src/common/log.cpp:543 -msgid "Fatal error" -msgstr "Nicht-behebbarer Fehler" - -#: ../src/common/log.cpp:318 src/common/log.cpp:325 -msgid "Fatal error: " -msgstr "Nicht-behebbarer Fehler" - -#: ../src/gtk/filedlg.cpp:68 src/gtk/filedlg.cpp:57 -#, c-format -msgid "File '%s' already exists, do you really want to overwrite it?" -msgstr "Datei '%s' existiert bereits, möchten Sie sie wirklich überschreiben?" - -#: ../src/common/docview.cpp:280 ../src/common/docview.cpp:311 -#: src/common/docview.cpp:247 src/common/docview.cpp:278 -msgid "File error" -msgstr "Dateifehler" - -#: ../src/msw/filedlg.cpp:259 src/msw/filedlg.cpp:252 -#, c-format -msgid "Files (%s)|%s" -msgstr "Dateien (%s)|%s" - -#: ../src/generic/fontdlgg.cpp:126 src/generic/fontdlgg.cpp:126 -msgid "Font" -msgstr "Zeichensatz" - -#: ../src/unix/utilsunx.cpp:276 src/gtk/utilsgtk.cpp:327 -msgid "Fork failed" -msgstr "" - -#: ../src/common/resourc2.cpp:295 ../src/common/resourc2.cpp:1368 -#: ../src/common/resource.cpp:1660 ../src/common/resource.cpp:2738 -#: src/common/resourc2.cpp:295 src/common/resourc2.cpp:1368 -#: src/common/resource.cpp:1643 src/common/resource.cpp:2716 -msgid "Found " -msgstr "Gefunden " - -#: ../src/generic/prntdlgg.cpp:158 src/generic/prntdlgg.cpp:97 -msgid "From:" -msgstr "Von:" - -#: ../src/generic/helphtml.cpp:259 ../src/generic/helphtml.cpp:260 -#: src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:260 -msgid "Help Index" -msgstr "Hilfeindex" - -#: ../src/common/resourc2.cpp:997 ../src/common/resourc2.cpp:1008 -#: ../src/common/resource.cpp:2363 ../src/common/resource.cpp:2374 -#: src/common/resourc2.cpp:997 src/common/resourc2.cpp:1008 -#: src/common/resource.cpp:2345 src/common/resource.cpp:2356 -#, c-format -msgid "Icon resource specification %s not found." -msgstr "" - -#: ../src/common/resource.cpp:234 src/common/resource.cpp:234 -msgid "Ill-formed resource file syntax." -msgstr "" - -#: ../src/common/log.cpp:482 src/common/log.cpp:477 -msgid "Information" -msgstr "Information" - -#: ../src/generic/fontdlgg.cpp:217 src/generic/fontdlgg.cpp:217 -msgid "Italic" -msgstr "Kursiv" - -#: ../src/generic/dcpsg.cpp:1909 ../src/generic/prntdlgg.cpp:403 -#: ../src/generic/prntdlgg.cpp:606 src/generic/dcpsg.cpp:1866 -#: src/generic/prntdlgg.cpp:289 src/generic/prntdlgg.cpp:499 -msgid "Landscape" -msgstr "Querformat" - -#: ../src/generic/prntdlgg.cpp:622 src/generic/prntdlgg.cpp:515 -msgid "Left margin (mm):" -msgstr "Linker Rand (mm):" - -#: src/generic/dcpsg.cpp:2391 -msgid "Legal 8 1/2 x 14 in" -msgstr "" - -#: src/generic/dcpsg.cpp:2390 -msgid "Letter 8 1/2 x 11 in" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:220 src/generic/fontdlgg.cpp:220 -msgid "Light" -msgstr "Dünn" - -#: ../src/gtk/filedlg.cpp:212 ../src/msw/filedlg.cpp:359 -#: src/gtk/filedlg.cpp:177 src/msw/filedlg.cpp:352 -#, c-format -msgid "Load %s file" -msgstr "%s-Datei laden" - -#: ../src/common/log.cpp:725 src/common/log.cpp:720 -#, c-format -msgid "Log saved to the file '%s'." -msgstr "Logtext in Datei '%s' gesichert." - -#: ../src/gtk/mdi.cpp:347 src/gtk/mdi.cpp:321 -msgid "MDI child" -msgstr "" - -#: ../src/common/mimetype.cpp:1265 src/common/mimetype.cpp:1203 -#, c-format -msgid "Mailcap file %s, line %d: incomplete entry ignored." -msgstr "Mailcap-Datei %s, Zeile %d: unvollständiger Eintrag ignoriert." - -#: src/common/mimetype.cpp:968 -#, c-format -msgid "" -"Mime.types file %s, line %d: extra characters after the field value ignored." -msgstr "" -"Mime.types-Datei %s, Zeile %d: extra Zeichen nach dem Wert ignoriert." - -#: ../src/common/mimetype.cpp:979 src/common/mimetype.cpp:941 -#, c-format -msgid "Mime.types file %s, line %d: unterminated quoted string." -msgstr "Mime.types-Datei %s, Zeile %d: unterminierter Text" - -#: ../src/generic/fontdlgg.cpp:212 src/generic/fontdlgg.cpp:212 -msgid "Modern" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:226 src/generic/dirdlgg.cpp:226 -msgid "Mounted Devices" -msgstr "Dateisysteme" - -#: ../src/generic/dirdlgg.cpp:225 src/generic/dirdlgg.cpp:225 -msgid "My Home" -msgstr "Mein Verzeichnis" - -#: ../src/generic/dirdlgg.cpp:342 src/generic/dirdlgg.cpp:342 -msgid "New..." -msgstr "Neu..." - -#: ../src/generic/msgdlgg.cpp:111 src/generic/msgdlgg.cpp:131 -msgid "No" -msgstr "Nein" - -#: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:969 -#: ../src/common/resource.cpp:2180 ../src/common/resource.cpp:2335 -#: src/common/resourc2.cpp:814 src/common/resourc2.cpp:969 -#: src/common/resource.cpp:2162 src/common/resource.cpp:2317 -msgid "No XBM facility available!" -msgstr "" - -#: ../src/common/resourc2.cpp:830 ../src/common/resource.cpp:2196 -#: src/common/resourc2.cpp:830 src/common/resource.cpp:2178 -msgid "No XPM facility available!" -msgstr "" - -#: ../src/common/resourc2.cpp:991 ../src/common/resource.cpp:2357 -#: src/common/resourc2.cpp:991 src/common/resource.cpp:2339 -msgid "No XPM icon facility available!" -msgstr "" - -#: ../src/generic/helphtml.cpp:254 src/generic/helphtml.cpp:254 -msgid "No entries found." -msgstr "Keine Einträge gefunden." - -#: ../src/generic/fontdlgg.cpp:216 ../src/generic/fontdlgg.cpp:219 -#: src/generic/fontdlgg.cpp:216 src/generic/fontdlgg.cpp:219 -msgid "Normal" -msgstr "" - -#: ../src/generic/choicdgg.cpp:301 ../src/generic/colrdlgg.cpp:231 -#: ../src/generic/dcpsg.cpp:1917 ../src/generic/dirdlgg.cpp:340 -#: ../src/generic/fontdlgg.cpp:260 ../src/generic/msgdlgg.cpp:117 -#: ../src/generic/prntdlgg.cpp:171 ../src/generic/prntdlgg.cpp:429 -#: ../src/generic/prntdlgg.cpp:579 ../src/generic/textdlgg.cpp:136 -#: ../src/gtk/filedlg.cpp:148 src/generic/choicdgg.cpp:301 -#: src/generic/colrdlgg.cpp:231 src/generic/dcpsg.cpp:1874 -#: src/generic/dirdlgg.cpp:340 src/generic/fontdlgg.cpp:260 -#: src/generic/msgdlgg.cpp:138 src/generic/prntdlgg.cpp:110 -#: src/generic/prntdlgg.cpp:316 src/generic/prntdlgg.cpp:472 -#: src/generic/textdlgg.cpp:136 src/gtk/filedlg.cpp:125 -msgid "OK" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:409 src/generic/prntdlgg.cpp:295 -msgid "Options" -msgstr "Optionen" - -#: ../src/generic/prntdlgg.cpp:405 ../src/generic/prntdlgg.cpp:607 -#: src/generic/prntdlgg.cpp:291 src/generic/prntdlgg.cpp:500 -msgid "Orientation" -msgstr "Orientierung" - -#: ../src/common/prntbase.cpp:695 src/common/prntbase.cpp:693 -#, c-format -msgid "Page %d" -msgstr "Seite %d" - -#: ../src/common/prntbase.cpp:693 src/common/prntbase.cpp:691 -#, c-format -msgid "Page %d of %d" -msgstr "Seite %d aus %d" - -#: ../src/generic/prntdlgg.cpp:564 src/generic/prntdlgg.cpp:457 -msgid "Page Setup" -msgstr "Seiteneinstellungen" - -#: ../src/generic/prntdlgg.cpp:141 src/generic/prntdlgg.cpp:84 -msgid "Pages" -msgstr "Seiten" - -#: ../src/generic/prntdlgg.cpp:395 ../src/generic/prntdlgg.cpp:756 -#: src/generic/prntdlgg.cpp:281 src/generic/prntdlgg.cpp:629 -msgid "Paper size" -msgstr "Papierformat" - -#: ../src/unix/utilsunx.cpp:259 src/gtk/utilsgtk.cpp:315 -msgid "Pipe creation failed" -msgstr "Konnte keine Pipe anlegen" - -#: ../src/common/prntbase.cpp:112 src/common/prntbase.cpp:111 -msgid "Please wait..." -msgstr "Bitte warten..." - -#: ../src/generic/dcpsg.cpp:1908 ../src/generic/prntdlgg.cpp:402 -#: ../src/generic/prntdlgg.cpp:605 src/generic/dcpsg.cpp:1865 -#: src/generic/prntdlgg.cpp:288 src/generic/prntdlgg.cpp:498 -msgid "Portrait" -msgstr "Hochformat" - -#: ../src/generic/dcpsg.cpp:366 src/generic/dcpsg.cpp:338 -msgid "PostScript" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:234 src/generic/prntdlgg.cpp:159 -msgid "PostScript file" -msgstr "PostScript-Datei" - -#: ../src/generic/dcpsg.cpp:1950 src/generic/dcpsg.cpp:1907 -msgid "PostScript:" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1913 src/generic/dcpsg.cpp:1870 -msgid "Preview Only" -msgstr "Nur Voransicht" - -#: ../src/generic/prntdlgg.cpp:102 ../src/generic/prntdlgg.cpp:116 -#: src/generic/prntdlgg.cpp:71 -msgid "Print" -msgstr "Drucken" - -#: ../src/generic/printps.cpp:189 src/generic/printps.cpp:165 -msgid "Print Error" -msgstr "Fehler beim Drucken" - -#: ../src/common/docview.cpp:831 src/common/docview.cpp:785 -msgid "Print Preview" -msgstr "Druckvoransicht" - -#: ../src/common/prntbase.cpp:636 ../src/common/prntbase.cpp:658 -#: ../src/common/prntbase.cpp:675 src/common/prntbase.cpp:633 -#: src/common/prntbase.cpp:655 src/common/prntbase.cpp:673 -msgid "Print Preview Failure" -msgstr "Fehler bei Druckvoransicht" - -#: ../src/generic/prntdlgg.cpp:149 src/generic/prntdlgg.cpp:90 -msgid "Print Range" -msgstr "Seitenbereich" - -#: ../src/generic/prntdlgg.cpp:370 ../src/generic/prntdlgg.cpp:377 -#: src/generic/prntdlgg.cpp:276 -msgid "Print Setup" -msgstr "Druckereinstellungen" - -#: ../src/generic/prntdlgg.cpp:417 src/generic/prntdlgg.cpp:303 -msgid "Print in colour" -msgstr "In Farbe drucken" - -#: ../src/generic/prntdlgg.cpp:419 src/generic/prntdlgg.cpp:306 -msgid "Print spooling" -msgstr "Druckersteuerung" - -#: ../src/generic/dcpsg.cpp:1912 ../src/generic/prntdlgg.cpp:135 -#: src/generic/dcpsg.cpp:1869 src/generic/prntdlgg.cpp:78 -msgid "Print to File" -msgstr "In Datei drucken" - -#: ../src/common/prntbase.cpp:350 src/common/prntbase.cpp:349 -msgid "Print..." -msgstr "Drucken..." - -#: ../src/generic/dcpsg.cpp:1923 src/generic/dcpsg.cpp:1880 -msgid "Printer Command: " -msgstr "Druck-Befehl " - -#: ../src/generic/dcpsg.cpp:1928 src/generic/dcpsg.cpp:1885 -msgid "Printer Options: " -msgstr "Befehlsoptionen: " - -#: ../src/generic/dcpsg.cpp:335 src/generic/dcpsg.cpp:306 -msgid "Printer Settings" -msgstr "Druckereinstellungen" - -#: ../src/generic/prntdlgg.cpp:421 src/generic/prntdlgg.cpp:308 -msgid "Printer command:" -msgstr "Druck-Befehl:" - -#: ../src/generic/prntdlgg.cpp:133 src/generic/prntdlgg.cpp:76 -msgid "Printer options" -msgstr "Druckereinstellungen" - -#: ../src/generic/prntdlgg.cpp:425 src/generic/prntdlgg.cpp:312 -msgid "Printer options:" -msgstr "Druckereinstellungen:" - -#: ../src/generic/prntdlgg.cpp:582 src/generic/prntdlgg.cpp:475 -msgid "Printer..." -msgstr "Drucker..." - -#: ../src/common/prntbase.cpp:111 ../src/common/prntbase.cpp:153 -#: src/common/prntbase.cpp:110 src/common/prntbase.cpp:152 -msgid "Printing" -msgstr "Drucke" - -#: ../src/common/prntbase.cpp:125 src/common/prntbase.cpp:124 -msgid "Printing Error" -msgstr "Fehler beim Drucken" - -#: ../src/common/log.cpp:319 src/common/log.cpp:326 -msgid "Program aborted." -msgstr "Programm abgebrochen." - -#: ../src/common/log.cpp:677 src/common/log.cpp:672 -msgid "Question" -msgstr "Frage" - -#: ../src/msw/registry.cpp:435 src/msw/registry.cpp:435 -#, c-format -msgid "" -"Registry key '%s' is needed for normal system operation,\n" -"deleting it will leave your system in unusable state:\n" -"operation aborted." -msgstr "" - -#: ../src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:259 -msgid "Relevant entries:" -msgstr "Relevante Einträge:" - -#: ../src/msw/filedlg.cpp:336 src/msw/filedlg.cpp:329 -#, c-format -msgid "Replace file '%s'?" -msgstr "Datei '%s' ersetzen?" - -#: ../src/generic/prntdlgg.cpp:628 src/generic/prntdlgg.cpp:521 -msgid "Right margin (mm):" -msgstr "Rechter Rand (mm):" - -#: ../src/generic/fontdlgg.cpp:210 src/generic/fontdlgg.cpp:210 -msgid "Roman" -msgstr "Römisch" - -#: ../src/gtk/filedlg.cpp:228 ../src/msw/filedlg.cpp:359 -#: src/gtk/filedlg.cpp:193 src/msw/filedlg.cpp:352 -#, c-format -msgid "Save %s file" -msgstr "Datei %s sichern" - -#: ../src/common/docview.cpp:231 src/common/docview.cpp:198 -msgid "Save as" -msgstr "Sichern als" - -#: ../src/common/log.cpp:635 src/common/log.cpp:630 -msgid "Save log contents to file" -msgstr "Logtexte in Datei sichern" - -#: ../src/generic/fontdlgg.cpp:213 src/generic/fontdlgg.cpp:213 -msgid "Script" -msgstr "" - -#: ../src/common/docview.cpp:1268 src/common/docview.cpp:1243 -msgid "Select a document template" -msgstr "" - -#: ../src/common/docview.cpp:1291 src/common/docview.cpp:1266 -msgid "Select a document view" -msgstr "" - -#: ../src/common/docview.cpp:1185 ../src/common/docview.cpp:1223 -#: src/common/docview.cpp:1168 src/common/docview.cpp:1198 -msgid "Select a file" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1911 src/generic/dcpsg.cpp:1868 -msgid "Send to Printer" -msgstr "Zum Drucker schicken" - -#: ../src/generic/prntdlgg.cpp:137 src/generic/prntdlgg.cpp:80 -msgid "Setup..." -msgstr "Einstellungen..." - -#: ../src/common/layout.cpp:1366 src/common/layout.cpp:1326 -msgid "Sizer error" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:218 src/generic/fontdlgg.cpp:218 -msgid "Slant" -msgstr "Geneigt" - -#: ../src/common/docview.cpp:285 src/common/docview.cpp:252 -msgid "Sorry, could not open this file for saving." -msgstr "" - -#: ../src/common/docview.cpp:316 ../src/common/docview.cpp:322 -#: src/common/docview.cpp:283 src/common/docview.cpp:289 -msgid "Sorry, could not open this file." -msgstr "" - -#: ../src/common/docview.cpp:292 src/common/docview.cpp:259 -msgid "Sorry, could not save this file." -msgstr "" - -#: ../src/common/prntbase.cpp:658 src/common/prntbase.cpp:655 -msgid "Sorry, not enough memory to create a preview." -msgstr "Nicht genug Speicher für Voransicht." - -#: ../src/common/log.cpp:787 src/common/log.cpp:781 -msgid "Status: " -msgstr "" - -#: ../src/generic/fontdlgg.cpp:214 src/generic/fontdlgg.cpp:214 -msgid "Swiss" -msgstr "Schweizer" - -#: ../src/generic/fontdlgg.cpp:215 src/generic/fontdlgg.cpp:215 -msgid "Teletype" -msgstr "Schreibmaschine" - -#: ../src/common/docview.cpp:1268 src/common/docview.cpp:1243 -msgid "Templates" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:231 src/generic/dirdlgg.cpp:231 -msgid "Temporary" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:223 src/generic/dirdlgg.cpp:223 -msgid "The Computer" -msgstr "Der Computer" - -#: ../src/generic/dirdlgg.cpp:447 src/generic/dirdlgg.cpp:447 -msgid "The directory " -msgstr "Das Verzeichnis" - -#: ../src/msw/thread.cpp:730 src/msw/thread.cpp:719 -msgid "" -"Thread module initialization failed: can not store value in thread local " -"storage" -msgstr "" - -#: src/gtk/threadpsx.cpp:708 -msgid "Thread module initialization failed: failed to create pthread key." -msgstr "" - -#: ../src/msw/thread.cpp:716 src/msw/thread.cpp:705 -msgid "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:162 src/generic/prntdlgg.cpp:101 -msgid "To:" -msgstr "Bis:" - -#: ../src/generic/prntdlgg.cpp:637 src/generic/prntdlgg.cpp:530 -msgid "Top margin (mm):" -msgstr "Oberer Rand (mm):" - -#: ../src/generic/fontdlgg.cpp:246 src/generic/fontdlgg.cpp:246 -msgid "Underline" -msgstr "Unterstreichen" - -#: ../src/common/resourc2.cpp:305 ../src/common/resourc2.cpp:319 -#: ../src/common/resourc2.cpp:335 ../src/common/resourc2.cpp:349 -#: ../src/common/resourc2.cpp:1378 ../src/common/resourc2.cpp:1392 -#: ../src/common/resourc2.cpp:1408 ../src/common/resourc2.cpp:1422 -#: ../src/common/resource.cpp:1670 ../src/common/resource.cpp:1684 -#: ../src/common/resource.cpp:1701 ../src/common/resource.cpp:1715 -#: ../src/common/resource.cpp:2748 ../src/common/resource.cpp:2762 -#: ../src/common/resource.cpp:2779 ../src/common/resource.cpp:2793 -#: src/common/resourc2.cpp:305 src/common/resourc2.cpp:319 -#: src/common/resourc2.cpp:335 src/common/resourc2.cpp:349 -#: src/common/resourc2.cpp:1378 src/common/resourc2.cpp:1392 -#: src/common/resourc2.cpp:1408 src/common/resourc2.cpp:1422 -#: src/common/resource.cpp:1653 src/common/resource.cpp:1667 -#: src/common/resource.cpp:1683 src/common/resource.cpp:1697 -#: src/common/resource.cpp:2726 src/common/resource.cpp:2740 -#: src/common/resource.cpp:2756 src/common/resource.cpp:2770 -msgid "Unexpected end of file whilst parsing resource." -msgstr "" - -#: ../src/common/mimetype.cpp:1021 src/common/mimetype.cpp:985 -#, c-format -msgid "Unknown field in file %s, line %d: '%s'." -msgstr "Unbekanntest Feld '%s' in Datei %s, Zeile %d." - -#: ../src/common/mimetype.cpp:381 src/common/mimetype.cpp:363 -#, c-format -msgid "Unmatched '{' in an entry for mime type %s." -msgstr "Fehlendes '}' in Eintrag für MIME-Typ %s." - -#: ../src/common/docview.cpp:1703 ../src/common/docview.cpp:1718 -#: ../src/common/docview.cpp:1745 src/common/docview.cpp:1665 -#: src/common/docview.cpp:1680 src/common/docview.cpp:1707 -msgid "Unnamed command" -msgstr "" - -#: ../src/common/resourc2.cpp:687 ../src/common/resource.cpp:2053 -#: src/common/resourc2.cpp:687 src/common/resource.cpp:2035 -#, c-format -msgid "Unrecognized style %s whilst parsing resource." -msgstr "" - -#: ../src/msw/clipbrd.cpp:220 ../src/msw/clipbrd.cpp:330 -#: src/msw/clipbrd.cpp:220 src/msw/clipbrd.cpp:330 -msgid "Unsupported clipboard format." -msgstr "Nicht unterstütztes Format in Zwischenablage." - -#: ../src/generic/dirdlgg.cpp:227 src/generic/dirdlgg.cpp:227 -msgid "User" -msgstr "Benutzer" - -#: ../src/generic/dirdlgg.cpp:228 src/generic/dirdlgg.cpp:228 -msgid "User Local" -msgstr "Lokaler Benutzer" - -#: ../src/common/valtext.cpp:188 src/common/valtext.cpp:144 -#: src/common/valtext.cpp:155 src/common/valtext.cpp:164 -#: src/common/valtext.cpp:172 src/common/valtext.cpp:180 -#: src/common/valtext.cpp:189 -msgid "Validation conflict" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:229 src/generic/dirdlgg.cpp:229 -msgid "Variables" -msgstr "Variablen" - -#: ../src/common/docview.cpp:1291 src/common/docview.cpp:1266 -msgid "Views" -msgstr "Ansichten" - -#: ../src/common/docview.cpp:401 ../src/common/log.cpp:478 -#: ../src/common/resource.cpp:121 src/common/docview.cpp:368 -#: src/common/resource.cpp:121 -msgid "Warning" -msgstr "Warnung" - -#: ../src/common/log.cpp:329 src/common/log.cpp:336 -msgid "Warning: " -msgstr "Warning: " - -#: ../src/generic/dcpsg.cpp:1968 src/generic/dcpsg.cpp:1925 -msgid "X Scaling" -msgstr "X Skalierung" - -#: ../src/generic/dcpsg.cpp:1977 src/generic/dcpsg.cpp:1934 -msgid "X Translation" -msgstr "X Verschiebung" - -#: ../src/generic/dcpsg.cpp:1972 src/generic/dcpsg.cpp:1929 -msgid "Y Scaling" -msgstr "Y Skalierung" - -#: ../src/generic/dcpsg.cpp:1981 src/generic/dcpsg.cpp:1938 -msgid "Y Translation" -msgstr "Y Verschiebung" - -#: ../src/generic/msgdlgg.cpp:109 src/generic/msgdlgg.cpp:130 -msgid "Yes" -msgstr "Ja" - -#: ../src/common/docview.cpp:1814 src/common/docview.cpp:1777 -msgid "[EMPTY]" -msgstr "[leer]" - -#: ../src/common/time.cpp:358 src/common/time.cpp:358 -msgid "am" -msgstr "am" - -#: ../src/common/fileconf.cpp:1266 src/common/CVS/Base/fileconf.cpp:1269 -#: src/common/fileconf.cpp:1269 -#, c-format -msgid "attempt to change immutable key '%s' ignored." -msgstr "Versuch, Eintrag '%s' zu ändern, verweigert. Ist nicht schreibbar." - -#: ../src/common/string.cpp:1703 src/common/string.cpp:1430 -msgid "bad index in wxArrayString::Remove" -msgstr "" - -#: ../src/common/file.cpp:273 src/common/file.cpp:268 -#, c-format -msgid "can't close file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:403 src/msw/registry.cpp:403 -#, c-format -msgid "can't close registry key '%s'" -msgstr "" - -#: ../src/common/file.cpp:563 src/common/file.cpp:520 -#, c-format -msgid "can't commit changes to file '%s'" -msgstr "Kann Änderungen in Datei '%s' nicht sichern." - -#: ../src/common/file.cpp:224 src/common/file.cpp:215 -#, c-format -msgid "can't create file '%s'" -msgstr "Kann Datei '%s' nicht anlegen." - -#: ../src/msw/registry.cpp:386 src/msw/registry.cpp:386 -#, c-format -msgid "can't create registry key '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:467 src/msw/registry.cpp:467 -#, c-format -msgid "can't delete key '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:736 src/common/CVS/Base/fileconf.cpp:742 -#: src/common/fileconf.cpp:742 -#, c-format -msgid "can't delete user configuration file '%s'" -msgstr "Kann Konfigurationsdatei '%s' nicht löschen." - -#: ../src/msw/registry.cpp:492 src/msw/registry.cpp:492 -#, c-format -msgid "can't delete value '%s' from key '%s'" -msgstr "Kann Wert '%s' von Eintrag '%s' nicht löschen." - -#: ../src/msw/registry.cpp:503 src/msw/registry.cpp:503 -#, c-format -msgid "can't delete value of key '%s'" -msgstr "Kann Wert von Eintrag '%s' nicht löschen" - -#: src/common/file.cpp:447 -#, c-format -msgid "can't determine if the end of file is reached on descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:780 src/msw/registry.cpp:780 -#, c-format -msgid "can't enumerate subkeys of key '%s'" -msgstr "Kann Untereinträge von '%s' nicht auflisten" - -#: ../src/msw/registry.cpp:735 src/msw/registry.cpp:735 -#, c-format -msgid "can't enumerate values of key '%s'" -msgstr "Kann Werte von Eintrag '%s' nicht auflisten" - -#: ../src/common/file.cpp:418 src/common/file.cpp:413 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "" - -#: ../src/msw/utils.cpp:584 src/msw/utils.cpp:561 -msgid "can't find user's HOME, using current directory." -msgstr "Kann Benutzerverzeichnis nicht finden, verwende aktuelles Verzeichnis." - -#: ../src/common/file.cpp:332 src/common/file.cpp:327 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:335 src/msw/registry.cpp:335 -#, c-format -msgid "can't get info about registry key '%s'" -msgstr "" - -#: ../src/common/file.cpp:386 src/common/file.cpp:381 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "" - -#: ../src/common/file.cpp:259 src/common/file.cpp:254 -#, c-format -msgid "can't open file '%s'" -msgstr "Kann Datei '%s' nicht öffnen" - -#: ../src/common/fileconf.cpp:183 src/common/CVS/Base/fileconf.cpp:186 -#: src/common/fileconf.cpp:186 -#, c-format -msgid "can't open global configuration file '%s'." -msgstr "Kann globale Konfigurationsdatei '%s' nicht öffnen." - -#: ../src/msw/registry.cpp:361 src/msw/registry.cpp:361 -#, c-format -msgid "can't open registry key '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:195 src/common/CVS/Base/fileconf.cpp:198 -#: src/common/fileconf.cpp:198 -#, c-format -msgid "can't open user configuration file '%s'." -msgstr "Kann Konfigurationsdatei '%s' nicht öffnen." - -#: ../src/common/fileconf.cpp:642 src/common/CVS/Base/fileconf.cpp:646 -#: src/common/fileconf.cpp:646 -msgid "can't open user configuration file." -msgstr "Kann Benutzer-Konfigurationsdatei nicht öffnen." - -#: ../src/common/file.cpp:299 src/common/file.cpp:294 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:658 src/msw/registry.cpp:658 -#, c-format -msgid "can't read value of '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:569 ../src/msw/registry.cpp:608 -#: src/msw/registry.cpp:569 src/msw/registry.cpp:608 -#, c-format -msgid "can't read value of key '%s'" -msgstr "" - -#: ../src/common/file.cpp:558 src/common/file.cpp:515 -#, c-format -msgid "can't remove file '%s'" -msgstr "Kann Datei '%s' nicht löschen." - -#: ../src/common/file.cpp:574 src/common/file.cpp:531 -#, c-format -msgid "can't remove temporary file '%s'" -msgstr "Kann Temporärdatei '%s' nicht löschen" - -#: ../src/common/file.cpp:372 src/common/file.cpp:367 -#, c-format -msgid "can't seek on file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:594 ../src/msw/registry.cpp:682 -#: src/msw/registry.cpp:594 src/msw/registry.cpp:682 -#, c-format -msgid "can't set value of '%s'" -msgstr "" - -#: src/common/CVS/Base/fileconf.cpp:594 src/common/fileconf.cpp:594 -msgid "can't set value of a group!" -msgstr "" - -#: ../src/common/textfile.cpp:237 src/common/textfile.cpp:229 -#, c-format -msgid "can't write file '%s' to disk." -msgstr "Kann Datei '%s' nicht schreiben." - -#: ../src/common/file.cpp:317 src/common/file.cpp:312 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "" - -#: ../src/common/fileconf.cpp:649 src/common/CVS/Base/fileconf.cpp:653 -#: src/common/fileconf.cpp:653 -msgid "can't write user configuration file." -msgstr "Kann Benutzers Konfigurationsdatei nicht schreiben." - -#: ../src/common/intl.cpp:301 src/common/intl.cpp:300 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "Nachrichtenkatalog für Sprachbereich '%s' nicht gefunden." - -#: ../src/common/filefn.cpp:1527 src/common/filefn.cpp:1497 -msgid "empty file name in wxFindFileInPath" -msgstr "" - -#: ../src/common/fileconf.cpp:1253 src/common/CVS/Base/fileconf.cpp:1256 -#: src/common/fileconf.cpp:1256 -#, c-format -msgid "entry '%s' appears more than once in group '%s'" -msgstr "Eintrag '%s' erscheint in Gruppe '%s' mehrfach" - -#: ../src/common/fileconf.cpp:335 src/common/CVS/Base/fileconf.cpp:338 -#: src/common/fileconf.cpp:338 -#, c-format -msgid "file '%s', line %d: '%s' ignored after group header." -msgstr "Datei '%s', Zeile %d: '%s' hinter Gruppenkopf ignoriert." - -#: ../src/common/fileconf.cpp:361 src/common/CVS/Base/fileconf.cpp:357 -#: src/common/fileconf.cpp:357 -#, c-format -msgid "file '%s', line %d: '=' expected." -msgstr "Datei '%s', Zeile %d: '=' erwartet." - -#: ../src/common/fileconf.cpp:388 src/common/CVS/Base/fileconf.cpp:384 -#: src/common/fileconf.cpp:384 -#, c-format -msgid "file '%s', line %d: key '%s' was first found at line %d." -msgstr "Datei '%s', Zeile %d: Eintrag '%s' taucht erstmals in Zeile %d auf." - -#: ../src/common/fileconf.cpp:377 src/common/CVS/Base/fileconf.cpp:373 -#: src/common/fileconf.cpp:373 -#, c-format -msgid "file '%s', line %d: value for immutable key '%s' ignored." -msgstr "Datei '%s', Zeile %d: Eintrag für nicht-änderbaren Eintrag '%s' ignoriert." - -#: ../src/common/fileconf.cpp:303 src/common/CVS/Base/fileconf.cpp:307 -#: src/common/fileconf.cpp:307 -#, c-format -msgid "file '%s': unexpected character %c at line %d." -msgstr "Datei '%s': unerwartetes Zeichen %c in Zeile %d." - -#: ../src/common/date.cpp:374 ../src/common/date.cpp:392 -#: ../src/common/date.cpp:406 src/common/date.cpp:373 src/common/date.cpp:391 -#: src/common/date.cpp:405 -msgid "invalid date" -msgstr "ungültiges Datum" - -#: ../src/common/date.cpp:356 src/common/date.cpp:355 -msgid "invalid day" -msgstr "ungültiger Tag" - -#: ../src/common/file.cpp:457 src/common/file.cpp:452 -msgid "invalid eof() return value." -msgstr "" - -#: ../src/common/log.cpp:690 src/common/log.cpp:685 -msgid "invalid message box return value" -msgstr "" - -#: ../src/common/date.cpp:364 src/common/date.cpp:363 -msgid "invalid month" -msgstr "ungültiger Monat" - -#: ../src/common/intl.cpp:432 src/common/intl.cpp:431 -#, c-format -msgid "locale '%s' can not be set." -msgstr "Lokale Umgebung '%s' kann nicht gesetzt werden." - -#: ../src/common/intl.cpp:296 src/common/intl.cpp:295 -#, c-format -msgid "looking for catalog '%s' in path '%s'." -msgstr "Suche Nachrichtenkatalog '%s' in Pfad '%s'." - -#: ../src/common/time.cpp:360 src/common/time.cpp:360 -msgid "pm" -msgstr "pm" - -#: ../src/common/string.cpp:1719 src/common/string.cpp:1446 -msgid "removing inexistent element in wxArrayString::Remove" -msgstr "" - -#: ../src/common/intl.cpp:521 src/common/intl.cpp:519 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "Text '%s' in Bereich '%s' für Umgebung '%s' nicht gefunden." - -#: ../src/common/intl.cpp:526 src/common/intl.cpp:524 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "Text '%s' in Umgebung '%s' nicht gefunden." - -#: ../src/common/fileconf.cpp:1373 src/common/CVS/Base/fileconf.cpp:1376 -#: src/common/fileconf.cpp:1376 -#, c-format -msgid "unexpected \" at position %d in '%s'." -msgstr "" - -#: src/common/log.cpp:362 -msgid "unknown log level in wxLog::DoLog" -msgstr "" - -#: src/common/log.cpp:559 -msgid "unknown log level in wxLogGui::DoLog" -msgstr "" - -#: ../src/common/file.cpp:367 src/common/file.cpp:362 -msgid "unknown seek origin" -msgstr "" - -#: ../src/common/docview.cpp:370 src/common/docview.cpp:337 -msgid "unnamed" -msgstr "Unbenannt" - -#: ../src/common/docview.cpp:1055 src/common/docview.cpp:1009 -#, c-format -msgid "unnamed%d" -msgstr "Unbenannt" - -#: ../src/common/intl.cpp:306 src/common/intl.cpp:305 -#, c-format -msgid "using catalog '%s' from '%s'." -msgstr "Verwende Nachrichtenkatalog '%s' von '%s'." - -#: ../src/common/layout.cpp:1366 src/common/layout.cpp:1326 -msgid "wxExpandSizer has no parent!" -msgstr "" - -#: ../src/common/prntbase.cpp:635 src/common/prntbase.cpp:632 -msgid "" -"wxPrintPreviewBase::RenderPage: must use wxPrintPreviewBase::SetCanvas to " -"let me know about the canvas!" -msgstr "" - -#: ../src/common/filefn.cpp:1134 src/common/filefn.cpp:1123 -msgid "wxWindows: error finding temporary file name.\n" -msgstr "" - -#: ../src/gtk/filedlg.cpp:79 -msgid "Please choose an existing file." -msgstr "Bitte wählen Sie eine bestehende Datei." - -#: ../src/generic/printps.cpp:173 -msgid "Printing..." -msgstr "Drucke..." - -#: ../src/generic/printps.cpp:207 -#, c-format -msgid "Printing page %d..." -msgstr "Drucke Seite %d..." - -#: ../src/generic/dcpsg.cpp:2189 -msgid "A4 sheet, 210 x 297 mm" -msgstr "" - -#: ../src/common/dynlib.cpp:187 -#, c-format -msgid "Couldn't find symbol '%s' in a dynamic library" -msgstr "" - -#: ../src/common/dynlib.cpp:274 -#, c-format -msgid "Failed to load shared library '%s'" -msgstr "" - -#: ../src/common/file.cpp:452 -#, c-format -msgid "" -"can't determine if the end of file is reached on descriptor " -"%d" -msgstr "" - -#: ../src/common/fileconf.cpp:611 -#, c-format -msgid "Config entry name cannot start with '%c'." -msgstr "" - -#: ../src/common/filefn.cpp:1003 -#, c-format -msgid "Directory '%s' couldn't be created" -msgstr "Verzeichnis '%s' konnte nicht angelegt werden." - -#: ../src/common/string.cpp:1687 -msgid "bad index in wxArrayString::Insert" -msgstr "" - -#: ../src/common/valtext.cpp:140 -#, c-format -msgid "'%s' is invalid" -msgstr "" - -#: ../src/common/valtext.cpp:160 -#, c-format -msgid "'%s' should only contain ASCII characters." -msgstr "" - -#: ../src/common/valtext.cpp:166 -#, c-format -msgid "'%s' should only contain alphabetic characters." -msgstr "" - -#: ../src/common/valtext.cpp:172 -#, c-format -msgid "'%s' should only contain alphabetic or numeric characters." -msgstr "" - -#: ../src/common/valtext.cpp:178 -#, c-format -msgid "'%s' should be numeric." -msgstr "" - -#: ../src/common/imagjpeg.cpp:174 -msgid "Couldn't load a JPEG image - probably file is corrupted." -msgstr "" - -#: ../src/common/imagjpeg.cpp:287 -msgid "Couldn't save a JPEG image - probably file is corrupted." -msgstr "" - -#: ../src/motif/app.cpp:559 -#, c-format -msgid "wxWindows could not open display for '%s': exiting." -msgstr "" - -#: ../src/msw/app.cpp:198 -msgid "Could not initialise Rich Edit DLL" -msgstr "" - -#: ../src/msw/app.cpp:698 -msgid "Unrecoverable program error detected: the application will terminate." -msgstr "" - -#: ../src/msw/app.cpp:700 -msgid "Fatal Error" -msgstr "" - -#: ../src/msw/app.cpp:1165 -msgid "Fatal error: exiting" -msgstr "" - -#: ../src/msw/dialog.cpp:145 -msgid "Failed to create dialog." -msgstr "" - -#: ../src/unix/threadpsx.cpp:296 -msgid "Cannot start thread: error writing TLS" -msgstr "" - -#: ../src/unix/threadpsx.cpp:477 -msgid "Cannot retrieve thread scheduling policy." -msgstr "" - -#: ../src/unix/threadpsx.cpp:485 -#, c-format -msgid "Cannot get priority range for scheduling policy %d." -msgstr "" - -#: ../src/unix/threadpsx.cpp:768 -msgid "Thread module initialization failed: failed to create thread key" -msgstr "" - -#: ../src/unix/utilsunx.cpp:211 -msgid "Waiting for subprocess termination failed" -msgstr "" - -#: ../src/unix/utilsunx.cpp:449 -msgid "Cannot get the hostname" -msgstr "" - -#: ../src/unix/utilsunx.cpp:485 -msgid "Cannot get the official hostname" -msgstr "" - -#: ../src/unix/utilsunx.cpp:547 ../src/unix/utilsunx.cpp:555 -msgid "Error " -msgstr "" diff --git a/locale/wxstd.po b/locale/wxstd.po deleted file mode 100644 index 00d2ab1045..0000000000 --- a/locale/wxstd.po +++ /dev/null @@ -1,1667 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1999-05-16 16:24+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: ../src/generic/dirdlgg.cpp:461 ../src/generic/dirdlgg.cpp:489 -#: src/generic/dirdlgg.cpp:461 src/generic/dirdlgg.cpp:489 -msgid "" -"\n" -"(Do you have the required permissions?)" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:449 src/generic/dirdlgg.cpp:449 -msgid "" -"\n" -"does not exist\n" -"Create it now?" -msgstr "" - -#: ../src/common/log.cpp:223 src/common/log.cpp:209 -#, c-format -msgid " (error %ld: %s)" -msgstr "" - -#: ../src/common/date.cpp:385 ../src/common/date.cpp:400 -#: src/common/date.cpp:384 src/common/date.cpp:399 -msgid " B.C." -msgstr "" - -#: ../src/common/resourc2.cpp:265 ../src/common/resourc2.cpp:1334 -#: ../src/common/resource.cpp:1630 ../src/common/resource.cpp:2704 -#: src/common/resourc2.cpp:265 src/common/resourc2.cpp:1334 -#: src/common/resource.cpp:1613 src/common/resource.cpp:2682 -#, c-format -msgid "#define %s must be an integer." -msgstr "" - -#: src/common/valtext.cpp:143 src/common/valtext.cpp:154 -#, c-format -msgid "%s is invalid." -msgstr "" - -#: ../src/common/resourc2.cpp:709 ../src/common/resource.cpp:2075 -#: src/common/resourc2.cpp:709 src/common/resource.cpp:2057 -#, c-format -msgid "%s not a bitmap resource specification." -msgstr "" - -#: ../src/common/resourc2.cpp:864 ../src/common/resource.cpp:2230 -#: src/common/resourc2.cpp:864 src/common/resource.cpp:2212 -#, c-format -msgid "%s not an icon resource specification." -msgstr "" - -#: src/common/valtext.cpp:188 -#, c-format -msgid "%s should be numeric." -msgstr "" - -#: src/common/valtext.cpp:163 -#, c-format -msgid "%s should only contain ASCII characters." -msgstr "" - -#: src/common/valtext.cpp:171 -#, c-format -msgid "%s should only contain alphabetic characters." -msgstr "" - -#: src/common/valtext.cpp:179 -#, c-format -msgid "%s should only contain alphabetic or numeric characters." -msgstr "" - -#: ../src/common/resourc2.cpp:357 ../src/common/resourc2.cpp:1430 -#: ../src/common/resource.cpp:1723 ../src/common/resource.cpp:2801 -#: src/common/resourc2.cpp:357 src/common/resourc2.cpp:1430 -#: src/common/resource.cpp:1705 src/common/resource.cpp:2778 -#, c-format -msgid "%s: ill-formed resource file syntax." -msgstr "" - -#: ../src/common/log.cpp:638 src/common/log.cpp:633 -msgid "&Close" -msgstr "" - -#: ../src/common/log.cpp:639 src/common/log.cpp:634 -msgid "&Log" -msgstr "" - -#: ../src/common/docview.cpp:1725 ../src/common/docview.cpp:1729 -#: ../src/common/docview.cpp:1736 ../src/common/docview.cpp:1740 -#: src/common/docview.cpp:1687 src/common/docview.cpp:1698 -msgid "&Redo" -msgstr "" - -#: ../src/common/docview.cpp:1719 ../src/common/docview.cpp:1723 -#: ../src/common/docview.cpp:1746 ../src/common/docview.cpp:1750 -#: src/common/docview.cpp:1681 src/common/docview.cpp:1708 -msgid "&Redo " -msgstr "" - -#: ../src/common/log.cpp:635 src/common/log.cpp:630 -msgid "&Save..." -msgstr "" - -#: ../src/common/docview.cpp:1731 ../src/common/docview.cpp:1735 -#: src/common/docview.cpp:1693 -msgid "&Undo" -msgstr "" - -#: ../src/common/docview.cpp:1706 ../src/common/docview.cpp:1710 -#: src/common/docview.cpp:1668 -msgid "&Undo " -msgstr "" - -#: ../src/common/config.cpp:382 src/common/config.cpp:393 -#, c-format -msgid "'%s' has extra '..', ignored." -msgstr "" - -#: ../src/common/intl.cpp:339 src/common/intl.cpp:338 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "" - -#: ../src/common/textfile.cpp:133 src/common/textfile.cpp:132 -#, c-format -msgid "'%s' is probably a binary file." -msgstr "" - -#: ../src/common/resourc2.cpp:297 ../src/common/resourc2.cpp:1370 -#: ../src/common/resource.cpp:1662 ../src/common/resource.cpp:2740 -#: src/common/resourc2.cpp:297 src/common/resourc2.cpp:1370 -#: src/common/resource.cpp:1645 src/common/resource.cpp:2718 -msgid "" -", expected static, #include or #define\n" -"whilst parsing resource." -msgstr "" - -#: src/generic/dcpsg.cpp:2389 -msgid "A3 297 x 420 mm" -msgstr "" - -#: src/generic/dcpsg.cpp:1210 src/generic/dcpsg.cpp:1214 -#: src/generic/dcpsg.cpp:1800 src/generic/dcpsg.cpp:1804 -#: src/generic/dcpsg.cpp:2313 src/generic/dcpsg.cpp:2388 -#: src/generic/printps.cpp:239 src/generic/printps.cpp:243 -msgid "A4 210 x 297 mm" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:329 src/generic/fontdlgg.cpp:329 -msgid "ABCDEFGabcdefg12345" -msgstr "" - -#: ../src/generic/colrdlgg.cpp:236 src/generic/colrdlgg.cpp:236 -msgid "Add to custom colours" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:140 src/generic/prntdlgg.cpp:83 -msgid "All" -msgstr "" - -#: ../src/common/log.cpp:675 src/common/log.cpp:670 -#, c-format -msgid "Append log to file '%s' (choosing [No] will overwrite it)?" -msgstr "" - -#: src/gtk/window.cpp:2716 -msgid "Application Error" -msgstr "" - -#: ../src/common/resourc2.cpp:844 ../src/common/resource.cpp:2210 -#: src/common/resourc2.cpp:844 src/common/resource.cpp:2192 -#, c-format -msgid "Bitmap resource specification %s not found." -msgstr "" - -#: ../src/generic/fontdlgg.cpp:221 src/generic/fontdlgg.cpp:221 -msgid "Bold" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:643 src/generic/prntdlgg.cpp:536 -msgid "Bottom margin (mm):" -msgstr "" - -#: ../src/common/log.cpp:636 src/common/log.cpp:631 -msgid "C&lear" -msgstr "" - -#: ../src/msw/thread.cpp:183 src/msw/thread.cpp:183 -msgid "Can not create event object." -msgstr "" - -#: ../src/msw/thread.cpp:99 src/msw/thread.cpp:99 -msgid "Can not create mutex." -msgstr "" - -#: ../src/msw/tooltip.cpp:199 src/msw/tooltip.cpp:199 -msgid "Can not create tooltip control" -msgstr "" - -#: ../src/common/filefn.cpp:1179 src/common/filefn.cpp:1168 -#: src/common/filefn.cpp:1282 -#, c-format -msgid "Can not enumerate files in directory '%s'" -msgstr "" - -#: ../src/msw/clipbrd.cpp:549 src/msw/clipbrd.cpp:549 -#, c-format -msgid "Can not get data in format '%s' from clipboard." -msgstr "" - -#: src/gtk/threadpsx.cpp:450 -#, c-format -msgid "Can not get priority range for scheduling policy %d." -msgstr "" - -#: ../src/msw/clipbrd.cpp:474 src/msw/clipbrd.cpp:474 -#, c-format -msgid "Can not put data in format '%s' on clipboard." -msgstr "" - -#: ../src/msw/thread.cpp:410 src/msw/thread.cpp:410 -#, c-format -msgid "Can not resume thread %x" -msgstr "" - -#: src/gtk/threadpsx.cpp:442 -msgid "Can not retrieve thread scheduling policy." -msgstr "" - -#: ../src/msw/thread.cpp:330 src/gtk/threadpsx.cpp:270 src/msw/thread.cpp:330 -msgid "Can not start thread: error writing TLS." -msgstr "" - -#: ../src/msw/thread.cpp:395 src/msw/thread.cpp:395 -#, c-format -msgid "Can not suspend thread %x" -msgstr "" - -#: ../src/msw/thread.cpp:547 src/msw/thread.cpp:543 -msgid "Can not wait for thread termination" -msgstr "" - -#: ../src/common/docview.cpp:1708 ../src/common/docview.cpp:1712 -#: src/common/docview.cpp:1670 -msgid "Can't &Undo " -msgstr "" - -#: ../src/msw/thread.cpp:359 src/msw/thread.cpp:359 -msgid "Can't create thread" -msgstr "" - -#: ../src/msw/iniconf.cpp:453 src/msw/iniconf.cpp:464 -#, c-format -msgid "Can't delete the INI file '%s'" -msgstr "" - -#: ../src/unix/utilsunx.cpp:316 src/gtk/utilsgtk.cpp:360 -#, c-format -msgid "Can't execute '%s'\n" -msgstr "" - -#: ../src/msw/utilsexc.cpp:208 src/msw/utilsexc.cpp:208 -#, c-format -msgid "Can't execute command '%s'" -msgstr "" - -#: ../src/common/object.cpp:302 ../src/common/object.cpp:323 -#: src/common/object.cpp:290 src/common/object.cpp:311 -#, c-format -msgid "Can't find the serialization object '%s' for the object '%s'." -msgstr "" - -#: ../src/common/object.cpp:295 src/common/object.cpp:283 -msgid "Can't load wxSerial dynamic library." -msgstr "" - -#: ../src/common/log.cpp:722 src/common/log.cpp:717 -msgid "Can't save log contents to file." -msgstr "" - -#: ../src/msw/thread.cpp:384 src/msw/thread.cpp:384 -msgid "Can't set thread priority" -msgstr "" - -#: ../src/common/prntbase.cpp:114 ../src/generic/choicdgg.cpp:306 -#: ../src/generic/colrdlgg.cpp:235 ../src/generic/dcpsg.cpp:1917 -#: ../src/generic/dcpsg.cpp:1918 ../src/generic/dirdlgg.cpp:341 -#: ../src/generic/fontdlgg.cpp:261 ../src/generic/msgdlgg.cpp:123 -#: ../src/generic/prntdlgg.cpp:172 ../src/generic/prntdlgg.cpp:430 -#: ../src/generic/prntdlgg.cpp:580 ../src/generic/progdlgg.cpp:94 -#: ../src/generic/textdlgg.cpp:141 ../src/gtk/filedlg.cpp:154 -#: src/common/prntbase.cpp:113 src/generic/choicdgg.cpp:306 -#: src/generic/colrdlgg.cpp:235 src/generic/dcpsg.cpp:1875 -#: src/generic/dirdlgg.cpp:341 src/generic/fontdlgg.cpp:261 -#: src/generic/msgdlgg.cpp:143 src/generic/prntdlgg.cpp:111 -#: src/generic/prntdlgg.cpp:317 src/generic/prntdlgg.cpp:473 -#: src/generic/textdlgg.cpp:141 src/gtk/filedlg.cpp:131 -msgid "Cancel" -msgstr "" - -#: ../src/msw/app.cpp:223 src/msw/app.cpp:192 -msgid "Cannot initialize OLE" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1296 src/generic/dcpsg.cpp:1247 -msgid "Cannot open file!" -msgstr "" - -#: src/common/CVS/Base/fileconf.cpp:614 src/common/fileconf.cpp:614 -#, c-format -msgid "Character '%c' is invalid in a config entry name." -msgstr "" - -#: ../src/common/log.cpp:636 src/common/log.cpp:631 -msgid "Clear the log contents" -msgstr "" - -#: ../src/common/prntbase.cpp:343 src/common/prntbase.cpp:342 -msgid "Close" -msgstr "" - -#: ../src/common/log.cpp:638 src/common/log.cpp:633 -msgid "Close this window" -msgstr "" - -#: ../src/gtk/filedlg.cpp:71 src/gtk/filedlg.cpp:60 -msgid "Confirm" -msgstr "" - -#: ../src/generic/helpxlp.cpp:242 src/generic/helpxlp.cpp:242 -#, c-format -msgid "Connection to wxHelp timed out in %d seconds" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:167 src/generic/prntdlgg.cpp:106 -msgid "Copies:" -msgstr "" - -#: ../src/common/resourc2.cpp:287 ../src/common/resource.cpp:1652 -#: src/common/resourc2.cpp:287 src/common/resource.cpp:1635 -#, c-format -msgid "Could not find resource include file %s." -msgstr "" - -#: ../src/generic/tabg.cpp:1038 src/generic/tabg.cpp:1038 -msgid "Could not find tab for id" -msgstr "" - -#: ../src/common/resource.cpp:753 src/common/resource.cpp:753 -#, c-format -msgid "" -"Could not resolve control class or id '%s'. Use (non-zero) integer instead\n" -" or provide #define (see manual for caveats)" -msgstr "" - -#: ../src/common/resource.cpp:1203 src/common/resource.cpp:1199 -#, c-format -msgid "" -"Could not resolve menu id '%s'. Use (non-zero) integer instead\n" -"or provide #define (see manual for caveats)" -msgstr "" - -#: ../src/common/prntbase.cpp:675 src/common/prntbase.cpp:673 -msgid "Could not start document preview." -msgstr "" - -#: ../src/generic/printps.cpp:189 ../src/generic/printps.cpp:193 -#: ../src/msw/printwin.cpp:228 src/generic/printps.cpp:165 -msgid "Could not start printing." -msgstr "" - -#: ../src/common/wincmn.cpp:598 ../src/common/wincmn.cpp:609 -#: src/gtk/window.cpp:2716 src/msw/window.cpp:3756 -msgid "Could not transfer data to window" -msgstr "" - -#: ../src/msw/thread.cpp:127 src/msw/thread.cpp:127 -msgid "Couldn't acquire a mutex lock" -msgstr "" - -#: ../src/msw/dragimag.cpp:88 ../src/msw/dragimag.cpp:116 -#: ../src/msw/imaglist.cpp:96 src/msw/imaglist.cpp:96 -msgid "Couldn't add an image to the image list." -msgstr "" - -#: ../src/msw/thread.cpp:231 src/msw/thread.cpp:231 -msgid "Couldn't change the state of event object." -msgstr "" - -#: ../src/msw/timer.cpp:109 src/msw/timer.cpp:109 -msgid "Couldn't create a timer" -msgstr "" - -#: ../src/msw/thread.cpp:430 src/msw/thread.cpp:430 -msgid "Couldn't get the current thread pointer" -msgstr "" - -#: ../src/common/imagpng.cpp:218 src/common/image.cpp:662 -msgid "Couldn't load a PNG image - probably file is corrupted." -msgstr "" - -#: ../src/msw/thread.cpp:159 src/msw/thread.cpp:159 -msgid "Couldn't release a mutex" -msgstr "" - -#: ../src/msw/listctrl.cpp:526 src/msw/listctrl.cpp:500 -#, c-format -msgid "Couldn't retrieve information about list control item %d." -msgstr "" - -#: ../src/msw/thread.cpp:612 src/msw/thread.cpp:608 -msgid "Couldn't terminate thread" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:478 src/generic/dirdlgg.cpp:478 -msgid "Create New Directory" -msgstr "" - -#: ../src/common/log.cpp:1041 src/common/log.cpp:1022 -msgid "Debug" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:211 src/generic/fontdlgg.cpp:211 -msgid "Decorative" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:450 src/generic/dirdlgg.cpp:450 -msgid "Directory does not exist" -msgstr "" - -#: ../src/common/docview.cpp:404 src/common/docview.cpp:371 -#, c-format -msgid "Do you want to save changes to document %s?" -msgstr "" - -#: src/common/log.cpp:368 -msgid "DoLogString must be overrided if it's called." -msgstr "" - -#: ../src/generic/dirdlgg.cpp:477 src/generic/dirdlgg.cpp:477 -msgid "Enter the name of the directory to create" -msgstr "" - -#: ../src/generic/helphtml.cpp:260 src/generic/helphtml.cpp:260 -msgid "Entries found" -msgstr "" - -#: src/common/CVS/Base/fileconf.cpp:607 src/common/fileconf.cpp:607 -#, c-format -msgid "Entry name can't start with '%c'." -msgstr "" - -#: ../src/common/config.cpp:334 src/common/config.cpp:345 -#, c-format -msgid "" -"Environment variables expansion failed: missing '%c' at position %d in '%s'." -msgstr "" - -#: ../src/common/log.cpp:474 ../src/generic/dcpsg.cpp:1296 -#: ../src/generic/helpxlp.cpp:243 ../src/gtk/filedlg.cpp:79 -#: src/common/log.cpp:474 src/generic/dcpsg.cpp:1247 -#: src/generic/helpxlp.cpp:243 -msgid "Error" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:462 ../src/generic/dirdlgg.cpp:490 -#: src/generic/dirdlgg.cpp:462 src/generic/dirdlgg.cpp:490 -msgid "Error creating directory" -msgstr "" - -#: ../src/common/log.cpp:325 src/common/log.cpp:332 -msgid "Error: " -msgstr "" - -#: ../src/generic/dirdlgg.cpp:230 src/generic/dirdlgg.cpp:230 -msgid "Etcetera" -msgstr "" - -#: ../src/msw/utilsexc.cpp:237 src/msw/utilsexc.cpp:237 -#, c-format -msgid "Execution of command '%s' failed" -msgstr "" - -#: ../src/common/resourc2.cpp:326 ../src/common/resourc2.cpp:1399 -#: ../src/common/resource.cpp:1691 ../src/common/resource.cpp:2769 -#: src/common/resourc2.cpp:326 src/common/resourc2.cpp:1399 -#: src/common/resource.cpp:1674 src/common/resource.cpp:2747 -msgid "Expected '*' whilst parsing resource." -msgstr "" - -#: ../src/common/resourc2.cpp:342 ../src/common/resourc2.cpp:1415 -#: ../src/common/resource.cpp:1708 ../src/common/resource.cpp:2786 -#: src/common/resourc2.cpp:342 src/common/resourc2.cpp:1415 -#: src/common/resource.cpp:1690 src/common/resource.cpp:2763 -msgid "Expected '=' whilst parsing resource." -msgstr "" - -#: ../src/common/resourc2.cpp:312 ../src/common/resourc2.cpp:1385 -#: ../src/common/resource.cpp:1677 ../src/common/resource.cpp:2755 -#: src/common/resourc2.cpp:312 src/common/resourc2.cpp:1385 -#: src/common/resource.cpp:1660 src/common/resource.cpp:2733 -msgid "Expected 'char' whilst parsing resource." -msgstr "" - -#: ../src/msw/clipbrd.cpp:106 src/msw/clipbrd.cpp:106 -msgid "Failed to close the clipboard." -msgstr "" - -#: ../src/generic/dirdlgg.cpp:460 ../src/generic/dirdlgg.cpp:488 -#: src/generic/dirdlgg.cpp:460 src/generic/dirdlgg.cpp:488 -msgid "Failed to create directory " -msgstr "" - -#: ../src/msw/tooltip.cpp:260 src/msw/tooltip.cpp:260 -#, c-format -msgid "Failed to create the tooltip '%s'" -msgstr "" - -#: src/msw/dialog.cpp:143 -msgid "Failed to created dialog." -msgstr "" - -#: ../src/msw/clipbrd.cpp:118 src/msw/clipbrd.cpp:118 -msgid "Failed to empty the clipboard." -msgstr "" - -#: ../src/common/resourc2.cpp:808 ../src/common/resource.cpp:2174 -#: src/common/resourc2.cpp:808 src/common/resource.cpp:2156 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" - -#: ../src/common/resourc2.cpp:963 ../src/common/resource.cpp:2329 -#: src/common/resourc2.cpp:963 src/common/resource.cpp:2311 -#, c-format -msgid "" -"Failed to find XBM resource %s.\n" -"Forgot to use wxResourceLoadIconData?" -msgstr "" - -#: ../src/common/resourc2.cpp:824 ../src/common/resource.cpp:2190 -#: src/common/resourc2.cpp:824 src/common/resource.cpp:2172 -#, c-format -msgid "" -"Failed to find XPM resource %s.\n" -"Forgot to use wxResourceLoadBitmapData?" -msgstr "" - -#: ../src/msw/clipbrd.cpp:86 src/msw/clipbrd.cpp:86 -msgid "Failed to open the clipboard." -msgstr "" - -#: ../src/msw/clipbrd.cpp:375 src/msw/clipbrd.cpp:375 -msgid "Failed to retrieve data from the clipboard." -msgstr "" - -#: ../src/msw/clipbrd.cpp:262 src/msw/clipbrd.cpp:262 -msgid "Failed to set clipboard data." -msgstr "" - -#: ../src/unix/threadpsx.cpp:551 ../src/unix/threadpsx.cpp:592 -#: src/gtk/threadpsx.cpp:508 -#, c-format -msgid "Failed to set thread priority %d." -msgstr "" - -#: ../src/unix/threadpsx.cpp:662 ../src/unix/threadpsx.cpp:703 -#: src/gtk/threadpsx.cpp:611 -msgid "Failed to terminate a thread." -msgstr "" - -#: ../src/common/log.cpp:545 src/common/log.cpp:543 -msgid "Fatal error" -msgstr "" - -#: ../src/common/log.cpp:318 src/common/log.cpp:325 -msgid "Fatal error: " -msgstr "" - -#: ../src/gtk/filedlg.cpp:68 src/gtk/filedlg.cpp:57 -#, c-format -msgid "File '%s' already exists, do you really want to overwrite it?" -msgstr "" - -#: ../src/common/docview.cpp:280 ../src/common/docview.cpp:311 -#: src/common/docview.cpp:247 src/common/docview.cpp:278 -msgid "File error" -msgstr "" - -#: ../src/msw/filedlg.cpp:259 src/msw/filedlg.cpp:252 -#, c-format -msgid "Files (%s)|%s" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:126 src/generic/fontdlgg.cpp:126 -msgid "Font" -msgstr "" - -#: ../src/unix/utilsunx.cpp:276 src/gtk/utilsgtk.cpp:327 -msgid "Fork failed" -msgstr "" - -#: ../src/common/resourc2.cpp:295 ../src/common/resourc2.cpp:1368 -#: ../src/common/resource.cpp:1660 ../src/common/resource.cpp:2738 -#: src/common/resourc2.cpp:295 src/common/resourc2.cpp:1368 -#: src/common/resource.cpp:1643 src/common/resource.cpp:2716 -msgid "Found " -msgstr "" - -#: ../src/generic/prntdlgg.cpp:158 src/generic/prntdlgg.cpp:97 -msgid "From:" -msgstr "" - -#: ../src/generic/helphtml.cpp:259 ../src/generic/helphtml.cpp:260 -#: src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:260 -msgid "Help Index" -msgstr "" - -#: ../src/common/resourc2.cpp:997 ../src/common/resourc2.cpp:1008 -#: ../src/common/resource.cpp:2363 ../src/common/resource.cpp:2374 -#: src/common/resourc2.cpp:997 src/common/resourc2.cpp:1008 -#: src/common/resource.cpp:2345 src/common/resource.cpp:2356 -#, c-format -msgid "Icon resource specification %s not found." -msgstr "" - -#: ../src/common/resource.cpp:234 src/common/resource.cpp:234 -msgid "Ill-formed resource file syntax." -msgstr "" - -#: ../src/common/log.cpp:482 src/common/log.cpp:477 -msgid "Information" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:217 src/generic/fontdlgg.cpp:217 -msgid "Italic" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1908 ../src/generic/dcpsg.cpp:1909 -#: ../src/generic/prntdlgg.cpp:403 ../src/generic/prntdlgg.cpp:606 -#: src/generic/dcpsg.cpp:1866 src/generic/prntdlgg.cpp:289 -#: src/generic/prntdlgg.cpp:499 -msgid "Landscape" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:622 src/generic/prntdlgg.cpp:515 -msgid "Left margin (mm):" -msgstr "" - -#: src/generic/dcpsg.cpp:2391 -msgid "Legal 8 1/2 x 14 in" -msgstr "" - -#: src/generic/dcpsg.cpp:2390 -msgid "Letter 8 1/2 x 11 in" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:220 src/generic/fontdlgg.cpp:220 -msgid "Light" -msgstr "" - -#: ../src/gtk/filedlg.cpp:212 ../src/gtk/filedlg.cpp:227 -#: ../src/msw/filedlg.cpp:359 src/gtk/filedlg.cpp:177 src/msw/filedlg.cpp:352 -#, c-format -msgid "Load %s file" -msgstr "" - -#: ../src/common/log.cpp:725 src/common/log.cpp:720 -#, c-format -msgid "Log saved to the file '%s'." -msgstr "" - -#: ../src/gtk/mdi.cpp:347 src/gtk/mdi.cpp:321 -msgid "MDI child" -msgstr "" - -#: ../src/common/mimetype.cpp:1265 src/common/mimetype.cpp:1203 -#, c-format -msgid "Mailcap file %s, line %d: incomplete entry ignored." -msgstr "" - -#: src/common/mimetype.cpp:968 -#, c-format -msgid "" -"Mime.types file %s, line %d: extra characters after the field value ignored." -msgstr "" - -#: ../src/common/mimetype.cpp:979 src/common/mimetype.cpp:941 -#, c-format -msgid "Mime.types file %s, line %d: unterminated quoted string." -msgstr "" - -#: ../src/generic/fontdlgg.cpp:212 src/generic/fontdlgg.cpp:212 -msgid "Modern" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:226 src/generic/dirdlgg.cpp:226 -msgid "Mounted Devices" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:225 src/generic/dirdlgg.cpp:225 -msgid "My Home" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:342 src/generic/dirdlgg.cpp:342 -msgid "New..." -msgstr "" - -#: ../src/generic/msgdlgg.cpp:111 src/generic/msgdlgg.cpp:131 -msgid "No" -msgstr "" - -#: ../src/common/resourc2.cpp:814 ../src/common/resourc2.cpp:969 -#: ../src/common/resource.cpp:2180 ../src/common/resource.cpp:2335 -#: src/common/resourc2.cpp:814 src/common/resourc2.cpp:969 -#: src/common/resource.cpp:2162 src/common/resource.cpp:2317 -msgid "No XBM facility available!" -msgstr "" - -#: ../src/common/resourc2.cpp:830 ../src/common/resource.cpp:2196 -#: src/common/resourc2.cpp:830 src/common/resource.cpp:2178 -msgid "No XPM facility available!" -msgstr "" - -#: ../src/common/resourc2.cpp:991 ../src/common/resource.cpp:2357 -#: src/common/resourc2.cpp:991 src/common/resource.cpp:2339 -msgid "No XPM icon facility available!" -msgstr "" - -#: ../src/generic/helphtml.cpp:254 src/generic/helphtml.cpp:254 -msgid "No entries found." -msgstr "" - -#: ../src/generic/fontdlgg.cpp:216 ../src/generic/fontdlgg.cpp:219 -#: src/generic/fontdlgg.cpp:216 src/generic/fontdlgg.cpp:219 -msgid "Normal" -msgstr "" - -#: ../src/generic/choicdgg.cpp:301 ../src/generic/colrdlgg.cpp:231 -#: ../src/generic/dcpsg.cpp:1916 ../src/generic/dcpsg.cpp:1917 -#: ../src/generic/dirdlgg.cpp:340 ../src/generic/fontdlgg.cpp:260 -#: ../src/generic/msgdlgg.cpp:117 ../src/generic/prntdlgg.cpp:171 -#: ../src/generic/prntdlgg.cpp:429 ../src/generic/prntdlgg.cpp:579 -#: ../src/generic/textdlgg.cpp:136 ../src/gtk/filedlg.cpp:148 -#: src/generic/choicdgg.cpp:301 src/generic/colrdlgg.cpp:231 -#: src/generic/dcpsg.cpp:1874 src/generic/dirdlgg.cpp:340 -#: src/generic/fontdlgg.cpp:260 src/generic/msgdlgg.cpp:138 -#: src/generic/prntdlgg.cpp:110 src/generic/prntdlgg.cpp:316 -#: src/generic/prntdlgg.cpp:472 src/generic/textdlgg.cpp:136 -#: src/gtk/filedlg.cpp:125 -msgid "OK" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:409 src/generic/prntdlgg.cpp:295 -msgid "Options" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:405 ../src/generic/prntdlgg.cpp:607 -#: src/generic/prntdlgg.cpp:291 src/generic/prntdlgg.cpp:500 -msgid "Orientation" -msgstr "" - -#: ../src/common/prntbase.cpp:695 src/common/prntbase.cpp:693 -#, c-format -msgid "Page %d" -msgstr "" - -#: ../src/common/prntbase.cpp:693 src/common/prntbase.cpp:691 -#, c-format -msgid "Page %d of %d" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:564 src/generic/prntdlgg.cpp:457 -msgid "Page Setup" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:141 src/generic/prntdlgg.cpp:84 -msgid "Pages" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:395 ../src/generic/prntdlgg.cpp:756 -#: src/generic/prntdlgg.cpp:281 src/generic/prntdlgg.cpp:629 -msgid "Paper size" -msgstr "" - -#: ../src/unix/utilsunx.cpp:259 src/gtk/utilsgtk.cpp:315 -msgid "Pipe creation failed" -msgstr "" - -#: ../src/common/prntbase.cpp:112 src/common/prntbase.cpp:111 -msgid "Please wait..." -msgstr "" - -#: ../src/generic/dcpsg.cpp:1907 ../src/generic/dcpsg.cpp:1908 -#: ../src/generic/prntdlgg.cpp:402 ../src/generic/prntdlgg.cpp:605 -#: src/generic/dcpsg.cpp:1865 src/generic/prntdlgg.cpp:288 -#: src/generic/prntdlgg.cpp:498 -msgid "Portrait" -msgstr "" - -#: ../src/generic/dcpsg.cpp:366 src/generic/dcpsg.cpp:338 -msgid "PostScript" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:234 src/generic/prntdlgg.cpp:159 -msgid "PostScript file" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1949 ../src/generic/dcpsg.cpp:1950 -#: src/generic/dcpsg.cpp:1907 -msgid "PostScript:" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1912 ../src/generic/dcpsg.cpp:1913 -#: src/generic/dcpsg.cpp:1870 -msgid "Preview Only" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:102 ../src/generic/prntdlgg.cpp:116 -#: src/generic/prntdlgg.cpp:71 -msgid "Print" -msgstr "" - -#: ../src/generic/printps.cpp:189 ../src/generic/printps.cpp:193 -#: src/generic/printps.cpp:165 -msgid "Print Error" -msgstr "" - -#: ../src/common/docview.cpp:831 src/common/docview.cpp:785 -msgid "Print Preview" -msgstr "" - -#: ../src/common/prntbase.cpp:636 ../src/common/prntbase.cpp:658 -#: ../src/common/prntbase.cpp:675 src/common/prntbase.cpp:633 -#: src/common/prntbase.cpp:655 src/common/prntbase.cpp:673 -msgid "Print Preview Failure" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:149 src/generic/prntdlgg.cpp:90 -msgid "Print Range" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:370 ../src/generic/prntdlgg.cpp:377 -#: src/generic/prntdlgg.cpp:276 -msgid "Print Setup" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:417 src/generic/prntdlgg.cpp:303 -msgid "Print in colour" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:419 src/generic/prntdlgg.cpp:306 -msgid "Print spooling" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1911 ../src/generic/dcpsg.cpp:1912 -#: ../src/generic/prntdlgg.cpp:135 src/generic/dcpsg.cpp:1869 -#: src/generic/prntdlgg.cpp:78 -msgid "Print to File" -msgstr "" - -#: ../src/common/prntbase.cpp:350 src/common/prntbase.cpp:349 -msgid "Print..." -msgstr "" - -#: ../src/generic/dcpsg.cpp:1922 ../src/generic/dcpsg.cpp:1923 -#: src/generic/dcpsg.cpp:1880 -msgid "Printer Command: " -msgstr "" - -#: ../src/generic/dcpsg.cpp:1927 ../src/generic/dcpsg.cpp:1928 -#: src/generic/dcpsg.cpp:1885 -msgid "Printer Options: " -msgstr "" - -#: ../src/generic/dcpsg.cpp:335 src/generic/dcpsg.cpp:306 -msgid "Printer Settings" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:421 src/generic/prntdlgg.cpp:308 -msgid "Printer command:" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:133 src/generic/prntdlgg.cpp:76 -msgid "Printer options" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:425 src/generic/prntdlgg.cpp:312 -msgid "Printer options:" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:582 src/generic/prntdlgg.cpp:475 -msgid "Printer..." -msgstr "" - -#: ../src/common/prntbase.cpp:111 ../src/common/prntbase.cpp:153 -#: src/common/prntbase.cpp:110 src/common/prntbase.cpp:152 -msgid "Printing" -msgstr "" - -#: ../src/common/prntbase.cpp:125 src/common/prntbase.cpp:124 -msgid "Printing Error" -msgstr "" - -#: ../src/common/log.cpp:319 src/common/log.cpp:326 -msgid "Program aborted." -msgstr "" - -#: ../src/common/log.cpp:677 src/common/log.cpp:672 -msgid "Question" -msgstr "" - -#: ../src/msw/registry.cpp:435 src/msw/registry.cpp:435 -#, c-format -msgid "" -"Registry key '%s' is needed for normal system operation,\n" -"deleting it will leave your system in unusable state:\n" -"operation aborted." -msgstr "" - -#: ../src/generic/helphtml.cpp:259 src/generic/helphtml.cpp:259 -msgid "Relevant entries:" -msgstr "" - -#: ../src/msw/filedlg.cpp:336 src/msw/filedlg.cpp:329 -#, c-format -msgid "Replace file '%s'?" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:628 src/generic/prntdlgg.cpp:521 -msgid "Right margin (mm):" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:210 src/generic/fontdlgg.cpp:210 -msgid "Roman" -msgstr "" - -#: ../src/gtk/filedlg.cpp:228 ../src/gtk/filedlg.cpp:243 -#: ../src/msw/filedlg.cpp:359 src/gtk/filedlg.cpp:193 src/msw/filedlg.cpp:352 -#, c-format -msgid "Save %s file" -msgstr "" - -#: ../src/common/docview.cpp:231 src/common/docview.cpp:198 -msgid "Save as" -msgstr "" - -#: ../src/common/log.cpp:635 src/common/log.cpp:630 -msgid "Save log contents to file" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:213 src/generic/fontdlgg.cpp:213 -msgid "Script" -msgstr "" - -#: ../src/common/docview.cpp:1268 ../src/common/docview.cpp:1272 -#: src/common/docview.cpp:1243 -msgid "Select a document template" -msgstr "" - -#: ../src/common/docview.cpp:1291 ../src/common/docview.cpp:1295 -#: src/common/docview.cpp:1266 -msgid "Select a document view" -msgstr "" - -#: ../src/common/docview.cpp:1185 ../src/common/docview.cpp:1189 -#: ../src/common/docview.cpp:1223 ../src/common/docview.cpp:1227 -#: src/common/docview.cpp:1168 src/common/docview.cpp:1198 -msgid "Select a file" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1910 ../src/generic/dcpsg.cpp:1911 -#: src/generic/dcpsg.cpp:1868 -msgid "Send to Printer" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:137 src/generic/prntdlgg.cpp:80 -msgid "Setup..." -msgstr "" - -#: ../src/common/layout.cpp:1366 src/common/layout.cpp:1326 -msgid "Sizer error" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:218 src/generic/fontdlgg.cpp:218 -msgid "Slant" -msgstr "" - -#: ../src/common/docview.cpp:285 src/common/docview.cpp:252 -msgid "Sorry, could not open this file for saving." -msgstr "" - -#: ../src/common/docview.cpp:316 ../src/common/docview.cpp:322 -#: src/common/docview.cpp:283 src/common/docview.cpp:289 -msgid "Sorry, could not open this file." -msgstr "" - -#: ../src/common/docview.cpp:292 src/common/docview.cpp:259 -msgid "Sorry, could not save this file." -msgstr "" - -#: ../src/common/prntbase.cpp:658 src/common/prntbase.cpp:655 -msgid "Sorry, not enough memory to create a preview." -msgstr "" - -#: ../src/common/log.cpp:787 src/common/log.cpp:781 -msgid "Status: " -msgstr "" - -#: ../src/generic/fontdlgg.cpp:214 src/generic/fontdlgg.cpp:214 -msgid "Swiss" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:215 src/generic/fontdlgg.cpp:215 -msgid "Teletype" -msgstr "" - -#: ../src/common/docview.cpp:1268 ../src/common/docview.cpp:1272 -#: src/common/docview.cpp:1243 -msgid "Templates" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:231 src/generic/dirdlgg.cpp:231 -msgid "Temporary" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:223 src/generic/dirdlgg.cpp:223 -msgid "The Computer" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:447 src/generic/dirdlgg.cpp:447 -msgid "The directory " -msgstr "" - -#: ../src/msw/thread.cpp:730 src/msw/thread.cpp:719 -msgid "" -"Thread module initialization failed: can not store value in thread local " -"storage" -msgstr "" - -#: src/gtk/threadpsx.cpp:708 -msgid "Thread module initialization failed: failed to create pthread key." -msgstr "" - -#: ../src/msw/thread.cpp:716 src/msw/thread.cpp:705 -msgid "" -"Thread module initialization failed: impossible to allocate index in thread " -"local storage" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:162 src/generic/prntdlgg.cpp:101 -msgid "To:" -msgstr "" - -#: ../src/generic/prntdlgg.cpp:637 src/generic/prntdlgg.cpp:530 -msgid "Top margin (mm):" -msgstr "" - -#: ../src/generic/fontdlgg.cpp:246 src/generic/fontdlgg.cpp:246 -msgid "Underline" -msgstr "" - -#: ../src/common/resourc2.cpp:305 ../src/common/resourc2.cpp:319 -#: ../src/common/resourc2.cpp:335 ../src/common/resourc2.cpp:349 -#: ../src/common/resourc2.cpp:1378 ../src/common/resourc2.cpp:1392 -#: ../src/common/resourc2.cpp:1408 ../src/common/resourc2.cpp:1422 -#: ../src/common/resource.cpp:1670 ../src/common/resource.cpp:1684 -#: ../src/common/resource.cpp:1701 ../src/common/resource.cpp:1715 -#: ../src/common/resource.cpp:2748 ../src/common/resource.cpp:2762 -#: ../src/common/resource.cpp:2779 ../src/common/resource.cpp:2793 -#: src/common/resourc2.cpp:305 src/common/resourc2.cpp:319 -#: src/common/resourc2.cpp:335 src/common/resourc2.cpp:349 -#: src/common/resourc2.cpp:1378 src/common/resourc2.cpp:1392 -#: src/common/resourc2.cpp:1408 src/common/resourc2.cpp:1422 -#: src/common/resource.cpp:1653 src/common/resource.cpp:1667 -#: src/common/resource.cpp:1683 src/common/resource.cpp:1697 -#: src/common/resource.cpp:2726 src/common/resource.cpp:2740 -#: src/common/resource.cpp:2756 src/common/resource.cpp:2770 -msgid "Unexpected end of file whilst parsing resource." -msgstr "" - -#: ../src/common/mimetype.cpp:1021 src/common/mimetype.cpp:985 -#, c-format -msgid "Unknown field in file %s, line %d: '%s'." -msgstr "" - -#: ../src/common/mimetype.cpp:381 src/common/mimetype.cpp:363 -#, c-format -msgid "Unmatched '{' in an entry for mime type %s." -msgstr "" - -#: ../src/common/docview.cpp:1703 ../src/common/docview.cpp:1707 -#: ../src/common/docview.cpp:1718 ../src/common/docview.cpp:1722 -#: ../src/common/docview.cpp:1745 ../src/common/docview.cpp:1749 -#: src/common/docview.cpp:1665 src/common/docview.cpp:1680 -#: src/common/docview.cpp:1707 -msgid "Unnamed command" -msgstr "" - -#: ../src/common/resourc2.cpp:687 ../src/common/resource.cpp:2053 -#: src/common/resourc2.cpp:687 src/common/resource.cpp:2035 -#, c-format -msgid "Unrecognized style %s whilst parsing resource." -msgstr "" - -#: ../src/msw/clipbrd.cpp:220 ../src/msw/clipbrd.cpp:330 -#: src/msw/clipbrd.cpp:220 src/msw/clipbrd.cpp:330 -msgid "Unsupported clipboard format." -msgstr "" - -#: ../src/generic/dirdlgg.cpp:227 src/generic/dirdlgg.cpp:227 -msgid "User" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:228 src/generic/dirdlgg.cpp:228 -msgid "User Local" -msgstr "" - -#: ../src/common/valtext.cpp:188 src/common/valtext.cpp:144 -#: src/common/valtext.cpp:155 src/common/valtext.cpp:164 -#: src/common/valtext.cpp:172 src/common/valtext.cpp:180 -#: src/common/valtext.cpp:189 -msgid "Validation conflict" -msgstr "" - -#: ../src/generic/dirdlgg.cpp:229 src/generic/dirdlgg.cpp:229 -msgid "Variables" -msgstr "" - -#: ../src/common/docview.cpp:1291 ../src/common/docview.cpp:1295 -#: src/common/docview.cpp:1266 -msgid "Views" -msgstr "" - -#: ../src/common/docview.cpp:401 ../src/common/log.cpp:478 -#: ../src/common/resource.cpp:121 src/common/docview.cpp:368 -#: src/common/resource.cpp:121 -msgid "Warning" -msgstr "" - -#: ../src/common/log.cpp:329 src/common/log.cpp:336 -msgid "Warning: " -msgstr "" - -#: ../src/generic/dcpsg.cpp:1967 ../src/generic/dcpsg.cpp:1968 -#: src/generic/dcpsg.cpp:1925 -msgid "X Scaling" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1976 ../src/generic/dcpsg.cpp:1977 -#: src/generic/dcpsg.cpp:1934 -msgid "X Translation" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1971 ../src/generic/dcpsg.cpp:1972 -#: src/generic/dcpsg.cpp:1929 -msgid "Y Scaling" -msgstr "" - -#: ../src/generic/dcpsg.cpp:1980 ../src/generic/dcpsg.cpp:1981 -#: src/generic/dcpsg.cpp:1938 -msgid "Y Translation" -msgstr "" - -#: ../src/generic/msgdlgg.cpp:109 src/generic/msgdlgg.cpp:130 -msgid "Yes" -msgstr "" - -#: ../src/common/docview.cpp:1814 ../src/common/docview.cpp:1818 -#: src/common/docview.cpp:1777 -msgid "[EMPTY]" -msgstr "" - -#: ../src/common/time.cpp:358 src/common/time.cpp:358 -msgid "am" -msgstr "" - -#: ../src/common/fileconf.cpp:1266 src/common/CVS/Base/fileconf.cpp:1269 -#: src/common/fileconf.cpp:1269 -#, c-format -msgid "attempt to change immutable key '%s' ignored." -msgstr "" - -#: ../src/common/string.cpp:1703 src/common/string.cpp:1430 -msgid "bad index in wxArrayString::Remove" -msgstr "" - -#: ../src/common/file.cpp:273 src/common/file.cpp:268 -#, c-format -msgid "can't close file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:403 src/msw/registry.cpp:403 -#, c-format -msgid "can't close registry key '%s'" -msgstr "" - -#: ../src/common/file.cpp:563 src/common/file.cpp:520 -#, c-format -msgid "can't commit changes to file '%s'" -msgstr "" - -#: ../src/common/file.cpp:224 src/common/file.cpp:215 -#, c-format -msgid "can't create file '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:386 src/msw/registry.cpp:386 -#, c-format -msgid "can't create registry key '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:467 src/msw/registry.cpp:467 -#, c-format -msgid "can't delete key '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:736 src/common/CVS/Base/fileconf.cpp:742 -#: src/common/fileconf.cpp:742 -#, c-format -msgid "can't delete user configuration file '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:492 src/msw/registry.cpp:492 -#, c-format -msgid "can't delete value '%s' from key '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:503 src/msw/registry.cpp:503 -#, c-format -msgid "can't delete value of key '%s'" -msgstr "" - -#: src/common/file.cpp:447 -#, c-format -msgid "can't determine if the end of file is reached on descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:780 src/msw/registry.cpp:780 -#, c-format -msgid "can't enumerate subkeys of key '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:735 src/msw/registry.cpp:735 -#, c-format -msgid "can't enumerate values of key '%s'" -msgstr "" - -#: ../src/common/file.cpp:418 src/common/file.cpp:413 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "" - -#: ../src/msw/utils.cpp:584 src/msw/utils.cpp:561 -msgid "can't find user's HOME, using current directory." -msgstr "" - -#: ../src/common/file.cpp:332 src/common/file.cpp:327 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:335 src/msw/registry.cpp:335 -#, c-format -msgid "can't get info about registry key '%s'" -msgstr "" - -#: ../src/common/file.cpp:386 src/common/file.cpp:381 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "" - -#: ../src/common/file.cpp:259 src/common/file.cpp:254 -#, c-format -msgid "can't open file '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:183 src/common/CVS/Base/fileconf.cpp:186 -#: src/common/fileconf.cpp:186 -#, c-format -msgid "can't open global configuration file '%s'." -msgstr "" - -#: ../src/msw/registry.cpp:361 src/msw/registry.cpp:361 -#, c-format -msgid "can't open registry key '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:195 src/common/CVS/Base/fileconf.cpp:198 -#: src/common/fileconf.cpp:198 -#, c-format -msgid "can't open user configuration file '%s'." -msgstr "" - -#: ../src/common/fileconf.cpp:642 src/common/CVS/Base/fileconf.cpp:646 -#: src/common/fileconf.cpp:646 -msgid "can't open user configuration file." -msgstr "" - -#: ../src/common/file.cpp:299 src/common/file.cpp:294 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:658 src/msw/registry.cpp:658 -#, c-format -msgid "can't read value of '%s'" -msgstr "" - -#: ../src/msw/registry.cpp:569 ../src/msw/registry.cpp:608 -#: src/msw/registry.cpp:569 src/msw/registry.cpp:608 -#, c-format -msgid "can't read value of key '%s'" -msgstr "" - -#: ../src/common/file.cpp:558 src/common/file.cpp:515 -#, c-format -msgid "can't remove file '%s'" -msgstr "" - -#: ../src/common/file.cpp:574 src/common/file.cpp:531 -#, c-format -msgid "can't remove temporary file '%s'" -msgstr "" - -#: ../src/common/file.cpp:372 src/common/file.cpp:367 -#, c-format -msgid "can't seek on file descriptor %d" -msgstr "" - -#: ../src/msw/registry.cpp:594 ../src/msw/registry.cpp:682 -#: src/msw/registry.cpp:594 src/msw/registry.cpp:682 -#, c-format -msgid "can't set value of '%s'" -msgstr "" - -#: src/common/CVS/Base/fileconf.cpp:594 src/common/fileconf.cpp:594 -msgid "can't set value of a group!" -msgstr "" - -#: ../src/common/textfile.cpp:237 src/common/textfile.cpp:229 -#, c-format -msgid "can't write file '%s' to disk." -msgstr "" - -#: ../src/common/file.cpp:317 src/common/file.cpp:312 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "" - -#: ../src/common/fileconf.cpp:649 src/common/CVS/Base/fileconf.cpp:653 -#: src/common/fileconf.cpp:653 -msgid "can't write user configuration file." -msgstr "" - -#: ../src/common/intl.cpp:301 src/common/intl.cpp:300 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "" - -#: ../src/common/filefn.cpp:1527 src/common/filefn.cpp:1497 -msgid "empty file name in wxFindFileInPath" -msgstr "" - -#: ../src/common/fileconf.cpp:1253 src/common/CVS/Base/fileconf.cpp:1256 -#: src/common/fileconf.cpp:1256 -#, c-format -msgid "entry '%s' appears more than once in group '%s'" -msgstr "" - -#: ../src/common/fileconf.cpp:335 src/common/CVS/Base/fileconf.cpp:338 -#: src/common/fileconf.cpp:338 -#, c-format -msgid "file '%s', line %d: '%s' ignored after group header." -msgstr "" - -#: ../src/common/fileconf.cpp:361 src/common/CVS/Base/fileconf.cpp:357 -#: src/common/fileconf.cpp:357 -#, c-format -msgid "file '%s', line %d: '=' expected." -msgstr "" - -#: ../src/common/fileconf.cpp:388 src/common/CVS/Base/fileconf.cpp:384 -#: src/common/fileconf.cpp:384 -#, c-format -msgid "file '%s', line %d: key '%s' was first found at line %d." -msgstr "" - -#: ../src/common/fileconf.cpp:377 src/common/CVS/Base/fileconf.cpp:373 -#: src/common/fileconf.cpp:373 -#, c-format -msgid "file '%s', line %d: value for immutable key '%s' ignored." -msgstr "" - -#: ../src/common/fileconf.cpp:303 src/common/CVS/Base/fileconf.cpp:307 -#: src/common/fileconf.cpp:307 -#, c-format -msgid "file '%s': unexpected character %c at line %d." -msgstr "" - -#: ../src/common/date.cpp:374 ../src/common/date.cpp:392 -#: ../src/common/date.cpp:406 src/common/date.cpp:373 src/common/date.cpp:391 -#: src/common/date.cpp:405 -msgid "invalid date" -msgstr "" - -#: ../src/common/date.cpp:356 src/common/date.cpp:355 -msgid "invalid day" -msgstr "" - -#: ../src/common/file.cpp:457 src/common/file.cpp:452 -msgid "invalid eof() return value." -msgstr "" - -#: ../src/common/log.cpp:690 src/common/log.cpp:685 -msgid "invalid message box return value" -msgstr "" - -#: ../src/common/date.cpp:364 src/common/date.cpp:363 -msgid "invalid month" -msgstr "" - -#: ../src/common/intl.cpp:432 src/common/intl.cpp:431 -#, c-format -msgid "locale '%s' can not be set." -msgstr "" - -#: ../src/common/intl.cpp:296 src/common/intl.cpp:295 -#, c-format -msgid "looking for catalog '%s' in path '%s'." -msgstr "" - -#: ../src/common/time.cpp:360 src/common/time.cpp:360 -msgid "pm" -msgstr "" - -#: ../src/common/string.cpp:1719 src/common/string.cpp:1446 -msgid "removing inexistent element in wxArrayString::Remove" -msgstr "" - -#: ../src/common/intl.cpp:521 src/common/intl.cpp:519 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "" - -#: ../src/common/intl.cpp:526 src/common/intl.cpp:524 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "" - -#: ../src/common/fileconf.cpp:1373 src/common/CVS/Base/fileconf.cpp:1376 -#: src/common/fileconf.cpp:1376 -#, c-format -msgid "unexpected \" at position %d in '%s'." -msgstr "" - -#: src/common/log.cpp:362 -msgid "unknown log level in wxLog::DoLog" -msgstr "" - -#: src/common/log.cpp:559 -msgid "unknown log level in wxLogGui::DoLog" -msgstr "" - -#: ../src/common/file.cpp:367 src/common/file.cpp:362 -msgid "unknown seek origin" -msgstr "" - -#: ../src/common/docview.cpp:370 src/common/docview.cpp:337 -msgid "unnamed" -msgstr "" - -#: ../src/common/docview.cpp:1055 src/common/docview.cpp:1009 -#, c-format -msgid "unnamed%d" -msgstr "" - -#: ../src/common/intl.cpp:306 src/common/intl.cpp:305 -#, c-format -msgid "using catalog '%s' from '%s'." -msgstr "" - -#: ../src/common/layout.cpp:1366 src/common/layout.cpp:1326 -msgid "wxExpandSizer has no parent!" -msgstr "" - -#: ../src/common/prntbase.cpp:635 src/common/prntbase.cpp:632 -msgid "" -"wxPrintPreviewBase::RenderPage: must use wxPrintPreviewBase::SetCanvas to " -"let me know about the canvas!" -msgstr "" - -#: ../src/common/filefn.cpp:1134 src/common/filefn.cpp:1123 -msgid "wxWindows: error finding temporary file name.\n" -msgstr "" - -#: ../src/gtk/filedlg.cpp:79 -msgid "Please choose an existing file." -msgstr "" - -#: ../src/generic/printps.cpp:173 ../src/generic/printps.cpp:177 -msgid "Printing..." -msgstr "" - -#: ../src/generic/printps.cpp:207 ../src/generic/printps.cpp:211 -#, c-format -msgid "Printing page %d..." -msgstr "" - -#: ../src/generic/dcpsg.cpp:2188 ../src/generic/dcpsg.cpp:2189 -msgid "A4 sheet, 210 x 297 mm" -msgstr "" - -#: ../src/common/dynlib.cpp:187 -#, c-format -msgid "Couldn't find symbol '%s' in a dynamic library" -msgstr "" - -#: ../src/common/dynlib.cpp:274 -#, c-format -msgid "Failed to load shared library '%s'" -msgstr "" - -#: ../src/common/file.cpp:452 -#, c-format -msgid "" -"can't determine if the end of file is reached on descriptor " -"%d" -msgstr "" - -#: ../src/common/fileconf.cpp:611 -#, c-format -msgid "Config entry name cannot start with '%c'." -msgstr "" - -#: ../src/common/filefn.cpp:1003 -#, c-format -msgid "Directory '%s' couldn't be created" -msgstr "" - -#: ../src/common/string.cpp:1687 -msgid "bad index in wxArrayString::Insert" -msgstr "" - -#: ../src/common/valtext.cpp:140 -#, c-format -msgid "'%s' is invalid" -msgstr "" - -#: ../src/common/valtext.cpp:160 -#, c-format -msgid "'%s' should only contain ASCII characters." -msgstr "" - -#: ../src/common/valtext.cpp:166 -#, c-format -msgid "'%s' should only contain alphabetic characters." -msgstr "" - -#: ../src/common/valtext.cpp:172 -#, c-format -msgid "'%s' should only contain alphabetic or numeric characters." -msgstr "" - -#: ../src/common/valtext.cpp:178 -#, c-format -msgid "'%s' should be numeric." -msgstr "" - -#: ../src/common/imagjpeg.cpp:174 -msgid "Couldn't load a JPEG image - probably file is corrupted." -msgstr "" - -#: ../src/common/imagjpeg.cpp:287 -msgid "Couldn't save a JPEG image - probably file is corrupted." -msgstr "" - -#: ../src/motif/app.cpp:559 -#, c-format -msgid "wxWindows could not open display for '%s': exiting." -msgstr "" - -#: ../src/msw/app.cpp:198 -msgid "Could not initialise Rich Edit DLL" -msgstr "" - -#: ../src/msw/app.cpp:698 -msgid "Unrecoverable program error detected: the application will terminate." -msgstr "" - -#: ../src/msw/app.cpp:700 -msgid "Fatal Error" -msgstr "" - -#: ../src/msw/app.cpp:1165 -msgid "Fatal error: exiting" -msgstr "" - -#: ../src/msw/dialog.cpp:140 ../src/msw/dialog.cpp:145 -msgid "Failed to create dialog." -msgstr "" - -#: ../src/unix/threadpsx.cpp:296 ../src/unix/threadpsx.cpp:302 -msgid "Cannot start thread: error writing TLS" -msgstr "" - -#: ../src/unix/threadpsx.cpp:477 ../src/unix/threadpsx.cpp:518 -msgid "Cannot retrieve thread scheduling policy." -msgstr "" - -#: ../src/unix/threadpsx.cpp:485 ../src/unix/threadpsx.cpp:526 -#, c-format -msgid "Cannot get priority range for scheduling policy %d." -msgstr "" - -#: ../src/unix/threadpsx.cpp:768 ../src/unix/threadpsx.cpp:813 -msgid "Thread module initialization failed: failed to create thread key" -msgstr "" - -#: ../src/unix/utilsunx.cpp:211 -msgid "Waiting for subprocess termination failed" -msgstr "" - -#: ../src/unix/utilsunx.cpp:449 -msgid "Cannot get the hostname" -msgstr "" - -#: ../src/unix/utilsunx.cpp:485 -msgid "Cannot get the official hostname" -msgstr "" - -#: ../src/unix/utilsunx.cpp:547 ../src/unix/utilsunx.cpp:555 -msgid "Error " -msgstr "" - -#: ../src/msw/mdi.cpp:355 -msgid "Failed to create MDI parent frame." -msgstr "" - -#: ../src/msw/window.cpp:1342 -msgid "" -"Can't find dummy dialog template!\n" -"Check resource include path for finding wx.rc." -msgstr "" - -#: ../src/msw/window.cpp:1368 -#, c-format -msgid "" -"Can't create window of class %s!\n" -"Possible Windows 3.x compatibility problem?" -msgstr "" diff --git a/ltconfig b/ltconfig deleted file mode 100755 index 62ac4790fe..0000000000 --- a/ltconfig +++ /dev/null @@ -1,2101 +0,0 @@ -#! /bin/sh - -# ltconfig - Create a system-specific libtool. -# Copyright (C) 1996-1998 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 -# -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# A lot of this script is taken from autoconf-2.10. - -# Check that we are running under the correct shell. -SHELL=${CONFIG_SHELL-/bin/sh} -echo=echo -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell. - exec "$SHELL" "$0" --no-reexec ${1+"$@"} -fi - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi - -if test "X${echo_test_string+set}" != "Xset"; then - # find a string as large as possible, as long as the shell can cope with it - for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do - # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... - if (echo_test_string="`eval $cmd`") 2>/dev/null && - echo_test_string="`eval $cmd`" && - (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null; then - break - fi - done -fi - -if test "X`($echo '\t') 2>/dev/null`" != 'X\t' || - test "X`($echo "$echo_test_string") 2>/dev/null`" != X"$echo_test_string"; then - # The Solaris, AIX, and Digital Unix default echo programs unquote - # backslashes. This makes it impossible to quote backslashes using - # echo "$something" | sed 's/\\/\\\\/g' - # - # So, first we look for a working echo in the user's PATH. - - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH /usr/ucb; do - if test -f $dir/echo && - test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($dir/echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$dir/echo" - break - fi - done - IFS="$save_ifs" - - if test "X$echo" = Xecho; then - # We didn't find a better echo, so look for alternatives. - if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' && - test "X`(print -r "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # This shell has a builtin print -r that does the trick. - echo='print -r' - elif test -f /bin/ksh && test "X$CONFIG_SHELL" != X/bin/ksh; then - # If we have ksh, try running ltconfig again with it. - ORIGINAL_CONFIG_SHELL="${CONFIG_SHELL-/bin/sh}" - export ORIGINAL_CONFIG_SHELL - CONFIG_SHELL=/bin/ksh - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$0" --no-reexec ${1+"$@"} - else - # Try using printf. - echo='printf %s\n' - if test "X`($echo '\t') 2>/dev/null`" = 'X\t' && - test "X`($echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - # Cool, printf works - : - elif test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$ORIGINAL_CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - CONFIG_SHELL="$ORIGINAL_CONFIG_SHELL" - export CONFIG_SHELL - SHELL="$CONFIG_SHELL" - export SHELL - echo="$CONFIG_SHELL $0 --fallback-echo" - elif test "X`("$CONFIG_SHELL" "$0" --fallback-echo '\t') 2>/dev/null`" = 'X\t' && - test "X`("$CONFIG_SHELL" "$0" --fallback-echo "$echo_test_string") 2>/dev/null`" = X"$echo_test_string"; then - echo="$CONFIG_SHELL $0 --fallback-echo" - else - # maybe with a smaller string... - prev=: - - for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do - if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null; then - break - fi - prev="$cmd" - done - - if test "$prev" != 'sed 50q "$0"'; then - echo_test_string=`eval $prev` - export echo_test_string - exec "${ORIGINAL_CONFIG_SHELL}" "$0" ${1+"$@"} - else - # Oops. We lost completely, so just stick with echo. - echo=echo - fi - fi - fi - fi -fi - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - -# Same as above, but do not quote variable references. -double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - -# The name of this program. -progname=`$echo "X$0" | $Xsed -e 's%^.*/%%'` - -# Constants: -PROGRAM=ltconfig -PACKAGE=libtool -VERSION=1.2d -ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.c 1>&5' -ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.c $LIBS 1>&5' -rm="rm -f" - -help="Try \`$progname --help' for more information." - -# Global variables: -default_ofile=libtool -can_build_shared=yes -enable_shared=yes -# All known linkers require a `.a' archive for static linking. -enable_static=yes -ltmain= -silent= -srcdir= -ac_config_guess= -ac_config_sub= -host= -nonopt= -ofile="$default_ofile" -verify_host=yes -with_gcc=no -with_gnu_ld=no -need_locks=yes -objext=o -libext=a - -old_AR="$AR" -old_CC="$CC" -old_CFLAGS="$CFLAGS" -old_CPPFLAGS="$CPPFLAGS" -old_LD="$LD" -old_LN_S="$LN_S" -old_NM="$NM" -old_RANLIB="$RANLIB" -old_DLLTOOL="$DLLTOOL" -old_AS="$AS" - -# Parse the command line options. -args= -prev= -for option -do - case "$option" in - -*=*) optarg=`echo "$option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - eval "$prev=\$option" - prev= - continue - fi - - case "$option" in - --help) cat <&2 - echo "$help" 1>&2 - exit 1 - ;; - - *) - if test -z "$ltmain"; then - ltmain="$option" - elif test -z "$host"; then -# This generates an unnecessary warning for sparc-sun-solaris4.1.3_U1 -# if test -n "`echo $option| sed 's/[-a-z0-9.]//g'`"; then -# echo "$progname: warning \`$option' is not a valid host type" 1>&2 -# fi - host="$option" - else - echo "$progname: too many arguments" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac -done - -if test -z "$ltmain"; then - echo "$progname: you must specify a LTMAIN file" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -if test ! -f "$ltmain"; then - echo "$progname: \`$ltmain' does not exist" 1>&2 - echo "$help" 1>&2 - exit 1 -fi - -# Quote any args containing shell metacharacters. -ltconfig_args= -for arg -do - case "$arg" in - *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) - ltconfig_args="$ltconfig_args '$arg'" ;; - *) ltconfig_args="$ltconfig_args $arg" ;; - esac -done - -# A relevant subset of AC_INIT. - -# File descriptor usage: -# 0 standard input -# 1 file creation -# 2 errors and warnings -# 3 some systems may open it to /dev/tty -# 4 used on the Kubota Titan -# 5 compiler messages saved in config.log -# 6 checking for... messages and results -if test "$silent" = yes; then - exec 6>/dev/null -else - exec 6>&1 -fi -exec 5>>./config.log - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi -if test "${LANG+set}" = set; then LANG=C; export LANG; fi - -if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then - # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. - if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then - ac_n= ac_c=' -' ac_t=' ' - else - ac_n=-n ac_c= ac_t= - fi -else - ac_n= ac_c='\c' ac_t= -fi - -if test -z "$srcdir"; then - # Assume the source directory is the same one as the path to LTMAIN. - srcdir=`$echo "$ltmain" | $Xsed -e 's%/[^/]*$%%'` - test "$srcdir" = "$ltmain" && srcdir=. -fi - -trap "$rm conftest*; exit 1" 1 2 15 -if test "$verify_host" = yes; then - # Check for config.guess and config.sub. - ac_aux_dir= - for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do - if test -f $ac_dir/config.guess; then - ac_aux_dir=$ac_dir - break - fi - done - if test -z "$ac_aux_dir"; then - echo "$progname: cannot find config.guess in $srcdir $srcdir/.. $srcdir/../.." 1>&2 - echo "$help" 1>&2 - exit 1 - fi - ac_config_guess=$ac_aux_dir/config.guess - ac_config_sub=$ac_aux_dir/config.sub - - # Make sure we can run config.sub. - if $SHELL $ac_config_sub sun4 >/dev/null 2>&1; then : - else - echo "$progname: cannot run $ac_config_sub" 1>&2 - echo "$help" 1>&2 - exit 1 - fi - - echo $ac_n "checking host system type""... $ac_c" 1>&6 - - host_alias=$host - case "$host_alias" in - "") - if host_alias=`$SHELL $ac_config_guess`; then : - else - echo "$progname: cannot guess host type; you must specify one" 1>&2 - echo "$help" 1>&2 - exit 1 - fi ;; - esac - host=`$SHELL $ac_config_sub $host_alias` - echo "$ac_t$host" 1>&6 - - # Make sure the host verified. - test -z "$host" && exit 1 - -elif test -z "$host"; then - echo "$progname: you must specify a host type if you use \`--no-verify'" 1>&2 - echo "$help" 1>&2 - exit 1 -else - host_alias=$host -fi - -# Transform linux* to *-*-linux-gnu*, to support old configure scripts. -case "$host_os" in -linux-gnu*) ;; -linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` -esac - -host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` -host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` -host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` - -case "$host_os" in -aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "${COLLECT_NAMES+set}" != set; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; -esac - -# Determine commands to create old-style static archives. -old_archive_cmds='$AR cru $oldlib$oldobjs' -old_postinstall_cmds='chmod 644 $oldlib' -old_postuninstall_cmds= - -# Set a sane default for `AR'. -test -z "$AR" && AR=ar - -# If RANLIB is not set, then run the test. -if test "${RANLIB+set}" != "set"; then - result=no - - echo $ac_n "checking for ranlib... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/ranlib; then - RANLIB="ranlib" - result="ranlib" - break - fi - done - IFS="$save_ifs" - - echo "$ac_t$result" 1>&6 -fi - -if test -n "$RANLIB"; then - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" - old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" -fi - -# Set sane defaults for `DLLTOOL' and `AS', used on cygwin32. -test -z "$DLLTOOL" && DLLTOOL=dlltool -test -z "$AS" && AS=as - -# Check to see if we are using GCC. -if test "$with_gcc" != yes || test -z "$CC"; then - # If CC is not set, then try to find GCC or a usable CC. - if test -z "$CC"; then - echo $ac_n "checking for gcc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - for dir in $PATH; do - IFS="$save_ifs" - test -z "$dir" && dir=. - if test -f $dir/gcc; then - CC="gcc" - break - fi - done - IFS="$save_ifs" - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - fi - - # Not "gcc", so try "cc", rejecting "/usr/ucb/cc". - if test -z "$CC"; then - echo $ac_n "checking for cc... $ac_c" 1>&6 - IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" - cc_rejected=no - for dir in $PATH; do - test -z "$dir" && dir=. - if test -f $dir/cc; then - if test "$dir/cc" = "/usr/ucb/cc"; then - cc_rejected=yes - continue - fi - CC="cc" - break - fi - done - IFS="$save_ifs" - if test $cc_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $CC - shift - if test $# -gt 0; then - # We chose a different compiler from the bogus one. - # However, it has the same name, so the bogon will be chosen - # first if we set CC to just the name; use the full file name. - shift - set dummy "$dir/cc" "$@" - shift - CC="$@" - fi - fi - - if test -n "$CC"; then - echo "$ac_t$CC" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$CC"; then - echo "$progname: error: no acceptable cc found in \$PATH" 1>&2 - exit 1 - fi - fi - - # Now see if the compiler is really GCC. - with_gcc=no - echo $ac_n "checking whether we are using GNU C... $ac_c" 1>&6 - echo "$progname:530: checking whether we are using GNU C" >&5 - - $rm conftest.c - cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then - with_gcc=yes - fi - $rm conftest.c - echo "$ac_t$with_gcc" 1>&6 -fi - -# Allow CC to be a program name with arguments. -set dummy $CC -compiler="$2" - -echo $ac_n "checking for object suffix... $ac_c" 1>&6 -$rm conftest* -echo 'int i = 1;' > conftest.c -echo "$progname:552: checking for object suffix" >& 5 -if { (eval echo $progname:553: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; }; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - for ac_file in conftest.*; do - case $ac_file in - *.c) ;; - *) objext=`echo $ac_file | sed -e s/conftest.//` ;; - esac - done -else - cat conftest.err 1>&5 - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 -fi -$rm conftest* -echo "$ac_t$objext" 1>&6 - -echo $ac_n "checking for $compiler option to produce PIC... $ac_c" 1>&6 -pic_flag= -special_shlib_compile_flags= -wl= -link_static_flag= -no_builtin_flag= - -if test "$with_gcc" = yes; then - wl='-Wl,' - link_static_flag='-static' - - case "$host_os" in - aix3* | aix4* | irix5* | irix6* | osf3* | osf4*) - # PIC is the default for these OSes. - ;; - cygwin32* | mingw32* | os2*) - # We can build DLLs from non-PIC. - ;; - amigaos*) - # FIXME: we need at least 68020 code to build shared libraries, but - # adding the `-m68020' flag to GCC prevents building anything better, - # like `-m68040'. - pic_flag='-m68020 -resident32 -malways-restore-a4' - ;; - *) - pic_flag='-fPIC' - ;; - esac -else - # PORTME Check for PIC flags for the system compiler. - case "$host_os" in - aix3* | aix4*) - # All AIX code is PIC. - link_static_flag='-bnso -bI:/lib/syscalls.exp' - ;; - - hpux9* | hpux10* | hpux11*) - # Is there a better link_static_flag that works with the bundled CC? - wl='-Wl,' - link_static_flag="${wl}-a ${wl}archive" - pic_flag='+Z' - ;; - - irix5* | irix6*) - wl='-Wl,' - link_static_flag='-non_shared' - # PIC (with -KPIC) is the default. - ;; - - cygwin32* | mingw32* | os2*) - # We can build DLLs from non-PIC. - ;; - - osf3* | osf4*) - # All OSF/1 code is PIC. - wl='-Wl,' - link_static_flag='-non_shared' - ;; - - sco3.2v5*) - pic_flag='-Kpic' - link_static_flag='-dn' - special_shlib_compile_flags='-belf' - ;; - - solaris*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - sunos4*) - pic_flag='-PIC' - link_static_flag='-Bstatic' - wl='-Qoption ld ' - ;; - - sysv4.2uw2* | sysv5*) - pic_flag='-KPIC' - link_static_flag='-Bstatic' - wl='-Wl,' - ;; - - uts4*) - pic_flag='-pic' - link_static_flag='-Bstatic' - ;; - - *) - can_build_shared=no - ;; - esac -fi - -if test -n "$pic_flag"; then - echo "$ac_t$pic_flag" 1>&6 - - # Check to make sure the pic_flag actually works. - echo $ac_n "checking if $compiler PIC flag $pic_flag works... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $pic_flag -DPIC" - echo "$progname:674: checking if $compiler PIC flag $pic_flag works" >&5 - if { (eval echo $progname:675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.$objext; then - # Append any warnings to the config.log. - cat conftest.err 1>&5 - - # On HP-UX, both CC and GCC only warn that PIC is supported... then they - # create non-PIC objects. So, if there were any warnings, we assume that - # PIC is not supported. - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - can_build_shared=no - pic_flag= - else - echo "$ac_t"yes 1>&6 - pic_flag=" $pic_flag" - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - can_build_shared=no - pic_flag= - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - echo "$ac_t"none 1>&6 -fi - -# Check to see if options -o and -c are simultaneously supported by compiler -echo $ac_n "checking if $compiler supports -c -o file.o... $ac_c" 1>&6 -$rm conftest* -echo "int some_variable = 0;" > conftest.c -save_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -c -o conftest2.o" -echo "$progname:709: checking if $compiler supports -c -o file.o" >&5 -if { (eval echo $progname:710: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest2.o; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_c_o=no - else - echo "$ac_t"yes 1>&6 - compiler_c_o=yes - fi -else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_c_o=no - echo "$ac_t"no 1>&6 -fi -CFLAGS="$save_CFLAGS" -$rm conftest* - -if test x"$compiler_c_o" = x"yes"; then - # Check to see if we can write to a .lo - echo $ac_n "checking if $compiler supports -c -o file.lo... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -c -o conftest.lo" - echo "$progname:737: checking if $compiler supports -c -o file.lo" >&5 -if { (eval echo $progname:738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.lo; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_o_lo=no - else - echo "$ac_t"yes 1>&6 - compiler_o_lo=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_o_lo=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* -else - compiler_o_lo=no -fi - -# Check to see if we can do hard links to lock some files if needed -hard_links="nottested" -if test "$compiler_c_o" = no && test "$need_locks" != no; then - # do not overwrite the value of need_locks provided by the user - echo $ac_n "checking if we can lock with hard links... $ac_c" 1>&6 - hard_links=yes - $rm conftest* - ln conftest.a conftest.b 2>/dev/null && hard_links=no - touch conftest.a - ln conftest.a conftest.b 2>&5 || hard_links=no - ln conftest.a conftest.b 2>/dev/null && hard_links=no - echo "$ac_t$hard_links" 1>&6 - $rm conftest* - if test "$hard_links" = no; then - echo "*** WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2 - need_locks=warn - fi -else - need_locks=no -fi - -if test "$with_gcc" = yes; then - # Check to see if options -fno-rtti -fno-exceptions are supported by compiler - echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions ... $ac_c" 1>&6 - $rm conftest* - echo "int some_variable = 0;" > conftest.c - save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.c" - echo "$progname:789: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 - if { (eval echo $progname:790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>conftest.err; } && test -s conftest.o; then - - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - echo "$ac_t"no 1>&6 - compiler_rtti_exceptions=no - else - echo "$ac_t"yes 1>&6 - compiler_rtti_exceptions=yes - fi - else - # Append any errors to the config.log. - cat conftest.err 1>&5 - compiler_rtti_exceptions=no - echo "$ac_t"no 1>&6 - fi - CFLAGS="$save_CFLAGS" - $rm conftest* - - if test "$compiler_rtti_exceptions" = "yes"; then - no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' - else - no_builtin_flag=' -fno-builtin' - fi - -fi - -# Check for any special shared library compilation flags. -if test -n "$special_shlib_compile_flags"; then - echo "$progname: warning: \`$CC' requires \`$special_shlib_compile_flags' to build shared libraries" 1>&2 - if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$special_shlib_compile_flags[ ]" >/dev/null; then : - else - echo "$progname: add \`$special_shlib_compile_flags' to the CC or CFLAGS env variable and reconfigure" 1>&2 - can_build_shared=no - fi -fi - -echo $ac_n "checking if $compiler static flag $link_static_flag works... $ac_c" 1>&6 -$rm conftest* -echo 'main(){return(0);}' > conftest.c -save_LDFLAGS="$LDFLAGS" -LDFLAGS="$LDFLAGS $link_static_flag" -echo "$progname:833: checking if $compiler static flag $link_static_flag works" >&5 -if { (eval echo $progname:834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - echo "$ac_t$link_static_flag" 1>&6 -else - echo "$ac_t"none 1>&6 - link_static_flag= -fi -LDFLAGS="$save_LDFLAGS" -$rm conftest* - -if test -z "$LN_S"; then - # Check to see if we can use ln -s, or we need hard links. - echo $ac_n "checking whether ln -s works... $ac_c" 1>&6 - $rm conftestdata - if ln -s X conftestdata 2>/dev/null; then - $rm conftestdata - LN_S="ln -s" - else - LN_S=ln - fi - if test "$LN_S" = "ln -s"; then - echo "$ac_t"yes 1>&6 - else - echo "$ac_t"no 1>&6 - fi -fi - -# Make sure LD is an absolute path. -if test -z "$LD"; then - ac_prog=ld - if test "$with_gcc" = yes; then - # Check if gcc -print-prog-name=ld gives a path. - echo $ac_n "checking for ld used by GCC... $ac_c" 1>&6 - echo "$progname:866: checking for ld used by GCC" >&5 - ac_prog=`($CC -print-prog-name=ld) 2>&5` - case "$ac_prog" in - # Accept absolute paths. - /* | [A-Za-z]:/*) - re_direlt='/[^/][^/]*/\.\./' - sub_uncdrive='s%^\([A-Za-z]\):/%//\1/%' - # Canonicalize the path of ld - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` - done - case "$host_os" in - cygwin*) - # Convert to a UNC path for cygwin - test -z "$LD" && LD=`echo X$ac_prog | $Xsed -e "$sub_uncdrive"` - ;; - *) - test -z "$LD" && LD="$ac_prog" - ;; - esac - ;; - ## - ## FIXME: The code fails later on if we try to use an $LD with - ## '\\' path separators. - ## - [A-Za-z]:[\\]*) - re_direlt='\\[^\\][^\\]*\\\.\.\(\\\)' - sub_uncdrive='s%^\([A-Za-z]\):\\%//\1/%' - sub_uncdir='s%\\%/%g' - # Canonicalize the path of ld - while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do - ac_prog=`echo $ac_prog| sed "s%$re_direlt%\1%"` - done - case "$host_os" in - cygwin*) - # Convert to a UNC path for cygwin - test -z "$LD" && LD=`echo X$ac_prog | $Xsed -e "$sub_uncdrive" -e "$sub_uncdir"` - ;; - *) - test -z "$LD" && LD="$ac_prog" - ;; - esac - ;; - "") - # If it fails, then pretend we are not using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - elif test "$with_gnu_ld" = yes; then - echo $ac_n "checking for GNU ld... $ac_c" 1>&6 - echo "$progname:920: checking for GNU ld" >&5 - else - echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 - echo "$progname:923: checking for non-GNU ld" >&5 - fi - - if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog"; then - LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" - fi - - if test -n "$LD"; then - echo "$ac_t$LD" 1>&6 - else - echo "$ac_t"no 1>&6 - fi - - if test -z "$LD"; then - echo "$progname: error: no acceptable ld found in \$PATH" 1>&2 - exit 1 - fi -fi - -# Check to see if it really is or is not GNU ld. -echo $ac_n "checking if the linker ($LD) is GNU ld... $ac_c" 1>&6 -# I'd rather use --version here, but apparently some GNU ld's only accept -v. -if $LD -v 2>&1 &5; then - with_gnu_ld=yes -else - with_gnu_ld=no -fi -echo "$ac_t$with_gnu_ld" 1>&6 - -# See if the linker supports building shared libraries. -echo $ac_n "checking whether the linker ($LD) supports shared libraries... $ac_c" 1>&6 - -allow_undefined_flag= -no_undefined_flag= -archive_cmds= -archive_sym_cmds= -old_archive_from_new_cmds= -export_dynamic_flag_spec= -whole_archive_flag_spec= -hardcode_libdir_flag_spec= -hardcode_libdir_separator= -hardcode_direct=no -hardcode_minus_L=no -hardcode_shlibpath_var=unsupported -runpath_var= - -case "$host_os" in -aix3* | aix4*) - # On AIX, the GNU linker works like the native linker. - with_gnu_ld=no - ;; -esac - -ld_shlibs=yes -if test "$with_gnu_ld" = yes; then - - # See if GNU ld supports shared libraries. - case "$host_os" in - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib$libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - - sunos4*) - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs$deplibs' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - cygwin32* | mingw32*) - if test "$with_gcc" = yes; then - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - # Very, very bogus. - echo ' -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#include - -BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); - -#include -DECLARE_CYGWIN_DLL( DllMain ); -HINSTANCE __hDllInstance_base; - -BOOL APIENTRY -DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -{ - __hDllInstance_base = hInst; - return TRUE; -} -' > ltdll.c - archive_cmds='$CC -c '"`pwd`"'/ltdll.c~echo EXPORTS > $lib-def~ - $DLLTOOL --export-all --output-def $lib-def $libobjs ltdll.$objext~ - $CC -Wl,--base-file,$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 $libobjs ltdll.$objext~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC -Wl,--base-file,$soname-base $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $rm ltdll.$objext $soname-base $soname-exp' - archive_sym_cmds='$CC -c '"`pwd`"'/ltdll.c~echo EXPORTS > $lib-def~ - cat "$export_symbols" >> $lib-def~ - $CC -Wl,--base-file,$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 $libobjs ltdll.$objext~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC -Wl,--base-file,$soname-base $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $rm ltdll.$objext $soname-base $soname-exp' - old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $lib-def --output-lib $objdir/$libname.a~$rm $lib.exp' - else - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - with_gnu_ld=no - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib$libobjs`echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs' - fix_srcfile_path='`cygpath -w $srcfile`' - fi - ;; - - *) - if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then - archive_cmds='$CC -shared ${wl}-soname $wl$soname -o $lib$libobjs$deplibs' - archive_sym_cmds='$CC -shared ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib$libobjs$deplibs' - else - ld_shlibs=no - fi - ;; - esac - - if test "$ld_shlibs" = yes && test "$with_gnu_ld" = yes; then - runpath_var=LD_RUN_PATH - hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' - export_dynamic_flag_spec='${wl}--export-dynamic' - whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' - fi -else - # PORTME fill in a description of your system's linker (not GNU ld) - case "$host_os" in - aix3*) - allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp~ - $LD -o $objdir/$soname$libobjs$deplibs -bE:$lib.exp -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' - archive_sym_cmds='$LD -o $objdir/$soname$libobjs$deplibs -bE:$export_symbols -T512 -H512 -bM:SRE~$AR cru $lib $objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$with_gcc" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; - - aix4*) - allow_undefined_flag=unsupported - archive_cmds='$NM$libobjs | $global_symbol_pipe | sed '\''s/.* //'\' | sort | uniq' > $lib.exp else cat $export_symbols > $lib.exp~ - $CC -o $objdir/$soname$libobjs$deplibs ${wl}-bE:$lib.exp ${wl}-bM:SRE ${wl}-bnoentry~$AR cru $lib $objdir/$soname' - archive_sym_cmds='$CC -o $objdir/$soname$libobjs$deplibs ${wl}-bE:$export_symbols ${wl}-bM:SRE ${wl}-bnoentry~$AR cru $lib $objdir/$soname' - hardcode_direct=yes - hardcode_minus_L=yes - ;; - - amigaos*) - archive_cmds='$rm $objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $objdir/a2ixlibrary.data~$AR cru $lib$libobjs~$RANLIB $lib~(cd $objdir && a2ixlibrary -32)' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - ;; - - cygwin32* | mingw32*) - if test "$with_gcc" = yes; then - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec='-L$libdir' - allow_undefined_flag=unsupported - # Very, very bogus. - echo ' -#define WIN32_LEAN_AND_MEAN -#include -#undef WIN32_LEAN_AND_MEAN -#include - -BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); - -#include -DECLARE_CYGWIN_DLL( DllMain ); -HINSTANCE __hDllInstance_base; - -BOOL APIENTRY -DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) -{ - __hDllInstance_base = hInst; - return TRUE; -} -' > ltdll.c - archive_cmds='$CC -c '"`pwd`"'/ltdll.c~echo EXPORTS > $lib-def~ - $DLLTOOL --export-all --output-def $lib-def $libobjs ltdll.$objext~ - $CC -Wl,--base-file,$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 $libobjs ltdll.$objext~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC -Wl,--base-file,$soname-base $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $rm ltdll.$objext $soname-base $soname-exp' - archive_sym_cmds='$CC -c '"`pwd`"'/ltdll.c~echo EXPORTS > $lib-def~ - cat "$export_symbols" >> $lib-def~ - $CC -Wl,--base-file,$soname-base -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 $libobjs ltdll.$objext~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC -Wl,--base-file,$soname-base $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $DLLTOOL --as=$AS --dllname $soname --exclude-symbol=_cygwin_dll_entry@12 --def $lib-def --base-file $soname-base --output-exp $soname-exp~ - $CC $soname-exp -Wl,--dll -nostartfiles -Wl,-e,__cygwin_dll_entry@12 -o $lib $libobjs ltdll.$objext$deplibs~ - $rm ltdll.$objext $soname-base $soname-exp' - old_archive_from_new_cmds='$DLLTOOL --as=$AS --dllname $soname --def $lib-def --output-lib $objdir/$libname.a~$rm $lib.exp' - else - # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. - # hardcode_libdir_flag_spec is actually meaningless, as there is - # no search path for DLLs. - hardcode_libdir_flag_spec=' ' - allow_undefined_flag=unsupported - # Tell ltmain to make .lib files, not .a files. - libext=lib - # FIXME: Setting linknames here is a bad hack. - archive_cmds='$CC -o $lib$libobjs`echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' - # The linker will automatically build a .lib file if we build a DLL. - old_archive_from_new_cmds='true' - # FIXME: Should let the user specify the lib program. - old_archive_cmds='lib /OUT:$oldlib$oldobjs' - fix_srcfile_path='`cygpath -w $srcfile`' - fi - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3, at last, uses gcc -shared to do shared libraries. - freebsd3*) - archive_cmds='$CC -shared -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - ;; - - hpux9*) - archive_cmds='$rm $objdir/$soname~$LD -b +s +b $install_libdir -o $objdir/$soname$libobjs$deplibs~test $objdir/$soname = $lib || mv $objdir/$soname $lib' - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - hpux10* | hpux11*) - archive_cmds='$LD -b +h $soname +s +b $install_libdir -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6*) - if test "$with_gcc" = yes; then - archive_cmds='$CC -shared -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring$libobjs$deplibs' - else - archive_cmds='$LD -shared -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - ;; - - netbsd*) - # Tested with NetBSD 1.2 ld - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - openbsd*) - archive_cmds='$LD -Bshareable -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $objdir/$libname.def~$echo DATA >> $objdir/$libname.def~$echo " SINGLE NONSHARED" >> $objdir/$libname.def~$echo EXPORTS >> $objdir/$libname.def~emxexp$libobjs >> $objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib$libobjs$deplibs $objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $objdir/$libname.a $objdir/$libname.def' - ;; - - osf3* | osf4*) - if test "$with_gcc" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} -o $lib ${wl}-soname ${wl}$soname ${wl}-set_version ${wl}$verstring$libobjs$deplibs' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} -o $lib -soname $soname -set_version $verstring$libobjs$deplibs' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -o $lib$libobjs$deplibs' - hardcode_direct=yes - ;; - - solaris*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib$libobjs$deplibs' - archive_sym_cmds='$echo "{ global:" > $lib.exp~sed $export_symbols -e "s/.*/\1;/" >> $lib.exp~$echo "local: * }" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $export_symbols -h $soname -o $lib$libobjs$deplibs~$rm $lib.exp' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - - # Solaris 2 before 2.5 hardcodes -L paths. - case "$host_os" in - solaris2.[0-4]*) - hardcode_minus_L=yes - ;; - esac - ;; - - sunos4*) - # Why do we need -Bstatic? To avoid inter-library dependencies, maybe... - if test "$with_gcc" = yes; then - archive_cmds='$CC -shared ${wl}-Bstatic -o $lib$libobjs$deplibs' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib$libobjs$deplibs' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib$libobjs$deplibs' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=no - hardcode_minus_L=no - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - can_build_shared=no - ;; - esac -fi -echo "$ac_t$ld_shlibs" 1>&6 - -if test -z "$NM"; then - echo $ac_n "checking for BSD-compatible nm... $ac_c" 1>&6 - case "$NM" in - /* | [A-Za-z]:[/\\]*) ;; # Let the user override the test with a path. - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" - for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/nm; then - # Check to see if the nm accepts a BSD-compat flag. - # Adding the `sed 1q' prevents false positives on HP-UX, which says: - # nm: unknown option "B" ignored - if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -B" - elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then - NM="$ac_dir/nm -p" - else - NM="$ac_dir/nm" - fi - break - fi - done - IFS="$ac_save_ifs" - test -z "$NM" && NM=nm - ;; - esac - echo "$ac_t$NM" 1>&6 -fi - -# Check for command to grab the raw symbol name followed by C symbol from nm. -echo $ac_n "checking command to parse $NM output... $ac_c" 1>&6 - -# These are sane defaults that work on at least a few old systems. -# [They come from Ultrix. What could be older than Ultrix?!! ;)] - -# Character class describing NM global symbol codes. -symcode='[BCDEGRSTU]' - -# Regexp to match symbols that can be accessed directly from C. -sympat='\([_A-Za-z][_A-Za-z0-9]*\)' - -# Transform the above into a raw symbol and a C symbol. -symxfrm='\1 \1' - -# Define system-specific variables. -case "$host_os" in -aix*) - symcode='[BCDTU]' - ;; -sunos* | cygwin32* | mingw32*) - sympat='_\([_A-Za-z][_A-Za-z0-9]*\)' - symxfrm='_\1 \1' - ;; -irix*) - # Cannot use undefined symbols on IRIX because inlined functions mess us up. - symcode='[BCDEGRST]' - ;; -solaris*) - symcode='[BDTU]' - ;; -esac - -# If we're using GNU nm, then use its standard symbol codes. -if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then - symcode='[ABCDGISTUW]' -fi - -case "$host_os" in -cygwin32* | mingw32*) - # We do not want undefined symbols on cygwin32. The user must - # arrange to define them via -l arguments. - symcode='[ABCDGISTW]' - ;; -esac - -# Write the raw and C identifiers. -global_symbol_pipe="sed -n -e 's/^.* $symcode $sympat$/$symxfrm/p'" - -# Check to see that the pipe works correctly. -pipe_works=no -$rm conftest* -cat > conftest.c <&5 -if { (eval echo $progname:1426: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } && test -s conftest.$objext; then - # Now try to grab the symbols. - nlist=conftest.nm - if { echo "$progname:1429: eval \"$NM conftest.$objext | $global_symbol_pipe > $nlist\"" >&5; eval "$NM conftest.$objext | $global_symbol_pipe > $nlist 2>&5"; } && test -s "$nlist"; then - - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - wcout=`wc "$nlist" 2>/dev/null` - count=`$echo "X$wcout" | $Xsed -e 's/^[ ]*\([0-9][0-9]*\).*$/\1/'` - (test "$count" -ge 0) 2>/dev/null || count=-1 - else - rm -f "$nlist"T - count=-1 - fi - - # Make sure that we snagged all the symbols we need. - if egrep ' nm_test_var$' "$nlist" >/dev/null; then - if egrep ' nm_test_func$' "$nlist" >/dev/null; then - cat < conftest.c -#ifdef __cplusplus -extern "C" { -#endif - -EOF - # Now generate the symbol file. - sed 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> conftest.c - - cat <> conftest.c -#if defined (__STDC__) && __STDC__ -# define __ptr_t void * -#else -# define __ptr_t char * -#endif - -/* The number of symbols in dld_preloaded_symbols, -1 if unsorted. */ -int dld_preloaded_symbol_count = $count; - -/* The mapping between symbol names and symbols. */ -struct { - char *name; - __ptr_t address; -} -dld_preloaded_symbols[] = -{ -EOF - sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> conftest.c - cat <<\EOF >> conftest.c - {0, (__ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif -EOF - # Now try linking the two files. - mv conftest.$objext conftestm.$objext - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="conftestm.$objext" - CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo $progname:1487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then - pipe_works=yes - else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 - fi - LIBS="$save_LIBS" - else - echo "cannot find nm_test_func in $nlist" >&5 - fi - else - echo "cannot find nm_test_var in $nlist" >&5 - fi - else - echo "cannot run $global_symbol_pipe" >&5 - fi -else - echo "$progname: failed program was:" >&5 - cat conftest.c >&5 -fi -$rm conftest* - -# Do not use the global_symbol_pipe unless it works. -echo "$ac_t$pipe_works" 1>&6 -test "$pipe_works" = yes || global_symbol_pipe= - -# Check hardcoding attributes. -echo $ac_n "checking how to hardcode library paths into programs... $ac_c" 1>&6 -hardcode_action= -if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && \ - test "$hardcode_minus_L" != no && \ - test "$hardcode_shlibpath_var" != no; then - - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate - fi -else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported -fi -echo "$ac_t$hardcode_action" 1>&6 - - -reload_flag= -reload_cmds='$LD$reload_flag -o $output$reload_objs' -echo $ac_n "checking for $LD option to reload object files... $ac_c" 1>&6 -# PORTME Some linkers may need a different reload flag. -reload_flag='-r' -echo "$ac_t$reload_flag" 1>&6 -test -n "$reload_flag" && reload_flag=" $reload_flag" - -# PORTME Fill in your ld.so characteristics -library_names_spec= -libname_spec='lib$name' -soname_spec= -postinstall_cmds= -postuninstall_cmds= -finish_cmds= -finish_eval= -shlibpath_var= -version_type=none -dynamic_linker="$host_os ld.so" -sys_lib_search_path="/lib /usr/lib /usr/local/lib" -check_shared_deplibs_method='none' -# Need to set the preceding variable on all platforms that support -# interlibrary dependencies. -# 'none' -- dependencies not supported. -# 'pass_all' -- all dependencies passed with no checks. -# 'test_compile' -- check by making test program. -# 'file_regex' -- check by looking for filenames that look like the shared -# library in the library path. -# 'file_magic [regex]' -- check by looking for files in library path which -# responds to the "file" command with a given regex. This is actually a -# superset of the file_regex command. If you have file on your system, you'll -# want to use this instead. -# Notes: regexes are run through expr. - -echo $ac_n "checking dynamic linker characteristics... $ac_c" 1>&6 -case "$host_os" in -aix3* | aix4*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix $libname.a' - shlibpath_var=LIBPATH - - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; - -amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' - ;; - -bsdi4*) - version_type=linux - library_names_spec='${libname}.so.$major ${libname}.so' - soname_spec='${libname}.so' - finish_cmds='PATH="$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -cygwin32* | mingw32*) - version_type=windows - if test "$with_gcc" = yes; then - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.a' - else - library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' - fi - dynamic_linker='Win32 ld.exe' - libname_spec='$name' - shlibpath_var=PATH - ;; - -freebsd2* | freebsd3*) - objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` - version_type=freebsd-$objformat - library_names_spec='${libname}${release}.so$versuffix $libname.so' - finish_cmds='PATH="$PATH:/sbin" OBJFORMAT="$objformat" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -gnu*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -hpux9* | hpux10* | hpux11*) - # Give a soname corresponding to the major version so that dld.sl refuses to - # link against other versions. - dynamic_linker="$host_os dld.sl" - version_type=sunos - shlibpath_var=SHLIB_PATH - library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' - soname_spec='${libname}${release}.sl$major' - # HP-UX runs *really* slowly unless shared libraries are mode 555. - postinstall_cmds='chmod 555 $lib' - ;; - -irix5*) - version_type=osf - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -irix6*) - version_type=osf - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix $libname.so' - shlibpath_var=LD_LIBRARYN32_PATH - ;; - -# No shared lib support for Linux oldld, aout, or coff. -linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) - dynamic_linker=no - ;; - -# This must be Linux ELF. -linux-gnu*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - check_shared_deplibs_method='file_magic ELF 32-bit LSB shared object' - sys_lib_search_path="/lib /usr/lib /usr/local/lib `echo $LD_LIBRARY_PATH | sed -e 's/:/ /g'`" - - if test -f /lib/ld.so.1; then - dynamic_linker='GNU ld.so' - else - # Only the GNU ld.so supports shared libraries on MkLinux. - case "$host_cpu" in - powerpc*) dynamic_linker=no ;; - *) dynamic_linker='Linux ld.so' ;; - esac - fi - ;; - -netbsd* | openbsd*) - version_type=sunos - library_names_spec='${libname}${release}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -os2*) - libname_spec='$name' - library_names_spec='$libname.dll $libname.a' - dynamic_linker='OS/2 ld.exe' - shlibpath_var=LIBPATH - ;; - -osf3* | osf4*) - version_type=osf - soname_spec='${libname}${release}.so' - library_names_spec='${libname}${release}.so$versuffix $libname.so' - shlibpath_var=LD_LIBRARY_PATH - check_shared_deplibs_method='pass_all' - ;; - -sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH - ;; - -solaris*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - # ldd complains unless libraries are executable - postinstall_cmds='chmod +x $lib' - ;; - -sunos4*) - version_type=sunos - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - ;; - -sysv4.2uw2*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -uts4*) - version_type=linux - library_names_spec='${libname}${release}.so.$versuffix ${libname}${release}.so.$major $libname.so' - soname_spec='${libname}${release}.so.$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -dgux*) - version_type=linux - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - ;; - -*) - dynamic_linker=no - ;; -esac -echo "$ac_t$dynamic_linker" 1>&6 -test "$dynamic_linker" = no && can_build_shared=no - -# Report the final consequences. -echo "checking if libtool supports shared libraries... $can_build_shared" 1>&6 - -echo $ac_n "checking whether to build shared libraries... $ac_c" 1>&6 -test "$can_build_shared" = "no" && enable_shared=no - -# On AIX, shared libraries and static libraries use the same namespace, and -# are all built from PIC. -case "$host_os" in -aix*) - test "$enable_shared" = yes && enable_static=no - if test -n "$RANLIB"; then - archive_cmds="$archive_cmds~\$RANLIB \$lib" - postinstall_cmds='$RANLIB $lib' - fi - ;; -esac - -echo "$ac_t$enable_shared" 1>&6 - -# Make sure either enable_shared or enable_static is yes. -test "$enable_shared" = yes || enable_static=yes - -echo "checking whether to build static libraries... $enable_static" 1>&6 - -echo $ac_n "checking for objdir... $ac_c" 1>&6 -rm -f .libs 2>/dev/null -mkdir .libs 2>/dev/null -if test -d .libs; then - objdir=.libs -else - # MS-DOS does not allow filenames that begin with a dot. - objdir=_libs -fi -rmdir .libs 2>/dev/null -echo "$ac_t$objdir" 1>&6 - -# Copy echo and quote the copy, instead of the original, because it is -# used later. -ltecho="$echo" -if test "X$ltecho" = "X$CONFIG_SHELL $0 --fallback-echo"; then - ltecho="$CONFIG_SHELL \$0 --fallback-echo" -fi -LTSHELL="$SHELL" - -# Only quote variables if we're using ltmain.sh. -case "$ltmain" in -*.sh) - # Now quote all the things that may contain metacharacters. - for var in ltecho old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ - old_LN_S old_DLLTOOL old_AS AR CC LD LN_S NM LTSHELL VERSION \ - reload_flag reload_cmds wl \ - pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ - whole_archive_flag_spec libname_spec library_names_spec soname_spec \ - RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ - old_postuninstall_cmds archive_cmds archive_sym_cmds postinstall_cmds postuninstall_cmds \ - check_shared_deplibs_method allow_undefined_flag no_undefined_flag \ - finish_cmds finish_eval global_symbol_pipe \ - hardcode_libdir_flag_spec hardcode_libdir_separator sys_lib_search_path \ - compiler_c_o compiler_o_lo need_locks; do - - case "$var" in - reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ - old_postinstall_cmds | old_postuninstall_cmds | \ - archive_cmds | archive_sym_cmds | \ - postinstall_cmds | postuninstall_cmds | \ - finish_cmds | sys_lib_search_path) - # Double-quote double-evaled strings. - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\"\`\\\"" - ;; - *) - eval "$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" - ;; - esac - done - - case "$ltecho" in - *'\$0 --fallback-echo"') - ltecho=`$echo "X$ltecho" | - $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` - ;; - esac - - trap "$rm \"$ofile\"; exit 1" 1 2 15 - echo "creating $ofile" - $rm "$ofile" - cat < "$ofile" -#! $SHELL - -# `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION) -# NOTE: Changes made to this file will be lost: look at ltconfig or ltmain.sh. -# -# Copyright (C) 1996-1998 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Sed that helps us avoid accidentally triggering echo(1) options like -n. -Xsed="sed -e s/^X//" - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test "\${CDPATH+set}" = set; then CDPATH=; export CDPATH; fi - -### BEGIN LIBTOOL CONFIG -EOF - cfgfile="$ofile" - ;; - -*) - # Double-quote the variables that need it (for aesthetics). - for var in old_CC old_CFLAGS old_CPPFLAGS old_LD old_NM old_RANLIB \ - old_LN_S old_DLLTOOL old_AS; do - eval "$var=\\\"\$var\\\"" - done - - # Just create a config file. - cfgfile="$ofile.cfg" - trap "$rm \"$cfgfile\"; exit 1" 1 2 15 - echo "creating $cfgfile" - $rm "$cfgfile" - cat < "$cfgfile" -# `$echo "$cfgfile" | sed 's%^.*/%%'` - Libtool configuration file. -# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION) -EOF - ;; -esac - -cat <> "$cfgfile" -# Libtool was configured as follows, on host `(hostname || uname -n) 2>/dev/null | sed 1q`: -# -# CC=$old_CC CFLAGS=$old_CFLAGS CPPFLAGS=$old_CPPFLAGS \\ -# LD=$old_LD NM=$old_NM RANLIB=$old_RANLIB LN_S=$old_LN_S \\ -# DLLTOOL="$old_DLLTOOL" AS="$old_AS" \\ -# $0$ltconfig_args -# -# Compiler and other test output produced by $progname, useful for -# debugging $progname, is in ./config.log if it exists. - -# The version of $progname that generated this script. -LTCONFIG_VERSION=$VERSION - -# Shell to use when invoking shell scripts. -SHELL=$LTSHELL - -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - -# Whether or not to build static libraries. -build_old_libs=$enable_static - -# The host system. -host_alias=$host_alias -host=$host - -# An echo program that does not interpret backslashes. -echo=$ltecho - -# The archiver. -AR=$AR - -# The default C compiler. -CC=$CC - -# The linker used to build libraries. -LD=$LD - -# Whether we need hard or soft links. -LN_S=$LN_S - -# A BSD-compatible nm program. -NM=$NM - -# Used on cygwin32: DLL creation program. -DLLTOOL="$DLLTOOL" - -# Used on cygwin32: assembler. -AS="$AS" - -# The name of the directory that contains temporary libtool files. -objdir=$objdir - -# How to create reloadable object files. -reload_flag=$reload_flag -reload_cmds=$reload_cmds - -# How to pass a linker flag through the compiler. -wl=$wl - -# Object file suffix (normally "o"). -objext="$objext" - -# Old archive suffix (normally "a"). -libext="$libext" - -# Additional compiler flags for building library objects. -pic_flag=$pic_flag - -# Does compiler simultaneously support -c and -o options -compiler_c_o=$compiler_c_o - -# Can we write directly to a .lo ? -compiler_o_lo=$compiler_o_lo - -# Must we lock files when doing compilation ? -need_locks=$need_locks - -# Compiler flag to prevent dynamic linking. -link_static_flag=$link_static_flag - -# Compiler flag to turn off builtin functions. -no_builtin_flag=$no_builtin_flag - -# Compiler flag to allow reflexive dlopens. -export_dynamic_flag_spec=$export_dynamic_flag_spec - -# Compiler flag to generate shared objects directly from archives. -whole_archive_flag_spec=$whole_archive_flag_spec - -# Library versioning type. -version_type=$version_type - -# Format of library name prefix. -libname_spec=$libname_spec - -# List of archive names. First name is the real one, the rest are links. -# The last name is the one that the linker finds with -lNAME. -library_names_spec=$library_names_spec - -# The coded name of the library, if different from the real name. -soname_spec=$soname_spec - -# Commands used to build and install an old-style archive. -RANLIB=$RANLIB -old_archive_cmds=$old_archive_cmds -old_postinstall_cmds=$old_postinstall_cmds -old_postuninstall_cmds=$old_postuninstall_cmds - -# Create an old-style archive from a shared archive. -old_archive_from_new_cmds=$old_archive_from_new_cmds - -# Commands used to build and install a shared archive. -archive_cmds=$archive_cmds -archive_sym_cmds=$archive_sym_cmds -postinstall_cmds=$postinstall_cmds -postuninstall_cmds=$postuninstall_cmds - -# Method to check whether dependent libraries are shared objects. -check_shared_deplibs_method=$check_shared_deplibs_method - -# Flag that allows shared libraries with undefined symbols to be built. -allow_undefined_flag=$allow_undefined_flag - -# Flag that forces no undefined symbols. -no_undefined_flag=$no_undefined_flag - -# Commands used to finish a libtool library installation in a directory. -finish_cmds=$finish_cmds - -# Same as above, but a single script fragment to be evaled but not shown. -finish_eval=$finish_eval - -# Take the output of nm and produce a listing of raw symbols and C names. -global_symbol_pipe=$global_symbol_pipe - -# This is the shared library runtime path variable. -runpath_var=$runpath_var - -# This is the shared library path variable. -shlibpath_var=$shlibpath_var - -# How to hardcode a shared library path into an executable. -hardcode_action=$hardcode_action - -# Flag to hardcode \$libdir into a binary during linking. -# This must work even if \$libdir does not exist. -hardcode_libdir_flag_spec=$hardcode_libdir_flag_spec - -# Whether we need a single -rpath flag with a separated argument. -hardcode_libdir_separator=$hardcode_libdir_separator - -# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the -# resulting binary. -hardcode_direct=$hardcode_direct - -# Set to yes if using the -LDIR flag during linking hardcodes DIR into the -# resulting binary. -hardcode_minus_L=$hardcode_minus_L - -# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into -# the resulting binary. -hardcode_shlibpath_var=$hardcode_shlibpath_var - -# System search path for libraries -sys_lib_search_path=$sys_lib_search_path - -# Fix the shell variable \$srcfile for the compiler. -fix_srcfile_path="$fix_srcfile_path" -EOF - -case "$ltmain" in -*.sh) - echo '### END LIBTOOL CONFIG' >> "$ofile" - echo >> "$ofile" - case "$host_os" in - aix3*) - cat <<\EOF >> "$ofile" - -# AIX sometimes has problems with the GCC collect2 program. For some -# reason, if we set the COLLECT_NAMES environment variable, the problems -# vanish in a puff of smoke. -if test "${COLLECT_NAMES+set}" != set; then - COLLECT_NAMES= - export COLLECT_NAMES -fi -EOF - ;; - esac - - # Append the ltmain.sh script. - cat "$ltmain" >> "$ofile" || (rm -f "$ofile"; exit 1) - - chmod +x "$ofile" - ;; - -*) - # Compile the libtool program. - echo "FIXME: would compile $ltmain" - ;; -esac -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/ltmain.sh b/ltmain.sh deleted file mode 100644 index 55bb4d7e5e..0000000000 --- a/ltmain.sh +++ /dev/null @@ -1,3079 +0,0 @@ -# ltmain.sh - Provide generalized library-building support services. -# NOTE: Changing this file will not affect anything until you rerun ltconfig. -# -# Copyright (C) 1996-1998 Free Software Foundation, Inc. -# Gordon Matzigkeit , 1996 -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# Check that we have a working $echo. -if test "X$1" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift -elif test "X$1" = X--fallback-echo; then - # used as fallback echo - shift - cat </dev/null`" = 'X\t'; then - # Yippee, $echo works! - : -else - # Restart under the correct shell, and then maybe $echo will work. - exec $SHELL "$0" --no-reexec ${1+"$@"} -fi - -# The name of this program. -progname=`$echo "$0" | sed 's%^.*/%%'` -modename="$progname" - -# Constants. -PROGRAM=ltmain.sh -PACKAGE=libtool -VERSION=1.2d - -default_mode= -help="Try \`$progname --help' for more information." -magic="%%%MAGIC variable%%%" -mkdir="mkdir" -mv="mv -f" -rm="rm -f" - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g' - -# NLS nuisances. -# Only set LANG and LC_ALL to C if already set. -# These must not be set unconditionally because not all systems understand -# e.g. LANG=C (notably SCO). -# We save the old values to restore during execute mode. -if test "${LC_ALL+set}" = set; then - save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL -fi -if test "${LANG+set}" = set; then - save_LANG="$LANG"; LANG=C; export LANG -fi - -if test "$LTCONFIG_VERSION" != "$VERSION"; then - echo "$modename: ltconfig version \`$LTCONFIG_VERSION' does not match $PROGRAM version \`$VERSION'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then - echo "$modename: not configured to build any kind of library" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 -fi - -# Global variables. -mode=$default_mode -nonopt= -prev= -prevopt= -run= -show="$echo" -show_help= -execute_dlfiles= -lo2o="s/\\.lo\$/.${objext}/" -los2o="s/\\.lo /.${objext} /g" - -# Parse our command line options once, thoroughly. -while test $# -gt 0 -do - arg="$1" - shift - - case "$arg" in - -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case "$prev" in - execute_dlfiles) - eval "$prev=\"\$$prev \$arg\"" - ;; - *) - eval "$prev=\$arg" - ;; - esac - - prev= - prevopt= - continue - fi - - # Have we seen a non-optional argument yet? - case "$arg" in - --help) - show_help=yes - ;; - - --version) - echo "$PROGRAM (GNU $PACKAGE) $VERSION" - exit 0 - ;; - - --config) - sed -e '1,/^### BEGIN LIBTOOL CONFIG/d' -e '/^### END LIBTOOL CONFIG/,$d' $0 - exit 0 - ;; - - --debug) - echo "$progname: enabling shell trace mode" - set -x - ;; - - --dry-run | -n) - run=: - ;; - - --features) - echo "host: $host" - if test "$build_libtool_libs" = yes; then - echo "enable shared libraries" - else - echo "disable shared libraries" - fi - if test "$build_old_libs" = yes; then - echo "enable static libraries" - else - echo "disable static libraries" - fi - exit 0 - ;; - - --finish) mode="finish" ;; - - --mode) prevopt="--mode" prev=mode ;; - --mode=*) mode="$optarg" ;; - - --quiet | --silent) - show=: - ;; - - -dlopen) - prevopt="-dlopen" - prev=execute_dlfiles - ;; - - -*) - $echo "$modename: unrecognized option \`$arg'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - *) - nonopt="$arg" - break - ;; - esac -done - -if test -n "$prevopt"; then - $echo "$modename: option \`$prevopt' requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 -fi - -if test -z "$show_help"; then - - # Infer the operation mode. - if test -z "$mode"; then - case "$nonopt" in - *cc | *++ | gcc* | *-gcc*) - mode=link - for arg - do - case "$arg" in - -c) - mode=compile - break - ;; - esac - done - ;; - *db | *dbx | *strace | *truss) - mode=execute - ;; - *install*|cp|mv) - mode=install - ;; - *rm) - mode=uninstall - ;; - *) - # If we have no mode, but dlfiles were specified, then do execute mode. - test -n "$execute_dlfiles" && mode=execute - - # Just use the default operation mode. - if test -z "$mode"; then - if test -n "$nonopt"; then - $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2 - else - $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2 - fi - fi - ;; - esac - fi - - # Only execute mode is allowed to have -dlopen flags. - if test -n "$execute_dlfiles" && test "$mode" != execute; then - $echo "$modename: unrecognized option \`-dlopen'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Change the help message to a mode-specific one. - generic_help="$help" - help="Try \`$modename --help --mode=$mode' for more information." - - # These modes are in order of execution frequency so that they run quickly. - case "$mode" in - # libtool compile mode - compile) - modename="$modename: compile" - # Get the compilation command and the source file. - base_compile= - lastarg= - srcfile="$nonopt" - suppress_output= - force_static=no - - user_target=no - for arg - do - # Accept any command-line options. - case "$arg" in - -o) - if test "$user_target" != "no"; then - $echo "$modename: you cannot specify \`-o' more than once" 1>&2 - exit 1 - fi - user_target=next - ;; - - -force-static) - force_static=yes - continue - ;; - - -static) - build_old_libs=yes - continue - ;; - esac - - case "$user_target" in - next) - # The next one is the -o target name - user_target=yes - continue - ;; - yes) - # We got the output file - user_target=set - libobj="$arg" - continue - ;; - esac - - # Accept the current argument as the source file. - lastarg="$srcfile" - srcfile="$arg" - - # Aesthetically quote the previous argument. - - # Backslashify any backslashes, double quotes, and dollar signs. - # These are the only characters that are still specially - # interpreted inside of double-quoted scrings. - lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` - - # Double-quote args containing other shell metacharacters. - # Many Bourne shells cannot handle close brackets correctly in scan - # sets, so we specify it separately. - case "$lastarg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - lastarg="\"$lastarg\"" - ;; - esac - - # Add the previous argument to base_compile. - if test -z "$base_compile"; then - base_compile="$lastarg" - else - base_compile="$base_compile $lastarg" - fi - done - - case "$user_target" in - set) - ;; - no) - # Get the name of the library object. - libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` - ;; - *) - $echo "$modename: you must specify a target with \`-o'" 1>&2 - exit 1 - ;; - esac - - # Recognize several different file suffixes. - # If the user specifies -o file.o, it is replaced with file.lo - xform='[cCFSfmso]' - case "$libobj" in - *.ada) xform=ada ;; - *.adb) xform=adb ;; - *.ads) xform=ads ;; - *.asm) xform=asm ;; - *.c++) xform=c++ ;; - *.cc) xform=cc ;; - *.cpp) xform=cpp ;; - *.cxx) xform=cxx ;; - *.f90) xform=f90 ;; - *.for) xform=for ;; - esac - - libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` - - case "$libobj" in - *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; - *) - $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 - exit 1 - ;; - esac - - if test -z "$base_compile"; then - $echo "$modename: you must specify a compilation command" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Delete any leftover library objects. - if test "$build_old_libs" = yes; then - removelist="$obj $libobj $lockfile" - else - removelist="$libobj $lockfile" - fi - - $run $rm $removelist - trap "$run $rm $removelist; exit 1" 1 2 15 - - # Calculate the filename of the output object if compiler does - # not support -o with -c - if test "$compiler_c_o" = no; then - output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\..*$%%'`.${objext} - lockfile="$output_obj.lock" - removelist="$removelist $output_obj $lockfile" - trap "$run $rm $removelist; exit 1" 1 2 15 - else - need_locks=no - lockfile= - fi - - # Lock this critical section if it is needed - # We use this script file to make the link, it avoids creating a new file - if test "$need_locks" = yes; then - until ln "$0" "$lockfile" 2>/dev/null; do - $show "Waiting for $lockfile to be removed" - sleep 2 - done - elif test "$need_locks" = warn; then - if test -f "$lockfile"; then - echo "\ -*** ERROR, $lockfile exists and contains: -`cat $lockfile 2>/dev/null` - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - echo $srcfile > "$lockfile" - fi - - if test -n "$fix_srcfile_path"; then - eval srcfile=\"$fix_srcfile_path\" - fi - - # Only build a PIC object if we are building libtool libraries. - if test "$build_libtool_libs" = yes; then - # Without this assignment, base_compile gets emptied. - fbsd_hideous_sh_bug=$base_compile - - # All platforms use -DPIC, to notify preprocessed assembler code. - command="$base_compile$pic_flag -DPIC $srcfile" - if test "$compiler_o_lo" = yes; then - command="$command -o $libobj" - output_obj="$libobj" - elif test "$compiler_c_o" = yes; then - command="$command -o $obj" - output_obj="$obj" - fi - - $show "$command" - if $run eval "$command"; then : - else - test -n "$output_obj" && $run $rm $removelist - exit 1 - fi - - if test "$need_locks" = warn && - test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then - echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed, then go on to compile the next one - if test "$compiler_o_lo" = no && test x"$output_obj" != x"$libobj"; then - $show "$mv $output_obj $libobj" - if $run $mv $output_obj $libobj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # If we have no pic_flag and do not have -force-static, - # then copy the object into place and finish. - if test -z "$pic_flag" && test "$force_static" = no; then - $show "$LN_S $libobj $obj" - if $run $LN_S $libobj $obj; then - exit 0 - else - error=$? - $run $rm $removelist - exit $error - fi - fi - - # Allow error messages only from the first compilation. - suppress_output=' >/dev/null 2>&1' - fi - - # Only build a position-dependent object if we build old libraries. - if test "$build_old_libs" = yes; then - command="$base_compile $srcfile" - if test "$force_static" = yes; then - command="$command -DLIBTOOL_STATIC" - fi - if test "$compiler_c_o" = yes; then - command="$command -o $obj" - output_obj="$obj" - fi - - # Suppress compiler output if we already did a PIC compilation. - command="$command$suppress_output" - $show "$command" - if $run eval "$command"; then : - else - $run $rm $removelist - exit 1 - fi - - if test "$need_locks" = warn && - test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then - echo "\ -*** ERROR, $lockfile contains: -`cat $lockfile 2>/dev/null` - -but it should contain: -$srcfile - -This indicates that another process is trying to use the same -temporary object file, and libtool could not work around it because -your compiler does not support \`-c' and \`-o' together. If you -repeat this compilation, it may succeed, by chance, but you had better -avoid parallel builds (make -j) in this platform, or get a better -compiler." - - $run $rm $removelist - exit 1 - fi - - # Just move the object if needed - if test "$compiler_c_o" = no && test x"$output_obj" != x"$obj"; then - $show "$mv $output_obj $obj" - if $run $mv $output_obj $obj; then : - else - error=$? - $run $rm $removelist - exit $error - fi - fi - fi - - # Unlock the critical section if it was locked - if test "$need_locks" != no; then - $rm "$lockfile" - fi - - # Create an invalid libtool object if no PIC, so that we do not - # accidentally link it into a program. - if test "$build_libtool_libs" != yes; then - $show "echo timestamp > $libobj" - $run eval "echo timestamp > \$libobj" || exit $? - fi - - exit 0 - ;; - - # libtool link mode - link) - modename="$modename: link" - C_compiler="$CC" # save it, to compile generated C sources - CC="$nonopt" - allow_undefined=yes - compile_command="$CC" - finalize_command="$CC" - - compile_shlibpath= - finalize_shlibpath= - convenience= - old_convenience= - deplibs= - eval lib_search_path=\"$sys_lib_search_path\" - - dlfiles= - dlprefiles= - export_dynamic=no - export_symbols= - generated= - hardcode_libdirs= - libobjs= - link_against_libtool_libs= - ltlibs= - module=no - objs= - prev= - prevarg= - release= - rpath= - perm_rpath= - temp_rpath= - vinfo= - - # We need to know -static, to get the right output filenames. - for arg - do - case "$arg" in - -all-static | -static) - if test "X$arg" = "X-all-static" && test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then - $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2 - fi - build_libtool_libs=no - build_old_libs=yes - break - ;; - esac - done - - # See if our shared archives depend on static archives. - test -n "$old_archive_from_new_cmds" && build_old_libs=yes - - # Go through the arguments, transforming them on the way. - while test $# -gt 0; do - arg="$1" - shift - - # If the previous option needs an argument, assign it. - if test -n "$prev"; then - case "$prev" in - output) - compile_command="$compile_command @OUTPUT@" - finalize_command="$finalize_command @OUTPUT@" - ;; - esac - - case "$prev" in - dlfiles|dlprefiles) - case "$arg" in - *.la | *.lo) ;; # We handle these cases below. - *) - dlprefiles="$dlprefiles $arg" - test "$prev" = dlfiles && dlfiles="$dlfiles $arg" - prev= - ;; - esac - ;; - exportsyms) - export_symbols="$arg" - if test ! -f "$arg"; then - $echo "$modename: symbol file \`$arg' does not exist" - exit 1 - fi - prev= - ;; - release) - release="-$arg" - prev= - continue - ;; - rpath) - rpath="$rpath $arg" - prev= - continue - ;; - *) - eval "$prev=\"\$arg\"" - prev= - continue - ;; - esac - fi - - prevarg="$arg" - - case "$arg" in - -all-static) - if test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -allow-undefined) - # FIXME: remove this flag sometime in the future. - $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2 - continue - ;; - - -dlopen) - prev=dlfiles - continue - ;; - - -dlpreopen) - prev=dlprefiles - continue - ;; - - -export-dynamic) - if test "$export_dynamic" != yes; then - export_dynamic=yes - if test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - else - arg= - fi - - # Add the symbol object into the linking commands. - compile_command="$compile_command @SYMFILE@" - finalize_command="$finalize_command @SYMFILE@" - fi - ;; - - -export-symbols) - if test -n "$export_symbols"; then - $echo "$modename: cannot have more than one -exported-symbols" - exit 1 - fi - prev=exportsyms - continue - ;; - - -L*) -# dir=`$echo "X$arg" | $Xsed -e 's%^-L\(.*\)$%\1%'` -# case "$dir" in -# /* | [A-Za-z]:[/\\]*) -# # Add the corresponding hardcode_libdir_flag, if it is not identical. -# ;; -# *) -# $echo "$modename: \`-L$dir' cannot specify a relative directory" 1>&2 -# exit 1 -# ;; -# esac - deplibs="$deplibs $arg" - lib_search_path="$lib_search_path `expr $arg : '-L\(.*\)'`" - ;; - - -l*) deplibs="$deplibs $arg" ;; - - -module) - if test "$module" != yes; then - module=yes - if test -n "$export_dynamic_flag_spec"; then - eval arg=\"$export_dynamic_flag_spec\" - else - arg= - fi - fi - ;; - - -no-undefined) - allow_undefined=no - continue - ;; - - -o) prev=output ;; - - -release) - prev=release - continue - ;; - - -rpath) - prev=rpath - continue - ;; - - -static) - # If we have no pic_flag, then this is the same as -all-static. - if test -z "$pic_flag" && test -n "$link_static_flag"; then - compile_command="$compile_command $link_static_flag" - finalize_command="$finalize_command $link_static_flag" - fi - continue - ;; - - -version-info) - prev=vinfo - continue - ;; - - # Some other compiler flag. - -* | +*) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - ;; - - *.o | *.obj | *.a | *.lib) - # A standard object. - objs="$objs $arg" - ;; - - *.lo) - # A library object. - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - if test "$build_libtool_libs" = yes; then - prev= - continue - else - # If libtool objects are unsupported, then we need to preload. - prev=dlprefiles - fi - fi - - if test "$prev" = dlprefiles; then - # Preload the old-style object. - dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` - prev= - fi - libobjs="$libobjs $arg" - ;; - - *.la) - # A libtool-controlled library. - - dlname= - libdir= - library_names= - old_library= - - # Check to see that this really is a libtool archive. - if (sed -e '2q' $arg | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$arg' is not a valid libtool archive" 1>&2 - exit 1 - fi - - # If the library was installed with an old release of libtool, - # it will not redefine variable installed. - installed=yes - - # If there is no directory component, then add one. - case "$arg" in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac - - # Get the name of the library we link against. - linklib= - for l in $old_library $library_names; do - linklib="$l" - done - - if test -z "$linklib"; then - $echo "$modename: cannot find name of link library for \`$arg'" 1>&2 - exit 1 - fi - - # Find the relevant object directory and library name. - name=`$echo "X$arg" | $Xsed -e 's%^.*/%%' -e 's/\.la$//' -e 's/^lib//'` - - if test "X$installed" = Xyes; then - dir="$libdir" - else - dir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` - if test "X$dir" = "X$arg"; then - dir="$objdir" - else - dir="$dir/$objdir" - fi - fi - - if test -z "$libdir"; then - # It is a libtool convenience library, so add in its objects. - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" - deplibs="$deplibs$dependency_libs" - compile_command="$compile_command $dir/$old_library$dependency_libs" - finalize_command="$finalize_command $dir/$old_library$dependency_libs" - continue - fi - - # This library was specified with -dlopen. - if test "$prev" = dlfiles; then - dlfiles="$dlfiles $arg" - if test -z "$dlname" || test "$build_libtool_libs" = no; then - # If there is no dlname or we're linking statically, - # we need to preload. - prev=dlprefiles - else - # We should not create a dependency on this library, but we - # may need any libraries it requires. - compile_command="$compile_command$dependency_libs" - finalize_command="$finalize_command$dependency_libs" - prev= - continue - fi - fi - - # The library was specified with -dlpreopen. - if test "$prev" = dlprefiles; then - # Prefer using a static library (so that no silly _DYNAMIC symbols - # are required to link). - if test -n "$old_library"; then - dlprefiles="$dlprefiles $dir/$old_library" - else - dlprefiles="$dlprefiles $dir/$linklib" - fi - prev= - fi - - if test "$build_libtool_libs" = yes && test -n "$library_names"; then - link_against_libtool_libs="$link_against_libtool_libs $arg" - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - - # This is the magic to use -rpath. - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - # Put the magic libdir with the hardcode flag. - hardcode_libdirs="$libdir" - libdir="@HARDCODE_LIBDIRS@" - else - # Just accumulate the unique libdirs. - case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - libdir= - fi - fi - - if test -n "$libdir"; then - eval flag=\"$hardcode_libdir_flag_spec\" - - compile_command="$compile_command $flag" - finalize_command="$finalize_command $flag" - fi - elif test -n "$runpath_var"; then - # Do the same for the permanent run path. - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - - - lib_linked=yes - case "$hardcode_action" in - immediate | unsupported) - if test "$hardcode_direct" = no; then - compile_command="$compile_command $dir/$linklib" - elif test "$hardcode_minus_L" = no; then - case "$host" in - *-*-sunos*) - compile_shlibpath="$compile_shlibpath$dir:" - ;; - esac - compile_command="$compile_command -L$dir -l$name" - elif test "$hardcode_shlibpath_var" = no; then - compile_shlibpath="$compile_shlibpath$dir:" - compile_command="$compile_command -l$name" - else - lib_linked=no - fi - ;; - - relink) - # We need an absolute path. - case "$dir" in - /* | [A-Za-z]:[/\\]*) ;; - *) - absdir=`cd "$dir" && pwd` - if test -z "$absdir"; then - $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 - exit 1 - fi - dir="$absdir" - ;; - esac - - if test "$hardcode_direct" = yes; then - compile_command="$compile_command $dir/$linklib" - elif test "$hardcode_minus_L" = yes; then - compile_command="$compile_command -L$dir -l$name" - elif test "$hardcode_shlibpath_var" = yes; then - compile_shlibpath="$compile_shlibpath$dir:" - compile_command="$compile_command -l$name" - else - lib_linked=no - fi - ;; - - *) - lib_linked=no - ;; - esac - - if test "$lib_linked" != yes; then - $echo "$modename: configuration error: unsupported hardcode properties" - exit 1 - fi - - # Finalize command for both is simple: just hardcode it. - if test "$hardcode_direct" = yes; then - finalize_command="$finalize_command $libdir/$linklib" - elif test "$hardcode_minus_L" = yes; then - finalize_command="$finalize_command -L$libdir -l$name" - elif test "$hardcode_shlibpath_var" = yes; then - finalize_shlibpath="$finalize_shlibpath$libdir:" - finalize_command="$finalize_command -l$name" - else - # We cannot seem to hardcode it, guess we'll fake it. - finalize_command="$finalize_command -L$libdir -l$name" - fi - else - # Transform directly to old archives if we don't build new libraries. - if test -n "$pic_flag" && test -z "$old_library"; then - $echo "$modename: cannot find static library for \`$arg'" 1>&2 - exit 1 - fi - - # Here we assume that one of hardcode_direct or hardcode_minus_L - # is not unsupported. This is valid on all known static and - # shared platforms. - if test "$hardcode_direct" != unsupported; then - test -n "$old_library" && linklib="$old_library" - compile_command="$compile_command $dir/$linklib" - finalize_command="$finalize_command $dir/$linklib" - else - compile_command="$compile_command -L$dir -l$name" - finalize_command="$finalize_command -L$dir -l$name" - fi - fi - - # Add in any libraries that this one depends upon. - compile_command="$compile_command$dependency_libs" - finalize_command="$finalize_command$dependency_libs" - continue - ;; - - # Some other compiler argument. - *) - # Unknown arguments in both finalize_command and compile_command need - # to be aesthetically quoted because they are evaled later. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - ;; - esac - - # Now actually substitute the argument into the commands. - if test -n "$arg"; then - compile_command="$compile_command $arg" - finalize_command="$finalize_command $arg" - fi - done - - if test -n "$prev"; then - $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$export_symbols" && test "$module" = yes; then - $echo "$modename: \`-export-symbols' is not supported for modules" - exit 1 - fi - - oldlibs= - # calculate the name of the file, without its directory - outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` - - case "$output" in - "") - $echo "$modename: you must specify an output file" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - - *.a | *.lib) - if test -n "$link_against_libtool_libs"; then - $echo "$modename: error: cannot link libtool libraries into archives" 1>&2 - exit 1 - fi - - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles"; then - $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for archives" 1>&2 - fi - - if test -n "$export_symbols"; then - $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2 - fi - - # Now set the variables for building old libraries. - build_libtool_libs=no - oldlibs="$output" - ;; - - *.la) - # Make sure we only generate libraries of the form `libNAME.la'. - case "$outputname" in - lib*) ;; - *) - $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` - eval libname=\"$libname_spec\" - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - - # All the library-specific variables (install_libdir is set above). - library_names= - old_library= - dlname= - - if test -n "$objs"; then - $echo "$modename: cannot build libtool library \`$output' from non-libtool objects:$objs" 2>&1 - exit 1 - fi - - # How the heck are we supposed to write a wrapper for a shared library? - if test -n "$link_against_libtool_libs"; then - $echo "$modename: error: cannot link shared libraries into libtool libraries" 1>&2 - exit 1 - fi - - if test -n "$dlfiles$dlprefiles"; then - $echo "$modename: warning: \`-dlopen' is ignored for libtool libraries" 1>&2 - fi - - set dummy $rpath - if test $# -gt 2; then - $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 - fi - install_libdir="$2" - - oldlibs= - if test -z "$rpath"; then - # Building a libtool convenience library. - libext=al - oldlibs="$output_objdir/$libname.$libext $oldlibs" - build_libtool_libs=convenience - dependency_libs="$deplibs" - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2 - fi - else - - # Parse the version information argument. - IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' - set dummy $vinfo 0 0 0 - IFS="$save_ifs" - - if test -n "$8"; then - $echo "$modename: too many parameters to \`-version-info'" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - current="$2" - revision="$3" - age="$4" - - # Check that each of the things are valid numbers. - case "$current" in - 0 | [1-9] | [1-9][0-9]*) ;; - *) - $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case "$revision" in - 0 | [1-9] | [1-9][0-9]*) ;; - *) - $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - case "$age" in - 0 | [1-9] | [1-9][0-9]*) ;; - *) - $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - ;; - esac - - if test $age -gt $current; then - $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 - $echo "$modename: \`$vinfo' is not valid version information" 1>&2 - exit 1 - fi - - # Calculate the version variables. - major= - versuffix= - verstring= - case "$version_type" in - none) ;; - - linux) - major=.`expr $current - $age` - versuffix="$major.$age.$revision" - ;; - - osf) - major=`expr $current - $age` - versuffix=".$current.$age.$revision" - verstring="$current.$age.$revision" - - # Add in all the interfaces that we are compatible with. - loop=$age - while test $loop != 0; do - iface=`expr $current - $loop` - loop=`expr $loop - 1` - verstring="$verstring:${iface}.0" - done - - # Make executables depend on our current version. - verstring="$verstring:${current}.0" - ;; - - sunos) - major=".$current" - versuffix=".$current.$revision" - ;; - - freebsd-aout) - major=".$current" - versuffix=".$current.$revision"; - ;; - - freebsd-elf) - major=".$current" - versuffix=".$current"; - ;; - - windows) - # Like Linux, but with '-' rather than '.', since we only - # want one extension on Windows 95. - major=`expr $current - $age` - versuffix="-$major-$age-$revision" - ;; - - *) - $echo "$modename: unknown library version type \`$version_type'" 1>&2 - echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 - exit 1 - ;; - esac - - # Clear the version info if we defaulted, and they specified a release. - if test -z "$vinfo" && test -n "$release"; then - major= - versuffix= - verstring="0.0" - case "$host" in - *-*-sunos*) - versuffix=".0.0" - ;; - esac - fi - - # Check to see if the archive will have undefined symbols. - if test "$allow_undefined" = yes; then - if test "$allow_undefined_flag" = unsupported; then - $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2 - build_libtool_libs=no - build_old_libs=yes - fi - else - # Don't allow undefined symbols. - allow_undefined_flag="$no_undefined_flag" - fi - - # Add libc to deplibs on all systems. - dependency_libs="$deplibs" - deplibs="$deplibs -lc" - fi - - # Create the output directory, or remove our outputs if we need to. - if test -d $output_objdir; then - $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" - $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* - else - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test $status -ne 0 && test ! -d $output_objdir; then - exit $status - fi - fi - - # Now set the variables for building old libraries. - if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then - oldlibs="$oldlibs $output_objdir/$libname.$libext" - - # Transform .lo files to .o files. - oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.'${libext}' //g' -e "$los2o" -e 's/ $//g'` - fi - - if test "$build_libtool_libs" = yes; then - # Transform deplibs into only deplibs that can be linked in shared. - ## Gordon: Do you check for the existence of the libraries in deplibs - ## on the system? That should maybe be merged in here someplace.... - ## Actually: I think test_compile and file_magic do this... file_regex - ## sorta does this. Only pas_all needs to be changed. -Toshio - name_save=$name - libname_save=$libname - release_save=$release - versuffix_save=$versuffix - major_save=$major - # I'm not sure if I'm treating the release correctly. I think - # release should show up in the -l (ie -lgmp5) so we don't want to - # add it in twice. Is that correct? - release="" - versuffix="" - major="" - newdeplibs= - case "$check_shared_deplibs_method" in - pass_all) - newdeplibs=$deplibs - ;; # Don't check for shared/static. Everything works. - # This might be a little naive. We might want to check - # whether the library exists or not. But this is on - # osf3 & osf4 and I'm not really sure... Just - # implementing what was already the behaviour. - test_compile) - # This code stresses the "libraries are programs" paradigm to its - # limits. Maybe even breaks it. We compile a program, linking it - # against the deplibs as a proxy for the library. Then we can check - # whether they linked in statically or dynamically with ldd. - $rm conftest.c - cat > conftest.c </dev/null` - for potent_lib in $potential_libs; do - file_output=`file $potent_lib` - if test `expr "$file_output" : ".*$file_magic_regex"` -ne 0 ; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break 2 - fi - done - done - ;; - file_regex) - deplib_matches=`eval \\$echo \"$library_names_spec\"` - set dummy $deplib_matches - deplib_match=$2 - for i in $lib_search_path; do - potential_libs=`ls $i/$deplib_match* 2>/dev/null` - if test "$potential_libs" != "" ; then - newdeplibs="$newdeplibs $a_deplib" - a_deplib="" - break - fi - done - ;; - esac - if test "$a_deplib" != "" ; then - echo - echo "*** Warning: This library needs some functionality provided by $a_deplib." - echo "*** I have the capability to make that library automatically link in when" - echo "*** you link to this library. But I can only do this if you have a" - echo "*** shared version of the library, which you do not appear to have." - fi - else - # Add a -L argument. - newdeplibs="$newdeplibs $a_deplib" - fi - done # Gone through all deplibs. - ;; - none | *) deplibs="" ;; - esac - versuffix=$versuffix_save - major=$major_save - release=$release_save - libname=$libname_save - name=$name_save - deplibs=$newdeplibs - # Done checking deplibs! - - # Get the real and link names of the library. - eval library_names=\"$library_names_spec\" - set dummy $library_names - realname="$2" - shift; shift - - if test -n "$soname_spec"; then - eval soname=\"$soname_spec\" - else - soname="$realname" - fi - - lib="$output_objdir/$realname" - for link - do - linknames="$linknames $link" - done - - # Use standard objects if they are PIC. - test -z "$pic_flag" && libobjs=`$echo "X$libobjs " | $Xsed -e "$los2o" -e 's/ $//g'` - - if test -n "$whole_archive_flag_spec"; then - if test -n "$convenience"; then - eval libobjs=\"\$libobjs $whole_archive_flag_spec\" - fi - else - for xlib in $convenience; do - # Extract the objects. - xdir="$xlib"x - generated="$generated $xdir" - xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'` - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x ../$xlib)" - $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $? - - libobjs="$libobjs `echo $xdir/*`" - done - fi - - # Do each of the archive commands. - if test -n "$export_symbols" && test -n "$archive_sym_cmds"; then - eval cmds=\"$archive_sym_cmds\" - else - eval cmds=\"$archive_cmds\" - fi - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Create links to the real library. - for linkname in $linknames; do - if test "$realname" != "$linkname"; then - $show "(cd $output_objdir && $LN_S $realname $linkname)" - $run eval '(cd $output_objdir && $LN_S $realname $linkname)' || exit $? - fi - done - - # If -module or -export-dynamic was specified, set the dlname. - if test "$module" = yes || test "$export_dynamic" = yes; then - # On all known operating systems, these are identical. - dlname="$soname" - fi - fi - ;; - - *.lo | *.o | *.obj) - if test -n "$link_against_libtool_libs"; then - $echo "$modename: error: cannot link libtool libraries into objects" 1>&2 - exit 1 - fi - - if test -n "$deplibs"; then - $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 - fi - - if test -n "$dlfiles$dlprefiles"; then - $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2 - fi - - if test -n "$rpath"; then - $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2 - fi - - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for objects" 1>&2 - fi - - case "$output" in - *.lo) - if test -n "$objs"; then - $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 - exit 1 - fi - libobj="$output" - obj=`$echo "X$output" | $Xsed -e "$lo2o"` - ;; - *) - libobj= - obj="$output" - ;; - esac - - # Delete the old objects. - $run $rm $obj $libobj - - # Create the old-style object. - reload_objs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.'${libext}' //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'` - - output="$obj" - eval cmds=\"$reload_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - - # Exit if we aren't doing a library object file. - test -z "$libobj" && exit 0 - - if test "$build_libtool_libs" != yes; then - # Create an invalid libtool object if no PIC, so that we don't - # accidentally link it into a program. - $show "echo timestamp > $libobj" - $run eval "echo timestamp > $libobj" || exit $? - exit 0 - fi - - if test -n "$pic_flag"; then - # Only do commands if we really have different PIC objects. - reload_objs="$libobjs" - output="$libobj" - eval cmds=\"$reload_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - else - # Just create a symlink. - $show "$LN_S $obj $libobj" - $run $LN_S $obj $libobj || exit $? - fi - - exit 0 - ;; - - # Anything else should be a program. - *) - if test -n "$vinfo"; then - $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 - fi - - if test -n "$release"; then - $echo "$modename: warning: \`-release' is ignored for programs" 1>&2 - fi - - if test -n "$rpath"; then - # If the user specified any rpath flags, then add them. - for libdir in $rpath; do - if test -n "$hardcode_libdir_flag_spec"; then - if test -n "$hardcode_libdir_separator"; then - if test -z "$hardcode_libdirs"; then - # Put the magic libdir with the hardcode flag. - hardcode_libdirs="$libdir" - libdir="@HARDCODE_LIBDIRS@" - else - # Just accumulate the unique libdirs. - case "$hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator" in - *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) - ;; - *) - hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir" - ;; - esac - libdir= - fi - fi - - if test -n "$libdir"; then - eval flag=\"$hardcode_libdir_flag_spec\" - - compile_command="$compile_command $flag" - finalize_command="$finalize_command $flag" - fi - elif test -n "$runpath_var"; then - case "$perm_rpath " in - *" $libdir "*) ;; - *) perm_rpath="$perm_rpath $libdir" ;; - esac - fi - done - fi - - # Substitute the hardcoded libdirs into the compile commands. - if test -n "$hardcode_libdir_separator"; then - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@HARDCODE_LIBDIRS@%$hardcode_libdirs%g"` - fi - - output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'` - if test "X$output_objdir" = "X$output"; then - output_objdir="$objdir" - else - output_objdir="$output_objdir/$objdir" - fi - - if test -n "$libobjs" && test "$build_old_libs" = yes; then - # Transform all the library objects into standard objects. - compile_command=`$echo "X$compile_command " | $Xsed -e "$los2o" -e 's/ $//'` - finalize_command=`$echo "X$finalize_command " | $Xsed -e "$los2o" -e 's/ $//'` - fi - - if test "$export_dynamic" = yes && test -n "$NM" && test -n "$global_symbol_pipe"; then - dlsyms="${outputname}S.c" - else - dlsyms= - fi - - if test -n "$dlsyms"; then - case "$dlsyms" in - "") ;; - *.c) - if test -z "$export_symbols"; then - # Add our own program objects to the preloaded list. - dlprefiles=`$echo "X$objs$dlprefiles " | $Xsed -e "$los2o" -e 's/ $//'` - fi - - # Discover the nlist of each of the dlfiles. - nlist="$objdir/${output}.nm" - - if test -d $objdir; then - $show "$rm $nlist ${nlist}T" - $run $rm "$nlist" "${nlist}T" - else - $show "$mkdir $objdir" - $run $mkdir $objdir - status=$? - if test $status -ne 0 && test ! -d $objdir; then - exit $status - fi - fi - - # Parse the name list into a source file. - $show "creating $objdir/$dlsyms" - - $echo > "$objdir/$dlsyms" "\ -/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */ -/* Generated by $PROGRAM - GNU $PACKAGE $VERSION */ - -#ifdef __cplusplus -extern \"C\" { -#endif - -/* Prevent the only kind of declaration conflicts we can make. */ -#define dld_preloaded_symbols some_other_symbol - -/* External symbol declarations for the compiler. */\ -" - - if test -n "$export_symbols"; then - sed -e 's/^\(.*\)/\1 \1/' < "$export_symbols" > "$nlist" - fi - - for arg in $dlprefiles; do - $show "extracting global C symbols from \`$arg'" - $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" - done - - if test -z "$run"; then - # Make sure we at least have an empty file. - test -f "$nlist" || : > "$nlist" - - # Try sorting and uniquifying the output. - if sort "$nlist" | uniq > "$nlist"T; then - mv -f "$nlist"T "$nlist" - else - $rm "$nlist"T - fi - - if test -f "$nlist"; then - sed -e 's/^.* \(.*\)$/extern char \1;/' < "$nlist" >> "$output_objdir/$dlsyms" - else - echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - -#undef dld_preloaded_symbols - -#if defined (__STDC__) && __STDC__ -# define __ptr_t void * -#else -# define __ptr_t char * -#endif - -/* The mapping between symbol names and symbols. */ -struct { - char *name; - __ptr_t address; -} -dld_preloaded_symbols[] = -{\ -" - - if test -n "$export_symbols"; then - echo >> "$objdir/$dlsyms" "\ - {\"${output}\", (__ptr_t) 0}," - sed 's/^\(.*\)/ {"\1", (__ptr_t) \&\1},/' < "$export_symbols" >> "$objdir/$dlsyms" - fi - - for arg in $dlprefiles; do - name=`echo "$arg" | sed -e 's%^.*/%%'` - echo >> "$objdir/$dlsyms" "\ - {\"$name\", (__ptr_t) 0}," - eval "$NM $arg | $global_symbol_pipe > '$nlist'" - - if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$objdir/$dlsyms" - else - echo '/* NONE */' >> "$output_objdir/$dlsyms" - fi - - done - - if test -f "$nlist"; then - sed 's/^\(.*\) \(.*\)$/ {"\1", (__ptr_t) \&\2},/' < "$nlist" >> "$output_objdir/$dlsyms" - fi - - $echo >> "$output_objdir/$dlsyms" "\ - {0, (__ptr_t) 0} -}; - -#ifdef __cplusplus -} -#endif\ -" - fi - - # Now compile the dynamic symbol file. - $show "(cd $objdir && $C_compiler -c$no_builtin_flag \"$dlsyms\")" - $run eval '(cd $objdir && $C_compiler -c$no_builtin_flag "$dlsyms")' || exit $? - - # Transform the symbol file into the correct name. - compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$objdir/${output}S.${objext}%"` - ;; - *) - $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 - exit 1 - ;; - esac - elif test "$export_dynamic" != yes; then - test -n "$dlfiles$dlprefiles" && $echo "$modename: warning: \`-dlopen' and \`-dlpreopen' are ignored without \`-export-dynamic'" 1>&2 - else - # We keep going just in case the user didn't refer to - # dld_preloaded_symbols. The linker will fail if global_symbol_pipe - # really was required. - $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2 - - # Nullify the symbol file. - compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"` - finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` - fi - - if test -z "$link_against_libtool_libs" || test "$build_libtool_libs" != yes; then - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` - - # We have no uninstalled library dependencies, so finalize right now. - $show "$compile_command" - $run eval "$compile_command" - exit $? - fi - - # Replace the output file specification. - compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` - finalize_command=`$echo "X$finalize_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'T%g'` - - # Create the binary in the object directory, then wrap it. - if test ! -d $output_objdir; then - $show "$mkdir $output_objdir" - $run $mkdir $output_objdir - status=$? - if test $status -ne 0 && test ! -d $objdir; then - exit $status - fi - fi - - if test -n "$shlibpath_var"; then - # We should set the shlibpath_var - rpath= - for dir in $temp_rpath; do - case "$dir" in - /* | [A-Za-z]:[/\\]*) - # Absolute path. - rpath="$rpath$dir:" - ;; - *) - # Relative path: add a thisdir entry. - rpath="$rpath\$thisdir/$dir:" - ;; - esac - done - temp_rpath="$rpath" - fi - - # Delete the old output file. - $run $rm $output - - if test -n "$compile_shlibpath"; then - compile_command="$shlibpath_var=\"$compile_shlibpath\$$shlibpath_var\" $compile_command" - fi - if test -n "$finalize_shlibpath"; then - finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" - fi - - if test -n "$runpath_var" && test -n "$perm_rpath"; then - # We should set the runpath_var. - rpath= - for dir in $perm_rpath; do - rpath="$rpath$dir:" - done - compile_command="$runpath_var=\"$rpath\$$runpath_var\" $compile_command" - finalize_command="$runpath_var=\"$rpath\$$runpath_var\" $finalize_command" - fi - - if test "$hardcode_action" = relink; then - # AGH! Flame the AIX and HP-UX people for me, will ya? - $echo "$modename: warning: this platform doesn\'t like uninstalled shared libraries" 1>&2 - $echo "$modename: \`$output' will be relinked during installation" 1>&2 - fi - - $show "$compile_command" - $run eval "$compile_command" || exit $? - - # Now create the wrapper script. - $show "creating $output" - - # Quote the finalize command for shipping. - finalize_command=`$echo "X$finalize_command" | $Xsed -e "$sed_quote_subst"` - - # Quote $echo for shipping. - if test "X$echo" = "X$SHELL $0 --fallback-echo"; then - case "$0" in - /* | [A-Za-z]:[/\\]*) qecho="$SHELL $0 --fallback-echo";; - *) qecho="$SHELL `pwd`/$0 --fallback-echo";; - esac - qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` - else - qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"` - fi - - # Only actually do things if our run command is non-null. - if test -z "$run"; then - $rm $output - trap "$rm $output; exit 1" 1 2 15 - - $echo > $output "\ -#! $SHELL - -# $output - temporary wrapper script for $objdir/$outputname -# Generated by $PROGRAM - GNU $PACKAGE $VERSION -# -# The $output program cannot be directly executed until all the libtool -# libraries that it depends on are installed. -# -# This wrapper script should never be moved out of the build directory. -# If it is, it will not operate correctly. - -# Sed substitution that helps us do robust quoting. It backslashifies -# metacharacters that are still active within double-quoted strings. -Xsed='sed -e s/^X//' -sed_quote_subst='$sed_quote_subst' - -# The HP-UX ksh and POSIX shell print the target directory to stdout -# if CDPATH is set. -if test \"\${CDPATH+set}\" = set; then CDPATH=; export CDPATH; fi - -# This environment variable determines our operation mode. -if test \"\$libtool_install_magic\" = \"$magic\"; then - # install mode needs the following variables: - link_against_libtool_libs='$link_against_libtool_libs' - finalize_command=\"cd `pwd | sed -e $sed_quote_subst`; $finalize_command\" -else - # When we are sourced in execute mode, \$file and \$echo are already set. - if test \"\$libtool_execute_magic\" != \"$magic\"; then - echo=\"$qecho\" - file=\"\$0\" - # Make sure echo works. - if test \"X\$1\" = X--no-reexec; then - # Discard the --no-reexec flag, and continue. - shift - elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then - # Yippee, \$echo works! - : - else - # Restart under the correct shell, and then maybe \$echo will work. - exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"} - fi - fi\ -" - $echo >> $output "\ - - # Find the directory that this script lives in. - thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\` - test \"x\$thisdir\" = \"x\$file\" && thisdir=. - - # Follow symbolic links until we get to the real thisdir. - file=\`ls -ld \"\$file\" | sed -n 's/.*-> //p'\` - while test -n \"\$file\"; do - destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\` - - # If there was a directory component, then change thisdir. - if test \"x\$destdir\" != \"x\$file\"; then - case \"\$destdir\" in - /* | [A-Za-z]:[/\\]*) thisdir=\"\$destdir\" ;; - *) thisdir=\"\$thisdir/\$destdir\" ;; - esac - fi - - file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\` - file=\`ls -ld \"\$thisdir/\$file\" | sed -n 's/.*-> //p'\` - done - - # Try to get the absolute directory name. - absdir=\`cd \"\$thisdir\" && pwd\` - test -n \"\$absdir\" && thisdir=\"\$absdir\" - - progdir=\"\$thisdir/$objdir\" - program='$outputname' - - if test -f \"\$progdir/\$program\"; then" - - # Export our shlibpath_var if we have one. - if test -n "$shlibpath_var" && test -n "$temp_rpath"; then - $echo >> $output "\ - # Add our own library path to $shlibpath_var - $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" - - # Some systems cannot cope with colon-terminated $shlibpath_var - $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/:*\$//'\` - - export $shlibpath_var -" - fi - - $echo >> $output "\ - if test \"\$libtool_execute_magic\" != \"$magic\"; then - # Run the actual program with our arguments. - - # Export the path to the program. - PATH=\"\$progdir:\$PATH\" - export PATH - - exec \$program \${1+\"\$@\"} - - \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" - exit 1 - fi - else - # The program doesn't exist. - \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 - \$echo \"This script is just a wrapper for \$program.\" 1>&2 - echo \"See the $PACKAGE documentation for more information.\" 1>&2 - exit 1 - fi -fi\ -" - chmod +x $output - fi - exit 0 - ;; - esac - - # See if we need to build an old-fashioned archive. - for oldlib in $oldlibs; do - - if test "$build_libtool_libs" = convenience; then - oldobjs="$libobjs" - addlibs="$convenience" - build_libtool_libs=no - else - oldobjs="$objs"`$echo "X$libobjs " | $Xsed -e 's/[^ ]*\.'${libext}' //g' -e 's/[^ ]*\.lib //g' -e "$los2o" -e 's/ $//g'` - addlibs="$old_convenience" - fi - - # Add in members from convenience archives. - for xlib in $addlibs; do - # Extract the objects. - xdir="$xlib"x - generated="$generated $xdir" - xlib=`echo "$xlib" | $Xsed -e 's%^.*/%%'` - - $show "${rm}r $xdir" - $run ${rm}r "$xdir" - $show "mkdir $xdir" - $run mkdir "$xdir" - status=$? - if test $status -ne 0 && test ! -d "$xdir"; then - exit $status - fi - $show "(cd $xdir && $AR x ../$xlib)" - $run eval "(cd \$xdir && $AR x ../\$xlib)" || exit $? - - oldobjs="$oldobjs `echo $xdir/*`" - done - - # Do each command in the archive commands. - if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then - eval cmds=\"$old_archive_from_new_cmds\" - else - eval cmds=\"$old_archive_cmds\" - fi - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$generated"; then - $show "${rm}r$generated" - $run ${rm}r$generated - fi - - # Now create the libtool archive. - case "$output" in - *.la) - old_library= - test "$build_old_libs" = yes && old_library="$libname.$libext" - $show "creating $output" - - # Only create the output if not a dry run. - if test -z "$run"; then - $echo > $output "\ -# $output - a libtool library file -# Generated by $PROGRAM - GNU $PACKAGE $VERSION - -# The name that we can dlopen(3). -dlname='$dlname' - -# Names of this library. -library_names='$library_names' - -# The name of the static archive. -old_library='$old_library' - -# Libraries that this one depends upon. -dependency_libs='$dependency_libs' - -# Version information for $libname. -current=$current -age=$age -revision=$revision - -# Is this an already installed library? -installed=no - -# Directory that this library needs to be installed in: -libdir='$install_libdir'\ -" - fi - - # Do a symbolic link so that the libtool archive can be found in - # LD_LIBRARY_PATH before the program is installed. - $show "(cd $output_objdir && $LN_S ../$outputname $outputname)" - $run eval "(cd $output_objdir && $LN_S ../$outputname $outputname)" || exit $? - ;; - esac - exit 0 - ;; - - # libtool install mode - install) - modename="$modename: install" - - # There may be an optional sh(1) argument at the beginning of - # install_prog (especially on Windows NT). - if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh; then - # Aesthetically quote it. - arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$arg " - arg="$1" - shift - else - install_prog= - arg="$nonopt" - fi - - # The real first argument should be the name of the installation program. - # Aesthetically quote it. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog$arg" - - # We need to accept at least all the BSD install flags. - dest= - files= - opts= - prev= - install_type= - isdir=no - stripme= - for arg - do - if test -n "$dest"; then - files="$files $dest" - dest="$arg" - continue - fi - - case "$arg" in - -d) isdir=yes ;; - -f) prev="-f" ;; - -g) prev="-g" ;; - -m) prev="-m" ;; - -o) prev="-o" ;; - -s) - stripme=" -s" - continue - ;; - -*) ;; - - *) - # If the previous option needed an argument, then skip it. - if test -n "$prev"; then - prev= - else - dest="$arg" - continue - fi - ;; - esac - - # Aesthetically quote the argument. - arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` - case "$arg" in - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) - arg="\"$arg\"" - ;; - esac - install_prog="$install_prog $arg" - done - - if test -z "$install_prog"; then - $echo "$modename: you must specify an install program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -n "$prev"; then - $echo "$modename: the \`$prev' option requires an argument" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - if test -z "$files"; then - if test -z "$dest"; then - $echo "$modename: no file or destination specified" 1>&2 - else - $echo "$modename: you must specify a destination" 1>&2 - fi - $echo "$help" 1>&2 - exit 1 - fi - - # Strip any trailing slash from the destination. - dest=`$echo "X$dest" | $Xsed -e 's%/$%%'` - - # Check to see that the destination is a directory. - test -d "$dest" && isdir=yes - if test "$isdir" = yes; then - destdir="$dest" - destname= - else - destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'` - test "X$destdir" = "X$dest" && destdir=. - destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'` - - # Not a directory, so check to see that there is only one file specified. - set dummy $files - if test $# -gt 2; then - $echo "$modename: \`$dest' is not a directory" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - fi - case "$destdir" in - /* | [A-Za-z]:[/\\]*) ;; - *) - for file in $files; do - case "$file" in - *.lo) ;; - *) - $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - done - ;; - esac - - # This variable tells wrapper scripts just to set variables rather - # than running their programs. - libtool_install_magic="$magic" - - staticlibs= - future_libdirs= - current_libdirs= - for file in $files; do - - # Do each installation. - case "$file" in - *.a | *.lib) - # Do the static libraries later. - staticlibs="$staticlibs $file" - ;; - - *.la) - # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - library_names= - old_library= - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Add the libdir to current_libdirs if it is the destination. - if test "X$destdir" = "X$libdir"; then - case "$current_libdirs " in - *" $libdir "*) ;; - *) current_libdirs="$current_libdirs $libdir" ;; - esac - else - # Note the libdir as a future libdir. - case "$future_libdirs " in - *" $libdir "*) ;; - *) future_libdirs="$future_libdirs $libdir" ;; - esac - fi - - dir="`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/" - test "X$dir" = "X$file/" && dir= - dir="$dir$objdir" - - # See the names of the shared library. - set dummy $library_names - if test -n "$2"; then - realname="$2" - shift - shift - - # Install the shared library and build the symlinks. - $show "$install_prog $dir/$realname $destdir/$realname" - $run eval "$install_prog $dir/$realname $destdir/$realname" || exit $? - test "X$dlname" = "X$realname" && dlname= - - if test $# -gt 0; then - # Delete the old symlinks, and create new ones. - for linkname - do - test "X$dlname" = "X$linkname" && dlname= - if test "$linkname" != "$realname"; then - $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" - fi - done - fi - - if test -n "$dlname"; then - # Install the dynamically-loadable library. - $show "$install_prog $dir/$dlname $destdir/$dlname" - $run eval "$install_prog $dir/$dlname $destdir/$dlname" || exit $? - fi - - # Do each command in the postinstall commands. - lib="$destdir/$realname" - eval cmds=\"$postinstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - fi - - # Install the pseudo-library for information purposes. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - instname="$dir/$name"i - $show "Creating $instname" - $rm "$instname" - sed 's/^installed=no$/installed=yes/' "$file" > "$instname" - $show "$install_prog $instname $destdir/$name" - $run eval "$install_prog $instname $destdir/$name" || exit $? - $show "$rm $instname" - $rm "$instname" - - # Maybe install the static library, too. - test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library" - ;; - - *.lo) - # Install (i.e. copy) a libtool object. - - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Deduce the name of the destination old-style object file. - case "$destfile" in - *.lo) - staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"` - ;; - *.o | *.obj) - staticdest="$destfile" - destfile= - ;; - *) - $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; - esac - - # Install the libtool object if requested. - if test -n "$destfile"; then - $show "$install_prog $file $destfile" - $run eval "$install_prog $file $destfile" || exit $? - fi - - # Install the old object if enabled. - if test "$build_old_libs" = yes; then - # Deduce the name of the old-style object file. - staticobj=`$echo "X$file" | $Xsed -e "$lo2o"` - - $show "$install_prog $staticobj $staticdest" - $run eval "$install_prog \$staticobj \$staticdest" || exit $? - fi - exit 0 - ;; - - *) - # Figure out destination file name, if it wasn't already specified. - if test -n "$destname"; then - destfile="$destdir/$destname" - else - destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - destfile="$destdir/$destfile" - fi - - # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - link_against_libtool_libs= - finalize_command= - - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Check the variables that should have been set. - if test -z "$link_against_libtool_libs" || test -z "$finalize_command"; then - $echo "$modename: invalid libtool wrapper script \`$file'" 1>&2 - exit 1 - fi - - finalize=yes - for lib in $link_against_libtool_libs; do - # Check to see that each library is installed. - libdir= - if test -f "$lib"; then - # If there is no directory component, then add one. - case "$lib" in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac - fi - libfile="$libdir/`$echo "X$lib" | $Xsed -e 's%^.*/%%g'`" - if test -n "$libdir" && test ! -f "$libfile"; then - $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2 - finalize=no - fi - done - - if test "$hardcode_action" = relink; then - if test "$finalize" = yes; then - $echo "$modename: warning: relinking \`$file' on behalf of your buggy system linker" 1>&2 - $show "$finalize_command" - if $run eval "$finalize_command"; then : - else - $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 - continue - fi - file="$objdir/$file"T - else - $echo "$modename: warning: cannot relink \`$file' on behalf of your buggy system linker" 1>&2 - fi - else - # Install the binary that we compiled earlier. - file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` - fi - fi - - $show "$install_prog$stripme $file $destfile" - $run eval "$install_prog\$stripme \$file \$destfile" || exit $? - ;; - esac - done - - for file in $staticlibs; do - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - # Set up the ranlib parameters. - oldlib="$destdir/$name" - - $show "$install_prog $file $oldlib" - $run eval "$install_prog \$file \$oldlib" || exit $? - - # Do each command in the postinstall commands. - eval cmds=\"$old_postinstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || exit $? - done - IFS="$save_ifs" - done - - if test -n "$future_libdirs"; then - $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2 - fi - - if test -n "$current_libdirs"; then - # Maybe just do a dry run. - test -n "$run" && current_libdirs=" -n$current_libdirs" - exec $SHELL $0 --finish$current_libdirs - exit 1 - fi - - exit 0 - ;; - - # libtool finish mode - finish) - modename="$modename: finish" - libdirs="$nonopt" - admincmds= - - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then - for dir - do - libdirs="$libdirs $dir" - done - - for libdir in $libdirs; do - if test -n "$finish_cmds"; then - # Do each command in the finish commands. - eval cmds=\"$finish_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" || admincmds="$admincmds - $cmd" - done - IFS="$save_ifs" - fi - if test -n "$finish_eval"; then - # Do the single finish_eval. - eval cmds=\"$finish_eval\" - $run eval "$cmds" || admincmds="$admincmds - $cmds" - fi - done - fi - - # Exit here if they wanted silent mode. - test "$show" = : && exit 0 - - echo "----------------------------------------------------------------------" - echo "Libraries have been installed in:" - for libdir in $libdirs; do - echo " $libdir" - done - echo - echo "To link against installed libraries in a given directory, LIBDIR," - echo "you must use the \`-LLIBDIR' flag during linking." - echo - echo " You will also need to do at least one of the following:" - if test -n "$shlibpath_var"; then - echo " - add LIBDIR to the \`$shlibpath_var' environment variable" - echo " during execution" - fi - if test -n "$runpath_var"; then - echo " - add LIBDIR to the \`$runpath_var' environment variable" - echo " during linking" - fi - if test -n "$hardcode_libdir_flag_spec"; then - libdir=LIBDIR - eval flag=\"$hardcode_libdir_flag_spec\" - - echo " - use the \`$flag' linker flag" - fi - if test -n "$admincmds"; then - echo " - have your system administrator run these commands:$admincmds" - fi - if test -f /etc/ld.so.conf; then - echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" - fi - echo - echo "See any operating system documentation about shared libraries for" - echo "more information, such as the ld(1) and ld.so(8) manual pages." - echo "----------------------------------------------------------------------" - exit 0 - ;; - - # libtool execute mode - execute) - modename="$modename: execute" - - # The first argument is the command name. - cmd="$nonopt" - if test -z "$cmd"; then - $echo "$modename: you must specify a COMMAND" 1>&2 - $echo "$help" - exit 1 - fi - - # Handle -dlopen flags immediately. - for file in $execute_dlfiles; do - if test ! -f "$file"; then - $echo "$modename: \`$file' is not a file" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - dir= - case "$file" in - *.la) - # Check to see that this really is a libtool archive. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : - else - $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - # Read the libtool library. - dlname= - library_names= - - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Skip this library if it cannot be dlopened. - if test -z "$dlname"; then - # Warn if it was a shared library. - test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'" - continue - fi - - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - - if test -f "$dir/$objdir/$dlname"; then - dir="$dir/$objdir" - else - $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 - exit 1 - fi - ;; - - *.lo) - # Just add the directory containing the .lo file. - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - ;; - - *) - $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2 - continue - ;; - esac - - # Get the absolute pathname. - absdir=`cd "$dir" && pwd` - test -n "$absdir" && dir="$absdir" - - # Now add the directory to shlibpath_var. - if eval "test -z \"\$$shlibpath_var\""; then - eval "$shlibpath_var=\"\$dir\"" - else - eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" - fi - done - - # This variable tells wrapper scripts just to set shlibpath_var - # rather than running their programs. - libtool_execute_magic="$magic" - - # Check if any of the arguments is a wrapper script. - args= - for file - do - case "$file" in - -*) ;; - *) - # Do a test to see if this is really a libtool program. - if (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case "$file" in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac - - # Transform arg to wrapped name. - file="$progdir/$program" - fi - ;; - esac - # Quote arguments (to preserve shell metacharacters). - file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"` - args="$args \"$file\"" - done - - if test -z "$run"; then - # Export the shlibpath_var. - eval "export $shlibpath_var" - - # Restore saved enviroment variables - if test "${save_LC_ALL+set}" = set; then - LC_ALL="$save_LC_ALL"; export LC_ALL - fi - if test "${save_LANG+set}" = set; then - LANG="$save_LANG"; export LANG - fi - - # Now actually exec the command. - eval "exec \$cmd$args" - - $echo "$modename: cannot exec \$cmd$args" - exit 1 - else - # Display what would be done. - eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" - $echo "export $shlibpath_var" - $echo "$cmd$args" - exit 0 - fi - ;; - - # libtool uninstall mode - uninstall) - modename="$modename: uninstall" - rm="$nonopt" - files= - - for arg - do - case "$arg" in - -*) rm="$rm $arg" ;; - *) files="$files $arg" ;; - esac - done - - if test -z "$rm"; then - $echo "$modename: you must specify an RM program" 1>&2 - $echo "$help" 1>&2 - exit 1 - fi - - for file in $files; do - dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` - test "X$dir" = "X$file" && dir=. - name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` - - rmfiles="$file" - - case "$name" in - *.la) - # Possibly a libtool archive, so verify it. - if (sed -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - . $dir/$name - - # Delete the libtool libraries and symlinks. - for n in $library_names; do - rmfiles="$rmfiles $dir/$n" - test "X$n" = "X$dlname" && dlname= - done - test -n "$dlname" && rmfiles="$rmfiles $dir/$dlname" - test -n "$old_library" && rmfiles="$rmfiles $dir/$old_library" - - $show "$rm $rmfiles" - $run $rm $rmfiles - - if test -n "$library_names"; then - # Do each command in the postuninstall commands. - eval cmds=\"$postuninstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" - fi - - if test -n "$old_library"; then - # Do each command in the old_postuninstall commands. - eval cmds=\"$old_postuninstall_cmds\" - IFS="${IFS= }"; save_ifs="$IFS"; IFS='~' - for cmd in $cmds; do - IFS="$save_ifs" - $show "$cmd" - $run eval "$cmd" - done - IFS="$save_ifs" - fi - - # FIXME: should reinstall the best remaining shared library. - fi - ;; - - *.lo) - if test "$build_old_libs" = yes; then - oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` - rmfiles="$rmfiles $dir/$oldobj" - fi - $show "$rm $rmfiles" - $run $rm $rmfiles - ;; - - *) - $show "$rm $rmfiles" - $run $rm $rmfiles - ;; - esac - done - exit 0 - ;; - - "") - $echo "$modename: you must specify a MODE" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 - ;; - esac - - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$generic_help" 1>&2 - exit 1 -fi # test -z "$show_help" - -# We need to display help for each of the modes. -case "$mode" in -"") $echo \ -"Usage: $modename [OPTION]... [MODE-ARG]... - -Provide generalized library-building support services. - - --config show all configuration variables - --debug enable verbose shell tracing --n, --dry-run display commands without modifying any files - --features display basic configuration information and exit - --finish same as \`--mode=finish' - --help display this help message and exit - --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] - --quiet same as \`--silent' - --silent don't print informational messages - --version print version information - -MODE must be one of the following: - - compile compile a source file into a libtool object - execute automatically set library path, then run a program - finish complete the installation of libtool libraries - install install libraries or executables - link create a library or an executable - uninstall remove libraries from an installed directory - -MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for -a more detailed description of MODE." - exit 0 - ;; - -compile) - $echo \ -"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE - -Compile a source file into a libtool library object. - -This mode accepts the following additional options: - - -static always build a \`.o' file suitable for static linking - -COMPILE-COMMAND is a command to be used in creating a \`standard' object file -from the given SOURCEFILE. - -The output file name is determined by removing the directory component from -SOURCEFILE, then substituting the C source code suffix \`.c' with the -library object suffix, \`.lo'." - ;; - -execute) - $echo \ -"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]... - -Automatically set library path, then run a program. - -This mode accepts the following additional options: - - -dlopen FILE add the directory containing FILE to the library path - -This mode sets the library path environment variable according to \`-dlopen' -flags. - -If any of the ARGS are libtool executable wrappers, then they are translated -into their corresponding uninstalled binary, and any of their required library -directories are added to the library path. - -Then, COMMAND is executed, with ARGS as arguments." - ;; - -finish) - $echo \ -"Usage: $modename [OPTION]... --mode=finish [LIBDIR]... - -Complete the installation of libtool libraries. - -Each LIBDIR is a directory that contains libtool libraries. - -The commands that this mode executes may require superuser privileges. Use -the \`--dry-run' option if you just want to see what would be executed." - ;; - -install) - $echo \ -"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND... - -Install executables or libraries. - -INSTALL-COMMAND is the installation command. The first component should be -either the \`install' or \`cp' program. - -The rest of the components are interpreted as arguments to that command (only -BSD-compatible install options are recognized)." - ;; - -link) - $echo \ -"Usage: $modename [OPTION]... --mode=link LINK-COMMAND... - -Link object files or libraries together to form another library, or to -create an executable program. - -LINK-COMMAND is a command using the C compiler that you would use to create -a program from several object files. - -The following components of LINK-COMMAND are treated specially: - - -all-static do not do any dynamic linking at all - -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime - -dlpreopen FILE link in FILE and add its symbols to dld_preloaded_symbols - -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) - -LLIBDIR search LIBDIR for required installed libraries - -lNAME OUTPUT-FILE requires the installed library libNAME - -no-undefined declare that a library does not refer to external symbols - -o OUTPUT-FILE create OUTPUT-FILE from the specified objects - -release RELEASE specify package release information - -rpath LIBDIR the created library will eventually be installed in LIBDIR - -static do not do any dynamic linking of libtool libraries - -version-info CURRENT[:REVISION[:AGE]] - specify library version info [each variable defaults to 0] - -All other options (arguments beginning with \`-') are ignored. - -Every other argument is treated as a filename. Files ending in \`.la' are -treated as uninstalled libtool libraries, other files are standard or library -object files. - -If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only -library objects (\`.lo' files) may be specified, and \`-rpath' is required. - -If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created -using \`ar' and \`ranlib', or on Windows using \`lib'. - -If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file -is created, otherwise an executable program is created." - ;; - -uninstall) - $echo -"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... - -Remove libraries from an installation directory. - -RM is the name of the program to use to delete files associated with each FILE -(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed -to RM. - -If FILE is a libtool library, all the files associated with it are deleted. -Otherwise, only FILE itself is deleted using RM." - ;; - -*) - $echo "$modename: invalid operation mode \`$mode'" 1>&2 - $echo "$help" 1>&2 - exit 1 - ;; -esac - -echo -$echo "Try \`$modename --help' for more information about other modes." - -exit 0 - -# Local Variables: -# mode:shell-script -# sh-indentation:2 -# End: diff --git a/misc/.cvsignore b/misc/.cvsignore deleted file mode 100644 index 982c36f56d..0000000000 --- a/misc/.cvsignore +++ /dev/null @@ -1,32 +0,0 @@ -system.list -bin -.gdb_history -Test -config.cache -config.status -system.list -linux.system.cache -wx-config -config.log -linux-gnu.system.cache -*.dsp -*.dsw -*.plg -*.opt -*.aps -*.ncb -*.pro -*.opt -Release -Debug -ReleaseDLL -DebugDLL -robert -Makefile.in -setup.h.in -stamp-h.in -Makefile -configure -setup.h -stamp-h -libtool diff --git a/misc/Makefile.am b/misc/Makefile.am deleted file mode 100644 index 21991e1b9a..0000000000 --- a/misc/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -## Purpose: The automake makefile for wxWindows (misc direcotry) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUBDIRS = afm gs_afm diff --git a/misc/afm/.cvsignore b/misc/afm/.cvsignore deleted file mode 100644 index 982c36f56d..0000000000 --- a/misc/afm/.cvsignore +++ /dev/null @@ -1,32 +0,0 @@ -system.list -bin -.gdb_history -Test -config.cache -config.status -system.list -linux.system.cache -wx-config -config.log -linux-gnu.system.cache -*.dsp -*.dsw -*.plg -*.opt -*.aps -*.ncb -*.pro -*.opt -Release -Debug -ReleaseDLL -DebugDLL -robert -Makefile.in -setup.h.in -stamp-h.in -Makefile -configure -setup.h -stamp-h -libtool diff --git a/misc/afm/Cour.afm b/misc/afm/Cour.afm deleted file mode 100644 index f54e284ba7..0000000000 --- a/misc/afm/Cour.afm +++ /dev/null @@ -1,341 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Wed Feb 25 16:01:10 PST 1987 -FontName Courier -EncodingScheme AdobeStandardEncoding -FullName Courier -FamilyName Courier -Weight Medium -ItalicAngle 0.0 -IsFixedPitch true -UnderlinePosition -82 -UnderlineThickness 40 -Version 001.003 -FontBBox -40 -290 640 795 -CapHeight 583 -XHeight 437 -Descender -207 -Ascender 624 -StartCharMetrics 260 -C 32 ; WX 600 ; N space ; B 560 -40 640 40 ; -C 33 ; WX 600 ; N exclam ; B 240 -5 360 639 ; -C 34 ; WX 600 ; N quotedbl ; B 126 314 474 603 ; -C 35 ; WX 600 ; N numbersign ; B 72 -82 528 665 ; -C 36 ; WX 600 ; N dollar ; B 93 -113 507 675 ; -C 37 ; WX 600 ; N percent ; B 67 -35 533 639 ; -C 38 ; WX 600 ; N ampersand ; B 85 -35 498 540 ; -C 39 ; WX 600 ; N quoteright ; B 135 304 340 613 ; -C 40 ; WX 600 ; N parenleft ; B 274 -144 478 623 ; -C 41 ; WX 600 ; N parenright ; B 127 -144 331 623 ; -C 42 ; WX 600 ; N asterisk ; B 93 210 507 624 ; -C 43 ; WX 600 ; N plus ; B 52 12 548 550 ; -C 44 ; WX 600 ; N comma ; B 135 -155 340 155 ; -C 45 ; WX 600 ; N hyphen ; B 52 241 548 321 ; -C 46 ; WX 600 ; N period ; B 250 10 350 90 ; -C 47 ; WX 600 ; N slash ; B 93 -103 507 686 ; -C 48 ; WX 600 ; N zero ; B 93 -35 507 639 ; -C 49 ; WX 600 ; N one ; B 93 -20 507 624 ; -C 50 ; WX 600 ; N two ; B 64 -20 498 639 ; -C 51 ; WX 600 ; N three ; B 76 -35 519 639 ; -C 52 ; WX 600 ; N four ; B 85 -20 498 624 ; -C 53 ; WX 600 ; N five ; B 76 -35 519 624 ; -C 54 ; WX 600 ; N six ; B 116 -35 530 639 ; -C 55 ; WX 600 ; N seven ; B 85 -20 498 624 ; -C 56 ; WX 600 ; N eight ; B 93 -35 507 639 ; -C 57 ; WX 600 ; N nine ; B 116 -35 530 639 ; -C 58 ; WX 600 ; N colon ; B 250 10 350 392 ; -C 59 ; WX 600 ; N semicolon ; B 139 -116 350 392 ; -C 60 ; WX 600 ; N less ; B 52 12 548 550 ; -C 61 ; WX 600 ; N equal ; B 31 168 569 394 ; -C 62 ; WX 600 ; N greater ; B 52 12 548 550 ; -C 63 ; WX 600 ; N question ; B 114 -5 507 598 ; -C 64 ; WX 600 ; N at ; B 85 -82 498 644 ; -C 65 ; WX 600 ; N A ; B -11 -20 611 583 ; -C 66 ; WX 600 ; N B ; B 23 -20 561 583 ; -C 67 ; WX 600 ; N C ; B 43 -35 554 598 ; -C 68 ; WX 600 ; N D ; B 23 -20 540 583 ; -C 69 ; WX 600 ; N E ; B 23 -20 540 583 ; -C 70 ; WX 600 ; N F ; B 23 -20 540 583 ; -C 71 ; WX 600 ; N G ; B 43 -35 582 598 ; -C 72 ; WX 600 ; N H ; B 33 -20 571 583 ; -C 73 ; WX 600 ; N I ; B 93 -20 507 583 ; -C 74 ; WX 600 ; N J ; B 64 -35 603 583 ; -C 75 ; WX 600 ; N K ; B 23 -20 592 583 ; -C 76 ; WX 600 ; N L ; B 43 -20 561 583 ; -C 77 ; WX 600 ; N M ; B -9 -20 613 583 ; -C 78 ; WX 600 ; N N ; B 2 -20 582 583 ; -C 79 ; WX 600 ; N O ; B 31 -35 569 598 ; -C 80 ; WX 600 ; N P ; B 23 -20 519 583 ; -C 81 ; WX 600 ; N Q ; B 31 -136 569 598 ; -C 82 ; WX 600 ; N R ; B 23 -20 609 583 ; -C 83 ; WX 600 ; N S ; B 72 -35 528 598 ; -C 84 ; WX 600 ; N T ; B 52 -20 548 583 ; -C 85 ; WX 600 ; N U ; B 20 -35 580 583 ; -C 86 ; WX 600 ; N V ; B -11 -20 611 583 ; -C 87 ; WX 600 ; N W ; B 0 -20 600 583 ; -C 88 ; WX 600 ; N X ; B 20 -20 580 583 ; -C 89 ; WX 600 ; N Y ; B 31 -20 569 583 ; -C 90 ; WX 600 ; N Z ; B 83 -20 517 583 ; -C 91 ; WX 600 ; N bracketleft ; B 260 -144 465 624 ; -C 92 ; WX 600 ; N backslash ; B 93 -103 507 686 ; -C 93 ; WX 600 ; N bracketright ; B 135 -144 340 624 ; -C 94 ; WX 600 ; N asciicircum ; B 93 335 507 624 ; -C 95 ; WX 600 ; N underscore ; B -32 -290 632 -210 ; -C 96 ; WX 600 ; N quoteleft ; B 260 304 465 613 ; -C 97 ; WX 600 ; N a ; B 52 -35 561 452 ; -C 98 ; WX 600 ; N b ; B 2 -35 561 624 ; -C 99 ; WX 600 ; N c ; B 64 -35 555 452 ; -C 100 ; WX 600 ; N d ; B 43 -35 603 624 ; -C 101 ; WX 600 ; N e ; B 43 -35 540 452 ; -C 102 ; WX 600 ; N f ; B 85 -20 561 624 ; L i fi ; L l fl ; -C 103 ; WX 600 ; N g ; B 43 -207 582 452 ; -C 104 ; WX 600 ; N h ; B 23 -20 571 624 ; -C 105 ; WX 600 ; N i ; B 72 -20 528 665 ; -C 106 ; WX 600 ; N j ; B 127 -207 478 665 ; -C 107 ; WX 600 ; N k ; B 43 -20 561 624 ; -C 108 ; WX 600 ; N l ; B 72 -20 528 624 ; -C 109 ; WX 600 ; N m ; B -9 -20 613 452 ; -C 110 ; WX 600 ; N n ; B 33 -20 561 452 ; -C 111 ; WX 600 ; N o ; B 52 -35 548 452 ; -C 112 ; WX 600 ; N p ; B 2 -207 561 452 ; -C 113 ; WX 600 ; N q ; B 43 -207 603 452 ; -C 114 ; WX 600 ; N r ; B 64 -20 561 448 ; -C 115 ; WX 600 ; N s ; B 83 -35 517 452 ; -C 116 ; WX 600 ; N t ; B 23 -35 519 582 ; -C 117 ; WX 600 ; N u ; B 23 -35 561 437 ; -C 118 ; WX 600 ; N v ; B 10 -20 590 437 ; -C 119 ; WX 600 ; N w ; B 10 -20 590 437 ; -C 120 ; WX 600 ; N x ; B 31 -20 569 437 ; -C 121 ; WX 600 ; N y ; B 31 -207 569 437 ; -C 122 ; WX 600 ; N z ; B 95 -20 509 437 ; -C 123 ; WX 600 ; N braceleft ; B 177 -144 423 624 ; -C 124 ; WX 600 ; N bar ; B 260 -144 340 624 ; -C 125 ; WX 600 ; N braceright ; B 177 -144 423 624 ; -C 126 ; WX 600 ; N asciitilde ; B 72 189 528 373 ; -C 161 ; WX 600 ; N exclamdown ; B 240 -207 360 415 ; -C 162 ; WX 600 ; N cent ; B 93 -19 489 665 ; -C 163 ; WX 600 ; N sterling ; B 43 -20 540 598 ; -C 164 ; WX 600 ; N fraction ; B 31 120 569 492 ; -C 165 ; WX 600 ; N yen ; B 31 -20 569 583 ; -C 166 ; WX 600 ; N florin ; B 67 -113 538 639 ; -C 167 ; WX 600 ; N section ; B 46 -87 554 629 ; -C 168 ; WX 600 ; N currency ; B 83 75 517 509 ; -C 169 ; WX 600 ; N quotesingle ; B 230 304 370 613 ; -C 170 ; WX 600 ; N quotedblleft ; B 93 340 507 619 ; -C 171 ; WX 600 ; N guillemotleft ; B 43 -20 561 437 ; -C 172 ; WX 600 ; N guilsinglleft ; B 43 -20 332 437 ; -C 173 ; WX 600 ; N guilsinglright ; B 273 -20 561 437 ; -C 174 ; WX 600 ; N fi ; B -10 -20 610 665 ; -C 175 ; WX 600 ; N fl ; B -10 -20 610 624 ; -C 177 ; WX 600 ; N endash ; B 52 241 548 321 ; -C 178 ; WX 600 ; N dagger ; B 104 -82 496 624 ; -C 179 ; WX 600 ; N daggerdbl ; B 104 -82 496 624 ; -C 180 ; WX 600 ; N periodcentered ; B 250 266 350 346 ; -C 182 ; WX 600 ; N paragraph ; B 59 -87 545 629 ; -C 183 ; WX 600 ; N bullet ; B 260 266 340 346 ; -C 184 ; WX 600 ; N quotesinglbase ; B 135 -165 340 144 ; -C 185 ; WX 600 ; N quotedblbase ; B 93 -139 507 139 ; -C 186 ; WX 600 ; N quotedblright ; B 93 340 507 619 ; -C 187 ; WX 600 ; N guillemotright ; B 43 -20 561 437 ; -C 188 ; WX 600 ; N ellipsis ; B 60 -5 540 75 ; -C 189 ; WX 600 ; N perthousand ; B 10 -35 590 639 ; -C 191 ; WX 600 ; N questiondown ; B 93 -207 486 415 ; -C 193 ; WX 600 ; N grave ; B 135 450 340 639 ; -C 194 ; WX 600 ; N acute ; B 260 450 465 639 ; -C 195 ; WX 600 ; N circumflex ; B 135 450 465 624 ; -C 196 ; WX 600 ; N tilde ; B 125 441 475 580 ; -C 197 ; WX 600 ; N macron ; B 135 476 465 556 ; -C 198 ; WX 600 ; N breve ; B 135 450 465 624 ; -C 199 ; WX 600 ; N dotaccent ; B 260 491 340 571 ; -C 200 ; WX 600 ; N dieresis ; B 156 491 444 571 ; -C 202 ; WX 600 ; N ring ; B 187 413 413 634 ; -C 203 ; WX 600 ; N cedilla ; B 190 -186 397 40 ; -C 205 ; WX 600 ; N hungarumlaut ; B 135 450 465 639 ; -C 206 ; WX 600 ; N ogonek ; B 260 -165 453 40 ; -C 207 ; WX 600 ; N caron ; B 135 450 465 624 ; -C 208 ; WX 600 ; N emdash ; B -19 241 619 321 ; -C 225 ; WX 600 ; N AE ; B -10 -20 610 583 ; -C 227 ; WX 600 ; N ordfeminine ; B 127 179 478 598 ; -C 232 ; WX 600 ; N Lslash ; B 23 -20 561 583 ; -C 233 ; WX 600 ; N Oslash ; B 20 -61 580 623 ; -C 234 ; WX 600 ; N OE ; B -10 -20 610 583 ; -C 235 ; WX 600 ; N ordmasculine ; B 131 179 469 598 ; -C 241 ; WX 600 ; N ae ; B -10 -35 600 452 ; -C 245 ; WX 600 ; N dotlessi ; B 72 -20 528 437 ; -C 248 ; WX 600 ; N lslash ; B 72 -20 528 624 ; -C 249 ; WX 600 ; N oslash ; B 33 -61 563 478 ; -C 250 ; WX 600 ; N oe ; B -10 -35 600 452 ; -C 251 ; WX 600 ; N germandbls ; B 23 -35 519 624 ; -C -1 ; WX 600 ; N Aacute ; B -11 -20 611 789 ; -C -1 ; WX 600 ; N Acircumflex ; B -11 -20 611 774 ; -C -1 ; WX 600 ; N Adieresis ; B -11 -20 611 721 ; -C -1 ; WX 600 ; N Agrave ; B -11 -20 611 789 ; -C -1 ; WX 600 ; N Aring ; B -11 -20 611 795 ; -C -1 ; WX 600 ; N Atilde ; B -11 -20 611 730 ; -C -1 ; WX 600 ; N Ccedilla ; B 43 -186 554 598 ; -C -1 ; WX 600 ; N Eacute ; B 23 -20 540 789 ; -C -1 ; WX 600 ; N Ecircumflex ; B 23 -20 540 774 ; -C -1 ; WX 600 ; N Edieresis ; B 23 -20 540 721 ; -C -1 ; WX 600 ; N Egrave ; B 23 -20 540 789 ; -C -1 ; WX 600 ; N Eth ; B 23 -20 540 583 ; -C -1 ; WX 600 ; N Gcaron ; B 43 -35 582 774 ; -C -1 ; WX 600 ; N IJ ; B -10 -35 610 583 ; -C -1 ; WX 600 ; N Iacute ; B 93 -20 507 789 ; -C -1 ; WX 600 ; N Icircumflex ; B 93 -20 507 774 ; -C -1 ; WX 600 ; N Idieresis ; B 93 -20 507 721 ; -C -1 ; WX 600 ; N Idot ; B 93 -20 507 721 ; -C -1 ; WX 600 ; N Igrave ; B 93 -20 507 789 ; -C -1 ; WX 600 ; N LL ; B -20 -20 620 583 ; -C -1 ; WX 600 ; N Ntilde ; B 2 -20 582 730 ; -C -1 ; WX 600 ; N Oacute ; B 31 -35 569 789 ; -C -1 ; WX 600 ; N Ocircumflex ; B 31 -35 569 774 ; -C -1 ; WX 600 ; N Odieresis ; B 31 -35 569 721 ; -C -1 ; WX 600 ; N Ograve ; B 31 -35 569 789 ; -C -1 ; WX 600 ; N Otilde ; B 31 -35 569 730 ; -C -1 ; WX 600 ; N Scaron ; B 72 -35 528 774 ; -C -1 ; WX 600 ; N Scedilla ; B 72 -186 528 598 ; -C -1 ; WX 600 ; N Thorn ; B 23 -20 539 583 ; -C -1 ; WX 600 ; N Uacute ; B 20 -35 580 789 ; -C -1 ; WX 600 ; N Ucircumflex ; B 20 -35 580 774 ; -C -1 ; WX 600 ; N Udieresis ; B 20 -35 580 721 ; -C -1 ; WX 600 ; N Ugrave ; B 20 -35 580 789 ; -C -1 ; WX 600 ; N Yacute ; B 31 -20 569 789 ; -C -1 ; WX 600 ; N Ydieresis ; B 31 -20 569 721 ; -C -1 ; WX 600 ; N Zcaron ; B 83 -20 517 774 ; -C -1 ; WX 600 ; N aacute ; B 52 -35 561 660 ; -C -1 ; WX 600 ; N acircumflex ; B 52 -35 561 653 ; -C -1 ; WX 600 ; N adieresis ; B 52 -35 561 592 ; -C -1 ; WX 600 ; N agrave ; B 52 -35 561 660 ; -C -1 ; WX 600 ; N aring ; B 52 -35 561 686 ; -C -1 ; WX 600 ; N arrowboth ; B -40 110 640 490 ; -C -1 ; WX 600 ; N arrowdown ; B 110 -20 490 639 ; -C -1 ; WX 600 ; N arrowleft ; B -40 110 640 490 ; -C -1 ; WX 600 ; N arrowright ; B -40 110 640 490 ; -C -1 ; WX 600 ; N arrowup ; B 110 -20 490 639 ; -C -1 ; WX 600 ; N atilde ; B 52 -35 561 618 ; -C -1 ; WX 600 ; N brokenbar ; B 260 -144 340 624 ; -C -1 ; WX 600 ; N ccedilla ; B 64 -186 555 452 ; -C -1 ; WX 600 ; N center ; B 0 -20 600 624 ; -C -1 ; WX 600 ; N copyright ; B -20 -35 620 598 ; -C -1 ; WX 600 ; N dectab ; B -5 -20 605 248 ; -C -1 ; WX 600 ; N degree ; B 135 294 465 624 ; -C -1 ; WX 600 ; N divide ; B 52 51 548 531 ; -C -1 ; WX 600 ; N down ; B 154 -20 446 452 ; -C -1 ; WX 600 ; N eacute ; B 43 -35 540 664 ; -C -1 ; WX 600 ; N ecircumflex ; B 43 -35 540 653 ; -C -1 ; WX 600 ; N edieresis ; B 43 -35 540 592 ; -C -1 ; WX 600 ; N egrave ; B 43 -35 540 664 ; -C -1 ; WX 600 ; N eth ; B 52 -35 548 639 ; -C -1 ; WX 600 ; N format ; B -15 -207 65 624 ; -C -1 ; WX 600 ; N gcaron ; B 43 -207 582 645 ; -C -1 ; WX 600 ; N graybox ; B 35 -40 565 640 ; -C -1 ; WX 600 ; N iacute ; B 72 -20 528 660 ; -C -1 ; WX 600 ; N icircumflex ; B 72 -20 528 634 ; -C -1 ; WX 600 ; N idieresis ; B 72 -20 528 592 ; -C -1 ; WX 600 ; N igrave ; B 72 -20 528 656 ; -C -1 ; WX 600 ; N ij ; B 10 -207 550 665 ; -C -1 ; WX 600 ; N indent ; B 54 60 546 352 ; -C -1 ; WX 600 ; N largebullet ; B 260 266 340 346 ; -C -1 ; WX 600 ; N left ; B 54 60 546 352 ; -C -1 ; WX 600 ; N lira ; B 43 -20 540 598 ; -C -1 ; WX 600 ; N ll ; B 0 -20 600 624 ; -C -1 ; WX 600 ; N logicalnot ; B 52 154 548 394 ; -C -1 ; WX 600 ; N merge ; B 154 -20 446 452 ; -C -1 ; WX 600 ; N minus ; B 52 241 548 321 ; -C -1 ; WX 600 ; N mu ; B 23 -207 561 437 ; -C -1 ; WX 600 ; N multiply ; B 82 12 518 470 ; -C -1 ; WX 600 ; N notegraphic ; B 150 -5 450 639 ; -C -1 ; WX 600 ; N ntilde ; B 33 -20 561 618 ; -C -1 ; WX 600 ; N oacute ; B 52 -35 548 649 ; -C -1 ; WX 600 ; N ocircumflex ; B 52 -35 548 653 ; -C -1 ; WX 600 ; N odieresis ; B 52 -35 548 592 ; -C -1 ; WX 600 ; N ograve ; B 52 -35 548 649 ; -C -1 ; WX 600 ; N onehalf ; B -10 -20 610 624 ; -C -1 ; WX 600 ; N onequarter ; B -10 -20 610 624 ; -C -1 ; WX 600 ; N onesuperior ; B 160 200 440 624 ; -C -1 ; WX 600 ; N otilde ; B 52 -35 548 597 ; -C -1 ; WX 600 ; N overscore ; B -32 559 632 639 ; -C -1 ; WX 600 ; N plusminus ; B 52 -20 548 550 ; -C -1 ; WX 600 ; N prescription ; B 23 -20 609 583 ; -C -1 ; WX 600 ; N registered ; B -20 -35 620 598 ; -C -1 ; WX 600 ; N return ; B -24 -20 624 608 ; -C -1 ; WX 600 ; N scaron ; B 83 -35 517 645 ; -C -1 ; WX 600 ; N scedilla ; B 83 -186 517 452 ; -C -1 ; WX 600 ; N square ; B -24 -20 624 608 ; -C -1 ; WX 600 ; N stop ; B -24 -20 624 608 ; -C -1 ; WX 600 ; N tab ; B -24 -20 624 608 ; -C -1 ; WX 600 ; N thorn ; B 2 -207 561 624 ; -C -1 ; WX 600 ; N threequarters ; B -10 -20 610 639 ; -C -1 ; WX 600 ; N threesuperior ; B 155 191 452 639 ; -C -1 ; WX 600 ; N trademark ; B -20 230 620 583 ; -C -1 ; WX 600 ; N twosuperior ; B 140 200 431 639 ; -C -1 ; WX 600 ; N uacute ; B 23 -35 561 656 ; -C -1 ; WX 600 ; N ucircumflex ; B 23 -35 561 634 ; -C -1 ; WX 600 ; N udieresis ; B 23 -35 561 592 ; -C -1 ; WX 600 ; N ugrave ; B 23 -35 561 656 ; -C -1 ; WX 600 ; N up ; B 154 -20 446 452 ; -C -1 ; WX 600 ; N yacute ; B 31 -207 569 656 ; -C -1 ; WX 600 ; N ydieresis ; B 31 -207 569 571 ; -C -1 ; WX 600 ; N zcaron ; B 95 -20 509 645 ; -EndCharMetrics -StartComposites 58 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 146 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 146 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 0 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 0 0 ; -CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 146 ; -CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 146 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 0 146 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 146 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 146 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 0 146 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 146 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 146 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 146 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 146 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 0 146 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 146 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 146 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 146 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 146 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 146 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 146 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 146 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 146 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 146 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 146 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 146 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 146 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 146 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 146 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 0 146 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/CourBo.afm b/misc/afm/CourBo.afm deleted file mode 100644 index 5a2fbdc071..0000000000 --- a/misc/afm/CourBo.afm +++ /dev/null @@ -1,341 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Wed Feb 25 16:06:47 PST 1987 -FontName Courier-Bold -EncodingScheme AdobeStandardEncoding -FullName Courier Bold -FamilyName Courier -Weight Bold -ItalicAngle 0.0 -IsFixedPitch true -UnderlinePosition -85 -UnderlineThickness 100 -Version 001.003 -FontBBox -100 -350 700 855 -CapHeight 633 -XHeight 487 -Descender -257 -Ascender 674 -StartCharMetrics 260 -C 32 ; WX 600 ; N space ; B 500 -100 700 100 ; -C 33 ; WX 600 ; N exclam ; B 170 -65 430 689 ; -C 34 ; WX 600 ; N quotedbl ; B 66 254 534 663 ; -C 35 ; WX 600 ; N numbersign ; B 12 -142 588 725 ; -C 36 ; WX 600 ; N dollar ; B 33 -173 567 735 ; -C 37 ; WX 600 ; N percent ; B 7 -65 593 689 ; -C 38 ; WX 600 ; N ampersand ; B 25 -65 558 600 ; -C 39 ; WX 600 ; N quoteright ; B 75 244 400 674 ; -C 40 ; WX 600 ; N parenleft ; B 214 -204 538 683 ; -C 41 ; WX 600 ; N parenright ; B 67 -204 391 683 ; -C 42 ; WX 600 ; N asterisk ; B 33 150 567 674 ; -C 43 ; WX 600 ; N plus ; B -8 -48 608 610 ; -C 44 ; WX 600 ; N comma ; B 75 -215 400 215 ; -C 45 ; WX 600 ; N hyphen ; B -8 181 608 381 ; -C 46 ; WX 600 ; N period ; B 190 -50 410 150 ; -C 47 ; WX 600 ; N slash ; B 33 -163 567 746 ; -C 48 ; WX 600 ; N zero ; B 33 -65 567 689 ; -C 49 ; WX 600 ; N one ; B 33 -50 567 674 ; -C 50 ; WX 600 ; N two ; B 4 -50 558 689 ; -C 51 ; WX 600 ; N three ; B 16 -65 579 689 ; -C 52 ; WX 600 ; N four ; B 25 -50 558 674 ; -C 53 ; WX 600 ; N five ; B 16 -65 579 674 ; -C 54 ; WX 600 ; N six ; B 56 -65 590 689 ; -C 55 ; WX 600 ; N seven ; B 25 -50 558 674 ; -C 56 ; WX 600 ; N eight ; B 33 -65 567 689 ; -C 57 ; WX 600 ; N nine ; B 56 -65 590 689 ; -C 58 ; WX 600 ; N colon ; B 190 -50 410 472 ; -C 59 ; WX 600 ; N semicolon ; B 79 -176 410 472 ; -C 60 ; WX 600 ; N less ; B -8 -48 608 610 ; -C 61 ; WX 600 ; N equal ; B -29 88 629 474 ; -C 62 ; WX 600 ; N greater ; B -8 -48 608 610 ; -C 63 ; WX 600 ; N question ; B 54 -65 567 648 ; -C 64 ; WX 600 ; N at ; B 26 -142 559 705 ; -C 65 ; WX 600 ; N A ; B -71 -50 671 633 ; -C 66 ; WX 600 ; N B ; B -37 -50 621 633 ; -C 67 ; WX 600 ; N C ; B -17 -65 614 648 ; -C 68 ; WX 600 ; N D ; B -37 -50 600 633 ; -C 69 ; WX 600 ; N E ; B -37 -50 600 633 ; -C 70 ; WX 600 ; N F ; B -37 -50 600 633 ; -C 71 ; WX 600 ; N G ; B -17 -65 642 648 ; -C 72 ; WX 600 ; N H ; B -27 -50 631 633 ; -C 73 ; WX 600 ; N I ; B 33 -50 567 633 ; -C 74 ; WX 600 ; N J ; B 4 -65 663 633 ; -C 75 ; WX 600 ; N K ; B -37 -50 652 633 ; -C 76 ; WX 600 ; N L ; B -17 -50 621 633 ; -C 77 ; WX 600 ; N M ; B -69 -50 673 633 ; -C 78 ; WX 600 ; N N ; B -58 -50 642 633 ; -C 79 ; WX 600 ; N O ; B -29 -65 629 648 ; -C 80 ; WX 600 ; N P ; B -37 -50 579 633 ; -C 81 ; WX 600 ; N Q ; B -29 -196 629 648 ; -C 82 ; WX 600 ; N R ; B -37 -50 669 633 ; -C 83 ; WX 600 ; N S ; B 12 -65 588 648 ; -C 84 ; WX 600 ; N T ; B -8 -50 608 633 ; -C 85 ; WX 600 ; N U ; B -40 -65 640 633 ; -C 86 ; WX 600 ; N V ; B -71 -50 671 633 ; -C 87 ; WX 600 ; N W ; B -60 -50 660 633 ; -C 88 ; WX 600 ; N X ; B -40 -50 640 633 ; -C 89 ; WX 600 ; N Y ; B -29 -50 629 633 ; -C 90 ; WX 600 ; N Z ; B 23 -50 577 633 ; -C 91 ; WX 600 ; N bracketleft ; B 200 -204 525 674 ; -C 92 ; WX 600 ; N backslash ; B 33 -163 567 746 ; -C 93 ; WX 600 ; N bracketright ; B 75 -204 400 674 ; -C 94 ; WX 600 ; N asciicircum ; B 33 275 567 674 ; -C 95 ; WX 600 ; N underscore ; B -92 -350 692 -150 ; -C 96 ; WX 600 ; N quoteleft ; B 200 244 525 674 ; -C 97 ; WX 600 ; N a ; B -8 -65 621 502 ; -C 98 ; WX 600 ; N b ; B -58 -65 621 674 ; -C 99 ; WX 600 ; N c ; B 4 -65 615 502 ; -C 100 ; WX 600 ; N d ; B -17 -65 663 674 ; -C 101 ; WX 600 ; N e ; B -17 -65 600 502 ; -C 102 ; WX 600 ; N f ; B 25 -50 621 674 ; L i fi ; L l fl ; -C 103 ; WX 600 ; N g ; B -17 -257 642 502 ; -C 104 ; WX 600 ; N h ; B -37 -50 631 674 ; -C 105 ; WX 600 ; N i ; B 12 -50 588 725 ; -C 106 ; WX 600 ; N j ; B 67 -257 538 725 ; -C 107 ; WX 600 ; N k ; B -17 -50 621 674 ; -C 108 ; WX 600 ; N l ; B 12 -50 588 674 ; -C 109 ; WX 600 ; N m ; B -69 -50 673 502 ; -C 110 ; WX 600 ; N n ; B -27 -50 621 502 ; -C 111 ; WX 600 ; N o ; B -8 -65 608 502 ; -C 112 ; WX 600 ; N p ; B -58 -257 621 502 ; -C 113 ; WX 600 ; N q ; B -17 -257 663 502 ; -C 114 ; WX 600 ; N r ; B 4 -50 621 501 ; -C 115 ; WX 600 ; N s ; B 23 -65 577 502 ; -C 116 ; WX 600 ; N t ; B -37 -65 579 642 ; -C 117 ; WX 600 ; N u ; B -37 -65 621 487 ; -C 118 ; WX 600 ; N v ; B -50 -50 650 487 ; -C 119 ; WX 600 ; N w ; B -50 -50 650 487 ; -C 120 ; WX 600 ; N x ; B -29 -50 629 487 ; -C 121 ; WX 600 ; N y ; B -29 -257 629 487 ; -C 122 ; WX 600 ; N z ; B 35 -50 569 487 ; -C 123 ; WX 600 ; N braceleft ; B 117 -204 483 674 ; -C 124 ; WX 600 ; N bar ; B 200 -204 400 674 ; -C 125 ; WX 600 ; N braceright ; B 117 -204 483 674 ; -C 126 ; WX 600 ; N asciitilde ; B 12 129 588 433 ; -C 161 ; WX 600 ; N exclamdown ; B 170 -257 430 475 ; -C 162 ; WX 600 ; N cent ; B 33 -79 549 725 ; -C 163 ; WX 600 ; N sterling ; B -17 -50 600 648 ; -C 164 ; WX 600 ; N fraction ; B -29 60 629 552 ; -C 165 ; WX 600 ; N yen ; B -29 -50 629 633 ; -C 166 ; WX 600 ; N florin ; B 7 -173 598 689 ; -C 167 ; WX 600 ; N section ; B -14 -147 614 689 ; -C 168 ; WX 600 ; N currency ; B 23 15 577 569 ; -C 169 ; WX 600 ; N quotesingle ; B 170 244 430 674 ; -C 170 ; WX 600 ; N quotedblleft ; B 33 280 567 678 ; -C 171 ; WX 600 ; N guillemotleft ; B -17 -50 621 487 ; -C 172 ; WX 600 ; N guilsinglleft ; B -17 -50 392 487 ; -C 173 ; WX 600 ; N guilsinglright ; B 213 -50 621 487 ; -C 174 ; WX 600 ; N fi ; B -70 -50 670 725 ; -C 175 ; WX 600 ; N fl ; B -70 -50 670 674 ; -C 177 ; WX 600 ; N endash ; B -8 181 608 381 ; -C 178 ; WX 600 ; N dagger ; B 44 -142 556 674 ; -C 179 ; WX 600 ; N daggerdbl ; B 44 -142 556 674 ; -C 180 ; WX 600 ; N periodcentered ; B 190 206 410 406 ; -C 182 ; WX 600 ; N paragraph ; B -1 -147 605 689 ; -C 183 ; WX 600 ; N bullet ; B 200 206 400 406 ; -C 184 ; WX 600 ; N quotesinglbase ; B 75 -225 400 204 ; -C 185 ; WX 600 ; N quotedblbase ; B 33 -199 567 199 ; -C 186 ; WX 600 ; N quotedblright ; B 33 280 567 678 ; -C 187 ; WX 600 ; N guillemotright ; B -17 -50 621 487 ; -C 188 ; WX 600 ; N ellipsis ; B 0 -65 600 135 ; -C 189 ; WX 600 ; N perthousand ; B -50 -65 650 689 ; -C 191 ; WX 600 ; N questiondown ; B 33 -257 546 475 ; -C 193 ; WX 600 ; N grave ; B 75 390 400 689 ; -C 194 ; WX 600 ; N acute ; B 200 390 525 689 ; -C 195 ; WX 600 ; N circumflex ; B 75 390 525 674 ; -C 196 ; WX 600 ; N tilde ; B 65 381 535 640 ; -C 197 ; WX 600 ; N macron ; B 75 416 525 616 ; -C 198 ; WX 600 ; N breve ; B 75 390 525 674 ; -C 199 ; WX 600 ; N dotaccent ; B 200 431 400 631 ; -C 200 ; WX 600 ; N dieresis ; B 96 431 504 631 ; -C 202 ; WX 600 ; N ring ; B 127 353 473 694 ; -C 203 ; WX 600 ; N cedilla ; B 130 -246 457 100 ; -C 205 ; WX 600 ; N hungarumlaut ; B 75 390 525 689 ; -C 206 ; WX 600 ; N ogonek ; B 200 -225 513 100 ; -C 207 ; WX 600 ; N caron ; B 75 390 525 674 ; -C 208 ; WX 600 ; N emdash ; B -79 181 679 381 ; -C 225 ; WX 600 ; N AE ; B -70 -50 670 633 ; -C 227 ; WX 600 ; N ordfeminine ; B 68 120 539 649 ; -C 232 ; WX 600 ; N Lslash ; B -37 -50 621 633 ; -C 233 ; WX 600 ; N Oslash ; B -40 -121 640 683 ; -C 234 ; WX 600 ; N OE ; B -70 -50 670 633 ; -C 235 ; WX 600 ; N ordmasculine ; B 72 120 530 649 ; -C 241 ; WX 600 ; N ae ; B -70 -65 660 502 ; -C 245 ; WX 600 ; N dotlessi ; B 12 -50 588 487 ; -C 248 ; WX 600 ; N lslash ; B 12 -50 588 674 ; -C 249 ; WX 600 ; N oslash ; B -27 -121 623 538 ; -C 250 ; WX 600 ; N oe ; B -70 -65 660 502 ; -C 251 ; WX 600 ; N germandbls ; B -37 -65 579 674 ; -C -1 ; WX 600 ; N Aacute ; B -71 -50 671 839 ; -C -1 ; WX 600 ; N Acircumflex ; B -71 -50 671 824 ; -C -1 ; WX 600 ; N Adieresis ; B -71 -50 671 781 ; -C -1 ; WX 600 ; N Agrave ; B -71 -50 671 839 ; -C -1 ; WX 600 ; N Aring ; B -71 -50 671 855 ; -C -1 ; WX 600 ; N Atilde ; B -71 -50 671 790 ; -C -1 ; WX 600 ; N Ccedilla ; B -17 -246 614 648 ; -C -1 ; WX 600 ; N Eacute ; B -37 -50 600 839 ; -C -1 ; WX 600 ; N Ecircumflex ; B -37 -50 600 824 ; -C -1 ; WX 600 ; N Edieresis ; B -37 -50 600 781 ; -C -1 ; WX 600 ; N Egrave ; B -37 -50 600 839 ; -C -1 ; WX 600 ; N Eth ; B -37 -50 600 633 ; -C -1 ; WX 600 ; N Gcaron ; B -17 -65 642 824 ; -C -1 ; WX 600 ; N IJ ; B -70 -65 670 633 ; -C -1 ; WX 600 ; N Iacute ; B 33 -50 567 839 ; -C -1 ; WX 600 ; N Icircumflex ; B 33 -50 567 824 ; -C -1 ; WX 600 ; N Idieresis ; B 33 -50 567 781 ; -C -1 ; WX 600 ; N Idot ; B 33 -50 567 781 ; -C -1 ; WX 600 ; N Igrave ; B 33 -50 567 839 ; -C -1 ; WX 600 ; N LL ; B -80 -50 680 633 ; -C -1 ; WX 600 ; N Ntilde ; B -58 -50 642 790 ; -C -1 ; WX 600 ; N Oacute ; B -29 -65 629 839 ; -C -1 ; WX 600 ; N Ocircumflex ; B -29 -65 629 824 ; -C -1 ; WX 600 ; N Odieresis ; B -29 -65 629 781 ; -C -1 ; WX 600 ; N Ograve ; B -29 -65 629 839 ; -C -1 ; WX 600 ; N Otilde ; B -29 -65 629 790 ; -C -1 ; WX 600 ; N Scaron ; B 12 -65 588 824 ; -C -1 ; WX 600 ; N Scedilla ; B 12 -246 588 648 ; -C -1 ; WX 600 ; N Thorn ; B -37 -50 599 633 ; -C -1 ; WX 600 ; N Uacute ; B -40 -65 640 839 ; -C -1 ; WX 600 ; N Ucircumflex ; B -40 -65 640 824 ; -C -1 ; WX 600 ; N Udieresis ; B -40 -65 640 781 ; -C -1 ; WX 600 ; N Ugrave ; B -40 -65 640 839 ; -C -1 ; WX 600 ; N Yacute ; B -29 -50 629 839 ; -C -1 ; WX 600 ; N Ydieresis ; B -29 -50 629 781 ; -C -1 ; WX 600 ; N Zcaron ; B 23 -50 577 824 ; -C -1 ; WX 600 ; N aacute ; B -8 -65 621 710 ; -C -1 ; WX 600 ; N acircumflex ; B -8 -65 621 703 ; -C -1 ; WX 600 ; N adieresis ; B -8 -65 621 652 ; -C -1 ; WX 600 ; N agrave ; B -8 -65 621 710 ; -C -1 ; WX 600 ; N aring ; B -8 -65 621 746 ; -C -1 ; WX 600 ; N arrowboth ; B -100 50 700 550 ; -C -1 ; WX 600 ; N arrowdown ; B 50 -50 550 689 ; -C -1 ; WX 600 ; N arrowleft ; B -100 50 700 550 ; -C -1 ; WX 600 ; N arrowright ; B -100 50 700 550 ; -C -1 ; WX 600 ; N arrowup ; B 50 -50 550 689 ; -C -1 ; WX 600 ; N atilde ; B -8 -65 621 678 ; -C -1 ; WX 600 ; N brokenbar ; B 200 -204 400 674 ; -C -1 ; WX 600 ; N ccedilla ; B 4 -246 615 502 ; -C -1 ; WX 600 ; N center ; B -60 -50 660 684 ; -C -1 ; WX 600 ; N copyright ; B -80 -65 680 648 ; -C -1 ; WX 600 ; N dectab ; B -65 -50 665 308 ; -C -1 ; WX 600 ; N degree ; B 75 234 525 674 ; -C -1 ; WX 600 ; N divide ; B -8 -9 608 591 ; -C -1 ; WX 600 ; N down ; B 94 -50 506 502 ; -C -1 ; WX 600 ; N eacute ; B -17 -65 600 714 ; -C -1 ; WX 600 ; N ecircumflex ; B -17 -65 600 703 ; -C -1 ; WX 600 ; N edieresis ; B -17 -65 600 652 ; -C -1 ; WX 600 ; N egrave ; B -17 -65 600 714 ; -C -1 ; WX 600 ; N eth ; B -8 -65 608 689 ; -C -1 ; WX 600 ; N format ; B -75 -257 125 674 ; -C -1 ; WX 600 ; N gcaron ; B -17 -257 642 695 ; -C -1 ; WX 600 ; N graybox ; B -25 -100 625 700 ; -C -1 ; WX 600 ; N iacute ; B 12 -50 588 710 ; -C -1 ; WX 600 ; N icircumflex ; B 12 -50 588 684 ; -C -1 ; WX 600 ; N idieresis ; B 12 -50 588 652 ; -C -1 ; WX 600 ; N igrave ; B 12 -50 588 706 ; -C -1 ; WX 600 ; N ij ; B -50 -257 610 725 ; -C -1 ; WX 600 ; N indent ; B -6 0 606 412 ; -C -1 ; WX 600 ; N largebullet ; B 200 206 400 406 ; -C -1 ; WX 600 ; N left ; B -6 0 606 412 ; -C -1 ; WX 600 ; N lira ; B -17 -50 600 648 ; -C -1 ; WX 600 ; N ll ; B -60 -50 660 674 ; -C -1 ; WX 600 ; N logicalnot ; B -8 94 608 454 ; -C -1 ; WX 600 ; N merge ; B 94 -50 506 502 ; -C -1 ; WX 600 ; N minus ; B -8 181 608 381 ; -C -1 ; WX 600 ; N mu ; B -37 -257 621 487 ; -C -1 ; WX 600 ; N multiply ; B 22 -48 578 530 ; -C -1 ; WX 600 ; N notegraphic ; B 80 -65 520 689 ; -C -1 ; WX 600 ; N ntilde ; B -27 -50 621 678 ; -C -1 ; WX 600 ; N oacute ; B -8 -65 608 699 ; -C -1 ; WX 600 ; N ocircumflex ; B -8 -65 608 703 ; -C -1 ; WX 600 ; N odieresis ; B -8 -65 608 652 ; -C -1 ; WX 600 ; N ograve ; B -8 -65 608 699 ; -C -1 ; WX 600 ; N onehalf ; B -70 -65 670 674 ; -C -1 ; WX 600 ; N onequarter ; B -70 -50 670 674 ; -C -1 ; WX 600 ; N onesuperior ; B 100 140 500 674 ; -C -1 ; WX 600 ; N otilde ; B -8 -65 608 657 ; -C -1 ; WX 600 ; N overscore ; B -92 489 692 689 ; -C -1 ; WX 600 ; N plusminus ; B -8 -50 608 610 ; -C -1 ; WX 600 ; N prescription ; B -37 -50 669 633 ; -C -1 ; WX 600 ; N registered ; B -80 -65 680 648 ; -C -1 ; WX 600 ; N return ; B -84 -50 684 668 ; -C -1 ; WX 600 ; N scaron ; B 23 -65 577 695 ; -C -1 ; WX 600 ; N scedilla ; B 23 -246 577 502 ; -C -1 ; WX 600 ; N square ; B -84 -50 684 668 ; -C -1 ; WX 600 ; N stop ; B -84 -50 684 668 ; -C -1 ; WX 600 ; N tab ; B -84 -50 684 668 ; -C -1 ; WX 600 ; N thorn ; B -58 -257 621 674 ; -C -1 ; WX 600 ; N threequarters ; B -70 -50 670 689 ; -C -1 ; WX 600 ; N threesuperior ; B 95 131 512 689 ; -C -1 ; WX 600 ; N trademark ; B -80 170 680 633 ; -C -1 ; WX 600 ; N twosuperior ; B 80 140 491 689 ; -C -1 ; WX 600 ; N uacute ; B -37 -65 621 706 ; -C -1 ; WX 600 ; N ucircumflex ; B -37 -65 621 684 ; -C -1 ; WX 600 ; N udieresis ; B -37 -65 621 652 ; -C -1 ; WX 600 ; N ugrave ; B -37 -65 621 706 ; -C -1 ; WX 600 ; N up ; B 94 -50 506 502 ; -C -1 ; WX 600 ; N yacute ; B -29 -257 629 706 ; -C -1 ; WX 600 ; N ydieresis ; B -29 -257 629 631 ; -C -1 ; WX 600 ; N zcaron ; B 35 -50 569 695 ; -EndCharMetrics -StartComposites 58 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 146 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 146 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 0 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 0 0 ; -CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 146 ; -CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 146 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 0 146 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 146 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 146 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 0 146 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 146 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 146 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 146 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 146 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 0 146 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 146 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 146 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 146 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 146 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 146 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 146 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 146 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 146 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 146 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 146 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 146 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 146 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 146 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 146 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 0 146 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/CourBoO.afm b/misc/afm/CourBoO.afm deleted file mode 100644 index 603eab5278..0000000000 --- a/misc/afm/CourBoO.afm +++ /dev/null @@ -1,341 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Wed Feb 25 16:19:52 PST 1987 -FontName Courier-BoldOblique -EncodingScheme AdobeStandardEncoding -FullName Courier Bold Oblique -FamilyName Courier -Weight Bold -ItalicAngle -12.0 -IsFixedPitch true -UnderlinePosition -85 -UnderlineThickness 100 -Version 001.003 -FontBBox -145 -350 817 855 -CapHeight 633 -XHeight 487 -Descender -257 -Ascender 674 -StartCharMetrics 260 -C 32 ; WX 600 ; N space ; B 500 -100 700 100 ; -C 33 ; WX 600 ; N exclam ; B 197 -65 549 689 ; -C 34 ; WX 600 ; N quotedbl ; B 171 254 654 663 ; -C 35 ; WX 600 ; N numbersign ; B 52 -142 672 725 ; -C 36 ; WX 600 ; N dollar ; B 51 -173 659 735 ; -C 37 ; WX 600 ; N percent ; B 58 -65 671 689 ; -C 38 ; WX 600 ; N ampersand ; B 52 -65 607 600 ; -C 39 ; WX 600 ; N quoteright ; B 148 244 522 674 ; -C 40 ; WX 600 ; N parenleft ; B 255 -204 662 683 ; -C 41 ; WX 600 ; N parenright ; B 45 -204 452 683 ; -C 42 ; WX 600 ; N asterisk ; B 131 150 665 674 ; -C 43 ; WX 600 ; N plus ; B 52 -48 668 610 ; -C 44 ; WX 600 ; N comma ; B 51 -215 424 215 ; -C 45 ; WX 600 ; N hyphen ; B 52 181 668 381 ; -C 46 ; WX 600 ; N period ; B 201 -50 421 150 ; -C 47 ; WX 600 ; N slash ; B 20 -163 704 746 ; -C 48 ; WX 600 ; N zero ; B 82 -65 649 689 ; -C 49 ; WX 600 ; N one ; B 44 -50 578 674 ; -C 50 ; WX 600 ; N two ; B 15 -50 656 689 ; -C 51 ; WX 600 ; N three ; B 30 -65 659 689 ; -C 52 ; WX 600 ; N four ; B 65 -50 618 674 ; -C 53 ; WX 600 ; N five ; B 33 -65 660 674 ; -C 54 ; WX 600 ; N six ; B 108 -65 712 689 ; -C 55 ; WX 600 ; N seven ; B 136 -50 680 674 ; -C 56 ; WX 600 ; N eight ; B 64 -65 655 689 ; -C 57 ; WX 600 ; N nine ; B 67 -65 665 689 ; -C 58 ; WX 600 ; N colon ; B 201 -50 489 472 ; -C 59 ; WX 600 ; N semicolon ; B 63 -176 489 472 ; -C 60 ; WX 600 ; N less ; B 52 -48 716 610 ; -C 61 ; WX 600 ; N equal ; B 11 88 708 474 ; -C 62 ; WX 600 ; N greater ; B 3 -48 668 610 ; -C 63 ; WX 600 ; N question ; B 148 -65 657 648 ; -C 64 ; WX 600 ; N at ; B 61 -142 640 705 ; -C 65 ; WX 600 ; N A ; B -60 -50 682 633 ; -C 66 ; WX 600 ; N B ; B -26 -50 670 633 ; -C 67 ; WX 600 ; N C ; B 31 -65 713 648 ; -C 68 ; WX 600 ; N D ; B -26 -50 670 633 ; -C 69 ; WX 600 ; N E ; B -26 -50 692 633 ; -C 70 ; WX 600 ; N F ; B -26 -50 713 633 ; -C 71 ; WX 600 ; N G ; B 29 -65 713 648 ; -C 72 ; WX 600 ; N H ; B -16 -50 723 633 ; -C 73 ; WX 600 ; N I ; B 44 -50 680 633 ; -C 74 ; WX 600 ; N J ; B 22 -65 776 633 ; -C 75 ; WX 600 ; N K ; B -26 -50 744 633 ; -C 76 ; WX 600 ; N L ; B -6 -50 665 633 ; -C 77 ; WX 600 ; N M ; B -58 -50 776 633 ; -C 78 ; WX 600 ; N N ; B -26 -50 755 633 ; -C 79 ; WX 600 ; N O ; B 26 -65 696 648 ; -C 80 ; WX 600 ; N P ; B -26 -50 666 633 ; -C 81 ; WX 600 ; N Q ; B 26 -196 696 648 ; -C 82 ; WX 600 ; N R ; B -26 -50 680 633 ; -C 83 ; WX 600 ; N S ; B 23 -65 680 648 ; -C 84 ; WX 600 ; N T ; B 72 -50 721 633 ; -C 85 ; WX 600 ; N U ; B 61 -65 753 633 ; -C 86 ; WX 600 ; N V ; B 42 -50 784 633 ; -C 87 ; WX 600 ; N W ; B 50 -50 773 633 ; -C 88 ; WX 600 ; N X ; B -29 -50 742 633 ; -C 89 ; WX 600 ; N Y ; B 76 -50 742 633 ; -C 90 ; WX 600 ; N Z ; B 34 -50 669 633 ; -C 91 ; WX 600 ; N bracketleft ; B 178 -204 647 674 ; -C 92 ; WX 600 ; N backslash ; B 170 -163 554 746 ; -C 93 ; WX 600 ; N bracketright ; B 53 -204 522 674 ; -C 94 ; WX 600 ; N asciicircum ; B 113 275 647 674 ; -C 95 ; WX 600 ; N underscore ; B -145 -350 639 -150 ; -C 96 ; WX 600 ; N quoteleft ; B 322 244 598 674 ; -C 97 ; WX 600 ; N a ; B 16 -65 632 502 ; -C 98 ; WX 600 ; N b ; B -47 -65 670 674 ; -C 99 ; WX 600 ; N c ; B 44 -65 672 502 ; -C 100 ; WX 600 ; N d ; B 23 -65 701 674 ; -C 101 ; WX 600 ; N e ; B 25 -65 650 502 ; -C 102 ; WX 600 ; N f ; B 36 -50 740 674 ; L i fi ; L l fl ; -C 103 ; WX 600 ; N g ; B 25 -257 724 502 ; -C 104 ; WX 600 ; N h ; B -16 -50 642 674 ; -C 105 ; WX 600 ; N i ; B 23 -50 599 725 ; -C 106 ; WX 600 ; N j ; B 34 -257 620 725 ; -C 107 ; WX 600 ; N k ; B -6 -50 661 674 ; -C 108 ; WX 600 ; N l ; B 23 -50 599 674 ; -C 109 ; WX 600 ; N m ; B -58 -50 684 502 ; -C 110 ; WX 600 ; N n ; B -16 -50 632 502 ; -C 111 ; WX 600 ; N o ; B 34 -65 656 502 ; -C 112 ; WX 600 ; N p ; B -91 -257 671 502 ; -C 113 ; WX 600 ; N q ; B 27 -257 745 502 ; -C 114 ; WX 600 ; N r ; B 15 -50 699 501 ; -C 115 ; WX 600 ; N s ; B 34 -65 638 502 ; -C 116 ; WX 600 ; N t ; B 45 -65 599 642 ; -C 117 ; WX 600 ; N u ; B 45 -65 640 487 ; -C 118 ; WX 600 ; N v ; B 32 -50 732 487 ; -C 119 ; WX 600 ; N w ; B 32 -50 732 487 ; -C 120 ; WX 600 ; N x ; B -18 -50 690 487 ; -C 121 ; WX 600 ; N y ; B -62 -257 711 487 ; -C 122 ; WX 600 ; N z ; B 46 -50 640 487 ; -C 123 ; WX 600 ; N braceleft ; B 168 -204 605 674 ; -C 124 ; WX 600 ; N bar ; B 178 -204 522 674 ; -C 125 ; WX 600 ; N braceright ; B 95 -204 534 674 ; -C 126 ; WX 600 ; N asciitilde ; B 67 129 652 433 ; -C 161 ; WX 600 ; N exclamdown ; B 143 -257 490 475 ; -C 162 ; WX 600 ; N cent ; B 96 -79 643 725 ; -C 163 ; WX 600 ; N sterling ; B 15 -50 620 648 ; -C 164 ; WX 600 ; N fraction ; B 5 60 725 552 ; -C 165 ; WX 600 ; N yen ; B 77 -50 742 633 ; -C 166 ; WX 600 ; N florin ; B -6 -173 720 689 ; -C 167 ; WX 600 ; N section ; B 18 -147 697 689 ; -C 168 ; WX 600 ; N currency ; B 47 15 677 569 ; -C 169 ; WX 600 ; N quotesingle ; B 273 244 552 674 ; -C 170 ; WX 600 ; N quotedblleft ; B 156 280 648 678 ; -C 171 ; WX 600 ; N guillemotleft ; B 27 -50 703 487 ; -C 172 ; WX 600 ; N guilsinglleft ; B 27 -50 474 487 ; -C 173 ; WX 600 ; N guilsinglright ; B 224 -50 665 487 ; -C 174 ; WX 600 ; N fi ; B -59 -50 681 725 ; -C 175 ; WX 600 ; N fl ; B -59 -50 687 674 ; -C 177 ; WX 600 ; N endash ; B 52 181 668 381 ; -C 178 ; WX 600 ; N dagger ; B 126 -142 638 674 ; -C 179 ; WX 600 ; N daggerdbl ; B 75 -142 638 674 ; -C 180 ; WX 600 ; N periodcentered ; B 255 206 475 406 ; -C 182 ; WX 600 ; N paragraph ; B 72 -147 730 689 ; -C 183 ; WX 600 ; N bullet ; B 265 206 465 406 ; -C 184 ; WX 600 ; N quotesinglbase ; B 48 -225 422 204 ; -C 185 ; WX 600 ; N quotedblbase ; B 12 -199 588 199 ; -C 186 ; WX 600 ; N quotedblright ; B 114 280 690 678 ; -C 187 ; WX 600 ; N guillemotright ; B -6 -50 665 487 ; -C 188 ; WX 600 ; N ellipsis ; B 7 -65 607 135 ; -C 189 ; WX 600 ; N perthousand ; B 55 -65 679 689 ; -C 191 ; WX 600 ; N questiondown ; B 26 -257 533 475 ; -C 193 ; WX 600 ; N grave ; B 200 390 504 689 ; -C 194 ; WX 600 ; N acute ; B 304 390 650 689 ; -C 195 ; WX 600 ; N circumflex ; B 179 390 629 674 ; -C 196 ; WX 600 ; N tilde ; B 171 381 646 640 ; -C 197 ; WX 600 ; N macron ; B 185 416 635 616 ; -C 198 ; WX 600 ; N breve ; B 196 390 647 674 ; -C 199 ; WX 600 ; N dotaccent ; B 313 431 513 631 ; -C 200 ; WX 600 ; N dieresis ; B 209 431 617 631 ; -C 202 ; WX 600 ; N ring ; B 237 353 586 694 ; -C 203 ; WX 600 ; N cedilla ; B 103 -246 436 100 ; -C 205 ; WX 600 ; N hungarumlaut ; B 179 390 650 689 ; -C 206 ; WX 600 ; N ogonek ; B 184 -225 490 100 ; -C 207 ; WX 600 ; N caron ; B 197 390 647 674 ; -C 208 ; WX 600 ; N emdash ; B -19 181 739 381 ; -C 225 ; WX 600 ; N AE ; B -59 -50 763 633 ; -C 227 ; WX 600 ; N ordfeminine ; B 114 120 590 649 ; -C 232 ; WX 600 ; N Lslash ; B -6 -50 665 633 ; -C 233 ; WX 600 ; N Oslash ; B -44 -121 764 683 ; -C 234 ; WX 600 ; N OE ; B -16 -50 763 633 ; -C 235 ; WX 600 ; N ordmasculine ; B 118 120 623 649 ; -C 241 ; WX 600 ; N ae ; B -39 -65 711 502 ; -C 245 ; WX 600 ; N dotlessi ; B 23 -50 599 487 ; -C 248 ; WX 600 ; N lslash ; B 23 -50 604 674 ; -C 249 ; WX 600 ; N oslash ; B -31 -121 716 538 ; -C 250 ; WX 600 ; N oe ; B -30 -65 711 502 ; -C 251 ; WX 600 ; N germandbls ; B -26 -65 618 674 ; -C -1 ; WX 600 ; N Aacute ; B -60 -50 682 839 ; -C -1 ; WX 600 ; N Acircumflex ; B -60 -50 682 824 ; -C -1 ; WX 600 ; N Adieresis ; B -60 -50 682 781 ; -C -1 ; WX 600 ; N Agrave ; B -60 -50 682 839 ; -C -1 ; WX 600 ; N Aring ; B -60 -50 682 855 ; -C -1 ; WX 600 ; N Atilde ; B -60 -50 682 790 ; -C -1 ; WX 600 ; N Ccedilla ; B 31 -246 713 648 ; -C -1 ; WX 600 ; N Eacute ; B -26 -50 692 839 ; -C -1 ; WX 600 ; N Ecircumflex ; B -26 -50 692 824 ; -C -1 ; WX 600 ; N Edieresis ; B -26 -50 692 781 ; -C -1 ; WX 600 ; N Egrave ; B -26 -50 692 839 ; -C -1 ; WX 600 ; N Eth ; B -26 -50 670 633 ; -C -1 ; WX 600 ; N Gcaron ; B 29 -65 713 824 ; -C -1 ; WX 600 ; N IJ ; B -59 -65 783 633 ; -C -1 ; WX 600 ; N Iacute ; B 44 -50 680 839 ; -C -1 ; WX 600 ; N Icircumflex ; B 44 -50 680 824 ; -C -1 ; WX 600 ; N Idieresis ; B 44 -50 680 781 ; -C -1 ; WX 600 ; N Idot ; B 44 -50 680 781 ; -C -1 ; WX 600 ; N Igrave ; B 44 -50 680 839 ; -C -1 ; WX 600 ; N LL ; B -69 -50 712 633 ; -C -1 ; WX 600 ; N Ntilde ; B -26 -50 755 790 ; -C -1 ; WX 600 ; N Oacute ; B 26 -65 696 839 ; -C -1 ; WX 600 ; N Ocircumflex ; B 26 -65 696 824 ; -C -1 ; WX 600 ; N Odieresis ; B 26 -65 696 781 ; -C -1 ; WX 600 ; N Ograve ; B 26 -65 696 839 ; -C -1 ; WX 600 ; N Otilde ; B 26 -65 696 790 ; -C -1 ; WX 600 ; N Scaron ; B 23 -65 680 824 ; -C -1 ; WX 600 ; N Scedilla ; B 23 -246 680 648 ; -C -1 ; WX 600 ; N Thorn ; B -26 -50 663 633 ; -C -1 ; WX 600 ; N Uacute ; B 61 -65 753 839 ; -C -1 ; WX 600 ; N Ucircumflex ; B 61 -65 753 824 ; -C -1 ; WX 600 ; N Udieresis ; B 61 -65 753 781 ; -C -1 ; WX 600 ; N Ugrave ; B 61 -65 753 839 ; -C -1 ; WX 600 ; N Yacute ; B 76 -50 742 839 ; -C -1 ; WX 600 ; N Ydieresis ; B 76 -50 742 781 ; -C -1 ; WX 600 ; N Zcaron ; B 34 -50 679 824 ; -C -1 ; WX 600 ; N aacute ; B 16 -65 632 710 ; -C -1 ; WX 600 ; N acircumflex ; B 16 -65 635 703 ; -C -1 ; WX 600 ; N adieresis ; B 16 -65 632 652 ; -C -1 ; WX 600 ; N agrave ; B 16 -65 632 710 ; -C -1 ; WX 600 ; N aring ; B 16 -65 632 746 ; -C -1 ; WX 600 ; N arrowboth ; B -36 50 764 550 ; -C -1 ; WX 600 ; N arrowdown ; B 93 -50 593 689 ; -C -1 ; WX 600 ; N arrowleft ; B -36 50 764 550 ; -C -1 ; WX 600 ; N arrowright ; B -36 50 764 550 ; -C -1 ; WX 600 ; N arrowup ; B 143 -50 643 689 ; -C -1 ; WX 600 ; N atilde ; B 16 -65 654 678 ; -C -1 ; WX 600 ; N brokenbar ; B 178 -204 522 674 ; -C -1 ; WX 600 ; N ccedilla ; B 44 -246 672 502 ; -C -1 ; WX 600 ; N center ; B 2 -50 722 684 ; -C -1 ; WX 600 ; N copyright ; B -27 -65 743 648 ; -C -1 ; WX 600 ; N dectab ; B -54 -50 676 308 ; -C -1 ; WX 600 ; N degree ; B 171 234 624 674 ; -C -1 ; WX 600 ; N divide ; B 52 -9 668 591 ; -C -1 ; WX 600 ; N down ; B 127 -50 539 502 ; -C -1 ; WX 600 ; N eacute ; B 25 -65 650 714 ; -C -1 ; WX 600 ; N ecircumflex ; B 25 -65 650 703 ; -C -1 ; WX 600 ; N edieresis ; B 25 -65 650 652 ; -C -1 ; WX 600 ; N egrave ; B 25 -65 650 714 ; -C -1 ; WX 600 ; N eth ; B 28 -65 695 689 ; -C -1 ; WX 600 ; N format ; B -108 -257 247 674 ; -C -1 ; WX 600 ; N gcaron ; B 25 -257 724 695 ; -C -1 ; WX 600 ; N graybox ; B -25 -100 753 700 ; -C -1 ; WX 600 ; N iacute ; B 23 -50 599 710 ; -C -1 ; WX 600 ; N icircumflex ; B 23 -50 599 684 ; -C -1 ; WX 600 ; N idieresis ; B 23 -50 599 652 ; -C -1 ; WX 600 ; N igrave ; B 23 -50 599 706 ; -C -1 ; WX 600 ; N ij ; B -39 -257 692 725 ; -C -1 ; WX 600 ; N indent ; B 38 0 650 412 ; -C -1 ; WX 600 ; N largebullet ; B 265 206 465 406 ; -C -1 ; WX 600 ; N left ; B 38 0 650 412 ; -C -1 ; WX 600 ; N lira ; B 15 -50 620 648 ; -C -1 ; WX 600 ; N ll ; B -49 -50 682 674 ; -C -1 ; WX 600 ; N logicalnot ; B 67 94 683 454 ; -C -1 ; WX 600 ; N merge ; B 127 -50 569 502 ; -C -1 ; WX 600 ; N minus ; B 52 181 668 381 ; -C -1 ; WX 600 ; N mu ; B 13 -257 640 487 ; -C -1 ; WX 600 ; N multiply ; B 33 -48 669 530 ; -C -1 ; WX 600 ; N notegraphic ; B 107 -65 639 689 ; -C -1 ; WX 600 ; N ntilde ; B -16 -50 632 678 ; -C -1 ; WX 600 ; N oacute ; B 34 -65 656 699 ; -C -1 ; WX 600 ; N ocircumflex ; B 34 -65 656 703 ; -C -1 ; WX 600 ; N odieresis ; B 34 -65 656 652 ; -C -1 ; WX 600 ; N ograve ; B 34 -65 656 699 ; -C -1 ; WX 600 ; N onehalf ; B -14 -65 725 674 ; -C -1 ; WX 600 ; N onequarter ; B -14 -50 741 674 ; -C -1 ; WX 600 ; N onesuperior ; B 151 140 551 674 ; -C -1 ; WX 600 ; N otilde ; B 34 -65 656 657 ; -C -1 ; WX 600 ; N overscore ; B 33 489 817 689 ; -C -1 ; WX 600 ; N plusminus ; B 3 -50 677 610 ; -C -1 ; WX 600 ; N prescription ; B -26 -50 680 633 ; -C -1 ; WX 600 ; N registered ; B -27 -65 743 648 ; -C -1 ; WX 600 ; N return ; B -24 -50 805 668 ; -C -1 ; WX 600 ; N scaron ; B 34 -65 651 695 ; -C -1 ; WX 600 ; N scedilla ; B 34 -246 638 502 ; -C -1 ; WX 600 ; N square ; B -73 -50 805 668 ; -C -1 ; WX 600 ; N stop ; B -73 -50 805 668 ; -C -1 ; WX 600 ; N tab ; B -73 -50 744 668 ; -C -1 ; WX 600 ; N thorn ; B -91 -257 671 674 ; -C -1 ; WX 600 ; N threequarters ; B -3 -50 711 689 ; -C -1 ; WX 600 ; N threesuperior ; B 155 131 612 689 ; -C -1 ; WX 600 ; N trademark ; B 18 170 793 633 ; -C -1 ; WX 600 ; N twosuperior ; B 131 140 601 689 ; -C -1 ; WX 600 ; N uacute ; B 45 -65 640 706 ; -C -1 ; WX 600 ; N ucircumflex ; B 45 -65 640 684 ; -C -1 ; WX 600 ; N udieresis ; B 45 -65 640 652 ; -C -1 ; WX 600 ; N ugrave ; B 45 -65 640 706 ; -C -1 ; WX 600 ; N up ; B 157 -50 569 502 ; -C -1 ; WX 600 ; N yacute ; B -62 -257 711 706 ; -C -1 ; WX 600 ; N ydieresis ; B -62 -257 711 631 ; -C -1 ; WX 600 ; N zcaron ; B 46 -50 651 695 ; -EndCharMetrics -StartComposites 58 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 146 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 146 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 0 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 0 0 ; -CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 146 ; -CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 146 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 0 146 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 146 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 146 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 0 146 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 146 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 146 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 146 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 146 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 0 146 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 146 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 146 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 146 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 146 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 146 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 146 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 146 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 146 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 146 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 146 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 146 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 146 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 146 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 146 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 0 146 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/CourO.afm b/misc/afm/CourO.afm deleted file mode 100644 index 0911df46f9..0000000000 --- a/misc/afm/CourO.afm +++ /dev/null @@ -1,341 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Wed Feb 25 16:13:37 PST 1987 -FontName Courier-Oblique -EncodingScheme AdobeStandardEncoding -FullName Courier Oblique -FamilyName Courier -Weight Medium -ItalicAngle -12.0 -IsFixedPitch true -UnderlinePosition -82 -UnderlineThickness 40 -Version 001.003 -FontBBox -85 -290 759 795 -CapHeight 583 -XHeight 437 -Descender -207 -Ascender 624 -StartCharMetrics 260 -C 32 ; WX 600 ; N space ; B 560 -40 640 40 ; -C 33 ; WX 600 ; N exclam ; B 257 -5 483 639 ; -C 34 ; WX 600 ; N quotedbl ; B 231 314 594 603 ; -C 35 ; WX 600 ; N numbersign ; B 116 -82 608 665 ; -C 36 ; WX 600 ; N dollar ; B 111 -113 601 675 ; -C 37 ; WX 600 ; N percent ; B 118 -35 611 639 ; -C 38 ; WX 600 ; N ampersand ; B 112 -35 547 540 ; -C 39 ; WX 600 ; N quoteright ; B 208 304 462 613 ; -C 40 ; WX 600 ; N parenleft ; B 315 -144 602 623 ; -C 41 ; WX 600 ; N parenright ; B 105 -144 392 623 ; -C 42 ; WX 600 ; N asterisk ; B 191 210 605 624 ; -C 43 ; WX 600 ; N plus ; B 112 12 608 550 ; -C 44 ; WX 600 ; N comma ; B 111 -155 364 155 ; -C 45 ; WX 600 ; N hyphen ; B 112 241 608 321 ; -C 46 ; WX 600 ; N period ; B 261 10 361 90 ; -C 47 ; WX 600 ; N slash ; B 80 -103 644 686 ; -C 48 ; WX 600 ; N zero ; B 139 -35 590 639 ; -C 49 ; WX 600 ; N one ; B 97 -20 511 624 ; -C 50 ; WX 600 ; N two ; B 68 -20 596 639 ; -C 51 ; WX 600 ; N three ; B 90 -35 599 639 ; -C 52 ; WX 600 ; N four ; B 125 -20 560 624 ; -C 53 ; WX 600 ; N five ; B 93 -35 602 624 ; -C 54 ; WX 600 ; N six ; B 167 -35 654 639 ; -C 55 ; WX 600 ; N seven ; B 196 -20 622 624 ; -C 56 ; WX 600 ; N eight ; B 124 -35 595 639 ; -C 57 ; WX 600 ; N nine ; B 120 -35 606 639 ; -C 58 ; WX 600 ; N colon ; B 261 10 425 392 ; -C 59 ; WX 600 ; N semicolon ; B 123 -116 425 392 ; -C 60 ; WX 600 ; N less ; B 112 12 656 550 ; -C 61 ; WX 600 ; N equal ; B 75 168 644 394 ; -C 62 ; WX 600 ; N greater ; B 63 12 608 550 ; -C 63 ; WX 600 ; N question ; B 211 -5 597 598 ; -C 64 ; WX 600 ; N at ; B 120 -82 580 644 ; -C 65 ; WX 600 ; N A ; B -7 -20 615 583 ; -C 66 ; WX 600 ; N B ; B 27 -20 610 583 ; -C 67 ; WX 600 ; N C ; B 91 -35 655 598 ; -C 68 ; WX 600 ; N D ; B 27 -20 610 583 ; -C 69 ; WX 600 ; N E ; B 27 -20 634 583 ; -C 70 ; WX 600 ; N F ; B 27 -20 655 583 ; -C 71 ; WX 600 ; N G ; B 89 -35 655 598 ; -C 72 ; WX 600 ; N H ; B 37 -20 665 583 ; -C 73 ; WX 600 ; N I ; B 97 -20 622 583 ; -C 74 ; WX 600 ; N J ; B 82 -35 718 583 ; -C 75 ; WX 600 ; N K ; B 27 -20 686 583 ; -C 76 ; WX 600 ; N L ; B 47 -20 605 583 ; -C 77 ; WX 600 ; N M ; B -5 -20 718 583 ; -C 78 ; WX 600 ; N N ; B 27 -20 697 583 ; -C 79 ; WX 600 ; N O ; B 83 -35 636 598 ; -C 80 ; WX 600 ; N P ; B 27 -20 606 583 ; -C 81 ; WX 600 ; N Q ; B 84 -136 636 598 ; -C 82 ; WX 600 ; N R ; B 27 -20 613 583 ; -C 83 ; WX 600 ; N S ; B 76 -35 622 598 ; -C 84 ; WX 600 ; N T ; B 129 -20 663 583 ; -C 85 ; WX 600 ; N U ; B 119 -35 695 583 ; -C 86 ; WX 600 ; N V ; B 104 -20 726 583 ; -C 87 ; WX 600 ; N W ; B 103 -20 715 583 ; -C 88 ; WX 600 ; N X ; B 24 -20 684 583 ; -C 89 ; WX 600 ; N Y ; B 129 -20 684 583 ; -C 90 ; WX 600 ; N Z ; B 87 -20 611 583 ; -C 91 ; WX 600 ; N bracketleft ; B 238 -144 589 624 ; -C 92 ; WX 600 ; N backslash ; B 230 -103 494 686 ; -C 93 ; WX 600 ; N bracketright ; B 113 -144 464 624 ; -C 94 ; WX 600 ; N asciicircum ; B 173 335 587 624 ; -C 95 ; WX 600 ; N underscore ; B -85 -290 579 -210 ; -C 96 ; WX 600 ; N quoteleft ; B 382 304 538 613 ; -C 97 ; WX 600 ; N a ; B 74 -35 565 452 ; -C 98 ; WX 600 ; N b ; B 6 -35 610 624 ; -C 99 ; WX 600 ; N c ; B 104 -35 614 452 ; -C 100 ; WX 600 ; N d ; B 83 -35 643 624 ; -C 101 ; WX 600 ; N e ; B 85 -35 590 452 ; -C 102 ; WX 600 ; N f ; B 89 -20 682 624 ; L i fi ; L l fl ; -C 103 ; WX 600 ; N g ; B 85 -207 666 452 ; -C 104 ; WX 600 ; N h ; B 37 -20 575 624 ; -C 105 ; WX 600 ; N i ; B 76 -20 532 665 ; -C 106 ; WX 600 ; N j ; B 92 -207 562 665 ; -C 107 ; WX 600 ; N k ; B 47 -20 603 624 ; -C 108 ; WX 600 ; N l ; B 76 -20 532 624 ; -C 109 ; WX 600 ; N m ; B -5 -20 621 452 ; -C 110 ; WX 600 ; N n ; B 37 -20 565 452 ; -C 111 ; WX 600 ; N o ; B 91 -35 597 452 ; -C 112 ; WX 600 ; N p ; B -33 -207 612 452 ; -C 113 ; WX 600 ; N q ; B 85 -207 687 452 ; -C 114 ; WX 600 ; N r ; B 68 -20 639 448 ; -C 115 ; WX 600 ; N s ; B 87 -35 580 452 ; -C 116 ; WX 600 ; N t ; B 107 -35 541 582 ; -C 117 ; WX 600 ; N u ; B 107 -35 582 437 ; -C 118 ; WX 600 ; N v ; B 94 -20 674 437 ; -C 119 ; WX 600 ; N w ; B 94 -20 674 437 ; -C 120 ; WX 600 ; N x ; B 35 -20 632 437 ; -C 121 ; WX 600 ; N y ; B -4 -207 653 437 ; -C 122 ; WX 600 ; N z ; B 99 -20 582 437 ; -C 123 ; WX 600 ; N braceleft ; B 228 -144 547 624 ; -C 124 ; WX 600 ; N bar ; B 238 -144 464 624 ; -C 125 ; WX 600 ; N braceright ; B 155 -144 474 624 ; -C 126 ; WX 600 ; N asciitilde ; B 127 189 592 373 ; -C 161 ; WX 600 ; N exclamdown ; B 209 -207 430 415 ; -C 162 ; WX 600 ; N cent ; B 156 -19 583 665 ; -C 163 ; WX 600 ; N sterling ; B 68 -20 560 598 ; -C 164 ; WX 600 ; N fraction ; B 65 120 665 492 ; -C 165 ; WX 600 ; N yen ; B 137 -20 684 583 ; -C 166 ; WX 600 ; N florin ; B 54 -113 663 639 ; -C 167 ; WX 600 ; N section ; B 78 -87 637 629 ; -C 168 ; WX 600 ; N currency ; B 107 75 617 509 ; -C 169 ; WX 600 ; N quotesingle ; B 333 304 492 613 ; -C 170 ; WX 600 ; N quotedblleft ; B 216 340 588 619 ; -C 171 ; WX 600 ; N guillemotleft ; B 87 -20 645 437 ; -C 172 ; WX 600 ; N guilsinglleft ; B 87 -20 416 437 ; -C 173 ; WX 600 ; N guilsinglright ; B 277 -20 605 437 ; -C 174 ; WX 600 ; N fi ; B -6 -20 628 665 ; -C 175 ; WX 600 ; N fl ; B -6 -20 629 624 ; -C 177 ; WX 600 ; N endash ; B 112 241 608 321 ; -C 178 ; WX 600 ; N dagger ; B 188 -82 580 624 ; -C 179 ; WX 600 ; N daggerdbl ; B 135 -82 580 624 ; -C 180 ; WX 600 ; N periodcentered ; B 315 266 415 346 ; -C 182 ; WX 600 ; N paragraph ; B 132 -87 670 629 ; -C 183 ; WX 600 ; N bullet ; B 325 266 405 346 ; -C 184 ; WX 600 ; N quotesinglbase ; B 108 -165 362 144 ; -C 185 ; WX 600 ; N quotedblbase ; B 72 -139 528 139 ; -C 186 ; WX 600 ; N quotedblright ; B 174 340 630 619 ; -C 187 ; WX 600 ; N guillemotright ; B 47 -20 605 437 ; -C 188 ; WX 600 ; N ellipsis ; B 67 -5 547 75 ; -C 189 ; WX 600 ; N perthousand ; B 117 -35 619 639 ; -C 191 ; WX 600 ; N questiondown ; B 85 -207 470 415 ; -C 193 ; WX 600 ; N grave ; B 262 450 444 639 ; -C 194 ; WX 600 ; N acute ; B 364 450 592 639 ; -C 195 ; WX 600 ; N circumflex ; B 239 450 569 624 ; -C 196 ; WX 600 ; N tilde ; B 231 441 586 580 ; -C 197 ; WX 600 ; N macron ; B 245 476 575 556 ; -C 198 ; WX 600 ; N breve ; B 258 450 589 624 ; -C 199 ; WX 600 ; N dotaccent ; B 373 491 453 571 ; -C 200 ; WX 600 ; N dieresis ; B 269 491 557 571 ; -C 202 ; WX 600 ; N ring ; B 297 413 526 634 ; -C 203 ; WX 600 ; N cedilla ; B 163 -186 376 40 ; -C 205 ; WX 600 ; N hungarumlaut ; B 239 450 592 639 ; -C 206 ; WX 600 ; N ogonek ; B 244 -165 430 40 ; -C 207 ; WX 600 ; N caron ; B 259 450 589 624 ; -C 208 ; WX 600 ; N emdash ; B 41 241 679 321 ; -C 225 ; WX 600 ; N AE ; B -6 -20 705 583 ; -C 227 ; WX 600 ; N ordfeminine ; B 174 179 529 598 ; -C 232 ; WX 600 ; N Lslash ; B 47 -20 605 583 ; -C 233 ; WX 600 ; N Oslash ; B 16 -61 704 623 ; -C 234 ; WX 600 ; N OE ; B 42 -20 705 583 ; -C 235 ; WX 600 ; N ordmasculine ; B 178 179 563 598 ; -C 241 ; WX 600 ; N ae ; B 19 -35 651 452 ; -C 245 ; WX 600 ; N dotlessi ; B 76 -20 532 437 ; -C 248 ; WX 600 ; N lslash ; B 76 -20 544 624 ; -C 249 ; WX 600 ; N oslash ; B 29 -61 656 478 ; -C 250 ; WX 600 ; N oe ; B 28 -35 651 452 ; -C 251 ; WX 600 ; N germandbls ; B 27 -35 558 624 ; -C -1 ; WX 600 ; N Aacute ; B -7 -20 615 789 ; -C -1 ; WX 600 ; N Acircumflex ; B -7 -20 615 774 ; -C -1 ; WX 600 ; N Adieresis ; B -7 -20 615 721 ; -C -1 ; WX 600 ; N Agrave ; B -7 -20 615 789 ; -C -1 ; WX 600 ; N Aring ; B -7 -20 615 795 ; -C -1 ; WX 600 ; N Atilde ; B -7 -20 615 730 ; -C -1 ; WX 600 ; N Ccedilla ; B 91 -186 655 598 ; -C -1 ; WX 600 ; N Eacute ; B 27 -20 634 789 ; -C -1 ; WX 600 ; N Ecircumflex ; B 27 -20 634 774 ; -C -1 ; WX 600 ; N Edieresis ; B 27 -20 634 721 ; -C -1 ; WX 600 ; N Egrave ; B 27 -20 634 789 ; -C -1 ; WX 600 ; N Eth ; B 27 -20 610 583 ; -C -1 ; WX 600 ; N Gcaron ; B 89 -35 655 774 ; -C -1 ; WX 600 ; N IJ ; B -6 -35 725 583 ; -C -1 ; WX 600 ; N Iacute ; B 97 -20 622 789 ; -C -1 ; WX 600 ; N Icircumflex ; B 97 -20 622 774 ; -C -1 ; WX 600 ; N Idieresis ; B 97 -20 622 721 ; -C -1 ; WX 600 ; N Idot ; B 97 -20 622 721 ; -C -1 ; WX 600 ; N Igrave ; B 97 -20 622 789 ; -C -1 ; WX 600 ; N LL ; B -16 -20 652 583 ; -C -1 ; WX 600 ; N Ntilde ; B 27 -20 697 730 ; -C -1 ; WX 600 ; N Oacute ; B 83 -35 636 789 ; -C -1 ; WX 600 ; N Ocircumflex ; B 83 -35 636 774 ; -C -1 ; WX 600 ; N Odieresis ; B 83 -35 636 721 ; -C -1 ; WX 600 ; N Ograve ; B 83 -35 636 789 ; -C -1 ; WX 600 ; N Otilde ; B 83 -35 636 730 ; -C -1 ; WX 600 ; N Scaron ; B 76 -35 622 774 ; -C -1 ; WX 600 ; N Scedilla ; B 76 -186 622 598 ; -C -1 ; WX 600 ; N Thorn ; B 27 -20 603 583 ; -C -1 ; WX 600 ; N Uacute ; B 119 -35 695 789 ; -C -1 ; WX 600 ; N Ucircumflex ; B 119 -35 695 774 ; -C -1 ; WX 600 ; N Udieresis ; B 119 -35 695 721 ; -C -1 ; WX 600 ; N Ugrave ; B 119 -35 695 789 ; -C -1 ; WX 600 ; N Yacute ; B 129 -20 684 789 ; -C -1 ; WX 600 ; N Ydieresis ; B 129 -20 684 721 ; -C -1 ; WX 600 ; N Zcaron ; B 87 -20 621 774 ; -C -1 ; WX 600 ; N aacute ; B 74 -35 565 660 ; -C -1 ; WX 600 ; N acircumflex ; B 74 -35 575 653 ; -C -1 ; WX 600 ; N adieresis ; B 74 -35 565 592 ; -C -1 ; WX 600 ; N agrave ; B 74 -35 565 660 ; -C -1 ; WX 600 ; N aring ; B 74 -35 565 686 ; -C -1 ; WX 600 ; N arrowboth ; B 24 110 704 490 ; -C -1 ; WX 600 ; N arrowdown ; B 146 -20 526 639 ; -C -1 ; WX 600 ; N arrowleft ; B 24 110 704 490 ; -C -1 ; WX 600 ; N arrowright ; B 24 110 704 490 ; -C -1 ; WX 600 ; N arrowup ; B 205 -20 585 639 ; -C -1 ; WX 600 ; N atilde ; B 74 -35 594 618 ; -C -1 ; WX 600 ; N brokenbar ; B 238 -144 464 624 ; -C -1 ; WX 600 ; N ccedilla ; B 104 -186 614 452 ; -C -1 ; WX 600 ; N center ; B 62 -20 662 624 ; -C -1 ; WX 600 ; N copyright ; B 33 -35 683 598 ; -C -1 ; WX 600 ; N dectab ; B -1 -20 609 248 ; -C -1 ; WX 600 ; N degree ; B 231 294 564 624 ; -C -1 ; WX 600 ; N divide ; B 112 51 608 531 ; -C -1 ; WX 600 ; N down ; B 181 -20 473 452 ; -C -1 ; WX 600 ; N eacute ; B 85 -35 590 664 ; -C -1 ; WX 600 ; N ecircumflex ; B 85 -35 590 653 ; -C -1 ; WX 600 ; N edieresis ; B 85 -35 590 592 ; -C -1 ; WX 600 ; N egrave ; B 85 -35 590 664 ; -C -1 ; WX 600 ; N eth ; B 87 -35 637 639 ; -C -1 ; WX 600 ; N format ; B -50 -207 189 624 ; -C -1 ; WX 600 ; N gcaron ; B 85 -207 666 645 ; -C -1 ; WX 600 ; N graybox ; B 35 -40 693 640 ; -C -1 ; WX 600 ; N iacute ; B 76 -20 532 660 ; -C -1 ; WX 600 ; N icircumflex ; B 76 -20 532 634 ; -C -1 ; WX 600 ; N idieresis ; B 76 -20 532 592 ; -C -1 ; WX 600 ; N igrave ; B 76 -20 532 656 ; -C -1 ; WX 600 ; N ij ; B 14 -207 634 665 ; -C -1 ; WX 600 ; N indent ; B 98 60 590 352 ; -C -1 ; WX 600 ; N largebullet ; B 325 266 405 346 ; -C -1 ; WX 600 ; N left ; B 98 60 590 352 ; -C -1 ; WX 600 ; N lira ; B 68 -20 560 598 ; -C -1 ; WX 600 ; N ll ; B 4 -20 624 624 ; -C -1 ; WX 600 ; N logicalnot ; B 127 154 623 394 ; -C -1 ; WX 600 ; N merge ; B 181 -20 511 452 ; -C -1 ; WX 600 ; N minus ; B 112 241 608 321 ; -C -1 ; WX 600 ; N mu ; B 71 -207 582 437 ; -C -1 ; WX 600 ; N multiply ; B 93 12 609 470 ; -C -1 ; WX 600 ; N notegraphic ; B 167 -5 573 639 ; -C -1 ; WX 600 ; N ntilde ; B 37 -20 569 618 ; -C -1 ; WX 600 ; N oacute ; B 91 -35 597 649 ; -C -1 ; WX 600 ; N ocircumflex ; B 91 -35 597 653 ; -C -1 ; WX 600 ; N odieresis ; B 91 -35 597 592 ; -C -1 ; WX 600 ; N ograve ; B 91 -35 597 649 ; -C -1 ; WX 600 ; N onehalf ; B 46 -20 665 624 ; -C -1 ; WX 600 ; N onequarter ; B 46 -20 681 624 ; -C -1 ; WX 600 ; N onesuperior ; B 211 200 491 624 ; -C -1 ; WX 600 ; N otilde ; B 91 -35 597 597 ; -C -1 ; WX 600 ; N overscore ; B 95 559 759 639 ; -C -1 ; WX 600 ; N plusminus ; B 56 -20 617 550 ; -C -1 ; WX 600 ; N prescription ; B 27 -20 613 583 ; -C -1 ; WX 600 ; N registered ; B 33 -35 683 598 ; -C -1 ; WX 600 ; N return ; B 36 -20 745 608 ; -C -1 ; WX 600 ; N scaron ; B 87 -35 593 645 ; -C -1 ; WX 600 ; N scedilla ; B 87 -186 580 452 ; -C -1 ; WX 600 ; N square ; B -20 -20 745 608 ; -C -1 ; WX 600 ; N stop ; B -20 -20 745 608 ; -C -1 ; WX 600 ; N tab ; B -20 -20 684 608 ; -C -1 ; WX 600 ; N thorn ; B -33 -207 612 624 ; -C -1 ; WX 600 ; N threequarters ; B 57 -20 651 639 ; -C -1 ; WX 600 ; N threesuperior ; B 215 191 552 639 ; -C -1 ; WX 600 ; N trademark ; B 78 230 735 583 ; -C -1 ; WX 600 ; N twosuperior ; B 191 200 541 639 ; -C -1 ; WX 600 ; N uacute ; B 107 -35 582 656 ; -C -1 ; WX 600 ; N ucircumflex ; B 107 -35 582 634 ; -C -1 ; WX 600 ; N udieresis ; B 107 -35 582 592 ; -C -1 ; WX 600 ; N ugrave ; B 107 -35 582 656 ; -C -1 ; WX 600 ; N up ; B 219 -20 511 452 ; -C -1 ; WX 600 ; N yacute ; B -4 -207 653 656 ; -C -1 ; WX 600 ; N ydieresis ; B -4 -207 653 571 ; -C -1 ; WX 600 ; N zcaron ; B 99 -20 593 645 ; -EndCharMetrics -StartComposites 58 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 0 146 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 0 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 0 146 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 0 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 0 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 0 0 ; -CC Yacute 2 ; PCC Y 0 0 ; PCC acute 0 146 ; -CC yacute 2 ; PCC y 0 0 ; PCC acute 0 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 0 146 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 0 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 0 146 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 0 146 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 0 146 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 0 146 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 0 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 0 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 0 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 0 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 146 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 146 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 146 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 146 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute 0 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex 0 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis 0 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave 0 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 0 146 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 0 146 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 0 146 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 0 146 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 0 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 0 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 0 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 0 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 0 146 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 0 146 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 0 146 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 0 146 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 0 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 0 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 0 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 0 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 0 146 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 0 146 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 0 146 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 0 146 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 0 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 0 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 0 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 0 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 0 146 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 0 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 0 146 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 0 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 0 146 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 0 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 0 146 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 0 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/Helv.afm b/misc/afm/Helv.afm deleted file mode 100644 index b17a3909d4..0000000000 --- a/misc/afm/Helv.afm +++ /dev/null @@ -1,435 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:33:55 PDT 1986 -FontName Helvetica -EncodingScheme AdobeStandardEncoding -FullName Helvetica -FamilyName Helvetica -Weight Medium -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -97 -UnderlineThickness 73 -Version 001.001 -Notice Helvetica is a registered trademark of Allied Corporation. -FontBBox -174 -220 1001 944 -CapHeight 729 -XHeight 525 -Descender -219 -Ascender 729 -StartCharMetrics 228 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 278 ; N exclam ; B 124 0 208 729 ; -C 34 ; WX 355 ; N quotedbl ; B 52 462 305 708 ; -C 35 ; WX 556 ; N numbersign ; B 14 -20 542 698 ; -C 36 ; WX 556 ; N dollar ; B 33 -125 518 770 ; -C 37 ; WX 889 ; N percent ; B 29 -20 859 708 ; -C 38 ; WX 667 ; N ampersand ; B 52 -23 637 710 ; -C 39 ; WX 222 ; N quoteright ; B 64 476 158 708 ; -C 40 ; WX 333 ; N parenleft ; B 73 -213 291 729 ; -C 41 ; WX 333 ; N parenright ; B 38 -213 256 729 ; -C 42 ; WX 389 ; N asterisk ; B 40 452 343 740 ; -C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; -C 44 ; WX 278 ; N comma ; B 87 -150 192 104 ; -C 45 ; WX 333 ; N hyphen ; B 46 240 284 313 ; -C 46 ; WX 278 ; N period ; B 87 0 191 104 ; -C 47 ; WX 278 ; N slash ; B -8 -21 284 708 ; -C 48 ; WX 556 ; N zero ; B 43 -23 507 709 ; -C 49 ; WX 556 ; N one ; B 102 0 347 709 ; -C 50 ; WX 556 ; N two ; B 34 0 511 710 ; -C 51 ; WX 556 ; N three ; B 32 -23 506 709 ; -C 52 ; WX 556 ; N four ; B 28 0 520 709 ; -C 53 ; WX 556 ; N five ; B 35 -23 513 709 ; -C 54 ; WX 556 ; N six ; B 43 -23 513 709 ; -C 55 ; WX 556 ; N seven ; B 46 0 520 709 ; -C 56 ; WX 556 ; N eight ; B 37 -23 513 709 ; -C 57 ; WX 556 ; N nine ; B 38 -23 509 709 ; -C 58 ; WX 278 ; N colon ; B 110 0 214 525 ; -C 59 ; WX 278 ; N semicolon ; B 110 -150 215 516 ; -C 60 ; WX 584 ; N less ; B 45 -10 534 474 ; -C 61 ; WX 584 ; N equal ; B 50 112 534 352 ; -C 62 ; WX 584 ; N greater ; B 50 -10 539 474 ; -C 63 ; WX 556 ; N question ; B 77 0 509 738 ; -C 64 ; WX 1015 ; N at ; B 34 -146 951 737 ; -C 65 ; WX 667 ; N A ; B 17 0 653 729 ; -C 66 ; WX 667 ; N B ; B 79 0 623 729 ; -C 67 ; WX 722 ; N C ; B 48 -23 677 741 ; -C 68 ; WX 722 ; N D ; B 89 0 667 729 ; -C 69 ; WX 667 ; N E ; B 90 0 613 729 ; -C 70 ; WX 611 ; N F ; B 90 0 579 729 ; -C 71 ; WX 778 ; N G ; B 44 -23 709 741 ; -C 72 ; WX 722 ; N H ; B 83 0 644 729 ; -C 73 ; WX 278 ; N I ; B 100 0 194 729 ; -C 74 ; WX 500 ; N J ; B 17 -26 426 729 ; -C 75 ; WX 667 ; N K ; B 79 0 658 729 ; -C 76 ; WX 556 ; N L ; B 80 0 533 729 ; -C 77 ; WX 833 ; N M ; B 75 0 761 729 ; -C 78 ; WX 722 ; N N ; B 76 0 646 729 ; -C 79 ; WX 778 ; N O ; B 38 -23 742 741 ; -C 80 ; WX 667 ; N P ; B 91 0 617 730 ; -C 81 ; WX 778 ; N Q ; B 38 -59 742 741 ; -C 82 ; WX 722 ; N R ; B 93 0 679 729 ; -C 83 ; WX 667 ; N S ; B 48 -23 621 741 ; -C 84 ; WX 611 ; N T ; B 21 0 593 729 ; -C 85 ; WX 722 ; N U ; B 85 -23 645 729 ; -C 86 ; WX 667 ; N V ; B 30 0 645 729 ; -C 87 ; WX 944 ; N W ; B 22 0 929 729 ; -C 88 ; WX 667 ; N X ; B 22 0 649 729 ; -C 89 ; WX 667 ; N Y ; B 13 0 661 729 ; -C 90 ; WX 611 ; N Z ; B 28 0 583 729 ; -C 91 ; WX 278 ; N bracketleft ; B 64 -214 250 729 ; -C 92 ; WX 278 ; N backslash ; B -8 -20 284 729 ; -C 93 ; WX 278 ; N bracketright ; B 23 -215 209 729 ; -C 94 ; WX 469 ; N asciicircum ; B 44 333 425 713 ; -C 95 ; WX 556 ; N underscore ; B -22 -175 578 -125 ; -C 96 ; WX 222 ; N quoteleft ; B 65 459 158 708 ; -C 97 ; WX 556 ; N a ; B 42 -23 535 540 ; -C 98 ; WX 556 ; N b ; B 54 -23 523 729 ; -C 99 ; WX 500 ; N c ; B 31 -23 477 540 ; -C 100 ; WX 556 ; N d ; B 26 -23 495 729 ; -C 101 ; WX 556 ; N e ; B 40 -23 513 541 ; -C 102 ; WX 278 ; N f ; B 18 0 258 733 ; L i fi ; L l fl ; -C 103 ; WX 556 ; N g ; B 29 -220 489 540 ; -C 104 ; WX 556 ; N h ; B 70 0 486 729 ; -C 105 ; WX 222 ; N i ; B 66 0 150 729 ; -C 106 ; WX 222 ; N j ; B -18 -220 153 729 ; -C 107 ; WX 500 ; N k ; B 58 0 502 729 ; -C 108 ; WX 222 ; N l ; B 68 0 152 729 ; -C 109 ; WX 833 ; N m ; B 71 0 763 540 ; -C 110 ; WX 556 ; N n ; B 70 0 487 540 ; -C 111 ; WX 556 ; N o ; B 36 -23 510 540 ; -C 112 ; WX 556 ; N p ; B 54 -219 523 540 ; -C 113 ; WX 556 ; N q ; B 26 -219 495 540 ; -C 114 ; WX 333 ; N r ; B 69 0 321 540 ; -C 115 ; WX 500 ; N s ; B 34 -24 459 540 ; -C 116 ; WX 278 ; N t ; B 14 -24 254 667 ; -C 117 ; WX 556 ; N u ; B 65 -23 482 525 ; -C 118 ; WX 500 ; N v ; B 10 0 486 525 ; -C 119 ; WX 722 ; N w ; B 6 0 708 525 ; -C 120 ; WX 500 ; N x ; B 17 0 473 525 ; -C 121 ; WX 500 ; N y ; B 20 -219 478 525 ; -C 122 ; WX 500 ; N z ; B 31 0 457 525 ; -C 123 ; WX 334 ; N braceleft ; B 43 -214 276 731 ; -C 124 ; WX 260 ; N bar ; B 100 -215 160 729 ; -C 125 ; WX 334 ; N braceright ; B 29 -214 262 731 ; -C 126 ; WX 584 ; N asciitilde ; B 75 267 508 438 ; -C 161 ; WX 333 ; N exclamdown ; B 121 -214 205 525 ; -C 162 ; WX 556 ; N cent ; B 52 -120 510 628 ; -C 163 ; WX 556 ; N sterling ; B 26 -21 535 726 ; -C 164 ; WX 167 ; N fraction ; B -174 -21 336 708 ; -C 165 ; WX 556 ; N yen ; B 11 0 545 710 ; -C 166 ; WX 556 ; N florin ; B 11 -214 542 742 ; -C 167 ; WX 556 ; N section ; B 44 -215 506 729 ; -C 168 ; WX 556 ; N currency ; B 67 126 489 554 ; -C 169 ; WX 191 ; N quotesingle ; B 48 462 142 708 ; -C 170 ; WX 333 ; N quotedblleft ; B 48 459 299 708 ; -C 171 ; WX 556 ; N guillemotleft ; B 98 106 455 438 ; -C 172 ; WX 333 ; N guilsinglleft ; B 91 112 243 436 ; -C 173 ; WX 333 ; N guilsinglright ; B 85 112 239 436 ; -C 174 ; WX 500 ; N fi ; B 12 0 436 733 ; -C 175 ; WX 500 ; N fl ; B 17 0 430 733 ; -C 177 ; WX 556 ; N endash ; B -5 240 561 313 ; -C 178 ; WX 556 ; N dagger ; B 38 -178 513 710 ; -C 179 ; WX 556 ; N daggerdbl ; B 38 -178 513 710 ; -C 180 ; WX 278 ; N periodcentered ; B 87 318 211 442 ; -C 182 ; WX 537 ; N paragraph ; B 48 -178 522 729 ; -C 183 ; WX 350 ; N bullet ; B 50 220 300 470 ; -C 184 ; WX 222 ; N quotesinglbase ; B 64 -129 158 103 ; -C 185 ; WX 333 ; N quotedblbase ; B 47 -129 300 103 ; -C 186 ; WX 333 ; N quotedblright ; B 49 476 302 708 ; -C 187 ; WX 556 ; N guillemotright ; B 98 106 451 438 ; -C 188 ; WX 1000 ; N ellipsis ; B 115 0 885 104 ; -C 189 ; WX 1000 ; N perthousand ; B 9 -20 993 740 ; -C 191 ; WX 611 ; N questiondown ; B 95 -213 528 525 ; -C 193 ; WX 333 ; N grave ; B 22 592 231 740 ; -C 194 ; WX 333 ; N acute ; B 92 592 301 740 ; -C 195 ; WX 333 ; N circumflex ; B 20 591 307 741 ; -C 196 ; WX 333 ; N tilde ; B 5 589 319 716 ; -C 197 ; WX 333 ; N macron ; B 28 621 302 694 ; -C 198 ; WX 333 ; N breve ; B 15 594 316 729 ; -C 199 ; WX 333 ; N dotaccent ; B 115 605 219 709 ; -C 200 ; WX 333 ; N dieresis ; B 30 605 296 708 ; -C 202 ; WX 333 ; N ring ; B 79 566 255 741 ; -C 203 ; WX 333 ; N cedilla ; B 39 -214 287 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B -35 592 348 740 ; -C 206 ; WX 333 ; N ogonek ; B 57 -189 265 15 ; -C 207 ; WX 333 ; N caron ; B 19 590 306 740 ; -C 208 ; WX 1000 ; N emdash ; B -9 240 1001 313 ; -C 225 ; WX 1000 ; N AE ; B 11 0 950 729 ; -C 227 ; WX 370 ; N ordfeminine ; B 37 301 333 740 ; -C 232 ; WX 556 ; N Lslash ; B 0 0 552 729 ; -C 233 ; WX 778 ; N Oslash ; B 30 -23 744 742 ; -C 234 ; WX 1000 ; N OE ; B 43 -20 959 739 ; -C 235 ; WX 365 ; N ordmasculine ; B 40 301 324 741 ; -C 241 ; WX 889 ; N ae ; B 34 -20 845 546 ; -C 245 ; WX 278 ; N dotlessi ; B 94 0 178 525 ; -C 248 ; WX 222 ; N lslash ; B 0 0 212 729 ; -C 249 ; WX 611 ; N oslash ; B 18 -27 529 548 ; -C 250 ; WX 944 ; N oe ; B 40 -22 899 540 ; -C 251 ; WX 611 ; N germandbls ; B 126 -20 566 729 ; -C -1 ; WX 667 ; N Aacute ; B 17 0 653 939 ; -C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; -C -1 ; WX 667 ; N Adieresis ; B 17 0 653 907 ; -C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; -C -1 ; WX 667 ; N Aring ; B 17 0 653 940 ; -C -1 ; WX 667 ; N Atilde ; B 17 0 653 915 ; -C -1 ; WX 722 ; N Ccedilla ; B 48 -214 677 741 ; -C -1 ; WX 667 ; N Eacute ; B 90 0 613 939 ; -C -1 ; WX 667 ; N Ecircumflex ; B 90 0 613 940 ; -C -1 ; WX 667 ; N Edieresis ; B 90 0 613 907 ; -C -1 ; WX 667 ; N Egrave ; B 90 0 613 939 ; -C -1 ; WX 722 ; N Eth ; B 0 0 667 729 ; -C -1 ; WX 278 ; N Iacute ; B 71 0 280 939 ; -C -1 ; WX 278 ; N Icircumflex ; B -1 0 286 940 ; -C -1 ; WX 278 ; N Idieresis ; B 9 0 275 907 ; -C -1 ; WX 278 ; N Igrave ; B 1 0 210 939 ; -C -1 ; WX 722 ; N Ntilde ; B 76 0 646 915 ; -C -1 ; WX 778 ; N Oacute ; B 38 -23 742 939 ; -C -1 ; WX 778 ; N Ocircumflex ; B 38 -23 742 940 ; -C -1 ; WX 778 ; N Odieresis ; B 38 -23 742 907 ; -C -1 ; WX 778 ; N Ograve ; B 38 -23 742 939 ; -C -1 ; WX 778 ; N Otilde ; B 38 -23 742 915 ; -C -1 ; WX 667 ; N Scaron ; B 48 -23 621 939 ; -C -1 ; WX 667 ; N Thorn ; B 91 0 617 729 ; -C -1 ; WX 722 ; N Uacute ; B 85 -23 645 939 ; -C -1 ; WX 722 ; N Ucircumflex ; B 85 -23 645 940 ; -C -1 ; WX 722 ; N Udieresis ; B 85 -23 645 907 ; -C -1 ; WX 722 ; N Ugrave ; B 85 -23 645 939 ; -C -1 ; WX 667 ; N Yacute ; B 13 0 661 944 ; -C -1 ; WX 667 ; N Ydieresis ; B 13 0 661 907 ; -C -1 ; WX 611 ; N Zcaron ; B 28 0 583 939 ; -C -1 ; WX 556 ; N aacute ; B 42 -23 535 740 ; -C -1 ; WX 556 ; N acircumflex ; B 42 -23 535 741 ; -C -1 ; WX 556 ; N adieresis ; B 42 -23 535 708 ; -C -1 ; WX 556 ; N agrave ; B 42 -23 535 740 ; -C -1 ; WX 556 ; N aring ; B 42 -23 535 741 ; -C -1 ; WX 556 ; N atilde ; B 42 -23 535 716 ; -C -1 ; WX 260 ; N brokenbar ; B 100 -215 160 729 ; -C -1 ; WX 500 ; N ccedilla ; B 31 -214 477 540 ; -C -1 ; WX 737 ; N copyright ; B -13 -23 751 741 ; -C -1 ; WX 400 ; N degree ; B 50 409 350 709 ; -C -1 ; WX 584 ; N divide ; B 50 -10 534 474 ; -C -1 ; WX 556 ; N eacute ; B 40 -23 513 740 ; -C -1 ; WX 556 ; N ecircumflex ; B 40 -23 513 741 ; -C -1 ; WX 556 ; N edieresis ; B 40 -23 513 708 ; -C -1 ; WX 556 ; N egrave ; B 40 -23 513 740 ; -C -1 ; WX 556 ; N eth ; B 36 -23 510 729 ; -C -1 ; WX 278 ; N iacute ; B 65 0 274 740 ; -C -1 ; WX 278 ; N icircumflex ; B -7 0 280 741 ; -C -1 ; WX 278 ; N idieresis ; B 3 0 269 708 ; -C -1 ; WX 278 ; N igrave ; B -5 0 204 740 ; -C -1 ; WX 584 ; N logicalnot ; B 40 82 544 352 ; -C -1 ; WX 584 ; N minus ; B 40 194 544 270 ; -C -1 ; WX 556 ; N mu ; B 65 -219 482 525 ; -C -1 ; WX 584 ; N multiply ; B 50 -10 534 476 ; -C -1 ; WX 556 ; N ntilde ; B 70 0 487 716 ; -C -1 ; WX 556 ; N oacute ; B 36 -23 510 740 ; -C -1 ; WX 556 ; N ocircumflex ; B 36 -23 510 741 ; -C -1 ; WX 556 ; N odieresis ; B 36 -23 510 708 ; -C -1 ; WX 556 ; N ograve ; B 36 -23 510 740 ; -C -1 ; WX 834 ; N onehalf ; B 30 -21 804 709 ; -C -1 ; WX 834 ; N onequarter ; B 30 -21 804 709 ; -C -1 ; WX 333 ; N onesuperior ; B 60 284 219 709 ; -C -1 ; WX 556 ; N otilde ; B 36 -23 510 716 ; -C -1 ; WX 584 ; N plusminus ; B 40 0 544 618 ; -C -1 ; WX 737 ; N registered ; B -13 -23 751 741 ; -C -1 ; WX 500 ; N scaron ; B 34 -24 459 740 ; -C -1 ; WX 556 ; N thorn ; B 54 -219 523 729 ; -C -1 ; WX 834 ; N threequarters ; B 30 -21 804 709 ; -C -1 ; WX 333 ; N threesuperior ; B 12 270 320 709 ; -C -1 ; WX 1000 ; N trademark ; B 63 320 938 741 ; -C -1 ; WX 333 ; N twosuperior ; B 11 284 321 710 ; -C -1 ; WX 556 ; N uacute ; B 65 -23 482 740 ; -C -1 ; WX 556 ; N ucircumflex ; B 65 -23 482 741 ; -C -1 ; WX 556 ; N udieresis ; B 65 -23 482 708 ; -C -1 ; WX 556 ; N ugrave ; B 65 -23 482 740 ; -C -1 ; WX 500 ; N yacute ; B 20 -219 478 740 ; -C -1 ; WX 500 ; N ydieresis ; B 20 -219 478 708 ; -C -1 ; WX 500 ; N zcaron ; B 31 0 457 740 ; -EndCharMetrics -StartKernData -StartKernPairs 105 - -KPX A y -18 -KPX A w -18 -KPX A v -18 -KPX A space -55 -KPX A quoteright -74 -KPX A Y -74 -KPX A W -37 -KPX A V -74 -KPX A T -74 - -KPX F period -111 -KPX F comma -111 -KPX F A -55 - -KPX L y -37 -KPX L space -37 -KPX L quoteright -55 -KPX L Y -74 -KPX L W -74 -KPX L V -74 -KPX L T -74 - -KPX P space -18 -KPX P period -129 -KPX P comma -129 -KPX P A -74 - -KPX R Y -18 -KPX R W -18 -KPX R V -18 -KPX R T -18 - -KPX T y -55 -KPX T w -55 -KPX T u -37 -KPX T space -18 -KPX T semicolon -111 -KPX T s -111 -KPX T r -37 -KPX T period -111 -KPX T o -111 -KPX T i -37 -KPX T hyphen -55 -KPX T e -111 -KPX T comma -111 -KPX T colon -111 -KPX T c -111 -KPX T a -111 -KPX T O -18 -KPX T A -74 - -KPX V y -37 -KPX V u -37 -KPX V semicolon -37 -KPX V r -37 -KPX V period -92 -KPX V o -55 -KPX V i -18 -KPX V hyphen -55 -KPX V e -55 -KPX V comma -92 -KPX V colon -37 -KPX V a -74 -KPX V A -74 - -KPX W y -9 -KPX W u -18 -KPX W semicolon -18 -KPX W r -18 -KPX W period -55 -KPX W o -18 -KPX W i 0 -KPX W hyphen -18 -KPX W e -18 -KPX W comma -55 -KPX W colon -18 -KPX W a -37 -KPX W A -37 - -KPX Y v -55 -KPX Y u -55 -KPX Y space -18 -KPX Y semicolon -65 -KPX Y q -92 -KPX Y period -129 -KPX Y p -74 -KPX Y o -92 -KPX Y i -37 -KPX Y hyphen -92 -KPX Y e -92 -KPX Y comma -129 -KPX Y colon -55 -KPX Y a -74 -KPX Y A -74 - -KPX f quoteright 18 -KPX f f -18 - -KPX one one -74 - -KPX quoteleft quoteleft -18 - -KPX quoteright space -37 -KPX quoteright s -18 -KPX quoteright quoteright -18 - -KPX r quoteright 37 -KPX r period -55 -KPX r comma -55 - -KPX space Y -18 -KPX space T -18 -KPX space A -55 - -KPX v period -74 -KPX v comma -74 - -KPX w period -55 -KPX w comma -55 - -KPX y period -74 -KPX y comma -74 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 199 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 199 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 96 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 199 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 199 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 199 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 199 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 199 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute -21 199 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -21 199 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -21 199 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave -21 199 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 188 199 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 188 199 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 188 199 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 188 199 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 117 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 117 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 117 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 117 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 199 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 199 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 199 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 199 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 199 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 199 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 199 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 199 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 199 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 200 199 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 117 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 199 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 167 199 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/HelvBo.afm b/misc/afm/HelvBo.afm deleted file mode 100644 index 5f14f52069..0000000000 --- a/misc/afm/HelvBo.afm +++ /dev/null @@ -1,431 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:40:08 PDT 1986 -FontName Helvetica-Bold -EncodingScheme AdobeStandardEncoding -FullName Helvetica Bold -FamilyName Helvetica -Weight Bold -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -106 -UnderlineThickness 73 -Version 001.001 -Notice Helvetica is a registered trademark of Allied Corporation. -FontBBox -173 -221 1003 936 -CapHeight 729 -XHeight 542 -Descender -219 -Ascender 729 -StartCharMetrics 228 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 112 0 262 729 ; -C 34 ; WX 474 ; N quotedbl ; B 50 470 424 729 ; -C 35 ; WX 556 ; N numbersign ; B 3 -30 553 696 ; -C 36 ; WX 556 ; N dollar ; B 22 -125 526 765 ; -C 37 ; WX 889 ; N percent ; B 22 -18 863 708 ; -C 38 ; WX 722 ; N ampersand ; B 55 -20 694 729 ; -C 39 ; WX 278 ; N quoteright ; B 66 469 201 729 ; -C 40 ; WX 333 ; N parenleft ; B 40 -202 303 729 ; -C 41 ; WX 333 ; N parenright ; B 22 -202 285 729 ; -C 42 ; WX 389 ; N asterisk ; B 23 385 356 730 ; -C 43 ; WX 584 ; N plus ; B 50 -10 534 474 ; -C 44 ; WX 278 ; N comma ; B 64 -174 214 146 ; -C 45 ; WX 333 ; N hyphen ; B 26 208 298 344 ; -C 46 ; WX 278 ; N period ; B 64 0 214 146 ; -C 47 ; WX 278 ; N slash ; B 2 -14 275 715 ; -C 48 ; WX 556 ; N zero ; B 29 -23 517 725 ; -C 49 ; WX 556 ; N one ; B 68 0 378 709 ; -C 50 ; WX 556 ; N two ; B 30 0 515 726 ; -C 51 ; WX 556 ; N three ; B 29 -23 516 726 ; -C 52 ; WX 556 ; N four ; B 24 0 522 709 ; -C 53 ; WX 556 ; N five ; B 27 -24 517 709 ; -C 54 ; WX 556 ; N six ; B 32 -23 519 727 ; -C 55 ; WX 556 ; N seven ; B 29 0 528 709 ; -C 56 ; WX 556 ; N eight ; B 22 -23 525 726 ; -C 57 ; WX 556 ; N nine ; B 28 -23 516 728 ; -C 58 ; WX 333 ; N colon ; B 113 0 263 521 ; -C 59 ; WX 333 ; N semicolon ; B 113 -174 263 521 ; -C 60 ; WX 584 ; N less ; B 40 -10 529 474 ; -C 61 ; WX 584 ; N equal ; B 50 52 534 412 ; -C 62 ; WX 584 ; N greater ; B 40 -10 529 474 ; -C 63 ; WX 611 ; N question ; B 64 0 556 744 ; -C 64 ; WX 975 ; N at ; B 27 -136 947 746 ; -C 65 ; WX 722 ; N A ; B 26 0 703 729 ; -C 66 ; WX 722 ; N B ; B 82 0 666 729 ; -C 67 ; WX 722 ; N C ; B 44 -23 685 741 ; -C 68 ; WX 722 ; N D ; B 77 0 681 729 ; -C 69 ; WX 667 ; N E ; B 79 0 624 729 ; -C 70 ; WX 611 ; N F ; B 74 0 586 729 ; -C 71 ; WX 778 ; N G ; B 42 -24 711 741 ; -C 72 ; WX 722 ; N H ; B 68 0 657 729 ; -C 73 ; WX 278 ; N I ; B 63 0 213 729 ; -C 74 ; WX 556 ; N J ; B 24 -23 486 729 ; -C 75 ; WX 722 ; N K ; B 74 0 717 729 ; -C 76 ; WX 611 ; N L ; B 80 0 579 729 ; -C 77 ; WX 833 ; N M ; B 66 0 776 729 ; -C 78 ; WX 722 ; N N ; B 68 0 661 729 ; -C 79 ; WX 778 ; N O ; B 40 -23 742 741 ; -C 80 ; WX 667 ; N P ; B 76 0 633 729 ; -C 81 ; WX 778 ; N Q ; B 43 -54 745 741 ; -C 82 ; WX 722 ; N R ; B 80 0 677 729 ; -C 83 ; WX 667 ; N S ; B 32 -23 633 741 ; -C 84 ; WX 611 ; N T ; B 14 0 598 729 ; -C 85 ; WX 722 ; N U ; B 76 -23 654 729 ; -C 86 ; WX 667 ; N V ; B 24 0 647 729 ; -C 87 ; WX 944 ; N W ; B 13 0 932 729 ; -C 88 ; WX 667 ; N X ; B 22 0 653 729 ; -C 89 ; WX 667 ; N Y ; B 27 0 650 729 ; -C 90 ; WX 611 ; N Z ; B 30 0 578 729 ; -C 91 ; WX 333 ; N bracketleft ; B 66 -202 308 729 ; -C 92 ; WX 278 ; N backslash ; B -12 -21 289 708 ; -C 93 ; WX 333 ; N bracketright ; B 18 -202 260 729 ; -C 94 ; WX 584 ; N asciicircum ; B 61 271 522 696 ; -C 95 ; WX 556 ; N underscore ; B -22 -200 578 -130 ; -C 96 ; WX 278 ; N quoteleft ; B 67 469 202 729 ; -C 97 ; WX 556 ; N a ; B 27 -24 524 551 ; -C 98 ; WX 611 ; N b ; B 59 -23 575 729 ; -C 99 ; WX 556 ; N c ; B 34 -23 522 551 ; -C 100 ; WX 611 ; N d ; B 29 -23 545 729 ; -C 101 ; WX 556 ; N e ; B 22 -23 525 551 ; -C 102 ; WX 333 ; N f ; B 14 0 313 729 ; L i fi ; L l fl ; -C 103 ; WX 611 ; N g ; B 34 -220 541 551 ; -C 104 ; WX 611 ; N h ; B 67 0 541 729 ; -C 105 ; WX 278 ; N i ; B 67 0 207 729 ; -C 106 ; WX 278 ; N j ; B 4 -219 210 729 ; -C 107 ; WX 556 ; N k ; B 59 0 548 729 ; -C 108 ; WX 278 ; N l ; B 67 0 207 729 ; -C 109 ; WX 889 ; N m ; B 60 0 824 553 ; -C 110 ; WX 611 ; N n ; B 63 0 546 551 ; -C 111 ; WX 611 ; N o ; B 35 -23 569 551 ; -C 112 ; WX 611 ; N p ; B 58 -219 574 551 ; -C 113 ; WX 611 ; N q ; B 28 -219 544 551 ; -C 114 ; WX 389 ; N r ; B 63 0 370 553 ; -C 115 ; WX 556 ; N s ; B 29 -23 520 551 ; -C 116 ; WX 333 ; N t ; B 14 -23 301 678 ; -C 117 ; WX 611 ; N u ; B 58 -23 541 542 ; -C 118 ; WX 556 ; N v ; B 14 0 536 542 ; -C 119 ; WX 778 ; N w ; B 5 0 766 542 ; -C 120 ; WX 556 ; N x ; B 16 0 535 542 ; -C 121 ; WX 556 ; N y ; B 9 -219 538 542 ; -C 122 ; WX 500 ; N z ; B 21 0 468 542 ; -C 123 ; WX 389 ; N braceleft ; B 37 -202 317 729 ; -C 124 ; WX 280 ; N bar ; B 100 -202 180 729 ; -C 125 ; WX 389 ; N braceright ; B 72 -202 352 729 ; -C 126 ; WX 584 ; N asciitilde ; B 60 144 519 322 ; -C 161 ; WX 333 ; N exclamdown ; B 66 -187 216 542 ; -C 162 ; WX 556 ; N cent ; B 37 -122 522 637 ; -C 163 ; WX 556 ; N sterling ; B 31 -20 537 717 ; -C 164 ; WX 167 ; N fraction ; B -173 -20 337 715 ; -C 165 ; WX 556 ; N yen ; B 5 0 552 705 ; -C 166 ; WX 556 ; N florin ; B 21 -221 535 745 ; -C 167 ; WX 556 ; N section ; B 33 -201 518 728 ; -C 168 ; WX 556 ; N currency ; B 26 105 530 604 ; -C 169 ; WX 238 ; N quotesingle ; B 50 469 188 729 ; -C 170 ; WX 500 ; N quotedblleft ; B 71 469 433 729 ; -C 171 ; WX 556 ; N guillemotleft ; B 88 71 468 484 ; -C 172 ; WX 333 ; N guilsinglleft ; B 83 73 250 476 ; -C 173 ; WX 333 ; N guilsinglright ; B 80 73 247 476 ; -C 174 ; WX 611 ; N fi ; B 9 0 548 729 ; -C 175 ; WX 611 ; N fl ; B 12 0 546 729 ; -C 177 ; WX 556 ; N endash ; B -9 208 557 313 ; -C 178 ; WX 556 ; N dagger ; B 31 -195 523 708 ; -C 179 ; WX 556 ; N daggerdbl ; B 28 -195 520 708 ; -C 180 ; WX 278 ; N periodcentered ; B 64 318 188 442 ; -C 182 ; WX 556 ; N paragraph ; B 20 -195 529 729 ; -C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; -C 184 ; WX 278 ; N quotesinglbase ; B 66 -135 201 125 ; -C 185 ; WX 500 ; N quotedblbase ; B 72 -164 432 141 ; -C 186 ; WX 500 ; N quotedblright ; B 73 469 440 729 ; -C 187 ; WX 556 ; N guillemotright ; B 88 71 462 482 ; -C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; -C 189 ; WX 1000 ; N perthousand ; B 11 -20 990 745 ; -C 191 ; WX 611 ; N questiondown ; B 51 -192 544 542 ; -C 193 ; WX 333 ; N grave ; B 17 595 213 745 ; -C 194 ; WX 333 ; N acute ; B 121 595 317 745 ; -C 195 ; WX 333 ; N circumflex ; B 8 598 326 745 ; -C 196 ; WX 333 ; N tilde ; B -9 595 345 729 ; -C 197 ; WX 333 ; N macron ; B 16 629 315 717 ; -C 198 ; WX 333 ; N breve ; B 35 593 299 736 ; -C 199 ; WX 333 ; N dotaccent ; B 112 607 222 729 ; -C 200 ; WX 333 ; N dieresis ; B 18 609 314 731 ; -C 202 ; WX 333 ; N ring ; B 77 565 257 745 ; -C 203 ; WX 333 ; N cedilla ; B 27 -220 294 -9 ; -C 205 ; WX 333 ; N hungarumlaut ; B -44 595 340 745 ; -C 206 ; WX 333 ; N ogonek ; B 45 -195 268 38 ; -C 207 ; WX 333 ; N caron ; B 9 598 327 745 ; -C 208 ; WX 1000 ; N emdash ; B -7 208 1003 313 ; -C 225 ; WX 1000 ; N AE ; B 1 0 966 729 ; -C 227 ; WX 370 ; N ordfeminine ; B 31 277 329 746 ; -C 232 ; WX 611 ; N Lslash ; B 0 0 597 729 ; -C 233 ; WX 778 ; N Oslash ; B 31 -34 755 754 ; -C 234 ; WX 1000 ; N OE ; B 28 -20 970 741 ; -C 235 ; WX 365 ; N ordmasculine ; B 23 276 343 745 ; -C 241 ; WX 889 ; N ae ; B 27 -20 857 555 ; -C 245 ; WX 278 ; N dotlessi ; B 67 0 207 542 ; -C 248 ; WX 278 ; N lslash ; B 0 0 252 729 ; -C 249 ; WX 611 ; N oslash ; B 11 -34 598 561 ; -C 250 ; WX 944 ; N oe ; B 23 -21 920 554 ; -C 251 ; WX 611 ; N germandbls ; B 67 -16 575 730 ; -C -1 ; WX 722 ; N Aacute ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Adieresis ; B 26 0 703 922 ; -C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Aring ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Atilde ; B 26 0 703 920 ; -C -1 ; WX 722 ; N Ccedilla ; B 44 -220 685 741 ; -C -1 ; WX 667 ; N Eacute ; B 79 0 624 936 ; -C -1 ; WX 667 ; N Ecircumflex ; B 79 0 624 936 ; -C -1 ; WX 667 ; N Edieresis ; B 79 0 624 922 ; -C -1 ; WX 667 ; N Egrave ; B 79 0 624 936 ; -C -1 ; WX 722 ; N Eth ; B -18 0 681 729 ; -C -1 ; WX 278 ; N Iacute ; B 63 0 290 936 ; -C -1 ; WX 278 ; N Icircumflex ; B -19 0 299 936 ; -C -1 ; WX 278 ; N Idieresis ; B -9 0 287 922 ; -C -1 ; WX 278 ; N Igrave ; B -10 0 213 936 ; -C -1 ; WX 722 ; N Ntilde ; B 68 0 661 920 ; -C -1 ; WX 778 ; N Oacute ; B 40 -23 742 936 ; -C -1 ; WX 778 ; N Ocircumflex ; B 40 -23 742 936 ; -C -1 ; WX 778 ; N Odieresis ; B 40 -23 742 922 ; -C -1 ; WX 778 ; N Ograve ; B 40 -23 742 936 ; -C -1 ; WX 778 ; N Otilde ; B 40 -23 742 920 ; -C -1 ; WX 667 ; N Scaron ; B 32 -23 633 936 ; -C -1 ; WX 667 ; N Thorn ; B 76 0 633 729 ; -C -1 ; WX 722 ; N Uacute ; B 76 -23 654 936 ; -C -1 ; WX 722 ; N Ucircumflex ; B 76 -23 654 936 ; -C -1 ; WX 722 ; N Udieresis ; B 76 -23 654 922 ; -C -1 ; WX 722 ; N Ugrave ; B 76 -23 654 936 ; -C -1 ; WX 667 ; N Yacute ; B 27 0 650 932 ; -C -1 ; WX 667 ; N Ydieresis ; B 27 0 650 922 ; -C -1 ; WX 611 ; N Zcaron ; B 30 0 578 936 ; -C -1 ; WX 556 ; N aacute ; B 27 -24 524 745 ; -C -1 ; WX 556 ; N acircumflex ; B 27 -24 524 745 ; -C -1 ; WX 556 ; N adieresis ; B 27 -24 524 731 ; -C -1 ; WX 556 ; N agrave ; B 27 -24 524 745 ; -C -1 ; WX 556 ; N aring ; B 27 -24 524 745 ; -C -1 ; WX 556 ; N atilde ; B 27 -24 524 729 ; -C -1 ; WX 280 ; N brokenbar ; B 100 -202 180 729 ; -C -1 ; WX 556 ; N ccedilla ; B 34 -220 522 551 ; -C -1 ; WX 737 ; N copyright ; B -14 -20 751 745 ; -C -1 ; WX 400 ; N degree ; B 50 425 350 725 ; -C -1 ; WX 584 ; N divide ; B 50 -10 534 474 ; -C -1 ; WX 556 ; N eacute ; B 22 -23 525 745 ; -C -1 ; WX 556 ; N ecircumflex ; B 22 -23 525 745 ; -C -1 ; WX 556 ; N edieresis ; B 22 -23 525 731 ; -C -1 ; WX 556 ; N egrave ; B 22 -23 525 745 ; -C -1 ; WX 611 ; N eth ; B 35 -23 569 730 ; -C -1 ; WX 278 ; N iacute ; B 67 0 290 745 ; -C -1 ; WX 278 ; N icircumflex ; B -19 0 299 745 ; -C -1 ; WX 278 ; N idieresis ; B -9 0 287 731 ; -C -1 ; WX 278 ; N igrave ; B -10 0 207 745 ; -C -1 ; WX 584 ; N logicalnot ; B 40 121 544 412 ; -C -1 ; WX 584 ; N minus ; B 40 174 544 290 ; -C -1 ; WX 611 ; N mu ; B 58 -219 541 542 ; -C -1 ; WX 584 ; N multiply ; B 50 -10 534 474 ; -C -1 ; WX 611 ; N ntilde ; B 63 0 546 729 ; -C -1 ; WX 611 ; N oacute ; B 35 -23 569 745 ; -C -1 ; WX 611 ; N ocircumflex ; B 35 -23 569 745 ; -C -1 ; WX 611 ; N odieresis ; B 35 -23 569 731 ; -C -1 ; WX 611 ; N ograve ; B 35 -23 569 745 ; -C -1 ; WX 834 ; N onehalf ; B 30 -20 803 715 ; -C -1 ; WX 834 ; N onequarter ; B 30 -20 804 715 ; -C -1 ; WX 333 ; N onesuperior ; B 46 284 247 709 ; -C -1 ; WX 611 ; N otilde ; B 35 -23 569 729 ; -C -1 ; WX 584 ; N plusminus ; B 40 0 544 674 ; -C -1 ; WX 737 ; N registered ; B -14 -20 751 745 ; -C -1 ; WX 556 ; N scaron ; B 29 -23 520 745 ; -C -1 ; WX 611 ; N thorn ; B 58 -219 574 729 ; -C -1 ; WX 834 ; N threequarters ; B 30 -20 804 725 ; -C -1 ; WX 333 ; N threesuperior ; B 8 271 325 720 ; -C -1 ; WX 1000 ; N trademark ; B 71 341 929 745 ; -C -1 ; WX 333 ; N twosuperior ; B 9 284 324 719 ; -C -1 ; WX 611 ; N uacute ; B 58 -23 541 745 ; -C -1 ; WX 611 ; N ucircumflex ; B 58 -23 541 745 ; -C -1 ; WX 611 ; N udieresis ; B 58 -23 541 731 ; -C -1 ; WX 611 ; N ugrave ; B 58 -23 541 745 ; -C -1 ; WX 556 ; N yacute ; B 9 -219 538 745 ; -C -1 ; WX 556 ; N ydieresis ; B 9 -219 538 731 ; -C -1 ; WX 500 ; N zcaron ; B 21 0 468 745 ; -EndCharMetrics -StartKernData -StartKernPairs 101 - -KPX A y -37 -KPX A w -18 -KPX A v -37 -KPX A space -37 -KPX A quoteright -55 -KPX A Y -92 -KPX A W -55 -KPX A V -74 -KPX A T -74 - -KPX F period -111 -KPX F comma -111 -KPX F A -55 - -KPX L y -37 -KPX L space -18 -KPX L quoteright -55 -KPX L Y -92 -KPX L W -55 -KPX L V -74 -KPX L T -74 - -KPX P space -18 -KPX P period -129 -KPX P comma -129 -KPX P A -74 - -KPX R Y -37 -KPX R W -18 -KPX R V -18 - -KPX T y -74 -KPX T w -74 -KPX T u -74 -KPX T semicolon -111 -KPX T s -74 -KPX T r -55 -KPX T period -111 -KPX T o -74 -KPX T i -18 -KPX T hyphen -55 -KPX T e -74 -KPX T comma -111 -KPX T colon -111 -KPX T c -74 -KPX T a -74 -KPX T O -18 -KPX T A -74 - -KPX V y -37 -KPX V u -37 -KPX V semicolon -55 -KPX V r -55 -KPX V period -92 -KPX V o -74 -KPX V i -18 -KPX V hyphen -55 -KPX V e -55 -KPX V comma -92 -KPX V colon -55 -KPX V a -55 -KPX V A -74 - -KPX W y -18 -KPX W u -18 -KPX W semicolon -18 -KPX W r -18 -KPX W period -55 -KPX W o -18 -KPX W i -9 -KPX W hyphen -20 -KPX W e -18 -KPX W comma -55 -KPX W colon -18 -KPX W a -37 -KPX W A -55 - -KPX Y v -55 -KPX Y u -55 -KPX Y space -18 -KPX Y semicolon -74 -KPX Y q -74 -KPX Y period -111 -KPX Y p -55 -KPX Y o -74 -KPX Y i -37 -KPX Y hyphen -55 -KPX Y e -55 -KPX Y comma -111 -KPX Y colon -74 -KPX Y a -55 -KPX Y A -92 - -KPX f quoteright 18 - -KPX one one -55 - -KPX quoteleft quoteleft -37 - -KPX quoteright space -55 -KPX quoteright s -37 -KPX quoteright quoteright -37 - -KPX r quoteright 37 -KPX r period -55 -KPX r comma -55 - -KPX space Y -18 -KPX space A -37 - -KPX v period -74 -KPX v comma -74 - -KPX w period -37 -KPX w comma -37 - -KPX y period -74 -KPX y comma -74 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 191 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 191 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 117 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 191 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 197 191 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 197 191 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 197 191 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 197 191 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 191 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 191 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 191 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 191 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 188 191 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 188 191 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 188 191 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 188 191 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 197 191 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 197 191 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 197 191 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 197 191 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 191 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 191 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 191 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 191 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 197 191 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 200 191 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 146 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 191 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 197 191 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/HelvBoO.afm b/misc/afm/HelvBoO.afm deleted file mode 100644 index dfe3bef5cc..0000000000 --- a/misc/afm/HelvBoO.afm +++ /dev/null @@ -1,429 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:51:40 PDT 1986 -FontName Helvetica-BoldOblique -EncodingScheme AdobeStandardEncoding -FullName Helvetica Bold Oblique -FamilyName Helvetica -Weight Bold -ItalicAngle -12.0 -IsFixedPitch false -UnderlinePosition -106 -UnderlineThickness 105 -Version 001.001 -Notice Helvetica is a registered trademark of Allied Corporation -FontBBox -177 -221 1107 936 -CapHeight 729 -XHeight 542 -Descender -219 -Ascender 729 -StartCharMetrics 228 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 112 0 417 729 ; -C 34 ; WX 474 ; N quotedbl ; B 177 470 579 729 ; -C 35 ; WX 556 ; N numbersign ; B 33 -30 660 696 ; -C 36 ; WX 556 ; N dollar ; B 59 -125 628 765 ; -C 37 ; WX 889 ; N percent ; B 129 -18 903 708 ; -C 38 ; WX 722 ; N ampersand ; B 89 -20 720 729 ; -C 39 ; WX 278 ; N quoteright ; B 166 469 356 729 ; -C 40 ; WX 333 ; N parenleft ; B 84 -202 458 729 ; -C 41 ; WX 333 ; N parenright ; B -21 -202 356 729 ; -C 42 ; WX 389 ; N asterisk ; B 145 385 478 730 ; -C 43 ; WX 584 ; N plus ; B 87 -10 596 474 ; -C 44 ; WX 278 ; N comma ; B 27 -174 245 146 ; -C 45 ; WX 333 ; N hyphen ; B 70 208 371 344 ; -C 46 ; WX 278 ; N period ; B 64 0 245 146 ; -C 47 ; WX 278 ; N slash ; B -1 -14 427 715 ; -C 48 ; WX 556 ; N zero ; B 81 -23 614 725 ; -C 49 ; WX 556 ; N one ; B 172 0 529 709 ; -C 50 ; WX 556 ; N two ; B 30 0 628 726 ; -C 51 ; WX 556 ; N three ; B 67 -23 613 726 ; -C 52 ; WX 556 ; N four ; B 57 0 599 709 ; -C 53 ; WX 556 ; N five ; B 59 -24 641 709 ; -C 54 ; WX 556 ; N six ; B 85 -23 625 727 ; -C 55 ; WX 556 ; N seven ; B 131 0 679 709 ; -C 56 ; WX 556 ; N eight ; B 60 -23 620 726 ; -C 57 ; WX 556 ; N nine ; B 68 -23 611 728 ; -C 58 ; WX 333 ; N colon ; B 113 0 374 521 ; -C 59 ; WX 333 ; N semicolon ; B 76 -174 374 521 ; -C 60 ; WX 584 ; N less ; B 77 -10 630 474 ; -C 61 ; WX 584 ; N equal ; B 61 52 622 412 ; -C 62 ; WX 584 ; N greater ; B 38 -10 591 474 ; -C 63 ; WX 611 ; N question ; B 168 0 672 744 ; -C 64 ; WX 975 ; N at ; B 73 -136 1032 746 ; -C 65 ; WX 722 ; N A ; B 26 0 703 729 ; -C 66 ; WX 722 ; N B ; B 82 0 762 729 ; -C 67 ; WX 722 ; N C ; B 107 -23 793 741 ; -C 68 ; WX 722 ; N D ; B 77 0 776 729 ; -C 69 ; WX 667 ; N E ; B 79 0 762 729 ; -C 70 ; WX 611 ; N F ; B 74 0 741 729 ; -C 71 ; WX 778 ; N G ; B 107 -24 819 741 ; -C 72 ; WX 722 ; N H ; B 68 0 812 729 ; -C 73 ; WX 278 ; N I ; B 63 0 368 729 ; -C 74 ; WX 556 ; N J ; B 59 -23 641 729 ; -C 75 ; WX 722 ; N K ; B 74 0 843 729 ; -C 76 ; WX 611 ; N L ; B 80 0 606 729 ; -C 77 ; WX 833 ; N M ; B 66 0 931 729 ; -C 78 ; WX 722 ; N N ; B 68 0 816 729 ; -C 79 ; WX 778 ; N O ; B 106 -23 828 741 ; -C 80 ; WX 667 ; N P ; B 76 0 747 729 ; -C 81 ; WX 778 ; N Q ; B 109 -54 831 741 ; -C 82 ; WX 722 ; N R ; B 80 0 785 729 ; -C 83 ; WX 667 ; N S ; B 76 -23 725 741 ; -C 84 ; WX 611 ; N T ; B 142 0 753 729 ; -C 85 ; WX 722 ; N U ; B 119 -23 809 729 ; -C 86 ; WX 667 ; N V ; B 179 0 802 729 ; -C 87 ; WX 944 ; N W ; B 168 0 1087 729 ; -C 88 ; WX 667 ; N X ; B 22 0 802 729 ; -C 89 ; WX 667 ; N Y ; B 182 0 805 729 ; -C 90 ; WX 611 ; N Z ; B 30 0 733 729 ; -C 91 ; WX 333 ; N bracketleft ; B 23 -202 463 729 ; -C 92 ; WX 278 ; N backslash ; B 138 -21 285 708 ; -C 93 ; WX 333 ; N bracketright ; B -25 -202 415 729 ; -C 94 ; WX 584 ; N asciicircum ; B 119 271 580 696 ; -C 95 ; WX 556 ; N underscore ; B -65 -200 550 -130 ; -C 96 ; WX 278 ; N quoteleft ; B 167 469 357 729 ; -C 97 ; WX 556 ; N a ; B 50 -24 578 551 ; -C 98 ; WX 611 ; N b ; B 59 -23 640 729 ; -C 99 ; WX 556 ; N c ; B 77 -23 597 551 ; -C 100 ; WX 611 ; N d ; B 79 -23 700 729 ; -C 101 ; WX 556 ; N e ; B 64 -23 591 551 ; -C 102 ; WX 333 ; N f ; B 90 0 464 729 ; L i fi ; L l fl ; -C 103 ; WX 611 ; N g ; B 26 -220 656 551 ; -C 104 ; WX 611 ; N h ; B 67 0 629 729 ; -C 105 ; WX 278 ; N i ; B 67 0 362 729 ; -C 106 ; WX 278 ; N j ; B -43 -219 365 729 ; -C 107 ; WX 556 ; N k ; B 59 0 651 729 ; -C 108 ; WX 278 ; N l ; B 67 0 362 729 ; -C 109 ; WX 889 ; N m ; B 60 0 911 553 ; -C 110 ; WX 611 ; N n ; B 63 0 629 551 ; -C 111 ; WX 611 ; N o ; B 82 -23 634 551 ; -C 112 ; WX 611 ; N p ; B 11 -219 637 551 ; -C 113 ; WX 611 ; N q ; B 72 -219 659 551 ; -C 114 ; WX 389 ; N r ; B 63 0 487 553 ; -C 115 ; WX 556 ; N s ; B 60 -23 589 551 ; -C 116 ; WX 333 ; N t ; B 101 -23 414 678 ; -C 117 ; WX 611 ; N u ; B 88 -23 656 542 ; -C 118 ; WX 556 ; N v ; B 129 0 651 542 ; -C 119 ; WX 778 ; N w ; B 120 0 881 542 ; -C 120 ; WX 556 ; N x ; B 16 0 648 542 ; -C 121 ; WX 556 ; N y ; B 37 -219 653 542 ; -C 122 ; WX 500 ; N z ; B 21 0 575 542 ; -C 123 ; WX 389 ; N braceleft ; B 84 -202 472 729 ; -C 124 ; WX 280 ; N bar ; B 57 -202 335 729 ; -C 125 ; WX 389 ; N braceright ; B 29 -202 419 729 ; -C 126 ; WX 584 ; N asciitilde ; B 97 144 581 322 ; -C 161 ; WX 333 ; N exclamdown ; B 26 -187 331 542 ; -C 162 ; WX 556 ; N cent ; B 79 -122 598 637 ; -C 163 ; WX 556 ; N sterling ; B 49 -20 629 717 ; -C 164 ; WX 167 ; N fraction ; B -177 -20 489 715 ; -C 165 ; WX 556 ; N yen ; B 107 0 702 705 ; -C 166 ; WX 556 ; N florin ; B -21 -221 690 745 ; -C 167 ; WX 556 ; N section ; B 56 -201 596 728 ; -C 168 ; WX 556 ; N currency ; B 66 105 644 604 ; -C 169 ; WX 238 ; N quotesingle ; B 177 469 343 729 ; -C 170 ; WX 500 ; N quotedblleft ; B 171 469 588 729 ; -C 171 ; WX 556 ; N guillemotleft ; B 135 71 571 484 ; -C 172 ; WX 333 ; N guilsinglleft ; B 128 73 351 476 ; -C 173 ; WX 333 ; N guilsinglright ; B 96 73 319 476 ; -C 174 ; WX 611 ; N fi ; B 85 0 703 729 ; -C 175 ; WX 611 ; N fl ; B 88 0 701 729 ; -C 177 ; WX 556 ; N endash ; B 35 208 624 313 ; -C 178 ; WX 556 ; N dagger ; B 109 -195 626 708 ; -C 179 ; WX 556 ; N daggerdbl ; B 35 -195 623 708 ; -C 180 ; WX 278 ; N periodcentered ; B 143 318 270 442 ; -C 182 ; WX 556 ; N paragraph ; B 121 -195 684 729 ; -C 183 ; WX 350 ; N bullet ; B 111 175 367 425 ; -C 184 ; WX 278 ; N quotesinglbase ; B 37 -135 228 125 ; -C 185 ; WX 500 ; N quotedblbase ; B 37 -164 462 141 ; -C 186 ; WX 500 ; N quotedblright ; B 173 469 595 729 ; -C 187 ; WX 556 ; N guillemotright ; B 103 71 533 482 ; -C 188 ; WX 1000 ; N ellipsis ; B 92 0 939 146 ; -C 189 ; WX 1000 ; N perthousand ; B 72 -20 1021 745 ; -C 191 ; WX 611 ; N questiondown ; B 52 -192 556 542 ; -C 193 ; WX 333 ; N grave ; B 175 595 339 745 ; -C 194 ; WX 333 ; N acute ; B 247 595 475 745 ; -C 195 ; WX 333 ; N circumflex ; B 135 598 453 745 ; -C 196 ; WX 333 ; N tilde ; B 117 595 500 729 ; -C 197 ; WX 333 ; N macron ; B 150 629 467 717 ; -C 198 ; WX 333 ; N breve ; B 188 593 455 736 ; -C 199 ; WX 333 ; N dotaccent ; B 241 607 377 729 ; -C 200 ; WX 333 ; N dieresis ; B 147 609 469 731 ; -C 202 ; WX 333 ; N ring ; B 214 565 398 745 ; -C 203 ; WX 333 ; N cedilla ; B -13 -220 270 -9 ; -C 205 ; WX 333 ; N hungarumlaut ; B 82 595 498 745 ; -C 206 ; WX 333 ; N ogonek ; B 23 -195 248 38 ; -C 207 ; WX 333 ; N caron ; B 167 598 485 745 ; -C 208 ; WX 1000 ; N emdash ; B 37 208 1070 313 ; -C 225 ; WX 1000 ; N AE ; B 1 0 1104 729 ; -C 227 ; WX 370 ; N ordfeminine ; B 96 277 451 746 ; -C 232 ; WX 611 ; N Lslash ; B 54 0 624 729 ; -C 233 ; WX 778 ; N Oslash ; B 34 -34 906 754 ; -C 234 ; WX 1000 ; N OE ; B 90 -20 1107 741 ; -C 235 ; WX 365 ; N ordmasculine ; B 92 276 471 745 ; -C 241 ; WX 889 ; N ae ; B 54 -20 927 555 ; -C 245 ; WX 278 ; N dotlessi ; B 67 0 322 542 ; -C 248 ; WX 278 ; N lslash ; B 50 0 372 729 ; -C 249 ; WX 611 ; N oslash ; B 12 -34 709 561 ; -C 250 ; WX 944 ; N oe ; B 71 -21 986 554 ; -C 251 ; WX 611 ; N germandbls ; B 67 -16 654 730 ; -C -1 ; WX 722 ; N Aacute ; B 26 0 714 936 ; -C -1 ; WX 722 ; N Acircumflex ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Adieresis ; B 26 0 708 922 ; -C -1 ; WX 722 ; N Agrave ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Aring ; B 26 0 703 936 ; -C -1 ; WX 722 ; N Atilde ; B 26 0 739 920 ; -C -1 ; WX 722 ; N Ccedilla ; B 107 -220 793 741 ; -C -1 ; WX 667 ; N Eacute ; B 79 0 762 936 ; -C -1 ; WX 667 ; N Ecircumflex ; B 79 0 762 936 ; -C -1 ; WX 667 ; N Edieresis ; B 79 0 762 922 ; -C -1 ; WX 667 ; N Egrave ; B 79 0 762 936 ; -C -1 ; WX 722 ; N Eth ; B 53 0 776 729 ; -C -1 ; WX 278 ; N Iacute ; B 63 0 489 936 ; -C -1 ; WX 278 ; N Icircumflex ; B 63 0 467 936 ; -C -1 ; WX 278 ; N Idieresis ; B 63 0 483 922 ; -C -1 ; WX 278 ; N Igrave ; B 63 0 368 936 ; -C -1 ; WX 722 ; N Ntilde ; B 68 0 816 920 ; -C -1 ; WX 778 ; N Oacute ; B 106 -23 828 936 ; -C -1 ; WX 778 ; N Ocircumflex ; B 106 -23 828 936 ; -C -1 ; WX 778 ; N Odieresis ; B 106 -23 828 922 ; -C -1 ; WX 778 ; N Ograve ; B 106 -23 828 936 ; -C -1 ; WX 778 ; N Otilde ; B 106 -23 828 920 ; -C -1 ; WX 667 ; N Scaron ; B 76 -23 725 936 ; -C -1 ; WX 667 ; N Thorn ; B 76 0 730 729 ; -C -1 ; WX 722 ; N Uacute ; B 119 -23 809 936 ; -C -1 ; WX 722 ; N Ucircumflex ; B 119 -23 809 936 ; -C -1 ; WX 722 ; N Udieresis ; B 119 -23 809 922 ; -C -1 ; WX 722 ; N Ugrave ; B 119 -23 809 936 ; -C -1 ; WX 667 ; N Yacute ; B 182 0 805 932 ; -C -1 ; WX 667 ; N Ydieresis ; B 182 0 805 922 ; -C -1 ; WX 611 ; N Zcaron ; B 30 0 733 936 ; -C -1 ; WX 556 ; N aacute ; B 50 -24 587 745 ; -C -1 ; WX 556 ; N acircumflex ; B 50 -24 578 745 ; -C -1 ; WX 556 ; N adieresis ; B 50 -24 581 731 ; -C -1 ; WX 556 ; N agrave ; B 50 -24 578 745 ; -C -1 ; WX 556 ; N aring ; B 50 -24 578 745 ; -C -1 ; WX 556 ; N atilde ; B 50 -24 612 729 ; -C -1 ; WX 280 ; N brokenbar ; B 57 -202 335 729 ; -C -1 ; WX 556 ; N ccedilla ; B 77 -220 597 551 ; -C -1 ; WX 737 ; N copyright ; B 54 -20 837 745 ; -C -1 ; WX 400 ; N degree ; B 169 425 476 725 ; -C -1 ; WX 584 ; N divide ; B 87 -10 596 474 ; -C -1 ; WX 556 ; N eacute ; B 64 -23 591 745 ; -C -1 ; WX 556 ; N ecircumflex ; B 64 -23 591 745 ; -C -1 ; WX 556 ; N edieresis ; B 64 -23 591 731 ; -C -1 ; WX 556 ; N egrave ; B 64 -23 591 745 ; -C -1 ; WX 611 ; N eth ; B 82 -23 633 730 ; -C -1 ; WX 278 ; N iacute ; B 67 0 448 745 ; -C -1 ; WX 278 ; N icircumflex ; B 67 0 426 745 ; -C -1 ; WX 278 ; N idieresis ; B 67 0 442 731 ; -C -1 ; WX 278 ; N igrave ; B 67 0 322 745 ; -C -1 ; WX 584 ; N logicalnot ; B 103 121 632 412 ; -C -1 ; WX 584 ; N minus ; B 77 174 606 290 ; -C -1 ; WX 611 ; N mu ; B 11 -219 656 542 ; -C -1 ; WX 584 ; N multiply ; B 66 -10 617 474 ; -C -1 ; WX 611 ; N ntilde ; B 63 0 646 729 ; -C -1 ; WX 611 ; N oacute ; B 82 -23 634 745 ; -C -1 ; WX 611 ; N ocircumflex ; B 82 -23 634 745 ; -C -1 ; WX 611 ; N odieresis ; B 82 -23 634 731 ; -C -1 ; WX 611 ; N ograve ; B 82 -23 634 745 ; -C -1 ; WX 834 ; N onehalf ; B 120 -20 871 715 ; -C -1 ; WX 834 ; N onequarter ; B 151 -20 846 715 ; -C -1 ; WX 333 ; N onesuperior ; B 169 284 398 709 ; -C -1 ; WX 611 ; N otilde ; B 82 -23 639 729 ; -C -1 ; WX 584 ; N plusminus ; B 40 0 639 674 ; -C -1 ; WX 737 ; N registered ; B 55 -20 837 745 ; -C -1 ; WX 556 ; N scaron ; B 60 -23 597 745 ; -C -1 ; WX 611 ; N thorn ; B 11 -219 641 729 ; -C -1 ; WX 834 ; N threequarters ; B 116 -20 863 725 ; -C -1 ; WX 333 ; N threesuperior ; B 92 271 442 720 ; -C -1 ; WX 1000 ; N trademark ; B 213 341 1087 745 ; -C -1 ; WX 333 ; N twosuperior ; B 69 284 452 719 ; -C -1 ; WX 611 ; N uacute ; B 88 -23 656 745 ; -C -1 ; WX 611 ; N ucircumflex ; B 88 -23 656 745 ; -C -1 ; WX 611 ; N udieresis ; B 88 -23 656 731 ; -C -1 ; WX 611 ; N ugrave ; B 88 -23 656 745 ; -C -1 ; WX 556 ; N yacute ; B 37 -219 653 745 ; -C -1 ; WX 556 ; N ydieresis ; B 37 -219 653 731 ; -C -1 ; WX 500 ; N zcaron ; B 21 0 575 745 ; -EndCharMetrics -StartKernData -StartKernPairs 99 - -KPX A space -37 -KPX A quoteright -55 -KPX A Y -74 -KPX A W -55 -KPX A V -74 -KPX A T -74 - -KPX F period -111 -KPX F comma -111 -KPX F A -55 - -KPX L space -18 -KPX L quoteright -74 -KPX L Y -74 -KPX L W -55 -KPX L V -55 -KPX L T -74 - -KPX P space -37 -KPX P period -129 -KPX P comma -129 -KPX P A -74 - -KPX R Y -18 -KPX R W -18 -KPX R T -18 - -KPX T y -37 -KPX T w -37 -KPX T u -18 -KPX T semicolon -74 -KPX T s -37 -KPX T r -18 -KPX T period -74 -KPX T o -37 -KPX T i -18 -KPX T hyphen -55 -KPX T e -37 -KPX T comma -74 -KPX T colon -74 -KPX T c -37 -KPX T a -37 -KPX T O -18 -KPX T A -74 - -KPX V y -18 -KPX V u -18 -KPX V semicolon -37 -KPX V r -18 -KPX V period -92 -KPX V o -37 -KPX V i -37 -KPX V hyphen -37 -KPX V e -37 -KPX V comma -92 -KPX V colon -37 -KPX V a -37 -KPX V A -74 - -KPX W y -18 -KPX W u -18 -KPX W semicolon -37 -KPX W r -18 -KPX W period -74 -KPX W o -18 -KPX W i -9 -KPX W hyphen -37 -KPX W e -18 -KPX W comma -74 -KPX W colon -37 -KPX W a -18 -KPX W A -55 - -KPX Y v -37 -KPX Y u -37 -KPX Y space -18 -KPX Y semicolon -55 -KPX Y q -37 -KPX Y period -92 -KPX Y p -37 -KPX Y i -37 -KPX Y o -37 -KPX Y hyphen -74 -KPX Y e -37 -KPX Y comma -92 -KPX Y colon -55 -KPX Y a -37 -KPX Y A -74 - -KPX f quoteright 18 -KPX f f -18 - -KPX one one -74 - -KPX quoteleft quoteleft -37 - -KPX quoteright t 18 -KPX quoteright space -37 -KPX quoteright s -18 -KPX quoteright quoteright -37 - -KPX r quoteright 37 -KPX r period -55 -KPX r comma -55 - -KPX space Y -18 -KPX space A -37 - -KPX v period -55 -KPX v comma -55 - -KPX w period -37 -KPX w comma -37 - -KPX y period -37 -KPX y comma -37 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 187 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 187 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 111 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 194 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 111 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 187 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 111 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 187 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 187 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 187 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 187 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 139 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 139 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 139 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 139 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 187 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 187 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 187 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 187 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 187 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 187 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 187 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 187 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 194 187 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 194 187 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 194 187 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 194 187 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 187 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 187 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 187 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 187 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 139 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 139 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 139 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 139 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 194 187 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 187 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 139 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 187 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 139 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 194 187 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/HelvO.afm b/misc/afm/HelvO.afm deleted file mode 100644 index c24bdc1c20..0000000000 --- a/misc/afm/HelvO.afm +++ /dev/null @@ -1,428 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:45:36 PDT 1986 -FontName Helvetica-Oblique -EncodingScheme AdobeStandardEncoding -FullName Helvetica Oblique -FamilyName Helvetica -Weight Medium -ItalicAngle -12.0 -IsFixedPitch false -UnderlinePosition -106 -UnderlineThickness 73 -Version 001.001 -Notice Helvetica is a registered trademark of Allied Corporation. -FontBBox -178 -220 1108 944 -CapHeight 729 -XHeight 525 -Descender -219 -Ascender 729 -StartCharMetrics 228 -C 32 ; WX 278 ; N space ; B 0 0 0 0 ; -C 33 ; WX 278 ; N exclam ; B 124 0 363 729 ; -C 34 ; WX 355 ; N quotedbl ; B 177 462 455 708 ; -C 35 ; WX 556 ; N numbersign ; B 54 -20 649 698 ; -C 36 ; WX 556 ; N dollar ; B 69 -125 613 770 ; -C 37 ; WX 889 ; N percent ; B 134 -20 895 708 ; -C 38 ; WX 667 ; N ampersand ; B 83 -23 644 710 ; -C 39 ; WX 222 ; N quoteright ; B 165 476 308 708 ; -C 40 ; WX 333 ; N parenleft ; B 113 -213 446 729 ; -C 41 ; WX 333 ; N parenright ; B -7 -213 325 729 ; -C 42 ; WX 389 ; N asterisk ; B 169 452 471 740 ; -C 43 ; WX 584 ; N plus ; B 92 -10 591 474 ; -C 44 ; WX 278 ; N comma ; B 55 -150 214 104 ; -C 45 ; WX 333 ; N hyphen ; B 97 240 351 313 ; -C 46 ; WX 278 ; N period ; B 87 0 213 104 ; -C 47 ; WX 278 ; N slash ; B -12 -21 434 708 ; -C 48 ; WX 556 ; N zero ; B 98 -23 598 709 ; -C 49 ; WX 556 ; N one ; B 208 0 498 709 ; -C 50 ; WX 556 ; N two ; B 34 0 620 710 ; -C 51 ; WX 556 ; N three ; B 71 -23 599 709 ; -C 52 ; WX 556 ; N four ; B 63 0 573 709 ; -C 53 ; WX 556 ; N five ; B 70 -23 629 709 ; -C 54 ; WX 556 ; N six ; B 93 -23 611 709 ; -C 55 ; WX 556 ; N seven ; B 137 0 671 709 ; -C 56 ; WX 556 ; N eight ; B 74 -23 604 709 ; -C 57 ; WX 556 ; N nine ; B 83 -23 599 709 ; -C 58 ; WX 278 ; N colon ; B 110 0 326 525 ; -C 59 ; WX 278 ; N semicolon ; B 78 -150 325 516 ; -C 60 ; WX 584 ; N less ; B 87 -10 635 474 ; -C 61 ; WX 584 ; N equal ; B 74 112 609 352 ; -C 62 ; WX 584 ; N greater ; B 48 -10 596 474 ; -C 63 ; WX 556 ; N question ; B 184 0 630 738 ; -C 64 ; WX 1015 ; N at ; B 80 -146 1036 737 ; -C 65 ; WX 667 ; N A ; B 17 0 653 729 ; -C 66 ; WX 667 ; N B ; B 79 0 711 729 ; -C 67 ; WX 722 ; N C ; B 112 -23 770 741 ; -C 68 ; WX 722 ; N D ; B 89 0 759 729 ; -C 69 ; WX 667 ; N E ; B 90 0 751 729 ; -C 70 ; WX 611 ; N F ; B 90 0 734 729 ; -C 71 ; WX 778 ; N G ; B 109 -23 809 741 ; -C 72 ; WX 722 ; N H ; B 83 0 799 729 ; -C 73 ; WX 278 ; N I ; B 100 0 349 729 ; -C 74 ; WX 500 ; N J ; B 47 -26 581 729 ; -C 75 ; WX 667 ; N K ; B 79 0 813 729 ; -C 76 ; WX 556 ; N L ; B 80 0 551 729 ; -C 77 ; WX 833 ; N M ; B 75 0 916 729 ; -C 78 ; WX 722 ; N N ; B 76 0 801 729 ; -C 79 ; WX 778 ; N O ; B 104 -23 828 741 ; -C 80 ; WX 667 ; N P ; B 91 0 733 730 ; -C 81 ; WX 778 ; N Q ; B 104 -59 828 741 ; -C 82 ; WX 722 ; N R ; B 93 0 770 729 ; -C 83 ; WX 667 ; N S ; B 89 -23 714 741 ; -C 84 ; WX 611 ; N T ; B 158 0 748 729 ; -C 85 ; WX 722 ; N U ; B 124 -23 800 729 ; -C 86 ; WX 667 ; N V ; B 185 0 800 729 ; -C 87 ; WX 944 ; N W ; B 177 0 1084 729 ; -C 88 ; WX 667 ; N X ; B 22 0 794 729 ; -C 89 ; WX 667 ; N Y ; B 168 0 816 729 ; -C 90 ; WX 611 ; N Z ; B 28 0 737 729 ; -C 91 ; WX 278 ; N bracketleft ; B 19 -214 405 729 ; -C 92 ; WX 278 ; N backslash ; B 147 -20 280 729 ; -C 93 ; WX 278 ; N bracketright ; B -23 -215 364 729 ; -C 94 ; WX 469 ; N asciicircum ; B 115 333 496 713 ; -C 95 ; WX 556 ; N underscore ; B -59 -175 551 -125 ; -C 96 ; WX 222 ; N quoteleft ; B 163 459 308 708 ; -C 97 ; WX 556 ; N a ; B 65 -23 568 540 ; -C 98 ; WX 556 ; N b ; B 54 -23 588 729 ; -C 99 ; WX 500 ; N c ; B 76 -23 554 540 ; -C 100 ; WX 556 ; N d ; B 73 -23 650 729 ; -C 101 ; WX 556 ; N e ; B 84 -23 580 541 ; -C 102 ; WX 278 ; N f ; B 89 0 413 733 ; L i fi ; L l fl ; -C 103 ; WX 556 ; N g ; B 32 -220 601 540 ; -C 104 ; WX 556 ; N h ; B 70 0 574 729 ; -C 105 ; WX 222 ; N i ; B 66 0 305 729 ; -C 106 ; WX 222 ; N j ; B -65 -220 308 729 ; -C 107 ; WX 500 ; N k ; B 58 0 584 729 ; -C 108 ; WX 222 ; N l ; B 68 0 307 729 ; -C 109 ; WX 833 ; N m ; B 71 0 852 540 ; -C 110 ; WX 556 ; N n ; B 70 0 574 540 ; -C 111 ; WX 556 ; N o ; B 80 -23 576 540 ; -C 112 ; WX 556 ; N p ; B 7 -219 586 540 ; -C 113 ; WX 556 ; N q ; B 71 -219 607 540 ; -C 114 ; WX 333 ; N r ; B 69 0 436 540 ; -C 115 ; WX 500 ; N s ; B 61 -24 520 540 ; -C 116 ; WX 278 ; N t ; B 97 -24 366 667 ; -C 117 ; WX 556 ; N u ; B 88 -23 594 525 ; -C 118 ; WX 500 ; N v ; B 122 0 598 525 ; -C 119 ; WX 722 ; N w ; B 118 0 820 525 ; -C 120 ; WX 500 ; N x ; B 17 0 583 525 ; -C 121 ; WX 500 ; N y ; B 8 -219 590 525 ; -C 122 ; WX 500 ; N z ; B 31 0 557 525 ; -C 123 ; WX 334 ; N braceleft ; B 91 -214 431 731 ; -C 124 ; WX 260 ; N bar ; B 54 -215 315 729 ; -C 125 ; WX 334 ; N braceright ; B -16 -214 324 731 ; -C 126 ; WX 584 ; N asciitilde ; B 137 267 594 438 ; -C 161 ; WX 333 ; N exclamdown ; B 76 -214 317 525 ; -C 162 ; WX 556 ; N cent ; B 96 -120 585 628 ; -C 163 ; WX 556 ; N sterling ; B 44 -21 628 726 ; -C 164 ; WX 167 ; N fraction ; B -178 -21 486 708 ; -C 165 ; WX 556 ; N yen ; B 100 0 696 710 ; -C 166 ; WX 556 ; N florin ; B -32 -214 696 742 ; -C 167 ; WX 556 ; N section ; B 63 -215 589 729 ; -C 168 ; WX 556 ; N currency ; B 110 126 593 554 ; -C 169 ; WX 191 ; N quotesingle ; B 173 462 292 708 ; -C 170 ; WX 333 ; N quotedblleft ; B 146 459 449 708 ; -C 171 ; WX 556 ; N guillemotleft ; B 147 106 548 438 ; -C 172 ; WX 333 ; N guilsinglleft ; B 140 112 336 436 ; -C 173 ; WX 333 ; N guilsinglright ; B 109 112 307 436 ; -C 174 ; WX 500 ; N fi ; B 83 0 591 733 ; -C 175 ; WX 500 ; N fl ; B 88 0 585 733 ; -C 177 ; WX 556 ; N endash ; B 46 240 628 313 ; -C 178 ; WX 556 ; N dagger ; B 127 -178 620 710 ; -C 179 ; WX 556 ; N daggerdbl ; B 51 -178 620 710 ; -C 180 ; WX 278 ; N periodcentered ; B 166 318 293 442 ; -C 182 ; WX 537 ; N paragraph ; B 145 -178 677 729 ; -C 183 ; WX 350 ; N bullet ; B 120 220 376 470 ; -C 184 ; WX 222 ; N quotesinglbase ; B 37 -129 180 103 ; -C 185 ; WX 333 ; N quotedblbase ; B 20 -129 322 103 ; -C 186 ; WX 333 ; N quotedblright ; B 150 476 452 708 ; -C 187 ; WX 556 ; N guillemotright ; B 121 106 518 438 ; -C 188 ; WX 1000 ; N ellipsis ; B 115 0 907 104 ; -C 189 ; WX 1000 ; N perthousand ; B 93 -20 1024 740 ; -C 191 ; WX 611 ; N questiondown ; B 86 -213 531 525 ; -C 193 ; WX 333 ; N grave ; B 179 592 357 740 ; -C 194 ; WX 333 ; N acute ; B 218 592 458 740 ; -C 195 ; WX 333 ; N circumflex ; B 146 591 433 741 ; -C 196 ; WX 333 ; N tilde ; B 130 589 471 716 ; -C 197 ; WX 333 ; N macron ; B 160 621 450 694 ; -C 198 ; WX 333 ; N breve ; B 165 594 471 729 ; -C 199 ; WX 333 ; N dotaccent ; B 244 605 370 709 ; -C 200 ; WX 333 ; N dieresis ; B 159 605 446 708 ; -C 202 ; WX 333 ; N ring ; B 216 566 396 741 ; -C 203 ; WX 333 ; N cedilla ; B 1 -214 264 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 91 592 505 740 ; -C 206 ; WX 333 ; N ogonek ; B 35 -189 246 15 ; -C 207 ; WX 333 ; N caron ; B 176 590 463 740 ; -C 208 ; WX 1000 ; N emdash ; B 42 240 1068 313 ; -C 225 ; WX 1000 ; N AE ; B 11 0 1087 729 ; -C 227 ; WX 370 ; N ordfeminine ; B 107 301 441 740 ; -C 232 ; WX 556 ; N Lslash ; B 61 0 570 729 ; -C 233 ; WX 778 ; N Oslash ; B 32 -23 867 742 ; -C 234 ; WX 1000 ; N OE ; B 101 -20 1108 739 ; -C 235 ; WX 365 ; N ordmasculine ; B 114 301 452 741 ; -C 241 ; WX 889 ; N ae ; B 59 -20 915 546 ; -C 245 ; WX 278 ; N dotlessi ; B 94 0 290 525 ; -C 248 ; WX 222 ; N lslash ; B 62 0 312 729 ; -C 249 ; WX 611 ; N oslash ; B 19 -27 639 548 ; -C 250 ; WX 944 ; N oe ; B 85 -22 966 540 ; -C 251 ; WX 611 ; N germandbls ; B 126 -20 655 729 ; -C -1 ; WX 667 ; N Aacute ; B 17 0 667 939 ; -C -1 ; WX 667 ; N Acircumflex ; B 17 0 653 940 ; -C -1 ; WX 667 ; N Adieresis ; B 17 0 655 907 ; -C -1 ; WX 667 ; N Agrave ; B 17 0 653 939 ; -C -1 ; WX 667 ; N Aring ; B 17 0 653 940 ; -C -1 ; WX 667 ; N Atilde ; B 17 0 680 915 ; -C -1 ; WX 722 ; N Ccedilla ; B 112 -214 770 741 ; -C -1 ; WX 667 ; N Eacute ; B 90 0 751 939 ; -C -1 ; WX 667 ; N Ecircumflex ; B 90 0 751 940 ; -C -1 ; WX 667 ; N Edieresis ; B 90 0 751 907 ; -C -1 ; WX 667 ; N Egrave ; B 90 0 751 939 ; -C -1 ; WX 722 ; N Eth ; B 73 0 759 729 ; -C -1 ; WX 278 ; N Iacute ; B 100 0 479 939 ; -C -1 ; WX 278 ; N Icircumflex ; B 100 0 454 940 ; -C -1 ; WX 278 ; N Idieresis ; B 100 0 467 907 ; -C -1 ; WX 278 ; N Igrave ; B 100 0 378 939 ; -C -1 ; WX 722 ; N Ntilde ; B 76 0 801 915 ; -C -1 ; WX 778 ; N Oacute ; B 104 -23 828 939 ; -C -1 ; WX 778 ; N Ocircumflex ; B 104 -23 828 940 ; -C -1 ; WX 778 ; N Odieresis ; B 104 -23 828 907 ; -C -1 ; WX 778 ; N Ograve ; B 104 -23 828 939 ; -C -1 ; WX 778 ; N Otilde ; B 104 -23 828 915 ; -C -1 ; WX 667 ; N Scaron ; B 89 -23 714 939 ; -C -1 ; WX 667 ; N Thorn ; B 91 0 707 729 ; -C -1 ; WX 722 ; N Uacute ; B 124 -23 800 939 ; -C -1 ; WX 722 ; N Ucircumflex ; B 124 -23 800 940 ; -C -1 ; WX 722 ; N Udieresis ; B 124 -23 800 907 ; -C -1 ; WX 722 ; N Ugrave ; B 124 -23 800 939 ; -C -1 ; WX 667 ; N Yacute ; B 168 0 816 944 ; -C -1 ; WX 667 ; N Ydieresis ; B 168 0 816 907 ; -C -1 ; WX 611 ; N Zcaron ; B 28 0 737 939 ; -C -1 ; WX 556 ; N aacute ; B 65 -23 570 740 ; -C -1 ; WX 556 ; N acircumflex ; B 65 -23 568 741 ; -C -1 ; WX 556 ; N adieresis ; B 65 -23 568 708 ; -C -1 ; WX 556 ; N agrave ; B 65 -23 568 740 ; -C -1 ; WX 556 ; N aring ; B 65 -23 568 741 ; -C -1 ; WX 556 ; N atilde ; B 65 -23 583 716 ; -C -1 ; WX 260 ; N brokenbar ; B 54 -215 315 729 ; -C -1 ; WX 500 ; N ccedilla ; B 76 -214 554 540 ; -C -1 ; WX 737 ; N copyright ; B 55 -23 836 741 ; -C -1 ; WX 400 ; N degree ; B 165 409 472 709 ; -C -1 ; WX 584 ; N divide ; B 92 -10 591 474 ; -C -1 ; WX 556 ; N eacute ; B 84 -23 580 740 ; -C -1 ; WX 556 ; N ecircumflex ; B 84 -23 580 741 ; -C -1 ; WX 556 ; N edieresis ; B 84 -23 580 708 ; -C -1 ; WX 556 ; N egrave ; B 84 -23 580 740 ; -C -1 ; WX 556 ; N eth ; B 80 -23 572 729 ; -C -1 ; WX 278 ; N iacute ; B 94 0 431 740 ; -C -1 ; WX 278 ; N icircumflex ; B 94 0 406 741 ; -C -1 ; WX 278 ; N idieresis ; B 94 0 419 708 ; -C -1 ; WX 278 ; N igrave ; B 94 0 330 740 ; -C -1 ; WX 584 ; N logicalnot ; B 99 82 619 352 ; -C -1 ; WX 584 ; N minus ; B 81 194 601 270 ; -C -1 ; WX 556 ; N mu ; B 18 -219 594 525 ; -C -1 ; WX 584 ; N multiply ; B 59 -10 625 476 ; -C -1 ; WX 556 ; N ntilde ; B 70 0 589 716 ; -C -1 ; WX 556 ; N oacute ; B 80 -23 576 740 ; -C -1 ; WX 556 ; N ocircumflex ; B 80 -23 576 741 ; -C -1 ; WX 556 ; N odieresis ; B 80 -23 576 708 ; -C -1 ; WX 556 ; N ograve ; B 80 -23 576 740 ; -C -1 ; WX 834 ; N onehalf ; B 116 -21 869 709 ; -C -1 ; WX 834 ; N onequarter ; B 147 -21 836 709 ; -C -1 ; WX 333 ; N onesuperior ; B 184 284 370 709 ; -C -1 ; WX 556 ; N otilde ; B 80 -23 583 716 ; -C -1 ; WX 584 ; N plusminus ; B 40 0 621 618 ; -C -1 ; WX 737 ; N registered ; B 55 -23 836 741 ; -C -1 ; WX 500 ; N scaron ; B 61 -24 547 740 ; -C -1 ; WX 556 ; N thorn ; B 7 -219 588 729 ; -C -1 ; WX 834 ; N threequarters ; B 114 -21 868 709 ; -C -1 ; WX 333 ; N threesuperior ; B 96 270 435 709 ; -C -1 ; WX 1000 ; N trademark ; B 208 320 1096 741 ; -C -1 ; WX 333 ; N twosuperior ; B 71 284 447 710 ; -C -1 ; WX 556 ; N uacute ; B 88 -23 594 740 ; -C -1 ; WX 556 ; N ucircumflex ; B 88 -23 594 741 ; -C -1 ; WX 556 ; N udieresis ; B 88 -23 594 708 ; -C -1 ; WX 556 ; N ugrave ; B 88 -23 594 740 ; -C -1 ; WX 500 ; N yacute ; B 8 -219 590 740 ; -C -1 ; WX 500 ; N ydieresis ; B 8 -219 590 708 ; -C -1 ; WX 500 ; N zcaron ; B 31 0 557 740 ; -EndCharMetrics -StartKernData -StartKernPairs 98 - -KPX A y -9 -KPX A w -18 -KPX A v -18 -KPX A space -37 -KPX A quoteright -37 -KPX A Y -74 -KPX A W -18 -KPX A V -55 -KPX A T -74 - -KPX F space -18 -KPX F period -129 -KPX F comma -129 -KPX F A -74 - -KPX L y -18 -KPX L space -18 -KPX L quoteright -55 -KPX L Y -92 -KPX L W -37 -KPX L V -55 -KPX L T -74 - -KPX P space -37 -KPX P period -129 -KPX P comma -129 -KPX P A -74 - -KPX R Y -37 -KPX R W -18 -KPX R V -18 -KPX R T -18 - -KPX T y -74 -KPX T w -74 -KPX T u -74 -KPX T semicolon -74 -KPX T s -92 -KPX T r -74 -KPX T period -92 -KPX T o -92 -KPX T i -9 -KPX T hyphen -92 -KPX T e -92 -KPX T comma -92 -KPX T colon -74 -KPX T c -92 -KPX T a -92 -KPX T O -18 -KPX T A -74 - -KPX V y -18 -KPX V u -18 -KPX V semicolon -18 -KPX V r -18 -KPX V period -74 -KPX V o -37 -KPX V i -18 -KPX V hyphen -37 -KPX V e -37 -KPX V comma -74 -KPX V colon -18 -KPX V a -37 -KPX V A -55 - -KPX W period -37 -KPX W i -9 -KPX W hyphen -18 -KPX W e -18 -KPX W comma -37 -KPX W a -18 -KPX W A -18 - -KPX Y v -37 -KPX Y u -37 -KPX Y space -18 -KPX Y semicolon -37 -KPX Y q -55 -KPX Y period -92 -KPX Y p -55 -KPX Y o -55 -KPX Y i -18 -KPX Y hyphen -74 -KPX Y e -55 -KPX Y comma -92 -KPX Y colon -37 -KPX Y a -74 -KPX Y A -55 - -KPX f quoteright 37 - -KPX one one -74 - -KPX quoteleft quoteleft -37 - -KPX quoteright space -55 -KPX quoteright s -18 -KPX quoteright quoteright -37 - -KPX r quoteright 37 -KPX r period -37 -KPX r hyphen -18 -KPX r comma -55 - -KPX space Y -18 -KPX space A -37 - -KPX v period -74 -KPX v comma -74 - -KPX w period -55 -KPX w comma -55 - -KPX y period -74 -KPX y comma -74 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 204 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 83 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 167 204 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 83 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 194 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 83 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 167 204 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 204 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 204 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 204 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 204 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute -27 204 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex -27 204 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis -27 204 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave -27 204 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 204 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 204 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 204 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 204 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 111 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 111 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 111 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 111 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 204 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 204 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 204 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 204 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 111 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 111 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 111 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 111 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 204 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 204 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 204 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 204 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 111 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 111 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 111 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 111 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 204 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 111 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 204 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 204 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 111 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 167 204 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 111 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/Makefile.am b/misc/afm/Makefile.am deleted file mode 100644 index 45f62c4b16..0000000000 --- a/misc/afm/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -## Purpose: The automake makefile for wxWindows (misc/afm direcotry) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -afmdir = $(datadir)/wx/afm -afm_DATA = \ - Cour.afm \ - CourBo.afm \ - CourBoO.afm \ - CourO.afm \ - Helv.afm \ - HelvBo.afm \ - HelvBoO.afm \ - HelvO.afm \ - TimesRo.afm \ - TimesBo.afm \ - TimesBoO.afm \ - TimesO.afm - diff --git a/misc/afm/TimesBo.afm b/misc/afm/TimesBo.afm deleted file mode 100644 index a821d74c50..0000000000 --- a/misc/afm/TimesBo.afm +++ /dev/null @@ -1,454 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:02:18 PDT 1986 -FontName Times-Bold -EncodingScheme AdobeStandardEncoding -FullName Times Bold -FamilyName Times -Weight Bold -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -99 -UnderlineThickness 95 -Version 001.001 -Notice Times is a trademark of Allied Corporation. -FontBBox -172 -256 1008 965 -CapHeight 681 -XHeight 460 -Descender -210 -Ascender 670 -StartCharMetrics 228 -C 32 ; WX 250 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 84 -18 248 690 ; -C 34 ; WX 555 ; N quotedbl ; B 67 371 425 690 ; -C 35 ; WX 500 ; N numbersign ; B -13 -17 514 684 ; -C 36 ; WX 500 ; N dollar ; B 28 -116 474 732 ; -C 37 ; WX 1000 ; N percent ; B 122 -11 881 692 ; -C 38 ; WX 833 ; N ampersand ; B 54 -17 773 690 ; -C 39 ; WX 333 ; N quoteright ; B 77 347 257 680 ; -C 40 ; WX 333 ; N parenleft ; B 49 -169 301 699 ; -C 41 ; WX 333 ; N parenright ; B 26 -169 278 699 ; -C 42 ; WX 500 ; N asterisk ; B 57 262 445 690 ; -C 43 ; WX 570 ; N plus ; B 50 -10 520 460 ; -C 44 ; WX 250 ; N comma ; B 37 -181 214 157 ; -C 45 ; WX 333 ; N hyphen ; B 48 170 283 285 ; -C 46 ; WX 250 ; N period ; B 43 -19 207 145 ; -C 47 ; WX 278 ; N slash ; B 1 -17 279 750 ; -C 48 ; WX 500 ; N zero ; B 26 -18 472 690 ; -C 49 ; WX 500 ; N one ; B 61 0 448 690 ; -C 50 ; WX 500 ; N two ; B 18 0 473 683 ; -C 51 ; WX 500 ; N three ; B 17 -19 463 683 ; -C 52 ; WX 500 ; N four ; B 23 0 472 681 ; -C 53 ; WX 500 ; N five ; B 23 -17 465 681 ; -C 54 ; WX 500 ; N six ; B 30 -18 470 684 ; -C 55 ; WX 500 ; N seven ; B 23 0 468 679 ; -C 56 ; WX 500 ; N eight ; B 22 -17 470 685 ; -C 57 ; WX 500 ; N nine ; B 26 -18 468 684 ; -C 58 ; WX 333 ; N colon ; B 83 -18 247 473 ; -C 59 ; WX 333 ; N semicolon ; B 85 -181 262 472 ; -C 60 ; WX 570 ; N less ; B 45 -10 520 460 ; -C 61 ; WX 570 ; N equal ; B 50 91 520 375 ; -C 62 ; WX 570 ; N greater ; B 50 -10 525 460 ; -C 63 ; WX 500 ; N question ; B 57 -17 438 681 ; -C 64 ; WX 930 ; N at ; B 50 -147 889 677 ; -C 65 ; WX 722 ; N A ; B 22 0 696 681 ; -C 66 ; WX 667 ; N B ; B 24 0 609 681 ; -C 67 ; WX 722 ; N C ; B 42 -17 669 690 ; -C 68 ; WX 722 ; N D ; B 22 0 684 681 ; -C 69 ; WX 667 ; N E ; B 21 0 637 681 ; -C 70 ; WX 611 ; N F ; B 17 0 582 681 ; -C 71 ; WX 778 ; N G ; B 41 -17 748 690 ; -C 72 ; WX 778 ; N H ; B 26 0 748 681 ; -C 73 ; WX 389 ; N I ; B 17 0 366 680 ; -C 74 ; WX 500 ; N J ; B 9 -89 475 681 ; -C 75 ; WX 778 ; N K ; B 29 0 761 681 ; -C 76 ; WX 667 ; N L ; B 21 0 633 681 ; -C 77 ; WX 944 ; N M ; B 21 0 914 681 ; -C 78 ; WX 722 ; N N ; B 20 -10 697 681 ; -C 79 ; WX 778 ; N O ; B 43 -18 733 690 ; -C 80 ; WX 611 ; N P ; B 24 0 593 681 ; -C 81 ; WX 778 ; N Q ; B 24 -182 751 690 ; -C 82 ; WX 722 ; N R ; B 26 0 695 681 ; -C 83 ; WX 556 ; N S ; B 43 -19 506 690 ; -C 84 ; WX 667 ; N T ; B 30 0 629 681 ; -C 85 ; WX 722 ; N U ; B 20 -19 700 681 ; -C 86 ; WX 722 ; N V ; B 22 -18 696 681 ; -C 87 ; WX 1000 ; N W ; B 19 -18 979 680 ; -C 88 ; WX 722 ; N X ; B 23 0 695 681 ; -C 89 ; WX 722 ; N Y ; B 19 0 697 680 ; -C 90 ; WX 667 ; N Z ; B 37 0 624 681 ; -C 91 ; WX 333 ; N bracketleft ; B 73 -142 296 674 ; -C 92 ; WX 278 ; N backslash ; B 1 -17 279 750 ; -C 93 ; WX 333 ; N bracketright ; B 38 -142 261 674 ; -C 94 ; WX 581 ; N asciicircum ; B 102 290 486 690 ; -C 95 ; WX 500 ; N underscore ; B -2 -256 502 -182 ; -C 96 ; WX 333 ; N quoteleft ; B 72 357 252 691 ; -C 97 ; WX 500 ; N a ; B 25 -19 484 472 ; -C 98 ; WX 556 ; N b ; B 29 -18 512 670 ; -C 99 ; WX 444 ; N c ; B 24 -17 423 472 ; -C 100 ; WX 556 ; N d ; B 31 -17 523 670 ; -C 101 ; WX 444 ; N e ; B 25 -18 415 474 ; -C 102 ; WX 333 ; N f ; B 20 0 386 690 ; L i fi ; L l fl ; -C 103 ; WX 500 ; N g ; B 25 -210 474 472 ; -C 104 ; WX 556 ; N h ; B 29 0 523 670 ; -C 105 ; WX 278 ; N i ; B 27 0 249 690 ; -C 106 ; WX 333 ; N j ; B -57 -212 256 690 ; -C 107 ; WX 556 ; N k ; B 24 0 528 670 ; -C 108 ; WX 278 ; N l ; B 25 0 247 670 ; -C 109 ; WX 833 ; N m ; B 28 0 804 471 ; -C 110 ; WX 556 ; N n ; B 28 0 523 473 ; -C 111 ; WX 500 ; N o ; B 25 -18 473 472 ; -C 112 ; WX 556 ; N p ; B 30 -210 513 473 ; -C 113 ; WX 556 ; N q ; B 32 -210 535 472 ; -C 114 ; WX 444 ; N r ; B 29 0 417 473 ; -C 115 ; WX 389 ; N s ; B 29 -17 359 472 ; -C 116 ; WX 333 ; N t ; B 22 -19 320 627 ; -C 117 ; WX 556 ; N u ; B 23 -17 524 460 ; -C 118 ; WX 500 ; N v ; B 20 -14 479 460 ; -C 119 ; WX 722 ; N w ; B 10 -14 709 460 ; -C 120 ; WX 500 ; N x ; B 11 0 488 460 ; -C 121 ; WX 500 ; N y ; B 19 -212 475 460 ; -C 122 ; WX 444 ; N z ; B 25 0 414 460 ; -C 123 ; WX 394 ; N braceleft ; B 44 -142 342 674 ; -C 124 ; WX 220 ; N bar ; B 77 -195 151 720 ; -C 125 ; WX 394 ; N braceright ; B 38 -142 336 674 ; -C 126 ; WX 520 ; N asciitilde ; B 19 237 493 461 ; -C 161 ; WX 333 ; N exclamdown ; B 85 -210 249 498 ; -C 162 ; WX 500 ; N cent ; B 44 -148 460 586 ; -C 163 ; WX 500 ; N sterling ; B 25 -17 471 682 ; -C 164 ; WX 167 ; N fraction ; B -172 -17 335 690 ; -C 165 ; WX 500 ; N yen ; B -20 0 521 681 ; -C 166 ; WX 500 ; N florin ; B 2 -157 496 713 ; -C 167 ; WX 500 ; N section ; B 63 -148 438 677 ; -C 168 ; WX 500 ; N currency ; B 3 105 498 604 ; -C 169 ; WX 278 ; N quotesingle ; B 69 371 205 690 ; -C 170 ; WX 500 ; N quotedblleft ; B 33 346 479 679 ; -C 171 ; WX 500 ; N guillemotleft ; B 25 44 471 436 ; -C 172 ; WX 333 ; N guilsinglleft ; B 51 44 302 436 ; -C 173 ; WX 333 ; N guilsinglright ; B 26 44 277 436 ; -C 174 ; WX 556 ; N fi ; B 24 0 532 690 ; -C 175 ; WX 556 ; N fl ; B 25 0 529 691 ; -C 177 ; WX 500 ; N endash ; B -4 179 500 270 ; -C 178 ; WX 500 ; N dagger ; B 52 -141 446 690 ; -C 179 ; WX 500 ; N daggerdbl ; B 57 -138 451 681 ; -C 180 ; WX 250 ; N periodcentered ; B 43 270 167 394 ; -C 182 ; WX 540 ; N paragraph ; B 30 -190 533 681 ; -C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; -C 184 ; WX 333 ; N quotesinglbase ; B 77 -179 257 154 ; -C 185 ; WX 500 ; N quotedblbase ; B 31 -179 477 154 ; -C 186 ; WX 500 ; N quotedblright ; B 31 347 477 680 ; -C 187 ; WX 500 ; N guillemotright ; B 24 44 470 436 ; -C 188 ; WX 1000 ; N ellipsis ; B 85 -18 915 146 ; -C 189 ; WX 1000 ; N perthousand ; B 1 -55 993 718 ; -C 191 ; WX 500 ; N questiondown ; B 56 -210 437 488 ; -C 193 ; WX 333 ; N grave ; B 26 523 242 695 ; -C 194 ; WX 333 ; N acute ; B 83 523 299 695 ; -C 195 ; WX 333 ; N circumflex ; B 28 520 304 690 ; -C 196 ; WX 333 ; N tilde ; B 34 559 298 671 ; -C 197 ; WX 333 ; N macron ; B 34 543 297 600 ; -C 198 ; WX 333 ; N breve ; B 32 529 300 667 ; -C 199 ; WX 333 ; N dotaccent ; B 112 515 222 625 ; -C 200 ; WX 333 ; N dieresis ; B 33 556 297 652 ; -C 202 ; WX 333 ; N ring ; B 55 522 279 746 ; -C 203 ; WX 333 ; N cedilla ; B 42 -211 293 -10 ; -C 205 ; WX 333 ; N hungarumlaut ; B 32 539 320 753 ; -C 206 ; WX 333 ; N ogonek ; B 60 -179 277 70 ; -C 207 ; WX 333 ; N caron ; B 32 520 298 690 ; -C 208 ; WX 1000 ; N emdash ; B -2 185 1008 280 ; -C 225 ; WX 1000 ; N AE ; B 19 0 954 681 ; -C 227 ; WX 300 ; N ordfeminine ; B 12 286 288 685 ; -C 232 ; WX 667 ; N Lslash ; B 0 0 612 681 ; -C 233 ; WX 778 ; N Oslash ; B 45 -75 735 740 ; -C 234 ; WX 1000 ; N OE ; B 24 -7 979 683 ; -C 235 ; WX 330 ; N ordmasculine ; B 31 286 299 685 ; -C 241 ; WX 722 ; N ae ; B 30 -17 691 474 ; -C 245 ; WX 278 ; N dotlessi ; B 28 0 250 460 ; -C 248 ; WX 278 ; N lslash ; B 0 0 326 670 ; -C 249 ; WX 500 ; N oslash ; B 27 -95 474 550 ; -C 250 ; WX 722 ; N oe ; B 26 -17 689 473 ; -C 251 ; WX 556 ; N germandbls ; B 22 -18 513 689 ; -C -1 ; WX 722 ; N Aacute ; B 22 0 696 914 ; -C -1 ; WX 722 ; N Acircumflex ; B 22 0 696 909 ; -C -1 ; WX 722 ; N Adieresis ; B 22 0 696 871 ; -C -1 ; WX 722 ; N Agrave ; B 22 0 696 914 ; -C -1 ; WX 722 ; N Aring ; B 22 0 696 965 ; -C -1 ; WX 722 ; N Atilde ; B 22 0 696 890 ; -C -1 ; WX 722 ; N Ccedilla ; B 42 -211 669 690 ; -C -1 ; WX 667 ; N Eacute ; B 21 0 637 914 ; -C -1 ; WX 667 ; N Ecircumflex ; B 21 0 637 909 ; -C -1 ; WX 667 ; N Edieresis ; B 21 0 637 871 ; -C -1 ; WX 667 ; N Egrave ; B 21 0 637 914 ; -C -1 ; WX 722 ; N Eth ; B 22 0 685 681 ; -C -1 ; WX 389 ; N Iacute ; B 17 0 366 914 ; -C -1 ; WX 389 ; N Icircumflex ; B 17 0 366 909 ; -C -1 ; WX 389 ; N Idieresis ; B 17 0 366 871 ; -C -1 ; WX 389 ; N Igrave ; B 17 0 366 914 ; -C -1 ; WX 722 ; N Ntilde ; B 20 -10 697 890 ; -C -1 ; WX 778 ; N Oacute ; B 43 -18 733 914 ; -C -1 ; WX 778 ; N Ocircumflex ; B 43 -18 733 909 ; -C -1 ; WX 778 ; N Odieresis ; B 43 -18 733 871 ; -C -1 ; WX 778 ; N Ograve ; B 43 -18 733 914 ; -C -1 ; WX 778 ; N Otilde ; B 43 -18 733 890 ; -C -1 ; WX 556 ; N Scaron ; B 43 -19 506 909 ; -C -1 ; WX 611 ; N Thorn ; B 24 0 594 681 ; -C -1 ; WX 722 ; N Uacute ; B 20 -19 700 914 ; -C -1 ; WX 722 ; N Ucircumflex ; B 20 -19 700 909 ; -C -1 ; WX 722 ; N Udieresis ; B 20 -19 700 871 ; -C -1 ; WX 722 ; N Ugrave ; B 20 -19 700 914 ; -C -1 ; WX 722 ; N Yacute ; B 19 0 697 916 ; -C -1 ; WX 722 ; N Ydieresis ; B 19 0 697 871 ; -C -1 ; WX 667 ; N Zcaron ; B 37 0 624 909 ; -C -1 ; WX 500 ; N aacute ; B 25 -19 484 695 ; -C -1 ; WX 500 ; N acircumflex ; B 25 -19 484 690 ; -C -1 ; WX 500 ; N adieresis ; B 25 -19 484 652 ; -C -1 ; WX 500 ; N agrave ; B 25 -19 484 695 ; -C -1 ; WX 500 ; N aring ; B 25 -19 484 746 ; -C -1 ; WX 500 ; N atilde ; B 25 -19 484 671 ; -C -1 ; WX 220 ; N brokenbar ; B 77 -195 151 720 ; -C -1 ; WX 444 ; N ccedilla ; B 24 -211 423 472 ; -C -1 ; WX 747 ; N copyright ; B 16 -17 730 690 ; -C -1 ; WX 400 ; N degree ; B 50 390 350 690 ; -C -1 ; WX 570 ; N divide ; B 50 -10 520 460 ; -C -1 ; WX 444 ; N eacute ; B 25 -18 415 695 ; -C -1 ; WX 444 ; N ecircumflex ; B 25 -18 415 690 ; -C -1 ; WX 444 ; N edieresis ; B 25 -18 415 652 ; -C -1 ; WX 444 ; N egrave ; B 25 -18 415 695 ; -C -1 ; WX 500 ; N eth ; B 26 -17 474 670 ; -C -1 ; WX 278 ; N iacute ; B 28 0 265 695 ; -C -1 ; WX 278 ; N icircumflex ; B -6 0 270 690 ; -C -1 ; WX 278 ; N idieresis ; B -1 0 263 652 ; -C -1 ; WX 278 ; N igrave ; B -8 0 250 695 ; -C -1 ; WX 570 ; N logicalnot ; B 50 94 520 375 ; -C -1 ; WX 570 ; N minus ; B 50 188 520 262 ; -C -1 ; WX 556 ; N mu ; B 23 -210 524 460 ; -C -1 ; WX 570 ; N multiply ; B 50 -10 520 460 ; -C -1 ; WX 556 ; N ntilde ; B 28 0 523 671 ; -C -1 ; WX 500 ; N oacute ; B 25 -18 473 695 ; -C -1 ; WX 500 ; N ocircumflex ; B 25 -18 473 690 ; -C -1 ; WX 500 ; N odieresis ; B 25 -18 473 652 ; -C -1 ; WX 500 ; N ograve ; B 25 -18 473 695 ; -C -1 ; WX 750 ; N onehalf ; B 30 -18 720 690 ; -C -1 ; WX 750 ; N onequarter ; B 30 -18 720 690 ; -C -1 ; WX 300 ; N onesuperior ; B 24 276 275 690 ; -C -1 ; WX 500 ; N otilde ; B 25 -18 473 671 ; -C -1 ; WX 570 ; N plusminus ; B 50 0 520 600 ; -C -1 ; WX 747 ; N registered ; B 16 -17 730 690 ; -C -1 ; WX 389 ; N scaron ; B 29 -17 359 690 ; -C -1 ; WX 556 ; N thorn ; B 30 -210 513 670 ; -C -1 ; WX 750 ; N threequarters ; B 30 -18 720 690 ; -C -1 ; WX 300 ; N threesuperior ; B 5 269 294 690 ; -C -1 ; WX 1000 ; N trademark ; B 30 277 970 681 ; -C -1 ; WX 300 ; N twosuperior ; B 2 276 298 686 ; -C -1 ; WX 556 ; N uacute ; B 23 -17 524 695 ; -C -1 ; WX 556 ; N ucircumflex ; B 23 -17 524 690 ; -C -1 ; WX 556 ; N udieresis ; B 23 -17 524 652 ; -C -1 ; WX 556 ; N ugrave ; B 23 -17 524 695 ; -C -1 ; WX 500 ; N yacute ; B 19 -212 475 695 ; -C -1 ; WX 500 ; N ydieresis ; B 19 -212 475 652 ; -C -1 ; WX 444 ; N zcaron ; B 25 0 414 690 ; -EndCharMetrics -StartKernData -StartKernPairs 124 - -KPX A y -74 -KPX A w -74 -KPX A v -74 -KPX A space -55 -KPX A quoteright -74 -KPX A Y -92 -KPX A W -111 -KPX A V -129 -KPX A T -74 - -KPX F space -37 -KPX F period -92 -KPX F comma -92 -KPX F A -74 - -KPX L y -55 -KPX L space -55 -KPX L quoteright -92 -KPX L Y -92 -KPX L W -92 -KPX L V -92 -KPX L T -92 - -KPX P space -55 -KPX P period -92 -KPX P comma -92 -KPX P A -74 - -KPX R y -35 -KPX R Y -35 -KPX R W -35 -KPX R V -35 -KPX R T -35 - -KPX T y -74 -KPX T w -74 -KPX T u -92 -KPX T space -18 -KPX T semicolon -74 -KPX T s -92 -KPX T r -74 -KPX T period -74 -KPX T o -92 -KPX T i -18 -KPX T hyphen -92 -KPX T e -92 -KPX T comma -74 -KPX T colon -74 -KPX T c -92 -KPX T a -92 -KPX T O -18 -KPX T A -74 - -KPX V y -92 -KPX V u -92 -KPX V space -18 -KPX V semicolon -92 -KPX V r -74 -KPX V period -129 -KPX V o -92 -KPX V i -37 -KPX V hyphen -74 -KPX V e -92 -KPX V comma -129 -KPX V colon -92 -KPX V a -92 -KPX V O -20 -KPX V A -129 - -KPX W y -37 -KPX W u -18 -KPX W space -18 -KPX W semicolon -55 -KPX W r -18 -KPX W period -92 -KPX W o -55 -KPX W i -18 -KPX W hyphen -37 -KPX W e -55 -KPX W comma -92 -KPX W colon -55 -KPX W a -55 -KPX W A -111 - -KPX Y v -111 -KPX Y u -92 -KPX Y space -37 -KPX Y semicolon -92 -KPX Y q -111 -KPX Y period -92 -KPX Y p -92 -KPX Y o -111 -KPX Y i -37 -KPX Y hyphen -92 -KPX Y e -111 -KPX Y comma -92 -KPX Y colon -92 -KPX Y a -111 -KPX Y A -92 - -KPX f quoteright 55 -KPX f f 0 - -KPX one one -55 - -KPX quoteleft quoteleft -74 - -KPX quoteright space -74 -KPX quoteright s -37 -KPX quoteright quoteright -74 - -KPX r z 0 -KPX r y 0 -KPX r x 0 -KPX r w 0 -KPX r t 0 -KPX r space -18 -KPX r quoteright 18 -KPX r q -18 -KPX r period -92 -KPX r o -18 -KPX r hyphen -37 -KPX r h 0 -KPX r e -18 -KPX r comma -92 -KPX r c -18 - -KPX space Y -37 -KPX space W -18 -KPX space V -18 -KPX space T -18 -KPX space A -55 - -KPX v period -55 -KPX v comma -55 - -KPX w period -55 -KPX w comma -55 - -KPX y period -55 -KPX y comma -55 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 167 219 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 55 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 111 219 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 207 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 68 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 194 219 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 221 219 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 221 219 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 221 219 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 221 219 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 104 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 104 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 104 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 104 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 219 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 219 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 219 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 219 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -34 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -34 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -34 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -34 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 174 219 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 174 219 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 174 219 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 174 219 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 61 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 61 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 61 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 61 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 187 219 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 187 219 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 187 219 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 187 219 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 76 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 76 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 76 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 76 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 222 219 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 222 219 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 222 219 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 222 219 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 187 219 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 76 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 219 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 222 219 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 187 219 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 76 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/TimesBoO.afm b/misc/afm/TimesBoO.afm deleted file mode 100644 index cf4ca76a17..0000000000 --- a/misc/afm/TimesBoO.afm +++ /dev/null @@ -1,438 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:23:15 PDT 1986 -FontName Times-BoldItalic -EncodingScheme AdobeStandardEncoding -FullName Times Bold Italic -FamilyName Times -Weight Bold -ItalicAngle -15.0 -IsFixedPitch false -UnderlinePosition -98 -UnderlineThickness 54 -Version 001.001 -Notice Times is a trademark of Allied Corporation. -FontBBox -168 -232 1014 894 -CapHeight 662 -XHeight 458 -Descender -203 -Ascender 682 -StartCharMetrics 228 -C 32 ; WX 250 ; N space ; B 0 0 0 0 ; -C 33 ; WX 389 ; N exclam ; B 66 -13 367 676 ; -C 34 ; WX 555 ; N quotedbl ; B 142 367 549 693 ; -C 35 ; WX 500 ; N numbersign ; B 4 0 496 662 ; -C 36 ; WX 500 ; N dollar ; B -20 -101 492 723 ; -C 37 ; WX 833 ; N percent ; B 39 -8 784 685 ; -C 38 ; WX 778 ; N ampersand ; B 41 -19 727 676 ; -C 39 ; WX 333 ; N quoteright ; B 80 362 282 675 ; -C 40 ; WX 333 ; N parenleft ; B 28 -179 340 676 ; -C 41 ; WX 333 ; N parenright ; B -44 -179 268 676 ; -C 42 ; WX 500 ; N asterisk ; B 56 244 445 676 ; -C 43 ; WX 570 ; N plus ; B 33 0 537 505 ; -C 44 ; WX 250 ; N comma ; B -10 -181 192 132 ; -C 45 ; WX 333 ; N hyphen ; B 33 167 299 282 ; -C 46 ; WX 250 ; N period ; B 23 -13 170 133 ; -C 47 ; WX 278 ; N slash ; B -11 -18 289 682 ; -C 48 ; WX 500 ; N zero ; B 17 -13 472 676 ; -C 49 ; WX 500 ; N one ; B 5 0 415 676 ; -C 50 ; WX 500 ; N two ; B -27 0 441 676 ; -C 51 ; WX 500 ; N three ; B -15 -13 445 676 ; -C 52 ; WX 500 ; N four ; B -15 0 498 676 ; -C 53 ; WX 500 ; N five ; B -11 -13 482 662 ; -C 54 ; WX 500 ; N six ; B 23 -13 504 676 ; -C 55 ; WX 500 ; N seven ; B 51 0 519 662 ; -C 56 ; WX 500 ; N eight ; B 3 -13 471 676 ; -C 57 ; WX 500 ; N nine ; B -12 -13 470 676 ; -C 58 ; WX 333 ; N colon ; B 52 -13 291 458 ; -C 59 ; WX 333 ; N semicolon ; B 13 -181 291 458 ; -C 60 ; WX 570 ; N less ; B 31 -14 540 524 ; -C 61 ; WX 570 ; N equal ; B 33 116 537 401 ; -C 62 ; WX 570 ; N greater ; B 31 -14 540 524 ; -C 63 ; WX 500 ; N question ; B 78 -13 465 676 ; -C 64 ; WX 832 ; N at ; B -9 -150 838 691 ; -C 65 ; WX 667 ; N A ; B -51 0 602 676 ; -C 66 ; WX 667 ; N B ; B -24 0 618 662 ; -C 67 ; WX 667 ; N C ; B 22 -18 660 677 ; -C 68 ; WX 722 ; N D ; B -31 0 693 662 ; -C 69 ; WX 667 ; N E ; B -27 0 646 662 ; -C 70 ; WX 667 ; N F ; B -20 0 646 662 ; -C 71 ; WX 722 ; N G ; B 21 -18 699 676 ; -C 72 ; WX 778 ; N H ; B -24 0 791 662 ; -C 73 ; WX 389 ; N I ; B -22 0 412 662 ; -C 74 ; WX 500 ; N J ; B -45 -98 519 662 ; -C 75 ; WX 667 ; N K ; B -31 0 685 662 ; -C 76 ; WX 611 ; N L ; B -22 0 584 662 ; -C 77 ; WX 889 ; N M ; B -29 -12 907 662 ; -C 78 ; WX 722 ; N N ; B -27 -18 740 662 ; -C 79 ; WX 722 ; N O ; B 27 -18 684 676 ; -C 80 ; WX 611 ; N P ; B -27 0 608 662 ; -C 81 ; WX 722 ; N Q ; B 27 -203 684 676 ; -C 82 ; WX 667 ; N R ; B -29 0 616 662 ; -C 83 ; WX 556 ; N S ; B 6 -18 524 676 ; -C 84 ; WX 611 ; N T ; B 39 0 632 662 ; -C 85 ; WX 722 ; N U ; B 66 -18 736 662 ; -C 86 ; WX 667 ; N V ; B 48 -18 692 662 ; -C 87 ; WX 889 ; N W ; B 48 -18 914 662 ; -C 88 ; WX 667 ; N X ; B -24 0 687 662 ; -C 89 ; WX 611 ; N Y ; B 46 0 625 662 ; -C 90 ; WX 611 ; N Z ; B -1 0 594 662 ; -C 91 ; WX 333 ; N bracketleft ; B -7 -157 388 682 ; -C 92 ; WX 278 ; N backslash ; B 1 0 465 682 ; -C 93 ; WX 333 ; N bracketright ; B -65 -157 330 682 ; -C 94 ; WX 570 ; N asciicircum ; B 34 259 536 662 ; -C 95 ; WX 500 ; N underscore ; B 0 -127 500 -89 ; -C 96 ; WX 333 ; N quoteleft ; B 117 363 319 676 ; -C 97 ; WX 500 ; N a ; B 9 -14 480 458 ; -C 98 ; WX 500 ; N b ; B 21 -13 474 682 ; -C 99 ; WX 444 ; N c ; B 25 -13 418 458 ; -C 100 ; WX 500 ; N d ; B 9 -13 541 682 ; -C 101 ; WX 444 ; N e ; B 25 -13 413 458 ; -C 102 ; WX 333 ; N f ; B -146 -203 460 682 ; L i fi ; L l fl ; -C 103 ; WX 500 ; N g ; B -27 -203 498 458 ; -C 104 ; WX 556 ; N h ; B 12 -13 518 682 ; -C 105 ; WX 278 ; N i ; B 25 -13 284 676 ; -C 106 ; WX 278 ; N j ; B -152 -203 311 676 ; -C 107 ; WX 500 ; N k ; B 10 -13 511 682 ; -C 108 ; WX 278 ; N l ; B 31 -13 312 682 ; -C 109 ; WX 778 ; N m ; B 16 -13 744 458 ; -C 110 ; WX 556 ; N n ; B 24 -13 518 458 ; -C 111 ; WX 500 ; N o ; B 27 -13 467 458 ; -C 112 ; WX 500 ; N p ; B -79 -203 481 458 ; -C 113 ; WX 500 ; N q ; B 21 -203 486 459 ; -C 114 ; WX 389 ; N r ; B 9 0 415 458 ; -C 115 ; WX 389 ; N s ; B 16 -13 364 459 ; -C 116 ; WX 278 ; N t ; B 16 -14 305 592 ; -C 117 ; WX 556 ; N u ; B 48 -13 521 458 ; -C 118 ; WX 444 ; N v ; B 50 -13 432 458 ; -C 119 ; WX 667 ; N w ; B 50 -13 642 458 ; -C 120 ; WX 500 ; N x ; B -5 -13 498 458 ; -C 121 ; WX 444 ; N y ; B -60 -203 423 458 ; -C 122 ; WX 389 ; N z ; B -24 -58 394 448 ; -C 123 ; WX 348 ; N braceleft ; B 31 -154 381 686 ; -C 124 ; WX 220 ; N bar ; B 70 0 151 682 ; -C 125 ; WX 348 ; N braceright ; B -31 -161 319 679 ; -C 126 ; WX 570 ; N asciitilde ; B 33 158 537 353 ; -C 161 ; WX 389 ; N exclamdown ; B 21 -232 321 458 ; -C 162 ; WX 500 ; N cent ; B 50 -142 443 570 ; -C 163 ; WX 500 ; N sterling ; B -32 -13 505 676 ; -C 164 ; WX 167 ; N fraction ; B -161 0 327 662 ; -C 165 ; WX 500 ; N yen ; B -15 0 565 662 ; -C 166 ; WX 500 ; N florin ; B -86 -154 530 682 ; -C 167 ; WX 500 ; N section ; B 36 -143 454 676 ; -C 168 ; WX 500 ; N currency ; B -3 110 503 612 ; -C 169 ; WX 278 ; N quotesingle ; B 126 367 295 693 ; -C 170 ; WX 500 ; N quotedblleft ; B 57 363 513 676 ; -C 171 ; WX 500 ; N guillemotleft ; B 21 33 474 416 ; -C 172 ; WX 333 ; N guilsinglleft ; B 42 33 310 416 ; -C 173 ; WX 333 ; N guilsinglright ; B 23 38 291 421 ; -C 174 ; WX 556 ; N fi ; B -157 -203 538 682 ; -C 175 ; WX 556 ; N fl ; B -149 -203 577 682 ; -C 177 ; WX 500 ; N endash ; B -11 176 511 266 ; -C 178 ; WX 500 ; N dagger ; B 90 -146 489 676 ; -C 179 ; WX 500 ; N daggerdbl ; B 11 -143 487 675 ; -C 180 ; WX 250 ; N periodcentered ; B 51 179 200 328 ; -C 182 ; WX 500 ; N paragraph ; B 61 -189 592 682 ; -C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; -C 184 ; WX 333 ; N quotesinglbase ; B 66 -181 268 132 ; -C 185 ; WX 500 ; N quotedblbase ; B -57 -181 398 132 ; -C 186 ; WX 500 ; N quotedblright ; B 56 362 509 675 ; -C 187 ; WX 500 ; N guillemotright ; B 21 38 474 421 ; -C 188 ; WX 1000 ; N ellipsis ; B 93 -13 906 133 ; -C 189 ; WX 1000 ; N perthousand ; B 7 -49 985 699 ; -C 191 ; WX 500 ; N questiondown ; B 30 -203 417 487 ; -C 193 ; WX 333 ; N grave ; B 115 511 325 690 ; -C 194 ; WX 333 ; N acute ; B 168 511 405 690 ; -C 195 ; WX 333 ; N circumflex ; B 70 510 394 682 ; -C 196 ; WX 333 ; N tilde ; B 69 530 424 648 ; -C 197 ; WX 333 ; N macron ; B 81 547 420 616 ; -C 198 ; WX 333 ; N breve ; B 99 511 414 671 ; -C 199 ; WX 333 ; N dotaccent ; B 180 519 308 648 ; -C 200 ; WX 333 ; N dieresis ; B 85 519 424 648 ; -C 202 ; WX 333 ; N ring ; B 141 466 352 676 ; -C 203 ; WX 333 ; N cedilla ; B 32 -216 264 5 ; -C 205 ; WX 333 ; N hungarumlaut ; B 28 538 339 750 ; -C 206 ; WX 333 ; N ogonek ; B -37 -173 192 44 ; -C 207 ; WX 333 ; N caron ; B 109 511 437 683 ; -C 208 ; WX 1000 ; N emdash ; B -14 176 1014 266 ; -C 225 ; WX 944 ; N AE ; B -41 0 931 662 ; -C 227 ; WX 266 ; N ordfeminine ; B -24 286 291 676 ; -C 232 ; WX 611 ; N Lslash ; B -22 0 584 662 ; -C 233 ; WX 722 ; N Oslash ; B 27 -124 684 754 ; -C 234 ; WX 944 ; N OE ; B 23 -8 936 670 ; -C 235 ; WX 300 ; N ordmasculine ; B 1 286 300 676 ; -C 241 ; WX 722 ; N ae ; B 15 -13 685 458 ; -C 245 ; WX 278 ; N dotlessi ; B 27 -13 260 458 ; -C 248 ; WX 278 ; N lslash ; B 12 -13 326 682 ; -C 249 ; WX 500 ; N oslash ; B 27 -118 467 556 ; -C 250 ; WX 722 ; N oe ; B 26 -13 687 458 ; -C 251 ; WX 500 ; N germandbls ; B -168 -203 497 682 ; -C -1 ; WX 667 ; N Aacute ; B -51 0 602 894 ; -C -1 ; WX 667 ; N Acircumflex ; B -51 0 602 886 ; -C -1 ; WX 667 ; N Adieresis ; B -51 0 602 852 ; -C -1 ; WX 667 ; N Agrave ; B -51 0 602 894 ; -C -1 ; WX 667 ; N Aring ; B -51 0 602 880 ; -C -1 ; WX 667 ; N Atilde ; B -51 0 602 852 ; -C -1 ; WX 667 ; N Ccedilla ; B 22 -216 660 677 ; -C -1 ; WX 667 ; N Eacute ; B -27 0 646 894 ; -C -1 ; WX 667 ; N Ecircumflex ; B -27 0 646 886 ; -C -1 ; WX 667 ; N Edieresis ; B -27 0 646 852 ; -C -1 ; WX 667 ; N Egrave ; B -27 0 646 894 ; -C -1 ; WX 722 ; N Eth ; B -31 0 693 662 ; -C -1 ; WX 389 ; N Iacute ; B -22 0 433 894 ; -C -1 ; WX 389 ; N Icircumflex ; B -22 0 422 886 ; -C -1 ; WX 389 ; N Idieresis ; B -22 0 452 852 ; -C -1 ; WX 389 ; N Igrave ; B -22 0 412 894 ; -C -1 ; WX 722 ; N Ntilde ; B -27 -18 740 852 ; -C -1 ; WX 722 ; N Oacute ; B 27 -18 684 894 ; -C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 684 886 ; -C -1 ; WX 722 ; N Odieresis ; B 27 -18 684 852 ; -C -1 ; WX 722 ; N Ograve ; B 27 -18 684 894 ; -C -1 ; WX 722 ; N Otilde ; B 27 -18 684 852 ; -C -1 ; WX 556 ; N Scaron ; B 6 -18 549 887 ; -C -1 ; WX 611 ; N Thorn ; B -27 0 572 662 ; -C -1 ; WX 722 ; N Uacute ; B 66 -18 736 894 ; -C -1 ; WX 722 ; N Ucircumflex ; B 66 -18 736 886 ; -C -1 ; WX 722 ; N Udieresis ; B 66 -18 736 852 ; -C -1 ; WX 722 ; N Ugrave ; B 66 -18 736 894 ; -C -1 ; WX 611 ; N Yacute ; B 46 0 625 894 ; -C -1 ; WX 611 ; N Ydieresis ; B 46 0 625 852 ; -C -1 ; WX 611 ; N Zcaron ; B -1 0 594 887 ; -C -1 ; WX 500 ; N aacute ; B 9 -14 489 690 ; -C -1 ; WX 500 ; N acircumflex ; B 9 -14 480 682 ; -C -1 ; WX 500 ; N adieresis ; B 9 -14 508 648 ; -C -1 ; WX 500 ; N agrave ; B 9 -14 480 690 ; -C -1 ; WX 500 ; N aring ; B 9 -14 480 676 ; -C -1 ; WX 500 ; N atilde ; B 9 -14 508 648 ; -C -1 ; WX 220 ; N brokenbar ; B 70 0 151 682 ; -C -1 ; WX 444 ; N ccedilla ; B 25 -216 418 458 ; -C -1 ; WX 747 ; N copyright ; B 23 -18 723 676 ; -C -1 ; WX 400 ; N degree ; B 70 376 370 676 ; -C -1 ; WX 570 ; N divide ; B 33 0 537 505 ; -C -1 ; WX 444 ; N eacute ; B 25 -13 461 690 ; -C -1 ; WX 444 ; N ecircumflex ; B 25 -13 450 682 ; -C -1 ; WX 444 ; N edieresis ; B 25 -13 480 648 ; -C -1 ; WX 444 ; N egrave ; B 25 -13 413 690 ; -C -1 ; WX 500 ; N eth ; B 27 -13 498 682 ; -C -1 ; WX 278 ; N iacute ; B 27 -13 378 690 ; -C -1 ; WX 278 ; N icircumflex ; B 27 -13 367 682 ; -C -1 ; WX 278 ; N idieresis ; B 27 -13 397 648 ; -C -1 ; WX 278 ; N igrave ; B 27 -13 298 690 ; -C -1 ; WX 606 ; N logicalnot ; B 51 120 555 401 ; -C -1 ; WX 606 ; N minus ; B 51 210 555 300 ; -C -1 ; WX 576 ; N mu ; B -63 -210 521 458 ; -C -1 ; WX 570 ; N multiply ; B 33 0 537 504 ; -C -1 ; WX 556 ; N ntilde ; B 24 -13 536 648 ; -C -1 ; WX 500 ; N oacute ; B 27 -13 489 690 ; -C -1 ; WX 500 ; N ocircumflex ; B 27 -13 478 682 ; -C -1 ; WX 500 ; N odieresis ; B 27 -13 508 648 ; -C -1 ; WX 500 ; N ograve ; B 27 -13 467 690 ; -C -1 ; WX 750 ; N onehalf ; B 30 0 720 676 ; -C -1 ; WX 750 ; N onequarter ; B 30 0 720 676 ; -C -1 ; WX 300 ; N onesuperior ; B 17 270 283 676 ; -C -1 ; WX 500 ; N otilde ; B 27 -13 508 648 ; -C -1 ; WX 570 ; N plusminus ; B 33 0 537 665 ; -C -1 ; WX 747 ; N registered ; B 23 -18 723 676 ; -C -1 ; WX 389 ; N scaron ; B 16 -13 465 683 ; -C -1 ; WX 500 ; N thorn ; B -79 -203 474 682 ; -C -1 ; WX 750 ; N threequarters ; B 30 0 720 676 ; -C -1 ; WX 300 ; N threesuperior ; B 0 263 299 676 ; -C -1 ; WX 1000 ; N trademark ; B 40 272 980 676 ; -C -1 ; WX 300 ; N twosuperior ; B -2 270 302 676 ; -C -1 ; WX 556 ; N uacute ; B 48 -13 521 690 ; -C -1 ; WX 556 ; N ucircumflex ; B 48 -13 521 682 ; -C -1 ; WX 556 ; N udieresis ; B 48 -13 536 648 ; -C -1 ; WX 556 ; N ugrave ; B 48 -13 521 690 ; -C -1 ; WX 444 ; N yacute ; B -60 -203 461 690 ; -C -1 ; WX 444 ; N ydieresis ; B -60 -203 480 648 ; -C -1 ; WX 389 ; N zcaron ; B -24 -58 465 683 ; -EndCharMetrics -StartKernData -StartKernPairs 108 - -KPX A y -74 -KPX A w -74 -KPX A v -74 -KPX A space -55 -KPX A quoteright -74 -KPX A Y -55 -KPX A W -92 -KPX A V -74 -KPX A T -55 - -KPX F space -18 -KPX F period -129 -KPX F comma -129 -KPX F A -92 - -KPX L y -37 -KPX L space -37 -KPX L quoteright -55 -KPX L Y -37 -KPX L W -37 -KPX L V -37 -KPX L T -18 - -KPX P space -37 -KPX P period -129 -KPX P comma -129 -KPX P A -74 - -KPX R y -18 -KPX R Y -18 -KPX R W -18 -KPX R V -18 - -KPX T y -37 -KPX T w -37 -KPX T u -37 -KPX T semicolon -74 -KPX T s -92 -KPX T r -37 -KPX T period -92 -KPX T o -92 -KPX T i -37 -KPX T hyphen -92 -KPX T e -92 -KPX T comma -92 -KPX T colon -74 -KPX T c -92 -KPX T a -92 -KPX T O -18 -KPX T A -55 - -KPX V y -74 -KPX V u -55 -KPX V space -18 -KPX V semicolon -74 -KPX V r -55 -KPX V period -129 -KPX V o -111 -KPX V i -55 -KPX V hyphen -55 -KPX V e -111 -KPX V comma -129 -KPX V colon -74 -KPX V a -111 -KPX V A -74 - -KPX W y -55 -KPX W u -55 -KPX W space -18 -KPX W semicolon -55 -KPX W r -74 -KPX W period -74 -KPX W o -74 -KPX W i -37 -KPX W hyphen -37 -KPX W e -74 -KPX W comma -74 -KPX W colon -55 -KPX W a -74 -KPX W A -74 - -KPX Y v -92 -KPX Y u -92 -KPX Y space -37 -KPX Y semicolon -92 -KPX Y q -111 -KPX Y period -74 -KPX Y p -74 -KPX Y o -111 -KPX Y i -55 -KPX Y hyphen -92 -KPX Y e -111 -KPX Y comma -92 -KPX Y colon -92 -KPX Y a -92 -KPX Y A -74 - -KPX f quoteright 55 -KPX f f -18 - -KPX one one -55 - -KPX quoteleft quoteleft -74 - -KPX quoteright t -37 -KPX quoteright space -74 -KPX quoteright s -74 -KPX quoteright quoteright -74 - -KPX r quoteright 37 -KPX r period -55 -KPX r comma -55 - -KPX space Y -18 -KPX space W -18 -KPX space A -37 - -KPX v period -37 -KPX v comma -37 - -KPX w period -37 -KPX w comma -37 - -KPX y period -37 -KPX y comma -37 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 204 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 111 204 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 55 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 139 204 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 55 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 204 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 204 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 204 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 204 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 111 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 111 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 111 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 111 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 28 204 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 28 204 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 28 204 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 28 204 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 167 204 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 167 204 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 167 204 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 167 204 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 55 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 55 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 55 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 55 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 167 204 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 167 204 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 167 204 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 167 204 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 83 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 83 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 83 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 83 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 194 204 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 194 204 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 194 204 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 194 204 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 167 204 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 83 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 204 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 111 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 194 204 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 167 204 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 83 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/TimesO.afm b/misc/afm/TimesO.afm deleted file mode 100644 index b8ffc6a0f3..0000000000 --- a/misc/afm/TimesO.afm +++ /dev/null @@ -1,450 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 11:12:17 PDT 1986 -FontName Times-Italic -EncodingScheme AdobeStandardEncoding -FullName Times Italic -FamilyName Times -Weight Medium -ItalicAngle -15.5 -IsFixedPitch false -UnderlinePosition -96 -UnderlineThickness 48 -Version 001.001 -Notice Times is a trademark of Allied Corporation. -FontBBox -176 -252 990 930 -CapHeight 660 -XHeight 446 -Descender -206 -Ascender 684 -StartCharMetrics 228 -C 32 ; WX 250 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 46 -10 296 670 ; -C 34 ; WX 420 ; N quotedbl ; B 107 442 402 673 ; -C 35 ; WX 500 ; N numbersign ; B -7 -6 508 683 ; -C 36 ; WX 500 ; N dollar ; B 13 -102 481 735 ; -C 37 ; WX 833 ; N percent ; B 63 -14 770 682 ; -C 38 ; WX 778 ; N ampersand ; B 60 -22 698 673 ; -C 39 ; WX 333 ; N quoteright ; B 69 458 206 678 ; -C 40 ; WX 333 ; N parenleft ; B 41 -180 312 662 ; -C 41 ; WX 333 ; N parenright ; B 19 -178 286 664 ; -C 42 ; WX 500 ; N asterisk ; B 60 268 434 684 ; -C 43 ; WX 675 ; N plus ; B 85 0 589 505 ; -C 44 ; WX 250 ; N comma ; B 57 -126 194 94 ; -C 45 ; WX 333 ; N hyphen ; B 55 192 276 254 ; -C 46 ; WX 250 ; N period ; B 75 -10 175 90 ; -C 47 ; WX 278 ; N slash ; B 2 -14 252 641 ; -C 48 ; WX 500 ; N zero ; B 19 -9 470 683 ; -C 49 ; WX 500 ; N one ; B 31 0 390 684 ; -C 50 ; WX 500 ; N two ; B -7 0 429 682 ; -C 51 ; WX 500 ; N three ; B -7 -12 443 682 ; -C 52 ; WX 500 ; N four ; B -8 0 454 681 ; -C 53 ; WX 500 ; N five ; B -12 -15 462 666 ; -C 54 ; WX 500 ; N six ; B 24 -8 497 685 ; -C 55 ; WX 500 ; N seven ; B 56 -12 512 666 ; -C 56 ; WX 500 ; N eight ; B 12 -7 475 681 ; -C 57 ; WX 500 ; N nine ; B 10 -18 470 684 ; -C 58 ; WX 333 ; N colon ; B 86 -10 284 444 ; -C 59 ; WX 333 ; N semicolon ; B 63 -124 292 441 ; -C 60 ; WX 675 ; N less ; B 83 -7 592 515 ; -C 61 ; WX 675 ; N equal ; B 85 125 589 383 ; -C 62 ; WX 675 ; N greater ; B 82 -7 591 515 ; -C 63 ; WX 500 ; N question ; B 105 -10 439 670 ; -C 64 ; WX 920 ; N at ; B 39 -191 866 648 ; -C 65 ; WX 611 ; N A ; B -45 0 564 672 ; -C 66 ; WX 611 ; N B ; B -28 0 562 660 ; -C 67 ; WX 667 ; N C ; B 33 -23 653 672 ; -C 68 ; WX 722 ; N D ; B -27 0 671 660 ; -C 69 ; WX 611 ; N E ; B -17 0 609 660 ; -C 70 ; WX 611 ; N F ; B -17 0 609 660 ; -C 71 ; WX 722 ; N G ; B 31 -23 701 672 ; -C 72 ; WX 722 ; N H ; B -26 0 742 660 ; -C 73 ; WX 333 ; N I ; B -26 0 357 660 ; -C 74 ; WX 444 ; N J ; B -36 -22 479 660 ; -C 75 ; WX 667 ; N K ; B -15 0 702 660 ; -C 76 ; WX 556 ; N L ; B -32 0 535 660 ; -C 77 ; WX 833 ; N M ; B -24 0 850 660 ; -C 78 ; WX 667 ; N N ; B -36 -12 698 660 ; -C 79 ; WX 722 ; N O ; B 42 -23 676 671 ; -C 80 ; WX 611 ; N P ; B -16 0 582 660 ; -C 81 ; WX 722 ; N Q ; B 41 -186 681 671 ; -C 82 ; WX 611 ; N R ; B -32 0 566 660 ; -C 83 ; WX 500 ; N S ; B 9 -22 483 674 ; -C 84 ; WX 556 ; N T ; B 32 0 602 660 ; -C 85 ; WX 722 ; N U ; B 77 -21 747 660 ; -C 86 ; WX 611 ; N V ; B 44 -20 659 660 ; -C 87 ; WX 833 ; N W ; B 35 -20 875 660 ; -C 88 ; WX 611 ; N X ; B -45 0 633 660 ; -C 89 ; WX 556 ; N Y ; B 44 0 600 660 ; -C 90 ; WX 556 ; N Z ; B -19 0 581 660 ; -C 91 ; WX 389 ; N bracketleft ; B 22 -170 391 654 ; -C 92 ; WX 278 ; N backslash ; B 2 -12 252 651 ; -C 93 ; WX 389 ; N bracketright ; B -31 -170 341 654 ; -C 94 ; WX 422 ; N asciicircum ; B 0 254 503 660 ; -C 95 ; WX 500 ; N underscore ; B -9 -252 510 -206 ; -C 96 ; WX 333 ; N quoteleft ; B 149 457 286 677 ; -C 97 ; WX 500 ; N a ; B 15 -11 474 446 ; -C 98 ; WX 500 ; N b ; B 24 -12 475 682 ; -C 99 ; WX 444 ; N c ; B 32 -11 420 446 ; -C 100 ; WX 500 ; N d ; B 15 -11 521 684 ; -C 101 ; WX 444 ; N e ; B 34 -13 412 446 ; -C 102 ; WX 278 ; N f ; B -148 -207 415 684 ; L i fi ; L l fl ; -C 103 ; WX 500 ; N g ; B 10 -209 471 445 ; -C 104 ; WX 500 ; N h ; B 23 -10 473 684 ; -C 105 ; WX 278 ; N i ; B 43 -10 263 660 ; -C 106 ; WX 278 ; N j ; B -109 -207 287 660 ; -C 107 ; WX 444 ; N k ; B 16 -12 460 685 ; -C 108 ; WX 278 ; N l ; B 41 -10 276 685 ; -C 109 ; WX 722 ; N m ; B 11 -10 698 447 ; -C 110 ; WX 500 ; N n ; B 23 -10 471 447 ; -C 111 ; WX 500 ; N o ; B 27 -13 467 448 ; -C 112 ; WX 500 ; N p ; B -75 -206 465 446 ; -C 113 ; WX 500 ; N q ; B 20 -206 483 445 ; -C 114 ; WX 389 ; N r ; B 24 0 392 446 ; -C 115 ; WX 389 ; N s ; B 16 -14 367 446 ; -C 116 ; WX 278 ; N t ; B 38 -10 288 548 ; -C 117 ; WX 500 ; N u ; B 42 -11 472 447 ; -C 118 ; WX 444 ; N v ; B 24 -11 423 444 ; -C 119 ; WX 667 ; N w ; B 14 -10 650 447 ; -C 120 ; WX 444 ; N x ; B -31 -10 450 446 ; -C 121 ; WX 444 ; N y ; B -27 -209 420 445 ; -C 122 ; WX 389 ; N z ; B 2 0 380 434 ; -C 123 ; WX 400 ; N braceleft ; B 65 -179 411 675 ; -C 124 ; WX 275 ; N bar ; B -22 -188 251 670 ; -C 125 ; WX 400 ; N braceright ; B -66 -179 300 675 ; -C 126 ; WX 541 ; N asciitilde ; B 18 169 522 340 ; -C 161 ; WX 389 ; N exclamdown ; B 59 -213 317 468 ; -C 162 ; WX 500 ; N cent ; B 62 -146 449 564 ; -C 163 ; WX 500 ; N sterling ; B -5 -9 498 672 ; -C 164 ; WX 167 ; N fraction ; B -176 -15 338 672 ; -C 165 ; WX 500 ; N yen ; B 13 0 609 684 ; -C 166 ; WX 500 ; N florin ; B 3 -189 492 688 ; -C 167 ; WX 500 ; N section ; B 42 -96 455 743 ; -C 168 ; WX 500 ; N currency ; B 3 105 498 604 ; -C 169 ; WX 214 ; N quotesingle ; B 99 453 247 678 ; -C 170 ; WX 556 ; N quotedblleft ; B 166 457 510 677 ; -C 171 ; WX 500 ; N guillemotleft ; B 54 39 444 400 ; -C 172 ; WX 333 ; N guilsinglleft ; B 60 39 285 400 ; -C 173 ; WX 333 ; N guilsinglright ; B 49 34 269 406 ; -C 174 ; WX 500 ; N fi ; B -136 -207 468 684 ; -C 175 ; WX 500 ; N fl ; B -140 -207 509 684 ; -C 177 ; WX 500 ; N endash ; B -3 194 501 242 ; -C 178 ; WX 500 ; N dagger ; B 92 -93 480 734 ; -C 179 ; WX 500 ; N daggerdbl ; B 20 -93 482 743 ; -C 180 ; WX 250 ; N periodcentered ; B 75 192 199 316 ; -C 182 ; WX 523 ; N paragraph ; B 87 -196 533 675 ; -C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; -C 184 ; WX 333 ; N quotesinglbase ; B 83 -126 220 94 ; -C 185 ; WX 556 ; N quotedblbase ; B 63 -126 407 94 ; -C 186 ; WX 556 ; N quotedblright ; B 68 458 412 678 ; -C 187 ; WX 500 ; N guillemotright ; B 59 34 442 406 ; -C 188 ; WX 889 ; N ellipsis ; B 62 -10 828 90 ; -C 189 ; WX 1000 ; N perthousand ; B 9 -65 990 690 ; -C 191 ; WX 500 ; N questiondown ; B 55 -215 395 462 ; -C 193 ; WX 333 ; N grave ; B 160 491 333 659 ; -C 194 ; WX 333 ; N acute ; B 154 501 375 680 ; -C 195 ; WX 333 ; N circumflex ; B 96 495 374 669 ; -C 196 ; WX 333 ; N tilde ; B 114 518 386 639 ; -C 197 ; WX 333 ; N macron ; B 120 543 380 603 ; -C 198 ; WX 333 ; N breve ; B 140 512 401 645 ; -C 199 ; WX 333 ; N dotaccent ; B 112 515 222 625 ; -C 200 ; WX 333 ; N dieresis ; B 117 534 389 634 ; -C 202 ; WX 333 ; N ring ; B 239 509 433 703 ; -C 203 ; WX 333 ; N cedilla ; B -30 -206 214 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 62 532 348 749 ; -C 206 ; WX 333 ; N ogonek ; B -44 -159 169 40 ; -C 207 ; WX 333 ; N caron ; B 138 495 422 669 ; -C 208 ; WX 889 ; N emdash ; B -65 194 945 242 ; -C 225 ; WX 889 ; N AE ; B -46 0 889 660 ; -C 227 ; WX 276 ; N ordfeminine ; B 32 300 310 677 ; -C 232 ; WX 556 ; N Lslash ; B 0 0 567 660 ; -C 233 ; WX 722 ; N Oslash ; B 40 -110 683 738 ; -C 234 ; WX 944 ; N OE ; B 30 -10 943 668 ; -C 235 ; WX 310 ; N ordmasculine ; B 45 301 310 679 ; -C 241 ; WX 667 ; N ae ; B 24 -12 638 448 ; -C 245 ; WX 278 ; N dotlessi ; B 47 -10 226 447 ; -C 248 ; WX 278 ; N lslash ; B 0 -10 264 685 ; -C 249 ; WX 500 ; N oslash ; B 28 -132 468 560 ; -C 250 ; WX 667 ; N oe ; B 26 -15 643 445 ; -C 251 ; WX 500 ; N germandbls ; B -167 -209 492 684 ; -C -1 ; WX 611 ; N Aacute ; B -45 0 564 907 ; -C -1 ; WX 611 ; N Acircumflex ; B -45 0 564 896 ; -C -1 ; WX 611 ; N Adieresis ; B -45 0 564 861 ; -C -1 ; WX 611 ; N Agrave ; B -45 0 564 886 ; -C -1 ; WX 611 ; N Aring ; B -45 0 564 930 ; -C -1 ; WX 611 ; N Atilde ; B -45 0 564 866 ; -C -1 ; WX 667 ; N Ccedilla ; B 33 -206 653 672 ; -C -1 ; WX 611 ; N Eacute ; B -17 0 609 907 ; -C -1 ; WX 611 ; N Ecircumflex ; B -17 0 609 896 ; -C -1 ; WX 611 ; N Edieresis ; B -17 0 609 861 ; -C -1 ; WX 611 ; N Egrave ; B -17 0 609 886 ; -C -1 ; WX 722 ; N Eth ; B -27 0 671 660 ; -C -1 ; WX 333 ; N Iacute ; B -26 0 389 907 ; -C -1 ; WX 333 ; N Icircumflex ; B -26 0 388 896 ; -C -1 ; WX 333 ; N Idieresis ; B -26 0 403 861 ; -C -1 ; WX 333 ; N Igrave ; B -26 0 357 886 ; -C -1 ; WX 667 ; N Ntilde ; B -36 -12 698 866 ; -C -1 ; WX 722 ; N Oacute ; B 42 -23 676 907 ; -C -1 ; WX 722 ; N Ocircumflex ; B 42 -23 676 896 ; -C -1 ; WX 722 ; N Odieresis ; B 42 -23 676 861 ; -C -1 ; WX 722 ; N Ograve ; B 42 -23 676 886 ; -C -1 ; WX 722 ; N Otilde ; B 42 -23 676 866 ; -C -1 ; WX 500 ; N Scaron ; B 9 -22 506 896 ; -C -1 ; WX 611 ; N Thorn ; B -16 0 547 660 ; -C -1 ; WX 722 ; N Uacute ; B 77 -21 747 907 ; -C -1 ; WX 722 ; N Ucircumflex ; B 77 -21 747 896 ; -C -1 ; WX 722 ; N Udieresis ; B 77 -21 747 861 ; -C -1 ; WX 722 ; N Ugrave ; B 77 -21 747 886 ; -C -1 ; WX 556 ; N Yacute ; B 44 0 600 894 ; -C -1 ; WX 556 ; N Ydieresis ; B 44 0 600 861 ; -C -1 ; WX 556 ; N Zcaron ; B -19 0 581 896 ; -C -1 ; WX 500 ; N aacute ; B 15 -11 474 680 ; -C -1 ; WX 500 ; N acircumflex ; B 15 -11 474 669 ; -C -1 ; WX 500 ; N adieresis ; B 15 -11 479 634 ; -C -1 ; WX 500 ; N agrave ; B 15 -11 474 659 ; -C -1 ; WX 500 ; N aring ; B 15 -11 474 703 ; -C -1 ; WX 500 ; N atilde ; B 15 -11 476 639 ; -C -1 ; WX 275 ; N brokenbar ; B -22 -188 251 670 ; -C -1 ; WX 444 ; N ccedilla ; B 32 -206 420 446 ; -C -1 ; WX 760 ; N copyright ; B 40 -22 719 672 ; -C -1 ; WX 400 ; N degree ; B 70 384 370 684 ; -C -1 ; WX 675 ; N divide ; B 85 0 589 505 ; -C -1 ; WX 444 ; N eacute ; B 34 -13 444 680 ; -C -1 ; WX 444 ; N ecircumflex ; B 34 -13 443 669 ; -C -1 ; WX 444 ; N edieresis ; B 34 -13 458 634 ; -C -1 ; WX 444 ; N egrave ; B 34 -13 412 659 ; -C -1 ; WX 500 ; N eth ; B 27 -13 487 682 ; -C -1 ; WX 278 ; N iacute ; B 47 -10 341 680 ; -C -1 ; WX 278 ; N icircumflex ; B 47 -10 340 669 ; -C -1 ; WX 278 ; N idieresis ; B 47 -10 355 634 ; -C -1 ; WX 278 ; N igrave ; B 47 -10 299 659 ; -C -1 ; WX 675 ; N logicalnot ; B 85 113 589 383 ; -C -1 ; WX 675 ; N minus ; B 85 222 589 286 ; -C -1 ; WX 500 ; N mu ; B -60 -206 472 446 ; -C -1 ; WX 675 ; N multiply ; B 85 0 589 504 ; -C -1 ; WX 500 ; N ntilde ; B 23 -10 471 639 ; -C -1 ; WX 500 ; N oacute ; B 27 -13 467 680 ; -C -1 ; WX 500 ; N ocircumflex ; B 27 -13 467 669 ; -C -1 ; WX 500 ; N odieresis ; B 27 -13 479 634 ; -C -1 ; WX 500 ; N ograve ; B 27 -13 467 659 ; -C -1 ; WX 750 ; N onehalf ; B 30 -15 720 684 ; -C -1 ; WX 750 ; N onequarter ; B 30 -15 720 684 ; -C -1 ; WX 300 ; N onesuperior ; B 43 274 277 683 ; -C -1 ; WX 500 ; N otilde ; B 27 -13 476 639 ; -C -1 ; WX 675 ; N plusminus ; B 85 0 589 645 ; -C -1 ; WX 760 ; N registered ; B 40 -22 719 672 ; -C -1 ; WX 389 ; N scaron ; B 16 -14 450 669 ; -C -1 ; WX 500 ; N thorn ; B -75 -206 465 682 ; -C -1 ; WX 750 ; N threequarters ; B 30 -15 720 684 ; -C -1 ; WX 300 ; N threesuperior ; B 13 267 306 684 ; -C -1 ; WX 980 ; N trademark ; B 35 268 945 672 ; -C -1 ; WX 300 ; N twosuperior ; B 8 274 292 684 ; -C -1 ; WX 500 ; N uacute ; B 42 -11 472 680 ; -C -1 ; WX 500 ; N ucircumflex ; B 42 -11 472 669 ; -C -1 ; WX 500 ; N udieresis ; B 42 -11 473 634 ; -C -1 ; WX 500 ; N ugrave ; B 42 -11 472 659 ; -C -1 ; WX 444 ; N yacute ; B -27 -209 431 680 ; -C -1 ; WX 444 ; N ydieresis ; B -27 -209 445 634 ; -C -1 ; WX 389 ; N zcaron ; B 2 0 450 669 ; -EndCharMetrics -StartKernData -StartKernPairs 120 - -KPX A y -55 -KPX A w -55 -KPX A v -55 -KPX A space -18 -KPX A quoteright -37 -KPX A Y -55 -KPX A W -37 -KPX A V -50 -KPX A T -37 - -KPX F period -129 -KPX F comma -129 -KPX F A -129 - -KPX L y -30 -KPX L space -18 -KPX L quoteright -37 -KPX L Y -20 -KPX L W -37 -KPX L V -37 -KPX L T -20 - -KPX P space -18 -KPX P period -129 -KPX P comma -129 -KPX P A -129 - -KPX R y -18 -KPX R Y -18 -KPX R W -18 -KPX R V -18 -KPX R T 0 - -KPX T y -74 -KPX T w -74 -KPX T u -55 -KPX T space -18 -KPX T semicolon -65 -KPX T s -92 -KPX T r -55 -KPX T period -74 -KPX T o -92 -KPX T i -55 -KPX T hyphen -74 -KPX T e -92 -KPX T comma -74 -KPX T colon -55 -KPX T c -92 -KPX T a -92 -KPX T O -18 -KPX T A -74 - -KPX V y -92 -KPX V u -74 -KPX V space -18 -KPX V semicolon -74 -KPX V r -74 -KPX V period -129 -KPX V o -111 -KPX V i -74 -KPX V hyphen -55 -KPX V e -111 -KPX V comma -129 -KPX V colon -65 -KPX V a -111 -KPX V O -30 -KPX V A -74 - -KPX W y -92 -KPX W u -55 -KPX W semicolon -65 -KPX W r -55 -KPX W period -92 -KPX W o -92 -KPX W i -55 -KPX W hyphen -37 -KPX W e -92 -KPX W comma -92 -KPX W colon -65 -KPX W a -92 -KPX W A -70 - -KPX Y v -92 -KPX Y u -92 -KPX Y semicolon -65 -KPX Y q -111 -KPX Y period -92 -KPX Y p -92 -KPX Y o -92 -KPX Y i -74 -KPX Y hyphen -74 -KPX Y e -92 -KPX Y comma -92 -KPX Y colon -65 -KPX Y a -92 -KPX Y A -70 - -KPX f quoteright 92 - -KPX one one -74 - -KPX quoteleft quoteleft -111 - -KPX quoteright t -111 -KPX quoteright space -111 -KPX quoteright s -129 -KPX quoteright quoteright -111 - -KPX r y 0 -KPX r x 0 -KPX r w 0 -KPX r v 0 -KPX r u 0 -KPX r t 0 -KPX r r 0 -KPX r quoteright 37 -KPX r q -37 -KPX r period -111 -KPX r o -37 -KPX r hyphen -20 -KPX r h -18 -KPX r g -37 -KPX r e -37 -KPX r d -37 -KPX r comma -111 -KPX r c -37 - -KPX space A -18 - -KPX v period -74 -KPX v comma -74 - -KPX w period -74 -KPX w comma -74 - -KPX y period -55 -KPX y comma -55 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 111 227 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 28 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 83 227 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 188 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 61 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 111 227 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 55 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 228 227 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 228 227 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 228 227 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 228 227 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 83 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 83 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 83 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 83 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 14 227 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 14 227 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 14 227 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 14 227 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -34 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -34 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -34 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -34 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 160 227 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 160 227 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 160 227 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 160 227 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 68 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 68 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 68 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 68 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 146 227 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 146 227 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 146 227 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 146 227 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 89 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 89 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 89 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 89 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 221 227 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 221 227 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 221 227 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 221 227 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 89 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 89 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 89 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 89 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 146 227 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 89 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 181 227 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 76 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 221 227 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 89 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 80 227 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 29 0 ; -EndComposites -EndFontMetrics diff --git a/misc/afm/TimesRo.afm b/misc/afm/TimesRo.afm deleted file mode 100644 index 3f8ce6b22a..0000000000 --- a/misc/afm/TimesRo.afm +++ /dev/null @@ -1,443 +0,0 @@ -StartFontMetrics 2.0 -Comment Copyright (c) 1984 Adobe Systems Incorporated. All Rights Reserved. -Comment Creation Date:Tue Aug 5 10:51:57 PDT 1986 -FontName Times-Roman -EncodingScheme AdobeStandardEncoding -FullName Times Roman -FamilyName Times -Weight Roman -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -109 -UnderlineThickness 49 -Version 001.001 -Notice Times Roman is a trademark of Allied Corporation. -FontBBox -170 -223 1024 896 -CapHeight 662 -XHeight 448 -Descender -217 -Ascender 682 -StartCharMetrics 228 -C 32 ; WX 250 ; N space ; B 0 0 0 0 ; -C 33 ; WX 333 ; N exclam ; B 109 -14 224 676 ; -C 34 ; WX 408 ; N quotedbl ; B 70 445 337 685 ; -C 35 ; WX 500 ; N numbersign ; B 4 0 495 662 ; -C 36 ; WX 500 ; N dollar ; B 44 -87 456 727 ; -C 37 ; WX 833 ; N percent ; B 61 -14 772 676 ; -C 38 ; WX 778 ; N ampersand ; B 42 -14 750 676 ; -C 39 ; WX 333 ; N quoteright ; B 103 432 242 676 ; -C 40 ; WX 333 ; N parenleft ; B 49 -177 304 676 ; -C 41 ; WX 333 ; N parenright ; B 29 -177 284 676 ; -C 42 ; WX 500 ; N asterisk ; B 64 265 437 683 ; -C 43 ; WX 564 ; N plus ; B 30 7 534 512 ; -C 44 ; WX 250 ; N comma ; B 63 -143 202 101 ; -C 45 ; WX 333 ; N hyphen ; B 43 194 289 257 ; -C 46 ; WX 250 ; N period ; B 68 -14 183 101 ; -C 47 ; WX 278 ; N slash ; B -12 -108 302 682 ; -C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; -C 49 ; WX 500 ; N one ; B 111 0 394 676 ; -C 50 ; WX 500 ; N two ; B 30 0 475 676 ; -C 51 ; WX 500 ; N three ; B 44 -14 431 676 ; -C 52 ; WX 500 ; N four ; B 12 0 472 676 ; -C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; -C 54 ; WX 500 ; N six ; B 35 -14 468 682 ; -C 55 ; WX 500 ; N seven ; B 20 -14 449 662 ; -C 56 ; WX 500 ; N eight ; B 53 -14 442 676 ; -C 57 ; WX 500 ; N nine ; B 30 -22 460 676 ; -C 58 ; WX 278 ; N colon ; B 81 -14 196 458 ; -C 59 ; WX 278 ; N semicolon ; B 63 -143 202 458 ; -C 60 ; WX 564 ; N less ; B 27 0 536 522 ; -C 61 ; WX 564 ; N equal ; B 30 132 534 390 ; -C 62 ; WX 564 ; N greater ; B 27 0 536 522 ; -C 63 ; WX 444 ; N question ; B 49 -14 395 676 ; -C 64 ; WX 921 ; N at ; B 0 -155 819 675 ; -C 65 ; WX 722 ; N A ; B 15 0 706 676 ; -C 66 ; WX 667 ; N B ; B 20 0 596 662 ; -C 67 ; WX 667 ; N C ; B 33 -14 637 676 ; -C 68 ; WX 722 ; N D ; B 20 0 689 662 ; -C 69 ; WX 611 ; N E ; B 12 0 597 662 ; -C 70 ; WX 556 ; N F ; B 12 0 544 662 ; -C 71 ; WX 722 ; N G ; B 27 -14 704 676 ; -C 72 ; WX 722 ; N H ; B 20 0 703 662 ; -C 73 ; WX 333 ; N I ; B 18 0 316 662 ; -C 74 ; WX 389 ; N J ; B 10 -14 376 662 ; -C 75 ; WX 722 ; N K ; B 20 0 709 662 ; -C 76 ; WX 611 ; N L ; B 12 0 598 662 ; -C 77 ; WX 889 ; N M ; B 19 0 871 662 ; -C 78 ; WX 722 ; N N ; B 12 -14 709 662 ; -C 79 ; WX 722 ; N O ; B 33 -14 688 676 ; -C 80 ; WX 556 ; N P ; B 11 0 542 662 ; -C 81 ; WX 722 ; N Q ; B 33 -177 701 676 ; -C 82 ; WX 667 ; N R ; B 12 0 654 662 ; -C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; -C 84 ; WX 611 ; N T ; B 18 0 594 662 ; -C 85 ; WX 722 ; N U ; B 16 -14 705 662 ; -C 86 ; WX 722 ; N V ; B 20 -14 701 662 ; -C 87 ; WX 944 ; N W ; B 9 -14 936 662 ; -C 88 ; WX 722 ; N X ; B 12 0 706 662 ; -C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; -C 90 ; WX 611 ; N Z ; B 7 0 597 662 ; -C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; -C 92 ; WX 278 ; N backslash ; B -83 0 361 682 ; -C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; -C 94 ; WX 469 ; N asciicircum ; B 13 256 456 662 ; -C 95 ; WX 500 ; N underscore ; B 0 -133 500 -84 ; -C 96 ; WX 333 ; N quoteleft ; B 91 432 230 676 ; -C 97 ; WX 444 ; N a ; B 37 -10 442 458 ; -C 98 ; WX 500 ; N b ; B 9 -10 474 682 ; -C 99 ; WX 444 ; N c ; B 25 -10 412 458 ; -C 100 ; WX 500 ; N d ; B 26 -13 491 682 ; -C 101 ; WX 444 ; N e ; B 22 -10 421 458 ; -C 102 ; WX 333 ; N f ; B 20 0 383 682 ; L i fi ; L l fl ; -C 103 ; WX 500 ; N g ; B 27 -217 470 458 ; -C 104 ; WX 500 ; N h ; B 9 0 490 682 ; -C 105 ; WX 278 ; N i ; B 22 0 259 682 ; -C 106 ; WX 278 ; N j ; B -54 -217 212 682 ; -C 107 ; WX 500 ; N k ; B 1 0 500 682 ; -C 108 ; WX 278 ; N l ; B 20 0 259 682 ; -C 109 ; WX 778 ; N m ; B 13 0 764 458 ; -C 110 ; WX 500 ; N n ; B 9 0 490 458 ; -C 111 ; WX 500 ; N o ; B 30 -10 470 458 ; -C 112 ; WX 500 ; N p ; B 2 -217 470 458 ; -C 113 ; WX 500 ; N q ; B 24 -217 498 459 ; -C 114 ; WX 333 ; N r ; B 4 0 335 458 ; -C 115 ; WX 389 ; N s ; B 51 -10 348 458 ; -C 116 ; WX 278 ; N t ; B 13 -10 279 580 ; -C 117 ; WX 500 ; N u ; B 9 -10 479 448 ; -C 118 ; WX 500 ; N v ; B 10 -10 468 448 ; -C 119 ; WX 722 ; N w ; B 21 -10 694 448 ; -C 120 ; WX 500 ; N x ; B 17 0 479 448 ; -C 121 ; WX 500 ; N y ; B 15 -217 476 448 ; -C 122 ; WX 444 ; N z ; B 25 0 418 448 ; -C 123 ; WX 480 ; N braceleft ; B 110 -165 341 682 ; -C 124 ; WX 200 ; N bar ; B 68 0 132 682 ; -C 125 ; WX 480 ; N braceright ; B 139 -165 370 682 ; -C 126 ; WX 541 ; N asciitilde ; B 18 176 522 347 ; -C 161 ; WX 333 ; N exclamdown ; B 109 -217 224 458 ; -C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; -C 163 ; WX 500 ; N sterling ; B 11 -14 491 676 ; -C 164 ; WX 167 ; N fraction ; B -170 -14 346 676 ; -C 165 ; WX 500 ; N yen ; B -43 0 502 662 ; -C 166 ; WX 500 ; N florin ; B 6 -185 490 676 ; -C 167 ; WX 500 ; N section ; B 72 -148 426 676 ; -C 168 ; WX 500 ; N currency ; B -2 99 503 600 ; -C 169 ; WX 180 ; N quotesingle ; B 47 445 133 685 ; -C 170 ; WX 444 ; N quotedblleft ; B 27 432 399 676 ; -C 171 ; WX 500 ; N guillemotleft ; B 32 35 449 422 ; -C 172 ; WX 333 ; N guilsinglleft ; B 45 35 271 422 ; -C 173 ; WX 333 ; N guilsinglright ; B 62 36 288 423 ; -C 174 ; WX 556 ; N fi ; B 33 0 521 678 ; -C 175 ; WX 556 ; N fl ; B 29 0 521 682 ; -C 177 ; WX 500 ; N endash ; B -7 201 507 250 ; -C 178 ; WX 500 ; N dagger ; B 54 -149 440 676 ; -C 179 ; WX 500 ; N daggerdbl ; B 54 -153 439 676 ; -C 180 ; WX 250 ; N periodcentered ; B 68 204 183 319 ; -C 182 ; WX 453 ; N paragraph ; B 0 -207 373 662 ; -C 183 ; WX 350 ; N bullet ; B 50 175 300 425 ; -C 184 ; WX 333 ; N quotesinglbase ; B 103 -143 242 101 ; -C 185 ; WX 444 ; N quotedblbase ; B 45 -143 417 101 ; -C 186 ; WX 444 ; N quotedblright ; B 45 432 417 676 ; -C 187 ; WX 500 ; N guillemotright ; B 51 35 468 422 ; -C 188 ; WX 1000 ; N ellipsis ; B 110 -14 891 101 ; -C 189 ; WX 1000 ; N perthousand ; B 3 -14 1024 676 ; -C 191 ; WX 444 ; N questiondown ; B 49 -217 395 458 ; -C 193 ; WX 333 ; N grave ; B 16 507 243 678 ; -C 194 ; WX 333 ; N acute ; B 93 507 317 678 ; -C 195 ; WX 333 ; N circumflex ; B 11 507 323 674 ; -C 196 ; WX 333 ; N tilde ; B 1 532 332 638 ; -C 197 ; WX 333 ; N macron ; B 11 547 323 601 ; -C 198 ; WX 333 ; N breve ; B 26 507 308 664 ; -C 199 ; WX 333 ; N dotaccent ; B 116 523 216 623 ; -C 200 ; WX 333 ; N dieresis ; B 18 523 316 623 ; -C 202 ; WX 333 ; N ring ; B 67 483 266 682 ; -C 203 ; WX 333 ; N cedilla ; B 53 -215 262 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 8 528 372 700 ; -C 206 ; WX 333 ; N ogonek ; B 68 -155 245 -10 ; -C 207 ; WX 333 ; N caron ; B 11 507 323 674 ; -C 208 ; WX 1000 ; N emdash ; B -8 201 1007 250 ; -C 225 ; WX 889 ; N AE ; B 5 0 869 662 ; -C 227 ; WX 276 ; N ordfeminine ; B 15 307 278 676 ; -C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; -C 233 ; WX 722 ; N Oslash ; B 33 -80 688 734 ; -C 234 ; WX 889 ; N OE ; B 21 -7 877 669 ; -C 235 ; WX 310 ; N ordmasculine ; B 15 307 301 676 ; -C 241 ; WX 667 ; N ae ; B 38 -10 634 458 ; -C 245 ; WX 278 ; N dotlessi ; B 22 0 259 458 ; -C 248 ; WX 278 ; N lslash ; B 20 0 259 682 ; -C 249 ; WX 500 ; N oslash ; B 30 -108 470 549 ; -C 250 ; WX 722 ; N oe ; B 30 -10 690 458 ; -C 251 ; WX 500 ; N germandbls ; B 12 -10 468 682 ; -C -1 ; WX 722 ; N Aacute ; B 15 0 706 892 ; -C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 888 ; -C -1 ; WX 722 ; N Adieresis ; B 15 0 706 837 ; -C -1 ; WX 722 ; N Agrave ; B 15 0 706 892 ; -C -1 ; WX 722 ; N Aring ; B 15 0 706 896 ; -C -1 ; WX 722 ; N Atilde ; B 15 0 706 852 ; -C -1 ; WX 667 ; N Ccedilla ; B 33 -215 637 676 ; -C -1 ; WX 611 ; N Eacute ; B 12 0 597 892 ; -C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 888 ; -C -1 ; WX 611 ; N Edieresis ; B 12 0 597 837 ; -C -1 ; WX 611 ; N Egrave ; B 12 0 597 892 ; -C -1 ; WX 722 ; N Eth ; B 20 0 689 662 ; -C -1 ; WX 333 ; N Iacute ; B 18 0 317 892 ; -C -1 ; WX 333 ; N Icircumflex ; B 11 0 323 888 ; -C -1 ; WX 333 ; N Idieresis ; B 18 0 316 837 ; -C -1 ; WX 333 ; N Igrave ; B 16 0 316 892 ; -C -1 ; WX 722 ; N Ntilde ; B 12 -14 709 852 ; -C -1 ; WX 722 ; N Oacute ; B 33 -14 688 892 ; -C -1 ; WX 722 ; N Ocircumflex ; B 33 -14 688 888 ; -C -1 ; WX 722 ; N Odieresis ; B 33 -14 688 837 ; -C -1 ; WX 722 ; N Ograve ; B 33 -14 688 892 ; -C -1 ; WX 722 ; N Otilde ; B 33 -14 688 852 ; -C -1 ; WX 556 ; N Scaron ; B 42 -14 491 888 ; -C -1 ; WX 556 ; N Thorn ; B 11 0 542 662 ; -C -1 ; WX 722 ; N Uacute ; B 16 -14 705 892 ; -C -1 ; WX 722 ; N Ucircumflex ; B 16 -14 705 888 ; -C -1 ; WX 722 ; N Udieresis ; B 16 -14 705 837 ; -C -1 ; WX 722 ; N Ugrave ; B 16 -14 705 892 ; -C -1 ; WX 722 ; N Yacute ; B 22 0 703 892 ; -C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 837 ; -C -1 ; WX 611 ; N Zcaron ; B 7 0 597 888 ; -C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; -C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; -C -1 ; WX 444 ; N adieresis ; B 37 -10 442 623 ; -C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; -C -1 ; WX 444 ; N aring ; B 37 -10 442 682 ; -C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; -C -1 ; WX 200 ; N brokenbar ; B 68 0 132 682 ; -C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 458 ; -C -1 ; WX 760 ; N copyright ; B 42 -14 717 676 ; -C -1 ; WX 400 ; N degree ; B 50 376 350 676 ; -C -1 ; WX 564 ; N divide ; B 30 10 534 512 ; -C -1 ; WX 444 ; N eacute ; B 22 -10 421 678 ; -C -1 ; WX 444 ; N ecircumflex ; B 22 -10 421 674 ; -C -1 ; WX 444 ; N edieresis ; B 22 -10 421 623 ; -C -1 ; WX 444 ; N egrave ; B 22 -10 421 678 ; -C -1 ; WX 500 ; N eth ; B 30 -10 470 682 ; -C -1 ; WX 278 ; N iacute ; B 22 0 290 678 ; -C -1 ; WX 278 ; N icircumflex ; B -16 0 296 674 ; -C -1 ; WX 278 ; N idieresis ; B -9 0 289 623 ; -C -1 ; WX 278 ; N igrave ; B -11 0 259 678 ; -C -1 ; WX 564 ; N logicalnot ; B 30 120 534 390 ; -C -1 ; WX 564 ; N minus ; B 30 229 534 293 ; -C -1 ; WX 500 ; N mu ; B 9 -223 479 448 ; -C -1 ; WX 564 ; N multiply ; B 30 8 534 512 ; -C -1 ; WX 500 ; N ntilde ; B 9 0 490 638 ; -C -1 ; WX 500 ; N oacute ; B 30 -10 470 678 ; -C -1 ; WX 500 ; N ocircumflex ; B 30 -10 470 674 ; -C -1 ; WX 500 ; N odieresis ; B 30 -10 470 623 ; -C -1 ; WX 500 ; N ograve ; B 30 -10 470 678 ; -C -1 ; WX 750 ; N onehalf ; B 30 -14 720 676 ; -C -1 ; WX 750 ; N onequarter ; B 30 -14 720 676 ; -C -1 ; WX 300 ; N onesuperior ; B 58 270 242 676 ; -C -1 ; WX 500 ; N otilde ; B 30 -10 470 638 ; -C -1 ; WX 564 ; N plusminus ; B 30 0 534 612 ; -C -1 ; WX 760 ; N registered ; B 43 -14 718 676 ; -C -1 ; WX 389 ; N scaron ; B 39 -10 351 674 ; -C -1 ; WX 500 ; N thorn ; B 2 -217 470 682 ; -C -1 ; WX 750 ; N threequarters ; B 30 -14 720 676 ; -C -1 ; WX 300 ; N threesuperior ; B 24 262 275 676 ; -C -1 ; WX 980 ; N trademark ; B 35 258 945 662 ; -C -1 ; WX 300 ; N twosuperior ; B 5 270 294 676 ; -C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; -C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; -C -1 ; WX 500 ; N udieresis ; B 9 -10 479 623 ; -C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; -C -1 ; WX 500 ; N yacute ; B 15 -217 476 678 ; -C -1 ; WX 500 ; N ydieresis ; B 15 -217 476 623 ; -C -1 ; WX 444 ; N zcaron ; B 25 0 418 674 ; -EndCharMetrics -StartKernData -StartKernPairs 113 - -KPX A y -92 -KPX A w -92 -KPX A v -74 -KPX A space -55 -KPX A quoteright -111 -KPX A Y -92 -KPX A W -80 -KPX A V -129 -KPX A T -111 - -KPX F period -80 -KPX F comma -80 -KPX F A -74 - -KPX L y -55 -KPX L space -37 -KPX L quoteright -92 -KPX L Y -100 -KPX L W -74 -KPX L V -92 -KPX L T -92 - -KPX P space -37 -KPX P period -111 -KPX P comma -111 -KPX P A -92 - -KPX R y -40 -KPX R Y -55 -KPX R W -55 -KPX R V -80 -KPX R T -60 - -KPX T y -70 -KPX T w -70 -KPX T u -35 -KPX T space -18 -KPX T semicolon -55 -KPX T s -70 -KPX T r -35 -KPX T period -74 -KPX T o -70 -KPX T i -35 -KPX T hyphen -92 -KPX T e -70 -KPX T comma -74 -KPX T colon -50 -KPX T c -70 -KPX T a -70 -KPX T O -18 -KPX T A -80 - -KPX V y -111 -KPX V u -60 -KPX V space -18 -KPX V semicolon -74 -KPX V r -60 -KPX V period -129 -KPX V o -129 -KPX V i -60 -KPX V hyphen -92 -KPX V e -111 -KPX V comma -129 -KPX V colon -74 -KPX V a -111 -KPX V A -129 - -KPX W y -60 -KPX W u -40 -KPX W space -18 -KPX W semicolon -37 -KPX W r -40 -KPX W period -92 -KPX W o -80 -KPX W i -40 -KPX W hyphen -55 -KPX W e -80 -KPX W comma -92 -KPX W colon -37 -KPX W a -80 -KPX W A -111 - -KPX Y v -100 -KPX Y u -111 -KPX Y space -37 -KPX Y semicolon -92 -KPX Y q -111 -KPX Y period -129 -KPX Y p -92 -KPX Y o -100 -KPX Y i -55 -KPX Y hyphen -111 -KPX Y e -100 -KPX Y comma -129 -KPX Y colon -92 -KPX Y a -100 -KPX Y A -111 - -KPX f quoteright 55 -KPX f f -18 - -KPX one one -37 - -KPX quoteleft quoteleft -74 - -KPX quoteright t -18 -KPX quoteright space -74 -KPX quoteright s -55 -KPX quoteright quoteright -74 - -KPX r quoteright 37 -KPX r period -55 -KPX r hyphen -20 -KPX r g -18 -KPX r comma -40 - -KPX space Y -37 -KPX space W -18 -KPX space V -18 -KPX space T -18 -KPX space A -55 - -KPX v period -65 -KPX v comma -65 - -KPX w period -65 -KPX w comma -65 - -KPX y period -65 -KPX y comma -65 -EndKernPairs -EndKernData -StartComposites 56 -CC Zcaron 2 ; PCC Z 0 0 ; PCC caron 139 214 ; -CC zcaron 2 ; PCC z 0 0 ; PCC caron 55 0 ; -CC Scaron 2 ; PCC S 0 0 ; PCC caron 111 214 ; -CC scaron 2 ; PCC s 0 0 ; PCC caron 28 0 ; -CC Ccedilla 2 ; PCC C 0 0 ; PCC cedilla 167 0 ; -CC ccedilla 2 ; PCC c 0 0 ; PCC cedilla 55 0 ; -CC Ydieresis 2 ; PCC Y 0 0 ; PCC dieresis 194 214 ; -CC ydieresis 2 ; PCC y 0 0 ; PCC dieresis 83 0 ; -CC Uacute 2 ; PCC U 0 0 ; PCC acute 194 214 ; -CC Ucircumflex 2 ; PCC U 0 0 ; PCC circumflex 194 214 ; -CC Udieresis 2 ; PCC U 0 0 ; PCC dieresis 194 214 ; -CC Ugrave 2 ; PCC U 0 0 ; PCC grave 194 214 ; -CC uacute 2 ; PCC u 0 0 ; PCC acute 83 0 ; -CC ucircumflex 2 ; PCC u 0 0 ; PCC circumflex 83 0 ; -CC udieresis 2 ; PCC u 0 0 ; PCC dieresis 83 0 ; -CC ugrave 2 ; PCC u 0 0 ; PCC grave 83 0 ; -CC Iacute 2 ; PCC I 0 0 ; PCC acute 0 214 ; -CC Icircumflex 2 ; PCC I 0 0 ; PCC circumflex 0 214 ; -CC Idieresis 2 ; PCC I 0 0 ; PCC dieresis 0 214 ; -CC Igrave 2 ; PCC I 0 0 ; PCC grave 0 214 ; -CC iacute 2 ; PCC dotlessi 0 0 ; PCC acute -27 0 ; -CC icircumflex 2 ; PCC dotlessi 0 0 ; PCC circumflex -27 0 ; -CC idieresis 2 ; PCC dotlessi 0 0 ; PCC dieresis -27 0 ; -CC igrave 2 ; PCC dotlessi 0 0 ; PCC grave -27 0 ; -CC Eacute 2 ; PCC E 0 0 ; PCC acute 139 214 ; -CC Ecircumflex 2 ; PCC E 0 0 ; PCC circumflex 139 214 ; -CC Edieresis 2 ; PCC E 0 0 ; PCC dieresis 139 214 ; -CC Egrave 2 ; PCC E 0 0 ; PCC grave 139 214 ; -CC eacute 2 ; PCC e 0 0 ; PCC acute 55 0 ; -CC ecircumflex 2 ; PCC e 0 0 ; PCC circumflex 55 0 ; -CC edieresis 2 ; PCC e 0 0 ; PCC dieresis 55 0 ; -CC egrave 2 ; PCC e 0 0 ; PCC grave 55 0 ; -CC Aacute 2 ; PCC A 0 0 ; PCC acute 194 214 ; -CC Acircumflex 2 ; PCC A 0 0 ; PCC circumflex 194 214 ; -CC Adieresis 2 ; PCC A 0 0 ; PCC dieresis 194 214 ; -CC Agrave 2 ; PCC A 0 0 ; PCC grave 194 214 ; -CC aacute 2 ; PCC a 0 0 ; PCC acute 55 0 ; -CC acircumflex 2 ; PCC a 0 0 ; PCC circumflex 55 0 ; -CC adieresis 2 ; PCC a 0 0 ; PCC dieresis 55 0 ; -CC agrave 2 ; PCC a 0 0 ; PCC grave 55 0 ; -CC Oacute 2 ; PCC O 0 0 ; PCC acute 194 214 ; -CC Ocircumflex 2 ; PCC O 0 0 ; PCC circumflex 194 214 ; -CC Odieresis 2 ; PCC O 0 0 ; PCC dieresis 194 214 ; -CC Ograve 2 ; PCC O 0 0 ; PCC grave 194 214 ; -CC oacute 2 ; PCC o 0 0 ; PCC acute 83 0 ; -CC ocircumflex 2 ; PCC o 0 0 ; PCC circumflex 83 0 ; -CC odieresis 2 ; PCC o 0 0 ; PCC dieresis 83 0 ; -CC ograve 2 ; PCC o 0 0 ; PCC grave 83 0 ; -CC Atilde 2 ; PCC A 0 0 ; PCC tilde 194 214 ; -CC atilde 2 ; PCC a 0 0 ; PCC tilde 55 0 ; -CC Ntilde 2 ; PCC N 0 0 ; PCC tilde 194 214 ; -CC ntilde 2 ; PCC n 0 0 ; PCC tilde 83 0 ; -CC Otilde 2 ; PCC O 0 0 ; PCC tilde 194 214 ; -CC otilde 2 ; PCC o 0 0 ; PCC tilde 83 0 ; -CC Aring 2 ; PCC A 0 0 ; PCC ring 194 214 ; -CC aring 2 ; PCC a 0 0 ; PCC ring 55 0 ; -EndComposites -EndFontMetrics diff --git a/misc/gs_afm/.cvsignore b/misc/gs_afm/.cvsignore deleted file mode 100644 index 982c36f56d..0000000000 --- a/misc/gs_afm/.cvsignore +++ /dev/null @@ -1,32 +0,0 @@ -system.list -bin -.gdb_history -Test -config.cache -config.status -system.list -linux.system.cache -wx-config -config.log -linux-gnu.system.cache -*.dsp -*.dsw -*.plg -*.opt -*.aps -*.ncb -*.pro -*.opt -Release -Debug -ReleaseDLL -DebugDLL -robert -Makefile.in -setup.h.in -stamp-h.in -Makefile -configure -setup.h -stamp-h -libtool diff --git a/misc/gs_afm/Cour.afm b/misc/gs_afm/Cour.afm deleted file mode 100644 index 2ccfea4b0f..0000000000 --- a/misc/gs_afm/Cour.afm +++ /dev/null @@ -1,255 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/19/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusMonL-Regu -FullName Nimbus Mono L Regular -FamilyName Nimbus Mono L -Weight Regular -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -12 -216 612 811 -CapHeight 563 -XHeight 417 -Descender -186 -Ascender 604 -StartCharMetrics 232 -C 32 ; WX 600 ; N space ; B 295 0 295 0 ; -C 33 ; WX 600 ; N exclam ; B 240 -15 360 618 ; -C 34 ; WX 600 ; N quotedbl ; B 146 315 454 604 ; -C 35 ; WX 600 ; N numbersign ; B 92 -62 508 647 ; -C 36 ; WX 600 ; N dollar ; B 113 -92 487 655 ; -C 37 ; WX 600 ; N percent ; B 87 -12 513 611 ; -C 38 ; WX 600 ; N ampersand ; B 105 -16 478 519 ; -C 39 ; WX 600 ; N quoteright ; B 135 314 340 604 ; -C 40 ; WX 600 ; N parenleft ; B 294 -124 458 604 ; -C 41 ; WX 600 ; N parenright ; B 147 -124 311 604 ; -C 42 ; WX 600 ; N asterisk ; B 113 250 487 604 ; -C 43 ; WX 600 ; N plus ; B 72 32 528 530 ; -C 44 ; WX 600 ; N comma ; B 135 -145 340 145 ; -C 45 ; WX 600 ; N hyphen ; B 72 258 528 299 ; -C 46 ; WX 600 ; N period ; B 226 -15 374 116 ; -C 47 ; WX 600 ; N slash ; B 113 -81 487 668 ; -C 48 ; WX 600 ; N zero ; B 113 -15 487 618 ; -C 49 ; WX 600 ; N one ; B 113 0 487 612 ; -C 50 ; WX 600 ; N two ; B 84 0 478 618 ; -C 51 ; WX 600 ; N three ; B 96 -15 499 618 ; -C 52 ; WX 600 ; N four ; B 105 0 478 604 ; -C 53 ; WX 600 ; N five ; B 96 -15 499 604 ; -C 54 ; WX 600 ; N six ; B 136 -15 510 618 ; -C 55 ; WX 600 ; N seven ; B 105 -1 478 604 ; -C 56 ; WX 600 ; N eight ; B 113 -15 487 618 ; -C 57 ; WX 600 ; N nine ; B 136 -15 510 618 ; -C 58 ; WX 600 ; N colon ; B 226 -15 374 417 ; -C 59 ; WX 600 ; N semicolon ; B 139 -145 350 417 ; -C 60 ; WX 600 ; N less ; B 72 44 522 518 ; -C 61 ; WX 600 ; N equal ; B 51 190 549 375 ; -C 62 ; WX 600 ; N greater ; B 78 44 528 518 ; -C 63 ; WX 600 ; N question ; B 134 -15 487 577 ; -C 64 ; WX 600 ; N at ; B 105 -62 478 624 ; -C 65 ; WX 600 ; N A ; B 9 0 591 563 ; -C 66 ; WX 600 ; N B ; B 43 0 541 563 ; -C 67 ; WX 600 ; N C ; B 63 -16 534 576 ; -C 68 ; WX 600 ; N D ; B 43 0 520 563 ; -C 69 ; WX 600 ; N E ; B 43 0 520 563 ; -C 70 ; WX 600 ; N F ; B 43 0 520 563 ; -C 71 ; WX 600 ; N G ; B 63 -16 562 576 ; -C 72 ; WX 600 ; N H ; B 53 0 551 563 ; -C 73 ; WX 600 ; N I ; B 113 0 487 563 ; -C 74 ; WX 600 ; N J ; B 84 -16 583 563 ; -C 75 ; WX 600 ; N K ; B 43 0 572 563 ; -C 76 ; WX 600 ; N L ; B 63 0 541 563 ; -C 77 ; WX 600 ; N M ; B 11 0 593 563 ; -C 78 ; WX 600 ; N N ; B 22 0 562 563 ; -C 79 ; WX 600 ; N O ; B 51 -16 549 576 ; -C 80 ; WX 600 ; N P ; B 43 0 499 563 ; -C 81 ; WX 600 ; N Q ; B 51 -115 549 576 ; -C 82 ; WX 600 ; N R ; B 43 0 589 563 ; -C 83 ; WX 600 ; N S ; B 92 -16 508 576 ; -C 84 ; WX 600 ; N T ; B 72 0 528 563 ; -C 85 ; WX 600 ; N U ; B 40 -16 560 563 ; -C 86 ; WX 600 ; N V ; B 9 0 591 563 ; -C 87 ; WX 600 ; N W ; B 20 0 580 563 ; -C 88 ; WX 600 ; N X ; B 40 0 560 563 ; -C 89 ; WX 600 ; N Y ; B 51 0 549 563 ; -C 90 ; WX 600 ; N Z ; B 103 0 497 563 ; -C 91 ; WX 600 ; N bracketleft ; B 280 -124 445 604 ; -C 92 ; WX 600 ; N backslash ; B 113 -81 487 668 ; -C 93 ; WX 600 ; N bracketright ; B 155 -124 320 604 ; -C 94 ; WX 600 ; N asciicircum ; B 113 354 487 615 ; -C 95 ; WX 600 ; N underscore ; B -12 -125 612 -75 ; -C 96 ; WX 600 ; N quoteleft ; B 260 343 465 604 ; -C 97 ; WX 600 ; N a ; B 72 -16 541 431 ; -C 98 ; WX 600 ; N b ; B 22 -16 541 604 ; -C 99 ; WX 600 ; N c ; B 84 -16 535 431 ; -C 100 ; WX 600 ; N d ; B 63 -16 583 604 ; -C 101 ; WX 600 ; N e ; B 63 -16 520 431 ; -C 102 ; WX 600 ; N f ; B 105 0 541 604 ; -C 103 ; WX 600 ; N g ; B 63 -186 562 431 ; -C 104 ; WX 600 ; N h ; B 43 0 551 604 ; -C 105 ; WX 600 ; N i ; B 92 0 508 624 ; -C 106 ; WX 600 ; N j ; B 147 -186 458 624 ; -C 107 ; WX 600 ; N k ; B 63 0 541 604 ; -C 108 ; WX 600 ; N l ; B 92 0 508 604 ; -C 109 ; WX 600 ; N m ; B 11 0 593 431 ; -C 110 ; WX 600 ; N n ; B 53 0 541 431 ; -C 111 ; WX 600 ; N o ; B 72 -16 528 431 ; -C 112 ; WX 600 ; N p ; B 22 -186 541 431 ; -C 113 ; WX 600 ; N q ; B 63 -186 583 431 ; -C 114 ; WX 600 ; N r ; B 84 0 541 427 ; -C 115 ; WX 600 ; N s ; B 103 -16 497 431 ; -C 116 ; WX 600 ; N t ; B 43 -16 499 563 ; -C 117 ; WX 600 ; N u ; B 43 -16 541 417 ; -C 118 ; WX 600 ; N v ; B 30 0 570 417 ; -C 119 ; WX 600 ; N w ; B 30 0 570 417 ; -C 120 ; WX 600 ; N x ; B 51 0 549 417 ; -C 121 ; WX 600 ; N y ; B 51 -186 549 417 ; -C 122 ; WX 600 ; N z ; B 115 0 489 417 ; -C 123 ; WX 600 ; N braceleft ; B 197 -124 403 604 ; -C 124 ; WX 600 ; N bar ; B 280 -124 320 604 ; -C 125 ; WX 600 ; N braceright ; B 197 -124 403 604 ; -C 126 ; WX 600 ; N asciitilde ; B 92 212 508 348 ; -C 161 ; WX 600 ; N exclamdown ; B 240 -216 360 417 ; -C 162 ; WX 600 ; N cent ; B 113 -13 469 630 ; -C 163 ; WX 600 ; N sterling ; B 63 0 520 578 ; -C 164 ; WX 600 ; N fraction ; B 50 139 549 470 ; -C 165 ; WX 600 ; N yen ; B 51 0 549 563 ; -C 166 ; WX 600 ; N florin ; B 87 -93 518 618 ; -C 167 ; WX 600 ; N section ; B 66 -62 534 603 ; -C 168 ; WX 600 ; N currency ; B 103 95 497 489 ; -C 169 ; WX 600 ; N quotesingle ; B 236 315 364 604 ; -C 170 ; WX 600 ; N quotedblleft ; B 93 343 507 604 ; -C 171 ; WX 600 ; N guillemotleft ; B 63 0 541 417 ; -C 172 ; WX 600 ; N guilsinglleft ; B 63 0 312 417 ; -C 173 ; WX 600 ; N guilsinglright ; B 293 0 541 417 ; -C 174 ; WX 600 ; N fi ; B 10 0 585 624 ; -C 175 ; WX 600 ; N fl ; B 10 0 587 604 ; -C 177 ; WX 600 ; N endash ; B 72 261 528 302 ; -C 178 ; WX 600 ; N dagger ; B 124 -63 476 604 ; -C 179 ; WX 600 ; N daggerdbl ; B 124 -62 476 604 ; -C 180 ; WX 600 ; N periodcentered ; B 226 217 374 348 ; -C 182 ; WX 600 ; N paragraph ; B 79 -62 525 604 ; -C 183 ; WX 600 ; N bullet ; B 202 141 398 337 ; -C 184 ; WX 600 ; N quotesinglbase ; B 135 -145 340 145 ; -C 185 ; WX 600 ; N quotedblbase ; B 93 -116 507 145 ; -C 186 ; WX 600 ; N quotedblright ; B 93 343 507 604 ; -C 187 ; WX 600 ; N guillemotright ; B 63 0 541 417 ; -C 188 ; WX 600 ; N ellipsis ; B 51 -15 549 84 ; -C 189 ; WX 600 ; N perthousand ; B 34 -9 564 614 ; -C 191 ; WX 600 ; N questiondown ; B 113 -175 466 417 ; -C 193 ; WX 600 ; N grave ; B 155 490 320 639 ; -C 194 ; WX 600 ; N acute ; B 280 490 445 639 ; -C 195 ; WX 600 ; N circumflex ; B 155 490 445 639 ; -C 196 ; WX 600 ; N tilde ; B 145 516 455 605 ; -C 197 ; WX 600 ; N macron ; B 155 536 445 576 ; -C 198 ; WX 600 ; N breve ; B 155 490 445 620 ; -C 199 ; WX 600 ; N dotaccent ; B 250 511 350 611 ; -C 200 ; WX 600 ; N dieresis ; B 140 511 461 611 ; -C 202 ; WX 600 ; N ring ; B 207 480 393 661 ; -C 203 ; WX 600 ; N cedilla ; B 210 -173 377 0 ; -C 205 ; WX 600 ; N hungarumlaut ; B 155 490 445 633 ; -C 206 ; WX 600 ; N ogonek ; B 280 -155 433 0 ; -C 207 ; WX 600 ; N caron ; B 155 490 445 639 ; -C 208 ; WX 600 ; N emdash ; B 1 261 599 302 ; -C 225 ; WX 600 ; N AE ; B 10 0 590 563 ; -C 227 ; WX 600 ; N ordfeminine ; B 155 279 447 574 ; -C 232 ; WX 600 ; N Lslash ; B 43 0 541 563 ; -C 233 ; WX 600 ; N Oslash ; B 40 -43 560 605 ; -C 234 ; WX 600 ; N OE ; B 10 0 590 563 ; -C 235 ; WX 600 ; N ordmasculine ; B 154 284 448 577 ; -C 241 ; WX 600 ; N ae ; B 12 -16 578 431 ; -C 245 ; WX 600 ; N dotlessi ; B 92 0 508 417 ; -C 248 ; WX 600 ; N lslash ; B 92 0 508 604 ; -C 249 ; WX 600 ; N oslash ; B 53 -43 543 458 ; -C 250 ; WX 600 ; N oe ; B 12 -16 578 431 ; -C 251 ; WX 600 ; N germandbls ; B 43 -16 499 604 ; -C -1 ; WX 600 ; N Yacute ; B 51 0 549 789 ; -C -1 ; WX 600 ; N Ucircumflex ; B 40 -16 560 789 ; -C -1 ; WX 600 ; N Ugrave ; B 40 -16 560 789 ; -C -1 ; WX 600 ; N Zcaron ; B 103 0 497 789 ; -C -1 ; WX 600 ; N Ydieresis ; B 51 0 549 761 ; -C -1 ; WX 600 ; N threesuperior ; B 181 251 416 612 ; -C -1 ; WX 600 ; N Uacute ; B 40 -16 560 789 ; -C -1 ; WX 600 ; N twosuperior ; B 175 259 405 612 ; -C -1 ; WX 600 ; N Udieresis ; B 40 -16 560 761 ; -C -1 ; WX 600 ; N middot ; B 226 217 374 348 ; -C -1 ; WX 600 ; N onesuperior ; B 191 259 410 612 ; -C -1 ; WX 600 ; N aacute ; B 72 -16 541 639 ; -C -1 ; WX 600 ; N agrave ; B 72 -16 541 639 ; -C -1 ; WX 600 ; N acircumflex ; B 72 -16 541 639 ; -C -1 ; WX 600 ; N Scaron ; B 92 -16 508 789 ; -C -1 ; WX 600 ; N Otilde ; B 51 -16 549 755 ; -C -1 ; WX 600 ; N sfthyphen ; B 72 258 528 299 ; -C -1 ; WX 600 ; N atilde ; B 72 -16 541 605 ; -C -1 ; WX 600 ; N aring ; B 72 -16 541 661 ; -C -1 ; WX 600 ; N adieresis ; B 72 -16 541 611 ; -C -1 ; WX 600 ; N Ograve ; B 51 -16 549 789 ; -C -1 ; WX 600 ; N Ocircumflex ; B 51 -16 549 789 ; -C -1 ; WX 600 ; N Odieresis ; B 51 -16 549 761 ; -C -1 ; WX 600 ; N Ntilde ; B 22 0 562 755 ; -C -1 ; WX 600 ; N edieresis ; B 63 -16 520 611 ; -C -1 ; WX 600 ; N eacute ; B 63 -16 520 639 ; -C -1 ; WX 600 ; N egrave ; B 63 -16 520 639 ; -C -1 ; WX 600 ; N Icircumflex ; B 113 0 487 789 ; -C -1 ; WX 600 ; N ecircumflex ; B 63 -16 520 639 ; -C -1 ; WX 600 ; N Igrave ; B 113 0 487 789 ; -C -1 ; WX 600 ; N Iacute ; B 113 0 487 789 ; -C -1 ; WX 600 ; N Idieresis ; B 113 0 487 761 ; -C -1 ; WX 600 ; N degree ; B 155 346 445 636 ; -C -1 ; WX 600 ; N Ecircumflex ; B 43 0 520 789 ; -C -1 ; WX 600 ; N minus ; B 72 261 528 302 ; -C -1 ; WX 600 ; N multiply ; B 118 100 482 464 ; -C -1 ; WX 600 ; N divide ; B 72 25 528 540 ; -C -1 ; WX 600 ; N Egrave ; B 43 0 520 789 ; -C -1 ; WX 600 ; N trademark ; B 4 243 598 563 ; -C -1 ; WX 600 ; N Oacute ; B 51 -16 549 789 ; -C -1 ; WX 600 ; N thorn ; B 22 -186 541 590 ; -C -1 ; WX 600 ; N eth ; B 72 -17 528 620 ; -C -1 ; WX 600 ; N Eacute ; B 43 0 520 789 ; -C -1 ; WX 600 ; N ccedilla ; B 84 -173 535 431 ; -C -1 ; WX 600 ; N idieresis ; B 92 0 508 611 ; -C -1 ; WX 600 ; N iacute ; B 92 0 508 639 ; -C -1 ; WX 600 ; N igrave ; B 92 0 508 639 ; -C -1 ; WX 600 ; N plusminus ; B 72 0 528 529 ; -C -1 ; WX 600 ; N onehalf ; B 23 0 573 612 ; -C -1 ; WX 600 ; N onequarter ; B 16 0 580 612 ; -C -1 ; WX 600 ; N threequarters ; B 6 0 580 612 ; -C -1 ; WX 600 ; N icircumflex ; B 92 0 508 639 ; -C -1 ; WX 600 ; N Edieresis ; B 43 0 520 761 ; -C -1 ; WX 600 ; N ntilde ; B 53 0 541 605 ; -C -1 ; WX 600 ; N Aring ; B 9 0 591 811 ; -C -1 ; WX 600 ; N odieresis ; B 72 -16 528 611 ; -C -1 ; WX 600 ; N oacute ; B 72 -16 528 639 ; -C -1 ; WX 600 ; N ograve ; B 72 -16 528 639 ; -C -1 ; WX 600 ; N ocircumflex ; B 72 -16 528 639 ; -C -1 ; WX 600 ; N otilde ; B 72 -16 528 605 ; -C -1 ; WX 600 ; N scaron ; B 103 -16 497 639 ; -C -1 ; WX 600 ; N udieresis ; B 43 -16 541 611 ; -C -1 ; WX 600 ; N uacute ; B 43 -16 541 639 ; -C -1 ; WX 600 ; N ugrave ; B 43 -16 541 639 ; -C -1 ; WX 600 ; N ucircumflex ; B 43 -16 541 639 ; -C -1 ; WX 600 ; N yacute ; B 51 -186 549 639 ; -C -1 ; WX 600 ; N zcaron ; B 115 0 489 639 ; -C -1 ; WX 600 ; N ydieresis ; B 51 -186 549 611 ; -C -1 ; WX 600 ; N copyright ; B 3 -15 596 578 ; -C -1 ; WX 600 ; N registered ; B 3 -15 596 578 ; -C -1 ; WX 600 ; N Atilde ; B 9 0 591 755 ; -C -1 ; WX 600 ; N nbspace ; B 295 0 295 0 ; -C -1 ; WX 600 ; N Ccedilla ; B 63 -173 534 576 ; -C -1 ; WX 600 ; N Acircumflex ; B 9 0 591 789 ; -C -1 ; WX 600 ; N Agrave ; B 9 0 591 789 ; -C -1 ; WX 600 ; N logicalnot ; B 72 168 528 438 ; -C -1 ; WX 600 ; N Aacute ; B 9 0 591 789 ; -C -1 ; WX 600 ; N Eth ; B 0 0 520 563 ; -C -1 ; WX 600 ; N brokenbar ; B 280 -124 320 604 ; -C -1 ; WX 600 ; N Thorn ; B 43 0 499 563 ; -C -1 ; WX 600 ; N Adieresis ; B 9 0 591 761 ; -C -1 ; WX 600 ; N mu ; B 43 -200 541 417 ; -C -1 ; WX 600 ; N .notdef ; B 295 0 295 0 ; -EndCharMetrics -EndFontMetrics diff --git a/misc/gs_afm/CourBo.afm b/misc/gs_afm/CourBo.afm deleted file mode 100644 index 2ea312d1fb..0000000000 --- a/misc/gs_afm/CourBo.afm +++ /dev/null @@ -1,255 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/3/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusMonL-Bold -FullName Nimbus Mono L Bold -FamilyName Nimbus Mono L -Weight Bold -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -43 -229 630 871 -CapHeight 583 -XHeight 437 -Descender -205 -Ascender 624 -StartCharMetrics 232 -C 32 ; WX 600 ; N space ; B 375 0 375 0 ; -C 33 ; WX 600 ; N exclam ; B 220 -15 381 638 ; -C 34 ; WX 600 ; N quotedbl ; B 136 312 464 602 ; -C 35 ; WX 600 ; N numbersign ; B 62 -92 538 675 ; -C 36 ; WX 600 ; N dollar ; B 83 -123 517 684 ; -C 37 ; WX 600 ; N percent ; B 80 -15 521 617 ; -C 38 ; WX 600 ; N ampersand ; B 75 -14 508 550 ; -C 39 ; WX 600 ; N quoteright ; B 147 331 351 623 ; -C 40 ; WX 600 ; N parenleft ; B 264 -153 488 632 ; -C 41 ; WX 600 ; N parenright ; B 117 -153 341 632 ; -C 42 ; WX 600 ; N asterisk ; B 83 208 517 622 ; -C 43 ; WX 600 ; N plus ; B 42 0 558 560 ; -C 44 ; WX 600 ; N comma ; B 147 -158 351 134 ; -C 45 ; WX 600 ; N hyphen ; B 42 229 558 329 ; -C 46 ; WX 600 ; N period ; B 225 -15 375 117 ; -C 47 ; WX 600 ; N slash ; B 83 -113 517 695 ; -C 48 ; WX 600 ; N zero ; B 83 -15 517 638 ; -C 49 ; WX 600 ; N one ; B 83 0 517 638 ; -C 50 ; WX 600 ; N two ; B 54 0 508 638 ; -C 51 ; WX 600 ; N three ; B 66 -15 529 638 ; -C 52 ; WX 600 ; N four ; B 75 0 508 622 ; -C 53 ; WX 600 ; N five ; B 66 -15 529 622 ; -C 54 ; WX 600 ; N six ; B 105 -15 540 638 ; -C 55 ; WX 600 ; N seven ; B 75 -1 508 622 ; -C 56 ; WX 600 ; N eight ; B 83 -15 517 638 ; -C 57 ; WX 600 ; N nine ; B 106 -15 541 638 ; -C 58 ; WX 600 ; N colon ; B 225 -15 375 437 ; -C 59 ; WX 600 ; N semicolon ; B 147 -158 351 437 ; -C 60 ; WX 600 ; N less ; B 42 54 544 501 ; -C 61 ; WX 600 ; N equal ; B 42 138 558 422 ; -C 62 ; WX 600 ; N greater ; B 56 53 558 500 ; -C 63 ; WX 600 ; N question ; B 104 -15 517 598 ; -C 64 ; WX 600 ; N at ; B 76 -151 509 620 ; -C 65 ; WX 600 ; N A ; B -21 0 621 583 ; -C 66 ; WX 600 ; N B ; B 13 0 571 583 ; -C 67 ; WX 600 ; N C ; B 33 -14 564 597 ; -C 68 ; WX 600 ; N D ; B 13 0 550 583 ; -C 69 ; WX 600 ; N E ; B 13 0 550 583 ; -C 70 ; WX 600 ; N F ; B 13 0 550 583 ; -C 71 ; WX 600 ; N G ; B 33 -14 592 597 ; -C 72 ; WX 600 ; N H ; B 23 0 581 583 ; -C 73 ; WX 600 ; N I ; B 83 0 517 583 ; -C 74 ; WX 600 ; N J ; B 54 -14 613 583 ; -C 75 ; WX 600 ; N K ; B 13 0 602 584 ; -C 76 ; WX 600 ; N L ; B 33 0 571 583 ; -C 77 ; WX 600 ; N M ; B -19 0 623 584 ; -C 78 ; WX 600 ; N N ; B -8 0 592 583 ; -C 79 ; WX 600 ; N O ; B 21 -14 579 597 ; -C 80 ; WX 600 ; N P ; B 13 0 529 583 ; -C 81 ; WX 600 ; N Q ; B 21 -145 579 597 ; -C 82 ; WX 600 ; N R ; B 13 0 619 583 ; -C 83 ; WX 600 ; N S ; B 62 -14 538 597 ; -C 84 ; WX 600 ; N T ; B 42 0 558 583 ; -C 85 ; WX 600 ; N U ; B 10 -14 590 583 ; -C 86 ; WX 600 ; N V ; B -21 0 621 583 ; -C 87 ; WX 600 ; N W ; B -10 0 610 583 ; -C 88 ; WX 600 ; N X ; B 10 0 590 584 ; -C 89 ; WX 600 ; N Y ; B 21 0 579 584 ; -C 90 ; WX 600 ; N Z ; B 73 0 527 583 ; -C 91 ; WX 600 ; N bracketleft ; B 250 -148 475 627 ; -C 92 ; WX 600 ; N backslash ; B 83 -113 517 695 ; -C 93 ; WX 600 ; N bracketright ; B 125 -148 350 627 ; -C 94 ; WX 600 ; N asciicircum ; B 83 325 517 652 ; -C 95 ; WX 600 ; N underscore ; B -12 -125 612 -75 ; -C 96 ; WX 600 ; N quoteleft ; B 249 348 453 602 ; -C 97 ; WX 600 ; N a ; B 42 -16 571 450 ; -C 98 ; WX 600 ; N b ; B -8 -14 571 624 ; -C 99 ; WX 600 ; N c ; B 54 -16 565 450 ; -C 100 ; WX 600 ; N d ; B 33 -14 613 624 ; -C 101 ; WX 600 ; N e ; B 33 -16 550 450 ; -C 102 ; WX 600 ; N f ; B 75 0 571 623 ; -C 103 ; WX 600 ; N g ; B 33 -205 592 451 ; -C 104 ; WX 600 ; N h ; B 13 0 581 624 ; -C 105 ; WX 600 ; N i ; B 62 0 538 623 ; -C 106 ; WX 600 ; N j ; B 117 -205 488 623 ; -C 107 ; WX 600 ; N k ; B 33 0 571 624 ; -C 108 ; WX 600 ; N l ; B 62 0 538 624 ; -C 109 ; WX 600 ; N m ; B -19 0 623 450 ; -C 110 ; WX 600 ; N n ; B 23 0 571 450 ; -C 111 ; WX 600 ; N o ; B 42 -16 558 450 ; -C 112 ; WX 600 ; N p ; B -8 -205 571 450 ; -C 113 ; WX 600 ; N q ; B 33 -205 613 450 ; -C 114 ; WX 600 ; N r ; B 54 0 571 449 ; -C 115 ; WX 600 ; N s ; B 73 -16 527 450 ; -C 116 ; WX 600 ; N t ; B 13 -16 529 591 ; -C 117 ; WX 600 ; N u ; B 13 -13 571 437 ; -C 118 ; WX 600 ; N v ; B 0 0 600 437 ; -C 119 ; WX 600 ; N w ; B 0 0 600 437 ; -C 120 ; WX 600 ; N x ; B 21 0 579 437 ; -C 121 ; WX 600 ; N y ; B 21 -205 579 437 ; -C 122 ; WX 600 ; N z ; B 85 0 519 437 ; -C 123 ; WX 600 ; N braceleft ; B 167 -153 433 623 ; -C 124 ; WX 600 ; N bar ; B 250 -153 350 622 ; -C 125 ; WX 600 ; N braceright ; B 167 -153 433 623 ; -C 126 ; WX 600 ; N asciitilde ; B 62 179 538 385 ; -C 161 ; WX 600 ; N exclamdown ; B 220 -227 381 426 ; -C 162 ; WX 600 ; N cent ; B 83 -44 499 661 ; -C 163 ; WX 600 ; N sterling ; B 33 0 550 598 ; -C 164 ; WX 600 ; N fraction ; B 21 102 580 500 ; -C 165 ; WX 600 ; N yen ; B 21 0 579 580 ; -C 166 ; WX 600 ; N florin ; B 57 -123 548 638 ; -C 167 ; WX 600 ; N section ; B 36 -170 564 583 ; -C 168 ; WX 600 ; N currency ; B 73 64 527 519 ; -C 169 ; WX 600 ; N quotesingle ; B 236 312 364 602 ; -C 170 ; WX 600 ; N quotedblleft ; B 98 348 502 602 ; -C 171 ; WX 600 ; N guillemotleft ; B 33 20 571 415 ; -C 172 ; WX 600 ; N guilsinglleft ; B 33 20 342 415 ; -C 173 ; WX 600 ; N guilsinglright ; B 263 20 571 415 ; -C 174 ; WX 600 ; N fi ; B -14 0 619 624 ; -C 175 ; WX 600 ; N fl ; B -17 0 617 623 ; -C 177 ; WX 600 ; N endash ; B 42 229 558 329 ; -C 178 ; WX 600 ; N dagger ; B 94 -92 506 622 ; -C 179 ; WX 600 ; N daggerdbl ; B 94 -92 506 622 ; -C 180 ; WX 600 ; N periodcentered ; B 225 214 375 346 ; -C 182 ; WX 600 ; N paragraph ; B 49 -174 558 583 ; -C 183 ; WX 600 ; N bullet ; B 150 154 449 453 ; -C 184 ; WX 600 ; N quotesinglbase ; B 147 -158 351 134 ; -C 185 ; WX 600 ; N quotedblbase ; B 87 -120 491 134 ; -C 186 ; WX 600 ; N quotedblright ; B 87 348 491 602 ; -C 187 ; WX 600 ; N guillemotright ; B 33 20 571 415 ; -C 188 ; WX 600 ; N ellipsis ; B 25 -15 575 117 ; -C 189 ; WX 600 ; N perthousand ; B 0 0 600 618 ; -C 191 ; WX 600 ; N questiondown ; B 83 -227 496 386 ; -C 193 ; WX 600 ; N grave ; B 125 496 350 696 ; -C 194 ; WX 600 ; N acute ; B 250 496 475 696 ; -C 195 ; WX 600 ; N circumflex ; B 125 497 476 696 ; -C 196 ; WX 600 ; N tilde ; B 115 523 485 656 ; -C 197 ; WX 600 ; N macron ; B 125 546 475 626 ; -C 198 ; WX 600 ; N breve ; B 125 503 475 687 ; -C 199 ; WX 600 ; N dotaccent ; B 240 534 360 654 ; -C 200 ; WX 600 ; N dieresis ; B 136 534 464 654 ; -C 202 ; WX 600 ; N ring ; B 177 486 423 727 ; -C 203 ; WX 600 ; N cedilla ; B 180 -229 407 0 ; -C 205 ; WX 600 ; N hungarumlaut ; B 125 496 475 694 ; -C 206 ; WX 600 ; N ogonek ; B 250 -208 463 0 ; -C 207 ; WX 600 ; N caron ; B 125 497 476 696 ; -C 208 ; WX 600 ; N emdash ; B -29 229 629 329 ; -C 225 ; WX 600 ; N AE ; B -20 0 614 583 ; -C 227 ; WX 600 ; N ordfeminine ; B 118 182 489 595 ; -C 232 ; WX 600 ; N Lslash ; B 12 0 571 583 ; -C 233 ; WX 600 ; N Oslash ; B 9 -70 590 638 ; -C 234 ; WX 600 ; N OE ; B -20 0 612 583 ; -C 235 ; WX 600 ; N ordmasculine ; B 122 182 480 595 ; -C 241 ; WX 600 ; N ae ; B -13 -16 612 450 ; -C 245 ; WX 600 ; N dotlessi ; B 62 0 538 437 ; -C 248 ; WX 600 ; N lslash ; B 62 0 538 624 ; -C 249 ; WX 600 ; N oslash ; B 23 -70 573 494 ; -C 250 ; WX 600 ; N oe ; B -11 -16 613 450 ; -C 251 ; WX 600 ; N germandbls ; B 13 -16 529 623 ; -C -1 ; WX 600 ; N Yacute ; B 21 0 579 839 ; -C -1 ; WX 600 ; N Ucircumflex ; B 10 -14 590 839 ; -C -1 ; WX 600 ; N Ugrave ; B 10 -14 590 839 ; -C -1 ; WX 600 ; N Zcaron ; B 73 0 527 839 ; -C -1 ; WX 600 ; N Ydieresis ; B 21 0 579 798 ; -C -1 ; WX 600 ; N threesuperior ; B 157 238 442 637 ; -C -1 ; WX 600 ; N Uacute ; B 10 -14 590 839 ; -C -1 ; WX 600 ; N twosuperior ; B 149 247 429 637 ; -C -1 ; WX 600 ; N Udieresis ; B 10 -14 590 798 ; -C -1 ; WX 600 ; N middot ; B 225 214 375 346 ; -C -1 ; WX 600 ; N onesuperior ; B 166 247 434 638 ; -C -1 ; WX 600 ; N aacute ; B 42 -16 571 696 ; -C -1 ; WX 600 ; N agrave ; B 42 -16 571 696 ; -C -1 ; WX 600 ; N acircumflex ; B 42 -16 571 696 ; -C -1 ; WX 600 ; N Scaron ; B 62 -14 538 839 ; -C -1 ; WX 600 ; N Otilde ; B 21 -14 579 799 ; -C -1 ; WX 600 ; N sfthyphen ; B 42 229 558 329 ; -C -1 ; WX 600 ; N atilde ; B 42 -16 571 656 ; -C -1 ; WX 600 ; N aring ; B 42 -16 571 727 ; -C -1 ; WX 600 ; N adieresis ; B 42 -16 571 654 ; -C -1 ; WX 600 ; N Ograve ; B 21 -14 579 839 ; -C -1 ; WX 600 ; N Ocircumflex ; B 21 -14 579 839 ; -C -1 ; WX 600 ; N Odieresis ; B 21 -14 579 798 ; -C -1 ; WX 600 ; N Ntilde ; B -8 0 592 799 ; -C -1 ; WX 600 ; N edieresis ; B 33 -16 550 654 ; -C -1 ; WX 600 ; N eacute ; B 33 -16 550 696 ; -C -1 ; WX 600 ; N egrave ; B 33 -16 550 696 ; -C -1 ; WX 600 ; N Icircumflex ; B 83 0 517 839 ; -C -1 ; WX 600 ; N ecircumflex ; B 33 -16 550 696 ; -C -1 ; WX 600 ; N Igrave ; B 83 0 517 839 ; -C -1 ; WX 600 ; N Iacute ; B 83 0 517 839 ; -C -1 ; WX 600 ; N Idieresis ; B 83 0 517 798 ; -C -1 ; WX 600 ; N degree ; B 125 243 475 596 ; -C -1 ; WX 600 ; N Ecircumflex ; B 13 0 550 839 ; -C -1 ; WX 600 ; N minus ; B 42 230 558 330 ; -C -1 ; WX 600 ; N multiply ; B 100 80 500 480 ; -C -1 ; WX 600 ; N divide ; B 42 28 558 533 ; -C -1 ; WX 600 ; N Egrave ; B 13 0 550 839 ; -C -1 ; WX 600 ; N trademark ; B -33 220 620 583 ; -C -1 ; WX 600 ; N Oacute ; B 21 -14 579 839 ; -C -1 ; WX 600 ; N thorn ; B -8 -205 571 624 ; -C -1 ; WX 600 ; N eth ; B 42 -16 558 646 ; -C -1 ; WX 600 ; N Eacute ; B 13 0 550 839 ; -C -1 ; WX 600 ; N ccedilla ; B 54 -229 565 450 ; -C -1 ; WX 600 ; N idieresis ; B 62 0 538 654 ; -C -1 ; WX 600 ; N iacute ; B 62 0 538 696 ; -C -1 ; WX 600 ; N igrave ; B 62 0 538 696 ; -C -1 ; WX 600 ; N plusminus ; B 42 0 558 624 ; -C -1 ; WX 600 ; N onehalf ; B -34 0 629 638 ; -C -1 ; WX 600 ; N onequarter ; B -34 0 629 638 ; -C -1 ; WX 600 ; N threequarters ; B -43 0 630 637 ; -C -1 ; WX 600 ; N icircumflex ; B 62 0 538 696 ; -C -1 ; WX 600 ; N Edieresis ; B 13 0 550 798 ; -C -1 ; WX 600 ; N ntilde ; B 23 0 571 656 ; -C -1 ; WX 600 ; N Aring ; B -21 0 621 871 ; -C -1 ; WX 600 ; N odieresis ; B 42 -16 558 654 ; -C -1 ; WX 600 ; N oacute ; B 42 -16 558 696 ; -C -1 ; WX 600 ; N ograve ; B 42 -16 558 696 ; -C -1 ; WX 600 ; N ocircumflex ; B 42 -16 558 696 ; -C -1 ; WX 600 ; N otilde ; B 42 -16 558 656 ; -C -1 ; WX 600 ; N scaron ; B 73 -16 527 696 ; -C -1 ; WX 600 ; N udieresis ; B 13 -13 571 654 ; -C -1 ; WX 600 ; N uacute ; B 13 -13 571 696 ; -C -1 ; WX 600 ; N ugrave ; B 13 -13 571 696 ; -C -1 ; WX 600 ; N ucircumflex ; B 13 -13 571 696 ; -C -1 ; WX 600 ; N yacute ; B 21 -205 579 696 ; -C -1 ; WX 600 ; N zcaron ; B 85 0 519 696 ; -C -1 ; WX 600 ; N ydieresis ; B 21 -205 579 654 ; -C -1 ; WX 600 ; N copyright ; B -7 -15 606 598 ; -C -1 ; WX 600 ; N registered ; B -7 -15 606 598 ; -C -1 ; WX 600 ; N Atilde ; B -21 0 621 799 ; -C -1 ; WX 600 ; N nbspace ; B 375 0 375 0 ; -C -1 ; WX 600 ; N Ccedilla ; B 33 -229 564 597 ; -C -1 ; WX 600 ; N Acircumflex ; B -21 0 621 839 ; -C -1 ; WX 600 ; N Agrave ; B -21 0 621 839 ; -C -1 ; WX 600 ; N logicalnot ; B 42 115 465 445 ; -C -1 ; WX 600 ; N Aacute ; B -21 0 621 839 ; -C -1 ; WX 600 ; N Eth ; B 0 0 550 583 ; -C -1 ; WX 600 ; N brokenbar ; B 250 -153 354 622 ; -C -1 ; WX 600 ; N Thorn ; B 14 0 523 583 ; -C -1 ; WX 600 ; N Adieresis ; B -21 0 621 798 ; -C -1 ; WX 600 ; N mu ; B 13 -153 571 437 ; -C -1 ; WX 600 ; N .notdef ; B 375 0 375 0 ; -EndCharMetrics -EndFontMetrics diff --git a/misc/gs_afm/CourBoO.afm b/misc/gs_afm/CourBoO.afm deleted file mode 100644 index 6b37f99b2a..0000000000 --- a/misc/gs_afm/CourBoO.afm +++ /dev/null @@ -1,255 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/3/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusMonL-BoldObli -FullName Nimbus Mono L Bold Oblique -FamilyName Nimbus Mono L -Weight Bold -ItalicAngle -12.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -61 -229 735 871 -CapHeight 583 -XHeight 437 -Descender -205 -Ascender 624 -StartCharMetrics 232 -C 32 ; WX 600 ; N space ; B 386 0 386 0 ; -C 33 ; WX 600 ; N exclam ; B 234 -15 501 638 ; -C 34 ; WX 600 ; N quotedbl ; B 243 312 592 602 ; -C 35 ; WX 600 ; N numbersign ; B 101 -92 623 675 ; -C 36 ; WX 600 ; N dollar ; B 100 -123 610 684 ; -C 37 ; WX 600 ; N percent ; B 131 -15 599 617 ; -C 38 ; WX 600 ; N ampersand ; B 102 -14 557 550 ; -C 39 ; WX 600 ; N quoteright ; B 222 331 483 623 ; -C 40 ; WX 600 ; N parenleft ; B 304 -153 613 632 ; -C 41 ; WX 600 ; N parenright ; B 94 -153 403 632 ; -C 42 ; WX 600 ; N asterisk ; B 178 208 614 622 ; -C 43 ; WX 600 ; N plus ; B 101 0 619 560 ; -C 44 ; WX 600 ; N comma ; B 118 -158 379 134 ; -C 45 ; WX 600 ; N hyphen ; B 101 229 619 329 ; -C 46 ; WX 600 ; N period ; B 234 -15 387 117 ; -C 47 ; WX 600 ; N slash ; B 69 -113 656 695 ; -C 48 ; WX 600 ; N zero ; B 130 -15 602 638 ; -C 49 ; WX 600 ; N one ; B 93 0 529 638 ; -C 50 ; WX 600 ; N two ; B 54 0 602 638 ; -C 51 ; WX 600 ; N three ; B 80 -15 609 638 ; -C 52 ; WX 600 ; N four ; B 104 0 579 622 ; -C 53 ; WX 600 ; N five ; B 83 -15 610 622 ; -C 54 ; WX 600 ; N six ; B 154 -15 663 638 ; -C 55 ; WX 600 ; N seven ; B 184 -1 640 622 ; -C 56 ; WX 600 ; N eight ; B 114 -15 608 638 ; -C 57 ; WX 600 ; N nine ; B 115 -15 624 638 ; -C 58 ; WX 600 ; N colon ; B 234 -15 455 437 ; -C 59 ; WX 600 ; N semicolon ; B 118 -158 431 437 ; -C 60 ; WX 600 ; N less ; B 102 54 642 501 ; -C 61 ; WX 600 ; N equal ; B 81 138 638 422 ; -C 62 ; WX 600 ; N greater ; B 76 53 616 500 ; -C 63 ; WX 600 ; N question ; B 197 -15 608 598 ; -C 64 ; WX 600 ; N at ; B 98 -151 582 620 ; -C 65 ; WX 600 ; N A ; B -11 0 633 583 ; -C 66 ; WX 600 ; N B ; B 22 0 620 583 ; -C 67 ; WX 600 ; N C ; B 80 -14 663 597 ; -C 68 ; WX 600 ; N D ; B 23 0 622 583 ; -C 69 ; WX 600 ; N E ; B 23 0 652 583 ; -C 70 ; WX 600 ; N F ; B 23 0 674 583 ; -C 71 ; WX 600 ; N G ; B 79 -14 667 597 ; -C 72 ; WX 600 ; N H ; B 32 0 675 583 ; -C 73 ; WX 600 ; N I ; B 93 0 632 583 ; -C 74 ; WX 600 ; N J ; B 64 -14 727 583 ; -C 75 ; WX 600 ; N K ; B 22 0 687 583 ; -C 76 ; WX 600 ; N L ; B 42 0 616 583 ; -C 77 ; WX 600 ; N M ; B -10 0 728 583 ; -C 78 ; WX 600 ; N N ; B 21 0 706 583 ; -C 79 ; WX 600 ; N O ; B 75 -14 649 597 ; -C 80 ; WX 600 ; N P ; B 23 0 617 583 ; -C 81 ; WX 600 ; N Q ; B 75 -145 649 597 ; -C 82 ; WX 600 ; N R ; B 23 0 631 583 ; -C 83 ; WX 600 ; N S ; B 72 -14 634 597 ; -C 84 ; WX 600 ; N T ; B 121 0 682 583 ; -C 85 ; WX 600 ; N U ; B 110 -14 705 583 ; -C 86 ; WX 600 ; N V ; B 91 0 735 583 ; -C 87 ; WX 600 ; N W ; B 98 0 725 583 ; -C 88 ; WX 600 ; N X ; B 19 0 692 583 ; -C 89 ; WX 600 ; N Y ; B 128 0 694 583 ; -C 90 ; WX 600 ; N Z ; B 73 0 628 583 ; -C 91 ; WX 600 ; N bracketleft ; B 219 -148 598 627 ; -C 92 ; WX 600 ; N backslash ; B 219 -113 504 695 ; -C 93 ; WX 600 ; N bracketright ; B 104 -148 483 627 ; -C 94 ; WX 600 ; N asciicircum ; B 161 325 598 652 ; -C 95 ; WX 600 ; N underscore ; B -61 -125 564 -75 ; -C 96 ; WX 600 ; N quoteleft ; B 377 348 534 602 ; -C 97 ; WX 600 ; N a ; B 65 -16 583 450 ; -C 98 ; WX 600 ; N b ; B 2 -14 623 624 ; -C 99 ; WX 600 ; N c ; B 93 -16 626 450 ; -C 100 ; WX 600 ; N d ; B 74 -14 664 624 ; -C 101 ; WX 600 ; N e ; B 74 -16 600 450 ; -C 102 ; WX 600 ; N f ; B 84 0 691 623 ; -C 103 ; WX 600 ; N g ; B 73 -205 675 451 ; -C 104 ; WX 600 ; N h ; B 33 0 593 624 ; -C 105 ; WX 600 ; N i ; B 72 0 550 623 ; -C 106 ; WX 600 ; N j ; B 83 -205 581 623 ; -C 107 ; WX 600 ; N k ; B 42 0 606 624 ; -C 108 ; WX 600 ; N l ; B 72 0 550 624 ; -C 109 ; WX 600 ; N m ; B -9 0 635 450 ; -C 110 ; WX 600 ; N n ; B 33 0 583 450 ; -C 111 ; WX 600 ; N o ; B 84 -16 609 450 ; -C 112 ; WX 600 ; N p ; B -42 -205 623 450 ; -C 113 ; WX 600 ; N q ; B 75 -205 696 450 ; -C 114 ; WX 600 ; N r ; B 64 0 650 449 ; -C 115 ; WX 600 ; N s ; B 83 -16 592 450 ; -C 116 ; WX 600 ; N t ; B 94 -16 547 591 ; -C 117 ; WX 600 ; N u ; B 94 -13 603 437 ; -C 118 ; WX 600 ; N v ; B 81 0 683 437 ; -C 119 ; WX 600 ; N w ; B 82 0 684 437 ; -C 120 ; WX 600 ; N x ; B 30 0 641 437 ; -C 121 ; WX 600 ; N y ; B -13 -205 662 437 ; -C 122 ; WX 600 ; N z ; B 85 0 599 437 ; -C 123 ; WX 600 ; N braceleft ; B 217 -153 556 623 ; -C 124 ; WX 600 ; N bar ; B 227 -153 472 622 ; -C 125 ; WX 600 ; N braceright ; B 144 -153 483 623 ; -C 126 ; WX 600 ; N asciitilde ; B 114 179 606 385 ; -C 161 ; WX 600 ; N exclamdown ; B 186 -227 453 426 ; -C 162 ; WX 600 ; N cent ; B 144 -44 593 661 ; -C 163 ; WX 600 ; N sterling ; B 64 0 571 598 ; -C 164 ; WX 600 ; N fraction ; B 52 102 676 500 ; -C 165 ; WX 600 ; N yen ; B 133 0 693 580 ; -C 166 ; WX 600 ; N florin ; B 43 -123 672 638 ; -C 167 ; WX 600 ; N section ; B 45 -170 643 583 ; -C 168 ; WX 600 ; N currency ; B 96 64 626 519 ; -C 169 ; WX 600 ; N quotesingle ; B 343 312 492 602 ; -C 170 ; WX 600 ; N quotedblleft ; B 226 348 583 602 ; -C 171 ; WX 600 ; N guillemotleft ; B 80 20 654 415 ; -C 172 ; WX 600 ; N guilsinglleft ; B 80 20 425 415 ; -C 173 ; WX 600 ; N guilsinglright ; B 273 20 617 415 ; -C 174 ; WX 600 ; N fi ; B -4 0 633 624 ; -C 175 ; WX 600 ; N fl ; B -8 0 645 623 ; -C 177 ; WX 600 ; N endash ; B 101 229 619 329 ; -C 178 ; WX 600 ; N dagger ; B 175 -92 589 622 ; -C 179 ; WX 600 ; N daggerdbl ; B 123 -92 589 622 ; -C 180 ; WX 600 ; N periodcentered ; B 283 214 436 346 ; -C 182 ; WX 600 ; N paragraph ; B 108 -174 672 583 ; -C 183 ; WX 600 ; N bullet ; B 211 154 517 453 ; -C 184 ; WX 600 ; N quotesinglbase ; B 118 -158 379 134 ; -C 185 ; WX 600 ; N quotedblbase ; B 66 -120 519 134 ; -C 186 ; WX 600 ; N quotedblright ; B 166 348 619 602 ; -C 187 ; WX 600 ; N guillemotright ; B 43 20 617 415 ; -C 188 ; WX 600 ; N ellipsis ; B 34 -15 587 117 ; -C 189 ; WX 600 ; N perthousand ; B 104 0 627 618 ; -C 191 ; WX 600 ; N questiondown ; B 70 -227 481 386 ; -C 193 ; WX 600 ; N grave ; B 264 496 464 696 ; -C 194 ; WX 600 ; N acute ; B 362 496 616 696 ; -C 195 ; WX 600 ; N circumflex ; B 237 497 590 696 ; -C 196 ; WX 600 ; N tilde ; B 233 523 619 656 ; -C 197 ; WX 600 ; N macron ; B 249 546 600 626 ; -C 198 ; WX 600 ; N breve ; B 261 503 614 687 ; -C 199 ; WX 600 ; N dotaccent ; B 365 534 487 656 ; -C 200 ; WX 600 ; N dieresis ; B 261 534 590 655 ; -C 202 ; WX 600 ; N ring ; B 303 486 554 727 ; -C 203 ; WX 600 ; N cedilla ; B 143 -229 381 0 ; -C 205 ; WX 600 ; N hungarumlaut ; B 237 496 616 694 ; -C 206 ; WX 600 ; N ogonek ; B 222 -208 433 0 ; -C 207 ; WX 600 ; N caron ; B 264 497 617 696 ; -C 208 ; WX 600 ; N emdash ; B 30 229 690 329 ; -C 225 ; WX 600 ; N AE ; B -10 0 717 583 ; -C 227 ; WX 600 ; N ordfeminine ; B 170 182 559 595 ; -C 232 ; WX 600 ; N Lslash ; B 43 0 616 583 ; -C 233 ; WX 600 ; N Oslash ; B 4 -70 717 638 ; -C 234 ; WX 600 ; N OE ; B 34 0 717 583 ; -C 235 ; WX 600 ; N ordmasculine ; B 168 182 566 595 ; -C 241 ; WX 600 ; N ae ; B 14 -16 665 450 ; -C 245 ; WX 600 ; N dotlessi ; B 72 0 550 437 ; -C 248 ; WX 600 ; N lslash ; B 72 0 557 624 ; -C 249 ; WX 600 ; N oslash ; B 17 -70 669 494 ; -C 250 ; WX 600 ; N oe ; B 28 -16 666 450 ; -C 251 ; WX 600 ; N germandbls ; B 22 -16 569 623 ; -C -1 ; WX 600 ; N Yacute ; B 128 0 694 839 ; -C -1 ; WX 600 ; N Ucircumflex ; B 110 -14 705 839 ; -C -1 ; WX 600 ; N Ugrave ; B 110 -14 705 839 ; -C -1 ; WX 600 ; N Zcaron ; B 73 0 644 839 ; -C -1 ; WX 600 ; N Ydieresis ; B 128 0 694 800 ; -C -1 ; WX 600 ; N threesuperior ; B 218 238 543 637 ; -C -1 ; WX 600 ; N Uacute ; B 110 -14 705 839 ; -C -1 ; WX 600 ; N twosuperior ; B 202 247 538 637 ; -C -1 ; WX 600 ; N Udieresis ; B 110 -14 705 800 ; -C -1 ; WX 600 ; N middot ; B 283 214 436 346 ; -C -1 ; WX 600 ; N onesuperior ; B 224 247 494 638 ; -C -1 ; WX 600 ; N aacute ; B 66 -16 584 696 ; -C -1 ; WX 600 ; N agrave ; B 65 -16 583 696 ; -C -1 ; WX 600 ; N acircumflex ; B 65 -16 583 696 ; -C -1 ; WX 600 ; N Scaron ; B 72 -14 657 839 ; -C -1 ; WX 600 ; N Otilde ; B 75 -14 656 799 ; -C -1 ; WX 600 ; N sfthyphen ; B 101 229 619 329 ; -C -1 ; WX 600 ; N atilde ; B 65 -16 612 656 ; -C -1 ; WX 600 ; N aring ; B 65 -16 583 727 ; -C -1 ; WX 600 ; N adieresis ; B 65 -16 583 655 ; -C -1 ; WX 600 ; N Ograve ; B 75 -14 649 839 ; -C -1 ; WX 600 ; N Ocircumflex ; B 75 -14 649 839 ; -C -1 ; WX 600 ; N Odieresis ; B 75 -14 649 800 ; -C -1 ; WX 600 ; N Ntilde ; B 21 0 706 799 ; -C -1 ; WX 600 ; N edieresis ; B 74 -16 600 655 ; -C -1 ; WX 600 ; N eacute ; B 74 -16 600 696 ; -C -1 ; WX 600 ; N egrave ; B 74 -16 600 696 ; -C -1 ; WX 600 ; N Icircumflex ; B 93 0 632 839 ; -C -1 ; WX 600 ; N ecircumflex ; B 74 -16 600 696 ; -C -1 ; WX 600 ; N Igrave ; B 93 0 632 839 ; -C -1 ; WX 600 ; N Iacute ; B 93 0 632 839 ; -C -1 ; WX 600 ; N Idieresis ; B 93 0 632 800 ; -C -1 ; WX 600 ; N degree ; B 210 243 568 596 ; -C -1 ; WX 600 ; N Ecircumflex ; B 23 0 652 839 ; -C -1 ; WX 600 ; N minus ; B 101 230 619 330 ; -C -1 ; WX 600 ; N multiply ; B 126 80 592 480 ; -C -1 ; WX 600 ; N divide ; B 101 28 619 533 ; -C -1 ; WX 600 ; N Egrave ; B 23 0 652 839 ; -C -1 ; WX 600 ; N trademark ; B 60 220 732 583 ; -C -1 ; WX 600 ; N Oacute ; B 75 -14 649 839 ; -C -1 ; WX 600 ; N thorn ; B -42 -205 623 624 ; -C -1 ; WX 600 ; N eth ; B 83 -16 617 646 ; -C -1 ; WX 600 ; N Eacute ; B 23 0 652 839 ; -C -1 ; WX 600 ; N ccedilla ; B 92 -229 626 450 ; -C -1 ; WX 600 ; N idieresis ; B 72 0 575 656 ; -C -1 ; WX 600 ; N iacute ; B 71 0 574 696 ; -C -1 ; WX 600 ; N igrave ; B 72 0 550 696 ; -C -1 ; WX 600 ; N plusminus ; B 52 0 640 624 ; -C -1 ; WX 600 ; N onehalf ; B 25 0 685 638 ; -C -1 ; WX 600 ; N onequarter ; B 25 0 673 638 ; -C -1 ; WX 600 ; N threequarters ; B 18 0 673 637 ; -C -1 ; WX 600 ; N icircumflex ; B 72 0 573 696 ; -C -1 ; WX 600 ; N Edieresis ; B 23 0 652 800 ; -C -1 ; WX 600 ; N ntilde ; B 33 0 613 656 ; -C -1 ; WX 600 ; N Aring ; B -11 0 633 871 ; -C -1 ; WX 600 ; N odieresis ; B 84 -16 609 655 ; -C -1 ; WX 600 ; N oacute ; B 84 -16 609 696 ; -C -1 ; WX 600 ; N ograve ; B 84 -16 609 696 ; -C -1 ; WX 600 ; N ocircumflex ; B 84 -16 609 696 ; -C -1 ; WX 600 ; N otilde ; B 84 -16 626 656 ; -C -1 ; WX 600 ; N scaron ; B 83 -16 627 696 ; -C -1 ; WX 600 ; N udieresis ; B 94 -13 603 655 ; -C -1 ; WX 600 ; N uacute ; B 94 -13 603 696 ; -C -1 ; WX 600 ; N ugrave ; B 94 -13 603 696 ; -C -1 ; WX 600 ; N ucircumflex ; B 94 -13 603 696 ; -C -1 ; WX 600 ; N yacute ; B -13 -205 662 696 ; -C -1 ; WX 600 ; N zcaron ; B 85 0 619 696 ; -C -1 ; WX 600 ; N ydieresis ; B -13 -205 662 655 ; -C -1 ; WX 600 ; N copyright ; B 48 -15 675 598 ; -C -1 ; WX 600 ; N registered ; B 48 -15 675 598 ; -C -1 ; WX 600 ; N Atilde ; B -11 0 633 799 ; -C -1 ; WX 600 ; N nbspace ; B 386 0 386 0 ; -C -1 ; WX 600 ; N Ccedilla ; B 80 -229 663 597 ; -C -1 ; WX 600 ; N Acircumflex ; B -11 0 633 839 ; -C -1 ; WX 600 ; N Agrave ; B -11 0 633 839 ; -C -1 ; WX 600 ; N logicalnot ; B 125 115 560 445 ; -C -1 ; WX 600 ; N Aacute ; B -11 0 633 839 ; -C -1 ; WX 600 ; N Eth ; B 23 0 622 583 ; -C -1 ; WX 600 ; N brokenbar ; B 227 -153 472 622 ; -C -1 ; WX 600 ; N Thorn ; B 23 0 588 583 ; -C -1 ; WX 600 ; N Adieresis ; B -11 0 633 800 ; -C -1 ; WX 600 ; N mu ; B 72 -153 603 440 ; -C -1 ; WX 600 ; N .notdef ; B 386 0 386 0 ; -EndCharMetrics -EndFontMetrics diff --git a/misc/gs_afm/CourO.afm b/misc/gs_afm/CourO.afm deleted file mode 100644 index 51e4ee6b81..0000000000 --- a/misc/gs_afm/CourO.afm +++ /dev/null @@ -1,255 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/19/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusMonL-ReguObli -FullName Nimbus Mono L Regular Oblique -FamilyName Nimbus Mono L -Weight Regular -ItalicAngle -12.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -61 -216 710 811 -CapHeight 563 -XHeight 417 -Descender -186 -Ascender 604 -StartCharMetrics 232 -C 32 ; WX 600 ; N space ; B 319 0 319 0 ; -C 33 ; WX 600 ; N exclam ; B 246 -15 463 618 ; -C 34 ; WX 600 ; N quotedbl ; B 254 315 582 604 ; -C 35 ; WX 600 ; N numbersign ; B 137 -62 589 647 ; -C 36 ; WX 600 ; N dollar ; B 131 -92 582 655 ; -C 37 ; WX 600 ; N percent ; B 137 -12 591 611 ; -C 38 ; WX 600 ; N ampersand ; B 132 -16 527 519 ; -C 39 ; WX 600 ; N quoteright ; B 207 314 468 604 ; -C 40 ; WX 600 ; N parenleft ; B 335 -124 583 604 ; -C 41 ; WX 600 ; N parenright ; B 124 -124 372 604 ; -C 42 ; WX 600 ; N asterisk ; B 211 250 586 604 ; -C 43 ; WX 600 ; N plus ; B 131 32 588 530 ; -C 44 ; WX 600 ; N comma ; B 110 -145 371 145 ; -C 45 ; WX 600 ; N hyphen ; B 131 258 588 299 ; -C 46 ; WX 600 ; N period ; B 235 -15 386 116 ; -C 47 ; WX 600 ; N slash ; B 99 -81 625 668 ; -C 48 ; WX 600 ; N zero ; B 156 -15 571 618 ; -C 49 ; WX 600 ; N one ; B 117 0 492 612 ; -C 50 ; WX 600 ; N two ; B 84 0 572 618 ; -C 51 ; WX 600 ; N three ; B 110 -15 579 618 ; -C 52 ; WX 600 ; N four ; B 141 0 545 604 ; -C 53 ; WX 600 ; N five ; B 113 -15 584 604 ; -C 54 ; WX 600 ; N six ; B 184 -15 631 618 ; -C 55 ; WX 600 ; N seven ; B 215 -1 606 604 ; -C 56 ; WX 600 ; N eight ; B 143 -15 576 618 ; -C 57 ; WX 600 ; N nine ; B 142 -15 589 618 ; -C 58 ; WX 600 ; N colon ; B 235 -15 450 417 ; -C 59 ; WX 600 ; N semicolon ; B 114 -145 426 417 ; -C 60 ; WX 600 ; N less ; B 131 44 627 518 ; -C 61 ; WX 600 ; N equal ; B 95 190 625 375 ; -C 62 ; WX 600 ; N greater ; B 92 44 588 518 ; -C 63 ; WX 600 ; N question ; B 231 -15 581 577 ; -C 64 ; WX 600 ; N at ; B 139 -62 561 624 ; -C 65 ; WX 600 ; N A ; B 13 0 596 563 ; -C 66 ; WX 600 ; N B ; B 47 0 591 563 ; -C 67 ; WX 600 ; N C ; B 110 -16 635 576 ; -C 68 ; WX 600 ; N D ; B 47 0 592 563 ; -C 69 ; WX 600 ; N E ; B 47 0 619 563 ; -C 70 ; WX 600 ; N F ; B 47 0 640 563 ; -C 71 ; WX 600 ; N G ; B 108 -16 636 576 ; -C 72 ; WX 600 ; N H ; B 57 0 646 563 ; -C 73 ; WX 600 ; N I ; B 117 0 603 563 ; -C 74 ; WX 600 ; N J ; B 100 -16 699 563 ; -C 75 ; WX 600 ; N K ; B 47 0 662 563 ; -C 76 ; WX 600 ; N L ; B 67 0 585 563 ; -C 77 ; WX 600 ; N M ; B 15 0 700 563 ; -C 78 ; WX 600 ; N N ; B 46 0 678 563 ; -C 79 ; WX 600 ; N O ; B 102 -16 616 576 ; -C 80 ; WX 600 ; N P ; B 47 0 587 563 ; -C 81 ; WX 600 ; N Q ; B 102 -115 616 576 ; -C 82 ; WX 600 ; N R ; B 47 0 594 563 ; -C 83 ; WX 600 ; N S ; B 96 -16 602 576 ; -C 84 ; WX 600 ; N T ; B 152 0 648 563 ; -C 85 ; WX 600 ; N U ; B 136 -16 676 563 ; -C 86 ; WX 600 ; N V ; B 124 0 707 563 ; -C 87 ; WX 600 ; N W ; B 122 0 696 563 ; -C 88 ; WX 600 ; N X ; B 44 0 662 563 ; -C 89 ; WX 600 ; N Y ; B 153 0 665 563 ; -C 90 ; WX 600 ; N Z ; B 103 0 590 563 ; -C 91 ; WX 600 ; N bracketleft ; B 254 -124 570 604 ; -C 92 ; WX 600 ; N backslash ; B 250 -81 474 668 ; -C 93 ; WX 600 ; N bracketright ; B 132 -124 448 604 ; -C 94 ; WX 600 ; N asciicircum ; B 192 354 567 615 ; -C 95 ; WX 600 ; N underscore ; B -61 -125 564 -75 ; -C 96 ; WX 600 ; N quoteleft ; B 388 343 544 604 ; -C 97 ; WX 600 ; N a ; B 93 -16 546 431 ; -C 98 ; WX 600 ; N b ; B 26 -16 591 604 ; -C 99 ; WX 600 ; N c ; B 122 -16 596 431 ; -C 100 ; WX 600 ; N d ; B 102 -16 630 604 ; -C 101 ; WX 600 ; N e ; B 104 -16 570 431 ; -C 102 ; WX 600 ; N f ; B 109 0 663 604 ; -C 103 ; WX 600 ; N g ; B 105 -186 647 431 ; -C 104 ; WX 600 ; N h ; B 55 0 556 604 ; -C 105 ; WX 600 ; N i ; B 96 0 513 624 ; -C 106 ; WX 600 ; N j ; B 112 -186 547 624 ; -C 107 ; WX 600 ; N k ; B 67 0 578 604 ; -C 108 ; WX 600 ; N l ; B 96 0 513 604 ; -C 109 ; WX 600 ; N m ; B 15 0 603 431 ; -C 110 ; WX 600 ; N n ; B 57 0 546 431 ; -C 111 ; WX 600 ; N o ; B 111 -16 577 431 ; -C 112 ; WX 600 ; N p ; B -13 -186 593 431 ; -C 113 ; WX 600 ; N q ; B 105 -186 668 431 ; -C 114 ; WX 600 ; N r ; B 88 0 619 427 ; -C 115 ; WX 600 ; N s ; B 108 -16 558 431 ; -C 116 ; WX 600 ; N t ; B 127 -16 518 563 ; -C 117 ; WX 600 ; N u ; B 127 -16 569 417 ; -C 118 ; WX 600 ; N v ; B 114 0 655 417 ; -C 119 ; WX 600 ; N w ; B 114 0 655 417 ; -C 120 ; WX 600 ; N x ; B 55 0 611 417 ; -C 121 ; WX 600 ; N y ; B 22 -186 634 417 ; -C 122 ; WX 600 ; N z ; B 115 0 563 417 ; -C 123 ; WX 600 ; N braceleft ; B 248 -124 528 604 ; -C 124 ; WX 600 ; N bar ; B 257 -124 444 604 ; -C 125 ; WX 600 ; N braceright ; B 175 -124 455 604 ; -C 126 ; WX 600 ; N asciitilde ; B 145 212 575 348 ; -C 161 ; WX 600 ; N exclamdown ; B 222 -216 439 417 ; -C 162 ; WX 600 ; N cent ; B 175 -13 563 630 ; -C 163 ; WX 600 ; N sterling ; B 90 0 541 578 ; -C 164 ; WX 600 ; N fraction ; B 84 139 645 470 ; -C 165 ; WX 600 ; N yen ; B 161 0 665 563 ; -C 166 ; WX 600 ; N florin ; B 74 -93 643 618 ; -C 167 ; WX 600 ; N section ; B 91 -62 624 603 ; -C 168 ; WX 600 ; N currency ; B 127 95 597 489 ; -C 169 ; WX 600 ; N quotesingle ; B 344 315 492 604 ; -C 170 ; WX 600 ; N quotedblleft ; B 221 343 586 604 ; -C 171 ; WX 600 ; N guillemotleft ; B 108 0 626 417 ; -C 172 ; WX 600 ; N guilsinglleft ; B 108 0 397 417 ; -C 173 ; WX 600 ; N guilsinglright ; B 297 0 585 417 ; -C 174 ; WX 600 ; N fi ; B 14 0 615 624 ; -C 175 ; WX 600 ; N fl ; B 14 0 611 604 ; -C 177 ; WX 600 ; N endash ; B 131 261 588 302 ; -C 178 ; WX 600 ; N dagger ; B 208 -63 561 604 ; -C 179 ; WX 600 ; N daggerdbl ; B 154 -62 561 604 ; -C 180 ; WX 600 ; N periodcentered ; B 285 217 436 348 ; -C 182 ; WX 600 ; N paragraph ; B 152 -62 648 604 ; -C 183 ; WX 600 ; N bullet ; B 253 141 449 337 ; -C 184 ; WX 600 ; N quotesinglbase ; B 110 -145 371 145 ; -C 185 ; WX 600 ; N quotedblbase ; B 73 -116 538 145 ; -C 186 ; WX 600 ; N quotedblright ; B 170 343 635 604 ; -C 187 ; WX 600 ; N guillemotright ; B 67 0 585 417 ; -C 188 ; WX 600 ; N ellipsis ; B 57 -15 556 85 ; -C 189 ; WX 600 ; N perthousand ; B 91 -9 598 614 ; -C 191 ; WX 600 ; N questiondown ; B 105 -175 455 417 ; -C 193 ; WX 600 ; N grave ; B 286 490 429 639 ; -C 194 ; WX 600 ; N acute ; B 388 490 577 639 ; -C 195 ; WX 600 ; N circumflex ; B 263 490 554 639 ; -C 196 ; WX 600 ; N tilde ; B 258 516 579 605 ; -C 197 ; WX 600 ; N macron ; B 273 536 564 576 ; -C 198 ; WX 600 ; N breve ; B 281 490 573 620 ; -C 199 ; WX 600 ; N dotaccent ; B 368 511 469 612 ; -C 200 ; WX 600 ; N dieresis ; B 258 511 580 612 ; -C 202 ; WX 600 ; N ring ; B 326 480 516 661 ; -C 203 ; WX 600 ; N cedilla ; B 181 -173 356 0 ; -C 205 ; WX 600 ; N hungarumlaut ; B 263 490 576 633 ; -C 206 ; WX 600 ; N ogonek ; B 258 -155 408 0 ; -C 207 ; WX 600 ; N caron ; B 286 490 577 639 ; -C 208 ; WX 600 ; N emdash ; B 60 261 659 302 ; -C 225 ; WX 600 ; N AE ; B 14 0 690 563 ; -C 227 ; WX 600 ; N ordfeminine ; B 229 279 511 574 ; -C 232 ; WX 600 ; N Lslash ; B 66 0 586 563 ; -C 233 ; WX 600 ; N Oslash ; B 34 -43 685 605 ; -C 234 ; WX 600 ; N OE ; B 62 0 690 563 ; -C 235 ; WX 600 ; N ordmasculine ; B 243 284 543 577 ; -C 241 ; WX 600 ; N ae ; B 36 -16 630 431 ; -C 245 ; WX 600 ; N dotlessi ; B 96 0 513 417 ; -C 248 ; WX 600 ; N lslash ; B 96 0 524 604 ; -C 249 ; WX 600 ; N oslash ; B 47 -43 637 458 ; -C 250 ; WX 600 ; N oe ; B 50 -16 630 431 ; -C 251 ; WX 600 ; N germandbls ; B 47 -16 539 604 ; -C -1 ; WX 600 ; N Yacute ; B 153 0 665 789 ; -C -1 ; WX 600 ; N Ucircumflex ; B 136 -16 676 789 ; -C -1 ; WX 600 ; N Ugrave ; B 136 -16 676 789 ; -C -1 ; WX 600 ; N Zcaron ; B 103 0 605 789 ; -C -1 ; WX 600 ; N Ydieresis ; B 153 0 665 762 ; -C -1 ; WX 600 ; N threesuperior ; B 245 251 516 612 ; -C -1 ; WX 600 ; N Uacute ; B 136 -16 676 789 ; -C -1 ; WX 600 ; N twosuperior ; B 230 259 514 612 ; -C -1 ; WX 600 ; N Udieresis ; B 136 -16 676 762 ; -C -1 ; WX 600 ; N middot ; B 285 217 436 348 ; -C -1 ; WX 600 ; N onesuperior ; B 249 259 469 612 ; -C -1 ; WX 600 ; N aacute ; B 93 -16 546 639 ; -C -1 ; WX 600 ; N agrave ; B 93 -16 546 639 ; -C -1 ; WX 600 ; N acircumflex ; B 93 -16 546 639 ; -C -1 ; WX 600 ; N Scaron ; B 96 -16 618 789 ; -C -1 ; WX 600 ; N Otilde ; B 103 -16 618 755 ; -C -1 ; WX 600 ; N sfthyphen ; B 131 258 588 299 ; -C -1 ; WX 600 ; N atilde ; B 93 -16 570 605 ; -C -1 ; WX 600 ; N aring ; B 93 -16 546 661 ; -C -1 ; WX 600 ; N adieresis ; B 93 -16 570 612 ; -C -1 ; WX 600 ; N Ograve ; B 102 -16 616 789 ; -C -1 ; WX 600 ; N Ocircumflex ; B 102 -16 616 789 ; -C -1 ; WX 600 ; N Odieresis ; B 102 -16 616 762 ; -C -1 ; WX 600 ; N Ntilde ; B 46 0 678 755 ; -C -1 ; WX 600 ; N edieresis ; B 104 -16 585 612 ; -C -1 ; WX 600 ; N eacute ; B 104 -16 570 639 ; -C -1 ; WX 600 ; N egrave ; B 104 -16 570 639 ; -C -1 ; WX 600 ; N Icircumflex ; B 117 0 603 789 ; -C -1 ; WX 600 ; N ecircumflex ; B 104 -16 570 639 ; -C -1 ; WX 600 ; N Igrave ; B 117 0 603 789 ; -C -1 ; WX 600 ; N Iacute ; B 117 0 603 789 ; -C -1 ; WX 600 ; N Idieresis ; B 117 0 611 762 ; -C -1 ; WX 600 ; N degree ; B 257 346 553 636 ; -C -1 ; WX 600 ; N Ecircumflex ; B 47 0 619 789 ; -C -1 ; WX 600 ; N minus ; B 131 261 588 302 ; -C -1 ; WX 600 ; N multiply ; B 143 100 577 464 ; -C -1 ; WX 600 ; N divide ; B 131 25 588 541 ; -C -1 ; WX 600 ; N Egrave ; B 47 0 619 789 ; -C -1 ; WX 600 ; N trademark ; B 90 243 710 563 ; -C -1 ; WX 600 ; N Oacute ; B 102 -16 616 789 ; -C -1 ; WX 600 ; N thorn ; B -13 -186 593 590 ; -C -1 ; WX 600 ; N eth ; B 111 -17 582 620 ; -C -1 ; WX 600 ; N Eacute ; B 47 0 619 789 ; -C -1 ; WX 600 ; N ccedilla ; B 122 -173 596 431 ; -C -1 ; WX 600 ; N idieresis ; B 96 0 567 612 ; -C -1 ; WX 600 ; N iacute ; B 96 0 535 639 ; -C -1 ; WX 600 ; N igrave ; B 96 0 513 639 ; -C -1 ; WX 600 ; N plusminus ; B 76 0 597 529 ; -C -1 ; WX 600 ; N onehalf ; B 82 0 627 612 ; -C -1 ; WX 600 ; N onequarter ; B 74 0 619 612 ; -C -1 ; WX 600 ; N threequarters ; B 70 0 619 612 ; -C -1 ; WX 600 ; N icircumflex ; B 95 0 536 639 ; -C -1 ; WX 600 ; N Edieresis ; B 47 0 619 762 ; -C -1 ; WX 600 ; N ntilde ; B 57 0 570 605 ; -C -1 ; WX 600 ; N Aring ; B 13 0 596 811 ; -C -1 ; WX 600 ; N odieresis ; B 111 -16 580 612 ; -C -1 ; WX 600 ; N oacute ; B 111 -16 577 639 ; -C -1 ; WX 600 ; N ograve ; B 111 -16 577 639 ; -C -1 ; WX 600 ; N ocircumflex ; B 111 -16 577 639 ; -C -1 ; WX 600 ; N otilde ; B 111 -16 586 605 ; -C -1 ; WX 600 ; N scaron ; B 107 -16 584 639 ; -C -1 ; WX 600 ; N udieresis ; B 127 -16 572 612 ; -C -1 ; WX 600 ; N uacute ; B 127 -16 569 639 ; -C -1 ; WX 600 ; N ugrave ; B 127 -16 569 639 ; -C -1 ; WX 600 ; N ucircumflex ; B 127 -16 569 639 ; -C -1 ; WX 600 ; N yacute ; B 22 -186 634 639 ; -C -1 ; WX 600 ; N zcaron ; B 115 0 576 639 ; -C -1 ; WX 600 ; N ydieresis ; B 22 -186 634 612 ; -C -1 ; WX 600 ; N copyright ; B 57 -15 663 578 ; -C -1 ; WX 600 ; N registered ; B 57 -15 663 578 ; -C -1 ; WX 600 ; N Atilde ; B 13 0 596 755 ; -C -1 ; WX 600 ; N nbspace ; B 319 0 319 0 ; -C -1 ; WX 600 ; N Ccedilla ; B 110 -173 635 576 ; -C -1 ; WX 600 ; N Acircumflex ; B 13 0 596 789 ; -C -1 ; WX 600 ; N Agrave ; B 13 0 596 789 ; -C -1 ; WX 600 ; N logicalnot ; B 160 168 621 438 ; -C -1 ; WX 600 ; N Aacute ; B 13 0 596 789 ; -C -1 ; WX 600 ; N Eth ; B 47 0 592 563 ; -C -1 ; WX 600 ; N brokenbar ; B 257 -124 444 604 ; -C -1 ; WX 600 ; N Thorn ; B 47 0 566 563 ; -C -1 ; WX 600 ; N Adieresis ; B 13 0 596 762 ; -C -1 ; WX 600 ; N mu ; B 86 -200 569 417 ; -C -1 ; WX 600 ; N .notdef ; B 319 0 319 0 ; -EndCharMetrics -EndFontMetrics diff --git a/misc/gs_afm/Helv.afm b/misc/gs_afm/Helv.afm deleted file mode 100644 index 56de4d61bb..0000000000 --- a/misc/gs_afm/Helv.afm +++ /dev/null @@ -1,1257 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/3/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusSanL-ReguCond -FullName Nimbus Sans L Regular Condensed -FamilyName Nimbus Sans L -Weight Regular -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -136 -225 820 944 -CapHeight 718 -XHeight 523 -Descender -207 -Ascender 718 -StartCharMetrics 232 -C 32 ; WX 228 ; N space ; B 21 0 21 0 ; -C 33 ; WX 228 ; N exclam ; B 74 0 153 718 ; -C 34 ; WX 291 ; N quotedbl ; B 57 463 234 718 ; -C 35 ; WX 456 ; N numbersign ; B 23 0 434 688 ; -C 36 ; WX 456 ; N dollar ; B 26 -115 426 775 ; -C 37 ; WX 729 ; N percent ; B 32 -19 697 703 ; -C 38 ; WX 547 ; N ampersand ; B 36 -15 529 718 ; -C 39 ; WX 182 ; N quoteright ; B 43 462 129 718 ; -C 40 ; WX 273 ; N parenleft ; B 56 -207 245 733 ; -C 41 ; WX 273 ; N parenright ; B 28 -207 217 733 ; -C 42 ; WX 319 ; N asterisk ; B 32 431 286 718 ; -C 43 ; WX 479 ; N plus ; B 32 0 447 505 ; -C 44 ; WX 228 ; N comma ; B 71 -147 157 107 ; -C 45 ; WX 273 ; N hyphen ; B 36 232 237 322 ; -C 46 ; WX 228 ; N period ; B 71 0 157 107 ; -C 47 ; WX 228 ; N slash ; B -14 -19 242 737 ; -C 48 ; WX 456 ; N zero ; B 30 -19 426 703 ; -C 49 ; WX 456 ; N one ; B 83 0 294 703 ; -C 50 ; WX 456 ; N two ; B 21 0 416 703 ; -C 51 ; WX 456 ; N three ; B 28 -19 428 703 ; -C 52 ; WX 456 ; N four ; B 20 0 429 703 ; -C 53 ; WX 456 ; N five ; B 26 -19 421 688 ; -C 54 ; WX 456 ; N six ; B 31 -19 425 703 ; -C 55 ; WX 456 ; N seven ; B 30 0 429 688 ; -C 56 ; WX 456 ; N eight ; B 31 -19 424 703 ; -C 57 ; WX 456 ; N nine ; B 34 -19 421 703 ; -C 58 ; WX 228 ; N colon ; B 71 0 157 516 ; -C 59 ; WX 228 ; N semicolon ; B 71 -147 157 516 ; -C 60 ; WX 479 ; N less ; B 39 10 440 496 ; -C 61 ; WX 479 ; N equal ; B 32 115 447 390 ; -C 62 ; WX 479 ; N greater ; B 39 10 440 496 ; -C 63 ; WX 456 ; N question ; B 46 0 403 727 ; -C 64 ; WX 832 ; N at ; B 121 -19 712 737 ; -C 65 ; WX 547 ; N A ; B 11 0 536 718 ; -C 66 ; WX 547 ; N B ; B 61 0 514 718 ; -C 67 ; WX 592 ; N C ; B 36 -19 558 737 ; -C 68 ; WX 592 ; N D ; B 66 0 553 718 ; -C 69 ; WX 547 ; N E ; B 71 0 505 718 ; -C 70 ; WX 501 ; N F ; B 71 0 478 718 ; -C 71 ; WX 638 ; N G ; B 39 -19 577 737 ; -C 72 ; WX 592 ; N H ; B 63 0 530 718 ; -C 73 ; WX 228 ; N I ; B 75 0 154 718 ; -C 74 ; WX 410 ; N J ; B 14 -19 351 718 ; -C 75 ; WX 547 ; N K ; B 62 0 544 718 ; -C 76 ; WX 456 ; N L ; B 62 0 440 718 ; -C 77 ; WX 683 ; N M ; B 60 0 624 718 ; -C 78 ; WX 592 ; N N ; B 62 0 530 718 ; -C 79 ; WX 638 ; N O ; B 32 -19 606 737 ; -C 80 ; WX 547 ; N P ; B 71 0 510 718 ; -C 81 ; WX 638 ; N Q ; B 32 -56 606 737 ; -C 82 ; WX 592 ; N R ; B 72 0 561 718 ; -C 83 ; WX 547 ; N S ; B 40 -19 508 737 ; -C 84 ; WX 501 ; N T ; B 11 0 490 718 ; -C 85 ; WX 592 ; N U ; B 65 -19 528 718 ; -C 86 ; WX 547 ; N V ; B 16 0 531 718 ; -C 87 ; WX 774 ; N W ; B 13 0 761 718 ; -C 88 ; WX 547 ; N X ; B 16 0 531 718 ; -C 89 ; WX 547 ; N Y ; B 11 0 535 718 ; -C 90 ; WX 501 ; N Z ; B 19 0 482 718 ; -C 91 ; WX 228 ; N bracketleft ; B 52 -196 205 722 ; -C 92 ; WX 228 ; N backslash ; B -14 -19 242 737 ; -C 93 ; WX 228 ; N bracketright ; B 23 -196 176 722 ; -C 94 ; WX 385 ; N asciicircum ; B -11 264 396 688 ; -C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ; -C 96 ; WX 182 ; N quoteleft ; B 53 469 139 725 ; -C 97 ; WX 456 ; N a ; B 30 -15 435 538 ; -C 98 ; WX 456 ; N b ; B 48 -15 424 718 ; -C 99 ; WX 410 ; N c ; B 25 -15 391 538 ; -C 100 ; WX 456 ; N d ; B 29 -15 409 718 ; -C 101 ; WX 456 ; N e ; B 33 -15 423 538 ; -C 102 ; WX 228 ; N f ; B 11 0 215 728 ; -C 103 ; WX 456 ; N g ; B 33 -220 409 538 ; -C 104 ; WX 456 ; N h ; B 53 0 403 718 ; -C 105 ; WX 182 ; N i ; B 55 0 127 718 ; -C 106 ; WX 182 ; N j ; B -13 -210 127 718 ; -C 107 ; WX 410 ; N k ; B 55 0 411 718 ; -C 108 ; WX 182 ; N l ; B 55 0 127 718 ; -C 109 ; WX 683 ; N m ; B 53 0 631 538 ; -C 110 ; WX 456 ; N n ; B 53 0 403 538 ; -C 111 ; WX 456 ; N o ; B 29 -14 427 538 ; -C 112 ; WX 456 ; N p ; B 48 -207 424 538 ; -C 113 ; WX 456 ; N q ; B 29 -207 405 538 ; -C 114 ; WX 273 ; N r ; B 63 0 272 538 ; -C 115 ; WX 410 ; N s ; B 26 -15 380 538 ; -C 116 ; WX 228 ; N t ; B 11 -7 211 669 ; -C 117 ; WX 456 ; N u ; B 56 -15 401 523 ; -C 118 ; WX 410 ; N v ; B 7 0 403 523 ; -C 119 ; WX 592 ; N w ; B 11 0 581 523 ; -C 120 ; WX 410 ; N x ; B 9 0 402 523 ; -C 121 ; WX 410 ; N y ; B 9 -214 401 523 ; -C 122 ; WX 410 ; N z ; B 25 0 385 523 ; -C 123 ; WX 274 ; N braceleft ; B 34 -196 239 722 ; -C 124 ; WX 213 ; N bar ; B 77 -19 137 737 ; -C 125 ; WX 274 ; N braceright ; B 34 -196 239 722 ; -C 126 ; WX 479 ; N asciitilde ; B 50 181 429 322 ; -C 161 ; WX 273 ; N exclamdown ; B 97 -195 176 523 ; -C 162 ; WX 456 ; N cent ; B 42 -115 421 623 ; -C 163 ; WX 456 ; N sterling ; B 27 -16 442 718 ; -C 164 ; WX 137 ; N fraction ; B -136 -19 273 703 ; -C 165 ; WX 456 ; N yen ; B 2 0 453 688 ; -C 166 ; WX 456 ; N florin ; B -9 -207 411 737 ; -C 167 ; WX 456 ; N section ; B 35 -191 420 737 ; -C 168 ; WX 456 ; N currency ; B 23 99 433 603 ; -C 169 ; WX 157 ; N quotesingle ; B 48 463 108 718 ; -C 170 ; WX 273 ; N quotedblleft ; B 31 469 252 725 ; -C 171 ; WX 456 ; N guillemotleft ; B 80 108 376 446 ; -C 172 ; WX 273 ; N guilsinglleft ; B 72 108 201 446 ; -C 173 ; WX 273 ; N guilsinglright ; B 72 108 201 446 ; -C 174 ; WX 410 ; N fi ; B 11 0 356 728 ; -C 175 ; WX 410 ; N fl ; B 11 0 354 728 ; -C 177 ; WX 456 ; N endash ; B 0 240 456 313 ; -C 178 ; WX 456 ; N dagger ; B 35 -159 421 718 ; -C 179 ; WX 456 ; N daggerdbl ; B 35 -159 421 718 ; -C 180 ; WX 228 ; N periodcentered ; B 63 190 166 315 ; -C 182 ; WX 440 ; N paragraph ; B 15 -173 408 718 ; -C 183 ; WX 287 ; N bullet ; B 15 202 273 517 ; -C 184 ; WX 182 ; N quotesinglbase ; B 43 -149 129 107 ; -C 185 ; WX 273 ; N quotedblbase ; B 21 -149 242 107 ; -C 186 ; WX 273 ; N quotedblright ; B 21 462 242 718 ; -C 187 ; WX 456 ; N guillemotright ; B 80 108 376 446 ; -C 188 ; WX 820 ; N ellipsis ; B 94 0 726 107 ; -C 189 ; WX 820 ; N perthousand ; B 6 -19 815 703 ; -C 191 ; WX 501 ; N questiondown ; B 75 -201 432 525 ; -C 193 ; WX 273 ; N grave ; B 11 593 173 734 ; -C 194 ; WX 273 ; N acute ; B 100 593 262 734 ; -C 195 ; WX 273 ; N circumflex ; B 17 593 256 734 ; -C 196 ; WX 273 ; N tilde ; B -3 606 276 722 ; -C 197 ; WX 273 ; N macron ; B 8 627 265 684 ; -C 198 ; WX 273 ; N breve ; B 11 595 263 731 ; -C 199 ; WX 273 ; N dotaccent ; B 99 604 174 706 ; -C 200 ; WX 273 ; N dieresis ; B 33 604 240 706 ; -C 202 ; WX 273 ; N ring ; B 61 572 212 756 ; -C 203 ; WX 273 ; N cedilla ; B 37 -225 212 0 ; -C 205 ; WX 273 ; N hungarumlaut ; B 25 593 335 734 ; -C 206 ; WX 273 ; N ogonek ; B 60 -225 235 0 ; -C 207 ; WX 273 ; N caron ; B 17 593 256 734 ; -C 208 ; WX 820 ; N emdash ; B 0 240 820 313 ; -C 225 ; WX 820 ; N AE ; B 7 0 780 718 ; -C 227 ; WX 303 ; N ordfeminine ; B 20 304 284 737 ; -C 232 ; WX 456 ; N Lslash ; B -16 0 440 718 ; -C 233 ; WX 638 ; N Oslash ; B 32 -19 607 737 ; -C 234 ; WX 820 ; N OE ; B 30 -19 791 737 ; -C 235 ; WX 299 ; N ordmasculine ; B 20 304 280 737 ; -C 241 ; WX 729 ; N ae ; B 30 -15 695 538 ; -C 245 ; WX 228 ; N dotlessi ; B 78 0 150 523 ; -C 248 ; WX 182 ; N lslash ; B -16 0 198 718 ; -C 249 ; WX 501 ; N oslash ; B 23 -22 440 545 ; -C 250 ; WX 774 ; N oe ; B 29 -15 740 538 ; -C 251 ; WX 501 ; N germandbls ; B 55 -15 468 728 ; -C -1 ; WX 547 ; N Yacute ; B 11 0 535 929 ; -C -1 ; WX 592 ; N Ucircumflex ; B 65 -19 528 929 ; -C -1 ; WX 592 ; N Ugrave ; B 65 -19 528 929 ; -C -1 ; WX 501 ; N Zcaron ; B 19 0 482 929 ; -C -1 ; WX 547 ; N Ydieresis ; B 11 0 535 901 ; -C -1 ; WX 273 ; N threesuperior ; B 4 270 266 714 ; -C -1 ; WX 592 ; N Uacute ; B 65 -19 528 929 ; -C -1 ; WX 273 ; N twosuperior ; B 3 280 265 714 ; -C -1 ; WX 592 ; N Udieresis ; B 65 -19 528 901 ; -C -1 ; WX 228 ; N middot ; B 63 190 166 315 ; -C -1 ; WX 273 ; N onesuperior ; B 35 281 182 703 ; -C -1 ; WX 456 ; N aacute ; B 30 -15 435 734 ; -C -1 ; WX 456 ; N agrave ; B 30 -15 435 734 ; -C -1 ; WX 456 ; N acircumflex ; B 30 -15 435 734 ; -C -1 ; WX 547 ; N Scaron ; B 40 -19 508 929 ; -C -1 ; WX 638 ; N Otilde ; B 32 -19 606 917 ; -C -1 ; WX 273 ; N sfthyphen ; B 36 232 237 322 ; -C -1 ; WX 456 ; N atilde ; B 30 -15 435 722 ; -C -1 ; WX 456 ; N aring ; B 30 -15 435 769 ; -C -1 ; WX 456 ; N adieresis ; B 30 -15 435 706 ; -C -1 ; WX 638 ; N Ograve ; B 32 -19 606 929 ; -C -1 ; WX 638 ; N Ocircumflex ; B 32 -19 606 929 ; -C -1 ; WX 638 ; N Odieresis ; B 32 -19 606 901 ; -C -1 ; WX 592 ; N Ntilde ; B 62 0 530 917 ; -C -1 ; WX 456 ; N edieresis ; B 33 -15 423 706 ; -C -1 ; WX 456 ; N eacute ; B 33 -15 423 734 ; -C -1 ; WX 456 ; N egrave ; B 33 -15 423 734 ; -C -1 ; WX 228 ; N Icircumflex ; B -5 0 234 929 ; -C -1 ; WX 456 ; N ecircumflex ; B 33 -15 423 734 ; -C -1 ; WX 228 ; N Igrave ; B -11 0 153 929 ; -C -1 ; WX 228 ; N Iacute ; B 75 0 240 903 ; -C -1 ; WX 228 ; N Idieresis ; B 11 0 218 901 ; -C -1 ; WX 328 ; N degree ; B 44 411 284 703 ; -C -1 ; WX 547 ; N Ecircumflex ; B 71 0 505 929 ; -C -1 ; WX 479 ; N minus ; B 32 216 447 289 ; -C -1 ; WX 479 ; N multiply ; B 32 0 447 506 ; -C -1 ; WX 479 ; N divide ; B 32 -19 447 524 ; -C -1 ; WX 547 ; N Egrave ; B 71 0 505 929 ; -C -1 ; WX 820 ; N trademark ; B 38 306 740 718 ; -C -1 ; WX 638 ; N Oacute ; B 32 -19 606 929 ; -C -1 ; WX 456 ; N thorn ; B 48 -207 424 718 ; -C -1 ; WX 456 ; N eth ; B 29 -15 428 737 ; -C -1 ; WX 547 ; N Eacute ; B 71 0 505 929 ; -C -1 ; WX 410 ; N ccedilla ; B 25 -225 391 538 ; -C -1 ; WX 228 ; N idieresis ; B 11 0 218 706 ; -C -1 ; WX 228 ; N iacute ; B 78 0 240 734 ; -C -1 ; WX 228 ; N igrave ; B -11 0 151 734 ; -C -1 ; WX 479 ; N plusminus ; B 32 0 447 561 ; -C -1 ; WX 684 ; N onehalf ; B 35 -19 634 703 ; -C -1 ; WX 684 ; N onequarter ; B 60 -19 620 703 ; -C -1 ; WX 684 ; N threequarters ; B 37 -19 664 714 ; -C -1 ; WX 228 ; N icircumflex ; B -5 0 234 734 ; -C -1 ; WX 547 ; N Edieresis ; B 71 0 505 901 ; -C -1 ; WX 456 ; N ntilde ; B 53 0 403 722 ; -C -1 ; WX 547 ; N Aring ; B 11 0 536 944 ; -C -1 ; WX 456 ; N odieresis ; B 29 -14 427 706 ; -C -1 ; WX 456 ; N oacute ; B 29 -14 427 734 ; -C -1 ; WX 456 ; N ograve ; B 29 -14 427 734 ; -C -1 ; WX 456 ; N ocircumflex ; B 29 -14 427 734 ; -C -1 ; WX 456 ; N otilde ; B 29 -14 427 722 ; -C -1 ; WX 410 ; N scaron ; B 26 -15 380 734 ; -C -1 ; WX 456 ; N udieresis ; B 56 -15 401 706 ; -C -1 ; WX 456 ; N uacute ; B 56 -15 401 734 ; -C -1 ; WX 456 ; N ugrave ; B 56 -15 401 734 ; -C -1 ; WX 456 ; N ucircumflex ; B 56 -15 401 734 ; -C -1 ; WX 410 ; N yacute ; B 9 -214 401 734 ; -C -1 ; WX 410 ; N zcaron ; B 25 0 385 734 ; -C -1 ; WX 410 ; N ydieresis ; B 9 -214 401 706 ; -C -1 ; WX 604 ; N copyright ; B -11 -19 617 737 ; -C -1 ; WX 604 ; N registered ; B -11 -19 617 737 ; -C -1 ; WX 547 ; N Atilde ; B 11 0 536 917 ; -C -1 ; WX 228 ; N nbspace ; B 21 0 21 0 ; -C -1 ; WX 592 ; N Ccedilla ; B 36 -225 558 737 ; -C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; -C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; -C -1 ; WX 479 ; N logicalnot ; B 32 108 447 390 ; -C -1 ; WX 547 ; N Aacute ; B 11 0 536 929 ; -C -1 ; WX 592 ; N Eth ; B 0 0 553 718 ; -C -1 ; WX 213 ; N brokenbar ; B 77 -19 137 737 ; -C -1 ; WX 547 ; N Thorn ; B 71 0 510 718 ; -C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; -C -1 ; WX 456 ; N mu ; B 56 -207 401 523 ; -C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ; -EndCharMetrics -StartKernData -StartKernPairs 998 -KPX A C -28 -KPX A Ccedilla -29 -KPX A G -30 -KPX A O -28 -KPX A Odieresis -28 -KPX A Q -28 -KPX A T -74 -KPX A U -29 -KPX A Uacute -29 -KPX A Ucircumflex -29 -KPX A Udieresis -29 -KPX A Ugrave -29 -KPX A V -56 -KPX A W -39 -KPX A Y -78 -KPX A a -3 -KPX A b 0 -KPX A c -10 -KPX A ccedilla -11 -KPX A comma 5 -KPX A d -11 -KPX A e -14 -KPX A g -14 -KPX A guillemotleft -40 -KPX A guilsinglleft -36 -KPX A hyphen -2 -KPX A o -14 -KPX A period 5 -KPX A q -11 -KPX A quotedblright -37 -KPX A quoteright -48 -KPX A t -15 -KPX A u -12 -KPX A v -27 -KPX A w -21 -KPX A y -28 -KPX Aacute C -28 -KPX Aacute G -30 -KPX Aacute O -28 -KPX Aacute Q -28 -KPX Aacute T -74 -KPX Aacute U -29 -KPX Aacute V -56 -KPX Aacute W -39 -KPX Aacute Y -78 -KPX Aacute a -3 -KPX Aacute b 0 -KPX Aacute c -10 -KPX Aacute comma 5 -KPX Aacute d -11 -KPX Aacute e -14 -KPX Aacute g -14 -KPX Aacute guillemotleft -40 -KPX Aacute guilsinglleft -36 -KPX Aacute hyphen -2 -KPX Aacute o -14 -KPX Aacute period 5 -KPX Aacute q -11 -KPX Aacute quoteright -48 -KPX Aacute t -15 -KPX Aacute u -12 -KPX Aacute v -27 -KPX Aacute w -21 -KPX Aacute y -28 -KPX Acircumflex C -28 -KPX Acircumflex G -30 -KPX Acircumflex O -28 -KPX Acircumflex Q -28 -KPX Acircumflex T -74 -KPX Acircumflex U -29 -KPX Acircumflex V -56 -KPX Acircumflex W -39 -KPX Acircumflex Y -78 -KPX Acircumflex comma 5 -KPX Acircumflex period 5 -KPX Adieresis C -28 -KPX Adieresis G -30 -KPX Adieresis O -28 -KPX Adieresis Q -28 -KPX Adieresis T -74 -KPX Adieresis U -29 -KPX Adieresis V -56 -KPX Adieresis W -39 -KPX Adieresis Y -78 -KPX Adieresis a -3 -KPX Adieresis b 0 -KPX Adieresis c -10 -KPX Adieresis comma 5 -KPX Adieresis d -11 -KPX Adieresis g -14 -KPX Adieresis guillemotleft -40 -KPX Adieresis guilsinglleft -36 -KPX Adieresis hyphen -2 -KPX Adieresis o -14 -KPX Adieresis period 5 -KPX Adieresis q -11 -KPX Adieresis quotedblright -37 -KPX Adieresis quoteright -48 -KPX Adieresis t -15 -KPX Adieresis u -12 -KPX Adieresis v -27 -KPX Adieresis w -21 -KPX Adieresis y -28 -KPX Agrave C -28 -KPX Agrave G -30 -KPX Agrave O -28 -KPX Agrave Q -28 -KPX Agrave T -74 -KPX Agrave U -29 -KPX Agrave V -56 -KPX Agrave W -39 -KPX Agrave Y -78 -KPX Agrave comma 5 -KPX Agrave period 5 -KPX Aring C -28 -KPX Aring G -30 -KPX Aring O -28 -KPX Aring Q -28 -KPX Aring T -74 -KPX Aring U -29 -KPX Aring V -56 -KPX Aring W -39 -KPX Aring Y -78 -KPX Aring a -3 -KPX Aring b 0 -KPX Aring c -10 -KPX Aring comma 5 -KPX Aring d -11 -KPX Aring e -14 -KPX Aring g -14 -KPX Aring guillemotleft -40 -KPX Aring guilsinglleft -36 -KPX Aring hyphen -2 -KPX Aring o -14 -KPX Aring period 5 -KPX Aring q -11 -KPX Aring quotedblright -37 -KPX Aring quoteright -48 -KPX Aring t -15 -KPX Aring u -12 -KPX Aring v -27 -KPX Aring w -21 -KPX Aring y -28 -KPX Atilde C -28 -KPX Atilde G -30 -KPX Atilde O -28 -KPX Atilde Q -28 -KPX Atilde T -74 -KPX Atilde U -29 -KPX Atilde V -56 -KPX Atilde W -39 -KPX Atilde Y -78 -KPX Atilde comma 5 -KPX Atilde period 5 -KPX B A -15 -KPX B AE -14 -KPX B Aacute -15 -KPX B Acircumflex -15 -KPX B Adieresis -15 -KPX B Aring -15 -KPX B Atilde -15 -KPX B O -3 -KPX B OE 0 -KPX B Oacute -3 -KPX B Ocircumflex -3 -KPX B Odieresis -3 -KPX B Ograve -3 -KPX B Oslash 0 -KPX B V -25 -KPX B W -15 -KPX B Y -31 -KPX C A -25 -KPX C AE -24 -KPX C Aacute -25 -KPX C Adieresis -25 -KPX C Aring -25 -KPX C H -6 -KPX C K -5 -KPX C O -4 -KPX C Oacute -4 -KPX C Odieresis -4 -KPX Ccedilla A -28 -KPX D A -33 -KPX D Aacute -33 -KPX D Acircumflex -33 -KPX D Adieresis -33 -KPX D Agrave -33 -KPX D Aring -33 -KPX D Atilde -33 -KPX D J -1 -KPX D T -30 -KPX D V -32 -KPX D W -18 -KPX D X -38 -KPX D Y -44 -KPX F A -55 -KPX F Aacute -55 -KPX F Acircumflex -55 -KPX F Adieresis -55 -KPX F Agrave -55 -KPX F Aring -55 -KPX F Atilde -55 -KPX F J -50 -KPX F O -15 -KPX F Odieresis -15 -KPX F a -26 -KPX F aacute -26 -KPX F adieresis -26 -KPX F ae -26 -KPX F aring -26 -KPX F comma -102 -KPX F e -19 -KPX F eacute -19 -KPX F hyphen -12 -KPX F i -8 -KPX F j -8 -KPX F o -17 -KPX F oacute -17 -KPX F odieresis -17 -KPX F oe -17 -KPX F oslash -17 -KPX F period -102 -KPX F r -32 -KPX F u -28 -KPX G A -4 -KPX G AE -2 -KPX G Aacute -4 -KPX G Acircumflex -4 -KPX G Adieresis -4 -KPX G Agrave -4 -KPX G Aring -4 -KPX G Atilde -4 -KPX G T -31 -KPX G V -36 -KPX G W -20 -KPX G Y -47 -KPX J A -22 -KPX J AE -21 -KPX J Adieresis -22 -KPX J Aring -22 -KPX K C -37 -KPX K G -40 -KPX K O -37 -KPX K OE -33 -KPX K Oacute -37 -KPX K Odieresis -37 -KPX K S -27 -KPX K T 22 -KPX K a -6 -KPX K adieresis -6 -KPX K ae -6 -KPX K aring -6 -KPX K e -26 -KPX K hyphen -38 -KPX K o -26 -KPX K oacute -26 -KPX K odieresis -26 -KPX K u -21 -KPX K udieresis -21 -KPX K y -52 -KPX L A 18 -KPX L AE 20 -KPX L Aacute 18 -KPX L Adieresis 18 -KPX L Aring 18 -KPX L C -28 -KPX L Ccedilla -32 -KPX L G -31 -KPX L O -29 -KPX L Oacute -29 -KPX L Ocircumflex -29 -KPX L Odieresis -29 -KPX L Ograve -29 -KPX L Otilde -29 -KPX L S -11 -KPX L T -81 -KPX L U -25 -KPX L Udieresis -25 -KPX L V -78 -KPX L W -50 -KPX L Y -92 -KPX L hyphen -110 -KPX L quotedblright -105 -KPX L quoteright -116 -KPX L u -9 -KPX L udieresis -9 -KPX L y -47 -KPX N A -4 -KPX N AE -2 -KPX N Aacute -4 -KPX N Adieresis -4 -KPX N Aring -4 -KPX N C 1 -KPX N Ccedilla 0 -KPX N G -1 -KPX N O 1 -KPX N Oacute 1 -KPX N Odieresis 1 -KPX N a -1 -KPX N aacute -1 -KPX N adieresis -1 -KPX N ae -1 -KPX N aring -1 -KPX N comma -4 -KPX N e 1 -KPX N eacute 1 -KPX N o 1 -KPX N oacute 1 -KPX N odieresis 1 -KPX N oslash 4 -KPX N period -4 -KPX N u 0 -KPX N udieresis 0 -KPX O A -29 -KPX O AE -29 -KPX O Aacute -29 -KPX O Adieresis -29 -KPX O Aring -29 -KPX O T -27 -KPX O V -30 -KPX O W -14 -KPX O X -34 -KPX O Y -42 -KPX Oacute A -29 -KPX Oacute T -27 -KPX Oacute V -30 -KPX Oacute W -14 -KPX Oacute Y -42 -KPX Ocircumflex T -27 -KPX Ocircumflex V -30 -KPX Ocircumflex Y -42 -KPX Odieresis A -29 -KPX Odieresis T -27 -KPX Odieresis V -30 -KPX Odieresis W -14 -KPX Odieresis X -34 -KPX Odieresis Y -42 -KPX Ograve T -27 -KPX Ograve V -30 -KPX Ograve Y -42 -KPX Oslash A -27 -KPX Otilde T -27 -KPX Otilde V -30 -KPX Otilde Y -42 -KPX P A -62 -KPX P AE -64 -KPX P Aacute -62 -KPX P Adieresis -62 -KPX P Aring -62 -KPX P J -70 -KPX P a -21 -KPX P aacute -21 -KPX P adieresis -21 -KPX P ae -21 -KPX P aring -21 -KPX P comma -123 -KPX P e -24 -KPX P eacute -24 -KPX P hyphen -28 -KPX P o -24 -KPX P oacute -24 -KPX P odieresis -24 -KPX P oe -22 -KPX P oslash -22 -KPX P period -123 -KPX R C -7 -KPX R Ccedilla -7 -KPX R G -9 -KPX R O -6 -KPX R OE -3 -KPX R Oacute -6 -KPX R Odieresis -6 -KPX R T -11 -KPX R U -8 -KPX R Udieresis -8 -KPX R V -22 -KPX R W -15 -KPX R Y -28 -KPX R a -6 -KPX R aacute -6 -KPX R adieresis -6 -KPX R ae -6 -KPX R aring -6 -KPX R e -5 -KPX R eacute -5 -KPX R hyphen 4 -KPX R o -5 -KPX R oacute -5 -KPX R odieresis -5 -KPX R oe -5 -KPX R u -4 -KPX R uacute -5 -KPX R udieresis -5 -KPX R y -1 -KPX S A -15 -KPX S AE -14 -KPX S Aacute -15 -KPX S Adieresis -15 -KPX S Aring -15 -KPX S T -14 -KPX S V -25 -KPX S W -17 -KPX S Y -31 -KPX S t -2 -KPX T A -78 -KPX T AE -76 -KPX T Aacute -78 -KPX T Acircumflex -78 -KPX T Adieresis -78 -KPX T Agrave -78 -KPX T Aring -78 -KPX T Atilde -78 -KPX T C -27 -KPX T G -31 -KPX T J -80 -KPX T O -26 -KPX T OE -21 -KPX T Oacute -26 -KPX T Ocircumflex -26 -KPX T Odieresis -26 -KPX T Ograve -26 -KPX T Oslash -27 -KPX T Otilde -26 -KPX T S -15 -KPX T V 17 -KPX T W 19 -KPX T Y 19 -KPX T a -79 -KPX T ae -79 -KPX T c -73 -KPX T colon -95 -KPX T comma -80 -KPX T e -77 -KPX T g -76 -KPX T guillemotleft -100 -KPX T guilsinglleft -96 -KPX T hyphen -60 -KPX T i -2 -KPX T j -2 -KPX T o -77 -KPX T oslash -72 -KPX T period -80 -KPX T r -77 -KPX T s -74 -KPX T semicolon -93 -KPX T u -75 -KPX T v -79 -KPX T w -80 -KPX T y -79 -KPX U A -32 -KPX U AE -32 -KPX U Aacute -32 -KPX U Acircumflex -32 -KPX U Adieresis -32 -KPX U Aring -32 -KPX U Atilde -32 -KPX U comma -24 -KPX U m -1 -KPX U n -1 -KPX U p 0 -KPX U period -22 -KPX U r -6 -KPX Uacute A -32 -KPX Uacute comma -24 -KPX Uacute m -1 -KPX Uacute n -1 -KPX Uacute p 0 -KPX Uacute period -22 -KPX Uacute r -6 -KPX Ucircumflex A -32 -KPX Udieresis A -32 -KPX Udieresis b 0 -KPX Udieresis comma -24 -KPX Udieresis m -1 -KPX Udieresis n -1 -KPX Udieresis p 0 -KPX Udieresis period -22 -KPX Udieresis r -6 -KPX Ugrave A -32 -KPX V A -58 -KPX V AE -60 -KPX V Aacute -58 -KPX V Acircumflex -58 -KPX V Adieresis -58 -KPX V Agrave -58 -KPX V Aring -58 -KPX V Atilde -58 -KPX V C -30 -KPX V G -34 -KPX V O -30 -KPX V Oacute -30 -KPX V Ocircumflex -30 -KPX V Odieresis -30 -KPX V Ograve -30 -KPX V Oslash -27 -KPX V Otilde -30 -KPX V S -26 -KPX V T 18 -KPX V a -47 -KPX V ae -47 -KPX V colon -41 -KPX V comma -73 -KPX V e -46 -KPX V g -44 -KPX V guillemotleft -68 -KPX V guilsinglleft -64 -KPX V hyphen -29 -KPX V i -5 -KPX V o -46 -KPX V oslash -41 -KPX V period -73 -KPX V r -37 -KPX V semicolon -41 -KPX V u -35 -KPX V y -12 -KPX W A -42 -KPX W AE -43 -KPX W Aacute -42 -KPX W Acircumflex -42 -KPX W Adieresis -42 -KPX W Agrave -42 -KPX W Aring -42 -KPX W Atilde -42 -KPX W C -15 -KPX W G -18 -KPX W O -15 -KPX W Oacute -15 -KPX W Ocircumflex -15 -KPX W Odieresis -15 -KPX W Ograve -15 -KPX W Oslash -12 -KPX W Otilde -15 -KPX W S -19 -KPX W T 20 -KPX W a -29 -KPX W ae -29 -KPX W colon -31 -KPX W comma -46 -KPX W e -26 -KPX W g -24 -KPX W guillemotleft -48 -KPX W guilsinglleft -44 -KPX W hyphen -9 -KPX W i -3 -KPX W o -26 -KPX W oslash -21 -KPX W period -46 -KPX W r -26 -KPX W semicolon -31 -KPX W u -24 -KPX W y -2 -KPX X C -33 -KPX X O -33 -KPX X Odieresis -33 -KPX X Q -33 -KPX X a -12 -KPX X e -31 -KPX X hyphen -40 -KPX X o -31 -KPX X u -27 -KPX X y -42 -KPX Y A -80 -KPX Y AE -82 -KPX Y Aacute -80 -KPX Y Acircumflex -80 -KPX Y Adieresis -80 -KPX Y Agrave -80 -KPX Y Aring -80 -KPX Y Atilde -80 -KPX Y C -42 -KPX Y G -47 -KPX Y O -43 -KPX Y Oacute -43 -KPX Y Ocircumflex -43 -KPX Y Odieresis -43 -KPX Y Ograve -43 -KPX Y Oslash -44 -KPX Y Otilde -43 -KPX Y S -33 -KPX Y T 20 -KPX Y a -73 -KPX Y ae -73 -KPX Y colon -60 -KPX Y comma -92 -KPX Y e -74 -KPX Y g -73 -KPX Y guillemotleft -103 -KPX Y guilsinglleft -99 -KPX Y hyphen -68 -KPX Y i -3 -KPX Y o -74 -KPX Y oslash -69 -KPX Y p -48 -KPX Y period -92 -KPX Y semicolon -60 -KPX Y u -54 -KPX Y v -31 -KPX Z v -24 -KPX Z y -25 -KPX a j -6 -KPX a quoteright -10 -KPX a v -19 -KPX a w -14 -KPX a y -20 -KPX aacute v -19 -KPX aacute w -14 -KPX aacute y -20 -KPX adieresis v -19 -KPX adieresis w -14 -KPX adieresis y -20 -KPX ae v -17 -KPX ae w -11 -KPX ae y -19 -KPX agrave v -19 -KPX agrave w -14 -KPX agrave y -20 -KPX aring v -19 -KPX aring w -14 -KPX aring y -20 -KPX b v -13 -KPX b w -8 -KPX b y -15 -KPX c h 2 -KPX c k 1 -KPX comma one -83 -KPX comma quotedblright -22 -KPX comma quoteright -33 -KPX e quoteright -5 -KPX e t -9 -KPX e v -16 -KPX e w -11 -KPX e x -19 -KPX e y -18 -KPX eacute v -16 -KPX eacute w -11 -KPX eacute y -18 -KPX ecircumflex v -16 -KPX ecircumflex w -11 -KPX ecircumflex y -18 -KPX eight four 6 -KPX eight one -36 -KPX eight seven -16 -KPX f a -9 -KPX f aacute -9 -KPX f adieresis -9 -KPX f ae -9 -KPX f aring -9 -KPX f e -13 -KPX f eacute -13 -KPX f f 17 -KPX f i -5 -KPX f j -5 -KPX f l -5 -KPX f o -12 -KPX f oacute -12 -KPX f odieresis -12 -KPX f oe -12 -KPX f oslash -8 -KPX f quoteright 12 -KPX f s -4 -KPX f t 17 -KPX five four 4 -KPX five one -56 -KPX five seven -16 -KPX four four 8 -KPX four one -65 -KPX four seven -39 -KPX g a 1 -KPX g adieresis 1 -KPX g ae 1 -KPX g aring 1 -KPX g e 4 -KPX g eacute 4 -KPX g l 4 -KPX g oacute 4 -KPX g odieresis 4 -KPX g r 0 -KPX guillemotright A -42 -KPX guillemotright AE -43 -KPX guillemotright Aacute -42 -KPX guillemotright Adieresis -42 -KPX guillemotright Aring -42 -KPX guillemotright T -101 -KPX guillemotright V -68 -KPX guillemotright W -48 -KPX guillemotright Y -102 -KPX guilsinglright A -38 -KPX guilsinglright AE -39 -KPX guilsinglright Aacute -38 -KPX guilsinglright Adieresis -38 -KPX guilsinglright Aring -38 -KPX guilsinglright T -96 -KPX guilsinglright V -64 -KPX guilsinglright W -44 -KPX guilsinglright Y -98 -KPX h quoteright -3 -KPX h y -14 -KPX hyphen A -3 -KPX hyphen AE -4 -KPX hyphen Aacute -3 -KPX hyphen Adieresis -3 -KPX hyphen Aring -3 -KPX hyphen T -61 -KPX hyphen V -29 -KPX hyphen W -9 -KPX hyphen Y -67 -KPX i T -2 -KPX i j 0 -KPX k a -5 -KPX k aacute -5 -KPX k adieresis -5 -KPX k ae -5 -KPX k aring -5 -KPX k comma 1 -KPX k e -19 -KPX k eacute -19 -KPX k g -18 -KPX k hyphen -31 -KPX k o -19 -KPX k oacute -19 -KPX k odieresis -19 -KPX k period 1 -KPX k s -9 -KPX k u -3 -KPX k udieresis -3 -KPX l v -3 -KPX l y -3 -KPX m p 4 -KPX m v -13 -KPX m w -7 -KPX m y -14 -KPX n T -75 -KPX n p 4 -KPX n quoteright -3 -KPX n v -14 -KPX n w -8 -KPX n y -14 -KPX nine four 1 -KPX nine one -31 -KPX nine seven -19 -KPX o T -77 -KPX o quoteright -8 -KPX o t -7 -KPX o v -15 -KPX o w -9 -KPX o x -18 -KPX o y -17 -KPX oacute v -15 -KPX oacute w -9 -KPX oacute y -17 -KPX ocircumflex t -7 -KPX odieresis t -7 -KPX odieresis v -15 -KPX odieresis w -9 -KPX odieresis x -18 -KPX odieresis y -17 -KPX ograve v -15 -KPX ograve w -9 -KPX ograve y -17 -KPX one comma -54 -KPX one eight -46 -KPX one five -49 -KPX one four -59 -KPX one nine -47 -KPX one one -90 -KPX one period -54 -KPX one seven -64 -KPX one six -44 -KPX one three -51 -KPX one two -50 -KPX one zero -43 -KPX p t -6 -KPX p y -15 -KPX period one -83 -KPX period quotedblright -22 -KPX period quoteright -33 -KPX q c 5 -KPX q u 1 -KPX quotedblbase A 24 -KPX quotedblbase AE 25 -KPX quotedblbase T -60 -KPX quotedblbase V -53 -KPX quotedblbase W -25 -KPX quotedblbase Y -71 -KPX quotedblleft A -41 -KPX quotedblleft AE -45 -KPX quotedblleft Aacute -41 -KPX quotedblleft Adieresis -41 -KPX quotedblleft Aring -41 -KPX quotedblleft T 16 -KPX quotedblleft V 24 -KPX quotedblleft W 31 -KPX quotedblleft Y 14 -KPX quotedblright A -49 -KPX quotedblright AE -52 -KPX quotedblright Aacute -49 -KPX quotedblright Adieresis -49 -KPX quotedblright Aring -49 -KPX quotedblright T 11 -KPX quotedblright V 16 -KPX quotedblright W 23 -KPX quotedblright Y 9 -KPX quoteleft A -52 -KPX quoteleft AE -56 -KPX quoteleft Aacute -52 -KPX quoteleft Adieresis -52 -KPX quoteleft Aring -52 -KPX quoteleft T 5 -KPX quoteleft V 13 -KPX quoteleft W 20 -KPX quoteleft Y 3 -KPX quoteright A -60 -KPX quoteright AE -63 -KPX quoteright Aacute -60 -KPX quoteright Adieresis -60 -KPX quoteright Aring -60 -KPX quoteright comma -48 -KPX quoteright d -16 -KPX quoteright o -24 -KPX quoteright period -48 -KPX quoteright r -15 -KPX quoteright s -13 -KPX quoteright t -3 -KPX quoteright v 0 -KPX quoteright w 1 -KPX quoteright y 0 -KPX r a -3 -KPX r aacute -3 -KPX r acircumflex -3 -KPX r adieresis -3 -KPX r ae -3 -KPX r agrave -3 -KPX r aring -3 -KPX r c -6 -KPX r ccedilla -3 -KPX r colon -5 -KPX r comma -48 -KPX r d -3 -KPX r e -10 -KPX r eacute -10 -KPX r ecircumflex -10 -KPX r egrave -10 -KPX r f 23 -KPX r g -4 -KPX r h 2 -KPX r hyphen -30 -KPX r i 1 -KPX r j 0 -KPX r k 1 -KPX r l 1 -KPX r m 2 -KPX r n 2 -KPX r o -11 -KPX r oacute -11 -KPX r ocircumflex -11 -KPX r odieresis -11 -KPX r oe -7 -KPX r ograve -11 -KPX r oslash -7 -KPX r p 4 -KPX r period -48 -KPX r q -4 -KPX r quoteright 13 -KPX r r -3 -KPX r s 2 -KPX r semicolon -5 -KPX r t 23 -KPX r u 0 -KPX r v 24 -KPX r w 22 -KPX r x 19 -KPX r y 23 -KPX r z 6 -KPX s quoteright -5 -KPX s t -5 -KPX seven colon -47 -KPX seven comma -95 -KPX seven eight -15 -KPX seven five -22 -KPX seven four -72 -KPX seven one -34 -KPX seven period -95 -KPX seven seven 3 -KPX seven six -24 -KPX seven three -14 -KPX seven two -13 -KPX six four 6 -KPX six one -31 -KPX six seven -13 -KPX t S -8 -KPX t a 1 -KPX t aacute 1 -KPX t adieresis 1 -KPX t ae 1 -KPX t aring 1 -KPX t colon -13 -KPX t e -10 -KPX t eacute -10 -KPX t h 1 -KPX t o -10 -KPX t oacute -10 -KPX t odieresis -10 -KPX t quoteright 10 -KPX t semicolon -13 -KPX three four 8 -KPX three one -34 -KPX three seven -15 -KPX two four -38 -KPX two one -29 -KPX two seven -13 -KPX u quoteright 5 -KPX v a -16 -KPX v aacute -16 -KPX v acircumflex -16 -KPX v adieresis -16 -KPX v ae -16 -KPX v agrave -16 -KPX v aring -16 -KPX v atilde -16 -KPX v c -12 -KPX v colon -8 -KPX v comma -51 -KPX v e -16 -KPX v eacute -16 -KPX v ecircumflex -16 -KPX v egrave -16 -KPX v g -15 -KPX v hyphen -3 -KPX v l -2 -KPX v o -16 -KPX v oacute -16 -KPX v odieresis -16 -KPX v ograve -16 -KPX v oslash -12 -KPX v period -51 -KPX v s -10 -KPX v semicolon -8 -KPX w a -13 -KPX w aacute -13 -KPX w acircumflex -13 -KPX w adieresis -13 -KPX w ae -13 -KPX w agrave -13 -KPX w aring -13 -KPX w atilde -13 -KPX w c -5 -KPX w colon -10 -KPX w comma -37 -KPX w e -9 -KPX w eacute -9 -KPX w ecircumflex -9 -KPX w egrave -9 -KPX w g -8 -KPX w hyphen 3 -KPX w l -4 -KPX w o -9 -KPX w oacute -9 -KPX w odieresis -9 -KPX w ograve -9 -KPX w oslash -5 -KPX w period -37 -KPX w s -7 -KPX w semicolon -10 -KPX x a -10 -KPX x c -13 -KPX x e -17 -KPX x eacute -17 -KPX x o -17 -KPX x q -14 -KPX y a -16 -KPX y aacute -16 -KPX y acircumflex -16 -KPX y adieresis -16 -KPX y ae -16 -KPX y agrave -16 -KPX y aring -16 -KPX y atilde -16 -KPX y c -13 -KPX y colon -9 -KPX y comma -50 -KPX y e -17 -KPX y eacute -17 -KPX y ecircumflex -17 -KPX y egrave -17 -KPX y g -15 -KPX y hyphen -2 -KPX y l -3 -KPX y o -17 -KPX y oacute -17 -KPX y odieresis -17 -KPX y ograve -17 -KPX y oslash -12 -KPX y period -49 -KPX y s -11 -KPX y semicolon -9 -KPX zero four 5 -KPX zero one -31 -KPX zero seven -21 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/HelvBo.afm b/misc/gs_afm/HelvBo.afm deleted file mode 100644 index a1100ae8d8..0000000000 --- a/misc/gs_afm/HelvBo.afm +++ /dev/null @@ -1,1257 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/3/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusSanL-BoldCond -FullName Nimbus Sans L Bold Condensed -FamilyName Nimbus Sans L -Weight Bold -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -139 -228 822 975 -CapHeight 718 -XHeight 532 -Descender -207 -Ascender 718 -StartCharMetrics 232 -C 32 ; WX 228 ; N space ; B 21 0 21 0 ; -C 33 ; WX 273 ; N exclam ; B 74 0 200 718 ; -C 34 ; WX 389 ; N quotedbl ; B 80 447 308 718 ; -C 35 ; WX 456 ; N numbersign ; B 15 0 441 698 ; -C 36 ; WX 456 ; N dollar ; B 24 -115 429 775 ; -C 37 ; WX 729 ; N percent ; B 23 -19 706 710 ; -C 38 ; WX 592 ; N ampersand ; B 44 -19 575 718 ; -C 39 ; WX 228 ; N quoteright ; B 57 445 171 718 ; -C 40 ; WX 273 ; N parenleft ; B 29 -207 257 734 ; -C 41 ; WX 273 ; N parenright ; B 16 -207 244 734 ; -C 42 ; WX 319 ; N asterisk ; B 22 387 297 718 ; -C 43 ; WX 479 ; N plus ; B 33 0 446 506 ; -C 44 ; WX 228 ; N comma ; B 52 -168 175 147 ; -C 45 ; WX 273 ; N hyphen ; B 22 215 251 345 ; -C 46 ; WX 228 ; N period ; B 52 0 175 147 ; -C 47 ; WX 228 ; N slash ; B -27 -19 255 737 ; -C 48 ; WX 456 ; N zero ; B 26 -19 430 710 ; -C 49 ; WX 456 ; N one ; B 57 0 310 710 ; -C 50 ; WX 456 ; N two ; B 21 0 419 710 ; -C 51 ; WX 456 ; N three ; B 22 -19 423 710 ; -C 52 ; WX 456 ; N four ; B 22 0 431 710 ; -C 53 ; WX 456 ; N five ; B 22 -19 423 698 ; -C 54 ; WX 456 ; N six ; B 25 -19 426 710 ; -C 55 ; WX 456 ; N seven ; B 20 0 433 698 ; -C 56 ; WX 456 ; N eight ; B 26 -19 430 710 ; -C 57 ; WX 456 ; N nine ; B 25 -19 428 710 ; -C 58 ; WX 273 ; N colon ; B 75 0 198 512 ; -C 59 ; WX 273 ; N semicolon ; B 75 -168 198 512 ; -C 60 ; WX 479 ; N less ; B 31 -15 448 521 ; -C 61 ; WX 479 ; N equal ; B 33 87 446 419 ; -C 62 ; WX 479 ; N greater ; B 31 -15 448 521 ; -C 63 ; WX 501 ; N question ; B 49 0 456 727 ; -C 64 ; WX 800 ; N at ; B 97 -19 702 737 ; -C 65 ; WX 592 ; N A ; B 16 0 576 718 ; -C 66 ; WX 592 ; N B ; B 62 0 549 718 ; -C 67 ; WX 592 ; N C ; B 36 -19 561 737 ; -C 68 ; WX 592 ; N D ; B 62 0 562 718 ; -C 69 ; WX 547 ; N E ; B 62 0 509 718 ; -C 70 ; WX 501 ; N F ; B 62 0 481 718 ; -C 71 ; WX 638 ; N G ; B 36 -19 585 737 ; -C 72 ; WX 592 ; N H ; B 58 0 534 718 ; -C 73 ; WX 228 ; N I ; B 52 0 175 718 ; -C 74 ; WX 456 ; N J ; B 18 -18 397 718 ; -C 75 ; WX 592 ; N K ; B 71 0 592 718 ; -C 76 ; WX 501 ; N L ; B 62 0 478 718 ; -C 77 ; WX 683 ; N M ; B 57 0 627 718 ; -C 78 ; WX 592 ; N N ; B 57 0 536 718 ; -C 79 ; WX 638 ; N O ; B 36 -19 602 737 ; -C 80 ; WX 547 ; N P ; B 62 0 514 718 ; -C 81 ; WX 638 ; N Q ; B 36 -52 604 737 ; -C 82 ; WX 592 ; N R ; B 62 0 555 718 ; -C 83 ; WX 547 ; N S ; B 32 -19 516 737 ; -C 84 ; WX 501 ; N T ; B 11 0 490 718 ; -C 85 ; WX 592 ; N U ; B 59 -19 534 718 ; -C 86 ; WX 547 ; N V ; B 16 0 531 718 ; -C 87 ; WX 774 ; N W ; B 13 0 762 718 ; -C 88 ; WX 547 ; N X ; B 11 0 535 718 ; -C 89 ; WX 547 ; N Y ; B 12 0 535 718 ; -C 90 ; WX 501 ; N Z ; B 20 0 481 718 ; -C 91 ; WX 273 ; N bracketleft ; B 52 -196 253 722 ; -C 92 ; WX 228 ; N backslash ; B -27 -19 255 737 ; -C 93 ; WX 273 ; N bracketright ; B 20 -196 221 722 ; -C 94 ; WX 479 ; N asciicircum ; B 51 323 428 698 ; -C 95 ; WX 456 ; N underscore ; B 0 -125 456 -75 ; -C 96 ; WX 228 ; N quoteleft ; B 57 454 171 727 ; -C 97 ; WX 456 ; N a ; B 24 -14 432 546 ; -C 98 ; WX 501 ; N b ; B 50 -14 474 718 ; -C 99 ; WX 456 ; N c ; B 28 -14 430 546 ; -C 100 ; WX 501 ; N d ; B 28 -14 452 718 ; -C 101 ; WX 456 ; N e ; B 19 -14 433 546 ; -C 102 ; WX 273 ; N f ; B 8 0 261 727 ; -C 103 ; WX 501 ; N g ; B 33 -217 453 546 ; -C 104 ; WX 501 ; N h ; B 53 0 448 718 ; -C 105 ; WX 228 ; N i ; B 57 0 171 725 ; -C 106 ; WX 228 ; N j ; B 2 -214 171 725 ; -C 107 ; WX 456 ; N k ; B 57 0 461 718 ; -C 108 ; WX 228 ; N l ; B 57 0 171 718 ; -C 109 ; WX 729 ; N m ; B 52 0 677 546 ; -C 110 ; WX 501 ; N n ; B 53 0 448 546 ; -C 111 ; WX 501 ; N o ; B 28 -14 474 546 ; -C 112 ; WX 501 ; N p ; B 51 -207 474 546 ; -C 113 ; WX 501 ; N q ; B 28 -207 453 546 ; -C 114 ; WX 319 ; N r ; B 52 0 306 546 ; -C 115 ; WX 456 ; N s ; B 25 -14 426 546 ; -C 116 ; WX 273 ; N t ; B 8 -6 253 676 ; -C 117 ; WX 501 ; N u ; B 54 -14 447 532 ; -C 118 ; WX 456 ; N v ; B 11 0 445 532 ; -C 119 ; WX 638 ; N w ; B 8 0 631 532 ; -C 120 ; WX 456 ; N x ; B 12 0 444 532 ; -C 121 ; WX 456 ; N y ; B 8 -214 442 532 ; -C 122 ; WX 410 ; N z ; B 16 0 394 532 ; -C 123 ; WX 319 ; N braceleft ; B 39 -196 299 722 ; -C 124 ; WX 230 ; N bar ; B 69 -19 161 737 ; -C 125 ; WX 319 ; N braceright ; B 20 -196 280 722 ; -C 126 ; WX 479 ; N asciitilde ; B 50 173 429 336 ; -C 161 ; WX 273 ; N exclamdown ; B 74 -186 200 532 ; -C 162 ; WX 456 ; N cent ; B 28 -118 430 628 ; -C 163 ; WX 456 ; N sterling ; B 23 -16 444 718 ; -C 164 ; WX 137 ; N fraction ; B -139 -19 276 710 ; -C 165 ; WX 456 ; N yen ; B -7 0 463 698 ; -C 166 ; WX 456 ; N florin ; B -8 -210 423 737 ; -C 167 ; WX 456 ; N section ; B 28 -184 428 727 ; -C 168 ; WX 456 ; N currency ; B -2 76 458 636 ; -C 169 ; WX 195 ; N quotesingle ; B 57 447 138 718 ; -C 170 ; WX 410 ; N quotedblleft ; B 52 454 358 727 ; -C 171 ; WX 456 ; N guillemotleft ; B 72 76 384 484 ; -C 172 ; WX 273 ; N guilsinglleft ; B 68 76 205 484 ; -C 173 ; WX 273 ; N guilsinglright ; B 68 76 205 484 ; -C 174 ; WX 501 ; N fi ; B 8 0 444 727 ; -C 175 ; WX 501 ; N fl ; B 8 0 444 727 ; -C 177 ; WX 456 ; N endash ; B 0 226 456 333 ; -C 178 ; WX 456 ; N dagger ; B 30 -171 426 718 ; -C 179 ; WX 456 ; N daggerdbl ; B 30 -171 426 718 ; -C 180 ; WX 228 ; N periodcentered ; B 48 172 180 334 ; -C 182 ; WX 456 ; N paragraph ; B -7 -191 442 700 ; -C 183 ; WX 287 ; N bullet ; B 8 194 279 524 ; -C 184 ; WX 228 ; N quotesinglbase ; B 57 -146 171 127 ; -C 185 ; WX 410 ; N quotedblbase ; B 52 -146 358 127 ; -C 186 ; WX 410 ; N quotedblright ; B 52 445 358 718 ; -C 187 ; WX 456 ; N guillemotright ; B 72 76 384 484 ; -C 188 ; WX 820 ; N ellipsis ; B 75 0 745 147 ; -C 189 ; WX 820 ; N perthousand ; B -2 -19 822 710 ; -C 191 ; WX 501 ; N questiondown ; B 45 -195 452 532 ; -C 193 ; WX 273 ; N grave ; B -19 604 184 750 ; -C 194 ; WX 273 ; N acute ; B 89 604 292 750 ; -C 195 ; WX 273 ; N circumflex ; B -8 604 281 750 ; -C 196 ; WX 273 ; N tilde ; B -14 610 287 737 ; -C 197 ; WX 273 ; N macron ; B -5 605 278 678 ; -C 198 ; WX 273 ; N breve ; B -2 604 275 750 ; -C 199 ; WX 273 ; N dotaccent ; B 85 614 189 729 ; -C 200 ; WX 273 ; N dieresis ; B 5 614 268 729 ; -C 202 ; WX 273 ; N ring ; B 48 568 225 776 ; -C 203 ; WX 273 ; N cedilla ; B 5 -228 201 0 ; -C 205 ; WX 273 ; N hungarumlaut ; B 7 604 399 750 ; -C 206 ; WX 273 ; N ogonek ; B 58 -228 249 0 ; -C 207 ; WX 273 ; N caron ; B -8 604 281 750 ; -C 208 ; WX 820 ; N emdash ; B 0 226 820 333 ; -C 225 ; WX 820 ; N AE ; B 4 0 782 718 ; -C 227 ; WX 303 ; N ordfeminine ; B 18 276 285 737 ; -C 232 ; WX 501 ; N Lslash ; B -16 0 478 718 ; -C 233 ; WX 638 ; N Oslash ; B 27 -27 610 745 ; -C 234 ; WX 820 ; N OE ; B 30 -19 788 737 ; -C 235 ; WX 299 ; N ordmasculine ; B 5 276 295 737 ; -C 241 ; WX 729 ; N ae ; B 24 -14 704 546 ; -C 245 ; WX 228 ; N dotlessi ; B 57 0 171 532 ; -C 248 ; WX 228 ; N lslash ; B -15 0 243 718 ; -C 249 ; WX 501 ; N oslash ; B 18 -29 483 560 ; -C 250 ; WX 774 ; N oe ; B 28 -14 748 546 ; -C 251 ; WX 501 ; N germandbls ; B 57 -14 475 731 ; -C -1 ; WX 547 ; N Yacute ; B 12 0 535 936 ; -C -1 ; WX 592 ; N Ucircumflex ; B 59 -19 534 936 ; -C -1 ; WX 592 ; N Ugrave ; B 59 -19 534 936 ; -C -1 ; WX 501 ; N Zcaron ; B 20 0 481 936 ; -C -1 ; WX 547 ; N Ydieresis ; B 12 0 535 915 ; -C -1 ; WX 273 ; N threesuperior ; B 7 271 267 722 ; -C -1 ; WX 592 ; N Uacute ; B 59 -19 534 936 ; -C -1 ; WX 273 ; N twosuperior ; B 7 283 266 722 ; -C -1 ; WX 592 ; N Udieresis ; B 59 -19 534 915 ; -C -1 ; WX 228 ; N middot ; B 48 172 180 334 ; -C -1 ; WX 273 ; N onesuperior ; B 21 283 194 710 ; -C -1 ; WX 456 ; N aacute ; B 24 -14 432 750 ; -C -1 ; WX 456 ; N agrave ; B 24 -14 432 750 ; -C -1 ; WX 456 ; N acircumflex ; B 24 -14 432 750 ; -C -1 ; WX 547 ; N Scaron ; B 32 -19 516 936 ; -C -1 ; WX 638 ; N Otilde ; B 36 -19 602 923 ; -C -1 ; WX 273 ; N sfthyphen ; B 22 215 251 345 ; -C -1 ; WX 456 ; N atilde ; B 24 -14 432 737 ; -C -1 ; WX 456 ; N aring ; B 24 -14 432 803 ; -C -1 ; WX 456 ; N adieresis ; B 24 -14 432 729 ; -C -1 ; WX 638 ; N Ograve ; B 36 -19 602 936 ; -C -1 ; WX 638 ; N Ocircumflex ; B 36 -19 602 936 ; -C -1 ; WX 638 ; N Odieresis ; B 36 -19 602 915 ; -C -1 ; WX 592 ; N Ntilde ; B 57 0 536 923 ; -C -1 ; WX 456 ; N edieresis ; B 19 -14 433 729 ; -C -1 ; WX 456 ; N eacute ; B 19 -14 433 750 ; -C -1 ; WX 456 ; N egrave ; B 19 -14 433 750 ; -C -1 ; WX 228 ; N Icircumflex ; B -30 0 259 936 ; -C -1 ; WX 456 ; N ecircumflex ; B 19 -14 433 750 ; -C -1 ; WX 228 ; N Igrave ; B -41 0 175 936 ; -C -1 ; WX 228 ; N Iacute ; B 52 0 270 936 ; -C -1 ; WX 228 ; N Idieresis ; B -17 0 246 915 ; -C -1 ; WX 328 ; N degree ; B 47 426 281 712 ; -C -1 ; WX 547 ; N Ecircumflex ; B 62 0 509 936 ; -C -1 ; WX 479 ; N minus ; B 33 197 446 309 ; -C -1 ; WX 479 ; N multiply ; B 33 1 447 505 ; -C -1 ; WX 479 ; N divide ; B 33 -42 446 548 ; -C -1 ; WX 547 ; N Egrave ; B 62 0 509 936 ; -C -1 ; WX 820 ; N trademark ; B 36 306 784 718 ; -C -1 ; WX 638 ; N Oacute ; B 36 -19 602 936 ; -C -1 ; WX 501 ; N thorn ; B 51 -207 474 718 ; -C -1 ; WX 501 ; N eth ; B 28 -14 474 737 ; -C -1 ; WX 547 ; N Eacute ; B 62 0 509 936 ; -C -1 ; WX 456 ; N ccedilla ; B 28 -228 430 546 ; -C -1 ; WX 228 ; N idieresis ; B -17 0 246 729 ; -C -1 ; WX 228 ; N iacute ; B 57 0 270 750 ; -C -1 ; WX 228 ; N igrave ; B -41 0 171 750 ; -C -1 ; WX 479 ; N plusminus ; B 33 0 446 578 ; -C -1 ; WX 684 ; N onehalf ; B 21 -19 651 710 ; -C -1 ; WX 684 ; N onequarter ; B 21 -19 628 710 ; -C -1 ; WX 684 ; N threequarters ; B 13 -19 655 722 ; -C -1 ; WX 228 ; N icircumflex ; B -30 0 259 750 ; -C -1 ; WX 547 ; N Edieresis ; B 62 0 509 915 ; -C -1 ; WX 501 ; N ntilde ; B 53 0 448 737 ; -C -1 ; WX 592 ; N Aring ; B 16 0 576 975 ; -C -1 ; WX 501 ; N odieresis ; B 28 -14 474 729 ; -C -1 ; WX 501 ; N oacute ; B 28 -14 474 750 ; -C -1 ; WX 501 ; N ograve ; B 28 -14 474 750 ; -C -1 ; WX 501 ; N ocircumflex ; B 28 -14 474 750 ; -C -1 ; WX 501 ; N otilde ; B 28 -14 474 737 ; -C -1 ; WX 456 ; N scaron ; B 25 -14 426 750 ; -C -1 ; WX 501 ; N udieresis ; B 54 -14 447 729 ; -C -1 ; WX 501 ; N uacute ; B 54 -14 447 750 ; -C -1 ; WX 501 ; N ugrave ; B 54 -14 447 750 ; -C -1 ; WX 501 ; N ucircumflex ; B 54 -14 447 750 ; -C -1 ; WX 456 ; N yacute ; B 8 -214 442 750 ; -C -1 ; WX 410 ; N zcaron ; B 16 0 394 750 ; -C -1 ; WX 456 ; N ydieresis ; B 8 -214 442 729 ; -C -1 ; WX 604 ; N copyright ; B -9 -19 614 737 ; -C -1 ; WX 604 ; N registered ; B -9 -19 613 737 ; -C -1 ; WX 592 ; N Atilde ; B 16 0 576 923 ; -C -1 ; WX 228 ; N nbspace ; B 21 0 21 0 ; -C -1 ; WX 592 ; N Ccedilla ; B 36 -228 561 737 ; -C -1 ; WX 592 ; N Acircumflex ; B 16 0 576 936 ; -C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; -C -1 ; WX 479 ; N logicalnot ; B 33 108 446 419 ; -C -1 ; WX 592 ; N Aacute ; B 16 0 576 936 ; -C -1 ; WX 592 ; N Eth ; B -4 0 562 718 ; -C -1 ; WX 230 ; N brokenbar ; B 69 -19 161 737 ; -C -1 ; WX 547 ; N Thorn ; B 62 0 514 718 ; -C -1 ; WX 592 ; N Adieresis ; B 16 0 576 915 ; -C -1 ; WX 501 ; N mu ; B 54 -207 447 532 ; -C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ; -EndCharMetrics -StartKernData -StartKernPairs 998 -KPX A C -26 -KPX A Ccedilla -26 -KPX A G -27 -KPX A O -27 -KPX A Odieresis -27 -KPX A Q -27 -KPX A T -62 -KPX A U -24 -KPX A Uacute -24 -KPX A Ucircumflex -24 -KPX A Udieresis -24 -KPX A Ugrave -24 -KPX A V -50 -KPX A W -41 -KPX A Y -69 -KPX A a -1 -KPX A b -1 -KPX A c -11 -KPX A ccedilla -11 -KPX A comma 17 -KPX A d -11 -KPX A e -7 -KPX A g -16 -KPX A guillemotleft -35 -KPX A guilsinglleft -33 -KPX A hyphen 7 -KPX A o -14 -KPX A period 17 -KPX A q -12 -KPX A quotedblright -48 -KPX A quoteright -50 -KPX A t -13 -KPX A u -12 -KPX A v -29 -KPX A w -19 -KPX A y -27 -KPX Aacute C -26 -KPX Aacute G -27 -KPX Aacute O -27 -KPX Aacute Q -27 -KPX Aacute T -62 -KPX Aacute U -24 -KPX Aacute V -50 -KPX Aacute W -41 -KPX Aacute Y -69 -KPX Aacute a -1 -KPX Aacute b -1 -KPX Aacute c -11 -KPX Aacute comma 17 -KPX Aacute d -11 -KPX Aacute e -7 -KPX Aacute g -16 -KPX Aacute guillemotleft -35 -KPX Aacute guilsinglleft -33 -KPX Aacute hyphen 7 -KPX Aacute o -14 -KPX Aacute period 17 -KPX Aacute q -12 -KPX Aacute quoteright -50 -KPX Aacute t -13 -KPX Aacute u -12 -KPX Aacute v -29 -KPX Aacute w -19 -KPX Aacute y -27 -KPX Acircumflex C -26 -KPX Acircumflex G -27 -KPX Acircumflex O -27 -KPX Acircumflex Q -27 -KPX Acircumflex T -62 -KPX Acircumflex U -24 -KPX Acircumflex V -50 -KPX Acircumflex W -41 -KPX Acircumflex Y -69 -KPX Acircumflex comma 17 -KPX Acircumflex period 17 -KPX Adieresis C -26 -KPX Adieresis G -27 -KPX Adieresis O -27 -KPX Adieresis Q -27 -KPX Adieresis T -62 -KPX Adieresis U -24 -KPX Adieresis V -50 -KPX Adieresis W -41 -KPX Adieresis Y -69 -KPX Adieresis a -1 -KPX Adieresis b -1 -KPX Adieresis c -11 -KPX Adieresis comma 17 -KPX Adieresis d -11 -KPX Adieresis g -16 -KPX Adieresis guillemotleft -35 -KPX Adieresis guilsinglleft -33 -KPX Adieresis hyphen 7 -KPX Adieresis o -14 -KPX Adieresis period 17 -KPX Adieresis q -12 -KPX Adieresis quotedblright -48 -KPX Adieresis quoteright -50 -KPX Adieresis t -13 -KPX Adieresis u -12 -KPX Adieresis v -29 -KPX Adieresis w -19 -KPX Adieresis y -27 -KPX Agrave C -26 -KPX Agrave G -27 -KPX Agrave O -27 -KPX Agrave Q -27 -KPX Agrave T -62 -KPX Agrave U -24 -KPX Agrave V -50 -KPX Agrave W -41 -KPX Agrave Y -69 -KPX Agrave comma 17 -KPX Agrave period 17 -KPX Aring C -26 -KPX Aring G -27 -KPX Aring O -27 -KPX Aring Q -27 -KPX Aring T -62 -KPX Aring U -24 -KPX Aring V -50 -KPX Aring W -41 -KPX Aring Y -69 -KPX Aring a -1 -KPX Aring b -1 -KPX Aring c -11 -KPX Aring comma 17 -KPX Aring d -11 -KPX Aring e -7 -KPX Aring g -16 -KPX Aring guillemotleft -35 -KPX Aring guilsinglleft -33 -KPX Aring hyphen 7 -KPX Aring o -14 -KPX Aring period 17 -KPX Aring q -12 -KPX Aring quotedblright -48 -KPX Aring quoteright -50 -KPX Aring t -13 -KPX Aring u -12 -KPX Aring v -29 -KPX Aring w -19 -KPX Aring y -27 -KPX Atilde C -26 -KPX Atilde G -27 -KPX Atilde O -27 -KPX Atilde Q -27 -KPX Atilde T -62 -KPX Atilde U -24 -KPX Atilde V -50 -KPX Atilde W -41 -KPX Atilde Y -69 -KPX Atilde comma 17 -KPX Atilde period 17 -KPX B A -17 -KPX B AE -11 -KPX B Aacute -17 -KPX B Acircumflex -17 -KPX B Adieresis -17 -KPX B Aring -17 -KPX B Atilde -17 -KPX B O -4 -KPX B OE 1 -KPX B Oacute -4 -KPX B Ocircumflex -4 -KPX B Odieresis -4 -KPX B Ograve -4 -KPX B Oslash 0 -KPX B V -22 -KPX B W -17 -KPX B Y -29 -KPX C A -19 -KPX C AE -14 -KPX C Aacute -19 -KPX C Adieresis -19 -KPX C Aring -19 -KPX C H 1 -KPX C K -5 -KPX C O -2 -KPX C Oacute -2 -KPX C Odieresis -2 -KPX Ccedilla A -21 -KPX D A -24 -KPX D Aacute -24 -KPX D Acircumflex -24 -KPX D Adieresis -24 -KPX D Agrave -24 -KPX D Aring -24 -KPX D Atilde -24 -KPX D J 8 -KPX D T -3 -KPX D V -20 -KPX D W -13 -KPX D X -22 -KPX D Y -31 -KPX F A -43 -KPX F Aacute -43 -KPX F Acircumflex -43 -KPX F Adieresis -43 -KPX F Agrave -43 -KPX F Aring -43 -KPX F Atilde -43 -KPX F J -14 -KPX F O -10 -KPX F Odieresis -10 -KPX F a -15 -KPX F aacute -15 -KPX F adieresis -15 -KPX F ae -16 -KPX F aring -15 -KPX F comma -71 -KPX F e -6 -KPX F eacute -6 -KPX F hyphen 8 -KPX F i -6 -KPX F j -6 -KPX F o -11 -KPX F oacute -11 -KPX F odieresis -11 -KPX F oe -11 -KPX F oslash -11 -KPX F period -71 -KPX F r -22 -KPX F u -23 -KPX G A 1 -KPX G AE 7 -KPX G Aacute 1 -KPX G Acircumflex 1 -KPX G Adieresis 1 -KPX G Agrave 1 -KPX G Aring 1 -KPX G Atilde 1 -KPX G T -7 -KPX G V -24 -KPX G W -15 -KPX G Y -35 -KPX J A -21 -KPX J AE -15 -KPX J Adieresis -21 -KPX J Aring -21 -KPX K C -35 -KPX K G -36 -KPX K O -36 -KPX K OE -30 -KPX K Oacute -36 -KPX K Odieresis -36 -KPX K S -18 -KPX K T 23 -KPX K a 0 -KPX K adieresis 0 -KPX K ae -1 -KPX K aring 0 -KPX K e -17 -KPX K hyphen -26 -KPX K o -25 -KPX K oacute -25 -KPX K odieresis -25 -KPX K u -19 -KPX K udieresis -19 -KPX K y -48 -KPX L A 16 -KPX L AE 22 -KPX L Aacute 16 -KPX L Adieresis 16 -KPX L Aring 16 -KPX L C -13 -KPX L Ccedilla -16 -KPX L G -15 -KPX L O -16 -KPX L Oacute -16 -KPX L Ocircumflex -16 -KPX L Odieresis -16 -KPX L Ograve -16 -KPX L Otilde -16 -KPX L S 3 -KPX L T -70 -KPX L U -12 -KPX L Udieresis -12 -KPX L V -64 -KPX L W -50 -KPX L Y -83 -KPX L hyphen -8 -KPX L quotedblright -116 -KPX L quoteright -118 -KPX L u -7 -KPX L udieresis -7 -KPX L y -41 -KPX N A 0 -KPX N AE 6 -KPX N Aacute 0 -KPX N Adieresis 0 -KPX N Aring 0 -KPX N C 6 -KPX N Ccedilla 6 -KPX N G 5 -KPX N O 6 -KPX N Oacute 6 -KPX N Odieresis 6 -KPX N a 7 -KPX N aacute 7 -KPX N adieresis 7 -KPX N ae 6 -KPX N aring 7 -KPX N comma 12 -KPX N e 12 -KPX N eacute 12 -KPX N o 5 -KPX N oacute 5 -KPX N odieresis 5 -KPX N oslash 7 -KPX N period 12 -KPX N u 5 -KPX N udieresis 5 -KPX O A -27 -KPX O AE -22 -KPX O Aacute -27 -KPX O Adieresis -27 -KPX O Aring -27 -KPX O T -9 -KPX O V -26 -KPX O W -17 -KPX O X -26 -KPX O Y -38 -KPX Oacute A -27 -KPX Oacute T -9 -KPX Oacute V -26 -KPX Oacute W -17 -KPX Oacute Y -38 -KPX Ocircumflex T -9 -KPX Ocircumflex V -26 -KPX Ocircumflex Y -38 -KPX Odieresis A -27 -KPX Odieresis T -9 -KPX Odieresis V -26 -KPX Odieresis W -17 -KPX Odieresis X -26 -KPX Odieresis Y -38 -KPX Ograve T -9 -KPX Ograve V -26 -KPX Ograve Y -38 -KPX Oslash A -24 -KPX Otilde T -9 -KPX Otilde V -26 -KPX Otilde Y -38 -KPX P A -51 -KPX P AE -47 -KPX P Aacute -51 -KPX P Adieresis -51 -KPX P Aring -51 -KPX P J -36 -KPX P a -12 -KPX P aacute -12 -KPX P adieresis -12 -KPX P ae -13 -KPX P aring -12 -KPX P comma -92 -KPX P e -10 -KPX P eacute -10 -KPX P hyphen -3 -KPX P o -16 -KPX P oacute -16 -KPX P odieresis -16 -KPX P oe -16 -KPX P oslash -16 -KPX P period -92 -KPX R C -2 -KPX R Ccedilla -2 -KPX R G -3 -KPX R O -3 -KPX R OE 1 -KPX R Oacute -3 -KPX R Odieresis -3 -KPX R T 3 -KPX R U -1 -KPX R Udieresis -1 -KPX R V -16 -KPX R W -12 -KPX R Y -24 -KPX R a 0 -KPX R aacute 0 -KPX R adieresis 0 -KPX R ae -1 -KPX R aring 0 -KPX R e 2 -KPX R eacute 2 -KPX R hyphen 14 -KPX R o -4 -KPX R oacute -4 -KPX R odieresis -4 -KPX R oe -4 -KPX R u -1 -KPX R uacute -2 -KPX R udieresis -2 -KPX R y 3 -KPX S A -10 -KPX S AE -5 -KPX S Aacute -10 -KPX S Adieresis -10 -KPX S Aring -10 -KPX S T 0 -KPX S V -20 -KPX S W -15 -KPX S Y -27 -KPX S t 2 -KPX T A -63 -KPX T AE -59 -KPX T Aacute -63 -KPX T Acircumflex -63 -KPX T Adieresis -63 -KPX T Agrave -63 -KPX T Aring -63 -KPX T Atilde -63 -KPX T C -8 -KPX T G -10 -KPX T J -67 -KPX T O -9 -KPX T OE -3 -KPX T Oacute -9 -KPX T Ocircumflex -9 -KPX T Odieresis -9 -KPX T Ograve -9 -KPX T Oslash -9 -KPX T Otilde -9 -KPX T S 6 -KPX T V 22 -KPX T W 23 -KPX T Y 23 -KPX T a -62 -KPX T ae -63 -KPX T c -62 -KPX T colon -73 -KPX T comma -55 -KPX T e -58 -KPX T g -65 -KPX T guillemotleft -84 -KPX T guilsinglleft -82 -KPX T hyphen -40 -KPX T i -2 -KPX T j -2 -KPX T o -65 -KPX T oslash -61 -KPX T period -55 -KPX T r -59 -KPX T s -63 -KPX T semicolon -73 -KPX T u -63 -KPX T v -68 -KPX T w -67 -KPX T y -67 -KPX U A -24 -KPX U AE -20 -KPX U Aacute -24 -KPX U Acircumflex -24 -KPX U Adieresis -24 -KPX U Aring -24 -KPX U Atilde -24 -KPX U comma -6 -KPX U m 4 -KPX U n 3 -KPX U p 4 -KPX U period -3 -KPX U r 4 -KPX Uacute A -24 -KPX Uacute comma -6 -KPX Uacute m 4 -KPX Uacute n 3 -KPX Uacute p 4 -KPX Uacute period -3 -KPX Uacute r 4 -KPX Ucircumflex A -24 -KPX Udieresis A -24 -KPX Udieresis b 4 -KPX Udieresis comma -6 -KPX Udieresis m 4 -KPX Udieresis n 3 -KPX Udieresis p 4 -KPX Udieresis period -3 -KPX Udieresis r 4 -KPX Ugrave A -24 -KPX V A -51 -KPX V AE -46 -KPX V Aacute -51 -KPX V Acircumflex -51 -KPX V Adieresis -51 -KPX V Agrave -51 -KPX V Aring -51 -KPX V Atilde -51 -KPX V C -25 -KPX V G -26 -KPX V O -26 -KPX V Oacute -26 -KPX V Ocircumflex -26 -KPX V Odieresis -26 -KPX V Ograve -26 -KPX V Oslash -22 -KPX V Otilde -26 -KPX V S -13 -KPX V T 22 -KPX V a -38 -KPX V ae -39 -KPX V colon -38 -KPX V comma -52 -KPX V e -34 -KPX V g -40 -KPX V guillemotleft -59 -KPX V guilsinglleft -57 -KPX V hyphen -14 -KPX V i -4 -KPX V o -41 -KPX V oslash -37 -KPX V period -52 -KPX V r -27 -KPX V semicolon -38 -KPX V u -31 -KPX V y -7 -KPX W A -40 -KPX W AE -36 -KPX W Aacute -40 -KPX W Acircumflex -40 -KPX W Adieresis -40 -KPX W Agrave -40 -KPX W Aring -40 -KPX W Atilde -40 -KPX W C -15 -KPX W G -16 -KPX W O -16 -KPX W Oacute -16 -KPX W Ocircumflex -16 -KPX W Odieresis -16 -KPX W Ograve -16 -KPX W Oslash -12 -KPX W Otilde -16 -KPX W S -8 -KPX W T 24 -KPX W a -26 -KPX W ae -27 -KPX W colon -31 -KPX W comma -36 -KPX W e -21 -KPX W g -28 -KPX W guillemotleft -47 -KPX W guilsinglleft -45 -KPX W hyphen -2 -KPX W i -2 -KPX W o -28 -KPX W oslash -25 -KPX W period -36 -KPX W r -21 -KPX W semicolon -31 -KPX W u -24 -KPX W y -1 -KPX X C -26 -KPX X O -27 -KPX X Odieresis -27 -KPX X Q -27 -KPX X a -5 -KPX X e -20 -KPX X hyphen -21 -KPX X o -27 -KPX X u -24 -KPX X y -35 -KPX Y A -67 -KPX Y AE -62 -KPX Y Aacute -67 -KPX Y Acircumflex -67 -KPX Y Adieresis -67 -KPX Y Agrave -67 -KPX Y Aring -67 -KPX Y Atilde -67 -KPX Y C -36 -KPX Y G -38 -KPX Y O -37 -KPX Y Oacute -37 -KPX Y Ocircumflex -37 -KPX Y Odieresis -37 -KPX Y Ograve -37 -KPX Y Oslash -37 -KPX Y Otilde -37 -KPX Y S -19 -KPX Y T 24 -KPX Y a -58 -KPX Y ae -59 -KPX Y colon -52 -KPX Y comma -65 -KPX Y e -54 -KPX Y g -61 -KPX Y guillemotleft -83 -KPX Y guilsinglleft -81 -KPX Y hyphen -42 -KPX Y i -2 -KPX Y o -61 -KPX Y oslash -57 -KPX Y p -39 -KPX Y period -65 -KPX Y semicolon -52 -KPX Y u -45 -KPX Y v -22 -KPX Z v -9 -KPX Z y -8 -KPX a j 0 -KPX a quoteright -7 -KPX a v -15 -KPX a w -5 -KPX a y -13 -KPX aacute v -15 -KPX aacute w -5 -KPX aacute y -13 -KPX adieresis v -15 -KPX adieresis w -5 -KPX adieresis y -13 -KPX ae v -16 -KPX ae w -6 -KPX ae y -15 -KPX agrave v -15 -KPX agrave w -5 -KPX agrave y -13 -KPX aring v -15 -KPX aring w -5 -KPX aring y -13 -KPX b v -15 -KPX b w -5 -KPX b y -14 -KPX c h 0 -KPX c k -2 -KPX comma one -59 -KPX comma quotedblright -18 -KPX comma quoteright -20 -KPX e quoteright -8 -KPX e t -2 -KPX e v -15 -KPX e w -6 -KPX e x -16 -KPX e y -14 -KPX eacute v -15 -KPX eacute w -6 -KPX eacute y -14 -KPX ecircumflex v -15 -KPX ecircumflex w -6 -KPX ecircumflex y -14 -KPX eight four 12 -KPX eight one -15 -KPX eight seven 0 -KPX f a -4 -KPX f aacute -4 -KPX f adieresis -4 -KPX f ae -6 -KPX f aring -4 -KPX f e -5 -KPX f eacute -5 -KPX f f 17 -KPX f i -3 -KPX f j -7 -KPX f l -3 -KPX f o -12 -KPX f oacute -12 -KPX f odieresis -12 -KPX f oe -12 -KPX f oslash -9 -KPX f quoteright 11 -KPX f s -5 -KPX f t 17 -KPX five four 8 -KPX five one -20 -KPX five seven -2 -KPX four four 12 -KPX four one -37 -KPX four seven -19 -KPX g a 5 -KPX g adieresis 5 -KPX g ae 4 -KPX g aring 5 -KPX g e 10 -KPX g eacute 10 -KPX g l 3 -KPX g oacute 4 -KPX g odieresis 4 -KPX g r 6 -KPX guillemotright A -36 -KPX guillemotright AE -31 -KPX guillemotright Aacute -36 -KPX guillemotright Adieresis -36 -KPX guillemotright Aring -36 -KPX guillemotright T -84 -KPX guillemotright V -59 -KPX guillemotright W -48 -KPX guillemotright Y -86 -KPX guilsinglright A -33 -KPX guilsinglright AE -28 -KPX guilsinglright Aacute -33 -KPX guilsinglright Adieresis -33 -KPX guilsinglright Aring -33 -KPX guilsinglright T -82 -KPX guilsinglright V -57 -KPX guilsinglright W -45 -KPX guilsinglright Y -84 -KPX h quoteright -7 -KPX h y -14 -KPX hyphen A 6 -KPX hyphen AE 12 -KPX hyphen Aacute 6 -KPX hyphen Adieresis 6 -KPX hyphen Aring 6 -KPX hyphen T -40 -KPX hyphen V -14 -KPX hyphen W -3 -KPX hyphen Y -45 -KPX i T -2 -KPX i j -1 -KPX k a 0 -KPX k aacute 0 -KPX k adieresis 0 -KPX k ae 0 -KPX k aring 0 -KPX k comma 15 -KPX k e -6 -KPX k eacute -6 -KPX k g -14 -KPX k hyphen -10 -KPX k o -13 -KPX k oacute -13 -KPX k odieresis -13 -KPX k period 15 -KPX k s -8 -KPX k u -4 -KPX k udieresis 0 -KPX l v -7 -KPX l y -5 -KPX m p 3 -KPX m v -16 -KPX m w -7 -KPX m y -14 -KPX n T -63 -KPX n p 3 -KPX n quoteright -7 -KPX n v -16 -KPX n w -7 -KPX n y -14 -KPX nine four 10 -KPX nine one -11 -KPX nine seven -4 -KPX o T -64 -KPX o quoteright -13 -KPX o t -5 -KPX o v -18 -KPX o w -8 -KPX o x -20 -KPX o y -17 -KPX oacute v -18 -KPX oacute w -8 -KPX oacute y -17 -KPX ocircumflex t -5 -KPX odieresis t -5 -KPX odieresis v -18 -KPX odieresis w -8 -KPX odieresis x -20 -KPX odieresis y -17 -KPX ograve v -18 -KPX ograve w -8 -KPX ograve y -17 -KPX one comma -32 -KPX one eight -32 -KPX one five -33 -KPX one four -47 -KPX one nine -32 -KPX one one -65 -KPX one period -32 -KPX one seven -47 -KPX one six -28 -KPX one three -36 -KPX one two -37 -KPX one zero -28 -KPX p t -1 -KPX p y -14 -KPX period one -59 -KPX period quotedblright -18 -KPX period quoteright -20 -KPX q c 6 -KPX q u 4 -KPX quotedblbase A 16 -KPX quotedblbase AE 21 -KPX quotedblbase T -56 -KPX quotedblbase V -53 -KPX quotedblbase W -38 -KPX quotedblbase Y -69 -KPX quotedblleft A -49 -KPX quotedblleft AE -45 -KPX quotedblleft Aacute -49 -KPX quotedblleft Adieresis -49 -KPX quotedblleft Aring -49 -KPX quotedblleft T 3 -KPX quotedblleft V 10 -KPX quotedblleft W 15 -KPX quotedblleft Y 2 -KPX quotedblright A -52 -KPX quotedblright AE -48 -KPX quotedblright Aacute -52 -KPX quotedblright Adieresis -52 -KPX quotedblright Aring -52 -KPX quotedblright T 4 -KPX quotedblright V 7 -KPX quotedblright W 12 -KPX quotedblright Y 0 -KPX quoteleft A -51 -KPX quoteleft AE -47 -KPX quoteleft Aacute -51 -KPX quoteleft Adieresis -51 -KPX quoteleft Aring -51 -KPX quoteleft T 1 -KPX quoteleft V 7 -KPX quoteleft W 12 -KPX quoteleft Y 0 -KPX quoteright A -55 -KPX quoteright AE -51 -KPX quoteright Aacute -55 -KPX quoteright Adieresis -55 -KPX quoteright Aring -55 -KPX quoteright comma -31 -KPX quoteright d -18 -KPX quoteright o -24 -KPX quoteright period -31 -KPX quoteright r -7 -KPX quoteright s -15 -KPX quoteright t 4 -KPX quoteright v 0 -KPX quoteright w 5 -KPX quoteright y 2 -KPX r a -1 -KPX r aacute -1 -KPX r acircumflex -1 -KPX r adieresis -1 -KPX r ae -2 -KPX r agrave -1 -KPX r aring -1 -KPX r c -4 -KPX r ccedilla -1 -KPX r colon -12 -KPX r comma -42 -KPX r d -2 -KPX r e 0 -KPX r eacute 0 -KPX r ecircumflex 0 -KPX r egrave 0 -KPX r f 17 -KPX r g -2 -KPX r h -5 -KPX r hyphen -25 -KPX r i -7 -KPX r j -7 -KPX r k -7 -KPX r l -7 -KPX r m -5 -KPX r n -5 -KPX r o -6 -KPX r oacute -6 -KPX r ocircumflex -6 -KPX r odieresis -6 -KPX r oe -6 -KPX r ograve -6 -KPX r oslash -6 -KPX r p -4 -KPX r period -42 -KPX r q -3 -KPX r quoteright 13 -KPX r r -5 -KPX r s -1 -KPX r semicolon -12 -KPX r t 17 -KPX r u -6 -KPX r v 15 -KPX r w 16 -KPX r x 10 -KPX r y 16 -KPX r z 5 -KPX s quoteright -11 -KPX s t -5 -KPX seven colon -40 -KPX seven comma -71 -KPX seven eight -2 -KPX seven five -9 -KPX seven four -53 -KPX seven one -4 -KPX seven period -71 -KPX seven seven 14 -KPX seven six -6 -KPX seven three 1 -KPX seven two 1 -KPX six four 10 -KPX six one -13 -KPX six seven 1 -KPX t S 1 -KPX t a 4 -KPX t aacute 4 -KPX t adieresis 4 -KPX t ae 4 -KPX t aring 4 -KPX t colon -5 -KPX t e -1 -KPX t eacute -1 -KPX t h 5 -KPX t o -8 -KPX t oacute -8 -KPX t odieresis -8 -KPX t quoteright 7 -KPX t semicolon -4 -KPX three four 8 -KPX three one -18 -KPX three seven -3 -KPX two four -11 -KPX two one -11 -KPX two seven 0 -KPX u quoteright 1 -KPX v a -17 -KPX v aacute -17 -KPX v acircumflex -17 -KPX v adieresis -17 -KPX v ae -18 -KPX v agrave -17 -KPX v aring -17 -KPX v atilde -17 -KPX v c -16 -KPX v colon -13 -KPX v comma -35 -KPX v e -12 -KPX v eacute -12 -KPX v ecircumflex -12 -KPX v egrave -12 -KPX v g -18 -KPX v hyphen 5 -KPX v l -7 -KPX v o -19 -KPX v oacute -19 -KPX v odieresis -19 -KPX v ograve -19 -KPX v oslash -16 -KPX v period -35 -KPX v s -17 -KPX v semicolon -13 -KPX w a -7 -KPX w aacute -7 -KPX w acircumflex -7 -KPX w adieresis -7 -KPX w ae -8 -KPX w agrave -7 -KPX w aring -7 -KPX w atilde -7 -KPX w c -6 -KPX w colon -10 -KPX w comma -20 -KPX w e -2 -KPX w eacute -2 -KPX w ecircumflex -2 -KPX w egrave -2 -KPX w g -8 -KPX w hyphen 14 -KPX w l -3 -KPX w o -9 -KPX w oacute -9 -KPX w odieresis -9 -KPX w ograve -9 -KPX w oslash -6 -KPX w period -20 -KPX w s -8 -KPX w semicolon -10 -KPX x a -10 -KPX x c -17 -KPX x e -13 -KPX x eacute -13 -KPX x o -20 -KPX x q -17 -KPX y a -18 -KPX y aacute -18 -KPX y acircumflex -18 -KPX y adieresis -18 -KPX y ae -19 -KPX y agrave -18 -KPX y aring -18 -KPX y atilde -18 -KPX y c -18 -KPX y colon -14 -KPX y comma -36 -KPX y e -14 -KPX y eacute -14 -KPX y ecircumflex -14 -KPX y egrave -14 -KPX y g -20 -KPX y hyphen 4 -KPX y l -8 -KPX y o -20 -KPX y oacute -20 -KPX y odieresis -20 -KPX y ograve -20 -KPX y oslash -17 -KPX y period -35 -KPX y s -19 -KPX y semicolon -14 -KPX zero four 11 -KPX zero one -10 -KPX zero seven -1 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/HelvBoO.afm b/misc/gs_afm/HelvBoO.afm deleted file mode 100644 index 37efe8a3b8..0000000000 --- a/misc/gs_afm/HelvBoO.afm +++ /dev/null @@ -1,1257 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/3/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusSanL-BoldCondItal -FullName Nimbus Sans L Bold Condensed Italic -FamilyName Nimbus Sans L -Weight Bold -ItalicAngle -9.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -143 -228 913 989 -CapHeight 718 -XHeight 532 -Descender -207 -Ascender 718 -StartCharMetrics 232 -C 32 ; WX 228 ; N space ; B 21 0 21 0 ; -C 33 ; WX 273 ; N exclam ; B 77 0 325 718 ; -C 34 ; WX 389 ; N quotedbl ; B 158 447 433 718 ; -C 35 ; WX 456 ; N numbersign ; B 49 0 528 698 ; -C 36 ; WX 456 ; N dollar ; B 55 -115 510 775 ; -C 37 ; WX 729 ; N percent ; B 112 -19 739 710 ; -C 38 ; WX 592 ; N ampersand ; B 73 -19 600 718 ; -C 39 ; WX 228 ; N quoteright ; B 137 445 297 718 ; -C 40 ; WX 273 ; N parenleft ; B 62 -207 385 734 ; -C 41 ; WX 273 ; N parenright ; B -21 -207 302 734 ; -C 42 ; WX 319 ; N asterisk ; B 120 387 394 718 ; -C 43 ; WX 479 ; N plus ; B 67 0 500 506 ; -C 44 ; WX 228 ; N comma ; B 23 -168 201 146 ; -C 45 ; WX 273 ; N hyphen ; B 60 215 311 345 ; -C 46 ; WX 228 ; N period ; B 52 0 201 146 ; -C 47 ; WX 228 ; N slash ; B -30 -19 383 737 ; -C 48 ; WX 456 ; N zero ; B 71 -19 506 710 ; -C 49 ; WX 456 ; N one ; B 142 0 434 710 ; -C 50 ; WX 456 ; N two ; B 21 0 508 710 ; -C 51 ; WX 456 ; N three ; B 54 -19 499 710 ; -C 52 ; WX 456 ; N four ; B 50 0 490 710 ; -C 53 ; WX 456 ; N five ; B 53 -19 522 698 ; -C 54 ; WX 456 ; N six ; B 70 -19 507 710 ; -C 55 ; WX 456 ; N seven ; B 102 0 555 698 ; -C 56 ; WX 456 ; N eight ; B 57 -19 505 710 ; -C 57 ; WX 456 ; N nine ; B 64 -19 504 710 ; -C 58 ; WX 273 ; N colon ; B 75 0 288 512 ; -C 59 ; WX 273 ; N semicolon ; B 46 -168 288 512 ; -C 60 ; WX 479 ; N less ; B 67 -15 537 521 ; -C 61 ; WX 479 ; N equal ; B 48 87 519 419 ; -C 62 ; WX 479 ; N greater ; B 30 -15 500 521 ; -C 63 ; WX 501 ; N question ; B 135 0 550 727 ; -C 64 ; WX 800 ; N at ; B 152 -19 782 737 ; -C 65 ; WX 592 ; N A ; B 16 0 576 718 ; -C 66 ; WX 592 ; N B ; B 62 0 626 718 ; -C 67 ; WX 592 ; N C ; B 88 -19 647 737 ; -C 68 ; WX 592 ; N D ; B 62 0 637 718 ; -C 69 ; WX 547 ; N E ; B 62 0 620 718 ; -C 70 ; WX 501 ; N F ; B 62 0 606 718 ; -C 71 ; WX 638 ; N G ; B 89 -19 670 737 ; -C 72 ; WX 592 ; N H ; B 58 0 659 718 ; -C 73 ; WX 228 ; N I ; B 52 0 301 718 ; -C 74 ; WX 456 ; N J ; B 49 -18 522 718 ; -C 75 ; WX 592 ; N K ; B 71 0 703 718 ; -C 76 ; WX 501 ; N L ; B 62 0 501 718 ; -C 77 ; WX 683 ; N M ; B 57 0 752 718 ; -C 78 ; WX 592 ; N N ; B 57 0 661 718 ; -C 79 ; WX 638 ; N O ; B 88 -19 675 737 ; -C 80 ; WX 547 ; N P ; B 62 0 605 718 ; -C 81 ; WX 638 ; N Q ; B 88 -52 675 737 ; -C 82 ; WX 592 ; N R ; B 62 0 638 718 ; -C 83 ; WX 547 ; N S ; B 66 -19 588 737 ; -C 84 ; WX 501 ; N T ; B 114 0 615 718 ; -C 85 ; WX 592 ; N U ; B 96 -19 659 718 ; -C 86 ; WX 547 ; N V ; B 141 0 656 718 ; -C 87 ; WX 774 ; N W ; B 138 0 887 718 ; -C 88 ; WX 547 ; N X ; B 11 0 648 718 ; -C 89 ; WX 547 ; N Y ; B 137 0 661 718 ; -C 90 ; WX 501 ; N Z ; B 20 0 604 718 ; -C 91 ; WX 273 ; N bracketleft ; B 17 -196 379 722 ; -C 92 ; WX 228 ; N backslash ; B 101 -19 252 737 ; -C 93 ; WX 273 ; N bracketright ; B -14 -196 347 722 ; -C 94 ; WX 479 ; N asciicircum ; B 107 323 484 698 ; -C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ; -C 96 ; WX 228 ; N quoteleft ; B 136 454 296 727 ; -C 97 ; WX 456 ; N a ; B 45 -14 478 546 ; -C 98 ; WX 501 ; N b ; B 50 -14 529 718 ; -C 99 ; WX 456 ; N c ; B 65 -14 491 546 ; -C 100 ; WX 501 ; N d ; B 67 -14 577 718 ; -C 101 ; WX 456 ; N e ; B 58 -14 486 546 ; -C 102 ; WX 273 ; N f ; B 71 0 385 727 ; -C 103 ; WX 501 ; N g ; B 31 -217 546 546 ; -C 104 ; WX 501 ; N h ; B 53 0 516 718 ; -C 105 ; WX 228 ; N i ; B 57 0 298 725 ; -C 106 ; WX 228 ; N j ; B -35 -214 298 725 ; -C 107 ; WX 456 ; N k ; B 57 0 549 718 ; -C 108 ; WX 228 ; N l ; B 57 0 297 718 ; -C 109 ; WX 729 ; N m ; B 52 0 746 546 ; -C 110 ; WX 501 ; N n ; B 53 0 516 546 ; -C 111 ; WX 501 ; N o ; B 67 -14 527 546 ; -C 112 ; WX 501 ; N p ; B 15 -207 529 546 ; -C 113 ; WX 501 ; N q ; B 66 -207 545 546 ; -C 114 ; WX 319 ; N r ; B 52 0 401 546 ; -C 115 ; WX 456 ; N s ; B 52 -14 479 546 ; -C 116 ; WX 273 ; N t ; B 82 -6 346 676 ; -C 117 ; WX 501 ; N u ; B 80 -14 540 532 ; -C 118 ; WX 456 ; N v ; B 103 0 538 532 ; -C 119 ; WX 638 ; N w ; B 101 0 723 532 ; -C 120 ; WX 456 ; N x ; B 12 0 531 532 ; -C 121 ; WX 456 ; N y ; B 34 -214 535 532 ; -C 122 ; WX 410 ; N z ; B 16 0 478 532 ; -C 123 ; WX 319 ; N braceleft ; B 77 -196 425 722 ; -C 124 ; WX 230 ; N bar ; B 66 -19 289 737 ; -C 125 ; WX 319 ; N braceright ; B -14 -196 333 722 ; -C 126 ; WX 479 ; N asciitilde ; B 94 173 473 336 ; -C 161 ; WX 273 ; N exclamdown ; B 41 -186 290 532 ; -C 162 ; WX 456 ; N cent ; B 65 -118 491 628 ; -C 163 ; WX 456 ; N sterling ; B 41 -16 520 718 ; -C 164 ; WX 137 ; N fraction ; B -143 -19 399 710 ; -C 165 ; WX 456 ; N yen ; B 49 0 585 698 ; -C 166 ; WX 456 ; N florin ; B -41 -210 548 737 ; -C 167 ; WX 456 ; N section ; B 50 -184 491 727 ; -C 168 ; WX 456 ; N currency ; B 22 76 558 636 ; -C 169 ; WX 195 ; N quotesingle ; B 135 447 263 718 ; -C 170 ; WX 410 ; N quotedblleft ; B 132 454 482 727 ; -C 171 ; WX 456 ; N guillemotleft ; B 111 76 468 484 ; -C 172 ; WX 273 ; N guilsinglleft ; B 106 76 289 484 ; -C 173 ; WX 273 ; N guilsinglright ; B 81 76 264 484 ; -C 174 ; WX 501 ; N fi ; B 71 0 571 727 ; -C 175 ; WX 501 ; N fl ; B 71 0 570 727 ; -C 177 ; WX 456 ; N endash ; B 40 227 514 333 ; -C 178 ; WX 456 ; N dagger ; B 97 -171 513 718 ; -C 179 ; WX 456 ; N daggerdbl ; B 38 -171 515 718 ; -C 180 ; WX 228 ; N periodcentered ; B 90 172 226 334 ; -C 182 ; WX 456 ; N paragraph ; B 80 -191 564 700 ; -C 183 ; WX 287 ; N bullet ; B 68 194 345 524 ; -C 184 ; WX 228 ; N quotesinglbase ; B 34 -146 194 127 ; -C 185 ; WX 410 ; N quotedblbase ; B 29 -146 380 127 ; -C 186 ; WX 410 ; N quotedblright ; B 132 445 483 718 ; -C 187 ; WX 456 ; N guillemotright ; B 85 76 443 484 ; -C 188 ; WX 820 ; N ellipsis ; B 75 0 770 146 ; -C 189 ; WX 820 ; N perthousand ; B 62 -19 851 710 ; -C 191 ; WX 501 ; N questiondown ; B 44 -195 459 532 ; -C 193 ; WX 273 ; N grave ; B 112 604 290 750 ; -C 194 ; WX 273 ; N acute ; B 194 604 423 750 ; -C 195 ; WX 273 ; N circumflex ; B 97 604 387 750 ; -C 196 ; WX 273 ; N tilde ; B 92 610 415 737 ; -C 197 ; WX 273 ; N macron ; B 100 604 396 678 ; -C 198 ; WX 273 ; N breve ; B 128 604 405 750 ; -C 199 ; WX 273 ; N dotaccent ; B 192 614 316 729 ; -C 200 ; WX 273 ; N dieresis ; B 112 614 395 729 ; -C 202 ; WX 273 ; N ring ; B 164 568 344 776 ; -C 203 ; WX 273 ; N cedilla ; B -30 -228 180 0 ; -C 205 ; WX 273 ; N hungarumlaut ; B 113 604 529 750 ; -C 206 ; WX 273 ; N ogonek ; B 33 -228 216 0 ; -C 207 ; WX 273 ; N caron ; B 123 604 412 750 ; -C 208 ; WX 820 ; N emdash ; B 40 227 878 333 ; -C 225 ; WX 820 ; N AE ; B 4 0 902 718 ; -C 227 ; WX 303 ; N ordfeminine ; B 75 276 381 737 ; -C 232 ; WX 501 ; N Lslash ; B 28 0 501 718 ; -C 233 ; WX 638 ; N Oslash ; B 29 -27 733 745 ; -C 234 ; WX 820 ; N OE ; B 81 -19 913 737 ; -C 235 ; WX 299 ; N ordmasculine ; B 75 276 398 737 ; -C 241 ; WX 729 ; N ae ; B 46 -14 757 546 ; -C 245 ; WX 228 ; N dotlessi ; B 57 0 264 532 ; -C 248 ; WX 228 ; N lslash ; B 33 0 334 718 ; -C 249 ; WX 501 ; N oslash ; B 18 -29 575 560 ; -C 250 ; WX 774 ; N oe ; B 67 -14 801 546 ; -C 251 ; WX 501 ; N germandbls ; B 57 -14 539 731 ; -C -1 ; WX 547 ; N Yacute ; B 137 0 661 936 ; -C -1 ; WX 592 ; N Ucircumflex ; B 96 -19 659 936 ; -C -1 ; WX 592 ; N Ugrave ; B 96 -19 659 936 ; -C -1 ; WX 501 ; N Zcaron ; B 20 0 604 936 ; -C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 915 ; -C -1 ; WX 273 ; N threesuperior ; B 75 271 361 722 ; -C -1 ; WX 592 ; N Uacute ; B 96 -19 659 936 ; -C -1 ; WX 273 ; N twosuperior ; B 57 283 368 722 ; -C -1 ; WX 592 ; N Udieresis ; B 96 -19 659 915 ; -C -1 ; WX 228 ; N middot ; B 90 172 226 334 ; -C -1 ; WX 273 ; N onesuperior ; B 121 283 318 710 ; -C -1 ; WX 456 ; N aacute ; B 45 -14 514 750 ; -C -1 ; WX 456 ; N agrave ; B 45 -14 478 750 ; -C -1 ; WX 456 ; N acircumflex ; B 45 -14 478 750 ; -C -1 ; WX 547 ; N Scaron ; B 66 -19 588 936 ; -C -1 ; WX 638 ; N Otilde ; B 88 -19 675 923 ; -C -1 ; WX 273 ; N sfthyphen ; B 60 215 311 345 ; -C -1 ; WX 456 ; N atilde ; B 45 -14 507 737 ; -C -1 ; WX 456 ; N aring ; B 45 -14 478 803 ; -C -1 ; WX 456 ; N adieresis ; B 45 -14 487 729 ; -C -1 ; WX 638 ; N Ograve ; B 88 -19 675 936 ; -C -1 ; WX 638 ; N Ocircumflex ; B 88 -19 675 936 ; -C -1 ; WX 638 ; N Odieresis ; B 88 -19 675 915 ; -C -1 ; WX 592 ; N Ntilde ; B 57 0 661 923 ; -C -1 ; WX 456 ; N edieresis ; B 58 -14 488 729 ; -C -1 ; WX 456 ; N eacute ; B 58 -14 515 750 ; -C -1 ; WX 456 ; N egrave ; B 58 -14 486 750 ; -C -1 ; WX 228 ; N Icircumflex ; B 52 0 397 936 ; -C -1 ; WX 456 ; N ecircumflex ; B 58 -14 486 750 ; -C -1 ; WX 228 ; N Igrave ; B 52 0 301 936 ; -C -1 ; WX 228 ; N Iacute ; B 52 0 433 936 ; -C -1 ; WX 228 ; N Idieresis ; B 52 0 405 915 ; -C -1 ; WX 328 ; N degree ; B 143 426 383 712 ; -C -1 ; WX 547 ; N Ecircumflex ; B 62 0 620 936 ; -C -1 ; WX 479 ; N minus ; B 67 197 500 309 ; -C -1 ; WX 479 ; N multiply ; B 47 1 520 505 ; -C -1 ; WX 479 ; N divide ; B 67 -42 500 548 ; -C -1 ; WX 547 ; N Egrave ; B 62 0 620 936 ; -C -1 ; WX 820 ; N trademark ; B 146 306 909 718 ; -C -1 ; WX 638 ; N Oacute ; B 88 -19 675 936 ; -C -1 ; WX 501 ; N thorn ; B 15 -207 529 718 ; -C -1 ; WX 501 ; N eth ; B 67 -14 549 737 ; -C -1 ; WX 547 ; N Eacute ; B 62 0 620 936 ; -C -1 ; WX 456 ; N ccedilla ; B 65 -228 491 546 ; -C -1 ; WX 228 ; N idieresis ; B 57 0 373 729 ; -C -1 ; WX 228 ; N iacute ; B 57 0 401 750 ; -C -1 ; WX 228 ; N igrave ; B 57 0 268 750 ; -C -1 ; WX 479 ; N plusminus ; B 33 0 512 578 ; -C -1 ; WX 684 ; N onehalf ; B 108 -19 704 710 ; -C -1 ; WX 684 ; N onequarter ; B 108 -19 661 710 ; -C -1 ; WX 684 ; N threequarters ; B 82 -19 688 722 ; -C -1 ; WX 228 ; N icircumflex ; B 57 0 365 750 ; -C -1 ; WX 547 ; N Edieresis ; B 62 0 620 915 ; -C -1 ; WX 501 ; N ntilde ; B 53 0 529 737 ; -C -1 ; WX 592 ; N Aring ; B 16 0 576 989 ; -C -1 ; WX 501 ; N odieresis ; B 67 -14 527 729 ; -C -1 ; WX 501 ; N oacute ; B 67 -14 537 750 ; -C -1 ; WX 501 ; N ograve ; B 67 -14 527 750 ; -C -1 ; WX 501 ; N ocircumflex ; B 67 -14 527 750 ; -C -1 ; WX 501 ; N otilde ; B 67 -14 529 737 ; -C -1 ; WX 456 ; N scaron ; B 52 -14 503 750 ; -C -1 ; WX 501 ; N udieresis ; B 80 -14 540 729 ; -C -1 ; WX 501 ; N uacute ; B 80 -14 540 750 ; -C -1 ; WX 501 ; N ugrave ; B 80 -14 540 750 ; -C -1 ; WX 501 ; N ucircumflex ; B 80 -14 540 750 ; -C -1 ; WX 456 ; N yacute ; B 34 -214 535 750 ; -C -1 ; WX 410 ; N zcaron ; B 16 0 480 750 ; -C -1 ; WX 456 ; N ydieresis ; B 34 -214 535 729 ; -C -1 ; WX 604 ; N copyright ; B 46 -19 685 737 ; -C -1 ; WX 604 ; N registered ; B 45 -19 684 737 ; -C -1 ; WX 592 ; N Atilde ; B 16 0 607 923 ; -C -1 ; WX 228 ; N nbspace ; B 21 0 21 0 ; -C -1 ; WX 592 ; N Ccedilla ; B 88 -228 647 737 ; -C -1 ; WX 592 ; N Acircumflex ; B 16 0 579 936 ; -C -1 ; WX 592 ; N Agrave ; B 16 0 576 936 ; -C -1 ; WX 479 ; N logicalnot ; B 86 108 519 419 ; -C -1 ; WX 592 ; N Aacute ; B 16 0 615 936 ; -C -1 ; WX 592 ; N Eth ; B 51 0 637 718 ; -C -1 ; WX 230 ; N brokenbar ; B 66 -19 289 737 ; -C -1 ; WX 547 ; N Thorn ; B 62 0 588 718 ; -C -1 ; WX 592 ; N Adieresis ; B 16 0 587 915 ; -C -1 ; WX 501 ; N mu ; B 18 -207 540 532 ; -C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ; -EndCharMetrics -StartKernData -StartKernPairs 998 -KPX A C -30 -KPX A Ccedilla -29 -KPX A G -31 -KPX A O -31 -KPX A Odieresis -31 -KPX A Q -30 -KPX A T -72 -KPX A U -29 -KPX A Uacute -29 -KPX A Ucircumflex -29 -KPX A Udieresis -29 -KPX A Ugrave -29 -KPX A V -56 -KPX A W -46 -KPX A Y -74 -KPX A a -11 -KPX A b -11 -KPX A c -15 -KPX A ccedilla -14 -KPX A comma 9 -KPX A d -14 -KPX A e -11 -KPX A g -19 -KPX A guillemotleft -41 -KPX A guilsinglleft -39 -KPX A hyphen 1 -KPX A o -17 -KPX A period 11 -KPX A q -14 -KPX A quotedblright -54 -KPX A quoteright -56 -KPX A t -16 -KPX A u -16 -KPX A v -34 -KPX A w -24 -KPX A y -32 -KPX Aacute C -31 -KPX Aacute G -32 -KPX Aacute O -32 -KPX Aacute Q -32 -KPX Aacute T -72 -KPX Aacute U -30 -KPX Aacute V -56 -KPX Aacute W -46 -KPX Aacute Y -74 -KPX Aacute a -11 -KPX Aacute b -11 -KPX Aacute c -16 -KPX Aacute comma 9 -KPX Aacute d -15 -KPX Aacute e -12 -KPX Aacute g -19 -KPX Aacute guillemotleft -42 -KPX Aacute guilsinglleft -39 -KPX Aacute hyphen 1 -KPX Aacute o -19 -KPX Aacute period 10 -KPX Aacute q -15 -KPX Aacute quoteright -56 -KPX Aacute t -17 -KPX Aacute u -17 -KPX Aacute v -33 -KPX Aacute w -24 -KPX Aacute y -32 -KPX Acircumflex C -29 -KPX Acircumflex G -30 -KPX Acircumflex O -30 -KPX Acircumflex Q -30 -KPX Acircumflex T -72 -KPX Acircumflex U -29 -KPX Acircumflex V -56 -KPX Acircumflex W -46 -KPX Acircumflex Y -74 -KPX Acircumflex comma 10 -KPX Acircumflex period 11 -KPX Adieresis C -30 -KPX Adieresis G -31 -KPX Adieresis O -31 -KPX Adieresis Q -31 -KPX Adieresis T -72 -KPX Adieresis U -30 -KPX Adieresis V -56 -KPX Adieresis W -46 -KPX Adieresis Y -74 -KPX Adieresis a -11 -KPX Adieresis b -11 -KPX Adieresis c -15 -KPX Adieresis comma 9 -KPX Adieresis d -15 -KPX Adieresis g -19 -KPX Adieresis guillemotleft -42 -KPX Adieresis guilsinglleft -39 -KPX Adieresis hyphen 1 -KPX Adieresis o -18 -KPX Adieresis period 10 -KPX Adieresis q -15 -KPX Adieresis quotedblright -54 -KPX Adieresis quoteright -56 -KPX Adieresis t -16 -KPX Adieresis u -16 -KPX Adieresis v -34 -KPX Adieresis w -24 -KPX Adieresis y -32 -KPX Agrave C -30 -KPX Agrave G -31 -KPX Agrave O -31 -KPX Agrave Q -30 -KPX Agrave T -72 -KPX Agrave U -29 -KPX Agrave V -56 -KPX Agrave W -46 -KPX Agrave Y -74 -KPX Agrave comma 9 -KPX Agrave period 11 -KPX Aring C -30 -KPX Aring G -31 -KPX Aring O -31 -KPX Aring Q -30 -KPX Aring T -72 -KPX Aring U -29 -KPX Aring V -56 -KPX Aring W -46 -KPX Aring Y -74 -KPX Aring a -11 -KPX Aring b -11 -KPX Aring c -15 -KPX Aring comma 9 -KPX Aring d -14 -KPX Aring e -11 -KPX Aring g -19 -KPX Aring guillemotleft -41 -KPX Aring guilsinglleft -39 -KPX Aring hyphen 1 -KPX Aring o -17 -KPX Aring period 11 -KPX Aring q -14 -KPX Aring quotedblright -54 -KPX Aring quoteright -56 -KPX Aring t -16 -KPX Aring u -16 -KPX Aring v -34 -KPX Aring w -24 -KPX Aring y -32 -KPX Atilde C -31 -KPX Atilde G -32 -KPX Atilde O -32 -KPX Atilde Q -32 -KPX Atilde T -73 -KPX Atilde U -31 -KPX Atilde V -56 -KPX Atilde W -46 -KPX Atilde Y -74 -KPX Atilde comma 9 -KPX Atilde period 9 -KPX B A -26 -KPX B AE -21 -KPX B Aacute -26 -KPX B Acircumflex -26 -KPX B Adieresis -26 -KPX B Aring -26 -KPX B Atilde -26 -KPX B O -12 -KPX B OE -6 -KPX B Oacute -12 -KPX B Ocircumflex -12 -KPX B Odieresis -12 -KPX B Ograve -12 -KPX B Oslash -8 -KPX B V -30 -KPX B W -21 -KPX B Y -40 -KPX C A -29 -KPX C AE -23 -KPX C Aacute -29 -KPX C Adieresis -29 -KPX C Aring -29 -KPX C H -7 -KPX C K -13 -KPX C O -12 -KPX C Oacute -12 -KPX C Odieresis -12 -KPX Ccedilla A -31 -KPX D A -31 -KPX D Aacute -31 -KPX D Acircumflex -31 -KPX D Adieresis -31 -KPX D Agrave -31 -KPX D Aring -31 -KPX D Atilde -31 -KPX D J -1 -KPX D T -14 -KPX D V -25 -KPX D W -15 -KPX D X -28 -KPX D Y -43 -KPX F A -53 -KPX F Aacute -53 -KPX F Acircumflex -53 -KPX F Adieresis -53 -KPX F Agrave -53 -KPX F Aring -53 -KPX F Atilde -53 -KPX F J -24 -KPX F O -19 -KPX F Odieresis -19 -KPX F a -24 -KPX F aacute -24 -KPX F adieresis -24 -KPX F ae -24 -KPX F aring -24 -KPX F comma -77 -KPX F e -15 -KPX F eacute -15 -KPX F hyphen 0 -KPX F i -14 -KPX F j -13 -KPX F o -20 -KPX F oacute -20 -KPX F odieresis -20 -KPX F oe -19 -KPX F oslash -20 -KPX F period -77 -KPX F r -30 -KPX F u -31 -KPX G A -8 -KPX G AE -2 -KPX G Aacute -8 -KPX G Acircumflex -8 -KPX G Adieresis -8 -KPX G Agrave -8 -KPX G Aring -8 -KPX G Atilde -8 -KPX G T -18 -KPX G V -29 -KPX G W -20 -KPX G Y -47 -KPX J A -30 -KPX J AE -25 -KPX J Adieresis -30 -KPX J Aring -30 -KPX K C -41 -KPX K G -43 -KPX K O -42 -KPX K OE -36 -KPX K Oacute -42 -KPX K Odieresis -42 -KPX K S -30 -KPX K T 14 -KPX K a -10 -KPX K adieresis -10 -KPX K ae -11 -KPX K aring -10 -KPX K e -27 -KPX K hyphen -34 -KPX K o -35 -KPX K oacute -35 -KPX K odieresis -35 -KPX K u -30 -KPX K udieresis -30 -KPX K y -57 -KPX L A 6 -KPX L AE 12 -KPX L Aacute 6 -KPX L Adieresis 6 -KPX L Aring 6 -KPX L C -25 -KPX L Ccedilla -26 -KPX L G -27 -KPX L O -26 -KPX L Oacute -26 -KPX L Ocircumflex -26 -KPX L Odieresis -26 -KPX L Ograve -26 -KPX L Otilde -26 -KPX L S -8 -KPX L T -79 -KPX L U -23 -KPX L Udieresis -23 -KPX L V -75 -KPX L W -60 -KPX L Y -92 -KPX L hyphen -19 -KPX L quotedblright -123 -KPX L quoteright -125 -KPX L u -17 -KPX L udieresis -17 -KPX L y -50 -KPX N A -10 -KPX N AE -4 -KPX N Aacute -10 -KPX N Adieresis -10 -KPX N Aring -10 -KPX N C -3 -KPX N Ccedilla -2 -KPX N G -4 -KPX N O -4 -KPX N Oacute -4 -KPX N Odieresis -4 -KPX N a -1 -KPX N aacute -1 -KPX N adieresis -1 -KPX N ae -2 -KPX N aring -1 -KPX N comma 5 -KPX N e 2 -KPX N eacute 2 -KPX N o -3 -KPX N oacute -3 -KPX N odieresis -3 -KPX N oslash 0 -KPX N period 5 -KPX N u -2 -KPX N udieresis -2 -KPX O A -35 -KPX O AE -29 -KPX O Aacute -35 -KPX O Adieresis -35 -KPX O Aring -35 -KPX O T -21 -KPX O V -29 -KPX O W -20 -KPX O X -32 -KPX O Y -50 -KPX Oacute A -35 -KPX Oacute T -21 -KPX Oacute V -29 -KPX Oacute W -20 -KPX Oacute Y -50 -KPX Ocircumflex T -21 -KPX Ocircumflex V -29 -KPX Ocircumflex Y -50 -KPX Odieresis A -35 -KPX Odieresis T -21 -KPX Odieresis V -29 -KPX Odieresis W -20 -KPX Odieresis X -32 -KPX Odieresis Y -50 -KPX Ograve T -21 -KPX Ograve V -29 -KPX Ograve Y -50 -KPX Oslash A -31 -KPX Otilde T -21 -KPX Otilde V -29 -KPX Otilde Y -50 -KPX P A -61 -KPX P AE -56 -KPX P Aacute -61 -KPX P Adieresis -61 -KPX P Aring -61 -KPX P J -45 -KPX P a -22 -KPX P aacute -22 -KPX P adieresis -22 -KPX P ae -22 -KPX P aring -22 -KPX P comma -98 -KPX P e -20 -KPX P eacute -20 -KPX P hyphen -13 -KPX P o -25 -KPX P oacute -25 -KPX P odieresis -25 -KPX P oe -25 -KPX P oslash -25 -KPX P period -98 -KPX R C -9 -KPX R Ccedilla -8 -KPX R G -10 -KPX R O -10 -KPX R OE -4 -KPX R Oacute -10 -KPX R Odieresis -10 -KPX R T -9 -KPX R U -8 -KPX R Udieresis -8 -KPX R V -27 -KPX R W -18 -KPX R Y -36 -KPX R a -6 -KPX R aacute -6 -KPX R adieresis -6 -KPX R ae -7 -KPX R aring -6 -KPX R e -3 -KPX R eacute -3 -KPX R hyphen 7 -KPX R o -9 -KPX R oacute -9 -KPX R odieresis -9 -KPX R oe -9 -KPX R u -7 -KPX R uacute -7 -KPX R udieresis -7 -KPX R y -6 -KPX S A -20 -KPX S AE -14 -KPX S Aacute -20 -KPX S Adieresis -20 -KPX S Aring -20 -KPX S T -12 -KPX S V -29 -KPX S W -19 -KPX S Y -39 -KPX S t -5 -KPX T A -72 -KPX T AE -68 -KPX T Aacute -72 -KPX T Acircumflex -72 -KPX T Adieresis -72 -KPX T Agrave -72 -KPX T Aring -72 -KPX T Atilde -72 -KPX T C -17 -KPX T G -18 -KPX T J -77 -KPX T O -19 -KPX T OE -12 -KPX T Oacute -19 -KPX T Ocircumflex -19 -KPX T Odieresis -19 -KPX T Ograve -19 -KPX T Oslash -19 -KPX T Otilde -19 -KPX T S -2 -KPX T V 11 -KPX T W 13 -KPX T Y 13 -KPX T a -68 -KPX T ae -69 -KPX T c -68 -KPX T colon -78 -KPX T comma -61 -KPX T e -64 -KPX T g -69 -KPX T guillemotleft -92 -KPX T guilsinglleft -89 -KPX T hyphen -46 -KPX T i -9 -KPX T j -9 -KPX T o -71 -KPX T oslash -67 -KPX T period -61 -KPX T r -64 -KPX T s -69 -KPX T semicolon -79 -KPX T u -68 -KPX T v -77 -KPX T w -72 -KPX T y -76 -KPX U A -32 -KPX U AE -27 -KPX U Aacute -32 -KPX U Acircumflex -32 -KPX U Adieresis -32 -KPX U Aring -32 -KPX U Atilde -32 -KPX U comma -14 -KPX U m -5 -KPX U n -5 -KPX U p -5 -KPX U period -11 -KPX U r -5 -KPX Uacute A -32 -KPX Uacute comma -14 -KPX Uacute m -5 -KPX Uacute n -5 -KPX Uacute p -5 -KPX Uacute period -11 -KPX Uacute r -5 -KPX Ucircumflex A -32 -KPX Udieresis A -32 -KPX Udieresis b -5 -KPX Udieresis comma -14 -KPX Udieresis m -5 -KPX Udieresis n -5 -KPX Udieresis p -5 -KPX Udieresis period -11 -KPX Udieresis r -5 -KPX Ugrave A -32 -KPX V A -57 -KPX V AE -52 -KPX V Aacute -57 -KPX V Acircumflex -57 -KPX V Adieresis -57 -KPX V Agrave -57 -KPX V Aring -57 -KPX V Atilde -57 -KPX V C -32 -KPX V G -33 -KPX V O -33 -KPX V Oacute -33 -KPX V Ocircumflex -33 -KPX V Odieresis -33 -KPX V Ograve -33 -KPX V Oslash -29 -KPX V Otilde -33 -KPX V S -22 -KPX V T 13 -KPX V a -45 -KPX V ae -46 -KPX V colon -47 -KPX V comma -58 -KPX V e -41 -KPX V g -45 -KPX V guillemotleft -67 -KPX V guilsinglleft -65 -KPX V hyphen -21 -KPX V i -12 -KPX V o -47 -KPX V oslash -44 -KPX V period -58 -KPX V r -36 -KPX V semicolon -47 -KPX V u -40 -KPX V y -17 -KPX W A -47 -KPX W AE -42 -KPX W Aacute -47 -KPX W Acircumflex -47 -KPX W Adieresis -47 -KPX W Agrave -47 -KPX W Aring -47 -KPX W Atilde -47 -KPX W C -22 -KPX W G -23 -KPX W O -23 -KPX W Oacute -23 -KPX W Ocircumflex -23 -KPX W Odieresis -23 -KPX W Ograve -23 -KPX W Oslash -19 -KPX W Otilde -23 -KPX W S -17 -KPX W T 15 -KPX W a -32 -KPX W ae -33 -KPX W colon -40 -KPX W comma -42 -KPX W e -28 -KPX W g -32 -KPX W guillemotleft -55 -KPX W guilsinglleft -52 -KPX W hyphen -9 -KPX W i -10 -KPX W o -34 -KPX W oslash -31 -KPX W period -42 -KPX W r -27 -KPX W semicolon -41 -KPX W u -32 -KPX W y -11 -KPX X C -32 -KPX X O -33 -KPX X Odieresis -33 -KPX X Q -33 -KPX X a -15 -KPX X e -31 -KPX X hyphen -27 -KPX X o -37 -KPX X u -34 -KPX X y -44 -KPX Y A -73 -KPX Y AE -68 -KPX Y Aacute -73 -KPX Y Acircumflex -73 -KPX Y Adieresis -73 -KPX Y Agrave -73 -KPX Y Aring -73 -KPX Y Atilde -73 -KPX Y C -45 -KPX Y G -46 -KPX Y O -46 -KPX Y Oacute -46 -KPX Y Ocircumflex -46 -KPX Y Odieresis -46 -KPX Y Ograve -46 -KPX Y Oslash -45 -KPX Y Otilde -46 -KPX Y S -27 -KPX Y T 16 -KPX Y a -64 -KPX Y ae -65 -KPX Y colon -61 -KPX Y comma -70 -KPX Y e -60 -KPX Y g -64 -KPX Y guillemotleft -91 -KPX Y guilsinglleft -88 -KPX Y hyphen -49 -KPX Y i -9 -KPX Y o -66 -KPX Y oslash -63 -KPX Y p -48 -KPX Y period -70 -KPX Y semicolon -61 -KPX Y u -54 -KPX Y v -31 -KPX Z v -19 -KPX Z y -18 -KPX a j -2 -KPX a quoteright -11 -KPX a v -16 -KPX a w -7 -KPX a y -17 -KPX aacute v -17 -KPX aacute w -8 -KPX aacute y -17 -KPX adieresis v -17 -KPX adieresis w -8 -KPX adieresis y -17 -KPX ae v -17 -KPX ae w -7 -KPX ae y -19 -KPX agrave v -16 -KPX agrave w -7 -KPX agrave y -17 -KPX aring v -16 -KPX aring w -7 -KPX aring y -17 -KPX b v -16 -KPX b w -6 -KPX b y -17 -KPX c h -6 -KPX c k -8 -KPX comma one -64 -KPX comma quotedblright -27 -KPX comma quoteright -29 -KPX e quoteright -12 -KPX e t -4 -KPX e v -16 -KPX e w -6 -KPX e x -19 -KPX e y -18 -KPX eacute v -17 -KPX eacute w -8 -KPX eacute y -18 -KPX ecircumflex v -16 -KPX ecircumflex w -6 -KPX ecircumflex y -18 -KPX eight four 2 -KPX eight one -24 -KPX eight seven -10 -KPX f a -12 -KPX f aacute -12 -KPX f adieresis -12 -KPX f ae -13 -KPX f aring -12 -KPX f e -10 -KPX f eacute -10 -KPX f f 12 -KPX f i -11 -KPX f j -11 -KPX f l -11 -KPX f o -16 -KPX f oacute -16 -KPX f odieresis -16 -KPX f oe -16 -KPX f oslash -13 -KPX f quoteright 0 -KPX f s -13 -KPX f t 12 -KPX five four 0 -KPX five one -30 -KPX five seven -10 -KPX four four 3 -KPX four one -46 -KPX four seven -27 -KPX g a -2 -KPX g adieresis -2 -KPX g ae -3 -KPX g aring -2 -KPX g e 1 -KPX g eacute 1 -KPX g l 0 -KPX g oacute -5 -KPX g odieresis -5 -KPX g r 1 -KPX guillemotright A -41 -KPX guillemotright AE -36 -KPX guillemotright Aacute -41 -KPX guillemotright Adieresis -41 -KPX guillemotright Aring -41 -KPX guillemotright T -89 -KPX guillemotright V -63 -KPX guillemotright W -51 -KPX guillemotright Y -91 -KPX guilsinglright A -40 -KPX guilsinglright AE -34 -KPX guilsinglright Aacute -40 -KPX guilsinglright Adieresis -40 -KPX guilsinglright Aring -40 -KPX guilsinglright T -87 -KPX guilsinglright V -61 -KPX guilsinglright W -49 -KPX guilsinglright Y -89 -KPX h quoteright -13 -KPX h y -19 -KPX hyphen A 1 -KPX hyphen AE 6 -KPX hyphen Aacute 1 -KPX hyphen Adieresis 1 -KPX hyphen Aring 1 -KPX hyphen T -45 -KPX hyphen V -19 -KPX hyphen W -8 -KPX hyphen Y -51 -KPX i T -9 -KPX i j -3 -KPX k a -9 -KPX k aacute -9 -KPX k adieresis -9 -KPX k ae -9 -KPX k aring -9 -KPX k comma 6 -KPX k e -12 -KPX k eacute -12 -KPX k g -17 -KPX k hyphen -16 -KPX k o -18 -KPX k oacute -18 -KPX k odieresis -18 -KPX k period 7 -KPX k s -16 -KPX k u -12 -KPX k udieresis -6 -KPX l v -14 -KPX l y -13 -KPX m p -2 -KPX m v -17 -KPX m w -8 -KPX m y -18 -KPX n T -67 -KPX n p -3 -KPX n quoteright -13 -KPX n v -18 -KPX n w -9 -KPX n y -19 -KPX nine four 0 -KPX nine one -21 -KPX nine seven -14 -KPX o T -68 -KPX o quoteright -17 -KPX o t -7 -KPX o v -19 -KPX o w -9 -KPX o x -23 -KPX o y -21 -KPX oacute v -19 -KPX oacute w -9 -KPX oacute y -21 -KPX ocircumflex t -7 -KPX odieresis t -7 -KPX odieresis v -19 -KPX odieresis w -9 -KPX odieresis x -23 -KPX odieresis y -21 -KPX ograve v -19 -KPX ograve w -9 -KPX ograve y -21 -KPX one comma -39 -KPX one eight -41 -KPX one five -40 -KPX one four -57 -KPX one nine -41 -KPX one one -74 -KPX one period -39 -KPX one seven -55 -KPX one six -39 -KPX one three -46 -KPX one two -47 -KPX one zero -38 -KPX p t -4 -KPX p y -18 -KPX period one -64 -KPX period quotedblright -27 -KPX period quoteright -29 -KPX q c -2 -KPX q u -2 -KPX quotedblbase A 9 -KPX quotedblbase AE 15 -KPX quotedblbase T -61 -KPX quotedblbase V -58 -KPX quotedblbase W -43 -KPX quotedblbase Y -74 -KPX quotedblleft A -55 -KPX quotedblleft AE -50 -KPX quotedblleft Aacute -55 -KPX quotedblleft Adieresis -55 -KPX quotedblleft Aring -55 -KPX quotedblleft T -6 -KPX quotedblleft V 4 -KPX quotedblleft W 9 -KPX quotedblleft Y -6 -KPX quotedblright A -57 -KPX quotedblright AE -53 -KPX quotedblright Aacute -57 -KPX quotedblright Adieresis -57 -KPX quotedblright Aring -57 -KPX quotedblright T -4 -KPX quotedblright V 2 -KPX quotedblright W 8 -KPX quotedblright Y -8 -KPX quoteleft A -57 -KPX quoteleft AE -52 -KPX quoteleft Aacute -57 -KPX quoteleft Adieresis -57 -KPX quoteleft Aring -57 -KPX quoteleft T -8 -KPX quoteleft V 2 -KPX quoteleft W 7 -KPX quoteleft Y -8 -KPX quoteright A -59 -KPX quoteright AE -55 -KPX quoteright Aacute -59 -KPX quoteright Adieresis -59 -KPX quoteright Aring -59 -KPX quoteright comma -35 -KPX quoteright d -23 -KPX quoteright o -29 -KPX quoteright period -35 -KPX quoteright r -11 -KPX quoteright s -21 -KPX quoteright t -1 -KPX quoteright v -3 -KPX quoteright w 0 -KPX quoteright y -2 -KPX r a -9 -KPX r aacute -9 -KPX r acircumflex -9 -KPX r adieresis -9 -KPX r ae -9 -KPX r agrave -9 -KPX r aring -9 -KPX r c -12 -KPX r ccedilla -7 -KPX r colon -19 -KPX r comma -47 -KPX r d -9 -KPX r e -8 -KPX r eacute -8 -KPX r ecircumflex -8 -KPX r egrave -8 -KPX r f 12 -KPX r g -6 -KPX r h -10 -KPX r hyphen -30 -KPX r i -13 -KPX r j -12 -KPX r k -12 -KPX r l -12 -KPX r m -10 -KPX r n -11 -KPX r o -13 -KPX r oacute -13 -KPX r ocircumflex -13 -KPX r odieresis -13 -KPX r oe -12 -KPX r ograve -13 -KPX r oslash -12 -KPX r p -10 -KPX r period -47 -KPX r q -8 -KPX r quoteright 4 -KPX r r -10 -KPX r s -8 -KPX r semicolon -19 -KPX r t 12 -KPX r u -12 -KPX r v 8 -KPX r w 10 -KPX r x 4 -KPX r y 9 -KPX r z 0 -KPX s quoteright -12 -KPX s t -8 -KPX seven colon -48 -KPX seven comma -77 -KPX seven eight -11 -KPX seven five -20 -KPX seven four -59 -KPX seven one -14 -KPX seven period -77 -KPX seven seven 5 -KPX seven six -16 -KPX seven three -8 -KPX seven two -8 -KPX six four 0 -KPX six one -23 -KPX six seven -9 -KPX t S -5 -KPX t a -3 -KPX t aacute -3 -KPX t adieresis -3 -KPX t ae -3 -KPX t aring -3 -KPX t colon -19 -KPX t e -6 -KPX t eacute -6 -KPX t h -4 -KPX t o -12 -KPX t oacute -12 -KPX t odieresis -12 -KPX t quoteright -1 -KPX t semicolon -19 -KPX three four 0 -KPX three one -27 -KPX three seven -13 -KPX two four -21 -KPX two one -21 -KPX two seven -10 -KPX u quoteright -4 -KPX v a -21 -KPX v aacute -21 -KPX v acircumflex -21 -KPX v adieresis -21 -KPX v ae -22 -KPX v agrave -21 -KPX v aring -21 -KPX v atilde -21 -KPX v c -21 -KPX v colon -20 -KPX v comma -40 -KPX v e -17 -KPX v eacute -17 -KPX v ecircumflex -17 -KPX v egrave -17 -KPX v g -21 -KPX v hyphen 0 -KPX v l -12 -KPX v o -23 -KPX v oacute -23 -KPX v odieresis -23 -KPX v ograve -23 -KPX v oslash -20 -KPX v period -40 -KPX v s -22 -KPX v semicolon -20 -KPX w a -12 -KPX w aacute -12 -KPX w acircumflex -12 -KPX w adieresis -12 -KPX w ae -13 -KPX w agrave -12 -KPX w aring -12 -KPX w atilde -12 -KPX w c -11 -KPX w colon -18 -KPX w comma -25 -KPX w e -8 -KPX w eacute -8 -KPX w ecircumflex -8 -KPX w egrave -8 -KPX w g -12 -KPX w hyphen 8 -KPX w l -9 -KPX w o -14 -KPX w oacute -14 -KPX w odieresis -14 -KPX w ograve -14 -KPX w oslash -11 -KPX w period -25 -KPX w s -13 -KPX w semicolon -18 -KPX x a -19 -KPX x c -22 -KPX x e -18 -KPX x eacute -18 -KPX x o -25 -KPX x q -21 -KPX y a -23 -KPX y aacute -23 -KPX y acircumflex -23 -KPX y adieresis -23 -KPX y ae -24 -KPX y agrave -23 -KPX y aring -23 -KPX y atilde -23 -KPX y c -23 -KPX y colon -21 -KPX y comma -41 -KPX y e -19 -KPX y eacute -19 -KPX y ecircumflex -19 -KPX y egrave -19 -KPX y g -24 -KPX y hyphen 0 -KPX y l -14 -KPX y o -25 -KPX y oacute -25 -KPX y odieresis -25 -KPX y ograve -25 -KPX y oslash -21 -KPX y period -40 -KPX y s -24 -KPX y semicolon -22 -KPX zero four 2 -KPX zero one -20 -KPX zero seven -12 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/HelvO.afm b/misc/gs_afm/HelvO.afm deleted file mode 100644 index 4bb7bf2079..0000000000 --- a/misc/gs_afm/HelvO.afm +++ /dev/null @@ -1,1257 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 8/3/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusSanL-ReguCondItal -FullName Nimbus Sans L Regular Condensed Italic -FamilyName Nimbus Sans L -Weight Regular -ItalicAngle -9.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -139 -225 915 944 -CapHeight 718 -XHeight 523 -Descender -207 -Ascender 718 -StartCharMetrics 232 -C 32 ; WX 228 ; N space ; B 21 0 21 0 ; -C 33 ; WX 228 ; N exclam ; B 74 0 278 718 ; -C 34 ; WX 291 ; N quotedbl ; B 138 463 359 718 ; -C 35 ; WX 456 ; N numbersign ; B 60 0 517 688 ; -C 36 ; WX 456 ; N dollar ; B 57 -115 506 775 ; -C 37 ; WX 729 ; N percent ; B 120 -19 729 703 ; -C 38 ; WX 547 ; N ampersand ; B 63 -15 530 718 ; -C 39 ; WX 182 ; N quoteright ; B 124 463 254 718 ; -C 40 ; WX 273 ; N parenleft ; B 89 -207 372 733 ; -C 41 ; WX 273 ; N parenright ; B -7 -207 276 733 ; -C 42 ; WX 319 ; N asterisk ; B 135 431 389 718 ; -C 43 ; WX 479 ; N plus ; B 70 0 497 505 ; -C 44 ; WX 228 ; N comma ; B 46 -147 175 106 ; -C 45 ; WX 273 ; N hyphen ; B 77 232 293 322 ; -C 46 ; WX 228 ; N period ; B 71 0 175 106 ; -C 47 ; WX 228 ; N slash ; B -17 -19 370 737 ; -C 48 ; WX 456 ; N zero ; B 77 -19 499 703 ; -C 49 ; WX 456 ; N one ; B 170 0 417 703 ; -C 50 ; WX 456 ; N two ; B 21 0 506 703 ; -C 51 ; WX 456 ; N three ; B 61 -19 500 703 ; -C 52 ; WX 456 ; N four ; B 50 0 472 703 ; -C 53 ; WX 456 ; N five ; B 55 -19 509 688 ; -C 54 ; WX 456 ; N six ; B 74 -19 504 703 ; -C 55 ; WX 456 ; N seven ; B 112 0 549 688 ; -C 56 ; WX 456 ; N eight ; B 60 -19 497 703 ; -C 57 ; WX 456 ; N nine ; B 67 -19 499 703 ; -C 58 ; WX 228 ; N colon ; B 71 0 247 516 ; -C 59 ; WX 228 ; N semicolon ; B 46 -147 247 516 ; -C 60 ; WX 479 ; N less ; B 77 10 526 496 ; -C 61 ; WX 479 ; N equal ; B 52 115 515 390 ; -C 62 ; WX 479 ; N greater ; B 41 10 490 496 ; -C 63 ; WX 456 ; N question ; B 132 0 500 727 ; -C 64 ; WX 832 ; N at ; B 176 -19 791 737 ; -C 65 ; WX 547 ; N A ; B 11 0 536 718 ; -C 66 ; WX 547 ; N B ; B 61 0 583 718 ; -C 67 ; WX 592 ; N C ; B 88 -19 640 737 ; -C 68 ; WX 592 ; N D ; B 66 0 626 718 ; -C 69 ; WX 547 ; N E ; B 71 0 625 718 ; -C 70 ; WX 501 ; N F ; B 71 0 603 718 ; -C 71 ; WX 638 ; N G ; B 91 -19 655 737 ; -C 72 ; WX 592 ; N H ; B 63 0 655 718 ; -C 73 ; WX 228 ; N I ; B 75 0 279 718 ; -C 74 ; WX 410 ; N J ; B 39 -19 476 718 ; -C 75 ; WX 547 ; N K ; B 62 0 662 718 ; -C 76 ; WX 456 ; N L ; B 62 0 455 718 ; -C 77 ; WX 683 ; N M ; B 60 0 749 718 ; -C 78 ; WX 592 ; N N ; B 62 0 655 718 ; -C 79 ; WX 638 ; N O ; B 86 -19 677 737 ; -C 80 ; WX 547 ; N P ; B 71 0 604 718 ; -C 81 ; WX 638 ; N Q ; B 86 -56 677 737 ; -C 82 ; WX 592 ; N R ; B 72 0 634 718 ; -C 83 ; WX 547 ; N S ; B 74 -19 584 737 ; -C 84 ; WX 501 ; N T ; B 122 0 615 718 ; -C 85 ; WX 592 ; N U ; B 101 -19 653 718 ; -C 86 ; WX 547 ; N V ; B 142 0 656 718 ; -C 87 ; WX 774 ; N W ; B 138 0 886 718 ; -C 88 ; WX 547 ; N X ; B 16 0 647 718 ; -C 89 ; WX 547 ; N Y ; B 137 0 661 718 ; -C 90 ; WX 501 ; N Z ; B 19 0 607 718 ; -C 91 ; WX 228 ; N bracketleft ; B 17 -196 331 722 ; -C 92 ; WX 228 ; N backslash ; B 115 -19 239 737 ; -C 93 ; WX 228 ; N bracketright ; B -11 -196 302 722 ; -C 94 ; WX 385 ; N asciicircum ; B 35 264 442 688 ; -C 95 ; WX 456 ; N underscore ; B -22 -125 443 -75 ; -C 96 ; WX 182 ; N quoteleft ; B 135 470 265 725 ; -C 97 ; WX 456 ; N a ; B 50 -15 458 538 ; -C 98 ; WX 456 ; N b ; B 48 -15 479 718 ; -C 99 ; WX 410 ; N c ; B 61 -15 454 538 ; -C 100 ; WX 456 ; N d ; B 69 -15 534 718 ; -C 101 ; WX 456 ; N e ; B 69 -15 474 538 ; -C 102 ; WX 228 ; N f ; B 71 0 341 728 ; -C 103 ; WX 456 ; N g ; B 34 -220 500 538 ; -C 104 ; WX 456 ; N h ; B 53 0 470 718 ; -C 105 ; WX 182 ; N i ; B 55 0 252 718 ; -C 106 ; WX 182 ; N j ; B -49 -210 252 718 ; -C 107 ; WX 410 ; N k ; B 55 0 492 718 ; -C 108 ; WX 182 ; N l ; B 55 0 252 718 ; -C 109 ; WX 683 ; N m ; B 53 0 699 538 ; -C 110 ; WX 456 ; N n ; B 53 0 470 538 ; -C 111 ; WX 456 ; N o ; B 68 -14 479 538 ; -C 112 ; WX 456 ; N p ; B 11 -207 479 538 ; -C 113 ; WX 456 ; N q ; B 69 -207 496 538 ; -C 114 ; WX 273 ; N r ; B 63 0 365 538 ; -C 115 ; WX 410 ; N s ; B 52 -15 434 538 ; -C 116 ; WX 228 ; N t ; B 84 -7 302 669 ; -C 117 ; WX 456 ; N u ; B 77 -15 492 523 ; -C 118 ; WX 410 ; N v ; B 98 0 495 523 ; -C 119 ; WX 592 ; N w ; B 103 0 673 523 ; -C 120 ; WX 410 ; N x ; B 9 0 487 523 ; -C 121 ; WX 410 ; N y ; B 12 -214 492 523 ; -C 122 ; WX 410 ; N z ; B 25 0 468 523 ; -C 123 ; WX 274 ; N braceleft ; B 75 -196 365 722 ; -C 124 ; WX 213 ; N bar ; B 74 -19 265 737 ; -C 125 ; WX 274 ; N braceright ; B 0 -196 291 722 ; -C 126 ; WX 479 ; N asciitilde ; B 91 181 476 322 ; -C 161 ; WX 273 ; N exclamdown ; B 63 -195 267 523 ; -C 162 ; WX 456 ; N cent ; B 78 -115 479 623 ; -C 163 ; WX 456 ; N sterling ; B 40 -16 520 718 ; -C 164 ; WX 137 ; N fraction ; B -139 -19 396 703 ; -C 165 ; WX 456 ; N yen ; B 67 0 573 688 ; -C 166 ; WX 456 ; N florin ; B -43 -207 537 737 ; -C 167 ; WX 456 ; N section ; B 63 -191 479 737 ; -C 168 ; WX 456 ; N currency ; B 49 99 530 603 ; -C 169 ; WX 157 ; N quotesingle ; B 129 463 233 718 ; -C 170 ; WX 273 ; N quotedblleft ; B 113 470 378 725 ; -C 171 ; WX 456 ; N guillemotleft ; B 120 108 454 446 ; -C 172 ; WX 273 ; N guilsinglleft ; B 112 108 279 446 ; -C 173 ; WX 273 ; N guilsinglright ; B 91 108 257 446 ; -C 174 ; WX 410 ; N fi ; B 71 0 481 728 ; -C 175 ; WX 410 ; N fl ; B 71 0 479 728 ; -C 177 ; WX 456 ; N endash ; B 42 240 510 313 ; -C 178 ; WX 456 ; N dagger ; B 110 -159 510 718 ; -C 179 ; WX 456 ; N daggerdbl ; B 43 -159 511 718 ; -C 180 ; WX 228 ; N periodcentered ; B 106 190 211 315 ; -C 182 ; WX 440 ; N paragraph ; B 103 -173 533 718 ; -C 183 ; WX 287 ; N bullet ; B 74 202 339 517 ; -C 184 ; WX 182 ; N quotesinglbase ; B 17 -149 147 106 ; -C 185 ; WX 273 ; N quotedblbase ; B -5 -149 260 106 ; -C 186 ; WX 273 ; N quotedblright ; B 102 463 367 718 ; -C 187 ; WX 456 ; N guillemotright ; B 98 108 433 446 ; -C 188 ; WX 820 ; N ellipsis ; B 94 0 744 106 ; -C 189 ; WX 820 ; N perthousand ; B 72 -19 844 703 ; -C 191 ; WX 501 ; N questiondown ; B 70 -201 438 525 ; -C 193 ; WX 273 ; N grave ; B 139 593 276 734 ; -C 194 ; WX 273 ; N acute ; B 203 593 390 734 ; -C 195 ; WX 273 ; N circumflex ; B 121 593 359 734 ; -C 196 ; WX 273 ; N tilde ; B 102 606 402 722 ; -C 197 ; WX 273 ; N macron ; B 117 627 384 684 ; -C 198 ; WX 273 ; N breve ; B 137 595 391 731 ; -C 199 ; WX 273 ; N dotaccent ; B 204 604 297 706 ; -C 200 ; WX 273 ; N dieresis ; B 138 604 363 706 ; -C 202 ; WX 273 ; N ring ; B 175 572 330 756 ; -C 203 ; WX 273 ; N cedilla ; B 2 -225 191 0 ; -C 205 ; WX 273 ; N hungarumlaut ; B 129 593 463 734 ; -C 206 ; WX 273 ; N ogonek ; B 35 -225 204 0 ; -C 207 ; WX 273 ; N caron ; B 145 593 384 734 ; -C 208 ; WX 820 ; N emdash ; B 42 240 875 313 ; -C 225 ; WX 820 ; N AE ; B 7 0 899 718 ; -C 227 ; WX 303 ; N ordfeminine ; B 82 304 368 737 ; -C 232 ; WX 456 ; N Lslash ; B 34 0 455 718 ; -C 233 ; WX 638 ; N Oslash ; B 35 -19 730 737 ; -C 234 ; WX 820 ; N OE ; B 80 -19 915 737 ; -C 235 ; WX 299 ; N ordmasculine ; B 82 304 384 737 ; -C 241 ; WX 729 ; N ae ; B 50 -15 746 538 ; -C 245 ; WX 228 ; N dotlessi ; B 78 0 241 523 ; -C 248 ; WX 182 ; N lslash ; B 34 0 284 718 ; -C 249 ; WX 501 ; N oslash ; B 24 -22 531 545 ; -C 250 ; WX 774 ; N oe ; B 68 -15 791 538 ; -C 251 ; WX 501 ; N germandbls ; B 55 -15 539 728 ; -C -1 ; WX 547 ; N Yacute ; B 137 0 661 929 ; -C -1 ; WX 592 ; N Ucircumflex ; B 101 -19 653 929 ; -C -1 ; WX 592 ; N Ugrave ; B 101 -19 653 929 ; -C -1 ; WX 501 ; N Zcaron ; B 19 0 607 929 ; -C -1 ; WX 547 ; N Ydieresis ; B 137 0 661 901 ; -C -1 ; WX 273 ; N threesuperior ; B 74 270 358 714 ; -C -1 ; WX 592 ; N Uacute ; B 101 -19 653 929 ; -C -1 ; WX 273 ; N twosuperior ; B 52 281 368 714 ; -C -1 ; WX 592 ; N Udieresis ; B 101 -19 653 901 ; -C -1 ; WX 228 ; N middot ; B 106 190 211 315 ; -C -1 ; WX 273 ; N onesuperior ; B 136 281 305 703 ; -C -1 ; WX 456 ; N aacute ; B 50 -15 482 734 ; -C -1 ; WX 456 ; N agrave ; B 50 -15 458 734 ; -C -1 ; WX 456 ; N acircumflex ; B 50 -15 458 734 ; -C -1 ; WX 547 ; N Scaron ; B 74 -19 584 929 ; -C -1 ; WX 638 ; N Otilde ; B 86 -19 677 917 ; -C -1 ; WX 273 ; N sfthyphen ; B 77 232 293 322 ; -C -1 ; WX 456 ; N atilde ; B 50 -15 486 722 ; -C -1 ; WX 456 ; N aring ; B 50 -15 458 769 ; -C -1 ; WX 456 ; N adieresis ; B 50 -15 458 706 ; -C -1 ; WX 638 ; N Ograve ; B 86 -19 677 929 ; -C -1 ; WX 638 ; N Ocircumflex ; B 86 -19 677 929 ; -C -1 ; WX 638 ; N Odieresis ; B 86 -19 677 901 ; -C -1 ; WX 592 ; N Ntilde ; B 62 0 655 917 ; -C -1 ; WX 456 ; N edieresis ; B 69 -15 474 706 ; -C -1 ; WX 456 ; N eacute ; B 69 -15 482 734 ; -C -1 ; WX 456 ; N egrave ; B 69 -15 474 734 ; -C -1 ; WX 228 ; N Icircumflex ; B 75 0 370 929 ; -C -1 ; WX 456 ; N ecircumflex ; B 69 -15 474 734 ; -C -1 ; WX 228 ; N Igrave ; B 75 0 288 929 ; -C -1 ; WX 228 ; N Iacute ; B 75 0 401 929 ; -C -1 ; WX 228 ; N Idieresis ; B 75 0 375 901 ; -C -1 ; WX 328 ; N degree ; B 138 411 384 703 ; -C -1 ; WX 547 ; N Ecircumflex ; B 71 0 625 929 ; -C -1 ; WX 479 ; N minus ; B 70 216 497 289 ; -C -1 ; WX 479 ; N multiply ; B 41 0 526 506 ; -C -1 ; WX 479 ; N divide ; B 70 -19 497 524 ; -C -1 ; WX 547 ; N Egrave ; B 71 0 625 929 ; -C -1 ; WX 820 ; N trademark ; B 152 306 866 718 ; -C -1 ; WX 638 ; N Oacute ; B 86 -19 677 929 ; -C -1 ; WX 456 ; N thorn ; B 11 -207 479 718 ; -C -1 ; WX 456 ; N eth ; B 67 -15 506 737 ; -C -1 ; WX 547 ; N Eacute ; B 71 0 625 929 ; -C -1 ; WX 410 ; N ccedilla ; B 61 -225 454 538 ; -C -1 ; WX 228 ; N idieresis ; B 78 0 341 706 ; -C -1 ; WX 228 ; N iacute ; B 78 0 368 734 ; -C -1 ; WX 228 ; N igrave ; B 78 0 254 734 ; -C -1 ; WX 479 ; N plusminus ; B 32 0 507 561 ; -C -1 ; WX 684 ; N onehalf ; B 93 -19 688 703 ; -C -1 ; WX 684 ; N onequarter ; B 123 -19 658 703 ; -C -1 ; WX 684 ; N threequarters ; B 106 -19 706 714 ; -C -1 ; WX 228 ; N icircumflex ; B 78 0 336 734 ; -C -1 ; WX 547 ; N Edieresis ; B 71 0 625 901 ; -C -1 ; WX 456 ; N ntilde ; B 53 0 486 722 ; -C -1 ; WX 547 ; N Aring ; B 11 0 536 944 ; -C -1 ; WX 456 ; N odieresis ; B 68 -14 479 706 ; -C -1 ; WX 456 ; N oacute ; B 68 -14 482 734 ; -C -1 ; WX 456 ; N ograve ; B 68 -14 479 734 ; -C -1 ; WX 456 ; N ocircumflex ; B 68 -14 479 734 ; -C -1 ; WX 456 ; N otilde ; B 68 -14 494 722 ; -C -1 ; WX 410 ; N scaron ; B 52 -15 453 734 ; -C -1 ; WX 456 ; N udieresis ; B 77 -15 492 706 ; -C -1 ; WX 456 ; N uacute ; B 77 -15 492 734 ; -C -1 ; WX 456 ; N ugrave ; B 77 -15 492 734 ; -C -1 ; WX 456 ; N ucircumflex ; B 77 -15 492 734 ; -C -1 ; WX 410 ; N yacute ; B 12 -214 492 734 ; -C -1 ; WX 410 ; N zcaron ; B 25 0 468 734 ; -C -1 ; WX 410 ; N ydieresis ; B 12 -214 492 706 ; -C -1 ; WX 604 ; N copyright ; B 44 -19 687 737 ; -C -1 ; WX 604 ; N registered ; B 44 -19 687 737 ; -C -1 ; WX 547 ; N Atilde ; B 11 0 573 917 ; -C -1 ; WX 228 ; N nbspace ; B 21 0 21 0 ; -C -1 ; WX 592 ; N Ccedilla ; B 88 -225 640 737 ; -C -1 ; WX 547 ; N Acircumflex ; B 11 0 536 929 ; -C -1 ; WX 547 ; N Agrave ; B 11 0 536 929 ; -C -1 ; WX 479 ; N logicalnot ; B 87 108 515 390 ; -C -1 ; WX 547 ; N Aacute ; B 11 0 561 929 ; -C -1 ; WX 592 ; N Eth ; B 57 0 626 718 ; -C -1 ; WX 213 ; N brokenbar ; B 74 -19 265 737 ; -C -1 ; WX 547 ; N Thorn ; B 71 0 584 718 ; -C -1 ; WX 547 ; N Adieresis ; B 11 0 536 901 ; -C -1 ; WX 456 ; N mu ; B 20 -207 492 523 ; -C -1 ; WX 228 ; N .notdef ; B 21 0 21 0 ; -EndCharMetrics -StartKernData -StartKernPairs 998 -KPX A C -30 -KPX A Ccedilla -30 -KPX A G -33 -KPX A O -30 -KPX A Odieresis -30 -KPX A Q -30 -KPX A T -81 -KPX A U -32 -KPX A Uacute -32 -KPX A Ucircumflex -32 -KPX A Udieresis -32 -KPX A Ugrave -32 -KPX A V -61 -KPX A W -43 -KPX A Y -82 -KPX A a -11 -KPX A b -6 -KPX A c -11 -KPX A ccedilla -11 -KPX A comma 0 -KPX A d -13 -KPX A e -15 -KPX A g -16 -KPX A guillemotleft -43 -KPX A guilsinglleft -39 -KPX A hyphen -6 -KPX A o -16 -KPX A period 1 -KPX A q -13 -KPX A quotedblright -40 -KPX A quoteright -51 -KPX A t -17 -KPX A u -15 -KPX A v -30 -KPX A w -25 -KPX A y -31 -KPX Aacute C -31 -KPX Aacute G -34 -KPX Aacute O -31 -KPX Aacute Q -31 -KPX Aacute T -81 -KPX Aacute U -33 -KPX Aacute V -61 -KPX Aacute W -43 -KPX Aacute Y -82 -KPX Aacute a -12 -KPX Aacute b -6 -KPX Aacute c -12 -KPX Aacute comma 0 -KPX Aacute d -14 -KPX Aacute e -16 -KPX Aacute g -16 -KPX Aacute guillemotleft -44 -KPX Aacute guilsinglleft -40 -KPX Aacute hyphen -6 -KPX Aacute o -17 -KPX Aacute period 0 -KPX Aacute q -14 -KPX Aacute quoteright -52 -KPX Aacute t -18 -KPX Aacute u -16 -KPX Aacute v -31 -KPX Aacute w -25 -KPX Aacute y -31 -KPX Acircumflex C -30 -KPX Acircumflex G -33 -KPX Acircumflex O -30 -KPX Acircumflex Q -30 -KPX Acircumflex T -81 -KPX Acircumflex U -32 -KPX Acircumflex V -61 -KPX Acircumflex W -43 -KPX Acircumflex Y -82 -KPX Acircumflex comma 0 -KPX Acircumflex period 1 -KPX Adieresis C -30 -KPX Adieresis G -33 -KPX Adieresis O -30 -KPX Adieresis Q -30 -KPX Adieresis T -81 -KPX Adieresis U -32 -KPX Adieresis V -61 -KPX Adieresis W -43 -KPX Adieresis Y -82 -KPX Adieresis a -11 -KPX Adieresis b -6 -KPX Adieresis c -11 -KPX Adieresis comma 0 -KPX Adieresis d -13 -KPX Adieresis g -16 -KPX Adieresis guillemotleft -43 -KPX Adieresis guilsinglleft -39 -KPX Adieresis hyphen -6 -KPX Adieresis o -16 -KPX Adieresis period 1 -KPX Adieresis q -13 -KPX Adieresis quotedblright -40 -KPX Adieresis quoteright -51 -KPX Adieresis t -17 -KPX Adieresis u -15 -KPX Adieresis v -30 -KPX Adieresis w -25 -KPX Adieresis y -31 -KPX Agrave C -30 -KPX Agrave G -33 -KPX Agrave O -30 -KPX Agrave Q -30 -KPX Agrave T -81 -KPX Agrave U -32 -KPX Agrave V -61 -KPX Agrave W -43 -KPX Agrave Y -82 -KPX Agrave comma 0 -KPX Agrave period 1 -KPX Aring C -30 -KPX Aring G -33 -KPX Aring O -30 -KPX Aring Q -30 -KPX Aring T -81 -KPX Aring U -32 -KPX Aring V -61 -KPX Aring W -43 -KPX Aring Y -82 -KPX Aring a -11 -KPX Aring b -6 -KPX Aring c -11 -KPX Aring comma 0 -KPX Aring d -13 -KPX Aring e -15 -KPX Aring g -16 -KPX Aring guillemotleft -43 -KPX Aring guilsinglleft -39 -KPX Aring hyphen -6 -KPX Aring o -16 -KPX Aring period 1 -KPX Aring q -13 -KPX Aring quotedblright -40 -KPX Aring quoteright -51 -KPX Aring t -17 -KPX Aring u -15 -KPX Aring v -30 -KPX Aring w -25 -KPX Aring y -31 -KPX Atilde C -31 -KPX Atilde G -35 -KPX Atilde O -31 -KPX Atilde Q -31 -KPX Atilde T -81 -KPX Atilde U -34 -KPX Atilde V -61 -KPX Atilde W -43 -KPX Atilde Y -82 -KPX Atilde comma -1 -KPX Atilde period 0 -KPX B A -22 -KPX B AE -21 -KPX B Aacute -22 -KPX B Acircumflex -22 -KPX B Adieresis -22 -KPX B Aring -22 -KPX B Atilde -22 -KPX B O -9 -KPX B OE -5 -KPX B Oacute -9 -KPX B Ocircumflex -9 -KPX B Odieresis -9 -KPX B Ograve -9 -KPX B Oslash -7 -KPX B V -34 -KPX B W -17 -KPX B Y -42 -KPX C A -33 -KPX C AE -32 -KPX C Aacute -33 -KPX C Adieresis -33 -KPX C Aring -33 -KPX C H -13 -KPX C K -13 -KPX C O -13 -KPX C Oacute -13 -KPX C Odieresis -13 -KPX Ccedilla A -37 -KPX D A -40 -KPX D Aacute -40 -KPX D Acircumflex -40 -KPX D Adieresis -40 -KPX D Agrave -40 -KPX D Aring -40 -KPX D Atilde -40 -KPX D J -9 -KPX D T -36 -KPX D V -37 -KPX D W -19 -KPX D X -43 -KPX D Y -55 -KPX F A -64 -KPX F Aacute -64 -KPX F Acircumflex -64 -KPX F Adieresis -64 -KPX F Agrave -64 -KPX F Aring -64 -KPX F Atilde -64 -KPX F J -59 -KPX F O -22 -KPX F Odieresis -22 -KPX F a -32 -KPX F aacute -32 -KPX F adieresis -32 -KPX F ae -32 -KPX F aring -32 -KPX F comma -107 -KPX F e -26 -KPX F eacute -26 -KPX F hyphen -18 -KPX F i -15 -KPX F j -15 -KPX F o -26 -KPX F oacute -26 -KPX F odieresis -26 -KPX F oe -24 -KPX F oslash -24 -KPX F period -107 -KPX F r -38 -KPX F u -34 -KPX G A -11 -KPX G AE -9 -KPX G Aacute -11 -KPX G Acircumflex -11 -KPX G Adieresis -11 -KPX G Agrave -11 -KPX G Aring -11 -KPX G Atilde -11 -KPX G T -38 -KPX G V -40 -KPX G W -23 -KPX G Y -58 -KPX J A -30 -KPX J AE -29 -KPX J Adieresis -30 -KPX J Aring -30 -KPX K C -41 -KPX K G -45 -KPX K O -41 -KPX K OE -37 -KPX K Oacute -41 -KPX K Odieresis -41 -KPX K S -37 -KPX K T 15 -KPX K a -15 -KPX K adieresis -15 -KPX K ae -15 -KPX K aring -15 -KPX K e -35 -KPX K hyphen -43 -KPX K o -36 -KPX K oacute -36 -KPX K odieresis -36 -KPX K u -29 -KPX K udieresis -29 -KPX K y -59 -KPX L A 10 -KPX L AE 12 -KPX L Aacute 10 -KPX L Adieresis 10 -KPX L Aring 10 -KPX L C -36 -KPX L Ccedilla -39 -KPX L G -40 -KPX L O -38 -KPX L Oacute -38 -KPX L Ocircumflex -38 -KPX L Odieresis -38 -KPX L Ograve -38 -KPX L Otilde -38 -KPX L S -20 -KPX L T -87 -KPX L U -34 -KPX L Udieresis -34 -KPX L V -87 -KPX L W -58 -KPX L Y -99 -KPX L hyphen -114 -KPX L quotedblright -108 -KPX L quoteright -120 -KPX L u -16 -KPX L udieresis -16 -KPX L y -53 -KPX N A -12 -KPX N AE -10 -KPX N Aacute -12 -KPX N Adieresis -12 -KPX N Aring -12 -KPX N C -6 -KPX N Ccedilla -5 -KPX N G -10 -KPX N O -6 -KPX N Oacute -6 -KPX N Odieresis -6 -KPX N a -8 -KPX N aacute -8 -KPX N adieresis -8 -KPX N ae -8 -KPX N aring -8 -KPX N comma -10 -KPX N e -5 -KPX N eacute -5 -KPX N o -6 -KPX N oacute -6 -KPX N odieresis -6 -KPX N oslash -1 -KPX N period -10 -KPX N u -5 -KPX N udieresis -5 -KPX O A -36 -KPX O AE -36 -KPX O Aacute -36 -KPX O Adieresis -36 -KPX O Aring -36 -KPX O T -34 -KPX O V -34 -KPX O W -16 -KPX O X -39 -KPX O Y -53 -KPX Oacute A -36 -KPX Oacute T -34 -KPX Oacute V -34 -KPX Oacute W -16 -KPX Oacute Y -53 -KPX Ocircumflex T -34 -KPX Ocircumflex V -34 -KPX Ocircumflex Y -53 -KPX Odieresis A -36 -KPX Odieresis T -34 -KPX Odieresis V -34 -KPX Odieresis W -16 -KPX Odieresis X -39 -KPX Odieresis Y -53 -KPX Ograve T -34 -KPX Ograve V -34 -KPX Ograve Y -53 -KPX Oslash A -33 -KPX Otilde T -34 -KPX Otilde V -34 -KPX Otilde Y -53 -KPX P A -70 -KPX P AE -72 -KPX P Aacute -70 -KPX P Adieresis -70 -KPX P Aring -70 -KPX P J -78 -KPX P a -27 -KPX P aacute -27 -KPX P adieresis -27 -KPX P ae -27 -KPX P aring -27 -KPX P comma -126 -KPX P e -30 -KPX P eacute -30 -KPX P hyphen -35 -KPX P o -31 -KPX P oacute -31 -KPX P odieresis -31 -KPX P oe -29 -KPX P oslash -29 -KPX P period -126 -KPX R C -11 -KPX R Ccedilla -10 -KPX R G -15 -KPX R O -11 -KPX R OE -7 -KPX R Oacute -11 -KPX R Odieresis -11 -KPX R T -19 -KPX R U -13 -KPX R Udieresis -13 -KPX R V -33 -KPX R W -17 -KPX R Y -39 -KPX R a -11 -KPX R aacute -11 -KPX R adieresis -11 -KPX R ae -11 -KPX R aring -11 -KPX R e -9 -KPX R eacute -9 -KPX R hyphen 0 -KPX R o -10 -KPX R oacute -10 -KPX R odieresis -10 -KPX R oe -9 -KPX R u -8 -KPX R uacute -9 -KPX R udieresis -9 -KPX R y -10 -KPX S A -22 -KPX S AE -21 -KPX S Aacute -22 -KPX S Adieresis -22 -KPX S Aring -22 -KPX S T -22 -KPX S V -36 -KPX S W -20 -KPX S Y -42 -KPX S t -10 -KPX T A -86 -KPX T AE -84 -KPX T Aacute -86 -KPX T Acircumflex -86 -KPX T Adieresis -86 -KPX T Agrave -86 -KPX T Aring -86 -KPX T Atilde -86 -KPX T C -33 -KPX T G -39 -KPX T J -88 -KPX T O -34 -KPX T OE -28 -KPX T Oacute -34 -KPX T Ocircumflex -34 -KPX T Odieresis -34 -KPX T Ograve -34 -KPX T Oslash -35 -KPX T Otilde -34 -KPX T S -23 -KPX T V 7 -KPX T W 10 -KPX T Y 9 -KPX T a -83 -KPX T ae -83 -KPX T c -76 -KPX T colon -106 -KPX T comma -84 -KPX T e -80 -KPX T g -78 -KPX T guillemotleft -104 -KPX T guilsinglleft -100 -KPX T hyphen -65 -KPX T i -9 -KPX T j -9 -KPX T o -81 -KPX T oslash -76 -KPX T period -84 -KPX T r -81 -KPX T s -78 -KPX T semicolon -102 -KPX T u -79 -KPX T v -87 -KPX T w -85 -KPX T y -88 -KPX U A -37 -KPX U AE -38 -KPX U Aacute -37 -KPX U Acircumflex -37 -KPX U Adieresis -37 -KPX U Aring -37 -KPX U Atilde -37 -KPX U comma -30 -KPX U m -9 -KPX U n -9 -KPX U p -7 -KPX U period -27 -KPX U r -14 -KPX Uacute A -37 -KPX Uacute comma -30 -KPX Uacute m -9 -KPX Uacute n -9 -KPX Uacute p -7 -KPX Uacute period -27 -KPX Uacute r -14 -KPX Ucircumflex A -37 -KPX Udieresis A -37 -KPX Udieresis b -7 -KPX Udieresis comma -30 -KPX Udieresis m -9 -KPX Udieresis n -9 -KPX Udieresis p -7 -KPX Udieresis period -27 -KPX Udieresis r -14 -KPX Ugrave A -37 -KPX V A -63 -KPX V AE -64 -KPX V Aacute -63 -KPX V Acircumflex -63 -KPX V Adieresis -63 -KPX V Agrave -63 -KPX V Aring -63 -KPX V Atilde -63 -KPX V C -36 -KPX V G -39 -KPX V O -35 -KPX V Oacute -35 -KPX V Ocircumflex -35 -KPX V Odieresis -35 -KPX V Ograve -35 -KPX V Oslash -33 -KPX V Otilde -35 -KPX V S -33 -KPX V T 12 -KPX V a -52 -KPX V ae -52 -KPX V colon -48 -KPX V comma -77 -KPX V e -49 -KPX V g -47 -KPX V guillemotleft -72 -KPX V guilsinglleft -68 -KPX V hyphen -34 -KPX V i -10 -KPX V o -51 -KPX V oslash -45 -KPX V period -77 -KPX V r -43 -KPX V semicolon -48 -KPX V u -40 -KPX V y -19 -KPX W A -46 -KPX W AE -47 -KPX W Aacute -46 -KPX W Acircumflex -46 -KPX W Adieresis -46 -KPX W Agrave -46 -KPX W Aring -46 -KPX W Atilde -46 -KPX W C -20 -KPX W G -23 -KPX W O -20 -KPX W Oacute -20 -KPX W Ocircumflex -20 -KPX W Odieresis -20 -KPX W Ograve -20 -KPX W Oslash -17 -KPX W Otilde -20 -KPX W S -25 -KPX W T 13 -KPX W a -32 -KPX W ae -32 -KPX W colon -38 -KPX W comma -50 -KPX W e -29 -KPX W g -27 -KPX W guillemotleft -52 -KPX W guilsinglleft -48 -KPX W hyphen -14 -KPX W i -9 -KPX W o -31 -KPX W oslash -25 -KPX W period -50 -KPX W r -30 -KPX W semicolon -38 -KPX W u -28 -KPX W y -10 -KPX X C -37 -KPX X O -37 -KPX X Odieresis -37 -KPX X Q -37 -KPX X a -20 -KPX X e -40 -KPX X hyphen -45 -KPX X o -41 -KPX X u -35 -KPX X y -50 -KPX Y A -85 -KPX Y AE -86 -KPX Y Aacute -85 -KPX Y Acircumflex -85 -KPX Y Adieresis -85 -KPX Y Agrave -85 -KPX Y Aring -85 -KPX Y Atilde -85 -KPX Y C -48 -KPX Y G -53 -KPX Y O -48 -KPX Y Oacute -48 -KPX Y Ocircumflex -48 -KPX Y Odieresis -48 -KPX Y Ograve -48 -KPX Y Oslash -50 -KPX Y Otilde -48 -KPX Y S -39 -KPX Y T 14 -KPX Y a -78 -KPX Y ae -79 -KPX Y colon -67 -KPX Y comma -95 -KPX Y e -77 -KPX Y g -75 -KPX Y guillemotleft -106 -KPX Y guilsinglleft -102 -KPX Y hyphen -72 -KPX Y i -8 -KPX Y o -78 -KPX Y oslash -72 -KPX Y p -53 -KPX Y period -95 -KPX Y semicolon -67 -KPX Y u -60 -KPX Y v -38 -KPX Z v -32 -KPX Z y -33 -KPX a j -9 -KPX a quoteright -13 -KPX a v -21 -KPX a w -16 -KPX a y -24 -KPX aacute v -22 -KPX aacute w -17 -KPX aacute y -24 -KPX adieresis v -21 -KPX adieresis w -16 -KPX adieresis y -24 -KPX ae v -18 -KPX ae w -13 -KPX ae y -23 -KPX agrave v -21 -KPX agrave w -16 -KPX agrave y -24 -KPX aring v -21 -KPX aring w -16 -KPX aring y -24 -KPX b v -15 -KPX b w -9 -KPX b y -19 -KPX c h -3 -KPX c k -4 -KPX comma one -88 -KPX comma quotedblright -27 -KPX comma quoteright -38 -KPX e quoteright -8 -KPX e t -12 -KPX e v -18 -KPX e w -12 -KPX e x -22 -KPX e y -22 -KPX eacute v -18 -KPX eacute w -13 -KPX eacute y -22 -KPX ecircumflex v -18 -KPX ecircumflex w -12 -KPX ecircumflex y -22 -KPX eight four -1 -KPX eight one -43 -KPX eight seven -24 -KPX f a -14 -KPX f aacute -14 -KPX f adieresis -14 -KPX f ae -14 -KPX f aring -14 -KPX f e -16 -KPX f eacute -16 -KPX f f 11 -KPX f i -10 -KPX f j -10 -KPX f l -10 -KPX f o -17 -KPX f oacute -17 -KPX f odieresis -17 -KPX f oe -15 -KPX f oslash -11 -KPX f quoteright 1 -KPX f s -10 -KPX f t 11 -KPX five four -3 -KPX five one -63 -KPX five seven -23 -KPX four four 1 -KPX four one -72 -KPX four seven -47 -KPX g a -5 -KPX g adieresis -5 -KPX g ae -5 -KPX g aring -5 -KPX g e -3 -KPX g eacute -3 -KPX g l 0 -KPX g oacute -3 -KPX g odieresis -3 -KPX g r -3 -KPX guillemotright A -47 -KPX guillemotright AE -47 -KPX guillemotright Aacute -47 -KPX guillemotright Adieresis -47 -KPX guillemotright Aring -47 -KPX guillemotright T -104 -KPX guillemotright V -72 -KPX guillemotright W -50 -KPX guillemotright Y -107 -KPX guilsinglright A -43 -KPX guilsinglright AE -44 -KPX guilsinglright Aacute -43 -KPX guilsinglright Adieresis -43 -KPX guilsinglright Aring -43 -KPX guilsinglright T -100 -KPX guilsinglright V -68 -KPX guilsinglright W -46 -KPX guilsinglright Y -103 -KPX h quoteright -7 -KPX h y -18 -KPX hyphen A -8 -KPX hyphen AE -8 -KPX hyphen Aacute -8 -KPX hyphen Adieresis -8 -KPX hyphen Aring -8 -KPX hyphen T -65 -KPX hyphen V -34 -KPX hyphen W -13 -KPX hyphen Y -72 -KPX i T -9 -KPX i j -3 -KPX k a -12 -KPX k aacute -12 -KPX k adieresis -12 -KPX k ae -12 -KPX k aring -12 -KPX k comma -5 -KPX k e -21 -KPX k eacute -21 -KPX k g -20 -KPX k hyphen -35 -KPX k o -23 -KPX k oacute -23 -KPX k odieresis -23 -KPX k period -4 -KPX k s -16 -KPX k u -8 -KPX k udieresis -8 -KPX l v -9 -KPX l y -10 -KPX m p 0 -KPX m v -15 -KPX m w -10 -KPX m y -18 -KPX n T -79 -KPX n p -1 -KPX n quoteright -7 -KPX n v -16 -KPX n w -11 -KPX n y -18 -KPX nine four -6 -KPX nine one -40 -KPX nine seven -27 -KPX o T -80 -KPX o quoteright -10 -KPX o t -10 -KPX o v -16 -KPX o w -10 -KPX o x -20 -KPX o y -20 -KPX oacute v -16 -KPX oacute w -10 -KPX oacute y -20 -KPX ocircumflex t -10 -KPX odieresis t -10 -KPX odieresis v -16 -KPX odieresis w -10 -KPX odieresis x -20 -KPX odieresis y -20 -KPX ograve v -16 -KPX ograve w -10 -KPX ograve y -20 -KPX one comma -59 -KPX one eight -53 -KPX one five -53 -KPX one four -65 -KPX one nine -54 -KPX one one -96 -KPX one period -59 -KPX one seven -71 -KPX one six -51 -KPX one three -57 -KPX one two -57 -KPX one zero -51 -KPX p t -9 -KPX p y -19 -KPX period one -88 -KPX period quotedblright -28 -KPX period quoteright -39 -KPX q c 0 -KPX q u -3 -KPX quotedblbase A 18 -KPX quotedblbase AE 19 -KPX quotedblbase T -65 -KPX quotedblbase V -58 -KPX quotedblbase W -30 -KPX quotedblbase Y -76 -KPX quotedblleft A -46 -KPX quotedblleft AE -49 -KPX quotedblleft Aacute -46 -KPX quotedblleft Adieresis -46 -KPX quotedblleft Aring -46 -KPX quotedblleft T 9 -KPX quotedblleft V 18 -KPX quotedblleft W 26 -KPX quotedblleft Y 7 -KPX quotedblright A -54 -KPX quotedblright AE -56 -KPX quotedblright Aacute -54 -KPX quotedblright Adieresis -54 -KPX quotedblright Aring -54 -KPX quotedblright T 3 -KPX quotedblright V 11 -KPX quotedblright W 18 -KPX quotedblright Y 0 -KPX quoteleft A -57 -KPX quoteleft AE -60 -KPX quoteleft Aacute -57 -KPX quoteleft Adieresis -57 -KPX quoteleft Aring -57 -KPX quoteleft T -2 -KPX quoteleft V 7 -KPX quoteleft W 15 -KPX quoteleft Y -4 -KPX quoteright A -65 -KPX quoteright AE -67 -KPX quoteright Aacute -65 -KPX quoteright Adieresis -65 -KPX quoteright Aring -65 -KPX quoteright comma -52 -KPX quoteright d -20 -KPX quoteright o -29 -KPX quoteright period -52 -KPX quoteright r -19 -KPX quoteright s -17 -KPX quoteright t -9 -KPX quoteright v -3 -KPX quoteright w -3 -KPX quoteright y -4 -KPX r a -9 -KPX r aacute -9 -KPX r acircumflex -9 -KPX r adieresis -9 -KPX r ae -9 -KPX r agrave -9 -KPX r aring -9 -KPX r c -11 -KPX r ccedilla -8 -KPX r colon -12 -KPX r comma -52 -KPX r d -9 -KPX r e -15 -KPX r eacute -15 -KPX r ecircumflex -15 -KPX r egrave -15 -KPX r f 17 -KPX r g -8 -KPX r h -4 -KPX r hyphen -34 -KPX r i -5 -KPX r j -5 -KPX r k -5 -KPX r l -5 -KPX r m -4 -KPX r n -4 -KPX r o -18 -KPX r oacute -18 -KPX r ocircumflex -18 -KPX r odieresis -18 -KPX r oe -15 -KPX r ograve -18 -KPX r oslash -15 -KPX r p -1 -KPX r period -52 -KPX r q -9 -KPX r quoteright 3 -KPX r r -9 -KPX r s -4 -KPX r semicolon -12 -KPX r t 17 -KPX r u -5 -KPX r v 17 -KPX r w 15 -KPX r x 12 -KPX r y 16 -KPX r z 0 -KPX s quoteright -6 -KPX s t -11 -KPX seven colon -55 -KPX seven comma -99 -KPX seven eight -24 -KPX seven five -30 -KPX seven four -77 -KPX seven one -42 -KPX seven period -99 -KPX seven seven -3 -KPX seven six -32 -KPX seven three -22 -KPX seven two -22 -KPX six four -1 -KPX six one -39 -KPX six seven -21 -KPX t S -14 -KPX t a -5 -KPX t aacute -5 -KPX t adieresis -5 -KPX t ae -5 -KPX t aring -5 -KPX t colon -19 -KPX t e -12 -KPX t eacute -12 -KPX t h -6 -KPX t o -13 -KPX t oacute -13 -KPX t odieresis -13 -KPX t quoteright 2 -KPX t semicolon -19 -KPX three four 0 -KPX three one -41 -KPX three seven -23 -KPX two four -46 -KPX two one -37 -KPX two seven -21 -KPX u quoteright 0 -KPX v a -20 -KPX v aacute -20 -KPX v acircumflex -20 -KPX v adieresis -20 -KPX v ae -20 -KPX v agrave -20 -KPX v aring -20 -KPX v atilde -20 -KPX v c -15 -KPX v colon -14 -KPX v comma -54 -KPX v e -19 -KPX v eacute -19 -KPX v ecircumflex -19 -KPX v egrave -19 -KPX v g -17 -KPX v hyphen -7 -KPX v l -7 -KPX v o -20 -KPX v oacute -20 -KPX v odieresis -20 -KPX v ograve -20 -KPX v oslash -16 -KPX v period -54 -KPX v s -15 -KPX v semicolon -14 -KPX w a -16 -KPX w aacute -16 -KPX w acircumflex -16 -KPX w adieresis -16 -KPX w ae -16 -KPX w agrave -16 -KPX w aring -16 -KPX w atilde -16 -KPX w c -8 -KPX w colon -16 -KPX w comma -40 -KPX w e -12 -KPX w eacute -12 -KPX w ecircumflex -12 -KPX w egrave -12 -KPX w g -10 -KPX w hyphen 0 -KPX w l -9 -KPX w o -13 -KPX w oacute -13 -KPX w odieresis -13 -KPX w ograve -13 -KPX w oslash -8 -KPX w period -40 -KPX w s -11 -KPX w semicolon -16 -KPX x a -17 -KPX x c -16 -KPX x e -20 -KPX x eacute -20 -KPX x o -21 -KPX x q -17 -KPX y a -21 -KPX y aacute -21 -KPX y acircumflex -21 -KPX y adieresis -21 -KPX y ae -21 -KPX y agrave -21 -KPX y aring -21 -KPX y atilde -21 -KPX y c -16 -KPX y colon -15 -KPX y comma -54 -KPX y e -20 -KPX y eacute -20 -KPX y ecircumflex -20 -KPX y egrave -20 -KPX y g -18 -KPX y hyphen -6 -KPX y l -8 -KPX y o -21 -KPX y oacute -21 -KPX y odieresis -21 -KPX y ograve -21 -KPX y oslash -16 -KPX y period -53 -KPX y s -16 -KPX y semicolon -15 -KPX zero four -2 -KPX zero one -40 -KPX zero seven -28 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/Makefile.am b/misc/gs_afm/Makefile.am deleted file mode 100644 index c3a89fc421..0000000000 --- a/misc/gs_afm/Makefile.am +++ /dev/null @@ -1,21 +0,0 @@ -## Purpose: The automake makefile for wxWindows (misc/gs_afm direcotry) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -gs_afmdir = $(datadir)/wx/gs_afm -gs_afm_DATA = \ - Cour.afm \ - CourBo.afm \ - CourBoO.afm \ - CourO.afm \ - Helv.afm \ - HelvBo.afm \ - HelvBoO.afm \ - HelvO.afm \ - TimesRo.afm \ - TimesBo.afm \ - TimesBoO.afm \ - TimesO.afm - diff --git a/misc/gs_afm/TimesBo.afm b/misc/gs_afm/TimesBo.afm deleted file mode 100644 index 1947d3ab1d..0000000000 --- a/misc/gs_afm/TimesBo.afm +++ /dev/null @@ -1,1257 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 11/17/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusRomNo9L-Medi -FullName Nimbus Roman No9 L Medium -FamilyName Nimbus Roman No9 L -Weight Bold -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -168 -218 1000 948 -CapHeight 676 -XHeight 461 -Descender -205 -Ascender 676 -StartCharMetrics 232 -C 32 ; WX 250 ; N space ; B 125 0 125 0 ; -C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; -C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; -C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; -C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; -C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; -C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; -C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; -C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; -C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; -C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; -C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; -C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; -C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; -C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; -C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; -C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; -C 49 ; WX 500 ; N one ; B 65 0 442 688 ; -C 50 ; WX 500 ; N two ; B 17 0 478 688 ; -C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; -C 52 ; WX 500 ; N four ; B 19 0 475 688 ; -C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; -C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; -C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; -C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; -C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; -C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; -C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; -C 60 ; WX 570 ; N less ; B 31 -12 539 518 ; -C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; -C 62 ; WX 570 ; N greater ; B 31 -12 539 518 ; -C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; -C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; -C 65 ; WX 722 ; N A ; B 9 0 689 690 ; -C 66 ; WX 667 ; N B ; B 16 0 619 676 ; -C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; -C 68 ; WX 722 ; N D ; B 14 0 690 676 ; -C 69 ; WX 667 ; N E ; B 16 0 641 676 ; -C 70 ; WX 611 ; N F ; B 16 0 583 676 ; -C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; -C 72 ; WX 778 ; N H ; B 21 0 759 676 ; -C 73 ; WX 389 ; N I ; B 20 0 370 676 ; -C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; -C 75 ; WX 778 ; N K ; B 30 0 769 676 ; -C 76 ; WX 667 ; N L ; B 19 0 638 676 ; -C 77 ; WX 944 ; N M ; B 14 0 921 676 ; -C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; -C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; -C 80 ; WX 611 ; N P ; B 16 0 600 676 ; -C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; -C 82 ; WX 722 ; N R ; B 26 0 715 676 ; -C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; -C 84 ; WX 667 ; N T ; B 31 0 636 676 ; -C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; -C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; -C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; -C 88 ; WX 722 ; N X ; B 16 0 699 676 ; -C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; -C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; -C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; -C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; -C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; -C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; -C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; -C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; -C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; -C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; -C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; -C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; -C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; -C 102 ; WX 333 ; N f ; B 14 0 389 691 ; -C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; -C 104 ; WX 556 ; N h ; B 16 0 534 676 ; -C 105 ; WX 278 ; N i ; B 16 0 255 691 ; -C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; -C 107 ; WX 556 ; N k ; B 22 0 543 676 ; -C 108 ; WX 278 ; N l ; B 16 0 255 676 ; -C 109 ; WX 833 ; N m ; B 16 0 814 473 ; -C 110 ; WX 556 ; N n ; B 21 0 539 473 ; -C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; -C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; -C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; -C 114 ; WX 444 ; N r ; B 29 0 434 473 ; -C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; -C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; -C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; -C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; -C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; -C 120 ; WX 500 ; N x ; B 12 0 484 461 ; -C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; -C 122 ; WX 444 ; N z ; B 21 0 420 461 ; -C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; -C 124 ; WX 220 ; N bar ; B 66 -19 154 691 ; -C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; -C 126 ; WX 520 ; N asciitilde ; B 29 175 491 331 ; -C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; -C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; -C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; -C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; -C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; -C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; -C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; -C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; -C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; -C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; -C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; -C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; -C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; -C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; -C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; -C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; -C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; -C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; -C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; -C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; -C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; -C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; -C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; -C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; -C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; -C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; -C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; -C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; -C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; -C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; -C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; -C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; -C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; -C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; -C 199 ; WX 333 ; N dotaccent ; B 103 537 232 666 ; -C 200 ; WX 333 ; N dieresis ; B -2 537 337 666 ; -C 202 ; WX 333 ; N ring ; B 60 537 273 750 ; -C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; -C 206 ; WX 333 ; N ogonek ; B 90 -173 319 44 ; -C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; -C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; -C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; -C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; -C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; -C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; -C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; -C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; -C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; -C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; -C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; -C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; -C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; -C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; -C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ; -C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; -C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; -C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; -C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 876 ; -C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; -C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; -C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; -C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 876 ; -C -1 ; WX 250 ; N middot ; B 41 248 210 417 ; -C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; -C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; -C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; -C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; -C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; -C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; -C -1 ; WX 333 ; N sfthyphen ; B 44 171 287 287 ; -C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; -C -1 ; WX 500 ; N aring ; B 25 -14 488 750 ; -C -1 ; WX 500 ; N adieresis ; B 25 -14 488 666 ; -C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; -C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; -C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 876 ; -C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; -C -1 ; WX 444 ; N edieresis ; B 25 -14 426 666 ; -C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; -C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; -C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; -C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; -C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; -C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; -C -1 ; WX 389 ; N Idieresis ; B 20 0 370 876 ; -C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; -C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; -C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; -C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; -C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; -C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; -C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; -C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; -C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; -C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; -C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; -C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; -C -1 ; WX 278 ; N idieresis ; B -36 0 303 666 ; -C -1 ; WX 278 ; N iacute ; B 16 0 290 713 ; -C -1 ; WX 278 ; N igrave ; B -26 0 255 713 ; -C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ; -C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; -C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; -C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; -C -1 ; WX 278 ; N icircumflex ; B -36 0 301 704 ; -C -1 ; WX 667 ; N Edieresis ; B 16 0 641 876 ; -C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; -C -1 ; WX 722 ; N Aring ; B 9 0 689 948 ; -C -1 ; WX 500 ; N odieresis ; B 25 -14 476 666 ; -C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; -C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; -C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; -C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; -C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; -C -1 ; WX 556 ; N udieresis ; B 16 -14 537 666 ; -C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; -C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; -C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; -C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; -C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; -C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 666 ; -C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; -C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; -C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; -C -1 ; WX 250 ; N nbspace ; B 125 0 125 0 ; -C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; -C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; -C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; -C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; -C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; -C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; -C -1 ; WX 220 ; N brokenbar ; B 66 -19 154 691 ; -C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; -C -1 ; WX 722 ; N Adieresis ; B 9 0 689 876 ; -C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; -C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; -EndCharMetrics -StartKernData -StartKernPairs 998 -KPX A C -73 -KPX A Ccedilla -78 -KPX A G -68 -KPX A O -68 -KPX A Odieresis -68 -KPX A Q -68 -KPX A T -59 -KPX A U -66 -KPX A Uacute -66 -KPX A Ucircumflex -66 -KPX A Udieresis -66 -KPX A Ugrave -66 -KPX A V -130 -KPX A W -116 -KPX A Y -74 -KPX A a -5 -KPX A b -22 -KPX A c -34 -KPX A ccedilla -43 -KPX A comma 1 -KPX A d -28 -KPX A e -32 -KPX A g -7 -KPX A guillemotleft -53 -KPX A guilsinglleft -67 -KPX A hyphen -30 -KPX A o -36 -KPX A period 0 -KPX A q -38 -KPX A quotedblright -76 -KPX A quoteright -108 -KPX A t -27 -KPX A u -30 -KPX A v -84 -KPX A w -80 -KPX A y -84 -KPX Aacute C -73 -KPX Aacute G -68 -KPX Aacute O -68 -KPX Aacute Q -68 -KPX Aacute T -59 -KPX Aacute U -66 -KPX Aacute V -130 -KPX Aacute W -116 -KPX Aacute Y -74 -KPX Aacute a -5 -KPX Aacute b -22 -KPX Aacute c -34 -KPX Aacute comma 1 -KPX Aacute d -28 -KPX Aacute e -32 -KPX Aacute g -7 -KPX Aacute guillemotleft -53 -KPX Aacute guilsinglleft -67 -KPX Aacute hyphen -30 -KPX Aacute o -36 -KPX Aacute period 0 -KPX Aacute q -38 -KPX Aacute quoteright -108 -KPX Aacute t -27 -KPX Aacute u -30 -KPX Aacute v -84 -KPX Aacute w -80 -KPX Aacute y -84 -KPX Acircumflex C -73 -KPX Acircumflex G -68 -KPX Acircumflex O -68 -KPX Acircumflex Q -68 -KPX Acircumflex T -59 -KPX Acircumflex U -66 -KPX Acircumflex V -130 -KPX Acircumflex W -116 -KPX Acircumflex Y -74 -KPX Acircumflex comma 1 -KPX Acircumflex period 0 -KPX Adieresis C -73 -KPX Adieresis G -68 -KPX Adieresis O -68 -KPX Adieresis Q -68 -KPX Adieresis T -59 -KPX Adieresis U -66 -KPX Adieresis V -130 -KPX Adieresis W -116 -KPX Adieresis Y -74 -KPX Adieresis a -5 -KPX Adieresis b -22 -KPX Adieresis c -34 -KPX Adieresis comma 1 -KPX Adieresis d -28 -KPX Adieresis g -7 -KPX Adieresis guillemotleft -53 -KPX Adieresis guilsinglleft -67 -KPX Adieresis hyphen -30 -KPX Adieresis o -36 -KPX Adieresis period 0 -KPX Adieresis q -38 -KPX Adieresis quotedblright -76 -KPX Adieresis quoteright -108 -KPX Adieresis t -27 -KPX Adieresis u -30 -KPX Adieresis v -84 -KPX Adieresis w -80 -KPX Adieresis y -84 -KPX Agrave C -73 -KPX Agrave G -68 -KPX Agrave O -68 -KPX Agrave Q -68 -KPX Agrave T -59 -KPX Agrave U -66 -KPX Agrave V -130 -KPX Agrave W -116 -KPX Agrave Y -74 -KPX Agrave comma 1 -KPX Agrave period 0 -KPX Aring C -73 -KPX Aring G -68 -KPX Aring O -68 -KPX Aring Q -68 -KPX Aring T -59 -KPX Aring U -66 -KPX Aring V -130 -KPX Aring W -116 -KPX Aring Y -74 -KPX Aring a -5 -KPX Aring b -22 -KPX Aring c -34 -KPX Aring comma 1 -KPX Aring d -28 -KPX Aring e -32 -KPX Aring g -7 -KPX Aring guillemotleft -53 -KPX Aring guilsinglleft -67 -KPX Aring hyphen -30 -KPX Aring o -36 -KPX Aring period 0 -KPX Aring q -38 -KPX Aring quotedblright -76 -KPX Aring quoteright -108 -KPX Aring t -27 -KPX Aring u -30 -KPX Aring v -84 -KPX Aring w -80 -KPX Aring y -84 -KPX Atilde C -73 -KPX Atilde G -68 -KPX Atilde O -68 -KPX Atilde Q -68 -KPX Atilde T -59 -KPX Atilde U -66 -KPX Atilde V -130 -KPX Atilde W -116 -KPX Atilde Y -74 -KPX Atilde comma 1 -KPX Atilde period 0 -KPX B A -34 -KPX B AE -32 -KPX B Aacute -34 -KPX B Acircumflex -34 -KPX B Adieresis -34 -KPX B Aring -34 -KPX B Atilde -34 -KPX B O -12 -KPX B OE -4 -KPX B Oacute -12 -KPX B Ocircumflex -12 -KPX B Odieresis -12 -KPX B Ograve -12 -KPX B Oslash -11 -KPX B V -45 -KPX B W -46 -KPX B Y -44 -KPX C A -25 -KPX C AE -22 -KPX C Aacute -25 -KPX C Adieresis -25 -KPX C Aring -25 -KPX C H -2 -KPX C K -6 -KPX C O -14 -KPX C Oacute -14 -KPX C Odieresis -14 -KPX Ccedilla A -33 -KPX D A -55 -KPX D Aacute -55 -KPX D Acircumflex -55 -KPX D Adieresis -55 -KPX D Agrave -55 -KPX D Aring -55 -KPX D Atilde -55 -KPX D J -38 -KPX D T -6 -KPX D V -60 -KPX D W -50 -KPX D X -50 -KPX D Y -59 -KPX F A -80 -KPX F Aacute -80 -KPX F Acircumflex -80 -KPX F Adieresis -80 -KPX F Agrave -80 -KPX F Aring -80 -KPX F Atilde -80 -KPX F J -42 -KPX F O -7 -KPX F Odieresis -7 -KPX F a -50 -KPX F aacute -50 -KPX F adieresis -22 -KPX F ae -53 -KPX F aring -50 -KPX F comma -59 -KPX F e -51 -KPX F eacute -51 -KPX F hyphen -34 -KPX F i -1 -KPX F j -26 -KPX F o -54 -KPX F oacute -54 -KPX F odieresis -25 -KPX F oe -52 -KPX F oslash -53 -KPX F period -60 -KPX F r -7 -KPX F u -10 -KPX G A -27 -KPX G AE -24 -KPX G Aacute -27 -KPX G Acircumflex -27 -KPX G Adieresis -27 -KPX G Agrave -27 -KPX G Aring -27 -KPX G Atilde -27 -KPX G T -41 -KPX G V -33 -KPX G W -35 -KPX G Y -33 -KPX J A -30 -KPX J AE -27 -KPX J Adieresis -30 -KPX J Aring -30 -KPX K C -61 -KPX K G -56 -KPX K O -56 -KPX K OE -45 -KPX K Oacute -56 -KPX K Odieresis -56 -KPX K S 13 -KPX K T -2 -KPX K a 6 -KPX K adieresis 6 -KPX K ae 3 -KPX K aring 6 -KPX K e -20 -KPX K hyphen -47 -KPX K o -24 -KPX K oacute -24 -KPX K odieresis -24 -KPX K u -18 -KPX K udieresis -18 -KPX K y -83 -KPX L A -1 -KPX L AE 1 -KPX L Aacute -1 -KPX L Adieresis -1 -KPX L Aring -1 -KPX L C -11 -KPX L Ccedilla -14 -KPX L G -5 -KPX L O -5 -KPX L Oacute -5 -KPX L Ocircumflex -5 -KPX L Odieresis -5 -KPX L Ograve -5 -KPX L Otilde -5 -KPX L S 2 -KPX L T -74 -KPX L U -29 -KPX L Udieresis -29 -KPX L V -106 -KPX L W -87 -KPX L Y -89 -KPX L hyphen 24 -KPX L quotedblright -37 -KPX L quoteright -69 -KPX L u -11 -KPX L udieresis -13 -KPX L y -49 -KPX N A -19 -KPX N AE -16 -KPX N Aacute -19 -KPX N Adieresis -19 -KPX N Aring -19 -KPX N C -22 -KPX N Ccedilla -22 -KPX N G -16 -KPX N O -15 -KPX N Oacute -15 -KPX N Odieresis -15 -KPX N a -16 -KPX N aacute -16 -KPX N adieresis -16 -KPX N ae -19 -KPX N aring -16 -KPX N comma 1 -KPX N e -14 -KPX N eacute -14 -KPX N o -16 -KPX N oacute -16 -KPX N odieresis -16 -KPX N oslash -15 -KPX N period 0 -KPX N u -17 -KPX N udieresis -17 -KPX O A -56 -KPX O AE -54 -KPX O Aacute -56 -KPX O Adieresis -56 -KPX O Aring -56 -KPX O T -9 -KPX O V -60 -KPX O W -54 -KPX O X -51 -KPX O Y -59 -KPX Oacute A -56 -KPX Oacute T -9 -KPX Oacute V -60 -KPX Oacute W -54 -KPX Oacute Y -59 -KPX Ocircumflex T -9 -KPX Ocircumflex V -60 -KPX Ocircumflex Y -59 -KPX Odieresis A -56 -KPX Odieresis T -9 -KPX Odieresis V -60 -KPX Odieresis W -54 -KPX Odieresis X -51 -KPX Odieresis Y -59 -KPX Ograve T -9 -KPX Ograve V -60 -KPX Ograve Y -59 -KPX Oslash A -52 -KPX Otilde T -9 -KPX Otilde V -60 -KPX Otilde Y -59 -KPX P A -82 -KPX P AE -94 -KPX P Aacute -82 -KPX P Adieresis -82 -KPX P Aring -82 -KPX P J -68 -KPX P a -20 -KPX P aacute -20 -KPX P adieresis -19 -KPX P ae -23 -KPX P aring -20 -KPX P comma -86 -KPX P e -30 -KPX P eacute -30 -KPX P hyphen -39 -KPX P o -33 -KPX P oacute -33 -KPX P odieresis -22 -KPX P oe -31 -KPX P oslash -34 -KPX P period -87 -KPX R C -36 -KPX R Ccedilla -37 -KPX R G -30 -KPX R O -29 -KPX R OE -22 -KPX R Oacute -29 -KPX R Odieresis -29 -KPX R T -26 -KPX R U -37 -KPX R Udieresis -37 -KPX R V -53 -KPX R W -54 -KPX R Y -52 -KPX R a 7 -KPX R aacute 7 -KPX R adieresis 7 -KPX R ae 4 -KPX R aring 7 -KPX R e -19 -KPX R eacute -19 -KPX R hyphen -30 -KPX R o -23 -KPX R oacute -23 -KPX R odieresis -23 -KPX R oe -21 -KPX R u -17 -KPX R uacute -17 -KPX R udieresis -17 -KPX R y -27 -KPX S A -24 -KPX S AE -21 -KPX S Aacute -24 -KPX S Adieresis -24 -KPX S Aring -24 -KPX S T -16 -KPX S V -9 -KPX S W -10 -KPX S Y -8 -KPX S t -10 -KPX T A -46 -KPX T AE -44 -KPX T Aacute -46 -KPX T Acircumflex -46 -KPX T Adieresis -46 -KPX T Agrave -46 -KPX T Aring -46 -KPX T Atilde -46 -KPX T C -17 -KPX T G -11 -KPX T J -43 -KPX T O -9 -KPX T OE -3 -KPX T Oacute -9 -KPX T Ocircumflex -9 -KPX T Odieresis -9 -KPX T Ograve -9 -KPX T Oslash -11 -KPX T Otilde -9 -KPX T S -2 -KPX T V 11 -KPX T W 9 -KPX T Y 11 -KPX T a -65 -KPX T ae -69 -KPX T c -88 -KPX T colon -85 -KPX T comma -63 -KPX T e -86 -KPX T g -68 -KPX T guillemotleft -99 -KPX T guilsinglleft -113 -KPX T hyphen -73 -KPX T i -16 -KPX T j -40 -KPX T o -88 -KPX T oslash -87 -KPX T period -64 -KPX T r -61 -KPX T s -59 -KPX T semicolon -85 -KPX T u -89 -KPX T v -106 -KPX T w -107 -KPX T y -104 -KPX U A -55 -KPX U AE -52 -KPX U Aacute -55 -KPX U Acircumflex -55 -KPX U Adieresis -55 -KPX U Aring -55 -KPX U Atilde -55 -KPX U comma -17 -KPX U m -23 -KPX U n -25 -KPX U p -28 -KPX U period -18 -KPX U r -29 -KPX Uacute A -55 -KPX Uacute comma -17 -KPX Uacute m -23 -KPX Uacute n -25 -KPX Uacute p -28 -KPX Uacute period -18 -KPX Uacute r -29 -KPX Ucircumflex A -55 -KPX Udieresis A -55 -KPX Udieresis b 10 -KPX Udieresis comma -17 -KPX Udieresis m -23 -KPX Udieresis n -25 -KPX Udieresis p -28 -KPX Udieresis period -18 -KPX Udieresis r -29 -KPX Ugrave A -55 -KPX V A -114 -KPX V AE -113 -KPX V Aacute -114 -KPX V Acircumflex -114 -KPX V Adieresis -114 -KPX V Agrave -114 -KPX V Aring -114 -KPX V Atilde -114 -KPX V C -70 -KPX V G -64 -KPX V O -63 -KPX V Oacute -63 -KPX V Ocircumflex -63 -KPX V Odieresis -63 -KPX V Ograve -63 -KPX V Oslash -65 -KPX V Otilde -63 -KPX V S -25 -KPX V T 8 -KPX V a -87 -KPX V ae -90 -KPX V colon -94 -KPX V comma -94 -KPX V e -86 -KPX V g -87 -KPX V guillemotleft -98 -KPX V guilsinglleft -112 -KPX V hyphen -68 -KPX V i -12 -KPX V o -89 -KPX V oslash -87 -KPX V period -95 -KPX V r -60 -KPX V semicolon -94 -KPX V u -58 -KPX V y -56 -KPX W A -99 -KPX W AE -102 -KPX W Aacute -99 -KPX W Acircumflex -99 -KPX W Adieresis -99 -KPX W Agrave -99 -KPX W Aring -99 -KPX W Atilde -99 -KPX W C -58 -KPX W G -52 -KPX W O -51 -KPX W Oacute -51 -KPX W Ocircumflex -51 -KPX W Odieresis -51 -KPX W Ograve -51 -KPX W Oslash -50 -KPX W Otilde -51 -KPX W S -24 -KPX W T 9 -KPX W a -70 -KPX W ae -73 -KPX W colon -80 -KPX W comma -72 -KPX W e -68 -KPX W g -70 -KPX W guillemotleft -79 -KPX W guilsinglleft -93 -KPX W hyphen -49 -KPX W i -11 -KPX W o -70 -KPX W oslash -69 -KPX W period -73 -KPX W r -49 -KPX W semicolon -80 -KPX W u -45 -KPX W y -44 -KPX X C -63 -KPX X O -56 -KPX X Odieresis -56 -KPX X Q -57 -KPX X a 0 -KPX X e -27 -KPX X hyphen -43 -KPX X o -31 -KPX X u -25 -KPX X y -90 -KPX Y A -64 -KPX Y AE -62 -KPX Y Aacute -64 -KPX Y Acircumflex -64 -KPX Y Adieresis -64 -KPX Y Agrave -64 -KPX Y Aring -64 -KPX Y Atilde -64 -KPX Y C -71 -KPX Y G -65 -KPX Y O -64 -KPX Y Oacute -64 -KPX Y Ocircumflex -64 -KPX Y Odieresis -64 -KPX Y Ograve -64 -KPX Y Oslash -68 -KPX Y Otilde -64 -KPX Y S -26 -KPX Y T 7 -KPX Y a -83 -KPX Y ae -87 -KPX Y colon -103 -KPX Y comma -80 -KPX Y e -93 -KPX Y g -86 -KPX Y guillemotleft -111 -KPX Y guilsinglleft -125 -KPX Y hyphen -87 -KPX Y i -13 -KPX Y o -96 -KPX Y oslash -95 -KPX Y p -72 -KPX Y period -81 -KPX Y semicolon -103 -KPX Y u -76 -KPX Y v -78 -KPX Z v -45 -KPX Z y -45 -KPX a j -39 -KPX a quoteright -34 -KPX a v -39 -KPX a w -40 -KPX a y -44 -KPX aacute v -39 -KPX aacute w -40 -KPX aacute y -44 -KPX adieresis v -39 -KPX adieresis w -40 -KPX adieresis y -44 -KPX ae v -33 -KPX ae w -34 -KPX ae y -37 -KPX agrave v -39 -KPX agrave w -40 -KPX agrave y -44 -KPX aring v -39 -KPX aring w -40 -KPX aring y -44 -KPX b v -39 -KPX b w -40 -KPX b y -42 -KPX c h -17 -KPX c k -18 -KPX comma one -12 -KPX comma quotedblright 9 -KPX comma quoteright -23 -KPX e quoteright -20 -KPX e t -11 -KPX e v -30 -KPX e w -31 -KPX e x -19 -KPX e y -32 -KPX eacute v -30 -KPX eacute w -31 -KPX eacute y -32 -KPX ecircumflex v -30 -KPX ecircumflex w -31 -KPX ecircumflex y -32 -KPX eight four 11 -KPX eight one -19 -KPX eight seven 0 -KPX f a -17 -KPX f aacute -17 -KPX f adieresis 14 -KPX f ae -20 -KPX f aring -14 -KPX f e -29 -KPX f eacute -29 -KPX f f 12 -KPX f i 22 -KPX f j -1 -KPX f l 33 -KPX f o -32 -KPX f oacute -32 -KPX f odieresis 11 -KPX f oe -30 -KPX f oslash -31 -KPX f quoteright 18 -KPX f s -8 -KPX f t -3 -KPX five four 1 -KPX five one -28 -KPX five seven -9 -KPX four four 13 -KPX four one -35 -KPX four seven -16 -KPX g a -15 -KPX g adieresis -15 -KPX g ae -18 -KPX g aring -15 -KPX g e -20 -KPX g eacute -20 -KPX g l 0 -KPX g oacute -20 -KPX g odieresis -20 -KPX g r 1 -KPX guillemotright A -41 -KPX guillemotright AE -46 -KPX guillemotright Aacute -41 -KPX guillemotright Adieresis -41 -KPX guillemotright Aring -41 -KPX guillemotright T -100 -KPX guillemotright V -102 -KPX guillemotright W -84 -KPX guillemotright Y -106 -KPX guilsinglright A -55 -KPX guilsinglright AE -60 -KPX guilsinglright Aacute -55 -KPX guilsinglright Adieresis -55 -KPX guilsinglright Aring -55 -KPX guilsinglright T -114 -KPX guilsinglright V -116 -KPX guilsinglright W -98 -KPX guilsinglright Y -120 -KPX h quoteright -30 -KPX h y -34 -KPX hyphen A -18 -KPX hyphen AE -24 -KPX hyphen Aacute -18 -KPX hyphen Adieresis -18 -KPX hyphen Aring -18 -KPX hyphen T -74 -KPX hyphen V -72 -KPX hyphen W -54 -KPX hyphen Y -83 -KPX i T -18 -KPX i j -36 -KPX k a -3 -KPX k aacute -3 -KPX k adieresis -3 -KPX k ae -6 -KPX k aring -3 -KPX k comma 0 -KPX k e -33 -KPX k eacute -33 -KPX k g -4 -KPX k hyphen -47 -KPX k o -38 -KPX k oacute -38 -KPX k odieresis -38 -KPX k period 0 -KPX k s 5 -KPX k u -5 -KPX k udieresis -5 -KPX l v -22 -KPX l y -19 -KPX m p -16 -KPX m v -32 -KPX m w -33 -KPX m y -33 -KPX n T -56 -KPX n p -15 -KPX n quoteright -28 -KPX n v -31 -KPX n w -32 -KPX n y -32 -KPX nine four 2 -KPX nine one -26 -KPX nine seven 10 -KPX o T -88 -KPX o quoteright -28 -KPX o t -11 -KPX o v -42 -KPX o w -38 -KPX o x -29 -KPX o y -43 -KPX oacute v -42 -KPX oacute w -38 -KPX oacute y -43 -KPX ocircumflex t -11 -KPX odieresis t -11 -KPX odieresis v -42 -KPX odieresis w -38 -KPX odieresis x -29 -KPX odieresis y -43 -KPX ograve v -42 -KPX ograve w -38 -KPX ograve y -43 -KPX one comma -16 -KPX one eight -34 -KPX one five -16 -KPX one four -56 -KPX one nine -9 -KPX one one -27 -KPX one period -17 -KPX one seven -56 -KPX one six -47 -KPX one three -9 -KPX one two -2 -KPX one zero -35 -KPX p t -11 -KPX p y -33 -KPX period one -21 -KPX period quotedblright 4 -KPX period quoteright -27 -KPX q c -14 -KPX q u -15 -KPX quotedblbase A 18 -KPX quotedblbase AE 20 -KPX quotedblbase T -59 -KPX quotedblbase V -98 -KPX quotedblbase W -75 -KPX quotedblbase Y -73 -KPX quotedblleft A -59 -KPX quotedblleft AE -78 -KPX quotedblleft Aacute -59 -KPX quotedblleft Adieresis -59 -KPX quotedblleft Aring -59 -KPX quotedblleft T 9 -KPX quotedblleft V 15 -KPX quotedblleft W 13 -KPX quotedblleft Y 15 -KPX quotedblright A -72 -KPX quotedblright AE -91 -KPX quotedblright Aacute -72 -KPX quotedblright Adieresis -72 -KPX quotedblright Aring -72 -KPX quotedblright T 4 -KPX quotedblright V 5 -KPX quotedblright W 4 -KPX quotedblright Y 6 -KPX quoteleft A -92 -KPX quoteleft AE -111 -KPX quoteleft Aacute -92 -KPX quoteleft Adieresis -92 -KPX quoteleft Aring -92 -KPX quoteleft T -22 -KPX quoteleft V -17 -KPX quoteleft W -19 -KPX quoteleft Y -17 -KPX quoteright A -91 -KPX quoteright AE -110 -KPX quoteright Aacute -91 -KPX quoteright Adieresis -91 -KPX quoteright Aring -91 -KPX quoteright comma -34 -KPX quoteright d -31 -KPX quoteright o -34 -KPX quoteright period -35 -KPX quoteright r -27 -KPX quoteright s -17 -KPX quoteright t -19 -KPX quoteright v -25 -KPX quoteright w -23 -KPX quoteright y -22 -KPX r a -6 -KPX r aacute -6 -KPX r acircumflex -6 -KPX r adieresis -6 -KPX r ae -8 -KPX r agrave -6 -KPX r aring -6 -KPX r c -15 -KPX r ccedilla -10 -KPX r colon -16 -KPX r comma -67 -KPX r d -13 -KPX r e -11 -KPX r eacute -11 -KPX r ecircumflex -11 -KPX r egrave -11 -KPX r f 11 -KPX r g -5 -KPX r h -15 -KPX r hyphen -18 -KPX r i 6 -KPX r j -12 -KPX r k -15 -KPX r l -14 -KPX r m 6 -KPX r n 3 -KPX r o -14 -KPX r oacute -14 -KPX r ocircumflex -14 -KPX r odieresis -14 -KPX r oe -12 -KPX r ograve -14 -KPX r oslash -14 -KPX r p 3 -KPX r period -68 -KPX r q -15 -KPX r quoteright -8 -KPX r r 0 -KPX r s 0 -KPX r semicolon -16 -KPX r t 9 -KPX r u 8 -KPX r v 8 -KPX r w 7 -KPX r x 10 -KPX r y 8 -KPX r z -1 -KPX s quoteright -17 -KPX s t -7 -KPX seven colon -64 -KPX seven comma -57 -KPX seven eight -18 -KPX seven five -34 -KPX seven four -54 -KPX seven one -25 -KPX seven period -58 -KPX seven seven -6 -KPX seven six -36 -KPX seven three -20 -KPX seven two -21 -KPX six four 13 -KPX six one -43 -KPX six seven -7 -KPX t S 11 -KPX t a 11 -KPX t aacute 11 -KPX t adieresis 11 -KPX t ae 7 -KPX t aring 11 -KPX t colon -12 -KPX t e -1 -KPX t eacute -1 -KPX t h -4 -KPX t o -3 -KPX t oacute -3 -KPX t odieresis -3 -KPX t quoteright -31 -KPX t semicolon -12 -KPX three four 9 -KPX three one -33 -KPX three seven -15 -KPX two four 14 -KPX two one -29 -KPX two seven -7 -KPX u quoteright -25 -KPX v a -23 -KPX v aacute -23 -KPX v acircumflex -23 -KPX v adieresis -23 -KPX v ae -25 -KPX v agrave -23 -KPX v aring -23 -KPX v atilde -23 -KPX v c -40 -KPX v colon -23 -KPX v comma -56 -KPX v e -35 -KPX v eacute -35 -KPX v ecircumflex -35 -KPX v egrave -35 -KPX v g -23 -KPX v hyphen -28 -KPX v l -16 -KPX v o -40 -KPX v oacute -40 -KPX v odieresis -40 -KPX v ograve -40 -KPX v oslash -39 -KPX v period -57 -KPX v s -16 -KPX v semicolon -23 -KPX w a -23 -KPX w aacute -23 -KPX w acircumflex -23 -KPX w adieresis -23 -KPX w ae -25 -KPX w agrave -23 -KPX w aring -23 -KPX w atilde -23 -KPX w c -36 -KPX w colon -23 -KPX w comma -51 -KPX w e -34 -KPX w eacute -34 -KPX w ecircumflex -34 -KPX w egrave -34 -KPX w g -23 -KPX w hyphen -23 -KPX w l -16 -KPX w o -36 -KPX w oacute -36 -KPX w odieresis -36 -KPX w ograve -36 -KPX w oslash -35 -KPX w period -52 -KPX w s -16 -KPX w semicolon -23 -KPX x a -2 -KPX x c -30 -KPX x e -28 -KPX x eacute -28 -KPX x o -30 -KPX x q -32 -KPX y a -32 -KPX y aacute -32 -KPX y acircumflex -32 -KPX y adieresis -32 -KPX y ae -34 -KPX y agrave -32 -KPX y aring -32 -KPX y atilde -32 -KPX y c -43 -KPX y colon -28 -KPX y comma -56 -KPX y e -40 -KPX y eacute -40 -KPX y ecircumflex -40 -KPX y egrave -40 -KPX y g -31 -KPX y hyphen -29 -KPX y l -19 -KPX y o -43 -KPX y oacute -43 -KPX y odieresis -43 -KPX y ograve -43 -KPX y oslash -42 -KPX y period -57 -KPX y s -24 -KPX y semicolon -28 -KPX zero four 11 -KPX zero one -31 -KPX zero seven 7 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/TimesBoO.afm b/misc/gs_afm/TimesBoO.afm deleted file mode 100644 index a31acdadc5..0000000000 --- a/misc/gs_afm/TimesBoO.afm +++ /dev/null @@ -1,1253 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 2/11/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusRomNo9L-MediItal -FullName Nimbus Roman No9 L Medium Italic -FamilyName Nimbus Roman No9 L -Weight Bold -ItalicAngle -15.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -200 -218 996 949 -CapHeight 669 -XHeight 449 -Descender -205 -Ascender 699 -StartCharMetrics 232 -C 32 ; WX 250 ; N space ; B 125 0 125 0 ; -C 33 ; WX 389 ; N exclam ; B 67 -13 370 684 ; -C 34 ; WX 555 ; N quotedbl ; B 136 398 536 685 ; -C 35 ; WX 500 ; N numbersign ; B -33 0 533 700 ; -C 36 ; WX 500 ; N dollar ; B -20 -100 497 733 ; -C 37 ; WX 833 ; N percent ; B 39 -10 793 692 ; -C 38 ; WX 778 ; N ampersand ; B 5 -19 699 682 ; -C 39 ; WX 333 ; N quoteright ; B 98 369 302 685 ; -C 40 ; WX 333 ; N parenleft ; B 28 -179 344 685 ; -C 41 ; WX 333 ; N parenright ; B -44 -179 271 685 ; -C 42 ; WX 500 ; N asterisk ; B 65 252 456 685 ; -C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; -C 44 ; WX 250 ; N comma ; B -60 -182 144 134 ; -C 45 ; WX 333 ; N hyphen ; B 2 166 271 282 ; -C 46 ; WX 250 ; N period ; B -9 -13 139 135 ; -C 47 ; WX 278 ; N slash ; B -64 -18 342 685 ; -C 48 ; WX 500 ; N zero ; B 17 -14 477 683 ; -C 49 ; WX 500 ; N one ; B 5 0 419 683 ; -C 50 ; WX 500 ; N two ; B -27 0 446 683 ; -C 51 ; WX 500 ; N three ; B -15 -13 450 683 ; -C 52 ; WX 500 ; N four ; B -15 0 503 683 ; -C 53 ; WX 500 ; N five ; B -11 -13 487 669 ; -C 54 ; WX 500 ; N six ; B 23 -15 509 679 ; -C 55 ; WX 500 ; N seven ; B 52 0 525 669 ; -C 56 ; WX 500 ; N eight ; B 3 -13 476 683 ; -C 57 ; WX 500 ; N nine ; B -12 -10 475 683 ; -C 58 ; WX 333 ; N colon ; B 23 -13 264 459 ; -C 59 ; WX 333 ; N semicolon ; B -25 -183 264 459 ; -C 60 ; WX 570 ; N less ; B 31 -12 539 518 ; -C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; -C 62 ; WX 570 ; N greater ; B 31 -12 539 518 ; -C 63 ; WX 500 ; N question ; B 79 -13 470 684 ; -C 64 ; WX 832 ; N at ; B 63 -18 770 685 ; -C 65 ; WX 667 ; N A ; B -67 0 593 683 ; -C 66 ; WX 667 ; N B ; B -24 0 624 669 ; -C 67 ; WX 667 ; N C ; B 32 -18 677 685 ; -C 68 ; WX 722 ; N D ; B -46 0 685 669 ; -C 69 ; WX 667 ; N E ; B -27 0 653 669 ; -C 70 ; WX 667 ; N F ; B -13 0 660 669 ; -C 71 ; WX 722 ; N G ; B 21 -18 706 685 ; -C 72 ; WX 778 ; N H ; B -24 0 799 669 ; -C 73 ; WX 389 ; N I ; B -32 0 406 669 ; -C 74 ; WX 500 ; N J ; B -46 -99 524 669 ; -C 75 ; WX 667 ; N K ; B -21 0 702 669 ; -C 76 ; WX 611 ; N L ; B -22 0 590 669 ; -C 77 ; WX 889 ; N M ; B -29 -12 917 669 ; -C 78 ; WX 722 ; N N ; B -27 -15 748 669 ; -C 79 ; WX 722 ; N O ; B 27 -18 691 685 ; -C 80 ; WX 611 ; N P ; B -27 0 613 669 ; -C 81 ; WX 722 ; N Q ; B 27 -208 691 685 ; -C 82 ; WX 667 ; N R ; B -29 0 623 669 ; -C 83 ; WX 556 ; N S ; B 2 -18 526 685 ; -C 84 ; WX 611 ; N T ; B 50 0 650 669 ; -C 85 ; WX 722 ; N U ; B 67 -18 744 669 ; -C 86 ; WX 667 ; N V ; B 65 -18 715 669 ; -C 87 ; WX 889 ; N W ; B 65 -18 940 669 ; -C 88 ; WX 667 ; N X ; B -24 0 694 669 ; -C 89 ; WX 611 ; N Y ; B 73 0 659 669 ; -C 90 ; WX 611 ; N Z ; B -11 0 590 669 ; -C 91 ; WX 333 ; N bracketleft ; B -37 -159 362 674 ; -C 92 ; WX 278 ; N backslash ; B -1 -18 279 685 ; -C 93 ; WX 333 ; N bracketright ; B -56 -157 343 674 ; -C 94 ; WX 570 ; N asciicircum ; B 67 304 503 669 ; -C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; -C 96 ; WX 333 ; N quoteleft ; B 128 369 332 685 ; -C 97 ; WX 500 ; N a ; B -21 -14 455 462 ; -C 98 ; WX 500 ; N b ; B -14 -13 444 699 ; -C 99 ; WX 444 ; N c ; B -5 -13 392 462 ; -C 100 ; WX 500 ; N d ; B -21 -13 517 699 ; -C 101 ; WX 444 ; N e ; B 5 -13 398 462 ; -C 102 ; WX 333 ; N f ; B -169 -205 446 698 ; -C 103 ; WX 500 ; N g ; B -52 -203 478 462 ; -C 104 ; WX 556 ; N h ; B -13 -9 498 699 ; -C 105 ; WX 278 ; N i ; B 2 -9 262 684 ; -C 106 ; WX 278 ; N j ; B -189 -207 279 685 ; -C 107 ; WX 500 ; N k ; B -23 -8 483 699 ; -C 108 ; WX 278 ; N l ; B 2 -9 290 699 ; -C 109 ; WX 778 ; N m ; B -14 -9 722 462 ; -C 110 ; WX 556 ; N n ; B -6 -9 493 462 ; -C 111 ; WX 500 ; N o ; B -3 -13 441 462 ; -C 112 ; WX 500 ; N p ; B -120 -205 446 462 ; -C 113 ; WX 500 ; N q ; B 1 -205 471 462 ; -C 114 ; WX 389 ; N r ; B -21 0 389 462 ; -C 115 ; WX 389 ; N s ; B -19 -13 333 462 ; -C 116 ; WX 278 ; N t ; B -11 -9 281 594 ; -C 117 ; WX 556 ; N u ; B 15 -9 492 462 ; -C 118 ; WX 444 ; N v ; B 16 -13 401 462 ; -C 119 ; WX 667 ; N w ; B 16 -13 614 462 ; -C 120 ; WX 500 ; N x ; B -46 -13 469 462 ; -C 121 ; WX 444 ; N y ; B -94 -205 392 462 ; -C 122 ; WX 389 ; N z ; B -43 -78 368 449 ; -C 123 ; WX 348 ; N braceleft ; B 5 -187 436 686 ; -C 124 ; WX 220 ; N bar ; B 66 -18 154 685 ; -C 125 ; WX 348 ; N braceright ; B -129 -187 302 686 ; -C 126 ; WX 570 ; N asciitilde ; B 54 175 516 331 ; -C 161 ; WX 389 ; N exclamdown ; B 19 -205 320 494 ; -C 162 ; WX 500 ; N cent ; B 42 -143 439 576 ; -C 163 ; WX 500 ; N sterling ; B -32 -12 510 683 ; -C 164 ; WX 167 ; N fraction ; B -169 -14 324 683 ; -C 165 ; WX 500 ; N yen ; B 33 0 628 669 ; -C 166 ; WX 500 ; N florin ; B -87 -156 537 707 ; -C 167 ; WX 500 ; N section ; B 36 -143 459 685 ; -C 168 ; WX 500 ; N currency ; B -26 34 526 586 ; -C 169 ; WX 278 ; N quotesingle ; B 128 398 268 685 ; -C 170 ; WX 500 ; N quotedblleft ; B 53 369 513 685 ; -C 171 ; WX 500 ; N guillemotleft ; B 12 32 468 415 ; -C 172 ; WX 333 ; N guilsinglleft ; B 32 32 303 415 ; -C 173 ; WX 333 ; N guilsinglright ; B 10 32 281 415 ; -C 174 ; WX 556 ; N fi ; B -188 -205 514 703 ; -C 175 ; WX 556 ; N fl ; B -186 -205 553 704 ; -C 177 ; WX 500 ; N endash ; B -40 178 477 269 ; -C 178 ; WX 500 ; N dagger ; B 91 -145 494 685 ; -C 179 ; WX 500 ; N daggerdbl ; B 10 -139 493 685 ; -C 180 ; WX 250 ; N periodcentered ; B 51 257 199 405 ; -C 182 ; WX 500 ; N paragraph ; B -57 -193 562 669 ; -C 183 ; WX 350 ; N bullet ; B 0 175 350 525 ; -C 184 ; WX 333 ; N quotesinglbase ; B -5 -182 199 134 ; -C 185 ; WX 500 ; N quotedblbase ; B -57 -182 403 134 ; -C 186 ; WX 500 ; N quotedblright ; B 53 369 513 685 ; -C 187 ; WX 500 ; N guillemotright ; B 12 32 468 415 ; -C 188 ; WX 1000 ; N ellipsis ; B 40 -13 852 135 ; -C 189 ; WX 1000 ; N perthousand ; B 7 -29 996 706 ; -C 191 ; WX 500 ; N questiondown ; B 30 -205 421 492 ; -C 193 ; WX 333 ; N grave ; B 85 516 297 697 ; -C 194 ; WX 333 ; N acute ; B 139 516 379 697 ; -C 195 ; WX 333 ; N circumflex ; B 40 516 367 690 ; -C 196 ; WX 333 ; N tilde ; B 48 536 407 655 ; -C 197 ; WX 333 ; N macron ; B 51 553 393 623 ; -C 198 ; WX 333 ; N breve ; B 71 516 387 678 ; -C 199 ; WX 333 ; N dotaccent ; B 163 525 293 655 ; -C 200 ; WX 333 ; N dieresis ; B 55 525 397 655 ; -C 202 ; WX 333 ; N ring ; B 127 541 340 754 ; -C 203 ; WX 333 ; N cedilla ; B -80 -218 156 5 ; -C 205 ; WX 333 ; N hungarumlaut ; B 69 516 498 697 ; -C 206 ; WX 333 ; N ogonek ; B -40 -173 189 44 ; -C 207 ; WX 333 ; N caron ; B 79 516 411 690 ; -C 208 ; WX 1000 ; N emdash ; B -40 178 977 269 ; -C 225 ; WX 944 ; N AE ; B -64 0 918 669 ; -C 227 ; WX 266 ; N ordfeminine ; B 16 399 330 685 ; -C 232 ; WX 611 ; N Lslash ; B -22 0 590 669 ; -C 233 ; WX 722 ; N Oslash ; B 27 -125 691 764 ; -C 234 ; WX 944 ; N OE ; B 23 -8 946 677 ; -C 235 ; WX 300 ; N ordmasculine ; B 56 400 350 685 ; -C 241 ; WX 722 ; N ae ; B -5 -13 673 462 ; -C 245 ; WX 278 ; N dotlessi ; B 2 -9 238 462 ; -C 248 ; WX 278 ; N lslash ; B -13 -9 301 699 ; -C 249 ; WX 500 ; N oslash ; B -3 -119 441 560 ; -C 250 ; WX 722 ; N oe ; B 6 -13 674 462 ; -C 251 ; WX 500 ; N germandbls ; B -200 -200 473 705 ; -C -1 ; WX 611 ; N Yacute ; B 73 0 659 904 ; -C -1 ; WX 722 ; N Ucircumflex ; B 67 -18 744 897 ; -C -1 ; WX 722 ; N Ugrave ; B 67 -18 744 904 ; -C -1 ; WX 611 ; N Zcaron ; B -11 0 590 897 ; -C -1 ; WX 611 ; N Ydieresis ; B 73 0 659 862 ; -C -1 ; WX 300 ; N threesuperior ; B 17 265 321 683 ; -C -1 ; WX 722 ; N Uacute ; B 67 -18 744 904 ; -C -1 ; WX 300 ; N twosuperior ; B 2 274 313 683 ; -C -1 ; WX 722 ; N Udieresis ; B 67 -18 744 862 ; -C -1 ; WX 250 ; N middot ; B 51 257 199 405 ; -C -1 ; WX 300 ; N onesuperior ; B 30 274 301 683 ; -C -1 ; WX 500 ; N aacute ; B -21 -14 463 697 ; -C -1 ; WX 500 ; N agrave ; B -21 -14 455 697 ; -C -1 ; WX 500 ; N acircumflex ; B -21 -14 455 690 ; -C -1 ; WX 556 ; N Scaron ; B 2 -18 526 897 ; -C -1 ; WX 722 ; N Otilde ; B 27 -18 691 862 ; -C -1 ; WX 333 ; N sfthyphen ; B 2 166 271 282 ; -C -1 ; WX 500 ; N atilde ; B -21 -14 491 655 ; -C -1 ; WX 500 ; N aring ; B -21 -14 455 754 ; -C -1 ; WX 500 ; N adieresis ; B -21 -14 471 655 ; -C -1 ; WX 722 ; N Ograve ; B 27 -18 691 904 ; -C -1 ; WX 722 ; N Ocircumflex ; B 27 -18 691 897 ; -C -1 ; WX 722 ; N Odieresis ; B 27 -18 691 862 ; -C -1 ; WX 722 ; N Ntilde ; B -27 -15 748 862 ; -C -1 ; WX 444 ; N edieresis ; B 5 -13 443 655 ; -C -1 ; WX 444 ; N eacute ; B 5 -13 435 697 ; -C -1 ; WX 444 ; N egrave ; B 5 -13 398 697 ; -C -1 ; WX 389 ; N Icircumflex ; B -32 0 420 897 ; -C -1 ; WX 444 ; N ecircumflex ; B 5 -13 423 690 ; -C -1 ; WX 389 ; N Igrave ; B -32 0 406 904 ; -C -1 ; WX 389 ; N Iacute ; B -32 0 407 907 ; -C -1 ; WX 389 ; N Idieresis ; B -32 0 445 862 ; -C -1 ; WX 400 ; N degree ; B 83 397 369 683 ; -C -1 ; WX 667 ; N Ecircumflex ; B -27 0 653 897 ; -C -1 ; WX 606 ; N minus ; B 51 209 555 297 ; -C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; -C -1 ; WX 570 ; N divide ; B 33 -29 537 535 ; -C -1 ; WX 667 ; N Egrave ; B -27 0 653 904 ; -C -1 ; WX 1000 ; N trademark ; B 32 263 968 669 ; -C -1 ; WX 722 ; N Oacute ; B 27 -18 691 904 ; -C -1 ; WX 500 ; N thorn ; B -120 -205 446 699 ; -C -1 ; WX 500 ; N eth ; B -3 -13 454 699 ; -C -1 ; WX 667 ; N Eacute ; B -27 0 653 904 ; -C -1 ; WX 444 ; N ccedilla ; B -24 -218 392 462 ; -C -1 ; WX 278 ; N idieresis ; B 2 -9 360 655 ; -C -1 ; WX 278 ; N iacute ; B 2 -9 352 697 ; -C -1 ; WX 278 ; N igrave ; B 2 -9 260 697 ; -C -1 ; WX 570 ; N plusminus ; B 33 0 537 568 ; -C -1 ; WX 750 ; N onehalf ; B -9 -14 723 683 ; -C -1 ; WX 750 ; N onequarter ; B 7 -14 721 683 ; -C -1 ; WX 750 ; N threequarters ; B 7 -14 726 683 ; -C -1 ; WX 278 ; N icircumflex ; B -2 -9 325 690 ; -C -1 ; WX 667 ; N Edieresis ; B -27 0 653 862 ; -C -1 ; WX 556 ; N ntilde ; B -6 -9 504 655 ; -C -1 ; WX 667 ; N Aring ; B -67 0 593 949 ; -C -1 ; WX 500 ; N odieresis ; B -3 -13 466 655 ; -C -1 ; WX 500 ; N oacute ; B -3 -13 463 697 ; -C -1 ; WX 500 ; N ograve ; B -3 -13 441 697 ; -C -1 ; WX 500 ; N ocircumflex ; B -3 -13 451 690 ; -C -1 ; WX 500 ; N otilde ; B -3 -13 491 655 ; -C -1 ; WX 389 ; N scaron ; B -19 -13 439 690 ; -C -1 ; WX 556 ; N udieresis ; B 15 -9 494 655 ; -C -1 ; WX 556 ; N uacute ; B 15 -9 492 697 ; -C -1 ; WX 556 ; N ugrave ; B 15 -9 492 697 ; -C -1 ; WX 556 ; N ucircumflex ; B 15 -9 492 690 ; -C -1 ; WX 444 ; N yacute ; B -94 -205 435 697 ; -C -1 ; WX 389 ; N zcaron ; B -43 -78 424 690 ; -C -1 ; WX 444 ; N ydieresis ; B -94 -205 438 655 ; -C -1 ; WX 747 ; N copyright ; B 30 -18 718 685 ; -C -1 ; WX 747 ; N registered ; B 30 -18 718 685 ; -C -1 ; WX 667 ; N Atilde ; B -67 0 593 862 ; -C -1 ; WX 250 ; N nbspace ; B 125 0 125 0 ; -C -1 ; WX 667 ; N Ccedilla ; B 32 -218 677 685 ; -C -1 ; WX 667 ; N Acircumflex ; B -67 0 593 897 ; -C -1 ; WX 667 ; N Agrave ; B -67 0 593 904 ; -C -1 ; WX 606 ; N logicalnot ; B 51 108 555 399 ; -C -1 ; WX 667 ; N Aacute ; B -67 0 593 904 ; -C -1 ; WX 722 ; N Eth ; B -31 0 700 669 ; -C -1 ; WX 220 ; N brokenbar ; B 66 -18 154 685 ; -C -1 ; WX 611 ; N Thorn ; B -27 0 573 669 ; -C -1 ; WX 667 ; N Adieresis ; B -67 0 593 862 ; -C -1 ; WX 576 ; N mu ; B -60 -207 516 449 ; -C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; -EndCharMetrics -StartKernData -StartKernPairs 994 -KPX A C -61 -KPX A Ccedilla -63 -KPX A G -59 -KPX A O -53 -KPX A Odieresis -53 -KPX A Q -55 -KPX A T -33 -KPX A U -61 -KPX A Uacute -61 -KPX A Ucircumflex -61 -KPX A Udieresis -61 -KPX A Ugrave -61 -KPX A V -109 -KPX A W -107 -KPX A Y -44 -KPX A a -6 -KPX A b -1 -KPX A c -20 -KPX A ccedilla -29 -KPX A comma 0 -KPX A d -5 -KPX A e -25 -KPX A g -21 -KPX A guillemotleft -58 -KPX A guilsinglleft -68 -KPX A hyphen -22 -KPX A o -23 -KPX A period 2 -KPX A q -18 -KPX A quotedblright -78 -KPX A quoteright -101 -KPX A t -4 -KPX A u -17 -KPX A v -51 -KPX A w -56 -KPX A y -67 -KPX Aacute C -61 -KPX Aacute G -59 -KPX Aacute O -53 -KPX Aacute Q -55 -KPX Aacute T -33 -KPX Aacute U -61 -KPX Aacute V -109 -KPX Aacute W -107 -KPX Aacute Y -44 -KPX Aacute a -6 -KPX Aacute b -1 -KPX Aacute c -20 -KPX Aacute comma 0 -KPX Aacute d -5 -KPX Aacute e -25 -KPX Aacute g -21 -KPX Aacute guillemotleft -58 -KPX Aacute guilsinglleft -68 -KPX Aacute hyphen -22 -KPX Aacute o -23 -KPX Aacute period 2 -KPX Aacute q -18 -KPX Aacute quoteright -101 -KPX Aacute t -4 -KPX Aacute u -17 -KPX Aacute v -51 -KPX Aacute w -56 -KPX Aacute y -67 -KPX Acircumflex C -61 -KPX Acircumflex G -59 -KPX Acircumflex O -53 -KPX Acircumflex Q -55 -KPX Acircumflex T -33 -KPX Acircumflex U -61 -KPX Acircumflex V -109 -KPX Acircumflex W -107 -KPX Acircumflex Y -44 -KPX Acircumflex comma 0 -KPX Acircumflex period 2 -KPX Adieresis C -61 -KPX Adieresis G -59 -KPX Adieresis O -53 -KPX Adieresis Q -55 -KPX Adieresis T -33 -KPX Adieresis U -61 -KPX Adieresis V -109 -KPX Adieresis W -107 -KPX Adieresis Y -44 -KPX Adieresis a -6 -KPX Adieresis b -1 -KPX Adieresis c -20 -KPX Adieresis comma 0 -KPX Adieresis d -5 -KPX Adieresis g -21 -KPX Adieresis guillemotleft -58 -KPX Adieresis guilsinglleft -68 -KPX Adieresis hyphen -22 -KPX Adieresis o -23 -KPX Adieresis period 2 -KPX Adieresis q -18 -KPX Adieresis quotedblright -78 -KPX Adieresis quoteright -101 -KPX Adieresis t -4 -KPX Adieresis u -17 -KPX Adieresis v -51 -KPX Adieresis w -56 -KPX Adieresis y -67 -KPX Agrave C -61 -KPX Agrave G -59 -KPX Agrave O -53 -KPX Agrave Q -55 -KPX Agrave T -33 -KPX Agrave U -61 -KPX Agrave V -109 -KPX Agrave W -107 -KPX Agrave Y -44 -KPX Agrave comma 0 -KPX Agrave period 2 -KPX Aring C -61 -KPX Aring G -59 -KPX Aring O -53 -KPX Aring Q -55 -KPX Aring T -33 -KPX Aring U -61 -KPX Aring V -109 -KPX Aring W -107 -KPX Aring Y -44 -KPX Aring a -6 -KPX Aring b -1 -KPX Aring c -20 -KPX Aring comma 0 -KPX Aring d -5 -KPX Aring e -25 -KPX Aring g -21 -KPX Aring guillemotleft -58 -KPX Aring guilsinglleft -68 -KPX Aring hyphen -22 -KPX Aring o -23 -KPX Aring period 2 -KPX Aring q -18 -KPX Aring quotedblright -78 -KPX Aring quoteright -101 -KPX Aring t -4 -KPX Aring u -17 -KPX Aring v -51 -KPX Aring w -56 -KPX Aring y -67 -KPX Atilde C -61 -KPX Atilde G -59 -KPX Atilde O -53 -KPX Atilde Q -55 -KPX Atilde T -33 -KPX Atilde U -61 -KPX Atilde V -109 -KPX Atilde W -107 -KPX Atilde Y -44 -KPX Atilde comma 0 -KPX Atilde period 2 -KPX B A -33 -KPX B AE -34 -KPX B Aacute -33 -KPX B Acircumflex -33 -KPX B Adieresis -33 -KPX B Aring -33 -KPX B Atilde -33 -KPX B O -22 -KPX B OE -19 -KPX B Oacute -22 -KPX B Ocircumflex -22 -KPX B Odieresis -22 -KPX B Ograve -22 -KPX B Oslash -22 -KPX B V -48 -KPX B W -51 -KPX B Y -52 -KPX C A -24 -KPX C AE -26 -KPX C Aacute -24 -KPX C Adieresis -24 -KPX C Aring -24 -KPX C H -26 -KPX C K -28 -KPX C O -25 -KPX C Oacute -25 -KPX C Odieresis -25 -KPX Ccedilla A -30 -KPX D A -52 -KPX D Aacute -52 -KPX D Acircumflex -52 -KPX D Adieresis -52 -KPX D Agrave -52 -KPX D Aring -52 -KPX D Atilde -52 -KPX D J -66 -KPX D T -27 -KPX D V -60 -KPX D W -58 -KPX D X -63 -KPX D Y -63 -KPX F A -99 -KPX F Aacute -99 -KPX F Acircumflex -99 -KPX F Adieresis -99 -KPX F Agrave -99 -KPX F Aring -99 -KPX F Atilde -99 -KPX F J -88 -KPX F O -48 -KPX F Odieresis -48 -KPX F a -74 -KPX F aacute -75 -KPX F adieresis -48 -KPX F ae -83 -KPX F aring -75 -KPX F comma -96 -KPX F e -85 -KPX F eacute -86 -KPX F hyphen -54 -KPX F i -29 -KPX F j -34 -KPX F o -81 -KPX F oacute -82 -KPX F odieresis -45 -KPX F oe -86 -KPX F oslash -82 -KPX F period -97 -KPX F r -32 -KPX F u -36 -KPX G A -14 -KPX G AE -15 -KPX G Aacute -14 -KPX G Acircumflex -14 -KPX G Adieresis -14 -KPX G Agrave -14 -KPX G Aring -14 -KPX G Atilde -14 -KPX G T -42 -KPX G V -27 -KPX G W -27 -KPX G Y -31 -KPX J A -39 -KPX J AE -41 -KPX J Adieresis -39 -KPX J Aring -39 -KPX K C -49 -KPX K G -45 -KPX K O -44 -KPX K OE -43 -KPX K Oacute -44 -KPX K Odieresis -44 -KPX K S -1 -KPX K T 0 -KPX K a 3 -KPX K adieresis 3 -KPX K ae -4 -KPX K aring 3 -KPX K e -15 -KPX K hyphen -30 -KPX K o -13 -KPX K oacute -13 -KPX K odieresis -13 -KPX K u -8 -KPX K udieresis -8 -KPX K y -68 -KPX L A 28 -KPX L AE 26 -KPX L Aacute 28 -KPX L Adieresis 28 -KPX L Aring 28 -KPX L C 0 -KPX L Ccedilla 0 -KPX L G 5 -KPX L O 4 -KPX L Oacute 4 -KPX L Ocircumflex 4 -KPX L Odieresis 4 -KPX L Ograve 4 -KPX L Otilde 4 -KPX L S 1 -KPX L T -30 -KPX L U -17 -KPX L Udieresis -17 -KPX L V -77 -KPX L W -75 -KPX L Y -41 -KPX L hyphen 41 -KPX L quotedblright -46 -KPX L quoteright -68 -KPX L u 6 -KPX L udieresis 6 -KPX L y -23 -KPX N A -39 -KPX N AE -40 -KPX N Aacute -39 -KPX N Adieresis -39 -KPX N Aring -39 -KPX N C -31 -KPX N Ccedilla -30 -KPX N G -27 -KPX N O -32 -KPX N Oacute -32 -KPX N Odieresis -32 -KPX N a -25 -KPX N aacute -26 -KPX N adieresis -26 -KPX N ae -33 -KPX N aring -26 -KPX N comma -24 -KPX N e -36 -KPX N eacute -38 -KPX N o -32 -KPX N oacute -34 -KPX N odieresis -34 -KPX N oslash -34 -KPX N period -25 -KPX N u -32 -KPX N udieresis -32 -KPX O A -56 -KPX O AE -65 -KPX O Aacute -56 -KPX O Adieresis -56 -KPX O Aring -56 -KPX O T -18 -KPX O V -52 -KPX O W -55 -KPX O X -61 -KPX O Y -56 -KPX Oacute A -56 -KPX Oacute T -18 -KPX Oacute V -52 -KPX Oacute W -55 -KPX Oacute Y -56 -KPX Ocircumflex T -18 -KPX Ocircumflex V -52 -KPX Ocircumflex Y -56 -KPX Odieresis A -56 -KPX Odieresis T -18 -KPX Odieresis V -52 -KPX Odieresis W -55 -KPX Odieresis X -61 -KPX Odieresis Y -56 -KPX Ograve T -18 -KPX Ograve V -52 -KPX Ograve Y -56 -KPX Oslash A -56 -KPX Otilde T -18 -KPX Otilde V -52 -KPX Otilde Y -56 -KPX P A -89 -KPX P AE -104 -KPX P Aacute -89 -KPX P Adieresis -89 -KPX P Aring -89 -KPX P J -105 -KPX P a -53 -KPX P aacute -53 -KPX P adieresis -38 -KPX P ae -61 -KPX P aring -53 -KPX P comma -108 -KPX P e -60 -KPX P eacute -60 -KPX P hyphen -57 -KPX P o -55 -KPX P oacute -55 -KPX P odieresis -35 -KPX P oe -60 -KPX P oslash -55 -KPX P period -109 -KPX R C -33 -KPX R Ccedilla -32 -KPX R G -28 -KPX R O -33 -KPX R OE -31 -KPX R Oacute -33 -KPX R Odieresis -33 -KPX R T -24 -KPX R U -43 -KPX R Udieresis -43 -KPX R V -46 -KPX R W -49 -KPX R Y -40 -KPX R a -1 -KPX R aacute -1 -KPX R adieresis -1 -KPX R ae -9 -KPX R aring -1 -KPX R e -20 -KPX R eacute -20 -KPX R hyphen -30 -KPX R o -18 -KPX R oacute -18 -KPX R odieresis -18 -KPX R oe -23 -KPX R u -13 -KPX R uacute -13 -KPX R udieresis -13 -KPX R y -12 -KPX S A -11 -KPX S AE -12 -KPX S Aacute -11 -KPX S Adieresis -11 -KPX S Aring -11 -KPX S T -33 -KPX S V -20 -KPX S W -20 -KPX S Y -24 -KPX S t -6 -KPX T A -52 -KPX T AE -54 -KPX T Aacute -52 -KPX T Acircumflex -52 -KPX T Adieresis -52 -KPX T Agrave -52 -KPX T Aring -52 -KPX T Atilde -52 -KPX T C -16 -KPX T G -10 -KPX T J -63 -KPX T O -21 -KPX T OE -18 -KPX T Oacute -21 -KPX T Ocircumflex -21 -KPX T Odieresis -21 -KPX T Ograve -21 -KPX T Oslash -22 -KPX T Otilde -21 -KPX T S -17 -KPX T V 15 -KPX T W 15 -KPX T Y 11 -KPX T a -83 -KPX T ae -91 -KPX T c -89 -KPX T colon -98 -KPX T comma -77 -KPX T e -94 -KPX T g -95 -KPX T guillemotleft -110 -KPX T guilsinglleft -120 -KPX T hyphen -74 -KPX T i -19 -KPX T j -27 -KPX T o -90 -KPX T oslash -92 -KPX T period -78 -KPX T r -76 -KPX T s -78 -KPX T semicolon -98 -KPX T u -90 -KPX T v -89 -KPX T w -89 -KPX T y -86 -KPX U A -65 -KPX U AE -66 -KPX U Aacute -65 -KPX U Acircumflex -65 -KPX U Adieresis -65 -KPX U Aring -65 -KPX U Atilde -65 -KPX U comma -39 -KPX U m -34 -KPX U n -38 -KPX U p -28 -KPX U period -40 -KPX U r -30 -KPX Uacute A -65 -KPX Uacute comma -39 -KPX Uacute m -34 -KPX Uacute n -38 -KPX Uacute p -28 -KPX Uacute period -40 -KPX Uacute r -30 -KPX Ucircumflex A -65 -KPX Udieresis A -65 -KPX Udieresis b 1 -KPX Udieresis comma -39 -KPX Udieresis m -34 -KPX Udieresis n -38 -KPX Udieresis p -28 -KPX Udieresis period -40 -KPX Udieresis r -30 -KPX Ugrave A -65 -KPX V A -98 -KPX V AE -111 -KPX V Aacute -98 -KPX V Acircumflex -98 -KPX V Adieresis -98 -KPX V Agrave -98 -KPX V Aring -98 -KPX V Atilde -98 -KPX V C -59 -KPX V G -54 -KPX V O -63 -KPX V Oacute -63 -KPX V Ocircumflex -63 -KPX V Odieresis -63 -KPX V Ograve -63 -KPX V Oslash -63 -KPX V Otilde -63 -KPX V S -28 -KPX V T 7 -KPX V a -75 -KPX V ae -84 -KPX V colon -95 -KPX V comma -95 -KPX V e -86 -KPX V g -82 -KPX V guillemotleft -98 -KPX V guilsinglleft -108 -KPX V hyphen -61 -KPX V i -12 -KPX V o -82 -KPX V oslash -83 -KPX V period -97 -KPX V r -39 -KPX V semicolon -95 -KPX V u -43 -KPX V y -33 -KPX W A -82 -KPX W AE -85 -KPX W Aacute -82 -KPX W Acircumflex -82 -KPX W Adieresis -82 -KPX W Agrave -82 -KPX W Aring -82 -KPX W Atilde -82 -KPX W C -47 -KPX W G -42 -KPX W O -48 -KPX W Oacute -48 -KPX W Ocircumflex -48 -KPX W Odieresis -48 -KPX W Ograve -48 -KPX W Oslash -48 -KPX W Otilde -48 -KPX W S -32 -KPX W T 7 -KPX W a -51 -KPX W ae -60 -KPX W colon -78 -KPX W comma -62 -KPX W e -63 -KPX W g -63 -KPX W guillemotleft -74 -KPX W guilsinglleft -84 -KPX W hyphen -37 -KPX W i -12 -KPX W o -58 -KPX W oslash -60 -KPX W period -63 -KPX W r -32 -KPX W semicolon -79 -KPX W u -36 -KPX W y -26 -KPX X C -56 -KPX X O -57 -KPX X Odieresis -57 -KPX X Q -57 -KPX X a -9 -KPX X e -28 -KPX X hyphen -45 -KPX X o -26 -KPX X u -21 -KPX X y -81 -KPX Y A -45 -KPX Y AE -47 -KPX Y Aacute -45 -KPX Y Acircumflex -45 -KPX Y Adieresis -45 -KPX Y Agrave -45 -KPX Y Aring -45 -KPX Y Atilde -45 -KPX Y C -59 -KPX Y G -55 -KPX Y O -60 -KPX Y Oacute -60 -KPX Y Ocircumflex -60 -KPX Y Odieresis -60 -KPX Y Ograve -60 -KPX Y Oslash -60 -KPX Y Otilde -60 -KPX Y S -28 -KPX Y T 7 -KPX Y a -69 -KPX Y ae -77 -KPX Y colon -91 -KPX Y comma -67 -KPX Y e -80 -KPX Y g -81 -KPX Y guillemotleft -97 -KPX Y guilsinglleft -107 -KPX Y hyphen -64 -KPX Y i -12 -KPX Y o -76 -KPX Y oslash -77 -KPX Y p -50 -KPX Y period -69 -KPX Y semicolon -91 -KPX Y u -56 -KPX Y v -54 -KPX Z v -27 -KPX Z y -38 -KPX a j -2 -KPX a quoteright -22 -KPX a v -5 -KPX a w -5 -KPX a y -3 -KPX aacute v -5 -KPX aacute w -5 -KPX aacute y -3 -KPX adieresis v -5 -KPX adieresis w -5 -KPX adieresis y -3 -KPX ae v -5 -KPX ae w -5 -KPX ae y -8 -KPX agrave v -5 -KPX agrave w -5 -KPX agrave y -3 -KPX aring v -5 -KPX aring w -5 -KPX aring y -3 -KPX b v -12 -KPX b w -12 -KPX b y -17 -KPX c h -20 -KPX c k -16 -KPX comma one -26 -KPX comma quotedblright -3 -KPX comma quoteright -25 -KPX e quoteright -13 -KPX e t -3 -KPX e v -3 -KPX e w -3 -KPX e x -15 -KPX e y -6 -KPX eacute v -3 -KPX eacute w -3 -KPX eacute y -6 -KPX ecircumflex v -3 -KPX ecircumflex w -3 -KPX ecircumflex y -6 -KPX eight four -4 -KPX eight one -52 -KPX eight seven -13 -KPX f a -23 -KPX f aacute -24 -KPX f adieresis 17 -KPX f ae -31 -KPX f aring -21 -KPX f e -35 -KPX f eacute -36 -KPX f f 2 -KPX f i 20 -KPX f j 12 -KPX f l 43 -KPX f o -30 -KPX f oacute -31 -KPX f odieresis 20 -KPX f oe -35 -KPX f oslash -31 -KPX f quoteright 12 -KPX f s -14 -KPX f t 9 -KPX five four -13 -KPX five one -56 -KPX five seven -37 -KPX four four 1 -KPX four one -50 -KPX four seven -21 -KPX g a -25 -KPX g adieresis -25 -KPX g ae -34 -KPX g aring -25 -KPX g e -32 -KPX g eacute -32 -KPX g l -21 -KPX g oacute -27 -KPX g odieresis -27 -KPX g r 3 -KPX guillemotright A -28 -KPX guillemotright AE -37 -KPX guillemotright Aacute -28 -KPX guillemotright Adieresis -28 -KPX guillemotright Aring -28 -KPX guillemotright T -75 -KPX guillemotright V -79 -KPX guillemotright W -75 -KPX guillemotright Y -82 -KPX guilsinglright A -38 -KPX guilsinglright AE -47 -KPX guilsinglright Aacute -38 -KPX guilsinglright Adieresis -38 -KPX guilsinglright Aring -38 -KPX guilsinglright T -85 -KPX guilsinglright V -89 -KPX guilsinglright W -85 -KPX guilsinglright Y -92 -KPX h quoteright -33 -KPX h y -20 -KPX hyphen A -11 -KPX hyphen AE -20 -KPX hyphen Aacute -11 -KPX hyphen Adieresis -11 -KPX hyphen Aring -11 -KPX hyphen T -59 -KPX hyphen V -62 -KPX hyphen W -59 -KPX hyphen Y -69 -KPX i T -21 -KPX i j -5 -KPX k a 10 -KPX k aacute 10 -KPX k adieresis 10 -KPX k ae 2 -KPX k aring 10 -KPX k comma 19 -KPX k e -2 -KPX k eacute -2 -KPX k g -13 -KPX k hyphen 0 -KPX k o 1 -KPX k oacute 1 -KPX k odieresis 1 -KPX k period 17 -KPX k s 1 -KPX k u 2 -KPX k udieresis 2 -KPX l v -12 -KPX l y -8 -KPX m p 0 -KPX m v -16 -KPX m w -16 -KPX m y -16 -KPX n T -57 -KPX n p -3 -KPX n quoteright -33 -KPX n v -20 -KPX n w -20 -KPX n y -20 -KPX nine four -18 -KPX nine one -67 -KPX nine seven -12 -KPX o T -75 -KPX o quoteright -22 -KPX o t -2 -KPX o v -21 -KPX o w -21 -KPX o x -26 -KPX o y -28 -KPX oacute v -21 -KPX oacute w -21 -KPX oacute y -28 -KPX ocircumflex t -4 -KPX odieresis t -4 -KPX odieresis v -21 -KPX odieresis w -21 -KPX odieresis x -26 -KPX odieresis y -28 -KPX ograve v -21 -KPX ograve w -21 -KPX ograve y -28 -KPX one comma -38 -KPX one eight -55 -KPX one five -45 -KPX one four -74 -KPX one nine -40 -KPX one one -48 -KPX one period -39 -KPX one seven -65 -KPX one six -62 -KPX one three -43 -KPX one two -32 -KPX one zero -48 -KPX p t -3 -KPX p y -12 -KPX period one -32 -KPX period quotedblright -7 -KPX period quoteright -29 -KPX q c -6 -KPX q u -3 -KPX quotedblbase A 25 -KPX quotedblbase AE 23 -KPX quotedblbase T -38 -KPX quotedblbase V -79 -KPX quotedblbase W -75 -KPX quotedblbase Y -48 -KPX quotedblleft A -75 -KPX quotedblleft AE -98 -KPX quotedblleft Aacute -75 -KPX quotedblleft Adieresis -75 -KPX quotedblleft Aring -75 -KPX quotedblleft T -11 -KPX quotedblleft V 3 -KPX quotedblleft W 3 -KPX quotedblleft Y 0 -KPX quotedblright A -71 -KPX quotedblright AE -94 -KPX quotedblright Aacute -71 -KPX quotedblright Adieresis -71 -KPX quotedblright Aring -71 -KPX quotedblright T -1 -KPX quotedblright V 6 -KPX quotedblright W 6 -KPX quotedblright Y 2 -KPX quoteleft A -82 -KPX quoteleft AE -105 -KPX quoteleft Aacute -82 -KPX quoteleft Adieresis -82 -KPX quoteleft Aring -82 -KPX quoteleft T -18 -KPX quoteleft V -3 -KPX quoteleft W -3 -KPX quoteleft Y -7 -KPX quoteright A -93 -KPX quoteright AE -115 -KPX quoteright Aacute -93 -KPX quoteright Adieresis -93 -KPX quoteright Aring -93 -KPX quoteright comma -55 -KPX quoteright d -50 -KPX quoteright o -49 -KPX quoteright period -57 -KPX quoteright r -24 -KPX quoteright s -25 -KPX quoteright t -19 -KPX quoteright v -23 -KPX quoteright w -23 -KPX quoteright y -17 -KPX r a -13 -KPX r aacute -13 -KPX r acircumflex -13 -KPX r adieresis -13 -KPX r ae -22 -KPX r agrave -13 -KPX r aring -13 -KPX r c -15 -KPX r ccedilla -8 -KPX r colon -30 -KPX r comma -68 -KPX r d -14 -KPX r e -20 -KPX r eacute -20 -KPX r ecircumflex -20 -KPX r egrave -20 -KPX r f 8 -KPX r g -4 -KPX r h -16 -KPX r hyphen -13 -KPX r i 17 -KPX r j 12 -KPX r k -12 -KPX r l -13 -KPX r m 10 -KPX r n 6 -KPX r o -15 -KPX r oacute -15 -KPX r ocircumflex -15 -KPX r odieresis -15 -KPX r oe -19 -KPX r ograve -15 -KPX r oslash -15 -KPX r p 16 -KPX r period -69 -KPX r q -19 -KPX r quoteright 0 -KPX r r 14 -KPX r s 1 -KPX r semicolon -30 -KPX r t 12 -KPX r u 10 -KPX r v 20 -KPX r w 20 -KPX r x 7 -KPX r y 20 -KPX r z 10 -KPX s quoteright -22 -KPX s t -6 -KPX seven colon -90 -KPX seven comma -79 -KPX seven four -79 -KPX seven one -43 -KPX seven period -81 -KPX seven seven -27 -KPX seven six -59 -KPX six four 2 -KPX six one -52 -KPX six seven -32 -KPX t S -11 -KPX t a 10 -KPX t aacute 10 -KPX t adieresis 10 -KPX t ae 2 -KPX t aring 10 -KPX t colon -22 -KPX t e -2 -KPX t eacute -2 -KPX t h -5 -KPX t o 1 -KPX t oacute 1 -KPX t odieresis 1 -KPX t quoteright -19 -KPX t semicolon -23 -KPX three four -15 -KPX three one -67 -KPX three seven -27 -KPX two four -8 -KPX two one -48 -KPX two seven -27 -KPX u quoteright -34 -KPX v a -20 -KPX v aacute -20 -KPX v acircumflex -20 -KPX v adieresis -20 -KPX v ae -28 -KPX v agrave -20 -KPX v aring -20 -KPX v atilde -20 -KPX v c -24 -KPX v colon -51 -KPX v comma -51 -KPX v e -28 -KPX v eacute -28 -KPX v ecircumflex -28 -KPX v egrave -28 -KPX v g -20 -KPX v hyphen -1 -KPX v l -24 -KPX v o -24 -KPX v oacute -24 -KPX v odieresis -24 -KPX v ograve -24 -KPX v oslash -24 -KPX v period -51 -KPX v s -18 -KPX v semicolon -51 -KPX w a -24 -KPX w aacute -24 -KPX w acircumflex -24 -KPX w adieresis -24 -KPX w ae -32 -KPX w agrave -24 -KPX w aring -24 -KPX w atilde -24 -KPX w c -30 -KPX w colon -56 -KPX w comma -53 -KPX w e -34 -KPX w eacute -34 -KPX w ecircumflex -34 -KPX w egrave -34 -KPX w g -26 -KPX w hyphen -7 -KPX w l -29 -KPX w o -30 -KPX w oacute -30 -KPX w odieresis -30 -KPX w ograve -30 -KPX w oslash -30 -KPX w period -53 -KPX w s -24 -KPX w semicolon -56 -KPX x a -1 -KPX x c -9 -KPX x e -13 -KPX x eacute -13 -KPX x o -10 -KPX x q -11 -KPX y a -11 -KPX y aacute -12 -KPX y acircumflex -12 -KPX y adieresis -12 -KPX y ae -19 -KPX y agrave -12 -KPX y aring -12 -KPX y atilde -12 -KPX y c -17 -KPX y colon -43 -KPX y comma -25 -KPX y e -22 -KPX y eacute -23 -KPX y ecircumflex -23 -KPX y egrave -23 -KPX y g -23 -KPX y hyphen 2 -KPX y l -16 -KPX y o -17 -KPX y oacute -19 -KPX y odieresis -19 -KPX y ograve -19 -KPX y oslash -19 -KPX y period -26 -KPX y s -13 -KPX y semicolon -44 -KPX zero four -1 -KPX zero one -50 -KPX zero seven -12 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/TimesO.afm b/misc/gs_afm/TimesO.afm deleted file mode 100644 index b643994a97..0000000000 --- a/misc/gs_afm/TimesO.afm +++ /dev/null @@ -1,1253 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 2/11/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusRomNo9L-ReguItal -FullName Nimbus Roman No9 L Regular Italic -FamilyName Nimbus Roman No9 L -Weight Regular -ItalicAngle -15.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -169 -217 1010 904 -CapHeight 653 -XHeight 432 -Descender -205 -Ascender 683 -StartCharMetrics 232 -C 32 ; WX 250 ; N space ; B 125 0 125 0 ; -C 33 ; WX 333 ; N exclam ; B 39 -11 302 667 ; -C 34 ; WX 420 ; N quotedbl ; B 144 421 432 666 ; -C 35 ; WX 500 ; N numbersign ; B 2 0 540 676 ; -C 36 ; WX 500 ; N dollar ; B 31 -89 497 731 ; -C 37 ; WX 833 ; N percent ; B 79 -13 790 676 ; -C 38 ; WX 778 ; N ampersand ; B 76 -18 723 666 ; -C 39 ; WX 333 ; N quoteright ; B 151 436 290 666 ; -C 40 ; WX 333 ; N parenleft ; B 42 -181 315 669 ; -C 41 ; WX 333 ; N parenright ; B 16 -180 289 669 ; -C 42 ; WX 500 ; N asterisk ; B 128 255 492 666 ; -C 43 ; WX 675 ; N plus ; B 86 0 590 506 ; -C 44 ; WX 250 ; N comma ; B -4 -129 135 101 ; -C 45 ; WX 333 ; N hyphen ; B 49 192 282 255 ; -C 46 ; WX 250 ; N period ; B 27 -11 138 100 ; -C 47 ; WX 278 ; N slash ; B -65 -18 386 666 ; -C 48 ; WX 500 ; N zero ; B 32 -7 497 676 ; -C 49 ; WX 500 ; N one ; B 49 0 409 676 ; -C 50 ; WX 500 ; N two ; B 12 0 452 676 ; -C 51 ; WX 500 ; N three ; B 15 -7 465 676 ; -C 52 ; WX 500 ; N four ; B 1 0 479 676 ; -C 53 ; WX 500 ; N five ; B 15 -7 491 666 ; -C 54 ; WX 500 ; N six ; B 30 -7 521 686 ; -C 55 ; WX 500 ; N seven ; B 75 -8 537 666 ; -C 56 ; WX 500 ; N eight ; B 30 -7 493 676 ; -C 57 ; WX 500 ; N nine ; B 23 -17 492 676 ; -C 58 ; WX 333 ; N colon ; B 50 -11 261 441 ; -C 59 ; WX 333 ; N semicolon ; B 27 -129 261 441 ; -C 60 ; WX 675 ; N less ; B 84 -10 592 516 ; -C 61 ; WX 675 ; N equal ; B 86 120 590 386 ; -C 62 ; WX 675 ; N greater ; B 84 -10 592 516 ; -C 63 ; WX 500 ; N question ; B 132 -12 472 664 ; -C 64 ; WX 920 ; N at ; B 118 -18 806 666 ; -C 65 ; WX 611 ; N A ; B -51 0 564 668 ; -C 66 ; WX 611 ; N B ; B -8 0 588 653 ; -C 67 ; WX 667 ; N C ; B 66 -18 689 666 ; -C 68 ; WX 722 ; N D ; B -8 0 700 653 ; -C 69 ; WX 611 ; N E ; B -1 0 634 653 ; -C 70 ; WX 611 ; N F ; B 8 0 645 653 ; -C 71 ; WX 722 ; N G ; B 52 -18 722 666 ; -C 72 ; WX 722 ; N H ; B -8 0 767 653 ; -C 73 ; WX 333 ; N I ; B -8 0 384 653 ; -C 74 ; WX 444 ; N J ; B -6 -18 491 653 ; -C 75 ; WX 667 ; N K ; B 7 0 722 653 ; -C 76 ; WX 556 ; N L ; B -8 0 559 653 ; -C 77 ; WX 833 ; N M ; B -18 0 873 653 ; -C 78 ; WX 667 ; N N ; B -20 -15 727 653 ; -C 79 ; WX 722 ; N O ; B 60 -18 706 666 ; -C 80 ; WX 611 ; N P ; B 0 0 605 653 ; -C 81 ; WX 722 ; N Q ; B 59 -182 699 666 ; -C 82 ; WX 611 ; N R ; B -13 0 588 653 ; -C 83 ; WX 500 ; N S ; B 17 -18 508 667 ; -C 84 ; WX 556 ; N T ; B 59 0 633 653 ; -C 85 ; WX 722 ; N U ; B 102 -18 765 653 ; -C 86 ; WX 611 ; N V ; B 76 -18 688 653 ; -C 87 ; WX 833 ; N W ; B 71 -18 906 653 ; -C 88 ; WX 611 ; N X ; B -29 0 655 653 ; -C 89 ; WX 556 ; N Y ; B 78 0 633 653 ; -C 90 ; WX 556 ; N Z ; B -6 0 606 653 ; -C 91 ; WX 389 ; N bracketleft ; B 21 -153 391 663 ; -C 92 ; WX 278 ; N backslash ; B -41 -18 319 666 ; -C 93 ; WX 389 ; N bracketright ; B 12 -153 382 663 ; -C 94 ; WX 422 ; N asciicircum ; B 0 301 422 666 ; -C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; -C 96 ; WX 333 ; N quoteleft ; B 171 436 310 666 ; -C 97 ; WX 500 ; N a ; B 17 -11 476 441 ; -C 98 ; WX 500 ; N b ; B 23 -11 473 683 ; -C 99 ; WX 444 ; N c ; B 30 -11 425 441 ; -C 100 ; WX 500 ; N d ; B 15 -13 527 683 ; -C 101 ; WX 444 ; N e ; B 31 -11 412 441 ; -C 102 ; WX 278 ; N f ; B -147 -207 424 678 ; -C 103 ; WX 500 ; N g ; B 8 -206 472 441 ; -C 104 ; WX 500 ; N h ; B 19 -9 478 683 ; -C 105 ; WX 278 ; N i ; B 49 -11 264 654 ; -C 106 ; WX 278 ; N j ; B -124 -207 276 654 ; -C 107 ; WX 444 ; N k ; B 14 -11 461 683 ; -C 108 ; WX 278 ; N l ; B 41 -11 279 683 ; -C 109 ; WX 722 ; N m ; B 12 -9 704 441 ; -C 110 ; WX 500 ; N n ; B 14 -9 474 441 ; -C 111 ; WX 500 ; N o ; B 27 -11 468 441 ; -C 112 ; WX 500 ; N p ; B -75 -205 469 441 ; -C 113 ; WX 500 ; N q ; B 25 -209 483 441 ; -C 114 ; WX 389 ; N r ; B 45 0 412 441 ; -C 115 ; WX 389 ; N s ; B 16 -13 366 442 ; -C 116 ; WX 278 ; N t ; B 37 -11 296 546 ; -C 117 ; WX 500 ; N u ; B 42 -11 475 441 ; -C 118 ; WX 444 ; N v ; B 21 -18 426 441 ; -C 119 ; WX 667 ; N w ; B 16 -18 648 441 ; -C 120 ; WX 444 ; N x ; B -27 -11 447 441 ; -C 121 ; WX 444 ; N y ; B -24 -206 426 441 ; -C 122 ; WX 389 ; N z ; B -2 -81 380 428 ; -C 123 ; WX 400 ; N braceleft ; B 51 -177 407 687 ; -C 124 ; WX 275 ; N bar ; B 105 -18 171 666 ; -C 125 ; WX 400 ; N braceright ; B -7 -177 349 687 ; -C 126 ; WX 541 ; N asciitilde ; B 40 186 502 320 ; -C 161 ; WX 389 ; N exclamdown ; B 59 -205 321 474 ; -C 162 ; WX 500 ; N cent ; B 77 -143 472 560 ; -C 163 ; WX 500 ; N sterling ; B 10 -6 517 670 ; -C 164 ; WX 167 ; N fraction ; B -169 -10 337 676 ; -C 165 ; WX 500 ; N yen ; B 27 0 603 653 ; -C 166 ; WX 500 ; N florin ; B 25 -182 507 682 ; -C 167 ; WX 500 ; N section ; B 53 -162 461 666 ; -C 168 ; WX 500 ; N currency ; B -22 53 522 597 ; -C 169 ; WX 214 ; N quotesingle ; B 132 421 241 666 ; -C 170 ; WX 556 ; N quotedblleft ; B 166 436 514 666 ; -C 171 ; WX 500 ; N guillemotleft ; B 53 37 445 403 ; -C 172 ; WX 333 ; N guilsinglleft ; B 51 37 281 403 ; -C 173 ; WX 333 ; N guilsinglright ; B 52 37 282 403 ; -C 174 ; WX 500 ; N fi ; B -141 -207 481 681 ; -C 175 ; WX 500 ; N fl ; B -141 -204 518 682 ; -C 177 ; WX 500 ; N endash ; B -6 197 505 243 ; -C 178 ; WX 500 ; N dagger ; B 101 -159 488 666 ; -C 179 ; WX 500 ; N daggerdbl ; B 22 -143 491 666 ; -C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; -C 182 ; WX 523 ; N paragraph ; B 55 -123 616 653 ; -C 183 ; WX 350 ; N bullet ; B 40 191 310 461 ; -C 184 ; WX 333 ; N quotesinglbase ; B 44 -129 183 101 ; -C 185 ; WX 556 ; N quotedblbase ; B 57 -129 405 101 ; -C 186 ; WX 556 ; N quotedblright ; B 151 436 499 666 ; -C 187 ; WX 500 ; N guillemotright ; B 55 37 447 403 ; -C 188 ; WX 889 ; N ellipsis ; B 57 -11 762 100 ; -C 189 ; WX 1000 ; N perthousand ; B 25 -19 1010 706 ; -C 191 ; WX 500 ; N questiondown ; B 28 -205 367 473 ; -C 193 ; WX 333 ; N grave ; B 121 492 311 664 ; -C 194 ; WX 333 ; N acute ; B 180 494 403 664 ; -C 195 ; WX 333 ; N circumflex ; B 91 492 385 661 ; -C 196 ; WX 333 ; N tilde ; B 100 517 427 624 ; -C 197 ; WX 333 ; N macron ; B 99 532 411 583 ; -C 198 ; WX 333 ; N breve ; B 117 492 418 650 ; -C 199 ; WX 333 ; N dotaccent ; B 207 508 305 606 ; -C 200 ; WX 333 ; N dieresis ; B 107 508 405 606 ; -C 202 ; WX 333 ; N ring ; B 155 508 355 707 ; -C 203 ; WX 333 ; N cedilla ; B -30 -217 182 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B 93 494 486 664 ; -C 206 ; WX 333 ; N ogonek ; B -20 -169 200 40 ; -C 207 ; WX 333 ; N caron ; B 121 492 426 661 ; -C 208 ; WX 889 ; N emdash ; B -6 197 894 243 ; -C 225 ; WX 889 ; N AE ; B -27 0 911 653 ; -C 227 ; WX 276 ; N ordfeminine ; B 42 406 352 676 ; -C 232 ; WX 556 ; N Lslash ; B -8 0 559 653 ; -C 233 ; WX 722 ; N Oslash ; B 60 -105 699 722 ; -C 234 ; WX 944 ; N OE ; B 49 -8 964 666 ; -C 235 ; WX 310 ; N ordmasculine ; B 67 406 362 676 ; -C 241 ; WX 667 ; N ae ; B 23 -11 640 441 ; -C 245 ; WX 278 ; N dotlessi ; B 49 -11 235 441 ; -C 248 ; WX 278 ; N lslash ; B 37 -11 307 683 ; -C 249 ; WX 500 ; N oslash ; B 28 -135 469 554 ; -C 250 ; WX 667 ; N oe ; B 20 -12 646 441 ; -C 251 ; WX 500 ; N germandbls ; B -168 -207 493 679 ; -C -1 ; WX 556 ; N Yacute ; B 78 0 633 876 ; -C -1 ; WX 722 ; N Ucircumflex ; B 102 -18 765 873 ; -C -1 ; WX 722 ; N Ugrave ; B 102 -18 765 876 ; -C -1 ; WX 556 ; N Zcaron ; B -6 0 606 873 ; -C -1 ; WX 556 ; N Ydieresis ; B 78 0 633 818 ; -C -1 ; WX 300 ; N threesuperior ; B 43 268 339 676 ; -C -1 ; WX 722 ; N Uacute ; B 102 -18 765 876 ; -C -1 ; WX 300 ; N twosuperior ; B 33 271 324 676 ; -C -1 ; WX 722 ; N Udieresis ; B 102 -18 765 818 ; -C -1 ; WX 250 ; N middot ; B 70 199 181 310 ; -C -1 ; WX 300 ; N onesuperior ; B 43 271 284 676 ; -C -1 ; WX 500 ; N aacute ; B 17 -11 487 664 ; -C -1 ; WX 500 ; N agrave ; B 17 -11 476 664 ; -C -1 ; WX 500 ; N acircumflex ; B 17 -11 476 661 ; -C -1 ; WX 500 ; N Scaron ; B 17 -18 520 873 ; -C -1 ; WX 722 ; N Otilde ; B 60 -18 706 836 ; -C -1 ; WX 333 ; N sfthyphen ; B 49 192 282 255 ; -C -1 ; WX 500 ; N atilde ; B 17 -11 511 624 ; -C -1 ; WX 500 ; N aring ; B 17 -11 476 707 ; -C -1 ; WX 500 ; N adieresis ; B 17 -11 489 606 ; -C -1 ; WX 722 ; N Ograve ; B 60 -18 706 876 ; -C -1 ; WX 722 ; N Ocircumflex ; B 60 -18 706 873 ; -C -1 ; WX 722 ; N Odieresis ; B 60 -18 706 818 ; -C -1 ; WX 667 ; N Ntilde ; B -20 -15 727 836 ; -C -1 ; WX 444 ; N edieresis ; B 31 -11 451 606 ; -C -1 ; WX 444 ; N eacute ; B 31 -11 459 664 ; -C -1 ; WX 444 ; N egrave ; B 31 -11 412 664 ; -C -1 ; WX 333 ; N Icircumflex ; B -8 0 425 873 ; -C -1 ; WX 444 ; N ecircumflex ; B 31 -11 441 661 ; -C -1 ; WX 333 ; N Igrave ; B -8 0 384 876 ; -C -1 ; WX 333 ; N Iacute ; B -8 0 403 876 ; -C -1 ; WX 333 ; N Idieresis ; B -8 0 435 818 ; -C -1 ; WX 400 ; N degree ; B 101 390 387 676 ; -C -1 ; WX 611 ; N Ecircumflex ; B -1 0 634 873 ; -C -1 ; WX 675 ; N minus ; B 86 220 590 286 ; -C -1 ; WX 675 ; N multiply ; B 93 8 582 497 ; -C -1 ; WX 675 ; N divide ; B 86 -11 590 517 ; -C -1 ; WX 611 ; N Egrave ; B -1 0 634 876 ; -C -1 ; WX 980 ; N trademark ; B 30 247 957 653 ; -C -1 ; WX 722 ; N Oacute ; B 60 -18 706 876 ; -C -1 ; WX 500 ; N thorn ; B -75 -205 469 683 ; -C -1 ; WX 500 ; N eth ; B 27 -11 482 683 ; -C -1 ; WX 611 ; N Eacute ; B -1 0 634 876 ; -C -1 ; WX 444 ; N ccedilla ; B 26 -217 425 441 ; -C -1 ; WX 278 ; N idieresis ; B 49 -11 353 606 ; -C -1 ; WX 278 ; N iacute ; B 49 -11 356 664 ; -C -1 ; WX 278 ; N igrave ; B 49 -11 284 664 ; -C -1 ; WX 675 ; N plusminus ; B 86 0 590 568 ; -C -1 ; WX 750 ; N onehalf ; B 34 -10 749 676 ; -C -1 ; WX 750 ; N onequarter ; B 33 -10 736 676 ; -C -1 ; WX 750 ; N threequarters ; B 23 -10 736 676 ; -C -1 ; WX 278 ; N icircumflex ; B 34 -11 328 661 ; -C -1 ; WX 611 ; N Edieresis ; B -1 0 634 818 ; -C -1 ; WX 500 ; N ntilde ; B 14 -9 476 624 ; -C -1 ; WX 611 ; N Aring ; B -51 0 564 904 ; -C -1 ; WX 500 ; N odieresis ; B 27 -11 489 606 ; -C -1 ; WX 500 ; N oacute ; B 27 -11 487 664 ; -C -1 ; WX 500 ; N ograve ; B 27 -11 468 664 ; -C -1 ; WX 500 ; N ocircumflex ; B 27 -11 468 661 ; -C -1 ; WX 500 ; N otilde ; B 27 -11 496 624 ; -C -1 ; WX 389 ; N scaron ; B 16 -13 454 661 ; -C -1 ; WX 500 ; N udieresis ; B 42 -11 479 606 ; -C -1 ; WX 500 ; N uacute ; B 42 -11 477 664 ; -C -1 ; WX 500 ; N ugrave ; B 42 -11 475 664 ; -C -1 ; WX 500 ; N ucircumflex ; B 42 -11 475 661 ; -C -1 ; WX 444 ; N yacute ; B -24 -206 459 664 ; -C -1 ; WX 389 ; N zcaron ; B -2 -81 434 661 ; -C -1 ; WX 444 ; N ydieresis ; B -24 -206 441 606 ; -C -1 ; WX 760 ; N copyright ; B 41 -18 719 666 ; -C -1 ; WX 760 ; N registered ; B 41 -18 719 666 ; -C -1 ; WX 611 ; N Atilde ; B -51 0 566 836 ; -C -1 ; WX 250 ; N nbspace ; B 125 0 125 0 ; -C -1 ; WX 667 ; N Ccedilla ; B 66 -217 689 666 ; -C -1 ; WX 611 ; N Acircumflex ; B -51 0 564 873 ; -C -1 ; WX 611 ; N Agrave ; B -51 0 564 876 ; -C -1 ; WX 675 ; N logicalnot ; B 86 108 590 386 ; -C -1 ; WX 611 ; N Aacute ; B -51 0 564 876 ; -C -1 ; WX 722 ; N Eth ; B -8 0 700 653 ; -C -1 ; WX 275 ; N brokenbar ; B 105 -18 171 666 ; -C -1 ; WX 611 ; N Thorn ; B 0 0 569 653 ; -C -1 ; WX 611 ; N Adieresis ; B -51 0 564 818 ; -C -1 ; WX 500 ; N mu ; B -30 -209 497 428 ; -C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; -EndCharMetrics -StartKernData -StartKernPairs 994 -KPX A C -50 -KPX A Ccedilla -49 -KPX A G -44 -KPX A O -45 -KPX A Odieresis -45 -KPX A Q -43 -KPX A T -14 -KPX A U -56 -KPX A Uacute -56 -KPX A Ucircumflex -56 -KPX A Udieresis -56 -KPX A Ugrave -56 -KPX A V -81 -KPX A W -74 -KPX A Y -21 -KPX A a -3 -KPX A b 0 -KPX A c -18 -KPX A ccedilla -28 -KPX A comma 8 -KPX A d -3 -KPX A e -17 -KPX A g -25 -KPX A guillemotleft -44 -KPX A guilsinglleft -43 -KPX A hyphen -12 -KPX A o -17 -KPX A period 9 -KPX A q -12 -KPX A quotedblright -92 -KPX A quoteright -92 -KPX A t -6 -KPX A u -9 -KPX A v -50 -KPX A w -43 -KPX A y -57 -KPX Aacute C -50 -KPX Aacute G -44 -KPX Aacute O -45 -KPX Aacute Q -43 -KPX Aacute T -14 -KPX Aacute U -56 -KPX Aacute V -81 -KPX Aacute W -74 -KPX Aacute Y -21 -KPX Aacute a -3 -KPX Aacute b 0 -KPX Aacute c -18 -KPX Aacute comma 8 -KPX Aacute d -3 -KPX Aacute e -17 -KPX Aacute g -25 -KPX Aacute guillemotleft -44 -KPX Aacute guilsinglleft -43 -KPX Aacute hyphen -12 -KPX Aacute o -17 -KPX Aacute period 9 -KPX Aacute q -12 -KPX Aacute quoteright -92 -KPX Aacute t -6 -KPX Aacute u -9 -KPX Aacute v -50 -KPX Aacute w -43 -KPX Aacute y -57 -KPX Acircumflex C -50 -KPX Acircumflex G -44 -KPX Acircumflex O -45 -KPX Acircumflex Q -43 -KPX Acircumflex T -14 -KPX Acircumflex U -56 -KPX Acircumflex V -81 -KPX Acircumflex W -74 -KPX Acircumflex Y -21 -KPX Acircumflex comma 8 -KPX Acircumflex period 9 -KPX Adieresis C -50 -KPX Adieresis G -44 -KPX Adieresis O -45 -KPX Adieresis Q -43 -KPX Adieresis T -14 -KPX Adieresis U -56 -KPX Adieresis V -81 -KPX Adieresis W -74 -KPX Adieresis Y -21 -KPX Adieresis a -3 -KPX Adieresis b 0 -KPX Adieresis c -18 -KPX Adieresis comma 8 -KPX Adieresis d -3 -KPX Adieresis g -25 -KPX Adieresis guillemotleft -44 -KPX Adieresis guilsinglleft -43 -KPX Adieresis hyphen -12 -KPX Adieresis o -17 -KPX Adieresis period 9 -KPX Adieresis q -12 -KPX Adieresis quotedblright -92 -KPX Adieresis quoteright -92 -KPX Adieresis t -6 -KPX Adieresis u -9 -KPX Adieresis v -50 -KPX Adieresis w -43 -KPX Adieresis y -57 -KPX Agrave C -50 -KPX Agrave G -44 -KPX Agrave O -45 -KPX Agrave Q -43 -KPX Agrave T -14 -KPX Agrave U -56 -KPX Agrave V -81 -KPX Agrave W -74 -KPX Agrave Y -21 -KPX Agrave comma 8 -KPX Agrave period 9 -KPX Aring C -50 -KPX Aring G -44 -KPX Aring O -45 -KPX Aring Q -43 -KPX Aring T -14 -KPX Aring U -56 -KPX Aring V -81 -KPX Aring W -74 -KPX Aring Y -21 -KPX Aring a -3 -KPX Aring b 0 -KPX Aring c -18 -KPX Aring comma 8 -KPX Aring d -3 -KPX Aring e -17 -KPX Aring g -25 -KPX Aring guillemotleft -44 -KPX Aring guilsinglleft -43 -KPX Aring hyphen -12 -KPX Aring o -17 -KPX Aring period 9 -KPX Aring q -12 -KPX Aring quotedblright -92 -KPX Aring quoteright -92 -KPX Aring t -6 -KPX Aring u -9 -KPX Aring v -50 -KPX Aring w -43 -KPX Aring y -57 -KPX Atilde C -50 -KPX Atilde G -44 -KPX Atilde O -45 -KPX Atilde Q -43 -KPX Atilde T -14 -KPX Atilde U -56 -KPX Atilde V -81 -KPX Atilde W -74 -KPX Atilde Y -21 -KPX Atilde comma 8 -KPX Atilde period 8 -KPX B A -22 -KPX B AE -34 -KPX B Aacute -22 -KPX B Acircumflex -22 -KPX B Adieresis -22 -KPX B Aring -22 -KPX B Atilde -22 -KPX B O -13 -KPX B OE -5 -KPX B Oacute -13 -KPX B Ocircumflex -13 -KPX B Odieresis -13 -KPX B Ograve -13 -KPX B Oslash -13 -KPX B V -32 -KPX B W -29 -KPX B Y -39 -KPX C A -13 -KPX C AE -28 -KPX C Aacute -13 -KPX C Adieresis -13 -KPX C Aring -13 -KPX C H -13 -KPX C K -21 -KPX C O -19 -KPX C Oacute -19 -KPX C Odieresis -19 -KPX Ccedilla A -16 -KPX D A -35 -KPX D Aacute -35 -KPX D Acircumflex -35 -KPX D Adieresis -35 -KPX D Agrave -35 -KPX D Aring -35 -KPX D Atilde -35 -KPX D J -32 -KPX D T -9 -KPX D V -41 -KPX D W -35 -KPX D X -39 -KPX D Y -49 -KPX F A -72 -KPX F Aacute -72 -KPX F Acircumflex -72 -KPX F Adieresis -72 -KPX F Agrave -72 -KPX F Aring -72 -KPX F Atilde -72 -KPX F J -60 -KPX F O -40 -KPX F Odieresis -40 -KPX F a -76 -KPX F aacute -77 -KPX F adieresis -52 -KPX F ae -81 -KPX F aring -70 -KPX F comma -95 -KPX F e -82 -KPX F eacute -83 -KPX F hyphen -45 -KPX F i -36 -KPX F j -41 -KPX F o -79 -KPX F oacute -80 -KPX F odieresis -52 -KPX F oe -74 -KPX F oslash -80 -KPX F period -98 -KPX F r -52 -KPX F u -50 -KPX G A -17 -KPX G AE -29 -KPX G Aacute -17 -KPX G Acircumflex -17 -KPX G Adieresis -17 -KPX G Agrave -17 -KPX G Aring -17 -KPX G Atilde -17 -KPX G T -13 -KPX G V -5 -KPX G W -2 -KPX G Y -12 -KPX J A -40 -KPX J AE -52 -KPX J Adieresis -40 -KPX J Aring -40 -KPX K C -55 -KPX K G -53 -KPX K O -46 -KPX K OE -45 -KPX K Oacute -46 -KPX K Odieresis -46 -KPX K S 6 -KPX K T 21 -KPX K a -4 -KPX K adieresis -4 -KPX K ae -5 -KPX K aring -4 -KPX K e -18 -KPX K hyphen -57 -KPX K o -18 -KPX K oacute -18 -KPX K odieresis -18 -KPX K u -10 -KPX K udieresis -10 -KPX K y -87 -KPX L A 44 -KPX L AE 32 -KPX L Aacute 44 -KPX L Adieresis 44 -KPX L Aring 44 -KPX L C 6 -KPX L Ccedilla 4 -KPX L G 11 -KPX L O 10 -KPX L Oacute 10 -KPX L Ocircumflex 10 -KPX L Odieresis 10 -KPX L Ograve 10 -KPX L Otilde 10 -KPX L S 20 -KPX L T -13 -KPX L U -8 -KPX L Udieresis -8 -KPX L V -55 -KPX L W -48 -KPX L Y -20 -KPX L hyphen 47 -KPX L quotedblright -92 -KPX L quoteright -92 -KPX L u 12 -KPX L udieresis 10 -KPX L y -29 -KPX N A -20 -KPX N AE -32 -KPX N Aacute -20 -KPX N Adieresis -20 -KPX N Aring -20 -KPX N C -20 -KPX N Ccedilla -19 -KPX N G -14 -KPX N O -20 -KPX N Oacute -20 -KPX N Odieresis -20 -KPX N a -22 -KPX N aacute -23 -KPX N adieresis -23 -KPX N ae -26 -KPX N aring -23 -KPX N comma -13 -KPX N e -28 -KPX N eacute -30 -KPX N o -25 -KPX N oacute -26 -KPX N odieresis -26 -KPX N oslash -27 -KPX N period -16 -KPX N u -24 -KPX N udieresis -25 -KPX O A -37 -KPX O AE -68 -KPX O Aacute -37 -KPX O Adieresis -37 -KPX O Aring -37 -KPX O T -3 -KPX O V -45 -KPX O W -39 -KPX O X -40 -KPX O Y -50 -KPX Oacute A -37 -KPX Oacute T -3 -KPX Oacute V -45 -KPX Oacute W -39 -KPX Oacute Y -50 -KPX Ocircumflex T -3 -KPX Ocircumflex V -45 -KPX Ocircumflex Y -50 -KPX Odieresis A -37 -KPX Odieresis T -3 -KPX Odieresis V -45 -KPX Odieresis W -39 -KPX Odieresis X -40 -KPX Odieresis Y -50 -KPX Ograve T -3 -KPX Ograve V -45 -KPX Ograve Y -50 -KPX Oslash A -37 -KPX Otilde T -3 -KPX Otilde V -45 -KPX Otilde Y -50 -KPX P A -78 -KPX P AE -115 -KPX P Aacute -78 -KPX P Adieresis -78 -KPX P Aring -78 -KPX P J -89 -KPX P a -73 -KPX P aacute -73 -KPX P adieresis -64 -KPX P ae -79 -KPX P aring -73 -KPX P comma -117 -KPX P e -78 -KPX P eacute -78 -KPX P hyphen -64 -KPX P o -72 -KPX P oacute -72 -KPX P odieresis -64 -KPX P oe -66 -KPX P oslash -73 -KPX P period -120 -KPX R C -25 -KPX R Ccedilla -24 -KPX R G -19 -KPX R O -26 -KPX R OE -17 -KPX R Oacute -26 -KPX R Odieresis -26 -KPX R T 0 -KPX R U -35 -KPX R Udieresis -35 -KPX R V -31 -KPX R W -28 -KPX R Y -19 -KPX R a -2 -KPX R aacute -2 -KPX R adieresis -2 -KPX R ae -3 -KPX R aring -2 -KPX R e -15 -KPX R eacute -15 -KPX R hyphen -29 -KPX R o -15 -KPX R oacute -15 -KPX R odieresis -15 -KPX R oe -15 -KPX R u -7 -KPX R uacute -7 -KPX R udieresis -7 -KPX R y 3 -KPX S A -2 -KPX S AE -14 -KPX S Aacute -2 -KPX S Adieresis -2 -KPX S Aring -2 -KPX S T 1 -KPX S V 5 -KPX S W 8 -KPX S Y -1 -KPX S t -13 -KPX T A -33 -KPX T AE -45 -KPX T Aacute -33 -KPX T Acircumflex -33 -KPX T Adieresis -33 -KPX T Agrave -33 -KPX T Aring -33 -KPX T Atilde -33 -KPX T C -14 -KPX T G -7 -KPX T J -39 -KPX T O -21 -KPX T OE -8 -KPX T Oacute -21 -KPX T Ocircumflex -21 -KPX T Odieresis -21 -KPX T Ograve -21 -KPX T Oslash -21 -KPX T Otilde -21 -KPX T S -2 -KPX T V 41 -KPX T W 43 -KPX T Y 33 -KPX T a -80 -KPX T ae -81 -KPX T c -87 -KPX T colon -84 -KPX T comma -70 -KPX T e -90 -KPX T g -102 -KPX T guillemotleft -103 -KPX T guilsinglleft -102 -KPX T hyphen -68 -KPX T i -16 -KPX T j -20 -KPX T o -87 -KPX T oslash -89 -KPX T period -71 -KPX T r -87 -KPX T s -74 -KPX T semicolon -92 -KPX T u -86 -KPX T v -73 -KPX T w -69 -KPX T y -69 -KPX U A -49 -KPX U AE -69 -KPX U Aacute -49 -KPX U Acircumflex -49 -KPX U Adieresis -49 -KPX U Aring -49 -KPX U Atilde -49 -KPX U comma -35 -KPX U m -28 -KPX U n -29 -KPX U p -32 -KPX U period -39 -KPX U r -41 -KPX Uacute A -49 -KPX Uacute comma -35 -KPX Uacute m -28 -KPX Uacute n -29 -KPX Uacute p -32 -KPX Uacute period -39 -KPX Uacute r -41 -KPX Ucircumflex A -49 -KPX Udieresis A -49 -KPX Udieresis b 1 -KPX Udieresis comma -35 -KPX Udieresis m -28 -KPX Udieresis n -29 -KPX Udieresis p -32 -KPX Udieresis period -39 -KPX Udieresis r -41 -KPX Ugrave A -49 -KPX V A -65 -KPX V AE -101 -KPX V Aacute -65 -KPX V Acircumflex -65 -KPX V Adieresis -65 -KPX V Agrave -65 -KPX V Aring -65 -KPX V Atilde -65 -KPX V C -47 -KPX V G -41 -KPX V O -47 -KPX V Oacute -47 -KPX V Ocircumflex -47 -KPX V Odieresis -47 -KPX V Ograve -47 -KPX V Oslash -47 -KPX V Otilde -47 -KPX V S -15 -KPX V T 32 -KPX V a -66 -KPX V ae -71 -KPX V colon -81 -KPX V comma -76 -KPX V e -73 -KPX V g -83 -KPX V guillemotleft -81 -KPX V guilsinglleft -80 -KPX V hyphen -44 -KPX V i -16 -KPX V o -69 -KPX V oslash -71 -KPX V period -80 -KPX V r -44 -KPX V semicolon -78 -KPX V u -39 -KPX V y -12 -KPX W A -56 -KPX W AE -85 -KPX W Aacute -56 -KPX W Acircumflex -56 -KPX W Adieresis -56 -KPX W Agrave -56 -KPX W Aring -56 -KPX W Atilde -56 -KPX W C -38 -KPX W G -32 -KPX W O -39 -KPX W Oacute -39 -KPX W Ocircumflex -39 -KPX W Odieresis -39 -KPX W Ograve -39 -KPX W Oslash -39 -KPX W Otilde -39 -KPX W S -17 -KPX W T 30 -KPX W a -53 -KPX W ae -58 -KPX W colon -76 -KPX W comma -58 -KPX W e -59 -KPX W g -74 -KPX W guillemotleft -68 -KPX W guilsinglleft -67 -KPX W hyphen -31 -KPX W i -18 -KPX W o -56 -KPX W oslash -58 -KPX W period -61 -KPX W r -39 -KPX W semicolon -73 -KPX W u -34 -KPX W y -7 -KPX X C -48 -KPX X O -44 -KPX X Odieresis -44 -KPX X Q -42 -KPX X a -2 -KPX X e -15 -KPX X hyphen -41 -KPX X o -15 -KPX X u -7 -KPX X y -62 -KPX Y A -27 -KPX Y AE -39 -KPX Y Aacute -27 -KPX Y Acircumflex -27 -KPX Y Adieresis -27 -KPX Y Agrave -27 -KPX Y Aring -27 -KPX Y Atilde -27 -KPX Y C -51 -KPX Y G -45 -KPX Y O -52 -KPX Y Oacute -52 -KPX Y Ocircumflex -52 -KPX Y Odieresis -52 -KPX Y Ograve -52 -KPX Y Oslash -51 -KPX Y Otilde -52 -KPX Y S -15 -KPX Y T 32 -KPX Y a -72 -KPX Y ae -75 -KPX Y colon -78 -KPX Y comma -64 -KPX Y e -78 -KPX Y g -94 -KPX Y guillemotleft -93 -KPX Y guilsinglleft -92 -KPX Y hyphen -60 -KPX Y i -16 -KPX Y o -75 -KPX Y oslash -77 -KPX Y p -52 -KPX Y period -65 -KPX Y semicolon -86 -KPX Y u -58 -KPX Y v -35 -KPX Z v -12 -KPX Z y -30 -KPX a j -22 -KPX a quoteright -29 -KPX a v 0 -KPX a w 4 -KPX a y 4 -KPX aacute v 0 -KPX aacute w 4 -KPX aacute y 4 -KPX adieresis v 0 -KPX adieresis w 4 -KPX adieresis y 4 -KPX ae v 2 -KPX ae w 5 -KPX ae y 5 -KPX agrave v 0 -KPX agrave w 4 -KPX agrave y 4 -KPX aring v 0 -KPX aring w 4 -KPX aring y 4 -KPX b v -10 -KPX b w -7 -KPX b y -7 -KPX c h -30 -KPX c k -29 -KPX comma one -42 -KPX comma quotedblright -40 -KPX comma quoteright -40 -KPX e quoteright -21 -KPX e t -16 -KPX e v 0 -KPX e w 2 -KPX e x -10 -KPX e y 2 -KPX eacute v 0 -KPX eacute w 2 -KPX eacute y 2 -KPX ecircumflex v 0 -KPX ecircumflex w 2 -KPX ecircumflex y 2 -KPX eight four 13 -KPX eight one -58 -KPX eight seven -1 -KPX f a -26 -KPX f aacute -27 -KPX f adieresis -2 -KPX f ae -30 -KPX f aring -17 -KPX f e -32 -KPX f eacute -33 -KPX f f 30 -KPX f i 17 -KPX f j 13 -KPX f l 42 -KPX f o -29 -KPX f oacute -30 -KPX f odieresis -2 -KPX f oe -25 -KPX f oslash -31 -KPX f quoteright 18 -KPX f s -20 -KPX f t 18 -KPX five four -5 -KPX five one -71 -KPX five seven -28 -KPX four four 12 -KPX four one -71 -KPX four seven -27 -KPX g a -41 -KPX g adieresis -42 -KPX g ae -46 -KPX g aring -42 -KPX g e -45 -KPX g eacute -45 -KPX g l -46 -KPX g oacute -41 -KPX g odieresis -41 -KPX g r -21 -KPX guillemotright A -24 -KPX guillemotright AE -49 -KPX guillemotright Aacute -24 -KPX guillemotright Adieresis -24 -KPX guillemotright Aring -24 -KPX guillemotright T -76 -KPX guillemotright V -75 -KPX guillemotright W -66 -KPX guillemotright Y -80 -KPX guilsinglright A -23 -KPX guilsinglright AE -48 -KPX guilsinglright Aacute -23 -KPX guilsinglright Adieresis -23 -KPX guilsinglright Aring -23 -KPX guilsinglright T -75 -KPX guilsinglright V -74 -KPX guilsinglright W -65 -KPX guilsinglright Y -79 -KPX h quoteright -31 -KPX h y -5 -KPX hyphen A 3 -KPX hyphen AE -22 -KPX hyphen Aacute 3 -KPX hyphen Adieresis 3 -KPX hyphen Aring 3 -KPX hyphen T -45 -KPX hyphen V -43 -KPX hyphen W -34 -KPX hyphen Y -53 -KPX i T -10 -KPX i j -31 -KPX k a 12 -KPX k aacute 12 -KPX k adieresis 12 -KPX k ae 9 -KPX k aring 12 -KPX k comma 27 -KPX k e 5 -KPX k eacute 5 -KPX k g -27 -KPX k hyphen -27 -KPX k o 6 -KPX k oacute 6 -KPX k odieresis 6 -KPX k period 26 -KPX k s 7 -KPX k u 8 -KPX k udieresis 8 -KPX l v -13 -KPX l y -9 -KPX m p -4 -KPX m v -6 -KPX m w -4 -KPX m y -3 -KPX n T -40 -KPX n p -7 -KPX n quoteright -34 -KPX n v -10 -KPX n w -7 -KPX n y -7 -KPX nine four 1 -KPX nine one -65 -KPX nine seven -5 -KPX o T -62 -KPX o quoteright -24 -KPX o t -14 -KPX o v -18 -KPX o w -15 -KPX o x -32 -KPX o y -15 -KPX oacute v -18 -KPX oacute w -15 -KPX oacute y -15 -KPX ocircumflex t -16 -KPX odieresis t -16 -KPX odieresis v -18 -KPX odieresis w -15 -KPX odieresis x -32 -KPX odieresis y -15 -KPX ograve v -18 -KPX ograve w -15 -KPX ograve y -15 -KPX one comma -52 -KPX one eight -57 -KPX one five -55 -KPX one four -69 -KPX one nine -61 -KPX one one -69 -KPX one period -56 -KPX one seven -61 -KPX one six -50 -KPX one three -55 -KPX one two -50 -KPX one zero -42 -KPX p t -14 -KPX p y -7 -KPX period one -43 -KPX period quotedblright -39 -KPX period quoteright -39 -KPX q c -13 -KPX q u -11 -KPX quotedblbase A 3 -KPX quotedblbase AE -11 -KPX quotedblbase T -62 -KPX quotedblbase V -96 -KPX quotedblbase W -84 -KPX quotedblbase Y -68 -KPX quotedblleft A -87 -KPX quotedblleft AE -141 -KPX quotedblleft Aacute -87 -KPX quotedblleft Adieresis -87 -KPX quotedblleft Aring -87 -KPX quotedblleft T -18 -KPX quotedblleft V -17 -KPX quotedblleft W -15 -KPX quotedblleft Y -25 -KPX quotedblright A -94 -KPX quotedblright AE -148 -KPX quotedblright Aacute -94 -KPX quotedblright Adieresis -94 -KPX quotedblright Aring -94 -KPX quotedblright T -21 -KPX quotedblright V -21 -KPX quotedblright W -18 -KPX quotedblright Y -30 -KPX quoteleft A -78 -KPX quoteleft AE -132 -KPX quoteleft Aacute -78 -KPX quoteleft Adieresis -78 -KPX quoteleft Aring -78 -KPX quoteleft T -9 -KPX quoteleft V -8 -KPX quoteleft W -5 -KPX quoteleft Y -15 -KPX quoteright A -87 -KPX quoteright AE -141 -KPX quoteright Aacute -87 -KPX quoteright Adieresis -87 -KPX quoteright Aring -87 -KPX quoteright comma -74 -KPX quoteright d -80 -KPX quoteright o -78 -KPX quoteright period -78 -KPX quoteright r -57 -KPX quoteright s -63 -KPX quoteright t -49 -KPX quoteright v -31 -KPX quoteright w -26 -KPX quoteright y -25 -KPX r a -27 -KPX r aacute -27 -KPX r acircumflex -27 -KPX r adieresis -27 -KPX r ae -34 -KPX r agrave -27 -KPX r aring -27 -KPX r c -24 -KPX r ccedilla -15 -KPX r colon -28 -KPX r comma -68 -KPX r d -30 -KPX r e -32 -KPX r eacute -32 -KPX r ecircumflex -32 -KPX r egrave -32 -KPX r f 23 -KPX r g -19 -KPX r h -16 -KPX r hyphen -51 -KPX r i 8 -KPX r j 3 -KPX r k -15 -KPX r l -21 -KPX r m 17 -KPX r n 16 -KPX r o -26 -KPX r oacute -26 -KPX r ocircumflex -26 -KPX r odieresis -26 -KPX r oe -21 -KPX r ograve -26 -KPX r oslash -27 -KPX r p 13 -KPX r period -72 -KPX r q -29 -KPX r quoteright -4 -KPX r r 4 -KPX r s -16 -KPX r semicolon -28 -KPX r t 12 -KPX r u 11 -KPX r v 29 -KPX r w 32 -KPX r x 8 -KPX r y 32 -KPX r z 0 -KPX s quoteright -21 -KPX s t -12 -KPX seven colon -88 -KPX seven comma -79 -KPX seven four -64 -KPX seven one -47 -KPX seven period -82 -KPX seven seven -11 -KPX seven six -37 -KPX six four 17 -KPX six one -70 -KPX six seven -37 -KPX t S -9 -KPX t a -6 -KPX t aacute -6 -KPX t adieresis -6 -KPX t ae -10 -KPX t aring -6 -KPX t colon -29 -KPX t e -13 -KPX t eacute -13 -KPX t h -12 -KPX t o -11 -KPX t oacute -11 -KPX t odieresis -11 -KPX t quoteright -21 -KPX t semicolon -26 -KPX three four -9 -KPX three one -77 -KPX three seven -15 -KPX two four -12 -KPX two one -48 -KPX two seven -22 -KPX u quoteright -32 -KPX v a -24 -KPX v aacute -26 -KPX v acircumflex -26 -KPX v adieresis -26 -KPX v ae -29 -KPX v agrave -26 -KPX v aring -26 -KPX v atilde -26 -KPX v c -26 -KPX v colon -48 -KPX v comma -47 -KPX v e -30 -KPX v eacute -32 -KPX v ecircumflex -32 -KPX v egrave -32 -KPX v g -36 -KPX v hyphen 0 -KPX v l -29 -KPX v o -26 -KPX v oacute -28 -KPX v odieresis -28 -KPX v ograve -28 -KPX v oslash -29 -KPX v period -51 -KPX v s -30 -KPX v semicolon -48 -KPX w a -26 -KPX w aacute -27 -KPX w acircumflex -27 -KPX w adieresis -27 -KPX w ae -31 -KPX w agrave -27 -KPX w aring -27 -KPX w atilde -27 -KPX w c -28 -KPX w colon -49 -KPX w comma -46 -KPX w e -32 -KPX w eacute -33 -KPX w ecircumflex -33 -KPX w egrave -33 -KPX w g -38 -KPX w hyphen -3 -KPX w l -30 -KPX w o -28 -KPX w oacute -30 -KPX w odieresis -30 -KPX w ograve -30 -KPX w oslash -30 -KPX w period -51 -KPX w s -32 -KPX w semicolon -49 -KPX x a 5 -KPX x c -2 -KPX x e -2 -KPX x eacute -2 -KPX x o 0 -KPX x q 1 -KPX y a -14 -KPX y aacute -16 -KPX y acircumflex -16 -KPX y adieresis -16 -KPX y ae -19 -KPX y agrave -16 -KPX y aring -16 -KPX y atilde -16 -KPX y c -16 -KPX y colon -48 -KPX y comma -23 -KPX y e -20 -KPX y eacute -22 -KPX y ecircumflex -22 -KPX y egrave -22 -KPX y g -36 -KPX y hyphen 5 -KPX y l -20 -KPX y o -16 -KPX y oacute -18 -KPX y odieresis -18 -KPX y ograve -18 -KPX y oslash -19 -KPX y period -27 -KPX y s -20 -KPX y semicolon -46 -KPX zero four 14 -KPX zero one -51 -KPX zero seven -3 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/misc/gs_afm/TimesRo.afm b/misc/gs_afm/TimesRo.afm deleted file mode 100644 index a272b449b5..0000000000 --- a/misc/gs_afm/TimesRo.afm +++ /dev/null @@ -1,1257 +0,0 @@ -StartFontMetrics 3.0 -Comment Copyright URW Software, Copyright 1994 by URW -Comment Creation Date: 11/17/1994 -Comment See the file PUBLIC (Aladdin Free Public License) for license conditions. -FontName NimbusRomNo9L-Regu -FullName Nimbus Roman No9 L Regular -FamilyName Nimbus Roman No9 L -Weight Regular -ItalicAngle 0.0 -IsFixedPitch false -UnderlinePosition -100 -UnderlineThickness 50 -Version 001.005 -Notice URW Software, Copyright 1994 by URW -EncodingScheme AdobeStandardEncoding -FontBBox -168 -218 1000 915 -CapHeight 662 -XHeight 450 -Descender -217 -Ascender 683 -StartCharMetrics 232 -C 32 ; WX 250 ; N space ; B 125 0 125 0 ; -C 33 ; WX 333 ; N exclam ; B 130 -9 236 676 ; -C 34 ; WX 408 ; N quotedbl ; B 77 431 331 676 ; -C 35 ; WX 500 ; N numbersign ; B 5 0 496 662 ; -C 36 ; WX 500 ; N dollar ; B 44 -87 457 727 ; -C 37 ; WX 833 ; N percent ; B 61 -13 772 676 ; -C 38 ; WX 778 ; N ampersand ; B 42 -13 750 676 ; -C 39 ; WX 333 ; N quoteright ; B 79 433 218 676 ; -C 40 ; WX 333 ; N parenleft ; B 48 -177 304 676 ; -C 41 ; WX 333 ; N parenright ; B 29 -177 285 676 ; -C 42 ; WX 500 ; N asterisk ; B 69 265 432 676 ; -C 43 ; WX 564 ; N plus ; B 30 0 534 506 ; -C 44 ; WX 250 ; N comma ; B 56 -141 195 102 ; -C 45 ; WX 333 ; N hyphen ; B 39 194 285 257 ; -C 46 ; WX 250 ; N period ; B 70 -11 181 100 ; -C 47 ; WX 278 ; N slash ; B -9 -14 287 676 ; -C 48 ; WX 500 ; N zero ; B 24 -14 476 676 ; -C 49 ; WX 500 ; N one ; B 111 0 394 676 ; -C 50 ; WX 500 ; N two ; B 30 0 475 676 ; -C 51 ; WX 500 ; N three ; B 43 -14 431 676 ; -C 52 ; WX 500 ; N four ; B 12 0 472 676 ; -C 53 ; WX 500 ; N five ; B 32 -14 438 688 ; -C 54 ; WX 500 ; N six ; B 34 -14 468 684 ; -C 55 ; WX 500 ; N seven ; B 20 -8 449 662 ; -C 56 ; WX 500 ; N eight ; B 56 -14 445 676 ; -C 57 ; WX 500 ; N nine ; B 30 -22 459 676 ; -C 58 ; WX 278 ; N colon ; B 81 -11 192 459 ; -C 59 ; WX 278 ; N semicolon ; B 80 -141 219 459 ; -C 60 ; WX 564 ; N less ; B 28 -10 536 516 ; -C 61 ; WX 564 ; N equal ; B 30 120 534 386 ; -C 62 ; WX 564 ; N greater ; B 28 -10 536 516 ; -C 63 ; WX 444 ; N question ; B 68 -8 414 676 ; -C 64 ; WX 921 ; N at ; B 116 -14 809 676 ; -C 65 ; WX 722 ; N A ; B 15 0 706 674 ; -C 66 ; WX 667 ; N B ; B 17 0 593 662 ; -C 67 ; WX 667 ; N C ; B 28 -14 633 676 ; -C 68 ; WX 722 ; N D ; B 16 0 685 662 ; -C 69 ; WX 611 ; N E ; B 12 0 597 662 ; -C 70 ; WX 556 ; N F ; B 12 0 546 662 ; -C 71 ; WX 722 ; N G ; B 32 -14 709 676 ; -C 72 ; WX 722 ; N H ; B 19 0 702 662 ; -C 73 ; WX 333 ; N I ; B 18 0 315 662 ; -C 74 ; WX 389 ; N J ; B 10 -14 370 662 ; -C 75 ; WX 722 ; N K ; B 34 0 723 662 ; -C 76 ; WX 611 ; N L ; B 12 0 598 662 ; -C 77 ; WX 889 ; N M ; B 12 0 863 662 ; -C 78 ; WX 722 ; N N ; B 12 -11 707 662 ; -C 79 ; WX 722 ; N O ; B 34 -14 688 676 ; -C 80 ; WX 556 ; N P ; B 16 0 542 662 ; -C 81 ; WX 722 ; N Q ; B 34 -178 701 676 ; -C 82 ; WX 667 ; N R ; B 17 0 659 662 ; -C 83 ; WX 556 ; N S ; B 42 -14 491 676 ; -C 84 ; WX 611 ; N T ; B 17 0 593 662 ; -C 85 ; WX 722 ; N U ; B 14 -14 705 662 ; -C 86 ; WX 722 ; N V ; B 16 -11 697 662 ; -C 87 ; WX 944 ; N W ; B 5 -11 932 662 ; -C 88 ; WX 722 ; N X ; B 10 0 704 662 ; -C 89 ; WX 722 ; N Y ; B 22 0 703 662 ; -C 90 ; WX 611 ; N Z ; B 9 0 597 662 ; -C 91 ; WX 333 ; N bracketleft ; B 88 -156 299 662 ; -C 92 ; WX 278 ; N backslash ; B -9 -14 287 676 ; -C 93 ; WX 333 ; N bracketright ; B 34 -156 245 662 ; -C 94 ; WX 469 ; N asciicircum ; B 24 297 446 662 ; -C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; -C 96 ; WX 333 ; N quoteleft ; B 115 433 254 676 ; -C 97 ; WX 444 ; N a ; B 37 -10 442 460 ; -C 98 ; WX 500 ; N b ; B 3 -10 468 683 ; -C 99 ; WX 444 ; N c ; B 25 -10 412 460 ; -C 100 ; WX 500 ; N d ; B 27 -10 491 683 ; -C 101 ; WX 444 ; N e ; B 25 -10 424 460 ; -C 102 ; WX 333 ; N f ; B 20 0 383 683 ; -C 103 ; WX 500 ; N g ; B 28 -218 470 460 ; -C 104 ; WX 500 ; N h ; B 9 0 487 683 ; -C 105 ; WX 278 ; N i ; B 16 0 253 683 ; -C 106 ; WX 278 ; N j ; B -70 -218 194 683 ; -C 107 ; WX 500 ; N k ; B 7 0 505 683 ; -C 108 ; WX 278 ; N l ; B 19 0 257 683 ; -C 109 ; WX 778 ; N m ; B 16 0 775 460 ; -C 110 ; WX 500 ; N n ; B 16 0 485 460 ; -C 111 ; WX 500 ; N o ; B 29 -10 470 460 ; -C 112 ; WX 500 ; N p ; B 5 -217 470 460 ; -C 113 ; WX 500 ; N q ; B 24 -217 488 461 ; -C 114 ; WX 333 ; N r ; B 5 0 335 460 ; -C 115 ; WX 389 ; N s ; B 51 -10 348 459 ; -C 116 ; WX 278 ; N t ; B 13 -10 279 579 ; -C 117 ; WX 500 ; N u ; B 9 -10 479 450 ; -C 118 ; WX 500 ; N v ; B 19 -14 477 450 ; -C 119 ; WX 722 ; N w ; B 21 -14 694 450 ; -C 120 ; WX 500 ; N x ; B 17 0 479 450 ; -C 121 ; WX 500 ; N y ; B 14 -218 475 450 ; -C 122 ; WX 444 ; N z ; B 27 0 418 450 ; -C 123 ; WX 480 ; N braceleft ; B 100 -181 350 680 ; -C 124 ; WX 200 ; N bar ; B 67 -14 133 676 ; -C 125 ; WX 480 ; N braceright ; B 130 -181 380 680 ; -C 126 ; WX 541 ; N asciitilde ; B 40 186 502 320 ; -C 161 ; WX 333 ; N exclamdown ; B 97 -218 203 468 ; -C 162 ; WX 500 ; N cent ; B 53 -138 448 579 ; -C 163 ; WX 500 ; N sterling ; B 12 -8 490 676 ; -C 164 ; WX 167 ; N fraction ; B -168 -14 331 676 ; -C 165 ; WX 500 ; N yen ; B -53 0 512 662 ; -C 166 ; WX 500 ; N florin ; B 7 -189 490 676 ; -C 167 ; WX 500 ; N section ; B 70 -148 426 676 ; -C 168 ; WX 500 ; N currency ; B -22 58 522 602 ; -C 169 ; WX 180 ; N quotesingle ; B 48 431 133 676 ; -C 170 ; WX 444 ; N quotedblleft ; B 43 433 414 676 ; -C 171 ; WX 500 ; N guillemotleft ; B 42 33 456 416 ; -C 172 ; WX 333 ; N guilsinglleft ; B 63 33 285 416 ; -C 173 ; WX 333 ; N guilsinglright ; B 48 33 270 416 ; -C 174 ; WX 556 ; N fi ; B 31 0 521 683 ; -C 175 ; WX 556 ; N fl ; B 32 0 521 683 ; -C 177 ; WX 500 ; N endash ; B 0 201 500 250 ; -C 178 ; WX 500 ; N dagger ; B 59 -149 442 676 ; -C 179 ; WX 500 ; N daggerdbl ; B 58 -153 442 676 ; -C 180 ; WX 250 ; N periodcentered ; B 70 199 181 310 ; -C 182 ; WX 453 ; N paragraph ; B -22 -154 450 662 ; -C 183 ; WX 350 ; N bullet ; B 40 196 310 466 ; -C 184 ; WX 333 ; N quotesinglbase ; B 79 -141 218 102 ; -C 185 ; WX 444 ; N quotedblbase ; B 45 -141 416 102 ; -C 186 ; WX 444 ; N quotedblright ; B 30 433 401 676 ; -C 187 ; WX 500 ; N guillemotright ; B 44 33 458 416 ; -C 188 ; WX 1000 ; N ellipsis ; B 111 -11 888 100 ; -C 189 ; WX 1000 ; N perthousand ; B 7 -19 994 706 ; -C 191 ; WX 444 ; N questiondown ; B 30 -218 376 467 ; -C 193 ; WX 333 ; N grave ; B 19 507 242 678 ; -C 194 ; WX 333 ; N acute ; B 93 507 317 678 ; -C 195 ; WX 333 ; N circumflex ; B 11 507 322 674 ; -C 196 ; WX 333 ; N tilde ; B 1 532 331 638 ; -C 197 ; WX 333 ; N macron ; B 11 547 322 601 ; -C 198 ; WX 333 ; N breve ; B 26 507 307 664 ; -C 199 ; WX 333 ; N dotaccent ; B 118 523 217 622 ; -C 200 ; WX 333 ; N dieresis ; B 18 523 316 622 ; -C 202 ; WX 333 ; N ring ; B 67 512 266 711 ; -C 203 ; WX 333 ; N cedilla ; B 52 -215 261 0 ; -C 205 ; WX 333 ; N hungarumlaut ; B -3 507 377 678 ; -C 206 ; WX 333 ; N ogonek ; B 64 -165 249 0 ; -C 207 ; WX 333 ; N caron ; B 11 507 322 674 ; -C 208 ; WX 1000 ; N emdash ; B 0 201 1000 250 ; -C 225 ; WX 889 ; N AE ; B 0 0 863 662 ; -C 227 ; WX 276 ; N ordfeminine ; B 4 394 270 676 ; -C 232 ; WX 611 ; N Lslash ; B 12 0 598 662 ; -C 233 ; WX 722 ; N Oslash ; B 34 -80 688 734 ; -C 234 ; WX 889 ; N OE ; B 30 -6 885 668 ; -C 235 ; WX 310 ; N ordmasculine ; B 6 394 304 676 ; -C 241 ; WX 667 ; N ae ; B 38 -10 632 460 ; -C 245 ; WX 278 ; N dotlessi ; B 16 0 253 460 ; -C 248 ; WX 278 ; N lslash ; B 19 0 259 683 ; -C 249 ; WX 500 ; N oslash ; B 29 -112 470 551 ; -C 250 ; WX 722 ; N oe ; B 30 -10 690 460 ; -C 251 ; WX 500 ; N germandbls ; B 12 -9 468 683 ; -C -1 ; WX 722 ; N Yacute ; B 22 0 703 890 ; -C -1 ; WX 722 ; N Ucircumflex ; B 14 -14 705 886 ; -C -1 ; WX 722 ; N Ugrave ; B 14 -14 705 890 ; -C -1 ; WX 611 ; N Zcaron ; B 9 0 597 886 ; -C -1 ; WX 722 ; N Ydieresis ; B 22 0 703 834 ; -C -1 ; WX 300 ; N threesuperior ; B 15 262 291 676 ; -C -1 ; WX 722 ; N Uacute ; B 14 -14 705 890 ; -C -1 ; WX 300 ; N twosuperior ; B 1 270 296 676 ; -C -1 ; WX 722 ; N Udieresis ; B 14 -14 705 834 ; -C -1 ; WX 250 ; N middot ; B 70 199 181 310 ; -C -1 ; WX 300 ; N onesuperior ; B 57 270 248 676 ; -C -1 ; WX 444 ; N aacute ; B 37 -10 442 678 ; -C -1 ; WX 444 ; N agrave ; B 37 -10 442 678 ; -C -1 ; WX 444 ; N acircumflex ; B 37 -10 442 674 ; -C -1 ; WX 556 ; N Scaron ; B 42 -14 491 886 ; -C -1 ; WX 722 ; N Otilde ; B 34 -14 688 850 ; -C -1 ; WX 333 ; N sfthyphen ; B 39 194 285 257 ; -C -1 ; WX 444 ; N atilde ; B 37 -10 442 638 ; -C -1 ; WX 444 ; N aring ; B 37 -10 442 722 ; -C -1 ; WX 444 ; N adieresis ; B 37 -10 442 622 ; -C -1 ; WX 722 ; N Ograve ; B 34 -14 688 890 ; -C -1 ; WX 722 ; N Ocircumflex ; B 34 -14 688 886 ; -C -1 ; WX 722 ; N Odieresis ; B 34 -14 688 834 ; -C -1 ; WX 722 ; N Ntilde ; B 12 -11 707 850 ; -C -1 ; WX 444 ; N edieresis ; B 25 -10 424 622 ; -C -1 ; WX 444 ; N eacute ; B 25 -10 424 678 ; -C -1 ; WX 444 ; N egrave ; B 25 -10 424 678 ; -C -1 ; WX 333 ; N Icircumflex ; B 11 0 322 886 ; -C -1 ; WX 444 ; N ecircumflex ; B 25 -10 424 674 ; -C -1 ; WX 333 ; N Igrave ; B 18 0 315 890 ; -C -1 ; WX 333 ; N Iacute ; B 18 0 317 890 ; -C -1 ; WX 333 ; N Idieresis ; B 18 0 316 834 ; -C -1 ; WX 400 ; N degree ; B 57 390 343 676 ; -C -1 ; WX 611 ; N Ecircumflex ; B 12 0 597 886 ; -C -1 ; WX 564 ; N minus ; B 30 220 534 286 ; -C -1 ; WX 564 ; N multiply ; B 38 8 527 497 ; -C -1 ; WX 564 ; N divide ; B 30 -10 534 516 ; -C -1 ; WX 611 ; N Egrave ; B 12 0 597 890 ; -C -1 ; WX 980 ; N trademark ; B 30 256 957 662 ; -C -1 ; WX 722 ; N Oacute ; B 34 -14 688 890 ; -C -1 ; WX 500 ; N thorn ; B 5 -217 470 683 ; -C -1 ; WX 500 ; N eth ; B 29 -10 471 686 ; -C -1 ; WX 611 ; N Eacute ; B 12 0 597 890 ; -C -1 ; WX 444 ; N ccedilla ; B 25 -215 412 460 ; -C -1 ; WX 278 ; N idieresis ; B 11 0 269 622 ; -C -1 ; WX 278 ; N iacute ; B 16 0 290 678 ; -C -1 ; WX 278 ; N igrave ; B -8 0 253 678 ; -C -1 ; WX 564 ; N plusminus ; B 30 0 534 568 ; -C -1 ; WX 750 ; N onehalf ; B 31 -14 746 676 ; -C -1 ; WX 750 ; N onequarter ; B 37 -14 718 676 ; -C -1 ; WX 750 ; N threequarters ; B 15 -14 718 676 ; -C -1 ; WX 278 ; N icircumflex ; B -16 0 295 674 ; -C -1 ; WX 611 ; N Edieresis ; B 12 0 597 834 ; -C -1 ; WX 500 ; N ntilde ; B 16 0 485 638 ; -C -1 ; WX 722 ; N Aring ; B 15 0 706 915 ; -C -1 ; WX 500 ; N odieresis ; B 29 -10 470 622 ; -C -1 ; WX 500 ; N oacute ; B 29 -10 470 678 ; -C -1 ; WX 500 ; N ograve ; B 29 -10 470 678 ; -C -1 ; WX 500 ; N ocircumflex ; B 29 -10 470 674 ; -C -1 ; WX 500 ; N otilde ; B 29 -10 470 638 ; -C -1 ; WX 389 ; N scaron ; B 39 -10 350 674 ; -C -1 ; WX 500 ; N udieresis ; B 9 -10 479 622 ; -C -1 ; WX 500 ; N uacute ; B 9 -10 479 678 ; -C -1 ; WX 500 ; N ugrave ; B 9 -10 479 678 ; -C -1 ; WX 500 ; N ucircumflex ; B 9 -10 479 674 ; -C -1 ; WX 500 ; N yacute ; B 14 -218 475 678 ; -C -1 ; WX 444 ; N zcaron ; B 27 0 418 674 ; -C -1 ; WX 500 ; N ydieresis ; B 14 -218 475 622 ; -C -1 ; WX 760 ; N copyright ; B 38 -14 722 676 ; -C -1 ; WX 760 ; N registered ; B 38 -14 722 676 ; -C -1 ; WX 722 ; N Atilde ; B 15 0 706 850 ; -C -1 ; WX 250 ; N nbspace ; B 125 0 125 0 ; -C -1 ; WX 667 ; N Ccedilla ; B 28 -215 633 676 ; -C -1 ; WX 722 ; N Acircumflex ; B 15 0 706 886 ; -C -1 ; WX 722 ; N Agrave ; B 15 0 706 890 ; -C -1 ; WX 564 ; N logicalnot ; B 30 108 534 386 ; -C -1 ; WX 722 ; N Aacute ; B 15 0 706 890 ; -C -1 ; WX 722 ; N Eth ; B 16 0 685 662 ; -C -1 ; WX 200 ; N brokenbar ; B 67 -14 133 676 ; -C -1 ; WX 556 ; N Thorn ; B 16 0 542 662 ; -C -1 ; WX 722 ; N Adieresis ; B 15 0 706 834 ; -C -1 ; WX 500 ; N mu ; B 36 -218 512 450 ; -C -1 ; WX 250 ; N .notdef ; B 125 0 125 0 ; -EndCharMetrics -StartKernData -StartKernPairs 998 -KPX A C -53 -KPX A Ccedilla -57 -KPX A G -57 -KPX A O -58 -KPX A Odieresis -58 -KPX A Q -60 -KPX A T -54 -KPX A U -62 -KPX A Uacute -62 -KPX A Ucircumflex -62 -KPX A Udieresis -62 -KPX A Ugrave -62 -KPX A V -132 -KPX A W -113 -KPX A Y -81 -KPX A a -6 -KPX A b -19 -KPX A c -29 -KPX A ccedilla -29 -KPX A comma -3 -KPX A d -28 -KPX A e -27 -KPX A g -19 -KPX A guillemotleft -64 -KPX A guilsinglleft -74 -KPX A hyphen -23 -KPX A o -40 -KPX A period -10 -KPX A q -21 -KPX A quotedblright -91 -KPX A quoteright -116 -KPX A t -20 -KPX A u -28 -KPX A v -82 -KPX A w -73 -KPX A y -83 -KPX Aacute C -53 -KPX Aacute G -57 -KPX Aacute O -58 -KPX Aacute Q -60 -KPX Aacute T -54 -KPX Aacute U -62 -KPX Aacute V -132 -KPX Aacute W -113 -KPX Aacute Y -81 -KPX Aacute a -6 -KPX Aacute b -19 -KPX Aacute c -29 -KPX Aacute comma -3 -KPX Aacute d -28 -KPX Aacute e -27 -KPX Aacute g -19 -KPX Aacute guillemotleft -64 -KPX Aacute guilsinglleft -74 -KPX Aacute hyphen -23 -KPX Aacute o -40 -KPX Aacute period -10 -KPX Aacute q -21 -KPX Aacute quoteright -116 -KPX Aacute t -20 -KPX Aacute u -28 -KPX Aacute v -82 -KPX Aacute w -73 -KPX Aacute y -83 -KPX Acircumflex C -53 -KPX Acircumflex G -57 -KPX Acircumflex O -58 -KPX Acircumflex Q -60 -KPX Acircumflex T -54 -KPX Acircumflex U -62 -KPX Acircumflex V -132 -KPX Acircumflex W -113 -KPX Acircumflex Y -81 -KPX Acircumflex comma -3 -KPX Acircumflex period -10 -KPX Adieresis C -53 -KPX Adieresis G -57 -KPX Adieresis O -58 -KPX Adieresis Q -60 -KPX Adieresis T -54 -KPX Adieresis U -62 -KPX Adieresis V -132 -KPX Adieresis W -113 -KPX Adieresis Y -81 -KPX Adieresis a -6 -KPX Adieresis b -19 -KPX Adieresis c -29 -KPX Adieresis comma -3 -KPX Adieresis d -28 -KPX Adieresis g -19 -KPX Adieresis guillemotleft -64 -KPX Adieresis guilsinglleft -74 -KPX Adieresis hyphen -23 -KPX Adieresis o -40 -KPX Adieresis period -10 -KPX Adieresis q -21 -KPX Adieresis quotedblright -91 -KPX Adieresis quoteright -116 -KPX Adieresis t -20 -KPX Adieresis u -28 -KPX Adieresis v -82 -KPX Adieresis w -73 -KPX Adieresis y -83 -KPX Agrave C -53 -KPX Agrave G -57 -KPX Agrave O -58 -KPX Agrave Q -60 -KPX Agrave T -54 -KPX Agrave U -62 -KPX Agrave V -132 -KPX Agrave W -113 -KPX Agrave Y -81 -KPX Agrave comma -3 -KPX Agrave period -10 -KPX Aring C -53 -KPX Aring G -57 -KPX Aring O -58 -KPX Aring Q -60 -KPX Aring T -54 -KPX Aring U -62 -KPX Aring V -132 -KPX Aring W -113 -KPX Aring Y -81 -KPX Aring a -6 -KPX Aring b -19 -KPX Aring c -29 -KPX Aring comma -3 -KPX Aring d -28 -KPX Aring e -27 -KPX Aring g -19 -KPX Aring guillemotleft -64 -KPX Aring guilsinglleft -74 -KPX Aring hyphen -23 -KPX Aring o -40 -KPX Aring period -10 -KPX Aring q -21 -KPX Aring quotedblright -91 -KPX Aring quoteright -116 -KPX Aring t -20 -KPX Aring u -28 -KPX Aring v -82 -KPX Aring w -73 -KPX Aring y -83 -KPX Atilde C -53 -KPX Atilde G -57 -KPX Atilde O -58 -KPX Atilde Q -60 -KPX Atilde T -54 -KPX Atilde U -62 -KPX Atilde V -132 -KPX Atilde W -113 -KPX Atilde Y -81 -KPX Atilde comma -3 -KPX Atilde period -10 -KPX B A -51 -KPX B AE -43 -KPX B Aacute -51 -KPX B Acircumflex -51 -KPX B Adieresis -51 -KPX B Aring -51 -KPX B Atilde -51 -KPX B O -24 -KPX B OE -19 -KPX B Oacute -24 -KPX B Ocircumflex -24 -KPX B Odieresis -24 -KPX B Ograve -24 -KPX B Oslash -23 -KPX B V -65 -KPX B W -59 -KPX B Y -68 -KPX C A -23 -KPX C AE -15 -KPX C Aacute -23 -KPX C Adieresis -23 -KPX C Aring -23 -KPX C H -2 -KPX C K -10 -KPX C O -12 -KPX C Oacute -12 -KPX C Odieresis -12 -KPX Ccedilla A -27 -KPX D A -67 -KPX D Aacute -67 -KPX D Acircumflex -67 -KPX D Adieresis -67 -KPX D Agrave -67 -KPX D Aring -67 -KPX D Atilde -67 -KPX D J -41 -KPX D T -9 -KPX D V -70 -KPX D W -57 -KPX D X -64 -KPX D Y -73 -KPX F A -71 -KPX F Aacute -71 -KPX F Acircumflex -71 -KPX F Adieresis -71 -KPX F Agrave -71 -KPX F Aring -71 -KPX F Atilde -71 -KPX F J -13 -KPX F O -10 -KPX F Odieresis -10 -KPX F a -34 -KPX F aacute -34 -KPX F adieresis -10 -KPX F ae -36 -KPX F aring -34 -KPX F comma -51 -KPX F e -19 -KPX F eacute -19 -KPX F hyphen 3 -KPX F i -13 -KPX F j -20 -KPX F o -21 -KPX F oacute -21 -KPX F odieresis -21 -KPX F oe -21 -KPX F oslash -21 -KPX F period -58 -KPX F r -10 -KPX F u -11 -KPX G A -26 -KPX G AE -19 -KPX G Aacute -26 -KPX G Acircumflex -26 -KPX G Adieresis -26 -KPX G Agrave -26 -KPX G Aring -26 -KPX G Atilde -26 -KPX G T -21 -KPX G V -23 -KPX G W -18 -KPX G Y -26 -KPX J A -53 -KPX J AE -46 -KPX J Adieresis -53 -KPX J Aring -53 -KPX K C -44 -KPX K G -49 -KPX K O -50 -KPX K OE -44 -KPX K Oacute -50 -KPX K Odieresis -50 -KPX K S 1 -KPX K T 0 -KPX K a 2 -KPX K adieresis 2 -KPX K ae 0 -KPX K aring 2 -KPX K e -19 -KPX K hyphen -63 -KPX K o -31 -KPX K oacute -31 -KPX K odieresis -31 -KPX K u -19 -KPX K udieresis -19 -KPX K y -87 -KPX L A 0 -KPX L AE 6 -KPX L Aacute 0 -KPX L Adieresis 0 -KPX L Aring 0 -KPX L C 1 -KPX L Ccedilla 0 -KPX L G 0 -KPX L O -3 -KPX L Oacute -3 -KPX L Ocircumflex -3 -KPX L Odieresis -3 -KPX L Ograve -3 -KPX L Otilde -3 -KPX L S 5 -KPX L T -73 -KPX L U -26 -KPX L Udieresis -26 -KPX L V -115 -KPX L W -89 -KPX L Y -100 -KPX L hyphen 25 -KPX L quotedblright -100 -KPX L quoteright -125 -KPX L u -10 -KPX L udieresis -10 -KPX L y -57 -KPX N A -28 -KPX N AE -21 -KPX N Aacute -28 -KPX N Adieresis -28 -KPX N Aring -28 -KPX N C -17 -KPX N Ccedilla -17 -KPX N G -20 -KPX N O -20 -KPX N Oacute -20 -KPX N Odieresis -20 -KPX N a -27 -KPX N aacute -27 -KPX N adieresis -27 -KPX N ae -27 -KPX N aring -27 -KPX N comma -14 -KPX N e -17 -KPX N eacute -17 -KPX N o -21 -KPX N oacute -21 -KPX N odieresis -21 -KPX N oslash -20 -KPX N period -21 -KPX N u -25 -KPX N udieresis -25 -KPX O A -58 -KPX O AE -51 -KPX O Aacute -58 -KPX O Adieresis -58 -KPX O Aring -58 -KPX O T -9 -KPX O V -69 -KPX O W -55 -KPX O X -56 -KPX O Y -72 -KPX Oacute A -58 -KPX Oacute T -9 -KPX Oacute V -69 -KPX Oacute W -55 -KPX Oacute Y -72 -KPX Ocircumflex T -9 -KPX Ocircumflex V -69 -KPX Ocircumflex Y -72 -KPX Odieresis A -58 -KPX Odieresis T -9 -KPX Odieresis V -69 -KPX Odieresis W -55 -KPX Odieresis X -56 -KPX Odieresis Y -72 -KPX Ograve T -9 -KPX Ograve V -69 -KPX Ograve Y -72 -KPX Oslash A -58 -KPX Otilde T -9 -KPX Otilde V -69 -KPX Otilde Y -72 -KPX P A -90 -KPX P AE -91 -KPX P Aacute -90 -KPX P Adieresis -90 -KPX P Aring -90 -KPX P J -51 -KPX P a -18 -KPX P aacute -18 -KPX P adieresis -18 -KPX P ae -18 -KPX P aring -18 -KPX P comma -94 -KPX P e -23 -KPX P eacute -23 -KPX P hyphen -38 -KPX P o -25 -KPX P oacute -25 -KPX P odieresis -25 -KPX P oe -25 -KPX P oslash -25 -KPX P period -101 -KPX R C -42 -KPX R Ccedilla -42 -KPX R G -44 -KPX R O -45 -KPX R OE -40 -KPX R Oacute -45 -KPX R Odieresis -45 -KPX R T -34 -KPX R U -56 -KPX R Udieresis -56 -KPX R V -73 -KPX R W -68 -KPX R Y -76 -KPX R a -2 -KPX R aacute -2 -KPX R adieresis -2 -KPX R ae -5 -KPX R aring -2 -KPX R e -23 -KPX R eacute -23 -KPX R hyphen -52 -KPX R o -36 -KPX R oacute -36 -KPX R odieresis -36 -KPX R oe -31 -KPX R u -24 -KPX R uacute -24 -KPX R udieresis -24 -KPX R y -36 -KPX S A -37 -KPX S AE -30 -KPX S Aacute -37 -KPX S Adieresis -37 -KPX S Aring -37 -KPX S T -19 -KPX S V -27 -KPX S W -21 -KPX S Y -30 -KPX S t -20 -KPX T A -53 -KPX T AE -45 -KPX T Aacute -53 -KPX T Acircumflex -53 -KPX T Adieresis -53 -KPX T Agrave -53 -KPX T Aring -53 -KPX T Atilde -53 -KPX T C -8 -KPX T G -10 -KPX T J -18 -KPX T O -10 -KPX T OE -3 -KPX T Oacute -10 -KPX T Ocircumflex -10 -KPX T Odieresis -10 -KPX T Ograve -10 -KPX T Oslash -10 -KPX T Otilde -10 -KPX T S -10 -KPX T V 14 -KPX T W 20 -KPX T Y 11 -KPX T a -77 -KPX T ae -80 -KPX T c -87 -KPX T colon -88 -KPX T comma -74 -KPX T e -86 -KPX T g -91 -KPX T guillemotleft -115 -KPX T guilsinglleft -125 -KPX T hyphen -73 -KPX T i -18 -KPX T j -25 -KPX T o -90 -KPX T oslash -89 -KPX T period -82 -KPX T r -50 -KPX T s -73 -KPX T semicolon -87 -KPX T u -93 -KPX T v -105 -KPX T w -106 -KPX T y -102 -KPX U A -65 -KPX U AE -58 -KPX U Aacute -65 -KPX U Acircumflex -65 -KPX U Adieresis -65 -KPX U Aring -65 -KPX U Atilde -65 -KPX U comma -32 -KPX U m -33 -KPX U n -31 -KPX U p -28 -KPX U period -37 -KPX U r -27 -KPX Uacute A -65 -KPX Uacute comma -32 -KPX Uacute m -33 -KPX Uacute n -31 -KPX Uacute p -28 -KPX Uacute period -37 -KPX Uacute r -27 -KPX Ucircumflex A -65 -KPX Udieresis A -65 -KPX Udieresis b 21 -KPX Udieresis comma -32 -KPX Udieresis m -33 -KPX Udieresis n -31 -KPX Udieresis p -28 -KPX Udieresis period -37 -KPX Udieresis r -27 -KPX Ugrave A -65 -KPX V A -124 -KPX V AE -104 -KPX V Aacute -124 -KPX V Acircumflex -124 -KPX V Adieresis -124 -KPX V Agrave -124 -KPX V Aring -124 -KPX V Atilde -124 -KPX V C -64 -KPX V G -67 -KPX V O -67 -KPX V Oacute -67 -KPX V Ocircumflex -67 -KPX V Odieresis -67 -KPX V Ograve -67 -KPX V Oslash -66 -KPX V Otilde -67 -KPX V S -47 -KPX V T 10 -KPX V a -89 -KPX V ae -89 -KPX V colon -89 -KPX V comma -105 -KPX V e -85 -KPX V g -101 -KPX V guillemotleft -109 -KPX V guilsinglleft -119 -KPX V hyphen -69 -KPX V i -20 -KPX V o -89 -KPX V oslash -88 -KPX V period -112 -KPX V r -56 -KPX V semicolon -89 -KPX V u -51 -KPX V y -54 -KPX W A -113 -KPX W AE -98 -KPX W Aacute -113 -KPX W Acircumflex -113 -KPX W Adieresis -113 -KPX W Agrave -113 -KPX W Aring -113 -KPX W Atilde -113 -KPX W C -53 -KPX W G -56 -KPX W O -56 -KPX W Oacute -56 -KPX W Ocircumflex -56 -KPX W Odieresis -56 -KPX W Ograve -56 -KPX W Oslash -55 -KPX W Otilde -56 -KPX W S -41 -KPX W T 17 -KPX W a -80 -KPX W ae -81 -KPX W colon -81 -KPX W comma -89 -KPX W e -72 -KPX W g -91 -KPX W guillemotleft -97 -KPX W guilsinglleft -107 -KPX W hyphen -57 -KPX W i -13 -KPX W o -76 -KPX W oslash -75 -KPX W period -96 -KPX W r -47 -KPX W semicolon -81 -KPX W u -43 -KPX W y -45 -KPX X C -54 -KPX X O -59 -KPX X Odieresis -59 -KPX X Q -61 -KPX X a -7 -KPX X e -28 -KPX X hyphen -55 -KPX X o -41 -KPX X u -29 -KPX X y -96 -KPX Y A -74 -KPX Y AE -67 -KPX Y Aacute -74 -KPX Y Acircumflex -74 -KPX Y Adieresis -74 -KPX Y Agrave -74 -KPX Y Aring -74 -KPX Y Atilde -74 -KPX Y C -68 -KPX Y G -71 -KPX Y O -69 -KPX Y Oacute -69 -KPX Y Ocircumflex -69 -KPX Y Odieresis -69 -KPX Y Ograve -69 -KPX Y Oslash -69 -KPX Y Otilde -69 -KPX Y S -44 -KPX Y T 13 -KPX Y a -99 -KPX Y ae -102 -KPX Y colon -109 -KPX Y comma -96 -KPX Y e -103 -KPX Y g -112 -KPX Y guillemotleft -135 -KPX Y guilsinglleft -145 -KPX Y hyphen -98 -KPX Y i -17 -KPX Y o -107 -KPX Y oslash -106 -KPX Y p -88 -KPX Y period -103 -KPX Y semicolon -108 -KPX Y u -78 -KPX Y v -86 -KPX Z v -48 -KPX Z y -50 -KPX a j -26 -KPX a quoteright -40 -KPX a v -30 -KPX a w -31 -KPX a y -32 -KPX aacute v -30 -KPX aacute w -31 -KPX aacute y -32 -KPX adieresis v -30 -KPX adieresis w -31 -KPX adieresis y -32 -KPX ae v -27 -KPX ae w -28 -KPX ae y -30 -KPX agrave v -30 -KPX agrave w -31 -KPX agrave y -32 -KPX aring v -30 -KPX aring w -31 -KPX aring y -32 -KPX b v -27 -KPX b w -28 -KPX b y -32 -KPX c h -15 -KPX c k -20 -KPX comma one -52 -KPX comma quotedblright -29 -KPX comma quoteright -53 -KPX e quoteright -30 -KPX e t -10 -KPX e v -27 -KPX e w -28 -KPX e x -35 -KPX e y -30 -KPX eacute v -27 -KPX eacute w -28 -KPX eacute y -30 -KPX ecircumflex v -27 -KPX ecircumflex w -28 -KPX ecircumflex y -30 -KPX eight four 0 -KPX eight one -63 -KPX eight seven -15 -KPX f a -24 -KPX f aacute -24 -KPX f adieresis 12 -KPX f ae -25 -KPX f aring -7 -KPX f e -34 -KPX f eacute -34 -KPX f f 6 -KPX f i 15 -KPX f j 8 -KPX f l 44 -KPX f o -38 -KPX f oacute -38 -KPX f odieresis -1 -KPX f oe -37 -KPX f oslash -38 -KPX f quoteright 17 -KPX f s -21 -KPX f t 10 -KPX five four -9 -KPX five one -70 -KPX five seven -36 -KPX four four 14 -KPX four one -75 -KPX four seven -42 -KPX g a -18 -KPX g adieresis -18 -KPX g ae -18 -KPX g aring -18 -KPX g e -24 -KPX g eacute -24 -KPX g l -7 -KPX g oacute -26 -KPX g odieresis -26 -KPX g r 11 -KPX guillemotright A -62 -KPX guillemotright AE -61 -KPX guillemotright Aacute -62 -KPX guillemotright Adieresis -62 -KPX guillemotright Aring -62 -KPX guillemotright T -114 -KPX guillemotright V -117 -KPX guillemotright W -95 -KPX guillemotright Y -138 -KPX guilsinglright A -72 -KPX guilsinglright AE -71 -KPX guilsinglright Aacute -72 -KPX guilsinglright Adieresis -72 -KPX guilsinglright Aring -72 -KPX guilsinglright T -124 -KPX guilsinglright V -128 -KPX guilsinglright W -105 -KPX guilsinglright Y -149 -KPX h quoteright -38 -KPX h y -30 -KPX hyphen A -27 -KPX hyphen AE -25 -KPX hyphen Aacute -27 -KPX hyphen Adieresis -27 -KPX hyphen Aring -27 -KPX hyphen T -77 -KPX hyphen V -82 -KPX hyphen W -59 -KPX hyphen Y -108 -KPX i T -28 -KPX i j -36 -KPX k a 1 -KPX k aacute 1 -KPX k adieresis 1 -KPX k ae -1 -KPX k aring 1 -KPX k comma 4 -KPX k e -19 -KPX k eacute -19 -KPX k g -11 -KPX k hyphen -64 -KPX k o -32 -KPX k oacute -32 -KPX k odieresis -32 -KPX k period -2 -KPX k s 5 -KPX k u 14 -KPX k udieresis 14 -KPX l v -28 -KPX l y -25 -KPX m p -9 -KPX m v -30 -KPX m w -31 -KPX m y -31 -KPX n T -55 -KPX n p -13 -KPX n quoteright -40 -KPX n v -30 -KPX n w -31 -KPX n y -31 -KPX nine four -7 -KPX nine one -63 -KPX nine seven -6 -KPX o T -91 -KPX o quoteright -34 -KPX o t -9 -KPX o v -36 -KPX o w -36 -KPX o x -36 -KPX o y -39 -KPX oacute v -36 -KPX oacute w -36 -KPX oacute y -39 -KPX ocircumflex t -9 -KPX odieresis t -9 -KPX odieresis v -36 -KPX odieresis w -36 -KPX odieresis x -36 -KPX odieresis y -39 -KPX ograve v -36 -KPX ograve w -36 -KPX ograve y -39 -KPX one comma -48 -KPX one eight -68 -KPX one five -37 -KPX one four -72 -KPX one nine -61 -KPX one one -78 -KPX one period -55 -KPX one seven -78 -KPX one six -66 -KPX one three -41 -KPX one two -34 -KPX one zero -54 -KPX p t -6 -KPX p y -28 -KPX period one -61 -KPX period quotedblright -34 -KPX period quoteright -58 -KPX q c -8 -KPX q u -12 -KPX quotedblbase A 12 -KPX quotedblbase AE 19 -KPX quotedblbase T -60 -KPX quotedblbase V -105 -KPX quotedblbase W -76 -KPX quotedblbase Y -87 -KPX quotedblleft A -86 -KPX quotedblleft AE -91 -KPX quotedblleft Aacute -86 -KPX quotedblleft Adieresis -86 -KPX quotedblleft Aring -86 -KPX quotedblleft T 14 -KPX quotedblleft V 1 -KPX quotedblleft W 7 -KPX quotedblleft Y -1 -KPX quotedblright A -94 -KPX quotedblright AE -99 -KPX quotedblright Aacute -94 -KPX quotedblright Adieresis -94 -KPX quotedblright Aring -94 -KPX quotedblright T 11 -KPX quotedblright V 0 -KPX quotedblright W 6 -KPX quotedblright Y -2 -KPX quoteleft A -111 -KPX quoteleft AE -115 -KPX quoteleft Aacute -111 -KPX quoteleft Adieresis -111 -KPX quoteleft Aring -111 -KPX quoteleft T -9 -KPX quoteleft V -23 -KPX quoteleft W -17 -KPX quoteleft Y -26 -KPX quoteright A -130 -KPX quoteright AE -135 -KPX quoteright Aacute -130 -KPX quoteright Adieresis -130 -KPX quoteright Aring -130 -KPX quoteright comma -71 -KPX quoteright d -57 -KPX quoteright o -54 -KPX quoteright period -78 -KPX quoteright r -44 -KPX quoteright s -47 -KPX quoteright t -44 -KPX quoteright v -47 -KPX quoteright w -47 -KPX quoteright y -45 -KPX r a -2 -KPX r aacute -2 -KPX r acircumflex -2 -KPX r adieresis -2 -KPX r ae -3 -KPX r agrave -2 -KPX r aring -2 -KPX r c -9 -KPX r ccedilla -8 -KPX r colon -7 -KPX r comma -41 -KPX r d -10 -KPX r e -5 -KPX r eacute -5 -KPX r ecircumflex -5 -KPX r egrave -5 -KPX r f 19 -KPX r g -15 -KPX r h -6 -KPX r hyphen -46 -KPX r i 20 -KPX r j 14 -KPX r k -10 -KPX r l -18 -KPX r m 20 -KPX r n 22 -KPX r o -8 -KPX r oacute -8 -KPX r ocircumflex -8 -KPX r odieresis -8 -KPX r oe -7 -KPX r ograve -8 -KPX r oslash -7 -KPX r p 25 -KPX r period -48 -KPX r q -10 -KPX r quoteright -19 -KPX r r 26 -KPX r s 0 -KPX r semicolon -7 -KPX r t 23 -KPX r u 19 -KPX r v 20 -KPX r w 19 -KPX r x 17 -KPX r y 22 -KPX r z 2 -KPX s quoteright -38 -KPX s t -15 -KPX seven colon -68 -KPX seven comma -72 -KPX seven eight -40 -KPX seven five -59 -KPX seven four -63 -KPX seven one -56 -KPX seven period -79 -KPX seven seven -20 -KPX seven six -46 -KPX seven three -35 -KPX seven two -31 -KPX six four 12 -KPX six one -74 -KPX six seven -29 -KPX t S 2 -KPX t a 10 -KPX t aacute 10 -KPX t adieresis 10 -KPX t ae 9 -KPX t aring 10 -KPX t colon -8 -KPX t e 0 -KPX t eacute 0 -KPX t h 10 -KPX t o -8 -KPX t oacute -8 -KPX t odieresis -8 -KPX t quoteright -29 -KPX t semicolon -8 -KPX three four -6 -KPX three one -76 -KPX three seven -29 -KPX two four 0 -KPX two one -60 -KPX two seven -16 -KPX u quoteright -36 -KPX v a -24 -KPX v aacute -24 -KPX v acircumflex -24 -KPX v adieresis -24 -KPX v ae -24 -KPX v agrave -24 -KPX v aring -24 -KPX v atilde -24 -KPX v c -37 -KPX v colon -20 -KPX v comma -69 -KPX v e -35 -KPX v eacute -35 -KPX v ecircumflex -35 -KPX v egrave -35 -KPX v g -41 -KPX v hyphen -28 -KPX v l -31 -KPX v o -37 -KPX v oacute -37 -KPX v odieresis -37 -KPX v ograve -37 -KPX v oslash -38 -KPX v period -76 -KPX v s -20 -KPX v semicolon -20 -KPX w a -26 -KPX w aacute -26 -KPX w acircumflex -26 -KPX w adieresis -26 -KPX w ae -27 -KPX w agrave -26 -KPX w aring -26 -KPX w atilde -26 -KPX w c -33 -KPX w colon -23 -KPX w comma -64 -KPX w e -31 -KPX w eacute -31 -KPX w ecircumflex -31 -KPX w egrave -31 -KPX w g -43 -KPX w hyphen -24 -KPX w l -33 -KPX w o -36 -KPX w oacute -36 -KPX w odieresis -36 -KPX w ograve -36 -KPX w oslash -34 -KPX w period -71 -KPX w s -23 -KPX w semicolon -23 -KPX x a -11 -KPX x c -34 -KPX x e -32 -KPX x eacute -32 -KPX x o -45 -KPX x q -26 -KPX y a -30 -KPX y aacute -30 -KPX y acircumflex -30 -KPX y adieresis -30 -KPX y ae -31 -KPX y agrave -30 -KPX y aring -30 -KPX y atilde -30 -KPX y c -37 -KPX y colon -23 -KPX y comma -66 -KPX y e -35 -KPX y eacute -35 -KPX y ecircumflex -35 -KPX y egrave -35 -KPX y g -48 -KPX y hyphen -27 -KPX y l -32 -KPX y o -39 -KPX y oacute -39 -KPX y odieresis -39 -KPX y ograve -39 -KPX y oslash -38 -KPX y period -73 -KPX y s -26 -KPX y semicolon -23 -KPX zero four 12 -KPX zero one -55 -KPX zero seven -5 -EndKernPairs -EndKernData -EndFontMetrics diff --git a/missing b/missing deleted file mode 100755 index cbe2b0ef0e..0000000000 --- a/missing +++ /dev/null @@ -1,188 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. -# Copyright (C) 1996, 1997 Free Software Foundation, Inc. -# Franc,ois Pinard , 1996. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA -# 02111-1307, USA. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -case "$1" in - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - yacc create \`y.tab.[ch]', if possible, from existing .[ch]" - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing - GNU libit 0.0" - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - - aclocal) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acinclude.m4' or \`configure.in'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`configure.in'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`acconfig.h' or \`configure.in'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER([^):]*:\([^)]*\)).*/\1/p' configure.in` - if test -z "$files"; then - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^):]*\)).*/\1/p' configure.in` - test -z "$files" || files="$files.in" - else - files=`echo "$files" | sed -e 's/:/ /g'` - fi - test -z "$files" && files="config.h.in" - touch $files - ;; - - automake) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`configure.in'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print \ - | sed 's/^\(.*\).am$/touch \1.in/' \ - | sh - ;; - - bison|yacc) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if [ ! -f y.tab.h ]; then - echo >y.tab.h - fi - if [ ! -f y.tab.c ]; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex|flex) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if [ $# -ne 1 ]; then - eval LASTARG="\${$#}" - case "$LASTARG" in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if [ -f "$SRCFILE" ]; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if [ ! -f lex.yy.c ]; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - makeinfo) - echo 1>&2 "\ -WARNING: \`$1' is missing on your system. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` - if test -z "$file"; then - file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` - fi - touch $file - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and you do not seem to have it handy on your - system. You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequirements for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 diff --git a/mkinstalldirs b/mkinstalldirs deleted file mode 100644 index 46f45016a1..0000000000 --- a/mkinstalldirs +++ /dev/null @@ -1,40 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman -# Created: 1993-05-16 -# Public domain - -# $Id$ - -errstatus=0 - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case "$pathcomp" in - -* ) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" 1>&2 - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# mkinstalldirs ends here diff --git a/samples/Makefile.am b/samples/Makefile.am deleted file mode 100644 index d119098a49..0000000000 --- a/samples/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# The makefile for wxWindows samples: only one sample is always built, the -# minimal one, the other samples to build are determined at configure time -# because many of them require the library to have some features compiled into -# it) -# -# $Id$ - -SUBDIRS = minimal \ - @SAMPLES_SUBDIRS@ - -# do nothing during "make [un]install" in the samples subdirectory (can't -# override install because install-recursive is its dependency which is still -# built) -# -# this results in warnings from make about "overriding commands for garget -# install-recursive", but it's more than compensated by the time we gain by not -# entering/leaving all samples directories (but if somebody has a better -# solution it would be welcome!) -install-recursive: - @true - -uninstall-recursive: - @true - diff --git a/samples/bombs/.cvsignore b/samples/bombs/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/bombs/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/bombs/Makefile.am b/samples/bombs/Makefile.am deleted file mode 100644 index 2a2082de52..0000000000 --- a/samples/bombs/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = bombs - -bombs_SOURCES = bombs.cpp bombs1.cpp game.cpp diff --git a/samples/bombs/bombs.bmp b/samples/bombs/bombs.bmp deleted file mode 100644 index 0fffb1f4d39509c195f1f9d4eb0b46321b4eda22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 654 zcmZXRJ#xe_2!%;z3p$T)uw~AXKG#W2NflqoM@s2V`vH<=&pw0T@grI2`{(ad62Gip z=(FpGJn%rz7rCw`f{0leR$SC%-**x%MOq6F<%YX%%sUYW>OrHC5p z8m5q~*<4(6zfqnIdMW3ie*V}%-}v~izM;9>C=LrjCLqWJ1et&!6A)wqf=ob=jwQ*w z&QcQ?1q;)R8;$aqt~m4RX#Zr_^Zz4l@R7#Sx*ppMn8?;>>xe;n@H!%&#ka$*@1+bZ R6jYa5f4;HH-L7|fvKNE-S8V_Q diff --git a/samples/bombs/bombs.cpp b/samples/bombs/bombs.cpp deleted file mode 100644 index cdf7b8570d..0000000000 --- a/samples/bombs/bombs.cpp +++ /dev/null @@ -1,252 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: bombs.cpp -// Purpose: Bombs game -// Author: P. Foggia 1996 -// Modified by: -// Created: 1996 -// RCS-ID: $Id$ -// Copyright: (c) 1996 P. Foggia -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wxprec.h" - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif //precompiled headers - -#include "bombs.h" - -#include -#include - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "bombs.xpm" -#endif - -IMPLEMENT_APP(AppClass) - -// Called to initialize the program -bool AppClass::OnInit() -{ - srand((unsigned)time(NULL)); - - // Initialize all the top-level window members to NULL. - BombsFrame = NULL; - level=IDM_EASY; - - BombsFrame = - new BombsFrameClass(NULL, "wxBombs", wxPoint(155, 165), wxSize(300, 300), wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION); - - int xmax=BombsFrame->BombsCanvas->field_width*BombsFrame->BombsCanvas->x_cell*X_UNIT; - int ymax=BombsFrame->BombsCanvas->field_height*BombsFrame->BombsCanvas->y_cell*Y_UNIT; - BombsFrame->SetClientSize(xmax, ymax); - - return TRUE; -} - -BEGIN_EVENT_TABLE(BombsFrameClass, wxFrame) - EVT_MENU(IDM_EASY, BombsFrameClass::OnEasy) - EVT_MENU(IDM_MEDIUM, BombsFrameClass::OnMedium) - EVT_MENU(IDM_DIFFICULT, BombsFrameClass::OnDifficult) - EVT_MENU(IDM_EXIT, BombsFrameClass::OnExit) - EVT_MENU(IDM_ABOUT, BombsFrameClass::OnAbout) - EVT_MENU(IDM_RESTART, BombsFrameClass::OnRestart) - EVT_CLOSE(BombsFrameClass::OnCloseWindow) -END_EVENT_TABLE() - -BombsFrameClass::BombsFrameClass(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, long style): - wxFrame(parent, -1, title, pos, size, style) -{ - // Initialize child subwindow members. - BombsCanvas = NULL; - - SetIcon(wxICON(bombs)); - - CreateStatusBar(); - - // Create a menu bar for the frame - wxMenuBar *menuBar1 = new wxMenuBar; - wxMenu *menu1 = new wxMenu; - menu1->Append(IDM_EXIT, "E&xit"); // , "Quit the program"); - menu1->AppendSeparator(); - menu1->Append(IDM_ABOUT, "&About..."); // , "Infos on wxBombs"); - menuBar1->Append(menu1, "&File"); - wxMenu *menu2 = new wxMenu; - menu2->Append(IDM_RESTART, "&Restart"); // , "Clear the play field"); - menu2->AppendSeparator(); - menu2->Append(IDM_EASY, "&Easy", wxEmptyString, TRUE); // "10x10 play field", TRUE); - menu2->Append(IDM_MEDIUM, "&Medium", wxEmptyString, TRUE); // "15x15 play field", TRUE); - menu2->Append(IDM_DIFFICULT, "&Difficult", wxEmptyString, TRUE); // "25x20 play field", TRUE); - menuBar1->Append(menu2, "&Game"); - SetMenuBar(menuBar1); - menuBar=menuBar1; - menuBar->Check(wxGetApp().level, TRUE); - - // Create child subwindows. - BombsCanvas = new BombsCanvasClass(this); - - // Ensure the subwindows get resized o.k. -// OnSize(width, height); - - // Centre frame on the screen. - Centre(wxBOTH); - - // Show the frame. - Show(TRUE); -} - -BombsFrameClass::~BombsFrameClass(void) -{ -} - -void BombsFrameClass::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -void BombsFrameClass::OnExit(wxCommandEvent& event) -{ - this->Destroy(); -} - -void BombsFrameClass::OnRestart(wxCommandEvent& event) -{ - BombsCanvas->UpdateFieldSize(); - int xmax=BombsCanvas->field_width*BombsCanvas->x_cell*X_UNIT; - int ymax=BombsCanvas->field_height*BombsCanvas->y_cell*Y_UNIT; - wxGetApp().BombsFrame->SetClientSize(xmax, ymax); -} - -void BombsFrameClass::OnAbout(wxCommandEvent& event) -{ - wxMessageBox("wxBombs (c) 1996 by P. Foggia\n", "About wxBombs"); -} - -void BombsFrameClass::OnEasy(wxCommandEvent& event) -{ - menuBar->Check(wxGetApp().level, FALSE); - wxGetApp().level=IDM_EASY; - menuBar->Check(wxGetApp().level, TRUE); -} - -void BombsFrameClass::OnMedium(wxCommandEvent& event) -{ - menuBar->Check(wxGetApp().level, FALSE); - wxGetApp().level=IDM_MEDIUM; - menuBar->Check(wxGetApp().level, TRUE); -} - -void BombsFrameClass::OnDifficult(wxCommandEvent& event) -{ - menuBar->Check(wxGetApp().level, FALSE); - wxGetApp().level=IDM_DIFFICULT; - menuBar->Check(wxGetApp().level, TRUE); -} - -BEGIN_EVENT_TABLE(BombsCanvasClass, wxWindow) - EVT_PAINT(BombsCanvasClass::OnPaint) - EVT_MOUSE_EVENTS(BombsCanvasClass::OnEvent) -END_EVENT_TABLE() - -BombsCanvasClass::BombsCanvasClass(wxFrame *parent, const wxPoint& pos, const wxSize& size, long style): - wxWindow(parent, -1, pos, size, style) -{ - int sx, sy; - wxClientDC dc(this); - wxFont font= BOMBS_FONT; - dc.SetFont(font); - - long chw, chh; - char buf[]="M"; - - dc.GetTextExtent(buf, &chw, &chh); - dc.SetFont(wxNullFont); - - dc.SetMapMode(wxMM_METRIC); - - int xcm = dc.LogicalToDeviceX(10.0); - int ycm = dc.LogicalToDeviceY(10.0); - // To have a square cell, there must be : - // sx*ycm == sy*xcm - if (chw*ycm < chh*xcm) - { sy=chh; - sx=chh*xcm/ycm; - } - else - { sx=chw; - sy=chw*ycm/xcm; - } - x_cell = (sx+3+X_UNIT)/X_UNIT; - y_cell = (sy+3+Y_UNIT)/Y_UNIT; - dc.SetMapMode(wxMM_TEXT); - bmp=NULL; - UpdateFieldSize(); -} - -BombsCanvasClass::~BombsCanvasClass(void) -{ - if (bmp) - delete bmp; -} - -// Called when canvas needs to be repainted. -void BombsCanvasClass::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - // Insert your drawing code here. - if (!bmp) - { bmp=new wxBitmap(field_width*x_cell*X_UNIT+1, - field_height*y_cell*Y_UNIT+1); - if (bmp) - { wxMemoryDC memDC; - memDC.SelectObject(* bmp); - DrawField(&memDC, 0, 0, field_width-1, field_height-1); - memDC.SelectObject(wxNullBitmap); - } - } - if (bmp) - { wxMemoryDC memDC; - memDC.SelectObject(* bmp); - dc.Blit(0, 0, field_width*x_cell*X_UNIT+1, - field_height*y_cell*Y_UNIT+1, - &memDC, 0, 0, wxCOPY); - memDC.SelectObject(wxNullBitmap); - } - else - DrawField(& dc, 0, 0, field_width-1, field_height-1); -} - -// Updates the field size depending on wxGetApp().level and -// redraws the canvas -void BombsCanvasClass::UpdateFieldSize() - { field_width=20; - field_height=20; - - switch(wxGetApp().level) - { case IDM_EASY: - field_width=10; - field_height=10; - break; - case IDM_MEDIUM: - field_width=15; - field_height=15; - break; - case IDM_DIFFICULT: - field_width=25; - field_height=20; - break; - } - wxGetApp().Game.Init(field_width, field_height); - - if (bmp) - delete bmp; - bmp=NULL; - - wxWindow::Refresh(); - } diff --git a/samples/bombs/bombs.def b/samples/bombs/bombs.def deleted file mode 100644 index a0dc76486d..0000000000 --- a/samples/bombs/bombs.def +++ /dev/null @@ -1,14 +0,0 @@ -; bombs -; Generated by wxBuilder -; -NAME bombsapp -DESCRIPTION 'A wxWindows application' -; -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -; -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -; -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/bombs/bombs.h b/samples/bombs/bombs.h deleted file mode 100644 index 9684acac88..0000000000 --- a/samples/bombs/bombs.h +++ /dev/null @@ -1,119 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: bombs.h -// Purpose: Bombs game -// Author: P. Foggia 1996 -// Modified by: -// Created: 1996 -// RCS-ID: $Id$ -// Copyright: (c) 1996 P. Foggia -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _INC_BOMBS_H -#define _INC_BOMBS_H - -#include "game.h" - -/* - * Forward declarations of all top-level window classes. - */ -class BombsFrameClass; -class AboutFrameClass; - -/* - * Class representing the entire Application - */ -class AppClass: public wxApp -{ - public: - BombsFrameClass *BombsFrame; - int level; - BombsGame Game; - - bool OnInit(); -}; - -DECLARE_APP(AppClass) - -class BombsCanvasClass; - -class BombsFrameClass: public wxFrame -{ - private: - protected: - public: - // Subwindows for reference within the program. - BombsCanvasClass *BombsCanvas; - wxMenuBar *menuBar; - - // Constructor and destructor - BombsFrameClass(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, long style); - ~BombsFrameClass(void); - - void OnCloseWindow(wxCloseEvent& event); - void OnExit(wxCommandEvent& event); - void OnRestart(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnEasy(wxCommandEvent& event); - void OnMedium(wxCommandEvent& event); - void OnDifficult(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -/* Menu identifiers - */ -// File -#define BOMBSFRAMECLASS_FILE 1 -// E&xit -#define IDM_EXIT 2 -// About... -#define IDM_ABOUT 3 -// Game -#define BOMBSFRAMECLASS_GAME 4 -// &Restart -#define IDM_RESTART 5 -// &Easy -#define IDM_EASY 6 -// &Medium -#define IDM_MEDIUM 7 -// &Difficult -#define IDM_DIFFICULT 8 - -class BombsCanvasClass: public wxWindow -{ - private: - protected: - public: - int field_width, field_height; - int x_cell, y_cell; - wxBitmap *bmp; - // Constructor and destructor - BombsCanvasClass(wxFrame *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0); - ~BombsCanvasClass(void); - - void OnPaint(wxPaintEvent& event); - void DrawField(wxDC *, int xc1, int yc1, int xc2, int yc2); - void Refresh(int xc1, int yc1, int xc2, int yc2); - void OnEvent(wxMouseEvent& event); - void UpdateFieldSize(); - -DECLARE_EVENT_TABLE() -}; - -/* Menu identifiers - */ - -/* The following sizes should probably be redefined */ -/* dimensions of a scroll unit, in pixels */ -#define X_UNIT 4 -#define Y_UNIT 4 - -/* the dimensions of a cell, in scroll units are in - * BombsCanvasClass::x_cell and y_cell - */ - -#define BOMBS_FONT wxFont(14, wxROMAN, wxNORMAL, wxNORMAL) - -#endif /* mutual exclusion */ - diff --git a/samples/bombs/bombs.ico b/samples/bombs/bombs.ico deleted file mode 100644 index 249893a7e33a18bb18f6ad44ae319b6a3c494693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmaKqJ#xe#429*8nW*z_lXhL^2Q%UD5`81i7Te>5k1T34$PM-A;LO&RR$i%lS zCvkkgh`gge-~z93l2=9%!}lD96OUO{j7*`)zVA3nh?L?p$mdH8nw6F8Kzj~4<{Aqb zRcBSXzeb9v!K|(-A~lk$tx>OsM}j_tvr*f>7tlX;|F2fia<(4q8Uq=?Kn5_70SsgS z0~x?T1~8C@IgD|fxptrj%yiRF)Wf~IlId4Nx#2zE|KHt)-Q8$X&&M_vOk^vhHF%@5 z+jWb$mb@MIcwb7xoST6ulo2foK|iU0rr diff --git a/samples/bombs/bombs.rc b/samples/bombs/bombs.rc deleted file mode 100644 index 9b852ccc9f..0000000000 --- a/samples/bombs/bombs.rc +++ /dev/null @@ -1,3 +0,0 @@ -bombs ICON "bombs.ico" - -#include "wx/msw/wx.rc" diff --git a/samples/bombs/bombs.xpm b/samples/bombs/bombs.xpm deleted file mode 100644 index 9708aeaee5..0000000000 --- a/samples/bombs/bombs.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *bombs_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 6 1", -" c Black", -". c Blue", -"X c #00bf00", -"o c Red", -"O c Yellow", -"+ c Gray100", -/* pixels */ -" ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" " -}; diff --git a/samples/bombs/bombs1.cpp b/samples/bombs/bombs1.cpp deleted file mode 100644 index 9215dd6978..0000000000 --- a/samples/bombs/bombs1.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: bombs1.cpp -// Purpose: Bombs game -// Author: P. Foggia 1996 -// Modified by: -// Created: 1996 -// RCS-ID: $Id$ -// Copyright: (c) 1996 P. Foggia -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* - * implementation of the methods DrawField and OnEvent of the - * class BombsCanvas - */ - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wxprec.h" - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif //precompiled headers - -#include "bombs.h" - -/*-------- BombCanvasClass::DrawField(dc, xc1, yc1, xc2, yc2) -------*/ -/* Draws the field on the device context dc */ -/* xc1,yc1 etc. are the (inclusive) limits of the area to be drawn, */ -/* expressed in cells. */ -/*---------------------------------------------------------------------*/ -void BombsCanvasClass::DrawField(wxDC *dc, int xc1, int yc1, int xc2, int yc2) -{ int x,y,xmax,ymax; - char buf[2]; - long chw, chh; - - wxColour *wxBlack = wxTheColourDatabase->FindColour("BLACK"); - wxColour *wxWhite = wxTheColourDatabase->FindColour("WHITE"); - wxColour *wxRed = wxTheColourDatabase->FindColour("RED"); - wxColour *wxBlue = wxTheColourDatabase->FindColour("BLUE"); - wxColour *wxGrey = wxTheColourDatabase->FindColour("LIGHT GREY"); - wxColour *wxGreen = wxTheColourDatabase->FindColour("GREEN"); - - wxPen *blackPen = wxThePenList->FindOrCreatePen(*wxBlack, 1, wxSOLID); - wxPen *redPen = wxThePenList->FindOrCreatePen(*wxRed, 1, wxSOLID); - wxPen *bluePen = wxThePenList->FindOrCreatePen(*wxBlue, 1, wxSOLID); - wxBrush *whiteBrush = wxTheBrushList->FindOrCreateBrush(*wxWhite, wxSOLID); - wxBrush *greyBrush = wxTheBrushList->FindOrCreateBrush(*wxGrey, wxSOLID); - wxBrush *redBrush = wxTheBrushList->FindOrCreateBrush(*wxRed, wxSOLID); - - xmax=field_width*x_cell*X_UNIT; - ymax=field_height*y_cell*Y_UNIT; - - - dc->SetPen(* blackPen); - for(x=xc1; x<=xc2; x++) - dc->DrawLine(x*x_cell*X_UNIT, 0, x*x_cell*X_UNIT, ymax); - for(y=xc1; y<=yc2; y++) - dc->DrawLine(0, y*y_cell*Y_UNIT, xmax, y*y_cell*Y_UNIT); - - - wxFont font= BOMBS_FONT; - dc->SetFont(font); - - buf[1]='\0'; - for(x=xc1; x<=xc2; x++) - for(y=yc1; y<=yc2; y++) - { if (wxGetApp().Game.IsMarked(x,y)) - { dc->SetPen(* blackPen); - dc->SetBrush(* greyBrush); - dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT, - x_cell*X_UNIT+1, y_cell*Y_UNIT+1); - *buf='M'; - if (!wxGetApp().Game.IsHidden(x,y) && wxGetApp().Game.IsBomb(x,y)) - dc->SetTextForeground(*wxBlue); - else - dc->SetTextForeground(*wxRed); - dc->SetTextBackground(*wxGrey); - dc->GetTextExtent(buf, &chw, &chh); - dc->DrawText( buf, - x*x_cell*X_UNIT + (x_cell*X_UNIT-chw)/2, - y*y_cell*Y_UNIT + (y_cell*Y_UNIT-chh)/2 - ); - if (!wxGetApp().Game.IsHidden(x,y) && wxGetApp().Game.IsBomb(x,y)) - { dc->SetPen(*redPen); - dc->DrawLine(x*x_cell*X_UNIT, y*y_cell*Y_UNIT, - (x+1)*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT); - dc->DrawLine(x*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT, - (x+1)*x_cell*X_UNIT, y*y_cell*Y_UNIT); - } - } - else if (wxGetApp().Game.IsHidden(x,y)) - { dc->SetPen(*blackPen); - dc->SetBrush(*greyBrush); - dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT, - x_cell*X_UNIT+1, y_cell*Y_UNIT+1); - } - else if (wxGetApp().Game.IsBomb(x,y)) - { dc->SetPen(* blackPen); - dc->SetBrush(* redBrush); - dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT, - x_cell*X_UNIT+1, y_cell*Y_UNIT+1); - *buf='B'; - dc->SetTextForeground(* wxBlack); - dc->SetTextBackground(* wxRed); - dc->GetTextExtent(buf, &chw, &chh); - dc->DrawText( buf, - x*x_cell*X_UNIT + (x_cell*X_UNIT-chw)/2, - y*y_cell*Y_UNIT + (y_cell*Y_UNIT-chh)/2 - ); - if (wxGetApp().Game.IsExploded(x,y)) - { dc->SetPen(* bluePen); - dc->DrawLine(x*x_cell*X_UNIT, y*y_cell*Y_UNIT, - (x+1)*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT); - dc->DrawLine(x*x_cell*X_UNIT, (y+1)*y_cell*Y_UNIT, - (x+1)*x_cell*X_UNIT, y*y_cell*Y_UNIT); - } - } - else // Display a digit - { dc->SetPen(* blackPen); - dc->SetBrush(* whiteBrush); - dc->DrawRectangle( x*x_cell*X_UNIT, y*y_cell*Y_UNIT, - x_cell*X_UNIT+1, y_cell*Y_UNIT+1); - *buf = (wxGetApp().Game.Get(x,y) & BG_MASK) + '0'; - dc->GetTextExtent(buf, &chw, &chh); - switch(*buf) - { case '0': dc->SetTextForeground(* wxGreen); break; - case '1': dc->SetTextForeground(* wxBlue); break; - default: dc->SetTextForeground(* wxBlack); break; - } - dc->SetTextBackground(* wxWhite); - dc->DrawText( buf, - x*x_cell*X_UNIT + (x_cell*X_UNIT-chw)/2, - y*y_cell*Y_UNIT + (y_cell*Y_UNIT-chh)/2 - ); - } - } - dc->SetFont(wxNullFont); - - if (wxGetApp().BombsFrame) - { char buf[80]; - sprintf(buf, "%d bombs %d remaining cells", - wxGetApp().Game.GetBombs(), wxGetApp().Game.GetRemainingCells()); - wxGetApp().BombsFrame->SetStatusText(buf, 0); - } -} - -/*-------- BombCanvasClass::Refresh(xc1, yc1, xc2, yc2) -------------*/ -/* Refreshes the field image */ -/* xc1,yc1 etc. are the (inclusive) limits of the area to be drawn, */ -/* expressed in cells. */ -/*---------------------------------------------------------------------*/ -void BombsCanvasClass::Refresh(int xc1, int yc1, int xc2, int yc2) - { - wxClientDC dc(this); - DrawField(& dc, xc1, yc1, xc2, yc2); - if (bmp) - { wxMemoryDC memDC; - memDC.SelectObject(* bmp); - DrawField(&memDC, xc1, yc1, xc2, yc2); - memDC.SelectObject(wxNullBitmap); - } - } - -// Called when the canvas receives a mouse event. -void BombsCanvasClass::OnEvent(wxMouseEvent& event) -{ - long fx, fy; - event.Position(&fx, &fy); - int x = fx/(x_cell*X_UNIT); - int y = fy/(y_cell*Y_UNIT); - if (x -#include - -#define PROB 0.2 - -#ifndef RAND_MAX -#define RAND_MAX INT_MAX -#endif - - -/*-------------------- BombsGame::~BombsGame() ---------------------*/ -/*--------------------------------------------------------------------*/ -BombsGame::~BombsGame() - { if (field) - free(field); - } - -/*------------------ int BombsGame::Init(width,height) -------------------*/ -/* Initialize the play field. Returns 0 on failure */ -/*--------------------------------------------------------------------------*/ -int BombsGame::Init(int aWidth, int aHeight) - { int x, y; - int xx, yy; - - if (field) - free(field); - field=(short *)malloc(aWidth*aHeight*sizeof(short)); - if (!field) - { width=height=0; - return 0; - } - width=aWidth; - height=aHeight; - - for(x=0; x=0 && xx=0 && yy - -class BombsGame - { protected: - int width,height; - short *field; - int bombs,normal_cells; - public: - BombsGame() { width=height=0; field=NULL; }; - ~BombsGame(); - int Init(int width, int height); - int GetWidth() { return width; }; - int GetHeight() { return height; }; - int Get(int x, int y) { return field[x+y*width]; }; - void Mark(int x, int y); - void Unhide(int x, int y); - void Explode(int x, int y); - int IsHidden(int x, int y) { return Get(x,y) & BG_HIDDEN; }; - int IsMarked(int x, int y) { return Get(x,y) & BG_MARKED; }; - int IsBomb(int x, int y) { return Get(x,y) & BG_BOMB; }; - int IsExploded(int x, int y) { return Get(x,y) & BG_EXPLODED; }; - int GetBombs() { return bombs; }; - int GetRemainingCells() { return normal_cells; }; - }; - -#endif /* def GAME_H */ - diff --git a/samples/bombs/makefile.b32 b/samples/bombs/makefile.b32 deleted file mode 100644 index 563f61f3b9..0000000000 --- a/samples/bombs/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=bombs -OBJECTS = $(TARGET).obj bombs1.obj game.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/bombs/makefile.bcc b/samples/bombs/makefile.bcc deleted file mode 100644 index 38896fc477..0000000000 --- a/samples/bombs/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=bombs -OBJECTS=$(TARGET).obj bombs1.obj game.obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/bombs/makefile.dos b/samples/bombs/makefile.dos deleted file mode 100644 index ff40632c83..0000000000 --- a/samples/bombs/makefile.dos +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=bombs -OBJECTS=dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\ - winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/bombs/makefile.g95 b/samples/bombs/makefile.g95 deleted file mode 100644 index 43119df900..0000000000 --- a/samples/bombs/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=bombs -OBJECTS = $(TARGET).o bombs1.o game.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/bombs/makefile.unx b/samples/bombs/makefile.unx deleted file mode 100644 index 118dabbfd4..0000000000 --- a/samples/bombs/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for bombs example (UNIX). - -PROGRAM=bombs - -OBJECTS = bombs.o bombs1.o game.o - -include ../../src/makeprog.env - diff --git a/samples/bombs/makefile.vc b/samples/bombs/makefile.vc deleted file mode 100644 index 06a647f524..0000000000 --- a/samples/bombs/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=bombs -OBJECTS = $(PROGRAM).obj bombs1.obj game.obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/bombs/makefile.wat b/samples/bombs/makefile.wat deleted file mode 100644 index 08562fa92a..0000000000 --- a/samples/bombs/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = bombs -OBJECTS = $(PROGRAM).obj bombs1.obj game.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/bombs/readme.txt b/samples/bombs/readme.txt deleted file mode 100644 index 4e6e8dad66..0000000000 --- a/samples/bombs/readme.txt +++ /dev/null @@ -1,78 +0,0 @@ - wxWin Bombs - by Pasquale Foggia - -1. The aim of the program -wxWin Bombs is the wxWin implementation of the minesweeper game you find -under MSWindows 3.1+. Later the rules of the game will be explained for -the lucky ones of you that have never used Windows. - -2. Installation -If you are reading this file, I suppose you have succesfully unpacked the -files in a directory of your hard disk :-). You should already have -installed wxWin on your system. -Now you have to modify makefile.bcc -(if a Windows user) or makefile.unx (if you use a real OS) setting the -proper values for the directories. Finally, you have to run: - make -f makefile.bcc -for Windows (nmake if you use a MicroSoft compiler), or: - make -f makefile.unx xview -for Unix+xview and - make -f makefile.unx motif -for Unix+motif - -If you are lucky, you will find the bombs executable, ready to be run. - -3. Test -Bombs has been tested under the following platforms: - PC + MSWindos 3.1 + wxWin 1.60 + Borland C 3.1 - Sun SPARCstation 20 + SunOS + xview + wxWin 1.63 + gcc 2.3.3 -and all seems to work fine. - -4. The author -This program has been developed by Pasquale Foggia, a PhD student -in Computer Engineering at the "Federico II" University of Naples, Italy. -You can contacting him using the following address: - foggia@amalfi.dis.unina.it - -5. Disclaimer -This program is freeware. You can do everything you want with it, including -copying and modifying, without the need of a permission from the author. -On the other hand, this program is provided AS IS, with NO KIND OF WARRANTY. -The author will be in NO CASE responsible for damages directly or indirectly -caused by this program. Use it AT YOUR OWN RISK, or don't use it at all. - -6. The rules of the game -Your aim is to discover all the bombs in a mined field. If you click with -the left mouse button on a cell containing a bomb, your game ends. -Otherwise, the number of bombs in the 8 neighbour cells will be displayed. -When you have clicked all the cells without a bomb, you win. -You can also use the right button (or left button+shift) to mark a cell -you think hides a bomb, in order to not click it accidentally. - -7. Concluding remarks -I hope someone of you will enjoy this program. However, I enjoyed writing -it (thanks to Julian Smart and all the other wxWin developers). -In the near future I plan to implement under wxWin the great 'empire' -(is there someone that still remember it?), IMHO one of the most addictive -strategy games. If someone is interested, please contact me by e-mail. -I beg you pardon for my approximative english. - - Pasquale Foggia - foggia@amalfi.dis.unina.it - - ------- -A note from Julian Smart: Many thanks to Pasquale for the contribution. -I've taken the liberty of making a few changes. - -1) I've made the status line have a single field so that you -can see the 'cells remaining' message properly. - -2) I've changed the title from "wxWin Bombs" (which, as a statement, -is an unfortunate reflection of the reality of earlier versions of -wxWindows :-)) to wxBombs. - -3) Added SetClientData to resize the window on Restart; eliminated -scrollbars; made the frame unresizeable. - -4) Added makefile.dos for VC++ 1.x, makefile.wat for Watcom C++. \ No newline at end of file diff --git a/samples/caret/.cvsignore b/samples/caret/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/caret/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/caret/Makefile.am b/samples/caret/Makefile.am deleted file mode 100644 index 19b3639e67..0000000000 --- a/samples/caret/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = caret - -caret_SOURCES = caret.cpp diff --git a/samples/caret/caret.cpp b/samples/caret/caret.cpp deleted file mode 100644 index 3f41e9b3ac..0000000000 --- a/samples/caret/caret.cpp +++ /dev/null @@ -1,390 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: caret.cpp -// Purpose: wxCaret sample -// Author: Robert Roebling -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "caret.cpp" - #pragma interface "caret.cpp" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// for all others, include the necessary headers (this file is usually all you -// need because it includes almost all - - #include -#endif - -#include "wx/caret.h" - -// ---------------------------------------------------------------------------- -// ressources -// ---------------------------------------------------------------------------- -// the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.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); - -private: - // any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -// MyCanvas is a canvas on which you can type -class MyCanvas: public wxScrolledWindow -{ -public: - MyCanvas() { } - MyCanvas( wxWindow *parent ); - ~MyCanvas(); - - char& CharAt(int x, int y) { return *(m_text + x + m_xChars * y); } - - // caret movement - void Home() { m_xCaret = 0; } - void End() { m_xCaret = m_xChars - 1; } - void FirstLine() { m_yCaret = 0; } - void LastLine() { m_yCaret = m_yChars - 1; } - void PrevChar() { if ( !m_xCaret-- ) { End(); PrevLine(); } } - void NextChar() { if ( ++m_xCaret == m_xChars ) { Home(); NextLine(); } } - void PrevLine() { if ( !m_yCaret-- ) LastLine(); } - void NextLine() { if ( ++m_yCaret == m_yChars ) FirstLine(); } - - // event handlers - void OnPaint( wxPaintEvent &event ); - void OnSize( wxSizeEvent &event ); - void OnChar( wxKeyEvent &event ); - -private: - wxCaret m_caret; - wxFont m_font; - - // the margin around the text (looks nicer) - int m_xMargin, m_yMargin; - - // size (in pixels) of one character - long m_widthChar, m_heightChar; - - // position (in text coords) of the caret - int m_xCaret, m_yCaret; - - // the size (in text coords) of the window - int m_xChars, m_yChars; - - // the text - char *m_text; - - DECLARE_DYNAMIC_CLASS(MyCanvas) - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// IDs for the controls and the menu commands -enum -{ - // menu items - Minimal_Quit = 1, - Minimal_About, - Minimal_Test1, - Minimal_Test2, - - // controls start here (the numbers are, of course, arbitrary) - Minimal_Text = 1000, -}; - -// ---------------------------------------------------------------------------- -// event tables and other macros for wxWindows -// ---------------------------------------------------------------------------- - -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. It can be also done at run-time, but for the -// simple menu events like this the static method is much simpler. -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(Minimal_Quit, MyFrame::OnQuit) - EVT_MENU(Minimal_About, MyFrame::OnAbout) -END_EVENT_TABLE() - -// Create a new application object: this macro will allow wxWindows to create -// the application object during program execution (it's better than using a -// static object for many reasons) and also declares the accessor function -// wxGetApp() which will return the reference of the right type (i.e. MyApp and -// not wxApp) -IMPLEMENT_APP(MyApp) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// the application class -// ---------------------------------------------------------------------------- - -// `Main program' equivalent: the program execution "starts" here -bool MyApp::OnInit() -{ - // Create the main application window - MyFrame *frame = new MyFrame("Minimal wxWindows App", - wxPoint(50, 50), wxSize(450, 340)); - - // Show it and tell the application that it's our main window - // @@@ what does it do exactly, in fact? is it necessary here? - frame->Show(TRUE); - SetTopWindow(frame); - - // success: wxApp::OnRun() will be called which will enter the main message - // loop and the application will run. If we returned FALSE here, the - // application would exit immediately. - return TRUE; -} - -// ---------------------------------------------------------------------------- -// main frame -// ---------------------------------------------------------------------------- - -// frame constructor -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - // set the frame icon - SetIcon(wxICON(mondrian)); - - // create a menu bar - wxMenu *menuFile = new wxMenu; - - menuFile->Append(Minimal_About, "&About...\tCtrl-A", "Show about dialog"); - menuFile->AppendSeparator(); - menuFile->Append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - (void) new MyCanvas( this ); - - // create a status bar just for fun (by default with 1 pane only) - CreateStatusBar(2); - SetStatusText("Welcome to wxWindows!"); -} - - -// 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 minimal sample.\n") - _T("Welcome to %s") -#ifdef wxBETA_NUMBER - _T(" (beta %d)!") -#endif // wxBETA_NUMBER - , wxVERSION_STRING -#ifdef wxBETA_NUMBER - , wxBETA_NUMBER -#endif // wxBETA_NUMBER - ); - - wxMessageBox(msg, "About Minimal", wxOK | wxICON_INFORMATION, this); -} - - -// ---------------------------------------------------------------------------- -// MyCanvas -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow) - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) - EVT_SIZE(MyCanvas::OnSize) - EVT_CHAR(MyCanvas::OnChar) -END_EVENT_TABLE() - -MyCanvas::MyCanvas( wxWindow *parent ) - : wxScrolledWindow( parent, -1, - wxDefaultPosition, wxDefaultSize, - wxSUNKEN_BORDER ) -{ - m_text = (char *)NULL; - - SetBackgroundColour(* wxWHITE); - - m_font = *wxNORMAL_FONT; - - wxClientDC dc(this); - dc.SetFont( m_font ); - m_heightChar = dc.GetCharHeight(); - m_widthChar = dc.GetCharWidth(); - - m_caret.Create( this, m_widthChar, m_heightChar ); - - m_xCaret = m_yCaret = - m_xChars = m_yChars = 0; - - m_xMargin = m_yMargin = 5; - m_caret.Move(m_xMargin, m_yMargin); - m_caret.Show(); -} - -MyCanvas::~MyCanvas() -{ - free(m_text); -} - -void MyCanvas::OnSize( wxSizeEvent &event ) -{ - m_xChars = (event.GetSize().x - 2*m_xMargin) / m_widthChar; - m_yChars = (event.GetSize().y - 2*m_yMargin) / m_heightChar; - if ( !m_xChars ) - m_xChars = 1; - if ( !m_yChars ) - m_yChars = 1; - - free(m_text); - m_text = (char *)calloc(m_xChars * m_yChars, sizeof(char)); - - wxString msg; - msg.Printf("Panel size is (%d, %d)", m_xChars, m_yChars); - - ((wxFrame *)GetParent())->SetStatusText(msg, 1); - - event.Skip(); -} - -void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - wxPaintDC dc( this ); - PrepareDC( dc ); - - dc.SetFont( m_font ); - - for ( int y = 0; y < m_yChars; y++ ) - { - wxString line; - - for ( int x = 0; x < m_xChars; x++ ) - { - char ch = CharAt(x, y); - if ( !ch ) - ch = ' '; - line += ch; - } - - dc.DrawText( line, m_xMargin, m_yMargin + y * m_heightChar ); - } -} - -void MyCanvas::OnChar( wxKeyEvent &event ) -{ - switch ( event.KeyCode() ) - { - case WXK_LEFT: - PrevChar(); - break; - - case WXK_RIGHT: - NextChar(); - break; - - case WXK_UP: - PrevLine(); - break; - - case WXK_DOWN: - NextLine(); - break; - - case WXK_HOME: - Home(); - break; - - case WXK_END: - End(); - break; - - case WXK_RETURN: - Home(); - NextLine(); - break; - - default: - if ( isprint(event.KeyCode()) ) - { - CharAt(m_xCaret, m_yCaret) = (char)event.KeyCode(); - NextChar(); - } - else - { - // don't refresh - return; - } - } - - wxLogStatus("Caret is at (%d, %d)", m_xCaret, m_yCaret); - - m_caret.Move(m_xMargin + m_xCaret * m_widthChar, - m_yMargin + m_yCaret * m_heightChar); - - Refresh(); -} - diff --git a/samples/caret/caret.def b/samples/caret/caret.def deleted file mode 100644 index 276cb67e1b..0000000000 --- a/samples/caret/caret.def +++ /dev/null @@ -1,7 +0,0 @@ -NAME Caret -DESCRIPTION 'Caret wxWindows application' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/caret/caret.rc b/samples/caret/caret.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/caret/caret.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/caret/makefile.b32 b/samples/caret/makefile.b32 deleted file mode 100644 index 79ed3ebb90..0000000000 --- a/samples/caret/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=caret -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/caret/makefile.bcc b/samples/caret/makefile.bcc deleted file mode 100644 index 8849c0a542..0000000000 --- a/samples/caret/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=caret -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/caret/makefile.dos b/samples/caret/makefile.dos deleted file mode 100644 index 170747a6a1..0000000000 --- a/samples/caret/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=caret -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/caret/makefile.g95 b/samples/caret/makefile.g95 deleted file mode 100644 index 32f1406e2f..0000000000 --- a/samples/caret/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=caret -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/caret/makefile.twn b/samples/caret/makefile.twn deleted file mode 100644 index cd75a73860..0000000000 --- a/samples/caret/makefile.twn +++ /dev/null @@ -1,43 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile for caret example (UNIX). - -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/maketwin.env - -OBJECTS = $(OBJDIR)/caret.$(OBJSUFF) $(OBJDIR)/caret_resources.$(OBJSUFF) - -all: $(OBJDIR) caret$(GUISUFFIX)$(EXESUFF) - -wx: - -$(OBJDIR): - mkdir $(OBJDIR) - -caret$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o caret$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) - -$(OBJDIR)/caret.$(OBJSUFF): caret.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ caret.$(SRCSUFF) - -caret_resources.c: caret.rc - $(RESCOMP) $(RCINPUTSWITCH) caret.rc $(RCOUTPUTSWITCH) caret_resources.c $(RESFLAGS) - -$(OBJDIR)/caret_resources.$(OBJSUFF): caret_resources.c - $(CC) -c $(CPPFLAGS) -o $@ caret_resources.c - -#$(OBJDIR)/caret_resources.o: caret.rc -# $(RESCOMP) $(RCINPUTSWITCH) caret.rc $(RCOUTPUTSWITCH) $(OBJDIR)/caret_resources.o $(RESFLAGS) - -clean: - rm -f $(OBJECTS) caret$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/caret/makefile.unx b/samples/caret/makefile.unx deleted file mode 100644 index e7897f65e8..0000000000 --- a/samples/caret/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for caret example (UNIX). - -PROGRAM=caret - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/caret/makefile.vc b/samples/caret/makefile.vc deleted file mode 100644 index 3fedef300c..0000000000 --- a/samples/caret/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=caret -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/caret/makefile.wat b/samples/caret/makefile.wat deleted file mode 100644 index a234176792..0000000000 --- a/samples/caret/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = caret -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/caret/mondrian.xpm b/samples/caret/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/caret/mondrian.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *mondrian_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 6 1", -" c Black", -". c Blue", -"X c #00bf00", -"o c Red", -"O c Yellow", -"+ c Gray100", -/* pixels */ -" ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" " -}; diff --git a/samples/checklst/.cvsignore b/samples/checklst/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/checklst/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/checklst/Makefile.am b/samples/checklst/Makefile.am deleted file mode 100644 index c4685a68fa..0000000000 --- a/samples/checklst/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = checklst - -checklst_SOURCES = checklst.cpp diff --git a/samples/checklst/checklst.cpp b/samples/checklst/checklst.cpp deleted file mode 100644 index 48af69d393..0000000000 --- a/samples/checklst/checklst.cpp +++ /dev/null @@ -1,261 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: wxCheckListBox sample -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - //#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#ifdef __WXMSW__ - #include "wx/ownerdrw.h" -#endif - -#include "wx/log.h" - -#include "wx/menuitem.h" -#include "wx/checklst.h" - -// Define a new application type -class CheckListBoxApp: public wxApp -{ -public: - bool OnInit(); -}; - -// Define a new frame type -class CheckListBoxFrame : public wxFrame -{ -public: - // ctor & dtor - CheckListBoxFrame(wxFrame *frame, const char *title, - int x, int y, int w, int h); - ~CheckListBoxFrame(); - - // notifications - void OnQuit (wxCommandEvent& event); - void OnAbout (wxCommandEvent& event); - void OnListboxSelect (wxCommandEvent& event); - void OnCheckboxToggle (wxCommandEvent& event); - void OnListboxDblClick(wxCommandEvent& event); - void OnButtonUp (wxCommandEvent& event); - void OnButtonDown (wxCommandEvent& event); - -private: - void OnButtonMove(bool up); - - wxCheckListBox *m_pListBox; - - DECLARE_EVENT_TABLE() -}; - -enum -{ - Menu_Quit = 1, - Control_First = 1000, - Control_Listbox, - Btn_Up, - Btn_Down -}; - -BEGIN_EVENT_TABLE(CheckListBoxFrame, wxFrame) - EVT_MENU(Menu_Quit, CheckListBoxFrame::OnQuit) - - EVT_LISTBOX(Control_Listbox, CheckListBoxFrame::OnListboxSelect) - EVT_CHECKLISTBOX(Control_Listbox, CheckListBoxFrame::OnCheckboxToggle) - EVT_LISTBOX_DCLICK(Control_Listbox, CheckListBoxFrame::OnListboxDblClick) - - EVT_BUTTON(Btn_Up, CheckListBoxFrame::OnButtonUp) - EVT_BUTTON(Btn_Down, CheckListBoxFrame::OnButtonDown) -END_EVENT_TABLE() - -IMPLEMENT_APP(CheckListBoxApp); - -// init our app: create windows -bool CheckListBoxApp::OnInit(void) -{ - CheckListBoxFrame *pFrame = new CheckListBoxFrame - ( - NULL, - "wxWindows Checklistbox Sample", - 50, 50, 480, 320 - ); - SetTopWindow(pFrame); - - return TRUE; -} - -// main frame constructor -CheckListBoxFrame::CheckListBoxFrame(wxFrame *frame, - const char *title, - int x, int y, int w, int h) -: wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - // create the status line - const int widths[] = { -1, 60 }; - CreateStatusBar(2); - SetStatusWidths(2, widths); - wxLogStatus(this, "no selection"); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - // construct submenu - file_menu->Append(Menu_Quit, "E&xit"); - - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - SetMenuBar(menu_bar); - - // make a panel with some controls - wxPanel *panel = new wxPanel(this, -1, wxPoint(0, 0), - wxSize(400, 200), wxTAB_TRAVERSAL); - - // check list box - static const char* aszChoices[] = - { - "Zeroth", - "First", "Second", "Third", - "Fourth", "Fifth", "Sixth", - "Seventh", "Eighth", "Nineth" - }; - - wxString *astrChoices = new wxString[WXSIZEOF(aszChoices)]; - unsigned int ui; - for ( ui = 0; ui < WXSIZEOF(aszChoices); ui++ ) - astrChoices[ui] = aszChoices[ui]; - - m_pListBox = new wxCheckListBox - ( - panel, // parent - Control_Listbox, // control id - wxPoint(10, 10), // listbox poistion - wxSize(400, 100), // listbox size - WXSIZEOF(aszChoices), // number of strings - astrChoices // array of strings - ); - - //m_pListBox->SetBackgroundColour(*wxGREEN); - - delete [] astrChoices; - - // not implemented in other ports yet -#ifdef __WXMSW__ - // set grey background for every second entry - for ( ui = 0; ui < WXSIZEOF(aszChoices); ui += 2 ) { - m_pListBox->GetItem(ui)->SetBackgroundColour(wxColor(200, 200, 200)); - } -#endif // wxGTK - - m_pListBox->Check(2); - - // create buttons for moving the items around - (void)new wxButton(panel, Btn_Up, " &Up ", wxPoint(420, 90)); - (void)new wxButton(panel, Btn_Down, "&Down", wxPoint(420, 120)); - - Show(TRUE); -} - -CheckListBoxFrame::~CheckListBoxFrame() -{ -} - -void CheckListBoxFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void CheckListBoxFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageBox("Demo of wxCheckListBox control\n" - "© Vadim Zeitlin 1998-1999", - "About wxCheckListBox", - wxICON_INFORMATION, this); -} - -void CheckListBoxFrame::OnListboxSelect(wxCommandEvent& event) -{ - int nSel = event.GetSelection(); - wxLogStatus(this, "item %d selected (%schecked)", nSel, - m_pListBox->IsChecked(nSel) ? "" : "not "); -} - -void CheckListBoxFrame::OnListboxDblClick(wxCommandEvent& WXUNUSED(event)) -{ - wxString strSelection; - strSelection.sprintf("item %d double clicked", m_pListBox->GetSelection()); - wxMessageDialog dialog(this, strSelection); - dialog.ShowModal(); -} - -void CheckListBoxFrame::OnCheckboxToggle(wxCommandEvent& event) -{ - unsigned int nItem = event.GetInt(); - - wxLogStatus(this, "item %d was %schecked", nItem, - m_pListBox->IsChecked(nItem) ? "" : "un"); -} - -void CheckListBoxFrame::OnButtonUp(wxCommandEvent& WXUNUSED(event)) -{ - OnButtonMove(TRUE); -} - -void CheckListBoxFrame::OnButtonDown(wxCommandEvent& WXUNUSED(event)) -{ - OnButtonMove(FALSE); -} - -void CheckListBoxFrame::OnButtonMove(bool up) -{ - int selection = m_pListBox->GetSelection(); - if ( selection != -1 ) - { - wxString label = m_pListBox->GetString(selection); - - int positionNew = up ? selection - 1 : selection + 2; - if ( positionNew < 0 || positionNew > m_pListBox->Number() ) - { - wxLogStatus(this, "Can't move this item %s", up ? "up" : "down"); - } - else - { - bool wasChecked = m_pListBox->IsChecked(selection); - - int positionOld = up ? selection + 1 : selection; - - // insert the item - m_pListBox->InsertItems(1, &label, positionNew); - - // and delete the old one - m_pListBox->Delete(positionOld); - - int selectionNew = up ? positionNew : positionNew - 1; - m_pListBox->Check(selectionNew, wasChecked); - m_pListBox->SetSelection(selectionNew); - - wxLogStatus(this, "Item moved %s", up ? "up" : "down"); - } - } - else - { - wxLogStatus(this, "Please select an item"); - } -} diff --git a/samples/checklst/checklst.def b/samples/checklst/checklst.def deleted file mode 100644 index 57c46fbcb1..0000000000 --- a/samples/checklst/checklst.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME CHECKLST -DESCRIPTION 'wxCheckListBox sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/checklst/checklst.rc b/samples/checklst/checklst.rc deleted file mode 100644 index b86c4e2265..0000000000 --- a/samples/checklst/checklst.rc +++ /dev/null @@ -1 +0,0 @@ -#include "wx/msw/wx.rc" diff --git a/samples/checklst/makefile.b32 b/samples/checklst/makefile.b32 deleted file mode 100644 index a6a52a7bbc..0000000000 --- a/samples/checklst/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=checklst -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/checklst/makefile.dos b/samples/checklst/makefile.dos deleted file mode 100644 index 78232aa571..0000000000 --- a/samples/checklst/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=checklst -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/checklst/makefile.g95 b/samples/checklst/makefile.g95 deleted file mode 100644 index 26a281f945..0000000000 --- a/samples/checklst/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=checklst -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/checklst/makefile.vc b/samples/checklst/makefile.vc deleted file mode 100644 index 63fb5dce8d..0000000000 --- a/samples/checklst/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=checklst -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/checklst/makefile.wat b/samples/checklst/makefile.wat deleted file mode 100644 index 1e219417b0..0000000000 --- a/samples/checklst/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = checklst -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/checklst/mondrian.xpm b/samples/checklst/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/checklst/mondrian.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *mondrian_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 6 1", -" c Black", -". c Blue", -"X c #00bf00", -"o c Red", -"O c Yellow", -"+ c Gray100", -/* pixels */ -" ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" " -}; diff --git a/samples/config/.cvsignore b/samples/config/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/config/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/config/Makefile.am b/samples/config/Makefile.am deleted file mode 100644 index 5685546e93..0000000000 --- a/samples/config/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = conftest - -conftest_SOURCES = conftest.cpp diff --git a/samples/config/conftest.cpp b/samples/config/conftest.cpp deleted file mode 100644 index b5ed3c607f..0000000000 --- a/samples/config/conftest.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: conftest.cpp -// Purpose: demo of wxConfig and related classes -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.08.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/wxprec.h" - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif //precompiled headers - -#include "wx/log.h" -#include "wx/config.h" - -// ---------------------------------------------------------------------------- -// classes -// ---------------------------------------------------------------------------- -class MyApp: public wxApp -{ -public: - // implement base class virtuals - virtual bool OnInit(); - virtual int OnExit(); -}; - -class MyFrame: public wxFrame -{ -public: - MyFrame(); - virtual ~MyFrame(); - - // callbacks - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnDelete(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - -private: - wxTextCtrl *m_text; - wxCheckBox *m_check; - - DECLARE_EVENT_TABLE() -}; - -enum -{ - Minimal_Quit, - Minimal_About, - Minimal_Delete -}; - -// ---------------------------------------------------------------------------- -// event tables -// ---------------------------------------------------------------------------- -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(Minimal_Quit, MyFrame::OnQuit) - EVT_MENU(Minimal_About, MyFrame::OnAbout) - EVT_MENU(Minimal_Delete, MyFrame::OnDelete) - EVT_CLOSE(MyFrame::OnCloseWindow) -END_EVENT_TABLE() - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// application -// ---------------------------------------------------------------------------- -IMPLEMENT_APP(MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit() -{ - // we're using wxConfig's "create-on-demand" feature: it will create the - // config object when it's used for the first time. It has a number of - // advantages compared with explicitly creating our wxConfig: - // 1) we don't pay for it if we don't use it - // 2) there is no danger to create it twice - - // application and vendor name are used by wxConfig to construct the name - // of the config file/registry key and must be set before the first call - // to Get() if you want to override the default values (the application - // name is the name of the executable and the vendor name is the same) - SetVendorName("wxWindows"); - SetAppName("conftest"); // not needed, it's the default value - - wxConfigBase *pConfig = wxConfigBase::Get(); - - // or you could also write something like this: - // wxFileConfig *pConfig = new wxFileConfig("conftest"); - // wxConfigBase::Set(pConfig); - // where you can also specify the file names explicitly if you wish. - // Of course, calling Set() is optional and you only must do it if - // you want to later retrieve this pointer with Get(). - - // create the main program window - MyFrame *frame = new MyFrame; - frame->Show(TRUE); - SetTopWindow(frame); - - // use our config object... - if ( pConfig->Read("/Controls/Check", 1l) != 0 ) { - wxMessageBox("You can disable this message box by unchecking\n" - "the checkbox in the main window (of course, a real\n" - "program would have a checkbox right here but we\n" - "keep it simple)", "Welcome to wxConfig demo", - wxICON_INFORMATION | wxOK); - } - - return TRUE; -} - -int MyApp::OnExit() -{ - // clean up: Set() returns the active config object as Get() does, but unlike - // Get() it doesn't try to create one if there is none (definitely not what - // we want here!) - delete wxConfigBase::Set((wxConfigBase *) NULL); - - return 0; -} - -// ---------------------------------------------------------------------------- -// frame -// ---------------------------------------------------------------------------- - -// main frame ctor -MyFrame::MyFrame() - : wxFrame((wxFrame *) NULL, -1, "wxConfig Demo") -{ - // menu - wxMenu *file_menu = new wxMenu; - - file_menu->Append(Minimal_Delete, "&Delete", "Delete config file"); - file_menu->AppendSeparator(); - file_menu->Append(Minimal_About, "&About", "About this sample"); - file_menu->AppendSeparator(); - file_menu->Append(Minimal_Quit, "E&xit", "Exit the program"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - SetMenuBar(menu_bar); - - CreateStatusBar(); - - // child controls - wxPanel *panel = new wxPanel(this); - (void)new wxStaticText(panel, -1, "These controls remember their values!", - wxPoint(10, 10), wxSize(300, 20)); - m_text = new wxTextCtrl(panel, -1, "", wxPoint(10, 40), wxSize(300, 20)); - m_check = new wxCheckBox(panel, -1, "show welcome message box at startup", - wxPoint(10, 70), wxSize(300, 20)); - - // restore the control's values from the config - - // NB: in this program, the config object is already created at this moment - // because we had called Get() from MyApp::OnInit(). However, if you later - // change the code and don't create it before this line, it won't break - // anything - unlike if you manually create wxConfig object with Create() - // or in any other way (then you must be sure to create it before using it!). - wxConfigBase *pConfig = wxConfigBase::Get(); - - // we could write Read("/Controls/Text") as well, it's just to show SetPath() - pConfig->SetPath("/Controls"); - - m_text->SetValue(pConfig->Read("Text", "")); - m_check->SetValue(pConfig->Read("Check", 1l) != 0); - - // SetPath() understands ".." - pConfig->SetPath("../MainFrame"); - - // restore frame position and size - int x = pConfig->Read("x", 50), - y = pConfig->Read("y", 50), - w = pConfig->Read("w", 350), - h = pConfig->Read("h", 200); - Move(x, y); - SetClientSize(w, h); -} - -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -void MyFrame::OnQuit(wxCommandEvent&) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent&) -{ - wxMessageBox("wxConfig demo\n© Vadim Zeitlin 1998", "About", - wxICON_INFORMATION | wxOK); -} - -void MyFrame::OnDelete(wxCommandEvent&) -{ - if ( wxConfigBase::Get()->DeleteAll() ) { - wxLogMessage("Config file/registry key successfully deleted."); - - delete wxConfigBase::Set((wxConfigBase *) NULL); - wxConfigBase::DontCreateOnDemand(); - } - else - { - wxLogError("Deleting config file/registry key failed."); - } -} - -MyFrame::~MyFrame() -{ - // save the control's values to the config - wxConfigBase *pConfig = wxConfigBase::Get(); - if ( pConfig == NULL ) - return; - pConfig->Write("/Controls/Text", m_text->GetValue()); - pConfig->Write("/Controls/Check", m_check->GetValue()); - - // save the frame position - int x, y, w, h; - GetClientSize(&w, &h); - GetPosition(&x, &y); - pConfig->Write("/MainFrame/x", (long) x); - pConfig->Write("/MainFrame/y", (long) y); - pConfig->Write("/MainFrame/w", (long) w); - pConfig->Write("/MainFrame/h", (long) h); -} diff --git a/samples/config/conftest.def b/samples/config/conftest.def deleted file mode 100644 index 5db07c48eb..0000000000 --- a/samples/config/conftest.def +++ /dev/null @@ -1,7 +0,0 @@ -NAME Conftest -DESCRIPTION 'wxWindows Config Sample' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/config/conftest.rc b/samples/config/conftest.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/config/conftest.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/config/makefile.b32 b/samples/config/makefile.b32 deleted file mode 100644 index b9da57631c..0000000000 --- a/samples/config/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=conftest -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/config/makefile.bcc b/samples/config/makefile.bcc deleted file mode 100644 index 965ba0dd46..0000000000 --- a/samples/config/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=conftest -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/config/makefile.dos b/samples/config/makefile.dos deleted file mode 100644 index 0a87032b82..0000000000 --- a/samples/config/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=conftest -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/config/makefile.g95 b/samples/config/makefile.g95 deleted file mode 100644 index 02cba35c7f..0000000000 --- a/samples/config/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=conftest -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/config/makefile.unx b/samples/config/makefile.unx deleted file mode 100644 index 892ffd1f30..0000000000 --- a/samples/config/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for config example (UNIX). - -PROGRAM=conftest - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/config/makefile.vc b/samples/config/makefile.vc deleted file mode 100644 index de60e4e620..0000000000 --- a/samples/config/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=conftest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/config/makefile.wat b/samples/config/makefile.wat deleted file mode 100644 index 5d7f4c3530..0000000000 --- a/samples/config/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = conftest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/controls/.cvsignore b/samples/controls/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/controls/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/controls/Makefile.am b/samples/controls/Makefile.am deleted file mode 100644 index cd93c6b4d7..0000000000 --- a/samples/controls/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = controls - -controls_SOURCES = controls.cpp diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp deleted file mode 100644 index a88d9e49f4..0000000000 --- a/samples/controls/controls.cpp +++ /dev/null @@ -1,896 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: controls.cpp -// Purpose: Controls wxWindows sample -// Author: Robert Roebling -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling, Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "controls.h" -#endif - -// 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/spinbutt.h" -#include "wx/notebook.h" -#include "wx/imaglist.h" - -#if wxUSE_TOOLTIPS - #include "wx/tooltip.h" -#endif - -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #define USE_XPM -#endif - -#ifdef USE_XPM - #include "mondrian.xpm" - #include "icons/choice.xpm" - #include "icons/combo.xpm" - #include "icons/list.xpm" - #include "icons/radio.xpm" - #include "icons/text.xpm" - #include "icons/gauge.xpm" -#endif - -#ifdef __WIN16__ - // Win16 doesn't have them - #undef wxUSE_SPINBUTTON - #define wxUSE_SPINBUTTON 0 -#endif // __WIN16__ - -#include "wx/progdlg.h" - -//---------------------------------------------------------------------- -// class definitions -//---------------------------------------------------------------------- - -class MyApp: public wxApp -{ -public: - bool OnInit(); -}; - -class MyPanel: public wxPanel -{ -public: - MyPanel(wxFrame *frame, int x, int y, int w, int h); - virtual ~MyPanel(); - - void OnSize( wxSizeEvent& event ); - void OnListBox( wxCommandEvent &event ); - void OnListBoxDoubleClick( wxCommandEvent &event ); - void OnListBoxButtons( wxCommandEvent &event ); - void OnChoice( wxCommandEvent &event ); - void OnChoiceButtons( wxCommandEvent &event ); - void OnCombo( wxCommandEvent &event ); - void OnComboButtons( wxCommandEvent &event ); - void OnRadio( wxCommandEvent &event ); - void OnRadioButtons( wxCommandEvent &event ); - void OnSetFont( wxCommandEvent &event ); - void OnPageChanged( wxNotebookEvent &event ); - void OnPageChanging( wxNotebookEvent &event ); - void OnSliderUpdate( wxCommandEvent &event ); -#ifndef wxUSE_SPINBUTTON - void OnSpinUpdate( wxSpinEvent &event ); - void OnUpdateShowProgress( wxUpdateUIEvent& event ); - void OnShowProgress( wxCommandEvent &event ); -#endif // wxUSE_SPINBUTTON - - wxListBox *m_listbox; - wxChoice *m_choice; - wxComboBox *m_combo; - wxRadioBox *m_radio; - wxGauge *m_gauge; - wxSlider *m_slider; - wxButton *m_fontButton; - wxButton *m_lbSelectNum; - wxButton *m_lbSelectThis; -#ifndef wxUSE_SPINBUTTON - wxSpinButton *m_spinbutton; - wxButton *m_btnProgress; -#endif - wxTextCtrl *m_spintext; - wxCheckBox *m_checkbox; - - wxTextCtrl *m_text; - wxNotebook *m_notebook; - -private: - DECLARE_EVENT_TABLE() -}; - -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); -#if wxUSE_TOOLTIPS - void OnSetTooltipDelay(wxCommandEvent& event); - void OnToggleTooltips(wxCommandEvent& event); -#endif // wxUSE_TOOLTIPS - void OnIdle( wxIdleEvent& event ); - void OnSize( wxSizeEvent& event ); - -private: - DECLARE_EVENT_TABLE() -}; - -//---------------------------------------------------------------------- -// main() -//---------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//---------------------------------------------------------------------- -// MyApp -//---------------------------------------------------------------------- - -enum -{ - MINIMAL_QUIT = 100, - MINIMAL_TEXT, - MINIMAL_ABOUT, - - // tooltip menu - MINIMAL_SET_TOOLTIP_DELAY = 200, - MINIMAL_ENABLE_TOOLTIPS -}; - -bool MyApp::OnInit() -{ - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, - "Controls wxWindows App", - 50, 50, 530, 420); - - // Give it an icon - // The wxICON() macros loads an icon from a resource under Windows - // and uses an #included XPM image under GTK+ and Motif - - frame->SetIcon( wxICON(mondrian) ); - - wxMenu *file_menu = new wxMenu; - file_menu->Append(MINIMAL_ABOUT, "&About\tF1"); - file_menu->Append(MINIMAL_QUIT, "E&xit\tAlt-X", "Quit controls sample"); - - wxMenuBar *menu_bar = new wxMenuBar( wxMB_DOCKABLE ); - menu_bar->Append(file_menu, "&File"); - -#if wxUSE_TOOLTIPS - wxMenu *tooltip_menu = new wxMenu; - tooltip_menu->Append(MINIMAL_SET_TOOLTIP_DELAY, "Set &delay\tCtrl-D"); - tooltip_menu->AppendSeparator(); - tooltip_menu->Append(MINIMAL_ENABLE_TOOLTIPS, "&Toggle tooltips\tCrtl-T", - "enable/disable tooltips", TRUE); - tooltip_menu->Check(MINIMAL_ENABLE_TOOLTIPS, TRUE); - menu_bar->Append(tooltip_menu, "&Tooltips"); -#endif // wxUSE_TOOLTIPS - - frame->SetMenuBar(menu_bar); - - frame->Show(TRUE); - frame->SetCursor(wxCursor(wxCURSOR_HAND)); - - SetTopWindow(frame); - - return TRUE; -} - -//---------------------------------------------------------------------- -// MyPanel -//---------------------------------------------------------------------- - -const int ID_NOTEBOOK = 1000; - -const int ID_LISTBOX = 130; -const int ID_LISTBOX_SEL_NUM = 131; -const int ID_LISTBOX_SEL_STR = 132; -const int ID_LISTBOX_CLEAR = 133; -const int ID_LISTBOX_APPEND = 134; -const int ID_LISTBOX_DELETE = 135; -const int ID_LISTBOX_FONT = 136; -const int ID_LISTBOX_ENABLE = 137; - -const int ID_CHOICE = 120; -const int ID_CHOICE_SEL_NUM = 121; -const int ID_CHOICE_SEL_STR = 122; -const int ID_CHOICE_CLEAR = 123; -const int ID_CHOICE_APPEND = 124; -const int ID_CHOICE_DELETE = 125; -const int ID_CHOICE_FONT = 126; -const int ID_CHOICE_ENABLE = 127; - -const int ID_COMBO = 140; -const int ID_COMBO_SEL_NUM = 141; -const int ID_COMBO_SEL_STR = 142; -const int ID_COMBO_CLEAR = 143; -const int ID_COMBO_APPEND = 144; -const int ID_COMBO_DELETE = 145; -const int ID_COMBO_FONT = 146; -const int ID_COMBO_ENABLE = 147; - -const int ID_RADIOBOX = 160; -const int ID_RADIOBOX_SEL_NUM = 161; -const int ID_RADIOBOX_SEL_STR = 162; -const int ID_RADIOBOX_FONT = 163; -const int ID_RADIOBOX_ENABLE = 164; - -const int ID_RADIOBUTTON_1 = 166; -const int ID_RADIOBUTTON_2 = 167; - -const int ID_SET_FONT = 170; - -const int ID_GAUGE = 180; -const int ID_SLIDER = 181; - -const int ID_SPIN = 182; -const int ID_BTNPROGRESS = 183; - -BEGIN_EVENT_TABLE(MyPanel, wxPanel) -EVT_SIZE ( MyPanel::OnSize) -EVT_NOTEBOOK_PAGE_CHANGING(ID_NOTEBOOK, MyPanel::OnPageChanging) -EVT_NOTEBOOK_PAGE_CHANGED(ID_NOTEBOOK, MyPanel::OnPageChanged) -EVT_LISTBOX (ID_LISTBOX, MyPanel::OnListBox) -EVT_LISTBOX_DCLICK(ID_LISTBOX, MyPanel::OnListBoxDoubleClick) -EVT_BUTTON (ID_LISTBOX_SEL_NUM, MyPanel::OnListBoxButtons) -EVT_BUTTON (ID_LISTBOX_SEL_STR, MyPanel::OnListBoxButtons) -EVT_BUTTON (ID_LISTBOX_CLEAR, MyPanel::OnListBoxButtons) -EVT_BUTTON (ID_LISTBOX_APPEND, MyPanel::OnListBoxButtons) -EVT_BUTTON (ID_LISTBOX_DELETE, MyPanel::OnListBoxButtons) -EVT_BUTTON (ID_LISTBOX_FONT, MyPanel::OnListBoxButtons) -EVT_CHECKBOX (ID_LISTBOX_ENABLE, MyPanel::OnListBoxButtons) -EVT_CHOICE (ID_CHOICE, MyPanel::OnChoice) -EVT_BUTTON (ID_CHOICE_SEL_NUM, MyPanel::OnChoiceButtons) -EVT_BUTTON (ID_CHOICE_SEL_STR, MyPanel::OnChoiceButtons) -EVT_BUTTON (ID_CHOICE_CLEAR, MyPanel::OnChoiceButtons) -EVT_BUTTON (ID_CHOICE_APPEND, MyPanel::OnChoiceButtons) -EVT_BUTTON (ID_CHOICE_DELETE, MyPanel::OnChoiceButtons) -EVT_BUTTON (ID_CHOICE_FONT, MyPanel::OnChoiceButtons) -EVT_CHECKBOX (ID_CHOICE_ENABLE, MyPanel::OnChoiceButtons) -EVT_COMBOBOX (ID_COMBO, MyPanel::OnCombo) -EVT_BUTTON (ID_COMBO_SEL_NUM, MyPanel::OnComboButtons) -EVT_BUTTON (ID_COMBO_SEL_STR, MyPanel::OnComboButtons) -EVT_BUTTON (ID_COMBO_CLEAR, MyPanel::OnComboButtons) -EVT_BUTTON (ID_COMBO_APPEND, MyPanel::OnComboButtons) -EVT_BUTTON (ID_COMBO_DELETE, MyPanel::OnComboButtons) -EVT_BUTTON (ID_COMBO_FONT, MyPanel::OnComboButtons) -EVT_CHECKBOX (ID_COMBO_ENABLE, MyPanel::OnComboButtons) -EVT_RADIOBOX (ID_RADIOBOX, MyPanel::OnRadio) -EVT_BUTTON (ID_RADIOBOX_SEL_NUM, MyPanel::OnRadioButtons) -EVT_BUTTON (ID_RADIOBOX_SEL_STR, MyPanel::OnRadioButtons) -EVT_BUTTON (ID_RADIOBOX_FONT, MyPanel::OnRadioButtons) -EVT_CHECKBOX (ID_RADIOBOX_ENABLE, MyPanel::OnRadioButtons) -EVT_BUTTON (ID_SET_FONT, MyPanel::OnSetFont) -EVT_SLIDER (ID_SLIDER, MyPanel::OnSliderUpdate) -#ifndef wxUSE_SPINBUTTON -EVT_SPIN (ID_SPIN, MyPanel::OnSpinUpdate) -EVT_UPDATE_UI (ID_BTNPROGRESS, MyPanel::OnUpdateShowProgress) -EVT_BUTTON (ID_BTNPROGRESS, MyPanel::OnShowProgress) -#endif -END_EVENT_TABLE() - -MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) - : wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ), - m_text(NULL), m_notebook(NULL) -{ - // SetBackgroundColour("cadet blue"); - - m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE ); - // m_text->SetBackgroundColour("wheat"); - - delete wxLog::SetActiveTarget(new wxLogStderr); - - m_notebook = new wxNotebook( this, ID_NOTEBOOK, wxPoint(0,0), wxSize(200,150) ); - - wxString choices[] = - { - "This", - "is one of my", - "really", - "wonderful", - "examples." - }; - -#ifdef USE_XPM - // image ids - enum - { - Image_List, Image_Choice, Image_Combo, Image_Text, Image_Radio, Image_Gauge, Image_Max - }; - - // fill the image list - wxImageList *imagelist = new wxImageList(32, 32); - - imagelist-> Add( wxBitmap( list_xpm )); - imagelist-> Add( wxBitmap( choice_xpm )); - imagelist-> Add( wxBitmap( combo_xpm )); - imagelist-> Add( wxBitmap( text_xpm )); - imagelist-> Add( wxBitmap( radio_xpm )); - imagelist-> Add( wxBitmap( gauge_xpm )); - m_notebook->SetImageList(imagelist); -#elif defined(__WXMSW__) - // load images from resources - enum - { - Image_List, Image_Choice, Image_Combo, Image_Text, Image_Radio, Image_Gauge, Image_Max - }; - wxImageList *imagelist = new wxImageList(16, 16, FALSE, Image_Max); - - static const char *s_iconNames[Image_Max] = - { - "list", "choice", "combo", "text", "radio", "gauge" - }; - - for ( size_t n = 0; n < Image_Max; n++ ) - { - wxBitmap bmp(s_iconNames[n]); - if ( !bmp.Ok() || (imagelist->Add(bmp) == -1) ) - { - wxLogWarning("Couldn't load the image '%s' for the notebook page %d.", - s_iconNames[n], n); - } - } - - m_notebook->SetImageList(imagelist); -#else - - // No images for now -#define Image_List -1 -#define Image_Choice -1 -#define Image_Combo -1 -#define Image_Text -1 -#define Image_Radio -1 -#define Image_Gauge -1 -#define Image_Max -1 - -#endif - - wxButton *button = (wxButton*) NULL; /* who did this ? */ - wxPanel *panel = (wxPanel*) NULL; - - panel = new wxPanel(m_notebook); - m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 5, choices, wxLB_ALWAYS_SB ); - m_listbox->SetCursor(*wxCROSS_CURSOR); -#if wxUSE_TOOLTIPS - m_listbox->SetToolTip( "This is a list box" ); -#endif // wxUSE_TOOLTIPS - - m_lbSelectNum = new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) ); - m_lbSelectThis = new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) ); - (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) ); - (void)new wxButton( panel, ID_LISTBOX_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) ); - button = new wxButton( panel, ID_LISTBOX_FONT, "Set &Italic font", wxPoint(340,130), wxSize(140,30) ); -#if wxUSE_TOOLTIPS - button->SetToolTip( "Press here to set italic font" ); -#endif // wxUSE_TOOLTIPS - - m_checkbox = new wxCheckBox( panel, ID_LISTBOX_ENABLE, "&Disable", wxPoint(20,130), wxSize(-1, -1), wxALIGN_RIGHT ); - m_checkbox->SetValue(FALSE); -#if wxUSE_TOOLTIPS - m_checkbox->SetToolTip( "Click here to disable the listbox" ); -#endif // wxUSE_TOOLTIPS - m_notebook->AddPage(panel, "wxListBox", TRUE, Image_List); - - panel = new wxPanel(m_notebook); - m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 5, choices ); - m_choice->SetBackgroundColour( "red" ); - (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) ); - (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) ); - (void)new wxButton( panel, ID_CHOICE_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) ); - (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) ); - (void)new wxCheckBox( panel, ID_CHOICE_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) ); - m_notebook->AddPage(panel, "wxChoice", FALSE, Image_Choice); - - panel = new wxPanel(m_notebook); - m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(120,-1), 5, choices, wxCB_READONLY ); - (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) ); - (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) ); - (void)new wxButton( panel, ID_COMBO_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) ); - (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) ); - (void)new wxCheckBox( panel, ID_COMBO_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) ); - m_notebook->AddPage(panel, "wxComboBox", FALSE, Image_Combo); - - wxString choices2[] = - { - "First", "Second", - /* "Third", - "Fourth", "Fifth", "Sixth", - "Seventh", "Eighth", "Nineth", "Tenth" */ - }; - - panel = new wxPanel(m_notebook); - (void)new wxRadioBox( panel, ID_RADIOBOX, "That", wxPoint(10,160), wxSize(-1,-1), WXSIZEOF(choices2), choices2, 1, wxRA_SPECIFY_ROWS ); - m_radio = new wxRadioBox( panel, ID_RADIOBOX, "This", wxPoint(10,10), wxSize(-1,-1), WXSIZEOF(choices), choices, 1, wxRA_SPECIFY_COLS ); - (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(180,80), wxSize(140,30) ); - m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(340,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(340,80), wxSize(140,30) ); - (void)new wxCheckBox( panel, ID_RADIOBOX_ENABLE, "Disable", wxPoint(340,130), wxSize(140,30) ); - wxRadioButton *rb = new wxRadioButton( panel, ID_RADIOBUTTON_1, "Radiobutton1", wxPoint(210,170), wxSize(110,30) ); - rb->SetValue( FALSE ); - (void)new wxRadioButton( panel, ID_RADIOBUTTON_2, "Radiobutton2", wxPoint(340,170), wxSize(110,30) ); - m_notebook->AddPage(panel, "wxRadioBox", FALSE, Image_Radio); - - panel = new wxPanel(m_notebook); - (void)new wxStaticBox( panel, -1, "wxGauge and wxSlider", wxPoint(10,10), wxSize(180,130) ); - m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30) ); - m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1), wxSL_LABELS ); - (void)new wxStaticBox( panel, -1, "Explanation", wxPoint(200,10), wxSize(290,130) ); -#ifdef __WXMOTIF__ - // No wrapping text in wxStaticText yet :-( - (void)new wxStaticText( panel, -1, - "Drag the slider!", - wxPoint(208,30), - wxSize(210, -1) - ); -#else - (void)new wxStaticText( panel, -1, - "In order see the gauge (aka progress bar)\n" - "control do something you have to drag the\n" - "handle of the slider to the right.\n" - "\n" - "This is also supposed to demonstrate how\n" - "to use static controls.\n", - wxPoint(208,25), - wxSize(250, 110) - ); -#endif - m_spintext = new wxTextCtrl( panel, -1, "0", wxPoint(20,160), wxSize(80,-1) ); -#ifndef wxUSE_SPINBUTTON - m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,159), wxSize(-1,-1) ); - m_spinbutton->SetRange(-10,30); - m_spinbutton->SetValue(-5); - - m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, "Show progress dialog", - wxPoint(208, 159) ); -#endif - m_notebook->AddPage(panel, "wxGauge", FALSE, Image_Gauge); -} - -void MyPanel::OnSize( wxSizeEvent& WXUNUSED(event) ) -{ - int x = 0; - int y = 0; - GetClientSize( &x, &y ); - - if (m_notebook) m_notebook->SetSize( 2, 2, x-4, y*2/3-4 ); - if (m_text) m_text->SetSize( 2, y*2/3+2, x-4, y/3-4 ); -} - -void MyPanel::OnPageChanging( wxNotebookEvent &event ) -{ - int selNew = event.GetSelection(), - selOld = event.GetOldSelection(); - if ( selOld == 2 && selNew == 4 ) - { - wxMessageBox("This demonstrates how a program may prevent the " - "page change from taking place - the current page will " - "stay the third one", "Conntrol sample", - wxICON_INFORMATION | wxOK); - - event.Veto(); - } - else - { - *m_text << "Notebook selection is being changed from " - << selOld << " to " << selNew << "\n"; - } -} - -void MyPanel::OnPageChanged( wxNotebookEvent &event ) -{ - *m_text << "Notebook selection is " << event.GetSelection() << "\n"; -} - -void MyPanel::OnListBox( wxCommandEvent &event ) -{ - m_text->AppendText( "ListBox event selection string is: " ); - m_text->AppendText( event.GetString() ); - m_text->AppendText( "\n" ); - m_text->AppendText( "ListBox control selection string is: " ); - m_text->AppendText( m_listbox->GetStringSelection() ); - m_text->AppendText( "\n" ); -} - -void MyPanel::OnListBoxDoubleClick( wxCommandEvent &event ) -{ - m_text->AppendText( "ListBox double click string is: " ); - m_text->AppendText( event.GetString() ); - m_text->AppendText( "\n" ); -} - -void MyPanel::OnListBoxButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_LISTBOX_ENABLE: - { - m_text->AppendText("Checkbox clicked.\n"); - wxCheckBox *cb = (wxCheckBox*)event.GetEventObject(); -#if wxUSE_TOOLTIPS - if (event.GetInt()) - cb->SetToolTip( "Click to enable listbox" ); - else - cb->SetToolTip( "Click to disable listbox" ); -#endif // wxUSE_TOOLTIPS - m_listbox->Enable( event.GetInt() == 0 ); - break; - } - case ID_LISTBOX_SEL_NUM: - { - m_listbox->SetSelection( 2 ); - m_lbSelectThis->WarpPointer( 40, 14 ); - break; - } - case ID_LISTBOX_SEL_STR: - { - m_listbox->SetStringSelection( "This" ); - m_lbSelectNum->WarpPointer( 40, 14 ); - break; - } - case ID_LISTBOX_CLEAR: - { - m_listbox->Clear(); - break; - } - case ID_LISTBOX_APPEND: - { - m_listbox->Append( "Hi!" ); - break; - } - case ID_LISTBOX_DELETE: - { - int idx = m_listbox->GetSelection(); - m_listbox->Delete( idx ); - break; - } - case ID_LISTBOX_FONT: - { - m_listbox->SetFont( *wxITALIC_FONT ); - m_checkbox->SetFont( *wxITALIC_FONT ); - break; - } - } -} - -void MyPanel::OnChoice( wxCommandEvent &event ) -{ - m_text->AppendText( "Choice event selection string is: " ); - m_text->AppendText( event.GetString() ); - m_text->AppendText( "\n" ); - m_text->AppendText( "Choice control selection string is: " ); - m_text->AppendText( m_choice->GetStringSelection() ); - m_text->AppendText( "\n" ); -} - -void MyPanel::OnChoiceButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_CHOICE_ENABLE: - { - m_choice->Enable( event.GetInt() == 0 ); - break; - } - case ID_CHOICE_SEL_NUM: - { - m_choice->SetSelection( 2 ); - break; - } - case ID_CHOICE_SEL_STR: - { - m_choice->SetStringSelection( "This" ); - break; - } - case ID_CHOICE_CLEAR: - { - m_choice->Clear(); - break; - } - case ID_CHOICE_APPEND: - { - m_choice->Append( "Hi!" ); - break; - } - case ID_CHOICE_DELETE: - { - int idx = m_choice->GetSelection(); - m_choice->Delete( idx ); - break; - } - case ID_CHOICE_FONT: - { - m_choice->SetFont( *wxITALIC_FONT ); - break; - } - } -} - -void MyPanel::OnCombo( wxCommandEvent &event ) -{ - m_text->AppendText( "ComboBox event selection string is: " ); - m_text->AppendText( event.GetString() ); - m_text->AppendText( "\n" ); - m_text->AppendText( "ComboBox control selection string is: " ); - m_text->AppendText( m_combo->GetStringSelection() ); - m_text->AppendText( "\n" ); -} - -void MyPanel::OnComboButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_COMBO_ENABLE: - { - m_combo->Enable( event.GetInt() == 0 ); - break; - } - case ID_COMBO_SEL_NUM: - { - m_combo->SetSelection( 2 ); - break; - } - case ID_COMBO_SEL_STR: - { - m_combo->SetStringSelection( "This" ); - break; - } - case ID_COMBO_CLEAR: - { - m_combo->Clear(); - break; - } - case ID_COMBO_APPEND: - { - m_combo->Append( "Hi!" ); - break; - } - case ID_COMBO_DELETE: - { - int idx = m_combo->GetSelection(); - m_combo->Delete( idx ); - break; - } - case ID_COMBO_FONT: - { - m_combo->SetFont( *wxITALIC_FONT ); - break; - } - } -} - -void MyPanel::OnRadio( wxCommandEvent &event ) -{ - m_text->AppendText( "RadioBox selection string is: " ); - m_text->AppendText( event.GetString() ); - m_text->AppendText( "\n" ); -} - -void MyPanel::OnRadioButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_RADIOBOX_ENABLE: - { - m_radio->Enable( event.GetInt() == 0 ); - break; - } - case ID_RADIOBOX_SEL_NUM: - { - m_radio->SetSelection( 2 ); - break; - } - case ID_RADIOBOX_SEL_STR: - { - m_radio->SetStringSelection( "This" ); - break; - } - case ID_RADIOBOX_FONT: - { - m_radio->SetFont( *wxITALIC_FONT ); - break; - } - } -} - -void MyPanel::OnSetFont( wxCommandEvent &WXUNUSED(event) ) -{ - m_fontButton->SetFont( *wxITALIC_FONT ); - m_text->SetFont( *wxITALIC_FONT ); -} - -void MyPanel::OnSliderUpdate( wxCommandEvent &WXUNUSED(event) ) -{ - m_gauge->SetValue( m_slider->GetValue() ); -} - -#ifndef wxUSE_SPINBUTTON -void MyPanel::OnSpinUpdate( wxSpinEvent &event ) -{ - wxString value; - value.Printf( _T("%d"), event.GetPosition() ); - m_spintext->SetValue( value ); - - value.Printf( _T("Spin control range: (%d, %d), current = %d\n"), - m_spinbutton->GetMin(), m_spinbutton->GetMax(), - m_spinbutton->GetValue()); - - m_text->AppendText(value); -} - -void MyPanel::OnUpdateShowProgress( wxUpdateUIEvent& event ) -{ - event.Enable( m_spinbutton->GetValue() > 0 ); -} - -void MyPanel::OnShowProgress( wxCommandEvent& WXUNUSED(event) ) -{ - int max = m_spinbutton->GetValue(); - wxProgressDialog dialog("Progress dialog example", - "An informative message", - max, // range - this, // parent - wxPD_CAN_ABORT | wxPD_APP_MODAL); - - - bool cont = TRUE; - for ( int i = 0; i < max && cont; i++ ) - { - wxSleep(1); - if ( i == max - 1 ) - { - cont = dialog.Update(i, "That's all, folks!"); - } - else if ( i == max / 2 ) - { - cont = dialog.Update(i, "Only a half left!"); - } - else - { - cont = dialog.Update(i); - } - } - - if ( !cont ) - { - *m_text << "Progress dialog aborted!\n"; - } - else - { - *m_text << "Countdown from " << max << " finished.\n"; - } -} - -#endif // wxUSE_SPINBUTTON - -MyPanel::~MyPanel() -{ - delete m_notebook->GetImageList(); -} - -//---------------------------------------------------------------------- -// MyFrame -//---------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) -EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit) -EVT_MENU(MINIMAL_ABOUT, MyFrame::OnAbout) -#if wxUSE_TOOLTIPS -EVT_MENU(MINIMAL_SET_TOOLTIP_DELAY, MyFrame::OnSetTooltipDelay) -EVT_MENU(MINIMAL_ENABLE_TOOLTIPS, MyFrame::OnToggleTooltips) -#endif // wxUSE_TOOLTIPS -EVT_SIZE(MyFrame::OnSize) -EVT_IDLE(MyFrame::OnIdle) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h) -: wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - CreateStatusBar(2); - - (void)new MyPanel( this, 10, 10, 300, 100 ); -} - -void MyFrame::OnQuit (wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) ) -{ - wxBeginBusyCursor(); - - wxMessageDialog dialog(this, "This is a control sample", "About Controls", wxOK ); - dialog.ShowModal(); - - wxEndBusyCursor(); -} - -#if wxUSE_TOOLTIPS -void MyFrame::OnSetTooltipDelay(wxCommandEvent& event) -{ - static long s_delay = 5000; - - wxString delay; - delay.Printf( _T("%ld"), s_delay); - - delay = wxGetTextFromUser("Enter delay (in milliseconds)", - "Set tooltip delay", - delay, - this); - if ( !delay ) - return; // cancelled - - wxSscanf(delay, _T("%ld"), &s_delay); - - wxToolTip::SetDelay(s_delay); - - wxLogStatus(this, _T("Tooltip delay set to %ld milliseconds"), s_delay); -} - -void MyFrame::OnToggleTooltips(wxCommandEvent& event) -{ - static bool s_enabled = TRUE; - - s_enabled = !s_enabled; - - wxToolTip::Enable(s_enabled); - - wxLogStatus(this, _T("Tooltips %sabled"), s_enabled ? _T("en") : _T("dis") ); -} -#endif // tooltips - -void MyFrame::OnSize( wxSizeEvent& event ) -{ - wxString msg; - msg.Printf( _("%dx%d"), event.GetSize().x, event.GetSize().y); - SetStatusText(msg, 1); - - event.Skip(); -} - -void MyFrame::OnIdle( wxIdleEvent& WXUNUSED(event) ) -{ - // track the window which has the focus in the status bar - static wxWindow *s_windowFocus = (wxWindow *)NULL; - wxWindow *focus = wxWindow::FindFocus(); - if ( focus && (focus != s_windowFocus) ) - { - s_windowFocus = focus; - - wxString msg; - msg.Printf( -#ifdef __WXMSW__ - _T("Focus: wxWindow = %p, HWND = %08x"), -#else - _T("Focus: wxWindow = %p"), -#endif - s_windowFocus -#ifdef __WXMSW__ - , s_windowFocus->GetHWND() -#endif - ); - - SetStatusText(msg); - } -} diff --git a/samples/controls/controls.def b/samples/controls/controls.def deleted file mode 100644 index a6c3f21cf7..0000000000 --- a/samples/controls/controls.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Controls -DESCRIPTION 'wxWindows controls sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/controls/controls.rc b/samples/controls/controls.rc deleted file mode 100644 index 746abb4618..0000000000 --- a/samples/controls/controls.rc +++ /dev/null @@ -1,10 +0,0 @@ -mondrian ICON "mondrian.ico" - -choice BITMAP "icons/choice.bmp" -combo BITMAP "icons/combo.bmp" -gauge BITMAP "icons/gauge.bmp" -list BITMAP "icons/list.bmp" -radio BITMAP "icons/radio.bmp" -text BITMAP "icons/text.bmp" - -#include "wx/msw/wx.rc" diff --git a/samples/controls/icons/choice.bmp b/samples/controls/icons/choice.bmp deleted file mode 100644 index ac6edb6bbaa3568bf3274fce79540deab1dbc474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmeHH+YNvq47?UiO#E>SCtv{o9mOq}jkT~mE&e!wTyoG$;VvN!$7yFI*a_IB+6oCv zZV+&-nUFeBHs>6?_Xr^jjyD)H@S_>XA49jA3I@kUm8P6(n)#!j?|0_PF8Rxe3@g+Oiug zN*Lf;)xohiU*3C!5D;S=KK@|Lz>j7?7ejN}VgyP=fi`D7nCOGo_lb%7 diff --git a/samples/controls/icons/combo.xpm b/samples/controls/icons/combo.xpm deleted file mode 100644 index 554d2a2a08..0000000000 --- a/samples/controls/icons/combo.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * combo_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@..............@", -"@....#####+++++@", -"@.#.######.....@", -"@.#.######+...+@", -"@....#####++.++@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@", -" ##############", -" ..............", -" .#########+.+.", -" .#########....", -" .#########+++.", -" .#########....", -" .#########+.+.", -" .............."}; diff --git a/samples/controls/icons/gauge.bmp b/samples/controls/icons/gauge.bmp deleted file mode 100644 index 14dd39123ec3ca066012e11ae64a14ebdd1afd4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmZ?rHDhG}12Yx|1`Qxf0E!tII3N;?3=Fy45X=B%gE5e50pXSwhGWN$G5r7ke-w{~ m!Dt#7A!z_oFc42Np#ug+C}0KwCMKHmQQV5|8YUE3A~*mG=J?hC diff --git a/samples/controls/icons/gauge.xpm b/samples/controls/icons/gauge.xpm deleted file mode 100644 index 947bbdf024..0000000000 --- a/samples/controls/icons/gauge.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * gauge_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #000080", -"@ c #c0c0c0", -"# c #808080", -/* pixels */ -" ", -" ", -" ", -"################", -"#..............#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"################", -" ", -" ", -" "}; diff --git a/samples/controls/icons/list.bmp b/samples/controls/icons/list.bmp deleted file mode 100644 index 384955d8ab24bdb761ab88d61238c60e4ffad828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmZ?rHDhG}12Yx|1`Qxf0E!tII3N;?3=Fy45X=B%gE5e5X=!0NcI+6#|Ns9-@n{%~ zrhyTZ1{l!+0~0b}WMp85111J06h5c~L6K(y$s=n=RS%S*s(K9j(cA~I52y+O(0$7Y E0LPyECIA2c diff --git a/samples/controls/icons/list.xpm b/samples/controls/icons/list.xpm deleted file mode 100644 index a7da5be9c9..0000000000 --- a/samples/controls/icons/list.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * list_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@..............@", -"@.##########+++@", -"@.##########+.+@", -"@.++++++++++...@", -"@.##########+++@", -"@.##########+++@", -"@.+++++++++++++@", -"@.##########+++@", -"@.##########+++@", -"@.+++++++++++++@", -"@.##########+++@", -"@.##########...@", -"@.##########+.+@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@"}; diff --git a/samples/controls/icons/radio.bmp b/samples/controls/icons/radio.bmp deleted file mode 100644 index 51b183f68bd9a1c9f6fb9d78e1aa4b3cf736f875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmeHH!3}^Q47`FSCVm{l2^he?qqqgLu@<(JAQ*K4xuno?S4v3JZFeIQ+yJcXE!hZ@ z5(FHx8rV<9oA(|e1jHD-^*`u6@S`5k!EmjH8o-dLKrb=pBvs~NtxX3d#w~7n!}aU@ bQt_#tC?Of_2(Ocj$C*4lldRAiMfQmkcpLkC diff --git a/samples/controls/icons/radio.xpm b/samples/controls/icons/radio.xpm deleted file mode 100644 index e4695e828f..0000000000 --- a/samples/controls/icons/radio.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * radio_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -" . ", -" .. .. ", -"+++.+.++...++++.", -"+@.@...@@..@@@@.", -"+@.+++.+....++@.", -"+@++++++++++++@.", -"+@++++++++++++@.", -"+@++++...+++++@.", -"+@+++.###@++++@.", -"+@+++.#.#@++++@.", -"+@+++.###@++++@.", -"+@++++@@@+++++@.", -"+@++++++++++++@.", -"+@++++++++++++@.", -"+@@@@@@@@@@@@@@.", -"................"}; diff --git a/samples/controls/icons/stattext.xpm b/samples/controls/icons/stattext.xpm deleted file mode 100644 index 1ff8e94d4e..0000000000 --- a/samples/controls/icons/stattext.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char * stattext_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 2 1", -/* colors */ -" s None c None", -". c #000000", -/* pixels */ -" ", -" ", -" ", -" .. ", -" .. ", -" .... ", -" .... .... ", -" . . .. .. ", -" .. .. .... ", -" .. .. .. .. ", -" ...... .. .. ", -".. .. .. .. ", -".. .. ..... ", -" ", -" ", -" "}; diff --git a/samples/controls/icons/text.bmp b/samples/controls/icons/text.bmp deleted file mode 100644 index 2ae397d694e986331b6b70c0aff7352fff4c2c7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1334 zcmZ?rHDhG}12Yx|1`Qxf0E!tII3N;?3=Fy45X=B%gE5e5X=!0NcI+6#|Ns9-@n{%~ zrhyTZ1|S6k@gyTUU|>Q9jEoG-NPr2%2O16&0`r;STxP6%4D~SG%wY8>Zbf$us8k~f F003Y$`(ywB diff --git a/samples/controls/icons/text.xpm b/samples/controls/icons/text.xpm deleted file mode 100644 index f4bea54bd8..0000000000 --- a/samples/controls/icons/text.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * text_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -" ", -" ", -" ", -"@@@@@@@@@@@@@@@@", -"@..............@", -"@.############+@", -"@.#...########+@", -"@.##.#########+@", -"@.##.#########+@", -"@.#...########+@", -"@.############+@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@", -" ", -" ", -" "}; diff --git a/samples/controls/makefile.b32 b/samples/controls/makefile.b32 deleted file mode 100644 index 8accc1bcfd..0000000000 --- a/samples/controls/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=controls -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/controls/makefile.bcc b/samples/controls/makefile.bcc deleted file mode 100644 index 400c6539d2..0000000000 --- a/samples/controls/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=controls -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/controls/makefile.dos b/samples/controls/makefile.dos deleted file mode 100644 index f1170311a5..0000000000 --- a/samples/controls/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=controls -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/controls/makefile.g95 b/samples/controls/makefile.g95 deleted file mode 100644 index 28a81c25cf..0000000000 --- a/samples/controls/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=controls -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/controls/makefile.unx b/samples/controls/makefile.unx deleted file mode 100644 index 8e5eeb17a1..0000000000 --- a/samples/controls/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for controls example (UNIX). - -PROGRAM=controls - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/controls/makefile.vc b/samples/controls/makefile.vc deleted file mode 100644 index c64996a7a4..0000000000 --- a/samples/controls/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=controls -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/controls/makefile.wat b/samples/controls/makefile.wat deleted file mode 100644 index db1d6cc5b6..0000000000 --- a/samples/controls/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = controls -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/controls/mondrian.ico b/samples/controls/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z -#endif //WX_PRECOMP - -#ifdef __WXGTK__ -#include "db.xpm" -#endif - -#include /* Included strictly for reading the text file with the database parameters */ - -#include /* Required in the file which will get the data source connection */ -#include /* Has the wxTable object from which all data objects will inherit their data table functionality */ - -extern DbList* WXDLLEXPORT PtrBegDbList; /* from db.cpp, used in getting back error results from db connections */ - -#include "dbtest.h" /* Header file for this demonstration program */ -#include "listdb.h" /* Code to support the "Lookup" button on the editor dialog */ - -IMPLEMENT_APP(DatabaseDemoApp) - -extern char ListDB_Selection[]; /* Used to return the first column value for the selected line from the listDB routines */ -extern char ListDB_Selection2[]; /* Used to return the second column value for the selected line from the listDB routines */ - -DatabaseDemoFrame *DemoFrame; /* Pointer to the main frame */ - -/* Pointer to the main database connection used in the program. This - * pointer would normally be used for doing things as database lookups - * for user login names and passwords, getting workstation settings, etc. - * ---> IMPORTANT <--- - * - * For each database object created which uses this wxDB pointer - * connection to the database, when a CommitTrans() or RollBackTrans() - * will commit or rollback EVERY object which uses this wxDB pointer. - * - * To allow each table object (those derived from wxTable) to be - * individually committed or rolled back, you MUST use a different - * instance of wxDB in the constructor of the table. Doing so creates - * more overhead, and will use more database connections (some DBs have - * connection limits...), so use connections sparringly. - * - * It is recommended that one "main" database connection be created for - * the entire program to use for READ-ONLY database accesses, but for each - * table object which will do a CommitTrans() or RollbackTrans() that a - * new wxDB object be created and used for it. - */ - -wxDB *READONLY_DB; - -/* - * This function will return the exact string(s) from the database engine - * indicating all error conditions which have just occured during the - * last call to the database engine. - * - * This demo uses the returned string by displaying it in a wxMessageBox. The - * formatting therefore is not the greatest, but this is just a demo, not a - * finished product. :-) gt - * - * NOTE: The value returned by this function is for temporary use only and - * should be copied for long term use - */ - -char *GetExtendedDBErrorMsg(char *ErrFile, int ErrLine) -{ - static wxString msg; - - wxString tStr; - - if (ErrFile || ErrLine) - { - msg += "File: "; - msg += ErrFile; - msg += " Line: "; - tStr.Printf("%d",ErrLine); - msg += tStr.GetData(); - msg += "\n"; - } - - msg.Append ("\nODBC errors:\n"); - msg += "\n"; - - /* Scan through each database connection displaying - * any ODBC errors that have occured. */ - for (DbList *pDbList = PtrBegDbList; pDbList; pDbList = pDbList->PtrNext) - { - // Skip over any free connections - if (pDbList->Free) - continue; - // Display errors for this connection - for (int i = 0; i < DB_MAX_ERROR_HISTORY; i++) - { - if (pDbList->PtrDb->errorList[i]) - { - msg.Append(pDbList->PtrDb->errorList[i]); - if (strcmp(pDbList->PtrDb->errorList[i],"") != 0) - msg.Append("\n"); - } - } - } - msg += "\n"; - - return (char*) (const char*) msg; -} // GetExtendedDBErrorMsg - - -bool DatabaseDemoApp::OnInit() -{ - // Create the main frame window - DemoFrame = new DatabaseDemoFrame(NULL, "wxWindows Database Demo", wxPoint(50, 50), wxSize(537, 480)); - - // Give it an icon - DemoFrame->SetIcon(wxICON(db)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(FILE_CREATE, "&Create contact table"); - file_menu->Append(FILE_EXIT, "E&xit"); - - wxMenu *edit_menu = new wxMenu; - edit_menu->Append(EDIT_PARAMETERS, "&Parameters..."); - - wxMenu *about_menu = new wxMenu; - about_menu->Append(ABOUT_DEMO, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(edit_menu, "&Edit"); - menu_bar->Append(about_menu, "&About"); - DemoFrame->SetMenuBar(menu_bar); - - // Initialize the ODBC Environment for Database Operations - if (SQLAllocEnv(&DbConnectInf.Henv) != SQL_SUCCESS) - { - wxMessageBox("A problem occured while trying to get a connection to the data source","DB CONNECTION ERROR",wxOK | wxICON_EXCLAMATION); - return NULL; - } - - FILE *paramFile; - if ((paramFile = fopen(paramFilename, "r")) == NULL) - { - wxString tStr; - tStr.Printf("Unable to open the parameter file '%s' for reading.\n\nYou must specify the data source, user name, and\npassword that will be used and save those settings.",paramFilename); - wxMessageBox(tStr,"File I/O Error...",wxOK | wxICON_EXCLAMATION); - DemoFrame->BuildParameterDialog(NULL); - if ((paramFile = fopen(paramFilename, "r")) == NULL) - return FALSE; - } - - char buffer[1000+1]; - fgets(buffer, sizeof(params.ODBCSource), paramFile); - buffer[strlen(buffer)-1] = '\0'; - strcpy(params.ODBCSource,buffer); - - fgets(buffer, sizeof(params.UserName), paramFile); - buffer[strlen(buffer)-1] = '\0'; - strcpy(params.UserName,buffer); - - fgets(buffer, sizeof(params.Password), paramFile); - buffer[strlen(buffer)-1] = '\0'; - strcpy(params.Password,buffer); - - fclose(paramFile); - - // Connect to datasource - strcpy(DbConnectInf.Dsn, params.ODBCSource); // ODBC data source name (created with ODBC Administrator under Win95/NT) - strcpy(DbConnectInf.Uid, params.UserName); // database username - must already exist in the data source - strcpy(DbConnectInf.AuthStr, params.Password); // password database username - READONLY_DB = GetDbConnection(&DbConnectInf); - if (READONLY_DB == 0) - { - wxMessageBox("Unable to connect to the data source.\n\nCheck the name of your data source to verify it has been correctly entered/spelled.\n\nWith some databases, the user name and password must\nbe created with full rights to the CONTACT table prior to making a connection\n(using tools provided by the database manufacturer)", "DB CONNECTION ERROR...",wxOK | wxICON_EXCLAMATION); - DemoFrame->BuildParameterDialog(NULL); - strcpy(DbConnectInf.Dsn, ""); - strcpy(DbConnectInf.Uid, ""); - strcpy(DbConnectInf.AuthStr, ""); - wxMessageBox("Now exiting program.\n\nRestart program to try any new settings.","Notice...",wxOK | wxICON_INFORMATION); - return(FALSE); - } - - DemoFrame->BuildEditorDialog(); - - // Show the frame - DemoFrame->Show(TRUE); - - return TRUE; -} // DatabaseDemoApp::OnInit() - -BEGIN_EVENT_TABLE(DatabaseDemoFrame, wxFrame) - EVT_MENU(FILE_CREATE, DatabaseDemoFrame::OnCreate) - EVT_MENU(FILE_EXIT, DatabaseDemoFrame::OnExit) - EVT_MENU(EDIT_PARAMETERS, DatabaseDemoFrame::OnEditParameters) - EVT_MENU(ABOUT_DEMO, DatabaseDemoFrame::OnAbout) - EVT_CLOSE(DatabaseDemoFrame::OnCloseWindow) -END_EVENT_TABLE() - -// DatabaseDemoFrame constructor -DatabaseDemoFrame::DatabaseDemoFrame(wxFrame *frame, const wxString& title, - const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) -{ -// Put any code in necessary for initializing the main frame here -} - -void DatabaseDemoFrame::OnCreate(wxCommandEvent& event) -{ - CreateDataTable(); -} - -void DatabaseDemoFrame::OnExit(wxCommandEvent& event) -{ - this->Destroy(); -} - -void DatabaseDemoFrame::OnEditParameters(wxCommandEvent& event) -{ - if ((pEditorDlg->mode != mCreate) && (pEditorDlg->mode != mEdit)) - BuildParameterDialog(this); - else - wxMessageBox("Cannot change database parameters while creating or editing a record","Notice...",wxOK | wxICON_INFORMATION); -} - -void DatabaseDemoFrame::OnAbout(wxCommandEvent& event) -{ - wxMessageBox("wxWindows sample program for database classes\n\nContributed on 27 July 1998","About...",wxOK | wxICON_INFORMATION); -} - -void DatabaseDemoFrame::OnCloseWindow(wxCloseEvent& event) -{ - // Put any additional checking necessary to make certain it is alright - // to close the program here that is not done elsewhere - - this->Destroy(); -} // DatabaseDemoFrame::OnCloseWindow() - - -void DatabaseDemoFrame::CreateDataTable() -{ - bool Ok = (wxMessageBox("Any data currently residing in the table will be erased.\n\nAre you sure?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES); - - if (!Ok) - return; - - wxBeginBusyCursor(); - - bool success = TRUE; - - Ccontact *Contact = new Ccontact(); - if (!Contact) - { - wxEndBusyCursor(); - wxMessageBox("Error allocating memory for 'Ccontact'object.\n\nTable was not created.","Error...",wxOK | wxICON_EXCLAMATION); - return; - } - - if (!Contact->CreateTable()) - { - wxEndBusyCursor(); - wxString tStr; - tStr = "Error creating CONTACTS table.\nTable was not created.\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - success = FALSE; - } - else - { - if (!Contact->CreateIndexes()) - { - wxEndBusyCursor(); - wxString tStr; - tStr = "Error creating CONTACTS indexes.\nIndexes will be unavailable.\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - success = FALSE; - } - } - wxEndBusyCursor(); - - delete Contact; - - if (success) - wxMessageBox("Table and index(es) were successfully created.","Notice...",wxOK | wxICON_INFORMATION); -} // DatabaseDemoFrame::CreateDataTable() - - -void DatabaseDemoFrame::BuildEditorDialog() -{ - pEditorDlg = new CeditorDlg(this); - if (!pEditorDlg) - wxMessageBox("Unable to create the editor dialog for some reason","Error...",wxOK | wxICON_EXCLAMATION); -} // DatabaseDemoFrame::BuildEditorDialog() - - -void DatabaseDemoFrame::BuildParameterDialog(wxWindow *parent) -{ - pParamDlg = new CparameterDlg(parent); - - if (!pParamDlg) - wxMessageBox("Unable to create the parameter dialog for some reason","Error...",wxOK | wxICON_EXCLAMATION); -} // DatabaseDemoFrame::BuildParameterDialog() - - -/* - * Constructor note: If no wxDB object is passed in, a new connection to the database - * is created for this instance of Ccontact. This can be a slow process depending - * on the database engine being used, and some database engines have a limit on the - * number of connections (either hard limits, or license restricted) so care should - * be used to use as few connections as is necessary. - * IMPORTANT: Objects which share a wxDB pointer are ALL acted upon whenever a member - * function of pDb is called (i.e. CommitTrans() or RollbackTrans(), so if modifying - * or creating a table objects which use the same pDb, know that all the objects - * will be committed or rolled back when any of the objects has this function call made. - */ -Ccontact::Ccontact (wxDB *pwxDB) : wxTable(pwxDB ? pwxDB : GetDbConnection(&DbConnectInf),CONTACT_TABLE_NAME,CONTACT_NO_COLS) -{ - // This is used to represent whether the database connection should be released - // when this instance of the object is deleted. If using the same connection - // for multiple instance of database objects, then the connection should only be - // released when the last database instance using the connection is deleted - freeDbConn = !pwxDB; - - SetupColumns(); - -} // Ccontact Constructor - - -void Ccontact::Initialize() -{ - Name[0] = 0; - Addr1[0] = 0; - Addr2[0] = 0; - City[0] = 0; - State[0] = 0; - PostalCode[0] = 0; - Country[0] = 0; - JoinDate.year = 1980; - JoinDate.month = 1; - JoinDate.day = 1; - JoinDate.hour = 0; - JoinDate.minute = 0; - JoinDate.second = 0; - JoinDate.fraction = 0; - NativeLanguage = langENGLISH; - IsDeveloper = FALSE; - Contributions = 0; - LinesOfCode = 0L; -} // Ccontact::Initialize - - -Ccontact::~Ccontact() -{ - if (freeDbConn) - { - if (!FreeDbConnection(pDb)) - { - wxString tStr; - tStr = "Unable to Free the Ccontact data table handle\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - } - } -} // Ccontract destructor - - -/* - * Handles setting up all the connections for the interface from the wxTable - * functions to interface to the data structure used to store records in - * memory, and for all the column definitions that define the table structure - */ -void Ccontact::SetupColumns() -{ - SetColDefs ( 0,"NAME", DB_DATA_TYPE_VARCHAR, Name, SQL_C_CHAR, sizeof(Name), TRUE, TRUE); // Primary index - SetColDefs ( 1,"ADDRESS1", DB_DATA_TYPE_VARCHAR, Addr1, SQL_C_CHAR, sizeof(Addr1), FALSE,TRUE); - SetColDefs ( 2,"ADDRESS2", DB_DATA_TYPE_VARCHAR, Addr2, SQL_C_CHAR, sizeof(Addr2), FALSE,TRUE); - SetColDefs ( 3,"CITY", DB_DATA_TYPE_VARCHAR, City, SQL_C_CHAR, sizeof(City), FALSE,TRUE); - SetColDefs ( 4,"STATE", DB_DATA_TYPE_VARCHAR, State, SQL_C_CHAR, sizeof(State), FALSE,TRUE); - SetColDefs ( 5,"POSTAL_CODE", DB_DATA_TYPE_VARCHAR, PostalCode, SQL_C_CHAR, sizeof(PostalCode), FALSE,TRUE); - SetColDefs ( 6,"COUNTRY", DB_DATA_TYPE_VARCHAR, Country, SQL_C_CHAR, sizeof(Country), FALSE,TRUE); - SetColDefs ( 7,"JOIN_DATE", DB_DATA_TYPE_DATE, &JoinDate, SQL_C_TIMESTAMP, sizeof(JoinDate), FALSE,TRUE); - SetColDefs ( 8,"NATIVE_LANGUAGE", DB_DATA_TYPE_INTEGER, &NativeLanguage, SQL_C_ENUM, sizeof(NativeLanguage), FALSE,TRUE); - SetColDefs ( 9,"IS_DEVELOPER", DB_DATA_TYPE_INTEGER, &IsDeveloper, SQL_C_BOOLEAN, sizeof(bool), FALSE,TRUE); - SetColDefs (10,"CONTRIBUTIONS", DB_DATA_TYPE_INTEGER, &Contributions, SQL_C_USHORT, sizeof(Contributions), FALSE,TRUE); - SetColDefs (11,"LINES_OF_CODE", DB_DATA_TYPE_INTEGER, &LinesOfCode, SQL_C_ULONG, sizeof(LinesOfCode), FALSE,TRUE); -} // Ccontact::SetupColumns - - -bool Ccontact::CreateIndexes(void) -{ - // This index could easily be accomplished with an "orderBy" clause, - // but is done to show how to construct a non-primary index. - wxString indexName; - CidxDef idxDef[2]; - - bool Ok = TRUE; - - strcpy(idxDef[0].ColName, "IS_DEVELOPER"); - idxDef[0].Ascending = TRUE; - - strcpy(idxDef[1].ColName, "NAME"); - idxDef[1].Ascending = TRUE; - - indexName = CONTACT_TABLE_NAME; - indexName += "_IDX1"; - Ok = CreateIndex((char*) (const char*) indexName, TRUE, 2, idxDef); - - return Ok; -} // Ccontact::CreateIndexes() - - -/* - * Having a function to do a query on the primary key (and possibly others) is - * very efficient and tighter coding so that it is available where ever the object - * is. Great for use with multiple tables when not using views or outer joins - */ -bool Ccontact::FetchByName(char *name) -{ - whereStr.Printf("NAME = '%s'",name); - where = (char*) (const char*) this->whereStr; - orderBy = 0; - - if (!Query()) - return(FALSE); - - // Fetch the record - return(GetNext()); - -} // Ccontact::FetchByName() - - -/* - * - * ************* DIALOGS *************** - * - */ - - -/* CeditorDlg constructor - * - * Creates the dialog used for creating/editing/deleting/copying a Ccontact object. - * This dialog actually is drawn in the main frame of the program - * - * An instance of Ccontact is created - "Contact" - which is used to hold the Ccontact - * object that is currently being worked with. - */ - -BEGIN_EVENT_TABLE(CeditorDlg, wxPanel) - EVT_BUTTON(-1, CeditorDlg::OnButton) -END_EVENT_TABLE() - -CeditorDlg::CeditorDlg(wxWindow *parent) : wxPanel (parent, 1, 1, 460, 455) -{ - // Since the ::OnCommand() function is overridden, this prevents the widget - // detection in ::OnCommand() until all widgets have been initialized to prevent - // uninitialized pointers from crashing the program - widgetPtrsSet = FALSE; - - // Create the data structure and a new database connection. - // (As there is not a pDb being passed in the constructor, a new database - // connection is created) - Contact = new Ccontact(); - - if (!Contact) - { - wxMessageBox("Unable to instantiate an instance of Ccontact","Error...",wxOK | wxICON_EXCLAMATION); - return; - } - - // Check if the table exists or not. If it doesn't, ask the user if they want to - // create the table. Continue trying to create the table until it exists, or user aborts - while (!Contact->pDb->TableExists((char *)CONTACT_TABLE_NAME)) - { - wxString tStr; - tStr.Printf("Unable to open the table '%s'.\n\nTable may need to be created...?\n\n",CONTACT_TABLE_NAME); - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - - bool createTable = (wxMessageBox("Do you wish to try to create/clear the CONTACTS table?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES); - - if (!createTable) - { - delete Contact; - Close(); - DemoFrame->Close(); - return; - } - else - DemoFrame->CreateDataTable(); - } - - // Tables must be "opened" before anything other than creating/deleting table can be done - if (!Contact->Open()) - { - // Table does exist, there was some problem opening it. Currently this should - // never fail, except in the case of the table not exisiting. Open() basically - // only sets up variable/pointer values, other than checking for table existence. - if (Contact->pDb->TableExists((char *)CONTACT_TABLE_NAME)) - { - wxString tStr; - tStr.Printf("Unable to open the table '%s'.\n\n",CONTACT_TABLE_NAME); - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - delete Contact; - Close(); - DemoFrame->Close(); - return; - } - } - - // Build the dialog - - (void)new wxStaticBox(this, EDITOR_DIALOG_FN_GROUP, "", wxPoint(15, 1), wxSize(497, 69), 0, "FunctionGrp"); - (void)new wxStaticBox(this, EDITOR_DIALOG_SEARCH_GROUP, "", wxPoint(417, 1), wxSize(95, 242), 0, "SearchGrp"); - - pCreateBtn = new wxButton(this, EDITOR_DIALOG_CREATE, "&Create", wxPoint(25, 21), wxSize(70, 35), 0, wxDefaultValidator, "CreateBtn"); - pEditBtn = new wxButton(this, EDITOR_DIALOG_EDIT, "&Edit", wxPoint(102, 21), wxSize(70, 35), 0, wxDefaultValidator, "EditBtn"); - pDeleteBtn = new wxButton(this, EDITOR_DIALOG_DELETE, "&Delete", wxPoint(179, 21), wxSize(70, 35), 0, wxDefaultValidator, "DeleteBtn"); - pCopyBtn = new wxButton(this, EDITOR_DIALOG_COPY, "Cop&y", wxPoint(256, 21), wxSize(70, 35), 0, wxDefaultValidator, "CopyBtn"); - pSaveBtn = new wxButton(this, EDITOR_DIALOG_SAVE, "&Save", wxPoint(333, 21), wxSize(70, 35), 0, wxDefaultValidator, "SaveBtn"); - pCancelBtn = new wxButton(this, EDITOR_DIALOG_CANCEL, "C&ancel", wxPoint(430, 21), wxSize(70, 35), 0, wxDefaultValidator, "CancelBtn"); - - pPrevBtn = new wxButton(this, EDITOR_DIALOG_PREV, "<< &Prev", wxPoint(430, 81), wxSize(70, 35), 0, wxDefaultValidator, "PrevBtn"); - pNextBtn = new wxButton(this, EDITOR_DIALOG_NEXT, "&Next >>", wxPoint(430, 121), wxSize(70, 35), 0, wxDefaultValidator, "NextBtn"); - pQueryBtn = new wxButton(this, EDITOR_DIALOG_QUERY, "&Query", wxPoint(430, 161), wxSize(70, 35), 0, wxDefaultValidator, "QueryBtn"); - pResetBtn = new wxButton(this, EDITOR_DIALOG_RESET, "&Reset", wxPoint(430, 200), wxSize(70, 35), 0, wxDefaultValidator, "ResetBtn"); - - pNameMsg = new wxStaticText(this, EDITOR_DIALOG_NAME_MSG, "Name:", wxPoint(17, 80), wxSize(-1, -1), 0, "NameMsg"); - pNameTxt = new wxTextCtrl(this, EDITOR_DIALOG_NAME_TEXT, "", wxPoint(17, 97), wxSize(308, 25), 0, wxDefaultValidator, "NameTxt"); - pNameListBtn = new wxButton(this, EDITOR_DIALOG_LOOKUP, "&Lookup", wxPoint(333, 99), wxSize(70, 24), 0, wxDefaultValidator, "LookupBtn"); - - pAddress1Msg = new wxStaticText(this, EDITOR_DIALOG_ADDRESS1_MSG, "Address:", wxPoint(17, 130), wxSize(-1, -1), 0, "Address1Msg"); - pAddress1Txt = new wxTextCtrl(this, EDITOR_DIALOG_ADDRESS2_TEXT, "", wxPoint(17, 147), wxSize(308, 25), 0, wxDefaultValidator, "Address1Txt"); - - pAddress2Msg = new wxStaticText(this, EDITOR_DIALOG_ADDRESS2_MSG, "Address:", wxPoint(17, 180), wxSize(-1, -1), 0, "Address2Msg"); - pAddress2Txt = new wxTextCtrl(this, EDITOR_DIALOG_ADDRESS2_TEXT, "", wxPoint(17, 197), wxSize(308, 25), 0, wxDefaultValidator, "Address2Txt"); - - pCityMsg = new wxStaticText(this, EDITOR_DIALOG_CITY_MSG, "City:", wxPoint(17, 230), wxSize(-1, -1), 0, "CityMsg"); - pCityTxt = new wxTextCtrl(this, EDITOR_DIALOG_CITY_TEXT, "", wxPoint(17, 247), wxSize(225, 25), 0, wxDefaultValidator, "CityTxt"); - - pStateMsg = new wxStaticText(this, EDITOR_DIALOG_STATE_MSG, "State:", wxPoint(250, 230), wxSize(-1, -1), 0, "StateMsg"); - pStateTxt = new wxTextCtrl(this, EDITOR_DIALOG_STATE_TEXT, "", wxPoint(250, 247), wxSize(153, 25), 0, wxDefaultValidator, "StateTxt"); - - pCountryMsg = new wxStaticText(this, EDITOR_DIALOG_COUNTRY_MSG, "Country:", wxPoint(17, 280), wxSize(-1, -1), 0, "CountryMsg"); - pCountryTxt = new wxTextCtrl(this, EDITOR_DIALOG_COUNTRY_TEXT, "", wxPoint(17, 297), wxSize(225, 25), 0, wxDefaultValidator, "CountryTxt"); - - pPostalCodeMsg = new wxStaticText(this, EDITOR_DIALOG_POSTAL_MSG, "Postal Code:", wxPoint(250, 280), wxSize(-1, -1), 0, "PostalCodeMsg"); - pPostalCodeTxt = new wxTextCtrl(this, EDITOR_DIALOG_POSTAL_TEXT, "", wxPoint(250, 297), wxSize(153, 25), 0, wxDefaultValidator, "PostalCodeTxt"); - - wxString choice_strings[5]; - choice_strings[0] = "English"; - choice_strings[1] = "French"; - choice_strings[2] = "German"; - choice_strings[3] = "Spanish"; - choice_strings[4] = "Other"; - pNativeLangChoice = new wxChoice(this, EDITOR_DIALOG_LANG_CHOICE, wxPoint(17, 346), wxSize(277, -1), 5, choice_strings); - pNativeLangMsg = new wxStaticText(this, EDITOR_DIALOG_LANG_MSG, "Native language:", wxPoint(17, 330), wxSize(-1, -1), 0, "NativeLangMsg"); - - wxString radio_strings[2]; - radio_strings[0] = "No"; - radio_strings[1] = "Yes"; - pDeveloperRadio = new wxRadioBox(this,EDITOR_DIALOG_DEVELOPER,"Developer:",wxPoint(303,330),wxSize(-1,-1),2,radio_strings,2,wxHORIZONTAL); - - pJoinDateMsg = new wxStaticText(this, EDITOR_DIALOG_JOIN_MSG, "Date joined:", wxPoint(17, 380), wxSize(-1, -1), 0, "JoinDateMsg"); - pJoinDateTxt = new wxTextCtrl(this, EDITOR_DIALOG_JOIN_TEXT, "", wxPoint(17, 397), wxSize(150, 25), 0, wxDefaultValidator, "JoinDateTxt"); - - pContribMsg = new wxStaticText(this, EDITOR_DIALOG_CONTRIB_MSG, "Contributions:", wxPoint(175, 380), wxSize(-1, -1), 0, "ContribMsg"); - pContribTxt = new wxTextCtrl(this, EDITOR_DIALOG_CONTRIB_TEXT, "", wxPoint(175, 397), wxSize(120, 25), 0, wxDefaultValidator, "ContribTxt"); - - pLinesMsg = new wxStaticText(this, EDITOR_DIALOG_LINES_MSG, "Lines of code:", wxPoint(303, 380), wxSize(-1, -1), 0, "LinesMsg"); - pLinesTxt = new wxTextCtrl(this, EDITOR_DIALOG_LINES_TEXT, "", wxPoint(303, 397), wxSize(100, 25), 0, wxDefaultValidator, "LinesTxt"); - - // Now that all the widgets on the panel are created, its safe to allow ::OnCommand() to - // handle all widget processing - widgetPtrsSet = TRUE; - - // Setup the orderBy and where clauses to return back a single record as the result set, - // as there will only be one record being shown on the dialog at a time, this optimizes - // network traffic by only returning a one row result - - Contact->orderBy = "NAME"; // field name to sort by - - // The wxString "whereStr" is not a member of the wxTable object, it is a member variable - // specifically in the Ccontact class. It is used here for simpler construction of a varying - // length string, and then after the string is built, the wxTable member variable "where" is - // assigned the pointer to the constructed string. - // - // The constructed where clause below has a sub-query within it "SELECT MIN(NAME) FROM %s" - // to achieve a single row (in this case the first name in alphabetical order). - - // commented out because PostgreSQL can't do this - //Contact->whereStr.Printf("NAME = (SELECT MIN(NAME) FROM %s)",Contact->tableName); - - // NOTE: (const char*) returns a pointer which may not be valid later, so this is short term use only - Contact->where = (char*) (const char*) Contact->whereStr; - - // Perform the Query to get the result set. - // NOTE: If there are no rows returned, that is a valid result, so Query() would return TRUE. - // Only if there is a database error will Query() come back as FALSE - if (!Contact->Query()) - { - wxString tStr; - tStr = "ODBC error during Query()\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - GetParent()->Close(); - return; - } - - // Since Query succeeded, now get the row that was returned - if (!Contact->GetNext()) - // If the GetNext() failed at this point, then there are no rows to retrieve, - // so clear the values in the members of "Contact" so that PutData() blanks the - // widgets on the dialog - Contact->Initialize(); - - SetMode(mView); - PutData(); - - Show(TRUE); -} // CeditorDlg constructor - - -void CeditorDlg::OnCloseWindow(wxCloseEvent& event) -{ - // Clean up time - if ((mode != mCreate) && (mode != mEdit)) - { - if (Contact) - delete Contact; - this->Destroy(); - } - else - { - wxMessageBox("Must finish processing the current record being created/modified before exiting","Notice...",wxOK | wxICON_INFORMATION); - event.Veto(); - } -} // CeditorDlg::OnCloseWindow() - - -void CeditorDlg::OnButton( wxCommandEvent &event ) -{ - wxWindow *win = (wxWindow*) event.GetEventObject(); - OnCommand( *win, event ); -} - -void CeditorDlg::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - wxString widgetName; - - widgetName = win.GetName(); - - if (!widgetPtrsSet) - return; - - if (widgetName == pCreateBtn->GetName()) - { - Contact->Initialize(); - PutData(); - SetMode( mCreate ); - pNameTxt->SetValue(""); - pNameTxt->SetFocus(); - return; - } - - if (widgetName == pEditBtn->GetName()) - { - saveName = Contact->Name; - SetMode( mEdit ); - pNameTxt->SetFocus(); - return; - } - - if (widgetName == pCopyBtn->GetName()) - { - SetMode(mCreate); - pNameTxt->SetValue(""); - pNameTxt->SetFocus(); - return; - } - - if (widgetName == pDeleteBtn->GetName()) - { - bool Ok = (wxMessageBox("Are you sure?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES); - - if (!Ok) - return; - - if (Ok && Contact->Delete()) - { - // NOTE: Deletions are not finalized until a CommitTrans() is performed. - // If the commit were not performed, the program will continue to - // show the table contents as if they were deleted until this instance - // of Ccontact is deleted. If the Commit wasn't performed, the - // database will automatically Rollback the changes when the database - // connection is terminated - Contact->pDb->CommitTrans(); - - // Try to get the row that followed the just deleted row in the orderBy sequence - if (!GetNextRec()) - { - // There was now row (in sequence) after the just deleted row, so get the - // row which preceded the just deleted row - if (!GetPrevRec()) - { - // There are now no rows remaining, so clear the dialog widgets - Contact->Initialize(); - PutData(); - } - } - SetMode(mode); // force reset of button enable/disable - } - else - // Delete failed - Contact->pDb->RollbackTrans(); - - SetMode(mView); - return; - } - - if (widgetName == pSaveBtn->GetName()) - { - Save(); - return; - } - - if (widgetName == pCancelBtn->GetName()) - { - bool Ok = (wxMessageBox("Are you sure?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES); - - if (!Ok) - return; - - if (!strcmp((const char*) saveName,"")) - { - Contact->Initialize(); - PutData(); - SetMode(mView); - return; - } - else - { - // Requery previous record - if (Contact->FetchByName((char*) (const char*) saveName)) - { - PutData(); - SetMode(mView); - return; - } - } - - // commented out because PostgreSQL can't do this - - // Previous record not available, retrieve first record in table - //Contact->whereStr = "NAME = (SELECT MIN(NAME) FROM "; - //Contact->whereStr += Contact->tableName; - //Contact->whereStr += ")"; - - Contact->where = (char*) (const char*) Contact->whereStr; - if (!Contact->Query()) - { - wxString tStr; - tStr = "ODBC error during Query()\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - SetMode(mView); - return; - } - if (Contact->GetNext()) // Successfully read first record - { - PutData(); - SetMode(mView); - return; - } - // No contacts are available, clear dialog - Contact->Initialize(); - PutData(); - SetMode(mView); - return; - } // Cancel Button - - if (widgetName == pPrevBtn->GetName()) - { - if (!GetPrevRec()) - wxBell(); - return; - } // Prev Button - - if (widgetName == pNextBtn->GetName()) - { - if (!GetNextRec()) - wxBell(); - return; - } // Next Button - - if (widgetName == pQueryBtn->GetName()) - { - // Display the query dialog box - char qryWhere[DB_MAX_WHERE_CLAUSE_LEN+1]; - strcpy(qryWhere, (const char*) Contact->qryWhereStr); - char *tblName[] = {(char *)CONTACT_TABLE_NAME, 0}; - new CqueryDlg(GetParent(), Contact->pDb, tblName, qryWhere); - - // Query the first record in the new record set and - // display it, if the query string has changed. - if (strcmp(qryWhere, (const char*) Contact->qryWhereStr)) - { - - // commented out because PostgreSQL can't do this - Contact->whereStr = ""; - //Contact->orderBy = "NAME"; - //Contact->whereStr = "NAME = (SELECT MIN(NAME) FROM "; - //Contact->whereStr += CONTACT_TABLE_NAME; - - // Append the query where string (if there is one) - Contact->qryWhereStr = qryWhere; - if (strlen(qryWhere)) - { - Contact->whereStr += " WHERE "; - Contact->whereStr += Contact->qryWhereStr; - } - // Close the expression with a right paren - // Contact->whereStr += ")"; - // Requery the table - Contact->where = (char*) (const char*) Contact->whereStr; - if (!Contact->Query()) - { - wxString tStr; - tStr = "ODBC error during Query()\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - return; - } - // Display the first record from the query set - if (!Contact->GetNext()) - Contact->Initialize(); - PutData(); - } - - // Enable/Disable the reset button - pResetBtn->Enable(!Contact->qryWhereStr.IsEmpty()); - - return; - } // Query button - - - if (widgetName == pResetBtn->GetName()) - { - // Clear the additional where criteria established by the query feature - Contact->qryWhereStr = ""; - - // Query the first record in the table - Contact->orderBy = "NAME"; - - // commented out because PostgreSQL can't do this - //Contact->whereStr = "NAME = (SELECT MIN(NAME) FROM "; - //Contact->whereStr += CONTACT_TABLE_NAME; - //Contact->whereStr += ")"; - - Contact->where = (char*) (const char*) Contact->whereStr; - if (!Contact->Query()) - { - wxString tStr; - tStr = "ODBC error during Query()\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - return; - } - if (!Contact->GetNext()) - Contact->Initialize(); - PutData(); - pResetBtn->Enable(FALSE); - - return; - } // Reset button - - - if (widgetName == pNameListBtn->GetName()) - { - new ClookUpDlg(/* wxWindow *parent */ this, - /* char *windowTitle */ "Select contact name", - /* char *tableName */ (char *) CONTACT_TABLE_NAME, - /* char *dispCol1 */ "NAME", - /* char *dispCol2 */ "JOIN_DATE", - /* char *where */ "", - /* char *orderBy */ "NAME", - /* bool distinctValues */ TRUE); - - if (ListDB_Selection && strlen(ListDB_Selection)) - { - wxString w = "NAME = '"; - w += ListDB_Selection; - w += "'"; - GetRec((char*) (const char*) w); - } - - return; - } - -} // CeditorDlg::OnCommand() - - -void CeditorDlg::FieldsEditable() -{ - pNameTxt->Enable((mode == mCreate) || (mode == mEdit)); - pAddress1Txt->Enable((mode == mCreate) || (mode == mEdit)); - pAddress2Txt->Enable((mode == mCreate) || (mode == mEdit)); - pCityTxt->Enable((mode == mCreate) || (mode == mEdit)); - pStateTxt->Enable((mode == mCreate) || (mode == mEdit)); - pPostalCodeTxt->Enable((mode == mCreate) || (mode == mEdit)); - pCountryTxt->Enable((mode == mCreate) || (mode == mEdit)); - - pJoinDateTxt->Enable((mode == mCreate) || (mode == mEdit)); - pContribTxt->Enable((mode == mCreate) || (mode == mEdit)); - pLinesTxt->Enable((mode == mCreate) || (mode == mEdit)); - pNativeLangChoice->Enable((mode == mCreate) || (mode == mEdit)); - pDeveloperRadio->Enable((mode == mCreate) || (mode == mEdit)); - -} // CeditorDlg::FieldsEditable() - - -void CeditorDlg::SetMode(enum DialogModes m) -{ - bool edit = FALSE; - - mode = m; - switch (mode) - { - case mCreate: - case mEdit: - edit = TRUE; - break; - case mView: - case mSearch: - edit = FALSE; - break; - default: - break; - }; - - if (widgetPtrsSet) - { - pCreateBtn->Enable( !edit ); - pEditBtn->Enable( !edit && (strcmp(Contact->Name,"")!=0) ); - pDeleteBtn->Enable( !edit && (strcmp(Contact->Name,"")!=0) ); - pCopyBtn->Enable( !edit && (strcmp(Contact->Name,"")!=0) ); - pSaveBtn->Enable( edit ); - pCancelBtn->Enable( edit ); - pPrevBtn->Enable( !edit ); - pNextBtn->Enable( !edit ); - pQueryBtn->Enable( !edit ); - pResetBtn->Enable( !edit && !Contact->qryWhereStr.IsEmpty() ); - pNameListBtn->Enable( !edit ); - } - - FieldsEditable(); -} // CeditorDlg::SetMode() - - -bool CeditorDlg::PutData() -{ - wxString tStr; - - pNameTxt->SetValue(Contact->Name); - pAddress1Txt->SetValue(Contact->Addr1); - pAddress2Txt->SetValue(Contact->Addr2); - pCityTxt->SetValue(Contact->City); - pStateTxt->SetValue(Contact->State); - pCountryTxt->SetValue(Contact->Country); - pPostalCodeTxt->SetValue(Contact->PostalCode); - - tStr.Printf("%d/%d/%d",Contact->JoinDate.month,Contact->JoinDate.day,Contact->JoinDate.year); - pJoinDateTxt->SetValue(tStr); - - tStr.Printf("%d",Contact->Contributions); - pContribTxt->SetValue(tStr); - - tStr.Printf("%lu",Contact->LinesOfCode); - pLinesTxt->SetValue(tStr); - - pNativeLangChoice->SetSelection(Contact->NativeLanguage); - - pDeveloperRadio->SetSelection(Contact->IsDeveloper); - - return TRUE; -} // Ceditor::PutData() - - -/* - * Reads the data out of all the widgets on the dialog. Some data evaluation is done - * to ensure that there is a name entered and that the date field is valid. - * - * A return value of TRUE means that valid data was retrieved from the dialog, otherwise - * invalid data was found (and a message was displayed telling the user what to fix), and - * the data was not placed into the appropraite fields of Ccontact - */ -bool CeditorDlg::GetData() -{ - // Validate that the data currently entered into the widgets is valid data - - wxString tStr; - tStr = pNameTxt->GetValue(); - if (!strcmp((const char*) tStr,"")) - { - wxMessageBox("A name is required for entry into the contact table","Notice...",wxOK | wxICON_INFORMATION); - return FALSE; - } - - bool invalid = FALSE; - int mm,dd,yyyy; - int first, second; - - tStr = pJoinDateTxt->GetValue(); - if (tStr.Freq('/') != 2) - invalid = TRUE; - - // Find the month, day, and year tokens - if (!invalid) - { - first = tStr.First('/'); - second = tStr.Last('/'); - - mm = atoi(tStr.SubString(0,first)); - dd = atoi(tStr.SubString(first+1,second)); - yyyy = atoi(tStr.SubString(second+1,tStr.Length()-1)); - - invalid = !(mm && dd && yyyy); - } - - // Force Year 2000 compliance - if (!invalid && (yyyy < 1000)) - invalid = TRUE; - - // Check the token ranges for validity - if (!invalid) - { - if (yyyy > 9999) - invalid = TRUE; - else if ((mm < 1) || (mm > 12)) - invalid = TRUE; - else - { - if (dd < 1) - invalid = TRUE; - else - { - int days[12] = {31,28,31,30,31,30, - 31,31,30,31,30,31}; - if (dd > days[mm-1]) - { - invalid = TRUE; - if ((dd == 29) && (mm == 2)) - { - if (((yyyy % 4) == 0) && (((yyyy % 100) != 0) || ((yyyy % 400) == 0))) - invalid = FALSE; - } - } - } - } - } - - if (!invalid) - { - Contact->JoinDate.month = mm; - Contact->JoinDate.day = dd; - Contact->JoinDate.year = yyyy; - } - else - { - wxMessageBox("Improper date format. Please check the date\nspecified and try again.\n\nNOTE: Dates are in american format (MM/DD/YYYY)","Notice...",wxOK | wxICON_INFORMATION); - return FALSE; - } - - tStr = pNameTxt->GetValue(); - strcpy(Contact->Name,(const char*) tStr); - strcpy(Contact->Addr1,pAddress1Txt->GetValue()); - strcpy(Contact->Addr2,pAddress2Txt->GetValue()); - strcpy(Contact->City,pCityTxt->GetValue()); - strcpy(Contact->State,pStateTxt->GetValue()); - strcpy(Contact->Country,pCountryTxt->GetValue()); - strcpy(Contact->PostalCode,pPostalCodeTxt->GetValue()); - - Contact->Contributions = atoi(pContribTxt->GetValue()); - Contact->LinesOfCode = atol(pLinesTxt->GetValue()); - - Contact->NativeLanguage = (enum Language) pNativeLangChoice->GetSelection(); - Contact->IsDeveloper = (bool) pDeveloperRadio->GetSelection(); - - return TRUE; -} // CeditorDlg::GetData() - - -/* - * Retrieve data from the dialog, verify the validity of the data, and if it is valid, - * try to insert/update the data to the table based on the current 'mode' the dialog - * is set to. - * - * A return value of TRUE means the insert/update was completed successfully, a return - * value of FALSE means that Save() failed. If returning FALSE, then this function - * has displayed a detailed error message for the user. - */ -bool CeditorDlg::Save() -{ - bool failed = FALSE; - - // Read the data in the widgets of the dialog to get the user's data - if (!GetData()) - failed = TRUE; - - // Perform any other required validations necessary before saving - - - if (!failed) - { - wxBeginBusyCursor(); - - if (mode == mCreate) - { - RETCODE result = Contact->Insert(); - - failed = (result != DB_SUCCESS); - if (failed) - { - // Some errors may be expected, like a duplicate key, so handle those instances with - // specific error messages. - if (result == DB_ERR_INTEGRITY_CONSTRAINT_VIOL) - { - wxString tStr; - tStr = "A duplicate key value already exists in the table.\nUnable to save record\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - } - else - { - // Some other unexpexted error occurred - wxString tStr; - tStr = "Database insert failed\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - } - } - } - else // mode == mEdit - { - if (!Contact->Update()) - { - wxString tStr; - tStr = "Database update failed\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - failed = TRUE; - } - } - - if (!failed) - { - Contact->pDb->CommitTrans(); - SetMode(mView); // Sets the dialog mode back to viewing after save is successful - } - else - Contact->pDb->RollbackTrans(); - - wxEndBusyCursor(); - } - - return !failed; -} // CeditorDlg::Save() - - -/* - * Where this program is only showing a single row at a time in the dialog, - * a special where clause must be built to find just the single row which, - * in sequence, would follow the currently displayed row. - */ -bool CeditorDlg::GetNextRec() -{ - wxString w; - - // commented out because PostgreSQL can't do this - //w = "NAME = (SELECT MIN(NAME) FROM "; - //w += Contact->tableName; - // w += " WHERE NAME > '"; - w = "(NAME > '"; - w += Contact->Name; - w += "'"; - - // If a query where string is currently set, append that criteria - if (!Contact->qryWhereStr.IsEmpty()) - { - w += " AND ("; - w += Contact->qryWhereStr; - w += ")"; - } - - w += ")"; - return(GetRec((char*) (const char*) w)); - -} // CeditorDlg::GetNextRec() - - -/* - * Where this program is only showing a single row at a time in the dialog, - * a special where clause must be built to find just the single row which, - * in sequence, would precede the currently displayed row. - */ -bool CeditorDlg::GetPrevRec() -{ - wxString w; - - // commented out because PostgreSQL can't do this - //w = "NAME = (SELECT MAX(NAME) FROM "; - //w += Contact->tableName; - //w += " WHERE NAME < '"; - w = "(NAME < '"; - w += Contact->Name; - w += "'"; - - // If a query where string is currently set, append that criteria - if (!Contact->qryWhereStr.IsEmpty()) - { - w += " AND ("; - w += Contact->qryWhereStr; - w += ")"; - } - - w += ")"; - - return(GetRec((char*) (const char*)w)); - -} // CeditorDlg::GetPrevRec() - - -/* - * This function is here to avoid duplicating this same code in both the - * GetPrevRec() and GetNextRec() functions - */ -bool CeditorDlg::GetRec(char *whereStr) -{ - Contact->where = whereStr; - Contact->orderBy = "NAME"; - - if (!Contact->Query()) - { - wxString tStr; - tStr = "ODBC error during Query()\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - - return(FALSE); - } - - if (Contact->GetNext()) - { - PutData(); - return(TRUE); - } - else - return(FALSE); -} // CeditorDlg::GetRec() - - - -/* - * CparameterDlg constructor - */ - -BEGIN_EVENT_TABLE(CparameterDlg, wxDialog) - EVT_CLOSE(CparameterDlg::OnCloseWindow) -END_EVENT_TABLE() - -CparameterDlg::CparameterDlg(wxWindow *parent) : wxDialog (parent, PARAMETER_DIALOG, "ODBC parameter settings", wxPoint(-1, -1), wxSize(400, 275)) -{ - // Since the ::OnCommand() function is overridden, this prevents the widget - // detection in ::OnCommand() until all widgets have been initialized to prevent - // uninitialized pointers from crashing the program - widgetPtrsSet = FALSE; - - pParamODBCSourceMsg = new wxStaticText(this, PARAMETER_DIALOG_SOURCE_MSG, "ODBC data sources:", wxPoint(10, 10), wxSize(-1, -1), 0, "ParamODBCSourceMsg"); - pParamODBCSourceList = new wxListBox(this, PARAMETER_DIALOG_SOURCE_LISTBOX, wxPoint(10, 29), wxSize(285, 150), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "ParamODBCSourceList"); - - pParamUserNameMsg = new wxStaticText(this, PARAMETER_DIALOG_NAME_MSG, "Database user name:", wxPoint(10, 193), wxSize(-1, -1), 0, "ParamUserNameMsg"); - pParamUserNameTxt = new wxTextCtrl(this, PARAMETER_DIALOG_NAME_TEXT, "", wxPoint(10, 209), wxSize(140, 25), 0, wxDefaultValidator, "ParamUserNameTxt"); - - pParamPasswordMsg = new wxStaticText(this, PARAMETER_DIALOG_PASSWORD_MSG, "Password:", wxPoint(156, 193), wxSize(-1, -1), 0, "ParamPasswordMsg"); - pParamPasswordTxt = new wxTextCtrl(this, PARAMETER_DIALOG_PASSWORD_TEXT, "", wxPoint(156, 209), wxSize(140, 25), 0, wxDefaultValidator, "ParamPasswordTxt"); - - pParamSaveBtn = new wxButton(this, PARAMETER_DIALOG_SAVE, "&Save", wxPoint(310, 21), wxSize(70, 35), 0, wxDefaultValidator, "ParamSaveBtn"); - pParamCancelBtn = new wxButton(this, PARAMETER_DIALOG_CANCEL, "C&ancel", wxPoint(310, 66), wxSize(70, 35), 0, wxDefaultValidator, "ParamCancelBtn"); - - // Now that all the widgets on the panel are created, its safe to allow ::OnCommand() to - // handle all widget processing - widgetPtrsSet = TRUE; - - saved = FALSE; - savedParamSettings = wxGetApp().params; - - Centre(wxBOTH); - PutData(); - ShowModal(); -} // CparameterDlg constructor - - -void CparameterDlg::OnCloseWindow(wxCloseEvent& event) -{ - // Put any additional checking necessary to make certain it is alright - // to close the program here that is not done elsewhere - if (!saved) - { - bool Ok = (wxMessageBox("No changes have been saved.\n\nAre you sure you wish exit the parameter screen?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES); - - if (!Ok) - { - event.Veto(); - return; - } - - wxGetApp().params = savedParamSettings; - } - - if (GetParent() != NULL) - GetParent()->SetFocus(); - this->Destroy(); - -} // Cparameter::OnCloseWindow() - - -void CparameterDlg::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - wxString widgetName; - - widgetName = win.GetName(); - - if (!widgetPtrsSet) - return; - - if (widgetName == pParamSaveBtn->GetName()) - { - if (Save()) - { - wxString tStr; - tStr = "Database parameters have been saved."; - if (GetParent() != NULL) // The parameter dialog was not called during startup due to a missing cfg file - tStr += "\nNew parameters will take effect the next time the program is started."; - wxMessageBox(tStr,"Notice...",wxOK | wxICON_INFORMATION); - saved = TRUE; - Close(); - } - return; - } - - if (widgetName == pParamCancelBtn->GetName()) - { - Close(); - return; - } -} // CparameterDlg::OnCommand() - - -bool CparameterDlg::PutData() -{ - // Fill the data source list box - FillDataSourceList(); - - // Fill in the fields from the params object - pParamODBCSourceList->SetStringSelection(wxGetApp().params.ODBCSource); - pParamUserNameTxt->SetValue(wxGetApp().params.UserName); - pParamPasswordTxt->SetValue(wxGetApp().params.Password); - return TRUE; -} // CparameterDlg::PutData() - - -bool CparameterDlg::GetData() -{ - wxString tStr; - if (pParamODBCSourceList->GetStringSelection()) - { - tStr = pParamODBCSourceList->GetStringSelection(); - if (tStr.Length() > (sizeof(wxGetApp().params.ODBCSource)-1)) - { - wxString errmsg; - errmsg.Printf("ODBC Data source name is longer than the data structure to hold it.\n'Cparameter.ODBCSource' must have a larger character array\nto handle a data source with this long of a name\n\nThe data source currently selected is %d characters long.",tStr.Length()); - wxMessageBox(errmsg,"Internal program error...",wxOK | wxICON_EXCLAMATION); - return FALSE; - } - strcpy(wxGetApp().params.ODBCSource, tStr); - } - else - return FALSE; - - tStr = pParamUserNameTxt->GetValue(); - if (tStr.Length() > (sizeof(wxGetApp().params.UserName)-1)) - { - wxString errmsg; - errmsg.Printf("User name is longer than the data structure to hold it.\n'Cparameter.UserName' must have a larger character array\nto handle a data source with this long of a name\n\nThe user name currently specified is %d characters long.",tStr.Length()); - wxMessageBox(errmsg,"Internal program error...",wxOK | wxICON_EXCLAMATION); - return FALSE; - } - strcpy(wxGetApp().params.UserName, tStr); - - tStr = pParamPasswordTxt->GetValue(); - if (tStr.Length() > (sizeof(wxGetApp().params.Password)-1)) - { - wxString errmsg; - errmsg.Printf("Password is longer than the data structure to hold it.\n'Cparameter.Password' must have a larger character array\nto handle a data source with this long of a name\n\nThe password currently specified is %d characters long.",tStr.Length()); - wxMessageBox(errmsg,"Internal program error...",wxOK | wxICON_EXCLAMATION); - return FALSE; - } - strcpy(wxGetApp().params.Password,tStr); - return TRUE; -} // CparameterDlg::GetData() - - -bool CparameterDlg::Save() -{ - Cparameters saveParams = wxGetApp().params; - if (!GetData()) - { - wxGetApp().params = saveParams; - return FALSE; - } - - FILE *paramFile; - if ((paramFile = fopen(paramFilename, "wt")) == NULL) - { - wxString tStr; - tStr.Printf("Unable to write/overwrite '%s'.",paramFilename); - wxMessageBox(tStr,"File I/O Error...",wxOK | wxICON_EXCLAMATION); - return FALSE; - } - - fputs(wxGetApp().params.ODBCSource, paramFile); - fputc('\n', paramFile); - fputs(wxGetApp().params.UserName, paramFile); - fputc('\n', paramFile); - fputs(wxGetApp().params.Password, paramFile); - fputc('\n', paramFile); - fclose(paramFile); - - return TRUE; -} // CparameterDlg::Save() - - -void CparameterDlg::FillDataSourceList() -{ - char Dsn[SQL_MAX_DSN_LENGTH + 1]; - char DsDesc[255]; - wxStringList strList; - - while(GetDataSource(DbConnectInf.Henv, Dsn, SQL_MAX_DSN_LENGTH+1, DsDesc, 255)) - strList.Add(Dsn); - - strList.Sort(); - strList.Add(""); - char **p = strList.ListToArray(); - - for (int i = 0; strlen(p[i]); i++) - pParamODBCSourceList->Append(p[i]); -} // CparameterDlg::CparameterDlg::FillDataSourceList() - - -BEGIN_EVENT_TABLE(CqueryDlg, wxDialog) - EVT_BUTTON(-1, CqueryDlg::OnButton) - EVT_CLOSE(CqueryDlg::OnCloseWindow) -END_EVENT_TABLE() - -// CqueryDlg() constructor -CqueryDlg::CqueryDlg(wxWindow *parent, wxDB *pDb, char *tblName[], char *pWhereArg) : wxDialog (parent, QUERY_DIALOG, "Query", wxPoint(-1, -1), wxSize(480, 360)) -{ - wxBeginBusyCursor(); - - colInf = 0; - dbTable = 0; - masterTableName = tblName[0]; - widgetPtrsSet = FALSE; - pDB = pDb; - - // Initialize the WHERE clause from the string passed in - pWhere = pWhereArg; // Save a pointer to the output buffer - if (strlen(pWhere) > DB_MAX_WHERE_CLAUSE_LEN) // Check the length of the buffer passed in - { - wxString s; - s.Printf("Maximum where clause length exceeded.\nLength must be less than %d", DB_MAX_WHERE_CLAUSE_LEN+1); - wxMessageBox(s,"Error...",wxOK | wxICON_EXCLAMATION); - Close(); - return; - } - - pQueryCol1Msg = new wxStaticText(this, QUERY_DIALOG_COL_MSG, "Column 1:", wxPoint(10, 10), wxSize(69, 16), 0, "QueryCol1Msg"); - pQueryCol1Choice = new wxChoice(this, QUERY_DIALOG_COL_CHOICE, wxPoint(10, 27), wxSize(250, 27), 0, 0, 0, wxDefaultValidator, "QueryCol1Choice"); - - pQueryNotMsg = new wxStaticText(this, QUERY_DIALOG_NOT_MSG, "NOT", wxPoint(268, 10), wxSize(-1, -1), 0, "QueryNotMsg"); - pQueryNotCheck = new wxCheckBox(this, QUERY_DIALOG_NOT_CHECKBOX, "", wxPoint(275, 37), wxSize(20, 20), 0, wxDefaultValidator, "QueryNotCheck"); - - wxString choice_strings[9]; - choice_strings[0] = "="; - choice_strings[1] = "<"; - choice_strings[2] = ">"; - choice_strings[3] = "<="; - choice_strings[4] = ">="; - choice_strings[5] = "Begins"; - choice_strings[6] = "Contains"; - choice_strings[7] = "Like"; - choice_strings[8] = "Between"; - pQueryOperatorMsg = new wxStaticText(this, QUERY_DIALOG_OP_MSG, "Operator:", wxPoint(305, 10), wxSize(-1, -1), 0, "QueryOperatorMsg"); - pQueryOperatorChoice = new wxChoice(this, QUERY_DIALOG_OP_CHOICE, wxPoint(305, 27), wxSize(80, 27), 9, choice_strings, 0, wxDefaultValidator, "QueryOperatorChoice"); - - pQueryCol2Msg = new wxStaticText(this, QUERY_DIALOG_COL2_MSG, "Column 2:", wxPoint(10, 65), wxSize(69, 16), 0, "QueryCol2Msg"); - pQueryCol2Choice = new wxChoice(this, QUERY_DIALOG_COL2_CHOICE, wxPoint(10, 82), wxSize(250, 27), 0, 0, 0, wxDefaultValidator, "QueryCol2Choice"); - - pQuerySqlWhereMsg = new wxStaticText(this, QUERY_DIALOG_WHERE_MSG, "SQL where clause:", wxPoint(10, 141), wxSize(-1, -1), 0, "QuerySqlWhereMsg"); - pQuerySqlWhereMtxt = new wxTextCtrl(this, QUERY_DIALOG_WHERE_TEXT, "", wxPoint(10, 159), wxSize(377, 134), wxTE_MULTILINE, wxDefaultValidator, "QuerySqlWhereMtxt"); - - pQueryAddBtn = new wxButton(this, QUERY_DIALOG_ADD, "&Add", wxPoint(406, 24), wxSize(56, 26), 0, wxDefaultValidator, "QueryAddBtn"); - pQueryAndBtn = new wxButton(this, QUERY_DIALOG_AND, "A&nd", wxPoint(406, 58), wxSize(56, 26), 0, wxDefaultValidator, "QueryAndBtn"); - pQueryOrBtn = new wxButton(this, QUERY_DIALOG_OR, "&Or", wxPoint(406, 92), wxSize(56, 26), 0, wxDefaultValidator, "QueryOrBtn"); - - pQueryLParenBtn = new wxButton(this, QUERY_DIALOG_LPAREN, "(", wxPoint(406, 126), wxSize(26, 26), 0, wxDefaultValidator, "QueryLParenBtn"); - pQueryRParenBtn = new wxButton(this, QUERY_DIALOG_RPAREN, ")", wxPoint(436, 126), wxSize(26, 26), 0, wxDefaultValidator, "QueryRParenBtn"); - - pQueryDoneBtn = new wxButton(this, QUERY_DIALOG_DONE, "&Done", wxPoint(406, 185), wxSize(56, 26), 0, wxDefaultValidator, "QueryDoneBtn"); - pQueryClearBtn = new wxButton(this, QUERY_DIALOG_CLEAR, "C&lear", wxPoint(406, 218), wxSize(56, 26), 0, wxDefaultValidator, "QueryClearBtn"); - pQueryCountBtn = new wxButton(this, QUERY_DIALOG_COUNT, "&Count", wxPoint(406, 252), wxSize(56, 26), 0, wxDefaultValidator, "QueryCountBtn"); - - pQueryValue1Msg = new wxStaticText(this, QUERY_DIALOG_VALUE1_MSG, "Value:", wxPoint(277, 66), wxSize(-1, -1), 0, "QueryValue1Msg"); - pQueryValue1Txt = new wxTextCtrl(this, QUERY_DIALOG_VALUE1_TEXT, "", wxPoint(277, 83), wxSize(108, 25), 0, wxDefaultValidator, "QueryValue1Txt"); - - pQueryValue2Msg = new wxStaticText(this, QUERY_DIALOG_VALUE2_MSG, "AND", wxPoint(238, 126), wxSize(-1, -1), 0, "QueryValue2Msg"); - pQueryValue2Txt = new wxTextCtrl(this, QUERY_DIALOG_VALUE2_TEXT, "", wxPoint(277, 120), wxSize(108, 25), 0, wxDefaultValidator, "QueryValue2Txt"); - - pQueryHintGrp = new wxStaticBox(this, QUERY_DIALOG_HINT_GROUP, "", wxPoint(10, 291), wxSize(377, 40), 0, "QueryHintGrp"); - pQueryHintMsg = new wxStaticText(this, QUERY_DIALOG_HINT_MSG, "", wxPoint(16, 306), wxSize(-1, -1), 0, "QueryHintMsg"); - - widgetPtrsSet = TRUE; - // Initialize the dialog - wxString qualName; - pQueryCol2Choice->Append("VALUE -->"); - colInf = pDB->GetColumns(tblName); - for (int i = 0; colInf[i].colName && strlen(colInf[i].colName); i++) - { - // If there is more than one table being queried, qualify - // the column names with the table name prefix. - if (tblName[1] && strlen(tblName[1])) - { - qualName.Printf("%s.%s", colInf[i].tableName, colInf[i].colName); - pQueryCol1Choice->Append(qualName); - pQueryCol2Choice->Append(qualName); - } - else // Single table query, append just the column names - { - pQueryCol1Choice->Append(colInf[i].colName); - pQueryCol2Choice->Append(colInf[i].colName); - } - } - - pQueryCol1Choice->SetSelection(0); - pQueryCol2Choice->SetSelection(0); - pQueryOperatorChoice->SetSelection(0); - - pQueryValue2Msg->Show(FALSE); - pQueryValue2Txt->Show(FALSE); - - pQueryHintMsg->SetLabel(langQRY_EQ); - - pQuerySqlWhereMtxt->SetValue(pWhere); - - wxEndBusyCursor(); - - // Display the dialog window - Centre(wxBOTH); - ShowModal(); - -} // CqueryDlg() constructor - - -void CqueryDlg::OnButton( wxCommandEvent &event ) -{ - wxWindow *win = (wxWindow*) event.GetEventObject(); - OnCommand( *win, event ); -} - -void CqueryDlg::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - // Widget pointers won't be set when the dialog is constructed. - // Control is passed through this function once for each widget on - // a dialog as the dialog is constructed. - if (!widgetPtrsSet) - return; - - wxString widgetName = win.GetName(); - - // Operator choice box - if (widgetName == pQueryOperatorChoice->GetName()) - { - // Set the help text - switch((qryOp) pQueryOperatorChoice->GetSelection()) - { - case qryOpEQ: - pQueryHintMsg->SetLabel(langQRY_EQ); - break; - case qryOpLT: - pQueryHintMsg->SetLabel(langQRY_LT); - break; - case qryOpGT: - pQueryHintMsg->SetLabel(langQRY_GT); - break; - case qryOpLE: - pQueryHintMsg->SetLabel(langQRY_LE); - break; - case qryOpGE: - pQueryHintMsg->SetLabel(langQRY_GE); - break; - case qryOpBEGINS: - pQueryHintMsg->SetLabel(langQRY_BEGINS); - break; - case qryOpCONTAINS: - pQueryHintMsg->SetLabel(langQRY_CONTAINS); - break; - case qryOpLIKE: - pQueryHintMsg->SetLabel(langQRY_LIKE); - break; - case qryOpBETWEEN: - pQueryHintMsg->SetLabel(langQRY_BETWEEN); - break; - } - - // Hide the value2 widget - pQueryValue2Msg->Show(FALSE); // BETWEEN will show this widget - pQueryValue2Txt->Show(FALSE); // BETWEEN will show this widget - - // Disable the NOT operator for <, <=, >, >= - switch((qryOp) pQueryOperatorChoice->GetSelection()) - { - case qryOpLT: - case qryOpGT: - case qryOpLE: - case qryOpGE: - pQueryNotCheck->SetValue(0); - pQueryNotCheck->Enable(FALSE); - break; - default: - pQueryNotCheck->Enable(TRUE); - break; - } - - // Manipulate the dialog to handle the selected operator - switch((qryOp) pQueryOperatorChoice->GetSelection()) - { - case qryOpEQ: - case qryOpLT: - case qryOpGT: - case qryOpLE: - case qryOpGE: - pQueryCol2Choice->Enable(TRUE); - if (pQueryCol2Choice->GetSelection()) // Column name is highlighted - { - pQueryValue1Msg->Show(FALSE); - pQueryValue1Txt->Show(FALSE); - } - else // "Value" is highlighted - { - pQueryValue1Msg->Show(TRUE); - pQueryValue1Txt->Show(TRUE); - pQueryValue1Txt->SetFocus(); - } - break; - case qryOpBEGINS: - case qryOpCONTAINS: - case qryOpLIKE: - pQueryCol2Choice->SetSelection(0); - pQueryCol2Choice->Enable(FALSE); - pQueryValue1Msg->Show(TRUE); - pQueryValue1Txt->Show(TRUE); - pQueryValue1Txt->SetFocus(); - break; - case qryOpBETWEEN: - pQueryCol2Choice->SetSelection(0); - pQueryCol2Choice->Enable(FALSE); - pQueryValue2Msg->Show(TRUE); - pQueryValue2Txt->Show(TRUE); - pQueryValue1Msg->Show(TRUE); - pQueryValue1Txt->Show(TRUE); - pQueryValue1Txt->SetFocus(); - break; - } - - return; - - } // Operator choice box - - // Column 2 choice - if (widgetName == pQueryCol2Choice->GetName()) - { - if (pQueryCol2Choice->GetSelection()) // Column name is highlighted - { - pQueryValue1Msg->Show(FALSE); - pQueryValue1Txt->Show(FALSE); - } - else // "Value" is highlighted - { - pQueryValue1Msg->Show(TRUE); - pQueryValue1Txt->Show(TRUE); - pQueryValue1Txt->SetFocus(); - } - return; - - } // Column 2 choice - - // Add button - if (widgetName == pQueryAddBtn->GetName()) - { - ProcessAddBtn(); - return; - - } // Add button - - // And button - if (widgetName == pQueryAndBtn->GetName()) - { - AppendToWhere(" AND\n"); - return; - - } // And button - - // Or button - if (widgetName == pQueryOrBtn->GetName()) - { - AppendToWhere(" OR\n"); - return; - - } // Or button - - // Left Paren button - if (widgetName == pQueryLParenBtn->GetName()) - { - AppendToWhere("("); - return; - - } // Left Paren button - - // Right paren button - if (widgetName == pQueryRParenBtn->GetName()) - { - AppendToWhere(")"); - return; - - } // Right Paren button - - // Done button - if (widgetName == pQueryDoneBtn->GetName()) - { - // Be sure the where clause will not overflow the output buffer - if (strlen(pQuerySqlWhereMtxt->GetValue()) > DB_MAX_WHERE_CLAUSE_LEN) - { - wxString s; - s.Printf("Maximum where clause length exceeded.\nLength must be less than %d", DB_MAX_WHERE_CLAUSE_LEN+1); - wxMessageBox(s,"Error...",wxOK | wxICON_EXCLAMATION); - return; - } - // Validate the where clause for things such as matching parens - if (!ValidateWhereClause()) - return; - // Copy the where clause to the output buffer and exit - strcpy(pWhere, pQuerySqlWhereMtxt->GetValue()); - Close(); - return; - - } // Done button - - // Clear button - if (widgetName == pQueryClearBtn->GetName()) - { - bool Ok = (wxMessageBox("Are you sure you wish to clear the Query?","Confirm",wxYES_NO|wxICON_QUESTION) == wxYES); - - if (Ok) - pQuerySqlWhereMtxt->SetValue(""); - return; - - } // Clear button - - // Count button - if (widgetName == pQueryCountBtn->GetName()) - { - wxBeginBusyCursor(); - ProcessCountBtn(); - wxEndBusyCursor(); - return; - - } // Count button - -} // CqueryDlg::OnCommand - - -void CqueryDlg::OnCloseWindow(wxCloseEvent& event) -{ - // Clean up - if (colInf) - { - delete [] colInf; - colInf = 0; - } - - if (dbTable) - { - delete dbTable; - dbTable = 0; - } - - GetParent()->SetFocus(); - wxEndBusyCursor(); - - this->Destroy(); - -} // CqueryDlg::OnCloseWindow() - -/* -bool CqueryDlg::SetWidgetPtrs() -{ - bool abort = FALSE; - - abort = abort || !(pQueryCol1Choice = (wxChoice *)GetWidgetPtr("QueryCol1Choice",this)); - abort = abort || !(pQueryNotCheck = (wxCheckBox *)GetWidgetPtr("QueryNotCheck",this)); - abort = abort || !(pQueryOperatorChoice = (wxChoice *)GetWidgetPtr("QueryOperatorChoice",this)); - abort = abort || !(pQueryCol2Choice = (wxChoice *)GetWidgetPtr("QueryCol2Choice",this)); - abort = abort || !(pQueryValue1Txt = (wxTextCtrl *)GetWidgetPtr("QueryValue1Txt",this)); - abort = abort || !(pQueryValue2Txt = (wxTextCtrl *)GetWidgetPtr("QueryValue2Txt",this)); - abort = abort || !(pQuerySqlWhereMtxt = (wxMultiText *)GetWidgetPtr("QuerySqlWhereMtxt",this)); - abort = abort || !(pQueryAddBtn = (wxButton *)GetWidgetPtr("QueryAddBtn",this)); - abort = abort || !(pQueryAndBtn = (wxButton *)GetWidgetPtr("QueryAndBtn",this)); - abort = abort || !(pQueryOrBtn = (wxButton *)GetWidgetPtr("QueryOrBtn",this)); - abort = abort || !(pQueryLParenBtn = (wxButton *)GetWidgetPtr("QueryLParenBtn",this)); - abort = abort || !(pQueryRParenBtn = (wxButton *)GetWidgetPtr("QueryRParenBtn",this)); - abort = abort || !(pQueryDoneBtn = (wxButton *)GetWidgetPtr("QueryDoneBtn",this)); - abort = abort || !(pQueryClearBtn = (wxButton *)GetWidgetPtr("QueryClearBtn",this)); - abort = abort || !(pQueryCountBtn = (wxButton *)GetWidgetPtr("QueryCountBtn",this)); - abort = abort || !(pQueryHelpBtn = (wxButton *)GetWidgetPtr("QueryHelpBtn",this)); - abort = abort || !(pQueryHintMsg = (wxStaticText *)GetWidgetPtr("QueryHintMsg",this)); - - pFocusTxt = NULL; - - return(widgetPtrsSet = !abort); - -} // CqueryDlg::SetWidgetPtrs -*/ - -void CqueryDlg::AppendToWhere(char *s) -{ - wxString whereStr = pQuerySqlWhereMtxt->GetValue(); - whereStr += s; - pQuerySqlWhereMtxt->SetValue(whereStr); - -} // CqueryDlg::AppendToWhere() - - -void CqueryDlg::ProcessAddBtn() -{ - qryOp oper = (qryOp) pQueryOperatorChoice->GetSelection(); - - // Verify that eveything is filled in correctly - if (pQueryCol2Choice->GetSelection() == 0) // "Value" is selected - { - // Verify that value 1 is filled in - if (strlen(pQueryValue1Txt->GetValue()) == 0) - { - wxBell(); - pQueryValue1Txt->SetFocus(); - return; - } - // For the BETWEEN operator, value 2 must be filled in as well - if (oper == qryOpBETWEEN && - strlen(pQueryValue2Txt->GetValue()) == 0) - { - wxBell(); - pQueryValue2Txt->SetFocus(); - return; - } - } - - // Build the expression and append it to the where clause window - wxString s = pQueryCol1Choice->GetStringSelection(); - - if (pQueryNotCheck->GetValue() && (oper != qryOpEQ)) - s += " NOT"; - - switch(oper) - { - case qryOpEQ: - if (pQueryNotCheck->GetValue()) // NOT box is checked - s += " <>"; - else - s += " ="; - break; - case qryOpLT: - s += " <"; - break; - case qryOpGT: - s += " >"; - break; - case qryOpLE: - s += " <="; - break; - case qryOpGE: - s += " >="; - break; - case qryOpBEGINS: - case qryOpCONTAINS: - case qryOpLIKE: - s += " LIKE"; - break; - case qryOpBETWEEN: - s += " BETWEEN"; - break; - } - - s += " "; - - int col1Idx = pQueryCol1Choice->GetSelection(); - - bool quote = FALSE; - if (colInf[col1Idx].sqlDataType == SQL_VARCHAR || - oper == qryOpBEGINS || - oper == qryOpCONTAINS || - oper == qryOpLIKE) - quote = TRUE; - - if (pQueryCol2Choice->GetSelection()) // Column name - s += pQueryCol2Choice->GetStringSelection(); - else // Column 2 is a "value" - { - if (quote) - s += "'"; - if (oper == qryOpCONTAINS) - s += "%"; - s += pQueryValue1Txt->GetValue(); - if (oper == qryOpCONTAINS || oper == qryOpBEGINS) - s += "%"; - if (quote) - s += "'"; - } - - if (oper == qryOpBETWEEN) - { - s += " AND "; - if (quote) - s += "'"; - s += pQueryValue2Txt->GetValue(); - if (quote) - s += "'"; - } - - AppendToWhere((char*) (const char*) s); - -} // CqueryDlg::ProcessAddBtn() - - -void CqueryDlg::ProcessCountBtn() -{ - if (!ValidateWhereClause()) - return; - - if (dbTable == 0) // wxTable object needs to be created and opened - { - if (!(dbTable = new wxTable(pDB, masterTableName, 0))) - { - wxMessageBox("Memory allocation failed creating a wxTable object.","Error...",wxOK | wxICON_EXCLAMATION); - return; - } - if (!dbTable->Open()) - { - wxString tStr; - tStr = "ODBC error during Open()\n\n"; - tStr += GetExtendedDBErrorMsg(__FILE__,__LINE__); - wxMessageBox(tStr,"ODBC Error...",wxOK | wxICON_EXCLAMATION); - return; - } - } - - // Count() with WHERE clause - dbTable->where = (char*) (const char*) pQuerySqlWhereMtxt->GetValue(); - ULONG whereCnt = dbTable->Count(); - - // Count() of all records in the table - dbTable->where = 0; - ULONG totalCnt = dbTable->Count(); - - if (whereCnt > 0 || totalCnt == 0) - { - wxString tStr; - tStr.Printf("%lu of %lu records match the query criteria.",whereCnt,totalCnt); - wxMessageBox(tStr,"Notice...",wxOK | wxICON_INFORMATION); - } - else - { - wxString tStr; - tStr.Printf("%lu of %lu records match the query criteria.\n\nEither the criteria entered produced a result set\nwith no records, or there was a syntactical error\nin the clause you entered.\n\nPress the details button to see if any database errors were reported.",whereCnt,totalCnt); - wxMessageBox(tStr,"Notice...",wxOK | wxICON_INFORMATION); - } - - // After a wxMessageBox, the focus does not necessarily return to the - // window which was the focus when the message box popped up, so return - // focus to the Query dialog for certain - SetFocus(); - -} // CqueryDlg::ProcessCountBtn() - - -bool CqueryDlg::ValidateWhereClause() -{ - wxString where = pQuerySqlWhereMtxt->GetValue(); - - if (where.Freq('(') != where.Freq(')')) - { - wxMessageBox("There are mismatched parenthesis in the constructed where clause","Error...",wxOK | wxICON_EXCLAMATION); - return(FALSE); - } - // After a wxMessageBox, the focus does not necessarily return to the - // window which was the focus when the message box popped up, so return - // focus to the Query dialog for certain - SetFocus(); - - return(TRUE); - -} // CqueryDlg::ValidateWhereClause() diff --git a/samples/db/dbtest.def b/samples/db/dbtest.def deleted file mode 100644 index 013825e9e7..0000000000 --- a/samples/db/dbtest.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME DBTEST -DESCRIPTION 'Database wxWindows application' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/db/dbtest.h b/samples/db/dbtest.h deleted file mode 100644 index b6d1bd6ea3..0000000000 --- a/samples/db/dbtest.h +++ /dev/null @@ -1,384 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dbtest.h -// Purpose: wxWindows database demo app -// Author: George Tasker -// Modified by: -// Created: 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Remstar International, Inc. -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "dbtest.h" -#endif - -#include -#include - -enum DialogModes {mView,mCreate,mEdit,mSearch}; - -// ID for the menu quit command -#define FILE_CREATE 100 -#define FILE_EXIT 199 -#define EDIT_PARAMETERS 200 -#define ABOUT_DEMO 300 - - -// Name of the table to be created/opened -const char CONTACT_TABLE_NAME[] = "contacts"; - -// Nuber of columns in the above table -const int CONTACT_NO_COLS = 12; // 0-11 - -// Global structure for holding ODBC connection information -struct DbStuff DbConnectInf; - -enum Language {langENGLISH, langFRENCH, langGERMAN, langSPANISH, langOTHER}; - -// Forward class declarations -class CeditorDlg; -class CparameterDlg; - -#ifdef __WXGTK__ -const char paramFilename[] = "../database.cfg"; -#else -const char paramFilename[] = "database.cfg"; -#endif - - -/* - * This class contains the actual data members that are used for transferring - * data back and forth from the database to the program. - * - * NOTE: The object described in this class is just for example purposes, and has no - * real meaning other than to show each type of field being used by the database - */ -class CstructContact : public wxObject -{ - public: - char Name[ 50+1 ]; // Contact's name - char Addr1[ 50+1 ]; - char Addr2[ 50+1 ]; - char City[ 25+1 ]; - char State[ 25+1 ]; - char PostalCode[ 15+1 ]; - char Country[ 20+1 ]; - TIMESTAMP_STRUCT JoinDate; // Date on which this person joined the wxWindows project - Language NativeLanguage; // Enumerated type indicating person's native language - bool IsDeveloper; // Is this person a developer for wxWindows, or just a subscriber - int Contributions; // Something to show off an integer field - ULONG LinesOfCode; // Something to show off a 'long' field -}; // CstructContact - - -// -// NOTE: Ccontact inherits wxTable, which gives access to all the database functionality -// -class Ccontact : public wxTable, public CstructContact -{ - private: - bool freeDbConn; - void SetupColumns(); - - public: - wxString whereStr; - wxString qryWhereStr; // Where string returned from the query dialog - - Ccontact(wxDB *pwxDB=NULL); - ~Ccontact(); - - void Initialize(); - bool CreateIndexes(void); - bool FetchByName(char *name); - -}; // Ccontact class definition - - -typedef struct Cparameters -{ - // The length of these strings were arbitrarily picked, and are - // dependent on the OS and database engine you will be using. - char ODBCSource[100+1]; - char UserName[25+1]; - char Password[25+1]; -} Cparameters; - - -// Define a new application type -class DatabaseDemoApp: public wxApp -{ - public: - Cparameters params; - bool OnInit(); -}; // DatabaseDemoApp - -DECLARE_APP(DatabaseDemoApp) - -// Define a new frame type -class DatabaseDemoFrame: public wxFrame -{ - private: - CeditorDlg *pEditorDlg; - CparameterDlg *pParamDlg; - - public: - DatabaseDemoFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& sz); - - void OnCloseWindow(wxCloseEvent& event); - void OnCreate(wxCommandEvent& event); - void OnExit(wxCommandEvent& event); - void OnEditParameters(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - - void CreateDataTable(); - void BuildEditorDialog(); - void BuildParameterDialog(wxWindow *parent); - -DECLARE_EVENT_TABLE() -}; // DatabaseDemoFrame - - - -// *************************** CeditorDlg *************************** - -class CeditorDlg : public wxPanel -{ - private: - bool widgetPtrsSet; - wxString saveName; - - // Pointers to all widgets on the dialog - wxButton *pCreateBtn, *pEditBtn, *pDeleteBtn, *pCopyBtn, *pSaveBtn, *pCancelBtn; - wxButton *pPrevBtn, *pNextBtn, *pQueryBtn, *pResetBtn, *pDoneBtn, *pHelpBtn; - wxButton *pNameListBtn; - wxTextCtrl *pNameTxt, *pAddress1Txt, *pAddress2Txt,*pCityTxt, *pStateTxt, *pCountryTxt,*pPostalCodeTxt; - wxStaticText *pNameMsg, *pAddress1Msg, *pAddress2Msg,*pCityMsg, *pStateMsg, *pCountryMsg,*pPostalCodeMsg; - wxTextCtrl *pJoinDateTxt,*pContribTxt, *pLinesTxt; - wxStaticText *pJoinDateMsg,*pContribMsg, *pLinesMsg; - wxRadioBox *pDeveloperRadio; - wxChoice *pNativeLangChoice; - wxStaticText *pNativeLangMsg; - - public: - enum DialogModes mode; - Ccontact *Contact; // this is the table object that will be being manipulated - - CeditorDlg(wxWindow *parent); - void OnCloseWindow(wxCloseEvent& event); - void OnButton( wxCommandEvent &event ); - void OnCommand(wxWindow& win, wxCommandEvent& event); - void OnActivate(bool) {}; // necessary for hot keys - - void FieldsEditable(); - void SetMode(enum DialogModes m); - bool PutData(); - bool GetData(); - bool Save(); - bool GetNextRec(); - bool GetPrevRec(); - bool GetRec(char *whereStr); - -DECLARE_EVENT_TABLE() -}; // CeditorDlg - -#define EDITOR_DIALOG 199 - -// Editor dialog control ids -#define EDITOR_DIALOG_FN_GROUP 200 -#define EDITOR_DIALOG_SEARCH_GROUP 201 -#define EDITOR_DIALOG_CREATE 202 -#define EDITOR_DIALOG_EDIT 203 -#define EDITOR_DIALOG_DELETE 204 -#define EDITOR_DIALOG_COPY 205 -#define EDITOR_DIALOG_SAVE 206 -#define EDITOR_DIALOG_CANCEL 207 -#define EDITOR_DIALOG_PREV 208 -#define EDITOR_DIALOG_NEXT 209 -#define EDITOR_DIALOG_QUERY 211 -#define EDITOR_DIALOG_RESET 212 -#define EDITOR_DIALOG_NAME_MSG 213 -#define EDITOR_DIALOG_NAME_TEXT 214 -#define EDITOR_DIALOG_LOOKUP 215 -#define EDITOR_DIALOG_ADDRESS1_MSG 216 -#define EDITOR_DIALOG_ADDRESS1_TEXT 217 -#define EDITOR_DIALOG_ADDRESS2_MSG 218 -#define EDITOR_DIALOG_ADDRESS2_TEXT 219 -#define EDITOR_DIALOG_CITY_MSG 220 -#define EDITOR_DIALOG_CITY_TEXT 221 -#define EDITOR_DIALOG_COUNTRY_MSG 222 -#define EDITOR_DIALOG_COUNTRY_TEXT 223 -#define EDITOR_DIALOG_POSTAL_MSG 224 -#define EDITOR_DIALOG_POSTAL_TEXT 225 -#define EDITOR_DIALOG_LANG_MSG 226 -#define EDITOR_DIALOG_LANG_CHOICE 227 -#define EDITOR_DIALOG_DATE_MSG 228 -#define EDITOR_DIALOG_DATE_TEXT 229 -#define EDITOR_DIALOG_CONTRIB_MSG 230 -#define EDITOR_DIALOG_CONTRIB_TEXT 231 -#define EDITOR_DIALOG_LINES_MSG 232 -#define EDITOR_DIALOG_LINES_TEXT 233 -#define EDITOR_DIALOG_STATE_MSG 234 -#define EDITOR_DIALOG_STATE_TEXT 235 -#define EDITOR_DIALOG_DEVELOPER 236 -#define EDITOR_DIALOG_JOIN_MSG 237 -#define EDITOR_DIALOG_JOIN_TEXT 238 - -// *************************** CparameterDlg *************************** - -class CparameterDlg : public wxDialog -{ - private: - bool widgetPtrsSet; - enum DialogModes mode; - bool saved; - Cparameters savedParamSettings; - - // Pointers to all widgets on the dialog - wxStaticText *pParamODBCSourceMsg; - wxListBox *pParamODBCSourceList; - wxStaticText *pParamUserNameMsg, *pParamPasswordMsg; - wxTextCtrl *pParamUserNameTxt, *pParamPasswordTxt; - wxButton *pParamSaveBtn, *pParamCancelBtn; - - public: - CparameterDlg(wxWindow *parent); - void OnCloseWindow(wxCloseEvent& event); - void OnCommand(wxWindow& win, wxCommandEvent& event); - void OnActivate(bool) {}; // necessary for hot keys - - bool PutData(); - bool GetData(); - bool Save(); - void FillDataSourceList(); - -DECLARE_EVENT_TABLE() -}; // CparameterDlg - -#define PARAMETER_DIALOG 400 - -// Parameter dialog control ids -#define PARAMETER_DIALOG_SOURCE_MSG 401 -#define PARAMETER_DIALOG_SOURCE_LISTBOX 402 -#define PARAMETER_DIALOG_NAME_MSG 403 -#define PARAMETER_DIALOG_NAME_TEXT 404 -#define PARAMETER_DIALOG_PASSWORD_MSG 405 -#define PARAMETER_DIALOG_PASSWORD_TEXT 406 -#define PARAMETER_DIALOG_SAVE 407 -#define PARAMETER_DIALOG_CANCEL 408 - -// *************************** CqueryDlg *************************** - - -// QUERY DIALOG -enum qryOp -{ - qryOpEQ, - qryOpLT, - qryOpGT, - qryOpLE, - qryOpGE, - qryOpBEGINS, - qryOpCONTAINS, - qryOpLIKE, - qryOpBETWEEN -}; - - -// Query strings -char * const langQRY_EQ = "column = column | value"; -char * const langQRY_LT = "column < column | value"; -char * const langQRY_GT = "column > column | value"; -char * const langQRY_LE = "column <= column | value"; -char * const langQRY_GE = "column >= column | value"; -char * const langQRY_BEGINS = "columns that BEGIN with the string entered"; -char * const langQRY_CONTAINS = "columns that CONTAIN the string entered"; -char * const langQRY_LIKE = "% matches 0 or more of any char; _ matches 1 char"; -char * const langQRY_BETWEEN = "column BETWEEN value AND value"; - - -class CqueryDlg : public wxDialog -{ - private: - CcolInf *colInf; // Column inf. returned by db->GetColumns() - wxTable *dbTable; - char *masterTableName; - char *pWhere; // A pointer to the storage for the resulting where clause - wxDB *pDB; - - public: - bool widgetPtrsSet; - - // Widget pointers - wxStaticText *pQueryCol1Msg; - wxChoice *pQueryCol1Choice; - wxStaticText *pQueryNotMsg; - wxCheckBox *pQueryNotCheck; - wxStaticText *pQueryOperatorMsg; - wxChoice *pQueryOperatorChoice; - wxStaticText *pQueryCol2Msg; - wxChoice *pQueryCol2Choice; - wxStaticText *pQueryValue1Msg; - wxTextCtrl *pQueryValue1Txt; - wxStaticText *pQueryValue2Msg; - wxTextCtrl *pQueryValue2Txt; - wxStaticText *pQuerySqlWhereMsg; - wxTextCtrl *pQuerySqlWhereMtxt; - wxButton *pQueryAddBtn; - wxButton *pQueryAndBtn; - wxButton *pQueryOrBtn; - wxButton *pQueryLParenBtn; - wxButton *pQueryRParenBtn; - wxButton *pQueryDoneBtn; - wxButton *pQueryClearBtn; - wxButton *pQueryCountBtn; - wxButton *pQueryHelpBtn; - wxStaticBox *pQueryHintGrp; - wxStaticText *pQueryHintMsg; - - wxTextCtrl *pFocusTxt; - - CqueryDlg(wxWindow *parent, wxDB *pDb, char *tblName[], char *pWhereArg); - - void OnButton( wxCommandEvent &event ); - void OnCommand(wxWindow& win, wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void OnActivate(bool) {}; // necessary for hot keys - -// bool SetWidgetPtrs(); - void AppendToWhere(char *s); - void ProcessAddBtn(); - void ProcessCountBtn(); - bool ValidateWhereClause(); - -DECLARE_EVENT_TABLE() -}; // CqueryDlg - -#define QUERY_DIALOG 300 - -// Parameter dialog control ids -#define QUERY_DIALOG_COL_MSG 301 -#define QUERY_DIALOG_COL_CHOICE 302 -#define QUERY_DIALOG_NOT_MSG 303 -#define QUERY_DIALOG_NOT_CHECKBOX 304 -#define QUERY_DIALOG_OP_MSG 305 -#define QUERY_DIALOG_OP_CHOICE 306 -#define QUERY_DIALOG_COL2_MSG 307 -#define QUERY_DIALOG_COL2_CHOICE 308 -#define QUERY_DIALOG_WHERE_MSG 309 -#define QUERY_DIALOG_WHERE_TEXT 310 -#define QUERY_DIALOG_ADD 311 -#define QUERY_DIALOG_AND 312 -#define QUERY_DIALOG_OR 313 -#define QUERY_DIALOG_LPAREN 314 -#define QUERY_DIALOG_RPAREN 315 -#define QUERY_DIALOG_DONE 316 -#define QUERY_DIALOG_CLEAR 317 -#define QUERY_DIALOG_COUNT 318 -#define QUERY_DIALOG_VALUE1_MSG 319 -#define QUERY_DIALOG_VALUE1_TEXT 320 -#define QUERY_DIALOG_VALUE2_MSG 321 -#define QUERY_DIALOG_VALUE2_TEXT 322 -#define QUERY_DIALOG_HINT_GROUP 323 -#define QUERY_DIALOG_HINT_MSG 324 - diff --git a/samples/db/dbtest.ico b/samples/db/dbtest.ico deleted file mode 100644 index c4dbd3f7847a93a316ad9c909120b7c1d6934de0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc&yF%H5o47>soBd{=cWJKx*coG{!2g*dH4*d#Z>ENM#KqbDxh*%gv3g?E>gd#C= zj^j8!CyrYnpoHNRit_-N(=MnXbwv#@;!H619SOjJB(a7wm#C_WRs*IPFh*BYif-xj z3#kVnH?9Etjf;NVW#_!Fkri{vgpmO_N_v5jX^ikPHnn)21Pc}+dBNb!1f!xt&rs??|Z?h*O1I1K`JvzDv2 k?|bb|`(LN_0Gw_&vo(*`F5rdhe*VV}{{eky@DJ6ypDptktN;K2 diff --git a/samples/db/dbtest.rc b/samples/db/dbtest.rc deleted file mode 100644 index 69fb4aa0a1..0000000000 --- a/samples/db/dbtest.rc +++ /dev/null @@ -1,3 +0,0 @@ -db_icon ICON "dbtest.ico" -#include "wx\msw\wx.rc" - diff --git a/samples/db/listdb.cpp b/samples/db/listdb.cpp deleted file mode 100644 index 574bab36be..0000000000 --- a/samples/db/listdb.cpp +++ /dev/null @@ -1,394 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listdb.cpp -// Purpose: Data table lookup listbox code -// Author: George Tasker/Doug Card -// Modified by: -// Created: 1996 -// RCS-ID: $Id$ -// Copyright: (c) 1996 Remstar International, Inc. -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -/* -// SYNOPSIS START - - Member functions for the classes defined in LISTDB.H - - This class is used to present a generic ListBox lookup window for - use with any of the object creation/selection choice widgets. This - dialog window will present a (possibly) scrolling list of values - that come from a data table source. Based on the object type passed - in the constructor, a ListBox is built to present the user with a - single selection listbox. - - The string selected from the list box is stored in the Global variable - "ListDB_Seclection", and will remain set until another interation of this - routine is called. - - For each object (database) type that is to be used, an overridden - constructor should be written to appropriately link to the proper - data table/object for building the list. - - The data table record access is all handled through the routines - in this module, interfacing with the methods defined in wxTable. - - All objects which use data table access must be initialized and - have opened the table prior to passing them in the dialog - constructor, and the 'where' query should already have been set - and performed before creating this dialog instance. - -// SYNOPSIS STOP -*/ - -#ifdef __GNUG__ -#pragma implementation "listdb.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif //__BORLANDC__ - -#ifndef WX_PRECOMP -#include -#endif //WX_PRECOMP - -#include - -#include "listdb.h" - -// Global structure for holding ODBC connection information -extern DbStuff DbConnectInf; - -// Global database connection -extern wxDB *READONLY_DB; - - -// Used for passing the selected listbox selection back to the calling -// routine. This variable must be declared as 'extern' in the calling -// source module -char ListDB_Selection[LOOKUP_COL_LEN+1]; - -// If the listbox contains two columns of data, the second column is -// returned in this variable. -char ListDB_Selection2[LOOKUP_COL_LEN+1]; - -// Constants -const int LISTDB_NO_SPACES_BETWEEN_COLS = 3; - - -// Clookup constructor -Clookup::Clookup(char *tblName, char *colName) : wxTable(READONLY_DB, tblName, 1) -{ - - SetColDefs (0, colName, DB_DATA_TYPE_VARCHAR, lookupCol, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE); - -} // Clookup() - - -// Clookup2 constructor -Clookup2::Clookup2(char *tblName, char *colName1, char *colName2, wxDB *pDb) - : wxTable(pDb, tblName, (1 + (strlen(colName2) > 0))) -{ - int i = 0; - - SetColDefs (i, colName1, DB_DATA_TYPE_VARCHAR, lookupCol1, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE); - - if (strlen(colName2) > 0) - SetColDefs (++i, colName2, DB_DATA_TYPE_VARCHAR, lookupCol2, SQL_C_CHAR, LOOKUP_COL_LEN+1, FALSE, FALSE); - -} // Clookup2() - - -// This is a generic lookup constructor that will work with any table and any column -ClookUpDlg::ClookUpDlg(wxWindow *parent, char *windowTitle, char *tableName, char *colName, - char *where, char *orderBy) : wxDialog (parent, LOOKUP_DIALOG, "Select...", wxPoint(-1, -1), wxSize(400, 290)) -{ - wxBeginBusyCursor(); - - strcpy(ListDB_Selection,""); - widgetPtrsSet = FALSE; - lookup = 0; - lookup2 = 0; - noDisplayCols = 1; - col1Len = 0; - - pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint(5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "LookUpSelectList"); - pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, "&Ok", wxPoint(113, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpOkBtn"); - pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, "C&ancel", wxPoint(212, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpCancelBtn"); - - widgetPtrsSet = TRUE; - - // Query the lookup table and display the result set - if (!(lookup = new Clookup(tableName, colName))) - { - wxMessageBox("Error allocating memory for 'Clookup'object.","Error..."); - Close(); - return; - } - - if (!lookup->Open()) - { - wxString tStr; - tStr.Printf("Unable to open the table '%s'.",tableName); - wxMessageBox(tStr,"ODBC Error..."); - Close(); - return; - } - - lookup->orderBy = orderBy; - lookup->where = where; - if (!lookup->Query()) - { - wxMessageBox("ODBC error during Query()","ODBC Error..."); - Close(); - return; - } - - // Fill in the list box from the query result set - while (lookup->GetNext()) - pLookUpSelectList->Append(lookup->lookupCol); - - // Highlight the first list item - pLookUpSelectList->SetSelection(0); - - // Make the OK activate by pressing Enter - if (pLookUpSelectList->Number()) - pLookUpOkBtn->SetDefault(); - else - { - pLookUpCancelBtn->SetDefault(); - pLookUpOkBtn->Enable(FALSE); - } - - // Display the dialog window - SetTitle(windowTitle); - Centre(wxBOTH); - wxEndBusyCursor(); - ShowModal(); - -} // Generic lookup constructor - - -// -// This is a generic lookup constructor that will work with any table and any column. -// It extends the capabilites of the lookup dialog in the following ways: -// -// 1) 2 columns rather than one -// 2) The ability to select DISTINCT column values -// -// Only set distinctValues equal to true if necessary. In many cases, the constraints -// of the index(es) will enforce this uniqueness. Selecting DISTINCT does require -// overhead by the database to ensure that all values returned are distinct. Therefore, -// use this ONLY when you need it. -// -// For complicated queries, you can pass in the sql select statement. This would be -// necessary if joins are involved since by default both columns must come from the -// same table. -// -// If you do query by sql statement, you must pass in the maximum lenght of column1, -// since it cannot be derived when you query using your own sql statement. -// -// The optional database connection can be used if you'd like the lookup class -// to use a database pointer other than the global READONLY_DB. This is necessary if -// records are being saved, but not committed to the db, yet should be included -// in the lookup window. -// -ClookUpDlg::ClookUpDlg(wxWindow *parent, char *windowTitle, char *tableName, - char *dispCol1, char *dispCol2, char *where, char *orderBy, bool distinctValues, - char *selectStmt, int maxLenCol1, wxDB *pDb, bool allowOk) : wxDialog (parent, LOOKUP_DIALOG, "Select...", wxPoint(-1, -1), wxSize(400, 290)) -{ - wxBeginBusyCursor(); - - strcpy(ListDB_Selection,""); - strcpy(ListDB_Selection2,""); - widgetPtrsSet = FALSE; - lookup = 0; - lookup2 = 0; - noDisplayCols = (strlen(dispCol2) ? 2 : 1); - col1Len = 0; - - wxFont fixedFont(12,wxMODERN,wxNORMAL,wxNORMAL); - - // this is done with fixed font so that the second column (if any) will be left - // justified in the second column - pLookUpSelectList = new wxListBox(this, LOOKUP_DIALOG_SELECT, wxPoint(5, 15), wxSize(384, 195), 0, 0, wxLB_SINGLE|wxLB_ALWAYS_SB, wxDefaultValidator, "LookUpSelectList"); - - pLookUpSelectList->SetFont(fixedFont); - - pLookUpOkBtn = new wxButton(this, LOOKUP_DIALOG_OK, "&Ok", wxPoint(113, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpOkBtn"); - pLookUpCancelBtn = new wxButton(this, LOOKUP_DIALOG_CANCEL, "C&ancel", wxPoint(212, 222), wxSize(70, 35), 0, wxDefaultValidator, "LookUpCancelBtn"); - - widgetPtrsSet = TRUE; - - // Query the lookup table and display the result set - if (!(lookup2 = new Clookup2(tableName, dispCol1, dispCol2, pDb))) - { - wxMessageBox("Error allocating memory for 'Clookup2'object.","Error..."); - Close(); - return; - } - - if (!lookup2->Open()) - { - wxString tStr; - tStr.Printf("Unable to open the table '%s'.",tableName); - wxMessageBox(tStr,"ODBC Error..."); - Close(); - return; - } - - // If displaying 2 columns, determine the maximum length of column1 - int maxColLen; - if (maxLenCol1) - maxColLen = col1Len = maxLenCol1; // user passed in max col length for column 1 - else - { - maxColLen = LOOKUP_COL_LEN; - if (strlen(dispCol2)) - { - wxString q = "SELECT MAX({fn LENGTH("; - q += dispCol1; - q += ")}), NULL"; - q += " FROM "; - q += tableName; - if (strlen(where)) - { - q += " WHERE "; - q += where; - } - if (!lookup2->QueryBySqlStmt((char*) (const char*) q)) - { - wxMessageBox("ODBC error during QueryBySqlStmt()","ODBC Error..."); - Close(); - return; - } - if (lookup2->GetNext()) - maxColLen = col1Len = atoi(lookup2->lookupCol1); - else - wxMessageBox("ODBC error during GetNext()","ODBC Error..."); - } - } - - // Query the actual record set - if (selectStmt && strlen(selectStmt)) // Query by sql stmt passed in - { - if (!lookup2->QueryBySqlStmt(selectStmt)) - { - wxMessageBox("ODBC error during QueryBySqlStmt()","ODBC Error..."); - Close(); - return; - } - } - else // Query using where and order by clauses - { - lookup2->orderBy = orderBy; - lookup2->where = where; - if (!lookup2->Query(FALSE, distinctValues)) - { - wxMessageBox("ODBC error during Query()","ODBC Error..."); - Close(); - return; - } - } - - // Fill in the list box from the query result set - wxString s; - while (lookup2->GetNext()) - { - s = lookup2->lookupCol1; - if (strlen(dispCol2)) // Append the optional column 2 - { - s.Append(' ', (maxColLen + LISTDB_NO_SPACES_BETWEEN_COLS - strlen(lookup2->lookupCol1))); - s.Append(lookup2->lookupCol2); - } - pLookUpSelectList->Append(s); - } - - // Highlight the first list item - pLookUpSelectList->SetSelection(0); - - // Make the OK activate by pressing Enter - if (pLookUpSelectList->Number()) - pLookUpOkBtn->SetDefault(); - else - { - pLookUpCancelBtn->SetDefault(); - pLookUpOkBtn->Enable(FALSE); - } - - pLookUpOkBtn->Enable(allowOk); - - // Display the dialog window - SetTitle(windowTitle); - Centre(wxBOTH); - wxEndBusyCursor(); - ShowModal(); - -} // Generic lookup constructor 2 - - -bool ClookUpDlg::OnClose(void) -{ - widgetPtrsSet = FALSE; - GetParent()->Enable(TRUE); - - if (lookup) - delete lookup; - if (lookup2) - delete lookup2; - - wxEndBusyCursor(); - return TRUE; - -} // ClookUpDlg::OnClose - - -void ClookUpDlg::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - wxString widgetName = win.GetName(); - - if (widgetPtrsSet) - { - // OK Button - if (widgetName == pLookUpOkBtn->GetName()) - { - if (pLookUpSelectList->GetSelection() != -1) - { - if (noDisplayCols == 1) - strcpy (ListDB_Selection, pLookUpSelectList->GetStringSelection()); - else // 2 display columns - { - wxString s = pLookUpSelectList->GetStringSelection(); - // Column 1 - s = s.SubString(0, col1Len-1); - s = s.Strip(); - strcpy(ListDB_Selection, s); - // Column 2 - s = pLookUpSelectList->GetStringSelection(); - s = s.Mid(col1Len + LISTDB_NO_SPACES_BETWEEN_COLS); - s = s.Strip(); - strcpy(ListDB_Selection2, s); - } - } - else - { - strcpy(ListDB_Selection,""); - strcpy(ListDB_Selection2,""); - } - Close(); - } // OK Button - - // Cancel Button - if (widgetName == pLookUpCancelBtn->GetName()) - { - strcpy (ListDB_Selection,""); - strcpy (ListDB_Selection2,""); - Close(); - } // Cancel Button - } - -}; // ClookUpDlg::OnCommand - -// *********************************** listdb.cpp ********************************** diff --git a/samples/db/listdb.h b/samples/db/listdb.h deleted file mode 100644 index 440ad92f3b..0000000000 --- a/samples/db/listdb.h +++ /dev/null @@ -1,128 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listdb.h -// Purpose: wxWindows database demo app -// Author: George Tasker -// Modified by: -// Created: 1996 -// RCS-ID: $Id$ -// Copyright: (c) 1996 Remstar International, Inc. -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "listdb.h" -#endif - -/* - Contains dialog class for creating a data table lookup listbox -*/ - -#ifndef LISTDB_DOT_H -#define LISTDB_DOT_H - - -#include - -const int LOOKUP_COL_LEN = 250; - -// Global database connection -extern wxDB *READONLY_DB; - -// Clookup class -class Clookup : public wxTable -{ - public: - - char lookupCol[LOOKUP_COL_LEN+1]; - - Clookup(char *tblName, char *colName); - -}; // Clookup - -// Clookup2 class -class Clookup2 : public wxTable -{ - public: - - char lookupCol1[LOOKUP_COL_LEN+1]; - char lookupCol2[LOOKUP_COL_LEN+1]; - - Clookup2(char *tblName, char *colName1, char *colName2, wxDB *pDb); - -}; // Clookup2 - -class ClookUpDlg : public wxDialog -{ - private: - bool widgetPtrsSet; - int currentCursor; - Clookup *lookup; - Clookup2 *lookup2; - int noDisplayCols; - int col1Len; - - wxListBox *pLookUpSelectList; - wxButton *pLookUpOkBtn; - wxButton *pLookUpCancelBtn; - - public: - - // This is a generic lookup constructor that will work with any table and any column - ClookUpDlg(wxWindow *parent, - char *windowTitle, - char *tableName, - char *colName, - char *where, - char *orderBy); - - // - // This is a generic lookup constructor that will work with any table and any column. - // It extends the capabilites of the lookup dialog in the following ways: - // - // 1) 2 columns rather than one - // 2) The ability to select DISTINCT column values - // - // Only set distinctValues equal to true if necessary. In many cases, the constraints - // of the index(es) will enforce this uniqueness. Selecting DISTINCT does require - // overhead by the database to ensure that all values returned are distinct. Therefore, - // use this ONLY when you need it. - // - // For complicated queries, you can pass in the sql select statement. This would be - // necessary if joins are involved since by default both columns must come from the - // same table. - // - // If you do query by sql statement, you must pass in the maximum length of column1, - // since it cannot be derived when you query using your own sql statement. - // - // The optional database connection can be used if you'd like the lookup class - // to use a database pointer other than the global READONLY_DB. This is necessary if - // records are being saved, but not committed to the db, yet should be included - // in the lookup window. - // - ClookUpDlg(wxWindow *parent, - char *windowTitle, - char *tableName, - char *dispCol1, // Must have at least 1 display column - char *dispCol2, // Optional - char *where, - char *orderBy, - bool distinctValues, // e.g. SELECT DISTINCT ... - char *selectStmt = 0, // If you wish to query by SQLstmt (complicated lookups) - int maxLenCol1 = 0, // Mandatory if querying by SQLstmt - wxDB *pDb = READONLY_DB, // Database connection pointer - bool allowOk = TRUE); // is the OK button enabled - - void OnCommand(wxWindow& win, wxCommandEvent& event); - bool OnClose(); - void OnActivate(bool) {}; // necessary for hot keys -}; - -#define LOOKUP_DIALOG 500 - -#define LOOKUP_DIALOG_SELECT 501 -#define LOOKUP_DIALOG_OK 502 -#define LOOKUP_DIALOG_CANCEL 503 - -#endif // LISTDB_DOT_H - -// ************************************ listdb.h ********************************* diff --git a/samples/db/makefile.b32 b/samples/db/makefile.b32 deleted file mode 100644 index a9f52b40a7..0000000000 --- a/samples/db/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=dbtest -OBJECTS = $(TARGET).obj listdb.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/db/makefile.dos b/samples/db/makefile.dos deleted file mode 100644 index 437ac4e46e..0000000000 --- a/samples/db/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=dbtest -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/db/makefile.g95 b/samples/db/makefile.g95 deleted file mode 100644 index c5239232ba..0000000000 --- a/samples/db/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=dbtest -OBJECTS = $(TARGET).o listdb.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/db/makefile.unx b/samples/db/makefile.unx deleted file mode 100644 index 2c8bf754e9..0000000000 --- a/samples/db/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dbtest example (UNIX). - -PROGRAM=dbtest - -OBJECTS=$(PROGRAM).o listdb.o - -include ../../src/makeprog.env - diff --git a/samples/db/makefile.vc b/samples/db/makefile.vc deleted file mode 100644 index e1243b6d30..0000000000 --- a/samples/db/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=dbtest -OBJECTS = $(PROGRAM).obj listdb.obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/db/makefile.wat b/samples/db/makefile.wat deleted file mode 100644 index c3d0e8772d..0000000000 --- a/samples/db/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = dbtest -OBJECTS = $(PROGRAM).obj listdb.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/dde/.cvsignore b/samples/dde/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/dde/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/dde/client.cpp b/samples/dde/client.cpp deleted file mode 100644 index 1422e850cb..0000000000 --- a/samples/dde/client.cpp +++ /dev/null @@ -1,210 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: client.cpp -// Purpose: DDE sample: client -// Author: Julian Smart -// Modified by: -// Created: 25/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -// Settings common to both executables: determines whether -// we're using TCP/IP or real DDE. - -#include "ddesetup.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#endif - -#include "client.h" - -MyFrame *frame = NULL; - -IMPLEMENT_APP(MyApp) - -char ipc_buffer[4000]; -wxListBox *the_list = NULL; - -MyConnection *the_connection = NULL; -MyClient *my_client ; - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit() -{ - // Create the main frame window - frame = new MyFrame(NULL, "Client", wxPoint(400, 0), wxSize(400, 300)); - - // Give it an icon - frame->SetIcon(wxICON(mondrian)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(CLIENT_EXECUTE, "Execute"); - file_menu->Append(CLIENT_REQUEST, "Request"); - file_menu->Append(CLIENT_POKE, "Poke"); - file_menu->Append(CLIENT_QUIT, "Quit"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "File"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - // Make a panel - frame->panel = new wxPanel(frame, -1, wxPoint(0, 0), wxSize(400, 250)); - the_list = new wxListBox(frame->panel, CLIENT_LISTBOX, wxPoint(5, 5), wxSize(150, 120)); - the_list->Append("Apple"); - the_list->Append("Pear"); - the_list->Append("Orange"); - the_list->Append("Banana"); - the_list->Append("Fruit"); - - frame->panel->Fit(); - frame->Fit(); - - wxString server = "4242"; - wxString hostName = wxGetHostName(); - - if (argc > 1) - server = argv[1]; - if (argc > 2) - hostName = argv[2]; - - // Create a new client - my_client = new MyClient; - the_connection = (MyConnection *)my_client->MakeConnection(hostName, server, "IPC TEST"); - - if (!the_connection) - { - wxMessageBox("Failed to make connection to server", "Client Demo Error"); -#ifdef __WXMSW__ -// extern void wxPrintDDEError(); -// wxPrintDDEError(); -#endif - return FALSE; - } - the_connection->StartAdvise("Item"); - - frame->Show(TRUE); - - return TRUE; -} - -int MyApp::OnExit() -{ - if (my_client) - delete my_client ; - - return 0; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(CLIENT_QUIT, MyFrame::OnExit) - EVT_MENU(CLIENT_EXECUTE, MyFrame::OnExecute) - EVT_MENU(CLIENT_POKE, MyFrame::OnPoke) - EVT_MENU(CLIENT_REQUEST, MyFrame::OnRequest) - EVT_CLOSE(MyFrame::OnCloseWindow) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) -{ - panel = NULL; -} - -void MyFrame::OnExecute(wxCommandEvent& event) -{ - if (the_connection) - the_connection->Execute("Hello from the client!"); -} - -void MyFrame::OnPoke(wxCommandEvent& event) -{ - if (the_connection) - the_connection->Poke("An item", "Some data to poke at the server!"); -} - -void MyFrame::OnRequest(wxCommandEvent& event) -{ - if (the_connection) - { - char *data = the_connection->Request("An item"); - if (data) - wxMessageBox(data, "Client: Request", wxOK); - } -} - -void MyFrame::OnExit(wxCommandEvent& event) -{ - if (the_connection) - the_connection->Disconnect(); - - this->Destroy(); -} - -// Define the behaviour for the frame closing -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (the_connection) - { - the_connection->Disconnect(); - } - this->Destroy(); -} - -MyClient::MyClient(void) -{ -} - -wxConnectionBase *MyClient::OnMakeConnection(void) -{ - return new MyConnection; -} - -MyConnection::MyConnection(void):wxConnection(ipc_buffer, 3999) -{ -} - -MyConnection::~MyConnection(void) -{ - the_connection = NULL; -} - -bool MyConnection::OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) -{ - if (the_list) - { - int n = the_list->FindString(data); - if (n > -1) - the_list->SetSelection(n); - } - return TRUE; -} - -bool MyConnection::OnDisconnect() -{ - frame->Destroy(); - - the_connection = NULL; - delete this; - - return TRUE; -} - diff --git a/samples/dde/client.def b/samples/dde/client.def deleted file mode 100644 index 786b7d609a..0000000000 --- a/samples/dde/client.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Client -DESCRIPTION 'Client' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/dde/client.g95 b/samples/dde/client.g95 deleted file mode 100644 index 260c61cfd6..0000000000 --- a/samples/dde/client.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=client -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/dde/client.h b/samples/dde/client.h deleted file mode 100644 index 8017a29def..0000000000 --- a/samples/dde/client.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: client.h -// Purpose: DDE sample: client -// Author: Julian Smart -// Modified by: -// Created: 25/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// Define a new application -class MyApp: public wxApp -{ - public: - bool OnInit(); - int OnExit(); -}; - -// Define a new frame -class MyFrame: public wxFrame -{ - public: - wxPanel *panel; - - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size); - void OnCloseWindow(wxCloseEvent& event); - void OnExit(wxCommandEvent& event); - void OnExecute(wxCommandEvent& event); - void OnPoke(wxCommandEvent& event); - void OnRequest(wxCommandEvent& event); -DECLARE_EVENT_TABLE() -}; - -class MyConnection: public wxConnection -{ - public: - MyConnection(); - ~MyConnection(); - bool OnAdvise(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format); - bool OnDisconnect(); -}; - -class MyClient: public wxClient -{ - public: - MyClient(); - wxConnectionBase *OnMakeConnection(); -}; - -#define CLIENT_QUIT wxID_EXIT -#define CLIENT_EXECUTE 2 -#define CLIENT_REQUEST 3 -#define CLIENT_POKE 4 -#define CLIENT_LISTBOX 200 diff --git a/samples/dde/client.rc b/samples/dde/client.rc deleted file mode 100644 index 74b8e3f417..0000000000 --- a/samples/dde/client.rc +++ /dev/null @@ -1,2 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" diff --git a/samples/dde/client.vc b/samples/dde/client.vc deleted file mode 100644 index f52524060b..0000000000 --- a/samples/dde/client.vc +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=client -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - -client.obj: ddesetup.h - diff --git a/samples/dde/client.wat b/samples/dde/client.wat deleted file mode 100644 index 789db64157..0000000000 --- a/samples/dde/client.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = client -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/dde/ddesetup.h b/samples/dde/ddesetup.h deleted file mode 100644 index caf383930c..0000000000 --- a/samples/dde/ddesetup.h +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ddesetup.h -// Purpose: DDE sample settings -// Author: Julian Smart -// Modified by: -// Created: 25/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - * Adjust this before compiling, to switch between real DDE and TCP/IP - * implementations. - */ - -// If 1, use real DDE. If 0, use TCP/IP - -#ifdef __WXMSW__ -#define wxUSE_DDE_FOR_SAMPLE 1 -#else -#define wxUSE_DDE_FOR_SAMPLE 0 -#endif - -#if wxUSE_DDE_FOR_SAMPLE - -#define wxConnection wxDDEConnection -#define wxServer wxDDEServer -#define wxClient wxDDEClient - -#include - -#else - -#define wxConnection wxTCPConnection -#define wxServer wxTCPServer -#define wxClient wxTCPClient - -#include - -#endif - diff --git a/samples/dde/makefile.b32 b/samples/dde/makefile.b32 deleted file mode 100644 index 94a0ed2b5b..0000000000 --- a/samples/dde/makefile.b32 +++ /dev/null @@ -1,82 +0,0 @@ -# -# File: makefile.b32 -# Author: Guilhem Lavaux -# Created: 1998 -# Updated: -# Copyright: (c) Guilhem Lavaux -# -# "%W% %G%" -# -# Makefile : Builds 32-bit wxSocket sample under BC++ - -WXDIR = $(WXWIN) - -ZLIB = $(WXDIR)\lib\zlib.lib - -!include $(WXDIR)\src\makeb32.env - -WXLIBDIR = $(WXDIR)\lib -WXINC = $(WXDIR)\include\msw -WXLIB = $(WXLIBDIR)\wx32.lib -LIBS=$(WXLIB) $(ZLIB) cw32 import32 ole2w32 - -!if "$(FINAL)" == "0" -LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib -OPT = -Od -DEBUG_FLAGS= -v -!else -LINKFLAGS=/Tpe /L$(WXLIBDIR);$(BCCDIR)\lib -OPT = -Od -DEBUG_FLAGS = -!endif -CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) - -.$(SRCSUFF).obj: - bcc32 $(CPPFLAGS) -c {$< } - -.c.obj: - bcc32 $(CPPFLAGS) -P- -c {$< } - -CLIENT_TARGET=client -SERVER_TARGET=server -CLIENT_OBJECTS=client.obj -SERVER_OBJECTS=server.obj - -all: $(CLIENT_TARGET).exe $(SERVER_TARGET).exe - -$(CLIENT_TARGET).exe: $(CLIENT_OBJECTS) $(CLIENT_TARGET).res - tlink32 $(LINKFLAGS) @&&! - c0w32.obj $(CLIENT_OBJECTS) - $(CLIENT_TARGET) - nul - $(LIBS) - $(CLIENT_TARGET).def - $(CLIENT_TARGET).res -! - -client.obj: client.cpp - -$(CLIENT_TARGET).res : $(CLIENT_TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(CLIENT_TARGET) - -$(SERVER_TARGET).exe: $(SERVER_OBJECTS) $(SERVER_TARGET).res - tlink32 $(LINKFLAGS) @&&! - c0w32.obj $(SERVER_OBJECTS) - $(SERVER_TARGET) - nul - $(LIBS) - $(SERVER_TARGET).def - $(SERVER_TARGET).res -! - -server.obj: server.cpp - -$(SERVER_TARGET).res: $(SERVER_TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(SERVER_TARGET) - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws diff --git a/samples/dde/makefile.dos b/samples/dde/makefile.dos deleted file mode 100644 index 2a42833b60..0000000000 --- a/samples/dde/makefile.dos +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=client -OBJECTS = $(TARGET).obj - -# TODO: server - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/dde/makefile.g95 b/samples/dde/makefile.g95 deleted file mode 100644 index 40343ddace..0000000000 --- a/samples/dde/makefile.g95 +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile for server/client example (UNIX). - -all: - make -f client.g95 all - make -f server.g95 all - -clean: - make -f client.g95 clean - make -f server.g95 clean - diff --git a/samples/dde/makefile.vc b/samples/dde/makefile.vc deleted file mode 100644 index 3864d7dd9d..0000000000 --- a/samples/dde/makefile.vc +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -!include $(WXWIN)/src/makevc.env - -all: - nmake -f server.vc FINAL=$(FINAL) - nmake -f client.vc FINAL=$(FINAL) - -clean: - nmake -f server.vc clean - nmake -f client.vc clean - diff --git a/samples/dde/mondrian.ico b/samples/dde/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZCreateStatusBar(); - - // Give it an icon - frame->SetIcon(wxICON(mondrian)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(SERVER_QUIT, "&Exit"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - // Make a panel - frame->panel = new wxPanel(frame, 0, 0, 400, 250); - wxListBox *list = new wxListBox(frame->panel, SERVER_LISTBOX, - wxPoint(5, 5), wxSize(150, 120)); - list->Append("Apple"); - list->Append("Pear"); - list->Append("Orange"); - list->Append("Banana"); - list->Append("Fruit"); - - frame->panel->Fit(); - frame->Fit(); - - wxString server_name = "4242"; - if (argc > 1) - server_name = argv[1]; - - // Create a new server - my_server = new MyServer; - my_server->Create(server_name); - - frame->Show(TRUE); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(SERVER_QUIT, MyFrame::OnExit) - EVT_CLOSE(MyFrame::OnCloseWindow) - EVT_LISTBOX(SERVER_LISTBOX, MyFrame::OnListBoxClick) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) -{ - panel = NULL; -} - -void MyFrame::OnExit(wxCommandEvent& event) -{ - if (my_server) - delete my_server; - this->Destroy(); -} - -// Set the client process's listbox to this item -void MyFrame::OnListBoxClick(wxCommandEvent& event) -{ - wxListBox* listBox = (wxListBox*) panel->FindWindow(SERVER_LISTBOX); - if (listBox) - { - wxString value = listBox->GetStringSelection(); - if (the_connection) - { - the_connection->Advise("Item", (char*) (const char*) value); - } - } -} - -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (my_server) - delete my_server; - this->Destroy(); -} - -BEGIN_EVENT_TABLE(IPCDialogBox, wxDialog) - EVT_BUTTON(SERVER_QUIT_BUTTON, IPCDialogBox::OnQuit) -END_EVENT_TABLE() - -IPCDialogBox::IPCDialogBox(wxFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, MyConnection *the_connection): - wxDialog(parent, -1, title, pos, size) -{ - connection = the_connection; - (void)new wxButton(this, SERVER_QUIT_BUTTON, "Quit this connection", wxPoint(5, 5)); - Fit(); -} - -void IPCDialogBox::OnQuit(wxCommandEvent& event) -{ - connection->Disconnect(); - delete connection; -} - -wxConnectionBase *MyServer::OnAcceptConnection(const wxString& topic) -{ - if (strcmp(topic, "STDIO") != 0 && strcmp(topic, "IPC TEST") == 0) - return new MyConnection(ipc_buffer, 4000); - else - return NULL; -} - -MyConnection::MyConnection(char *buf, int size):wxConnection(buf, size) -{ - dialog = new IPCDialogBox(frame, "Connection", wxPoint(100, 100), wxSize(500, 500), this); - dialog->Show(TRUE); - the_connection = this; -} - -MyConnection::~MyConnection(void) -{ - dialog->Destroy(); - the_connection = NULL; -} - -bool MyConnection::OnExecute(const wxString& topic, char *data, int size, wxIPCFormat format) -{ - char buf[300]; - sprintf(buf, "Execute command: %s", data); - frame->SetStatusText(buf); - return TRUE; -} - -bool MyConnection::OnPoke(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format) -{ - char buf[300]; - sprintf(buf, "Poke command: %s", data); - frame->SetStatusText(buf); - return TRUE; -} - -char *MyConnection::OnRequest(const wxString& topic, const wxString& item, int *size, wxIPCFormat format) -{ - return "Here, have your data, client!"; -} - -bool MyConnection::OnStartAdvise(const wxString& topic, const wxString& item) -{ - return TRUE; -} - diff --git a/samples/dde/server.def b/samples/dde/server.def deleted file mode 100644 index 21027a5c01..0000000000 --- a/samples/dde/server.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Server -DESCRIPTION 'Server' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4096 -STACKSIZE 8192 diff --git a/samples/dde/server.g95 b/samples/dde/server.g95 deleted file mode 100644 index 48e622cc59..0000000000 --- a/samples/dde/server.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=server -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/dde/server.h b/samples/dde/server.h deleted file mode 100644 index 81aa31697b..0000000000 --- a/samples/dde/server.h +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: server.h -// Purpose: DDE sample: server -// Author: Julian Smart -// Modified by: -// Created: 25/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// Define a new application -class MyApp: public wxApp -{ - public: - bool OnInit(); -}; - -DECLARE_APP(MyApp) - -// Define a new frame -class MyFrame: public wxFrame -{ - public: - wxPanel *panel; - - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size); - - void OnCloseWindow(wxCloseEvent& event); - void OnExit(wxCommandEvent& event); - void OnListBoxClick(wxCommandEvent& event); -DECLARE_EVENT_TABLE() -}; - -class IPCDialogBox; -class MyConnection: public wxConnection -{ - public: - IPCDialogBox *dialog; - - MyConnection(char *buf, int size); - ~MyConnection(); - - bool OnExecute(const wxString& topic, char *data, int size, wxIPCFormat format); - char *OnRequest(const wxString& topic, const wxString& item, int *size, wxIPCFormat format); - bool OnPoke(const wxString& topic, const wxString& item, char *data, int size, wxIPCFormat format); - bool OnStartAdvise(const wxString& topic, const wxString& item); -}; - -class MyServer: public wxServer -{ -public: - wxConnectionBase *OnAcceptConnection(const wxString& topic); -}; - -class IPCDialogBox: public wxDialog -{ -public: - MyConnection *connection; - IPCDialogBox(wxFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, MyConnection *the_connection); - - void OnQuit(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#define SERVER_QUIT wxID_EXIT -#define SERVER_LISTBOX 500 -#define SERVER_QUIT_BUTTON 501 diff --git a/samples/dde/server.rc b/samples/dde/server.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/dde/server.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/dde/server.vc b/samples/dde/server.vc deleted file mode 100644 index 6167edfb7d..0000000000 --- a/samples/dde/server.vc +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=server -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - -server.obj: ddesetup.h - diff --git a/samples/dde/server.wat b/samples/dde/server.wat deleted file mode 100644 index 2acfdf1115..0000000000 --- a/samples/dde/server.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = server -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/dialogs/.cvsignore b/samples/dialogs/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/dialogs/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/dialogs/Makefile.am b/samples/dialogs/Makefile.am deleted file mode 100644 index 852bbb1f6c..0000000000 --- a/samples/dialogs/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = dialogs - -dialogs_SOURCES = dialogs.cpp diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp deleted file mode 100644 index 5b38a4085d..0000000000 --- a/samples/dialogs/dialogs.cpp +++ /dev/null @@ -1,307 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialogs.cpp -// Purpose: Common dialogs demo -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 -#include -#include -#include -#include - -#define wxTEST_GENERIC_DIALOGS_IN_MSW 0 - -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW -#include -#include -#endif - -#include "dialogs.h" - -IMPLEMENT_APP(MyApp) - -MyCanvas *myCanvas = (MyCanvas *) NULL; - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit(void) -{ -#if defined(__WXGTK__) && defined(wxUSE_UNICODE) - wxConvCurrent = &wxConvLocal; -#endif - - m_canvasTextColour = wxColour("BLACK"); - m_canvasFont = *wxNORMAL_FONT; - - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxWindows dialogs example", wxPoint(50, 50), wxSize(400, 300)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(DIALOGS_CHOOSE_COLOUR, "&Choose colour"); - -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW - file_menu->Append(DIALOGS_CHOOSE_COLOUR_GENERIC, "Choose colour (&generic)"); -#endif - - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_CHOOSE_FONT, "Choose &font"); - -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW - file_menu->Append(DIALOGS_CHOOSE_FONT_GENERIC, "Choose f&ont (generic)"); - -#endif - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_MESSAGE_BOX, "&Message box"); - file_menu->Append(DIALOGS_TEXT_ENTRY, "Text &entry"); - file_menu->Append(DIALOGS_SINGLE_CHOICE, "&Single choice"); - file_menu->AppendSeparator(); - file_menu->Append(DIALOGS_FILE_OPEN, "&Open file"); - file_menu->Append(DIALOGS_FILE_SAVE, "Sa&ve file"); - file_menu->Append(DIALOGS_DIR_CHOOSE, "&Choose a directory"); - file_menu->AppendSeparator(); - file_menu->Append(wxID_EXIT, "E&xit"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - frame->SetMenuBar(menu_bar); - - myCanvas = new MyCanvas(frame); - myCanvas->SetBackgroundColour(*wxWHITE); - - frame->Centre(wxBOTH); - - // Show the frame - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -// My frame constructor -MyFrame::MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(parent, -1, title, pos, size) -{} - -void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event) ) -{ - 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 = new wxColourDialog(this, &data); - if (dialog->ShowModal() == wxID_OK) - { - wxColourData retData = dialog->GetColourData(); - wxColour col = retData.GetColour(); -// wxBrush *brush = wxTheBrushList->FindOrCreateBrush(&col, wxSOLID); - myCanvas->SetBackgroundColour(col); - myCanvas->Clear(); - myCanvas->Refresh(); - } - dialog->Destroy(); -} - -void MyFrame::ChooseFont(wxCommandEvent& WXUNUSED(event) ) -{ - wxFontData data; - data.SetInitialFont(wxGetApp().m_canvasFont); - data.SetColour(wxGetApp().m_canvasTextColour); - - wxFontDialog *dialog = new wxFontDialog(this, &data); - if (dialog->ShowModal() == wxID_OK) - { - wxFontData retData = dialog->GetFontData(); - wxGetApp().m_canvasFont = retData.GetChosenFont(); - wxGetApp().m_canvasTextColour = retData.GetColour(); - myCanvas->Refresh(); - } - dialog->Destroy(); -} - -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW -void MyFrame::ChooseColourGeneric(wxCommandEvent& WXUNUSED(event)) -{ - wxColourData data; - data.SetChooseFull(TRUE); - for (int i = 0; i < 16; i++) - { - wxColour colour(i*16, i*16, i*16); - data.SetCustomColour(i, colour); - } - - wxGenericColourDialog *dialog = new wxGenericColourDialog(this, &data); - if (dialog->ShowModal() == wxID_OK) - { - wxColourData retData = dialog->GetColourData(); - wxColour col = retData.GetColour(); -// wxBrush *brush = wxTheBrushList->FindOrCreateBrush(&col, wxSOLID); - myCanvas->SetBackgroundColour(col); - myCanvas->Clear(); - myCanvas->Refresh(); - } - dialog->Destroy(); -} - -void MyFrame::ChooseFontGeneric(wxCommandEvent& WXUNUSED(event) ) -{ - wxFontData data; - data.SetInitialFont(wxGetApp().m_canvasFont); - data.SetColour(wxGetApp().m_canvasTextColour); - - wxGenericFontDialog *dialog = new wxGenericFontDialog(this, &data); - if (dialog->ShowModal() == wxID_OK) - { - wxFontData retData = dialog->GetFontData(); - wxGetApp().m_canvasFont = retData.GetChosenFont(); - wxGetApp().m_canvasTextColour = retData.GetColour(); - myCanvas->Refresh(); - } - dialog->Destroy(); -} -#endif - -void MyFrame::MessageBox(wxCommandEvent& WXUNUSED(event) ) -{ - wxMessageDialog dialog(NULL, "This is a message box\nA long, long string to test out the message box properly", - "Message box text", wxYES_NO|wxCANCEL); - - dialog.ShowModal(); - - ::wxMessageBox("MsgBox with a really long long string", - "this is the text", wxYES_NO|wxICON_EXCLAMATION); -} - -void MyFrame::TextEntry(wxCommandEvent& WXUNUSED(event) ) -{ - wxTextEntryDialog dialog(this, "This is a small sample\nA long, long string to test out the text entrybox", - "Please enter a string", "Default value", wxOK|wxCANCEL); - - if (dialog.ShowModal() == wxID_OK) - { - wxMessageDialog dialog2(this, dialog.GetValue(), "Got string"); - dialog2.ShowModal(); - } -} - -void MyFrame::SingleChoice(wxCommandEvent& WXUNUSED(event) ) -{ - const wxString choices[] = { "One", "Two", "Three", "Four", "Five" } ; - int n = 5; - - wxSingleChoiceDialog dialog(this, "This is a small sample\nA single-choice convenience dialog", - "Please select a value", n, (const wxString *)choices); - - dialog.SetSelection(2); - - if (dialog.ShowModal() == wxID_OK) - { - wxMessageDialog dialog2(this, dialog.GetStringSelection(), "Got string"); - dialog2.ShowModal(); - } -} - -void MyFrame::FileOpen(wxCommandEvent& WXUNUSED(event) ) -{ - wxFileDialog dialog(this, "Testing open file dialog", "", "", "*.txt", 0); - - if (dialog.ShowModal() == wxID_OK) - { - wxString info; - info.Printf(_T("Full file name: %s\n") - _T("Path: %s\n") - _T("Name: %s"), - dialog.GetPath().c_str(), - dialog.GetDirectory().c_str(), - dialog.GetFilename().c_str()); - wxMessageDialog dialog2(this, info, "Selected file"); - dialog2.ShowModal(); - } -} - -void MyFrame::FileSave(wxCommandEvent& WXUNUSED(event) ) -{ - wxFileDialog dialog(this, "Testing save file dialog", "", "", - "Text files (*.txt)|*.txt|Document files (*.doc)|*.doc", - wxSAVE|wxOVERWRITE_PROMPT); - - if (dialog.ShowModal() == wxID_OK) - { - wxChar buf[400]; - wxSprintf(buf, _T("%s, filter %d"), (const wxChar*)dialog.GetPath(), dialog.GetFilterIndex()); - wxMessageDialog dialog2(this, wxString(buf), "Selected path"); - dialog2.ShowModal(); - } -} - -void MyFrame::DirChoose(wxCommandEvent& WXUNUSED(event) ) -{ - wxDirDialog dialog(this, "Testing directory picker", ""); - - if (dialog.ShowModal() == wxID_OK) - { - wxMessageDialog dialog2(this, dialog.GetPath(), "Selected path"); - dialog2.ShowModal(); - } -} - -void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event) ) -{ - wxPaintDC dc(this); - dc.SetFont(wxGetApp().m_canvasFont); - dc.SetTextForeground(wxGetApp().m_canvasTextColour); - dc.SetBackgroundMode(wxTRANSPARENT); - dc.DrawText("wxWindows common dialogs test application", 10, 10); -} - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(DIALOGS_CHOOSE_COLOUR, MyFrame::ChooseColour) - EVT_MENU(DIALOGS_CHOOSE_FONT, MyFrame::ChooseFont) - EVT_MENU(DIALOGS_MESSAGE_BOX, MyFrame::MessageBox) - EVT_MENU(DIALOGS_TEXT_ENTRY, MyFrame::TextEntry) - EVT_MENU(DIALOGS_SINGLE_CHOICE, MyFrame::SingleChoice) - EVT_MENU(DIALOGS_FILE_OPEN, MyFrame::FileOpen) - EVT_MENU(DIALOGS_FILE_SAVE, MyFrame::FileSave) - EVT_MENU(DIALOGS_DIR_CHOOSE, MyFrame::DirChoose) -#if defined(__WXMSW__) && wxTEST_GENERIC_DIALOGS_IN_MSW - EVT_MENU(DIALOGS_CHOOSE_COLOUR_GENERIC, MyFrame::ChooseColourGeneric) - EVT_MENU(DIALOGS_CHOOSE_FONT_GENERIC, MyFrame::ChooseFontGeneric) -#endif - EVT_MENU(wxID_EXIT, MyFrame::OnExit) -END_EVENT_TABLE() - diff --git a/samples/dialogs/dialogs.def b/samples/dialogs/dialogs.def deleted file mode 100644 index cb06200c15..0000000000 --- a/samples/dialogs/dialogs.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Dialogs -DESCRIPTION 'wxWindows Dialogs example' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h deleted file mode 100644 index 3141b2fd4b..0000000000 --- a/samples/dialogs/dialogs.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialogs.h -// Purpose: Common dialogs demo -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __DIALOGSH__ -#define __DIALOGSH__ - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); - - wxFont m_canvasFont; - wxColour m_canvasTextColour; -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ public: - MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, - const wxSize& size); - - void ChooseColour(wxCommandEvent& event); - void ChooseFont(wxCommandEvent& event); - void MessageBox(wxCommandEvent& event); - void SingleChoice(wxCommandEvent& event); - void TextEntry(wxCommandEvent& event); - void FileOpen(wxCommandEvent& event); - void FileSave(wxCommandEvent& event); - void DirChoose(wxCommandEvent& event); - -#if !defined(__WXMSW__) || wxTEST_GENERIC_DIALOGS_IN_MSW - void ChooseColourGeneric(wxCommandEvent& event); - void ChooseFontGeneric(wxCommandEvent& event); -#endif - void OnExit(wxCommandEvent& event); -DECLARE_EVENT_TABLE() -}; - -class MyCanvas: public wxScrolledWindow -{ - public: - MyCanvas(wxWindow *parent): - wxScrolledWindow(parent) - { - } - void OnPaint(wxPaintEvent& event); -DECLARE_EVENT_TABLE() -}; - - -// Menu IDs -#define DIALOGS_CHOOSE_COLOUR 1 -#define DIALOGS_CHOOSE_COLOUR_GENERIC 2 -#define DIALOGS_CHOOSE_FONT 3 -#define DIALOGS_CHOOSE_FONT_GENERIC 4 -#define DIALOGS_MESSAGE_BOX 5 -#define DIALOGS_SINGLE_CHOICE 6 -#define DIALOGS_TEXT_ENTRY 7 -#define DIALOGS_FILE_OPEN 8 -#define DIALOGS_FILE_SAVE 9 -#define DIALOGS_DIR_CHOOSE 10 - -#endif - diff --git a/samples/dialogs/dialogs.rc b/samples/dialogs/dialogs.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/dialogs/dialogs.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/dialogs/makefile.b32 b/samples/dialogs/makefile.b32 deleted file mode 100644 index 3102e6b203..0000000000 --- a/samples/dialogs/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=dialogs -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/dialogs/makefile.bcc b/samples/dialogs/makefile.bcc deleted file mode 100644 index 08e7d45590..0000000000 --- a/samples/dialogs/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=dialogs -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/dialogs/makefile.dos b/samples/dialogs/makefile.dos deleted file mode 100644 index 639f27668f..0000000000 --- a/samples/dialogs/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=dialogs -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/dialogs/makefile.g95 b/samples/dialogs/makefile.g95 deleted file mode 100644 index a9ff2650cf..0000000000 --- a/samples/dialogs/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=dialogs -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/dialogs/makefile.twn b/samples/dialogs/makefile.twn deleted file mode 100644 index 93be717678..0000000000 --- a/samples/dialogs/makefile.twn +++ /dev/null @@ -1,43 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile for dialogs example (UNIX). - -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/maketwin.env - -OBJECTS = $(OBJDIR)/dialogs.$(OBJSUFF) $(OBJDIR)/dialogs_resources.$(OBJSUFF) - -all: $(OBJDIR) dialogs$(GUISUFFIX)$(EXESUFF) - -wx: - -$(OBJDIR): - mkdir $(OBJDIR) - -dialogs$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o dialogs$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) - -$(OBJDIR)/dialogs.$(OBJSUFF): dialogs.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ dialogs.$(SRCSUFF) - -dialogs_resources.c: dialogs.rc - $(RESCOMP) $(RCINPUTSWITCH) dialogs.rc $(RCOUTPUTSWITCH) dialogs_resources.c $(RESFLAGS) - -$(OBJDIR)/dialogs_resources.$(OBJSUFF): dialogs_resources.c - $(CC) -c $(CPPFLAGS) -o $@ dialogs_resources.c - -#$(OBJDIR)/dialogs_resources.o: dialogs.rc -# $(RESCOMP) $(RCINPUTSWITCH) dialogs.rc $(RCOUTPUTSWITCH) $(OBJDIR)/dialogs_resources.o $(RESFLAGS) - -clean: - rm -f $(OBJECTS) dialogs$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/dialogs/makefile.unx b/samples/dialogs/makefile.unx deleted file mode 100644 index b144f19701..0000000000 --- a/samples/dialogs/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dialogs example (UNIX). - -PROGRAM=dialogs - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/dialogs/makefile.vc b/samples/dialogs/makefile.vc deleted file mode 100644 index ee79a94674..0000000000 --- a/samples/dialogs/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=dialogs -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/dialogs/makefile.wat b/samples/dialogs/makefile.wat deleted file mode 100644 index f0d3b21081..0000000000 --- a/samples/dialogs/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = dialogs -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/dnd/.cvsignore b/samples/dnd/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/dnd/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/dnd/Makefile.am b/samples/dnd/Makefile.am deleted file mode 100644 index 8c784706c1..0000000000 --- a/samples/dnd/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = dnd - -dnd_SOURCES = dnd.cpp diff --git a/samples/dnd/d_and_d.txt b/samples/dnd/d_and_d.txt deleted file mode 100644 index b85b7c1570..0000000000 --- a/samples/dnd/d_and_d.txt +++ /dev/null @@ -1,167 +0,0 @@ - Drag-and-Drop Support in wxWindows - ================================== - -1. Overview - -------- - - a) What is it? - - We're calling drag-and-drop (or d&d for short) the OLE mechanism of data -transfer. Please note that it's not the same thing as the file oriented d&d -of Windows 3.1 "File Manager" which is designed for and limited to the file -names only. - - OLE d&d allows application to transfer data of any type to the same or -another process. - - - b) How is it done? (user's point of view) - - To start a d&d operation the user presses the mouse button 1 (left) and -drags the selected object to another window (which must be at least partially -visible on the screen) or to an icon on the taskbar in which case the -corresponding window will be automatically restored. To finish the operation, -the user releases the button. Default d&d operation is "move", but several key -act as modifiers: keeping down the key at the moment of drop does -"copy", while or force the "move" (makes sense if default isn't -"move"). - - - c) How is it done? (programmer's point of view) - - There are several objects participating in a d&d operation. First of all, -there is the data object itself. Second, there is the drop source which is -responsible for creating the data object (if it doesn't exist yet) and starting -the d&d operation. Finally, the drop target recieves the notification when -the data is dropped onto the associated window (see below) and is responsible -for pasting the data and returning the result code (copy, move or failure). -There is one class for each one of these roles in wxWindows d&d implementation, -plese see their descriptions below for details. - - - -2. Drop Target - ----------- - - a) Being a drop target - - ... is as easy as deriving your window class from wxDropTarget and -associating it with a wxWindow object (or perhaps some wxWindow-derived class, -such as wxFrame). The pure virtual function wxDropTarget::OnDrop() must be -implemented in your application and will be called whenever the mouse button -is released over the window in question. Other virtual functions that will be -called in the process of the d&d operation are OnEnter and OnLeave. - -@@ should OnDragOver() be user overridable also? - - You should associate wxDropTarget and wxWindow calling SetDropTarget: - wxWindow *pWindow = GetTopWindow(); - pWindow->SetDropTarget(new MyDropTarget); - -The object created passed to SetDropTarget becomes the propriety of wxWindow -and will be deleted with the window (or when you call SetDropTarget next -time). You can always break the association by calling SetDropTarget(NULL). - - When some data is dragged over a window, the program must decide if it's -going to accept this data or not. The virtual function IsAcceptedData() is -called to do it. The default implementation takes care of OLE interface -pointer manipulations and only requires you to override GetCountFormats() -and GetFormat(n) functions to let it know what data formats you support. -If it's not flexible enough for your application (i.e. the set of supported -formats changes over time...), you should override IsAcceptedData(). In 99% -of cases the default implementation is ok and you only have to return count -of supported formats (CF_xxx constants or one of your custom formats which -must have been registered) and their values. - - b) OnDrop(long x, long y, const void *pData) - - (x, y) are drop point (client) coordinates, pData is the pointer to data - (whatever it is). - - If 'true' is returned from OnDrop, the operation is considered to be - successful and the corresponding code (MOVE or COPY depending on the - keyboard control keys) is returned. Otherwise, the operation is cancelled. - - Please remember that returning 'true' here may mean 'move' and so the - drop source will delete the corresponding data - which would lead to - data loss if you didn't paste it properly. - - c) OnEnter() - - called when the mouse enters the window: you might use this function to - give some additional visual feedback. - - d) OnLeave() - - called when the mouse leaves the window; might be a good place to clean -up things allocated in OnEnter. - - e) Simple wxDropTarget specializations - - Two (very simple) wxDropTarget-derived classes are provided for two most -common situations: d&d of text and file d&d. To use them you only need to -override one virtual function OnDropText in wxTextDropTarget's case and -OnDropFiles for wxFileDropTarget. - - The (x, y) are the same as for OnDrop() function. OnDropText's last -parameter points to a (always ANSI, not Unicode) text string, while -OnDropFiles() parameter is the array of file names just dropped (and the -count of them is passed in the 3rd parameter). - -3. Data Object - ----------- - - a) Drag and drop and clipboard - - The effect of a d&d operation is the same as using the clipboard to -cut/copy and paste data and it would be nice to use the same code to implement -these two data transfer mechanisms. The wxDataObject allows you to do exactly -this. It encapsulates the data which can be passed either through the clipboard -or d&d. - - - b) Data format - - There are several standard clipboard formats, such as text, bitmap or -metafile picture. All of them are defined in wxDataObject::StdFormats -enumeration. Of course, it's not always enough and you'll often need your -own format for data transfer. The simple helper class wxDataFormat may help -you: when you create an object of this class, it registers a new clipboard -data format identified by the string passed to it's ctor. - - After your new format is registered, you may use it as any other one. - -4. Drop Source - ----------- - - a) Starting the d&d operation - - In order to start the d&d operation you should call the DoDragDrop function -(typically in reply to a "mouse button press" message). NB: DoDragDrop() is a -blocking function which enters into it's own message loop and may return after -an arbitrarily long time interval. During it, the QueryContinueDrag() is called -whenever the mouse or keyboard state changes. The default behaviour is quite -reasonable for 99% of cases: the drag operation is cancelled if the key -is preessed and the drop is initiated if the mouse button is released. - - b) After the end of d&d - - The drop source behaviour depends on DoDragDrop() return code. If it -returns wxDropSource::None or wxDropSource::Copy there is normally nothing to -do, but you shouldn't forget to delete your data if it returns the -wxDropSource::Move code. - - c) DoDragDrop - - d) QueryContinueDrag - - -5. Remarks - ------- - - -@@@@ TODO: support tymed != TYMED_HGLOBAL; - better support of CF_BMP, CF_METAFILE - scrolling support!! (how?) - sample demonstrating use of user-defined formats - sample which really does something useful diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp deleted file mode 100644 index 6a42410921..0000000000 --- a/samples/dnd/dnd.cpp +++ /dev/null @@ -1,377 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: Drag and drop sample -// Author: Vadim Zeitlin -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include -#include - -#include - -#ifdef __WXMOTIF__ -#error Sorry, drag and drop is not yet implemented on wxMotif. -#endif - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#endif - -// ---------------------------------------------------------------------------- -// Derive two simple classes which just put in the listbox the strings (text or -// file names) we drop on them -// ---------------------------------------------------------------------------- - -// FIXME this is ugly and should be fixed in the library itself -#ifdef __WXMSW__ - typedef long wxDropPointCoord; -#else // wxGTK - typedef int wxDropPointCoord; -#endif // MSW/GTK - -class DnDText : public wxTextDropTarget -{ -public: - DnDText(wxListBox *pOwner) { m_pOwner = pOwner; } - - virtual bool OnDropText(wxDropPointCoord x, wxDropPointCoord y, const wxChar* psz ); - -private: - wxListBox *m_pOwner; -}; - -class DnDFile : public wxFileDropTarget -{ -public: - DnDFile(wxListBox *pOwner) { m_pOwner = pOwner; } - - virtual bool OnDropFiles(wxDropPointCoord x, wxDropPointCoord y, - size_t nFiles, const wxChar* const aszFiles[] ); - -private: - wxListBox *m_pOwner; -}; - -// ---------------------------------------------------------------------------- -// Define a new application type -// ---------------------------------------------------------------------------- - -class DnDApp : public wxApp -{ -public: - bool OnInit(); -}; - -IMPLEMENT_APP(DnDApp); - -// ---------------------------------------------------------------------------- -// Define a new frame type -// ---------------------------------------------------------------------------- -class DnDFrame : public wxFrame -{ -public: - DnDFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - ~DnDFrame(); - - void OnPaint(wxPaintEvent& event); - void OnQuit (wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnDrag (wxCommandEvent& event); - void OnHelp (wxCommandEvent& event); - void OnLogClear(wxCommandEvent& event); - - void OnLeftDown(wxMouseEvent& event); - void OnRightDown(wxMouseEvent& event); - - DECLARE_EVENT_TABLE() - -private: - wxListBox *m_ctrlFile, - *m_ctrlText; - wxTextCtrl *m_ctrlLog; - - wxLog *m_pLog, *m_pLogPrev; - - wxString m_strText; -}; - -// ---------------------------------------------------------------------------- -// IDs for the menu commands -// ---------------------------------------------------------------------------- - -enum -{ - Menu_Quit = 1, - Menu_Drag, - Menu_About = 101, - Menu_Help, - Menu_Clear, -}; - -BEGIN_EVENT_TABLE(DnDFrame, wxFrame) - EVT_MENU(Menu_Quit, DnDFrame::OnQuit) - EVT_MENU(Menu_About, DnDFrame::OnAbout) - EVT_MENU(Menu_Drag, DnDFrame::OnDrag) - EVT_MENU(Menu_Help, DnDFrame::OnHelp) - EVT_MENU(Menu_Clear, DnDFrame::OnLogClear) - EVT_LEFT_DOWN( DnDFrame::OnLeftDown) - EVT_RIGHT_DOWN( DnDFrame::OnRightDown) - EVT_PAINT( DnDFrame::OnPaint) -END_EVENT_TABLE() - -// `Main program' equivalent, creating windows and returning main app frame -bool DnDApp::OnInit() -{ - // create the main frame window - DnDFrame *frame = new DnDFrame((wxFrame *) NULL, "Drag & Drop wxWindows App", - 50, 50, 450, 340); - - // activate it - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -DnDFrame::DnDFrame(wxFrame *frame, char *title, int x, int y, int w, int h) - : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)), - m_strText("wxWindows drag & drop works :-)") - -{ -// SetBackgroundColour(* wxWHITE); - - // frame icon and status bar - SetIcon(wxICON(mondrian)); - -// const int widths[] = { -1 }; - CreateStatusBar(); - - // construct menu - wxMenu *file_menu = new wxMenu; - file_menu->Append(Menu_Drag, "&Test drag..."); - file_menu->AppendSeparator(); - file_menu->Append(Menu_Quit, "E&xit"); - - wxMenu *log_menu = new wxMenu; - log_menu->Append(Menu_Clear, "Clear"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(Menu_Help, "&Help..."); - help_menu->AppendSeparator(); - help_menu->Append(Menu_About, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(log_menu, "&Log"); - menu_bar->Append(help_menu, "&Help"); - - SetMenuBar(menu_bar); - - // make a panel with 3 subwindows - wxPoint pos(0, 0); - wxSize size(400, 200); - - wxString strFile("Drop files here!"), strText("Drop text on me"); - - m_ctrlFile = new wxListBox(this, -1, pos, size, 1, &strFile, wxLB_HSCROLL); - m_ctrlText = new wxListBox(this, -1, pos, size, 1, &strText, wxLB_HSCROLL); - - m_ctrlLog = new wxTextCtrl(this, -1, "", pos, size, - wxTE_MULTILINE | wxTE_READONLY | - wxSUNKEN_BORDER ); - - // redirect log messages to the text window (don't forget to delete it!) - m_pLog = new wxLogTextCtrl(m_ctrlLog); - m_pLogPrev = wxLog::SetActiveTarget(m_pLog); - - // associate drop targets with 2 text controls - m_ctrlFile->SetDropTarget(new DnDFile(m_ctrlFile)); - m_ctrlText->SetDropTarget(new DnDText(m_ctrlText)); - - wxLayoutConstraints *c; - - // Top-left listbox - c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft); - c->top.SameAs(this, wxTop); - c->right.PercentOf(this, wxRight, 50); - c->height.PercentOf(this, wxHeight, 40); - m_ctrlFile->SetConstraints(c); - - // Top-right listbox - c = new wxLayoutConstraints; - c->left.SameAs (m_ctrlFile, wxRight); - c->top.SameAs (this, wxTop); - c->right.SameAs (this, wxRight); - c->height.PercentOf(this, wxHeight, 40); - m_ctrlText->SetConstraints(c); - - // Lower text control - c = new wxLayoutConstraints; - c->left.SameAs (this, wxLeft); - c->right.SameAs (this, wxRight); - c->height.PercentOf(this, wxHeight, 40); - c->top.SameAs(m_ctrlText, wxBottom); - m_ctrlLog->SetConstraints(c); - - SetAutoLayout(TRUE); -} - -void DnDFrame::OnQuit(wxCommandEvent& /* event */) -{ - Close(TRUE); -} - -void DnDFrame::OnPaint(wxPaintEvent& /*event*/) -{ - int w = 0; - int h = 0; - GetClientSize( &w, &h ); - - wxPaintDC dc(this); - dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL, FALSE, "charter" ) ); - dc.DrawText( "Drag text from here!", 20, h-35 ); -} - -void DnDFrame::OnDrag(wxCommandEvent& /* event */) -{ - wxString strText = wxGetTextFromUser - ( - "After you enter text in this dialog, press any mouse\n" - "button in the bottom (empty) part of the frame and \n" - "drag it anywhere - you will be in fact dragging the\n" - "text object containing this text", - "Please enter some text", m_strText, this - ); - - m_strText = strText; -} - -void DnDFrame::OnAbout(wxCommandEvent& /* event */) -{ - wxMessageDialog dialog(this, - "Drag-&-Drop Demo\n" - "Please see \"Help|Help...\" for details\n" - "Copyright (c) 1998 Vadim Zeitlin", - "About wxDnD"); - - dialog.ShowModal(); -} - -void DnDFrame::OnHelp(wxCommandEvent& /* event */) -{ - wxMessageDialog dialog(this, -"This small program demonstrates drag & drop support in wxWindows. The program window\n" -"consists of 3 parts: the bottom pane is for debug messages, so that you can see what's\n" -"going on inside. The top part is split into 2 listboxes, the left one accepts files\n" -"and the right one accepts text.\n" -"\n" -"To test wxDropTarget: open wordpad (write.exe), select some text in it and drag it to\n" -"the right listbox (you'll notice the usual visual feedback, i.e. the cursor will change).\n" -"Also, try dragging some files (you can select several at once) from Windows Explorer (or \n" -"File Manager) to the left pane. Hold down Ctrl/Shift keys when you drop text (doesn't \n" -"work with files) and see what changes.\n" -"\n" -"To test wxDropSource: just press any mouse button on the empty zone of the window and drag\n" -"it to wordpad or any other droptarget accepting text (and of course you can just drag it\n" -"to the right pane). Due to a lot of trace messages, the cursor might take some time to \n" -"change, don't release the mouse button until it does. You can change the string being\n" -"dragged in in \"File|Test drag...\" dialog.\n" -"\n" -"\n" -"Please send all questions/bug reports/suggestions &c to \n" -"Vadim Zeitlin ", - "wxDnD Help"); - - dialog.ShowModal(); -} - -void DnDFrame::OnLogClear(wxCommandEvent& /* event */ ) -{ - m_ctrlLog->Clear(); -} - -void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) ) -{ - if ( !m_strText.IsEmpty() ) - { - // start drag operation -#ifdef __WXMSW__ - wxTextDataObject textData(m_strText); - wxDropSource dragSource( textData, this ); -#else - wxDropSource dragSource( new wxTextDataObject (m_strText), this, wxIcon(mondrian_xpm) ); -#endif - const char *pc; - - switch ( dragSource.DoDragDrop(TRUE) ) - { - case wxDragError: pc = "Error!"; break; - case wxDragNone: pc = "Nothing"; break; - case wxDragCopy: pc = "Copied"; break; - case wxDragMove: pc = "Moved"; break; - case wxDragCancel: pc = "Cancelled"; break; - default: pc = "Huh?"; break; - } - - SetStatusText(wxString("Drag result: ") + pc); - } -} - -void DnDFrame::OnRightDown(wxMouseEvent &event ) -{ - wxMenu *menu = new wxMenu; - - menu->Append(Menu_Drag, "&Test drag..."); - menu->Append(Menu_About, "&About"); - menu->Append(Menu_Quit, "E&xit"); - - PopupMenu( menu, event.GetX(), event.GetY() ); -} - -DnDFrame::~DnDFrame() -{ - if ( m_pLog != NULL ) { - if ( wxLog::SetActiveTarget(m_pLogPrev) == m_pLog ) - delete m_pLog; - } -} - -// ---------------------------------------------------------------------------- -// Notifications called by the base class -// ---------------------------------------------------------------------------- -bool DnDText::OnDropText( wxDropPointCoord, wxDropPointCoord, const wxChar *psz ) -{ - m_pOwner->Append(psz); - - return TRUE; -} - -bool DnDFile::OnDropFiles( wxDropPointCoord, wxDropPointCoord, size_t nFiles, - const wxChar* const aszFiles[]) -{ - wxString str; - str.Printf( _T("%d files dropped"), nFiles); - m_pOwner->Append(str); - for ( size_t n = 0; n < nFiles; n++ ) { - m_pOwner->Append(aszFiles[n]); - } - - return TRUE; -} diff --git a/samples/dnd/dnd.def b/samples/dnd/dnd.def deleted file mode 100644 index 8a76b2d093..0000000000 --- a/samples/dnd/dnd.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME DND -DESCRIPTION 'Drag and drop sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/dnd/dnd.rc b/samples/dnd/dnd.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/dnd/dnd.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/dnd/makefile.b32 b/samples/dnd/makefile.b32 deleted file mode 100644 index ede724b269..0000000000 --- a/samples/dnd/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=dnd -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/dnd/makefile.dos b/samples/dnd/makefile.dos deleted file mode 100644 index dd90a7a9df..0000000000 --- a/samples/dnd/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=dnd -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/dnd/makefile.g95 b/samples/dnd/makefile.g95 deleted file mode 100644 index f9ff5dabc5..0000000000 --- a/samples/dnd/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=dnd -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/dnd/makefile.unx b/samples/dnd/makefile.unx deleted file mode 100644 index ffbb3975d5..0000000000 --- a/samples/dnd/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dnd example (UNIX). - -PROGRAM=dnd - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/dnd/makefile.vc b/samples/dnd/makefile.vc deleted file mode 100644 index bd49ea4d97..0000000000 --- a/samples/dnd/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=dnd -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/dnd/makefile.wat b/samples/dnd/makefile.wat deleted file mode 100644 index 1379a8bb3c..0000000000 --- a/samples/dnd/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = dnd -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/dnd/mondrian.ico b/samples/dnd/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** NICHT BEARBEITEN ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=test - Win32 Release -!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit\ - NMAKE -!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den\ - Befehl -!MESSAGE -!MESSAGE NMAKE /f "test.mak". -!MESSAGE -!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben -!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: -!MESSAGE -!MESSAGE NMAKE /f "test.mak" CFG="test - Win32 Release" -!MESSAGE -!MESSAGE Für die Konfiguration stehen zur Auswahl: -!MESSAGE -!MESSAGE "test - Win32 Release" (basierend auf "Win32 (x86) Application") -!MESSAGE "test - Win32 Debug" (basierend auf "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir ".\Release" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /w /W0 /GX /O2 /I "..\..\include" /D "__WXDEBUG__" /D "__WIN32__" /D "__WXMSW__" /D "__WIN95__" /D "STRICT" /D "__WINDOWS__" /YX /FD /D /c -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /i "..\..\include" /d "WXDEBUG" /d "__WXMSW__" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ..\..\debug\wxwin.lib ctl3d32.lib /nologo /subsystem:windows /incremental:yes /pdb:".\Debug/santis.pdb" /debug /machine:I386 /out:".\Debug/santis.exe" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir ".\Debug" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /w /W0 /GX /Z7 /Od /I "..\..\include" /D "__WXDEBUG__" /D "__WIN32__" /D "__WXMSW__" /D "__WIN95__" /D "STRICT" /D "__WINDOWS__" /YX /FD /D /c -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /i "..\..\include" /d "WXDEBUG" /d "__WXMSW__" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ..\..\debug\wxwin.lib ctl3d32.lib /nologo /subsystem:windows /debug /machine:I386 -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "test - Win32 Release" -# Name "test - Win32 Debug" -# Begin Group "Quellcodedateien" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=.\dnd.cpp -# End Source File -# End Group -# Begin Group "Header-Dateien" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# End Group -# Begin Group "Ressourcendateien" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\dnd.rc - -!IF "$(CFG)" == "test - Win32 Release" - -!ELSEIF "$(CFG)" == "test - Win32 Debug" - -!ENDIF - -# End Source File -# End Group -# End Target -# End Project diff --git a/samples/dnd/test.dsw b/samples/dnd/test.dsw deleted file mode 100644 index 449f529bb9..0000000000 --- a/samples/dnd/test.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! - -############################################################################### - -Project: "test"=.\test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/samples/docview/.cvsignore b/samples/docview/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/docview/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/docview/Makefile.am b/samples/docview/Makefile.am deleted file mode 100644 index 348095b1f6..0000000000 --- a/samples/docview/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = docview - -docview_SOURCES = docview.cpp doc.cpp view.cpp diff --git a/samples/docview/chart.ico b/samples/docview/chart.ico deleted file mode 100644 index d2bcfea7f6b553c99f3b904b5deb43d061d2916c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcma)4u?~VT5IxjH2a`IvN}SyM1wXB0x6Vxc6!-uVe!=$?nzrhpQAOg_h$ceBh&-)D#M=FYfwAK(fEMk@u943z>%&;>f z=!p!jQ1(F`;nH6b*Hp8L=}Yy==?UxKFw{4E#S*@E9qb%1@FoA3!Ig3>`OK~z z@un-8v!Fv^(aWyarIV9>RrS_!4*ko4OA?3t$%K}!rwqfamwPXT8Ywru6t38 f@y15=$>%IlxrN6sR{!aD diff --git a/samples/docview/doc.cpp b/samples/docview/doc.cpp deleted file mode 100644 index 23a5316143..0000000000 --- a/samples/docview/doc.cpp +++ /dev/null @@ -1,275 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.cpp -// Purpose: Implements document functionality -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// 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 - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! -#endif - -#include "doc.h" -#include "view.h" - -IMPLEMENT_DYNAMIC_CLASS(DrawingDocument, wxDocument) - -DrawingDocument::DrawingDocument(void) -{ -} - -DrawingDocument::~DrawingDocument(void) -{ - doodleSegments.DeleteContents(TRUE); -} - -ostream& DrawingDocument::SaveObject(ostream& stream) -{ - wxDocument::SaveObject(stream); - - stream << doodleSegments.Number() << '\n'; - wxNode *node = doodleSegments.First(); - while (node) - { - DoodleSegment *segment = (DoodleSegment *)node->Data(); - segment->SaveObject(stream); - stream << '\n'; - - node = node->Next(); - } - return stream; -} - -istream& DrawingDocument::LoadObject(istream& stream) -{ - wxDocument::LoadObject(stream); - - int n = 0; - stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleSegment *segment = new DoodleSegment; - segment->LoadObject(stream); - doodleSegments.Append(segment); - } - - return stream; -} - -DoodleSegment::DoodleSegment(void) -{ -} - -DoodleSegment::DoodleSegment(DoodleSegment& seg) -{ - wxNode *node = seg.lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - DoodleLine *newLine = new DoodleLine; - newLine->x1 = line->x1; - newLine->y1 = line->y1; - newLine->x2 = line->x2; - newLine->y2 = line->y2; - - lines.Append(newLine); - - node = node->Next(); - } -} - -DoodleSegment::~DoodleSegment(void) -{ - lines.DeleteContents(TRUE); -} - -ostream& DoodleSegment::SaveObject(ostream& stream) -{ - stream << lines.Number() << '\n'; - wxNode *node = lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - stream << line->x1 << " " << line->y1 << " " << line->x2 << " " << line->y2 << "\n"; - node = node->Next(); - } - return stream; -} - -istream& DoodleSegment::LoadObject(istream& stream) -{ - int n = 0; - stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleLine *line = new DoodleLine; - stream >> line->x1 >> line->y1 >> line->x2 >> line->y2; - lines.Append(line); - } - return stream; -} - -void DoodleSegment::Draw(wxDC *dc) -{ - wxNode *node = lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - dc->DrawLine(line->x1, line->y1, line->x2, line->y2); - node = node->Next(); - } -} - -/* - * Implementation of drawing command - */ - -DrawingCommand::DrawingCommand(const wxString& name, int command, DrawingDocument *ddoc, DoodleSegment *seg): - wxCommand(TRUE, name) -{ - doc = ddoc; - segment = seg; - cmd = command; -} - -DrawingCommand::~DrawingCommand(void) -{ - if (segment) - delete segment; -} - -bool DrawingCommand::Do(void) -{ - switch (cmd) - { - case DOODLE_CUT: - { - // Cut the last segment - if (doc->GetDoodleSegments().Number() > 0) - { - wxNode *node = doc->GetDoodleSegments().Last(); - if (segment) - delete segment; - - segment = (DoodleSegment *)node->Data(); - delete node; - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - break; - } - case DOODLE_ADD: - { - doc->GetDoodleSegments().Append(new DoodleSegment(*segment)); - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - } - return TRUE; -} - -bool DrawingCommand::Undo(void) -{ - switch (cmd) - { - case DOODLE_CUT: - { - // Paste the segment - if (segment) - { - doc->GetDoodleSegments().Append(segment); - doc->Modify(TRUE); - doc->UpdateAllViews(); - segment = (DoodleSegment *) NULL; - } - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - case DOODLE_ADD: - { - // Cut the last segment - if (doc->GetDoodleSegments().Number() > 0) - { - wxNode *node = doc->GetDoodleSegments().Last(); - DoodleSegment *seg = (DoodleSegment *)node->Data(); - delete seg; - delete node; - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - } - } - return TRUE; -} - -IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument) - -// Since text windows have their own method for saving to/loading from files, -// we override OnSave/OpenDocument instead of Save/LoadObject -bool TextEditDocument::OnSaveDocument(const wxString& filename) -{ - TextEditView *view = (TextEditView *)GetFirstView(); - - if (!view->textsw->SaveFile(filename)) - return FALSE; - Modify(FALSE); - return TRUE; -} - -bool TextEditDocument::OnOpenDocument(const wxString& filename) -{ - TextEditView *view = (TextEditView *)GetFirstView(); - if (!view->textsw->LoadFile(filename)) - return FALSE; - - SetFilename(filename, TRUE); - Modify(FALSE); - UpdateAllViews(); - return TRUE; -} - -bool TextEditDocument::IsModified(void) const -{ - TextEditView *view = (TextEditView *)GetFirstView(); - if (view) - { - return (wxDocument::IsModified() || view->textsw->IsModified()); - } - else - return wxDocument::IsModified(); -} - -void TextEditDocument::Modify(bool mod) -{ - TextEditView *view = (TextEditView *)GetFirstView(); - - wxDocument::Modify(mod); - - if (!mod && view && view->textsw) - view->textsw->DiscardEdits(); -} diff --git a/samples/docview/doc.h b/samples/docview/doc.h deleted file mode 100644 index a83b45c877..0000000000 --- a/samples/docview/doc.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.h -// Purpose: Document classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface -#endif - -#ifndef __DOCSAMPLEH__ -#define __DOCSAMPLEH__ - -#include "wx/docview.h" - -// Plots a line from one point to the other -class DoodleLine: public wxObject -{ - public: - long x1; - long y1; - long x2; - long y2; -}; - -// Contains a list of lines: represents a mouse-down doodle -class DoodleSegment: public wxObject -{ - public: - wxList lines; - - DoodleSegment(void); - DoodleSegment(DoodleSegment& seg); - ~DoodleSegment(void); - - void Draw(wxDC *dc); - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); -}; - -class DrawingDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(DrawingDocument) - private: - public: - wxList doodleSegments; - - DrawingDocument(void); - ~DrawingDocument(void); - - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); - - inline wxList& GetDoodleSegments(void) const { return (wxList&) doodleSegments; }; -}; - -#define DOODLE_CUT 1 -#define DOODLE_ADD 2 - -class DrawingCommand: public wxCommand -{ - protected: - DoodleSegment *segment; - DrawingDocument *doc; - int cmd; - public: - DrawingCommand(const wxString& name, int cmd, DrawingDocument *ddoc, DoodleSegment *seg); - ~DrawingCommand(void); - - bool Do(void); - bool Undo(void); -}; - -class TextEditDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(TextEditDocument) - private: - public: -/* - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); -*/ - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool IsModified(void) const; - virtual void Modify(bool mod); - - TextEditDocument(void) {} - ~TextEditDocument(void) {} -}; - - -#endif diff --git a/samples/docview/doc.ico b/samples/docview/doc.ico deleted file mode 100644 index 34b1d7bc936820eecbbf4acbb26617eaf0d7eb9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcma)(J#vFE6oemfW=N-0X-%11kV{Z=1$C5WCI^E9FykxGC1n~07ap&7^<#&Oi%6{W zR?_<w_Y*{$>xD00eY#3t4mZ6Q~Xno&v0^u`25yh$@ zHUBN{XS32_gyJt5fhF$0p#3E55wAb&n$LIxyz1H@S_i3uwcrZ}b(JNje; z0Pq`te84Aw!ykY=Hy2cZ(g}bzKzd=b@_+6p>DhEZWp#1%FbJvU&ML6<%`cgJZ-+N`{1J}oC06$K7q>)I2FK5 w^@a;MC$j_hm1@Q{`~6IfJZK+PGM07{#|p_(Q9N^=xsJR&xiw}x5FEC?0?FYnj{pDw diff --git a/samples/docview/docview.cpp b/samples/docview/docview.cpp deleted file mode 100644 index 6204548013..0000000000 --- a/samples/docview/docview.cpp +++ /dev/null @@ -1,270 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: docview.cpp -// Purpose: Document/view demo -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation "docview.h" -#endif - -/* - * Purpose: Document/view architecture demo for wxWindows class library - * Run with no arguments for multiple top-level windows, -single - * for a single window. - */ - - -// 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 - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! -#endif - -#include "wx/docview.h" - -#include "docview.h" -#include "doc.h" -#include "view.h" - -MyFrame *frame = (MyFrame *) NULL; - -// In single window mode, don't have any child windows; use -// main window. -bool singleWindowMode = FALSE; - -IMPLEMENT_APP(MyApp) - -MyApp::MyApp(void) -{ - m_docManager = (wxDocManager *) NULL; -} - -bool MyApp::OnInit(void) -{ - //// Find out if we're: - //// SDI : multiple windows and documents but not MDI - //// MDI : multiple windows and documents with containing frame - MSW only) - /// single window : (one document at a time, only one frame, as in Windows Write) - if (argc > 1) - { - if (strcmp(argv[1], "-single") == 0) - { - singleWindowMode = TRUE; - } - } - - //// Create a document manager - m_docManager = new wxDocManager; - - //// Create a template relating drawing documents to their views - (void) new wxDocTemplate(m_docManager, "Drawing", "*.drw", "", "drw", "Drawing Doc", "Drawing View", - CLASSINFO(DrawingDocument), CLASSINFO(DrawingView)); - - if (singleWindowMode) - { - // If we've only got one window, we only get to edit - // one document at a time. Therefore no text editing, just - // doodling. - m_docManager->SetMaxDocsOpen(1); - } - else - //// Create a template relating text documents to their views - (void) new wxDocTemplate(m_docManager, "Text", "*.txt", "", "txt", "Text Doc", "Text View", - CLASSINFO(TextEditDocument), CLASSINFO(TextEditView)); - - //// Create the main frame window - frame = new MyFrame(m_docManager, (wxFrame *) NULL, -1, "DocView Demo", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE); - - //// Give it an icon (this is ignored in MDI mode: uses resources) -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("doc_icn")); -#endif - - //// Make a menubar - wxMenu *file_menu = new wxMenu; - wxMenu *edit_menu = (wxMenu *) NULL; - - file_menu->Append(wxID_NEW, "&New..."); - file_menu->Append(wxID_OPEN, "&Open..."); - - if (singleWindowMode) - { - file_menu->Append(wxID_CLOSE, "&Close"); - file_menu->Append(wxID_SAVE, "&Save"); - file_menu->Append(wxID_SAVEAS, "Save &As..."); - file_menu->AppendSeparator(); - file_menu->Append(wxID_PRINT, "&Print..."); - file_menu->Append(wxID_PRINT_SETUP, "Print &Setup..."); - file_menu->Append(wxID_PREVIEW, "Print Pre&view"); - - edit_menu = new wxMenu; - edit_menu->Append(wxID_UNDO, "&Undo"); - edit_menu->Append(wxID_REDO, "&Redo"); - edit_menu->AppendSeparator(); - edit_menu->Append(DOCVIEW_CUT, "&Cut last segment"); - - frame->editMenu = edit_menu; - } - - file_menu->AppendSeparator(); - file_menu->Append(wxID_EXIT, "E&xit"); - - // A nice touch: a history of files visited. Use this menu. - m_docManager->FileHistoryUseMenu(file_menu); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(DOCVIEW_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - if (edit_menu) - menu_bar->Append(edit_menu, "&Edit"); - menu_bar->Append(help_menu, "&Help"); - - if (singleWindowMode) - frame->canvas = frame->CreateCanvas((wxView *) NULL, frame); - - //// Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - frame->Centre(wxBOTH); - frame->Show(TRUE); - - SetTopWindow(frame); - return TRUE; -} - -int MyApp::OnExit(void) -{ - delete m_docManager; - return 0; -} - -/* - * Centralised code for creating a document frame. - * Called from view.cpp, when a view is created, but not used at all - * in 'single window' mode. - */ - -wxFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas) -{ - //// Make a child frame - wxDocChildFrame *subframe = new wxDocChildFrame(doc, view, GetMainFrame(), -1, "Child Frame", - wxPoint(10, 10), wxSize(300, 300), wxDEFAULT_FRAME_STYLE); - -#ifdef __WXMSW__ - subframe->SetIcon(wxString(isCanvas ? "chrt_icn" : "notepad_icn")); -#endif - - //// Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(wxID_NEW, "&New..."); - file_menu->Append(wxID_OPEN, "&Open..."); - file_menu->Append(wxID_CLOSE, "&Close"); - file_menu->Append(wxID_SAVE, "&Save"); - file_menu->Append(wxID_SAVEAS, "Save &As..."); - - if (isCanvas) - { - file_menu->AppendSeparator(); - file_menu->Append(wxID_PRINT, "&Print..."); - file_menu->Append(wxID_PRINT_SETUP, "Print &Setup..."); - file_menu->Append(wxID_PREVIEW, "Print Pre&view"); - } - - wxMenu *edit_menu = (wxMenu *) NULL; - - if (isCanvas) - { - edit_menu = new wxMenu; - edit_menu->Append(wxID_UNDO, "&Undo"); - edit_menu->Append(wxID_REDO, "&Redo"); - edit_menu->AppendSeparator(); - edit_menu->Append(DOCVIEW_CUT, "&Cut last segment"); - - doc->GetCommandProcessor()->SetEditMenu(edit_menu); - } - - wxMenu *help_menu = new wxMenu; - help_menu->Append(DOCVIEW_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - if (isCanvas) - menu_bar->Append(edit_menu, "&Edit"); - menu_bar->Append(help_menu, "&Help"); - - //// Associate the menu bar with the frame - subframe->SetMenuBar(menu_bar); - - subframe->Centre(wxBOTH); - - return subframe; -} - -/* - * This is the top-level window of the application. - */ - -IMPLEMENT_CLASS(MyFrame, wxDocParentFrame) -BEGIN_EVENT_TABLE(MyFrame, wxDocParentFrame) - EVT_MENU(DOCVIEW_ABOUT, MyFrame::OnAbout) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long type): - wxDocParentFrame(manager, frame, id, title, pos, size, type) -{ - // This pointer only needed if in single window mode - canvas = (MyCanvas *) NULL; - editMenu = (wxMenu *) NULL; -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) -{ - (void)wxMessageBox("DocView Demo\nAuthor: Julian Smart julian.smart@ukonline.co.uk\nUsage: docview.exe [-single]", "About DocView"); -} - -// Creates a canvas. Called either from view.cc when a new drawing -// view is created, or in OnInit as a child of the main window, -// if in 'single window' mode. -MyCanvas *MyFrame::CreateCanvas(wxView *view, wxFrame *parent) -{ - int width, height; - parent->GetClientSize(&width, &height); - - // Non-retained canvas - MyCanvas *canvas = new MyCanvas(view, parent, wxPoint(0, 0), wxSize(width, height), 0); - canvas->SetCursor(wxCursor(wxCURSOR_PENCIL)); - - // Give it scrollbars - canvas->SetScrollbars(20, 20, 50, 50); - canvas->SetBackgroundColour(*wxWHITE); - canvas->Clear(); - - return canvas; -} - -MyFrame *GetMainFrame(void) -{ - return frame; -} - diff --git a/samples/docview/docview.def b/samples/docview/docview.def deleted file mode 100644 index 78ac0eda3f..0000000000 --- a/samples/docview/docview.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME DocView -DESCRIPTION 'Document architecture test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/docview/docview.h b/samples/docview/docview.h deleted file mode 100644 index fb9201406f..0000000000 --- a/samples/docview/docview.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: docview.h -// Purpose: Document/view demo -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface "docview.h" -#endif - -#ifndef __DOCVIEWSAMPLEH__ -#define __DOCVIEWSAMPLEH__ - -#include "wx/docview.h" - -class wxDocManager; - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp(void); - bool OnInit(void); - int OnExit(void); - - wxFrame *CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas); - - protected: - wxDocManager* m_docManager; -}; - -DECLARE_APP(MyApp) - -// Define a new frame -class MyCanvas; -class MyFrame: public wxDocParentFrame -{ - DECLARE_CLASS(MyFrame) - public: - wxMenu *editMenu; - - // This pointer only needed if in single window mode - MyCanvas *canvas; - - MyFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, - const long type); - - void OnAbout(wxCommandEvent& event); - MyCanvas *CreateCanvas(wxView *view, wxFrame *parent); - -DECLARE_EVENT_TABLE() -}; - -extern MyFrame *GetMainFrame(void); - -#define DOCVIEW_CUT 1 -#define DOCVIEW_ABOUT 2 - -extern bool singleWindowMode; - -#endif diff --git a/samples/docview/docview.rc b/samples/docview/docview.rc deleted file mode 100644 index 19c382a856..0000000000 --- a/samples/docview/docview.rc +++ /dev/null @@ -1,5 +0,0 @@ -doc_icn ICON "doc.ico" -chrt_icn ICON "chart.ico" -notepad_icn ICON "notepad.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/docview/makefile.b32 b/samples/docview/makefile.b32 deleted file mode 100644 index 8f52125c0e..0000000000 --- a/samples/docview/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=docview -OBJECTS = $(TARGET).obj view.obj doc.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/docview/makefile.bcc b/samples/docview/makefile.bcc deleted file mode 100644 index 6efb0aa0d2..0000000000 --- a/samples/docview/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=docview -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/docview/makefile.dos b/samples/docview/makefile.dos deleted file mode 100644 index 033f382e7d..0000000000 --- a/samples/docview/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=docview -OBJECTS=$(TARGET).obj view.obj doc.obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/docview/makefile.g95 b/samples/docview/makefile.g95 deleted file mode 100644 index fbb3e56c57..0000000000 --- a/samples/docview/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=docview -OBJECTS = $(TARGET).o view.o doc.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/docview/makefile.sc b/samples/docview/makefile.sc deleted file mode 100644 index 250054f91f..0000000000 --- a/samples/docview/makefile.sc +++ /dev/null @@ -1,38 +0,0 @@ -# Symantec C++ makefile for docview example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -OBJECTS=docview.obj view.obj doc.obj - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -docview.exe: $(OBJECTS) docview.def docview.res - *$(CC) $(LDFLAGS) -o$@ $(OBJECTS) docview.def $(LIBS) - *$(RC) -k docview.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws diff --git a/samples/docview/makefile.unx b/samples/docview/makefile.unx deleted file mode 100644 index e49d7b7335..0000000000 --- a/samples/docview/makefile.unx +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for docview example (UNIX). - -PROGRAM=docview - -OBJECTS=$(PROGRAM).o doc.o view.o - -include ../../src/makeprog.env - - diff --git a/samples/docview/makefile.vc b/samples/docview/makefile.vc deleted file mode 100644 index 9b20d64402..0000000000 --- a/samples/docview/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=docview -OBJECTS = $(PROGRAM).obj doc.obj view.obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/docview/makefile.vms b/samples/docview/makefile.vms deleted file mode 100644 index 1a64fc7f30..0000000000 --- a/samples/docview/makefile.vms +++ /dev/null @@ -1,44 +0,0 @@ -#************************************************************************ -# Makefile for DOCVIEW under VMS -# by Stefan Hammes -# (incomplete) update history: -# 09.06.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = docview - -# Object modules of the application. -OBJS = docview.obj view.obj doc.obj -OBJLIST =docview.obj,view.obj,doc.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(OBJS) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(OBJLIST),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ - -docview.$(OBJSUFF) : docview.$(SRCSUFF) docview.h doc.h view.h - -doc.$(OBJSUFF) : doc.$(SRCSUFF) doc.h - -view.$(OBJSUFF) : view.$(SRCSUFF) view.h - diff --git a/samples/docview/makefile.wat b/samples/docview/makefile.wat deleted file mode 100644 index c701e12cc8..0000000000 --- a/samples/docview/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = docview -OBJECTS = $(PROGRAM).obj view.obj doc.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/docview/mondrian.ico b/samples/docview/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Zj7-RFR+mfB7od;Od^;vO}ZfBQ&LJ2V?-jCDLL~C#NZagM;I%j zcDqx>sM_S|{9If6_#*$<|E|8A!Y23~4O?_U-zu)WBy=!zs+|>dTJJ4Cpn>GLVSetTitle("DrawingView"); - - canvas = GetMainFrame()->CreateCanvas(this, frame); -#ifdef __X__ - // X seems to require a forced resize - int x, y; - frame->GetSize(&x, &y); - frame->SetSize(-1, -1, x, y); -#endif - frame->Show(TRUE); - } - else - { - // Single-window mode - frame = GetMainFrame(); - canvas = GetMainFrame()->canvas; - canvas->view = this; - - // Associate the appropriate frame with this view. - SetFrame(frame); - - // Make sure the document manager knows that this is the - // current view. - Activate(TRUE); - - // Initialize the edit menu Undo and Redo items - doc->GetCommandProcessor()->SetEditMenu(((MyFrame *)frame)->editMenu); - doc->GetCommandProcessor()->Initialize(); - } - - return TRUE; -} - -// Sneakily gets used for default print/preview -// as well as drawing on the screen. -void DrawingView::OnDraw(wxDC *dc) -{ - dc->SetFont(*wxNORMAL_FONT); - dc->SetPen(*wxBLACK_PEN); - - wxNode *node = ((DrawingDocument *)GetDocument())->GetDoodleSegments().First(); - while (node) - { - DoodleSegment *seg = (DoodleSegment *)node->Data(); - seg->Draw(dc); - node = node->Next(); - } -} - -void DrawingView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint)) -{ - if (canvas) - canvas->Refresh(); - -/* Is the following necessary? -#ifdef __WXMSW__ - if (canvas) - canvas->Refresh(); -#else - if (canvas) - { - wxClientDC dc(canvas); - dc.Clear(); - OnDraw(& dc); - } -#endif -*/ -} - -// Clean up windows used for displaying the view. -bool DrawingView::OnClose(bool deleteWindow) -{ - if (!GetDocument()->Close()) - return FALSE; - - // Clear the canvas in case we're in single-window mode, - // and the canvas stays. - canvas->Clear(); - canvas->view = (wxView *) NULL; - canvas = (MyCanvas *) NULL; - - wxString s(wxTheApp->GetAppName()); - if (frame) - frame->SetTitle(s); - - SetFrame((wxFrame *) NULL); - - Activate(FALSE); - - if (deleteWindow && !singleWindowMode) - { - delete frame; - return TRUE; - } - return TRUE; -} - -void DrawingView::OnCut(wxCommandEvent& WXUNUSED(event) ) -{ - DrawingDocument *doc = (DrawingDocument *)GetDocument(); - doc->GetCommandProcessor()->Submit(new DrawingCommand((char *) "Cut Last Segment", DOODLE_CUT, doc, (DoodleSegment *) NULL)); -} - -IMPLEMENT_DYNAMIC_CLASS(TextEditView, wxView) - -bool TextEditView::OnCreate(wxDocument *doc, long WXUNUSED(flags) ) -{ - frame = wxGetApp().CreateChildFrame(doc, this, FALSE); - - int width, height; - frame->GetClientSize(&width, &height); - textsw = new MyTextWindow(this, frame, wxPoint(0, 0), wxSize(width, height), wxTE_MULTILINE); - frame->SetTitle("TextEditView"); - -#ifdef __X__ - // X seems to require a forced resize - int x, y; - frame->GetSize(&x, &y); - frame->SetSize(-1, -1, x, y); -#endif - - frame->Show(TRUE); - Activate(TRUE); - - return TRUE; -} - -// Handled by wxTextWindow -void TextEditView::OnDraw(wxDC *WXUNUSED(dc) ) -{ -} - -void TextEditView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) ) -{ -} - -bool TextEditView::OnClose(bool deleteWindow) -{ - if (!GetDocument()->Close()) - return FALSE; - - Activate(FALSE); - - if (deleteWindow) - { - delete frame; - return TRUE; - } - return TRUE; -} - -/* - * Window implementations - */ - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_MOUSE_EVENTS(MyCanvas::OnMouseEvent) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style): - wxScrolledWindow(frame, -1, pos, size, style) -{ - view = v; -} - -// Define the repainting behaviour -void MyCanvas::OnDraw(wxDC& dc) -{ - if (view) - view->OnDraw(& dc); -} - -// This implements a tiny doodling program. Drag the mouse using -// the left button. -void MyCanvas::OnMouseEvent(wxMouseEvent& event) -{ - if (!view) - return; - - static DoodleSegment *currentSegment = (DoodleSegment *) NULL; - - wxClientDC dc(this); - PrepareDC(dc); - - dc.SetPen(*wxBLACK_PEN); - - wxPoint pt(event.GetLogicalPosition(dc)); - - if (currentSegment && event.LeftUp()) - { - if (currentSegment->lines.Number() == 0) - { - delete currentSegment; - currentSegment = (DoodleSegment *) NULL; - } - else - { - // We've got a valid segment on mouse left up, so store it. - DrawingDocument *doc = (DrawingDocument *)view->GetDocument(); - - doc->GetCommandProcessor()->Submit(new DrawingCommand("Add Segment", DOODLE_ADD, doc, currentSegment)); - - view->GetDocument()->Modify(TRUE); - currentSegment = (DoodleSegment *) NULL; - } - } - - if (xpos > -1 && ypos > -1 && event.Dragging()) - { - if (!currentSegment) - currentSegment = new DoodleSegment; - - DoodleLine *newLine = new DoodleLine; - newLine->x1 = (long)xpos; - newLine->y1 = (long)ypos; - newLine->x2 = pt.x; - newLine->y2 = pt.y; - currentSegment->lines.Append(newLine); - - dc.DrawLine( (long)xpos, (long)ypos, pt.x, pt.y); - } - xpos = pt.x; - ypos = pt.y; -} - -// Define a constructor for my text subwindow -MyTextWindow::MyTextWindow(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style): - wxTextCtrl(frame, -1, "", pos, size, style) -{ - view = v; -} - - diff --git a/samples/docview/view.h b/samples/docview/view.h deleted file mode 100644 index d69cef8fec..0000000000 --- a/samples/docview/view.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.h -// Purpose: View classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface -#endif - -#ifndef __VIEWSAMPLEH__ -#define __VIEWSAMPLEH__ - -#include "wx/docview.h" - -class MyCanvas: public wxScrolledWindow -{ - public: - wxView *view; - - MyCanvas(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); - virtual void OnDraw(wxDC& dc); - void OnMouseEvent(wxMouseEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class MyTextWindow: public wxTextCtrl -{ - public: - wxView *view; - - MyTextWindow(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, const long style); -}; - -class DrawingView: public wxView -{ - DECLARE_DYNAMIC_CLASS(DrawingView) - private: - public: - wxFrame *frame; - MyCanvas *canvas; - - DrawingView(void) { canvas = (MyCanvas *) NULL; frame = (wxFrame *) NULL; }; - ~DrawingView(void) {}; - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC *dc); - void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); - bool OnClose(bool deleteWindow = TRUE); - - void OnCut(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class TextEditView: public wxView -{ - DECLARE_DYNAMIC_CLASS(TextEditView) - private: - public: - wxFrame *frame; - MyTextWindow *textsw; - - TextEditView(): wxView() { frame = (wxFrame *) NULL; textsw = (MyTextWindow *) NULL; } - ~TextEditView(void) {} - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC *dc); - void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); - bool OnClose(bool deleteWindow = TRUE); -}; - -#endif diff --git a/samples/docvwmdi/.cvsignore b/samples/docvwmdi/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/docvwmdi/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/docvwmdi/Makefile.am b/samples/docvwmdi/Makefile.am deleted file mode 100644 index 348095b1f6..0000000000 --- a/samples/docvwmdi/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = docview - -docview_SOURCES = docview.cpp doc.cpp view.cpp diff --git a/samples/docvwmdi/chart.ico b/samples/docvwmdi/chart.ico deleted file mode 100644 index d2bcfea7f6b553c99f3b904b5deb43d061d2916c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcma)4u?~VT5IxjH2a`IvN}SyM1wXB0x6Vxc6!-uVe!=$?nzrhpQAOg_h$ceBh&-)D#M=FYfwAK(fEMk@u943z>%&;>f z=!p!jQ1(F`;nH6b*Hp8L=}Yy==?UxKFw{4E#S*@E9qb%1@FoA3!Ig3>`OK~z z@un-8v!Fv^(aWyarIV9>RrS_!4*ko4OA?3t$%K}!rwqfamwPXT8Ywru6t38 f@y15=$>%IlxrN6sR{!aD diff --git a/samples/docvwmdi/doc.cpp b/samples/docvwmdi/doc.cpp deleted file mode 100644 index 23a5316143..0000000000 --- a/samples/docvwmdi/doc.cpp +++ /dev/null @@ -1,275 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.cpp -// Purpose: Implements document functionality -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// 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 - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! -#endif - -#include "doc.h" -#include "view.h" - -IMPLEMENT_DYNAMIC_CLASS(DrawingDocument, wxDocument) - -DrawingDocument::DrawingDocument(void) -{ -} - -DrawingDocument::~DrawingDocument(void) -{ - doodleSegments.DeleteContents(TRUE); -} - -ostream& DrawingDocument::SaveObject(ostream& stream) -{ - wxDocument::SaveObject(stream); - - stream << doodleSegments.Number() << '\n'; - wxNode *node = doodleSegments.First(); - while (node) - { - DoodleSegment *segment = (DoodleSegment *)node->Data(); - segment->SaveObject(stream); - stream << '\n'; - - node = node->Next(); - } - return stream; -} - -istream& DrawingDocument::LoadObject(istream& stream) -{ - wxDocument::LoadObject(stream); - - int n = 0; - stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleSegment *segment = new DoodleSegment; - segment->LoadObject(stream); - doodleSegments.Append(segment); - } - - return stream; -} - -DoodleSegment::DoodleSegment(void) -{ -} - -DoodleSegment::DoodleSegment(DoodleSegment& seg) -{ - wxNode *node = seg.lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - DoodleLine *newLine = new DoodleLine; - newLine->x1 = line->x1; - newLine->y1 = line->y1; - newLine->x2 = line->x2; - newLine->y2 = line->y2; - - lines.Append(newLine); - - node = node->Next(); - } -} - -DoodleSegment::~DoodleSegment(void) -{ - lines.DeleteContents(TRUE); -} - -ostream& DoodleSegment::SaveObject(ostream& stream) -{ - stream << lines.Number() << '\n'; - wxNode *node = lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - stream << line->x1 << " " << line->y1 << " " << line->x2 << " " << line->y2 << "\n"; - node = node->Next(); - } - return stream; -} - -istream& DoodleSegment::LoadObject(istream& stream) -{ - int n = 0; - stream >> n; - - for (int i = 0; i < n; i++) - { - DoodleLine *line = new DoodleLine; - stream >> line->x1 >> line->y1 >> line->x2 >> line->y2; - lines.Append(line); - } - return stream; -} - -void DoodleSegment::Draw(wxDC *dc) -{ - wxNode *node = lines.First(); - while (node) - { - DoodleLine *line = (DoodleLine *)node->Data(); - dc->DrawLine(line->x1, line->y1, line->x2, line->y2); - node = node->Next(); - } -} - -/* - * Implementation of drawing command - */ - -DrawingCommand::DrawingCommand(const wxString& name, int command, DrawingDocument *ddoc, DoodleSegment *seg): - wxCommand(TRUE, name) -{ - doc = ddoc; - segment = seg; - cmd = command; -} - -DrawingCommand::~DrawingCommand(void) -{ - if (segment) - delete segment; -} - -bool DrawingCommand::Do(void) -{ - switch (cmd) - { - case DOODLE_CUT: - { - // Cut the last segment - if (doc->GetDoodleSegments().Number() > 0) - { - wxNode *node = doc->GetDoodleSegments().Last(); - if (segment) - delete segment; - - segment = (DoodleSegment *)node->Data(); - delete node; - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - break; - } - case DOODLE_ADD: - { - doc->GetDoodleSegments().Append(new DoodleSegment(*segment)); - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - } - return TRUE; -} - -bool DrawingCommand::Undo(void) -{ - switch (cmd) - { - case DOODLE_CUT: - { - // Paste the segment - if (segment) - { - doc->GetDoodleSegments().Append(segment); - doc->Modify(TRUE); - doc->UpdateAllViews(); - segment = (DoodleSegment *) NULL; - } - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - case DOODLE_ADD: - { - // Cut the last segment - if (doc->GetDoodleSegments().Number() > 0) - { - wxNode *node = doc->GetDoodleSegments().Last(); - DoodleSegment *seg = (DoodleSegment *)node->Data(); - delete seg; - delete node; - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - } - } - return TRUE; -} - -IMPLEMENT_DYNAMIC_CLASS(TextEditDocument, wxDocument) - -// Since text windows have their own method for saving to/loading from files, -// we override OnSave/OpenDocument instead of Save/LoadObject -bool TextEditDocument::OnSaveDocument(const wxString& filename) -{ - TextEditView *view = (TextEditView *)GetFirstView(); - - if (!view->textsw->SaveFile(filename)) - return FALSE; - Modify(FALSE); - return TRUE; -} - -bool TextEditDocument::OnOpenDocument(const wxString& filename) -{ - TextEditView *view = (TextEditView *)GetFirstView(); - if (!view->textsw->LoadFile(filename)) - return FALSE; - - SetFilename(filename, TRUE); - Modify(FALSE); - UpdateAllViews(); - return TRUE; -} - -bool TextEditDocument::IsModified(void) const -{ - TextEditView *view = (TextEditView *)GetFirstView(); - if (view) - { - return (wxDocument::IsModified() || view->textsw->IsModified()); - } - else - return wxDocument::IsModified(); -} - -void TextEditDocument::Modify(bool mod) -{ - TextEditView *view = (TextEditView *)GetFirstView(); - - wxDocument::Modify(mod); - - if (!mod && view && view->textsw) - view->textsw->DiscardEdits(); -} diff --git a/samples/docvwmdi/doc.h b/samples/docvwmdi/doc.h deleted file mode 100644 index a83b45c877..0000000000 --- a/samples/docvwmdi/doc.h +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.h -// Purpose: Document classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface -#endif - -#ifndef __DOCSAMPLEH__ -#define __DOCSAMPLEH__ - -#include "wx/docview.h" - -// Plots a line from one point to the other -class DoodleLine: public wxObject -{ - public: - long x1; - long y1; - long x2; - long y2; -}; - -// Contains a list of lines: represents a mouse-down doodle -class DoodleSegment: public wxObject -{ - public: - wxList lines; - - DoodleSegment(void); - DoodleSegment(DoodleSegment& seg); - ~DoodleSegment(void); - - void Draw(wxDC *dc); - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); -}; - -class DrawingDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(DrawingDocument) - private: - public: - wxList doodleSegments; - - DrawingDocument(void); - ~DrawingDocument(void); - - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); - - inline wxList& GetDoodleSegments(void) const { return (wxList&) doodleSegments; }; -}; - -#define DOODLE_CUT 1 -#define DOODLE_ADD 2 - -class DrawingCommand: public wxCommand -{ - protected: - DoodleSegment *segment; - DrawingDocument *doc; - int cmd; - public: - DrawingCommand(const wxString& name, int cmd, DrawingDocument *ddoc, DoodleSegment *seg); - ~DrawingCommand(void); - - bool Do(void); - bool Undo(void); -}; - -class TextEditDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(TextEditDocument) - private: - public: -/* - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); -*/ - virtual bool OnSaveDocument(const wxString& filename); - virtual bool OnOpenDocument(const wxString& filename); - virtual bool IsModified(void) const; - virtual void Modify(bool mod); - - TextEditDocument(void) {} - ~TextEditDocument(void) {} -}; - - -#endif diff --git a/samples/docvwmdi/doc.ico b/samples/docvwmdi/doc.ico deleted file mode 100644 index 34b1d7bc936820eecbbf4acbb26617eaf0d7eb9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcma)(J#vFE6oemfW=N-0X-%11kV{Z=1$C5WCI^E9FykxGC1n~07ap&7^<#&Oi%6{W zR?_<w_Y*{$>xD00eY#3t4mZ6Q~Xno&v0^u`25yh$@ zHUBN{XS32_gyJt5fhF$0p#3E55wAb&n$LIxyz1H@S_i3uwcrZ}b(JNje; z0Pq`te84Aw!ykY=Hy2cZ(g}bzKzd=b@_+6p>DhEZWp#1%FbJvU&ML6<%`cgJZ-+N`{1J}oC06$K7q>)I2FK5 w^@a;MC$j_hm1@Q{`~6IfJZK+PGM07{#|p_(Q9N^=xsJR&xiw}x5FEC?0?FYnj{pDw diff --git a/samples/docvwmdi/docview.cpp b/samples/docvwmdi/docview.cpp deleted file mode 100644 index dad7ffd133..0000000000 --- a/samples/docvwmdi/docview.cpp +++ /dev/null @@ -1,221 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: docview.cpp -// Purpose: Document/view demo -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation "docview.h" -#endif - -/* - * Purpose: Document/view architecture demo for wxWindows class library - MDI - */ - - -// 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 - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h! -#endif - -#include "docview.h" -#include "doc.h" -#include "view.h" - -MyFrame *frame = (MyFrame *) NULL; - -IMPLEMENT_APP(MyApp) - -MyApp::MyApp(void) -{ - m_docManager = (wxDocManager *) NULL; -} - -bool MyApp::OnInit(void) -{ - //// Create a document manager - m_docManager = new wxDocManager; - - //// Create a template relating drawing documents to their views - (void) new wxDocTemplate((wxDocManager *) m_docManager, "Drawing", "*.drw", "", "drw", "Drawing Doc", "Drawing View", - CLASSINFO(DrawingDocument), CLASSINFO(DrawingView)); - - //// Create a template relating text documents to their views - (void) new wxDocTemplate(m_docManager, "Text", "*.txt", "", "txt", "Text Doc", "Text View", - CLASSINFO(TextEditDocument), CLASSINFO(TextEditView)); - - //// Create the main frame window - frame = new MyFrame((wxDocManager *) m_docManager, (wxFrame *) NULL, (const wxString) "DocView Demo", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE); - - //// Give it an icon (this is ignored in MDI mode: uses resources) -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("doc")); -#endif -#ifdef __X__ - frame->SetIcon(wxIcon("doc.xbm")); -#endif - - //// Make a menubar - wxMenu *file_menu = new wxMenu; - wxMenu *edit_menu = (wxMenu *) NULL; - - file_menu->Append(wxID_NEW, "&New..."); - file_menu->Append(wxID_OPEN, "&Open..."); - - file_menu->AppendSeparator(); - file_menu->Append(wxID_EXIT, "E&xit"); - - // A nice touch: a history of files visited. Use this menu. - m_docManager->FileHistoryUseMenu(file_menu); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(DOCVIEW_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - if (edit_menu) - menu_bar->Append(edit_menu, "&Edit"); - menu_bar->Append(help_menu, "&Help"); - - //// Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - frame->Centre(wxBOTH); - frame->Show(TRUE); - - SetTopWindow(frame); - return TRUE; -} - -int MyApp::OnExit(void) -{ - delete m_docManager; - return 0; -} - -/* - * Centralised code for creating a document frame. - * Called from view.cpp, when a view is created. - */ - -wxMDIChildFrame *MyApp::CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas) -{ - //// Make a child frame - wxDocMDIChildFrame *subframe = new wxDocMDIChildFrame(doc, view, GetMainFrame(), -1, "Child Frame", - wxPoint(10, 10), wxSize(300, 300), wxDEFAULT_FRAME_STYLE); - -#ifdef __WXMSW__ - subframe->SetIcon(wxString(isCanvas ? "chart" : "notepad")); -#endif -#ifdef __X__ - subframe->SetIcon(wxIcon("doc.xbm")); -#endif - - //// Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(wxID_NEW, "&New..."); - file_menu->Append(wxID_OPEN, "&Open..."); - file_menu->Append(wxID_CLOSE, "&Close"); - file_menu->Append(wxID_SAVE, "&Save"); - file_menu->Append(wxID_SAVEAS, "Save &As..."); - - if (isCanvas) - { - file_menu->AppendSeparator(); - file_menu->Append(wxID_PRINT, "&Print..."); - file_menu->Append(wxID_PRINT_SETUP, "Print &Setup..."); - file_menu->Append(wxID_PREVIEW, "Print Pre&view"); - } - - file_menu->AppendSeparator(); - file_menu->Append(wxID_EXIT, "E&xit"); - - wxMenu *edit_menu = (wxMenu *) NULL; - - if (isCanvas) - { - edit_menu = new wxMenu; - edit_menu->Append(wxID_UNDO, "&Undo"); - edit_menu->Append(wxID_REDO, "&Redo"); - edit_menu->AppendSeparator(); - edit_menu->Append(DOCVIEW_CUT, "&Cut last segment"); - - doc->GetCommandProcessor()->SetEditMenu(edit_menu); - } - - wxMenu *help_menu = new wxMenu; - help_menu->Append(DOCVIEW_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - if (isCanvas) - menu_bar->Append(edit_menu, "&Edit"); - menu_bar->Append(help_menu, "&Help"); - - //// Associate the menu bar with the frame - subframe->SetMenuBar(menu_bar); - - return subframe; -} - -/* - * This is the top-level window of the application. - */ - -IMPLEMENT_CLASS(MyFrame, wxDocMDIParentFrame) -BEGIN_EVENT_TABLE(MyFrame, wxDocMDIParentFrame) - EVT_MENU(DOCVIEW_ABOUT, MyFrame::OnAbout) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxDocManager *manager, wxFrame *frame, const wxString& title, - const wxPoint& pos, const wxSize& size, long type): - wxDocMDIParentFrame(manager, frame, -1, title, pos, size, type, "myFrame") -{ - editMenu = (wxMenu *) NULL; -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) -{ - (void)wxMessageBox("DocView Demo\nAuthor: Julian Smart julian.smart@ukonline.co.uk\nUsage: docview.exe", "About DocView"); -} - -// Creates a canvas. Called from view.cpp when a new drawing -// view is created. -MyCanvas *MyFrame::CreateCanvas(wxView *view, wxFrame *parent) -{ - int width, height; - parent->GetClientSize(&width, &height); - - // Non-retained canvas - MyCanvas *canvas = new MyCanvas(view, parent, wxPoint(0, 0), wxSize(width, height), 0); - canvas->SetCursor(wxCursor(wxCURSOR_PENCIL)); - - // Give it scrollbars - canvas->SetScrollbars(20, 20, 50, 50); - - return canvas; -} - -MyFrame *GetMainFrame(void) -{ - return frame; -} - diff --git a/samples/docvwmdi/docview.def b/samples/docvwmdi/docview.def deleted file mode 100644 index 78ac0eda3f..0000000000 --- a/samples/docvwmdi/docview.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME DocView -DESCRIPTION 'Document architecture test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/docvwmdi/docview.h b/samples/docvwmdi/docview.h deleted file mode 100644 index 937c6f0e54..0000000000 --- a/samples/docvwmdi/docview.h +++ /dev/null @@ -1,63 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: docview.h -// Purpose: Document/view demo -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface "docview.h" -#endif - -#ifndef __DOCVIEWSAMPLEH__ -#define __DOCVIEWSAMPLEH__ - -#include "wx/docmdi.h" - -class wxDocManager; - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp(void); - bool OnInit(void); - int OnExit(void); - - wxMDIChildFrame *CreateChildFrame(wxDocument *doc, wxView *view, bool isCanvas); - - protected: - wxDocManager* m_docManager; -}; - -DECLARE_APP(MyApp) - -// Define a new frame -class MyCanvas; -class MyFrame: public wxDocMDIParentFrame -{ - DECLARE_CLASS(MyFrame) - public: - wxMenu *editMenu; - - MyFrame(wxDocManager *manager, wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, - long type); - - void OnAbout(wxCommandEvent& event); - MyCanvas *CreateCanvas(wxView *view, wxFrame *parent); - -DECLARE_EVENT_TABLE() -}; - -extern MyFrame *GetMainFrame(void); - -#define DOCVIEW_CUT 1 -#define DOCVIEW_ABOUT 2 - -extern bool singleWindowMode; - -#endif diff --git a/samples/docvwmdi/docview.rc b/samples/docvwmdi/docview.rc deleted file mode 100644 index b9880e453b..0000000000 --- a/samples/docvwmdi/docview.rc +++ /dev/null @@ -1,6 +0,0 @@ -doc ICON "doc.ico" -chart ICON "chart.ico" -notepad ICON "notepad.ico" - -#include "wx/msw/wx.rc" - diff --git a/samples/docvwmdi/makefile.b32 b/samples/docvwmdi/makefile.b32 deleted file mode 100644 index 8f52125c0e..0000000000 --- a/samples/docvwmdi/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=docview -OBJECTS = $(TARGET).obj view.obj doc.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/docvwmdi/makefile.bcc b/samples/docvwmdi/makefile.bcc deleted file mode 100644 index 6efb0aa0d2..0000000000 --- a/samples/docvwmdi/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=docview -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/docvwmdi/makefile.dos b/samples/docvwmdi/makefile.dos deleted file mode 100644 index 04760719b3..0000000000 --- a/samples/docvwmdi/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=docview -OBJECTS=$(TARGET).obj doc.obj view.obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/docvwmdi/makefile.g95 b/samples/docvwmdi/makefile.g95 deleted file mode 100644 index fbb3e56c57..0000000000 --- a/samples/docvwmdi/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=docview -OBJECTS = $(TARGET).o view.o doc.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/docvwmdi/makefile.unx b/samples/docvwmdi/makefile.unx deleted file mode 100644 index 7b3a448e48..0000000000 --- a/samples/docvwmdi/makefile.unx +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for docvwmdi example (UNIX). - -PROGRAM=docview - -OBJECTS=$(PROGRAM).o doc.o view.o - -include ../../src/makeprog.env diff --git a/samples/docvwmdi/makefile.vc b/samples/docvwmdi/makefile.vc deleted file mode 100644 index 9b20d64402..0000000000 --- a/samples/docvwmdi/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=docview -OBJECTS = $(PROGRAM).obj doc.obj view.obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/docvwmdi/makefile.wat b/samples/docvwmdi/makefile.wat deleted file mode 100644 index c701e12cc8..0000000000 --- a/samples/docvwmdi/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = docview -OBJECTS = $(PROGRAM).obj view.obj doc.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/docvwmdi/notepad.ico b/samples/docvwmdi/notepad.ico deleted file mode 100644 index 5d07bf79a3816057ef95a18fb91f23871092fc31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmbVKF^j7-RFR+mfB7od;Od^;vO}ZfBQ&LJ2V?-jCDLL~C#NZagM;I%j zcDqx>sM_S|{9If6_#*$<|E|8A!Y23~4O?_U-zu)WBy=!zs+|>dTJJ4Cpn>GLVSetTitle("DrawingView"); - - canvas = GetMainFrame()->CreateCanvas(this, frame); -#ifdef __X__ - // X seems to require a forced resize - int x, y; - frame->GetSize(&x, &y); - frame->SetSize(-1, -1, x, y); -#endif - frame->Show(TRUE); - - return TRUE; -} - -// Sneakily gets used for default print/preview -// as well as drawing on the screen. -void DrawingView::OnDraw(wxDC *dc) -{ - dc->SetFont(*wxNORMAL_FONT); - dc->SetPen(*wxBLACK_PEN); - - wxNode *node = ((DrawingDocument *)GetDocument())->GetDoodleSegments().First(); - while (node) - { - DoodleSegment *seg = (DoodleSegment *)node->Data(); - seg->Draw(dc); - node = node->Next(); - } -} - -void DrawingView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint)) -{ - if (canvas) - canvas->Refresh(); - -/* Is the following necessary? -#ifdef __WXMSW__ - if (canvas) - canvas->Refresh(); -#else - if (canvas) - { - wxClientDC dc(canvas); - dc.Clear(); - OnDraw(& dc); - } -#endif -*/ -} - -// Clean up windows used for displaying the view. -bool DrawingView::OnClose(bool deleteWindow) -{ - if (!GetDocument()->Close()) - return FALSE; - - // Clear the canvas in case we're in single-window mode, - // and the canvas stays. - canvas->Clear(); - canvas->view = (wxView *) NULL; - canvas = (MyCanvas *) NULL; - - wxString s(wxTheApp->GetAppName()); - if (frame) - frame->SetTitle(s); - - SetFrame((wxFrame*)NULL); - - Activate(FALSE); - - if (deleteWindow) - { - delete frame; - return TRUE; - } - return TRUE; -} - -void DrawingView::OnCut(wxCommandEvent& WXUNUSED(event) ) -{ - DrawingDocument *doc = (DrawingDocument *)GetDocument(); - doc->GetCommandProcessor()->Submit(new DrawingCommand((const wxString) "Cut Last Segment", DOODLE_CUT, doc, (DoodleSegment *) NULL)); -} - -IMPLEMENT_DYNAMIC_CLASS(TextEditView, wxView) - -bool TextEditView::OnCreate(wxDocument *doc, long WXUNUSED(flags) ) -{ - frame = wxGetApp().CreateChildFrame(doc, this, FALSE); - - int width, height; - frame->GetClientSize(&width, &height); - textsw = new MyTextWindow(this, frame, wxPoint(0, 0), wxSize(width, height), wxTE_MULTILINE); - frame->SetTitle("TextEditView"); - -#ifdef __X__ - // X seems to require a forced resize - int x, y; - frame->GetSize(&x, &y); - frame->SetSize(-1, -1, x, y); -#endif - - frame->Show(TRUE); - Activate(TRUE); - - return TRUE; -} - -// Handled by wxTextWindow -void TextEditView::OnDraw(wxDC *WXUNUSED(dc) ) -{ -} - -void TextEditView::OnUpdate(wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint) ) -{ -} - -bool TextEditView::OnClose(bool deleteWindow) -{ - if (!GetDocument()->Close()) - return FALSE; - - Activate(FALSE); - - if (deleteWindow) - { - delete frame; - return TRUE; - } - return TRUE; -} - -/* - * Window implementations - */ - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_MOUSE_EVENTS(MyCanvas::OnMouseEvent) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style): - wxScrolledWindow(frame, -1, pos, size, style) -{ - view = v; -} - -// Define the repainting behaviour -void MyCanvas::OnDraw(wxDC& dc) -{ - if (view) - view->OnDraw(& dc); -} - -// This implements a tiny doodling program. Drag the mouse using -// the left button. -void MyCanvas::OnMouseEvent(wxMouseEvent& event) -{ - if (!view) - return; - - static DoodleSegment *currentSegment = (DoodleSegment *) NULL; - - wxClientDC dc(this); - PrepareDC(dc); - - dc.SetPen(*wxBLACK_PEN); - - wxPoint pt(event.GetLogicalPosition(dc)); - - if (currentSegment && event.LeftUp()) - { - if (currentSegment->lines.Number() == 0) - { - delete currentSegment; - currentSegment = (DoodleSegment *) NULL; - } - else - { - // We've got a valid segment on mouse left up, so store it. - DrawingDocument *doc = (DrawingDocument *)view->GetDocument(); - - doc->GetCommandProcessor()->Submit(new DrawingCommand("Add Segment", DOODLE_ADD, doc, currentSegment)); - - view->GetDocument()->Modify(TRUE); - currentSegment = (DoodleSegment *) NULL; - } - } - - if (xpos > -1 && ypos > -1 && event.Dragging()) - { - if (!currentSegment) - currentSegment = new DoodleSegment; - - DoodleLine *newLine = new DoodleLine; - newLine->x1 = (long)xpos; - newLine->y1 = (long)ypos; - newLine->x2 = pt.x; - newLine->y2 = pt.y; - currentSegment->lines.Append(newLine); - - dc.DrawLine( (long)xpos, (long)ypos, pt.x, pt.y); - } - xpos = pt.x; - ypos = pt.y; -} - -// Define a constructor for my text subwindow -MyTextWindow::MyTextWindow(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style): - wxTextCtrl(frame, -1, "", pos, size, style) -{ - view = v; -} - - diff --git a/samples/docvwmdi/view.h b/samples/docvwmdi/view.h deleted file mode 100644 index 74038ede6e..0000000000 --- a/samples/docvwmdi/view.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.h -// Purpose: View classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface -#endif - -#ifndef __VIEWSAMPLEH__ -#define __VIEWSAMPLEH__ - -#include "wx/docview.h" - -class MyCanvas: public wxScrolledWindow -{ - public: - wxView *view; - - MyCanvas(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style); - virtual void OnDraw(wxDC& dc); - void OnMouseEvent(wxMouseEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class MyTextWindow: public wxTextCtrl -{ - public: - wxView *view; - - MyTextWindow(wxView *v, wxFrame *frame, const wxPoint& pos, const wxSize& size, long style); -}; - -class DrawingView: public wxView -{ - DECLARE_DYNAMIC_CLASS(DrawingView) - private: - public: - wxFrame *frame; - MyCanvas *canvas; - - DrawingView(void) { canvas = (MyCanvas *) NULL; frame = (wxFrame *) NULL; }; - ~DrawingView(void) {}; - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC *dc); - void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); - bool OnClose(bool deleteWindow = TRUE); - - void OnCut(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class TextEditView: public wxView -{ - DECLARE_DYNAMIC_CLASS(TextEditView) - private: - public: - wxFrame *frame; - MyTextWindow *textsw; - - TextEditView(): wxView() { frame = (wxFrame *) NULL; textsw = (MyTextWindow *) NULL; } - ~TextEditView(void) {} - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC *dc); - void OnUpdate(wxView *sender, wxObject *hint = (wxObject *) NULL); - bool OnClose(bool deleteWindow = TRUE); -}; - -#endif diff --git a/samples/drawing/.cvsignore b/samples/drawing/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/drawing/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/drawing/Makefile.am b/samples/drawing/Makefile.am deleted file mode 100644 index af31189eb1..0000000000 --- a/samples/drawing/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = drawing - -drawing_SOURCES = drawing.cpp diff --git a/samples/drawing/drawing.cpp b/samples/drawing/drawing.cpp deleted file mode 100644 index 012646186d..0000000000 --- a/samples/drawing/drawing.cpp +++ /dev/null @@ -1,427 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: drawing.cpp -// Purpose: shows and tests wxDC features -// Author: Robert Roebling -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "drawing.cpp" - #pragma interface "drawing.cpp" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// for all others, include the necessary headers (this file is usually all you -// need because it includes almost all "standard" wxWindows headers -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include "wx/colordlg.h" - -// ---------------------------------------------------------------------------- -// ressources -// ---------------------------------------------------------------------------- -// the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.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 OnPaint(wxPaintEvent &event); - void OnOption(wxCommandEvent &event); - void OnMouseMove(wxMouseEvent &event); - - wxColour SelectColour(); - void PrepareDC(wxDC& dc); - -protected: - int m_backgroundMode; - int m_mapMode; - double m_xUserScale; - double m_yUserScale; - int m_xLogicalOrigin; - int m_yLogicalOrigin; - bool m_xAxisReversed, - m_yAxisReversed; - wxColour m_colourForeground, // these are _text_ colours - m_colourBackground; - wxBrush m_backgroundBrush; - -private: - // any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// IDs for the controls and the menu commands -enum -{ - // menu items - Minimal_Quit = 1, - Minimal_About, - - MenuOption_First, - - MapMode_Text = MenuOption_First, - MapMode_Lometric, - MapMode_Twips, - MapMode_Points, - MapMode_Metric, - - UserScale_StretchHoriz, - UserScale_ShrinkHoriz, - UserScale_StretchVertic, - UserScale_ShrinkVertic, - UserScale_Restore, - - AxisMirror_Horiz, - AxisMirror_Vertic, - - LogicalOrigin_MoveDown, - LogicalOrigin_MoveUp, - LogicalOrigin_MoveLeft, - LogicalOrigin_MoveRight, - - Colour_TextForeground, - Colour_TextBackground, - Colour_Background, - Colour_BackgroundMode, - - MenuOption_Last = Colour_BackgroundMode -}; - -// ---------------------------------------------------------------------------- -// event tables and other macros for wxWindows -// ---------------------------------------------------------------------------- - -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. It can be also done at run-time, but for the -// simple menu events like this the static method is much simpler. -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - - EVT_MOTION (MyFrame::OnMouseMove) - EVT_PAINT (MyFrame::OnPaint) - - EVT_MENU(Minimal_Quit, MyFrame::OnQuit) - EVT_MENU(Minimal_About, MyFrame::OnAbout) - - EVT_MENU_RANGE(MenuOption_First, MenuOption_Last, MyFrame::OnOption) -END_EVENT_TABLE() - -// Create a new application object: this macro will allow wxWindows to create -// the application object during program execution (it's better than using a -// static object for many reasons) and also declares the accessor function -// wxGetApp() which will return the reference of the right type (i.e. MyApp and -// not wxApp) -IMPLEMENT_APP(MyApp) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// the application class -// ---------------------------------------------------------------------------- - -// `Main program' equivalent: the program execution "starts" here -bool MyApp::OnInit() -{ - // Create the main application window - MyFrame *frame = new MyFrame("Drawing sample", - wxPoint(50, 50), wxSize(450, 340)); - - // Show it and tell the application that it's our main window - frame->Show(TRUE); - SetTopWindow(frame); - - // success: wxApp::OnRun() will be called which will enter the main message - // loop and the application will run. If we returned FALSE here, the - // application would exit immediately. - return TRUE; -} - -// ---------------------------------------------------------------------------- -// main frame -// ---------------------------------------------------------------------------- - -// frame constructor -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - // set the frame icon - SetIcon(wxICON(mondrian)); - - wxMenu *menuFile = new wxMenu; - menuFile->Append(Minimal_About, "&About...\tCtrl-A", "Show about dialog"); - menuFile->AppendSeparator(); - menuFile->Append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program"); - - wxMenu *menuMapMode = new wxMenu; - menuMapMode->Append( MapMode_Text, "&TEXT map mode" ); - menuMapMode->Append( MapMode_Lometric, "&LOMETRIC map mode" ); - menuMapMode->Append( MapMode_Twips, "T&WIPS map mode" ); - menuMapMode->Append( MapMode_Points, "&POINTS map mode" ); - menuMapMode->Append( MapMode_Metric, "&METRIC map mode" ); - - wxMenu *menuUserScale = new wxMenu; - menuUserScale->Append( UserScale_StretchHoriz, "Stretch horizontally\tCtrl-H" ); - menuUserScale->Append( UserScale_ShrinkHoriz, "Shrink horizontally\tCtrl-G" ); - menuUserScale->Append( UserScale_StretchVertic, "Stretch vertically\tCtrl-V" ); - menuUserScale->Append( UserScale_ShrinkVertic, "Shrink vertically\tCtrl-W" ); - menuUserScale->AppendSeparator(); - menuUserScale->Append( UserScale_Restore, "Restore to normal\tCtrl-0" ); - - wxMenu *menuAxis = new wxMenu; - menuAxis->Append( AxisMirror_Horiz, "Mirror horizontally\tCtrl-M", "", TRUE ); - menuAxis->Append( AxisMirror_Vertic, "Mirror vertically\tCtrl-N", "", TRUE ); - - wxMenu *menuLogical = new wxMenu; - menuLogical->Append( LogicalOrigin_MoveDown, "Move &down\tCtrl-D" ); - menuLogical->Append( LogicalOrigin_MoveUp, "Move &up\tCtrl-U" ); - menuLogical->Append( LogicalOrigin_MoveLeft, "Move &right\tCtrl-L" ); - menuLogical->Append( LogicalOrigin_MoveRight, "Move &left\tCtrl-R" ); - - wxMenu *menuColour = new wxMenu; - menuColour->Append( Colour_TextForeground, "Text foreground..." ); - menuColour->Append( Colour_TextBackground, "Text background..." ); - menuColour->Append( Colour_Background, "Background colour..." ); - menuColour->Append( Colour_BackgroundMode, "Opaque/transparent\tCtrl-B", "", TRUE ); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - menuBar->Append(menuMapMode, "&MapMode"); - menuBar->Append(menuUserScale, "&UserScale"); - menuBar->Append(menuAxis, "&Axis"); - menuBar->Append(menuLogical, "&LogicalOrigin"); - menuBar->Append(menuColour, "&Colours"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - // create a status bar just for fun (by default with 1 pane only) - CreateStatusBar(2); - SetStatusText("Welcome to wxWindows!"); - - m_mapMode = wxMM_TEXT; - m_xUserScale = 1.0; - m_yUserScale = 1.0; - m_xLogicalOrigin = 0; - m_yLogicalOrigin = 0; - m_xAxisReversed = - m_yAxisReversed = FALSE; - m_backgroundMode = wxSOLID; -} - - -// 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 the drawing sample.\n") - _T("Copyright (c) Robert Roebling 1999") - ); - - wxMessageBox(msg, "About Drawing", wxOK | wxICON_INFORMATION, this); -} - -void MyFrame::OnOption(wxCommandEvent &event) -{ - switch (event.GetInt()) - { - case MapMode_Text: - m_mapMode = wxMM_TEXT; - break; - case MapMode_Lometric: - m_mapMode = wxMM_LOMETRIC; - break; - case MapMode_Twips: - m_mapMode = wxMM_TWIPS; - break; - case MapMode_Points: - m_mapMode = wxMM_POINTS; - break; - case MapMode_Metric: - m_mapMode = wxMM_METRIC; - break; - - case LogicalOrigin_MoveDown: - m_yLogicalOrigin += 10; - break; - case LogicalOrigin_MoveUp: - m_yLogicalOrigin -= 10; - break; - case LogicalOrigin_MoveLeft: - m_xLogicalOrigin += 10; - break; - case LogicalOrigin_MoveRight: - m_xLogicalOrigin -= 10; - break; - - case UserScale_StretchHoriz: - m_xUserScale *= 1.10; - break; - case UserScale_ShrinkHoriz: - m_xUserScale /= 1.10; - break; - case UserScale_StretchVertic: - m_yUserScale *= 1.10; - break; - case UserScale_ShrinkVertic: - m_yUserScale /= 1.10; - break; - case UserScale_Restore: - m_xUserScale = - m_yUserScale = 1.0; - break; - - case AxisMirror_Vertic: - m_yAxisReversed = !m_yAxisReversed; - break; - case AxisMirror_Horiz: - m_xAxisReversed = !m_xAxisReversed; - break; - - case Colour_TextForeground: - m_colourForeground = SelectColour(); - break; - case Colour_TextBackground: - m_colourBackground = SelectColour(); - break; - case Colour_Background: - { - wxColour col = SelectColour(); - if ( col.Ok() ) - { - m_backgroundBrush.SetColour(col); - } - } - break; - case Colour_BackgroundMode: - m_backgroundMode = m_backgroundMode == wxSOLID ? wxTRANSPARENT - : wxSOLID; - break; - - default: - // skip Refresh() - return; - } - - Refresh(); -} - -void MyFrame::PrepareDC(wxDC& dc) -{ - dc.SetMapMode( m_mapMode ); - dc.SetUserScale( m_xUserScale, m_yUserScale ); - dc.SetLogicalOrigin( m_xLogicalOrigin, m_yLogicalOrigin ); - dc.SetAxisOrientation( !m_xAxisReversed, m_yAxisReversed ); -} - -void MyFrame::OnPaint(wxPaintEvent &WXUNUSED(event) ) -{ - wxPaintDC dc(this); - PrepareDC(dc); - - dc.SetBackgroundMode( m_backgroundMode ); - if ( m_backgroundBrush.Ok() ) - dc.SetBackground( m_backgroundBrush ); - if ( m_colourForeground.Ok() ) - dc.SetTextForeground( m_colourForeground ); - if ( m_colourBackground.Ok() ) - dc.SetTextBackground( m_colourBackground ); - - // mark the origin - dc.DrawCircle(0, 0, 10); -#ifndef __WXGTK__ // not implemented in wxGTK :-( - dc.FloodFill(0, 0, wxColour(255, 0, 0)); -#endif // __WXGTK__ - - dc.DrawRectangle( 10, 10, 90, 90 ); - dc.DrawRoundedRectangle( 10, 110, 90, 90, 5 ); - - dc.DrawText( "This is text\n(on multiple lines)", 110, 10 ); - - dc.DrawIcon( wxICON(mondrian), 110, 40 ); -} - -void MyFrame::OnMouseMove(wxMouseEvent &event) -{ - wxClientDC dc(this); - PrepareDC(dc); - - wxPoint pos = event.GetPosition(); - long x = dc.DeviceToLogicalX( pos.x ); - long y = dc.DeviceToLogicalY( pos.y ); - wxString str; - str.Printf( "Current mouse position: %d,%d", (int)x, (int)y ); - SetStatusText( str ); -} - -wxColour MyFrame::SelectColour() -{ - wxColour col; - wxColourData data; - wxColourDialog dialog(this, &data); - - if ( dialog.ShowModal() == wxID_OK ) - { - col = dialog.GetColourData().GetColour(); - } - - return col; -} diff --git a/samples/drawing/drawing.def b/samples/drawing/drawing.def deleted file mode 100644 index aa517eeb7a..0000000000 --- a/samples/drawing/drawing.def +++ /dev/null @@ -1,7 +0,0 @@ -NAME Drawing -DESCRIPTION 'Drawing wxWindows application' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/drawing/drawing.rc b/samples/drawing/drawing.rc deleted file mode 100644 index b86c4e2265..0000000000 --- a/samples/drawing/drawing.rc +++ /dev/null @@ -1 +0,0 @@ -#include "wx/msw/wx.rc" diff --git a/samples/drawing/makefile.b32 b/samples/drawing/makefile.b32 deleted file mode 100644 index ed9f0191e0..0000000000 --- a/samples/drawing/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=drawing -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/drawing/makefile.bcc b/samples/drawing/makefile.bcc deleted file mode 100644 index a8d9d70964..0000000000 --- a/samples/drawing/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=drawing -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/drawing/makefile.dos b/samples/drawing/makefile.dos deleted file mode 100644 index d04f9c3dba..0000000000 --- a/samples/drawing/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=drawing -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/drawing/makefile.g95 b/samples/drawing/makefile.g95 deleted file mode 100644 index 581ec7408b..0000000000 --- a/samples/drawing/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=drawing -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/drawing/makefile.twn b/samples/drawing/makefile.twn deleted file mode 100644 index 580d997375..0000000000 --- a/samples/drawing/makefile.twn +++ /dev/null @@ -1,43 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile for drawing example (UNIX). - -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/maketwin.env - -OBJECTS = $(OBJDIR)/drawing.$(OBJSUFF) $(OBJDIR)/drawing_resources.$(OBJSUFF) - -all: $(OBJDIR) drawing$(GUISUFFIX)$(EXESUFF) - -wx: - -$(OBJDIR): - mkdir $(OBJDIR) - -drawing$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o drawing$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) - -$(OBJDIR)/drawing.$(OBJSUFF): drawing.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ drawing.$(SRCSUFF) - -drawing_resources.c: drawing.rc - $(RESCOMP) $(RCINPUTSWITCH) drawing.rc $(RCOUTPUTSWITCH) drawing_resources.c $(RESFLAGS) - -$(OBJDIR)/drawing_resources.$(OBJSUFF): drawing_resources.c - $(CC) -c $(CPPFLAGS) -o $@ drawing_resources.c - -#$(OBJDIR)/drawing_resources.o: drawing.rc -# $(RESCOMP) $(RCINPUTSWITCH) drawing.rc $(RCOUTPUTSWITCH) $(OBJDIR)/drawing_resources.o $(RESFLAGS) - -clean: - rm -f $(OBJECTS) drawing$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/drawing/makefile.unx b/samples/drawing/makefile.unx deleted file mode 100644 index 9b1b4e058a..0000000000 --- a/samples/drawing/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for drawing example (UNIX). - -PROGRAM=drawing - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/drawing/makefile.vc b/samples/drawing/makefile.vc deleted file mode 100644 index 4871acbce1..0000000000 --- a/samples/drawing/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=drawing -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/drawing/makefile.wat b/samples/drawing/makefile.wat deleted file mode 100644 index 91a4751a5e..0000000000 --- a/samples/drawing/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = drawing -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/drawing/mondrian.xpm b/samples/drawing/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/samples/drawing/mondrian.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *mondrian_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 6 1", -" c Black", -". c Blue", -"X c #00bf00", -"o c Red", -"O c Yellow", -"+ c Gray100", -/* pixels */ -" ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" " -}; diff --git a/samples/dynamic/.cvsignore b/samples/dynamic/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/dynamic/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/dynamic/Makefile.am b/samples/dynamic/Makefile.am deleted file mode 100644 index 0556149f08..0000000000 --- a/samples/dynamic/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = dynamic - -dynamic_SOURCES = dynamic.cpp diff --git a/samples/dynamic/dynamic.cpp b/samples/dynamic/dynamic.cpp deleted file mode 100644 index 06847f1253..0000000000 --- a/samples/dynamic/dynamic.cpp +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dynamic.cpp -// Purpose: Dynamic events wxWindows sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dynamic.cpp" -#pragma interface "dynamic.cpp" -#endif - -// 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 - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#endif - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ public: - MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - - public: - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); -}; - -// ID for the menu commands -#define DYNAMIC_QUIT 1 -#define DYNAMIC_TEXT 101 -#define DYNAMIC_ABOUT 102 - -// Create a new application object -IMPLEMENT_APP (MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame *frame = new MyFrame(NULL, "Dynamic wxWindows App", 50, 50, 450, 340); - - frame->Connect( DYNAMIC_QUIT, -1, wxEVT_COMMAND_MENU_SELECTED, - (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) - &MyFrame::OnQuit ); - frame->Connect( DYNAMIC_ABOUT, -1, wxEVT_COMMAND_MENU_SELECTED, - (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) - &MyFrame::OnAbout ); - - // Give it an icon -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("mondrian")); -#else - frame->SetIcon(wxIcon(mondrian_xpm)); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(DYNAMIC_ABOUT, "&About"); - file_menu->Append(DYNAMIC_QUIT, "E&xit"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - frame->SetMenuBar(menu_bar); - - // Make a panel with a message - wxPanel *panel = new wxPanel(frame, -1, wxPoint(0, 0), wxSize(400, 200), wxTAB_TRAVERSAL); - - (void)new wxStaticText(panel, 311, "Hello!", wxPoint(10, 10), wxSize(-1, -1), 0); - - // Show the frame - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) -{ - wxMessageDialog dialog(this, "This demonstrates dynamic event handling", - "About Dynamic", wxYES_NO|wxCANCEL); - - dialog.ShowModal(); -} - - diff --git a/samples/dynamic/dynamic.def b/samples/dynamic/dynamic.def deleted file mode 100644 index 6d63d054d5..0000000000 --- a/samples/dynamic/dynamic.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Dynamic -DESCRIPTION 'Dynamic event handler test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/dynamic/dynamic.rc b/samples/dynamic/dynamic.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/dynamic/dynamic.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/dynamic/makefile.b32 b/samples/dynamic/makefile.b32 deleted file mode 100644 index d48780825c..0000000000 --- a/samples/dynamic/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=dynamic -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/dynamic/makefile.bcc b/samples/dynamic/makefile.bcc deleted file mode 100644 index 23a865ee63..0000000000 --- a/samples/dynamic/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=dynamic -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/dynamic/makefile.dos b/samples/dynamic/makefile.dos deleted file mode 100644 index d4109ed7dc..0000000000 --- a/samples/dynamic/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=dynamic -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/dynamic/makefile.g95 b/samples/dynamic/makefile.g95 deleted file mode 100644 index d955141bd6..0000000000 --- a/samples/dynamic/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=dynamic -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/dynamic/makefile.unx b/samples/dynamic/makefile.unx deleted file mode 100644 index c4c52d7f6e..0000000000 --- a/samples/dynamic/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for dynamic example (UNIX). - -PROGRAM=dynamic - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/dynamic/makefile.vc b/samples/dynamic/makefile.vc deleted file mode 100644 index 8b9485251a..0000000000 --- a/samples/dynamic/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=dynamic -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/dynamic/minimal.cpp b/samples/dynamic/minimal.cpp deleted file mode 100644 index 354d3aaec4..0000000000 --- a/samples/dynamic/minimal.cpp +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minimal.cpp -// Purpose: Dynamic events wxWindows sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minimal.cpp" -#pragma interface "minimal.cpp" -#endif - -// 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 - -#ifdef __WXGTK__ -#include "mondrian.xpm" -#endif - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ public: - MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - - public: - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - bool OnClose(void) { return TRUE; } -}; - -// ID for the menu commands -#define MINIMAL_QUIT 1 -#define MINIMAL_TEXT 101 -#define MINIMAL_ABOUT 102 - -// Create a new application object -IMPLEMENT_APP (MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "Minimal wxWindows App", 50, 50, 450, 340); - - frame->Connect( MINIMAL_QUIT, -1, wxEVT_COMMAND_MENU_SELECTED, (wxObjectEventFunction)MyFrame::OnQuit ); - frame->Connect( MINIMAL_ABOUT, -1, wxEVT_COMMAND_MENU_SELECTED, (wxObjectEventFunction)MyFrame::OnAbout ); - - // Give it an icon -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("mondrian")); -#else - frame->SetIcon(wxIcon(mondrian_xpm)); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(MINIMAL_ABOUT, "&About"); - file_menu->Append(MINIMAL_QUIT, "E&xit"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - frame->SetMenuBar(menu_bar); - - // Make a panel with a message - wxPanel *panel = new wxPanel(frame, -1, wxPoint(0, 0), wxSize(400, 200), wxTAB_TRAVERSAL); - - (void)new wxStaticText(panel, 311, "Hello!", wxPoint(10, 10), wxSize(-1, -1), 0); - - // Show the frame - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) -{ - wxMessageDialog dialog(this, "This is a minimal sample\nA second line in the message box", - "About Minimal", wxYES_NO|wxCANCEL); - - dialog.ShowModal(); -} - - diff --git a/samples/dynamic/mondrian.ico b/samples/dynamic/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZFindOrCreateFont(12, wxROMAN, wxNORMAL, wxNORMAL); -#else - m_font = wxTheFontList->FindOrCreateFont(10, wxSWISS, wxNORMAL, wxNORMAL); -#endif - SetBackgroundColour(FortyApp::BackgroundColour()); - - m_handCursor = new wxCursor(wxCURSOR_HAND); - m_arrowCursor = new wxCursor(wxCURSOR_ARROW); - - wxString name = wxTheApp->GetAppName(); - if (name.Length() <= 0) name = "forty"; - m_scoreFile = new ScoreFile(name); - m_game = new Game(0, 0, 0); - m_game->Deal(); -} - - -FortyCanvas::~FortyCanvas() -{ - UpdateScores(); - delete m_game; - delete m_scoreFile; -} - - -/* -Write the current player's score back to the score file -*/ -void FortyCanvas::UpdateScores() -{ - if (m_player.Length() > 0 && m_scoreFile && m_game) - { - m_scoreFile->WritePlayersScore( - m_player, - m_game->GetNumWins(), - m_game->GetNumGames(), - m_game->GetScore() - ); - } -} - - -void FortyCanvas::OnDraw(wxDC& dc) -{ - dc.SetFont(* m_font); - m_game->Redraw(dc); - - // if player name not set (and selection dialog is not displayed) - // then ask the player for their name - if (m_player.Length() == 0 && !m_playerDialog) - { - m_playerDialog = new PlayerSelectionDialog(this, m_scoreFile); - m_playerDialog->ShowModal(); - m_player = m_playerDialog->GetPlayersName(); - if (m_player.Length() > 0) - { - // user entered a name - lookup their score - int wins, games, score; - m_scoreFile->ReadPlayersScore(m_player, wins, games, score); - m_game->NewPlayer(wins, games, score); - m_game->DisplayScore(dc); - m_playerDialog->Destroy(); - m_playerDialog = 0; - Refresh(); - } - else - { - // user cancelled the dialog - exit the app - ((wxFrame*)GetParent())->Close(TRUE); - } - } -} - -/* -Called when the main frame is closed -*/ -bool FortyCanvas::OnCloseCanvas() -{ - if (m_game->InPlay() && - wxMessageBox("Are you sure you want to\nabandon the current game?", - "Warning", wxYES_NO | wxICON_QUESTION) == wxNO) - { - return FALSE; - } - return TRUE; -} - -void FortyCanvas::OnMouseEvent(wxMouseEvent& event) -{ - int mouseX = (int)event.GetX(); - int mouseY = (int)event.GetY(); - - wxClientDC dc(this); - PrepareDC(dc); - dc.SetFont(* m_font); - - if (event.LeftDClick()) - { - if (m_leftBtnDown) - { - m_leftBtnDown = FALSE; - ReleaseMouse(); - m_game->LButtonUp(dc, mouseX, mouseY); - } - m_game->LButtonDblClk(dc, mouseX, mouseY); - } - else if (event.LeftDown()) - { - if (!m_leftBtnDown) - { - m_leftBtnDown = TRUE; - CaptureMouse(); - m_game->LButtonDown(dc, mouseX, mouseY); - } - } - else if (event.LeftUp()) - { - if (m_leftBtnDown) - { - m_leftBtnDown = FALSE; - ReleaseMouse(); - m_game->LButtonUp(dc, mouseX, mouseY); - } - } - else if (event.RightDown() && !event.LeftIsDown()) - { - // only allow right button undo if m_rightBtnUndo is TRUE - if (m_rightBtnUndo) - { - if (event.ControlDown() || event.ShiftDown()) - { - m_game->Redo(dc); - } - else - { - m_game->Undo(dc); - } - } - } - else if (event.Dragging()) - { - m_game->MouseMove(dc, mouseX, mouseY); - } - - if (!event.LeftIsDown()) - { - SetCursorStyle(mouseX, mouseY); - } -} - -void FortyCanvas::SetCursorStyle(int x, int y) -{ - if (m_game->HaveYouWon()) - { - if (wxMessageBox("Do you wish to play again?", - "Well Done, You have won!", wxYES_NO | wxICON_QUESTION) == wxYES) - { - m_game->Deal(); - - wxClientDC dc(this); - PrepareDC(dc); - dc.SetFont(* m_font); - m_game->Redraw(dc); - } - else - { - // user cancelled the dialog - exit the app - ((wxFrame*)GetParent())->Close(TRUE); - } - } - - // Only set cursor to a hand if 'helping hand' is enabled and - // the card under the cursor can go somewhere - if (m_game->CanYouGo(x, y) && m_helpingHand) - { - SetCursor(* m_handCursor); - } - else - { - SetCursor(* m_arrowCursor); - } - -} - -void FortyCanvas::NewGame() -{ - m_game->Deal(); - Refresh(); -} - -void FortyCanvas::Undo() -{ - wxClientDC dc(this); - PrepareDC(dc); - dc.SetFont(* m_font); - m_game->Undo(dc); -} - -void FortyCanvas::Redo() -{ - wxClientDC dc(this); - PrepareDC(dc); - dc.SetFont(* m_font); - m_game->Redo(dc); -} diff --git a/samples/forty/canvas.h b/samples/forty/canvas.h deleted file mode 100644 index 60abf5f2d3..0000000000 --- a/samples/forty/canvas.h +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: canvas.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -#ifndef _CANVAS_H_ -#define _CANVAS_H_ - -class Card; -class Game; -class ScoreFile; -class PlayerSelectionDialog; - -class FortyCanvas: public wxScrolledWindow -{ -public: - FortyCanvas(wxWindow* parent, int x, int y, int w, int h); - virtual ~FortyCanvas(); - - virtual void OnDraw(wxDC& dc); - bool OnCloseCanvas(); - void OnMouseEvent(wxMouseEvent& event); - void SetCursorStyle(int x, int y); - - void NewGame(); - void Undo(); - void Redo(); - - ScoreFile* GetScoreFile() const { return m_scoreFile; } - void UpdateScores(); - void EnableHelpingHand(bool enable) { m_helpingHand = enable; } - void EnableRightButtonUndo(bool enable) { m_rightBtnUndo = enable; } - - DECLARE_EVENT_TABLE() - -private: - wxFont* m_font; - Game* m_game; - ScoreFile* m_scoreFile; - wxCursor* m_arrowCursor; - wxCursor* m_handCursor; - bool m_helpingHand; - bool m_rightBtnUndo; - wxString m_player; - PlayerSelectionDialog* m_playerDialog; - bool m_leftBtnDown; -}; - -#endif diff --git a/samples/forty/card.cpp b/samples/forty/card.cpp deleted file mode 100644 index 37999de3ed..0000000000 --- a/samples/forty/card.cpp +++ /dev/null @@ -1,358 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: card.cpp -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -//+-------------------------------------------------------------+ -//| Description -//| A class for drawing playing cards. -//| Currently assumes that the card symbols have been -//| loaded into hbmap_symbols and the pictures for the -//| Jack, Queen and King have been loaded into -//| hbmap_pictures. -//+-------------------------------------------------------------+ - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 -#include -#include -#include "forty.h" -#include "card.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "pictures.xpm" -#include "symbols.xbm" -#endif - -wxBitmap* Card::m_pictureBmap = 0; -wxBitmap* Card::m_symbolBmap = 0; - - -//+-------------------------------------------------------------+ -//| Card::Card() | -//+-------------------------------------------------------------+ -//| Description: | -//| Constructor for a playing card. | -//| Checks that the value is in the range 1..52 and then | -//| initialises the suit, colour, pipValue and wayUp. | -//+-------------------------------------------------------------+ -Card::Card(int value, WayUp way_up) : - m_wayUp(way_up) -{ - if (!m_symbolBmap) - { -#ifdef __WXMSW__ - m_symbolBmap = new wxBitmap("CardSymbols", wxBITMAP_TYPE_BMP_RESOURCE); -#else - m_symbolBmap = new wxBitmap(Symbols_bits, Symbols_width, Symbols_height); -#endif - if (!m_symbolBmap->Ok()) - { - ::wxMessageBox("Failed to load bitmap CardSymbols", "Error"); - } - } - if (!m_pictureBmap) - { -#ifdef __WXMSW__ - m_pictureBmap = new wxBitmap("CardPictures", wxBITMAP_TYPE_BMP_RESOURCE); -#else - m_pictureBmap = new wxBitmap(Pictures); -#endif - if (!m_pictureBmap->Ok()) - { - ::wxMessageBox("Failed to load bitmap CardPictures", "Error"); - } - } - - if (value >= 1 && value <= PackSize) - { - switch ((value - 1) / 13) - { - case 0: - m_suit = clubs; - m_colour = black; - break; - case 1: - m_suit = diamonds; - m_colour = red; - break; - case 2: - m_suit = hearts; - m_colour = red; - break; - case 3: - m_suit = spades; - m_colour = black; - break; - } - m_pipValue = 1 + (value - 1) % 13; - m_status = TRUE; - } - else - { - m_status = FALSE; - } -} // Card::Card() - - -//+-------------------------------------------------------------+ -//| Card::~Card() | -//+-------------------------------------------------------------+ -//| Description: | -//| Destructor - nothing to do at present. | -//+-------------------------------------------------------------+ -Card::~Card() -{ -} - - -//+-------------------------------------------------------------+ -//| Card::Erase() | -//+-------------------------------------------------------------+ -//| Description: | -//| Erase the card at (x, y) by drawing a rectangle in the | -//| background colour. | -//+-------------------------------------------------------------+ -void Card::Erase(wxDC& dc, int x, int y) -{ - wxPen* pen = wxThePenList->FindOrCreatePen( - FortyApp::BackgroundColour(), - 1, - wxSOLID - ); - dc.SetPen(* pen); - dc.SetBrush(FortyApp::BackgroundBrush()); - dc.DrawRectangle(x, y, CardWidth, CardHeight); -} // Card::Erase() - - -//+-------------------------------------------------------------+ -//| Card::Draw() | -//+-------------------------------------------------------------+ -//| Description: | -//| Draw the card at (x, y). | -//| If the card is facedown draw the back of the card. | -//| If the card is faceup draw the front of the card. | -//| Cards are not held in bitmaps, instead they are drawn | -//| from their constituent parts when required. | -//| hbmap_symbols contains large and small suit symbols and | -//| pip values. These are copied to the appropriate part of | -//| the card. Picture cards use the pictures defined in | -//| hbmap_pictures. Note that only one picture is defined | -//| for the Jack, Queen and King, unlike a real pack where | -//| each suit is different. | -//| | -//| WARNING: | -//| The locations of these symbols is 'hard-wired' into the | -//| code. Editing the bitmaps or the numbers below will | -//| result in the wrong symbols being displayed. | -//+-------------------------------------------------------------+ -void Card::Draw(wxDC& dc, int x, int y) -{ - wxBrush backgroundBrush( dc.GetBackground() ); - dc.SetBrush(* wxWHITE_BRUSH); - dc.SetPen(* wxBLACK_PEN); - dc.DrawRoundedRectangle(x, y, CardWidth, CardHeight, 4); - if (m_wayUp == facedown) - { - dc.SetBackground(* wxRED_BRUSH); - dc.SetBackgroundMode(wxSOLID); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush( - "BLACK", wxCROSSDIAG_HATCH - ); - dc.SetBrush(* brush); - - dc.DrawRoundedRectangle( - x + 4, y + 4, - CardWidth - 8, CardHeight - 8, - 2 - ); - } - else - { - wxMemoryDC memoryDC; - memoryDC.SelectObject(* m_symbolBmap); - -// dc.SetBackgroundMode(wxTRANSPARENT); - - dc.SetTextBackground(*wxWHITE); - switch (m_suit) - { - case spades: - case clubs: - dc.SetTextForeground(*wxBLACK); - break; - case diamonds: - case hearts: - dc.SetTextForeground(*wxRED); - break; - } - // Draw the value - dc.Blit(x + 3, y + 3, 6, 7, - &memoryDC, 6 * (m_pipValue - 1), 36, wxCOPY); - dc.Blit(x + CardWidth - 9, y + CardHeight - 11, 6, 7, - &memoryDC, 6 * (m_pipValue - 1), 43, wxCOPY); - - // Draw the pips - dc.Blit(x + 11, y + 3, 7, 7, - &memoryDC, 7 * m_suit, 0, wxCOPY); - dc.Blit(x + CardWidth - 17, y + CardHeight - 11, 7, 7, - &memoryDC, 7 * m_suit, 7, wxCOPY); - - switch (m_pipValue) - { - case 1: - dc.Blit(x - 5 + CardWidth / 2, y - 5 + CardHeight / 2, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - break; - - case 3: - dc.Blit(x - 5 + CardWidth / 2, y - 5 + CardHeight / 2, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - case 2: - dc.Blit(x - 5 + CardWidth / 2, - y - 5 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + CardWidth / 2, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - break; - - case 5: - dc.Blit(x - 5 + CardWidth / 2, y - 5 + CardHeight / 2, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - case 4: - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - break; - - case 8: - dc.Blit(x - 5 + 5 * CardWidth / 10, - y - 5 + 5 * CardHeight / 8, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - case 7: - dc.Blit(x - 5 + 5 * CardWidth / 10, - y - 5 + 3 * CardHeight / 8, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - case 6: - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + CardHeight / 2, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + CardHeight / 2, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - break; - - case 10: - dc.Blit(x - 5 + CardWidth / 2, - y - 5 + 2 * CardHeight / 3, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - case 9: - dc.Blit(x - 5 + CardWidth / 4, - y - 6 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + CardWidth / 4, - y - 6 + 5 * CardHeight / 12, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + 7 * CardHeight / 12, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - dc.Blit(x - 5 + CardWidth / 4, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 6 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 6 + 5 * CardHeight / 12, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + 7 * CardHeight / 12, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - dc.Blit(x - 5 + 3 * CardWidth / 4, - y - 5 + 3 * CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - dc.Blit(x - 5 + CardWidth / 2, - y - 5 + CardHeight / 3, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - break; - case 11: - case 12: - case 13: - memoryDC.SelectObject(* m_pictureBmap); - dc.Blit(x + 5, y - 5 + CardHeight / 4, 40, 45, - &memoryDC, 40 * (m_pipValue - 11), 0, wxCOPY); - memoryDC.SelectObject(* m_symbolBmap); - dc.Blit(x + 32, y - 3 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 14, wxCOPY); - dc.Blit(x + 7, y + 27 + CardHeight / 4, 11, 11, - &memoryDC, 11 * m_suit, 25, wxCOPY); - break; - } - - } - dc.SetBackground( backgroundBrush ); -} // Card:Draw() - - -//+-------------------------------------------------------------+ -//| Card::DrawNullCard() | -//+-------------------------------------------------------------+ -//| Description: | -//| Draws the outline of a card at (x, y). | -//| Used to draw place holders for empty piles of cards. | -//+-------------------------------------------------------------+ -void Card::DrawNullCard(wxDC& dc, int x, int y) -{ - wxPen* pen = wxThePenList->FindOrCreatePen(FortyApp::TextColour(), 1, wxSOLID); - dc.SetBrush(FortyApp::BackgroundBrush()); - dc.SetPen(*pen); - dc.DrawRoundedRectangle(x, y, CardWidth, CardHeight, 4); -} // Card::DrawNullCard() - - diff --git a/samples/forty/card.h b/samples/forty/card.h deleted file mode 100644 index b93ac93dd8..0000000000 --- a/samples/forty/card.h +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: card.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -//+-------------------------------------------------------------+ -//| Description: | -//| A class for drawing playing cards. | -//| InitCards() must be called before using the Card class, | -//| otherwise the card bitmaps will not be loaded. | -//| CloseCards() must be called before terminating the | -//| program so that the bitmaps are deleted and the memory | -//| given back to Windows. | -//+-------------------------------------------------------------+ -#ifndef _CARD_H_ -#define _CARD_H_ - - // Constants -const int PackSize = 52; -const int CardWidth = 50; -const int CardHeight = 70; - - // Data types -enum Suit { clubs = 0, diamonds = 1, hearts = 2, spades = 3 }; -enum SuitColour { red = 0, black = 1 }; -enum WayUp { faceup, facedown }; - - -//--------------------------------// -// A class defining a single card // -//--------------------------------// -class Card { -public: - Card(int value, WayUp way_up = facedown); - virtual ~Card(); - - void Draw(wxDC& pDC, int x, int y); - static void DrawNullCard(wxDC& pDC, int x, int y); // Draw card place-holder - void Erase(wxDC& pDC, int x, int y); - - void TurnCard(WayUp way_up = faceup) { m_wayUp = way_up; } - WayUp GetWayUp() const { return m_wayUp; } - int GetPipValue() const { return m_pipValue; } - Suit GetSuit() const { return m_suit; } - SuitColour GetColour() const { return m_colour; } - -private: - Suit m_suit; - int m_pipValue; // in the range 1 (Ace) to 13 (King) - SuitColour m_colour; // red or black - bool m_status; - WayUp m_wayUp; - - static wxBitmap* m_symbolBmap; - static wxBitmap* m_pictureBmap; -}; - -#endif // _CARD_H_ diff --git a/samples/forty/cards.ico b/samples/forty/cards.ico deleted file mode 100644 index 35c8379526ed499ff4404fe13da8272e7b84a843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmcgqJ9Yyh44jSqUfkiz^_DqCjz-B9sP-xx#idKNRAff5A17N!tbma;Xy7d{am@1_ zveyUj;QB?M>EHATSI$6W?%WE%52f^lGq?1D7$XzSKeVPDokJl_NJj&1N0>xDSV|)8 zc1vLg+?nG=F|tC(H48Vwj&okP3q}#DuQ{^-FhdX~WPvvoR+)FQvMBFK38GK diff --git a/samples/forty/forty.cpp b/samples/forty/forty.cpp deleted file mode 100644 index 4d952a9993..0000000000 --- a/samples/forty/forty.cpp +++ /dev/null @@ -1,267 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: forty.cpp -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 "canvas.h" -#include "forty.h" -#include "scoredg.h" -#ifdef wx_x -#include "cards.xbm" -#endif - -class FortyFrame: public wxFrame -{ -public: - FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h); - virtual ~FortyFrame(); - - void OnCloseWindow(wxCloseEvent& event); - - // Menu callbacks - void NewGame(wxCommandEvent& event); - void Exit(wxCommandEvent& event); - void About(wxCommandEvent& event); - void Undo(wxCommandEvent& event); - void Redo(wxCommandEvent& event); - void Scores(wxCommandEvent& event); - void ToggleRightButtonUndo(wxCommandEvent& event); - void ToggleHelpingHand(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() - -private: - enum MenuCommands { NEW_GAME = 10, SCORES, EXIT, - UNDO, REDO, - RIGHT_BUTTON_UNDO, HELPING_HAND, - ABOUT }; - - wxMenuBar* m_menuBar; - FortyCanvas* m_canvas; -}; - -BEGIN_EVENT_TABLE(FortyFrame, wxFrame) - EVT_MENU(NEW_GAME, FortyFrame::NewGame) - EVT_MENU(EXIT, FortyFrame::Exit) - EVT_MENU(ABOUT, FortyFrame::About) - EVT_MENU(UNDO, FortyFrame::Undo) - EVT_MENU(REDO, FortyFrame::Redo) - EVT_MENU(SCORES, FortyFrame::Scores) - EVT_MENU(RIGHT_BUTTON_UNDO, FortyFrame::ToggleRightButtonUndo) - EVT_MENU(HELPING_HAND, FortyFrame::ToggleHelpingHand) - EVT_CLOSE(FortyFrame::OnCloseWindow) -END_EVENT_TABLE() - -// Create a new application object -IMPLEMENT_APP (FortyApp) - -wxColour* FortyApp::m_backgroundColour = 0; -wxColour* FortyApp::m_textColour = 0; -wxBrush* FortyApp::m_backgroundBrush = 0; - -bool FortyApp::OnInit() -{ - FortyFrame* frame = new FortyFrame( - 0, - "Forty Thieves", - -1, -1, 668, 510 - ); - - // Show the frame - frame->Show(TRUE); - - return TRUE; -} - -const wxColour& FortyApp::BackgroundColour() -{ - if (!m_backgroundColour) - { - m_backgroundColour = new wxColour(0, 128, 0); - } - - return *m_backgroundColour; -} - -const wxBrush& FortyApp::BackgroundBrush() -{ - if (!m_backgroundBrush) - { - m_backgroundBrush = new wxBrush(BackgroundColour(), wxSOLID); - } - - return *m_backgroundBrush; -} - -const wxColour& FortyApp::TextColour() -{ - if (!m_textColour) - { - m_textColour = new wxColour("BLACK"); - } - - return *m_textColour; -} - -// My frame constructor -FortyFrame::FortyFrame(wxFrame* frame, char* title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - // set the icon -#ifdef __WXMSW__ - SetIcon(wxIcon("CardsIcon")); -#else -#ifdef GTK_TBD - SetIcon(wxIcon(Cards_bits, Cards_width, Cards_height)); -#endif -#endif - - // Make a menu bar - wxMenu* gameMenu = new wxMenu; - gameMenu->Append(NEW_GAME, "&New", "Start a new game"); - gameMenu->Append(SCORES, "&Scores...", "Displays scores"); - gameMenu->Append(EXIT, "E&xit", "Exits Forty Thieves"); - - wxMenu* editMenu = new wxMenu; - editMenu->Append(UNDO, "&Undo", "Undo the last move"); - editMenu->Append(REDO, "&Redo", "Redo a move that has been undone"); - - wxMenu* optionsMenu = new wxMenu; - optionsMenu->Append(RIGHT_BUTTON_UNDO, - "&Right button undo", - "Enables/disables right mouse button undo and redo", - TRUE - ); - optionsMenu->Append(HELPING_HAND, - "&Helping hand", - "Enables/disables hand cursor when a card can be moved", - TRUE - ); - optionsMenu->Check(HELPING_HAND, TRUE); - optionsMenu->Check(RIGHT_BUTTON_UNDO, TRUE); - - wxMenu* helpMenu = new wxMenu; - helpMenu->Append(ABOUT, "&About", "Displays program version information"); - - m_menuBar = new wxMenuBar; - m_menuBar->Append(gameMenu, "&Game"); - m_menuBar->Append(editMenu, "&Edit"); - m_menuBar->Append(optionsMenu, "&Options"); - m_menuBar->Append(helpMenu, "&Help"); - - SetMenuBar(m_menuBar); - - m_canvas = new FortyCanvas(this, 0, 0, 400, 400); - wxLayoutConstraints* constr = new wxLayoutConstraints; - constr->left.SameAs(this, wxLeft); - constr->top.SameAs(this, wxTop); - constr->right.SameAs(this, wxRight); - constr->height.SameAs(this, wxHeight); - m_canvas->SetConstraints(constr); - - CreateStatusBar(); -} - -FortyFrame::~FortyFrame() -{ -} - -void FortyFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_canvas->OnCloseCanvas() ) - { - this->Destroy(); - } - else - event.Veto(); -} - -void -FortyFrame::NewGame(wxCommandEvent&) -{ - m_canvas->NewGame(); -} - -void -FortyFrame::Exit(wxCommandEvent&) -{ -#ifdef __WXGTK__ - // wxGTK doesn't call OnClose() so we do it here -// if (OnClose()) -#endif - Close(TRUE); -} - -void -FortyFrame::About(wxCommandEvent&) -{ - wxMessageBox( - "Forty Thieves\n\n" - "A freeware program using the wxWindows\n" - "portable C++ GUI toolkit.\n" - "http://web.ukonline.co.uk/julian.smart/wxwin\n" - "http://www.freiburg.linux.de/~wxxt\n\n" - "Author: Chris Breeze (c) 1992-1998\n" - "email: chris.breeze@iname.com", - "About Forty Thieves", - wxOK, this - ); -} - -void -FortyFrame::Undo(wxCommandEvent&) -{ - m_canvas->Undo(); -} - -void -FortyFrame::Redo(wxCommandEvent&) -{ - m_canvas->Redo(); -} - -void -FortyFrame::Scores(wxCommandEvent&) -{ - m_canvas->UpdateScores(); - ScoreDialog scores(this, m_canvas->GetScoreFile()); - scores.Display(); -} - -void -FortyFrame::ToggleRightButtonUndo(wxCommandEvent& event) -{ - bool checked = m_menuBar->IsChecked(event.GetId()); - m_canvas->EnableRightButtonUndo(checked); -} - -void -FortyFrame::ToggleHelpingHand(wxCommandEvent& event) -{ - bool checked = m_menuBar->IsChecked(event.GetId()); - m_canvas->EnableHelpingHand(checked); -} diff --git a/samples/forty/forty.def b/samples/forty/forty.def deleted file mode 100644 index a096488900..0000000000 --- a/samples/forty/forty.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Forty -DESCRIPTION 'Forty Thieves' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/forty/forty.h b/samples/forty/forty.h deleted file mode 100644 index 1fbf6449f1..0000000000 --- a/samples/forty/forty.h +++ /dev/null @@ -1,31 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: forty.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -#ifndef _FORTY_H_ -#define _FORTY_H_ - -class FortyApp: public wxApp -{ -public: - bool OnInit(); - - static const wxColour& BackgroundColour(); - static const wxColour& TextColour(); - static const wxBrush& BackgroundBrush(); - -private: - static wxColour* m_backgroundColour; - static wxColour* m_textColour; - static wxBrush* m_backgroundBrush; -}; - -#endif diff --git a/samples/forty/forty.rc b/samples/forty/forty.rc deleted file mode 100644 index 911ea25bb9..0000000000 --- a/samples/forty/forty.rc +++ /dev/null @@ -1,6 +0,0 @@ -#include "wx/msw/wx.rc" - -CardsIcon ICON "cards.ico" -CardPictures BITMAP "pictures.bmp" -CardSymbols BITMAP "symbols.bmp" - diff --git a/samples/forty/game.cpp b/samples/forty/game.cpp deleted file mode 100644 index 4ac59941eb..0000000000 --- a/samples/forty/game.cpp +++ /dev/null @@ -1,944 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: game.cpp -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 -#include -#include -#include -#include "forty.h" -#include "game.h" - -Game::Game(int wins, int games, int score) : - m_inPlay(FALSE), - m_moveIndex(0), - m_redoIndex(0), - m_bmap(0), - m_bmapCard(0) -{ - int i; - - m_pack = new Pack(2, 2 + 4 * (CardHeight + 2)); - srand(time(0)); - - for (i = 0; i < 5; i++) m_pack->Shuffle(); - - m_discard = new Discard(2, 2 + 5 * (CardHeight + 2)); - - for (i = 0; i < 8; i++) - { - m_foundations[i] = new Foundation(2 + (i / 4) * (CardWidth + 2), - 2 + (i % 4) * (CardHeight + 2)); - } - - for (i = 0; i < 10; i++) - { - m_bases[i] = new Base(8 + (i + 2) * (CardWidth + 2), 2); - } - Deal(); - m_srcPile = 0; - m_liftedCard = 0; - - // copy the input parameters for future reference - m_numWins = wins; - m_numGames = games; - m_totalScore = score; - m_currentScore = 0; -} - - -// Make sure we delete all objects created by the game object -Game::~Game() -{ - int i; - - delete m_pack; - delete m_discard; - for (i = 0; i < 8; i++) - { - delete m_foundations[i]; - } - for (i = 0; i < 10; i++) - { - delete m_bases[i]; - } - delete m_bmap; - delete m_bmapCard; -} - -/* -Set the score for a new player. -NB: call Deal() first if the new player is to start -a new game -*/ -void Game::NewPlayer(int wins, int games, int score) -{ - m_numWins = wins; - m_numGames = games; - m_totalScore = score; - m_currentScore = 0; -} - -// Undo the last move -void Game::Undo(wxDC& dc) -{ - if (m_moveIndex > 0) - { - m_moveIndex--; - Card* card = m_moves[m_moveIndex].dest->RemoveTopCard(dc); - m_moves[m_moveIndex].src->AddCard(dc, card); - DisplayScore(dc); - } -} - -// Redo the last move -void Game::Redo(wxDC& dc) -{ - if (m_moveIndex < m_redoIndex) - { - Card* card = m_moves[m_moveIndex].src->RemoveTopCard(dc); - if (m_moves[m_moveIndex].src == m_pack) - { - m_pack->Redraw(dc); - card->TurnCard(faceup); - } - m_moves[m_moveIndex].dest->AddCard(dc, card); - DisplayScore(dc); - m_moveIndex++; - } -} - -void Game::DoMove(wxDC& dc, Pile* src, Pile* dest) -{ - if (m_moveIndex < MaxMoves) - { - if (src == dest) - { - wxMessageBox("Game::DoMove() src == dest", "Debug message", - wxOK | wxICON_EXCLAMATION); - } - m_moves[m_moveIndex].src = src; - m_moves[m_moveIndex].dest = dest; - m_moveIndex++; - - // when we do a move any moves in redo buffer are discarded - m_redoIndex = m_moveIndex; - } - else - { - wxMessageBox("Game::DoMove() Undo buffer full", "Debug message", - wxOK | wxICON_EXCLAMATION); - } - - if (!m_inPlay) - { - m_inPlay = TRUE; - m_numGames++; - } - DisplayScore(dc); -} - - -void Game::DisplayScore(wxDC& dc) -{ - wxColour bgColour = FortyApp::BackgroundColour(); - wxPen* pen = wxThePenList->FindOrCreatePen(bgColour, 1, wxSOLID); - dc.SetTextBackground(bgColour); - dc.SetTextForeground(FortyApp::TextColour()); - dc.SetBrush(FortyApp::BackgroundBrush()); - dc.SetPen(* pen); - - // count the number of cards in foundations - m_currentScore = 0; - for (int i = 0; i < 8; i++) - { - m_currentScore += m_foundations[i]->GetNumCards(); - } - - int x, y; - m_pack->GetTopCardPos(x, y); - x += 12 * CardWidth - 105; - - int w, h; - { - long width, height; - dc.GetTextExtent("Average score:m_x", &width, &height); - w = width; - h = height; - } - dc.DrawRectangle(x + w, y, 20, 4 * h); - - char str[80]; - sprintf(str, "%d", m_currentScore); - dc.DrawText("Score:", x, y); - dc.DrawText(str, x + w, y); - y += h; - - sprintf(str, "%d", m_numGames); - dc.DrawText("Games played:", x, y); - dc.DrawText(str, x + w, y); - y += h; - - sprintf(str, "%d", m_numWins); - dc.DrawText("Games won:", x, y); - dc.DrawText(str, x + w, y); - y += h; - - int average = 0; - if (m_numGames > 0) - { - average = (2 * (m_currentScore + m_totalScore) + m_numGames ) / (2 * m_numGames); - } - sprintf(str, "%d", average); - dc.DrawText("Average score:", x, y); - dc.DrawText(str, x + w, y); -} - - -// Shuffle the m_pack and deal the cards -void Game::Deal() -{ - int i, j; - Card* card; - - // Reset all the piles, the undo buffer and shuffle the m_pack - m_moveIndex = 0; - m_pack->ResetPile(); - for (i = 0; i < 5; i++) - { - m_pack->Shuffle(); - } - m_discard->ResetPile(); - for (i = 0; i < 10; i++) - { - m_bases[i]->ResetPile(); - } - for (i = 0; i < 8; i++) - { - m_foundations[i]->ResetPile(); - } - - // Deal the initial 40 cards onto the bases - for (i = 0; i < 10; i++) - { - for (j = 1; j <= 4; j++) - { - card = m_pack->RemoveTopCard(); - card->TurnCard(faceup); - m_bases[i]->AddCard(card); - } - } - - if (m_inPlay) - { - // player has started the game and then redealt - // and so we must add the score for this game to the total score - m_totalScore += m_currentScore; - } - m_currentScore = 0; - m_inPlay = FALSE; -} - - -// Redraw the m_pack, discard pile, the bases and the foundations -void Game::Redraw(wxDC& dc) -{ - int i; - m_pack->Redraw(dc); - m_discard->Redraw(dc); - for (i = 0; i < 8; i++) - { - m_foundations[i]->Redraw(dc); - } - for (i = 0; i < 10; i++) - { - m_bases[i]->Redraw(dc); - } - DisplayScore(dc); - - if (m_bmap == 0) - { - m_bmap = new wxBitmap(CardWidth, CardHeight); - m_bmapCard = new wxBitmap(CardWidth, CardHeight); - - // Initialise the card bitmap to the background colour - wxMemoryDC memoryDC; - memoryDC.SelectObject(*m_bmapCard); - memoryDC.SetBrush(FortyApp::BackgroundBrush()); - memoryDC.DrawRectangle(0, 0, CardWidth, CardHeight); - memoryDC.SelectObject(*m_bmap); - memoryDC.DrawRectangle(0, 0, CardWidth, CardHeight); - memoryDC.SelectObject(wxNullBitmap); - } -} - - -// Test to see if the point (x, y) is over the top card of one of the piles -// Returns pointer to the pile, or 0 if (x, y) is not over a pile -// or the pile is empty -Pile* Game::WhichPile(int x, int y) -{ - if (m_pack->GetCard(x, y) && - m_pack->GetCard(x, y) == m_pack->GetTopCard()) - { - return m_pack; - } - - if (m_discard->GetCard(x, y) && - m_discard->GetCard(x, y) == m_discard->GetTopCard()) - { - return m_discard; - } - - int i; - for (i = 0; i < 8; i++) - { - if (m_foundations[i]->GetCard(x, y) && - m_foundations[i]->GetCard(x, y) == m_foundations[i]->GetTopCard()) - { - return m_foundations[i]; - } - } - - for (i = 0; i < 10; i++) - { - if (m_bases[i]->GetCard(x, y) && - m_bases[i]->GetCard(x, y) == m_bases[i]->GetTopCard()) - { - return m_bases[i]; - } - } - return 0; -} - - -// Left button is pressed - if cursor is over the m_pack then deal a card -// otherwise if it is over a card pick it up ready to be dragged - see MouseMove() -bool Game::LButtonDown(wxDC& dc, int x, int y) -{ - m_srcPile = WhichPile(x, y); - if (m_srcPile == m_pack) - { - Card* card = m_pack->RemoveTopCard(); - if (card) - { - m_pack->Redraw(dc); - card->TurnCard(faceup); - m_discard->AddCard(dc, card); - DoMove(dc, m_pack, m_discard); - } - m_srcPile = 0; - } - else if (m_srcPile) - { - m_srcPile->GetTopCardPos(m_xPos, m_yPos); - m_xOffset = m_xPos - x; - m_yOffset = m_yPos - y; - - // Copy the area under the card - // Initialise the card bitmap to the background colour - { - wxMemoryDC memoryDC; - memoryDC.SelectObject(*m_bmap); - m_liftedCard = m_srcPile->RemoveTopCard(memoryDC, m_xPos, m_yPos); - } - - // Draw the card in card bitmap ready for blitting onto - // the screen - { - wxMemoryDC memoryDC; - memoryDC.SelectObject(*m_bmapCard); - m_liftedCard->Draw(memoryDC, 0, 0); - } - } - return m_srcPile != 0; -} - -// Called when the left button is double clicked -// If a card is under the pointer and it can move elsewhere then move it. -// Move onto a foundation as first choice, a populated base as second and -// an empty base as third choice. -// NB Cards in the m_pack cannot be moved in this way - they aren't in play -// yet -void Game::LButtonDblClk(wxDC& dc, int x, int y) -{ - Pile* pile = WhichPile(x, y); - if (!pile) return; - - // Double click on m_pack is the same as left button down - if (pile == m_pack) - { - LButtonDown(dc, x, y); - } - else - { - Card* card = pile->GetTopCard(); - - if (card) - { - int i; - - // if the card is an ace then try to place it next - // to an ace of the same suit - if (card->GetPipValue() == 1) - { - for(i = 0; i < 4; i++) - { - Card* m_topCard; - if ((m_topCard = m_foundations[i]->GetTopCard())) - { - if (m_topCard->GetSuit() == card->GetSuit() && - m_foundations[i + 4] != pile && - m_foundations[i + 4]->GetTopCard() == 0) - { - pile->RemoveTopCard(dc); - m_foundations[i + 4]->AddCard(dc, card); - DoMove(dc, pile, m_foundations[i + 4]); - return; - } - } - } - } - - // try to place the card on a foundation - for(i = 0; i < 8; i++) - { - if (m_foundations[i]->AcceptCard(card) && m_foundations[i] != pile) - { - pile->RemoveTopCard(dc); - m_foundations[i]->AddCard(dc, card); - DoMove(dc, pile, m_foundations[i]); - return; - } - } - // try to place the card on a populated base - for(i = 0; i < 10; i++) - { - if (m_bases[i]->AcceptCard(card) && - m_bases[i] != pile && - m_bases[i]->GetTopCard()) - { - pile->RemoveTopCard(dc); - m_bases[i]->AddCard(dc, card); - DoMove(dc, pile, m_bases[i]); - return; - } - } - // try to place the card on any base - for(i = 0; i < 10; i++) - { - if (m_bases[i]->AcceptCard(card) && m_bases[i] != pile) - { - pile->RemoveTopCard(dc); - m_bases[i]->AddCard(dc, card); - DoMove(dc, pile, m_bases[i]); - return; - } - } - } - } -} - - -// Test to see whether the game has been won: -// i.e. m_pack, discard and bases are empty -bool Game::HaveYouWon() -{ - if (m_pack->GetTopCard()) return FALSE; - if (m_discard->GetTopCard()) return FALSE; - for(int i = 0; i < 10; i++) - { - if (m_bases[i]->GetTopCard()) return FALSE; - } - m_numWins++; - m_totalScore += m_currentScore; - m_currentScore = 0; - return TRUE; -} - - -// See whether the card under the cursor can be moved somewhere else -// Returns TRUE if it can be moved, FALSE otherwise -bool Game::CanYouGo(int x, int y) -{ - Pile* pile = WhichPile(x, y); - if (pile && pile != m_pack) - { - Card* card = pile->GetTopCard(); - - if (card) - { - int i; - for(i = 0; i < 8; i++) - { - if (m_foundations[i]->AcceptCard(card) && m_foundations[i] != pile) - { - return TRUE; - } - } - for(i = 0; i < 10; i++) - { - if (m_bases[i]->GetTopCard() && - m_bases[i]->AcceptCard(card) && - m_bases[i] != pile) - { - return TRUE; - } - } - } - } - return FALSE; -} - - -// Called when the left button is released after dragging a card -// Scan the piles to see if this card overlaps a pile and can be added -// to the pile. If the card overlaps more than one pile on which it can be placed -// then put it on the nearest pile. -void Game::LButtonUp(wxDC& dc, int x, int y) -{ - if (m_srcPile) - { - // work out the position of the dragged card - x += m_xOffset; - y += m_yOffset; - - Pile* nearestPile = 0; - int distance = (CardHeight + CardWidth) * (CardHeight + CardWidth); - - // find the nearest pile which will accept the card - int i; - for (i = 0; i < 8; i++) - { - if (DropCard(x, y, m_foundations[i], m_liftedCard)) - { - if (m_foundations[i]->CalcDistance(x, y) < distance) - { - nearestPile = m_foundations[i]; - distance = nearestPile->CalcDistance(x, y); - } - } - } - for (i = 0; i < 10; i++) - { - if (DropCard(x, y, m_bases[i], m_liftedCard)) - { - if (m_bases[i]->CalcDistance(x, y) < distance) - { - nearestPile = m_bases[i]; - distance = nearestPile->CalcDistance(x, y); - } - } - } - - // Restore the area under the card - wxMemoryDC memoryDC; - memoryDC.SelectObject(*m_bmap); - dc.Blit(m_xPos, m_yPos, CardWidth, CardHeight, - &memoryDC, 0, 0, wxCOPY); - - // Draw the card in its new position - if (nearestPile) - { - // Add to new pile - nearestPile->AddCard(dc, m_liftedCard); - if (nearestPile != m_srcPile) - { - DoMove(dc, m_srcPile, nearestPile); - } - } - else - { - // Return card to src pile - m_srcPile->AddCard(dc, m_liftedCard); - } - m_srcPile = 0; - m_liftedCard = 0; - } -} - - - - -bool Game::DropCard(int x, int y, Pile* pile, Card* card) -{ - bool retval = FALSE; - if (pile->Overlap(x, y)) - { - if (pile->AcceptCard(card)) - { - retval = TRUE; - } - } - return retval; -} - - -void Game::MouseMove(wxDC& dc, int mx, int my) -{ - if (m_liftedCard) - { - wxMemoryDC memoryDC; - memoryDC.SelectObject(*m_bmap); - - int dx = mx + m_xOffset - m_xPos; - int dy = my + m_yOffset - m_yPos; - - if (abs(dx) >= CardWidth || abs(dy) >= CardHeight) - { - // Restore the area under the card - dc.Blit(m_xPos, m_yPos, CardWidth, CardHeight, - &memoryDC, 0, 0, wxCOPY); - - // Copy the area under the card in the new position - memoryDC.Blit(0, 0, CardWidth, CardHeight, - &dc, m_xPos + dx, m_yPos + dy, wxCOPY); - } - else if (dx >= 0) - { - // dx >= 0 - dc.Blit(m_xPos, m_yPos, dx, CardHeight, &memoryDC, 0, 0, wxCOPY); - if (dy >= 0) - { - // dy >= 0 - dc.Blit(m_xPos + dx, m_yPos, CardWidth - dx, dy, &memoryDC, dx, 0, wxCOPY); - memoryDC.Blit(0, 0, CardWidth - dx, CardHeight - dy, - &memoryDC, dx, dy, wxCOPY); - memoryDC.Blit(0, CardHeight - dy, CardWidth - dx, dy, - &dc, m_xPos + dx, m_yPos + CardHeight, wxCOPY); - } - else - { - // dy < 0 - dc.Blit(m_xPos + dx, m_yPos + dy + CardHeight, CardWidth - dx, -dy, - &memoryDC, dx, CardHeight + dy, wxCOPY); - memoryDC.Blit(0, -dy, CardWidth - dx, CardHeight + dy, - &memoryDC, dx, 0, wxCOPY); - memoryDC.Blit(0, 0, CardWidth - dx, -dy, - &dc, m_xPos + dx, m_yPos + dy, wxCOPY); - } - memoryDC.Blit(CardWidth - dx, 0, dx, CardHeight, - &dc, m_xPos + CardWidth, m_yPos + dy, wxCOPY); - } - else - { - // dx < 0 - dc.Blit(m_xPos + CardWidth + dx, m_yPos, -dx, CardHeight, - &memoryDC, CardWidth + dx, 0, wxCOPY); - if (dy >= 0) - { - dc.Blit(m_xPos, m_yPos, CardWidth + dx, dy, &memoryDC, 0, 0, wxCOPY); - memoryDC.Blit(-dx, 0, CardWidth + dx, CardHeight - dy, - &memoryDC, 0, dy, wxCOPY); - memoryDC.Blit(-dx, CardHeight - dy, CardWidth + dx, dy, - &dc, m_xPos, m_yPos + CardHeight, wxCOPY); - } - else - { - // dy < 0 - dc.Blit(m_xPos, m_yPos + CardHeight + dy, CardWidth + dx, -dy, - &memoryDC, 0, CardHeight + dy, wxCOPY); - memoryDC.Blit(-dx, -dy, CardWidth + dx, CardHeight + dy, - &memoryDC, 0, 0, wxCOPY); - memoryDC.Blit(-dx, 0, CardWidth + dx, -dy, - &dc, m_xPos, m_yPos + dy, wxCOPY); - } - memoryDC.Blit(0, 0, -dx, CardHeight, - &dc, m_xPos + dx, m_yPos + dy, wxCOPY); - } - m_xPos += dx; - m_yPos += dy; - - // draw the card in its new position - memoryDC.SelectObject(*m_bmapCard); - dc.Blit(m_xPos, m_yPos, CardWidth, CardHeight, - &memoryDC, 0, 0, wxCOPY); - } -} - - - -//----------------------------------------------// -// The Pack class: holds the two decks of cards // -//----------------------------------------------// -Pack::Pack(int x, int y) : Pile(x, y, 0, 0) -{ - for (m_topCard = 0; m_topCard < NumCards; m_topCard++) - { - m_cards[m_topCard] = new Card(1 + m_topCard / 2, facedown); - } - m_topCard = NumCards - 1; -} - - -void Pack::Shuffle() -{ - Card* temp[NumCards]; - int i; - - // Don't try to shuffle an empty m_pack! - if (m_topCard < 0) return; - - // Copy the cards into a temporary array. Start by clearing - // the array and then copy the card into a random position. - // If the position is occupied then find the next lower position. - for (i = 0; i <= m_topCard; i++) - { - temp[i] = 0; - } - for (i = 0; i <= m_topCard; i++) - { - int pos = rand() % (m_topCard + 1); - while (temp[pos]) - { - pos--; - if (pos < 0) pos = m_topCard; - } - m_cards[i]->TurnCard(facedown); - temp[pos] = m_cards[i]; - m_cards[i] = 0; - } - - // Copy each card back into the m_pack in a random - // position. If position is occupied then find nearest - // unoccupied position after the random position. - for (i = 0; i <= m_topCard; i++) - { - int pos = rand() % (m_topCard + 1); - while (m_cards[pos]) - { - pos++; - if (pos > m_topCard) pos = 0; - } - m_cards[pos] = temp[i]; - } -} - -void Pack::Redraw(wxDC& dc) -{ - Pile::Redraw(dc); - - char str[10]; - sprintf(str, "%d ", m_topCard + 1); - - dc.SetTextBackground(FortyApp::BackgroundColour()); - dc.SetTextForeground(FortyApp::TextColour()); - dc.DrawText(str, m_x + CardWidth + 5, m_y + CardHeight / 2); - -} - -void Pack::AddCard(Card* card) -{ - if (card == m_cards[m_topCard + 1]) - { - m_topCard++; - } - else - { - wxMessageBox("Pack::AddCard() Undo error", "Forty Thieves: Warning", - wxOK | wxICON_EXCLAMATION); - } - card->TurnCard(facedown); -} - - -Pack::~Pack() -{ - for (m_topCard = 0; m_topCard < NumCards; m_topCard++) - { - delete m_cards[m_topCard]; - } -}; - - -//------------------------------------------------------// -// The Base class: holds the initial pile of four cards // -//------------------------------------------------------// -Base::Base(int x, int y) : Pile(x, y, 0, 12) -{ - m_topCard = -1; -} - - -bool Base::AcceptCard(Card* card) -{ - bool retval = FALSE; - - if (m_topCard >= 0) - { - if (m_cards[m_topCard]->GetSuit() == card->GetSuit() && - m_cards[m_topCard]->GetPipValue() - 1 == card->GetPipValue()) - { - retval = TRUE; - } - } - else - { - // pile is empty - ACCEPT - retval = TRUE; - } - return retval; -} - -Base::~Base() -{ -// nothing special at the moment -}; - - -//----------------------------------------------------------------// -// The Foundation class: holds the cards built up from the ace... // -//----------------------------------------------------------------// -Foundation::Foundation(int x, int y) : Pile(x, y, 0, 0) -{ - m_topCard = -1; -} - -bool Foundation::AcceptCard(Card* card) -{ - bool retval = FALSE; - - if (m_topCard >= 0) - { - if (m_cards[m_topCard]->GetSuit() == card->GetSuit() && - m_cards[m_topCard]->GetPipValue() + 1 == card->GetPipValue()) - { - retval = TRUE; - } - } - else if (card->GetPipValue() == 1) - { - // It's an ace and the pile is empty - ACCEPT - retval = TRUE; - } - return retval; -} - -Foundation::~Foundation() -{ -// nothing special at the moment -}; - - -//----------------------------------------------------// -// The Discard class: holds cards dealt from the m_pack // -//----------------------------------------------------// -Discard::Discard(int x, int y) : Pile(x, y, 19, 0) -{ - m_topCard = -1; -} - -void Discard::Redraw(wxDC& dc) -{ - if (m_topCard >= 0) - { - if (m_dx == 0 && m_dy == 0) - { - m_cards[m_topCard]->Draw(dc, m_x, m_y); - } - else - { - int x = m_x; - int y = m_y; - for (int i = 0; i <= m_topCard; i++) - { - m_cards[i]->Draw(dc, x, y); - x += m_dx; - y += m_dy; - if (i == 31) - { - x = m_x; - y = m_y + CardHeight / 3; - } - } - } - } - else - { - Card::DrawNullCard(dc, m_x, m_y); - } -} - - -void Discard::GetTopCardPos(int& x, int& y) -{ - if (m_topCard < 0) - { - x = m_x; - y = m_y; - } - else if (m_topCard > 31) - { - x = m_x + m_dx * (m_topCard - 32); - y = m_y + CardHeight / 3; - } - else - { - x = m_x + m_dx * m_topCard; - y = m_y; - } -} - - -Card* Discard::RemoveTopCard(wxDC& dc, int m_xOffset, int m_yOffset) -{ - Card* card; - - if (m_topCard <= 31) - { - card = Pile::RemoveTopCard(dc, m_xOffset, m_yOffset); - } - else - { - int topX, topY, x, y; - GetTopCardPos(topX, topY); - card = Pile::RemoveTopCard(); - card->Erase(dc, topX - m_xOffset, topY - m_yOffset); - GetTopCardPos(x, y); - dc.SetClippingRegion(topX - m_xOffset, topY - m_yOffset, - CardWidth, CardHeight); - - for (int i = m_topCard - 31; i <= m_topCard - 31 + CardWidth / m_dx; i++) - { - m_cards[i]->Draw(dc, m_x - m_xOffset + i * m_dx, m_y - m_yOffset); - } - if (m_topCard > 31) - { - m_cards[m_topCard]->Draw(dc, topX - m_xOffset - m_dx, topY - m_yOffset); - } - dc.DestroyClippingRegion(); - } - - return card; -} - - -Discard::~Discard() -{ -// nothing special at the moment -}; diff --git a/samples/forty/game.h b/samples/forty/game.h deleted file mode 100644 index 2360d15f49..0000000000 --- a/samples/forty/game.h +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: game.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -#ifndef _GAME_H_ -#define _GAME_H_ -#include "card.h" -#include "pile.h" - -const int MaxMoves = 800; - - -//---------------------------------------// -// A class which holds the pack of cards // -//---------------------------------------// -class Pack : public Pile { -public: - Pack(int x, int y); - ~Pack(); - void Redraw(wxDC& dc); - void ResetPile() { m_topCard = NumCards - 1; } - void Shuffle(); - void AddCard(Card* card); // Add card - void AddCard(wxDC& dc, Card* card) { AddCard(card); Redraw(dc); } -}; - - -//----------------------------------------------------------// -// A class which holds a base i.e. the initial 10 x 4 cards // -//----------------------------------------------------------// -class Base : public Pile { -public: - Base(int x, int y); - ~Base(); - bool AcceptCard(Card* card); -}; - - -//----------------------------------------------------// -// A class which holds a foundation i.e. Ace, 2, 3... // -//----------------------------------------------------// -class Foundation : public Pile { -public: - Foundation(int x, int y); - ~Foundation(); - bool AcceptCard(Card* card); -}; - - -//--------------------------------------// -// A class which holds the discard pile // -//--------------------------------------// -class Discard : public Pile { -public: - Discard(int x, int y); - ~Discard(); - void Redraw(wxDC& dc); - void GetTopCardPos(int& x, int& y); - Card* RemoveTopCard(wxDC& dc, int m_xOffset, int m_yOffset); -}; - - -class Game { -public: - Game(int wins, int games, int score); - virtual ~Game(); - - void NewPlayer(int wins, int games, int score); - void Deal(); // Shuffle and deal a new game - bool CanYouGo(int x, int y); // can card under (x,y) go somewhere? - bool HaveYouWon(); // have you won the game? - - void Undo(wxDC& dc); // Undo the last go - void Redo(wxDC& dc); // Redo the last go - - void Redraw(wxDC& dc); - void DisplayScore(wxDC& dc); - bool LButtonDown(wxDC& dc, int mx, int my); // - void LButtonUp(wxDC& dc, int mx, int my); - void LButtonDblClk(wxDC& dc, int mx, int my); - void MouseMove(wxDC& dc, int mx, int my); - - int GetNumWins() const { return m_numWins; } - int GetNumGames() const { return m_numGames; } - int GetScore() const { return m_currentScore + m_totalScore; } - - bool InPlay() const { return m_inPlay; } - -private: - bool DropCard(int x, int y, Pile* pile, Card* card); - // can the card at (x, y) be dropped on the pile? - Pile* WhichPile(int x, int y); // which pile is (x, y) over? - void DoMove(wxDC& dc, Pile* src, Pile* dest); - - bool m_inPlay; // flag indicating that the game has started - - // undo buffer - struct { - Pile* src; - Pile* dest; - } m_moves[MaxMoves]; - int m_moveIndex; // current position in undo/redo buffer - int m_redoIndex; // max move index available for redo - - // the various piles of cards - Pack* m_pack; - Discard* m_discard; - Base* m_bases[10]; - Foundation* m_foundations[8]; - - // variables to do with dragging cards - Pile* m_srcPile; - Card* m_liftedCard; - int m_xPos, m_yPos; // current coords of card being dragged - int m_xOffset, m_yOffset; // card/mouse offset when dragging a card - - wxBitmap* m_bmap; - wxBitmap* m_bmapCard; - - // variables to do with scoring - int m_numGames; - int m_numWins; - int m_totalScore; - int m_currentScore; -}; - -#endif // _GAME_H_ diff --git a/samples/forty/makefile.b32 b/samples/forty/makefile.b32 deleted file mode 100644 index 5586d65abe..0000000000 --- a/samples/forty/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=forty -OBJECTS = $(TARGET).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/forty/makefile.bcc b/samples/forty/makefile.bcc deleted file mode 100644 index 53fdb7bf91..0000000000 --- a/samples/forty/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=forty -OBJECTS=$(TARGET).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/forty/makefile.dos b/samples/forty/makefile.dos deleted file mode 100644 index 150d0b9387..0000000000 --- a/samples/forty/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=forty -OBJECTS = $(TARGET).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/forty/makefile.g95 b/samples/forty/makefile.g95 deleted file mode 100644 index 7f750c2de7..0000000000 --- a/samples/forty/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=forty -OBJECTS = $(TARGET).o canvas.o card.o game.o pile.o playerdg.o scoredg.o scorefil.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/forty/makefile.vc b/samples/forty/makefile.vc deleted file mode 100644 index 7c809b7e74..0000000000 --- a/samples/forty/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=forty -OBJECTS = $(PROGRAM).obj card.obj canvas.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/forty/makefile.wat b/samples/forty/makefile.wat deleted file mode 100644 index 9db1dcaceb..0000000000 --- a/samples/forty/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = forty -OBJECTS = $(PROGRAM).obj canvas.obj card.obj game.obj pile.obj playerdg.obj scoredg.obj scorefil.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/forty/pictures.bmp b/samples/forty/pictures.bmp deleted file mode 100644 index d8c3345521fe4640eb1297930d4d98f955ec5054..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2818 zcmbuBO^)0)5QQs2fEk93=o;DN64~c2Ud37Va)L2nEkmdQUx7;t)Iv))M2xPG0}Ko< zV?Y4&6)CBEJnco08vT~)@jX@*+4Jjf-&-m6JJ+8%|KR+E^E>&0tH`?_%k9Qx6ycC@ ztT(Paa*lF59{G^VAvx<4Cx7bF%m1*30o06XooRVUIjz2Aecv|9fVcXR3!x9e@pg&J z$zd8`n;q+|Ym&ZQ;!GD@*DJ^U9#_>XLGL%LcoousHG5p4D762)+2Y`{O;(Bv)hbRK#3zK ztWNmCk)>6wFMQ?o7WVC%<^`{6R@GPIHQH6Tu%bD*JbD>DG z*HW6A<9zMoS?+1)Ypj-6DNw!DToM&gjTawMQo6r?z_atFZAB!KyJBzncGrbh?wr#=*5RW!Rm^4)&X8kq&1*F%#)^)kCQ0vlI4(d z98RZCk0#iU8!!7*@a&55fZ4!nYh8wTS(Pcg|`sf0JOEIuX(}Jnuq?caO@`kk)da{6eZRg zSCim8ubKIpP6llTsyHlPw4PwQk0iN?D2h3cLP6an&y;}r$})IIiqCC~l9}+b@^+6j zfL}s5&&!;sH0be6SM}7_N$=YxDJ^SdaP(J_VOW&EXtp8vW;!{=YDw(y`RqbZTRWqT zPPqTlHF1WR-i$WT3gi{dp4tUDoZU>Lmj-@%)^6_Icy3uGtohs^ndJj9y*W}LC8iU! z>u71?W?BQU0n=-)dfHmI1YI}K#*LVTnVP%zQfL_*yeV-k68WjNWE}Cprdy5fU4@?AEyAQ#WhAxXOH$_b7bZeU?J%o^*}X4YTgeE5(LQN4}^iwbUp!-MxK*O~@|+ z{Hj#bJnMi*oy(5h;;wnCkG-+}suYeLOJTP0ie`qqfrVq8+N!zmmP9JLY9=Y)z`oLq z7=EUTu?oEo!5I3ZvieG{_|&kbHs7k5`f;prHP2V&MN5K?DyQVUj*M-&D$Vf{TRNsj zX -#include -#include -#include -#include "card.h" -#include "pile.h" - -#include "wx/app.h" - -//+-------------------------------------------------------------+ -//| Pile::Pile() | -//+-------------------------------------------------------------+ -//| Description: | -//| Initialise the pile to be empty of cards. | -//+-------------------------------------------------------------+ -Pile::Pile(int x, int y, int dx, int dy) -{ - m_x = x; - m_y = y; - m_dx = dx; - m_dy = dy; - for (m_topCard = 0; m_topCard < NumCards; m_topCard++) - { - m_cards[m_topCard] = 0; - } - m_topCard = -1; // i.e. empty -} - - -//+-------------------------------------------------------------+ -//| Pile::Redraw() | -//+-------------------------------------------------------------+ -//| Description: | -//| Redraw the pile on the screen. If the pile is empty | -//| just draw a NULL card as a place holder for the pile. | -//| Otherwise draw the pile from the bottom up, starting | -//| at the origin of the pile, shifting each subsequent | -//| card by the pile's x and y offsets. | -//+-------------------------------------------------------------+ -void Pile::Redraw(wxDC& dc ) -{ - wxWindow *frame = wxTheApp->GetTopWindow(); - wxWindow *canvas = (wxWindow *) NULL; - if (frame) - { - wxNode *node = frame->GetChildren().First(); - if (node) canvas = (wxWindow*)node->Data(); - } - - if (m_topCard >= 0) - { - if (m_dx == 0 && m_dy == 0) - { - if ((canvas) && (canvas->IsExposed(m_x,m_y,60,200))) - m_cards[m_topCard]->Draw(dc, m_x, m_y); - } - else - { - int x = m_x; - int y = m_y; - for (int i = 0; i <= m_topCard; i++) - { - if ((canvas) && (canvas->IsExposed(x,y,60,200))) - m_cards[i]->Draw(dc, x, y); - x += m_dx; - y += m_dy; - } - } - } - else - { - if ((canvas) && (canvas->IsExposed(m_x,m_y,60,200))) - Card::DrawNullCard(dc, m_x, m_y); - } -} - - -//+-------------------------------------------------------------+ -//| Pile::GetTopCard() | -//+-------------------------------------------------------------+ -//| Description: | -//| Return a pointer to the top card in the pile or NULL | -//| if the pile is empty. | -//| NB: Gets a copy of the card without removing it from the | -//| pile. | -//+-------------------------------------------------------------+ -Card* Pile::GetTopCard() -{ - Card* card = 0; - - if (m_topCard >= 0) - { - card = m_cards[m_topCard]; - } - return card; -} - - -//+-------------------------------------------------------------+ -//| Pile::RemoveTopCard() | -//+-------------------------------------------------------------+ -//| Description: | -//| If the pile is not empty, remove the top card from the | -//| pile and return the pointer to the removed card. | -//| If the pile is empty return a NULL pointer. | -//+-------------------------------------------------------------+ -Card* Pile::RemoveTopCard() -{ - Card* card = 0; - - if (m_topCard >= 0) - { - card = m_cards[m_topCard--]; - } - return card; -} - - -//+-------------------------------------------------------------+ -//| Pile::RemoveTopCard() | -//+-------------------------------------------------------------+ -//| Description: | -//| As RemoveTopCard() but also redraw the top of the pile | -//| after the card has been removed. | -//| NB: the offset allows for the redrawn area to be in a | -//| bitmap ready for 'dragging' cards acrosss the screen. | -//+-------------------------------------------------------------+ -Card* Pile::RemoveTopCard(wxDC& dc, int xOffset, int yOffset) -{ - int topX, topY, x, y; - - GetTopCardPos(topX, topY); - Card* card = RemoveTopCard(); - - if (card) - { - card->Erase(dc, topX - xOffset, topY - yOffset); - GetTopCardPos(x, y); - if (m_topCard < 0) - { - Card::DrawNullCard(dc, x - xOffset, y - yOffset); - } - else - { - m_cards[m_topCard]->Draw(dc, x - xOffset, y - yOffset); - } - } - - return card; -} - - -void Pile::GetTopCardPos(int& x, int& y) -{ - if (m_topCard < 0) - { - x = m_x; - y = m_y; - } - else - { - x = m_x + m_dx * m_topCard; - y = m_y + m_dy * m_topCard; - } -} - -void Pile::AddCard(Card* card) -{ - if (m_topCard < -1) m_topCard = -1; - - m_cards[++m_topCard] = card; -} - -void Pile::AddCard(wxDC& dc, Card* card) -{ - AddCard(card); - int x, y; - GetTopCardPos(x, y); - card->Draw(dc, x, y); -} - -// Can the card leave this pile. -// If it is a member of the pile then the answer is yes. -// Derived classes may override this behaviour to incorporate -// the rules of the game -bool Pile::CanCardLeave(Card* card) -{ - for (int i = 0; i <= m_topCard; i++) - { - if (card == m_cards[i]) return TRUE; - } - return FALSE; -} - -// Calculate how far x, y is from top card in the pile -// Returns the square of the distance -int Pile::CalcDistance(int x, int y) -{ - int cx, cy; - GetTopCardPos(cx, cy); - return ((cx - x) * (cx - x) + (cy - y) * (cy - y)); -} - - -// Return the card at x, y. Check the top card first, then -// work down the pile. If a card is found then return a pointer -// to the card, otherwise return NULL -Card* Pile::GetCard(int x, int y) -{ - int cardX; - int cardY; - GetTopCardPos(cardX, cardY); - - for (int i = m_topCard; i >= 0; i--) - { - if (x >= cardX && x <= cardX + CardWidth && - y >= cardY && y <= cardY + CardHeight) - { - return m_cards[i]; - } - cardX -= m_dx; - cardY -= m_dy; - } - return 0; -} - - -// Return the position of the given card. If it is not a member of this pile -// return the origin of the pile. -void Pile::GetCardPos(Card* card, int& x, int& y) -{ - x = m_x; - y = m_y; - - for (int i = 0; i <= m_topCard; i++) - { - if (card == m_cards[i]) - { - return; - } - x += m_dx; - y += m_dy; - } - - // card not found in pile, return origin of pile - x = m_x; - y = m_y; -} - - -bool Pile::Overlap(int x, int y) -{ - int cardX; - int cardY; - GetTopCardPos(cardX, cardY); - - if (x >= cardX - CardWidth && x <= cardX + CardWidth && - y >= cardY - CardHeight && y <= cardY + CardHeight) - { - return TRUE; - } - return FALSE; -} - - -Pile::~Pile() -{ -// nothing special at the moment -} diff --git a/samples/forty/pile.h b/samples/forty/pile.h deleted file mode 100644 index 49eb8c9b54..0000000000 --- a/samples/forty/pile.h +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pile.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -//+-------------------------------------------------------------+ -//| Description: | -//| The base class for holding piles of playing cards. | -//| This is the basic building block for card games. A pile | -//| has a position on the screen and an offset for each | -//| card placed on it e.g. a pack has no offset, but the | -//| discard pile may be fanned out across the screen. | -//| | -//| The pile knows how to draw itself, though this may be | -//| overridden if the default layout needs to be changed. | -//| One or more cards can be removed from the top of a pile, | -//| and single cards can be added to the top of a pile. | -//| Functions are provided which redraw the screen when | -//| cards are added or removed. | -//| | -//| Cards know which way up they are and how to draw | -//| themselves. Piles are lists of cards. Piles know which | -//| cards they contain and where they are to be drawn. | -//+-------------------------------------------------------------+ -#ifndef _PILE_H_ -#define _PILE_H_ -#include "card.h" - -const int NumCards = 2 * PackSize; - - -//----------------------------------------------------------------// -// A class defining a pile of cards with a position on the screen // -//----------------------------------------------------------------// -class Pile { -public: - Pile(int x, int y, int dx = 0, int dy = 0); - virtual ~Pile(); - - // General functions - virtual void ResetPile() { m_topCard = -1; } - virtual void Redraw(wxDC& pDC); - - // Card query functions - virtual Card* GetCard(int x, int y); // Get pointer to card at x, y - Card* GetTopCard(); // Get pointer to top card - virtual void GetCardPos(Card* card, int& x, int& y); - // Get position of a card - virtual void GetTopCardPos(int& x, int& y); - // Get position of the top card - int GetNumCards() { return m_topCard + 1; } // Number of cards in pile - bool Overlap(int x, int y); // does card at x,y overlap the pile? - int CalcDistance(int x, int y); // calculates the square of the distance - // of a card at (x,y) from the top of the pile - - // Functions removing one or more cards from the top of a pile - virtual bool CanCardLeave(Card* card); - Card* RemoveTopCard(); - virtual Card* RemoveTopCard(wxDC& pDC, int xOffset = 0, int yOffset = 0); - - // Functions to add a card to the top of a pile - virtual bool AcceptCard(Card*) { return FALSE; } - virtual void AddCard(Card* card); // Add card to top of pile - virtual void AddCard(wxDC& pDC, Card* card); // Add card + redraw it - -protected: - int m_x, m_y; // Position of the pile on the screen - int m_dx, m_dy; // Offset when drawing the pile - Card* m_cards[NumCards]; // Array of cards in this pile - int m_topCard; // Array index of the top card -}; - -#endif // _PILE_H_ diff --git a/samples/forty/playerdg.cpp b/samples/forty/playerdg.cpp deleted file mode 100644 index fa3ea03d04..0000000000 --- a/samples/forty/playerdg.cpp +++ /dev/null @@ -1,188 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: playerdg.cpp -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 "scorefil.h" -#include "playerdg.h" - -const int ID_LISTBOX = 101; - -BEGIN_EVENT_TABLE(PlayerSelectionDialog, wxDialog) - EVT_SIZE(PlayerSelectionDialog::OnSize) - EVT_BUTTON(wxID_OK, PlayerSelectionDialog::ButtonCallback) - EVT_BUTTON(wxID_CANCEL, PlayerSelectionDialog::ButtonCallback) - EVT_LISTBOX(ID_LISTBOX, PlayerSelectionDialog::SelectCallback) - EVT_CLOSE(PlayerSelectionDialog::OnCloseWindow) -END_EVENT_TABLE() - -PlayerSelectionDialog::PlayerSelectionDialog( - wxWindow* parent, - ScoreFile* file - ) : - wxDialog(parent, -1, "Player Selection", - wxDefaultPosition, wxSize(320, 200), - wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE), - m_scoreFile(file) -{ - // enable constraints - SetAutoLayout (TRUE); - - wxStaticText* msg = new wxStaticText(this, -1, "Please select a name from the list"); - - wxListBox* list = new wxListBox( - this, ID_LISTBOX, - wxDefaultPosition, wxDefaultSize, - 0, 0, - wxLB_SINGLE - ); - - wxArrayString players; - m_scoreFile->GetPlayerList(players); - for (unsigned int i = 0; i < players.Count(); i++) - { - list->Append(players[i]); - } - - m_textField = new wxTextCtrl(this, -1, "", wxDefaultPosition, wxDefaultSize, 0); - - m_OK = new wxButton(this, wxID_OK, "OK"); - m_cancel = new wxButton(this, wxID_CANCEL, "Cancel"); - - wxLayoutConstraints* layout; - - // Constrain the msg at the top of the window - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->top.SameAs (this, wxTop, 10); - layout->height.AsIs(); - layout->width.AsIs(); - msg->SetConstraints(layout); - - // Constrain the OK button - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->bottom.SameAs (this, wxBottom, 10); - layout->height.AsIs(); - layout->width.AsIs(); - m_OK->SetConstraints(layout); - - // Constrain the OK button - layout = new wxLayoutConstraints; - layout->left.RightOf (m_OK, 10); - layout->bottom.SameAs (this, wxBottom, 10); - layout->height.AsIs(); - layout->width.AsIs(); - m_cancel->SetConstraints(layout); - - // Constrain the Name text entry field - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->right.SameAs (this, wxRight, 10); - layout->bottom.SameAs (m_OK, wxTop, 10); - layout->height.AsIs(); - m_textField->SetConstraints(layout); - - // Constrain the list of players - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->right.SameAs (this, wxRight, 10); - layout->top.Below (msg, 10); - layout->bottom.SameAs (m_textField, wxTop, 10); - list->SetConstraints(layout); - - wxString prevPlayer = m_scoreFile->GetPreviousPlayer(); - if (prevPlayer.Length() > 0) - { - list->SetStringSelection(prevPlayer); - m_textField->SetValue(prevPlayer); - } - - Layout(); -} - -PlayerSelectionDialog::~PlayerSelectionDialog() -{ -} - -void PlayerSelectionDialog::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - Layout(); -} - -const wxString& PlayerSelectionDialog::GetPlayersName() -{ -/* - m_player = ""; - Show(TRUE); -*/ - return m_player; -} - -void PlayerSelectionDialog::OnCloseWindow(wxCloseEvent& event) -{ - m_player = ""; - EndModal(wxID_CANCEL); -} - -void PlayerSelectionDialog::SelectCallback(wxCommandEvent& event) -{ - if (event.GetEventType() == wxEVT_COMMAND_LISTBOX_SELECTED) - { -// if (event.IsSelection()) - m_textField->SetValue(event.GetString()); - } -} - -void PlayerSelectionDialog::ButtonCallback(wxCommandEvent& event) -{ - if (event.GetId() == wxID_OK) - { - wxString name = m_textField->GetValue(); - if (!name.IsNull() && name.Length() > 0) - { - if (name.Contains('@')) - { - wxMessageBox("Names should not contain the '@' character", "Forty Thieves"); - } - else - { - m_player = name; - EndModal(wxID_OK); - } - } - else - { - wxMessageBox("Please enter your name", "Forty Thieves"); - } - } - else - { - m_player = ""; - EndModal(wxID_CANCEL); - } -} diff --git a/samples/forty/playerdg.h b/samples/forty/playerdg.h deleted file mode 100644 index 70d9cfb6cb..0000000000 --- a/samples/forty/playerdg.h +++ /dev/null @@ -1,41 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: playerdg.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -#ifndef _PLAYERDG_H_ -#define _PLAYERDG_H_ - -class PlayerSelectionDialog : public wxDialog -{ -public: - PlayerSelectionDialog(wxWindow* parent, ScoreFile* file); - virtual ~PlayerSelectionDialog(); - - const wxString& GetPlayersName(); - void ButtonCallback(wxCommandEvent& event); - void SelectCallback(wxCommandEvent& event); - void OnSize(wxSizeEvent& event); - - DECLARE_EVENT_TABLE() - -protected: - friend void SelectCallback(wxListBox&, wxCommandEvent&); - void OnCloseWindow(wxCloseEvent& event); - -private: - ScoreFile* m_scoreFile; - wxString m_player; - wxButton* m_OK; - wxButton* m_cancel; - wxTextCtrl* m_textField; -}; - -#endif diff --git a/samples/forty/scoredg.cpp b/samples/forty/scoredg.cpp deleted file mode 100644 index de7d7a6a09..0000000000 --- a/samples/forty/scoredg.cpp +++ /dev/null @@ -1,192 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scoredg.cpp -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) -#include -#else -#include -#endif -#else -#include -using namespace std; -#endif -#include "scorefil.h" -#include "scoredg.h" - -class ScoreCanvas : public wxScrolledWindow -{ -public: - ScoreCanvas(wxWindow* parent, ScoreFile* scoreFile); - virtual ~ScoreCanvas(); - - void OnDraw(wxDC& dc); - -private: - wxFont* m_font; - wxString m_text; -}; - - -ScoreCanvas::ScoreCanvas(wxWindow* parent, ScoreFile* scoreFile) : - wxScrolledWindow(parent) -{ -#ifdef __WXGTK__ - m_font = wxTheFontList->FindOrCreateFont(12, wxROMAN, wxNORMAL, wxNORMAL); -#else - m_font = wxTheFontList->FindOrCreateFont(10, wxSWISS, wxNORMAL, wxNORMAL); -#endif - - wxArrayString players; - scoreFile->GetPlayerList( players); - - ostrstream os; - - os << "Player\tWins\tGames\tScore\n"; - for (unsigned int i = 0; i < players.Count(); i++) - { - int wins, games, score; - scoreFile->ReadPlayersScore(players[i], wins, games, score); - int average = 0; - if (games > 0) - { - average = (2 * score + games) / (2 * games); - } - - os << players[i] << '\t' - << wins << '\t' - << games << '\t' - << average << '\n'; - } - os << '\0'; - char* str = os.str(); - m_text = str; - delete str; -} - -ScoreCanvas::~ScoreCanvas() -{ -} - -void ScoreCanvas::OnDraw(wxDC& dc) -{ - dc.SetFont(* m_font); - - const char* str = m_text; - unsigned int tab = 0; - unsigned int tabstops[] = { 5, 100, 150, 200 }; - - // get the line spacing for the current font - int lineSpacing; - { - long w, h; - dc.GetTextExtent("Testing", &w, &h); - lineSpacing = (int)h; - } - - int y = 0; - while (*str) - { - char text[256]; - char* dest = text; - - while (*str && *str >= ' ') *dest++ = *str++; - *dest = '\0'; - - dc.DrawText(text, tabstops[tab], y); - - if (*str == '\t') - { - if (tab < sizeof(tabstops) / sizeof(tabstops[0]) - 1) - { - tab++; - } - } - else if (*str == '\n') - { - tab = 0; - y += lineSpacing; - } - if (*str) str++; - } -} - -BEGIN_EVENT_TABLE(ScoreDialog, wxDialog) - EVT_CLOSE(ScoreDialog::OnCloseWindow) -END_EVENT_TABLE() - -ScoreDialog::ScoreDialog( - wxWindow* parent, - ScoreFile* file - ) : - wxDialog(parent, -1, "Scores", - wxDefaultPosition, wxSize(310, 200), - wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE), - m_scoreFile(file) -{ - // enable constraints - SetAutoLayout (TRUE); - - ScoreCanvas* list = new ScoreCanvas(this, m_scoreFile); - m_OK = new wxButton(this, wxID_OK, "OK"); - - wxLayoutConstraints* layout; - - // Constrain the OK button - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->bottom.SameAs (this, wxBottom, 10); - layout->height.AsIs(); - layout->width.AsIs(); - m_OK->SetConstraints(layout); - - // Constrain the list of players - layout = new wxLayoutConstraints; - layout->left.SameAs (this, wxLeft, 10); - layout->right.SameAs (this, wxRight, 10); - layout->top.SameAs (this, wxTop, 10); - layout->bottom.SameAs (m_OK, wxTop, 10); - list->SetConstraints(layout); - - Layout(); -} - -ScoreDialog::~ScoreDialog() -{ -} - -void ScoreDialog::Display() -{ - Show(TRUE); -} - -void ScoreDialog::OnCloseWindow(wxCloseEvent& event) -{ - EndModal(wxID_OK); -} diff --git a/samples/forty/scoredg.h b/samples/forty/scoredg.h deleted file mode 100644 index 8ce7a7274d..0000000000 --- a/samples/forty/scoredg.h +++ /dev/null @@ -1,34 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scoredg.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -#ifndef _SCOREDG_H_ -#define _SCOREDG_H_ - -class ScoreDialog : public wxDialog -{ -public: - ScoreDialog(wxWindow* parent, ScoreFile* file); - virtual ~ScoreDialog(); - - void Display(); - -protected: - void OnCloseWindow(wxCloseEvent& event); - -private: - ScoreFile* m_scoreFile; - wxButton* m_OK; - -DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/samples/forty/scorefil.cpp b/samples/forty/scorefil.cpp deleted file mode 100644 index 348be7cfe7..0000000000 --- a/samples/forty/scorefil.cpp +++ /dev/null @@ -1,183 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scorefil.cpp -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 14th May 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 - -#ifdef __WXGTK__ -#include -#include -#include -#endif -#include "wx/textfile.h" -#include "wx/config.h" -#include "wx/fileconf.h" - -#include "scorefil.h" - - -ScoreFile::ScoreFile(const char* appName) -{ -#if 0 - wxString filename; - m_configFilename << "/usr/local/share/" << appName << ".scores"; - if (access(m_configFilename, F_OK) == 0) - { - if (access(m_configFilename, R_OK | W_OK) != 0) - { - // file is not r/w - use local file instead - m_configFilename = wxFileConfig::GetLocalFileName(appName); - } - } - else - { - int fd = creat(m_configFilename, 0666); - - if (fd < 0) - { - // failed to create file - use local file instead - m_configFilename = wxFileConfig::GetLocalFileName(appName); - } - else - { - // ensure created file has rw-rw-rw permissions - close(fd); - } - } -#endif - - m_config = new wxConfig(appName, "wxWindows", appName, "", wxCONFIG_USE_LOCAL_FILE); // only local -} - -ScoreFile::~ScoreFile() -{ - delete m_config; -#ifdef __WXGTK__ - // ensure score file has rw-rw-rw permissions - // (wxFileConfig sets them to rw-------) - chmod(m_configFilename, 0666); -#endif -} - - -void ScoreFile::GetPlayerList( wxArrayString &list ) -{ - m_config->SetPath("/Players"); - int length = m_config->GetNumberOfGroups(); - - if (length <= 0) return; - - wxString player; - long index, i = 0; - if (m_config->GetFirstGroup(player, index)) - { - list.Add( player ); - i++; - while (m_config->GetNextGroup(player, index)) - { - list.Add( player ); - i++; - } - } -} - - -// Calculate an encrypted check number to prevent tampering with -// score file -long ScoreFile::CalcCheck(const char* name, int p1, int p2, int p3) -{ - long check = 0; - while (*name) - { - check = (check << 1) ^ (long)*name++; - check = ((check >> 23) ^ check) & 0xFFFFFF; - } - check = (check << 1) ^ (long)p1; - check = ((check >> 23) ^ check) & 0xFFFFFF; - check = (check << 1) ^ (long)p2; - check = ((check >> 23) ^ check) & 0xFFFFFF; - check = (check << 1) ^ (long)p3; - check = ((check >> 23) ^ check) & 0xFFFFFF; - return check; -} - -wxString ScoreFile::GetPreviousPlayer() const -{ - wxString result; - m_config->SetPath("/General"); - m_config->Read("LastPlayer", &result); - return result; -} - -void ScoreFile::ReadPlayersScore( - const char* player, - int& wins, - int& games, - int& score) -{ - long check; - long myWins, myGames, myScore; - - games = wins = score = 0; - - m_config->SetPath("/Players"); - m_config->SetPath(player); - if (m_config->Read("Score", &myScore, 0L) && - m_config->Read("Games", &myGames, 0L) && - m_config->Read("Wins", &myWins, 0L) && - m_config->Read("Check", &check, 0L)) - { - if (check != CalcCheck(player, myGames, myWins, myScore)) - { - wxMessageBox("Score file corrupted", "Warning", - wxOK | wxICON_EXCLAMATION); - } - else - { - games = myGames; - wins = myWins; - score = myScore; - } - } - WritePlayersScore(player, wins, games, score); -} - - -void ScoreFile::WritePlayersScore(const char* player, int wins, int games, int score) -{ - if (player) - { - m_config->SetPath("/General"); - m_config->Write("LastPlayer", player); - - m_config->SetPath("/Players"); - m_config->SetPath(player); - m_config->Write("Score", (long)score); - m_config->Write("Games", (long)games); - m_config->Write("Wins", (long)wins); - m_config->Write("Check", CalcCheck(player, games, wins, score)); - } -} diff --git a/samples/forty/scorefil.h b/samples/forty/scorefil.h deleted file mode 100644 index 1e89904eca..0000000000 --- a/samples/forty/scorefil.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scorefil.h -// Purpose: Forty Thieves patience game -// Author: Chris Breeze -// Modified by: -// Created: 21/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1993-1998 Chris Breeze -// Licence: wxWindows licence -//--------------------------------------------------------------------------- -// Last modified: 22nd July 1998 - ported to wxWindows 2.0 -///////////////////////////////////////////////////////////////////////////// -#ifndef _SCOREFILE_H_ -#define _SCOREFILE_H_ - -#include - -class wxConfig; - -class ScoreFile { -public: - ScoreFile(const char* appName); - virtual ~ScoreFile(); - - void GetPlayerList( wxArrayString &list ); - wxString GetPreviousPlayer() const; - - void ReadPlayersScore(const char* player, int& wins, int& games, int &score); - void WritePlayersScore(const char* player, int wins, int games, int score); - -private: - long CalcCheck(const char* name, int p1, int p2, int p3); - wxString m_configFilename; - wxConfig* m_config; -}; - -#endif diff --git a/samples/forty/symbols.bmp b/samples/forty/symbols.bmp deleted file mode 100644 index 59f466cd18b8d70ba7d4e1b9bf718c1d44e30fca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 662 zcmZvZKS;w+5XP@sI+Rd5W+=_-S{D^+Bkt1G(a}FNbyBQIgiuuDhe9_Og|eMV{N7D<$KpH#$FWF z({p=z+G5fs_9=0P$o<;D<53$m_I5$VTKQ_o*k^I8fwi^5Fm2ryr3++cAG=bsC}CbT z_cgbHjQS40gx>DYJ#UsPFMgw8*8wn`T=L_Wv#=uvdFv|$>tevw1rC;lfaA$1z)Zlv zC*Wwz@stp$jJcW<%a50V#&SeG?0+N6rXdD-%2Y#ZY0rtXhzIJ8dN!QDS?G*(cJnna wqZ|J}=qE8T%PV^*aQ4iGH55`4XH~;_u diff --git a/samples/forty/symbols.xbm b/samples/forty/symbols.xbm deleted file mode 100644 index 5dee698c60..0000000000 --- a/samples/forty/symbols.xbm +++ /dev/null @@ -1,37 +0,0 @@ -#define Symbols_width 79 -#define Symbols_height 50 -static char Symbols_bits[] = { - 0x08,0x84,0x0d,0x01,0x00,0x00,0x00,0x00,0x00,0x80,0x1c,0xce,0x9f,0x03,0x00, - 0x00,0x00,0x00,0x00,0x80,0x2a,0xdf,0xdf,0x07,0x00,0x00,0x00,0x00,0x00,0x80, - 0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x80,0x2a,0x9f,0xcf,0x07,0x00, - 0x00,0x00,0x00,0x00,0x80,0x08,0x0e,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x80, - 0x1c,0x04,0x82,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x1c,0x04,0x82,0x03,0x00, - 0x00,0x00,0x00,0x00,0x80,0x08,0x0e,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x80, - 0x2a,0x9f,0xcf,0x07,0x00,0x00,0x00,0x00,0x00,0x80,0xff,0xff,0xff,0x0f,0x00, - 0x00,0x00,0x00,0x00,0x80,0x2a,0xdf,0xdf,0x07,0x00,0x00,0x00,0x00,0x00,0x80, - 0x1c,0xce,0x9f,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x84,0x0d,0x01,0x00, - 0x00,0x00,0x00,0x00,0x80,0x70,0x00,0x01,0x63,0x40,0x00,0x00,0x00,0x00,0x80, - 0xf8,0x80,0x83,0xf7,0xe0,0x00,0x00,0x00,0x00,0x80,0xf8,0x80,0xc3,0xff,0xf1, - 0x01,0x00,0x00,0x00,0x80,0x70,0xc0,0xc7,0xff,0xf9,0x03,0x00,0x00,0x00,0x80, - 0x26,0xe3,0xcf,0xff,0xfd,0x07,0x00,0x00,0x00,0x80,0xaf,0xf7,0xdf,0xff,0xff, - 0x0f,0x00,0x00,0x00,0x80,0xff,0xe7,0x8f,0xff,0xfe,0x0f,0x00,0x00,0x00,0x80, - 0xaf,0xc7,0x07,0x7f,0x5e,0x0f,0x00,0x00,0x00,0x80,0x26,0x83,0x03,0x3e,0x4c, - 0x06,0x00,0x00,0x00,0x80,0x70,0x80,0x03,0x1c,0xe0,0x00,0x00,0x00,0x00,0x80, - 0xfc,0x01,0x01,0x08,0xf8,0x03,0x00,0x00,0x00,0x80,0xfc,0x01,0x01,0x08,0xf8, - 0x03,0x00,0x00,0x00,0x80,0x70,0x80,0x03,0x1c,0xe0,0x00,0x00,0x00,0x00,0x80, - 0x26,0x83,0x03,0x3e,0x4c,0x06,0x00,0x00,0x00,0x80,0xaf,0xc7,0x07,0x7f,0x5e, - 0x0f,0x00,0x00,0x00,0x80,0xff,0xe7,0x8f,0xff,0xfe,0x0f,0x00,0x00,0x00,0x80, - 0xaf,0xf7,0xdf,0xff,0xff,0x0f,0x00,0x00,0x00,0x80,0x26,0xe3,0xcf,0xff,0xfd, - 0x07,0x00,0x00,0x00,0x80,0x70,0xc0,0xc7,0xff,0xf9,0x03,0x00,0x00,0x00,0x80, - 0xf8,0x80,0xc3,0xff,0xf1,0x01,0x00,0x00,0x00,0x80,0xf8,0x80,0x83,0xf7,0xe0, - 0x00,0x00,0x00,0x00,0x80,0x70,0x00,0x01,0x63,0x40,0x00,0x00,0x00,0x00,0x80, - 0x0c,0xe7,0x43,0x3e,0xe7,0x73,0x5c,0xe6,0x73,0xa2,0x92,0x08,0x61,0x82,0x00, - 0x8a,0x62,0x09,0x89,0x92,0x21,0x88,0x50,0x9e,0x00,0x89,0x62,0x09,0x89,0x8a, - 0x21,0xc6,0x49,0xa0,0x87,0x70,0x7c,0x09,0x89,0x86,0x3f,0x01,0xfa,0xa0,0x88, - 0x88,0x60,0x09,0xa9,0x8a,0xa1,0x20,0x42,0xa2,0x88,0x88,0x50,0x29,0x49,0x92, - 0xa1,0xcf,0x41,0x1c,0x87,0x70,0x48,0xc6,0xb0,0xa2,0xa1,0xcf,0x11,0x1c,0x87, - 0x70,0x88,0x89,0x69,0xa2,0x21,0x28,0x12,0xa2,0x88,0x88,0x44,0x4a,0x92,0xa4, - 0x3f,0x24,0xf8,0x82,0x88,0x88,0x42,0x4a,0xa8,0xa8,0x21,0xc3,0x91,0x82,0x8f, - 0x70,0x5e,0x4a,0x88,0xb0,0xa1,0x80,0x50,0x3c,0x48,0x88,0x62,0x4a,0x88,0xa8, - 0x92,0x48,0x30,0x20,0x28,0x88,0x62,0x4a,0x88,0xa4,0x0c,0xe7,0x13,0x3e,0xe7, - 0x73,0x9c,0xe9,0x73,0xa2}; diff --git a/samples/forty/symbols.xpm b/samples/forty/symbols.xpm deleted file mode 100644 index e5a2b2590f..0000000000 --- a/samples/forty/symbols.xpm +++ /dev/null @@ -1,60 +0,0 @@ -/* XPM */ -static char *symbols[] = { -/* width height num_colors chars_per_pixel */ -" 79 50 3 1", -/* colors */ -". c #ffffff", -"* c #ff0000", -"# c #000000", -/* pixels */ -"...#......*....**.**....#......................................................", -"..###....***..*******..###.....................................................", -".#.#.#..*****.*******.#####....................................................", -"#######**************#######...................................................", -".#.#.#..*****..*****..#####....................................................", -"...#.....***....***.....#......................................................", -"..###.....*......*.....###.....................................................", -"..###.....*......*.....###.....................................................", -"...#.....***....***.....#......................................................", -".#.#.#..*****..*****..#####....................................................", -"#######**************#######...................................................", -".#.#.#..*****.*******.#####....................................................", -"..###....***..*******..###.....................................................", -"...#......*....**.**....#......................................................", -"....###.........*.......**...**.......#........................................", -"...#####.......***.....****.****.....###.......................................", -"...#####.......***....***********...#####......................................", -"....###.......*****...***********..#######.....................................", -".##..#..##...*******..***********.#########....................................", -"####.#.####.*********.***********###########...................................", -"###########..*******...*********.###########...................................", -"####.#.####...*****.....*******..####.#.####...................................", -".##..#..##.....***.......*****....##..#..##....................................", -"....###........***........***........###.......................................", -"..#######.......*..........*.......#######.....................................", -"..#######.......*..........*.......#######.....................................", -"....###........***........***........###.......................................", -".##..#..##.....***.......*****....##..#..##....................................", -"####.#.####...*****.....*******..####.#.####...................................", -"###########..*******...*********.###########...................................", -"####.#.####.*********.***********###########...................................", -".##..#..##...*******..***********.#########....................................", -"....###.......*****...***********..#######.....................................", -"...#####.......***....***********...#####......................................", -"...#####.......***.....****.****.....###.......................................", -"....###.........*.......**...**.......#........................................", -"..##....###..#####....#..#####..###..#####..###...###.#..##..#####..###..#...#.", -".#..#..#...#....#....##..#.....#.........#.#...#.#...##.#..#....#..#...#.#..#..", -"#....#.....#...#....#.#..####..#........#..#...#.#...##.#..#....#..#...#.#.#...", -"#....#...##...###..#..#......#.####....#....###...#####.#..#....#..#...#.##....", -"######..#........#.#####.....#.#...#...#...#...#.....##.#..#....#..#.#.#.#.#...", -"#....#.#.....#...#....#..#...#.#...#...#...#...#....#.#.#..#.#..#..#..#..#..#..", -"#....#.#####..###.....#...###...###....#....###....#..#..##...##....##.#.#...#.", -"#....#.#####..###...#.....###...###....#....###....#...##..#...##..#.##..#...#.", -"#....#.....#.#...#..#....#...#.#...#...#...#...#..#...#..#.#..#..#..#..#..#..#.", -"######....#..#.....#####.#.....#...#...#...#...#.#....#..#.#..#....#.#.#...#.#.", -"#....#..##....###...#..#.#.....#####...#....###..####.#..#.#..#....#...#....##.", -"#....#.#.......#....#.#...####.....#..#....#...#.#...##..#.#..#....#...#...#.#.", -".#..#..#...#..#.....##.......#.....#.#.....#...#.#...##..#.#..#....#...#..#..#.", -"..##....###..#####..#....#####..###..#####..###...###..##..#.#####..###..#...#." -}; diff --git a/samples/fractal/.cvsignore b/samples/fractal/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/fractal/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/fractal/Makefile.am b/samples/fractal/Makefile.am deleted file mode 100644 index f5d9824569..0000000000 --- a/samples/fractal/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = fractal - -fractal_SOURCES = fractal.cpp diff --git a/samples/fractal/fractal.cpp b/samples/fractal/fractal.cpp deleted file mode 100644 index fe84a6a584..0000000000 --- a/samples/fractal/fractal.cpp +++ /dev/null @@ -1,251 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: fractal.cpp -// Purpose: demo of wxConfig and related classes -// Author: Andrew Davison -// Modified by: -// Created: 05.04.94 -// RCS-ID: $Id$ -// Copyright: (c) 1994 Andrew Davison -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - - -/* -Date: Tue, 5 Apr 1994 12:01:18 +1000 -From: Andrew Davison -To: wxwin-users@ed.aiai -Subject: Fractal mountains - -Hi, - -This is a quick port of a fractal mountain generator originally -done for MS-Windows. On a Sun the colours look a little washed -out and there is not as much snow or high mountains (maybe the -random number generators fault). The viewing plane is not -quite right as the original code used SetViewportOrg() which there -doesn't seem to be an equivalent of under wxWindows, and my quick -hack doesn't fix. -*/ - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -#include "wx/wxprec.h" - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif //precompiled headers - -#include -#include -#include - -#define Random(x) (rand() % x) -#define Randomize() (srand((unsigned int)time(NULL))) - -static int detail = 9; // CHANGE THIS... 7,8,9 etc - -static bool running = FALSE; -static wxMenuBar *menuBar = NULL; - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(); -}; - -IMPLEMENT_APP(MyApp) - -// Define a new frame type -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size); - - void OnCloseWindow(wxCloseEvent& event); - void OnExit(wxCommandEvent& event); -DECLARE_EVENT_TABLE() -}; - -// Define a new canvas which can receive some events -class MyCanvas: public wxWindow -{ -public: - MyCanvas(wxFrame *frame); - void Draw(wxDC& dc); - -private: - void OnPaint(wxPaintEvent& event); - void Fractal(wxDC& dc, int X1, int Y1, int X2, int Y2, int Z1, int Z2, int Z3, int Z4, int Iteration, double Std, double Ratio); - wxPen SnowPen, MtnPen, GreenPen; - wxBrush WaterBrush; - int Sealevel; - -DECLARE_EVENT_TABLE() -}; - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit() -{ - // Create the main frame window - MyFrame *frame = new MyFrame(NULL, "Fractal Mountains for wxWindows", wxPoint(-1, -1), wxSize(640, 480)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(wxID_EXIT, "E&xit"); - menuBar = new wxMenuBar; - menuBar->Append(file_menu, "&File"); - frame->SetMenuBar(menuBar); - - int width, height; - frame->GetClientSize(&width, &height); - - (void) new MyCanvas(frame); - - // Show the frame - frame->Show(TRUE); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_CLOSE(MyFrame::OnCloseWindow) - EVT_MENU(wxID_EXIT, MyFrame::OnExit) -END_EVENT_TABLE() - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) -{ -} - -// Intercept menu commands -void MyFrame::OnExit(wxCommandEvent& event) -{ - this->Destroy(); -} - -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - static bool destroyed = FALSE; - if (destroyed) - return; - - this->Destroy(); - - destroyed = TRUE; -} - -BEGIN_EVENT_TABLE(MyCanvas, wxWindow) - EVT_PAINT(MyCanvas::OnPaint) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxFrame *frame): - wxWindow(frame, -1) -{ - wxColour wxCol1(255,255,255); - SnowPen = wxPen(wxCol1, 2, wxSOLID); - - wxColour wxCol2(128,0,0); - MtnPen = wxPen(wxCol2, 1, wxSOLID); - - wxColour wxCol3(0,128,0); - GreenPen = wxPen(wxCol3, 1, wxSOLID); - - wxColour wxCol4(0,0,128); - WaterBrush = wxBrush(wxCol4, wxSOLID); -} - -void MyCanvas::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - Draw(dc); -} - -void MyCanvas::Draw(wxDC& dc) -{ - if (running) return; - - running = TRUE; - menuBar->EnableTop(0, FALSE); - - Randomize(); - - int Left, Top, Right, Bottom; - GetClientSize(&Right, &Bottom); - - Right *= 3; Right /= 4; - Bottom *= 3; Bottom /= 4; - Left = 0; - Top = Bottom/8; - - wxPoint Water[4]; - Water[0].x = Left; Water[0].y = Top; - Water[1].x = Right; Water[1].y = Top; - Water[2].x = Right+Bottom/2; Water[2].y = Bottom; - Water[3].x = Bottom/2; Water[3].y = Bottom; - - dc.SetBrush(WaterBrush); - dc.DrawPolygon(4, Water); - - double H = 0.75; - double Scale = Bottom; - double Ratio = 1.0 / pow(2.0, H); - double Std = Scale * Ratio; - Sealevel = Random(18) - 8; - - Fractal(dc, Left, Top, Right, Bottom, 0, 0, 0, 0, detail, Std, Ratio); - - menuBar->EnableTop(0, TRUE); - running = FALSE; -} - -void MyCanvas::Fractal(wxDC& dc, int X1, int Y1, int X2, int Y2, int Z1, int Z2, int Z3, int Z4, int Iteration, double Std, double Ratio) -{ - int Xmid = (X1 + X2) / 2; - int Ymid = (Y1 + Y2) / 2; - int Z23 = (Z2 + Z3) / 2; - int Z41 = (Z4 + Z1) / 2; - int Newz = (int)((Z1 + Z2 + Z3 + Z4) / 4 + (double)(Random(17) - 8) / 8.0 * Std); - - if (--Iteration) - { - int Z12 = (Z1 + Z2) / 2; - int Z34 = (Z3 + Z4) / 2; - double Stdmid = Std * Ratio; - - Fractal(dc, Xmid, Y1, X2, Ymid, Z12, Z2, Z23, Newz, Iteration, Stdmid, Ratio); - Fractal(dc, X1, Y1, Xmid, Ymid, Z1, Z12, Newz, Z41, Iteration, Stdmid, Ratio); - Fractal(dc, Xmid, Ymid, X2, Y2, Newz, Z23, Z3, Z34, Iteration, Stdmid, Ratio); - Fractal(dc, X1, Ymid, Xmid, Y2, Z41, Newz, Z34, Z4, Iteration, Stdmid, Ratio); - } - else - { - if (Newz <= Sealevel) - { - wxPoint P[4]; - P[0].x = Y1 / 2 + X1; P[0].y = Y1 + Z1; - P[1].x = Y1 / 2 + X2; P[1].y = Y1 + Z2; - P[2].x = Y2 / 2 + X2; P[2].y = Y2 + Z3; - P[3].x = Y2 / 2 + X1; P[3].y = Y2 + Z4; - - dc.SetPen(* wxBLACK_PEN); - dc.SetBrush(* wxBLACK_BRUSH); - - dc.DrawPolygon(4, P); - - if (Z1 >= -(60+Random(25))) - dc.SetPen(GreenPen); - else if (Z1 >= -(100+Random(25))) - dc.SetPen(MtnPen); - else - dc.SetPen(SnowPen); - - dc.DrawLine(Ymid/2+X2, Ymid+Z23, Ymid/2+X1, Ymid+Z41); - } - } -} - diff --git a/samples/fractal/fractal.def b/samples/fractal/fractal.def deleted file mode 100644 index 822abf6379..0000000000 --- a/samples/fractal/fractal.def +++ /dev/null @@ -1,9 +0,0 @@ -NAME Fractal -DESCRIPTION 'Fractal' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 - diff --git a/samples/fractal/fractal.rc b/samples/fractal/fractal.rc deleted file mode 100644 index e3b11b0116..0000000000 --- a/samples/fractal/fractal.rc +++ /dev/null @@ -1,4 +0,0 @@ -wxSTD_FRAME ICON "mondrian.ico" - -#include "wx/msw/wx.rc" - diff --git a/samples/fractal/makefile.b32 b/samples/fractal/makefile.b32 deleted file mode 100644 index 6000f3994d..0000000000 --- a/samples/fractal/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=fractal -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/fractal/makefile.bcc b/samples/fractal/makefile.bcc deleted file mode 100644 index 6b4aacde28..0000000000 --- a/samples/fractal/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=fractal -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/fractal/makefile.dos b/samples/fractal/makefile.dos deleted file mode 100644 index 9bb114e1fb..0000000000 --- a/samples/fractal/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=fractal -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/fractal/makefile.g95 b/samples/fractal/makefile.g95 deleted file mode 100644 index 09d3d1f66e..0000000000 --- a/samples/fractal/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=fractal -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/fractal/makefile.unx b/samples/fractal/makefile.unx deleted file mode 100644 index ff708376ad..0000000000 --- a/samples/fractal/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for fractal example (UNIX). - -PROGRAM=fractal - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/fractal/makefile.vc b/samples/fractal/makefile.vc deleted file mode 100644 index 3023708cc5..0000000000 --- a/samples/fractal/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=fractal -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/fractal/makefile.wat b/samples/fractal/makefile.wat deleted file mode 100644 index d48fab6488..0000000000 --- a/samples/fractal/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = fractal -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/fractal/mondrian.ico b/samples/fractal/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZBkSv2S Jq1IE40stId_;>&S diff --git a/samples/grid/bitmap2.bmp b/samples/grid/bitmap2.bmp deleted file mode 100644 index ae825f1bedd3525153ffd6eebffa4e160cbfeec3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZ9FF%AMD6hy~_Xt4zz!((jBw%);tdMjhH4M(!u5>8~e!S{VgjPb+F{NWF9y}dQ+ zfn2~DL~u}mrDx|sK68vJ5?iGVfoWB1RnD1#^(`~+0Lzcu|5Q`#?wIbbEu|D2c~=X| g+_iP(URcPzh|SWpl8>i-$D2*t=HC82PksOU03ju0Qvd(} diff --git a/samples/grid/makefile.b32 b/samples/grid/makefile.b32 deleted file mode 100644 index 95ddc80d76..0000000000 --- a/samples/grid/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/grid/makefile.bcc b/samples/grid/makefile.bcc deleted file mode 100644 index 669f01905a..0000000000 --- a/samples/grid/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/grid/makefile.dos b/samples/grid/makefile.dos deleted file mode 100644 index 13e3a4ce8e..0000000000 --- a/samples/grid/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/grid/makefile.g95 b/samples/grid/makefile.g95 deleted file mode 100644 index b4a920f047..0000000000 --- a/samples/grid/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=test -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/grid/makefile.unx b/samples/grid/makefile.unx deleted file mode 100644 index 069b823b1a..0000000000 --- a/samples/grid/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for grid example (UNIX). - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/grid/makefile.vc b/samples/grid/makefile.vc deleted file mode 100644 index 4ada748eda..0000000000 --- a/samples/grid/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/grid/makefile.wat b/samples/grid/makefile.wat deleted file mode 100644 index 81a83e42a9..0000000000 --- a/samples/grid/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/grid/test.cpp b/samples/grid/test.cpp deleted file mode 100644 index 7662b5b09c..0000000000 --- a/samples/grid/test.cpp +++ /dev/null @@ -1,313 +0,0 @@ -/* - * File: test.cpp - * Purpose: wxGrid test - * Author: Julian Smart - * Created: 1995 - * Updated: - * Copyright: (c) 1995, AIAI, University of Edinburgh - */ - -static const char sccsid[] = "%W% %G%"; - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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/grid.h" -#include "wx/colordlg.h" - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ public: - wxGrid *grid; - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size); - - void ToggleEditable(wxCommandEvent& event); - void ToggleRowLabel(wxCommandEvent& event); - void ToggleColLabel(wxCommandEvent& event); - void ToggleDividers(wxCommandEvent& event); - void LeftCell(wxCommandEvent& event); - void CentreCell(wxCommandEvent& event); - void RightCell(wxCommandEvent& event); - void ColourLabelBackground(wxCommandEvent& event); - void ColourLabelText(wxCommandEvent& event); - void NormalLabelColouring(wxCommandEvent& event); - void ColourCellBackground(wxCommandEvent& event); - void ColourCellText(wxCommandEvent& event); - void NormalCellColouring(wxCommandEvent& event); - void Quit(wxCommandEvent& event); - - void OnActivate(wxActivateEvent& event); - -DECLARE_EVENT_TABLE() -}; - -wxBitmap *cellBitmap1 = (wxBitmap *) NULL; -wxBitmap *cellBitmap2 = (wxBitmap *) NULL; - -// ID for the menu quit command -#define GRID_QUIT 1 -#define GRID_TOGGLE_EDITABLE 2 -#define GRID_LEFT_CELL 3 -#define GRID_CENTRE_CELL 4 -#define GRID_RIGHT_CELL 5 -#define GRID_TOGGLE_ROW_LABEL 6 -#define GRID_TOGGLE_COL_LABEL 7 -#define GRID_COLOUR_LABEL_BACKGROUND 8 -#define GRID_COLOUR_LABEL_TEXT 9 -#define GRID_NORMAL_LABEL_COLOURING 10 -#define GRID_COLOUR_CELL_BACKGROUND 11 -#define GRID_COLOUR_CELL_TEXT 12 -#define GRID_NORMAL_CELL_COLOURING 13 -#define GRID_TOGGLE_DIVIDERS 14 - -// Main proc - -IMPLEMENT_APP(MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit(void) -{ -#ifdef __WXMSW__ - cellBitmap1 = new wxBitmap("bitmap1"); - cellBitmap2 = new wxBitmap("bitmap2"); -#endif - - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, (char *) "wxGrid Sample", wxPoint(50, 50), wxSize(450, 300)); - - // Give it an icon -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("mondrian")); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(GRID_QUIT, "E&xit"); - - wxMenu *settings_menu = new wxMenu; - settings_menu->Append(GRID_TOGGLE_EDITABLE, "&Toggle editable"); - settings_menu->Append(GRID_TOGGLE_ROW_LABEL, "Toggle ro&w label"); - settings_menu->Append(GRID_TOGGLE_COL_LABEL, "Toggle co&l label"); - settings_menu->Append(GRID_TOGGLE_DIVIDERS, "Toggle ÷rs"); - settings_menu->AppendSeparator(); - settings_menu->Append(GRID_LEFT_CELL, "&Left cell alignment "); - settings_menu->Append(GRID_CENTRE_CELL, "&Centre cell alignment "); - settings_menu->Append(GRID_RIGHT_CELL, "&Right cell alignment "); - settings_menu->AppendSeparator(); - settings_menu->Append(GRID_COLOUR_LABEL_BACKGROUND, "Choose a label &background colour"); - settings_menu->Append(GRID_COLOUR_LABEL_TEXT, "Choose a label fore&ground colour"); - settings_menu->Append(GRID_NORMAL_LABEL_COLOURING, "&Normal label colouring"); - settings_menu->AppendSeparator(); - settings_menu->Append(GRID_COLOUR_CELL_BACKGROUND, "Choo&se a cell &background colour"); - settings_menu->Append(GRID_COLOUR_CELL_TEXT, "Choose &a cell foreground colour"); - settings_menu->Append(GRID_NORMAL_CELL_COLOURING, "N&ormal cell colouring"); - - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(settings_menu, "&Settings"); - frame->SetMenuBar(menu_bar); - - // Make a grid - frame->grid = new wxGrid(frame, 0, 0, 400, 400); - - frame->grid->CreateGrid(10, 8); - frame->grid->SetColumnWidth(3, 200); - frame->grid->SetRowHeight(4, 45); - frame->grid->SetCellValue("First cell", 0, 0); - frame->grid->SetCellValue("Another cell", 1, 1); - frame->grid->SetCellValue("Yet another cell", 2, 2); - frame->grid->SetCellTextFont(* wxTheFontList->FindOrCreateFont(10, wxROMAN, wxITALIC, wxNORMAL), 0, 0); - frame->grid->SetCellTextColour(*wxRED, 1, 1); - frame->grid->SetCellBackgroundColour(*wxCYAN, 2, 2); - if (cellBitmap1 && cellBitmap2) - { - frame->grid->SetCellAlignment(wxCENTRE, 5, 0); - frame->grid->SetCellAlignment(wxCENTRE, 6, 0); - frame->grid->SetCellBitmap(cellBitmap1, 5, 0); - frame->grid->SetCellBitmap(cellBitmap2, 6, 0); - } - - frame->grid->UpdateDimensions(); - - // Show the frame - frame->Show(TRUE); - - SetTopWindow(frame); - return TRUE; -} - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) -{ - grid = (wxGenericGrid *) NULL; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(GRID_TOGGLE_EDITABLE, MyFrame::ToggleEditable) - EVT_MENU(GRID_TOGGLE_ROW_LABEL, MyFrame::ToggleRowLabel) - EVT_MENU(GRID_TOGGLE_COL_LABEL, MyFrame::ToggleColLabel) - EVT_MENU(GRID_TOGGLE_DIVIDERS, MyFrame::ToggleDividers) - EVT_MENU(GRID_LEFT_CELL, MyFrame::LeftCell) - EVT_MENU(GRID_CENTRE_CELL, MyFrame::CentreCell) - EVT_MENU(GRID_RIGHT_CELL, MyFrame::RightCell) - EVT_MENU(GRID_COLOUR_LABEL_BACKGROUND, MyFrame::ColourLabelBackground) - EVT_MENU(GRID_COLOUR_LABEL_TEXT, MyFrame::ColourLabelText) - EVT_MENU(GRID_NORMAL_LABEL_COLOURING, MyFrame::NormalLabelColouring) - EVT_MENU(GRID_COLOUR_CELL_BACKGROUND, MyFrame::ColourCellBackground) - EVT_MENU(GRID_COLOUR_CELL_TEXT, MyFrame::ColourCellText) - EVT_MENU(GRID_NORMAL_CELL_COLOURING, MyFrame::NormalCellColouring) - EVT_MENU(GRID_QUIT, MyFrame::Quit) -END_EVENT_TABLE() - -void MyFrame::ToggleEditable(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetEditable(!grid->GetEditable()); - grid->Refresh(); -} - -void MyFrame::ToggleRowLabel(wxCommandEvent& WXUNUSED(event)) -{ - if (grid->GetLabelSize(wxVERTICAL) > 0) - grid->SetLabelSize(wxVERTICAL, 0); - else - grid->SetLabelSize(wxVERTICAL, 40); - grid->Refresh(); -} - -void MyFrame::ToggleColLabel(wxCommandEvent& WXUNUSED(event)) -{ - if (grid->GetLabelSize(wxHORIZONTAL) > 0) - grid->SetLabelSize(wxHORIZONTAL, 0); - else - grid->SetLabelSize(wxHORIZONTAL, 20); - grid->Refresh(); -} - -void MyFrame::ToggleDividers(wxCommandEvent& WXUNUSED(event)) -{ - if (!grid->GetDividerPen().Ok()) - grid->SetDividerPen(* wxThePenList->FindOrCreatePen("LIGHT GREY", 1, wxSOLID)); - else - grid->SetDividerPen(wxNullPen); - grid->Refresh(); -} - -void MyFrame::LeftCell(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetCellAlignment(wxLEFT); - grid->Refresh(); -} - -void MyFrame::CentreCell(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetCellAlignment(wxCENTRE); - grid->Refresh(); -} - -void MyFrame::RightCell(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetCellAlignment(wxRIGHT); - grid->Refresh(); -} - -void MyFrame::ColourLabelBackground(wxCommandEvent& WXUNUSED(event)) -{ - wxColourData data; - data.SetChooseFull(TRUE); - wxColourDialog dialog(this, &data); - if (dialog.ShowModal() != wxID_CANCEL) - { - wxColourData retData = dialog.GetColourData(); - wxColour col = retData.GetColour(); - grid->SetLabelBackgroundColour(col); - grid->Refresh(); - } -} - -void MyFrame::ColourLabelText(wxCommandEvent& WXUNUSED(event)) -{ - wxColourData data; - data.SetChooseFull(TRUE); - wxColourDialog dialog(this, &data); - if (dialog.ShowModal() != wxID_CANCEL) - { - wxColourData retData = dialog.GetColourData(); - wxColour col = retData.GetColour(); - grid->SetLabelTextColour(col); - grid->Refresh(); - } -} - -void MyFrame::NormalLabelColouring(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetLabelBackgroundColour(*wxLIGHT_GREY); - grid->SetLabelTextColour(*wxBLACK); - grid->Refresh(); -} - -void MyFrame::ColourCellBackground(wxCommandEvent& WXUNUSED(event)) -{ - wxColourData data; - data.SetChooseFull(TRUE); - wxColourDialog dialog(this, &data); - if (dialog.ShowModal() != wxID_CANCEL) - { - wxColourData retData = dialog.GetColourData(); - wxColour col = retData.GetColour(); - grid->SetCellBackgroundColour(col); - grid->Refresh(); - } -} - -void MyFrame::ColourCellText(wxCommandEvent& WXUNUSED(event)) -{ - wxColourData data; - data.SetChooseFull(TRUE); - wxColourDialog dialog(this, &data); - if (dialog.ShowModal() != wxID_CANCEL) - { - wxColourData retData = dialog.GetColourData(); - wxColour col = retData.GetColour(); - grid->SetCellTextColour(col); - grid->Refresh(); - } -} - -void MyFrame::NormalCellColouring(wxCommandEvent& WXUNUSED(event)) -{ - grid->SetCellBackgroundColour(*wxWHITE); - grid->SetCellTextColour(*wxBLACK); - grid->Refresh(); -} - -void MyFrame::Quit(wxCommandEvent& WXUNUSED(event)) -{ - this->Close(TRUE); -} - -// Ensure that the grid's edit control always has the focus. -void MyFrame::OnActivate(wxActivateEvent& event) -{ - if (grid) grid->OnActivate(event.GetActive()); -} - diff --git a/samples/grid/test.def b/samples/grid/test.def deleted file mode 100644 index 3dd3b7a033..0000000000 --- a/samples/grid/test.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Test -DESCRIPTION 'wxTableWindow Test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 diff --git a/samples/grid/test.rc b/samples/grid/test.rc deleted file mode 100644 index 571ada1f2a..0000000000 --- a/samples/grid/test.rc +++ /dev/null @@ -1,5 +0,0 @@ -#include "wx/msw/wx.rc" - -bitmap1 BITMAP "bitmap1.bmp" -bitmap2 BITMAP "bitmap2.bmp" - diff --git a/samples/help/.cvsignore b/samples/help/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/help/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/help/Makefile.am b/samples/help/Makefile.am deleted file mode 100644 index 828df91425..0000000000 --- a/samples/help/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = demo - -demo_SOURCES = demo.cpp diff --git a/samples/help/demo.cpp b/samples/help/demo.cpp deleted file mode 100644 index 087af6fc04..0000000000 --- a/samples/help/demo.cpp +++ /dev/null @@ -1,261 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: demo.cpp -// Purpose: wxHelpController demo -// Author: Karsten Ballueder -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Karsten Ballueder, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "demo.cpp" - #pragma interface "demo.cpp" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// for all others, include the necessary headers (this file is usually all you -// need because it includes almost all "standard" wxWindows headers -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include "wx/help.h" - -// ---------------------------------------------------------------------------- -// ressources -// ---------------------------------------------------------------------------- -// the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.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 OnHelp(wxCommandEvent& event); - -private: - wxHelpController help; - // any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// IDs for the controls and the menu commands -enum -{ - // menu items - HelpDemo_Quit = 1, - HelpDemo_Help_Index, - HelpDemo_Help_Classes, - HelpDemo_Help_Functions, - HelpDemo_Help_Help, - HelpDemo_Help_KDE, - HelpDemo_Help_GNOME, - HelpDemo_Help_Netscape, - HelpDemo_Help_Search, - // controls start here (the numbers are, of course, arbitrary) - HelpDemo_Text = 1000, -}; - -// ---------------------------------------------------------------------------- -// event tables and other macros for wxWindows -// ---------------------------------------------------------------------------- - -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. It can be also done at run-time, but for the -// simple menu events like this the static method is much simpler. -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(HelpDemo_Quit, MyFrame::OnQuit) - EVT_MENU(HelpDemo_Help_Index, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_Classes, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_Functions, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_Help, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_KDE, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_GNOME, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_Netscape, MyFrame::OnHelp) - EVT_MENU(HelpDemo_Help_Search, MyFrame::OnHelp) -END_EVENT_TABLE() - -// Create a new application object: this macro will allow wxWindows to create -// the application object during program execution (it's better than using a -// static object for many reasons) and also declares the accessor function -// wxGetApp() which will return the reference of the right type (i.e. MyApp and -// not wxApp) -IMPLEMENT_APP(MyApp) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// the application class -// ---------------------------------------------------------------------------- - -// `Main program' equivalent: the program execution "starts" here -bool MyApp::OnInit() -{ - // Create the main application window - MyFrame *frame = new MyFrame("HelpDemo wxWindows App", - wxPoint(50, 50), wxSize(450, 340)); - - frame->Show(TRUE); - SetTopWindow(frame); - - // success: wxApp::OnRun() will be called which will enter the main message - // loop and the application will run. If we returned FALSE here, the - // application would exit immediately. - return TRUE; -} - -// ---------------------------------------------------------------------------- -// main frame -// ---------------------------------------------------------------------------- - -// frame constructor -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - // set the frame icon - SetIcon(wxICON(mondrian)); - - // create a menu bar - wxMenu *menuFile = new wxMenu; - - menuFile->Append(HelpDemo_Help_Index, "&Help Index..."); - menuFile->Append(HelpDemo_Help_Classes, "&Help on Classes..."); - menuFile->Append(HelpDemo_Help_Functions, "&Help on Functions..."); - menuFile->Append(HelpDemo_Help_Help, "&About Help Demo..."); - menuFile->AppendSeparator(); - menuFile->Append(HelpDemo_Help_Search, "&Search help..."); -#ifdef __WXGTK__ - menuFile->AppendSeparator(); - menuFile->Append(HelpDemo_Help_KDE, "Use &KDE"); - menuFile->Append(HelpDemo_Help_GNOME, "Use &GNOME"); - menuFile->Append(HelpDemo_Help_Netscape, "Use &Netscape"); -#endif - menuFile->AppendSeparator(); - menuFile->Append(HelpDemo_Quit, "E&xit"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - // create a status bar just for fun (by default with 1 pane only) - CreateStatusBar(); - SetStatusText("Welcome to wxWindows!"); - - // now create some controls - - // a panel first - if there were several controls, it would allow us to - // navigate between them from the keyboard - wxPanel *panel = new wxPanel(this, -1, wxPoint(0, 0), wxSize(400, 200)); - - // and a static control whose parent is the panel - (void)new wxStaticText(panel, -1, "Hello, world!", wxPoint(10, 10)); - - // initialise the help system - help.Initialize("doc"); - -} - - -// event handlers - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - // TRUE is to force the frame to close - Close(TRUE); -} - -void MyFrame::OnHelp(wxCommandEvent& event) -{ - switch(event.GetId()) - { - - // Note: these DisplaySection calls use ids that are specific to wxExtHelpController - // (on Unix). For WinHelp, we'd need to use different context ids. - - case HelpDemo_Help_Classes: - help.DisplaySection(1); - break; - case HelpDemo_Help_Functions: - help.DisplaySection(2); - break; - case HelpDemo_Help_Help: - help.DisplaySection(5); - break; - - // These three calls are only used by wxExtHelpController - - case HelpDemo_Help_KDE: - help.SetViewer("kdehelp"); - break; - case HelpDemo_Help_GNOME: - help.SetViewer("gnome-help-browser"); - break; - case HelpDemo_Help_Netscape: - help.SetViewer("netscape", wxHELP_NETSCAPE); - break; - - case HelpDemo_Help_Search: - { - wxString key = wxGetTextFromUser("Search for?", - "Search help for keyword", - "", - this); - if(! key.IsEmpty()) - help.KeywordSearch(key); - } - break; - case HelpDemo_Help_Index: - default: - help.DisplayContents(); - break; - } -} - diff --git a/samples/help/demo.def b/samples/help/demo.def deleted file mode 100644 index 060bfe3fce..0000000000 --- a/samples/help/demo.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Minimal -DESCRIPTION 'Minimal wxWindows application' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/help/demo.rc b/samples/help/demo.rc deleted file mode 100644 index 3bf71d6da0..0000000000 --- a/samples/help/demo.rc +++ /dev/null @@ -1,6 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - -#define MINIMAL_QUIT 1 -#define MINIMAL_ABOUT 102 - diff --git a/samples/help/doc/ClassGraph.class b/samples/help/doc/ClassGraph.class deleted file mode 100644 index 3c6afea84468c9da332caf0b750afca416c20ed1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1146 zcma)5SyR+N5dOj*$%Yg{P!JLCV+qH4;Kd>qEQjcVl$2OJS;OwIM#CgEnFaJ;S?W@y zRsH~flx5Ez5K10=NOz~Fd;06Idw&1<@e3(TVBNxF3lA+kvXHlM-^5cBFHF2Lv0!4x z#Iy;|#H5XG4BN1ANsAF1S=`jtbsH8gXzPmhUCqJ7E9b#Ty(IC=MLtu;@|;p zI~d29gD1G-U>0{BEMnQgOUyecV^jyPX))zs3HJ=xrBK9*3AM?BIyW$qA1!}id#u2s zDB!9v*Hjdw_<<@K$ZqqUP*R}V3JaL16*iRgMU76+tg$`6##AWh>q>>ffR}Gyx33DN za5oAC7pmB)al&aJ#i~_;w0KbAk@5+cf&La43S0`p{WAL$))j?pgmqcrOMXB|296+8 z)PlduMNGMbrmtKISR5})7QJ6*f(PWg)y9*=-A0pi889n4mlK3kest47Z;h)HWDpm= zs8TluEGA{RU-hMd4BJthv>i#l!=>ca4ga&I>!^<-77V0);Zu6@Oep3HeL>rqoC4h* z={6{_6jtfdo^n`W!6uVF+YU6;tmJXCTyKXHK{I^wx~yk&Ova=JW1zd~>2R8hx$4*s zHM`Cv+vUw>h7&_tEv6gBMDm$aepCvByD>^AbPjgp5D?rZ+q@f=Y$u6>sm?HU%{yrjy4C!~C zn`zLld2X82s^=P{);zb1)O6Z&Q>4FQ(EAB{D|HCBfwN>=TVq4%@d>YiA^Of8qW?Pv oJntI@8t8r7HqJEA^My)i5cFi*h5JZrP#NzK=R3y*a&)2e7rP%R2><{9 diff --git a/samples/help/doc/ClassGraphPanel.class b/samples/help/doc/ClassGraphPanel.class deleted file mode 100644 index 4e3b5162cb2ae3b64c20d7b16d5e2918121d36df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4084 zcmbtWd2kz78UL-d(n_lx+fk}CqIL)=rjDH0Z3?E?O(1dF)Zip-+$6OFL2GGkE0HBv zTKOmiN*frUoCR7MppbHiqXiOdIn+J4$`Kgud!T>v2gCo&Fbw7Qy_KwWZ8`z$(R<(f z-gjSbFa7I@rxCzTJQv3A!?-()B?C_x z_@jZZ8Ymn1wSjjSc#DB24gA@_hYftuz+DE;8u+Gx83Ug-u@Og1Y{qF>3K1S}6(}7+ z0w?A8CLtLy@ek7zCa%JrLU&Luih?^V%Lx;kFfO;pBZ$G4V=97nWJFs@NXAUG;SS+_gIpXETuyGM zO0|3D${+S$BAp)D&y_my3@kk`;up4MOv7s|!7b8}X7 z=$XPSFG6F^c%jI%Icb*;61u%`+R2xA9?03Hk}_WWq1yEF>X z$+}h1bfKJg>(RTSZh()0>f<$c754DhDW<%C`zXz_GZ_sVeZf%Wp-Lt)&8)hfgXWOR z%8)%@D7%!mp<&cu-gPD<`L16_t#sCUcKH~4dOGL0J$uzAMdr-8{T_Rs_@hULl$pki zohv(s$C-tklb>)WHC(ffCH^X^nM^+#U9eIw%z2)gR6rS^P8Ft3Nyt^cFnN(UXyna3yOJ%%OKHG$qNQl)s%mVD{ywD4*)%PTDZ_|lM2CYIf7t~QZWZrFpQ zkFE8Vf^zh4Hk%RIn*3Pf+R63nVlBT!tEDl7xNK;fWuk4e1}$KZ$AVD;mEq6Qcy88~WK7-MRNGK4;BZng6cz0(H@8OpF! zWNL|L%qJZg3>373iLIq=^&n`x12sv_Lxr@RJ7yQN_E^r5dDFn+tJYmfeGxYOodlq zb8-RQ{2dTI*9&Txr)>&j`Y_ijOoW(=*i*#~hqb%hMDr3l`&uf{ zj|X~NNv_21B1!O3gmi^cas}nTP6czl8}!~-!irJ;%N|B3&>JH`hp1e}l_Lo=(UJ(p zTjR0#2I7<{-Afo8PL7a5Pc71VI{K=!&&QId zLl8P~9T(6aYf`rB=eydBOnWHP)?USK4^AogykdrYjlDQ~DAR7#*+Z#1TxaJ8-g@j- zLwm}no$zYy{BV46cG2#!bhU~0)$IIs^wl=_#o`Lk@Z>9tx^sIAO$CZ_M{xR~rTFV*K0V!ORLQf=RhM5mt0(16G4h z?ntj_Q|+}AX_FpFO3yTqH`S0e`C`m#DoxK&eL$%nZHQf^oAfG$b=&?cot37OR1i`M zj&`-xt+{LkVyq|>6KKD#P7FQN>Io`6lb5N-@1sw4y_kHcb=1vL9Y-hK znrg)4g=MVr#%bWUo;Y>>U&_~G++IxL5b99Sj=o?bxPY5w*_)D} e2-P-^>Wr?%bsjk-Kz}0PdE44P^*?$A&Cj>|U diff --git a/samples/help/doc/ClassLayout.class b/samples/help/doc/ClassLayout.class deleted file mode 100644 index 40eb67e0e98927ee4f295707fa8d0b1dc7888374..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2412 zcmaJ?X>;3T5Pnqauv|^fs;S$$9EH}g+lH$KoHjtxgFw;-0)YYrE4Jb&$dZxeq$xLq z8-^REP(GB&Oa?vylei4bFnoqzz@MS)zH%IA(jl35-(&aPefHVa>%ac}?GMCo7~jS5 zg@%F#Ps5akM>Tw;;WG_SXn01$oQ5S0-)g97cud0^8k_{WaHkFf`2-ReV{x}m;(-J@ za2KyeSo;zJfsA~f(c zKHxyKdXB{+D_%s&z&R8RT*Au|y5_8TYrwU<^1#{YIlCB2P>(sD6Anq}5jtxj92oJv z&~iLGkdT=4>p{^z<+!$loh^$oYtgTV8)0z?`yi-M8jbJlmw$}ha-Na>U*}w zz(T(&q0<#av=OG%s#cNGYG<=`DI!qNA3=?9k+(F5*c`lhO9UtVsDzGI_7lFtAUcbF z-P=G#bo8Z1n|VbUtUDo6UB75?4QLrS<=Id$y8-irQ?b38&@1WDQN|;?q6W&06Vxc0 zI3^gID399c|0s`_oLXpkf)uM%idv_QNxf*f#mSH=BtffE$Am6n%v`?^QDr%|7GA2F zv`B;cBt}gsVNZ*LEliVbM554)TOswUvfz|>?iK7h{=fudp!(Pr^%}yw2|8?v)QfZMPYTdiunVe=>gqbEmApv8G*{IM9KNzml301zQJyX%>g8;p; z3J4wjgI_k1;73r*^el>*-c6b{vZLpgzgo}8uc_%?9F&fgk>T9@ds%`BmdRCjNHA2WYf5!Bm>c=02w^sgkLt zu3Y;uL-7t#sQoljg(#-{I}+y(t>Ok6yUBBb=9_5jB}av;=>3Vn@*n+1G*g%-dNn$k zWAw*kLn}C+O%dQfVdUkc%$Sv=yoy~)QX#Y)rXZJia(~4@A*Zsk=Mqd)rNjNp*po3; zB6|fr;v}^UU7VzrVp3}Fm21oE41d+4v4;xA46B?{e}qv&c^#vaBAT~TZMsFuO`t^d z3JzvXf+)ZeJ_f5MRpO1Kip9{9ESWNe{U?@FR`7S$Br9Q0hHOuDp|li1-}mT9YSD5H zeMwcQSeOkQVe{^MoRd^aIo;GRLyhHh-sch=i%8g)jGJP;OE5Gm9F*3OUV)j6v(YY7 zk4i;{6o6`+Hlv7)AXQS_LIbz|f`eShtJuMCZ|;#AIKc4_H*iY>dzKW*R4AvT>r_5Y JHierarchy ClassDoc - -

Hierarchy of classes

- - alphabetic index


- -

this page has been generated automatically by doc++ -

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de \ No newline at end of file diff --git a/samples/help/doc/HIERjava.html b/samples/help/doc/HIERjava.html deleted file mode 100644 index ae1ed66918..0000000000 --- a/samples/help/doc/HIERjava.html +++ /dev/null @@ -1,15 +0,0 @@ -Hierarchy ClassDoc -

Hierarchy of classes

-
    - - - - - - - -
- alphabetic index


- -

this page has been generated automatically by doc++ -

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de \ No newline at end of file diff --git a/samples/help/doc/NavigatorButton.class b/samples/help/doc/NavigatorButton.class deleted file mode 100644 index 9f447021d04f4e91483db54bf2d21718de3f4f43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1741 zcmZuyZC4vb6n>TjCT#W)2n4L9inb^$(A4*r*lI~>8;va%O9fvi%O+ji?5w+!0R9v8 z2l%C5>}kT$p5sS*jz7xdo!KOWLqBBh-1mE*dw25he}Dar6xQ%_247_GO$N6asthHD zm_aZcF@y}CGi)$?#^5u2%TQ+c%ETyE#*xFDCMNKf35E~V@wSpJnXs^?*bfxDtW4g| z!o=%}eQz9TyrFKdDTO_bEZ$Ydt0tLTR*HAjaYY?P3tQk8?%_uZALEXN`}o?zHV!O& zj~f>5;(-N;hB}D-QfaSZ*TN253l6@s5a1JKw{PK4h1$a{3)fYs7TU^f(?ShD8JOPZ zZC><5aWnD)xg{f)Hw~C&5yX-Qa+~`t*8p=wAl*Yrnm|NN?%yPy7*BHFa}p-MRMoNg zfh;OXX?fc~rY8KoM4why1GziA?KQX*(Rxct5f~`+9DN=%id2CYG_>!;AY57aBBFE~ zhmIRck7_e8d6G@5OQc`$;)Mzo8r8W&RgZB;8Ixj5v?9m7>G>oz2Vs-CCN-ZVKZ>PG z?Vn3b!q9hR@wz4iNCH6aB(LsLr3phfpw?1Ls^w87zG}dVABuw;!f7>Kh1HlB?CDF^ zi-&5=G$L_Ob?aoo8m>%AS{+8@Zf)On2+bt#5J>B-dfknv?_`ErGeC%{5iJUOzE|#Z zdLd6^*TDE~*KfPhbGU*00GqOCh9b}fPb47%!s7nDDtWO`?TSyproF(UBu0fMEk!ar z%G`>4($)0p6cX>#8%9CWWwA%om>X`jH~dOP;W$wh4)?ct{s7Hp$UrIm&t z>7zsqokFj_PeZ1OXn@{SFKoX*l{+`Up}(ZLvd`oAR>Z@Hmz9!Gi2LK3)z)VwV<4-Y zs{BZgVrJ>=3<-$!=OAzz@r0u-JF||Z-Q5H%^Q1glwU5+TuFPY#_>500kv(r8MLm!|Y;X}aE{^iFA> z-XTrtY18zYrYX8hL@-dN+wT}dhUjnh$}wKG3!@z@+G`zLvR6CE+l6!o=j_5*2N&%E z>)<8(3Fe<++I|XaCqI&&w2m>?!90m)PsF1=@hpiKe<9b$Sm@%#$GGqmZ08s+taMSx zr|9Tnri&>u%RfWbR#CbX{0T1pny~Z4{-KLE@B=n`MK9C;ib2u~ClT`oMYFqjxr1Vs8l`cdi;*)q&v4wGbQ;8QwB(EJ}eNUnAO diff --git a/samples/help/doc/USE_HELP.html b/samples/help/doc/USE_HELP.html deleted file mode 100644 index ec4dc5bc07..0000000000 --- a/samples/help/doc/USE_HELP.html +++ /dev/null @@ -1,38 +0,0 @@ -USE_HELP - -

class wxExtHelpController ifdef USE_HELP : public wxHelpControllerBase

- -This class implements help via an external browser -
-
-

Inheritance:

- - - - - - - - -
-

Documentation

-
- -This class implements help via an external browser. -It requires the name of a directory containing the documentation -and a file mapping numerical Section numbers to relative URLS.

The map file contains two or three fields per line: -numeric_id relative_URL [; comment/documentation]

The numeric_id is the id used to look up the entry in -DisplaySection()/DisplayBlock(). The relative_URL is a filename of -an html file, relative to the help directory. The optional -comment/documentation field (after a ';') is used for keyword -searches, so some meaningful text here does not hurt. - -

-
-
-
-
This class has no child classes.
-

alphabetic index hierarchy of classes


- -

this page has been generated automatically by doc++ -

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de \ No newline at end of file diff --git a/samples/help/doc/aindex.html b/samples/help/doc/aindex.html deleted file mode 100644 index 7f7746ce2e..0000000000 --- a/samples/help/doc/aindex.html +++ /dev/null @@ -1,21 +0,0 @@ -Table of Contents - -

Table of contents

-

Classes

- -

Macros

- - hierarchy of classes


- -

this page has been generated automatically by doc++ -

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de \ No newline at end of file diff --git a/samples/help/doc/down.gif b/samples/help/doc/down.gif deleted file mode 100644 index fdf028aff360031c13d0aefc17067c8debd72185..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1939 zcmW-g4Nw&48OPt__*ghU7AkNcRSq$@e&8)sVWW~`Mbw2fxS}Cz${jYV=Heq3lnFQT^BOp_cktvEKF>$T6!JM(|% zKl9A<{QmE|a&>ii*~UUp2qplC#bOijibiA6Xfzy-ghG*EFk~1KgweRr^`NGisw#`3 zBnTqU8?p>JPKGe3D5fk+Jg-1#h@vJ4D#xiTt1t|rD2X6sf)H?A!f}XU5&$9q5C8!H z9smvi761kSM3FK@Y66dFN}@=Ca2QC^M5sYQ=2)I^gf!JuWL1Q+z)Ktp85+`*CW(mW z6ov{LdPvuTnyMj5h5{0JfuSXyLo97-swD7`V+|y#kT+CC6$Oc7c#6;@h(stsA#7+N zT{RRWatvhYSTqvU6jPNoBqD*6cvfJjiAXqPXtF4nnqsJO*icmzN5P3a8`NaTQgI)0 zblB8_x?*aw5w`^n@~p@+NMHn(2Hx;CWjF6!kK`p3CaSo;e6`4UC&N6_OStL>rl7c|+oSkJbT8&3R z2?ELU4vw`mx}?cG5*Y|-L7?Kn>6)a<0#aeTk-=iLq3AM1oSk8DngNul8Vp9!fRq@> z6D(_|DL_Qy&p|g4lu&$QlI86Thtni*NP?(9BnuLX_a`}lV0i~a140#LO;SXfhZM&X z42zL*S`(3|E~_d;iXcg>z!5Zq5gbOcfQW>`GB2|KyAmvL=tv2hL6H|U5g|_C$#{-B zf}+T9EU+U1h82wmc2iN+cnA(MtQ$d9V*##9NTXRE;AUJ1P~`=M;}wF^1*pe0%ORSP zNJ?@L$U%s>9pQEeFaW^(_=*37LIAKBuwZ$s@b;Mi`(X65lL3da5+3 zw4!!S*9$W$QY=5HEqD25EE9uEhq@n~Sp|xgCD;R9Ep)~1LEo{ut~0LXM*`{KfqV4E z{DP@J{wOChDK|0k{od4!!diU0->Wyzo^(S0NlUms_0}`qlXJHPujH&9-Dgc%^KrLE zS7(t8TGLl|zt}QNZpSY>drHhB>&lkDaow@9>+r}W`r^0m)aHcd&uAGu_x$}=Hr1D} z)!PS7d|2{I8kXUefQ+) z;|-r>tb6}f@9YiTYNE(qKbO?(A9~}&Q-a7p651xkv!?of$_nG7xHJ>;OOeU8p7hf|EWYYkdJ&6brex5gBZ-GR~{5eFvS(Uw`Rl#rj=4s;wi_ ziUz&EZ7S(p^y!GVX3j^w?2&@uE+?J#k2$fSYgwCGhHaI2TiNlwr*~!yI!}YKL)0v} zZa>Ir@+TdrnnQFgdgoG~ZNZh%f2A$>RbqbUbF+NymYLrTj~&RKOWE4XJBR7iqVA#l z-~Q(5Yt7zSw`*Jb7N@v5H0t{IvvjqUI{yj|mmW*;kjQoQh8&~9@aI@@mn<2Tx? z@E84~QJ1@I`5^+`$pFAo|6pL&iI+1@Ef{>5aARhND{!#F-Lu=woNjAL$}Vetb8xoY za(~qV>)qzg1pr+`qt`MNKs3Q65Bw6K2-T>mN*6 z1F)t*;^Wr3t!X)+%VJwBZCsbMY1hVWZSKI1xAEHZfvL+L%hu|ZiFbh2a<|7XWo@k0 zq-@IS_e|%`UU)s1|2nTfy|{ho=#sIXj%nbVt^O602WnVZroQBQeE;4%{LGSaTjo7pqI%7I;{$7!J83+9o;dysTV|Pb( zJ$CiOe~yBZw!X~2jd_Z;es*~4=F_>2!$}1_W46Z2bo%dFJw^6?SheqD!k(dyqNNtw rmcP^4!}mPJt=G_x0+#Rh25ywUcRJ<8faR%o$m75(6W*SLfhGS1eOy>- diff --git a/samples/help/doc/dxxgifs.tex b/samples/help/doc/dxxgifs.tex deleted file mode 100644 index eb32b296ef..0000000000 --- a/samples/help/doc/dxxgifs.tex +++ /dev/null @@ -1,4 +0,0 @@ -\documentclass{article} -\pagestyle{empty} -\begin{document} -\end{document} diff --git a/samples/help/doc/gifs.db b/samples/help/doc/gifs.db deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/samples/help/doc/icon1.gif b/samples/help/doc/icon1.gif deleted file mode 100644 index f78f30eb981225beb16035974453af044eaaed3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ?wbhEHbSJz>XZiWhW+$CxX1K<{@Q;PzA3MW)Hil!>)yLQv z&I+YZWR4Dq0Qrf5 zE!m-=z(Yr>|42iEfdETiOVhyu2Ne$2qlXS;Sjcg9G-()EC{6Ng4B9Bb&hGxWX`zGB ztnbe@Mi#u2t#oD*5s{NGS5Q=P;Sv=Pl~k5hQB-wRQ&*Q#oU7r^r6eV#G~HwQ3KvHP FYXI`hOxged diff --git a/samples/help/doc/icon2.gif b/samples/help/doc/icon2.gif deleted file mode 100644 index 6cbe01a831d9c27158ef1ade66cc25446fac9018..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 326 zcmZ?wbhEHbvUV_sg0vVRlep zUT#ibUH$CLjP97|8hg8t^_%zaId~E%=;f7aZRKxk>swYjH7c^q#Kc`$*&sZ;+`~Ol zL*3NdE7jE{7APVst6^&DtgCA)C##W~TG-k;MN7*vC@7wR8bI+U3nR!J9S{NX69Zea zLqmawj#U4Vh6DovmcEvzg9Q#M9Ii(X9muedZ+!$E~PkE!<|b>N=j+E$MO{}jttfS DX0}r~ diff --git a/samples/help/doc/index.html b/samples/help/doc/index.html deleted file mode 100644 index 7f7746ce2e..0000000000 --- a/samples/help/doc/index.html +++ /dev/null @@ -1,21 +0,0 @@ -Table of Contents - -

Table of contents

-

Classes

- -

Macros

- - hierarchy of classes


- -

this page has been generated automatically by doc++ -

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de \ No newline at end of file diff --git a/samples/help/doc/logo.gif b/samples/help/doc/logo.gif deleted file mode 100644 index d92bbc60a166c8658465cca1b21293d5a03b50b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11338 zcmWky2|Uy9AO9LVuuHBv+oD{_=3Y`W_fRt>EoDqOMy9!nYM8l3jwuy2Ig+R;XXl(D z$(2;9Mde6Z>Co}Z-~aV`UeD`!KA-pJcs|ePdA&Z*$KBJ-o)|0w_`pv9SY2J6n3xzE z8tU!sy?5_kLqkJ#b#+-;nNTPc2n5N=$wVTNKp>#eXc!E(#$eLvGzx`6Ca+Pe1p+38 z!bGDvX!M#Y4#9+Ff}@$>l5uDOi^;(N$v7Ab1MpZ(7LCF&LDR`ZCUFge7P9EcCNM!V zCz*g|;Q$tem`uhc6JQ(@AelzwPzZDahHQf2kZ~*mj7LUuC?*^-hDAj4$gnlTLIH2h z2_g=bOonlY02&5xD41jlT9C|SQcQSsTrzEK3*(RhCXL9W!H6bkCY_SZBqq~wbTWoR z!>}l59v#i&(1-*ajf~^aO;|LXfMr4>!kA=0z#;OO7$FNSV8U2*LNe2Y$3&9}YYtNc z9Ft@wPRPLsSZEvu;H({tY$8Y|bC?7=1;e5NLLP-lLzgA5feFH7jDUj{CZmNsq9Az< zhD&B)cpOYJYt8i9fYB&xESO-8%fkr;=rSRC?Gl=s|9=S_4y&w8uoh@0lV)Oq<8bIg zA&W*MvRGuHkWM7x=yU>wf}zpS!ZNzBjKvesImr|jhb%1PlvQ(*c{C=AOlJ})YY`AK z%Nml)8rDc;8k0t*QF@1l1Z!HDOc)xyhNG_yRx$=>f-zac(@h9O9D$4>Pyig6KqR9v zH~>c>km+<5kI4~`X)GLplFVBZ=Mc#>435APl;KQ>7!wK_M+VRYfpE>dfJSFgXiO6V z8I7Z0a73Ph zU>Fz-2ZIp+00#hT8BBlyCNKbpL7ULl6w;Z%8snFO8~|W|&1-Am|8D|-tpWs?u7_CE zkq%Qe4eS$FbY-FqC}kdvmwR%Rp)h>dcRN zS{Hh?Ne|D+0w8ko{z`h3Z*KwT`;3muo@1M=gRb>{KYx4?(;5wf6)4b~u01P}hhx23 z>S}H@_LpAYY8xLZJ~&ht`Ld?rO7D#%bBKD|&v(F)2ZP%kJ}e%-*(FZN(`kLYf2wXs zmm_J1G$5LILSsASda%FFUQug69c ztX!s6p2;aRnQYhC9AL#N9cL%|=Y z%!|jyy`A%{XRwudz*20D3dn2Znc!r{?x)HpH&2{J*cn8Gjyi#K(O%|nuw#^Hw0|Pf zdxT^VYIeVDIgglGKDIw*zG_Uz;eHb+7l)e$ueTF7(Vh}s$353Ido4Epu>ZLz4cG-@ z+YI~GjMKaS?4GQw(q`*N3@dRqsv8vZ zqf>WUp2eCV@WhE`J~oYW6SqggLiG=)!@hZh53GOi|#jfp+->4t1|-@hfbvLw3G_vcRulT zo)`$dC7ZUl(7MTK%h_x@gQ$2=)s;utDECy=9m?BsJY1pd{JIVQHjVvwIc&((^N#s! zoM-;&o4?m^^FwFr?cYd&k4*267wvreIbmLqK;8R&(5j(3H}}TfK}(;i{O?CE5dt@j z&00VMLdt^Dpvd zj(>ROvE~pkXyCARP}3tSp)mW}?rxK?cOY$<2#P=WRw=k?M#sp@UG>@*7lr%I8UtW#Hd4_!X#4r2H=lfETARD9a&f)Z;ua5*h*$@s0#`kL3JU69l(8GkMq_}u++re&MK z!65=~9%Bh87}jt7P~b`5;NkS~Jz3*MLB>o?M{a_>IaA6AAsFxL=M&Pk{aw&$XN-CS zoYEuHpRWU#S9E;XXutz2zR9hV&*iN2QNLRUHL%-PcWJ!7YC>f_N~|h`M~g@K3R+zI zTHo63xa{K>cV7YH-1Fk~sJgBF7>7xxGn|61Q!bV61YSic`^Z-<)$t*9o6@%K2&(^Q z>nz;Sq}^q|!GjRl6dt^;3RK zyRc~AWgGX>_ijyvAOM!GDG_Iw1y&#vtDtgSfvR%r{A)RIQ?1DO!7tbCk!SYAoxe|Z zqwgn}c>fotSHj!9PcwZ0`UzIOP=yV)?z;(E1;Ty!#?+#KfG2nUWr;Rdc?yqKbj);Y z%vfX>IU3J%A<{|=G$q6)C-`)zF5{{^G0$%vTwiqYTT-!-k%RuMJ+k^~CUt(n!gQZ< z@fo$Wh-RN_-KC>@BgFpOO%QTr2^WrbZ}PnV_~XG}N?l1Mje1`_@Jmr&PNc>He+U}KBlKbQy=J3Rd$gV;*?y)Q zsz~*_q6Ir!mV#ln`oy!=c_`# z?{snZ9C5lxbv%WGpLA&r{w>aQtUqkyIm^@+YHaMk{$&eWREcSlxY_06BIv_py}1=v zTM!qBG(3AJovc>ib9-}S_Y3`-*lU>;z9X;kzqI!s#yHwHZJtna;FB%g{kI;qh#<+g z+&V$^Mv;MsNzP%N|E*XDHs)(27VAG>?e*_$_eLcb3~GO1pSR}YC`l5gzE8Ki%}wvz z{Q)zHZ%UQ#nO=AoVf@<(@alc=wxa*0sg~v){pU8<|2rK7e>rig#?v~$spv^tmB!*E zf#UNE9&N}2qKLgLQHSl&?aB-6(+*wdKPn{$LABcY{#ZvoyAZsYskJop)%>tZSL`(NQd!UQ4!mhn-=ti3)ztcvhOxlT(-Syq7#=Dz}EX2YmI!{Kl zqa|Zlz0W;_sZEB&)9HH2#ST+?V&vY?uLm5`Ap1_M{+$xJ(ZWT%@^}_qf!0lQ&&Q%Cf6-3dA4oAni<_E ze>9!Si9Sg{j4%At`zS)f6;kjD&UTd>ABvTaowak~AO>3D%V^ZHEJQ3uElUnaE{9G) zqwTs9nw$(VeL=otw_`?#J9xyqu#+$sWMq%_V*}L>5+y|8CRm0XAFF2Y#_Px>NLt5SDLDE3Bl>zh>obw!??nedF|Oh1>snH76S#EwtD zC}#%{#-y96E_WuI6HnlvjxMl<9r?FMO**&AR7XV z4q2bPi-qs%M&T8LHZzT=wDfhp2F(Dx6OSOw26dK3W(SzP^uxZ9<}AvTuh$yL-p4k? zYZN1`F2m#Y|sNK(oi1d=UM1~75U?G zV&uM@Be%S!BnTxD(3%J+h>%WWTTXnni6ojW*!xTrL{Ao=;^q-k!y8Aq1?;El8!Hf< z0DMpcPwz)MRASzfs9EO(hu)b*_9@j$5PBLWU3_?R$gXD6xikGJ+q0-$3D))DDS^Lo z$5;E6vhe4XxMV36#^<^;GmR15S&IQ~1y+a&?Ab{MYDq?ayC>H33?k89P3EgSE;((# z0hwEIVur1MovEjIPB3n$+{aadO7uZo=lUN}MPY_>Xw;+x{vv`S8!jIx2wf;W*8I%2 zAQNW#!c+?E<8vKOx$KZ?Ueca6Tf#=XIE-jmE1J^b%a{3f{TKLRQ}tzm8w7c)5Gj)) z7p0r}kCkUa)Iy8NL@T7Uz$T~|`3dd+je(E=mvQG&eoT= zRK0PTQo$bd6&zAxucH$$SmK7ki%|=*YMc^kP7FxIB_>+Vf4a7&^dU&8z~V2n%$sHB z+%L~LU3zgCwIWq&$M2+!=8Q8kKNs$oTn^TFhwQ|{2k|J$^V1pXB(BHRPIMJ34VY!u z-0;Qi_eA{Wl2#<}pgN>7L#djobozYJ9Z6l{bX{lS0Z;+ZHf9LVIi^#6X3h!mReWug zglw158$`I{t?o&M#V$mPSvEqGR=Xgn9~Z$pi4DR!IQRA@Fx$}WOvKDtoM|6kCPK=v zipBVwRbn8&hnIWKOW#C)>8I*TYEiBKp3*CcJEzTlubM^(tKhMt+wL`TyT0f{sM!8K zL(R+eh&%N>^+uO$PxVKd&UMa+IGsB!I$vcj-|%%sRK-&=XbD#FjSJ$~PeQ61Vym&? zY!pe#%e-*q{apvROX9zd%zSyQ4qg);#IlZQt5QFOaY(gJv<8~K4Gk#NV* zySBt@8u?Xvcz?^DTaAfY)5zDdOU!h@Z?~R}*CmUvwvrLSx(kA(;a2NT#HV3u`(c~A zv1@^L_*>c@=%x5h+P<;Yk$^+k6cheQQRb_xbkKmIqTh+TZ(AT|8QMoNc!@|d}H4C`+TI=>c zU?@qYsH^NVzk2R?cN#uT)K41I5$oJh;iDc5Bgi*vvEGO%?R|_9i+*F#&NPH?%LCVi z2gQoYFkkPK%p}O>&gYlS|4JovFGchsvNzM>%tquJ8R9>zv1h_ht&`;M zh`l_&| z6F9p}>ORHjK1Bt4lqFKO88?f8b*p%@F%f{>01V_t-ix(3@U7W#bE_S_RmMide7zq$ zsQe7rc#o~|k^#`=wE1kM@G=!BN%%{f6;qEKrxO0Lb`6s1V>1AmhV{3v%Ez}Mez8%V z^(Yr_MK^CnffV_sJ?n=HR#l9P`+ibhjM%-cpVCrwthi@36)~biX$F)(0Cz4VB7D+} z`T)5|2_zT~b|-f`ybTXrS!Jt4-oeFB>)fu3{<*F0NAj*cPoJy?dM}_4r4%8%Ny>9LRA&mR zdz)NupyB~Dcm}*Rv<*Nx%6V-?h)vNoZu|!l!%aCYAt345i} z1Hf}+h!<|~N5fk-O)4Cafy23wJ9C%ycY|gT zJo#8d@v6`B=f|IS7d&UrkC%MWd6a{EbelW(1>rB2zv}bS&IC{b+JDmaJ;0%wPxOa5 z!pB?>yl_+QmYHp8Q+|bpSVT`H=RG^|3Iah-%4QJ5j#}{Vhtv+EvXtNw39?D(M>ACR zNpA2^c>P`))6K;_6QTY9XJ>t$Kgwx(a?4Pe0WK1+b%j_<)UBWnC8FA`S?+7i&Ns1M zmsUTG&$%fp95mW34@o>R)&FXAD;B(TcVGwZ?P8zd5BB75*;(y>2BZcxx$!B*jn|gx zxFY_v>3vi;ym4R{x#jig&^nw01MDw`*bV^>62&s9YTH|*sp{&T80(!`cD82XN!gp{ zt2Bh8rjYVl-c2^@Cj*;1&i6cqy2zd=$@RC^rOp?;S8I7cv+!R3BK#)zZebqK_t5AQ z_H6k5>0iUhsMjC13@MLc<#rB3%*-M2RA{mkoWOu`rO;5kl}8A&qy!nApMt9|DQyjW zIgWQfnLoniQI06l(DPgJAp5w`M22D+S5ZM(g_vCs@NZu9S~4m=zM~U+Q`F^<0`!F$ ze@~eXsh=*JM816d!N~xgH-Zn07MeU&gmSzCE}FVc+Uw(SM{1 zj|1oP?f{Lsl23)wPi0so?0ThFHa{_SpU%;Lx%dp~A5sVw4K$C*Dh~&3C zmKKlzn`kvY@Ty_`ckz0{@-Q;X_s=4L`ggbMfw zUrBuT##i-m)nVb7WpYh|d7L+=rhR_>aoJUVX?V&nu<%((Zl0~)nbPT&sW^F1rW&k3 zsjUuT&p3ZQfoM{mP;kec_(AA&xM8lSg1`0S^{@EyAj;NR-KDP;FnmWZC#y6B-pxNB ze!We8yJ7Jl({n4fu*UF74l8@d>NW>=jpNebnv194p*1?NKn~h=*LL5IT3B?KkDYB0 zHx&x9uU9UKNNBuepTHxiTsl5J>N6{hN^WdaEzO)@MWp z=iwvyiZ`{Rq}dSA7TGX!x8skw>G8FRsi@*X`_?-hX_9|!`g#RKGomOWqkPLNU!y!N zQP$;L{6O5WYG?<(&Q|eR=vb$2Qh}4#oAX1sx4PqBzM9>ab~4bx8$1<&MfHY^Kaq(WONKnVx$eKFkESaMi_>w5b{Dv$TfF;j0} zZdbFtkh%_1Zfu>9eAOZcaqP&UyahU(P%zv9F_;wdRCkhz-G>w=8<&Hl-rOUG#Z)`- z!&*y!Wpvedn;2?v^4~l^;@s^=iI>~A7Fga+_>c8uvJm3m6kJzs zm9!G;JX2k|&^dD&C#U~hhf3mUE8I2$x^;PY>&hKmTg0dUsoL_=c7 zcczY0p_C6DC^K2U$x-FkvTeS1XEs{+9Gc`A+pDZ*drSo*k4e(njWdCWfX~5WD?LBj zX3djIEmFkX%s^y@Qus=zrdiq^LN~2|HCc&)MP&XJ1nd~Cm&e>l%D}g=GynaHVeKeQ zds!c@;8$fHZ5j*Rp=N_RG0ubsO-_C$Llk|ge3LGUQomemw%NjCBiVmC*VVFfA`}@q zZPW@1J;|!9gUTOq>LpHp)zONmRBsrrARcka!?k?Yo;2n=S{rOFG46l`|C{K@=Ts*?9`Rb{lGo>a95Ce8~JFm>+_mswx;72xQVJA~bC z)>~W=ie*lgMeTi>eK>eBG%vN~CUfA49TY?Ps)}aNRys1ta1# zoXd-KH*7okr74Ezg!CVu)X|l|3a7S&0?np*80I<}}GIw*6$t@$G`K^CpwOqj|nch>4FcXt#v2HyYuy;a^= zVwL|T_@j2qolG2r0G|$sk{albhIdgPIY5%WIA2O))a}1Aw=cBFm&qNT)cT4|V}%<4 z3LX;s-!I-=sOmr^uNtSP5_1>|@^TRQl}~%pl;2KYUi;J3;cf7PRVNwlquEN73J({jW0%Ce z_%p!>x++uaS8->#jctbg-?u1X8%TeEp`c*#7HWX)+GzV_5qWT2B_F8RCAkwZo@WF$5)ePYjeI=` z*VnFo&x1>o45SZ-aYV#P#6j#|?IwMQ#R@sUdb-2$Ds9jD!IKGuI2@{PCwu=Xyn+!Y zjuj>HQks%NJa?z6B%gNv%--p(GsRWP9;TKM|2tw+?4tbzgLW+XqnvUhOWVAMB3CsO z8ME6_?^f^aQ!PvR!QPd6zp9a$5MJ3Z)IuN_v%#Kg8>s{BlKZt6|(i$ zpIiJ@=}0^1mFY|t#CqD?q4$kN`=W8Y?bSxa*+_Y5{oyJLrPs(+s=>z=(DdFVr+hr7 zLRmLA^4A^7mqMrKr((D~#cM}%T;^~;6DA$CySdW!Wp^5)wvu=Ao>au*Gegmt85K3h zWfwVDawPBj&2xoD4mj z)Klb**bjbM0aktYe*Xd4{*o)dCZ}qD@xQS=qq)}ATS`G_=!H%d{#H_qCkY&PKPszm z53`wxHqyHcQTD!Y)Ecth`{V>#t>2i%IsvWgQ?8cx>2k!UH+<8Vd6FY)Gvvkja>iDQJaR;7 zXH%ier>=}bai)1nn$b!pe$nNEs7WTp17_wXjBR)da-*I-JQqQbGW$57%4sLX9&YsgNU$5y5?C!DtV#p^h^e zkS9TSQ>L+&&CpG!MHX5Q4U)&-T{Yk? z%Vi!#lg!N!x0}2^9M28Hb7SrKhhY$-D7VNys8k4D4aR2ePxVNk4!Y*>uWn1LqB@37 zYp3l48Nwd6+?3M^Pu0mvUB^vTo#U#BxGu)r-9l9mTVaQX=ZNmP>+@a7iv?fhpwD*a zP2N?!9S6MxKO4aX`wu@pY=4V=oX;7CO4SDWP3r$iz$IDySnhyp8f2Y4NZVe^i<9ag zOfwMe)I`gp3{<3mi{F~#iPiqBb}WMPVVvN~qKk%8IvmyWWb{IvD6 zfK@XfJQ&VDJO_6D!Vi=2kM==%u${-md=_c=Nhu^e2?Fu4S|>?WkpUqHjb=sy0?ni?HL%Cs{U#-mMX8QzTI&hR1XAgE@-+Myq+iG zr?3ix*!)-D_(1_{Vp|OyX`p8Q$oV4wz6@g@zJdtw@=Dv%76o3sR9u+#mHh4o`7|CeZC05j&n{($Qx_OS73U zNRY9yi8ntM4N1n2%Jo1tx>B=JXr9r-QD{J=M9H+$62#4T3xDeSejxwdz{xCrG@jc$ z`1Gd%*Bf|ztlLRL#09Oi2fCgO4X+BqXC9kdH!6azbdY1uWycz4COn4=sW53bKZRXC zY~`I$dX*Io_Ln)W-e!O!sgPJbzlL{|Q!>6NbnjUl*GHOeh?m27q{iHZteB2{uAZd{z7y4kFk%-ZBq?A>a^{@r3x5(Mw_5qs z3Z$ffTXW(??SGVpJv~?d+kbl!62v95(a?uXNaV17On+vOWM4v?igzT;oc5A_r(B4o zLtG(IX1@BQG&8EgJ$1h;uPB-UsYu!Wjspjz?AFd`H_o(D1S3$I5*Vwc)8C-7yE0IS zg&iCwt(w0eWk*wkL@yFJp!{QL##w0w#;;J3 zZv{oEG>$w!L!A(=ypopl{Yy=HzGZ;$2j!%xcG6N~GziB&XeD?(-*E6>4>wwJu-P~u zkS#o+=%JB~3_$BV89rdr0S?65dm6qt>;j3Nd^1NrXl)Pr<5+C9TkgM4LFgsd%I?<< z=M@iy2L>nUIvqo zmhzG@=44%G$w(}a$tu-8F5cBrJKbDR9-74uDK9Tw0WZa8?=#4XkWw?MCV#$n1+mjs zHv%EZ?amuo7zX#BffyN_NpQG~kJ7mUq*Tepf*Y@f1SAD^jfPyuT(~Zk;5BCa(W9&1 zGRE(^zq|nYW3HsO;$ilki;@9ol7fBy%nn_^-2oawy*2$u+)07Nt7MklRg7PmX~AEg z{$qVTODjSOw&Pg6$$*^8*&oW51cK9bYe$vWI(x%hr2S#9YOdaoce}O#71{5fduE1* zgPTkBIOxp%A%_|ZAuR=VHahR7)APP=&p)(DS6@8tj0K#B3!?WN zIQ-8!E_SqV!v(tJrOrqhr>(361c9z(1{55)PR(sh;Wz6g$g zP_FG*ECaklA)?|#j~pJTC{)*0(bLgVOh9MS11|4n+@<%G?8(XxDuo;v&hW>~{*#^N z-8mG2x5~YEJ$9I%pdZ)qc20W?%p+j1@r`lbR<=)n0-_=fjm(p+h9zg^5QF4a_9| zo)xo+BhgK6YA+86d4vrkBe=v`{B~7-kT@j3?`r5A|IO0rV9dJZ_Pg7DWDM;&vb$Y|;h3HWn3v`;;jkqN!NPL>V1YPJ+k;@x(Pk-u`r{pHyt zoX&rx(GlEDh;a$~--j4|MU#r&d!y59pEQ3G5J_aCA1Z;+knP3L9@mAcGnc|8;NLs5 z|J2B0^slNN*ZtV|x$XxaH1`f26eZUO*`5xKVn7ZJpH|b<3v8P&Ns7f>VTTTfXk1;0 z`)^L~(os2X#(K@6J04%oOlJ5em7d&p6!WB}@mQe02N!ke=&JRps|kJ3Brf#mvCr4| zec?%bf5|3%*jM$fnb86J^mcLHPgJfyrTAYsZOH!UdCT=mF>~s_lp=$nMN&uGvJ_;C1n!J -Functions - - -

-Contents Up Previous Next

- -

Functions

- -

-The functions defined in wxWindows are described here.

- -File functions
- -String functions
- -Dialog functions
- -GDI functions
- -System event functions
- -Printer settings
- -Clipboard functions
- -Miscellaneous functions
- -Macros
- -wxWindows resource functions
- - diff --git a/samples/help/doc/wx34.htm b/samples/help/doc/wx34.htm deleted file mode 100644 index 9c1fa6acde..0000000000 --- a/samples/help/doc/wx34.htm +++ /dev/null @@ -1,349 +0,0 @@ - -Alphabetical class reference - - -

-Contents Up Previous Next

- -

Alphabetical class reference

- - -wxActivateEvent
- -wxApp
- -wxButton
- -wxBitmap
- -wxBitmapHandler
- -wxBitmapButton
- -wxBrush
- -wxBrushList
- -wxCheckBox
- -wxChoice
- -wxClassInfo
- -wxClientDC
- -wxClipboard
- -wxClipboardClient
- -wxCloseEvent
- -wxColour
- -wxColourData
- -wxColourDatabase
- -wxColourDialog
- -wxComboBox
- -wxCommand
- -wxCommandEvent
- -wxCommandProcessor
- -wxCondition
- -wxControl
- -wxCursor
- -wxDatabase
- -wxDate
- -wxDC
- -wxDDEClient
- -wxDDEConnection
- -wxDDEServer
- -wxDebugContext
- -wxDebugStreamBuf
- -wxDialog
- -wxDirDialog
- -wxDocument
- -wxDocChildFrame
- -wxDocManager
- -wxDocParentFrame
- -wxDocTemplate
- -wxDropFilesEvent
- -wxEraseEvent
- -wxEvent
- -wxEvtHandler
- -wxExpr
- -wxExprDatabase
- -wxFile
- -wxFileDialog
- -wxFileHistory
- -wxFocusEvent
- -wxFont
- -wxFontData
- -wxFontDialog
- -wxFontList
- -wxFrame
- -wxGauge
- -wxGDIObject
- -wxGrid
- -wxHashTable
- -wxHelpControllerBase
- -wxIdleEvent
- -wxIcon
- -wxImageList
- -wxIndividualLayoutConstraint
- -wxInitDialogEvent
- -wxJoystick
- -wxJoystickEvent
- -wxKeyEvent
- -wxLayoutConstraints
- -wxList
- -wxListBox
- -wxListCtrl
- -wxListEvent
- -wxMask
- -wxMDIChildFrame
- -wxMDIClientWindow
- -wxMDIParentFrame
- -wxMenu
- -wxMenuBar
- -wxMenuItem
- -wxMenuEvent
- -wxMemoryDC
- -wxMessageDialog
- -wxMetaFile
- -wxMetaFileDC
- -wxMiniFrame
- -wxModule
- -wxMouseEvent
- -wxMoveEvent
- -wxMultipleChoiceDialog
- -wxMutex
- -wxNode
- -wxObject
- -wxObjectRefData
- -wxPageSetupData
- -wxPageSetupDialog
- -wxPaintDC
- -wxPaintEvent
- -wxPalette
- -wxPanel
- -wxPanelTabView
- -wxPathList
- -wxPen
- -wxPenList
- -wxPoint
- -wxPreviewCanvas
- -wxPreviewControlBar
- -wxPreviewFrame
- -wxPrintData
- -wxPrintDialog
- -wxPrinter
- -wxPrinterDC
- -wxPrintout
- -wxPrintPreview
- -wxPostScriptDC
- -wxQueryCol
- -wxQueryField
- -wxRadioBox
- -wxRadioButton
- -wxRealPoint
- -wxRect
- -wxRecordSet
- -wxRegion
- -wxScreenDC
- -wxScrollBar
- -wxScrollEvent
- -wxScrolledWindow
- -wxSingleChoiceDialog
- -wxSize
- -wxSizeEvent
- -wxSlider
- -wxSpinButton
- -wxSplitterWindow
- -wxStaticBitmap
- -wxStaticBox
- -wxStaticText
- -wxStatusBar
- -wxString
- -wxStringList
- -wxSysColourChangedEvent
- -wxSystemSettings
- -wxTabbedDialog
- -wxTabbedPanel
- -wxTabControl
- -wxTabView
- -wxTabCtrl
- -wxTabEvent
- -wxTaskBarIcon
- -wxTextCtrl
- -wxTextEntryDialog
- -wxTextValidator
- -wxThread
- -wxTime
- -wxTimer
- -wxToolBarBase
- -wxToolBar95
- -wxToolBarMSW
- -wxToolBarSimple
- -wxTreeCtrl
- -wxTreeEvent
- -wxUpdateIterator
- -wxUpdateUIEvent
- -wxValidator
- -wxView
- -wxWave
- -wxWindow
- -wxWindowDC
- -wxWinHelpController
- - diff --git a/samples/help/doc/wxExtHelpController.html b/samples/help/doc/wxExtHelpController.html deleted file mode 100644 index 68d3ec7678..0000000000 --- a/samples/help/doc/wxExtHelpController.html +++ /dev/null @@ -1,180 +0,0 @@ -wxExtHelpController - -

class wxExtHelpController

- -This class implements help via an external browser -
-
- -
-
-

Public Methods

virtual bool DisplayBlock(long blockNo) -
Display help for id sectionNo -- identical with DisplaySection() -
virtual bool DisplayContents(void) -
Display list of all help entries -
virtual bool DisplaySection(int sectionNo) -
Display help for id sectionNo -
virtual bool Initialize(const wxString& file, int WXUNUSED(server)) -
This must be called to tell the controller where to find the -documentation -
virtual bool Initialize(const wxString& file) -
This must be called to tell the controller where to find the -documentation -
virtual bool KeywordSearch(const wxString& k) -
Search comment/documentation fields in map file and present a -list to chose from -
virtual bool LoadFile(const wxString& file = "") -
If file is "", reloads file given in Initialize -
virtual void OnQuit(void) -
does nothing -
virtual bool Quit(void) -
does nothing -
void SetBrowser(wxString const & browsername = WXEXTHELP_DEFAULTBROWSER, bool isNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE) -
Tell it which browser to use -
-

Private Fields

bool m_BrowserIsNetscape -
Is the viewer a variant of netscape? -
wxString m_BrowserName -
How to call the html viewer -
wxString m_MapFile -
Filename of currently active map file -
wxExtHelpMapList* m_MapList -
A list containing all id,url,documentation triples -
int m_NumOfEntries -
How many entries do we have in the map file? -
-

Private Methods

bool CallBrowser(wxString const &) -
Call the browser using a relative URL -
- -
-

Documentation

-
- -This class implements help via an external browser. -It requires the name of a directory containing the documentation -and a file mapping numerical Section numbers to relative URLS.

The map file contains two or three fields per line: -numeric_id relative_URL [; comment/documentation]

The numeric_id is the id used to look up the entry in -DisplaySection()/DisplayBlock(). The relative_URL is a filename of -an html file, relative to the help directory. The optional -comment/documentation field (after a ';') is used for keyword -searches, so some meaningful text here does not hurt. -If the documentation itself contains a ';', only the part before -that will be displayed in the listbox, but all of it used for search.

Lines starting with ';' will be ignored.

This confuses DOC++, so I leave it out for now: -ifdef USE_HELP: public wxHelpControllerBase -{ -DECLARE_CLASS(wxExtHelpController) -else{ -endif - -

-
- - - -
virtual bool Initialize(const wxString& file, int WXUNUSED(server)) -
This must be called to tell the controller where to find the -documentation -
Returns:
true on success -
Parameters:
file - - NOT a filename, but a directory name. -

- - -

virtual bool Initialize(const wxString& file) -
This must be called to tell the controller where to find the -documentation -
Returns:
true on success -
Parameters:
file - - NOT a filename, but a directory name. -

- - -

virtual bool LoadFile(const wxString& file = "") -
If file is "", reloads file given in Initialize. -@file Name of help directory. - -
Returns:
true on success -

- - -

virtual bool DisplayContents(void) -
Display list of all help entries -
Returns:
true on success -

- - -

virtual bool DisplaySection(int sectionNo) -
Display help for id sectionNo -
Returns:
true on success -

- - -

virtual bool DisplayBlock(long blockNo) -
Display help for id sectionNo -- identical with DisplaySection() -
Returns:
true on success -

- - -

virtual bool KeywordSearch(const wxString& k) -
Search comment/documentation fields in map file and present a -list to chose from. -@key k string to search for, empty string will list all entries - -
Returns:
true on success -

- - -

virtual bool Quit(void) -
does nothing -

- - -

virtual void OnQuit(void) -
does nothing -

- - -

void SetBrowser(wxString const & browsername = WXEXTHELP_DEFAULTBROWSER, bool isNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE) -
Tell it which browser to use. -The Netscape support will check whether Netscape is already -running (by looking at the .netscape/lock file in the user's -home directory) and tell it to load the page into the existing -window. - -
Parameters:
browsername - The command to call a browser/html viewer. -
isNetscape - Set this to TRUE if the browser is some variant of Netscape.

- - -

wxString m_MapFile -
Filename of currently active map file -

- - -

int m_NumOfEntries -
How many entries do we have in the map file? -

- - -

wxExtHelpMapList* m_MapList -
A list containing all id,url,documentation triples -

- - -

wxString m_BrowserName -
How to call the html viewer -

- - -

bool m_BrowserIsNetscape -
Is the viewer a variant of netscape? -

- - -

bool CallBrowser(wxString const &) -
Call the browser using a relative URL -

-
-
This class has no child classes.
-

alphabetic index hierarchy of classes


- -

this page has been generated automatically by doc++ -

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de \ No newline at end of file diff --git a/samples/help/doc/wxhelp.map b/samples/help/doc/wxhelp.map deleted file mode 100644 index 3fdaa8f48d..0000000000 --- a/samples/help/doc/wxhelp.map +++ /dev/null @@ -1,15 +0,0 @@ -; -; This is a sample wxhelp.map file for a small help application. -; -; -; First, some wxWindows documentation files: -; -0 wx.html ;wxWindows: Help index; additional keywords like overview -1 wx34.htm#classref ; wxWindows Class References -2 wx204.htm#functions ; wxWindows Function References; methods -; -; Some doc++ generated files: -; -4 aindex.html ;wxExtHelpController: Table of contents -3 HIER.html ; Class hierarchy (very small) -5 wxExtHelpController.html ; The class documentation of wxExtHelpController.;brower viewer diff --git a/samples/help/makefile.b32 b/samples/help/makefile.b32 deleted file mode 100644 index 98bc1c286f..0000000000 --- a/samples/help/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=demo -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/help/makefile.bcc b/samples/help/makefile.bcc deleted file mode 100644 index 92098318df..0000000000 --- a/samples/help/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=demo -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/help/makefile.dos b/samples/help/makefile.dos deleted file mode 100644 index 64d28581ab..0000000000 --- a/samples/help/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=demo -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/help/makefile.g95 b/samples/help/makefile.g95 deleted file mode 100644 index ac126c5ce5..0000000000 --- a/samples/help/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=demo -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/help/makefile.unx b/samples/help/makefile.unx deleted file mode 100644 index 3f9beee001..0000000000 --- a/samples/help/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for help example (UNIX). - -PROGRAM=demo - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/help/makefile.vc b/samples/help/makefile.vc deleted file mode 100644 index 3cbe3b33c2..0000000000 --- a/samples/help/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=demo -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/help/makefile.wat b/samples/help/makefile.wat deleted file mode 100644 index 370b2fcc20..0000000000 --- a/samples/help/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = demo -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/help/mondrian.ico b/samples/help/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZHoEA(EeYq1`gh@+I#T+)qw}?&+~(; z{f4j|ad5TYk%w1bJLI71z(a;qgLypU$Rn!5haOoSeAuDYG2a|o?RV@qsv*Z5SsiiA z&}#4rM^;B4JG44%=+V`FCmmZIeB3eBk!;@>eq8mjn`o^R& z)icr~s^Cwh?%$iVrW7fIV5tmbNsTRi}&@RUJEVOm*_aGpb`JkFQRdJfRwO z=IH8-N#m;1PCKC!9C28as7zb^OI=Rp(BhTpf4bIn}T^Q>)=~ zrd6k0II|jl-nrH2+0&}AGpARleEYoWl<&;0PMv>2b^N90SEG15n#W^!JmK;=)u{`< zU7a}p(rWbOmsDdGURq6Ho49CRHGckO)%4ltSLc6cPBnGmcd8k4zf)bd;PUF*mt9be zoIJ5QV(I+qlqDBdW0qc64Zmt$HRj6iR1=q8R-JL>{A$v&1=XYtjS?=P$7vQ1mDteUmrs%q*jS65S4 ze!rT%@(0z_Td%8T^S;?@udcqc%E!yA*|)8z&R?^ty6n~!)#P>8S7X*)S53Zic{S;$ zH&>G$URzCFcSALs=P$hL+Uh&pPP>cu+_|EfcF#@Ktb1;*rro)wnse8hYWjvX)$IG$ zRF~elvbvP#FTHPVHTQ0wf9Td~&O^6Vvmd;<`Zl-o*d{%AXEkfXy6W-`cT^WVvaXu* z#GTd5$M34XvvFOuVB;Otcb>SbTEKSM=6k9I|LdOW@<;Be=5KzenzQ-AYQgP4t}b}` z-s(HgY^WAKb6>USnY*in&puSmdvRm+otGZ3uKNB})wS4r^(`x^n{TbjSosIGqY$!Z0+H^0F1Z)~ovVq5vf&#P6>Zm8~fX;XFm zOV3m{z5Gmd-LJP)tN!`9>XvuksP206`Re|Ee4$$VyML%|{r~>4y6bl@SL@&ZRrT=u z|AY*r`Dt!CJDrzi=DBHRT96i|nqY4{-2X(u=h1- zCEJ2@ZRR%5=FzojLA^5FlGm_b=WExb>+`kgdS07Z-c_&R-dTL-NnI`Zm zpOM$4$N2WSaV!hiZvyw1r*%9xk4NLuc>d2wv(mIQC7+Q-^LRRs7NZ_kQ*jwC4NDcCpz+oyup=z0XVb3pA2%=o0SX|w_%@Ln%l|nX>2kK&;B-!dkqhMJ2XcWK zmdm+S9RIE0b4y;;T%Kf}?^+m`i`_!3`%U^0uV^7-5x4SAI$CI(z9y+kH*%MV980?I5kk5 z0T;)niEV{-b9n#kJfHXYe|BAX@3(d`Q0!(k3X*4m?2vS5K8TT-3aZnBcjLisDpqKp zObteJ)SdXryZQA(zGES5y9M6el2$ct#{PwY+ch8vU-Q{5?A}RFVcUGLSs9}nc=2v; z<3I0|g|lmq8Xhtp;L!4+8L)0bI*)hD#&Lm|-g*t*elz>cMCl zwjen7RQi#c#yj*{J&&XGe{ktq_AX=1b6~eJluy3Q=6Gd-qjwI+1Lp#HmF6st?ArL$ zo6BhN`QqnM&V+OG_&+85=Zri)jmjhPkTe+9jh1m)t($?e>AmB5M!(d%;got;FAzge zn1RI;@a!W(_f)%S;5ef$`Z<+nj{wQQk?|78@(nPrp1~)a6F82IBcGAR297G;+~Ah+ zB9Lq>Z0h5|!mvYD7H!mKz5GY{H)&mC4ZdlV@D_a|zBpPOaUi+8cyb-s1#)vhP_)LS zbMT>Su|^v~4tB06;}+k#T;%du9I?JMqO}z-4NuJ{rIBDal_;??UBo9`#66ij0d(aT zTG*V;_s{o;&}X>^$M`Ij40MBM-Zx?xJI1FGd6bC8D2&R7vF}8lb?*tC{LPN~9G*G6 za4?^f=Ysy+xE}S$I_aJh-*|f^iQwE@3=1m;a-|q zpT~chx1e6kt+u(39>sTO7*G=<^nCpr9GA1N+coLBKv6GPkk0-hMvPB~HBh%aqIps} z1*;}wzm`wJy7B4YbO^TMUAdFt5ykLbZrRR)aYI1QC>*?On+0MEf?-o)Y{tj)@*31? z@DR*+ZCpNw{~*&)Tk+vq?OTK27Oy=Ue9umoMJ&Dr-+c_^ zeni9-+iTK_h??RAa`5RqwxWOYKxJN9+yF1QFf~{)jxn6Tw;7QGU6f%ZDyOc(ZeArC zxGy|V-wp}36wVFf{z>U%I5!c@#)?;-h(;Zf4#l>XF7Zu9nSzq^9tAF>11yv7N^El>82l=04sV3>}e%H$bl@_o-FoaV<|(i_A8U2u6L0 zO0bVew>;vkD8V@}o3A3mJu*DjVD4R*E*7(N2pG!A;cRBKq3Pg6 z^yl;C?i>)C5yxkw!C%2_1fM+(#Fh}nmT)_ZnBcSW+nllFk0aWLz_<~0unuJy---=d zt9OW_JR(+r&Utn4tsoXv#@VgNa(0V_W~*jeR33Qk8ojx}CxPA)BC58-Gq792y`sfp zCr;z@k@dLRj6_U*#>l6SuOUJ#sEglB!4Ie8=^UrrG9nC1CxDg64FkEav7Ow>HY^>S z56R*te(Ii@AjdA^-dTJKSuNPj;mGDh%p8@@XvLh!s!?HZ1FwlF+z?)wO1_NpHHKtA z@o>DJhKp+~Ogz3;%S~$&VPlBRNX#DT-t@U_N(IWH(Fl;%t>9YO0uCIuhQAU8lO8 z4C4;W`=mh;C46*f2D{*#K1&T1u~o)ew~5@@DeG~&%DK6^Z$J*`&XhzM@kSSr`V zU1pa2vG_kR8T?e{IcWlZTkyj>B5Pb2wWpa>L9M7A*<1@lGehw^627(SB$RAkU?y6y zH&D~t^x!4viin~!@XF|5i~>E5p)*byC&qKEW)ySqFRL{9iNEvC#XP==*QTXO_2@LR zrf#TJw-dl|a5^CEm-a~qfz;E@|JRa<{ej?f~kKhW?R{oh!!{yo-I=z+u zPRWkZ2ynB4n8w~E=Z3>s-;dfZa_k9=O>hs^Z5w`i7DuKUEWz&{LF<2{LI>Z}_PHQO zoq^ZNy^<}8mtO8ORMYIGUMvW{$hQR?0ockOs->A<#IG6XuDFOB)l4=w(znd2=A^~B z6FYrOU0RA4T?Bf!b8mXsr_K$FZE!xI!3K8yL2wW({5n1?^G3kMP83T%=C@7?L{vAU zyQ3(Ub_-w{$2$oG&rQ=|;dCC$byctAe`a{rxbo2PC_F^_IPPMRc{5|w!qo4WRnH^V ztuu0htC=(z3|_d9{7-$7o#!xK#z%7(u{?|a)1uPR^He+ITTy;;0iN^GG`xl}lhL)A z>sjDPM}Uo^3C>J_d5Z(nYe8=fb%tD=g?&@&i?C14J1Gxqh~9y12c-SMaX&P0Pa+5$ z1U>zIVxTyf+rq!18z?>4v@|hroXYD5t8pCrRG6vtSOI3@I*0q`@@mPYjV=0l=VP%P zLcgY{q1+fpKEvn#J(Ae0vM&Hn`vc3lUwSz7T6h!)frg4l29u8fMJx6tpk%%X!Z1*V zE(eW*>O77tvMan3L>p7u90xsn0^?vdZv6Fl3O8qm&2#W;eA^5s8#|^GF-E3i@nM;$ z4(^xx=K)}OKpIpZkoN=8f$(w=jGdI-cR2UNbtIo>#cRbCSQ69uu6hI>GNo1n?J7)@ ziyVbmme_R|@v9TViGeAZa~?vh5@n+bC3(wneTob+vb zMdpKZ^Eh4=*@Yl+L>|Tez^d8F#*)h~{z4_E@Ezt_j2zp9bUr#cJL;EP(vMX_BBi<4 z*gONxwC*jH3;v!)=D}%L)~EMr^lyAE?N#?r`+()3bQBok+j&oT`E?LI0lYn7kZ*vsZe;(6lVz2krNwZ9NX?KNN^8mHL2tEx(bw9Z{ydjS2uAezJ z4F|_M_MVug^Id8#u>!2@P|OPq-=QnD4&>(XE?&)MxDm%;>pE@bQ5Btu!F@ulLMic?kPo%=?HWDp@{|cw?qG5sRbO$!&ZSemIu#M+I}~ z-k3v`sAIRaAnEAKRr3V9SZ0ZZjioAyI*~op3^O7tx*GJY#>pw-^F$N`&^4L&7r7zX=aCO_zYE zaR)rJcrr%8q0acNr^2o*#;75fs(qzbF&bOWm5q585woD{IFt9Ze0v1-kIYn)M3O8Z zkQ|Xm=1F{}{u{gm8*}dxeM%=&HXZ>IMtFPZA}TkR#PfQ%tX|Bst*#yW7QMZl{ch)7 zog6KQ%4qAm8Ld9{_4xUZ(hos)4Yw=#e#c%^twK7LNuCbJr}s!-ZSk{b+M~&qdZxWn z|BeBvPwG{F71r*@e$)A!i{l-{cJ!cyC^~9KQHH6bB}4Z<{+>rrLsAiEvq$FyigKDm zEJf$dF6r(E=3g?jsDL$*3dJWCRN?0s_&J78o&@6Rz8qD@>}XgW!B|vV&0T^g>%r!e z-ji*{K1am&nO~Xx8W-o)?#)PLJDR>CCyY|(n`fcHKbD{Q$JE;^sY{1o&+r&~Bf)rZ z=nsB9b1zU6xn8+v+Lgz6Joxo*4ygNpV9&H;?nH79%)AIY4yldp^70fuM-CPI4sP8Z z8rY0YXON|iLI)2+6^%DVJqs&W1di4;hc#p*vm{vQT#szk_l?{&x3IE!IBZ@8hwL%W zz{9P1?4F6EnWx$zN-KG83VX~8MC7A!-P~DUE|meOa?i}lTu9Xv;l*&3{u&6M1&*Ld z_3|LS?jJIH@?%&ojtA30@MwqEonAB%R*BypsSjB8=3Z|Q3@pOf|YkLFVp#SBeLH7oga0{n%oK~@T<)+o#~|F;Tw*`qYh2qr1r5_eK`O1X?;_r z)Stl%4({6Kk8^4`$lTE9m{Eq)!F#?d1UL(@EyS{ zxYZT-5or#=#yv%g_$+EY+I!Z$w&_{#3Q}&tHk3*R90Vfd@Z73(C)N08@N7KK92&k{ z`n~!zRU+LX=XGQZk(_(7&g^3e_t0)$SDQ;6Z(e>-*ssbp@!H9Jt6h+51FQ2;dh-u! zbYsMF>~aQ&Dhlh1-s#205UbLEl2zhNTLQav(fF4&p(nLm){k(*u1tuu)-j#(RQRvl$esjE9s zi0P4W&jIfrgO~Hw=LKT(!VhP$_hDgWLC+j!1vom}dJdfXQF=6O0l!Ds+uBb2mWX7a zQtI^5d0R*pvl`afu^fl0tRkX0<^@0PLFM3|>p)cSgLzf_CQy^m#fDSVEqLgz5rO#+ zmfc}u_q22Bz8zTlYH)E6>g|*3k@+B4D3&A8jS)PG?sddtSd_B30FJgrF^~~LS7%@cdYoMiepUi(enELua zSV&F}awTp=-;!r#p8jZ!VmvZ3l$dLz2h%Kq_LSAZGDp4&DiQ)dwQ%nv4^!OlLN3|<3?3A+Z@;2d#c z*9ORSQ4PV6*s%w>i=8vOKLxu(_~di3O{At~neP3s`F_M6EU8YR|Q$t+288jg&S$LfQw2G}iR z9@*71zp4Gt>|QO;z=_PSAhj@`4_3~mpWou=!tnR;{9i(s=WM?JFvfUV_Opqq+3w*; zm=!1yJA2}h-O{exM6^iVYp`k>DS9?!8A#QGv;0z5N(MC*4j1o=J^`4%Xcpr)+Syr`%~ihCI%9~rN7#iD`w6%5jr4=? zedC+ap4>9~pIjKv+qJRtcB)vn3{o(P4W<>9qoRXbcqUQd05&UzlQ=s2(02T8X9REO z_(e@##5y(VE`9!RzTYf-NWfkDxI0LBVsLN&QJZ62j>&$qYf0WytC+lmHmQ<0(j)k;0EXT z-yPnO&(VhwJ7xv+%v#@eT&<>Nf!UjE(*w6rjD`6{>7&@&7@H4=88S_lnEM>geOF_7 z#Q0A7o%7<@Wb_pUBdRtK&p>Y{jzdK~0sXj=HE0*(({_x=?CRls|HY`Ab)l8C>s!Dd zG>7p?W32M1<8B85XA0&8YVvxz2y)cEb`#HfJFjRVugqhv$C`Tz-J#pjjis=SS)x1= zO;Ya%vF#a=lKdm>Zp3VYRIPf6;?5cVi7LGGG&#Z%v*xD zlx#x$>`AEi=B=e`=4*B_RdVCt!Q4(I2X+;u3{DeT>R>&e(KGF42V&y2E%m14?u}g3A-M^+@ zwyP%ks^e0&Gq7e9b9Xld125v0k#wV-6}D>V3xd5s=__pAVIj3^y>s0S^h63o_26xK z=G~|)_DXgGIx}N^wyd6!fm(|q6T$RbvJxr**5roecJ7MmO@Je=9kY|C>RBV2$Eka= zu&gWAckCuGKVW2u5z-!N?cm`K9PN&H&86vLthzE^k}pmd#%6509TaYFh~k)ZavsJp zo*VluMg7b-r@Ky!d*^bbi-}?EpZ|q#UJBNBWkg8i>|0I2OUzpB)i@Kd6pa{(=Q-aY zZu)I6G2)1J&b{zhJ$L8W;9DRFuJz81o^87|WZ$lAMpdz!9)7Z-cIIm(+cazimCh=a zs>*p8Ri8cx=zt@$=@V)Z(~s?X%Gg`Lu+?$qbFEHXZLO!d5_P96Uc1A&i_<@*U)Qh> z^}9*D!0w-5&{F(a>o4S(PD)3C*%)6-SMl5#LXf^yad1ls6ew%lNNusqo9=SXB`Z?PHqreWX$uc{5_VEgKMpnGFW-szMX5Uer zNqi>r^bNb+=3V*&9bD#?T=`b!_RH!bUqJiol!e63yz5wcw7Jilj{p=IF>K01C2Z^e~V))culv`5vRt<9IYz{js>q%IBwVb z7)^Y2GLMKY@MsL09YIw*J(yCDWZHO2LaaLr<+Z?NqMAep#cE#jG5-7*EZ0^;73!UH4M*H7l=i zyu-ErAO+`)3dRGN1tZABK&o5b9qw;0Qu*j~dO9&3ora<*dx6~kY<(H&{#l)7R)*31 z7PuT0^E0tVfcdbJn-A_dfaeQdDxY(U;&(!A-fqWl1dqj8Jp@52lQF!qPpDBZShXvP z4|Z(*(lL1qm<)hT+i`@VW*n7cLmQY_|-_?EMt92^8lIQZ3t#V>1&Gv9j%!c4_QJU#=hH zdm8(noQ`FMj1{QkVIO-HxS89Vb(=*lfj!^?HfFr)g0(NRCE^CRK(r=)=90l#)s%JJ zAO=#ih^F9`dOA<<1~b z86;|8h?3M)&usgGk4kqe=z=$&P1O_F>|dV<8poyM0~LGYU28B&UD-N$v>nLo!WLNt z-wm5`KiGX*z95gua<)V*XS3(9*(J6oFb_M=BB!-?;!1)tBXM{jWQVQHf|k{6#RFZZ zJd>)AvwYx_omaI?F3llNa;^A+PK-EGvmiPL9B=O!*%LwFfIKKWTC67lg<5<+;-RZaWW1r(;<^`yt9M#ihEQ*eu&JEHng&`t04(1#LK4s>0 zELa@|YHqF$Hv=<2u%BJ(6#Mz}vTLA9SI7E#DW9p{qhUEv%R9-futMy*gW6FX%_Zpd z1&pHoO4l=}+GEJ8Cd2%Z4KoT=Tm?EI{6O5;a>36oAyKbst37pNEmV&cqQQ4!8PHaJ&(LnFR7rUn&#Ej!2 z-*Lo2i+qBJXdm-pqMDyZOk+cL7)>(xN8w`d<+*G=%KDtf*I^zU z1GPTkt$Re?32W#q$~LP>y}lo~^@DRopY~0sf}3#?oeI8fC*#VN!OxA?Q2s#BICL6E zWj=EX8z{m)m8#Tii^*c;jhz^KVuyk7V&b5)@git`wIr&RB~&D3^_OR-O=*bQS@^28 zq45;v)}DtY&T852WMk+V+fI1Rj`-A3@W@I)1WR7EI8a>5H@F^b4C8eYM`x~R6=Y^L zDYIIM+ndOAe?zP?gEMz^^*{I)EMeOKm5uyK=7jCsQ{zNNER8?AxAj6@x5H=<3IO!9bAp1+?T21+!qv2MDaQ?92t?YAlo=?g{Kzb=h@w@b|Z0~Z6X8&bXs5LF? zYJ;P&GjQ!wFePRbG`fjaqdUhzB*|*9nDvB_$LBMNCVR(YG3^c)y)E%0ZqS5uj1M=74Q}h{ODe4ApJsNNl)st;xaj@}%VB~Ii ziykd<;n{h+@Mt($@0R+($o}}zaiJ`%8pm6#?qY=mxrQ;)*+Gv>4!T-m9<`Ny%o3&N zf$P07=JsLrdewAX?OaM(^KSmD9*CHkp7W%lIJ5Y4qtwq-fY}uYhoCCkN*e|Dz zVcr_s%Gy;|BzY9$VWsl~MmI;$jPo}jcPrygfGAheL=bE=` zni;7pJEWaBmL1@pKHU$Wz94-Yb=)`Y0;+OPR)zu)Q>;(r-hjx2jQ_5oaqOzzcu-UK^x~q1vd(p%u?iGK?U~rsa|Q<|hpGtr+KLbYc z=6a4G&%17>aBe0xl^)V=k+pQgR~c^=J+SiJlHurt>(8uqnad;2#~K}O7o&=ftaC{n*OeKA&PeCh7p4*|t;~!na0veNsO=6J(RNS0*E zVDZ!*-1hh)svNHZwqDVPJ7Wu(4gBpzWg&j%r`BSwy`Km&r2{J?^-~ltd#eu>JLI3M z^7Pv1=3wnqbP;6=2HH(Ig5wWQg*ye$Q9O(4@z{0B?h^_B6~! zc4@*nFmme^^t>iC8in5x+4BA+s>WQh0@>~`X>s{~E z*n#7YJOY2+ojgP3I}l{eE9Ybs7S>r!U&&FFGsg7$Z?Im(*}dPSe@p+7K81I%E^|gX zC>FMw_3PIoQ99$FxViFhH?6OGw246KRc%S?zuH;*BB2HvTO>NmDzQa4gSfjarq3MKg-qq`Yia! zLSuqi9`ozslRB~p?ZlW_SL_J0c4TzylUolDheM@HN5=s_`!x}Wju7Kx9!jN?4+X1O z84sV{0jYoEzqMm%95adHW#(COAo(LBgU4IHLf}HW*76TME6NVDgD!G zF|uN?6TgeI*d3P3)gk2Ud0_V&IQARR;w*bU-DqGWE%Oj|F^wOS=)a9=p{BA~v&yO- zs96uN1EFkxWEYM?KJ}mq*$(e4zG;V`KA6XvP^UJar8{_#5uJ*bF=HH zX3<#{Jvb#^(}}IFg&xm5q+M$B-LriTYh(kfS+Ik9ye@X-IitryQLAAc$K1gY?m|Rk zMg-pN$@g2sy2i|GvNOV4KiEriB^{`t9*3f_g<-B9xrXy9J*&-6H`2vnDdiGvslw`S@OJ|YgsAidHnO4 zt9B0ZAIRZW@(z0h7x0OL(yr+%*{nid?S$%!QI|mFbTF|t=+TsMoq6x^wap2~MYMrgHQ3Z=@Y>~!F|UHnxeX#A&s&|E z|DPS>x)7zNQ^K=kPU4fA8HAdVThz`;mQ~7wvTIdNLfx6Q1B;2ZV`U$vtce^4Q|5yP z=h=eIQ)w-@T!*%Q7i>JQ-LvO^ldTAD0vUS(r-95~#4phY9lU%yG!t}k7d&t8e7Z_y zrqKWwa{RuvS(v>CysZuPH2T&3IVR74@?0@z#GH}UyJyu_dzWJunIe&n9478fsi!s0 zjr>*2?0cx?MU&iHBs_1NS}V>_Aal)uOnM}+>5|(sK1Q5o!`G}=IuUXuk7sUpB(8ls z98S3EVKG>n^Bw|Q^e)+Q8R$Hf9%k(j>`C9{@%bR-48uVVu>P z*FG(Fl>wO)BnS{abV*)ORSGr z865g`x|q(xP(G(G{Mj`;cxSBbN;d$t&f9}akJ^mWDyRpyP0 z9Oae%w-mJO16>ZA#Lc*K8yvNM;g#m)Xq8AV1W6-a-x_};zX3xO7HeReF>iO~(gvap z9#6sV2#yQyq840(4|)cd%DtRTg>nNwo|_NHoX4=@^c*bDA{fMII4ehwINL3@SM2;? z*Svk*1-=cMMkbGDiE>BvQ_ruqF!RMSX641?!L32J8CfoZ1^A z)q%q9l*q86;&qj#vDZ2IgJG2@Sq+{SdUb8`JeTWHsBiK(Jdsm-SldMuoz^T}?#7yB^Cnjs^vMJ8aOQX5)k(xW zJ#z)U&gCtX7GSFgsNjV!`d}!Tu?|0kPdu|U-IMNxSC`{8%hJvDD*i77Q4nT7*1Z{q{zcp@P60xy5iXN?LP*W^HGYx z3RZbNBiC5kgSeQyf4@8sE-@oX&ZMV-P`y(#SOiAm5)}(|gShOBQn7+XTs*@79cM0( zO<$WBk;Vw)s*^SNoSF5qEGn0CUmuc3SF|3PABoA5T7E4FT$X{0_m_R)XYQ@9MRWwe zg{&>S4Sin?I`^fY7JO2BAk;;LZ|qQig&cPzYCb8u8p#+|)Lb?4j59Usn)E+lkgGet ziB?_1QLo^&m1G0uOr8DEaZom9fiyX|Dg`>*QwMa(x$+#qod}^R9UeEMOh^W*o;|)HC|b#vHCrUZz_S9_aXmn|G&|R>8p?bkv%9<%VHAX$>-DiS< z=iypy%NSQ?9~ul=9(rXq$(kod{i~>)eHIYPsCipAINDL~gbFp$A~Q=km3lO&>d2(h*RPw*Je7`fK|&FC+3HUeHCJ}u<{jd@tsiHKE)s$4qxW&Im@A`u=BLYc0B zYbwtCuzeY5-3l^G#3pdPg8c7RIAi9tcg}Ttdq?Wh)`123lhxdQ(mV+Ic zt;q_1`WAg^(I^ZVLIk(!nnnl0RgbRFD>JRDg7Zu2E6D!JSnE;egr(rcs?s&00Cvlg z`^-fj=d!2y&mwMJhkGmRaor%1iq}*c_gEO1Yy^{`DYv!PRstP08yS<>s5xbYSgA#Z z!x)iqEsNLJnh@L=!XtC)nZ&HKSff$2r9bZ^m%wYngNlCfndBC29Vs%`CK@a^@Z6}v z7z^tlX4mwf+#6(y7k#aEh30|DRnqp+>=wEvLX1kjSGXesWK6N`X0Q+u>o1wJ3~TMI z<8QD9e86>4O-$nX)oBsWtV;KSy?8F-GcIr8$m>}z8tPFu+MA-(%w5PPyW&gs0S?S| z2}Q?shqLnp&Xmz-?2ou6dji~Xt&i7`a82r0YBGcH4)bR#KtHJ~nZpizYFjcN;}w*+ zNgnZc2t~dVGuX`9_N;q1SZR>I#u2zKiT-%as^J(_yQRdK=o9J(Uvgr#euCZ<4lGQ! z6(14-qVpr+IkAQt9PVp9dvERYa;Nwtd)BJ&P>vI}G}=4BgF3Rk+2)uBCidUrJaIha zBJykf=ZMH1!6h$HYid`#o&X+pq++!IZ0XY8QG)>f890zd`^h3gP%a z3`)xNtMrkLpz{0lHi&HIOn}XKBmXznkL0(~y$$2?PuXjkcyOdGG;*`<0;_q{=wycH zeYsZLv%5Vzshn?Tx2;?w&vVE?BF+#i%Dgj`o8zzL@}es-jQel}or-67s!`aq1AOS- z1Oqc$tnWm?e4hS22sneb2&)%i+s#-ct6d+BCgKq)f!+`p`5ezI)AGDA*zcHM$Ea`2 zVsIaLJW4Eo8&uw=ulIJnIf>5Zv>p!mEqYPlAp#8|aHA*(TuE|6O!SqV8FlA1%XMfx zH&`WEigH{;L?~xn+fU!I@fE6z9pILu9{!digHByh4f_Cmu6XE0Fj7rr4K1t*T$-gr z?-`A|<^FB^1S-yxP08N?najvQRlstNLg9uQXhsSK&DB^R_wMwdltZN0hP zi1k~s|4(dN(_87!-1~%k_cY2rg%|BjBCjZ@qhbJWcL?9NLZYur<~}^T_FyGzX^4s|t`T{kCUO;~#GO*mU*{#@0ufa8Iu0*uPGe^H1tF4^NTq^eF zl1r#;MG5o_$8TYbpE<)u>}@FkoLR*4+O#@7pckYEz+*kz!`%OUdLM7tn*N;sl(y!3 z_`XHKt3{y_*pAKZW*;g=iMF8|+JS#Cwz7fMgYaQ6d=QC?$uZ0`E`%YRHJQIcCtuVY z?V`G9Fwq))Xt)0Cn#l3smFv`urlXmKmH+BKWYtue#6X?;Qz;SqSC89(L!qI5@kGQF6$rWbuBKft4{ zAhZ?r_*42Xw#^ODr~?N*xg)TEE4kTB2#EKBIgD~sq&j}>1s5x^p zW_4 z?hh_>G6Bs@b=n4{)Ng8SM?1W&YmhLy;x*ftIi+n-0jm*Kk!H_f*@H)V6bhsIsvUK+ zX}4Wp<2EV)=fv=n_Rx){`q;bXsx5ej>y@0h+J~-)D_1W919L}p@oe<+jPMRMvD9H! z8-WP9fzi_ZQBGKQtVKN@#75#K+eR7F!sG^UdKd=02PW^Q=YuhCbN}~^PtcO$8CR9t zdTD)=rI-rLHO9YfBW$2v#bTFm;vZv8Y~Q3H&N@*exBxl8V>D&PgRqrH~bzQ?v! zuYdtYinn3^2l+Mbxjjj&xFcOftTav@%`r1%*vrN!htF@@sM{HN?UnBx_y!iTrz5^i z*o!`DJ2rw>hnO+84aYX@jHDt|oZ}h)+V=p)!Ym|fWu4-SJuEzd9vt5OS z=7*Pa^!9ROL1%G9Fw}=U6nb8tP!r~cd?wV3#?w2?%_x`^WQqN^oH%^ zl@%&_zGuol8od85*cB8WB|qE@-){&G82!i@`IKkL5k5?>HJ$(kkVsGPJ;s^a(mh~s zx}FOL7@oF;1TeorJZyCOI^!Q|hW)_-HIBTmyeCjlJHZ0g<4rtYYKLG1eKLDML;!kw zr68Frc|bNN*ca>d^tV`lC=cxA>eU{fk^D7Yxrh5#)Xu-G%C}Ny>G6+X7nvdG zT#>Jf4%FuS`-p>2qW|l`W-H_V32OJE-VPEkGX7#}9Q=UI4B?)9TmE|t-~n9NwxK_; z5eg%JQuXkCEf1ssC^D-S5{$gWQ8yxY00+V$ENFu{+RtVuMnC9JkE{=w5ITU`srxNY zsQ;yLRb+C-YQ|ox!D1nP;`x?D1+16-kI+Lj9@1$-@m0I~(mPoHHk?q~ALajtE$g2L zljk|BU)!Hduhrzt`hb>4U-Q(^JQW};hXaTh8$!uIz;U~Aa=Jh!6pywM*Od?4MA&6^uB=4L+O`=>I7 z+Ys%8^^7&{4AUL)W}~q!R)->*`xg7P9((nCpJ{@RXaqOVO6HWx9Dsc&IZx(C#?z;P z#f&sp4$Q~m>z;Msdfh9vHxu9TpPBjmb9$={4aDMQJnu~CzhZgmJ6Ruk?cLSb`-m1} z`%f9;ck=sWG}`%Osgucs?nCqLBfEJbZNhUtfCV!BEn?orTArUuMbNT1V==5Pp3nH9 z^X-t_C=lbDw>A4g>JfHcX`u7yL~C>zSLQjKbBZ}^b6a%YyoP>b?U_6KYjHY`+M=9| zco7!=y8f5^=lt(s?^Wr0=&(AZ%}crWZr19zc&ySpgJ_SobW5D6Sc~HzcIwe@|}NZQQE=g+WuD_jVxwOL=qF745$!|HZMv7=ZU%AIK(IPPv8s6S&%-h$FI z#{7@<|Jqz@bIjc2Sce~Tf@m3B9+ZxDY-`uod&U;_GM4W;!r1(0*d5V1wD$^n(D(4# zf299|&2M6}eM5R=_`zdfptjvt+c}cmMsvM7?&Zx!KG^U8_nuGBVYTD^TKWu+{~LL( z8J(X%uB-L-&ERR+FU84f0s-#=fbouDE?KXBohY2?rhr5Tr47$?X@K{GAwmmEc((ZOyNN?Gudt=hQg=&i_Bb6f40_B=lEg zEs?0HW#nxwitH*OO5r7w>TD6z4U~fFTWftWd6G#V&tbu2$ z-NhUpGL(9*%s&MJc1C0L{cm5iFFE}FtqlGI5O58OtKghVc?T90|Gr(8bIiBl4|e?? zb>_@NA+*z_bdo~f|c(?f27pHcmgr*&*`)L zIhmh1@AK?IG%Y9)pRuz|e?Zm3Ga$Rx+ejt<;niGktJb3g(E%&HkC>}~1Fju#mIamf zN*Ij4{O8;}?8f%6-}81|GvUgA=hv*~-@!K6&*(3q_qQ=SN8tIm+CI(KLFZG(-u0lj zF>b%-9UHYj-BIatw18}fs6hUw z-DISUE1UWqwxenI0%Hy%xGArh;I4KA6%L zXvh|QL^Qg}5`3jy^qMh)z`Sfz1ndhqOX(F*dWl252N?9N_a`eLPG--eE!Si*)@{U- z{}p@hg(bv?sPfgwchT|xzyfEpWzC=2*J}T^cuyQPUj9B7Y=9T^yuibJXgx|HBI0E3 zFDe_kFFyD2>30w_A0}3q8$Ov{r9%EJy_c;P`K?M&AgeQ{#asLj2HLreB!Dv!D?%%P zAnZ3rsFG*~9cQ}EYD9Nd^|`v<>%VY*bJHlfANG6hvG#lI7q1E=>-7R-p7uHSDgws% z`*_Y+_72(lTOec}Ap#|SXx;nK=h}kx8?b~?1c4{HePVnjGz+_1H%VzG0ja^c6 zVk@NwK<`!F_Zj}Ng?&INFtC%+i2waAHpZzkH2LtqhSml^I z?cPkhL)Edz5q6f)e5dqsJ|%yA2Mg7N-(mH;L`QR=7%TMtW2|&G=mxCb!u=Ov_WJt9 zyuQ8xrmx4wa!Vb=Xy1?3ck+KzdL@65Uf`LB)05bIrakQFUC3$sx31G^*;$ytb6?n9 z6aW`N3%feM9%sbBcV`3id$S|#&V3rj1jqX*I_YfW%FeKlATq8YJ9fO)_II$zjKG}U z4u%@|HthaAKJrL#*E7Ua%raNvY?wLD^PzvmM!i`zyo0ETlSMtx9yRQ5^+qnVK|t8?Csn$|7>_bui#Te!H`I4;Q^C^7i;Ty) zA7@6@GspP3@M~<$8`AxaJJLgO{9&7R)lcNd;lYjhdtvKOc>VG8bbd8G&F!Z2oFk4U zjnu{nI@)TS^L^d5G-903x{jj7^v(#lt@|_P%o#h&;b?1bZ?Zr}o0YhGWptiMcN84A z-gPy(O2@U9(CSYa)At$G5|JK_5qtpazsL3fqe&%?-6blN84i^UuGd>@t69Ai4zt}E z-un>GyvFD~#CYD1MG1Z%_FUt~|JdOZFEY&IvnAHK+S$Mn_o zN48B_YenH9Y`>$vlgD?5{g0TGB#|P{U zWUw&qnK=>p?Fho51{ooksQH|;&Uy*YSs#$74A=(NLu*&mduE7uI0Jku8=jm$MYW3# zn2)T_a^cw=-7L89C~7VLAC12Kd$m#Sd5|)KZNUEZa6%O~!+Rn-;t%oKL!eW9U0#4f zEejscF9$|X=m8Bzw_TpI#+{M&$eqi;%BI=Q-&r4aV?P)~?o;gVFz4Go&c}|dM;_=0 zb-(NyVLP1WJVWt(yZakH*R}HbFQz|90Tw^6x$vEnC1RDEex98XT z`yyOxj@qWo@Rm8uQpY<-%h+eNTW_%1(+5i4wgp^DSI;`$d7QOug&THyBeH2Z*sYI8 z-lyLQD*DAksG!Pk3^3+BhyJ1T4Y7EG`}gNN3liHnqYVnR97Y|?buicw_i=C`W{Zjc z9mIQ{YoY@!-m_0D>qQB7Zv+EalPT{9SPeCtL-tH9wa~Ln7qU8NZY#c{dJ)5)Cj&Jj zlh4lIz8!X$waST2EgQ|=9$=hHE+-lrf;SJ>;!^f98Ww9+0i&Ths7Abyo(7TNLj6j_ z0=y&;*dEKxctHSNhZ9|~o$;k!WccB|$#0F9xPFf;$CUxm5m5mdd#-ZT>G8F8TMu`# zUgmpEz6mhEU&^>S&xQZ?t<6f!+dhuG?fEb4NAL5Cyyj?XD_Kelos#vN@pNXjRJwtb zl@Ch5ekDRYfW^=8%EM_xEds{+r@=tq0D)Q^csg&=de)H=|Lk!&{>*Z|q%9+=CBcyG$rq!B5~pi2_fj zm+^*Ih#Id43OyKQIDq|hd(p*iV6c6}yTG9p3poS)n?%TNtey7-#3MWW&ci>$vL!a=`pZ zZQF#Mf8urfJkJJ_)`9QC7kGguImd4`8~uPR2J36{VR2LeVMcvtQGxV&dV@_IJ`jfn zYl(?xX1HZmKTrS_7|(c@jKD}4Xfc7pbLJ4v0Jobjc56g5VEsNSXlIQ4msm&?jQqE8 z2r4i$d;RSPIl}ijMteI}p^jl^B-@I0|IKC(RO`2Ld}h4pTYfmK|1VyJF?f%?Qgcc( zO7mssyj?jbd-Mi-18Y&oQX??GmZNK)OKwP3l>Z2le}rLQGNCJL{|XA^!?L>|P*8vi ztjFiM_KqwjRK_TVo&$$^$O8JqFrew&H`jv0{=gs`4^_nzYFA}?Hi_rWuZ9I$phwGk z?cD?q%mMD_zH4^uXUq7HIa1cO6cz*$pYWrSb zkdz+}WGkSb;2W=C{b%W~Y*a$w4ZBmhJMwx%AfY1UojSA=4FD0ZfM@mqBg#exKr~#b z+v!QJI_7+T>VG|B=VteYoG8~a@{Azk1ho;Um>v1s8D3}Fb15I>{F}GYgip-$u+vP} zYR===KR(a@#jE;=9jxcjd?VkBtn?8Jvq|}2?qrX!^ghfl)lm@6B4~8MC#avy97@F~ zTCaf**(3Tvjhz0N3oeBlyJIp3w>*Igou@P2Xnc0?F6{tnKf?j#|Q@!*r=v6hS(+7o#~DFjw}n%!PsCiE7qqU*8a}TN7(ik z^j!_KuGxUsnmNaOUs&%*!vG@Ud*JgbV_Ix}5$oS`gyH$a=>>W|K4P?ejNceDpU-fH zPuF&zw<`Y_`PQyU1RHrPF^^}ib`azyoHaPkiCK@zc&s#52s&X(;w1H9KYPh zihMsP5f@Yg(0KDIM2!sne=M?JkJM9 zY9q`0f&PnNxCO6!0j!=(kIN72v@4+cZQn4j2sA_ou6H7XvIcvsp*;Vqpte1oB;!a? z7oU|;Dy*Ei2h-2NLi#vI9SmY=oW^5y!gJtGG?By>6Ok7P;EwrTj}Q5~~-| z({zhk^&_^)AiFjq^=w$G_o=Yzr&(&r&y76qu^%}YmDVfy4LHMRf%=Nn4Iwv%JUx+!lEDJm>@B|dez{;a(5YA|}3SAf-5!~n)w$%F^W zM9+^e?;v`Mm<)rBR4u{Hf}D9vphje;is3uV<7$}@`s<(S&&hiKJv%$#nD~Cti+Gl;Z$S@k6|W303~w^GvzG^Yxo@xx z)fPKgDJs3~2olI!h!NH7k8*{b@Y#YF5v(ncqVHpmf3GY~{Avl95Wbj0XK2dXYK}1S9*L-zV;e>y#|ZS zR$k$MC(jB}^Z`NM`uFvCx7w|?QD@U@_>@oh@BDuvXLyhAFc+}G=2onl;uIU!;%D^o z3d8!Qy@O@FK}WUs%2%?`S9i~WR`dm89dIXV4cAY4l~EYgbiP=YIWxxflgNO)9;jEf zEOi1`24(*3f;dC6{2s3Oxemy%T=wJOIT!dE*E0NE@TbwqbUSHsZ zN5(m+_zVcJx$?`NSgCx5f)-Z~C0`Z;&s+5suPEQCRpgPbnq?0cT9uxPpCnpTnq(T? zSVOAb7o=2tl}xncnOASQAp47y{`#aWi>qyb)%AhZ&+#2&yJIgCto57$c!uX6j|k_g zDPyAw?WSK@4?YdsUQWNFDiF0-xc@Zo?yQtv<(U_F=WBc}9qE?Gw$`21e@uUEupUWG zBf9)oRC1qzy1Av*zU*9IRa^tKN1Ini7maeBB9CB`_Nr&cFhl6|P)eliL|DHoIQ9c4 zVK4tU6UtrxYz%#IH>Yw@}uQh(vcsadM7gV3m!K=XdRrXfl zKonleuRnq#^<6^+bNz}lnf3&YJnw;Uq&y?Eqv_R*#miqsDEOCmxA^S$v6ZWil)B!ERu1lu)(tg|#uZ&T zW0!LbXHeUU*YzMK1Ahs3L`c+LCC0vihrJP~=}mI;!`cpDi+lCcVEQWN^eoa}^Jmm0#)4OPj#ujvM?~7%$DFU+x4)#mUDDDwEwWRiXQARP1oj8R zexLw?_*%iQ6Fs~V^teVn8NOX2*9GeD`lMH731;%C;l1)$+=6Rfqdjn=H#(4R(9vHY z<~6N7|NFcaUO!7eZ+oGB5ma8O-w*||2(zu?XGQ{N>&430_;h-vzPo<8DN@9Y;EgE0 z7qx+rkVskM!L7(_KJhB^C*VcSuU1+?fEZE1zJmGvB`EX2hVz#kyBIio&+R~v=?en> zCW^CtV$q8k9{1?h4i@N_>fSBt+Jc?vTJfubXk@z_@;WbO68mS@09*Nc_Su!p30<6L zWUuAoFQmeo{Ie{33PWDv=w5I9s@RNvynu}#5F1r^EiWq=)NYjuJn+4{;gRcLi#MT0 zby2y$<^M+4-r$p8A#*RQAGE*BDj7#!pM(W&{7gL{lv4+%Z zj*6Jqyl_3G`1A_I^p%L8@o7cbdc&Ne&j(QFSSQCBi(Gxo>yW6=*K=K|htvN{X7Dse zXw-WFG(Mtx^OyRK{Br%YIKY^#=(c^bk|BJA>VCw2@`~B9x?tuU(QDXdMeK~U>J(n0 zTC?1?i7$e5bm_l#}TCj5^3Umz7sa_*@g-{RHNyn-RCjo?n{E0l9QJFinBhkgie ze#vP61q}Wmcewqy@z+4)<@`*h>%%y2r88ia5|vH;0k4`N{3@a1jhESn?hy7qneE|< z@mAF9d7gQdJzwX4nROOP*I9k&tKfz|W!dzkSmnT|;ZtZ`=!XcE-`Ef} zEQBXufR1)XJUL?)AU3fU>|^<0E+Z6n+TCz=9l4vGtSST;+wL)YdtWs zQuZ%B2V92^jTw71RZ zzq(S;nvH6|lmAlxXZr6tkP2SCj6ON%QhF;zGwj1!@!6^E>{GgigV{K6dI7>nA`C~;(0^eW99^-MJmbc2l%<*b!u7sydFyVeaa^qLG_Gyas? z-v!{x9nAmx3sC-o^>5R^(aVNe#3On2Irr@2z6Z1J&i@nKB5Q&RrOV)4r#7-;fXMBt zB{;)u-a}c0)wmZ#r&;u;XtchmQkhYxYgUrP{`@L_T{<XQddT%qNm9( zkuv9#J^eUmQ%>~`td8QpnRrAiUX^=C=b;%4L7|0PS3lHG4)IG-Y8I&2A9ftVGaLPy zX5Qi?UaqSgQ9aqDsCxe{avWvB*{&B0v@KP°>rnIZ*o}b;~m#DUMcmsx#}2vvZKH zRxyLJa(<4k0!qf7^kwiewOw^H7ch>>sx8dN+M{M2TkR~AD>qAB<7&PQyh7I*PMM>V ziGtYGiEGO?_Qt#R#fILn!)wJ2XgI&@tV#J*tb*!*dMM|b9UYt+3iFtM2HAli#yjyi z{Et~T(JjAMWt5;7&~ z*31`k*M(7XvS9O%`Ix+SFl1kFP+hbi`|z!O)3-o_vk`cPegZg%oA+Dzz(UmxwQ9(W zQ1gNjxcdB2g`JUE#cD1-pI=~VdEbd56burb=!9l|kCi_1OR(fGY%k?sfL3Ir`6cQT z`C|_GdekLk*66UBz9m1|h+ZE1mU^pPG*eCKcWs10r6deLw~;tQNPU0z+qMJxf^} zPUK7?wY_*5x{n8$r=m^lW#(WM@YQ4TQ80;2G-kJarf<`$&lFX^lspSg<>N$U>vrUV2yR))V1j zvIML_40R@Zwb$zWkTa;Vv8*CAABp^(Ida#I=$(%f51naqWv%(?)!^o}i%(BS%d5;U z(6Po%ZQ2)1cm%WLl4p6st$b=aF7T0Q$AD>M8%2j;lvwGHFf5Z>aH}?nq1uG9g+lpj zm1W~PB+2=mQ*tMA<;tzskah7prop#AM1J~l`lzP53;ilw6Uz_M=XL2bl`M)GJ$$$H z^h&P^3|SW^CeCHqQ%0-F*!5@iUCdOf2jHA>)PCp<=?CdXRv+6xZt)FV`ILeeip7=u z!DV0mgAjVPZ~hjK+=gYZ`3!3LTe;xHZ;*jg_$BNdT2oJgjEW^vvWl2VW)Vn%5p!P= zDUA}KRGT@Jj>0KioAFXQ@1A|+)frKCXDG1fBiLoG@LroLZlA^HJ^(GFBl&%7r5B}- z!kZkmVJ`g^e2X&&)b7X0t6rdgAX3%h<8@%%P9gC)Xm&EYCP_?Xqi7 zoHdJFp(&@-C~&F+CD8#Jwg$g+m`}s+d|up+=JC;-)v6!DvwR|t=#t`-VrAy3{+0N7 zB6&kAR%SCRe|amg%6p(+);`SQfYPOTB>w0X&dXemjQSn6Fhhaw{W7%cmmp+)_y;!U zE$qO*6n4{L%6~-lwLh|hhP?+neBM3*PHtsp19tJ=SK9PR@mAZ5{%>f=EfI4ir)yta z16SVX>WuZ=_g#!wREt-qGvQDCdQ;vTWR4Gi^LHW3Ro9P!XL?@zrd>XcM@PFyu@~==IYJg8Uv} zc;qiZ^5Fm5XWp*{tRVOxm=+OcGQicX6ES}j=5K45WzGu z465$vYXw{F&1}l+^V&ekbHH8u`UCjpY8Msk4l-QN`g#Qwp;*ex{HB4(`?szagu5l{3vLAkW6zH7J?dh?<*AE&R zS((VmxKoKQtb9TD{DnuAKQL?h`yKvjc8Ql$;TZD~Vg^zVrk}B5PZHwW48UVDxYDuUfbnKSkN~Wmc6|Jk|kjbMhp zkeR+*#Q#$ZF1ZsG_|!a|v#UhK-d`^;>4i?kIfsGB0kHyI{&=nO&e_x-=Lho- z>73pOHlA7Z6ytdVBlxp=3m#b3#F=|q^+v~z|DoLIRSOqTD3y)f9Ow0%@&Ac^8&(-_ z!ZZH}Ugip(jatroab5RM^)>K$SbTT~h}C!0)&O_Oy!6T!_=wK8(}m2)otejUhzY;N z3X1}j;#uMm{&OiTir>|QIeMC%iGi%ZwUQ}(GJnO#fh3BR{3P%=#-B6u-oq zzMNCNKKYALzl1j+mapUg+xfQ~saksjXg$oUkMgQ&tLnxaA(q>n+JZM2?_6W~H@06z zXUiUq`KNh#!S11kYm+@+$F=It-Mcc+Jk=G!_TjgtM{Cb(^jVQpnM!tXBgpCJVra%H zg8xJx;*#`jFuAb4GPh8~6G0EZ49#lrs4%RlXNv6wSvC<9tsDb6f2}lFSJ0zQa>d@B z*$e_5&+rO$Drb85t4qefTLQ0VLF9VY`u>1zEuQgPI#(~^8>$so=HjdtVq@*Bu(Qd5 z2CUErt&T)WE$^&=?CF)&BOmY%>Z9gQc+K;>Os?rl}1s>hI|EXnje}3!7cnqbj%-@}K_yrp~s9t7Em$f_MsDVv%83GY|Gzt(RA z7ZBD`l@p$Z{pJcRKpNNRc9CeSEc^pDl?E)7oXywcR6~42TlCH}TN5@q% z>BNC(b8`{de@Ol0e-<9R7GJ7~7?KlK(lfo7>KM)r8g?z3mH&2A3+XFm9!v@4p)?m) z?(a4zVclzSAs+2v3|G1_E~M;<%Uaf+{lCZW&&OJ-DNBRhmH*dDu0b|o*uX04$A4T| z@z}u;pA+25gZlH{8SL(#^H^Ac50m1-DCDS{feQyfY#URX ztsTz}`lx8`@ZfiO3FMEtHtj$0A}fUAF_=aJidFM)e8kL`YlWqe4uH3vpH3nukJCGF z5{WWKoJh&?oUUse#7+=@riNPEts4Os@VU^y51n-pZlTq|hhyWPTD@uY`>^I({e)kMOt~swbwO5hzXxjebz7T$viyl$ zsW^_$rIZ;JTE%QfL+W(SFJ?bT9bW!}@>e-l`Id1zs9mJnZe8y_!S2Mo9n^-%y`C(C zi6R#%r5w4yYs64~iK{;8pW@9AWm0Q!XU32pAP6h7&JXYFx8a&AWSL*?erJH;hx$9{ zepE_70fz3!?Fww|Hn|6usm0t4$z4Xq_)Cxe0GuSR5>B=FxrcUJj>%C~?JGfRJw zeO1^QsBIY8-jK^4wB+3gc!8yOKH3i@b}j5850+SopIEtD_+8jPIktxCjsaH2H=@&w z2Hkg3FXE%-P{SOAd+dE9*qI=9fP)%dblgE>f>;NhDVh9qcFG>Gf@@;Lv*O)0u7#`} zt76(J?Vr}~m)#} zzsUXE+&vs$?VMk`J)U5q^oCo9euO#>?3(z&zV7v=c2geB<>a2`_-1M^vC=!$E?Up` z`S{QXc~c(ZQ!|>8!nnJ0ho-e)(P}TP!GY%Ncqil#--eR% zbk6-KJHC&<)z%fiyo1)KW|^xu;zfqIzFf^p>xqT}AsC1+ppLTZ_#jx(SHfA4d(P}5 zr>w+v-pd+UqT>YfJ#@S>zpuIHBN!=-u>tLaMr+6!*f?8RJD^s((!E7~LY&ZG;AC!E zd0T_mN@b|LYHOMpsp-uv>#Gt&!zcGh)MvOm);0HQbgG*BcYHnNY(4f-gv`nuz>Crc zb$+5fSVYhESc??0=llucw$P_GkD$MpUNvZ$lQ?+A^RofBe#&um{7~;@XAx+9 zIUdQQ<%_~T^dxL;PlMmE4xHR`qID{#J$x_Nbt2pk`ALv@tlto7Fm{US)^Y#Wb)Rb+ z+IHA<5u`50Tm8mF>MpWeM%mg-Er2q&7O7Lue?Fr_b6l>08B_lrQ}I8>&H(28)?ruN zS#Mp=-Fp~jDOo#XoZq{-9z4;MyKy;sLmGzUM{;i&RCYhCbDz#O0VOSAq*7PE;IEtmd#P@i! z|5tvCl@p}DHsTJC-hXiFzL7__D}C|$Eg~g074v`&n5I|O)cC)GRe%*JRbKvg@g3Y7 z*OiLT?+6J6xAkf9pGKN$ zwZe61=eV)f4Cl0C{{dF!_sqmtfnzhTIicIbYxIE$7O+7q7c+It|fX=H2z)S)R4m!*{_+%$)F2S<6l6dn_ME3$vPb z`8==TZ+tY_MlKkurgvFVDYIT;oms@JBYmgY%~V|m?^AtjUqJSRf`N0N5;M+%9gtZt z%9%4y^V|G~+N?Ccn9e6=myzwuL9@obYlp-cPSg-q~+i(uijgTt54#66iqv$u7KJp z@=d3(5+E2i;wE<0Ng>{opD+*XIpkIhor}ayPWT}^@hjcMj~#X!7&Z{pkHyArTwz=w zn*R*@?n5r&9Mf3xfrs&j*=4b^{UzM{66c^7D*lDDI(2FXXa3f}E8UFz5p~D5urE;_ zid@A!_G+ueou~dtAqQ^Oo;Z!iX(W}WDK5%Db6@60?M~m8_&E)sreBJlnoc`wC$p15 zlu>cg^RSX)5D)OTk%LINBI(*uVR(@vc8#72=ZL(*+VYM5dcZ{fQU^OD?@g}KNi;`! z?qub09`0`bSZru_!@;}LihhP?8K1&F8EMo?>cmCY)6_Yszd z-{jn~-FgdeKvV`2qdtt?aO#0>Lb1Q%2}9;G3!uX-1pbC2)Z;pq+>x*O%zu5f^vAQ$kWVqVzn;;~=`djT#bKkcn5569oV`pT0@ z_#rz!K&&!o#-95#vNA_1V#y+tu)sV&NWNB{ikeAQc6f2U8`Y`;;s>@?~xUH1dd>%Gt}+ohm~W8`^-&mO~iJxi609RSA@GwY15CTgq| za2~Ci)1%!x#p#-Iue=B?A<-k=>%;JlU7x}4v$?A{(wg}mqf#RXV)tI_p`JrN<0Gs_ zegx)eZCAp&X|TKp29LtN#FO(f!4V7cJf9}7h(=Rp@nG6k)|`yt?K5`@gSnzz$eHtP z!IrD%I80d#Iy-}Y1b%CM^*zjPAIAoZB(Egr%~~W6XCb8YHu6MRGL zwQ}!VGOz0Dtf5tt{WQ_s(rp6Ky=|sDg7hx&*vI=9(RR*Z(aYL_j`owbf}{H`u*MMw z$c62KE$egFY@_jqLE=lW(LMR@O}QjuBOWn3`8oW+jP7r}106T?SMG`BZo1bJJk))G z$HT~~lR;~}?1y}+_l#Yp`4(n}T!Au@t@r{Qu@&Ycs%)v#z|7?m-_sxaQ>3Z< zywrdr;0M2)ICiROah-*bnLWoEr#$t{tcKccmFPVJdPA$U zfE4e8nXcknRW;w7;jP{ix19VGUPmI=tM{CG%FljtD3|v&I5%Q;(mco=&GooK%U#c> zLF;j@-S~7T_VYmy`#NWHx?au1Co3IujVO$xa!s8lUc2}UDb6_GjGEr=FMWQj9@nbg ztEiQAl9u%>RN2WlS3UHTWoS)mLw_~y5iAn7Vx5^KSto{`--=p0`P2+XaQ;5m|G1q? z)MT8M+gb{Bo~)asqDq~jbU5wE3<{n=$`O7;GxsWzqeMdw;%O<yUdig7y?S}LQ@yx3brQ*G&xsZH$SL!AXPRs`vsl7#L0#Zrz z`wslN%6rVZS;cPTe}!*?_mll8R9B+;Cc7=*I0gg9I18LZ9%`;A(|&ukoh;Dn$KxVu zTF>i{k>p@qq5ks|uwDxt|VeUx&NcZ%rHF9wguD zVYGks<6MoCom_d*Mi_w)wfB#CF82<>H9M}I;j3S84t-~op`CD*%{8d10TK_VU;RAv ziK}Z{?1;;hQqE!Zr#?x3MkD^E%c-B$s5^6W6VJX`(u4bGN=k|#`S`OV7UY8LGzG3prs@)TuabKv} zj)2!*xMrumH6#0Zj}h=qK7mLVZ8y=zVB%Ozz{E#F%r+%6<*St?$H44GVtQBQo`h|y zN7#QHwA`irUVgHQ-aeXKWBw0Vy~ryU(08-Ee-^L5= zxE(?&SpkI^6<3n=-@#%>B0N>AJ?>FXKyCXIHw){#pA&YgVc8l^%{g zxc1j*S>>E_#B0BWABTQQt%RC26-zjmSgPd~#1iDDsDnAe747SegqUjA7x{TO{X#VI z$OODpqRIHfPS--f73@V~8<-=<69(RP;BlRZkT0PD0<9b&f%mtgtK4 z*+|v1lt-B!0B(47&vQ4BVc4lAlVREW#3Y95v*6m3xyri_t&DSIu83VSaDW;3(YKHG zaaF@tDTUgzw6Q#UDzyq` z-}rWqwq-tNn*SW(vBbHoF+0F+wfb3l3&xLR<=ReGsl?7~fcBLct%I-z0 zQwc_1dAC?r>{NQ|ou~<9R+476MILfxZ})yu&hCnuX69{?B)*e=ED*!e+k zjB-2?oB_Y%K`)hDqYG~dR+dEjA6H%H!wQ|5P^!giA1I%OGiUgA*3WH;y=X|~ZyXf$ zyEb*J;x@2yw|ntRoyN13SXpYBOY> z(S|5$%?}~@#z=Z6>N~UPRY#RfgfF#DRT%5p!ntOxwmE{z6QBv3>sqHkCh_BQ-5tn# zpdGI6LaQOKgT1wo^2q;iByBm`lpX_WRmC!lWqE+6GIgHE5}&H4S3GsCQO`#WoUyi8 z`fBoJ>OSqvUTlx@uCKGujj?u|Y|OcDD?xS|oa{+m9^$Da$A`NIuo`wVO?OkVDa3Rt z5!Dv44#0KkA!|*CGX;;PCo@1cnTg+o{2$=E$k3Bm#hg9>mU=6AYcX8?Gk;!jopZKc zpqoX{#;l+ASqa_8yJdIQ2Y|5=7TT6)-XE+C7Rf2i)|Zwah@QwJY5>u3hEm~rCh@d$ z-9F?SJZg&0Fehv6zzp1HW~c8-4%2i*9gc!76Dl~*O)#8>Q$u_|1;V$3 z?|8S&{EAtQuj0suTk&|5qc^ZKn?P5#dKa`H@Rf(rhuP$3xDw|I>et9qB;SaHXwFDD zt51_bRyv$+ZxBqUjCov(f0=aB_Ezl))nBQw|Iq-^`LYO+wySLn{i&p=YodjSmh zaqVi@1>X5C(IFNXOh(BlEAKLNA#TRr z@ZXG1=rq=oQ`1^AXSK?(Z(INTWqlpE%DqY7-7Ib9v~wEn7339sn$>sLK+rDkW2sX` za6bs;B)^$R>6M^Eb6z`5=$(yP{3;y-9gP?L?z@h*?j{H~7^o1@TkUsqy6z*ukWEk8C>_>E-mtIjefiJ`=j;_>0UArG?Za~2xB5M_`-5^ticQXz;qUZh41Jq9FO|MGylwWP{r0C%r z-43eyn-j)|=s4Fd@ajff3()qOYu*Xl_HgDgY=(82Mqk8JT-Dw%u1Xt=cVm2}9rYE} z#bVr|FQGoPXYy50k_}oxy7WaNfkqsB7EkwK%FCD2lSN4wkc z4Uy7V2tDXTse2%CGGDhPaT*1igCkri7L?qSsGH47&1YYN?2wnv?#~`!Udi`YLzzos zg;l?UtV_Td^a-8GRC=A^dXIsaJ!aYgnJRjPigo(xyzF&nHN-55z6f>dBWa^$RQ^5h z)nj$FhDKa-=srD+S&q;2voQl^a!5~Ff6z&P^RWP0bMRtpfYUTsZ7!7Z>O9ktwge{V zd)Rb4oYLRWR@f`6MV)F7;Dd~F+={O+z?eyJHxG82Yd0^oE5;jZwmgXB@OP?1v;0r} zpwixXJ^W99*W9x4+`;4?7NSvC9y#+G4i%5Ucz~Hcq0(p+EcQfRu@}^=6L!uht0BZ5 z;--Zmf@pkJBIn<8v7f6s%5i-xrOg<_PMmo#+mDXsJ98fW3;%}~oOeY@)pt9F1e5PT znvA6Q-eTBt9#Y02T8twgI2$sJIE06jlGK`N!s%A|2BW=IaIPu}S>NW<4v8VwRBp*R zwb`ybSNV;4<%hW%ZC`$4G!q&SN!Am@wujM$5=f6)90#ScjGz=ViLK~h5fU~0sQxK% zla(H=^V+9XoxOGnRXwPA&>wNsNLHWQ&%+WV#|k~Ur>5Q2CipF$MpJeQ8>KDqy=Pl~ zd$2so9njwCF<=)GB|3l_>}v}#32u|guSx!gEl7_|xdk`=H;zu*1a4Z9-Ko{o`0A`f z*v{(is9c%H^t@B2qD9ot#}Ykc1?HK3Il#)~9`5=acX|=*-qk07S0@6GiFb;ZI$wKt z3{Rn^7NxgeQpyAneXW<`)ecL*)g_8(%8E_t)8Shn$BCf+0~s|CEQX~Yi%cr1Wv{Z^W@fi`51>sYHwB>V4-XyGd|MnOjzmh;zRs-C zA34q0$vO2^Ni~a&S_CE6g{~4sE+)Fj7q9tt%G6xy9b+e}H;kUhV5NrNEemX<#^syKEgj%95BEFOb$21C(oKWp}eoaP#|dLL*nzBgF4nPeI> zJ@|xi7%>4>TJQz9sa6tCG#y80i7)2z`=15__=oKJT7S-hso9NsybX8sMHaYTWfP3l zbufQwMPW2cuGqK~`=DOS$U#0XAW=qK#;7TAdG&tNZR8GTkw|r!3^AVhZ{|0NnYtFQ z!bf_p?ww%<;Se3W-mN`IzA}Gwz{cX!VQ@AYb~^CMUX6t0bERS=6U?8~o( z)h}~by$8P9jEvTs>=n6mIi<&o&cj=o1kK9rdE5-OljM%J8+~@#V)wO8W?A?04T!v3 zPK`u2T(cM<%;c^5}h<7&BPxq2;e=7R9EkRh%`In@%-f5|n-1T+{d zQ8IISdHfF;zKjIBs-!J7%GGun?`c;Gzh7|8i=06$*u?^-oCu?>XM;PE-+Yqab9o(3 zG*Z@w2x<|nra8blPiLf4)dfeBOV`z8aW*p~wKkHSA>F1G=J|~H%{r+8^!b|Z(&NfHPL6#b1*q6gcV7IhXoAMrN*M*bi7J;2UyOB)_dB^V+MR%bfs2 zv!kM@6i>pxl2keA!xi0nHVJ~R_3q+K>PhOUxq_RV>w11OW>8S8MueIu8Y7IU)zD}U z#io8Vb)K9C!9J}CR@~Z3rL;P8=V6I9G^e|WTvs!(GA>MAWtP&snsox~92ly->Obrk;FSjquWT_X)c*02~NxiK%S$G<&TOkLBSyLP5e!7dp`^jrp)vhOkwYG`Z z%)6%A7V7&SQd(gh9wGWrnNHu2E0ddgefo-%Z9%V;>(p!7hFlE2ccZ9Z;_3X_7u!{A zLE$1cS`aiL-{=zB(8$mp^F17!S5l)^D2ICWEO&}`AWO3_@?aw}fwy{KX7J3#8qryy zQPp{_7`xJIR$6B6$FH90Ceo@XCD(WzdN8|Sk6^J}_i*jPHS*a$@#M%1S3L{f{j$qzKedJ{*@63FFq|B6y z>A`|Td7K{ACq6{p(CC;|`jGweA%5y&bE_FsCywTxv?s*>=1jopsl4*1Qa557(BMQH zBFd}uxU|>1dZTl>cQbj2KhA5^isrM<@Y=~d3!UOIofc()qIMZc$M?&~ZMGSUD0OAE zCX?~ca&_u3<|u-ca~H0q)pxSubw1HG{>+&WaXb@dM)!n!WQiYtwWGu>L(FQfjed+) zUt2YlFYVE(RxGxfGr313K)rn;MuoYUg;;q{{hfM{Yb-DH1p4olIIj%Dv#HoZB>xCM z-A&DV?={VUmy$dSx@UO3v7?hW^lieF|jq+@Gg8I*TH~P0mvZ)C|44sc*g|9hiS4_>2S+8Ymt^SvX z)))K;=9vw)cIwqaF{Vbgpy{^20yQA9n#>DzqZv`NQetXsZmcf*tu=7B%d6mbgYV*9 zHr8`pgiI&MZGmZ%`E8Zk$Eo1Mw)9AJA}ETU)0~ttz5pXLkCXS#t27_v1MX4FuYagz zFo&rPCnHV9Gi9x(CbX~GU@LdU5x<&mbcl!VsFlo$X!#6$O7ScYTN&_-TtQ;#JBpEZ XI*KNLv6}h}vS+m)YaaoMzt;UfZ%a^v diff --git a/samples/image/horse.gif b/samples/image/horse.gif deleted file mode 100644 index b422541be877cefc3c2f0d14ae40ae83e0f0498b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46200 zcmYg&c_7t!`?f@7D@(@~4Oy~hA4_`dWN8$RLx^KvYGkXZd1Q-Y8H5l`*2u9hS<+-V zNC+XB>X#;3#8lHV%`@ZoUZ2xE@B7X_^Nn+k@AbX6>%Q*$b8HS;8yNbIa*T3({$CDW zUS5%%+eJl1MMQ)}DU#x1(vp&*5)u;9Qqp4L!aH{Ckd~7DMt0ZkJ+d<2$nTMp-m5IN zPiMEByquznyt1l-s=A8eUS%~6O?7Qm4Q&Mt9W8Bj6>VL0JtK9){pvdUin{t*dPdqt z`*rspF#Og)?|_N9v4#46bKL{xM*D5F4_KI)9WbyssBUhlXKuOQ(%#t4!Nl5L&*8{^ z2Uk58Ph)p)6K6NW?_9L0z9vWgOgw@NJwo;Ap~fd-jV!Irtn4lA94s9U*;(7$IXYW7 z9L^EQ480jcJ5vl9$pU4)FU)cSI0w#JpC;^{p`I%ERP1-c=@>< zi?H?zp!)_|`h{EhhuepoaG(d;`-eFPgt!GpI)p_#9FKDhin0!jJQ5b|d_2x2Jk}#J z-Z3i9_GGMc)LECPvmR%DI2se@9uyW39vu{Y)-U>WaBO_c@tDY?UWelnjZU0*IFaab zCdEEF$t5Q7Xk3zOe6r`+49_zeZs+nme#m!-Po|$^(Bo1<&L*GvAur(HMG-%wCL}WK z5;MJ$7;YEx9g_21lJh+o`JNf2o@vEyd6$n~ynHAr(=RD2G?@{Y%s8EV(Ld#4Xlk(^ zBi}D0KPSForRcm;zl&vImr8;zmd0dNcx6_&x3SNFtUzZrAAFaCOaZ0pUqmYd<_ zSK{mYk243N8wSo^8~CAh=xoR6nXa+u6h;aoKmB5HYC&;fc2RCgZAw{Na$((%mCTg- zzNBk6QtG<$+ioT`cNbl|cJ0QE8w~?VjRWbetmIZ!M#ork$5=+scyiA~X75mH&&0)! zk;0oZ88>HAZq4K~hc0!GRSt}04NMda&S$a~F3tQ;@$kdyk=e%arOUIwmQE~H-+xg% z_o7Yq3l|6ZPj*8=M&{u0i0>n#1N>zIBfmc`V{^pJ(#+-HcZXy`j{61$7|8@h`kvuX zBd;dG!?A6HW2DY`uex}1z)X#!NTA9Qc`L?FT%H>;flW9?VxdTw$FhW5&y^ zoWGBjvs*9mxvG1s|LwDP5|=~goBc+!Wp!>ediTYBtdO zw4YOjesxuKRXI8|ii>*cb;nw#a`TQmLf74zhOI8vXp}VjOcQ_%7XWT66EPaAAcKlIK+{f1q7D3x3 zT2HJjH0V5N*rj!}GrR*BDN0UPP0#myw0BW+y79x`e|`*G(DZvgUacdxCa!r5Z_iV( zpJ)2s$riGpsuijqZ3!2W8(sypjPWnss|9lP`>vnOfHJ5 zFKYSRI{SBt0$*X}k=6vts`WS!wuS%w%qr8Zf!Yu}ryUqxq)x4MYKi;ED5yN#M9Y%A zcA~7ux6!UxJ78?K&ik4}Zd}#NTxD9dU4aVs9U*16TRz3w%l4v7n~dGZJ)&PsR#2Zj zdfYpr;ojLm8?a%zq+a4qMsbt>&*plsPp;(bu`Q>6 zk=(++z&w&Im6fOvR;cFImR(nW>NjtbsL}Ca=Lgxldru6fKBTj*&(%;HJf{DQSrxl+ zwA}RZp8;W1CP5hWNv#Clo+@ye!Y5Pj$n;=Ie!5F#y0>^tv|43~!^u77t_O@SG`j;~ zq+S?|S?k@hM{n|qNz`pA6Ndko%Rb+`g*-Y|jC{Ex)iQ=Eu4B36N!`(Q<)tdyWNaAF zJ6_)V$@=G+$9LU!Jlq$t`f}QD3V7dttFI|QPgr`==5Bi zUM4|k-7?k@c1hKR8QmSHyZ*!^s%^JPBpcy$1$Pp6vx~BAwv<0THgBol zsb-t8A+@NRQBY~q(lgh4>ifsd$KI?zuC)14+Bo3W*)NHdgVPmO>D$W;D_=~N6JzpH zR9tGEZsmQUi}DJ~+vc2AaIWE(Fz_EqWhHWl%{Tkr4xBJbJyF&d|HpbmMr^parqAF8 zLtC$V*6cTyudpjHjH*U!37km$m_DZn z_{aYo8WYuud^H*KtKMDFCf_#etVliPf`%K@e>qPtRO(jTC`~=i@^!wl^FW0apJKg> zGOgLpFp-Oos^;DtNZF;&N3FBDu&x&Q;W|Z?%9?-N>-L*e%ds~v8#Zq}gfvMI2B_pA zg9<<1bozx8j0tz$$xE%ZZ9c2uC#nLg=9vF|#QMkG22oFQ6n5!{%`@F^1>Px1$t>%M z`Lw2ZsulU$`eXZ`@cDZ8Ue9t#g?bpXkv1`=5H{Nt|LO-rkM_~S zbw_H>N*iw(cU7jfC45O-9u;D`|4e7u6_Nz;pt=L_Idl2 zyJBj`5UVQ7^|NwTS(18o`7fQSoN~;q7+lJ*;rQ7vyag|($}G}l{;sh3aksYrXpVxa zes~d*nN&eZ3V)eV%M7p*AZwxN*qyw;IVqv{_tM$| zC&swd#5CM*Cs0&ZRv$F`-bxiv)mIa(x5>8dXHYi67PO*P*Vld#+acNL))vU3vsBz# zeA{R(B?b0{^(R+zSfTANbLDKR?7kS0;&-IlX9DFgSB^HA%3>7od$t^FmNAL@Fe+4M zlkG#<9JIaEFye8(to_QWNR@Stk6EJ2Sbm)?5QZX^R-qgrl_Joca?Mi`DX*rAcV7@z zf6qcT@%=fFRYIw!Ami*dNi0|;k(F)LHuBpQqhqa}-FeGn1xzniPRy$Hn@bHxfBu2R z`SF!VJ?&=(Wpg3lB{k3PgiV`2h0$95263?^yby8ZGf~3LU)+6am1FpqQ@=^Kd%}N9 z6jVi<{RRX36PN7@H`LsI9Tx~oxsxkL&9*J(EMyin9jTTAo|n^#)aEqV3_ZT$?h~VD z;S2RHb%!%V4H-yO_^W9O|DhmnTc%5%OXT7aRy$U{M>%vSFPH%&@rcdEcH{c$Rj+D?DW z`1tDnHEIh()`H3}*67?7x#{<1J{o)>d(&n`6l|Z?zzNPR;o{mcFQ@wBKd(!-)7t{S zl<4s-uo0?o-z`ve`}OwUi|xcEZ#ne8=jIpJbid_e7WVc3H)fi#JjTtWY58=gZrb$; zpG<9_vl!gGv)7PTq;=S_dM%kpWW~Oa={H>=yNg`74@Pd{@=>*8$MU6r zU*@IO9jW$QHbUl8#b4j(2&M43)LLE;)(eFVgkZCqq)MR_L`*cO{@QIEi7$W=uSL^oGkDkl$cvTZ2Fy>{H?)kfy>-{qN-pr{Us>)B!x*ElTW5K z``_VA<$uWh?nnJ|i(I_e}&DQ_&9{#UPYxOUPET{*^a&4Z@HkIu z-fe0_AWKqo?XhvpOsQVfiW&{R%|Q83yQJpU2o^{Ur)jv?*cI;~#M-kzo3e{tJ711l z85iCysCVyXnCx;3Ur=*Le)`>&R~Yp*6%UaQyrbC%u{uUkqqUyp77-1X(1hFLe)z?k zX*r_mW3#r-N{(ss^5(NjBJ#G)aq34q$1m**ET8=F^rVuoPT;LP<)d3vg{6(6w@Zgc zznm;K%8)tNs>j>_!WNI?p|d0)GeNaygGFEs&lVL0KH{Yb(#Vq!nC?v;<#>uN_0%T% zgi7lA=m%L??MA`!T z|IDw;RrIJ(DtEuQ4K*)!Px0%HaQD_@<-#AI_9q=uI(Dl_>-Xh)aP#Q64_AM$&8;ww z5k4Lla2IT{Gw}H0Y}(-p%PeiZP^6wp+F)Qyq|2CV>cl_1#iJvx zfbU^j(9D~MNqZeV@Z__(H?J_*2>as{_{5s&BZ+V`{!7a4U6JILA87jDyF%F&3nGPR z7PzaoU7XxKW%CN3sM@hR`LY)J;qy$-?ua{iDSToY$661S3D4UXH3!_yzJvU92?o!T zwcnyiRdRat!(n<-pd;=TPBI$??s&_*Y{@riL?Upk@Cz@6=SY)x?#_=d%|?W(Y)-xY z>)~wZJaNE|P*#YuqIH(`xj(s74p&(HM4yObFIA$nQjf< zee{&E0u+ml?7F1A6YiS61BudnqTz+eM^1flEIZsQ{5I;-_`?>@?nLRRSble0L@rB$ z^0d&qBfupbJc&nIWvn>3Yx~^Ew*rx(HR3gQBJqG4eFl=tgcX?&T0`#FIBuqn!G<+w z6?8^4Bx;==b*0dgRvapv%6&e*o(o%S^)DAbw^W|ARXT8NK`R4&hf-i)oK=Oz$l*Gx zQ|p>`AICt7i}b5G7p_xk9gDTklWbCHnIYAZ_%T$p{zw(AV9)Z)=~~Z~XDoZ0$s#Q@ z9czmnVWO&T)zREZijE#SzFmpP6Kb?Zcc$k=Nx-Trxz$Y@d@FB?+k^T6b<2cAJH0!w zJ5oW_t;KIRa-yUl>_L}Lf8oK)f!~$22ai?MIg6>|{cV9uqzEhf_9IIxIxMt@ynXYq z(#@f8pYQFnU+jjncXu5t|3RxVdS$%WqWmnJFMP2*L7Y!NllQ>J7dd?ovO}VC5BOi z42Il)^RR8NI#^^Yx&=M8MWeW%i@wmUUm;(FNov{GI6Tx2xO-M%W*}+nj@>5Pwfsi5 zOSL)W?rHJ6k?9TwE~*|kJ65P}lPzUvu18vQxGTeIRkY!|pU{C0h0Ztnbo+Pb71+<$ zy0NBM@fWtcxA=B?uW8Q5uql&3m#w@GaI z9xIQ|aEUhCW}lWnxx%Oo)PMh_xwta}Ikny6JSX>cS0?qR1IImP(+V1VS&>U)F$gGn zHzU`=W|9UNv~u&0p${6px*3KRTX#Ix37Rb79!%jwgH%iFE9nRm)1nXOm{>p*(T#pR zWtEi5U((_`7`vvTk8U<2cuE7oBP&uzUaM z*{8W_5@3Ml(nf^Od6)Z4Fd$1b(TX-S?K(1OH%<(Nv;NEvxv%KdaNyj)hhS%>?|hSE?aRZiE-5Nq+e84FJi zU(ob_Ia>#HM7k#k2p0qRk$~?_Ss`tZL;@(FOLezyAKAMMMApRW0SpG*$4=0oXY1*r%`Ju>cPS(&xSMe zM86^&wEhv8wft7@x}jKrXyHv~X`BZs)C;AZg)<|xVAl^&+JPE?NdNDQUJ_q!+ z*TuEnx={=|q5q(XHGx(&U1{~BkDJ_V5=*UV!-o6DM4lBUS5@v8fv!~GI< z@}WnN(RK$5Yx#9LNVGYDo4@DgJ5p(V*`uR^l|lQK-r*5oKBVNV=uj*f5XyDkwVu|Q zD$oX+1rda{EQv5|^z6-+00CKO^cop0KME7}Zk+nwad%D6uIyZkOB!BAr`9K9 zR)@pp)%>1cG12+VL?L-T!^*%5dxKaxCh@UqVvU|%o(Q%{G2)yc71uA-LHWy#vt&@T z{o69+jA-RdFA87|di+_u%_e9wuG^#;_KH0k)L_D!P{1u@`WB7DyYL=*?O*S6e zP->Q>2M}&?k}x<{?$fWry?VdmU+Lm{14ALs*QpKqz5_!_LX{3#$g4vyoz;$_LoWe! zV7f7#*yN4r*5tiB)}e}AIGB^Gb7B3lQS{5HI*V(QQo10c(sDr>k9%U@Ep{8bWkXqA z*_g?dLyc*4>m6sCA~edXMvqdp}t*10g585$lS2(v@B^RFhGt5j++BaE5z(35wnV zt@U}Dz%KjFX5V3c)Wz~25RjqwD~wNx`wl$6u!BS&_-Qb_6aoQ3$UHU}cy6)%)m$UJ zH5Kn7W1^GFUySm>Sl)i_6;0zL+dK0J6oP)X!a`{d^+*y=9#PT&CyhtHdqaOZAUt zkLLIe4htb5)uzqU;iZr_-Y>5{xMmr*uDRIGBO(Vff0C%cs!o^neTf7jNBueN;h!JU zgzCMX&otQEoN%jm?~Gl8RSR08KCf5DqjhTwnq({wpm%Tf?22C2w%+d58~^3~$NxNN z`k%ho7o!sKDX-^LT`IlT_FOvQb@TMQsZH`WxT_#mq`>{8+A zi$gz-BpojBtJTIhwcaK3FU@DOY~lTY*6WM4-~D9#?>{volOcgvrYVJ#=)Rh`tnbxx z`~2pu+ocS=I;GB|TgjBu&t7Og$<3Z8D1aTf)HOTG3Ou5C46OWCe?qy2u_Dzvf3GHsq&ZmA4l5sU3# z5gzXuH;lBz&;=Z=Wz*oWs6LWv<*br(rFF6J<7vOTf*aqzcvSFvpej`jBLi0G#}H>Z z>-62wKUL6RHF-=(28N5N+GI+Vqtu};-kV|de%=l*oxZw^=|v%^xaXZn7Rapk@Mu}o zi%GBE)9)U|=vaq~s=BmAzFX8Ar+pjwZl)NqT4oq|k63FRF7Rxpbes!1EVsS{_055y zqS|q*nH`JC%7qOcnSVZdb&&@x=~dI?=CeUNzBy1R_-^`Q(7oLU^B1nV|Gs5%mqEl+ z0`L%!5`e@9HvU1Fryf?M#a94&V43-0c6!j}zWVnZk2|7XsEgJ(mYQ}j=3YBP*xIcZ z2ll2;9||ltpLfPE-3;n(_ zar8#yi^c9$>&yp@Znd!jI-Ox+O};~;vO1qKr40Rhb8_uJp8ywlHDuz!bx;(%`z$v` zFAJJcpI_&;rSLkddUqOV4cxx~0#dAhe$1ce@Kw{Z^6wsA+?!Rh|ICy8S2NWPmo-j2 zZ4cSJ_fV<9$u0fGQCwRDWwaAG;H?nQ?Ax7qt6m5 z#wUhyhluI* z^c^-r_qNc!>jCwm`%XNbEHi#E0SeIO)K^ll3faHOd!nS{?t+g0aH_1u0}bz+@$a5^ z`F*UNW%{C@7mjs!*b=@NEfa!37mO(@S>uCgm(P? z$1}qjqKcN8n!ZRqaMCRO7RKC|kRp2IZJon|Sf0QbZ10mD$8_q12yRd%6BxW+3 zLUM)%k_Ql?w79oChl5CGCI$qJ>8N0am#}Y02 z^)!N5Oa%yYMfPUPqN6+9ORW=5p={NxQTUK)B`J?*0CpC!bZXiSBhM z(mg(gxdK7hfsVMa(kjcT1;X;2+`oSKOEXTFF~{^8WJp+`XV;CMVsH;Gk8KoyOGmy! zKt8B@`(}Q+SL`>bCdZ=CGZ?c{_IfmEzk8LmEw{@43h%P=?<JBsZ7UAao@#R)Df4=jlaGOreUPp%aB$j44TB=SOFw(x30*g zxD-24#G|dDdCGOyhNCyTVvLC=ZbUym-DjRcLbNGR0F+3q$*akG%{+Fpw8gzCP)H~C zI8F8FP^!SHXclD8)%k{_U>3b6Iy|PyBZuC8dU|YD>7v5Hi(EV^&NZ34z72qL-e+Z9 z)<5x#U)w)82MC{u|AUaq{0E`W?X;FXsadKXQ&-LW6diY)Ueui)i_H+dW?y80>8R4- zpDZ&a&xLYp&hIhKADU$;ZExlVk~7O*%7A_+ zO+ao-_HK;a=NsVLUbkY`+vhwwUIXvLnA?9=R-I_ei5I6${`~dYy>EcfBwkd#NbN|aZTA3_RSn2$YtSGl*Fmz7 zZZpsbKk4b-T-0>zR{X1+cX26hTvFde^eU8FE0A)R!~ROZ1|KdSc|P`K18x zbq6YV>Hbsew?a0KcBuT)5PqZm%J;5b_rZuPB?Bt_SE&nt& zLJ5XQkf2^@!J?FV3+J$ixF#{CA2cM*aJ7edVClLEiUE9L>qk3XOErC;S@O9kTBk`K zhq@>vXUimPfXBJsL=lDs6K~ zL1{U${Alj(rKV#yqaUZOm886$RzfO;K)`Uj;r^pk$0Euq2(P|Y96=Z{dOPO#6#-9z zu=_v5S(m>(zSz2HeC5u?y@xBPMD)B|doZ74Q=Ieg#IA26xdgQRH%8%{NhpCLXlg=J z`2`pvq-@Np^!v6#wA}k0+nB=)il)zkPpg8xsCqEhnMM75k2+oJ4ZM1W>WKEHe~xpm z_FkDWQcma`%7;T;TES}S*pAA7{ad_z%ypcIX#U*;6!hVKkO@^j@e@Kuv>jxV$XCyn z|MOzsG2_T#bofZ6m4_Px`y`jQ&8hh{?Iy&5s)9b649Dh}VUN>dR#zr=8Jq&s|4*U% zFV|f$`+Va(@`~0 z7ghR;+vuzfUU5^70jQUd%(Z-^+*_;di?#foxU_bvKe`cqX}?!%a=Hli4NN;K0y5?* ztu6?gpnmLBv_7j@-O8$`C|aNU^RF|>ylDQr2p+ygogk8OT;DuI{+~j2LdlF=eYX7j z=Y7X|PIP+rl~k`12X=zk3Igxdd&JNjk`CcWeI*}xDfR9T(*E9Kow;k@@uh(jz7a<~jdHn(sK>@o;fa>bJ>xn{m`o>Pc-=Qa^!X>c1WRcbx;M@f^= z`21j8{3bD=Hz^Lj)43V%s=^t<)P zcTY7vHuUR2`9QG%!rdn9oa!|gSRR=iIy#G=|B7f*-M zF;qpOAqeTv&<{|V!6%c_3pKo^Zl*ie<;j?R|DKC?XW9-~hpQ0zli5R2Ity(TCfuc( z8@>a{>7rWRb>d&X{QhEE37ulGq^rs$G*9r-SS&C^zk5<1zhzCLC;mU{k26k99&PYw z^JW)(%+EIVOQLG1CiJFNOR~118>@BdTTIC;ZSm?&^=g~r-MRO>OZ(5TeG;z7Bh2+; zg7~BW%k z)4P12eRKyR%d=a>)lRh02R-}P#xj4Iq5r*^Y72dSaoy9OKcW2y7li~8PKE@8)&BL@ zmn2-c^=9_bhqj@>);bBqr(!-9Im+<5pPcsHRnwIHuJ51M9Z?{_zD8Z@bypqB<4)E1 z32Yc5c-t(g))femN{^S;{$ZAEx9eMcP{{ohI}!Oq=!)*6U(|^5xeXiQ&uRc6;*n3> zp))!iM5tJsKGt>EV$^xBeVUq9Xui^PnenOJtUo{2&(%0U@E~o~HJ3Uh*A!k%H7lLE z@g`9Kb;wdF;CtK)S*=W`^KJnX;%|9;U^p2o2CixAhi?!DZk>hse1QgJABoF)q<&;O z&1qYsor-=rp4+>{7Ni=^30K4>0T61tkeSMCvlsLi@JtMU>MgStuNs_uHYA}78-9Dp zrFPr1s;p9dmr{dQ<}3tmR1c{5HOI>uQ8@r+KE%MNk{LWr5ZV-~`3`W&TvSIZt6aH~ zr*!y|hVMXr`r!)Wptwh8xCpn&);w;Pf_}!OR{uD94ObPHZ0jsKrYRbp-TuXU3RWNX zo%{SOSLYM79d}l#^e=iK0B}GFoxpKgi*K)YODJk{J&26Jt{Ofh*GlU??btUGMjO#9 zQ{_ibIZo_Cu<^vnAz|7<&aAYC2pOJ=%xT@=p%=bz{jiQ@!^~APAk4jQ4Zo$9?mWCy zmjtpD>CP`=*ioJGbk3H#upmhd($L-3E+d1ws}uTcCNDLaV=vpZ;D#{My?WN_44I! z*}kbXdDRRou^vl#ondnuTke2ePs%`mKnewT*w88CeyZIr!$>BsfzaT1sne@xRR=}n z%@TEAJyV3L5!EwZ95uw^6_U4vG09{@)nh2jhLD(g>G5%{@1_%UhnwbTD73TYY;<3 zDkcJcBZ(*<;SW@)Z8>GD!+ZsV+pKAK-kqzpsq|kq+OkH|^6X-mY!+X0*E38c27@P> zk)=F+rEJ2fStn5lE+f%MNba-&RXg!~C|&Ma)f=Q-S)scJnZTYLMDhB=l~UEuV%AH) zJ&K?S?Fd_FJPgfOrQoi+ZV(Hz3RnKc7SaW2yO6XpyM>i5GQ!5wMG%T05wwT+VS)u< zw3eBgED9bKfl6L;W&fF(syiYw=E>XMZ305PhL~_0>LNA^-t`X>6P`AhrjN1#zG}6) zvym%n*Ll@FDJ`$&yDScUI|!*24nN;6TZP`Pf`yC;No#}_+M$UOy)dHoj}~JTC9NCO z9eqb7mAOlczP8SaM;vN+bwzOVrSd&chWcC{moi?~8+r2xd<)Y%x2oNcgE3C`9APZy zK?`a2TDUI301qnPAV%eiyp99E)V30pz2v&avh zP7M4}(W&JJRwx1JI5b|i`CGD{wb4d@h#Y_^W_Rq`m>zpQEZZt6XvdYdz#7}Ev5(Bl zEf}iyC1I9S=gi@V-4oJNw}RWa)_eAzUeDkk*LhF@^g4de0Fc z6tOw9i=>=9f>0HOpxhjFZSSEHTma$TLtwLPgojFWPqHb^@lt~`@1KLFt6FzOEDdbU zQFK`x4kE1v_jP=(mY&2G)aqWG#%U%B@S1A5X!(Z${y>>Y3GeEFbh!m z=?`1=ROiv~#Y*c?!%0P8m}PvL#6))@VgrjRs}ilgH%A*RZlE{DYDKZO>sY?3XLocT zK?vEjX96QS@KYent47(dsq|bLSjLdpbCMr_dIW6(6;byqTrt6=mefC3>`{4)R00$&n?g}3r4cSoBwgK;^r~$_dn_||euZkCPcZW!4oi?% zs@UMii|;>A-|>wqHAeZ*P}xMxxmt0WVET6W!;7XUxggIiwB` zBxe-v3lR?BrKrwd`z~wuxjoRi_ffHg2!@Y^>>sVW$MoKyn0GUzf$*_${HHhl7gyBK zO|fF3bFaH=c(pn#p+|NH?WyR;{7S6p#QI{lMW8ALbUSt;PS+005?Dvasy9ZQM=)B} z@nAGZ4aWOmoB>0bgyA%;+ywN7S3 z>9A9&uGX`v^otvN{^e3DSW%HCwAY#;C_97w21O*Hlfv@b1m$h7aPhnccp25ROd3jJ zI^{s3Ob8-VL8pK#M+|Bl5U#ql9&4eK-3FRAM#BoK zvHZoYeyyHMyx128EzLHu5EGCF!VWW6STX?h*O4824wdT4 zzPDigC}Ww(g_;K&nkLGa3CpMbD2zlCv6RTQRZzydiy-9t2Ccq0Ve>+JY;&H7J^ zLG^r7Gm-6wMlZ_X*p8D~^5~A8N={_snH%p*Bv$2S2xsZ+3(bE zh@;h6sE>}wNFx<>NjM+`!Q#_e?`I8ZL%*p~1Ra)6LpI)4nMC1A!xJO}5)}|mUbP~- z4Mx#}5#11^*wtbUL%Rp6I3z<@wswmoQFm*lUnBR_rTu zCYXx$!iFiZp<5T(F=db`NG%V^G&{aAcS+{Z8W`E}jU3Kkl|Q=xgopn4Lw0B+O-RWJ z7bu4^2dpzAmMqfv5(q_;O&m%Sk~fIJyHfD>1pJCl5E|sb?~~E3pUp%^yqQNx!xIQG z-cfWY3YQoR6sSJ-#L4{Nm#EQO?r=W_>qFzRyxgPJFM&!!q@>og+#-weL zOC=j0$L5%xqoWdWd#cFR^VwSQO?$X_zfmH|hm)IEOvx$P^xfvP4A}6Gw@bg;2+Erw z*p>z^@QEP>v&*57%vXd^+RkQ1w9vUO@JbjE8xn+`?Sf|LL4;HjGzr2>h7K!0xJA&^ zvEqln-+xpkYf9PD817&{9cB0O{CKf$%NHSpu-XoOA1TihjgXm={BD(*$uiDUYDkhC%pK4gy|kKioAj8Ft>EMq7He zO?Yoqk&JJmzkRV?#s0%~mOMKR;y$b|Rf;)E8^?cs`}nAsdXe&xnq-ssKz<3s$l){r z9X7(xGZJ?Th|{+^+`(W2`!=j>NN!AcDcSs@sy%4*Au>70UyJX^ChNjY!m2GGo`$in&omAQQPvb!NeB8uXKO7sFZ448+pm4WRiUQg@Q+i5< z5Zq0iUD$Ao9Gf_~c)qbs=z8k3iHpo~yWTGOp=Hvrj#zLiAAn}BKDJEn!}GD+k_=V+#>)H7innl(Wr;%4m5<)SzI0hzHi>mA?P*66EO~_|PBgn{Ebe z{CK4&@Rn_^cFO94PSo?9cUbB4G&;5VtU+h%8Vzw6v6L5sU5%iA)J15X8uZbrYTP}R zy@_j^ z@PWiX#EDNLvQXX!xOu)g;FvVqbzo~~nC2uD^KMKmzDKkqx zano!Wvq-Kxxf&5FXJ*>BIF?xdoL}6Avh=UBpVuGup1OC%B;;;#v9m3^}poso?e0Wkxq- zLQFUAz!y8wtSd&bGvjqfgMcvpb(NloBA86j%c)$QK%8ESelZS(_YipM{i?59=~#Hj zQ6?r4udv8zvmM&*24-OKH5!DIN3Lm;Q!3Gzm_ZdGd;5`VD%5e*)sy-;sBlpAWq|OX z1uqEPZH%xpS1b)C%{SHJnlQa znnNMGU|23@Y)HhDbx$wWGn7y|nOhh{uuX?l0fe~4?NZi%yp>HHx5cU;?nX4;V2H9w@-VkXpstpX~9c4qbO#Y9erL0VW1m4&pbG*l)ulX*#}Fw%!QVqu^cO+!RiL}CodZT z;qB;G<0d-R8rTA#E;S4jedE#`I01w)*WGo3UxMLb-{d9`vU+da`{`ftGYmr{6pS8! zo3DnFLki?nLk5_9Ptb7cGNa9xm{2VoBxNua*%7rIGbCP$DSE-dt?4}5c9R+bgHcQ~ zWj4__0CneX8B;>9VKQRO#N@5Qpr!q01DknKKNd`pvT)(DkaM0q7xWbj#Q)qn_qM_cmBp}q0K1l$UU&30L36d2Fw9`&ifCa8HGa%cERnzW`5S+;dGVE z7tTU8ah&ABZgUL~22EB;Z!QG!_PaOJ0HW%B^VG`o#4K|!=h`$65 z8~JL!*kT2vwRr4NCtX-C*73(0E1|dDK`Yn`x5<8_6SX=c;YS(4Bm)RZse^gcQ0mH2 z;&!U!2+9uG@CfV>w5@F>n0F{82yV*ZO5+t(vOVo{8&z+cpv>t64uTM`;YhSh;Sq)} zG@l=UQI*0+on$v(;3fRWG!dD2&xU7d!cvt$wOzzi_`?crM=bpbnuMtI1+Fg6-)+$P(m)PmLo9NSzS;)Iw|m9}r@)y@ue$Y08a2t6Fn})XV3X^%CFB!J6eStUyAvqO;;DyvQ zj%`T?kOBsy+ zSk#~vv~-)GmbxEXfl7Nii&gxV2)kdS~2c8iZx%!gm)fM=7|g3um(4oO{z zN7O}(Qe~f|I&RWl;s1iYDV$%uVZgr+dD0HdTiC2S((8lPJCyn$l~ z)fP65v_|Kit9`v&cPwfk49#$!jf~+ErJX;oyKi7&jA4a?CnS33Ss6D@l=a4MZ2Z0Y z;I}K?zD+nwg$4@5=_kOy=Sc zkvn3RvB|h*9Rfi=!^{~fmX80uDOT?(xc2EU8-L#w`(C=6zR~T8V-R8JtRfLV&FC%o zMD?ATar4Q%V)8N(Al_+wG8zP7A{T53`@p<>V(?^A?EZ_8lZ!(L0ZDobiiQiG0xpDi z+nz>S2$rtmGMWRvK$@19GW3*fLZ+#=6SSU_VR0ur)_t**N=9H>@B!e z2Et1xy}C~frRIi-;p}QDICJeCe+nC--uSFH;H&{8vErh{1<53o=ga^SLve#J08?EoUR)DLWGXix6A}uZHRH>Zj}wg)~JhPckr4jztQ-v>^JW zsX55GDh7a?HiL@W6{)#LR#|7Mh6!ST878V3^(KE!5?urIPXCxFAnZBu_@=Bq{EZ;Y z)uFyA?v8psS|%5Sr{Fnqr5s0w#BY0c2QEQz6Vr~o2a)Gf<|7?!5U=ft)$lg{6azKhEQB-~G>xZIgFs))dg&=g4?xgk!e4K_iT{P{023P?QAsvu})4xFXF>G9-h7a^5Cr#5LJ4 zxP(<)kX*ka6#ReQ%C_9s$ANZCQ0=P;MdVRF&J$-xu)I_E$3UdYClT9apY9Cm>5tt(?4SlWKlcY5WDtc5jtCNP;YIZ&EzUnag_ zDFr7J{Ccsmq6dVqAvs0;0B5F=#y^hHday-K35y-afMoirq49iR5)zFRco+xKm;_~V zeEN|=h2>>@*mr`&`L)ABRnPgyNy*QUalXbQAvxk~gA;_%bes}XctE&NAUR3ZAo3i^ zsqhjlGIdt+1TP}TaO?|ByDJogYH3$D=w+*?n#yp~{uo2Q#=cEQW_9m_eaC+O;q!bh z@i!brnP(jhI^oqDHHG!BR1T!O%QfXU?Y?v$rUpj z(`Hjnf)GKAcqRyup8kJ?G6tt*v^XK}?WID7#jse$rf~M@NvrQ_Xje^Rdf5Qm0{b{$ zhR)&)Q($f{IRb?}Mb-wy88r62_)?uy`^tKwU-St5`th}Ey<6vLp^{0P5F&6VU+1CF-Im+i$;WJ7BErhkRr!Q_MCj$*Y+8jfj)^kHVBxG4g1J-MJ{UFn_M3-)E`4Uz+G21^@lfwCD7e)Bf+ z8%m3bdH~wv(HR!zlUk>&NL{;vMmj69dym!i{0)MzKYr^DuXcU% z$U#@wxsX6jWZ&Y`r^G%abCUb#jv+9YE};wetcxzB)_J zcim60)9-!HnR6ybAbqaq{;k(e zBnl_?9eRN?bEj5s`M%=Gmsbq7f4_I2z;w;S3x5G=h0c~QF8=tzp5X#Aforw;ofoQ}ynjU~(LP zgGzDVy7qzZ5N_>Iz$h6ow<oqljRXI!v6Ht}ZpWCc$w~!02$9 z2m(ZE4Sg34{5Qy93uz(6L`VrhhMoZomSZ17%K%4+C{Cp|s(5#01fc>UfV#)1ijjH9 zZsYMc5_;*aKcCw2o%F&s!tesmdfpX-#A~|-$Viuzm>l8yN3X`3{8BCpKjjVOSbc}C z_LeW}K^ey$PJZIifNdN=Sl?g&%T|nu$IRxCoKl402Q@;NePS};@bLi&1v27y2+3F% zoF5%O0%pob;0%3f3jDgU{eOcTA`AaT2%AduQ4Y0Mp`dnW4_AO zMBq$&6JKNn$OZ{8f{^Kme*q8(u#E!54MF%@pb9nQ{_YGxq(UaaL|U*p&C?GiN$my}g2P9zgD3NMYS*A8`rOCeTdUJJ&*A5X^U$#vi46j$!fWlYw1PBn&VGR62WkX+F#IqU z31oOyJUj7%5h7SnWPS(%^0*X2=phkK672vp0Y+lh;u8G&?+~ihP~U`7LoG9_2zA_U z4zUHZ3Vp=OfSZLo;wxCp zf~oG2Bj0ZMURwXl&($AaNV*V*iH*?)s@${VX#Iwed?2|66cWsAzcwhH1Tc^Y^qhF$Es0GMZ_&lxu0W1VPaMIcT&i0wY5*u74a1eHq?8iqm7g_4&F$^ez84aRPh^4{;Zwy zb8+23NTxUAj;LxpGRNxA#NRmnK3Ux7=cY~;s8qn7-An6J(doL(gbp=A%9axKgCqGp z!eywxLx?beW~G)=wNWiDMO78aKM8iMD5DCS3L$|FLbH*xIuytI6ZO{kmEUd4{psd6 zDCi!$w(Ek;mAOoV`c)qtDF8)<5N+F)+y`eL=x;uY2?6X2!S*5;n(DNnF^njj3?D^` zVR0t5Eg2*@NRjPFRR6Z6#P)g##vTo^7;ek*8Bn$ZU`jL?U_=oD-~%zGl=H)*QE8$I z))h|$Db;@m{&xy#@q2`Qgv}rbkr9I`fZNc}Hns_r=$gW)nlZO@Ar#jI2`lQU^wWrR z*hsrl_%d8-?YH}v1q^kvmkHc46p2o^y?4G=M>{9aiaAHb7 z_TGZ|FXT@5UBZ>&Eqel>4qLv1#o3JJ%(#nr@5LYZ`&KO4I1Unx90nd0(FzO#LzA#+ z$QN}eQ%YGOU3Cn)jF}uEL8|`IJFlTa^oAp280f1#zm|bXAaNUNKSG%tdtcEEtyKf{ z9)2Y;>MI;W4jUGmx?rfMv7qqfmU9i)_AH6t_FGW~iN3AO<9us`c$YIEcWpeT;;OmL3}p zV-XyhmoU$eY`MR|7+m<(iuc|BAB2IFlu~#^v|e&z5LcqBgy0}vLqnTQf*j&x-Wel= z09-0~BjsX|I>_NlL?kQoOz0qx3EkK$L4^Zdjo9RZx;VNM-sqyjTWM%37>n+HQvI<< z(qDfVJvnq56Ms!MsX0$B?g+->>Fi^Tn;g7&4S^GLnJ=&sB^t(es)cN(<)w*@7qg*&$b1tzWT{~``E*nZ-bJ`d_Qm9e8>h#@}G>-kshL> zsQXvmKXf0gP8qKG+~xIIMCpS`sr?*uQEk7R^6QtR+4{5Z_kF(eZ}a5okx1Z~i#4=N zEF68g%QA^mDZxPzaV23Xaro5HX&VaPefXV1D#)Sg6N`g0g!|x9Ne8?}yIO2Lg+Lgp zja@aOH#1<_P2JFUjMpV~5h`n@Lo2saD5=00Eibql@o^7CWC zUt9~!HXFLVbzS<%omw=V;^gL4Bc}U@4r2DGtKjq1e}iiQAMl`maAbwY_U?U_E}-tP z$)^IceQ}gJA40_t*8tlC7>MWIogpQhL?-bT)bSh;B6^ch;D2XwxI}C%w*F>uBnlcV z4U_U3D9EuQ&@)H{-lC@qC}f$fMx$1K|E)vT8(Q;BL$x=##WWRMxo5r0a#e6y+{DsA zrMcJc9`9P)$IpQ9ocH!Q<%Q&RDT5=m$IA6LuTJ|>I{oDX4~&mp$oYKr|5P`w-Tl{| zw*JA&@zp6k6}BpkCQ>1PDn)i#om@w#81?xqdq@KHxA>GO8-<5*_>?Ur@#+7C(2+|k zrWBJpI-DW9gBAkQMUsCEpOO#&?PahC_z(3;T3~UQ;az#KIESo!4kwrngdJ=QYWScK zt^PlG@QOcpa5k*c#4Yw(pq6v!sk(Jv{aq~3zc1MK{_ZO|wJ!hX`Gm`so{B&8&+BeR z*pu{N>E}Ovvu^i~Hy05d)S+2W{L!fW)lz(Lyc zDsA!!LboLQ7U!%n3-=60;nLboe+~Nd#0MAVhR)TkiaEC{Uq9p4;nTbS`6}~rmz#;# z?w`PFZ20>Fm+xy`Fl$;7DaBl+1a>%RCA*BF2@@JSz6 zXq9SvZSVQ&KXYv^|Fd!1g_w<2j)A`1K5`mFmY|R%L4s`J8P%~35lNzk_=y&YMu=WQ z>Dc&COe%8ZEzszycOMv9R)lop(g{L1SkR29=Ml?=avPiSi`t~ZVM1D6ExbjBA!fv( z#SUJ#?eh8|sPN_d-D7UMH-8)amF|UZ=E&jqHvRS0f9l*kRvhKhye5`j-`)Ox$`#*F zbD)K1Hy*=G?v*O6;`y1&n&QE@k2M;~KQ1Q>xMq@ex=OpTPtq9*|2xJh3M>Eb}YfGVM#i=XJ4*hTkB zVB8ELt_V^GK|rST>iYA^H5+na;hK?0S9d>}AHChU>4eiq|Lflt9`mO+od`O6^Vz@F z`D}Ciu=vg1q|c*P`XpUIRS%T<>4dJN2XmQ+wwz1qDfl$4?3txc%J9J_d)f>heP8ge zxuKmO$1Eev6LD!0eF`BNuw)RT0#ZuFa}Za89mfIfW5A&(aNzg{Lz`vn%V&sRUOrx; zh9m^gG64}pT5`TZsySLZG8PDh@yq>3mQk$|O4_Z_$Wz}5y^el%Ij8dO-Wdb1cmvdNKGqW{&s)4NYx0H0VCN-tx&^_ZMra};j}K9#9-5L;_2c6= zsMrRF=|~kjG_{!kPvhcuP$b~u_2658u(y~*;DLF)cpIdx%9q}c<_}ho7!?i@N5EP+ zA)9guFT=ag#@33jX|}D(+lo&su6}xtwdtpz!bc>%Y*z_eg0aBi5ivr$TD`UAO5M<> zUgUeFwLS+C-kIFO55FK~*6#~2h=olK*c@_YPups14r$l9H+%?bCI;Jc;%2xdGz|v( z9YW2BcX+60g~PY^rTzs^ZvrW$!x~v|g%aw#4I>;Kiz#G*?A!-Cv_CgS%SWKJk z)6_R(1&Mx#5c3^sgpT_7_8trxMKp$#U%l`sOHA6Q2*QYuTXoFzbfs%{v82rOU0TM$Ee&r5+Y3K9M(qFi=Fq6`dJC2y3WmOdLT7ok0$yMns_EU=Zh$Gkhnd z?-1&~>mb8RCw1{MwO=I3zgu{jZY?NdYagK^u(nm#G6ZM%7b>2{gT=KO*!gTO`{&fG z%Simy+;e=46dqXNmUQ&Zo76$~%^oqwk_uPrbf6btxM1490maDAhAVL;1v<~Sf3H&1 zVvhv+Ldp|9e=dKnN3udqT?K{E3`ez$kV+et<&Ddrlcs1eImH^?I$zL&HX7M8+ zRA*yqDTVA&RS;6}foO<&slF;!bkl+aOO7o)M7>Z*Z6y8(;jok%3W*VVM!CMnF8%C( zUAiz?>tymV(7?^M7>S5xP)FV!v!wxgD0wx9jr^SCw-T|6qo5KqDdA!VkiLcEP*(bP1dMUdms zG)Be;Nk$8FPz_8eRpBtnli(+KE#$8xngpQ;{HX?1blK7vqb+QPSS6C6Ajd{e4!6lS zgi)$($P$vM0cAHXL0E>tI!wD1J7Z8OVa(#u>tDCE@b-;NT?&n;_uk%<0ITb^!WQlE zCfyjCT!p1-)BW>*i&^y%nw}qJoZGf8lA zzqJDCUxKCc{VJ1H{-U0m(a@1e*WjYS>DDV%vEK%N4SuWZjMaC$uEc%1^x3TyXOpg^ z{NWLb-$8rE_da`s2}z&r-TH4A?;Q}Hc0_Cw;j5m;XGRcH2kra+Aq2;SCqh48F@gib zAhcnC@W2t0K#Uv*C8R3Ir13jF)VEkB^Qi9uLT!^E=wXSbHWad{#)J~#5Q#qd35d5b2PKgbe-sLf(v{<@6UJ^cRH$QMB;Q0!y!>$|NYG@7F8lyhQl9n z-+T_cKiVG6|Lw@P8!zNcHxHfL*1h+sBIL1F_5XNpJ{xX{&0I%T@j_rkKw^~8=_F1D zLb?_nl~PC84z-GDn*|Z($h7DeIX>zGQwgFU6ShKfV2>>1PW=O@TgKM zk!TfusenfM=YR}_@qQ{8B>sdT+#6WyjKA@U>9R2!+Su~xqw|(y>8B&>KluFLqW<~Q zb*G}rmZmP02eH63A&7AFXbvl>; zXbALM`t0P6aor}VTuxVTYuVKSNoJuLN2k4FBP-0V$2NL&T;eV>~QmDAz z?L)LQ(n@bZ`@RYMyxW4k!XdZ}K4S1Gdf=sT4_Y61s5Y-o8O%vd>vFer`RL?6Cl_@2 zUrNG+wDbQ|AOF7KKXZ$C5A|nxWD4482CfdN1=vN(tK(Tkhk4nd*?0*vIp5)qLEb)BDrs`eU&R^*(~G7hG=X&l!Z5M$9U zfwcrwAasJoapRReHJQ@{!i;EGoaWQPoA)i~#-Bd23iQVI&igu!4j&f05zWc<<5vZJ zeb@o#{fp~ zz`7I1Mj-^32r(misBP$gn(FMpL2Eye=X7VA0bb2dd5Qh~q12y1T*>PIYwDQVM`ed< zxg}o*V3f(Jfm$;N3D-{aP}|&Bq*h2OP(|`jg#Z&R168=AK^fsZYz)76_C-5dZchX^ zZn-eGw`vm*{&OqVCDg47mSX4c=0jV~CUotZn43RP`)zPj3c}N0HhUzT$y)UI0&9f! zEX@tMoQ{N$?tAfSQDa<(y!vH;S}GvyP{7hbZV|Rn(i9}&_JtmDiEhABpozJM5f!OK`!9r;DXk#N+s;cFyaNBnlmn zFf_22YZpNfVAUv=J~)5uor1MH^Fuo~#GqL4^}k;&hK>+~AZd^+fO;boHlC1>i$o1! zFCDm*3$sJD-rE~~P<76U}gi}xE{2n23kP;d~m@0FpnB%^+&gF8C%)zJQrrOd~yszJEo#XGUXGIk) zz-#ElLuKRg`v-Lh0~z?>>=hWADCyb<&mZ1JzIe6gbC-t~j(xuiP(4uR@rZ8vw@F%A zRm~9wvF+qM5Suts>>#32JR=YyM+m}NSuGRR_A$>?)ATAMhoq^Fke6E3R$ju4u7w%^ z)VE)okVlAaLf0T%?SZd@iQ9Qo4y4?Y<3tuaw7PvHwXa^*12LQ=L6?07n9d* z>j7`G`5dvbXd!Id_!l7bO?@ucH+Nd43s!>|c|tL$T{j+8?dNfZZ)Th-3|DR&>zRl< zscrQhXU{^!-k!R`Wx9G5bxB!D164u!Cvf6zAURP;o##%+h#R?kH}KAW_8d;Wv2F&wih8Y>W! z%11H6UqE|J=JVQi224)oxy>F)*Tff+Fjnq{lG&)oa2u)DHWkz-PwseIbvRbol*AFwb;bv{?lRCs9FSYN=tW4lCLCKWs8>3g1 zN+^hrfR!bf5rv{RnX1?b6%sTN+Hphx2$m5x)i;%=WvIgaM!o7FhgTK|s^WmLd)7D+ z1gqfVL0XSO$xAQuOw=zsZG0lQ0mpK`s^+~9MK5M%?*SpN$oFj@{}9%XBA#od9OStz zxZr4~B`dh_p9_nn?#LE{-<7d}aI1uf8_m=L2nmntz#XBLj#}Y*vAr#vDzj!z6|Rs7 z(b(wB&n{Sa!$Xb}7!|`6ft17b^k5G6EqT z(>Ih&rI#X0izzcP?dPMG6Ft~es~LINr%0@->b7_)a}6$JY=6$LJn~-9SJ2FX1Hx6l zqLC>*e&s!n*v2;|&+pxebNlG4f4=I2y+tJBeW4qdq_RFLcyYh)9?a5~3z2Ysh@~k5 z0btAWhV)L)#DOdB!(g*l)Kx_bC)>zwt&G(+8>GDTfb}LxhuhAnF68loj+QPib(>ds_oqx3bNS z`DC-pTjf9Bwq282@WV`gIF|4=v+JvzPYxZ>S+N$g3TW2TS6g)oA=t`Pe4&;;st5Rg zAWZ0>5L)3d|4VPsm;IvYoMtZxav~O;1y}I(CYSeOB0=YTgorE8(6E+%mTP zFrz2olKDto`{v``Pi6;Thl9ze6-k+5%3e*)hKf~|Zc)YmoOyQdz@}B<$CD=PoG8XZ zt$yIdt$eBJHJuee+UpGVGg-m4y&Qf|8L;C|=SP+9xa;h|moKhQJT`WYtn-gO%dfiI zU}fvbhxOu>qqK(eDP|CEA0$8I76?g80}!I;uYH_w$QS`>@@?rOxkdsxLwF62IyE-I zni5|iwB||}+sA&c{!3d>#tY5o_n(=q`f%TyS89YfB6PxP>ofE)Co=gYLvV$O+)Vu&9ra&QNI@lCH4X;xZj`N4{dgNgMMa z7w1P7Gpkt}>s~1)IzKVPUM;h4ru!b>`DV>0cV5)a3*=D9Br=>Es5B@?6^We&L8*_SUoIp=H zewgy&)oA+ZBk%d_8!1>!BRmHrWz0O{fd>y~IBH%w-WKzXuGaH(9sF`e@6@FMIMJx4 zxGRxBNUDjHpT-MDPYtC<<}9INh92JNpLFqlJAL7{-NtLGUD^HvkE2>)-~!Ix!<{Z4 zeo|28S0|RaZ7S*ZeV;Kfq;G7=;x=*N^FWjmqYqGF z9H1`qjV4h0X1ssXHS5_C(knIi6Lu52*D^zs2=3s-cu2KgfHR?T=(vp5%qmbi=; z^Ow>$)STU10x7+Gpa!1B+jI^$%$^9^hv|Xz4G3>>y+h=c>_N&;gOWkewSx5a&(gKP zkmkNwNDY&+lgE==T0()am7g6spmF;sUuO0rMl1ewbj|vLg}{>sWTym@hrKHLV3vX5 z3Un|waiMkk=IjUwB7jm@nn2pq-jZ^4p})7dT-yk@Y;arox`wb%z1&nrg&s)pUK1YP zvlEXr;STApaI46j_0KYNjBRCAopG*^DuVWnNU(A7@O!=~i0fQV9c=W7J6n0F&TWMg zubff4n1+HfuPiA4IiI}(TWZIoPPokq(ZN4OkGiUAD-p?n@$H2hLtX@1i0Xp{OZa9c zbx7ZK+nC}8&qb#ppqZEb=%vs{ok=MrqLeJ!JE-y^i$j&#qmkYO{XAYwZ2_*NAb z^h~`n__M8<(q=)UCf)uqPVB>dBb9h)Al%%8Oe;Lv(r5Fjh%;$!M+gV>#3^(*=38zN zJj?wmp(D2#1OfTwpn~3+*-}08RiSsgY#-2NI zsoKkOEQ{K4vuw7H+z44?_6>EIoa}K$%b-_s;Lg07H)6jMGKR?}7KaXmm~t2OQD^Dd zL9VhTp1&inxD4B5!o|IKIu#joh1+l<^aihtEGW~pc1s!&^=BHc3@D`Ojk$zJ+xll> zE)~ae)Z@dmm9cBWLA<4$jXuL;9l?pcn2HS@KKve*B`-K(aW46nno)DM&@s4xR?=6B zOe>seMcUrrpV59w`cRRXv+?W5ENmQd_ZDi14XW+29g6YFRmW&$&`ssUXFo@O!~bK} zSCPuU#eB2oi%DhTN%tRuzM5u#`o6zrMJ1#)0rrwaam=kX#FSEoCNBgVbnLvLhco?J zMr7@SDNmyUxkf@ev8hHBp~@?(GzEVnsV%#0vsNX!-;U@F>>^o&96D@l>l1$}!4#WX zZT&K+LV@&~pbTt1OW$B<Fpe8BZT)28)Oc-uxmWH~hwW$O71b*PI+`Xv)0Uoyrv0x^BL{USU{fcVk!2C) z*YajNH$OMSoj}lQN>JQ7_2K7?F>rA24k4 zNWmRY*irFKP{Gp7+okeoMN}hWaeCmupIu|RB9{3hV|2UuhM+&)(oy)73fcrR{&at4 zl-w)lC;2p>SFc>RYkV9%g|@**(;m#`vuaPQ`DFZQ3tv!&>#_K;9`}Yeu4MW8g90Jc zh0$`0hK{km=XK#+Rjrw|=T;JcYegVSU-$#GsKP4~NqblqK zY6>cTGe262NGP~5uofW=q}14C>-9V&b4Dw{EzZnFSbJ~FWga!lJlN#F+e2@UIS$u; zO;*!&I&O~P$i)BQS+FqBoHaSGw^txj3b4*EZlLYZ%D{w*y(5U{knP%038aRBvAsnH zmj@|jBBY_t5Jz@h*dJl;;sOT=gd}1m2w@D~``|crNhovsSch%=&v%uA5?ZZoU0CGN zb(w>eqp~nVu1{QR^rAn6%qI@Ad6Kos!5JpE{bDD0E7VN;RJJ<6|!;uGY@;|%vYn+|0 z=yk;8{OCO;xA1<4DKksodfl#ei^6;cF_SD#hmZtq(DXb}Dh!E>ceEI@*C+*JR{?Sj zQx_gD`nqJ68iY)~PS$l3Le&>pg1*&;>w8nNc48&o{~5ZHb=$%(XAGM|TyeAC=Cc`# zacYDa7@?|e_DkuJl6F>W_tcv;ej3`*O+FbTMQ`U^?^ye1FD=lEVP6QvR3oH|a8e$i z)tnfIT$8VI6a8JIYy(PIg`HcT8P%&iVin^}`H!_>R42ttr@lL}POxJ#qFX7r=PD?i zRK(WZx-DmK9~4%_%@64ro3oO|&_hE1Kp|WDb)8%}hy@gVm`{aK1?E~7FH$^C^>bO< ziF)&Z(8%V4qNjO~MGN;dW>tS!v@P_ooz8rE7xRCEm9~$u_TMK_89gf-x(%woGozLl zzVQSnMOonV_{nW+AA}sZ-htf6db6N!kJcdz&+OMTZy7wOI1m97iyI1$me!s1fnK`!inM}#uuUcvsXb7vD zNFBIJ#uu1cIB}A%Q_(2Zgc4GsW#+miw`KvOo)}%_w8L%Gu)-6>*YjX=v@Jc7#aJ~4 zguYV;|LRfE7p^6voC8fNs8`ap*M( zXd+Z(2vy5?bwo6H4y5{)cG2+sL`owPAh&4oGxANQ6_5`Q{HMK6Sc4au)+BOr(X;l> z9L^hcK6R(bFY#&yq%^9*Be5p~#Yn8OO$0lG`yOq%l94jh3drrM%BQ_%5Tpu7j>K;FsP|PbG zHnQ9CCRvuDXVJdn8plaiR(XUeXyoKCSww8K^uv`QEoNZ?Q%Cj(qIPs(l7s>S#Q zIloSuN0_Y=$iM|WaW}zR7`u*}2_j4_+<6INlH@`p6G+>eCQJ`j;9$9kwzW5Bt1zUp ze(jb7u~>+=U})qGiH3%vn^7Ib*@PbKtz1ltP|4gg$MTLc%7-yNs)(3&*3vh!kMES? z1{Qq_{7Zp*JeJ^a3P%cRohe(Ygp5DFZ5{OGYl1M!*#7+vCGKdgZZskp6=^d-0Kl)D z>C>+B%zZc?TRMEm0{44K zMYh>-C;Z}ZY#-iPt-&ZLdBq(7_ot>M^L=5j*%VwqNJ>L?Vjd#03)aB%|Wp^ zlpqA(L9!{f#KL_kZKReRKPaDNlxyR)iX&{7ab@7@&uCjeReT{KSVm1gE1An@h&>@#={eGXw<=A%tbMn^K5?*M z)E`?Wz2i@{+rp|HTNj&qM-e+rBANcoW170-WC<*4%9Tde?t+6jJuLe%XCVcYU{iuV z%}+#mbpxstMRH_wI13mW6Sq%~>rObfgkZgaT|zH)hBn?D5)SY7Um@*F#EF&dySY|JJ%KsVtz2X*gq`#MC3WXmfhna11l(|h}a+--vXxUSL*I6 z&-e4@dzZ@ZKyKF(?x9~3?l5;|h9_uTn|U>NVyPm|fs=86J~kfL@_59zN4v+j%M>AX zwEUKkP^lt!_UH0{u{=x^f_hwRQ|B5fWBO+(!SHGwG_m2Ji9IA#*T~#kjS%4=aqnbf z2jWu++~MjiWpZ+cKS0WrV3jAm_I9Lb&8$L+b5X; ziRc1y4jZ%K*0IivGBWX@wI}m?e%2iupSYfkKIgCl#-2My7AEQt+W2hUGb5QRH$3W- z{W=%)G%|E6EN4@V(<2%K>t}MOC(ElHxx0UAH?@eUw(;03<5$J~T%2vkdS>&bN$ zRWi*;#2Z~1i><6pilB@hw9S`mAGQx1jy`KKVqjz^JX?diRHO}lg|FM4G=|B0?kTdp z{K=+fpSX^KSd9qWX_xa_Q$Hh>M5SvJ6ogPR!H(#V$vH&*p%w5JE`nNTpM#1B(q*tJ zw9>-e8Jg`FngN$PHw1*D9>5ub%Z({m5IGO&nY(>ZL{%ybk+gA5=THE$RIw9g78KaA z#ck%$8NP$MsLHg%z=Qyyow~rNZDR+erIU1uS4QO5)B`)#A*%wpdqStw_HlW2GiOJK zXc0HVB7Dz^AWv^;7pRz#$esXL`qF&JOLz^>lo4fL-GLR~uFp_DU1$wAS?QBF+&+Ez z7CA#USy6=81|xTlWdGX=`=ClpNrJRxMVFy&OUxQ_xO~jMqQj|2JVAX(=@Hj5h7Vc$ zrYHmRDX4Kxz+4W2f!X(;=N};4OnXf#zS%w*0RW0JE-__gO{jt+(X!#F6wuWQZ5tw` z)ERPsaP9yuu4os=wlekP?r9_Ku>-isgOlDE@+RTBTK=mxvBd$=vBr4<&Q zNy7@;mth80UOR5W3x2ZVTkihJf)22zzAHzBDPX_55hcto*t78T<6Twvb$EsU^mQ;*%6H{9>F8Pqe~gEPpQHEptx5m3ua zJQ6Auz2hQqid1uPF{47?27x;{LIf}ph;L}+s+i*@#c**_7&YByTzSx*J1wr7LxkD~x2+rM*c*?&o+p0ss9)~=`B4pa4HNwn zTGIOWKZRp@8RkFSW7vtbpm3$se*5|&{|7VobN zOr!0pA{l}AuCdC(mlgU(cJV*ylG~_Ou8T}5deciz%$}Vv!kwk-tm0R;2gZW5dRNBK zMw~#^GYA(>5W=RizczWB-yeF=LeScNG=U&&euG zuJ_BmDH^SPJZ9;+W4vghB-6+>R)x3{2$6fm4Y!Y;48MDVixQHggRX6#^AH??1#Yg3 zte@%4U(=p+C9*_Y@5{%mNHfPUAY9Wve#|3%xIH$WM4qv7{w#c_BJzaCAM#yJ-8r@n zaVWAT!)n|3``9)KXA=;c*0ivIX$*b)U<^p7YG6ZGOc~jiM#!&(UaWG~)~C6VjZJE% zm^wofCkReHC}Rts!+C{k&Ok^{1Z8*g1$S-y_jhI>n<5wCJ#2r=Xwx?Gs$;j@z)cvI zp6Qe41t-G{>>^utWj|VzCB=laB4W`Wsbo+gGe}~RI%FSM@1epCbjV)U;V_>~Y8`gl zd4do|5hj+dVF&r98mDp7RND1C+jx>=Ctt6GRfA|hy!xrR>r*4!fZg|LW)`|N)+^VX z0%ayfP_VnTM>NronIT*3fAgg?z+;k%YzsjM<;Os@wxI7i$aiv|_mkq4PAs-!#xS z(nWvmn$wYz;YxafKz=&%L}&ivtWV>P`sdQljA}%fC_Fgg2ztU9RLgeX=L?)e!ws>w zU%Jqn%0P3be>4fswPBq}*pJ?R=wZ{lGo(s4@EVo0iCL^PWFhD8EWh34pWY)KU6U=d zBk?IQeDc-lQ}c-@wIYq|lGqy`oqQ5`*nTU{u=Hnx=Jn0|AG_tZfH3Y9>~0tkiiaac z7Fq^O14|#G^7n}mN^Gsjsmlzwf%2c^N1cB*atugrwJ7F=30-3mHI1EQ9XXvl9dyZE zV|8__ zuq!Aa2V0i_<^?LsILjoC?oU3>pnFp=c7ETs~IAZyu%XT2V zoMp7qYn$SJ$EA$Xrgggq`H19kFJ{`+=%aB@HnwfMwk5w?F1YWr`-h+>PC$4yx0SVV zX$&5#xKn=XwvGShycwI%^c3w;#Z#5;YqAbmsl1~yMgsR}jvQQJ%NCAM2qCWO z>NkKXB&j^&Hr|;W-@W6G&ZI~jH(20A)-MZ(<)i&!)u(e$jB#6>aO2}@A-3X_xZbX} ze?NDsw-sjy2Z`Nd*m%Ca`RjZGw@7(=lw>%g*q?;A=_As`l9?e>8(-WGbXgkH?4CuI2v^gFX;1Mtgh|;>3a5Dome4$9$+O}HD;J%^4XylSawiv-!OBgoL1&728V4-Aw!tqlhP08-E2gf8P_2p=MQ{6u z!6jC4s^*3_-uK!y?R{p}IgHAh#fx)VbQ4zeVb9tA3bQu;4&0ft2h|I&{ftY*_ch`! z>Up~SwA9+CXjkFO*N2X++x^qmRo&>!UL|PePhdFR$}RYlKjF@Sr_na=iQd%If-G|6 ziIg+FybAD0DHrk0ZP6AstAmS1Oz0ZrdZcZE@`5(L83@TCn^ZZ20JQZd#8jw`x!W?) zjV{1E@M=h&LQZ%CVY>F=)!VM-7RQxh4_9L6_;qlB)o_PJAw&;3``J|tcBK5&wx6yS zrVV5svS4$>Gfi_(3`$(KcY7wv%26GakBcUj!VaN&!P=O1G7Rn~rKepF_p#V|#x0C5 zg}=a7k3a6p=P7lLC_%zSOfsKadBs#N{E%9feGfIDSDJBkLl`Fgs$jf{UT)Y7t>)gq zWf1n>kxA#VIhNpIQ5E3|=p*{Vmz~8jX8-73>K-;AjF2fuq-f`uT5!(NH)5x2>e;O+ z*EX;dVs{in1scHq<1X=;{Kv!9E8p*+?u>2lAs2EmBkw7<{q=gGokr#u5a!O*AYm+V z-QJyB+=}{dY~7urke5%Oy*a4OeTI0<%=84b`%@35x(Sy>f3O(D&{-rVFoJ$lXH73Cs3|J z0SY!%Et|g`=I=kWgkmf;S{VU`OJ?gA-Bjr}WFWU)Bg?Rj&oYqPtP^vmk!u*)1zao` zfbj=ZA1=(#&hmX6+broi+w)Mw%{ix5$(npFSo|5)GxpBNkyv~Vs6 z>Tof&J!dIzQmL(P?6U(g?3!njO#isOWwRP%4?DJX1!nTfbT&0}8{SCtG%Aj?tuN@6 z%)Zo%|MtBPI%wTYu@v-P|M>Mw8sPcRo81wcZg|W;iRN(0$)y5MkBF7zS5!3-Bh#de z@jHYyP6G#wZG-m~v@j7zt;tgQVmjOsAI59^PZ?UfbF%Ir{2|UdM`R1HfwSDh?Q7LC zklP0oh!al=aH&H!v#=Y)IRKuTQP49Z>;1H@?tRvepn#*Q;$%;z|9q!$O`y1af>{-9 zY!}yAu*hTm`9x4kM}*!<9rFu2t|eu54q_=Mr@>ngX^zW8 ziX*4CUD;JNRu-|s);Gg*yQ~bqjh~77%(T()^3{Tbe)*F)1xGZ}M1T3@5SEhkFN_mq z@yQ-fJ`;Pg!pO=2tw0hd6u)ge-vL8d{2M}Qr_UwHA9mX_sY{XQk{##BK{MCH9{5hLBLF5yAA@GNn2n40L;Pqam9@^ms|C&enESC z(K(D#H-SoQDMrG^(G*6lnR!a>Wm*-?e`5lI*gLjiyb>icsb`X63Plv~sKTpLm3?W$ zX6z{Olp;S2)*kHmXe$aEKIym_R6|$jz)8B8OeKD(RfugbmunlNt;}B1pMlJJ+tsq^ z%YP%hz|De1GxiZ&EDq-5B&qX!uxF;Gr2Gy%e_(e1UU#9L&yJD#(aUZ|Twko^)O$(F z2L-PeMw!_wnmIdPHBFR`m^lj+X_=9)TvZ3ESAN)0G_j{`*wSlTMhEE}#!w$6uAu}W zMGRM(z{?9Yl!2wh$rrrkv1;r*KfYMt zRQJgW#{g1yg}63yyTsc&nF2^6id;^(oE^K!duy=$8e}vOf^ojv=#%yLA0{9it__ab`fq2xyYbXvYBD((x80Erpp<^u3g6845zJm&|I~D&l>P9#=*nIHVU$N0RIgksPQJlF z?R>R(*t2TFX|M_tfqA<5&V!f;3lufcoY5Bek+6(5QA_{^p{&RYZ(NtDy6$-idnm{{ zv5aZnW9>sWKzJsESQ;us>bTQ{R0*jU+=hGNb!n`NnqwVT&_T<2LAKjlGSRoT`|4E3 zrA!)0a-(OR!|%FolD}4fp1{TH;w~I!mb96RY;3Uv1OeEZ`RO{Hab;BTNJec5$jJau z{L|)a6GhN|20ikzt4;$7d&kM<@AEspwJSH%Iv7Xx9p9I9Vk4;C$KxH-W+#zZIANNh zm~3sf_1!yz0u+u=cwCpx2*p4PdQoRuhGgsHQ@H>b4uCS;SlCuk4R?4Sb2B)?ZAz|+ zM9z&K@roJZKja9%q_JoQPz0r)LSYax#E#0jf8D=A#@ZxqAS4eECR`UzqkE!FP`o6i zw-4QJ;?^zI;QkFmD^4+M<5+0c5v8C|DMBIP&IxWE8h8)_+xQnEtKnqFDc0wJI|v;% zkgrbdFM2;cd_}A961Q9*5pWx*hj9rbb5urDBegDUxM~Fkj(W%GWcHNAYGi1E>g^?s zwhq4hH>5$tHFvIOIt|)q7Z_ zV|C$XZn4EZPixGEqa3(0#+kQ}+oPQQ-i5g5E#8q^IMOaayiKSf8b2MeFu$5t{7<>S zoE^DUabF_KtTJK?FN#72PTiJSycdjllNORD5{uKKp>0a2NVN^*<>B@N+{_d;CM>y^ zsV7AUi!OWQi-_c*hM9Us#Nvz+DiAEzjD)JbC60A~p2N+;5?bwONxHTXJ4%sU9H$X! zwO0O6d;^S513kVKLduF#S@{&A{pj&fR5LP)AG^B_z?Nn+v%BRLcN}87ybJqkLl0V$ zqZ>O}0rksy9leC|ep^)WYasmjkTpnXF?D^=`Y-*57;Wx#>`20{wBpIw2$NGUSKMuI zW_>^ge-Xe?n?qnhjnT0PinjdFDmLxl({Xh7uJAl8H?`2YYqrvF*GNrj`Y6`?U4*oU z-L8ikCQpNUGqzikHKm}3Awr8A>;N}o1eWhUEpClASUIwOl+lJD9gbx}mWdERqca+} z13`IHmNXyLp|~2<+F1y)26eQQrQ~krvqOzRs^k3FrB;wdp7ze+kr`c#_Gh zW6&YVQuLW97kbTb=?AWeV&YCibLU9;&5RqZnTB%LZNnW%)J%?f3*rz=fRsnW@bN&( zz&P-agTNd*wCW?_aWa*pXYQH17h`32tyZo}8@%o`FbsrOu`?Cox;m*d1KT5UhKT1R zokMUIDQE#uR-j@-yDW{ZJ1w=aTdVLa-a`UAVTS@89#K~80E>cYS-I4XlhM0yiJARp zv~h5%#=?Jza|{yQd=bLbTVdsy?VUYm9*%NI>PS263lS{ZucIefe|CU`sk9!|q4mWx zu19pEBf9|{*Y12Mo!Fyg)V%uRo9A1~#2{^RTSsbQQ89ORCzLbz8*>&A z5`x*=MOgcrFX%-huyY8SssFi1Qx+HlK-KoqgYc| zgP@5rt{JH)W1#Jfy`@oyZ+Cd%ku!u(5 z2|@)d4*gM`8yL6!3>+arxC7A`5po~#coAv-YhD8aK4eX}L2rPht3$vM#5)7?`B;}M zFp;~*`0g^LDx#LWnF!OzgiBB9$s^9n++pir&7}+jG@<8?Okr=K)!Loo88>7&Lr(g* z0(4EJ5k*wUh)K_xlA`d0M!2}VaS0JcfAS%YBv??|iGFRP24v0R*acEGPPwT$$^XTQ zE%@?|qz@GVM9X)cLiLfx2ktEz9r$ELlW)q%i)jt^IEu3XW-dn4-F_zCDGn2TJ8+q9 zM^JPa?g$yc42M@xL6I$r=vHebQ@AfW+su`-WBi4w^5?tEO(kQw#e_9?790ep&Lf#V zkmk2)Nf90o5-F=wxvoVb(Wxb}@=Bk|1DO%o;Fko17?r5E7Y-vGagDO_%LEl3pM_?| zL?yR{j-+sH3OwZ{c+r(>_lPF^D~y^wg^Jt>hNBVG=OzkrV2`7|Tu}OzZaCr)l+`N{ zq-)=?_55(}0`2k!vu`;&ZqDmbu?=qUg0~(&!O3_XA!E7=PXz6Mt@-Hk1{j)LJVu?i z!I9M;7u>(z`s7dp>4-=TtwJWAJAQuJT$d^+*UqAiMvkf^vjvABWo`h}3FxEC2GJmz zO+k}J<^G_k1zGAP9+ytXX^i2+!}Emzh><{5j~oSQbY^6tn6qY>h@xVqw-%v@e-e70 zE|nqd=j=)DW0)ZBNFvLfwYUgQUKcIOK*a=S^)}(?jyMGG2ULw=!zSOY`=08S>eMoW zvwM|5c;8iki*gZ-)-VNyOD}4Pmt9}XOq4-;oBgt}Xc*V;*?9(GuXmrz?MAeKpN}2T z#@2KBPv~=G!xEz}*1ay%z}hddl`D`bb*q_?t?XJ;moR;s=&S77eAH=Hu5ExGhl1Fm zWRqopD0_;===x-Z9mwAd2=rKkC#hDQtcXT=9~=>#6oS()&ZrcArQ{67+#7qsqU_cp z>$oA)k|@^~y)Nowu&QlQ6kJAFX|jkWxlMMy=p3dEs1eT8DiPHRieA5<(SegX!zSQpY7*nzSnVr!B zh8DyXD~hV(m=#qvk=^py&Or*HXA25y4Sr(ynwLKtHT%F|fg|1Mur^V_t&M}%a8I9V z$2>_5BoRqrNaz@@zU{#W&;bBAe|?YEn5CB(cL1U3h=x;{f7_~ZiAJ>1FAc|JLip0|x*Ux0p18DWic<*5y`x)Mv*XC9zMd1pCL^6E7dYOUxZ6U6uy8-(SY*nJ>2gYs&flySFU;1FiQ9KX|gknDWqN=bIt#z+EL5M@R-=6xoqS`YZR0zZ# zA@F!dBDztU19E6z!}M%0c8}|6r$Z>1h#jRMaP*DYh{Q)3S{sZ>08Z+0SiFejzx9bh zgFS7b>}`pg5q#d{(^>4iby&aujU$GUj<{}YVlGZ-u*m5?pXs~oR@c6*m0#T2=5F39 zXy!OQ3e}r9!BJ&THjyIN3BG*k{HTVQ+%u0STZ5VjBG#e_84G%dyJx0Dan6xNCQfrO z&L_Zm6_F=1vRjjjM1Y7ZN5&@A3(J+ltGS?YhpX+N#;K(Ume%il_#*K#Yl3_z!sai; zep`DGfrwG8LWmU$LJ01)M>@f9MZXv+uEwED-)Bb`)DSP)jy74QSE_@MhW5u9+&hH( z$G$X4lnnwZmXjy)2GM;44Lv?Fu)*x~wrlX;pGTQH^X1&^N0(tl`1@a-7l4sJ8nB=J zD^z3r#5&3A^9V+(t-X@=kTFJAj6BG3yINfYso9(Okp;HO^%#<|ErqEdd5EG`Q(sO5 zUC@vI3BRN+>1?ZOl+j9rUx@iIoCQS)>G}j`xc}k#w=$#__FH?TAt#ZZ1t7zjK8e`T zUD#QGNJih-9xrHm4`xSwawm&sV;>*1@(iFg(Mw@U*B9UnOK}-(FkUnYU$xArqZ|-z zaFA<6HzA2S7VCDkLNt_Blg$BgPHdzcg%!x%`NX=cY6nTx>xf5}-AvnXpuZ*#u%M6P zo8mq*7W_!n9fjaBImk#e$+Ht3-ufOz`_1cs@vN6f zA6=m%wOtRkWP0FM9BU(z&2D07qu@0{26aqfN+%JSv5Z#5{`7VBWF6bIjj|nO;!Vzx z`^{o`W$cL)>vs}Q$%;j0!O4D9r)>m^>Y?KOlS9$1{GH>X*%qz4c6=D)&aMsEsnGBW z%BvIW7_bA{mb74bcD_P0B71@Y_;zXNj3Z3bfM-0^}Ndk~ePH$hAg5;c4}ahZq-j!;m_g8kl#*65S0Y7$e!&{W(3 zJHG2qQ*9;yW~jg@wYnl;*lF_XG-^2LPnkr=APoq!77&f1Q6;LGUuD)dDq{v00ikBi z5oR!;&JBRu=j`W9bZ3x!zS8W%bZKQA^bk^tp14!dN7>{sA;gs?0X%-TQM0euY-2Ou z{q9i?3@>lM1vzduswql=#kZXO%tgV=%p=U0Mg&xIkSYK4&S<3kV<4ZVq&H+I(OKkxEf!T+>WGOkdsrZht>3`;j?R zgD*EBz|2|$cCuX`h2o8%qPMY?$SuFp&NcErJJybqZIaDs7sNOFWU;e(7~`~b0Lh68 z#r+FWL|)MU;~;4De)6`&^|m!9XQbdvTxMj0e-7=E?PsnVs?i{;Mi{V@+`LFE7Ob2A z{_F&Lry>@4S!fdz-;@eUktX^iDP}+-gUm?6BI-F98ZY5R>GWlt+7ra!AqR`*(mwqE E08#2tP5=M^ diff --git a/samples/image/horse.jpg b/samples/image/horse.jpg deleted file mode 100644 index 7e4983880bbc8453c23080d5cc16f14285659afe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6213 zcmb7`=RX_l+r~reRl5*@3Se*eI8ytv+cKgW4p$NA#C&fBHi4FJ6kTpJD`A|e9(pKkvEgm`$gz5RRx zp1C;lxCZ!o^JpSe)m2Tk4GnmZ-VSaq4|&`I9Kvpw0crpWGBR>9QVMc%a!N`HDjH^5 z8ft19Hb$m9%$#6uE>1892M^@F5D%X?KL>}ftcbXTBoqqe7LtD?C#85_8Y=a_MTjUV zDQT!_K(w?VDP9gB;o@QGY|n8h;D}g8~^|@@NcaD=K32BNCF@x zB_krI_)BH!0mMYWzal0jCM5y>r9{L)00{#luOumxDxa|fvlJQsWB(RJCX0YcbOqEY zuu{!2=C6^B2=KpE|I@7hoPV7pq<;}F!~b0eBmxkT{+AOm5CeH78C6M`nE8xv2>_bE zkeC6;08j=ThBpqjAMHQ2y?*CmVELz2HcJznPw4M`xnh?fBw7W6ZBsYcdNfu|^@o-k zxa>n5Qw9&HLY5?Jj5&uqM!PCL09hY`qDyJzX)5esyaRSZJ9#Sbh?+2`1cx+z`5CNr z7{Ml0{8cca!QTfv!52kzo+kDl3?g2>qWl^K{aJyLLJ#k_WvI8vu!Q2VYc;H2Iq;Hwvb`u}5uF z`Y85f0aWNK^DhZWm`E_n$wo8aS*f(e-pH5SDmCWVEG_KvEN^C2BwR)*yQE>V=pHWj z0~{Nv=Jd_vAZevLN#o%b5BEd&%a8yp29zP87;7~Jnyc5g?QBKai^Vbzk6<;YpiZ(@ z_ga}xA4^%BuoNo(J4vC}KhjDX>ct<~}&S+}=gW}kD z%=G+JGe>78t5EV+l4;EL-DR$e>cg3#j#*(x%cn%`tie_pvNy&Ef>?5p&eM91 z@-nH%BheO!+Tt?9_4AqQSvRP)-S}CRN6sf_%FhMYhS3u`P;k-# zDB2D1W3BPtFdySgbRJ7SN3vul#3arMXK!QWQi53Lwe_ygH~C#(n(L-P6{)XrUBGA5 zDk3h1M|)~omPkXNo)2O>3+z_3Y^GIff6V%fMKCYALMbGB!EnL_f397#gr6th*7UOm z&QZQb-_T|kJF|jcbEOJO;NPx6DEXJbvv!YpcRT9(5oJDgJGEn>3Ej61%$JSCqhN-P z_bmwG5Rz>!^B%YOi%B!&6z*=*)d!jag%_xqn+K81ivi2FKJ~#Y_zSje*_SPl^n=Q0 zX_ex>nfUSSeuXb%37kEh0jtN(oeQ!1UZHh)drhw7CecxCvTsQaT|W<67MlGj#?IYLBAQhCOy|0^ZhLsPoSvJ zq?MyA=@JO3GMc~B-T3MlYEzxLEqef&{h^}f< z@qlys^oq^kCVI0EoUSZ1gT{ZNqh5Zc`2araWkMth zyv&N4`BuDxHZUTQIe1$h_?qMv;4#N1CSW1NwJ;`Y+$AMdc}>6N6Z~4B2erdn|Csm| zVB9qI?bO1fC=$N8w1OTEpjFEV#a`(mv&)E7~K}sMh%$J0ub>ENdCw2`pZ><|?zC}94wNT3?!V|&L=DJ;_ zo%IMavm8t07lMUYv?uB+x%e8(*P}mY9norrfBMpYqgCNE>+;L_66?f^7?;O+T{x^n z!AIwFCp{mg8C=M9?T3dL6>dy#8F6{m?6W>T3Mt;BJXq_xUlQz)aiXOp7S4r{&<7Wi zpIX`r*7RUN`bs}|Xj@c>=A^W$%a!K)8^n`R*|P?Gk1cGv9lL?2dMC7jArjRxb`WY& zNdPU*`T#UhX-J(F7(*JyV`Q$8PO+6@R;dP-$;B()n6gODq8Tgbex;*a+`7ZSJU`Rr z32&S_CGc!SL!r!P5KKmNyD}TLM_?;nGsJRI`xbz*+bHWM2wRW`p4$AQBks*=o~c(A zz?$3Ho8L313mRKhqY5h>$g>m4jA-q6H7YdmVBx-#`{$>F04G>Pp-`6>{+j7plcjX= zy^8~Nnf6%2Z{Go|0I(uxGP17HTdK8b1|D`*PT)awK{AVX8fd(sQ{dv5<@s3s`5I|V z@}pKsL~)vet1)Xa%gTJ!Q@_s0rvzJ86$(1zxCcS=5p{MpM1AHDjB@plXC)Qz>l2WC z^42}euc5D98^BX92A?T#{(zA#2Pf2RU17`WqoGsQoLs{wjUN7}ysZ7L81*a#!~+-MoNbL^ynNQ{`1p}vU!nJL0ak}v zVizasdVgbMYn@PYLN5S$^-zmYQ1V9o9nxCEsGNhSo$kot46FUSVc8gZI0gyxuFLxz z1?%X_&69mDQf0M_F3!UK64^jOy*XT}gT+5=m`AP-t;;Eh?yi+7MFAW)5vlv@%);%J z4MSIDJ*g~Rg^)Bxy_lDEUl7t!k%RT+AMc+{HTVH8z&ToM|MIDiDWYA zX5)GK!jn_|n{8KMjt?y(i!*ynQYbFWKM)LL;>eQ6`On|qJC?%y^6#z@unYde#}VMp z>bpY9?mW8Ue%^-kQtICi1v%%a&!TOwYo^`?u0va%?v+nvm7ufF+4wSzyMlb)E{?hw1&HpOsq|xq*2&w|CHV;h+v3nr4Lo!G zwy_$AanzYC^R{6Oty{&C3B`gOyM%4jaLI(%_a^kc{`dG=prVB&d#S&n$}aFZ_`}%b zM}~_(MIvuAs+2y)#StGX=%dpNNj@o0Uni!mq9^Soqey)St8|sM)Cn2LiLl@PuNp0B zLj0;(mopyeYj(X_9t6Lo`iX=1@a~)6W9eQH;d*ndn}E`F7HD@)iSf`n?jg>)oYZV5 z-qGyru^2(~lXHo-*t0X2==>fc?!PNJO7^CZA^w*?+}+%>l#mzQ+Bjh)BuTi&^PspF zY&5+FG&9za$nR1kRbrXZx)8GMgDJ2m99h&bQc9pdL&^=ZVYQhxq@rLbS4$LJ)4Lxh zwy5H_lo!>L68qM}>9vA3(r+|H~#%7X!(e~ZOgIn1O;tcSUDZVQHHSmckp*^gGUF|jFKu=GAz#*0CFr2 zDz=<^(RFNVuV{^6Os)l~%}6}+*4p*(%d5H%5E-Ke8h#q?E9^f?v#vX`Y0s?g z)NO1mVtf`bnU(Ve*griH7QtELkM75YJ8Zi)=Xdsnf$U__w9+8mU&h>@WvX}l#wfQ=i z$Yh!GYf<=dWBv*AYm(}gO^TrH*iE$TJV;fk#unl%Pm^eqxJu3H|oM7aS(t#L+MxMT?~F=ewnzj-RUZ{XS$E z-$Cv1--vnN)eW;(t^55BrrgD$(8NyNuOe+Q;W~{s#gOH@433C=DCg^4h_lh2n$Q;_ zG(7&+Vz(c4J&3lrHdLB-C+Djf@DTd$Sd`dY28|(>)`Jvmh3B+ab~`_&Kec=Jh3(_w zSD?es*QFYQvW+iN=hsHQI+JrX;xwO7-9&;9vFvqkZIKkd1a$2q6{88@FotObZCu$4IjxKk^W>tt{LMt>Oz zjBrJ}+V0tjQs13|iD~8I?i=(LCj1`x)k7FAw6-OC9q#I87Tl|*U z88=w{r~&tDO!M4lT22o8%_Jrs@ibIv1eH*$y0}9bZstV2?_{xgw#3aXv+O2c4;oMT zWU<&o+0j#=ny0QLR+Q~kx6bnE;j{(Vz~*;7{-vDPmf-6uAt6Glr|Tz&;u7Ilo*xZV zDOYr%Rf0eH(_z~NiGm3$5i^99%aoRrQY{Q7g004=Y!?0kDLnao-iK&HKYITA+lx=g z$%AU3o&L0^RWzP7YL*?6w%2vSb6S~89mzq6a4%dAi3eeCk z+Tal;`-Olzp548dRh48rv65Q&%A^cdwo9qK=H zS`+moW2XI{B%j8}^Z5z_{yNFiUZMuAH9A@n=@mIv)3|}$v5a1gABn2BO7C7Vzf$jQ zZ?%y1mw9uUB{ti81NDCPHlt&)1XKN9>1g1a^<@LnV~gBe_Jgmb-^HOSQR+gGkU~=S zMT0hTaBeK}U$LU|#hQYCctPLbBk@sCBll4Ah@LN-tFteHnv^fIxtd}(dDDdXM*qye8+!$aG)K9Zl7B$n)H_q!==J)I1 zU!Hw>#YtuPbhIH~YpFRZI84e4b6~$4uIOCSX9QSFi=EZ%7iE_rRCJ|g9BDk`wpvoL zESA}2$tKa|Z1eg^G>Qr*Pzq6f35t@m{r!=;eOwZ0rln@j(PusH9AW;l;}k;e$^3B%ivqu)f5|sQn@Yl9B54sIswe|xBLJ(PjuzUMA&8|{*45Z)- zkvwq{H6>`AO!h~Oi$$7XW)ZDwXLNPGshe^?*MTfDrg;Cw3(?1USxmqWuNUQ5g!BHb zmshE!9>i!wzaBGN|IlV|RKY@YsCPM!sDh$2Z}czI)hoQb&a0+lB5I)4d~0 zp{<6wWx7)#BA1$}Trk))SHminGI*s?_e9Tfm)WwZXkmy3_H zJ47F3H_{y5kM`ozO+YN4bZz$a?l0;-$B;bnTVa4ljJB0nu?xcw&+S#i)=RayB(drG zcgLpPp5Ul#q%^?^G}7tJhiV+b#vu~6bpsUw-MUu%IkAG+ow~~qla-Mz0VjLm-_tt} zuJz&(ht~ziR?->*XgtYN%tX-Fq8kxE3(y7D$)zFTBbc|BklCt18v=*; zZepEy7-fDR4rY=0pW6tS;VUsK7AQLD)Oz6|Abdly^@Dg_ZIJb0_!CnGb*EG!7q+H< z&}vPq)efDp@aFkWCgv?|vX+y*ppg74e{0PMrmg1;R>aR+3r!`2AhVZOsRG^Yxntb8 z2h3?s?xR5OpV)sV6>J)}y~udyrPVV=1y1-$Mhxb=Qk~n3{$!UyL!E?s9G_|{xMp^Q zyA)}MgQe>0g(L0dH#4h^UoFR)brdWuztI`$3MGz>Sg^ic6MI1wc7>*jLk2vfpE$H9 z)zK2OS=rIxm-{;pY8`;HRS#ypBjt%9%GXKD#XuSeoQQ{JmJ=fW=uYie!^84qqg%k4 zm~}+vvj*@e8ve8DZU4)@{So$1XK{95%JgSrY{kh2E58RnB&#wbfNTkxI~)N0Ruygv zP9>fktyyD^`f5k!-br;O$!qX@A%%GJ1V%0gs^MadZmW~4EvMi~&1aMWg;p4-gJU+_ zVuVj(WEo{aoALZfUy@ms0n?O&{EAWC0txcxHs5T8Tp%REzz$Egs-cd%V8bgk1nCs4 z;Z$8>Guu~3U1xK!o5Sd5pxn>kweoo!6uHF@B@pYz1GeczR=G`TwP%?!o-gb@ztq)^ z@5As?mV?r?`BA4Q{BieI)oogKS&{?Y7?F7P#W{Q)xT)*CM&m(pENG-i*k^dG@-dJ~UQER{ir;}Uq3(+#$BoV?){nBbg zg^e2~iWpEf2rW-T3VglmQMJ-nSHSKD6E*VRD)ISw=22!~dVoR1+8Id-#E;}0vBw8d z<8*Qi>db}L*xhnNcsA4Lc4Vnjm8uYEInt7tQPG|a430O%o%J&{XTc6yhtFzm8I44SQyl-_h1^5{o$8XvM$5QJvF+W`C~8{uLk^R?z>~4jJb*!<>DO;R{||iM BX=MNa diff --git a/samples/image/horse.png b/samples/image/horse.png deleted file mode 100644 index a9cd2a354faf1eff4efbd3ff3e2e75ebae295006..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68852 zcmXtf2Q*v%`+q1Eszhs~Mv0G=+M~6L)Tk6CtreTv#1^Y&jGArD+M{UA7NIq(h@y6h z6>68*d;8~m{^xgda_+e~xhE(0yx-6BTF)C@9gW*GtTX@s;I`&dRRrn$>wj+`IRHSW zuSjh{y0~fmOhXmW^1qiOZ0r;16KeOT#$KfJ|37l9`6K`UE`X-0%1gf~tw!T&o*sW* zhw|;M`LErC?fw=C!DQ_Fg^~A9u>xyz$~HuH(gh=Q-pOY;o`4tNG#=Gx!1Q6$2ON# zQae4Y6Zo)+&DSKxE4UfW-Vn%RFd-@@JV=B6CY<+p`f`cI!u`YM45xU(J6em&^+Jb} zfEI5=*_&AFQf7si8?HuyZ;|968yC5zsaJ74Q{QE#g$yQ%(xQeRWG)}}OV&sR+>sGh zbud`bd~fu3V{6N~BUi!y&Iw`uFX*SPdsCB_Do`bRpDSiIa5rHr`yR7x`OeW#pT8bv zAN9AcPBijNo6X=l?A??UNuL)--7;FK^1byeO?=yMvo>-x-*@ z{#l=$!zTATt3Tk~$L9o;@g zJh5b_yeIhc*H_&yPWK{nimH_^C!Z_Xm=3IZ{RBUm(sA1Y08oE##q`!JWwWTEq&&@} zX-qKI11=MiiK30|I`wujaG<6B=f1wYfZ&a9nt!QcyjsmGWo&>yO9bxOjIPx=vO0%} zmy~5Ld)^N7@(s{8WG8D7k{(9_{LN=?pUHCu?;LXR6b+-QrIq8w2kPGES9N;V2;Jg~ zT-HjbG^rfV_8RckukA@?uS3^Ny)rIN>BZ;c19H=AYa6ONxb7b$uI@vFuP=|4&Nn0h z%4xRQ`z4MT5DpBXz=;4@A)Vh-ey5D>)f_9|i!!Jw|~gE*)iUmu(?(ase{A1I(iv8;36?SR)AnE@*W} z@HQ6?i~&Q)g&=>NM*SYcfFKx`6fWb?u7DBWyW)doPp{pbG1^@d4T*Zk{N6v;WXzwj zA>^>!V!orJW71m<8u_&O{9=BTB|>9+V~~%{nH|6c!B`F+a#UimpgS41qw}9eor)7R z`f94m<{|!c40X&VH^^Y5|1MPU zsb@liv-K0DMYVLrSCIAiCqs*DHrHKunLjk#h}L~q&K$48vK;VuhY@Hw?%wWWO-H-a3Aqh@2hUobHG? z&pF^q49E-Gi~O2$lgITOSg;+mYNCFlJb~;0RnITUG-RQ=U-kbUHqc|v45PH+ONP_^0`5N=GyK0pmq~O z_Nlny^NqCf$*fUH2UmUOOY;T-(bPic%c{S8x5o^e9p6)PTh$NSTQaJ~+D-ScfThA< zf2^^fGZI8@$suIo_$hMdGJlj)Dts<*=U;7J$ko4LMJ?dz7H9M7c@@Y-X5BvPL9F%Q zKAy;=t4qVCu7@6)&nB}>=F#RZop$7P9MTyr6bWpZJv@A<^07>U780~qxP6Lhz#9wO z)9dI2C7}%BbkLSOrj;v|Qt^nTMx*H|kEc_6rkqCsuHEeqof`@DAcW_KI@6Q9>y?l! zZMQhn`f1m}q%Bk$RnrrQ!DGedZwkc25gpMAp0<$f-LWyI67%|s0&)}$^wYb$U#3uH zy*`9OqoTOlF?aVr#4TO+=cS{oqPdNU_&;_Ek2!tsI=QBLK{u)&pLgx{pbWImB2<6T zSX=*YxchPMO6}%qM#}gM;8!yrTzo}>!iKd z&~#bN5-EG>>2p=m>L;JopEf>q7|_r91~jPzPUyCQ4)u?{6x=!5V7F;(L(^X;UGH;_ z8_VSNSla~I|7(<2)5B|Pf6Yno!t{);a;6^!NIfN%yh$Fg_P4Kuy~Vw0Yw`;6I%kIE zr+y~h4B0H2vl#UMo(7l8n&dO7h^@#-;ICr)owg_>Xf)=1M@cj-Vwg*Z9Hv=5#x3)z z`K?`q)o=e+)yvu?w(BoSB(>EW!-oRqVn)jl9BW4xjC0d;Et@UX+nfwOD_{3 zbm!w(*smz@_XxUkd5;A_Y8f|Ee0QZmX&Ebgrlta0uRrO|Cte7@=ll?dL6nx=)3v-d zUtK|spf({Gv&^bT=oD*9y}$gGA0@Nq<_)GKaA2Fv5;B04b_A$q+^Le<7Zf#)EEaZl z68)$*weBO2pc&k+ppzLzH!O-;v>~fdd2N1FR4M>~yIF$(O}9t9IH}tJ!s##|l^8MZ z6msP$g0I^jyNY>Jb2CC6a+q*}^Lh8EIrV0ic2tqT2-3t^b`@CQIzkCBdJ>8SK`ezk zW4RhlMH4yWOOn;5SZ8N{Zz;)WAwBdZD9j)!tGp9FW;SfR!Z;%!8CfLgi33&w2!RO| zfb>}IOl%(c(&sApUHu)+3u%;=D8c0+9L(qs>NuK;jeVJsc21 z^N#Wd7e&f2m|@_1OB3{P;%} zs=CE!HbLF76&hKSf^e?>$c<+~ysL_^UInXRqcv4x?(;Ltq9K)ZP8J{;U+RQ0xm>wTp>yS8;~K)KK4mUosqc?<)lBj>)l zz?&P+KbE`t5BQYiTYhwIZ69;IkKabkhFq($Q&i6dmBgF5IX%^r-+YE*-p9UMSU-}h zmc;YsuD;aQH^heheBR^!hs=Pbg0?8%saL?`;a^)xNavk+jUuve1I;k7&3W|ZN44Xl zKw=P6aaj6W9VJA`zr$(&T<6iCi}ul6C644n@SF6LE%9b1<62TNU} zU3NAMn9xR@40}`0KU)W%7FAS7P~kzkg5zRQZ_1^F$}Sc>*(o@RJwSZV?}xa`Or+nT z`5YmJ0srN^+KI->?whT~rQ74=!sdD&70x_OD{5d#F0{nG-5-^wmCt%uA&7pAMK?GX z{UfHkX%s2iK<|2f{e80|qR}az5?Rh|fes+ld`?Q#nawp*1~w4}F3-FFsIaiG_?YRk z&&vA;ZJ&^;aGO!Z))pT!Y%%#i=df|4X2kVL(zVP+jPJ-4L4I;l_A~sA$B<6Iq+GS2 z+`Z`%TCBtBz1c}ckC~77d#$en%P5?j4kztJ%i#uCaKe2qc&tKtbK3ic_eM^ORFyRq zC=^Ov{&g{NfByvx82*yR#NghSkDqOu?hdZj3RxHf6!1#&ivM-WDz$aaU0)rC94@bp z%6of3ss^$o{tNByy7`a^>NVkbI}09kx`*9vs_ohAI{lz00Sw?Sq!VjC z_lfO@zg^tjv>Xy8B0UISs5e6_uYb5IRM)BLo5bSt%hG7=sX=+_iwEY5eqs$+U(!-ubx9zc27ywR4KYO zDrY0JyF8I&woL@P1gV=h;^Mfcl_uILz^+sg^A2^%t6c*FBJ<- zPft&|VfBJcuFeVp)lg-W#$@6FfPqgK>=D2)(9~YpVVQ%|V|E3(^S#U{>r~;y=TV*L zOBwJcZLB8)zY6>LL+7WITS^mogXz&4-F<2+G8kRPD3ylk&v2D5&jdtbdp#5`=A${U z&f?PHj>UCY0N|UEQ0hqbEtr5!P;C$BCqNm%1v7Gfk;e3e!U&kJ27Cgnq%{5x71VQG z3i!TuXacl}_-AKUZ}J5GWPoiTb(>e+pRtrgzwgoB99??}v=Po7H0WD)5}z~5hgicr zFJ=R`TLKQ@Kowv+Sds)N;7}4mk{R3=eu4p^s(t#oxW)m_!V~}%+R%r%2X9g&vZcXI z$-CBdUheYu&~let-W*hI0f!^|%_UX{(#_jy<1n~l<;xCM;Gq-thpK-6djwapdb~Ka zcs$dqb<#y)a2hc#OdLbHRpT-?%dBY0et=-k`6&i)!Ef(i&x%qJ@WRGATlK4D5?VRf zAsCFbD&)<~{{9H?m=Jsv@K`wIPU0;?;+nOrxtkp>rg@@nQPm$zY@1e(e-Uctm56szwow>3h}7aQxq#V`;} zN8aWBYRl18z^tm(G;5vd(htPkrU{4dd#YAR+UBi+oh9eNkUl4RrJxg1!>y#8F(Lsz zX5ED+6x3lDT^j&IN)rit3XsA8U@pSSK!5|_4+sfhD#&=IA~rV84I`_uZBK7Fbie*6 zmGDx?iAv2}*xtWkTK2UUk||y;k@4*0AD=uCP7xOe548AyI3EAt|&TF|O=Z<_A0TO3LP(5*|c!&dcdlbI~zlaMJXNK@# zhLEf_ADPjMO+y+LP?Tu3+~y-bckBmrz_5$>=3#&bdtPpC6~0_bdrx7zq=PWuzBcUz zWqK?lV^nDXYy|6Jgo}sv=h4CEmzNy_ZRdnz2H{AgZ@@svMXl2Pr0(ozgZtEB0H<(j z3;+NOD`Lv8>dW9_yaA|)9EWMeI82+8p(QK)RuL<)6GY+CI^fsAQhSel1hRByJ)_yQvo>0a6VUogQV{!_v(e`{ z;i>8oT?*5LX=C9PgojOhN{!GnV8P2!OB%p}>4PfXRdC_3L*2wu(tX9VF415z2+sr= zz>=J!`%U4$rP)tTX(~_8A`(Yjz8l>t;8Y6s4h{~!zIp>H6p+MCI7oeKZ6y$7?-aIs zuq*l1?GxtC`F`S%clp0^s#h8aitZiHhFH7oUYx!F^mkia|0PM9@}SSj=kol=Xw$ii zrn##LkIIK51zRU5p%hb*)$vTOofKy94PY1+XXNqPYk0FbM~4j-A>Lo}vq*OUbJ~^=}FDf3eBd)a%@2s!f=Igyh`=e_Vy)BxS zTz5Aor>!|FyZdvk>Fh>)Vy4||fB&gi0h`G_kjj$3JeI~5C(`+3_SX_ zvK;hyTF8*%MZ22*SZ$9t+8$jyX{p5=*A+oU|9mcpS{T=9Tx~evk=;F*^r1}5=VnLi z_=CPj$J=v6`kU3}xioYXcz=W0rsE;6jxt6yb7$jYx#2|(4H4ILO2J+id-U67Q{cQm z9pslsjsTq^Ub1Yhu4r{Ik6>z!M)u6kqFzW>e4e_j`V*@ONrB7f%v$=r4m3ouLOUHM z<{x$g3+B$-<327+SHOOe=bNRQn&oJ`qZg8ym`e|*3bRUX3+?xtn|0FhPtSL{?(wPG|2rySB}t&F~)VaL3G&tO~!qoq3m_Xh;k>C)usa zVFZ_D$51WvNvm5J{QbYPbw2GE{K|jG#>)&?{q8Rp7LvB2_u|BD7~W`+N=o}K&{f}l zYF$eE^_)$GNUQ=728($%Lm-5W{Pr?CX;8XWsttnry?*V}{b6=a{ypMR#SCH2_;&^g zhV9HYZENAAbIebA_?717`~y55>&KpkEy^Tv>K324|H-i@qU^zHdW^hiv~(`ZgW}j& zK}Y@n%odzG-X#4@Tb1?olrE^cdqNHKt{rgv>rwJK!mykP5+eunM+F_NG(I4bu(|-e zrs7lCgT#^3S2>1V-g1}!ijq)n-IrHis{G!orW?9tS>Fx#)5Y`Vb*yGkIWxI(^R_k|CqJ?^7!Cw&(z{kc~W`oXHq;VQPo_e6=hhlTvjd$1~ z00rhfVp4#bnYebkoF#Uks1##TS@FwclMaSCj@BEA4gc}qed;^0uP1+Lr~Kvej&nKO z$l(|9$<(@0%pnxc6>zyM3mG^)%_>?X)F8KVHwwg%_G;!5`R*H~<+fH*JvAG9d!Ayf zTN|5ajxj+OMA66mbhd@$M)(9w3=KrRXn4L|yx3eHFWu0PgK9vrQa~tlH@AF$nZ?)&iXgwgZuYs`z0aHd-Ll(?!wH&~SG^ws?ZvH6GfRxgRAyzD?gqxIZ~c(%@Umn0(`T8xg%!(f7fb0rw&FCoN+BWQa~~ZW zCtZMQiHks#P9mp)KGswuV#uGwu84=3h^ap{R;h2bOGim)#htyz+?5OC!MDT5 z6arBo*P{&e4ZzOd>~4l1TDSD{E*9l9_LK$H8jDgD75o`LRuIXO(w21#7c;768O&|X zb6qblf7Ts|M&mJe=8h>0tDY&$iIPfj#ASqD(>dbhej|=K$-3QF3h+2O(g(vn_oCd6Q9;Q()IGK9af8=Z zXtCcl6;;j{&}VpY%9Bs}jh~6WO=ir-X}0m=gZr5!Rb{>48xV?LPL6i9AF$)M-aXn| zI&oLXGyW7h9H!B0Ejh)JW~<4;=zlfo8TD@Jm2Zo&0XDhwGvmkUO;b~A=<s2rVl&`X0c%Lxr5LmzdZ1TLyzTh1Irq4#IqH;`m3L?UQxKBWLV z-h$ZG7~WOvKsn}SDOGe=C^5R8daq<-h3fMiSz%Aj@FazDUKHcNnkXIx((D)GtNd7$ zAZAePSem+!tf682mHI1Z6q#X-GdNe`?ovW=P!*yg2d5 zbrZvZ7l$1%^vCF|#>q6OwwZ~|d!7$Er70j_0oJ#6(xpWm4z;1R$p-zDmBbl2gKnnC z!Fv}MBc_|m=^qE3?eu(IJb|zGmA~jt`1n7*?~%OBJ-DXeJ&cMJd!p}gRB{i6jU4+H zX@Pcm%%B>|%YG7c@JOKeI|Q{z2iMP-3OrkJ-Qu_S-Nxs+krV%y1weg#i8Cq^4mW}q zW9PH=;FXlX_rf!aMG>b#G+(qwe~|x;BI8zu)=n}O&6~4R`F}l7pn`!kTrrmVW3at7 z@1UR{Wr41tghc~JwT1@tIQh)x(YLoC2$ac2L3=u`%TqoXpbXU?6~l;Oej!7}!$2M) zTy-E={IKCU!&FaD)K@AgIfaSsgb{USV{;Z+HoBwzcnHP4QGbI#o#)PgufO&yQgKKk zx4mXIx$@Dm4hkj8689#By>zqwttVUGbnBr(q$Cam>m_NiSd$M!W=T02jxZ;)VM>o$aP$drhL*XX|OhCUea}?>t5*GGV!5HbIKNxZ;HPXB9L3(#2iLudp&-ByFhEFr%E(!u0B8*$!?;iP@Kc!F zBCF|@n))e5`}pMVW!}Y7-ba!;ghTdGCM~Ay^3mQXX2kp;SA#lb_U z4=NBPlOqHcB-8C1+c?_l_3-GRv0?IQ{W*kc*xuS2Ix3$2Q8T^}B3Vx^d4m7?T3PVR z?T1D05I>L=Ofw6TaA)C4HGSyEKm7dsw!=Ua$(-*n5`4voy~$<+_~T<1kXvgyP&@=I z5Tos0{O}i`!k;*@*%)*LtL$>Kj33BL;_I)yKZiL z`=<(TZZ0-aMz!}0Coea%-lk8$Rk1yAY$61gjxPQ_Xp{%5_xUUS+rG;lrLz8AxbF4Z zqtN>M)0;0{2M2{yLT>dTZD_wR2l-I7h8NR<)CC>u(tOPD5838~r#J7bij*wbU+?v7 z9{%wn7jAcH{8ZNKKzbHHy7QJxo^_LmX~*rW%jk0b#CLH5#UxpXO=NF#9i{zo`rp@^ zfhYmnrIUGjNj`%~T++{+oR%Ix zb0(aVo7}7n4_)}*qobp^^t{cjgc70&KXAcY#^Qhe%V*a30xS?l3*nnk0~(bx6k;r4 z;;PCI!rrO@VKINluV@-_*=^#ZK=&*eU=%Mb3nKYUSX#H~>7&}NF4EsUzgcwUtx(Fo|Q9judd?tdEMXhFgpO>J^eQ%%&ZUDIIfDmWwc&`V$t<)LbOY6awf9@w@GF7xsPJgL1Mf=b#i;&Y^4=9T* zH~;`ECQ0zJ|*j&GeaA z`ty~L)shs{;UCNT=G{vlWXU*<-LAd)d<(_C@mC;L3XB&`WlD4s$cd?Kx79+rm33sI*20w|hxs3s7l6*-qmFdlJaU9qIie1_?7}9Af zACuErDEVAhUv3)(+MUT4h#m8Mf$!hklsTAko6B9vvXJ;W?`k%z^_PtdTv7ym_eHC(1O$Z~NzP*FrSBU>gJcA<#_v^=~ioLVU4-Gr483AhY zJ%9i01nYYYFn!^fX3Q3}Tnnn7yvJde#i~M2e!RD5*Ye9lX*13 zk?{{nom&8tVO^N=6wxNoS6FuM?s%DyAT>>TU*tAbmQM**sEjkIwXXnQv)Rwx}YjV3o0%kNoDC^>D0-k1-oGtA<=1 zY+LsQY^lI{8}Jf5Ezq8n$37df%C(8pWBD+IQrr&NDIU$iji4SHLb97NH9hcF0mwN|0f9DUEVbl*~ zKRoa2@$*MFW$UZ}+18ceRs_c2zkhr#HzsSP-DW|stLq?3cDO?KZVJLUjk3T*I&%E% z-@i{~W#`A+ZjZ7yeP?O5P4>8pdB%~^e!zm^zpv`Qm8h&ELLQlEZ!>r3(P!)^U0Yn! zV`TbjT&>4%-n-4gqN0p(5hH8mL^l!MzsZ^|ujw_zQ~H_^kO1X7=sMv(i6m z{R-L$WtzwL<}^hDa<-gW#CpkD@BZmX`35ttk_x8Li?Jl z`ef+(!f#cL)IAY%EX}FQ@gqAMZ)nS{Po8{L!6c>5W)l!G+tnpo42Ipx=cTaH;=(v) zYL(!rqKh<=IP0d@E~$>0N4q>*LGd0q(`dV_1maL2KR@D`CwjC9a{Bq#CEM_C+UckyO50Tx}uOf7fcGkGHm!ULOsG28cOTyxcwLK+e zg5ly<9h?`5Fa4(qvVvGuy>kYoyMng!^U{-(T6dSOE;|Y*1k6e|EhPfka69W~Q$7)O z90Y<{Y2_FEre$~>_X}2;#CweCY9=U z081jS#DIlkPDLr-TR5%{@CxbZ3{6Pwl>c{ubW4ecn1p0v?Ov6fZR&d=tK9 zzJxX4+L^M2AobQ|`r}rUS}!Z<8F;k&<5MqH_+tx&n>2uGdP_2Ne9U*St41C`XQ0~wvy#W9|v3OG3W03glJi}KGKTRu)}eUp1SAS*ll|z_REBye z(lX?OsmPcL-^Jd(X%_FHpBmAgZ4`EotaY{Gn|-Z_mX} z(JR1!#Zs}{cpnlo0B>w=QRe<9bHhNe$M^-AGtfhv2P20A!1c;gfj!|rsEk+zv1zuc zWR|9Qk56n-Jiv=as4qGi*das5RR@o&_;uDoat8%yz~u}-5xu|Ysk=zw0jq@o?`Na{ zWZUQPaIPVmsMZkwU_CsR*vNSI4#@>kb@>yEa;rr(bg3mTJ6r03J8wIGiU?3C!>Y&p zwlCLV<^5Wnz|BYlxd^pZ%`7Qk3^cc_bj`Hu%c6?V8PDT^vxf_s3G5+8k&x`2-DLX+Nf<5 zs%k-C!@Hm2>SaitXLlUK{1t%&ti5 zJM=vK+x{9D_7@3^1bLdZef}=~>A?dWoWxh2LhnV9slVl7kF+u~07CGGK}s9+QM~}T zS@*73Auyt{ZdoRA(XyMjCAgdXwU?J{?kw^ZNAw-Ioa5A{H~YF@)#542EZz3QjaTuh zZ;foaJiqhA=xRm&!NFh-?4-r{VUQo;ajQ;zB#A(1X}@ZJ`b%!Q0s_!Bi!5M?EcmMc zG{p#A5ZkVZk!MXrB1!z%R3-y?2MroIGyd8~xEEuo3wM_OImopt%06B~#&_FPl4`Ki zuoJejUCkUlMQtCYERjc`{;sHJSw2Q?;8xB)i2mXORFRjL&)z?MC22Anr8gudnMV+~ zk(9WN9m!w#jV#BuXOO>2L4X$pVy8U5%v2QdY#cQ8Eyt1+>s$oQ4Hqd8%!?1|UV%k; z#22tF&VL#7!y5e#n$w8+qOPjP7-glGqNb+@hlGJ(1IC~Ll_eU;!Z+SX5rfo48APu@ zY-WjZrNQ(Qz;&0!MdXiCy(P*5K_}kS-HTuQu&RfJVlg+A_QW2leXW1WG^YMx%H!*H zAaH)jtIczPEUS`rj7#{Rck@p%E{gwto91nA@P(!C;Z7IuBw&|wJNiFopN?Jub>@fY z#rvn6Z3sNc&HG{r3XL#dbitE$z83X9wcz%+spDo4CpQlPsFnQX#cVedR4a< z^hf6$Sy0}mc{+AB(K0{8zk51uQdFt?UO0|tR(7gsHCkCB#l9=uB6sXzhg3$QVRy6! zz``z6?_w0 z_=9A*gVQxMnsQf#nd3^BwMTh0VbIE~3MZ$~pOZnADMRB=p$U9AYo(_O`0flO7Z=87 zRMlgMSbw8!Uh57l1q1IpwH}kwZeuU)hLr6EoNsMED_t%ViPLK>=h5eZ z(aF=N{bQM+1sRfVRWiMG*d!cYIA;AJy_y5>m7Pyi&*j8xQ3NZn({U_Ru{c9|U9EqD zHNqMOYOcP_u^kyq!rbq67p(g0G4|WlZaxYFIuw!W(|aDx_at&=8DHyi1CaL9vkK~A z*6qPgZ!;s6{gp;Ji-)28{ui*y2ocM`J;~QF<1LqCK#UQ8^dY`DMdfct+gW*A8KJF| zE)5Zt!fe|z0LRBU4J0OQLrGSn)qm?*<<7%m!b~c^09@DyS?{?(QSFvuJFoHXL!0r; zwd*SZ!Kc18+Nat31|y_J?%!HK_jSssKaj9=THD>!-Lkthev44pd;801mjcjc!S8mm z)shXcU<{0aMv@o|6Q%ixPBDV0aLc-S%!wKT0H~Rh0ykoH22Yfaj?nkY$pE?6Or(Jn zi2EZG&_?|<;fI^voo|VvW7pk(0ym$gee@45=}+WX=2m#A9^3odNl%}kNSNUeN&}08 zeFul$Ag2Is%d{M@z)aF3eP4RwGI?G^MACoN*;2s#rW`hxXwLR&>K@FLinIXl%VPCY5mX>%_ zJOhp@D(vTi_RZ#?_U)UO1gi!M;WTYYDl!M>Bm&u@x>(uG>;B*;z^<^%kS2P>?+Q(A zA5`TsrDz;D-0M*!AX$@(o3?Ya-)jB(^l+Y(#+>Xw)P9;Pwk}*xk(*;--r}bYJloH^ z>eq_Z<)*+RlZwWW&(Y`_AyHA$=+7bFEW8Gqs-8h1nDvr7g-h99I;;D&nzuW|NXnih zjthen1mwTbE2o0oRPSRf5K=QUT>K;WF!9Bptc4J>89t$?jLosKpH~2|F6wQr+2iWIC@Tr?%OMUBgO9(pV$ip32J1!3 zoI@^FiZz+Z5~MZqCAq!q>ZH?sZW(sEc1qY=&9J+{8y9ZZYgy;hsMbt1z)u;7=}#Wc zt%i7(j)}udqu2_o;gp3&D5WiR`=Oom1H+W}BMa^_TBAIeFXOO`JMQqTrt|H%Lca&8 zrNFz&v+a%0636ub+jyHlUIr362zXqVb=&h%DQ`j;f(}w4C`b1KIR8b-bKtp-PNPj5 z0X1FU6>{DX5_ok-(x6@S`INoBPZ`teZ=7^g@(IuY@uOK;3i9$;%JyQ(9cmSg&@0IIjAE@*X3$iUfF8 zz2f=BX1b`-xl4am2D@17bji(gMEDuFHWC_oV^&By!v8Z%~|3IE`=16YIP#X zkPzx4b;pX9me$sRetR3*i>9{oCZo%&+9Bh&-2WNH7d?{uMp1$NU;gMorZ4)Q4VY2{ z9y(#|A8U!M#*a$1gj@%=O{Nu_=Kju+%&w{U{-NJarmzuue7<=+7qYG2E6j#@OJxIh zY|XA5&;j#d5HG(BI~YgRS7PrG8}oa#M=|cr%?j1TfIu0#qB}K5IM(f{dI&pxhZrpf zU%u-zOxST%*(-PtvJF`Y7H&?;*3a5>)sKtYw+Fr>%}WqwXT(XPLO7?@8JVNU|BRae z0O6H#4|WoLba^z2%*z!{@3T#lnQuGIYCGLJj|OLYbaseSbi==M8POneL_`n&js4}q z>`z*c54;E$he;ZPMvms^pI`3u%_r4>?~{?1hpw4 z7XcK>h=HaI>u{(aJz%Gu&AEbl^keiQQ1LIOfZ|zu7J@sw#L-hEK4KPy?pyBlS6b6^ zZ>NATBJIU*?w``$&A#(7rLJF#?FHlBs?z!T-X2qU7pmxS@P#>}6on+MnbL-hROBmD z5b&$`%EE;cw$b~Ma;WU88YG@0LBEEvd@Nj|j!3h;o_oG+@f=w`)_< z8kM4bLN_5{*dZI@r1L`S_eU`t6c>Gd-dHuL^E^i~0djN(mg zXOl883mXT%B&h@~$MIjSz#mfvz8?k%KYM2dT4moQ1#IUBCU->JF7eCFsOd*>0iFi_ zAt8C9^0#(5&vQZ4ylYCJKe@c5Bobnr{87D?F7 z7(YAm?bSZhV!oxq72n|(nn4Z8EJ2JrNU|r2<9^6ivduSNdmn284IVyJiN9sa7@4AG z%$&Sl2EW=^twuLRh(FN+{2(bX3Z`fj23uDE8I&5+7EV~Hh^nF$;2e+?(vt8p4H;hYbmLQZok+j zuP}KdZZ4FkJ<6CZN-T4kd!&5>SKC8+9wKY_HXsUBBOiLzk=CDWPb0H9cjZBzQ+As6!UYi+Ss% z1N@2#7b6F7bs7)9M`ZsA72{F0v-g~!k1zEdKgpmYv?Ke#g0bOyG47w>pHq-RgD+&q zj|Z!mEv^={6&DE;Rsq}?hfKS+xw$z~qnztcFK?8)ygGMQ|Bj~Su`rAqbDE@YiazWY z+W^6k#6kh{mVnPG_o*HxJR;7>h+0$324Ym=A!Kbv2DUxrWz-NL1X^snCfWN0I%q|4 zRZfCWZr2wYZ%3pOA-vA6sFaoRfCbWAV29YNZxY3?D*KfS5D$uS{X-2!J}%$*l=2gN zckk0-59>e2ObMU&h~Ab0EsH2n{4gN2<~=|Ev(-O#`+pdP_Iqs} ze+mOk;*b*XOUw1~5zc79A1GdYas#QFK<6ZvVtemDfp772F2{kfkv>;vc7%lJQyAP> z9ngq+3bc0kZuxAW&R4o&du4yw#h{p?@?o6sBb}z;37xWTa4$mZ%(8N|j<-Vbb?{IB zVIPiFg<{4+q)57WV>Grf@tCeFUQS{4Muy&R;^RJJf(Bvp>Dos!xDVl)9Go zw{AfII};E4)FK4VrAcjzm6;A*nl{H~%9GxP+`>yzjz;#7T33H9}|#nm$B^#wMmCx9Ms@VGMr76T=7 z=CCn^R;J|gEx!i*^{{*%EVtV2F*4PeAz?rb(4tn3*^>v(gOkT`$n;$vAobIsKzgnd zhBXR^D&R+or8N7Ql`8405}kiu;jFka{$Sb9AY{7wd*@k!1J3~NF)Cjsp9k;p;=F5T zyZ){0M}9Tf2^ar9eFU|pFftyve}6o>2)7xRG>rd)veXtZ?9$J)5j0xyf;)9(T- z^u%+p%8u^mUHXs{GyR8oEhL!y11#@`Ck6rlB>5|fE0N*1J^$#Z$E_hGg<62dzFkZ} zBqL=^rmTv%r~fK?;t>tQ>IFtKpH_5*WQdBzC#5ZG8j|WUj<;>VSELA?#Bw9lOCh>n50aX~tF_v0fKQhMf;&Omn7~S|^-$D8G07o|H ze;~Ki@bb7xw~+HdZi?dN3f=)?Q&SU3MsN1pwQeE=T^{0n%7m7a zeJuVdV4IDFg-I#x=}l&pi!c7V@a0K3Ahb~=64P{fh-zz>>9>>QtQ%(qsMcVEJDtdW zJ&PdONFD>VdA&_*R7L>1?Hw5*#-G0<6l{Ne2<~fpFiMJP0D}+uIMWYyZ-8K+A9wx# zWp{wdGq|+C+!(QN3i85I?@PxQgHxC22Kw{!(c0w63PnYei>~V67W3+mT~02tUCCxROxc9XIaTiIZ;>QQ&ze{UXjpAztzjc zKY3qfnirCa?uPg&1C_Y}mcVv;Nks?+SouUohJ1lh1)hW>jTvzDdRhZLqTasH8s{l? z)i)%K=^Q1KX4}_E=xUvo+|w(N?LUXimHGK#c6~ExH9bmtbd!#tv^MVC-N#2SttMy8 z-u{{1kml`V)(U;wE|xgouh~9?VdM+OLLpmbFPBFq@$OoV>>4=C!!Qs$_hgN;`p^HP z>CD5SeBU-cG&GhnqzoyBEF)p;$~u-9TgEQ?SVH!_Y-vJFNMj#~3}w&0FJbH>314Ij zO?E=E<$ZpCypF@44vz6W*L`2-^*PV$%J&=|1;)r}YlYtf6?<&we{+iV{_fZFCh6%j zC|6BFQ842$T2Y!1X)0C>kf9E_=)jkOEk`}bSrbjTtgScO<# zUTP5A6{H_Dmk0C>fO~X2c)l&NVZJ@=$P%)+)O$!YLpY!nqJJG9-(7$3R^=S9F?q^n z&;IdsXM$^#Ad5VR=J>R^DQNgiou@xr`1~P%f7-!C6lW2Ew;L(wv1!blirp%*N%OS+ zC)Ivrk{NdQiDAME=+WW@Fr0uHI(`o0M}bf*4xcl~8SO004rov}2(G8daM8N1h`}f7 zN0>qqGNP&RtvEV*$Itip-%JwLo4PkW(_dWKxIG!%yPh<|F)}A>dV~921`5(#ULul- zd50TzWdi%|ynZd{YUMez6|6+%hVLvcH7_lO1O=I;t~e^#i9Mu7SNFbIq5JnEL0mcP zZ}QSMSQLfO;>dro!>T$WxN-6F;pqCxnKoqbo!vD@KuT)>sXm#`19h;gB?|d{THFoE z$36HAb6`eNilhdiY|$|O6t*}x2!iZ{@NbLe)wn&}9&>4BiLoWNySeIiPdV0#thon& zzt2Oc$}O*GO&Y0qYiF(a^l-L$Ci^-?z}0!ICR`<`_ocmZ;&J7+zm2xXth7En{v`G~ z$njnYz`|dUxK<^vbni<3cb;QdzgIA?3XX}jBZFa;V2@|z=YDU<3N$cHJ?K{@BW^XDIh`_}?!Qp(n*VPlyz53Dh7i}Y-5ZC?PcknQsJa~$+h zR^eM2o5_1r14H1;9G8r(=OHV>_1I0aJ1+)&yN+-cSoaM6RlXhTzVd*^4bZCnkc zs_zV12FD{#=1-rUa)B1C`>N{|4=I`CV|82WWMK}p`lB)bC=E{p>E*3 zOXc60%K4x65f^<+9c<^((N*WaV?{}4!)lOS_6y+v8wI&TYNy#R`j7Ej-!>^B2K zh|)wLlOuO?+qxD7efo1aduC>a00P6_D{gaMh+=gDOM&d;F2jkc9rCPHYQmscQfB?{^z6kYuBfW$bfEM+B(^u&m3jLm-(7nUQM~@O%o5I=Q%h# zuH$Jc^eis67X9ftW90!*aCwhlO-m52o26sG(j9YugNtjjdEuOXPA@BKMBQBmWNCoh}!N z(?}yZ;~XL7!Ww8+&@b!mxRnjAD8f}|!+X-+9o9vZXlax%iP?T<|JjCXuHs|c@a^Zp zvKsa|vphjo`kpfu@5#P6Xg92+xO`w*p{Vxqs6S;oh#r)W>(3X(eH(}Zt82$DIlu(T z-K(ps(jNhnv@da>ice$X@FG0E@a;CsJ?}GzNHFL#psct5J6^BwN6_D*jogpxFItAu zL(~Qq94*DK>Dx?>*jZc2ZLqK)L(!|NYu4ySmB-Ix=f0|(ug=bHrrFcbT<`6*Upf%QF3RGNW_WHebK}u-(8o-Y!s3CKb`V6FKGytgYX{0?4sv)m(g&Zf@t)M1<`rF(N_*N-mu9NaT_@Ss_ zF88~nq7BUZqM&wFIs7;zBI3BmJhwgc#J$!E&Q0LTF-PrGu^T>u1Dsw;y#!oZ;Fryi zz+*BD1u@#+rm+c7pr;2dr%;kUBjW%R?rs^~Rr3+C+X#x7*jm%nCd*g>qou^aa~2$% z$Ly{IH_Pmz4|~3~m>H=wHsb5R#Q4VX*zDo_{QlXm@UPQllg&$c=~Y}YzV-8=+pK`! zu<7H@`1tsuPv6})Fq@!dfU$fAWqqg~DN~|7W&Vbn3TL(3869?ZaH<@C*O} z6C=u%j5V_SJUj8m-$)bM1X5-wl=Sw~74udU~S?bdCwseQI&y--Qd{CwK;5TS{`f{J3w!hB9o zPgf{GK^%sJNr)blq+UK@V)OL5_|L z?e0-I21&95M^Iyn9I>|J6+^=j3My{!%@x7E0>PzkSTT?Um1rLi608tL178-?eJZEvoWFI_fp5pSv;MsfIX8Z>X3=NRoqeaWlmai(S zs3eVIX`yHwge>d~%?G{96d#bwZO2J}^GDqB_*p&a9m&`IW2wl4#~9~^c`uvj>l@*F zlwfztf~jjiKg;D9tUmeyzEU@Pv;AzVYpY@A@u4Onv{Qng;O`k8&FsJ(<}*hF)l@Sa zF~Hf+N1W73#`wRL;Q$o?Vrvw**$bi^4K@ZN3)unQSLn*K9t{D*W81dj z9b@uJYn4}`5SnB*X9r>vU{Zhb=XCk>^c#Jvqom*?{Az5DEOuVs8iZzQ&w-){i`CUv z;eUhMPjWCK7k1GIayRhY0-ciFe1v=Um5lD=5Q*ue_wh(fyfFx0NqFR=tWiCq@{T{g zpH>wFT9S`AT1f{k%STJVi2}H_gz^T*x}F*elamMYQ!oXD(m;jz|F(n2q`Q|%1md2< zMi|6%#)bJLMA7BKh=LH64KWWV={OC1MCEEKb)-L?OH1U`h z2fwrzda`bJetdemF*ZDjOWqrla!yTBLx%<*F4z#Yr>{narE=J29FC*f_EbmD5ZV_<4xk4X@QJgsIJt>zc2goXDEBaPoaJV*YNYd^X~ z{tNv0)Vt*>lSDW#E~CSGCIN{?jEtCPfb~@M3X{LVWU?nQ1A~M9>-&I6mRdJ=-;&V& zw@19Ld3e$;QYm)?_|5ln>m&bm@%Wj`vsCxBE{=`+HP7DV0AA9ld?=ok%y2q25<&lN z#OoeCSoIdWFNG+DLa~@ELMI7g; z%Azfe2GpW41Dj8R|J%ZRmQeG!LX6B84wF>9VRKr84Qo9a?RO--#l zwmsjr+OTUT9&Bw-;^PZ5w}T#%wJopiY|hk!J~ow~4@Mr9jHsN4RZlH9PfKW>w27~~ zhc;Px%aJpDxhpCva$XI-nJO_iM+YzYBv(n2_1{lesY6PNt;)=*rvPDa>rZx-XlN%W z4w9#Gx@h+zxx%*fb4GFh_xbYnljD2upV!~y-wJ1jGr~0la{R;RU2lOv$)BEE&r%YF zD@_03oe>hxx_puaRFtyYk2iYUYrAi~u*c#Zy&Mgp!K( ze|O2kxJNU0$^RXm0e<8(st_=8RNT1e5sehYdc)MeOAiCK`y$us1XrQnt+`k?KuGc~ z_uf{vkV}&}2{`#THhd4K^!aU7H%zhlkzGX4-G@Gu#kGJx1Z*9%^YbwaF%Cf417e@j`jM2rH7DCiXPd!s_m$@|T1WP&l<)^>9ybje zkCWazgV;bwQXCW~Y*E4+|6&=`J?s)Lzwyd+W^-$QzeTjfyY1*2oLwE(Yjm6Rioy?% zaoCx2eh3E`aW?q=>CxU~g=;Rs{>X}DkM0e$IZui_@ECZY-L;o~o80-~ zvZjt+0EfA2N%hL?Y|&JHjKsHBryB=MsHKD9;K3`6@~=(rT!HW?w>3AnyHSS=Vk+8? z#=@r9Zk{*yd;-n0KsIjb!4lhgodGl22fxI|ySqm7nw4<66SL$QXYa&P6?#}hN$&9k=i z-5CQ_U&)V@7~t|$G{QrFYcLji+&0K=J%7lOeKI(h(3V@5os*{-2Yne#=>1Uhr;1CdUlkslXvvKbr- z8U#kcuiB5+#FJvxl41*^K@i-R$m66)IBDZ@FSyj#CQj-)pTp1JN6d=>hwmg}h*v40 z*npcXzfJN+R)f*3`HI$8qU=c@Tmr9Redrg#BDPQvCmcJ!?&hAQ1sOdI_qy>Hilrr1 zO@-}R6l)eF=ZgxEYIyd8o^H0D|D8R*01}PQzg6%Kh)=uwA|d~8zqvRkhnR-tK=E7k zZhR>B#nC_;BX<1PH!J=9eygQ6q8#Yer93%7z4x6N2eb0b?+=lheU?V%n~&={GE$xI zF(02b8}h!;2_$wlv3aXRF1EU7H;(T7JcesBgShBlK&{2n36-<9BzAQO%z^yU|5^u* zAsrLn@|4f@p~jQxXE?+7)X{NUVSmyG0$6o0SgDGQI1;uK7p zvqJXpZ@tV}uXKfUz;M=$5J10VvGtH)<`?*8#kAh^&-nG<1}aQUI*0FgM$N?>SxfB{sM5#1O$%L-T~qu2+7c)#x_qX zCLVSs5d>(EmToTisZF4$iE^+3{Ow_|a!-%nN3ERm*`f*8m_uRpgdUVf>&zzF>}Jx_ zxQ?(nGt=kDhz2_*_?}Wjgg#_$v##rllA@v$Q|f4+=<#48LY=QlG|Y$hSpqP&8yBI= zO~}SCR0+f2V_$+}FYq^rk=TinZS$K)){JV%7*IE?)xQqN<)|Jz3Y##z z2%7ygBO>!n-&A|6^%Vk2tKd4gBB|k88nJu2Hts48-yf64Eg-rmnT2HoRUP1A>SoyJ zUDx>NEAgzf@MDLKS7Q@dQ>B)oRQzk`_uYoWIRkg=GBX58aZIrxx!wou%iY}a9YMzo zKV6AzNpUtZV}ldmEkl|=MFdDD=u8C#sCRon)`*NgyyfM!va7lSRCcl^Pv5s|LC3zrC(j``)evLVpQliZm5JMqqw+FO; zi#{PC|1D>_pyKighlecSF*gh*4M=%8iU6CMnx*O?Xft5%(>bV+XU)ws!+#tw{82Cc z(GWo}irxPlS(uC&YA^tvUlY@VFxkPC)gi&lU6r$5u?|rZNUeC3gciaPtzR8_FI!Fp zPo=><_#1hCcs{65KU*#?Hd3?Z<-L94B|+|qA~Fs3^oJ>%qXnR;TuAcX8^*5RmFCdo zjFzk+`C`|Rx2@rOetSNV-?zoY#hG-rc)Yy5E0TK8T3YYk3$L~0nQwg>i!2pkV1-7j zK^WAk*vF(5T+;_b$IPq@pN}KSg_*2F5KT`hSG^FPx|xe4W~?=uGrUqvc)c`ulms&l zVAarOeIXIL&7heK(xYLu&^BOTG>%lfS(`K!&jio8gfZ*Ia)d=g9XktkJe&br)o1&x zLdE<<%;Pdab|$#?{9)B2Y)5VzAl5o%jGe&3hUnKrHn0P1D0-#6b+%ejn&;>_cJI&|3Z1kX;+d z{7%HRK_WAS@=3SQ6p&y6Pyvs$nRH-YtKuwld+-K>WkiO=vE7P`1*lLDsh22PqGQzy zcIZXiy98(_>YB;NPxo#ne6I7nw@>F<*nCkNkr@ zX#I%#d$j#sxbScm-V z74?lLq{Oc!REd<1k&9u`EIR1L_X)}Z^bGG{Y_trYc@2m2>Ch4d?9oY-|Dr$fzGGlT zMI&_?HVlL#nC`Ere$E-DX61_t=r2yIKXxQ{(J-fg9i>r=;zPs_sK3R+;b&mS}% zIk7`O6C@$8^M%zR#B_>4Nue({O%x%o$Fa>ShvHK0##LHdRgM|Rf?VM*C=iZc-pBw& z3m+aDqiImu2wAcg)dpg49j;-NCT`c}gui4a^|Sg9Jl)yvu9CjG5j&My1SCJSG`8zP z87u)!${AzUudd`4qeGU&k0!HeL`@9PFSk>QM%cyHo^zI@_vR{09q6Gf23>qO@S(?s2OpW~XBWh#>a7Z5H% zUL&6&xQcFufZ+da%E57>@=qJuXSNSvS0Ma?FER1Zml7+yZ=`m+-pOzfC*Q0!d7bU3 zDljoP=}CB~oQqQiJq&PiD7jS=|7;`yH4FK#GqM5;nkdi+}mI1mL%mCx#s$g6UKeS|tN&i#r; zN;1Efy+R6*eMmp^4Ek!EFjjE3``^PWP(EO=EZXx$vfgU@3*a{enwq~1yq4t(O z3ool3+Ev&!I~ATM6E=r3rJo3(Sl5tr&hx4N0l|JDHZAwyuZZ9X)|cu%KRExJTUtwC zBg39O;=1abU%Cbc%tL%QhG^l?3fB0Hci;=44$Ft^RUdCt61KkFTgNAMb}l)@DI?8% z5)rzZ44nL6UDw6o;nvY6&+FvXFy-qpXP@Rl?3`G5kHgoDWC&k+k7J|gAU$7-BUfxc z7qwIfW?*$`Ndk|Z;90&vD$5}-uy%tTLaa$K7Xf>5it-h7a$DShv@ z7t4Iao^AY(jg0_UldmEh7l4emw(Ii_8JdX+M)jRKQE)qO{b}wKgFt@0WY(WK+fC(O zF2sbcPb2;oiM{V@uc2-w#6y1)lOzNPy!3EQ@~6Wf<=j-~MdHDn@c@22w(DIj7 z0gIWq3vrmKnR`m{g)5N1aS3V2=s&MkD}m9nw=5Hjz^s=i+}9o93~(6g0-K*$42bg$ zI@2v{x{k!`ExVq<-GBA4d>sT5xB^?!L6ileldpb10p~qW=DJ}Y59wI)C6XmBi+OCU zHBt1G@_d?~KCn__m&?APaWkJvAYrLITZdzhVAxpo;HP^#QzaaxQ)I~bCX1bU;6rvg z4!<@<{V2u9L1InS&@Uf(i}i&3hL)D0;iCwc zq^4?OFV-gg4HpoeW_}5-_i(%QVw?-!voQmqG{+M(s*sEV`l!sK4X0nPChk7(-JWlk zdwvO?>Wl=gq}|Q2{DnUbvdu9MWFj75HK3svSx#1u$1do#iEzBX%U6m^hTj5?on(Js z;0oxXTejg9Tsf_{n*pXl^|{wFA^>r%Hloq`E(h6Hbg-(pxGV1-H@C*S92rwn3_7Q} zQ3wK0!$1;|jzkXlt+FCtqLZaILKQ`cu~xR%qMxhv_?(&I_#^XZ@!?vVnFA~LJG2NTM)Z(?2z!lkCN)_R@M`Bhl48d zX?E+EQg;T=<>xZIbjLoCkeiNpVjx0OYt^rfm@CQ`7ii3eN{Y?nG0}S|DOm93jb(*g z^RO7{Z+B^0)k3uEW@Q~2mW{jx`g%o;11qc>`lQK9j03fkfugMC>{+chdAV-t7>^W` z3NHeEp1!47qt#U4eG(p81+8+s4ovW;pUN>`KuN4mX~#oup>#f3v$H3koX8Y@4vmwD ze#t;Vl&juV<#pUaXvBYFiKxFG)EhBjlF-xQb?uT~ZN|Olr4tZSFa!ES{n*)N%|n%d zoXg1kKI}WQuGyf|{%pTri4^FzQj{3Sclco}o`5kow!+?e44TPHkXH1p4T9o1*aiug|ZV1K1cedO}w7l&TUrduW6H z_|YBA3mLr}j{i{pbFQ&%Ov~F5ujUC6D|^OU#m*lcF!8g~RYc&?t7>Xk1LBH-PA z^nkKjps#e>m=VOA40+#^z`-%0u+0nym=38#=tk@Ck6^KcqNkS>BmXHDnN2hZDL3WF zR9h~!zAa>M@R8@P!n0s;$gPu`aK4a%yeQ#Ec;EU+`I||>hgZljwU+tqvf8TUxs$2K z^ze*wUl!a-#@;3G`@Em0;Gh8`@o-jSlup@(ei=y_BbLR4zU1;flo_oX7OqQN^Nd)Kl?NSb z)nf%Abt;rEN*-oRyZ>L(cH2pSZ(yeY9ioukX`B(Np@sz=**4J$%`RqO?1?6|-Oy*a z%du+Oi1>lfF<`6$*GiIjJR_;mK6_&#JDWR<8uWPn)r1xZ$`MjM$2x?#2-GgJkWyUGx)>reu%Qcnq=p z?J7e#Pa+|{uv{T;)IsSIIlp=4K!Ph-nAGCwijyEDkG6eub+)|djntYBA>BtjvP`R= ztk+aC#!=Qv6XzaZrYQ(A@;6|35381|uwzY>ZN5m27Uhg?)Mcwq{s3^GY{u7U0N78~ zJL3FA2a%fUhDV}$B=*DSnc!9vX4V)U%NCrA>{EnR1@vLlWdAiH*b9I?sgsedQSYD%5q=0oWVN z&zBii*FmZ?bwx$gna!qk7W@Fp#Pgnt%2Nsq5M<{zWyhp%K^b}!xUa`3>mKZ>mUk^K zv~r*n*X9Y5$Y@yQIAiFlbwlHv{s3${+Hmfk5%iEaQL6!MgaCNC>ttQMee55| zQ5zwhI+V~uS61u}96_)UI1MN^{P5LzotwMI>8I;|PL#+Wi%AnAxf~>un0?8P7hmFi zKYu7K0c4ktt3Q7pJA{t~UKF!{B>LZFRyQJWDhwmZ0FZ#S$%Bn_`s_TyKnO1EbE~Nw4K>1AGAl&3k1-4vp6EMa145rtP!saN;i(kSI zXP=hg30J9#WC>nm`ny~Zk{+*yf2K>3cO@3F z&$6NL3LJ>>@w(aaNee#LJ{k@=;0eJzK;%fqz;Fb#h}d8GB!%9lazaX@6FH++3jvr7 zdRGC_85p9BsH&*s-sEY&ibw5K*zwrfz9kX#jXB?!$)FJk!f2X&B$0{of<=sqiwZsr zo)DpALc?m^d*;v5BOk3l^q3gSK(kNOqu z8tpzPW+#wz-6JO#t8Mj=KAOo^ZdlroE+qx+?r_@%h;wj%?y zd{UPLGG|+G^bP%eBgd5zmVq9vvb_qZH&LgtjKM|sm zNd(j*%F68Ky}X_cK`5_+oY~CuemHB&6(_5yCbv6O=o_l_=})`!%x68NfNK4B^-LoC zdXYNCQrmL;NmkmJFL&%?{R_e*3CuLi-?W;58Mw*%ED(ca1^dd&FRqXMY70LJ3T)Lu zT$H{_S${j%EZ8^a$E#Ki^ai z&qggQ(X7_yrh$sgovshvQV?@q^}lx)5n89ay()@I6-~v%3iqgw#)Dz>YmJY5Hzf;4 z6m-e0hc!NX17xfT^z{U*ua5TMisR;9(CABzO*goL#(hO@4fg0%j3YA~=hZ4p{xY8s zH>Oy?&RLD|qo(!i7gkM7+{)@uNLI}+TYl2|Tbb=)_tRj-n?j=6 z5;ynGDL@=ZOP zUp2Hgm%Af}{qdh9k}=-`-xEM)H9scSid$txbhV z@3p#OQ5A2le5m7i`TT4oNZGtBL#P+$W<{!f(3H3A6CMt1U&*=)?BFRc39?M{<=T&n^{JvqSmlsk#Gu@;xvC4wM`EZVl}3gcDxcN{m(G1YS`2 zJ7`#vYF%l)tR44({mqDid7$R+hrLTinGLPB;eU4=BDr4+cY4d_5V(>rh!XuZ-kJKKIW*R|V|HgId!2U`u(Ku_s{EyAGE!Hq%#G!%qK4%=iob(!S=>UW$MeQlB#*9bKVPOb*?-6 z0#71zT;jj-^sKfxp&t@;84o0jbmgyvi}gs1_#;An|NY0qx+|(`g;IM@$f7D}{`vd& zhfQUj^1)L?Bb0ncr?{HH&3Bjj3JD|tqd&%a8x}3SBRq+Spa@LVu2_qZF2@?iED&cfB%`GQMYoqlQksVRKGG7SoA=OcY_{9AqZ z0iDlLbLuIpe5}^TBK`Ho79;{lfmeb|bJSDw>g}&__dwu9!O*9_Ff2sJquJKZG*yw?mgw)SY}aX}ix`(5!ZT>( zu~$!E^8YKXz&XMH78iqHu9DOS(TL{ON42Shl-jG*-;0YnU*nl=7M)nNBYS&(zoyr~ zh1o6KWP8r%jE*nW{gYSC%f_{NzeU+gksN@S5H_)N2#6-CqhI?|GKEPYJUK~meX0RA zljY66e)|uuV@u0=L%GOf?tub0i!@uvc;FpXUy3gc1`P(AVMLHen1L$r`)uN>+C=#L zJr49s{h6}K8>?2wm5@BNT7D?7kOTZk;3(kk%fn!~=)Hw-14R4fRk5uk6Ll`EA0^-t zt83h4LU+1Y%4-7qYV)smFR!X@$4=ZOX3$CS8fXMn}MyPhR&JmiW{8R1ia6 zcz*9deV&EA5y(_m6X}${g0V2>&mYaQdKC2-NRD;u!W&JvW2RmMKL7No3-{W&0aeew z^jfrWt%d1)6o2A`sisC?b7 z0CL%=8#-sLV|yLZZiXA+Er{DO===Vu6Uy`Ojj#8T{jsMXTo(s<~hBl`NM zNqSWj3jc4?O4mksc7PH(5D-@*mx+o6Qsk$LZ1C8GT1+FqL`DPgmO1gFVU#27}IMb(&0$|u(s-!;u?!QK1 zedD4H*!{IX3g*lq6xP>3PEn2i{b;BbfTap7u|4C^0AGFqckGXP@p>U|H2N9Tnl9Jx zGqJLgE$nNS6jVUnAj6SnSpn|Y`B|Hm1*E3Rtl(O(7!tqo!|+UN;-c7i+95Sg40)-` z={>!`lQy4c`eVy2Q41x3LNzHO_f+UPaI&O@!M(+QZH;YBuhBS(hsMU1HM3qVcJfl_ zX|F&gVcS23$ajEoNPx7nlr*xZ7--WxYhBjdb4P7GUMi0;{TOXC8QZnEyZZ?UpDoX| zd%HX(k^WYB+11JRZGYysiW~zW5yFSOysfNvGYJ_toJ$fyu91B1a>S1%SP!h+Y`L5=ng~j~ zN{4a2QcWp1>C21)Db;a!;P#RDN7kOuWyqimp%}zKhwTzd|=k^ zY+yQWz3GMRSX%s2^Yxc0qSAd(I;SmM31;jzg)HUaQJIN1Hyz7$0VuJlnVIXDQbX33 zLG;J+nSwZys!dso-P_!DrFKO^iu^^Y3q{RE6!ZYZlm`7QaC7?_;3zk>W_? z-!m%FAKzF`YtxJ9jA$2<=})1tI6hsuPp&Mk#oQGNpfIG2wl`Rf-EOy++*kaUIV@{R z-e>;m`PWQ&_xCN^AcXk(Fy0r_bOH2rH&m%x&Rx01nldXcg%S}UV9c@wsR91MGc{#N znOm8~b(7}Xj?4)Ui;K%ea{T=$z7!l3?FM&(sG(aMoPRwfTiR6ki4_@dhd&sAz}4fV zYjdfYzgY1M0BWd-wjDP^^ur{`E1DmYiiNm%j1tuKM>PBPe{+eA9@Z(f{bI8bofOxa zN`DSmgJgcCOp1@M3XEOt=w`e|Rxqb6p5`lT<8f>NE9+S@HU&qiGwfiBB+LvdmpC6ZeKn&jym!B6P{L^#Zt)kbAjA7sUwYnT_ zlNKsI$>$cp_chmv`L$D_pF!bQOuY5G;%R}QvybyzL9ty9Z>j4gCBRufC9!{Uri%#8 z5~N<+Zp9n}`2C(@(h?u;`{SS}KkkdbCaYFo3KPX&tZ1qKj##>0nT4ro-PhQz!H@Gr z?9-;Lmfkuey0+ygM$Tww;fu!AemYL)I5B$JxAJz zJUu-DJ~0w-Z;oREb+aEYE~k~&wzamJqB(B^E`s%}s#k})1FZ1WXxzX=?QqZ4eZ)vz zvHzdmvAH{)8CIo}>$)v1srZ67O}KFZp3z)*N9jgm3P&E%LD8R0hKO4g}$PQrs+EwsVrLA(u;~^>h4h_GbDU zG4|<7=EEAJoJ=Ndmc7MkW73;mzEu->EynQc)jqBD!XNWzNDA!I#=>Sj5SX(d5W@Oe z{st&Yv-<(zC;BCOp31QPWJ?RNTOLV|FjqOrp`^}{OmOkD;{MYtgWH7({wfZFm7eFnCNA`nL4`U*t7nVH!Ta9 z`^saSqtA6R6S!&TVuo^83Uya~UfVV(W>j44wKWx7ZCUs|)RtwC9x0x~1R|;SD{6LQ zBny`uni|_fgU=D4Dy;%%Y#^FJ^htYQ%Y@ImxVwI!@7sV4xCoJMLpE07 z)Nf^-XjDw0N@;$z7K?*WP3QuE{h6Rd0gkB8QOKdF7WTI^G&o1sT?6}0^>|*~@zz-I z_m1LfNGMm=;2^N0rcH(WGU$c-&%*K|H>^(Vpeqfc+DX9@-1y%esJMjJR= zr!SZI=1`5XjGck=Hzq!~Q$a2fFs0!?HF+7MW6wT1$=`^b40=V3A71??Rfruz`FMDE zthq6hIt<&_Ny;I&Jq#HBjVRBdY`j-W=HJfd-q>wF4|({y4e|CG}k-q5*&PZIZ9mj`}PS8DPZwaasOXPhVgRqCQ!TJ-9$CU5>rz~aPEqL#lN$J zJn2Zp7EpkcD%0c7N0xrcxVFA3#W0$dre9yE zgVr~eiFTJ;e@IC^%-nldD@p>Pt%PSwS6o_8Jdbk@r%qrfKIb4+Ei%d#YV@JdtE89_ zUSLvO4A?gIme;4H7_50;V=MTXpp# zjVR~U)YpF~H1hc^k8blXr{qB;!2v>ist!b&W#(uRq>)B{2X82kT3=zRzVYy0i2RLo zXJ92qgjgvg#+ng1GPqP%40Ocaw+x{v} zcjWJzcSpGqr?E-P*A+`zB4jx96sRfUkr_4-@|+qzVr6CRVG)0S_ufaWHCg%R;f$vB35 z66#Av8h9r`TX=;o#bBU2)+;W;u9o5S%;0x=uU85Z#mnm)vyu^eU3RA=+1~-v;&3zM zGOi=jWFP~`dHc5sSbGl!>rb}JgR}3IX*xHjSoT{pUJqLsdgHh9q%|l)ncL2+lZ zE@w{a?(uOJ6FjvnI}pFJ>n85TrFT^kdlWq);U$*(ZH4mWWJrV*EiS+zFaqJjZ2vYk zI+C5Y^THe}nB?$P(w0h4EF9vJ{hh4&XnDm2TskFryFLSJpb7}HDHt`mpX@_Pc5hQ( zlr*1s&Hg#Z64j*#hg3}hZ9p_fUcsK8o7N#u6rb?CV#Q=ca2qT70hv@%W-|IxBYVL1 z-9?``q)9FP!W$lps9wAUTDv3lrs4g(SHSKe1YLKEF7&sk-Q^C2e(eiBVw~E=LN60K zU>6snXctAD1yVsB)@;})3m7Loh?aMWNK+*BgF7mx-3m>kO3w{TOR-xt)(A3lAkzW> z)m2_yqvNf9xlIYLZVJ*Q)ri?3oa)vI}&gRMPFdMZ*lU5up zaB+WyA{0+CyNvyF|9SO$&CGtciKZp+f8eUfRON!(KB47w9#_-hac|R)Y~d4M~44BRw$};7x`F_%ONZZKK~75y4XSlQ~MOc4i{&u z^t!&hX}Apvu#p40{f5Ypzl8)5x^!o+tmCz{0nK_*TgIM@4C+eAMh=syDG+60%D4)} zh%8#bKtk6TQ&si_7{TyozGlG7LSpYXx<$&s6c{g^8cw^ByVpw!dtu_@=Z}S=NCc@s z29V@G9rb^O`@^^w+6bh8Q{UAYn@#BZhlOs6J-_@fBb?sXEXTXN#$~-4`$RxJ<4?^W zK7(N?Zdtv~nd0mpi>s{GhoYotI_zw1$q{J*c>(wrnz!d>=Vm2h;J^uj;}f9jjrK(KaYF20?0!BsQONyr9e#_q za~Q?gli8%+H6G`s|yYmyS zDeD#e6Ha|R9rLFbkK9xArKs;)l^i@d02sCM^~ByQd?s~sLFS&bN@3wyX(YFYJS{A0 zwh*^~6)Ae)|H_%;pP11frQ;@sv*%{@ZJud+8VszsjAh}OSU&)~-zxfha9sBr(8998 zvp)IW6eDf5;h~P$BJ@Hz;w!ZsCQ|1vi;w|Nz$QBy_%E8 z;}p!;_noWRD-+Y!W&r*PDlK;34yOzP1&3n%$_+p5RnceUomEKm7kg*gI#nu{t-p9{ zngxv*4V-;3(+8tkOF~iF6oty)#}WC-dXO(#xAZ7U*MMs2` z!#Q6{tr5u{EgmV@618`2y64e~WR?lqW_j^Na^HyXe=j6_W5VTMh!73a_A=C; z)wo|rbgzblko5Zk>qA$r%afyOhUKpWjwf%UDKDg0!-(k$e|`M@yBg)W6ML8XVNahv zzw-YqfMX)ER=<8|>l@DrR^?Uogcfksm2)my(EIwB2A-Y*mBRAg!j?YjlFQx# zEW|(@6wA__nWC%sRYj%9mHZmdY+W(B);+Xkne;VDBLzEJ@7M~CNYVHTA`%x8RQ5c; zZIE@a$Cin;5_Eyd1N_xom=mqV7O76(DI@}vjY&=dW^`+%gn=Dm3x2-*CM89U!6D*&>tAuR ztqTWMBo418=Jr+ySeAY*s)!I9AxQsqD%p$?*f%2^v)nRf#gkOzY?<~+v^uwFHAH^s z&Den11e!r*%C5EZ z?9quK&%fUs?NzBq+W>Q(G-g!dQk_>egY&671TB+V)QEOSK8)7_v50NHCYdS;#6W{1 z_d?AW?GbS#mCMBOX|DdOf&9e1uEk2L+Eh;nokf}enLEtt+N5-?SuJ~-8gu8Ru7pD% z!!jzx5e`pTFF7Sp=D|+5ZCP=F-B>=kN1T}BefiQCbEBe|NE1Ut|rV5 zZ%$bF%C`W$O?I|N6tPN$JJ-+P@UY&d{;QUW=^gOBn=EJsdwcvfl)VGW4*;h&v_HzH zBd)PU?;`a{TFBc**JCg_G|mCj|(-UGrZ+ z)yQ>`!Oz0*3`9y&*OPxs1w3fxJV*a=S&tv~9`$8VP|yg(Z6q)F4$CDde(OP;K4pHP z+7>vrKtf(1#lFvli_T}<{wU~r$(r0XW0HkUl-gVPI`7&7UFwEj5J@g|P)E6S`BX!-Neb`SRZRz*tcEvvBGebZ6 zLLQP+5mL##hH}q+Ul}2T%L@9fbJau3t~I(gKu(_3naVOlQf$%Z-^om3o#4~Qcyd&c zA*)N9$A724j`T-&UT5lwa#k+^f7O$}(JJgcfVX>frhRR0dmr#5B|WAIjNvKHhl@%#b{HPy7sW#0L@hfs5?Z!y@no z6e@p`R-SNray+k^T{R8ihySmuNA)l5{%caWZ^$;OQ&Kz8H%D0z%kF7Q;|Gm=sQqar zgV6lr))jZTPl@l_MugI#O+q^Kd<|P-L24F+`Y!X}J5~Suc*4m)uVLTtaJnuC5DlsI zm048}wVdOACf@D9@MRWh-9#L;E08b)@Kk5|3Zh)AdW*028rq=)9juXk54#U_EFpcZ zfzYMys5f~9Y+O&TL5(lPeP-OzQP=@WFp1Esz0=cnW=~!uGxuG2|Kg?^ndH{!K?%Jz~O|K*sGn34VI9o%61dC6-61ggySv+ML`F4hkNa z^|(W&&a!Ki{Ne99Xyb5tKSp`sU~i!T|wqnVNp{E}QW zeS5yf&>y+jcqhcg#U&(k$qu0u+$e@ec`Hx6M~m`2=dtHkt#g%%b>=%G8`#%&49{W( zC$?FYCf4iMh}UO}D+?xL&L%p-&)kLaQ9T_B(1U?(0mac>3qvXssc5Aaxfpa}6$K z1gD7(c;ELmm!C&b!ne*e@$x1iB+Qb~h{5kuVr*Ay4&VrQ{9c_~6g}a{XU_lYqbDd z>=QRqbS81(B%$l1 zhb{_e%$w=@$I8iH%R3RHjwOhw=(TD;=tjRy7n&mhO%2u(=^O&Nzk7Xr-j3CV#a)ML z+&3uCjNR+c7R$E=9N?Gx@4@4gvW^FoGH#EWWVEC_IL|h5#M+&6r4u^^Q2rP8;}UYs zdIdB}Mk4UX{|*ruAwWtEU{)vhP|q92RD80@zh#mDVaWl4)`J7cX2lmn>#fc14T}L7 znL7zb_bVYt7Kw8Md{1~VrjTmtq)&4@9)AS5iGgS3 z?e%DQQhY>(S4!+iqbWwFkIyq?bVV3)4WJs$2flpn7VhJEiJC%etDFAoeY%0ZUKnXl zj@SG;{#l^3M9>Q=A$|vvy~GZ>X>TpmooQ_dhY0pq=UM~*MIVrwLut&}&jczkG51$;8*c6y?5x)Z6o`o<)qttFtZ9hvf&3>jlPGlhh0bpllNFpf6v7YUn(w z?=TZvoyoq-w43STjk-;^*n_`ozMLuNBy7@&vv zg(E^z05E`FK;*oph;>9p^?absG#hAu#(lq?KsceE?z_EL^m;@JaCH@h;3PcpwfK6; z*~?z0TL2sP>WtfFn5^Xh>CE?ae|UEd`Jm`Z1^eKj9Y&&m%`I zmtGjjKD&2f1v&m7x*cee)Je;(zgt`*AsF-_jd_hRt+DOj4uE}JTKaw<%{NC0XsEBB z&3C~%V)s-p7&aXpk^39QlIkXFt{osbI_lv8%bHnvT$p8~X_jsEZ{t44QRwKjPcwIt zVBNB&NWQh09_567+Mgilsy)xIlp0bNfABqR20!_=U!V)nDd~s?1=j1u#zrFWhx7D! zfaW(?;!$WVn>UNEkJ;aHfgJ47_>-MUc7h{N9bMhygC+BBjGtY&(-_a`w%{YFIbqLX z#~H3%uF%s^ElWv=)mPnc3Er-4%fXa7<69A$dTEP>&h_=J#3^8(ysMajd=?K_07YYE z^HXO5T7vuv@c#DHIl$CR1+0B{dZaPVk#KnU!hWEu01(_Gry#NH{U^hV6b|!VQZxtZ z{l5Td&k~_OCRvj$dZ!oK&+Imb%YM?>>8jD=-pAb$jtHNJ;bymr{e+8KqxZL{T}Sg` zTU!kjLJSp64%GItuvnVhdHUk2RCQkZI2=oxjc~!so_{~lYKa*cnpEojRJcn?dm+fA zVe(U2Ub_Kxp`gvH(OzAu1XvNK{I&*MlE5m#8P=EP-R#g{SGUxd@c8k>tTB~kN$FZnV*k{oc`wcZuYOQ{?S)#$>h2?9{|#m5#UU_CYIV?-Ozq; z6iFIYs6OHK{G24FPw-_2upAk#tgTyG|256L%V-@{Se6>Zyyl|~y*{kl*G^Ee_~*Bi z7@Shu)M^bp0Y6KsuCCw#^IgVLnATnZnbGstlfv->fGYH+;%Mvn1O>qrk!45bCl zN0%aag&6=nAX`O2?+O}`C3t8Ox$8N69P#w&yT$W9eLx;pVR6+KG1Gbis-dtnKQCt} z!7v?FmIhczVMH?tAj}cUEdduuMcYiOsy01SGKJuXld3Sw@bK^*U|Mcy0U6z?lQN%w zyBQHDB#P_atC|t}@FEaYmQ*P5Gm16K8x&llM+;#99DHGxzf{`X{P+vj>0gu8VJ#OxQs z8|LD72Krg*bBfA{_o^~6b9t^$;JMK#)OP|}z7utOZG*aPlV)1K4dr*2y58;ohUw`O zr2!K*ZUh7(H+coRP)`ah17=uj8KE*sLol+$Yult>O#&(~b%{z8$|!084Ybm?LnQ>9 z1VR^wmLJIYZJ{>n!}U7eAFTOk-0KH!k^Oj_pd;v$MhPFd!@-1VF8jm&^jC9-U$yt30Iq%&n)eAxTBc3y z6O^i4un)Q4NI+?8$`ocYqCoDqV_&r5%jm=UMXyKA;|d|b-4 zadKkk_j`LT`zgwYEO`FV3UqrvG$8w=BeI)>omYOBP_27XC>#K2kt5e+H z1MXL{L(84lHg2#gUGPdD5b8>rG(q~JR z;a095s#muTkx%r_OGgb$oRuArjseQ#IK&?Cu1*X4xz`80?}x$!U(+Z51PlVWewhMi zO$obarM??UX6^PX6FcsApEvKGT}qTvGT`_?u9rF|W7Z34z3!Q>WZI_XkbEQ&Dukp?*j0vF3OFFlF`35IvXs1K}zRE!B0A4Q=(ebyhjWx--Bl#sVg14 zx%>{Nv|8oY7ed)m567n5C2vL(W+auRM&c8Aoj)pzCSDp}7s|P4wu(L{@#H{!>Yg^W z(=E@30#EeB*2_FC#HqDBSti_3Y7GDon4?7*RVZ(0sZ}NWBP?d2=%P34_h8KzYM<9t zO}!orysph`{V)?|J?JNdF6oLt2E6~NW%pH&j(2{4@MW)#dXet*)zMsrf8Y#ou#Pn& zvRWtK(oxoCZ^Ti#6%UAo~v#ml5JLusGz+ z-TI(dU1gMkJ98W=<&~G$L_Z4I5cC4v7qviT{)eIxf76%@dwD)<>05wCYi%cDO7UgE z#dd-HxP?}^XTgMYHxsa0StHM)<)o>*iL_2x8Nm4~=#SoMypeuJ_MYyguKevC){B|9z2g;8&O7$x=zchNNP+mUjno;YW zac-av(D)fiPqr*oi<82JfcfuHCnwa`I?)sY)yMvXu{%Jn^3ebx(uG-5 zuY4|Wa?64k_f9n7lC?C}^J=sbu(DJMz6xp|hp~E`GiQfh%d`G0;K>g9A~3oG&VS#U zYpt@n>gU?f_Tv;V9@{&L@)~Mt=<4c@dkR#T7%x?}@pDJwT>#>X0M0c?2JXcw_oQ+WT&}cJu*nc{A*u$*m^RPg3zMPa3+)N^u({xlK`M%jKy&T6qm4P7;v@<7gDHw69*aAWk>QRv$l$M<&|yH45ZgBkosD8A`+X!1Z<)`~s=M*?^N2 z=vzq=$=;fpZUr-GnpnFM=K?Mth}!!~RetB&1Mjd6K@pISAWq!^=NG(bY>K?rtOIQ$ zsS^&P<1q@AT)9wHp2Qlst2({C-p|17^Vv`LV%fh!CG%*4%`;#&x3_SoSdl`$=}p{CDpv8;`bN1%HKTNo-fuyj=p~9`t0d=v3wReyaTXMdz5K)tVyZm8@=2 z!7DQ?gNreNkB~$OJ8nybMuEvy7h#Kv;-#4Y|3$r;ujZxm-XaoiXojqoD~3) z8?*}5?JhICX!+j5Wey1sxO465?Xu!@j@l3fV}HXuQ&6^l>v`Q$+2q>+#Z}41>>UOy z{Edz1mt5AY%fdEnklrdkkePhC#pa!A9$%_ZT6%bG25XyYRp@BW<5|^_on@}(JQ%*# zD0rv|WK* zSY>jc_s7P(T>o&mV!RWVw)9 z19Ul#zXvZ0o2K0^d!lHk*!$RLL^;d)w{xPi92S@K+uLD{P$880r!)1tG0h4}ZK;eZ z!*4lWb}$PuFQhuK4xIcJI}MpS)nMWE+cNJhsTyZ9WSwl;jk_bt0;mh4${1&gbEkq` z)Kp_DVgANf8kf*xxtvu#efOp67KapvcX-Wij9#gsu+=~0cZA0QrD}Nixq-XLh*j+I z?zxcT<2ZQV#8F~M`8vj~ZuRfqzdxg$V6ai8*OB$9h_fLjpnHWIMiPp7EmM|ER z81@(aJWABmRpsWOkFAOM0D!WuEJXZK(xzI=uqdVu%i}+`gMw546X1EZW-li-{@BE? zB9HM&hSGx+gnRC7sTQJPhy-s>(o8?Fa*^uGW8-~bcycABs`8%M`0Q%kO{?J1@#``e z)0&k020^LEbOr#8N1Uy~j*@$TB=d)g=hDysc0ipEk*@OzX$LOXBn?= z82;M2h&Hl|iwiKD#M;TZ$3K27behmgc?1oV8@ROVaR&r8HPgDLQnw{XJ3Yn3KZMtj zVNg@BAXBPt`~FkOU~qo8tYsDNfIIX1?>*ZqaF_bzf19+RR~HRgC6vtJ?#*F7RuDz6 z0Eb>wN9-v@_$tib366c@@BVwZyJ+dIlozKcZOA8GK^m`7JNV)mRU207Nfvw*v2ZHkIsX0fGSKFp>S(Ad z$@`+2Mbm=QM6Mqga0pw6iKZ$YH=KTp^eHXr^V6}!duwj4_@&GBb_SGW=A=nD<~1FJ zy~Ruy%y*OgPFTmwIyzS)8;S1&^r>wJ*#bUCFRe$)za9rj&-5R z(pUQ)sxCy8wFNj)wN)gan4#?MseRD2WU?8Cw$*lrAV*{D)5Q~cxcLAz-@@tdlfw{l z>rde)RJ$9M`>7V0HQe{=W-oI!WlQvRLrKN=7YCehiGH9LVPN*a%U>q4`#v38>?9Lsa1ZcX_sP>$GYDMDrM!G3GoaBy)r;%Jkym- zk4zY`0yh}att(!|eXD=Z3&jEgY+0LHx12tb z)0z(dj4$uH()UBV+-%GM9A!|D0$|Rgj+G}I(@zJXBx0e+*|CjC86_5~X6jm;akpbk zpi_Y5I5&6LTmXc5;*l{OykLR{Xs?_&=<$=0fkK)^(d(kjyoE*lsI*Zj-Tl>n7!dTY&0v~VASB*}|g8fQR z?!%K~YX8w*yqm33YIjta1zDY^U7+YojRB27q!jPglUrTo`%+ErDl1y?d0LD@hqOlz z^Q<#&AGOq9*V1R_Q5N^KStr!*PnT_%>;K-_*^zjVHhyhK_@gTdjgX5fqk20S%w*WW zOmNzFl>P!qbU$13b1gXrj+ADUtK@tHYNLf4C`YaDhMJtoD?juzuf9b1RPGO@`B8T| zxbB&br@lWuI5>P;^t1V4+74d!3FKi6{lZAIU^PsU)*&GCQ@DK0#;l_5KFb@0|I-3+ zb#N3T{IHTd*X>xI-l{Od5*`8jZB1pm%v;ipY$xTiP*a5icg2t;fV6n z#iat0F}LPKzy2Vap9MucW*c~Sl_Na*@}0~j>31&MO@C(Xz(1{H{|jMr8cR-0T!wzg z5j6T$_5m)*#mGJG+N5sCd}sO5Br9y(RDeJwb{Uso%wl*N+k{(|K0<8 z9FACWLB<~|mw7wj1|PolOs;NJsH4c^S2toIRV)m$iRoR(Czrg0`*|vy3N|C~`&FaR zq|W-fFi&xq^yNo&t?9$xYQ>5D%wkAsW_qCxKC>iD+|&3SwtmNsDC89z7l#XJ-gj+j zBYr&HyasaKLRCo}s`lADG=hf~bUcb`NAdQLDMlU!ZNHjrn_zb=99|@XFL;uC2#+Bv zJ6;?WeFCM3guj1V1BSfuF8XxT&>lVE^lX|ggG0CgV>ET-ULn#kkg#6>r^~#axN#%r zUS;j;TA48FIfKGyMb1fzzrxau2O1Q|axpw#xO$9O?nDO}EEb~s1zt|4#5`p;SSu<_ zb?KeZJbAtO5t^{?RD_)nO9i+_)tbsZip)PBK5Q8IOu45SWk=3{zt<3)>sIHXvi6 zYhvKGs|1IqtGq&zxZIe9Ry9>SQF58syuFm8~ zwez7R^iR=RnUo_Seo@0*ko8fBw+mv_Av%uOblr*2^R8C^^d!>vn$j7%A>7k-6y&MV zGpLMz50Togzl?gUflBcaaY1=qE@$G2@-+CYnEYKeMdH~m0%*~Xg1`YTzSj*y>+jd4 zv4Sie9cFLqx`cr^gG`T7C~ZFKYv`8DSGfENo@I{8JF5~h+B99qIBD7=5G-7&K8 zd?swPaw6s|_5$k;-| zdt<%jaq4S~^A))VskXLSjOLLEK-jz2_H0!9e)j%Rwitk@kEhT{N-WF(2O;6~__BM~ zygZ$*4?yM0&qN%M=|R zQQnORcj>0}A=S-UV;Cv>FdE-z1SGG0Us;hdKATJ;_bPILe(B8y;?t#HNHc;PuYt+2 z_K8Mj`9+=k0}ijfpSXrLJ3L3EUT=gr5FOjlZD`KvyI^aOk(@aMLzHaO;trv>TZ(z9 zuHA)^=lmD)f5)YR-WOt;cIz2mi8D%DKH|Ik;;&}bc$)mQnnBpGG15=7S21G=(tDdZ zkTm_N3E+*22ajT=g`9OtQvug@-(gU~aSqAs?b-nMR52XuqWXDq{onRq^{OXvYkDs@ zk;9+nV(<&p{c>QzIp&B!0&6dft6tEgYUjsN3Wf4*{dlyTPN$;Q+w|j(vQH1PiL=@J z0M<&sz}sug<-v8#?y9F|soNa|UuuM89=gsYeUV2chW?5{k~4%=Vnb(-=#Q1+sAXfX z{UGm9@x~-&k;B{B=sJ6-#nb0X@rTlaoj*fA8*OpYd;T z<=T_bc<7(t>2c<+A?ww$bmSk&S5?p^ooz3#Rd*fX)ioX)iO_7l@tLnJdU;ikKKn{H zK9Thqd2qbsG5Fv)ABVedQ@T3Ox(}&mQO>umwZ=0bYRDXN`Qqn{ppXrM>I+csPG ztYhHMcjMvM>DjJW-OQJ87&Yd&bIvJ+9B}yic>6F!0Rt6%Rx$PWWM{TS8PA&vRFnv< zwzfZ~|D7J6oHS3(?u}87UZl1uSj6t@)%Y)d-~0E&kX0`{CBWhI@BZnSvJ+d6X4YgF z$AQ<e zag~~q2hFtTqp!5rz1sy)MG%{oVoCsD=YjjE5K-=^Zi{+2vYxsrl zyxjk&HeaW+uTTG93IeH)hcJ@`s% zv-bP6FoF8}-^vyC#TFI-NyS4Lw{D|F^?hZ9{ebpiF%tQRx<_8w972(HhPVtL#~f;n zk*P6wwT zBbWU*X>kq(dw@`2GEA?0%u5J;9&Am_-SPkRt$7)bE5DR3yJA^AiE3z&kTOQM4Rrv- zAyvzXindjB4D=4@K|#aWv%OjOAel0&vY6#?r;U8VKDQ=DHET(c9o$s^JnEn_kKOyd ziR9gl`9H}b+$vD;*(0=h3>_!O*};`A{d#Ibg#L3h%jnlYyL+k6=wXCQM&JNoc~9m- zlW%3vIw(|p6bCp-V%f@A9yO$yMQKJZHwo#ev=_pEQ=S`aiX;|)%lO3f3US7#ULu)< zvIoh?QNx``YA8O7Lf8%9p=-?Ba0dJ+J&FNNKsEa(Ym-6k;ch&DCp;lwOJ@Kofi-wT?Rl=Jk_)!u{jz$M)u=@DU8J zkA9XH>j2;uGu0+=S@ZX0ZcsU)T4GxW1hhs_R9~Vwej>SkodZe%1W`q-}{mGfDhT_~( zyJi#qr~f`YeT)1D=so_YQ@Ly>wzkteLf+7QND3$LbU6P77REIeloZo1|1CSefS>#R z6aBKbYFcL11cRsSe$NecZpoW?tOeP%9t5FieW$~&%dC+lsYG-P zc(WJZ<36!Anp@L`8{L&bFp&wfmO~AucVd9XUaQqHOq^y!VWkpoa=!?IOU;v#l{>Vs3nn`dE~G0o?j=hR`y;S@C!k-F|ZJwNbE) zEaPyWRAx74_ch7vXX-EqQn*8bGm$uWtmoEHj&U@pw8PZASTafR2Y44q?ejfQ4NIz| zZ3AtD^_Gl#o)ze3Z~^5~ZUJJ&Maj>QN|RPH*Lm zff75iMRsT}e!gHj_PeW9wSc4~L!#OMp@0}RbOH4BaPeuBMBD4Oi7nDhnG7f~ogBR> z;w2zb?byP5?qtKw?ZR5j>uapw0%!9A#~AwCK@em5M8$IlQFqD%r`0Iep<;bK`Gmi2 z|N9xEK5loTB)Gotpz0}_`zmsSb|F>@L2lK4p&l9~r2shRc-B#p*@x3}Xyb%CIYMdE zm8LV+4)eLX3Ou2D-1qzrBM1#cK9c^;H*gv50Fb|%om!ZK^kg@6XA)LPrs-b1M_W0V zF`Apr`hduqxt%uG7LKJTP*U=UT)7wSM^+BL6x6;Cu^!y&wjZxxUlm)=o<{fq?t!?qTzNaEQy6V z1Ab4!dplvPMemEX6kpyl;qD*KTB`W`-!R)=1U|sYZeW5Thk^U9qYa~~-eqZx|Hx`V zp34n`YZGbB zKP%wwUUiOeaW;t;k!S7^9br2iK6MImQ-C*H`;OkmG#|IPX9ndY*BZoX+97L>>Zqq} zMyPOlK2N~#zEt4K$-N9#iMd++8cGT{GJar~{h!ZfaVnRX;&F&zn#cQjsF7ea9ZngJ z`wu*sU4Dcd{*NUFJuI*JHQbHl z9OhI2;Nes;9vKEL0r0vBK3hoPx=o$bzW1ooqmW(PAIF{0@))`jN14DqvBVM4w}m0a zRa}g3Qn_k(X?uSU5B)yb8ee%I)H37U_$R$c?&==JBgNi6J$9ADn@$6}{}7$5=3#rO3H2nJ^ur4iA% zU4MzE^%v*U?lQ8!2ShEUQR_ zG4h+*sH4p-ElXeenfufpcF8^Rr1~SXCs)?V9_OQox@J_ ztUrb&PF^`kV+)RG$+Wko420)Pnk?m9MSlC+2+DKQ0YTWaSpHolphD4cYYUKfYK&lb zyRjZh0`*W-sS#te&?#)}Id4x~?jq-sLx5 z#+@z-P!zGaeOH`27hK~-Qw|okGUZ4#5RtZ=d?=2rr39kJ#_kL$6K_64?mVj6`24DN z=bztsnN*|gr7o_{02T&=x``6vY^JU0)P}D)MCyFba|uDo9&mwW)tJJhCWlg#3U8aM zzr$7=SuTiWeE6-A1p}xPzz{<)J5f!SPNLgqGEE^-Xa9g(^E`)FJOq;bB4VSC3VxUx zgT)DoN;Yg1r%WkELJQiw#s!!1+1P~-W*yv+slh#C7sh~#sp5)dm492yOe%32lJh-U z>{!{1C;RjJEL>K;9IjJVwdkxkH*KRBlI*CZqHRU|4Q@#bsuSk4qnFwufA8(71?}ub z6G+;x6;`hmf)XoXQImx+7gR~cDEUED}}+VX|$dq0tQ z%8lt~lE%D(vUfH+=hANWe0NO#un(^q_S9Rab$rvvUJ_X10?><^{7GVI9u^_&;|@>4 z+v6XRL%SB*0^ry}`;wj5yP|(cQzO!EswV-?RCYEexwWm+BWk8B^C_r_XK@%#w97s> zpu}WQ$9}@T!RI_PxMx?73K(&s&+hgZU$6vySoZnF9@C`$HAcT`89gbFh5TI91YMNo zHe{=Ocs>bOO6#sJV{xq`8VIyvyRHGlqu0G*A2_xKjh;6r#IJf-^sS1f0-IHAYdIIp z!Nj;&1}t8pDPE*0uFdZy;AMe_^X^L!EGB7w(R+clENxK)N?5y-IoR`M|Feh~$E1>`lxPuS= zcB{1Sax{}r^l8slw*a_c3BVf0ecTER5GW*goo+`*Y}jaJ_6$I~WOuU5Pl4FrHZlfx zOKMblmRl{^<^AEntI)KW3{udy7g*KHr30TkQav6=ML~zxB8BVnS_4?Zm|js}T3q8X z_(K8VG(a8raUsauPXyFa>o9->Rn*)|M82;sem-IcB$C`57!RN-I)JoV(gRd1a zbSIb1KKj?!)j%=?PX+`z4H~0Cwqan#ICnzyj@{`>lb!A>%+0~U2O~3NK*0Zw!-CTOMI#M|k5Y)njv)d1^#5Z6oX z(zAHFmGQ|~LVfFlfn}~J7ubUxfkOQLc#K$&!10!=>7~rhwsWM`0z0Xj$&{jbRgTn8 zBDYa@O_ zKJu^?#s*7NP1?feiE}ahPk^LeOBl8D95SgmgOyR{A!(G+XT&oSQ}?LE*N2=b;Z?5k zGE#zh&44m+Ccgs!yCPU~3LTDGo!&t9>Ty0WSrhaTx~e%_DfuqRn|$ff#+)eWg+s+Y z1wM0lMuQTv?v&26*+dm9_>S`TJi1pV>4 z@D|6HvZ}+_gjg1q>;RGiZW_*`cj}Y-tg9Ggu-FwDC&8?l(A@1)@KNnRTnEuVYyY0?5R0lg|>R5uv%7dY$7+*YUR!}C_C+E1vzk@#<^U*B=s z5w~m?dKR)g}=-nBi?+8hphdW%l* z5{a8_oxZeX(LmuSP}h9*{%NTVJpb(B{MN`lPbYC$4p9iAdD8~$UFk}m@ae zhUIh=dDGggG1H5?2G>F?fBDY8QLYWRz;;X;RY;CfGr`b{Bfgm;bnF z4iykMqQa)49RW(@Fk+R^G+B$&zl|4efL@*am?rR2J1o@I%?&?=2Cn_1lcff-qphE? zt2H|M7K=#rE=vD2208aPw7p=~6b2uX(y(6+X?`1t2$#hXivu)Aj7KT|6q$Xl%|`1F zJ`4#zTTcv^_~h~4e2RKVam1aw3fAn0wjCYY!5fLwf^2s~$JztQI9ylna-ULWe9LBW z&kxF=R$XbihW-T^TiCs89WlP5dzlXvhA4mhRZbcLA1uM_`BTPvGjdrTXP)2G zmL3to+1=4|ZJw9M363j%6|{hranh4!Iy)a?Z<^A2y@U~bQAXefV(9tiSJ9JotlB*f zp9dGedOK-9z!X*?gq9Aalz=5NimXO;hI9Xn4-ORn_4*rgGz~MAS%i*E9vuE6j-4A6 zU40T(TqSAkm_fIG75QcQY=mCQnhjgxNkrYIUFay3-RF^O4MFpUp;SBkxvv7|o&u?}1=g*OmWi{vQC~b+$GQH5yXXgL zBs#HrpmWvsz&>pp!+`>4u7OVvXq@0%%d6z=Z5vfUzvBp&I|9cDfaG)@Oa$t1fQh2r~T+W#Q)vQ6sZW3!?E34RK%TwKc2 zxqS4t)yQZq*i;S^+(!-4&SUKKrO!Z>Z;6#OaG!Hm_w)4;PF)i|$EZCQ`Rg_*KnbO~ z0~by;Fvhh-eOw@!RP+nPv10j*O~U?^8sp1*G%;s?UU;3!)u#juN8jvOt#vFDjVqXn zHD0&abxcw4Y(k9(ztlG^14<9VqJazpmsy>$p(gH7x*7@>UceFY!-y3$s-+T>VcD?! z*lg2XXNp!^$_97eG`BLQEHtnR8*aFWR67%C-ZQJ-0%x=ez3WsjCw5WI56Ss>IA#o_tk4Jls`{Dh)4Gmk_E2Y_Q;h?| zpHig9FLf`${>J@ZU#+t~yD$0fcwYlkb-;v9v^CqLZD>7inZA(8b)8^;T^RdGThv`r zvuO0JKKnac+!W!+3gEC_gQt_i!@;j%qyUOEu+qzxLy=b)?`Jssu-8g12qr$T@7~() z68b6{Dtu={-XE(5shYf%y%Sj&D)#-SK`VRnZHS2cT!Q99ylc`T{_1}f#GGf1= z^u+%5jD4Y0#&OXJn^R&FB6s}k3BJ^U7*y(Gt^Nk!I#IYr?On5>wax^b2bS%A7OjW3 znR~e8AWVsp4}3yde}zWtX4|AIrT;8DHr}uhppH*Ok78S$2dic?xs=8nJA=R`6V8sjPZlI9iWb1CH`sZPI@V`Pr;eO0lq(~ zsk5_F;GMftysyyNRtq7+_w4Wcg}B$TZ*9kkwYP75^+RvbT-|5b$FEYZ68D`e#oBhH z+sj^}kjzv}_?-;oXA9&6{@$lZs{3bOl3$G4^;+3l5h`bS*3xe`?23Dzpc3ilq9pIL zSEU0Stm!RXJ_*Y<5*Mleg{T%hDT0=CK|nw{*Ej8&rgeW!epX$CQSu}daCOPKld=f= zFJy1Bfwjh5b9G*lR^*6eVXC7PXdSk53200QafF;a4YEA2l|M~WJcIKeu z<&*Ch(!QC9MWi1bynK|hF5zoP*pL2aeT#FNUjlsjC64G%21zlO#ilDM;=Rd4ocvJ4 zhdD9h$4()9exH>t+}0@7@bG^4e_8o;p77&&mt^S;J=@2y)@I~0UZRf-ed4{_c~>@iy9G%Z+rd$_SA ztZWN_qcV2ucvc~G#}3KBgSbW z+#(J)CjU4d+(wOT5p;ctXNAY%8u76&cCu9>(N~THE}3#v=fA1c{@a}p&Y~_j>3bpS z=!TOSVsxgvY2jg9Dk8ABYBEYZ5Lgz8mFE{F937u;7E9GEwLv<=Kg#VmHqYDQKVB{K z-R8P^Wg)cvQ+VO%(l0QWrgN)ntkvAF_RpxLkYXQTon#v)6$iDM=e(|MBL{SuP1pY_ zYqro_GLRpRF*0rq-#_1UyA?a%dbMi!OrmMTvnk5AWns`#PQGls@QXK@P1(|(_qwxESSkeG5L1oW?#8tB z_--zbo6oX7y7fu4_k+o+r8xZymPu-0{oHUD%MzI>9=AXX7S;N~tT=d%2tI9L{1r8^-I@{G@I;IG( zHbz8Eej2)1M>l8PGG-NN-joPs-F$5J|bo0-BiXZxzb?3@89J@#8Q;qxBqye(v} zM}aUY8>@R!i}%Ozi*c%xb;K({u<-bVYOXkx@YyZv{t!@=M`7q8lWya}!%U9vB(9|F zK(e|)jhZ%xp69O+FQ#fY--B;TfvjONOKhxj;#UFWT3v&BAnUCNiK#bsN z;_QiNm7m!F(+k)SteSCP0F6NNGUpak+3RQb+P~A-ge-EpeycPZSs;XtnnP06PqVQZ zA{~!Lwlws)?D2>$ceehEGx|?v@hppCKOgi%S{g(zI@p=ao;zatkiedlg^1-X`vc83 zjpFqk6C2R`WMul(!g76P^Y}18%v|l4X+wXEqCpSug-85%_{{6E`LmBS?jrvmP3Ij? z_51$uV?`n(WM!Np$IJ}bs~lO!h+~s^I)v;Q*(-ZS#<33>=h)PT>`*7?;DjV3B#wQ^ z@BRJbckq{gJdXR^@B6;4*Y$kszQ#Fh$MI=VJSaJZFLL#~%& z;GtV~aEI~M|1>7mP~TN;M0IA6HsVx@(^IC2*Q0eyw4?$!SS%<7w1;;zzG9i3xOvT< zUKh1R_+TDvI41%R5w-XiYJJf*pHeHd@$9nuVKVIwPym_@t^G20 zfvx{_>UirpR!NfIX{^doqLe>(o}!UIYdw&A`|?l5Vr)FQBqYP_XR!LnLiWelRe-*y zv$n$S`wLWGw?8l4I`|;VEcXnv>`n4@ui4~vA)lOB5qfU0Xjp2$~c>Q9lbG*rJ>JlC+Di{s(>C5xB)JcyG`rKmn0Z+!RAtn0i=&_<)4bp{;E>!Q{ z=>0MbGb0-y$SblWqs_(0zS+mv7q=-BtDM2_=%U|Zmv9y)G%N+oJNa1AdeMb++$BTm zh4a;O713aCuV;5B^=2oq>u`KP|Dunu!lr6M)sp|MJHmNCc{7EXRC6q!M?I)r(0x6} zBHi_p)9ceQS#@J_o1*p_v(s1~CUq3212OtgT;nMWwqPbcLRnd$f-I6Cef|AKifb2< z1F<`tKjaKopUadNz_)rQF_xPra(e#QJNSjbvgSbUsSQ%UF|=`1N~#&`%wtxc=qN-> z@!pfWzqe&YX2|0j+xj(^bWja$jP(a!3-#!WClm*BT+Uil8SrfUPp1T zx`YJ!`|qD;W+mQD%N5*;Tr&l=<`O~XP+86y`x<;C+f$IoyYb8#&@btNC2dH>nvSI| zOYrx~EBRY5gH`WzZZd6UjYx-1Z9jycuQj|Se|Hu;y&$;|vA3k1z(S^tU2%yE)E{Y& zsvt84`?o)GXg&X2cVycE^FyNogrF5j>-DWeOGJPqvv0$Xh{v8PWz!!X?pD&-scqmF zS|b0Tl>bdf`*FIR zM%IFYg`jisWX!${k6~}vGz8^T(3?T`F!tMY4M3Ta@}xuO!rPGBxiIsd%&hg(Jd#(& zuX{u4!7LA3dYO!Q`He{=wzUG{+yFn<4yWJ+#gTgQpN*tlQhs`)*R4UR6P&cR%0Wcg zJT223yn6lpYe2MFtDRqWh4i5{>628C^uzzyJx896cORq0X(yJH^aO-&#!xw#j22_D zSUfXi_ybvy8gTC{iOHVbGW(?DqjVF@ydzk}N$d8+Zz7_&8rb)M)4k$Ncs5d^+AEb> z;YrJpy;Z`{(g@ODiBP64Iq}U1HxE?!Qi6Ug&Y{AWB9}Ip0?+pS{L*!lD`bc_tU8dU zJBiBan}QqpG0Pus_41dPW&U^mx?uOLR<;F?@A-+24DTNpxSYeHzVf2e<<2W@h`tjAv_$8bGf;iBaikJhiC&s z&zDw_=Q6+5exJG5PiDuxco)i|VZr=7%2+FGHlX)yBIUM7Y|E0@j!x<8{I1Sm+gIsx zjpqwk`o2VkXe057o#2M4n4(pIk1MJDK7>7WgHMB zvN!sLjLpr+m_`z9Pa>3!rH6ab$wfa-w>p|v|NcmrsI>M5JKmId1rnI>yB|HQfOfDS z7~-_pQoAupD`J)&5-YK$yz$uSgSTNS71-u;pSY`?SL)stVY#4CgjsXfl^9qQi@rb1 znPiJ_Zv5iXJO%pga+jXP#bb)fnb!Qy)tBZhp8R&jW=Vze^R&K9Eo>3}MR>0r=((}{ zu4y`NFV#eRph2n6EXhvA@7ITP<@B!~9RIBi@y^YWLL!>dN(TT)8b95VI)7ut&-0SQ zNTmy~vna#BYh>c1Oup%YWDtq(x5~~7fekuP*cNdi)J7_wYvy+Ml4Ie-n!lko&0olM z(Rb)BeEKLP4V6Pg{yQc8H~C@2vj|Yo8w2^)!s?{aHI?1xnYYDc*F#j-|0IShzX5hV zxzb7fo1ce&dh-TjnSp?Y)ZAp#0h=g$$O7sDcy0XMn4Efg^Mpr<$>f4ZEHt1{o5Fcng3;5~&(wXZ zGC`S)IRoJ#ssj;DKLDR3F~$`-)+NV~o@DsiowHiX;R_I7>W{qOb`h74IzJ|p$vx5l zn2jy1Vv!fzh;k3C{^_mQ$#SW#rWQ)HZboBV`x2Pv_BK_9hm2*z%x8hY>=0sjYUJ^Q zOuc8sC354WFms<6xb_G?-YxGYQ~g@x(EiN`XC|Fr>GJZmOxZ4<4azohrPw)t8R0f) zuB&C}*kC>Mk677=_;lv_BiM+NTG7zP)McX8wELOT^M6_Hml$y}N=EkQcZl}~|MiOv z!CC&Ab0wDDSo>8S6{A}P_wHBF3rhdFdxNE&-B#|#-o3}!CWyZweUXv<*H-Q^Y~*`# zW|5xu3tay5xtz#@n15frz&R&fT`YQ?QYV}Eh@mbgMgwc`t@tPU{Nx|$Vj}_R5J5g7 zD+;%L?OXI#k80w0?|d*q_aT1dXcr=s8BdMIz)3DwqbFx%H+q}U@+5?-8wVpq*JfKd z9TQciq0bhZJrD}A^K5-^slTx~Gsa=7dQgQ#ht z>xw$mI=@t89{dCCiwhb^22V>VZA6`~CM2~Eb22Id@*{V& zC#ztq6Bici$zX^m_EYF`J>6U72X-@z#ICjcr2m_Zki}GnZ0A%oL85v1yUWAv(Fe2| z6EJ*0nzT{P2gPml&Chxa2es2iHQ8LL^`cqI4~4ZIfEnkNaK11CaaPW~K2Z(-i_c}f zGFkl#PL|`a88s&TQhAPI_HU##XKc0{vQEIA}E}duW`j@Lag?1ZKi);Lt zul}Yd4<{%G`uF{*Bi?lex>1Aict8!4{(4(E_ZxE<+S=5aL8t@Y9W;2l7WWV6Ilrm) z8ji2R_)J2X?M(TdHnYOek!DL9%HYzT5<`0Mezbe zxmF3kKefQGYeB2??a9^Sw*A`vL}t%~9ySXKW?gnRjh9vw8dqnq2aH+o#u?%gceD%i zP|}5oiAlxnOM*TT{TsfvBe=hQY8RW!m;X&2$(WQAz7S9cOFo1{zpn6$BMvPuBtS9_ z>^Zcj5RW_Mboo0rv#{i9C-dM6&E_o%n@?Z~p|i?+0w%?pwTTLuur0~MD*{Wz8$<&; zHqi$bkL-R+r>QD-aA-1#0?A0(8?Br!Pz5QbNib#NQkTH3XJOG}yA=Y{H7i_)k=*EW zGyh|QfWzj+W&edxwVaW$6aJMX_s1(Y#SfxXV8&6Gm*h~KkW%Za?aakCOJ=4u&&(oQ z!k3Hk7OqbbmqA>`(w?;wZj~?V$0e|BUDHe%40q}wA3Wrk#o0tYp1BX;Ju5l0Z~vn@ zqoA?%?;yO>N`1!h-{!8NRW+*3=Q23$^Zo`zo{*a z-^v;~eNrwjcrv4Kfm^L9Qv;4dq^%AdnXHSrIGGzzi8@*;lNuqNDjQyn)_QK93mfj5 z2}pZXU+psnsh$QgF}x7p@9 zg>bFYvTgnH*4$Lovke)BYFn~AhKg0@*2Teq&Q=ye;*Oh4vHXrSbL3w>x;Lr!3>g=3N^ExcVO#Bac1G?1`XB~^4aK-YrOsim z22&fCJIV)6mvib?VD9)WMSF6;%UhxJF7ZT51R|BnWbj_vY5@Q>yiJXkzmcKsER zq~3ZaF(!&)Q%sxkpu}S|(79+YZmF?uosY`?io8eUKIzvm7K8gb4COQ?ge?y&ikQ%3 zTRQOx^1MOhSm)=CiMPvl+Ux(RY6UuQ>!$c6@YSKq$Sgx};@>cV-~1eH{0-t!oL6?~ zIYC+H&l_~AQxK@j*uayH-!Tk4bE~(gCviXy6F(<10R0tk^)s*Lk3y|4QGOfoPt^5u5HeoIRL9Ju~;4z8ge=@a6U1JyDexNzXc2e z`y6NAd9@At z)W>g!F70gMxJ`|5?Vry(Y9XLUkpBKi^4a0BCwH23Pk%(P3NPPLlbM0-Qo2w6N(^-O zC}Lna0V~0t8i1EyIDrKht===jl}sKvMS;pp#w_CelJq}xj%2GngDWU~ilFErXnw0? zf^WgUQ|&pqt?&OH~Wxddj7lkG^i!BQ4pR5L8ELG9EpN0rzpm`H{!RdN*^G&iDI zIa9c-Vr}a!lurU=XsGfE4TLLDls7cjSY6Dmx_*CW*GjwwBxmfbH7v*pZ;tT*_K#7l z#N}YehUUt8+D~L^%L6Ii$rAsur)faXV3)}*Cz5(=SyV`jZh z;hUq-i|heBg_3j=Qp3Srwy&;ti>Khb@fB>MD8Hn9gRBa4F+B)*vuNh(&%iEQ;~J7& zvSsv!XOc8we7G}mW1x)(s!s`)H3!QibBSIvwBEn<3iqnLoW3>1u5iDRMMDf^o8N!m zno|aM#ZCIQY*l;wl2r|%JEp1~zi{Gse=vhF9qjh;MUcnert6+2si4Qi&$riiU(-6q z5e>%~f?x`TutQ`L^|28=%YW$cA~+N+*`24OGfUZwrGq0 z!q&S_?(On{O$CRGl9;QTm)lKucXy|XVLw#td%pMS?s9MNR`4|g8TvYDFEjvjZHN%6 zxNy1)ddV5^72bza`V{j{3TK5t!kgc0odvp>jSJW8_B3s!e*SMwOSimbK@RNsbwN$# zXrfhoqCIKFZ%UdS#U@Y)hmF11%9PB$cRQIHZm?o=!%}^F0n2z5wDi4@Ja%p6!CWmf zh2|<#2h%hApIR(#!j2qiONL~PeH94G=NQ6S*(fjOl-1wdM_Bsx&~ndiN2l|$BIC)* zh{Lf88e{hKEc&ZY#Lt~)d;H5NGRx1%pWhas<*LXin6sbW#}KY2g5C0;vd}HVsndxq zqFfqD1^i?yr=!|4;&0@@a+0CSh741vDJsw0@84F`zY!mY$it-vcMEHO_0hbOW?TyT zubXQ)rGPhMH2^-$n3!MYFxjqaE&(0^CY{>~m~UNAfB|4s=POTcgs%%`P%aze{!9H( ziLn&J1%HPdh%2p?`1IQj7cnJbHDWq4Hpr*Z#Ek^6up%yeLBM9ZC-Ku&?ibUl`CqSq zv~25Qq^oBQU3c)AwN>W#DSms+Wh~nz{Of$3cO$&`1ly%~asS@t;^w!h1QF&a4~~J| z^4*YwptcGAn~lYBLr1q1aI&EHQ2Bgc-cP1sJ`pbb4tzn#<4$#t=%Q5>Nnic3+9GY_ zxk`o|PT*HaI$mV?__3VvM8P^KY zMsHi&rRaY$7=01;fy;l$Z2NfTBQk&o#lv|&$rMK2Q zd!g`pz;`Lic4^;HHN?`o?=c!L}@RZPaeXtF6QcZM$ zh4_7&H=i`ZsN611uCGwFN~wH~QdB)3w0!0=`pg0QCW|R{lomfj%lbogZNHy*_wj%I!{%f$ z?PlDoXnLPY4oZ*@ulWzkx38`PL#qm-VGGAVb@|~CkevjW6swyOHDQr+gcEQ6UYXeqe1Pcl_a0bQ zS5*au++D3BFJ`;nOFLw(xk@VC1z%x1(Cl4!DZ2QcChjf9@>PczYm^nmB2_(qBE#kD zs}eqgXe6PdoLUaAK2?1D3Af163a$v?W@)!K>#Wke5)I=3IhreN{3kjL5n}C(W81KWU~-CJS;xY|jqRSqH*-uE0M?`UW9;kp?k3>)5vH2V+q%^~xB|cz zl{R90`X2SuOW;%t4Qx3;t~%Hr>%zrmg!fpESLJxQErk_oX4m}9TQX|=DCkS9ow^*&8XmJeV(4Nj|!FGl~jW?Y5^UN+jJ2;Qfl8m+7u9j zZk!T5iFx0Swd4H(e2H)AZNa2YAN|kP5tjK`FjRP7X;)0gheG+PNEhzpSxYpKyocTr z&GkY<(CO@X7)$K(E&NgR$w_3>q1~MMpQCFa=61_GudL{+DD&mrphZ3nJ4x*^9qJDq zf$kk9Ub`3G%LbBnSfJD@5rW?p$qz2+T7RQ zA*E|?sXRbH>NNK(yk~CB^;<+&zZ#iaPHMLm0Z}m(vpe`Bg?nnoptib?2i)%&PBhCqW%m+)@*rRV$p;S3K&oZE zq=}II?rn`{Xv76T+*+-Siky!+JGd5ewq`u-5EXTChy%he4$DjFLd_p4poPpui;~}N zIC^}P^`TN|u#v)iLLk^OqZ^zdVp4yrGi+@3520~qOs?(>t`9Vh$vE^4@;em)Njfpb z3T9I-^XNodmrs+|Z9NvID89}pR+dnQ+T0xWZG3A!-Rob=rbr#jeRK`EG3AA}DA<0?tx5UN)0*{jYw$L?e+#a2%Z2wY z1thPe?Wb}Qt_{Bs(osb8e*EfF)R8yE{)*$vEN@=A*On|4G6Egw%Y)NXsi;%j#KaA4 zu6TpG6ouZXzZYulZ-hh>Cru0tadN6^YUk&q>4EcoGgQeJ8N>XyH+?ygHb?IZchPP-`8k zw+1V47f2S*y*S69#U&*`j!pv+0wdmh9`;CaG`Iqab9`wa5i)9q7UvmWTTf>gO&HV+ z_n|(VJ3Hj3ZaAj<#IGw8gyRtO>Y~o2L^8AVyg?8hQ|ry4*3L!#>9x^atankHf1d}3 zE0;`f02Ous0P4yM5H>GXaZUs*29A6Sa~44o|D45(0C4D{>M?TlF8MoA;nhgZzZKtQ zED{&*5P1q2=5^s~lCDvnCbd?TTw~F%KT-v%ao=4z60bkKdOI48hyQsPvQvSzkQpD{O zlfN*>T>H>$bH^o7OvBfHGfw2w)LemEMPA~1h!MnYN;^63D#fp0m41E)-N-7o1M(u^ zEum^mKQt)Gxq`?PG4vOWtNw`pPa0pdapZ7$7$s-;Q0Hf(&JJn--6*aydE5MMmc zo&RiiG$HpT=<4f&?ZBy5-_jcJTnH4b9wz##dYAAsj=|U8CYMUk>8@zpfs9da=DJ2)j7X^ z6HHA0R>8%z-`v%|^<+t&?s_MsX6n3h(S}HJWceXL!T(D?yBX~C`WBeQ0-f1aRRv1+ z0DHgA)%z;cN@-CCzxDVX98srY{$q_TY1C>Ki`EHh25r**_unF)NuzK|ZDYHh`5iHO z)VwG%HE>DMr*W3BSHU0$EEwhZWWu$!+pUHq(D#v+5+l;)d8AsI&{$R`FbdGLiy3w; z^h+APg4}lacbX3ymy^h!a4r2|Xl_KUlnWQ*ap!Y513FzK67KH*#=MHKy6CBzI*z=D zA*JrfPrqHvEJLWJpHN~LgE|GttaVz6F}fcjmoE=+#=`}kMN5*+u=h_Xz|d}3@-bi9 z_Yh|-mNos0&+I>X28*8+Sh}#*YCN`Of9up(2m4KN zMVH+F;ceo1aGcj`<@+1P-+;>?Un+s_Wi-bGjhHeB&oB? zTu1&M@L^*EdvF^!rd~Jv)qQj??Nt5WsyeU=vV3d|N^3F;QzU^YBE#Fj9BuwUnb9ts z7$Q1UhwN+nK#ot$7y*v*#}1cALL1_8^k_7EUg}jiDf}{1T~!L8t4n1VYo)g1?IrV9 zHx(sts+rG8j!I?CQ(gVLmXaY!K-u+$^5P2l9s0}1pTJDACd4foE(>O5HZK%{2o(t* zEX6TLGrEo&=nZ`*GILipV*JsEGS_Vm{BUyc2h`Nn-|wfe6>Yd)n_buq`^=u~thJBL zg&E>PSD&WIZj`_@pSnDo+M3dCbyv`zFZVH{6qVk{;;=HAwTZqdOC@tVEhOE{n>d3- zcLfOmgCW!jqH@qdw4ke-h)`~kmjy#Pa&TqliKvgy;NA%~Y+F!!rrfi8(Yt0w&X9C) zpu%A0#9M7u3lcTC@`7SLYwMmwSHF@^FJK`_SX@~lNe!r|t9L9;G!Og>RpE13*3;Pz zoVFt<@%$VyfH30xR2=-LFn+l9d=emK`(S-A&P`BUJ~JNZoy5r)8bEb9%`qlUUVm_s zPeN#JeD?0JG3{7PF9e3%QJrp*M;xMJ33}9_$ex@2L)Du(|78)D{^O2%@{gb_lp>7+ z-2Wk=~k_umn$q;PaO5Ltb zgC~`!zDT&}=bPt2iqg0RZ?~7IAx(IMjm+sROh=(qU~6ih$3(2LaYP%g(Z%DNy86YY z!{R_ROX)9Y}K2dD$hv zkvh%)pHt{^r(+rWHw*4uS8)w|RhDBW3SKSr5!L{6Evb=bdJG7|%Xgrh8xtYP(xw*B zN`>6SYZkTbSI9DNwJL{F`g2-`YW=5baHd+;?WE)1&jH%PF8P1v*Mz~BiA&2FBdgNG zwYiIpRBGI^(gI?_!nG}|_4V>zl_n2%#KADQv;M})IDJuxmM>*djn;%K=xsoL>bS__ z$!mYT>h{URU*hYc9T#4RPR&Pv9)6UwFf&))$b`%M>6=-&l!1{ai;n}ukvMJvYvA&d z%zV;7vDPOSD9!{+reXOgwL~6P0%VeV!E(hveq#q*HQ95Uh6QBxBXa}(?d{D3*x~9% zMn;+t^tsS^S`YH~zO=eWcf|;3X<=7GoqUqYCwCM?&TuN1(@*$Hx9yeB!JPijr}BVN zx!n=M#NizZ`U>Tn93fNl9yK{%77ijRF?O-BBWovtpBMP98{_3rGtX~PwBpt7j(1hJ zp9u+$?neuyJ@RCH8z&O_q}!u(goVb0hY|^M|Y}^)s9lJ z3aa=WbH5@(>u!74Jk|J#xcZ|h-L37|MbU>q|Kx?)GeX$Zu|i7u86Vqo{#?vQI_TH6 zzQ>yVeh9|c}jW=N3NSXw#nD)Rm208wr(SP8kRyPdo3R6^DDna-h zw1tC0eX5d5sHz*M_p-WG@o_l}CEu&%nLbW+AFfCIBOA3wdLfRzuZ9oD#t$ulq zGgkLR12C^+;4ls3oP5am%XM?4GqcXu1reIZCRd#&pIO@*n zJJXhMj;z1JBdWuRVEG=QDFZVhdN(B}*xy&q+*+fqnW`Okx{>cjvGm!?Rt;;vc7uAt zf?Xek-yet!xc!*`-zq|p-e@N*^V3+5J#a58iwr$II5MN+OT~&Xu?d_?1_rJZPR@3C!v}WDVt0$H z1uL*h9_&lY%Lc;K_lDo3yFkC}OF?pTvfd#?afmg92k(oA(J1N3SIHkK%iwX`r#`? zB60IYmVDW9zh{v#P|N7;&EW>FDNkAsUQ>x?()cATZDFu9vAlcmk2YoZP3(&9nF_PA zE8*AG?mg@!TJ{_%m$%~M2emIJr2e<6$JXhr{N9EXQio&T4^?4WmV(~ba~RGtn@S2v zws5pt@&kVJmR+Dm4mI2$tz8_dr28i)j*cAr7G9D7HXyeavtRl*8JU7no5w@P3Z2DQ zg<5pYQ9t3r8!^2!eub>2kVota+Q}ttduP?}1zD0r(0^iWcKdw2(A}>UJW@jk%Br68XVh$u=18HLRVNF?|cL< z+rP&+T^nUM*36y}@k-j}d5Tpk5JSU;e5(!D=aN>4gqLUiyW~TY2X6ymOZLm9o8=G0h%8|I{#WMt7d z?R!FC&eSTq0W1W_K!)~j@|&D9(i)NbtJ|{fbGtab1cB;(>2(-=Q{kp5VvO;rOX_3B zAxzGHhveDUX8k3VoKgBOzOOfiOJOacXuW(4v{qGCEW4u;WaR?ISSA>iThgb#OrBNp z?cXwk`r7+V2?<{@=YDA^o8eicgKRDWQ{)=3i2&|=}!!3Yb96HUN zyBbM!`$jrAouXz}6R#o6CP*W)&^XL+@nqAZK+L4%un3Ylnnv9w&$V;}82)z-MFjS| z`HZTvg*5>KqaP&=#cUw6wwbjOX}6=p0c~ z%fhOsrYIU`zBQddG_q*;e-|5H-k~pOPi_s{C(6Ug%fMe==?Bm}uYD2caY>vw3^Xdy+F*a1Yqr+>3hRTlZZD7W$b@;r zfGT2DAGz$3v|RPD%YGUdpAA>bhjlldI=Zx6&HlsnIqJ^NH^k7|5nD5Op3xX5R2^3f z%EHj+B8forcR|4;7A_W&HYsk&KP1%XM7eWGj=FpxBjw+Uug-zwuL45ufKuA|_j7NB zJX(j$ouN*LLK2WSk)vv&TOpL~&bnIzt=Ly z;EjzlqE06O(T9C^Q_tyiQ$MuUs?`kt>bWHN``w=^F?S> zl&c&6B#uCA~Bn++q=ExsATrRxvn%hTD zcN;L`1(?Q3?-Peb54{dJ=HEl*Jf?$?q&&x_2^lG0?h${Kb84&6ZlJN@D!>#P9E?4- z*Yy8x$LR&2mt)-PEGq+k0Ti4P*)Ou6e9yeo zYs_&Np2~)*M$-U8;>nEq!T;_r8#%4LOPxccQ(OA`hB$x>UsOB9$yg^*D|Ee8iO}S)w zdAXS&MuHAC*f!eTU4fJCahMk-fo{I1nIT6T67{1~6~<}TsQCCOS%!q%KkC?S{dm@Z z8REO?cBJ+dy4>Hl-h60(B$58_ScNF@aaZjfNpJA1)R6kEIw#E%$C7`YEC|59!`n^a zwCG01uSx_bPM9B*!WV*i^rIo#YlEcg_NCf0Pe=^K`Fl;7Ig^rY3;ez*$FI-cRfWxS z1t@6UMPS;KiqjvJI=NV~on^RL=;Zj{O6X#9<`CVb|5TN;fXzkw8ifEDvz3`7zF(WC ze>X{H9tQ!zQu5x09#bLqZiR{pDeHF2RO=Im$mEH83cB1oXV4$gyG$@rsWO{0Dy$S3+8DrPTI{f!W;wouH)_*pk82E zy4O{vm00{)nzOA^+Nu3+`|R!qzWZai5%m=n@!IQ4pU}xC5@TXvvUzqYeY+kP&Ct`Z zB3hm6f^uoJRh%w#KzDDTm-nf*is8gwaLGm|@$i@{h93XyZ?&DOE+O#`3>aZ~V}$oA zyx;LuU#W4)rcNMB{P_GlT#>iLf0s~c+XJ5uNr$*rhuiqiw#VC`3#}1(Q#HnA3)s4x zLK1l|=*N5*LUr`75<{#88$$W!OW61+c9Z$5->v3Bpnk~-8!wF4A8wfWHS&T%rwLiqWSMVZu%^EbbElGJ8mu+k3>*&m8t+$_XoyqZQWiYAVJwvI)H}KNMq0rT zcUZsml{G{;y@oVDKZAX+i)J!H^bzBj88o`C1Fkrh7SAGVTWzmqTy1W(u$4=R^p&~v z)mn^JRV}Xjyt+1Lv6dcz3y~G-^eO%mb*UNX+sxLTEwaSS_Y{QZMw9%mjtfam&cU)_ ze-9469={1V6Fx@kY?mzWoL&68H=T0tVTu3n+^k(oR(t#it|!_CRtSRvy97>7$sJo} zeWr5iBmI7t&HaU2~$wt?1S7NazZEr z+?@B_FPYI+m#e^*O`X4cj2s|d+khk9?8_JtCNPnwJ6n6fcVd8AJeGo;dCgpip$ndX zTzzv5PUFJHLXq_btulgP73(pqKHmBo=JPkq60h2`l5nHCpwO{RizaW~Aj{y54gs^I zbXWIzQT;*SBnD~oQV&qYlr<41Iwvx&blx6rY)(dJ!iGw}eW`(^zR`mV+B8P2o%#y`F=sLvs;ZH85B zL*7wRKF)1pOaYy*Hh@p|2qz4~9{(*z`cJ*J9A#%4&u-bv^HvayD_<`G-ml$(Em$5F z(KsuODlYc2&U5AVX_G~01MN&7a)WSARe*2M5O&GnUeJ=QUijxB>^0+rSa>RAe5_g8kv zSO5#$!<*xM&EJZL>;ge&Ufb8Ro<-D=hLEHi-wa`v?X3~Jy~pMj(5Dj85U_|V%6!_N zgUKD0<8iMfmbnP_TSZD*SpRV@?I8TYoPK;G?3Yy3KmLiVX!+-8B`!um5gmnU77T&3 z3YZ~r93TTWmZWm?anvyEW%*lCrIGP$86{40k4D`*@gKDc2UZ2wSZ`*-dW|10UB}aI z{#d-K4Z8AkR`*Hc2T?KM*l{lQ63>z#y?j`rZXhk4BgS{w%UnzP5KpP0?^zpASZy)u zn)s}YI3sX2av=Wxwzoo>#%mv_fYP_ z%c(mn-?q^$_>mGW&X)!B7K0WWMRl(QS$D$RuDEsEr<8JK`d_J31u+mpth3%NvKNhv z2;6+P?V$Ug6I$LIUG{~~Tkr78RXCpWG4Y5g!C2?eubM^3k<^W6Jnyi`j%A7xr+y!|LDe%J-i@$)f}u~(xXV+7t^c?Es6U9zKv8`VZ2OK)xl#YO0s`w4w;#lO|> zi@!cW19aE$%BX;t9*F57_fl_GHC{J>&fb3X^u=QRZ59eNY&`8nm1&ory2^neZj!YB z@1L5XSqYd0-89zn^E+{|sTpINAiKsIv-Qo0Xar%0&nWoB)EBJ^D`%IR+vnQG{je*9 zW#u`{uvwRvO+RrN66KW2|6nCVUkJBm_yB`qBz4@hzucdDg7}o$x+*uU=<|~{(YL$b zt{pD~H$x#8X(KuYDp;Wjgv> z0QM?+_T3~~z8{yKsV$4CUEAT%OWDN#f@76kJ2MU3x8PMZnnSQ`x#PsqxA@>|jL06q z2YwFp1id?MH~m-?XmCv%zmLXS!T6fBiC9YmkaJ(q-nXnwT`cAeJEZnvML^|1NRNwi zEu`SK4T9%uL#QTVHRc-fmlo7Bc~7NrD||l1to}=_C%VS7lS?~3Vp&x^Dog2L*Ps+v zF=Mr6Sy2XZhK?y0VmLM-Je69{6UA*FD`^9DiKU+Y-Hx9xJxdxDG#X85HnNkp2PbfC z*X$7y%5MPF%kr`@skhWXvp!W?NB`GNj3ugI)B~OB3%kVfSx>cmRT6%4?W2`*>T19{ zBU(g`ZW?^MhYb$QzLxJ4+3n^Fy_tTv0k4e3hm_u~z;e8lrUnZ9xiq6J#c8m%fF|Uk zViEH+d@B8Ou&K_im`%q>J>HL6PMgC zdN--wk6IM8)6a9dzUOo)s@^>AS@Z_PUcsy>FSMw2Dg8y{-j6@1;cqu#r8dtN18?xI zHlp|XJ&7QAl0pf)Z35}|uk%N47Q%MuTAvTMlt2ldn?1h>2LJHF+RrCz&+&Zx-vq+2 zb?V-X$~0k12_<7hW!hr-z`e)LC2>?K*B`8h=(Xt1F|T_}VgZD0tI>e4~A?EE(| zF)=u(jg$NG2#5r#$oqn|bYN0c)>mUg~km z^?5)Y5T0T-knte9-biObfCY6Y8pHBnMW>3bukV&iD*2)xv3O5>^UBkzVij!zm@bZF0Kr;t?yU zI!|AEyere~*+j@|W2b8abI+%UULS&Y*U)*zBVs{33BIcU1^fESHWdqda(TVIos_s0jV`;eD81(9ZW7-_E5o2bVkW3}N~r>@ zVTyw$r&~hTY}2Ie2v=*dS9$u5yPCKjd$b=fSrz+pNT>0#&7X})FW{Z`8=-|c*FJh6*nO@rXC!90TzzQ#HMmqNd;QNV`1KaTreV)jeHYh1O(xsqaRkM(F(@7j_Tbe}Oz znvMqa_0z|)t6rMIA^|`tYl9S0n0*{+?PuGH*Hz>D{9#OIG2o5A6XCuc!6R+;&Tqq+ zaU~ynHPv>z*N2H(W{5Y{r{QYGE(^Swe_~_vm3*EPRNrXIl&499Y`rL0S1{gMViCvp z7?c2KNF^1yKRZ!thtP0dd^@PJ%JK zopB;}SOs;l$stFL2f z@s#)z-jPAkt^m888w32;Z+QAmVYKL)wu%D$o=WbQTUyE2Vq^qGSD(ETmIRipVPf02 z;wfDO4`Qc#{L^Qv#oZu`C4weXi@E_LG!AX^=PY4L(;Q;%wG0IA!Cjt=^SaR348D_ zhR!GEMMw;4SiqSO5V4%%kYn|q6=KNN;G8IiQ_p+o1Rf=|yXKG8g4LTu>JhF#z)VBl1bM@2=CN&-%{?#X znMPlM%W7w#m19aHY#q1i&+k|l#KR>q-}@fIFQupja$a4_3+9@aUjB83S_AqLFVf}J zT5ua253d7*TeQ}4u7KU@8T1i@$xujiqoF+Y(9={m4$~Xu^|=)%9KD+w5-Fh2Vvzmb2)&X^R}+{KM7-Ly~`Gb@E|m zV`S3+wdNQrqPA88SXm_*DT6W#91aJ;)8zfy5~StdkZ-!*-?ZmBOQ*T&9d4JdJY=%x zk@;B`Qr_=m>S>zB7=1lnl~PVX7vg1_Ypq7*V!FfvmYy zy}D(Bs>T@88bkzER9D6ygQTFFrs?D-DWxc7j;FV_ZRNEDaN3|%R-VX>MR-quZW@0Z zNWH+e^E}Je0YMvMcDp77v0$8Qt+M`7C~x<=4GN7z(996yTuKSSHNieVKR-V0OJ-^K zYR#n-20{fP1R0FHx1uh|If|EyQsA6v8h^`KUQd{W?XEmRF2Ks5)*8JP|Kl>x<2?Uh zogaczDwI-WKHX+*xpubg-1=UHAP1|Il1nni>~?L}bqsl$rr|o(TD=#t6WmNeG&HTZ z*2>goot9Q~s|wP>e~3N02jZkkZ8c2(ip*{dmcf(^MyrSZ;raQw)_OUeSJj?gjU}XH zBBEI4-`J|MJ-8XR+)^IzBO##V6=?-yjM3hTUFtLqNqJX3Sy0~)#|cx&+jIpHB*gQR{L?u-=+F!tU=LIGs2etE5qI8a{2o8>o|_9 zTbI^S5v2!`j_00;d~ZPYAru1uYE1y@<|t7`Sc{0nDdjn)Xp9L>=e=ikrIZ-;ZMVHg zL{Sxw;}Dm!HTALyUU7e|#xyU>LJc5jA`oG1)2usVB9MTZtm>_2Sa-LGv6RBBv}Q!p zwr$_Zz+cDl8q=~Jtj!1s6&R&&xh#D1pC$%IRQ%mRZnaV(CI$lJdpjU`=B@M2xyFZ$ zF1GsTtTRUz9lZqX$Pz_dnMLjAoJDM{HFD53Y58=t@lDe>XT-E(J9eUi5xjlB->)`C z#+WS-RrK2M?X0+&iH(nRKcc(3SEmU8tF?f%u2e}9Tuo`)wr$(iC@lk^Y*wUh zZHt|aTOiMTt@V69%2+1j&JDTbRTYtA$`ODNTkBSgNoYAGll(&hLHz&YAF5JI9@QNH z00233MObuGZ)S9NVRB^vKqwzVRUtJWdLF^Hexb1Ib<<7IX7W5FkxXd zG-ER{IAb+AWiw=9WH(!*$KU_}04;PySad^gZEa<4bO0bANo{a%a&%>6AZBuJZ6HTd mK}11RNl#87X>DO=WjY{da$$K*M7o#&0000Ok()) dc.DrawBitmap( *my_square, 30, 30 ); - - dc.DrawText( "Drawn directly", 150, 10 ); - dc.SetBrush( wxBrush( "orange", wxSOLID ) ); - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( 150, 30, 100, 100 ); - - if (my_anti && my_anti->Ok()) dc.DrawBitmap( *my_anti, 250, 140 ); - - dc.DrawText( "PNG handler", 30, 135 ); - if (my_horse_png && my_horse_png->Ok()) dc.DrawBitmap( *my_horse_png, 30, 150 ); - - dc.DrawText( "JPEG handler", 30, 365 ); - if (my_horse_jpeg && my_horse_jpeg->Ok()) dc.DrawBitmap( *my_horse_jpeg, 30, 380 ); - - dc.DrawText( "GIF handler", 30, 595 ); - if (my_horse_gif && my_horse_gif->Ok()) dc.DrawBitmap( *my_horse_gif, 30, 610 ); - - dc.DrawText( "BMP handler", 30, 815 ); - if (my_horse_bmp && my_horse_bmp->Ok()) dc.DrawBitmap( *my_horse_bmp, 30, 830 ); -} - -void MyCanvas::CreateAntiAliasedBitmap() -{ - wxBitmap bitmap( 300, 300 ); - - wxMemoryDC dc; - - dc.SelectObject( bitmap ); - - dc.Clear(); - - dc.SetFont( wxFont( 24, wxDECORATIVE, wxDEFAULT, wxDEFAULT ) ); - dc.SetTextForeground( "RED" ); - dc.DrawText( "This is anti-aliased Text.", 20, 20 ); - dc.DrawText( "And a Rectangle.", 20, 60 ); - - dc.SetBrush( *wxRED_BRUSH ); - dc.DrawRoundedRectangle( 20, 100, 200, 180, 20 ); - - wxImage original( bitmap ); - wxImage anti( 150, 150 ); - - /* This is quite slow, but safe. Use wxImage::GetData() for speed instead. */ - - for (int y = 1; y < 149; y++) - for (int x = 1; x < 149; x++) - { - int red = original.GetRed( x*2, y*2 ) + - original.GetRed( x*2-1, y*2 ) + - original.GetRed( x*2, y*2+1 ) + - original.GetRed( x*2+1, y*2+1 ); - red = red/4; - - int green = original.GetGreen( x*2, y*2 ) + - original.GetGreen( x*2-1, y*2 ) + - original.GetGreen( x*2, y*2+1 ) + - original.GetGreen( x*2+1, y*2+1 ); - green = green/4; - - int blue = original.GetBlue( x*2, y*2 ) + - original.GetBlue( x*2-1, y*2 ) + - original.GetBlue( x*2, y*2+1 ) + - original.GetBlue( x*2+1, y*2+1 ); - blue = blue/4; - anti.SetRGB( x, y, red, green, blue ); - } - my_anti = new wxBitmap( anti.ConvertToBitmap() ); -} - -// MyFrame - -const int ID_QUIT = 108; -const int ID_ABOUT = 109; - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - -BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU (ID_ABOUT, MyFrame::OnAbout) - EVT_MENU (ID_QUIT, MyFrame::OnQuit) -END_EVENT_TABLE() - -MyFrame::MyFrame() - : wxFrame( (wxFrame *)NULL, -1, "wxImage sample", - wxPoint(20,20), wxSize(470,360) ) -{ - wxMenu *file_menu = new wxMenu(); - file_menu->Append( ID_ABOUT, "&About.."); - file_menu->Append( ID_QUIT, "E&xit"); - - wxMenuBar *menu_bar = new wxMenuBar(); - menu_bar->Append(file_menu, "&File"); - - SetMenuBar( menu_bar ); - - CreateStatusBar(2); - int widths[] = { -1, 100 }; - SetStatusWidths( 2, widths ); - - m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) ); - m_canvas->SetScrollbars( 10, 10, 50, 100 ); -} - -void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) -{ - Close( TRUE ); -} - -void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) -{ - (void)wxMessageBox( "wxImage demo\n" - "Robert Roebling (c) 1998", - "About wxImage Demo", wxICON_INFORMATION | wxOK ); -} - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -bool MyApp::OnInit() -{ -#if wxUSE_LIBPNG - wxImage::AddHandler( new wxPNGHandler ); -#endif - -#if wxUSE_LIBJPEG - wxImage::AddHandler( new wxJPEGHandler ); -#endif - - wxImage::AddHandler( new wxGIFHandler ); - - wxFrame *frame = new MyFrame(); - frame->Show( TRUE ); - - return TRUE; -} - diff --git a/samples/image/image.def b/samples/image/image.def deleted file mode 100644 index 8586389a7f..0000000000 --- a/samples/image/image.def +++ /dev/null @@ -1,7 +0,0 @@ -NAME Image -DESCRIPTION 'wxWindows Image sample' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/image/image.rc b/samples/image/image.rc deleted file mode 100644 index 626b82f58a..0000000000 --- a/samples/image/image.rc +++ /dev/null @@ -1,3 +0,0 @@ -/* mondrian ICON "mondrian.ico" */ -#include "wx/msw/wx.rc" - diff --git a/samples/image/makefile.b32 b/samples/image/makefile.b32 deleted file mode 100644 index d98ac5a4da..0000000000 --- a/samples/image/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=image -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/image/makefile.bcc b/samples/image/makefile.bcc deleted file mode 100644 index 22a8ab529d..0000000000 --- a/samples/image/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=image -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/image/makefile.dos b/samples/image/makefile.dos deleted file mode 100644 index 788ca91e16..0000000000 --- a/samples/image/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=image -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/image/makefile.g95 b/samples/image/makefile.g95 deleted file mode 100644 index 1587d6af5f..0000000000 --- a/samples/image/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=image -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/image/makefile.unx b/samples/image/makefile.unx deleted file mode 100644 index 361235090f..0000000000 --- a/samples/image/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for image example (UNIX). - -PROGRAM=image - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/image/makefile.vc b/samples/image/makefile.vc deleted file mode 100644 index bea2786e6a..0000000000 --- a/samples/image/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=image -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/image/makefile.wat b/samples/image/makefile.wat deleted file mode 100644 index 3b6cb33829..0000000000 --- a/samples/image/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = image -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/internat/.cvsignore b/samples/internat/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/internat/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/internat/Makefile.am b/samples/internat/Makefile.am deleted file mode 100644 index f3be440267..0000000000 --- a/samples/internat/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = internat - -internat_SOURCES = internat.cpp diff --git a/samples/internat/fr/internat.mo b/samples/internat/fr/internat.mo deleted file mode 100644 index 2632931826d88374f584ab7f253af1ab6f3c955f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1066 zcmaKqyKWOf6ov-~w-7E02#O$dEFnii$RZ8I=>l>@(hwjD0*PY0J6Vs|ompmQHgRRh9ez+p6mI~zw={$=CweaMP5d}LS9179TMUs zH~^1=4m<}A!8!0{oPPtJ!T2qB5quBc1V6|118^SW-{389{;&`W;0AaM+yS{>0bT=N zfPDW)@C5h?9sXgi$*pq){1tm>Cj!}6zPimKv5wxolrS&vQjIe*B)vwdVD#baAZQ!S8heDFD)CY zWKrg7_8l#CyUW-4w@ceH)df9K+UMGkG%0O_TuVa_3+cR=>VycH)9&z*HmTjMXtgZG z1676Gi!JE(ma?F#ii%Mz*%FT@ic4qvvY(Ggu_~3K25D2vT&Hm>+*>7VD{U36Oa@vx zxEX4v9R&k3EwOF!@|t#{?W%z7Y`q(^kH!{# LemfKYRY&{*aa|5| diff --git a/samples/internat/fr/internat.po b/samples/internat/fr/internat.po deleted file mode 100644 index 7ab0bd7048..0000000000 --- a/samples/internat/fr/internat.po +++ /dev/null @@ -1,77 +0,0 @@ -# Message catalog file template for the wxWindows i18n sample -# Copyright (C) 1999 wxWindows development team -# Vadim Zeitlin -# -#: internat.cpp:146 -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: wxWindows 2.0 i18n sample\n" -"POT-Creation-Date: 1999-01-13 18:19+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Vadim Zeitlin \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: internat.cpp:98 -msgid "International wxWindows App" -msgstr "Application wxWindows internationale" - -#: internat.cpp:105 -msgid "&About..." -msgstr "&A propos..." - -#: internat.cpp:107 -msgid "E&xit" -msgstr "&Quitter" - -#: internat.cpp:110 -msgid "&Open bogus file" -msgstr "&Ouvrir un fichier" - -#: internat.cpp:111 -msgid "&Play a game" -msgstr "&Jouer" - -#: internat.cpp:114 -msgid "&File" -msgstr "&Fichier" - -#: internat.cpp:115 -msgid "&Test" -msgstr "&Test" - -#: internat.cpp:138 -msgid "I18n sample\n" -"© 1998, 1999 Vadim Zeitlin and Julian Smart" -msgstr "Exemple d'i18n\n" -"© 1998, 1999 Vadim Zeitlin et Julian Smart" - -#: internat.cpp:139 -msgid "About Internat" -msgstr "A propos d'Internat" - -#: internat.cpp:144 -msgid "Enter your number:" -msgstr "Entrez votre numéro:" - -#: internat.cpp:145 -msgid "Try to guess my number!" -msgstr "Essayez de déviner mon numéro!" - -#: internat.cpp:150 -msgid "You've probably entered an invalid number." -msgstr "Vous avez probablement entré un nombre invalide." - -#: internat.cpp:154 -msgid "Bad luck! try again..." -msgstr "Pas de chance! essayez encore..." - -#: internat.cpp:158 -msgid "Congratulations! you've won. Here is the magic phrase:" -msgstr "Félicitations! vouz avez gagné. Voilà la phrase magique:" - -#: internat.cpp:162 -msgid "Result" -msgstr "Resultat" diff --git a/samples/internat/fr/wxstd.mo b/samples/internat/fr/wxstd.mo deleted file mode 100644 index 89c03eaf60c2a04d6e91f40b88bc0ef505afd383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1923 zcmbW1J8u**5XT(|uY_lKG`tMqvIL1kNFYR-C?Wv?5|1jP^zC~07Iy8!_68x*fhg&y zs1X(4fRZwll%O;Su0ebNg!qql_mVp$IfQk--+6aDGoJbTzD|t3W*A2>k6|uj9>;t( z!q|TB7kCC7*}~W)I0bG8Z-G0&`xPI6d$1NDK1}250BFEn;0y2s_zJuLzOU9_!1GxD z1`mPfwla1aoCP`90#AX@!2o;<9tA&vm%%RB08fsV@fN@)){7v$e+g2aA1ZzXcVfK^ z?gKxA2+h8Mhru7`#7b_2W!Ql3x2S@0b=34X7hkE1A8u)YdTgO9;^@C`_I zE8tCV6vRE2IV-0NoT1C^^C?u35Jvz((&h`v+c&D z9vsA^+S1@>r7_y@Mi$NRhMi_X!v;LHTxrJzUlLgw@myLf63Ij1M5dD_o3mCL$77LZ zGUBP?F@9h>7mjDC!q13Z6DpJ$o0qL3nc-}K!hqMw2lqj-x_g`5GdeLM=c1*JlTmYw zEefMjMVmsQ0>{HlTUmyPqzz5lag=dXy^d2A@l2}3wYiQA02h z5$|Z5x)h!^bEZ483PpvhGBQ#`JT^MtIEs(3nd2uWb&@;1z6;-n@>PslL^>Dfg6|zQ zF4l#Lnk>_yKwtc0l+yRKC2=~}WY!tfcwh^)a;-1&y~fEVyZWrWsAMsyDiuiUct==X zs9H;fFOXyChNGsKa^5&eAih2&CG=~6e+CoHR7)z5QreBm2^yiBP%$(8164?pv za5>1l=q2o5L0m{>n4eraXC%(|P!F{ZbPHLhK4?#~A@&Ic1r3iDATLAPS4-=)++Tn! z_4#y!aj->2>Z`SG9m2LyNm++pO8<~a7nd7hhFjuh)Rpf2Ee%MiQ&-O4jq(;W2igTK q;*X4Ew0cvT49Wk5qRQJ82(Q?#>y{zAt3oVqN@ZAw`!7#@oBjeZ%MDZj diff --git a/samples/internat/fr/wxstd.po b/samples/internat/fr/wxstd.po deleted file mode 100644 index a8ab562264..0000000000 --- a/samples/internat/fr/wxstd.po +++ /dev/null @@ -1,131 +0,0 @@ -# Message catalog file template for the wxWindows i18n sample -# Copyright (C) 1999 wxWindows development team -# Vadim Zeitlin -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: wxWindows 2.0 i18n sample\n" -"POT-Creation-Date: 1999-01-13 18:19+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Vadim Zeitlin \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -#: file.cpp:182 hello.cpp:38 -#, fuzzy, c-format -msgid "can't create file '%s'" -msgstr "impossible de créer le fichier '%s'" - -#: file.cpp:213 -#, c-format -msgid "can't open file '%s'" -msgstr "impossible d'ouvrir le fichier '%s'" - -#: file.cpp:227 -#, c-format -msgid "can't close file descriptor %d" -msgstr "impossible de fermer le descripteur %d" - -#: file.cpp:244 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "impossible de lire à partir de descripteur %d" - -#: file.cpp:258 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "impossible d'écrire sur le descripteur %d" - -#: file.cpp:271 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "impossible de mettre à jour le descripteur %d" - -#: file.cpp:308 -#, c-format -msgid "can't seek on file descriptor %d" -msgstr "impossible de changer la position sur le descripteur %d" - -#: file.cpp:322 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "impossible d'obtenir la position courante sur le descripteur %d" - -#: file.cpp:355 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "impossible de trouver la taille du fichier ouvert sur le descripteur %d" - -#: intl.cpp:139 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "impossible de trouver le catalogue de messages pour le domaine '%s'." - -#: intl.cpp:177 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "'%s' n'est pas un catalogue de messages valid." - -#: intl.cpp:330 intl.cpp:334 -#, c-format -msgid "locale '%s' can not be set." -msgstr "impossible de passer à locale '%s'." - -#: intl.cpp:431 intl.cpp:435 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "chaîne '%s' n'a pas été trouvée dans le domaine '%s' pour le locale '%s'." - -#: intl.cpp:434 intl.cpp:438 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "chaîne '%s' n'a pas été trouvée dans le locale '%s'." - -#: log.cpp:104 -#, c-format -msgid " (error %ld: %s)" -msgstr " (erreur %ld: %s)" - -#: log.cpp:165 -msgid "Debug: " -msgstr "Debug: " - -#: log.cpp:171 -msgid "Fatal error: " -msgstr "Erreur fatale: " - -#: log.cpp:172 -msgid "Program aborted.\n" -msgstr "Programme abandonné.\n" - -#: log.cpp:177 -msgid "Error: " -msgstr "Erreur: " - -#: log.cpp:181 -msgid "Warning: " -msgstr "Attention: " - -#: log.cpp:268 -#, c-format -msgid "Assert failed in file %s at line %d" -msgstr "Assertion est fausse dans le fichier %s à la ligne %d" - -#: file.cpp:303 -msgid "unknown seek origin" -msgstr "" - -msgid "looking for catalog '%s' in path '%s'." -msgstr "" - -#: intl.cpp:378 -msgid "no message catalog list" -msgstr "" - -msgid "OK" -msgstr "OK" - -msgid "Cancel" -msgstr "Annuler" diff --git a/samples/internat/internat.cpp b/samples/internat/internat.cpp deleted file mode 100644 index c191d76410..0000000000 --- a/samples/internat/internat.cpp +++ /dev/null @@ -1,197 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: internat.cpp -// Purpose: Demonstrates internationalisation (i18n) support -// Author: Vadim Zeitlin/Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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/intl.h" -#include "wx/file.h" -#include "wx/log.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "mondrian.xpm" -#endif - -// Define a new application type -class MyApp: public wxApp -{ -public: - virtual bool OnInit(); - -protected: - wxLocale m_locale; // locale we'll be using -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame *frame, const char *title, int x, int y, int w, int h); - -public: - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnPlay(wxCommandEvent& event); - void OnOpen(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - -// ID for the menu commands -enum -{ - MINIMAL_QUIT, - MINIMAL_TEXT, - MINIMAL_ABOUT, - MINIMAL_TEST, - MINIMAL_OPEN -}; - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(MINIMAL_QUIT, MyFrame::OnQuit) - EVT_MENU(MINIMAL_ABOUT, MyFrame::OnAbout) - EVT_MENU(MINIMAL_TEST, MyFrame::OnPlay) - EVT_MENU(MINIMAL_OPEN, MyFrame::OnOpen) -END_EVENT_TABLE() - -IMPLEMENT_APP(MyApp) - - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit() -{ - // set the language to use - const char *language = NULL; - const char *langid = NULL; - switch ( argc ) - { - default: - // ignore the other args, fall through - - case 3: - language = argv[1]; - langid = argv[2]; - break; - - case 2: - language = argv[1]; - break; - - case 1: - language = "french"; - langid = "fr"; - }; - - // there are very few systems right now which support locales other than "C" - m_locale.Init(language, langid, "C"); - - // Initialize the catalogs we'll be using - /* not needed any more, done in wxLocale ctor - m_locale.AddCatalog("wxstd"); // 1) for library messages - */ - m_locale.AddCatalog("internat"); // 2) our private one - /* this catalog is installed in standard location on Linux systems, - it might not be installed on yours - just ignore the errrors - or comment out this line then */ - m_locale.AddCatalog("fileutils"); // 3) and another just for testing - - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, _("International wxWindows App"), - 50, 50, 250, 40); - - // Give it an icon - frame->SetIcon(wxICON(mondrian)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(MINIMAL_ABOUT, _("&About...")); - file_menu->AppendSeparator(); - file_menu->Append(MINIMAL_QUIT, _("E&xit")); - - wxMenu *test_menu = new wxMenu; - test_menu->Append(MINIMAL_OPEN, _("&Open bogus file")); - test_menu->Append(MINIMAL_TEST, _("&Play a game")); - - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, _("&File")); - menu_bar->Append(test_menu, _("&Test")); - frame->SetMenuBar(menu_bar); - - // Show the frame - frame->Show(TRUE); - SetTopWindow(frame); - - return TRUE; -} - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, const char *title, int x, int y, int w, int h) - : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ -} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageDialog(this, _("I18n sample\n" - "© 1998, 1999 Vadim Zeitlin and Julian Smart"), - _("About Internat"), wxOK | wxICON_INFORMATION).ShowModal(); -} - -void MyFrame::OnPlay(wxCommandEvent& WXUNUSED(event)) -{ - wxString str = wxGetTextFromUser(_("Enter your number:"), - _("Try to guess my number!"), - "", this); - if ( str.IsEmpty() ) - return; - - int num; - sscanf(str, "%d", &num); - if ( num == 0 ) - str = _("You've probably entered an invalid number."); - else if ( num == 9 ) // this message is not translated (not in catalog) - str = "You've found a bug in this program!"; - else if ( num != 17 ) // a more implicit way to write _() - str = wxGetTranslation("Bad luck! try again..."); - else { - str.Empty(); - // string must be split in two -- otherwise the translation won't be found - str << _("Congratulations! you've won. Here is the magic phrase:") - << _("cannot create fifo `%s'"); - } - - wxMessageBox(str, _("Result"), wxOK | wxICON_INFORMATION); -} - -void MyFrame::OnOpen(wxCommandEvent&) -{ - // open a bogus file -- the error message should be also translated if you've - // got wxstd.mo somewhere in the search path - wxFile file("NOTEXIST.ING"); -} diff --git a/samples/internat/internat.def b/samples/internat/internat.def deleted file mode 100644 index 060bfe3fce..0000000000 --- a/samples/internat/internat.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Minimal -DESCRIPTION 'Minimal wxWindows application' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/internat/internat.rc b/samples/internat/internat.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/internat/internat.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/internat/makefile.b32 b/samples/internat/makefile.b32 deleted file mode 100644 index b94db135dc..0000000000 --- a/samples/internat/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=internat -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/internat/makefile.bcc b/samples/internat/makefile.bcc deleted file mode 100644 index 612d7cf5b0..0000000000 --- a/samples/internat/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=internat -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/internat/makefile.dos b/samples/internat/makefile.dos deleted file mode 100644 index 3bb51f5fe2..0000000000 --- a/samples/internat/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=internat -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/internat/makefile.g95 b/samples/internat/makefile.g95 deleted file mode 100644 index 262554b63f..0000000000 --- a/samples/internat/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=internat -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/internat/makefile.sc b/samples/internat/makefile.sc deleted file mode 100644 index 8709d2ca0f..0000000000 --- a/samples/internat/makefile.sc +++ /dev/null @@ -1,35 +0,0 @@ -# Symantec C++ makefile for minimal example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -minimal.exe: minimal.obj minimal.def minimal.res - *$(CC) $(LDFLAGS) -o$@ $** $(LIBS) - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws diff --git a/samples/internat/makefile.unx b/samples/internat/makefile.unx deleted file mode 100644 index f5db8b1f46..0000000000 --- a/samples/internat/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for internat example (UNIX). - -PROGRAM=internat - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/internat/makefile.vc b/samples/internat/makefile.vc deleted file mode 100644 index ea79cd92b1..0000000000 --- a/samples/internat/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=internat -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/internat/makefile.vms b/samples/internat/makefile.vms deleted file mode 100644 index 9b76b144f3..0000000000 --- a/samples/internat/makefile.vms +++ /dev/null @@ -1,38 +0,0 @@ -#************************************************************************ -# Makefile for MINIMAL under VMS -# by Stefan Hammes -# (incomplete) update history: -# 11.04.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = minimal - -# Object modules of the application. -OBJS = minimal.obj -OBJLIST =minimal.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(OBJS) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(OBJLIST),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ - diff --git a/samples/internat/makefile.wat b/samples/internat/makefile.wat deleted file mode 100644 index 31181ee663..0000000000 --- a/samples/internat/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = internat -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/internat/mondrian.ico b/samples/internat/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z? -A. Please write them - see the next question. French is chosen by default - because it's the only translation which is currently available. To test - translations to the other languages please run the sample with 2 command line - arguments: the full language name and the name of the directory where the - message catalogs for this language are (will be taken as 2 first letters of - the language name if only 1 argument is given). - -Q. How to do translations to other language? -A. First of all, you will need the GNU gettext tools (see the next question). - After you've probably installed them, type the following (example is for Unix - and you should do exactly the same under Windows). - - # all translations forgiven language should be in a separate directory. - # Please use the standard abbreviation for the language names! - mkdir - cd - - # generate the .po file for the program itself - # see `xgettext --help' for options, "-C" is important! - xgettext -C -o internat.po ../internat.cpp - - # .po file for wxWindows might be generated in the same way, but for now just - # take this one... - cp ../wxstd.po . - - # now edit the files and do translate strings (this isn't done by gettext) - # you can use another editor if you wish :-) - vi internat.po wxstd.po - - # create the message catalog files - msgfmt -o internat.mo internat.po - msgfmt -o wxstd.mo wxstd.po - - # run the sample to test it - cd .. - ./$OSTYPE/internat - -Q. How to get the gettext tools? -A. For Unix, you should be able to get the source distribution of any GNU mirror - (see www.gnu.org for a start). gettext() version 0.10 is buggy, try to get at - least version strictly greater than 0.10. gettext RPMs can be downloaded from - the standard locations for Linux. For Windows, you can get the precompiled - binaries from wxWindows web page. - -Q. What's i18n? -A. Count the number of letters in the word "internationalization". - -Q. Where to send comments, - additional translations, - flames, - money? -A. To Vadim Zeitlin , - wxWindows list , - /dev/null (platform-dependent), - wxWindows dev team Swiss bank account. diff --git a/samples/internat/wxstd.po b/samples/internat/wxstd.po deleted file mode 100644 index d0cb7bcfc6..0000000000 --- a/samples/internat/wxstd.po +++ /dev/null @@ -1,136 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 1997-12-19 17:46+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: ENCODING\n" - -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR Free Software Foundation, Inc. -# FIRST AUTHOR , YEAR. -# -#: file.cpp:182 hello.cpp:38 -#, fuzzy, c-format -msgid "can't create file '%s'" -msgstr "" - -#: file.cpp:213 -#, c-format -msgid "can't open file '%s'" -msgstr "" - -#: file.cpp:227 -#, c-format -msgid "can't close file descriptor %d" -msgstr "" - -#: file.cpp:244 -#, c-format -msgid "can't read from file descriptor %d" -msgstr "" - -#: file.cpp:258 -#, c-format -msgid "can't write to file descriptor %d" -msgstr "" - -#: file.cpp:271 -#, c-format -msgid "can't flush file descriptor %d" -msgstr "" - -#: file.cpp:308 -#, c-format -msgid "can't seek on file descriptor %d" -msgstr "" - -#: file.cpp:322 -#, c-format -msgid "can't get seek position on file descriptor %d" -msgstr "" - -#: file.cpp:355 -#, c-format -msgid "can't find length of file on file descriptor %d" -msgstr "" - -#: intl.cpp:139 -#, c-format -msgid "catalog file for domain '%s' not found." -msgstr "" - -#: intl.cpp:177 -#, c-format -msgid "'%s' is not a valid message catalog." -msgstr "" - -#: intl.cpp:330 intl.cpp:334 -#, c-format -msgid "locale '%s' can not be set." -msgstr "" - -#: intl.cpp:431 intl.cpp:435 -#, c-format -msgid "string '%s' not found in domain '%s' for locale '%s'." -msgstr "" - -#: intl.cpp:434 intl.cpp:438 -#, c-format -msgid "string '%s' not found in locale '%s'." -msgstr "" - -#: log.cpp:104 -#, c-format -msgid " (error %ld: %s)" -msgstr "" - -#: log.cpp:165 -msgid "Debug: " -msgstr "" - -#: log.cpp:171 -msgid "Fatal error: " -msgstr "" - -#: log.cpp:172 -msgid "Program aborted.\n" -msgstr "" - -#: log.cpp:177 -msgid "Error: " -msgstr "" - -#: log.cpp:181 -msgid "Warning: " -msgstr "" - -#: log.cpp:268 -#, c-format -msgid "Assert failed in file %s at line %d" -msgstr "" - -#: file.cpp:303 -msgid "unknown seek origin" -msgstr "" - -msgid "looking for catalog '%s' in path '%s'." -msgstr "" - -#: intl.cpp:378 -msgid "no message catalog list" -msgstr "" - -msgid "OK" -msgstr "" - -msgid "Cancel" -msgstr "" diff --git a/samples/joytest/.cvsignore b/samples/joytest/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/joytest/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/joytest/Makefile.am b/samples/joytest/Makefile.am deleted file mode 100644 index 00da0b6145..0000000000 --- a/samples/joytest/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = joytest - -joytest_SOURCES = joytest.cpp diff --git a/samples/joytest/chart.ico b/samples/joytest/chart.ico deleted file mode 100644 index 16d4a585fd3246e7a8dc43c45e010c006e643dd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc&wF%H5o40I7AQkYn&nArFNzsi_=qf@@p2UOx4jHOFdsgk)%D>cxHj+|r1*R$Ou zA_c50k3u|mA}8!ucnQD53)v%zcxdbJ5TSTKZiq7qFu*Pe;O)q})Br9M@2fs2xG_OluNwM{ zcSECEB^`=VZ-!Clq`-NP$D|`q^P8EoNK<|GI(*Wt>lv#s7a1^aS#Q-v=NLJDsYfc- TMvJ?z=wHXdA%Ehd{14;}SbUVL diff --git a/samples/joytest/gun.wav b/samples/joytest/gun.wav deleted file mode 100644 index 8cb037d78d14fec09784deb03d1c225c5bf96f12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26838 zcmeHvS#xB^l^!R;4}SJ9aQJy%JYk0&o(YFE;v!OP_6{`mwW^$EcgdT1mhXJ$WP%UgfA`)0 zwf5FqlRuq!$87ih+kf-cTW|dp{`+?mZ^^&Edh1`~jCpCr`>*i5i#u1Byi5E}{{IFE zB;v7nJdsEwQ>kolEm-3mI z&zCA?V}9H82k+jUSzWW*?3?azX|PxFID*CAu;19qr4!!8dkcE3rCcsosJNJD zYCaW@1iUWirVa10m{(U6S5{U{X3N^z`o@OMZs$nMxNNel+cw?4P&An> zmTS!pra#<2JUTf&ySTV`ddaywd-3t-zxw*O-~8@3U%tFNIoRp8>Xl+1Q;GzA9@nPB zwy}nu7N_3-&wumIM~|l$%+6$^UynIAL-}eY<6pUd=gE4kbG+Zc=)%s0kA5++v}Sj@ zz5ZY%7U!fZt?up--*>v--)>T1*>nO@hnPK>i^E~JZLH2dc>kUEKAN0gS+ioi!Eh{* z%H|80dcD;rG{vSDy&^*U~@V~n({t*xyRY^GQ! z7FIyHtHk43{_yflag$Ay3Sd|v#6@Vp)mXCM-EiufQ#40_a*R7JkL42e>tms(nm)~`6iaZL3UGu^kDj5R zI9om|^JSmZkT?(ghm)5E39t#~t8o#WV1zJ_YPANB zZc7A$^x`3aBp?Ci>hbyUN{qu$G~OLg0Ixj&3|t311S0WdDjsmztahh2k}21>qE4GL zRM_rU!w!cxlCAZ2TE%>|x4T{0Y8^d$deALrQiXc67&On!nw-&0!t3_x-!`o0&$&^k`ynebXOJguUKyrZGG{ z-p<7{jef7ORY*r{bMvlZyPk_7F1pvA{QSK~EAISY*odyrJXtVVU5I7zL>g8A2P{|X zt^VQD>z6NIy}CLX0^aMjN-pB|Wy-nG#-ce~%tn2iR`bL=Kf5~vXt%qgwd2$B#_Xym zUGEKs=a)ylO5EuH;Ab1P=!QMBe|1=LEiO63Zu6QaoJgiitzILW-9A4b6vIxZKV94I zR1)ruO}F{+gXLhk?4F%5ZF+*q+TI|(?kOK0WGrTHX8Yp$IBzwF+GiI#<*3V@s#fy} zuW4>QUCu;&8>79c;obG%Ww0>A|6k)v~&H%i^D;u)vN(w3Q5=8 zgelqIZ>8Of6Hit)!}(I&Ro>R$4E*{{BMwhw~RZC1<0Y%=UL zSpw-KoM6+ju{!bgPab*l*`RZM?!*83lMkQFtynhfPER0=VV+)Jo$T-Rt5Nfe$&;w; zzj#)2TD*luDeMWRtAo8(I+kl4TwEOXo8?luTHDGdz+;l}h<|h49s=nBZ*tl#a}V#$ zx>GU7;*)7>A{Sg+wFZ*O2!mW41dRDS|b4IdT4F=Ke!QTGdjyQ`qSIZ@aBEV&ioGVLKC||`2 z#ss37%a^KZ^j(Y|LkBnLbusu(2PVR?!%Rx(AfFR%07M7u3EL$*0KhO>B3>e529sO$ za?-b9S+`o(Evrk53k&nJQ&Uq)P%?DdIGY@T?r zobj1wp3JST5yYH8P%;5BHiTK&v@koI0=*;SAyWth@Eb53A?zDD2gn#n0A)`$t|)IV z6Ay)==|ZIrSlit{y14%0m#;2PFP^=4@$|6Y+3xjsK*WWk(TLy;!;`1yK;&cq$Pg-qR`i9Bm@R5HlkQCn4%qw(M8Gm zysovGd-tB0J&|O-)+_{FzF4-fRc*ApdnYGw|AVWq|M2ZqtA6^`H=mykVAj>G>h{i{ zRVii}{=C7E-|MokFHPRNd-ucl?>w4bfZHP#@Jil>v@M%2w~wwrzUbzH-cYu+e{#^P z77?SOL2yFXrro+>v6xLO3$rtG3v)AQvuJbk3ybqpk0<7BA-u%tbO)kj_~fh&1SC3$ zcJO|GushuAZ?~JEr*OGex7XYf>PJ@rv#-{-lEeoqdDdp{ zefW4iUP@UfA1&JK<|Q+Lw}lj_h-51svMnx{9SH51Od?;~9`rlS8jKkc32ab^pfD1l zD2hgjX)A^$BnPq2-?jKPv#e3O`C3~eQkLj@?E!rHapy*Y$fk8tp^gpjTQ5T zotznzIglt+wsOcoYlURcHuc`$e>k;bb$Q`85%2oK%rAtg(U8xz>GY?n{a)T>GTHs<=Kf(TW?RP0Jxpf8@abfx(jRt<(SSdctnMD| zw#sBX5%4v)(`I_|!B2kr^ZQeCD(!cAe26`)CNSM4y(f9w-aWaxzC7A75=7PvLQKpd z1_#nPCU)>X)57GV$+^`Hp=HfV4qy?_H~KrhM!A?TRltf=oKb;>I1SW>XP&jQsAMo< zC|4ToPP^Ge1Q_fN+Le4ZgS^$xw;<77SzcOPTwIu+o1T39cw%aPWp)0+yKmn&1>zy6 zb#24pf+;RpHbFxHQbhzr$zhO-RFKvdw(1=KD;l^c!h<$x5?s9g-v&Ves|6m3_E5Y&sdyp$A;D6_63BH zBZ&kfFIB6E`?|~m#D(3s99Em#=YtU`{tV_F@H&u~nwM9to=6&xRI1JH&hYT`>hs@x z{pH8cpPru_47!8EP1pI%?=wE;?rh|ghn`@N2}#Yb=d$AAA{-o5*1 za(ZrY)nau;%V3v5%c>(@s+Lk=uifqmc&%W*n_duqABb@x5e@kRv3%>`bl5Cpi`8-g zD2FN(AZ}xQ&0<2OV`YUA6Hvd7ynEejUUvqftl^-70D05Fk1oIX_V>Sfe%Q)@`qW4~ zSb{+VG1=Z89KHDLc`Fh~SL$2oM5>#j_c)C!lm$G@J3;pfh@UWlvd!m)YPk#CFQD-X!9|@Ztd^Bb8 zWV^lC(hQyn$CBA{qfxE*5BF+`Smo%GPcL>mC~zPHOEU41`itGVHvfzN^dEk5Z_Z*z z7~Tvf^QGqAvrn&&cl%OgV-+l%EfrEhr`?+X{qx#Z7gshTarfe*#|!qv_T`JCW)4KU zU1vcqFVz?Lma3c}p$9&Bm{)~^2%qUJvKR1rQVS7~u0V)o6XDxcXu4i0fiD%SjXEeH z2!k5|W6f+{S%T}#&CPAGD0T++{?6f;sFRw|oKAcbTe&YFefpr|mC z1A(!^W$uD^(D6%Rw?(U&5rRf@(P8-A(ZYZ@KQcc!s zRgMjmBuq*PYGd7ET3KG4pPPjarlEl+PY7gBW)~M{r^qrNJ$!)n@X^DE55YJmpFl;k z^9w8=n#`yjqG+`V#_F=J%*}&h!}l_Ud^%I8wz@m}N9Rv3pI%zA)yUcY$GcEzIT#rfIk$q{Jh5G<2}2FnB_3{TGwwkrkHh-h-9e|pltH0gM~wy?Z)bNn#3gbNR5zs@jHr!(MG^%rFNInIqX<$W zYE~(w1VI8VRSFhHV2!XImd#*4NJdzr5#|Ily48?!sC-3LzF@mj^a2Zqaex5Z?cP`h zmG4cvD;UQK-{!{JhTR=d5fenTkV)WO$mL;zQj23%jU)<1HL`Mg!>EKPZWBXLjwFF| zx>BWmr zzWCyk=jTUtZeu1%qtXifK5%2ow_r{!)naU@Aa2E@Xh}fVC7*7l3pme<_s-Jg8YoRVo-F zW&;dSe}@%8@#GU=6bp-lMo?%1Bgpg|s5H(kFB=I8YSv&m${J863k7|fmKBqA)8zza z#`9Hxai>2#zPP-4c7Aenbo%t_>goCU#Z$D4i*q{O$?5sU>A~*K-r?EPi{nA7-stpp z5Q^HET`CCOuUl58@4f%dJMVq)(L=cYlc~8S(>hZ)1OS)Y8;oa)rCgGPf|_S07)ESI zxm1!i)~X3;W&U?t>lWIyCJ5;G(v~1#@-~pGhObI5Gi-(bF zf*MDYsYE=L-$FI1sgxM>GY3IBgo3&Va&h{})C~B-y3J}aZ@2=%fG-eDZ(&`eyWQJ8 zJiENQJcVtXz#7nwj}B3HBL*S!;+g@S67%7L0V)=o_KlUfsp+|8^SagHB+8|7`E)D< zQipIL^-5JIN8S!9waI(Hs&FiMJdV5`yJ>c2+2%%$wQl!D6S06BDO$0K0J*b&h`Jo= zCG|!n<#RB5K*@}5ro4(HGc`RsPpiSg4$K4D ztCgnVRtXR3wiqTbffN$rh5S(ht)ePOp{s`9Ab8T4;a7N%tP$Y$(L?GyM$_9rd;amO zXQ#tnvy?%d5*m*L+_rU4Ubhb{-0fI5gQ|ffkmYo+yw}t<8wMn462utfRPSmnqJVWl zR4K4NL1+Z1U`-7X95gAF&J{@uL*ZBo8Dzb)dwTWq<<-T}5Ri=&84(V(1fnPS5)nY0PB7z$o$edjEwUyaNAHMUmx8Hg1y`O*Z(WB|P znaM|wC$WIF8BC;OZqxL{2Yxj1(*H(-EIS1CzU`L zD3Eo==oKjMaOsJ5;8-)QIYTKt0>prh)iQ-pd#1&T?{l%Ki^W3Z@5nt`-Qn5Q^Jiy! zjRGhXNN8v0`0C~JvxDK``HRoL`sVlFesz5^#9HIo`32ikEYn?{A0xIIwVMW3=m6R! z)aKK1Kyok?OQ3k{vaOqhg3U}#PBPX@ut&VVfA_t=`L{OE;_u`dXRMSj-&$Ijvq zbR1+Sk1VN;be+YuToPGF0&xSe*vL|S5Ia^#O&|=wD;9{>z#vS^^D{H^%PWgBQ*%g_yjff0*s$@AOK{<3I%oIw-0Qk1wyUug<`QSSv~< zGud?5u{8O3ddUQ;!sS-_z7G@ z@d=o?vMNNC;nD#Bz{GuSn|TFX!yQT@hk%XLp!|cw{avirA0F&(H>%ZoyN88u(#4~b zvu7_q{rs~}KK}UC^)PQNJ{Xvf%mbgY`%*VLmv(lBjO!GiXJ^O5e!GDe)LSSl=4qNpHe@{yb^t@> zx}40=<5)L=*dWd`NL`nP|3XU1&Dk{lReR5Ad8 zaBPl1OhJNyG4^+M2fg0l5FUPUaxfeo93k!N5iLq6Z-648TE`@|#ELs?hm03#XdR0q z34{ueXx0RrD665?oX8eS&@6Jj9FU`lJYZ`}Xl;h9HW?2?;AZSY!S;w)x*+Kn)_h7C zuoBojiwC7DDm9c|zl+2H#IJ+|2CIx<6GG3^kPO!JuudlE;dHwlmW8Rul3O9=GFvwl zU+_3lreHoJxi)Hk(L|<5U6u362%dJJ)++lnum*_bk4CFmEig?%>CYG(7F;F36nGWj z39Ul{m>ssspvWQMP3T72BZ4%RDVPa$2g9S2qkU|iKq04;N5mi{hv-zf9~MhS?H&7UtRT%Ciq8C?dtsVz{Fx=Z=*&GZ8@str29Fsgp z_B@Coh(e{5EPj=uKO+F4#DR=I03%%me#|_1{P5o0kM5v-_={hBc;}53P#QMSCNfp;~~FZk`BX& zDvE%iN)LuqD`w!dENTpPu}X)Ce~!oZ4o)vFPWBPWku`#xgYi}c8%doEGKEblpv+BB z8Z0~nKu`09RKSj+7E5AW+Xi8GSl3M0_XGEuMM+CK-onxv1Ym&dX9TN>YF^>YlM$GAuGv zcr+>Eiy=z@QvMIScey@$fiJL zoaB250wn)Nvq;{|hiF?4;ly+%@L_JD0UmH4n(T5y5eX81@#5<8;_T!Q5CSDYn*(yN zS`*nkCPdN$u37=2GR5549qj}{-9@dFF@MT|W>3wq#*L zmRT};Y?oRBf@~aL`TvwIGK*i!s2X%C=&vIuIA7?p2!L8)k zur4WbBRd8^Vzv$Gn`kH|mRr#9Ex&kxvM{7hqoY&MD@dJSv9i7Zi~!nWn-mg1L~U+w zfRYiRxIN8*5)KG~1FIG+cgV&e74%7sSt>vTqS~Z_$BigdlbRRe2HHS17KvbEvLJ{O zm1s!tnl)VDD-F}M^6M8P-Lu4pl}KI0>1-UOE4>s@#WdP)M;QSEKLCM0zNFa ztOFHbX{&0L9|476PA2E~Y+5bLb5fR-1w9ff0LC&jYy(sitEE6{Fn9_8HVWp#Kt%tP z`Y4Jbz-~qgDL{tQz(fSB(utWei4flb=|W*n*XWK^neJep#XHtEnW4*KI=2FFL7pqx z&^bV!TP|Tjh;`@_9@{7-11>xEc!Df3SfPP~U~NhOgmq8sgXCnGFJpfLb*c(EOqN+d zPZW6DGJNjq{6z;%PKGJgoc9ZD_{|cgB0w! z5fB+DHy+8JR~%sLmtZINd7!D?bvB`}a6!-(*7_l4V54OfpuTE>rDBJ`3dydlvJ)#< z3*~@;+z4|?Wa)_g1Tpe%8Mb`WWn{I6(}G>X+Yp0bhg_Rw39~N|OyVb(-dNdhVuu|P zUUK&~6Nuq}3vnzJ0P-Xwp)-I4N7AUclMaBUU{3|y980&-s5J@B8l?u{ZE}t=5!+G> z2tpiyTo@*}FAU_JWS>sSM2FQLAU+Diuwj&>WkW0B9x_7=^P?O zP!v1lhA`PRD(h@&STreG6dVd{S!k2&dZPt%+W{m5*9Dbg9t{Q4$w}*3!smu9&>aB* zWFlM_M7?<8;r)B}9z2?yHL7Ra-m914klzEjWMc+U0I|ISLxR3g+LGcmf{cP^kTkFY z7B8{m7VCwel@-(x$*~DSEV;nx2+u$|R`+EM7)GYTDaOc*gMpSQ30{vAEakFviIKBH zL>33q1}`Bq4soqr9F`o8$q9A9n5>c+P8bC~1!#DbaBUQGxZO|5ie97vjt)*h!;BDE z3HCHRcq;@A_aQZ9(MwiWJw%oe3Oyy#AyQHejVR86<1qab4FgVnakWyg;tl!c0h)_6Jtr~q*E07h~N|*k>HNyb{OBS#zC_gN+J@abVtm9;hMNDjGO#G zHAKlS>+`TLBDm2+{3HP?y~ng5I57aaG(1XHTxIb{qBBSeAd_fG=tLEH5jAA+I26o< z2QawH?rwe~GJ(9w)_KeqK1EYVW>7o;0KVdJty>1q<%rLtzR~g-a+BjhW?h=rCad0lXJ{g$<`}n)nJ$ z2~F&WHi?G5iPU(AKq;}C)<-~8ex)oxVIk3&VU53lzesxN;gTCL)x@6%f#Av>Dlr4f zR-!Cv2Vw_qWtO8Ff`+U)k!1~n>F;Sv5;B5a0kj*yOee+C|?N3$dc(OY*aJS zWtD)!MucF&Mi>s2!Qy?OG1QsFe?l_-RyZOZhQ6gdM`#YLlV}R}gUN$H%5y>hs5Jgj znJQ+9kbJj7$wF8vb^Tgjixe)PX37O{Zvbnn@`l6O;;t z2%CgQjx|+u|LRR9h{XCHc4Go&VbT^ z3R!?tg=p++yjM)MIYr*YEjRO9+rOQqz{Ka@=Uq7l3V zoh4;pd}j@_C|ZxuwmOgBR1E_a)GSTzQ#We{F0Q8ijdY5tBkD4;5ROGc z_)s20I?3`K&005DxoR9D1C#P?zLrfGD1BT}e7b?^8{G@cGmZ$(69pKZ(Bvji7kRx# zdAhGw7PTPpUOPPAPxcCNvQcmZY{HddFT4$n!^D>{NY03~l~4d7LOz-y(6HI$i^AeG zB&v-N56UKql3U?LtA>&d8rADep%K@WFu*R#5 z8H=!$@M77$q>b3s~|4(WoZM`k8z*ht6}3Z;Sv#3yL;bOG(x7=g@C z@enGU8Xsv+X7`$cb?8<)5E~g8iHK2bbo8M>Nr_(UhXzD=CnHeCMO)MpP|&9A4EHI- z=5Uoa3kWIk@l#|ewx)QK7_|`x6oL`m)eJSbN>Zs9{}}BD218dW%1}`^tBQ;|g7BjU z;o)MGv;eYJYE9q*hk!BR5lo52#Y@-Ou}J$X$rJn)4RdEC zRYq<2yY5^^uaOn0p+hXvWN6C$DQHoWqZj7iiX2Bg9Q z<)sYRxKRyX+YvQwSh_e5{aHL)WX^|`;prRE7bjx)naJ39yNHDFqYy(>J0gD?AH=;> zjK+Y+QAdYJg$v{y3^FR8VJ+>oHooXY9qF8afmSs-mg1?(Vbu6VWMU995j|st{6OJ%ugtz1GB(Nfu`VW6TvacAJM zCwXci@4Gnx@* zqh&?Zk)~y#v@OFFAf!_mw;J-gZJT^h-GKviC6m-HCosu=k_=iGbB~*PvNeeyb zxrkF3-Q4~*=FeM{joo0butte}VyJwz(k|7eDIR%0LmSKiMgcvKnsNuiurON%?P766 zRTVeor5KQouzJQ43y7w?iA~VoFxC+!k99J_C3G}yzLcjSQH8ML`7#~eXEdcYe)5d+ zazmEtoAQ-roW>8WOFSW(GK5WPjwY-?O-%$RKo8B(SJeCDMd(C#z@dpT8V@UA6Y+?E zWM(&^R`?M>6@^i>3u90c-?Y>v@YFhBF!c>i3KZ+Yqz7XarS42x&6k(~Kt+Xo{0+ zA5&&JhC$lDl(nhQ!l%bNRk300gmI`Y7{O>XZ#6S=09qn}aU=jbu3^0jy+`h0a9S2h;2gNTT$!bsjN#Sl<#HqMLlZHJiVX8oLX#i^-_fb4RE>nRN|6E8 zGfkN>Xl?Gwly1aq0HlUAHF3O-!@CJ8Kp{>@O~;7v#L-bC)4J0psohG%CFUgZ8nG!w zugIv_7g1MYigqKzypp<_M-hrja!eBBbE_jq+$<@aI`JS+l>#NkS5uWN)MSe zjr`OYAapN$>bB_Q)f|A5qZ$l)Mow{J@9Ox4;s+RYEo1 zIqG)I#|1*g2gIH=7&0ADy61po+%ih-E!qkxZNbTrBSI1s$|yt|w3FCs^e4TI2Bx4+ zeEtT3ZpO#?yskWDW1`9%ryj>axnX3THvlV+q#a0^wsJ5%A~i#P%5eBz17~S3%DAOl z^&z>57C63?Yr*$b+O6mm*FxyyERYE`S5-c)R&l!t{xA%yxBJ}vEPp11|K9;tt@ytp z(_5h=xuSR#CTKZABM{)tczGlajTwpsX}v(^#1Pz#IYE$^j;`vd)N}+xHz|~cBk?1= z1S{eq1qzzJ!Wz1iyt&K!CTZiwW@GE5F7pEKWVsn|t3d$^y&82@*j8q#lma7Dz^MkP zh6jg)A1b$$Gg5R0YD%Ay{76-m+eLKUl=&=iLe;q`v{53=jELm`7R%InglJ!JQAu=J zfaRK|tYwb&aT)cRQD+KtbZtSfh#x8n%BK{3MsS7fOVyvD42^1|10999IMivrSuBL6NY7T`U(xml`oJFZj#hsg2qclj!L!-Y?Gn&z>$Cbe=XyjGJ z-Nfk)>=61P9?7?9o9E%JCWY450?Y^`C`kMOR_I3SR>ca++Q140h5R&NM#V=w1WAsy zk%bGVGW;Infn;vE-Hm13@Gx;AjYcv@{X$}!jKG*U{Y`XaRDG3oDru6NP?##Gq$reR zv`U~@QK;O3Yl?M9fDr6a9c$H7=il3;3*i&2F|(|swrY!)h(<-9GVhy!E5aL-)(Ehb zXGriIm#CqXaUqY+jT9!z)UKu63La;yJ?NOMU%(=i_?}!>;aZ1Hpwl=F5H*a)O~{-Q zq`8gZu5k!?X>z4h!K$>_wN6$cMD0dU4jO*zN70{_lGeO}BC1++t}uxvz$U+VUUY?9 z$AFj5^D#Ca^O9D*@<-Z&VGLtu%aRg%fH)C?Tk+axkhH^1#GJS&C#)bi)kQmOGjy}hQH##1Bis$5JNR@9e z1fssR9*y2clE+mgWjz@+ZuLV+;6@JWNQ+2yJCfH(V>f4v0mvEsg9B5|uqyr2xcN{1 z*6-n%zWd7YUPf1MZslcpuNs6Q6a$9k67Ly3`q}}nvFWkD;Y;1~eV_UPbxHbGqSZPu zzT~8OwJ{WUmJ(Yn+(a^`W}1m*7-m3A+5L-t&L?~~sh>koAEXI{GX z;@dx7>k(@G0nL7QtbfUw*Is@5=j~C-uiH1g=@&-yrb}bzzo+|u%BiuQ#t->sEs^ol zJpN%p{qZ~W^S1$XgrKkW{`$*re*aS@`5oAJ^TRhU__2>Lvmd+5f3f|&LB9X5$NK{g zKYI0R2KJZ!9QCUX-Z1e$=k#km|Cm4j(n){!dHMT?A9IL*BwGC`0)5kPzB~Fq*E1Po tzSG|H+JDCLGUFd#MgNR5`WN)-?-;=7#E(Bn{5ALwG+zAi-^m`|`oHdJTl4?` diff --git a/samples/joytest/joytest.cpp b/samples/joytest/joytest.cpp deleted file mode 100644 index 2709bc19ff..0000000000 --- a/samples/joytest/joytest.cpp +++ /dev/null @@ -1,166 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joytest.cpp -// Purpose: Joystick sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: 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 -#include - -#include "joytest.h" - -MyFrame *frame = NULL; - -IMPLEMENT_APP(MyApp) - -// For drawing lines in a canvas -long xpos = -1; -long ypos = -1; - -int winNumber = 1; - -// Initialise this in OnInit, not statically -bool MyApp::OnInit(void) -{ - wxJoystick stick(wxJOYSTICK1); - if (!stick.IsOk()) - { - wxMessageBox("No joystick detected!"); - return FALSE; - } - m_fire.Create("gun.wav"); - - m_maxX = stick.GetXMax(); - m_maxY = stick.GetYMax(); - - // Create the main frame window - - frame = new MyFrame(NULL, "Joystick Demo", wxPoint(0, 0), wxSize(500, 400), - wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL); - - // Give it an icon (this is ignored in MDI mode: uses resources) -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("joyicon")); -#endif -#ifdef __X__ - frame->SetIcon(wxIcon("joyicon.xbm")); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(JOYTEST_QUIT, "&Exit"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(JOYTEST_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - frame->CreateStatusBar(); - - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_JOYSTICK_EVENTS(MyCanvas::OnJoystickEvent) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): - wxScrolledWindow(parent, -1, pos, size, wxSUNKEN_BORDER) -{ - wxJoystick joystick(wxJOYSTICK1); - joystick.SetCapture(this); -} - -MyCanvas::~MyCanvas(void) -{ - wxJoystick joystick(wxJOYSTICK1); - joystick.ReleaseCapture(); -} - -void MyCanvas::OnJoystickEvent(wxJoystickEvent& event) -{ - wxClientDC dc(this); - - wxPoint pt(event.GetPosition()); - - // Scale to canvas size - int cw, ch; - GetSize(&cw, &ch); - - pt.x = (long) (((double)pt.x/(double)wxGetApp().m_maxX) * cw); - pt.y = (long) (((double)pt.y/(double)wxGetApp().m_maxY) * ch); - - if (xpos > -1 && ypos > -1 && event.IsMove() && event.ButtonIsDown()) - { - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine(xpos, ypos, pt.x, pt.y); - } - xpos = pt.x; - ypos = pt.y; - - char buf[100]; - if (event.ButtonDown()) - sprintf(buf, "Joystick (%ld, %ld) Fire!", pt.x, pt.y); - else - sprintf(buf, "Joystick (%ld, %ld)", pt.x, pt.y); - frame->SetStatusText(buf); - - if (event.ButtonDown() && wxGetApp().m_fire.IsOk()) - { - wxGetApp().m_fire.Play(); - } -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(JOYTEST_QUIT, MyFrame::OnQuit) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, -const long style): - wxFrame(parent, -1, title, pos, size, style) -{ - canvas = new MyCanvas(this); -} - -MyFrame::~MyFrame(void) -{ -} - -void MyFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void MyFrame::OnActivate(wxActivateEvent& event) -{ - if (event.GetActive() && canvas) - canvas->SetFocus(); -} diff --git a/samples/joytest/joytest.def b/samples/joytest/joytest.def deleted file mode 100644 index 501f2b229a..0000000000 --- a/samples/joytest/joytest.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Joytest -DESCRIPTION 'Joystick Test Program' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 6000 -STACKSIZE 48000 diff --git a/samples/joytest/joytest.h b/samples/joytest/joytest.h deleted file mode 100644 index afa8a21a86..0000000000 --- a/samples/joytest/joytest.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joytest.cpp -// Purpose: Joystick sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// Define a new application -class MyApp: public wxApp -{ - public: - bool OnInit(void); - - // Joystick max values - int m_maxX; - int m_maxY; - - wxWave m_fire; -}; - -DECLARE_APP(MyApp) - -class MyCanvas: public wxScrolledWindow -{ - public: - MyCanvas(wxWindow *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize); - ~MyCanvas(void); - void OnJoystickEvent(wxJoystickEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class MyFrame: public wxFrame -{ - public: - MyCanvas *canvas; - MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); - ~MyFrame(void); - void OnActivate(wxActivateEvent& event); - void OnQuit(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#define JOYTEST_QUIT 1 -#define JOYTEST_ABOUT 2 diff --git a/samples/joytest/joytest.ico b/samples/joytest/joytest.ico deleted file mode 100644 index 2dc1bde40cf921731fb2f7c6534054c6fb8d96d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmah{IgY|W5G*e%tq=i3o32BCvHXmAf>Zy(`6TlchZ{QF05Mc`&y2+((WbBJ>H`DN z@#*^mB!3^kH~o>?Q%}?mpR_<=?X?6JSqZ@%EkkNRN{NMRALOiv%14mQONo@Vuu~f2 zR1r@bqoxHgHqbgO7{>y8VLOh4a849H4Zzj{FAJP(g5{I-n)O_*F$%SIE3<<+Nj^dZ zMrsmnqFCH}{&VhK#xlN*^s!HQyVC2cT_ZcBoK?PWy+p6H9A{2%_%Scn3ie-MC5TR` zfM>p7Bv6> diff --git a/samples/joytest/joytest.rc b/samples/joytest/joytest.rc deleted file mode 100644 index 8138605789..0000000000 --- a/samples/joytest/joytest.rc +++ /dev/null @@ -1,5 +0,0 @@ -aaaa ICON "mondrian.ico" -joyicon ICON "mondrian.ico" - -#include "wx/msw/wx.rc" - diff --git a/samples/joytest/makefile.b32 b/samples/joytest/makefile.b32 deleted file mode 100644 index 1ab531405a..0000000000 --- a/samples/joytest/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=joytest -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/joytest/makefile.bcc b/samples/joytest/makefile.bcc deleted file mode 100644 index d84ed49281..0000000000 --- a/samples/joytest/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=joytest -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/joytest/makefile.dos b/samples/joytest/makefile.dos deleted file mode 100644 index df94746c2e..0000000000 --- a/samples/joytest/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=joytest -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/joytest/makefile.g95 b/samples/joytest/makefile.g95 deleted file mode 100644 index 565c1a9bfb..0000000000 --- a/samples/joytest/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=joytest -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/joytest/makefile.sc b/samples/joytest/makefile.sc deleted file mode 100644 index bcdcb11d54..0000000000 --- a/samples/joytest/makefile.sc +++ /dev/null @@ -1,37 +0,0 @@ -; Last change: JS 12 Apr 98 10:45 am -# Symantec C++ makefile for joytest example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -joytest.exe: joytest.obj joytest.def joytest.res - *$(CC) $(LDFLAGS) -o$@ joytest.obj joytest.def $(LIBS) - *$(RC) -k joytest.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws diff --git a/samples/joytest/makefile.unx b/samples/joytest/makefile.unx deleted file mode 100644 index 7b60c08bea..0000000000 --- a/samples/joytest/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for joytest example (UNIX). - -PROGRAM=joytest - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/joytest/makefile.vc b/samples/joytest/makefile.vc deleted file mode 100644 index a4ef6737c2..0000000000 --- a/samples/joytest/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=joytest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/joytest/makefile.wat b/samples/joytest/makefile.wat deleted file mode 100644 index 57467717d1..0000000000 --- a/samples/joytest/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = joytest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/joytest/mondrian.ico b/samples/joytest/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Zpanel, - - ( leftOf (frame->panel) = leftOf (frame), - topOf (frame->panel) = topOf (frame), - rightOf (frame->panel) = rightOf (frame), - heightOf (frame->panel) = 50 % heightOf (frame) - ) - ); - */ - -// Operator experiments -#define wxCONSTRAINT_OP_REL 1 -#define wxCONSTRAINT_OP_PERCENT 2 -#define wxCONSTRAINT_OP_EDGE 3 -#define wxCONSTRAINT_OP_ABS 4 -#define wxCONSTRAINT_OP_AND 5 - -class wxConstraintOp: public wxObject -{ - public: - int opType; - wxEdge edge; - wxRelationship relationship; - wxWindow *win; - int value; - int margin; - wxConstraintOp *lhs; - wxConstraintOp *rhs; - wxConstraintOp(int typ) - { - opType = typ; - edge = wxLeft; - win = NULL; - value = 0; - margin = 0; - relationship = wxSameAs; - lhs = 0; rhs = 0; - } - wxConstraintOp(const wxConstraintOp& op) - { - opType = op.opType; - edge = op.edge; - relationship = op.relationship; - win = op.win; - value = op.value; - margin = op.margin; - if (op.lhs) - lhs = new wxConstraintOp(*op.lhs); - else - lhs = NULL; - if (op.rhs) - rhs = new wxConstraintOp(*op.rhs); - else - rhs = NULL; - } - ~wxConstraintOp(void) - { - if (lhs) - delete lhs; - if (rhs) - delete rhs; - } - - wxConstraintOp operator = (const wxConstraintOp& arg2); - wxConstraintOp operator = (const int value); - - friend wxConstraintOp operator % (const int perCent, const wxConstraintOp& arg2); - friend wxConstraintOp operator + (wxConstraintOp& arg1, int margin); - friend wxConstraintOp operator - (wxConstraintOp& arg1, int margin); - friend wxConstraintOp operator , (const wxConstraintOp& arg1, const wxConstraintOp& arg2); -}; - -wxConstraintOp leftOf(wxWindow *win) -{ - wxConstraintOp thing(wxCONSTRAINT_OP_EDGE); - thing.win = win; - thing.edge = wxLeft; - return thing; -} - -wxConstraintOp topOf(wxWindow *win) -{ - wxConstraintOp thing(wxCONSTRAINT_OP_EDGE); - thing.win = win; - thing.edge = wxTop; - return thing; -} - -wxConstraintOp widthOf(wxWindow *win) -{ - wxConstraintOp thing(wxCONSTRAINT_OP_EDGE); - thing.win = win; - thing.edge = wxWidth; - return thing; -} - -wxConstraintOp wxConstraintOp::operator = (const wxConstraintOp& arg2) -{ - wxConstraintOp op3(wxCONSTRAINT_OP_REL); - op3.relationship = wxPercentOf; - op3.value = 100; - if ((op3.relationship == wxPercentOf) && (op3.value > 0)) - op3.value = this->value; - op3.lhs = new wxConstraintOp(*this); - op3.rhs = new wxConstraintOp(arg2); - - return op3; -} - -wxConstraintOp wxConstraintOp::operator = (const int value) -{ - wxConstraintOp op3(wxCONSTRAINT_OP_REL); - op3.relationship = wxAbsolute; - - op3.lhs = new wxConstraintOp(*this); - op3.rhs = new wxConstraintOp(wxCONSTRAINT_OP_ABS); - op3.value = value; - - return op3; -} - -wxConstraintOp operator % (const int perCent, const wxConstraintOp& arg2) -{ - wxConstraintOp op3(arg2); - op3.opType = wxCONSTRAINT_OP_EDGE; - op3.value = perCent; - if (op3.value > 0) - op3.value = arg2.value; - - return op3; -} - -wxConstraintOp operator + (wxConstraintOp& arg1, int margin) -{ - wxConstraintOp op3(arg1); - op3.margin = margin; - return op3; -} - -wxConstraintOp operator - (wxConstraintOp& arg1, int margin) -{ - wxConstraintOp op3(arg1); - op3.margin = - margin; - return op3; -} - -wxConstraintOp operator , (const wxConstraintOp& arg1, const wxConstraintOp& arg2) -{ - wxConstraintOp op3(wxCONSTRAINT_OP_AND); - op3.lhs = new wxConstraintOp(arg1); - op3.rhs = new wxConstraintOp(arg2); - - return op3; -} diff --git a/samples/layout/fload.xbm b/samples/layout/fload.xbm deleted file mode 100644 index 27af1f939b..0000000000 --- a/samples/layout/fload.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define fload_width 30 -#define fload_height 30 -static char fload_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,0xf8,0xff,0xfb,0x0f,0x08,0x00,0xf0, - 0x0f,0xc8,0xff,0xef,0x0f,0x48,0x00,0xf0,0x0f,0x48,0x00,0xf8,0x0f,0x48,0x00, - 0xfc,0x0e,0x48,0x00,0x7f,0x0c,0x48,0xc0,0xbf,0x00,0x48,0xf0,0x9f,0x04,0x48, - 0xfe,0x8f,0x04,0x48,0xff,0x87,0x04,0x48,0x00,0x80,0x04,0x48,0x00,0x80,0x04, - 0x48,0x00,0x80,0x04,0x48,0x00,0x80,0x04,0xc8,0xff,0xff,0x04,0x08,0x00,0x00, - 0x04,0x08,0x00,0x00,0x04,0x08,0xff,0x1f,0x04,0x08,0x01,0x10,0x04,0x08,0x1d, - 0x10,0x04,0x08,0x15,0x10,0x04,0x08,0x15,0x10,0x04,0x08,0x15,0x10,0x04,0x08, - 0x15,0x10,0x04,0x10,0x1d,0x10,0x04,0xe0,0xff,0xff,0x07,0x00,0x00,0x00,0x00}; diff --git a/samples/layout/layout.cpp b/samples/layout/layout.cpp deleted file mode 100644 index 54c4b3a740..0000000000 --- a/samples/layout/layout.cpp +++ /dev/null @@ -1,341 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: layout.cpp -// Purpose: Layout sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: 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 - -#if !wxUSE_CONSTRAINTS -#error You must set wxUSE_CONSTRAINTS to 1 in setup.h! -#endif - -#include -#include "layout.h" - -// Declare two frames -MyFrame *frame = (MyFrame *) NULL; -wxMenuBar *menu_bar = (wxMenuBar *) NULL; - -IMPLEMENT_APP(MyApp) - -MyApp::MyApp() -{ -} - -bool MyApp::OnInit(void) -{ - // Create the main frame window - frame = new MyFrame((MyFrame *) NULL, (char *) "wxWindows Layout Demo", 0, 0, 550, 500); - - frame->SetAutoLayout(TRUE); - - // Give it a status line - frame->CreateStatusBar(2); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(LAYOUT_LOAD_FILE, "&Load file", "Load a text file"); - file_menu->Append(LAYOUT_TEST, "&Test sizers", "Test sizer code"); - - file_menu->AppendSeparator(); - file_menu->Append(LAYOUT_QUIT, "E&xit", "Quit program"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(LAYOUT_ABOUT, "&About", "About layout demo"); - - menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - // Make a panel - frame->panel = new wxPanel(frame, 0, 0, 1000, 500, wxTAB_TRAVERSAL); - frame->panel->SetBackgroundColour(wxColour(192, 192, 192)); -// frame->panel->SetAutoLayout(TRUE); - - // Create some panel items - wxButton *btn1 = new wxButton(frame->panel, -1, "A button (1)") ; - - 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, - wxPoint(-1, -1), wxSize(200, 100)); - list->Append("Apple"); - list->Append("Pear"); - list->Append("Orange"); - list->Append("Banana"); - list->Append("Fruit"); - - 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, "Some text", - wxPoint(-1, -1), wxSize(150, 100)); - - 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); - - frame->canvas = new MyWindow(frame, 0, 0, 400, 400, wxRETAINED); - - // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction -// canvas->SetScrollbars(20, 20, 50, 50, 4, 4); - - // Make a text window - frame->text_window = new MyTextWindow(frame, 0, 250, 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 canvas 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->canvas->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); - - frame->Show(TRUE); - - frame->SetStatusText("wxWindows layout demo"); - - SetTopWindow(frame); - return TRUE; -} - -// Define my frame constructor -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - panel = (wxPanel *) NULL; - text_window = (MyTextWindow *) NULL; - canvas = (MyWindow *) NULL; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(LAYOUT_LOAD_FILE, MyFrame::LoadFile) - EVT_MENU(LAYOUT_QUIT, MyFrame::Quit) - EVT_MENU(LAYOUT_TEST, MyFrame::TestSizers) - EVT_MENU(LAYOUT_ABOUT, MyFrame::About) - EVT_SIZE(MyFrame::OnSize) -END_EVENT_TABLE() - -void MyFrame::LoadFile(wxCommandEvent& WXUNUSED(event) ) -{ - wxString s = wxFileSelector( _T("Load text file"), (const wxChar *) NULL, - (const wxChar *) NULL, (const wxChar *) NULL, _T("*.txt") ); - if (s != "") - { -#ifdef __WXMSW__ - frame->text_window->LoadFile(s); -#endif - } -} - -void MyFrame::Quit(wxCommandEvent& WXUNUSED(event) ) -{ - this->Close(TRUE); -} - -void MyFrame::TestSizers(wxCommandEvent& WXUNUSED(event) ) -{ - SizerFrame *newFrame = new SizerFrame((MyFrame *) NULL, (char *) "Sizer Test Frame", 50, 50, 500, 500); - newFrame->Show(TRUE); -} - -void MyFrame::About(wxCommandEvent& WXUNUSED(event) ) -{ - (void)wxMessageBox("wxWindows GUI library layout demo\n", - "About Layout Demo", wxOK|wxCENTRE); -} - -// Size the subwindows when the frame is resized -void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event) ) -{ - Layout(); -} - -void MyFrame::Draw(wxDC& dc, bool WXUNUSED(draw_bitmaps) ) -{ - dc.SetPen(* wxGREEN_PEN); - dc.DrawLine(0, 0, 200, 200); - dc.DrawLine(200, 0, 0, 200); - - dc.SetBrush(* wxCYAN_BRUSH); - dc.SetPen(* wxRED_PEN); - - dc.DrawRectangle(100, 100, 100, 50); - dc.DrawRoundedRectangle(150, 150, 100, 50, 20); - - dc.DrawEllipse(250, 250, 100, 50); - dc.DrawSpline(50, 200, 50, 100, 200, 10); - dc.DrawLine(50, 230, 200, 230); - - dc.SetPen(* wxBLACK_PEN); - dc.DrawArc(50, 300, 100, 250, 100, 300 ); -} - -BEGIN_EVENT_TABLE(MyWindow, wxWindow) - EVT_PAINT(MyWindow::OnPaint) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyWindow::MyWindow(wxFrame *frame, int x, int y, int w, int h, long style): - wxWindow(frame, -1, wxPoint(x, y), wxSize(w, h), style) -{ -} - -MyWindow::~MyWindow(void) -{ -} - -// Define the repainting behaviour -void MyWindow::OnPaint(wxPaintEvent& WXUNUSED(event) ) -{ - wxPaintDC dc(this); - frame->Draw(dc,TRUE); -} - - -SizerFrame::SizerFrame(wxFrame *frame, char *title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - panel = new wxPanel(this, -1, wxPoint(0, 0), wxSize(-1, -1), wxTAB_TRAVERSAL); - panel->SetBackgroundColour(wxColour(192, 192, 192)); - - // A sizer to fit the whole panel, plus two sizers, one - // above the other. A button is centred on the lower - // sizer; a rowcol containing 3 buttons is centred on the upper - // sizer. - wxSizer *expandSizer = new wxSizer(panel, wxSizerExpand); - expandSizer->SetName("expandSizer"); - - wxLayoutConstraints *c; - - /////// TOP OF PANEL - /////// - wxSizer *topSizer = new wxSizer(expandSizer); - topSizer->SetName("topSizer"); - - // Specify constraints for the top sizer - c = new wxLayoutConstraints; - c->left.SameAs (expandSizer, wxLeft); - c->top.SameAs (expandSizer, wxTop); - c->right.SameAs (expandSizer, wxRight); - c->height.PercentOf (expandSizer, wxHeight, 50); - - topSizer->SetConstraints(c); - - /* - * Add a row-col sizer and some buttons - */ - - // Default is layout by rows, 20 columns per row, shrink to fit. - wxRowColSizer *rowCol = new wxRowColSizer(topSizer); - rowCol->SetName("rowCol"); - - wxButton *button = new wxButton(panel, -1, "Button 1"); - rowCol->AddSizerChild(button); - - button = new wxButton(panel, -1, "Button 2"); - rowCol->AddSizerChild(button); - - button = new wxButton(panel, -1, "Button 3"); - rowCol->AddSizerChild(button); - - // Centre the rowcol in the middle of the upper sizer - c = new wxLayoutConstraints; - c->centreX.SameAs (topSizer, wxCentreX); - c->centreY.SameAs (topSizer, wxCentreY); - c->width.AsIs(); - c->height.AsIs(); - rowCol->SetConstraints(c); - - /////// BOTTOM OF PANEL - /////// - wxSizer *bottomSizer = new wxSizer(expandSizer); - - // Specify constraints for the bottom sizer - c = new wxLayoutConstraints; - c->left.SameAs (expandSizer, wxLeft); - c->top.PercentOf (expandSizer, wxHeight, 50); - c->right.SameAs (expandSizer, wxRight); - c->height.PercentOf (expandSizer, wxHeight, 50); - - bottomSizer->SetConstraints(c); - - wxButton *button2 = new wxButton(panel, -1, "Test button"); - - // The button should be a child of the bottom sizer - bottomSizer->AddSizerChild(button2); - - // Centre the button on the sizer - c = new wxLayoutConstraints; - c->centreX.SameAs (bottomSizer, wxCentreX); - c->centreY.SameAs (bottomSizer, wxCentreY); - c->width.PercentOf (bottomSizer, wxWidth, 20); - c->height.PercentOf (bottomSizer, wxHeight, 20); - button2->SetConstraints(c); -} - -BEGIN_EVENT_TABLE(SizerFrame, wxFrame) - EVT_SIZE(SizerFrame::OnSize) -END_EVENT_TABLE() - - -// Size the subwindows when the frame is resized -void SizerFrame::OnSize(wxSizeEvent& event) -{ - wxFrame::OnSize(event); - panel->Layout(); -} - diff --git a/samples/layout/layout.def b/samples/layout/layout.def deleted file mode 100644 index 0a7e3cb840..0000000000 --- a/samples/layout/layout.def +++ /dev/null @@ -1,9 +0,0 @@ -NAME Layout -DESCRIPTION 'Layout' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 - diff --git a/samples/layout/layout.h b/samples/layout/layout.h deleted file mode 100644 index 15fa044a8f..0000000000 --- a/samples/layout/layout.h +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: layout.h -// Purpose: Layout sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp(void) ; - bool OnInit(void); -}; - -// Define a new frame -class MyTextWindow; -class MyWindow; - -class MyFrame: public wxFrame -{ - public: - wxPanel *panel; - MyTextWindow *text_window; - MyWindow *canvas; - MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - void OnSize(wxSizeEvent& event); - void Draw(wxDC& dc, bool draw_bitmaps = TRUE); - - void LoadFile(wxCommandEvent& event); - void Quit(wxCommandEvent& event); - void TestSizers(wxCommandEvent& event); - void About(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - -// Define a new text subwindow that can respond to drag-and-drop -class MyTextWindow: public wxTextCtrl -{ - public: - MyTextWindow(wxFrame *frame, int x=-1, int y=-1, int width=-1, int height=-1, - long style=wxTE_MULTILINE): - wxTextCtrl(frame, -1, "", wxPoint(x, y), wxSize(width, height), style) - { - } -}; - -// Define a new canvas which can receive some events -class MyWindow: public wxWindow -{ - public: - MyWindow(wxFrame *frame, int x, int y, int w, int h, long style = wxRETAINED); - ~MyWindow(void) ; - void OnPaint(wxPaintEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class SizerFrame: public wxFrame -{ - public: - wxPanel *panel; - SizerFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - void OnSize(wxSizeEvent& event); - - DECLARE_EVENT_TABLE() -}; - -#define LAYOUT_QUIT 100 -#define LAYOUT_TEST 101 -#define LAYOUT_ABOUT 102 -#define LAYOUT_LOAD_FILE 103 diff --git a/samples/layout/layout.rc b/samples/layout/layout.rc deleted file mode 100644 index b86c4e2265..0000000000 --- a/samples/layout/layout.rc +++ /dev/null @@ -1 +0,0 @@ -#include "wx/msw/wx.rc" diff --git a/samples/layout/makefile.b32 b/samples/layout/makefile.b32 deleted file mode 100644 index efb6636e03..0000000000 --- a/samples/layout/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=layout -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/layout/makefile.bcc b/samples/layout/makefile.bcc deleted file mode 100644 index 6d0313558a..0000000000 --- a/samples/layout/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=layout -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/layout/makefile.dos b/samples/layout/makefile.dos deleted file mode 100644 index e963c12e94..0000000000 --- a/samples/layout/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=layout -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/layout/makefile.g95 b/samples/layout/makefile.g95 deleted file mode 100644 index e4f5ffd5ee..0000000000 --- a/samples/layout/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=layout -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/layout/makefile.sc b/samples/layout/makefile.sc deleted file mode 100644 index 0b28430453..0000000000 --- a/samples/layout/makefile.sc +++ /dev/null @@ -1,37 +0,0 @@ -# Symantec C++ makefile for layout example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -layout.exe: layout.obj layout.def layout.res - *$(CC) $(LDFLAGS) -o$@ layout.obj layout.def $(LIBS) - *$(RC) -k layout.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws - diff --git a/samples/layout/makefile.unx b/samples/layout/makefile.unx deleted file mode 100644 index ff2edfa6ce..0000000000 --- a/samples/layout/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for layout example (UNIX). - -PROGRAM=layout - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/layout/makefile.vc b/samples/layout/makefile.vc deleted file mode 100644 index 95590f8f6f..0000000000 --- a/samples/layout/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=layout -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/layout/makefile.vms b/samples/layout/makefile.vms deleted file mode 100644 index f47d52031b..0000000000 --- a/samples/layout/makefile.vms +++ /dev/null @@ -1,41 +0,0 @@ -#************************************************************************ -# Makefile for LAYOUT under VMS -# by Stefan Hammes -# (incomplete) update history: -# 14.05.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = layout - -# Object modules of the application. -OBJS = layout.obj -OBJLIST =layout.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(OBJS) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(OBJLIST),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ - -layout.obj : layout.cc layout.h - - diff --git a/samples/layout/makefile.wat b/samples/layout/makefile.wat deleted file mode 100644 index a4b3f2e8f9..0000000000 --- a/samples/layout/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = layout -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/listctrl/.cvsignore b/samples/listctrl/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/listctrl/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/listctrl/Makefile.am b/samples/listctrl/Makefile.am deleted file mode 100644 index 1d12eb699c..0000000000 --- a/samples/listctrl/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = listtest - -listtest_SOURCES = listtest.cpp diff --git a/samples/listctrl/bitmaps/small1.ico b/samples/listctrl/bitmaps/small1.ico deleted file mode 100644 index 2d650d58c962a9a5113639d0dc078c1ea4c03d82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`F%H5o3`KtmGwBV;gnA5)mOC&pag`pR2Vv}53CTPsP*Kr^i2;7|{T4!cqpF2v^8Mt1|ir$7{^7}%g)qZ@;N8cK=G4dK> a`b|sMn@jkrjqLUsGxeE!@)y=UJ%u~E!}Ey% diff --git a/samples/listctrl/bitmaps/small1.xpm b/samples/listctrl/bitmaps/small1.xpm deleted file mode 100644 index 98b4bb20f6..0000000000 --- a/samples/listctrl/bitmaps/small1.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * small1_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #ff0000", -"@ c #0000ff", -"# c #ffffff", -/* pixels */ -" ", -" ", -" ########## ", -" #........# ", -" #........# ", -" #........# ", -" #..########### ", -" #..#+++++++++# ", -" ####++#####++# ", -" #+#@@@@@#+# ", -" #+#@@@@@#+# ", -" #+#@@@@@#+# ", -" #++#####++# ", -" #+++++++++# ", -" ########### ", -" "}; diff --git a/samples/listctrl/bitmaps/toolbrai.ico b/samples/listctrl/bitmaps/toolbrai.ico deleted file mode 100644 index 99069f7c67320fd7e1cf63f6ee9c0c2888e7069d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcma)4y-ve05WbK~*%Bt!WaKTH!3ztIMEnq4{3Hw@;s-$@Lk9*VvQepNj_-VqTdE>B z=R4oscR#ijq718Pu1Vzmis%OWEzkfhkkJYn0`9U{B79`6ZqP8vdyicR4j(a#1z<@? z)GuPp4`St9s{s?3mHZPJ9~9{Ez^()zK6ZN>s#Fp?9fe zQYs0?+^ZRMX`I`%$ACXEe`J0|%}@aO5hMJM hn)&UMx&LDB_Pkpkc&z7YsHS49r((CBkTj!Mgz}rHxAeBL12A1hx8wdNzED%9JWo7^Y`-NeVsyue8_f>~eJg z9k0GWK=StieA6GPJ@rKG@JUNy?X?7eH$ren%Md9gdKI$W$XOAUmmry!5-Dq8r!>Z? zBAzxzO$%UbpmkU$zHE6l(2OW(RYUe1r&$ z)Fj+QvAFmA=iIxDWqcdyW1sT2rPo)xMz%;3e5eO~rChb~`%^9A_*2Ywb{KLcM0*hm9^!K!#8l_#G{|IAsMso6S1XX#9x FeFHZg6}12W diff --git a/samples/listctrl/bitmaps/toolchar.xpm b/samples/listctrl/bitmaps/toolchar.xpm deleted file mode 100644 index 7943907597..0000000000 --- a/samples/listctrl/bitmaps/toolchar.xpm +++ /dev/null @@ -1,42 +0,0 @@ -/* XPM */ -static char * toolchar_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #ff0000", -"@ c #ffff00", -/* pixels */ -" ........ ", -" ...@@@@@@@@... ", -" ..@@@@@@@@@@@@@@.. ", -" ..@@@@@@@@@@@@@@@@.. ", -" .@@@@@@@@@@@@@@@@@@@@. ", -" .@@@@@@@@@@@@@@@@@@@@@@. ", -" .@@@@@@@@@@@@@@@@@@@@@@@@. ", -" ..@@@@@@@@@@@@@@@@@@@@@@@@.. ", -" .@@@@@@@@..@@@@@@..@@@@@@@@. ", -" .@@@@@@@@....@@@@....@@@@@@@@. ", -" .@@@@@@@@....@@@@....@@@@@@@@. ", -" .@@@@@@@@....@@@@....@@@@@@@@. ", -".@@@@@@@@@....@@@@....@@@@@@@@@.", -".@@@@@@@@@....@@@@....@@@@@@@@@.", -".@@@@@@@@@@..@@@@@@..@@@@@@@@@@.", -".@@@@@@@.@@@@@@@@@@@@@@.@@@@@@@.", -".@@@@@@@.@@@@@@@@@@@@@@.@@@@@@@.", -".@@@@@@.@@@@@@@@@@@@@@@@.@@@@@@.", -".@@@....@@@@@@@@@@@@@@@@....@@@.", -".@@@@@@@.@@@@@@@@@@@@@@.@@@@@@@.", -" .@@@@@@@.@@@@@@@@@@@@.@@@@@@@. ", -" .@@@@@@@..@@@@@@@@@@..@@@@@@@. ", -" .@@@@@@@@...@@@@@@...@@@@@@@@. ", -" .@@@@@@@@.+......+.@@@@@@@@. ", -" ..@@@@@@@@.++++++.@@@@@@@@.. ", -" .@@@@@@@@@.++++.@@@@@@@@@. ", -" .@@@@@@@@@....@@@@@@@@@. ", -" .@@@@@@@@@@@@@@@@@@@@. ", -" ..@@@@@@@@@@@@@@@@.. ", -" ..@@@@@@@@@@@@@@.. ", -" ...@@@@@@@@... ", -" ........ "}; diff --git a/samples/listctrl/bitmaps/toolchec.ico b/samples/listctrl/bitmaps/toolchec.ico deleted file mode 100644 index d64e0105a221a5ef0d109485c3c1d7377678d263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmeIwu?@mN429trL`gwKg_J9qf-o6(8)PJ|V+@dJ=m1d=M2Pbn5HxH6@9wj$SV|E^ zDmWpG<=GFU34Mlu1quzRgx&WfiK~>JjmoH;Gu;>VxH9tz9Dn5HpP&8$`~#od8Lv2E ri;NV_M$x)yW$nDOW?5QeC5!rHP2b^+6Z{1&x=3*=Y;eE@H@wpWy>5zR diff --git a/samples/listctrl/bitmaps/toolchec.xpm b/samples/listctrl/bitmaps/toolchec.xpm deleted file mode 100644 index 9f4a45d753..0000000000 --- a/samples/listctrl/bitmaps/toolchec.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -static char * toolchec_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 2 1", -/* colors */ -" s None c None", -". c #000000", -/* pixels */ -" ", -" ", -" ", -" . ", -" . ", -" . ", -" . ", -" . ", -" . ", -" .. ", -" .. ", -" .. ", -" ... ", -" .. ", -" ... ", -" ... ", -" ... ", -" ... ", -" ... ... ", -" .... .... ", -" .... ... ", -" .... .... ", -" .... ... ", -" ........ ", -" ...... ", -" ..... ", -" .... ", -" .. ", -" . ", -" ", -" ", -" "}; diff --git a/samples/listctrl/bitmaps/tooldata.ico b/samples/listctrl/bitmaps/tooldata.ico deleted file mode 100644 index 4cdd40a5d08f08fda9155fde61acea05b4eba67c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmah{F>ZuF3^ciuRusrrr440%ad}cY=ysowHoxHs>7x5Ul9CRJQ=FOg!Xb20471+x z%o>9bsc^OJNf=A_iKK~$UKr`=SwzGR0lDENj47%T6(jw7r*s~ZlPrTp#61IalcLvfxC zXFd@14bMX^9C_8erehh+DUNPA=Dl%P*?Mi@+{UGO;S2pY4-#yUgC(f|VWS9~fhRzL m033FxX8e{{c<$hQMK9tPeNCc$9it@z`-HzPRRE-KyvZN@WZ_2u diff --git a/samples/listctrl/bitmaps/tooldata.xpm b/samples/listctrl/bitmaps/tooldata.xpm deleted file mode 100644 index f24d5042d5..0000000000 --- a/samples/listctrl/bitmaps/tooldata.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -static char * tooldata_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 7 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ff0000", -"$ c #ff00ff", -"% c #ffffff", -/* pixels */ -" .. ", -" ............. ", -" %%..%%%%%%%%%. ", -" %%..%%%%%%%%%%. ", -" %%..%%%%%%%..%%. ", -" ......%%%%%. .%. ", -" .. .%%%%. .%. ", -" ...%%..%. ", -" .....%%........ ", -" .%%%%%...%%%%%%%. ", -" .%%%%%%%%%%%%%%%. ", -" .%+++++++++%%%%%.... ", -" .%%%%%%%%%%%%%%%.%%%. ", -" .%+++++%%%%%%%%%..%%. ", -" .%%%%%%%%%%%%%%%.%.%. ", -" .%+++++++%+%%%%%.%.%. ", -" .%%%%%%%%%%%%%%%.%.%. ", -" ...............%%.%.%..... ", -" .%%%%%%%%%%%%%%%.%.%.%.#$#. ", -" .%%%%%%%+%%%%%%%...%.%.$#. ", -" .%%@+@+@+@+%%%%%.%%%.%.... ", -" .%%%%%+%%%%%%%%%.%%%.%.+.. ", -" .%%@+@+@+%%%%%%%.%%%....#. ", -" .%%%+%+%%%%%%%+%.%%%.+.#. ", -" .%%@+@+@+@+%%+%%......#. ", -" .%+%+%%%%%%%+%+%.$$+.#. ", -" .+%+@.%%%@.+%+%%.$+.#. ", -" .%%%.+%%%.+%%%%%.+.#. ", -" .....................#. ", -" .################.+.#. ", -" .#$#$#$#$#$#$#$#$.#. ", -" ................... "}; diff --git a/samples/listctrl/bitmaps/toolgame.ico b/samples/listctrl/bitmaps/toolgame.ico deleted file mode 100644 index 3174273bee5d3fcc4515b353756de0e14cc562b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmbtSF>-@25L`lL7+0i93uS)c{LCs{xb>!5Tlv`4qyYy)HNCVi}Wc4`T=hlt!&xy6+b~hKhse`hZt~RmZ!9~6SPxL zrX(II$tMVKYMadp79S75lg4LZBfJO>kLnfDevbg?LkQPFy{3pUYBYiQ18Fls%~IC= z5wW@vqEB&_5cM;I(KH#1vL6kZlA|H3=Z2%flcJ+RYeoCrXvperZZMVoWS}Syc?Z>u z@+>t7zN)Uj=@~q`V@g#lYMqzhe0Nm+Rn*Bke+SWUkZv>qOQ|WLS{bj=Y7vu{Kl8Hi zGJ^pyp>7*p0G9cRlqic-%KRNnZN7GyuTgqC;D-V2G__fIOaCd~ZFWbk8dAS}DOBHr zj4nTo3(yE#VJ-LpC{)DaJ;3dw-ekDh$mwl5Wi0*HY3+d5hUmz>wqKLOR!20XGCT>N Gg2fjcwd?5s diff --git a/samples/listctrl/bitmaps/toolnote.xpm b/samples/listctrl/bitmaps/toolnote.xpm deleted file mode 100644 index 16835eccbc..0000000000 --- a/samples/listctrl/bitmaps/toolnote.xpm +++ /dev/null @@ -1,46 +0,0 @@ -/* XPM */ -static char * toolnote_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 8 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #800000", -"@ c #c0c0c0", -"# c #808080", -"$ c #ffff00", -"% c #0000ff", -"& c #ffffff", -/* pixels */ -" ", -" .. ", -" .$. ", -" .$. ", -" .$. ", -" .$. ", -" .$. ", -" .$.... ", -" ...$.&&. #.. ", -" .&&&.$.&&. ...&&# ", -" ..&&&&&.$.@&..$&..&. ", -" ....&&&&&&&@.$.@&.&&.&.. #.. ", -".%%.&&&&&&&&@..$.@.&#.##&...&&# ", -".%+.&&&&&&&&@. .$..&&&&&&&&..&. ", -".%%.&&&&&&&&&......##&&&&&&.&.. ", -".%%.@&&&&&&&&&&@@@..&##&&&#.##&.", -".%%..@@..&&&&&&....+.&&##&&&&&..", -".%.%... ......&&&#..&&&&##&&.&.", -" .%.%.. .$&@&&&&&$#.&&&&&$.&.%", -" .... .&&&&@@&&&&&&##&&&.&.% ", -" .&&&&&&$@@&&&&&$&&.&.% ", -" .&&&@@&&&&&@@&&&&&.&.% ", -" .&&&&$&@@&&&&$@@&&.&.% ", -" ...&&&&&&@@&&&&&&.&.% ", -" .&&..&&&&$&@@&&&.&.% ", -" %..&&..&&&&&&&&.&.% ", -" %..&&..&&&&$.&.% ", -" %..&&..&&.&.% ", -" %..&&..&.% ", -" %..&&.% ", -" %..% ", -" "}; diff --git a/samples/listctrl/bitmaps/tooltime.ico b/samples/listctrl/bitmaps/tooltime.ico deleted file mode 100644 index b769904f4d4cd334ab4753238c057338fefa6189..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmbV~J#vFE5QQJHXGrH%X-%11Bu7f8bf~2Bl{kvalys)ZWb>^-LS`~}#w$H(pWglm z4N}Eunisi!KS{6bZ=eAmpwgZdL;K&N#8iya#)_-H@7Z0j>y(*$fZ<2JJY-$h#jV7z zZT%3it^8H}z)g#WbqlvH7jW5Z%r|PCo-FZe__!q0W+9wNm}p287# c6I9tRzm4NZYQcMfHfcs&&Pg@awY?wq2bTB6kpKVy diff --git a/samples/listctrl/bitmaps/tooltime.xpm b/samples/listctrl/bitmaps/tooltime.xpm deleted file mode 100644 index 629f273955..0000000000 --- a/samples/listctrl/bitmaps/tooltime.xpm +++ /dev/null @@ -1,43 +0,0 @@ -/* XPM */ -static char * tooltime_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -" ", -" ....... ", -" .#+++++@. ", -" ......... ", -" .#+++++@. ", -" ......... ", -" .#++++++++. ", -" ........... ", -" ...+++++++... ", -" .+++#####+++. ", -" .++####.####++. ", -" .++#####.+####++. ", -" .+######.+#####+. ", -" .++######.+######@. ", -" .+#######.+######@.. ", -" .+###....@+######@.+ ", -" .+####++++@######@.. ", -" .++########@####@@. ", -" .+#########@###@. ", -" .++###########@@. ", -" .++#########@@. ", -" .++######@@@. ", -" ...@@@@@@@... ", -" ........... ", -" .#++++++++. ", -" ......... ", -" .+@@@@@@. ", -" ......... ", -" .@@@@@@@. ", -" ....... ", -" ", -" "}; diff --git a/samples/listctrl/bitmaps/tooltodo.ico b/samples/listctrl/bitmaps/tooltodo.ico deleted file mode 100644 index c6314c6baf7b058325e4cc51a94baeae43b4abe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmbVKF>b>!3_LXfA|Qi1WsS!^qfg2Y$}Ivqt~pJJ^>rr7osL!35O*$h1|Rdzy*=sP;-l>X=shmyr613f}e$`dH zVZQ!)DS3da5c6dex$}1=kNxC`;&01`y@WSnORR_m;V#I}WyNL-!i_NM|M1qGzf=v~ Mx9U%&`ny&A1G3v5RsaA1 diff --git a/samples/listctrl/bitmaps/tooltodo.xpm b/samples/listctrl/bitmaps/tooltodo.xpm deleted file mode 100644 index 0bc6cc482a..0000000000 --- a/samples/listctrl/bitmaps/tooltodo.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char * tooltodo_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 6 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffff00", -"$ c #ffffff", -/* pixels */ -" @@@@ ", -" @+...@ ", -" @+. @ ", -" @. @. ", -" @. @. ", -".....@......................... ", -".#$#$@.#$#$#$#$#$#$#$#$#$#$#$#.@", -".$#$#@.$#$#$#$@$#$#$#$#$#$#$#$.@", -".#$#$@.#$#$#$#@.$#$#$#$#$#$#$#.@", -".$#$#@.$#$#$#$@.#$#$#$#$#$#$#$.@", -".#$#$@.#$#$#$#@.$#$#$#$#$#$#$#.@", -".$#$#@.$#$#$#$@.#$#$#$#$#$#$#$.@", -".#$#$@.#$#$#$#@.$#$#$#$#$#$#$#.@", -".$#$#@.$#$#$#$@.#$#$#$#$#$#$#$.@", -".#$#$@.#@@@@@@@.@@@@@@@@@@@@@@.@", -".$#$#@.$#$#$#$@.#$#$#$#$#$#$#$.@", -".#$#$@.#$#$#$#@.$#$#$#$#$#$#$#.@", -".$#$#@.$#$#$#$@.#$#$#$#$#$#$#..@", -".#$#$@.#$#$#$#@.$#$#$#$#$#$#$.@@", -".$#$#@.$#$#$#$@.#$#$#$#$#$#$#.@ ", -".#$#$@.#$#$#$#@.$#$#$#$#$#$#..@ ", -".$#$#@.$#$#$#$@.#$#$#$#$#$#..@@ ", -".#$#$@.#@@@@@@@.@@@@@@......@@ ", -".$#$#@.$#$#$#$@.#$#$#..@@@@@@ ", -".#$#$#@#$#$#$@+.$#$#$.@@ ", -".$#$#$#@#$#$@+.$#$#$..@ ", -".#$#$#$#@@@@+.$#$#$..@@ ", -".$#$#$#$#....$#$#$..@@ ", -".#$#$#$#$#$#$#$...@@@ ", -".$#$#$#...#$#$..@@@ ", -".......@@@....@@@ ", -" @@@@@@@ @@@@ "}; diff --git a/samples/listctrl/bitmaps/toolword.ico b/samples/listctrl/bitmaps/toolword.ico deleted file mode 100644 index a1a8838c276178deae7c6d9defd32b2909ace453..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmcIiI}XAy41KMTItCUN1~PJt9)+6_!NqbEM#hc|2=nY#QQRUVBzWnIf3fwN7HGI) zTtjhdfi3NUjATzXSaBy@k`Jo!tW9YrqwP^K<2^$3M0Uh9MxO$Wba diff --git a/samples/listctrl/bitmaps/toolword.xpm b/samples/listctrl/bitmaps/toolword.xpm deleted file mode 100644 index 7c615cdde0..0000000000 --- a/samples/listctrl/bitmaps/toolword.xpm +++ /dev/null @@ -1,41 +0,0 @@ -/* XPM */ -static char * toolword_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 3 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #ffffff", -/* pixels */ -" ", -" ", -" ........ ........ ", -" .++++++. ...........++++++. ", -" .++++++. .++++++++..++++++. ", -" ........ .++++++++......... ", -" .++++++++. ", -" .......... ", -" ", -" ", -" ", -" ..... ", -"...... ......... .+++. .........", -".++++. .+++++++. .+++. .+++++++.", -".++++. .+++++++. .+++. .+++++++.", -".++++. .+++++++. ..... .+++++++.", -"...... ......... .........", -" ", -" ", -" ", -" ", -" .......... ", -" .. .++++++++. ", -" .++. .++++++++. ", -" .++++. .++++++++. ", -" .++++. .......... ", -" ...........+++. ", -" .++++++++. .+. ", -" .++++++++. . ", -" .......... ", -" ", -" "}; diff --git a/samples/listctrl/listtest.cpp b/samples/listctrl/listtest.cpp deleted file mode 100644 index 7e3afcc677..0000000000 --- a/samples/listctrl/listtest.cpp +++ /dev/null @@ -1,477 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.cpp -// Purpose: wxListCtrl sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// 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 - -#ifndef __WXMSW__ -#include "mondrian.xpm" -#endif - -#include "wx/listctrl.h" -#include "listtest.h" - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(LIST_QUIT, MyFrame::OnQuit) - EVT_MENU(LIST_ABOUT, MyFrame::OnAbout) - EVT_MENU(LIST_LIST_VIEW, MyFrame::OnListView) - EVT_MENU(LIST_REPORT_VIEW, MyFrame::OnReportView) - EVT_MENU(LIST_ICON_VIEW, MyFrame::OnIconView) - EVT_MENU(LIST_ICON_TEXT_VIEW, MyFrame::OnIconTextView) - EVT_MENU(LIST_SMALL_ICON_VIEW, MyFrame::OnSmallIconView) - EVT_MENU(LIST_SMALL_ICON_TEXT_VIEW, MyFrame::OnSmallIconTextView) - EVT_MENU(LIST_DESELECT_ALL, MyFrame::OnDeselectAll) - EVT_MENU(LIST_SELECT_ALL, MyFrame::OnSelectAll) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(MyListCtrl, wxListCtrl) - EVT_LIST_BEGIN_DRAG(LIST_CTRL, MyListCtrl::OnBeginDrag) - EVT_LIST_BEGIN_RDRAG(LIST_CTRL, MyListCtrl::OnBeginRDrag) - EVT_LIST_BEGIN_LABEL_EDIT(LIST_CTRL, MyListCtrl::OnBeginLabelEdit) - EVT_LIST_END_LABEL_EDIT(LIST_CTRL, MyListCtrl::OnEndLabelEdit) - EVT_LIST_DELETE_ITEM(LIST_CTRL, MyListCtrl::OnDeleteItem) - EVT_LIST_GET_INFO(LIST_CTRL, MyListCtrl::OnGetInfo) - EVT_LIST_SET_INFO(LIST_CTRL, MyListCtrl::OnSetInfo) - EVT_LIST_ITEM_SELECTED(LIST_CTRL, MyListCtrl::OnSelected) - EVT_LIST_ITEM_DESELECTED(LIST_CTRL, MyListCtrl::OnDeselected) - EVT_LIST_KEY_DOWN(LIST_CTRL, MyListCtrl::OnListKeyDown) - EVT_LIST_ITEM_ACTIVATED(LIST_CTRL, MyListCtrl::OnActivated) -END_EVENT_TABLE() - -IMPLEMENT_APP(MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame *frame = new MyFrame((wxFrame *) NULL, "wxListCtrl Test", 50, 50, 450, 340); - - // This reduces flicker effects - even better would be to define OnEraseBackground - // to do nothing. When the list control's scrollbars are show or hidden, the - // frame is sent a background erase event. - frame->SetBackgroundColour( *wxWHITE ); - - // Give it an icon - frame->SetIcon( wxICON(mondrian) ); - - // Make an image list containing large icons - m_imageListNormal = new wxImageList(32, 32, TRUE); - m_imageListSmall = new wxImageList(16, 16, TRUE); - -#ifdef __WXMSW__ - m_imageListNormal->Add( wxIcon("icon1", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon2", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon3", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon4", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon5", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon6", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon7", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon8", wxBITMAP_TYPE_ICO_RESOURCE) ); - m_imageListNormal->Add( wxIcon("icon9", wxBITMAP_TYPE_ICO_RESOURCE) ); - - m_imageListSmall->Add( wxIcon("iconsmall", wxBITMAP_TYPE_ICO_RESOURCE) ); - -#else - - #include "bitmaps/toolbrai.xpm" - m_imageListNormal->Add( wxIcon( toolbrai_xpm ) ); - #include "bitmaps/toolchar.xpm" - m_imageListNormal->Add( wxIcon( toolchar_xpm ) ); - #include "bitmaps/tooldata.xpm" - m_imageListNormal->Add( wxIcon( tooldata_xpm ) ); - #include "bitmaps/toolnote.xpm" - m_imageListNormal->Add( wxIcon( toolnote_xpm ) ); - #include "bitmaps/tooltodo.xpm" - m_imageListNormal->Add( wxIcon( tooltodo_xpm ) ); - #include "bitmaps/toolchec.xpm" - m_imageListNormal->Add( wxIcon( toolchec_xpm ) ); - #include "bitmaps/toolgame.xpm" - m_imageListNormal->Add( wxIcon( toolgame_xpm ) ); - #include "bitmaps/tooltime.xpm" - m_imageListNormal->Add( wxIcon( tooltime_xpm ) ); - #include "bitmaps/toolword.xpm" - m_imageListNormal->Add( wxIcon( toolword_xpm ) ); - - #include "bitmaps/small1.xpm" - m_imageListSmall->Add( wxIcon( small1_xpm) ); - -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(LIST_LIST_VIEW, "&List view"); - file_menu->Append(LIST_REPORT_VIEW, "&Report view"); - file_menu->Append(LIST_ICON_VIEW, "&Icon view"); - file_menu->Append(LIST_ICON_TEXT_VIEW, "Icon view with &text"); - file_menu->Append(LIST_SMALL_ICON_VIEW, "&Small icon view"); - file_menu->Append(LIST_SMALL_ICON_TEXT_VIEW, "Small icon &view with text"); - file_menu->Append(LIST_DESELECT_ALL, "&Deselect All"); - file_menu->Append(LIST_SELECT_ALL, "S&elect All"); - file_menu->AppendSeparator(); - file_menu->Append(LIST_ABOUT, "&About"); - file_menu->Append(LIST_QUIT, "E&xit"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "&File"); - frame->SetMenuBar(menu_bar); - - // Make a panel with a message - frame->m_listCtrl = new MyListCtrl(frame, LIST_CTRL, wxPoint(0, 0), wxSize(400, 200), - wxLC_LIST|wxSUNKEN_BORDER); -// wxLC_LIST|wxLC_USER_TEXT|wxSUNKEN_BORDER); // wxLC_USER_TEXT requires app to supply all text on demand - frame->m_logWindow = new wxTextCtrl(frame, -1, "", wxPoint(0, 0), wxSize(400, 200), wxTE_MULTILINE|wxSUNKEN_BORDER); - - wxLayoutConstraints *c = new wxLayoutConstraints; - c->top.SameAs (frame, wxTop); - c->left.SameAs (frame, wxLeft); - c->right.SameAs (frame, wxRight); - c->height.PercentOf (frame, wxHeight, 66); - frame->m_listCtrl->SetConstraints(c); - - c = new wxLayoutConstraints; - c->top.Below (frame->m_listCtrl); - c->left.SameAs (frame, wxLeft); - c->right.SameAs (frame, wxRight); - c->bottom.SameAs (frame, wxBottom); - frame->m_logWindow->SetConstraints(c); - frame->SetAutoLayout(TRUE); - - for ( int i=0; i < 30; i++) - { - wxChar buf[20]; - wxSprintf(buf, _T("Item %d"), i); - frame->m_listCtrl->InsertItem(i, buf); - } - - frame->CreateStatusBar(3); - frame->SetStatusText("", 0); - - // Show the frame - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h): - wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - m_listCtrl = (MyListCtrl *) NULL; - m_logWindow = (wxTextCtrl *) NULL; -} - -MyFrame::~MyFrame(void) -{ - delete wxGetApp().m_imageListNormal; - delete wxGetApp().m_imageListSmall; -} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageDialog dialog(this, "List test sample\nJulian Smart (c) 1997", - "About list test", wxOK|wxCANCEL); - - dialog.ShowModal(); -} - -void MyFrame::OnDeselectAll(wxCommandEvent& WXUNUSED(event)) -{ - int n = m_listCtrl->GetItemCount(); - int i; - for(i = 0; i < n; i++) - m_listCtrl->SetItemState(i,0,wxLIST_STATE_SELECTED); -} - -void MyFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event)) -{ - int n = m_listCtrl->GetItemCount(); - int i; - for(i = 0; i < n; i++) - m_listCtrl->SetItemState(i,wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); -} - -void MyFrame::OnListView(wxCommandEvent& WXUNUSED(event)) -{ - m_listCtrl->DeleteAllItems(); - m_logWindow->Clear(); - m_listCtrl->SetSingleStyle(wxLC_LIST); - m_listCtrl->SetImageList((wxImageList *) NULL, wxIMAGE_LIST_NORMAL); - m_listCtrl->SetImageList((wxImageList *) NULL, wxIMAGE_LIST_SMALL); - - for ( int i=0; i < 30; i++) - { - wxChar buf[20]; - wxSprintf(buf, _T("Item %d"), i); - m_listCtrl->InsertItem(i, buf); - } -} - -void MyFrame::OnReportView(wxCommandEvent& WXUNUSED(event)) -{ - m_listCtrl->DeleteAllItems(); - m_logWindow->Clear(); - m_listCtrl->SetSingleStyle(wxLC_REPORT); - m_listCtrl->SetImageList((wxImageList *) NULL, wxIMAGE_LIST_NORMAL); - m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL); - - m_listCtrl->InsertColumn(0, "Column 1", wxLIST_FORMAT_LEFT, 140); - m_listCtrl->InsertColumn(1, "Column 2", wxLIST_FORMAT_LEFT, 140); - - for ( int i=0; i < 30; i++) - { - wxChar buf[50]; - wxSprintf(buf, _T("Item %d, col 1"), i); - long tmp = m_listCtrl->InsertItem(i, buf, 0); - - wxSprintf(buf, _T("Item %d, broad column 2"), i); - tmp = m_listCtrl->SetItem(i, 1, buf); - } -} - -void MyFrame::OnIconView(wxCommandEvent& WXUNUSED(event)) -{ - m_listCtrl->DeleteAllItems(); - m_logWindow->Clear(); - m_listCtrl->SetSingleStyle(wxLC_ICON); - m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL); - m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL); - - for ( int i=0; i < 9; i++) - { - m_listCtrl->InsertItem(i, i); - } -} - -void MyFrame::OnIconTextView(wxCommandEvent& WXUNUSED(event)) -{ - m_listCtrl->DeleteAllItems(); - m_logWindow->Clear(); - m_listCtrl->SetSingleStyle(wxLC_ICON); - m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL); - m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL); - - for ( int i=0; i < 9; i++) - { - wxChar buf[20]; - wxSprintf(buf, _T("Label %d"), i); - m_listCtrl->InsertItem(i, buf, i); - } -} - -void MyFrame::OnSmallIconView(wxCommandEvent& WXUNUSED(event)) -{ - m_listCtrl->DeleteAllItems(); - m_logWindow->Clear(); - m_listCtrl->SetSingleStyle(wxLC_SMALL_ICON); - m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL); - m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL); - - for ( int i=0; i < 9; i++) - { - m_listCtrl->InsertItem(i, 0); - } -} - -void MyFrame::OnSmallIconTextView(wxCommandEvent& WXUNUSED(event)) -{ - m_listCtrl->DeleteAllItems(); - m_logWindow->Clear(); - m_listCtrl->SetSingleStyle(wxLC_SMALL_ICON); - m_listCtrl->SetImageList(wxGetApp().m_imageListNormal, wxIMAGE_LIST_NORMAL); - m_listCtrl->SetImageList(wxGetApp().m_imageListSmall, wxIMAGE_LIST_SMALL); - - for ( int i=0; i < 9; i++) - { - m_listCtrl->InsertItem(i, "Label", 0); - } -} - -// MyListCtrl - -void MyListCtrl::OnBeginDrag(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnBeginDrag\n"); -} - -void MyListCtrl::OnBeginRDrag(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - text->WriteText("OnBeginRDrag\n"); -} - -void MyListCtrl::OnBeginLabelEdit(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnBeginLabelEdit\n"); -} - -void MyListCtrl::OnEndLabelEdit(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnEndLabelEdit\n"); -} - -void MyListCtrl::OnDeleteItem(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnDeleteItem\n"); -} - -void MyListCtrl::OnGetInfo(wxListEvent& /*event*/) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnGetInfo\n"); - -/* - ostream str(text); - - str << "OnGetInfo (" << event.m_item.m_itemId << ", " << event.m_item.m_col << ")"; - if ( event.m_item.m_mask & wxLIST_MASK_STATE ) - str << " wxLIST_MASK_STATE"; - if ( event.m_item.m_mask & wxLIST_MASK_TEXT ) - str << " wxLIST_MASK_TEXT"; - if ( event.m_item.m_mask & wxLIST_MASK_IMAGE ) - str << " wxLIST_MASK_IMAGE"; - if ( event.m_item.m_mask & wxLIST_MASK_DATA ) - str << " wxLIST_MASK_DATA"; - if ( event.m_item.m_mask & wxLIST_SET_ITEM ) - str << " wxLIST_SET_ITEM"; - if ( event.m_item.m_mask & wxLIST_MASK_WIDTH ) - str << " wxLIST_MASK_WIDTH"; - if ( event.m_item.m_mask & wxLIST_MASK_FORMAT ) - str << " wxLIST_MASK_WIDTH"; - - if ( event.m_item.m_mask & wxLIST_MASK_TEXT ) - { - event.m_item.m_text = "My callback text"; - } - str << "\n"; - str.flush(); -*/ -} - -void MyListCtrl::OnSetInfo(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnSetInfo\n"); -} - -void MyListCtrl::OnSelected(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnSelected\n"); -} - -void MyListCtrl::OnDeselected(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnDeselected\n"); -} - -void MyListCtrl::OnActivated(wxListEvent& WXUNUSED(event)) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnActivated\n"); -} - -void MyListCtrl::OnListKeyDown(wxListEvent& event) -{ - if ( !wxGetApp().GetTopWindow() ) - return; - - wxTextCtrl *text = ((MyFrame *)wxGetApp().GetTopWindow())->m_logWindow; - if ( !text ) - return; - - text->WriteText("OnListKeyDown\n"); -} - - diff --git a/samples/listctrl/listtest.def b/samples/listctrl/listtest.def deleted file mode 100644 index 2559d6f1bc..0000000000 --- a/samples/listctrl/listtest.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME ListCtrl -DESCRIPTION 'ListCtrl wxWindows application' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/listctrl/listtest.h b/samples/listctrl/listtest.h deleted file mode 100644 index 942ddadfc0..0000000000 --- a/samples/listctrl/listtest.h +++ /dev/null @@ -1,86 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.h -// Purpose: wxListCtrl sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); - - wxImageList *m_imageListNormal; - wxImageList *m_imageListSmall; -}; - -class MyListCtrl: public wxListCtrl -{ -public: - MyListCtrl(wxWindow *parent, const wxWindowID id, const wxPoint& pos, - const wxSize& size, long style): - wxListCtrl(parent, id, pos, size, style) - { - } - - void OnBeginDrag(wxListEvent& event); - void OnBeginRDrag(wxListEvent& event); - void OnBeginLabelEdit(wxListEvent& event); - void OnEndLabelEdit(wxListEvent& event); - void OnDeleteItem(wxListEvent& event); - void OnGetInfo(wxListEvent& event); - void OnSetInfo(wxListEvent& event); - void OnSelected(wxListEvent& event); - void OnDeselected(wxListEvent& event); - void OnListKeyDown(wxListEvent& event); - void OnActivated(wxListEvent& event); - - void OnChar(wxKeyEvent& event); - - DECLARE_EVENT_TABLE() -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ public: - MyListCtrl *m_listCtrl; - wxTextCtrl *m_logWindow; - - MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - ~MyFrame(void); - - public: - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnListView(wxCommandEvent& event); - void OnReportView(wxCommandEvent& event); - void OnIconView(wxCommandEvent& event); - void OnIconTextView(wxCommandEvent& event); - void OnSmallIconView(wxCommandEvent& event); - void OnSmallIconTextView(wxCommandEvent& event); - void OnDeselectAll(wxCommandEvent& event); - void OnSelectAll(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - - -// ID for the menu quit command -#define LIST_QUIT 1 -#define LIST_LIST_VIEW 2 -#define LIST_ICON_VIEW 3 -#define LIST_ICON_TEXT_VIEW 4 -#define LIST_SMALL_ICON_VIEW 5 -#define LIST_SMALL_ICON_TEXT_VIEW 6 -#define LIST_REPORT_VIEW 7 -#define LIST_DESELECT_ALL 8 -#define LIST_SELECT_ALL 9 -#define LIST_ABOUT 102 - -#define LIST_CTRL 1000 - - diff --git a/samples/listctrl/listtest.rc b/samples/listctrl/listtest.rc deleted file mode 100644 index d40633cba9..0000000000 --- a/samples/listctrl/listtest.rc +++ /dev/null @@ -1,16 +0,0 @@ -aaaa ICON "mondrian.ico" -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - -icon1 ICON "bitmaps\\toolbrai.ico" -icon2 ICON "bitmaps\\toolchar.ico" -icon3 ICON "bitmaps\\toolchec.ico" -icon4 ICON "bitmaps\\tooldata.ico" -icon5 ICON "bitmaps\\toolgame.ico" -icon6 ICON "bitmaps\\toolnote.ico" -icon7 ICON "bitmaps\\tooltime.ico" -icon8 ICON "bitmaps\\tooltodo.ico" -icon9 ICON "bitmaps\\toolword.ico" - -iconsmall ICON "bitmaps\\small1.ico" - diff --git a/samples/listctrl/makefile.b32 b/samples/listctrl/makefile.b32 deleted file mode 100644 index f2460bdb6c..0000000000 --- a/samples/listctrl/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=listtest -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/listctrl/makefile.bcc b/samples/listctrl/makefile.bcc deleted file mode 100644 index 85fa0c0573..0000000000 --- a/samples/listctrl/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=listtest -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/listctrl/makefile.dos b/samples/listctrl/makefile.dos deleted file mode 100644 index ed9ccc0bed..0000000000 --- a/samples/listctrl/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=listtest -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/listctrl/makefile.g95 b/samples/listctrl/makefile.g95 deleted file mode 100644 index 248951e95a..0000000000 --- a/samples/listctrl/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=listtest -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/listctrl/makefile.unx b/samples/listctrl/makefile.unx deleted file mode 100644 index a94e6cb31d..0000000000 --- a/samples/listctrl/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for listctrl example (UNIX). - -PROGRAM=listtest - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/listctrl/makefile.vc b/samples/listctrl/makefile.vc deleted file mode 100644 index ae556a5be7..0000000000 --- a/samples/listctrl/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=listtest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/listctrl/makefile.wat b/samples/listctrl/makefile.wat deleted file mode 100644 index 8edb3a5682..0000000000 --- a/samples/listctrl/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = listtest -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/listctrl/mondrian.ico b/samples/listctrl/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** NICHT BEARBEITEN ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=test - Win32 Release -!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit\ - NMAKE -!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den\ - Befehl -!MESSAGE -!MESSAGE NMAKE /f "test.mak". -!MESSAGE -!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben -!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: -!MESSAGE -!MESSAGE NMAKE /f "test.mak" CFG="test - Win32 Release" -!MESSAGE -!MESSAGE Für die Konfiguration stehen zur Auswahl: -!MESSAGE -!MESSAGE "test - Win32 Release" (basierend auf "Win32 (x86) Application") -!MESSAGE "test - Win32 Debug" (basierend auf "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir ".\Release" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /I "funcs" /I "santis2" /I "funcdefs" /I "tnt" /D "__WIN32__" /D "__WXMSW__" /D "__WIN95__" /D "STRICT" /D "__WINDOWS__" /YX /FD /D /c -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /i "..\..\include" /d "__WXMSW__" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ..\..\release\wxwin.lib ctl3d32.lib /nologo /subsystem:windows /machine:I386 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir ".\Debug" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /W3 /GX /Z7 /Od /I "..\..\include" /I "funcs" /I "santis2" /I "funcdefs" /I "tnt" /D "__WIN32__" /D "__WXMSW__" /D "__WIN95__" /D DEBUG=2 /D "STRICT" /D "__WINDOWS__" /YX /FD /D /c -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /i "..\..\include" /d "__WXMSW__" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ..\..\debug\wxwin.lib ctl3d32.lib /nologo /subsystem:windows /debug /machine:I386 -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "test - Win32 Release" -# Name "test - Win32 Debug" -# Begin Group "Quellcodedateien" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=.\listtest.cpp -# End Source File -# End Group -# Begin Group "Header-Dateien" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=.\listtest.h -# End Source File -# End Group -# Begin Group "Ressourcendateien" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\listtest.rc -# End Source File -# End Group -# End Target -# End Project diff --git a/samples/listctrl/test.dsw b/samples/listctrl/test.dsw deleted file mode 100644 index 1fe8c87bde..0000000000 --- a/samples/listctrl/test.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! - -############################################################################### - -Project: "test"=.\santis.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/samples/makefile.b32 b/samples/makefile.b32 deleted file mode 100644 index 0c81281ef5..0000000000 --- a/samples/makefile.b32 +++ /dev/null @@ -1,159 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds samples for Win95, BC++ WIN32 -# Use FINAL=1 argument to make to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -THISDIR=$(WXDIR)\samples - -all: - cd $(WXDIR)\samples\splitter - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\resource - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\controls - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\listctrl - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\treectrl - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\validate - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\mdi - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\minimal - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\layout - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\printing - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\toolbar - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\dialogs - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\docview - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\docvwmdi - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\controls - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\nativdlg - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\grid - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\internat - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\dnd - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\joytest - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\taskbar - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\sashtest - make -f makefile.b32 FINAL=$(FINAL) -!if "$(FINAL)" == "0" - cd $(WXDIR)\samples\memcheck -!endif - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\ownerdrw - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\checklst - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\minifram - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\bombs - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\fractal - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\wxpoem - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\typetest - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\proplist - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\image - make -f makefile.b32 FINAL=$(FINAL) - cd $(WXDIR)\samples\dde - make -f makefile.b32 FINAL=$(FINAL) -# cd $(WXDIR)\samples\regtest -# make -f makefile.b32 FINAL=$(FINAL) - -clean: - cd $(WXDIR)\samples\splitter - make -f makefile.b32 clean - cd $(WXDIR)\samples\mdi - make -f makefile.b32 clean - cd $(WXDIR)\samples\minimal - make -f makefile.b32 clean - cd $(WXDIR)\samples\layout - make -f makefile.b32 clean - cd $(WXDIR)\samples\printing - make -f makefile.b32 clean - cd $(WXDIR)\samples\toolbar - make -f makefile.b32 clean - cd $(WXDIR)\samples\dialogs - make -f makefile.b32 clean - cd $(WXDIR)\samples\resource - make -f makefile.b32 clean - cd $(WXDIR)\samples\listctrl - make -f makefile.b32 clean - cd $(WXDIR)\samples\treectrl - make -f makefile.b32 clean - cd $(WXDIR)\samples\validate - make -f makefile.b32 clean - cd $(WXDIR)\samples\docview - make -f makefile.b32 clean - cd $(WXDIR)\samples\docvwmdi - make -f makefile.b32 clean - cd $(WXDIR)\samples\controls - make -f makefile.b32 clean - cd $(WXDIR)\samples\nativdlg - make -f makefile.b32 clean - cd $(WXDIR)\samples\grid - make -f makefile.b32 clean - cd $(WXDIR)\samples\internat - make -f makefile.b32 clean - cd $(WXDIR)\samples\checklst - make -f makefile.b32 clean - cd $(WXDIR)\samples\ownerdrw - make -f makefile.b32 clean - cd $(WXDIR)\samples\dnd - make -f makefile.b32 clean - cd $(WXDIR)\samples\joytest - make -f makefile.b32 clean - cd $(WXDIR)\samples\regtest - make -f makefile.b32 clean - cd $(WXDIR)\samples\taskbar - make -f makefile.b32 clean - cd $(WXDIR)\samples\sashtest - make -f makefile.b32 clean - cd $(WXDIR)\samples\memcheck - make -f makefile.b32 clean - cd $(WXDIR)\samples\minifram - make -f makefile.b32 clean - cd $(WXDIR)\samples\bombs - make -f makefile.b32 clean - cd $(WXDIR)\samples\fractal - make -f makefile.b32 clean - cd $(WXDIR)\samples\wxpoem - make -f makefile.b32 clean - cd $(WXDIR)\samples\typetest - make -f makefile.b32 clean - cd $(WXDIR)\samples\proplist - make -f makefile.b32 clean - cd $(WXDIR)\samples\image - make -f makefile.b32 clean - cd $(WXDIR)\samples\dde - make -f makefile.b32 clean - cd $(WXDIR)\samples - diff --git a/samples/makefile.dos b/samples/makefile.dos deleted file mode 100644 index 4feacd5d06..0000000000 --- a/samples/makefile.dos +++ /dev/null @@ -1,160 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds samples for Win95, MSVC++ 16-bit -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -THISDIR=$(WXDIR)\samples - -!include $(WXDIR)\src\makemsc.env - -all: - cd $(WXDIR)\samples\splitter - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\resource - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\controls - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\listctrl - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\treectrl - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\validate - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\mdi - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\minimal - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\layout - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\printing - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\toolbar - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\dialogs - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\docview - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\docvwmdi - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\controls - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\nativdlg - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\grid - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\internat - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\dnd - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\joytest - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\taskbar - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\sashtest - nmake -f makefile.dos FINAL=$(FINAL) -!if "$(FINAL)" == "0" - cd $(WXDIR)\samples\memcheck -!endif - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\ownerdrw - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\checklst - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\minifram - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\bombs - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\fractal - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\wxpoem - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\typetest - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\proplist - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\image - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\samples\dde - nmake -f makefile.dos FINAL=$(FINAL) -# cd $(WXDIR)\samples\regtest -# nmake -f makefile.dos FINAL=$(FINAL) - -clean: - cd $(WXDIR)\samples\splitter - nmake -f makefile.dos clean - cd $(WXDIR)\samples\mdi - nmake -f makefile.dos clean - cd $(WXDIR)\samples\minimal - nmake -f makefile.dos clean - cd $(WXDIR)\samples\layout - nmake -f makefile.dos clean - cd $(WXDIR)\samples\printing - nmake -f makefile.dos clean - cd $(WXDIR)\samples\toolbar - nmake -f makefile.dos clean - cd $(WXDIR)\samples\dialogs - nmake -f makefile.dos clean - cd $(WXDIR)\samples\resource - nmake -f makefile.dos clean - cd $(WXDIR)\samples\listctrl - nmake -f makefile.dos clean - cd $(WXDIR)\samples\treectrl - nmake -f makefile.dos clean - cd $(WXDIR)\samples\validate - nmake -f makefile.dos clean - cd $(WXDIR)\samples\docview - nmake -f makefile.dos clean - cd $(WXDIR)\samples\docvwmdi - nmake -f makefile.dos clean - cd $(WXDIR)\samples\controls - nmake -f makefile.dos clean - cd $(WXDIR)\samples\nativdlg - nmake -f makefile.dos clean - cd $(WXDIR)\samples\grid - nmake -f makefile.dos clean - cd $(WXDIR)\samples\internat - nmake -f makefile.dos clean - cd $(WXDIR)\samples\checklst - nmake -f makefile.dos clean - cd $(WXDIR)\samples\ownerdrw - nmake -f makefile.dos clean - cd $(WXDIR)\samples\dnd - nmake -f makefile.dos clean - cd $(WXDIR)\samples\joytest - nmake -f makefile.dos clean - cd $(WXDIR)\samples\regtest - nmake -f makefile.dos clean - cd $(WXDIR)\samples\taskbar - nmake -f makefile.dos clean - cd $(WXDIR)\samples\sashtest - nmake -f makefile.dos clean - cd $(WXDIR)\samples\memcheck - nmake -f makefile.dos clean - cd $(WXDIR)\samples\minifram - nmake -f makefile.dos clean - cd $(WXDIR)\samples\bombs - nmake -f makefile.dos clean - cd $(WXDIR)\samples\fractal - nmake -f makefile.dos clean - cd $(WXDIR)\samples\wxpoem - nmake -f makefile.dos clean - cd $(WXDIR)\samples\typetest - nmake -f makefile.dos clean - cd $(WXDIR)\samples\proplist - nmake -f makefile.dos clean - cd $(WXDIR)\samples\image - nmake -f makefile.dos clean - cd $(WXDIR)\samples\dde - nmake -f makefile.dos clean - diff --git a/samples/makefile.g95 b/samples/makefile.g95 deleted file mode 100644 index 0a5c2c4cc3..0000000000 --- a/samples/makefile.g95 +++ /dev/null @@ -1,94 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds samples for Win95, Cygwin -# info - -# Set WXDIR for your system -# SHELL=cmd.exe -WXDIR = .. - -THISDIR=$(WXDIR)/samples - -all: - cd $(WXDIR)/samples/bombs; make -f makefile.g95 - cd $(WXDIR)/samples/fractal; make -f makefile.g95 - cd $(WXDIR)/samples/splitter; make -f makefile.g95 - cd $(WXDIR)/samples/resource; make -f makefile.g95 - cd $(WXDIR)/samples/controls; make -f makefile.g95 - cd $(WXDIR)/samples/listctrl; make -f makefile.g95 - cd $(WXDIR)/samples/treectrl; make -f makefile.g95 - cd $(WXDIR)/samples/validate; make -f makefile.g95 - cd $(WXDIR)/samples/mdi; make -f makefile.g95 - cd $(WXDIR)/samples/minimal; make -f makefile.g95 - cd $(WXDIR)/samples/layout; make -f makefile.g95 - cd $(WXDIR)/samples/printing; make -f makefile.g95 - cd $(WXDIR)/samples/proplist; make -f makefile.g95 - cd $(WXDIR)/samples/toolbar; make -f makefile.g95 - cd $(WXDIR)/samples/dialogs; make -f makefile.g95 - cd $(WXDIR)/samples/docview; make -f makefile.g95 - cd $(WXDIR)/samples/docvwmdi; make -f makefile.g95 - cd $(WXDIR)/samples/sashtest; make -f makefile.g95 - cd $(WXDIR)/samples/controls; make -f makefile.g95 - cd $(WXDIR)/samples/nativdlg; make -f makefile.g95 - cd $(WXDIR)/samples/grid; make -f makefile.g95 - cd $(WXDIR)/samples/internat; make -f makefile.g95 - cd $(WXDIR)/samples/checklst; make -f makefile.g95 - cd $(WXDIR)/samples/ownerdrw; make -f makefile.g95 - cd $(WXDIR)/samples/joytest; make -f makefile.g95 - cd $(WXDIR)/samples/memcheck; make -f makefile.g95 - cd $(WXDIR)/samples/image; make -f makefile.g95 - cd $(WXDIR)/samples/wxpoem; make -f makefile.g95 - cd $(WXDIR)/samples/notebook; make -f makefile.g95 - cd $(WXDIR)/samples/thread; make -f makefile.g95 - cd $(WXDIR)/samples/minifram; make -f makefile.g95 - cd $(WXDIR)/samples/forty; make -f makefile.g95 - cd $(WXDIR)/samples/dde; make -f client.g95 - cd $(WXDIR)/samples/dde; make -f server.g95 -# cd $(WXDIR)/samples/dnd; make -f makefile.g95 -# cd $(WXDIR)/samples/regtest; make -f makefile.g95 - -clean: - cd $(WXDIR)/samples/bombs; make -f makefile.g95 clean - cd $(WXDIR)/samples/fractal; make -f makefile.g95 clean - cd $(WXDIR)/samples/splitter; make -f makefile.g95 clean - cd $(WXDIR)/samples/mdi; make -f makefile.g95 clean - cd $(WXDIR)/samples/minimal; make -f makefile.g95 clean - cd $(WXDIR)/samples/layout; make -f makefile.g95 clean - cd $(WXDIR)/samples/printing; make -f makefile.g95 clean - cd $(WXDIR)/samples/proplist; make -f makefile.g95 clean - cd $(WXDIR)/samples/toolbar; make -f makefile.g95 clean - cd $(WXDIR)/samples/dialogs; make -f makefile.g95 clean - cd $(WXDIR)/samples/resource; make -f makefile.g95 clean - cd $(WXDIR)/samples/listctrl; make -f makefile.g95 clean - cd $(WXDIR)/samples/treectrl; make -f makefile.g95 clean - cd $(WXDIR)/samples/validate; make -f makefile.g95 clean - cd $(WXDIR)/samples/docview; make -f makefile.g95 clean - cd $(WXDIR)/samples/docvwmdi; make -f makefile.g95 clean - cd $(WXDIR)/samples/sashtest; make -f makefile.g95 clean - cd $(WXDIR)/samples/controls; make -f makefile.g95 clean - cd $(WXDIR)/samples/nativdlg; make -f makefile.g95 clean - cd $(WXDIR)/samples/grid; make -f makefile.g95 clean - cd $(WXDIR)/samples/internat; make -f makefile.g95 clean - cd $(WXDIR)/samples/checklst; make -f makefile.g95 clean - cd $(WXDIR)/samples/ownerdrw; make -f makefile.g95 clean - cd $(WXDIR)/samples/regtest; make -f makefile.g95 clean - cd $(WXDIR)/samples/joytest; make -f makefile.g95 clean - cd $(WXDIR)/samples/memcheck; make -f makefile.g95 clean - cd $(WXDIR)/samples/image; make -f makefile.g95 clean - cd $(WXDIR)/samples/wxpoem; make -f makefile.g95 clean - cd $(WXDIR)/samples/notebook; make -f makefile.g95 clean - cd $(WXDIR)/samples/thread; make -f makefile.g95 clean - cd $(WXDIR)/samples/minifram; make -f makefile.g95 clean - cd $(WXDIR)/samples/forty; make -f makefile.g95 clean - cd $(WXDIR)/samples/dnd; make -f makefile.g95 clean - cd $(WXDIR)/samples/dde; make -f client.g95 clean - cd $(WXDIR)/samples/dde; make -f server.g95 clean - - diff --git a/samples/makefile.unx b/samples/makefile.unx deleted file mode 100644 index 9ceed0d702..0000000000 --- a/samples/makefile.unx +++ /dev/null @@ -1,82 +0,0 @@ -# -# Makefile : Builds wxWindows utils for Unix. - -# Replace this with your own path if necessary -WXDIR = .. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/make.env - -TARGET=motif - -# Change these if needed. - -THISDIR = $(WXDIR)/samples - -all: - cd bombs; $(MAKE) -f makefile.unx $(TARGET) - cd config; $(MAKE) -f makefile.unx $(TARGET) - cd controls; $(MAKE) -f makefile.unx $(TARGET) - cd dialogs; $(MAKE) -f makefile.unx $(TARGET) - cd docview; $(MAKE) -f makefile.unx $(TARGET) - cd docvwmdi; $(MAKE) -f makefile.unx $(TARGET) - cd dynamic; $(MAKE) -f makefile.unx $(TARGET) - cd fractal; $(MAKE) -f makefile.unx $(TARGET) - cd grid; $(MAKE) -f makefile.unx $(TARGET) - cd help; $(MAKE) -f makefile.unx $(TARGET) - cd image; $(MAKE) -f makefile.unx $(TARGET) - cd internat; $(MAKE) -f makefile.unx $(TARGET) - cd layout; $(MAKE) -f makefile.unx $(TARGET) - cd memcheck; $(MAKE) -f makefile.unx $(TARGET) - cd minifram; $(MAKE) -f makefile.unx $(TARGET) - cd minimal; $(MAKE) -f makefile.unx $(TARGET) - cd notebook; $(MAKE) -f makefile.unx $(TARGET) - cd printing; $(MAKE) -f makefile.unx $(TARGET) - cd proplist; $(MAKE) -f makefile.unx $(TARGET) - cd resource; $(MAKE) -f makefile.unx $(TARGET) - cd sashtest; $(MAKE) -f makefile.unx $(TARGET) - cd splitter; $(MAKE) -f makefile.unx $(TARGET) - cd tab; $(MAKE) -f makefile.unx $(TARGET) - cd toolbar; $(MAKE) -f makefile.unx $(TARGET) - cd typetest; $(MAKE) -f makefile.unx $(TARGET) - cd validate; $(MAKE) -f makefile.unx $(TARGET) - cd treectrl; $(MAKE) -f makefile.unx $(TARGET) - cd wxpoem; $(MAKE) -f makefile.unx $(TARGET) - cd dnd; $(MAKE) -f makefile.unx $(TARGET) - cd thread; $(MAKE) -f makefile.unx $(TARGET) - -clean: - cd bombs; $(MAKE) -f makefile.unx clean$(TARGET) - cd config; $(MAKE) -f makefile.unx clean$(TARGET) - cd controls; $(MAKE) -f makefile.unx clean$(TARGET) - cd dialogs; $(MAKE) -f makefile.unx clean$(TARGET) - cd docview; $(MAKE) -f makefile.unx clean$(TARGET) - cd docvwmdi; $(MAKE) -f makefile.unx clean$(TARGET) - cd dynamic; $(MAKE) -f makefile.unx clean$(TARGET) - cd fractal; $(MAKE) -f makefile.unx clean$(TARGET) - cd grid; $(MAKE) -f makefile.unx clean$(TARGET) - cd help; $(MAKE) -f makefile.unx clean$(TARGET) - cd image; $(MAKE) -f makefile.unx clean$(TARGET) - cd internat; $(MAKE) -f makefile.unx clean$(TARGET) - cd layout; $(MAKE) -f makefile.unx clean$(TARGET) - cd memcheck; $(MAKE) -f makefile.unx clean$(TARGET) - cd minifram; $(MAKE) -f makefile.unx clean$(TARGET) - cd minimal; $(MAKE) -f makefile.unx clean$(TARGET) - cd notebook; $(MAKE) -f makefile.unx clean$(TARGET) - cd printing; $(MAKE) -f makefile.unx clean$(TARGET) - cd proplist; $(MAKE) -f makefile.unx clean$(TARGET) - cd resource; $(MAKE) -f makefile.unx clean$(TARGET) - cd sashtest; $(MAKE) -f makefile.unx clean$(TARGET) - cd splitter; $(MAKE) -f makefile.unx clean$(TARGET) - cd tab; $(MAKE) -f makefile.unx clean$(TARGET) - cd toolbar; $(MAKE) -f makefile.unx clean$(TARGET) - cd typetest; $(MAKE) -f makefile.unx clean$(TARGET) - cd validate; $(MAKE) -f makefile.unx clean$(TARGET) - cd treectrl; $(MAKE) -f makefile.unx clean$(TARGET) - cd wxpoem; $(MAKE) -f makefile.unx clean$(TARGET) - cd dnd; $(MAKE) -f makefile.unx clean$(TARGET) - cd thread; $(MAKE) -f makefile.unx clean$(TARGET) - -cleanmotif: clean -motif: all diff --git a/samples/makefile.vc b/samples/makefile.vc deleted file mode 100644 index 2eb883cff6..0000000000 --- a/samples/makefile.vc +++ /dev/null @@ -1,178 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds samples for Win95, MSVC++ 4.0 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -THISDIR=$(WXDIR)\samples - -!include $(WXDIR)\src\makevc.env - -DEBUG_FLAGS="/Zi /FR" -LINK_DEBUG_FLAGS="/RELEASE" - -all: - cd $(WXDIR)\samples\splitter - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\resource - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\controls - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\listctrl - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\treectrl - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\validate - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\mdi - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\minimal - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\layout - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\printing - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\toolbar - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\dialogs - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\docview - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\docvwmdi - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\controls - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\nativdlg - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\grid - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\internat - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\dnd - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\joytest - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\taskbar - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\sashtest - nmake -f makefile.vc FINAL=$(FINAL) -!if "$(FINAL)" == "0" - cd $(WXDIR)\samples\memcheck -!endif - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\ownerdrw - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\checklst - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\minifram - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\bombs - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\fractal - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\wxpoem - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\typetest - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\proplist - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\image - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\dde - nmake -f client.vc FINAL=$(FINAL) - nmake -f server.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\caret - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\drawing - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\samples\scroll - nmake -f makefile.vc FINAL=$(FINAL) -# cd $(WXDIR)\samples\regtest -# nmake -f makefile.vc FINAL=$(FINAL) - -clean: - cd $(WXDIR)\samples\splitter - nmake -f makefile.vc clean - cd $(WXDIR)\samples\mdi - nmake -f makefile.vc clean - cd $(WXDIR)\samples\minimal - nmake -f makefile.vc clean - cd $(WXDIR)\samples\layout - nmake -f makefile.vc clean - cd $(WXDIR)\samples\printing - nmake -f makefile.vc clean - cd $(WXDIR)\samples\toolbar - nmake -f makefile.vc clean - cd $(WXDIR)\samples\dialogs - nmake -f makefile.vc clean - cd $(WXDIR)\samples\resource - nmake -f makefile.vc clean - cd $(WXDIR)\samples\listctrl - nmake -f makefile.vc clean - cd $(WXDIR)\samples\treectrl - nmake -f makefile.vc clean - cd $(WXDIR)\samples\validate - nmake -f makefile.vc clean - cd $(WXDIR)\samples\docview - nmake -f makefile.vc clean - cd $(WXDIR)\samples\docvwmdi - nmake -f makefile.vc clean - cd $(WXDIR)\samples\controls - nmake -f makefile.vc clean - cd $(WXDIR)\samples\nativdlg - nmake -f makefile.vc clean - cd $(WXDIR)\samples\grid - nmake -f makefile.vc clean - cd $(WXDIR)\samples\internat - nmake -f makefile.vc clean - cd $(WXDIR)\samples\checklst - nmake -f makefile.vc clean - cd $(WXDIR)\samples\ownerdrw - nmake -f makefile.vc clean - cd $(WXDIR)\samples\dnd - nmake -f makefile.vc clean - cd $(WXDIR)\samples\joytest - nmake -f makefile.vc clean - cd $(WXDIR)\samples\regtest - nmake -f makefile.vc clean - cd $(WXDIR)\samples\taskbar - nmake -f makefile.vc clean - cd $(WXDIR)\samples\sashtest - nmake -f makefile.vc clean - cd $(WXDIR)\samples\memcheck - nmake -f makefile.vc clean - cd $(WXDIR)\samples\minifram - nmake -f makefile.vc clean - cd $(WXDIR)\samples\bombs - nmake -f makefile.vc clean - cd $(WXDIR)\samples\fractal - nmake -f makefile.vc clean - cd $(WXDIR)\samples\wxpoem - nmake -f makefile.vc clean - cd $(WXDIR)\samples\typetest - nmake -f makefile.vc clean - cd $(WXDIR)\samples\proplist - nmake -f makefile.vc clean - cd $(WXDIR)\samples\image - nmake -f makefile.vc clean - cd $(WXDIR)\samples\dde - nmake -f client.vc clean - nmake -f server.vc clean - cd $(WXDIR)\samples\caret - nmake -f makefile.vc clean - cd $(WXDIR)\samples\drawing - nmake -f makefile.vc clean - cd $(WXDIR)\samples\scroll - nmake -f makefile.vc clean - cd $(WXDIR)\samples - diff --git a/samples/mdi/.cvsignore b/samples/mdi/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/mdi/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/mdi/Makefile.am b/samples/mdi/Makefile.am deleted file mode 100644 index 7b37310afc..0000000000 --- a/samples/mdi/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = mdi - -mdi_SOURCES = mdi.cpp diff --git a/samples/mdi/bitmaps/bitmap1.bmp b/samples/mdi/bitmaps/bitmap1.bmp deleted file mode 100644 index 13e2170b7369879a97bdd01c57b42af6f4126264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZup$qj%o3^Ni^o-hV;@Mo922+wZTPQ(hutwBPF)JM*)+X=-^TgaK5$N?i2IJ*8x z1_Y+Pr$L8wG(}1gYeu+p9^X1)J~P=@jSHSMY)3;sNkY2 zEPWRLqal$RV;7jK=A7!i)5w*|^bK%qLGNEQTGkCeTtf<*)|jz0bZVCKqs&^|_qZ0` QxOhk{d)WGeIhJR90ll(R-T(jq diff --git a/samples/mdi/bitmaps/calc.bmp b/samples/mdi/bitmaps/calc.bmp deleted file mode 100644 index 6eee9cce8c1cd915f888258cbe729ead1bd19154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 702 zcmb_au?~YE5Irx%5Yt3s8t0Dvj!s?rJGCQQ+5Dr%Phu+@eTOJ&J65>kc*i{+$mRB8 zir*dn3_B$&NRgzjDUXnvWD*mZ*vS})U}yrtjpGO;#7-ed1Va-D?qsnKj9o{pONo4E z=SW$8Ry{v3rW_(y(GKz2ve{!yz;yK6de4prWZZYnKX}+;&!|X|N~(EKex+yNkTX!S zC{hM1mzs$OSe-HOyvrWSe{huaqdx5G;~96=hail3mzCD(23HE&t@imYryJdJIIh98 l_{`r1+)_Gc{@aa(hUFE=46BTeZz9d~YGx{Aj)6VK;sXibpM3xT diff --git a/samples/mdi/bitmaps/copy.bmp b/samples/mdi/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa79e0a42c1ffb7cdbb90fd4f699dce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVK?*`K3`9pLxU9$U91{2|@hV+>tjiv)Cz3AyzP{vxy7<$~OeTT!c7JQf6T89- z%?kmn<${;(P#uFN<0A#FuUo(qgT{&F@ekspii W=d@ZzPG(Cb=QBs}_=7thzxV(viB<;y diff --git a/samples/mdi/bitmaps/copy.xpm b/samples/mdi/bitmaps/copy.xpm deleted file mode 100644 index 47565c1cae..0000000000 --- a/samples/mdi/bitmaps/copy.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *copy_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c Gray100", -"o c #000080", -/* pixels */ -" ", -" ...... ", -" .XXXX.. ", -" .XXXX.X. ", -" .X..X.oooooo ", -" .XXXXXoXXXXoo ", -" .X....oXXXXoXo ", -" .XXXXXoX..Xoooo", -" .X....oXXXXXXXo", -" .XXXXXoX.....Xo", -" ......oXXXXXXXo", -" oX.....Xo", -" oXXXXXXXo", -" ooooooooo", -" " -}; diff --git a/samples/mdi/bitmaps/cut.bmp b/samples/mdi/bitmaps/cut.bmp deleted file mode 100644 index 15554338a01bc4d8f0a501c32237e84200e64583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvU!3}^Q5Cqr6gr}Ba8OD(CvKJo2^+{<|WDB@(K8*2TclNjo+kV075Ef~cCTYMZ z2hQ$)mH}PlY>+FWlp?l4?H9GSBqTFi~p=nI%+}YJ={H-mN0|?29BK#fUL#erbtT(lh^R?4vYy(d-6AGn1|j$rr}v KbDqI%Xjd+{i$y;G diff --git a/samples/mdi/bitmaps/help.xpm b/samples/mdi/bitmaps/help.xpm deleted file mode 100644 index 50fdb4157e..0000000000 --- a/samples/mdi/bitmaps/help.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *help_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c Blue", -"o c #000080", -/* pixels */ -" ", -" ...... ", -" .XXXXX.. ", -" .XX...oX.. ", -" .X.. .X.. ", -" .X.. .XX.. ", -" .. .XX.. ", -" .XX.. ", -" .X.. ", -" .X.. ", -" .o.. ", -" .. ", -" .XX.. ", -" .XX.. ", -" ... " -}; diff --git a/samples/mdi/bitmaps/helpcs.bmp b/samples/mdi/bitmaps/helpcs.bmp deleted file mode 100644 index 88373816814a283aa9ecca7899faf81ce7a15b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvV!3{z&3`32Clp~D69NgKZC&ICtwG;gn%5(a;k=Ax%E6VeAXxAHgfIGN>i>|Qr zDgH-8;%kg8Fsb(=J`dZ5!;MsyQTV&Nwu@o7(Ri`byve-X0yz0?`b73&zHji5? LZQ&!hb;b0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/samples/mdi/bitmaps/new.xpm b/samples/mdi/bitmaps/new.xpm deleted file mode 100644 index 754d2d20a2..0000000000 --- a/samples/mdi/bitmaps/new.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *new_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Gray100", -/* pixels */ -" ", -" ........ ", -" .XXXXXX.. ", -" .XXXXXX.X. ", -" .XXXXXX.... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/samples/mdi/bitmaps/open.bmp b/samples/mdi/bitmaps/open.bmp deleted file mode 100644 index bbf93fe03364e63f3e18a3507a0e85ab8ea2f87d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmXv{u@M3>3=;=;U&0ua+_3>YyQsonW~6N3OvKTr2(k@|B{{YeKb~(CUb3rr5zpcQ zCn>O}mP9XDa6kd~GO1FGG0<95V`X5i$V8neN$dxz4&8XX3!AZr-;ApY^eS-9oTLj~ Y^Hcc9z2|$wrXTtLH=Rc2n(WoWFRhqJ00000 diff --git a/samples/mdi/bitmaps/open.xpm b/samples/mdi/bitmaps/open.xpm deleted file mode 100644 index 54748e910d..0000000000 --- a/samples/mdi/bitmaps/open.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *open_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Yellow", -"o c Gray100", -"O c #bfbf00", -/* pixels */ -" ", -" ... ", -" . . .", -" ..", -" ... ...", -" .XoX....... ", -" .oXoXoXoXo. ", -" .XoXoXoXoX. ", -" .oXoX..........", -" .XoX.OOOOOOOOO.", -" .oo.OOOOOOOOO. ", -" .X.OOOOOOOOO. ", -" ..OOOOOOOOO. ", -" ........... ", -" " -}; diff --git a/samples/mdi/bitmaps/paste.bmp b/samples/mdi/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0df7225f0a7adbe8457b41af537813bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%Ci@5Jbns$83OZ*I;# co}I%%@f6>ra3+S=gC69}eM%GII+SAI4J;x>B>(^b diff --git a/samples/mdi/bitmaps/paste.xpm b/samples/mdi/bitmaps/paste.xpm deleted file mode 100644 index 69177e9b19..0000000000 --- a/samples/mdi/bitmaps/paste.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char *paste_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 6 1", -" c None", -". c Black", -"X c Yellow", -"o c #808080", -"O c #000080", -"+ c Gray100", -/* pixels */ -" ", -" .... ", -" .....XX..... ", -".ooo.X..X.ooo. ", -".oo. .oo. ", -".oo........oo. ", -".oooooooooooo. ", -".oooooOOOOOOO. ", -".oooooO+++++OO ", -".oooooO+++++O+O ", -".oooooO+OOO+OOO ", -".oooooO+++++++O ", -".oooooO+OOOOO+O ", -" .....O+++++++O ", -" OOOOOOOOO " -}; diff --git a/samples/mdi/bitmaps/preview.bmp b/samples/mdi/bitmaps/preview.bmp deleted file mode 100644 index da1f4dbc4be6c2dd8fb9d7cb71cc48a4a7c139ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVu?@p83pv2yNo4mlT?N_pr2ISnd1NHDM5O^cFcMc59&^> z)PfrwsOeYM05)2ipmU4fJIss+o(=cdQCu+!%TlZiKDH!a!aP2;C|UGpLD9M;zmsLJ XIp;lzIUm!ckI6HO{IjaYcZ_-fA4^nl diff --git a/samples/mdi/bitmaps/preview.xpm b/samples/mdi/bitmaps/preview.xpm deleted file mode 100644 index 0dfdca46e1..0000000000 --- a/samples/mdi/bitmaps/preview.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *preview_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c Black", -". c None", -"X c Gray100", -"o c #808080", -"O c Cyan", -/* pixels */ -" .......", -" XXXXXXX ......", -" XXXXXXX . .....", -" XXXXXXX ....", -" XXXXXXXXXX ....", -" XXXXXXX ....", -" XXXXXX o..o ...", -" XXXXX oOO.oo ..", -" XXXXX .O..o. ..", -" XXXXX ....o. ..", -" XXXXX o..Ooo ..", -" XXXXXX o..o o..", -" XXXXXXX o .", -" XXXXXXXXXX . ", -" .. " -}; diff --git a/samples/mdi/bitmaps/print.bmp b/samples/mdi/bitmaps/print.bmp deleted file mode 100644 index 00319b55bb23c3c69cc051144d80e5275747c53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZur!3_d23^Ni^o@EUFY`~vgA|YX<`*bfpod|VizM>j+f}Fx~Q7! zgtHKM7yg3|DAD^Sp<0YF#C}+nSj(MC$5#Ss27*aN<{l9dYV3`7rsq)3!X>4ws(){6V0MX5FKAjcylGXqN-n#XsS=YhW0WogZT{L^_i_GT%*k@+ph E1NJ~MtpET3 diff --git a/samples/mdi/bitmaps/save.xpm b/samples/mdi/bitmaps/save.xpm deleted file mode 100644 index 01b18f9340..0000000000 --- a/samples/mdi/bitmaps/save.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *save_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808000", -"o c #808080", -/* pixels */ -" ", -" .............. ", -" .X. . . ", -" .X. ... ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .XX........oX. ", -" .XXXXXXXXXXXX. ", -" .XX.........X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" ............. " -}; diff --git a/samples/mdi/bitmaps/tick.bmp b/samples/mdi/bitmaps/tick.bmp deleted file mode 100644 index c0d66c94601657fee33b923de9b1791844d7a331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmXv`!4bnS2vd9<&b6P6(K-6>8h!H$UytTNvWqL(DMm;L@cVON#YuV*&l?*Ih5AeU z{bqVO)bKZHuqJq2P$o+ Qrwbl?Kzn<_G@1WzKlk4xlmGw# diff --git a/samples/mdi/bitmaps/write.xbm b/samples/mdi/bitmaps/write.xbm deleted file mode 100644 index 1409e98f1b..0000000000 --- a/samples/mdi/bitmaps/write.xbm +++ /dev/null @@ -1,14 +0,0 @@ -#define write_width 32 -#define write_height 32 -static char write_bits[] = { - 0x00, 0x80, 0x00, 0x00, 0x00, 0x40, 0x01, 0x00, 0x00, 0x20, 0x02, 0x00, - 0x00, 0x10, 0x04, 0x00, 0x00, 0x08, 0x08, 0x00, 0x00, 0x04, 0x10, 0x00, - 0x00, 0x92, 0x20, 0x00, 0x00, 0x49, 0x40, 0x00, 0x80, 0x04, 0x81, 0x00, - 0x40, 0x90, 0x04, 0x01, 0x20, 0x09, 0x02, 0x02, 0x90, 0x20, 0x01, 0x04, - 0x08, 0x92, 0x00, 0x08, 0x24, 0x49, 0x00, 0x10, 0x92, 0x00, 0xfc, 0x20, - 0x49, 0x12, 0x02, 0x41, 0x22, 0x09, 0x01, 0x82, 0x84, 0x84, 0x0c, 0x44, - 0x48, 0x82, 0x13, 0x28, 0x10, 0x79, 0xfe, 0xf1, 0x20, 0x44, 0x0c, 0xe0, - 0x40, 0x82, 0x00, 0xe0, 0x80, 0x00, 0x01, 0xe0, 0x00, 0x01, 0x06, 0xe0, - 0x00, 0x02, 0xf8, 0xe7, 0x00, 0x04, 0x40, 0xf8, 0x00, 0x08, 0x20, 0xe0, - 0x00, 0x10, 0x10, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x40, 0x04, 0x00, - 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00}; diff --git a/samples/mdi/chart.ico b/samples/mdi/chart.ico deleted file mode 100644 index 16d4a585fd3246e7a8dc43c45e010c006e643dd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc&wF%H5o40I7AQkYn&nArFNzsi_=qf@@p2UOx4jHOFdsgk)%D>cxHj+|r1*R$Ou zA_c50k3u|mA}8!ucnQD53)v%zcxdbJ5TSTKZiq7qFu*Pe;O)q})Br9M@2fs2xG_OluNwM{ zcSECEB^`=VZ-!Clq`-NP$D|`q^P8EoNK<|GI(*Wt>lv#s7a1^aS#Q-v=NLJDsYfc- TMvJ?z=wHXdA%Ehd{14;}SbUVL diff --git a/samples/mdi/makefile.b32 b/samples/mdi/makefile.b32 deleted file mode 100644 index 145ea61054..0000000000 --- a/samples/mdi/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=mdi -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/mdi/makefile.bcc b/samples/mdi/makefile.bcc deleted file mode 100644 index 12e9f59eb6..0000000000 --- a/samples/mdi/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=mdi -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/mdi/makefile.dos b/samples/mdi/makefile.dos deleted file mode 100644 index 54c483503e..0000000000 --- a/samples/mdi/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=mdi -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/mdi/makefile.g95 b/samples/mdi/makefile.g95 deleted file mode 100644 index 65e2af593f..0000000000 --- a/samples/mdi/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=mdi -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/mdi/makefile.sc b/samples/mdi/makefile.sc deleted file mode 100644 index a90487946a..0000000000 --- a/samples/mdi/makefile.sc +++ /dev/null @@ -1,36 +0,0 @@ -# Symantec C++ makefile for mdi example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -mdi.exe: mdi.obj mdi.def mdi.res - *$(CC) $(LDFLAGS) -o$@ mdi.obj mdi.def $(LIBS) - *$(RC) -k mdi.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws diff --git a/samples/mdi/makefile.sl b/samples/mdi/makefile.sl deleted file mode 100644 index 0309cff0a8..0000000000 --- a/samples/mdi/makefile.sl +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.sl -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Builds a wxWindows sample for Salford C++, WIN32 - -PROGRAM = mdi -OBJECTS = $(PROGRAM).obj - -include ..\..\src\makeprog.sl - -all: wx $(TARGET) - -wx: - cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all - cd $(WXDIR)\samples\mdi - diff --git a/samples/mdi/makefile.twn b/samples/mdi/makefile.twn deleted file mode 100644 index dac98e5804..0000000000 --- a/samples/mdi/makefile.twn +++ /dev/null @@ -1,37 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1999 -# Updated: -# -# Makefile for mdi example (UNIX, TWIN32) - -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/maketwin.env - -OBJECTS = $(OBJDIR)/mdi.$(OBJSUFF) $(OBJDIR)/mdi_resources.$(OBJSUFF) - -all: $(OBJDIR) mdi$(GUISUFFIX)$(EXESUFF) - -wx: - -$(OBJDIR): - mkdir $(OBJDIR) - -mdi$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o mdi$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) - -$(OBJDIR)/mdi.$(OBJSUFF): mdi.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ mdi.$(SRCSUFF) - -mdi_resources.c: mdi.rc - $(RESCOMP) $(RCINPUTSWITCH) mdi.rc $(RCOUTPUTSWITCH) mdi_resources.c $(RESFLAGS) - -$(OBJDIR)/mdi_resources.$(OBJSUFF): mdi_resources.c - $(CC) -c $(CPPFLAGS) -o $@ mdi_resources.c - -clean: - rm -f $(OBJECTS) mdi.exe core *.rsc *.res diff --git a/samples/mdi/makefile.unx b/samples/mdi/makefile.unx deleted file mode 100644 index 4c904e4c6f..0000000000 --- a/samples/mdi/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for mdi example (UNIX). - -PROGRAM=mdi - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/mdi/makefile.vc b/samples/mdi/makefile.vc deleted file mode 100644 index 058942ba05..0000000000 --- a/samples/mdi/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=mdi -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/mdi/makefile.vms b/samples/mdi/makefile.vms deleted file mode 100644 index 41d193c077..0000000000 --- a/samples/mdi/makefile.vms +++ /dev/null @@ -1,38 +0,0 @@ -#************************************************************************ -# Makefile for MDI under VMS -# by Stefan Hammes -# (incomplete) update history: -# 11.04.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = mdi - -# Object modules of the application. -OBJS = mdi.obj -OBJLIST =mdi.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(OBJS) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(OBJLIST),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ - diff --git a/samples/mdi/makefile.wat b/samples/mdi/makefile.wat deleted file mode 100644 index 8df592246e..0000000000 --- a/samples/mdi/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = mdi -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/mdi/mdi.cpp b/samples/mdi/mdi.cpp deleted file mode 100644 index 45474995f1..0000000000 --- a/samples/mdi/mdi.cpp +++ /dev/null @@ -1,437 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -// 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" - #include "wx/mdi.h" -#endif - -#include - -#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/paste.xpm" - #include "bitmaps/print.xpm" - #include "bitmaps/help.xpm" -#endif - -#include "mdi.h" - -IMPLEMENT_APP(MyApp) - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -MyFrame *frame = (MyFrame *) NULL; -wxList my_children; - -// For drawing lines in a canvas -static long xpos = -1; -static long ypos = -1; - -static int gs_nFrames = 0; - -// --------------------------------------------------------------------------- -// event tables -// --------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(MyFrame, wxMDIParentFrame) - EVT_MENU(MDI_ABOUT, MyFrame::OnAbout) - EVT_MENU(MDI_NEW_WINDOW, MyFrame::OnNewWindow) - EVT_MENU(MDI_QUIT, MyFrame::OnQuit) - - EVT_CLOSE(MyFrame::OnClose) - - EVT_SIZE(MyFrame::OnSize) -END_EVENT_TABLE() - -// Note that MDI_NEW_WINDOW and MDI_ABOUT commands get passed -// to the parent window for processing, so no need to -// duplicate event handlers here. -BEGIN_EVENT_TABLE(MyChild, wxMDIChildFrame) - EVT_MENU(MDI_CHILD_QUIT, MyChild::OnQuit) - EVT_MENU(MDI_REFRESH, MyChild::OnRefresh) - - EVT_CLOSE(MyChild::OnClose) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_MOUSE_EVENTS(MyCanvas::OnEvent) -END_EVENT_TABLE() - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// MyApp -// --------------------------------------------------------------------------- - -// Initialise this in OnInit, not statically -bool MyApp::OnInit() -{ - // Create the main frame window - - frame = new MyFrame((wxFrame *)NULL, -1, "MDI Demo", - wxPoint(-1, -1), wxSize(500, 400), - wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL); - - // Give it an icon -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("mdi_icn")); -#else - frame->SetIcon(wxIcon( mondrian_xpm )); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(MDI_NEW_WINDOW, "&New window", "Create a new child window"); - file_menu->Append(MDI_QUIT, "&Exit", "Quit the program"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(MDI_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - frame->CreateStatusBar(); - - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -// --------------------------------------------------------------------------- -// MyFrame -// --------------------------------------------------------------------------- - -// Define my frame constructor -MyFrame::MyFrame(wxWindow *parent, - const wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - const long style) - : wxMDIParentFrame(parent, id, title, pos, size, style) -{ - textWindow = new wxTextCtrl(this, -1, "A help window", - wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE | wxSUNKEN_BORDER); - - CreateToolBar(wxNO_BORDER | wxTB_FLAT | wxTB_HORIZONTAL); - InitToolBar(GetToolBar()); - - // Accelerators - wxAcceleratorEntry entries[3]; - entries[0].Set(wxACCEL_CTRL, (int) 'N', MDI_NEW_WINDOW); - entries[1].Set(wxACCEL_CTRL, (int) 'X', MDI_QUIT); - entries[2].Set(wxACCEL_CTRL, (int) 'A', MDI_ABOUT); - wxAcceleratorTable accel(3, entries); - SetAcceleratorTable(accel); -} - -void MyFrame::OnClose(wxCloseEvent& event) -{ - if ( event.CanVeto() && (gs_nFrames > 0) ) - { - wxString msg; - msg.Printf(_T("%d windows still open, close anyhow?"), gs_nFrames); - if ( wxMessageBox(msg, "Please confirm", - wxICON_QUESTION | wxYES_NO) != wxYES ) - { - event.Veto(); - - return; - } - } - - event.Skip(); -} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event) ) -{ - (void)wxMessageBox("wxWindows 2.0 MDI Demo\n" - "Author: Julian Smart (c) 1997\n" - "Usage: mdi.exe", "About MDI Demo"); -} - -void MyFrame::OnNewWindow(wxCommandEvent& WXUNUSED(event) ) -{ - // Make another frame, containing a canvas - MyChild *subframe = new MyChild(frame, "Canvas Frame", - wxPoint(-1, -1), wxSize(-1, -1), - wxDEFAULT_FRAME_STYLE); - - wxString title; - title.Printf(_T("Canvas Frame %d"), ++gs_nFrames); - - subframe->SetTitle(title); - - // Give it an icon -#ifdef __WXMSW__ - subframe->SetIcon(wxIcon("chrt_icn")); -#else - subframe->SetIcon(wxIcon( mondrian_xpm )); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(MDI_NEW_WINDOW, "&New window"); - file_menu->Append(MDI_CHILD_QUIT, "&Close child", "Close this window"); - file_menu->Append(MDI_QUIT, "&Exit"); - - wxMenu *option_menu = new wxMenu; - - // Dummy option - option_menu->Append(MDI_REFRESH, "&Refresh picture"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(MDI_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(option_menu, "&Options"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - subframe->SetMenuBar(menu_bar); - - int width, height; - subframe->GetClientSize(&width, &height); - MyCanvas *canvas = new MyCanvas(subframe, wxPoint(0, 0), wxSize(width, height)); - canvas->SetCursor(wxCursor(wxCURSOR_PENCIL)); - subframe->canvas = canvas; - - // Give it scrollbars - canvas->SetScrollbars(20, 20, 50, 50); - - subframe->CreateStatusBar(); - subframe->SetStatusText(title); - - subframe->Show(TRUE); -} - -void MyFrame::OnSize(wxSizeEvent& WXUNUSED(event) ) -{ - int w, h; - GetClientSize(&w, &h); - - textWindow->SetSize(0, 0, 200, h); - GetClientWindow()->SetSize(200, 0, w - 200, h); -} - -void MyFrame::InitToolBar(wxToolBar* toolBar) -{ - wxBitmap* bitmaps[8]; - -#ifdef __WXMSW__ - bitmaps[0] = new wxBitmap("icon1", wxBITMAP_TYPE_RESOURCE); - bitmaps[1] = new wxBitmap("icon2", wxBITMAP_TYPE_RESOURCE); - bitmaps[2] = new wxBitmap("icon3", wxBITMAP_TYPE_RESOURCE); - bitmaps[3] = new wxBitmap("icon4", wxBITMAP_TYPE_RESOURCE); - bitmaps[4] = new wxBitmap("icon5", wxBITMAP_TYPE_RESOURCE); - bitmaps[5] = new wxBitmap("icon6", wxBITMAP_TYPE_RESOURCE); - bitmaps[6] = new wxBitmap("icon7", wxBITMAP_TYPE_RESOURCE); - bitmaps[7] = new wxBitmap("icon8", wxBITMAP_TYPE_RESOURCE); -#else - bitmaps[0] = new wxBitmap( new_xpm ); - bitmaps[1] = new wxBitmap( open_xpm ); - bitmaps[2] = new wxBitmap( save_xpm ); - bitmaps[3] = new wxBitmap( copy_xpm ); - bitmaps[4] = new wxBitmap( cut_xpm ); - bitmaps[5] = new wxBitmap( paste_xpm ); - bitmaps[6] = new wxBitmap( print_xpm ); - bitmaps[7] = new wxBitmap( help_xpm ); -#endif - -#ifdef __WXMSW__ - int width = 24; -#else - int width = 16; -#endif - int currentX = 5; - - toolBar->AddTool( MDI_NEW_WINDOW, *(bitmaps[0]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "New file"); - currentX += width + 5; - toolBar->AddTool(1, *bitmaps[1], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Open file"); - currentX += width + 5; - toolBar->AddTool(2, *bitmaps[2], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Save file"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(3, *bitmaps[3], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Copy"); - currentX += width + 5; - toolBar->AddTool(4, *bitmaps[4], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Cut"); - currentX += width + 5; - toolBar->AddTool(5, *bitmaps[5], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Paste"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(6, *bitmaps[6], wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Print"); - currentX += width + 5; - toolBar->AddSeparator(); - toolBar->AddTool(7, *bitmaps[7], wxNullBitmap, TRUE, currentX, -1, (wxObject *) NULL, "Help"); - - toolBar->Realize(); - - int i; - for (i = 0; i < 8; i++) - delete bitmaps[i]; -} - -// --------------------------------------------------------------------------- -// MyCanvas -// --------------------------------------------------------------------------- - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size) - : wxScrolledWindow(parent, -1, pos, size, - wxSUNKEN_BORDER|wxVSCROLL|wxHSCROLL) -{ - SetBackgroundColour(wxColour("WHITE")); - - m_dirty = FALSE; -} - -// Define the repainting behaviour -void MyCanvas::OnDraw(wxDC& dc) -{ - dc.SetFont(*wxSWISS_FONT); - dc.SetPen(*wxGREEN_PEN); - dc.DrawLine(0, 0, 200, 200); - dc.DrawLine(200, 0, 0, 200); - - dc.SetBrush(*wxCYAN_BRUSH); - dc.SetPen(*wxRED_PEN); - dc.DrawRectangle(100, 100, 100, 50); - dc.DrawRoundedRectangle(150, 150, 100, 50, 20); - - dc.DrawEllipse(250, 250, 100, 50); - dc.DrawSpline(50, 200, 50, 100, 200, 10); - dc.DrawLine(50, 230, 200, 230); - dc.DrawText("This is a test string", 50, 230); - - wxPoint points[3]; - points[0].x = 200; points[0].y = 300; - points[1].x = 100; points[1].y = 400; - points[2].x = 300; points[2].y = 400; - - dc.DrawPolygon(3, points); -} - -// This implements a tiny doodling program! Drag the mouse using the left -// button. -void MyCanvas::OnEvent(wxMouseEvent& event) -{ - wxClientDC dc(this); - PrepareDC(dc); - - wxPoint pt(event.GetLogicalPosition(dc)); - - if (xpos > -1 && ypos > -1 && event.Dragging()) - { - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine(xpos, ypos, pt.x, pt.y); - - m_dirty = TRUE; - } - - xpos = pt.x; - ypos = pt.y; -} - -// --------------------------------------------------------------------------- -// MyChild -// --------------------------------------------------------------------------- - -MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, - const long style) - : wxMDIChildFrame(parent, -1, title, pos, size, style) -{ - canvas = (MyCanvas *) NULL; - my_children.Append(this); -} - -MyChild::~MyChild() -{ - my_children.DeleteObject(this); -} - -void MyChild::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void MyChild::OnRefresh(wxCommandEvent& event) -{ - Refresh(); -} - -void MyChild::OnActivate(wxActivateEvent& event) -{ - if ( event.GetActive() && canvas ) - canvas->SetFocus(); -} - -void MyChild::OnClose(wxCloseEvent& event) -{ - if ( canvas && canvas->IsDirty() ) - { - if ( wxMessageBox("Really close?", "Please confirm", - wxICON_QUESTION | wxYES_NO) != wxYES ) - { - event.Veto(); - - return; - } - } - - gs_nFrames--; - - event.Skip(); -} - - diff --git a/samples/mdi/mdi.def b/samples/mdi/mdi.def deleted file mode 100644 index 1d2353702e..0000000000 --- a/samples/mdi/mdi.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Mdi -DESCRIPTION 'MDI/SDI Test Program' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 6000 -STACKSIZE 48000 diff --git a/samples/mdi/mdi.h b/samples/mdi/mdi.h deleted file mode 100644 index 6efb5b61ad..0000000000 --- a/samples/mdi/mdi.h +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#include - -// Define a new application -class MyApp : public wxApp -{ -public: - bool OnInit(); -}; - -class MyCanvas : public wxScrolledWindow -{ -public: - MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size); - virtual void OnDraw(wxDC& dc); - - bool IsDirty() const { return m_dirty; } - - void OnEvent(wxMouseEvent& event); - -private: - bool m_dirty; - - DECLARE_EVENT_TABLE() -}; - -// Define a new frame -class MyFrame : public wxMDIParentFrame -{ -public: - wxTextCtrl *textWindow; - - MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long style); - - void InitToolBar(wxToolBar* toolBar); - - void OnSize(wxSizeEvent& event); - void OnAbout(wxCommandEvent& event); - void OnNewWindow(wxCommandEvent& event); - void OnQuit(wxCommandEvent& event); - void OnClose(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class MyChild: public wxMDIChildFrame -{ -public: - MyCanvas *canvas; - MyChild(wxMDIParentFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size, const long style); - ~MyChild(); - - void OnActivate(wxActivateEvent& event); - - void OnRefresh(wxCommandEvent& event); - void OnQuit(wxCommandEvent& event); - void OnClose(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - -// menu items ids -enum -{ - MDI_QUIT = 100, - MDI_NEW_WINDOW, - MDI_REFRESH, - MDI_CHILD_QUIT, - MDI_ABOUT -}; diff --git a/samples/mdi/mdi.ico b/samples/mdi/mdi.ico deleted file mode 100644 index 2dc1bde40cf921731fb2f7c6534054c6fb8d96d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmah{IgY|W5G*e%tq=i3o32BCvHXmAf>Zy(`6TlchZ{QF05Mc`&y2+((WbBJ>H`DN z@#*^mB!3^kH~o>?Q%}?mpR_<=?X?6JSqZ@%EkkNRN{NMRALOiv%14mQONo@Vuu~f2 zR1r@bqoxHgHqbgO7{>y8VLOh4a849H4Zzj{FAJP(g5{I-n)O_*F$%SIE3<<+Nj^dZ zMrsmnqFCH}{&VhK#xlN*^s!HQyVC2cT_ZcBoK?PWy+p6H9A{2%_%Scn3ie-MC5TR` zfM>p7Bv6> diff --git a/samples/mdi/mdi.rc b/samples/mdi/mdi.rc deleted file mode 100644 index 173542b99b..0000000000 --- a/samples/mdi/mdi.rc +++ /dev/null @@ -1,24 +0,0 @@ -aaaa ICON "mondrian.ico" - -/* Useful if PROVIDE_DEFAULT_ICONS is set in wx_setup.h */ -#define IHaveMDIParentIcon -#define IHaveMDIChildIcon - -wxSTD_MDIPARENTFRAME ICON "mondrian.ico" -wxSTD_MDICHILDFRAME ICON "chart.ico" - -mdi_icn ICON "mondrian.ico" -chrt_icn ICON "chart.ico" - -icon1 BITMAP "bitmaps/new.bmp" -icon2 BITMAP "bitmaps/open.bmp" -icon3 BITMAP "bitmaps/save.bmp" -icon4 BITMAP "bitmaps/copy.bmp" -icon5 BITMAP "bitmaps/cut.bmp" -icon6 BITMAP "bitmaps/paste.bmp" -icon7 BITMAP "bitmaps/print.bmp" - -icon8 BITMAP "bitmaps/help.bmp" - -#include "wx/msw/wx.rc" - diff --git a/samples/mdi/mondrian.ico b/samples/mdi/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZSetIcon(wxICON(mondrian)); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(wxID_EXIT, "E&xit"); - wxMenuBar *menu_bar = new wxMenuBar; - menu_bar->Append(file_menu, "File"); - frame->SetMenuBar(menu_bar); - - // Make a panel with a message - wxPanel *panel = new wxPanel(frame); - - (void)new wxStaticText(panel, -1, "Hello, this is a minimal debugging wxWindows program!", wxPoint(10, 10)); - - // Show the frame - frame->Show(TRUE); - - wxDebugContext::SetCheckpoint(); - - wxString *thing = new wxString; - wxDate* date = new wxDate; - - // non-object allocation - char *ordinaryNonObject = new char[1000]; - - const char *data = (const char*) thing ; - - wxDebugContext::PrintClasses(); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - - // Don't delete these objects, to force wxApp to flag a memory leak. -// delete thing; -// delete date; -// delete[] ordinaryNonObject; - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(wxID_EXIT, MyFrame::OnQuit) -END_EVENT_TABLE() - -// My frame constructor -MyFrame::MyFrame(wxFrame *parent): - wxFrame(parent, -1, "MemCheck wxWindows Sample", wxPoint(-1, -1), wxSize(400, 200)) -{} - -// Intercept menu commands -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - diff --git a/samples/memcheck/memcheck.def b/samples/memcheck/memcheck.def deleted file mode 100644 index 4986704cdd..0000000000 --- a/samples/memcheck/memcheck.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Memcheck -DESCRIPTION 'Memcheck wxWindows application' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/memcheck/memcheck.rc b/samples/memcheck/memcheck.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/memcheck/memcheck.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/memcheck/mondrian.ico b/samples/memcheck/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZShowWindow( m_nCmdShow ); - m_pMainWnd->UpdateWindow(); -*/ - - if (wxTheApp && wxTheApp->GetTopWindow()) - { - m_pMainWnd = new CDummyWindow((HWND) wxTheApp->GetTopWindow()->GetHWND()); - } - - return TRUE; -} - -int CTheApp::ExitInstance() -{ - // OnExit isn't called by CleanUp so must be called explicitly. - wxTheApp->OnExit(); - wxApp::CleanUp(); - - return CWinApp::ExitInstance(); -} - -// Override this to provide wxWindows message loop -// compatibility - -BOOL CTheApp::PreTranslateMessage(MSG *msg) -{ - if (wxTheApp && wxTheApp->ProcessMessage((WXMSG*) msg)) - return TRUE; - else - return CWinApp::PreTranslateMessage(msg); -} - -BOOL CTheApp::OnIdle(LONG lCount) -{ - if (wxTheApp) - return wxTheApp->ProcessIdle(); - else - return FALSE; -} - -/********************************************************************* - * wxWindows elements - ********************************************************************/ - -bool MyApp::OnInit(void) -{ - // Don't exit app when the top level frame is deleted -// SetExitOnFrameDelete(FALSE); - - wxFrame* frame = CreateFrame(); - return TRUE; -} - -wxFrame *MyApp::CreateFrame(void) -{ - MyChild *subframe = new MyChild(NULL, "Canvas Frame", wxPoint(10, 10), wxSize(300, 300), - wxDEFAULT_FRAME_STYLE); - - subframe->SetTitle("wxWindows canvas frame"); - - // Give it a status line - subframe->CreateStatusBar(); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(HELLO_NEW, "&New MFC Window"); - file_menu->Append(HELLO_QUIT, "&Close"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - - // Associate the menu bar with the frame - subframe->SetMenuBar(menu_bar); - - int width, height; - subframe->GetClientSize(&width, &height); - - MyCanvas *canvas = new MyCanvas(subframe, wxPoint(0, 0), wxSize(width, height)); - canvas->SetCursor(wxCursor(wxCURSOR_PENCIL)); - subframe->canvas = canvas; - - // Give it scrollbars -// canvas->SetScrollbars(20, 20, 50, 50, 4, 4); - - subframe->Show(TRUE); - // Return the main frame window - return subframe; -} - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) - EVT_MOUSE_EVENTS(MyCanvas::OnMouseEvent) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): - wxScrolledWindow(parent, -1, pos, size) -{ -} - -// Define the repainting behaviour -void MyCanvas::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - dc.SetFont(* wxSWISS_FONT); - dc.SetPen(* wxGREEN_PEN); - dc.DrawLine(0, 0, 200, 200); - dc.DrawLine(200, 0, 0, 200); - - dc.SetBrush(* wxCYAN_BRUSH); - dc.SetPen(* wxRED_PEN); - dc.DrawRectangle(100, 100, 100, 50); - dc.DrawRoundedRectangle(150, 150, 100, 50, 20); - - dc.DrawEllipse(250, 250, 100, 50); - dc.DrawSpline(50, 200, 50, 100, 200, 10); - dc.DrawLine(50, 230, 200, 230); - dc.DrawText("This is a test string", 50, 230); -} - -// This implements a tiny doodling program! Drag the mouse using -// the left button. -void MyCanvas::OnMouseEvent(wxMouseEvent& event) -{ - wxClientDC dc(this); - dc.SetPen(* wxBLACK_PEN); - long x, y; - event.Position(&x, &y); - if (xpos > -1 && ypos > -1 && event.Dragging()) - { - dc.DrawLine(xpos, ypos, x, y); - } - xpos = x; - ypos = y; -} - -BEGIN_EVENT_TABLE(MyChild, wxFrame) - EVT_MENU(HELLO_QUIT, MyChild::OnQuit) - EVT_MENU(HELLO_NEW, MyChild::OnNew) - EVT_ACTIVATE(MyChild::OnActivate) -END_EVENT_TABLE() - -MyChild::MyChild(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, const long style): - wxFrame(frame, -1, title, pos, size, style) -{ - canvas = NULL; -} - -MyChild::~MyChild(void) -{ -} - -void MyChild::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void MyChild::OnNew(wxCommandEvent& event) -{ - CMainWindow *mainWin = new CMainWindow(); - mainWin->ShowWindow( TRUE ); - mainWin->UpdateWindow(); -} - -void MyChild::OnActivate(wxActivateEvent& event) -{ - if (event.GetActive() && canvas) - canvas->SetFocus(); -} - -// Dummy MFC window for specifying a valid main window to MFC, using -// a wxWindows HWND. -CDummyWindow::CDummyWindow(HWND hWnd):CWnd() -{ - Attach(hWnd); -} - -// Don't let the CWnd destructor delete the HWND -CDummyWindow::~CDummyWindow(void) -{ - Detach(); -} - diff --git a/samples/mfc/mfctest.def b/samples/mfc/mfctest.def deleted file mode 100644 index 7c741d1059..0000000000 --- a/samples/mfc/mfctest.def +++ /dev/null @@ -1,21 +0,0 @@ -; hello.def : Declares the module parameters for the application. -; -; This is a part of the Microsoft Foundation Classes C++ library. -; Copyright (C) 1992 Microsoft Corporation -; All rights reserved. -; -; This source code is only intended as a supplement to the -; Microsoft Foundation Classes Reference and Microsoft -; WinHelp documentation provided with the library. -; See these sources for detailed information regarding the -; Microsoft Foundation Classes product. - -NAME Hello -DESCRIPTION 'Hello Microsoft Foundation Classes Windows Application' - -EXETYPE WINDOWS - -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE - -HEAPSIZE 1024 diff --git a/samples/mfc/mfctest.h b/samples/mfc/mfctest.h deleted file mode 100644 index 038a08cad2..0000000000 --- a/samples/mfc/mfctest.h +++ /dev/null @@ -1,66 +0,0 @@ -// hello.h : Declares the class interfaces for the application. -// Hello is a simple program which consists of a main window -// and an "About" dialog which can be invoked by a menu choice. -// It is intended to serve as a starting-point for new -// applications. -// -// This is a part of the Microsoft Foundation Classes C++ library. -// Copyright (C) 1992 Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Microsoft Foundation Classes Reference and Microsoft -// WinHelp documentation provided with the library. -// See these sources for detailed information regarding the -// Microsoft Foundation Classes product. - -#ifndef __MFCTEST_H__ -#define __MFCTEST_H__ - -///////////////////////////////////////////////////////////////////////////// - -// CMainWindow: -// See hello.cpp for the code to the member functions and the message map. -// -class CMainWindow : public CFrameWnd -{ -public: - CMainWindow(); - - //{{AFX_MSG( CMainWindow ) - afx_msg void OnPaint(); - afx_msg void OnAbout(); - afx_msg void OnTest(); - //}}AFX_MSG - - DECLARE_MESSAGE_MAP() -}; - -// A dummy CWnd pointing to a wxWindow's HWND -class CDummyWindow: public CWnd -{ - public: - CDummyWindow(HWND hWnd); - ~CDummyWindow(void); -}; - -///////////////////////////////////////////////////////////////////////////// - -// CTheApp: -// See hello.cpp for the code to the InitInstance member function. -// -class CTheApp : public CWinApp -{ -public: - BOOL InitInstance(); - int ExitInstance(); - - // Override this to provide wxWindows message loop - // compatibility - BOOL PreTranslateMessage(MSG *msg); - BOOL OnIdle(LONG lCount); -}; - -///////////////////////////////////////////////////////////////////////////// - -#endif // __MFCTEST_H__ diff --git a/samples/mfc/mfctest.ico b/samples/mfc/mfctest.ico deleted file mode 100644 index 331b675b63ea5c7aebc8502a2b459568cedd7564..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc(cF%H5o3`KttW2G`NcjOoxEl0}@dJV=Npi+6?4xs}hQk~jy`s~C`q=7NdH(6d6 z>CXH>XY`2$s)6q)1hh-NvO=qy5Co z`COXnu|8>Zg}pwwJLvWQpL4=z|CL)s`uVx+ykXyP)c3_vA9z%I33Im=o8yxL-kcGw dBql_1DBSqSBlEx`(MPoWeAkv98#(wac>^wsLdgIC diff --git a/samples/mfc/mfctest.rc b/samples/mfc/mfctest.rc deleted file mode 100644 index 7c5da8b070..0000000000 --- a/samples/mfc/mfctest.rc +++ /dev/null @@ -1,108 +0,0 @@ -//Microsoft App Studio generated resource script. -// -#include "wx/msw/wx.rc" -#include "resource.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - - -///////////////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - - -////////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -AFX_IDI_STD_FRAME ICON DISCARDABLE "MFCTEST.ICO" - -////////////////////////////////////////////////////////////////////////////// -// -// Menu -// - -MAINMENU MENU DISCARDABLE -BEGIN - POPUP "&File" - BEGIN - MENUITEM "&Test wxWindows", IDM_TEST - END - POPUP "&Help" - BEGIN - MENUITEM "&About Hello...\tF1", IDM_ABOUT - END -END - - -////////////////////////////////////////////////////////////////////////////// -// -// Accelerator -// - -MAINACCELTABLE ACCELERATORS MOVEABLE PURE -BEGIN - VK_F1, IDM_ABOUT, VIRTKEY -END - - -////////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -ABOUTBOX DIALOG DISCARDABLE 34, 22, 144, 75 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "About Hello" -FONT 8, "Helv" -BEGIN - CTEXT "Microsoft Windows",IDC_STATIC,0,5,144,8 - CTEXT "Microsoft Foundation Classes",IDC_STATIC,0,14,144,8 - CTEXT "Hello, Windows!",IDC_STATIC,0,23,144,8 - CTEXT "Version 2.0",IDC_STATIC,0,36,144,8 - DEFPUSHBUTTON "OK",IDOK,56,53,32,14,WS_GROUP -END - -#ifdef APSTUDIO_INVOKED -////////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -///////////////////////////////////////////////////////////////////////////////////// -#endif // APSTUDIO_INVOKED - - -#ifndef APSTUDIO_INVOKED -//////////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/samples/mfc/resource.h b/samples/mfc/resource.h deleted file mode 100644 index e20ad76cbb..0000000000 --- a/samples/mfc/resource.h +++ /dev/null @@ -1,18 +0,0 @@ -//{{NO_DEPENDENCIES}} -// App Studio generated include file. -// Used by HELLO.RC -// -#define IDM_ABOUT 100 -#define IDM_TEST 101 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS - -#define _APS_NEXT_RESOURCE_VALUE 110 -#define _APS_NEXT_COMMAND_VALUE 32768 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 112 -#endif -#endif diff --git a/samples/mfc/stdafx.h b/samples/mfc/stdafx.h deleted file mode 100644 index 5b9f153634..0000000000 --- a/samples/mfc/stdafx.h +++ /dev/null @@ -1,12 +0,0 @@ -// This is a part of the Microsoft Foundation Classes C++ library. -// Copyright (C) 1992 Microsoft Corporation -// All rights reserved. -// -// This source code is only intended as a supplement to the -// Microsoft Foundation Classes Reference and Microsoft -// WinHelp documentation provided with the library. -// See these sources for detailed information regarding the -// Microsoft Foundation Classes product. - - -#include diff --git a/samples/minifram/.cvsignore b/samples/minifram/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/minifram/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/minifram/Makefile.am b/samples/minifram/Makefile.am deleted file mode 100644 index d53aac5146..0000000000 --- a/samples/minifram/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = test - -test_SOURCES = test.cpp diff --git a/samples/minifram/bitmaps/copy.bmp b/samples/minifram/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa79e0a42c1ffb7cdbb90fd4f699dce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVK?*`K3`9pLxU9$U91{2|@hV+>tjiv)Cz3AyzP{vxy7<$~OeTT!c7JQf6T89- z%?kmn<${;(P#uFN<0A#FuUo(qgT{&F@ekspii W=d@ZzPG(Cb=QBs}_=7thzxV(viB<;y diff --git a/samples/minifram/bitmaps/copy.xpm b/samples/minifram/bitmaps/copy.xpm deleted file mode 100644 index 47565c1cae..0000000000 --- a/samples/minifram/bitmaps/copy.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *copy_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c Gray100", -"o c #000080", -/* pixels */ -" ", -" ...... ", -" .XXXX.. ", -" .XXXX.X. ", -" .X..X.oooooo ", -" .XXXXXoXXXXoo ", -" .X....oXXXXoXo ", -" .XXXXXoX..Xoooo", -" .X....oXXXXXXXo", -" .XXXXXoX.....Xo", -" ......oXXXXXXXo", -" oX.....Xo", -" oXXXXXXXo", -" ooooooooo", -" " -}; diff --git a/samples/minifram/bitmaps/cut.bmp b/samples/minifram/bitmaps/cut.bmp deleted file mode 100644 index 15554338a01bc4d8f0a501c32237e84200e64583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvU!3}^Q5Cqr6gr}Ba8OD(CvKJo2^+{<|WDB@(K8*2TclNjo+kV075Ef~cCTYMZ z2hQ$)mH}PlY>+FWlp?l4?H9GSBqTFi~p=nI%+}YJ={H-mN0|?29BK#fUL#erbtT(lh^R?4vYy(d-6AGn1|j$rr}v KbDqI%Xjd+{i$y;G diff --git a/samples/minifram/bitmaps/help.xpm b/samples/minifram/bitmaps/help.xpm deleted file mode 100644 index 50fdb4157e..0000000000 --- a/samples/minifram/bitmaps/help.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *help_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c Blue", -"o c #000080", -/* pixels */ -" ", -" ...... ", -" .XXXXX.. ", -" .XX...oX.. ", -" .X.. .X.. ", -" .X.. .XX.. ", -" .. .XX.. ", -" .XX.. ", -" .X.. ", -" .X.. ", -" .o.. ", -" .. ", -" .XX.. ", -" .XX.. ", -" ... " -}; diff --git a/samples/minifram/bitmaps/new.bmp b/samples/minifram/bitmaps/new.bmp deleted file mode 100644 index d66feb2384ad4c626a078c995c1a3e49af78ec3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmbu2yA6Oa5JQcGL>b0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/samples/minifram/bitmaps/new.xpm b/samples/minifram/bitmaps/new.xpm deleted file mode 100644 index 754d2d20a2..0000000000 --- a/samples/minifram/bitmaps/new.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *new_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Gray100", -/* pixels */ -" ", -" ........ ", -" .XXXXXX.. ", -" .XXXXXX.X. ", -" .XXXXXX.... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/samples/minifram/bitmaps/open.bmp b/samples/minifram/bitmaps/open.bmp deleted file mode 100644 index bbf93fe03364e63f3e18a3507a0e85ab8ea2f87d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmXv{u@M3>3=;=;U&0ua+_3>YyQsonW~6N3OvKTr2(k@|B{{YeKb~(CUb3rr5zpcQ zCn>O}mP9XDa6kd~GO1FGG0<95V`X5i$V8neN$dxz4&8XX3!AZr-;ApY^eS-9oTLj~ Y^Hcc9z2|$wrXTtLH=Rc2n(WoWFRhqJ00000 diff --git a/samples/minifram/bitmaps/open.xpm b/samples/minifram/bitmaps/open.xpm deleted file mode 100644 index 54748e910d..0000000000 --- a/samples/minifram/bitmaps/open.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *open_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Yellow", -"o c Gray100", -"O c #bfbf00", -/* pixels */ -" ", -" ... ", -" . . .", -" ..", -" ... ...", -" .XoX....... ", -" .oXoXoXoXo. ", -" .XoXoXoXoX. ", -" .oXoX..........", -" .XoX.OOOOOOOOO.", -" .oo.OOOOOOOOO. ", -" .X.OOOOOOOOO. ", -" ..OOOOOOOOO. ", -" ........... ", -" " -}; diff --git a/samples/minifram/bitmaps/page.bmp b/samples/minifram/bitmaps/page.bmp deleted file mode 100644 index 3dbd4b05b4c2d1a4f046141d450caf34c1a3d470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmaJk)fu{chJ-2TT-iZmtVS?uc5roS;-EuD8k*^vaH9hj_d6X ziQgC358^U$kRpEdIqzx8X~Jz0i&xCtBKWwA%eHOw^mwIrw+KG&;&N&1L*Q{1Xmx8p zxBo0O*pac2@{B`!>-fgLdSDP(C2}M>_DcBv60g*0UKyHhy!Oc8UYD-XBeIyOWTry_ zTA4Yuua#Ixm?vFMcI3@F*>XSp02Lyo AJ^%m! diff --git a/samples/minifram/bitmaps/paste.bmp b/samples/minifram/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0df7225f0a7adbe8457b41af537813bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%Ci@5Jbns$83OZ*I;# co}I%%@f6>ra3+S=gC69}eM%GII+SAI4J;x>B>(^b diff --git a/samples/minifram/bitmaps/preview.bmp b/samples/minifram/bitmaps/preview.bmp deleted file mode 100644 index da1f4dbc4be6c2dd8fb9d7cb71cc48a4a7c139ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVu?@p83pv2yNo4mlT?N_pr2ISnd1NHDM5O^cFcMc59&^> z)PfrwsOeYM05)2ipmU4fJIss+o(=cdQCu+!%TlZiKDH!a!aP2;C|UGpLD9M;zmsLJ XIp;lzIUm!ckI6HO{IjaYcZ_-fA4^nl diff --git a/samples/minifram/bitmaps/preview.xpm b/samples/minifram/bitmaps/preview.xpm deleted file mode 100644 index 0dfdca46e1..0000000000 --- a/samples/minifram/bitmaps/preview.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *preview_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c Black", -". c None", -"X c Gray100", -"o c #808080", -"O c Cyan", -/* pixels */ -" .......", -" XXXXXXX ......", -" XXXXXXX . .....", -" XXXXXXX ....", -" XXXXXXXXXX ....", -" XXXXXXX ....", -" XXXXXX o..o ...", -" XXXXX oOO.oo ..", -" XXXXX .O..o. ..", -" XXXXX ....o. ..", -" XXXXX o..Ooo ..", -" XXXXXX o..o o..", -" XXXXXXX o .", -" XXXXXXXXXX . ", -" .. " -}; diff --git a/samples/minifram/bitmaps/print.bmp b/samples/minifram/bitmaps/print.bmp deleted file mode 100644 index 00319b55bb23c3c69cc051144d80e5275747c53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZur!3_d23^Ni^o@EUFY`~vgA|YX<`*bfpod|VizM>j+f}Fx~Q7! zgtHKM7yg3|DAD^Sp<0YF#C}+nSj(MC$5#Ss27*aN<{l9dYV3`7rsq)3!X>4ws(){6V0MX5FKAjcylGXqN-n#XsS=YhW0WogZT{L^_i_GT%*k@+ph E1NJ~MtpET3 diff --git a/samples/minifram/bitmaps/save.xpm b/samples/minifram/bitmaps/save.xpm deleted file mode 100644 index 01b18f9340..0000000000 --- a/samples/minifram/bitmaps/save.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *save_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808000", -"o c #808080", -/* pixels */ -" ", -" .............. ", -" .X. . . ", -" .X. ... ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .XX........oX. ", -" .XXXXXXXXXXXX. ", -" .XX.........X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" ............. " -}; diff --git a/samples/minifram/makefile.b32 b/samples/minifram/makefile.b32 deleted file mode 100644 index 95ddc80d76..0000000000 --- a/samples/minifram/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/minifram/makefile.bcc b/samples/minifram/makefile.bcc deleted file mode 100644 index 669f01905a..0000000000 --- a/samples/minifram/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/minifram/makefile.dos b/samples/minifram/makefile.dos deleted file mode 100644 index 13e3a4ce8e..0000000000 --- a/samples/minifram/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/minifram/makefile.g95 b/samples/minifram/makefile.g95 deleted file mode 100644 index b4a920f047..0000000000 --- a/samples/minifram/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=test -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/minifram/makefile.unx b/samples/minifram/makefile.unx deleted file mode 100644 index 0b249d4c88..0000000000 --- a/samples/minifram/makefile.unx +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for toolbar example (UNIX). - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - - diff --git a/samples/minifram/makefile.vc b/samples/minifram/makefile.vc deleted file mode 100644 index 4ada748eda..0000000000 --- a/samples/minifram/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/minifram/makefile.wat b/samples/minifram/makefile.wat deleted file mode 100644 index 81a83e42a9..0000000000 --- a/samples/minifram/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/minifram/mondrian.ico b/samples/minifram/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZCreateToolBar(wxNO_BORDER|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR); - InitToolbar(mini_frame->GetToolBar()); - - // Create the main frame window - main_frame = new MyMainFrame((wxFrame *) NULL, -1, "wxFrame sample", - wxPoint(100, 100), wxSize(300, 200)); - - main_frame->CreateToolBar(wxNO_BORDER|wxHORIZONTAL, ID_TOOLBAR); - InitToolbar(main_frame->GetToolBar()); - - button = new wxButton( main_frame, ID_REPARENT, "Press to reparent!" ); - -#ifdef __WXMSW__ - main_frame->SetIcon(wxIcon("mondrian")); - mini_frame->SetIcon(wxIcon("mondrian")); -#else - main_frame->SetIcon( wxIcon(mondrian_xpm) ); - mini_frame->SetIcon( wxIcon(mondrian_xpm) ); -#endif - - SetTopWindow(main_frame); - - main_frame->Show(TRUE); - mini_frame->Show(TRUE); - - return TRUE; -} - -bool MyApp::InitToolbar(wxToolBar* toolBar) -{ - toolBar->SetMargins(5, 5); - - // 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( paste_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(); - - toolBar->EnableTool( wxID_HELP, FALSE ); - - // Can delete the bitmaps since they're reference counted - int i; - for (i = 0; i < 8; i++) - delete toolBarBitmaps[i]; - - return TRUE; -} - -// MyMiniFrame - -BEGIN_EVENT_TABLE(MyMiniFrame, wxMiniFrame) - EVT_CLOSE ( MyMiniFrame::OnCloseWindow) - EVT_BUTTON (ID_REPARENT, MyMiniFrame::OnReparent) -END_EVENT_TABLE() - -MyMiniFrame::MyMiniFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos, - const wxSize& size ) : - wxMiniFrame(parent, id, title, pos, size ) -{ -} - -void MyMiniFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - Destroy(); -} - -void MyMiniFrame::OnReparent(wxCommandEvent& WXUNUSED(event)) -{ - button->Reparent( main_frame ); -} - -// MyMainFrame - -BEGIN_EVENT_TABLE(MyMainFrame, wxFrame) - EVT_CLOSE ( MyMainFrame::OnCloseWindow) - EVT_BUTTON (ID_REPARENT, MyMainFrame::OnReparent) -END_EVENT_TABLE() - -MyMainFrame::MyMainFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wxPoint& pos, - const wxSize& size ) : - wxFrame(parent, id, title, pos, size ) -{ -} - -void MyMainFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - Destroy(); -} - -void MyMainFrame::OnReparent(wxCommandEvent& WXUNUSED(event)) -{ - button->Reparent( mini_frame ); -} - - diff --git a/samples/minifram/test.def b/samples/minifram/test.def deleted file mode 100644 index 897b9dacbb..0000000000 --- a/samples/minifram/test.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME ToolTest -DESCRIPTION 'wxToolBar Sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/minifram/test.h b/samples/minifram/test.h deleted file mode 100644 index f228439556..0000000000 --- a/samples/minifram/test.h +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.h -// Purpose: wxToolBar sample -// Author: Julian Smart -// Modified by: -// Created: 23/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/minifram.h" - -// Define a new application -class MyApp: public wxApp -{ - public: - bool OnInit(void); - bool InitToolbar(wxToolBar* toolBar); -}; - -// Define a new mini frame -class MyMiniFrame: public wxMiniFrame -{ -public: - MyMiniFrame(wxFrame *parent, wxWindowID id = -1, const wxString& title = "wxToolBar Sample", - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize ); - - void OnCloseWindow(wxCloseEvent& event); - void OnReparent(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -// Define a new frame -class MyMainFrame: public wxFrame -{ -public: - MyMainFrame(wxFrame *parent, wxWindowID id = -1, const wxString& title = "wxToolBar Sample", - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize ); - - void OnCloseWindow(wxCloseEvent& event); - void OnReparent(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#define ID_TOOLBAR 500 -#define ID_REPARENT 501 - diff --git a/samples/minifram/test.rc b/samples/minifram/test.rc deleted file mode 100644 index 6c9086d0c6..0000000000 --- a/samples/minifram/test.rc +++ /dev/null @@ -1,13 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - -icon1 BITMAP "bitmaps/new.bmp" -icon2 BITMAP "bitmaps/open.bmp" -icon3 BITMAP "bitmaps/save.bmp" -icon4 BITMAP "bitmaps/copy.bmp" -icon5 BITMAP "bitmaps/cut.bmp" -icon6 BITMAP "bitmaps/paste.bmp" -icon7 BITMAP "bitmaps/print.bmp" - -icon8 BITMAP "bitmaps/help.bmp" - diff --git a/samples/minimal/.cvsignore b/samples/minimal/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/minimal/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/minimal/Makefile.am b/samples/minimal/Makefile.am deleted file mode 100644 index 671326bdeb..0000000000 --- a/samples/minimal/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = minimal - -minimal_SOURCES = minimal.cpp diff --git a/samples/minimal/make_cw.mcp b/samples/minimal/make_cw.mcp deleted file mode 100644 index 695bce15bfc01b3b100a13bbb9a48f1649acf0a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133039 zcmeHQ31D4S(Y`lJleTHPrF+`GZnQM*3uSFzSdu1P(k5+aT3QOyye6-0+HAg;&;m*$ z^6M|4AoAk|3W|t;C@6>uvIwFmC?bo93W^G{x}cz9|8LHjyS;a}q-jg@&PnFZ+&OdS zo-=38+X$9t)0n8L$Y&c zqPg3s$`Y)PhK{ql9}YMJFbYr%m;{&%m;xvTOa)8>Ob0{& zX98vbW&&mbW&`E`jsVOB%mW+=m=72MC<812ECfUW<$$9w2rmO(0lW%$4e&bPkARl| zZvg%R_$%NKkUt&x&wv*Je*^p-@Fw6NfPVts0=y0Q7i2dB{~Pchz&n8d0``Fqq+_Ay z0LXvx!1xnzK41u-08j`R3K)jE&jYRjTnqRD;ERCI0ImjH2lx`;dcdavp95S4_%h%I zz*hh_0&W7_4EQSG7Qoj4UkBU@xDD_Pz&8Q61MUEP3vegkvw&{{z61C!;4Z-3fbXGg zCjb@$mH=Xa3c%5T;{YcDP6C_^SOj{+za?V;94*>25JOX$W@KeCg0FMEF4tN~!3&?H)egg0$;3>e&jI~B%tpoA^!vRHr5dbRrfLuT^U?gA^U^HM1U@V{n zFb*&tFaa2cQ$s1$ZwY30Me-0?GkL0Tuz~ z0m=YJ1C9Y43z!R70GJOr4sbl+1i)gz5N|R1y~KJ0~`UMk^`W26#_;9W&+55H1=dm+I}ox9AG?v^i%t1186@Z0aVDQ zWNWeojYR{1`b_qw{gGdh9cUa%0Am0;fciNHKz*S$Te~0 z`j`(OI}Qa51Iz-@*pC2^Eosb+{uh8ITa!O{*_LcH1VA<>`;7+B*wA><_|SM311125 z10n$OyEOo^EsX>D6ZsYS*F?Z1z+}J_Kq-L6+$f|gLWTfDfP_vO6u^vq`?S2T+=LZP zhi~dlFyS+DxM&^YNrJQwiD^GMP(=IiE3`Y>f^1DTB^y$o$v)%-Bv1&jlX2TTA=1WW=<2225z0;U3{0j2{Y*c;8yCNvd(M@(3?dGLJ&`xJA79277cKqo_E z0TTg}0Fwbz0HuJbfN6l~fEj?9fLVaq*qjRW1FNDR)Sq;pr`SP$Kj1!3d)&JZnlqR1 zMrxL$*ck;Feeo~kcoh1g3(81=b2m<{G`Fb?FWSFfDt>mnx-FhcB~sCy@g(FNWpiyqq<-UOI`XjwVKis|?0q$CKf<*AmX_#_ z?F|jpWo2x8LCbasGubxpdy9&tr9}_5VH+B1qg~0ww$?q4UYIL#SJe8nQ9}iBt)@)J zOciT=)*N)a!f@F3V>T_@2pD&0eImI%5n0>Q-M`MCf>PDcP)7kl%d4qdv8j1iYYW|U z*x1-mErvM9InX})aX5slT!EOsRAsq|5Ts4%JmPqJ1?Kt;tw4HDn!MPkPm3*EQr+=n zKh4yqJ$VWHb-_PAN{z<$6y6L|(|HYrL@E&gg+(fKj%`F?Iya{CI4Y|F@@z+*lgl$8 zdEP`Jl*%pug;6RL1ZaO$J^-NeJ}Q?2j5zf<&~!|u@>PIwKKMP*bnQUpQ2?DYQ~4Eu z&hx3f44~@>DsKZy1SRfih-(Y1()}KBjY0GrEa)5?h3*T8^Jt>0u^?NZ&~?5zuO_+$ z3p&3>(a*tx&w=#|LDTgEihdau(*&vMR{>9F`pdu(rtbir!Svn0GnsxEcox&Y1fI?G z3&7M?6#Xw)93erxrNM zG+krS*rVjo^~OG}yJ=R7Rv+6X1*A}sj2Bj=N#$)+edH(){6StvQ*!h-gV zlJi3>P7tJ)^K;zMuraJ{7SMgXs2n*3rd(=;a3Zj?M~`>BG|@-_jlW4aTV#tbFz zLM+w`Qp@`^FkNS( zs;ap;kxE4x;@vwO{Pl4hFS{d+iSF*!j_r=B<*jXrNPWDkE4^ZAPitFCWZ9nXWZbbq zO=4@$_U(yeL@KrK{`keKBXk>oMWQ2}UDKMPbH(+4!Oc4cynX9TwHSC`{t5iMx%LZ=+Nku`X{(2?HF>gDxlw!KNq*Ehg|9f>wOlTLR@ zb9=m_C4vSeGAirh9ou{2+cPWbaZ6fy} zPm40z-VjeU!@h2I;VL)7;B4D%Fp2Fom{jLCm{gxRn8a;Zw%l$3!Qy8?wqAl=m1@r% zoOOwFU3<5&wPPK1BGVuCEI!_?bHrY@r#S&n?ChX=xA?GhEbp&vH@iHPc0<$7~mM-ZNfQyU%*F%EMXAdLMh5G8r~CYYe+u zULvYIBY~~f#pz{jdPERhx2Pa0{33%T;1V6IO3w&kiDX0xtIER!-qAvA>K8GDfOpie zS9=+eW^m@AKyHaDKc}EggPek7+?|4IoYBPGsfVGkgE#lv@y4K?`>pVqAd|mB?97%DdrPzOd0>UV~Y93A5+LD4w*9k@yHbOj!O;^ zA6In91&oG6*3~r~5<#QmbtXf@Ybx?Qt8q%X#WPcfS6nj%g5sM~&?C+{g?!_kQ`9x? zIYk0Y=^qD8RYCF46!eda>0%!7(GtUOx`zpeNEjz2&j{md^Kf!2r4s+B%QCJpSJrt(Tv;6$Z*5{; z(bgv7A8T!b?vd6e;A^;mC@a+j##kv95MdocUh$QMyrZin5bS_qBCDm(&jCH6sqTE&JbIa%{^kES??JEO$qn-=cx9Heh#@Xv(Pp2IkdP~W8*PLn<753&o1T_|Lih8 zG0-mN83*k`Ua`xCLf-K+Lo_pnW{3os(kGVMRr$tKyP!`@brExms}3>u*qSa9#z})> zY`RW=Cv}On=?Vf2?-g_HYP{mEUB)~1+NC_=Z@P$I3{IB~JLBDBak@4aYmtqE@2y7c zVqWpsF5?rA?P8ws*e>K1kL@x(@z^fr5s%YFyj(q9&Tn+mWiwqpT_R|7Jmaxlk#{_H zNM*!hd#!6cwhQ>i;|xK!c$^{R9gj0aGvjfFNPsDQ;;~(oZ#=dO`ov=wF}HZ^5Oa^m z=^|mAl(q@$q$KO_q$J_Ix9W%sqB`U0ce;q%y;X;dS3D;5Mx^qN$95@?c$_Zc7mw3r z!y3~)9;a*ba8r5Xz~}6k^hhDUSS%$1BC!+&(8r}VyJUtUn6_P zP)mhZ47DV@W2hzL5ks8n$55vx59=6b+h$N&*VBP_o$ap*M@W$&*AQ=O zCrhQjf9g2B_ftm07)qIp?m?=glxM3f8~7=*q@0Qzueqxge+%H71W~47nZq=F$&$-7 zeUU+5pHSHjFusP`3)=V^>NB7V090-T6beda^Dw@KdKJ83lCP8Q;Y?2krmrYa#Ft3) z6$sI^-(o>(dK2(Srh9-#F?~7kXr^xh9>es*z+;(y9@zLA>TS^DBtM6EZUmU|xXY^Fa8%wI$0lAZZ$s9gG*XfDe<13Zsu>Mwr{l}G)i z{h{R1*GXl9)bdURUchua@It090j4i+Q1ZTvMY$lgyoZ2~V)|uZvK>l3`Nh$K)bb<1 z{54em$)IU}DEai&%yEL$@{_>)HB|n^pif}_&A|LMRQ``ZFJb;Gz%fY=DFCiun(TBU z(@TL*V!9ca_Kh;+0xV7uq&DPQ;7X?N0ub~R=2EB^;&jYWPbRpS|bfFZIkJJlNE2O^C96%|I zW3g6{TH*fy^Vd*?WGfm!l)}fbSSLuW@J(R;8fs`M==G96lx(np>FvP$HPp~gfab5E zhTaaEzlIw6H0aX-C`12?#b!Zj!^j`WM^T26&CV30HjHe}UqcPM1oTJRJ7mo%$n`xQ{yO}1PdzhxVPi;jhz6OhPi2_Z1r#h74KVk7cL24sO z=lhvn1bjZz)XO0{khaUj_cOq{kKmlf6*J zl5IaLNNwz?z~n08&AIcO{T8_CR?D4{~i|Pb136~ ziN&`Bsf~XN_)bYrmUJG^d8{vGfm@3_C=XUvJVPUoA@H|4K!s2Iw)F#the~f7w^Pe+K zx*unn#_Jc7o-!Wz38qg0ev;{Jz%)NmrhF8Orv<4^p>d|ML776lX9Ot{!icZWv08cr z7SA$&8St-}Cch$IL@A~D{aZn5rKIyYrfL7rGyOL3?<75S4)E`prg3?J=@jrEn7$JD zk4)2;(-@;nC4DqDDANkDcuA1jG#cwaGfg^QW}3$O6{cxUzsfX?|7%Q>4GB=DkH&(= z31#}RSo}qh+H~^CzcSqm{5PgQ2mE)Y$p_zLn%ejeNk>KiQ!GG zk-b>_OORURdSIH{C=v1til-I}3+&y)O_rJ(bft^_@V>2073nEnW8vOCI5%yoSz(-;?hn50F*B$_iQvyK42 zi0Rd!$rdQH+CkGCAo_C9Bbg?hqnL)z>NFlGvtR>#jHG9y@A_D#t3j7AO*+Rh{ZY{4 znZ5<|1g0^E^odNvo|Flb${gsXjF^I61bPb7n?S=Zf`1-pvOCHg%yE4h(+`54&NTc~ zk4X9m^jn|7^f91kGEF*XG5vnfvzdl3iOdaHJ>mh-upN~n;HUarNzaAN^m$B|fj*My zI?(f(?f{KCDswLby@2U&f?mip`9PFu_>NvK>3PtnAH{SnXxM_vyq%zrX8Kal=ns{7 zw}L*F=_f%S$29y}KVH&D!j}38Ojm+l%yb;|5~e>4I>t2VtYG>v&?hqeSI{R(dOpUM zGGJ1fkL~nRm_7}3CDT2itC+qD^irnp0S&*QG9U9)uaR^ae3>$3QV}VemNVS|{tBjd zgI>ur>4c4_l-&n<71M}wlvR_;0?ZZ4t|@5PkFsnEdL8IBOm~7_%QTG__D5yGZJ5qdxi|KEH-XdvhX?()qZdsk<&JA%9FT7APt$Lhw2yemz0xU;3XE|n_{4aREw?&f57n-HsBTaR2w#~dxhR@BrowR+jQHOuOF zWkch#bxcCMdcDDKT)C{ypx4$dGo&}v)(CAIKuEnr9V2)xThH0j9p4%it>!+^$3t4o zayDAExfZRO?m;V?s@E0 zuWC5%ZPz!}MXI{G_(pFOeb8zp`W2u{nPCDF!3qFA*SsHUr|=^^CCL2jlcXXyYX z_aX_LwQI9N$W4IU>=1GjAved8Gj|2HW4|~{){Y1vM^}JzL&!~m+`JHSrI0%^gdAN} z&JQ6s4RU26Jj6d*kABYcif}O{Ab|7>Qyp;|N35 z3|=44>oa*>s6@Tk1zJ~1eBh~!Co-O7+oe8K-uh^)p&M3(tVu{>kCS+PGUF+Xg=W+X z&A`)`Ki#G|FJHVI2d#Nji*}SS7TT~bwgScvHSE*8K;^K81;t64z-p1*7El*eH2!Y+ z(GiC1r2wzIq~FxF*DG3CV31qDc2CvzuJ9o5w7q+{qUA@5cCMnc%>wFIP_k{r-TRwy zL7#Tc;J%gO`dZ-7|6mN=!S-#Us#F$G7LXPg#}9jO-$fN^0TDd#o|Y;u7Qp+UK~Hh* zPib+dsux-+@sY{Bzz4SIw&%Hd18@w;kq==9pwZ+~xC4=KSfa@XprvguuD>a%Pme~+ z@sGD^%A3=EQxb2G;9V`_#}*yRFkZHTGoHTw?xJmLCyATZ1M?(1{h7OSH@sE|Gv$ge z5c4XrW7tbw%efjVdzdt3@R)$!fuP?3)MK$&Ye#ciPfJ2wUu(%6lkVT&i}m)PjR>Nzp-0&UFrv^9H-ltn$Y z`9p3v7a@&% z7>e2ap-@xrC5jP*O@_)Jkw&(~{*9@5`Es`otxP-SfqM#V%mZXhj)8{ z2KbF&=-mXZpK!q#p&@HJ@pI~aMX#@KNcstcsjGyL$X&|$FI~48Q`OMG-}k%LhhjEC z3LoIMg%b7=B0Vc=mv4)1Z{6l2rmd=4$6vqWNAF!qC3veEmaT~H?Aq>9ZL&h?*_qrH z1(+N4gBXQv>Ni%`^kY-UCQVpd*SN0Q!R*Hh=~=&Q)B5O+?)Lo|H0qbovon5n+@~G* zf}I@EM}qaV@0Xc{e$gIRudsGc2^oS)OJ_6kZ|q-b!sg<$^8Hhzksd11xPOzv__NT{ z+!jyKrx_k4%y`kJ12Ip9o}FC@zlj>UU+1=Vd2~szgZd@rsYsweiLyPy=9G6^#H_Ec zTk6+qs>6k!kuQWYlDL-ohPvgh6*gulJp&Z!)-GKYvF+NGOiR1sD$`Kcxz)9z56mXW z4rt_U_TRag^TTtrIAS(arXTMTUXOo+!t3#!fL1P(z5)HX zfOm_$j@*+D^CLI9=5B^Q9=W~s4A7DLkQ^yJd)3DyWuPAa31~*%Kt28kratKLRTNs! z!9G%Y*r(4&N)J7~m@38*H`I|bNY4NqDJglI`wX_Y842F3Dw8_QkCYykMpE*=9VtEa zkf9FNkuuD9iT1pUj+B9478i?|;~(g(b9p>*HeEA~kb3;)AKe+_T$zD-{2LTrk8i;2 zLwiDAqXhM&a(XU?kK%XLSkRIe^^eY&5IJEy=QPG~HNJrwS zij-IhS3SiBF0!;CwW3e4-D~l%klZ-hxfR)sy-QlISXV*Y4}rPXYX$GNbLRm)$K2{a zb(Y54+B!QsA}bSZo}oi}n7i=|ZkYSd19iVR%+;&WE?ePivizN=7M3?>Wg=*t2ra*zng z#3Z@sOg6K-v7En9@iFzL=d2Mp1pt zS_{~I$O5mdnm-VnJ@!!d7_w)q{d(%iU*RXH>ISt1)USZi@T#BlH~>zre$L|n7*(lM z7C0~#Fn-R1E*Vu(7El&Y7RY7`&~tfJgayPQ!8|UgckPv1C=2X|1?0Q->fOlwFyUa_ zH0$4uETD;D`>3nGgM8?3Jm4!cRa`89<}PZfOX)Nsy}wAvYOv zH6i3mA-CL;Gn)>!RnU*ASX*JqdG>c2~~w5L~5u?;qU%oekG4$RHg7|OQa)PIylc%(|t???5$^j5&^3e{$*tm zPb>E^F>#=t=5&{FtefdE1NC^MGh%Ih(BrEpw4Q^VnApQUl*q|QYw0j-+DcHrdTo0A z5~GIJGXRN+MZZ)Ee~*#xb7EpoJ>)6}D>1Q3;ZN3fD@|Yy)X$am@yB;u?>7WAV{8JOWYjPo`Zd)^k`3? zkCYyIdeL{|h#Tri8Kh?bj+82eKmD+H#KY2kK2mz>A-_LZM@p5#KjM>MT+G0*KQk7n zCuHOe)DtrD2J7)vWF85E^r#g6u0H``MsStF-^YUx=~N1T3i$mfP1r_6D3!wB+j=U) zuD5Nnq()`f&60sW@ZH4gNUCJD1@f$S)B0_PoXqc^`>jj7A~(Fgc1>-4Rb6!1CijfL zm84(1iH8N_4f&RFtz?r0)*<+%`^BQ$ z9)IL|OK9^Tb=KLn>7c?lj|M=PCsWm4iDw$KI>gDhIchWwMWN#D_}C!Awf;>nf>UKvitljp?h z8|xy~G40H3Gg21y*YJl*4d<2k6_1$h*Yw=|LFHs0%5H4)R$}$Ux2ch;p(~&}z{jxm4XF$JRR~fcEjjb|l#XW6fR7AJ8ZZl{%ysBzlq_&;Dst(AE zwX-YXcZ)K#9+hFsZ5Y5)8MZtO6O!EoxdDy5&Hg(!zs~l_x6`Mu*8}zVHz<62d_Ow3 z@`ePqCuH7`AUy{=Z-_^G`kXh!Lr*W~lztls@@(`gEiW)D!YZ8K@`Zkuq41uOjov9i-=AA1OWB z)8`|lhn`;eVV{naL3#$@NU1VxsSI0i%YKz6-YS~J%kllvAU7gC8(TY$Ihqn<;Wg@x zT`t$=#WG_0@5YQQKKXz86nO*n`1d<}dwc_?b&V3(o{-llL3&h%EtO%*Wvbck+4y*n z%CO~Px{$0U$cYH0GHiKU%zOguEuw0a1(XGp1qQVR%s8liuX|9Bv+CS|wg6Iu;0N>*DSN2kJ{2Guv#x@XGFY7=Ew=XZ2>cg4!fcgD|- zM^il=Q6!Wp?@D&I^fY&;%6GQxDqj>`RF2pDQswck*78AUn|EI>TTPn+JC73i;pi9G z3x(CkXaxd~rJsXGDM8*BD&u%EZ)QAR8zJ};xc&^zvs^dD#!{x>8-l9* zO6(4uP@hASp|ZHpy$h9sFN+<(rRypMpNmnllx4(+O7|3eS!$K+?Y7|$us|M8ZbGD7 zQz`fcv$q)jP#HP}pGeFo-ZP5Tb~Ly3v?OAhPXb3u)He$#}Sr zxnKKj{vcB_in+WHuPsFyd%EbQ&)CXDyd{xLspEv79S2LD%^!w{^M_1-kO_QS6Urk7 z%b@%8!{!eK9{ym&2jMA^#+ubCg`bZ>5A!OUKNQl2!cM=~tY zSKNdR4pE8)&*U5R4RyY5-uLG?`#Si5vpBuFky5|4(u&aFXug6f+f zFrbmw|2tpn16@xm^Jjg{Wo3SCH$NB-)Z^cv@OnaicpTWCkRKig={eXbA3WOA=adf~ zdU`R~eM_h4;!_h>4n)d_`grr&M)7+v9(UL#RW&r!`L!lY z9kuun9l1Tyw`f`)kKEpR2I$CrNRE`Az3StUGEh&*BW0kTkVnd3J-&*}BX^LVgMFm* zXiuMylpcC|F;Dw+qzuwC07pud97!cdf?M{hH1Spgaik1<7NwFSRhN}f_9(BR5|O1j zt332-kE4ieAHqTG zRR!RPf3XE}f#k=doju)-E&H@`3W~giq4#dOw@;h83X?vwVuOB}J~Zb%b6pU6uXBCB z*W}l&nl_?*_a6Lj!CN6M(H+}2Ek3@ij9-rvG)zXOG=TRjznL`}p?>?+u*3jj_1mWd zXiTL_S>V80!1(P``*G*M?onx17El&Y7I=4BAotzbtV7W%aY!(a3o4`Mp%??T&p~4W zag9$|l}4^Ywyo;6cq)}hMR&$C9t&=+ZHUxw+}t2~u5y458VBfqM^p~b{@YG%>9Byz z9_L`Gm8`OW$^n{H!yVk&tj__8Yn-9=iRAV~WNm++u9#0&=qxXN4Gp!?u4H0c>mK*P5mJAo6)u46V(Dvk!+81w$PZS(N=?N za9W#|BYE&PTcxZM8$)g^i0L8ZCPHpb2)Rj+J0gVKWXR18AxEjA=Y^0fh1`)Lg)Hz0WjI-*c zvVgLHvVe;P4(K_CdT3%=JnJ8tsGDD=FDOD;Kv_UpAX_YOK+iGMaV1;a$h)8FK8Ck# zRE@HLvVgL{Ah*B)J;zYTmqG45s(Z=;$^yy)-WE8Z#}{n^ew^eetv%J9_QmxI@JIE6 z-{x$YJ`W#R5WmC8-}nPfD`Y*nFIshD7UR<&)??=nxq&{vkb3O=coXz%?cH6pU)vRS z;is_P3qB@#)L*d1w#h?d{ptg!eEP zw0EVPe0{>*=xelo#t5Ct;IgBAaMt|{ws8L>fugz{Y{&46q?PlW_E(YJQkBvWUJ@^aQJ~n>QTi_e} zweo@JCn7-{De_X)PvQKM-?iX{Jj;@>a%SK{UT$zPZJ7f9##C4b~f*ttOJUrO>1NPaiQ zF{e=S$6p8DgOXoF^Q1)bs~-Xlzo%04AuNVT{U0YD)u9wozhrwVjvEL1hr|WzDlCen z{5!PI9}!p6wqRR*h}3`VkzhP5*jmwzz$Z)j&O1T>nE5XPvz~7H<=dY~{@LiG{*07= z?{~m^MDq6>4Szja>R(0ed{pwk4xBIh8++kc@O~=!=e0o3C@HW161<;D{_Veoo(9RE zb2WI6N&bkR1GD~UK4@A;`F1(Rh2>8mJ3lVi+C6)rXN=S{A_3knB!ARe;H{E>^f1s* zNPh7fz>5Vx_Rd+LpOpL&6M;ua{(s4~PceTEupF=0)iXgqE&0WHz&u{BZUs$!Ln$uC zg8k>lQJ|k8uBMG9n>;M_KQjdMuZXK@@9TzrCQAMlwBKh1TYEpvyBj3`Bi{r4YsnvV zE3o*`QIEZWvCw`a`S*Vu{>FZC>IU#&Un-*r&y;#@CjWU3fHIn5Ap7AC`Y`5s;)4HQ zEaZHNUHmra-w_x6A{p-2xgP`ld*W)^`P8q=rT!;r%wHg`rZtftt&;pNj0F7$;%Zua zJQl3~Tla$gBLL+A_&`yYlz-rKF#aUi+GEH~Y0SrWwtz?eit;AfYs|;1iT{#dYnNXK zd&>D3d;Sja{w(=VO)}?W>~^x@%aVUS`7n>~&98xeh50mYJieDu`(I@~^^fhmq8c=9 zgK|Fk70;uuk#D?CT)4#yw1?+oHGNn_awzAMoq0aq{sGW`A+DzFJrN73r(zx1;jhGn z8_k6to{yjE0ON0htv#!o^D%bigW&yL@_&1bH6PC>-+5E=U#Nf{o{vLmy#68ie^_nJ z$6!aXr#(bReKJds_P+t73IUi$Rs{-R+f~|exCSabA z!_EW!Z^^%ca*xXSSP?rJ^naMY3|P*`irfh3cbLBpnEkeD0%)=$$`#wNkmFU+S_66? zal!Axg2$@_V+eDJ^72=Kz}(dN81vc* z;PZU^HTtB}*rWUn=NUX7V>jOde!k>iLAH|fv0~JT;8QF>d2=ro?1yi_C-nls*53RC zu$(Uya}oRXLdkzE0nGF9F3d%JsNn14p9kjocsKf_Q|tqpfcEfwtVkRO#&E&cii&`F zK3;n+__PibnE^NK74xy;tXW{tH~~ekHRof+rr&~5EcsQK3&woBu@QWlGblTu&p19- zJ_MR#BFe6@=6tLu!ko}YOMcN2z-)&bp8|i33M}1sz*-w1dhOp99VFaS7(NUMkpn6MTt} zkFo0>1%ImGYsD?VJRkprV@2+bPb-`B<@;e1_VGvX|_zgqI|oC+-CK*g4)z^`Hc zS~CvBZl$?H$5Ei~ecp@%v4<`PW4YwthhrSaf!K??!CxWy_fvf3<8tZ>@K-V)amF}L zzUvqu$1E!y94{wX?v1C8%sG}6&td5!*~=nocQDdRvz$#=nMU_Si9I8T1>P2is@`45pj zWE_aS@g49HQ&9AWc3>&{6}yTUjl>4uiUSo#;aIH0rv;zpHT&T;?*|`kBK}V>e~shv z!)S|sn&dx1^G3#j*rTwq4!=avA2}cG%p sc32.def - echo SUBSYSTEM WINDOWS >> sc32.def - -sc16.def: - echo NAME $(TARGET) > sc16.def - echo EXETYPE WINDOWS >> sc16.def - echo STUB 'WINSTUB.EXE' >> sc16.def - echo CODE PRELOAD MOVEABLE DISCARDABLE >> sc16.def - echo DATA PRELOAD MOVEABLE MULTIPLE >> sc16.def - echo HEAPSIZE 1024 >> sc16.def - echo STACKSIZE 8192 >> sc16.def - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws - -del sc32.def - -del sc16.def - diff --git a/samples/minimal/makefile.sl b/samples/minimal/makefile.sl deleted file mode 100644 index 7dd9a0b6a6..0000000000 --- a/samples/minimal/makefile.sl +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.sl -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Builds a wxWindows sample for Salford C++, WIN32 - -PROGRAM = minimal -OBJECTS = $(PROGRAM).obj - -include ..\..\src\makeprog.sl - -all: wx $(TARGET) - -wx: - cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all - cd $(WXDIR)\samples\minimal - diff --git a/samples/minimal/makefile.twn b/samples/minimal/makefile.twn deleted file mode 100644 index 70cf377fe5..0000000000 --- a/samples/minimal/makefile.twn +++ /dev/null @@ -1,43 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile for minimal example (UNIX). - -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/maketwin.env - -OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) $(OBJDIR)/minimal_resources.$(OBJSUFF) - -all: $(OBJDIR) minimal$(GUISUFFIX)$(EXESUFF) - -wx: - -$(OBJDIR): - mkdir $(OBJDIR) - -minimal$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o minimal$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) - -$(OBJDIR)/minimal.$(OBJSUFF): minimal.$(SRCSUFF) - $(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF) - -minimal_resources.c: minimal.rc - $(RESCOMP) $(RCINPUTSWITCH) minimal.rc $(RCOUTPUTSWITCH) minimal_resources.c $(RESFLAGS) - -$(OBJDIR)/minimal_resources.$(OBJSUFF): minimal_resources.c - $(CC) -c $(CPPFLAGS) -o $@ minimal_resources.c - -#$(OBJDIR)/minimal_resources.o: minimal.rc -# $(RESCOMP) $(RCINPUTSWITCH) minimal.rc $(RCOUTPUTSWITCH) $(OBJDIR)/minimal_resources.o $(RESFLAGS) - -clean: - rm -f $(OBJECTS) minimal$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/minimal/makefile.unx b/samples/minimal/makefile.unx deleted file mode 100644 index 6e0b9cac43..0000000000 --- a/samples/minimal/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for minimal example (UNIX). - -PROGRAM=minimal - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/minimal/makefile.vc b/samples/minimal/makefile.vc deleted file mode 100644 index 35aefc474c..0000000000 --- a/samples/minimal/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=minimal -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/minimal/makefile.wat b/samples/minimal/makefile.wat deleted file mode 100644 index 2b200ba7ec..0000000000 --- a/samples/minimal/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = minimal -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/minimal/minimal.cpp b/samples/minimal/minimal.cpp deleted file mode 100644 index 8db65d0ad9..0000000000 --- a/samples/minimal/minimal.cpp +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minimal.cpp -// Purpose: Minimal wxWindows sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "minimal.cpp" - #pragma interface "minimal.cpp" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// for all others, include the necessary headers (this file is usually all you -// need because it includes almost all "standard" wxWindows headers -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -// ---------------------------------------------------------------------------- -// ressources -// ---------------------------------------------------------------------------- -// the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.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); - -private: - // any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// IDs for the controls and the menu commands -enum -{ - // menu items - Minimal_Quit = 1, - Minimal_About, - Minimal_Test1, - Minimal_Test2, - - // controls start here (the numbers are, of course, arbitrary) - Minimal_Text = 1000, -}; - -// ---------------------------------------------------------------------------- -// event tables and other macros for wxWindows -// ---------------------------------------------------------------------------- - -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. It can be also done at run-time, but for the -// simple menu events like this the static method is much simpler. -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(Minimal_Quit, MyFrame::OnQuit) - EVT_MENU(Minimal_About, MyFrame::OnAbout) -END_EVENT_TABLE() - -// Create a new application object: this macro will allow wxWindows to create -// the application object during program execution (it's better than using a -// static object for many reasons) and also declares the accessor function -// wxGetApp() which will return the reference of the right type (i.e. MyApp and -// not wxApp) -IMPLEMENT_APP(MyApp) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// the application class -// ---------------------------------------------------------------------------- - -// `Main program' equivalent: the program execution "starts" here -bool MyApp::OnInit() -{ - // Create the main application window - MyFrame *frame = new MyFrame("Minimal wxWindows App", - wxPoint(50, 50), wxSize(450, 340)); - - // Show it and tell the application that it's our main window - // @@@ what does it do exactly, in fact? is it necessary here? - frame->Show(TRUE); - SetTopWindow(frame); - - // success: wxApp::OnRun() will be called which will enter the main message - // loop and the application will run. If we returned FALSE here, the - // application would exit immediately. - return TRUE; -} - -// ---------------------------------------------------------------------------- -// main frame -// ---------------------------------------------------------------------------- - -// frame constructor -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - // set the frame icon - SetIcon(wxICON(mondrian)); - - // create a menu bar - wxMenu *menuFile = new wxMenu; - - menuFile->Append(Minimal_About, "&About...\tCtrl-A", "Show about dialog"); - menuFile->AppendSeparator(); - menuFile->Append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - // create a status bar just for fun (by default with 1 pane only) - CreateStatusBar(2); - SetStatusText("Welcome to wxWindows!"); -} - - -// 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 minimal sample.\n") - _T("Welcome to %s") -#ifdef wxBETA_NUMBER - _T(" (beta %d)!") -#endif // wxBETA_NUMBER - , wxVERSION_STRING -#ifdef wxBETA_NUMBER - , wxBETA_NUMBER -#endif // wxBETA_NUMBER - ); - - wxMessageBox(msg, "About Minimal", wxOK | wxICON_INFORMATION, this); -} diff --git a/samples/minimal/minimal.def b/samples/minimal/minimal.def deleted file mode 100644 index 59f0db711d..0000000000 --- a/samples/minimal/minimal.def +++ /dev/null @@ -1,7 +0,0 @@ -NAME Minimal -DESCRIPTION 'Minimal wxWindows application' -EXETYPE WINDOWS -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/minimal/minimal.rc b/samples/minimal/minimal.rc deleted file mode 100644 index 3bf71d6da0..0000000000 --- a/samples/minimal/minimal.rc +++ /dev/null @@ -1,6 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - -#define MINIMAL_QUIT 1 -#define MINIMAL_ABOUT 102 - diff --git a/samples/minimal/mondrian.ico b/samples/minimal/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z */ -#else -#include -/* #include */ -#endif - -#include "resource.h" - -#if !defined(__GNUWIN32__) -#include -#endif - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// English (U.K.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK -#pragma code_page(1252) -#endif //_WIN32 - -///////////////////////////////////////////////////////////////////////////// -// -// Dialog -// - -dialog1 DIALOG DISCARDABLE 0, 0, 271, 172 -STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU -CAPTION "Test Dialog" -FONT 8, "MS Sans Serif" -BEGIN - DEFPUSHBUTTON "OK",wxID_OK,214,7,50,14 - PUSHBUTTON "Cancel",wxID_CANCEL,214,24,50,14 - GROUPBOX "wxStaticBox",IDC_STATIC,7,7,198,158 - EDITTEXT IDC_EDIT1,64,23,125,14,ES_AUTOHSCROLL - LTEXT "wxStaticText",IDC_STATIC,13,25,42,8 - CONTROL "wxCheckBox",IDC_CHECK1,"Button",BS_AUTOCHECKBOX | - WS_TABSTOP,14,47,57,10 - COMBOBOX IDC_COMBO1,83,46,48,30,CBS_DROPDOWN | CBS_SORT | - WS_VSCROLL | WS_TABSTOP - CONTROL "wxRadioButton",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON, - 141,47,64,10 - LISTBOX IDC_LIST1,14,69,86,40,LBS_SORT | LBS_NOINTEGRALHEIGHT | - WS_VSCROLL | WS_TABSTOP - SCROLLBAR IDC_SCROLLBAR1,111,71,76,11 - CONTROL "Slider1",IDC_SLIDER1,"msctls_trackbar32",TBS_BOTH | - TBS_NOTICKS | WS_TABSTOP,10,116,100,15 - CONTROL "Spin1",IDC_SPIN1,"msctls_updown32",UDS_ARROWKEYS,111,90, - 10,14 -END - -#endif // English (U.K.) resources -///////////////////////////////////////////////////////////////////////////// - diff --git a/samples/nativdlg/makefile.b32 b/samples/nativdlg/makefile.b32 deleted file mode 100644 index d84ffd3a49..0000000000 --- a/samples/nativdlg/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=nativdlg -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/nativdlg/makefile.bcc b/samples/nativdlg/makefile.bcc deleted file mode 100644 index 94226015db..0000000000 --- a/samples/nativdlg/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=nativdlg -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/nativdlg/makefile.dos b/samples/nativdlg/makefile.dos deleted file mode 100644 index 32d5aa720b..0000000000 --- a/samples/nativdlg/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=nativdlg -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/nativdlg/makefile.g95 b/samples/nativdlg/makefile.g95 deleted file mode 100644 index 3758852311..0000000000 --- a/samples/nativdlg/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=nativdlg -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/nativdlg/makefile.sc b/samples/nativdlg/makefile.sc deleted file mode 100644 index 235c8f8bc1..0000000000 --- a/samples/nativdlg/makefile.sc +++ /dev/null @@ -1,35 +0,0 @@ -# Symantec C++ makefile for hello example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.cc.obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -hello.exe: hello.obj hello.def hello.res - *$(CC) $(LDFLAGS) -o$@ hello.obj hello.def $(LIBS) - *$(RC) -k hello.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws - diff --git a/samples/nativdlg/makefile.unx b/samples/nativdlg/makefile.unx deleted file mode 100644 index 464c4b45d6..0000000000 --- a/samples/nativdlg/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for nativdlg example (UNIX). -# Actually, this is a Windows-specific example... - -PROGRAM=nativdlg - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env diff --git a/samples/nativdlg/makefile.vc b/samples/nativdlg/makefile.vc deleted file mode 100644 index 542c1f04dd..0000000000 --- a/samples/nativdlg/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=nativdlg -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/nativdlg/makefile.vms b/samples/nativdlg/makefile.vms deleted file mode 100644 index 1ef109fbeb..0000000000 --- a/samples/nativdlg/makefile.vms +++ /dev/null @@ -1,38 +0,0 @@ -#************************************************************************ -# Makefile for HELLO under VMS -# by Stefan Hammes -# (incomplete) update history: -# 11.04.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = hello - -# Object modules of the application. -OBJS = hello.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(MAIN).$(OBJ) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(MAIN).$(OBJ),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ -hello.obj : hello.cc hello.h - diff --git a/samples/nativdlg/makefile.wat b/samples/nativdlg/makefile.wat deleted file mode 100644 index 4cbb79e714..0000000000 --- a/samples/nativdlg/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = nativdlg -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/nativdlg/nativdlg.cpp b/samples/nativdlg/nativdlg.cpp deleted file mode 100644 index 6d16c488af..0000000000 --- a/samples/nativdlg/nativdlg.cpp +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: nativdlg.cpp -// Purpose: Native Windows dialog sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// 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 - -#ifndef __WXMSW__ -#error Sorry, this sample is only appropriate under Windows. -#endif - -#include "wx/resource.h" - -#include -#include "nativdlg.h" -#include "resource.h" - -// Declare two frames -MyFrame *frame = NULL; - -IMPLEMENT_APP(MyApp) - -// Testing of ressources -MyApp::MyApp() -{ -} - -bool MyApp::OnInit(void) -{ - // Create the main frame window - frame = new MyFrame(NULL, -1, "wxWindows Native Dialog Sample", wxPoint(0, 0), wxSize(300, 250)); - - // Give it a status line - frame->CreateStatusBar(2); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(RESOURCE_TEST1, "&Dialog box test", "Test dialog box resource"); - file_menu->Append(RESOURCE_QUIT, "E&xit", "Quit program"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - // Make a panel - frame->panel = new wxWindow(frame, -1, wxPoint(0, 0), wxSize(400, 400), 0, "MyMainFrame"); - frame->Show(TRUE); - - // Return the main frame window - SetTopWindow(frame); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(RESOURCE_QUIT, MyFrame::OnQuit) - EVT_MENU(RESOURCE_TEST1, MyFrame::OnTest1) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(parent, id, title, pos, size) -{ - panel = NULL; -} - -void MyFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void MyFrame::OnTest1(wxCommandEvent& event) -{ - MyDialog *dialog = new MyDialog; - if (dialog->LoadNativeDialog(this, "dialog1")) - { -/* - wxTextCtrl *text = (wxTextCtrl *)wxFindWindowByName("multitext3", dialog); - if (text) - text->SetValue("wxWindows resource demo"); -*/ - dialog->SetModal(TRUE); - dialog->ShowModal(); - } - dialog->Close(TRUE); -} - -BEGIN_EVENT_TABLE(MyDialog, wxDialog) - EVT_BUTTON(wxID_OK, MyDialog::OnOk) - EVT_BUTTON(wxID_CANCEL, MyDialog::OnCancel) -END_EVENT_TABLE() - - -void MyDialog::OnOk(wxCommandEvent& event) -{ - EndModal(wxID_OK); -} - -void MyDialog::OnCancel(wxCommandEvent& event) -{ - EndModal(wxID_CANCEL); -} - - diff --git a/samples/nativdlg/nativdlg.def b/samples/nativdlg/nativdlg.def deleted file mode 100644 index 49791b5e6c..0000000000 --- a/samples/nativdlg/nativdlg.def +++ /dev/null @@ -1,9 +0,0 @@ -NAME Resource -DESCRIPTION 'Resource' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 - diff --git a/samples/nativdlg/nativdlg.h b/samples/nativdlg/nativdlg.h deleted file mode 100644 index 5bc20575c2..0000000000 --- a/samples/nativdlg/nativdlg.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: nativdlg.h -// Purpose: Native Windows dialog sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface -#endif - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp(void) ; - bool OnInit(void); -}; - -class MyFrame: public wxFrame -{ - public: - wxWindow *panel; - MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size); - void OnQuit(wxCommandEvent& event); - void OnTest1(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class MyDialog : public wxDialog -{ - public: - void OnOk(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - -#define RESOURCE_QUIT 4 -#define RESOURCE_TEST1 2 - diff --git a/samples/nativdlg/nativdlg.rc b/samples/nativdlg/nativdlg.rc deleted file mode 100644 index db18d163f2..0000000000 --- a/samples/nativdlg/nativdlg.rc +++ /dev/null @@ -1,4 +0,0 @@ -#include "wx/msw/wx.rc" - -#include "dialog1.rc" - diff --git a/samples/nativdlg/resource.h b/samples/nativdlg/resource.h deleted file mode 100644 index 21b2464030..0000000000 --- a/samples/nativdlg/resource.h +++ /dev/null @@ -1,25 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by dialog1.rc -// -// #define dialog1 101 -#define IDC_EDIT1 1000 -#define IDC_CHECK1 1001 -#define IDC_COMBO1 1003 -#define IDC_RADIO1 1005 -#define IDC_LIST1 1006 -#define IDC_SCROLLBAR1 1007 -#define IDC_SLIDER1 1008 -#define IDC_SPIN1 1009 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1010 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/samples/notebook/.cvsignore b/samples/notebook/.cvsignore deleted file mode 100644 index 70845e08eb..0000000000 --- a/samples/notebook/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile.in diff --git a/samples/notebook/Makefile.am b/samples/notebook/Makefile.am deleted file mode 100644 index d53aac5146..0000000000 --- a/samples/notebook/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = test - -test_SOURCES = test.cpp diff --git a/samples/notebook/makefile.b32 b/samples/notebook/makefile.b32 deleted file mode 100644 index 95ddc80d76..0000000000 --- a/samples/notebook/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/notebook/makefile.bcc b/samples/notebook/makefile.bcc deleted file mode 100644 index 669f01905a..0000000000 --- a/samples/notebook/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/notebook/makefile.dos b/samples/notebook/makefile.dos deleted file mode 100644 index 13e3a4ce8e..0000000000 --- a/samples/notebook/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/notebook/makefile.g95 b/samples/notebook/makefile.g95 deleted file mode 100644 index b4a920f047..0000000000 --- a/samples/notebook/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=test -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/notebook/makefile.unx b/samples/notebook/makefile.unx deleted file mode 100644 index a3f76189b2..0000000000 --- a/samples/notebook/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for notebook example (UNIX). - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/notebook/makefile.vc b/samples/notebook/makefile.vc deleted file mode 100644 index 4ada748eda..0000000000 --- a/samples/notebook/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/notebook/makefile.wat b/samples/notebook/makefile.wat deleted file mode 100644 index 81a83e42a9..0000000000 --- a/samples/notebook/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/notebook/mondrian.ico b/samples/notebook/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZShowModal(); - - // Quit immediately the dialog has been dismissed - return FALSE; -#else - frame = new MyFrame((wxFrame*) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE); - - // Problem with generic wxNotebook implementation whereby it doesn't size properly unless - // you set the size again -#if defined(__WIN16__) - int width, height; - frame->GetSize(& width, & height); - frame->SetSize(-1, -1, width, height); -#endif - - return TRUE; -#endif -} - -void MyApp::InitTabView(wxNotebook* notebook, wxWindow* window) -{ - m_okButton = new wxButton(window, wxID_OK, "Close", wxPoint(-1, -1), wxSize(80, 25)); - m_cancelButton = new wxButton(window, ID_DELETE_PAGE, "Delete page", wxPoint(-1, -1), wxSize(80, 25)); - m_addPageButton = new wxButton(window, ID_ADD_PAGE, "Add page", wxPoint(-1, -1), wxSize(80, 25)); - m_okButton->SetDefault(); - - wxLayoutConstraints* c = new wxLayoutConstraints; - c->right.SameAs(window, wxRight, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_addPageButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->right.SameAs(m_addPageButton, wxLeft, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_cancelButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->right.SameAs(m_cancelButton, wxLeft, 4); - c->bottom.SameAs(window, wxBottom, 4); - c->height.AsIs(); - c->width.AsIs(); - m_okButton->SetConstraints(c); - - // Add some panels - wxPanel *panel1 = new wxPanel(notebook, -1); - // panel1->SetBackgroundColour(wxColour("RED")); - (void)new wxButton(panel1, -1, "Press me", wxPoint(10, 10)); - (void)new wxTextCtrl(panel1, -1, "1234", wxPoint(10, 40), wxSize(120, 150)); - - notebook->AddPage(panel1, "Cat", TRUE); - - wxPanel *panel2 = new wxPanel(notebook, -1); - panel2->SetBackgroundColour(wxColour("BLUE")); - - 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); - - notebook->AddPage(panel2, "Dog"); - wxPanel *panel3 = new wxPanel(notebook, -1); - panel3->SetBackgroundColour(wxColour("WHITE")); - notebook->AddPage(panel3, "Goat"); - - wxPanel *panel4 = new wxPanel(notebook, -1); - panel4->SetBackgroundColour(wxColour("YELLOW")); - notebook->AddPage(panel4, "Sheep"); - - wxPanel *panel5 = new wxPanel(notebook, -1); - panel5->SetBackgroundColour(wxColour("MAGENTA")); - (void)new wxStaticText(panel5, -1, "This page has been inserted, not added", wxPoint(10, 10) ); - notebook->InsertPage(0, panel5, "Sheep"); -} - -BEGIN_EVENT_TABLE(MyDialog, wxDialog) - EVT_BUTTON(wxID_OK, MyDialog::OnOK) - EVT_BUTTON(wxID_CANCEL, MyDialog::OnOK) -END_EVENT_TABLE() - -MyDialog::MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle): - wxDialog(parent, id, title, pos, size, windowStyle) -{ - Init(); -} - -void MyDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) -{ - EndModal(wxID_OK); -} - -void MyDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) -{ - EndModal(wxID_CANCEL); -} - -void MyDialog::Init(void) -{ - m_notebook = new wxNotebook(this, ID_NOTEBOOK); - - wxLayoutConstraints* c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 4); - c->right.SameAs(this, wxRight, 4); - c->top.SameAs(this, wxTop, 4); - c->bottom.SameAs(this, wxBottom, 40); - - m_notebook->SetConstraints(c); - - wxGetApp().InitTabView(m_notebook, this); - - SetAutoLayout(TRUE); - Layout(); - - this->Centre(wxBOTH); -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_BUTTON(wxID_OK, MyFrame::OnOK) - EVT_BUTTON(ID_DELETE_PAGE, MyFrame::OnDeletePage) - EVT_BUTTON(ID_ADD_PAGE, MyFrame::OnAddPage) - EVT_SIZE(MyFrame::OnSize) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle): - wxFrame(parent, id, title, pos, size, windowStyle) -{ - m_panel = (wxPanel*) NULL; - m_notebook = (wxNotebook*) NULL; - Init(); -} - -void MyFrame::OnAddPage(wxCommandEvent& WXUNUSED(event)) -{ - wxPanel *panel = new wxPanel( m_notebook, -1 ); - (void)new wxButton( panel, -1, "Button", wxPoint( 10,10 ), wxSize(-1,-1) ); - m_notebook->AddPage( panel, "Added" ); -// m_notebook->SetSelection( m_notebook->GetPageCount()-1 ); -} - -void MyFrame::OnDeletePage(wxCommandEvent& WXUNUSED(event)) -{ - m_notebook->DeletePage( m_notebook->GetPageCount()-1 ); -} - -void MyFrame::OnOK(wxCommandEvent& WXUNUSED(event) ) -{ - this->Destroy(); -} - -void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) -{ - this->Destroy(); -} - -void MyFrame::Init(void) -{ - m_panel = new wxPanel(this, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxCLIP_CHILDREN); - - // Note, omit the wxTAB_STYLE_COLOUR_INTERIOR, so we will guarantee a match - // with the panel background, and save a bit of time. - m_notebook = new wxNotebook(m_panel, ID_NOTEBOOK); - - wxLayoutConstraints* c = new wxLayoutConstraints; - c->left.SameAs(m_panel, wxLeft, 4); - c->right.SameAs(m_panel, wxRight, 4); - c->top.SameAs(m_panel, wxTop, 4); - c->bottom.SameAs(m_panel, wxBottom, 40); - - m_notebook->SetConstraints(c); - - wxGetApp().InitTabView(m_notebook, m_panel); - - m_panel->SetAutoLayout(TRUE); - - m_panel->Layout(); - - this->Centre(wxBOTH); - - Show(TRUE); -} - -void MyFrame::OnSize(wxSizeEvent& event) -{ - wxFrame::OnSize(event); - m_panel->Layout(); -} - diff --git a/samples/notebook/test.def b/samples/notebook/test.def deleted file mode 100644 index 43b2ed3907..0000000000 --- a/samples/notebook/test.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Test -DESCRIPTION 'Notebook test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 diff --git a/samples/notebook/test.h b/samples/notebook/test.h deleted file mode 100644 index f9f482ecf8..0000000000 --- a/samples/notebook/test.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.h -// Purpose: wxNotebook demo -// Author: Julian Smart -// Modified by: -// Created: 25/10/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include - -// Define a new application -class MyApp: public wxApp -{ -public: - bool OnInit(void); - void InitTabView(wxNotebook* notebook, wxWindow* window); - - wxButton* m_okButton; - wxButton* m_cancelButton; - wxButton* m_addPageButton; -}; - -DECLARE_APP(MyApp) - -class MyDialog: public wxDialog -{ -public: - MyDialog(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_DIALOG_STYLE); - - void OnOK(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void Init(void); - -protected: - wxNotebook* m_notebook; - -DECLARE_EVENT_TABLE() -}; - -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, const long windowStyle = wxDEFAULT_FRAME_STYLE); - - void OnOK(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void OnAddPage(wxCommandEvent& event); - void OnDeletePage(wxCommandEvent& event); - void OnSize(wxSizeEvent& event); - void Init(void); -protected: - wxNotebook* m_notebook; - wxPanel* m_panel; // Panel containing notebook and OK/Cancel/Help - -DECLARE_EVENT_TABLE() -}; - -// File ids -#define TEST_ABOUT 2 - -// Tab ids -#define TEST_TAB_DOG 1 -#define TEST_TAB_CAT 2 -#define TEST_TAB_GOAT 3 -#define TEST_TAB_GUINEAPIG 4 -#define TEST_TAB_ANTEATER 5 -#define TEST_TAB_HUMMINGBIRD 6 -#define TEST_TAB_SHEEP 7 -#define TEST_TAB_COW 8 -#define TEST_TAB_HORSE 9 -#define TEST_TAB_PIG 10 -#define TEST_TAB_OSTRICH 11 -#define TEST_TAB_AARDVARK 12 - -#define ID_NOTEBOOK 1000 -#define ID_ADD_PAGE 1200 -#define ID_DELETE_PAGE 1201 - diff --git a/samples/notebook/test.rc b/samples/notebook/test.rc deleted file mode 100644 index a05f21065a..0000000000 --- a/samples/notebook/test.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian_icon ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/oleauto/Makefile.am b/samples/oleauto/Makefile.am deleted file mode 100644 index 536e8eb19c..0000000000 --- a/samples/oleauto/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = oleauto - -oleauto_SOURCES = oleauto.cpp diff --git a/samples/oleauto/makefile.b32 b/samples/oleauto/makefile.b32 deleted file mode 100644 index 46f1832e2f..0000000000 --- a/samples/oleauto/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=oleauto -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/oleauto/makefile.g95 b/samples/oleauto/makefile.g95 deleted file mode 100644 index 8472fc3546..0000000000 --- a/samples/oleauto/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=oleauto -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/oleauto/makefile.vc b/samples/oleauto/makefile.vc deleted file mode 100644 index 2e1852f568..0000000000 --- a/samples/oleauto/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=oleauto -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/oleauto/makefile.wat b/samples/oleauto/makefile.wat deleted file mode 100644 index 994a25ce15..0000000000 --- a/samples/oleauto/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = oleauto -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/oleauto/mondrian.ico b/samples/oleauto/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z - -#ifndef __WXMSW__ -#error "Sorry, this sample works under Windows only." -#endif - -// ---------------------------------------------------------------------------- -// ressources -// ---------------------------------------------------------------------------- -// the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.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 OnTest(wxCommandEvent& event); - -private: - // any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// IDs for the controls and the menu commands -enum -{ - // menu items - OleAuto_Quit = 1, - OleAuto_About, - OleAuto_Test, - - // controls start here (the numbers are, of course, arbitrary) - OleAuto_Text = 1000, -}; - -// ---------------------------------------------------------------------------- -// event tables and other macros for wxWindows -// ---------------------------------------------------------------------------- - -// the event tables connect the wxWindows events with the functions (event -// handlers) which process them. It can be also done at run-time, but for the -// simple menu events like this the static method is much simpler. -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(OleAuto_Quit, MyFrame::OnQuit) - EVT_MENU(OleAuto_About, MyFrame::OnAbout) - EVT_MENU(OleAuto_Test, MyFrame::OnTest) -END_EVENT_TABLE() - -// Create a new application object: this macro will allow wxWindows to create -// the application object during program execution (it's better than using a -// static object for many reasons) and also declares the accessor function -// wxGetApp() which will return the reference of the right type (i.e. MyApp and -// not wxApp) -IMPLEMENT_APP(MyApp) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// the application class -// ---------------------------------------------------------------------------- - -// `Main program' equivalent: the program execution "starts" here -bool MyApp::OnInit() -{ - // Create the main application window - MyFrame *frame = new MyFrame("OleAuto wxWindows App", - wxPoint(50, 50), wxSize(450, 340)); - - // Show it and tell the application that it's our main window - // @@@ what does it do exactly, in fact? is it necessary here? - frame->Show(TRUE); - SetTopWindow(frame); - - // success: wxApp::OnRun() will be called which will enter the main message - // loop and the application will run. If we returned FALSE here, the - // application would exit immediately. - return TRUE; -} - -// ---------------------------------------------------------------------------- -// main frame -// ---------------------------------------------------------------------------- - -// frame constructor -MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) - : wxFrame((wxFrame *)NULL, -1, title, pos, size) -{ - // set the frame icon - SetIcon(wxICON(mondrian)); - - // create a menu bar - wxMenu *menuFile = new wxMenu; - - menuFile->Append(OleAuto_Test, "&Test Excel Automation..."); - menuFile->Append(OleAuto_About, "&About..."); - menuFile->AppendSeparator(); - menuFile->Append(OleAuto_Quit, "E&xit"); - - // now append the freshly created menu to the menu bar... - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(menuFile, "&File"); - - // ... and attach this menu bar to the frame - SetMenuBar(menuBar); - - // create a status bar just for fun (by default with 1 pane only) - CreateStatusBar(2); - SetStatusText("Welcome to wxWindows!"); -} - - -// event handlers - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - // TRUE is to force the frame to close - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageBox("This is an OLE Automation sample", - "About OleAuto", wxOK | wxICON_INFORMATION, this); -} - -/* Tests OLE automation by making the active Excel cell bold, - * and changing the text. - */ -void MyFrame::OnTest(wxCommandEvent& WXUNUSED(event)) -{ - wxMessageBox("Please ensure Excel is running, then press OK.\nThe active cell should then say 'wxWindows automation test!' in bold."); - - wxAutomationObject excelObject, rangeObject; - if (!excelObject.GetInstance("Excel.Application")) - { - if (!excelObject.CreateInstance("Excel.Application")) - { - wxMessageBox("Could not create Excel object."); - return; - } - } - if (!excelObject.PutProperty("ActiveCell.Value", "wxWindows automation test!")) - { - wxMessageBox("Could not set active cell value."); - return; - } - if (!excelObject.PutProperty("ActiveCell.Font.Bold", (bool) TRUE)) - { - wxMessageBox("Could not put Bold property to active cell."); - return; - } -} - diff --git a/samples/oleauto/oleauto.def b/samples/oleauto/oleauto.def deleted file mode 100644 index c722a64e9a..0000000000 --- a/samples/oleauto/oleauto.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME OleAuto -DESCRIPTION 'OLE Automation wxWindows Sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/oleauto/oleauto.rc b/samples/oleauto/oleauto.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/oleauto/oleauto.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/ownerdrw/Makefile.am b/samples/ownerdrw/Makefile.am deleted file mode 100644 index ec41d2e067..0000000000 --- a/samples/ownerdrw/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = ownerdrw - -ownerdrw_SOURCES = ownerdrw.cpp diff --git a/samples/ownerdrw/bell.bmp b/samples/ownerdrw/bell.bmp deleted file mode 100644 index 279b827162f2b745c005fc802938a84f0ce5890a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcmb7*HZ}&$B zw=fcw0f;p=!k7u@ps`;V%cT)}F?J!_0&p#!2&% vld<$VEqU&p<3Ns5`Nf_+KG?%$w#sLQx8`|ei8_4vBY&s8ZsYZro@o37zjK0f diff --git a/samples/ownerdrw/makefile.b32 b/samples/ownerdrw/makefile.b32 deleted file mode 100644 index 2b6dc5de6a..0000000000 --- a/samples/ownerdrw/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=ownerdrw -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/ownerdrw/makefile.bcc b/samples/ownerdrw/makefile.bcc deleted file mode 100644 index 8073c232d5..0000000000 --- a/samples/ownerdrw/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=ownerdrw -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/ownerdrw/makefile.dos b/samples/ownerdrw/makefile.dos deleted file mode 100644 index 8dc0bc9445..0000000000 --- a/samples/ownerdrw/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=ownerdrw -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/ownerdrw/makefile.g95 b/samples/ownerdrw/makefile.g95 deleted file mode 100644 index 3d807bd7a6..0000000000 --- a/samples/ownerdrw/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=ownerdrw -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/ownerdrw/makefile.vc b/samples/ownerdrw/makefile.vc deleted file mode 100644 index eaafee8621..0000000000 --- a/samples/ownerdrw/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=ownerdrw -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/ownerdrw/makefile.wat b/samples/ownerdrw/makefile.wat deleted file mode 100644 index 4e6a3d8867..0000000000 --- a/samples/ownerdrw/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = ownerdrw -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/ownerdrw/mondrian.ico b/samples/ownerdrw/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Zq|zPkz&Y5tOT>ViEgNe#Und7c3jaG4fmA29pB?wt*V}zU*n{yx zKhe+h2?s{t6>%>VfET5V#7IPIjad&pE_xTydDLRCui=mL)_3-O6xqmmjX@V%1&+p1 z@j_)yir0!H1u@@~GXa#7@&T5DG I*kKgF8+G_}MF0Q* diff --git a/samples/ownerdrw/ownerdrw.cpp b/samples/ownerdrw/ownerdrw.cpp deleted file mode 100644 index 741ddec001..0000000000 --- a/samples/ownerdrw/ownerdrw.cpp +++ /dev/null @@ -1,296 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ownerdrw.cpp -// Purpose: Owner-draw sample, for Windows -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include "wx/ownerdrw.h" -#include "wx/menuitem.h" -#include "wx/msw/checklst.h" - -// Define a new application type -class OwnerDrawnApp: public wxApp -{ -public: - bool OnInit(); -}; - -// Define a new frame type -class OwnerDrawnFrame : public wxFrame -{ -public: - // ctor & dtor - OwnerDrawnFrame(wxFrame *frame, char *title, int x, int y, int w, int h); - ~OwnerDrawnFrame(); - - // notifications - void OnQuit (wxCommandEvent& event); - void OnAbout (wxCommandEvent& event); - void OnListboxSelect (wxCommandEvent& event); - void OnCheckboxToggle (wxCommandEvent& event); - void OnListboxDblClick (wxCommandEvent& event); - bool OnClose () { return TRUE; } - - DECLARE_EVENT_TABLE() - -private: - void InitMenu(); - - wxCheckListBox *m_pListBox; -}; - -enum -{ - Menu_Quit = 1, - Menu_First = 100, - Menu_Test1, Menu_Test2, Menu_Test3, - Menu_Bitmap, Menu_Bitmap2, - Menu_Submenu, Menu_Sub1, Menu_Sub2, Menu_Sub3, - Control_First = 1000, - Control_Listbox, Control_Listbox2, -}; - -BEGIN_EVENT_TABLE(OwnerDrawnFrame, wxFrame) - EVT_MENU(Menu_Quit, OwnerDrawnFrame::OnQuit) - EVT_LISTBOX(Control_Listbox, OwnerDrawnFrame::OnListboxSelect) - EVT_CHECKLISTBOX(Control_Listbox, OwnerDrawnFrame::OnCheckboxToggle) - EVT_COMMAND(Control_Listbox, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, - OwnerDrawnFrame::OnListboxDblClick) -END_EVENT_TABLE() - -IMPLEMENT_APP(OwnerDrawnApp); - -// init our app: create windows -bool OwnerDrawnApp::OnInit(void) -{ - OwnerDrawnFrame *pFrame = new OwnerDrawnFrame(NULL, "wxWindows Ownerdraw Sample", - 50, 50, 450, 340); - SetTopWindow(pFrame); - - return TRUE; -} - -// create the menu bar for the main frame -void OwnerDrawnFrame::InitMenu() -{ - // Make a menubar - wxMenu *file_menu = new wxMenu, - *sub_menu = new wxMenu; - - // vars used for menu construction - wxMenuItem *pItem; - wxFont fontLarge(18, wxROMAN, wxNORMAL, wxBOLD, FALSE), - fontUlined(12, wxDEFAULT, wxNORMAL, wxNORMAL, TRUE), - fontItalic(12, wxMODERN, wxITALIC, wxBOLD, FALSE), - // should be at least of the size of bitmaps - fontBmp(14, wxDEFAULT, wxNORMAL, wxNORMAL, FALSE); - - // sorry for my artistic skills... - wxBitmap bmpBell("bell"), bmpSound("sound"), bmpNoSound("nosound"); - - // construct submenu - pItem = new wxMenuItem(sub_menu, Menu_Sub1, "Submenu &first", "large", TRUE); - pItem->SetFont(fontLarge); - sub_menu->Append(pItem); - - pItem = new wxMenuItem(sub_menu, Menu_Sub2, "Submenu &second", "italic", TRUE); - pItem->SetFont(fontItalic); - sub_menu->Append(pItem); - - pItem = new wxMenuItem(sub_menu, Menu_Sub3, "Submenu &third", "underlined", TRUE); - pItem->SetFont(fontUlined); - sub_menu->Append(pItem); - - // construct menu - pItem = new wxMenuItem(file_menu, Menu_Test1, "&Uncheckable", "red item"); - pItem->SetFont(*wxITALIC_FONT); - pItem->SetTextColour(wxColor(255, 0, 0)); - pItem->SetMarginWidth(23); - file_menu->Append(pItem); - - pItem = new wxMenuItem(file_menu, Menu_Test2, "&Checkable", "checkable item", TRUE); - pItem->SetFont(*wxSMALL_FONT); - file_menu->Append(pItem); - file_menu->Check(Menu_Test2, TRUE); - - pItem = new wxMenuItem(file_menu, Menu_Test3, "&Disabled", "disabled item"); - pItem->SetFont(*wxNORMAL_FONT); - file_menu->Append(pItem); - file_menu->Enable(Menu_Test3, FALSE); - - file_menu->AppendSeparator(); - - pItem = new wxMenuItem(file_menu, Menu_Bitmap, "&Bell", "check/uncheck me!", TRUE); - pItem->SetFont(fontBmp); - pItem->SetBitmaps(bmpBell); - file_menu->Append(pItem); - - pItem = new wxMenuItem(file_menu, Menu_Bitmap2, "So&und", "icon changes!", TRUE); - pItem->SetFont(fontBmp); - pItem->SetBitmaps(bmpSound, bmpNoSound); - file_menu->Append(pItem); - - file_menu->AppendSeparator(); - - pItem = new wxMenuItem(file_menu, Menu_Submenu, "&Sub menu", "", TRUE, sub_menu); - pItem->SetFont(*wxSWISS_FONT); - file_menu->Append(pItem); - - file_menu->AppendSeparator(); - file_menu->Append(Menu_Quit, "&Quit", "Normal item"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - SetMenuBar(menu_bar); -} - -// main frame constructor -OwnerDrawnFrame::OwnerDrawnFrame(wxFrame *frame, char *title, int x, int y, int w, int h) - : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - // set the icon - SetIcon(wxIcon("mondrian")); - - // create the menu - InitMenu(); - - // make a panel with some controls - wxPanel *pPanel = new wxPanel(this, -1, wxPoint(0, 0), - wxSize(400, 200), wxTAB_TRAVERSAL); - - // check list box - static const char* aszChoices[] = { "Hello", "world", "and", - "goodbye", "cruel", "world", - "-------", "owner-drawn", "listbox" }; - - wxString *astrChoices = new wxString[WXSIZEOF(aszChoices)]; - unsigned int ui; - for ( ui = 0; ui < WXSIZEOF(aszChoices); ui++ ) - astrChoices[ui] = aszChoices[ui]; - - m_pListBox = new wxCheckListBox - ( - pPanel, // parent - Control_Listbox, // control id - wxPoint(10, 10), // listbox poistion - wxSize(200, 200), // listbox size - WXSIZEOF(aszChoices), // number of strings - astrChoices // array of strings - ); - - delete [] astrChoices; - - for ( ui = 0; ui < WXSIZEOF(aszChoices); ui += 2 ) { - m_pListBox->GetItem(ui)->SetBackgroundColour(wxColor(200, 200, 200)); - } - - m_pListBox->Check(2); - - // normal (but owner-drawn) listbox - static const char* aszColors[] = { "Red", "Blue", "Pink", - "Green", "Yellow", - "Black", "Violet" }; - struct { unsigned int r, g, b; } aColors[] = { {255,0,0}, {0,0,255}, {255,128,192}, - {0,255,0}, {255,255,128}, - {0,0,0}, {128,0,255} }; - astrChoices = new wxString[WXSIZEOF(aszColors)]; - for ( ui = 0; ui < WXSIZEOF(aszColors); ui++ ) - astrChoices[ui] = aszColors[ui]; - - wxListBox *pListBox = new wxListBox - ( - pPanel, // parent - Control_Listbox2, // control id - wxPoint(220, 10), // listbox poistion - wxDefaultSize, // listbox size - WXSIZEOF(aszColors), // number of strings - astrChoices, // array of strings - wxLB_OWNERDRAW, // owner-drawn - wxDefaultValidator, // - wxListBoxNameStr - ); - - for ( ui = 0; ui < WXSIZEOF(aszColors); ui++ ) { - pListBox->GetItem(ui)->SetTextColour(wxColor(aColors[ui].r, - aColors[ui].g, - aColors[ui].b)); - // yellow on white is horrible... - if ( ui == 4 ) - pListBox->GetItem(ui)->SetBackgroundColour(wxColor(0, 0, 0)); - - } - - delete[] astrChoices; - - // create the status line - const int widths[] = { -1, 60 }; - CreateStatusBar(2); - SetStatusWidths(2, widths); - SetStatusText("no selection", 0); - - Show(TRUE); -} - -OwnerDrawnFrame::~OwnerDrawnFrame() -{ -} - -void OwnerDrawnFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void OwnerDrawnFrame::OnAbout(wxCommandEvent& event) -{ - wxMessageDialog dialog(this, - "Demo of owner-drawn controls\n", - "About wxOwnerDrawn", wxYES_NO | wxCANCEL); - dialog.ShowModal(); -} - -void OwnerDrawnFrame::OnListboxSelect(wxCommandEvent& event) -{ - wxString strSelection; - unsigned int nSel = event.GetSelection(); - strSelection.sprintf("item %d selected (%schecked)", nSel, - m_pListBox->IsChecked(nSel) ? "" : "not "); - SetStatusText(strSelection); -} - -void OwnerDrawnFrame::OnListboxDblClick(wxCommandEvent& event) -{ - wxString strSelection; - strSelection.sprintf("item %d double clicked", m_pListBox->GetSelection()); - wxMessageDialog dialog(this, strSelection); - dialog.ShowModal(); -} - -void OwnerDrawnFrame::OnCheckboxToggle(wxCommandEvent& event) -{ - wxString strSelection; - unsigned int nItem = event.GetInt(); - strSelection.sprintf("item %d was %schecked", nItem, - m_pListBox->IsChecked(nItem) ? "" : "un"); - SetStatusText(strSelection); -} \ No newline at end of file diff --git a/samples/ownerdrw/ownerdrw.def b/samples/ownerdrw/ownerdrw.def deleted file mode 100644 index 6f2236cfe5..0000000000 --- a/samples/ownerdrw/ownerdrw.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME OWNERDRW -DESCRIPTION 'Owner-draw sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 4048 -STACKSIZE 16000 diff --git a/samples/ownerdrw/ownerdrw.rc b/samples/ownerdrw/ownerdrw.rc deleted file mode 100644 index bbc00bdf4b..0000000000 --- a/samples/ownerdrw/ownerdrw.rc +++ /dev/null @@ -1,6 +0,0 @@ -mondrian ICON "mondrian.ico" -bell BITMAP "bell.bmp" -sound BITMAP "sound.bmp" -nosound BITMAP "nosound.bmp" -#include "wx/msw/wx.rc" - diff --git a/samples/ownerdrw/sound.bmp b/samples/ownerdrw/sound.bmp deleted file mode 100644 index 26f5f1883e29c465f0243ccff4ba2766b980229e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 370 zcma)#K@I{T5CogVWPO1C!FTN4zYq`Vk(=M*VVkfu;|Q8;vI5gn44r1a-jaOX(F=8= z&Q#I?l@`}6DH2Deyc-It)=IaB=0~j=QEVF_kG}LLKf`E^u%iV8dx9~Z{F&2#nOj6; Xd)eh_c=Y<>_}B8WjGS#|+C9N5tAudn diff --git a/samples/png/.cvsignore b/samples/png/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/png/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/png/Makefile.am b/samples/png/Makefile.am deleted file mode 100644 index d29b3bdd20..0000000000 --- a/samples/png/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = pngdemo - -pngdemo_SOURCES = pngdemo.cpp diff --git a/samples/png/julian.png b/samples/png/julian.png deleted file mode 100644 index 9e875e0a1fa2a4584b3cf7e9ad98648880029852..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5439 zcmX9?c{o(<{~k;BWfEEQB5M>S%vdtE3|U6Rgc!ZWSYjlcP!3+1Bu?2zwy|Y|43R-H zs7%?*7P8COx2SmKH}CIzuIrrh$8&#{`@TQtdd~Gc#MoI1@=5W*U@$=|wE1P$+lO@r z@Nlr6D6BgV48{S&*f?46@bHjGBr=&yrBdm1I)lNOnwnxVnHw7$hlhs{kw}6dGKoZ` zQ0O!oiAdaFGO0M6DjY7siiE-7Fc<}oqX7gW8pR-jbRx)rhzt_cMz`n1ZWUQClM(GESUuWa11g;!l7v(9*@#uKmZko0#K?HEP{kq1+?H~h)5wpR5FQ9 zrH}wTM8MI>5Sf6b065Zr`7s~{!61PoECQ{W;4m_PgIE9}fd&B}7DXq4 zRDeYvK?8Ap6o^j5Ls$fh9t8raBqD(&2pPhnv@i%&Du^RtweScD3IR>VqewUe5u-{1 zaAXiqBY_w#36vZUghS9+{jl^wXpxBoRXGV7nW!qk1LuKBz+rIse`fH&VIa#dGMPf9 z5=ku4$&9|fzL60k%Un8rWNM1#C;*WFA_PLLRSJnhrO@b9Is;E60W69DNMs3vCqN`J ziA=#@ajZlXDve5`6F`VYX8=SJjsSuXna=1Vk|?TL2n>!uqR?;vge4F$cn}XjS|}_4 zLUDI-E)Ia`u;1y)+u2Zy-zjaO~kfdL|Y{lP6Vt z-)mJ6#VQS}EFOiFesfnSzveoFIAwj$K8JGLk?%+eS=HK#ZEQYN;=@7$YSK#mxwN(8 z=6d|>>+4kGLR{kKAy@FPlFQOj{_5%0q*yO^g`?xz38vRw`HzTkO-yIHQceBurKhDz zGsDO!D{llb4KkDtY)P4KJ4h*?jiyb<$n-C|~Cy7KdE!JSX#YM3bEqWWKi zb~Y^(yE#o|7G%6(H_7FOwulZ9fI6tq_f9;ardRZbx!r4v_%baIwd+(z{+715#-YOo zzLI{czwPv`BvSW+ouyD_H zVz^}jtMCDZ(|T|D?L<1&$y`r4IBZKIB*><)&2d*hb=2iSFEYipygS5|a_8!WQA11r zE1P%UzbN-_B~uDsc;7PH;;Y1jkl(dB!d$a;s^SrSx83Su1 z!_6V6@9Op~=jGlzQN5U;sz4s5#6Re~LwRoF8Qa_A`X!Hh+h011eqthjZv6|diaUrN zYWk5Xi_Pi&@Y|yQ14sLdoVl~IhM#mkvdx0mK*wGih~xYEbVNh|^)M#S!);V`?{T3j zzg_?HSARIOj?et%7x7w6s1()8Jv{e>n=kQY=BtuhSKahi>kB%Sy$Nb6bH!R&$IOLn zT>Ko##f8dZK@Z~6o%n`a-_cK&m}Uo-btp@jOXjthbUpMaP3!LyxK+A%|LKSLJDSgH zO~g2b%<}^cmv5z|nx7W*%S_j7J3jLC^yyD_@*0SnCSiNUvj>VrKD*~EzKCe!taB;uiD;C(h)Wi2YV#)!4(-w;R)hy7X zF>_sP-hNAr>c1W1;?@svgo@rG%W!TB^h!dQ`ka~I?OIhn+1Jqw+4p}5eVz)uaefNW zu-r>-H4QTes|eydUz0R7thS@e@2##|QCd78AKES^T24c0qpXg?Iri#}s%%bhSXg>+ zf39wQ`_{44up+CcB%M3A3Y;(FLM|1)*jSK@FT{0qpYuM>N6)cLiN!7PYzY^F6=iSB z967TKubG9OlrwsA5xE^IO_siMwq#hXJ61-4>u$&=?IV&AoM&#F=VZ4~mBQ-hB^*}8 zUbika*MRtY|;%nd$V9-iXVBj3kE@y}!3_Jnk9!)J5snP$YUiuOO0xEh%UIE@%-KPl-?t^=e%x80ox9BB}d4?(mN(SaJd8l-H>>0%} zVW`T!SvGQ2=TV#&UUgcdsM2j({No4YQjp8i)lVOpJ{+;&(Td}6duVJqd zMm-@e!23CVVIzk>@1eBWn#1C=DKf+Nw3jbi#uu)816lkA+WX!=&FnV@F3F62U0Yd{ zG@a%7S0~Bx#~#z#KlP7;%Cd~bKazC+xN6t~xaG|>Xg_hX(yZh`?4;PzaYm;Df>YI{DbM)v|2WNk9K;5TXuW<+C(SmO8LF4 zv)WGpr@2I}hQ{m}>~zxO^olQ9-C9j4JJNb-svdSetIK1JtK~`QtvQ2HxJei zBfS(7PHt+*cp^g`bE4P=G3$`S)NG+=M}o7H`p58Q?f~6Njm~u~wLmaK;3evEod{k} zDr6nc8Fztu;eKdH&J9`pv&tREuJb6n*+n7mHr!mGSp9euJBb!TV0)e@q)0RG>REg- zd1!OA@Uh_cgJZV02QC?nzB!YWQ1eu=vk+|Zu&Yf4xKB$9OQ`T(KW~8gLThaRwW0Sm zi5ooUj&-H(c_Xb_CsW1$NpgF7`z00r!RvN=+=(-#RUO7wK(erH&!}%r+={n^;4(}| zr{h_~`D$ISfmm@<{#JYsyh#d^K%dak1q?^kw%-X{ zI^XTEFHn=iucER!#jUk%4f2l4BafMVh_Rcg3>clL>W5cwJ(qJz_`&Y9BGIbb%PZa9 z;Ew2cqKLE_^Rl_oxUZD|Y9KZ14!~nOdI7ht$kS~ixX_$~${MbE?zo^!bln zVFrySl4I_VFXZi>9?_u(qs{Ozg^8g%A{j2VjGv* zGhVE*-B)bl+6{*~>SVc1;JLYZ#4(P9w1?!58vf+bg|rYmAFh<}G0DiEbX2&W+Q{=# z@f91NuC0s*^5UO8jFMDVt&We%3Irc(w{JJhIvF1ltDV{!63ERSYVUV|**J$5(%+|6 z^p4E82Y)}!f1WQki`?xK-u@7UBN!%_5R z3#!10yDy%Vwgjs2+u{F+fasd&)`g#vN%vcVYx5O7FA#8|TWOqdeJUyIA!EO3;oXta zDS=BJR-Z2*BgTDdPcTZ zU|?*_;0~rUN{!F8+TP%g!8lZq8oKJ_*^ zkkN-!J}1o^`;0klben?VL0ptDQ&I~!j|i6Gw&{3#us^C3f+3)KegSe42b;1;zbcJL zi~6%FH|64UF2Wv%CB+WzNeZ4#IK_6`?#|{$7Awg=E_O{8F==gCgyA2xY@#L=)2)H* z$(3qp1+)E30^eo2qpbdu98TbTfIOi0X*ebmW=Pc=5L4fgqpDT9D}&Tag2s zu5Q(fKR}AiPSiC>V{R!#%`YN}qj}B8F3UDF3He-DRP#bOYdN%S^~mf;q#D}3aM&X& zu-T(m%lr862Z_(Rsz($KJ64ZH&cFNSK{JizPZlJY60~YB26>};t}9wwh<9t3{?NWO zHa6HEImcM?FyPS{8>x#XNIr^f6eWB-dsTI zw5Zp%fdWcxpX{pUEUF=rbBrSWZYUr8yIZ+kZ@2O!b>q1g@si3MFkv* zPuBOioT}R%T7V>c zoUa}kW1~c@zvn`B4u`LGd5$#%*S~r7l(<0OM2VO@lu2>y-=x1Q{Bs_`J&@GQOY*yU ztEjQ@O63)kqlmIma^AiHc|Lm#SKqCfra?eCD5SwvL6{QmnWU^_b$b#6Dg>cb*p#lj!Ti>IcW%0&IXnADd6zp;hJ0xj+k^m#3fg-RYv>RrGF#oI?7}R&p=StUyuk{24uDJ)sUxo|6Z^lFx&h`^O z-p~~m?znidCyz}4Tlw1gtA{7I|F_YRU&Uds_FA-3W}|k$iQnuC;bxbb3&@b4ajiqb zOkPLKiguk){xZ|G;X9Rs)ZhKHD@E13hROh5lw4EY2)*Tm8XUZ1+h%W9(V3&=KII`&x7G_3Pd%!!Co5Z-YO&5BR|b zFo}y|T<2#3sjn4c%(HDe+dJD&mbM0VYJPJqzv3^QzO!ntd95OsyJuD}>ax4%!J3}l zC-Jbg488R$;y-{3eoY(L(BVAH8OZkMl{OQ{?h^3U{JPEQHSt*Ur=>&ifPFzRzq z;CRcurX=>4Q40}P{CRAh4zsXC&Mvvd4Z_sBbWJ_KI(4@NXHAc<6Rwq&M#1%^1G&8| zduw}-Co`*VO*A+CZmU1Nb{D1uDJc5h1pwsUzs;Wpr4)P8E9*j9Mkihj3^Yws20f!g zx4#4h2K;&Z=I#Nzh-hW%44jv3d+YX8N#w8}RW7K<)3Cm|?x40ZuV4Jn#_t{f{E3F@ ztM@mztZ(NgrUpV`&)yl}6`XSX4Ge`$2E+;b)B?ci3*cC^a^ zXHf#G@1eS;M+3FmVT^`p{?!!nm$85L#l79`!(a0|_MVM9+bxG1?VI_RjUUSv7HPiu zwOAFsvy*Or-{tqt(5|r#)v_qR{!PTR@!|Itq0@&<%STUyjiY`F=ih7I?CkxslRq52 ze>E;8Xes1HbmZPf_H(`N=zsTSBL^ovUg&Q39dczywq1O)c7D4w$Dqi;^4oy3 z_VfS!vgR|6sY>c)O>Gdoq543(KxBgT?gNnq;oJvjIlgIHD{}OVtULdwm5Pf#UW%$= zJ2biRv(dcONuL6Pj~ohaE1L1eBgSRDSd6RrxydWkD#Q-??q4$d@q!%L2UUL*tnR5UD diff --git a/samples/png/paint16.png b/samples/png/paint16.png deleted file mode 100644 index c977483485cf039be2c1721050da100f5dd72747..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^5EaktaVzwKAz!nBfXl^~X6&1%yuQ%8JHX|Z zZQiaaDYj-C7#qKQF%@EaQmZ(hmvve>BbU{iw&eXE6b|`WT)h8Qvt-|a4Bvvf1TTq) zv)^+*pSWAV?L_RFMFM8#T-L2Jy&EowioH;t6Y${AoH_ghiCZt3r`do~4f R(m*FLc)I$ztaD0e0suKsS~LIv diff --git a/samples/png/pngdemo.cpp b/samples/png/pngdemo.cpp deleted file mode 100644 index da50f96d5d..0000000000 --- a/samples/png/pngdemo.cpp +++ /dev/null @@ -1,210 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pngdemo.cpp -// Purpose: Demos PNG reading -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pngdemo.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifdef __WXMSW__ -#include -// #include -#endif - -#include "pngdemo.h" - -MyFrame *frame = (MyFrame *) NULL; -wxBitmap *g_TestBitmap = (wxBitmap *) NULL; - -IMPLEMENT_APP(MyApp) - -MyApp::MyApp() -{ -} - -bool MyApp::OnInit(void) -{ -#ifdef __WXMSW__ - wxBitmap::AddHandler(new wxPNGFileHandler); -// wxBitmap::AddHandler(new wxXPMFileHandler); -// wxBitmap::AddHandler(new wxXPMDataHandler); -#endif - - // Create the main frame window - frame = new MyFrame((wxFrame *) NULL, "wxPNGBitmap Demo", wxPoint(0, 0), wxSize(300, 300)); - - // Give it a status line - frame->CreateStatusBar(2); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - wxMenu *help_menu = new wxMenu; - - file_menu->Append(PNGDEMO_LOAD_FILE, "&Load file", "Load file"); - file_menu->Append(PNGDEMO_SAVE_FILE, "&Save file", "Save file"); - file_menu->Append(PNGDEMO_QUIT, "E&xit", "Quit program"); - help_menu->Append(PNGDEMO_ABOUT, "&About", "About PNG demo"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - MyCanvas *canvas = new MyCanvas(frame, wxPoint(0, 0), wxSize(100, 100)); - - // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction -// canvas->SetScrollbars(20, 20, 50, 50, 4, 4); - frame->canvas = canvas; - - frame->Show(TRUE); - - frame->SetStatusText("Hello, wxWindows"); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(PNGDEMO_QUIT, MyFrame::OnQuit) - EVT_MENU(PNGDEMO_ABOUT, MyFrame::OnAbout) - EVT_MENU(PNGDEMO_LOAD_FILE, MyFrame::OnLoadFile) - EVT_MENU(PNGDEMO_SAVE_FILE, MyFrame::OnSaveFile) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, -1, title, pos, size) -{ - canvas = (MyCanvas *) NULL; -} - -void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - (void)wxMessageBox("PNG demo\nJulian Smart (c) 1998", - "About PNG Demo", wxOK); -} - -void MyFrame::OnSaveFile(wxCommandEvent& WXUNUSED(event)) -{ - wxString f = wxFileSelector( "Save Image", (const char *)NULL, (const char *)NULL, - "png", "PNG files (*.png)|*.png" ); - - if (f == "") return; - - wxBitmap *backstore = new wxBitmap( 150, 150 ); - - wxMemoryDC memDC; - memDC.SelectObject( *backstore ); - memDC.Clear(); - memDC.SetBrush( *wxBLACK_BRUSH ); - memDC.SetPen( *wxWHITE_PEN ); - memDC.DrawRectangle( 0, 0, 150, 150 ); - memDC.SetPen( *wxBLACK_PEN ); - memDC.DrawLine( 0, 0, 0, 10 ); - memDC.SetTextForeground( *wxWHITE ); - memDC.DrawText( "This is a memory dc.", 10, 10 ); - - memDC.SelectObject( wxNullBitmap ); - - backstore->SaveFile( f, wxBITMAP_TYPE_PNG, (wxPalette*)NULL ); - - delete backstore; -} - -void MyFrame::OnLoadFile(wxCommandEvent& WXUNUSED(event)) -{ - // Show file selector. - wxString f = wxFileSelector("Open Image", (const char *) NULL, (const char *) NULL,"png", - "PNG files (*.png)|*.png"); - - if (f == "") - return; - - if ( g_TestBitmap ) - delete g_TestBitmap; - g_TestBitmap = new wxBitmap(f, wxBITMAP_TYPE_PNG); - if (!g_TestBitmap->Ok()) - { - delete g_TestBitmap; - g_TestBitmap = (wxBitmap *) NULL; - } - - canvas->Refresh(); -} - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size): - wxScrolledWindow(parent, -1, pos, size) -{ -} - -MyCanvas::~MyCanvas(void) -{ -} - -// Define the repainting behaviour -void MyCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - dc.SetPen(* wxRED_PEN); - - int i; - for ( i = 0; i < 500; i += 10) - { - dc.DrawLine(0, i, 800, i); - } - if ( g_TestBitmap && g_TestBitmap->Ok() ) - { - wxMemoryDC memDC; - if ( g_TestBitmap->GetPalette() ) - { - memDC.SetPalette(* g_TestBitmap->GetPalette()); - dc.SetPalette(* g_TestBitmap->GetPalette()); - } - memDC.SelectObject(* g_TestBitmap); - - // Normal, non-transparent blitting - dc.Blit(20, 20, g_TestBitmap->GetWidth(), g_TestBitmap->GetHeight(), & memDC, 0, 0, wxCOPY, FALSE); - - memDC.SelectObject(wxNullBitmap); - } - - if ( g_TestBitmap && g_TestBitmap->Ok() ) - { - wxMemoryDC memDC; - memDC.SelectObject(* g_TestBitmap); - - // Transparent blitting if there's a mask in the bitmap - dc.Blit(20 + g_TestBitmap->GetWidth() + 20, 20, g_TestBitmap->GetWidth(), g_TestBitmap->GetHeight(), & memDC, - 0, 0, wxCOPY, TRUE); - - memDC.SelectObject(wxNullBitmap); - } -} - - diff --git a/samples/png/pngdemo.h b/samples/png/pngdemo.h deleted file mode 100644 index e250aa69d2..0000000000 --- a/samples/png/pngdemo.h +++ /dev/null @@ -1,58 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.h -// Purpose: wxBitmap class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/wx.h" - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp(void) ; - bool OnInit(void); -}; - -// Define a new frame -class MyCanvas; - -class MyFrame: public wxFrame -{ - public: - MyCanvas *canvas; - MyFrame(wxFrame *parent, const wxString& title, const wxPoint& pos, const wxSize& size); - - void OnActivate(bool) {} - void OnLoadFile(wxCommandEvent& event); - void OnSaveFile(wxCommandEvent& event); - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); -DECLARE_EVENT_TABLE() -}; - -// Define a new canvas which can receive some events -class MyCanvas: public wxScrolledWindow -{ - public: - MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size); - ~MyCanvas(void) ; - - void OnPaint(wxPaintEvent& event); -DECLARE_EVENT_TABLE() -}; - -#define PNGDEMO_QUIT 100 -#define PNGDEMO_ABOUT 101 -#define PNGDEMO_LOAD_FILE 102 -#define PNGDEMO_SAVE_FILE 103 - diff --git a/samples/png/pngdemo.rc b/samples/png/pngdemo.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/samples/png/pngdemo.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/samples/printing/.cvsignore b/samples/printing/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/printing/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/printing/Makefile.am b/samples/printing/Makefile.am deleted file mode 100644 index 28311d2412..0000000000 --- a/samples/printing/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = printing - -printing_SOURCES = printing.cpp diff --git a/samples/printing/fload.xbm b/samples/printing/fload.xbm deleted file mode 100644 index 27af1f939b..0000000000 --- a/samples/printing/fload.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define fload_width 30 -#define fload_height 30 -static char fload_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x0f,0xf8,0xff,0xfb,0x0f,0x08,0x00,0xf0, - 0x0f,0xc8,0xff,0xef,0x0f,0x48,0x00,0xf0,0x0f,0x48,0x00,0xf8,0x0f,0x48,0x00, - 0xfc,0x0e,0x48,0x00,0x7f,0x0c,0x48,0xc0,0xbf,0x00,0x48,0xf0,0x9f,0x04,0x48, - 0xfe,0x8f,0x04,0x48,0xff,0x87,0x04,0x48,0x00,0x80,0x04,0x48,0x00,0x80,0x04, - 0x48,0x00,0x80,0x04,0x48,0x00,0x80,0x04,0xc8,0xff,0xff,0x04,0x08,0x00,0x00, - 0x04,0x08,0x00,0x00,0x04,0x08,0xff,0x1f,0x04,0x08,0x01,0x10,0x04,0x08,0x1d, - 0x10,0x04,0x08,0x15,0x10,0x04,0x08,0x15,0x10,0x04,0x08,0x15,0x10,0x04,0x08, - 0x15,0x10,0x04,0x10,0x1d,0x10,0x04,0xe0,0xff,0xff,0x07,0x00,0x00,0x00,0x00}; diff --git a/samples/printing/folder.xpm b/samples/printing/folder.xpm deleted file mode 100644 index 7a36fa27f1..0000000000 --- a/samples/printing/folder.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -static char * folder_xpm[] = { -"33 33 12 1", -" c None", -". c #D75CA69979E7", -"X c #208120812081", -"o c #FFFFFFFFFFFF", -"O c #B6DA79E74924", -"+ c #596559655965", -"@ c #410341034103", -"# c #514451445144", -"$ c #000000000820", -"% c #8E38596530C2", -"& c #8E3886178617", -"* c #492479E769A6", -" ", -" .. XXX ", -" .o.. X.XXX ", -" .ooo..OOOXXX ", -" .ooooo..OOOXXX ++ ", -"XXX .ooooooo..OOOXXX @#++@ ", -"XOX@X.ooooooooo...OOO@XX+X#+++ ", -"X...@@$.oooooooooo...OOXXX@X@+ ", -"O.....@XXOooooooooooo..OOOX@@X ", -"XO......@%X.ooooooooooo..%%OX@ ", -".O........@XX.oooooooooo.X%XX ", -" %O.........@@$.oooooooo.XX%X ", -" %O...........@@$.oooooo.X%X# ", -" %O.............@@X.oooo.XX%& ", -" .@...............@XX.oo.@XX ", -" %.................@X.o.XXX ", -" OO................O%X..XX@ ", -" +OO.......O..OOOOOOO@..@X& ", -" .%O....OOOOOOOOOOOOOX.+XX ", -" XOOOOOOOOOOOOOOOOOOX+*XX ", -" @OOOOO.OOOOOOOOOOOOX*+XX ", -" .%OOOOOOOOOOOOOOO%OXX#XX ", -" XOOOOOOOOOOO%O%O%%OX++& ", -" @O%O%OO%O%%O%%%%%%%XXX ", -" XXXO%%%%%%%%%%%%%%XXX ", -" OXXX%%%%%%%%%%%%@XX# ", -" OX@X%%%%%%%%%%%XXX ", -" OXXX%%%O%%%%%XXX ", -" OXXX%%%%%%%XX* ", -" OX@X%%%%X%X& ", -" OXXX%%%XX ", -" OXXX%%@ ", -" OXXX "}; diff --git a/samples/printing/makefile.b32 b/samples/printing/makefile.b32 deleted file mode 100644 index 6e1400dbdf..0000000000 --- a/samples/printing/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=printing -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/printing/makefile.bcc b/samples/printing/makefile.bcc deleted file mode 100644 index d2037e9b35..0000000000 --- a/samples/printing/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=printing -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/printing/makefile.dos b/samples/printing/makefile.dos deleted file mode 100644 index 14946d6b93..0000000000 --- a/samples/printing/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=printing -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/printing/makefile.g95 b/samples/printing/makefile.g95 deleted file mode 100644 index 0af39c2cfa..0000000000 --- a/samples/printing/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=printing -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/printing/makefile.unx b/samples/printing/makefile.unx deleted file mode 100644 index 319cf1c827..0000000000 --- a/samples/printing/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for printing example (UNIX). - -PROGRAM=printing - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/printing/makefile.vc b/samples/printing/makefile.vc deleted file mode 100644 index d3430e9401..0000000000 --- a/samples/printing/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=printing -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/printing/makefile.wat b/samples/printing/makefile.wat deleted file mode 100644 index ebd7bff092..0000000000 --- a/samples/printing/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = printing -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/printing/mondrian.ico b/samples/printing/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z -#include "wx/metafile.h" -#include "wx/print.h" -#include "wx/printdlg.h" - -#include "wx/accel.h" - -#if wxTEST_POSTSCRIPT_IN_MSW -#include "wx/generic/printps.h" -#include "wx/generic/prntdlgg.h" -#endif - -#include "printing.h" - -#ifndef __WXMSW__ -#include "mondrian.xpm" -#endif - -// Declare a frame -MyFrame *frame = (MyFrame *) NULL; -// int orientation = wxPORTRAIT; - -// Global print data, to remember settings during the session -wxPrintData *g_printData = (wxPrintData*) NULL ; - -// Global page setup data -wxPageSetupData* g_pageSetupData = (wxPageSetupData*) NULL; - -// Main proc -IMPLEMENT_APP(MyApp) - -// Writes a header on a page. Margin units are in millimetres. -bool WritePageHeader(wxPrintout *printout, wxDC *dc, char *text, float mmToLogical); - -MyApp::MyApp() -{ -} - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ - m_testFont = new wxFont(10, wxSWISS, wxNORMAL, wxNORMAL); - - g_printData = new wxPrintData; - g_pageSetupData = new wxPageSetupDialogData; - - // Compatibility with old system. In fact, we might keep wxThePrintSetupData - // just for useful default values which we can optionally assign to our - // own print data object. - -#if defined(__WXGTK__) || defined(__WXMOTIF__) - (*g_printData) = * wxThePrintSetupData; -#endif - - // Create the main frame window - frame = new MyFrame((wxFrame *) NULL, (char *) "wxWindows Printing Demo", wxPoint(0, 0), wxSize(400, 400)); - - // Give it a status line - frame->CreateStatusBar(2); - - // Load icon and bitmap - frame->SetIcon( wxICON( mondrian) ); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - - file_menu->Append(WXPRINT_PRINT, "&Print...", "Print"); - file_menu->Append(WXPRINT_PRINT_SETUP, "Print &Setup...", "Setup printer properties"); - file_menu->Append(WXPRINT_PAGE_SETUP, "Page Set&up...", "Page setup"); - file_menu->Append(WXPRINT_PREVIEW, "Print Pre&view", "Preview"); - - // Accelerators - wxAcceleratorEntry entries[1]; - entries[0].Set(wxACCEL_CTRL, (int) 'V', WXPRINT_PREVIEW); - wxAcceleratorTable accel(1, entries); - frame->SetAcceleratorTable(accel); - -#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW - file_menu->AppendSeparator(); - file_menu->Append(WXPRINT_PRINT_PS, "Print PostScript...", "Print (PostScript)"); - file_menu->Append(WXPRINT_PRINT_SETUP_PS, "Print Setup PostScript...", "Setup printer properties (PostScript)"); - file_menu->Append(WXPRINT_PAGE_SETUP_PS, "Page Setup PostScript...", "Page setup (PostScript)"); - file_menu->Append(WXPRINT_PREVIEW_PS, "Print Preview PostScript", "Preview (PostScript)"); -#endif - file_menu->AppendSeparator(); - file_menu->Append(WXPRINT_QUIT, "E&xit", "Exit program"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(WXPRINT_ABOUT, "&About", "About this demo"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - MyCanvas *canvas = new MyCanvas(frame, wxPoint(0, 0), wxSize(100, 100), wxRETAINED|wxHSCROLL|wxVSCROLL); - - // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction - canvas->SetScrollbars(20, 20, 50, 50); - - frame->canvas = canvas; - - frame->Centre(wxBOTH); - frame->Show(TRUE); - - frame->SetStatusText("Printing demo"); - - SetTopWindow(frame); - - return TRUE; -} - -int MyApp::OnExit() -{ - delete wxGetApp().m_testFont; - delete g_printData; - delete g_pageSetupData; - return 1; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) -EVT_MENU(WXPRINT_QUIT, MyFrame::OnExit) -EVT_MENU(WXPRINT_PRINT, MyFrame::OnPrint) -EVT_MENU(WXPRINT_PREVIEW, MyFrame::OnPrintPreview) -EVT_MENU(WXPRINT_PRINT_SETUP, MyFrame::OnPrintSetup) -EVT_MENU(WXPRINT_PAGE_SETUP, MyFrame::OnPageSetup) -EVT_MENU(WXPRINT_ABOUT, MyFrame::OnPrintAbout) -#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW -EVT_MENU(WXPRINT_PRINT_PS, MyFrame::OnPrintPS) -EVT_MENU(WXPRINT_PREVIEW_PS, MyFrame::OnPrintPreviewPS) -EVT_MENU(WXPRINT_PRINT_SETUP_PS, MyFrame::OnPrintSetupPS) -EVT_MENU(WXPRINT_PAGE_SETUP_PS, MyFrame::OnPageSetupPS) -#endif -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size): -wxFrame(frame, -1, title, pos, size) -{ - canvas = (MyCanvas *) NULL; -} - -void MyFrame::OnExit(wxCommandEvent& WXUNUSED(event)) -{ - Close(TRUE); -} - -void MyFrame::OnPrint(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintDialogData printDialogData(* g_printData); - - wxPrinter printer(& printDialogData); - MyPrintout printout("My printout"); - if (!printer.Print(this, &printout, TRUE)) - wxMessageBox("There was a problem printing.\nPerhaps your current printer is not set correctly?", "Printing", wxOK); - else - { - (*g_printData) = printer.GetPrintDialogData().GetPrintData(); - } -} - -void MyFrame::OnPrintPreview(wxCommandEvent& WXUNUSED(event)) -{ - // Pass two printout objects: for preview, and possible printing. - wxPrintDialogData printDialogData(* g_printData); - wxPrintPreview *preview = new wxPrintPreview(new MyPrintout, new MyPrintout, & printDialogData); - if (!preview->Ok()) - { - delete preview; - wxMessageBox("There was a problem previewing.\nPerhaps your current printer is not set correctly?", "Previewing", wxOK); - return; - } - - wxPreviewFrame *frame = new wxPreviewFrame(preview, this, "Demo Print Preview", wxPoint(100, 100), wxSize(600, 650)); - frame->Centre(wxBOTH); - frame->Initialize(); - frame->Show(TRUE); -} - -void MyFrame::OnPrintSetup(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintDialogData printDialogData(* g_printData); - wxPrintDialog printerDialog(this, & printDialogData); - - printerDialog.GetPrintDialogData().SetSetupDialog(TRUE); - printerDialog.ShowModal(); - - (*g_printData) = printerDialog.GetPrintDialogData().GetPrintData(); -} - -void MyFrame::OnPageSetup(wxCommandEvent& WXUNUSED(event)) -{ - (*g_pageSetupData) = * g_printData; - - wxPageSetupDialog pageSetupDialog(this, g_pageSetupData); - pageSetupDialog.ShowModal(); - - (*g_printData) = pageSetupDialog.GetPageSetupData().GetPrintData(); - (*g_pageSetupData) = pageSetupDialog.GetPageSetupData(); -} - -#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW -void MyFrame::OnPrintPS(wxCommandEvent& WXUNUSED(event)) -{ - wxPostScriptPrinter printer(g_printData); - MyPrintout printout("My printout"); - printer.Print(this, &printout, TRUE); - - (*g_printData) = printer.GetPrintData(); -} - -void MyFrame::OnPrintPreviewPS(wxCommandEvent& WXUNUSED(event)) -{ - // Pass two printout objects: for preview, and possible printing. - wxPrintDialogData printDialogData(* g_printData); - wxPrintPreview *preview = new wxPrintPreview(new MyPrintout, new MyPrintout, & printDialogData); - wxPreviewFrame *frame = new wxPreviewFrame(preview, this, "Demo Print Preview", wxPoint(100, 100), wxSize(600, 650)); - frame->Centre(wxBOTH); - frame->Initialize(); - frame->Show(TRUE); -} - -void MyFrame::OnPrintSetupPS(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintDialogData printDialogData(* g_printData); - wxGenericPrintDialog printerDialog(this, & printDialogData); - - printerDialog.GetPrintDialogData().SetSetupDialog(TRUE); - printerDialog.ShowModal(); - - (*g_printData) = printerDialog.GetPrintDialogData().GetPrintData(); -} - -void MyFrame::OnPageSetupPS(wxCommandEvent& WXUNUSED(event)) -{ - (*g_pageSetupData) = * g_printData; - - wxGenericPageSetupDialog pageSetupDialog(this, g_pageSetupData); - pageSetupDialog.ShowModal(); - - (*g_printData) = pageSetupDialog.GetPageSetupData().GetPrintData(); - (*g_pageSetupData) = pageSetupDialog.GetPageSetupData(); -} -#endif - - -void MyFrame::OnPrintAbout(wxCommandEvent& WXUNUSED(event)) -{ - (void)wxMessageBox("wxWindows printing demo\nAuthor: Julian Smart julian.smart@ukonline.co.uk", - "About wxWindows printing demo", wxOK|wxCENTRE); -} - -void MyFrame::Draw(wxDC& dc) -{ - dc.SetFont(* wxGetApp().m_testFont); - - dc.SetBackgroundMode(wxTRANSPARENT); - - dc.SetBrush(* wxCYAN_BRUSH); - dc.SetPen(* wxRED_PEN); - - dc.DrawRectangle(0, 30, 200, 100); - dc.DrawText("Rectangle 200 by 100", 40, 40); - - dc.DrawEllipse(50, 140, 100, 50); - - dc.DrawText("Test message: this is in 10 point text", 10, 180); - - dc.SetPen(* wxBLACK_PEN); - dc.DrawLine(0, 0, 200, 200); - dc.DrawLine(200, 0, 0, 200); - - wxIcon my_icon = wxICON(mondrian) ; - - dc.DrawIcon( my_icon, 100, 100); -} - -void MyFrame::OnSize(wxSizeEvent& event ) -{ - wxFrame::OnSize(event); -} - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) -EVT_MOUSE_EVENTS(MyCanvas::OnEvent) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxFrame *frame, const wxPoint& pos, const wxSize& size, long style): - wxScrolledWindow(frame, -1, pos, size, style) -{ - SetBackgroundColour(* wxWHITE); -} - -MyCanvas::~MyCanvas(void) -{ -} - -// Define the repainting behaviour -void MyCanvas::OnDraw(wxDC& dc) -{ - frame->Draw(dc); -} - -void MyCanvas::OnEvent(wxMouseEvent& WXUNUSED(event)) -{ -} - -bool MyPrintout::OnPrintPage(int page) -{ - wxDC *dc = GetDC(); - if (dc) - { - if (page == 1) - DrawPageOne(dc); - else if (page == 2) - DrawPageTwo(dc); - - dc->SetDeviceOrigin(0, 0); - dc->SetUserScale(1.0, 1.0); - - char buf[200]; - sprintf(buf, "PAGE %d", page); - dc->DrawText(buf, 10, 10); - - return TRUE; - } - else - return FALSE; -} - -bool MyPrintout::OnBeginDocument(int startPage, int endPage) -{ - if (!wxPrintout::OnBeginDocument(startPage, endPage)) - return FALSE; - - return TRUE; -} - -void MyPrintout::GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo) -{ - *minPage = 1; - *maxPage = 2; - *selPageFrom = 1; - *selPageTo = 2; -} - -bool MyPrintout::HasPage(int pageNum) -{ - return (pageNum == 1 || pageNum == 2); -} - -void MyPrintout::DrawPageOne(wxDC *dc) -{ -/* You might use THIS code if you were scaling -* graphics of known size to fit on the page. - */ - int w, h; - - // We know the graphic is 200x200. If we didn't know this, - // we'd need to calculate it. - float maxX = 200; - float maxY = 200; - - // Let's have at least 50 device units margin - float marginX = 50; - float marginY = 50; - - // Add the margin to the graphic size - maxX += (2*marginX); - maxY += (2*marginY); - - // Get the size of the DC in pixels - dc->GetSize(&w, &h); - - // Calculate a suitable scaling factor - float scaleX=(float)(w/maxX); - float scaleY=(float)(h/maxY); - - // Use x or y scaling factor, whichever fits on the DC - float actualScale = wxMin(scaleX,scaleY); - - // Calculate the position on the DC for centring the graphic - float posX = (float)((w - (200*actualScale))/2.0); - float posY = (float)((h - (200*actualScale))/2.0); - - // Set the scale and origin - dc->SetUserScale(actualScale, actualScale); - dc->SetDeviceOrigin( (long)posX, (long)posY ); - - frame->Draw(*dc); -} - -void MyPrintout::DrawPageTwo(wxDC *dc) -{ -/* You might use THIS code to set the printer DC to ROUGHLY reflect -* the screen text size. This page also draws lines of actual length 5cm -* on the page. - */ - // Get the logical pixels per inch of screen and printer - int ppiScreenX, ppiScreenY; - GetPPIScreen(&ppiScreenX, &ppiScreenY); - int ppiPrinterX, ppiPrinterY; - GetPPIPrinter(&ppiPrinterX, &ppiPrinterY); - - // This scales the DC so that the printout roughly represents the - // the screen scaling. The text point size _should_ be the right size - // but in fact is too small for some reason. This is a detail that will - // need to be addressed at some point but can be fudged for the - // moment. - float scale = (float)((float)ppiPrinterX/(float)ppiScreenX); - - // Now we have to check in case our real page size is reduced - // (e.g. because we're drawing to a print preview memory DC) - int pageWidth, pageHeight; - int w, h; - dc->GetSize(&w, &h); - GetPageSizePixels(&pageWidth, &pageHeight); - - // If printer pageWidth == current DC width, then this doesn't - // change. But w might be the preview bitmap width, so scale down. - float overallScale = scale * (float)(w/(float)pageWidth); - dc->SetUserScale(overallScale, overallScale); - - // Calculate conversion factor for converting millimetres into - // logical units. - // There are approx. 25.1 mm to the inch. There are ppi - // device units to the inch. Therefore 1 mm corresponds to - // ppi/25.1 device units. We also divide by the - // screen-to-printer scaling factor, because we need to - // unscale to pass logical units to DrawLine. - - // Draw 50 mm by 50 mm L shape - float logUnitsFactor = (float)(ppiPrinterX/(scale*25.1)); - float logUnits = (float)(50*logUnitsFactor); - dc->SetPen(* wxBLACK_PEN); - dc->DrawLine(50, 250, (long)(50.0 + logUnits), 250); - dc->DrawLine(50, 250, 50, (long)(250.0 + logUnits)); - - dc->SetFont(* wxGetApp().m_testFont); - dc->SetBackgroundMode(wxTRANSPARENT); - - dc->DrawText("Some test text", 200, 200 ); - - // TESTING - - int leftMargin = 20; - int rightMargin = 20; - int topMargin = 20; - int bottomMargin = 20; - - int pageWidthMM, pageHeightMM; - GetPageSizeMM(&pageWidthMM, &pageHeightMM); - - float leftMarginLogical = (float)(logUnitsFactor*leftMargin); - float topMarginLogical = (float)(logUnitsFactor*topMargin); - float bottomMarginLogical = (float)(logUnitsFactor*(pageHeightMM - bottomMargin)); - float rightMarginLogical = (float)(logUnitsFactor*(pageWidthMM - rightMargin)); - - dc->SetPen(* wxRED_PEN); - dc->DrawLine( (long)leftMarginLogical, (long)topMarginLogical, - (long)rightMarginLogical, (long)topMarginLogical); - dc->DrawLine( (long)leftMarginLogical, (long)bottomMarginLogical, - (long)rightMarginLogical, (long)bottomMarginLogical); - - WritePageHeader(this, dc, "A header", logUnitsFactor); -} - -// Writes a header on a page. Margin units are in millimetres. -bool WritePageHeader(wxPrintout *printout, wxDC *dc, char *text, float mmToLogical) -{ -/* -static wxFont *headerFont = (wxFont *) NULL; -if (!headerFont) -{ -headerFont = wxTheFontList->FindOrCreateFont(16, wxSWISS, wxNORMAL, wxBOLD); -} -dc->SetFont(headerFont); - */ - - int pageWidthMM, pageHeightMM; - - printout->GetPageSizeMM(&pageWidthMM, &pageHeightMM); - - int leftMargin = 10; - int topMargin = 10; - int rightMargin = 10; - - float leftMarginLogical = (float)(mmToLogical*leftMargin); - float topMarginLogical = (float)(mmToLogical*topMargin); - float rightMarginLogical = (float)(mmToLogical*(pageWidthMM - rightMargin)); - - long xExtent, yExtent; - dc->GetTextExtent(text, &xExtent, &yExtent); - float xPos = (float)(((((pageWidthMM - leftMargin - rightMargin)/2.0)+leftMargin)*mmToLogical) - (xExtent/2.0)); - dc->DrawText(text, (long)xPos, (long)topMarginLogical); - - dc->SetPen(* wxBLACK_PEN); - dc->DrawLine( (long)leftMarginLogical, (long)(topMarginLogical+yExtent), - (long)rightMarginLogical, (long)topMarginLogical+yExtent ); - - return TRUE; -} diff --git a/samples/printing/printing.def b/samples/printing/printing.def deleted file mode 100644 index e880656894..0000000000 --- a/samples/printing/printing.def +++ /dev/null @@ -1,9 +0,0 @@ -NAME Printing -DESCRIPTION 'Printing' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 - diff --git a/samples/printing/printing.h b/samples/printing/printing.h deleted file mode 100644 index d9df02dfbb..0000000000 --- a/samples/printing/printing.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * File: printing.h - * Purpose: Printing demo for wxWindows class library - * Author: Julian Smart - * Created: 1995 - * Updated: - * Copyright: (c) 1995, AIAI, University of Edinburgh - */ - -/* sccsid[] = "%W% %G%" */ - -#ifdef __GNUG__ -#pragma interface -#endif - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp() ; - bool OnInit(); - int OnExit(); - - wxFont* m_testFont; -}; - -DECLARE_APP(MyApp) - -class MyCanvas; - -// Define a new canvas and frame -class MyFrame: public wxFrame -{ - public: - MyCanvas *canvas; - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size); - - void Draw(wxDC& dc); - - void OnSize(wxSizeEvent& event); - void OnPrint(wxCommandEvent& event); - void OnPrintPreview(wxCommandEvent& event); - void OnPrintSetup(wxCommandEvent& event); - void OnPageSetup(wxCommandEvent& event); -#if defined(__WXMSW__) && wxTEST_POSTSCRIPT_IN_MSW - void OnPrintPS(wxCommandEvent& event); - void OnPrintPreviewPS(wxCommandEvent& event); - void OnPrintSetupPS(wxCommandEvent& event); - void OnPageSetupPS(wxCommandEvent& event); -#endif - - void OnExit(wxCommandEvent& event); - void OnPrintAbout(wxCommandEvent& event); -DECLARE_EVENT_TABLE() -}; - -// Define a new canvas which can receive some events -class MyCanvas: public wxScrolledWindow -{ - public: - MyCanvas(wxFrame *frame, const wxPoint& pos, const wxSize& size, long style = wxRETAINED); - ~MyCanvas(void) ; - - virtual void OnDraw(wxDC& dc); - void OnEvent(wxMouseEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class MyPrintout: public wxPrintout -{ - public: - MyPrintout(char *title = "My printout"):wxPrintout(title) {} - bool OnPrintPage(int page); - bool HasPage(int page); - bool OnBeginDocument(int startPage, int endPage); - void GetPageInfo(int *minPage, int *maxPage, int *selPageFrom, int *selPageTo); - - void DrawPageOne(wxDC *dc); - void DrawPageTwo(wxDC *dc); -}; - -#define WXPRINT_QUIT 100 -#define WXPRINT_PRINT 101 -#define WXPRINT_PRINT_SETUP 102 -#define WXPRINT_PAGE_SETUP 103 -#define WXPRINT_PREVIEW 104 - -#define WXPRINT_PRINT_PS 105 -#define WXPRINT_PRINT_SETUP_PS 106 -#define WXPRINT_PAGE_SETUP_PS 107 -#define WXPRINT_PREVIEW_PS 108 - -#define WXPRINT_ABOUT 109 - diff --git a/samples/printing/printing.rc b/samples/printing/printing.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/samples/printing/printing.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/samples/printing/test.dsp b/samples/printing/test.dsp deleted file mode 100644 index c6e9c37f7a..0000000000 --- a/samples/printing/test.dsp +++ /dev/null @@ -1,118 +0,0 @@ -# Microsoft Developer Studio Project File - Name="test" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 5.00 -# ** NICHT BEARBEITEN ** - -# TARGTYPE "Win32 (x86) Application" 0x0101 - -CFG=test - Win32 Release -!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit\ - NMAKE -!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den\ - Befehl -!MESSAGE -!MESSAGE NMAKE /f "test.mak". -!MESSAGE -!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben -!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: -!MESSAGE -!MESSAGE NMAKE /f "test.mak" CFG="test - Win32 Release" -!MESSAGE -!MESSAGE Für die Konfiguration stehen zur Auswahl: -!MESSAGE -!MESSAGE "test - Win32 Release" (basierend auf "Win32 (x86) Application") -!MESSAGE "test - Win32 Debug" (basierend auf "Win32 (x86) Application") -!MESSAGE - -# Begin Project -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "test - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir ".\Release" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /w /W0 /GX /O2 /I "..\..\include" /D "__WXDEBUG__" /D "__WIN32__" /D "__WXMSW__" /D "__WIN95__" /D "STRICT" /D "__WINDOWS__" /YX /FD /D /c -# ADD BASE MTL /nologo /D "NDEBUG" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x407 /d "NDEBUG" -# ADD RSC /l 0x407 /i "..\..\include" /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ..\..\debug\wxwin.lib ctl3d32.lib /nologo /subsystem:windows /incremental:yes /pdb:".\Debug/santis.pdb" /debug /machine:I386 /out:".\Debug/santis.exe" -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "test - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir ".\Debug" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /c -# ADD CPP /nologo /w /W0 /GX /Z7 /Od /I "..\..\include" /D "__WXDEBUG__" /D "__WIN32__" /D "__WXMSW__" /D "__WIN95__" /D "STRICT" /D "__WINDOWS__" /YX /FD /D /c -# ADD BASE MTL /nologo /D "_DEBUG" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 -# ADD BASE RSC /l 0x407 /d "_DEBUG" -# ADD RSC /l 0x407 /i "..\..\include" /d "WXDEBUG" /d "__WXMSW__" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib ..\..\debug\wxwin.lib ctl3d32.lib /nologo /subsystem:windows /debug /machine:I386 -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "test - Win32 Release" -# Name "test - Win32 Debug" -# Begin Group "Quellcodedateien" - -# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" -# Begin Source File - -SOURCE=.\printing.cpp -# End Source File -# End Group -# Begin Group "Header-Dateien" - -# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" -# Begin Source File - -SOURCE=.\printing.h -# End Source File -# End Group -# Begin Group "Ressourcendateien" - -# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" -# Begin Source File - -SOURCE=.\printing.rc -# End Source File -# End Group -# End Target -# End Project diff --git a/samples/printing/test.dsw b/samples/printing/test.dsw deleted file mode 100644 index 449f529bb9..0000000000 --- a/samples/printing/test.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 5.00 -# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! - -############################################################################### - -Project: "test"=.\test.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/samples/proplist/.cvsignore b/samples/proplist/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/proplist/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/proplist/Makefile.am b/samples/proplist/Makefile.am deleted file mode 100644 index d53aac5146..0000000000 --- a/samples/proplist/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = test - -test_SOURCES = test.cpp diff --git a/samples/proplist/cross.bmp b/samples/proplist/cross.bmp deleted file mode 100644 index 079cb0dd58010154f6a791eead3a4cc19c02cf31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmZup$qm3D40EMQNS&l}^k1o?@M^wn1~1l1?Et?*e8`4ecgHv{Y0+9kDTRf{z+H~uRU|SqMnJMG$uK0U!a!ytzjWs7-TIffM+-jaAS7o1 diff --git a/samples/proplist/makefile.b32 b/samples/proplist/makefile.b32 deleted file mode 100644 index 95ddc80d76..0000000000 --- a/samples/proplist/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/proplist/makefile.bcc b/samples/proplist/makefile.bcc deleted file mode 100644 index 669f01905a..0000000000 --- a/samples/proplist/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/proplist/makefile.dos b/samples/proplist/makefile.dos deleted file mode 100644 index 983ef2da8b..0000000000 --- a/samples/proplist/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=test -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/proplist/makefile.g95 b/samples/proplist/makefile.g95 deleted file mode 100644 index b4a920f047..0000000000 --- a/samples/proplist/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=test -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/proplist/makefile.unx b/samples/proplist/makefile.unx deleted file mode 100644 index f874755623..0000000000 --- a/samples/proplist/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for proplist example (UNIX). - -PROGRAM=test - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/proplist/makefile.vc b/samples/proplist/makefile.vc deleted file mode 100644 index 4ada748eda..0000000000 --- a/samples/proplist/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/proplist/makefile.wat b/samples/proplist/makefile.wat deleted file mode 100644 index 81a83e42a9..0000000000 --- a/samples/proplist/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = test -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/proplist/test.cpp b/samples/proplist/test.cpp deleted file mode 100644 index 91f753fbae..0000000000 --- a/samples/proplist/test.cpp +++ /dev/null @@ -1,317 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.cpp -// Purpose: Property sheet test implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "test.h" -#endif - -// 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 "test.h" - -IMPLEMENT_APP(MyApp) - -wxPropertyValidatorRegistry myListValidatorRegistry; -wxPropertyValidatorRegistry myFormValidatorRegistry; - -MyApp::MyApp(void) -{ - m_childWindow = NULL; - m_mainFrame = NULL; -} - -bool MyApp::OnInit(void) -{ - RegisterValidators(); - - // Create the main frame window - m_mainFrame = new MyFrame(NULL, "wxPropertySheet Demo", wxPoint(0, 0), wxSize(300, 400), wxDEFAULT_FRAME_STYLE); - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(PROPERTY_TEST_DIALOG_LIST, "Test property list &dialog..."); - file_menu->Append(PROPERTY_TEST_FRAME_LIST, "Test property list &frame..."); - file_menu->AppendSeparator(); - file_menu->Append(PROPERTY_TEST_DIALOG_FORM, "Test property form d&ialog..."); - file_menu->Append(PROPERTY_TEST_FRAME_FORM, "Test property form f&rame..."); - file_menu->AppendSeparator(); - file_menu->Append(PROPERTY_QUIT, "E&xit"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(PROPERTY_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - m_mainFrame->SetMenuBar(menu_bar); - - m_mainFrame->Centre(wxBOTH); - m_mainFrame->Show(TRUE); - - SetTopWindow(m_mainFrame); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_CLOSE(MyFrame::OnCloseWindow) - EVT_MENU(PROPERTY_QUIT, MyFrame::OnQuit) - EVT_MENU(PROPERTY_ABOUT, MyFrame::OnAbout) - EVT_MENU(PROPERTY_TEST_DIALOG_LIST, MyFrame::OnDialogList) - EVT_MENU(PROPERTY_TEST_FRAME_LIST, MyFrame::OnFrameList) - EVT_MENU(PROPERTY_TEST_DIALOG_FORM, MyFrame::OnDialogForm) - EVT_MENU(PROPERTY_TEST_FRAME_FORM, MyFrame::OnFrameForm) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, long type): - wxFrame(frame, -1, title, pos, size, type) -{ -} - -// Define the behaviour for the frame closing -// - must delete all frames except for the main one. -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (wxGetApp().m_childWindow) - { - wxGetApp().m_childWindow->Close(TRUE); - } - - Destroy(); -} - -void MyFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void MyFrame::OnDialogList(wxCommandEvent& event) -{ - wxGetApp().PropertyListTest(TRUE); -} - -void MyFrame::OnFrameList(wxCommandEvent& event) -{ - wxGetApp().PropertyListTest(FALSE); -} - -void MyFrame::OnDialogForm(wxCommandEvent& event) -{ - wxGetApp().PropertyFormTest(TRUE); -} - -void MyFrame::OnFrameForm(wxCommandEvent& event) -{ - wxGetApp().PropertyFormTest(FALSE); -} - -void MyFrame::OnAbout(wxCommandEvent& event) -{ - (void)wxMessageBox("Property Classes Demo\nAuthor: Julian Smart", "About Property Classes Test"); -} - -void MyApp::RegisterValidators(void) -{ - myListValidatorRegistry.RegisterValidator((wxString)"real", new wxRealListValidator); - myListValidatorRegistry.RegisterValidator((wxString)"string", new wxStringListValidator); - myListValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerListValidator); - myListValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolListValidator); - myListValidatorRegistry.RegisterValidator((wxString)"stringlist", new wxListOfStringsListValidator); - - myFormValidatorRegistry.RegisterValidator((wxString)"real", new wxRealFormValidator); - myFormValidatorRegistry.RegisterValidator((wxString)"string", new wxStringFormValidator); - myFormValidatorRegistry.RegisterValidator((wxString)"integer", new wxIntegerFormValidator); - myFormValidatorRegistry.RegisterValidator((wxString)"bool", new wxBoolFormValidator); -} - -void MyApp::PropertyListTest(bool useDialog) -{ - if (m_childWindow) - return; - - wxPropertySheet *sheet = new wxPropertySheet; - - sheet->AddProperty(new wxProperty("fred", 1.0, "real")); - sheet->AddProperty(new wxProperty("tough choice", (bool)TRUE, "bool")); - sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerListValidator(-50, 50))); - sheet->AddProperty(new wxProperty("bill", 25.0, "real", new wxRealListValidator(0.0, 100.0))); - sheet->AddProperty(new wxProperty("julian", "one", "string")); - sheet->AddProperty(new wxProperty("bitmap", "none", "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp"))); - wxStringList *strings = new wxStringList("one", "two", "three", NULL); - sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringListValidator(strings))); - - wxStringList *strings2 = new wxStringList("earth", "fire", "wind", "water", NULL); - sheet->AddProperty(new wxProperty("string list", strings2, "stringlist")); - - wxPropertyListView *view = - new wxPropertyListView(NULL, - wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN|wxPROP_SHOWVALUES); - - wxDialog *propDialog = NULL; - wxPropertyListFrame *propFrame = NULL; - if (useDialog) - { - propDialog = new PropListDialog(view, NULL, "Property Sheet Test", - wxPoint(-1, -1), wxSize(400, 500), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODELESS); - m_childWindow = propDialog; - } - else - { - propFrame = new PropListFrame(view, NULL, "Property Sheet Test", wxPoint(-1, -1), wxSize(400, 500)); - m_childWindow = propFrame; - } - - view->AddRegistry(&myListValidatorRegistry); - - if (useDialog) - { - view->ShowView(sheet, propDialog); - propDialog->Centre(wxBOTH); - propDialog->Show(TRUE); - } - else - { - propFrame->Initialize(); - view->ShowView(sheet, propFrame->GetPropertyPanel()); - - propFrame->Centre(wxBOTH); - propFrame->Show(TRUE); - } -} - -void MyApp::PropertyFormTest(bool useDialog) -{ - if (m_childWindow) - return; - -#if 0 - wxPropertySheet *sheet = new wxPropertySheet; - - sheet->AddProperty(new wxProperty("fred", 25.0, "real", new wxRealFormValidator(0.0, 100.0))); - sheet->AddProperty(new wxProperty("tough choice", (bool)TRUE, "bool")); - sheet->AddProperty(new wxProperty("ian", (long)45, "integer", new wxIntegerFormValidator(-50, 50))); - sheet->AddProperty(new wxProperty("julian", "one", "string")); - wxStringList *strings = new wxStringList("one", "two", "three", NULL); - sheet->AddProperty(new wxProperty("constrained", "one", "string", new wxStringFormValidator(strings))); - - wxPropertyFormView *view = new wxPropertyFormView(NULL); - - wxDialogBox *propDialog = NULL; - wxPropertyFormFrame *propFrame = NULL; - if (useDialog) - { - propDialog = new PropFormDialog(view, NULL, "Property Form Test", wxPoint(-1, -1), wxSize(380, 250), - wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL); - m_childWindow = propDialog; - } - else - { - propFrame = new PropFormFrame(view, NULL, "Property Form Test", wxPoint(-1, -1), wxSize(280, 250)); - propFrame->Initialize(); - m_childWindow = propFrame; - } - - wxPanel *panel = propDialog ? propDialog : propFrame->GetPropertyPanel(); - panel->SetLabelPosition(wxVERTICAL); - - // Add items to the panel - - (void) new wxButton(panel, -1, "OK", -1, -1, -1, -1, 0, "ok"); - (void) new wxButton(panel, -1, "Cancel", -1, -1, 80, -1, 0, "cancel"); - (void) new wxButton(panel, -1, "Update", -1, -1, 80, -1, 0, "update"); - (void) new wxButton(panel, -1, "Revert", -1, -1, -1, -1, 0, "revert"); - panel->NewLine(); - - // The name of this text item matches the "fred" property - (void) new wxText(panel, -1, "Fred", "", -1, -1, 90, -1, 0, "fred"); - (void) new wxCheckBox(panel, -1, "Yes or no", -1, -1, -1, -1, 0, "tough choice"); - (void) new wxSlider(panel, -1, "Scale", 0, -50, 50, 150, -1, -1, wxHORIZONTAL, "ian"); - panel->NewLine(); - (void) new wxListBox(panel, -1, "Constrained", wxSINGLE, -1, -1, 100, 90, 0, NULL, 0, "constrained"); - - view->AddRegistry(&myFormValidatorRegistry); - - if (useDialog) - { - view->ShowView(sheet, propDialog); - view->AssociateNames(); - view->TransferToDialog(); - propDialog->Centre(wxBOTH); - propDialog->Show(TRUE); - } - else - { - view->ShowView(sheet, propFrame->GetPropertyPanel()); - view->AssociateNames(); - view->TransferToDialog(); - propFrame->Centre(wxBOTH); - propFrame->Show(TRUE); - } -#endif -} - -BEGIN_EVENT_TABLE(PropListFrame, wxPropertyListFrame) - EVT_CLOSE(PropListFrame::OnCloseWindow) -END_EVENT_TABLE() - -void PropListFrame::OnCloseWindow(wxCloseEvent& event) -{ - wxGetApp().m_childWindow = NULL; - - wxPropertyListFrame::OnCloseWindow(event); -} - -BEGIN_EVENT_TABLE(PropListDialog, wxPropertyListDialog) - EVT_CLOSE(PropListDialog::OnCloseWindow) -END_EVENT_TABLE() - -void PropListDialog::OnCloseWindow(wxCloseEvent& event) -{ - wxGetApp().m_childWindow = NULL; - - wxPropertyListDialog::OnCloseWindow(event); -} - -BEGIN_EVENT_TABLE(PropFormFrame, wxPropertyFormFrame) - EVT_CLOSE(PropFormFrame::OnCloseWindow) -END_EVENT_TABLE() - -void PropFormFrame::OnCloseWindow(wxCloseEvent& event) -{ - wxGetApp().m_childWindow = NULL; - - wxPropertyFormFrame::OnCloseWindow(event); -} - -BEGIN_EVENT_TABLE(PropFormDialog, wxPropertyFormDialog) - EVT_CLOSE(PropFormDialog::OnCloseWindow) -END_EVENT_TABLE() - -void PropFormDialog::OnCloseWindow(wxCloseEvent& event) -{ - wxGetApp().m_childWindow = NULL; - - wxPropertyFormDialog::OnCloseWindow(event); -} - diff --git a/samples/proplist/test.def b/samples/proplist/test.def deleted file mode 100644 index d94e329083..0000000000 --- a/samples/proplist/test.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME TEST -DESCRIPTION 'wxProperty test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/samples/proplist/test.h b/samples/proplist/test.h deleted file mode 100644 index 232a6bf60c..0000000000 --- a/samples/proplist/test.h +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: test.h -// Purpose: Property sheet sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "test.h" -#endif - -#ifndef _PROPTEST_H_ -#define _PROPTEST_H_ - -#include "wx/proplist.h" -#include "wx/propform.h" - -class MyChild; - -// Define a new application -class MyFrame; -class MyApp: public wxApp -{ -public: - MyApp(void); - bool OnInit(void); - - void RegisterValidators(void); - void PropertyListTest(bool useDialog); - void PropertyFormTest(bool useDialog); - - MyFrame* m_mainFrame; - wxWindow* m_childWindow; -}; - -DECLARE_APP(MyApp) - -// Define a new frame -class MyFrame: public wxFrame -{ - public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, long type); - - void OnCloseWindow(wxCloseEvent& event); - void OnQuit(wxCommandEvent& event); - void OnDialogList(wxCommandEvent& event); - void OnFrameList(wxCommandEvent& event); - void OnDialogForm(wxCommandEvent& event); - void OnFrameForm(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class PropListFrame: public wxPropertyListFrame -{ -public: - PropListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"): - wxPropertyListFrame(v, parent, title, pos, size, style, name) - { - } - - void OnCloseWindow(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class PropListDialog: public wxPropertyListDialog -{ -public: - PropListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"): - wxPropertyListDialog(v, parent, title, pos, size, style, name) - { - } - - void OnCloseWindow(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class PropFormFrame: public wxPropertyFormFrame -{ -public: - PropFormFrame(wxPropertyFormView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"): - wxPropertyFormFrame(v, parent, title, pos, size, style, name) - { - } - - void OnCloseWindow(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class PropFormDialog: public wxPropertyFormDialog -{ -public: - PropFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"): - wxPropertyFormDialog(v, parent, title, pos, size, style, name) - { - } - - void OnCloseWindow(wxCloseEvent& event); - - DECLARE_EVENT_TABLE() -}; - -#define PROPERTY_QUIT 1 -#define PROPERTY_ABOUT 2 -#define PROPERTY_TEST_DIALOG_LIST 3 -#define PROPERTY_TEST_FRAME_LIST 4 -#define PROPERTY_TEST_DIALOG_FORM 5 -#define PROPERTY_TEST_FRAME_FORM 6 - -#endif - diff --git a/samples/proplist/test.rc b/samples/proplist/test.rc deleted file mode 100644 index 8dd6951bae..0000000000 --- a/samples/proplist/test.rc +++ /dev/null @@ -1,5 +0,0 @@ -tick_bmp BITMAP "tick.bmp" -cross_bmp BITMAP "cross.bmp" - -#include "wx/msw/wx.rc" - diff --git a/samples/proplist/tick.bmp b/samples/proplist/tick.bmp deleted file mode 100644 index 3673eda5de62c1fc3db392cba62bc2e74ad51d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmZvT!3}^g3_|a<9syhMs~1$ShPC0%zsoR vTD4Ar8P!@-DTScB)%%zLZ&*;|h`)_13`n2n6qX97wi7#vQmJ8dT_@wx zNGCgVa)yoes1#NI360B$)ljCI=NWgA^;4#2km1O(K_SfSxvMv%QV}XQFa!lB3dO`a xM!bvzrs;59{rGjMt$F6t?hEd?Mqsb-6QYGX-pju~NX_L(vSq^;>o@y-_5&Q8M8W_7 diff --git a/samples/regtest/key2.ico b/samples/regtest/key2.ico deleted file mode 100644 index 082ff472913fcc457f7325b084398f0f24b65d0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcma)%I}*bn3`CcSir>%&<7zcW1I(35UP>FQ>q*3$VM Th7P2&H;exE3xAQlcm2`{Aev48 diff --git a/samples/regtest/key3.ico b/samples/regtest/key3.ico deleted file mode 100644 index 0cbb4c3360d74049def5417d7bf4a34ebf862c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmaJ-yAHxI5OX9XGG=0C_u0uV!}!G9|%Z6ZcbJqdhhaX#85;y5+yF#{6ZZ7+9EuWKa+50emf_d(&<^)AOqRzi2|is+&s`-YP0 zv@i;E?9Z7$pTnW$kw_zV()R~Z`*tVt8Gkq|{Gk!K--$es>%kY$$Ol%8y|*oh@Rbl2 z$4V%d%LT7Osb48YBfv*fy8LC&IpsX$w56vw$LQm1*Tkl8{I|X)Mu&AJ*_Bt_#%R|> zt#=%@@~S)IoGb;4Zrpaj=xiy@`0WDdW=JM)I`tG@8=_n1Y|hv7t@E{E(hd_>b6Fd9 zQL`;q^ASF0DoLyjheQ^t8+@D%ZK|vrFl~4as;?V3rZSfEY8$`$a1AwT*Ar`Ox!clF zDP5#pZ=|&4fxOpSPrrBd?EOyXpnI!Laf=q;BL87wV>$#U@Cc5e1ADOh2joQcBRFzQ zcfr5GX>s~N-A{nMl=Avi%G8u%q~u)#o&fnh@&sOs&bdy054JfE#J4Rl<0#B@b*zN{ zHRscu{mc>1DGoa1{F{C@Jo`CY!IQTRKU!~f-^7w?-Z<6Uc%KYjMxRU=Nu1B29V{6c mWl{%g)h|pFO6t?XcVK@TVaIRb{eSCuH$REwkN6|_D)I}O#V85@ diff --git a/samples/regtest/regtest.cpp b/samples/regtest/regtest.cpp deleted file mode 100644 index 5b390269a1..0000000000 --- a/samples/regtest/regtest.cpp +++ /dev/null @@ -1,840 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: registry.cpp -// Purpose: wxRegKey class demo -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include "wx/log.h" -#include "wx/treectrl.h" -#include "wx/msw/registry.h" -#include "wx/msw/imaglist.h" - -// ---------------------------------------------------------------------------- -// application type -// ---------------------------------------------------------------------------- -class RegApp : public wxApp -{ -public: - bool OnInit(void); -}; - -// ---------------------------------------------------------------------------- -// image list with registry icons -// ---------------------------------------------------------------------------- -class RegImageList : public wxImageList -{ -public: - enum Icon - { - Root, - ClosedKey, - OpenedKey, - TextValue, - BinaryValue, - }; - - RegImageList(); -}; - -// array of children of the node -//class TreeNode; - -// ---------------------------------------------------------------------------- -// our control -// ---------------------------------------------------------------------------- -class RegTreeCtrl : public wxTreeCtrl -{ -public: - // ctor & dtor - RegTreeCtrl(wxWindow *parent, wxWindowID id); - virtual ~RegTreeCtrl(); - - // notifications - void OnDeleteItem (wxTreeEvent& event); - void OnItemExpanding(wxTreeEvent& event); - void OnSelChanged (wxTreeEvent& event); - - void OnRightClick (wxMouseEvent& event); - void OnChar (wxKeyEvent& event); - - // forwarded notifications (by the frame) - void OnMenuTest(); - - // operations - void DeleteSelected(); - void CreateNewKey(const wxString& strName); - void CreateNewTextValue(const wxString& strName); - void CreateNewBinaryValue(const wxString& strName); - - // information - bool IsKeySelected() const; - - DECLARE_EVENT_TABLE(); - -private: - - // structure describing a registry key/value - class TreeNode : public wxTreeItemData - { -WX_DEFINE_ARRAY(TreeNode *, TreeChildren); - public: - RegTreeCtrl *m_pTree; // must be !NULL - TreeNode *m_pParent; // NULL only for the root node - long m_id; // the id of the tree control item - wxString m_strName; // name of the key/value - TreeChildren m_aChildren; // array of subkeys/values - bool m_bKey; // key or value? - wxRegKey *m_pKey; // only may be !NULL if m_bKey == true - long m_lDummy; // dummy subkey (to make expansion possible) - - // ctor - TreeNode() { m_lDummy = 0; } - - // trivial accessors - long Id() const { return m_id; } - bool IsRoot() const { return m_pParent == NULL; } - bool IsKey() const { return m_bKey; } - TreeNode *Parent() const { return m_pParent; } - - // notifications - bool OnExpand(); - void OnCollapse(); - - // operations - void Refresh() { OnCollapse(); OnExpand(); } - void AddDummy(); - void DestroyChildren(); - const char *FullName() const; - - // get the associated key: make sure the pointer is !NULL - wxRegKey& Key() { if ( !m_pKey ) OnExpand(); return *m_pKey; } - - // dtor deletes all children - ~TreeNode(); - }; - - wxMenu *m_pMenuPopup; - TreeNode *m_pRoot; - wxImageList *m_imageList; - - TreeNode *GetNode(const wxTreeEvent& event) - { return (TreeNode *)GetItemData((WXHTREEITEM)event.GetItem()); } - -public: - // create a new node and insert it to the tree - TreeNode *InsertNewTreeNode(TreeNode *pParent, - const wxString& strName, - int idImage = RegImageList::ClosedKey, - const wxString *pstrValue = NULL); - // add standard registry keys - void AddStdKeys(); -}; - -// ---------------------------------------------------------------------------- -// the main window of our application -// ---------------------------------------------------------------------------- -class RegFrame : public wxFrame -{ -public: - // ctor & dtor - RegFrame(wxFrame *parent, char *title, int x, int y, int w, int h); - virtual ~RegFrame(void); - - // callbacks - void OnQuit (wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnTest (wxCommandEvent& event); - - void OnExpand (wxCommandEvent& event); - void OnCollapse(wxCommandEvent& event); - void OnToggle (wxCommandEvent& event); - - void OnDelete (wxCommandEvent& event); - void OnNewKey (wxCommandEvent& event); - void OnNewText (wxCommandEvent& event); - void OnNewBinary(wxCommandEvent& event); - - bool OnClose () { return TRUE; } - - DECLARE_EVENT_TABLE(); - -private: - RegTreeCtrl *m_treeCtrl; -}; - -// ---------------------------------------------------------------------------- -// various ids -// ---------------------------------------------------------------------------- - -enum -{ - Menu_Quit = 100, - Menu_About, - Menu_Test, - Menu_Expand, - Menu_Collapse, - Menu_Toggle, - Menu_New, - Menu_NewKey, - Menu_NewText, - Menu_NewBinary, - Menu_Delete, - - Ctrl_RegTree = 200, -}; - -// ---------------------------------------------------------------------------- -// event tables -// ---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(RegFrame, wxFrame) - EVT_MENU(Menu_Test, RegFrame::OnTest) - EVT_MENU(Menu_About, RegFrame::OnAbout) - EVT_MENU(Menu_Quit, RegFrame::OnQuit) - EVT_MENU(Menu_Expand, RegFrame::OnExpand) - EVT_MENU(Menu_Collapse, RegFrame::OnCollapse) - EVT_MENU(Menu_Toggle, RegFrame::OnToggle) - EVT_MENU(Menu_Delete, RegFrame::OnDelete) - EVT_MENU(Menu_NewKey, RegFrame::OnNewKey) - EVT_MENU(Menu_NewText, RegFrame::OnNewText) - EVT_MENU(Menu_NewBinary,RegFrame::OnNewBinary) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(RegTreeCtrl, wxTreeCtrl) - EVT_TREE_DELETE_ITEM (Ctrl_RegTree, RegTreeCtrl::OnDeleteItem) - EVT_TREE_ITEM_EXPANDING(Ctrl_RegTree, RegTreeCtrl::OnItemExpanding) - EVT_TREE_SEL_CHANGED (Ctrl_RegTree, RegTreeCtrl::OnSelChanged) - - EVT_CHAR (RegTreeCtrl::OnChar) - EVT_RIGHT_DOWN(RegTreeCtrl::OnRightClick) -END_EVENT_TABLE() - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// create the "registry operations" menu -wxMenu *CreateRegistryMenu() -{ - wxMenu *pMenuNew = new wxMenu; - pMenuNew->Append(Menu_NewKey, "&Key", "Create a new key"); - pMenuNew->AppendSeparator(); - pMenuNew->Append(Menu_NewText, "&Text value", "Create a new text value"); - pMenuNew->Append(Menu_NewBinary, "&Binary value", "Create a new binary value"); - - wxMenu *pMenuReg = new wxMenu; - pMenuReg->Append(Menu_New, "&New", pMenuNew); - pMenuReg->Append(Menu_Delete, "&Delete...", "Delete selected key/value"); - pMenuReg->AppendSeparator(); - pMenuReg->Append(Menu_Expand, "&Expand", "Expand current key"); - pMenuReg->Append(Menu_Collapse, "&Collapse", "Collapse current key"); - pMenuReg->Append(Menu_Toggle, "&Toggle", "Toggle current key"); - - return pMenuReg; -} - -// ---------------------------------------------------------------------------- -// application class -// ---------------------------------------------------------------------------- -IMPLEMENT_APP(RegApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool RegApp::OnInit() -{ - // create the main frame window and show it - RegFrame *frame = new RegFrame(NULL, "wxRegKey Test", 50, 50, 600, 350); - frame->Show(true); - - SetTopWindow(frame); - - return true; -} - -// ---------------------------------------------------------------------------- -// RegFrame -// ---------------------------------------------------------------------------- - -RegFrame::RegFrame(wxFrame *parent, char *title, int x, int y, int w, int h) - : wxFrame(parent, -1, title, wxPoint(x, y), wxSize(w, h)) -{ - // this reduces flicker effects - SetBackgroundColour(wxColour(255, 255, 255)); - - // set the icon - // ------------ - SetIcon(wxIcon("app_icon")); - - // create menu - // ----------- - wxMenu *pMenuFile = new wxMenu; - pMenuFile->Append(Menu_Test, "Te&st", "Test key creation"); - pMenuFile->AppendSeparator(); - pMenuFile->Append(Menu_About, "&About...", "Show an extraordinarly beautiful dialog"); - pMenuFile->AppendSeparator(); - pMenuFile->Append(Menu_Quit, "E&xit", "Quit this program"); - - wxMenuBar *pMenu = new wxMenuBar; - pMenu->Append(pMenuFile, "&File"); - pMenu->Append(CreateRegistryMenu(), "&Registry"); - SetMenuBar(pMenu); - - // create child controls - // --------------------- - m_treeCtrl = new RegTreeCtrl(this, Ctrl_RegTree); - - // create the status line - // ---------------------- - int aWidths[2]; - aWidths[0] = 200; - aWidths[1] = -1; - CreateStatusBar(2); - SetStatusWidths(2, aWidths); -} - -RegFrame::~RegFrame(void) -{ -} - -void RegFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void RegFrame::OnAbout(wxCommandEvent& event) -{ - wxMessageDialog dialog(this, "wxRegistry sample\n(c) 1998 Vadim Zeitlin", - "About wxRegistry", wxOK); - - dialog.ShowModal(); -} - -void RegFrame::OnTest(wxCommandEvent& event) -{ - m_treeCtrl->OnMenuTest(); -} - -void RegFrame::OnExpand(wxCommandEvent& event) -{ - m_treeCtrl->ExpandItem(m_treeCtrl->GetSelection(), wxTREE_EXPAND_EXPAND); -} - -void RegFrame::OnCollapse(wxCommandEvent& event) -{ - m_treeCtrl->ExpandItem(m_treeCtrl->GetSelection(), wxTREE_EXPAND_COLLAPSE); -} - -void RegFrame::OnToggle(wxCommandEvent& event) -{ - m_treeCtrl->ExpandItem(m_treeCtrl->GetSelection(), wxTREE_EXPAND_TOGGLE); -} - -void RegFrame::OnDelete(wxCommandEvent& event) -{ - m_treeCtrl->DeleteSelected(); -} - -void RegFrame::OnNewKey(wxCommandEvent& event) -{ - if ( m_treeCtrl->IsKeySelected() ) { - m_treeCtrl->CreateNewKey( - wxGetTextFromUser("Enter the name of the new key")); - } -} - -void RegFrame::OnNewText(wxCommandEvent& event) -{ - if ( m_treeCtrl->IsKeySelected() ) { - m_treeCtrl->CreateNewTextValue( - wxGetTextFromUser("Enter the name for the new text value")); - } -} - -void RegFrame::OnNewBinary(wxCommandEvent& event) -{ - if ( m_treeCtrl->IsKeySelected() ) { - m_treeCtrl->CreateNewBinaryValue( - wxGetTextFromUser("Enter the name for the new binary value")); - } -} - -// ---------------------------------------------------------------------------- -// RegImageList -// ---------------------------------------------------------------------------- -RegImageList::RegImageList() : wxImageList(16, 16, TRUE) -{ - // should be in sync with enum RegImageList::RegIcon - static const char *aszIcons[] = { "key1","key2","key3","value1","value2" }; - wxString str = "icon_"; - for ( unsigned int n = 0; n < WXSIZEOF(aszIcons); n++ ) { - Add(wxIcon(str + aszIcons[n], wxBITMAP_TYPE_ICO_RESOURCE)); - } -} - -// ---------------------------------------------------------------------------- -// RegTreeCtrl -// ---------------------------------------------------------------------------- - -// create a new tree item and insert it into the tree -RegTreeCtrl::TreeNode *RegTreeCtrl::InsertNewTreeNode(TreeNode *pParent, - const wxString& strName, - int idImage, - const wxString *pstrValue) -{ - // create new item & insert it - TreeNode *pNewNode = new TreeNode; - pNewNode->m_pTree = this; - pNewNode->m_pParent = pParent; - pNewNode->m_strName = strName; - pNewNode->m_bKey = pstrValue == NULL; - pNewNode->m_pKey = NULL; - pNewNode->m_id = InsertItem(pParent ? pParent->m_id : 0, - pNewNode->IsKey() ? strName : *pstrValue, - idImage); - - wxASSERT_MSG( pNewNode->m_id, "can't create tree control item!"); - - // save the pointer in the item - SetItemData(pNewNode->m_id, pNewNode); - - // add it to the list of parent's children - if ( pParent != NULL ) { - pParent->m_aChildren.Add(pNewNode); - } - - // force the [+] button (@@@ not very elegant...) - if ( pNewNode->IsKey() ) - pNewNode->AddDummy(); - - return pNewNode; -} - -RegTreeCtrl::RegTreeCtrl(wxWindow *parent, wxWindowID id) - : wxTreeCtrl(parent, id, wxDefaultPosition, wxDefaultSize, - wxTR_HAS_BUTTONS | wxSUNKEN_BORDER) -{ - // create the image list - // --------------------- - m_imageList = new RegImageList; - SetImageList(m_imageList, wxIMAGE_LIST_NORMAL); - - // create root keys - // ---------------- - m_pRoot = InsertNewTreeNode(NULL, "Registry Root", RegImageList::Root); - - // create popup menu - // ----------------- - m_pMenuPopup = CreateRegistryMenu(); -} - -RegTreeCtrl::~RegTreeCtrl() -{ - delete m_pMenuPopup; - delete m_pRoot; - delete m_imageList; -} - -void RegTreeCtrl::AddStdKeys() -{ - for ( unsigned int ui = 0; ui < wxRegKey::nStdKeys; ui++ ) { - InsertNewTreeNode(m_pRoot, wxRegKey::GetStdKeyName(ui)); - } -} - -// ---------------------------------------------------------------------------- -// notifications -// ---------------------------------------------------------------------------- - -void RegTreeCtrl::OnRightClick(wxMouseEvent& event) -{ - int iFlags; - long lId = HitTest(wxPoint(event.GetX(), event.GetY()), iFlags); - if ( iFlags & wxTREE_HITTEST_ONITEMLABEL ) { - // popup menu only if an item was clicked - wxASSERT( lId != 0 ); - SelectItem(lId); - PopupMenu(m_pMenuPopup, event.GetX(), event.GetY()); - } -} - - -void RegTreeCtrl::OnDeleteItem(wxTreeEvent& event) -{ -} - -// test the key creation functions -void RegTreeCtrl::OnMenuTest() -{ - long lId = GetSelection(); - TreeNode *pNode = (TreeNode *)GetItemData(lId); - - wxCHECK_RET( pNode != NULL, "tree item without data?" ); - - if ( pNode->IsRoot() ) { - wxLogError("Can't create a subkey under the root key."); - return; - } - if ( !pNode->IsKey() ) { - wxLogError("Can't create a subkey under a value!"); - return; - } - - wxRegKey key1(pNode->Key(), "key1"); - if ( key1.Create() ) { - wxRegKey key2a(key1, "key2a"), key2b(key1, "key2b"); - if ( key2a.Create() && key2b.Create() ) { - // put some values under the newly created keys - key1.SetValue("first_term", "10"); - key1.SetValue("second_term", "7"); - key2a = "this is the unnamed value"; - key2b.SetValue("sum", 17); - - // refresh tree - pNode->Refresh(); - wxLogStatus("Test keys successfully added."); - return; - } - } - - wxLogError("Creation of test keys failed."); -} - -void RegTreeCtrl::OnChar(wxKeyEvent& event) -{ - if ( event.KeyCode() == WXK_DELETE ) - DeleteSelected(); - else - wxTreeCtrl::OnChar(event); -} - -void RegTreeCtrl::OnSelChanged(wxTreeEvent& event) -{ - wxFrame *pFrame = (wxFrame *)(wxWindow::GetParent()); - pFrame->SetStatusText(GetNode(event)->FullName(), 1); -} - -void RegTreeCtrl::OnItemExpanding(wxTreeEvent& event) -{ - TreeNode *pNode = GetNode(event); - bool bExpanding = event.GetCode() == wxTREE_EXPAND_EXPAND; - - // expansion might take some time - wxSetCursor(*wxHOURGLASS_CURSOR); - wxLogStatus("Working..."); - wxYield(); // to give the status line a chance to refresh itself - - if ( pNode->IsKey() ) { - if ( bExpanding ) { - // expanding: add subkeys/values - if ( !pNode->OnExpand() ) - return; - } - else { - // collapsing: clean up - pNode->OnCollapse(); - } - - // change icon for non root key - if ( !pNode->IsRoot() ) { - int idIcon = bExpanding ? RegImageList::OpenedKey - : RegImageList::ClosedKey; - SetItemImage(pNode->Id(), idIcon); - } - } - - wxLogStatus("Ok"); - wxSetCursor(*wxSTANDARD_CURSOR); -} - -// ---------------------------------------------------------------------------- -// TreeNode implementation -// ---------------------------------------------------------------------------- -bool RegTreeCtrl::TreeNode::OnExpand() -{ - // remove dummy item - if ( m_lDummy != 0 ) { - m_pTree->Delete(m_lDummy); - m_lDummy = 0; - } - else { - // we've been already expanded - return TRUE; - } - - if ( IsRoot() ) { - // we're the root key - m_pTree->AddStdKeys(); - return true; - } - - if ( Parent()->IsRoot() ) { - // we're a standard key - m_pKey = new wxRegKey(m_strName); - } - else { - // we're a normal key - m_pKey = new wxRegKey(*(Parent()->m_pKey), m_strName); - } - - if ( !m_pKey->Open() ) { - wxLogError("The key '%s' can't be opened.", FullName()); - return false; - } - - // enumeration variables - long l; - wxString str; - bool bCont; - - // enumerate all subkeys - bCont = m_pKey->GetFirstKey(str, l); - while ( bCont ) { - m_pTree->InsertNewTreeNode(this, str, RegImageList::ClosedKey); - bCont = m_pKey->GetNextKey(str, l); - } - - // enumerate all values - bCont = m_pKey->GetFirstValue(str, l); - while ( bCont ) { - wxString strItem; - if (str.IsEmpty()) - strItem = ""; - else - strItem = str; - strItem += " = "; - - // determine the appropriate icon - RegImageList::Icon icon; - switch ( m_pKey->GetValueType(str) ) { - case wxRegKey::Type_String: - case wxRegKey::Type_Expand_String: - case wxRegKey::Type_Multi_String: - { - wxString strValue; - icon = RegImageList::TextValue; - m_pKey->QueryValue(str, strValue); - strItem += strValue; - } - break; - - case wxRegKey::Type_None: - // @@ handle the error... - icon = RegImageList::BinaryValue; - break; - - case wxRegKey::Type_Dword: - { - char szBuf[128]; - long l; - m_pKey->QueryValue(str, &l); - sprintf(szBuf, "%lx", l); - strItem += szBuf; - } - - // fall through - - default: - icon = RegImageList::BinaryValue; - } - - m_pTree->InsertNewTreeNode(this, str, icon, &strItem); - bCont = m_pKey->GetNextValue(str, l); - } - - return true; -} - -void RegTreeCtrl::TreeNode::OnCollapse() -{ - bool bHasChildren = !m_aChildren.IsEmpty(); - DestroyChildren(); - if ( bHasChildren ) - AddDummy(); - else - m_lDummy = 0; - - delete m_pKey; - m_pKey = NULL; -} - -void RegTreeCtrl::TreeNode::AddDummy() -{ - // insert dummy item forcing appearance of [+] button - m_lDummy = m_pTree->InsertItem(Id(), ""); -} - -void RegTreeCtrl::TreeNode::DestroyChildren() -{ - // destroy all children - unsigned int nCount = m_aChildren.Count(); - for ( unsigned int n = 0; n < nCount; n++ ) { - long lId = m_aChildren[n]->Id(); - delete m_aChildren[n]; - m_pTree->Delete(lId); - } - - m_aChildren.Empty(); -} - -RegTreeCtrl::TreeNode::~TreeNode() -{ - DestroyChildren(); - - delete m_pKey; -} - -const char *RegTreeCtrl::TreeNode::FullName() const -{ - static wxString s_strName; - - if ( IsRoot() ) { - return "Registry Root"; - } - else { - // our own registry key might not (yet) exist or we might be a value, - // so just use the parent's and concatenate - s_strName = Parent()->FullName(); - s_strName << '\\' << m_strName; - - return s_strName; - } -} - -// ---------------------------------------------------------------------------- -// operations on RegTreeCtrl -// ---------------------------------------------------------------------------- - -void RegTreeCtrl::DeleteSelected() -{ - long lCurrent = GetSelection(), - lParent = GetParent(lCurrent); - - if ( lParent == 0 ) { - wxLogError("Can't delete root key."); - return; - } - - TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent), - *pParent = (TreeNode *)GetItemData(lParent); - - wxCHECK_RET( pCurrent && pParent, "either node or parent without data?" ); - - if ( pParent->IsRoot() ) { - wxLogError("Can't delete standard key."); - return; - } - - if ( pCurrent->IsKey() ) { - if ( wxMessageBox("Do you really want to delete this key?", - "Confirmation", - wxICON_QUESTION | wxYES_NO | wxCANCEL, this) != wxYES ) { - return; - } - - // must close key before deleting it - pCurrent->OnCollapse(); - - if ( pParent->Key().DeleteKey(pCurrent->m_strName) ) - pParent->Refresh(); - } - else { - if ( wxMessageBox("Do you really want to delete this value?", - "Confirmation", - wxICON_QUESTION | wxYES_NO | wxCANCEL, this) != wxYES ) { - return; - } - - if ( pParent->Key().DeleteValue(pCurrent->m_strName) ) - pParent->Refresh(); - } -} - -void RegTreeCtrl::CreateNewKey(const wxString& strName) -{ - long lCurrent = GetSelection(); - TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent); - - wxCHECK_RET( pCurrent != NULL, "node without data?" ); - - wxASSERT( pCurrent->IsKey() ); // check must have been done before - - if ( pCurrent->IsRoot() ) { - wxLogError("Can't create a new key under the root key."); - return; - } - - wxRegKey key(pCurrent->Key(), strName); - if ( key.Create() ) - pCurrent->Refresh(); -} - -void RegTreeCtrl::CreateNewTextValue(const wxString& strName) -{ - long lCurrent = GetSelection(); - TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent); - - wxCHECK_RET( pCurrent != NULL, "node without data?" ); - - wxASSERT( pCurrent->IsKey() ); // check must have been done before - - if ( pCurrent->IsRoot() ) { - wxLogError("Can't create a new value under the root key."); - return; - } - - if ( pCurrent->Key().SetValue(strName, "") ) - pCurrent->Refresh(); -} - -void RegTreeCtrl::CreateNewBinaryValue(const wxString& strName) -{ - long lCurrent = GetSelection(); - TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent); - - wxCHECK_RET( pCurrent != NULL, "node without data?" ); - - wxASSERT( pCurrent->IsKey() ); // check must have been done before - - if ( pCurrent->IsRoot() ) { - wxLogError("Can't create a new value under the root key."); - return; - } - - if ( pCurrent->Key().SetValue(strName, 0) ) - pCurrent->Refresh(); -} - -bool RegTreeCtrl::IsKeySelected() const -{ - long lCurrent = GetSelection(); - TreeNode *pCurrent = (TreeNode *)GetItemData(lCurrent); - - wxCHECK( pCurrent != NULL, false ); - - return pCurrent->IsKey(); -} \ No newline at end of file diff --git a/samples/regtest/regtest.rc b/samples/regtest/regtest.rc deleted file mode 100644 index 8d688bba6f..0000000000 --- a/samples/regtest/regtest.rc +++ /dev/null @@ -1,9 +0,0 @@ -#include "wx/msw/wx.rc" - -app_icon ICON "registry.ico" -icon_key1 ICON "key1.ico" -icon_key2 ICON "key2.ico" -icon_key3 ICON "key3.ico" -icon_value1 ICON "value1.ico" -icon_value2 ICON "value2.ico" - diff --git a/samples/regtest/value1.ico b/samples/regtest/value1.ico deleted file mode 100644 index d03a5d07629452d96cc127801a9e84007d98649b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcma)2F%kkH3|z*WxhqL?t(HEI4m;C%9be)pK0!LWxB*Wa3pZpp$xavsATVN#aGV3M zx-xxoVg^iPKs)~;I&P{CA+toSmFkA|12eCf3?Dh|SiD%0&iMkAbfcNGr9vgX+Js;) p?Z}f#lcDzMuifX8y!XTukI~ z@kqeUmF3Bum2f2k5`0FS_)w$^nHH@zst+tK%-pefJaQVC-ONR%`UJGRIIPu*uE%z) oU1_5q8aelfqHIR~qmc_V)>OJKSONn30Q-A9;!out;li4LFUas}=l}o! diff --git a/samples/resource/.cvsignore b/samples/resource/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/samples/resource/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/samples/resource/Makefile.am b/samples/resource/Makefile.am deleted file mode 100644 index 45bf3c9ee2..0000000000 --- a/samples/resource/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = resource - -resource_SOURCES = resource.cpp diff --git a/samples/resource/dialog1.h b/samples/resource/dialog1.h deleted file mode 100644 index 99f31f9b1b..0000000000 --- a/samples/resource/dialog1.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * dialog1.h - * Window identifiers file written by Dialog Editor - */ - -#define ID_TEXTCTRL104 104 -#define ID_STATICBOX101 101 -#define ID_DIALOG100 100 -#define ID_STATIC107 107 -#define ID_BUTTON108 108 -#define ID_BUTTON109 109 -#define ID_LISTBOX105 105 -#define ID_CHECKBOX106 106 -#define ID_RADIOBOX102 102 diff --git a/samples/resource/dialog1.wxr b/samples/resource/dialog1.wxr deleted file mode 100644 index 690edaa08c..0000000000 --- a/samples/resource/dialog1.wxr +++ /dev/null @@ -1,26 +0,0 @@ -static char *dialog1 = "dialog(name = 'dialog1',\ - style = 'wxRAISED_BORDER | wxCAPTION | wxTHICK_FRAME | wxSYSTEM_MENU',\ - title = 'Test dialog box',\ - id = 100,\ - x = 10, y = 10, width = 198, height = 147,\ - background_colour = 'D6D6D6',\ - use_dialog_units = 1,\ - use_system_defaults = 1,\ - font = [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss'],\ - control = [101, wxStaticBox, 'wxStaticBox', '0', 'group6', 5, 7, 184, 103,\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [102, wxRadioBox, 'Radiobox', 'wxRA_HORIZONTAL', 'radiobox2', 15, 24, 36, 58, ['One', 'Two', 'Three', 'Four'], 1,\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [104, wxTextCtrl, '', 'wxTE_MULTILINE', 'multitext3', 62, 24, 67, 33, 'wxWindows rules!',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [105, wxListBox, '', '0', 'listbox4', 62, 66, 67, 33, ['Apples', 'Bananas', 'Pears', 'Kiwis'],\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [106, wxCheckBox, 'Checkbox', '0', 'checkbox9', 141, 26, 36, 14, 0,\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [107, wxStaticText, 'My Message', '0', 'message10', 143, 57, 39, 12, '',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [108, wxButton, 'Press me', '0', 'button7', 141, 81, 36, 13, '',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']],\ - control = [109, wxButton, 'Cancel', '0', 'button8', 62, 119, 55, 17, '',\ - [12, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'Swiss']])."; - diff --git a/samples/resource/makefile.b32 b/samples/resource/makefile.b32 deleted file mode 100644 index dc944a8272..0000000000 --- a/samples/resource/makefile.b32 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=resource -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/samples/resource/makefile.bcc b/samples/resource/makefile.bcc deleted file mode 100644 index c69508d16d..0000000000 --- a/samples/resource/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=resource -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/samples/resource/makefile.dos b/samples/resource/makefile.dos deleted file mode 100644 index 351562fe3c..0000000000 --- a/samples/resource/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=resource -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/samples/resource/makefile.g95 b/samples/resource/makefile.g95 deleted file mode 100644 index a8ef75d70b..0000000000 --- a/samples/resource/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../.. - -TARGET=resource -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/samples/resource/makefile.sc b/samples/resource/makefile.sc deleted file mode 100644 index 235c8f8bc1..0000000000 --- a/samples/resource/makefile.sc +++ /dev/null @@ -1,35 +0,0 @@ -# Symantec C++ makefile for hello example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.cc.obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -hello.exe: hello.obj hello.def hello.res - *$(CC) $(LDFLAGS) -o$@ hello.obj hello.def $(LIBS) - *$(RC) -k hello.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws - diff --git a/samples/resource/makefile.unx b/samples/resource/makefile.unx deleted file mode 100644 index 2076a000a7..0000000000 --- a/samples/resource/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for resource example (UNIX). - -PROGRAM=resource - -OBJECTS=$(PROGRAM).o - -include ../../src/makeprog.env - diff --git a/samples/resource/makefile.vc b/samples/resource/makefile.vc deleted file mode 100644 index 103fa7f6bd..0000000000 --- a/samples/resource/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=resource -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/resource/makefile.vms b/samples/resource/makefile.vms deleted file mode 100644 index 1ef109fbeb..0000000000 --- a/samples/resource/makefile.vms +++ /dev/null @@ -1,38 +0,0 @@ -#************************************************************************ -# Makefile for HELLO under VMS -# by Stefan Hammes -# (incomplete) update history: -# 11.04.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = hello - -# Object modules of the application. -OBJS = hello.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(MAIN).$(OBJ) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(MAIN).$(OBJ),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ -hello.obj : hello.cc hello.h - diff --git a/samples/resource/makefile.wat b/samples/resource/makefile.wat deleted file mode 100644 index a2041fd638..0000000000 --- a/samples/resource/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = resource -OBJECTS = $(PROGRAM).obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/samples/resource/menu1.wxr b/samples/resource/menu1.wxr deleted file mode 100644 index 3536bb5a6c..0000000000 --- a/samples/resource/menu1.wxr +++ /dev/null @@ -1,13 +0,0 @@ - -static char *menu1 = "menu(name = 'menu1',\ - menu = \ - [\ - ['&File', 1, '', \ - ['&Dialog box test', 2, ''],\ - [],\ - ['&Exit', 4, '']\ - ],\ - ['&Help', 5, '', \ - ['&About', 6, '']\ - ]\ - ])."; diff --git a/samples/resource/resource.cpp b/samples/resource/resource.cpp deleted file mode 100644 index 588b3873ff..0000000000 --- a/samples/resource/resource.cpp +++ /dev/null @@ -1,192 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: resource.cpp -// Purpose: Dialog resource sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// 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/resource.h" - -#include -#include "resource.h" - -// If we wanted to demonstrate total platform independence, -// then we'd use the dynamic file loading form for all platforms. -// But this shows how to embed the wxWindows resources -// in the program code/executable for UNIX and Windows -// platforms. - -// In order to get the ID of the controls defined in the -// dialog, we include the header automatically generated -// by DialogEd - -#include "dialog1.h" - -// If you have a Windows compiler that can cope with long strings, -// then you can always use the #include form for simplicity. - -// NOTE: Borland's brc32.exe resource compiler doesn't recognize -// the TEXT resource, for some reason, so either run-time file loading -// or file inclusion should be used. - -#if defined(__WXMSW__) -// Under Windows, some compilers can't include -// a whole .wxr file. So we use a .rc user-defined resource -// instead. dialog1 will point to the whole .wxr 'file'. -static char *dialog1 = NULL; -static char *menu1 = NULL; -#else -// Other platforms should have sensible compilers that -// cope with long strings. -#include "dialog1.wxr" -#include "menu1.wxr" -#endif - -// Declare two frames -MyFrame *frame = (MyFrame *) NULL; - -IMPLEMENT_APP(MyApp) - -// Testing of ressources -MyApp::MyApp() -{ -} - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ -#if defined(__WXMSW__) - // Load the .wxr 'file' from a .rc resource, under Windows. - dialog1 = wxLoadUserResource("dialog1", "WXRDATA"); - menu1 = wxLoadUserResource("menu1", "WXRDATA"); - // All resources in the file (only one in this case) get parsed - // by this call. - wxResourceParseString(dialog1); - wxResourceParseString(menu1); -#else - // Simply parse the data pointed to by the variable dialog1. - // If there were several resources, there would be several - // variables, and this would need to be called several times. - wxResourceParseData(dialog1); - wxResourceParseData(menu1); -#endif - - // Create the main frame window - frame = new MyFrame((wxFrame *) NULL, -1, (char *) "wxWindows Resource Sample", wxPoint(-1, -1), wxSize(300, 250)); - - // Give it a status line - frame->CreateStatusBar(2); - - wxMenuBar *menu_bar = wxResourceCreateMenuBar("menu1"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - // Make a panel - frame->panel = new MyPanel(frame, -1, wxPoint(0, 0), wxSize(400, 400), 0, "MyMainFrame"); - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -MyApp::~MyApp() -{ - delete dialog1; - delete menu1; -} - -BEGIN_EVENT_TABLE(MyPanel, wxPanel) - EVT_LEFT_DOWN( MyPanel::OnClick) -END_EVENT_TABLE() - -MyPanel::MyPanel( wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - int style, const wxString &name ) : - wxPanel( parent, id, pos, size, style, name ) -{ -} - -void MyPanel::OnClick( wxMouseEvent &WXUNUSED(event2) ) -{ - MyFrame *frame = (MyFrame*)(wxTheApp->GetTopWindow()); - wxCommandEvent event; - frame->OnTestDialog( event ); -} - - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(RESOURCE_ABOUT, MyFrame::OnAbout) - EVT_MENU(RESOURCE_QUIT, MyFrame::OnQuit) - EVT_MENU(RESOURCE_TESTDIALOG, MyFrame::OnTestDialog) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(parent, id, title, pos, size) -{ - panel = (wxWindow *) NULL; -} - -void MyFrame::OnAbout( wxCommandEvent& WXUNUSED(event) ) -{ - wxMessageBox("wxWindows resource sample.\n" - "(c) Julian Smart", "About wxWindows sample", - wxICON_INFORMATION | wxOK); -} - -void MyFrame::OnQuit( wxCommandEvent& WXUNUSED(event) ) -{ - Close(TRUE); -} - -void MyFrame::OnTestDialog(wxCommandEvent& WXUNUSED(event) ) -{ - MyDialog *dialog = new MyDialog; - if (dialog->LoadFromResource(this, "dialog1")) - { - wxTextCtrl *text = (wxTextCtrl *)wxFindWindowByName("multitext3", dialog); - if (text) - text->SetValue("wxWindows resource demo"); - dialog->ShowModal(); - } - dialog->Close(TRUE); -} - -BEGIN_EVENT_TABLE(MyDialog, wxDialog) - // EVT_BUTTON(RESOURCE_OK, MyDialog::OnOk) - EVT_BUTTON(ID_BUTTON109, MyDialog::OnCancel) -END_EVENT_TABLE() - - -void MyDialog::OnOk(wxCommandEvent& WXUNUSED(event) ) -{ - // EndModal(RESOURCE_OK); -} - -void MyDialog::OnCancel(wxCommandEvent& WXUNUSED(event) ) -{ - EndModal(ID_BUTTON109); -} - - diff --git a/samples/resource/resource.def b/samples/resource/resource.def deleted file mode 100644 index 49791b5e6c..0000000000 --- a/samples/resource/resource.def +++ /dev/null @@ -1,9 +0,0 @@ -NAME Resource -DESCRIPTION 'Resource' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 - diff --git a/samples/resource/resource.h b/samples/resource/resource.h deleted file mode 100644 index 5975b871c7..0000000000 --- a/samples/resource/resource.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: resource.h -// Purpose: Dialog resource sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface -#endif - -// Define a new application -class MyApp: public wxApp -{ -public: - MyApp(); - - virtual bool OnInit(); - - virtual ~MyApp(); -}; - -class MyPanel: public wxPanel -{ -public: - MyPanel(wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, int style, const wxString &name); - void OnClick(wxMouseEvent &event); - -private: - DECLARE_EVENT_TABLE() -}; - -class MyFrame: public wxFrame -{ -public: - MyFrame(wxWindow *parent, const wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size); - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnTestDialog(wxCommandEvent& event); - - wxWindow *panel; - -private: - DECLARE_EVENT_TABLE() -}; - -class MyDialog : public wxDialog -{ -public: - void OnOk(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - -private: - DECLARE_EVENT_TABLE() -}; - -// the values should be the same as in menu.wxr file! -enum -{ - RESOURCE_TESTDIALOG = 2, - RESOURCE_QUIT = 4, - RESOURCE_ABOUT = 6 -}; diff --git a/samples/resource/resource.rc b/samples/resource/resource.rc deleted file mode 100644 index 55ff494812..0000000000 --- a/samples/resource/resource.rc +++ /dev/null @@ -1,10 +0,0 @@ -#include "wx/msw/wx.rc" - -/* Comment out these lines for Borland C++ or GNU-WIN32 */ -/* -dialog1 TEXT "dialog1.wxr" -menu1 TEXT "menu1.wxr" -*/ -dialog1 WXRDATA "dialog1.wxr" -menu1 WXRDATA "menu1.wxr" - diff --git a/samples/richedit/Makefile.am b/samples/richedit/Makefile.am deleted file mode 100644 index 46e100d2a9..0000000000 --- a/samples/richedit/Makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -SUFFIXES = .cpp - -DEFS = @DEFS@ $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) - -noinst_PROGRAMS = wxLayout - -wxLayout_SOURCES = wxLayout.cpp kbList.cpp wxllist.cpp wxlparser.cpp wxlwindow.cpp diff --git a/samples/richedit/Micon.xpm b/samples/richedit/Micon.xpm deleted file mode 100644 index 153d3a4a7b..0000000000 --- a/samples/richedit/Micon.xpm +++ /dev/null @@ -1,309 +0,0 @@ -/* XPM */ -static char *Micon_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 64 48 254 2", -/* colors */ -".. c #040207", -".# c #6482b4", -".a c #2a4471", -".b c #9cc2d4", -".c c #4c627f", -".d c #94918e", -".e c #0c243e", -".f c #4c4a4a", -".g c #3c63a8", -".h c #7ca2ac", -".i c #24447e", -".j c #2c2c2c", -".k c #5482cc", -".l c #d4d0d0", -".m c #99aab7", -".n c #5c74b1", -".o c #2c5287", -".p c #1a2a4d", -".q c #acdefc", -".r c #646362", -".s c #7491d0", -".t c #bcc4bf", -".u c #5273aa", -".v c #b4b1aa", -".w c #3d5583", -".x c #828482", -".y c #8c9490", -".z c #6f7369", -".A c #1c365c", -".B c #041220", -".C c #2c325c", -".D c #94b6e4", -".E c #3e4242", -".F c #648edc", -".G c #d4f2fc", -".H c #cbd3d1", -".I c #3c54a1", -".J c #243244", -".K c #4c69aa", -".L c #7c8ba2", -".M c #4c5d84", -".N c #34497f", -".O c #1c2228", -".P c #6484c5", -".Q c #6a7788", -".R c #9ba09b", -".S c #2c3634", -".T c #acb6b4", -".U c #141517", -".V c #a0c4e8", -".W c #515753", -".X c #5c76cc", -".Y c #1b2f51", -".Z c #4472c4", -".0 c #7c8a88", -".1 c #5a6262", -".2 c #a4aba6", -".3 c #bcc8d5", -".4 c #7494df", -".5 c #84b2d4", -".6 c #6784d9", -".7 c #acd3e4", -".8 c #304b72", -".9 c #2c4c81", -"#. c #3c5b93", -"## c #5468bc", -"#a c #b5bbb0", -"#b c #1c3765", -"#c c #444e44", -"#d c #ecece8", -"#e c #7ca3dc", -"#f c #d4deda", -"#g c #345495", -"#h c #1c2641", -"#i c #94a6cc", -"#j c #243252", -"#k c #a7acb5", -"#l c #5c7ab3", -"#m c #0a152d", -"#n c #c4def0", -"#o c #686e84", -"#p c #a4a19e", -"#q c #3e3c3a", -"#r c #84aaee", -"#s c #040a09", -"#t c #3c6294", -"#u c #7c929c", -"#v c #3c5c9d", -"#w c #4e6ead", -"#x c #344458", -"#y c #446bae", -"#z c #696b6a", -"#A c #547cbc", -"#B c #789ae3", -"#C c #112a44", -"#D c #4f504b", -"#E c #2c3140", -"#F c #8c8688", -"#G c #5e5c5c", -"#H c #8c8c80", -"#I c #cccccc", -"#J c #4c6398", -"#K c #c7cbc4", -"#L c #5174b8", -"#M c #3d558e", -"#N c #2c3c5f", -"#O c #acbad4", -"#P c #3f495a", -"#Q c #354e82", -"#R c #6a8ac7", -"#S c #767c84", -"#T c #30374b", -"#U c #b1c9e7", -"#V c #1b315d", -"#W c #537bcb", -"#X c #c4bec0", -"#Y c #243e6a", -"#Z c #969892", -"#0 c #7e858e", -"#1 c #94b3f1", -"#2 c #c2d4e8", -"#3 c #141e35", -"#4 c #acb2ac", -"#5 c #c4ced0", -"#6 c #2b4d8e", -"#7 c #445ca2", -"#8 c #2c3e6f", -"#9 c #14243e", -"a. c #f1fdfa", -"a# c #8c9abc", -"aa c #d7f9f9", -"ab c #5a697e", -"ac c #c7ebf7", -"ad c #bceefc", -"ae c #b4c2b4", -"af c #889cf0", -"ag c #d8d6c8", -"ah c #748598", -"ai c #b4d2fc", -"aj c #4c5eb0", -"ak c #3f4f64", -"al c #8492bc", -"am c #161d1e", -"an c #5d7dcf", -"ao c #5c86d6", -"ap c #9cacc8", -"aq c #6c92e6", -"ar c #e4ecec", -"as c #89b7ef", -"at c #a6d0f8", -"au c #e4e2e0", -"av c #8c98a4", -"aw c #ccdaec", -"ax c #94bee4", -"ay c #232b2b", -"az c #1c2b43", -"aA c #0c1c33", -"aB c #99bcf7", -"aC c #6c72bc", -"aD c #7c766c", -"aE c #a4a2b4", -"aF c #6c7eac", -"aG c #e4d6dc", -"aH c #e4fefc", -"aI c #84aeb4", -"aJ c #b4b6bf", -"aK c #345b9b", -"aL c #bce2ef", -"aM c #ccc6bc", -"aN c #82a3ef", -"aO c #7c7b77", -"aP c #040c1e", -"aQ c #6c7e94", -"aR c #9ca69c", -"aS c #acbebc", -"aT c #a2cafa", -"aU c #545e5f", -"aV c #5c6a74", -"aW c #cae6ee", -"aX c #5c6e7c", -"aY c #5474c6", -"aZ c #fcfaf4", -"a0 c #344672", -"a1 c #446ec4", -"a2 c #b4c4d4", -"a3 c #313231", -"a4 c #9cb2b4", -"a5 c #345a8c", -"a6 c #7496d4", -"a7 c #0c1a24", -"a8 c #444a47", -"a9 c #343e3c", -"b. c #dce6e4", -"b# c #a9b2bc", -"ba c #a6a6a3", -"bb c #446a9c", -"bc c #c4f2f8", -"bd c #445667", -"be c #727475", -"bf c #6a7896", -"bg c #9aa0a7", -"bh c #9ec4fa", -"bi c #545a61", -"bj c #6474e0", -"bk c #546674", -"bl c #b8bcbd", -"bm c #5d7cbf", -"bn c #515255", -"bo c #979a9f", -"bp c #849cd0", -"bq c #546a8f", -"br c #d7d8d5", -"bs c #688ada", -"bt c #4f6ebe", -"bu c #343e4c", -"bv c #dafefc", -"bw c #acd6fc", -"bx c #b4b6b0", -"by c #8c9a94", -"bz c #203a44", -"bA c #a4b6c8", -"bB c #4c6a98", -"bC c #040214", -"bD c #5c74be", -"bE c #4c5c98", -"bF c #24325c", -"bG c #8c8c8f", -"bH c #4464a7", -"bI c #2c457e", -"bJ c #5c83c7", -"bK c #34538a", -"bL c #b4dff1", -"bM c #7c92d4", -"bN c #c4c4c0", -"bO c #243759", -"bP c #0c151e", -"bQ c #9cb2d4", -"bR c #6c8fd3", -"bS c #546aab", -"bT c #848c9f", -"bU c #242420", -"bV c #6c83c0", -"bW c #343935", -"bX c #848b89", -"bY c #acaca6", -"bZ c #c4cad0", -"b0 c #445c90", -"b1 c #243865", -"b2 c #dce0dc", -"b3 c #747b76", -"b4 c #8cacee", -"b5 c #0c0c08", -"b6 c #446299", -"b7 c #8493a4", -/* pixels */ -"................................................................................................................................", -"..................................bC....bC....bC..bC....bC..bCbCbCbC..bCbC..bC..bC..bC..bCbC..bC..bC....bC....bC................", -"..#9#C#h#C.p.Y.Y.Y#j.Y.Y.Y#V#V#Vb1bFb1b1#8#Y.a.a#Q#Q.a.N#Q.abI.i.9bI#Q#MbK#M.wb0#M.9.N.N.N.9.abI.a#Y#Yb1b1#b#bb1b1b1#V#V#V#Vaz..", -"..#h#C.p.p#9.Y.Y#j.AbObO.A.AbO.Ab1#Y#Y#8.a.aa0.N.8.w.w#QbK.w.ibI.9#6#Q#.#Mb0b0#J#MbK#M.NbK.N.9.NbI.N#YbIb1#Y#8#8bOb1bO#j#V#Caz..", -"..#9.e#h#C.p.p.Y.YbO.A#b#N.a#8#Y#bb1#8#Y.Na0.9.8#Q.w.Mb0#Q#MbK.9bK#g#6.Kb6#J#J#wb0#M#MbKbK#Q#M.9bI.N.N.a.N.a.a.ab1b1#V.Y#V.Y.Y..", -"..#9#C.p#h.p.p.p.Y#VbO#b.a.ia0.9#Q.N#YbI.a.N.N.N.w#Q.wb6b6b0b6#.#g#v#M.K#w#L.n.n#vbH#.bH.Ib6aK#MbK.9#Q#Q#Q#Q.a#Yb1.AbF#VbO.Y#j..", -"..#h#h.p.p.p.Y.p#bbF#bb1#Y.a.8.N#Q#M#M#Q.N.9#QbK#M#Mb0b0.ubB.K.K#..K#v#w.nbmbV.nbHbS#w#7#w#vb0#.#M#Mb0#M#Q.9#Y#Yb1#Yb1b1.Y.Y.Y..", -"..#h#9.p.p.p#V#V#b#b#Y#Y.a.ibI.N.w#Mb0b6#7#M#Q#QbK#.b6b6bq#l.n#LbHbH#y#L#R.s.4#AaY#w#w#L.K.KbH.g.KbH#v#M.9bI.i.8.a#Yb1.A.A.A#j..", -"..#h#C.p.p.Y#V#V#bb1.abIbI#6.o.o#g.oaK#tbH.K.KbH#M.Iaj.K#w.n#R.P#Rbt#W#W.4bpb4aoanbsaobm#La1#L#A#L.ga5bK#g#g#Q.8#Y#bb1b1bOb1bO..", -"...p.p.Y#V.Y#V.Ab1#YbI.9#Q#Q#M#M#7#7#M#v.M#J.K.K.nbS#MbH.nbm.#b4.s#Baq#Wb4aB#1aqaq#R.P.##l#RbmbD.K#7#J#J#.#Q.9.i.N.a#Y#Yb1.Aaz..", -"..az#C#V#j#V.A#N#8.N.N.ibObz#T.J#E.J#T#Tbu.Y.8#..K.nbVbD#wbm.4a6aTb4aoaNaTaiasaNa6.n.m.3bZ#2bN.3aR#2#2.3#J#Q#MbK.8.a#8#b.AbO#j..", -"..#h.p.p.Y.Yb1bO.ibI#g#Mbd#hambU.jbW.Sa3aybP.Y.9bHbH.ubm#BbM.P#rbhbc.qasbL.G.VbhaBbpbZaJbobxbl#I#a#abXbP#V.9#6.NbI#8#8#bbF#V#j..", -"..az#C.Y.Y.Y#bb1.abI#Q.oaj#Pa3a3aya3a3bW.Eayb0.K.g#y.K#LanbRbhaTaxbLbvbLbvbvaLadaTai.mbobYba#Xbl.H#I#P#m#.#M#QbIbI#Y#Yb1#b#V#j..", -"..az.p.p#VbObO#Y.a.N#g#g.I#xbW.j.ja3.E.Ebnbib0bmananbm#wanbs.4asacbLbvaHa.aHbvbc.7aIbY#p#pblbl#Kbe#F#k#9#..I#g#6.i#8#8b1b1.A#j..", -"..#h#C.p.YbO#bb1a0bIbKbK#7#xaya3.jaya3#q.Wbn.J.wbD#Lbm.X#Bb4bhat.b#na.a.a.aZaHaHaW#k#a.vagbNaObl#I.vb3#3#w.K#7#v#M#QbIa0#Y#N#N..", -"..#haz.p#V.YbO#Y#Y.N.9#g#7#P.EbUa8#q#D.f.f.fbi#hbB#LaY.n.P#R#e.5.7aLa.a.aZaZa.a.aS#5#p.d#p.t.l.HbYaObo.Y#w.Kb6#.#M.Na0.a#8#NbO..", -"..#h#C.YbO#V#N#Y.8#Q#g#t##ak.j.W.f.Wbn#Gbe#zbnaU.M#Ra6#eaNb4bh.7bLaWa.aZaZaZa.br.H.2ba.H.T#fau.H.H#p.x#3#w.K#tb0#Q#Q.a#8#Nb1bO..", -"..az#j#j.Ab1#N.a.8#Q#.bb##ak.Ebnbn.1.Ua8.zaO#z.xbubqbsbR.saqaN#1bw.7aaaHa.b.a.a4bZ#k#dbgbP.H#IbG#4bY#o#9#w.K#7b0#Q.8.a#8#NbObO..", -"..az#j.Y.YbO#8.a.8#Q#7#t##bd.r#D#D.rbPaV#G#z.x.y#z.p.u#W.6#B#r#eaTaTaLaWaaaI#5#aau#XbraU#8.HbN.T.RbY#0#9#w.Kb6#M#Q#Qa0#Y#Y#N#N..", -"..#h#j.YbOb1bO#Ya0.NbKa5aj.c.f#G#z.1#3.Mbe#zaO.x#pbT#.bmbsbs.F#1#easat.Gbc.hb.b2aragbgbPaC.3#k.v#4babe#9.KbH#7b0#Qak.a.i#N#Y#T..", -"..az.Y#j.Y.Ab1#Y.8.N#gbK.IaX.r.raDaV.Bb0bfbeb3bab3#HazbBaYbsaqbRaf#1.DaB#na2#K#4b3.ybC.Yaf#k#Z.y.d#p#S#3#v#7#M#g.N.N.a#N#Y#NbO..", -"..#h.p#C#jbFbO#8.a.NbK#.#7bk.z.zb3#H#9aKbm#J.y#Hbablb#.e.PaqbmbsaNaN#1aB#2bZ.x.2aub3.AbSbjapbobobo.rbn#9#v#gbK.9bI.a.a#Yb1bObO..", -"..#haz.YbF#VbO#Y.abI#QaK.I.Q.z.WaO#za7b0an.ub#.R.y.R#XbXbEbtbJbR#Bbsb4.D.3.v#p#za3#s.ubJbj#u.WbWb3.Rbe#9#v#v#g.9bI#Yb1b1#b.A#j..", -"..#h#C.p#C.Y#bbO#YbI.9.o.Iab#Zb3.x.da7bK#WbmalbTae.t#F#Gaz.nbsaqbJ.6#R#U#aaMbx#KbPbz#laoanb#ba.2.RbG#G#9#v#v#g.9bI.ab1#bbF#Vaz..", -"..#haz.p.p#V#Vb1#Y.a#6bK#7bk.1#z#Z.y#m#.a1a1bq.LbX#HblbN.3#N.PaobJafbQ.3.tblbx.TazbB.X.kaYb7bG.d.x#ZaV#3bH#v#Q.NbI#8b1b1.A.Y.Y..", -"..az#h#C.p#VbO#b#YbIbK#g#7aQ.d.y.RbX#mbK#y#ybt.#bZ#IaM.l.2bdbmanaobMap.t.2bY.2.ObO.s.X#W.6bX#F.yaOaD#G#9b6#7.I#Q.a.ab1#bbF.Y.Y..", -"..#9#h.p.p#V#Vb1.a.NbK#..IaQ.xbob3aO#m.9#L.ZaY#w#iaJagaGbr#5.8aF.4a#blbN#Z#Z.WaP#l#l.6#WaY#0aO.y.xb3#PaA#7b6bK#QbI#8b1bO.A#V.Y..", -"..#h.p#C#V.YbO#Y.abI.9aK.Ibf#D.1bYbY#mbK#ybt#ybHbSbT#aba.tbx#S.M#B.y#kbxbYbYaP.YbR#A.6bmbt.Lb3#z.W#Dbn#3bK#.#M#Q.N#Yb1b1#V.Yaz..", -"..#h#C.p#V.p#b.A.a#Y#Q#..Ib7#kbe#4#pa7bK#ybH.g.gbHbfbZbN#4bNbgakah#Zbg#F.x.1#9bK.P#A.X.#btbTaO.W.r.ra8.e#Q.o#Q#Q.a.ab1bO.A.Yaz..", -"..#h.p#h#C#VbOb1#YbI.9.o.I.L#H#Z.2.vaA#QbHaK.g.g#y#7#nbr#a.H.vaE.zaU#4blbebCbIaK#Lbm#LbJbtaXaO.z#z#G.EaA#g#Q.9bI.a.a#Nb1#jbO.Y..", -"..#h#C#h#V.p#V.A.a#8.9.9.Iah#4bY#4bGbP#QaKaKaKaK#7#wbEbg.z.zay.E#a#K.2#ZbCbO#v#gbH.Xbb.ubDbk#z.r#c.f.E#9#Q#6bI.i#8b1#YbO.AbO.J..", -"..#h.p#9.p.p#b.A#8#Y.9.9.I.0.R.2bN#XbP.NaK.IaK#v.IbS.KaQaR.Wbl#K.RbY.R.y#9#M#gaKbH.Kbb#yaCbk.r#Ga8#D#TaAbK#6.i.a#Y#bbObO.Y#jaz..", -"..#9#9.p.p.Y#V.Ab1#YbI.9#7a#bn.Hb2#FaP.a.I#g#g#g#v#7bHb0.L.HbY.y.0#ZaObC.8b0#g#6aKbH#wbb#LaX#D#q.Ea3.UaAbK#QbI#Y#Y#bbO.AbO.Y.Y..", -"..#9#h#h#C.p.Y#V#Y#Y#6.obEbk.H.2bUbe#m.a#g#g#Q#M#M#vaK#6bq#k.d.x.y#Z..az#M#v.o#6.o#v#L#tbSbda8bU.Ub5.O#3#6#6bI.ib1#bbF.Y#C.Yaz..", -"..#9#9.p.p.p#Vb1#Y.N#6.o#Q#O.R.xaM.HaPa0bK#Q#Q#M#M#MbK#gb0akb3aO.xbX#9#x#v#g.N#6.9.wbH#yb0bn#D.f#q.j.U#3.N#6#8.i#b#b.Y.p.Y.paz..", -"..#9#h#9.p.p#V#bb1#8bI#g.NbAb.br.t#H#m#Y#Q#g#Q.9.9.N#6.o#gb0avbG#Z...Y.w#g#6bIbIbIbK#v.K#Ma7#s#s....#haA#Q.NbI#Yb1#V#V#V.p.paz..", -"..#9#9#9.p.p#VbO#Y#8#6.i#M.Q#z.H#f#K.B#Y#6.9.N.9bIbI.9.9#M#M#JbybP.B.Nb0.NbIbI#Y.ibI#vbH.wbubW.E.Sa3a7#m.o#Q#Y#Yb1#V#V#C.p.p.e..", -"..#3#9#9#9.Y#V#VbF#Y#8#6ak#O#db2br.HaP#N.N#QbIbI.a#Y.i.8#M#Qa0.L.B.p#Q#Q.i.i.i#Y.ibI#Q#..c.E.ja3a3bWambP.N.9#Y#Y#b#b#V.p.p.p#9..", -"..#3.e#9.p.p.Y.Yb1b1#Y#.#Ubgbl.T#S..aw#obI.a.a#8#Y#Y.a#YbI.Na0.8bO#8a0#Qa0#8b1#Y#Y#8#Q.ibO#Ta9a9bWa3ay#Eb1.a.ab1#V#V.Y.p.p.e#9..", -"..#3#9.p#h#C.p.Y#Vb1#b#V.a.Y.Y.Y#CazbO.eb1#8#Y#b#bb1b1#8bI#Y.8.abIb1#Y.Nb1#Y#Y#Y#b#Y.9.8.8.C.JbO#j.Yaz#C.p.Y#bb1#V.p.p.p#C.e#9..", -"..#9#9#9.p#9.p.Y.Y#V#b#bb1#8.i#8.a.a#Y#Y#Y#Yb1b1#b#bb1#N#Y#8b1#Y#Yb1#8#Yb1#b#b#b#bb1#Y.N.w.8.N.8#Q.8.i.a#b#Y#bbO#V.Y.p#C.p.p#9..", -"..#3#9.e#9.p.p#9#C.Y#V#b#b#b#Y#Y#Y#Y#Y#Yb1b1bO#V.Y#j#Vb1b1bObObObO.Ab1#N.A.AbF#V#V#V#b#8.aa0.a.ibI.8#Y#Yb1#V#V#V#V.p.p#9.p.e#9..", -"..#3#3#9.e.e.p.p.p.p#V.Y#b#b#Vb1#b#Yb1.A#V.Y.Y.Y.Y.Y.A#j.YbO#VbO.Y#jbO#b#j#j#V.Y#V#V#bb1#Y.a#Yb1.a#8b1b1#b.A#V#C.p.p.p.p.e.e#9..", -"..#3aAaA#3#9.e.e#9#C#C.Y.p.Y#V#VbF#VbO.Y#j.p.p.Y#C#j.Y#j.Y#j.Y#j.Y.YbO.Y#j.Y.p.p.p.p.Y#VbOb1#NbObOb1b1.A#V.p.p.p#C.p#9#9#9.e#9..", -"..#3#9.e#3aA#9.e#9.p.p.e.p.p.p#V#j.Y.Y.Y#9.p.p#9.Yaz.Yaz.paz.Y.paz.Y.Y#j#C.p#C.p#C#C.p#V#VbO#VbF#V#j#V#j.p.p.p#C.p#9#C#C#9.e#9..", -"..#3aA#9aA#9aA.e#9.e#9#9.p.p.p.p#Caz.Y#C.p.p#9.p#C#Caz.p#Caz.Y#C.p#9#j.p#h.p#C#C#C.e.p#9.Y#j.Y.Y.p.p.p#C.p.p#9#9#9#9#9.e#9.e#3..", -"..#3.e#3.e#3.e#9#9aA#9.e.e.e.p#C.p#h#Caz#9.p.p.p#h.Y#9.p.p#C.paz.p#h.Yaz#9.p#C.e.e.e.p.p#9.p.paz#C.paz.Y#9.p.e#9.e#9#9#9#9aA#9..", -"......bC..bC..bCbCbCbCbCbCbC..bC....bC..bCbCbCbCbC..bC....bC......bC..bCbCbCbCbCbCbCbCbCbCbC....bC......bCbC..bC..bC..bC........" -}; diff --git a/samples/richedit/Mpch.h b/samples/richedit/Mpch.h deleted file mode 100644 index 863f2eb9b5..0000000000 --- a/samples/richedit/Mpch.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - This is an empty Mpch.h file to allow me to move the - wxl* files between Mahogany and the wxLayout sample - without modifying them. -*/ - -// static int _mpch_dummy = 0; - diff --git a/samples/richedit/README b/samples/richedit/README deleted file mode 100644 index 5539268bc7..0000000000 --- a/samples/richedit/README +++ /dev/null @@ -1,50 +0,0 @@ - -README for wxLayout classes ---------------------------- - -All the source in this directory is copyrighted under the -GPL (GNU GENERAL PUBLIC LICENSE), version 2, -by Karsten Ballueder . - - -This is still work in progress, so if you want to make any significant -changes, please get in touch with me before. - -There are three building blocks for rich text editing: - -wxllist : - -The wxLayoutList layout engine. It is a linked list of wxLayoutObjects -which can arrange and display them on any wxDC. I am trying to keep -this class as simple as possible, to be just the core layout -engine. All "convenience" functions should be defined in classes built -on top of this. -The wxLayoutList is derived from kbList, a double-linked list with an -interface modelled after the STL list. As wxLayoutList depends on the -way kbList treats iterators (i.e. the iterator value after an insert() -or erase() operation), I don't feel like rewriting it for wxList. - -wxlwindow : - -Contains a class wxLayoutWindow, derived from wxScrolledWindow which -can directly be used as a rich-text display or editing window. The -function responsible for keyboard handling is virtual and can be -overloaded for different keybindings. wxLayoutWindow can sent fake -menu-events to the application to react to the user clicking on -objects. - -wxlparser: - -Contains several high level functions operating on -wxLayoutList. Currently implemented is inserting of text (including -linebreaks) and export of objects, text or html. -Planned for the future is an html parser for importing html. - - -wxLayout.cpp is a simple test program. It will export Text and HTML to -stdout and demonstrate some of the features and bugs of wxLayoutList. - -There are still things to do and I'm working on them. :-) - -Karsten Ballueder 29 June 1998 - diff --git a/samples/richedit/TODO b/samples/richedit/TODO deleted file mode 100644 index a38796245b..0000000000 --- a/samples/richedit/TODO +++ /dev/null @@ -1,44 +0,0 @@ - -BUGS -===================================================================== - -- dmalloc shows duplicate deletion after merging two lines and - deleting the second half - -- word wrap for objects with lots of non-space needs to search in positive - direction if begin of first object is reached - -TODO -===================================================================== - - -- typedef wxCoords CoordType ?? - -- merge RecalulateXXX and Layout() into one -- remove UpdateCursorScreenCoords() which is no longer needed - - - UNDO!! - - replacement of llist in window - - selection highlighting is a bit broken -Improve speed! (See layout problem below!) - - - wxlwindow needs to shrink scrollbar range when window contents get removed - - When selecting with the mouse, scroll window if pointer is outside. - - - -- The import of a private data object does not work yet, we need to get - the objects back from the string. -- Changing default settings in Clear() or changing/inserting/deleting - a wxLayoutObject needs to update the m_StyleInfo in all lines, only - then can we start using that one. - -- update rectangle (needs support in wxllist and wxWindows) - --> needs a bit of fixing still - some code bits are commented out in wxlwindow.cpp - offset handling seems a bit dodgy, white shadow to top/left of cursor - - - DragNDrop - - - Update docs, do full rtf/html editing. - - Verify html export. diff --git a/samples/richedit/kbList.cpp b/samples/richedit/kbList.cpp deleted file mode 100644 index a5798fc6cc..0000000000 --- a/samples/richedit/kbList.cpp +++ /dev/null @@ -1,339 +0,0 @@ -/*-*- c++ -*-******************************************************** - * kbList.cc : a double linked list * - * * - * (C) 1998 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ * - * * - * $Log$ - * Revision 1.1 1999/06/07 09:57:12 KB - * Formerly known as wxLayout. - * - * Revision 1.3 1998/11/19 20:34:50 KB - * fixes - * - * Revision 1.8 1998/09/23 08:57:27 KB - * changed deletion behaviour - * - * Revision 1.7 1998/08/16 21:21:29 VZ - * - * 1) fixed config file bug: it was never created (attempt to create ~/.M/config - * always failed, must mkdir("~/.M") first) - * 2) "redesign" of "Folder properties" dialog and bug corrected, small change to - * MInputBox (it was too wide) - * 3) bug in ProvFC when it didn't reckognize the books as being in the correct - * format (=> messages "can't reopen book") corrected - * 4) I tried to enhance MDialog_About(), but it didn't really work... oh well, - * I've never said I was an artist - * - * Revision 1.6 1998/07/08 11:56:56 KB - * M compiles and runs on Solaris 2.5/gcc 2.8/c-client gso - * - * Revision 1.5 1998/06/27 20:07:18 KB - * several bug fixes for kbList - * started adding my layout stuff - * - * Revision 1.1.1.1 1998/06/13 21:51:12 karsten - * initial code - * - * Revision 1.4 1998/05/24 14:48:00 KB - * lots of progress on Python, but cannot call functions yet - * kbList fixes again? - * - * Revision 1.3 1998/05/18 17:48:34 KB - * more list<>->kbList changes, fixes for wxXt, improved makefiles - * - * Revision 1.2 1998/05/14 16:39:31 VZ - * - * fixed SIGSEGV in ~kbList if the list is empty - * - * Revision 1.1 1998/05/13 19:02:11 KB - * added kbList, adapted MimeTypes for it, more python, new icons - * - *******************************************************************/ - -#ifdef __GNUG__ -# pragma implementation "kbList.h" -#endif - -#include "kbList.h" - - -kbListNode::kbListNode( void *ielement, - kbListNode *iprev, - kbListNode *inext) -{ - next = inext; - prev = iprev; - if(prev) - prev->next = this; - if(next) - next->prev = this; - element = ielement; -} - -kbListNode::~kbListNode() -{ - if(prev) - prev->next = next; - if(next) - next->prev = prev; -} - - -kbList::iterator::iterator(kbListNode *n) -{ - node = n; -} - -void * -kbList::iterator::operator*() -{ - return node->element; -} - -kbList::iterator & -kbList::iterator::operator++() -{ - node = node ? node->next : NULL; - return *this; -} - -kbList::iterator & -kbList::iterator::operator--() -{ - node = node ? node->prev : NULL; - return *this; -} -kbList::iterator & -kbList::iterator::operator++(int /* foo */) -{ - return operator++(); -} - -kbList::iterator & -kbList::iterator::operator--(int /* bar */) -{ - return operator--(); -} - - -bool -kbList::iterator::operator !=(kbList::iterator const & i) const -{ - return node != i.node; -} - -bool -kbList::iterator::operator ==(kbList::iterator const & i) const -{ - return node == i.node; -} - -kbList::kbList(bool ownsEntriesFlag) -{ - first = NULL; - last = NULL; - ownsEntries = ownsEntriesFlag; -} - -void -kbList::push_back(void *element) -{ - if(! first) // special case of empty list - { - first = new kbListNode(element); - last = first; - return; - } - else - last = new kbListNode(element, last); -} - -void -kbList::push_front(void *element) -{ - if(! first) // special case of empty list - { - push_back(element); - return; - } - else - first = new kbListNode(element, NULL, first); -} - -void * -kbList::pop_back(void) -{ - iterator i; - void *data; - bool ownsFlagBak = ownsEntries; - i = tail(); - data = *i; - ownsEntries = false; - erase(i); - ownsEntries = ownsFlagBak; - return data; -} - -void * -kbList::pop_front(void) -{ - iterator i; - void *data; - bool ownsFlagBak = ownsEntries; - - i = begin(); - data = *i; - ownsEntries = false; - erase(i); - ownsEntries = ownsFlagBak; - return data; - -} - -void -kbList::insert(kbList::iterator & i, void *element) -{ - if(! i.Node()) - return; - else if(i.Node() == first) - { - push_front(element); - i = first; - return; - } - i = kbList::iterator(new kbListNode(element, i.Node()->prev, i.Node())); -} - -void -kbList::doErase(kbList::iterator & i) -{ - kbListNode - *node = i.Node(), - *prev, *next; - - if(! node) // illegal iterator - return; - - prev = node->prev; - next = node->next; - - // correct first/last: - if(node == first) - first = node->next; - if(node == last) // don't put else here! - last = node->prev; - - // build new links: - if(prev) - prev->next = next; - if(next) - next->prev = prev; - - // delete this node and contents: - // now done separately - //if(ownsEntries) - //delete *i; - delete i.Node(); - - // change the iterator to next element: - i = kbList::iterator(next); -} - -kbList::~kbList() -{ - kbListNode *next; - - while ( first != NULL ) - { - next = first->next; - if(ownsEntries) - delete first->element; - delete first; - first = next; - } -} - -kbList::iterator -kbList::begin(void) const -{ - return kbList::iterator(first); -} - -kbList::iterator -kbList::tail(void) const -{ - return kbList::iterator(last); -} - -kbList::iterator -kbList::end(void) const -{ - return kbList::iterator(NULL); // the one after the last -} - -unsigned -kbList::size(void) const // inefficient -{ - unsigned count = 0; - kbList::iterator i; - for(i = begin(); i != end(); i++, count++) - ; - return count; -} - - - - - - - -#ifdef KBLIST_TEST - -#include - -KBLIST_DEFINE(kbListInt,int); - -int main(void) -{ - int - n, *ptr; - kbListInt - l; - kbListInt::iterator - i; - - for(n = 0; n < 10; n++) - { - ptr = new int; - *ptr = n*n; - l.push_back(ptr); - } - - i = l.begin(); // first element - i++; // 2nd - i++; // 3rd - i++; // 4th, insert here: - ptr = new int; - *ptr = 4444; - l.insert(i,ptr); - - // this cannot work, because l.end() returns NULL: - i = l.end(); // behind last - i--; // still behind last - l.erase(i); // doesn't do anything - - // this works: - i = l.tail(); // last element - i--; - --i; - l.erase(i); // erase 3rd last element (49) - - for(i = l.begin(); i != l.end(); i++) - cout << *i << '\t' << *((int *)*i) << endl; - - - return 0; -} -#endif diff --git a/samples/richedit/kbList.h b/samples/richedit/kbList.h deleted file mode 100644 index 8c52aba56b..0000000000 --- a/samples/richedit/kbList.h +++ /dev/null @@ -1,315 +0,0 @@ -/*-*- c++ -*-******************************************************** - * kbList.h : a double linked list * - * * - * (C) 1998 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - * - *******************************************************************/ - -#ifndef KBLIST_H -# define KBLIST_H - -#ifdef __GNUG__ -# pragma interface "kbList.h" -#endif - -#ifndef NULL -# define NULL 0 -#endif - -/**@name Double linked list implementation. */ -//@{ - -/** kbListNode is a class used by kbList. It represents a single - element in the list. It is not intended for general use outside - kbList functions. -*/ -struct kbListNode -{ - /// pointer to next node or NULL - struct kbListNode *next; - /// pointer to previous node or NULL - struct kbListNode *prev; - /// pointer to the actual data - void *element; - /** Constructor - it automatically links the node into the list, if - the iprev, inext parameters are given. - @param ielement pointer to the data for this node (i.e. the data itself) - @param iprev if not NULL, use this as previous element in list - @param inext if not NULL, use this as next element in list - */ - kbListNode( void *ielement, - kbListNode *iprev = NULL, - kbListNode *inext = NULL); - /// Destructor. - ~kbListNode(); -}; - -/** The main list class, handling void pointers as data. - */ - -class kbList -{ -public: - /// An iterator class for kbList, just like for the STL classes. - class iterator - { - protected: - /// the node to which this iterator points - kbListNode *node; - friend class kbList; - public: - /** Constructor. - @param n if not NULL, the node to which to point - */ - iterator(kbListNode *n = NULL); - /** Dereference operator. - @return the data pointer of the node belonging to this - iterator - */ - void * operator*(); - - /** This operator allows us to write if(i). It is not a - dereference operator and the result is always useless apart - from its logical value! - */ - operator void*() const { return node == NULL ? (void*)0 : (void*)(-1); } - - /** Increment operator - prefix, goes to next node in list. - @return itself - */ - iterator & operator++(); - - /** Decrement operator - prefix, goes to previous node in list. - @return itself - */ - iterator & operator--(); - - /** Increment operator - prefix, goes to next node in list. - @return itself - */ - iterator & operator++(int); //postfix - - /** Decrement operator - prefix, goes to previous node in list. - @return itself - */ - iterator & operator--(int); //postfix - - /** Comparison operator. - @return true if not equal. - */ - bool operator !=(iterator const &) const; - - /* Comparison operator. - @return true if equal - */ - bool operator ==(iterator const &) const; - - /** Returns a pointer to the node associated with this iterator. - This function is not for general use and should be - protected. However, if protected, it cannot be called from - derived classes' iterators. (Is this a bug in gcc/egcs?) - @return the node pointer - */ - inline kbListNode * Node(void) const - { return node; } - }; - - /** Constructor. - @param ownsEntriesFlag if true, the list owns the entries and - will issue a delete on each of them when deleting them. If - false, the entries themselves will not get deleted. Do not use - this with array types! - */ - kbList(bool ownsEntriesFlag = true); - - /** Destructor. - If entries are owned, they will all get deleted from here. - */ - ~kbList(); - - /** Tell list whether it owns objects. If owned, they can be - deleted by list. See the constructor for more details. - @param ownsflag if true, list will own entries - */ - void ownsObjects(bool ownsflag = true) - { ownsEntries = ownsflag; } - - /** Query whether list owns entries. - @return true if list owns entries - */ - bool ownsObjects(void) - { return ownsEntries; } - - /** Add an entry at the end of the list. - @param element pointer to data - */ - void push_back(void *element); - - /** Add an entry at the head of the list. - @param element pointer to data - */ - void push_front(void *element); - - /** Get element from end of the list and delete it. - NOTE: In this case the element's data will not get deleted by - the list. It is the responsibility of the caller to free it. - @return the element data - */ - void *pop_back(void); - - /** Get element from head of the list and delete it. - NOTE: In this case the element's data will not get deleted by - the list. It is the responsibility of the caller to free it. - @return the element data - */ - void *pop_front(void); - - /** Insert an element into the list. - @param i an iterator pointing to the element, before which the new one should be inserted - @param element the element data - */ - void insert(iterator & i, void *element); - - /** Remove an element from the list _without_ deleting the object. - @param i iterator pointing to the element to be deleted - @return the value of the element just removed - */ - void *remove(iterator& i) { void *p = *i; doErase(i); return p; } - - /** Erase an element, move iterator to following element. - @param i iterator pointing to the element to be deleted - */ - void erase(iterator & i) { deleteContent(i); doErase(i); } - - /* Get head of list. - @return iterator pointing to head of list - */ - iterator begin(void) const; - - /* Get end of list. - @return iterator pointing after the end of the list. This is an - invalid iterator which cannot be dereferenced or decremented. It is - only of use in comparisons. NOTE: this is different from STL! - @see tail - */ - iterator end(void) const; - - /* Get last element in list. - @return iterator pointing to the last element in the list. - @see end - */ - iterator tail(void) const; - - /* Get the number of elements in the list. - @return number of elements in the list - */ - unsigned size(void) const; - - /* Query whether list is empty. - @return true if list is empty - */ - inline bool empty(void) const - { return first == NULL ; } - -protected: - /// if true, list owns entries - bool ownsEntries; - /// pointer to first element in list - kbListNode *first; - /// pointer to last element in list - kbListNode *last; -protected: - /** Erase an element, move iterator to following element. - @param i iterator pointing to the element to be deleted - */ - void doErase(iterator & i); - - /** Deletes the actual content if ownsflag is set. - param iterator i - */ - inline void deleteContent(iterator i) - { if(ownsEntries) delete *i; } - - -private: - /// forbid copy construction - kbList(kbList const &foo); - /// forbid assignments - kbList& operator=(const kbList& foo); -}; - -/// just for backward compatibility, will be removed soon -typedef kbList::iterator kbListIterator; -/// cast an iterator to a pointer, compatibility only to be removed -#define kbListICast(type, iterator) ((type *)*iterator) -/// cast an iterator to a const pointer, compatibility only to be removed -#define kbListIcCast(type, iterator) ((type const *)*iterator) - -/** Macro to define a kbList with a given name, having elements of - pointer to the given type. I.e. KBLIST_DEFINE(Int,int) would - create a kbListInt type holding int pointers. -*/ -#define KBLIST_DEFINE(name,type) \ -class name : public kbList \ -{ \ -public: \ - class iterator : public kbList::iterator \ - { \ - protected: \ - inline iterator(kbList::iterator const & i) \ - { node = i.Node(); } \ - friend class name; \ - public: \ - inline iterator(kbListNode *n = NULL) \ - : kbList::iterator(n) {} \ - inline type * operator*() \ - /* the cast is needed for MS VC++ 5.0 */ \ - { return (type *)((kbList::iterator *)this)->operator*() ; } \ - }; \ - inline name(bool ownsEntriesFlag = TRUE) \ - : kbList(ownsEntriesFlag) {} \ - \ - inline type *pop_back(void) \ - { return (type *) kbList::pop_back(); } \ - \ - inline type *pop_front(void) \ - { return (type *) kbList::pop_front(); } \ - \ - type *remove(iterator& i) \ - { return (type *)kbList::remove(i); } \ - inline void erase(iterator & i) \ - { deleteContent(i); doErase(i); } \ - \ - inline iterator begin(void) const \ - { return kbList::begin(); } \ - \ - inline iterator end(void) const \ - { return kbList::end(); } \ - \ - inline iterator tail(void) const \ - { return kbList::tail(); } \ - ~name() \ - { \ - kbListNode *next; \ - while ( first != NULL ) \ - { \ - next = first->next; \ - if(ownsEntries) \ - delete (type *)first->element; \ - delete first; \ - first = next; \ - } \ - } \ -protected: \ - inline void deleteContent(iterator i) \ - { if(ownsEntries) delete *i; } \ -} - -#ifdef MCONFIG_H -/// define the most commonly used list type once: -KBLIST_DEFINE(kbStringList, String); -#endif -//@} -#endif // KBLIST_H diff --git a/samples/richedit/makefile.vc b/samples/richedit/makefile.vc deleted file mode 100644 index 8ec1325c77..0000000000 --- a/samples/richedit/makefile.vc +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=wxLayout -OBJECTS = wxLayout.obj kbList.obj wxllist.obj wxlparser.obj wxlwindow.obj - -!include $(WXDIR)\src\makeprog.vc - diff --git a/samples/richedit/wxLayout.cpp b/samples/richedit/wxLayout.cpp deleted file mode 100644 index 265ead4ebc..0000000000 --- a/samples/richedit/wxLayout.cpp +++ /dev/null @@ -1,501 +0,0 @@ -/* - * Program: wxLayout - * - * Author: Karsten Ballüder - * - * Copyright: (C) 1998, Karsten Ballüder - * - */ - -#ifdef __GNUG__ -#pragma implementation "wxLayout.h" -#endif - -#include "wx/wxprec.h" -#ifdef __BORLANDC__ -# pragma hdrstop -#endif - -#include "wxLayout.h" -#include "wx/textfile.h" - - -#include "Micon.xpm" - - -//----------------------------------------------------------------------------- -// main program -//----------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - - enum ids{ ID_ADD_SAMPLE = 1, ID_CLEAR, ID_PRINT, - ID_PRINT_SETUP, ID_PAGE_SETUP, ID_PREVIEW, ID_PRINT_PS, - ID_PRINT_SETUP_PS, ID_PAGE_SETUP_PS,ID_PREVIEW_PS, - ID_WRAP, ID_NOWRAP, ID_PASTE, ID_COPY, ID_CUT, - ID_PASTE_PRIMARY, - ID_FIND, - ID_WXLAYOUT_DEBUG, ID_QUIT, ID_CLICK, ID_HTML, ID_TEXT, - ID_TEST, ID_LINEBREAKS_TEST, ID_LONG_TEST, ID_URL_TEST }; - - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - - BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU(ID_PRINT, MyFrame::OnPrint) - EVT_MENU(ID_PREVIEW, MyFrame::OnPrintPreview) - EVT_MENU(ID_PRINT_SETUP, MyFrame::OnPrintSetup) - EVT_MENU(ID_PAGE_SETUP, MyFrame::OnPageSetup) - EVT_MENU(ID_PRINT_PS, MyFrame::OnPrintPS) - EVT_MENU(ID_PREVIEW_PS, MyFrame::OnPrintPreviewPS) - EVT_MENU(ID_PRINT_SETUP_PS, MyFrame::OnPrintSetupPS) - EVT_MENU(ID_PAGE_SETUP_PS, MyFrame::OnPageSetupPS) - EVT_MENU (-1, MyFrame::OnCommand) - EVT_COMMAND (-1,-1, MyFrame::OnCommand) - EVT_CHAR ( wxLayoutWindow::OnChar ) - END_EVENT_TABLE() - - -MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, "wxLayout", - wxPoint(880,100), wxSize(256,256) ) -{ - CreateStatusBar( 2 ); - - SetStatusText( "wxLayout by Karsten Ballüder." ); - - wxMenuBar *menu_bar = new wxMenuBar(); - - wxMenu *file_menu = new wxMenu; - file_menu->Append(ID_PRINT, "&Print...", "Print"); - file_menu->Append(ID_PRINT_SETUP, "Print &Setup...","Setup printer properties"); - file_menu->Append(ID_PAGE_SETUP, "Page Set&up...", "Page setup"); - file_menu->Append(ID_PREVIEW, "Print Pre&view", "Preview"); -#ifdef __WXMSW__ - file_menu->AppendSeparator(); - file_menu->Append(ID_PRINT_PS, "Print PostScript...", "Print (PostScript)"); - file_menu->Append(ID_PRINT_SETUP_PS, "Print Setup PostScript...", "Setup printer properties (PostScript)"); - file_menu->Append(ID_PAGE_SETUP_PS, "Page Setup PostScript...", "Page setup (PostScript)"); - file_menu->Append(ID_PREVIEW_PS, "Print Preview PostScript", "Preview (PostScript)"); -#endif - file_menu->AppendSeparator(); - file_menu->Append( ID_TEXT, "Export &Text"); - file_menu->Append( ID_HTML, "Export &HTML"); - file_menu->Append( ID_QUIT, "E&xit"); - menu_bar->Append(file_menu, "&File" ); - - wxMenu *edit_menu = new wxMenu; - edit_menu->Append( ID_CLEAR, "C&lear"); - edit_menu->Append( ID_ADD_SAMPLE, "&Example"); - edit_menu->Append( ID_LONG_TEST, "Add &many lines"); - edit_menu->AppendSeparator(); - edit_menu->Append( ID_LINEBREAKS_TEST, "Add &several lines"); - edit_menu->Append( ID_URL_TEST, "Insert an &URL"); - edit_menu->AppendSeparator(); - edit_menu->Append(ID_WRAP, "&Wrap mode", "Activate wrapping at pixel 200."); - edit_menu->Append(ID_NOWRAP, "&No-wrap mode", "Deactivate wrapping."); - edit_menu->AppendSeparator(); - edit_menu->Append(ID_COPY, "&Copy", "Copy text to clipboard."); - edit_menu->Append(ID_CUT, "Cu&t", "Cut text to clipboard."); -#ifdef __WXGTK__ - edit_menu->Append(ID_PASTE,"&Paste", "Paste text from clipboard."); -#endif - edit_menu->Append(ID_PASTE_PRIMARY,"&Paste primary", "Paste text from primary selection."); - edit_menu->Append(ID_FIND, "&Find", "Find text."); - menu_bar->Append(edit_menu, "&Edit" ); - -#ifndef __WXMSW__ - menu_bar->Show( TRUE ); -#endif // MSW - - SetMenuBar( menu_bar ); - - m_lwin = new wxLayoutWindow(this); - m_lwin->SetStatusBar(GetStatusBar(), 0, 1); - m_lwin->SetMouseTracking(true); - m_lwin->SetEditable(true); - m_lwin->SetWrapMargin(40); - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false); - m_lwin->SetFocus(); - - // create and set the background bitmap (this will result in a lattice) - static const int sizeBmp = 10; - wxBitmap *bitmap = new wxBitmap(sizeBmp, sizeBmp); - wxMemoryDC dcMem; - dcMem.SelectObject( *bitmap ); - dcMem.SetBackground( *wxWHITE_BRUSH ); - dcMem.Clear(); - - dcMem.SetPen( *wxGREEN_PEN ); - dcMem.DrawLine(sizeBmp/2, 0, sizeBmp/2, sizeBmp); - dcMem.DrawLine(0, sizeBmp/2, sizeBmp, sizeBmp/2); - - dcMem.SelectObject( wxNullBitmap ); - - m_lwin->SetBackgroundBitmap(bitmap); -}; - -void -MyFrame::AddSampleText(wxLayoutList *llist) -{ - llist->Clear(wxSWISS,16,wxNORMAL,wxNORMAL, false); - llist->SetFont(-1,-1,-1,-1,-1,"blue"); - llist->Insert("blue"); - llist->SetFont(-1,-1,-1,-1,-1,"black"); - llist->Insert("The quick brown fox jumps over the lazy dog."); - llist->LineBreak(); - - llist->SetFont(wxROMAN,16,wxNORMAL,wxNORMAL, false); - llist->Insert("--"); - llist->LineBreak(); - - llist->SetFont(wxROMAN); - llist->Insert("The quick brown fox jumps over the lazy dog."); - llist->LineBreak(); - llist->Insert("Hello "); - llist->Insert(new wxLayoutObjectIcon(new wxICON(Micon))); - llist->SetFontWeight(wxBOLD); - llist->Insert("World! "); - llist->SetFontWeight(wxNORMAL); - llist->Insert("The quick brown fox jumps..."); - llist->LineBreak(); - llist->Insert("over the lazy dog."); - llist->SetFont(-1,-1,-1,-1,true); - llist->Insert("underlined"); - llist->SetFont(-1,-1,-1,-1,false); - llist->SetFont(wxROMAN); - llist->Insert("This is "); - llist->SetFont(-1,-1,-1,wxBOLD); llist->Insert("BOLD "); llist->SetFont(-1,-1,-1,wxNORMAL); - llist->Insert("and "); - llist->SetFont(-1,-1,wxITALIC); - llist->Insert("italics "); - llist->SetFont(-1,-1,wxNORMAL); - llist->LineBreak(); - llist->Insert("and "); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert("slanted"); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(" text."); - llist->LineBreak(); - llist->Insert("and "); - llist->SetFont(-1,-1,-1,-1,-1,"blue"); - llist->Insert("blue"); - llist->SetFont(-1,-1,-1,-1,-1,"black"); - llist->Insert(" and "); - llist->SetFont(-1,-1,-1,-1,-1,"green","black"); - llist->Insert("green on black"); - llist->SetFont(-1,-1,-1,-1,-1,"black","white"); - llist->Insert(" text."); - llist->LineBreak(); - - llist->SetFont(-1,-1,wxSLANT); - llist->Insert("Slanted"); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(" and normal text and "); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert("slanted"); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(" again."); - llist->LineBreak(); - - // add some more text for testing: - llist->Insert("And here the source for the test program:"); - llist->LineBreak(); - llist->SetFont(wxTELETYPE,16); - llist->Insert("And here the source for the test program:"); - llist->LineBreak(); - llist->Insert("And here the source for the test program:"); - llist->LineBreak(); - llist->Insert("And here the source for the test program:"); - - char buffer[1024]; - FILE *in = fopen("wxLayout.cpp","r"); - if(in) - { - for(;;) - { - fgets(buffer,1024,in); - if(feof(in)) - break; - wxLayoutImportText(llist, buffer); - } - } - - llist->MoveCursorTo(wxPoint(0,0)); - m_lwin->SetDirty(); - m_lwin->Refresh(); -} - -void -MyFrame::Clear(void) -{ - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false); -} - - -void MyFrame::OnCommand( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_QUIT: - Close( TRUE ); - break; - case ID_PRINT: - { - wxPrinter printer; - wxLayoutPrintout printout(m_lwin->GetLayoutList(),_("M: Printout")); - if (! printer.Print(this, &printout, TRUE)) - wxMessageBox( - _("There was a problem with printing the message:\n" - "perhaps your current printer is not set up correctly?"), - _("Printing"), wxOK); - } - break; - case ID_NOWRAP: - case ID_WRAP: - m_lwin->SetWrapMargin(event.GetId() == ID_NOWRAP ? 0 : 40); - break; - case ID_ADD_SAMPLE: - AddSampleText(m_lwin->GetLayoutList()); - break; - case ID_CLEAR: - Clear(); - break; - case ID_CLICK: - cerr << "Received click event." << endl; - break; - case ID_PASTE: - m_lwin->Paste(); - m_lwin->Refresh(FALSE); - break; -#ifdef __WXGTK__ - case ID_PASTE_PRIMARY: - m_lwin->Paste(TRUE); - m_lwin->Refresh(FALSE); - break; -#endif - case ID_COPY: - m_lwin->Copy(); - m_lwin->Refresh(FALSE); - break; - case ID_CUT: - m_lwin->Cut(); - m_lwin->Refresh(FALSE); - break; - case ID_FIND: - m_lwin->Find("void"); - m_lwin->Refresh(FALSE); - break; - case ID_HTML: - { - wxLayoutExportObject *export; - wxLayoutExportStatus status(m_lwin->GetLayoutList()); - - while((export = wxLayoutExport( &status, - WXLO_EXPORT_AS_HTML)) != NULL) - { - if(export->type == WXLO_EXPORT_HTML) - cout << *(export->content.text); - else - cout << " ${OPENWINHOME}/lib - - The call wxExpandPath can convert these back! - */ -wxChar * -wxContractPath (const wxString& filename, const wxString& envname, const wxString& user) -{ - static wxChar dest[_MAXPATHLEN]; - - if (filename == _T("")) - return (wxChar *) NULL; - - wxStrcpy (dest, WXSTRINGCAST filename); -#ifdef __WXMSW__ - Unix2DosFilename(dest); -#endif - - // Handle environment - const wxChar *val = (const wxChar *) NULL; - wxChar *tcp = (wxChar *) NULL; - if (envname != WXSTRINGCAST NULL && (val = wxGetenv (WXSTRINGCAST envname)) != NULL && - (tcp = wxStrstr (dest, val)) != NULL) - { - wxStrcpy (wxBuffer, tcp + wxStrlen (val)); - *tcp++ = _T('$'); - *tcp++ = _T('{'); - wxStrcpy (tcp, WXSTRINGCAST envname); - wxStrcat (tcp, _T("}")); - wxStrcat (tcp, wxBuffer); - } - - // Handle User's home (ignore root homes!) - size_t len = 0; - if ((val = wxGetUserHome (user)) != NULL && - (len = wxStrlen(val)) > 2 && - wxStrncmp(dest, val, len) == 0) - { - wxStrcpy(wxBuffer, _T("~")); - if (user != _T("")) - wxStrcat(wxBuffer, (const wxChar*) user); -#ifdef __WXMSW__ -// strcat(wxBuffer, "\\"); -#else -// strcat(wxBuffer, "/"); -#endif - wxStrcat(wxBuffer, dest + len); - wxStrcpy (dest, wxBuffer); - } - - return dest; -} - -// Return just the filename, not the path -// (basename) -wxChar *wxFileNameFromPath (wxChar *path) -{ - if (path) - { - register wxChar *tcp; - - tcp = path + wxStrlen (path); - while (--tcp >= path) - { - if (*tcp == _T('/') || *tcp == _T('\\') -#ifdef __VMS__ - || *tcp == _T(':') || *tcp == _T(']')) -#else - ) -#endif - return tcp + 1; - } /* while */ -#ifdef __WXMSW__ - if (wxIsalpha (*path) && *(path + 1) == _T(':')) - return path + 2; -#endif - } - return path; -} - -wxString wxFileNameFromPath (const wxString& path1) -{ - if (path1 != _T("")) - { - - wxChar *path = WXSTRINGCAST path1 ; - register wxChar *tcp; - - tcp = path + wxStrlen (path); - while (--tcp >= path) - { - if (*tcp == _T('/') || *tcp == _T('\\') -#ifdef __VMS__ - || *tcp == _T(':') || *tcp == _T(']')) -#else - ) -#endif - return wxString(tcp + 1); - } /* while */ -#ifdef __WXMSW__ - if (wxIsalpha (*path) && *(path + 1) == _T(':')) - return wxString(path + 2); -#endif - } - // Yes, this should return the path, not an empty string, otherwise - // we get "thing.txt" -> "". - return path1; -} - -// Return just the directory, or NULL if no directory -wxChar * -wxPathOnly (wxChar *path) -{ - if (path && *path) - { - static wxChar buf[_MAXPATHLEN]; - - // Local copy - wxStrcpy (buf, path); - - int l = wxStrlen(path); - bool done = FALSE; - - int i = l - 1; - - // Search backward for a backward or forward slash - while (!done && i > -1) - { - // ] is for VMS - if (path[i] == _T('/') || path[i] == _T('\\') || path[i] == _T(']')) - { - done = TRUE; -#ifdef __VMS__ - buf[i+1] = 0; -#else - buf[i] = 0; -#endif - - return buf; - } - else i --; - } - -#ifdef __WXMSW__ - // Try Drive specifier - if (wxIsalpha (buf[0]) && buf[1] == _T(':')) - { - // A:junk --> A:. (since A:.\junk Not A:\junk) - buf[2] = _T('.'); - buf[3] = _T('\0'); - return buf; - } -#endif - } - - return (wxChar *) NULL; -} - -// Return just the directory, or NULL if no directory -wxString wxPathOnly (const wxString& path) -{ - if (path != _T("")) - { - wxChar buf[_MAXPATHLEN]; - - // Local copy - wxStrcpy (buf, WXSTRINGCAST path); - - int l = path.Length(); - bool done = FALSE; - - int i = l - 1; - - // Search backward for a backward or forward slash - while (!done && i > -1) - { - // ] is for VMS - if (path[i] == _T('/') || path[i] == _T('\\') || path[i] == _T(']')) - { - done = TRUE; -#ifdef __VMS__ - buf[i+1] = 0; -#else - buf[i] = 0; -#endif - - return wxString(buf); - } - else i --; - } - -#ifdef __WXMSW__ - // Try Drive specifier - if (wxIsalpha (buf[0]) && buf[1] == _T(':')) - { - // A:junk --> A:. (since A:.\junk Not A:\junk) - buf[2] = _T('.'); - buf[3] = _T('\0'); - return wxString(buf); - } -#endif - } - - return wxString(_T("")); -} - -// Utility for converting delimiters in DOS filenames to UNIX style -// and back again - or we get nasty problems with delimiters. -// Also, convert to lower case, since case is significant in UNIX. - -#ifdef __WXMAC__ -void -wxMac2UnixFilename (wxChar *s) -{ - if (s) - { - memmove( s+1 , s ,(strlen( s ) + 1)*sizeof(wxChar)) ; - if ( *s == _T(':') ) - *s = _T('.') ; - else - *s = _T('/') ; - - while (*s) - { - if (*s == _T(':')) - *s = _T('/'); - else - *s = wxTolower(*s); // Case INDEPENDENT - s++; - } - } -} - -void -wxUnix2MacFilename (wxChar *s) -{ - if (s) - { - if ( *s == _T('.') ) - { - // relative path , since it goes on with slash which is translated to a : - memmove( s , s+1 ,strlen( s )*sizeof(wxChar) ) ; - } - else if ( *s == _T('/') ) - { - // absolute path -> on mac just start with the drive name - memmove( s , s+1 ,strlen( s )*sizeof(wxChar) ) ; - } - else - { - wxASSERT_MSG( 1 , _T("unknown path beginning") ) ; - } - while (*s) - { - if (*s == _T('/') || *s == _T('\\')) - *s = _T(':'); - - s++ ; - } - } -} -#endif -void -wxDos2UnixFilename (wxChar *s) -{ - if (s) - while (*s) - { - if (*s == _T('\\')) - *s = _T('/'); -#ifdef __WXMSW__ - else - *s = wxTolower(*s); // Case INDEPENDENT -#endif - s++; - } -} - -void -#ifdef __WXMSW__ -wxUnix2DosFilename (wxChar *s) -#else -wxUnix2DosFilename (wxChar *WXUNUSED(s)) -#endif -{ -// Yes, I really mean this to happen under DOS only! JACS -#ifdef __WXMSW__ - if (s) - while (*s) - { - if (*s == _T('/')) - *s = _T('\\'); - s++; - } -#endif -} - -// Concatenate two files to form third -bool -wxConcatFiles (const wxString& file1, const wxString& file2, const wxString& file3) -{ - wxChar *outfile = wxGetTempFileName("cat"); - - FILE *fp1 = (FILE *) NULL; - FILE *fp2 = (FILE *) NULL; - FILE *fp3 = (FILE *) NULL; - // Open the inputs and outputs -#ifdef __WXMAC__ - wxStrcpy( gwxMacFileName , file1 ) ; - wxUnix2MacFilename( gwxMacFileName ) ; - wxStrcpy( gwxMacFileName2 , file2) ; - wxUnix2MacFilename( gwxMacFileName2 ) ; - wxStrcpy( gwxMacFileName3 , outfile) ; - wxUnix2MacFilename( gwxMacFileName3 ) ; - - if ((fp1 = fopen (gwxMacFileName, "rb")) == NULL || - (fp2 = fopen (gwxMacFileName2, "rb")) == NULL || - (fp3 = fopen (gwxMacFileName3, "wb")) == NULL) -#else - if ((fp1 = fopen (FNSTRINGCAST file1.fn_str(), "rb")) == NULL || - (fp2 = fopen (FNSTRINGCAST file2.fn_str(), "rb")) == NULL || - (fp3 = fopen (wxFNCONV(outfile), "wb")) == NULL) -#endif - { - if (fp1) - fclose (fp1); - if (fp2) - fclose (fp2); - if (fp3) - fclose (fp3); - return FALSE; - } - - int ch; - while ((ch = getc (fp1)) != EOF) - (void) putc (ch, fp3); - fclose (fp1); - - while ((ch = getc (fp2)) != EOF) - (void) putc (ch, fp3); - fclose (fp2); - - fclose (fp3); - bool result = wxRenameFile(outfile, file3); - delete[] outfile; - return result; -} - -// Copy files -bool -wxCopyFile (const wxString& file1, const wxString& file2) -{ - FILE *fd1; - FILE *fd2; - int ch; - -#ifdef __WXMAC__ - wxStrcpy( gwxMacFileName , file1 ) ; - wxUnix2MacFilename( gwxMacFileName ) ; - wxStrcpy( gwxMacFileName2 , file2) ; - wxUnix2MacFilename( gwxMacFileName2 ) ; - - if ((fd1 = fopen (gwxMacFileName, "rb")) == NULL) - return FALSE; - if ((fd2 = fopen (gwxMacFileName2, "wb")) == NULL) -#else - if ((fd1 = fopen (FNSTRINGCAST file1.fn_str(), "rb")) == NULL) - return FALSE; - if ((fd2 = fopen (FNSTRINGCAST file2.fn_str(), "wb")) == NULL) -#endif - { - fclose (fd1); - return FALSE; - } - - while ((ch = getc (fd1)) != EOF) - (void) putc (ch, fd2); - - fclose (fd1); - fclose (fd2); - return TRUE; -} - -bool -wxRenameFile (const wxString& file1, const wxString& file2) -{ -#ifdef __WXMAC__ - wxStrcpy( gwxMacFileName , file1 ) ; - wxUnix2MacFilename( gwxMacFileName ) ; - wxStrcpy( gwxMacFileName2 , file2) ; - wxUnix2MacFilename( gwxMacFileName2 ) ; - - if (0 == rename (gwxMacFileName, gwxMacFileName2)) - return TRUE; -#else - // Normal system call - if (0 == rename (FNSTRINGCAST file1.fn_str(), FNSTRINGCAST file2.fn_str())) - return TRUE; -#endif - // Try to copy - if (wxCopyFile(file1, file2)) { - wxRemoveFile(file1); - return TRUE; - } - // Give up - return FALSE; -} - -bool wxRemoveFile(const wxString& file) -{ -#if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__WATCOMC__) - int flag = remove(FNSTRINGCAST file.fn_str()); -#elif defined( __WXMAC__ ) - wxStrcpy( gwxMacFileName , file ) ; - wxUnix2MacFilename( gwxMacFileName ) ; - int flag = unlink(gwxMacFileName); -#else - int flag = unlink(FNSTRINGCAST file.fn_str()); -#endif - return (flag == 0) ; -} - -bool wxMkdir(const wxString& dir, int perm) -{ -#if defined( __WXMAC__ ) - wxStrcpy( gwxMacFileName , dir ) ; - wxUnix2MacFilename( gwxMacFileName ) ; - const wxChar *dirname = gwxMacFileName; -#else // !Mac - const wxChar *dirname = dir.c_str(); -#endif // Mac/!Mac - - // assume mkdir() has 2 args on non Windows platforms and on Windows too - // for the GNU compiler -#if !defined(__WXMSW__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) || defined(__WXWINE__) - if ( mkdir(wxFNCONV(dirname), perm) != 0 ) -#else // MSW - if ( mkdir(wxFNCONV(dirname)) != 0 ) -#endif // !MSW/MSW - { - wxLogSysError(_("Directory '%s' couldn't be created"), dirname); - - return FALSE; - } - - return TRUE; -} - -bool wxRmdir(const wxString& dir, int WXUNUSED(flags)) -{ -#ifdef __VMS__ - return FALSE; -#elif defined( __WXMAC__ ) - wxStrcpy( gwxMacFileName , dir ) ; - wxUnix2MacFilename( gwxMacFileName ) ; - return (rmdir(WXSTRINGCAST gwxMacFileName) == 0); -#else - -#ifdef __SALFORDC__ - return FALSE; // What to do? -#else - return (rmdir(FNSTRINGCAST dir.fn_str()) == 0); -#endif - -#endif -} - -#if 0 -bool wxDirExists(const wxString& dir) -{ -#ifdef __VMS__ - return FALSE; -#elif !defined(__WXMSW__) - struct stat sbuf; - return (stat(dir.fn_str(), &sbuf) != -1) && S_ISDIR(sbuf.st_mode) ? TRUE : FALSE; -#else - - /* MATTHEW: [6] Always use same code for Win32, call FindClose */ -#if defined(__WIN32__) - WIN32_FIND_DATA fileInfo; -#else -#ifdef __BORLANDC__ - struct ffblk fileInfo; -#else - struct find_t fileInfo; -#endif -#endif - -#if defined(__WIN32__) - HANDLE h = FindFirstFile((LPTSTR) WXSTRINGCAST dir,(LPWIN32_FIND_DATA)&fileInfo); - - if (h==INVALID_HANDLE_VALUE) - return FALSE; - else { - FindClose(h); - return ((fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY); - } -#else - // In Borland findfirst has a different argument - // ordering from _dos_findfirst. But _dos_findfirst - // _should_ be ok in both MS and Borland... why not? -#ifdef __BORLANDC__ - return ((findfirst(WXSTRINGCAST dir, &fileInfo, _A_SUBDIR) == 0 && (fileInfo.ff_attrib & _A_SUBDIR) != 0)); -#else - return (((_dos_findfirst(WXSTRINGCAST dir, _A_SUBDIR, &fileInfo) == 0) && (fileInfo.attrib & _A_SUBDIR)) != 0); -#endif -#endif - -#endif -} - -#endif - -// does the path exists? (may have or not '/' or '\\' at the end) -bool wxPathExists(const wxChar *pszPathName) -{ - // Windows API returns -1 from stat for "c:\dir\" if "c:\dir" exists - // OTOH, we should change "d:" to "d:\" and leave "\" as is. - wxString strPath(pszPathName); - if ( wxEndsWithPathSeparator(pszPathName) && pszPathName[1] != _T('\0') ) - strPath.Last() = _T('\0'); - -#ifdef __SALFORDC__ - struct _stat st; -#else - struct stat st; -#endif - - return stat(FNSTRINGCAST strPath.fn_str(), &st) == 0 && (st.st_mode & S_IFDIR); -} - -// Get a temporary filename, opening and closing the file. -wxChar *wxGetTempFileName(const wxString& prefix, wxChar *buf) -{ -#ifdef __WINDOWS__ - -#ifndef __WIN32__ - wxChar tmp[144]; - ::GetTempFileName(0, WXSTRINGCAST prefix, 0, tmp); -#else - wxChar tmp[MAX_PATH]; - wxChar tmpPath[MAX_PATH]; - ::GetTempPath(MAX_PATH, tmpPath); - ::GetTempFileName(tmpPath, WXSTRINGCAST prefix, 0, tmp); -#endif - if (buf) wxStrcpy(buf, tmp); - else buf = copystring(tmp); - return buf; - -#else - static short last_temp = 0; // cache last to speed things a bit - // At most 1000 temp files to a process! We use a ring count. - wxChar tmp[100]; // FIXME static buffer - - for (short suffix = last_temp + 1; suffix != last_temp; ++suffix %= 1000) - { - wxSprintf (tmp, _T("/tmp/%s%d.%03x"), WXSTRINGCAST prefix, (int) getpid (), (int) suffix); - if (!wxFileExists( tmp )) - { - // Touch the file to create it (reserve name) - FILE *fd = fopen (wxFNCONV(tmp), "w"); - if (fd) - fclose (fd); - last_temp = suffix; - if (buf) - wxStrcpy( buf, tmp); - else - buf = copystring( tmp ); - return buf; - } - } - wxLogError( _("wxWindows: error finding temporary file name.\n") ); - if (buf) buf[0] = 0; - return (wxChar *) NULL; -#endif -} - -// Get first file name matching given wild card. - -#ifdef __UNIX__ - -// Get first file name matching given wild card. -// Flags are reserved for future use. - -#ifndef __VMS__ - static DIR *gs_dirStream = (DIR *) NULL; - static wxString gs_strFileSpec; - static int gs_findFlags = 0; -#endif - -wxString wxFindFirstFile(const wxChar *spec, int flags) -{ - wxString result; - -#ifndef __VMS__ - if (gs_dirStream) - closedir(gs_dirStream); // edz 941103: better housekeping - - gs_findFlags = flags; - - gs_strFileSpec = spec; - - // Find path only so we can concatenate - // found file onto path - wxString path(wxPathOnly(gs_strFileSpec)); - - // special case: path is really "/" - if ( !path && gs_strFileSpec[0u] == _T('/') ) - path = _T('/'); - // path is empty => Local directory - if ( !path ) - path = _T('.'); - - gs_dirStream = opendir(path.fn_str()); - if ( !gs_dirStream ) - { - wxLogSysError(_("Can not enumerate files in directory '%s'"), - path.c_str()); - } - else - { - result = wxFindNextFile(); - } -#endif // !VMS - - return result; -} - -wxString wxFindNextFile() -{ - wxString result; - -#ifndef __VMS__ - wxCHECK_MSG( gs_dirStream, result, _T("must call wxFindFirstFile first") ); - - // Find path only so we can concatenate - // found file onto path - wxString path(wxPathOnly(gs_strFileSpec)); - wxString name(wxFileNameFromPath(gs_strFileSpec)); - - /* MATTHEW: special case: path is really "/" */ - if ( !path && gs_strFileSpec[0u] == _T('/')) - path = _T('/'); - - // Do the reading - struct dirent *nextDir; - for ( nextDir = readdir(gs_dirStream); - nextDir != NULL; - nextDir = readdir(gs_dirStream) ) - { - if (wxMatchWild(name, nextDir->d_name)) - { - result.Empty(); - if ( !path.IsEmpty() ) - { - result = path; - if ( path != _T('/') ) - result += _T('/'); - } - - result += nextDir->d_name; - - // Only return "." and ".." when they match - bool isdir; - if ( (strcmp(nextDir->d_name, ".") == 0) || - (strcmp(nextDir->d_name, "..") == 0)) - { - if ( (gs_findFlags & wxDIR) != 0 ) - isdir = TRUE; - else - continue; - } - else - isdir = wxDirExists(result); - - // and only return directories when flags & wxDIR - if ( !gs_findFlags || - ((gs_findFlags & wxDIR) && isdir) || - ((gs_findFlags & wxFILE) && !isdir) ) - { - return result; - } - } - } - - result.Empty(); // not found - - closedir(gs_dirStream); - gs_dirStream = (DIR *) NULL; -#endif // !VMS - - return result; -} - -#elif defined(__WXMSW__) - -#ifdef __WIN32__ - static HANDLE gs_hFileStruct = INVALID_HANDLE_VALUE; - static WIN32_FIND_DATA gs_findDataStruct; -#else // Win16 - #ifdef __BORLANDC__ - static struct ffblk gs_findDataStruct; - #else - static struct _find_t gs_findDataStruct; - #endif // Borland -#endif // Win32/16 - -static wxString gs_strFileSpec; -static int gs_findFlags = 0; - -wxString wxFindFirstFile(const wxChar *spec, int flags) -{ - wxString result; - - gs_strFileSpec = spec; - gs_findFlags = flags; /* MATTHEW: [5] Remember flags */ - - // Find path only so we can concatenate found file onto path - wxString path(wxPathOnly(gs_strFileSpec)); - if ( !path.IsEmpty() ) - result << path << _T('\\'); - -#ifdef __WIN32__ - if ( gs_hFileStruct != INVALID_HANDLE_VALUE ) - FindClose(gs_hFileStruct); - - gs_hFileStruct = ::FindFirstFile(WXSTRINGCAST spec, &gs_findDataStruct); - - if ( gs_hFileStruct == INVALID_HANDLE_VALUE ) - { - result.Empty(); - - return result; - } - - bool isdir = !!(gs_findDataStruct.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); - - if (isdir && !(flags & wxDIR)) - return wxFindNextFile(); - else if (!isdir && flags && !(flags & wxFILE)) - return wxFindNextFile(); - - result += gs_findDataStruct.cFileName; - - return result; -#else - int flag = _A_NORMAL; - if (flags & wxDIR) /* MATTHEW: [5] Use & */ - flag = _A_SUBDIR; - -#ifdef __BORLANDC__ - if (findfirst(WXSTRINGCAST spec, &gs_findDataStruct, flag) == 0) -#else - if (_dos_findfirst(WXSTRINGCAST spec, flag, &gs_findDataStruct) == 0) -#endif - { - /* MATTHEW: [5] Check directory flag */ - char attrib; - -#ifdef __BORLANDC__ - attrib = gs_findDataStruct.ff_attrib; -#else - attrib = gs_findDataStruct.attrib; -#endif - - if (attrib & _A_SUBDIR) { - if (!(gs_findFlags & wxDIR)) - return wxFindNextFile(); - } else if (gs_findFlags && !(gs_findFlags & wxFILE)) - return wxFindNextFile(); - - result += -#ifdef __BORLANDC__ - gs_findDataStruct.ff_name -#else - gs_findDataStruct.name -#endif - ; - } -#endif // __WIN32__ - - return result; -} - -wxString wxFindNextFile() -{ - wxString result; - - // Find path only so we can concatenate found file onto path - wxString path(wxPathOnly(gs_strFileSpec)); - -try_again: - -#ifdef __WIN32__ - if (gs_hFileStruct == INVALID_HANDLE_VALUE) - return result; - - bool success = (FindNextFile(gs_hFileStruct, &gs_findDataStruct) != 0); - if (!success) - { - FindClose(gs_hFileStruct); - gs_hFileStruct = INVALID_HANDLE_VALUE; - } - else - { - bool isdir = !!(gs_findDataStruct.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); - - if (isdir && !(gs_findFlags & wxDIR)) - goto try_again; - else if (!isdir && gs_findFlags && !(gs_findFlags & wxFILE)) - goto try_again; - - if ( !path.IsEmpty() ) - result << path << _T('\\'); - result << gs_findDataStruct.cFileName; - } - - return result; -#else // Win16 - -#ifdef __BORLANDC__ - if (findnext(&gs_findDataStruct) == 0) -#else - if (_dos_findnext(&gs_findDataStruct) == 0) -#endif - { - /* MATTHEW: [5] Check directory flag */ - char attrib; - -#ifdef __BORLANDC__ - attrib = gs_findDataStruct.ff_attrib; -#else - attrib = gs_findDataStruct.attrib; -#endif - - if (attrib & _A_SUBDIR) { - if (!(gs_findFlags & wxDIR)) - goto try_again; - } else if (gs_findFlags && !(gs_findFlags & wxFILE)) - goto try_again; - - - result += -#ifdef __BORLANDC__ - gs_findDataStruct.ff_name -#else - gs_findDataStruct.name -#endif - ; - } -#endif // Win32/16 - - return result; -} - -#endif // Unix/Windows - -// Get current working directory. -// If buf is NULL, allocates space using new, else -// copies into buf. -wxChar *wxGetWorkingDirectory(wxChar *buf, int sz) -{ - if (!buf) - buf = new wxChar[sz+1]; -#if wxUSE_UNICODE - char *cbuf = new char[sz+1]; -#ifdef _MSC_VER - if (_getcwd(cbuf, sz) == NULL) { -#else - if (getcwd(cbuf, sz) == NULL) { -#endif - delete [] cbuf; -#else -#ifdef _MSC_VER - if (_getcwd(buf, sz) == NULL) { -#else - if (getcwd(buf, sz) == NULL) { -#endif -#endif - buf[0] = _T('.'); - buf[1] = _T('\0'); - } -#if wxUSE_UNICODE - else { - wxConv_file.MB2WC(buf, cbuf, sz); - delete [] cbuf; - } -#endif - return buf; -} - -wxString wxGetCwd() -{ - static const size_t maxPathLen = 1024; - - wxString str; - wxGetWorkingDirectory(str.GetWriteBuf(maxPathLen), maxPathLen); - str.UngetWriteBuf(); - - return str; -} - -bool wxSetWorkingDirectory(const wxString& d) -{ -#if defined( __UNIX__ ) || defined( __WXMAC__ ) - return (chdir(d.fn_str()) == 0); -#elif defined(__WINDOWS__) - -#ifdef __WIN32__ - return (bool)(SetCurrentDirectory(d) != 0); -#else - // Must change drive, too. - bool isDriveSpec = ((strlen(d) > 1) && (d[1] == ':')); - if (isDriveSpec) - { - wxChar firstChar = d[0]; - - // To upper case - if (firstChar > 90) - firstChar = firstChar - 32; - - // To a drive number - unsigned int driveNo = firstChar - 64; - if (driveNo > 0) - { - unsigned int noDrives; - _dos_setdrive(driveNo, &noDrives); - } - } - bool success = (chdir(WXSTRINGCAST d) == 0); - - return success; -#endif - -#endif -} - -// Get the OS directory if appropriate (such as the Windows directory). -// On non-Windows platform, probably just return the empty string. -wxString wxGetOSDirectory() -{ -#ifdef __WINDOWS__ - wxChar buf[256]; - GetWindowsDirectory(buf, 256); - return wxString(buf); -#else - return wxEmptyString; -#endif -} - -bool wxEndsWithPathSeparator(const wxChar *pszFileName) -{ - size_t len = wxStrlen(pszFileName); - if ( len == 0 ) - return FALSE; - else - return wxIsPathSeparator(pszFileName[len - 1]); -} - -// find a file in a list of directories, returns false if not found -bool wxFindFileInPath(wxString *pStr, const wxChar *pszPath, const wxChar *pszFile) -{ - // we assume that it's not empty - wxCHECK_MSG( !wxIsEmpty(pszFile), FALSE, - _("empty file name in wxFindFileInPath")); - - // skip path separator in the beginning of the file name if present - if ( wxIsPathSeparator(*pszFile) ) - pszFile++; - - // copy the path (strtok will modify it) - wxChar *szPath = new wxChar[wxStrlen(pszPath) + 1]; - wxStrcpy(szPath, pszPath); - - wxString strFile; - wxChar *pc, *save_ptr; - for ( pc = wxStrtok(szPath, wxPATH_SEP, &save_ptr); - pc != NULL; - pc = wxStrtok((wxChar *) NULL, wxPATH_SEP, &save_ptr) ) - { - // search for the file in this directory - strFile = pc; - if ( !wxEndsWithPathSeparator(pc) ) - strFile += wxFILE_SEP_PATH; - strFile += pszFile; - - if ( FileExists(strFile) ) { - *pStr = strFile; - break; - } - } - - delete [] szPath; - - return pc != NULL; // if true => we breaked from the loop -} - -void WXDLLEXPORT wxSplitPath(const wxChar *pszFileName, - wxString *pstrPath, - wxString *pstrName, - wxString *pstrExt) -{ - // it can be empty, but it shouldn't be NULL - wxCHECK_RET( pszFileName, _T("NULL file name in wxSplitPath") ); - - const wxChar *pDot = wxStrrchr(pszFileName, wxFILE_SEP_EXT); - -#ifdef __WXMSW__ - // under Windows we understand both separators - const wxChar *pSepUnix = wxStrrchr(pszFileName, wxFILE_SEP_PATH_UNIX); - const wxChar *pSepDos = wxStrrchr(pszFileName, wxFILE_SEP_PATH_DOS); - const wxChar *pLastSeparator = pSepUnix > pSepDos ? pSepUnix : pSepDos; -#else // assume Unix - const wxChar *pLastSeparator = wxStrrchr(pszFileName, wxFILE_SEP_PATH_UNIX); - - if ( pDot == pszFileName ) - { - // under Unix files like .profile are treated in a special way - pDot = NULL; - } -#endif // MSW/Unix - - if ( pDot < pLastSeparator ) - { - // the dot is part of the path, not the start of the extension - pDot = NULL; - } - - if ( pstrPath ) - { - if ( pLastSeparator ) - *pstrPath = wxString(pszFileName, pLastSeparator - pszFileName); - else - pstrPath->Empty(); - } - - if ( pstrName ) - { - const wxChar *start = pLastSeparator ? pLastSeparator + 1 : pszFileName; - const wxChar *end = pDot ? pDot : pszFileName + wxStrlen(pszFileName); - - *pstrName = wxString(start, end - start); - } - - if ( pstrExt ) - { - if ( pDot ) - *pstrExt = wxString(pDot + 1); - else - pstrExt->Empty(); - } -} - -//------------------------------------------------------------------------ -// wild character routines -//------------------------------------------------------------------------ - -bool wxIsWild( const wxString& pattern ) -{ - wxString tmp = pattern; - wxChar *pat = WXSTRINGCAST(tmp); - while (*pat) { - switch (*pat++) { - case _T('?'): case _T('*'): case _T('['): case _T('{'): - return TRUE; - case _T('\\'): - if (!*pat++) - return FALSE; - } - } - return FALSE; -}; - -bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special ) - -#if defined(HAVE_FNMATCH_H) -{ -// this probably won't work well for multibyte chars in Unicode mode? - if(dot_special) - return fnmatch(pat.fn_str(), text.fn_str(), FNM_PERIOD) == 0; - else - return fnmatch(pat.fn_str(), text.fn_str(), 0) == 0; -} -#else - -// #pragma error Broken implementation of wxMatchWild() -- needs fixing! - - /* - * WARNING: this code is broken! - */ -{ - wxString tmp1 = pat; - wxChar *pattern = WXSTRINGCAST(tmp1); - wxString tmp2 = text; - wxChar *str = WXSTRINGCAST(tmp2); - wxChar c; - wxChar *cp; - bool done = FALSE, ret_code, ok; - // Below is for vi fans - const wxChar OB = _T('{'), CB = _T('}'); - - // dot_special means '.' only matches '.' - if (dot_special && *str == _T('.') && *pattern != *str) - return FALSE; - - while ((*pattern != _T('\0')) && (!done) - && (((*str==_T('\0'))&&((*pattern==OB)||(*pattern==_T('*'))))||(*str!=_T('\0')))) { - switch (*pattern) { - case _T('\\'): - pattern++; - if (*pattern != _T('\0')) - pattern++; - break; - case _T('*'): - pattern++; - ret_code = FALSE; - while ((*str!=_T('\0')) - && (!(ret_code=wxMatchWild(pattern, str++, FALSE)))) - /*loop*/; - if (ret_code) { - while (*str != _T('\0')) - str++; - while (*pattern != _T('\0')) - pattern++; - } - break; - case _T('['): - pattern++; - repeat: - if ((*pattern == _T('\0')) || (*pattern == _T(']'))) { - done = TRUE; - break; - } - if (*pattern == _T('\\')) { - pattern++; - if (*pattern == _T('\0')) { - done = TRUE; - break; - } - } - if (*(pattern + 1) == _T('-')) { - c = *pattern; - pattern += 2; - if (*pattern == _T(']')) { - done = TRUE; - break; - } - if (*pattern == _T('\\')) { - pattern++; - if (*pattern == _T('\0')) { - done = TRUE; - break; - } - } - if ((*str < c) || (*str > *pattern)) { - pattern++; - goto repeat; - } - } else if (*pattern != *str) { - pattern++; - goto repeat; - } - pattern++; - while ((*pattern != _T(']')) && (*pattern != _T('\0'))) { - if ((*pattern == _T('\\')) && (*(pattern + 1) != _T('\0'))) - pattern++; - pattern++; - } - if (*pattern != _T('\0')) { - pattern++, str++; - } - break; - case _T('?'): - pattern++; - str++; - break; - case OB: - pattern++; - while ((*pattern != CB) && (*pattern != _T('\0'))) { - cp = str; - ok = TRUE; - while (ok && (*cp != _T('\0')) && (*pattern != _T('\0')) - && (*pattern != _T(',')) && (*pattern != CB)) { - if (*pattern == _T('\\')) - pattern++; - ok = (*pattern++ == *cp++); - } - if (*pattern == _T('\0')) { - ok = FALSE; - done = TRUE; - break; - } else if (ok) { - str = cp; - while ((*pattern != CB) && (*pattern != _T('\0'))) { - if (*++pattern == _T('\\')) { - if (*++pattern == CB) - pattern++; - } - } - } else { - while (*pattern!=CB && *pattern!=_T(',') && *pattern!=_T('\0')) { - if (*++pattern == _T('\\')) { - if (*++pattern == CB || *pattern == _T(',')) - pattern++; - } - } - } - if (*pattern != _T('\0')) - pattern++; - } - break; - default: - if (*str == *pattern) { - str++, pattern++; - } else { - done = TRUE; - } - } - } - while (*pattern == _T('*')) - pattern++; - return ((*str == _T('\0')) && (*pattern == _T('\0'))); -}; - -#endif - -#ifdef __VISUALC__ - #pragma warning(default:4706) // assignment within conditional expression -#endif // VC++ diff --git a/src/common/framecmn.cpp b/src/common/framecmn.cpp deleted file mode 100644 index 591382e187..0000000000 --- a/src/common/framecmn.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: framecmn.cpp -// Purpose: common (for all platforms) wxFrame functions -// Author: Julian Smart, Vadim Zeitlin -// Created: 01/02/97 -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/frame.h" -#include "wx/menu.h" -#include "wx/menuitem.h" - -#ifndef __WXGTK__ -void wxFrame::OnIdle(wxIdleEvent& WXUNUSED(event) ) -{ - DoMenuUpdates(); -} -#endif - -// update all menus -void wxFrame::DoMenuUpdates() -{ - wxMenuBar* bar = GetMenuBar(); - - if ( bar != NULL ) { - int nCount = bar->GetMenuCount(); - for (int n = 0; n < nCount; n++) - DoMenuUpdates(bar->GetMenu(n), (wxWindow*) NULL); - } -} - -// update a menu and all submenus recursively -void wxFrame::DoMenuUpdates(wxMenu* menu, wxWindow* WXUNUSED(focusWin)) -{ - wxEvtHandler* evtHandler = GetEventHandler(); - wxNode* node = menu->GetItems().First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if ( !item->IsSeparator() ) - { - wxWindowID id = item->GetId(); - wxUpdateUIEvent event(id); - event.SetEventObject( this ); - - if (evtHandler->ProcessEvent(event)) - { - if (event.GetSetText()) - menu->SetLabel(id, event.GetText()); - if (event.GetSetChecked()) - menu->Check(id, event.GetChecked()); - if (event.GetSetEnabled()) - menu->Enable(id, event.GetEnabled()); - } - - if (item->GetSubMenu()) - DoMenuUpdates(item->GetSubMenu(), (wxWindow*) NULL); - } - node = node->Next(); - } -} diff --git a/src/common/ftp.cpp b/src/common/ftp.cpp deleted file mode 100644 index 090138b5d7..0000000000 --- a/src/common/ftp.cpp +++ /dev/null @@ -1,408 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ftp.cpp -// Purpose: FTP protocol -// Author: Guilhem Lavaux -// Modified by: -// Created: 07/07/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "ftp.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef __MWERKS__ -#include -#endif -#if defined(__WXMAC__) -#include "/wx/mac/macsock.h" -#endif - -#include -#include "wx/string.h" -#include "wx/utils.h" -// #include "wx/data.h" -#define WXSOCK_INTERNAL -#include "wx/sckaddr.h" -#undef WXSOCK_INTERNAL -#include "wx/socket.h" -#include "wx/url.h" -#include "wx/sckstrm.h" -#include "wx/protocol/protocol.h" -#include "wx/protocol/ftp.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#define FTP_BSIZE 1024 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFTP, wxProtocol) -IMPLEMENT_PROTOCOL(wxFTP, _T("ftp"), _T("ftp"), TRUE) -#endif - -//////////////////////////////////////////////////////////////// -////// wxFTP constructor and destructor //////////////////////// -//////////////////////////////////////////////////////////////// - -wxFTP::wxFTP() - : wxProtocol() -{ - m_lastError = wxPROTO_NOERR; - m_streaming = FALSE; - - m_user = _T("anonymous"); - m_passwd = wxGetUserId(); - m_passwd += '@'; - m_passwd += wxGetHostName(); - - SetNotify(0); -} - -wxFTP::~wxFTP() -{ - SendCommand("QUIT", '2'); -} - -//////////////////////////////////////////////////////////////// -////// wxFTP connect and login methods ///////////////////////// -//////////////////////////////////////////////////////////////// -bool wxFTP::Connect(wxSockAddress& addr, bool WXUNUSED(wait)) -{ - if (!m_handler) { - m_lastError = wxPROTO_NOHNDLR; - return FALSE; - } - - if (!wxProtocol::Connect(addr)) { - m_lastError = wxPROTO_NETERR; - return FALSE; - } - - if (!m_user || !m_passwd) { - m_lastError = wxPROTO_CONNERR; - return FALSE; - } - - wxString command; - - if (!GetResult('2')) { - Close(); - return FALSE; - } - - command.sprintf(_T("USER %s"), (const wxChar *)m_user); - if (!SendCommand(command, '3')) { - Close(); - return FALSE; - } - - command.sprintf(_T("PASS %s"), (const wxChar *)m_passwd); - if (!SendCommand(command, '2')) { - Close(); - return FALSE; - } - - return TRUE; -} - -bool wxFTP::Connect(const wxString& host) -{ - wxIPV4address addr; - wxString my_host = host; - - addr.Hostname(my_host); - addr.Service(_T("ftp")); - - return Connect(addr); -} - -bool wxFTP::Close() -{ - if (m_streaming) { - m_lastError = wxPROTO_STREAMING; - return FALSE; - } - if (m_connected) - SendCommand(wxString(_T("QUIT")), '2'); - return wxSocketClient::Close(); -} - -//////////////////////////////////////////////////////////////// -////// wxFTP low-level methods ///////////////////////////////// -//////////////////////////////////////////////////////////////// -bool wxFTP::SendCommand(const wxString& command, char exp_ret) -{ - wxString tmp_str; - - if (m_streaming) { - m_lastError = wxPROTO_STREAMING; - return FALSE; - } - tmp_str = command + _T("\r\n"); - const wxWX2MBbuf tmp_buf = tmp_str.mb_str(); - if (Write(MBSTRINGCAST tmp_buf, strlen(tmp_buf)).Error()) { - m_lastError = wxPROTO_NETERR; - return FALSE; - } - return GetResult(exp_ret); -} - -bool wxFTP::GetResult(char exp) -{ - if ((m_lastError = GetLine(this, m_lastResult))) - return FALSE; - if (m_lastResult.GetChar(0) != exp) { - m_lastError = wxPROTO_PROTERR; - return FALSE; - } - - if (m_lastResult.GetChar(3) == '-') { - wxString key = m_lastResult.Left((size_t)3); - - key += _T(' '); - - while (m_lastResult.Index(key) != 0) { - if ((m_lastError = GetLine(this, m_lastResult))) - return FALSE; - } - } - return TRUE; -} - -//////////////////////////////////////////////////////////////// -////// wxFTP low-level methods ///////////////////////////////// -//////////////////////////////////////////////////////////////// -bool wxFTP::ChDir(const wxString& dir) -{ - wxString str = dir; - - str.Prepend(_T("CWD ")); - return SendCommand(str, '2'); -} - -bool wxFTP::MkDir(const wxString& dir) -{ - wxString str = dir; - str.Prepend(_T("MKD ")); - return SendCommand(str, '2'); -} - -bool wxFTP::RmDir(const wxString& dir) -{ - wxString str = dir; - - str.Prepend(_T("PWD ")); - return SendCommand(str, '2'); -} - -wxString wxFTP::Pwd() -{ - int beg, end; - - if (!SendCommand(_T("PWD"), '2')) - return wxString((char *)NULL); - - beg = m_lastResult.Find(_T('\"'),FALSE); - end = m_lastResult.Find(_T('\"'),TRUE); - - return wxString(beg+1, end); -} - -bool wxFTP::Rename(const wxString& src, const wxString& dst) -{ - wxString str; - - str = _T("RNFR ") + src; - if (!SendCommand(str, '3')) - return FALSE; - - str = _T("RNTO ") + dst; - return SendCommand(str, '2'); -} - -bool wxFTP::RmFile(const wxString& path) -{ - wxString str; - - str = _T("DELE "); - str += path; - return SendCommand(str, '2'); -} - -//////////////////////////////////////////////////////////////// -////// wxFTP download*upload /////////////////////////////////// -//////////////////////////////////////////////////////////////// - -class wxInputFTPStream : public wxSocketInputStream { -public: - wxFTP *m_ftp; - size_t m_ftpsize; - - wxInputFTPStream(wxFTP *ftp_clt, wxSocketBase *sock) - : wxSocketInputStream(*sock), m_ftp(ftp_clt) {} - size_t StreamSize() const { return m_ftpsize; } - virtual ~wxInputFTPStream(void) - { - if (LastError() != wxStream_NOERROR) - m_ftp->GetResult('2'); - else - m_ftp->Abort(); - delete m_i_socket; - } -}; - -class wxOutputFTPStream : public wxSocketOutputStream { -public: - wxFTP *m_ftp; - - wxOutputFTPStream(wxFTP *ftp_clt, wxSocketBase *sock) - : wxSocketOutputStream(*sock), m_ftp(ftp_clt) {} - virtual ~wxOutputFTPStream(void) - { - if (LastError() != wxStream_NOERROR) - m_ftp->GetResult('2'); - else - m_ftp->Abort(); - delete m_o_socket; - } -}; - -wxSocketClient *wxFTP::GetPort() -{ - wxIPV4address addr; - wxSocketClient *client; - struct sockaddr sin; - int a[6]; - wxString straddr; - int addr_pos; - - if (!SendCommand(_T("PASV"), '2')) - return NULL; - - sin.sa_family = AF_INET; - addr_pos = m_lastResult.Find(_T('(')); - if (addr_pos == -1) { - m_lastError = wxPROTO_PROTERR; - return NULL; - } - straddr = m_lastResult(addr_pos+1, m_lastResult.Length()); - wxSscanf((const wxChar *)straddr,_T("%d,%d,%d,%d,%d,%d"),&a[2],&a[3],&a[4],&a[5],&a[0],&a[1]); - sin.sa_data[2] = (char)a[2]; - sin.sa_data[3] = (char)a[3]; - sin.sa_data[4] = (char)a[4]; - sin.sa_data[5] = (char)a[5]; - sin.sa_data[0] = (char)a[0]; - sin.sa_data[1] = (char)a[1]; - - addr.Disassemble(&sin, sizeof(sin)); - - client = m_handler->CreateClient(); - if (!client->Connect(addr)) { - delete client; - return NULL; - } - client->Notify(FALSE); - - return client; -} - -bool wxFTP::Abort(void) -{ - m_streaming = FALSE; - if (!SendCommand(_T("ABOR"), '4')) - return FALSE; - return GetResult('2'); -} - -wxInputStream *wxFTP::GetInputStream(const wxString& path) -{ - wxString tmp_str; - int pos_size; - wxInputFTPStream *in_stream; - - if (!SendCommand(_T("TYPE I"), '2')) - return NULL; - - wxSocketClient *sock = GetPort(); - - if (!sock) { - m_lastError = wxPROTO_NETERR; - return NULL; - } - - tmp_str = _T("RETR ") + path; - if (!SendCommand(tmp_str, '1')) - return NULL; - - in_stream = new wxInputFTPStream(this, sock); - - pos_size = m_lastResult.Index(_T('(')); - if (pos_size != wxNOT_FOUND) { - wxString str_size = m_lastResult(pos_size+1, m_lastResult.Index(_T(')'))-1); - - in_stream->m_ftpsize = wxAtoi(WXSTRINGCAST str_size); - } - sock->SetFlags(WAITALL); - - return in_stream; -} - -wxOutputStream *wxFTP::GetOutputStream(const wxString& path) -{ - wxString tmp_str; - - if (!SendCommand(_T("TYPE I"), '2')) - return NULL; - - wxSocketClient *sock = GetPort(); - - tmp_str = _T("STOR ") + path; - if (!SendCommand(tmp_str, '1')) - return FALSE; - - return new wxOutputFTPStream(this, sock); -} - -wxList *wxFTP::GetList(const wxString& wildcard) -{ - wxList *file_list = new wxList; - wxSocketBase *sock = GetPort(); - wxString tmp_str = _T("NLST"); - - if (!wildcard.IsNull()) - tmp_str += wildcard; - - if (!SendCommand(tmp_str, '1')) { - delete sock; - delete file_list; - return NULL; - } - - while (GetLine(sock, tmp_str) == wxPROTO_NOERR) { - file_list->Append((wxObject *)(new wxString(tmp_str))); - } - - if (!GetResult('2')) { - delete sock; - file_list->DeleteContents(TRUE); - delete file_list; - return NULL; - } - - return file_list; -} -#endif - // wxUSE_SOCKETS diff --git a/src/common/gdicmn.cpp b/src/common/gdicmn.cpp deleted file mode 100644 index 53a1a34117..0000000000 --- a/src/common/gdicmn.cpp +++ /dev/null @@ -1,654 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdicmn.cpp -// Purpose: Common GDI classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdicmn.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/event.h" -#include "wx/gdicmn.h" -#include "wx/brush.h" -#include "wx/pen.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/cursor.h" -#include "wx/font.h" -#include "wx/palette.h" -#include "wx/app.h" -#include "wx/dc.h" -#include "wx/utils.h" - -#include "wx/log.h" -#include - -#ifdef __WXMSW__ -#include -#endif - -#ifdef __WXMOTIF__ -#include -#endif - -#if !USE_SHARED_LIBRARY - IMPLEMENT_CLASS(wxColourDatabase, wxList) - IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList) - IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList) - IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList) - IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList) - IMPLEMENT_DYNAMIC_CLASS(wxResourceCache, wxList) - - IMPLEMENT_ABSTRACT_CLASS(wxDCBase, wxObject) -#endif - -wxRect::wxRect(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - x = topLeft.x; - y = topLeft.y; - width = bottomRight.x - topLeft.x; - height = bottomRight.y - topLeft.y; - - if (width < 0) - { - width = -width; - x -= width; - } - - if (height < 0) - { - height = -height; - y -= height; - } -} - -wxRect::wxRect(const wxPoint& point, const wxSize& size) -{ - x = point.x; y = point.y; - width = size.x; height = size.y; -} - -bool wxRect::operator==(const wxRect& rect) const -{ - return ((x == rect.x) && - (y == rect.y) && - (width == rect.width) && - (height == rect.height)); -} - -const wxRect& wxRect::operator += (const wxRect& rect) -{ - *this = (*this + rect); - return ( *this ) ; -} - -wxRect wxRect::operator + (const wxRect& rect) const -{ - int x1 = wxMin(this->x, rect.x); - int y1 = wxMin(this->y, rect.y); - int y2 = wxMax(y+height, rect.height+rect.y); - int x2 = wxMax(x+width, rect.width+rect.x); - return wxRect(x1, y1, x2-x1, y2-y1); -} - -bool wxRect::Inside(int cx, int cy) const -{ - return ( (cx >= x) && (cy >= y) - && ((cy - y) < height) - && ((cx - x) < width) - ); -} - -wxColourDatabase::wxColourDatabase (int type) : wxList (type) -{ -} - -wxColourDatabase::~wxColourDatabase () -{ - // Cleanup Colour allocated in Initialize() - wxNode *node = First (); - while (node) - { - wxColour *col = (wxColour *) node->Data (); - wxNode *next = node->Next (); - delete col; - node = next; - } -} - -// Colour database stuff -void wxColourDatabase::Initialize () -{ - // Don't initialize for X: colours are found - // in FindColour below. - // Added: Not all - - struct cdef { - wxChar *name; - int r,g,b; - }; - cdef cc; - static cdef table[]={ - -// #ifdef __WXMSW__ - {_T("AQUAMARINE"),112, 219, 147}, - {_T("BLACK"),0, 0, 0}, - {_T("BLUE"), 0, 0, 255}, - {_T("BLUE VIOLET"), 159, 95, 159}, - {_T("BROWN"), 165, 42, 42}, - {_T("CADET BLUE"), 95, 159, 159}, - {_T("CORAL"), 255, 127, 0}, - {_T("CORNFLOWER BLUE"), 66, 66, 111}, - {_T("CYAN"), 0, 255, 255}, - {_T("DARK GREY"), 47, 47, 47}, // ? - - {_T("DARK GREEN"), 47, 79, 47}, - {_T("DARK OLIVE GREEN"), 79, 79, 47}, - {_T("DARK ORCHID"), 153, 50, 204}, - {_T("DARK SLATE BLUE"), 107, 35, 142}, - {_T("DARK SLATE GREY"), 47, 79, 79}, - {_T("DARK TURQUOISE"), 112, 147, 219}, - {_T("DIM GREY"), 84, 84, 84}, - {_T("FIREBRICK"), 142, 35, 35}, - {_T("FOREST GREEN"), 35, 142, 35}, - {_T("GOLD"), 204, 127, 50}, - {_T("GOLDENROD"), 219, 219, 112}, - {_T("GREY"), 128, 128, 128}, - {_T("GREEN"), 0, 255, 0}, - {_T("GREEN YELLOW"), 147, 219, 112}, - {_T("INDIAN RED"), 79, 47, 47}, - {_T("KHAKI"), 159, 159, 95}, - {_T("LIGHT BLUE"), 191, 216, 216}, - {_T("LIGHT GREY"), 192, 192, 192}, - {_T("LIGHT STEEL BLUE"), 143, 143, 188}, - {_T("LIME GREEN"), 50, 204, 50}, - {_T("LIGHT MAGENTA"), 255, 0, 255}, - {_T("MAGENTA"), 255, 0, 255}, - {_T("MAROON"), 142, 35, 107}, - {_T("MEDIUM AQUAMARINE"), 50, 204, 153}, - {_T("MEDIUM GREY"), 100, 100, 100}, - {_T("MEDIUM BLUE"), 50, 50, 204}, - {_T("MEDIUM FOREST GREEN"), 107, 142, 35}, - {_T("MEDIUM GOLDENROD"), 234, 234, 173}, - {_T("MEDIUM ORCHID"), 147, 112, 219}, - {_T("MEDIUM SEA GREEN"), 66, 111, 66}, - {_T("MEDIUM SLATE BLUE"), 127, 0, 255}, - {_T("MEDIUM SPRING GREEN"), 127, 255, 0}, - {_T("MEDIUM TURQUOISE"), 112, 219, 219}, - {_T("MEDIUM VIOLET RED"), 219, 112, 147}, - {_T("MIDNIGHT BLUE"), 47, 47, 79}, - {_T("NAVY"), 35, 35, 142}, - {_T("ORANGE"), 204, 50, 50}, - {_T("ORANGE RED"), 255, 0, 127}, - {_T("ORCHID"), 219, 112, 219}, - {_T("PALE GREEN"), 143, 188, 143}, - {_T("PINK"), 188, 143, 234}, - {_T("PLUM"), 234, 173, 234}, - {_T("PURPLE"), 176, 0, 255}, - {_T("RED"), 255, 0, 0}, - {_T("SALMON"), 111, 66, 66}, - {_T("SEA GREEN"), 35, 142, 107}, - {_T("SIENNA"), 142, 107, 35}, - {_T("SKY BLUE"), 50, 153, 204}, - {_T("SLATE BLUE"), 0, 127, 255}, - {_T("SPRING GREEN"), 0, 255, 127}, - {_T("STEEL BLUE"), 35, 107, 142}, - {_T("TAN"), 219, 147, 112}, - {_T("THISTLE"), 216, 191, 216}, - {_T("TURQUOISE"), 173, 234, 234}, - {_T("VIOLET"), 79, 47, 79}, - {_T("VIOLET RED"), 204, 50, 153}, - {_T("WHEAT"), 216, 216, 191}, - {_T("WHITE"), 255, 255, 255}, - {_T("YELLOW"), 255, 255, 0}, - {_T("YELLOW GREEN"), 153, 204, 50}, -// #endif - -#if defined(__WXGTK__) || defined(__X__) - {_T("MEDIUM GOLDENROD"), 234, 234, 173}, - {_T("MEDIUM FOREST GREEN"), 107, 142, 35}, - {_T("LIGHT MAGENTA"), 255, 0, 255}, - {_T("MEDIUM GREY"), 100, 100, 100}, -#endif - - {0,0,0,0} - }; - int i; - for (i=0;cc=table[i],cc.name!=0;i++) - { - Append(cc.name,new wxColour(cc.r,cc.g,cc.b)); - } - -} - -/* - * Changed by Ian Brown, July 1994. - * - * When running under X, the Colour Database starts off empty. The X server - * is queried for the colour first time after which it is entered into the - * database. This allows our client to use the server colour database which - * is hopefully gamma corrected for the display being used. - */ - -wxColour *wxColourDatabase::FindColour(const wxString& colour) -{ - // VZ: make the comparaison case insensitive - wxString str = colour; - str.MakeUpper(); - - wxNode *node = Find(str); - if (node) - return (wxColour *)node->Data(); - -#ifdef __WXMSW__ - else return NULL; -#endif - -// TODO for other implementations. This should really go into -// platform-specific directories. -#ifdef __WXMAC__ - else return NULL; -#endif -#ifdef __WXSTUBS__ - else return NULL; -#endif - -#ifdef __WXGTK__ - else { - wxColour *col = new wxColour( colour ); - - if (!(col->Ok())) { - delete col; - return (wxColour *) NULL; - } - Append( colour, col ); - return col; - } -#endif - -#ifdef __X__ - else { - XColor xcolour; - -#ifdef __WXMOTIF__ - Display *display = XtDisplay((Widget) wxTheApp->GetTopLevelWidget()) ; -#endif -#ifdef __XVIEW__ - Xv_Screen screen = xv_get(xview_server, SERVER_NTH_SCREEN, 0); - Xv_opaque root_window = xv_get(screen, XV_ROOT); - Display *display = (Display *)xv_get(root_window, XV_DISPLAY); -#endif - - /* MATTHEW: [4] Use wxGetMainColormap */ - if (!XParseColor(display, (Colormap) wxTheApp->GetMainColormap((WXDisplay*) display), colour,&xcolour)) - return NULL; - - unsigned char r = (unsigned char)(xcolour.red >> 8); - unsigned char g = (unsigned char)(xcolour.green >> 8); - unsigned char b = (unsigned char)(xcolour.blue >> 8); - - wxColour *col = new wxColour(r, g, b); - Append(colour, col); - - return col; - } -#endif -} - -wxString wxColourDatabase::FindName (const wxColour& colour) const -{ - wxString name; - - unsigned char red = colour.Red (); - unsigned char green = colour.Green (); - unsigned char blue = colour.Blue (); - - for (wxNode * node = First (); node; node = node->Next ()) - { - wxColour *col = (wxColour *) node->Data (); - - if (col->Red () == red && col->Green () == green && col->Blue () == blue) - { - const wxChar *found = node->GetKeyString(); - if ( found ) - { - name = found; - - break; - } - } - } - - return name; -} - -void wxInitializeStockLists () { - wxTheBrushList = new wxBrushList; - wxThePenList = new wxPenList; - wxTheFontList = new wxFontList; - wxTheBitmapList = new wxBitmapList; -} - -void wxInitializeStockObjects () -{ -#ifdef __WXMOTIF__ -#endif -#ifdef __X__ - // TODO - // wxFontPool = new XFontPool; -#endif - - wxNORMAL_FONT = new wxFont (12, wxMODERN, wxNORMAL, wxNORMAL); - wxSMALL_FONT = new wxFont (10, wxSWISS, wxNORMAL, wxNORMAL); - wxITALIC_FONT = new wxFont (12, wxROMAN, wxITALIC, wxNORMAL); - wxSWISS_FONT = new wxFont (12, wxSWISS, wxNORMAL, wxNORMAL); - - wxRED_PEN = new wxPen ("RED", 1, wxSOLID); - wxCYAN_PEN = new wxPen ("CYAN", 1, wxSOLID); - wxGREEN_PEN = new wxPen ("GREEN", 1, wxSOLID); - wxBLACK_PEN = new wxPen ("BLACK", 1, wxSOLID); - wxWHITE_PEN = new wxPen ("WHITE", 1, wxSOLID); - wxTRANSPARENT_PEN = new wxPen ("BLACK", 1, wxTRANSPARENT); - wxBLACK_DASHED_PEN = new wxPen ("BLACK", 1, wxSHORT_DASH); - wxGREY_PEN = new wxPen ("GREY", 1, wxSOLID); - wxMEDIUM_GREY_PEN = new wxPen ("MEDIUM GREY", 1, wxSOLID); - wxLIGHT_GREY_PEN = new wxPen ("LIGHT GREY", 1, wxSOLID); - - wxBLUE_BRUSH = new wxBrush ("BLUE", wxSOLID); - wxGREEN_BRUSH = new wxBrush ("GREEN", wxSOLID); - wxWHITE_BRUSH = new wxBrush ("WHITE", wxSOLID); - wxBLACK_BRUSH = new wxBrush ("BLACK", wxSOLID); - wxTRANSPARENT_BRUSH = new wxBrush ("BLACK", wxTRANSPARENT); - wxCYAN_BRUSH = new wxBrush ("CYAN", wxSOLID); - wxRED_BRUSH = new wxBrush ("RED", wxSOLID); - wxGREY_BRUSH = new wxBrush ("GREY", wxSOLID); - wxMEDIUM_GREY_BRUSH = new wxBrush ("MEDIUM GREY", wxSOLID); - wxLIGHT_GREY_BRUSH = new wxBrush ("LIGHT GREY", wxSOLID); - - wxBLACK = new wxColour ("BLACK"); - wxWHITE = new wxColour ("WHITE"); - wxRED = new wxColour ("RED"); - wxBLUE = new wxColour ("BLUE"); - wxGREEN = new wxColour ("GREEN"); - wxCYAN = new wxColour ("CYAN"); - wxLIGHT_GREY = new wxColour ("LIGHT GREY"); - - wxSTANDARD_CURSOR = new wxCursor (wxCURSOR_ARROW); - wxHOURGLASS_CURSOR = new wxCursor (wxCURSOR_WAIT); - wxCROSS_CURSOR = new wxCursor (wxCURSOR_CROSS); -} - -void wxDeleteStockObjects () -{ - wxDELETE(wxNORMAL_FONT); - wxDELETE(wxSMALL_FONT); - wxDELETE(wxITALIC_FONT); - wxDELETE(wxSWISS_FONT); - - wxDELETE(wxRED_PEN); - wxDELETE(wxCYAN_PEN); - wxDELETE(wxGREEN_PEN); - wxDELETE(wxBLACK_PEN); - wxDELETE(wxWHITE_PEN); - wxDELETE(wxTRANSPARENT_PEN); - wxDELETE(wxBLACK_DASHED_PEN); - wxDELETE(wxGREY_PEN); - wxDELETE(wxMEDIUM_GREY_PEN); - wxDELETE(wxLIGHT_GREY_PEN); - - wxDELETE(wxBLUE_BRUSH); - wxDELETE(wxGREEN_BRUSH); - wxDELETE(wxWHITE_BRUSH); - wxDELETE(wxBLACK_BRUSH); - wxDELETE(wxTRANSPARENT_BRUSH); - wxDELETE(wxCYAN_BRUSH); - wxDELETE(wxRED_BRUSH); - wxDELETE(wxGREY_BRUSH); - wxDELETE(wxMEDIUM_GREY_BRUSH); - wxDELETE(wxLIGHT_GREY_BRUSH); - - wxDELETE(wxBLACK); - wxDELETE(wxWHITE); - wxDELETE(wxRED); - wxDELETE(wxBLUE); - wxDELETE(wxGREEN); - wxDELETE(wxCYAN); - wxDELETE(wxLIGHT_GREY); - - wxDELETE(wxSTANDARD_CURSOR); - wxDELETE(wxHOURGLASS_CURSOR); - wxDELETE(wxCROSS_CURSOR); -} - -void wxDeleteStockLists() { - wxDELETE(wxTheBrushList); - wxDELETE(wxThePenList); - wxDELETE(wxTheFontList); - wxDELETE(wxTheBitmapList); -} - -wxBitmapList::wxBitmapList () -{ -} - -wxBitmapList::~wxBitmapList () -{ -#if defined(__WXMSW__) || defined(__WXMOTIF__) - wxNode *node = First (); - while (node) - { - wxBitmap *bitmap = (wxBitmap *) node->Data (); - wxNode *next = node->Next (); - if (bitmap->GetVisible()) - delete bitmap; - node = next; - } -#endif -} - -// Pen and Brush lists -wxPenList::~wxPenList () -{ -#if defined(__WXMSW__) || defined(__WXMOTIF__) - wxNode *node = First (); - while (node) - { - wxPen *pen = (wxPen *) node->Data (); - wxNode *next = node->Next (); - if (pen->GetVisible()) - delete pen; - node = next; - } -#endif -} - -void wxPenList::AddPen (wxPen * pen) -{ - Append (pen); -} - -void wxPenList::RemovePen (wxPen * pen) -{ - DeleteObject (pen); -} - -wxPen *wxPenList::FindOrCreatePen (const wxColour& colour, int width, int style) -{ - for (wxNode * node = First (); node; node = node->Next ()) - { - wxPen *each_pen = (wxPen *) node->Data (); - if (each_pen && each_pen->GetVisible() && - each_pen->GetWidth () == width && - each_pen->GetStyle () == style && - each_pen->GetColour ().Red () == colour.Red () && - each_pen->GetColour ().Green () == colour.Green () && - each_pen->GetColour ().Blue () == colour.Blue ()) - return each_pen; - } - wxPen *pen = new wxPen (colour, width, style); - - // Yes, we can return a pointer to this in a later FindOrCreatePen call, - // because we created it within FindOrCreatePen. Safeguards against - // returning a pointer to an automatic variable and hanging on to it - // (dangling pointer). - pen->SetVisible(TRUE); - return pen; -} - -wxBrushList::~wxBrushList () -{ -#if defined(__WXMSW__) || defined(__WXMOTIF__) - wxNode *node = First (); - while (node) - { - wxBrush *brush = (wxBrush *) node->Data (); - wxNode *next = node->Next (); - if (brush->GetVisible()) - delete brush; - node = next; - } -#endif -} - -void wxBrushList::AddBrush (wxBrush * brush) -{ - Append (brush); -} - -wxBrush *wxBrushList::FindOrCreateBrush (const wxColour& colour, int style) -{ - for (wxNode * node = First (); node; node = node->Next ()) - { - wxBrush *each_brush = (wxBrush *) node->Data (); - if (each_brush && each_brush->GetVisible() && - each_brush->GetStyle () == style && - each_brush->GetColour ().Red () == colour.Red () && - each_brush->GetColour ().Green () == colour.Green () && - each_brush->GetColour ().Blue () == colour.Blue ()) - return each_brush; - } - // Yes, we can return a pointer to this in a later FindOrCreateBrush call, - // because we created it within FindOrCreateBrush. Safeguards against - // returning a pointer to an automatic variable and hanging on to it - // (dangling pointer). - wxBrush *brush = new wxBrush (colour, style); - brush->SetVisible(TRUE); - return brush; -} - -void wxBrushList::RemoveBrush (wxBrush * brush) -{ - DeleteObject (brush); -} - -wxFontList::~wxFontList () -{ - wxNode *node = First (); - while (node) - { - // Only delete objects that are 'visible', i.e. - // that have been created using FindOrCreate..., - // where the pointers are expected to be shared - // (and therefore not deleted by any one part of an app). - wxFont *font = (wxFont *) node->Data (); - wxNode *next = node->Next (); - if (font->GetVisible()) - delete font; - node = next; -} -} - -void wxFontList::AddFont (wxFont * font) -{ - Append (font); -} - -void wxFontList::RemoveFont (wxFont * font) -{ - DeleteObject (font); -} - -wxFont *wxFontList:: - FindOrCreateFont (int PointSize, int FamilyOrFontId, int Style, int Weight, bool underline, const wxString& Face) -{ - for (wxNode * node = First (); node; node = node->Next ()) - { - wxFont *each_font = (wxFont *) node->Data (); - if (each_font && each_font->GetVisible() && each_font->Ok() && - each_font->GetPointSize () == PointSize && - each_font->GetStyle () == Style && - each_font->GetWeight () == Weight && - each_font->GetUnderlined () == underline && - //#if defined(__X__) - // each_font->GetFontId () == FamilyOrFontId) /* New font system */ - //#else - each_font->GetFamily () == FamilyOrFontId && - ((each_font->GetFaceName() == _T("")) || each_font->GetFaceName() == Face)) - //#endif - return each_font; - } - wxFont *font = new wxFont (PointSize, FamilyOrFontId, Style, Weight, underline, Face); - font->SetVisible(TRUE); - return font; -} - -void wxBitmapList::AddBitmap(wxBitmap *bitmap) -{ - Append(bitmap); -} - -void wxBitmapList::RemoveBitmap(wxBitmap *bitmap) -{ - DeleteObject(bitmap); -} - -wxSize wxGetDisplaySize() -{ - int x, y; - wxDisplaySize(& x, & y); - return wxSize(x, y); -} - -wxResourceCache::~wxResourceCache () -{ - wxNode *node = First (); - while (node) { - wxGDIObject *item = (wxGDIObject *)node->Data(); - if (item->IsKindOf(CLASSINFO(wxBrush))) { - wxBrush *brush = (wxBrush *)item; - delete brush; - } - - if (item->IsKindOf(CLASSINFO(wxFont))) { - wxFont *font = (wxFont *)item; - delete font; - } - - if (item->IsKindOf(CLASSINFO(wxBitmap))) { - wxBitmap *bitmap = (wxBitmap *)item; - delete bitmap; - } - - if (item->IsKindOf(CLASSINFO(wxColour))) { - wxColour *colour = (wxColour *)item; - delete colour; - } - - wxNode *next = node->Next (); - node = next; - } -} - diff --git a/src/common/glob.inc b/src/common/glob.inc deleted file mode 100644 index c8a821d32e..0000000000 --- a/src/common/glob.inc +++ /dev/null @@ -1,361 +0,0 @@ -/* - * File and other globbing (included by wb_utils.cc) - */ - -// This file includes: -// wxIsWild(const char *pattern) -// wxMatchWild(const char *pattern, const char *str, bool dot_special) -// - - -//--------------------------------------------------------------------------------- -#ifndef UNIX_GLOB -# ifdef wx_x -# define UNIX_GLOB 1 -# else -# define UNIX_GLOB 0 -# endif -#endif - -#if UNIX_GLOB -# ifdef wx_msw -# error "Can't use Unix file globbing under Windows!" -# endif -#endif - -/************************************************************************* - * - * wxIsWild checks whether the pattern contains wildcards, and - * returns TRUE if it does, and FALSE if it does not (or if the - * pattern is NULL -- i.e. no string). - * - * The argument is: - * - * 1) pattern - a character string - */ -bool -wxIsWild (const char *pattern) -{ - while (*pattern) - { - switch (*pattern++) - { - case '?': - case '*': -#if UNIX_GLOB - case '[': - case '{': /* } */ -#endif - return TRUE; -#if UNIX_GLOB - case '\\': - if (!*pattern++) - return FALSE; -#endif - } /* switch() */ - } /* while() */ - return FALSE; -} - - - -#if UNIX_GLOB - -// Unix Glob() -// -// Pattern Function -// ----------------------------------------------------- -// '*' = match 0 or more occurances of anything -// "[abc]" = match anyof "abc" (ranges supported) -// "{xx,yy,zz}" = match anyof "xx", "yy", or "zz" -// '?' = match any character -// -// '\' is used to "escape" special characters -// Recursive - -bool -wxMatchWild (const char *pattern, const char *str, bool dot_special) -{ - char c; - const char *cp; - bool done = FALSE, ret_code, ok; - // Below is for vi fans - const char OB = '{', CB = '}'; - -#if 0 - if (strcmp(pattern, "*.*") == 0) - pattern = "*"; // Hack for MS-DOS compat. -#endif - - // dot_special means '.' only matches '.' - if (dot_special && *str == '.' && *pattern != *str) - return FALSE; - - while ((*pattern != '\0') && (!done) && (((*str == '\0') && - ((*pattern == OB) || (*pattern == '*'))) || (*str != '\0'))) - { - switch (*pattern) - { - case '\\': - pattern++; - if (*pattern != '\0') - pattern++; - break; - case '*': - pattern++; - ret_code = FALSE; - while ((*str != '\0') && (!(ret_code = wxMatchWild (pattern, str++, FALSE)))); - if (ret_code) - { - while (*str != '\0') - str++; - while (*pattern != '\0') - pattern++; - } - break; - case '[': - pattern++; - repeat: - if ((*pattern == '\0') || (*pattern == ']')) - { - done = TRUE; - break; - } - if (*pattern == '\\') - { - pattern++; - if (*pattern == '\0') - { - done = TRUE; - break; - } - } - if (*(pattern + 1) == '-') - { - c = *pattern; - pattern += 2; - if (*pattern == ']') - { - done = TRUE; - break; - } - if (*pattern == '\\') - { - pattern++; - if (*pattern == '\0') - { - done = TRUE; - break; - } - } - if ((*str < c) || (*str > *pattern)) - { - pattern++; - goto repeat; - } - } - else if (*pattern != *str) - { - pattern++; - goto repeat; - } - pattern++; - while ((*pattern != ']') && (*pattern != '\0')) - { - if ((*pattern == '\\') && (*(pattern + 1) != '\0')) - pattern++; - pattern++; - } // while() - if (*pattern != '\0') - { - pattern++, str++; - } - break; - case '?': - pattern++; - str++; - break; - case OB: - pattern++; - while ((*pattern != CB) && (*pattern != '\0')) - { - cp = str; - ok = TRUE; - while (ok && (*cp != '\0') && (*pattern != '\0') && - (*pattern != ',') && (*pattern != CB)) - { - if (*pattern == '\\') - pattern++; - ok = (*pattern++ == *cp++); - } // while() - if (*pattern == '\0') - { - ok = FALSE; - done = TRUE; - break; - } - else if (ok) - { - str = cp; - while ((*pattern != CB) && (*pattern != '\0')) - { - if (*++pattern == '\\') - { - if (*++pattern == CB) - pattern++; - } - } // while() - } - else - { - while (*pattern != CB && *pattern != ',' && *pattern != '\0') - { - if (*++pattern == '\\') - { - if (*++pattern == CB || *pattern == ',') - pattern++; - } - } // while() - } - if (*pattern != '\0') - pattern++; - } // while() - break; - default: - if (*str == *pattern) - { - str++, pattern++; - } - else - { - done = TRUE; - } - } // switch() - } // while() - while (*pattern == '*') - pattern++; - return ((*str == '\0') && (*pattern == '\0')); -} - -#else /* MS-DOS/Windows glob() */ -/************************************************************************* - * - * wxMatchWild matches the given pattern string against - * a text string, and returns TRUE if it matches, FALSE otherwise. - * - * A match means that the entire text string is used up in the matching. - * The pattern can contain the following wildcards. - * - * * -- matches any sequence of characters - * ? -- matches one character - * - * If one or other or both of the string arguments to wxMatchWild function is - * NULL (i.e. there isn't a string), then the function returns FALSE. - * - */ -static bool wxPatternMatch (const char *pattern, const char *text, size_t i, size_t j); - -// @@@@ dotSpecial is ignored by MS-DOS -bool -wxMatchWild (const char *pattern, const char *text, bool /* dotSpecial */ ) -{ - if (pattern == NULL || text == NULL || *pattern == '\0' || *text == '\0') - return FALSE; - return wxPatternMatch (pattern, text, 0, 0); -} - -/************************************************************************* - * - * wxPatternMatch does the work for wxMatchWild. wxPatternMatch matches - * the given pattern string against a text string, and returns TRUE if - * it matches, FALSE otherwise. It is assumed that the string arguments - * to wxPatternMatch exist. - * - * A match means that the entire text string is used up in the matching. - * The pattern can contain the following wildcards. - * - * * -- matches any sequence of characters - * ? -- matches one character - * - * wxPatternMatch works by going down the pattern trying to match the - * the same index character in the pattern and string arrays, and stops - * when the end of the pattern or text string is reached. However, if a - * '*' wildcard is met, the algorithm checks to see whether the remaining - * pattern (after the wildcard) matches the rest of the text (i.e. the - * wxPatternMatch function is called recursively). - */ -// Recursive -static bool -wxPatternMatch (const char *pattern, const char *text, size_t i, size_t j) -{ - size_t pattern_length = strlen (pattern); - size_t text_length = strlen (text); - bool match = FALSE; - -#ifdef wx_msw -// MS-DOS file system is case INDEPENDENT -# define EQU(x,y) (wxToLower(x) == wxToLower(y)) -#else -# define EQU(x,y) ((x) == (y)) -#endif - - while (j < pattern_length && i < text_length) - { - if (EQU(text[i], pattern[j]) || pattern[j] == '?') - { - match = TRUE; - i++, j++; - } - else if (pattern[j] == '*') - { - // If pattern ends in '*' - if (++j == pattern_length) - { - match = TRUE; - i = text_length; - } - else - { - match = FALSE; -// after wildcard check to see whether rest of pattern matches - // up with rest of text - while (i < text_length && match != TRUE) - { - match = wxPatternMatch (pattern, text, i, j); - i++; - } -// text index is decremented so that it points to where - // the text string starts to match the rest of the pattern - i--; - } - } - else if (! EQU(text[i], pattern[j])) - { - j = pattern_length; - match = FALSE; - } - } - if (j == pattern_length && i == text_length && match == TRUE) - { - return TRUE; - } - else -// special case where pattern and text are the same except that pattern - // also only has '*' wildcards on the end - if (i == text_length && pattern[j] == '*' && match == TRUE) - { - for (; j < pattern_length; j++) - { - if (pattern[j] != '*') - return FALSE; - } - return TRUE; - } - else - { - return FALSE; - } -} - -#endif /* UNIX_GLOB */ -//----------------------------------------------------------------------------- diff --git a/src/common/hash.cpp b/src/common/hash.cpp deleted file mode 100644 index 691d70832c..0000000000 --- a/src/common/hash.cpp +++ /dev/null @@ -1,357 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: hash.cpp -// Purpose: wxHashTable implementation -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "hash.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/list.h" -#endif - -#include "wx/hash.h" - -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject) -#endif - -wxHashTable::wxHashTable (int the_key_type, int size) -{ - n = size; - current_position = -1; - current_node = (wxNode *) NULL; - - key_type = the_key_type; - hash_table = new wxList *[size]; - int i; - for (i = 0; i < size; i++) - hash_table[i] = (wxList *) NULL; -} - -wxHashTable::~wxHashTable (void) -{ - Destroy(); -} - -void wxHashTable::Destroy(void) -{ - if (!hash_table) return; - int i; - for (i = 0; i < n; i++) - if (hash_table[i]) - delete hash_table[i]; - delete[] hash_table; - hash_table = NULL; -} - -bool wxHashTable::Create(int the_key_type, int size) -{ - n = size; - current_position = -1; - current_node = (wxNode *) NULL; - - key_type = the_key_type; - if (hash_table) - delete[] hash_table; - hash_table = new wxList *[size]; - int i; - for (i = 0; i < size; i++) - hash_table[i] = (wxList *) NULL; - return TRUE; -} - -void wxHashTable::Put (long key, long value, wxObject * object) -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - hash_table[position] = new wxList (wxKEY_INTEGER); - - hash_table[position]->Append (value, object); -} - -void wxHashTable::Put (long key, const wxChar *value, wxObject * object) -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - hash_table[position] = new wxList (wxKEY_INTEGER); - - hash_table[position]->Append (value, object); -} - -void wxHashTable::Put (long key, wxObject * object) -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - hash_table[position] = new wxList (wxKEY_INTEGER); - - hash_table[position]->Append (k, object); -} - -void wxHashTable::Put (const wxChar *key, wxObject * object) -{ - int position = (int) (MakeKey (key) % n); - - if (!hash_table[position]) - hash_table[position] = new wxList (wxKEY_STRING); - - hash_table[position]->Append (key, object); -} - -wxObject *wxHashTable::Get (long key, long value) const -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (value); - if (node) - return node->Data (); - else - return (wxObject *) NULL; - } -} - -wxObject *wxHashTable::Get (long key, const wxChar *value) const -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (value); - if (node) - return node->Data (); - else - return (wxObject *) NULL; - } -} - -wxObject *wxHashTable::Get (long key) const -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (k); - return node ? node->Data () : (wxObject*)NULL; - } -} - -wxObject *wxHashTable::Get (const wxChar *key) const -{ - int position = (int) (MakeKey (key) % n); - - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (key); - return node ? node->Data () : (wxObject*)NULL; - } -} - -wxObject *wxHashTable::Delete (long key) -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (k); - if (node) - { - wxObject *data = node->Data (); - delete node; - return data; - } - else - return (wxObject *) NULL; - } -} - -wxObject *wxHashTable::Delete (const wxChar *key) -{ - int position = (int) (MakeKey (key) % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (key); - if (node) - { - wxObject *data = node->Data (); - delete node; - return data; - } - else - return (wxObject *) NULL; - } -} - -wxObject *wxHashTable::Delete (long key, int value) -{ - // Should NEVER be - long k = (long) key; - if (k < 0) - k = -k; - - int position = (int) (k % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (value); - if (node) - { - wxObject *data = node->Data (); - delete node; - return data; - } - else - return (wxObject *) NULL; - } -} - -wxObject *wxHashTable::Delete (long key, const wxChar *value) -{ - int position = (int) (key % n); - if (!hash_table[position]) - return (wxObject *) NULL; - else - { - wxNode *node = hash_table[position]->Find (value); - if (node) - { - wxObject *data = node->Data (); - delete node; - return data; - } - else - return (wxObject *) NULL; - } -} - -long wxHashTable::MakeKey (const wxChar *string) const -{ - long int_key = 0; - - while (*string) - int_key += (wxUChar) *string++; - - return int_key; -} - -void wxHashTable::BeginFind (void) -{ - current_position = -1; - current_node = (wxNode *) NULL; -} - -wxNode *wxHashTable::Next (void) -{ - wxNode *found = (wxNode *) NULL; - bool end = FALSE; - while (!end && !found) - { - if (!current_node) - { - current_position++; - if (current_position >= n) - { - current_position = -1; - current_node = (wxNode *) NULL; - end = TRUE; - } - else - { - if (hash_table[current_position]) - { - current_node = hash_table[current_position]->First (); - found = current_node; - } - } - } - else - { - current_node = current_node->Next (); - found = current_node; - } - } - return found; -} - -void wxHashTable::DeleteContents (bool flag) -{ - int i; - for (i = 0; i < n; i++) - { - if (hash_table[i]) - hash_table[i]->DeleteContents (flag); - } -} - -void wxHashTable::Clear (void) -{ - int i; - for (i = 0; i < n; i++) - { - if (hash_table[i]) - hash_table[i]->Clear (); - } -} - diff --git a/src/common/helpbase.cpp b/src/common/helpbase.cpp deleted file mode 100644 index da1d222c58..0000000000 --- a/src/common/helpbase.cpp +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpbase.cpp -// Purpose: Help system base classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpbase.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#include "wx/helpbase.h" - -#if wxUSE_HELP - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxHelpControllerBase, wxObject) -#endif - -#endif // wxUSE_HELP diff --git a/src/common/http.cpp b/src/common/http.cpp deleted file mode 100644 index 779472541d..0000000000 --- a/src/common/http.cpp +++ /dev/null @@ -1,282 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: http.cpp -// Purpose: HTTP protocol -// Author: Guilhem Lavaux -// Modified by: -// Created: August 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "http.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#endif - -#include -#include -#include "wx/string.h" -#include "wx/tokenzr.h" -#include "wx/socket.h" -#include "wx/protocol/protocol.h" -#include "wx/protocol/http.h" -#include "wx/sckstrm.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxHTTP, wxProtocol) -IMPLEMENT_PROTOCOL(wxHTTP, _T("http"), _T("80"), TRUE) -#endif - -#define HTTP_BSIZE 2048 - -wxHTTP::wxHTTP() - : wxProtocol(), - m_headers(wxKEY_STRING) -{ - m_addr = NULL; - m_read = FALSE; - - SetNotify(REQ_LOST); -} - -wxHTTP::~wxHTTP() -{ - // wxString isn't a wxObject - wxNode *node = m_headers.First(); - wxString *string; - - while (node) { - string = (wxString *)node->Data(); - delete string; - node = node->Next(); - } -} - -wxString wxHTTP::GetContentType() -{ - return GetHeader(_T("Content-Type")); -} - -void wxHTTP::SetHeader(const wxString& header, const wxString& h_data) -{ - if (m_read) { - m_headers.Clear(); - m_read = FALSE; - } - - wxNode *node = m_headers.Find(header); - - if (!node) - m_headers.Append(header, (wxObject *)(new wxString(h_data))); - else { - wxString *str = (wxString *)node->Data(); - (*str) = h_data; - } -} - -wxString wxHTTP::GetHeader(const wxString& header) -{ - wxNode *node = m_headers.Find(header); - if (!node) - return wxEmptyString; - - return *((wxString *)node->Data()); -} - -void wxHTTP::SendHeaders() -{ - wxNode *head = m_headers.First(); - - while (head) - { - wxString *str = (wxString *)head->Data(); - - wxString buf; - buf.Printf(_T("%s: %s\n\r"), head->GetKeyString(), str->GetData()); - - const wxWX2MBbuf cbuf = buf.mb_str(); - Write(cbuf, strlen(cbuf)); - - head = head->Next(); - } -} - -bool wxHTTP::ParseHeaders() -{ - wxString line; - wxStringTokenizer tokenzr; - - m_headers.Clear(); - m_read = TRUE; - - while (1) { - m_error = GetLine(this, line); - if (m_error != wxPROTO_NOERR) - return FALSE; - - if (line.Length() == 0) - break; - - tokenzr.SetString(line, " :\t\n\r"); - if (!tokenzr.HasMoreToken()) - return FALSE; - - wxString left_str = tokenzr.GetNextToken(); - wxString *str = new wxString(tokenzr.GetNextToken()); - - m_headers.Append(left_str, (wxObject *) str); - } - return TRUE; -} - -bool wxHTTP::Connect(const wxString& host) -{ - wxIPV4address *addr; - - if (m_connected) { - delete m_addr; - m_addr = NULL; - Close(); - } - - m_addr = addr = new wxIPV4address(); - - if (!addr->Hostname(host)) { - delete m_addr; - m_addr = NULL; - m_error = wxPROTO_NETERR; - return FALSE; - } - - if (!addr->Service(_T("http"))) - addr->Service(80); - - return TRUE; -} - -bool wxHTTP::Connect(wxSockAddress& addr, bool WXUNUSED(wait)) -{ - struct sockaddr *raw_addr; - size_t len; - - m_addr = (wxSockAddress *)(addr.GetClassInfo()->CreateObject()); - - addr.Build(raw_addr, len); - m_addr->Disassemble(raw_addr, len); - - return TRUE; -} - -bool wxHTTP::BuildRequest(const wxString& path, wxHTTP_Req req) -{ - char *tmp_buf; - char buf[HTTP_BSIZE]; - const wxWX2MBbuf pathbuf = path.mb_str(); - - switch (req) { - case wxHTTP_GET: - tmp_buf = "GET"; - break; - default: - return FALSE; - } - - SaveState(); - SetFlags(NONE); - Notify(FALSE); - - sprintf(buf, "%s %s\n\r", tmp_buf, (const char*) pathbuf); - Write(buf, strlen(buf)); - SendHeaders(); - sprintf(buf, "\n\r"); - Write(buf, strlen(buf)); - - wxString tmp_str; - - m_error = GetLine(this, tmp_str); - if (m_error != wxPROTO_NOERR) { - RestoreState(); - return FALSE; - } - - if (!tmp_str.Contains(_T("HTTP/"))) { - // TODO: support HTTP v0.9 which can have no header. - SetHeader(_T("Content-Length"), _T("-1")); - SetHeader(_T("Content-Type"), _T("none/none")); - RestoreState(); - return TRUE; - } - - wxStringTokenizer token(tmp_str,_T(' ')); - wxString tmp_str2; - bool ret_value; - - token.NextToken(); - tmp_str2 = token.NextToken(); - - switch (wxAtoi(tmp_str2)) { - case 200: - break; - default: - m_error = wxPROTO_NOFILE; - RestoreState(); - return FALSE; - } - - ret_value = ParseHeaders(); - RestoreState(); - return ret_value; -} - -class wxHTTPStream : public wxSocketInputStream { -public: - wxHTTP *m_http; - size_t m_httpsize; - - wxHTTPStream(wxHTTP *http) : wxSocketInputStream(*http), m_http(http) {} - size_t StreamSize() const { return m_httpsize; } - virtual ~wxHTTPStream(void) { m_http->Abort(); } -}; - -bool wxHTTP::Abort(void) -{ - return wxSocketClient::Close(); -} - -wxInputStream *wxHTTP::GetInputStream(const wxString& path) -{ - wxHTTPStream *inp_stream = new wxHTTPStream(this); - - if (!m_addr || m_connected) { - m_error = wxPROTO_CONNERR; - return NULL; - } - - if (!wxProtocol::Connect(*m_addr)) - return NULL; - - if (!BuildRequest(path, wxHTTP_GET)) - return NULL; - - wxPrintf(_T("Len = %s\n"), WXSTRINGCAST GetHeader(_T("Content-Length"))); - if (!GetHeader(_T("Content-Length")).IsEmpty()) - inp_stream->m_httpsize = wxAtoi(WXSTRINGCAST GetHeader(_T("Content-Length"))); - - SetFlags(WAITALL); - return inp_stream; -} - -#endif - // wxUSE_SOCKETS diff --git a/src/common/image.cpp b/src/common/image.cpp deleted file mode 100644 index 50a037f7e3..0000000000 --- a/src/common/image.cpp +++ /dev/null @@ -1,1916 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: image.cpp -// Purpose: wxImage -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "image.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/image.h" -#include "wx/bitmap.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/app.h" -#include "wx/filefn.h" -#include "wx/wfstream.h" -#include "wx/intl.h" -#include "wx/module.h" - -// For memcpy -#include - -#ifdef __SALFORDC__ -#ifdef FAR -#undef FAR -#endif -#endif - -#ifdef __WXMSW__ -#include -#endif - -//----------------------------------------------------------------------------- -// wxImage -//----------------------------------------------------------------------------- - -class wxImageRefData: public wxObjectRefData -{ - -public: - wxImageRefData(void); - ~wxImageRefData(void); - - int m_width; - int m_height; - unsigned char *m_data; - bool m_hasMask; - unsigned char m_maskRed,m_maskGreen,m_maskBlue; - bool m_ok; -}; - -wxImageRefData::wxImageRefData(void) -{ - m_width = 0; - m_height = 0; - m_data = (unsigned char*) NULL; - m_ok = FALSE; - m_maskRed = 0; - m_maskGreen = 0; - m_maskBlue = 0; - m_hasMask = FALSE; -} - -wxImageRefData::~wxImageRefData(void) -{ - if (m_data) free( m_data ); -} - -wxList wxImage::sm_handlers; - -//----------------------------------------------------------------------------- - -#define M_IMGDATA ((wxImageRefData *)m_refData) - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxImage, wxObject) -#endif - -wxImage::wxImage() -{ -} - -wxImage::wxImage( int width, int height ) -{ - Create( width, height ); -} - -wxImage::wxImage( const wxString& name, long type ) -{ - LoadFile( name, type ); -} - -wxImage::wxImage( const wxString& name, const wxString& mimetype ) -{ - LoadFile( name, mimetype ); -} - -#if wxUSE_STREAMS -wxImage::wxImage( wxInputStream& stream, long type ) -{ - LoadFile( stream, type ); -} - -wxImage::wxImage( wxInputStream& stream, const wxString& mimetype ) -{ - LoadFile( stream, mimetype ); -} -#endif // wxUSE_STREAMS - -wxImage::wxImage( const wxImage& image ) -{ - Ref(image); -} - -wxImage::wxImage( const wxImage* image ) -{ - if (image) Ref(*image); -} - -void wxImage::Create( int width, int height ) -{ - m_refData = new wxImageRefData(); - - M_IMGDATA->m_data = (unsigned char *) malloc( width*height*3 ); - if (M_IMGDATA->m_data) - { - for (int l = 0; l < width*height*3; l++) M_IMGDATA->m_data[l] = 0; - - M_IMGDATA->m_width = width; - M_IMGDATA->m_height = height; - M_IMGDATA->m_ok = TRUE; - } - else - { - UnRef(); - } -} - -void wxImage::Destroy() -{ - UnRef(); -} - -wxImage wxImage::Scale( int width, int height ) -{ - wxImage image; - - wxCHECK_MSG( Ok(), image, _T("invalid image") ); - - wxCHECK_MSG( (width > 0) && (height > 0), image, _T("invalid image size") ); - - image.Create( width, height ); - - char unsigned *data = image.GetData(); - - wxCHECK_MSG( data, image, _T("unable to create image") ); - - if (M_IMGDATA->m_hasMask) - image.SetMaskColour( M_IMGDATA->m_maskRed, M_IMGDATA->m_maskGreen, M_IMGDATA->m_maskBlue ); - - long old_height = M_IMGDATA->m_height; - long old_width = M_IMGDATA->m_width; - - char unsigned *source_data = M_IMGDATA->m_data; - char unsigned *target_data = data; - - for (long j = 0; j < height; j++) - { - long y_offset = (j * old_height / height) * old_width; - - for (long i = 0; i < width; i++) - { - memcpy( target_data, - source_data + 3*(y_offset + ((i * old_width )/ width)), - 3 ); - target_data += 3; - } - } - - return image; -} - -void wxImage::SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b ) -{ - wxCHECK_RET( Ok(), _T("invalid image") ); - - int w = M_IMGDATA->m_width; - int h = M_IMGDATA->m_height; - - wxCHECK_RET( (x>=0) && (y>=0) && (xm_data[ pos ] = r; - M_IMGDATA->m_data[ pos+1 ] = g; - M_IMGDATA->m_data[ pos+2 ] = b; -} - -unsigned char wxImage::GetRed( int x, int y ) -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - int w = M_IMGDATA->m_width; - int h = M_IMGDATA->m_height; - - wxCHECK_MSG( (x>=0) && (y>=0) && (xm_data[pos]; -} - -unsigned char wxImage::GetGreen( int x, int y ) -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - int w = M_IMGDATA->m_width; - int h = M_IMGDATA->m_height; - - wxCHECK_MSG( (x>=0) && (y>=0) && (xm_data[pos+1]; -} - -unsigned char wxImage::GetBlue( int x, int y ) -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - int w = M_IMGDATA->m_width; - int h = M_IMGDATA->m_height; - - wxCHECK_MSG( (x>=0) && (y>=0) && (xm_data[pos+2]; -} - -bool wxImage::Ok() const -{ - return (M_IMGDATA && M_IMGDATA->m_ok); -} - -char unsigned *wxImage::GetData() const -{ - wxCHECK_MSG( Ok(), (char unsigned *)NULL, _T("invalid image") ); - - return M_IMGDATA->m_data; -} - -void wxImage::SetData( char unsigned *data ) -{ - wxCHECK_RET( Ok(), _T("invalid image") ); - - memcpy(M_IMGDATA->m_data, data, M_IMGDATA->m_width * M_IMGDATA->m_height * 3); -} - -void wxImage::SetMaskColour( unsigned char r, unsigned char g, unsigned char b ) -{ - wxCHECK_RET( Ok(), _T("invalid image") ); - - M_IMGDATA->m_maskRed = r; - M_IMGDATA->m_maskGreen = g; - M_IMGDATA->m_maskBlue = b; - M_IMGDATA->m_hasMask = TRUE; -} - -unsigned char wxImage::GetMaskRed() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - return M_IMGDATA->m_maskRed; -} - -unsigned char wxImage::GetMaskGreen() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - return M_IMGDATA->m_maskGreen; -} - -unsigned char wxImage::GetMaskBlue() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - return M_IMGDATA->m_maskBlue; -} - -void wxImage::SetMask( bool mask ) -{ - wxCHECK_RET( Ok(), _T("invalid image") ); - - M_IMGDATA->m_hasMask = mask; -} - -bool wxImage::HasMask() const -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid image") ); - - return M_IMGDATA->m_hasMask; -} - -int wxImage::GetWidth() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - return M_IMGDATA->m_width; -} - -int wxImage::GetHeight() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid image") ); - - return M_IMGDATA->m_height; -} - -bool wxImage::LoadFile( const wxString& filename, long type ) -{ -#if wxUSE_STREAMS - if (wxFileExists(filename)) - { - wxFileInputStream stream(filename); - return LoadFile(stream, type); - } - - else { - wxLogError( _T("Can't load image from file '%s': file does not exist."), filename.c_str() ); - - return FALSE; - } -#else // !wxUSE_STREAMS - return FALSE; -#endif // wxUSE_STREAMS -} - -bool wxImage::LoadFile( const wxString& filename, const wxString& mimetype ) -{ -#if wxUSE_STREAMS - if (wxFileExists(filename)) - { - wxFileInputStream stream(filename); - return LoadFile(stream, mimetype); - } - - else { - wxLogError( _T("Can't load image from file '%s': file does not exist."), filename.c_str() ); - - return FALSE; - } -#else // !wxUSE_STREAMS - return FALSE; -#endif // wxUSE_STREAMS -} - -bool wxImage::SaveFile( const wxString& filename, int type ) -{ -#if wxUSE_STREAMS - wxFileOutputStream stream(filename); - - if ( stream.LastError() == wxStream_NOERROR ) - return SaveFile(stream, type); - else -#endif // wxUSE_STREAMS - return FALSE; -} - -bool wxImage::SaveFile( const wxString& filename, const wxString& mimetype ) -{ -#if wxUSE_STREAMS - wxFileOutputStream stream(filename); - - if ( stream.LastError() == wxStream_NOERROR ) - return SaveFile(stream, mimetype); - else -#endif // wxUSE_STREAMS - return FALSE; -} - -#if wxUSE_STREAMS -bool wxImage::LoadFile( wxInputStream& stream, long type ) -{ - UnRef(); - - m_refData = new wxImageRefData; - - wxImageHandler *handler = FindHandler(type); - - if (handler == NULL) - { - wxLogWarning( _T("No image handler for type %d defined."), type ); - - return FALSE; - } - - return handler->LoadFile( this, stream ); -} - -bool wxImage::LoadFile( wxInputStream& stream, const wxString& mimetype ) -{ - UnRef(); - - m_refData = new wxImageRefData; - - wxImageHandler *handler = FindHandlerMime(mimetype); - - if (handler == NULL) - { - wxLogWarning( _T("No image handler for type %s defined."), mimetype.GetData() ); - - return FALSE; - } - - return handler->LoadFile( this, stream ); -} - -bool wxImage::SaveFile( wxOutputStream& stream, int type ) -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid image") ); - - wxImageHandler *handler = FindHandler(type); - - if (handler == NULL) - { - wxLogWarning( _T("No image handler for type %d defined."), type ); - - return FALSE; - } - - return handler->SaveFile( this, stream ); -} - -bool wxImage::SaveFile( wxOutputStream& stream, const wxString& mimetype ) -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid image") ); - - wxImageHandler *handler = FindHandlerMime(mimetype); - - if (handler == NULL) - { - wxLogWarning( _T("No image handler for type %s defined."), mimetype.GetData() ); - - return FALSE; - } - - return handler->SaveFile( this, stream ); -} -#endif // wxUSE_STREAMS - -void wxImage::AddHandler( wxImageHandler *handler ) -{ - // make sure that the memory will be freed at the program end - sm_handlers.DeleteContents(TRUE); - - sm_handlers.Append( handler ); -} - -void wxImage::InsertHandler( wxImageHandler *handler ) -{ - // make sure that the memory will be freed at the program end - sm_handlers.DeleteContents(TRUE); - - sm_handlers.Insert( handler ); -} - -bool wxImage::RemoveHandler( const wxString& name ) -{ - wxImageHandler *handler = FindHandler(name); - if (handler) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxImageHandler *wxImage::FindHandler( const wxString& name ) -{ - wxNode *node = sm_handlers.First(); - while (node) - { - wxImageHandler *handler = (wxImageHandler*)node->Data(); - if (handler->GetName().Cmp(name) == 0) return handler; - - node = node->Next(); - } - return (wxImageHandler *)NULL; -} - -wxImageHandler *wxImage::FindHandler( const wxString& extension, long bitmapType ) -{ - wxNode *node = sm_handlers.First(); - while (node) - { - wxImageHandler *handler = (wxImageHandler*)node->Data(); - if ( (handler->GetExtension().Cmp(extension) == 0) && - (bitmapType == -1 || handler->GetType() == bitmapType) ) - return handler; - node = node->Next(); - } - return (wxImageHandler*)NULL; -} - -wxImageHandler *wxImage::FindHandler( long bitmapType ) -{ - wxNode *node = sm_handlers.First(); - while (node) - { - wxImageHandler *handler = (wxImageHandler *)node->Data(); - if (handler->GetType() == bitmapType) return handler; - node = node->Next(); - } - return NULL; -} - -wxImageHandler *wxImage::FindHandlerMime( const wxString& mimetype ) -{ - wxNode *node = sm_handlers.First(); - while (node) - { - wxImageHandler *handler = (wxImageHandler *)node->Data(); - if (handler->GetMimeType().IsSameAs(mimetype, FALSE)) return handler; - node = node->Next(); - } - return NULL; -} - -void wxImage::InitStandardHandlers() -{ - AddHandler( new wxBMPHandler ); -} - -void wxImage::CleanUpHandlers() -{ - wxNode *node = sm_handlers.First(); - while (node) - { - wxImageHandler *handler = (wxImageHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -//----------------------------------------------------------------------------- -// wxImageHandler -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxImageHandler,wxObject) -#endif - -#if wxUSE_STREAMS -bool wxImageHandler::LoadFile( wxImage *WXUNUSED(image), wxInputStream& WXUNUSED(stream) ) -{ - return FALSE; -} - -bool wxImageHandler::SaveFile( wxImage *WXUNUSED(image), wxOutputStream& WXUNUSED(stream) ) -{ - return FALSE; -} -#endif // wxUSE_STREAMS - -//----------------------------------------------------------------------------- -// wxBMPHandler -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBMPHandler,wxImageHandler) -#endif - -#if wxUSE_STREAMS - -#ifndef BI_RGB -#define BI_RGB 0 -#define BI_RLE8 1 -#define BI_RLE4 2 -#endif - -#ifndef BI_BITFIELDS -#define BI_BITFIELDS 3 -#endif - -#define poffset (line * width * 3 + column * 3) - -bool wxBMPHandler::LoadFile( wxImage *image, wxInputStream& stream ) -{ - int rshift = 0, gshift = 0, bshift = 0; - wxUint8 aByte; - wxUint16 aWord; - wxInt32 dbuf[4], aDword, - rmask = 0, gmask = 0, bmask = 0; - wxInt8 bbuf[4]; - struct _cmap { - unsigned char r, g, b; - } *cmap = NULL; - - off_t start_offset = stream.TellI(); - - image->Destroy(); - - /* - * Read the BMP header - */ - - stream.Read( &bbuf, 2 ); - stream.Read( dbuf, 4 * 4 ); - - wxInt32 size = wxINT32_SWAP_ON_BE( dbuf[0] ); - wxInt32 offset = wxINT32_SWAP_ON_BE( dbuf[2] ); - - stream.Read(dbuf, 4 * 2); - int width = (int)wxINT32_SWAP_ON_BE( dbuf[0] ); - int height = (int)wxINT32_SWAP_ON_BE( dbuf[1] ); - if (width > 32767) - { - wxLogError( _T("Image width > 32767 pixels for file.") ); - return FALSE; - } - if (height > 32767) - { - wxLogError( _T("Image height > 32767 pixels for file.") ); - return FALSE; - } - - stream.Read( &aWord, 2 ); -/* - TODO - int planes = (int)wxUINT16_SWAP_ON_BE( aWord ); -*/ - stream.Read( &aWord, 2 ); - int bpp = (int)wxUINT16_SWAP_ON_BE( aWord ); - if (bpp != 1 && bpp != 4 && bpp != 8 && bpp != 16 && bpp != 24 && bpp != 32) - { - wxLogError( _T("unknown bitdepth in file.") ); - return FALSE; - } - - stream.Read( dbuf, 4 * 4 ); - int comp = (int)wxINT32_SWAP_ON_BE( dbuf[0] ); - if (comp != BI_RGB && comp != BI_RLE4 && comp != BI_RLE8 && comp != BI_BITFIELDS) - { - wxLogError( _T("unknown encoding in Windows BMP file.") ); - return FALSE; - } - - stream.Read( dbuf, 4 * 2 ); - int ncolors = (int)wxINT32_SWAP_ON_BE( dbuf[0] ); - if (ncolors == 0) - ncolors = 1 << bpp; - /* some more sanity checks */ - if (((comp == BI_RLE4) && (bpp != 4)) || - ((comp == BI_RLE8) && (bpp != 8)) || - ((comp == BI_BITFIELDS) && (bpp != 16 && bpp != 32))) - { - wxLogError( _T("encoding of BMP doesn't match bitdepth.") ); - return FALSE; - } - if (bpp < 16) - { - cmap = (struct _cmap *)malloc(sizeof(struct _cmap) * ncolors); - if (!cmap) - { - wxLogError( _T("Cannot allocate RAM for color map in BMP file.") ); - return FALSE; - } - } - else - cmap = NULL; - - image->Create( width, height ); - unsigned char *ptr = image->GetData(); - if (!ptr) - { - wxLogError( _T("Cannot allocate RAM for RGB data in file.") ); - if (cmap) - free(cmap); - return FALSE; - } - - /* - * Reading the palette, if it exists. - */ - if (bpp < 16 && ncolors != 0) - { - for (int j = 0; j < ncolors; j++) - { - stream.Read( bbuf, 4 ); - cmap[j].b = bbuf[0]; - cmap[j].g = bbuf[1]; - cmap[j].r = bbuf[2]; - } - } - else if (bpp == 16 || bpp == 32) - { - if (comp == BI_BITFIELDS) - { - int bit = 0; - stream.Read( dbuf, 4 * 3 ); - bmask = wxINT32_SWAP_ON_BE( dbuf[0] ); - gmask = wxINT32_SWAP_ON_BE( dbuf[1] ); - rmask = wxINT32_SWAP_ON_BE( dbuf[2] ); - /* find shift amount.. ugly, but i can't think of a better way */ - for (bit = 0; bit < bpp; bit++) - { - if (bmask & (1 << bit)) - bshift = bit; - if (gmask & (1 << bit)) - gshift = bit; - if (rmask & (1 << bit)) - rshift = bit; - } - } - else if (bpp == 16) - { - rmask = 0x7C00; - gmask = 0x03E0; - bmask = 0x001F; - rshift = 10; - gshift = 5; - bshift = 0; - } - else if (bpp == 32) - { - rmask = 0x00FF0000; - gmask = 0x0000FF00; - bmask = 0x000000FF; - rshift = 16; - gshift = 8; - bshift = 0; - } - } - - /* - * Reading the image data - */ - stream.SeekI( start_offset + offset ); - unsigned char *data = ptr; - - /* set the whole image to the background color */ - if (bpp < 16 && (comp == BI_RLE4 || comp == BI_RLE8)) - { - for (int i = 0; i < width * height; i++) - { - *ptr++ = cmap[0].r; - *ptr++ = cmap[0].g; - *ptr++ = cmap[0].b; - } - ptr = data; - } - - int line = 0; - int column = 0; - int linesize = ((width * bpp + 31) / 32) * 4; - - /* BMPs are stored upside down */ - for (line = (height - 1); line >= 0; line--) - { - int linepos = 0; - for (column = 0; column < width;) - { - if (bpp < 16) - { - int index = 0; - linepos++; - aByte = stream.GetC(); - if (bpp == 1) - { - int bit = 0; - for (bit = 0; bit < 8; bit++) - { - index = ((aByte & (0x80 >> bit)) ? 1 : 0); - ptr[poffset] = cmap[index].r; - ptr[poffset + 1] = cmap[index].g; - ptr[poffset + 2] = cmap[index].b; - column++; - } - } - else if (bpp == 4) - { - if (comp == BI_RLE4) - { - wxLogError( _T("Can't deal with 4bit encoded yet.") ); - image->Destroy(); - free(cmap); - return FALSE; - } - else - { - int nibble = 0; - for (nibble = 0; nibble < 2; nibble++) - { - index = ((aByte & (0xF0 >> nibble * 4)) >> (!nibble * 4)); - if (index >= 16) - index = 15; - ptr[poffset] = cmap[index].r; - ptr[poffset + 1] = cmap[index].g; - ptr[poffset + 2] = cmap[index].b; - column++; - } - } - } - else if (bpp == 8) - { - if (comp == BI_RLE8) - { - unsigned char first; - first = aByte; - aByte = stream.GetC(); - if (first == 0) - { - if (aByte == 0) - { - /* column = width; */ - } - else if (aByte == 1) - { - column = width; - line = -1; - } - else if (aByte == 2) - { - aByte = stream.GetC(); - column += aByte; - linepos = column * bpp / 8; - aByte = stream.GetC(); - line += aByte; - } - else - { - int absolute = aByte; - for (int k = 0; k < absolute; k++) - { - linepos++; - aByte = stream.GetC(); - ptr[poffset ] = cmap[aByte].r; - ptr[poffset + 1] = cmap[aByte].g; - ptr[poffset + 2] = cmap[aByte].b; - column++; - } - if (absolute & 0x01) - aByte = stream.GetC(); - } - } - else - { - for (int l = 0; l < first; l++) - { - ptr[poffset ] = cmap[aByte].r; - ptr[poffset + 1] = cmap[aByte].g; - ptr[poffset + 2] = cmap[aByte].b; - column++; - linepos++; - } - } - } - else - { - ptr[poffset ] = cmap[aByte].r; - ptr[poffset + 1] = cmap[aByte].g; - ptr[poffset + 2] = cmap[aByte].b; - column++; - linepos += size; - } - } - } - else if (bpp == 24) - { - stream.Read( &bbuf, 3 ); - linepos += 3; - ptr[poffset ] = (unsigned char)bbuf[2]; - ptr[poffset + 1] = (unsigned char)bbuf[1]; - ptr[poffset + 2] = (unsigned char)bbuf[0]; - column++; - } - else if (bpp == 16) - { - unsigned char temp; - stream.Read( &aWord, 2 ); - aWord = wxUINT16_SWAP_ON_BE( aWord ); - linepos += 2; - temp = (aWord & rmask) >> rshift; - ptr[poffset] = temp; - temp = (aWord & gmask) >> gshift; - ptr[poffset + 1] = temp; - temp = (aWord & bmask) >> gshift; - ptr[poffset + 2] = temp; - column++; - } - else - { - unsigned char temp; - stream.Read( &aDword, 4 ); - aDword = wxINT32_SWAP_ON_BE( aDword ); - linepos += 4; - temp = (aDword & rmask) >> rshift; - ptr[poffset] = temp; - temp = (aDword & gmask) >> gshift; - ptr[poffset + 1] = temp; - temp = (aDword & bmask) >> bshift; - ptr[poffset + 2] = temp; - column++; - } - } - while ((linepos < linesize) && (comp != 1) && (comp != 2)) - { - stream.Read( &aByte, 1 ); - linepos += 1; - if (stream.LastError() != wxStream_NOERROR) - break; - } - } - if (cmap) - free(cmap); - - image->SetMask( FALSE ); - - return TRUE; -} -#endif // wxUSE_STREAMS - -#ifdef __WXMSW__ - -wxBitmap wxImage::ConvertToBitmap() const -{ - // sizeLimit is the MS upper limit for the DIB size - int sizeLimit = 1024*768*3; - - // width and height of the device-dependent bitmap - int width = GetWidth(); - int bmpHeight = GetHeight(); - - // calc the number of bytes per scanline and padding - int bytePerLine = width*3; - int sizeDWORD = sizeof( DWORD ); - div_t lineBoundary = div( bytePerLine, sizeDWORD ); - int padding = 0; - if( lineBoundary.rem > 0 ) - { - padding = sizeDWORD - lineBoundary.rem; - bytePerLine += padding; - } - // calc the number of DIBs and heights of DIBs - int numDIB = 1; - int hRemain = 0; - int height = sizeLimit/bytePerLine; - if( height >= bmpHeight ) - height = bmpHeight; - else - { - div_t result = div( bmpHeight, height ); - numDIB = result.quot; - hRemain = result.rem; - if( hRemain >0 ) numDIB++; - } - - // set bitmap parameters - wxBitmap bitmap; - wxCHECK_MSG( Ok(), bitmap, _T("invalid image") ); - bitmap.SetWidth( width ); - bitmap.SetHeight( bmpHeight ); - bitmap.SetDepth( wxDisplayDepth() ); - - // create a DIB header - int headersize = sizeof(BITMAPINFOHEADER); - LPBITMAPINFO lpDIBh = (BITMAPINFO *) malloc( headersize ); - wxCHECK_MSG( lpDIBh, bitmap, _T("could not allocate memory for DIB header") ); - // Fill in the DIB header - lpDIBh->bmiHeader.biSize = headersize; - lpDIBh->bmiHeader.biWidth = (DWORD)width; - lpDIBh->bmiHeader.biHeight = (DWORD)(-height); - lpDIBh->bmiHeader.biSizeImage = bytePerLine*height; - // the general formula for biSizeImage: - // ( ( ( ((DWORD)width*24) +31 ) & ~31 ) >> 3 ) * height; - lpDIBh->bmiHeader.biPlanes = 1; - lpDIBh->bmiHeader.biBitCount = 24; - lpDIBh->bmiHeader.biCompression = BI_RGB; - lpDIBh->bmiHeader.biClrUsed = 0; - // These seem not really needed for our purpose here. - lpDIBh->bmiHeader.biClrImportant = 0; - lpDIBh->bmiHeader.biXPelsPerMeter = 0; - lpDIBh->bmiHeader.biYPelsPerMeter = 0; - // memory for DIB data - unsigned char *lpBits; - lpBits = (unsigned char *)malloc( lpDIBh->bmiHeader.biSizeImage ); - if( !lpBits ) - { - wxFAIL_MSG( _T("could not allocate memory for DIB") ); - free( lpDIBh ); - return bitmap; - } - - // create and set the device-dependent bitmap - HDC hdc = ::GetDC(NULL); - HDC memdc = ::CreateCompatibleDC( hdc ); - HBITMAP hbitmap; - hbitmap = ::CreateCompatibleBitmap( hdc, width, bmpHeight ); - ::SelectObject( memdc, hbitmap); - - // copy image data into DIB data and then into DDB (in a loop) - unsigned char *data = GetData(); - int i, j, n; - int origin = 0; - unsigned char *ptdata = data; - unsigned char *ptbits; - - for( n=0; n 1 && n == numDIB-1 && hRemain > 0 ) - { - // redefine height and size of the (possibly) last smaller DIB - // memory is not reallocated - height = hRemain; - lpDIBh->bmiHeader.biHeight = (DWORD)(-height); - lpDIBh->bmiHeader.biSizeImage = bytePerLine*height; - } - ptbits = lpBits; - - for( j=0; jbmiHeader), CBM_INIT, lpBits, lpDIBh, DIB_RGB_COLORS ); - // The above line is equivalent to the following two lines. - // hbitmap = ::CreateCompatibleBitmap( hdc, width, height ); - // ::SetDIBits( hdc, hbitmap, 0, height, lpBits, lpDIBh, DIB_RGB_COLORS); - // or the following lines - // hbitmap = ::CreateCompatibleBitmap( hdc, width, height ); - // HDC memdc = ::CreateCompatibleDC( hdc ); - // ::SelectObject( memdc, hbitmap); - // ::SetDIBitsToDevice( memdc, 0, 0, width, height, - // 0, 0, 0, height, (void *)lpBits, lpDIBh, DIB_RGB_COLORS); - // ::SelectObject( memdc, 0 ); - // ::DeleteDC( memdc ); - } - bitmap.SetHBITMAP( (WXHBITMAP) hbitmap ); - - // similarly, created an mono-bitmap for the possible mask - if( HasMask() ) - { - hbitmap = ::CreateBitmap( (WORD)width, (WORD)bmpHeight, 1, 1, NULL ); - ::SelectObject( memdc, hbitmap); - if( numDIB == 1 ) height = bmpHeight; - else height = sizeLimit/bytePerLine; - lpDIBh->bmiHeader.biHeight = (DWORD)(-height); - lpDIBh->bmiHeader.biSizeImage = bytePerLine*height; - origin = 0; - unsigned char r = GetMaskRed(); - unsigned char g = GetMaskGreen(); - unsigned char b = GetMaskBlue(); - unsigned char zero = 0, one = 255; - ptdata = data; - for( n=0; n 1 && n == numDIB - 1 && hRemain > 0 ) - { - // redefine height and size of the (possibly) last smaller DIB - // memory is not reallocated - height = hRemain; - lpDIBh->bmiHeader.biHeight = (DWORD)(-height); - lpDIBh->bmiHeader.biSizeImage = bytePerLine*height; - } - ptbits = lpBits; - for( int j=0; jSetMaskBitmap( (WXHBITMAP) hbitmap ); - bitmap.SetMask( mask ); - // It will be deleted when the wxBitmap object is deleted (as of 01/1999) - /* The following can also be used but is slow to run - wxColour colour( GetMaskRed(), GetMaskGreen(), GetMaskBlue()); - wxMask *mask = new wxMask( bitmap, colour ); - bitmap.SetMask( mask ); - */ - } - - // free allocated resources - ::SelectObject( memdc, 0 ); - ::DeleteDC( memdc ); - ::ReleaseDC(NULL, hdc); - free(lpDIBh); - free(lpBits); - - // check the wxBitmap object - if( bitmap.GetHBITMAP() ) - bitmap.SetOk( TRUE ); - else - bitmap.SetOk( FALSE ); - - return bitmap; -} - -wxImage::wxImage( const wxBitmap &bitmap ) -{ - // check the bitmap - if( !bitmap.Ok() ) - { - wxFAIL_MSG( _T("invalid bitmap") ); - return; - } - - // create an wxImage object - int width = bitmap.GetWidth(); - int height = bitmap.GetHeight(); - Create( width, height ); - unsigned char *data = GetData(); - if( !data ) - { - wxFAIL_MSG( _T("could not allocate data for image") ); - return; - } - - // calc the number of bytes per scanline and padding in the DIB - int bytePerLine = width*3; - int sizeDWORD = sizeof( DWORD ); - div_t lineBoundary = div( bytePerLine, sizeDWORD ); - int padding = 0; - if( lineBoundary.rem > 0 ) - { - padding = sizeDWORD - lineBoundary.rem; - bytePerLine += padding; - } - - // create a DIB header - int headersize = sizeof(BITMAPINFOHEADER); - LPBITMAPINFO lpDIBh = (BITMAPINFO *) malloc( headersize ); - if( !lpDIBh ) - { - wxFAIL_MSG( _T("could not allocate data for DIB header") ); - free( data ); - return; - } - // Fill in the DIB header - lpDIBh->bmiHeader.biSize = headersize; - lpDIBh->bmiHeader.biWidth = width; - lpDIBh->bmiHeader.biHeight = -height; - lpDIBh->bmiHeader.biSizeImage = bytePerLine * height; - lpDIBh->bmiHeader.biPlanes = 1; - lpDIBh->bmiHeader.biBitCount = 24; - lpDIBh->bmiHeader.biCompression = BI_RGB; - lpDIBh->bmiHeader.biClrUsed = 0; - // These seem not really needed for our purpose here. - lpDIBh->bmiHeader.biClrImportant = 0; - lpDIBh->bmiHeader.biXPelsPerMeter = 0; - lpDIBh->bmiHeader.biYPelsPerMeter = 0; - // memory for DIB data - unsigned char *lpBits; - lpBits = (unsigned char *) malloc( lpDIBh->bmiHeader.biSizeImage ); - if( !lpBits ) - { - wxFAIL_MSG( _T("could not allocate data for DIB") ); - free( data ); - free( lpDIBh ); - return; - } - - // copy data from the device-dependent bitmap to the DIB - HDC hdc = ::GetDC(NULL); - HBITMAP hbitmap; - hbitmap = (HBITMAP) bitmap.GetHBITMAP(); - ::GetDIBits( hdc, hbitmap, 0, height, lpBits, lpDIBh, DIB_RGB_COLORS ); - - // copy DIB data into the wxImage object - int i, j; - unsigned char *ptdata = data; - unsigned char *ptbits = lpBits; - for( i=0; iGetMaskBitmap() ) - { - hbitmap = (HBITMAP) bitmap.GetMask()->GetMaskBitmap(); - // memory DC created, color set, data copied, and memory DC deleted - HDC memdc = ::CreateCompatibleDC( hdc ); - ::SetTextColor( memdc, RGB( 0, 0, 0 ) ); - ::SetBkColor( memdc, RGB( 255, 255, 255 ) ); - ::GetDIBits( memdc, hbitmap, 0, height, lpBits, lpDIBh, DIB_RGB_COLORS ); - ::DeleteDC( memdc ); - // background color set to RGB(16,16,16) in consistent with wxGTK - unsigned char r=16, g=16, b=16; - ptdata = data; - ptbits = lpBits; - for( i=0; i 0) -#include "gdk/gdkrgb.h" -#endif - -wxBitmap wxImage::ConvertToBitmap() const -{ - wxBitmap bitmap; - - wxCHECK_MSG( Ok(), bitmap, _T("invalid image") ); - - int width = GetWidth(); - int height = GetHeight(); - - bitmap.SetHeight( height ); - bitmap.SetWidth( width ); - - bitmap.SetPixmap( gdk_pixmap_new( (GdkWindow*)&gdk_root_parent, width, height, -1 ) ); - - // Retrieve depth - - GdkVisual *visual = gdk_window_get_visual( bitmap.GetPixmap() ); - if (visual == NULL) visual = gdk_window_get_visual( (GdkWindow*) &gdk_root_parent ); - int bpp = visual->depth; - - bitmap.SetDepth( bpp ); - - if ((bpp == 16) && (visual->red_mask != 0xf800)) bpp = 15; - if (bpp < 8) bpp = 8; - -#if (GTK_MINOR_VERSION > 0) - - if (!HasMask() && (bpp > 8)) - { - static bool s_hasInitialized = FALSE; - - if (!s_hasInitialized) - { - gdk_rgb_init(); - s_hasInitialized = TRUE; - } - - GdkGC *gc = gdk_gc_new( bitmap.GetPixmap() ); - - gdk_draw_rgb_image( bitmap.GetPixmap(), - gc, - 0, 0, - width, height, - GDK_RGB_DITHER_NONE, - GetData(), - width*3 ); - - gdk_gc_unref( gc ); - - return bitmap; - } - -#endif - - // Create picture image - - GdkImage *data_image = - gdk_image_new( GDK_IMAGE_FASTEST, gdk_visual_get_system(), width, height ); - - // Create mask image - - GdkImage *mask_image = (GdkImage*) NULL; - - if (HasMask()) - { - unsigned char *mask_data = (unsigned char*)malloc( ((width >> 3)+8) * height ); - - mask_image = gdk_image_new_bitmap( gdk_visual_get_system(), mask_data, width, height ); - - wxMask *mask = new wxMask(); - mask->m_bitmap = gdk_pixmap_new( (GdkWindow*)&gdk_root_parent, width, height, 1 ); - - bitmap.SetMask( mask ); - } - - // Render - - enum byte_order { RGB, RBG, BRG, BGR, GRB, GBR }; - byte_order b_o = RGB; - - if (bpp >= 24) - { - GdkVisual *visual = gdk_visual_get_system(); - if ((visual->red_mask > visual->green_mask) && (visual->green_mask > visual->blue_mask)) b_o = RGB; - else if ((visual->red_mask > visual->blue_mask) && (visual->blue_mask > visual->green_mask)) b_o = RGB; - else if ((visual->blue_mask > visual->red_mask) && (visual->red_mask > visual->green_mask)) b_o = BRG; - else if ((visual->blue_mask > visual->green_mask) && (visual->green_mask > visual->red_mask)) b_o = BGR; - else if ((visual->green_mask > visual->red_mask) && (visual->red_mask > visual->blue_mask)) b_o = GRB; - else if ((visual->green_mask > visual->blue_mask) && (visual->blue_mask > visual->red_mask)) b_o = GBR; - } - - int r_mask = GetMaskRed(); - int g_mask = GetMaskGreen(); - int b_mask = GetMaskBlue(); - - unsigned char* data = GetData(); - - int index = 0; - for (int y = 0; y < height; y++) - { - for (int x = 0; x < width; x++) - { - int r = data[index]; - index++; - int g = data[index]; - index++; - int b = data[index]; - index++; - - if (HasMask()) - { - if ((r == r_mask) && (b == b_mask) && (g == g_mask)) - gdk_image_put_pixel( mask_image, x, y, 1 ); - else - gdk_image_put_pixel( mask_image, x, y, 0 ); - } - - if (HasMask()) - { - if ((r == r_mask) && (b == b_mask) && (g == g_mask)) - gdk_image_put_pixel( mask_image, x, y, 1 ); - else - gdk_image_put_pixel( mask_image, x, y, 0 ); - } - - switch (bpp) - { - case 8: - { - int pixel = -1; - if (wxTheApp->m_colorCube) - { - pixel = wxTheApp->m_colorCube[ ((r & 0xf8) << 7) + ((g & 0xf8) << 2) + ((b & 0xf8) >> 3) ]; - } - else - { - GdkColormap *cmap = gtk_widget_get_default_colormap(); - GdkColor *colors = cmap->colors; - int max = 3 * (65536); - - for (int i = 0; i < cmap->size; i++) - { - int rdiff = (r << 8) - colors[i].red; - int gdiff = (g << 8) - colors[i].green; - int bdiff = (b << 8) - colors[i].blue; - int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); - if (sum < max) { pixel = i; max = sum; } - } - } - - gdk_image_put_pixel( data_image, x, y, pixel ); - - break; - } - case 15: - { - guint32 pixel = ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3); - gdk_image_put_pixel( data_image, x, y, pixel ); - break; - } - case 16: - { - guint32 pixel = ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3); - gdk_image_put_pixel( data_image, x, y, pixel ); - break; - } - case 32: - case 24: - { - guint32 pixel = 0; - switch (b_o) - { - case RGB: pixel = (r << 16) | (g << 8) | b; break; - case RBG: pixel = (r << 16) | (b << 8) | g; break; - case BRG: pixel = (b << 16) | (r << 8) | g; break; - case BGR: pixel = (b << 16) | (g << 8) | r; break; - case GRB: pixel = (g << 16) | (r << 8) | b; break; - case GBR: pixel = (g << 16) | (b << 8) | r; break; - } - gdk_image_put_pixel( data_image, x, y, pixel ); - } - default: break; - } - } // for - } // for - - // Blit picture - - GdkGC *data_gc = gdk_gc_new( bitmap.GetPixmap() ); - - gdk_draw_image( bitmap.GetPixmap(), data_gc, data_image, 0, 0, 0, 0, width, height ); - - gdk_image_destroy( data_image ); - gdk_gc_unref( data_gc ); - - // Blit mask - - if (HasMask()) - { - GdkGC *mask_gc = gdk_gc_new( bitmap.GetMask()->GetBitmap() ); - - gdk_draw_image( bitmap.GetMask()->GetBitmap(), mask_gc, mask_image, 0, 0, 0, 0, width, height ); - - gdk_image_destroy( mask_image ); - gdk_gc_unref( mask_gc ); - } - - return bitmap; -} - -wxImage::wxImage( const wxBitmap &bitmap ) -{ - wxCHECK_RET( bitmap.Ok(), _T("invalid bitmap") ); - - GdkImage *gdk_image = gdk_image_get( bitmap.GetPixmap(), - 0, 0, - bitmap.GetWidth(), bitmap.GetHeight() ); - - wxCHECK_RET( gdk_image, _T("couldn't create image") ); - - Create( bitmap.GetWidth(), bitmap.GetHeight() ); - char unsigned *data = GetData(); - - if (!data) - { - gdk_image_destroy( gdk_image ); - wxFAIL_MSG( _T("couldn't create image") ); - return; - } - - GdkImage *gdk_image_mask = (GdkImage*) NULL; - if (bitmap.GetMask()) - { - gdk_image_mask = gdk_image_get( bitmap.GetMask()->GetBitmap(), - 0, 0, - bitmap.GetWidth(), bitmap.GetHeight() ); - - SetMaskColour( 16, 16, 16 ); // anything unlikely and dividable - } - - GdkVisual *visual = gdk_window_get_visual( bitmap.GetPixmap() ); - if (visual == NULL) visual = gdk_window_get_visual( (GdkWindow*) &gdk_root_parent ); - int bpp = visual->depth; - if ((bpp == 16) && (visual->red_mask != 0xf800)) bpp = 15; - - GdkColormap *cmap = gtk_widget_get_default_colormap(); - - long pos = 0; - for (int j = 0; j < bitmap.GetHeight(); j++) - { - for (int i = 0; i < bitmap.GetWidth(); i++) - { - int pixel = gdk_image_get_pixel( gdk_image, i, j ); - if (bpp <= 8) - { - data[pos] = cmap->colors[pixel].red >> 8; - data[pos+1] = cmap->colors[pixel].green >> 8; - data[pos+2] = cmap->colors[pixel].blue >> 8; - } else if (bpp == 15) - { - data[pos] = (pixel >> 7) & 0xf8; - data[pos+1] = (pixel >> 2) & 0xf8; - data[pos+2] = (pixel << 3) & 0xf8; - } else if (bpp == 16) - { - data[pos] = (pixel >> 8) & 0xf8; - data[pos+1] = (pixel >> 3) & 0xfc; - data[pos+2] = (pixel << 3) & 0xf8; - } else - { - data[pos] = (pixel >> 16) & 0xff; - data[pos+1] = (pixel >> 8) & 0xff; - data[pos+2] = pixel & 0xff; - } - - if (gdk_image_mask) - { - int mask_pixel = gdk_image_get_pixel( gdk_image_mask, i, j ); - if (mask_pixel == 0) - { - data[pos] = 16; - data[pos+1] = 16; - data[pos+2] = 16; - } - } - - pos += 3; - } - } - - gdk_image_destroy( gdk_image ); - if (gdk_image_mask) gdk_image_destroy( gdk_image_mask ); -} - -#endif - -#ifdef __WXMOTIF__ - -#include -#include "wx/utils.h" -#include - -wxBitmap wxImage::ConvertToBitmap() const -{ - wxBitmap bitmap; - - wxCHECK_MSG( Ok(), bitmap, _T("invalid image") ); - - int width = GetWidth(); - int height = GetHeight(); - - bitmap.SetHeight( height ); - bitmap.SetWidth( width ); - - Display *dpy = (Display*) wxGetDisplay(); - Visual* vis = DefaultVisual( dpy, DefaultScreen( dpy ) ); - int bpp = DefaultDepth( dpy, DefaultScreen( dpy ) ); - - // Create image - - XImage *data_image = XCreateImage( dpy, vis, bpp, ZPixmap, 0, 0, width, height, 32, 0 ); - data_image->data = (char*) malloc( data_image->bytes_per_line * data_image->height ); - - bitmap.Create( width, height, bpp ); - - /* - // Create mask - - GdkImage *mask_image = (GdkImage*) NULL; - - if (HasMask()) - { - unsigned char *mask_data = (unsigned char*)malloc( ((width >> 3)+8) * height ); - - mask_image = gdk_image_new_bitmap( gdk_visual_get_system(), mask_data, width, height ); - - wxMask *mask = new wxMask(); - mask->m_bitmap = gdk_pixmap_new( (GdkWindow*)&gdk_root_parent, width, height, 1 ); - - bitmap.SetMask( mask ); - } - */ - - // Retrieve depth info - - XVisualInfo vinfo_template; - XVisualInfo *vi; - - vinfo_template.visual = vis; - vinfo_template.visualid = XVisualIDFromVisual( vis ); - vinfo_template.depth = bpp; - int nitem = 0; - - vi = XGetVisualInfo( dpy, VisualIDMask|VisualDepthMask, &vinfo_template, &nitem ); - - wxCHECK_MSG( vi, wxNullBitmap, _T("no visual") ); - - XFree( vi ); - - if ((bpp == 16) && (vi->red_mask != 0xf800)) bpp = 15; - if (bpp < 8) bpp = 8; - - // Render - - enum byte_order { RGB, RBG, BRG, BGR, GRB, GBR }; - byte_order b_o = RGB; - - if (bpp >= 24) - { - if ((vi->red_mask > vi->green_mask) && (vi->green_mask > vi->blue_mask)) b_o = RGB; - else if ((vi->red_mask > vi->blue_mask) && (vi->blue_mask > vi->green_mask)) b_o = RGB; - else if ((vi->blue_mask > vi->red_mask) && (vi->red_mask > vi->green_mask)) b_o = BRG; - else if ((vi->blue_mask > vi->green_mask) && (vi->green_mask > vi->red_mask)) b_o = BGR; - else if ((vi->green_mask > vi->red_mask) && (vi->red_mask > vi->blue_mask)) b_o = GRB; - else if ((vi->green_mask > vi->blue_mask) && (vi->blue_mask > vi->red_mask)) b_o = GBR; - } - - /* - int r_mask = GetMaskRed(); - int g_mask = GetMaskGreen(); - int b_mask = GetMaskBlue(); - */ - - XColor colors[256]; - if (bpp == 8) - { - Colormap cmap = (Colormap) wxTheApp->GetMainColormap( dpy ); - - for (int i = 0; i < 256; i++) colors[i].pixel = i; - XQueryColors( dpy, cmap, colors, 256 ); - } - - unsigned char* data = GetData(); - - int index = 0; - for (int y = 0; y < height; y++) - { - for (int x = 0; x < width; x++) - { - int r = data[index]; - index++; - int g = data[index]; - index++; - int b = data[index]; - index++; - - /* - if (HasMask()) - { - if ((r == r_mask) && (b == b_mask) && (g == g_mask)) - gdk_image_put_pixel( mask_image, x, y, 1 ); - else - gdk_image_put_pixel( mask_image, x, y, 0 ); - } - */ - - switch (bpp) - { - case 8: - { - int pixel = -1; - /* - if (wxTheApp->m_colorCube) - { - pixel = wxTheApp->m_colorCube - [ ((r & 0xf8) << 7) + ((g & 0xf8) << 2) + ((b & 0xf8) >> 3) ]; - } - else - { - */ - int max = 3 * (65536); - for (int i = 0; i < 256; i++) - { - int rdiff = (r << 8) - colors[i].red; - int gdiff = (g << 8) - colors[i].green; - int bdiff = (b << 8) - colors[i].blue; - int sum = abs (rdiff) + abs (gdiff) + abs (bdiff); - if (sum < max) { pixel = i; max = sum; } - } - /* - } - */ - XPutPixel( data_image, x, y, pixel ); - break; - } - case 15: - { - int pixel = ((r & 0xf8) << 7) | ((g & 0xf8) << 2) | ((b & 0xf8) >> 3); - XPutPixel( data_image, x, y, pixel ); - break; - } - case 16: - { - int pixel = ((r & 0xf8) << 8) | ((g & 0xfc) << 3) | ((b & 0xf8) >> 3); - XPutPixel( data_image, x, y, pixel ); - break; - } - case 32: - case 24: - { - int pixel = 0; - switch (b_o) - { - case RGB: pixel = (r << 16) | (g << 8) | b; break; - case RBG: pixel = (r << 16) | (b << 8) | g; break; - case BRG: pixel = (b << 16) | (r << 8) | g; break; - case BGR: pixel = (b << 16) | (g << 8) | r; break; - case GRB: pixel = (g << 16) | (r << 8) | b; break; - case GBR: pixel = (g << 16) | (b << 8) | r; break; - } - XPutPixel( data_image, x, y, pixel ); - } - default: break; - } - } // for - } // for - - // Blit picture - - XGCValues gcvalues; - gcvalues.foreground = BlackPixel( dpy, DefaultScreen( dpy ) ); - GC gc = XCreateGC( dpy, RootWindow ( dpy, DefaultScreen(dpy) ), GCForeground, &gcvalues ); - XPutImage( dpy, (Drawable)bitmap.GetPixmap(), gc, data_image, 0, 0, 0, 0, width, height ); - - XDestroyImage( data_image ); - XFreeGC( dpy, gc ); - - /* - // Blit mask - - if (HasMask()) - { - GdkGC *mask_gc = gdk_gc_new( bitmap.GetMask()->GetBitmap() ); - - gdk_draw_image( bitmap.GetMask()->GetBitmap(), mask_gc, mask_image, 0, 0, 0, 0, width, height ); - - gdk_image_destroy( mask_image ); - gdk_gc_unref( mask_gc ); - } - */ - - return bitmap; -} - -wxImage::wxImage( const wxBitmap &bitmap ) -{ - wxCHECK_RET( bitmap.Ok(), _T("invalid bitmap") ); - - Display *dpy = (Display*) wxGetDisplay(); - Visual* vis = DefaultVisual( dpy, DefaultScreen( dpy ) ); - int bpp = DefaultDepth( dpy, DefaultScreen( dpy ) ); - - XImage *ximage = XGetImage( dpy, - (Drawable)bitmap.GetPixmap(), - 0, 0, - bitmap.GetWidth(), bitmap.GetHeight(), - AllPlanes, ZPixmap ); - - wxCHECK_RET( ximage, _T("couldn't create image") ); - - Create( bitmap.GetWidth(), bitmap.GetHeight() ); - char unsigned *data = GetData(); - - if (!data) - { - XDestroyImage( ximage ); - wxFAIL_MSG( _T("couldn't create image") ); - return; - } - - /* - GdkImage *gdk_image_mask = (GdkImage*) NULL; - if (bitmap.GetMask()) - { - gdk_image_mask = gdk_image_get( bitmap.GetMask()->GetBitmap(), - 0, 0, - bitmap.GetWidth(), bitmap.GetHeight() ); - - SetMaskColour( 16, 16, 16 ); // anything unlikely and dividable - } - */ - - // Retrieve depth info - - XVisualInfo vinfo_template; - XVisualInfo *vi; - - vinfo_template.visual = vis; - vinfo_template.visualid = XVisualIDFromVisual( vis ); - vinfo_template.depth = bpp; - int nitem = 0; - - vi = XGetVisualInfo( dpy, VisualIDMask|VisualDepthMask, &vinfo_template, &nitem ); - - wxCHECK_MSG( vi, wxNullBitmap, _T("no visual") ); - - if ((bpp == 16) && (vi->red_mask != 0xf800)) bpp = 15; - - XFree( vi ); - - XColor colors[256]; - if (bpp == 8) - { - Colormap cmap = (Colormap)wxTheApp->GetMainColormap( dpy ); - - for (int i = 0; i < 256; i++) colors[i].pixel = i; - XQueryColors( dpy, cmap, colors, 256 ); - } - - long pos = 0; - for (int j = 0; j < bitmap.GetHeight(); j++) - { - for (int i = 0; i < bitmap.GetWidth(); i++) - { - int pixel = XGetPixel( ximage, i, j ); - if (bpp <= 8) - { - data[pos] = colors[pixel].red >> 8; - data[pos+1] = colors[pixel].green >> 8; - data[pos+2] = colors[pixel].blue >> 8; - } else if (bpp == 15) - { - data[pos] = (pixel >> 7) & 0xf8; - data[pos+1] = (pixel >> 2) & 0xf8; - data[pos+2] = (pixel << 3) & 0xf8; - } else if (bpp == 16) - { - data[pos] = (pixel >> 8) & 0xf8; - data[pos+1] = (pixel >> 3) & 0xfc; - data[pos+2] = (pixel << 3) & 0xf8; - } else - { - data[pos] = (pixel >> 16) & 0xff; - data[pos+1] = (pixel >> 8) & 0xff; - data[pos+2] = pixel & 0xff; - } - - /* - if (gdk_image_mask) - { - int mask_pixel = gdk_image_get_pixel( gdk_image_mask, i, j ); - if (mask_pixel == 0) - { - data[pos] = 16; - data[pos+1] = 16; - data[pos+2] = 16; - } - } - */ - - pos += 3; - } - } - - XDestroyImage( ximage ); - /* - if (gdk_image_mask) gdk_image_destroy( gdk_image_mask ); - */ -} -#endif - -// A module to allow wxImage initialization/cleanup -// without calling these functions from app.cpp or from -// the user's application. - -class wxImageModule: public wxModule -{ -DECLARE_DYNAMIC_CLASS(wxImageModule) -public: - wxImageModule() {} - bool OnInit() { wxImage::InitStandardHandlers(); return TRUE; }; - void OnExit() { wxImage::CleanUpHandlers(); }; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxImageModule, wxModule) diff --git a/src/common/imaggif.cpp b/src/common/imaggif.cpp deleted file mode 100644 index 596c9932d5..0000000000 --- a/src/common/imaggif.cpp +++ /dev/null @@ -1,427 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaggif.cpp -// Purpose: wxGIFHandler -// Author: Guillermo Rodriguez Garcia -// wxWindows adaptation by Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "imaggif.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include - -#include -#include -#include - -#include - -/* - -FOLLOWING CODE IS BY G.R.G. : -(except wxInputStream stuff) - -*/ - -/************************************************************************ - READGIF.H - Reads a GIF file - ------------------------------------------------------------------------ - Guillermo Rodriguez Garcia - - - Version: 2.1 -*************************************************************************/ - - -typedef struct -{ - int w; /* width */ - int h; /* height */ - int transparent; /* transparent color (-1 = none) */ - unsigned char *p; /* bitmap */ - unsigned char *pal; /* palette */ -} IMAGEN; - - - -/************************************************************************ - READGIF.C - Reads a GIF file - ------------------------------------------------------------------------ - Guillermo Rodriguez Garcia - - - Version: 2.1 -*************************************************************************/ - - -#include -#include - - -/* error codes */ -#define E_OK 0 /* everything was OK */ -#define E_ARCHIVO -1 /* error opening file */ -#define E_FORMATO -2 /* error in gif header */ -#define E_MEMORIA -3 /* error allocating memory */ - - -/* This class binding is by VS, so all bugs in it are mine ;-) */ - -class gifDecoder -{ - private: - /* globals */ - int restbits; /* remaining valid bits */ - unsigned int restbyte; /* remaining bytes in this block */ - unsigned int lastbyte; /* last byte read */ - - wxInputStream *f; /* input file */ - - public: - gifDecoder(wxInputStream *s) { f = s; } - int getcode(int bits); - int dgif(IMAGEN *img, int interl, int bits); - int readgif(IMAGEN *img); -}; - - - -/* getcode: - * Reads the next code from the file, with size 'bits' - */ -int gifDecoder::getcode(int bits) -{ - unsigned int mask; /* bit mask */ - unsigned int code; /* code (result) */ - - - /* get remaining bits from last byte read */ - mask = (1 << bits) - 1; - code = (lastbyte >> (8 - restbits)) & mask; - - /* keep reading new bytes while needed */ - while (bits > restbits) - { - /* if no bytes left in this block, read the next block */ - if (restbyte == 0) - restbyte = (unsigned char)f->GetC(); - - /* read next byte and isolate the bits we need */ - lastbyte = (unsigned char)f->GetC(); - mask = (1 << (bits - restbits)) - 1; - code = code + ((lastbyte & mask) << restbits); - restbyte--; - - /* adjust total number of bits extracted from the buffer */ - restbits = restbits + 8; - } - - /* find number of bits reamining for next code */ - restbits = (restbits - bits); - - return code; -} - - - -/* dgif: - * GIF decoding function. The initial code size (aka root size) - * is 'bits'. Supports interlaced images (interl == 1). - */ -int gifDecoder::dgif(IMAGEN *img, int interl, int bits) -{ - int ab_prefix[4096]; /* alphabet (prefixes) */ - int ab_tail[4096]; /* alphabet (tails) */ - int stack[4096]; /* decompression stack */ - - int ab_clr; /* clear code */ - int ab_fin; /* end of info code */ - int ab_bits; /* actual symbol width, in bits */ - int ab_free; /* first free position in alphabet */ - int ab_max; /* last possible character in alphabet */ - int pass; /* pass number in interlaced images */ - int pos; /* index into decompresion stack */ - int x, y; /* position in image buffer */ - - int code, readcode, lastcode, abcabca; - - /* these won't change */ - ab_clr = (1 << bits); - ab_fin = (1 << bits) + 1; - - /* these will change through the decompression proccess */ - ab_bits = bits + 1; - ab_free = (1 << bits) + 2; - ab_max = (1 << ab_bits) - 1; - lastcode = -1; - abcabca = -1; - pass = 1; - pos = x = y = 0; - - /* reset static globals */ - restbits = 0; - restbyte = 0; - lastbyte = 0; - - do - { - /* get next code */ - readcode = code = getcode(ab_bits); - - /* end of image? */ - if (code == ab_fin) break; - - /* reset alphabet? */ - if (code == ab_clr) - { - /* reset main variables */ - ab_bits = bits + 1; - ab_free = (1 << bits) + 2; - ab_max = (1 << ab_bits) - 1; - lastcode = -1; - abcabca = -1; - - /* skip to next code */ - continue; - } - - /* unknown code: special case (like in ABCABCA) */ - if (code >= ab_free) - { - code = lastcode; /* take last string */ - stack[pos++] = abcabca; /* add first character */ - } - - /* build the string for this code in the stack */ - while (code > ab_clr) - { - stack[pos++] = ab_tail[code]; - code = ab_prefix[code]; - } - stack[pos] = code; /* push last code into the stack */ - abcabca = code; /* save for special case */ - - /* make new entry in alphabet (only if NOT just cleared) */ - if (lastcode != -1) - { - ab_prefix[ab_free] = lastcode; - ab_tail[ab_free] = code; - ab_free++; - - if ((ab_free > ab_max) && (ab_bits < 12)) - { - ab_bits++; - ab_max = (1 << ab_bits) - 1; - } - } - - /* dump stack data to the buffer */ - while (pos >= 0) - { - (img->p)[x + (y * (img->w))] = (char)stack[pos--]; - - if (++x >= (img->w)) - { - x = 0; - - if (interl) - { - /* support for interlaced images */ - switch (pass) - { - case 1: y += 8; break; - case 2: y += 8; break; - case 3: y += 4; break; - case 4: y += 2; break; - } - if (y >= (img->h)) - { - switch (++pass) - { - case 2: y = 4; break; - case 3: y = 2; break; - case 4: y = 1; break; - } - } - } - else - { - /* non-interlaced */ - y++; - } - } - } - - pos = 0; - lastcode = readcode; - } - while (code != ab_fin); - - return 0; -} - - - -/* readgif: - * Reads a GIF image from the file with filename 'nombre' in the - * IMAGEN structure pointed by 'img'. Can read GIFs with any bit - * size (color depth), but the output image is always expanded - * to 8 bits per pixel. Also, the image palette always contains - * 256 colors, although some of them may be unused. Returns E_OK - * (== 0) on success, or an error code if something fails. Error - * codes are E_ARCHIVO, E_FORMATO, E_MEMORIA (see above). - */ -int gifDecoder::readgif(IMAGEN *img) -{ - int size, ncolors, bits, interl, i; - unsigned char pal[768]; - unsigned char buf[16]; - - - /* read header and logical screen descriptor block (LSDB) */ - f->Read(buf, 13); - - /* check GIF signature */ - if (memcmp(buf, "GIF", 3) != 0) return E_FORMATO; - - /* load global color map if available */ - if ((buf[10] & 0x80) == 0x80) - { - ncolors = 2 << (buf[10] & 0x07); - f->Read(pal, 3 * ncolors); - } - - /* assume no transparent color */ - img->transparent = -1; - - /* skip most extensions */ - while (((unsigned char)f->GetC()) == 0x21) /* separator */ - { - if (((unsigned char)f->GetC()) == 0xF9) /* graphic control ext. */ - { - f->Read(buf, 6); - if (buf[1] & 0x01) - img->transparent = buf[4]; - } - else - while ((i = (unsigned char)f->GetC()) != 0) /* byte count */ - f->SeekI(i, wxFromCurrent); - } - - /* read image descriptor block (IDB) */ - f->Read(buf, 9); - img->w = buf[4] + 256 * buf[5]; - img->h = buf[6] + 256 * buf[7]; - size = img->w * img->h; - interl = ((buf[8] & 0x40)? 1 : 0); - - /* load local color map if available */ - if ((buf[8] & 0x80) == 0x80) - { - ncolors = 2 << (buf[8] & 0x07); - f->Read(pal, 3 * ncolors); - } - - /* get initial code size from first byte in raster data */ - bits = (unsigned char)f->GetC(); - - /* allocate memory for image and palette */ - if ((img->p = (unsigned char*) malloc(size)) == NULL) return E_MEMORIA; - if ((img->pal = (unsigned char*) malloc(768)) == NULL) return E_MEMORIA; - - /* shift palette to fit VGA 6-bit format */ - for (i = 0; i < 768; i++) - (img->pal)[i] = (unsigned char)pal[i]; /* >> 2 not in wxWin */ - - /* decode GIF */ - dgif(img, interl, bits); - - /* finish successfully :-) */ - return E_OK; -} - - - -/* - -FOLLOWING CODE IS BY V.S. : - -*/ - -//----------------------------------------------------------------------------- -// wxGIFHandler -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxGIFHandler,wxImageHandler) - -bool wxGIFHandler::LoadFile( wxImage *image, wxInputStream& stream ) -{ - unsigned char *ptr, *src, *pal; - IMAGEN igif; - int i; - gifDecoder *decod; - - image->Destroy(); - - decod = new gifDecoder(&stream); - - if (decod->readgif(&igif) != E_OK) { - wxLogDebug(_T("Error reading GIF")); - delete decod; - return FALSE; - } - delete decod; - - image->Create(igif.w, igif.h); - if (!image->Ok()) { - free(igif.pal); - free(igif.p); - return FALSE; - } - - ptr = image->GetData(); - src = igif.p; - pal = igif.pal; - - if (igif.transparent != -1) { - for (i = 0; i < 256; i++) - if ((pal[3 * i + 0] == 255) && (pal[3 * i + 1] == 0) && (pal[3 * i + 2] == 255)) pal[3 * i + 2] = 254; - pal[3 * (igif.transparent) + 0] = 255, - pal[3 * (igif.transparent) + 1] = 0, - pal[3 * (igif.transparent) + 2] = 255; - image->SetMaskColour(255, 0, 255); - } - else image->SetMask(FALSE); - - for (i = 0; i < igif.w * igif.h; i++, src++) { - *(ptr++) = pal[3 * (*src) + 0]; - *(ptr++) = pal[3 * (*src) + 1]; - *(ptr++) = pal[3 * (*src) + 2]; - } - - free(igif.pal); - free(igif.p); - return TRUE; -} - -bool wxGIFHandler::SaveFile( wxImage * WXUNUSED(image), - wxOutputStream& WXUNUSED(stream) ) -{ - wxLogDebug(_T("wxGIFHandler is read-only!!")); - return FALSE; -} - - - - - - diff --git a/src/common/imagjpeg.cpp b/src/common/imagjpeg.cpp deleted file mode 100644 index 07bc8934cb..0000000000 --- a/src/common/imagjpeg.cpp +++ /dev/null @@ -1,324 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imagjpeg.cpp -// Purpose: wxImage JPEG handler -// Author: Vaclav Slavik -// RCS-ID: $Id$ -// Copyright: (c) Vaclav Slavik -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - We don't put pragma implement in this file because it is already present in - src/common/image.cpp - -#ifdef __GNUG__ -#pragma implementation "image.h" -#endif -*/ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/image.h" -#include "wx/bitmap.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/app.h" -#if wxUSE_LIBJPEG -extern "C" { -#include "../jpeg/jpeglib.h" -} -#endif -#include "wx/filefn.h" -#include "wx/wfstream.h" -#include "wx/intl.h" -#include "wx/module.h" - -// For memcpy -#include -// For JPEG library error handling -#include - -#ifdef __SALFORDC__ -#ifdef FAR -#undef FAR -#endif -#endif - -#ifdef __WXMSW__ -#include -#endif - -//----------------------------------------------------------------------------- -// wxJPEGHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBJPEG - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxJPEGHandler,wxImageHandler) -#endif - -#if wxUSE_STREAMS - - -//------------- JPEG Data Source Manager - -typedef struct { - struct jpeg_source_mgr pub; /* public fields */ - - JOCTET* buffer; /* start of buffer */ -} my_source_mgr; - -typedef my_source_mgr * my_src_ptr; - -METHODDEF(void) my_init_source ( j_decompress_ptr WXUNUSED(cinfo) ) -{ -} - -METHODDEF(boolean) my_fill_input_buffer ( j_decompress_ptr WXUNUSED(cinfo) ) -{ - return TRUE; -} - -METHODDEF(void) my_skip_input_data ( j_decompress_ptr cinfo, long num_bytes ) -{ - my_src_ptr src = (my_src_ptr) cinfo->src; - - src->pub.next_input_byte += (size_t) num_bytes; - src->pub.bytes_in_buffer -= (size_t) num_bytes; -} - -METHODDEF(void) my_term_source ( j_decompress_ptr cinfo ) -{ - my_src_ptr src = (my_src_ptr) cinfo->src; - - free (src->buffer); -} - -void jpeg_wxio_src( j_decompress_ptr cinfo, wxInputStream& infile ) -{ - my_src_ptr src; - - if (cinfo->src == NULL) { /* first time for this JPEG object? */ - cinfo->src = (struct jpeg_source_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - sizeof(my_source_mgr)); - src = (my_src_ptr) cinfo->src; - } - src = (my_src_ptr) cinfo->src; - src->pub.bytes_in_buffer = infile.StreamSize(); /* forces fill_input_buffer on first read */ - src->buffer = (JOCTET *) malloc (infile.StreamSize()); - src->pub.next_input_byte = src->buffer; /* until buffer loaded */ - infile.Read(src->buffer, infile.StreamSize()); - - src->pub.init_source = my_init_source; - src->pub.fill_input_buffer = my_fill_input_buffer; - src->pub.skip_input_data = my_skip_input_data; - src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ - src->pub.term_source = my_term_source; -} - - -// JPEG error manager: - -struct my_error_mgr { - struct jpeg_error_mgr pub; /* "public" fields */ - - jmp_buf setjmp_buffer; /* for return to caller */ -}; - -typedef struct my_error_mgr * my_error_ptr; - -/* - * Here's the routine that will replace the standard error_exit method: - */ - -METHODDEF(void) -my_error_exit (j_common_ptr cinfo) -{ - /* cinfo->err really points to a my_error_mgr struct, so coerce pointer */ - my_error_ptr myerr = (my_error_ptr) cinfo->err; - - /* Always display the message. */ - /* We could postpone this until after returning, if we chose. */ - (*cinfo->err->output_message) (cinfo); - - /* Return control to the setjmp point */ - longjmp(myerr->setjmp_buffer, 1); -} - - - -bool wxJPEGHandler::LoadFile( wxImage *image, wxInputStream& stream ) -{ - struct jpeg_decompress_struct cinfo; - struct my_error_mgr jerr; - JSAMPARRAY tempbuf; - unsigned char *ptr; - unsigned stride; - - image->Destroy(); - cinfo.err = jpeg_std_error( &jerr.pub ); - jerr.pub.error_exit = my_error_exit; - - /* Establish the setjmp return context for my_error_exit to use. */ - if (setjmp(jerr.setjmp_buffer)) { - /* If we get here, the JPEG code has signaled an error. - * We need to clean up the JPEG object, close the input file, and return. - */ - wxLogError(_("Couldn't load a JPEG image - probably file is corrupted.")); - jpeg_destroy_decompress(&cinfo); - if (image->Ok()) image->Destroy(); - return FALSE; - } - - jpeg_create_decompress( &cinfo ); - jpeg_wxio_src( &cinfo, stream ); - jpeg_read_header( &cinfo, TRUE ); - cinfo.out_color_space = JCS_RGB; - jpeg_start_decompress( &cinfo ); - - image->Create( cinfo.image_width, cinfo.image_height ); - if (!image->Ok()) { - jpeg_finish_decompress( &cinfo ); - jpeg_destroy_decompress( &cinfo ); - return FALSE; - } - image->SetMask( FALSE ); - ptr = image->GetData(); - stride = cinfo.output_width * 3; - tempbuf = (*cinfo.mem->alloc_sarray) - ((j_common_ptr) &cinfo, JPOOL_IMAGE, stride, 1 ); - - while ( cinfo.output_scanline < cinfo.output_height ) { - jpeg_read_scanlines( &cinfo, tempbuf, 1 ); - memcpy( ptr, tempbuf[0], stride ); - ptr += stride; - } - jpeg_finish_decompress( &cinfo ); - jpeg_destroy_decompress( &cinfo ); - return TRUE; -} - - - - - -typedef struct { - struct jpeg_destination_mgr pub; - - wxOutputStream *stream; - JOCTET * buffer; -} my_destination_mgr; - -typedef my_destination_mgr * my_dest_ptr; - -#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */ - -METHODDEF(void) init_destination (j_compress_ptr cinfo) -{ - my_dest_ptr dest = (my_dest_ptr) cinfo->dest; - - /* Allocate the output buffer --- it will be released when done with image */ - dest->buffer = (JOCTET *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - OUTPUT_BUF_SIZE * sizeof(JOCTET)); - dest->pub.next_output_byte = dest->buffer; - dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; -} - -METHODDEF(boolean) empty_output_buffer (j_compress_ptr cinfo) -{ - my_dest_ptr dest = (my_dest_ptr) cinfo->dest; - - dest->stream->Write(dest->buffer, OUTPUT_BUF_SIZE); - dest->pub.next_output_byte = dest->buffer; - dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; - return TRUE; -} - -METHODDEF(void) term_destination (j_compress_ptr cinfo) -{ - my_dest_ptr dest = (my_dest_ptr) cinfo->dest; - size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer; - /* Write any data remaining in the buffer */ - if (datacount > 0) - dest->stream->Write(dest->buffer, datacount); -} - -GLOBAL(void) jpeg_wxio_dest (j_compress_ptr cinfo, wxOutputStream& outfile) -{ - my_dest_ptr dest; - - if (cinfo->dest == NULL) { /* first time for this JPEG object? */ - cinfo->dest = (struct jpeg_destination_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - sizeof(my_destination_mgr)); - } - - dest = (my_dest_ptr) cinfo->dest; - dest->pub.init_destination = init_destination; - dest->pub.empty_output_buffer = empty_output_buffer; - dest->pub.term_destination = term_destination; - dest->stream = &outfile; -} - -bool wxJPEGHandler::SaveFile( wxImage *image, wxOutputStream& stream ) -{ - struct jpeg_compress_struct cinfo; - struct my_error_mgr jerr; - JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */ - JSAMPLE *image_buffer; - int stride; /* physical row width in image buffer */ - - cinfo.err = jpeg_std_error(&jerr.pub); - jerr.pub.error_exit = my_error_exit; - - /* Establish the setjmp return context for my_error_exit to use. */ - if (setjmp(jerr.setjmp_buffer)) { - /* If we get here, the JPEG code has signaled an error. - * We need to clean up the JPEG object, close the input file, and return. - */ - wxLogError(_("Couldn't save a JPEG image - probably file is corrupted.")); - jpeg_destroy_compress(&cinfo); - return FALSE; - } - - jpeg_create_compress(&cinfo); - jpeg_wxio_dest(&cinfo, stream); - - cinfo.image_width = image->GetWidth(); - cinfo.image_height = image->GetHeight(); - cinfo.input_components = 3; - cinfo.in_color_space = JCS_RGB; - jpeg_set_defaults(&cinfo); - jpeg_start_compress(&cinfo, TRUE); - - stride = cinfo.image_width * 3; /* JSAMPLEs per row in image_buffer */ - image_buffer = image->GetData(); - while (cinfo.next_scanline < cinfo.image_height) { - row_pointer[0] = &image_buffer[cinfo.next_scanline * stride]; - jpeg_write_scanlines( &cinfo, row_pointer, 1 ); - } - jpeg_finish_compress(&cinfo); - jpeg_destroy_compress(&cinfo); - - return TRUE; -} -#endif // wxUSE_STREAMS - -#endif - -// wxUSE_LIBJPEG - - - - - - - diff --git a/src/common/imagpng.cpp b/src/common/imagpng.cpp deleted file mode 100644 index 11655cf352..0000000000 --- a/src/common/imagpng.cpp +++ /dev/null @@ -1,323 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imagepng.cpp -// Purpose: wxImage PNG handler -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - We don't put pragma implement in this file because it is already present in - src/common/image.cpp - -#ifdef __GNUG__ -#pragma implementation "image.h" -#endif -*/ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/image.h" -#include "wx/bitmap.h" -#include "wx/debug.h" -#include "wx/log.h" -#include "wx/app.h" -#if wxUSE_LIBPNG -#include "../png/png.h" -#endif -#include "wx/filefn.h" -#include "wx/wfstream.h" -#include "wx/intl.h" -#include "wx/module.h" - -// For memcpy -#include - -#ifdef __SALFORDC__ -#ifdef FAR -#undef FAR -#endif -#endif - -#ifdef __WXMSW__ -#include -#endif - -//----------------------------------------------------------------------------- -// wxPNGHandler -//----------------------------------------------------------------------------- - -#if wxUSE_LIBPNG - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler) -#endif - - -#if wxUSE_STREAMS -static void _PNG_stream_reader( png_structp png_ptr, png_bytep data, png_size_t length ) -{ - ((wxInputStream*) png_get_io_ptr( png_ptr )) -> Read(data, length); -} - -static void _PNG_stream_writer( png_structp png_ptr, png_bytep data, png_size_t length ) -{ - ((wxOutputStream*) png_get_io_ptr( png_ptr )) -> Write(data, length); -} - -bool wxPNGHandler::LoadFile( wxImage *image, wxInputStream& stream ) -{ - // VZ: as this function uses setjmp() the only fool proof error handling - // method is to use goto (setjmp is not really C++ dtors friendly...) - - unsigned char **lines; - unsigned int i; - png_infop info_ptr = (png_infop) NULL; - - image->Destroy(); - - png_structp png_ptr = png_create_read_struct( PNG_LIBPNG_VER_STRING, - (voidp) NULL, - (png_error_ptr) NULL, - (png_error_ptr) NULL ); - if (!png_ptr) - goto error_nolines; - - info_ptr = png_create_info_struct( png_ptr ); - if (!info_ptr) - goto error_nolines; - - if (setjmp(png_ptr->jmpbuf)) - goto error_nolines; - - if (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - goto error_nolines; - - png_set_read_fn( png_ptr, &stream, _PNG_stream_reader); - - png_uint_32 width,height; - int bit_depth,color_type,interlace_type; - - png_read_info( png_ptr, info_ptr ); - png_get_IHDR( png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, &interlace_type, (int*) NULL, (int*) NULL ); - - if (color_type == PNG_COLOR_TYPE_PALETTE) - png_set_expand( png_ptr ); - - png_set_strip_16( png_ptr ); - png_set_packing( png_ptr ); - if (png_get_valid( png_ptr, info_ptr, PNG_INFO_tRNS)) - png_set_expand( png_ptr ); - png_set_filler( png_ptr, 0xff, PNG_FILLER_AFTER ); - - image->Create( width, height ); - - if (!image->Ok()) - goto error_nolines; - - lines = (unsigned char **)malloc( height * sizeof(unsigned char *) ); - if (lines == NULL) - goto error_nolines; - - for (i = 0; i < height; i++) - { - if ((lines[i] = (unsigned char *)malloc(width * (sizeof(unsigned char) * 4))) == NULL) - { - for ( unsigned int n = 0; n < i; n++ ) - free( lines[n] ); - goto error; - } - } - - // loaded successfully! - { - int transp = 0; - png_read_image( png_ptr, lines ); - png_destroy_read_struct( &png_ptr, &info_ptr, (png_infopp) NULL ); - unsigned char *ptr = image->GetData(); - if ((color_type == PNG_COLOR_TYPE_GRAY) || - (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)) - { - for (unsigned int y = 0; y < height; y++) - { - unsigned char *ptr2 = lines[y]; - for (unsigned int x = 0; x < width; x++) - { - unsigned char r = *ptr2++; - unsigned char a = *ptr2++; - if (a < 128) - { - *ptr++ = 255; - *ptr++ = 0; - *ptr++ = 255; - transp = 1; - } - else - { - *ptr++ = r; - *ptr++ = r; - *ptr++ = r; - } - } - } - } - else - { - for (unsigned int y = 0; y < height; y++) - { - unsigned char *ptr2 = lines[y]; - for (unsigned int x = 0; x < width; x++) - { - unsigned char r = *ptr2++; - unsigned char g = *ptr2++; - unsigned char b = *ptr2++; - unsigned char a = *ptr2++; - if (a < 128) - { - *ptr++ = 255; - *ptr++ = 0; - *ptr++ = 255; - transp = 1; - } - else - { - if ((r == 255) && (g == 0) && (b == 255)) r = 254; - *ptr++ = r; - *ptr++ = g; - *ptr++ = b; - } - } - } - } - - for ( unsigned int j = 0; j < height; j++ ) - free( lines[j] ); - free( lines ); - - if (transp) - { - image->SetMaskColour( 255, 0, 255 ); - } - else - { - image->SetMask( FALSE ); - } - } - - return TRUE; - - error_nolines: - lines = NULL; // called from before it was set - error: - wxLogError(_("Couldn't load a PNG image - probably file is corrupted.")); - - if ( image->Ok() ) - { - image->Destroy(); - } - - if ( lines ) - { - free( lines ); - } - - if ( png_ptr ) - { - if ( info_ptr ) - { - png_destroy_read_struct( &png_ptr, &info_ptr, (png_infopp) NULL ); - free(info_ptr); - } - else - png_destroy_read_struct( &png_ptr, (png_infopp) NULL, (png_infopp) NULL ); - } - return FALSE; -} - - -bool wxPNGHandler::SaveFile( wxImage *image, wxOutputStream& stream ) -{ - { - png_structp png_ptr = png_create_write_struct( PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); - if (!png_ptr) - { - return FALSE; - } - - png_infop info_ptr = png_create_info_struct(png_ptr); - if (info_ptr == NULL) - { - png_destroy_write_struct( &png_ptr, (png_infopp)NULL ); - return FALSE; - } - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_write_struct( &png_ptr, (png_infopp)NULL ); - return FALSE; - } - - png_set_write_fn( png_ptr, &stream, _PNG_stream_writer, NULL); - - png_set_IHDR( png_ptr, info_ptr, image->GetWidth(), image->GetHeight(), 8, - PNG_COLOR_TYPE_RGB_ALPHA, PNG_INTERLACE_NONE, - PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - - png_color_8 sig_bit; - sig_bit.red = 8; - sig_bit.green = 8; - sig_bit.blue = 8; - sig_bit.alpha = 8; - png_set_sBIT( png_ptr, info_ptr, &sig_bit ); - png_write_info( png_ptr, info_ptr ); - png_set_shift( png_ptr, &sig_bit ); - png_set_packing( png_ptr ); - - unsigned char *data = (unsigned char *)malloc( image->GetWidth()*4 ); - if (!data) - { - png_destroy_write_struct( &png_ptr, (png_infopp)NULL ); - return FALSE; - } - - for (int y = 0; y < image->GetHeight(); y++) - { - unsigned char *ptr = image->GetData() + (y * image->GetWidth() * 3); - for (int x = 0; x < image->GetWidth(); x++) - { - data[(x << 2) + 0] = *ptr++; - data[(x << 2) + 1] = *ptr++; - data[(x << 2) + 2] = *ptr++; - if ((data[(x << 2) + 0] == image->GetMaskRed()) && - (data[(x << 2) + 1] == image->GetMaskGreen()) && - (data[(x << 2) + 2] == image->GetMaskBlue())) - { - data[(x << 2) + 3] = 0; - } - else - { - data[(x << 2) + 3] = 255; - } - } - png_bytep row_ptr = data; - png_write_rows( png_ptr, &row_ptr, 1 ); - } - - free(data); - png_write_end( png_ptr, info_ptr ); - png_destroy_write_struct( &png_ptr, (png_infopp)&info_ptr ); - } - return TRUE; -} -#endif // wxUSE_STREAMS - -#endif - -// wxUSE_LIBPNG - diff --git a/src/common/intl.cpp b/src/common/intl.cpp deleted file mode 100644 index 5571f62634..0000000000 --- a/src/common/intl.cpp +++ /dev/null @@ -1,648 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: intl.cpp -// Purpose: Internationalization and localisation for wxWindows -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declaration -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "intl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// standard headers -#include -#include - -// wxWindows -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/intl.h" -#include "wx/file.h" -#include "wx/log.h" -#include "wx/utils.h" - -#include - -// ---------------------------------------------------------------------------- -// simple types -// ---------------------------------------------------------------------------- - -// this should *not* be wxChar, this type must have exactly 8 bits! -typedef unsigned char size_t8; - -#ifdef __WXMSW__ - #if defined(__WIN16__) - typedef unsigned long size_t32; - #elif defined(__WIN32__) - typedef unsigned int size_t32; - #else - // Win64 will have different type sizes - #error "Please define a 32 bit type" - #endif -#else // !Windows - // SIZEOF_XXX are defined by configure - #if defined(SIZEOF_INT) && (SIZEOF_INT == 4) - typedef unsigned int size_t32; - #elif defined(SIZEOF_LONG) && (SIZEOF_LONG == 4) - typedef unsigned long size_t32; - #else - // assume sizeof(int) == 4 - what else can we do - typedef unsigned int size_t32; - - // ... but at least check it during run time - static class IntSizeChecker - { - public: - IntSizeChecker() - { - wxASSERT_MSG( sizeof(int) == 4, - "size_t32 is incorrectly defined!" ); - } - } intsizechecker; - #endif -#endif // Win/!Win - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// magic number identifying the .mo format file -const size_t32 MSGCATALOG_MAGIC = 0x950412de; -const size_t32 MSGCATALOG_MAGIC_SW = 0xde120495; - -// extension of ".mo" files -#define MSGCATALOG_EXTENSION ".mo" - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// suppress further error messages about missing translations -// (if you don't have one catalog file, you wouldn't like to see the -// error message for each string in it, so normally it's given only -// once) -void wxSuppressTransErrors(); - -// restore the logging -void wxRestoreTransErrors(); - -// get the current state -bool wxIsLoggingTransErrors(); - -static wxLocale *wxSetLocale(wxLocale *pLocale); - -// ---------------------------------------------------------------------------- -// wxMsgCatalog corresponds to one disk-file message catalog. -// -// This is a "low-level" class and is used only by wxLocale (that's why -// it's designed to be stored in a linked list) -// ---------------------------------------------------------------------------- - -class wxMsgCatalog -{ -public: - // ctor & dtor - wxMsgCatalog(); - ~wxMsgCatalog(); - - // load the catalog from disk (szDirPrefix corresponds to language) - bool Load(const wxChar *szDirPrefix, const wxChar *szName); - bool IsLoaded() const { return m_pData != NULL; } - - // get name of the catalog - const wxChar *GetName() const { return m_pszName; } - - // get the translated string: returns NULL if not found - const char *GetString(const char *sz) const; - - // public variable pointing to the next element in a linked list (or NULL) - wxMsgCatalog *m_pNext; - -private: - // this implementation is binary compatible with GNU gettext() version 0.10 - - // an entry in the string table - struct wxMsgTableEntry - { - size_t32 nLen; // length of the string - size_t32 ofsString; // pointer to the string - }; - - // header of a .mo file - struct wxMsgCatalogHeader - { - size_t32 magic, // offset +00: magic id - revision, // +04: revision - numStrings; // +08: number of strings in the file - size_t32 ofsOrigTable, // +0C: start of original string table - ofsTransTable; // +10: start of translated string table - size_t32 nHashSize, // +14: hash table size - ofsHashTable; // +18: offset of hash table start - }; - - // all data is stored here, NULL if no data loaded - size_t8 *m_pData; - - // data description - size_t32 m_numStrings, // number of strings in this domain - m_nHashSize; // number of entries in hash table - size_t32 *m_pHashTable; // pointer to hash table - wxMsgTableEntry *m_pOrigTable, // pointer to original strings - *m_pTransTable; // translated - - const char *StringAtOfs(wxMsgTableEntry *pTable, size_t32 index) const - { return (const char *)(m_pData + Swap(pTable[index].ofsString)); } - - // utility functions - // calculate the hash value of given string - static inline size_t32 GetHash(const char *sz); - // big<->little endian - inline size_t32 Swap(size_t32 ui) const; - - // internal state - bool HasHashTable() const // true if hash table is present - { return m_nHashSize > 2 && m_pHashTable != NULL; } - - bool m_bSwapped; // wrong endianness? - - wxChar *m_pszName; // name of the domain -}; - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// the list of the directories to search for message catalog files -static wxArrayString s_searchPrefixes; - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxMsgCatalog class -// ---------------------------------------------------------------------------- - -// calculate hash value using the so called hashpjw function by P.J. Weinberger -// [see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools] -size_t32 wxMsgCatalog::GetHash(const char *sz) -{ - #define HASHWORDBITS 32 // the length of size_t32 - - size_t32 hval = 0; - size_t32 g; - while ( *sz != '\0' ) { - hval <<= 4; - hval += (size_t32)*sz++; - g = hval & ((size_t32)0xf << (HASHWORDBITS - 4)); - if ( g != 0 ) { - hval ^= g >> (HASHWORDBITS - 8); - hval ^= g; - } - } - - return hval; -} - -// swap the 2 halves of 32 bit integer if needed -size_t32 wxMsgCatalog::Swap(size_t32 ui) const -{ - return m_bSwapped ? (ui << 24) | ((ui & 0xff00) << 8) | - ((ui >> 8) & 0xff00) | (ui >> 24) - : ui; -} - -wxMsgCatalog::wxMsgCatalog() -{ - m_pData = NULL; - m_pszName = NULL; -} - -wxMsgCatalog::~wxMsgCatalog() -{ - wxDELETEA(m_pData); - wxDELETEA(m_pszName); -} - -// small class to suppress the translation erros until exit from current scope -class NoTransErr -{ -public: - NoTransErr() { wxSuppressTransErrors(); } - ~NoTransErr() { wxRestoreTransErrors(); } -}; - -// return all directories to search for given prefix -static wxString GetAllMsgCatalogSubdirs(const wxChar *prefix, - const wxChar *lang) -{ - wxString searchPath; - - // search first in prefix/fr/LC_MESSAGES, then in prefix/fr and finally in - // prefix (assuming the language is 'fr') - searchPath << prefix << wxFILE_SEP_PATH << lang << wxFILE_SEP_PATH - << _T("LC_MESSAGES") << wxPATH_SEP - << prefix << wxFILE_SEP_PATH << lang << wxPATH_SEP - << prefix << wxPATH_SEP; - - return searchPath; -} - -// construct the search path for the given language -static wxString GetFullSearchPath(const wxChar *lang) -{ - wxString searchPath; - - // first take the entries explicitly added by the program - size_t count = s_searchPrefixes.Count(); - for ( size_t n = 0; n < count; n++ ) - { - searchPath << GetAllMsgCatalogSubdirs(s_searchPrefixes[n], lang) - << wxPATH_SEP; - } - - // then take the current directory - // FIXME it should be the directory of the executable - searchPath << GetAllMsgCatalogSubdirs(_T("."), lang) << wxPATH_SEP; - - // and finally add some standard ones - searchPath - << GetAllMsgCatalogSubdirs(_T("/usr/share/locale"), lang) << wxPATH_SEP - << GetAllMsgCatalogSubdirs(_T("/usr/lib/locale"), lang) << wxPATH_SEP - << GetAllMsgCatalogSubdirs(_T("/usr/local/share/locale"), lang); - - return searchPath; -} - -// open disk file and read in it's contents -bool wxMsgCatalog::Load(const wxChar *szDirPrefix, const wxChar *szName) -{ - // FIXME VZ: I forgot the exact meaning of LC_PATH - anyone to remind me? -#if 0 - const wxChar *pszLcPath = wxGetenv("LC_PATH"); - if ( pszLcPath != NULL ) - strPath += pszLcPath + wxString(szDirPrefix) + MSG_PATH; -#endif // 0 - - wxString searchPath = GetFullSearchPath(szDirPrefix); - const wxChar *sublocale = wxStrchr(szDirPrefix, _T('_')); - if ( sublocale ) - { - // also add just base locale name: for things like "fr_BE" (belgium - // french) we should use "fr" if no belgium specific message catalogs - // exist - searchPath << GetFullSearchPath(wxString(szDirPrefix). - Left((size_t)(sublocale - szDirPrefix))) - << wxPATH_SEP; - } - - wxString strFile = szName; - strFile += MSGCATALOG_EXTENSION; - - // don't give translation errors here because the wxstd catalog might - // not yet be loaded (and it's normal) - // - // (we're using an object because we have several return paths) - NoTransErr noTransErr; - - wxLogVerbose(_("looking for catalog '%s' in path '%s'."), - szName, searchPath.c_str()); - - wxString strFullName; - if ( !wxFindFileInPath(&strFullName, searchPath, strFile) ) { - wxLogWarning(_("catalog file for domain '%s' not found."), szName); - return FALSE; - } - - // open file - wxLogVerbose(_("using catalog '%s' from '%s'."), - szName, strFullName.c_str()); - - wxFile fileMsg(strFullName); - if ( !fileMsg.IsOpened() ) - return FALSE; - - // get the file size - off_t nSize = fileMsg.Length(); - if ( nSize == wxInvalidOffset ) - return FALSE; - - // read the whole file in memory - m_pData = new size_t8[nSize]; - if ( fileMsg.Read(m_pData, nSize) != nSize ) { - wxDELETEA(m_pData); - return FALSE; - } - - // examine header - bool bValid = (size_t)nSize > sizeof(wxMsgCatalogHeader); - - wxMsgCatalogHeader *pHeader = (wxMsgCatalogHeader *)m_pData; - if ( bValid ) { - // we'll have to swap all the integers if it's true - m_bSwapped = pHeader->magic == MSGCATALOG_MAGIC_SW; - - // check the magic number - bValid = m_bSwapped || pHeader->magic == MSGCATALOG_MAGIC; - } - - if ( !bValid ) { - // it's either too short or has incorrect magic number - wxLogWarning(_("'%s' is not a valid message catalog."), strFullName.c_str()); - - wxDELETEA(m_pData); - return FALSE; - } - - // initialize - m_numStrings = Swap(pHeader->numStrings); - m_pOrigTable = (wxMsgTableEntry *)(m_pData + - Swap(pHeader->ofsOrigTable)); - m_pTransTable = (wxMsgTableEntry *)(m_pData + - Swap(pHeader->ofsTransTable)); - - m_nHashSize = Swap(pHeader->nHashSize); - m_pHashTable = (size_t32 *)(m_pData + Swap(pHeader->ofsHashTable)); - - m_pszName = new wxChar[wxStrlen(szName) + 1]; - wxStrcpy(m_pszName, szName); - - // everything is fine - return TRUE; -} - -// search for a string -const char *wxMsgCatalog::GetString(const char *szOrig) const -{ - if ( szOrig == NULL ) - return NULL; - - if ( HasHashTable() ) { // use hash table for lookup if possible - size_t32 nHashVal = GetHash(szOrig); - size_t32 nIndex = nHashVal % m_nHashSize; - - size_t32 nIncr = 1 + (nHashVal % (m_nHashSize - 2)); - - while ( TRUE ) { - size_t32 nStr = Swap(m_pHashTable[nIndex]); - if ( nStr == 0 ) - return NULL; - - if ( strcmp(szOrig, StringAtOfs(m_pOrigTable, nStr - 1)) == 0 ) - return StringAtOfs(m_pTransTable, nStr - 1); - - if ( nIndex >= m_nHashSize - nIncr) - nIndex -= m_nHashSize - nIncr; - else - nIndex += nIncr; - } - } - else { // no hash table: use default binary search - size_t32 bottom = 0, - top = m_numStrings, - current; - while ( bottom < top ) { - current = (bottom + top) / 2; - int res = strcmp(szOrig, StringAtOfs(m_pOrigTable, current)); - if ( res < 0 ) - top = current; - else if ( res > 0 ) - bottom = current + 1; - else // found! - return StringAtOfs(m_pTransTable, current); - } - } - - // not found - return NULL; -} - -// ---------------------------------------------------------------------------- -// wxLocale -// ---------------------------------------------------------------------------- - -wxLocale::wxLocale() -{ - m_pszOldLocale = NULL; - m_pMsgCat = NULL; -} - -// NB: this function has (desired) side effect of changing current locale -bool wxLocale::Init(const wxChar *szName, - const wxChar *szShort, - const wxChar *szLocale, - bool bLoadDefault) -{ - m_strLocale = szName; - m_strShort = szShort; - - // change current locale (default: same as long name) - if ( szLocale == NULL ) - szLocale = szName; - m_pszOldLocale = wxSetlocale(LC_ALL, szLocale); - if ( m_pszOldLocale == NULL ) - wxLogError(_("locale '%s' can not be set."), szLocale); - - // the short name will be used to look for catalog files as well, - // so we need something here - if ( m_strShort.IsEmpty() ) { - // FIXME I don't know how these 2 letter abbreviations are formed, - // this wild guess is surely wrong - m_strShort = tolower(szLocale[0]) + tolower(szLocale[1]); - } - - // save the old locale to be able to restore it later - m_pOldLocale = wxSetLocale(this); - - // load the default catalog with wxWindows standard messages - m_pMsgCat = NULL; - bool bOk = TRUE; - if ( bLoadDefault ) - bOk = AddCatalog(_T("wxstd")); - - return bOk; -} - -void wxLocale::AddCatalogLookupPathPrefix(const wxString& prefix) -{ - if ( s_searchPrefixes.Index(prefix) == wxNOT_FOUND ) - { - s_searchPrefixes.Add(prefix); - } - //else: already have it -} - -// clean up -wxLocale::~wxLocale() -{ - // free memory - wxMsgCatalog *pTmpCat; - while ( m_pMsgCat != NULL ) { - pTmpCat = m_pMsgCat; - m_pMsgCat = m_pMsgCat->m_pNext; - delete pTmpCat; - } - - // restore old locale - wxSetLocale(m_pOldLocale); - wxSetlocale(LC_ALL, m_pszOldLocale); -} - -// get the translation of given string in current locale -const wxMB2WXbuf wxLocale::GetString(const wxChar *szOrigString, - const wxChar *szDomain) const -{ - if ( wxIsEmpty(szOrigString) ) - return szDomain; - - const char *pszTrans = NULL; - const wxWX2MBbuf szOrgString = wxConv_libc.cWX2MB(szOrigString); - - wxMsgCatalog *pMsgCat; - if ( szDomain != NULL ) { - pMsgCat = FindCatalog(szDomain); - - // does the catalog exist? - if ( pMsgCat != NULL ) - pszTrans = pMsgCat->GetString(szOrgString); - } - else { - // search in all domains - for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext ) { - pszTrans = pMsgCat->GetString(szOrgString); - if ( pszTrans != NULL ) // take the first found - break; - } - } - - if ( pszTrans == NULL ) { - if ( wxIsLoggingTransErrors() ) { - // suppress further error messages if we're not debugging: this avoids - // flooding the user with messages about each and every missing string if, - // for example, a whole catalog file is missing. - - // do it before calling LogWarning to prevent infinite recursion! -#ifdef __WXDEBUG__ - NoTransErr noTransErr; -#else // !debug - wxSuppressTransErrors(); -#endif // debug/!debug - - if ( szDomain != NULL ) - { - wxLogWarning(_("string '%s' not found in domain '%s' for locale '%s'."), - szOrigString, szDomain, m_strLocale.c_str()); - } - else - { - wxLogWarning(_("string '%s' not found in locale '%s'."), - szOrigString, m_strLocale.c_str()); - } - } - - return (wxMB2WXbuf)(szOrigString); - } - else - return (wxMB2WXbuf)(wxConv_libc.cMB2WX(pszTrans)); -} - -// find catalog by name in a linked list, return NULL if !found -wxMsgCatalog *wxLocale::FindCatalog(const wxChar *szDomain) const -{ -// linear search in the linked list - wxMsgCatalog *pMsgCat; - for ( pMsgCat = m_pMsgCat; pMsgCat != NULL; pMsgCat = pMsgCat->m_pNext ) { - if ( wxStricmp(pMsgCat->GetName(), szDomain) == 0 ) - return pMsgCat; - } - - return NULL; -} - -// check if the given catalog is loaded -bool wxLocale::IsLoaded(const wxChar *szDomain) const -{ - return FindCatalog(szDomain) != NULL; -} - -// add a catalog to our linked list -bool wxLocale::AddCatalog(const wxChar *szDomain) -{ - wxMsgCatalog *pMsgCat = new wxMsgCatalog; - - if ( pMsgCat->Load(m_strShort, szDomain) ) { - // add it to the head of the list so that in GetString it will - // be searched before the catalogs added earlier - pMsgCat->m_pNext = m_pMsgCat; - m_pMsgCat = pMsgCat; - - return TRUE; - } - else { - // don't add it because it couldn't be loaded anyway - delete pMsgCat; - - return FALSE; - } -} - -// ---------------------------------------------------------------------------- -// global functions and variables -// ---------------------------------------------------------------------------- - -// translation errors logging -// -------------------------- - -static bool gs_bGiveTransErrors = TRUE; - -void wxSuppressTransErrors() -{ - gs_bGiveTransErrors = FALSE; -} - -void wxRestoreTransErrors() -{ - gs_bGiveTransErrors = TRUE; -} - -bool wxIsLoggingTransErrors() -{ - return gs_bGiveTransErrors; -} - -// retrieve/change current locale -// ------------------------------ - -// the current locale object -static wxLocale *g_pLocale = NULL; - -wxLocale *wxGetLocale() -{ - return g_pLocale; -} - -wxLocale *wxSetLocale(wxLocale *pLocale) -{ - wxLocale *pOld = g_pLocale; - g_pLocale = pLocale; - return pOld; -} diff --git a/src/common/ipcbase.cpp b/src/common/ipcbase.cpp deleted file mode 100644 index 717eb20c60..0000000000 --- a/src/common/ipcbase.cpp +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ipcbase.cpp -// Purpose: IPC base classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "ipcbase.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#include "wx/ipcbase.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxServerBase, wxObject) -IMPLEMENT_CLASS(wxClientBase, wxObject) -IMPLEMENT_CLASS(wxConnectionBase, wxObject) -#endif - - diff --git a/src/common/layout.cpp b/src/common/layout.cpp deleted file mode 100644 index 441a1217c0..0000000000 --- a/src/common/layout.cpp +++ /dev/null @@ -1,1764 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: layout.cpp -// Purpose: Constraint layout system classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================= -// declarations -// ============================================================================= - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "layout.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/defs.h" - -#ifndef WX_PRECOMP - #include "wx/window.h" - #include "wx/utils.h" - #include "wx/dialog.h" - #include "wx/msgdlg.h" - #include "wx/intl.h" -#endif - -#include "wx/layout.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxIndividualLayoutConstraint, wxObject) - IMPLEMENT_DYNAMIC_CLASS(wxLayoutConstraints, wxObject) - IMPLEMENT_DYNAMIC_CLASS(wxSizer, wxObject) - IMPLEMENT_DYNAMIC_CLASS(wxRowColSizer, wxSizer) - IMPLEMENT_DYNAMIC_CLASS(wxSpacingSizer, wxSizer) -#endif - -/* -TODO: - - Non shrink-to-fit row-col behaviour. - - Give justification styles, so can e.g. centre - the rows & cols, distribute the available space... - - Shrink-to-fit: should resize outer window (e.g. dialog box) - if directly associated with this kind of window. - - How to deal with a rowcol that stretches in one direction - but shrinks-to-fit in other. E.g. a horizontal toolbar: the width - stretches to fit the frame, but the height is constant - or wraps around contents. The algorithm currently assumes - both dimensions have the same behaviour. Could assume a constant - height (absolute value). - - rowcol where each row or column is aligned (length of - largest element determines spacing) - - Groupbox sizer - - Analyze aesthetic dialog boxes and implement using sizers. - - What reuseable components can we provide? E.g. Ok/Cancel/Help - group of buttons. - - use wxStaticItems for aesthetic dialogs. - -*/ - -// Find margin sizes if a sizer, or zero otherwise -int wxSizerMarginX(wxWindowBase *win) -{ - if ( win->IsKindOf(CLASSINFO(wxSizer)) ) - { - wxSizer *sizer = (wxSizer *)win; - return sizer->GetBorderX(); - } - else - return 0; -} - -int wxSizerMarginY(wxWindowBase *win) -{ - if ( win->IsKindOf(CLASSINFO(wxSizer)) ) - { - wxSizer *sizer = (wxSizer *)win; - return sizer->GetBorderY(); - } - else - return 0; -} - - -wxIndividualLayoutConstraint::wxIndividualLayoutConstraint() -{ - myEdge = wxTop; - relationship = wxUnconstrained; - margin = 0; - value = 0; - percent = 0; - otherEdge = wxTop; - done = FALSE; - otherWin = (wxWindowBase *) NULL; -} - -wxIndividualLayoutConstraint::~wxIndividualLayoutConstraint() -{ -} - -void wxIndividualLayoutConstraint::Set(wxRelationship rel, wxWindowBase *otherW, wxEdge otherE, int val, int marg) -{ - relationship = rel; - otherWin = otherW; - otherEdge = otherE; - value = val; - margin = marg; -} - -void wxIndividualLayoutConstraint::LeftOf(wxWindowBase *sibling, int marg) -{ - Set(wxLeftOf, sibling, wxLeft, 0, marg); -} - -void wxIndividualLayoutConstraint::RightOf(wxWindowBase *sibling, int marg) -{ - Set(wxRightOf, sibling, wxRight, 0, marg); -} - -void wxIndividualLayoutConstraint::Above(wxWindowBase *sibling, int marg) -{ - Set(wxAbove, sibling, wxTop, 0, marg); -} - -void wxIndividualLayoutConstraint::Below(wxWindowBase *sibling, int marg) -{ - Set(wxBelow, sibling, wxBottom, 0, marg); -} - -// -// 'Same edge' alignment -// -void wxIndividualLayoutConstraint::SameAs(wxWindowBase *otherW, wxEdge edge, int marg) -{ - Set(wxPercentOf, otherW, edge, 0, marg); - percent = 100; -} - -// The edge is a percentage of the other window's edge -void wxIndividualLayoutConstraint::PercentOf(wxWindowBase *otherW, wxEdge wh, int per) -{ - otherWin = otherW; - relationship = wxPercentOf; - percent = per; - - otherEdge = wh; -} - -// -// Edge has absolute value -// -void wxIndividualLayoutConstraint::Absolute(int val) -{ - value = val; relationship = wxAbsolute; -} - -// Reset constraint if it mentions otherWin -bool wxIndividualLayoutConstraint::ResetIfWin(wxWindowBase *otherW) -{ - if (otherW == otherWin) - { - myEdge = wxTop; - relationship = wxAsIs; - margin = 0; - value = 0; - percent = 0; - otherEdge = wxTop; - otherWin = (wxWindowBase *) NULL; - return TRUE; - } - else - return FALSE; -} - -// Try to satisfy constraint -bool wxIndividualLayoutConstraint::SatisfyConstraint(wxLayoutConstraints *constraints, wxWindowBase *win) -{ - if (relationship == wxAbsolute) - { - done = TRUE; - return TRUE; - } - - switch (myEdge) - { - case wxLeft: - { - switch (relationship) - { - case wxLeftOf: - { - // We can know this edge if: otherWin is win's - // parent, or otherWin has a satisfied constraint, - // or otherWin has no constraint. - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos - margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxRightOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos + margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxUnconstrained: - { - // We know the left-hand edge position if we know - // the right-hand edge and we know the width; OR if - // we know the centre and the width. - if (constraints->right.GetDone() && constraints->width.GetDone()) - { - value = (constraints->right.GetValue() - constraints->width.GetValue() + margin); - done = TRUE; - return TRUE; - } - else if (constraints->centreX.GetDone() && constraints->width.GetDone()) - { - value = (int)(constraints->centreX.GetValue() - (constraints->width.GetValue()/2) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxAsIs: - { - int y; - win->GetPosition(&value, &y); - done = TRUE; - return TRUE; - } - default: - break; - } - break; - } - case wxRight: - { - switch (relationship) - { - case wxLeftOf: - { - // We can know this edge if: otherWin is win's - // parent, or otherWin has a satisfied constraint, - // or otherWin has no constraint. - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos - margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxRightOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos + margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01) - margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxUnconstrained: - { - // We know the right-hand edge position if we know the - // left-hand edge and we know the width, OR if we know the - // centre edge and the width. - if (constraints->left.GetDone() && constraints->width.GetDone()) - { - value = (constraints->left.GetValue() + constraints->width.GetValue() - margin); - done = TRUE; - return TRUE; - } - else if (constraints->centreX.GetDone() && constraints->width.GetDone()) - { - value = (int)(constraints->centreX.GetValue() + (constraints->width.GetValue()/2) - margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxAsIs: - { - int x, y; - int w, h; - win->GetSize(&w, &h); - win->GetPosition(&x, &y); - value = x + w; - done = TRUE; - return TRUE; - } - default: - break; - } - break; - } - case wxTop: - { - switch (relationship) - { - case wxAbove: - { - // We can know this edge if: otherWin is win's - // parent, or otherWin has a satisfied constraint, - // or otherWin has no constraint. - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos - margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxBelow: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos + margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxUnconstrained: - { - // We know the top edge position if we know the bottom edge - // and we know the height; OR if we know the centre edge and - // the height. - if (constraints->bottom.GetDone() && constraints->height.GetDone()) - { - value = (constraints->bottom.GetValue() - constraints->height.GetValue() + margin); - done = TRUE; - return TRUE; - } - else if (constraints->centreY.GetDone() && constraints->height.GetDone()) - { - value = (constraints->centreY.GetValue() - (constraints->height.GetValue()/2) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxAsIs: - { - int x; - win->GetPosition(&x, &value); - done = TRUE; - return TRUE; - } - default: - break; - } - break; - } - case wxBottom: - { - switch (relationship) - { - case wxAbove: - { - // We can know this edge if: otherWin is win's parent, - // or otherWin has a satisfied constraint, or - // otherWin has no constraint. - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos + margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxBelow: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos - margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01) - margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxUnconstrained: - { - // We know the bottom edge position if we know the top edge - // and we know the height; OR if we know the centre edge and - // the height. - if (constraints->top.GetDone() && constraints->height.GetDone()) - { - value = (constraints->top.GetValue() + constraints->height.GetValue() - margin); - done = TRUE; - return TRUE; - } - else if (constraints->centreY.GetDone() && constraints->height.GetDone()) - { - value = (constraints->centreY.GetValue() + (constraints->height.GetValue()/2) - margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxAsIs: - { - int x, y; - int w, h; - win->GetSize(&w, &h); - win->GetPosition(&x, &y); - value = h + y; - done = TRUE; - return TRUE; - } - default: - break; - } - break; - } - case wxCentreX: - { - switch (relationship) - { - case wxLeftOf: - { - // We can know this edge if: otherWin is win's parent, or - // otherWin has a satisfied constraint, or otherWin has no - // constraint. - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos - margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxRightOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos + margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxUnconstrained: - { - // We know the centre position if we know - // the left-hand edge and we know the width, OR - // the right-hand edge and the width - if (constraints->left.GetDone() && constraints->width.GetDone()) - { - value = (int)(constraints->left.GetValue() + (constraints->width.GetValue()/2) + margin); - done = TRUE; - return TRUE; - } - else if (constraints->right.GetDone() && constraints->width.GetDone()) - { - value = (int)(constraints->left.GetValue() - (constraints->width.GetValue()/2) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - default: - break; - } - break; - } - case wxCentreY: - { - switch (relationship) - { - case wxAbove: - { - // We can know this edge if: otherWin is win's parent, - // or otherWin has a satisfied constraint, or otherWin - // has no constraint. - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos - margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxBelow: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = edgePos + margin; - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxUnconstrained: - { - // We know the centre position if we know - // the top edge and we know the height, OR - // the bottom edge and the height. - if (constraints->bottom.GetDone() && constraints->height.GetDone()) - { - value = (int)(constraints->bottom.GetValue() - (constraints->height.GetValue()/2) + margin); - done = TRUE; - return TRUE; - } - else if (constraints->top.GetDone() && constraints->height.GetDone()) - { - value = (int)(constraints->top.GetValue() + (constraints->height.GetValue()/2) + margin); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - default: - break; - } - break; - } - case wxWidth: - { - switch (relationship) - { - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01)); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxAsIs: - { - if (win) - { - int h; - win->GetSize(&value, &h); - done = TRUE; - return TRUE; - } - else return FALSE; - } - case wxUnconstrained: - { - // We know the width if we know the left edge and the right edge, OR - // if we know the left edge and the centre, OR - // if we know the right edge and the centre - if (constraints->left.GetDone() && constraints->right.GetDone()) - { - value = constraints->right.GetValue() - constraints->left.GetValue(); - done = TRUE; - return TRUE; - } - else if (constraints->centreX.GetDone() && constraints->left.GetDone()) - { - value = (int)(2*(constraints->centreX.GetValue() - constraints->left.GetValue())); - done = TRUE; - return TRUE; - } - else if (constraints->centreX.GetDone() && constraints->right.GetDone()) - { - value = (int)(2*(constraints->right.GetValue() - constraints->centreX.GetValue())); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - default: - break; - } - break; - } - case wxHeight: - { - switch (relationship) - { - case wxPercentOf: - { - int edgePos = GetEdge(otherEdge, win, otherWin); - if (edgePos != -1) - { - value = (int)(edgePos*(((float)percent)*0.01)); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - case wxAsIs: - { - if (win) - { - int w; - win->GetSize(&w, &value); - done = TRUE; - return TRUE; - } - else return FALSE; - } - case wxUnconstrained: - { - // We know the height if we know the top edge and the bottom edge, OR - // if we know the top edge and the centre, OR - // if we know the bottom edge and the centre - if (constraints->top.GetDone() && constraints->bottom.GetDone()) - { - value = constraints->bottom.GetValue() - constraints->top.GetValue(); - done = TRUE; - return TRUE; - } - else if (constraints->top.GetDone() && constraints->centreY.GetDone()) - { - value = (int)(2*(constraints->centreY.GetValue() - constraints->top.GetValue())); - done = TRUE; - return TRUE; - } - else if (constraints->bottom.GetDone() && constraints->centreY.GetDone()) - { - value = (int)(2*(constraints->bottom.GetValue() - constraints->centreY.GetValue())); - done = TRUE; - return TRUE; - } - else - return FALSE; - } - default: - break; - } - break; - } - default: - break; - } - return FALSE; -} - -// Get the value of this edge or dimension, or if this is not determinable, -1. -int wxIndividualLayoutConstraint::GetEdge(wxEdge which, - wxWindowBase *thisWin, - wxWindowBase *other) const -{ - // If the edge or dimension belongs to the parent, then we know the - // dimension is obtainable immediately. E.g. a wxExpandSizer may contain a - // button (but the button's true parent is a panel, not the sizer) - if (other->GetChildren().Find(thisWin)) - { - switch (which) - { - case wxLeft: - { - return wxSizerMarginX(other); - } - case wxTop: - { - return wxSizerMarginY(other); - } - case wxRight: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return w - wxSizerMarginX(other); - } - case wxBottom: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return h - wxSizerMarginY(other); - } - case wxWidth: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return w - 2*wxSizerMarginX(other); - } - case wxHeight: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - return h - 2*wxSizerMarginY(other); - } - case wxCentreX: - case wxCentreY: - { - int w, h; - other->GetClientSizeConstraint(&w, &h); - if (which == wxCentreX) - return (int)(w/2); - else - return (int)(h/2); - } - default: - return -1; - } - } - switch (which) - { - case wxLeft: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->left.GetDone()) - return constr->left.GetValue(); - else - return -1; - } - else - { - int x, y; - other->GetPosition(&x, &y); - return x; - } - } - case wxTop: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->top.GetDone()) - return constr->top.GetValue(); - else - return -1; - } - else - { - int x, y; - other->GetPosition(&x, &y); - return y; - } - } - case wxRight: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->right.GetDone()) - return constr->right.GetValue(); - else - return -1; - } - else - { - int x, y, w, h; - other->GetPosition(&x, &y); - other->GetSize(&w, &h); - return (int)(x + w); - } - } - case wxBottom: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->bottom.GetDone()) - return constr->bottom.GetValue(); - else - return -1; - } - else - { - int x, y, w, h; - other->GetPosition(&x, &y); - other->GetSize(&w, &h); - return (int)(y + h); - } - } - case wxWidth: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->width.GetDone()) - return constr->width.GetValue(); - else - return -1; - } - else - { - int w, h; - other->GetSize(&w, &h); - return w; - } - } - case wxHeight: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->height.GetDone()) - return constr->height.GetValue(); - else - return -1; - } - else - { - int w, h; - other->GetSize(&w, &h); - return h; - } - } - case wxCentreX: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->centreX.GetDone()) - return constr->centreX.GetValue(); - else - return -1; - } - else - { - int x, y, w, h; - other->GetPosition(&x, &y); - other->GetSize(&w, &h); - return (int)(x + (w/2)); - } - } - case wxCentreY: - { - wxLayoutConstraints *constr = other->GetConstraints(); - // If no constraints, it means the window is not dependent - // on anything, and therefore we know its value immediately - if (constr) - { - if (constr->centreY.GetDone()) - return constr->centreY.GetValue(); - else - return -1; - } - else - { - int x, y, w, h; - other->GetPosition(&x, &y); - other->GetSize(&w, &h); - return (int)(y + (h/2)); - } - } - default: - break; - } - return -1; -} - -wxLayoutConstraints::wxLayoutConstraints() -{ - left.SetEdge(wxLeft); - top.SetEdge(wxTop); - right.SetEdge(wxRight); - bottom.SetEdge(wxBottom); - centreX.SetEdge(wxCentreX); - centreY.SetEdge(wxCentreY); - width.SetEdge(wxWidth); - height.SetEdge(wxHeight); -} - -wxLayoutConstraints::~wxLayoutConstraints() -{ -} - -bool wxLayoutConstraints::SatisfyConstraints(wxWindowBase *win, int *nChanges) -{ - int noChanges = 0; - - bool done = width.GetDone(); - bool newDone = (done ? TRUE : width.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = height.GetDone(); - newDone = (done ? TRUE : height.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = left.GetDone(); - newDone = (done ? TRUE : left.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = top.GetDone(); - newDone = (done ? TRUE : top.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = right.GetDone(); - newDone = (done ? TRUE : right.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = bottom.GetDone(); - newDone = (done ? TRUE : bottom.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = centreX.GetDone(); - newDone = (done ? TRUE : centreX.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - done = centreY.GetDone(); - newDone = (done ? TRUE : centreY.SatisfyConstraint(this, win)); - if (newDone != done) - noChanges ++; - - *nChanges = noChanges; - - return AreSatisfied(); -} - -/* - * Main constrained layout algorithm. Look at all the child - * windows, and their constraints (if any). - * The idea is to keep iterating through the constraints - * until all left, right, bottom and top edges, and widths and heights, - * are known (or no change occurs and we've failed to resolve all - * constraints). - * - * If the user has not specified a dimension or edge, it will be - * be calculated from the other known values. E.g. If we know - * the right hand edge and the left hand edge, we now know the width. - * The snag here is that this means we must specify absolute dimensions - * twice (in constructor and in constraint), if we wish to use the - * constraint notation to just set the position, for example. - * Otherwise, if we only set ONE edge and no dimension, it would never - * find the other edge. - * - * Algorithm: - - Mark all constraints as not done. - - iterations = 0; - until no change or iterations >= max iterations - For each child: - { - Calculate all constraints - } - iterations ++; - - For each child - Set each calculated position and size - - */ - -#if WXWIN_COMPATIBILITY -bool wxOldDoLayout(wxWindowBase *win) -{ - // Make sure this isn't called recursively from below - static wxList doneSoFar; - - if (doneSoFar.Member(win)) - return TRUE; - - doneSoFar.Append(win); - - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindowBase *child = (wxWindowBase *)node->Data(); - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr) - { - constr->left.SetDone(FALSE); - constr->top.SetDone(FALSE); - constr->right.SetDone(FALSE); - constr->bottom.SetDone(FALSE); - constr->width.SetDone(FALSE); - constr->height.SetDone(FALSE); - constr->centreX.SetDone(FALSE); - constr->centreY.SetDone(FALSE); - } - node = node->Next(); - } - int noIterations = 0; - int maxIterations = 500; - int noChanges = 1; - - while ((noChanges > 0) && (noIterations < maxIterations)) - { - noChanges = 0; - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindowBase *child = (wxWindowBase *)node->Data(); - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr) - { - int tempNoChanges = 0; - (void)constr->SatisfyConstraints(child, &tempNoChanges); - noChanges += tempNoChanges; - } - node = node->Next(); - } - noIterations ++; - } -/* - // Would be nice to have a test here to see _which_ constraint(s) - // failed, so we can print a specific diagnostic message. - if (noFailures > 0) - { - wxDebugMsg(_("wxWindowBase::Layout() failed.\n")); - } -*/ - // Now set the sizes and positions of the children, and - // recursively call Layout(). - node = win->GetChildren().First(); - while (node) - { - wxWindowBase *child = (wxWindowBase *)node->Data(); - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr && constr->left.GetDone() && constr->right.GetDone() && - constr->width.GetDone() && constr->height.GetDone()) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - - // If we don't want to resize this window, just move it... - if ((constr->width.GetRelationship() != wxAsIs) || - (constr->height.GetRelationship() != wxAsIs)) - { - // _Should_ call Layout() recursively. - child->SetSize(x, y, w, h); - } - else - { - child->Move(x, y); - } - } - else - child->Layout(); - node = node->Next(); - } - doneSoFar.DeleteObject(win); - - return TRUE; -} -#endif // WXWIN_COMPATIBILITY - -wxSizer::wxSizer() -{ - sizerBehaviour = wxSizerNone; - borderX = 2; - borderY = 2; - sizerX = 0; - sizerY = 0; - sizerWidth = 0; - sizerHeight = 0; -} - -wxSizer::wxSizer(wxWindowBase *parent, wxSizerBehaviour behav) -{ - Create(parent, behav); -} - -bool wxSizer::Create(wxWindowBase *parent, wxSizerBehaviour behav) -{ - sizerBehaviour = behav; - borderX = 2; - borderY = 2; - m_sizerParent = parent; - sizerX = 0; - sizerY = 0; - sizerWidth = 0; - sizerHeight = 0; - - // A normal window can have just one top-level sizer - // associated with it. - if (!parent->IsKindOf(CLASSINFO(wxSizer))) - { - parent->SetSizer(this); - } - else - ((wxSizer *)parent)->AddSizerChild(this); - - switch (sizerBehaviour) - { - case wxSizerExpand: - { - // Defines a set of constraints - // to expand the sizer to fit the parent window - wxLayoutConstraints *c = new wxLayoutConstraints; - - c->left.SameAs(parent, wxLeft, 0); - c->top.SameAs(parent, wxTop, 0); - c->right.SameAs(parent, wxRight, 0); - c->bottom.SameAs(parent, wxBottom, 0); - - SetConstraints(c); - break; - } - case wxSizerShrink: - case wxSizerNone: - default: - { - } - } - return TRUE; -} - -wxSizer::~wxSizer() -{ - // Remove all children without deleting them, - // or ~wxbWindow will delete proper windows _twice_ - wxNode *node = GetChildren().First(); - while (node) - { - wxNode *next = node->Next(); - wxWindowBase *win = (wxWindowBase *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxSizer))) - { - delete node; - win->SetSizerParent((wxWindowBase *) NULL); - } - else - { - RemoveSizerChild(win); - delete win; - } - node = next; - } - - if (m_sizerParent) // && !m_sizerParent->IsKindOf(CLASSINFO(wxSizer))) - { - m_sizerParent->SetSizer((wxSizer *) NULL); - m_sizerParent = (wxWindowBase *) NULL; - } - -} - -void wxSizer::SetBorder(int x, int y) -{ - borderX = x; - borderY = y; - /* No: the margin is for inside, not outside (expansion) - - if ( GetConstraints() ) - { - GetConstraints()->left.SetMargin(x); - GetConstraints()->right.SetMargin(x); - GetConstraints()->top.SetMargin(y); - GetConstraints()->bottom.SetMargin(y); - } - */ - -} - -void wxSizer::AddSizerChild(wxWindowBase *child) -{ - child->SetSizerParent(this); - GetChildren().Append(child); - - // Add some constraints for the purpose of storing - // the relative position of the window/sizer - // during layout calculations. - if (!child->GetConstraints()) - { - wxLayoutConstraints *c = new wxLayoutConstraints; - c->left.AsIs(); - c->top.AsIs(); - c->width.AsIs(); - c->height.AsIs(); - int w, h; - child->GetSize(&w, &h); - c->width.SetValue(w); - c->height.SetValue(h); - - child->SetConstraints(c); - } -} - -void wxSizer::RemoveSizerChild(wxWindowBase *child) -{ - GetChildren().DeleteObject(child); -} - -void wxSizer::DoSetSize(int x, int y, int w, int h, int WXUNUSED(flags)) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (x != -1) - { - sizerX = x; - if (constr) - constr->left.SetValue(x); - } - if (y != -1) - { - sizerY = y; - if (constr) - constr->top.SetValue(y); - } - if (w != -1) - { - sizerWidth = w; - if (constr) - constr->width.SetValue(w); - } - if (h != -1) - { - sizerHeight = h; - if (constr) - constr->height.SetValue(h); - } -} - -void wxSizer::DoGetSize(int *w, int *h) const -{ - *w = sizerWidth; - *h = sizerHeight; -} - -void wxSizer::DoGetPosition(int *x, int *y) const -{ - *x = sizerX; - *y = sizerY; -} - -bool wxSizer::LayoutPhase1(int *noChanges) -{ - *noChanges = 0; - switch (sizerBehaviour) - { - case wxSizerExpand: - { - if (!m_sizerParent) - { - wxMessageBox(_("wxExpandSizer has no parent!"), _("Sizer error"), wxOK); - return TRUE; - } - - // Set the size to fill the parent client area - int pw, ph; - m_sizerParent->GetClientSize(&pw, &ph); - SetSize(GetBorderX(), GetBorderY(), pw - 2*GetBorderX(), ph - 2*GetBorderY()); - wxLayoutConstraints *constr = GetConstraints(); - - // Fill in the constraints - if (constr) - { - constr->left.SetValue(0); constr->left.SetDone(TRUE); - constr->top.SetValue(0); constr->right.SetDone(TRUE); - constr->width.SetValue(pw); constr->width.SetDone(TRUE); - constr->height.SetValue(ph); constr->height.SetDone(TRUE); - } - - return TRUE; - break; - } - case wxSizerShrink: - { - wxLayoutConstraints *constr = GetConstraints(); - - if (constr) - { - // Force the constraint to have as-is width and height - // if we're in shrink-to-fit mode, because if left unconstrained, - // SatisfyConstraints will fail. The shrink-to-fit option - // essentially specifies the width and height as 'whatever I calculate'. - constr->width.AsIs(); - constr->height.AsIs(); - } - DoPhase(1); - DoPhase(2); - // Find the bounding box and set own size - int maxX = 0; - int maxY = 0; - - wxNode *node = GetChildren().First(); - while (node) - { - int x, y, width, height; - wxWindowBase *win = (wxWindowBase *)node->Data(); - win->GetSizeConstraint(&width, &height); - win->GetPositionConstraint(&x, &y); - if ((x+width) > maxX) - maxX = (x + width); - if ((y+height) > maxY) - maxY = (y + height); - - node = node->Next(); - } - SetSize(GetBorderX(), GetBorderY(), maxX, maxY); - - // If this is the only sizer for the parent, size the parent to this sizer. - if ( m_sizerParent && (m_sizerParent->GetSizer() == this) ) - m_sizerParent->SetClientSize(maxX + 2*GetBorderX(), maxY + 2*GetBorderY()); - - return TRUE; - break; - } - case wxSizerNone: - { - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - bool success = constr->SatisfyConstraints(this, noChanges); - if (success) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - SetSize(x, y, w, h); - } - return success; - } - else - return TRUE; - break; - } - } - return TRUE; - -} - -bool wxSizer::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - switch (sizerBehaviour) - { - case wxSizerExpand: - { - // Layout children - DoPhase(1); - DoPhase(2); - return TRUE; - } - case wxSizerShrink: - { - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - bool success = constr->SatisfyConstraints(this, noChanges); - if (success) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - Move(x, y); - } - return success; - } - break; - } - case wxSizerNone: - { - // Layout children - DoPhase(1); - DoPhase(2); - - // Is this a dumb fix for lack of constraint evaluation? - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - bool success = constr->SatisfyConstraints(this, noChanges); - if (success) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - SetSize(x, y, w, h); - } - return success; - } - else - return TRUE; - } - } - return TRUE; -} - -/* - * wxRowColSizer - */ - -wxRowColSizer::wxRowColSizer() -{ - rowOrCol = TRUE; - rowOrColSize = 20; - xSpacing = 2; - ySpacing = 2; -} - -wxRowColSizer::wxRowColSizer(wxWindowBase *parent, bool rc, int n, wxSizerBehaviour behav) -{ - Create(parent, rc, n, behav); -} - -bool wxRowColSizer::Create(wxWindowBase *parent, bool rc, int n, wxSizerBehaviour behav) -{ - wxSizer::Create(parent, behav); - - rowOrCol = rc; - rowOrColSize = n; - xSpacing = 2; - ySpacing = 2; - - return TRUE; -} - -wxRowColSizer::~wxRowColSizer() -{ -} - -bool wxRowColSizer::LayoutPhase1(int *noChanges) -{ - *noChanges = 0; - wxLayoutConstraints *constr = GetConstraints(); - - if (constr) - { - // Force the constraint to have as-is width and height - // if we're in shrink-to-fit mode, because if left unconstrained, - // SatisfyConstraints will fail. The shrink-to-fit option - // essentially specifies the width and height as 'whatever I calculate'. - if (sizerBehaviour == wxSizerShrink) - { - constr->width.AsIs(); - constr->height.AsIs(); - } - - // Only evaluate the constraints FIRST if we're NOT - // in shrink-to-fit mode, i.e. we want to size the rowcol - // first, then lay the children out in the space we've calculated. - if (sizerBehaviour != wxSizerShrink) - { - bool success = constr->SatisfyConstraints(this, noChanges); - if (success) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - SetSize(x, y, w, h); - } - else - return FALSE; - - // Continue to do the rest of the phase when the constraints have been - // satisfied, i.e. we're on the last iteration of phase 1 and - // can now do the actual rowcol laying out. - } - } - - // If we ARE in shrink-to-fit mode, we must now - // calculate the child sizes BEFORE laying out in rows or columns. - if (sizerBehaviour == wxSizerShrink) - { - DoPhase(1); - DoPhase(2); - - // WILL THE WINDOW BE SIZED CORRECTLY AT THIS POINT? - // CHECK CONSTRAINTS IF ANY... - int noRows = 0; - int noCols = 0; - int currentX = borderX; - int currentY = borderY; - int maxX = currentX; - int maxY = currentY; - - wxNode *node = GetChildren().First(); - while (node) - { - wxWindowBase *win = (wxWindowBase *)node->Data(); - int childWidth, childHeight; - if (win->GetConstraints() && - win->GetConstraints()->width.GetDone() && - win->GetConstraints()->height.GetDone()) - { - childWidth = win->GetConstraints()->width.GetValue(); - childHeight = win->GetConstraints()->height.GetValue(); - } - else - win->GetSize(&childWidth, &childHeight); - - win->MoveConstraint(currentX, currentY); - - if ((currentX + childWidth) > maxX) - maxX = (currentX + childWidth); - if ((currentY + childHeight) > maxY) - maxY = (currentY + childHeight); - - if (rowOrCol) - { - currentX += childWidth + xSpacing; - noCols ++; - - // Reset to start of row - if (noCols == rowOrColSize) - { - currentX = borderX; - currentY += childHeight + ySpacing; - noCols = 0; - } - } - else - { - currentY += childHeight + ySpacing; - noRows ++; - - // Reset to start of col - if (noRows == rowOrColSize) - { - currentY = borderY; - currentX += childWidth + xSpacing; - noRows = 0; - } - } - - node = node->Next(); - } - maxX += borderX; - maxY += borderY; - - SetSize(-1, -1, maxX, maxY); - } - return TRUE; -} - -bool wxRowColSizer::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - // If shrink-to-fit, it's only at Phase 2 that we know the size of - // the wxRowColSizer, and now we can evaluate the - // constraints and pass result back up to parent. - // This implements a depth-first strategy - if (sizerBehaviour == wxSizerShrink) - { - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - bool success = constr->SatisfyConstraints(this, noChanges); - if (success) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - Move(x, y); - } - return success; - } - else return TRUE; - } - else - { - // Lay out the children: breadth-first strategy. - DoPhase(1); - DoPhase(2); - - // Space them - } - return TRUE; -} - - -/* - * wxSpacingSizer - */ - -wxSpacingSizer::wxSpacingSizer() -{ -} - -wxSpacingSizer::wxSpacingSizer(wxWindowBase *parent) -{ - Create(parent); -} - -wxSpacingSizer::wxSpacingSizer(wxWindowBase *parent, wxRelationship rel, wxWindowBase *other, int spacing) -{ - Create(parent, rel, other, spacing); -} - -bool wxSpacingSizer::Create(wxWindowBase *parent) -{ - wxSizer::Create(parent); - return TRUE; -} - -bool wxSpacingSizer::Create(wxWindowBase *parent, wxRelationship rel, wxWindowBase *other, int spacing) -{ - wxLayoutConstraints *c = new wxLayoutConstraints; - - wxSizer::Create(parent); - - switch ( rel ) - { - case wxLeftOf : - c->width.Absolute (spacing); - c->top.SameAs (other, wxTop); - c->bottom.SameAs (other, wxBottom); - c->right.LeftOf (other); - break; - case wxRightOf : - c->width.Absolute (spacing); - c->top.SameAs (other, wxTop); - c->bottom.SameAs (other, wxBottom); - c->left.RightOf (other); - break; - case wxBelow : - c->height.Absolute (spacing); - c->left.SameAs (other, wxLeft); - c->right.SameAs (other, wxRight); - c->top.Below (other); - break; - case wxAbove : - c->height.Absolute (spacing); - c->left.SameAs (other, wxLeft); - c->right.SameAs (other, wxRight); - c->bottom.Above (other); - break; - - default : - break; - } - SetConstraints(c); - - return TRUE; -} - -wxSpacingSizer::~wxSpacingSizer() -{ -} - diff --git a/src/common/lexer.l b/src/common/lexer.l deleted file mode 100644 index 4c90a2966c..0000000000 --- a/src/common/lexer.l +++ /dev/null @@ -1,192 +0,0 @@ -SIGN [+-] -DIGIT [0-9] -ALPHA [a-zA-Z_] -ALPHADIGIT [a-zA-Z_0-9] -STRINGCHAR [^"\\] -WORDCHAR [^'\\] - -%{ -/* - * File: lexer.l - * Description: Lexical analyser for PROLOGIO; can be used with - * either lex and flex. - */ -#include -#include - -/* +++steve162e: added, otherwise, PROIO_input will be undefined (at least under LINUX) - please check, if this is also TRUE under other UNIXes. - */ - -#if defined(FLEX_SCANNER) && defined(_LINUX) -#define PROIO_input my_input -#endif -/* ---steve162e */ - -#include "wx/expr.h" - -#define Return(x) return x; - -#if defined(VMS) && !defined(strdup) -#define strdup(s) (strcpy((char *)malloc(strlen(s)+1), s)); -#endif - -static size_t lex_buffer_length = 0; -static const char *lex_buffer = NULL; -static size_t lex_string_ptr = 0; -static int lex_read_from_string = 0; - -static int my_input(void); - -#ifdef FLEX_SCANNER -# undef YY_INPUT -# define YY_INPUT(buf,result,max_size) \ - if (lex_read_from_string) \ - { int c = my_input(); result = (c == 0) ? YY_NULL : ((buf)[0]=(c), 1); } \ - else \ - if ( (result = read( fileno(yyin), (char *) buf, max_size )) < 0 ) \ - YY_FATAL_ERROR( "read() in flex scanner failed" ); -#else -# undef unput -# define unput(_c) my_unput(_c) - static int my_unput(char); -#endif - -%} - -%% - -{SIGN}?{DIGIT}+ {yylval.s = strdup(yytext); Return(INTEGER);} - -"e" Return(EXP); - -{ALPHA}{ALPHADIGIT}* {yylval.s = strdup(yytext); Return(WORD);} - -"'"{WORDCHAR}*"'" {int len = strlen(yytext); - yytext[len-1] = 0; - yylval.s = strdup(yytext+1); - Return(WORD);} - -\"({STRINGCHAR}|\\\"|\|\\\\|\\)*\" {yylval.s = strdup(yytext); Return(STRING);} - -"(" Return(OPEN); - -")" Return(CLOSE); - -"," Return(COMMA); - -"[" Return(OPEN_SQUARE); - -"]" Return(CLOSE_SQUARE); - -"=" Return(EQUALS); - -"." Return(PERIOD); - -[ \t] ; - -\n ; - -"/*" { loop: -#ifdef __cplusplus - while (yyinput() != '*'); - switch (yyinput()) -#else - while (input() != '*'); - switch (input()) -#endif - { - case '/': break; - case '*': unput('*'); - default: goto loop; - } - } - -. Return(ERROR); - -%% - - -#ifdef FLEX_SCANNER -static int lex_input() { - return input(); -} -#else /* BSD/AT&T lex */ -#ifndef input -# error "Sorry, but need either flex or AT&T lex" -#endif -static int lex_input() { - return input(); -} - -# undef input -# define input() my_input() -static int my_unput(char c) -{ - if (lex_read_from_string) { - /* Make sure we have something */ - if (lex_string_ptr) { - if (c == '\n') yylineno--; - lex_string_ptr--; - } - } else { - yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar; -/* unput(c); Causes infinite recursion! */ - } - return c; -} - -#endif - -/* Public */ -void LexFromFile(FILE *fd) -{ - lex_read_from_string = 0; - yyin = fd; - /* Don't know why this is necessary, but otherwise - * lex only works _once_! - */ -#ifdef FLEX_SCANNER - yyrestart(fd); - yy_init = 1; -#endif -} - -void LexFromString(char *buffer) -{ - lex_read_from_string = 1; - lex_buffer = buffer; - lex_buffer_length = strlen(buffer); - lex_string_ptr = 0; - /* Don't know why this is necessary, but otherwise - * lex only works _once_! - */ -#ifdef FLEX_SCANNER - yy_init = 1; -#endif -} - -static int my_input( void ) -{ - if (lex_read_from_string) { - if (lex_string_ptr == lex_buffer_length) - return 0; - else { - char c = lex_buffer[lex_string_ptr++]; -#ifndef FLEX_SCANNER - if (c == '\n') yylineno++; -#endif - return c; - } - } else { - return lex_input(); - } -} - -void wxExprCleanUp() -{ -#ifdef FLEX_SCANNER - if (yy_current_buffer) - yy_delete_buffer(yy_current_buffer); -#endif -} diff --git a/src/common/list.cpp b/src/common/list.cpp deleted file mode 100644 index fd5d655ecb..0000000000 --- a/src/common/list.cpp +++ /dev/null @@ -1,636 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: list.cpp -// Purpose: wxList implementation -// Author: Julian Smart -// Modified by: VZ at 16/11/98: WX_DECLARE_LIST() and typesafe lists added -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -//////////////////////////////////////////////////////////////////////////////// - -// ============================================================================= -// declarations -// ============================================================================= - -// ----------------------------------------------------------------------------- -// headers -// ----------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "list.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include -#include -#include - -#ifndef WX_PRECOMP - #include "wx/defs.h" - #include "wx/list.h" - #include "wx/utils.h" // for copystring() (beurk...) -#endif - -// ============================================================================= -// implementation -// ============================================================================= - -// ----------------------------------------------------------------------------- -// wxListKey -// ----------------------------------------------------------------------------- - -wxListKey wxDefaultListKey; - -bool wxListKey::operator==(wxListKeyValue value) const -{ - switch ( m_keyType ) - { - default: - wxFAIL_MSG(_T("bad key type.")); - // let compiler optimize the line above away in release build - // by not putting return here... - - case wxKEY_STRING: - return wxStrcmp(m_key.string, value.string) == 0; - - case wxKEY_INTEGER: - return m_key.integer == value.integer; - } -} - -// ----------------------------------------------------------------------------- -// wxNodeBase -// ----------------------------------------------------------------------------- - -wxNodeBase::wxNodeBase(wxListBase *list, - wxNodeBase *previous, wxNodeBase *next, - void *data, const wxListKey& key) -{ - m_list = list; - m_data = data; - m_previous = previous; - m_next = next; - - switch ( key.GetKeyType() ) - { - case wxKEY_NONE: - break; - - case wxKEY_INTEGER: - m_key.integer = key.GetNumber(); - break; - - case wxKEY_STRING: - // to be free()d later - m_key.string = wxStrdup(key.GetString()); - break; - - default: - wxFAIL_MSG(_T("invalid key type")); - } - - if ( previous ) - previous->m_next = this; - - if ( next ) - next->m_previous = this; -} - -wxNodeBase::~wxNodeBase() -{ - // handle the case when we're being deleted from the list by the user (i.e. - // not by the list itself from DeleteNode) - we must do it for - // compatibility with old code - if ( m_list != NULL ) - { - if ( m_list->m_keyType == wxKEY_STRING ) - { - free(m_key.string); - } - - m_list->DetachNode(this); - } -} - -int wxNodeBase::IndexOf() const -{ - wxCHECK_MSG( m_list, wxNOT_FOUND, _T("node doesn't belong to a list in IndexOf")); - - // It would be more efficient to implement IndexOf() completely inside - // wxListBase (only traverse the list once), but this is probably a more - // reusable way of doing it. Can always be optimized at a later date (since - // IndexOf() resides in wxListBase as well) if efficiency is a problem. - int i; - wxNodeBase *prev = m_previous; - - for( i = 0; prev; i++ ) - { - prev = prev->m_previous; - } - - return i; -} - -// ----------------------------------------------------------------------------- -// wxListBase -// ----------------------------------------------------------------------------- - -void wxListBase::Init(wxKeyType keyType) -{ - m_nodeFirst = - m_nodeLast = (wxNodeBase *) NULL; - m_count = 0; - m_destroy = FALSE; - m_keyType = keyType; -} - -wxListBase::wxListBase(size_t count, void *elements[]) -{ - Init(); - - for ( size_t n = 0; n < count; n++ ) - { - Append(elements[n]); - } -} - -void wxListBase::DoCopy(const wxListBase& list) -{ - wxASSERT_MSG( !list.m_destroy, - _T("copying list which owns it's elements is a bad idea") ); - - m_count = list.m_count; - m_destroy = list.m_destroy; - m_keyType = list.m_keyType; - m_nodeFirst = - m_nodeLast = (wxNodeBase *) NULL; - - for ( wxNodeBase *node = list.GetFirst(); node; node = node->GetNext() ) - { - Append(node); - } -} - -wxListBase::~wxListBase() -{ - wxNodeBase *each = m_nodeFirst; - while ( each != NULL ) - { - wxNodeBase *next = each->GetNext(); - DoDeleteNode(each); - each = next; - } -} - -wxNodeBase *wxListBase::AppendCommon(wxNodeBase *node) -{ - if ( !m_nodeFirst ) - { - m_nodeFirst = node; - m_nodeLast = m_nodeFirst; - } - else - { - m_nodeLast->m_next = node; - m_nodeLast = node; - } - - m_count++; - - return node; -} - -wxNodeBase *wxListBase::Append(void *object) -{ - // all objects in a keyed list should have a key - wxCHECK_MSG( m_keyType == wxKEY_NONE, (wxNodeBase *)NULL, - _T("need a key for the object to append") ); - - wxNodeBase *node = CreateNode(m_nodeLast, (wxNodeBase *)NULL, object); - - return AppendCommon(node); -} - -wxNodeBase *wxListBase::Append(long key, void *object) -{ - wxCHECK_MSG( (m_keyType == wxKEY_INTEGER) || - (m_keyType == wxKEY_NONE && m_count == 0), - (wxNodeBase *)NULL, - _T("can't append object with numeric key to this list") ); - - wxNodeBase *node = CreateNode(m_nodeLast, (wxNodeBase *)NULL, object, key); - return AppendCommon(node); -} - -wxNodeBase *wxListBase::Append (const wxChar *key, void *object) -{ - wxCHECK_MSG( (m_keyType == wxKEY_STRING) || - (m_keyType == wxKEY_NONE && m_count == 0), - (wxNodeBase *)NULL, - _T("can't append object with string key to this list") ); - - wxNodeBase *node = CreateNode(m_nodeLast, (wxNodeBase *)NULL, object, key); - return AppendCommon(node); -} - -wxNodeBase *wxListBase::Insert(wxNodeBase *position, void *object) -{ - // all objects in a keyed list should have a key - wxCHECK_MSG( m_keyType == wxKEY_NONE, (wxNodeBase *)NULL, - _T("need a key for the object to insert") ); - - wxCHECK_MSG( !position || position->m_list == this, (wxNodeBase *)NULL, - _T("can't insert before a node from another list") ); - - // previous and next node for the node being inserted - wxNodeBase *prev, *next; - if ( position ) - { - prev = position->GetPrevious(); - next = position; - } - else - { - // inserting in the beginning of the list - prev = (wxNodeBase *)NULL; - next = m_nodeFirst; - } - - wxNodeBase *node = CreateNode(prev, next, object); - if ( !m_nodeFirst ) - { - m_nodeLast = node; - } - - if ( prev == NULL ) - { - m_nodeFirst = node; - } - - m_count++; - - return node; -} - -wxNodeBase *wxListBase::Item(size_t n) const -{ - for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() ) - { - if ( n-- == 0 ) - { - return current; - } - } - - wxFAIL_MSG( _T("invalid index in wxListBase::Item") ); - - return (wxNodeBase *)NULL; -} - -wxNodeBase *wxListBase::Find(const wxListKey& key) const -{ - wxASSERT_MSG( m_keyType == key.GetKeyType(), - _T("this list is not keyed on the type of this key") ); - - for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() ) - { - if ( key == current->m_key ) - { - return current; - } - } - - // not found - return (wxNodeBase *)NULL; -} - -wxNodeBase *wxListBase::Find(void *object) const -{ - for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() ) - { - if ( current->GetData() == object ) - return current; - } - - // not found - return (wxNodeBase *)NULL; -} - -int wxListBase::IndexOf(void *object) const -{ - wxNodeBase *node = Find( object ); - - return node ? node->IndexOf() : wxNOT_FOUND; -} - -void wxListBase::DoDeleteNode(wxNodeBase *node) -{ - // free node's data - if ( m_keyType == wxKEY_STRING ) - { - free(node->m_key.string); - } - - if ( m_destroy ) - { - node->DeleteData(); - } - - // so that the node knows that it's being deleted by the list - node->m_list = NULL; - delete node; -} - -wxNodeBase *wxListBase::DetachNode(wxNodeBase *node) -{ - wxCHECK_MSG( node, NULL, _T("detaching NULL wxNodeBase") ); - wxCHECK_MSG( node->m_list == this, NULL, - _T("detaching node which is not from this list") ); - - // update the list - wxNodeBase **prevNext = node->GetPrevious() ? &node->GetPrevious()->m_next - : &m_nodeFirst; - wxNodeBase **nextPrev = node->GetNext() ? &node->GetNext()->m_previous - : &m_nodeLast; - - *prevNext = node->GetNext(); - *nextPrev = node->GetPrevious(); - - m_count--; - - // mark the node as not belonging to this list any more - node->m_list = NULL; - - return node; -} - -bool wxListBase::DeleteNode(wxNodeBase *node) -{ - if ( !DetachNode(node) ) - return FALSE; - - DoDeleteNode(node); - - return TRUE; -} - -bool wxListBase::DeleteObject(void *object) -{ - for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() ) - { - if ( current->GetData() == object ) - { - DeleteNode(current); - return TRUE; - } - } - - // not found - return FALSE; -} - -void wxListBase::Clear() -{ - wxNodeBase *current = m_nodeFirst; - while ( current ) - { - wxNodeBase *next = current->GetNext(); - DoDeleteNode(current); - current = next; - } - - m_nodeFirst = - m_nodeLast = (wxNodeBase *)NULL; - - m_count = 0; -} - -void wxListBase::ForEach(wxListIterateFunction F) -{ - for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() ) - { - (*F)(current->GetData()); - } -} - -void *wxListBase::FirstThat(wxListIterateFunction F) -{ - for ( wxNodeBase *current = GetFirst(); current; current = current->GetNext() ) - { - if ( (*F)(current->GetData()) ) - return current->GetData(); - } - - return (wxNodeBase *)NULL; -} - -void *wxListBase::LastThat(wxListIterateFunction F) -{ - for ( wxNodeBase *current = GetLast(); current; current = current->GetPrevious() ) - { - if ( (*F)(current->GetData()) ) - return current->GetData(); - } - - return (wxNodeBase *)NULL; -} - -// (stefan.hammes@urz.uni-heidelberg.de) -// -// function for sorting lists. the concept is borrowed from 'qsort'. -// by giving a sort function, arbitrary lists can be sorted. -// method: -// - put wxObject pointers into an array -// - sort the array with qsort -// - put back the sorted wxObject pointers into the list -// -// CAVE: the sort function receives pointers to wxObject pointers (wxObject **), -// so dereference right! -// EXAMPLE: -// int listcompare(const void *arg1, const void *arg2) -// { -// return(compare(**(wxString **)arg1, -// **(wxString **)arg2)); -// } -// -// void main() -// { -// wxListBase list; -// -// list.Append(new wxString("DEF")); -// list.Append(new wxString("GHI")); -// list.Append(new wxString("ABC")); -// list.Sort(listcompare); -// } - -void wxListBase::Sort(const wxSortCompareFunction compfunc) -{ - // allocate an array for the wxObject pointers of the list - const size_t num = GetCount(); - void **objArray = new void *[num]; - void **objPtr = objArray; - - // go through the list and put the pointers into the array - wxNodeBase *node; - for ( node = GetFirst(); node; node = node->Next() ) - { - *objPtr++ = node->Data(); - } - - // sort the array - qsort((void *)objArray,num,sizeof(wxObject *),compfunc); - - // put the sorted pointers back into the list - objPtr = objArray; - for ( node = GetFirst(); node; node = node->Next() ) - { - node->SetData(*objPtr++); - } - - // free the array - delete[] objArray; -} - -// ----------------------------------------------------------------------------- -// wxList (a.k.a. wxObjectList) -// ----------------------------------------------------------------------------- - -void wxObjectListNode::DeleteData() -{ - delete (wxObject *)GetData(); -} - -// ----------------------------------------------------------------------------- -// wxStringList -// ----------------------------------------------------------------------------- - -// instead of WX_DEFINE_LIST(wxStringListBase) we define this function -// ourselves -void wxStringListNode::DeleteData() -{ - delete [] (char *)GetData(); -} - -bool wxStringList::Delete(const wxChar *s) -{ - wxStringListNode *current; - - for ( current = GetFirst(); current; current = current->GetNext() ) - { - if ( wxStrcmp(current->GetData(), s) == 0 ) - { - DeleteNode(current); - return TRUE; - } - } - - // not found - return FALSE; -} - -void wxStringList::DoCopy(const wxStringList& other) -{ - wxASSERT( GetCount() == 0 ); // this list must be empty before copying! - - size_t count = other.GetCount(); - for ( size_t n = 0; n < count; n++ ) - { - Add(other.Item(n)->GetData()); - } -} - -// Variable argument list, terminated by a zero -// Makes new storage for the strings -wxStringList::wxStringList (const wxChar *first, ...) -{ - if ( !first ) - return; - - va_list ap; - va_start(ap, first); - - const wxChar *s = first; - for (;;) - { - Add(s); - - s = va_arg(ap, const wxChar *); - // if (s == NULL) -#ifdef __WXMSW__ - if ((int) s == 0) -#else - if ((long) s == 0) -#endif - break; - } - - va_end(ap); -} - -// Only makes new strings if arg is TRUE -wxChar **wxStringList::ListToArray(bool new_copies) const -{ - wxChar **string_array = new wxChar *[GetCount()]; - wxStringListNode *node = GetFirst(); - for (size_t i = 0; i < GetCount(); i++) - { - wxChar *s = node->GetData(); - if ( new_copies ) - string_array[i] = copystring(s); - else - string_array[i] = s; - node = node->GetNext(); - } - - return string_array; -} - -// Checks whether s is a member of the list -bool wxStringList::Member(const wxChar *s) const -{ - for ( wxStringListNode *node = GetFirst(); node; node = node->GetNext() ) - { - const wxChar *s1 = node->GetData(); - if (s == s1 || wxStrcmp (s, s1) == 0) - return TRUE; - } - - return FALSE; -} - -static int -wx_comparestrings(const void *arg1, const void *arg2) -{ - wxChar **s1 = (wxChar **) arg1; - wxChar **s2 = (wxChar **) arg2; - - return wxStrcmp (*s1, *s2); -} - -// Sort a list of strings - deallocates old nodes, allocates new -void wxStringList::Sort() -{ - size_t N = GetCount(); - wxChar **array = new wxChar *[N]; - wxStringListNode *node; - - size_t i = 0; - for ( node = GetFirst(); node; node = node->GetNext() ) - { - array[i++] = node->GetData(); - } - - qsort (array, N, sizeof (wxChar *), wx_comparestrings); - - i = 0; - for ( node = GetFirst(); node; node = node->GetNext() ) - node->SetData( array[i++] ); - - delete [] array; -} diff --git a/src/common/log.cpp b/src/common/log.cpp deleted file mode 100644 index 2f8b2c0a0a..0000000000 --- a/src/common/log.cpp +++ /dev/null @@ -1,1076 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: log.cpp -// Purpose: Assorted wxLogXXX functions, and wxLog (sink for logs) -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "log.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// wxWindows -#ifndef WX_PRECOMP - #include "wx/window.h" -#ifdef __WXMSW__ - #include "wx/msw/private.h" -#endif - #include "wx/event.h" - #include "wx/app.h" - #include "wx/string.h" - #include "wx/intl.h" - #include "wx/menu.h" - #include "wx/frame.h" - #include "wx/msgdlg.h" - #include "wx/filedlg.h" - #include "wx/textctrl.h" -#endif //WX_PRECOMP - -#include "wx/file.h" -#include "wx/textfile.h" -#include "wx/utils.h" -#include "wx/log.h" - -// other standard headers -#include -#include -#include - -#ifdef __WXMSW__ - #include - // Redefines OutputDebugString if necessary - #include "wx/msw/private.h" -#else //Unix - #include -#endif //Win/Unix - -// ---------------------------------------------------------------------------- -// non member functions -// ---------------------------------------------------------------------------- - -// define this to enable wrapping of log messages -//#define LOG_PRETTY_WRAP - -#ifdef LOG_PRETTY_WRAP - static void wxLogWrap(FILE *f, const char *pszPrefix, const char *psz); -#endif - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -// we use a global variable to store the frame pointer for wxLogStatus - bad, -// but it's he easiest way -static wxFrame *gs_pFrame; // FIXME MT-unsafe - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// implementation of Log functions -// -// NB: unfortunately we need all these distinct functions, we can't make them -// macros and not all compilers inline vararg functions. -// ---------------------------------------------------------------------------- - -// log functions can't allocate memory (LogError("out of memory...") should -// work!), so we use a static buffer for all log messages -#define LOG_BUFFER_SIZE (4096) - -// static buffer for error messages (FIXME MT-unsafe) -static wxChar s_szBuf[LOG_BUFFER_SIZE]; - -// generic log function -void wxLogGeneric(wxLogLevel level, const wxChar *szFormat, ...) -{ - if ( wxLog::GetActiveTarget() != NULL ) { - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxLog::OnLog(level, s_szBuf, time(NULL)); - } -} - -#define IMPLEMENT_LOG_FUNCTION(level) \ - void wxLog##level(const wxChar *szFormat, ...) \ - { \ - if ( wxLog::GetActiveTarget() != NULL ) { \ - va_list argptr; \ - va_start(argptr, szFormat); \ - wxVsprintf(s_szBuf, szFormat, argptr); \ - va_end(argptr); \ - \ - wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \ - } \ - } - -IMPLEMENT_LOG_FUNCTION(FatalError) -IMPLEMENT_LOG_FUNCTION(Error) -IMPLEMENT_LOG_FUNCTION(Warning) -IMPLEMENT_LOG_FUNCTION(Message) -IMPLEMENT_LOG_FUNCTION(Info) -IMPLEMENT_LOG_FUNCTION(Status) - -// accepts an additional argument which tells to which frame the output should -// be directed -void wxLogStatus(wxFrame *pFrame, const wxChar *szFormat, ...) -{ - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL ) { - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxASSERT( gs_pFrame == NULL ); // should be reset! - gs_pFrame = pFrame; - wxLog::OnLog(wxLOG_Status, s_szBuf, time(NULL)); - gs_pFrame = (wxFrame *) NULL; - } -} - -// same as info, but only if 'verbose' mode is on -void wxLogVerbose(const wxChar *szFormat, ...) -{ - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->GetVerbose() ) { - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxLog::OnLog(wxLOG_Info, s_szBuf, time(NULL)); - } -} - -// debug functions -#ifdef __WXDEBUG__ -#define IMPLEMENT_LOG_DEBUG_FUNCTION(level) \ - void wxLog##level(const wxChar *szFormat, ...) \ - { \ - if ( wxLog::GetActiveTarget() != NULL ) { \ - va_list argptr; \ - va_start(argptr, szFormat); \ - wxVsprintf(s_szBuf, szFormat, argptr); \ - va_end(argptr); \ - \ - wxLog::OnLog(wxLOG_##level, s_szBuf, time(NULL)); \ - } \ - } - - void wxLogTrace(const wxChar *mask, const wxChar *szFormat, ...) - { - wxLog *pLog = wxLog::GetActiveTarget(); - - if ( pLog != NULL && wxLog::IsAllowedTraceMask(mask) ) { - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL)); - } - } - - void wxLogTrace(wxTraceMask mask, const wxChar *szFormat, ...) - { - wxLog *pLog = wxLog::GetActiveTarget(); - - // we check that all of mask bits are set in the current mask, so - // that wxLogTrace(wxTraceRefCount | wxTraceOle) will only do something - // if both bits are set. - if ( pLog != NULL && ((pLog->GetTraceMask() & mask) == mask) ) { - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL)); - } - } - -#else // release - #define IMPLEMENT_LOG_DEBUG_FUNCTION(level) -#endif - -IMPLEMENT_LOG_DEBUG_FUNCTION(Debug) -IMPLEMENT_LOG_DEBUG_FUNCTION(Trace) - -// wxLogSysError: one uses the last error code, for other you must give it -// explicitly - -// common part of both wxLogSysError -void wxLogSysErrorHelper(long lErrCode) -{ - wxChar szErrMsg[LOG_BUFFER_SIZE / 2]; - wxSprintf(szErrMsg, _(" (error %ld: %s)"), lErrCode, wxSysErrorMsg(lErrCode)); - wxStrncat(s_szBuf, szErrMsg, WXSIZEOF(s_szBuf) - wxStrlen(s_szBuf)); - - wxLog::OnLog(wxLOG_Error, s_szBuf, time(NULL)); -} - -void WXDLLEXPORT wxLogSysError(const wxChar *szFormat, ...) -{ - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxLogSysErrorHelper(wxSysErrorCode()); -} - -void WXDLLEXPORT wxLogSysError(long lErrCode, const wxChar *szFormat, ...) -{ - va_list argptr; - va_start(argptr, szFormat); - wxVsprintf(s_szBuf, szFormat, argptr); - va_end(argptr); - - wxLogSysErrorHelper(lErrCode); -} - -// ---------------------------------------------------------------------------- -// wxLog class implementation -// ---------------------------------------------------------------------------- - -wxLog::wxLog() -{ - m_bHasMessages = FALSE; - - // enable verbose messages by default in the debug builds -#ifdef __WXDEBUG__ - m_bVerbose = TRUE; -#else // release - m_bVerbose = FALSE; -#endif // debug/release -} - -wxLog *wxLog::GetActiveTarget() -{ - if ( ms_bAutoCreate && ms_pLogger == NULL ) { - // prevent infinite recursion if someone calls wxLogXXX() from - // wxApp::CreateLogTarget() - static bool s_bInGetActiveTarget = FALSE; - if ( !s_bInGetActiveTarget ) { - s_bInGetActiveTarget = TRUE; - -#ifdef wxUSE_NOGUI - ms_pLogger = new wxLogStderr; -#else - // ask the application to create a log target for us - if ( wxTheApp != NULL ) - ms_pLogger = wxTheApp->CreateLogTarget(); - else - ms_pLogger = new wxLogStderr; -#endif - - s_bInGetActiveTarget = FALSE; - - // do nothing if it fails - what can we do? - } - } - - return ms_pLogger; -} - -wxLog *wxLog::SetActiveTarget(wxLog *pLogger) -{ - if ( ms_pLogger != NULL ) { - // flush the old messages before changing because otherwise they might - // get lost later if this target is not restored - ms_pLogger->Flush(); - } - - wxLog *pOldLogger = ms_pLogger; - ms_pLogger = pLogger; - - return pOldLogger; -} - -void wxLog::RemoveTraceMask(const wxString& str) -{ - int index = ms_aTraceMasks.Index(str); - if ( index != wxNOT_FOUND ) - ms_aTraceMasks.Remove((size_t)index); -} - -void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t) -{ - switch ( level ) { - case wxLOG_FatalError: - DoLogString(wxString(_("Fatal error: ")) + szString, t); - DoLogString(_("Program aborted."), t); - Flush(); - abort(); - break; - - case wxLOG_Error: - DoLogString(wxString(_("Error: ")) + szString, t); - break; - - case wxLOG_Warning: - DoLogString(wxString(_("Warning: ")) + szString, t); - break; - - case wxLOG_Info: - if ( GetVerbose() ) - case wxLOG_Message: - default: // log unknown log levels too - DoLogString(szString, t); - // fall through - - case wxLOG_Status: - // nothing to do - break; - - case wxLOG_Trace: - case wxLOG_Debug: -#ifdef __WXDEBUG__ - DoLogString(szString, t); -#endif - break; - } -} - -void wxLog::DoLogString(const wxChar *WXUNUSED(szString), time_t WXUNUSED(t)) -{ - wxFAIL_MSG(_T("DoLogString must be overriden if it's called.")); -} - -void wxLog::Flush() -{ - // do nothing -} - -// ---------------------------------------------------------------------------- -// wxLogStderr class implementation -// ---------------------------------------------------------------------------- - -wxLogStderr::wxLogStderr(FILE *fp) -{ - if ( fp == NULL ) - m_fp = stderr; - else - m_fp = fp; -} - -void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) -{ - wxString str(szString); - str << _T('\n'); - - fputs(str.mb_str(), m_fp); - fflush(m_fp); - - // under Windows, programs usually don't have stderr at all, so make show the - // messages also under debugger -#ifdef __WXMSW__ - OutputDebugString(str + _T('\r')); -#endif // MSW -} - -// ---------------------------------------------------------------------------- -// wxLogStream implementation -// ---------------------------------------------------------------------------- - -#if wxUSE_STD_IOSTREAM -wxLogStream::wxLogStream(ostream *ostr) -{ - if ( ostr == NULL ) - m_ostr = &cerr; - else - m_ostr = ostr; -} - -void wxLogStream::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) -{ - (*m_ostr) << wxConv_libc.cWX2MB(szString) << endl << flush; -} -#endif // wxUSE_STD_IOSTREAM - -#ifndef wxUSE_NOGUI - -// ---------------------------------------------------------------------------- -// wxLogTextCtrl implementation -// ---------------------------------------------------------------------------- - -#if wxUSE_STD_IOSTREAM -wxLogTextCtrl::wxLogTextCtrl(wxTextCtrl *pTextCtrl) -#if !defined(NO_TEXT_WINDOW_STREAM) -: wxLogStream(new ostream(pTextCtrl)) -#endif -{ -} - -wxLogTextCtrl::~wxLogTextCtrl() -{ - delete m_ostr; -} -#endif // wxUSE_STD_IOSTREAM - -// ---------------------------------------------------------------------------- -// wxLogGui implementation (FIXME MT-unsafe) -// ---------------------------------------------------------------------------- - -wxLogGui::wxLogGui() -{ - Clear(); -} - -void wxLogGui::Clear() -{ - m_bErrors = m_bWarnings = FALSE; - m_aMessages.Empty(); - m_aTimes.Empty(); -} - -void wxLogGui::Flush() -{ - if ( !m_bHasMessages ) - return; - - // do it right now to block any new calls to Flush() while we're here - m_bHasMessages = FALSE; - - // concatenate all strings (but not too many to not overfill the msg box) - wxString str; - size_t nLines = 0, - nMsgCount = m_aMessages.Count(); - - // start from the most recent message - for ( size_t n = nMsgCount; n > 0; n-- ) { - // for Windows strings longer than this value are wrapped (NT 4.0) - const size_t nMsgLineWidth = 156; - - nLines += (m_aMessages[n - 1].Len() + nMsgLineWidth - 1) / nMsgLineWidth; - - if ( nLines > 25 ) // don't put too many lines in message box - break; - - str << m_aMessages[n - 1] << _T("\n"); - } - - const wxChar *title; - long style; - - if ( m_bErrors ) { - title = _("Error"); - style = wxICON_STOP; - } - else if ( m_bWarnings ) { - title = _("Warning"); - style = wxICON_EXCLAMATION; - } - else { - title = _("Information"); - style = wxICON_INFORMATION; - } - - wxMessageBox(str, title, wxOK | style); - - // no undisplayed messages whatsoever - Clear(); -} - -// the default behaviour is to discard all informational messages if there -// are any errors/warnings. -void wxLogGui::DoLog(wxLogLevel level, const wxChar *szString, time_t t) -{ - switch ( level ) { - case wxLOG_Info: - if ( GetVerbose() ) - case wxLOG_Message: - if ( !m_bErrors ) { - m_aMessages.Add(szString); - m_aTimes.Add((long)t); - m_bHasMessages = TRUE; - } - break; - - case wxLOG_Status: -#if wxUSE_STATUSBAR - { - // find the top window and set it's status text if it has any - wxFrame *pFrame = gs_pFrame; - if ( pFrame == NULL ) { - wxWindow *pWin = wxTheApp->GetTopWindow(); - if ( pWin != NULL && pWin->IsKindOf(CLASSINFO(wxFrame)) ) { - pFrame = (wxFrame *)pWin; - } - } - - if ( pFrame != NULL ) - pFrame->SetStatusText(szString); - } -#endif // wxUSE_STATUSBAR - break; - - case wxLOG_Trace: - case wxLOG_Debug: - #ifdef __WXDEBUG__ - { - #ifdef __WXMSW__ - // don't prepend debug/trace here: it goes to the - // debug window anyhow, but do put a timestamp - OutputDebugString(wxString(szString) + _T("\n\r")); - #else - // send them to stderr - wxFprintf(stderr, _T("%s: %s\n"), - level == wxLOG_Trace ? _T("Trace") : _T("Debug"), - szString); - fflush(stderr); - #endif - } - #endif // __WXDEBUG__ - - break; - - case wxLOG_FatalError: - // show this one immediately - wxMessageBox(szString, _("Fatal error"), wxICON_HAND); - break; - - case wxLOG_Error: - // discard earlier informational messages if this is the 1st - // error because they might not make sense any more - if ( !m_bErrors ) { - m_aMessages.Empty(); - m_aTimes.Empty(); - m_bHasMessages = TRUE; - m_bErrors = TRUE; - } - // fall through - - case wxLOG_Warning: - if ( !m_bErrors ) { - // for the warning we don't discard the info messages - m_bWarnings = TRUE; - } - - m_aMessages.Add(szString); - m_aTimes.Add((long)t); - break; - } -} - -// ---------------------------------------------------------------------------- -// wxLogWindow and wxLogFrame implementation -// ---------------------------------------------------------------------------- - -// log frame class -// --------------- -class wxLogFrame : public wxFrame -{ -public: - // ctor & dtor - wxLogFrame(wxFrame *pParent, wxLogWindow *log, const wxChar *szTitle); - virtual ~wxLogFrame(); - - // menu callbacks - void OnClose(wxCommandEvent& event); - void OnCloseWindow(wxCloseEvent& event); -#if wxUSE_FILE - void OnSave (wxCommandEvent& event); -#endif // wxUSE_FILE - void OnClear(wxCommandEvent& event); - - void OnIdle(wxIdleEvent&); - - // accessors - wxTextCtrl *TextCtrl() const { return m_pTextCtrl; } - -private: - enum - { - Menu_Close = 100, - Menu_Save, - Menu_Clear - }; - - // instead of closing just hide the window to be able to Show() it later - void DoClose() { Show(FALSE); } - - wxTextCtrl *m_pTextCtrl; - wxLogWindow *m_log; - - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE(wxLogFrame, wxFrame) - // wxLogWindow menu events - EVT_MENU(Menu_Close, wxLogFrame::OnClose) -#if wxUSE_FILE - EVT_MENU(Menu_Save, wxLogFrame::OnSave) -#endif // wxUSE_FILE - EVT_MENU(Menu_Clear, wxLogFrame::OnClear) - - EVT_CLOSE(wxLogFrame::OnCloseWindow) -END_EVENT_TABLE() - -wxLogFrame::wxLogFrame(wxFrame *pParent, wxLogWindow *log, const wxChar *szTitle) - : wxFrame(pParent, -1, szTitle) -{ - m_log = log; - - m_pTextCtrl = new wxTextCtrl(this, -1, wxEmptyString, wxDefaultPosition, - wxDefaultSize, - wxTE_MULTILINE | - wxHSCROLL | - wxTE_READONLY); - - // create menu - wxMenuBar *pMenuBar = new wxMenuBar; - wxMenu *pMenu = new wxMenu; -#if wxUSE_FILE - pMenu->Append(Menu_Save, _("&Save..."), _("Save log contents to file")); -#endif // wxUSE_FILE - pMenu->Append(Menu_Clear, _("C&lear"), _("Clear the log contents")); - pMenu->AppendSeparator(); - pMenu->Append(Menu_Close, _("&Close"), _("Close this window")); - pMenuBar->Append(pMenu, _("&Log")); - SetMenuBar(pMenuBar); - -#if wxUSE_STATUSBAR - // status bar for menu prompts - CreateStatusBar(); -#endif // wxUSE_STATUSBAR - - m_log->OnFrameCreate(this); -} - -void wxLogFrame::OnClose(wxCommandEvent& WXUNUSED(event)) -{ - DoClose(); -} - -void wxLogFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - DoClose(); -} - -#if wxUSE_FILE -void wxLogFrame::OnSave(wxCommandEvent& WXUNUSED(event)) -{ - // get the file name - // ----------------- - const wxChar *szFileName = wxSaveFileSelector(_T("log"), _T("txt"), _T("log.txt")); - if ( szFileName == NULL ) { - // cancelled - return; - } - - // open file - // --------- - wxFile file; - bool bOk = FALSE; - if ( wxFile::Exists(szFileName) ) { - bool bAppend = FALSE; - wxString strMsg; - strMsg.Printf(_("Append log to file '%s' " - "(choosing [No] will overwrite it)?"), szFileName); - switch ( wxMessageBox(strMsg, _("Question"), wxYES_NO | wxCANCEL) ) { - case wxYES: - bAppend = TRUE; - break; - - case wxNO: - bAppend = FALSE; - break; - - case wxCANCEL: - return; - - default: - wxFAIL_MSG(_("invalid message box return value")); - } - - if ( bAppend ) { - bOk = file.Open(szFileName, wxFile::write_append); - } - else { - bOk = file.Create(szFileName, TRUE /* overwrite */); - } - } - else { - bOk = file.Create(szFileName); - } - - // retrieve text and save it - // ------------------------- - int nLines = m_pTextCtrl->GetNumberOfLines(); - for ( int nLine = 0; bOk && nLine < nLines; nLine++ ) { - bOk = file.Write(m_pTextCtrl->GetLineText(nLine) + - // we're not going to pull in the whole wxTextFile if all we need is this... -#if wxUSE_TEXTFILE - wxTextFile::GetEOL() -#else // !wxUSE_TEXTFILE - '\n' -#endif // wxUSE_TEXTFILE - ); - } - - if ( bOk ) - bOk = file.Close(); - - if ( !bOk ) { - wxLogError(_("Can't save log contents to file.")); - } - else { - wxLogStatus(this, _("Log saved to the file '%s'."), szFileName); - } -} -#endif // wxUSE_FILE - -void wxLogFrame::OnClear(wxCommandEvent& WXUNUSED(event)) -{ - m_pTextCtrl->Clear(); -} - -wxLogFrame::~wxLogFrame() -{ - m_log->OnFrameDelete(this); -} - -// wxLogWindow -// ----------- -wxLogWindow::wxLogWindow(wxFrame *pParent, - const wxChar *szTitle, - bool bShow, - bool bDoPass) -{ - m_bPassMessages = bDoPass; - - m_pLogFrame = new wxLogFrame(pParent, this, szTitle); - m_pOldLog = wxLog::SetActiveTarget(this); - - if ( bShow ) - m_pLogFrame->Show(TRUE); -} - -void wxLogWindow::Show(bool bShow) -{ - m_pLogFrame->Show(bShow); -} - -void wxLogWindow::Flush() -{ - if ( m_pOldLog != NULL ) - m_pOldLog->Flush(); - - m_bHasMessages = FALSE; -} - -void wxLogWindow::DoLog(wxLogLevel level, const wxChar *szString, time_t t) -{ - // first let the previous logger show it - if ( m_pOldLog != NULL && m_bPassMessages ) { - // FIXME why can't we access protected wxLog method from here (we derive - // from wxLog)? gcc gives "DoLog is protected in this context", what - // does this mean? Anyhow, the cast is harmless and let's us do what - // we want. - ((wxLogWindow *)m_pOldLog)->DoLog(level, szString, t); - } - - if ( m_pLogFrame ) { - switch ( level ) { - case wxLOG_Status: - // by default, these messages are ignored by wxLog, so process - // them ourselves - if ( !wxIsEmpty(szString) ) - { - wxString str; - str << _("Status: ") << szString; - DoLogString(str, t); - } - break; - - // don't put trace messages in the text window for 2 reasons: - // 1) there are too many of them - // 2) they may provoke other trace messages thus sending a program - // into an infinite loop - case wxLOG_Trace: - break; - - default: - // and this will format it nicely and call our DoLogString() - wxLog::DoLog(level, szString, t); - } - } - - m_bHasMessages = TRUE; -} - -void wxLogWindow::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) -{ - // put the text into our window - wxTextCtrl *pText = m_pLogFrame->TextCtrl(); - - // remove selection (WriteText is in fact ReplaceSelection) -#ifdef __WXMSW__ - long nLen = pText->GetLastPosition(); - pText->SetSelection(nLen, nLen); -#endif // Windows - - pText->WriteText(szString); - pText->WriteText(_T("\n")); // "\n" ok here (_not_ "\r\n") - - // TODO ensure that the line can be seen -} - -wxFrame *wxLogWindow::GetFrame() const -{ - return m_pLogFrame; -} - -void wxLogWindow::OnFrameCreate(wxFrame * WXUNUSED(frame)) -{ -} - -void wxLogWindow::OnFrameDelete(wxFrame * WXUNUSED(frame)) -{ - m_pLogFrame = (wxLogFrame *)NULL; -} - -wxLogWindow::~wxLogWindow() -{ - delete m_pOldLog; - - // may be NULL if log frame already auto destroyed itself - delete m_pLogFrame; -} - -#endif //wxUSE_NOGUI - -// ============================================================================ -// Global functions/variables -// ============================================================================ - -// ---------------------------------------------------------------------------- -// static variables -// ---------------------------------------------------------------------------- - -wxLog *wxLog::ms_pLogger = (wxLog *)NULL; -bool wxLog::ms_doLog = TRUE; -bool wxLog::ms_bAutoCreate = TRUE; -wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0; -wxArrayString wxLog::ms_aTraceMasks; - -// ---------------------------------------------------------------------------- -// stdout error logging helper -// ---------------------------------------------------------------------------- - -// helper function: wraps the message and justifies it under given position -// (looks more pretty on the terminal). Also adds newline at the end. -// -// TODO this is now disabled until I find a portable way of determining the -// terminal window size (ok, I found it but does anybody really cares?) -#ifdef LOG_PRETTY_WRAP -static void wxLogWrap(FILE *f, const char *pszPrefix, const char *psz) -{ - size_t nMax = 80; // FIXME - size_t nStart = strlen(pszPrefix); - fputs(pszPrefix, f); - - size_t n; - while ( *psz != '\0' ) { - for ( n = nStart; (n < nMax) && (*psz != '\0'); n++ ) - putc(*psz++, f); - - // wrapped? - if ( *psz != '\0' ) { - /*putc('\n', f);*/ - for ( n = 0; n < nStart; n++ ) - putc(' ', f); - - // as we wrapped, squeeze all white space - while ( isspace(*psz) ) - psz++; - } - } - - putc('\n', f); -} -#endif //LOG_PRETTY_WRAP - -// ---------------------------------------------------------------------------- -// error code/error message retrieval functions -// ---------------------------------------------------------------------------- - -// get error code from syste -unsigned long wxSysErrorCode() -{ -#ifdef __WXMSW__ -#ifdef __WIN32__ - return ::GetLastError(); -#else //WIN16 - // TODO what to do on Windows 3.1? - return 0; -#endif //WIN16/32 -#else //Unix - return errno; -#endif //Win/Unix -} - -// get error message from system -const wxChar *wxSysErrorMsg(unsigned long nErrCode) -{ - if ( nErrCode == 0 ) - nErrCode = wxSysErrorCode(); - -#ifdef __WXMSW__ -#ifdef __WIN32__ - static wxChar s_szBuf[LOG_BUFFER_SIZE / 2]; - - // get error message from system - LPVOID lpMsgBuf; - FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, - NULL, nErrCode, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), - (LPTSTR)&lpMsgBuf, - 0, NULL); - - // copy it to our buffer and free memory - wxStrncpy(s_szBuf, (const wxChar *)lpMsgBuf, WXSIZEOF(s_szBuf) - 1); - s_szBuf[WXSIZEOF(s_szBuf) - 1] = _T('\0'); - LocalFree(lpMsgBuf); - - // returned string is capitalized and ended with '\r\n' - bad - s_szBuf[0] = (wxChar)wxTolower(s_szBuf[0]); - size_t len = wxStrlen(s_szBuf); - if ( len > 0 ) { - // truncate string - if ( s_szBuf[len - 2] == _T('\r') ) - s_szBuf[len - 2] = _T('\0'); - } - - return s_szBuf; -#else //Win16 - // TODO - return NULL; -#endif // Win16/32 -#else // Unix -#if wxUSE_UNICODE - static wxChar s_szBuf[LOG_BUFFER_SIZE / 2]; - wxConv_libc.MB2WC(s_szBuf, strerror(nErrCode), WXSIZEOF(s_szBuf) -1); - return s_szBuf; -#else - return strerror(nErrCode); -#endif -#endif // Win/Unix -} - -// ---------------------------------------------------------------------------- -// debug helper -// ---------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -// break into the debugger -void Trap() -{ -#ifdef __WXMSW__ - DebugBreak(); -#elif defined(__WXMAC__) -#if __powerc - Debugger(); -#else - SysBreak(); -#endif -#elif defined(__UNIX__) - raise(SIGTRAP); -#else - // TODO -#endif // Win/Unix -} - -// this function is called when an assert fails -void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) -{ - // this variable can be set to true to suppress "assert failure" messages - static bool s_bNoAsserts = FALSE; - static bool s_bInAssert = FALSE; // FIXME MT-unsafe - - if ( s_bInAssert ) { - // He-e-e-e-elp!! we're trapped in endless loop - Trap(); - - s_bInAssert = FALSE; - - return; - } - - s_bInAssert = TRUE; - - wxChar szBuf[LOG_BUFFER_SIZE]; - - // make life easier for people using VC++ IDE: clicking on the message - // will take us immediately to the place of the failed assert -#ifdef __VISUALC__ - wxSprintf(szBuf, _T("%s(%d): assert failed"), szFile, nLine); -#else // !VC++ - // make the error message more clear for all the others - wxSprintf(szBuf, _T("Assert failed in file %s at line %d"), szFile, nLine); -#endif // VC/!VC - - if ( szMsg != NULL ) { - wxStrcat(szBuf, _T(": ")); - wxStrcat(szBuf, szMsg); - } - else { - wxStrcat(szBuf, _T(".")); - } - - if ( !s_bNoAsserts ) { - // send it to the normal log destination - wxLogDebug(szBuf); - -#if wxUSE_NOGUI - Trap(); -#else - // this message is intentionally not translated - it is for - // developpers only - wxStrcat(szBuf, _T("\nDo you want to stop the program?" - "\nYou can also choose [Cancel] to suppress " - "further warnings.")); - - switch ( wxMessageBox(szBuf, _("Debug"), - wxYES_NO | wxCANCEL | wxICON_STOP ) ) { - case wxYES: - Trap(); - break; - - case wxCANCEL: - s_bNoAsserts = TRUE; - break; - - //case wxNO: nothing to do - } -#endif // USE_NOGUI - } - - s_bInAssert = FALSE; -} - -#endif //WXDEBUG - diff --git a/src/common/longlong.cpp b/src/common/longlong.cpp deleted file mode 100644 index 46e5bf98e4..0000000000 --- a/src/common/longlong.cpp +++ /dev/null @@ -1,469 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/longlong.cpp -// Purpose: implementation of wxLongLongNative -// Author: Jeffrey C. Ollie , Vadim Zeitlin -// Remarks: this class is not public in wxWindows 2.0! It is intentionally -// not documented and is for private use only. -// Modified by: -// Created: 10.02.99 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers -// ============================================================================ - -#ifdef __GNUG__ - #pragma implementation "longlong.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/longlong.h" - -#include // for memset() - -// ============================================================================ -// implementation -// ============================================================================ - -#if wxUSE_LONGLONG_NATIVE - -// ---------------------------------------------------------------------------- -// misc -// ---------------------------------------------------------------------------- - -void *wxLongLongNative::asArray(void) const -{ - static unsigned char temp[8]; - - temp[0] = (m_ll >> 56) & 0xFF; - temp[1] = (m_ll >> 48) & 0xFF; - temp[2] = (m_ll >> 40) & 0xFF; - temp[3] = (m_ll >> 32) & 0xFF; - temp[4] = (m_ll >> 24) & 0xFF; - temp[5] = (m_ll >> 16) & 0xFF; - temp[6] = (m_ll >> 8) & 0xFF; - temp[7] = (m_ll >> 0) & 0xFF; - - return temp; -} - -// input/output -ostream& operator<< (ostream& o, const wxLongLongNative& ll) -{ - char result[65]; - - memset(result, 'A', 64); - - result[64] = '\0'; - - for (int i = 0; i < 64; i++) - { - result[63 - i] = '0' + (char) ((ll.m_ll >> i) & 1); - } - - return o << result; -} - -#endif // wxUSE_LONGLONG_NATIVE - -#if wxUSE_LONGLONG_WX - -wxLongLongWx wxLongLongWx::operator<<(int shift) const -{ - if (shift == 0) - return *this; - - if (shift < 32) - return wxLongLongWx((m_hi << shift) | (m_lo >> (32 - shift)), - m_lo << shift); - else - return wxLongLongWx(m_lo << (shift - 32), - 0); -} - -wxLongLongWx& wxLongLongWx::operator<<=(int shift) -{ - if (shift == 0) - return *this; - - if (shift < 32) - { - m_hi <<= shift; - m_hi |= m_lo >> (32 - shift); - m_lo <<= shift; - } - else - { - m_hi = m_lo << (shift - 32); - m_lo = 0; - } - - return *this; -} - -wxLongLongWx wxLongLongWx::operator>>(int shift) const -{ - if (shift == 0) - return *this; - - if (shift < 32) - return wxLongLongWx(m_hi >> shift, - (m_lo >> shift) | (m_hi << (32 - shift))); - else - return wxLongLongWx((m_hi < 0 ? -1l : 0), - m_hi >> (shift - 32)); -} - -wxLongLongWx& wxLongLongWx::operator>>=(int shift) -{ - if (shift == 0) - return *this; - - if (shift < 32) - { - m_lo >>= shift; - m_lo |= m_hi << (32 - shift); - m_hi >>= shift; - } - else - { - m_lo = m_hi >> (shift - 32); - m_hi = (m_hi < 0 ? -1L : 0); - } - - return *this; -} - -wxLongLongWx wxLongLongWx::operator+(const wxLongLongWx& ll) const -{ - wxLongLongWx temp; - - temp.m_lo = m_lo + ll.m_lo; - temp.m_hi = m_hi + ll.m_hi; - if ((temp.m_lo < m_lo) || (temp.m_lo < ll.m_lo)) - temp.m_hi++; - - return temp; -} - -wxLongLongWx wxLongLongWx::operator+(long l) const -{ - wxLongLongWx temp; - - temp.m_lo = m_lo + l; - - if (l < 0) - temp.m_hi += -1l; - - if ((temp.m_lo < m_lo) || (temp.m_lo < (unsigned long)l)) - temp.m_hi++; - - return temp; -} - -wxLongLongWx& wxLongLongWx::operator+=(const wxLongLongWx& ll) -{ - unsigned long previous = m_lo; - - m_lo += ll.m_lo; - m_hi += ll.m_hi; - - if ((m_lo < previous) || (m_lo < ll.m_lo)) - m_hi++; - - return *this; -} - -wxLongLongWx& wxLongLongWx::operator+=(long l) -{ - unsigned long previous = m_lo; - - m_lo += l; - if (l < 0) - m_hi += -1l; - - if ((m_lo < previous) || (m_lo < (unsigned long)l)) - m_hi++; - - return *this; -} - -// pre increment -wxLongLongWx& wxLongLongWx::operator++() -{ - m_lo++; - if (m_lo == 0) - m_hi++; - - return *this; -} - -// post increment -wxLongLongWx& wxLongLongWx::operator++(int) -{ - m_lo++; - if (m_lo == 0) - m_hi++; - - return *this; -} - -// negation -wxLongLongWx wxLongLongWx::operator-() const -{ - wxLongLongWx temp(~m_hi, ~m_lo); - - temp.m_lo++; - if (temp.m_lo == 0) - temp.m_hi++; - - return temp; -} - -// subtraction - -wxLongLongWx wxLongLongWx::operator-(const wxLongLongWx& ll) const -{ - wxLongLongWx temp; - - temp.m_lo = m_lo - ll.m_lo; - temp.m_hi = m_hi - ll.m_hi; - - if (m_lo < ll.m_lo) - temp.m_hi--; - - return temp; -} - -wxLongLongWx& wxLongLongWx::operator-=(const wxLongLongWx& ll) -{ - unsigned long previous = m_lo; - - m_lo -= ll.m_lo; - m_hi -= ll.m_hi; - - if (previous < ll.m_lo) - m_hi--; - - return *this;; -} - -// pre decrement -wxLongLongWx& wxLongLongWx::operator--() -{ - m_lo--; - if (m_lo == 0xFFFFFFFF) - m_hi--; - - return *this; -} - -// post decrement -wxLongLongWx& wxLongLongWx::operator--(int) -{ - m_lo--; - if (m_lo == 0xFFFFFFFF) - m_hi--; - - return *this; -} - -// comparison operators - -bool wxLongLongWx::operator<(const wxLongLongWx& ll) const -{ - if (m_lo < ll.m_lo) - return 1; - if (m_lo > ll.m_lo) - return 0; - if (m_hi < ll.m_hi) - return 1; - if (m_hi > ll.m_hi) - return 0; - return 0; -} - -bool wxLongLongWx::operator>(const wxLongLongWx& ll) const -{ - if (m_lo < ll.m_lo) - return 0; - if (m_lo > ll.m_lo) - return 1; - if (m_hi < ll.m_hi) - return 0; - if (m_hi > ll.m_hi) - return 1; - return 0; -} - -bool wxLongLongWx::operator<=(const wxLongLongWx& ll) const -{ - if (m_lo < ll.m_lo) - return 1; - if (m_lo > ll.m_lo) - return 0; - if (m_hi < ll.m_hi) - return 1; - if (m_hi > ll.m_hi) - return 0; - return 1; -} - -bool wxLongLongWx::operator>=(const wxLongLongWx& ll) const -{ - if (m_lo < ll.m_lo) - return 0; - if (m_lo > ll.m_lo) - return 1; - if (m_hi < ll.m_hi) - return 0; - if (m_hi > ll.m_hi) - return 1; - return 1; -} - -// bitwise operators - -wxLongLongWx wxLongLongWx::operator&(const wxLongLongWx& ll) const -{ - return wxLongLongWx(m_hi & ll.m_hi, m_lo & ll.m_lo); -} - -wxLongLongWx wxLongLongWx::operator|(const wxLongLongWx& ll) const -{ - return wxLongLongWx(m_hi | ll.m_hi, m_lo | ll.m_lo); -} - -wxLongLongWx wxLongLongWx::operator^(const wxLongLongWx& ll) const -{ - return wxLongLongWx(m_hi ^ ll.m_hi, m_lo ^ ll.m_lo); -} - -wxLongLongWx& wxLongLongWx::operator&=(const wxLongLongWx& ll) -{ - m_lo &= ll.m_lo; - m_hi &= ll.m_hi; - - return *this; -} - -wxLongLongWx& wxLongLongWx::operator|=(const wxLongLongWx& ll) -{ - m_lo |= ll.m_lo; - m_hi |= ll.m_hi; - - return *this; -} - -wxLongLongWx& wxLongLongWx::operator^=(const wxLongLongWx& ll) -{ - m_lo ^= ll.m_lo; - m_hi ^= ll.m_hi; - - return *this; -} - -wxLongLongWx wxLongLongWx::operator~() const -{ - return wxLongLongWx(~m_hi, ~m_lo); -} - -// multiplication - -wxLongLongWx wxLongLongWx::operator*(const wxLongLongWx& ll) const -{ - wxLongLongWx t(m_hi, m_lo); - wxLongLongWx q(ll.m_hi, ll.m_lo); - wxLongLongWx p; - int counter = 0; - - do - { - if ((q.m_lo & 1) != 0) - p += t; - q >>= 1; - t <<= 1; - counter++; - } - while ((counter < 64) && ((q.m_hi != 0) || (q.m_lo != 0))); - return p; -} - -wxLongLongWx& wxLongLongWx::operator*=(const wxLongLongWx& ll) -{ - wxLongLongWx t(m_hi, m_lo); - wxLongLongWx q(ll.m_hi, ll.m_lo); - int counter = 0; - - do - { - if ((q.m_lo & 1) != 0) - *this += t; - q >>= 1; - t <<= 1; - counter++; - } - while ((counter < 64) && ((q.m_hi != 0) || (q.m_lo != 0))); - return *this; -} - -// division - -void wxLongLongWx::Divide(const wxLongLongWx& divisor, wxLongLongWx& quotient, wxLongLongWx& remainder) const -{ - if ((divisor.m_lo == 0) && (divisor.m_hi == 0)) - { - // provoke division by zero error and silence the compilers warnings - // about an expression without effect and unused variable - long dummy = divisor.m_lo/divisor.m_hi; - dummy += 0; - } - - wxFAIL_MSG("not implemented"); -} - -// temporary - just for testing -void *wxLongLongWx::asArray(void) const -{ - static unsigned char temp[8]; - - temp[0] = (m_hi >> 24) & 0xFF; - temp[1] = (m_hi >> 16) & 0xFF; - temp[2] = (m_hi >> 8) & 0xFF; - temp[3] = (m_hi >> 0) & 0xFF; - temp[4] = (m_lo >> 24) & 0xFF; - temp[5] = (m_lo >> 16) & 0xFF; - temp[6] = (m_lo >> 8) & 0xFF; - temp[7] = (m_lo >> 0) & 0xFF; - - return temp; -} - -// input/output - -ostream& operator<< (ostream& o, const wxLongLongWx& ll) -{ - char result[65]; - - memset(result, 'A', 64); - - result[64] = '\0'; - - for (int i = 0; i < 32; i++) - { - result[31 - i] = (char) ('0' + (int) ((ll.m_hi >> i) & 1)); - result[63 - i] = (char) ('0' + (int) ((ll.m_lo >> i) & 1)); - } - - return o << result; -} -#endif wxUSE_LONGLONG_WX - diff --git a/src/common/matrix.cpp b/src/common/matrix.cpp deleted file mode 100644 index 84beee3b61..0000000000 --- a/src/common/matrix.cpp +++ /dev/null @@ -1,267 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: matrix.cpp -// Purpose: wxTransformMatrix class -// Author: Chris Breeze, Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "matrix.h" -#endif - -// Note: this is intended to be used in wxDC at some point to replace -// the current system of scaling/translation. It is not yet used. - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#include "wx/matrix.h" -#include - -const double pi = 3.1415926535; - -wxTransformMatrix::wxTransformMatrix(void) -{ - m_isIdentity = FALSE; - - Identity(); -} - -wxTransformMatrix::wxTransformMatrix(const wxTransformMatrix& mat) -{ - (*this) = mat; -} - -double wxTransformMatrix::GetValue(int row, int col) const -{ - if (row < 0 || row > 2 || col < 0 || col > 2) - return 0.0; - - return m_matrix[row][col]; -} - -void wxTransformMatrix::SetValue(int row, int col, double value) -{ - if (row < 0 || row > 2 || col < 0 || col > 2) - return; - - m_matrix[row][col] = value; -} - -void wxTransformMatrix::operator = (const wxTransformMatrix& mat) -{ - int i, j; - for (i = 0; i < 3; i++) - { - for (j = 0; j < 3; j++) - { - m_matrix[i][j] = mat.m_matrix[i][j]; - } - } - m_isIdentity = mat.m_isIdentity; -} - -bool wxTransformMatrix::operator == (const wxTransformMatrix& mat) -{ - int i, j; - for (i = 0; i < 3; i++) - { - for (j = 0; j < 3; j++) - { - if (m_matrix[i][j] != mat.m_matrix[i][j]) - return FALSE; - } - } - return TRUE; -} - -bool wxTransformMatrix::operator != (const wxTransformMatrix& mat) -{ - return (! ((*this) == mat)); -} - -double& wxTransformMatrix::operator()(int row, int col) -{ - if (row < 0 || row > 2 || col < 0 || col > 2) - return m_matrix[0][0]; - - return m_matrix[row][col]; -} - -double wxTransformMatrix::operator()(int row, int col) const -{ - if (row < 0 || row > 2 || col < 0 || col > 2) - return 0.0; - - return m_matrix[row][col]; -} - -// Invert matrix -bool wxTransformMatrix::Invert(void) -{ - double inverseMatrix[3][3]; - - // calculate the adjoint - inverseMatrix[0][0] = wxCalculateDet(m_matrix[1][1],m_matrix[2][1],m_matrix[1][2],m_matrix[2][2]); - inverseMatrix[0][1] = -wxCalculateDet(m_matrix[0][1],m_matrix[2][1],m_matrix[0][2],m_matrix[2][2]); - inverseMatrix[0][2] = wxCalculateDet(m_matrix[0][1],m_matrix[1][1],m_matrix[0][2],m_matrix[1][2]); - - inverseMatrix[1][0] = -wxCalculateDet(m_matrix[1][0],m_matrix[2][0],m_matrix[1][2],m_matrix[2][2]); - inverseMatrix[1][1] = wxCalculateDet(m_matrix[0][0],m_matrix[2][0],m_matrix[0][2],m_matrix[2][2]); - inverseMatrix[1][2] = -wxCalculateDet(m_matrix[0][0],m_matrix[1][0],m_matrix[0][2],m_matrix[1][2]); - - inverseMatrix[2][0] = wxCalculateDet(m_matrix[1][0],m_matrix[2][0],m_matrix[1][1],m_matrix[2][1]); - inverseMatrix[2][1] = -wxCalculateDet(m_matrix[0][0],m_matrix[2][0],m_matrix[0][1],m_matrix[2][1]); - inverseMatrix[2][2] = wxCalculateDet(m_matrix[0][0],m_matrix[1][0],m_matrix[0][1],m_matrix[1][1]); - - // now divide by the determinant - double det = m_matrix[0][0] * inverseMatrix[0][0] + m_matrix[0][1] * inverseMatrix[1][0] + m_matrix[0][2] * inverseMatrix[2][0]; - if (det != 0.0) - { - inverseMatrix[0][0] /= det; inverseMatrix[1][0] /= det; inverseMatrix[2][0] /= det; - inverseMatrix[0][1] /= det; inverseMatrix[1][1] /= det; inverseMatrix[2][1] /= det; - inverseMatrix[0][2] /= det; inverseMatrix[1][2] /= det; inverseMatrix[2][2] /= det; - - int i, j; - for (i = 0; i < 3; i++) - { - for (j = 0; j < 3; j++) - { - m_matrix[i][j] = inverseMatrix[i][j]; - } - } - m_isIdentity = IsIdentity1(); - return TRUE; - } - else - { - return FALSE; - } -} - -// Make into identity matrix -bool wxTransformMatrix::Identity(void) -{ - m_matrix[0][0] = m_matrix[1][1] = m_matrix[2][2] = 1.0; - m_matrix[1][0] = m_matrix[2][0] = m_matrix[0][1] = m_matrix[2][1] = m_matrix[0][2] = m_matrix[1][2] = 0.0; - m_isIdentity = TRUE; - - return TRUE; -} - -// Scale by scale (isotropic scaling i.e. the same in x and y): -// | scale 0 0 | -// matrix' = | 0 scale 0 | x matrix -// | 0 0 scale | -// -bool wxTransformMatrix::Scale(double scale) -{ - int i, j; - for (i = 0; i < 3; i++) - { - for (j = 0; j < 3; j++) - { - m_matrix[i][j] *= scale; - } - } - m_isIdentity = IsIdentity1(); - - return TRUE; -} - -// Translate by dx, dy: -// | 1 0 dx | -// matrix' = | 0 1 dy | x matrix -// | 0 0 1 | -// -bool wxTransformMatrix::Translate(double dx, double dy) -{ - int i; - for (i = 0; i < 3; i++) - m_matrix[i][0] += dx * m_matrix[i][2]; - for (i = 0; i < 3; i++) - m_matrix[i][1] += dy * m_matrix[i][2]; - - m_isIdentity = IsIdentity1(); - - return TRUE; -} - -// Rotate by the given number of degrees: -// | cos sin 0 | -// matrix' = | -sin cos 0 | x matrix -// | 0 0 1 | -// -bool wxTransformMatrix::Rotate(double degrees) -{ - double angle = degrees * pi / 180.0; - double s = sin(angle); - double c = cos(angle); - - m_matrix[0][0] = c * m_matrix[0][0] + s * m_matrix[0][1]; - m_matrix[1][0] = c * m_matrix[1][0] + s * m_matrix[1][1]; - m_matrix[2][0] = c * m_matrix[2][0] + s * m_matrix[2][1]; - m_matrix[0][2] = c * m_matrix[0][1] - s * m_matrix[0][0]; - m_matrix[1][2] = c * m_matrix[1][1] - s * m_matrix[1][0]; - m_matrix[2][2] = c * m_matrix[2][1] - s * m_matrix[2][0]; - - m_isIdentity = IsIdentity1(); - - return TRUE; -} - -// Transform a point from logical to device coordinates -bool wxTransformMatrix::TransformPoint(double x, double y, double& tx, double& ty) const -{ - if (IsIdentity()) - { - tx = x; ty = y; return TRUE; - } - - tx = x * m_matrix[0][0] + y * m_matrix[1][0] + m_matrix[2][0]; - ty = x * m_matrix[0][1] + y * m_matrix[1][1] + m_matrix[2][1]; - - return TRUE; -} - -// Transform a point from device to logical coordinates. - -// Example of use: -// wxTransformMatrix mat = dc.GetTransformation(); -// mat.Invert(); -// mat.InverseTransformPoint(x, y, x1, y1); -// OR (shorthand:) -// dc.LogicalToDevice(x, y, x1, y1); -// The latter is slightly less efficient if we're doing several -// conversions, since the matrix is inverted several times. - -bool wxTransformMatrix::InverseTransformPoint(double x, double y, double& tx, double& ty) const -{ - if (IsIdentity()) - { - tx = x; ty = y; return TRUE; - } - - double z = (1.0 - m_matrix[0][2] * x - m_matrix[1][2] * y) / m_matrix[2][2]; - if (z == 0.0) - { -// z = 0.0000001; - return FALSE; - } - tx = x * m_matrix[0][0] + y * m_matrix[1][0] + z * m_matrix[2][0]; - ty = x * m_matrix[0][1] + y * m_matrix[1][1] + z * m_matrix[2][1]; - return TRUE; -} - diff --git a/src/common/memory.cpp b/src/common/memory.cpp deleted file mode 100644 index 4b8af7b876..0000000000 --- a/src/common/memory.cpp +++ /dev/null @@ -1,1204 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: memory.cpp -// Purpose: Memory checking implementation -// Author: Arthur Seaton, Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "memory.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - -#ifdef __GNUG__ -// #pragma implementation -#endif - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/app.h" -#endif - -#include -#include - -#include "wx/ioswrap.h" - -#if wxUSE_IOSTREAMH - #include -#else - #include -#endif - -#if !defined(__WATCOMC__) && !defined(__VMS__) && !defined( __MWERKS__ ) && !defined(__SALFORDC__) -#include -#endif - -#include -#include - -#ifdef __WXMSW__ -#include - -#ifdef GetClassInfo -#undef GetClassInfo -#endif - -#ifdef GetClassName -#undef GetClassName -#endif - -#endif - -#include "wx/memory.h" - -#ifdef new -#undef new -#endif - -// wxDebugContext wxTheDebugContext; -/* - Redefine new and delete so that we can pick up situations where: - - we overwrite or underwrite areas of malloc'd memory. - - we use uninitialise variables - Only do this in debug mode. - - We change new to get enough memory to allocate a struct, followed - by the caller's requested memory, followed by a tag. The struct - is used to create a doubly linked list of these areas and also - contains another tag. The tags are used to determine when the area - has been over/under written. -*/ - - -/* - Values which are used to set the markers which will be tested for - under/over write. There are 3 of these, one in the struct, one - immediately after the struct but before the caller requested memory and - one immediately after the requested memory. -*/ -#define MemStartCheck 0x23A8 -#define MemMidCheck 0xA328 -#define MemEndCheck 0x8A32 -#define MemFillChar 0xAF -#define MemStructId 0x666D - -/* - External interface for the wxMemStruct class. Others are - defined inline within the class def. Here we only need to be able - to add and delete nodes from the list and handle errors in some way. -*/ - -/* - Used for internal "this shouldn't happen" type of errors. -*/ -void wxMemStruct::ErrorMsg (const char * mesg) -{ - wxLogDebug(_T("wxWindows memory checking error: %s"), mesg); - PrintNode (); - -// << m_fileName << ' ' << m_lineNum << endl; -} - -/* - Used when we find an overwrite or an underwrite error. -*/ -void wxMemStruct::ErrorMsg () -{ - wxLogDebug(_T("wxWindows over/underwrite memory error:")); - PrintNode (); - -// cerr << m_fileName << ' ' << m_lineNum << endl; -} - - -/* - We want to find out if pointers have been overwritten as soon as is - possible, so test everything before we dereference it. Of course it's still - quite possible that, if things have been overwritten, this function will - fall over, but the only way of dealing with that would cost too much in terms - of time. -*/ -int wxMemStruct::AssertList () -{ - if (wxDebugContext::GetHead () != 0 && ! (wxDebugContext::GetHead ())->AssertIt () || - wxDebugContext::GetTail () != 0 && ! wxDebugContext::GetTail ()->AssertIt ()) { - ErrorMsg ("Head or tail pointers trashed"); - return 0; - } - return 1; -} - - -/* - Check that the thing we're pointing to has the correct id for a wxMemStruct - object and also that it's previous and next pointers are pointing at objects - which have valid ids. - This is definitely not perfect since we could fall over just trying to access - any of the slots which we use here, but I think it's about the best that I - can do without doing something like taking all new wxMemStruct pointers and - comparing them against all known pointer within the list and then only - doing this sort of check _after_ you've found the pointer in the list. That - would be safer, but also much more time consuming. -*/ -int wxMemStruct::AssertIt () -{ - return (m_id == MemStructId && - (m_prev == 0 || m_prev->m_id == MemStructId) && - (m_next == 0 || m_next->m_id == MemStructId)); -} - - -/* - Additions are always at the tail of the list. - Returns 0 on error, non-zero on success. -*/ -int wxMemStruct::Append () -{ - if (! AssertList ()) - return 0; - - if (wxDebugContext::GetHead () == 0) { - if (wxDebugContext::GetTail () != 0) { - ErrorMsg ("Null list should have a null tail pointer"); - return 0; - } - (void) wxDebugContext::SetHead (this); - (void) wxDebugContext::SetTail (this); - } else { - wxDebugContext::GetTail ()->m_next = this; - this->m_prev = wxDebugContext::GetTail (); - (void) wxDebugContext::SetTail (this); - } - return 1; -} - - -/* - Don't actually free up anything here as the space which is used - by the node will be free'd up when the whole block is free'd. - Returns 0 on error, non-zero on success. -*/ -int wxMemStruct::Unlink () -{ - if (! AssertList ()) - return 0; - - if (wxDebugContext::GetHead () == 0 || wxDebugContext::GetTail () == 0) { - ErrorMsg ("Trying to remove node from empty list"); - return 0; - } - - // Handle the part of the list before this node. - if (m_prev == 0) { - if (this != wxDebugContext::GetHead ()) { - ErrorMsg ("No previous node for non-head node"); - return 0; - } - (void) wxDebugContext::SetHead (m_next); - } else { - if (! m_prev->AssertIt ()) { - ErrorMsg ("Trashed previous pointer"); - return 0; - } - - if (m_prev->m_next != this) { - ErrorMsg ("List is inconsistent"); - return 0; - } - m_prev->m_next = m_next; - } - - // Handle the part of the list after this node. - if (m_next == 0) { - if (this != wxDebugContext::GetTail ()) { - ErrorMsg ("No next node for non-tail node"); - return 0; - } - (void) wxDebugContext::SetTail (m_prev); - } else { - if (! m_next->AssertIt ()) { - ErrorMsg ("Trashed next pointer"); - return 0; - } - - if (m_next->m_prev != this) { - ErrorMsg ("List is inconsistent"); - return 0; - } - m_next->m_prev = m_prev; - } - - return 1; -} - - - -/* - Checks a node and block of memory to see that the markers are still - intact. -*/ -int wxMemStruct::CheckBlock () -{ - int nFailures = 0; - - if (m_firstMarker != MemStartCheck) { - nFailures++; - ErrorMsg (); - } - - char * pointer = wxDebugContext::MidMarkerPos ((char *) this); - if (* (wxMarkerType *) pointer != MemMidCheck) { - nFailures++; - ErrorMsg (); - } - - pointer = wxDebugContext::EndMarkerPos ((char *) this, RequestSize ()); - if (* (wxMarkerType *) pointer != MemEndCheck) { - nFailures++; - ErrorMsg (); - } - - return nFailures; -} - - -/* - Check the list of nodes to see if they are all ok. -*/ -int wxMemStruct::CheckAllPrevious () -{ - int nFailures = 0; - - for (wxMemStruct * st = this->m_prev; st != 0; st = st->m_prev) { - if (st->AssertIt ()) - nFailures += st->CheckBlock (); - else - return -1; - } - - return nFailures; -} - - -/* - When we delete a node we set the id slot to a specific value and then test - against this to see if a nodes have been deleted previously. I don't - just set the entire memory to the fillChar because then I'd be overwriting - useful stuff like the vtbl which may be needed to output the error message - including the file name and line numbers. Without this info the whole point - of this class is lost! -*/ -void wxMemStruct::SetDeleted () -{ - m_id = MemFillChar; -} - -int wxMemStruct::IsDeleted () -{ - return (m_id == MemFillChar); -} - - -/* - Print out a single node. There are many far better ways of doing this - but this will suffice for now. -*/ -void wxMemStruct::PrintNode () -{ - if (m_isObject) - { - wxObject *obj = (wxObject *)m_actualData; - wxClassInfo *info = obj->GetClassInfo(); - - // Let's put this in standard form so IDEs can load the file at the appropriate - // line - wxString msg(_T("")); - - if (m_fileName) - msg.Printf(_T("%s(%d): "), m_fileName, (int)m_lineNum); - - if (info && info->GetClassName()) - msg += info->GetClassName(); - else - msg += _T("object"); - - wxString msg2; - msg2.Printf(_T(" at $%lX, size %d"), (long)GetActualData(), (int)RequestSize()); - msg += msg2; - - wxLogDebug(msg); - } - else - { - wxString msg(""); - - if (m_fileName) - msg.Printf(_T("%s(%d): "), m_fileName, (int)m_lineNum); - msg += _T("non-object data"); - wxString msg2; - msg2.Printf(_T(" at $%lX, size %d\n"), (long)GetActualData(), (int)RequestSize()); - msg += msg2; - - wxLogDebug(msg); - } -} - -void wxMemStruct::Dump () -{ - if (!ValidateNode()) return; - - if (m_isObject) - { - wxObject *obj = (wxObject *)m_actualData; - - wxString msg(_T("")); - if (m_fileName) - msg.Printf(_T("%s(%d): "), m_fileName, (int)m_lineNum); - - - /* TODO: We no longer have a stream (using wxLogDebug) so we can't dump it. - * Instead, do what wxObject::Dump does. - * What should we do long-term, eliminate Dumping? Or specify - * that MyClass::Dump should use wxLogDebug? Ugh. - obj->Dump(wxDebugContext::GetStream()); - */ - - if (obj->GetClassInfo() && obj->GetClassInfo()->GetClassName()) - msg += obj->GetClassInfo()->GetClassName(); - else - msg += _T("unknown object class"); - - wxString msg2(""); - msg2.Printf(_T(" at $%lX, size %d"), (long)GetActualData(), (int)RequestSize()); - msg += msg2; - - wxLogDebug(msg); - } - else - { - wxString msg(_T("")); - if (m_fileName) - msg.Printf(_T("%s(%d): "), m_fileName, (int)m_lineNum); - - wxString msg2(""); - msg2.Printf(_T("non-object data at $%lX, size %d"), (long)GetActualData(), (int)RequestSize() ); - msg += msg2; - wxLogDebug(msg); - } -} - - -/* - Validate a node. Check to see that the node is "clean" in the sense - that nothing has over/underwritten it etc. -*/ -int wxMemStruct::ValidateNode () -{ - char * startPointer = (char *) this; - if (!AssertIt ()) { - if (IsDeleted ()) - ErrorMsg ("Object already deleted"); - else { - // Can't use the error routines as we have no recognisable object. -#ifndef __WXGTK__ - wxLogDebug(_T("Can't verify memory struct - all bets are off!")); -#endif - } - return 0; - } - -/* - int i; - for (i = 0; i < wxDebugContext::TotSize (requestSize ()); i++) - cout << startPointer [i]; - cout << endl; -*/ - if (Marker () != MemStartCheck) - ErrorMsg (); - if (* (wxMarkerType *) wxDebugContext::MidMarkerPos (startPointer) != MemMidCheck) - ErrorMsg (); - if (* (wxMarkerType *) wxDebugContext::EndMarkerPos (startPointer, - RequestSize ()) != - MemEndCheck) - ErrorMsg (); - - // Back to before the extra buffer and check that - // we can still read what we originally wrote. - if (Marker () != MemStartCheck || - * (wxMarkerType *) wxDebugContext::MidMarkerPos (startPointer) - != MemMidCheck || - * (wxMarkerType *) wxDebugContext::EndMarkerPos (startPointer, - RequestSize ()) != MemEndCheck) - { - ErrorMsg (); - return 0; - } - - return 1; -} - -/* - The wxDebugContext class. -*/ - -wxMemStruct *wxDebugContext::m_head = NULL; -wxMemStruct *wxDebugContext::m_tail = NULL; -// ostream *wxDebugContext::m_debugStream = NULL; -// streambuf *wxDebugContext::m_streamBuf = NULL; - -// Must initialise these in wxEntry, and then delete them just before wxEntry exits -streambuf *wxDebugContext::m_streamBuf = NULL; -ostream *wxDebugContext::m_debugStream = NULL; - -bool wxDebugContext::m_checkPrevious = FALSE; -int wxDebugContext::debugLevel = 1; -bool wxDebugContext::debugOn = TRUE; -wxMemStruct *wxDebugContext::checkPoint = NULL; - -wxDebugContext::wxDebugContext(void) -{ -// m_streamBuf = new wxDebugStreamBuf; -// m_debugStream = new ostream(m_streamBuf); -} - -wxDebugContext::~wxDebugContext(void) -{ - SetStream(NULL, NULL); -} - -/* - * It's bizarre, but with BC++ 4.5, the value of str changes - * between SetFile and SetStream. - */ - -void wxDebugContext::SetStream(ostream *str, streambuf *buf) -{ - if (m_debugStream) - { - m_debugStream->flush(); - delete m_debugStream; - } - m_debugStream = NULL; - - // Not allowed in Watcom (~streambuf is protected). - // Is this trying to say something significant to us?? -#ifndef __WATCOMC__ - if (m_streamBuf) - { - streambuf* oldBuf = m_streamBuf; - m_streamBuf = NULL; - delete oldBuf; - } -#endif - m_streamBuf = buf; - m_debugStream = str; -} - -bool wxDebugContext::SetFile(const wxString& file) -{ - ofstream *str = new ofstream(file.fn_str()); - - if (str->bad()) - { - delete str; - return FALSE; - } - else - { - SetStream(str); - return TRUE; - } -} - -bool wxDebugContext::SetStandardError(void) -{ - // Obsolete -#if 0 -#if !defined(_WINDLL) - wxDebugStreamBuf *buf = new wxDebugStreamBuf; - ostream *stream = new ostream(m_streamBuf); - SetStream(stream, buf); - return TRUE; -#else - return FALSE; -#endif -#endif - return FALSE; -} - - -/* - Work out the positions of the markers by creating an array of 2 markers - and comparing the addresses of the 2 elements. Use this number as the - alignment for markers. -*/ -size_t wxDebugContext::CalcAlignment () -{ - wxMarkerType ar[2]; - return (char *) &ar[1] - (char *) &ar[0]; -} - - -char * wxDebugContext::StructPos (const char * buf) -{ - return (char *) buf; -} - -char * wxDebugContext::MidMarkerPos (const char * buf) -{ - return StructPos (buf) + PaddedSize (sizeof (wxMemStruct)); -} - -char * wxDebugContext::CallerMemPos (const char * buf) -{ - return MidMarkerPos (buf) + PaddedSize (sizeof(wxMarkerType)); -} - - -char * wxDebugContext::EndMarkerPos (const char * buf, const size_t size) -{ - return CallerMemPos (buf) + PaddedSize (size); -} - - -/* - Slightly different as this takes a pointer to the start of the caller - requested region and returns a pointer to the start of the buffer. - */ -char * wxDebugContext::StartPos (const char * caller) -{ - return ((char *) (caller - wxDebugContext::PaddedSize (sizeof(wxMarkerType)) - - wxDebugContext::PaddedSize (sizeof (wxMemStruct)))); -} - -/* - We may need padding between various parts of the allocated memory. - Given a size of memory, this returns the amount of memory which should - be allocated in order to allow for alignment of the following object. - - I don't know how portable this stuff is, but it seems to work for me at - the moment. It would be real nice if I knew more about this! -*/ -size_t wxDebugContext::GetPadding (const size_t size) -{ - size_t pad = size % CalcAlignment (); - return (pad) ? sizeof(wxMarkerType) - pad : 0; -} - - - -size_t wxDebugContext::PaddedSize (const size_t size) -{ - return size + GetPadding (size); -} - -/* - Returns the total amount of memory which we need to get from the system - in order to satisfy a caller request. This includes space for the struct - plus markers and the caller's memory as well. -*/ -size_t wxDebugContext::TotSize (const size_t reqSize) -{ - return (PaddedSize (sizeof (wxMemStruct)) + PaddedSize (reqSize) + - 2 * sizeof(wxMarkerType)); -} - - -/* - Traverse the list of nodes executing the given function on each node. -*/ -void wxDebugContext::TraverseList (PmSFV func, wxMemStruct *from) -{ - if (!from) - from = wxDebugContext::GetHead (); - - for (wxMemStruct * st = from; st != 0; st = st->m_next) - { - void* data = st->GetActualData(); -// if ((data != (void*)m_debugStream) && (data != (void*) m_streamBuf)) - if (data != (void*) wxLog::GetActiveTarget()) - { - (st->*func) (); - } - } -} - - -/* - Print out the list. - */ -bool wxDebugContext::PrintList (void) -{ -#ifdef __WXDEBUG__ -// if (!HasStream()) -// return FALSE; - - TraverseList ((PmSFV)&wxMemStruct::PrintNode, (checkPoint ? checkPoint->m_next : (wxMemStruct*)NULL)); - - return TRUE; -#else - return FALSE; -#endif -} - -bool wxDebugContext::Dump(void) -{ -#ifdef __WXDEBUG__ -// if (!HasStream()) -// return FALSE; - -// if (TRUE) - { - wxChar* appName = _T("application"); - wxString appNameStr(""); - if (wxTheApp) - { - appNameStr = wxTheApp->GetAppName(); - appName = WXSTRINGCAST appNameStr; - wxLogDebug(_T("----- Memory dump of %s at %s -----"), appName, WXSTRINGCAST wxNow() ); - } - else - { - wxLogDebug( _T("----- Memory dump -----") ); - } - } - TraverseList ((PmSFV)&wxMemStruct::Dump, (checkPoint ? checkPoint->m_next : (wxMemStruct*)NULL)); - - wxLogDebug( _T("") ); - wxLogDebug( _T("") ); - - return TRUE; -#else - return FALSE; -#endif -} - -struct wxDebugStatsStruct -{ - long instanceCount; - long totalSize; - wxChar *instanceClass; - wxDebugStatsStruct *next; -}; - -static wxDebugStatsStruct *FindStatsStruct(wxDebugStatsStruct *st, wxChar *name) -{ - while (st) - { - if (wxStrcmp(st->instanceClass, name) == 0) - return st; - st = st->next; - } - return NULL; -} - -static wxDebugStatsStruct *InsertStatsStruct(wxDebugStatsStruct *head, wxDebugStatsStruct *st) -{ - st->next = head; - return st; -} - -bool wxDebugContext::PrintStatistics(bool detailed) -{ -#ifdef __WXDEBUG__ -// if (!HasStream()) -// return FALSE; - -// if (TRUE) - { - wxChar* appName = _T("application"); - wxString appNameStr(_T("")); - if (wxTheApp) - { - appNameStr = wxTheApp->GetAppName(); - appName = WXSTRINGCAST appNameStr; - wxLogDebug(_T("----- Memory statistics of %s at %s -----"), appName, WXSTRINGCAST wxNow() ); - } - else - { - wxLogDebug( _T("----- Memory statistics -----") ); - } - } - - bool currentMode = GetDebugMode(); - SetDebugMode(FALSE); - - long noNonObjectNodes = 0; - long noObjectNodes = 0; - long totalSize = 0; - - wxDebugStatsStruct *list = NULL; - - wxMemStruct *from = (checkPoint ? checkPoint->m_next : (wxMemStruct*)NULL ); - if (!from) - from = wxDebugContext::GetHead (); - - wxMemStruct *st; - for (st = from; st != 0; st = st->m_next) - { - void* data = st->GetActualData(); -// if (detailed && (data != (void*)m_debugStream) && (data != (void*) m_streamBuf)) - if (detailed && (data != (void*) wxLog::GetActiveTarget())) - { - wxChar *className = _T("nonobject"); - if (st->m_isObject && st->GetActualData()) - { - wxObject *obj = (wxObject *)st->GetActualData(); - if (obj->GetClassInfo()->GetClassName()) - className = obj->GetClassInfo()->GetClassName(); - } - wxDebugStatsStruct *stats = FindStatsStruct(list, className); - if (!stats) - { - stats = (wxDebugStatsStruct *)malloc(sizeof(wxDebugStatsStruct)); - stats->instanceClass = className; - stats->instanceCount = 0; - stats->totalSize = 0; - list = InsertStatsStruct(list, stats); - } - stats->instanceCount ++; - stats->totalSize += st->RequestSize(); - } - -// if ((data != (void*)m_debugStream) && (data != (void*) m_streamBuf)) - if (data != (void*) wxLog::GetActiveTarget()) - { - totalSize += st->RequestSize(); - if (st->m_isObject) - noObjectNodes ++; - else - noNonObjectNodes ++; - } - } - - if (detailed) - { - while (list) - { - wxLogDebug(_T("%ld objects of class %s, total size %ld"), - list->instanceCount, list->instanceClass, list->totalSize); - wxDebugStatsStruct *old = list; - list = old->next; - free((char *)old); - } - wxLogDebug(_T("")); - } - - SetDebugMode(currentMode); - - wxLogDebug(_T("Number of object items: %ld"), noObjectNodes); - wxLogDebug(_T("Number of non-object items: %ld"), noNonObjectNodes); - wxLogDebug(_T("Total allocated size: %ld"), totalSize); - wxLogDebug(_T("")); - wxLogDebug(_T("")); - - return TRUE; -#else - return FALSE; -#endif -} - -bool wxDebugContext::PrintClasses(void) -{ -// if (!HasStream()) -// return FALSE; - -// if (TRUE) - { - wxChar* appName = _T("application"); - wxString appNameStr(_T("")); - if (wxTheApp) - { - appNameStr = wxTheApp->GetAppName(); - appName = WXSTRINGCAST appNameStr; - wxLogDebug(_T("----- Classes in %s -----"), appName); - } - } - - int n = 0; - wxNode *node; - wxClassInfo *info; - - wxClassInfo::sm_classTable->BeginFind(); - node = wxClassInfo::sm_classTable->Next(); - while (node) - { - info = (wxClassInfo *)node->Data(); - if (info->GetClassName()) - { - wxString msg(info->GetClassName()); - msg += _T(" "); - - if (info->GetBaseClassName1() && !info->GetBaseClassName2()) - { - msg += _T("is a "); - msg += info->GetBaseClassName1(); - } - else if (info->GetBaseClassName1() && info->GetBaseClassName2()) - { - msg += _T("is a "); - msg += info->GetBaseClassName1() ; - msg += _T(", "); - msg += info->GetBaseClassName2() ; - } - if (info->GetConstructor()) - msg += _T(": dynamic"); - - wxLogDebug(msg); - } - node = wxClassInfo::sm_classTable->Next(); - n ++; - } - wxLogDebug(_T("")); - wxLogDebug(_T("There are %d classes derived from wxObject."), n); - wxLogDebug(_T("")); - wxLogDebug(_T("")); - return TRUE; -} - -void wxDebugContext::SetCheckpoint(bool all) -{ - if (all) - checkPoint = NULL; - else - checkPoint = m_tail; -} - -// Checks all nodes since checkpoint, or since start. -int wxDebugContext::Check(bool checkAll) -{ - int nFailures = 0; - - wxMemStruct *from = (checkPoint ? checkPoint->m_next : (wxMemStruct*)NULL ); - if (!from || checkAll) - from = wxDebugContext::GetHead (); - - for (wxMemStruct * st = from; st != 0; st = st->m_next) - { - if (st->AssertIt ()) - nFailures += st->CheckBlock (); - else - return -1; - } - - return nFailures; -} - -// Count the number of non-wxDebugContext-related objects -// that are outstanding -int wxDebugContext::CountObjectsLeft(bool sinceCheckpoint) -{ - int n = 0; - - wxMemStruct *from = NULL; - if (sinceCheckpoint && checkPoint) - from = checkPoint->m_next; - else - from = wxDebugContext::GetHead () ; - - for (wxMemStruct * st = from; st != 0; st = st->m_next) - { - void* data = st->GetActualData(); -// if ((data != (void*)m_debugStream) && (data != (void*) m_streamBuf)) - if (data != (void*) wxLog::GetActiveTarget()) - n ++; - } - - return n ; -} - -/* - The global operator new used for everything apart from getting - dynamic storage within this function itself. -*/ - -// We'll only do malloc and free for the moment: leave the interesting -// stuff for the wxObject versions. - -#if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS - -#ifdef new -#undef new -#endif - -// Seems OK all of a sudden. Maybe to do with linking with multithreaded library? -#if 0 // def __VISUALC__ -#define NO_DEBUG_ALLOCATION -#endif - -// Unfortunately ~wxDebugStreamBuf doesn't work (VC++ 5) when we enable the debugging -// code. I have no idea why. In BC++ 4.5, we have a similar problem the debug -// stream myseriously changing pointer address between being passed from SetFile to SetStream. -// See docs/msw/issues.txt. -void * operator new (size_t size, wxChar * fileName, int lineNum) -{ -#ifdef NO_DEBUG_ALLOCATION - return malloc(size); -#else - return wxDebugAlloc(size, fileName, lineNum, FALSE, FALSE); -#endif -} - -// Added JACS 25/11/98 -void * operator new (size_t size) -{ -#ifdef NO_DEBUG_ALLOCATION - return malloc(size); -#else - return wxDebugAlloc(size, NULL, 0, FALSE); -#endif -} - -#if wxUSE_ARRAY_MEMORY_OPERATORS -void * operator new[] (size_t size) -{ -#ifdef NO_DEBUG_ALLOCATION - return malloc(size); -#else - return wxDebugAlloc(size, NULL, 0, FALSE, TRUE); -#endif -} -#endif - -#if wxUSE_ARRAY_MEMORY_OPERATORS -void * operator new[] (size_t size, wxChar * fileName, int lineNum) -{ -#ifdef NO_DEBUG_ALLOCATION - return malloc(size); -#else - return wxDebugAlloc(size, fileName, lineNum, FALSE, TRUE); -#endif -} -#endif - -void operator delete (void * buf) -{ -#ifdef NO_DEBUG_ALLOCATION - free((char*) buf); -#else - wxDebugFree(buf); -#endif -} - -// VC++ 6.0 -#if defined(__VISUALC__) && (__VISUALC__ >= 1200) -void operator delete(void* pData, wxChar* /* fileName */, int /* lineNum */) -{ -// ::operator delete(pData); - // JACS 21/11/1998: surely we need to call wxDebugFree? - wxDebugFree(pData, FALSE); -} -// New operator 21/11/1998 -void operator delete[](void* pData, char* /* fileName */, int /* lineNum */) -{ - wxDebugFree(pData, TRUE); -} -#endif - -#if wxUSE_ARRAY_MEMORY_OPERATORS - -void operator delete[] (void * buf) -{ -#ifdef NO_DEBUG_ALLOCATION - free((char*) buf); -#else - wxDebugFree(buf, TRUE); -#endif -} -#endif - -#endif - -// TODO: store whether this is a vector or not. -void * wxDebugAlloc(size_t size, wxChar * fileName, int lineNum, bool isObject, bool WXUNUSED(isVect) ) -{ - // If not in debugging allocation mode, do the normal thing - // so we don't leave any trace of ourselves in the node list. - - if (!wxDebugContext::GetDebugMode()) - { - return (void *)malloc(size); - } - - int totSize = wxDebugContext::TotSize (size); - char * buf = (char *) malloc(totSize); - if (!buf) { - wxLogDebug(_T("Call to malloc (%ld) failed."), (long)size); - return 0; - } - wxMemStruct * st = (wxMemStruct *)buf; - st->m_firstMarker = MemStartCheck; - st->m_reqSize = size; - st->m_fileName = fileName; - st->m_lineNum = lineNum; - st->m_id = MemStructId; - st->m_prev = 0; - st->m_next = 0; - st->m_isObject = isObject; - - // Errors from Append() shouldn't really happen - but just in case! - if (st->Append () == 0) { - st->ErrorMsg ("Trying to append new node"); - } - - if (wxDebugContext::GetCheckPrevious ()) { - if (st->CheckAllPrevious () < 0) { - st->ErrorMsg ("Checking previous nodes"); - } - } - - // Set up the extra markers at the middle and end. - char * ptr = wxDebugContext::MidMarkerPos (buf); - * (wxMarkerType *) ptr = MemMidCheck; - ptr = wxDebugContext::EndMarkerPos (buf, size); - * (wxMarkerType *) ptr = MemEndCheck; - - // pointer returned points to the start of the caller's - // usable area. - void *m_actualData = (void *) wxDebugContext::CallerMemPos (buf); - st->m_actualData = m_actualData; - - return m_actualData; -} - -// TODO: check whether was allocated as a vector -void wxDebugFree(void * buf, bool WXUNUSED(isVect) ) -{ - if (!buf) - return; - - // If not in debugging allocation mode, do the normal thing - // so we don't leave any trace of ourselves in the node list. - if (!wxDebugContext::GetDebugMode()) - { - free((char *)buf); - return; - } - - // Points to the start of the entire allocated area. - char * startPointer = wxDebugContext::StartPos ((char *) buf); - // Find the struct and make sure that it's identifiable. - wxMemStruct * st = (wxMemStruct *) wxDebugContext::StructPos (startPointer); - - if (! st->ValidateNode ()) - return; - - // If this is the current checkpoint, we need to - // move the checkpoint back so it points to a valid - // node. - if (st == wxDebugContext::checkPoint) - wxDebugContext::checkPoint = wxDebugContext::checkPoint->m_prev; - - if (! st->Unlink ()) - { - st->ErrorMsg ("Unlinking deleted node"); - } - - // Now put in the fill char into the id slot and the caller requested - // memory locations. - st->SetDeleted (); - (void) memset (wxDebugContext::CallerMemPos (startPointer), MemFillChar, - st->RequestSize ()); - - // Don't allow delayed freeing of memory in this version -// if (!wxDebugContext::GetDelayFree()) -// free((void *)st); - free((char *)st); -} - -// Trace: send output to the current debugging stream -void wxTrace(const wxChar *fmt ...) -{ - va_list ap; - static wxChar buffer[512]; - - va_start(ap, fmt); - -#ifdef __WXMSW__ - wvsprintf(buffer,fmt,ap) ; -#else - vsprintf(buffer,fmt,ap) ; -#endif - - va_end(ap); - - if (wxDebugContext::HasStream()) - { - wxDebugContext::GetStream() << buffer; - wxDebugContext::GetStream().flush(); - } - else -#ifdef __WXMSW__ -#ifdef __WIN32__ - OutputDebugString((LPCTSTR)buffer) ; -#else - OutputDebugString((const char*) buffer) ; -#endif -#else - fprintf(stderr, buffer); -#endif -} - -// Trace with level -void wxTraceLevel(int level, const wxChar *fmt ...) -{ - if (wxDebugContext::GetLevel() < level) - return; - - va_list ap; - static wxChar buffer[512]; - - va_start(ap, fmt); - -#ifdef __WXMSW__ - wvsprintf(buffer,fmt,ap) ; -#else - vsprintf(buffer,fmt,ap) ; -#endif - - va_end(ap); - - if (wxDebugContext::HasStream()) - { - wxDebugContext::GetStream() << buffer; - wxDebugContext::GetStream().flush(); - } - else -#ifdef __WXMSW__ -#ifdef __WIN32__ - OutputDebugString((LPCTSTR)buffer) ; -#else - OutputDebugString((const char*) buffer) ; -#endif -#else - fprintf(stderr, buffer); -#endif -} - -#else // wxUSE_MEMORY_TRACING && defined(__WXDEBUG__) -void wxTrace(const char *WXUNUSED(fmt) ...) -{ -} - -void wxTraceLevel(int WXUNUSED(level), const char *WXUNUSED(fmt) ...) -{ -} -#endif - diff --git a/src/common/mimetype.cpp b/src/common/mimetype.cpp deleted file mode 100644 index 99e0a628b1..0000000000 --- a/src/common/mimetype.cpp +++ /dev/null @@ -1,1347 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: common/mimetype.cpp -// Purpose: classes and functions to manage MIME types -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.09.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license (part of wxExtra library) -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "mimetype.h" -#endif - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// for compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -// wxWindows -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/icon.h" -#endif //WX_PRECOMP - -// Doesn't compile in WIN16 mode -#ifndef __WIN16__ - -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/dynarray.h" -#include "wx/confbase.h" - -#ifdef __WXMSW__ - #include "wx/msw/registry.h" - #include "windows.h" -#else // Unix - #include "wx/textfile.h" -#endif // OS - -#include "wx/mimetype.h" - -// other standard headers -#include - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// implementation classes, platform dependent -#ifdef __WXMSW__ - -// These classes use Windows registry to retrieve the required information. -// -// Keys used (not all of them are documented, so it might actually stop working -// in futur versions of Windows...): -// 1. "HKCR\MIME\Database\Content Type" contains subkeys for all known MIME -// types, each key has a string value "Extension" which gives (dot preceded) -// extension for the files of this MIME type. -// -// 2. "HKCR\.ext" contains -// a) unnamed value containing the "filetype" -// b) value "Content Type" containing the MIME type -// -// 3. "HKCR\filetype" contains -// a) unnamed value containing the description -// b) subkey "DefaultIcon" with single unnamed value giving the icon index in -// an icon file -// c) shell\open\command and shell\open\print subkeys containing the commands -// to open/print the file (the positional parameters are introduced by %1, -// %2, ... in these strings, we change them to %s ourselves) - -class wxFileTypeImpl -{ -public: - // ctor - wxFileTypeImpl() { } - - // initialize us with our file type name - void SetFileType(const wxString& strFileType) - { m_strFileType = strFileType; } - void SetExt(const wxString& ext) - { m_ext = ext; } - - // implement accessor functions - bool GetExtensions(wxArrayString& extensions); - bool GetMimeType(wxString *mimeType) const; - bool GetIcon(wxIcon *icon) const; - bool GetDescription(wxString *desc) const; - bool GetOpenCommand(wxString *openCmd, - const wxFileType::MessageParameters&) const - { return GetCommand(openCmd, _T("open")); } - bool GetPrintCommand(wxString *printCmd, - const wxFileType::MessageParameters&) const - { return GetCommand(printCmd, _T("print")); } - -private: - // helper function - bool GetCommand(wxString *command, const wxChar *verb) const; - - wxString m_strFileType, m_ext; -}; - -class wxMimeTypesManagerImpl -{ -public: - // nothing to do here, we don't load any data but just go and fetch it from - // the registry when asked for - wxMimeTypesManagerImpl() { } - - // implement containing class functions - wxFileType *GetFileTypeFromExtension(const wxString& ext); - wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); - - // this are NOPs under Windows - bool ReadMailcap(const wxString& filename, bool fallback = TRUE) - { return TRUE; } - bool ReadMimeTypes(const wxString& filename) - { return TRUE; } -}; - -#else // Unix - -// this class uses both mailcap and mime.types to gather information about file -// types. -// -// The information about mailcap file was extracted from metamail(1) sources and -// documentation. -// -// Format of mailcap file: spaces are ignored, each line is either a comment -// (starts with '#') or a line of the form ;;...;. -// A backslash can be used to quote semicolons and newlines (and, in fact, -// anything else including itself). -// -// The first field is always the MIME type in the form of type/subtype (see RFC -// 822) where subtype may be '*' meaning "any". Following metamail, we accept -// "type" which means the same as "type/*", although I'm not sure whether this -// is standard. -// -// The second field is always the command to run. It is subject to -// parameter/filename expansion described below. -// -// All the following fields are optional and may not be present at all. If -// they're present they may appear in any order, although each of them should -// appear only once. The optional fields are the following: -// * notes=xxx is an uninterpreted string which is silently ignored -// * test=xxx is the command to be used to determine whether this mailcap line -// applies to our data or not. The RHS of this field goes through the -// parameter/filename expansion (as the 2nd field) and the resulting string -// is executed. The line applies only if the command succeeds, i.e. returns 0 -// exit code. -// * print=xxx is the command to be used to print (and not view) the data of -// this type (parameter/filename expansion is done here too) -// * edit=xxx is the command to open/edit the data of this type -// * needsterminal means that a new console must be created for the viewer -// * copiousoutput means that the viewer doesn't interact with the user but -// produces (possibly) a lof of lines of output on stdout (i.e. "cat" is a -// good example), thus it might be a good idea to use some kind of paging -// mechanism. -// * textualnewlines means not to perform CR/LF translation (not honored) -// * compose and composetyped fields are used to determine the program to be -// called to create a new message pert in the specified format (unused). -// -// Parameter/filename xpansion: -// * %s is replaced with the (full) file name -// * %t is replaced with MIME type/subtype of the entry -// * for multipart type only %n is replaced with the nnumber of parts and %F is -// replaced by an array of (content-type, temporary file name) pairs for all -// message parts (TODO) -// * %{parameter} is replaced with the value of parameter taken from -// Content-type header line of the message. -// -// FIXME any docs with real descriptions of these files?? -// -// There are 2 possible formats for mime.types file, one entry per line (used -// for global mime.types) and "expanded" format where an entry takes multiple -// lines (used for users mime.types). -// -// For both formats spaces are ignored and lines starting with a '#' are -// comments. Each record has one of two following forms: -// a) for "brief" format: -// -// b) for "expanded" format: -// type= \ desc="" \ exts="ext" -// -// We try to autodetect the format of mime.types: if a non-comment line starts -// with "type=" we assume the second format, otherwise the first one. - -// there may be more than one entry for one and the same mime type, to -// choose the right one we have to run the command specified in the test -// field on our data. -class MailCapEntry -{ -public: - // ctor - MailCapEntry(const wxString& openCmd, - const wxString& printCmd, - const wxString& testCmd) - : m_openCmd(openCmd), m_printCmd(printCmd), m_testCmd(testCmd) - { - m_next = NULL; - } - - // accessors - const wxString& GetOpenCmd() const { return m_openCmd; } - const wxString& GetPrintCmd() const { return m_printCmd; } - const wxString& GetTestCmd() const { return m_testCmd; } - - MailCapEntry *GetNext() const { return m_next; } - - // operations - // prepend this element to the list - void Prepend(MailCapEntry *next) { m_next = next; } - // insert into the list at given position - void Insert(MailCapEntry *next, size_t pos) - { - // FIXME slooow... - MailCapEntry *cur; - size_t n = 0; - for ( cur = next; cur != NULL; cur = cur->m_next, n++ ) { - if ( n == pos ) - break; - } - - wxASSERT_MSG( n == pos, _T("invalid position in MailCapEntry::Insert") ); - - m_next = cur->m_next; - cur->m_next = this; - } - // append this element to the list - void Append(MailCapEntry *next) - { - wxCHECK_RET( next != NULL, _T("Append()ing to what?") ); - - // FIXME slooow... - MailCapEntry *cur; - for ( cur = next; cur->m_next != NULL; cur = cur->m_next ) - ; - - cur->m_next = this; - - wxASSERT_MSG( !m_next, _T("Append()ing element already in the list?") ); - } - -private: - wxString m_openCmd, // command to use to open/view the file - m_printCmd, // print - m_testCmd; // only apply this entry if test yields - // true (i.e. the command returns 0) - - MailCapEntry *m_next; // in the linked list -}; - -WX_DEFINE_ARRAY(MailCapEntry *, ArrayTypeEntries); - -class wxMimeTypesManagerImpl -{ -friend class wxFileTypeImpl; // give it access to m_aXXX variables - -public: - // ctor loads all info into memory for quicker access later on - // TODO it would be nice to load them all, but parse on demand only... - wxMimeTypesManagerImpl(); - - // implement containing class functions - wxFileType *GetFileTypeFromExtension(const wxString& ext); - wxFileType *GetFileTypeFromMimeType(const wxString& mimeType); - - bool ReadMailcap(const wxString& filename, bool fallback = FALSE); - bool ReadMimeTypes(const wxString& filename); - - // accessors - // get the string containing space separated extensions for the given - // file type - wxString GetExtension(size_t index) { return m_aExtensions[index]; } - -private: - wxArrayString m_aTypes, // MIME types - m_aDescriptions, // descriptions (just some text) - m_aExtensions; // space separated list of extensions - ArrayTypeEntries m_aEntries; // commands and tests for this file type -}; - -class wxFileTypeImpl -{ -public: - // initialization functions - void Init(wxMimeTypesManagerImpl *manager, size_t index) - { m_manager = manager; m_index = index; } - - // accessors - bool GetExtensions(wxArrayString& extensions); - bool GetMimeType(wxString *mimeType) const - { *mimeType = m_manager->m_aTypes[m_index]; return TRUE; } - bool GetIcon(wxIcon * WXUNUSED(icon)) const - { return FALSE; } // TODO maybe with Gnome/KDE integration... - bool GetDescription(wxString *desc) const - { *desc = m_manager->m_aDescriptions[m_index]; return TRUE; } - - bool GetOpenCommand(wxString *openCmd, - const wxFileType::MessageParameters& params) const - { - return GetExpandedCommand(openCmd, params, TRUE); - } - - bool GetPrintCommand(wxString *printCmd, - const wxFileType::MessageParameters& params) const - { - return GetExpandedCommand(printCmd, params, FALSE); - } - -private: - // get the entry which passes the test (may return NULL) - MailCapEntry *GetEntry(const wxFileType::MessageParameters& params) const; - - // choose the correct entry to use and expand the command - bool GetExpandedCommand(wxString *expandedCmd, - const wxFileType::MessageParameters& params, - bool open) const; - - wxMimeTypesManagerImpl *m_manager; - size_t m_index; // in the wxMimeTypesManagerImpl arrays -}; - -#endif // OS type - -// ============================================================================ -// implementation of the wrapper classes -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxFileType -// ---------------------------------------------------------------------------- - -wxString wxFileType::ExpandCommand(const wxString& command, - const wxFileType::MessageParameters& params) -{ - bool hasFilename = FALSE; - - wxString str; - for ( const wxChar *pc = command.c_str(); *pc != _T('\0'); pc++ ) { - if ( *pc == _T('%') ) { - switch ( *++pc ) { - case _T('s'): - // '%s' expands into file name (quoted because it might - // contain spaces) - except if there are already quotes - // there because otherwise some programs may get confused - // by double double quotes -#if 0 - if ( *(pc - 2) == _T('"') ) - str << params.GetFileName(); - else - str << _T('"') << params.GetFileName() << _T('"'); -#endif - str << params.GetFileName(); - hasFilename = TRUE; - break; - - case _T('t'): - // '%t' expands into MIME type (quote it too just to be - // consistent) - str << _T('\'') << params.GetMimeType() << _T('\''); - break; - - case _T('{'): - { - const wxChar *pEnd = wxStrchr(pc, _T('}')); - if ( pEnd == NULL ) { - wxString mimetype; - wxLogWarning(_("Unmatched '{' in an entry for " - "mime type %s."), - params.GetMimeType().c_str()); - str << _T("%{"); - } - else { - wxString param(pc + 1, pEnd - pc - 1); - str << _T('\'') << params.GetParamValue(param) << _T('\''); - pc = pEnd; - } - } - break; - - case _T('n'): - case _T('F'): - // TODO %n is the number of parts, %F is an array containing - // the names of temp files these parts were written to - // and their mime types. - break; - - default: - wxLogDebug(_T("Unknown field %%%c in command '%s'."), - *pc, command.c_str()); - str << *pc; - } - } - else { - str << *pc; - } - } - - // metamail(1) man page states that if the mailcap entry doesn't have '%s' - // the program will accept the data on stdin: so give it to it! - if ( !hasFilename && !str.IsEmpty() ) { - str << _T(" < '") << params.GetFileName() << _T('\''); - } - - return str; -} - -wxFileType::wxFileType() -{ - m_impl = new wxFileTypeImpl; -} - -wxFileType::~wxFileType() -{ - delete m_impl; -} - -bool wxFileType::GetExtensions(wxArrayString& extensions) -{ - return m_impl->GetExtensions(extensions); -} - -bool wxFileType::GetMimeType(wxString *mimeType) const -{ - return m_impl->GetMimeType(mimeType); -} - -bool wxFileType::GetIcon(wxIcon *icon) const -{ - return m_impl->GetIcon(icon); -} - -bool wxFileType::GetDescription(wxString *desc) const -{ - return m_impl->GetDescription(desc); -} - -bool -wxFileType::GetOpenCommand(wxString *openCmd, - const wxFileType::MessageParameters& params) const -{ - return m_impl->GetOpenCommand(openCmd, params); -} - -bool -wxFileType::GetPrintCommand(wxString *printCmd, - const wxFileType::MessageParameters& params) const -{ - return m_impl->GetPrintCommand(printCmd, params); -} - -// ---------------------------------------------------------------------------- -// wxMimeTypesManager -// ---------------------------------------------------------------------------- - -bool wxMimeTypesManager::IsOfType(const wxString& mimeType, - const wxString& wildcard) -{ - wxASSERT_MSG( mimeType.Find(_T('*')) == wxNOT_FOUND, - _T("first MIME type can't contain wildcards") ); - - // all comparaisons are case insensitive (2nd arg of IsSameAs() is FALSE) - if ( wildcard.BeforeFirst(_T('/')).IsSameAs(mimeType.BeforeFirst(_T('/')), FALSE) ) - { - wxString strSubtype = wildcard.AfterFirst(_T('/')); - - if ( strSubtype == _T("*") || - strSubtype.IsSameAs(mimeType.AfterFirst(_T('/')), FALSE) ) - { - // matches (either exactly or it's a wildcard) - return TRUE; - } - } - - return FALSE; -} - -wxMimeTypesManager::wxMimeTypesManager() -{ - m_impl = new wxMimeTypesManagerImpl; -} - -wxMimeTypesManager::~wxMimeTypesManager() -{ - delete m_impl; -} - -wxFileType * -wxMimeTypesManager::GetFileTypeFromExtension(const wxString& ext) -{ - return m_impl->GetFileTypeFromExtension(ext); -} - -wxFileType * -wxMimeTypesManager::GetFileTypeFromMimeType(const wxString& mimeType) -{ - return m_impl->GetFileTypeFromMimeType(mimeType); -} - -bool wxMimeTypesManager::ReadMailcap(const wxString& filename, bool fallback) -{ - return m_impl->ReadMailcap(filename, fallback); -} - -bool wxMimeTypesManager::ReadMimeTypes(const wxString& filename) -{ - return m_impl->ReadMimeTypes(filename); -} - -// ============================================================================ -// real (OS specific) implementation -// ============================================================================ - -#ifdef __WXMSW__ - -bool wxFileTypeImpl::GetCommand(wxString *command, const wxChar *verb) const -{ - // suppress possible error messages - wxLogNull nolog; - wxString strKey; - strKey << m_strFileType << _T("\\shell\\") << verb << _T("\\command"); - wxRegKey key(wxRegKey::HKCR, strKey); - - if ( key.Open() ) { - // it's the default value of the key - if ( key.QueryValue(_T(""), *command) ) { - // transform it from '%1' to '%s' style format string - // NB: we don't make any attempt to verify that the string is valid, - // i.e. doesn't contain %2, or second %1 or .... But we do make - // sure that we return a string with _exactly_ one '%s'! - size_t len = command->Len(); - for ( size_t n = 0; n < len; n++ ) { - if ( command->GetChar(n) == _T('%') && - (n + 1 < len) && command->GetChar(n + 1) == _T('1') ) { - // replace it with '%s' - command->SetChar(n + 1, _T('s')); - - return TRUE; - } - } - - // we didn't find any '%1'! - // HACK: append the filename at the end, hope that it will do - *command << _T(" %s"); - - return TRUE; - } - } - - // no such file type or no value - return FALSE; -} - -// TODO this function is half implemented -bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions) -{ - if ( m_ext.IsEmpty() ) { - // the only way to get the list of extensions from the file type is to - // scan through all extensions in the registry - too slow... - return FALSE; - } - else { - extensions.Empty(); - extensions.Add(m_ext); - - // it's a lie too, we don't return _all_ extensions... - return TRUE; - } -} - -bool wxFileTypeImpl::GetMimeType(wxString *mimeType) const -{ - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, /*m_strFileType*/ _T(".") + m_ext); - if ( key.Open() && key.QueryValue(_T("Content Type"), *mimeType) ) { - return TRUE; - } - else { - return FALSE; - } -} - -bool wxFileTypeImpl::GetIcon(wxIcon *icon) const -{ - wxString strIconKey; - strIconKey << m_strFileType << _T("\\DefaultIcon"); - - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, strIconKey); - - if ( key.Open() ) { - wxString strIcon; - // it's the default value of the key - if ( key.QueryValue(_T(""), strIcon) ) { - // the format is the following: , - // NB: icon index may be negative as well as positive and the full - // path may contain the environment variables inside '%' - wxString strFullPath = strIcon.BeforeLast(_T(',')), - strIndex = strIcon.AfterLast(_T(',')); - - // index may be omitted, in which case BeforeLast(',') is empty and - // AfterLast(',') is the whole string - if ( strFullPath.IsEmpty() ) { - strFullPath = strIndex; - strIndex = _T("0"); - } - - wxString strExpPath = wxExpandEnvVars(strFullPath); - int nIndex = wxAtoi(strIndex); - - HICON hIcon = ExtractIcon(GetModuleHandle(NULL), strExpPath, nIndex); - switch ( (int)hIcon ) { - case 0: // means no icons were found - case 1: // means no such file or it wasn't a DLL/EXE/OCX/ICO/... - wxLogDebug(_T("incorrect registry entry '%s': no such icon."), - key.GetName().c_str()); - break; - - default: - icon->SetHICON((WXHICON)hIcon); - return TRUE; - } - } - } - - // no such file type or no value or incorrect icon entry - return FALSE; -} - -bool wxFileTypeImpl::GetDescription(wxString *desc) const -{ - // suppress possible error messages - wxLogNull nolog; - wxRegKey key(wxRegKey::HKCR, m_strFileType); - - if ( key.Open() ) { - // it's the default value of the key - if ( key.QueryValue(_T(""), *desc) ) { - return TRUE; - } - } - - return FALSE; -} - -// extension -> file type -wxFileType * -wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext) -{ - // add the leading point if necessary - wxString str; - if ( ext[0u] != _T('.') ) { - str = _T('.'); - } - str << ext; - - // suppress possible error messages - wxLogNull nolog; - - wxString strFileType; - wxRegKey key(wxRegKey::HKCR, str); - if ( key.Open() ) { - // it's the default value of the key - if ( key.QueryValue(_T(""), strFileType) ) { - // create the new wxFileType object - wxFileType *fileType = new wxFileType; - fileType->m_impl->SetFileType(strFileType); - fileType->m_impl->SetExt(ext); - - return fileType; - } - } - - // unknown extension - return NULL; -} - -// MIME type -> extension -> file type -wxFileType * -wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType) -{ - // HACK I don't know of any official documentation which mentions this - // location, but as a matter of fact IE uses it, so why not we? - static const wxChar *szMimeDbase = _T("MIME\\Database\\Content Type\\"); - - wxString strKey = szMimeDbase; - strKey << mimeType; - - // suppress possible error messages - wxLogNull nolog; - - wxString ext; - wxRegKey key(wxRegKey::HKCR, strKey); - if ( key.Open() ) { - if ( key.QueryValue(_T("Extension"), ext) ) { - return GetFileTypeFromExtension(ext); - } - } - - // unknown MIME type - return NULL; -} - -#else // Unix - -MailCapEntry * -wxFileTypeImpl::GetEntry(const wxFileType::MessageParameters& params) const -{ - wxString command; - MailCapEntry *entry = m_manager->m_aEntries[m_index]; - while ( entry != NULL ) { - // notice that an empty command would always succeed (it's ok) - command = wxFileType::ExpandCommand(entry->GetTestCmd(), params); - - if ( command.IsEmpty() || (wxSystem(command) == 0) ) { - // ok, passed - wxLogTrace(_T("Test '%s' for mime type '%s' succeeded."), - command.c_str(), params.GetMimeType().c_str()); - break; - } - else { - wxLogTrace(_T("Test '%s' for mime type '%s' failed."), - command.c_str(), params.GetMimeType().c_str()); - } - - entry = entry->GetNext(); - } - - return entry; -} - -bool -wxFileTypeImpl::GetExpandedCommand(wxString *expandedCmd, - const wxFileType::MessageParameters& params, - bool open) const -{ - MailCapEntry *entry = GetEntry(params); - if ( entry == NULL ) { - // all tests failed... - return FALSE; - } - - wxString cmd = open ? entry->GetOpenCmd() : entry->GetPrintCmd(); - if ( cmd.IsEmpty() ) { - // may happen, especially for "print" - return FALSE; - } - - *expandedCmd = wxFileType::ExpandCommand(cmd, params); - return TRUE; -} - -bool wxFileTypeImpl::GetExtensions(wxArrayString& extensions) -{ - wxString strExtensions = m_manager->GetExtension(m_index); - extensions.Empty(); - - // one extension in the space or comma delimitid list - wxString strExt; - for ( const wxChar *p = strExtensions; ; p++ ) { - if ( *p == _T(' ') || *p == _T(',') || *p == _T('\0') ) { - if ( !strExt.IsEmpty() ) { - extensions.Add(strExt); - strExt.Empty(); - } - //else: repeated spaces (shouldn't happen, but it's not that - // important if it does happen) - - if ( *p == _T('\0') ) - break; - } - else if ( *p == _T('.') ) { - // remove the dot from extension (but only if it's the first char) - if ( !strExt.IsEmpty() ) { - strExt += _T('.'); - } - //else: no, don't append it - } - else { - strExt += *p; - } - } - - return TRUE; -} - -// read system and user mailcaps (TODO implement mime.types support) -wxMimeTypesManagerImpl::wxMimeTypesManagerImpl() -{ - // directories where we look for mailcap and mime.types by default - // (taken from metamail(1) sources) - static const wxChar *aStandardLocations[] = - { - _T("/etc"), - _T("/usr/etc"), - _T("/usr/local/etc"), - _T("/etc/mail"), - _T("/usr/public/lib") - }; - - // first read the system wide file(s) - for ( size_t n = 0; n < WXSIZEOF(aStandardLocations); n++ ) { - wxString dir = aStandardLocations[n]; - - wxString file = dir + _T("/mailcap"); - if ( wxFile::Exists(file) ) { - ReadMailcap(file); - } - - file = dir + _T("/mime.types"); - if ( wxFile::Exists(file) ) { - ReadMimeTypes(file); - } - } - - wxString strHome = wxGetenv(_T("HOME")); - - // and now the users mailcap - wxString strUserMailcap = strHome + _T("/.mailcap"); - if ( wxFile::Exists(strUserMailcap) ) { - ReadMailcap(strUserMailcap); - } - - // read the users mime.types - wxString strUserMimeTypes = strHome + _T("/.mime.types"); - if ( wxFile::Exists(strUserMimeTypes) ) { - ReadMimeTypes(strUserMimeTypes); - } -} - -wxFileType * -wxMimeTypesManagerImpl::GetFileTypeFromExtension(const wxString& ext) -{ - size_t count = m_aExtensions.GetCount(); - for ( size_t n = 0; n < count; n++ ) { - wxString extensions = m_aExtensions[n]; - while ( !extensions.IsEmpty() ) { - wxString field = extensions.BeforeFirst(_T(' ')); - extensions = extensions.AfterFirst(_T(' ')); - - // consider extensions as not being case-sensitive - if ( field.IsSameAs(ext, FALSE /* no case */) ) { - // found - wxFileType *fileType = new wxFileType; - fileType->m_impl->Init(this, n); - - return fileType; - } - } - } - - // not found - return NULL; -} - -wxFileType * -wxMimeTypesManagerImpl::GetFileTypeFromMimeType(const wxString& mimeType) -{ - // mime types are not case-sensitive - wxString mimetype(mimeType); - mimetype.MakeLower(); - - // first look for an exact match - int index = m_aTypes.Index(mimetype); - if ( index == wxNOT_FOUND ) { - // then try to find "text/*" as match for "text/plain" (for example) - // NB: if mimeType doesn't contain '/' at all, BeforeFirst() will return - // the whole string - ok. - wxString strCategory = mimetype.BeforeFirst(_T('/')); - - size_t nCount = m_aTypes.Count(); - for ( size_t n = 0; n < nCount; n++ ) { - if ( (m_aTypes[n].BeforeFirst(_T('/')) == strCategory ) && - m_aTypes[n].AfterFirst(_T('/')) == _T("*") ) { - index = n; - break; - } - } - } - - if ( index != wxNOT_FOUND ) { - wxFileType *fileType = new wxFileType; - fileType->m_impl->Init(this, index); - - return fileType; - } - else { - // not found... - return NULL; - } -} - -bool wxMimeTypesManagerImpl::ReadMimeTypes(const wxString& strFileName) -{ - wxLogTrace(_T("--- Parsing mime.types file '%s' ---"), strFileName.c_str()); - - wxTextFile file(strFileName); - if ( !file.Open() ) - return FALSE; - - // the information we extract - wxString strMimeType, strDesc, strExtensions; - - size_t nLineCount = file.GetLineCount(); - const wxChar *pc = NULL; - for ( size_t nLine = 0; nLine < nLineCount; nLine++ ) { - if ( pc == NULL ) { - // now we're at the start of the line - pc = file[nLine].c_str(); - } - else { - // we didn't finish with the previous line yet - nLine--; - } - - // skip whitespace - while ( wxIsspace(*pc) ) - pc++; - - // comment? - if ( *pc == _T('#') ) { - // skip the whole line - pc = NULL; - continue; - } - - // detect file format - const wxChar *pEqualSign = wxStrchr(pc, _T('=')); - if ( pEqualSign == NULL ) { - // brief format - // ------------ - - // first field is mime type - for ( strMimeType.Empty(); !wxIsspace(*pc) && *pc != _T('\0'); pc++ ) { - strMimeType += *pc; - } - - // skip whitespace - while ( wxIsspace(*pc) ) - pc++; - - // take all the rest of the string - strExtensions = pc; - - // no description... - strDesc.Empty(); - } - else { - // expanded format - // --------------- - - // the string on the left of '=' is the field name - wxString strLHS(pc, pEqualSign - pc); - - // eat whitespace - for ( pc = pEqualSign + 1; wxIsspace(*pc); pc++ ) - ; - - const wxChar *pEnd; - if ( *pc == _T('"') ) { - // the string is quoted and ends at the matching quote - pEnd = wxStrchr(++pc, _T('"')); - if ( pEnd == NULL ) { - wxLogWarning(_("Mime.types file %s, line %d: unterminated " - "quoted string."), - strFileName.c_str(), nLine + 1); - } - } - else { - // unquoted string ends at the first space - for ( pEnd = pc; !wxIsspace(*pEnd); pEnd++ ) - ; - } - - // now we have the RHS (field value) - wxString strRHS(pc, pEnd - pc); - - // check what follows this entry - if ( *pEnd == _T('"') ) { - // skip this quote - pEnd++; - } - - for ( pc = pEnd; wxIsspace(*pc); pc++ ) - ; - - // if there is something left, it may be either a '\\' to continue - // the line or the next field of the same entry - bool entryEnded = *pc == _T('\0'), - nextFieldOnSameLine = FALSE; - if ( !entryEnded ) { - nextFieldOnSameLine = ((*pc != _T('\\')) || (pc[1] != _T('\0'))); - } - - // now see what we got - if ( strLHS == _T("type") ) { - strMimeType = strRHS; - } - else if ( strLHS == _T("desc") ) { - strDesc = strRHS; - } - else if ( strLHS == _T("exts") ) { - strExtensions = strRHS; - } - else { - wxLogWarning(_("Unknown field in file %s, line %d: '%s'."), - strFileName.c_str(), nLine + 1, strLHS.c_str()); - } - - if ( !entryEnded ) { - if ( !nextFieldOnSameLine ) - pc = NULL; - //else: don't reset it - - // as we don't reset strMimeType, the next field in this entry - // will be interpreted correctly. - - continue; - } - } - - // although it doesn't seem to be covered by RFCs, some programs - // (notably Netscape) create their entries with several comma - // separated extensions (RFC mention the spaces only) - strExtensions.Replace(_T(","), _T(" ")); - - // also deal with the leading dot - if ( !strExtensions.IsEmpty() && strExtensions[0] == _T('.') ) { - strExtensions.erase(0, 1); - } - - int index = m_aTypes.Index(strMimeType); - if ( index == wxNOT_FOUND ) { - // add a new entry - m_aTypes.Add(strMimeType); - m_aEntries.Add(NULL); - m_aExtensions.Add(strExtensions); - m_aDescriptions.Add(strDesc); - } - else { - // modify an existing one - if ( !strDesc.IsEmpty() ) { - m_aDescriptions[index] = strDesc; // replace old value - } - m_aExtensions[index] += strExtensions; - } - - // finished with this line - pc = NULL; - } - - // check our data integriry - wxASSERT( m_aTypes.Count() == m_aEntries.Count() && - m_aTypes.Count() == m_aExtensions.Count() && - m_aTypes.Count() == m_aDescriptions.Count() ); - - return TRUE; -} - -bool wxMimeTypesManagerImpl::ReadMailcap(const wxString& strFileName, - bool fallback) -{ - wxLogTrace(_T("--- Parsing mailcap file '%s' ---"), strFileName.c_str()); - - wxTextFile file(strFileName); - if ( !file.Open() ) - return FALSE; - - // see the comments near the end of function for the reason we need these - // variables (search for the next occurence of them) - // indices of MIME types (in m_aTypes) we already found in this file - wxArrayInt aEntryIndices; - // aLastIndices[n] is the index of last element in - // m_aEntries[aEntryIndices[n]] from this file - wxArrayInt aLastIndices; - - size_t nLineCount = file.GetLineCount(); - for ( size_t nLine = 0; nLine < nLineCount; nLine++ ) { - // now we're at the start of the line - const wxChar *pc = file[nLine].c_str(); - - // skip whitespace - while ( wxIsspace(*pc) ) - pc++; - - // comment or empty string? - if ( *pc == _T('#') || *pc == _T('\0') ) - continue; - - // no, do parse - - // what field are we currently in? The first 2 are fixed and there may - // be an arbitrary number of other fields -- currently, we are not - // interested in any of them, but we should parse them as well... - enum - { - Field_Type, - Field_OpenCmd, - Field_Other - } currentToken = Field_Type; - - // the flags and field values on the current line - bool needsterminal = FALSE, - copiousoutput = FALSE; - wxString strType, - strOpenCmd, - strPrintCmd, - strTest, - strDesc, - curField; // accumulator - for ( bool cont = TRUE; cont; pc++ ) { - switch ( *pc ) { - case _T('\\'): - // interpret the next character literally (notice that - // backslash can be used for line continuation) - if ( *++pc == _T('\0') ) { - // fetch the next line. - - // pc currently points to nowhere, but after the next - // pc++ in the for line it will point to the beginning - // of the next line in the file - pc = file[++nLine].c_str() - 1; - } - else { - // just a normal character - curField += *pc; - } - break; - - case _T('\0'): - cont = FALSE; // end of line reached, exit the loop - - // fall through - - case _T(';'): - // store this field and start looking for the next one - - // trim whitespaces from both sides - curField.Trim(TRUE).Trim(FALSE); - - switch ( currentToken ) { - case Field_Type: - strType = curField; - if ( strType.Find(_T('/')) == wxNOT_FOUND ) { - // we interpret "type" as "type/*" - strType += _T("/*"); - } - - currentToken = Field_OpenCmd; - break; - - case Field_OpenCmd: - strOpenCmd = curField; - - currentToken = Field_Other; - break; - - case Field_Other: - { - // "good" mailcap entry? - bool ok = TRUE; - - // is this something of the form foo=bar? - const wxChar *pEq = wxStrchr(curField, _T('=')); - if ( pEq != NULL ) { - wxString lhs = curField.BeforeFirst(_T('=')), - rhs = curField.AfterFirst(_T('=')); - - lhs.Trim(TRUE); // from right - rhs.Trim(FALSE); // from left - - if ( lhs == _T("print") ) - strPrintCmd = rhs; - else if ( lhs == _T("test") ) - strTest = rhs; - else if ( lhs == _T("description") ) { - // it might be quoted - if ( rhs[0u] == _T('"') && - rhs.Last() == _T('"') ) { - strDesc = wxString(rhs.c_str() + 1, - rhs.Len() - 2); - } - else { - strDesc = rhs; - } - } - else if ( lhs == _T("compose") || - lhs == _T("composetyped") || - lhs == _T("notes") || - lhs == _T("edit") ) - ; // ignore - else - ok = FALSE; - - } - else { - // no, it's a simple flag - // TODO support the flags: - // 1. create an xterm for 'needsterminal' - // 2. append "| $PAGER" for 'copiousoutput' - if ( curField == _T("needsterminal") ) - needsterminal = TRUE; - else if ( curField == _T("copiousoutput") ) - copiousoutput = TRUE; - else if ( curField == _T("textualnewlines") ) - ; // ignore - else - ok = FALSE; - } - - if ( !ok ) - { - // don't flood the user with error messages - // if we don't understand something in his - // mailcap, but give them in debug mode - // because this might be useful for the - // programmer - wxLogDebug - ( - _T("Mailcap file %s, line %d: unknown " - "field '%s' for the MIME type " - "'%s' ignored."), - strFileName.c_str(), - nLine + 1, - curField.c_str(), - strType.c_str() - ); - } - } - - // it already has this value - //currentToken = Field_Other; - break; - - default: - wxFAIL_MSG(_T("unknown field type in mailcap")); - } - - // next token starts immediately after ';' - curField.Empty(); - break; - - default: - curField += *pc; - } - } - - // check that we really read something reasonable - if ( currentToken == Field_Type || currentToken == Field_OpenCmd ) { - wxLogWarning(_("Mailcap file %s, line %d: incomplete entry " - "ignored."), - strFileName.c_str(), nLine + 1); - } - else { - MailCapEntry *entry = new MailCapEntry(strOpenCmd, - strPrintCmd, - strTest); - - strType.MakeLower(); - int nIndex = m_aTypes.Index(strType); - if ( nIndex == wxNOT_FOUND ) { - // new file type - m_aTypes.Add(strType); - - m_aEntries.Add(entry); - m_aExtensions.Add(_T("")); - m_aDescriptions.Add(strDesc); - } - else { - // modify the existing entry: the entries in one and the same - // file are read in top-to-bottom order, i.e. the entries read - // first should be tried before the entries below. However, - // the files read later should override the settings in the - // files read before (except if fallback is TRUE), thus we - // Insert() the new entry to the list if it has already - // occured in _this_ file, but Prepend() it if it occured in - // some of the previous ones and Append() to it in the - // fallback case - - if ( fallback ) { - // 'fallback' parameter prevents the entries from this - // file from overriding the other ones - always append - MailCapEntry *entryOld = m_aEntries[nIndex]; - if ( entryOld ) - entry->Append(entryOld); - else - m_aEntries[nIndex] = entry; - } - else { - int entryIndex = aEntryIndices.Index(nIndex); - if ( entryIndex == wxNOT_FOUND ) { - // first time in this file - aEntryIndices.Add(nIndex); - aLastIndices.Add(0); - - entry->Prepend(m_aEntries[nIndex]); - m_aEntries[nIndex] = entry; - } - else { - // not the first time in _this_ file - size_t nEntryIndex = (size_t)entryIndex; - MailCapEntry *entryOld = m_aEntries[nIndex]; - if ( entryOld ) - entry->Insert(entryOld, aLastIndices[nEntryIndex]); - else - m_aEntries[nIndex] = entry; - - // the indices were shifted by 1 - aLastIndices[nEntryIndex]++; - } - } - - if ( !strDesc.IsEmpty() ) { - // replace the old one - what else can we do?? - m_aDescriptions[nIndex] = strDesc; - } - } - } - - // check our data integriry - wxASSERT( m_aTypes.Count() == m_aEntries.Count() && - m_aTypes.Count() == m_aExtensions.Count() && - m_aTypes.Count() == m_aDescriptions.Count() ); - } - - return TRUE; -} - -#endif // OS type - -#endif - // __WIN16__ diff --git a/src/common/module.cpp b/src/common/module.cpp deleted file mode 100644 index f1d0bebed7..0000000000 --- a/src/common/module.cpp +++ /dev/null @@ -1,101 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: module.cpp -// Purpose: Modules initialization/destruction -// Author: Wolfram Gloger/adapted by Guilhem Lavaux -// Modified by: -// Created: 04/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger and Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "module.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/module.h" -#include "wx/hash.h" -#include "wx/listimpl.cpp" - -#ifdef __SALFORDC__ -void wxwxModuleListNode::DeleteData() -{ - delete (_WX_LIST_ITEM_TYPE_wxModuleList *)GetData(); -} -#else -WX_DEFINE_LIST(wxModuleList); -#endif - -IMPLEMENT_CLASS(wxModule, wxObject) - -wxModuleList wxModule::m_modules; - -void wxModule::RegisterModule(wxModule* module) -{ - m_modules.Append(module); -} - -// Collect up all module-derived classes, create an instance of each, -// and register them. -void wxModule::RegisterModules() -{ - wxNode *node; - wxClassInfo* classInfo; - - wxClassInfo::sm_classTable->BeginFind(); - node = wxClassInfo::sm_classTable->Next(); - while (node) - { - classInfo = (wxClassInfo *)node->Data(); - if ( classInfo->IsKindOf(CLASSINFO(wxModule)) && - (classInfo != (& (wxModule::sm_classwxModule))) ) - { - wxModule* module = (wxModule *)classInfo->CreateObject(); - RegisterModule(module); - } - node = wxClassInfo::sm_classTable->Next(); - } -} - -bool wxModule::InitializeModules() -{ - // Initialize user-defined modules - wxModuleList::Node *node; - for ( node = m_modules.GetFirst(); node; node = node->GetNext() ) - { - if ( !node->GetData()->Init() ) - { - // clean up already initialized modules - process in reverse order - wxModuleList::Node *n; - for ( n = node->GetPrevious(); n; n = n->GetPrevious() ) - { - n->GetData()->OnExit(); - } - - return FALSE; - } - } - - return TRUE; -} - -void wxModule::CleanUpModules() -{ - // Cleanup user-defined modules - wxModuleList::Node *node; - for ( node = m_modules.GetFirst(); node; node = node->GetNext() ) - { - node->GetData()->Exit(); - } - - m_modules.DeleteContents(TRUE); - m_modules.Clear(); -} - diff --git a/src/common/mstream.cpp b/src/common/mstream.cpp deleted file mode 100644 index 560c0fd1ae..0000000000 --- a/src/common/mstream.cpp +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mstream.cpp -// Purpose: "Memory stream" classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mstream.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" -#include -#include -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -// ---------------------------------------------------------------------------- -// wxMemoryInputStream -// ---------------------------------------------------------------------------- - -wxMemoryInputStream::wxMemoryInputStream(const char *data, size_t len) - : wxInputStream() -{ - m_i_streambuf->SetBufferIO((char*) data, (char*) (data+len)); - m_i_streambuf->SetIntPosition(0); // seek to start pos - m_i_streambuf->Fixed(TRUE); - m_length = len; -} - -wxMemoryInputStream::~wxMemoryInputStream() -{ -} - -char wxMemoryInputStream::Peek() -{ - return m_i_streambuf->GetBufferStart()[m_i_streambuf->GetIntPosition()]; -} - -// ---------------------------------------------------------------------------- -// wxMemoryOutputStream -// ---------------------------------------------------------------------------- - -wxMemoryOutputStream::wxMemoryOutputStream(char *data, size_t len) - : wxOutputStream() -{ - if (data) - m_o_streambuf->SetBufferIO(data, data+len); - m_o_streambuf->Fixed(TRUE); -} - -wxMemoryOutputStream::~wxMemoryOutputStream() -{ -} diff --git a/src/common/object.cpp b/src/common/object.cpp deleted file mode 100644 index dbc9d46ef4..0000000000 --- a/src/common/object.cpp +++ /dev/null @@ -1,378 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: object.cpp -// Purpose: wxObject implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "object.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/hash.h" - #if wxUSE_SERIAL - #include "wx/objstrm.h" - #include "wx/serbase.h" - - // for error messages - #include "wx/log.h" - #include "wx/intl.h" - #endif // wxUSE_SERIAL -#endif // WX_PRECOMP - -#include -#include - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT -#include "wx/memory.h" -#endif - -#if defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT - // for wxObject::Dump - #include "wx/ioswrap.h" -#endif - -#if !USE_SHARED_LIBRARY -wxClassInfo wxObject::sm_classwxObject((wxChar *) _T("wxObject"), (wxChar *) NULL, (wxChar *) NULL, (int ) sizeof(wxObject), (wxObjectConstructorFn) NULL); -wxClassInfo* wxClassInfo::sm_first = (wxClassInfo *) NULL; -wxHashTable* wxClassInfo::sm_classTable = (wxHashTable*) NULL; -#endif - -/* - * wxWindows root object. - */ - -wxObject::wxObject() -{ - m_refData = (wxObjectRefData *) NULL; -#if wxUSE_SERIAL - m_serialObj = (wxObject_Serialize *)NULL; -#endif -} - -wxObject::~wxObject() -{ - UnRef(); -#if wxUSE_SERIAL - if (m_serialObj) - delete m_serialObj; -#endif -} - -/* - * Is this object a kind of (a subclass of) 'info'? - * E.g. is wxWindow a kind of wxObject? - * Go from this class to superclass, taking into account - * two possible base classes. - */ - -bool wxObject::IsKindOf(wxClassInfo *info) const -{ - wxClassInfo *thisInfo = GetClassInfo(); - if (thisInfo) - return thisInfo->IsKindOf(info); - else - return FALSE; -} - -wxObject *wxObject::Clone() const -{ - wxObject *object = GetClassInfo()->CreateObject(); - CopyObject(*object); - return object; -} - -void wxObject::CopyObject(wxObject& object_dest) const -{ - wxASSERT(object_dest.GetClassInfo()->IsKindOf(GetClassInfo())); -} - -#if defined(__WXDEBUG__) || wxUSE_DEBUG_CONTEXT -void wxObject::Dump(ostream& str) -{ - if (GetClassInfo() && GetClassInfo()->GetClassName()) - str << GetClassInfo()->GetClassName(); - else - str << "unknown object class"; -} -#endif - -#if defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING - -#ifdef new -#undef new -#endif - -void *wxObject::operator new (size_t size, wxChar * fileName, int lineNum) -{ - return wxDebugAlloc(size, fileName, lineNum, TRUE); -} - -void wxObject::operator delete (void * buf) -{ - wxDebugFree(buf); -} - -// VC++ 6.0 -#if defined(__VISUALC__) && (__VISUALC__ >= 1200) -void wxObject::operator delete(void* pData, char* /* fileName */, int /* lineNum */) -{ - ::operator delete(pData); -} -#endif - -// Cause problems for VC++ - crashes -#if !defined(__VISUALC__) && wxUSE_ARRAY_MEMORY_OPERATORS -void * wxObject::operator new[] (size_t size, wxChar * fileName, int lineNum) -{ - return wxDebugAlloc(size, fileName, lineNum, TRUE, TRUE); -} - -void wxObject::operator delete[] (void * buf) -{ - wxDebugFree(buf, TRUE); -} -#endif - -#endif - -/* - * Class info: provides run-time class type information. - */ - -wxClassInfo::wxClassInfo(wxChar *cName, wxChar *baseName1, wxChar *baseName2, int sz, wxObjectConstructorFn constr) -{ - m_className = cName; - m_baseClassName1 = baseName1; - m_baseClassName2 = baseName2; - - m_objectSize = sz; - m_objectConstructor = constr; - - m_next = sm_first; - sm_first = this; - - m_baseInfo1 = (wxClassInfo *) NULL; - m_baseInfo2 = (wxClassInfo *) NULL; -} - -wxObject *wxClassInfo::CreateObject() -{ - if (m_objectConstructor) - return (wxObject *)(*m_objectConstructor)(); - else - return (wxObject *) NULL; -} - -wxClassInfo *wxClassInfo::FindClass(wxChar *c) -{ - wxClassInfo *p = sm_first; - while (p) - { - if (p && p->GetClassName() && wxStrcmp(p->GetClassName(), c) == 0) - return p; - p = p->m_next; - } - return (wxClassInfo *) NULL; -} - -// Climb upwards through inheritance hierarchy. -// Dual inheritance is catered for. -bool wxClassInfo::IsKindOf(wxClassInfo *info) const -{ - if (info == NULL) - return FALSE; - - // For some reason, when making/using a DLL, static data has to be included - // in both the DLL and the application. This can lead to duplicate - // wxClassInfo objects, so we have to test the name instead of the pointers. - // PROBABLY NO LONGER TRUE now I've done DLL creation right. - /* -#if WXMAKINGDLL -if (GetClassName() && info->GetClassName() && (strcmp(GetClassName(), info->GetClassName()) == 0)) -return TRUE; -#else - */ - if (this == info) - return TRUE; - - if (m_baseInfo1) - if (m_baseInfo1->IsKindOf(info)) - return TRUE; - - if (m_baseInfo2) - return m_baseInfo2->IsKindOf(info); - - return FALSE; -} - -// Set pointers to base class(es) to speed up IsKindOf -void wxClassInfo::InitializeClasses() -{ - wxClassInfo::sm_classTable = new wxHashTable(wxKEY_STRING); - - // Index all class infos by their class name - wxClassInfo *info = sm_first; - while (info) - { - if (info->m_className) - sm_classTable->Put(info->m_className, (wxObject *)info); - info = info->m_next; - } - - // Set base pointers for each wxClassInfo - info = sm_first; - while (info) - { - if (info->GetBaseClassName1()) - info->m_baseInfo1 = (wxClassInfo *)sm_classTable->Get(info->GetBaseClassName1()); - if (info->GetBaseClassName2()) - info->m_baseInfo2 = (wxClassInfo *)sm_classTable->Get(info->GetBaseClassName2()); - info = info->m_next; - } -} - -void wxClassInfo::CleanUpClasses() -{ - delete wxClassInfo::sm_classTable; - wxClassInfo::sm_classTable = NULL; -} - -wxObject *wxCreateDynamicObject(const wxChar *name) -{ - if (wxClassInfo::sm_classTable) - { - wxClassInfo *info = (wxClassInfo *)wxClassInfo::sm_classTable->Get(name); - if (!info) - return (wxObject *)NULL; - - return info->CreateObject(); - } - else - { - wxClassInfo *info = wxClassInfo::sm_first; - while (info) - { - if (info->m_className && wxStrcmp(info->m_className, name) == 0) - return info->CreateObject(); - info = info->m_next; - } - return (wxObject*) NULL; - } - return (wxObject*) NULL; -} - -#if wxUSE_SERIAL - -#include "wx/serbase.h" -#include "wx/dynlib.h" -#include "wx/msgdlg.h" - -wxObject* wxCreateStoredObject( wxInputStream &stream ) -{ - wxObjectInputStream obj_s(stream); - return obj_s.LoadObject(); -}; - -void wxObject::StoreObject( wxObjectOutputStream& stream ) -{ - wxString obj_name = wxString(GetClassInfo()->GetClassName()) + "_Serialize"; - wxLibrary *lib = wxTheLibraries.LoadLibrary("wxserial"); - - if (!lib) { - wxLogError(_("Can't load wxSerial dynamic library.")); - return; - } - if (!m_serialObj) { - m_serialObj = (WXSERIAL(wxObject) *)lib->CreateObject( obj_name ); - - if (!m_serialObj) { - wxLogError(_("Can't find the serialization object '%s' " - "for the object '%s'."), - obj_name.c_str(), - GetClassInfo()->GetClassName()); - return; - } - m_serialObj->SetObject(this); - } - - m_serialObj->StoreObject(stream); -} - -void wxObject::LoadObject( wxObjectInputStream& stream ) -{ - wxString obj_name = wxString(GetClassInfo()->GetClassName()) + "_Serialize"; - wxLibrary *lib = wxTheLibraries.LoadLibrary("wxserial"); - - if (!m_serialObj) { - m_serialObj = (WXSERIAL(wxObject) *)lib->CreateObject( obj_name ); - - if (!m_serialObj) { - wxLogError(_("Can't find the serialization object '%s' " - "for the object '%s'."), - obj_name.c_str(), - GetClassInfo()->GetClassName()); - return; - } - m_serialObj->SetObject(this); - } - - m_serialObj->LoadObject(stream); -} - -#endif // wxUSE_SERIAL - -/* - * wxObject: cloning of objects - */ - -void wxObject::Ref(const wxObject& clone) -{ - // delete reference to old data - UnRef(); - // reference new data - if (clone.m_refData) { - m_refData = clone.m_refData; - ++(m_refData->m_count); - } -} - -void wxObject::UnRef() -{ - if (m_refData) { - assert(m_refData->m_count > 0); - --(m_refData->m_count); - if (m_refData->m_count == 0) - delete m_refData; - } - m_refData = (wxObjectRefData *) NULL; -} - -/* - * wxObjectData - */ - -wxObjectRefData::wxObjectRefData(void) : m_count(1) -{ -} - -wxObjectRefData::~wxObjectRefData() -{ -} - -// These are here so we can avoid 'always true/false' warnings -// by referring to these instead of TRUE/FALSE -const bool wxTrue = TRUE; -const bool wxFalse = FALSE; diff --git a/src/common/objstrm.cpp b/src/common/objstrm.cpp deleted file mode 100644 index 6f6c6e607f..0000000000 --- a/src/common/objstrm.cpp +++ /dev/null @@ -1,330 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: objstrm.cpp -// Purpose: wxObjectStream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 16/07/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "objstrm.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/setup.h" -#endif - -#if wxUSE_SERIAL - -#include "wx/object.h" -#include "wx/objstrm.h" -#include "wx/datstrm.h" - -#define WXOBJ_BEGIN "OBEGIN" -#define WXOBJ_BEG_LEN 6 - -#define TAG_EMPTY_OBJECT "NULL" -#define TAG_DUPLICATE_OBJECT "DUPLIC" - -// ---------------------------------------------------------------------------- -// wxObjectOutputStream -// ---------------------------------------------------------------------------- - -wxObjectOutputStream::wxObjectOutputStream(wxOutputStream& s) - : wxFilterOutputStream(s) -{ - m_saving = FALSE; -} - -wxString wxObjectOutputStream::GetObjectName(wxObject *obj) -{ - wxString name; - - name.Printf(_T("%x"), (unsigned long)obj); - return name; -} - -void wxObjectOutputStream::WriteObjectDef(wxObjectStreamInfo& info) -{ - wxDataOutputStream data_s(*this); - - Write(WXOBJ_BEGIN, WXOBJ_BEG_LEN); - - if (info.duplicate) { - data_s.WriteString(TAG_DUPLICATE_OBJECT); - data_s.WriteString(GetObjectName(info.object)); - wxPrintf(_T("info.object (dup %s)\n"), info.object->GetClassInfo()->GetClassName()); - return; - } - - if (info.object) { - data_s.WriteString(info.object->GetClassInfo()->GetClassName()); - wxPrintf(_T("info.object (%s)\n"), info.object->GetClassInfo()->GetClassName()); - } else { - data_s.WriteString(TAG_EMPTY_OBJECT); - wxPrintf(_T("info.object (NULL)\n")); - return; - } - - data_s.WriteString(GetObjectName(info.object)); - - // I assume an object will not have millions of children - // Hmmm ... it could have (for example wxGrid) - data_s.Write32(info.children.Number()); -} - -void wxObjectOutputStream::AddChild(wxObject *obj) -{ - wxObjectStreamInfo *info; - - if (!FirstStage()) - return; - - info = new wxObjectStreamInfo; - - if (m_saved_objs.Member(obj) != NULL) { - info->duplicate = TRUE; - } else { - info->duplicate = FALSE; - m_saved_objs.Append(obj); - } - if (!obj) - info->duplicate = FALSE; - - info->n_children = 0; - info->object = obj; - info->parent = m_current_info; // Not useful here. - m_current_info->n_children++; - m_current_info->children.Append(info); -} - -void wxObjectOutputStream::ProcessObjectDef(wxObjectStreamInfo *info) -{ - wxNode *node; - - m_current_info = info; - // First stage: get children of obj - if (info->object && !info->duplicate) - info->object->StoreObject(*this); - - // Prepare and write the sub-entry about the child obj. - WriteObjectDef(*info); - - node = info->children.First(); - - while (node) { - ProcessObjectDef((wxObjectStreamInfo *)node->Data()); - node = node->Next(); - } -} - -void wxObjectOutputStream::ProcessObjectData(wxObjectStreamInfo *info) -{ - wxNode *node = info->children.First(); - - m_current_info = info; - - if (info->object && !info->duplicate) - info->object->StoreObject(*this); - - while (node) { - ProcessObjectData((wxObjectStreamInfo *)node->Data()); - node = node->Next(); - } -} - -bool wxObjectOutputStream::SaveObject(wxObject& obj) -{ - wxObjectStreamInfo info; - - if (m_saving) - return FALSE; - - m_saving = TRUE; - - // First stage - m_stage = 0; - info.object = &obj; - info.n_children = 0; - info.duplicate = FALSE; - ProcessObjectDef(&info); - - m_stage = 1; - ProcessObjectData(&info); - - info.children.Clear(); - m_saved_objs.Clear(); - - m_saving = FALSE; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxObjectInputStream -// ---------------------------------------------------------------------------- - -wxObjectInputStream::wxObjectInputStream(wxInputStream& s) - : wxFilterInputStream(s) -{ - m_secondcall = FALSE; -} - -wxObject *wxObjectInputStream::SolveName(const wxString& name) const -{ - wxNode *node = m_solver.First(); - wxObjectStreamInfo *info; - - while (node) { - info = (wxObjectStreamInfo *)node->Data(); - if (info->object_name == name) - return info->object; - - node = node->Next(); - } - return (wxObject *) NULL; -} - -wxObject *wxObjectInputStream::GetParent() const -{ - if (!m_current_info->parent) - return (wxObject *) NULL; - - return m_current_info->parent->object; -} - -wxObject *wxObjectInputStream::GetChild() -{ - wxObject *obj = GetChild(0); - - m_current_info->children_removed++; - - return obj; -} - -wxObject *wxObjectInputStream::GetChild(int no) const -{ - wxNode *node; - wxObjectStreamInfo *info; - - if (m_current_info->children_removed >= m_current_info->n_children) - return (wxObject *) NULL; - - node = m_current_info->children.Nth(m_current_info->children_removed+no); - - if (!node) - return (wxObject *) NULL; - - info = (wxObjectStreamInfo *)node->Data(); - - return info->object; -} - -void wxObjectInputStream::RemoveChildren(int nb) -{ - m_current_info->children_removed += nb; -} - -bool wxObjectInputStream::ReadObjectDef(wxObjectStreamInfo *info) -{ - wxDataInputStream data_s(*this); - char sig[WXOBJ_BEG_LEN+1]; - wxString class_name; - - Read(sig, WXOBJ_BEG_LEN); - sig[WXOBJ_BEG_LEN] = 0; - if (wxString(sig) != WXOBJ_BEGIN) - return FALSE; - - class_name = data_s.ReadString(); - info->children_removed = 0; - info->n_children = 0; - - if (class_name == TAG_EMPTY_OBJECT) - info->object = (wxObject *) NULL; - else if (class_name == TAG_DUPLICATE_OBJECT) { - info->object_name = data_s.ReadString(); - info->object = SolveName(info->object_name); - } else { - info->object_name = data_s.ReadString(); - info->object = wxCreateDynamicObject( WXSTRINGCAST class_name); - info->n_children = data_s.Read32(); - } - return TRUE; -} - -wxObjectStreamInfo *wxObjectInputStream::ProcessObjectDef(wxObjectStreamInfo *parent) -{ - wxObjectStreamInfo *info, *c_info; - int c; - - info = new wxObjectStreamInfo; - info->parent = parent; - info->children.DeleteContents(TRUE); - - m_solver.Append(info); - - if (!ReadObjectDef(info)) - return (wxObjectStreamInfo *) NULL; - - for (c=0;cn_children;c++) { - c_info = ProcessObjectDef(info); - if (!c_info) - return (wxObjectStreamInfo *) NULL; - info->children.Append(c_info); - } - - return info; -} - -void wxObjectInputStream::ProcessObjectData(wxObjectStreamInfo *info) -{ - wxNode *node = info->children.First(); - - m_current_info = info; - - if (info->object) - info->object->LoadObject(*this); - while (node) { - ProcessObjectData((wxObjectStreamInfo *)node->Data()); - node = node->Next(); - } - - m_current_info = info; - - if (info->recall) { - m_secondcall = TRUE; - info->object->LoadObject(*this); - m_secondcall = FALSE; - } -} - -wxObject *wxObjectInputStream::LoadObject() -{ - wxObjectStreamInfo *info; - wxObject *object; - - info = ProcessObjectDef((wxObjectStreamInfo *) NULL); - if (!info) - return (wxObject *) NULL; - ProcessObjectData(info); - - object = info->object; - - delete info; // It's magic ! The whole tree is destroyed. - - return object; -} - -#endif - diff --git a/src/common/odbc.cpp b/src/common/odbc.cpp deleted file mode 100644 index f82a986409..0000000000 --- a/src/common/odbc.cpp +++ /dev/null @@ -1,1838 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: odbc.cpp -// Purpose: ODBC implementation -// Author: Julian Smart, Olaf Klein (oklein@smallo.ruhr.de), -// Patrick Halke (patrick@zaphod.ruhr.de) -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "odbc.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/defs.h" - -#if wxUSE_ODBC - -#ifdef __VISUALC__ - #pragma warning(disable:4706) // assignment within conditional expression -#endif // VC++ - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/dialog.h" -#endif - -#include "wx/string.h" -#include "wx/odbc.h" - -#include -#include - -#if defined(__WXMSW__) && !defined(__WIN32__) -#include -#endif - -HENV wxDatabase::hEnv = 0; -int wxDatabase::refCount = 0; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDatabase, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxQueryCol, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxQueryField, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxRecordSet, wxObject) -#endif - -wxDatabase::wxDatabase(void) -{ - hDBC = 0; - username = NULL; - password = NULL; - datasource = NULL; - dbname = NULL; - connectstring = NULL; - isOpen = FALSE; - refCount ++; - retcode = 0; - username = NULL; - password = NULL; - err_occured = FALSE; - - memset(sqlstate, 0, sizeof sqlstate); - memset(errmsg, 0, sizeof errmsg); - - if (hEnv == 0) - { - retcode = SQLAllocEnv(&hEnv); - - if (retcode != SQL_SUCCESS) - hEnv = 0; - } -} - -wxDatabase::~wxDatabase(void) -{ - Close(); - DeleteRecordSets(); // Added JACS - - if (connectstring) - delete[] connectstring; - if (datasource) - delete[] datasource; - if (username) - delete[] username; - if (password) - delete[] password; - if (dbname) - delete[] dbname; - - refCount --; - if (!refCount && hEnv) - { - retcode = SQLFreeEnv(hEnv); - hEnv = 0; // JACS 17/6 - } -} - -void wxDatabase::ErrorSnapshot(HSTMT hstmt) -{ - SWORD len = 0; // JACS: sometimes doesn't get filled in by SQLError. - - err_occured = TRUE; - SQLError(hEnv, hDBC, hstmt, (unsigned char *)sqlstate, &nat_err, (unsigned char *)errmsg, SQL_MAX_MESSAGE_LENGTH-1, &len); - errmsg[len] = '\0'; -} - -bool wxDatabase::ErrorOccured(void) -{ - return err_occured; -} - -char* wxDatabase::GetErrorMessage(void) -{ - return errmsg; -} - -long wxDatabase::GetErrorNumber(void) -{ - return nat_err; -} - -char* wxDatabase::GetErrorClass(void) { - return sqlstate; -} - -bool wxDatabase::Open(char *thedatasource, bool WXUNUSED(exclusive), - bool WXUNUSED(readOnly), char *username, char *password) -{ - err_occured = FALSE; - - if (isOpen) - return FALSE; - - SetUsername(username); - SetPassword(password); - SetDataSource(thedatasource); - - if (!hEnv) - return FALSE; - - retcode = SQLAllocConnect(hEnv, &hDBC); - if (retcode != SQL_SUCCESS) { - hDBC = 0; - return FALSE; - } - - retcode = SQLConnect(hDBC, (UCHAR FAR*)thedatasource, strlen(thedatasource), (UCHAR FAR*)username, strlen(username), - (UCHAR FAR*)password, strlen(password)); - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { - ErrorSnapshot(); - return FALSE; - } - - isOpen = TRUE; - - return TRUE; -} - -bool wxDatabase::Close(void) -{ - // JACS: make sure the record set statements are all released. - ResetRecordSets(); - - err_occured = FALSE; - if (hDBC != 0) - { - retcode = SQLDisconnect(hDBC); - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { - ErrorSnapshot(); - return FALSE; - } - - retcode = SQLFreeConnect(hDBC); - - hDBC = 0; - isOpen = FALSE; - - return TRUE; - } - - return FALSE; -} - -// Database attributes -char *wxDatabase::GetDatabaseName(void) -{ - err_occured = FALSE; - if (hDBC == 0) - return NULL; - - char nameBuf[400]; - int nameSize = 0; - - retcode = SQLGetInfo(hDBC, SQL_DATABASE_NAME, (unsigned char*)nameBuf, sizeof(nameBuf), (short *)&nameSize); - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - return NULL; - - delete[] dbname; - dbname = NULL; - - if (nameSize > 0) - { - dbname = copystring(nameBuf); - return dbname; - } - else - return NULL; -} - -bool wxDatabase::CanUpdate(void) -{ - return FALSE; -} - -bool wxDatabase::CanTransact(void) -{ - return FALSE; -} - -bool wxDatabase::InWaitForDataSource(void) -{ - return FALSE; -} - -void wxDatabase::SetLoginTimeout(long WXUNUSED(seconds)) -{ -} - -void wxDatabase::SetQueryTimeout(long WXUNUSED(seconds)) -{ -} - -void wxDatabase::SetSynchronousMode(bool WXUNUSED(synchronous)) -{ -} - -// Database operations -bool wxDatabase::BeginTrans(void) -{ - return FALSE; -} - -bool wxDatabase::CommitTrans(void) -{ - return FALSE; -} - -bool wxDatabase::RollbackTrans(void) -{ - return FALSE; -} - -void wxDatabase::Cancel(void) -{ -} - -// Overridables -void wxDatabase::OnSetOptions(wxRecordSet *WXUNUSED(recordSet)) -{ -} - -void wxDatabase::OnWaitForDataSource(bool WXUNUSED(stillExecuting)) -{ -} - -void wxDatabase::SetPassword(char *s) -{ - if (password) - delete[] password; - if (s) - { - password = copystring(s); - } - else - password = NULL; -} - -void wxDatabase::SetUsername(char *s) -{ - delete[] username; - - if (s) - username = copystring(s); - else - username = NULL; -} - -void wxDatabase::SetDataSource(char *s) -{ - delete[] datasource; - - if (s) - datasource = copystring(s); - else - datasource = NULL; -} - -/* - * Added by JACS - */ - -void wxDatabase::DeleteRecordSets(void) -{ - wxNode *node = recordSets.First(); - while (node) - { - wxNode *next = node->Next(); - wxRecordSet *rec = (wxRecordSet *)node->Data(); - delete rec; - // The node is implicitly deleted by ~wxRecordSet - node = next; - } -} - -void wxDatabase::ResetRecordSets(void) -{ - wxNode *node = recordSets.First(); - while (node) - { - wxRecordSet *rec = (wxRecordSet *)node->Data(); - rec->ReleaseHandle(); - - node = node->Next(); - } -} - -bool wxDatabase::GetInfo(long infoType, long *buf) -{ - short sz = 0; - retcode = SQLGetInfo(hDBC, (UWORD)infoType, (unsigned char*)buf, sizeof(buf), &sz); - - if (retcode != SQL_ERROR) - return TRUE; - else - return FALSE; -} - -bool wxDatabase::GetInfo(long infoType, char *buf, int bufSize) -{ - if (bufSize == -1) - bufSize = sizeof(buf); - - short sz = 0; - retcode = SQLGetInfo(hDBC, (UWORD)infoType, (unsigned char*)buf, bufSize, &sz); - - if (retcode != SQL_ERROR) - return TRUE; - else - return FALSE; -} - -wxString wxDatabase::GetODBCVersionString(bool implementation) -{ - char buf[50]; - if (!implementation) - { -#ifdef SQL_SPEC_MAJOR - sprintf(buf, "%d%d.%d", (int)(SQL_SPEC_MAJOR/10), (int)(SQL_SPEC_MAJOR - (((int)(SQL_SPEC_MAJOR/10))*10)), - SQL_SPEC_MINOR); - return wxString(buf); -#else - return wxString("00.00"); -#endif - } - - bool noDBC = FALSE; - if (hDBC == 0) - { - noDBC = TRUE; - retcode = SQLAllocConnect(hEnv, &hDBC); - if (retcode != SQL_SUCCESS) - { - hDBC = 0; - return wxString("00.00"); - } - } - - int bufSize = sizeof(buf); - - short sz = 0; - retcode = SQLGetInfo(hDBC, (UWORD)SQL_ODBC_VER, (unsigned char*)buf, bufSize, &sz); - - if (hDBC != 0 && noDBC) - { - retcode = SQLFreeConnect(hDBC); - hDBC = 0; - } - - if (retcode == SQL_ERROR) - return wxString(""); - else - return wxString(buf); -} - -float wxDatabase::GetODBCVersionFloat(bool implementation) -{ - if (!implementation) - { -#ifdef SQL_SPEC_MAJOR - return (float)(SQL_SPEC_MAJOR + (SQL_SPEC_MINOR/100.0)); -#else - return 0.0; -#endif - } - - bool noDBC = FALSE; - if (hDBC == 0) - { - noDBC = TRUE; - retcode = SQLAllocConnect(hEnv, &hDBC); - if (retcode != SQL_SUCCESS) - { - hDBC = 0; - return (float)0.0; - } - } - - char buf[50]; - int bufSize = sizeof(buf); - - short sz = 0; - retcode = SQLGetInfo(hDBC, (UWORD)SQL_ODBC_VER, (unsigned char*)buf, bufSize, &sz); - - if (hDBC != 0 && noDBC) - { - retcode = SQLFreeConnect(hDBC); - hDBC = 0; - } - - if (retcode == SQL_ERROR) - return 0.0; - else - return atof(buf); -} - -/* - * wxRecordSet - */ - -wxRecordSet::wxRecordSet(wxDatabase *db, int typ, int opt): - cols(wxKEY_STRING) -{ - parentdb = db; - hStmt = 0; - nFields = 0; - nParams = 0; - recordFilter = NULL; - sortString = NULL; - retcode = 0; - cursor = 0; - tablename = NULL; - nCols = 0; - nRecords = 0; - - type = typ; - options = opt; - - // Added JACS - if (parentdb) - parentdb->GetRecordSets().Append(this); -} - -wxRecordSet::~wxRecordSet(void) -{ - ReleaseHandle(); - - // JACS - if (parentdb) - parentdb->GetRecordSets().DeleteObject(this); - - if (recordFilter) - delete[] recordFilter; - if (sortString) - delete[] sortString; - if (tablename) - delete[] tablename; -} - -// If SQL is non-NULL, table and columns can be NULL. -bool wxRecordSet::BeginQuery(int WXUNUSED(openType), char *WXUNUSED(sql), int WXUNUSED(options)) -{ - // Needs to construct an appropriate SQL statement. By default - // (i.e. if table and columns are provided) then - // SELECT FROM - // will be used. - if (!parentdb) - return FALSE; - if (!parentdb->GetHDBC()) - return FALSE; - - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - hStmt = 0; - } - - retcode = SQLAllocStmt(parentdb->GetHDBC(), &hStmt); - if (retcode != SQL_SUCCESS) - return FALSE; - - return TRUE; -} - -bool wxRecordSet::Query(char *columns, char *table, char *filter) -{ - // Needs to construct an appropriate SQL statement. By default - // (i.e. if table and columns are provided) then - // SELECT FROM
- // will be used. - - char* thetable = table ? table : tablename; - - if (!thetable) - return FALSE; - if (!columns) - return FALSE; - - wxString query; - - query += "SELECT "; - query += columns; - query += " FROM "; - query += thetable; - - if (filter) { - query += " WHERE "; - query += filter; - } - retcode = SQLPrepare(hStmt, (UCHAR FAR *)query.GetData(), strlen(query.GetData())); - if (retcode != SQL_SUCCESS) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - retcode = SQLExecute(hStmt); - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - return TRUE; -} - -bool wxRecordSet::EndQuery(void) -{ - return TRUE; -} - -void wxRecordSet::FillVars(int recnum) { - wxNode* node = cols.First(); - - do { - ((wxQueryCol*)node->Data())->FillVar(recnum); - } while ((node = node->Next())); -} - -bool wxRecordSet::GetResultSet(void) -{ -// long trash = SQL_NULL_DATA; // value added by JACS - long trash; - // contains the number of bytes transferred by SQLFetch() - // who needs this ? - wxNode *currow, *fetch, *curcol; - - retcode = SQLNumResultCols(hStmt, &nCols); - - if (!nCols) - return TRUE; - - // delete old data first - cols.DeleteContents(TRUE); - cols.Clear(); - fetchbuf.DeleteContents(TRUE); - fetchbuf.Clear(); - - nRecords = 0; - cursor = 0; - - int i; - for (i=0; iErrorSnapshot(hStmt); - return FALSE; - } - - wxQueryCol *col1 = new wxQueryCol; - curcol = cols.Append(name, col1); - col1->SetName(name); - col1->SetType(type); - col1->SetNullable((nullable != 0)); - - wxQueryField *field1 = new wxQueryField; - fetch = fetchbuf.Append(field1); - field1->SetType(type); - field1->SetSize(len); - - SQLBindCol(hStmt, i+1, SQL_C_BINARY, (unsigned char*)field1->GetData(), field1->GetSize(), &trash); - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - // get it all ! - // After we've done an SQLFetch, copy the data in the fetch buffer into - // new fields, for each column. - while (SQL_SUCCESS == (retcode = SQLFetch(hStmt)) || SQL_SUCCESS_WITH_INFO == retcode) { - nRecords++; - - curcol = cols.First(); - fetch = fetchbuf.First(); - for (i=0; iData(); - wxQueryCol *col = (wxQueryCol *)curcol->Data(); - wxQueryField *field = new wxQueryField; - - currow = col->fields.Append(field); - - field->SetType(fetchField->GetType()); - field->SetData(fetchField->GetData(), fetchField->GetSize()); - curcol = curcol->Next(); - fetchField->ClearData(); // Runs ok if this commented out and SetData commented out - fetch = fetch->Next(); - } - } - // while loop should only be left, when no more data was found; - // otherwise it seems, that there was an error - if (SQL_NO_DATA_FOUND != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - break; - case wxOPEN_TYPE_DYNASET: - // get first record only - if (SQL_SUCCESS == (retcode = SQLFetch(hStmt)) || retcode == SQL_SUCCESS_WITH_INFO) { - nRecords = 1; // TO DO! # of records in the ODBC result set should be set here. - - curcol = cols.First(); - fetch = fetchbuf.First(); - for (i=0; iData())->fields.Append(new wxQueryField); - - ((wxQueryField*)currow->Data())->SetType(((wxQueryField*)fetch->Data())->GetType()); - ((wxQueryField*)currow->Data())->SetData(((wxQueryField*)fetch->Data())->GetData(), ((wxQueryField*)fetch->Data())->GetSize()); - curcol = curcol->Next(); - ((wxQueryField*)fetch->Data())->ClearData(); - fetch = fetch->Next(); - } - } - if (SQL_NO_DATA_FOUND != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - break; - default: - return FALSE; - } - - FillVars(0); - - return TRUE; -} - -bool wxRecordSet::ExecuteSQL(char *sql) -{ - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - hStmt = NULL; - } - - retcode = SQLAllocStmt(parentdb->GetHDBC(), &hStmt); - - if (SQL_SUCCESS != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - retcode = SQLExecDirect(hStmt, (UCHAR FAR*)sql, SQL_NTS); - - if (SQL_SUCCESS != retcode && SQL_SUCCESS_WITH_INFO != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - return GetResultSet(); -} - -bool wxRecordSet::GetDataSources(void) { - - char *dsname = "Name", *dsdesc = "Description"; - char namebuf[64]; - char descbuf[512]; - short namelen, desclen; - - cursor = 0; - - // delete old data first - cols.DeleteContents(TRUE); - cols.Clear(); - nRecords = 0; - - // JACS This is a snapshot, not a dynaset. - type = wxOPEN_TYPE_SNAPSHOT; - - wxNode *namecol, *desccol; - - namecol = cols.Append(dsname, new wxQueryCol); - ((wxQueryCol*)namecol->Data())->SetName(dsname); - ((wxQueryCol*)namecol->Data())->SetType(SQL_CHAR); - desccol = cols.Append(dsdesc, new wxQueryCol); - ((wxQueryCol*)desccol->Data())->SetName(dsdesc); - ((wxQueryCol*)desccol->Data())->SetType(SQL_CHAR); - - retcode = SQLDataSources(parentdb->GetHENV(), SQL_FETCH_FIRST, (unsigned char *)namebuf, 63, &namelen, (unsigned char *)descbuf, 511, &desclen); - while (SQL_SUCCESS == retcode || SQL_SUCCESS_WITH_INFO == retcode) { - nRecords++; - ((wxQueryCol*)namecol->Data())->AppendField(namebuf, namelen); - ((wxQueryCol*)desccol->Data())->AppendField(descbuf, desclen); - retcode = SQLDataSources(parentdb->GetHENV(), SQL_FETCH_NEXT, (unsigned char *)namebuf, 63, &namelen, (unsigned char *)descbuf, 511, &desclen); - } - - if (SQL_SUCCESS != retcode && SQL_SUCCESS_WITH_INFO != retcode && SQL_NO_DATA_FOUND != retcode) { - parentdb->ErrorSnapshot(); - return FALSE; - } - - cursor = 0; - - return TRUE; -} - -// Attributes -void wxRecordSet::SetTableName(char* name) { - delete[] tablename; - tablename = NULL; - - if (name) - tablename = copystring(name); -} - -bool wxRecordSet::GetTables(void) -{ - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - hStmt = NULL; - } - - retcode = SQLAllocStmt(parentdb->GetHDBC(), &hStmt); - - if (SQL_SUCCESS != retcode) { - parentdb->ErrorSnapshot(); - return FALSE; - } - - retcode = SQLTables(hStmt, NULL, 0, NULL, 0, NULL, 0, NULL, 0); - - if (SQL_SUCCESS != retcode && SQL_SUCCESS_WITH_INFO != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - return GetResultSet(); -} - -bool wxRecordSet::GetColumns(char* table) -{ - char* name=NULL; -// char* wildcard = "%"; - - name = table ? table : tablename; - - if (!name) - return FALSE; - - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - hStmt = NULL; - } - - retcode = SQLAllocStmt(parentdb->GetHDBC(), &hStmt); - - if (SQL_SUCCESS != retcode) { - parentdb->ErrorSnapshot(); - return FALSE; - } - - //retcode = SQLColumns(hstmt, (unsigned char*)parentdb->GetDataSource(), strlen(parentdb->GetDataSource()), wildcard, 1, name, strlen(name), wildcard, 1); - retcode = SQLColumns(hStmt, NULL, 0, NULL, 0, (unsigned char *)name, strlen(name), NULL, 0); - - if (SQL_SUCCESS != retcode && SQL_SUCCESS_WITH_INFO != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - return GetResultSet(); -} - -// It is derived from previous GetColumns -bool wxRecordSet::GetPrimaryKeys(char* table) -{ - char* name=NULL; -// char* wildcard = "%"; - - name = table ? table : tablename; - - if (!name) - return FALSE; - - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - hStmt = NULL; - } - - retcode = SQLAllocStmt(parentdb->GetHDBC(), &hStmt); - - if (SQL_SUCCESS != retcode) { - parentdb->ErrorSnapshot(); - return FALSE; - } - - retcode = SQLPrimaryKeys(hStmt, NULL, 0, NULL, 0, (unsigned char *)name, SQL_NTS); - - if (SQL_SUCCESS != retcode && SQL_SUCCESS_WITH_INFO != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - return GetResultSet(); -} - -bool wxRecordSet::GetForeignKeys(char* PkTableName, char * FkTableName) -{ - char* Pkname=NULL; - char* Fkname=NULL; -// char* wildcard = "%"; - -// Try to disable situation: both PkTableName and FkTableName are NULL -// set Pkname from tablename - if( !PkTableName && !FkTableName ) { - Pkname = PkTableName ? PkTableName : tablename; - Fkname = FkTableName ; - if (!Pkname ) - return FALSE; - } else { - Pkname = PkTableName ; - Fkname = FkTableName ; - } - - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - hStmt = NULL; - } - - retcode = SQLAllocStmt(parentdb->GetHDBC(), &hStmt); - - if (SQL_SUCCESS != retcode) { - parentdb->ErrorSnapshot(); - return FALSE; - } - - retcode = SQLForeignKeys(hStmt, NULL, 0, NULL, 0, (unsigned char *)Pkname, - (Pkname ? SQL_NTS : 0), NULL, 0, NULL, 0, (unsigned char *)Fkname ,(Fkname ?SQL_NTS : 0) ); - - if (SQL_SUCCESS != retcode && SQL_SUCCESS_WITH_INFO != retcode) { - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - - return GetResultSet(); -} - -long wxRecordSet::GetNumberRecords(void) -{ - return nRecords; -} - -long wxRecordSet::GetNumberCols(void) -{ - return nCols; -} - -char* wxRecordSet::GetColName(int col) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return NULL; - - return ((wxQueryCol*)node->Data())->GetName(); -} - -short wxRecordSet::GetColType(int col) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return SQL_TYPE_NULL; - - return ((wxQueryCol*)node->Data())->GetType(); -} - -short wxRecordSet::GetColType(const char *col) -{ - wxNode* node = cols.Find(col); - - if (!node) - return SQL_TYPE_NULL; - - return ((wxQueryCol*)node->Data())->GetType(); -} - -bool wxRecordSet::GetFieldData(int col, int type, void* data) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return FALSE; - - if (((wxQueryCol*)node->Data())->GetType() != type) - return FALSE; - - void* src = ((wxQueryCol*)node->Data())->GetData(cursor); - - if (!src) - return FALSE; - - memcpy(data, src, ((wxQueryCol*)node->Data())->GetSize(cursor)); - - return TRUE; -} - -bool wxRecordSet::GetFieldData(const char* name, int type, void *data) -{ - wxNode* node = cols.Find(name); - - if (!node) - return FALSE; - - if (((wxQueryCol*)node->Data())->GetType() != type) - return FALSE; - - void* src = ((wxQueryCol*)node->Data())->GetData(cursor); - - if (!src) - return FALSE; - - memcpy(data, src, ((wxQueryCol*)node->Data())->GetSize(cursor)); - - return TRUE; -} - -void* wxRecordSet::GetFieldDataPtr(int col, int type) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return NULL; - - if (((wxQueryCol*)node->Data())->GetType() != type) - return NULL; - - return ((wxQueryCol*)node->Data())->GetData(cursor); -} - -void* wxRecordSet::GetFieldDataPtr(const char* name, int type) -{ - wxNode* node = cols.Find(name); - - if (!node) - return NULL; - - if (((wxQueryCol*)node->Data())->GetType() != type) - return NULL; - - return ((wxQueryCol*)node->Data())->GetData(cursor); -} - -void* wxRecordSet::BindVar(int col, void* var, long size) { - wxNode* node = cols.Nth(col); - - if (!node) - return NULL; - - return ((wxQueryCol*)node->Data())->BindVar(var, size); -} - -void* wxRecordSet::BindVar(const char* name, void* var, long size) { - wxNode* node = cols.Find(name); - - if (!node) - return NULL; - - return ((wxQueryCol*)node->Data())->BindVar(var, size); -} - -void wxRecordSet::SetType(int typ) { - type = typ; -} - -int wxRecordSet::GetType(void) { - return type; -} - -void wxRecordSet::SetOptions(int opts) { - options = opts; -} - -int wxRecordSet::GetOptions(void) { - return options; -} - -bool wxRecordSet::CanAppend(void) -{ - return FALSE; -} - -bool wxRecordSet::CanRestart(void) -{ - return FALSE; -} - -bool wxRecordSet::CanScroll(void) -{ - return FALSE; -} - -bool wxRecordSet::CanTransact(void) -{ - return FALSE; -} - -bool wxRecordSet::CanUpdate(void) -{ - return FALSE; -} - -long wxRecordSet::GetCurrentRecord(void) -{ - return -1L; -} - -bool wxRecordSet::RecordCountFinal(void) -{ - return FALSE; -} - -char* wxRecordSet::GetTableName(void) -{ - return tablename; -} - -char *wxRecordSet::GetSQL(void) -{ - return NULL; -} - -bool wxRecordSet::IsOpen(void) -{ - return parentdb->IsOpen(); -} - -bool wxRecordSet::IsBOF(void) -{ - return cursor < 0; -} - -bool wxRecordSet::IsEOF(void) -{ - return cursor >= nRecords; -} - -bool wxRecordSet::IsDeleted(void) -{ - return FALSE; -} - -// Update operations -void wxRecordSet::AddNew(void) -{ -} - -bool wxRecordSet::Delete(void) -{ - return FALSE; -} - -void wxRecordSet::Edit(void) -{ -} - -bool wxRecordSet::Update(void) -{ - return FALSE; -} - -// Record navigation -bool wxRecordSet::Move(long rows) -{ - if (!nRecords) { - cursor = -1; - return FALSE; - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - cursor += (int)rows; - if (cursor < 0) { - cursor = -1; - return FALSE; - } - if (cursor > nRecords-1) { - cursor = nRecords; - return FALSE; - } - return TRUE; - - case wxOPEN_TYPE_DYNASET: - return FALSE; - default: - return FALSE; - } -} - -bool wxRecordSet::GoTo(long row) -{ - if (!nRecords) { - cursor = -1; - return FALSE; - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - cursor = (int)row; - if (cursor < 0) { - cursor = -1; - return FALSE; - } - if (cursor > nRecords-1) { - cursor = nRecords; - return FALSE; - } - return TRUE; - - case wxOPEN_TYPE_DYNASET: - return FALSE; - default: - return FALSE; - } -} - -bool wxRecordSet::MoveFirst(void) -{ - if (!nRecords) { - cursor = -1; - return FALSE; - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - cursor = 0; - return TRUE; - - case wxOPEN_TYPE_DYNASET: - return FALSE; - default: - return FALSE; - } -} - -bool wxRecordSet::MoveLast(void) -{ - if (!nRecords) { - cursor = -1; - return FALSE; - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - cursor = nRecords-1; - return TRUE; - - case wxOPEN_TYPE_DYNASET: - return FALSE; - default: - return FALSE; - } -} - -bool wxRecordSet::MoveNext(void) -{ - if (!nRecords) { - cursor = -1; - return FALSE; - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - cursor++; - if (cursor >= nRecords) { - cursor = nRecords; - return FALSE; - } - return TRUE; - - case wxOPEN_TYPE_DYNASET: - return FALSE; - default: - return FALSE; - } -} - -bool wxRecordSet::MovePrev(void) -{ - if (!nRecords) { - cursor = -1; - return FALSE; - } - - switch (type) { - case wxOPEN_TYPE_SNAPSHOT: - cursor--; - if (cursor < 0) { - cursor = 0; - return FALSE; - } - return TRUE; - - case wxOPEN_TYPE_DYNASET: - return FALSE; - default: - return FALSE; - } -} - -// Others -void wxRecordSet::Cancel(void) -{ -} - -bool wxRecordSet::IsFieldDirty(int col) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return FALSE; - - return ((wxQueryCol*)node->Data())->IsFieldDirty(cursor); -} - -bool wxRecordSet::IsFieldDirty(const char* name) -{ - wxNode* node = cols.Find(name); - - if (!node) - return FALSE; - - return ((wxQueryCol*)node->Data())->IsFieldDirty(cursor); -} - -bool wxRecordSet::IsFieldNull(int col) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return TRUE; - - return NULL != ((wxQueryCol*)node->Data())->GetData(cursor); -} - -bool wxRecordSet::IsFieldNull(const char* name) -{ - wxNode* node = cols.Find(name); - - if (!node) - return TRUE; - - return NULL != ((wxQueryCol*)node->Data())->GetData(cursor); -} - -bool wxRecordSet::IsColNullable(int col) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return FALSE; - - return ((wxQueryCol*)node->Data())->IsNullable(); -} - -bool wxRecordSet::IsColNullable(const char* name) -{ - wxNode* node = cols.Find(name); - - if (!node) - return FALSE; - - return ((wxQueryCol*)node->Data())->IsNullable(); -} - -bool wxRecordSet::Requery(void) -{ - return FALSE; -} - -void wxRecordSet::SetFieldDirty(int col, bool dirty) -{ - wxNode* node = cols.Nth(col); - - if (!node) - return; - - ((wxQueryCol*)node->Data())->SetFieldDirty(cursor, dirty); -} - -void wxRecordSet::SetFieldDirty(const char* name, bool dirty) -{ - wxNode* node = cols.Find(name); - - if (!node) - return; - - ((wxQueryCol*)node->Data())->SetFieldDirty(cursor, dirty); -} - -void wxRecordSet::SetFieldNull(void *WXUNUSED(p), bool WXUNUSED(isNull)) -{ -} - -// Overridables -char *wxRecordSet::GetDefaultConnect(void) -{ - return NULL; -} - -char *wxRecordSet::GetDefaultSQL(void) -{ - return NULL; -} - -void wxRecordSet::SetDefaultSQL(char *s) -{ - delete[] defaultSQL; - - if (s) - defaultSQL = copystring(s); - else - defaultSQL = NULL; -} - -// Build SQL query from column specification -bool wxRecordSet::ConstructDefaultSQL(void) -{ -// if (queryCols.Number() == 0) - return FALSE; -} - -bool wxRecordSet::ReleaseHandle(void) -{ - if (hStmt) - { - retcode = SQLFreeStmt(hStmt, SQL_DROP); - if (retcode == SQL_ERROR) - { - if (parentdb) - parentdb->ErrorSnapshot(hStmt); - return FALSE; - } - hStmt = 0; - } - return TRUE; -} - -wxQueryCol::wxQueryCol(void) { -// __type = wxTYPE_QUERYCOL; - name = NULL; - type = SQL_TYPE_NULL; - nullable = FALSE; - var = NULL; - varsize = 0; -} - -wxQueryCol::~wxQueryCol(void) { - // delete all data - fields.DeleteContents(TRUE); - fields.Clear(); - - if (name) - delete[] name; -} - -void wxQueryCol::SetName(char* n) { - name = new char[strlen(n)+1]; - strcpy(name, n); -} - -bool wxQueryCol::SetData(int row, void* buf, long len) { - wxNode* node = fields.Nth(row); - - if (!node) - return FALSE; - - return ((wxQueryField*)node->Data())->SetData(buf, len); -} - -void wxQueryCol::SetFieldDirty(int row, bool dirty) { - wxNode* node = fields.Nth(row); - - if (!node) - return; - - ((wxQueryField*)node->Data())->SetDirty(dirty); -} - -void wxQueryCol::AppendField(void* buf, long len) { - wxNode* node = fields.Append(new wxQueryField); - ((wxQueryField*)node->Data())->SetType(type); - ((wxQueryField*)node->Data())->SetData(buf, len); -} - -void wxQueryCol::SetType(short t) { - type = t; -} - -void* wxQueryCol::BindVar(void* v, long s) { - void* oldvar = var; - - var = v; - varsize = s; - - return oldvar; -} - -void wxQueryCol::FillVar(int recnum) { - if (!var) - return; - - wxNode* node = fields.Nth(recnum); - - if (!node) - return; - - long actsize = ((wxQueryField*)node->Data())->GetSize(); - if (actsize > varsize) - actsize = varsize; - - memcpy(var, ((wxQueryField*)node->Data())->GetData(), actsize); -} - -void wxQueryCol::SetNullable(bool n) { - nullable = n; -} - -char* wxQueryCol::GetName(void) { - return name; -} - -short wxQueryCol::GetType(void) { - return type; -} - -bool wxQueryCol::IsNullable(void) { - return nullable; -} - - -bool wxQueryCol::IsFieldDirty(int row) { - wxNode* node = fields.Nth(row); - - if (!node) - return FALSE; - - return ((wxQueryField*)node->Data())->IsDirty(); -} - -void* wxQueryCol::GetData(int row) { - wxNode* node = fields.Nth(row); - - if (!node) - return NULL; - - return ((wxQueryField*)node->Data())->GetData(); -} - -long wxQueryCol::GetSize(int row) { - wxNode* node = fields.Nth(row); - - if (!node) - return 0; - - return ((wxQueryField*)node->Data())->GetSize(); -} - -wxQueryField::wxQueryField(void) { -// __type = wxTYPE_QUERYROW; - data = NULL; - type = SQL_TYPE_NULL; - size = 0; - dirty = FALSE; -} - -wxQueryField::~wxQueryField(void) { - switch (type) - { - case SQL_NUMERIC: - case SQL_DECIMAL: - case SQL_CHAR: - case SQL_VARCHAR: - if (data) // JACS - delete[] (char*)data; - break; - case SQL_INTEGER: - if (data) // JACS - delete (long*)data; - break; - case SQL_SMALLINT: - if (data) - delete (short*)data; - break; - case SQL_FLOAT: - case SQL_DOUBLE: - if (data) - delete (double*)data; - break; - case SQL_REAL: - if (data) - delete (float*)data; - break; - case SQL_TIME: - if (data) - delete (TIME_STRUCT *)data; - break; - case SQL_DATE: - if (data) - delete (DATE_STRUCT *)data; - break; - case SQL_TIMESTAMP: - if (data) - delete (TIMESTAMP_STRUCT *)data; - break; - } -} - -bool wxQueryField::AllocData(void) { - switch (type) - { - case SQL_NUMERIC: - case SQL_DECIMAL: - case SQL_CHAR: - case SQL_VARCHAR: - { - if (data) // JACS - delete[] (char*)data; - if ((data = new char[size+1])) - { - char *str = (char *)data; - int i; - for (i = 0; i < size; i++) - str[i] = 0; -// memset(data, 0, size+1); - } - break; - } - case SQL_INTEGER: - { - if (data) // JACS - delete (long*)data; - if ((data = new long)) - *(long*)data = 0L; - break; - } - case SQL_SMALLINT: - { - if (data) - delete (short*)data; - if ((data = new short)) - *(short*)data = 0; - break; - } - case SQL_FLOAT: - case SQL_DOUBLE: - { - if (data) - delete (double*)data; - if ((data = new double)) - *(double*)data = 0; - break; - } - case SQL_REAL: - { - if (data) - delete (float*)data; - if ((data = new float)) - *(float*)data = (float)0; - break; - } - case SQL_TIME: - { - if (data) - delete (TIME_STRUCT *)data; - data = new TIME_STRUCT; - memset(data, 0, sizeof(TIME_STRUCT)); - break; - } - case SQL_DATE: - { - if (data) - delete (DATE_STRUCT *)data; - data = new DATE_STRUCT; - memset(data, 0, sizeof(DATE_STRUCT)); - break; - } - case SQL_TIMESTAMP: - { - if (data) - delete (TIMESTAMP_STRUCT *)data; - data = new TIMESTAMP_STRUCT; - memset(data, 0, sizeof(TIMESTAMP_STRUCT)); - break; - } - default: - return FALSE; - } - - return TRUE; -} - -bool wxQueryField::SetData(void* d, long s) { - size = s; - if (AllocData() && d) - { -// memcpy(data, d, s); - switch (type) - { - case SQL_NUMERIC: - case SQL_DECIMAL: - case SQL_CHAR: - case SQL_VARCHAR: - { - char *str = (char *)data; - int i; - for (i = 0; i < size; i++) - str[i] = 0; - - strncpy(str, (char *)d, (int)size); - str[size] = 0; - break; - } - case SQL_INTEGER: - { - *(long*)data = *((long *)d); - break; - } - case SQL_SMALLINT: - { - *(short*)data = *((short*)d); - break; - } - case SQL_FLOAT: - case SQL_DOUBLE: - { - *(double*)data = *((double*)d); - break; - } - case SQL_REAL: - { - *(float*)data = *((float*)d); - break; - } - case SQL_TIME: - { - *(TIME_STRUCT *)data = *((TIME_STRUCT*)d); - break; - } - case SQL_TIMESTAMP: - { - *(TIMESTAMP_STRUCT *)data = *((TIMESTAMP_STRUCT*)d); - break; - } - case SQL_DATE: - { - *(DATE_STRUCT *)data = *((DATE_STRUCT*)d); - break; - } - default: - return FALSE; - } - return TRUE; - } - return FALSE; -} - -void wxQueryField::ClearData(void) { - if (data) - { - // memset(data, 0, size); - switch (type) - { - case SQL_NUMERIC: - case SQL_DECIMAL: - case SQL_CHAR: - case SQL_VARCHAR: - { - char *str = (char *)data; - int i; - for (i = 0; i < size; i++) - str[i] = 0; - break; - } - case SQL_INTEGER: - { - *(long*)data = 0L; - break; - } - case SQL_SMALLINT: - { - *(short*)data = 0; - break; - } - case SQL_FLOAT: - case SQL_DOUBLE: - { - *(double*)data = (double)0.0; - break; - } - case SQL_REAL: - { - *(float*)data = (float)0.0; - break; - } - case SQL_TIME: - { - memset(data, 0, sizeof(TIME_STRUCT)); - break; - } - case SQL_DATE: - { - memset(data, 0, sizeof(DATE_STRUCT)); - break; - } - case SQL_TIMESTAMP: - { - memset(data, 0, sizeof(TIMESTAMP_STRUCT)); - break; - } - default: - return; - } - } -} - -void wxQueryField::SetDirty(bool d) { - dirty = d; -} - -void wxQueryField::SetType(short t) { - type = t; -} - -void wxQueryField::SetSize(long s) { - size = s; - AllocData(); -} - -void* wxQueryField::GetData(void) { - return data; -} - -short wxQueryField::GetType(void) { - return type; -} - -long wxQueryField::GetSize(void) { - return size; -} - -bool wxQueryField::IsDirty(void) { - return dirty; -} - -#ifdef __VISUALC__ - #pragma warning(default:4706) // assignment within conditional expression -#endif // VC++ - -#endif // wxUSE_ODBC diff --git a/src/common/paper.cpp b/src/common/paper.cpp deleted file mode 100644 index 3ab79c9270..0000000000 --- a/src/common/paper.cpp +++ /dev/null @@ -1,309 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: paper.cpp -// Purpose: Paper size classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "paper.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/defs.h" - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/settings.h" -#include "wx/intl.h" -#endif - -#include "wx/paper.h" -#include "wx/module.h" - -#include -#include - -#ifdef __WXMSW__ -#include -#include - -#ifndef __WIN32__ -#include -#endif - -#endif - // End __WXMSW__ - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperType, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperDatabase, wxList) -#endif - -/* - * Paper size database for all platforms - */ - -wxPrintPaperType::wxPrintPaperType() -{ - m_paperId = wxPAPER_NONE; - m_platformId = 0; - m_paperName = ""; - m_width = 0; - m_height = 0; -} - -wxPrintPaperType::wxPrintPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h) -{ - m_paperId = paperId; - m_platformId = platformId; - m_paperName = name; - m_width = w; - m_height = h; -} - -// Get width and height in points (1/72th of an inch) -wxSize wxPrintPaperType::GetSizeDeviceUnits() const -{ - return wxSize( (int) ((m_width / 10.0) / (25.4 / 72.0)), (int) ((m_height / 10.0) / (25.4 / 72.0)) ); -} - -/* - * Print paper database for PostScript - */ - -wxPrintPaperDatabase* wxThePrintPaperDatabase = (wxPrintPaperDatabase*) NULL; - -wxPrintPaperDatabase::wxPrintPaperDatabase():wxList(wxKEY_STRING) -{ - DeleteContents(TRUE); -} - -void wxPrintPaperDatabase::CreateDatabase() -{ -/* - AddPaperType(_("A4 210 x 297 mm"), 210, 297); - AddPaperType(_("A3 297 x 420 mm"), 297, 420); - AddPaperType(_("Letter 8 1/2 x 11 in"), 216, 279); - AddPaperType(_("Legal 8 1/2 x 14 in"), 216, 356); -*/ - - WXADDPAPER(wxPAPER_LETTER, DMPAPER_LETTER, "Letter, 8 1/2 x 11 in", 2159, 2794); - WXADDPAPER(wxPAPER_LEGAL, DMPAPER_LEGAL, "Legal, 8 1/2 x 14 in", 2159, 3556); - WXADDPAPER(wxPAPER_A4, DMPAPER_A4, "A4 sheet, 210 x 297 mm", 2100, 2970); - WXADDPAPER(wxPAPER_CSHEET, DMPAPER_CSHEET, "C sheet, 17 x 22 in", 4318, 5588); - WXADDPAPER(wxPAPER_DSHEET, DMPAPER_DSHEET, "D sheet, 22 x 34 in", 5588, 8636); - WXADDPAPER(wxPAPER_ESHEET, DMPAPER_ESHEET, "E sheet, 34 x 44 in", 8636, 11176); - WXADDPAPER(wxPAPER_LETTERSMALL, DMPAPER_LETTERSMALL, "Letter Small, 8 1/2 x 11 in", 2159, 2794); - WXADDPAPER(wxPAPER_TABLOID, DMPAPER_TABLOID, "Tabloid, 11 x 17 in", 2794, 4318); - WXADDPAPER(wxPAPER_LEDGER, DMPAPER_LEDGER, "Ledger, 17 x 11 in", 4318, 2794); - WXADDPAPER(wxPAPER_STATEMENT, DMPAPER_STATEMENT, "Statement, 5 1/2 x 8 1/2 in", 1397, 2159); - WXADDPAPER(wxPAPER_EXECUTIVE, DMPAPER_EXECUTIVE, "Executive, 7 1/4 x 10 1/2 in", 1842, 2667); - WXADDPAPER(wxPAPER_A3, DMPAPER_A3, "A3 sheet, 297 x 420 mm", 2970, 4200); - WXADDPAPER(wxPAPER_A4SMALL, DMPAPER_A4SMALL, "A4 small sheet, 210 x 297 mm", 2100, 2970); - WXADDPAPER(wxPAPER_A5, DMPAPER_A5, "A5 sheet, 148 x 210 mm", 1480, 2100); - WXADDPAPER(wxPAPER_B4, DMPAPER_B4, "B4 sheet, 250 x 354 mm", 2500, 3540); - WXADDPAPER(wxPAPER_B5, DMPAPER_B5, "B5 sheet, 182 x 257 millimeter", 1820, 2570); - WXADDPAPER(wxPAPER_FOLIO, DMPAPER_FOLIO, "Folio, 8 1/2 x 13 in", 2159, 3302); - WXADDPAPER(wxPAPER_QUARTO, DMPAPER_QUARTO, "Quarto, 215 x 275 mm", 2150, 2750); - WXADDPAPER(wxPAPER_10X14, DMPAPER_10X14, "10 x 14 in", 2540, 3556); - WXADDPAPER(wxPAPER_11X17, DMPAPER_11X17, "11 x 17 in", 2794, 4318); - WXADDPAPER(wxPAPER_NOTE, DMPAPER_NOTE, "Note, 8 1/2 x 11 in", 2159, 2794); - WXADDPAPER(wxPAPER_ENV_9, DMPAPER_ENV_9, "#9 Envelope, 3 7/8 x 8 7/8 in", 984, 2254); - WXADDPAPER(wxPAPER_ENV_10, DMPAPER_ENV_10, "#10 Envelope, 4 1/8 x 9 1/2 in", 1048, 2413); - WXADDPAPER(wxPAPER_ENV_11, DMPAPER_ENV_11, "#11 Envelope, 4 1/2 x 10 3/8 in", 1143, 2635); - WXADDPAPER(wxPAPER_ENV_12, DMPAPER_ENV_12, "#12 Envelope, 4 3/4 x 11 in", 1206, 2794); - WXADDPAPER(wxPAPER_ENV_14, DMPAPER_ENV_14, "#14 Envelope, 5 x 11 1/2 in", 1270, 2921); - WXADDPAPER(wxPAPER_ENV_DL, DMPAPER_ENV_DL, "DL Envelope, 110 x 220 mm", 1100, 2200); - WXADDPAPER(wxPAPER_ENV_C5, DMPAPER_ENV_C5, "C5 Envelope, 162 x 229 mm", 1620, 2290); - WXADDPAPER(wxPAPER_ENV_C3, DMPAPER_ENV_C3, "C3 Envelope, 324 x 458 mm", 3240, 4580); - WXADDPAPER(wxPAPER_ENV_C4, DMPAPER_ENV_C4, "C4 Envelope, 229 x 324 mm", 2290, 3240); - WXADDPAPER(wxPAPER_ENV_C6, DMPAPER_ENV_C6, "C6 Envelope, 114 x 162 mm", 1140, 1620); - WXADDPAPER(wxPAPER_ENV_C65, DMPAPER_ENV_C65, "C65 Envelope, 114 x 229 mm", 1140, 2290); - WXADDPAPER(wxPAPER_ENV_B4, DMPAPER_ENV_B4, "B4 Envelope, 250 x 353 mm", 2500, 3530); - WXADDPAPER(wxPAPER_ENV_B5, DMPAPER_ENV_B5, "B5 Envelope, 176 x 250 mm", 1760, 2500); - WXADDPAPER(wxPAPER_ENV_B6, DMPAPER_ENV_B6, "B6 Envelope, 176 x 125 mm", 1760, 1250); - WXADDPAPER(wxPAPER_ENV_ITALY, DMPAPER_ENV_ITALY, "Italy Envelope, 110 x 230 mm", 1100, 2300); - WXADDPAPER(wxPAPER_ENV_MONARCH, DMPAPER_ENV_MONARCH, "Monarch Envelope, 3 7/8 x 7 1/2 in", 984, 1905); - WXADDPAPER(wxPAPER_ENV_PERSONAL, DMPAPER_ENV_PERSONAL, "6 3/4 Envelope, 3 5/8 x 6 1/2 in", 921, 1651); - WXADDPAPER(wxPAPER_FANFOLD_US, DMPAPER_FANFOLD_US, "US Std Fanfold, 14 7/8 x 11 in", 3778, 2794); - WXADDPAPER(wxPAPER_FANFOLD_STD_GERMAN, DMPAPER_FANFOLD_STD_GERMAN, "German Std Fanfold, 8 1/2 x 12 in", 2159, 3048); - WXADDPAPER(wxPAPER_FANFOLD_LGL_GERMAN, DMPAPER_FANFOLD_LGL_GERMAN, "German Legal Fanfold, 8 1/2 x 13 in", 2159, 3302); - -/* Another time! -#ifdef __WIN95__ - WXADDPAPER(wxPAPER_ISO_B4, DMPAPER_ISO_B4, "B4 (ISO) 250 x 353 mm", - WXADDPAPER(wxPAPER_JAPANESE_POSTCARD, DMPAPER_JAPANESE_POSTCARD, "Japanese Postcard 100 x 148 mm", - WXADDPAPER(wxPAPER_9X11, DMPAPER_9X11, "9 x 11 in", - WXADDPAPER(wxPAPER_10X11, DMPAPER_10X11, "10 x 11 in", - WXADDPAPER(wxPAPER_15X11, DMPAPER_15X11, "15 x 11 in", - WXADDPAPER(wxPAPER_ENV_INVITE, DMPAPER_ENV_INVITE, "Envelope Invite 220 x 220 mm", - // What does \275 mean? -// WXADDPAPER(wxPAPER_LETTER_EXTRA, DMPAPER_LETTER_EXTRA, "Letter Extra 9 \275 x 12 in", -// WXADDPAPER(wxPAPER_LEGAL_EXTRA, DMPAPER_LEGAL_EXTRA, "Legal Extra 9 \275 x 15 in", - WXADDPAPER(wxPAPER_TABLOID_EXTRA, DMPAPER_TABLOID_EXTRA, "Tabloid Extra 11.69 x 18 in", - WXADDPAPER(wxPAPER_A4_EXTRA, DMPAPER_A4_EXTRA, "A4 Extra 9.27 x 12.69 in", -// WXADDPAPER(wxPAPER_LETTER_TRANSVERSE, DMPAPER_LETTER_TRANSVERSE, "Letter Transverse 8 \275 x 11 in", - WXADDPAPER(wxPAPER_A4_TRANSVERSE, DMPAPER_A4_TRANSVERSE, "A4 Transverse 210 x 297 mm", -// WXADDPAPER(wxPAPER_LETTER_EXTRA_TRANSVERSE, DMPAPER_LETTER_EXTRA_TRANSVERSE, "Letter Extra Transverse 9\275 x 12 in", - WXADDPAPER(wxPAPER_A_PLUS, DMPAPER_A_PLUS, "SuperA/SuperA/A4 227 x 356 mm", - WXADDPAPER(wxPAPER_B_PLUS, DMPAPER_B_PLUS, "SuperB/SuperB/A3 305 x 487 mm", - WXADDPAPER(wxPAPER_LETTER_PLUS, DMPAPER_LETTER_PLUS, "Letter Plus 8.5 x 12.69 in", - WXADDPAPER(wxPAPER_A4_PLUS, DMPAPER_A4_PLUS, "A4 Plus 210 x 330 mm", - WXADDPAPER(wxPAPER_A5_TRANSVERSE, DMPAPER_A5_TRANSVERSE, "A5 Transverse 148 x 210 mm", - WXADDPAPER(wxPAPER_B5_TRANSVERSE, DMPAPER_B5_TRANSVERSE, "B5 (JIS) Transverse 182 x 257 mm", - WXADDPAPER(wxPAPER_A3_EXTRA, DMPAPER_A3_EXTRA, "A3 Extra 322 x 445 mm", - WXADDPAPER(wxPAPER_A5_EXTRA, DMPAPER_A5_EXTRA, "A5 Extra 174 x 235 mm", - WXADDPAPER(wxPAPER_B5_EXTRA, DMPAPER_B5_EXTRA, "B5 (ISO) Extra 201 x 276 mm", - WXADDPAPER(wxPAPER_A2, DMPAPER_A2, "A2 420 x 594 mm", - WXADDPAPER(wxPAPER_A3_TRANSVERSE, DMPAPER_A3_TRANSVERSE, "A3 Transverse 297 x 420 mm", - WXADDPAPER(wxPAPER_A3_EXTRA_TRANSVERSE DMPAPER_A3_EXTRA_TRANSVERSE "A3 Extra Transverse 322 x 445 mm", -#endif -*/ -} - -void wxPrintPaperDatabase::ClearDatabase() -{ - Clear(); -} - -void wxPrintPaperDatabase::AddPaperType(wxPaperSize paperId, const wxString& name, int w, int h) -{ - Append(name, new wxPrintPaperType(paperId, 0, name, w, h)); -} - -void wxPrintPaperDatabase::AddPaperType(wxPaperSize paperId, int platformId, const wxString& name, int w, int h) -{ - Append(name, new wxPrintPaperType(paperId, platformId, name, w, h)); -} - -wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(const wxString& name) -{ - wxNode *node = Find(name); - if (node) - return (wxPrintPaperType *)node->Data(); - else - return (wxPrintPaperType *) NULL; -} - -wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(wxPaperSize id) -{ - wxNode *node = First(); - while (node) - { - wxPrintPaperType* paperType = (wxPrintPaperType*) node->Data(); - if (paperType->GetId() == id) - return paperType; - node = node->Next(); - } - return (wxPrintPaperType *) NULL; -} - -wxPrintPaperType *wxPrintPaperDatabase::FindPaperTypeByPlatformId(int id) -{ - wxNode *node = First(); - while (node) - { - wxPrintPaperType* paperType = (wxPrintPaperType*) node->Data(); - if (paperType->GetPlatformId() == id) - return paperType; - node = node->Next(); - } - return (wxPrintPaperType *) NULL; -} - -wxPrintPaperType *wxPrintPaperDatabase::FindPaperType(const wxSize& sz) -{ - wxNode *node = First(); - while (node) - { - wxPrintPaperType* paperType = (wxPrintPaperType*) node->Data(); - if (paperType->GetSize() == sz) - return paperType; - node = node->Next(); - } - return (wxPrintPaperType *) NULL; -} - -// Convert name to size id -wxPaperSize wxPrintPaperDatabase::ConvertNameToId(const wxString& name) -{ - wxPrintPaperType* type = FindPaperType(name); - if (type) - return type->GetId(); - else - return wxPAPER_NONE; -} - -// Convert size id to name -wxString wxPrintPaperDatabase::ConvertIdToName(wxPaperSize paperId) -{ - wxPrintPaperType* type = FindPaperType(paperId); - if (type) - return type->GetName(); - else - return wxEmptyString; -} - -// Get the paper size -wxSize wxPrintPaperDatabase::GetSize(wxPaperSize paperId) -{ - wxPrintPaperType* type = FindPaperType(paperId); - if (type) - return type->GetSize(); - else - return wxSize(0, 0); -} - -// Get the paper size -wxPaperSize wxPrintPaperDatabase::GetSize(const wxSize& size) -{ - wxPrintPaperType* type = FindPaperType(size); - if (type) - return type->GetId(); - else - return wxPAPER_NONE; -} - -// A module to allow initialization/cleanup of print paper -// things without calling these functions from app.cpp. - -class WXDLLEXPORT wxPrintPaperModule: public wxModule -{ -DECLARE_DYNAMIC_CLASS(wxPrintPaperModule) -public: - wxPrintPaperModule() {} - bool OnInit(); - void OnExit(); -}; - -IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperModule, wxModule) - -/* - * Initialization/cleanup module - */ - -bool wxPrintPaperModule::OnInit() -{ - wxThePrintPaperDatabase = new wxPrintPaperDatabase; - wxThePrintPaperDatabase->CreateDatabase(); - - return TRUE; -} - -void wxPrintPaperModule::OnExit() -{ - delete wxThePrintPaperDatabase; - wxThePrintPaperDatabase = NULL; -} - diff --git a/src/common/parser.y b/src/common/parser.y deleted file mode 100644 index cea8e3a3bb..0000000000 --- a/src/common/parser.y +++ /dev/null @@ -1,167 +0,0 @@ - %{ -#include -#ifdef _MSC_VER -#include -#endif -#if defined(__GNUWIN32__) && !defined(__TWIN32__) -#include -#endif - -#include "wx/expr.h" - -#ifndef __EXTERN_C__ -#define __EXTERN_C__ 1 -#endif - -#if defined(__cplusplus) || defined(__STDC__) -#if defined(__cplusplus) && defined(__EXTERN_C__) -extern "C" { -#endif -#endif -int yylex(void); -int yylook(void); -int yywrap(void); -int yyback(int *, int); -void yyerror(char *); - -/* You may need to put /DLEX_SCANNER in your makefile - * if you're using LEX! - */ -void yyoutput(int); - -#if defined(__cplusplus) || defined(__STDC__) -#if defined(__cplusplus) && defined(__EXTERN_C__) -} -#endif -#endif -%} - -%union { - char *s; -/* struct pexpr *expr; */ -} - - -%start commands - -%token INTEGER 1 -%token WORD 2 -%token STRING 3 -%token PERIOD 13 -%token OPEN 4 -%token CLOSE 5 -%token COMMA 6 -%token NEWLINE 7 -%token ERROR 8 -%token OPEN_SQUARE 9 -%token CLOSE_SQUARE 10 -%token EQUALS 11 -%token EXP 14 - -/* %type command expr arglist arg arg1 */ -%type command expr arglist arg arg1 - -%% - -commands : /* empty */ - | commands command - ; - -command : WORD PERIOD - {process_command(proio_cons(wxmake_word($1), NULL)); free($1);} - | expr PERIOD - {process_command($1);} - | error PERIOD - {syntax_error("Unrecognized command.");} - ; - -expr : WORD OPEN arglist CLOSE - {$$ = proio_cons(wxmake_word($1), $3); free($1);} - | OPEN_SQUARE CLOSE_SQUARE - {$$ = proio_cons(NULL, NULL);} - | OPEN_SQUARE arglist CLOSE_SQUARE - {$$ = $2; } - ; - -arglist : - {$$ = NULL;} - | arg - {$$ = proio_cons($1, NULL);} - | - arg COMMA arglist - {$$ = proio_cons($1, $3);} - ; - -arg : WORD EQUALS arg1 - {$$ = proio_cons(wxmake_word("="), proio_cons(wxmake_word($1), proio_cons($3, NULL))); - free($1); } - | arg1 - {$$ = $1; } - -arg1 : WORD - {$$ = wxmake_word($1); free($1);} - | STRING - {$$ = wxmake_string($1); free($1);} - | INTEGER - {$$ = wxmake_integer($1); free($1);} - | INTEGER PERIOD INTEGER - {$$ = wxmake_real($1, $3); free($1); free($3); } - | INTEGER EXP INTEGER - {$$ = wxmake_exp($1, $3); free($1); free($3); } - | - INTEGER PERIOD INTEGER EXP INTEGER - {$$ = wxmake_exp2($1, $3, $5); free($1); free($3); - free($5); } - - | expr - {$$ = $1;} - ; - -%% - -#if (defined(__WXGTK__) || defined(__WXWINE__) || defined(__WXMOTIF__)) && !defined(NO_CONFIGURE) -#include "lexer.c" -#else -#if (defined(__MWERKS__)) -#include "../common/cwlex_yy.c" -#else -#include "../common/lex_yy.c" -#endif -#endif - -/* -void yyerror(s) -char *s; -{ - syntax_error(s); -} -*/ - -/* Ansi prototype. If this doesn't work for you... uncomment - the above instead. - */ - -void yyerror(char *s) -{ - syntax_error(s); -} - -/* - * Unfortunately, my DOS version of FLEX - * requires yywrap to be #def'ed, whereas - * the UNIX flex expects a proper function. - */ - -/* Not sure if __SC__ is the appropriate thing - * to test - */ - -#ifndef __SC__ -#ifdef USE_DEFINE -#ifndef yywrap -#define yywrap() 1 -#endif -#else if !defined(__alpha___) && !defined(__ultrix) -int yywrap() { return 1; } -#endif -#endif diff --git a/src/common/prntbase.cpp b/src/common/prntbase.cpp deleted file mode 100644 index 71843dd88c..0000000000 --- a/src/common/prntbase.cpp +++ /dev/null @@ -1,765 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: prntbase.cpp -// Purpose: Printing framework base class implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "prntbase.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/defs.h" - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/dc.h" -#include "wx/app.h" -#include "wx/msgdlg.h" -#include "wx/layout.h" -#include "wx/choice.h" -#include "wx/button.h" -#include "wx/settings.h" -#include "wx/dcmemory.h" -#include "wx/stattext.h" -#include "wx/intl.h" -#endif - -#include "wx/prntbase.h" -#include "wx/dcprint.h" -#include "wx/printdlg.h" -#include "wx/module.h" - -#include -#include - -#ifdef __WXMSW__ -#include -#include - -// Clash with Windows header files -#ifdef StartDoc -#undef StartDoc -#endif - -#ifndef __WIN32__ -#include -#endif - -#endif -// End __WXMSW__ - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxPrinterBase, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxPrintout, wxObject) -IMPLEMENT_CLASS(wxPreviewCanvas, wxWindow) -IMPLEMENT_CLASS(wxPreviewControlBar, wxWindow) -IMPLEMENT_CLASS(wxPreviewFrame, wxFrame) -IMPLEMENT_CLASS(wxPrintPreviewBase, wxObject) - -BEGIN_EVENT_TABLE(wxPrintAbortDialog, wxDialog) -EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxPreviewCanvas, wxScrolledWindow) -EVT_PAINT(wxPreviewCanvas::OnPaint) -EVT_SYS_COLOUR_CHANGED(wxPreviewCanvas::OnSysColourChanged) -END_EVENT_TABLE() -#endif - -/* -* Printer -*/ - -wxPrinterBase::wxPrinterBase(wxPrintDialogData *data) -{ - m_currentPrintout = (wxPrintout *) NULL; - sm_abortWindow = (wxWindow *) NULL; - sm_abortIt = FALSE; - if (data) - m_printDialogData = (*data); -} - -wxWindow *wxPrinterBase::sm_abortWindow = (wxWindow *) NULL; -bool wxPrinterBase::sm_abortIt = FALSE; - -wxPrinterBase::~wxPrinterBase() -{ -} - -void wxPrintAbortDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - wxPrinterBase::sm_abortIt = TRUE; - wxPrinterBase::sm_abortWindow->Show(FALSE); - wxPrinterBase::sm_abortWindow->Close(TRUE); - wxPrinterBase::sm_abortWindow = (wxWindow *) NULL; -} - -wxWindow *wxPrinterBase::CreateAbortWindow(wxWindow *parent, wxPrintout *WXUNUSED(printout)) -{ - wxPrintAbortDialog *dialog = new wxPrintAbortDialog(parent, _("Printing"), wxPoint(0, 0), wxSize(400, 400), wxDEFAULT_DIALOG_STYLE); - (void) new wxStaticText(dialog, -1, _("Please wait..."), wxPoint(5, 5)); - - wxButton *button = new wxButton(dialog, wxID_CANCEL, _("Cancel"), wxPoint(5, 30)); - - dialog->Fit(); - button->Centre(wxHORIZONTAL); - - dialog->Centre(); - return dialog; -} - -void wxPrinterBase::ReportError(wxWindow *parent, wxPrintout *WXUNUSED(printout), char *message) -{ - wxMessageBox(message, _("Printing Error"), wxOK, parent); -} - -/* -* Printout class -*/ - -wxPrintout::wxPrintout(const wxString& title) -{ - m_printoutTitle = title ; - m_printoutDC = (wxDC *) NULL; - m_pageWidthMM = 0; - m_pageHeightMM = 0; - m_pageWidthPixels = 0; - m_pageHeightPixels = 0; - m_PPIScreenX = 0; - m_PPIScreenY = 0; - m_PPIPrinterX = 0; - m_PPIPrinterY = 0; - m_isPreview = FALSE; -} - -wxPrintout::~wxPrintout() -{ -} - -bool wxPrintout::OnBeginDocument(int WXUNUSED(startPage), int WXUNUSED(endPage)) -{ - return GetDC()->StartDoc(_("Printing")); -} - -void wxPrintout::OnEndDocument() -{ - GetDC()->EndDoc(); -} - -void wxPrintout::OnBeginPrinting() -{ -} - -void wxPrintout::OnEndPrinting() -{ -} - -bool wxPrintout::HasPage(int page) -{ - return (page == 1); -} - -void wxPrintout::GetPageInfo(int *minPage, int *maxPage, int *fromPage, int *toPage) -{ - *minPage = 1; - *maxPage = 32000; - *fromPage = 1; - *toPage = 1; -} - -/* -* Preview canvas -*/ - -wxPreviewCanvas::wxPreviewCanvas(wxPrintPreviewBase *preview, wxWindow *parent, - const wxPoint& pos, const wxSize& size, long style, const wxString& name): -wxScrolledWindow(parent, -1, pos, size, style, name) -{ - m_printPreview = preview; - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - - SetScrollbars(15, 18, 100, 100); -} - -wxPreviewCanvas::~wxPreviewCanvas() -{ -} - -void wxPreviewCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - PrepareDC( dc ); - - if (m_printPreview) - { - m_printPreview->PaintPage(this, dc); - } -} - -// Responds to colour changes, and passes event on to children. -void wxPreviewCanvas::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -/* -* Preview control bar -*/ - -BEGIN_EVENT_TABLE(wxPreviewControlBar, wxPanel) - EVT_BUTTON(wxID_PREVIEW_CLOSE, wxPreviewControlBar::OnWindowClose) - EVT_BUTTON(wxID_PREVIEW_PRINT, wxPreviewControlBar::OnPrint) - EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPrevious) - EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNext) - EVT_CHOICE(wxID_PREVIEW_ZOOM, wxPreviewControlBar::OnZoom) - EVT_PAINT(wxPreviewControlBar::OnPaint) -END_EVENT_TABLE() - -wxPreviewControlBar::wxPreviewControlBar(wxPrintPreviewBase *preview, long buttons, - wxWindow *parent, const wxPoint& pos, const wxSize& size, - long style, const wxString& name): -wxPanel(parent, -1, pos, size, style, name) -{ - m_printPreview = preview; - m_closeButton = (wxButton *) NULL; - m_nextPageButton = (wxButton *) NULL; - m_previousPageButton = (wxButton *) NULL; - m_printButton = (wxButton *) NULL; - m_zoomControl = (wxChoice *) NULL; - m_buttonFlags = buttons; -} - -wxPreviewControlBar::~wxPreviewControlBar() -{ -} - -void wxPreviewControlBar::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - - int w, h; - GetSize(&w, &h); - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.DrawLine( 0, h-1, w, h-1 ); -} - -void wxPreviewControlBar::OnWindowClose(wxCommandEvent& WXUNUSED(event)) -{ - wxPreviewFrame *frame = (wxPreviewFrame *)GetParent(); - frame->Close(TRUE); -} - -void wxPreviewControlBar::OnPrint(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintPreviewBase *preview = GetPrintPreview(); - preview->Print(TRUE); -} - -void wxPreviewControlBar::OnNext(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintPreviewBase *preview = GetPrintPreview(); - if (preview) - { - int currentPage = preview->GetCurrentPage(); - if ((preview->GetMaxPage() > 0) && - (currentPage < preview->GetMaxPage()) && - preview->GetPrintout()->HasPage(currentPage + 1)) - { - preview->SetCurrentPage(currentPage + 1); - } - } -} - -void wxPreviewControlBar::OnPrevious(wxCommandEvent& WXUNUSED(event)) -{ - wxPrintPreviewBase *preview = GetPrintPreview(); - if (preview) - { - int currentPage = preview->GetCurrentPage(); - if ((preview->GetMinPage() > 0) && - (currentPage > preview->GetMinPage()) && - preview->GetPrintout()->HasPage(currentPage - 1)) - { - preview->SetCurrentPage(currentPage - 1); - } - } -} - -void wxPreviewControlBar::OnZoom(wxCommandEvent& WXUNUSED(event)) -{ - int zoom = GetZoomControl(); - if (GetPrintPreview()) - GetPrintPreview()->SetZoom(zoom); -} - -void wxPreviewControlBar::CreateButtons() -{ - SetSize(0, 0, 400, 40); - - /* - #ifdef __WXMSW__ - int fontSize = 9; - #else - int fontSize = 10; - #endif - - wxFont buttonFont(fontSize, wxSWISS, wxNORMAL, wxBOLD); - SetFont(buttonFont); - */ - - int buttonWidth = 65; -#ifdef __WXGTK__ - int buttonHeight = -1; -#else - int buttonHeight = 24; -#endif - - int x = 5; - int y = 5; - -#ifdef __WXMOTIF__ - int gap = 15; -#else - int gap = 5; -#endif - - m_closeButton = new wxButton(this, wxID_PREVIEW_CLOSE, _("Close"), - wxPoint(x, y), wxSize(buttonWidth, buttonHeight)); - - x += gap + buttonWidth; - - if (m_buttonFlags & wxPREVIEW_PRINT) - { - m_printButton = new wxButton(this, wxID_PREVIEW_PRINT, _("Print..."), wxPoint(x, y), - wxSize(buttonWidth, buttonHeight)); - x += gap + buttonWidth; - } - - if (m_buttonFlags & wxPREVIEW_PREVIOUS) - { - m_previousPageButton = new wxButton(this, wxID_PREVIEW_PREVIOUS, "<<", wxPoint(x, y), - wxSize(buttonWidth, buttonHeight)); - x += gap + buttonWidth; - } - - if (m_buttonFlags & wxPREVIEW_NEXT) - { - m_nextPageButton = new wxButton(this, wxID_PREVIEW_NEXT, ">>", - wxPoint(x, y), wxSize(buttonWidth, buttonHeight)); - x += gap + buttonWidth; - } - - if (m_buttonFlags & wxPREVIEW_ZOOM) - { - static const char *choices[] = - { - "10%", "15%", "20%", "25%", "30%", "35%", "40%", "45%", "50%", "55%", - "60%", "65%", "70%", "75%", "80%", "85%", "90%", "95%", "100%", "110%", - "120%", "150%", "200%" - }; - - m_zoomControl = new wxChoice(this, wxID_PREVIEW_ZOOM, - wxPoint(x, y), wxSize(100, -1)); - - // Yes, this look stupid, but this is because gcc gives up otherwise. - int n = WXSIZEOF(choices); - for ( int i = 0; i < n; i++ ) - m_zoomControl->Append(choices[i]); - - SetZoomControl(m_printPreview->GetZoom()); - } - - // m_closeButton->SetDefault(); -} - -void wxPreviewControlBar::SetZoomControl(int zoom) -{ - char buf[20]; - sprintf(buf, "%d%%", zoom); - if (m_zoomControl) - m_zoomControl->SetStringSelection(buf); -} - -int wxPreviewControlBar::GetZoomControl() -{ - wxChar buf[20]; - if (m_zoomControl && (m_zoomControl->GetStringSelection() != _T(""))) - { - wxStrcpy(buf, m_zoomControl->GetStringSelection()); - buf[wxStrlen(buf) - 1] = 0; - return (int)wxAtoi(buf); - } - else return 0; -} - - -/* -* Preview frame -*/ - -BEGIN_EVENT_TABLE(wxPreviewFrame, wxFrame) -EVT_CLOSE(wxPreviewFrame::OnCloseWindow) -END_EVENT_TABLE() - -wxPreviewFrame::wxPreviewFrame(wxPrintPreviewBase *preview, wxFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, long style, const wxString& name): -wxFrame(parent, -1, title, pos, size, style, name) -{ - m_printPreview = preview; - m_controlBar = NULL; - m_previewCanvas = NULL; -} - -wxPreviewFrame::~wxPreviewFrame() -{ -} - -void wxPreviewFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - MakeModal(FALSE); - - // Need to delete the printout and the print preview - wxPrintout *printout = m_printPreview->GetPrintout(); - if (printout) - { - delete printout; - m_printPreview->SetPrintout(NULL); - m_printPreview->SetCanvas(NULL); - m_printPreview->SetFrame(NULL); - } - delete m_printPreview; - - Destroy(); -} - -void wxPreviewFrame::Initialize() -{ - CreateStatusBar(); - - CreateCanvas(); - CreateControlBar(); - - m_printPreview->SetCanvas(m_previewCanvas); - m_printPreview->SetFrame(this); - - // Set layout constraints here - - // Control bar constraints - wxLayoutConstraints *c1 = new wxLayoutConstraints; - // int w, h; - // m_controlBar->GetSize(&w, &h); - int h; -#if (defined(__WXMSW__) || defined(__WXGTK__)) - h = 40; -#else - h = 60; -#endif - - c1->left.SameAs (this, wxLeft); - c1->top.SameAs (this, wxTop); - c1->right.SameAs (this, wxRight); - c1->height.Absolute (h); - - m_controlBar->SetConstraints(c1); - - // Canvas constraints - wxLayoutConstraints *c2 = new wxLayoutConstraints; - - c2->left.SameAs (this, wxLeft); - c2->top.Below (m_controlBar); - c2->right.SameAs (this, wxRight); - c2->bottom.SameAs (this, wxBottom); - - m_previewCanvas->SetConstraints(c2); - - SetAutoLayout(TRUE); - - MakeModal(TRUE); - - Layout(); -} - -void wxPreviewFrame::CreateCanvas() -{ - m_previewCanvas = new wxPreviewCanvas(m_printPreview, this); -} - -void wxPreviewFrame::CreateControlBar() -{ - long buttons = wxPREVIEW_DEFAULT; - if (m_printPreview->GetPrintoutForPrinting()) - buttons |= wxPREVIEW_PRINT; - - m_controlBar = new wxPreviewControlBar(m_printPreview, buttons, this, wxPoint(0, 0), wxSize(400, 40)); - m_controlBar->CreateButtons(); -} - -/* -* Print preview -*/ - -wxPrintPreviewBase::wxPrintPreviewBase(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data) -{ - if (data) - m_printDialogData = (*data); - - Init(printout, printoutForPrinting); -} - -wxPrintPreviewBase::wxPrintPreviewBase(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintDialogData *data) -{ - if (data) - m_printDialogData = (*data); - - Init(printout, printoutForPrinting); -} - -void wxPrintPreviewBase::Init(wxPrintout *printout, - wxPrintout *printoutForPrinting) -{ - m_isOk = TRUE; - m_previewPrintout = printout; - if (m_previewPrintout) - m_previewPrintout->SetIsPreview(TRUE); - - m_printPrintout = printoutForPrinting; - - m_previewCanvas = NULL; - m_previewFrame = NULL; - m_previewBitmap = NULL; - m_currentPage = 1; - m_currentZoom = 70; - m_topMargin = 40; - m_leftMargin = 40; - m_pageWidth = 0; - m_pageHeight = 0; - - printout->OnPreparePrinting(); - - // Get some parameters from the printout, if defined - int selFrom, selTo; - printout->GetPageInfo(&m_minPage, &m_maxPage, &selFrom, &selTo); -} - -wxPrintPreviewBase::~wxPrintPreviewBase() -{ - if (m_previewPrintout) - delete m_previewPrintout; - if (m_previewBitmap) - delete m_previewBitmap; - if (m_printPrintout) - delete m_printPrintout; -} - -bool wxPrintPreviewBase::SetCurrentPage(int pageNum) -{ - if (m_currentPage == pageNum) - return TRUE; - - m_currentPage = pageNum; - if (m_previewBitmap) - { - delete m_previewBitmap; - m_previewBitmap = NULL; - } - - if (m_previewCanvas) - { - RenderPage(pageNum); - m_previewCanvas->Refresh(); - } - return TRUE; -} - -bool wxPrintPreviewBase::PaintPage(wxWindow *canvas, wxDC& dc) -{ - DrawBlankPage(canvas, dc); - - if (!m_previewBitmap) - RenderPage(m_currentPage); - - if (!m_previewBitmap) - return FALSE; - - if (!canvas) - return FALSE; - - int canvasWidth, canvasHeight; - canvas->GetSize(&canvasWidth, &canvasHeight); - - double zoomScale = ((float)m_currentZoom/(float)100); - double actualWidth = (zoomScale*m_pageWidth*m_previewScale); - // float actualHeight = (float)(zoomScale*m_pageHeight*m_previewScale); - - int x = (int) ((canvasWidth - actualWidth)/2.0); - if (x < m_leftMargin) - x = m_leftMargin; - int y = m_topMargin; - - wxMemoryDC temp_dc; - temp_dc.SelectObject(*m_previewBitmap); - - dc.Blit(x, y, m_previewBitmap->GetWidth(), m_previewBitmap->GetHeight(), &temp_dc, 0, 0); - - temp_dc.SelectObject(wxNullBitmap); - - return TRUE; -} - -bool wxPrintPreviewBase::RenderPage(int pageNum) -{ - int canvasWidth, canvasHeight; - - if (!m_previewCanvas) - { - wxMessageBox(_("wxPrintPreviewBase::RenderPage: must use wxPrintPreviewBase::SetCanvas to let me know about the canvas!"), - _("Print Preview Failure"), wxOK); - return FALSE; - } - m_previewCanvas->GetSize(&canvasWidth, &canvasHeight); - - double zoomScale = (m_currentZoom/100.0); - int actualWidth = (int)(zoomScale*m_pageWidth*m_previewScale); - int actualHeight = (int)(zoomScale*m_pageHeight*m_previewScale); - - int x = (int)((canvasWidth - actualWidth)/2.0); - if (x < m_leftMargin) - x = m_leftMargin; - // int y = m_topMargin; - - - if (!m_previewBitmap) - { - m_previewBitmap = new wxBitmap((int)actualWidth, (int)actualHeight); - if (!m_previewBitmap || !m_previewBitmap->Ok()) - { - if (m_previewBitmap) - delete m_previewBitmap; - wxMessageBox(_("Sorry, not enough memory to create a preview."), _("Print Preview Failure"), wxOK); - return FALSE; - } - } - - wxMemoryDC memoryDC; - memoryDC.SelectObject(*m_previewBitmap); - - memoryDC.Clear(); - - m_previewPrintout->SetDC(&memoryDC); - m_previewPrintout->SetPageSizePixels(m_pageWidth, m_pageHeight); - - m_previewPrintout->OnBeginPrinting(); - - if (!m_previewPrintout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage())) - { - wxMessageBox(_("Could not start document preview."), _("Print Preview Failure"), wxOK); - - memoryDC.SelectObject(wxNullBitmap); - - delete m_previewBitmap; - return FALSE; - } - - m_previewPrintout->OnPrintPage(pageNum); - m_previewPrintout->OnEndDocument(); - m_previewPrintout->OnEndPrinting(); - - m_previewPrintout->SetDC(NULL); - - memoryDC.SelectObject(wxNullBitmap); - - wxChar buf[200]; - if (m_maxPage != 0) - wxSprintf(buf, _("Page %d of %d"), pageNum, m_maxPage); - else - wxSprintf(buf, _("Page %d"), pageNum); - - if (m_previewFrame) - m_previewFrame->SetStatusText(buf); - - return TRUE; -} - - -bool wxPrintPreviewBase::DrawBlankPage(wxWindow *canvas, wxDC& dc) -{ - int canvasWidth, canvasHeight; - canvas->GetSize(&canvasWidth, &canvasHeight); - - float zoomScale = (float)((float)m_currentZoom/(float)100); - float actualWidth = zoomScale*m_pageWidth*m_previewScale; - float actualHeight = zoomScale*m_pageHeight*m_previewScale; - - float x = (float)((canvasWidth - actualWidth)/2.0); - if (x < m_leftMargin) - x = (float)m_leftMargin; - float y = (float)m_topMargin; - - // Draw shadow, allowing for 1-pixel border AROUND the actual page - int shadowOffset = 4; - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxBLACK_BRUSH); - /* - dc.DrawRectangle((int)(x-1 + shadowOffset), (int)(y-1 + shadowOffset), (int)(actualWidth+2), (int)(actualHeight+2)); - */ - dc.DrawRectangle((int)(x + shadowOffset), (int)(y + actualHeight+1), (int)(actualWidth), shadowOffset); - dc.DrawRectangle((int)(x + actualWidth), (int)(y + shadowOffset), shadowOffset, (int)(actualHeight)); - - // Draw blank page allowing for 1-pixel border AROUND the actual page - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxWHITE_BRUSH); - - /* - wxRegion update_region = canvas->GetUpdateRegion(); - wxRect r = update_region.GetBox(); - - printf( "x: %d y: %d w: %d h: %d.\n", (int)r.x, (int)r.y, (int)r.width, (int)r.height ); - */ - - dc.DrawRectangle((int)(x-2), (int)(y-1), (int)(actualWidth+3), (int)(actualHeight+2)); - - return TRUE; -} - -void wxPrintPreviewBase::SetZoom(int percent) -{ - if (m_currentZoom == percent) - return; - - m_currentZoom = percent; - if (m_previewBitmap) - { - delete m_previewBitmap; - m_previewBitmap = NULL; - } - - - if (m_previewCanvas) - { - RenderPage(m_currentPage); - m_previewCanvas->Clear(); - m_previewCanvas->Refresh(); - } -} - diff --git a/src/common/process.cpp b/src/common/process.cpp deleted file mode 100644 index 6440993d20..0000000000 --- a/src/common/process.cpp +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: process.cpp -// Purpose: Process termination classes -// Author: Guilhem Lavaux -// Modified by: Vadim Zeitlin to check error codes, added Detach() method -// Created: 24/06/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "process.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/defs.h" -#endif - -#include "wx/process.h" - -IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent) - -wxProcess::wxProcess(wxEvtHandler *parent, int id) -{ - if (parent) - SetNextHandler(parent); - - m_id = id; -} - -void wxProcess::OnTerminate(int pid, int status) -{ - wxProcessEvent event(m_id, pid, status); - - if ( !ProcessEvent(event) ) - delete this; - //else: the object which processed the event is responsible for deleting - // us! -} - -void wxProcess::Detach() -{ - SetNextHandler(NULL); -} diff --git a/src/common/protocol.cpp b/src/common/protocol.cpp deleted file mode 100644 index ac5020956f..0000000000 --- a/src/common/protocol.cpp +++ /dev/null @@ -1,144 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: protocol.cpp -// Purpose: Implement protocol base class -// Author: Guilhem Lavaux -// Modified by: -// Created: 07/07/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "protocol.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#include -#endif - -#include "wx/protocol/protocol.h" -#include "wx/url.h" -#include "wx/module.h" - -///////////////////////////////////////////////////////////////// -// wxProtoInfo -///////////////////////////////////////////////////////////////// - -/* - * -------------------------------------------------------------- - * --------- wxProtoInfo CONSTRUCTOR ---------------------------- - * -------------------------------------------------------------- - */ - -wxProtoInfo::wxProtoInfo(const wxChar *name, const wxChar *serv, - const bool need_host1, wxClassInfo *info) -{ - m_protoname = name; - m_servname = serv; - m_cinfo = info; - m_needhost = need_host1; - next = wxURL::g_protocols; - wxURL::g_protocols = this; -} - -///////////////////////////////////////////////////////////////// -// wxProtocol /////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////// - -IMPLEMENT_ABSTRACT_CLASS(wxProtocol, wxSocketClient) - -wxProtocol::wxProtocol() - : wxSocketClient() -{ -} - -bool wxProtocol::Reconnect() -{ - wxIPV4address addr; - - if (!GetPeer(addr)) { - Close(); - return FALSE; - } - if (!Close()) - return FALSE; - if (!Connect(addr)) - return FALSE; - return TRUE; -} - -wxProtocolError GetLine(wxSocketBase *sock, wxString& result) { -#define PROTO_BSIZE 2048 - size_t avail, size; - char tmp_buf[PROTO_BSIZE], tmp_str[PROTO_BSIZE]; - char *ret; - bool found; - - avail = sock->Read(tmp_buf, PROTO_BSIZE).LastCount(); - if (sock->LastError() != 0 || avail == 0) - return wxPROTO_NETERR; - - memcpy(tmp_str, tmp_buf, avail); - -// Not implemented on all systems -// ret = (char *)memccpy(tmp_str, tmp_buf, '\n', avail); - found = FALSE; - for (ret=tmp_str;ret < (tmp_str+avail); ret++) - if (*ret == '\n') { - found = TRUE; - break; - } - - if (!found) - return wxPROTO_PROTERR; - *ret = 0; - - result = tmp_str; - result = result.Left(result.Length()-1); - - size = ret-tmp_str+1; - sock->CreatePushbackBefore(&tmp_buf[size], avail-size); - return wxPROTO_NOERR; -#undef PROTO_BSIZE -} - -// ---------------------------------------------------------------------- -// Module -// ---------------------------------------------------------------------- - -class wxProtocolModule: public wxModule { - DECLARE_DYNAMIC_CLASS(wxProtocolModule) -public: - wxProtocolModule() {} - bool OnInit(); - void OnExit(); -}; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxProtocolModule, wxModule) -#endif - -bool wxProtocolModule::OnInit() -{ - wxURL::g_proxy = new wxHTTP(); - return TRUE; -} - -void wxProtocolModule::OnExit() -{ - delete wxURL::g_proxy; - wxURL::g_proxy = NULL; -} - -#endif - // wxUSE_SOCKETS diff --git a/src/common/resourc2.cpp b/src/common/resourc2.cpp deleted file mode 100644 index 42deac36a0..0000000000 --- a/src/common/resourc2.cpp +++ /dev/null @@ -1,1577 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: resourc2.cpp -// Purpose: Resource system (2nd file). Only required for 16-bit BC++. -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "resource.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_WX_RESOURCES - -#ifdef __VISUALC__ - #pragma warning(disable:4706) // assignment within conditional expression -#endif // VC++ - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/hash.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" -#include "wx/types.h" -#include "wx/menu.h" -#include "wx/stattext.h" -#include "wx/button.h" -#include "wx/bmpbuttn.h" -#include "wx/radiobox.h" -#include "wx/listbox.h" -#include "wx/choice.h" -#include "wx/checkbox.h" -#include "wx/settings.h" -#include "wx/slider.h" -#include "wx/statbox.h" -#if wxUSE_GAUGE -#include "wx/gauge.h" -#endif -#include "wx/textctrl.h" -#include "wx/msgdlg.h" -#include "wx/intl.h" -#endif - -#if wxUSE_SCROLLBAR -#include "wx/scrolbar.h" -#endif - -#if wxUSE_COMBOBOX -#include "wx/combobox.h" -#endif - -#include "wx/validate.h" - -#include "wx/log.h" - -#include -#include -#include -#include - -#include "wx/resource.h" -#include "wx/string.h" -#include "wx/wxexpr.h" - -#include "wx/settings.h" - -#if ((defined(__BORLANDC__) || defined(__SC__)) && defined(__WIN16__)) - -// Forward (private) declarations -bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db); -wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel = FALSE); -wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretMenu(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretMenuBar(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretString(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretBitmap(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretIcon(wxResourceTable& table, wxExpr *expr); -// Interpret list expression -wxFont wxResourceInterpretFontSpec(wxExpr *expr); - -bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResourceTable *table = (wxResourceTable *) NULL); -bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table = (wxResourceTable *) NULL); - -extern wxResourceTable *wxDefaultResourceTable; - -extern char *wxResourceBuffer; -extern long wxResourceBufferSize; -extern long wxResourceBufferCount; -extern int wxResourceStringPtr; - -/* - * (Re)allocate buffer for reading in from resource file - */ - -bool wxReallocateResourceBuffer() -{ - if (!wxResourceBuffer) - { - wxResourceBufferSize = 1000; - wxResourceBuffer = new char[wxResourceBufferSize]; - return TRUE; - } - if (wxResourceBuffer) - { - long newSize = wxResourceBufferSize + 1000; - char *tmp = new char[(int)newSize]; - strncpy(tmp, wxResourceBuffer, (int)wxResourceBufferCount); - delete[] wxResourceBuffer; - wxResourceBuffer = tmp; - wxResourceBufferSize = newSize; - } - return TRUE; -} - -static bool wxEatWhiteSpace(FILE *fd) -{ - int ch = getc(fd); - if ((ch != ' ') && (ch != '/') && (ch != ' ') && (ch != 10) && (ch != 13) && (ch != 9)) - { - ungetc(ch, fd); - return TRUE; - } - - // Eat whitespace - while (ch == ' ' || ch == 10 || ch == 13 || ch == 9) - ch = getc(fd); - // Check for comment - if (ch == '/') - { - ch = getc(fd); - if (ch == '*') - { - bool finished = FALSE; - while (!finished) - { - ch = getc(fd); - if (ch == EOF) - return FALSE; - if (ch == '*') - { - int newCh = getc(fd); - if (newCh == '/') - finished = TRUE; - else - { - ungetc(newCh, fd); - } - } - } - } - else // False alarm - return FALSE; - } - else - ungetc(ch, fd); - return wxEatWhiteSpace(fd); -} - -bool wxGetResourceToken(FILE *fd) -{ - if (!wxResourceBuffer) - wxReallocateResourceBuffer(); - wxResourceBuffer[0] = 0; - wxEatWhiteSpace(fd); - - int ch = getc(fd); - if (ch == '"') - { - // Get string - wxResourceBufferCount = 0; - ch = getc(fd); - while (ch != '"') - { - int actualCh = ch; - if (ch == EOF) - { - wxResourceBuffer[wxResourceBufferCount] = 0; - return FALSE; - } - // Escaped characters - else if (ch == '\\') - { - int newCh = getc(fd); - if (newCh == '"') - actualCh = '"'; - else if (newCh == 10) - actualCh = 10; - else - { - ungetc(newCh, fd); - } - } - - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)actualCh; - wxResourceBufferCount ++; - ch = getc(fd); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - } - else - { - wxResourceBufferCount = 0; - // Any other token - while (ch != ' ' && ch != EOF && ch != ' ' && ch != 13 && ch != 9 && ch != 10) - { - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)ch; - wxResourceBufferCount ++; - - ch = getc(fd); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - if (ch == EOF) - return FALSE; - } - return TRUE; -} - -/* - * Files are in form: - static char *name = "...."; - with possible comments. - */ - -bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - // static or #define - if (!wxGetResourceToken(fd)) - { - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "#define") == 0) - { - wxGetResourceToken(fd); - char *name = copystring(wxResourceBuffer); - wxGetResourceToken(fd); - char *value = copystring(wxResourceBuffer); - if (isalpha(value[0])) - { - int val = (int)atol(value); - wxResourceAddIdentifier(name, val, table); - } - else - { - wxLogWarning(_("#define %s must be an integer."), name); - delete[] name; - delete[] value; - return FALSE; - } - delete[] name; - delete[] value; - - return TRUE; - } - else if (strcmp(wxResourceBuffer, "#include") == 0) - { - wxGetResourceToken(fd); - char *name = copystring(wxResourceBuffer); - char *actualName = name; - if (name[0] == '"') - actualName = name + 1; - int len = strlen(name); - if ((len > 0) && (name[len-1] == '"')) - name[len-1] = 0; - if (!wxResourceParseIncludeFile(actualName, table)) - { - wxLogWarning(_("Could not find resource include file %s."), actualName); - } - delete[] name; - return TRUE; - } - else if (strcmp(wxResourceBuffer, "static") != 0) - { - char buf[300]; - strcpy(buf, _("Found ")); - strncat(buf, wxResourceBuffer, 30); - strcat(buf, _(", expected static, #include or #define\nwhilst parsing resource.")); - wxLogWarning(buf); - return FALSE; - } - - // char - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "char") != 0) - { - wxLogWarning(_("Expected 'char' whilst parsing resource.")); - return FALSE; - } - - // *name - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (wxResourceBuffer[0] != '*') - { - wxLogWarning(_("Expected '*' whilst parsing resource.")); - return FALSE; - } - char nameBuf[100]; - strncpy(nameBuf, wxResourceBuffer+1, 99); - - // = - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "=") != 0) - { - wxLogWarning(_("Expected '=' whilst parsing resource.")); - return FALSE; - } - - // String - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - else - { - if (!db.ReadPrologFromString(wxResourceBuffer)) - { - wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf); - return FALSE; - } - } - // Semicolon - if (!wxGetResourceToken(fd)) - { - *eof = TRUE; - } - return TRUE; -} - -/* - * Parses string window style into integer window style - */ - -/* - * Style flag parsing, e.g. - * "wxSYSTEM_MENU | wxBORDER" -> integer - */ - -char* wxResourceParseWord(char*s, int *i) -{ - if (!s) - return (char*) NULL; - - static char buf[150]; - int len = strlen(s); - int j = 0; - int ii = *i; - while ((ii < len) && (isalpha(s[ii]) || (s[ii] == '_'))) - { - buf[j] = s[ii]; - j ++; - ii ++; - } - buf[j] = 0; - - // Eat whitespace and conjunction characters - while ((ii < len) && - ((s[ii] == ' ') || (s[ii] == '|') || (s[ii] == ','))) - { - ii ++; - } - *i = ii; - if (j == 0) - return (char*) NULL; - else - return buf; -} - -struct wxResourceBitListStruct -{ - char *word; - long bits; -}; - -static wxResourceBitListStruct wxResourceBitListTable[] = -{ - /* wxListBox */ - { "wxSINGLE", wxLB_SINGLE }, - { "wxMULTIPLE", wxLB_MULTIPLE }, - { "wxEXTENDED", wxLB_EXTENDED }, - { "wxLB_SINGLE", wxLB_SINGLE }, - { "wxLB_MULTIPLE", wxLB_MULTIPLE }, - { "wxLB_EXTENDED", wxLB_EXTENDED }, - { "wxLB_NEEDED_SB", wxLB_NEEDED_SB }, - { "wxLB_ALWAYS_SB", wxLB_ALWAYS_SB }, - { "wxLB_SORT", wxLB_SORT }, - { "wxLB_OWNERDRAW", wxLB_OWNERDRAW }, - { "wxLB_HSCROLL", wxLB_HSCROLL }, - - /* wxComboxBox */ - { "wxCB_SIMPLE", wxCB_SIMPLE }, - { "wxCB_DROPDOWN", wxCB_DROPDOWN }, - { "wxCB_READONLY", wxCB_READONLY }, - { "wxCB_SORT", wxCB_SORT }, - - /* wxGauge */ - { "wxGA_PROGRESSBAR", wxGA_PROGRESSBAR }, - { "wxGA_HORIZONTAL", wxGA_HORIZONTAL }, - { "wxGA_VERTICAL", wxGA_VERTICAL }, - - /* wxTextCtrl */ - { "wxPASSWORD", wxPASSWORD}, - { "wxPROCESS_ENTER", wxPROCESS_ENTER}, - { "wxTE_PASSWORD", wxTE_PASSWORD}, - { "wxTE_READONLY", wxTE_READONLY}, - { "wxTE_PROCESS_ENTER", wxTE_PROCESS_ENTER}, - { "wxTE_MULTILINE", wxTE_MULTILINE}, - - /* wxRadioBox/wxRadioButton */ - { "wxRB_GROUP", wxRB_GROUP }, - { "wxRA_SPECIFY_COLS", wxRA_SPECIFY_COLS }, - { "wxRA_SPECIFY_ROWS", wxRA_SPECIFY_ROWS }, - { "wxRA_HORIZONTAL", wxRA_HORIZONTAL }, - { "wxRA_VERTICAL", wxRA_VERTICAL }, - - /* wxSlider */ - { "wxSL_HORIZONTAL", wxSL_HORIZONTAL }, - { "wxSL_VERTICAL", wxSL_VERTICAL }, - { "wxSL_AUTOTICKS", wxSL_AUTOTICKS }, - { "wxSL_LABELS", wxSL_LABELS }, - { "wxSL_LEFT", wxSL_LEFT }, - { "wxSL_TOP", wxSL_TOP }, - { "wxSL_RIGHT", wxSL_RIGHT }, - { "wxSL_BOTTOM", wxSL_BOTTOM }, - { "wxSL_BOTH", wxSL_BOTH }, - { "wxSL_SELRANGE", wxSL_SELRANGE }, - - /* wxScrollBar */ - { "wxSB_HORIZONTAL", wxSB_HORIZONTAL }, - { "wxSB_VERTICAL", wxSB_VERTICAL }, - - /* wxButton */ - { "wxBU_AUTODRAW", wxBU_AUTODRAW }, - { "wxBU_NOAUTODRAW", wxBU_NOAUTODRAW }, - - /* wxTreeCtrl */ - { "wxTR_HAS_BUTTONS", wxTR_HAS_BUTTONS }, - { "wxTR_EDIT_LABELS", wxTR_EDIT_LABELS }, - { "wxTR_LINES_AT_ROOT", wxTR_LINES_AT_ROOT }, - - /* wxListCtrl */ - { "wxLC_ICON", wxLC_ICON }, - { "wxLC_SMALL_ICON", wxLC_SMALL_ICON }, - { "wxLC_LIST", wxLC_LIST }, - { "wxLC_REPORT", wxLC_REPORT }, - { "wxLC_ALIGN_TOP", wxLC_ALIGN_TOP }, - { "wxLC_ALIGN_LEFT", wxLC_ALIGN_LEFT }, - { "wxLC_AUTOARRANGE", wxLC_AUTOARRANGE }, - { "wxLC_USER_TEXT", wxLC_USER_TEXT }, - { "wxLC_EDIT_LABELS", wxLC_EDIT_LABELS }, - { "wxLC_NO_HEADER", wxLC_NO_HEADER }, - { "wxLC_NO_SORT_HEADER", wxLC_NO_SORT_HEADER }, - { "wxLC_SINGLE_SEL", wxLC_SINGLE_SEL }, - { "wxLC_SORT_ASCENDING", wxLC_SORT_ASCENDING }, - { "wxLC_SORT_DESCENDING", wxLC_SORT_DESCENDING }, - - /* wxSpinButton */ - { "wxSP_VERTICAL", wxSP_VERTICAL}, - { "wxSP_HORIZONTAL", wxSP_HORIZONTAL}, - { "wxSP_ARROW_KEYS", wxSP_ARROW_KEYS}, - { "wxSP_WRAP", wxSP_WRAP}, - - /* wxSplitterWnd */ - { "wxSP_NOBORDER", wxSP_NOBORDER}, - { "wxSP_3D", wxSP_3D}, - { "wxSP_BORDER", wxSP_BORDER}, - - /* wxTabCtrl */ - { "wxTC_MULTILINE", wxTC_MULTILINE}, - { "wxTC_RIGHTJUSTIFY", wxTC_RIGHTJUSTIFY}, - { "wxTC_FIXEDWIDTH", wxTC_FIXEDWIDTH}, - { "wxTC_OWNERDRAW", wxTC_OWNERDRAW}, - - /* wxStatusBar95 */ - { "wxST_SIZEGRIP", wxST_SIZEGRIP}, - - /* wxControl */ - { "wxFIXED_LENGTH", wxFIXED_LENGTH}, - { "wxALIGN_LEFT", wxALIGN_LEFT}, - { "wxALIGN_CENTER", wxALIGN_CENTER}, - { "wxALIGN_CENTRE", wxALIGN_CENTRE}, - { "wxALIGN_RIGHT", wxALIGN_RIGHT}, - { "wxCOLOURED", wxCOLOURED}, - - /* wxToolBar */ - { "wxTB_3DBUTTONS", wxTB_3DBUTTONS}, - { "wxTB_HORIZONTAL", wxTB_HORIZONTAL}, - { "wxTB_VERTICAL", wxTB_VERTICAL}, - { "wxTB_FLAT", wxTB_FLAT}, - - /* Generic */ - { "wxVSCROLL", wxVSCROLL }, - { "wxHSCROLL", wxHSCROLL }, - { "wxCAPTION", wxCAPTION }, - { "wxSTAY_ON_TOP", wxSTAY_ON_TOP}, - { "wxICONIZE", wxICONIZE}, - { "wxMINIMIZE", wxICONIZE}, - { "wxMAXIMIZE", wxMAXIMIZE}, - { "wxSDI", 0}, - { "wxMDI_PARENT", 0}, - { "wxMDI_CHILD", 0}, - { "wxTHICK_FRAME", wxTHICK_FRAME}, - { "wxRESIZE_BORDER", wxRESIZE_BORDER}, - { "wxSYSTEM_MENU", wxSYSTEM_MENU}, - { "wxMINIMIZE_BOX", wxMINIMIZE_BOX}, - { "wxMAXIMIZE_BOX", wxMAXIMIZE_BOX}, - { "wxRESIZE_BOX", wxRESIZE_BOX}, - { "wxDEFAULT_FRAME_STYLE", wxDEFAULT_FRAME_STYLE}, - { "wxDEFAULT_FRAME", wxDEFAULT_FRAME_STYLE}, - { "wxDEFAULT_DIALOG_STYLE", wxDEFAULT_DIALOG_STYLE}, - { "wxBORDER", wxBORDER}, - { "wxRETAINED", wxRETAINED}, - { "wxNATIVE_IMPL", 0}, - { "wxEXTENDED_IMPL", 0}, - { "wxBACKINGSTORE", wxBACKINGSTORE}, -// { "wxFLAT", wxFLAT}, -// { "wxMOTIF_RESIZE", wxMOTIF_RESIZE}, - { "wxFIXED_LENGTH", 0}, - { "wxDOUBLE_BORDER", wxDOUBLE_BORDER}, - { "wxSUNKEN_BORDER", wxSUNKEN_BORDER}, - { "wxRAISED_BORDER", wxRAISED_BORDER}, - { "wxSIMPLE_BORDER", wxSIMPLE_BORDER}, - { "wxSTATIC_BORDER", wxSTATIC_BORDER}, - { "wxTRANSPARENT_WINDOW", wxTRANSPARENT_WINDOW}, - { "wxNO_BORDER", wxNO_BORDER}, - { "wxCLIP_CHILDREN", wxCLIP_CHILDREN}, - - { "wxTINY_CAPTION_HORIZ", wxTINY_CAPTION_HORIZ}, - { "wxTINY_CAPTION_VERT", wxTINY_CAPTION_VERT}, - - // Text font families - { "wxDEFAULT", wxDEFAULT}, - { "wxDECORATIVE", wxDECORATIVE}, - { "wxROMAN", wxROMAN}, - { "wxSCRIPT", wxSCRIPT}, - { "wxSWISS", wxSWISS}, - { "wxMODERN", wxMODERN}, - { "wxTELETYPE", wxTELETYPE}, - { "wxVARIABLE", wxVARIABLE}, - { "wxFIXED", wxFIXED}, - { "wxNORMAL", wxNORMAL}, - { "wxLIGHT", wxLIGHT}, - { "wxBOLD", wxBOLD}, - { "wxITALIC", wxITALIC}, - { "wxSLANT", wxSLANT}, - { "wxSOLID", wxSOLID}, - { "wxDOT", wxDOT}, - { "wxLONG_DASH", wxLONG_DASH}, - { "wxSHORT_DASH", wxSHORT_DASH}, - { "wxDOT_DASH", wxDOT_DASH}, - { "wxUSER_DASH", wxUSER_DASH}, - { "wxTRANSPARENT", wxTRANSPARENT}, - { "wxSTIPPLE", wxSTIPPLE}, - { "wxBDIAGONAL_HATCH", wxBDIAGONAL_HATCH}, - { "wxCROSSDIAG_HATCH", wxCROSSDIAG_HATCH}, - { "wxFDIAGONAL_HATCH", wxFDIAGONAL_HATCH}, - { "wxCROSS_HATCH", wxCROSS_HATCH}, - { "wxHORIZONTAL_HATCH", wxHORIZONTAL_HATCH}, - { "wxVERTICAL_HATCH", wxVERTICAL_HATCH}, - { "wxJOIN_BEVEL", wxJOIN_BEVEL}, - { "wxJOIN_MITER", wxJOIN_MITER}, - { "wxJOIN_ROUND", wxJOIN_ROUND}, - { "wxCAP_ROUND", wxCAP_ROUND}, - { "wxCAP_PROJECTING", wxCAP_PROJECTING}, - { "wxCAP_BUTT", wxCAP_BUTT}, - - // Logical ops - { "wxCLEAR", wxCLEAR}, - { "wxXOR", wxXOR}, - { "wxINVERT", wxINVERT}, - { "wxOR_REVERSE", wxOR_REVERSE}, - { "wxAND_REVERSE", wxAND_REVERSE}, - { "wxCOPY", wxCOPY}, - { "wxAND", wxAND}, - { "wxAND_INVERT", wxAND_INVERT}, - { "wxNO_OP", wxNO_OP}, - { "wxNOR", wxNOR}, - { "wxEQUIV", wxEQUIV}, - { "wxSRC_INVERT", wxSRC_INVERT}, - { "wxOR_INVERT", wxOR_INVERT}, - { "wxNAND", wxNAND}, - { "wxOR", wxOR}, - { "wxSET", wxSET}, - - { "wxFLOOD_SURFACE", wxFLOOD_SURFACE}, - { "wxFLOOD_BORDER", wxFLOOD_BORDER}, - { "wxODDEVEN_RULE", wxODDEVEN_RULE}, - { "wxWINDING_RULE", wxWINDING_RULE}, - { "wxHORIZONTAL", wxHORIZONTAL}, - { "wxVERTICAL", wxVERTICAL}, - { "wxBOTH", wxBOTH}, - { "wxCENTER_FRAME", wxCENTER_FRAME}, - { "wxOK", wxOK}, - { "wxYES_NO", wxYES_NO}, - { "wxCANCEL", wxCANCEL}, - { "wxYES", wxYES}, - { "wxNO", wxNO}, - { "wxICON_EXCLAMATION", wxICON_EXCLAMATION}, - { "wxICON_HAND", wxICON_HAND}, - { "wxICON_QUESTION", wxICON_QUESTION}, - { "wxICON_INFORMATION", wxICON_INFORMATION}, - { "wxICON_STOP", wxICON_STOP}, - { "wxICON_ASTERISK", wxICON_ASTERISK}, - { "wxICON_MASK", wxICON_MASK}, - { "wxCENTRE", wxCENTRE}, - { "wxCENTER", wxCENTRE}, - { "wxUSER_COLOURS", wxUSER_COLOURS}, - { "wxVERTICAL_LABEL", 0}, - { "wxHORIZONTAL_LABEL", 0}, - - // Bitmap types (not strictly styles) - { "wxBITMAP_TYPE_XPM", wxBITMAP_TYPE_XPM}, - { "wxBITMAP_TYPE_XBM", wxBITMAP_TYPE_XBM}, - { "wxBITMAP_TYPE_BMP", wxBITMAP_TYPE_BMP}, - { "wxBITMAP_TYPE_RESOURCE", wxBITMAP_TYPE_BMP_RESOURCE}, - { "wxBITMAP_TYPE_BMP_RESOURCE", wxBITMAP_TYPE_BMP_RESOURCE}, - { "wxBITMAP_TYPE_GIF", wxBITMAP_TYPE_GIF}, - { "wxBITMAP_TYPE_TIF", wxBITMAP_TYPE_TIF}, - { "wxBITMAP_TYPE_ICO", wxBITMAP_TYPE_ICO}, - { "wxBITMAP_TYPE_ICO_RESOURCE", wxBITMAP_TYPE_ICO_RESOURCE}, - { "wxBITMAP_TYPE_CUR", wxBITMAP_TYPE_CUR}, - { "wxBITMAP_TYPE_CUR_RESOURCE", wxBITMAP_TYPE_CUR_RESOURCE}, - { "wxBITMAP_TYPE_XBM_DATA", wxBITMAP_TYPE_XBM_DATA}, - { "wxBITMAP_TYPE_XPM_DATA", wxBITMAP_TYPE_XPM_DATA}, - { "wxBITMAP_TYPE_ANY", wxBITMAP_TYPE_ANY} -}; - -static int wxResourceBitListCount = (sizeof(wxResourceBitListTable)/sizeof(wxResourceBitListStruct)); - -long wxParseWindowStyle(const wxString& bitListString) -{ - int i = 0; - char *word; - long bitList = 0; - while ((word = wxResourceParseWord((char*) (const char*) bitListString, &i))) - { - bool found = FALSE; - int j; - for (j = 0; j < wxResourceBitListCount; j++) - if (strcmp(wxResourceBitListTable[j].word, word) == 0) - { - bitList |= wxResourceBitListTable[j].bits; - found = TRUE; - break; - } - if (!found) - { - wxLogWarning(_("Unrecognized style %s whilst parsing resource."), word); - return 0; - } - } - return bitList; -} - -/* - * Load a bitmap from a wxWindows resource, choosing an optimum - * depth and appropriate type. - */ - -wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *item = table->FindResource(resource); - if (item) - { - if ((item->GetType() == "") || (item->GetType() != "wxBitmap")) - { - wxLogWarning(_("%s not a bitmap resource specification."), (const char*) resource); - return wxNullBitmap; - } - int thisDepth = wxDisplayDepth(); - long thisNoColours = (long)pow(2.0, (double)thisDepth); - - wxItemResource *optResource = (wxItemResource *) NULL; - - // Try to find optimum bitmap for this platform/colour depth - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - int platform = (int)child->GetValue2(); - int noColours = (int)child->GetValue3(); -/* - char *name = child->GetName(); - int bitmapType = (int)child->GetValue1(); - int xRes = child->GetWidth(); - int yRes = child->GetHeight(); -*/ - - switch (platform) - { - case RESOURCE_PLATFORM_ANY: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours. - // If noColours is zero (unspecified), then assume this - // is the right one. - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#ifdef __WXMSW__ - case RESOURCE_PLATFORM_WINDOWS: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours > 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef __WXGTK__ - case RESOURCE_PLATFORM_X: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef wx_max - case RESOURCE_PLATFORM_MAC: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif - default: - break; - } - node = node->Next(); - } - // If no matching resource, fail. - if (!optResource) - return wxNullBitmap; - - wxString name = optResource->GetName(); - int bitmapType = (int)optResource->GetValue1(); - switch (bitmapType) - { - case wxBITMAP_TYPE_XBM_DATA: - { -#ifdef __WXGTK__ - wxItemResource *item = table->FindResource(name); - if (!item) - { - wxLogWarning(_("Failed to find XBM resource %s.\n" - "Forgot to use wxResourceLoadBitmapData?"), (const char*) name); - return wxNullBitmap; - } - return wxBitmap(item->GetValue1(), (int)item->GetValue2(), (int)item->GetValue3()) ; -#else - wxLogWarning(_("No XBM facility available!")); -#endif - break; - } - case wxBITMAP_TYPE_XPM_DATA: - { -#if (defined(__WXGTK__)) || (defined(__WXMSW__) && wxUSE_XPM_IN_MSW) - wxItemResource *item = table->FindResource(name); - if (!item) - { - wxLogWarning(_("Failed to find XPM resource %s.\n" - "Forgot to use wxResourceLoadBitmapData?"), (const char*) name); - return wxNullBitmap; - } - return wxBitmap(item->GetValue1()); -#else - wxLogWarning(_("No XPM facility available!")); -#endif - break; - } - default: - { - return wxBitmap(name, bitmapType); - break; - } - } - return wxNullBitmap; - } - else - { - wxLogWarning(_("Bitmap resource specification %s not found."), (const char*) resource); - return wxNullBitmap; - } -} - -/* - * Load an icon from a wxWindows resource, choosing an optimum - * depth and appropriate type. - */ - -wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *item = table->FindResource(resource); - if (item) - { - if ((item->GetType() == "") || (item->GetType() != "wxIcon")) - { - wxLogWarning(_("%s not an icon resource specification."), (const char*) resource); - return wxNullIcon; - } - int thisDepth = wxDisplayDepth(); - long thisNoColours = (long)pow(2.0, (double)thisDepth); - - wxItemResource *optResource = (wxItemResource *) NULL; - - // Try to find optimum icon for this platform/colour depth - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - int platform = (int)child->GetValue2(); - int noColours = (int)child->GetValue3(); -/* - char *name = child->GetName(); - int bitmapType = (int)child->GetValue1(); - int xRes = child->GetWidth(); - int yRes = child->GetHeight(); -*/ - - switch (platform) - { - case RESOURCE_PLATFORM_ANY: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours. - // If noColours is zero (unspecified), then assume this - // is the right one. - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#ifdef __WXMSW__ - case RESOURCE_PLATFORM_WINDOWS: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours > 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef __WXGTK__ - case RESOURCE_PLATFORM_X: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef wx_max - case RESOURCE_PLATFORM_MAC: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif - default: - break; - } - node = node->Next(); - } - // If no matching resource, fail. - if (!optResource) - return wxNullIcon; - - wxString name = optResource->GetName(); - int bitmapType = (int)optResource->GetValue1(); - switch (bitmapType) - { - case wxBITMAP_TYPE_XBM_DATA: - { -#ifdef __WXGTK__ - wxItemResource *item = table->FindResource(name); - if (!item) - { - wxLogWarning(_("Failed to find XBM resource %s.\n" - "Forgot to use wxResourceLoadIconData?"), (const char*) name); - return wxNullIcon; - } - return wxIcon((const char **)item->GetValue1(), (int)item->GetValue2(), (int)item->GetValue3()); -#else - wxLogWarning(_("No XBM facility available!")); -#endif - break; - } - case wxBITMAP_TYPE_XPM_DATA: - { - // *** XPM ICON NOT YET IMPLEMENTED IN WXWINDOWS *** -/* -#if (defined(__WXGTK__)) || (defined(__WXMSW__) && wxUSE_XPM_IN_MSW) - wxItemResource *item = table->FindResource(name); - if (!item) - { - char buf[400]; - sprintf(buf, _("Failed to find XPM resource %s.\nForgot to use wxResourceLoadIconData?"), name); - wxLogWarning(buf); - return NULL; - } - return wxIcon((char **)item->GetValue1()); -#else - wxLogWarning(_("No XPM facility available!")); -#endif -*/ - wxLogWarning(_("No XPM icon facility available!")); - break; - } - default: - { -#ifdef __WXGTK__ - wxLogWarning(_("Icon resource specification %s not found."), (const char*) resource); -#else - return wxIcon(name, bitmapType); -#endif - break; - } - } - return wxNullIcon; - } - else - { - wxLogWarning(_("Icon resource specification %s not found."), (const char*) resource); - return wxNullIcon; - } -} - -wxMenu *wxResourceCreateMenu(wxItemResource *item) -{ - wxMenu *menu = new wxMenu; - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - if ((child->GetType() != "") && (child->GetType() == "wxMenuSeparator")) - menu->AppendSeparator(); - else if (child->GetChildren().Number() > 0) - { - wxMenu *subMenu = wxResourceCreateMenu(child); - if (subMenu) - menu->Append((int)child->GetValue1(), child->GetTitle(), subMenu, child->GetValue4()); - } - else - { - menu->Append((int)child->GetValue1(), child->GetTitle(), child->GetValue4(), (child->GetValue2() != 0)); - } - node = node->Next(); - } - return menu; -} - -wxMenuBar *wxResourceCreateMenuBar(const wxString& resource, wxResourceTable *table, wxMenuBar *menuBar) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *menuResource = table->FindResource(resource); - if (menuResource && (menuResource->GetType() != "") && (menuResource->GetType() == "wxMenu")) - { - if (!menuBar) - menuBar = new wxMenuBar; - wxNode *node = menuResource->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - wxMenu *menu = wxResourceCreateMenu(child); - if (menu) - menuBar->Append(menu, child->GetTitle()); - node = node->Next(); - } - return menuBar; - } - return (wxMenuBar *) NULL; -} - -wxMenu *wxResourceCreateMenu(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *menuResource = table->FindResource(resource); - if (menuResource && (menuResource->GetType() != "") && (menuResource->GetType() == "wxMenu")) -// if (menuResource && (menuResource->GetType() == wxTYPE_MENU)) - return wxResourceCreateMenu(menuResource); - return (wxMenu *) NULL; -} - -// Global equivalents (so don't have to refer to default table explicitly) -bool wxResourceParseData(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->ParseResourceData(resource); -} - -bool wxResourceParseFile(const wxString& filename, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->ParseResourceFile(filename); -} - -// Register XBM/XPM data -bool wxResourceRegisterBitmapData(const wxString& name, char bits[], int width, int height, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->RegisterResourceBitmapData(name, bits, width, height); -} - -bool wxResourceRegisterBitmapData(const wxString& name, char **data, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->RegisterResourceBitmapData(name, data); -} - -void wxResourceClear(wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - table->ClearTable(); -} - -/* - * Identifiers - */ - -bool wxResourceAddIdentifier(const wxString& name, int value, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - table->identifiers.Put(name, (wxObject *)value); - return TRUE; -} - -int wxResourceGetIdentifier(const wxString& name, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return (int)table->identifiers.Get(name); -} - -/* - * Parse #include file for #defines (only) - */ - -bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - FILE *fd = fopen(f, "r"); - if (!fd) - { - return FALSE; - } - while (wxGetResourceToken(fd)) - { - if (strcmp(wxResourceBuffer, "#define") == 0) - { - wxGetResourceToken(fd); - char *name = copystring(wxResourceBuffer); - wxGetResourceToken(fd); - char *value = copystring(wxResourceBuffer); - if (isdigit(value[0])) - { - int val = (int)atol(value); - wxResourceAddIdentifier(name, val, table); - } - delete[] name; - delete[] value; - } - } - fclose(fd); - return TRUE; -} - -/* - * Reading strings as if they were .wxr files - */ - -static int getc_string(char *s) -{ - int ch = s[wxResourceStringPtr]; - if (ch == 0) - return EOF; - else - { - wxResourceStringPtr ++; - return ch; - } -} - -static int ungetc_string() -{ - wxResourceStringPtr --; - return 0; -} - -bool wxEatWhiteSpaceString(char *s) -{ - int ch = getc_string(s); - if (ch == EOF) - return TRUE; - - if ((ch != ' ') && (ch != '/') && (ch != ' ') && (ch != 10) && (ch != 13) && (ch != 9)) - { - ungetc_string(); - return TRUE; - } - - // Eat whitespace - while (ch == ' ' || ch == 10 || ch == 13 || ch == 9) - ch = getc_string(s); - // Check for comment - if (ch == '/') - { - ch = getc_string(s); - if (ch == '*') - { - bool finished = FALSE; - while (!finished) - { - ch = getc_string(s); - if (ch == EOF) - return FALSE; - if (ch == '*') - { - int newCh = getc_string(s); - if (newCh == '/') - finished = TRUE; - else - { - ungetc_string(); - } - } - } - } - else // False alarm - return FALSE; - } - else if (ch != EOF) - ungetc_string(); - return wxEatWhiteSpaceString(s); -} - -bool wxGetResourceTokenString(char *s) -{ - if (!wxResourceBuffer) - wxReallocateResourceBuffer(); - wxResourceBuffer[0] = 0; - wxEatWhiteSpaceString(s); - - int ch = getc_string(s); - if (ch == '"') - { - // Get string - wxResourceBufferCount = 0; - ch = getc_string(s); - while (ch != '"') - { - int actualCh = ch; - if (ch == EOF) - { - wxResourceBuffer[wxResourceBufferCount] = 0; - return FALSE; - } - // Escaped characters - else if (ch == '\\') - { - int newCh = getc_string(s); - if (newCh == '"') - actualCh = '"'; - else if (newCh == 10) - actualCh = 10; - else - { - ungetc_string(); - } - } - - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)actualCh; - wxResourceBufferCount ++; - ch = getc_string(s); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - } - else - { - wxResourceBufferCount = 0; - // Any other token - while (ch != ' ' && ch != EOF && ch != ' ' && ch != 13 && ch != 9 && ch != 10) - { - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)ch; - wxResourceBufferCount ++; - - ch = getc_string(s); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - if (ch == EOF) - return FALSE; - } - return TRUE; -} - -/* - * Files are in form: - static char *name = "...."; - with possible comments. - */ - -bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - // static or #define - if (!wxGetResourceTokenString(s)) - { - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "#define") == 0) - { - wxGetResourceTokenString(s); - char *name = copystring(wxResourceBuffer); - wxGetResourceTokenString(s); - char *value = copystring(wxResourceBuffer); - if (isalpha(value[0])) - { - int val = (int)atol(value); - wxResourceAddIdentifier(name, val, table); - } - else - { - wxLogWarning(_("#define %s must be an integer."), name); - delete[] name; - delete[] value; - return FALSE; - } - delete[] name; - delete[] value; - - return TRUE; - } -/* - else if (strcmp(wxResourceBuffer, "#include") == 0) - { - wxGetResourceTokenString(s); - char *name = copystring(wxResourceBuffer); - char *actualName = name; - if (name[0] == '"') - actualName = name + 1; - int len = strlen(name); - if ((len > 0) && (name[len-1] == '"')) - name[len-1] = 0; - if (!wxResourceParseIncludeFile(actualName, table)) - { - char buf[400]; - sprintf(buf, _("Could not find resource include file %s."), actualName); - wxLogWarning(buf); - } - delete[] name; - return TRUE; - } -*/ - else if (strcmp(wxResourceBuffer, "static") != 0) - { - char buf[300]; - strcpy(buf, _("Found ")); - strncat(buf, wxResourceBuffer, 30); - strcat(buf, _(", expected static, #include or #define\nwhilst parsing resource.")); - wxLogWarning(buf); - return FALSE; - } - - // char - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "char") != 0) - { - wxLogWarning(_("Expected 'char' whilst parsing resource.")); - return FALSE; - } - - // *name - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (wxResourceBuffer[0] != '*') - { - wxLogWarning(_("Expected '*' whilst parsing resource.")); - return FALSE; - } - char nameBuf[100]; - strncpy(nameBuf, wxResourceBuffer+1, 99); - - // = - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "=") != 0) - { - wxLogWarning(_("Expected '=' whilst parsing resource.")); - return FALSE; - } - - // String - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - else - { - if (!db.ReadPrologFromString(wxResourceBuffer)) - { - wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf); - return FALSE; - } - } - // Semicolon - if (!wxGetResourceTokenString(s)) - { - *eof = TRUE; - } - return TRUE; -} - -bool wxResourceParseString(char *s, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - if (!s) - return FALSE; - - // Turn backslashes into spaces - if (s) - { - int len = strlen(s); - int i; - for (i = 0; i < len; i++) - if (s[i] == 92 && s[i+1] == 13) - { - s[i] = ' '; - s[i+1] = ' '; - } - } - - wxExprDatabase db; - wxResourceStringPtr = 0; - - bool eof = FALSE; - while (wxResourceReadOneResourceString(s, db, &eof, table) && !eof) - { - // Loop - } - return wxResourceInterpretResources(*table, db); -} - -/* - * resource loading facility - */ - -bool wxWindow::LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *resource = table->FindResource((const char *)resourceName); -// if (!resource || (resource->GetType() != wxTYPE_DIALOG_BOX)) - if (!resource || (resource->GetType() == "") || - ! ((strcmp(resource->GetType(), "wxDialog") == 0) || (strcmp(resource->GetType(), "wxPanel") == 0))) - return FALSE; - - wxString title(resource->GetTitle()); - long theWindowStyle = resource->GetStyle(); - bool isModal = (resource->GetValue1() != 0); - int x = resource->GetX(); - int y = resource->GetY(); - int width = resource->GetWidth(); - int height = resource->GetHeight(); - wxString name = resource->GetName(); - - if (IsKindOf(CLASSINFO(wxDialog))) - { - wxDialog *dialogBox = (wxDialog *)this; - long modalStyle = isModal ? wxDIALOG_MODAL : 0; - if (!dialogBox->Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), theWindowStyle|modalStyle, name)) - return FALSE; - - // Only reset the client size if we know we're not going to do it again below. - if ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) == 0) - dialogBox->SetClientSize(width, height); - } - else if (IsKindOf(CLASSINFO(wxPanel))) - { - wxPanel* panel = (wxPanel *)this; - if (!panel->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name)) - return FALSE; - } - else - { - if (!this->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name)) - return FALSE; - } - - if ((resource->GetResourceStyle() & wxRESOURCE_USE_DEFAULTS) != 0) - { - // No need to do this since it's done in wxPanel or wxDialog constructor. - // SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - } - else - { - if (resource->GetFont().Ok()) - SetFont(resource->GetFont()); - if (resource->GetBackgroundColour().Ok()) - SetBackgroundColour(resource->GetBackgroundColour()); - } - - // Should have some kind of font at this point - if (!GetFont().Ok()) - SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - if (!GetBackgroundColour().Ok()) - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - - // Only when we've created the window and set the font can we set the correct size, - // if based on dialog units. - if ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0) - { - wxSize sz = ConvertDialogToPixels(wxSize(width, height)); - SetClientSize(sz.x, sz.y); - - wxPoint pt = ConvertDialogToPixels(wxPoint(x, y)); - Move(pt.x, pt.y); - } - - // Now create children - wxNode *node = resource->GetChildren().First(); - while (node) - { - wxItemResource *childResource = (wxItemResource *)node->Data(); - - (void) CreateItem(childResource, resource, table); - - node = node->Next(); - } - return TRUE; -} - -wxControl *wxWindow::CreateItem(const wxItemResource *resource, const wxItemResource* parentResource, const wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - return table->CreateItem((wxWindow *)this, resource, parentResource); -} - -#ifdef __VISUALC__ - #pragma warning(default:4706) // assignment within conditional expression -#endif // VC++ - -#endif - // BC++/Win16 only -#endif // wxUSE_WX_RESOURCES diff --git a/src/common/resource.cpp b/src/common/resource.cpp deleted file mode 100644 index 56b976b194..0000000000 --- a/src/common/resource.cpp +++ /dev/null @@ -1,2956 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: resource.cpp -// Purpose: Resource system -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "resource.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_WX_RESOURCES - -#ifdef __VISUALC__ - #pragma warning(disable:4706) // assignment within conditional expression -#endif // VC++ - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/hash.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" -#include "wx/types.h" -#include "wx/menu.h" -#include "wx/stattext.h" -#include "wx/button.h" -#include "wx/bmpbuttn.h" -#include "wx/radiobox.h" -#include "wx/radiobut.h" -#include "wx/listbox.h" -#include "wx/choice.h" -#include "wx/checkbox.h" -#include "wx/settings.h" -#include "wx/slider.h" -#include "wx/icon.h" -#include "wx/statbox.h" -#include "wx/statbmp.h" -#if wxUSE_GAUGE -#include "wx/gauge.h" -#endif -#include "wx/textctrl.h" -#include "wx/msgdlg.h" -#include "wx/intl.h" -#endif - -#if wxUSE_RADIOBUTTON -#include "wx/radiobut.h" -#endif - -#if wxUSE_SCROLLBAR -#include "wx/scrolbar.h" -#endif - -#if wxUSE_COMBOBOX -#include "wx/combobox.h" -#endif - -#include "wx/validate.h" - -#include "wx/log.h" - -#include -#include -#include -#include - -#include "wx/resource.h" -#include "wx/string.h" -#include "wx/wxexpr.h" - -#include "wx/settings.h" - -// Forward (private) declarations -bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db); -wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel = FALSE); -wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretMenu(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretMenuBar(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretString(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretBitmap(wxResourceTable& table, wxExpr *expr); -wxItemResource *wxResourceInterpretIcon(wxResourceTable& table, wxExpr *expr); -// Interpret list expression -wxFont wxResourceInterpretFontSpec(wxExpr *expr); - -bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResourceTable *table = (wxResourceTable *) NULL); -bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table = (wxResourceTable *) NULL); - -wxResourceTable *wxDefaultResourceTable = (wxResourceTable *) NULL; - -char *wxResourceBuffer = (char *) NULL; -long wxResourceBufferSize = 0; -long wxResourceBufferCount = 0; -int wxResourceStringPtr = 0; - -void wxInitializeResourceSystem() -{ - wxDefaultResourceTable = new wxResourceTable; -} - -void wxCleanUpResourceSystem() -{ - delete wxDefaultResourceTable; - if (wxResourceBuffer) - delete[] wxResourceBuffer; -} - -void wxLogWarning(char *msg) -{ - wxMessageBox(msg, _("Warning"), wxOK); -} - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxItemResource, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxResourceTable, wxHashTable) -#endif - -wxItemResource::wxItemResource() -{ - m_itemType = ""; - m_title = ""; - m_name = ""; - m_windowStyle = 0; - m_x = m_y = m_width = m_height = 0; - m_value1 = m_value2 = m_value3 = m_value5 = 0; - m_value4 = ""; - m_windowId = 0; - m_exStyle = 0; -} - -wxItemResource::~wxItemResource() -{ - wxNode *node = m_children.First(); - while (node) - { - wxItemResource *item = (wxItemResource *)node->Data(); - delete item; - delete node; - node = m_children.First(); - } -} - -/* - * Resource table - */ - -wxResourceTable::wxResourceTable():wxHashTable(wxKEY_STRING), identifiers(wxKEY_STRING) -{ -} - -wxResourceTable::~wxResourceTable() -{ - ClearTable(); -} - -wxItemResource *wxResourceTable::FindResource(const wxString& name) const -{ - wxItemResource *item = (wxItemResource *)Get(WXSTRINGCAST name); - return item; -} - -void wxResourceTable::AddResource(wxItemResource *item) -{ - wxString name = item->GetName(); - if (name == _T("")) - name = item->GetTitle(); - if (name == _T("")) - name = _T("no name"); - - // Delete existing resource, if any. - Delete(name); - - Put(name, item); -} - -bool wxResourceTable::DeleteResource(const wxString& name) -{ - wxItemResource *item = (wxItemResource *)Delete(WXSTRINGCAST name); - if (item) - { - // See if any resource has this as its child; if so, delete from - // parent's child list. - BeginFind(); - wxNode *node = (wxNode *) NULL; - while ((node = Next())) - { - wxItemResource *parent = (wxItemResource *)node->Data(); - if (parent->GetChildren().Member(item)) - { - parent->GetChildren().DeleteObject(item); - break; - } - } - - delete item; - return TRUE; - } - else - return FALSE; -} - -bool wxResourceTable::ParseResourceFile(const wxString& filename) -{ - wxExprDatabase db; - - FILE *fd = fopen(filename.fn_str(), "r"); - if (!fd) - return FALSE; - bool eof = FALSE; - while (wxResourceReadOneResource(fd, db, &eof, this) && !eof) - { - // Loop - } - fclose(fd); - return wxResourceInterpretResources(*this, db); -} - -bool wxResourceTable::ParseResourceData(const wxString& data) -{ - wxExprDatabase db; - if (!db.ReadFromString(data)) - { - wxLogWarning(_("Ill-formed resource file syntax.")); - return FALSE; - } - - return wxResourceInterpretResources(*this, db); -} - -bool wxResourceTable::RegisterResourceBitmapData(const wxString& name, char bits[], int width, int height) -{ - // Register pre-loaded bitmap data - wxItemResource *item = new wxItemResource; -// item->SetType(wxRESOURCE_TYPE_XBM_DATA); - item->SetType(_T("wxXBMData")); - item->SetName(name); - item->SetValue1((long)bits); - item->SetValue2((long)width); - item->SetValue3((long)height); - AddResource(item); - return TRUE; -} - -bool wxResourceTable::RegisterResourceBitmapData(const wxString& name, char **data) -{ - // Register pre-loaded bitmap data - wxItemResource *item = new wxItemResource; -// item->SetType(wxRESOURCE_TYPE_XPM_DATA); - item->SetType(_T("wxXPMData")); - item->SetName(name); - item->SetValue1((long)data); - AddResource(item); - return TRUE; -} - -bool wxResourceTable::SaveResource(const wxString& WXUNUSED(filename)) -{ - return FALSE; -} - -void wxResourceTable::ClearTable() -{ - BeginFind(); - wxNode *node = Next(); - while (node) - { - wxNode *next = Next(); - wxItemResource *item = (wxItemResource *)node->Data(); - delete item; - delete node; - node = next; - } -} - -wxControl *wxResourceTable::CreateItem(wxWindow *parent, const wxItemResource* childResource, const wxItemResource* parentResource) const -{ - int id = childResource->GetId(); - if ( id == 0 ) - id = -1; - - bool dlgUnits = ((parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0); - - wxControl *control = (wxControl *) NULL; - wxString itemType(childResource->GetType()); - - wxPoint pos; - wxSize size; - if (dlgUnits) - { - pos = parent->ConvertDialogToPixels(wxPoint(childResource->GetX(), childResource->GetY())); - size = parent->ConvertDialogToPixels(wxSize(childResource->GetWidth(), childResource->GetHeight())); - } - else - { - pos = wxPoint(childResource->GetX(), childResource->GetY()); - size = wxSize(childResource->GetWidth(), childResource->GetHeight()); - } - - if (itemType == wxString(_T("wxButton")) || itemType == wxString(_T("wxBitmapButton"))) - { - if (childResource->GetValue4() != _T("")) - { - // Bitmap button - wxBitmap bitmap = childResource->GetBitmap(); - if (!bitmap.Ok()) - { - bitmap = wxResourceCreateBitmap(childResource->GetValue4(), (wxResourceTable *)this); - ((wxItemResource*) childResource)->SetBitmap(bitmap); - } - if (bitmap.Ok()) - control = new wxBitmapButton(parent, id, bitmap, pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - } - else - // Normal, text button - control = new wxButton(parent, id, childResource->GetTitle(), pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - } - else if (itemType == wxString(_T("wxMessage")) || itemType == wxString(_T("wxStaticText")) || - itemType == wxString(_T("wxStaticBitmap"))) - { - if (childResource->GetValue4() != _T("")) - { - // Bitmap message - wxBitmap bitmap = childResource->GetBitmap(); - if (!bitmap.Ok()) - { - bitmap = wxResourceCreateBitmap(childResource->GetValue4(), (wxResourceTable *)this); - ((wxItemResource*) childResource)->SetBitmap(bitmap); - } -#if wxUSE_BITMAP_MESSAGE - if (bitmap.Ok()) - control = new wxStaticBitmap(parent, id, bitmap, pos, size, - childResource->GetStyle(), childResource->GetName()); -#endif - } - else - { - control = new wxStaticText(parent, id, childResource->GetTitle(), pos, size, - childResource->GetStyle(), childResource->GetName()); - } - } - else if (itemType == wxString(_T("wxText")) || itemType == wxString(_T("wxTextCtrl")) || itemType == wxString(_T("wxMultiText"))) - { - control = new wxTextCtrl(parent, id, childResource->GetValue4(), pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - } - else if (itemType == wxString(_T("wxCheckBox"))) - { - control = new wxCheckBox(parent, id, childResource->GetTitle(), pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - - ((wxCheckBox *)control)->SetValue((childResource->GetValue1() != 0)); - } -#if wxUSE_GAUGE - else if (itemType == wxString(_T("wxGauge"))) - { - control = new wxGauge(parent, id, (int)childResource->GetValue2(), pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - - ((wxGauge *)control)->SetValue((int)childResource->GetValue1()); - } -#endif -#if wxUSE_RADIOBUTTON - else if (itemType == wxString(_T("wxRadioButton"))) - { - control = new wxRadioButton(parent, id, childResource->GetTitle(), // (int)childResource->GetValue1(), - pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - } -#endif -#if wxUSE_SCROLLBAR - else if (itemType == wxString(_T("wxScrollBar"))) - { - control = new wxScrollBar(parent, id, pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); -/* - ((wxScrollBar *)control)->SetValue((int)childResource->GetValue1()); - ((wxScrollBar *)control)->SetPageSize((int)childResource->GetValue2()); - ((wxScrollBar *)control)->SetObjectLength((int)childResource->GetValue3()); - ((wxScrollBar *)control)->SetViewLength((int)(long)childResource->GetValue5()); -*/ - ((wxScrollBar *)control)->SetScrollbar((int)childResource->GetValue1(),(int)childResource->GetValue2(), - (int)childResource->GetValue3(),(int)(long)childResource->GetValue5(),FALSE); - - } -#endif - else if (itemType == wxString(_T("wxSlider"))) - { - control = new wxSlider(parent, id, (int)childResource->GetValue1(), - (int)childResource->GetValue2(), (int)childResource->GetValue3(), pos, size, - childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - } - else if (itemType == wxString(_T("wxGroupBox")) || itemType == wxString(_T("wxStaticBox"))) - { - control = new wxStaticBox(parent, id, childResource->GetTitle(), pos, size, - childResource->GetStyle(), childResource->GetName()); - } - else if (itemType == wxString(_T("wxListBox"))) - { - wxStringList& stringList = childResource->GetStringValues(); - wxString *strings = (wxString *) NULL; - int noStrings = 0; - if (stringList.Number() > 0) - { - noStrings = stringList.Number(); - strings = new wxString[noStrings]; - wxNode *node = stringList.First(); - int i = 0; - while (node) - { - strings[i] = (wxChar *)node->Data(); - i ++; - node = node->Next(); - } - } - control = new wxListBox(parent, id, pos, size, - noStrings, strings, childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - - if (strings) - delete[] strings; - } - else if (itemType == wxString(_T("wxChoice"))) - { - wxStringList& stringList = childResource->GetStringValues(); - wxString *strings = (wxString *) NULL; - int noStrings = 0; - if (stringList.Number() > 0) - { - noStrings = stringList.Number(); - strings = new wxString[noStrings]; - wxNode *node = stringList.First(); - int i = 0; - while (node) - { - strings[i] = (wxChar *)node->Data(); - i ++; - node = node->Next(); - } - } - control = new wxChoice(parent, id, pos, size, - noStrings, strings, childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - - if (strings) - delete[] strings; - } -#if wxUSE_COMBOBOX - else if (itemType == wxString(_T("wxComboBox"))) - { - wxStringList& stringList = childResource->GetStringValues(); - wxString *strings = (wxString *) NULL; - int noStrings = 0; - if (stringList.Number() > 0) - { - noStrings = stringList.Number(); - strings = new wxString[noStrings]; - wxNode *node = stringList.First(); - int i = 0; - while (node) - { - strings[i] = (wxChar *)node->Data(); - i ++; - node = node->Next(); - } - } - control = new wxComboBox(parent, id, childResource->GetValue4(), pos, size, - noStrings, strings, childResource->GetStyle(), wxDefaultValidator, childResource->GetName()); - - if (strings) - delete[] strings; - } -#endif - else if (itemType == wxString(_T("wxRadioBox"))) - { - wxStringList& stringList = childResource->GetStringValues(); - wxString *strings = (wxString *) NULL; - int noStrings = 0; - if (stringList.Number() > 0) - { - noStrings = stringList.Number(); - strings = new wxString[noStrings]; - wxNode *node = stringList.First(); - int i = 0; - while (node) - { - strings[i] = (wxChar *)node->Data(); - i ++; - node = node->Next(); - } - } - control = new wxRadioBox(parent, (wxWindowID) id, wxString(childResource->GetTitle()), pos, size, - noStrings, strings, (int)childResource->GetValue1(), childResource->GetStyle(), wxDefaultValidator, - childResource->GetName()); - - if (strings) - delete[] strings; - } - - if ((parentResource->GetResourceStyle() & wxRESOURCE_USE_DEFAULTS) != 0) - { - // Don't set font; will be inherited from parent. - } - else - { - if (control && childResource->GetFont().Ok()) - control->SetFont(childResource->GetFont()); - } - return control; -} - -/* - * Interpret database as a series of resources - */ - -bool wxResourceInterpretResources(wxResourceTable& table, wxExprDatabase& db) -{ - wxNode *node = db.First(); - while (node) - { - wxExpr *clause = (wxExpr *)node->Data(); - wxString functor(clause->Functor()); - - wxItemResource *item = (wxItemResource *) NULL; - if (functor == _T("dialog")) - item = wxResourceInterpretDialog(table, clause); - else if (functor == _T("panel")) - item = wxResourceInterpretDialog(table, clause, TRUE); - else if (functor == _T("menubar")) - item = wxResourceInterpretMenuBar(table, clause); - else if (functor == _T("menu")) - item = wxResourceInterpretMenu(table, clause); - else if (functor == _T("string")) - item = wxResourceInterpretString(table, clause); - else if (functor == _T("bitmap")) - item = wxResourceInterpretBitmap(table, clause); - else if (functor == _T("icon")) - item = wxResourceInterpretIcon(table, clause); - - if (item) - { - // Remove any existing resource of same name - if (item->GetName() != _T("")) - table.DeleteResource(item->GetName()); - table.AddResource(item); - } - node = node->Next(); - } - return TRUE; -} - -static const wxChar *g_ValidControlClasses[] = -{ - _T("wxButton"), - _T("wxBitmapButton"), - _T("wxMessage"), - _T("wxStaticText"), - _T("wxStaticBitmap"), - _T("wxText"), - _T("wxTextCtrl"), - _T("wxMultiText"), - _T("wxListBox"), - _T("wxRadioBox"), - _T("wxRadioButton"), - _T("wxCheckBox"), - _T("wxBitmapCheckBox"), - _T("wxGroupBox"), - _T("wxStaticBox"), - _T("wxSlider"), - _T("wxGauge"), - _T("wxScrollBar"), - _T("wxChoice"), - _T("wxComboBox") -}; - -static bool wxIsValidControlClass(const wxString& c) -{ - for ( size_t i = 0; i < WXSIZEOF(g_ValidControlClasses); i++ ) - { - if ( c == g_ValidControlClasses[i] ) - return TRUE; - } - return FALSE; -} - -wxItemResource *wxResourceInterpretDialog(wxResourceTable& table, wxExpr *expr, bool isPanel) -{ - wxItemResource *dialogItem = new wxItemResource; - if (isPanel) - dialogItem->SetType(_T("wxPanel")); - else - dialogItem->SetType(_T("wxDialog")); - wxString style = _T(""); - wxString title = _T(""); - wxString name = _T(""); - wxString backColourHex = _T(""); - wxString labelColourHex = _T(""); - wxString buttonColourHex = _T(""); - - long windowStyle = wxDEFAULT_DIALOG_STYLE; - if (isPanel) - windowStyle = 0; - - int x = 0; int y = 0; int width = -1; int height = -1; - int isModal = 0; - wxExpr *labelFontExpr = (wxExpr *) NULL; - wxExpr *buttonFontExpr = (wxExpr *) NULL; - wxExpr *fontExpr = (wxExpr *) NULL; - expr->GetAttributeValue(_T("style"), style); - expr->GetAttributeValue(_T("name"), name); - expr->GetAttributeValue(_T("title"), title); - expr->GetAttributeValue(_T("x"), x); - expr->GetAttributeValue(_T("y"), y); - expr->GetAttributeValue(_T("width"), width); - expr->GetAttributeValue(_T("height"), height); - expr->GetAttributeValue(_T("modal"), isModal); - expr->GetAttributeValue(_T("label_font"), &labelFontExpr); - expr->GetAttributeValue(_T("button_font"), &buttonFontExpr); - expr->GetAttributeValue(_T("font"), &fontExpr); - expr->GetAttributeValue(_T("background_colour"), backColourHex); - expr->GetAttributeValue(_T("label_colour"), labelColourHex); - expr->GetAttributeValue(_T("button_colour"), buttonColourHex); - - int useDialogUnits = 0; - expr->GetAttributeValue(_T("use_dialog_units"), useDialogUnits); - if (useDialogUnits != 0) - dialogItem->SetResourceStyle(dialogItem->GetResourceStyle() | wxRESOURCE_DIALOG_UNITS); - - int useDefaults = 0; - expr->GetAttributeValue(_T("use_system_defaults"), useDefaults); - if (useDefaults != 0) - dialogItem->SetResourceStyle(dialogItem->GetResourceStyle() | wxRESOURCE_USE_DEFAULTS); - - long id = 0; - expr->GetAttributeValue(_T("id"), id); - dialogItem->SetId(id); - - if (style != _T("")) - { - windowStyle = wxParseWindowStyle(style); - } - dialogItem->SetStyle(windowStyle); - dialogItem->SetValue1(isModal); - if (windowStyle & wxDIALOG_MODAL) // Uses style in wxWin 2 - dialogItem->SetValue1(TRUE); - - dialogItem->SetName(name); - dialogItem->SetTitle(title); - dialogItem->SetSize(x, y, width, height); - - if (backColourHex != _T("")) - { - int r = 0; - int g = 0; - int b = 0; - r = wxHexToDec(backColourHex.Mid(0, 2)); - g = wxHexToDec(backColourHex.Mid(2, 2)); - b = wxHexToDec(backColourHex.Mid(4, 2)); - dialogItem->SetBackgroundColour(wxColour((unsigned char)r,(unsigned char)g,(unsigned char)b)); - } - if (labelColourHex != _T("")) - { - int r = 0; - int g = 0; - int b = 0; - r = wxHexToDec(labelColourHex.Mid(0, 2)); - g = wxHexToDec(labelColourHex.Mid(2, 2)); - b = wxHexToDec(labelColourHex.Mid(4, 2)); - dialogItem->SetLabelColour(wxColour((unsigned char)r,(unsigned char)g,(unsigned char)b)); - } - if (buttonColourHex != _T("")) - { - int r = 0; - int g = 0; - int b = 0; - r = wxHexToDec(buttonColourHex.Mid(0, 2)); - g = wxHexToDec(buttonColourHex.Mid(2, 2)); - b = wxHexToDec(buttonColourHex.Mid(4, 2)); - dialogItem->SetButtonColour(wxColour((unsigned char)r,(unsigned char)g,(unsigned char)b)); - } - - if (fontExpr) - dialogItem->SetFont(wxResourceInterpretFontSpec(fontExpr)); - else if (buttonFontExpr) - dialogItem->SetFont(wxResourceInterpretFontSpec(buttonFontExpr)); - else if (labelFontExpr) - dialogItem->SetFont(wxResourceInterpretFontSpec(labelFontExpr)); - - // Now parse all controls - wxExpr *controlExpr = expr->GetFirst(); - while (controlExpr) - { - if (controlExpr->Number() == 3) - { - wxString controlKeyword(controlExpr->Nth(1)->StringValue()); - if (controlKeyword != _T("") && controlKeyword == _T("control")) - { - // The value part: always a list. - wxExpr *listExpr = controlExpr->Nth(2); - if (listExpr->Type() == PrologList) - { - wxItemResource *controlItem = wxResourceInterpretControl(table, listExpr); - if (controlItem) - { - dialogItem->GetChildren().Append(controlItem); - } - } - } - } - controlExpr = controlExpr->GetNext(); - } - return dialogItem; -} - -wxItemResource *wxResourceInterpretControl(wxResourceTable& table, wxExpr *expr) -{ - wxItemResource *controlItem = new wxItemResource; - - // First, find the standard features of a control definition: - // [optional integer/string id], control name, title, style, name, x, y, width, height - - wxString controlType; - wxString style; - wxString title; - wxString name; - int id = 0; - long windowStyle = 0; - int x = 0; int y = 0; int width = -1; int height = -1; - int count = 0; - - wxExpr *expr1 = expr->Nth(0); - - if ( expr1->Type() == PrologString || expr1->Type() == PrologWord ) - { - if ( wxIsValidControlClass(expr1->StringValue()) ) - { - count = 1; - controlType = expr1->StringValue(); - } - else - { - wxString str(expr1->StringValue()); - id = wxResourceGetIdentifier(str, &table); - if (id == 0) - { - wxLogWarning(_("Could not resolve control class or id '%s'. " - "Use (non-zero) integer instead\n or provide #define " - "(see manual for caveats)"), - (const wxChar*) expr1->StringValue()); - delete controlItem; - return (wxItemResource *) NULL; - } - else - { - // Success - we have an id, so the 2nd element must be the control class. - controlType = expr->Nth(1)->StringValue(); - count = 2; - } - } - } - else if (expr1->Type() == PrologInteger) - { - id = (int)expr1->IntegerValue(); - // Success - we have an id, so the 2nd element must be the control class. - controlType = expr->Nth(1)->StringValue(); - count = 2; - } - - expr1 = expr->Nth(count); - count ++; - if ( expr1 ) - title = expr1->StringValue(); - - expr1 = expr->Nth(count); - count ++; - if (expr1) - { - style = expr1->StringValue(); - windowStyle = wxParseWindowStyle(style); - } - - expr1 = expr->Nth(count); - count ++; - if (expr1) - name = expr1->StringValue(); - - expr1 = expr->Nth(count); - count ++; - if (expr1) - x = (int)expr1->IntegerValue(); - - expr1 = expr->Nth(count); - count ++; - if (expr1) - y = (int)expr1->IntegerValue(); - - expr1 = expr->Nth(count); - count ++; - if (expr1) - width = (int)expr1->IntegerValue(); - - expr1 = expr->Nth(count); - count ++; - if (expr1) - height = (int)expr1->IntegerValue(); - - controlItem->SetStyle(windowStyle); - controlItem->SetName(name); - controlItem->SetTitle(title); - controlItem->SetSize(x, y, width, height); - controlItem->SetType(controlType); - controlItem->SetId(id); - - if (controlType == _T("wxButton")) - { - // Check for bitmap resource name (in case loading old-style resource file) - if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord))) - { - wxString str(expr->Nth(count)->StringValue()); - count ++; - - if (str != _T("")) - { - controlItem->SetValue4(str); - controlItem->SetType(_T("wxBitmapButton")); - } - } - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - else if (controlType == _T("wxBitmapButton")) - { - // Check for bitmap resource name - if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord))) - { - wxString str(expr->Nth(count)->StringValue()); - controlItem->SetValue4(str); - count ++; - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - else if (controlType == _T("wxCheckBox")) - { - // Check for default value - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue1(expr->Nth(count)->IntegerValue()); - count ++; - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } -#if wxUSE_RADIOBUTTON - else if (controlType == _T("wxRadioButton")) - { - // Check for default value - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue1(expr->Nth(count)->IntegerValue()); - count ++; - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } -#endif - else if (controlType == _T("wxText") || controlType == _T("wxTextCtrl") || controlType == _T("wxMultiText")) - { - // Check for default value - if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord))) - { - wxString str(expr->Nth(count)->StringValue()); - controlItem->SetValue4(str); - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - // Do nothing - no label font any more - count ++; - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } - else if (controlType == _T("wxMessage") || controlType == _T("wxStaticText")) - { - // Check for bitmap resource name (in case it's an old-style .wxr file) - if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord))) - { - wxString str(expr->Nth(count)->StringValue()); - controlItem->SetValue4(str); - count ++; - controlItem->SetType(_T("wxStaticText")); - } - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - else if (controlType == _T("wxStaticBitmap")) - { - // Check for bitmap resource name - if (expr->Nth(count) && ((expr->Nth(count)->Type() == PrologString) || (expr->Nth(count)->Type() == PrologWord))) - { - wxString str(expr->Nth(count)->StringValue()); - controlItem->SetValue4(str); - count ++; - } - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - else if (controlType == _T("wxGroupBox") || controlType == _T("wxStaticBox")) - { - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - else if (controlType == _T("wxGauge")) - { - // Check for default value - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue1(expr->Nth(count)->IntegerValue()); - count ++; - - // Check for range - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue2(expr->Nth(count)->IntegerValue()); - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - // Do nothing - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } - } - else if (controlType == _T("wxSlider")) - { - // Check for default value - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue1(expr->Nth(count)->IntegerValue()); - count ++; - - // Check for min - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue2(expr->Nth(count)->IntegerValue()); - count ++; - - // Check for max - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue3(expr->Nth(count)->IntegerValue()); - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - // do nothing - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } - } - } - else if (controlType == _T("wxScrollBar")) - { - // DEFAULT VALUE - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue1(expr->Nth(count)->IntegerValue()); - count ++; - - // PAGE LENGTH - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue2(expr->Nth(count)->IntegerValue()); - count ++; - - // OBJECT LENGTH - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue3(expr->Nth(count)->IntegerValue()); - count ++; - - // VIEW LENGTH - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - controlItem->SetValue5(expr->Nth(count)->IntegerValue()); - } - } - } - } - else if (controlType == _T("wxListBox")) - { - wxExpr *valueList = (wxExpr *) NULL; - - if ((valueList = expr->Nth(count)) && (valueList->Type() == PrologList)) - { - wxStringList stringList; - wxExpr *stringExpr = valueList->GetFirst(); - while (stringExpr) - { - stringList.Add(stringExpr->StringValue()); - stringExpr = stringExpr->GetNext(); - } - controlItem->SetStringValues(stringList); - count ++; -// This is now obsolete: it's in the window style. - // Check for wxSINGLE/wxMULTIPLE - wxExpr *mult = (wxExpr *) NULL; -/* - controlItem->SetValue1(wxLB_SINGLE); -*/ - if ((mult = expr->Nth(count)) && ((mult->Type() == PrologString)||(mult->Type() == PrologWord))) - { -/* - wxString m(mult->StringValue()); - if (m == "wxLB_MULTIPLE") - controlItem->SetValue1(wxLB_MULTIPLE); - else if (m == "wxLB_EXTENDED") - controlItem->SetValue1(wxLB_EXTENDED); -*/ - // Ignore the value - count ++; - } - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - count ++; - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } - else if (controlType == _T("wxChoice")) - { - wxExpr *valueList = (wxExpr *) NULL; - // Check for default value list - if ((valueList = expr->Nth(count)) && (valueList->Type() == PrologList)) - { - wxStringList stringList; - wxExpr *stringExpr = valueList->GetFirst(); - while (stringExpr) - { - stringList.Add(stringExpr->StringValue()); - stringExpr = stringExpr->GetNext(); - } - controlItem->SetStringValues(stringList); - - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } -#if wxUSE_COMBOBOX - else if (controlType == _T("wxComboBox")) - { - wxExpr *textValue = expr->Nth(count); - if (textValue && (textValue->Type() == PrologString || textValue->Type() == PrologWord)) - { - wxString str(textValue->StringValue()); - controlItem->SetValue4(str); - - count ++; - - wxExpr *valueList = (wxExpr *) NULL; - // Check for default value list - if ((valueList = expr->Nth(count)) && (valueList->Type() == PrologList)) - { - wxStringList stringList; - wxExpr *stringExpr = valueList->GetFirst(); - while (stringExpr) - { - stringList.Add(stringExpr->StringValue()); - stringExpr = stringExpr->GetNext(); - } - controlItem->SetStringValues(stringList); - - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } - } -#endif -#if 1 - else if (controlType == _T("wxRadioBox")) - { - wxExpr *valueList = (wxExpr *) NULL; - // Check for default value list - if ((valueList = expr->Nth(count)) && (valueList->Type() == PrologList)) - { - wxStringList stringList; - wxExpr *stringExpr = valueList->GetFirst(); - while (stringExpr) - { - stringList.Add(stringExpr->StringValue()); - stringExpr = stringExpr->GetNext(); - } - controlItem->SetStringValues(stringList); - count ++; - - // majorDim (number of rows or cols) - if (expr->Nth(count) && (expr->Nth(count)->Type() == PrologInteger)) - { - controlItem->SetValue1(expr->Nth(count)->IntegerValue()); - count ++; - } - else - controlItem->SetValue1(0); - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - { - // controlItem->SetLabelFont(wxResourceInterpretFontSpec(expr->Nth(count))); - count ++; - - if (expr->Nth(count) && expr->Nth(count)->Type() == PrologList) - controlItem->SetFont(wxResourceInterpretFontSpec(expr->Nth(count))); - } - } - } -#endif - else - { - delete controlItem; - return (wxItemResource *) NULL; - } - return controlItem; -} - -// Forward declaration -wxItemResource *wxResourceInterpretMenu1(wxResourceTable& table, wxExpr *expr); - -/* - * Interpet a menu item - */ - -wxItemResource *wxResourceInterpretMenuItem(wxResourceTable& table, wxExpr *expr) -{ - wxItemResource *item = new wxItemResource; - - wxExpr *labelExpr = expr->Nth(0); - wxExpr *idExpr = expr->Nth(1); - wxExpr *helpExpr = expr->Nth(2); - wxExpr *checkableExpr = expr->Nth(3); - - // Further keywords/attributes to follow sometime... - if (expr->Number() == 0) - { -// item->SetType(wxRESOURCE_TYPE_SEPARATOR); - item->SetType(_T("wxMenuSeparator")); - return item; - } - else - { -// item->SetType(wxTYPE_MENU); // Well, menu item, but doesn't matter. - item->SetType(_T("wxMenu")); // Well, menu item, but doesn't matter. - if (labelExpr) - { - wxString str(labelExpr->StringValue()); - item->SetTitle(str); - } - if (idExpr) - { - int id = 0; - // If a string or word, must look up in identifier table. - if ((idExpr->Type() == PrologString) || (idExpr->Type() == PrologWord)) - { - wxString str(idExpr->StringValue()); - id = wxResourceGetIdentifier(str, &table); - if (id == 0) - { - wxLogWarning(_("Could not resolve menu id '%s'. " - "Use (non-zero) integer instead\n" - "or provide #define (see manual for caveats)"), - (const wxChar*) idExpr->StringValue()); - } - } - else if (idExpr->Type() == PrologInteger) - id = (int)idExpr->IntegerValue(); - item->SetValue1(id); - } - if (helpExpr) - { - wxString str(helpExpr->StringValue()); - item->SetValue4(str); - } - if (checkableExpr) - item->SetValue2(checkableExpr->IntegerValue()); - - // Find the first expression that's a list, for submenu - wxExpr *subMenuExpr = expr->GetFirst(); - while (subMenuExpr && (subMenuExpr->Type() != PrologList)) - subMenuExpr = subMenuExpr->GetNext(); - - while (subMenuExpr) - { - wxItemResource *child = wxResourceInterpretMenuItem(table, subMenuExpr); - item->GetChildren().Append(child); - subMenuExpr = subMenuExpr->GetNext(); - } - } - return item; -} - -/* - * Interpret a nested list as a menu - */ -/* -wxItemResource *wxResourceInterpretMenu1(wxResourceTable& table, wxExpr *expr) -{ - wxItemResource *menu = new wxItemResource; -// menu->SetType(wxTYPE_MENU); - menu->SetType("wxMenu"); - wxExpr *element = expr->GetFirst(); - while (element) - { - wxItemResource *item = wxResourceInterpretMenuItem(table, element); - if (item) - menu->GetChildren().Append(item); - element = element->GetNext(); - } - return menu; -} -*/ - -wxItemResource *wxResourceInterpretMenu(wxResourceTable& table, wxExpr *expr) -{ - wxExpr *listExpr = (wxExpr *) NULL; - expr->GetAttributeValue(_T("menu"), &listExpr); - if (!listExpr) - return (wxItemResource *) NULL; - - wxItemResource *menuResource = wxResourceInterpretMenuItem(table, listExpr); - - if (!menuResource) - return (wxItemResource *) NULL; - - wxString name; - if (expr->GetAttributeValue(_T("name"), name)) - { - menuResource->SetName(name); - } - - return menuResource; -} - -wxItemResource *wxResourceInterpretMenuBar(wxResourceTable& table, wxExpr *expr) -{ - wxExpr *listExpr = (wxExpr *) NULL; - expr->GetAttributeValue(_T("menu"), &listExpr); - if (!listExpr) - return (wxItemResource *) NULL; - - wxItemResource *resource = new wxItemResource; - resource->SetType(_T("wxMenu")); -// resource->SetType(wxTYPE_MENU); - - wxExpr *element = listExpr->GetFirst(); - while (element) - { - wxItemResource *menuResource = wxResourceInterpretMenuItem(table, listExpr); - resource->GetChildren().Append(menuResource); - element = element->GetNext(); - } - - wxString name; - if (expr->GetAttributeValue(_T("name"), name)) - { - resource->SetName(name); - } - - return resource; -} - -wxItemResource *wxResourceInterpretString(wxResourceTable& WXUNUSED(table), wxExpr *WXUNUSED(expr)) -{ - return (wxItemResource *) NULL; -} - -wxItemResource *wxResourceInterpretBitmap(wxResourceTable& WXUNUSED(table), wxExpr *expr) -{ - wxItemResource *bitmapItem = new wxItemResource; -// bitmapItem->SetType(wxTYPE_BITMAP); - bitmapItem->SetType(_T("wxBitmap")); - wxString name; - if (expr->GetAttributeValue(_T("name"), name)) - { - bitmapItem->SetName(name); - } - // Now parse all bitmap specifications - wxExpr *bitmapExpr = expr->GetFirst(); - while (bitmapExpr) - { - if (bitmapExpr->Number() == 3) - { - wxString bitmapKeyword(bitmapExpr->Nth(1)->StringValue()); - if (bitmapKeyword == _T("bitmap") || bitmapKeyword == _T("icon")) - { - // The value part: always a list. - wxExpr *listExpr = bitmapExpr->Nth(2); - if (listExpr->Type() == PrologList) - { - wxItemResource *bitmapSpec = new wxItemResource; -// bitmapSpec->SetType(wxTYPE_BITMAP); - bitmapSpec->SetType(_T("wxBitmap")); - - // List is of form: [filename, bitmaptype, platform, colours, xresolution, yresolution] - // where everything after 'filename' is optional. - wxExpr *nameExpr = listExpr->Nth(0); - wxExpr *typeExpr = listExpr->Nth(1); - wxExpr *platformExpr = listExpr->Nth(2); - wxExpr *coloursExpr = listExpr->Nth(3); - wxExpr *xresExpr = listExpr->Nth(4); - wxExpr *yresExpr = listExpr->Nth(5); - if (nameExpr && nameExpr->StringValue() != _T("")) - { - bitmapSpec->SetName(nameExpr->StringValue()); - } - if (typeExpr && typeExpr->StringValue() != _T("")) - { - bitmapSpec->SetValue1(wxParseWindowStyle(typeExpr->StringValue())); - } - else - bitmapSpec->SetValue1(0); - - if (platformExpr && platformExpr->StringValue() != _T("")) - { - wxString plat(platformExpr->StringValue()); - if (plat == _T("windows") || plat == _T("WINDOWS")) - bitmapSpec->SetValue2(RESOURCE_PLATFORM_WINDOWS); - else if (plat == _T("x") || plat == _T("X")) - bitmapSpec->SetValue2(RESOURCE_PLATFORM_X); - else if (plat == _T("mac") || plat == _T("MAC")) - bitmapSpec->SetValue2(RESOURCE_PLATFORM_MAC); - else - bitmapSpec->SetValue2(RESOURCE_PLATFORM_ANY); - } - else - bitmapSpec->SetValue2(RESOURCE_PLATFORM_ANY); - - if (coloursExpr) - bitmapSpec->SetValue3(coloursExpr->IntegerValue()); - int xres = 0; - int yres = 0; - if (xresExpr) - xres = (int)xresExpr->IntegerValue(); - if (yresExpr) - yres = (int)yresExpr->IntegerValue(); - bitmapSpec->SetSize(0, 0, xres, yres); - - bitmapItem->GetChildren().Append(bitmapSpec); - } - } - } - bitmapExpr = bitmapExpr->GetNext(); - } - - return bitmapItem; -} - -wxItemResource *wxResourceInterpretIcon(wxResourceTable& table, wxExpr *expr) -{ - wxItemResource *item = wxResourceInterpretBitmap(table, expr); - if (item) - { -// item->SetType(wxTYPE_ICON); - item->SetType(_T("wxIcon")); - return item; - } - else - return (wxItemResource *) NULL; -} - -// Interpret list expression as a font -wxFont wxResourceInterpretFontSpec(wxExpr *expr) -{ - if (expr->Type() != PrologList) - return wxNullFont; - - int point = 10; - int family = wxSWISS; - int style = wxNORMAL; - int weight = wxNORMAL; - int underline = 0; - wxString faceName(_T("")); - - wxExpr *pointExpr = expr->Nth(0); - wxExpr *familyExpr = expr->Nth(1); - wxExpr *styleExpr = expr->Nth(2); - wxExpr *weightExpr = expr->Nth(3); - wxExpr *underlineExpr = expr->Nth(4); - wxExpr *faceNameExpr = expr->Nth(5); - if (pointExpr) - point = (int)pointExpr->IntegerValue(); - - wxString str; - if (familyExpr) - { - str = familyExpr->StringValue(); - family = (int)wxParseWindowStyle(str); - } - if (styleExpr) - { - str = styleExpr->StringValue(); - style = (int)wxParseWindowStyle(str); - } - if (weightExpr) - { - str = weightExpr->StringValue(); - weight = (int)wxParseWindowStyle(str); - } - if (underlineExpr) - underline = (int)underlineExpr->IntegerValue(); - if (faceNameExpr) - faceName = faceNameExpr->StringValue(); - - wxFont font(point, family, style, weight, (underline != 0), faceName); - return font; -} - -// Separate file for the remainder of this, for BC++/Win16 - -#if !((defined(__BORLANDC__) || defined(__SC__)) && defined(__WIN16__)) -/* - * (Re)allocate buffer for reading in from resource file - */ - -bool wxReallocateResourceBuffer() -{ - if (!wxResourceBuffer) - { - wxResourceBufferSize = 1000; - wxResourceBuffer = new char[wxResourceBufferSize]; - return TRUE; - } - if (wxResourceBuffer) - { - long newSize = wxResourceBufferSize + 1000; - char *tmp = new char[(int)newSize]; - strncpy(tmp, wxResourceBuffer, (int)wxResourceBufferCount); - delete[] wxResourceBuffer; - wxResourceBuffer = tmp; - wxResourceBufferSize = newSize; - } - return TRUE; -} - -static bool wxEatWhiteSpace(FILE *fd) -{ - int ch = 0; - - while ((ch = getc(fd)) != EOF) - { - switch (ch) - { - case ' ': - case 0x0a: - case 0x0d: - case 0x09: - break; - case '/': - { - int prev_ch = ch; - ch = getc(fd); - if (ch == EOF) - { - ungetc(prev_ch, fd); - return TRUE; - } - - if (ch == '*') - { - // Eat C comment - prev_ch = 0; - while ((ch = getc(fd)) != EOF) - { - if (ch == '/' && prev_ch == '*') - break; - prev_ch = ch; - } - } - else if (ch == '/') - { - // Eat C++ comment - static char buffer[255]; - fgets(buffer, 255, fd); - } - else - { - ungetc(prev_ch, fd); - ungetc(ch, fd); - return TRUE; - } - } - break; - default: - ungetc(ch, fd); - return TRUE; - - } - } - return FALSE; -} - -bool wxGetResourceToken(FILE *fd) -{ - if (!wxResourceBuffer) - wxReallocateResourceBuffer(); - wxResourceBuffer[0] = 0; - wxEatWhiteSpace(fd); - - int ch = getc(fd); - if (ch == '"') - { - // Get string - wxResourceBufferCount = 0; - ch = getc(fd); - while (ch != '"') - { - int actualCh = ch; - if (ch == EOF) - { - wxResourceBuffer[wxResourceBufferCount] = 0; - return FALSE; - } - // Escaped characters - else if (ch == '\\') - { - int newCh = getc(fd); - if (newCh == '"') - actualCh = '"'; - else if (newCh == 10) - actualCh = 10; - else - { - ungetc(newCh, fd); - } - } - - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)actualCh; - wxResourceBufferCount ++; - ch = getc(fd); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - } - else - { - wxResourceBufferCount = 0; - // Any other token - while (ch != ' ' && ch != EOF && ch != ' ' && ch != 13 && ch != 9 && ch != 10) - { - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)ch; - wxResourceBufferCount ++; - - ch = getc(fd); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - if (ch == EOF) - return FALSE; - } - return TRUE; -} - -/* - * Files are in form: - static char *name = "...."; - with possible comments. - */ - -bool wxResourceReadOneResource(FILE *fd, wxExprDatabase& db, bool *eof, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - // static or #define - if (!wxGetResourceToken(fd)) - { - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "#define") == 0) - { - wxGetResourceToken(fd); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - wxGetResourceToken(fd); - wxChar *value = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - if (wxIsalpha(value[0])) - { - int val = (int)wxAtol(value); - wxResourceAddIdentifier(name, val, table); - } - else - { - wxLogWarning(_("#define %s must be an integer."), name); - delete[] name; - delete[] value; - return FALSE; - } - delete[] name; - delete[] value; - - return TRUE; - } - else if (strcmp(wxResourceBuffer, "#include") == 0) - { - wxGetResourceToken(fd); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - wxChar *actualName = name; - if (name[0] == _T('"')) - actualName = name + 1; - int len = wxStrlen(name); - if ((len > 0) && (name[len-1] == _T('"'))) - name[len-1] = 0; - if (!wxResourceParseIncludeFile(actualName, table)) - { - wxLogWarning(_("Could not find resource include file %s."), actualName); - } - delete[] name; - return TRUE; - } - else if (strcmp(wxResourceBuffer, "static") != 0) - { - wxChar buf[300]; - wxStrcpy(buf, _("Found ")); - wxStrncat(buf, wxConv_libc.cMB2WX(wxResourceBuffer), 30); - wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource.")); - wxLogWarning(buf); - return FALSE; - } - - // char - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "char") != 0) - { - wxLogWarning(_("Expected 'char' whilst parsing resource.")); - return FALSE; - } - - // *name - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (wxResourceBuffer[0] != '*') - { - wxLogWarning(_("Expected '*' whilst parsing resource.")); - return FALSE; - } - wxChar nameBuf[100]; - wxMB2WX(nameBuf, wxResourceBuffer+1, 99); - nameBuf[99] = 0; - - // = - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "=") != 0) - { - wxLogWarning(_("Expected '=' whilst parsing resource.")); - return FALSE; - } - - // String - if (!wxGetResourceToken(fd)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - else - { - if (!db.ReadPrologFromString(wxResourceBuffer)) - { - wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf); - return FALSE; - } - } - // Semicolon - if (!wxGetResourceToken(fd)) - { - *eof = TRUE; - } - return TRUE; -} - -/* - * Parses string window style into integer window style - */ - -/* - * Style flag parsing, e.g. - * "wxSYSTEM_MENU | wxBORDER" -> integer - */ - -wxChar* wxResourceParseWord(wxChar*s, int *i) -{ - if (!s) - return (wxChar*) NULL; - - static wxChar buf[150]; - int len = wxStrlen(s); - int j = 0; - int ii = *i; - while ((ii < len) && (wxIsalpha(s[ii]) || (s[ii] == _T('_')))) - { - buf[j] = s[ii]; - j ++; - ii ++; - } - buf[j] = 0; - - // Eat whitespace and conjunction characters - while ((ii < len) && - ((s[ii] == _T(' ')) || (s[ii] == _T('|')) || (s[ii] == _T(',')))) - { - ii ++; - } - *i = ii; - if (j == 0) - return (wxChar*) NULL; - else - return buf; -} - -struct wxResourceBitListStruct -{ - wxChar *word; - long bits; -}; - -static wxResourceBitListStruct wxResourceBitListTable[] = -{ - /* wxListBox */ - { _T("wxSINGLE"), wxLB_SINGLE }, - { _T("wxMULTIPLE"), wxLB_MULTIPLE }, - { _T("wxEXTENDED"), wxLB_EXTENDED }, - { _T("wxLB_SINGLE"), wxLB_SINGLE }, - { _T("wxLB_MULTIPLE"), wxLB_MULTIPLE }, - { _T("wxLB_EXTENDED"), wxLB_EXTENDED }, - { _T("wxLB_NEEDED_SB"), wxLB_NEEDED_SB }, - { _T("wxLB_ALWAYS_SB"), wxLB_ALWAYS_SB }, - { _T("wxLB_SORT"), wxLB_SORT }, - { _T("wxLB_OWNERDRAW"), wxLB_OWNERDRAW }, - { _T("wxLB_HSCROLL"), wxLB_HSCROLL }, - - /* wxComboxBox */ - { _T("wxCB_SIMPLE"), wxCB_SIMPLE }, - { _T("wxCB_DROPDOWN"), wxCB_DROPDOWN }, - { _T("wxCB_READONLY"), wxCB_READONLY }, - { _T("wxCB_SORT"), wxCB_SORT }, - - /* wxGauge */ - { _T("wxGA_PROGRESSBAR"), wxGA_PROGRESSBAR }, - { _T("wxGA_HORIZONTAL"), wxGA_HORIZONTAL }, - { _T("wxGA_VERTICAL"), wxGA_VERTICAL }, - - /* wxTextCtrl */ - { _T("wxPASSWORD"), wxPASSWORD}, - { _T("wxPROCESS_ENTER"), wxPROCESS_ENTER}, - { _T("wxTE_PASSWORD"), wxTE_PASSWORD}, - { _T("wxTE_READONLY"), wxTE_READONLY}, - { _T("wxTE_PROCESS_ENTER"), wxTE_PROCESS_ENTER}, - { _T("wxTE_MULTILINE"), wxTE_MULTILINE}, - - /* wxRadioBox/wxRadioButton */ - { _T("wxRB_GROUP"), wxRB_GROUP }, - { _T("wxRA_SPECIFY_COLS"), wxRA_SPECIFY_COLS }, - { _T("wxRA_SPECIFY_ROWS"), wxRA_SPECIFY_ROWS }, - { _T("wxRA_HORIZONTAL"), wxRA_HORIZONTAL }, - { _T("wxRA_VERTICAL"), wxRA_VERTICAL }, - - /* wxSlider */ - { _T("wxSL_HORIZONTAL"), wxSL_HORIZONTAL }, - { _T("wxSL_VERTICAL"), wxSL_VERTICAL }, - { _T("wxSL_AUTOTICKS"), wxSL_AUTOTICKS }, - { _T("wxSL_LABELS"), wxSL_LABELS }, - { _T("wxSL_LEFT"), wxSL_LEFT }, - { _T("wxSL_TOP"), wxSL_TOP }, - { _T("wxSL_RIGHT"), wxSL_RIGHT }, - { _T("wxSL_BOTTOM"), wxSL_BOTTOM }, - { _T("wxSL_BOTH"), wxSL_BOTH }, - { _T("wxSL_SELRANGE"), wxSL_SELRANGE }, - - /* wxScrollBar */ - { _T("wxSB_HORIZONTAL"), wxSB_HORIZONTAL }, - { _T("wxSB_VERTICAL"), wxSB_VERTICAL }, - - /* wxButton */ - { _T("wxBU_AUTODRAW"), wxBU_AUTODRAW }, - { _T("wxBU_NOAUTODRAW"), wxBU_NOAUTODRAW }, - - /* wxTreeCtrl */ - { _T("wxTR_HAS_BUTTONS"), wxTR_HAS_BUTTONS }, - { _T("wxTR_EDIT_LABELS"), wxTR_EDIT_LABELS }, - { _T("wxTR_LINES_AT_ROOT"), wxTR_LINES_AT_ROOT }, - - /* wxListCtrl */ - { _T("wxLC_ICON"), wxLC_ICON }, - { _T("wxLC_SMALL_ICON"), wxLC_SMALL_ICON }, - { _T("wxLC_LIST"), wxLC_LIST }, - { _T("wxLC_REPORT"), wxLC_REPORT }, - { _T("wxLC_ALIGN_TOP"), wxLC_ALIGN_TOP }, - { _T("wxLC_ALIGN_LEFT"), wxLC_ALIGN_LEFT }, - { _T("wxLC_AUTOARRANGE"), wxLC_AUTOARRANGE }, - { _T("wxLC_USER_TEXT"), wxLC_USER_TEXT }, - { _T("wxLC_EDIT_LABELS"), wxLC_EDIT_LABELS }, - { _T("wxLC_NO_HEADER"), wxLC_NO_HEADER }, - { _T("wxLC_NO_SORT_HEADER"), wxLC_NO_SORT_HEADER }, - { _T("wxLC_SINGLE_SEL"), wxLC_SINGLE_SEL }, - { _T("wxLC_SORT_ASCENDING"), wxLC_SORT_ASCENDING }, - { _T("wxLC_SORT_DESCENDING"), wxLC_SORT_DESCENDING }, - - /* wxSpinButton */ - { _T("wxSP_VERTICAL"), wxSP_VERTICAL}, - { _T("wxSP_HORIZONTAL"), wxSP_HORIZONTAL}, - { _T("wxSP_ARROW_KEYS"), wxSP_ARROW_KEYS}, - { _T("wxSP_WRAP"), wxSP_WRAP}, - - /* wxSplitterWnd */ - { _T("wxSP_NOBORDER"), wxSP_NOBORDER}, - { _T("wxSP_3D"), wxSP_3D}, - { _T("wxSP_BORDER"), wxSP_BORDER}, - - /* wxTabCtrl */ - { _T("wxTC_MULTILINE"), wxTC_MULTILINE}, - { _T("wxTC_RIGHTJUSTIFY"), wxTC_RIGHTJUSTIFY}, - { _T("wxTC_FIXEDWIDTH"), wxTC_FIXEDWIDTH}, - { _T("wxTC_OWNERDRAW"), wxTC_OWNERDRAW}, - - /* wxStatusBar95 */ - { _T("wxST_SIZEGRIP"), wxST_SIZEGRIP}, - - /* wxControl */ - { _T("wxFIXED_LENGTH"), wxFIXED_LENGTH}, - { _T("wxALIGN_LEFT"), wxALIGN_LEFT}, - { _T("wxALIGN_CENTER"), wxALIGN_CENTER}, - { _T("wxALIGN_CENTRE"), wxALIGN_CENTRE}, - { _T("wxALIGN_RIGHT"), wxALIGN_RIGHT}, - { _T("wxCOLOURED"), wxCOLOURED}, - - /* wxToolBar */ - { _T("wxTB_3DBUTTONS"), wxTB_3DBUTTONS}, - { _T("wxTB_HORIZONTAL"), wxTB_HORIZONTAL}, - { _T("wxTB_VERTICAL"), wxTB_VERTICAL}, - { _T("wxTB_FLAT"), wxTB_FLAT}, - - /* wxDialog */ - { _T("wxDIALOG_MODAL"), wxDIALOG_MODAL }, - - /* Generic */ - { _T("wxVSCROLL"), wxVSCROLL }, - { _T("wxHSCROLL"), wxHSCROLL }, - { _T("wxCAPTION"), wxCAPTION }, - { _T("wxSTAY_ON_TOP"), wxSTAY_ON_TOP}, - { _T("wxICONIZE"), wxICONIZE}, - { _T("wxMINIMIZE"), wxICONIZE}, - { _T("wxMAXIMIZE"), wxMAXIMIZE}, - { _T("wxSDI"), 0}, - { _T("wxMDI_PARENT"), 0}, - { _T("wxMDI_CHILD"), 0}, - { _T("wxTHICK_FRAME"), wxTHICK_FRAME}, - { _T("wxRESIZE_BORDER"), wxRESIZE_BORDER}, - { _T("wxSYSTEM_MENU"), wxSYSTEM_MENU}, - { _T("wxMINIMIZE_BOX"), wxMINIMIZE_BOX}, - { _T("wxMAXIMIZE_BOX"), wxMAXIMIZE_BOX}, - { _T("wxRESIZE_BOX"), wxRESIZE_BOX}, - { _T("wxDEFAULT_FRAME_STYLE"), wxDEFAULT_FRAME_STYLE}, - { _T("wxDEFAULT_FRAME"), wxDEFAULT_FRAME_STYLE}, - { _T("wxDEFAULT_DIALOG_STYLE"), wxDEFAULT_DIALOG_STYLE}, - { _T("wxBORDER"), wxBORDER}, - { _T("wxRETAINED"), wxRETAINED}, - { _T("wxNATIVE_IMPL"), 0}, - { _T("wxEXTENDED_IMPL"), 0}, - { _T("wxBACKINGSTORE"), wxBACKINGSTORE}, -// { _T("wxFLAT"), wxFLAT}, -// { _T("wxMOTIF_RESIZE"), wxMOTIF_RESIZE}, - { _T("wxFIXED_LENGTH"), 0}, - { _T("wxDOUBLE_BORDER"), wxDOUBLE_BORDER}, - { _T("wxSUNKEN_BORDER"), wxSUNKEN_BORDER}, - { _T("wxRAISED_BORDER"), wxRAISED_BORDER}, - { _T("wxSIMPLE_BORDER"), wxSIMPLE_BORDER}, - { _T("wxSTATIC_BORDER"), wxSTATIC_BORDER}, - { _T("wxTRANSPARENT_WINDOW"), wxTRANSPARENT_WINDOW}, - { _T("wxNO_BORDER"), wxNO_BORDER}, - { _T("wxCLIP_CHILDREN"), wxCLIP_CHILDREN}, - - { _T("wxTINY_CAPTION_HORIZ"), wxTINY_CAPTION_HORIZ}, - { _T("wxTINY_CAPTION_VERT"), wxTINY_CAPTION_VERT}, - - // Text font families - { _T("wxDEFAULT"), wxDEFAULT}, - { _T("wxDECORATIVE"), wxDECORATIVE}, - { _T("wxROMAN"), wxROMAN}, - { _T("wxSCRIPT"), wxSCRIPT}, - { _T("wxSWISS"), wxSWISS}, - { _T("wxMODERN"), wxMODERN}, - { _T("wxTELETYPE"), wxTELETYPE}, - { _T("wxVARIABLE"), wxVARIABLE}, - { _T("wxFIXED"), wxFIXED}, - { _T("wxNORMAL"), wxNORMAL}, - { _T("wxLIGHT"), wxLIGHT}, - { _T("wxBOLD"), wxBOLD}, - { _T("wxITALIC"), wxITALIC}, - { _T("wxSLANT"), wxSLANT}, - { _T("wxSOLID"), wxSOLID}, - { _T("wxDOT"), wxDOT}, - { _T("wxLONG_DASH"), wxLONG_DASH}, - { _T("wxSHORT_DASH"), wxSHORT_DASH}, - { _T("wxDOT_DASH"), wxDOT_DASH}, - { _T("wxUSER_DASH"), wxUSER_DASH}, - { _T("wxTRANSPARENT"), wxTRANSPARENT}, - { _T("wxSTIPPLE"), wxSTIPPLE}, - { _T("wxBDIAGONAL_HATCH"), wxBDIAGONAL_HATCH}, - { _T("wxCROSSDIAG_HATCH"), wxCROSSDIAG_HATCH}, - { _T("wxFDIAGONAL_HATCH"), wxFDIAGONAL_HATCH}, - { _T("wxCROSS_HATCH"), wxCROSS_HATCH}, - { _T("wxHORIZONTAL_HATCH"), wxHORIZONTAL_HATCH}, - { _T("wxVERTICAL_HATCH"), wxVERTICAL_HATCH}, - { _T("wxJOIN_BEVEL"), wxJOIN_BEVEL}, - { _T("wxJOIN_MITER"), wxJOIN_MITER}, - { _T("wxJOIN_ROUND"), wxJOIN_ROUND}, - { _T("wxCAP_ROUND"), wxCAP_ROUND}, - { _T("wxCAP_PROJECTING"), wxCAP_PROJECTING}, - { _T("wxCAP_BUTT"), wxCAP_BUTT}, - - // Logical ops - { _T("wxCLEAR"), wxCLEAR}, - { _T("wxXOR"), wxXOR}, - { _T("wxINVERT"), wxINVERT}, - { _T("wxOR_REVERSE"), wxOR_REVERSE}, - { _T("wxAND_REVERSE"), wxAND_REVERSE}, - { _T("wxCOPY"), wxCOPY}, - { _T("wxAND"), wxAND}, - { _T("wxAND_INVERT"), wxAND_INVERT}, - { _T("wxNO_OP"), wxNO_OP}, - { _T("wxNOR"), wxNOR}, - { _T("wxEQUIV"), wxEQUIV}, - { _T("wxSRC_INVERT"), wxSRC_INVERT}, - { _T("wxOR_INVERT"), wxOR_INVERT}, - { _T("wxNAND"), wxNAND}, - { _T("wxOR"), wxOR}, - { _T("wxSET"), wxSET}, - - { _T("wxFLOOD_SURFACE"), wxFLOOD_SURFACE}, - { _T("wxFLOOD_BORDER"), wxFLOOD_BORDER}, - { _T("wxODDEVEN_RULE"), wxODDEVEN_RULE}, - { _T("wxWINDING_RULE"), wxWINDING_RULE}, - { _T("wxHORIZONTAL"), wxHORIZONTAL}, - { _T("wxVERTICAL"), wxVERTICAL}, - { _T("wxBOTH"), wxBOTH}, - { _T("wxCENTER_FRAME"), wxCENTER_FRAME}, - { _T("wxOK"), wxOK}, - { _T("wxYES_NO"), wxYES_NO}, - { _T("wxCANCEL"), wxCANCEL}, - { _T("wxYES"), wxYES}, - { _T("wxNO"), wxNO}, - { _T("wxICON_EXCLAMATION"), wxICON_EXCLAMATION}, - { _T("wxICON_HAND"), wxICON_HAND}, - { _T("wxICON_QUESTION"), wxICON_QUESTION}, - { _T("wxICON_INFORMATION"), wxICON_INFORMATION}, - { _T("wxICON_STOP"), wxICON_STOP}, - { _T("wxICON_ASTERISK"), wxICON_ASTERISK}, - { _T("wxICON_MASK"), wxICON_MASK}, - { _T("wxCENTRE"), wxCENTRE}, - { _T("wxCENTER"), wxCENTRE}, - { _T("wxUSER_COLOURS"), wxUSER_COLOURS}, - { _T("wxVERTICAL_LABEL"), 0}, - { _T("wxHORIZONTAL_LABEL"), 0}, - - // Bitmap types (not strictly styles) - { _T("wxBITMAP_TYPE_XPM"), wxBITMAP_TYPE_XPM}, - { _T("wxBITMAP_TYPE_XBM"), wxBITMAP_TYPE_XBM}, - { _T("wxBITMAP_TYPE_BMP"), wxBITMAP_TYPE_BMP}, - { _T("wxBITMAP_TYPE_RESOURCE"), wxBITMAP_TYPE_BMP_RESOURCE}, - { _T("wxBITMAP_TYPE_BMP_RESOURCE"), wxBITMAP_TYPE_BMP_RESOURCE}, - { _T("wxBITMAP_TYPE_GIF"), wxBITMAP_TYPE_GIF}, - { _T("wxBITMAP_TYPE_TIF"), wxBITMAP_TYPE_TIF}, - { _T("wxBITMAP_TYPE_ICO"), wxBITMAP_TYPE_ICO}, - { _T("wxBITMAP_TYPE_ICO_RESOURCE"), wxBITMAP_TYPE_ICO_RESOURCE}, - { _T("wxBITMAP_TYPE_CUR"), wxBITMAP_TYPE_CUR}, - { _T("wxBITMAP_TYPE_CUR_RESOURCE"), wxBITMAP_TYPE_CUR_RESOURCE}, - { _T("wxBITMAP_TYPE_XBM_DATA"), wxBITMAP_TYPE_XBM_DATA}, - { _T("wxBITMAP_TYPE_XPM_DATA"), wxBITMAP_TYPE_XPM_DATA}, - { _T("wxBITMAP_TYPE_ANY"), wxBITMAP_TYPE_ANY} -}; - -static int wxResourceBitListCount = (sizeof(wxResourceBitListTable)/sizeof(wxResourceBitListStruct)); - -long wxParseWindowStyle(const wxString& bitListString) -{ - int i = 0; - wxChar *word; - long bitList = 0; - while ((word = wxResourceParseWord(WXSTRINGCAST bitListString, &i))) - { - bool found = FALSE; - int j; - for (j = 0; j < wxResourceBitListCount; j++) - if (wxStrcmp(wxResourceBitListTable[j].word, word) == 0) - { - bitList |= wxResourceBitListTable[j].bits; - found = TRUE; - break; - } - if (!found) - { - wxLogWarning(_("Unrecognized style %s whilst parsing resource."), word); - return 0; - } - } - return bitList; -} - -/* - * Load a bitmap from a wxWindows resource, choosing an optimum - * depth and appropriate type. - */ - -wxBitmap wxResourceCreateBitmap(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *item = table->FindResource(resource); - if (item) - { - if ((item->GetType() == _T("")) || (item->GetType() != _T("wxBitmap"))) - { - wxLogWarning(_("%s not a bitmap resource specification."), (const wxChar*) resource); - return wxNullBitmap; - } - int thisDepth = wxDisplayDepth(); - long thisNoColours = (long)pow(2.0, (double)thisDepth); - - wxItemResource *optResource = (wxItemResource *) NULL; - - // Try to find optimum bitmap for this platform/colour depth - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - int platform = (int)child->GetValue2(); - int noColours = (int)child->GetValue3(); -/* - char *name = child->GetName(); - int bitmapType = (int)child->GetValue1(); - int xRes = child->GetWidth(); - int yRes = child->GetHeight(); -*/ - - switch (platform) - { - case RESOURCE_PLATFORM_ANY: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours. - // If noColours is zero (unspecified), then assume this - // is the right one. - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#ifdef __WXMSW__ - case RESOURCE_PLATFORM_WINDOWS: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours > 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef __WXGTK__ - case RESOURCE_PLATFORM_X: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef wx_max - case RESOURCE_PLATFORM_MAC: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif - default: - break; - } - node = node->Next(); - } - // If no matching resource, fail. - if (!optResource) - return wxNullBitmap; - - wxString name = optResource->GetName(); - int bitmapType = (int)optResource->GetValue1(); - switch (bitmapType) - { - case wxBITMAP_TYPE_XBM_DATA: - { -#ifdef __WXGTK__ - wxItemResource *item = table->FindResource(name); - if (!item) - { - wxLogWarning(_("Failed to find XBM resource %s.\n" - "Forgot to use wxResourceLoadBitmapData?"), (const wxChar*) name); - return wxNullBitmap; - } - return wxBitmap(item->GetValue1(), (int)item->GetValue2(), (int)item->GetValue3()) ; -#else - wxLogWarning(_("No XBM facility available!")); -#endif - break; - } - case wxBITMAP_TYPE_XPM_DATA: - { -#if (defined(__WXGTK__)) || (defined(__WXMSW__) && wxUSE_XPM_IN_MSW) - wxItemResource *item = table->FindResource(name); - if (!item) - { - wxLogWarning(_("Failed to find XPM resource %s.\n" - "Forgot to use wxResourceLoadBitmapData?"), (const wxChar*) name); - return wxNullBitmap; - } - return wxBitmap((char **)item->GetValue1()); -#else - wxLogWarning(_("No XPM facility available!")); -#endif - break; - } - default: - { - return wxBitmap(name, bitmapType); - break; - } - } - return wxNullBitmap; - } - else - { - wxLogWarning(_("Bitmap resource specification %s not found."), (const wxChar*) resource); - return wxNullBitmap; - } -} - -/* - * Load an icon from a wxWindows resource, choosing an optimum - * depth and appropriate type. - */ - -wxIcon wxResourceCreateIcon(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *item = table->FindResource(resource); - if (item) - { - if ((item->GetType() == _T("")) || wxStrcmp(item->GetType(), _T("wxIcon")) != 0) - { - wxLogWarning(_("%s not an icon resource specification."), (const wxChar*) resource); - return wxNullIcon; - } - int thisDepth = wxDisplayDepth(); - long thisNoColours = (long)pow(2.0, (double)thisDepth); - - wxItemResource *optResource = (wxItemResource *) NULL; - - // Try to find optimum icon for this platform/colour depth - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - int platform = (int)child->GetValue2(); - int noColours = (int)child->GetValue3(); -/* - char *name = child->GetName(); - int bitmapType = (int)child->GetValue1(); - int xRes = child->GetWidth(); - int yRes = child->GetHeight(); -*/ - - switch (platform) - { - case RESOURCE_PLATFORM_ANY: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours. - // If noColours is zero (unspecified), then assume this - // is the right one. - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#ifdef __WXMSW__ - case RESOURCE_PLATFORM_WINDOWS: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours > 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef __WXGTK__ - case RESOURCE_PLATFORM_X: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif -#ifdef wx_max - case RESOURCE_PLATFORM_MAC: - { - if (!optResource && ((noColours == 0) || (noColours <= thisNoColours))) - optResource = child; - else - { - // Maximise the number of colours - if ((noColours == 0) || ((noColours <= thisNoColours) && (noColours > optResource->GetValue3()))) - optResource = child; - } - break; - } -#endif - default: - break; - } - node = node->Next(); - } - // If no matching resource, fail. - if (!optResource) - return wxNullIcon; - - wxString name = optResource->GetName(); - int bitmapType = (int)optResource->GetValue1(); - switch (bitmapType) - { - case wxBITMAP_TYPE_XBM_DATA: - { -#ifdef __WXGTK__ - wxItemResource *item = table->FindResource(name); - if (!item) - { - wxLogWarning(_("Failed to find XBM resource %s.\n" - "Forgot to use wxResourceLoadIconData?"), (const wxChar*) name); - return wxNullIcon; - } - return wxIcon((const char **)item->GetValue1(), (int)item->GetValue2(), (int)item->GetValue3()); -#else - wxLogWarning(_("No XBM facility available!")); -#endif - break; - } - case wxBITMAP_TYPE_XPM_DATA: - { - // *** XPM ICON NOT YET IMPLEMENTED IN WXWINDOWS *** -/* -#if (defined(__WXGTK__)) || (defined(__WXMSW__) && wxUSE_XPM_IN_MSW) - wxItemResource *item = table->FindResource(name); - if (!item) - { - char buf[400]; - sprintf(buf, _("Failed to find XPM resource %s.\nForgot to use wxResourceLoadIconData?"), name); - wxLogWarning(buf); - return NULL; - } - return wxIcon((char **)item->GetValue1()); -#else - wxLogWarning(_("No XPM facility available!")); -#endif -*/ - wxLogWarning(_("No XPM icon facility available!")); - break; - } - default: - { -#ifdef __WXGTK__ - wxLogWarning(_("Icon resource specification %s not found."), (const wxChar*) resource); -#else - return wxIcon(name, bitmapType); -#endif - break; - } - } - return wxNullIcon; - } - else - { - wxLogWarning(_("Icon resource specification %s not found."), (const wxChar*) resource); - return wxNullIcon; - } -} - -wxMenu *wxResourceCreateMenu(wxItemResource *item) -{ - wxMenu *menu = new wxMenu; - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - if ((child->GetType() != _T("")) && (child->GetType() == _T("wxMenuSeparator"))) - menu->AppendSeparator(); - else if (child->GetChildren().Number() > 0) - { - wxMenu *subMenu = wxResourceCreateMenu(child); - if (subMenu) - menu->Append((int)child->GetValue1(), child->GetTitle(), subMenu, child->GetValue4()); - } - else - { - menu->Append((int)child->GetValue1(), child->GetTitle(), child->GetValue4(), (child->GetValue2() != 0)); - } - node = node->Next(); - } - return menu; -} - -wxMenuBar *wxResourceCreateMenuBar(const wxString& resource, wxResourceTable *table, wxMenuBar *menuBar) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *menuResource = table->FindResource(resource); - if (menuResource && (menuResource->GetType() != _T("")) && (menuResource->GetType() == _T("wxMenu"))) - { - if (!menuBar) - menuBar = new wxMenuBar; - wxNode *node = menuResource->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - wxMenu *menu = wxResourceCreateMenu(child); - if (menu) - menuBar->Append(menu, child->GetTitle()); - node = node->Next(); - } - return menuBar; - } - return (wxMenuBar *) NULL; -} - -wxMenu *wxResourceCreateMenu(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *menuResource = table->FindResource(resource); - if (menuResource && (menuResource->GetType() != _T("")) && (menuResource->GetType() == _T("wxMenu"))) -// if (menuResource && (menuResource->GetType() == wxTYPE_MENU)) - return wxResourceCreateMenu(menuResource); - return (wxMenu *) NULL; -} - -// Global equivalents (so don't have to refer to default table explicitly) -bool wxResourceParseData(const wxString& resource, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->ParseResourceData(resource); -} - -bool wxResourceParseFile(const wxString& filename, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->ParseResourceFile(filename); -} - -// Register XBM/XPM data -bool wxResourceRegisterBitmapData(const wxString& name, char bits[], int width, int height, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->RegisterResourceBitmapData(name, bits, width, height); -} - -bool wxResourceRegisterBitmapData(const wxString& name, char **data, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return table->RegisterResourceBitmapData(name, data); -} - -void wxResourceClear(wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - table->ClearTable(); -} - -/* - * Identifiers - */ - -bool wxResourceAddIdentifier(const wxString& name, int value, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - table->identifiers.Put(name, (wxObject *)value); - return TRUE; -} - -int wxResourceGetIdentifier(const wxString& name, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - return (int)table->identifiers.Get(name); -} - -/* - * Parse #include file for #defines (only) - */ - -bool wxResourceParseIncludeFile(const wxString& f, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - FILE *fd = fopen(f.fn_str(), "r"); - if (!fd) - { - return FALSE; - } - while (wxGetResourceToken(fd)) - { - if (strcmp(wxResourceBuffer, "#define") == 0) - { - wxGetResourceToken(fd); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - wxGetResourceToken(fd); - wxChar *value = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - if (wxIsdigit(value[0])) - { - int val = (int)wxAtol(value); - wxResourceAddIdentifier(name, val, table); - } - delete[] name; - delete[] value; - } - } - fclose(fd); - return TRUE; -} - -/* - * Reading strings as if they were .wxr files - */ - -static int getc_string(char *s) -{ - int ch = s[wxResourceStringPtr]; - if (ch == 0) - return EOF; - else - { - wxResourceStringPtr ++; - return ch; - } -} - -static int ungetc_string() -{ - wxResourceStringPtr --; - return 0; -} - -bool wxEatWhiteSpaceString(char *s) -{ - int ch = 0; - - while ((ch = getc_string(s)) != EOF) - { - switch (ch) - { - case ' ': - case 0x0a: - case 0x0d: - case 0x09: - break; - case '/': - { - int prev_ch = ch; - ch = getc_string(s); - if (ch == EOF) - { - ungetc_string(); - return TRUE; - } - - if (ch == '*') - { - // Eat C comment - prev_ch = 0; - while ((ch = getc_string(s)) != EOF) - { - if (ch == '/' && prev_ch == '*') - break; - prev_ch = ch; - } - } - else - { - ungetc_string(); - ungetc_string(); - return TRUE; - } - } - break; - default: - ungetc_string(); - return TRUE; - - } - } - return FALSE; -} - -bool wxGetResourceTokenString(char *s) -{ - if (!wxResourceBuffer) - wxReallocateResourceBuffer(); - wxResourceBuffer[0] = 0; - wxEatWhiteSpaceString(s); - - int ch = getc_string(s); - if (ch == '"') - { - // Get string - wxResourceBufferCount = 0; - ch = getc_string(s); - while (ch != '"') - { - int actualCh = ch; - if (ch == EOF) - { - wxResourceBuffer[wxResourceBufferCount] = 0; - return FALSE; - } - // Escaped characters - else if (ch == '\\') - { - int newCh = getc_string(s); - if (newCh == '"') - actualCh = '"'; - else if (newCh == 10) - actualCh = 10; - else - { - ungetc_string(); - } - } - - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)actualCh; - wxResourceBufferCount ++; - ch = getc_string(s); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - } - else - { - wxResourceBufferCount = 0; - // Any other token - while (ch != ' ' && ch != EOF && ch != ' ' && ch != 13 && ch != 9 && ch != 10) - { - if (wxResourceBufferCount >= wxResourceBufferSize-1) - wxReallocateResourceBuffer(); - wxResourceBuffer[wxResourceBufferCount] = (char)ch; - wxResourceBufferCount ++; - - ch = getc_string(s); - } - wxResourceBuffer[wxResourceBufferCount] = 0; - if (ch == EOF) - return FALSE; - } - return TRUE; -} - -/* - * Files are in form: - static char *name = "...."; - with possible comments. - */ - -bool wxResourceReadOneResourceString(char *s, wxExprDatabase& db, bool *eof, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - // static or #define - if (!wxGetResourceTokenString(s)) - { - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "#define") == 0) - { - wxGetResourceTokenString(s); - wxChar *name = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - wxGetResourceTokenString(s); - wxChar *value = copystring(wxConv_libc.cMB2WX(wxResourceBuffer)); - if (wxIsalpha(value[0])) - { - int val = (int)wxAtol(value); - wxResourceAddIdentifier(name, val, table); - } - else - { - wxLogWarning(_("#define %s must be an integer."), name); - delete[] name; - delete[] value; - return FALSE; - } - delete[] name; - delete[] value; - - return TRUE; - } -/* - else if (strcmp(wxResourceBuffer, "#include") == 0) - { - wxGetResourceTokenString(s); - char *name = copystring(wxResourceBuffer); - char *actualName = name; - if (name[0] == '"') - actualName = name + 1; - int len = strlen(name); - if ((len > 0) && (name[len-1] == '"')) - name[len-1] = 0; - if (!wxResourceParseIncludeFile(actualName, table)) - { - char buf[400]; - sprintf(buf, _("Could not find resource include file %s."), actualName); - wxLogWarning(buf); - } - delete[] name; - return TRUE; - } -*/ - else if (strcmp(wxResourceBuffer, "static") != 0) - { - wxChar buf[300]; - wxStrcpy(buf, _("Found ")); - wxStrncat(buf, wxConv_libc.cMB2WX(wxResourceBuffer), 30); - wxStrcat(buf, _(", expected static, #include or #define\nwhilst parsing resource.")); - wxLogWarning(buf); - return FALSE; - } - - // char - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "char") != 0) - { - wxLogWarning(_("Expected 'char' whilst parsing resource.")); - return FALSE; - } - - // *name - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (wxResourceBuffer[0] != '*') - { - wxLogWarning(_("Expected '*' whilst parsing resource.")); - return FALSE; - } - wxChar nameBuf[100]; - wxMB2WX(nameBuf, wxResourceBuffer+1, 99); - nameBuf[99] = 0; - - // = - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - - if (strcmp(wxResourceBuffer, "=") != 0) - { - wxLogWarning(_("Expected '=' whilst parsing resource.")); - return FALSE; - } - - // String - if (!wxGetResourceTokenString(s)) - { - wxLogWarning(_("Unexpected end of file whilst parsing resource.")); - *eof = TRUE; - return FALSE; - } - else - { - if (!db.ReadPrologFromString(wxResourceBuffer)) - { - wxLogWarning(_("%s: ill-formed resource file syntax."), nameBuf); - return FALSE; - } - } - // Semicolon - if (!wxGetResourceTokenString(s)) - { - *eof = TRUE; - } - return TRUE; -} - -bool wxResourceParseString(char *s, wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - if (!s) - return FALSE; - - // Turn backslashes into spaces - if (s) - { - int len = strlen(s); - int i; - for (i = 0; i < len; i++) - if (s[i] == 92 && s[i+1] == 13) - { - s[i] = ' '; - s[i+1] = ' '; - } - } - - wxExprDatabase db; - wxResourceStringPtr = 0; - - bool eof = FALSE; - while (wxResourceReadOneResourceString(s, db, &eof, table) && !eof) - { - // Loop - } - return wxResourceInterpretResources(*table, db); -} - -/* - * resource loading facility - */ - -bool wxWindowBase::LoadFromResource(wxWindow *parent, const wxString& resourceName, const wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - - wxItemResource *resource = table->FindResource((const wxChar *)resourceName); -// if (!resource || (resource->GetType() != wxTYPE_DIALOG_BOX)) - if (!resource || (resource->GetType() == _T("")) || - ! ((resource->GetType() == _T("wxDialog")) || (resource->GetType() == _T("wxPanel")))) - return FALSE; - - wxString title(resource->GetTitle()); - long theWindowStyle = resource->GetStyle(); - bool isModal = (resource->GetValue1() != 0); - int x = resource->GetX(); - int y = resource->GetY(); - int width = resource->GetWidth(); - int height = resource->GetHeight(); - wxString name = resource->GetName(); - - if (IsKindOf(CLASSINFO(wxDialog))) - { - wxDialog *dialogBox = (wxDialog *)this; - long modalStyle = isModal ? wxDIALOG_MODAL : 0; - if (!dialogBox->Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), theWindowStyle|modalStyle, name)) - return FALSE; - - // Only reset the client size if we know we're not going to do it again below. - if ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) == 0) - dialogBox->SetClientSize(width, height); - } - else if (IsKindOf(CLASSINFO(wxPanel))) - { - wxPanel* panel = (wxPanel *)this; - if (!panel->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name)) - return FALSE; - } - else - { - if (!((wxWindow *)this)->Create(parent, -1, wxPoint(x, y), wxSize(width, height), theWindowStyle, name)) - return FALSE; - } - - if ((resource->GetResourceStyle() & wxRESOURCE_USE_DEFAULTS) != 0) - { - // No need to do this since it's done in wxPanel or wxDialog constructor. - // SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - } - else - { - if (resource->GetFont().Ok()) - SetFont(resource->GetFont()); - if (resource->GetBackgroundColour().Ok()) - SetBackgroundColour(resource->GetBackgroundColour()); - } - - // Should have some kind of font at this point - if (!GetFont().Ok()) - SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - if (!GetBackgroundColour().Ok()) - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - - // Only when we've created the window and set the font can we set the correct size, - // if based on dialog units. - if ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0) - { - wxSize sz = ConvertDialogToPixels(wxSize(width, height)); - SetClientSize(sz.x, sz.y); - - wxPoint pt = ConvertDialogToPixels(wxPoint(x, y)); - Move(pt.x, pt.y); - } - - // Now create children - wxNode *node = resource->GetChildren().First(); - while (node) - { - wxItemResource *childResource = (wxItemResource *)node->Data(); - - (void) CreateItem(childResource, resource, table); - - node = node->Next(); - } - return TRUE; -} - -wxControl *wxWindowBase::CreateItem(const wxItemResource *resource, const wxItemResource* parentResource, const wxResourceTable *table) -{ - if (!table) - table = wxDefaultResourceTable; - return table->CreateItem((wxWindow *)this, resource, parentResource); -} - -#ifdef __VISUALC__ - #pragma warning(default:4706) // assignment within conditional expression -#endif // VC++ - -#endif - // BC++/Win16 - -#endif // wxUSE_WX_RESOURCES diff --git a/src/common/sckaddr.cpp b/src/common/sckaddr.cpp deleted file mode 100644 index 1656a2c8b7..0000000000 --- a/src/common/sckaddr.cpp +++ /dev/null @@ -1,425 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckaddr.cpp -// Purpose: Network address manager -// Author: Guilhem Lavaux -// Modified by: -// Created: 26/04/97 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "sckaddr.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#endif - -#include -#include -#include - -#if !defined(__MWERKS__) && !defined(__SALFORDC__) -#include -#endif - -#include "wx/defs.h" -#include "wx/object.h" - -#if defined(__WXMAC__) -#include "/wx/mac/macsock.h" -#endif - -#if defined(__WINDOWS__) -#include -#endif // __WINDOWS__ - -#if defined(__UNIX__) -#ifdef VMS -#include -#include -#else -#include -#include -#include -#include -#endif -#include -#include - -#ifdef __SUN__ -extern "C" -{ - struct hostent *gethostbyname(const char *name); - int gethostname(char *name, int namelen); -}; -#endif - -#endif // __UNIX__ - -#include "wx/sckaddr.h" - -#define CHECK_ADDRTYPE(var, type) - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxSockAddress, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxIPV4address, wxSockAddress) -#ifdef ENABLE_IPV6 -IMPLEMENT_DYNAMIC_CLASS(wxIPV6address, wxSockAddress) -#endif -#ifdef __UNIX__ -IMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress) -#endif -#endif - -wxIPV4address::wxIPV4address() -{ - m_addr = new sockaddr_in; - Clear(); -} - -wxIPV4address::~wxIPV4address() -{ -} - -int wxIPV4address::SockAddrLen() -{ - return sizeof(*m_addr); -} - -int wxIPV4address::GetFamily() -{ - return AF_INET; -} - -void wxIPV4address::Clear() -{ - memset(m_addr, 0, sizeof(*m_addr)); - m_addr->sin_family = AF_INET; - m_addr->sin_addr.s_addr = INADDR_ANY; -} - -/* -const wxSockAddress& wxIPV4address::operator =(const wxSockAddress& addr) -{ - wxIPV4address *ip_addr = (wxIPV4address *)&addr; - CHECK_ADDRTYPE(addr, wxIPV4address); - m_addr = ip_addr->m_addr; - return *this; -} -*/ - -bool wxIPV4address::Hostname(const wxString& name) -{ - struct hostent *theHostent; - struct in_addr *addr; - - if (name.IsNull()) - return FALSE; - - if (!name.IsNumber()) { - if ((theHostent = gethostbyname(name.fn_str())) == 0) { - return FALSE; - } - } else { -#ifdef __WXMAC__ - long len_addr = inet_addr(name.fn_str()).s_addr ; -#else - long len_addr = inet_addr(name.fn_str()); -#endif - if (len_addr == -1) - return FALSE; - m_addr->sin_addr.s_addr = len_addr; - return TRUE; - } - - addr = (struct in_addr *) *(theHostent->h_addr_list); - - m_addr->sin_addr.s_addr = addr[0].s_addr; - return TRUE; -} - -bool wxIPV4address::Hostname(unsigned long addr) -{ - m_addr->sin_addr.s_addr = htonl(addr); - return TRUE; -} - -bool wxIPV4address::Service(const wxString& name) -{ - struct servent *theServent; - - if (name.IsNull()) - return FALSE; - - if (!name.IsNumber()) { - if ((theServent = getservbyname(name.fn_str(), "tcp")) == 0) - return FALSE; - } else { - if ((theServent = getservbyport(wxAtoi(name), "tcp")) == 0) { - m_addr->sin_port = htons(wxAtoi(name)); - return TRUE; - } - } - - m_addr->sin_port = theServent->s_port; - return TRUE; -} - -bool wxIPV4address::Service(unsigned short port) -{ - m_addr->sin_port = htons(port); - return TRUE; -} - -bool wxIPV4address::LocalHost() -{ - static char buf[256]; - - if (gethostname(buf, sizeof(buf)) < 0) - return Hostname("localhost"); - else - return Hostname(buf); -} - -wxString wxIPV4address::Hostname() -{ - struct hostent *h_ent; - - h_ent = gethostbyaddr((char *)&(m_addr->sin_addr), sizeof(m_addr->sin_addr), - GetFamily()); - - if (!h_ent) - return wxString(""); - else - return wxString(h_ent->h_name); -} - -unsigned short wxIPV4address::Service() -{ - return ntohs(m_addr->sin_port); -} - -void wxIPV4address::Build(struct sockaddr *&addr, size_t& len) -{ - addr = (struct sockaddr *)m_addr; - len = sizeof(*m_addr); -} - -void wxIPV4address::Disassemble(struct sockaddr *addr, size_t len) -{ - if (len != sizeof(*m_addr)) - return; - *m_addr = *(struct sockaddr_in *)addr; -} - -#ifdef IPV6_ENABLE - -wxIPV6address::wxIPV6address() -{ - m_addr = new sockaddr_in6; - Clear(); -} - -wxIPV6address::~wxIPV6address() -{ -} - -int wxIPV6address::SockAddrLen() -{ - return sizeof(*m_addr); -} - -int wxIPV6address::GetFamily() -{ - return AF_INET6; -} - -void wxIPV6address::Clear() -{ - memset(m_addr, 0, sizeof(*m_addr)); - m_addr->sin6_family = AF_INET6; - m_addr->sin6_addr.s_addr = INADDR_ANY; -} - -/* -const wxSockAddress& wxIPV6address::operator =(const wxSockAddress& addr) -{ - wxIPV6address *ip_addr = (wxIPV6address *)&addr; - - CHECK_ADDRTYPE(addr, wxIPV6address); - m_addr = ip_addr->m_addr; - return *this; -} -*/ - -bool wxIPV6address::Hostname(const wxString& name) -{ - struct hostent *theHostent; - struct in_addr *addr; - - if (name.IsNull()) - return FALSE; - - if (!name.IsNumber()) { - hostent = gethostbyname2((char*) name, AF_INET6); - if (!theHostent) - return FALSE; - } else { - // Don't how to do - return FALSE; - } - - addr = (struct in6_addr *) *(theHostent->h_addr_list); - - m_addr->sin6_addr.s6_addr = addr[0].s6_addr; - return TRUE; -} - -bool wxIPV6address::Hostname(unsigned char addr[16]) -{ - m_addr->sin6_addr.s6_addr = addr; - return TRUE; -} - -bool wxIPV6address::Service(const char *name) -{ - struct servent *theServent; - - if (!name || !strlen(name)) - return FALSE; - - if (!isdigit(*name)) { - if ((theServent = getservbyname((char*) name, "tcp")) == 0) - return FALSE; - } else { - if ((theServent = getservbyport(atoi(name), "tcp")) == 0) { - m_addr->sin_port = htons(atoi(name)); - return TRUE; - } - } - - m_addr->sin_port = theServent->s_port; - return TRUE; -} - -bool wxIPV6address::Service(unsigned short port) -{ - m_addr->sin_port = htons(port); - return TRUE; -} - -bool wxIPV6address::LocalHost() -{ - static char buf[256]; - - if (gethostname(buf, sizeof(buf)) < 0) - return Hostname("localhost"); - else - return Hostname(buf); -} - -const wxString& wxIPV6address::Hostname() -{ - struct hostent *h_ent; - - h_ent = gethostbyaddr((char *)&(m_addr->sin_addr), sizeof(m_addr->sin_addr), - GetFamily()); - return wxString(h_ent->h_name); -} - -unsigned short wxIPV6address::Service() -{ - return ntohs(m_addr->sin_port); -} - -void wxIPV6address::Build(struct sockaddr& *addr, size_t& len) -{ - len = sizeof(*m_addr); - addr = m_addr; -} - -void wxIPV6address::Disassemble(struct sockaddr& *addr, size_t len) -{ - if (len != sizeof(*m_addr)) - return; - *m_addr = *(struct sockaddr_in6 *)addr; -} - -#endif - -#ifdef __UNIX__ -#include - -wxUNIXaddress::wxUNIXaddress() -{ - m_addr = new sockaddr_un; - Clear(); -} - -wxUNIXaddress::~wxUNIXaddress() -{ -} - -int wxUNIXaddress::SockAddrLen() -{ - return sizeof(*m_addr); -} - -int wxUNIXaddress::GetFamily() -{ - return AF_UNIX; -} - -void wxUNIXaddress::Clear() -{ - memset(m_addr, 0, sizeof(m_addr)); - m_addr->sun_family = AF_UNIX; -} - -/* -const wxSockAddress& wxUNIXaddress::operator =(const wxSockAddress& addr) -{ - wxUNIXaddress *unx_addr = (wxUNIXaddress *)&addr; - CHECK_ADDRTYPE(addr, wxUNIXaddress); - m_addr = unx_addr->m_addr; - return *this; -} -*/ - -void wxUNIXaddress::Filename(const wxString& fname) -{ - sprintf(m_addr->sun_path, "%s", MBSTRINGCAST fname.mb_str()); -} - -wxString wxUNIXaddress::Filename() -{ - return wxString(m_addr->sun_path); -} - -void wxUNIXaddress::Build(struct sockaddr*& addr, size_t& len) -{ - addr = (struct sockaddr *)m_addr; - len = sizeof(*m_addr); -} - -void wxUNIXaddress::Disassemble(struct sockaddr *addr, size_t len) -{ - if (len != sizeof(*m_addr)) - return; - *m_addr = *(struct sockaddr_un *)addr; -} -#endif - -#endif - // wxUSE_SOCKETS diff --git a/src/common/sckfile.cpp b/src/common/sckfile.cpp deleted file mode 100644 index a4487f8df0..0000000000 --- a/src/common/sckfile.cpp +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckfile.cpp -// Purpose: File protocol -// Author: Guilhem Lavaux -// Modified by: -// Created: 20/07/97 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sckfile.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#endif - -#include -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol) -IMPLEMENT_PROTOCOL(wxFileProto, _T("file"), NULL, FALSE) -#endif - -wxFileProto::wxFileProto() - : wxProtocol() -{ -} - -wxFileProto::~wxFileProto() -{ -} - -wxInputStream *wxFileProto::GetInputStream(const wxString& path) -{ - return new wxFileInputStream(path); -} - -#endif - // wxUSE_SOCKETS diff --git a/src/common/sckint.cpp b/src/common/sckint.cpp deleted file mode 100644 index 8531c9b3a9..0000000000 --- a/src/common/sckint.cpp +++ /dev/null @@ -1,598 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: sckint.cpp -// Purpose: Socket internal classes -// Authors: Guilhem Lavaux -// Created: April 1999 -// Updated: -// Copyright: (C) 1999, 1998, 1997, Guilhem Lavaux -// RCS_ID: $Id$ -// License: see wxWindows license -/////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sckint.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#define WXSOCK_INTERNAL -#include -#include -#include -#include -#include - -#ifndef __WXSTUBS__ - -#include -#include -#include - -// ----------------------- -// System specific headers -// ----------------------- - -#ifdef __WXMAC__ -// in order to avoid problems with our c library and double definitions -#define close closesocket -#define ioctl ioctlsocket - -#include -#endif - -#if defined(__WINDOWS__) -#include -#endif // __WINDOWS__ - -#if defined(__UNIX__) - -#ifdef VMS -#include -#else -#include -#endif -#include - -#include -#include - -#ifdef sun -#include -#endif - -#endif // __UNIX__ - -#include -#include - -#ifdef __VISUALC__ -#include -#endif - -// Constants -#define READ_MASK wxSocketBase::REQ_READ | wxSocketBase::REQ_ACCEPT | wxSocketBase::REQ_LOST -#define WRITE_MASK wxSocketBase::REQ_WRITE | wxSocketBase::REQ_CONNECT - -// -------------------------------------------------------------- -// --------- SocketWaiter --------------------------------------- -// -------------------------------------------------------------- - -#if wxUSE_THREADS -SocketWaiter::SocketWaiter(wxSocketBase *socket, - wxSocketInternal *internal) - : wxThread(), - m_socket(socket), m_internal(internal), m_fd(internal->GetFD()) -{ -} - -SocketWaiter::~SocketWaiter() -{ -} - -void SocketWaiter::ProcessReadEvent() -{ - int ret; - char c; - - m_internal->AcquireFD(); - ret = recv(m_fd, &c, 1, MSG_PEEK); - m_internal->ReleaseFD(); - - // We are a server => emit a EVT_ACCEPT event. - if (ret == -1 && m_socket->GetType() == wxSocketBase::SOCK_SERVER) { - m_socket->OnRequest(wxSocketBase::EVT_ACCEPT); - return; - } - - // Else, no error => there is something to be read else - // we've lost the connection. - if (ret > 0) { - m_socket->OnRequest(wxSocketBase::EVT_READ); - } else { - m_socket->OnRequest(wxSocketBase::EVT_LOST); - m_internal->ReleaseData(); // In that case, we mustn't forget to unlock the mutex. - Exit(NULL); - } -} - -void SocketWaiter::ProcessWriteEvent() -{ - if (m_socket->IsConnected()) - m_socket->OnRequest(wxSocketBase::EVT_CONNECT); - else - m_socket->OnRequest(wxSocketBase::EVT_WRITE); -} - -void *SocketWaiter::Entry() -{ - struct timeval tv; - fd_set sockrd_set, sockwr_set; - wxSocketEvent event; - int ret; - - while (1) { - // We won't wait. - tv.tv_sec = 0; - tv.tv_usec = 0; - - FD_ZERO(&sockrd_set); - FD_ZERO(&sockwr_set); - - m_internal->AcquireData(); - - if ((m_socket->NeededReq() & READ_MASK) != 0) - FD_SET(m_fd, &sockrd_set); - if ((m_socket->NeededReq() & WRITE_MASK) != 0) - FD_SET(m_fd, &sockwr_set); - - m_internal->AcquireFD(); - ret = select(m_fd+1, &sockrd_set, &sockwr_set, NULL, &tv); - m_internal->ReleaseFD(); - - if (FD_ISSET(m_fd, &sockrd_set)) - ProcessReadEvent(); - - if (FD_ISSET(m_fd, &sockwr_set)) - ProcessWriteEvent(); - - m_internal->ReleaseData(); - -#if wxUSE_THREADS -#ifdef Yield -#undef Yield -#endif -#endif - - // We wait for 100 ms to prevent the CPU from burning. - wxUsleep(100); - - // Check whether we should exit. - if (TestDestroy()) - return NULL; - } - return NULL; -} - -// -------------------------------------------------------------- -// --------- SocketRequester ------------------------------------ -// -------------------------------------------------------------- - -SocketRequester::SocketRequester(wxSocketBase *socket, - wxSocketInternal *internal) - : -#if wxUSE_THREADS - wxThread(), -#endif - m_socket(socket), m_internal(internal), m_fd(internal->GetFD()) -{ -} - -SocketRequester::~SocketRequester() -{ -} - -bool SocketRequester::WaitFor(wxSocketBase::wxRequestNotify req, int millisec) -{ - int ret; - struct timeval tv; - fd_set sockrd_set, sockwr_set; - - // We won't wait. - tv.tv_sec = millisec / 1000; - tv.tv_usec = (millisec % 1000) * 1000; - - FD_ZERO(&sockrd_set); - FD_ZERO(&sockwr_set); - if ((req & READ_MASK) != 0) - FD_SET(m_fd, &sockrd_set); - if ((req & WRITE_MASK) != 0) - FD_SET(m_fd, &sockwr_set); - - m_internal->AcquireFD(); - ret = select(m_fd+1, &sockrd_set, &sockwr_set, NULL, &tv); - m_internal->ReleaseFD(); - - return (ret != 0); -} - -void SocketRequester::ProcessReadEvent(SockRequest *req) -{ - int ret; - size_t len; - - // We'll wait for the first byte, in case a "timeout event" occurs it returns // immediately - if (!WaitFor(wxSocketBase::REQ_READ, req->timeout)) { - m_internal->EndRequest(req); - return; - } - - m_internal->AcquireFD(); - ret = recv(m_fd, req->buffer, req->size, - (req->type == wxSocketBase::REQ_PEEK) ? MSG_PEEK : 0); - m_internal->ReleaseFD(); - - // An error occured, we exit. - if (ret < 0) { - req->error = errno; - m_internal->EndRequest(req); - return; - } - len = ret; - - // If the buffer isn't full (and we want it to be full), we don't unqueue it. - if ((len < req->size) && (m_socket->GetFlags() & wxSocketBase::WAITALL)) { - req->size -= len; - req->io_nbytes += len; - req->buffer += len; - - if (len == 0) - m_internal->EndRequest(req); - return; - } - // The End. - req->io_nbytes += len; - m_internal->EndRequest(req); -} - -void SocketRequester::ProcessWriteEvent(SockRequest *req) -{ - int ret; - size_t len; - - if (!WaitFor(wxSocketBase::REQ_WRITE, req->timeout)) { - m_internal->EndRequest(req); - return; - } - - m_internal->AcquireFD(); - ret = send(m_fd, req->buffer, req->size, 0); - m_internal->ReleaseFD(); - if (ret < 0) { - req->error = errno; - m_internal->EndRequest(req); - return; - } - len = ret; - if ((len < req->size) && ((m_socket->GetFlags() & wxSocketBase::WAITALL) != 0)) { - req->size -= len; - req->io_nbytes += len; - req->buffer += len; - return; - } - req->io_nbytes += len; - m_internal->EndRequest(req); -} - -void SocketRequester::ProcessWaitEvent(SockRequest *req) -{ - if (WaitFor(req->type, req->timeout)) - req->io_nbytes = 1; // We put 1 in the counter to tell the requester - // there is no timeout. - else - req->io_nbytes = 0; - - m_internal->EndRequest(req); -} - -void *SocketRequester::Entry() -{ - SockRequest *req; - - m_internal->m_request_locker.Lock(); - while (1) { - // Wait for a new request or a destroy message. - req = m_internal->WaitForReq(); - m_internal->m_end_requester.Lock(); - if (req == NULL) { - m_internal->m_invalid_requester = TRUE; - m_internal->m_end_requester.Unlock(); - m_internal->m_request_locker.Unlock(); - return NULL; - } - m_internal->m_end_requester.Unlock(); - - if ((req->type & wxSocketBase::REQ_WAIT) != 0) { - ProcessWaitEvent(req); - continue; - } - - switch (req->type) { - case wxSocketBase::REQ_READ: - case wxSocketBase::REQ_PEEK: - ProcessReadEvent(req); - break; - case wxSocketBase::REQ_WRITE: - ProcessWriteEvent(req); - break; - } - } - return NULL; -} -#endif - -// -------------------------------------------------------------- -// --------- wxSocketInternal ----------------------------------- -// -------------------------------------------------------------- - -wxSocketInternal::wxSocketInternal(wxSocketBase *socket) -{ - m_socket = socket; - m_thread_requester = NULL; - m_thread_waiter = NULL; - m_invalid_requester = TRUE; -} - -wxSocketInternal::~wxSocketInternal() -{ - StopRequester(); - wxASSERT(m_thread_requester == NULL); - StopWaiter(); - wxASSERT(m_thread_waiter == NULL); -} - -// ---------------------------------------------------------------------- -// WaitForReq: it is called by SocketRequester and should return the next -// socket request if available -// ---------------------------------------------------------------------- -SockRequest *wxSocketInternal::WaitForReq() -{ -#if wxUSE_THREADS - wxNode *node; - - // First try. - node = m_requests.First(); - if (node == NULL) { - m_socket_cond.Wait(m_request_locker, 10, 0); - - // Second try, if it is unsuccessul we give up. - node = m_requests.First(); - if (node == NULL) - return NULL; - } - - return (SockRequest *)node->Data(); -#else - return NULL; -#endif -} - -// ---------------------------------------------------------------------- -// EndRequest: Should be called to finalize a request -// ---------------------------------------------------------------------- -void wxSocketInternal::EndRequest(SockRequest *req) -{ - wxNode *node = NULL; - - req->done = TRUE; - - node = m_requests.Member((wxObject *)req); - if (node != NULL) - delete node; -} - -void wxSocketInternal::AcquireData() -{ -#if wxUSE_THREADS - m_socket_locker.Lock(); -#endif -} - -void wxSocketInternal::ReleaseData() -{ -#if wxUSE_THREADS - m_socket_locker.Unlock(); -#endif -} - -void wxSocketInternal::AcquireFD() -{ -#if wxUSE_THREADS - m_fd_locker.Lock(); -#endif -} - -void wxSocketInternal::ReleaseFD() -{ -#if wxUSE_THREADS - m_fd_locker.Unlock(); -#endif -} - -void wxSocketInternal::ResumeRequester() -{ -#if wxUSE_THREADS - wxThreadError err; - - wxASSERT(m_invalid_requester); - - m_end_requester.Lock(); - - if (m_thread_requester != NULL) { - m_thread_requester->Delete(); // We must join it. - delete m_thread_requester; - } - - m_invalid_requester = FALSE; - - m_end_requester.Unlock(); - - m_thread_requester = new SocketRequester(m_socket, this); - - err = m_thread_requester->Create(); - wxASSERT(err == wxTHREAD_NO_ERROR); - - err = m_thread_requester->Run(); - wxASSERT(err == wxTHREAD_NO_ERROR); -#else - if (!m_invalid_requester) - return; - m_thread_requester = new SocketRequester(m_socket, this); - m_invalid_requester = FALSE; -#endif -} - -void wxSocketInternal::StopRequester() -{ -#if wxUSE_THREADS - m_end_requester.Lock(); - if (m_invalid_requester) { - m_end_requester.Unlock(); - if (m_thread_requester) { - m_thread_requester->Delete(); - delete m_thread_requester; - m_thread_requester = NULL; - } - m_invalid_requester = TRUE; - return; - } - m_end_requester.Unlock(); - - wxASSERT(m_thread_requester != NULL); - - m_request_locker.Lock(); - - // Send a signal to the requester. - m_socket_cond.Signal(); - - m_request_locker.Unlock(); - - // Finish the destruction of the requester. - m_thread_requester->Delete(); - - delete m_thread_requester; - m_thread_requester = NULL; - m_invalid_requester = TRUE; -#else - delete m_thread_requester; - m_thread_requester = NULL; - m_invalid_requester = TRUE; -#endif -} - -void wxSocketInternal::ResumeWaiter() -{ -#if wxUSE_THREADS - wxThreadError err; - - if (m_thread_waiter != NULL) - return; - - m_thread_waiter = new SocketWaiter(m_socket, this); - - m_thread_waiter->SetPriority(WXTHREAD_MIN_PRIORITY); - - err = m_thread_waiter->Create(); - wxASSERT(err == wxTHREAD_NO_ERROR); - - err = m_thread_waiter->Run(); - wxASSERT(err == wxTHREAD_NO_ERROR); -#endif -} - -void wxSocketInternal::StopWaiter() -{ -#if wxUSE_THREADS - if (m_thread_waiter == NULL) - return; - - m_thread_waiter->Delete(); - - delete m_thread_waiter; - m_thread_waiter = NULL; -#endif -} - -// ---------------------------------------------------------------------- -// QueueRequest: -// ---------------------------------------------------------------------- -void wxSocketInternal::QueueRequest(SockRequest *request, bool async) -{ - if (m_invalid_requester) - ResumeRequester(); - -#if wxUSE_THREADS - if (async) { - - m_request_locker.Lock(); - request->done = FALSE; - m_requests.Append((wxObject *)request); - m_socket_cond.Signal(); - m_request_locker.Unlock(); - - // Wake up - - if (request->wait) { - if (wxThread::IsMain()) - while (!request->done) { - wxYield(); - } - else - while (!request->done) { - wxThread::Yield(); - } - } - } else { - m_request_locker.Lock(); -#endif - - if ((request->type & wxSocketBase::REQ_WAIT) != 0) { - m_thread_requester->ProcessWaitEvent(request); - } else { - - request->done = FALSE; - - switch (request->type) { - case wxSocketBase::REQ_PEEK: - case wxSocketBase::REQ_READ: - m_thread_requester->ProcessReadEvent(request); - break; - case wxSocketBase::REQ_WRITE: - m_thread_requester->ProcessWriteEvent(request); - break; - } - } - request->done = TRUE; -#if wxUSE_THREADS - m_request_locker.Unlock(); - } -#endif -} - -void wxSocketInternal::WaitForEnd(SockRequest *request) -{ -#if wxUSE_THREADS - // TODOTODO -#endif -} - -#endif - // __WXSTUBS__ - -#endif - // wxUSE_SOCKETS diff --git a/src/common/sckipc.cpp b/src/common/sckipc.cpp deleted file mode 100644 index 5528d2eca3..0000000000 --- a/src/common/sckipc.cpp +++ /dev/null @@ -1,523 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckipc.cpp -// Purpose: Interprocess communication implementation (wxSocket version) -// Author: Julian Smart, Guilhem Lavaux -// Modified by: Guilhem Lavaux (big rewrite) May 1997, 1998 -// Created: 1993 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart 1993, Guilhem Lavaux 1997, 1998 -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "sckipc.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#endif - -#include -#include - -#include "wx/socket.h" -#include "wx/sckipc.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTCPServer, wxServerBase) -IMPLEMENT_DYNAMIC_CLASS(wxTCPClient, wxClientBase) -IMPLEMENT_DYNAMIC_CLASS(wxTCPConnection, wxConnectionBase) -#endif - -// It seems to be already defined somewhere in the Xt includes. -#ifndef __XT__ -// Message codes -enum { - IPC_EXECUTE = 1, - IPC_REQUEST, - IPC_POKE, - IPC_ADVISE_START, - IPC_ADVISE_REQUEST, - IPC_ADVISE, - IPC_ADVISE_STOP, - IPC_REQUEST_REPLY, - IPC_FAIL, - IPC_CONNECT, - IPC_DISCONNECT -}; -#endif - -void Server_OnRequest(wxSocketServer& server, - wxSocketBase::wxRequestEvent evt, - char *cdata); -void Client_OnRequest(wxSocketBase& sock, - wxSocketBase::wxRequestEvent evt, - char *cdata); - -// --------------------------------------------------------------------------- -// wxTCPClient -// --------------------------------------------------------------------------- - -wxTCPClient::wxTCPClient (void) - : wxClientBase() -{ -} - -wxTCPClient::~wxTCPClient (void) -{ -} - -bool wxTCPClient::ValidHost(const wxString& host) -{ - wxIPV4address addr; - - return addr.Hostname(host); -} - -wxConnectionBase *wxTCPClient::MakeConnection (const wxString& host, - const wxString& server_name, - const wxString& topic) -{ - wxIPV4address addr; - wxSocketHandler *hsock = &wxSocketHandler::Master(); - wxSocketClient *client = hsock->CreateClient(); - wxSocketStream *stream = new wxSocketStream(*client); - wxDataInputStream data_is(*stream); - wxDataOutputStream data_os(*stream); - - client->SetNotify(wxSocketBase::REQ_READ | wxSocketBase::REQ_LOST); - addr.Service(server_name); - addr.Hostname(host); - - if (!client->Connect(addr)) { - delete client; - return NULL; - } - client->Notify(FALSE); - - // Send topic name, and enquire whether this has succeeded - unsigned char msg; - - data_os.Write8(IPC_CONNECT); - data_os.WriteString(topic); - - msg = data_is.Read8(); - - // OK! Confirmation. - if (msg == IPC_CONNECT) { - wxTCPConnection *connection = (wxTCPConnection *)OnMakeConnection (); - if (connection) { - if (!connection->IsKindOf(CLASSINFO(wxTCPConnection))) { - delete connection; - return NULL; - } - connection->m_topic = topic; - client->Callback(Client_OnRequest); - client->CallbackData((char *)connection); - client->Notify(TRUE); - return connection; - } else { - delete client; - return NULL; - } - } else { - delete client; - return NULL; - } - return NULL; -} - -wxConnectionBase *wxTCPClient::OnMakeConnection() -{ - return new wxTCPConnection; -} - -// --------------------------------------------------------------------------- -// wxTCPServer -// --------------------------------------------------------------------------- - -wxTCPServer::wxTCPServer (void) - : wxServerBase() -{ -} - -bool wxTCPServer::Create(const wxString& server_name) -{ - wxIPV4address addr; - wxSocketHandler *hsock = &wxSocketHandler::Master(); - wxSocketServer *server; - - addr.Service(server_name); - - // Create a socket listening on specified port - server = hsock->CreateServer(addr); - server->Callback((wxSocketBase::wxSockCbk)Server_OnRequest); - server->SetNotify(wxSocketBase::REQ_ACCEPT); - - server->CallbackData((char *)this); - - return TRUE; -} - -wxTCPServer::~wxTCPServer(void) -{ -} - -wxConnectionBase *wxTCPServer::OnAcceptConnection( const wxString& WXUNUSED(topic) ) -{ - return new wxTCPConnection(); -} - -// --------------------------------------------------------------------------- -// wxTCPConnection -// --------------------------------------------------------------------------- - -wxTCPConnection::wxTCPConnection (void) - : wxConnectionBase(), - m_sock(NULL), m_sockstrm(NULL), m_codeci(NULL), m_codeco(NULL) -{ -} - -wxTCPConnection::wxTCPConnection(char *buffer, int size) -{ -} - -wxTCPConnection::~wxTCPConnection (void) -{ - wxDELETE(m_sock); - wxDELETE(m_codeci); - wxDELETE(m_codeco); - wxDELETE(m_sockstrm); -} - -void wxTCPConnection::Compress(bool WXUNUSED(on)) -{ - // Use wxLZWStream -} - -// Calls that CLIENT can make. -bool wxTCPConnection::Disconnect (void) -{ - // Send the the disconnect message to the peer. - m_codeco->Write8(IPC_DISCONNECT); - m_sock->Close(); - - return TRUE; -} - -bool wxTCPConnection::Execute (wxChar *data, int size, wxIPCFormat format) -{ - if (!m_sock->IsConnected()) - return FALSE; - - // Prepare EXECUTE message - m_codeco->Write8(IPC_EXECUTE); - m_codeco->Write8(format); - if (size < 0) - m_codeco->WriteString(data); - else { - m_codeco->Write32(size); - m_codeco->Write(data, size); - } - - return TRUE; -} - -char *wxTCPConnection::Request (const wxString& item, int *size, wxIPCFormat format) -{ - if (!m_sock->IsConnected()) - return NULL; - - m_codeco->Write8(IPC_REQUEST); - m_codeco->WriteString(item); - m_codeco->Write8(format); - - // If Unpack doesn't initialize it. - int ret; - - ret = m_codeci->Read8(); - if (ret == IPC_FAIL) - return NULL; - else { - size_t s; - char *data = NULL; - - s = m_codeci->Read32(); - data = new char[s]; - m_codeci->Read(data, s); - - if (size) - *size = s; - return data; - } -} - -bool wxTCPConnection::Poke (const wxString& item, wxChar *data, int size, wxIPCFormat format) -{ - if (!m_sock->IsConnected()) - return FALSE; - - m_codeco->Write8(IPC_POKE); - m_codeco->WriteString(item); - m_codeco->Write8(format); - if (size < 0) - m_codeco->WriteString(data); - else { - m_codeco->Write32(size); - m_codeco->Write(data, size); - } - - return TRUE; -} - -bool wxTCPConnection::StartAdvise (const wxString& item) -{ - int ret; - - if (!m_sock->IsConnected()) - return FALSE; - - m_codeco->Write8(IPC_ADVISE_START); - m_codeco->WriteString(item); - - ret = m_codeci->Read8(); - - if (ret != IPC_FAIL) - return TRUE; - else - return FALSE; -} - -bool wxTCPConnection::StopAdvise (const wxString& item) -{ - int msg; - - if (!m_sock->IsConnected()) - return FALSE; - - m_codeco->Write8(IPC_ADVISE_STOP); - m_codeco->WriteString(item); - - msg = m_codeci->Read8(); - - if (msg != IPC_FAIL) - return TRUE; - else - return FALSE; -} - -// Calls that SERVER can make -bool wxTCPConnection::Advise (const wxString& item, - wxChar *data, int size, wxIPCFormat format) -{ - if (!m_sock->IsConnected()) - return FALSE; - - m_codeco->Write8(IPC_ADVISE); - m_codeco->WriteString(item); - m_codeco->Write8(format); - if (size < 0) - m_codeco->WriteString(data); - else { - m_codeco->Write32(size); - m_codeco->Write(data, size); - } - - return TRUE; -} - -void Client_OnRequest(wxSocketBase& sock, wxSocketBase::wxRequestEvent evt, - char *cdata) -{ - int msg = 0; - wxTCPConnection *connection = (wxTCPConnection *)cdata; - wxDataInputStream *codeci; - wxDataOutputStream *codeco; - wxString topic_name = connection->m_topic; - wxString item; - - // The socket handler signals us that we lost the connection: destroy all. - if (evt == wxSocketBase::EVT_LOST) { - sock.Close(); - connection->OnDisconnect(); - return; - } - - // Receive message number. - codeci = connection->m_codeci; - codeco = connection->m_codeco; - msg = codeci->Read8(); - - switch (msg) { - case IPC_EXECUTE: { - char *data; - size_t size; - wxIPCFormat format; - - format = (wxIPCFormat)codeci->Read8(); - size = codeci->Read32(); - data = new char[size]; - codeci->Read(data, size); - - connection->OnExecute (topic_name, data, size, format); - - delete [] data; - break; - } - case IPC_ADVISE: { - char *data; - size_t size; - wxIPCFormat format; - - item = codeci->ReadString(); - format = (wxIPCFormat)codeci->Read8(); - size = codeci->Read32(); - data = new char[size]; - codeci->Read(data, size); - - connection->OnAdvise (topic_name, item, data, size, format); - - delete [] data; - break; - } - case IPC_ADVISE_START: { - item = codeci->ReadString(); - - bool ok = connection->OnStartAdvise (topic_name, item); - if (ok) - codeco->Write8(IPC_ADVISE_START); - else - codeco->Write8(IPC_FAIL); - - break; - } - case IPC_ADVISE_STOP: { - item = codeci->ReadString(); - - bool ok = connection->OnStopAdvise (topic_name, item); - if (ok) - codeco->Write8(IPC_ADVISE_STOP); - else - codeco->Write8(IPC_FAIL); - - break; - } - case IPC_POKE: { - wxIPCFormat format; - size_t size; - wxChar *data; - - item = codeci->ReadString(); - format = (wxIPCFormat)codeci->Read8(); - size = codeci->Read32(); - data = new wxChar[size]; - codeci->Read(data, size); - - connection->OnPoke (topic_name, item, data, size, format); - - delete [] data; - - break; - } - case IPC_REQUEST: { - wxIPCFormat format; - - item = codeci->ReadString(); - format = (wxIPCFormat)codeci->Read8(); - - int user_size = -1; - char *user_data = connection->OnRequest (topic_name, item, &user_size, format); - - if (user_data) { - codeco->Write8(IPC_REQUEST_REPLY); - if (user_size != -1) { - codeco->Write32(user_size); - codeco->Write(user_data, user_size); - } else - codeco->WriteString(user_data); - } else - codeco->Write8(IPC_FAIL); - - break; - } - case IPC_DISCONNECT: { - sock.Close(); - connection->OnDisconnect(); - break; - } - default: - codeco->Write8(IPC_FAIL); - break; - } -} - -void Server_OnRequest(wxSocketServer& server, - wxSocketBase::wxRequestEvent evt, char *cdata) -{ - wxTCPServer *ipcserv = (wxTCPServer *)cdata; - wxSocketStream *stream; - wxDataInputStream *codeci; - wxDataOutputStream *codeco; - - if (evt != wxSocketBase::EVT_ACCEPT) - return; - - /* Accept the connection, getting a new socket */ - wxSocketBase *sock = server.Accept(); - sock->Notify(FALSE); - sock->SetNotify(wxSocketBase::REQ_READ | wxSocketBase::REQ_LOST); - - stream = new wxSocketStream(*sock); - codeci = new wxDataInputStream(*stream); - codeco = new wxDataOutputStream(*stream); - - if (!sock->Ok()) - return; - - int msg; - msg = codeci->Read8(); - - if (msg == IPC_CONNECT) { - wxString topic_name; - topic_name = codeci->ReadString(); - - /* Register new socket with the notifier */ - wxTCPConnection *new_connection = - (wxTCPConnection *)ipcserv->OnAcceptConnection (topic_name); - if (new_connection) { - if (!new_connection->IsKindOf(CLASSINFO(wxTCPConnection))) { - delete new_connection; - codeco->Write8(IPC_FAIL); - return; - } - // Acknowledge success - codeco->Write8(IPC_CONNECT); - - new_connection->m_topic = topic_name; - new_connection->m_sockstrm = stream; - new_connection->m_codeci = codeci; - new_connection->m_codeco = codeco; - sock->Callback(Client_OnRequest); - sock->CallbackData((char *)new_connection); - sock->Notify(TRUE); - } else { - // Send failure message - codeco->Write8(IPC_FAIL); - } - } -} - -#endif - // wxUSE_SOCKETS diff --git a/src/common/sckstrm.cpp b/src/common/sckstrm.cpp deleted file mode 100644 index c0b5332b04..0000000000 --- a/src/common/sckstrm.cpp +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sckstrm.h -// Purpose: wxSocket*Stream -// Author: Guilhem Lavaux -// Modified by: -// Created: 17/07/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sckstrm.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#endif - -#include "wx/stream.h" -#include "wx/socket.h" -#include "wx/sckstrm.h" - -// --------------------------------------------------------------------------- -// wxSocketOutputStream -// --------------------------------------------------------------------------- - -wxSocketOutputStream::wxSocketOutputStream(wxSocketBase& s) - : m_o_socket(&s) -{ -} - -wxSocketOutputStream::~wxSocketOutputStream() -{ -} - -wxOutputStream& wxSocketOutputStream::Write(const void *buffer, size_t size) -{ - m_lastcount = m_o_socket->Write((const char *)buffer, size).LastCount(); - return *this; -} - -size_t wxSocketOutputStream::OnSysWrite(const void *buffer, size_t size) -{ - return m_o_socket->Write((const char *)buffer, size).LastCount(); -} - -// --------------------------------------------------------------------------- -// wxSocketInputStream -// --------------------------------------------------------------------------- - -wxSocketInputStream::wxSocketInputStream(wxSocketBase& s) - : m_i_socket(&s) -{ -} - -wxSocketInputStream::~wxSocketInputStream() -{ -} - -wxInputStream& wxSocketInputStream::Read(void *buffer, size_t size) -{ - m_lastcount = m_i_socket->Read((char *)buffer, size).LastCount(); - return *this; -} - -size_t wxSocketInputStream::OnSysRead(void *buffer, size_t size) -{ - return m_i_socket->Read((char *)buffer, size).LastCount(); -} - -// --------------------------------------------------------------------------- -// wxSocketStream -// --------------------------------------------------------------------------- - -wxSocketStream::wxSocketStream(wxSocketBase& s) - : wxSocketInputStream(s), wxSocketOutputStream(s) -{ -} - -wxSocketStream::~wxSocketStream() -{ -} - -#endif diff --git a/src/common/serbase.cpp b/src/common/serbase.cpp deleted file mode 100644 index cf00ab21d5..0000000000 --- a/src/common/serbase.cpp +++ /dev/null @@ -1,124 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serbase.cpp -// Purpose: wxStream base classes -// Author: Robert Roebling -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "serbase.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#include "wx/serbase.h" -#include "wx/datstrm.h" -#include "wx/objstrm.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SERIAL - -// ---------------------------------------------------------------------------- -// wxObject_Serialize -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxObject_Serialize,wxObject) -IMPLEMENT_SERIAL_CLASS(wxList, wxObject) -IMPLEMENT_SERIAL_CLASS(wxHashTable, wxObject) -#endif - -void WXSERIAL(wxList)::StoreObject(wxObjectOutputStream& s) -{ - wxList *lst_object = (wxList *)Object(); - wxNode *node = lst_object->First(); - - if (s.FirstStage()) { - while (node) { - s.AddChild(node->Data()); - node = node->Next(); - } - return; - } - - wxDataOutputStream data_s(s); - - data_s.Write8(lst_object->GetDeleteContents()); - data_s.Write8(lst_object->GetKeyType()); - data_s.Write32( lst_object->Number() ); - - if (lst_object->GetKeyType() == wxKEY_INTEGER) { - while (node) { - data_s.Write32(node->GetKeyInteger()); - node = node->Next(); - } - } else { - while (node) { - data_s.WriteString(node->GetKeyString()); - node = node->Next(); - } - } -} - -void WXSERIAL(wxList)::LoadObject(wxObjectInputStream& s) -{ - wxDataInputStream data_s(s); - wxList *list = (wxList *)Object(); - int number, i; - - list->DeleteContents( data_s.Read8() ); - list->SetKeyType( (wxKeyType) data_s.Read8() ); - number = data_s.Read32(); - - if (list->GetKeyType() == wxKEY_INTEGER) { - for (i=0;iAppend( data_s.Read32(), s.GetChild() ); - } else { - for (i=0;iAppend( data_s.ReadString(), s.GetChild() ); - } -} - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxHashTable)::StoreObject(wxObjectOutputStream& s) -{ - wxHashTable *table = (wxHashTable *)Object(); - int i; - - if (s.FirstStage()) { - for (i=0;in;i++) - s.AddChild(table->hash_table[i]); - return; - } - - wxDataOutputStream data_s(s); - - data_s.Write8(table->key_type); - data_s.Write32(table->n); -} - -void WXSERIAL(wxHashTable)::LoadObject(wxObjectInputStream& s) -{ - wxHashTable *table = (wxHashTable *)Object(); - wxDataInputStream data_s(s); - int i, key, n; - - key = data_s.Read8(); - n = data_s.Read32(); - - table->Create(key, n); - - for (i=0;ihash_table[i] = (wxList *)s.GetChild(); -} - -#endif // wxUSE_SERIAL diff --git a/src/common/socket.cpp b/src/common/socket.cpp deleted file mode 100644 index 883ffb82eb..0000000000 --- a/src/common/socket.cpp +++ /dev/null @@ -1,1192 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: socket.cpp -// Purpose: Socket handler classes -// Authors: Guilhem Lavaux (completely rewritten from a basic API of Andrew -// Davidson(1995) in wxWeb) -// Created: April 1997 -// Updated: April 1999 -// Copyright: (C) 1999 1998, 1997, Guilhem Lavaux -// RCS_ID: $Id$ -// License: see wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "socket.h" -#endif - -#ifdef __MWERKS__ -typedef int socklen_t ; -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -///////////////////////////////////////////////////////////////////////////// -// wxWindows headers -///////////////////////////////////////////////////////////////////////////// -#include -#include -#include -#include -#include - -// Not enough OS behaviour defined for wxStubs -#ifndef __WXSTUBS__ - -#include -#include -#include - -///////////////////////////////////////////////////////////////////////////// -// System specific headers -///////////////////////////////////////////////////////////////////////////// -#ifdef __WXMAC__ -// in order to avoid problems with our c library and double definitions -#define close closesocket -#define ioctl ioctlsocket - -#include - -#endif - -#if defined(__WINDOWS__) -#include -#endif // __WINDOWS__ - -#if defined(__UNIX__) - -#ifdef VMS -#include -#else -#include -#endif -#include - -#include -#include - -#ifdef sun -#include -#endif - -#endif // __UNIX__ - -#include -#include - -#ifdef __VISUALC__ -#include -#endif - -///////////////////////////////////////////////////////////////////////////// -// wxSocket headers -///////////////////////////////////////////////////////////////////////////// -#include -#define WXSOCK_INTERNAL -#include -#include -#include - -// ---------------------- -// Some patch ----- BEGIN -// ---------------------- -#ifdef __WINDOWS__ -#define close closesocket -#define ioctl ioctlsocket -#ifdef errno -#undef errno -#endif -#define errno WSAGetLastError() -#ifdef EWOULDBLOCK -#undef EWOULDBLOCK -#endif -#define EWOULDBLOCK WSAEWOULDBLOCK -#define ETIMEDOUT WSAETIMEDOUT -#undef EINTR -#define EINTR WSAEINTR -#endif - -#ifndef __WINDOWS__ -#define INVALID_SOCKET -1 -#endif - -#ifdef __WINDOWS__ -// This is an MS TCP/IP routine and is not needed here. Some WinSock -// implementations (such as PC-NFS) will require you to include this -// or a similar routine (see appendix in WinSock doc or help file). - -#if defined( NEED_WSAFDIsSet ) || defined( __VISUALC__ ) -int PASCAL FAR __WSAFDIsSet(SOCKET fd, fd_set FAR *set) -{ - int i = set->fd_count; - - while (i--) - { - if (set->fd_array[i] == fd) - return 1; - } - - return 0; -} -#endif -#endif - -// ------------------- -// Some patch ---- END -// ------------------- - -#ifdef GetClassInfo -#undef GetClassInfo -#endif - -// -------------------------------------------------------------- -// Module -// -------------------------------------------------------------- -class wxSocketModule: public wxModule -{ - DECLARE_DYNAMIC_CLASS(wxSocketModule) -public: - wxSocketModule() {} - bool OnInit(); - void OnExit(); -}; - -// -------------------------------------------------------------- -// ClassInfos -// -------------------------------------------------------------- -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxSocketBase, wxObject) -IMPLEMENT_CLASS(wxSocketServer, wxSocketBase) -IMPLEMENT_CLASS(wxSocketClient, wxSocketBase) -IMPLEMENT_CLASS(wxSocketHandler, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxSocketModule, wxModule) -#endif - -// -------------------------------------------------------------- -// --------- wxSocketBase CONSTRUCTOR --------------------------- -// -------------------------------------------------------------- -wxSocketBase::wxSocketBase(wxSocketBase::wxSockFlags _flags, - wxSocketBase::wxSockType _type) : - wxEvtHandler(), - m_flags(_flags), m_type(_type), m_connected(FALSE), m_connecting(FALSE), - m_fd(INVALID_SOCKET), m_id(-1), - m_handler(0), - m_neededreq((wxRequestNotify)(REQ_READ | REQ_LOST)), - m_timeout(3600), - m_unread(NULL), m_unrd_size(0), - m_cbk(NULL), m_cdata(NULL), - m_notify_state(FALSE) -{ - m_internal = new wxSocketInternal(this); -} - -wxSocketBase::wxSocketBase() : - wxEvtHandler(), - m_flags(WAITALL), m_type(SOCK_UNINIT), m_connected(FALSE), - m_connecting(FALSE), m_fd(INVALID_SOCKET), - m_id(-1), m_handler(0), - m_neededreq((wxRequestNotify)(REQ_READ | REQ_LOST)), - m_timeout(3600), - m_unread(NULL), m_unrd_size(0), - m_cbk(NULL), m_cdata(NULL), - m_notify_state(FALSE) -{ - m_internal = new wxSocketInternal(this); -} - -// -------------------------------------------------------------- -// wxSocketBase -// -------------------------------------------------------------- - -wxSocketBase::~wxSocketBase() -{ - // First, close the file descriptor. - Close(); - - if (m_unread) - free(m_unread); - // Unregister from the handler database. - if (m_handler) - m_handler->UnRegister(this); - - // Destroy all saved states. - m_states.DeleteContents(TRUE); - - // Destroy the socket manager. - delete m_internal; -} - -bool wxSocketBase::Close() -{ - if (m_fd != INVALID_SOCKET) - { - if (m_notify_state == TRUE) - Notify(FALSE); - - // Shutdown the connection. - shutdown(m_fd, 2); - close(m_fd); - m_fd = INVALID_SOCKET; - m_connected = FALSE; - } - - return TRUE; -} - -// -------------------------------------------------------------- -// wxSocketBase base IO function -// -------------------------------------------------------------- - -wxSocketBase& wxSocketBase::Read(char* buffer, size_t nbytes) -{ - m_lcount = GetPushback(buffer, nbytes, FALSE); - nbytes -= m_lcount; - buffer += m_lcount; - - // If we have got the whole needed buffer or if we don't want to - // wait then it returns immediately. - if (!nbytes || (m_lcount && !(m_flags & WAITALL)) ) { - return *this; - } - - WantBuffer(buffer, nbytes, EVT_READ); - - return *this; -} - -wxSocketBase& wxSocketBase::ReadMsg(char* buffer, size_t nbytes) -{ - unsigned long len, len2, sig; - struct { - char sig[4]; - char len[4]; - } msg; - - // sig should be an explicit 32-bit unsigned integer; I've seen - // compilers in which size_t was actually a 16-bit unsigned integer - - Read((char *)&msg, sizeof(msg)); - if (m_lcount != sizeof(msg)) - return *this; - - sig = msg.sig[0] & 0xff; - sig |= (size_t)(msg.sig[1] & 0xff) << 8; - sig |= (size_t)(msg.sig[2] & 0xff) << 16; - sig |= (size_t)(msg.sig[3] & 0xff) << 24; - - if (sig != 0xfeeddead) - return *this; - len = msg.len[0] & 0xff; - len |= (size_t)(msg.len[1] & 0xff) << 8; - len |= (size_t)(msg.len[2] & 0xff) << 16; - len |= (size_t)(msg.len[3] & 0xff) << 24; - - // len2 is incorrectly computed in the original; this sequence is - // the fix - if (len > nbytes) { - len2 = len - nbytes; - len = nbytes; - } - else - len2 = 0; - - // the "len &&" in the following statement is necessary so that - // we don't attempt to read (and possibly hang the system) - // if the message was zero bytes long - if (len && Read(buffer, len).LastCount() != len) - return *this; - if (len2 && (Read(NULL, len2).LastCount() != len2)) - return *this; - if (Read((char *)&msg, sizeof(msg)).LastCount() != sizeof(msg)) - return *this; - - sig = msg.sig[0] & 0xff; - sig |= (size_t)(msg.sig[1] & 0xff) << 8; - sig |= (size_t)(msg.sig[2] & 0xff) << 16; - sig |= (size_t)(msg.sig[3] & 0xff) << 24; -// ERROR -// we return *this either way, so a smart optimizer will -// optimize the following sequence out; I'm leaving it in anyway - if (sig != 0xdeadfeed) - return *this; - - return *this; -} - -wxSocketBase& wxSocketBase::Peek(char* buffer, size_t nbytes) -{ - m_lcount = GetPushback(buffer, nbytes, TRUE); - if (nbytes-m_lcount == 0) - { - return *this; - } - buffer += m_lcount; - nbytes -= m_lcount; - - WantBuffer(buffer, nbytes, EVT_PEEK); - - return *this; -} - -wxSocketBase& wxSocketBase::Write(const char *buffer, size_t nbytes) -{ - m_lcount = 0; - WantBuffer((char *)buffer, nbytes, EVT_WRITE); - return *this; -} - -wxSocketBase& wxSocketBase::WriteMsg(const char *buffer, size_t nbytes) -{ - struct { - char sig[4]; - char len[4]; - } msg; - - // warning about 'cast truncates constant value' -#ifdef __VISUALC__ - #pragma warning(disable: 4310) -#endif // __VISUALC__ - - msg.sig[0] = (char) 0xad; - msg.sig[1] = (char) 0xde; - msg.sig[2] = (char) 0xed; - msg.sig[3] = (char) 0xfe; - - msg.len[0] = (char) nbytes & 0xff; - msg.len[1] = (char) (nbytes >> 8) & 0xff; - msg.len[2] = (char) (nbytes >> 16) & 0xff; - msg.len[3] = (char) (nbytes >> 24) & 0xff; - - if (Write((char *)&msg, sizeof(msg)).LastCount() < sizeof(msg)) - return *this; - if (Write(buffer, nbytes).LastCount() < nbytes) - return *this; - - msg.sig[0] = (char) 0xed; - msg.sig[1] = (char) 0xfe; - msg.sig[2] = (char) 0xad; - msg.sig[3] = (char) 0xde; - msg.len[0] = msg.len[1] = msg.len[2] = msg.len[3] = (char) 0; - Write((char *)&msg, sizeof(msg)); - - return *this; - -#ifdef __VISUALC__ - #pragma warning(default: 4310) -#endif // __VISUALC__ -} - -wxSocketBase& wxSocketBase::Unread(const char *buffer, size_t nbytes) -{ - m_lcount = 0; - if (nbytes != 0) { - CreatePushbackAfter(buffer, nbytes); - m_lcount = nbytes; - } - return *this; -} - -bool wxSocketBase::IsData() const -{ - struct timeval tv; - fd_set sock_set; - - if (m_fd < 0) - return FALSE; - if (m_unrd_size > 0) - return TRUE; - - m_internal->AcquireFD(); - - tv.tv_sec = 0; - tv.tv_usec = 0; - FD_ZERO(&sock_set); - FD_SET(m_fd, &sock_set); - select(m_fd+1, &sock_set, NULL, NULL, &tv); - - m_internal->ReleaseFD(); - - return (FD_ISSET(m_fd, &sock_set) != 0); -} - -// --------------------------------------------------------------------- -// --------- wxSocketBase Discard(): deletes all byte in the input queue -// --------------------------------------------------------------------- -void wxSocketBase::Discard() -{ -#define MAX_BUFSIZE (10*1024) - char *my_data = new char[MAX_BUFSIZE]; - size_t recv_size = MAX_BUFSIZE; - - SaveState(); - SetFlags((wxSockFlags)(NOWAIT | SPEED)); - - while (recv_size == MAX_BUFSIZE) - { - recv_size = Read(my_data, MAX_BUFSIZE).LastCount(); - } - - RestoreState(); - delete [] my_data; - -#undef MAX_BUFSIZE -} - -// If what? Who seems to need unsigned int? -// BTW uint isn't even defined on wxMSW for VC++ for some reason. Even if it -// were, getpeername/getsockname don't take unsigned int*, they take int*. -// -// Under glibc 2.0.7, socketbits.h declares socklen_t to be unsigned int -// and it uses *socklen_t as the 3rd parameter. Robert. - -// JACS - How can we detect this? -// Meanwhile, if your compiler complains about socklen_t, -// switch lines below. - -#if wxHAVE_GLIBC2 -# define wxSOCKET_INT socklen_t -#else -# define wxSOCKET_INT int -#endif - -// -------------------------------------------------------------- -// wxSocketBase socket info functions -// -------------------------------------------------------------- - -bool wxSocketBase::GetPeer(wxSockAddress& addr_man) const -{ - struct sockaddr my_addr; - wxSOCKET_INT len_addr = sizeof(my_addr); - - if (m_fd < 0) - return FALSE; - - m_internal->AcquireFD(); - - if (getpeername(m_fd, (struct sockaddr *)&my_addr, &len_addr) < 0) { - m_internal->ReleaseFD(); - return FALSE; - } - - m_internal->ReleaseFD(); - addr_man.Disassemble(&my_addr, len_addr); - return TRUE; -} - -bool wxSocketBase::GetLocal(wxSockAddress& addr_man) const -{ - struct sockaddr my_addr; - wxSOCKET_INT len_addr = sizeof(my_addr); - - if (m_fd < 0) - return FALSE; - - m_internal->AcquireFD(); - - if (getsockname(m_fd, (struct sockaddr *)&my_addr, &len_addr) < 0) { - m_internal->ReleaseFD(); - return FALSE; - } - m_internal->ReleaseFD(); - - addr_man.Disassemble(&my_addr, len_addr); - return TRUE; -} - -// -------------------------------------------------------------- -// wxSocketBase wait functions -// -------------------------------------------------------------- - -void wxSocketBase::SaveState() -{ - SocketState *state = new SocketState; - - state->notify_state = m_notify_state; - state->evt_notify_state = m_neededreq; - state->socket_flags = m_flags; - state->c_callback = m_cbk; - state->c_callback_data = m_cdata; - - m_states.Append((wxObject *)state); -} - -void wxSocketBase::RestoreState() -{ - wxNode *node; - SocketState *state; - - node = m_states.Last(); - if (!node) - return; - - state = (SocketState *)node->Data(); - - SetFlags(state->socket_flags); - m_internal->AcquireData(); - m_neededreq = state->evt_notify_state; - m_internal->ReleaseData(); - m_cbk = state->c_callback; - m_cdata = state->c_callback_data; - Notify(state->notify_state); - - delete node; - delete state; -} - -// -------------------------------------------------------------- -// --------- wxSocketBase callback functions -------------------- -// -------------------------------------------------------------- - -wxSocketBase::wxSockCbk wxSocketBase::Callback(wxSockCbk cbk_) -{ - wxSockCbk old_cbk = cbk_; - - m_cbk = cbk_; - return old_cbk; -} - -char *wxSocketBase::CallbackData(char *data) -{ - char *old_data = m_cdata; - - m_cdata = data; - return old_data; -} - -// -------------------------------------------------------------- -// --------- wxSocketBase wait functions ------------------------ -// -------------------------------------------------------------- - -bool wxSocketBase::_Wait(long seconds, long milliseconds, int type) -{ - SockRequest *req; - - if ((!m_connected && !m_connecting) || m_fd < 0) - return FALSE; - - req = new SockRequest; - - req->type = REQ_WAIT | type; - req->timeout = seconds * 1000 + milliseconds; - req->done = FALSE; - req->buffer = NULL; - req->size = 0; - req->error = 0; - req->wait = TRUE; - m_internal->QueueRequest(req, TRUE); - - return (req->io_nbytes != 0); -} - -bool wxSocketBase::Wait(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, REQ_ACCEPT | REQ_CONNECT | - REQ_READ | REQ_WRITE | REQ_LOST); -} - -bool wxSocketBase::WaitForRead(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, REQ_READ | REQ_LOST); -} - -bool wxSocketBase::WaitForWrite(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, REQ_WRITE); -} - -bool wxSocketBase::WaitForLost(long seconds, long milliseconds) -{ - return _Wait(seconds, milliseconds, REQ_LOST); -} - -// -------------------------------------------------------------- -// --------- wxSocketBase callback management ------------------- -// -------------------------------------------------------------- - -wxSocketBase::wxRequestNotify wxSocketBase::EventToNotify(wxRequestEvent evt) -{ - switch (evt) - { - case EVT_READ: - return REQ_READ; - case EVT_PEEK: - return REQ_PEEK; - case EVT_WRITE: - return REQ_WRITE; - case EVT_LOST: - return REQ_LOST; - case EVT_ACCEPT: - return REQ_ACCEPT; - case EVT_CONNECT: - return REQ_CONNECT; - } - return 0; -} - -void wxSocketBase::SetFlags(wxSockFlags _flags) -{ - m_flags = _flags; - if (_flags & SPEED) { - // SPEED and WAITALL are antagonists. - m_flags = (wxSockFlags)(m_flags & ~WAITALL); - } -} - -wxSocketBase::wxSockFlags wxSocketBase::GetFlags() const -{ - return m_flags; -} - -void wxSocketBase::SetNotify(wxRequestNotify flags) -{ - /* Check if server */ - if (m_type != SOCK_SERVER) - flags &= ~REQ_ACCEPT; - - m_internal->AcquireData(); - m_neededreq = flags; - m_internal->ReleaseData(); - if (m_neededreq == 0) - m_internal->StopWaiter(); - else - Notify(m_notify_state); -} - -void wxSocketBase::Notify(bool notify) -{ - m_notify_state = notify; - if (m_fd == INVALID_SOCKET) - return; - - if (notify) - m_internal->ResumeWaiter(); - else - m_internal->StopWaiter(); -} - -void wxSocketBase::OnRequest(wxRequestEvent req_evt) -{ - wxSocketEvent event(m_id); - wxRequestNotify notify = EventToNotify(req_evt); - - if ((m_neededreq & notify) == notify) { - event.m_socket = this; - event.m_skevt = req_evt; - ProcessEvent(event); - // TODOTODO - // OldOnNotify(req_evt); - - // We disable the event reporting. - m_neededreq &= ~notify; - } -} - -wxSocketEvent::wxSocketEvent(int id) - : wxEvent(id) -{ - wxEventType type = (wxEventType)wxEVT_SOCKET; - - SetEventType(type); -} - -void wxSocketEvent::CopyObject(wxObject& obj_d) const -{ - wxSocketEvent *event = (wxSocketEvent *)&obj_d; - - wxEvent::CopyObject(obj_d); - - event->m_skevt = m_skevt; - event->m_socket = m_socket; -} - -void wxSocketBase::OldOnNotify(wxRequestEvent evt) -{ -} - -// -------------------------------------------------------------- -// --------- wxSocketBase functions [Callback, CallbackData] ---- -// -------------------------------------------------------------- - -void wxSocketBase::SetEventHandler(wxEvtHandler& h_evt, int id) -{ - SetNextHandler(&h_evt); - m_id = id; -} - -// -------------------------------------------------------------- -// --------- wxSocketBase pushback library ---------------------- -// -------------------------------------------------------------- - -void wxSocketBase::CreatePushbackAfter(const char *buffer, size_t size) -{ - char *curr_pos; - - if (m_unread != NULL) - m_unread = (char *) realloc(m_unread, m_unrd_size+size); - else - m_unread = (char *) malloc(size); - curr_pos = m_unread + m_unrd_size; - - memcpy(curr_pos, buffer, size); - m_unrd_size += size; -} - -void wxSocketBase::CreatePushbackBefore(const char *buffer, size_t size) -{ - char *curr_pos, *new_buf; - - new_buf = (char *) malloc(m_unrd_size+size); - curr_pos = new_buf + size; - - memcpy(new_buf, buffer, size); - if (m_unrd_size != 0) { - memcpy(curr_pos, m_unread, m_unrd_size); - free(m_unread); - } - m_unread = new_buf; - m_unrd_size += size; -} - -size_t wxSocketBase::GetPushback(char *buffer, size_t size, bool peek) -{ - if (!m_unrd_size) - return 0; - - if (size > m_unrd_size) - size = m_unrd_size; - memcpy(buffer, m_unread, size); - - if (!peek) { - m_unrd_size -= size; - if (m_unrd_size == 0) { - free(m_unread); - m_unread = NULL; - } - } - - return size; -} - -// -------------------------------------------------------------- -// --------- wxSocketBase buffer core requester ----------------- -// -------------------------------------------------------------- - -void wxSocketBase::WantBuffer(char *buffer, size_t nbytes, - wxRequestEvent evt) -{ - bool buf_timed_out; - - if (m_fd == INVALID_SOCKET || !m_handler || !m_connected) - return; - - SockRequest *buf = new SockRequest; - - SaveState(); - buf->buffer = buffer; - buf->size = nbytes; - buf->done = FALSE; - buf->type = EventToNotify(evt); - buf->io_nbytes = 0; - buf->error = 0; - buf->wait = TRUE; - buf->timeout = 1000; - buf_timed_out = FALSE; - - if ((m_flags & SPEED) != 0) - m_internal->QueueRequest(buf, FALSE); - else - if ((m_flags & NOWAIT) != 0) - m_internal->QueueRequest(buf, TRUE); - else - m_internal->QueueRequest(buf, TRUE); - m_lcount += buf->io_nbytes; - if (buf_timed_out) - m_error = ETIMEDOUT; - else - m_error = buf->error; - - delete buf; - RestoreState(); -} - -// -------------------------------------------------------------- -// wxSocketServer -// -------------------------------------------------------------- - -wxSocketServer::wxSocketServer(wxSockAddress& addr_man, - wxSockFlags flags) : - wxSocketBase(flags, SOCK_SERVER) -{ - m_fd = socket(addr_man.GetFamily(), SOCK_STREAM, 0); - - if (m_fd == INVALID_SOCKET) - return; - - int flag = 1; - setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (char*)&flag, sizeof(int)); - - struct sockaddr *myaddr; - size_t len; - - addr_man.Build(myaddr, len); - if (bind(m_fd, myaddr, addr_man.SockAddrLen()) < 0) - return; - - if (listen(m_fd, 5) < 0) { - m_fd = INVALID_SOCKET; - return; - } - - m_internal->SetFD(m_fd); - - Notify(TRUE); -} - -// -------------------------------------------------------------- -// wxSocketServer Accept -// -------------------------------------------------------------- - -bool wxSocketServer::AcceptWith(wxSocketBase& sock) -{ - int fd2; - - m_internal->AcquireFD(); - if ((fd2 = accept(m_fd, 0, 0)) < 0) { - m_internal->ReleaseFD(); - return FALSE; - } - m_internal->ReleaseFD(); - - struct linger linger; - linger.l_onoff = 0; - linger.l_linger = 1; - - setsockopt(fd2, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(linger)); - - int flag = 0; - setsockopt(fd2, SOL_SOCKET, SO_KEEPALIVE, (char*)&flag, sizeof(int)); - - sock.m_type = SOCK_INTERNAL; - sock.m_fd = fd2; - sock.m_connected = TRUE; - - sock.m_internal->SetFD(fd2); - - sock.m_internal->ResumeWaiter(); - - return TRUE; -} - -wxSocketBase *wxSocketServer::Accept() -{ - wxSocketBase* sock = new wxSocketBase(); - - sock->SetFlags((wxSockFlags)m_flags); - - if (!AcceptWith(*sock)) - return NULL; - - if (m_handler) - m_handler->Register(sock); - - return sock; -} - -// -------------------------------------------------------------- -// wxSocketClient -// -------------------------------------------------------------- - -// --------- wxSocketClient CONSTRUCTOR ------------------------- -// -------------------------------------------------------------- -wxSocketClient::wxSocketClient(wxSockFlags _flags) : - wxSocketBase(_flags, SOCK_CLIENT) -{ -} - -// -------------------------------------------------------------- -// --------- wxSocketClient DESTRUCTOR -------------------------- -// -------------------------------------------------------------- -wxSocketClient::~wxSocketClient() -{ -} - -// -------------------------------------------------------------- -// --------- wxSocketClient Connect functions ------------------- -// -------------------------------------------------------------- -bool wxSocketClient::Connect(wxSockAddress& addr_man, bool WXUNUSED(wait) ) -{ - struct linger linger; - - if (IsConnected()) - Close(); - - // Initializes all socket stuff ... - // -------------------------------- - m_fd = socket(addr_man.GetFamily(), SOCK_STREAM, 0); - - if (m_fd < 0) - return FALSE; - - m_connected = FALSE; - - linger.l_onoff = 1; - linger.l_linger = 5; - setsockopt(m_fd, SOL_SOCKET, SO_LINGER, (char*)&linger, sizeof(linger)); - - // Stay in touch with the state of things... - - unsigned long flag = 1; - setsockopt(m_fd, SOL_SOCKET, SO_KEEPALIVE, (char*)&flag, sizeof(int)); - - // Disable the nagle algorithm, which delays sends till the - // buffer is full (or a certain time period has passed?)... - -#if defined(__WINDOWS__) || (defined(IPPROTO_TCP) && defined(TCP_NODELAY)) - flag = 1; - setsockopt(m_fd, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(int)); -#endif - - struct sockaddr *remote; - size_t len; - - addr_man.Build(remote, len); - - if (connect(m_fd, remote, len) != 0) - return FALSE; - - m_internal->SetFD(m_fd); - - // Enables bg events. - // ------------------ - Notify(TRUE); - - m_connected = TRUE; - return TRUE; -} - -bool wxSocketClient::WaitOnConnect(long seconds, long microseconds) -{ - int ret = _Wait(seconds, microseconds, REQ_CONNECT | REQ_LOST); - - if (ret) - m_connected = TRUE; - - return m_connected; -} - -void wxSocketClient::OnRequest(wxRequestEvent evt) -{ - if (evt == EVT_CONNECT) - { - if (m_connected) - { - m_neededreq &= ~REQ_CONNECT; - return; - } - m_connected = TRUE; - return; - } - wxSocketBase::OnRequest(evt); -} - -///////////////////////////////////////////////////////////////// -// wxSocketHandler /////////////////////////////////////////////// -///////////////////////////////////////////////////////////////// - -wxSocketHandler *wxSocketHandler::master = NULL; -#if defined(__WINDOWS__) -static int win_initialized = 0; -#endif - -// -------------------------------------------------------------- -// --------- wxSocketHandler CONSTRUCTOR ------------------------ -// -------------------------------------------------------------- -wxSocketHandler::wxSocketHandler() -{ -#if defined(__WINDOWS__) - if (!win_initialized) - { - WSADATA wsaData; - - WSAStartup((1 << 8) | 1, &wsaData); - win_initialized = 1; - } -#endif - - socks = new wxList; - -#ifndef __WINDOWS__ - signal(SIGPIPE, SIG_IGN); -#endif -} - -// -------------------------------------------------------------- -// --------- wxSocketHandler DESTRUCTOR ------------------------- -// -------------------------------------------------------------- -wxSocketHandler::~wxSocketHandler() -{ - wxNode *next_node, *node = socks->First(); - - while (node) - { - wxSocketBase* sock = (wxSocketBase*)node->Data(); - - delete sock; - next_node = node->Next(); - delete node; - node = next_node; - } - - delete socks; - -#ifdef __WINDOWS__ - WSACleanup(); - win_initialized = 0; -#endif -} - -// -------------------------------------------------------------- -// --------- wxSocketHandler registering functions -------------- -// -------------------------------------------------------------- - -void wxSocketHandler::Register(wxSocketBase* sock) -{ - wxNode *node; - - for (node = socks->First(); node != NULL; node = node->Next()) - { - wxSocketBase* s = (wxSocketBase*)node->Data(); - - if (s == sock) - return; - } - - if (sock) - { - socks->Append(sock); - sock->SetHandler(this); - } -} - -void wxSocketHandler::UnRegister(wxSocketBase* sock) -{ - wxNode *node; - - for (node = socks->First(); node; node = node->Next()) - { - wxSocketBase* s = (wxSocketBase*)node->Data(); - - if (s == sock) - { - delete node; - sock->SetHandler(NULL); - return; - } - } -} - -unsigned long wxSocketHandler::Count() const -{ - return socks->Number(); -} - -// -------------------------------------------------------------- -// --------- wxSocketHandler "big" wait functions --------------- -// -------------------------------------------------------------- - -int wxSocketHandler::Wait(long seconds, long microseconds) -{ - // TODO Needs the completely asynchronous notifier. - - /* - int i; - int on_wait; - wxNode *node; - for (node = socks->First(), i=0; node; node = node->Next(), i++) - { - wxSocketBase *sock = (wxSocketBase *)node->Data(); - - sock->SaveState(); - - sock->SetupCallbacks(); - - sock->Callback(handler_cbk); - sock->CallbackData((char *)&on_wait); - } - on_wait = 0; - if (seconds != -1) - s_wake.Start((seconds*1000) + (microseconds/1000), TRUE); - - while (!on_wait) - PROCESS_EVENTS(); - - for (node = socks->First(), i=0; node; node = node->Next(), i++) - { - wxSocketBase *sock = (wxSocketBase *)node->Data(); - - sock->RestoreState(); - } - - if (on_wait == -2) - return 0; - - return on_wait; - */ - return 0; -} - -void wxSocketHandler::YieldSock() -{ - wxNode *node; - - // Nothing to do anymore here except waiting for the queue emptying. - for (node = socks->First(); node; node=node->Next()) { - wxSocketBase *sock = (wxSocketBase *)node->Data(); - - sock->m_internal->WaitForEnd(NULL); - } -} - -// -------------------------------------------------------------- -// --------- wxSocketHandler: create and register the socket ---- -// -------------------------------------------------------------- -wxSocketServer *wxSocketHandler::CreateServer(wxSockAddress& addr, - wxSocketBase::wxSockFlags flags) -{ - wxSocketServer *serv = new wxSocketServer(addr, flags); - - Register(serv); - return serv; -} - -wxSocketClient *wxSocketHandler::CreateClient(wxSocketBase::wxSockFlags flags) -{ - wxSocketClient *client = new wxSocketClient(flags); - - Register(client); - return client; -} - -bool wxSocketModule::OnInit() -{ - wxSocketHandler::master = new wxSocketHandler(); - return TRUE; -} - -void wxSocketModule::OnExit() -{ - delete wxSocketHandler::master; - wxSocketHandler::master = NULL; -} - -#endif - // __WXSTUBS__ - -#endif - // wxUSE_SOCKETS diff --git a/src/common/stream.cpp b/src/common/stream.cpp deleted file mode 100644 index d5954d71d8..0000000000 --- a/src/common/stream.cpp +++ /dev/null @@ -1,857 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stream.cpp -// Purpose: wxStream base classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stream.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" -#include -#include -#include -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#define BUF_TEMP_SIZE 10000 - -// ---------------------------------------------------------------------------- -// wxStreamBuffer -// ---------------------------------------------------------------------------- - -#define CHECK_ERROR(err) \ - if (m_stream->m_lasterror == wxStream_NOERROR) \ - m_stream->m_lasterror = err - -wxStreamBuffer::wxStreamBuffer(wxStreamBase& stream, BufMode mode) - : m_buffer_start(NULL), m_buffer_end(NULL), m_buffer_pos(NULL), - m_buffer_size(0), m_wback(NULL), m_wbacksize(0), m_wbackcur(0), - m_fixed(TRUE), m_flushable(TRUE), m_stream(&stream), - m_mode(mode), m_destroybuf(FALSE), m_destroystream(FALSE) -{ -} - -wxStreamBuffer::wxStreamBuffer(BufMode mode) - : m_buffer_start(NULL), m_buffer_end(NULL), m_buffer_pos(NULL), - m_buffer_size(0), m_wback(NULL), m_wbacksize(0), m_wbackcur(0), - m_fixed(TRUE), m_flushable(FALSE), m_stream(NULL), - m_mode(mode), m_destroybuf(FALSE), m_destroystream(TRUE) -{ - m_stream = new wxStreamBase(); -} - -wxStreamBuffer::wxStreamBuffer(const wxStreamBuffer& buffer) -{ - m_buffer_start = buffer.m_buffer_start; - m_buffer_end = buffer.m_buffer_end; - m_buffer_pos = buffer.m_buffer_pos; - m_buffer_size = buffer.m_buffer_size; - m_fixed = buffer.m_fixed; - m_flushable = buffer.m_flushable; - m_stream = buffer.m_stream; - m_mode = buffer.m_mode; - m_destroybuf = FALSE; - m_destroystream = FALSE; - m_wback = NULL; - m_wbacksize = 0; - m_wbackcur = 0; -} - -wxStreamBuffer::~wxStreamBuffer() -{ - if (m_wback) - free(m_wback); - if (m_destroybuf) - wxDELETEA(m_buffer_start); - if (m_destroystream) - delete m_stream; -} - -size_t wxStreamBuffer::WriteBack(const char *buf, size_t bufsize) -{ - char *ptrback; - - if (m_mode != read) - return 0; - - ptrback = AllocSpaceWBack(bufsize); - if (!ptrback) - return 0; - - memcpy(ptrback, buf, bufsize); - return bufsize; -} - -bool wxStreamBuffer::WriteBack(char c) -{ - char *ptrback; - - ptrback = AllocSpaceWBack(1); - if (!ptrback) - return FALSE; - - *ptrback = c; - return TRUE; -} - -void wxStreamBuffer::SetBufferIO(char *buffer_start, char *buffer_end) -{ - if (m_destroybuf) - wxDELETEA(m_buffer_start); - m_buffer_start = buffer_start; - m_buffer_end = buffer_end; - - m_buffer_size = m_buffer_end-m_buffer_start; - m_destroybuf = FALSE; - ResetBuffer(); -} - -void wxStreamBuffer::SetBufferIO(size_t bufsize) -{ - char *b_start; - - if (m_destroybuf) - wxDELETEA(m_buffer_start); - - if (!bufsize) { - m_buffer_start = NULL; - m_buffer_end = NULL; - m_buffer_pos = NULL; - m_buffer_size = 0; - return; - } - - b_start = new char[bufsize]; - SetBufferIO(b_start, b_start + bufsize); - m_destroybuf = TRUE; -} - -void wxStreamBuffer::ResetBuffer() -{ - m_stream->m_lasterror = wxStream_NOERROR; - m_stream->m_lastcount = 0; - if (m_mode == read) - m_buffer_pos = m_buffer_end; - else - m_buffer_pos = m_buffer_start; -} - -char *wxStreamBuffer::AllocSpaceWBack(size_t needed_size) -{ - char *temp_b; - - m_wbacksize += needed_size; - - if (!m_wback) - temp_b = (char *)malloc(m_wbacksize); - else - temp_b = (char *)realloc(m_wback, m_wbacksize); - - if (!temp_b) - return NULL; - m_wback = temp_b; - - return (char *)(m_wback+(m_wbacksize-needed_size)); -} - -size_t wxStreamBuffer::GetWBack(char *buf, size_t bsize) -{ - size_t s_toget = m_wbacksize-m_wbackcur; - - if (bsize < s_toget) - s_toget = bsize; - - memcpy(buf, (m_wback+m_wbackcur), s_toget); - - m_wbackcur += s_toget; - if (m_wbackcur == m_wbacksize) { - free(m_wback); - m_wback = (char *)NULL; - m_wbacksize = 0; - m_wbackcur = 0; - } - - return s_toget; -} - -bool wxStreamBuffer::FillBuffer() -{ - size_t count; - - count = m_stream->OnSysRead(m_buffer_start, m_buffer_size); - m_buffer_end = m_buffer_start+count; - m_buffer_pos = m_buffer_start; - - if (count == 0) - return FALSE; - return TRUE; -} - -bool wxStreamBuffer::FlushBuffer() -{ - size_t count, current; - - if (m_buffer_pos == m_buffer_start || !m_flushable) - return FALSE; - - current = m_buffer_pos-m_buffer_start; - count = m_stream->OnSysWrite(m_buffer_start, current); - if (count != current) - return FALSE; - m_buffer_pos = m_buffer_start; - - return TRUE; -} - -void wxStreamBuffer::GetFromBuffer(void *buffer, size_t size) -{ - size_t s_toget = m_buffer_end-m_buffer_pos; - - if (size < s_toget) - s_toget = size; - - memcpy(buffer, m_buffer_pos, s_toget); - m_buffer_pos += s_toget; -} - -void wxStreamBuffer::PutToBuffer(const void *buffer, size_t size) -{ - size_t s_toput = m_buffer_end-m_buffer_pos; - - if (s_toput < size && !m_fixed) { - m_buffer_start = (char *)realloc(m_buffer_start, m_buffer_size+size); - // I round a bit - m_buffer_size += size; - m_buffer_end = m_buffer_start+m_buffer_size; - s_toput = size; - } - if (s_toput > size) - s_toput = size; - memcpy(m_buffer_pos, buffer, s_toput); - m_buffer_pos += s_toput; -} - -void wxStreamBuffer::PutChar(char c) -{ - wxASSERT(m_stream != NULL); - - if (!m_buffer_size) { - m_stream->OnSysWrite(&c, 1); - return; - } - - if (GetDataLeft() == 0 && !FlushBuffer()) { - CHECK_ERROR(wxStream_WRITE_ERR); - return; - } - - PutToBuffer(&c, 1); - m_stream->m_lastcount = 1; -} - -char wxStreamBuffer::GetChar() -{ - char c; - - wxASSERT(m_stream != NULL); - - if (!m_buffer_size) { - m_stream->OnSysRead(&c, 1); - return c; - } - - if (!GetDataLeft()) { - CHECK_ERROR(wxStream_READ_ERR); - return 0; - } - - GetFromBuffer(&c, 1); - m_stream->m_lastcount = 1; - return c; -} - -size_t wxStreamBuffer::Read(void *buffer, size_t size) -{ - wxASSERT(m_stream != NULL); - - if (m_mode == write) - return 0; - - // ------------------ - // Buffering disabled - // ------------------ - - m_stream->m_lasterror = wxStream_NOERROR; - m_stream->m_lastcount = GetWBack((char *)buffer, size); - size -= m_stream->m_lastcount; - if (size == 0) - return m_stream->m_lastcount; - - buffer = (void *)((char *)buffer+m_stream->m_lastcount); - - if (!m_buffer_size) - return (m_stream->m_lastcount += m_stream->OnSysRead(buffer, size)); - - // ----------------- - // Buffering enabled - // ----------------- - size_t buf_left, orig_size = size; - - while (size > 0) { - buf_left = GetDataLeft(); - - // First case: the requested buffer is larger than the stream buffer, - // we split it. - if (size > buf_left) { - GetFromBuffer(buffer, buf_left); - size -= buf_left; - buffer = (char *)buffer + buf_left; // ANSI C++ violation. - - if (!FillBuffer()) { - CHECK_ERROR(wxStream_READ_ERR); - return (m_stream->m_lastcount = orig_size-size); - } - } else { - - // Second case: we just copy from the stream buffer. - GetFromBuffer(buffer, size); - break; - } - } - return (m_stream->m_lastcount += orig_size); -} - -size_t wxStreamBuffer::Read(wxStreamBuffer *s_buf) -{ - char buf[BUF_TEMP_SIZE]; - size_t s = 0, bytes_read = BUF_TEMP_SIZE; - - if (m_mode == write) - return 0; - - while (bytes_read != 0) { - bytes_read = Read(buf, bytes_read); - bytes_read = s_buf->Write(buf, bytes_read); - s += bytes_read; - } - return s; -} - -size_t wxStreamBuffer::Write(const void *buffer, size_t size) -{ - wxASSERT(m_stream != NULL); - - if (m_mode == read) - return 0; - - // ------------------ - // Buffering disabled - // ------------------ - - m_stream->m_lasterror = wxStream_NOERROR; - if (!m_buffer_size) - return (m_stream->m_lastcount = m_stream->OnSysWrite(buffer, size)); - - // ------------------ - // Buffering enabled - // ------------------ - - size_t buf_left, orig_size = size; - - while (size > 0) { - buf_left = m_buffer_end - m_buffer_pos; - - // First case: the buffer to write is larger than the stream buffer, - // we split it - if (size > buf_left) { - PutToBuffer(buffer, buf_left); - size -= buf_left; - buffer = (char *)buffer + buf_left; // ANSI C++ violation. - - if (!FlushBuffer()) { - CHECK_ERROR(wxStream_WRITE_ERR); - return (m_stream->m_lastcount = orig_size-size); - } - - m_buffer_pos = m_buffer_start; - - } else { - - // Second case: just copy it in the stream buffer. - PutToBuffer(buffer, size); - break; - } - } - return (m_stream->m_lastcount = orig_size); -} - -size_t wxStreamBuffer::Write(wxStreamBuffer *sbuf) -{ - char buf[BUF_TEMP_SIZE]; - size_t s = 0, bytes_count = BUF_TEMP_SIZE, b_count2; - - if (m_mode == read) - return 0; - - while (bytes_count == BUF_TEMP_SIZE) { - b_count2 = sbuf->Read(buf, bytes_count); - bytes_count = Write(buf, b_count2); - if (b_count2 > bytes_count) - sbuf->WriteBack(buf+bytes_count, b_count2-bytes_count); - s += bytes_count; - } - return s; -} - -off_t wxStreamBuffer::Seek(off_t pos, wxSeekMode mode) -{ - off_t ret_off, diff, last_access; - - last_access = GetLastAccess(); - - if (!m_flushable) { - diff = pos + GetIntPosition(); - if (diff < 0 || diff > last_access) - return wxInvalidOffset; - SetIntPosition(diff); - return diff; - } - - switch (mode) { - case wxFromStart: { - // We'll try to compute an internal position later ... - ret_off = m_stream->OnSysSeek(pos, wxFromStart); - ResetBuffer(); - return ret_off; - } - case wxFromCurrent: { - diff = pos + GetIntPosition(); - - if ( (diff > last_access) || (diff < 0) ) { - ret_off = m_stream->OnSysSeek(pos, wxFromCurrent); - ResetBuffer(); - return ret_off; - } else { - SetIntPosition(diff); - return pos; - } - } - case wxFromEnd: - // Hard to compute: always seek to the requested position. - ret_off = m_stream->OnSysSeek(pos, wxFromEnd); - ResetBuffer(); - return ret_off; - } - return wxInvalidOffset; -} - -off_t wxStreamBuffer::Tell() const -{ - off_t pos; - - if (m_flushable) { - pos = m_stream->OnSysTell(); - if (pos == wxInvalidOffset) - return wxInvalidOffset; - return pos - GetLastAccess() + GetIntPosition(); - } else - return GetIntPosition(); -} - -size_t wxStreamBuffer::GetDataLeft() -{ - if (m_buffer_end == m_buffer_pos && m_flushable) - FillBuffer(); - return m_buffer_end-m_buffer_pos; -} - -// ---------------------------------------------------------------------------- -// wxStreamBase -// ---------------------------------------------------------------------------- - -wxStreamBase::wxStreamBase() -{ - m_lasterror = wxStream_NOERROR; - m_lastcount = 0; -} - -wxStreamBase::~wxStreamBase() -{ -} - -size_t wxStreamBase::OnSysRead(void *WXUNUSED(buffer), size_t WXUNUSED(size)) -{ - return 0; -} - -size_t wxStreamBase::OnSysWrite(const void *WXUNUSED(buffer), size_t WXUNUSED(bufsize)) -{ - return 0; -} - -off_t wxStreamBase::OnSysSeek(off_t WXUNUSED(seek), wxSeekMode WXUNUSED(mode)) -{ - return wxInvalidOffset; -} - -off_t wxStreamBase::OnSysTell() const -{ - return wxInvalidOffset; -} - -// ---------------------------------------------------------------------------- -// wxInputStream -// ---------------------------------------------------------------------------- - -wxInputStream::wxInputStream() - : wxStreamBase() -{ - m_i_destroybuf = TRUE; - m_i_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::read); -} - -wxInputStream::wxInputStream(wxStreamBuffer *buffer) - : wxStreamBase() -{ - m_i_destroybuf = FALSE; - m_i_streambuf = buffer; -} - -wxInputStream::~wxInputStream() -{ - if (m_i_destroybuf) - delete m_i_streambuf; -} - -char wxInputStream::GetC() -{ - char c; - m_i_streambuf->Read(&c, 1); - return c; -} - -wxInputStream& wxInputStream::Read(void *buffer, size_t size) -{ - m_i_streambuf->Read(buffer, size); - // wxStreamBuffer sets all variables for us - return *this; -} - -char wxInputStream::Peek() -{ - m_i_streambuf->GetDataLeft(); - - return *(m_i_streambuf->GetBufferPos()); -} - - -wxInputStream& wxInputStream::Read(wxOutputStream& stream_out) -{ - char buf[BUF_TEMP_SIZE]; - size_t bytes_read = BUF_TEMP_SIZE; - - while (bytes_read == BUF_TEMP_SIZE) { - bytes_read = Read(buf, bytes_read).LastRead(); - bytes_read = stream_out.Write(buf, bytes_read).LastWrite(); - } - return *this; -} - -off_t wxInputStream::SeekI(off_t pos, wxSeekMode mode) -{ - return m_i_streambuf->Seek(pos, mode); -} - -off_t wxInputStream::TellI() const -{ - return m_i_streambuf->Tell(); -} - -// -------------------- -// Overloaded operators -// -------------------- - -wxInputStream& wxInputStream::operator>>(wxString& line) -{ - wxDataInputStream s(*this); - - line = s.ReadLine(); - return *this; -} - -wxInputStream& wxInputStream::operator>>(char& c) -{ - c = GetC(); - return *this; -} - -wxInputStream& wxInputStream::operator>>(short& i) -{ - long l; - - *this >> l; - i = (short)l; - return *this; -} - -wxInputStream& wxInputStream::operator>>(int& i) -{ - long l; - - *this >> l; - i = (short)l; - return *this; -} - -wxInputStream& wxInputStream::operator>>(long& i) -{ - /* I only implemented a simple integer parser */ - int c, sign; - - while (isspace( c = GetC() ) ) - /* Do nothing */ ; - - i = 0; - if (! (c == '-' || isdigit(c)) ) { - InputStreamBuffer()->WriteBack(c); - return *this; - } - - if (c == '-') { - sign = -1; - c = GetC(); - } else - sign = 1; - - while (isdigit(c)) { - i = i*10 + c; - c = GetC(); - } - - i *= sign; - - return *this; -} - -wxInputStream& wxInputStream::operator>>(double& f) -{ - /* I only implemented a simple float parser */ - int c, sign; - - while (isspace( c = GetC() ) ) - /* Do nothing */ ; - - f = 0.0; - if (! (c == '-' || isdigit(c)) ) { - InputStreamBuffer()->WriteBack(c); - return *this; - } - - if (c == '-') { - sign = -1; - c = GetC(); - } else - sign = 1; - - while (isdigit(c)) { - f = f*10 + (c - '0'); - c = GetC(); - } - - if (c == '.') { - double f_multiplicator = (double) 0.1; - c = GetC(); - - while (isdigit(c)) { - f += (c-'0')*f_multiplicator; - f_multiplicator /= 10; - c = GetC(); - } - } - - f *= sign; - - return *this; -} - -#if wxUSE_SERIAL -wxInputStream& wxInputStream::operator>>(wxObject *& obj) -{ - wxObjectInputStream obj_s(*this); - obj = obj_s.LoadObject(); - return *this; -} -#endif - - -// ---------------------------------------------------------------------------- -// wxOutputStream -// ---------------------------------------------------------------------------- -wxOutputStream::wxOutputStream() - : wxStreamBase() -{ - m_o_destroybuf = TRUE; - m_o_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::write); -} - -wxOutputStream::wxOutputStream(wxStreamBuffer *buffer) - : wxStreamBase() -{ - m_o_destroybuf = FALSE; - m_o_streambuf = buffer; -} - -wxOutputStream::~wxOutputStream() -{ - if (m_o_destroybuf) - delete m_o_streambuf; -} - -wxOutputStream& wxOutputStream::Write(const void *buffer, size_t size) -{ - m_o_streambuf->Write(buffer, size); - return *this; -} - -wxOutputStream& wxOutputStream::Write(wxInputStream& stream_in) -{ - stream_in.Read(*this); - return *this; -} - -off_t wxOutputStream::TellO() const -{ - return m_o_streambuf->Tell(); -} - -off_t wxOutputStream::SeekO(off_t pos, wxSeekMode mode) -{ - return m_o_streambuf->Seek(pos, mode); -} - -void wxOutputStream::Sync() -{ - m_o_streambuf->FlushBuffer(); -} - -wxOutputStream& wxOutputStream::operator<<(const char *string) -{ - return Write(string, strlen(string)); -} - -wxOutputStream& wxOutputStream::operator<<(wxString& string) -{ -#if wxUSE_UNICODE - const wxWX2MBbuf buf = string.mb_str(); - return *this << buf; -#else - return Write(string, string.Len()); -#endif -} - -wxOutputStream& wxOutputStream::operator<<(char c) -{ - return Write(&c, 1); -} - -wxOutputStream& wxOutputStream::operator<<(short i) -{ - wxString strint; - - strint.Printf(_T("%i"), i); - return *this << strint; -} - -wxOutputStream& wxOutputStream::operator<<(int i) -{ - wxString strint; - - strint.Printf(_T("%i"), i); - return *this << strint; -} - -wxOutputStream& wxOutputStream::operator<<(long i) -{ - wxString strlong; - - strlong.Printf(_T("%i"), i); - return *this << strlong; -} - -wxOutputStream& wxOutputStream::operator<<(double f) -{ - wxString strfloat; - - strfloat.Printf(_T("%f"), f); - return *this << strfloat; -} - -#if wxUSE_SERIAL -wxOutputStream& wxOutputStream::operator<<(wxObject& obj) -{ - wxObjectOutputStream obj_s(*this); - obj_s.SaveObject(obj); - return *this; -} -#endif - -// ---------------------------------------------------------------------------- -// wxFilterInputStream -// ---------------------------------------------------------------------------- -wxFilterInputStream::wxFilterInputStream() - : wxInputStream(NULL) -{ - // WARNING streambuf set to NULL ! -} - -wxFilterInputStream::wxFilterInputStream(wxInputStream& stream) - : wxInputStream(stream.InputStreamBuffer()) -{ - m_parent_i_stream = &stream; -} - -wxFilterInputStream::~wxFilterInputStream() -{ -} - -// ---------------------------------------------------------------------------- -// wxFilterOutputStream -// ---------------------------------------------------------------------------- -wxFilterOutputStream::wxFilterOutputStream() - : wxOutputStream(NULL) -{ -} - -wxFilterOutputStream::wxFilterOutputStream(wxOutputStream& stream) - : wxOutputStream(stream.OutputStreamBuffer()) -{ - m_parent_o_stream = &stream; -} - -wxFilterOutputStream::~wxFilterOutputStream() -{ -} - -// ---------------------------------------------------------------------------- -// Some IOManip function -// ---------------------------------------------------------------------------- - -wxOutputStream& wxEndL(wxOutputStream& stream) -{ -#ifdef __MSW__ - return stream.Write("\r\n", 2); -#else - return stream.Write("\n", 1); -#endif -} diff --git a/src/common/string.cpp b/src/common/string.cpp deleted file mode 100644 index da831ccafa..0000000000 --- a/src/common/string.cpp +++ /dev/null @@ -1,2339 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: string.cpp -// Purpose: wxString class -// Author: Vadim Zeitlin -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "string.h" -#endif - -/* - * About ref counting: - * 1) all empty strings use g_strEmpty, nRefs = -1 (set in Init()) - * 2) AllocBuffer() sets nRefs to 1, Lock() increments it by one - * 3) Unlock() decrements nRefs and frees memory if it goes to 0 - */ - -// =========================================================================== -// headers, declarations, constants -// =========================================================================== - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/defs.h" - #include "wx/string.h" - #include "wx/intl.h" -#if wxUSE_THREADS - #include -#endif -#endif - -#include -#include -#include - -#ifdef __SALFORDC__ - #include -#endif - -#if wxUSE_WCSRTOMBS - #include // for wcsrtombs(), see comments where it's used -#endif // GNU - -#ifdef WXSTRING_IS_WXOBJECT - IMPLEMENT_DYNAMIC_CLASS(wxString, wxObject) -#endif //WXSTRING_IS_WXOBJECT - -// allocating extra space for each string consumes more memory but speeds up -// the concatenation operations (nLen is the current string's length) -// NB: EXTRA_ALLOC must be >= 0! -#define EXTRA_ALLOC (19 - nLen % 16) - -// --------------------------------------------------------------------------- -// static class variables definition -// --------------------------------------------------------------------------- - -#ifdef wxSTD_STRING_COMPATIBILITY - const size_t wxString::npos = wxSTRING_MAXLEN; -#endif // wxSTD_STRING_COMPATIBILITY - -// ---------------------------------------------------------------------------- -// static data -// ---------------------------------------------------------------------------- - -// for an empty string, GetStringData() will return this address: this -// structure has the same layout as wxStringData and it's data() method will -// return the empty string (dummy pointer) -static const struct -{ - wxStringData data; - wxChar dummy; -} g_strEmpty = { {-1, 0, 0}, _T('\0') }; - -// empty C style string: points to 'string data' byte of g_strEmpty -extern const wxChar WXDLLEXPORT *g_szNul = &g_strEmpty.dummy; - -// ---------------------------------------------------------------------------- -// conditional compilation -// ---------------------------------------------------------------------------- - -// we want to find out if the current platform supports vsnprintf()-like -// function: for Unix this is done with configure, for Windows we test the -// compiler explicitly. -#ifdef __WXMSW__ - #ifdef __VISUALC__ - #define wxVsnprintf _vsnprintf - #endif -#else // !Windows - #ifdef HAVE_VSNPRINTF - #define wxVsnprintf vsnprintf - #endif -#endif // Windows/!Windows - -#ifndef wxVsnprintf - // in this case we'll use vsprintf() (which is ANSI and thus should be - // always available), but it's unsafe because it doesn't check for buffer - // size - so give a warning - #define wxVsnprintf(buffer,len,format,argptr) vsprintf(buffer,format, argptr) - - #if defined(__VISUALC__) - #pragma message("Using sprintf() because no snprintf()-like function defined") - #elif defined(__GNUG__) && !defined(__UNIX__) - #warning "Using sprintf() because no snprintf()-like function defined" - #elif defined(__MWERKS__) - #warning "Using sprintf() because no snprintf()-like function defined" - #endif //compiler -#endif // no vsnprintf - -#ifdef _AIX - // AIX has vsnprintf, but there's no prototype in the system headers. - extern "C" int vsnprintf(char* str, size_t n, const char* format, va_list ap); -#endif - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -#ifdef wxSTD_STRING_COMPATIBILITY - -// MS Visual C++ version 5.0 provides the new STL headers as well as the old -// iostream ones. -// -// ATTN: you can _not_ use both of these in the same program! - -istream& operator>>(istream& is, wxString& WXUNUSED(str)) -{ -#if 0 - int w = is.width(0); - if ( is.ipfx(0) ) { - streambuf *sb = is.rdbuf(); - str.erase(); - while ( true ) { - int ch = sb->sbumpc (); - if ( ch == EOF ) { - is.setstate(ios::eofbit); - break; - } - else if ( isspace(ch) ) { - sb->sungetc(); - break; - } - - str += ch; - if ( --w == 1 ) - break; - } - } - - is.isfx(); - if ( str.length() == 0 ) - is.setstate(ios::failbit); -#endif - return is; -} - -#endif //std::string compatibility - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// this small class is used to gather statistics for performance tuning -//#define WXSTRING_STATISTICS -#ifdef WXSTRING_STATISTICS - class Averager - { - public: - Averager(const char *sz) { m_sz = sz; m_nTotal = m_nCount = 0; } - ~Averager() - { printf("wxString: average %s = %f\n", m_sz, ((float)m_nTotal)/m_nCount); } - - void Add(size_t n) { m_nTotal += n; m_nCount++; } - - private: - size_t m_nCount, m_nTotal; - const char *m_sz; - } g_averageLength("allocation size"), - g_averageSummandLength("summand length"), - g_averageConcatHit("hit probability in concat"), - g_averageInitialLength("initial string length"); - - #define STATISTICS_ADD(av, val) g_average##av.Add(val) -#else - #define STATISTICS_ADD(av, val) -#endif // WXSTRING_STATISTICS - -// =========================================================================== -// wxString class core -// =========================================================================== - -// --------------------------------------------------------------------------- -// construction -// --------------------------------------------------------------------------- - -// constructs string of copies of character -wxString::wxString(wxChar ch, size_t nLength) -{ - Init(); - - if ( nLength > 0 ) { - AllocBuffer(nLength); - -#if wxUSE_UNICODE - // memset only works on char - for (size_t n=0; n 0 ) { - // trailing '\0' is written in AllocBuffer() - AllocBuffer(nLength); - memcpy(m_pchData, psz + nPos, nLength*sizeof(wxChar)); - } -} - -#ifdef wxSTD_STRING_COMPATIBILITY - -// poor man's iterators are "void *" pointers -wxString::wxString(const void *pStart, const void *pEnd) -{ - InitWith((const wxChar *)pStart, 0, - (const wxChar *)pEnd - (const wxChar *)pStart); -} - -#endif //std::string compatibility - -#if wxUSE_UNICODE - -// from multibyte string -wxString::wxString(const char *psz, wxMBConv& conv, size_t nLength) -{ - // first get necessary size - size_t nLen = psz ? conv.MB2WC((wchar_t *) NULL, psz, 0) : 0; - - // nLength is number of *Unicode* characters here! - if ((nLen != (size_t)-1) && (nLen > nLength)) - nLen = nLength; - - // empty? - if ( (nLen != 0) && (nLen != (size_t)-1) ) { - AllocBuffer(nLen); - conv.MB2WC(m_pchData, psz, nLen); - } - else { - Init(); - } -} - -#else - -#if wxUSE_WCHAR_T -// from wide string -wxString::wxString(const wchar_t *pwz) -{ - // first get necessary size - size_t nLen = pwz ? wxWC2MB((char *) NULL, pwz, 0) : 0; - - // empty? - if ( (nLen != 0) && (nLen != (size_t)-1) ) { - AllocBuffer(nLen); - wxWC2MB(m_pchData, pwz, nLen); - } - else { - Init(); - } -} -#endif - -#endif - -// --------------------------------------------------------------------------- -// memory allocation -// --------------------------------------------------------------------------- - -// allocates memory needed to store a C string of length nLen -void wxString::AllocBuffer(size_t nLen) -{ - wxASSERT( nLen > 0 ); // - wxASSERT( nLen <= INT_MAX-1 ); // max size (enough room for 1 extra) - - STATISTICS_ADD(Length, nLen); - - // allocate memory: - // 1) one extra character for '\0' termination - // 2) sizeof(wxStringData) for housekeeping info - wxStringData* pData = (wxStringData*) - malloc(sizeof(wxStringData) + (nLen + EXTRA_ALLOC + 1)*sizeof(wxChar)); - pData->nRefs = 1; - pData->nDataLength = nLen; - pData->nAllocLength = nLen + EXTRA_ALLOC; - m_pchData = pData->data(); // data starts after wxStringData - m_pchData[nLen] = _T('\0'); -} - -// must be called before changing this string -void wxString::CopyBeforeWrite() -{ - wxStringData* pData = GetStringData(); - - if ( pData->IsShared() ) { - pData->Unlock(); // memory not freed because shared - size_t nLen = pData->nDataLength; - AllocBuffer(nLen); - memcpy(m_pchData, pData->data(), nLen*sizeof(wxChar)); - } - - wxASSERT( !GetStringData()->IsShared() ); // we must be the only owner -} - -// must be called before replacing contents of this string -void wxString::AllocBeforeWrite(size_t nLen) -{ - wxASSERT( nLen != 0 ); // doesn't make any sense - - // must not share string and must have enough space - wxStringData* pData = GetStringData(); - if ( pData->IsShared() || (nLen > pData->nAllocLength) ) { - // can't work with old buffer, get new one - pData->Unlock(); - AllocBuffer(nLen); - } - else { - // update the string length - pData->nDataLength = nLen; - } - - wxASSERT( !GetStringData()->IsShared() ); // we must be the only owner -} - -// allocate enough memory for nLen characters -void wxString::Alloc(size_t nLen) -{ - wxStringData *pData = GetStringData(); - if ( pData->nAllocLength <= nLen ) { - if ( pData->IsEmpty() ) { - nLen += EXTRA_ALLOC; - - wxStringData* pData = (wxStringData*) - malloc(sizeof(wxStringData) + (nLen + 1)*sizeof(wxChar)); - pData->nRefs = 1; - pData->nDataLength = 0; - pData->nAllocLength = nLen; - m_pchData = pData->data(); // data starts after wxStringData - m_pchData[0u] = _T('\0'); - } - else if ( pData->IsShared() ) { - pData->Unlock(); // memory not freed because shared - size_t nOldLen = pData->nDataLength; - AllocBuffer(nLen); - memcpy(m_pchData, pData->data(), nOldLen*sizeof(wxChar)); - } - else { - nLen += EXTRA_ALLOC; - - wxStringData *p = (wxStringData *) - realloc(pData, sizeof(wxStringData) + (nLen + 1)*sizeof(wxChar)); - - if ( p == NULL ) { - // @@@ what to do on memory error? - return; - } - - // it's not important if the pointer changed or not (the check for this - // is not faster than assigning to m_pchData in all cases) - p->nAllocLength = nLen; - m_pchData = p->data(); - } - } - //else: we've already got enough -} - -// shrink to minimal size (releasing extra memory) -void wxString::Shrink() -{ - wxStringData *pData = GetStringData(); - - // this variable is unused in release build, so avoid the compiler warning by - // just not declaring it -#ifdef __WXDEBUG__ - void *p = -#endif - realloc(pData, sizeof(wxStringData) + (pData->nDataLength + 1)*sizeof(wxChar)); - - wxASSERT( p != NULL ); // can't free memory? - wxASSERT( p == pData ); // we're decrementing the size - block shouldn't move! -} - -// get the pointer to writable buffer of (at least) nLen bytes -wxChar *wxString::GetWriteBuf(size_t nLen) -{ - AllocBeforeWrite(nLen); - - wxASSERT( GetStringData()->nRefs == 1 ); - GetStringData()->Validate(FALSE); - - return m_pchData; -} - -// put string back in a reasonable state after GetWriteBuf -void wxString::UngetWriteBuf() -{ - GetStringData()->nDataLength = wxStrlen(m_pchData); - GetStringData()->Validate(TRUE); -} - -// --------------------------------------------------------------------------- -// data access -// --------------------------------------------------------------------------- - -// all functions are inline in string.h - -// --------------------------------------------------------------------------- -// assignment operators -// --------------------------------------------------------------------------- - -// helper function: does real copy -void wxString::AssignCopy(size_t nSrcLen, const wxChar *pszSrcData) -{ - if ( nSrcLen == 0 ) { - Reinit(); - } - else { - AllocBeforeWrite(nSrcLen); - memcpy(m_pchData, pszSrcData, nSrcLen*sizeof(wxChar)); - GetStringData()->nDataLength = nSrcLen; - m_pchData[nSrcLen] = _T('\0'); - } -} - -// assigns one string to another -wxString& wxString::operator=(const wxString& stringSrc) -{ - wxASSERT( stringSrc.GetStringData()->IsValid() ); - - // don't copy string over itself - if ( m_pchData != stringSrc.m_pchData ) { - if ( stringSrc.GetStringData()->IsEmpty() ) { - Reinit(); - } - else { - // adjust references - GetStringData()->Unlock(); - m_pchData = stringSrc.m_pchData; - GetStringData()->Lock(); - } - } - - return *this; -} - -// assigns a single character -wxString& wxString::operator=(wxChar ch) -{ - AssignCopy(1, &ch); - return *this; -} - -// assigns C string -wxString& wxString::operator=(const wxChar *psz) -{ - AssignCopy(wxStrlen(psz), psz); - return *this; -} - -#if !wxUSE_UNICODE - -// same as 'signed char' variant -wxString& wxString::operator=(const unsigned char* psz) -{ - *this = (const char *)psz; - return *this; -} - -#if wxUSE_WCHAR_T -wxString& wxString::operator=(const wchar_t *pwz) -{ - wxString str(pwz); - *this = str; - return *this; -} -#endif - -#endif - -// --------------------------------------------------------------------------- -// string concatenation -// --------------------------------------------------------------------------- - -// add something to this string -void wxString::ConcatSelf(int nSrcLen, const wxChar *pszSrcData) -{ - STATISTICS_ADD(SummandLength, nSrcLen); - - // concatenating an empty string is a NOP - if ( nSrcLen > 0 ) { - wxStringData *pData = GetStringData(); - size_t nLen = pData->nDataLength; - size_t nNewLen = nLen + nSrcLen; - - // alloc new buffer if current is too small - if ( pData->IsShared() ) { - STATISTICS_ADD(ConcatHit, 0); - - // we have to allocate another buffer - wxStringData* pOldData = GetStringData(); - AllocBuffer(nNewLen); - memcpy(m_pchData, pOldData->data(), nLen*sizeof(wxChar)); - pOldData->Unlock(); - } - else if ( nNewLen > pData->nAllocLength ) { - STATISTICS_ADD(ConcatHit, 0); - - // we have to grow the buffer - Alloc(nNewLen); - } - else { - STATISTICS_ADD(ConcatHit, 1); - - // the buffer is already big enough - } - - // should be enough space - wxASSERT( nNewLen <= GetStringData()->nAllocLength ); - - // fast concatenation - all is done in our buffer - memcpy(m_pchData + nLen, pszSrcData, nSrcLen*sizeof(wxChar)); - - m_pchData[nNewLen] = _T('\0'); // put terminating '\0' - GetStringData()->nDataLength = nNewLen; // and fix the length - } - //else: the string to append was empty -} - -/* - * concatenation functions come in 5 flavours: - * string + string - * char + string and string + char - * C str + string and string + C str - */ - -wxString operator+(const wxString& string1, const wxString& string2) -{ - wxASSERT( string1.GetStringData()->IsValid() ); - wxASSERT( string2.GetStringData()->IsValid() ); - - wxString s = string1; - s += string2; - - return s; -} - -wxString operator+(const wxString& string, wxChar ch) -{ - wxASSERT( string.GetStringData()->IsValid() ); - - wxString s = string; - s += ch; - - return s; -} - -wxString operator+(wxChar ch, const wxString& string) -{ - wxASSERT( string.GetStringData()->IsValid() ); - - wxString s = ch; - s += string; - - return s; -} - -wxString operator+(const wxString& string, const wxChar *psz) -{ - wxASSERT( string.GetStringData()->IsValid() ); - - wxString s; - s.Alloc(wxStrlen(psz) + string.Len()); - s = string; - s += psz; - - return s; -} - -wxString operator+(const wxChar *psz, const wxString& string) -{ - wxASSERT( string.GetStringData()->IsValid() ); - - wxString s; - s.Alloc(wxStrlen(psz) + string.Len()); - s = psz; - s += string; - - return s; -} - -// =========================================================================== -// other common string functions -// =========================================================================== - -// --------------------------------------------------------------------------- -// simple sub-string extraction -// --------------------------------------------------------------------------- - -// helper function: clone the data attached to this string -void wxString::AllocCopy(wxString& dest, int nCopyLen, int nCopyIndex) const -{ - if ( nCopyLen == 0 ) { - dest.Init(); - } - else { - dest.AllocBuffer(nCopyLen); - memcpy(dest.m_pchData, m_pchData + nCopyIndex, nCopyLen*sizeof(wxChar)); - } -} - -// extract string of length nCount starting at nFirst -wxString wxString::Mid(size_t nFirst, size_t nCount) const -{ - wxStringData *pData = GetStringData(); - size_t nLen = pData->nDataLength; - - // default value of nCount is wxSTRING_MAXLEN and means "till the end" - if ( nCount == wxSTRING_MAXLEN ) - { - nCount = nLen - nFirst; - } - - // out-of-bounds requests return sensible things - if ( nFirst + nCount > nLen ) - { - nCount = nLen - nFirst; - } - - if ( nFirst > nLen ) - { - // AllocCopy() will return empty string - nCount = 0; - } - - wxString dest; - AllocCopy(dest, nCount, nFirst); - - return dest; -} - -// extract nCount last (rightmost) characters -wxString wxString::Right(size_t nCount) const -{ - if ( nCount > (size_t)GetStringData()->nDataLength ) - nCount = GetStringData()->nDataLength; - - wxString dest; - AllocCopy(dest, nCount, GetStringData()->nDataLength - nCount); - return dest; -} - -// get all characters after the last occurence of ch -// (returns the whole string if ch not found) -wxString wxString::AfterLast(wxChar ch) const -{ - wxString str; - int iPos = Find(ch, TRUE); - if ( iPos == wxNOT_FOUND ) - str = *this; - else - str = c_str() + iPos + 1; - - return str; -} - -// extract nCount first (leftmost) characters -wxString wxString::Left(size_t nCount) const -{ - if ( nCount > (size_t)GetStringData()->nDataLength ) - nCount = GetStringData()->nDataLength; - - wxString dest; - AllocCopy(dest, nCount, 0); - return dest; -} - -// get all characters before the first occurence of ch -// (returns the whole string if ch not found) -wxString wxString::BeforeFirst(wxChar ch) const -{ - wxString str; - for ( const wxChar *pc = m_pchData; *pc != _T('\0') && *pc != ch; pc++ ) - str += *pc; - - return str; -} - -/// get all characters before the last occurence of ch -/// (returns empty string if ch not found) -wxString wxString::BeforeLast(wxChar ch) const -{ - wxString str; - int iPos = Find(ch, TRUE); - if ( iPos != wxNOT_FOUND && iPos != 0 ) - str = wxString(c_str(), iPos); - - return str; -} - -/// get all characters after the first occurence of ch -/// (returns empty string if ch not found) -wxString wxString::AfterFirst(wxChar ch) const -{ - wxString str; - int iPos = Find(ch); - if ( iPos != wxNOT_FOUND ) - str = c_str() + iPos + 1; - - return str; -} - -// replace first (or all) occurences of some substring with another one -size_t wxString::Replace(const wxChar *szOld, const wxChar *szNew, bool bReplaceAll) -{ - size_t uiCount = 0; // count of replacements made - - size_t uiOldLen = wxStrlen(szOld); - - wxString strTemp; - const wxChar *pCurrent = m_pchData; - const wxChar *pSubstr; - while ( *pCurrent != _T('\0') ) { - pSubstr = wxStrstr(pCurrent, szOld); - if ( pSubstr == NULL ) { - // strTemp is unused if no replacements were made, so avoid the copy - if ( uiCount == 0 ) - return 0; - - strTemp += pCurrent; // copy the rest - break; // exit the loop - } - else { - // take chars before match - strTemp.ConcatSelf(pSubstr - pCurrent, pCurrent); - strTemp += szNew; - pCurrent = pSubstr + uiOldLen; // restart after match - - uiCount++; - - // stop now? - if ( !bReplaceAll ) { - strTemp += pCurrent; // copy the rest - break; // exit the loop - } - } - } - - // only done if there were replacements, otherwise would have returned above - *this = strTemp; - - return uiCount; -} - -bool wxString::IsAscii() const -{ - const wxChar *s = (const wxChar*) *this; - while(*s){ - if(!isascii(*s)) return(FALSE); - s++; - } - return(TRUE); -} - -bool wxString::IsWord() const -{ - const wxChar *s = (const wxChar*) *this; - while(*s){ - if(!wxIsalpha(*s)) return(FALSE); - s++; - } - return(TRUE); -} - -bool wxString::IsNumber() const -{ - const wxChar *s = (const wxChar*) *this; - while(*s){ - if(!wxIsdigit(*s)) return(FALSE); - s++; - } - return(TRUE); -} - -wxString wxString::Strip(stripType w) const -{ - wxString s = *this; - if ( w & leading ) s.Trim(FALSE); - if ( w & trailing ) s.Trim(TRUE); - return s; -} - -// --------------------------------------------------------------------------- -// case conversion -// --------------------------------------------------------------------------- - -wxString& wxString::MakeUpper() -{ - CopyBeforeWrite(); - - for ( wxChar *p = m_pchData; *p; p++ ) - *p = (wxChar)wxToupper(*p); - - return *this; -} - -wxString& wxString::MakeLower() -{ - CopyBeforeWrite(); - - for ( wxChar *p = m_pchData; *p; p++ ) - *p = (wxChar)wxTolower(*p); - - return *this; -} - -// --------------------------------------------------------------------------- -// trimming and padding -// --------------------------------------------------------------------------- - -// trims spaces (in the sense of isspace) from left or right side -wxString& wxString::Trim(bool bFromRight) -{ - // first check if we're going to modify the string at all - if ( !IsEmpty() && - ( - (bFromRight && wxIsspace(GetChar(Len() - 1))) || - (!bFromRight && wxIsspace(GetChar(0u))) - ) - ) - { - // ok, there is at least one space to trim - CopyBeforeWrite(); - - if ( bFromRight ) - { - // find last non-space character - wxChar *psz = m_pchData + GetStringData()->nDataLength - 1; - while ( wxIsspace(*psz) && (psz >= m_pchData) ) - psz--; - - // truncate at trailing space start - *++psz = _T('\0'); - GetStringData()->nDataLength = psz - m_pchData; - } - else - { - // find first non-space character - const wxChar *psz = m_pchData; - while ( wxIsspace(*psz) ) - psz++; - - // fix up data and length - int nDataLength = GetStringData()->nDataLength - (psz - (const wxChar*) m_pchData); - memmove(m_pchData, psz, (nDataLength + 1)*sizeof(wxChar)); - GetStringData()->nDataLength = nDataLength; - } - } - - return *this; -} - -// adds nCount characters chPad to the string from either side -wxString& wxString::Pad(size_t nCount, wxChar chPad, bool bFromRight) -{ - wxString s(chPad, nCount); - - if ( bFromRight ) - *this += s; - else - { - s += *this; - *this = s; - } - - return *this; -} - -// truncate the string -wxString& wxString::Truncate(size_t uiLen) -{ - if ( uiLen < Len() ) { - CopyBeforeWrite(); - - *(m_pchData + uiLen) = _T('\0'); - GetStringData()->nDataLength = uiLen; - } - //else: nothing to do, string is already short enough - - return *this; -} - -// --------------------------------------------------------------------------- -// finding (return wxNOT_FOUND if not found and index otherwise) -// --------------------------------------------------------------------------- - -// find a character -int wxString::Find(wxChar ch, bool bFromEnd) const -{ - const wxChar *psz = bFromEnd ? wxStrrchr(m_pchData, ch) : wxStrchr(m_pchData, ch); - - return (psz == NULL) ? wxNOT_FOUND : psz - (const wxChar*) m_pchData; -} - -// find a sub-string (like strstr) -int wxString::Find(const wxChar *pszSub) const -{ - const wxChar *psz = wxStrstr(m_pchData, pszSub); - - return (psz == NULL) ? wxNOT_FOUND : psz - (const wxChar*) m_pchData; -} - -// --------------------------------------------------------------------------- -// stream-like operators -// --------------------------------------------------------------------------- -wxString& wxString::operator<<(int i) -{ - wxString res; - res.Printf(_T("%d"), i); - - return (*this) << res; -} - -wxString& wxString::operator<<(float f) -{ - wxString res; - res.Printf(_T("%f"), f); - - return (*this) << res; -} - -wxString& wxString::operator<<(double d) -{ - wxString res; - res.Printf(_T("%g"), d); - - return (*this) << res; -} - -// --------------------------------------------------------------------------- -// formatted output -// --------------------------------------------------------------------------- -int wxString::Printf(const wxChar *pszFormat, ...) -{ - va_list argptr; - va_start(argptr, pszFormat); - - int iLen = PrintfV(pszFormat, argptr); - - va_end(argptr); - - return iLen; -} - -int wxString::PrintfV(const wxChar* pszFormat, va_list argptr) -{ - // static buffer to avoid dynamic memory allocation each time - char s_szScratch[1024]; // using static buffer causes internal compiler err -#if 0 -#if wxUSE_THREADS - // protect the static buffer - static wxCriticalSection critsect; - wxCriticalSectionLocker lock(critsect); -#endif -#endif - -#if wxUSE_EXPERIMENTAL_PRINTF -// the new implementation - - Reinit(); - for (size_t n = 0; pszFormat[n]; n++) - if (pszFormat[n] == _T('%')) { - static char s_szFlags[256] = "%"; - size_t flagofs = 1; - bool adj_left = FALSE, in_prec = FALSE, - prec_dot = FALSE, done = FALSE; - int ilen = 0; - size_t min_width = 0, max_width = wxSTRING_MAXLEN; - do { -#define CHECK_PREC if (in_prec && !prec_dot) { s_szFlags[flagofs++] = '.'; prec_dot = TRUE; } - switch (pszFormat[++n]) { - case _T('\0'): - done = TRUE; - break; - case _T('%'): - *this += _T('%'); - done = TRUE; - break; - case _T('#'): - case _T('0'): - case _T(' '): - case _T('+'): - case _T('\''): - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - break; - case _T('-'): - CHECK_PREC - adj_left = TRUE; - s_szFlags[flagofs++] = pszFormat[n]; - break; - case _T('.'): - CHECK_PREC - in_prec = TRUE; - prec_dot = FALSE; - max_width = 0; - // dot will be auto-added to s_szFlags if non-negative number follows - break; - case _T('h'): - ilen = -1; - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - break; - case _T('l'): - ilen = 1; - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - break; - case _T('q'): - case _T('L'): - ilen = 2; - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - break; - case _T('Z'): - ilen = 3; - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - break; - case _T('*'): - { - int len = va_arg(argptr, int); - if (in_prec) { - if (len<0) break; - CHECK_PREC - max_width = len; - } else { - if (len<0) { - adj_left = !adj_left; - s_szFlags[flagofs++] = '-'; - len = -len; - } - min_width = len; - } - flagofs += ::sprintf(s_szFlags+flagofs,"%d",len); - } - break; - case _T('1'): case _T('2'): case _T('3'): - case _T('4'): case _T('5'): case _T('6'): - case _T('7'): case _T('8'): case _T('9'): - { - int len = 0; - CHECK_PREC - while ((pszFormat[n]>=_T('0')) && (pszFormat[n]<=_T('9'))) { - s_szFlags[flagofs++] = pszFormat[n]; - len = len*10 + (pszFormat[n] - _T('0')); - n++; - } - if (in_prec) max_width = len; - else min_width = len; - n--; // the main loop pre-increments n again - } - break; - case _T('d'): - case _T('i'): - case _T('o'): - case _T('u'): - case _T('x'): - case _T('X'): - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - s_szFlags[flagofs] = '\0'; - if (ilen == 0 ) { - int val = va_arg(argptr, int); - ::sprintf(s_szScratch, s_szFlags, val); - } - else if (ilen == -1) { - short int val = va_arg(argptr, short int); - ::sprintf(s_szScratch, s_szFlags, val); - } - else if (ilen == 1) { - long int val = va_arg(argptr, long int); - ::sprintf(s_szScratch, s_szFlags, val); - } - else if (ilen == 2) { -#if SIZEOF_LONG_LONG - long long int val = va_arg(argptr, long long int); - ::sprintf(s_szScratch, s_szFlags, val); -#else - long int val = va_arg(argptr, long int); - ::sprintf(s_szScratch, s_szFlags, val); -#endif - } - else if (ilen == 3) { - size_t val = va_arg(argptr, size_t); - ::sprintf(s_szScratch, s_szFlags, val); - } - *this += wxString(s_szScratch); - done = TRUE; - break; - case _T('e'): - case _T('E'): - case _T('f'): - case _T('g'): - case _T('G'): - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - s_szFlags[flagofs] = '\0'; - if (ilen == 2) { - long double val = va_arg(argptr, long double); - ::sprintf(s_szScratch, s_szFlags, val); - } else { - double val = va_arg(argptr, double); - ::sprintf(s_szScratch, s_szFlags, val); - } - *this += wxString(s_szScratch); - done = TRUE; - break; - case _T('p'): - { - void *val = va_arg(argptr, void *); - CHECK_PREC - s_szFlags[flagofs++] = pszFormat[n]; - s_szFlags[flagofs] = '\0'; - ::sprintf(s_szScratch, s_szFlags, val); - *this += wxString(s_szScratch); - done = TRUE; - } - break; - case _T('c'): - { - wxChar val = va_arg(argptr, int); - // we don't need to honor padding here, do we? - *this += val; - done = TRUE; - } - break; - case _T('s'): - if (ilen == -1) { - // wx extension: we'll let %hs mean non-Unicode strings - char *val = va_arg(argptr, char *); -#if wxUSE_UNICODE - // ASCII->Unicode constructor handles max_width right - wxString s(val, wxConvLibc, max_width); -#else - size_t len = wxSTRING_MAXLEN; - if (val) { - for (len = 0; val[len] && (len= 1) { - long int *val = va_arg(argptr, long int *); - *val = Len(); - } - done = TRUE; - break; - default: - if (wxIsalpha(pszFormat[n])) - // probably some flag not taken care of here yet - s_szFlags[flagofs++] = pszFormat[n]; - else { - // bad format - *this += _T('%'); // just to pass the glibc tst-printf.c - n--; - done = TRUE; - } - break; - } -#undef CHECK_PREC - } while (!done); - } else *this += pszFormat[n]; - -#else - // NB: wxVsnprintf() may return either less than the buffer size or -1 if there - // is not enough place depending on implementation - int iLen = wxVsnprintf(s_szScratch, WXSIZEOF(s_szScratch), pszFormat, argptr); - char *buffer; - if ( iLen < (int)WXSIZEOF(s_szScratch) ) { - buffer = s_szScratch; - } - else { - int size = WXSIZEOF(s_szScratch) * 2; - buffer = (char *)malloc(size); - while ( buffer != NULL ) { - iLen = wxVsnprintf(buffer, WXSIZEOF(s_szScratch), pszFormat, argptr); - if ( iLen < size ) { - // ok, there was enough space - break; - } - - // still not enough, double it again - buffer = (char *)realloc(buffer, size *= 2); - } - - if ( !buffer ) { - // out of memory - return -1; - } - } - - wxString s(buffer); - *this = s; - - if ( buffer != s_szScratch ) - free(buffer); -#endif - - return Len(); -} - -// ---------------------------------------------------------------------------- -// misc other operations -// ---------------------------------------------------------------------------- -bool wxString::Matches(const wxChar *pszMask) const -{ - // check char by char - const wxChar *pszTxt; - for ( pszTxt = c_str(); *pszMask != _T('\0'); pszMask++, pszTxt++ ) { - switch ( *pszMask ) { - case _T('?'): - if ( *pszTxt == _T('\0') ) - return FALSE; - - pszTxt++; - pszMask++; - break; - - case _T('*'): - { - // ignore special chars immediately following this one - while ( *pszMask == _T('*') || *pszMask == _T('?') ) - pszMask++; - - // if there is nothing more, match - if ( *pszMask == _T('\0') ) - return TRUE; - - // are there any other metacharacters in the mask? - size_t uiLenMask; - const wxChar *pEndMask = wxStrpbrk(pszMask, _T("*?")); - - if ( pEndMask != NULL ) { - // we have to match the string between two metachars - uiLenMask = pEndMask - pszMask; - } - else { - // we have to match the remainder of the string - uiLenMask = wxStrlen(pszMask); - } - - wxString strToMatch(pszMask, uiLenMask); - const wxChar* pMatch = wxStrstr(pszTxt, strToMatch); - if ( pMatch == NULL ) - return FALSE; - - // -1 to compensate "++" in the loop - pszTxt = pMatch + uiLenMask - 1; - pszMask += uiLenMask - 1; - } - break; - - default: - if ( *pszMask != *pszTxt ) - return FALSE; - break; - } - } - - // match only if nothing left - return *pszTxt == _T('\0'); -} - -// Count the number of chars -int wxString::Freq(wxChar ch) const -{ - int count = 0; - int len = Len(); - for (int i = 0; i < len; i++) - { - if (GetChar(i) == ch) - count ++; - } - return count; -} - -// convert to upper case, return the copy of the string -wxString wxString::Upper() const -{ wxString s(*this); return s.MakeUpper(); } - -// convert to lower case, return the copy of the string -wxString wxString::Lower() const { wxString s(*this); return s.MakeLower(); } - -int wxString::sprintf(const wxChar *pszFormat, ...) - { - va_list argptr; - va_start(argptr, pszFormat); - int iLen = PrintfV(pszFormat, argptr); - va_end(argptr); - return iLen; - } - -// --------------------------------------------------------------------------- -// standard C++ library string functions -// --------------------------------------------------------------------------- -#ifdef wxSTD_STRING_COMPATIBILITY - -wxString& wxString::insert(size_t nPos, const wxString& str) -{ - wxASSERT( str.GetStringData()->IsValid() ); - wxASSERT( nPos <= Len() ); - - if ( !str.IsEmpty() ) { - wxString strTmp; - wxChar *pc = strTmp.GetWriteBuf(Len() + str.Len()); - wxStrncpy(pc, c_str(), nPos); - wxStrcpy(pc + nPos, str); - wxStrcpy(pc + nPos + str.Len(), c_str() + nPos); - strTmp.UngetWriteBuf(); - *this = strTmp; - } - - return *this; -} - -size_t wxString::find(const wxString& str, size_t nStart) const -{ - wxASSERT( str.GetStringData()->IsValid() ); - wxASSERT( nStart <= Len() ); - - const wxChar *p = wxStrstr(c_str() + nStart, str); - - return p == NULL ? npos : p - c_str(); -} - -// VC++ 1.5 can't cope with the default argument in the header. -#if !defined(__VISUALC__) || defined(__WIN32__) -size_t wxString::find(const wxChar* sz, size_t nStart, size_t n) const -{ - return find(wxString(sz, n == npos ? 0 : n), nStart); -} -#endif // VC++ 1.5 - -// Gives a duplicate symbol (presumably a case-insensitivity problem) -#if !defined(__BORLANDC__) -size_t wxString::find(wxChar ch, size_t nStart) const -{ - wxASSERT( nStart <= Len() ); - - const wxChar *p = wxStrchr(c_str() + nStart, ch); - - return p == NULL ? npos : p - c_str(); -} -#endif - -size_t wxString::rfind(const wxString& str, size_t nStart) const -{ - wxASSERT( str.GetStringData()->IsValid() ); - wxASSERT( nStart <= Len() ); - - // TODO could be made much quicker than that - const wxChar *p = c_str() + (nStart == npos ? Len() : nStart); - while ( p >= c_str() + str.Len() ) { - if ( wxStrncmp(p - str.Len(), str, str.Len()) == 0 ) - return p - str.Len() - c_str(); - p--; - } - - return npos; -} - -// VC++ 1.5 can't cope with the default argument in the header. -#if !defined(__VISUALC__) || defined(__WIN32__) -size_t wxString::rfind(const wxChar* sz, size_t nStart, size_t n) const -{ - return rfind(wxString(sz, n == npos ? 0 : n), nStart); -} - -size_t wxString::rfind(wxChar ch, size_t nStart) const -{ - if ( nStart == npos ) - { - nStart = Len(); - } - else - { - wxASSERT( nStart <= Len() ); - } - - const wxChar *p = wxStrrchr(c_str(), ch); - - if ( p == NULL ) - return npos; - - size_t result = p - c_str(); - return ( result > nStart ) ? npos : result; -} -#endif // VC++ 1.5 - -size_t wxString::find_first_of(const wxChar* sz, size_t nStart) const -{ - const wxChar *start = c_str() + nStart; - const wxChar *firstOf = wxStrpbrk(start, sz); - if ( firstOf ) - return firstOf - start; - else - return npos; -} - -size_t wxString::find_last_of(const wxChar* sz, size_t nStart) const -{ - if ( nStart == npos ) - { - nStart = Len(); - } - else - { - wxASSERT( nStart <= Len() ); - } - - for ( const wxChar *p = c_str() + length() - 1; p >= c_str(); p-- ) - { - if ( wxStrchr(sz, *p) ) - return p - c_str(); - } - - return npos; -} - -size_t wxString::find_first_not_of(const wxChar* sz, size_t nStart) const -{ - if ( nStart == npos ) - { - nStart = Len(); - } - else - { - wxASSERT( nStart <= Len() ); - } - - size_t nAccept = wxStrspn(c_str() + nStart, sz); - if ( nAccept >= length() - nStart ) - return npos; - else - return nAccept; -} - -size_t wxString::find_first_not_of(wxChar ch, size_t nStart) const -{ - wxASSERT( nStart <= Len() ); - - for ( const wxChar *p = c_str() + nStart; *p; p++ ) - { - if ( *p != ch ) - return p - c_str(); - } - - return npos; -} - -size_t wxString::find_last_not_of(const wxChar* sz, size_t nStart) const -{ - if ( nStart == npos ) - { - nStart = Len(); - } - else - { - wxASSERT( nStart <= Len() ); - } - - for ( const wxChar *p = c_str() + nStart - 1; p >= c_str(); p-- ) - { - if ( !wxStrchr(sz, *p) ) - return p - c_str(); - } - - return npos; -} - -size_t wxString::find_last_not_of(wxChar ch, size_t nStart) const -{ - if ( nStart == npos ) - { - nStart = Len(); - } - else - { - wxASSERT( nStart <= Len() ); - } - - for ( const wxChar *p = c_str() + nStart - 1; p >= c_str(); p-- ) - { - if ( *p != ch ) - return p - c_str(); - } - - return npos; -} - -wxString wxString::substr(size_t nStart, size_t nLen) const -{ - // npos means 'take all' - if ( nLen == npos ) - nLen = 0; - - wxASSERT( nStart + nLen <= Len() ); - - return wxString(c_str() + nStart, nLen == npos ? 0 : nLen); -} - -wxString& wxString::erase(size_t nStart, size_t nLen) -{ - wxString strTmp(c_str(), nStart); - if ( nLen != npos ) { - wxASSERT( nStart + nLen <= Len() ); - - strTmp.append(c_str() + nStart + nLen); - } - - *this = strTmp; - return *this; -} - -wxString& wxString::replace(size_t nStart, size_t nLen, const wxChar *sz) -{ - wxASSERT( nStart + nLen <= wxStrlen(sz) ); - - wxString strTmp; - if ( nStart != 0 ) - strTmp.append(c_str(), nStart); - strTmp += sz; - strTmp.append(c_str() + nStart + nLen); - - *this = strTmp; - return *this; -} - -wxString& wxString::replace(size_t nStart, size_t nLen, size_t nCount, wxChar ch) -{ - return replace(nStart, nLen, wxString(ch, nCount)); -} - -wxString& wxString::replace(size_t nStart, size_t nLen, - const wxString& str, size_t nStart2, size_t nLen2) -{ - return replace(nStart, nLen, str.substr(nStart2, nLen2)); -} - -wxString& wxString::replace(size_t nStart, size_t nLen, - const wxChar* sz, size_t nCount) -{ - return replace(nStart, nLen, wxString(sz, nCount)); -} - -#endif //std::string compatibility - -// ============================================================================ -// ArrayString -// ============================================================================ - -// size increment = max(50% of current size, ARRAY_MAXSIZE_INCREMENT) -#define ARRAY_MAXSIZE_INCREMENT 4096 -#ifndef ARRAY_DEFAULT_INITIAL_SIZE // also defined in dynarray.h - #define ARRAY_DEFAULT_INITIAL_SIZE (16) -#endif - -#define STRING(p) ((wxString *)(&(p))) - -// ctor -wxArrayString::wxArrayString() -{ - m_nSize = - m_nCount = 0; - m_pItems = (wxChar **) NULL; -} - -// copy ctor -wxArrayString::wxArrayString(const wxArrayString& src) -{ - m_nSize = - m_nCount = 0; - m_pItems = (wxChar **) NULL; - - *this = src; -} - -// assignment operator -wxArrayString& wxArrayString::operator=(const wxArrayString& src) -{ - if ( m_nSize > 0 ) - Clear(); - - if ( src.m_nCount > ARRAY_DEFAULT_INITIAL_SIZE ) - Alloc(src.m_nCount); - - // we can't just copy the pointers here because otherwise we would share - // the strings with another array - for ( size_t n = 0; n < src.m_nCount; n++ ) - Add(src[n]); - - if ( m_nCount != 0 ) - memcpy(m_pItems, src.m_pItems, m_nCount*sizeof(wxChar *)); - - return *this; -} - -// grow the array -void wxArrayString::Grow() -{ - // only do it if no more place - if( m_nCount == m_nSize ) { - if( m_nSize == 0 ) { - // was empty, alloc some memory - m_nSize = ARRAY_DEFAULT_INITIAL_SIZE; - m_pItems = new wxChar *[m_nSize]; - } - else { - // otherwise when it's called for the first time, nIncrement would be 0 - // and the array would never be expanded - wxASSERT( ARRAY_DEFAULT_INITIAL_SIZE != 0 ); - - // add 50% but not too much - size_t nIncrement = m_nSize < ARRAY_DEFAULT_INITIAL_SIZE - ? ARRAY_DEFAULT_INITIAL_SIZE : m_nSize >> 1; - if ( nIncrement > ARRAY_MAXSIZE_INCREMENT ) - nIncrement = ARRAY_MAXSIZE_INCREMENT; - m_nSize += nIncrement; - wxChar **pNew = new wxChar *[m_nSize]; - - // copy data to new location - memcpy(pNew, m_pItems, m_nCount*sizeof(wxChar *)); - - // delete old memory (but do not release the strings!) - wxDELETEA(m_pItems); - - m_pItems = pNew; - } - } -} - -void wxArrayString::Free() -{ - for ( size_t n = 0; n < m_nCount; n++ ) { - STRING(m_pItems[n])->GetStringData()->Unlock(); - } -} - -// deletes all the strings from the list -void wxArrayString::Empty() -{ - Free(); - - m_nCount = 0; -} - -// as Empty, but also frees memory -void wxArrayString::Clear() -{ - Free(); - - m_nSize = - m_nCount = 0; - - wxDELETEA(m_pItems); -} - -// dtor -wxArrayString::~wxArrayString() -{ - Free(); - - wxDELETEA(m_pItems); -} - -// pre-allocates memory (frees the previous data!) -void wxArrayString::Alloc(size_t nSize) -{ - wxASSERT( nSize > 0 ); - - // only if old buffer was not big enough - if ( nSize > m_nSize ) { - Free(); - wxDELETEA(m_pItems); - m_pItems = new wxChar *[nSize]; - m_nSize = nSize; - } - - m_nCount = 0; -} - -// minimizes the memory usage by freeing unused memory -void wxArrayString::Shrink() -{ - // only do it if we have some memory to free - if( m_nCount < m_nSize ) { - // allocates exactly as much memory as we need - wxChar **pNew = new wxChar *[m_nCount]; - - // copy data to new location - memcpy(pNew, m_pItems, m_nCount*sizeof(wxChar *)); - delete [] m_pItems; - m_pItems = pNew; - } -} - -// searches the array for an item (forward or backwards) -int wxArrayString::Index(const wxChar *sz, bool bCase, bool bFromEnd) const -{ - if ( bFromEnd ) { - if ( m_nCount > 0 ) { - size_t ui = m_nCount; - do { - if ( STRING(m_pItems[--ui])->IsSameAs(sz, bCase) ) - return ui; - } - while ( ui != 0 ); - } - } - else { - for( size_t ui = 0; ui < m_nCount; ui++ ) { - if( STRING(m_pItems[ui])->IsSameAs(sz, bCase) ) - return ui; - } - } - - return wxNOT_FOUND; -} - -// add item at the end -void wxArrayString::Add(const wxString& str) -{ - wxASSERT( str.GetStringData()->IsValid() ); - - Grow(); - - // the string data must not be deleted! - str.GetStringData()->Lock(); - m_pItems[m_nCount++] = (wxChar *)str.c_str(); -} - -// add item at the given position -void wxArrayString::Insert(const wxString& str, size_t nIndex) -{ - wxASSERT( str.GetStringData()->IsValid() ); - - wxCHECK_RET( nIndex <= m_nCount, _("bad index in wxArrayString::Insert") ); - - Grow(); - - memmove(&m_pItems[nIndex + 1], &m_pItems[nIndex], - (m_nCount - nIndex)*sizeof(wxChar *)); - - str.GetStringData()->Lock(); - m_pItems[nIndex] = (wxChar *)str.c_str(); - - m_nCount++; -} - -// removes item from array (by index) -void wxArrayString::Remove(size_t nIndex) -{ - wxCHECK_RET( nIndex <= m_nCount, _("bad index in wxArrayString::Remove") ); - - // release our lock - Item(nIndex).GetStringData()->Unlock(); - - memmove(&m_pItems[nIndex], &m_pItems[nIndex + 1], - (m_nCount - nIndex - 1)*sizeof(wxChar *)); - m_nCount--; -} - -// removes item from array (by value) -void wxArrayString::Remove(const wxChar *sz) -{ - int iIndex = Index(sz); - - wxCHECK_RET( iIndex != wxNOT_FOUND, - _("removing inexistent element in wxArrayString::Remove") ); - - Remove(iIndex); -} - -// ---------------------------------------------------------------------------- -// sorting -// ---------------------------------------------------------------------------- - -// we can only sort one array at a time with the quick-sort based -// implementation -#if wxUSE_THREADS - // need a critical section to protect access to gs_compareFunction and - // gs_sortAscending variables - static wxCriticalSection *gs_critsectStringSort = NULL; - - // call this before the value of the global sort vars is changed/after - // you're finished with them - #define START_SORT() wxASSERT( !gs_critsectStringSort ); \ - gs_critsectStringSort = new wxCriticalSection; \ - gs_critsectStringSort->Enter() - #define END_SORT() gs_critsectStringSort->Leave(); \ - delete gs_critsectStringSort; \ - gs_critsectStringSort = NULL -#else // !threads - #define START_SORT() - #define END_SORT() -#endif // wxUSE_THREADS - -// function to use for string comparaison -static wxArrayString::CompareFunction gs_compareFunction = NULL; - -// if we don't use the compare function, this flag tells us if we sort the -// array in ascending or descending order -static bool gs_sortAscending = TRUE; - -// function which is called by quick sort -static int wxStringCompareFunction(const void *first, const void *second) -{ - wxString *strFirst = (wxString *)first; - wxString *strSecond = (wxString *)second; - - if ( gs_compareFunction ) { - return gs_compareFunction(*strFirst, *strSecond); - } - else { - // maybe we should use wxStrcoll - int result = wxStrcmp(strFirst->c_str(), strSecond->c_str()); - - return gs_sortAscending ? result : -result; - } -} - -// sort array elements using passed comparaison function -void wxArrayString::Sort(CompareFunction compareFunction) -{ - START_SORT(); - - wxASSERT( !gs_compareFunction ); // must have been reset to NULL - gs_compareFunction = compareFunction; - - DoSort(); - - END_SORT(); -} - -void wxArrayString::Sort(bool reverseOrder) -{ - START_SORT(); - - wxASSERT( !gs_compareFunction ); // must have been reset to NULL - gs_sortAscending = !reverseOrder; - - DoSort(); - - END_SORT(); -} - -void wxArrayString::DoSort() -{ - // just sort the pointers using qsort() - of course it only works because - // wxString() *is* a pointer to its data - qsort(m_pItems, m_nCount, sizeof(wxChar *), wxStringCompareFunction); -} - -// ============================================================================ -// MBConv -// ============================================================================ - -WXDLLEXPORT_DATA(wxMBConv *) wxConvCurrent = &wxConvLibc; -#if !wxUSE_WCHAR_T -WXDLLEXPORT_DATA(wxMBConv) wxConvLibc, wxConvFile; -#endif - -#if wxUSE_WCHAR_T - -// ---------------------------------------------------------------------------- -// standard libc conversion -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(wxMBConv) wxConvLibc; - -size_t wxMBConv::MB2WC(wchar_t *buf, const char *psz, size_t n) const -{ - return wxMB2WC(buf, psz, n); -} - -size_t wxMBConv::WC2MB(char *buf, const wchar_t *psz, size_t n) const -{ - return wxWC2MB(buf, psz, n); -} - -// ---------------------------------------------------------------------------- -// standard file conversion -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(wxMBConvFile) wxConvFile; - -// just use the libc conversion for now -size_t wxMBConvFile::MB2WC(wchar_t *buf, const char *psz, size_t n) const -{ - return wxMB2WC(buf, psz, n); -} - -size_t wxMBConvFile::WC2MB(char *buf, const wchar_t *psz, size_t n) const -{ - return wxWC2MB(buf, psz, n); -} - -// ---------------------------------------------------------------------------- -// standard gdk conversion -// ---------------------------------------------------------------------------- - -#ifdef __WXGTK12__ -WXDLLEXPORT_DATA(wxMBConvGdk) wxConvGdk; - -#include - -size_t wxMBConvGdk::MB2WC(wchar_t *buf, const char *psz, size_t n) const -{ - if (buf) { - return gdk_mbstowcs((GdkWChar *)buf, psz, n); - } else { - GdkWChar *nbuf = new GdkWChar[n=strlen(psz)]; - size_t len = gdk_mbstowcs(nbuf, psz, n); - delete [] nbuf; - return len; - } -} - -size_t wxMBConvGdk::WC2MB(char *buf, const wchar_t *psz, size_t n) const -{ - char *mbstr = gdk_wcstombs((GdkWChar *)psz); - size_t len = mbstr ? strlen(mbstr) : 0; - if (buf) { - if (len > n) len = n; - memcpy(buf, psz, len); - if (len < n) buf[len] = 0; - } - return len; -} -#endif // GTK > 1.0 - -// ---------------------------------------------------------------------------- -// UTF-7 -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(wxMBConvUTF7) wxConvUTF7; - -#if 0 -static char utf7_setD[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789'(),-./:?"; -static char utf7_setO[]="!\"#$%&*;<=>@[]^_`{|}"; -static char utf7_setB[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ" - "abcdefghijklmnopqrstuvwxyz" - "0123456789+/"; -#endif - -// TODO: write actual implementations of UTF-7 here -size_t wxMBConvUTF7::MB2WC(wchar_t * WXUNUSED(buf), - const char * WXUNUSED(psz), - size_t WXUNUSED(n)) const -{ - return 0; -} - -size_t wxMBConvUTF7::WC2MB(char * WXUNUSED(buf), - const wchar_t * WXUNUSED(psz), - size_t WXUNUSED(n)) const -{ - return 0; -} - -// ---------------------------------------------------------------------------- -// UTF-8 -// ---------------------------------------------------------------------------- - -WXDLLEXPORT_DATA(wxMBConvUTF8) wxConvUTF8; - -static unsigned long utf8_max[]={0x7f,0x7ff,0xffff,0x1fffff,0x3ffffff,0x7fffffff,0xffffffff}; - -size_t wxMBConvUTF8::MB2WC(wchar_t *buf, const char *psz, size_t n) const -{ - size_t len = 0; - - while (*psz && ((!buf) || (len>cnt); - while (cnt--) { - cc = *psz++; - if ((cc&0xC0)!=0x80) { - // invalid UTF-8 sequence - return (size_t)-1; - } - res=(res<<6)|(cc&0x3f); - } - if (res<=utf8_max[ocnt]) { - // illegal UTF-8 encoding - return (size_t)-1; - } - if (buf) *buf++=res; - len++; - } - } - } - if (buf && (lenutf8_max[cnt]; cnt++); - if (!cnt) { - // plain ASCII char - if (buf) *buf++=cc; - len++; - } else { - len+=cnt+1; - if (buf) { - *buf++=(-128>>cnt)|((cc>>(cnt*6))&(0x3f>>cnt)); - while (cnt--) - *buf++=0x80|((cc>>(cnt*6))&0x3f); - } - } - } - if (buf && (lennames.Add(token.GetNextToken()); - } - else if (cmd == _T("")) - cset->names.Add(token.GetNextToken()); - else if (cmd == _T("")) - comchar = token.GetNextToken(); - else if (cmd == _T("")) - escchar = token.GetNextToken(); - else if (cmd == _T("")) { - delete cset; - cset = (wxCharacterSet *) NULL; - break; // we don't support multibyte charsets ourselves (yet) - } - else if (cmd == _T("CHARMAP")) { - cset->data = (wchar_t *)calloc(256, sizeof(wchar_t)); - in_charset = TRUE; - } - else if (cmd == _T("END")) { - if (token.GetNextToken() == _T("CHARMAP")) - in_charset = FALSE; - } - else if (in_charset) { - // format: /x00 NULL (NUL) - // /x41 LATIN CAPITAL LETTER A - wxString hex = token.GetNextToken(); - // skip whitespace (why doesn't wxStringTokenizer do this?) - while (wxIsEmpty(hex) && token.HasMoreTokens()) hex = token.GetNextToken(); - wxString uni = token.GetNextToken(); - // skip whitespace again - while (wxIsEmpty(uni) && token.HasMoreTokens()) uni = token.GetNextToken(); - - if ((hex.Len() > 2) && (hex.GetChar(0) == escchar) && (hex.GetChar(1) == _T('x')) && - (uni.Left(2) == _T("=0) { - unsigned long uni1 = ::wxHexToDec(uni.Mid(2,2)); - unsigned long uni2 = ::wxHexToDec(uni.Mid(4,2)); - cset->data[pos] = (uni1 << 16) | uni2; - // wxFprintf(stderr,_T("char %02x mapped to %04x (%c)\n"),pos,cset->data[pos],cset->data[pos]); - } - } - } - } - if (cset) { - cset->names.Shrink(); - wxCharsets.Add(cset); - } - } - } -#endif - wxCharsets.Shrink(); -} - -static wxCharacterSet *wxFindCharacterSet(const wxChar *charset) -{ - if (!charset) return (wxCharacterSet *)NULL; - wxLoadCharacterSets(); - for (size_t n=0; n4) { - if (wxString(charset,4) == _T("8859")) { - codeset << _T("8859-"); - if (*charset == _T('-')) charset++; - } - } - } - codeset << charset; - codeset.MakeUpper(); - m_name = wxStrdup(codeset.c_str()); - m_deferred = TRUE; -#endif - } -} - -void wxCSConv::LoadNow() -{ -// wxPrintf(_T("Conversion request\n")); - if (m_deferred) { - if (!m_name) { -#ifdef __UNIX__ - wxChar *lang = wxGetenv(_T("LANG")); - wxChar *dot = lang ? wxStrchr(lang, _T('.')) : (wxChar *)NULL; - if (dot) SetName(dot+1); -#endif - } - m_cset = wxFindCharacterSet(m_name); - m_deferred = FALSE; - } -} - -size_t wxCSConv::MB2WC(wchar_t *buf, const char *psz, size_t n) const -{ - ((wxCSConv *)this)->LoadNow(); // discard constness - if (buf) { - if (m_cset) { - for (size_t c=0; cdata[(unsigned char)(psz[c])]; - } else { - // latin-1 (direct) - for (size_t c=0; cLoadNow(); // discard constness - if (buf) { - if (m_cset) { - for (size_t c=0; cdata[n] != psz[c]); n++); - buf[c] = (n>0xff) ? '?' : n; - } - } else { - // latin-1 (direct) - for (size_t c=0; c0xff) ? '?' : psz[c]; - } - return n; - } - return wcslen(psz); -} - -#endif//wxUSE_WCHAR_T - -#if wxUSE_WCHAR_T -const wxWCharBuffer wxMBConv::cMB2WC(const char *psz) const - { - if (psz) { - size_t nLen = MB2WC((wchar_t *) NULL, psz, 0); - wxWCharBuffer buf(nLen); - MB2WC(WCSTRINGCAST buf, psz, nLen); - return buf; - } else return wxWCharBuffer((wchar_t *) NULL); - } - -const wxCharBuffer wxMBConv::cWC2MB(const wchar_t *psz) const - { - if (psz) { - size_t nLen = WC2MB((char *) NULL, psz, 0); - wxCharBuffer buf(nLen); - WC2MB(MBSTRINGCAST buf, psz, nLen); - return buf; - } else return wxCharBuffer((char *) NULL); - } - -#endif//wxUSE_WCHAR_T - diff --git a/src/common/tbarbase.cpp b/src/common/tbarbase.cpp deleted file mode 100644 index 318a701601..0000000000 --- a/src/common/tbarbase.cpp +++ /dev/null @@ -1,772 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbarbase.cpp -// Purpose: Toolbar base classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbarbase.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/frame.h" - -// For ::UpdateWindow -#ifdef __WXMSW__ -#include -#endif - -#if wxUSE_TOOLBAR - -#include "wx/tbarbase.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxToolBarBase, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool, wxObject) - -BEGIN_EVENT_TABLE(wxToolBarBase, wxControl) - EVT_SCROLL(wxToolBarBase::OnScroll) - EVT_SIZE(wxToolBarBase::OnSize) - EVT_IDLE(wxToolBarBase::OnIdle) -END_EVENT_TABLE() -#endif - -// Keep a list of all toolbars created, so you can tell whether a toolbar -// is still valid: a tool may have quit the toolbar. -static wxList gs_ToolBars; - -#ifdef __WXGTK__ -wxToolBarTool::wxToolBarTool(wxToolBar *owner, int theIndex, - const wxBitmap& theBitmap1, const wxBitmap& theBitmap2, - bool toggle, wxObject *clientData, - const wxString& helpS1, const wxString& helpS2, - GtkWidget *pixmap ) -#else -wxToolBarTool::wxToolBarTool(int theIndex, - const wxBitmap& theBitmap1, const wxBitmap& theBitmap2, bool toggle, - long xPos, long yPos, const wxString& helpS1, const wxString& helpS2) -#endif -{ - m_toolStyle = wxTOOL_STYLE_BUTTON; -#ifdef __WXGTK__ - m_owner = owner; - m_pixmap = pixmap; - m_item = (GtkWidget*) NULL; - m_clientData = clientData; - m_x = 0; - m_y = 0; -#else - m_clientData = NULL; - m_x = xPos; - m_y = yPos; -#endif - m_index = theIndex; - m_isToggle = toggle; - m_toggleState = FALSE; - m_enabled = TRUE; - m_bitmap1 = theBitmap1; - m_bitmap2 = theBitmap2; - m_width = m_height = 0; - m_deleteSecondBitmap = FALSE; - if (m_bitmap1.Ok()) - { - m_width = m_bitmap1.GetWidth()+2; - m_height = m_bitmap1.GetHeight()+2; - } - m_shortHelpString = helpS1; - m_longHelpString = helpS2; -} - -wxToolBarTool::~wxToolBarTool() -{ -/* - if (m_deleteSecondBitmap && m_bitmap2) - delete m_bitmap2; -*/ -} - - -// class wxToolBar - -wxToolBarBase::wxToolBarBase(void) : m_tools(wxKEY_INTEGER) -{ - gs_ToolBars.Append(this); - - m_maxRows = 1; - m_maxCols = 32000; - m_maxWidth = 0; - m_maxHeight = 0; - m_defaultWidth = 16; - m_defaultHeight = 15; - m_xMargin = 0; - m_yMargin = 0; - m_toolPacking = 1; - m_toolSeparation = 5; - m_currentTool = -1; - - m_xScrollPixelsPerLine = 0; - m_yScrollPixelsPerLine = 0; - m_xScrollingEnabled = TRUE; - m_yScrollingEnabled = TRUE; - m_xScrollPosition = 0; - m_yScrollPosition = 0; - m_calcScrolledOffset = TRUE; - m_xScrollLines = 0; - m_yScrollLines = 0; - m_xScrollLinesPerPage = 0; - m_yScrollLinesPerPage = 0; -} - -wxToolBarBase::~wxToolBarBase () -{ - gs_ToolBars.DeleteObject(this); - - for ( wxNode *node = m_tools.First(); node; node = node->Next() ) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - delete tool; - } -} - -// Only allow toggle if returns TRUE -bool wxToolBarBase::OnLeftClick(int toolIndex, bool toggleDown) -{ - wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex); - event.SetEventObject(this); - event.SetExtraLong((long) toggleDown); - - // Send events to this toolbar instead (and thence up the window hierarchy) - GetEventHandler()->ProcessEvent(event); - - return TRUE; -} - -// Call when right button down. -void wxToolBarBase::OnRightClick(int toolIndex, - long WXUNUSED(x), - long WXUNUSED(y)) -{ - wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex); - event.SetEventObject(this); - event.SetInt(toolIndex); - - GetEventHandler()->ProcessEvent(event); -} - -// Called when the mouse cursor enters a tool bitmap (no button pressed). -// Argument is -1 if mouse is exiting the toolbar. -// Note that for this event, the id of the window is used, -// and the integer parameter of wxCommandEvent is used to retrieve -// the tool id. -void wxToolBarBase::OnMouseEnter ( int toolIndex ) -{ - wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, GetId()); - event.SetEventObject(this); - event.SetInt(toolIndex); - - GetEventHandler()->ProcessEvent(event); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. -wxToolBarTool *wxToolBarBase::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, - const wxString& helpString1, const wxString& helpString2) -{ -#ifdef __WXGTK__ - wxToolBarTool *tool = new wxToolBarTool( (wxToolBar*)this, index, bitmap, pushedBitmap, toggle, - (wxObject*) NULL, helpString1, helpString2); -#else - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, pushedBitmap, toggle, xPos, yPos, helpString1, helpString2); -#endif - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - // Calculate reasonable max size in case Layout() not called - if ((tool->m_x + bitmap.GetWidth() + m_xMargin) > m_maxWidth) - m_maxWidth = (tool->m_x + bitmap.GetWidth() + m_xMargin); - - if ((tool->m_y + bitmap.GetHeight() + m_yMargin) > m_maxHeight) - m_maxHeight = (tool->m_y + bitmap.GetHeight() + m_yMargin); - - m_tools.Append((long)index, tool); - return tool; -} - -void wxToolBarBase::AddSeparator () -{ - wxToolBarTool *tool = new wxToolBarTool; - tool->m_index = -1; - tool->m_toolStyle = wxTOOL_STYLE_SEPARATOR; - m_tools.Append(-1, tool); -} - -void wxToolBarBase::ClearTools() -{ - m_pressedTool = m_currentTool = -1; - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - wxNode *nextNode = node->Next(); - delete tool; - delete node; - node = nextNode; - } -} - -void wxToolBarBase::EnableTool(int index, bool enable) -{ - wxNode *node = m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool) - tool->m_enabled = enable; - } -} - -void wxToolBarBase::ToggleTool(int WXUNUSED(index), - bool WXUNUSED(toggle)) -{ -} - -void wxToolBarBase::SetToggle(int index, bool value) -{ - wxNode *node=m_tools.Find((long)index); - if (node){ - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_isToggle = value; - } -} - -bool wxToolBarBase::GetToolState(int index) const -{ - wxNode *node = m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool) - { - return tool->m_toggleState; - } - else return FALSE; - } - else return FALSE; -} - -bool wxToolBarBase::GetToolEnabled(int index) const -{ - wxNode *node = m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool) - { - return tool->m_enabled; - } - else return FALSE; - } - else return FALSE; -} - -wxObject *wxToolBarBase::GetToolClientData(int index) const -{ - wxNode *node = m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool) - { - return tool->m_clientData; - } - else return NULL; - } - else return NULL; -} - -void wxToolBarBase::SetToolShortHelp(int index, const wxString& helpString) -{ - wxNode *node=m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_shortHelpString = helpString; - } -} - -wxString wxToolBarBase::GetToolShortHelp(int index) const -{ - wxNode *node=m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - return tool->m_shortHelpString; - } - else - return wxString(""); -} - -void wxToolBarBase::SetToolLongHelp(int index, const wxString& helpString) -{ - wxNode *node=m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_longHelpString = helpString; - } -} - -wxString wxToolBarBase::GetToolLongHelp(int index) const -{ - wxNode *node=m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - return tool->m_longHelpString; - } - else - return wxString(""); -} - -wxToolBarTool *wxToolBarBase::FindToolForPosition(long x, long y) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if ((x >= tool->m_x) && (y >= tool->m_y) && - (x <= (tool->m_x + tool->GetWidth())) && - (y <= (tool->m_y + tool->GetHeight()))) - return tool; - - node = node->Next(); - } - return NULL; -} - -wxSize wxToolBarBase::GetMaxSize ( void ) const -{ - return wxSize(m_maxWidth, m_maxHeight); -} - -// Okay, so we've left the tool we're in ... we must check if -// the tool we're leaving was a 'sprung push button' and if so, -// spring it back to the up state. -// -void wxToolBarBase::SetMargins(int x, int y) -{ - m_xMargin = x; - m_yMargin = y; -} - -void wxToolBarBase::SetToolPacking(int packing) -{ - m_toolPacking = packing; -} - -void wxToolBarBase::SetToolSeparation(int separation) -{ - m_toolSeparation = separation; -} - -void wxToolBarBase::Command(wxCommandEvent& WXUNUSED(event)) -{ -} - -void wxToolBarBase::LayoutTools() -{ -} - - -// SCROLLING IMPLEMENTATION - -/* - * pixelsPerUnitX/pixelsPerUnitY: number of pixels per unit (e.g. pixels per text line) - * noUnitsX/noUnitsY: : no. units per scrollbar - */ -void wxToolBarBase::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY, - int noUnitsX, int noUnitsY, - int xPos, int yPos) -{ - m_xScrollPixelsPerLine = pixelsPerUnitX; - m_yScrollPixelsPerLine = pixelsPerUnitY; - m_xScrollLines = noUnitsX; - m_yScrollLines = noUnitsY; - - int w, h; - GetSize(&w, &h); - - // Recalculate scroll bar range and position - if (m_xScrollLines > 0) - { - m_xScrollPosition = xPos; - SetScrollPos (wxHORIZONTAL, m_xScrollPosition, TRUE); - } - else - { - SetScrollbar(wxHORIZONTAL, 0, 0, 0, FALSE); - m_xScrollPosition = 0; - } - - if (m_yScrollLines > 0) - { - m_yScrollPosition = yPos; - SetScrollPos (wxVERTICAL, m_yScrollPosition, TRUE); - } - else - { - SetScrollbar(wxVERTICAL, 0, 0, 0, FALSE); - m_yScrollPosition = 0; - } - AdjustScrollbars(); - Refresh(); -#ifdef __WXMSW__ - ::UpdateWindow ((HWND) GetHWND()); -#endif -} - - -void wxToolBarBase::OnScroll(wxScrollEvent& event) -{ - int orient = event.GetOrientation(); - - int nScrollInc = CalcScrollInc(event); - if (nScrollInc == 0) - return; - - if (orient == wxHORIZONTAL) - { - int newPos = m_xScrollPosition + nScrollInc; - SetScrollPos(wxHORIZONTAL, newPos, TRUE ); - } - else - { - int newPos = m_yScrollPosition + nScrollInc; - SetScrollPos(wxVERTICAL, newPos, TRUE ); - } - - if (orient == wxHORIZONTAL) - { - if (m_xScrollingEnabled) - ScrollWindow(-m_xScrollPixelsPerLine * nScrollInc, 0, NULL); - else - Refresh(); - } - else - { - if (m_yScrollingEnabled) - ScrollWindow(0, -m_yScrollPixelsPerLine * nScrollInc, NULL); - else - Refresh(); - } - - if (orient == wxHORIZONTAL) - { - m_xScrollPosition += nScrollInc; - } - else - { - m_yScrollPosition += nScrollInc; - } - -} - -int wxToolBarBase::CalcScrollInc(wxScrollEvent& event) -{ - int pos = event.GetPosition(); - int orient = event.GetOrientation(); - - int nScrollInc = 0; - switch (event.GetEventType()) - { - case wxEVT_SCROLL_TOP: - { - if (orient == wxHORIZONTAL) - nScrollInc = - m_xScrollPosition; - else - nScrollInc = - m_yScrollPosition; - break; - } - case wxEVT_SCROLL_BOTTOM: - { - if (orient == wxHORIZONTAL) - nScrollInc = m_xScrollLines - m_xScrollPosition; - else - nScrollInc = m_yScrollLines - m_yScrollPosition; - break; - } - case wxEVT_SCROLL_LINEUP: - { - nScrollInc = -1; - break; - } - case wxEVT_SCROLL_LINEDOWN: - { - nScrollInc = 1; - break; - } - case wxEVT_SCROLL_PAGEUP: - { - if (orient == wxHORIZONTAL) - nScrollInc = -GetScrollPageSize(wxHORIZONTAL); - else - nScrollInc = -GetScrollPageSize(wxVERTICAL); - break; - } - case wxEVT_SCROLL_PAGEDOWN: - { - if (orient == wxHORIZONTAL) - nScrollInc = GetScrollPageSize(wxHORIZONTAL); - else - nScrollInc = GetScrollPageSize(wxVERTICAL); - break; - } - case wxEVT_SCROLL_THUMBTRACK: - { - if (orient == wxHORIZONTAL) - nScrollInc = pos - m_xScrollPosition; - else - nScrollInc = pos - m_yScrollPosition; - break; - } - default: - { - break; - } - } - if (orient == wxHORIZONTAL) - { - int w, h; - GetClientSize(&w, &h); - - int nMaxWidth = m_xScrollLines*m_xScrollPixelsPerLine; - int noPositions = (int) ( ((nMaxWidth - w)/(float)m_xScrollPixelsPerLine) + 0.5 ); - if (noPositions < 0) - noPositions = 0; - - if ( (m_xScrollPosition + nScrollInc) < 0 ) - nScrollInc = -m_xScrollPosition; // As -ve as we can go - else if ( (m_xScrollPosition + nScrollInc) > noPositions ) - nScrollInc = noPositions - m_xScrollPosition; // As +ve as we can go - - return nScrollInc; - } - else - { - int w, h; - GetClientSize(&w, &h); - - int nMaxHeight = m_yScrollLines*m_yScrollPixelsPerLine; - int noPositions = (int) ( ((nMaxHeight - h)/(float)m_yScrollPixelsPerLine) + 0.5 ); - if (noPositions < 0) - noPositions = 0; - - if ( (m_yScrollPosition + nScrollInc) < 0 ) - nScrollInc = -m_yScrollPosition; // As -ve as we can go - else if ( (m_yScrollPosition + nScrollInc) > noPositions ) - nScrollInc = noPositions - m_yScrollPosition; // As +ve as we can go - - return nScrollInc; - } -} - -// Adjust the scrollbars - new version. -void wxToolBarBase::AdjustScrollbars() -{ - int w, h; - GetClientSize(&w, &h); - - // Recalculate scroll bar range and position - if (m_xScrollLines > 0) - { - int nMaxWidth = m_xScrollLines*m_xScrollPixelsPerLine; - int newRange = (int) ( ((nMaxWidth)/(float)m_xScrollPixelsPerLine) + 0.5 ); - if (newRange < 0) - newRange = 0; - - m_xScrollPosition = wxMin(newRange, m_xScrollPosition); - - // Calculate page size i.e. number of scroll units you get on the - // current client window - int noPagePositions = (int) ( (w/(float)m_xScrollPixelsPerLine) + 0.5 ); - if (noPagePositions < 1) - noPagePositions = 1; - - SetScrollbar(wxHORIZONTAL, m_xScrollPosition, noPagePositions, newRange); - SetScrollPageSize(wxHORIZONTAL, noPagePositions); - } - if (m_yScrollLines > 0) - { - int nMaxHeight = m_yScrollLines*m_yScrollPixelsPerLine; - int newRange = (int) ( ((nMaxHeight)/(float)m_yScrollPixelsPerLine) + 0.5 ); - if (newRange < 0) - newRange = 0; - - m_yScrollPosition = wxMin(newRange, m_yScrollPosition); - - // Calculate page size i.e. number of scroll units you get on the - // current client window - int noPagePositions = (int) ( (h/(float)m_yScrollPixelsPerLine) + 0.5 ); - if (noPagePositions < 1) - noPagePositions = 1; - - SetScrollbar(wxVERTICAL, m_yScrollPosition, noPagePositions, newRange); - SetScrollPageSize(wxVERTICAL, noPagePositions); - } -} - -// Default OnSize resets scrollbars, if any -void wxToolBarBase::OnSize(wxSizeEvent& WXUNUSED(event)) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - - AdjustScrollbars(); -} - -// Prepare the DC by translating it according to the current scroll position -void wxToolBarBase::PrepareDC(wxDC& dc) -{ - dc.SetDeviceOrigin(- m_xScrollPosition * m_xScrollPixelsPerLine, - m_yScrollPosition * m_yScrollPixelsPerLine); -} - -void wxToolBarBase::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const -{ - *x_unit = m_xScrollPixelsPerLine; - *y_unit = m_yScrollPixelsPerLine; -} - -int wxToolBarBase::GetScrollPageSize(int orient) const -{ - if ( orient == wxHORIZONTAL ) - return m_xScrollLinesPerPage; - else - return m_yScrollLinesPerPage; -} - -void wxToolBarBase::SetScrollPageSize(int orient, int pageSize) -{ - if ( orient == wxHORIZONTAL ) - m_xScrollLinesPerPage = pageSize; - else - m_yScrollLinesPerPage = pageSize; -} - -/* - * Scroll to given position (scroll position, not pixel position) - */ -void wxToolBarBase::Scroll (int x_pos, int y_pos) -{ - int old_x, old_y; - ViewStart (&old_x, &old_y); - if (((x_pos == -1) || (x_pos == old_x)) && ((y_pos == -1) || (y_pos == old_y))) - return; - - if (x_pos > -1) - { - m_xScrollPosition = x_pos; - SetScrollPos (wxHORIZONTAL, x_pos, TRUE); - } - if (y_pos > -1) - { - m_yScrollPosition = y_pos; - SetScrollPos (wxVERTICAL, y_pos, TRUE); - } - Refresh(); -#ifdef __WXMSW__ - UpdateWindow ((HWND) GetHWND()); -#endif -} - -void wxToolBarBase::EnableScrolling (bool x_scroll, bool y_scroll) -{ - m_xScrollingEnabled = x_scroll; - m_yScrollingEnabled = y_scroll; -} - -void wxToolBarBase::GetVirtualSize (int *x, int *y) const -{ - *x = m_xScrollPixelsPerLine * m_xScrollLines; - *y = m_yScrollPixelsPerLine * m_yScrollLines; -} - -// Where the current view starts from -void wxToolBarBase::ViewStart (int *x, int *y) const -{ - *x = m_xScrollPosition; - *y = m_yScrollPosition; -} - -void wxToolBarBase::OnIdle(wxIdleEvent& -#ifdef __WXGTK__ - WXUNUSED(event) -#else - event -#endif - ) -{ -#ifndef __WXGTK__ - wxWindow::OnIdle(event); -#endif - - DoToolbarUpdates(); -} - -// Do the toolbar button updates (check for EVT_UPDATE_UI handlers) -void wxToolBarBase::DoToolbarUpdates() -{ - wxEvtHandler* evtHandler = GetEventHandler() ; - - wxNode* node = GetTools().First(); - while (node) - { - wxToolBarTool* tool = (wxToolBarTool* ) node->Data(); - - wxUpdateUIEvent event(tool->m_index); - event.SetEventObject(this); - - if (evtHandler->ProcessEvent(event)) - { - if (event.GetSetEnabled()) - EnableTool(tool->m_index, event.GetEnabled()); - if (event.GetSetChecked()) - ToggleTool(tool->m_index, event.GetChecked()); -/* - if (event.GetSetText()) - // Set tooltip? -*/ - } - - node = node->Next(); - } -} - -#endif diff --git a/src/common/tbarsmpl.cpp b/src/common/tbarsmpl.cpp deleted file mode 100644 index c0d5dbded3..0000000000 --- a/src/common/tbarsmpl.cpp +++ /dev/null @@ -1,460 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbarsmpl.cpp -// Purpose: wxToolBarSimple -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbarsmpl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if wxUSE_TOOLBAR - -#include "wx/tbarsmpl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase) - -BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase) - EVT_SIZE(wxToolBarSimple::OnSize) - EVT_PAINT(wxToolBarSimple::OnPaint) - EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus) - EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent) -END_EVENT_TABLE() -#endif - -wxToolBarSimple::wxToolBarSimple(void) -{ - m_currentRowsOrColumns = 0; - m_lastX = 0; - m_lastY = 0; -} - -bool wxToolBarSimple::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, - const wxString& name ) -{ - if ( ! wxWindow::Create(parent, id, pos, size, style, name) ) - return FALSE; - - // Set it to grey (or other 3D face colour) - wxSystemSettings settings; - SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_3DFACE)); - - if ( GetWindowStyleFlag() & wxTB_VERTICAL ) - { m_lastX = 7; m_lastY = 3; } - else - { m_lastX = 3; m_lastY = 7; } - m_maxWidth = m_maxHeight = 0; - m_pressedTool = m_currentTool = -1; - m_xMargin = 0; - m_yMargin = 0; - m_toolPacking = 1; - m_toolSeparation = 5; - SetCursor(*wxSTANDARD_CURSOR); - - return TRUE; -} - -wxToolBarSimple::~wxToolBarSimple () -{ -} - -void wxToolBarSimple::OnPaint (wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - PrepareDC(dc); - - static int count = 0; - // Prevent reentry of OnPaint which would cause wxMemoryDC errors. - if ( count > 0 ) - return; - count++; - - wxMemoryDC mem_dc; - - for ( wxNode *node = m_tools.First(); node; node = node->Next() ) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_toolStyle == wxTOOL_STYLE_BUTTON) - DrawTool(dc, mem_dc, tool); - } - - count--; -} - -void wxToolBarSimple::OnSize ( wxSizeEvent& event ) -{ - wxToolBarBase::OnSize(event); -} - -void wxToolBarSimple::OnKillFocus (wxFocusEvent& WXUNUSED(event)) -{ - OnMouseEnter(m_pressedTool = m_currentTool = -1); -} - -void wxToolBarSimple::OnMouseEvent ( wxMouseEvent & event ) -{ - long x, y; - event.Position(&x, &y); - wxToolBarTool *tool = FindToolForPosition(x, y); - - if (event.LeftDown()) - { - CaptureMouse(); - } - if (event.LeftUp()) - { - ReleaseMouse(); - } - - if (!tool) - { - if (m_currentTool > -1) - { - if (event.LeftIsDown()) - SpringUpButton(m_currentTool); - m_currentTool = -1; - OnMouseEnter(-1); - } - return; - } - - if (!event.IsButton()) - { - if (tool->m_index != m_currentTool) - { - // If the left button is kept down and moved over buttons, - // press those buttons. - if (event.LeftIsDown() && tool->m_enabled) - { - SpringUpButton(m_currentTool); - tool->m_toggleState = !tool->m_toggleState; - wxMemoryDC *dc2 = new wxMemoryDC; - wxClientDC dc(this); - DrawTool(dc, *dc2, tool); - delete dc2; - } - m_currentTool = tool->m_index; - OnMouseEnter(tool->m_index); - } - return; - } - - // Left button pressed. - if (event.LeftDown() && tool->m_enabled) - { - if (tool->m_isToggle) - { - tool->m_toggleState = !tool->m_toggleState; - } - - wxMemoryDC *dc2 = new wxMemoryDC; - wxClientDC dc(this); - DrawTool(dc, *dc2, tool); - delete dc2; - - } - else if (event.RightDown()) - { - OnRightClick(tool->m_index, x, y); - } - - // Left Button Released. Only this action confirms selection. - // If the button is enabled and it is not a toggle tool and it is - // in the pressed state, then raise the button and call OnLeftClick. - // - if (event.LeftUp() && tool->m_enabled && - (tool->m_toggleState || tool->m_isToggle)) - { - if (!tool->m_isToggle) - tool->m_toggleState = FALSE; - - // Pass the OnLeftClick event to tool - if (!OnLeftClick(tool->m_index, tool->m_toggleState) && tool->m_isToggle) - { - // If it was a toggle, and OnLeftClick says No Toggle allowed, - // then change it back - tool->m_toggleState = !tool->m_toggleState; - } - - wxClientDC dc(this); - wxMemoryDC *dc2 = new wxMemoryDC; - DrawTool(dc, *dc2, tool); - delete dc2; - } -} - -void wxToolBarSimple::DrawTool(wxDC& dc, wxMemoryDC& memDC, wxToolBarTool *tool) -{ - PrepareDC(dc); - - wxPen dark_grey_pen(wxColour( 85,85,85 ), 1, wxSOLID); - wxPen white_pen("WHITE", 1, wxSOLID); - wxPen black_pen("BLACK", 1, wxSOLID); - - wxBitmap *bitmap = tool->m_toggleState ? (& tool->m_bitmap2) : (& tool->m_bitmap1); - - if (bitmap && bitmap->Ok()) - { -#ifndef __WXGTK__ - if (bitmap->GetPalette()) - memDC.SetPalette(*bitmap->GetPalette()); -#endif - - int ax = (int)tool->m_x, - ay = (int)tool->m_y, - bx = (int)(tool->m_x+tool->GetWidth()), - by = (int)(tool->m_y+tool->GetHeight()); - - memDC.SelectObject(*bitmap); - if (m_windowStyle & wxTB_3DBUTTONS) - { - dc.SetClippingRegion(ax, ay, (bx-ax+1), (by-ay+1)); - dc.Blit((ax+1), (ay+1), (bx-ax-2), (by-ay-2), &memDC, 0, 0); - wxPen * old_pen = & dc.GetPen(); - dc.SetPen( white_pen ); - dc.DrawLine(ax,(by-1),ax,ay); - dc.DrawLine(ax,ay,(bx-1),ay); - dc.SetPen( dark_grey_pen ); - dc.DrawLine((bx-1),(ay+1),(bx-1),(by-1)); - dc.DrawLine((bx-1),(by-1),(ax+1),(by-1)); - dc.SetPen( black_pen ); - dc.DrawLine(bx,ay,bx,by); - dc.DrawLine(bx,by,ax,by); - dc.SetPen( *old_pen ); - dc.DestroyClippingRegion(); - // Select bitmap out of the DC - } - else - { - dc.Blit(tool->m_x, tool->m_y, - bitmap->GetWidth(), bitmap->GetHeight(), - &memDC, 0, 0); - } - memDC.SelectObject(wxNullBitmap); -#ifndef __WXGTK__ - memDC.SetPalette(wxNullPalette); -#endif - } - // No second bitmap, so draw a thick line around bitmap, or invert if mono - else if (tool->m_toggleState) - { - bool drawBorder = FALSE; -#ifdef __X__ // X doesn't invert properly on colour - drawBorder = wxColourDisplay(); -#else // Inversion works fine under Windows - drawBorder = FALSE; -#endif - - if (!drawBorder) - { - memDC.SelectObject(tool->m_bitmap1); - dc.Blit(tool->m_x, tool->m_y, tool->GetWidth(), tool->GetHeight(), - &memDC, 0, 0, wxSRC_INVERT); - memDC.SelectObject(wxNullBitmap); - } - else - { - if (m_windowStyle & wxTB_3DBUTTONS) - { - int ax = (int)tool->m_x, - ay = (int)tool->m_y, - bx = (int)(tool->m_x+tool->GetWidth()), - by = (int)(tool->m_y+tool->GetHeight()); - - memDC.SelectObject(tool->m_bitmap1); - dc.SetClippingRegion(ax, ay, (bx-ax+1), (by-ay+1)); - dc.Blit((ax+2), (ay+2), (bx-ax-2), (by-ay-2), &memDC, 0, 0); - wxPen * old_pen = & dc.GetPen(); - dc.SetPen( black_pen ); - dc.DrawLine(ax,(by-1),ax,ay); - dc.DrawLine(ax,ay,(bx-1),ay); - dc.SetPen( dark_grey_pen ); - dc.DrawLine((ax+1),(by-2),(ax+1),(ay+1)); - dc.DrawLine((ax+1),(ay+1),(bx-2),(ay+1)); - dc.SetPen( white_pen ); - dc.DrawLine(bx,ay,bx,by); - dc.DrawLine(bx,by,ax,by); - dc.SetPen( *old_pen ); - dc.DestroyClippingRegion(); - memDC.SelectObject(wxNullBitmap); - } - else - { - long x = tool->m_x; - long y = tool->m_y; - long w = tool->m_bitmap1.GetWidth(); - long h = tool->m_bitmap1.GetHeight(); - wxPen thick_black_pen("BLACK", 3, wxSOLID); - - memDC.SelectObject(tool->m_bitmap1); - dc.SetClippingRegion(tool->m_x, tool->m_y, w, h); - dc.Blit(tool->m_x, tool->m_y, w, h, - &memDC, 0, 0); - dc.SetPen(thick_black_pen); - dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.DrawRectangle(x, y, w-1, h-1); - dc.DestroyClippingRegion(); - memDC.SelectObject(wxNullBitmap); - } - } - } -} - -void wxToolBarSimple::ToggleTool(int index, bool toggle) -{ - wxNode *node = (wxNode*) NULL; - node = m_tools.Find((long)index); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool && tool->m_isToggle) - { - bool oldState = tool->m_toggleState; - tool->m_toggleState = toggle; - - if (oldState != toggle) - { - wxMemoryDC memDC; - wxClientDC dc(this); - DrawTool(dc, memDC, tool); - } - } - } -} - -// Okay, so we've left the tool we're in ... we must check if -// the tool we're leaving was a 'sprung push button' and if so, -// spring it back to the up state. -// -void wxToolBarSimple::SpringUpButton(int index) -{ - wxNode *node = (wxNode*) NULL; - node=m_tools.Find((long)index); - if (node) { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool && !tool->m_isToggle && tool->m_toggleState){ - tool->m_toggleState = FALSE; - wxMemoryDC memDC; - wxClientDC dc(this); - DrawTool(dc, memDC, tool); - } - else if (tool && tool->m_isToggle){ - tool->m_toggleState = !tool->m_toggleState; - wxMemoryDC memDC; - wxClientDC dc(this); - DrawTool(dc, memDC, tool); - } - } -} - -void wxToolBarSimple::LayoutTools(void) -{ - m_currentRowsOrColumns = 0; - m_lastX = m_xMargin; - m_lastY = m_yMargin; - int maxToolWidth = 0; - int maxToolHeight = 0; - m_maxWidth = 0; - m_maxHeight = 0; - - // Find the maximum tool width and height - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->GetWidth() > maxToolWidth) - maxToolWidth = (int)tool->GetWidth(); - if (tool->GetHeight() > maxToolHeight) - maxToolHeight = (int)tool->GetHeight(); - node = node->Next(); - } - - int separatorSize = m_toolSeparation; - - node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_toolStyle == wxTOOL_STYLE_SEPARATOR) - { - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - { - if (m_currentRowsOrColumns >= m_maxCols) - m_lastY += separatorSize; - else - m_lastX += separatorSize; - } - else - { - if (m_currentRowsOrColumns >= m_maxRows) - m_lastX += separatorSize; - else - m_lastY += separatorSize; - } - } - else if (tool->m_toolStyle == wxTOOL_STYLE_BUTTON) - { - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - { - if (m_currentRowsOrColumns >= m_maxCols) - { - m_currentRowsOrColumns = 0; - m_lastX = m_xMargin; - m_lastY += maxToolHeight + m_toolPacking; - } - tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0); - tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0); - - m_lastX += maxToolWidth + m_toolPacking; - } - else - { - if (m_currentRowsOrColumns >= m_maxRows) - { - m_currentRowsOrColumns = 0; - m_lastX += (maxToolWidth + m_toolPacking); - m_lastY = m_yMargin; - } - tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0); - tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0); - - m_lastY += maxToolHeight + m_toolPacking; - } - m_currentRowsOrColumns ++; - } - - if (m_lastX > m_maxWidth) - m_maxWidth = m_lastX; - if (m_lastY > m_maxHeight) - m_maxHeight = m_lastY; - - node = node->Next(); - } - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - m_maxWidth += maxToolWidth; - else - m_maxHeight += maxToolHeight; - - m_maxWidth += m_xMargin; - m_maxHeight += m_yMargin; -} - - -#endif diff --git a/src/common/textfile.cpp b/src/common/textfile.cpp deleted file mode 100644 index c70d51d278..0000000000 --- a/src/common/textfile.cpp +++ /dev/null @@ -1,265 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: textfile.cpp -// Purpose: implementation of wxTextFile class -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers -// ============================================================================ - -#ifdef __GNUG__ -#pragma implementation "textfile.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif //__BORLANDC__ - -#include -#include -#include -#include -#include - -// ============================================================================ -// wxTextFile class implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// static variables -// ---------------------------------------------------------------------------- - -// default type is the native one -const wxTextFileType wxTextFile::typeDefault = -#if defined(__WINDOWS__) - wxTextFileType_Dos; -#elif defined(__UNIX__) - wxTextFileType_Unix; -#elif defined(__WXMAC__) - wxTextFileType_Mac; -#else - wxTextFileType_None; - #error "wxTextFile: unsupported platform." -#endif - - -// ---------------------------------------------------------------------------- -// ctors & dtor -// ---------------------------------------------------------------------------- - -wxTextFile::wxTextFile(const wxString& strFile) : m_strFile(strFile) -{ -} - -wxTextFile::~wxTextFile() -{ - // m_file dtor called automatically -} - -// ---------------------------------------------------------------------------- -// file operations -// ---------------------------------------------------------------------------- - -bool wxTextFile::Open(const wxString& strFile) -{ - m_strFile = strFile; - - return Open(); -} - -bool wxTextFile::Open() -{ - // file name must be either given in ctor or in Open(const wxString&) - wxASSERT( !m_strFile.IsEmpty() ); - - // open file in read-only mode - if ( !m_file.Open(m_strFile) ) - return FALSE; - - // read file into memory - bool bRet = Read(); - - m_file.Close(); - - return bRet; -} - -// analyse some lines of the file trying to guess it's type. -// if it fails, it assumes the native type for our platform. -wxTextFileType wxTextFile::GuessType() const -{ - // file should be opened and we must be in it's beginning - wxASSERT( m_file.IsOpened() && m_file.Tell() == 0 ); - - // scan the file lines - size_t nUnix = 0, // number of '\n's alone - nDos = 0, // number of '\r\n' - nMac = 0; // number of '\r's - - // we take MAX_LINES_SCAN in the beginning, middle and the end of file - #define MAX_LINES_SCAN (10) - size_t nCount = m_aLines.Count() / 3, - nScan = nCount > 3*MAX_LINES_SCAN ? MAX_LINES_SCAN : nCount / 3; - - #define AnalyseLine(n) \ - switch ( m_aTypes[n] ) { \ - case wxTextFileType_Unix: nUnix++; break; \ - case wxTextFileType_Dos: nDos++; break; \ - case wxTextFileType_Mac: nMac++; break; \ - default: wxFAIL_MSG(_("unknown line terminator")); \ - } - - size_t n; - for ( n = 0; n < nScan; n++ ) // the beginning - AnalyseLine(n); - for ( n = (nCount - nScan)/2; n < (nCount + nScan)/2; n++ ) - AnalyseLine(n); - for ( n = nCount - nScan; n < nCount; n++ ) - AnalyseLine(n); - - #undef AnalyseLine - - // interpret the results (@@ far from being even 50% fool proof) - if ( nDos + nUnix + nMac == 0 ) { - // no newlines at all - wxLogWarning(_("'%s' is probably a binary file."), m_strFile.c_str()); - } - else { - #define GREATER_OF(t1, t2) n##t1 == n##t2 ? typeDefault \ - : n##t1 > n##t2 \ - ? wxTextFileType_##t1 \ - : wxTextFileType_##t2 - - // Watcom C++ doesn't seem to be able to handle the macro -#if !defined(__WATCOMC__) - if ( nDos > nUnix ) - return GREATER_OF(Dos, Mac); - else if ( nDos < nUnix ) - return GREATER_OF(Unix, Mac); - else { - // nDos == nUnix - return nMac > nDos ? wxTextFileType_Mac : typeDefault; - } -#endif // __WATCOMC__ - - #undef GREATER_OF - } - - return typeDefault; -} - -bool wxTextFile::Read() -{ - // file should be opened and we must be in it's beginning - wxASSERT( m_file.IsOpened() && m_file.Tell() == 0 ); - - wxString str; - char ch, chLast = '\0'; - char buf[1024]; - int n, nRead; - while ( !m_file.Eof() ) { - nRead = m_file.Read(buf, WXSIZEOF(buf)); - if ( nRead == wxInvalidOffset ) { - // read error (error message already given in wxFile::Read) - m_file.Close(); - return FALSE; - } - - for ( n = 0; n < nRead; n++ ) { - ch = buf[n]; - switch ( ch ) { - case '\n': - // Dos/Unix line termination - m_aLines.Add(str); - m_aTypes.Add(chLast == '\r' ? wxTextFileType_Dos - : wxTextFileType_Unix); - str.Empty(); - chLast = '\n'; - break; - - case '\r': - if ( chLast == '\r' ) { - // Mac empty line - m_aLines.Add(""); - m_aTypes.Add(wxTextFileType_Mac); - } - else - chLast = '\r'; - break; - - default: - if ( chLast == '\r' ) { - // Mac line termination - m_aLines.Add(str); - m_aTypes.Add(wxTextFileType_Mac); - chLast = ch; - str = ch; - } - else { - // add to the current line - str += ch; - } - } - } - } - - // anything in the last line? - if ( !str.IsEmpty() ) { - m_aTypes.Add(wxTextFileType_None); // no line terminator - m_aLines.Add(str); - } - - return TRUE; -} - -bool wxTextFile::Close() -{ - m_aTypes.Clear(); - m_aLines.Clear(); - m_nCurLine = 0; - - return TRUE; -} - -bool wxTextFile::Write(wxTextFileType typeNew) -{ - wxTempFile fileTmp(m_strFile); - - if ( !fileTmp.IsOpened() ) { - wxLogError(_("can't write file '%s' to disk."), m_strFile.c_str()); - return FALSE; - } - - size_t nCount = m_aLines.Count(); - for ( size_t n = 0; n < nCount; n++ ) { - fileTmp.Write(m_aLines[n] + - GetEOL(typeNew == wxTextFileType_None ? m_aTypes[n] - : typeNew)); - } - - // replace the old file with this one - return fileTmp.Commit(); -} - -const wxChar *wxTextFile::GetEOL(wxTextFileType type) - { - switch ( type ) { - case wxTextFileType_None: return _T(""); - case wxTextFileType_Unix: return _T("\n"); - case wxTextFileType_Dos: return _T("\r\n"); - case wxTextFileType_Mac: return _T("\r"); - - default: - wxFAIL_MSG(_T("bad file type in wxTextFile::GetEOL.")); - return (const wxChar *) NULL; - } - } - diff --git a/src/common/time.cpp b/src/common/time.cpp deleted file mode 100644 index c221079ae4..0000000000 --- a/src/common/time.cpp +++ /dev/null @@ -1,425 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: time.cpp -// Purpose: wxTime class, from NIHCL -// Author: Julian Smart, after K. E. Gorlen -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "time.h" -#endif - -/* -Provides an object that represents a Time, stored as the number of -seconds since January 1, 1901, GMT. -*/ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/setup.h" - -#if wxUSE_TIMEDATE - -#include "wx/time.h" -#include "wx/date.h" -#include "wx/utils.h" -#include "wx/intl.h" - -#include "wx/ioswrap.h" - -#if wxUSE_IOSTREAMH - #include -#else - #include -#endif - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTime, wxObject) -#endif - - -extern bool wxGetLocalTime(long *timeZone, int *dstObserved); -extern long wxGetCurrentTime(void); - -static long TIME_ZONE; /* seconds west of GMT */ -static int DST_OBSERVED; /* flags U.S. daylight saving time observed */ - -static bool wxTimeInitialized = FALSE; - -wxTime::tFormat wxTime::Format = wxTime::wx12h; -wxTime::tPrecision wxTime::Precision = wxTime::wxStdMinSec; - -static const unsigned long seconds_in_day = 24*60*60L; -static const wxDate refDate(1,1,1901); -// static const wxDate maxDate(49709L); /* ((2**32)-1)/seconds_in_day -1 */ - -wxTime wxTime::GetLocalTime(const wxDate& date, hourTy h, minuteTy m, secondTy s) -/* - Return a local wxTime for the specified Standard Time date, hour, minute, - and second. -*/ -{ - if (!wxTimeInitialized) - { - wxGetLocalTime(&TIME_ZONE, &DST_OBSERVED); - wxTimeInitialized = TRUE; - } -/* - if (!date.IsBetween(refDate,maxDate)) - setError(NIHCL_DATERANGE,DEFAULT, - date.dayOfMonth(),date.nameOfMonth(),date.year()); -*/ - // The following line causes an error in GCC 2.1 -// long daysBetween = date-refDate; - // ... but this seems to get round it. - wxDate tmp1(date); - wxDate tmp2(refDate); - long daysBetween = tmp1 - tmp2; - - return wxTime(seconds_in_day*daysBetween + 60*60L*h + 60*m + s); -} - -wxTime::wxTime() -/* - Construct a wxTime for this instant. -*/ -{ - if (!wxTimeInitialized) - { - wxGetLocalTime(&TIME_ZONE, &DST_OBSERVED); - wxTimeInitialized = TRUE; - } - sec = wxGetCurrentTime(); -#ifdef __SALFORDC__ - sec += (unsigned long) 2177452800; /* seconds from 1/1/01 to 1/1/70 */ -#else - sec += 2177452800UL; /* seconds from 1/1/01 to 1/1/70 */ -#endif -} - -wxTime::wxTime(hourTy h, minuteTy m, secondTy s, bool dst) -/* - Construct a wxTime for today at the specified (local) hour, minute, and - second. -*/ -{ - if (!wxTimeInitialized) - { - wxGetLocalTime(&TIME_ZONE, &DST_OBSERVED); - wxTimeInitialized = TRUE; - } - - sec = wxTime(wxDate(),h,m,s,dst).sec; -} - - -wxTime::wxTime(const wxDate& date, hourTy h, minuteTy m, secondTy s, bool dst) -/* - Construct a wxTime for the specified (local) Date, hour, minute, and - second. -*/ -{ - if (!wxTimeInitialized) - { - wxGetLocalTime(&TIME_ZONE, &DST_OBSERVED); - wxTimeInitialized = TRUE; - } - sec = GetLocalTime(date,h,m,s).sec-3600; - if (IsDST()) - { - sec += 3600; - if (IsDST() || dst) sec -= 3600; - } - else - { - sec += 3600; -/* - if (IsDST()) setError(NIHCL_BADTIME,DEFAULT, - date.dayOfMonth(),date.nameOfMonth(),date.year(), - h,m,s,(dst?_("DST"):"")); -*/ - } - sec += TIME_ZONE; // adjust to GMT -} - -#ifndef __SALFORDC__ -wxTime::operator wxDate() const -/* - Convert a wxTime to a local wxDate -*/ -{ -// return wxDate((int)(GetLocalTime().sec/seconds_in_day)); 4.2 cc bug - long daycount = (long)(GetLocalTime().sec/seconds_in_day); - - wxDate date(1,1,1901); - date += daycount; - return date; -} -#endif - -bool wxTime::IsBetween(const wxTime& a, const wxTime& b) const -{ - return *this >= a && *this <= b; -} - -hourTy wxTime::GetHour() const -/* - Return the hour of this wxTime in local time; i.e., adjust for - time zone and Daylight Savings Time. -*/ -{ - return GetLocalTime().GetHourGMT(); -} - -hourTy wxTime::GetHourGMT() const -/* - Return the hour of this Time in GMT. -*/ -{ - return (hourTy)((sec % 86400) / 3600); -} - -wxTime wxTime::GetBeginDST(unsigned year) -/* - Return the local Standard Time at which Daylight Savings Time - begins in the specified year. -*/ -{ - // Previous Sunday - wxTime DSTtime(GetLocalTime(wxDate(3,31,year).Previous(1)+7,2)); - if (year<=1986) { - // Previous Sunday - DSTtime = GetLocalTime(wxDate(4,30,year).Previous(1),2); - if (year==1974) DSTtime = GetLocalTime(wxDate(1,6,1974),2); - if (year==1975) DSTtime = GetLocalTime(wxDate(2,23,1975),2); - } - return DSTtime; -} - -wxTime wxTime::GetEndDST(unsigned year) -/* - Return the local Standard Time at which Daylight Savings Time - ends in the specified year. -*/ -{ - wxTime STDtime(GetLocalTime(wxDate(10,31,year).Previous(1),2-1)); - return STDtime; -} - -bool wxTime::IsDST() const -/* - Return TRUE if this local Standard Time should be adjusted - for Daylight Savings Time. -*/ -{ - long daycount = (long)(sec/seconds_in_day); - - // At this point, daycount is the number of days from 1/1/1901. - // Need to convert to julian date (which starts at 1/1/4713 B.C.) - wxDate date(1,1,1901); - date += daycount; - - unsigned year = date.GetYear(); - if (DST_OBSERVED) - { - if (*this >= GetBeginDST(year)) - if (*this < GetEndDST(year)) return TRUE; - } - return FALSE; -} - -wxTime wxTime::GetLocalTime() const -/* - Adjusts this GM Time for local time zone and Daylight Savings Time. -*/ -{ - wxTime local_time(sec-TIME_ZONE); - if (local_time.IsDST()) local_time.sec += 3600; - return local_time; -} - -minuteTy wxTime::GetMinute() const -/* - Return the minute of this wxTime in local time; i.e., adjust - for time zone and Daylight Savings Time. -*/ -{ - return GetLocalTime().GetMinuteGMT(); -} - -minuteTy wxTime::GetMinuteGMT() const -/* - Return the minute of this wxTime in GMT. -*/ -{ - return (minuteTy)(((sec % 86400) % 3600) / 60); -} - -secondTy wxTime::GetSecond() const -/* - Return the second of this wxTime. -*/ -{ - return (secondTy)(((sec % 86400) % 3600) % 60); -} - -secondTy wxTime::GetSecondGMT() const -/* - Return the minute of this wxTime in GMT. -*/ -{ - return (secondTy)(((sec % 86400) % 3600) % 60); -} - -int wxTime::GetDay() const -{ - wxDate da((wxDate) *this); - return da.GetDay(); -} - -int wxTime::GetDayOfWeek() const -{ - wxDate da((wxDate) *this); - return da.GetDayOfWeek(); -} - -int wxTime::GetMonth() const -{ - wxDate da((wxDate) *this); - return da.GetMonth(); -} - -int wxTime::GetYear() const -{ - wxDate da((wxDate) *this); - return da.GetYear(); -} - -wxTime wxTime::Max(const wxTime& t) const -{ - if (t < *this) return *this; - return t; -} - -wxTime wxTime::Min(const wxTime& t) const -{ - if (t > *this) return *this; - return t; -} - -#ifndef __SALFORDC__ -wxTime::operator wxChar *(void) -{ - return FormatTime(); -} -#endif - -void wxTime::SetFormat(const wxTime::tFormat lFormat, - const wxTime::tPrecision lPrecision) { - - wxTime::Format = lFormat; - wxTime::Precision = lPrecision; -} - -wxChar *wxTime::FormatTime() const { - static wxChar timeBuf[30]; - unsigned hh(GetHour()); - - switch (Format) { - case wx12h: - hh -= 12; - break; - case wx24h: - break; - } - - switch (Precision) { - case wxStdMinSec: - wxSprintf(timeBuf,_T("%2d:%02d:%02d"),hh,GetMinute(),GetSecond()); - break; - case wxStdMin: - wxSprintf(timeBuf,_T("%2d:%02d"),hh,GetMinute()); - break; - } - - if (Format == wx12h) - if (GetHour() <= 12) - wxStrcat(timeBuf,_("am")); - else - wxStrcat(timeBuf,_("pm")); - - return timeBuf; -} - -/* -int wxTime::compare(const Object& ob) const -{ - assertArgSpecies(ob,classDesc,"compare"); - register clockTy t = castdown(ob).sec; - if (sec < t) return -1; - if (sec > t) return 1; - return 0; -} - -void wxTime::deepenShallowCopy() {} - -unsigned wxTime::hash() const { return sec; } - -bool wxTime::isEqual(const Object& ob) const -{ - return ob.isSpecies(classDesc) && *this==castdown(ob); -} - -const Class* wxTime::species() const { return &classDesc; } - -void wxTime::printOn(ostream& strm) const -{ - register unsigned hh = GetHour(); - wxDate(*this).printOn(strm); - strm << ' ' << ((hh <= 12) ? hh : hh-12) << ':' - << setfill('0') << setw(2) << GetMinute() << ':' - << setfill('0') << setw(2) << GetSecond() << ' '; - if (hh < 12) strm << _("am"); - else strm << _("pm"); -} - -wxTime::wxTime(OIOin& strm) - : BASE(strm) -{ - unsigned long usec; - strm >> sec >> usec; -} - -void wxTime::storer(OIOout& strm) const -{ - BASE::storer(strm); - strm << sec << 0l; -} - - -wxTime::wxTime(OIOifd& fd) - : BASE(fd) -{ - unsigned long usec; - fd >> sec >> usec; -} - -void wxTime::storer(OIOofd& fd) const -{ - BASE::storer(fd); - fd << sec << 0l; -} -*/ - -#endif diff --git a/src/common/timercmn.cpp b/src/common/timercmn.cpp deleted file mode 100644 index 7c1f7ccdc3..0000000000 --- a/src/common/timercmn.cpp +++ /dev/null @@ -1,225 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timercmn.cpp -// Purpose: Common timer implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -//#pragma implementation "timercmn.h" -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/list.h" -#endif - -#include "wx/timer.h" - -#if defined(__SVR4__) && !defined(__SYSV__) -#define __SYSV__ -#endif - -#include - -#ifndef __WXMAC__ -#include -#endif - -#if (!defined(__SC__) && !defined(__SGI__) && !defined(__GNUWIN32__) && !defined(__MWERKS__)) || defined(__MINGW32__) -#include -#endif - -#if defined(__linux__) || defined(__SVR4__) || defined(__SYSV__) || defined(__SGI__) || \ - defined(__ALPHA__) || defined(__GNUWIN32__) || defined(__FreeBSD__) || defined(__NetBSD__) || \ - defined(__SALFORDC__) -#include -#endif - -#ifdef __MINGW32__ -#include "windows.h" -#endif - -#if defined(__SUN__) || defined(__OSF__) || defined(__FreeBSD__) -// At least on Sun, ftime is undeclared. -// Need to be verified on other platforms. -extern "C" int ftime(struct timeb *tp); -//extern "C" int gettimeofday(struct timeval *tp, void *); -// extern "C" time_t time(time_t); -// #include -#if defined(__SVR4__) && !defined(__ALPHA__) -// ditto for gettimeofday on Solaris 2.x. -extern "C" int gettimeofday(struct timeval *tp, void *); -#endif -#endif - -/* - * Timer functions - * - */ - -long wxStartTime = 0; -void wxStartTimer(void) -{ -#if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__) - struct timeval tp; -#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__)) - gettimeofday(&tp, (struct timezone *)NULL); -#else - gettimeofday(&tp); -#endif - wxStartTime = 1000*tp.tv_sec + tp.tv_usec/1000; -#elif (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__) || defined(__MINGW32__) || defined(__MWERKS__) || defined(__FreeBSD__) ) - time_t t0; - struct tm *tp; - time(&t0); - tp = localtime(&t0); - wxStartTime = 1000*(60*(60*tp->tm_hour+tp->tm_min)+tp->tm_sec); -#else - struct timeb tp; - ftime(&tp); - wxStartTime = 1000*tp.time + tp.millitm; -#endif -} - -// Returns elapsed time in milliseconds -long wxGetElapsedTime(bool resetTimer) -{ -#if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__) - struct timeval tp; -#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__)) - gettimeofday(&tp, (struct timezone *)NULL); -#else - gettimeofday(&tp); -#endif - long oldTime = wxStartTime; - long newTime = 1000*tp.tv_sec + tp.tv_usec / 1000; - if (resetTimer) - wxStartTime = newTime; -#elif (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__) || defined(__MINGW32__)|| defined(__MWERKS__) || defined(__FreeBSD__)) - time_t t0; - struct tm *tp; - time(&t0); - tp = localtime(&t0); - long oldTime = wxStartTime; - long newTime = 1000*(60*(60*tp->tm_hour+tp->tm_min)+tp->tm_sec); - if (resetTimer) - wxStartTime = newTime; -#else - struct timeb tp; - ftime(&tp); - long oldTime = wxStartTime; - long newTime = 1000*tp.time + tp.millitm; - if (resetTimer) - wxStartTime = newTime; -#endif - return newTime - oldTime; -} - -// EXPERIMENTAL: comment this out if it doesn't compile. -#ifndef __VMS__ -bool wxGetLocalTime(long *timeZone, int *dstObserved) -{ -#if defined(__MINGW32__) && defined(__EGCS__) - time_t t0; - struct tm *tp; - time(&t0); - tp = localtime(&t0); - *timeZone = _timezone; // tp->tm_gmtoff; // ??? - *dstObserved = tp->tm_isdst; -#elif defined(__MINGW32__) - time_t t0; - struct tm *tp; - time(&t0); - tp = localtime(&t0); - timeb tz; - ftime(& tz); - *timeZone = tz._timezone; - *dstObserved = tp->tm_isdst; -#else - -#if (((defined(__SYSV__) && !defined(__HPUX__)) || defined(__MSDOS__) || defined(__WXMSW__))\ - && !defined(__GNUWIN32__) && !defined(__MWERKS__) ) -#if defined(__BORLANDC__) - /* Borland uses underscores */ - *timeZone = _timezone; - *dstObserved = _daylight; -#elif defined(__SALFORDC__) - *timeZone = _timezone; - *dstObserved = daylight; -#else - *timeZone = timezone; - *dstObserved = daylight; -#endif -#elif defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) || defined(__MWERKS__) || (defined(__GNUWIN32__) && !defined(__MINGW32__)) // || defined(__AIXV3__) -#ifndef __MWERKS__ // shouldn't this be one scope below ? - struct timeval tp; -#endif -#if defined(__SYSV__) || (defined(__GNUWIN32__) && !defined(__MINGW32)) - struct timezone tz; - gettimeofday(&tp, &tz); - *timeZone = 60*(tz.tz_minuteswest); - *dstObserved = tz.tz_dsttime; -#else - time_t t0; - struct tm *tp; - time(&t0); - tp = localtime(&t0); -#ifndef __MWERKS__ - *timeZone = tp->tm_gmtoff; // ??? -#else - *timeZone = 0 ; -#endif - *dstObserved = tp->tm_isdst; -#endif -#elif defined(__WXSTUBS__) - return FALSE; -#else -// #error wxGetLocalTime not implemented. - struct timeval tp; - struct timezone tz; - gettimeofday(&tp, &tz); - *timeZone = 60*(tz.tz_minuteswest); - *dstObserved = tz.tz_dsttime; -#endif -#endif - // __MINGW32__ - return TRUE; -} -#endif - -// Get number of seconds since 00:00:00 GMT, Jan 1st 1970. -long wxGetCurrentTime(void) -{ -#if defined(__xlC__) || defined(__AIX__) || defined(__SVR4__) || defined(__SYSV__) // || defined(__AIXV3__) - struct timeval tp; -#if defined(__SYSV__) || (defined (__GNUWIN32__) && !defined (__MINGW32__) || defined(__FreeBSD__)) - gettimeofday(&tp, (struct timezone *)NULL); -#else - gettimeofday(&tp); -#endif - return tp.tv_sec; -#else // (defined(__SC__) || defined(__SGI__) || defined(___BSDI__) || defined(__ALPHA__)) - return time(0); -#endif -/* -#else - struct timeb tp; - ftime(&tp); - return tp.time; -#endif -*/ -} - diff --git a/src/common/tokenzr.cpp b/src/common/tokenzr.cpp deleted file mode 100644 index c4f4bfb899..0000000000 --- a/src/common/tokenzr.cpp +++ /dev/null @@ -1,138 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tokenzr.cpp -// Purpose: String tokenizer -// Author: Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "tokenzr.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/tokenzr.h" - -wxStringTokenizer::wxStringTokenizer(const wxString& to_tokenize, - const wxString& delims, - bool ret_delims) -{ - m_string = to_tokenize; - m_delims = delims; - m_retdelims = ret_delims; -} - -wxStringTokenizer::~wxStringTokenizer() -{ -} - -off_t wxStringTokenizer::FindDelims(const wxString& str, const wxString& delims) const -{ - for ( int i = 0; i < str.Length(); i++ ) - { - char c = str[i]; - - for ( int j = 0; j < delims.Length() ; j++ ) - { - if ( delims[j] == c ) - return i; - } - } - - return -1; -} - -int wxStringTokenizer::CountTokens() const -{ - wxString p_string = m_string; - bool found = TRUE; - int pos, count = 1; - - if (p_string.Length() == 0) - return 0; - - while (found) - { - pos = FindDelims(p_string, m_delims); - if (pos != -1) - { - count++; - p_string = p_string(0, pos); - } - else - { - found = FALSE; - } - } - - return count; -} - -bool wxStringTokenizer::HasMoreTokens() -{ - return !m_string.IsEmpty(); -} - -// needed to fix leading whitespace / mult. delims bugs -void wxStringTokenizer::EatLeadingDelims() -{ - int pos; - - // while leading delims trim 'em from the left - while ( ( pos = FindDelims(m_string, m_delims)) == 0 ) - { - m_string = m_string.Mid((size_t)1); - } -} - -wxString wxStringTokenizer::NextToken() -{ - off_t pos, pos2; - wxString r_string; - - if ( m_string.IsEmpty() ) - return m_string; - - if ( !m_retdelims ) - EatLeadingDelims(); - - pos = FindDelims(m_string, m_delims); - if (pos == -1) - { - r_string = m_string; - m_string = wxEmptyString; - - return r_string; - } - - if (m_retdelims) - { - if (!pos) - { - pos++; - pos2 = 1; - } - else - { - pos2 = pos; - } - } - else - { - pos2 = pos + 1; - } - - r_string = m_string.Left((size_t)pos); - m_string = m_string.Mid((size_t)pos2); - - return r_string; -} diff --git a/src/common/url.cpp b/src/common/url.cpp deleted file mode 100644 index 89b1f889cc..0000000000 --- a/src/common/url.cpp +++ /dev/null @@ -1,325 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: url.cpp -// Purpose: URL parser -// Author: Guilhem Lavaux -// Modified by: -// Created: 20/07/1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997, 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "url.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -#ifndef WX_PRECOMP -#endif - -#include -#include - -// wxWindows headers -#include -#include -#include - -// wxSocket header -#include "wx/url.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxProtoInfo, wxObject) -IMPLEMENT_CLASS(wxURL, wxObject) -#endif - -// Protocols list -wxProtoInfo *wxURL::g_protocols = NULL; -wxHTTP *wxURL::g_proxy; - -///////////////////////////////////////////////////////////////// -// wxURL //////////////////////////////////////////////////////// -///////////////////////////////////////////////////////////////// - -/* - * -------------------------------------------------------------- - * --------- wxURL CONSTRUCTOR DESTRUCTOR ----------------------- - * -------------------------------------------------------------- - */ - -wxURL::wxURL(const wxString& url) -{ - m_protocol = NULL; - if (g_proxy->IsConnected()) { - m_protocol = g_proxy; - m_protoname = "proxy"; - m_path = url; - return; - } - m_url = url; - m_error = wxURL_NOERR; - ParseURL(); -} - -bool wxURL::ParseURL() -{ - wxString last_url = m_url; - - // Clean up - CleanData(); - - // Extract protocol name - if (!PrepProto(last_url)) { - m_error = wxURL_SNTXERR; - return FALSE; - } - - // Find and create the protocol object - if (!FetchProtocol()) { - m_error = wxURL_NOPROTO; - return FALSE; - } - - // Do we need a host name ? - if (m_protoinfo->m_needhost) { - // Extract it - if (!PrepHost(last_url)) { - m_error = wxURL_SNTXERR; - return FALSE; - } - } - - // Extract full path - if (!PrepPath(last_url)) { - m_error = wxURL_NOPATH; - return FALSE; - } - - m_error = wxURL_NOERR; - return TRUE; -} - -void wxURL::CleanData() -{ - if (m_protoname != _T("proxy")) - delete m_protocol; -} - -wxURL::~wxURL() -{ - CleanData(); -} - -/* - * -------------------------------------------------------------- - * --------- wxURL urls decoders -------------------------------- - * -------------------------------------------------------------- - */ -bool wxURL::PrepProto(wxString& url) -{ - int pos; - - // Find end - pos = url.Find(':'); - if (pos == -1) - return FALSE; - - m_protoname = url(0, pos); - - url = url(pos+1, url.Length()); - - return TRUE; -} - -bool wxURL::PrepHost(wxString& url) -{ - wxString temp_url; - int pos, pos2; - - if ((url.GetChar(0) != '/') || (url.GetChar(1) != '/')) - return FALSE; - - url = url(2, url.Length()); - - pos = url.Find('/'); - if (pos == -1) - pos = url.Length(); - - if (pos == 0) - return FALSE; - - temp_url = url(0, pos); - url = url(url.Find('/'), url.Length()); - - // Retrieve service number - pos2 = temp_url.Find(':', TRUE); - if (pos2 != -1 && pos2 < pos) { - m_servname = temp_url(pos2+1, pos); - if (!m_servname.IsNumber()) - return FALSE; - temp_url = temp_url(0, pos2); - } - - // Retrieve user and password. - pos2 = temp_url.Find('@'); - // Even if pos2 equals -1, this code is right. - m_hostname = temp_url(pos2+1, temp_url.Length()); - - m_user = ""; - m_password = ""; - - if (pos2 == -1) - return TRUE; - - temp_url = temp_url(0, pos2); - pos2 = temp_url.Find(':'); - - if (pos2 == -1) - return FALSE; - - m_user = temp_url(0, pos2); - m_password = temp_url(pos2+1, url.Length()); - - return TRUE; -} - -bool wxURL::PrepPath(wxString& url) -{ - if (url.Length() != 0) - m_path = url; - else - m_path = "/"; - return TRUE; -} - -bool wxURL::FetchProtocol() -{ - wxProtoInfo *info = g_protocols; - - while (info) { - if (m_protoname == info->m_protoname) { - if (m_servname.IsNull()) - m_servname = info->m_servname; - - m_protoinfo = info; - m_protocol = (wxProtocol *)m_protoinfo->m_cinfo->CreateObject(); - wxSocketHandler::Master().Register(m_protocol); - return TRUE; - } - info = info->next; - } - return FALSE; -} - -/* - * -------------------------------------------------------------- - * --------- wxURL get ------------------------------------------ - * -------------------------------------------------------------- - */ -wxInputStream *wxURL::GetInputStream(void) -{ - wxIPV4address addr; - wxInputStream *the_i_stream = NULL; - - if (!m_protocol) - if (!ParseURL()) - return NULL; - - if (!m_protocol) { - m_error = wxURL_NOPROTO; - return NULL; - } - - m_error = wxURL_NOERR; - if (m_user != _T("")) { - m_protocol->SetUser(m_user); - m_protocol->SetPassword(m_password); - } - - if (m_protoinfo->m_needhost) { - if (!addr.Hostname(m_hostname)) { - m_error = wxURL_NOHOST; - return NULL; - } - - addr.Service(m_servname); - - if (!m_protocol->Connect(addr, TRUE)) // Watcom needs the 2nd arg for some reason - { - m_error = wxURL_CONNERR; - return NULL; - } - } - - the_i_stream = m_protocol->GetInputStream(m_path); - if (!the_i_stream) { - m_error = wxURL_PROTOERR; - return NULL; - } - - return the_i_stream; -} - -void wxURL::SetDefaultProxy(const wxString& url_proxy) -{ - g_proxy->Close(); - - if (url_proxy.IsNull()) - return; - - wxString tmp_str = url_proxy; - int pos = tmp_str.Find(':'); - wxString hostname = tmp_str(0, pos), - port = tmp_str(pos, tmp_str.Length()-pos); - wxIPV4address addr; - - addr.Hostname(hostname); - addr.Service(port); - - g_proxy->Connect(addr, TRUE); // Watcom needs the 2nd arg for some reason -} - -void wxURL::SetProxy(const wxString& url_proxy) -{ - if (url_proxy.IsNull()) { - m_proxy.Close(); - return; - } - - CleanData(); - - wxString tmp_str; - wxString hostname, port; - int pos; - wxIPV4address addr; - - tmp_str = url_proxy; - pos = tmp_str.Find(':'); - hostname = tmp_str(0, pos); - port = tmp_str(pos, tmp_str.Length()-pos); - - addr.Hostname(hostname); - addr.Service(port); - - m_proxy.Connect(addr, TRUE); // Watcom needs the 2nd arg for some reason - - m_protocol = &m_proxy; - m_protoname = "proxy"; - m_path = url_proxy; -} - -wxString wxURL::ConvertToValidURI(const wxString& uri) -{ - return wxString(uri); -} - -#endif - // wxUSE_SOCKETS diff --git a/src/common/utilscmn.cpp b/src/common/utilscmn.cpp deleted file mode 100644 index 8ad2a9d596..0000000000 --- a/src/common/utilscmn.cpp +++ /dev/null @@ -1,897 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utilscmn.cpp -// Purpose: Miscellaneous utility functions and classes -// Author: Julian Smart -// Modified by: -// Created: 29/01/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "utils.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/window.h" -#include "wx/menu.h" -#include "wx/frame.h" -#include "wx/msgdlg.h" -#include "wx/textdlg.h" -#endif - -#include "wx/ioswrap.h" - -#if wxUSE_IOSTREAMH - #include -#else - #include -#endif - -#include -#include -#include -#include -#if !defined(__WATCOMC__) - #if !(defined(_MSC_VER) && (_MSC_VER > 800)) - #include - #endif -#endif -#include -#ifndef __MWERKS__ -#include -#include -#endif - -#ifdef __SALFORDC__ -#include -#endif - -// Pattern matching code. -// Yes, this path is deliberate (for Borland compilation) -#ifdef wx_mac /* MATTHEW: [5] Mac doesn't like paths with "/" */ -#include "glob.inc" -#else -#include "../common/glob.inc" -#endif - -#ifdef __WXMSW__ -#include "windows.h" -#endif - -#define _MAXPATHLEN 500 - -extern wxChar *wxBuffer; - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -static wxWindow *wxFindWindowByLabel1(const wxString& title, wxWindow * parent); -static wxWindow *wxFindWindowByName1 (const wxString& title, wxWindow * parent); - -#ifdef __WXMAC__ -int strcasecmp(const char *str_1, const char *str_2) -{ - register char c1, c2; - do { - c1 = tolower(*str_1++); - c2 = tolower(*str_2++); - } while ( c1 && (c1 == c2) ); - - return c1 - c2; -} - -int strncasecmp(const char *str_1, const char *str_2, size_t maxchar) -{ - - register char c1, c2; - while( maxchar--) - { - c1 = tolower(*str_1++); - c2 = tolower(*str_2++); - - if ( !c1 || c1!=c2 ) - return c1 - c2; - - } ; - - return 0 ; - -} -#endif -#ifdef __VMS__ -// we have no strI functions under VMS, therefore I have implemented -// an inefficient but portable version: convert copies of strings to lowercase -// and then use the normal comparison -static void myLowerString(char *s) -{ - while(*s){ - if(isalpha(*s)) *s = (char)tolower(*s); - s++; - } -} - -int strcasecmp(const char *str_1, const char *str_2) -{ - char *temp1 = new char[strlen(str_1)+1]; - char *temp2 = new char[strlen(str_2)+1]; - strcpy(temp1,str_1); - strcpy(temp2,str_2); - myLowerString(temp1); - myLowerString(temp2); - - int result = strcmp(temp1,temp2); - delete[] temp1; - delete[] temp2; - - return(result); -} - -int strncasecmp(const char *str_1, const char *str_2, size_t maxchar) -{ - char *temp1 = new char[strlen(str_1)+1]; - char *temp2 = new char[strlen(str_2)+1]; - strcpy(temp1,str_1); - strcpy(temp2,str_2); - myLowerString(temp1); - myLowerString(temp2); - - int result = strncmp(temp1,temp2,maxchar); - delete[] temp1; - delete[] temp2; - - return(result); -} -#endif - -#ifdef __WINDOWS__ - -#ifndef __GNUWIN32__ -#ifndef __MWERKS__ -#define strcasecmp stricmp -#define strncasecmp strnicmp -#else -#define strcasecmp _stricmp -#define strncasecmp _strnicmp -#endif -#endif - -#else -// This declaration is missing in SunOS! -// (Yes, I know it is NOT ANSI-C but its in BSD libc) -#if defined(__xlC) || defined(__AIX__) || defined(__GNUG__) -extern "C" -{ - int strcasecmp (const char *, const char *); - int strncasecmp (const char *, const char *, size_t); -} -#endif -#endif /* __WXMSW__ */ - - -wxChar * -copystring (const wxChar *s) -{ - if (s == NULL) s = _T(""); - size_t len = wxStrlen (s) + 1; - - wxChar *news = new wxChar[len]; - memcpy (news, s, len * sizeof(wxChar)); // Should be the fastest - - return news; -} - -// Id generation -static long wxCurrentId = 100; - -long -wxNewId (void) -{ - return wxCurrentId++; -} - -long -wxGetCurrentId(void) { return wxCurrentId; } - -void -wxRegisterId (long id) -{ - if (id >= wxCurrentId) - wxCurrentId = id + 1; -} - -void -StringToFloat (wxChar *s, float *number) -{ - if (s && *s && number) - *number = (float) wxStrtod (s, (wxChar **) NULL); -} - -void -StringToDouble (wxChar *s, double *number) -{ - if (s && *s && number) - *number = wxStrtod (s, (wxChar **) NULL); -} - -wxChar * -FloatToString (float number, const wxChar *fmt) -{ - static wxChar buf[256]; - -// sprintf (buf, "%.2f", number); - wxSprintf (buf, fmt, number); - return buf; -} - -wxChar * -DoubleToString (double number, const wxChar *fmt) -{ - static wxChar buf[256]; - - wxSprintf (buf, fmt, number); - return buf; -} - -void -StringToInt (wxChar *s, int *number) -{ - if (s && *s && number) - *number = (int) wxStrtol (s, (wxChar **) NULL, 10); -} - -void -StringToLong (wxChar *s, long *number) -{ - if (s && *s && number) - *number = wxStrtol (s, (wxChar **) NULL, 10); -} - -wxChar * -IntToString (int number) -{ - static wxChar buf[20]; - - wxSprintf (buf, _T("%d"), number); - return buf; -} - -wxChar * -LongToString (long number) -{ - static wxChar buf[20]; - - wxSprintf (buf, _T("%ld"), number); - return buf; -} - -// Array used in DecToHex conversion routine. -static wxChar hexArray[] = _T("0123456789ABCDEF"); - -// Convert 2-digit hex number to decimal -int wxHexToDec(const wxString& buf) -{ - int firstDigit, secondDigit; - - if (buf.GetChar(0) >= _T('A')) - firstDigit = buf.GetChar(0) - _T('A') + 10; - else - firstDigit = buf.GetChar(0) - _T('0'); - - if (buf.GetChar(1) >= _T('A')) - secondDigit = buf.GetChar(1) - _T('A') + 10; - else - secondDigit = buf.GetChar(1) - _T('0'); - - return firstDigit * 16 + secondDigit; -} - -// Convert decimal integer to 2-character hex string -void wxDecToHex(int dec, wxChar *buf) -{ - int firstDigit = (int)(dec/16.0); - int secondDigit = (int)(dec - (firstDigit*16.0)); - buf[0] = hexArray[firstDigit]; - buf[1] = hexArray[secondDigit]; - buf[2] = 0; -} - -// Convert decimal integer to 2-character hex string -wxString wxDecToHex(int dec) -{ - wxChar buf[3]; - wxDecToHex(dec, buf); - return wxString(buf); -} - -// Match a string INDEPENDENT OF CASE -bool -StringMatch (char *str1, char *str2, bool subString, bool exact) -{ - if (str1 == NULL || str2 == NULL) - return FALSE; - if (str1 == str2) - return TRUE; - - if (subString) - { - int len1 = strlen (str1); - int len2 = strlen (str2); - int i; - - // Search for str1 in str2 - // Slow .... but acceptable for short strings - for (i = 0; i <= len2 - len1; i++) - { - if (strncasecmp (str1, str2 + i, len1) == 0) - return TRUE; - } - } - else if (exact) - { - if (strcasecmp (str1, str2) == 0) - return TRUE; - } - else - { - int len1 = strlen (str1); - int len2 = strlen (str2); - - if (strncasecmp (str1, str2, wxMin (len1, len2)) == 0) - return TRUE; - } - - return FALSE; -} - -// Don't synthesize KeyUp events holding down a key and producing -// KeyDown events with autorepeat. On by default and always on -// on in wxMSW. wxGTK version in utilsgtk.cpp. -#ifndef __WXGTK__ -bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) ) -{ - return TRUE; // detectable auto-repeat is the only mode MSW supports -} -#endif - -// Return the current date/time -// [volatile] -wxString wxNow( void ) -{ - time_t now = time((time_t *) NULL); - char *date = ctime(&now); - date[24] = '\0'; - return wxString(date); -} - -/* - * Strip out any menu codes - */ - -wxChar *wxStripMenuCodes (wxChar *in, wxChar *out) -{ - if (!in) - return (wxChar *) NULL; - - if (!out) - out = copystring(in); - - wxChar *tmpOut = out; - - while (*in) - { - if (*in == _T('&')) - { - // Check && -> &, &x -> x - if (*++in == _T('&')) - *out++ = *in++; - } - else if (*in == _T('\t')) - { - // Remove all stuff after \t in X mode, and let the stuff as is - // in Windows mode. - // Accelerators are handled in wx_item.cc for Motif, and are not - // YET supported in XView - break; - } - else - *out++ = *in++; - } // while - - *out = _T('\0'); - - return tmpOut; -} - -wxString wxStripMenuCodes(const wxString& str) -{ - wxChar *buf = new wxChar[str.Length() + 1]; - wxStripMenuCodes(WXSTRINGCAST str, buf); - wxString str1(buf); - delete[] buf; - return str1; -} - -/* - * Window search functions - * - */ - -/* - * If parent is non-NULL, look through children for a label or title - * matching the specified string. If NULL, look through all top-level windows. - * - */ - -wxWindow * -wxFindWindowByLabel (const wxString& title, wxWindow * parent) -{ - if (parent) - { - return wxFindWindowByLabel1(title, parent); - } - else - { - for ( wxWindowList::Node * node = wxTopLevelWindows.GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - wxWindow *retwin = wxFindWindowByLabel1 (title, win); - if (retwin) - return retwin; - } // for() - - } - return (wxWindow *) NULL; -} - -// Recursive -static wxWindow * -wxFindWindowByLabel1 (const wxString& title, wxWindow * parent) -{ - if (parent) - { - if (parent->GetLabel() == title) - return parent; - } - - if (parent) - { - for ( wxWindowList::Node * node = parent->GetChildren().GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = (wxWindow *)node->GetData(); - wxWindow *retwin = wxFindWindowByLabel1 (title, win); - if (retwin) - return retwin; - } - - } - - return (wxWindow *) NULL; // Not found -} - -/* - * If parent is non-NULL, look through children for a name - * matching the specified string. If NULL, look through all top-level windows. - * - */ - -wxWindow * -wxFindWindowByName (const wxString& title, wxWindow * parent) -{ - if (parent) - { - return wxFindWindowByName1 (title, parent); - } - else - { - for ( wxWindowList::Node * node = wxTopLevelWindows.GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - wxWindow *retwin = wxFindWindowByName1 (title, win); - if (retwin) - return retwin; - } - - } - - // Failed? Try by label instead. - return wxFindWindowByLabel(title, parent); -} - -// Recursive -static wxWindow * -wxFindWindowByName1 (const wxString& title, wxWindow * parent) -{ - if (parent) - { - if ( parent->GetName() == title ) - return parent; - } - - if (parent) - { - for (wxNode * node = parent->GetChildren().First (); node; node = node->Next ()) - { - wxWindow *win = (wxWindow *) node->Data (); - wxWindow *retwin = wxFindWindowByName1 (title, win); - if (retwin) - return retwin; - } // for() - - } - - return (wxWindow *) NULL; // Not found - -} - -// Returns menu item id or -1 if none. -int -wxFindMenuItemId (wxFrame * frame, const wxString& menuString, const wxString& itemString) -{ - wxMenuBar *menuBar = frame->GetMenuBar (); - if (!menuBar) - return -1; - return menuBar->FindMenuItem (menuString, itemString); -} - -/* -On Fri, 21 Jul 1995, Paul Craven wrote: - -> Is there a way to find the path of running program's executable? I can get -> my home directory, and the current directory, but I don't know how to get the -> executable directory. -> - -The code below (warty as it is), does what you want on most Unix, -DOS, and Mac platforms (it's from the ALS Prolog main). - -|| Ken Bowen Applied Logic Systems, Inc. PO Box 180, -||==== Voice: +1 (617)965-9191 Newton Centre, -|| FAX: +1 (617)965-1636 MA 02159 USA - Email: ken@als.com WWW: http://www.als.com ------------------------------------------------------------------------- -*/ - -// This code is commented out but it may be integrated with wxWin at -// a later date, after testing. Thanks Ken! -#if 0 - -/*--------------------------------------------------------------------* - | whereami is given a filename f in the form: whereami(argv[0]) - | It returns the directory in which the executable file (containing - | this code [main.c] ) may be found. A dot will be returned to indicate - | the current directory. - *--------------------------------------------------------------------*/ - -static void -whereami(name) - char *name; -{ - register char *cutoff = NULL; /* stifle -Wall */ - register char *s; - register char *t; - int cc; - char ebuf[4096]; - - /* - * See if the file is accessible either through the current directory - * or through an absolute path. - */ - - if (access(name, R_OK) == 0) { - - /*-------------------------------------------------------------* - * The file was accessible without any other work. But the current - * working directory might change on us, so if it was accessible - * through the cwd, then we should get it for later accesses. - *-------------------------------------------------------------*/ - - t = imagedir; - if (!absolute_pathname(name)) { -#if defined(DOS) || defined(__WIN32__) - int drive; - char *newrbuf; - - newrbuf = imagedir; -#ifndef __DJGPP__ - if (*(name + 1) == ':') { - if (*name >= 'a' && *name <= 'z') - drive = (int) (*name - 'a' + 1); - else - drive = (int) (*name - 'A' + 1); - *newrbuf++ = *name; - *newrbuf++ = *(name + 1); - *newrbuf++ = DIR_SEPARATOR; - } - else { - drive = 0; - *newrbuf++ = DIR_SEPARATOR; - } - if (getcwd(newrbuf, drive) == 0) { /* } */ -#else - if (getcwd(newrbuf, 1024) == 0) { /* } */ -#endif -#else /* DOS */ -#ifdef HAVE_GETWD - if (getwd(imagedir) == 0) { /* } */ -#else /* !HAVE_GETWD */ - if (getcwd(imagedir, 1024) == 0) { -#endif /* !HAVE_GETWD */ -#endif /* DOS */ - fatal_error(FE_GETCWD, 0); - } - for (; *t; t++) /* Set t to end of buffer */ - ; - if (*(t - 1) == DIR_SEPARATOR) /* leave slash if already - * last char - */ - cutoff = t - 1; - else { - cutoff = t; /* otherwise put one in */ - *t++ = DIR_SEPARATOR; - } - } -#if (!defined(__MAC__) && !defined(__DJGPP__) && !defined(__GO32__) && !defined(__WIN32__)) - else - (*t++ = DIR_SEPARATOR); -#endif - - /*-------------------------------------------------------------* - * Copy the rest of the string and set the cutoff if it was not - * already set. If the first character of name is a slash, cutoff - * is not presently set but will be on the first iteration of the - * loop below. - *-------------------------------------------------------------*/ - - for ((*name == DIR_SEPARATOR ? (s = name+1) : (s = name));;) { - if (*s == DIR_SEPARATOR) - cutoff = t; - if (!(*t++ = *s++)) - break; - } - - } - else { - - /*-------------------------------------------------------------* - * Get the path list from the environment. If the path list is - * inaccessible for any reason, leave with fatal error. - *-------------------------------------------------------------*/ - -#ifdef __MAC__ - if ((s = getenv("Commands")) == (char *) 0) -#else - if ((s = getenv("PATH")) == (char *) 0) -#endif - fatal_error(FE_PATH, 0); - - /* - * Copy path list into ebuf and set the source pointer to the - * beginning of this buffer. - */ - - strcpy(ebuf, s); - s = ebuf; - - for (;;) { - t = imagedir; - while (*s && *s != PATH_SEPARATOR) - *t++ = *s++; - if (t > imagedir && *(t - 1) == DIR_SEPARATOR) - ; /* do nothing -- slash already is in place */ - else - *t++ = DIR_SEPARATOR; /* put in the slash */ - cutoff = t - 1; /* set cutoff */ - strcpy(t, name); - if (access(imagedir, R_OK) == 0) - break; - - if (*s) - s++; /* advance source pointer */ - else - fatal_error(FE_INFND, 0); - } - - } - - /*-------------------------------------------------------------* - | At this point the full pathname should exist in imagedir and - | cutoff should be set to the final slash. We must now determine - | whether the file name is a symbolic link or not and chase it down - | if it is. Note that we reuse ebuf for getting the link. - *-------------------------------------------------------------*/ - -#ifdef HAVE_SYMLINK - while ((cc = readlink(imagedir, ebuf, 512)) != -1) { - ebuf[cc] = 0; - s = ebuf; - if (*s == DIR_SEPARATOR) { - t = imagedir; - } - else { - t = cutoff + 1; - } - for (;;) { - if (*s == DIR_SEPARATOR) - cutoff = t; /* mark the last slash seen */ - if (!(*t++ = *s++)) /* copy the character */ - break; - } - } - -#endif /* HAVE_SYMLINK */ - - strcpy(imagename, cutoff + 1); /* keep the image name */ - *(cutoff + 1) = 0; /* chop off the filename part */ -} - -#endif -void wxEnableTopLevelWindows(bool enable) -{ - wxWindowList::Node *node; - for ( node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() ) - node->GetData()->Enable(enable); -} - -// Yield to other apps/messages and disable user input -bool wxSafeYield(wxWindow *win) -{ - wxEnableTopLevelWindows(FALSE); - // always enable ourselves - if ( win ) - win->Enable(TRUE); - bool rc = wxYield(); - wxEnableTopLevelWindows(TRUE); - return rc; -} - -/* - * N.B. these convenience functions must be separate from msgdlgg.cpp, textdlgg.cpp - * since otherwise the generic code may be pulled in unnecessarily. - */ - -int wxMessageBox(const wxString& message, const wxString& caption, long style, - wxWindow *parent, int WXUNUSED(x), int WXUNUSED(y) ) -{ - wxMessageDialog dialog(parent, message, caption, style); - - int ans = dialog.ShowModal(); - switch ( ans ) - { - case wxID_OK: - return wxOK; - break; - case wxID_YES: - return wxYES; - break; - case wxID_NO: - return wxNO; - break; - default: - case wxID_CANCEL: - return wxCANCEL; - break; - } - return ans; -} - -#if wxUSE_TEXTDLG -wxString wxGetTextFromUser(const wxString& message, const wxString& caption, - const wxString& defaultValue, wxWindow *parent, - int x, int y, bool WXUNUSED(centre) ) -{ - wxTextEntryDialog dialog(parent, message, caption, defaultValue, wxOK|wxCANCEL, wxPoint(x, y)); - if (dialog.ShowModal() == wxID_OK) - return dialog.GetValue(); - else - return wxString(""); -} -#endif // wxUSE_TEXTDLG - -#ifdef __MWERKS__ -char *strdup(const char *s) -{ - return strcpy( (char*) malloc( strlen( s ) + 1 ) , s ) ; -} - -int isascii( int c ) -{ - return ( c >= 0 && c < 128 ) ; -} -#endif - -// ---------------------------------------------------------------------------- -// network and user id functions -// ---------------------------------------------------------------------------- - -// Get Full RFC822 style email address -bool wxGetEmailAddress(wxChar *address, int maxSize) -{ - wxString email = wxGetEmailAddress(); - if ( !email ) - return FALSE; - - wxStrncpy(address, email, maxSize - 1); - address[maxSize - 1] = _T('\0'); - - return TRUE; -} - -wxString wxGetEmailAddress() -{ - wxString email; - - wxString host = wxGetHostName(); - if ( !!host ) - { - wxString user = wxGetUserId(); - if ( !!user ) - { - wxString email(user); - email << _T('@') << host; - } - } - - return email; -} - -wxString wxGetUserId() -{ - static const int maxLoginLen = 256; // FIXME arbitrary number - - wxString buf; - bool ok = wxGetUserId(buf.GetWriteBuf(maxLoginLen), maxLoginLen); - buf.UngetWriteBuf(); - - if ( !ok ) - buf.Empty(); - - return buf; -} - -wxString wxGetUserName() -{ - static const int maxUserNameLen = 1024; // FIXME arbitrary number - - wxString buf; - bool ok = wxGetUserName(buf.GetWriteBuf(maxUserNameLen), maxUserNameLen); - buf.UngetWriteBuf(); - - if ( !ok ) - buf.Empty(); - - return buf; -} - -wxString wxGetHostName() -{ - static const size_t hostnameSize = 257; - - wxString buf; - bool ok = wxGetHostName(buf.GetWriteBuf(hostnameSize), hostnameSize); - - buf.UngetWriteBuf(); - - if ( !ok ) - buf.Empty(); - - return buf; -} - diff --git a/src/common/valgen.cpp b/src/common/valgen.cpp deleted file mode 100644 index 091c2b9db4..0000000000 --- a/src/common/valgen.cpp +++ /dev/null @@ -1,398 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: valgen.cpp -// Purpose: wxGenericValidator class -// Author: Kevin Smith -// Modified by: -// Created: Jan 22 1999 -// RCS-ID: -// Copyright: (c) 1999 Kevin Smith -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "valgen.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/wx.h" -#include "wx/dynarray.h" -#endif - -#ifndef __WIN16__ -#include "wx/spinbutt.h" -#include "wx/checklst.h" -#endif - -#include "wx/valgen.h" - -wxGenericValidator::wxGenericValidator(bool *val) -{ - Initialize(); - m_pBool = val; -} - -wxGenericValidator::wxGenericValidator(int *val) -{ - Initialize(); - m_pInt = val; -} - -wxGenericValidator::wxGenericValidator(wxString *val) -{ - Initialize(); - m_pString = val; -} - -wxGenericValidator::wxGenericValidator(wxArrayInt *val) -{ - Initialize(); - m_pArrayInt = val; -} - -wxGenericValidator::wxGenericValidator(const wxGenericValidator& val) -{ - Copy(val); -} - -bool wxGenericValidator::Copy(const wxGenericValidator& val) -{ - wxValidator::Copy(val); - - m_pBool = val.m_pBool; - m_pInt = val.m_pInt; - m_pString = val.m_pString; - m_pArrayInt = val.m_pArrayInt; - - return TRUE; -} - -wxGenericValidator::~wxGenericValidator() -{ -} - -// Called to transfer data to the window -bool wxGenericValidator::TransferToWindow(void) -{ - if ( !m_validatorWindow ) - return FALSE; - - // bool controls - if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) ) - { - wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow; - if (m_pBool) - { - pControl->SetValue(*m_pBool) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) ) - { - wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow; - if (m_pBool) - { - pControl->SetValue(*m_pBool) ; - return TRUE; - } - } - // int controls - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) ) - { - wxGauge* pControl = (wxGauge*) m_validatorWindow; - if (m_pInt) - { - pControl->SetValue(*m_pInt) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) ) - { - wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow; - if (m_pInt) - { - pControl->SetSelection(*m_pInt) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) ) - { - wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow; - if (m_pInt) - { - pControl->SetThumbPosition(*m_pInt) ; - return TRUE; - } - } -#ifndef __WIN16__ - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) ) - { - wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow; - if (m_pInt) - { - pControl->SetValue(*m_pInt) ; - return TRUE; - } - } -#endif - // string controls - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) ) - { - wxButton* pControl = (wxButton*) m_validatorWindow; - if (m_pString) - { - pControl->SetLabel(*m_pString) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) ) - { - wxComboBox* pControl = (wxComboBox*) m_validatorWindow; - if (m_pString) - { - pControl->SetValue(*m_pString) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) ) - { - wxChoice* pControl = (wxChoice*) m_validatorWindow; - if (m_pInt) - { - pControl->SetSelection(*m_pInt) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) ) - { - wxStaticText* pControl = (wxStaticText*) m_validatorWindow; - if (m_pString) - { - pControl->SetLabel(*m_pString) ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) ) - { - wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow; - if (m_pString) - { - pControl->SetValue(*m_pString) ; - return TRUE; - } - } -#ifndef __WIN16__ - // array controls - // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox - // MUST come first: - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) ) - { - wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow; - if (m_pArrayInt) - { - // clear all selections - int i; - for (i = 0 ; i < pControl->Number(); ++i) - pControl->Check(i, FALSE); - // select each item in our array - unsigned u; - for (u = 0; u < m_pArrayInt->Count(); ++u) - pControl->Check(m_pArrayInt->Item(u)); - return TRUE; - } - else - return FALSE; - } -#endif - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) ) - { - wxListBox* pControl = (wxListBox*) m_validatorWindow; - if (m_pArrayInt) - { - // clear all selections - int i; - for (i = 0 ; i < pControl->Number(); ++i) - pControl->Deselect(i); - // select each item in our array - unsigned u; - for (u = 0; u < m_pArrayInt->Count(); ++u) - pControl->SetSelection(m_pArrayInt->Item(u)); - return TRUE; - } - } - - // unrecognized control, or bad pointer - return FALSE; -} - -// Called to transfer data to the window -bool wxGenericValidator::TransferFromWindow(void) -{ - if ( !m_validatorWindow ) - return FALSE; - - // bool controls - if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckBox)) ) - { - wxCheckBox* pControl = (wxCheckBox*) m_validatorWindow; - if (m_pBool) - { - *m_pBool = pControl->GetValue() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioButton)) ) - { - wxRadioButton* pControl = (wxRadioButton*) m_validatorWindow; - if (m_pBool) - { - *m_pBool = pControl->GetValue() ; - return TRUE; - } - } - // int controls - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxGauge)) ) - { - wxGauge* pControl = (wxGauge*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetValue() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxRadioBox)) ) - { - wxRadioBox* pControl = (wxRadioBox*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetSelection() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxScrollBar)) ) - { - wxScrollBar* pControl = (wxScrollBar*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetThumbPosition() ; - return TRUE; - } - } -#ifndef __WIN16__ - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxSpinButton)) ) - { - wxSpinButton* pControl = (wxSpinButton*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetValue() ; - return TRUE; - } - } -#endif - // string controls - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxButton)) ) - { - wxButton* pControl = (wxButton*) m_validatorWindow; - if (m_pString) - { - *m_pString = pControl->GetLabel() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxComboBox)) ) - { - wxComboBox* pControl = (wxComboBox*) m_validatorWindow; - if (m_pString) - { - *m_pString = pControl->GetValue() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxChoice)) ) - { - wxChoice* pControl = (wxChoice*) m_validatorWindow; - if (m_pInt) - { - *m_pInt = pControl->GetSelection() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxStaticText)) ) - { - wxStaticText* pControl = (wxStaticText*) m_validatorWindow; - if (m_pString) - { - *m_pString = pControl->GetLabel() ; - return TRUE; - } - } - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) ) - { - wxTextCtrl* pControl = (wxTextCtrl*) m_validatorWindow; - if (m_pString) - { - *m_pString = pControl->GetValue() ; - return TRUE; - } - } -#ifndef __WIN16__ - // array controls - // NOTE: wxCheckListBox isa wxListBox, so wxCheckListBox - // MUST come first: - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxCheckListBox)) ) - { - wxCheckListBox* pControl = (wxCheckListBox*) m_validatorWindow; - if (m_pArrayInt) - { - // clear our array - m_pArrayInt->Clear(); - // add each selected item to our array - int i; - for (i = 0 ; i < pControl->Number(); ++i) - if (pControl->IsChecked(i)) - m_pArrayInt->Add(i); - return TRUE; - } - else - return FALSE; - } -#endif - else if (m_validatorWindow->IsKindOf(CLASSINFO(wxListBox)) ) - { - wxListBox* pControl = (wxListBox*) m_validatorWindow; - if (m_pArrayInt) - { - // clear our array - m_pArrayInt->Clear(); - // add each selected item to our array - int i; - for (i = 0 ; i < pControl->Number(); ++i) - if (pControl->Selected(i)) - m_pArrayInt->Add(i); - return TRUE; - } - } - - // unrecognized control, or bad pointer - return FALSE; -} - -/* - Called by constructors to initialize ALL data members -*/ -void wxGenericValidator::Initialize() -{ - m_pBool = 0; - m_pInt = 0; - m_pString = 0; - m_pArrayInt = 0; -} - diff --git a/src/common/validate.cpp b/src/common/validate.cpp deleted file mode 100644 index 6932875a5c..0000000000 --- a/src/common/validate.cpp +++ /dev/null @@ -1,48 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: validate.cpp -// Purpose: wxValidator -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "validate.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include "wx/validate.h" - -const wxValidator wxDefaultValidator; - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxValidator, wxEvtHandler) -#endif - -// VZ: personally, I think TRUE would be more appropriate - these bells are -// _annoying_ -bool wxValidator::ms_isSilent = FALSE; - -wxValidator::wxValidator() -{ - m_validatorWindow = (wxWindow *) NULL; -} - -wxValidator::~wxValidator() -{ -} - - diff --git a/src/common/valtext.cpp b/src/common/valtext.cpp deleted file mode 100644 index bb83543bb1..0000000000 --- a/src/common/valtext.cpp +++ /dev/null @@ -1,308 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: valtext.cpp -// Purpose: wxTextValidator -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "valtext.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include - #include "wx/textctrl.h" - #include "wx/utils.h" - #include "wx/msgdlg.h" - #include "wx/intl.h" -#endif - -#include "wx/valtext.h" - -#include -#include -#include - -#ifdef __SALFORDC__ - #include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTextValidator, wxValidator) - -BEGIN_EVENT_TABLE(wxTextValidator, wxValidator) - EVT_CHAR(wxTextValidator::OnChar) -END_EVENT_TABLE() -#endif - -static bool wxIsNumeric(const wxString& val); - -wxTextValidator::wxTextValidator(long style, wxString *val) -{ - m_validatorStyle = style ; - m_stringValue = val ; -/* - m_refData = new wxVTextRefData; - - M_VTEXTDATA->m_validatorStyle = style ; - M_VTEXTDATA->m_stringValue = val ; -*/ -} - -wxTextValidator::wxTextValidator(const wxTextValidator& val) -{ - Copy(val); -} - -bool wxTextValidator::Copy(const wxTextValidator& val) -{ - wxValidator::Copy(val); - - m_validatorStyle = val.m_validatorStyle ; - m_stringValue = val.m_stringValue ; - - wxNode *node = val.m_includeList.First() ; - while ( node ) - { - wxChar *s = (wxChar *)node->Data(); - m_includeList.Add(s); - node = node->Next(); - } - node = val.m_excludeList.First() ; - while ( node ) - { - wxChar *s = (wxChar *)node->Data(); - m_excludeList.Add(s); - node = node->Next(); - } - return TRUE; -} - -wxTextValidator::~wxTextValidator() -{ -} - -static bool wxIsAlpha(const wxString& val) -{ - int i; - for ( i = 0; i < (int)val.Length(); i++) - { - if (!isalpha(val[i])) - return FALSE; - } - return TRUE; -} - -static bool wxIsAlphaNumeric(const wxString& val) -{ - int i; - for ( i = 0; i < (int)val.Length(); i++) - { - if (!isalnum(val[i])) - return FALSE; - } - return TRUE; -} - -// Called when the value in the window must be validated. -// This function can pop up an error message. -bool wxTextValidator::Validate(wxWindow *parent) -{ - if ( !m_validatorWindow ) - return FALSE; - if ( !m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) ) - return FALSE; - if ( !m_stringValue ) - return FALSE; - - wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow ; - - // If window is disabled, simply return - if ( !control->IsEnabled() ) - return TRUE; - - wxString val(control->GetValue()); - - bool ok = TRUE; - - // this format string should contian exactly one '%s' - const wxChar *errormsg = _("'%s' is invalid"); - - if ( m_validatorStyle & wxFILTER_INCLUDE_LIST ) - { - if ( !m_includeList.Member(val) ) - { - ok = FALSE; - } - } - else if ( m_validatorStyle & wxFILTER_EXCLUDE_LIST ) - { - if ( m_excludeList.Member(val) ) - { - ok = FALSE; - } - } - else if ( (m_validatorStyle & wxFILTER_ASCII) && !val.IsAscii() ) - { - ok = FALSE; - - errormsg = _("'%s' should only contain ASCII characters."); - } - else if ( (m_validatorStyle & wxFILTER_ALPHA) && !wxIsAlpha(val) ) - { - ok = FALSE; - - errormsg = _("'%s' should only contain alphabetic characters."); - } - else if ( (m_validatorStyle & wxFILTER_ALPHANUMERIC) && !wxIsAlphaNumeric(val)) - { - ok = FALSE; - - errormsg = _("'%s' should only contain alphabetic or numeric characters."); - } - else if ( (m_validatorStyle & wxFILTER_NUMERIC) && !wxIsNumeric(val)) - { - ok = FALSE; - - errormsg = _("'%s' should be numeric."); - } - - if ( !ok ) - { - m_validatorWindow->SetFocus(); - - wxString buf; - buf.Printf(errormsg, val.c_str()); - - wxMessageBox(buf, _("Validation conflict"), - wxOK | wxICON_EXCLAMATION, parent); - } - - return ok; -} - -// Called to transfer data to the window -bool wxTextValidator::TransferToWindow(void) -{ - if ( !m_validatorWindow ) - return FALSE; - if ( !m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) ) - return FALSE; - if ( !m_stringValue ) - return FALSE; - - wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow ; - control->SetValue(* m_stringValue) ; - - return TRUE; -} - -// Called to transfer data to the window -bool wxTextValidator::TransferFromWindow(void) -{ - if ( !m_validatorWindow ) - return FALSE; - if ( !m_validatorWindow->IsKindOf(CLASSINFO(wxTextCtrl)) ) - return FALSE; - if ( !m_stringValue ) - return FALSE; - - wxTextCtrl *control = (wxTextCtrl *) m_validatorWindow ; - * m_stringValue = control->GetValue() ; - - return TRUE; -} - -void wxTextValidator::SetIncludeList(const wxStringList& list) -{ -/* - if ( !M_VTEXTDATA ) - return; -*/ - - m_includeList.Clear(); - // TODO: replace with = - wxNode *node = list.First() ; - while ( node ) - { - wxChar *s = (wxChar *)node->Data(); - m_includeList.Add(s); - node = node->Next(); - } -} - -void wxTextValidator::SetExcludeList(const wxStringList& list) -{ -/* - if ( !M_VTEXTDATA ) - return; -*/ - - m_excludeList.Clear(); - // TODO: replace with = - wxNode *node = list.First() ; - while ( node ) - { - wxChar *s = (wxChar *)node->Data(); - m_excludeList.Add(s); - node = node->Next(); - } -} - -void wxTextValidator::OnChar(wxKeyEvent& event) -{ -/* - if ( !M_VTEXTDATA ) - return; -*/ - - if ( m_validatorWindow ) - { - int keyCode = event.KeyCode(); - - // we don't filter special keys and Delete - if ( - !(keyCode < WXK_SPACE || keyCode == WXK_DELETE || keyCode > WXK_START) && - ( - ((m_validatorStyle & wxFILTER_ASCII) && !isascii(keyCode)) || - ((m_validatorStyle & wxFILTER_ALPHA) && !isalpha(keyCode)) || - ((m_validatorStyle & wxFILTER_ALPHANUMERIC) && !isalnum(keyCode)) || - ((m_validatorStyle & wxFILTER_NUMERIC) && !isdigit(keyCode) - && keyCode != '.' && keyCode != '-') - ) - ) - { - if ( !wxValidator::IsSilent() ) - wxBell(); - - // eat message - return; - } - } - - event.Skip(); -} - -static bool wxIsNumeric(const wxString& val) -{ - int i; - for ( i = 0; i < (int)val.Length(); i++) - { - if ((!isdigit(val[i])) && (val[i] != '.')) - if(!((i == 0) && (val[i] == '-'))) - return FALSE; - } - return TRUE; -} - diff --git a/src/common/variant.cpp b/src/common/variant.cpp deleted file mode 100644 index bea0193b8e..0000000000 --- a/src/common/variant.cpp +++ /dev/null @@ -1,1795 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: variant.cpp -// Purpose: wxVariant class, container for any type -// Author: Julian Smart -// Modified by: -// Created: 10/09/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "variant.h" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_IOSTREAMH -# include -#else -# include -#endif - -#include "wx/stream.h" -#include "wx/string.h" -#include "wx/variant.h" - -IMPLEMENT_ABSTRACT_CLASS(wxVariantData, wxObject) - -wxVariant WXDLLEXPORT wxNullVariant; - -/* - * wxVariantDataList - */ - -class WXDLLEXPORT wxVariantDataList: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataList) -public: - wxVariantDataList() {} - wxVariantDataList(const wxList& list); - ~wxVariantDataList(); - - wxList& GetValue() const { return (wxList&) m_value; } - void SetValue(const wxList& value) ; - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); - virtual bool Read(wxString& str); - virtual wxString GetType() const { return _T("list"); }; - - void Clear(); - -protected: - wxList m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataList, wxVariantData) - -wxVariantDataList::wxVariantDataList(const wxList& list) -{ - SetValue(list); -} - -wxVariantDataList::~wxVariantDataList() -{ - Clear(); -} - -void wxVariantDataList::SetValue(const wxList& value) -{ - Clear(); - wxNode* node = value.First(); - while (node) - { - wxVariant* var = (wxVariant*) node->Data(); - m_value.Append(new wxVariant(*var)); - node = node->Next(); - } -} - -void wxVariantDataList::Clear() -{ - wxNode* node = m_value.First(); - while (node) - { - wxVariant* var = (wxVariant*) node->Data(); - delete var; - node = node->Next(); - } - m_value.Clear(); -} - -void wxVariantDataList::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("list")), _T("wxVariantDataList::Copy: Can't copy to this type of data") ); - - wxVariantDataList& listData = (wxVariantDataList&) data; - - listData.Clear(); - wxNode* node = m_value.First(); - while (node) - { - wxVariant* var = (wxVariant*) node->Data(); - listData.m_value.Append(new wxVariant(*var)); - node = node->Next(); - } -} - -bool wxVariantDataList::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("list")), _T("wxVariantDataList::Eq: argument mismatch") ); - - wxVariantDataList& listData = (wxVariantDataList&) data; - wxNode* node1 = m_value.First(); - wxNode* node2 = listData.GetValue().First(); - while (node1 && node2) - { - wxVariant* var1 = (wxVariant*) node1->Data(); - wxVariant* var2 = (wxVariant*) node2->Data(); - if ((*var1) != (*var2)) - return FALSE; - node1 = node1->Next(); - node2 = node2->Next(); - } - if (node1 || node2) return FALSE; - return TRUE; -} - -bool wxVariantDataList::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataList::Write(wxString& str) const -{ - str = _T(""); - wxNode* node = m_value.First(); - while (node) - { - wxVariant* var = (wxVariant*) node->Data(); - if (node != m_value.First()) - str += _T(" "); - wxString str1; - str += var->MakeString(); - node = node->Next(); - } - - return TRUE; -} - -bool wxVariantDataList::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); - // TODO - return FALSE; -} - -bool wxVariantDataList::Read(wxString& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); - // TODO - return FALSE; -} - -/* - * wxVariantDataStringList - */ - -class WXDLLEXPORT wxVariantDataStringList: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataStringList) -public: - wxVariantDataStringList() {} - wxVariantDataStringList(const wxStringList& list) { m_value = list; } - - wxStringList& GetValue() const { return (wxStringList&) m_value; } - void SetValue(const wxStringList& value); - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); - virtual bool Read(wxString& str); - virtual wxString GetType() const { return _T("stringlist"); }; - -protected: - wxStringList m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataStringList, wxVariantData) - -void wxVariantDataStringList::SetValue(const wxStringList& value) -{ - m_value = value; -} - -void wxVariantDataStringList::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("stringlist")), _T("wxVariantDataStringList::Copy: Can't copy to this type of data") ); - - wxVariantDataStringList& listData = (wxVariantDataStringList&) data; - - listData.m_value = m_value ; -} - -bool wxVariantDataStringList::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("stringlist")), _T("wxVariantDataStringList::Eq: argument mismatch") ); - - wxVariantDataStringList& listData = (wxVariantDataStringList&) data; - wxNode* node1 = m_value.First(); - wxNode* node2 = listData.GetValue().First(); - while (node1 && node2) - { - wxString str1 ((wxChar*) node1->Data()); - wxString str2 ((wxChar*) node2->Data()); - if (str1 != str2) - return FALSE; - node1 = node1->Next(); - node2 = node2->Next(); - } - if (node1 || node2) return FALSE; - return TRUE; -} - -bool wxVariantDataStringList::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataStringList::Write(wxString& str) const -{ - str = _T(""); - wxNode* node = m_value.First(); - while (node) - { - wxChar* s = (wxChar*) node->Data(); - if (node != m_value.First()) - str += _T(" "); - str += s; - node = node->Next(); - } - - return TRUE; -} - -bool wxVariantDataStringList::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); - // TODO - return FALSE; -} - -bool wxVariantDataStringList::Read(wxString& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); - // TODO - return FALSE; -} - -/* - * wxVariantDataLong - */ - -class WXDLLEXPORT wxVariantDataLong: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataLong) -public: - wxVariantDataLong() { m_value = 0; } - wxVariantDataLong(long value) { m_value = value; } - - inline long GetValue() const { return m_value; } - inline void SetValue(long value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - - virtual bool Read(wxString& str); - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); - virtual bool Write(ostream& str) const; - -#if wxUSE_STREAMS - virtual bool Read(wxInputStream& str); - virtual bool Write(wxOutputStream &str) const; -#endif // wxUSE_STREAMS - - virtual wxString GetType() const { return _T("long"); }; - -protected: - long m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataLong, wxVariantData) - -void wxVariantDataLong::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("long")), _T("wxVariantDataLong::Copy: Can't copy to this type of data") ); - - wxVariantDataLong& otherData = (wxVariantDataLong&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataLong::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("long")), _T("wxVariantDataLong::Eq: argument mismatch") ); - - wxVariantDataLong& otherData = (wxVariantDataLong&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataLong::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataLong::Write(wxString& str) const -{ - str.Printf(_T("%ld"), m_value); - return TRUE; -} - -bool wxVariantDataLong::Read(istream& str) -{ - str >> m_value; - return TRUE; -} - -#if wxUSE_STREAMS -bool wxVariantDataLong::Write(wxOutputStream& str) const -{ - str << m_value; - return TRUE; -} - -bool wxVariantDataLong::Read(wxInputStream& str) -{ - str >> m_value; - return TRUE; -} -#endif // wxUSE_STREAMS - -bool wxVariantDataLong::Read(wxString& str) -{ - m_value = wxAtol((const wxChar*) str); - return TRUE; -} - -/* - * wxVariantDataReal - */ - -class WXDLLEXPORT wxVariantDataReal: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataReal) -public: - wxVariantDataReal() { m_value = 0.0; } - wxVariantDataReal(double value) { m_value = value; } - - inline double GetValue() const { return m_value; } - inline void SetValue(double value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Read(wxString& str); - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); -#if wxUSE_STREAMS - virtual bool Read(wxInputStream& str); - virtual bool Write(wxOutputStream &str) const; -#endif // wxUSE_STREAMS - virtual wxString GetType() const { return _T("double"); }; - -protected: - double m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataReal, wxVariantData) - -void wxVariantDataReal::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("double")), _T("wxVariantDataReal::Copy: Can't copy to this type of data") ); - - wxVariantDataReal& otherData = (wxVariantDataReal&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataReal::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("double")), _T("wxVariantDataReal::Eq: argument mismatch") ); - - wxVariantDataReal& otherData = (wxVariantDataReal&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataReal::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataReal::Write(wxString& str) const -{ - str.Printf(_T("%.4f"), m_value); - return TRUE; -} - -bool wxVariantDataReal::Read(istream& str) -{ - str >> m_value; - return TRUE; -} - -#if wxUSE_STREAMS -bool wxVariantDataReal::Write(wxOutputStream& str) const -{ - str << m_value; - return TRUE; -} - -bool wxVariantDataReal::Read(wxInputStream& str) -{ - str >> (float&)m_value; - return TRUE; -} -#endif // wxUSE_STREAMS - -bool wxVariantDataReal::Read(wxString& str) -{ - m_value = wxAtof((const wxChar*) str); - return TRUE; -} - -#ifdef HAVE_BOOL -/* - * wxVariantDataBool - */ - -class WXDLLEXPORT wxVariantDataBool: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataBool) -public: - wxVariantDataBool() { m_value = 0; } - wxVariantDataBool(bool value) { m_value = value; } - - inline bool GetValue() const { return m_value; } - inline void SetValue(bool value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(wxString& str); - virtual bool Read(istream& str); -#if wxUSE_STREAMS - virtual bool Read(wxInputStream& str); - virtual bool Write(wxOutputStream& str) const; -#endif // wxUSE_STREAMS - virtual wxString GetType() const { return _T("bool"); }; - -protected: - bool m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataBool, wxVariantData) - -void wxVariantDataBool::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("bool")), _T("wxVariantDataBool::Copy: Can't copy to this type of data") ); - - wxVariantDataBool& otherData = (wxVariantDataBool&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataBool::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("bool")), _T("wxVariantDataBool::Eq: argument mismatch") ); - - wxVariantDataBool& otherData = (wxVariantDataBool&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataBool::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataBool::Write(wxString& str) const -{ - str.Printf(_T("%d"), (int) m_value); - return TRUE; -} - -bool wxVariantDataBool::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); -// str >> (long) m_value; - return FALSE; -} - -#if wxUSE_STREAMS -bool wxVariantDataBool::Write(wxOutputStream& str) const -{ - str << (char)m_value; - return TRUE; -} - -bool wxVariantDataBool::Read(wxInputStream& str) -{ - str >> (char&)m_value; - return TRUE; -} -#endif // wxUSE_STREAMS - -bool wxVariantDataBool::Read(wxString& str) -{ - m_value = (wxAtol((const wxChar*) str) != 0); - return TRUE; -} -#endif // HAVE_BOOL - -/* - * wxVariantDataChar - */ - -class WXDLLEXPORT wxVariantDataChar: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataChar) -public: - wxVariantDataChar() { m_value = 0; } - wxVariantDataChar(char value) { m_value = value; } - - inline char GetValue() const { return m_value; } - inline void SetValue(char value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Read(istream& str); - virtual bool Write(ostream& str) const; - virtual bool Read(wxString& str); - virtual bool Write(wxString& str) const; -#if wxUSE_STREAMS - virtual bool Read(wxInputStream& str); - virtual bool Write(wxOutputStream& str) const; -#endif // wxUSE_STREAMS - virtual wxString GetType() const { return _T("char"); }; - -protected: - char m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataChar, wxVariantData) - -void wxVariantDataChar::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("char")), _T("wxVariantDataChar::Copy: Can't copy to this type of data") ); - - wxVariantDataChar& otherData = (wxVariantDataChar&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataChar::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("char")), _T("wxVariantDataChar::Eq: argument mismatch") ); - - wxVariantDataChar& otherData = (wxVariantDataChar&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataChar::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataChar::Write(wxString& str) const -{ - str.Printf(_T("%c"), m_value); - return TRUE; -} - -bool wxVariantDataChar::Read(istream& WXUNUSED(str)) -{ - wxFAIL_MSG(_T("Unimplemented")); -// str >> m_value; - return FALSE; -} - -#if wxUSE_STREAMS -bool wxVariantDataChar::Write(wxOutputStream& str) const -{ - str << m_value; - return TRUE; -} - -bool wxVariantDataChar::Read(wxInputStream& str) -{ - str >> m_value; - return TRUE; -} -#endif // wxUSE_STREAMS - -bool wxVariantDataChar::Read(wxString& str) -{ - m_value = str[(size_t)0]; - return TRUE; -} - -/* - * wxVariantDataString - */ - -#if defined(__BORLANDC__) && defined(__WIN16__) -// Change name because of truncation -#define wxVariantDataString wxVariantStringData -#endif - -class WXDLLEXPORT wxVariantDataString: public wxVariantData -{ -#if defined(__BORLANDC__) && defined(__WIN16__) -DECLARE_DYNAMIC_CLASS(wxVariantStringData) -#else -DECLARE_DYNAMIC_CLASS(wxVariantDataString) -#endif -public: - wxVariantDataString() { } - wxVariantDataString(const wxString& value) { m_value = value; } - - inline wxString GetValue() const { return m_value; } - inline void SetValue(const wxString& value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Read(wxString& str); - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); -#if wxUSE_STREAMS - virtual bool Read(wxInputStream& str); - virtual bool Write(wxOutputStream& str) const; -#endif // wxUSE_STREAMS - virtual wxString GetType() const { return _T("string"); }; - -protected: - wxString m_value; -}; - -void wxVariantDataString::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("string")), _T("wxVariantDataString::Copy: Can't copy to this type of data") ); - - wxVariantDataString& otherData = (wxVariantDataString&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataString::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("string")), _T("wxVariantDataString::Eq: argument mismatch") ); - - wxVariantDataString& otherData = (wxVariantDataString&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataString::Write(ostream& str) const -{ - str << (const char*) m_value.mb_str(); - return TRUE; -} - -bool wxVariantDataString::Write(wxString& str) const -{ - str = m_value; - return TRUE; -} - -bool wxVariantDataString::Read(istream& str) -{ - str >> m_value; - return TRUE; -} - -#if wxUSE_STREAMS -bool wxVariantDataString::Write(wxOutputStream& str) const -{ - // why doesn't wxOutputStream::operator<< take "const wxString&" - str << (const char*) m_value.mb_str(); - return TRUE; -} - -bool wxVariantDataString::Read(wxInputStream& str) -{ - str >> m_value; - return TRUE; -} -#endif // wxUSE_STREAMS - -bool wxVariantDataString::Read(wxString& str) -{ - m_value = str; - return TRUE; -} - -#if defined(__BORLANDC__) && defined(__WIN16__) -IMPLEMENT_DYNAMIC_CLASS(wxVariantStringData, wxVariantData) -#else -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataString, wxVariantData) -#endif - -/* - * wxVariantDataTime - */ - -#if wxUSE_TIMEDATE - -class wxVariantDataTime: public wxVariantData -{ - DECLARE_DYNAMIC_CLASS(wxVariantDataTime) -public: - wxVariantDataTime() { } - wxVariantDataTime(const wxTime& value) { m_value = value; } - - inline wxTime GetValue() const { return m_value; } - inline void SetValue(const wxTime& value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); - virtual bool Read(wxString& str); - virtual wxString GetType() const { return _T("time"); }; - virtual wxVariantData* Clone() { return new wxVariantDataTime; } - -protected: - wxTime m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataTime, wxVariantData) - -void wxVariantDataTime::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("time")), _T("wxVariantDataTime::Copy: Can't copy to this type of data") ); - - wxVariantDataTime& otherData = (wxVariantDataTime&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataTime::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("time")), _T("wxVariantDataTime::Eq: argument mismatch") ); - - wxVariantDataTime& otherData = (wxVariantDataTime&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataTime::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataTime::Write(wxString& str) const -{ - wxChar*s = m_value.FormatTime(); - str = s; - return TRUE; -} - -bool wxVariantDataTime::Read(istream& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} - -bool wxVariantDataTime::Read(wxString& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} - -/* - * wxVariantDataDate - */ - -class wxVariantDataDate: public wxVariantData -{ - DECLARE_DYNAMIC_CLASS(wxVariantDataDate) -public: - wxVariantDataDate() { } - wxVariantDataDate(const wxDate& value) { m_value = value; } - - inline wxDate GetValue() const { return m_value; } - inline void SetValue(const wxDate& value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); - virtual bool Read(wxString& str); - virtual wxString GetType() const { return _T("date"); }; - virtual wxVariantData* Clone() { return new wxVariantDataDate; } - -protected: - wxDate m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataDate, wxVariantData) - -void wxVariantDataDate::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("date")), _T("wxVariantDataDate::Copy: Can't copy to this type of data") ); - - wxVariantDataDate& otherData = (wxVariantDataDate&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataDate::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("date")), _T("wxVariantDataDate::Eq: argument mismatch") ); - - wxVariantDataDate& otherData = (wxVariantDataDate&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataDate::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataDate::Write(wxString& str) const -{ - str = m_value.FormatDate(); - return TRUE; -} - -bool wxVariantDataDate::Read(istream& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} - -bool wxVariantDataDate::Read(wxString& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} -#endif - // wxUSE_TIMEDATE - -/* - * wxVariantDataVoidPtr - */ - -class wxVariantDataVoidPtr: public wxVariantData -{ -DECLARE_DYNAMIC_CLASS(wxVariantDataVoidPtr) -public: - wxVariantDataVoidPtr() { } - wxVariantDataVoidPtr(void* value) { m_value = value; } - - inline void* GetValue() const { return m_value; } - inline void SetValue(void* value) { m_value = value; } - - virtual void Copy(wxVariantData& data); - virtual bool Eq(wxVariantData& data) const; - virtual bool Write(ostream& str) const; - virtual bool Write(wxString& str) const; - virtual bool Read(istream& str); - virtual bool Read(wxString& str); - virtual wxString GetType() const { return _T("void*"); }; - virtual wxVariantData* Clone() { return new wxVariantDataVoidPtr; } - -protected: - void* m_value; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxVariantDataVoidPtr, wxVariantData) - -void wxVariantDataVoidPtr::Copy(wxVariantData& data) -{ - wxASSERT_MSG( (data.GetType() == _T("void*")), _T("wxVariantDataVoidPtr::Copy: Can't copy to this type of data") ); - - wxVariantDataVoidPtr& otherData = (wxVariantDataVoidPtr&) data; - - otherData.m_value = m_value; -} - -bool wxVariantDataVoidPtr::Eq(wxVariantData& data) const -{ - wxASSERT_MSG( (data.GetType() == _T("void*")), _T("wxVariantDataVoidPtr::Eq: argument mismatch") ); - - wxVariantDataVoidPtr& otherData = (wxVariantDataVoidPtr&) data; - - return (otherData.m_value == m_value); -} - -bool wxVariantDataVoidPtr::Write(ostream& str) const -{ - wxString s; - Write(s); - str << (const char*) s.mb_str(); - return TRUE; -} - -bool wxVariantDataVoidPtr::Write(wxString& str) const -{ - str.Printf(_T("%ld"), (long) m_value); - return TRUE; -} - -bool wxVariantDataVoidPtr::Read(istream& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} - -bool wxVariantDataVoidPtr::Read(wxString& WXUNUSED(str)) -{ - // Not implemented - return FALSE; -} - - -/* - * wxVariant - */ - -IMPLEMENT_DYNAMIC_CLASS(wxVariant, wxObject) - -// Construction & destruction -wxVariant::wxVariant() -{ - m_data = (wxVariantData*) NULL; -} - -wxVariant::wxVariant(double val, const wxString& name) -{ - m_data = new wxVariantDataReal(val); - m_name = name; -} - -wxVariant::wxVariant(long val, const wxString& name) -{ - m_data = new wxVariantDataLong(val); - m_name = name; -} - -#ifdef HAVE_BOOL -wxVariant::wxVariant(bool val, const wxString& name) -{ - m_data = new wxVariantDataBool(val); - m_name = name; -} -#endif - -wxVariant::wxVariant(char val, const wxString& name) -{ - m_data = new wxVariantDataChar(val); - m_name = name; -} - -wxVariant::wxVariant(const wxString& val, const wxString& name) -{ - m_data = new wxVariantDataString(val); - m_name = name; -} - -wxVariant::wxVariant(const wxChar* val, const wxString& name) -{ - m_data = new wxVariantDataString(wxString(val)); - m_name = name; -} - -wxVariant::wxVariant(const wxStringList& val, const wxString& name) -{ - m_data = new wxVariantDataStringList(val); - m_name = name; -} - -wxVariant::wxVariant(const wxList& val, const wxString& name) // List of variants -{ - m_data = new wxVariantDataList(val); - m_name = name; -} - -#if wxUSE_TIMEDATE -wxVariant::wxVariant(const wxTime& val, const wxString& name) // Time -{ - m_data = new wxVariantDataTime(val); - m_name = name; -} - -wxVariant::wxVariant(const wxDate& val, const wxString& name) // Date -{ - m_data = new wxVariantDataDate(val); - m_name = name; -} -#endif - -wxVariant::wxVariant(void* val, const wxString& name) // Void ptr -{ - m_data = new wxVariantDataVoidPtr(val); - m_name = name; -} - -wxVariant::wxVariant(const wxVariant& variant) -{ - if (!variant.IsNull()) - { - m_data = (wxVariantData*) variant.GetData()->GetClassInfo()->CreateObject(); - variant.m_data->Copy(*m_data); - } - else - m_data = (wxVariantData*) NULL; - m_name = variant.m_name; -} - -wxVariant::wxVariant(wxVariantData* data, const wxString& name) // User-defined data -{ - m_data = data; - m_name = name; -} - -wxVariant::~wxVariant() -{ - delete m_data; -} - - -// Make NULL (i.e. delete the data) -void wxVariant::MakeNull() -{ - delete m_data; - m_data = NULL; -} - -// Generic operators -// Assignment -void wxVariant::operator= (const wxVariant& variant) -{ - if (variant.IsNull()) - { - MakeNull(); - return; - } - - if (IsNull() || (GetType() != variant.GetType())) - { - if (m_data) - delete m_data; - m_data = (wxVariantData*) variant.GetData()->GetClassInfo()->CreateObject(); - } -// GetData()->Copy(* variant.GetData()); - variant.GetData()->Copy(* GetData()); -} - -// Assignment using data, e.g. -// myVariant = new wxStringVariantData("hello") -void wxVariant::operator= (wxVariantData* variantData) -{ - MakeNull(); - m_data = variantData; -} - -bool wxVariant::operator== (const wxVariant& variant) const -{ - if (IsNull() || variant.IsNull()) - return (IsNull() == variant.IsNull()); - - return (GetData()->Eq(* variant.GetData())); -} - -bool wxVariant::operator!= (const wxVariant& variant) const -{ - return (!(*this == variant)); -} - - -// Specific operators -bool wxVariant::operator== (double value) const -{ - double thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (double value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (double value) -{ - if (GetType() == _T("double")) - { - ((wxVariantDataReal*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataReal(value); - } -} - -bool wxVariant::operator== (long value) const -{ - long thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (long value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (long value) -{ - if (GetType() == _T("long")) - { - ((wxVariantDataLong*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataLong(value); - } -} - -bool wxVariant::operator== (char value) const -{ - char thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (char value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (char value) -{ - if (GetType() == _T("char")) - { - ((wxVariantDataChar*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataChar(value); - } -} - -#ifdef HAVE_BOOL -bool wxVariant::operator== (bool value) const -{ - bool thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (bool value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (bool value) -{ - if (GetType() == _T("bool")) - { - ((wxVariantDataBool*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataBool(value); - } -} -#endif // HAVE_BOOL - -bool wxVariant::operator== (const wxString& value) const -{ - wxString thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (const wxString& value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (const wxString& value) -{ - if (GetType() == _T("string")) - { - ((wxVariantDataString*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataString(value); - } -} - -void wxVariant::operator= (const wxChar* value) -{ - if (GetType() == _T("string")) - { - ((wxVariantDataString*)GetData())->SetValue(wxString(value)); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataString(wxString(value)); - } -} - -bool wxVariant::operator== (const wxStringList& value) const -{ - wxASSERT_MSG( (GetType() == _T("stringlist")), _T("Invalid type for == operator") ); - - wxVariantDataStringList other(value); - return (m_data->Eq(other)); -} - -bool wxVariant::operator!= (const wxStringList& value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (const wxStringList& value) -{ - if (GetType() == _T("stringlist")) - { - ((wxVariantDataStringList*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataStringList(value); - } -} - -bool wxVariant::operator== (const wxList& value) const -{ - wxASSERT_MSG( (GetType() == _T("list")), _T("Invalid type for == operator") ); - - wxVariantDataList other(value); - return (m_data->Eq(other)); -} - -bool wxVariant::operator!= (const wxList& value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (const wxList& value) -{ - if (GetType() == _T("list")) - { - ((wxVariantDataList*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataList(value); - } -} - -#if wxUSE_TIMEDATE -bool wxVariant::operator== (const wxTime& value) const -{ - wxTime thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (const wxTime& value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (const wxTime& value) -{ - if (GetType() == _T("time")) - { - ((wxVariantDataTime*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataTime(value); - } -} - -bool wxVariant::operator== (const wxDate& value) const -{ - wxDate thisValue; - if (!Convert(&thisValue)) - return FALSE; - else - return (value == thisValue); -} - -bool wxVariant::operator!= (const wxDate& value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (const wxDate& value) -{ - if (GetType() == _T("date")) - { - ((wxVariantDataTime*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataDate(value); - } -} -#endif - -bool wxVariant::operator== (void* value) const -{ - return (value == ((wxVariantDataVoidPtr*)GetData())->GetValue()); -} - -bool wxVariant::operator!= (void* value) const -{ - return (!((*this) == value)); -} - -void wxVariant::operator= (void* value) -{ - if (GetType() == _T("void*")) - { - ((wxVariantDataVoidPtr*)GetData())->SetValue(value); - } - else - { - if (m_data) - delete m_data; - m_data = new wxVariantDataVoidPtr(value); - } -} - -// Treat a list variant as an array -wxVariant wxVariant::operator[] (size_t idx) const -{ - wxASSERT_MSG( (GetType() == _T("list") || GetType() == _T("stringlist")), _T("Invalid type for array operator") ); - - if (GetType() == _T("list")) - { - wxVariantDataList* data = (wxVariantDataList*) m_data; - wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), _T("Invalid index for array") ); - return * (wxVariant*) (data->GetValue().Nth(idx)->Data()); - } - else if (GetType() == _T("stringlist")) - { - wxVariantDataStringList* data = (wxVariantDataStringList*) m_data; - wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), _T("Invalid index for array") ); - - wxVariant variant( wxString( (wxChar*) (data->GetValue().Nth(idx)->Data()) )); - return variant; - } - return wxNullVariant; -} - -wxVariant& wxVariant::operator[] (size_t idx) -{ - // We can't return a reference to a variant for a string list, since the string - // is actually stored as a char*, not a variant. - - wxASSERT_MSG( (GetType() == _T("list")), _T("Invalid type for array operator") ); - - wxVariantDataList* data = (wxVariantDataList*) m_data; - wxASSERT_MSG( (idx < (size_t) data->GetValue().Number()), _T("Invalid index for array") ); - - return * (wxVariant*) (data->GetValue().Nth(idx)->Data()); -} - -// Return the number of elements in a list -int wxVariant::GetCount() const -{ - wxASSERT_MSG( (GetType() == _T("list") || GetType() == _T("stringlist")), _T("Invalid type for GetCount()") ); - - if (GetType() == _T("list")) - { - wxVariantDataList* data = (wxVariantDataList*) m_data; - return data->GetValue().Number(); - } - else if (GetType() == _T("stringlist")) - { - wxVariantDataStringList* data = (wxVariantDataStringList*) m_data; - return data->GetValue().Number(); - } - return 0; -} - -wxString wxVariant::MakeString() const -{ - if (!IsNull()) - { - wxString str; - if (GetData()->Write(str)) - return str; - } - return wxString(_T("")); -} - -// Accessors - -void wxVariant::SetData(wxVariantData* data) -{ - if (m_data) delete m_data; - m_data = data; -} - - -// Returns a string representing the type of the variant, -// e.g. "string", "bool", "stringlist", "list", "double", "long" -wxString wxVariant::GetType() const -{ - if (IsNull()) - return wxString(_T("null")); - else - return m_data->GetType(); -} - - -bool wxVariant::IsType(const wxString& type) const -{ - return (GetType() == type); -} - - -// Value accessors -double wxVariant::GetReal() const -{ - double value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to a real number")); - return 0.0; - } -} - -long wxVariant::GetInteger() const -{ - long value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to an integer")); - return 0; - } -} - -char wxVariant::GetChar() const -{ - char value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to a char")); - return 0; - } -} - -bool wxVariant::GetBool() const -{ - bool value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to a bool")); - return 0; - } -} - -wxString wxVariant::GetString() const -{ - wxString value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to a string")); - return wxString(""); - } -} - -#if wxUSE_TIMEDATE -wxTime wxVariant::GetTime() const -{ - wxTime value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to a time")); - return wxTime(); - } -} - -wxDate wxVariant::GetDate() const -{ - wxDate value; - if (Convert(& value)) - return value; - else - { - wxFAIL_MSG(_T("Could not convert to a date")); - return wxDate(); - } -} -#endif - -void* wxVariant::GetVoidPtr() const -{ - wxASSERT( (GetType() == _T("void*")) ); - - return (void*) ((wxVariantDataVoidPtr*) m_data)->GetValue(); -} - -wxList& wxVariant::GetList() const -{ - wxASSERT( (GetType() == _T("list")) ); - - return (wxList&) ((wxVariantDataList*) m_data)->GetValue(); -} - -wxStringList& wxVariant::GetStringList() const -{ - wxASSERT( (GetType() == _T("stringlist")) ); - - return (wxStringList&) ((wxVariantDataStringList*) m_data)->GetValue(); -} - -// Append to list -void wxVariant::Append(const wxVariant& value) -{ - wxList& list = GetList(); - - list.Append(new wxVariant(value)); -} - -// Insert at front of list -void wxVariant::Insert(const wxVariant& value) -{ - wxList& list = GetList(); - - list.Insert(new wxVariant(value)); -} - -// Returns TRUE if the variant is a member of the list -bool wxVariant::Member(const wxVariant& value) const -{ - wxList& list = GetList(); - - wxNode* node = list.First(); - while (node) - { - wxVariant* other = (wxVariant*) node->Data(); - if (value == *other) - return TRUE; - node = node->Next(); - } - return FALSE; -} - -// Deletes the nth element of the list -bool wxVariant::Delete(int item) -{ - wxList& list = GetList(); - - wxASSERT_MSG( (item < list.Number()), _T("Invalid index to Delete") ); - wxNode* node = list.Nth(item); - wxVariant* variant = (wxVariant*) node->Data(); - delete variant; - delete node; - return TRUE; -} - -// Clear list -void wxVariant::ClearList() -{ - if (!IsNull() && (GetType() == _T("list"))) - { - ((wxVariantDataList*) m_data)->Clear(); - } - else - { - if (GetType() != _T("list")) - { - delete m_data; - m_data = NULL; - } - m_data = new wxVariantDataList; - } -} - -// Type conversion -bool wxVariant::Convert(long* value) const -{ - wxString type(GetType()); - if (type == _T("double")) - *value = (long) (((wxVariantDataReal*)GetData())->GetValue()); - else if (type == _T("long")) - *value = ((wxVariantDataLong*)GetData())->GetValue(); -#ifdef HAVE_BOOL - else if (type == _T("bool")) - *value = (long) (((wxVariantDataBool*)GetData())->GetValue()); -#endif - else if (type == _T("string")) - *value = wxAtol((const wxChar*) ((wxVariantDataString*)GetData())->GetValue()); - else - return FALSE; - - return TRUE; -} - -bool wxVariant::Convert(bool* value) const -{ - wxString type(GetType()); - if (type == _T("double")) - *value = ((int) (((wxVariantDataReal*)GetData())->GetValue()) != 0); - else if (type == _T("long")) - *value = (((wxVariantDataLong*)GetData())->GetValue() != 0); -#ifdef HAVE_BOOL - else if (type == _T("bool")) - *value = ((wxVariantDataBool*)GetData())->GetValue(); -#endif - else if (type == _T("string")) - { - wxString val(((wxVariantDataString*)GetData())->GetValue()); - val.MakeLower(); - if (val == _T("true") || val == _T("yes")) - *value = TRUE; - else if (val == _T("false") || val == _T("no")) - *value = FALSE; - else - return FALSE; - } - else - return FALSE; - - return TRUE; -} - -bool wxVariant::Convert(double* value) const -{ - wxString type(GetType()); - if (type == _T("double")) - *value = ((wxVariantDataReal*)GetData())->GetValue(); - else if (type == _T("long")) - *value = (double) (((wxVariantDataLong*)GetData())->GetValue()); -#ifdef HAVE_BOOL - else if (type == _T("bool")) - *value = (double) (((wxVariantDataBool*)GetData())->GetValue()); -#endif - else if (type == _T("string")) - *value = (double) wxAtof((const wxChar*) ((wxVariantDataString*)GetData())->GetValue()); - else - return FALSE; - - return TRUE; -} - -bool wxVariant::Convert(char* value) const -{ - wxString type(GetType()); - if (type == _T("char")) - *value = ((wxVariantDataChar*)GetData())->GetValue(); - else if (type == _T("long")) - *value = (char) (((wxVariantDataLong*)GetData())->GetValue()); -#ifdef HAVE_BOOL - else if (type == _T("bool")) - *value = (char) (((wxVariantDataBool*)GetData())->GetValue()); -#endif - else - return FALSE; - - return TRUE; -} - -bool wxVariant::Convert(wxString* value) const -{ - *value = MakeString(); - return TRUE; -} - -#if wxUSE_TIMEDATE -bool wxVariant::Convert(wxTime* value) const -{ - wxString type(GetType()); - if (type == _T("time")) - *value = ((wxVariantDataTime*)GetData())->GetValue(); - else if (type == _T("date")) - *value = wxTime(((wxVariantDataDate*)GetData())->GetValue()); - else - return FALSE; - - return TRUE; -} - -bool wxVariant::Convert(wxDate* value) const -{ - wxString type(GetType()); - if (type == _T("date")) - *value = ((wxVariantDataDate*)GetData())->GetValue(); - else - return FALSE; - - return TRUE; -} -#endif - // wxUSE_TIMEDATE diff --git a/src/common/wfstream.cpp b/src/common/wfstream.cpp deleted file mode 100644 index 885bab4cf9..0000000000 --- a/src/common/wfstream.cpp +++ /dev/null @@ -1,165 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fstream.cpp -// Purpose: "File stream" classes -// Author: Julian Smart -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wfstream.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" -#include -#include -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -// ---------------------------------------------------------------------------- -// wxFileInputStream -// ---------------------------------------------------------------------------- - -wxFileInputStream::wxFileInputStream(const wxString& fileName) - : wxInputStream() -{ - m_file = new wxFile(fileName, wxFile::read); - m_file_destroy = TRUE; - m_i_streambuf->SetBufferIO(1024); -} - -wxFileInputStream::wxFileInputStream() - : wxInputStream() -{ - m_file_destroy = FALSE; - m_file = NULL; -} - -wxFileInputStream::wxFileInputStream(wxFile& file) -{ - m_file = &file; - m_file_destroy = FALSE; - m_i_streambuf->SetBufferIO(1024); -} - -wxFileInputStream::wxFileInputStream(int fd) -{ - m_file = new wxFile(fd); - m_file_destroy = TRUE; - m_i_streambuf->SetBufferIO(1024); -} - -wxFileInputStream::~wxFileInputStream() -{ - if (m_file_destroy) - delete m_file; -} - -char wxFileInputStream::Peek() -{ - return 0; -} - -size_t wxFileInputStream::StreamSize() const -{ - return m_file->Length(); -} - -size_t wxFileInputStream::OnSysRead(void *buffer, size_t size) -{ - return m_file->Read(buffer, size); -} - -off_t wxFileInputStream::OnSysSeek(off_t pos, wxSeekMode mode) -{ - return m_file->Seek(pos, mode); -} - -off_t wxFileInputStream::OnSysTell() const -{ - return m_file->Tell(); -} - -// ---------------------------------------------------------------------------- -// wxFileOutputStream -// ---------------------------------------------------------------------------- - -wxFileOutputStream::wxFileOutputStream(const wxString& fileName) -{ - m_file = new wxFile(fileName, wxFile::write); - m_file_destroy = TRUE; - m_o_streambuf->SetBufferIO(1024); -} - -wxFileOutputStream::wxFileOutputStream(wxFile& file) -{ - m_file = &file; - m_file_destroy = FALSE; - m_o_streambuf->SetBufferIO(1024); -} - -wxFileOutputStream::wxFileOutputStream() - : wxOutputStream() -{ - m_o_streambuf->SetBufferIO(1024); - m_file_destroy = FALSE; - m_file = NULL; -} - -wxFileOutputStream::wxFileOutputStream(int fd) -{ - m_file = new wxFile(fd); - m_file_destroy = TRUE; - m_o_streambuf->SetBufferIO(1024); -} - -wxFileOutputStream::~wxFileOutputStream() -{ - if (m_file_destroy) { - Sync(); - delete m_file; - } -} - -size_t wxFileOutputStream::OnSysWrite(const void *buffer, size_t size) -{ - size_t ret = m_file->Write(buffer, size); - m_lasterror = wxStream_EOF; // TODO - return ret; -} - -off_t wxFileOutputStream::OnSysTell() const -{ - return m_file->Tell(); -} - -off_t wxFileOutputStream::OnSysSeek(off_t pos, wxSeekMode mode) -{ - return m_file->Seek(pos, mode); -} - -void wxFileOutputStream::Sync() -{ - wxOutputStream::Sync(); - m_file->Flush(); -} - -size_t wxFileOutputStream::StreamSize() const -{ - return m_file->Length(); -} - -// ---------------------------------------------------------------------------- -// wxFileStream -// ---------------------------------------------------------------------------- -wxFileStream::wxFileStream(const wxString& fileName) - : wxFileInputStream(fileName), wxFileOutputStream(*wxFileInputStream::m_file) -{ -} diff --git a/src/common/wincmn.cpp b/src/common/wincmn.cpp deleted file mode 100644 index 582ea1e9bb..0000000000 --- a/src/common/wincmn.cpp +++ /dev/null @@ -1,1299 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: common/window.cpp -// Purpose: common (to all ports) wxWindow functions -// Author: Julian Smart, Vadim Zeitlin -// Modified by: -// Created: 13/07/98 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "windowbase.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/log.h" - #include "wx/intl.h" - #include "wx/frame.h" - #include "wx/defs.h" - #include "wx/window.h" - #include "wx/checkbox.h" - #include "wx/radiobut.h" - #include "wx/settings.h" - #include "wx/dialog.h" -#endif //WX_PRECOMP - -#if wxUSE_CONSTRAINTS - #include "wx/layout.h" -#endif // wxUSE_CONSTRAINTS - -#if wxUSE_DRAG_AND_DROP - #include "wx/dnd.h" -#endif // wxUSE_DRAG_AND_DROP - -#if wxUSE_TOOLTIPS - #include "wx/tooltip.h" -#endif // wxUSE_TOOLTIPS - -#if wxUSE_CARET - #include "wx/caret.h" -#endif // wxUSE_CARET - -// ---------------------------------------------------------------------------- -// static data -// ---------------------------------------------------------------------------- - -int wxWindowBase::ms_lastControlId = -200; - -IMPLEMENT_ABSTRACT_CLASS(wxWindowBase, wxEvtHandler) - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxWindowBase, wxEvtHandler) - EVT_SYS_COLOUR_CHANGED(wxWindowBase::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindowBase::OnInitDialog) -END_EVENT_TABLE() - -// ============================================================================ -// implementation of the common functionality of the wxWindow class -// ============================================================================ - -// ---------------------------------------------------------------------------- -// initialization -// ---------------------------------------------------------------------------- - -// the default initialization -void wxWindowBase::InitBase() -{ - // no window yet, no parent nor children - m_parent = (wxWindow *)NULL; - m_windowId = -1; - m_children.DeleteContents( FALSE ); // don't auto delete node data - - // no constraints on the minimal window size - m_minWidth = - m_minHeight = - m_maxWidth = - m_maxHeight = -1; - - // window is created enabled but it's not visible yet - m_isShown = FALSE; - m_isEnabled = TRUE; - - // no client data - m_clientObject = (wxClientData *)NULL; - m_clientData = NULL; - - // the default event handler is just this window - m_eventHandler = this; - -#if wxUSE_VALIDATORS - // no validator - m_windowValidator = (wxValidator *) NULL; -#endif // wxUSE_VALIDATORS - - // use the system default colours - wxSystemSettings settings; - - m_backgroundColour = settings.GetSystemColour(wxSYS_COLOUR_BTNFACE); - m_foregroundColour = *wxBLACK; // TODO take this from sys settings too? - m_font = *wxSWISS_FONT; // and this? - - // no style bits - m_windowStyle = 0; - - // an optimization for the event processing: checking this flag is much - // faster than using IsKindOf(CLASSINFO(wxWindow)) - m_isWindow = TRUE; - -#if wxUSE_CONSTRAINTS - // no constraints whatsoever - m_constraints = (wxLayoutConstraints *) NULL; - m_constraintsInvolvedIn = (wxWindowList *) NULL; - m_windowSizer = (wxSizer *) NULL; - m_sizerParent = (wxWindowBase *) NULL; - m_autoLayout = FALSE; -#endif // wxUSE_CONSTRAINTS - -#if wxUSE_DRAG_AND_DROP - m_dropTarget = (wxDropTarget *)NULL; -#endif // wxUSE_DRAG_AND_DROP - -#if wxUSE_TOOLTIPS - m_tooltip = (wxToolTip *)NULL; -#endif // wxUSE_TOOLTIPS - -#if wxUSE_CARET - m_caret = (wxCaret *)NULL; -#endif // wxUSE_CARET -} - -// common part of window creation process -bool wxWindowBase::CreateBase(wxWindowBase *parent, - wxWindowID id, - const wxPoint& WXUNUSED(pos), - const wxSize& WXUNUSED(size), - long style, - const wxString& name) -{ - // m_isWindow is set to TRUE in wxWindowBase::Init() as well as many other - // member variables - check that it has been called (will catch the case - // when a new ctor is added which doesn't call InitWindow) - wxASSERT_MSG( m_isWindow, _T("Init() must have been called before!") ); - - // generate a new id if the user doesn't care about it - m_windowId = id == -1 ? NewControlId() : id; - - SetName(name); - SetWindowStyleFlag(style); - SetParent(parent); - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// destruction -// ---------------------------------------------------------------------------- - -// common clean up -wxWindowBase::~wxWindowBase() -{ - // FIXME if these 2 cases result from programming errors in the user code - // we should probably assert here instead of silently fixing them - - // Just in case the window has been Closed, but we're then deleting - // immediately: don't leave dangling pointers. - wxPendingDelete.DeleteObject(this); - - // Just in case we've loaded a top-level window via LoadNativeDialog but - // we weren't a dialog class - wxTopLevelWindows.DeleteObject(this); - - wxASSERT_MSG( GetChildren().GetCount() == 0, _T("children not destroyed") ); - -#if wxUSE_CARET - if ( m_caret ) - delete m_caret; -#endif // wxUSE_CARET - -#if wxUSE_VALIDATORS - if ( m_windowValidator ) - delete m_windowValidator; -#endif // wxUSE_VALIDATORS - - if ( m_clientObject ) - delete m_clientObject; - -#if wxUSE_CONSTRAINTS - // Have to delete constraints/sizer FIRST otherwise sizers may try to look - // at deleted windows as they delete themselves. - DeleteRelatedConstraints(); - - if ( m_constraints ) - { - // This removes any dangling pointers to this window in other windows' - // constraintsInvolvedIn lists. - UnsetConstraints(m_constraints); - delete m_constraints; - m_constraints = NULL; - } - - if ( m_windowSizer ) - delete m_windowSizer; - - // If this is a child of a sizer, remove self from parent - if ( m_sizerParent ) - m_sizerParent->RemoveChild(this); -#endif // wxUSE_CONSTRAINTS - -#if wxUSE_DRAG_AND_DROP - if ( m_dropTarget ) - delete m_dropTarget; -#endif // wxUSE_DRAG_AND_DROP - -#if wxUSE_TOOLTIPS - if ( m_tooltip ) - delete m_tooltip; -#endif // wxUSE_TOOLTIPS -} - -bool wxWindowBase::Destroy() -{ - delete this; - - return TRUE; -} - -bool wxWindowBase::Close(bool force) -{ - wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId); - event.SetEventObject(this); -#if WXWIN_COMPATIBILITY - event.SetForce(force); -#endif // WXWIN_COMPATIBILITY - event.SetCanVeto(!force); - - // return FALSE if window wasn't closed because the application vetoed the - // close event - return GetEventHandler()->ProcessEvent(event) && !event.GetVeto(); -} - -bool wxWindowBase::DestroyChildren() -{ - wxWindowList::Node *node; - for ( ;; ) - { - // we iterate until the list becomes empty - node = GetChildren().GetFirst(); - if ( !node ) - break; - - wxWindow *child = node->GetData(); - - wxASSERT_MSG( child, _T("children list contains empty nodes") ); - - delete child; - - wxASSERT_MSG( !GetChildren().Find(child), - _T("child didn't remove itself using RemoveChild()") ); - } - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// centre/fit the window -// ---------------------------------------------------------------------------- - -// centre the window with respect to its parent in either (or both) directions -void wxWindowBase::Centre(int direction) -{ - int widthParent, heightParent; - - wxWindow *parent = GetParent(); - if ( parent ) - { - parent->GetClientSize(&widthParent, &heightParent); - } - else - { - // centre with respect to the whole screen - wxDisplaySize(&widthParent, &heightParent); - } - - int width, height; - GetSize(&width, &height); - - int new_x = -1, - new_y = -1; - - if ( direction & wxHORIZONTAL ) - new_x = (widthParent - width)/2; - - if ( direction & wxVERTICAL ) - new_y = (heightParent - height)/2; - - Move(new_x, new_y); -} - -// Center TopLevel windows over thier parent instead of the whole screen -void wxWindowBase::CentreOnParent(int direction) -{ - wxPoint ppos; - wxSize psze; - wxSize wsze; - wxWindow* parent = GetParent(); - int x, y; - - if (!parent || !IsTopLevel()) { - Centre(direction); - return; - } - - psze = parent->GetSize(); - ppos = parent->ClientToScreen(wxPoint(0,0)); - wsze = GetSize(); - - x = y = -1; - - if (direction == wxBOTH || direction == wxHORIZONTAL) - x = ppos.x + (psze.x - wsze.x)/2; - if (direction == wxBOTH || direction == wxVERTICAL) - y = ppos.y + (psze.y - wsze.y)/2; - - Move(x, y); -} - -// fits the window around the children -void wxWindowBase::Fit() -{ - int maxX = 0, - maxY = 0; - - wxWindowList::Node *node = GetChildren().GetFirst(); - while ( node ) - { - wxWindow *win = node->GetData(); - if ( win->IsTopLevel() ) - { - // dialogs and frames lie in different top level windows - don't - // deal with them here - continue; - } - - int wx, wy, ww, wh; - win->GetPosition(&wx, &wy); - win->GetSize(&ww, &wh); - if ( wx + ww > maxX ) - maxX = wx + ww; - if ( wy + wh > maxY ) - maxY = wy + wh; - - node = node->GetNext(); - } - - // leave a margin - SetClientSize(maxX + 7, maxY + 14); -} - -// set the min/max size of the window - -void wxWindowBase::SetSizeHints(int minW, int minH, - int maxW, int maxH, - int WXUNUSED(incW), int WXUNUSED(incH)) -{ - m_minWidth = minW; - m_maxWidth = maxW; - m_minHeight = minH; - m_maxHeight = maxH; -} - -// ---------------------------------------------------------------------------- -// show/hide/enable/disable the window -// ---------------------------------------------------------------------------- - -bool wxWindowBase::Show(bool show) -{ - if ( show != m_isShown ) - { - m_isShown = show; - - return TRUE; - } - else - { - return FALSE; - } -} - -bool wxWindowBase::Enable(bool enable) -{ - if ( enable != m_isEnabled ) - { - m_isEnabled = enable; - - return TRUE; - } - else - { - return FALSE; - } -} -// ---------------------------------------------------------------------------- -// RTTI -// ---------------------------------------------------------------------------- - -bool wxWindowBase::IsTopLevel() const -{ - return wxDynamicCast(this, wxFrame) || wxDynamicCast(this, wxDialog); -} - -// ---------------------------------------------------------------------------- -// reparenting the window -// ---------------------------------------------------------------------------- - -void wxWindowBase::AddChild(wxWindowBase *child) -{ - wxCHECK_RET( child, _T("can't add a NULL child") ); - - GetChildren().Append(child); - child->SetParent(this); -} - -void wxWindowBase::RemoveChild(wxWindowBase *child) -{ - wxCHECK_RET( child, _T("can't remove a NULL child") ); - - GetChildren().DeleteObject(child); - child->SetParent((wxWindow *)NULL); -} - -bool wxWindowBase::Reparent(wxWindowBase *newParent) -{ - wxWindow *oldParent = GetParent(); - if ( newParent == oldParent ) - { - // nothing done - return FALSE; - } - - // unlink this window from the existing parent. - if ( oldParent ) - { - oldParent->RemoveChild(this); - } - else - { - wxTopLevelWindows.DeleteObject(this); - } - - // add it to the new one - if ( newParent ) - { - newParent->AddChild(this); - } - else - { - wxTopLevelWindows.Append(this); - } - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// event handler stuff -// ---------------------------------------------------------------------------- - -void wxWindowBase::PushEventHandler(wxEvtHandler *handler) -{ - handler->SetNextHandler(GetEventHandler()); - SetEventHandler(handler); -} - -wxEvtHandler *wxWindowBase::PopEventHandler(bool deleteHandler) -{ - wxEvtHandler *handlerA = GetEventHandler(); - if ( handlerA ) - { - wxEvtHandler *handlerB = handlerA->GetNextHandler(); - handlerA->SetNextHandler((wxEvtHandler *)NULL); - SetEventHandler(handlerB); - if ( deleteHandler ) - { - delete handlerA; - handlerA = (wxEvtHandler *)NULL; - } - } - - return handlerA; -} - -// ---------------------------------------------------------------------------- -// cursors, fonts &c -// ---------------------------------------------------------------------------- - -bool wxWindowBase::SetBackgroundColour( const wxColour &colour ) -{ - if ( !colour.Ok() || (colour == m_backgroundColour) ) - return FALSE; - - m_backgroundColour = colour; - - return TRUE; -} - -bool wxWindowBase::SetForegroundColour( const wxColour &colour ) -{ - if ( !colour.Ok() || (colour == m_foregroundColour) ) - return FALSE; - - m_foregroundColour = colour; - - return TRUE; -} - -bool wxWindowBase::SetCursor(const wxCursor& cursor) -{ - // don't try to set invalid cursor, always fall back to the default - const wxCursor& cursorOk = cursor.Ok() ? cursor : *wxSTANDARD_CURSOR; - - if ( cursorOk == m_cursor ) - { - // no change - return FALSE; - } - - m_cursor = cursorOk; - - return TRUE; -} - -bool wxWindowBase::SetFont(const wxFont& font) -{ - // don't try to set invalid font, always fall back to the default - const wxFont& fontOk = font.Ok() ? font : *wxSWISS_FONT; - - if ( fontOk == m_font ) - { - // no change - return FALSE; - } - - m_font = fontOk; - - return TRUE; -} - -#if wxUSE_CARET -void wxWindowBase::SetCaret(wxCaret *caret) -{ - if ( m_caret ) - { - delete m_caret; - } - - m_caret = caret; - - if ( m_caret ) - { - wxASSERT_MSG( m_caret->GetWindow() == this, - _T("caret should be created associated to this window") ); - } -} -#endif // wxUSE_CARET - -#if wxUSE_VALIDATORS -// ---------------------------------------------------------------------------- -// validators -// ---------------------------------------------------------------------------- - -void wxWindowBase::SetValidator(const wxValidator& validator) -{ - if ( m_windowValidator ) - delete m_windowValidator; - - m_windowValidator = (wxValidator *)validator.Clone(); - - if ( m_windowValidator ) - m_windowValidator->SetWindow(this) ; -} -#endif // wxUSE_VALIDATORS - -// ---------------------------------------------------------------------------- -// update region testing -// ---------------------------------------------------------------------------- - -bool wxWindowBase::IsExposed(int x, int y) const -{ - return m_updateRegion.Contains(x, y) != wxOutRegion; -} - -bool wxWindowBase::IsExposed(int x, int y, int w, int h) const -{ - return m_updateRegion.Contains(x, y, w, h) != wxOutRegion; -} - -// ---------------------------------------------------------------------------- -// find window by id or name -// ---------------------------------------------------------------------------- - -wxWindow *wxWindowBase::FindWindow( long id ) -{ - if ( id == m_windowId ) - return (wxWindow *)this; - - wxWindowBase *res = (wxWindow *)NULL; - wxWindowList::Node *node; - for ( node = m_children.GetFirst(); node && !res; node = node->GetNext() ) - { - wxWindowBase *child = node->GetData(); - res = child->FindWindow( id ); - } - - return (wxWindow *)res; -} - -wxWindow *wxWindowBase::FindWindow( const wxString& name ) -{ - if ( name == m_windowName ) - return (wxWindow *)this; - - wxWindowBase *res = (wxWindow *)NULL; - wxWindowList::Node *node; - for ( node = m_children.GetFirst(); node && !res; node = node->GetNext() ) - { - wxWindow *child = node->GetData(); - res = child->FindWindow(name); - } - - return (wxWindow *)res; -} - -// ---------------------------------------------------------------------------- -// dialog oriented functions -// ---------------------------------------------------------------------------- - -void wxWindowBase::MakeModal(bool modal) -{ - // Disable all other windows - if ( IsTopLevel() ) - { - wxWindowList::Node *node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow *win = node->GetData(); - if (win != this) - win->Enable(!modal); - - node = node->GetNext(); - } - } -} - -bool wxWindowBase::Validate() -{ -#if wxUSE_VALIDATORS - wxWindowList::Node *node; - for ( node = m_children.GetFirst(); node; node = node->GetNext() ) - { - wxWindowBase *child = node->GetData(); - wxValidator *validator = child->GetValidator(); - if ( validator && !validator->Validate((wxWindow *)this) ) - { - return FALSE; - } - } -#endif // wxUSE_VALIDATORS - - return TRUE; -} - -bool wxWindowBase::TransferDataToWindow() -{ -#if wxUSE_VALIDATORS - wxWindowList::Node *node; - for ( node = m_children.GetFirst(); node; node = node->GetNext() ) - { - wxWindowBase *child = node->GetData(); - wxValidator *validator = child->GetValidator(); - if ( validator && !validator->TransferToWindow() ) - { - wxLog *log = wxLog::GetActiveTarget(); - if ( log ) - { - wxLogWarning(_("Could not transfer data to window")); - log->Flush(); - } - - return FALSE; - } - } -#endif // wxUSE_VALIDATORS - - return TRUE; -} - -bool wxWindowBase::TransferDataFromWindow() -{ -#if wxUSE_VALIDATORS - wxWindowList::Node *node; - for ( node = m_children.GetFirst(); node; node = node->GetNext() ) - { - wxWindow *child = node->GetData(); - if ( child->GetValidator() && - !child->GetValidator()->TransferFromWindow() ) - { - return FALSE; - } - } -#endif // wxUSE_VALIDATORS - - return TRUE; -} - -void wxWindowBase::InitDialog() -{ - wxInitDialogEvent event(GetId()); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -// ---------------------------------------------------------------------------- -// tooltips -// ---------------------------------------------------------------------------- - -#if wxUSE_TOOLTIPS - -void wxWindowBase::SetToolTip( const wxString &tip ) -{ - // don't create the new tooltip if we already have one - if ( m_tooltip ) - { - m_tooltip->SetTip( tip ); - } - else - { - SetToolTip( new wxToolTip( tip ) ); - } - - // setting empty tooltip text does not remove the tooltip any more - use - // SetToolTip((wxToolTip *)NULL) for this -} - -void wxWindowBase::DoSetToolTip(wxToolTip *tooltip) -{ - if ( m_tooltip ) - delete m_tooltip; - - m_tooltip = tooltip; -} - -#endif // wxUSE_TOOLTIPS - -// ---------------------------------------------------------------------------- -// constraints and sizers -// ---------------------------------------------------------------------------- - -#if wxUSE_CONSTRAINTS - -void wxWindowBase::SetConstraints( wxLayoutConstraints *constraints ) -{ - if ( m_constraints ) - { - UnsetConstraints(m_constraints); - delete m_constraints; - } - m_constraints = constraints; - if ( m_constraints ) - { - // Make sure other windows know they're part of a 'meaningful relationship' - if ( m_constraints->left.GetOtherWindow() && (m_constraints->left.GetOtherWindow() != this) ) - m_constraints->left.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->top.GetOtherWindow() && (m_constraints->top.GetOtherWindow() != this) ) - m_constraints->top.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->right.GetOtherWindow() && (m_constraints->right.GetOtherWindow() != this) ) - m_constraints->right.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->bottom.GetOtherWindow() && (m_constraints->bottom.GetOtherWindow() != this) ) - m_constraints->bottom.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->width.GetOtherWindow() && (m_constraints->width.GetOtherWindow() != this) ) - m_constraints->width.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->height.GetOtherWindow() && (m_constraints->height.GetOtherWindow() != this) ) - m_constraints->height.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->centreX.GetOtherWindow() && (m_constraints->centreX.GetOtherWindow() != this) ) - m_constraints->centreX.GetOtherWindow()->AddConstraintReference(this); - if ( m_constraints->centreY.GetOtherWindow() && (m_constraints->centreY.GetOtherWindow() != this) ) - m_constraints->centreY.GetOtherWindow()->AddConstraintReference(this); - } -} - -// This removes any dangling pointers to this window in other windows' -// constraintsInvolvedIn lists. -void wxWindowBase::UnsetConstraints(wxLayoutConstraints *c) -{ - if ( c ) - { - if ( c->left.GetOtherWindow() && (c->top.GetOtherWindow() != this) ) - c->left.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->top.GetOtherWindow() && (c->top.GetOtherWindow() != this) ) - c->top.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->right.GetOtherWindow() && (c->right.GetOtherWindow() != this) ) - c->right.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->bottom.GetOtherWindow() && (c->bottom.GetOtherWindow() != this) ) - c->bottom.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->width.GetOtherWindow() && (c->width.GetOtherWindow() != this) ) - c->width.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->height.GetOtherWindow() && (c->height.GetOtherWindow() != this) ) - c->height.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->centreX.GetOtherWindow() && (c->centreX.GetOtherWindow() != this) ) - c->centreX.GetOtherWindow()->RemoveConstraintReference(this); - if ( c->centreY.GetOtherWindow() && (c->centreY.GetOtherWindow() != this) ) - c->centreY.GetOtherWindow()->RemoveConstraintReference(this); - } -} - -// Back-pointer to other windows we're involved with, so if we delete this -// window, we must delete any constraints we're involved with. -void wxWindowBase::AddConstraintReference(wxWindowBase *otherWin) -{ - if ( !m_constraintsInvolvedIn ) - m_constraintsInvolvedIn = new wxWindowList; - if ( !m_constraintsInvolvedIn->Find(otherWin) ) - m_constraintsInvolvedIn->Append(otherWin); -} - -// REMOVE back-pointer to other windows we're involved with. -void wxWindowBase::RemoveConstraintReference(wxWindowBase *otherWin) -{ - if ( m_constraintsInvolvedIn ) - m_constraintsInvolvedIn->DeleteObject(otherWin); -} - -// Reset any constraints that mention this window -void wxWindowBase::DeleteRelatedConstraints() -{ - if ( m_constraintsInvolvedIn ) - { - wxWindowList::Node *node = m_constraintsInvolvedIn->GetFirst(); - while (node) - { - wxWindow *win = node->GetData(); - wxLayoutConstraints *constr = win->GetConstraints(); - - // Reset any constraints involving this window - if ( constr ) - { - constr->left.ResetIfWin(this); - constr->top.ResetIfWin(this); - constr->right.ResetIfWin(this); - constr->bottom.ResetIfWin(this); - constr->width.ResetIfWin(this); - constr->height.ResetIfWin(this); - constr->centreX.ResetIfWin(this); - constr->centreY.ResetIfWin(this); - } - - wxWindowList::Node *next = node->GetNext(); - delete node; - node = next; - } - - delete m_constraintsInvolvedIn; - m_constraintsInvolvedIn = (wxWindowList *) NULL; - } -} - -void wxWindowBase::SetSizer(wxSizer *sizer) -{ - m_windowSizer = sizer; - if ( sizer ) - sizer->SetSizerParent(this); -} - -bool wxWindowBase::Layout() -{ - if ( GetConstraints() ) - { - int w, h; - GetClientSize(&w, &h); - GetConstraints()->width.SetValue(w); - GetConstraints()->height.SetValue(h); - } - - // If top level (one sizer), evaluate the sizer's constraints. - if ( GetSizer() ) - { - int noChanges; - GetSizer()->ResetConstraints(); // Mark all constraints as unevaluated - GetSizer()->LayoutPhase1(&noChanges); - GetSizer()->LayoutPhase2(&noChanges); - GetSizer()->SetConstraintSizes(); // Recursively set the real window sizes - return TRUE; - } - else - { - // Otherwise, evaluate child constraints - ResetConstraints(); // Mark all constraints as unevaluated - DoPhase(1); // Just one phase need if no sizers involved - DoPhase(2); - SetConstraintSizes(); // Recursively set the real window sizes - } - return TRUE; -} - - -// Do a phase of evaluating constraints: the default behaviour. wxSizers may -// do a similar thing, but also impose their own 'constraints' and order the -// evaluation differently. -bool wxWindowBase::LayoutPhase1(int *noChanges) -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - return constr->SatisfyConstraints(this, noChanges); - } - else - return TRUE; -} - -bool wxWindowBase::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - // Layout children - DoPhase(1); - DoPhase(2); - return TRUE; -} - -// Do a phase of evaluating child constraints -bool wxWindowBase::DoPhase(int phase) -{ - int noIterations = 0; - int maxIterations = 500; - int noChanges = 1; - int noFailures = 0; - wxWindowList succeeded; - while ((noChanges > 0) && (noIterations < maxIterations)) - { - noChanges = 0; - noFailures = 0; - wxWindowList::Node *node = GetChildren().GetFirst(); - while (node) - { - wxWindow *child = node->GetData(); - if ( !child->IsTopLevel() ) - { - wxLayoutConstraints *constr = child->GetConstraints(); - if ( constr ) - { - if ( !succeeded.Find(child) ) - { - int tempNoChanges = 0; - bool success = ( (phase == 1) ? child->LayoutPhase1(&tempNoChanges) : child->LayoutPhase2(&tempNoChanges) ) ; - noChanges += tempNoChanges; - if ( success ) - { - succeeded.Append(child); - } - } - } - } - node = node->GetNext(); - } - - noIterations++; - } - - return TRUE; -} - -void wxWindowBase::ResetConstraints() -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - constr->left.SetDone(FALSE); - constr->top.SetDone(FALSE); - constr->right.SetDone(FALSE); - constr->bottom.SetDone(FALSE); - constr->width.SetDone(FALSE); - constr->height.SetDone(FALSE); - constr->centreX.SetDone(FALSE); - constr->centreY.SetDone(FALSE); - } - wxWindowList::Node *node = GetChildren().GetFirst(); - while (node) - { - wxWindow *win = node->GetData(); - if ( !win->IsTopLevel() ) - win->ResetConstraints(); - node = node->GetNext(); - } -} - -// Need to distinguish between setting the 'fake' size for windows and sizers, -// and setting the real values. -void wxWindowBase::SetConstraintSizes(bool recurse) -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr && constr->left.GetDone() && constr->right.GetDone( ) && - constr->width.GetDone() && constr->height.GetDone()) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - - // If we don't want to resize this window, just move it... - if ( (constr->width.GetRelationship() != wxAsIs ) || - (constr->height.GetRelationship() != wxAsIs)) - { - // Calls Layout() recursively. AAAGH. How can we stop that. - // Simply take Layout() out of non-top level OnSizes. - SizerSetSize(x, y, w, h); - } - else - { - SizerMove(x, y); - } - } - else if ( constr ) - { - wxChar *windowClass = GetClassInfo()->GetClassName(); - - wxString winName; - if ( GetName() == _T("") ) - winName = _T("unnamed"); - else - winName = GetName(); - wxLogDebug( _T("Constraint(s) not satisfied for window of type %s, name %s:\n"), - (const wxChar *)windowClass, - (const wxChar *)winName); - if ( !constr->left.GetDone()) wxLogDebug( _T(" unsatisfied 'left' constraint.\n") ); - if ( !constr->right.GetDone()) wxLogDebug( _T(" unsatisfied 'right' constraint.\n") ); - if ( !constr->width.GetDone()) wxLogDebug( _T(" unsatisfied 'width' constraint.\n") ); - if ( !constr->height.GetDone()) wxLogDebug( _T(" unsatisfied 'height' constraint.\n") ); - wxLogDebug( _T("Please check constraints: try adding AsIs() constraints.\n") ); - } - - if ( recurse ) - { - wxWindowList::Node *node = GetChildren().GetFirst(); - while (node) - { - wxWindow *win = node->GetData(); - if ( !win->IsTopLevel() ) - win->SetConstraintSizes(); - node = node->GetNext(); - } - } -} - -// This assumes that all sizers are 'on' the same window, i.e. the parent of -// this window. -void wxWindowBase::TransformSizerToActual(int *x, int *y) const -{ - if ( !m_sizerParent || m_sizerParent->IsTopLevel() ) - return; - - int xp, yp; - m_sizerParent->GetPosition(&xp, &yp); - m_sizerParent->TransformSizerToActual(&xp, &yp); - *x += xp; - *y += yp; -} - -void wxWindowBase::SizerSetSize(int x, int y, int w, int h) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - SetSize(xx, yy, w, h); -} - -void wxWindowBase::SizerMove(int x, int y) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - Move(xx, yy); -} - -// Only set the size/position of the constraint (if any) -void wxWindowBase::SetSizeConstraint(int x, int y, int w, int h) -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - if ( x != -1 ) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if ( y != -1 ) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - if ( w != -1 ) - { - constr->width.SetValue(w); - constr->width.SetDone(TRUE); - } - if ( h != -1 ) - { - constr->height.SetValue(h); - constr->height.SetDone(TRUE); - } - } -} - -void wxWindowBase::MoveConstraint(int x, int y) -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - if ( x != -1 ) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if ( y != -1 ) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - } -} - -void wxWindowBase::GetSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetSize(w, h); -} - -void wxWindowBase::GetClientSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetClientSize(w, h); -} - -void wxWindowBase::GetPositionConstraint(int *x, int *y) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if ( constr ) - { - *x = constr->left.GetValue(); - *y = constr->top.GetValue(); - } - else - GetPosition(x, y); -} - -#endif // wxUSE_CONSTRAINTS - -// ---------------------------------------------------------------------------- -// do Update UI processing for child controls -// ---------------------------------------------------------------------------- - -// TODO: should this be implemented for the child window rather -// than the parent? Then you can override it e.g. for wxCheckBox -// to do the Right Thing rather than having to assume a fixed number -// of control classes. -void wxWindowBase::UpdateWindowUI() -{ - wxWindowID id = GetId(); - if ( id > 0 ) - { - wxUpdateUIEvent event(id); - event.m_eventObject = this; - - if ( GetEventHandler()->ProcessEvent(event) ) - { - if ( event.GetSetEnabled() ) - Enable(event.GetEnabled()); - - if ( event.GetSetText() ) - { - wxControl *control = wxDynamicCast(this, wxControl); - if ( control ) - control->SetLabel(event.GetText()); - } - -#if wxUSE_CHECKBOX - wxCheckBox *checkbox = wxDynamicCast(this, wxCheckBox); - if ( checkbox ) - { - if ( event.GetSetChecked() ) - checkbox->SetValue(event.GetChecked()); - } -#endif // wxUSE_CHECKBOX - -#if wxUSE_RADIOBUTTON - wxRadioButton *radiobtn = wxDynamicCast(this, wxRadioButton); - if ( radiobtn ) - { - if ( event.GetSetChecked() ) - radiobtn->SetValue(event.GetChecked()); - } -#endif // wxUSE_RADIOBUTTON - } - } -} - -// ---------------------------------------------------------------------------- -// dialog units translations -// ---------------------------------------------------------------------------- - -wxPoint wxWindowBase::ConvertPixelsToDialog(const wxPoint& pt) -{ - int charWidth = GetCharWidth(); - int charHeight = GetCharHeight(); - wxPoint pt2; - pt2.x = (int) ((pt.x * 4) / charWidth) ; - pt2.y = (int) ((pt.y * 8) / charHeight) ; - - return pt2; -} - -wxPoint wxWindowBase::ConvertDialogToPixels(const wxPoint& pt) -{ - int charWidth = GetCharWidth(); - int charHeight = GetCharHeight(); - wxPoint pt2; - pt2.x = (int) ((pt.x * charWidth) / 4) ; - pt2.y = (int) ((pt.y * charHeight) / 8) ; - - return pt2; -} - -// ---------------------------------------------------------------------------- -// event handlers -// ---------------------------------------------------------------------------- - -// propagate the colour change event to the subwindows -void wxWindowBase::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxWindowList::Node *node = GetChildren().GetFirst(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = node->GetData(); - if ( !win->IsTopLevel() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->GetNext(); - } -} - -// the default action is to populate dialog with data when it's created -void wxWindowBase::OnInitDialog( wxInitDialogEvent &WXUNUSED(event) ) -{ - TransferDataToWindow(); -} - -// ---------------------------------------------------------------------------- -// list classes implementation -// ---------------------------------------------------------------------------- - -void wxWindowListNode::DeleteData() -{ - delete (wxWindow *)GetData(); -} - diff --git a/src/common/wxchar.cpp b/src/common/wxchar.cpp deleted file mode 100644 index fba42b9352..0000000000 --- a/src/common/wxchar.cpp +++ /dev/null @@ -1,321 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxchar.cpp -// Purpose: wxChar implementation -// Author: Ove Kåven -// Modified by: -// Created: 09/04/99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows copyright -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "wxchar.h" -#endif - -// =========================================================================== -// headers, declarations, constants -// =========================================================================== - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#define _ISOC9X_SOURCE 1 // to get vsscanf() -#define _BSD_SOURCE 1 // to still get strdup() - -#include -#include -#include -#include - -#ifndef WX_PRECOMP - #include "wx/defs.h" - #include "wx/wxchar.h" - #include "wx/string.h" - #include "wx/hash.h" -#endif - -#if defined(__WIN32__) && defined(wxNEED_WX_CTYPE_H) -#include -#include -#include -#include -#endif - -#if wxUSE_WCHAR_T -size_t WXDLLEXPORT wxMB2WC(wchar_t *buf, const char *psz, size_t n) -{ - if (buf) { - if (!n || !*psz) { - if (n) *buf = _T('\0'); - return 0; - } - return mbstowcs(buf, psz, n); - } - - // NB: GNU libc5 wcstombs() is completely broken, don't use it (it doesn't - // honor the 3rd parameter, thus it will happily crash here). -#if wxUSE_WCSRTOMBS - // don't know if it's really needed (or if we can pass NULL), but better safe - // than quick - mbstate_t mbstate; - return mbsrtowcs((wchar_t *) NULL, &psz, 0, &mbstate); -#else // !GNU libc - return mbstowcs((wchar_t *) NULL, psz, 0); -#endif // GNU -} - -size_t WXDLLEXPORT wxWC2MB(char *buf, const wchar_t *pwz, size_t n) -{ - if (buf) { - if (!n || !*pwz) { - // glibc2.1 chokes on null input - if (n) *buf = '\0'; - return 0; - } - return wcstombs(buf, pwz, n); - } - - // NB: GNU libc5 wcstombs() is completely broken, don't use it (it doesn't - // honor the 3rd parameter, thus it will happily crash here). -#if wxUSE_WCSRTOMBS - // don't know if it's really needed (or if we can pass NULL), but better safe - // than quick - mbstate_t mbstate; - return wcsrtombs((char *) NULL, &pwz, 0, &mbstate); -#else // !GNU libc - return wcstombs((char *) NULL, pwz, 0); -#endif // GNU -} -#endif - -bool WXDLLEXPORT wxOKlibc() -{ -#if wxUSE_WCHAR_T && defined(__UNIX__) && defined(__GLIBC__) - // GNU libc uses UTF-8 even when it shouldn't - wchar_t res; - if ((MB_CUR_MAX == 2) && - (wxMB2WC(&res, "\xdd\xa5", 1)>0) && - (res==0x765)) { - // this is UTF-8 allright, check whether that's what we want - char *cur_locale = setlocale(LC_ALL, NULL); - if ((strlen(cur_locale) < 4) || - (strcasecmp(cur_locale + strlen(cur_locale) - 4, "utf8"))) { - // nope, don't use libc conversion - return FALSE; - } - } -#endif - return TRUE; -} - -#ifndef HAVE_WCSLEN -size_t WXDLLEXPORT wcslen(const wchar_t *s) -{ - size_t len = 0; - while (s[len]) len++; - return len; -} -#endif - -#if defined(__WIN32__) && defined(wxNEED_WX_CTYPE_H) -inline WORD wxMSW_ctype(wxChar ch) -{ - WORD ret; - GetStringTypeEx(LOCALE_USER_DEFAULT, CT_CTYPE1, &ch, 1, &ret); - return ret; -} - -int WXDLLEXPORT wxIsalnum(wxChar ch) { return IsCharAlphaNumeric(ch); } -int WXDLLEXPORT wxIsalpha(wxChar ch) { return IsCharAlpha(ch); } -int WXDLLEXPORT wxIsctrl(wxChar ch) { return wxMSW_ctype(ch) & C1_CNTRL; } -int WXDLLEXPORT wxIsdigit(wxChar ch) { return wxMSW_ctype(ch) & C1_DIGIT; } -int WXDLLEXPORT wxIsgraph(wxChar ch) { return wxMSW_ctype(ch) & (C1_DIGIT|C1_PUNCT|C1_ALPHA); } -int WXDLLEXPORT wxIslower(wxChar ch) { return IsCharLower(ch); } -int WXDLLEXPORT wxIsprint(wxChar ch) { return wxMSW_ctype(ch) & (C1_DIGIT|C1_SPACE|C1_PUNCT|C1_ALPHA); } -int WXDLLEXPORT wxIspunct(wxChar ch) { return wxMSW_ctype(ch) & C1_PUNCT; } -int WXDLLEXPORT wxIsspace(wxChar ch) { return wxMSW_ctype(ch) & C1_SPACE; } -int WXDLLEXPORT wxIsupper(wxChar ch) { return IsCharUpper(ch); } -int WXDLLEXPORT wxIsxdigit(wxChar ch) { return wxMSW_ctype(ch) & C1_XDIGIT; } -int WXDLLEXPORT wxTolower(wxChar ch) { return (wxChar)CharLower((LPTSTR)(ch)); } -int WXDLLEXPORT wxToupper(wxChar ch) { return (wxChar)CharUpper((LPTSTR)(ch)); } -#endif - -#ifndef wxStrdup -wxChar * WXDLLEXPORT wxStrdup(const wxChar *psz) -{ - size_t size = (wxStrlen(psz) + 1) * sizeof(wxChar); - wxChar *ret = (wxChar *) malloc(size); - memcpy(ret, psz, size); - return ret; -} -#endif - -#ifndef wxStricmp -int WXDLLEXPORT wxStricmp(const wxChar *psz1, const wxChar *psz2) -{ - register wxChar c1, c2; - do { - c1 = wxTolower(*psz1++); - c2 = wxTolower(*psz2++); - } while ( c1 && (c1 == c2) ); - return c1 - c2; -} -#endif - -#ifndef wxStrtok -wxChar * WXDLLEXPORT wxStrtok(wxChar *psz, const wxChar *delim, wxChar **save_ptr) -{ - if (!psz) psz = *save_ptr; - psz += wxStrspn(psz, delim); - if (!*psz) { - *save_ptr = (wxChar *)NULL; - return (wxChar *)NULL; - } - wxChar *ret = psz; - psz = wxStrpbrk(psz, delim); - if (!psz) *save_ptr = (wxChar*)NULL; - else { - *psz = _T('\0'); - *save_ptr = psz + 1; - } - return ret; -} -#endif - -#ifndef wxSetlocale -wxChar * WXDLLEXPORT wxSetlocale(int category, const wxChar *locale) -{ - setlocale(category, wxConv_libc.cWX2MB(locale)); - // FIXME - return (wxChar *)NULL; -} -#endif - -#ifdef wxNEED_WX_STDIO_H -int WXDLLEXPORT wxPrintf(const wxChar *fmt, ...) -{ - va_list argptr; - int ret; - - va_start(argptr, fmt); - ret = wxVprintf(fmt, argptr); - va_end(argptr); - return ret; -} - -int WXDLLEXPORT wxVprintf(const wxChar *fmt, va_list argptr) -{ - wxString str; - str.PrintfV(fmt,argptr); - printf("%s", (const char*)str.mb_str()); - return str.Len(); -} - -int WXDLLEXPORT wxFprintf(FILE *stream, const wxChar *fmt, ...) -{ - va_list argptr; - int ret; - - va_start(argptr, fmt); - ret = wxVfprintf(stream, fmt, argptr); - va_end(argptr); - return ret; -} - -int WXDLLEXPORT wxVfprintf(FILE *stream, const wxChar *fmt, va_list argptr) -{ - wxString str; - str.PrintfV(fmt,argptr); - fprintf(stream, "%s", (const char*)str.mb_str()); - return str.Len(); -} - -int WXDLLEXPORT wxSprintf(wxChar *buf, const wxChar *fmt, ...) -{ - va_list argptr; - int ret; - - va_start(argptr, fmt); - ret = wxVsprintf(buf, fmt, argptr); - va_end(argptr); - return ret; -} - -int WXDLLEXPORT wxVsprintf(wxChar *buf, const wxChar *fmt, va_list argptr) -{ - // this might be sort of inefficient, but it doesn't matter since - // we'd prefer people to use wxString::Printf directly instead anyway - wxString str; - str.PrintfV(fmt,argptr); - wxStrcpy(buf,str.c_str()); - return str.Len(); -} - -int WXDLLEXPORT wxSscanf(const wxChar *buf, const wxChar *fmt, ...) -{ - va_list argptr; - int ret; - - va_start(argptr, fmt); - ret = wxVsscanf(buf, fmt, argptr); - va_end(argptr); - return ret; -} - -int WXDLLEXPORT wxVsscanf(const wxChar *buf, const wxChar *fmt, va_list argptr) -{ - int ret; - // this will work only for numeric conversion! Strings will not be converted correctly - // hopefully this is all we'll need - ret = vsscanf(wxConv_libc.cWX2MB(buf), wxConv_libc.cWX2MB(fmt), argptr); - return ret; -} -#endif - -#ifndef wxAtof -double WXDLLEXPORT wxAtof(const wxChar *psz) -{ - return atof(wxConv_libc.cWX2MB(psz)); -} -#endif - -#ifdef wxNEED_WX_STDLIB_H -int WXDLLEXPORT wxAtoi(const wxChar *psz) -{ - return atoi(wxConv_libc.cWX2MB(psz)); -} - -long WXDLLEXPORT wxAtol(const wxChar *psz) -{ - return atol(wxConv_libc.cWX2MB(psz)); -} - -wxChar * WXDLLEXPORT wxGetenv(const wxChar *name) -{ - static wxHashTable env; - // check if we already have stored the converted env var - wxObject *data = env.Get(name); - if (!data) { - // nope, retrieve it, - const char *val = getenv(wxConv_libc.cWX2MB(name)); - if (!val) return (wxChar *)NULL; - // convert it, - data = (wxObject *)new wxString(val); - // and store it - env.Put(name, data); - } - // return converted env var - return (wxChar *)((wxString *)data)->c_str(); -} - -int WXDLLEXPORT wxSystem(const wxChar *psz) -{ - return system(wxConv_libc.cWX2MB(psz)); -} - -#endif diff --git a/src/common/wxexpr.cpp b/src/common/wxexpr.cpp deleted file mode 100644 index 227efb2850..0000000000 --- a/src/common/wxexpr.cpp +++ /dev/null @@ -1,1267 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxexpr.cpp -// Purpose: wxExpr -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wxexpr.h" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_IOSTREAMH - #include -#else - #include -#endif - -#include -#include -#include - -#include "wx/utils.h" - -#include "wx/expr.h" -#include "wx/wxexpr.h" - -extern "C" void add_expr(char *); -extern "C" void LexFromFile(FILE *fd); -extern "C" void LexFromString(char *buf); - - -wxExprDatabase *thewxExprDatabase = NULL; -wxExprErrorHandler currentwxExprErrorHandler; - -wxExpr::wxExpr(const wxString& functor) -{ - type = wxExprList; - next = NULL; - last = NULL; - value.first = NULL; - - wxExpr *pfunctor = new wxExpr(wxExprWord, functor); - Append(pfunctor); - client_data = NULL; -} - -wxExpr::wxExpr(wxExprType the_type, const wxString& word_or_string) -{ - type = the_type; - - switch (the_type) - { - case wxExprWord: - value.word = copystring((const wxChar *)word_or_string); - break; - case wxExprString: - value.string = copystring((const wxChar *)word_or_string); - break; - case wxExprList: - last = NULL; - value.first = NULL; - break; - case wxExprReal: - case wxExprInteger: - case wxExprNull: - break; - } - client_data = NULL; - next = NULL; -} - -wxExpr::wxExpr(wxExprType the_type, wxChar *word_or_string, bool allocate) -{ - type = the_type; - - switch (the_type) - { - case wxExprWord: - value.word = allocate ? copystring(word_or_string) : word_or_string; - break; - case wxExprString: - value.string = allocate ? copystring(word_or_string) : word_or_string; - break; - case wxExprList: - last = NULL; - value.first = NULL; - break; - case wxExprReal: - case wxExprInteger: - case wxExprNull: - break; - } - client_data = NULL; - next = NULL; -} - -wxExpr::wxExpr(long the_integer) -{ - type = wxExprInteger; - value.integer = the_integer; - client_data = NULL; - next = NULL; -} - -wxExpr::wxExpr(double the_real) -{ - type = wxExprReal; - value.real = the_real; - client_data = NULL; - next = NULL; -} - -wxExpr::wxExpr(wxList *the_list) -{ - type = wxExprList; - client_data = NULL; - last = NULL; - value.first = NULL; - - wxExpr *listExpr = new wxExpr(wxExprList); - - wxNode *node = the_list->First(); - while (node) - { - wxExpr *expr = (wxExpr *)node->Data(); - listExpr->Append(expr); - node = node->Next(); - } - Append(listExpr); - - delete the_list; -} - -wxExpr::~wxExpr(void) -{ - switch (type) - { - case wxExprInteger: - case wxExprReal: - { - break; - } - case wxExprString: - { - delete[] value.string; - break; - } - case wxExprWord: - { - delete[] value.word; - break; - } - case wxExprList: - { - wxExpr *expr = value.first; - while (expr) - { - wxExpr *expr1 = expr->next; - - delete expr; - expr = expr1; - } - break; - } - case wxExprNull: break; - } -} - -void wxExpr::Append(wxExpr *expr) -{ - if (!value.first) - value.first = expr; - - if (last) - last->next = expr; - last = expr; -} - -void wxExpr::Insert(wxExpr *expr) -{ - expr->next = value.first; - value.first = expr; - - if (!last) - last = expr; -} - -wxExpr *wxExpr::Copy(void) const -{ - // This seems to get round an optimizer bug when - // using Watcom C++ 10a in WIN32 compilation mode. - // If these lines not present, the type seems to be - // interpreted wrongly as an integer. - // I don't want to turn optimization off since it's needed - // for reading in files quickly. -#if defined(__WATCOMC__) - char buf[2]; - sprintf(buf, ""); -#endif - - switch (type) - { - case wxExprInteger: - return new wxExpr(value.integer); - case wxExprReal: - return new wxExpr(value.real); - case wxExprString: - return new wxExpr(wxExprString, wxString(value.string)); - case wxExprWord: - return new wxExpr(wxExprWord, wxString(value.word)); - case wxExprList: - { - wxExpr *expr = value.first; - wxExpr *new_list = new wxExpr(wxExprList); - while (expr) - { - wxExpr *expr2 = expr->Copy(); - new_list->Append(expr2); - expr = expr->next; - } - return new_list; - } - case wxExprNull: - break; - } - return NULL; -} - - -// Get the wxExpr (containing (= wxExpr Value) form) for the given word -// or string, assuming that we have Attribute=Value, ... -wxExpr *wxExpr::GetAttributeValueNode(const wxString& word) const // Use only for a clause or list -{ - if (type != wxExprList) - return NULL; - - wxExpr *expr = value.first; - while (expr) - { - if (expr->type == wxExprList) - { - wxExpr *firstNode = expr->value.first; - if ((firstNode->type == wxExprWord) && (firstNode->value.word[0] == '=')) - { - wxExpr *secondNode = firstNode->next; - if ((secondNode->type == wxExprWord) && - (wxStrcmp((const wxChar *)word, secondNode->value.word) == 0)) - { - return expr; - } - } - } - expr = expr->next; - } - return NULL; -} - -// Get the value (in wxExpr form) for the given word or string, assuming -// that we have Attribute=Value, ... -wxExpr *wxExpr::AttributeValue(const wxString& word) const // Use only for a clause or list -{ - if (type != wxExprList) - return NULL; - - wxExpr *attExpr = GetAttributeValueNode(word); - if (attExpr && attExpr->value.first && attExpr->value.first->next) - return attExpr->value.first->next->next; - else return NULL; -} - -wxString wxExpr::Functor(void) const // Use only for a clause -{ - if ((type != wxExprList) || !value.first) - return wxString(_T("")); - - if (value.first->type == wxExprWord) - return wxString(value.first->value.word); - else - return wxString(_T("")); -} - -bool wxExpr::IsFunctor(const wxString& f) const // Use only for a clause -{ - if ((type != wxExprList) || !value.first) - return FALSE; - - return (value.first->type == wxExprWord && - (wxStrcmp((const wxChar *)f, value.first->value.word) == 0)); -} - -// Return nth argument of a clause (starting from 1) -wxExpr *wxExpr::Arg(wxExprType theType, int arg) const -{ - wxExpr *expr = value.first; - int i; - for (i = 1; i < arg; i++) - if (expr) - expr = expr->next; - - if (expr && (expr->type == theType)) - return expr; - else - return NULL; -} - -// Return nth argument of a list expression (starting from zero) -wxExpr *wxExpr::Nth(int arg) const -{ - if (type != wxExprList) - return NULL; - - wxExpr *expr = value.first; - int i; - for (i = 0; i < arg; i++) - if (expr) - expr = expr->next; - else return NULL; - - if (expr) - return expr; - else - return NULL; -} - - // Returns the number of elements in a list expression -int wxExpr::Number(void) const -{ - if (type != wxExprList) - return 0; - - int i = 0; - wxExpr *expr = value.first; - while (expr) - { - expr = expr->next; - i ++; - } - return i; -} - -void wxExpr::DeleteAttributeValue(const wxString& attribute) -{ - if (type != wxExprList) - return; - - wxExpr *expr = value.first; - wxExpr *lastExpr = this; - while (expr) - { - if (expr->type == wxExprList) - { - wxExpr *firstNode = expr->value.first; - if ((firstNode->type == wxExprWord) && (firstNode->value.word[0] == '=')) - { - wxExpr *secondNode = firstNode->next; - if ((secondNode->type == wxExprWord) && - (wxStrcmp((const wxChar *)attribute, secondNode->value.word) == 0)) - { - wxExpr *nextExpr = expr->next; - delete expr; - - lastExpr->next = nextExpr; - - if (last == expr) - last = lastExpr; - - return; - } - } - } - lastExpr = expr; - expr = expr->next; - } - return; -} - -void wxExpr::AddAttributeValue(const wxString& attribute, wxExpr *val) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - // Warning - existing code may assume that any existing value - // is deleted first. For efficiency, we leave this to the application. -// DeleteAttributeValue(attribute); - - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr = new wxExpr(wxExprList); - - listExpr->Append(pequals); - listExpr->Append(patt); - listExpr->Append(val); - - Append(listExpr); -} - -void wxExpr::AddAttributeValue(const wxString& attribute, long val) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - // Warning - existing code may assume that any existing value - // is deleted first. For efficiency, we leave this to the application. -// DeleteAttributeValue(attribute); - - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pval = new wxExpr(val); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr = new wxExpr(wxExprList); - - listExpr->Append(pequals); - listExpr->Append(patt); - listExpr->Append(pval); - - Append(listExpr); -} - -void wxExpr::AddAttributeValue(const wxString& attribute, double val) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - -// DeleteAttributeValue(attribute); - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pval = new wxExpr(val); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr = new wxExpr(wxExprList); - - listExpr->Append(pequals); - listExpr->Append(patt); - listExpr->Append(pval); - - Append(listExpr); -} - -void wxExpr::AddAttributeValueString(const wxString& attribute, const wxString& val) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - -// DeleteAttributeValue(attribute); - - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pval = new wxExpr(wxExprString, val); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr = new wxExpr(wxExprList); - - listExpr->Append(pequals); - listExpr->Append(patt); - listExpr->Append(pval); - - Append(listExpr); -} - -void wxExpr::AddAttributeValueWord(const wxString& attribute, const wxString& val) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - -// DeleteAttributeValue(attribute); - - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pval = new wxExpr(wxExprWord, val); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr = new wxExpr(wxExprList); - - listExpr->Append(pequals); - listExpr->Append(patt); - listExpr->Append(pval); - - Append(listExpr); -} - -void wxExpr::AddAttributeValue(const wxString& attribute, wxList *val) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - if (!val) - return; - -// DeleteAttributeValue(attribute); - - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pval = new wxExpr(val); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr = new wxExpr(wxExprList); - - listExpr->Append(pequals); - listExpr->Append(patt); - listExpr->Append(pval); - - Append(listExpr); -} - -void wxExpr::AddAttributeValueStringList(const wxString& attribute, wxList *string_list) -{ - if (type != wxExprList) - { -// cout << "Error! tried to add an attribute-value pair to a nonlist wxExpr expression\n"; - return; - } - if (!string_list) - return; - -// DeleteAttributeValue(attribute); - - // First make a list of wxExpr strings - wxExpr *listExpr = new wxExpr(wxExprList); - wxNode *node = string_list->First(); - while (node) - { - char *string = (char *)node->Data(); - wxExpr *expr = new wxExpr(wxExprString, wxString(string)); - listExpr->Append(expr); - node = node->Next(); - } - - // Now make an (=, Att, Value) triple - wxExpr *patt = new wxExpr(wxExprWord, attribute); - wxExpr *pequals = new wxExpr(wxExprWord, _T("=")); - - wxExpr *listExpr2 = new wxExpr(wxExprList); - - listExpr2->Append(pequals); - listExpr2->Append(patt); - listExpr2->Append(listExpr); - - Append(listExpr2); -} - -bool wxExpr::GetAttributeValue(const wxString& att, int& var) const -{ - wxExpr *expr = AttributeValue(att); - - if (expr && (expr->Type() == wxExprInteger || expr->Type() == wxExprReal)) - { - var = (int)(expr->IntegerValue()); - return TRUE; - } - else - return FALSE; -} - -bool wxExpr::GetAttributeValue(const wxString& att, long& var) const -{ - wxExpr *expr = AttributeValue(att); - - if (expr && (expr->Type() == wxExprInteger || expr->Type() == wxExprReal)) - { - var = expr->IntegerValue(); - return TRUE; - } - else - return FALSE; -} - -bool wxExpr::GetAttributeValue(const wxString& att, float& var) const -{ - wxExpr *expr = AttributeValue(att); - if (expr && (expr->Type() == wxExprInteger || expr->Type() == wxExprReal)) - { - var = (float) expr->RealValue(); - return TRUE; - } - else - return FALSE; -} - -bool wxExpr::GetAttributeValue(const wxString& att, double& var) const -{ - wxExpr *expr = AttributeValue(att); - if (expr && (expr->Type() == wxExprInteger || expr->Type() == wxExprReal)) - { - var = expr->RealValue(); - return TRUE; - } - else - return FALSE; -} - -bool wxExpr::GetAttributeValue(const wxString& att, wxString& var) const // Word OR string -> string -{ - wxExpr *expr = AttributeValue(att); - if (expr && expr->Type() == wxExprWord) - { - var = expr->WordValue(); - return TRUE; - } - else if (expr && expr->Type() == wxExprString) - { - var = expr->StringValue(); - return TRUE; - } - else - return FALSE; -} - -bool wxExpr::GetAttributeValue(const wxString& att, wxExpr **var) const -{ - wxExpr *expr = AttributeValue(att); - if (expr) - { - *var = expr; - return TRUE; - } - else - return FALSE; -} - -bool wxExpr::GetAttributeValueStringList(const wxString& att, wxList *var) const -{ - wxExpr *expr = AttributeValue(att); - if (expr && expr->Type() == wxExprList) - { - wxExpr *string_expr = expr->value.first; - while (string_expr) - { - if (string_expr->Type() == wxExprString) - var->Append((wxObject *)copystring(string_expr->StringValue())); - - string_expr = string_expr->next; - } - return TRUE; - } - else - return FALSE; -} - -// Compatibility -void wxExpr::AssignAttributeValue(wxChar *att, wxChar **var) const -{ - wxString str; - if (GetAttributeValue(att, str)) - { - if (*var) - delete[] *var; - *var = copystring((const wxChar *) str); - } -} - -void wxExpr::WriteClause(ostream& stream) // Write this expression as a top-level clause -{ - if (type != wxExprList) - return; - - wxExpr *node = value.first; - if (node) - { - node->WriteExpr(stream); - stream << "("; - node = node->next; - bool first = TRUE; - while (node) - { - if (!first) - stream << " "; - node->WriteExpr(stream); - node = node->next; - if (node) stream << ",\n"; - first = FALSE; - } - stream << ").\n\n"; - } -} - -void wxExpr::WriteExpr(ostream& stream) // Write as any other subexpression -{ - // This seems to get round an optimizer bug when - // using Watcom C++ 10a in WIN32 compilation mode. - // If these lines not present, the type seems to be - // interpreted wrongly as an integer. - // I don't want to turn optimization off since it's needed - // for reading in files quickly. -#if defined(__WATCOMC__) - char buf[2]; - sprintf(buf, ""); -#endif - - switch (type) - { - case wxExprInteger: - { - stream << value.integer; - break; - } - case wxExprReal: - { - double f = value.real; -/* Now the parser can cope with this. - // Prevent printing in 'e' notation. Any better way? - if (fabs(f) < 0.00001) - f = 0.0; -*/ - char buf[40]; - sprintf(buf, "%.6g", f); - stream << buf; - break; - } - case wxExprString: - { - stream << "\""; - int i; - const wxWX2MBbuf val = wxConv_libc.cWX2MB(value.string); - int len = strlen(val); - for (i = 0; i < len; i++) - { - char ch = val[i]; - if (ch == '"' || ch == '\\') - stream << "\\"; - stream << ch; - } - - stream << "\""; - break; - } - case wxExprWord: - { - bool quote_it = FALSE; - const wxWX2MBbuf val = wxConv_libc.cWX2MB(value.word); - int len = strlen(val); - if ((len == 0) || (len > 0 && (val[0] > 64 && val[0] < 91))) - quote_it = TRUE; - else - { - int i; - for (i = 0; i < len; i++) - if ((!isalpha(val[i])) && (!isdigit(val[i])) && - (val[i] != '_')) - { quote_it = TRUE; i = len; } - } - - if (quote_it) - stream << "'"; - - stream << val; - - if (quote_it) - stream << "'"; - - break; - } - case wxExprList: - { - if (!value.first) - stream << "[]"; - else - { - wxExpr *expr = value.first; - - if ((expr->Type() == wxExprWord) && (wxStrcmp(expr->WordValue(), _T("=")) == 0)) - { - wxExpr *arg1 = expr->next; - wxExpr *arg2 = arg1->next; - arg1->WriteExpr(stream); - stream << " = "; - arg2->WriteExpr(stream); - } - else - { - stream << "["; - while (expr) - { - expr->WriteExpr(stream); - expr = expr->next; - if (expr) stream << ", "; - } - stream << "]"; - } - } - break; - } - case wxExprNull: break; - } -} - -void wxExpr::WriteLispExpr(ostream& stream) -{ - switch (type) - { - case wxExprInteger: - { - stream << value.integer; - break; - } - case wxExprReal: - { - stream << value.real; - break; - } - case wxExprString: - { - stream << "\"" << value.string << "\""; - break; - } - case wxExprWord: - { - stream << value.word; - break; - } - case wxExprList: - { - wxExpr *expr = value.first; - - stream << "("; - while (expr) - { - expr->WriteLispExpr(stream); - expr = expr->next; - if (expr) stream << " "; - } - - stream << ")"; - break; - } - case wxExprNull: break; - } -} - -/* - * wxExpr 'database' (list of expressions) - */ - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxExprDatabase, wxList) -#endif - -wxExprDatabase::wxExprDatabase(wxExprErrorHandler handler) -{ - position = NULL; - hash_table = NULL; - currentwxExprErrorHandler = handler; - noErrors = 0; -} - -wxExprDatabase::wxExprDatabase(wxExprType type, const wxString& attribute, int size, - wxExprErrorHandler handler) -{ - position = NULL; - attribute_to_hash = attribute; - if (type == wxExprString) - hash_table = new wxHashTable(wxKEY_STRING, size); - else if (type == wxExprInteger) - hash_table = new wxHashTable(wxKEY_INTEGER, size); - else hash_table = NULL; - - currentwxExprErrorHandler = handler; - noErrors = 0; -} - -wxExprDatabase::~wxExprDatabase(void) -{ - ClearDatabase(); - if (hash_table) - delete hash_table; -} - -void wxExprDatabase::BeginFind(void) // Initialise a search -{ - position = First(); -} - -wxExpr *wxExprDatabase::FindClause(long id) // Find a term based on an integer id attribute - // e.g. node(id=23, type=rectangle, ....). -{ - wxExpr *found = NULL; - while (position && !found) - { - wxExpr *term = (wxExpr *)position->Data(); - - if (term->Type() == wxExprList) - { - wxExpr *value = term->AttributeValue("id"); - if (value->Type() == wxExprInteger && value->IntegerValue() == id) - found = term; - } - position = position->Next(); - } - return found; -} - -// Find on basis of attribute/value pairs, e.g. type=rectangle -wxExpr *wxExprDatabase::FindClause(const wxString& word, const wxString& val) -{ - wxExpr *found = NULL; - while (position && !found) - { - wxExpr *term = (wxExpr *)position->Data(); - - if (term->Type() == wxExprList) - { - wxExpr *value = term->AttributeValue(word); - if ((value->Type() == wxExprWord && value->WordValue() == val) || - (value->Type() == wxExprString && value->StringValue() == val)) - found = term; - } - position = position->Next(); - } - return found; -} - -wxExpr *wxExprDatabase::FindClause(const wxString& word, long val) -{ - wxExpr *found = NULL; - while (position && !found) - { - wxExpr *term = (wxExpr *)position->Data(); - - if (term->Type() == wxExprList) - { - wxExpr *value = term->AttributeValue(word); - if ((value->Type() == wxExprInteger) && (value->IntegerValue() == val)) - found = term; - } - position = position->Next(); - } - return found; -} - -wxExpr *wxExprDatabase::FindClause(const wxString& word, double val) -{ - wxExpr *found = NULL; - while (position && !found) - { - wxExpr *term = (wxExpr *)position->Data(); - - if (term->Type() == wxExprList) - { - wxExpr *value = term->AttributeValue(word); - if ((value->Type() == wxExprReal) && (value->RealValue() == val)) - found = term; - } - position = position->Next(); - } - return found; -} - -wxExpr *wxExprDatabase::FindClauseByFunctor(const wxString& functor) -{ - wxExpr *found = NULL; - while (position && !found) - { - wxExpr *term = (wxExpr *)position->Data(); - - if (term->Type() == wxExprList) - { - if (term->Functor() == functor) - found = term; - } - position = position->Next(); - } - return found; -} - -// If hashing is on, must store in hash table too -void wxExprDatabase::Append(wxExpr *clause) -{ - wxList::Append((wxObject *)clause); - if (hash_table) - { - wxString functor(clause->Functor()); - wxExpr *expr = clause->AttributeValue(attribute_to_hash); - if (expr) - { - long functor_key = hash_table->MakeKey(WXSTRINGCAST functor); - long value_key = 0; - if (expr && expr->Type() == wxExprString) - { - value_key = hash_table->MakeKey(WXSTRINGCAST expr->StringValue()); - hash_table->Put(functor_key + value_key, WXSTRINGCAST expr->StringValue(), (wxObject *)clause); - } - else if (expr && expr->Type() == wxExprInteger) - { - value_key = expr->IntegerValue(); - hash_table->Put(functor_key + value_key, expr->IntegerValue(), (wxObject *)clause); - } - - } - } -} - -wxExpr *wxExprDatabase::HashFind(const wxString& functor, long value) const -{ - long key = hash_table->MakeKey(WXSTRINGCAST functor) + value; - - // The key alone isn't guaranteed to be unique: - // must supply value too. Let's assume the value of the - // id is going to be reasonably unique. - return (wxExpr *)hash_table->Get(key, value); -} - -wxExpr *wxExprDatabase::HashFind(const wxString& functor, const wxString& value) const -{ - long key = hash_table->MakeKey(WXSTRINGCAST functor) + hash_table->MakeKey(WXSTRINGCAST value); - return (wxExpr *)hash_table->Get(key, WXSTRINGCAST value); -} - -void wxExprDatabase::ClearDatabase(void) -{ - noErrors = 0; - wxNode *node = First(); - while (node) - { - wxExpr *expr = (wxExpr *)node->Data(); - delete expr; - delete node; - node = First(); - } - - if (hash_table) - hash_table->Clear(); -} - -bool wxExprDatabase::Read(const wxString& filename) -{ - noErrors = 0; - - FILE *f = fopen(filename.fn_str(), "r"); - if (f) - { - thewxExprDatabase = this; - - LexFromFile(f); - yyparse(); - fclose(f); - - wxExprCleanUp(); - return (noErrors == 0); - } - else - { - return FALSE; - } -} - -bool wxExprDatabase::ReadFromString(const wxString& buffer) -{ - noErrors = 0; - thewxExprDatabase = this; - - const wxWX2MBbuf buf = buffer.mb_str(); - LexFromString(MBSTRINGCAST buf); - yyparse(); - wxExprCleanUp(); - return (noErrors == 0); -} - -bool wxExprDatabase::Write(const wxString& fileName) -{ - ofstream str(MBSTRINGCAST fileName.mb_str()); - if (str.bad()) - return FALSE; - return Write(str); -} - -bool wxExprDatabase::Write(ostream& stream) -{ - noErrors = 0; - wxNode *node = First(); - while (node) - { - wxExpr *expr = (wxExpr *)node->Data(); - expr->WriteClause(stream); - node = node->Next(); - } - return (noErrors == 0); -} - -void wxExprDatabase::WriteLisp(ostream& stream) -{ - noErrors = 0; - wxNode *node = First(); - while (node) - { - wxExpr *expr = (wxExpr *)node->Data(); - expr->WriteLispExpr(stream); - stream << "\n\n"; - node = node->Next(); - } -} - -void add_expr(wxExpr * expr) -{ - thewxExprDatabase->Append(expr); -} - -// Checks functor -bool wxExprIsFunctor(wxExpr *expr, const wxString& functor) -{ - if (expr && (expr->Type() == wxExprList)) - { - wxExpr *first_expr = expr->value.first; - - if (first_expr && (first_expr->Type() == wxExprWord) && - (first_expr->WordValue() == functor)) - return TRUE; - else - return FALSE; - } - else - return FALSE; -} - -/* - * Called from parser - * - */ - -char *wxmake_integer(char *str) -{ - wxExpr *x = new wxExpr(atol(str)); - - return (char *)x; -} - -char *wxmake_real(char *str1, char *str2) -{ - char buf[50]; - - sprintf(buf, "%s.%s", str1, str2); - double f = (double)atof(buf); - wxExpr *x = new wxExpr(f); - - return (char *)x; -} - -// extern "C" double exp10(double); - -char *wxmake_exp(char *str1, char *str2) -{ - double mantissa = (double)atoi(str1); - double exponent = (double)atoi(str2); - - double d = mantissa * pow(10.0, exponent); - - wxExpr *x = new wxExpr(d); - - return (char *)x; -} - -char *wxmake_exp2(char *str1, char *str2, char *str3) -{ - char buf[50]; - - sprintf(buf, "%s.%s", str1, str2); - double mantissa = (double)atof(buf); - double exponent = (double)atoi(str3); - - double d = mantissa * pow(10.0, exponent); - - wxExpr *x = new wxExpr(d); - - return (char *)x; -} - -char *wxmake_word(char *str) -{ - wxExpr *x = new wxExpr(wxExprWord, str); - return (char *)x; -} - -char *wxmake_string(char *str) -{ - wxChar *s, *t; - int len, i; - const wxMB2WXbuf sbuf = wxConv_libc.cMB2WX(str); - -// str++; /* skip leading quote */ - len = wxStrlen(sbuf) - 1; /* ignore trailing quote */ - - s = new wxChar[len + 1]; - - t = s; - for(i=1; iInsert(car); - return (char *)cdr; -} - -void process_command(char * cexpr) -{ - wxExpr *expr = (wxExpr *)cexpr; - add_expr(expr); -} - -void syntax_error(char *WXUNUSED(s)) -{ - if (currentwxExprErrorHandler) - (void)(*(currentwxExprErrorHandler))(WXEXPR_ERROR_SYNTAX, "syntax error"); - if (thewxExprDatabase) thewxExprDatabase->noErrors += 1; -} - -#if 0 -#ifdef _WINDLL -// char *__cdecl strdup(const char *s) -WXDLLEXPORT char *strdup(const char *s) -{ - int len = strlen(s); - char *new_s = (char *)malloc(sizeof(char)*(len+1)); - strcpy(new_s, s); - return new_s; -} -#endif -#endif - diff --git a/src/common/zstream.cpp b/src/common/zstream.cpp deleted file mode 100644 index 90d3338161..0000000000 --- a/src/common/zstream.cpp +++ /dev/null @@ -1,191 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: zstream.cpp -// Purpose: Compressed stream classes -// Author: Guilhem Lavaux -// Modified by: -// Created: 11/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "zstream.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#include "wx/zstream.h" - -#if wxUSE_ZLIB - -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/log.h" -#include "../zlib/zlib.h" // don't change this, Robert - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#define ZSTREAM_BUFFER_SIZE 1024 - -////////////////////// -// wxZlibInputStream -////////////////////// - -wxZlibInputStream::wxZlibInputStream(wxInputStream& stream) - : wxFilterInputStream(stream) -{ - int err; - - // I need a private stream buffer. - m_i_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::read); - m_i_destroybuf = TRUE; - m_inflate = new z_stream_s; - - m_inflate->zalloc = (alloc_func)0; - m_inflate->zfree = (free_func)0; - m_inflate->opaque = (voidpf)0; - - err = inflateInit(m_inflate); - if (err != Z_OK) { - inflateEnd(m_inflate); - delete m_inflate; - return; - } - - m_z_buffer = new unsigned char[ZSTREAM_BUFFER_SIZE]; - m_z_size = ZSTREAM_BUFFER_SIZE; - - m_inflate->avail_in = 0; - m_inflate->next_in = NULL; -} - -wxZlibInputStream::~wxZlibInputStream() -{ - inflateEnd(m_inflate); - delete m_inflate; -} - -size_t wxZlibInputStream::OnSysRead(void *buffer, size_t size) -{ - int err; - - m_inflate->next_out = (unsigned char *)buffer; - m_inflate->avail_out = size; - - while (m_inflate->avail_out > 0) { - if (m_inflate->avail_in == 0) { - - m_parent_i_stream->Read(m_z_buffer, m_z_size); - m_inflate->next_in = m_z_buffer; - m_inflate->avail_in = m_parent_i_stream->LastRead(); - - if (m_parent_i_stream->LastError() != wxStream_NOERROR) - return (size - m_inflate->avail_in); - } - err = inflate(m_inflate, Z_FINISH); - if (err == Z_STREAM_END) - return (size - m_inflate->avail_in); - } - - return size-m_inflate->avail_in; -} - -////////////////////// -// wxZlibOutputStream -////////////////////// - -wxZlibOutputStream::wxZlibOutputStream(wxOutputStream& stream) - : wxFilterOutputStream(stream) -{ - int err; - - m_o_streambuf = new wxStreamBuffer(*this, wxStreamBuffer::write); - m_o_destroybuf = TRUE; - m_deflate = new z_stream_s; - - m_deflate->zalloc = (alloc_func)0; - m_deflate->zfree = (free_func)0; - m_deflate->opaque = (voidpf)0; - - err = deflateInit(m_deflate, Z_DEFAULT_COMPRESSION); - if (err != Z_OK) { - deflateEnd(m_deflate); - return; - } - - m_z_buffer = new unsigned char[ZSTREAM_BUFFER_SIZE]; - m_z_size = ZSTREAM_BUFFER_SIZE; - - m_deflate->avail_in = 0; - m_deflate->next_out = m_z_buffer; - m_deflate->avail_out = m_z_size; -} - -wxZlibOutputStream::~wxZlibOutputStream() -{ - int err; - - Sync(); - - err = deflate(m_deflate, Z_FINISH); - if (err != Z_STREAM_END) - { - wxLogDebug( _T("wxZlibOutputStream: an error occured while closing the stream.\n") ); - return; - } - - deflateEnd(m_deflate); - - delete[] m_z_buffer; -} - -void wxZlibOutputStream::Sync() -{ - int err; - - m_parent_o_stream->Write(m_z_buffer, m_z_size-m_deflate->avail_out); - m_deflate->next_out = m_z_buffer; - m_deflate->avail_out = m_z_size; - - err = deflate(m_deflate, Z_FULL_FLUSH); - if (err != Z_OK) { - return; - } - - m_parent_o_stream->Write(m_z_buffer, m_z_size-m_deflate->avail_out); - m_deflate->next_out = m_z_buffer; - m_deflate->avail_out = m_z_size; -} - -size_t wxZlibOutputStream::OnSysWrite(const void *buffer, size_t size) -{ - int err; - - m_deflate->next_in = (unsigned char *)buffer; - m_deflate->avail_in = size; - - while (m_deflate->avail_in > 0) { - - if (m_deflate->avail_out == 0) { - m_parent_o_stream->Write(m_z_buffer, m_z_size); - if (m_parent_o_stream->LastError() != wxStream_NOERROR) - return (size - m_deflate->avail_in); - - m_deflate->next_out = m_z_buffer; - m_deflate->avail_out = m_z_size; - } - - err = deflate(m_deflate, Z_NO_FLUSH); - if (err != Z_OK) - return (size - m_deflate->avail_in); - } - return size; -} - -#endif - - // wxUSE_ZLIB - diff --git a/src/cygnus.bat b/src/cygnus.bat deleted file mode 100644 index d641197665..0000000000 --- a/src/cygnus.bat +++ /dev/null @@ -1,10 +0,0 @@ -@ECHO OFF -SET MAKE_MODE=UNIX -rem SET PATH=g:\GNUWIN32\B20\CYGWIN~1\H-I586~1\BIN;%PATH% -PATH C:\WINDOWS;C:\WINDOWS\command;g:\GNUWIN32\B20\CYGWIN~1\H-I586~1\BIN;d:\wx\utils\tex2rtf\bin;g:\ast\astex;g:\ast\emtex\bin;g:\cvs;c:\bin -set BISON_SIMPLE=g:\gnuwin32\b20\cygwin-b20\share\bison.simple -set BISON_HAIRY=g:\gnuwin32\b20\cygwin-b20\share\bison.hairy -rem bash -rem 4DOS users only... -unalias make -alias makegnu make -f makefile.g95 diff --git a/src/generic/caret.cpp b/src/generic/caret.cpp deleted file mode 100644 index 59a9112c2c..0000000000 --- a/src/generic/caret.cpp +++ /dev/null @@ -1,139 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: generic/caret.h -// Purpose: generic wxCaret class -// Author: Vadim Zeitlin (original code by Robert Roebling) -// Modified by: -// Created: 25.05.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#if 0 //def __GNUG__ - #pragma implementation "caret.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif //WX_PRECOMP - -#include "wx/caret.h" - -// ---------------------------------------------------------------------------- -// global variables for this module -// ---------------------------------------------------------------------------- - -// the blink time (common to all carets for MSW compatibility) -static int gs_blinkTime = 500; // in milliseconds - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxCaret static functions and data -// ---------------------------------------------------------------------------- - - -int wxCaretBase::GetBlinkTime() -{ - return gs_blinkTime; -} - -void wxCaretBase::SetBlinkTime(int milliseconds) -{ - gs_blinkTime = milliseconds; -} - -// ---------------------------------------------------------------------------- -// initialization and destruction -// ---------------------------------------------------------------------------- - -void wxCaret::InitGeneric() -{ -} - -wxCaret::~wxCaret() -{ - if ( IsVisible() ) - { - // stop blinking - m_timer.Stop(); - } -} - -// ---------------------------------------------------------------------------- -// showing/hiding/moving the caret (base class interface) -// ---------------------------------------------------------------------------- - -void wxCaret::DoShow() -{ - m_timer.Start(GetBlinkTime()); - - m_blinkedOut = TRUE; - Blink(); -} - -void wxCaret::DoHide() -{ - m_timer.Stop(); - - if ( !m_blinkedOut ) - { - Blink(); - } -} - -void wxCaret::DoMove() -{ - if ( IsVisible() && !m_blinkedOut ) - { - Blink(); - } - //else: will be shown at the correct location next time it blinks -} - -// ---------------------------------------------------------------------------- -// drawing the caret -// ---------------------------------------------------------------------------- - -void wxCaret::Blink() -{ - m_blinkedOut = !m_blinkedOut; - - wxClientDC dc(GetWindow()); - if ( !m_blinkedOut ) - { - DoDraw(&dc); - } - else - { - // FIXME can't be less efficient than this... (+1 needed!) - wxRect rect(m_x, m_y, m_width + 1, m_height + 1); - GetWindow()->Refresh(FALSE, &rect); - } -} - -void wxCaret::DoDraw(wxDC *dc) -{ - dc->SetPen( *wxBLACK_PEN ); - dc->DrawLine( m_x, m_y, m_x+m_width, m_y ); - dc->DrawLine( m_x, m_y+m_height, m_x+m_width, m_y+m_height ); - dc->DrawLine( m_x+(m_width/2), m_y, m_x+(m_width/2), m_y+m_height ); -// dc->DrawLine( m_x+(m_width/2)+1, m_y, m_x+(m_width/2)+1, m_y+m_height ); -} diff --git a/src/generic/choicdgg.cpp b/src/generic/choicdgg.cpp deleted file mode 100644 index 3758f96020..0000000000 --- a/src/generic/choicdgg.cpp +++ /dev/null @@ -1,361 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choicdgg.cpp -// Purpose: Choice dialogs -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choicdgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/intl.h" -#endif - -#include "wx/generic/choicdgg.h" - -// Split message, using constraints to position controls -static void wxSplitMessage2(const wxChar *message, wxList *messageList, wxWindow *parent, wxRowColSizer *sizer) -{ - wxChar *copyMessage = copystring(message); - size_t i = 0; - size_t len = wxStrlen(copyMessage); - wxChar *currentMessage = copyMessage; - -// wxWindow *lastWindow = parent; - - while (i < len) { - while ((i < len) && (copyMessage[i] != _T('\n'))) i++; - if (i < len) copyMessage[i] = 0; - wxStaticText *mess = new wxStaticText(parent, -1, currentMessage); - -/* - wxLayoutConstraints *c = new wxLayoutConstraints; - c->left.SameAs (parent, wxLeft, 10); - c->top.SameAs (lastWindow, wxBottom, 5); - c->right.AsIs (); - c->height.AsIs (); - - mess->SetConstraints(c); -*/ - sizer->AddSizerChild(mess); - - messageList->Append(mess); - - currentMessage = copyMessage + i + 1; - } - delete[] copyMessage; -} - -wxString wxGetSingleChoice( const wxString& message, const wxString& caption, int n, - const wxString *choices, wxWindow *parent, - int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) -{ - wxSingleChoiceDialog dialog(parent, message, caption, n, choices); - if ( dialog.ShowModal() == wxID_OK ) - { - return dialog.GetStringSelection(); - } - else - return ""; -} - -// Overloaded for backward compatibility -wxString wxGetSingleChoice( const wxString& message, const wxString& caption, int n, - char *choices[], wxWindow *parent, - int x, int y, bool centre, - int width, int height ) -{ - wxString *strings = new wxString[n]; - int i; - for ( i = 0; i < n; i++) - { - strings[i] = choices[i]; - } - wxString ans(wxGetSingleChoice(message, caption, n, (const wxString *)strings, parent, - x, y, centre, width, height)); - delete[] strings; - return ans; -} - -int wxGetSingleChoiceIndex( const wxString& message, const wxString& caption, int n, - const wxString *choices, wxWindow *parent, - int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) -{ - wxSingleChoiceDialog dialog(parent, message, caption, n, choices); - if ( dialog.ShowModal() == wxID_OK ) - { - return dialog.GetSelection(); - } - else - return -1; -} - -// Overloaded for backward compatibility -int wxGetSingleChoiceIndex( const wxString& message, const wxString& caption, int n, - wxChar *choices[], wxWindow *parent, - int x, int y, bool centre, - int width, int height ) -{ - wxString *strings = new wxString[n]; - int i; - for ( i = 0; i < n; i++) - { - strings[i] = choices[i]; - } - int ans = wxGetSingleChoiceIndex(message, caption, n, (const wxString *)strings, parent, - x, y, centre, width, height); - delete[] strings; - return ans; -} - -wxChar *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, - const wxString *choices, wxChar **client_data, wxWindow *parent, - int WXUNUSED(x), int WXUNUSED(y), bool WXUNUSED(centre), - int WXUNUSED(width), int WXUNUSED(height) ) -{ - wxSingleChoiceDialog dialog(parent, message, caption, n, choices, client_data); - if ( dialog.ShowModal() == wxID_OK ) - { - return dialog.GetSelectionClientData(); - } - else - return NULL; -} - -// Overloaded for backward compatibility -wxChar *wxGetSingleChoiceData( const wxString& message, const wxString& caption, int n, - wxChar *choices[], wxChar **client_data, wxWindow *parent, - int x, int y, bool centre, - int width, int height ) -{ - wxString *strings = new wxString[n]; - int i; - for ( i = 0; i < n; i++) - { - strings[i] = choices[i]; - } - wxChar *data = wxGetSingleChoiceData(message, caption, n, (const wxString *)strings, client_data, parent, - x, y, centre, width, height); - delete[] strings; - return data; -} - - -/* Multiple choice dialog contributed by Robert Cowell - * - -The new data passed are in the "int nsel" and "int * selection" - -The idea is to make a multiple selection from list of strings. -The returned value is the total number selected. initialily there -are nsel selected, with indices stored in -selection[0],...,selection[nsel-1] which appear highlighted to -begin with. On exit with value i -selection[0..i-1] contains the indices of the selected items. -(Some prior selectecions might be deselected.) -Thus selection must be as big as choices, in case all items are -selected. - -*/ -/* -int wxGetMultipleChoice(const wxString& message, const wxString& caption, - int n, const wxString *choices, - int nsel, int * selection, - wxWindow *parent , int x , int y, bool centre, - int width, int height) -{ - return -1; -} -*/ - -// wxSingleChoiceDialog - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxSingleChoiceDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK) - EVT_LISTBOX_DCLICK(wxID_LISTBOX, wxSingleChoiceDialog::OnListBoxDClick) -END_EVENT_TABLE() - -IMPLEMENT_CLASS(wxSingleChoiceDialog, wxDialog) -#endif - -wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, const wxString& message, const wxString& caption, - int n, const wxString *choices, wxChar **clientData, long style, const wxPoint& pos): - wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL|wxTAB_TRAVERSAL) -{ - Create(parent, message, caption, n, choices, clientData, style); -} - -wxSingleChoiceDialog::wxSingleChoiceDialog(wxWindow *parent, const wxString& message, const wxString& caption, - const wxStringList& choices, wxChar **clientData, long style, const wxPoint& pos): - wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) -{ - Create(parent, message, caption, choices, clientData, style); -} - -bool wxSingleChoiceDialog::Create(wxWindow *parent, const wxString& message, const wxString& caption, - const wxStringList& choices, wxChar **clientData, long style, const wxPoint& pos) -{ - wxString *strings = new wxString[choices.Number()]; - int i; - for ( i = 0; i < choices.Number(); i++) - { - strings[i] = (char *)choices.Nth(i)->Data(); - } - bool ans = Create(parent, message, caption, choices.Number(), strings, clientData, style, pos); - delete[] strings; - return ans; -} - -bool wxSingleChoiceDialog::Create( wxWindow *WXUNUSED(parent), const wxString& message, - const wxString& WXUNUSED(caption), int n, - const wxString *choices, wxChar **clientData, long style, - const wxPoint& WXUNUSED(pos) ) -{ - m_dialogStyle = style; - m_selection = 0; - m_stringSelection = _T(""); - m_clientData = NULL; - - wxBeginBusyCursor(); - - wxSizer *topSizer = new wxSizer(this, wxSizerShrink); - topSizer->SetBorder(10, 10); - - wxRowColSizer *messageSizer = new wxRowColSizer(topSizer, wxSIZER_COLS, 100); - messageSizer->SetName(_T("messageSizer")); - -// bool centre = ((style & wxCENTRE) == wxCENTRE); - - wxList messageList; - wxSplitMessage2(message, &messageList, this, messageSizer); - - // Insert a spacer - wxSpacingSizer *spacingSizer = new wxSpacingSizer(topSizer, wxBelow, messageSizer, 10); - - wxListBox *listBox = new wxListBox(this, wxID_LISTBOX, wxPoint(-1, -1), wxSize(240, 160), - n, choices); - listBox->SetSelection(m_selection); - if ( clientData ) - { - int i; - for ( i = 0; i < n; i++) - { - listBox->SetClientData(i, clientData[i]); - } - } - - wxRowColSizer *listBoxSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS); - listBoxSizer->AddSizerChild(listBox); - listBoxSizer->SetName(_T("listBoxSizer")); - - // Create constraints for the text sizer - wxLayoutConstraints *textC = new wxLayoutConstraints; - textC->left.SameAs (messageSizer, wxLeft); - textC->top.Below (spacingSizer); - listBoxSizer->SetConstraints(textC); - - // Insert another spacer - wxSpacingSizer *spacingSizer2 = new wxSpacingSizer(topSizer, wxBelow, listBoxSizer, 10); - spacingSizer->SetName(_T("spacingSizer2")); - - // Insert a sizer for the buttons - wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS); - buttonSizer->SetName(_T("buttonSizer")); - buttonSizer->SetSpacing(12,0); - - // Specify constraints for the button sizer - wxLayoutConstraints *c = new wxLayoutConstraints; - c->width.AsIs (); - c->height.AsIs (); - c->top.Below (spacingSizer2); - c->centreX.SameAs (listBoxSizer, wxCentreX); - buttonSizer->SetConstraints(c); - - wxButton *ok = NULL; - wxButton *cancel = NULL; - - if (style & wxOK) { - ok = new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxSize(75,-1) ); - buttonSizer->AddSizerChild(ok); - } - - if (style & wxCANCEL) { - cancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(75,-1)); - buttonSizer->AddSizerChild(cancel); - } - - if (ok) - { - ok->SetDefault(); - ok->SetFocus(); - } - - Layout(); - Centre(wxBOTH); - - wxEndBusyCursor(); - - return TRUE; -} - -// Set the selection -void wxSingleChoiceDialog::SetSelection(int sel) -{ - wxListBox *listBox = (wxListBox *)FindWindow(wxID_LISTBOX); - if (listBox) - { - listBox->SetSelection(sel); - } - m_selection = sel; -} - -void wxSingleChoiceDialog::OnOK(wxCommandEvent& WXUNUSED(event)) -{ - wxListBox *listBox = (wxListBox *)FindWindow(wxID_LISTBOX); - if ( listBox ) - { - m_selection = listBox->GetSelection(); - m_stringSelection = listBox->GetStringSelection(); - m_clientData = (wxChar*)listBox->GetClientData(m_selection); - } - - EndModal(wxID_OK); -} - -void wxSingleChoiceDialog::OnListBoxDClick(wxCommandEvent& WXUNUSED(event)) -{ - wxListBox *listBox = (wxListBox *)FindWindow(wxID_LISTBOX); - if ( listBox ) - { - m_selection = listBox->GetSelection(); - m_stringSelection = listBox->GetStringSelection(); - m_clientData = (wxChar*)listBox->GetClientData(m_selection); - } - - EndModal(wxID_OK); -} - - diff --git a/src/generic/colrdlgg.cpp b/src/generic/colrdlgg.cpp deleted file mode 100644 index 5e84552d4a..0000000000 --- a/src/generic/colrdlgg.cpp +++ /dev/null @@ -1,487 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colrdlgg.cpp -// Purpose: Choice dialogs -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colrdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/dcclient.h" -#include "wx/slider.h" -#endif - -#include "wx/generic/colrdlgg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog) - -BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog) - EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom) - EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider) - EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider) - EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider) - EVT_PAINT(wxGenericColourDialog::OnPaint) - EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent) - EVT_CLOSE(wxGenericColourDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -/* - * Generic wxColourDialog - */ - -#define NUM_COLS 48 -static wxString wxColourDialogNames[NUM_COLS]={_T("ORANGE"), - _T("GOLDENROD"), - _T("WHEAT"), - _T("SPRING GREEN"), - _T("SKY BLUE"), - _T("SLATE BLUE"), - _T("MEDIUM VIOLET RED"), - _T("PURPLE"), - - _T("RED"), - _T("YELLOW"), - _T("MEDIUM SPRING GREEN"), - _T("PALE GREEN"), - _T("CYAN"), - _T("LIGHT STEEL BLUE"), - _T("ORCHID"), - _T("LIGHT MAGENTA"), - - _T("BROWN"), - _T("YELLOW"), - _T("GREEN"), - _T("CADET BLUE"), - _T("MEDIUM BLUE"), - _T("MAGENTA"), - _T("MAROON"), - _T("ORANGE RED"), - - _T("FIREBRICK"), - _T("CORAL"), - _T("FOREST GREEN"), - _T("AQUAMARINE"), - _T("BLUE"), - _T("NAVY"), - _T("THISTLE"), - _T("MEDIUM VIOLET RED"), - - _T("INDIAN RED"), - _T("GOLD"), - _T("MEDIUM SEA GREEN"), - _T("MEDIUM BLUE"), - _T("MIDNIGHT BLUE"), - _T("GREY"), - _T("PURPLE"), - _T("KHAKI"), - - _T("BLACK"), - _T("MEDIUM FOREST GREEN"), - _T("KHAKI"), - _T("DARK GREY"), - _T("SEA GREEN"), - _T("LIGHT GREY"), - _T("MEDIUM SLATE BLUE"), - _T("WHITE") - }; - -wxGenericColourDialog::wxGenericColourDialog(void) -{ - dialogParent = NULL; - whichKind = 1; - colourSelection = 0; -} - -wxGenericColourDialog::wxGenericColourDialog(wxWindow *parent, wxColourData *data): - wxDialog(parent, -1, "Colour", wxPoint(0, 0), wxSize(900, 900), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) -{ - whichKind = 1; - colourSelection = 0; - Create(parent, data); -} - -wxGenericColourDialog::~wxGenericColourDialog(void) -{ -} - -void wxGenericColourDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - EndModal(wxID_CANCEL); -} - -bool wxGenericColourDialog::Create(wxWindow *parent, wxColourData *data) -{ - dialogParent = parent; - - if (data) - colourData = *data; - - InitializeColours(); - CalculateMeasurements(); - CreateWidgets(); - - return TRUE; -} - -int wxGenericColourDialog::ShowModal(void) -{ - return wxDialog::ShowModal(); -} - - -// Internal functions -void wxGenericColourDialog::OnMouseEvent(wxMouseEvent& event) -{ - if (event.ButtonDown(1)) - { - int x = (int)event.GetX(); - int y = (int)event.GetY(); - - if ((x >= standardColoursRect.x && x <= (standardColoursRect.x + standardColoursRect.width)) && - (y >= standardColoursRect.y && y <= (standardColoursRect.y + standardColoursRect.height))) - { - int selX = (int)(x - standardColoursRect.x)/(smallRectangleSize.x + gridSpacing); - int selY = (int)(y - standardColoursRect.y)/(smallRectangleSize.y + gridSpacing); - int ptr = (int)(selX + selY*8); - OnBasicColourClick(ptr); - } - else if ((x >= customColoursRect.x && x <= (customColoursRect.x + customColoursRect.width)) && - (y >= customColoursRect.y && y <= (customColoursRect.y + customColoursRect.height))) - { - int selX = (int)(x - customColoursRect.x)/(smallRectangleSize.x + gridSpacing); - int selY = (int)(y - customColoursRect.y)/(smallRectangleSize.y + gridSpacing); - int ptr = (int)(selX + selY*8); - OnCustomColourClick(ptr); - } - } -} - -void wxGenericColourDialog::OnPaint(wxPaintEvent& event) -{ - wxDialog::OnPaint(event); - - wxPaintDC dc(this); - - PaintBasicColours(dc); - PaintCustomColours(dc); - PaintCustomColour(dc); - PaintHighlight(dc, TRUE); -} - -void wxGenericColourDialog::CalculateMeasurements(void) -{ - smallRectangleSize.x = 18; - smallRectangleSize.y = 14; - customRectangleSize.x = 40; - customRectangleSize.y = 40; - - gridSpacing = 6; - sectionSpacing = 15; - - standardColoursRect.x = 10; - standardColoursRect.y = 15; - standardColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing); - standardColoursRect.height = (6*smallRectangleSize.y) + (5*gridSpacing); - - customColoursRect.x = standardColoursRect.x; - customColoursRect.y = standardColoursRect.y + standardColoursRect.height + 20; - customColoursRect.width = (8*smallRectangleSize.x) + (7*gridSpacing); - customColoursRect.height = (2*smallRectangleSize.y) + (1*gridSpacing); - - singleCustomColourRect.x = customColoursRect.width + customColoursRect.x + sectionSpacing; - singleCustomColourRect.y = 80; - singleCustomColourRect.width = customRectangleSize.x; - singleCustomColourRect.height = customRectangleSize.y; - - okButtonX = 10; - customButtonX = singleCustomColourRect.x ; - buttonY = customColoursRect.y + customColoursRect.height + 10; -} - -void wxGenericColourDialog::CreateWidgets(void) -{ - wxBeginBusyCursor(); - - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(okButtonX, buttonY), wxSize(75,-1) ); - int bw, bh; - okButton->GetSize(&bw, &bh); - - (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(okButtonX + bw + 20, buttonY), wxSize(75,-1)); - (void) new wxButton(this, wxID_ADD_CUSTOM, _("Add to custom colours"), - wxPoint(customButtonX, buttonY)); - - int sliderX = singleCustomColourRect.x + singleCustomColourRect.width + sectionSpacing; -#ifdef __X__ - int sliderSpacing = 75; - int sliderHeight = 160; -#else - int sliderSpacing = 45; - int sliderHeight = 160; -#endif - - redSlider = new wxSlider(this, wxID_RED_SLIDER, 0, 0, 255, - wxPoint(sliderX, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); - greenSlider = new wxSlider(this, wxID_GREEN_SLIDER, 0, 0, 255, - wxPoint(sliderX + sliderSpacing, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); - blueSlider = new wxSlider(this, wxID_BLUE_SLIDER, 0, 0, 255, - wxPoint(sliderX + 2*sliderSpacing, 10), wxSize(-1, sliderHeight), wxVERTICAL|wxSL_LABELS); - - SetClientSize(sliderX + 3*sliderSpacing, buttonY + 40); - okButton->SetDefault(); - - Centre(wxBOTH); - - wxEndBusyCursor(); -} - -void wxGenericColourDialog::InitializeColours(void) -{ - int i; - for (i = 0; i < 48; i++) - { - wxColour *col = wxTheColourDatabase->FindColour(wxColourDialogNames[i]); - if (col) - standardColours[i].Set(col->Red(), col->Green(), col->Blue()); - else - standardColours[i].Set(0, 0, 0); - } - - for (i = 0; i < 16; i++) - customColours[i] = -/* -#ifndef __VMS__ - (wxColour&) -#endif -*/ - colourData.GetCustomColour(i); - - singleCustomColour.Set(0, 0, 0); -} - -void wxGenericColourDialog::PaintBasicColours(wxDC& dc) -{ - dc.BeginDrawing(); - - int i; - for (i = 0; i < 6; i++) - { - int j; - for (j = 0; j < 8; j++) - { - int ptr = i*8 + j; - - int x = (j*(smallRectangleSize.x+gridSpacing) + standardColoursRect.x); - int y = (i*(smallRectangleSize.y+gridSpacing) + standardColoursRect.y); - - dc.SetPen(*wxBLACK_PEN); - wxBrush brush(standardColours[ptr], wxSOLID); - dc.SetBrush(brush); - - dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); - } - } - dc.EndDrawing(); -} - -void wxGenericColourDialog::PaintCustomColours(wxDC& dc) -{ - dc.BeginDrawing(); - - int i; - for (i = 0; i < 2; i++) - { - int j; - for (j = 0; j < 8; j++) - { - int ptr = i*8 + j; - - int x = (j*(smallRectangleSize.x+gridSpacing)) + customColoursRect.x; - int y = (i*(smallRectangleSize.y+gridSpacing)) + customColoursRect.y; - - dc.SetPen(*wxBLACK_PEN); - - wxBrush brush(customColours[ptr], wxSOLID); - dc.SetBrush(brush); - - dc.DrawRectangle( x, y, smallRectangleSize.x, smallRectangleSize.y); - } - } - dc.EndDrawing(); -} - -void wxGenericColourDialog::PaintHighlight(wxDC& dc, bool draw) -{ - dc.BeginDrawing(); - - // Number of pixels bigger than the standard rectangle size - // for drawing a highlight - int deltaX = 2; - int deltaY = 2; - - if (whichKind == 1) - { - // Standard colours - int y = (int)(colourSelection / 8); - int x = (int)(colourSelection - (y*8)); - - x = (x*(smallRectangleSize.x + gridSpacing) + standardColoursRect.x) - deltaX; - y = (y*(smallRectangleSize.y + gridSpacing) + standardColoursRect.y) - deltaY; - - if (draw) - dc.SetPen(*wxBLACK_PEN); - else - dc.SetPen(*wxLIGHT_GREY_PEN); - - dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY))); - } - else - { - // User-defined colours - int y = (int)(colourSelection / 8); - int x = (int)(colourSelection - (y*8)); - - x = (x*(smallRectangleSize.x + gridSpacing) + customColoursRect.x) - deltaX; - y = (y*(smallRectangleSize.y + gridSpacing) + customColoursRect.y) - deltaY; - - if (draw) - dc.SetPen(*wxBLACK_PEN); - else - dc.SetPen(*wxLIGHT_GREY_PEN); - - dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.DrawRectangle( x, y, (smallRectangleSize.x + (2*deltaX)), (smallRectangleSize.y + (2*deltaY))); - } - - dc.EndDrawing(); -} - -void wxGenericColourDialog::PaintCustomColour(wxDC& dc) -{ - dc.BeginDrawing(); - - dc.SetPen(*wxBLACK_PEN); - - wxBrush *brush = new wxBrush(singleCustomColour, wxSOLID); - dc.SetBrush(*brush); - - dc.DrawRectangle( singleCustomColourRect.x, singleCustomColourRect.y, - customRectangleSize.x, customRectangleSize.y); - - dc.SetBrush(wxNullBrush); - delete brush; - - dc.EndDrawing(); -} - -void wxGenericColourDialog::OnBasicColourClick(int which) -{ - wxClientDC dc(this); - - PaintHighlight(dc, FALSE); - whichKind = 1; - colourSelection = which; - colourData.SetColour(standardColours[colourSelection]); - - PaintHighlight(dc, TRUE); -} - -void wxGenericColourDialog::OnCustomColourClick(int which) -{ - wxClientDC dc(this); - PaintHighlight(dc, FALSE); - whichKind = 2; - colourSelection = which; - colourData.SetColour(customColours[colourSelection]); - - PaintHighlight(dc, TRUE); -} - -/* -void wxGenericColourDialog::OnOk(void) -{ - Show(FALSE); -} - -void wxGenericColourDialog::OnCancel(void) -{ - colourDialogCancelled = TRUE; - Show(FALSE); -} -*/ - -void wxGenericColourDialog::OnAddCustom(wxCommandEvent& WXUNUSED(event)) -{ - wxClientDC dc(this); - if (whichKind != 2) - { - PaintHighlight(dc, FALSE); - whichKind = 2; - colourSelection = 0; - PaintHighlight(dc, TRUE); - } - - customColours[colourSelection].Set(singleCustomColour.Red(), singleCustomColour.Green(), singleCustomColour.Blue()); - colourData.SetColour(customColours[colourSelection]); - colourData.SetCustomColour(colourSelection, customColours[colourSelection]); - - PaintCustomColours(dc); -} - -void wxGenericColourDialog::OnRedSlider(wxCommandEvent& WXUNUSED(event)) -{ - if (!redSlider) - return; - - wxClientDC dc(this); - singleCustomColour.Set(redSlider->GetValue(), singleCustomColour.Green(), singleCustomColour.Blue()); - PaintCustomColour(dc); -} - -void wxGenericColourDialog::OnGreenSlider(wxCommandEvent& WXUNUSED(event)) -{ - if (!greenSlider) - return; - - wxClientDC dc(this); - singleCustomColour.Set(singleCustomColour.Red(), greenSlider->GetValue(), singleCustomColour.Blue()); - PaintCustomColour(dc); -} - -void wxGenericColourDialog::OnBlueSlider(wxCommandEvent& WXUNUSED(event)) -{ - if (!blueSlider) - return; - - wxClientDC dc(this); - singleCustomColour.Set(singleCustomColour.Red(), singleCustomColour.Green(), blueSlider->GetValue()); - PaintCustomColour(dc); -} - - diff --git a/src/generic/dcpsg.cpp b/src/generic/dcpsg.cpp deleted file mode 100644 index f21c2e82a9..0000000000 --- a/src/generic/dcpsg.cpp +++ /dev/null @@ -1,2269 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcpsg.cpp -// Purpose: Generic wxPostScriptDC implementation -// Author: Julian Smart, Robert Roebling, Markus Holzhem -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/defs.h" -#endif // WX_PRECOMP - -#if wxUSE_POSTSCRIPT - -#include "wx/dcmemory.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/filedlg.h" -#include "wx/app.h" -#include "wx/msgdlg.h" -#include "wx/image.h" -#include "wx/log.h" -#include "wx/generic/dcpsg.h" -#include "wx/generic/prntdlgg.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/radiobox.h" -#include "wx/textctrl.h" -#include "wx/prntbase.h" -#include "wx/paper.h" - -#include - -#ifdef __WXMSW__ - -#ifdef DrawText -#undef DrawText -#endif - -#ifdef StartDoc -#undef StartDoc -#endif - -#ifdef GetCharWidth -#undef GetCharWidth -#endif - -#ifdef FindWindow -#undef FindWindow -#endif - -#endif - -//----------------------------------------------------------------------------- -// start and end of document/page -//----------------------------------------------------------------------------- - -static const char *wxPostScriptHeaderEllipse = "\ -/ellipsedict 8 dict def\n\ -ellipsedict /mtrx matrix put\n\ -/ellipse {\n\ - ellipsedict begin\n\ - /endangle exch def\n\ - /startangle exch def\n\ - /yrad exch def\n\ - /xrad exch def\n\ - /y exch def\n\ - /x exch def\n\ - /savematrix mtrx currentmatrix def\n\ - x y translate\n\ - xrad yrad scale\n\ - 0 0 1 startangle endangle arc\n\ - savematrix setmatrix\n\ - end\n\ - } def\n\ -"; - -static const char *wxPostScriptHeaderEllipticArc= "\ -/ellipticarcdict 8 dict def\n\ -ellipticarcdict /mtrx matrix put\n\ -/ellipticarc\n\ -{ ellipticarcdict begin\n\ - /do_fill exch def\n\ - /endangle exch def\n\ - /startangle exch def\n\ - /yrad exch def\n\ - /xrad exch def \n\ - /y exch def\n\ - /x exch def\n\ - /savematrix mtrx currentmatrix def\n\ - x y translate\n\ - xrad yrad scale\n\ - do_fill { 0 0 moveto } if\n\ - 0 0 1 startangle endangle arc\n\ - savematrix setmatrix\n\ - do_fill { fill }{ stroke } ifelse\n\ - end\n\ -} def\n"; - -static const char *wxPostScriptHeaderSpline = "\ -/DrawSplineSection {\n\ - /y3 exch def\n\ - /x3 exch def\n\ - /y2 exch def\n\ - /x2 exch def\n\ - /y1 exch def\n\ - /x1 exch def\n\ - /xa x1 x2 x1 sub 0.666667 mul add def\n\ - /ya y1 y2 y1 sub 0.666667 mul add def\n\ - /xb x3 x2 x3 sub 0.666667 mul add def\n\ - /yb y3 y2 y3 sub 0.666667 mul add def\n\ - x1 y1 lineto\n\ - xa ya xb yb x3 y3 curveto\n\ - } def\n\ -"; - -static const char *wxPostScriptHeaderColourImage = "\ -% define 'colorimage' if it isn't defined\n\ -% ('colortogray' and 'mergeprocs' come from xwd2ps\n\ -% via xgrab)\n\ -/colorimage where % do we know about 'colorimage'?\n\ - { pop } % yes: pop off the 'dict' returned\n\ - { % no: define one\n\ - /colortogray { % define an RGB->I function\n\ - /rgbdata exch store % call input 'rgbdata'\n\ - rgbdata length 3 idiv\n\ - /npixls exch store\n\ - /rgbindx 0 store\n\ - 0 1 npixls 1 sub {\n\ - grays exch\n\ - rgbdata rgbindx get 20 mul % Red\n\ - rgbdata rgbindx 1 add get 32 mul % Green\n\ - rgbdata rgbindx 2 add get 12 mul % Blue\n\ - add add 64 idiv % I = .5G + .31R + .18B\n\ - put\n\ - /rgbindx rgbindx 3 add store\n\ - } for\n\ - grays 0 npixls getinterval\n\ - } bind def\n\ -\n\ - % Utility procedure for colorimage operator.\n\ - % This procedure takes two procedures off the\n\ - % stack and merges them into a single procedure.\n\ -\n\ - /mergeprocs { % def\n\ - dup length\n\ - 3 -1 roll\n\ - dup\n\ - length\n\ - dup\n\ - 5 1 roll\n\ - 3 -1 roll\n\ - add\n\ - array cvx\n\ - dup\n\ - 3 -1 roll\n\ - 0 exch\n\ - putinterval\n\ - dup\n\ - 4 2 roll\n\ - putinterval\n\ - } bind def\n\ -\n\ - /colorimage { % def\n\ - pop pop % remove 'false 3' operands\n\ - {colortogray} mergeprocs\n\ - image\n\ - } bind def\n\ - } ifelse % end of 'false' case\n\ -"; - -static char wxPostScriptHeaderReencodeISO1[] = - "\n/reencodeISO {\n" -"dup dup findfont dup length dict begin\n" -"{ 1 index /FID ne { def }{ pop pop } ifelse } forall\n" -"/Encoding ISOLatin1Encoding def\n" -"currentdict end definefont\n" -"} def\n" -"/ISOLatin1Encoding [\n" -"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n" -"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n" -"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n" -"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n" -"/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright\n" -"/parenleft/parenright/asterisk/plus/comma/minus/period/slash\n" -"/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon\n" -"/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N\n" -"/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright\n" -"/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m\n" -"/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde\n" -"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n" -"/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef\n" -"/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve\n" -"/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut\n"; - -static char wxPostScriptHeaderReencodeISO2[] = -"/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar\n" -"/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot\n" -"/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior\n" -"/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine\n" -"/guillemotright/onequarter/onehalf/threequarters/questiondown\n" -"/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla\n" -"/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex\n" -"/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis\n" -"/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute\n" -"/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis\n" -"/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave\n" -"/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex\n" -"/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis\n" -"/yacute/thorn/ydieresis\n" - "] def\n\n"; - -//------------------------------------------------------------------------------- -// wxPostScriptDC -//------------------------------------------------------------------------------- - -wxPostScriptDC::wxPostScriptDC () -{ - m_pstream = (ofstream*) NULL; - - m_currentRed = 0; - m_currentGreen = 0; - m_currentBlue = 0; - - m_pageNumber = 0; - - m_clipping = FALSE; - - m_underlinePosition = 0.0; - m_underlineThickness = 0.0; - - m_signX = 1; // default x-axis left to right - m_signY = -1; // default y-axis bottom up -> top down - - // Compatibility only - m_printData = * wxThePrintSetupData; -} - -wxPostScriptDC::wxPostScriptDC (const wxString& file, bool interactive, wxWindow *parent) -{ - m_pstream = (ofstream*) NULL; - - m_currentRed = 0; - m_currentGreen = 0; - m_currentBlue = 0; - - m_pageNumber = 0; - - m_clipping = FALSE; - - m_underlinePosition = 0.0; - m_underlineThickness = 0.0; - - m_signX = 1; // default x-axis left to right - m_signY = -1; // default y-axis bottom up -> top down - - Create(file, interactive, parent); -} - -bool wxPostScriptDC::Create(const wxString& file, bool interactive, wxWindow *parent) -{ - m_isInteractive = interactive; - - m_title = ""; - m_printData.SetFilename(file); - -#ifdef __WXMSW__ - // Can only send to file in Windows - m_printData.SetPrintMode(wxPRINT_MODE_FILE); -#endif - - if (m_isInteractive) - { - if ((m_ok = PrinterDialog (parent) ) == FALSE) return FALSE; - } - else - { - m_ok = TRUE; - } - - return m_ok; -} - -wxPostScriptDC::wxPostScriptDC (const wxPrintData& printData) -{ - m_pstream = (ofstream*) NULL; - - m_currentRed = 0; - m_currentGreen = 0; - m_currentBlue = 0; - - m_pageNumber = 0; - - m_clipping = FALSE; - - m_underlinePosition = 0.0; - m_underlineThickness = 0.0; - - m_signX = 1; // default x-axis left to right - m_signY = -1; // default y-axis bottom up -> top down - - m_printData = printData; - - m_ok = TRUE; -} - -wxPostScriptDC::~wxPostScriptDC () -{ - if (m_pstream) delete m_pstream; -} - -bool wxPostScriptDC::Ok() const -{ - return m_ok; -} - -// This dialog is deprecated now: use wxGenericPrintDialog or the printing framework -bool wxPostScriptDC::PrinterDialog(wxWindow *parent) -{ - wxPostScriptPrintDialog dialog( parent, _("Printer Settings"), wxPoint(150, 150), wxSize(400, 400), - wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL ); - m_ok = (dialog.ShowModal () == wxID_OK); - - if (!m_ok) return FALSE; - - if ((m_printData.GetFilename() == "") && - (m_printData.GetPrintMode() == wxPRINT_MODE_PREVIEW || - m_printData.GetPrintMode() == wxPRINT_MODE_PRINTER)) - { -// steve, 05.09.94 -#ifdef __VMS__ - m_printData.SetFilename("preview"); -#else - // For PS_PRINTER action this depends on a Unix-style print spooler - // since the wx_printer_file can be destroyed during a session - // @@@ TODO: a Windows-style answer for non-Unix - wxChar userId[256]; - wxGetUserId (userId, sizeof (userId) / sizeof (char)); - wxChar tmp[256]; - wxStrcpy (tmp, _T("/tmp/preview_")); - wxStrcat (tmp, userId); - m_printData.SetFilename(tmp); -#endif - wxChar tmp2[256]; - wxStrcpy(tmp2, m_printData.GetFilename()); - wxStrcat (tmp2, _T(".ps")); - m_printData.SetFilename(tmp2); - } - else if ((m_printData.GetFilename() == _T("")) && (m_printData.GetPrintMode() == wxPRINT_MODE_FILE)) - { - wxString file = wxSaveFileSelector (_("PostScript"), _T("ps")); - if ( file.IsEmpty() ) - { - m_ok = FALSE; - return FALSE; - } - - m_printData.SetFilename(file); - m_ok = TRUE; - } - - return m_ok; -} - -void wxPostScriptDC::SetClippingRegion (long x, long y, long w, long h) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (m_clipping) return; - - wxDC::SetClippingRegion( x, y, w, h ); - - m_clipping = TRUE; - *m_pstream << "gsave\n" - << "newpath\n" - << XLOG2DEV(x) << " " << YLOG2DEV(y) << " moveto\n" - << XLOG2DEV(x+w) << " " << YLOG2DEV(y) << " lineto\n" - << XLOG2DEV(x+w) << " " << YLOG2DEV(y+h) << " lineto\n" - << XLOG2DEV(x) << " " << YLOG2DEV(y+h) << " lineto\n" - << "closepath clip newpath\n"; -} - -void wxPostScriptDC::SetClippingRegion( const wxRegion &WXUNUSED(region) ) -{ -} - -void wxPostScriptDC::DestroyClippingRegion() -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - wxDC::DestroyClippingRegion(); - - if (m_clipping) - { - m_clipping = FALSE; - *m_pstream << "grestore\n"; - } -} - -void wxPostScriptDC::Clear() -{ - wxFAIL_MSG( _T("wxPostScriptDC::Clear not implemented.") ); -} - -void wxPostScriptDC::DoFloodFill (long WXUNUSED(x), long WXUNUSED(y), const wxColour &WXUNUSED(col), int WXUNUSED(style)) -{ - wxFAIL_MSG( _T("wxPostScriptDC::FloodFill not implemented.") ); -} - -bool wxPostScriptDC::DoGetPixel (long WXUNUSED(x), long WXUNUSED(y), wxColour * WXUNUSED(col)) const -{ - wxFAIL_MSG( _T("wxPostScriptDC::GetPixel not implemented.") ); - return FALSE; -} - -void wxPostScriptDC::DoCrossHair (long WXUNUSED(x), long WXUNUSED(y)) -{ - wxFAIL_MSG( _T("wxPostScriptDC::CrossHair not implemented.") ); -} - -void wxPostScriptDC::DoDrawLine (long x1, long y1, long x2, long y2) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - SetPen( m_pen ); - - *m_pstream << "newpath\n" - << XLOG2DEV(x1) << " " << YLOG2DEV (y1) << " moveto\n" - << XLOG2DEV(x2) << " " << YLOG2DEV (y2) << " lineto\n" - << "stroke\n"; - - CalcBoundingBox( x1, y1 ); - CalcBoundingBox( x2, y2 ); -} - -#define RAD2DEG 57.29577951308 - -void wxPostScriptDC::DoDrawArc (long x1, long y1, long x2, long y2, long xc, long yc) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - long dx = x1 - xc; - long dy = y1 - yc; - long radius = (long) sqrt(dx*dx+dy*dy); - double alpha1, alpha2; - - if (x1 == x2 && y1 == y2) - { - alpha1 = 0.0; - alpha2 = 360.0; - } else if (radius == 0.0) - { - alpha1 = alpha2 = 0.0; - } else - { - alpha1 = (x1 - xc == 0) ? - (y1 - yc < 0) ? 90.0 : -90.0 : - -atan2(double(y1-yc), double(x1-xc)) * RAD2DEG; - alpha2 = (x2 - xc == 0) ? - (y2 - yc < 0) ? 90.0 : -90.0 : - -atan2(double(y2-yc), double(x2-xc)) * RAD2DEG; - } - while (alpha1 <= 0) alpha1 += 360; - while (alpha2 <= 0) alpha2 += 360; // adjust angles to be between - while (alpha1 > 360) alpha1 -= 360; // 0 and 360 degree - while (alpha2 > 360) alpha2 -= 360; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - SetBrush( m_brush ); - *m_pstream << "newpath\n" - << XLOG2DEV(xc) << " " - << YLOG2DEV(yc) << " " - << XLOG2DEVREL(radius) << " " - << YLOG2DEVREL(radius) << " " - << alpha1 << " " - << alpha2 << " ellipse\n" - << XLOG2DEV(xc) << " " - << YLOG2DEV(yc) << " lineto\n" - << "closepath\n" - << "fill\n"; - } - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - SetPen( m_pen ); - *m_pstream << "newpath\n" - << XLOG2DEV(xc) << " " - << YLOG2DEV(yc) << " " - << XLOG2DEVREL(radius) << " " - << YLOG2DEVREL(radius) << " " - << alpha1 << " " - << alpha2 << " ellipse\n" - << "stroke\n"; - } - - CalcBoundingBox( xc-radius, yc-radius ); - CalcBoundingBox( xc+radius, yc+radius ); -} - -void wxPostScriptDC::DoDrawEllipticArc(long x,long y,long w,long h,double sa,double ea) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (sa>=360 || sa<=-360) sa=sa-int(sa/360)*360; - if (ea>=360 || ea<=-360) ea=ea-int(ea/360)*360; - if (sa<0) sa+=360; - if (ea<0) ea+=360; - - if (sa==ea) - { - DrawEllipse(x,y,w,h); - return; - } - - if (m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush( m_brush ); - - *m_pstream << "newpath\n" - << XLOG2DEV(x+w/2) << " " << YLOG2DEV(y+h/2) << " " - << XLOG2DEVREL(w/2) << " " << YLOG2DEVREL(h/2) << " " - << int(sa) <<" "<< int(ea) << " true ellipticarc\n"; - - CalcBoundingBox( x ,y ); - CalcBoundingBox( x+w, y+h ); - } - - if (m_pen.GetStyle () != wxTRANSPARENT) - { - SetPen( m_pen ); - - *m_pstream << "newpath\n" - << XLOG2DEV(x+w/2) << " " << YLOG2DEV(y+h/2) << " " - << XLOG2DEVREL(w/2) << " " << XLOG2DEVREL(h/2) << " " - << int(sa) <<" "<< int(ea) << " false ellipticarc\n"; - - CalcBoundingBox( x, y ); - CalcBoundingBox( x+w, y+h ); - } -} - -void wxPostScriptDC::DoDrawPoint (long x, long y) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - SetPen (m_pen); - - *m_pstream << "newpath\n" - << XLOG2DEV(x) << " " << YLOG2DEV (y) << " moveto\n" - << XLOG2DEV(x+1) << " " << YLOG2DEV (y) << " lineto\n" - << "stroke\n"; - - CalcBoundingBox( x, y ); -} - -void wxPostScriptDC::DoDrawPolygon (int n, wxPoint points[], long xoffset, long yoffset, int WXUNUSED(fillStyle)) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (n <= 0) return; - - if (m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush( m_brush ); - - *m_pstream << "newpath\n"; - - long xx = XLOG2DEV(points[0].x + xoffset); - long yy = YLOG2DEV(points[0].y + yoffset); - *m_pstream << xx << " " << yy << " moveto\n"; - CalcBoundingBox( points[0].x + xoffset, points[0].y + yoffset ); - - for (int i = 1; i < n; i++) - { - xx = XLOG2DEV(points[i].x + xoffset); - yy = YLOG2DEV(points[i].y + yoffset); - *m_pstream << xx << " " << yy << " lineto\n"; - CalcBoundingBox( points[i].x + xoffset, points[i].y + yoffset); - } - *m_pstream << "fill\n"; - } - - if (m_pen.GetStyle () != wxTRANSPARENT) - { - SetPen( m_pen ); - - *m_pstream << "newpath\n"; - - long xx = XLOG2DEV(points[0].x + xoffset); - long yy = YLOG2DEV(points[0].y + yoffset); - *m_pstream << xx << " " << yy << " moveto\n"; - CalcBoundingBox( points[0].x + xoffset, points[0].y + yoffset ); - - for (int i = 1; i < n; i++) - { - xx = XLOG2DEV(points[i].x + xoffset); - yy = YLOG2DEV(points[i].y + yoffset); - *m_pstream << xx << " " << yy << " lineto\n"; - CalcBoundingBox( points[i].x + xoffset, points[i].y + yoffset); - } - - *m_pstream << "stroke\n"; - } -} - -void wxPostScriptDC::DoDrawLines (int n, wxPoint points[], long xoffset, long yoffset) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (m_pen.GetStyle() == wxTRANSPARENT) - return; - if (n <= 0) - return; - - SetPen (m_pen); - - int i; - for ( i =0; i= 128 ) - { - // Cope with character codes > 127 - char tmp[5]; - sprintf(tmp, "\\%o", c); - *m_pstream << tmp; - } - else - *m_pstream << (char) c; - } - - *m_pstream << ")" << " show\n"; - - if (m_font.GetUnderlined()) - { - long uy = (long)(y + size - m_underlinePosition); - long w, h; - GetTextExtent(text, &w, &h); - - *m_pstream << "gsave " << XLOG2DEV(x) << " " << YLOG2DEV(uy) - << " moveto\n" - << (long)m_underlineThickness << " setlinewidth " - << XLOG2DEV(x + w) << " " << YLOG2DEV(uy) - << " lineto stroke grestore\n"; - } - - CalcBoundingBox( x, y ); - CalcBoundingBox( x + size * text.Length() * 2/3 , y ); -} - - -void wxPostScriptDC::SetBackground (const wxBrush& brush) -{ - m_backgroundBrush = brush; -} - -void wxPostScriptDC::SetLogicalFunction (int WXUNUSED(function)) -{ - wxFAIL_MSG( _T("wxPostScriptDC::SetLogicalFunction not implemented.") ); -} - -void wxPostScriptDC::DoDrawSpline( wxList *points ) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - SetPen( m_pen ); - - double a, b, c, d, x1, y1, x2, y2, x3, y3; - wxPoint *p, *q; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - c = p->x; - d = p->y; - x3 = a = (double)(x1 + c) / 2; - y3 = b = (double)(y1 + d) / 2; - - *m_pstream << "newpath " - << XLOG2DEV((long)x1) << " " << YLOG2DEV((long)y1) << " moveto " - << XLOG2DEV((long)x3) << " " << YLOG2DEV((long)y3) << " lineto\n"; - - CalcBoundingBox( (long)x1, (long)y1 ); - CalcBoundingBox( (long)x3, (long)y3 ); - - while ((node = node->Next()) != NULL) - { - q = (wxPoint *)node->Data(); - - x1 = x3; - y1 = y3; - x2 = c; - y2 = d; - c = q->x; - d = q->y; - x3 = (double)(x2 + c) / 2; - y3 = (double)(y2 + d) / 2; - *m_pstream << XLOG2DEV((long)x1) << " " << YLOG2DEV((long)y1) << " " - << XLOG2DEV((long)x2) << " " << YLOG2DEV((long)y2) << " " - << XLOG2DEV((long)x3) << " " << YLOG2DEV((long)y3) << " DrawSplineSection\n"; - - CalcBoundingBox( (long)x1, (long)y1 ); - CalcBoundingBox( (long)x3, (long)y3 ); - } - -/* - At this point, (x2,y2) and (c,d) are the position of the - next-to-last and last point respectively, in the point list -*/ - - *m_pstream << XLOG2DEV((long)c) << " " << YLOG2DEV((long)d) << " lineto stroke\n"; -} - -long wxPostScriptDC::GetCharWidth() const -{ - // Chris Breeze: reasonable approximation using wxMODERN/Courier - return (long) (GetCharHeight() * 72.0 / 120.0); -} - - -void wxPostScriptDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? 1 : -1); - - // FIXME there is no such function in MSW -#ifndef __WXMSW__ - ComputeScaleAndOrigin(); -#endif -} - -void wxPostScriptDC::SetDeviceOrigin( long x, long y ) -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - int h = 0; - int w = 0; - GetSize( &w, &h ); - - wxDC::SetDeviceOrigin( x, h-y ); -} - -void wxPostScriptDC::DoGetSize(int* width, int* height) const -{ - wxPaperSize id = m_printData.GetPaperId(); - - wxPrintPaperType *paper = wxThePrintPaperDatabase->FindPaperType(id); - - if (!paper) paper = wxThePrintPaperDatabase->FindPaperType(wxPAPER_A4); - - if (paper) - { - if (width) *width = paper->GetSizeDeviceUnits().x; - if (height) *height = paper->GetSizeDeviceUnits().y; - } - else - { - if (width) *width = 595; - if (height) *height = 842; - } -} - -void wxPostScriptDC::DoGetSizeMM(int *width, int *height) const -{ - wxPaperSize id = m_printData.GetPaperId(); - - wxPrintPaperType *paper = wxThePrintPaperDatabase->FindPaperType(id); - - if (!paper) paper = wxThePrintPaperDatabase->FindPaperType(wxPAPER_A4); - - if (paper) - { - if (width) *width = paper->GetWidth() / 10; - if (height) *height = paper->GetHeight() / 10; - } - else - { - if (width) *width = 210; - if (height) *height = 297; - } -} - -// Resolution in pixels per logical inch -wxSize wxPostScriptDC::GetPPI(void) const -{ - return wxSize(72, 72); -} - - -bool wxPostScriptDC::StartDoc (const wxString& message) -{ - wxCHECK_MSG( m_ok, FALSE, _T("invalid postscript dc") ); - - if (m_printData.GetFilename() == "") - { - wxString filename = wxGetTempFileName("ps"); - m_printData.SetFilename(filename); - - m_ok = TRUE; - } - - m_pstream = new ofstream (m_printData.GetFilename().fn_str()); - - if (!m_pstream || !m_pstream->good()) - { - wxMessageBox (_("Cannot open file!"), _("Error"), wxOK); - m_ok = FALSE; - return FALSE; - } - - m_ok = TRUE; - - SetBrush( *wxBLACK_BRUSH ); - SetPen( *wxBLACK_PEN ); - SetBackground( *wxWHITE_BRUSH ); - SetTextForeground( *wxBLACK ); - - // set origin according to paper size - SetDeviceOrigin( 0,0 ); - - wxPageNumber = 1; - m_pageNumber = 1; - m_title = message; - return TRUE; -} - -void wxPostScriptDC::EndDoc () -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - if (m_clipping) - { - m_clipping = FALSE; - *m_pstream << "grestore\n"; - } - - if (m_pstream) - { - delete m_pstream; - m_pstream = (ofstream *) NULL; - } - - wxChar *header_file = wxGetTempFileName("ps"); - - m_pstream = new ofstream( wxConv_file.cWX2MB(header_file) ); - - *m_pstream << "%!PS-Adobe-2.0\n"; /* PostScript magic strings */ - *m_pstream << "%%Title: " << m_title.mb_str() << "\n"; - *m_pstream << "%%Creator: " << wxTheApp->argv[0] << "\n"; - *m_pstream << "%%CreationDate: " << wxNow().mb_str() << "\n"; - - wxChar userID[256]; - if ( wxGetEmailAddress(userID, sizeof(userID)) ) - { - *m_pstream << "%%For: " << MBSTRINGCAST wxConv_libc.cWX2MB(userID); - wxChar userName[245]; - if (wxGetUserName(userName, sizeof(userName))) - *m_pstream << " (" << MBSTRINGCAST wxConv_libc.cWX2MB(userName) << ")"; - *m_pstream << "\n"; - } - else if ( wxGetUserName(userID, sizeof(userID)) ) - { - *m_pstream << "%%For: " << MBSTRINGCAST wxConv_libc.cWX2MB(userID) << "\n"; - } - - // THE FOLLOWING HAS BEEN CONTRIBUTED BY Andy Fyfe - - long wx_printer_translate_x, wx_printer_translate_y; - double wx_printer_scale_x, wx_printer_scale_y; - - wx_printer_translate_x = m_printData.GetPrinterTranslateX(); - wx_printer_translate_y = m_printData.GetPrinterTranslateY(); - - wx_printer_scale_x = m_printData.GetPrinterScaleX(); - wx_printer_scale_y = m_printData.GetPrinterScaleY(); - - if (m_printData.GetOrientation() == wxLANDSCAPE) - { - *m_pstream << "%%Orientation: Landscape\n"; - } - else - { - *m_pstream << "%%Orientation: Portrait\n"; - } - - // Compute the bounding box. Note that it is in the default user - // coordinate system, thus we have to convert the values. - long llx = (long) ((XLOG2DEV(m_minX)+wx_printer_translate_x)*wx_printer_scale_x); - long lly = (long) ((YLOG2DEV(m_minY)+wx_printer_translate_y)*wx_printer_scale_y); - long urx = (long) ((XLOG2DEV(m_maxX)+wx_printer_translate_x)*wx_printer_scale_x); - long ury = (long) ((YLOG2DEV(m_maxY)+wx_printer_translate_y)*wx_printer_scale_y); - - // If we're landscape, our sense of "x" and "y" is reversed. - if (m_printData.GetOrientation() == wxLANDSCAPE) - { - long tmp; - tmp = llx; llx = lly; lly = tmp; - tmp = urx; urx = ury; ury = tmp; - - // We need either the two lines that follow, or we need to subtract - // min_x from real_translate_y, which is commented out below. - llx = llx - (long)(m_minX*wx_printer_scale_y); - urx = urx - (long)(m_minX*wx_printer_scale_y); - } - - // The Adobe specifications call for integers; we round as to make - // the bounding larger. - *m_pstream << "%%BoundingBox: " - << floor((double)llx) << " " << floor((double)lly) << " " - << ceil((double)urx) << " " << ceil((double)ury) << "\n"; - *m_pstream << "%%Pages: " << (wxPageNumber - 1) << "\n"; - *m_pstream << "%%EndComments\n\n"; - - // To check the correctness of the bounding box, postscript commands - // to draw a box corresponding to the bounding box are generated below. - // But since we typically don't want to print such a box, the postscript - // commands are generated within comments. These lines appear before any - // adjustment of scale, rotation, or translation, and hence are in the - // default user coordinates. - *m_pstream << "% newpath\n"; - *m_pstream << "% " << llx << " " << lly << " moveto\n"; - *m_pstream << "% " << urx << " " << lly << " lineto\n"; - *m_pstream << "% " << urx << " " << ury << " lineto\n"; - *m_pstream << "% " << llx << " " << ury << " lineto closepath stroke\n"; - - *m_pstream << "%%BeginProlog\n"; - *m_pstream << wxPostScriptHeaderEllipse; - *m_pstream << wxPostScriptHeaderEllipticArc; - *m_pstream << wxPostScriptHeaderColourImage; - *m_pstream << wxPostScriptHeaderReencodeISO1; - *m_pstream << wxPostScriptHeaderReencodeISO2; - - if (wxPostScriptHeaderSpline) - *m_pstream << wxPostScriptHeaderSpline; - *m_pstream << "%%EndProlog\n"; - - delete m_pstream; - m_pstream = (ofstream *) NULL; - - wxChar *tmp_file = wxGetTempFileName("ps"); - - // Paste header Before wx_printer_file - wxConcatFiles (header_file, m_printData.GetFilename(), tmp_file); - wxRemoveFile (header_file); - wxRemoveFile (m_printData.GetFilename()); - wxRenameFile(tmp_file, m_printData.GetFilename()); - -#if defined(__X__) || defined(__WXGTK__) - if (m_ok) - { - wxString previewCommand(m_printData.GetPreviewCommand()); - wxString printerCommand(m_printData.GetPrinterCommand()); - wxString printerOptions(m_printData.GetPrinterOptions()); - wxString filename(m_printData.GetFilename()); - - switch (m_printData.GetPrintMode()) { - - case wxPRINT_MODE_PREVIEW: - { - wxChar *argv[3]; - argv[0] = WXSTRINGCAST previewCommand; - argv[1] = WXSTRINGCAST filename; - argv[2] = (wxChar*) NULL; - wxExecute (argv, TRUE); - wxRemoveFile(m_printData.GetFilename()); - } - break; - - case wxPRINT_MODE_PRINTER: - { - wxChar *argv[4]; - int argc = 0; - argv[argc++] = WXSTRINGCAST printerCommand; - - // !SM! If we simply assign to argv[1] here, if printer options - // are blank, we get an annoying and confusing message from lpr. - wxChar * opts = WXSTRINGCAST printerOptions; - if (opts && *opts) - argv[argc++] = opts; - - argv[argc++] = WXSTRINGCAST filename; - argv[argc++] = (wxChar *) NULL; - wxExecute (argv, TRUE); - wxRemoveFile(filename); - } - break; - - case wxPRINT_MODE_FILE: - case wxPRINT_MODE_NONE: - break; - } - } -#endif -} - -void wxPostScriptDC::StartPage () -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - *m_pstream << "%%Page: " << (wxPageNumber++) << "\n"; - -// *m_pstream << "matrix currentmatrix\n"; - - // Added by Chris Breeze - - // Each page starts with an "initgraphics" which resets the - // transformation and so we need to reset the origin - // (and rotate the page for landscape printing) - -/* - m_scaleFactor = 1.0; - m_logicalOriginX = 0; - m_logicalOriginY = 0; -*/ - // Output scaling - long translate_x, translate_y; - double scale_x, scale_y; - - translate_x = m_printData.GetPrinterTranslateX(); - translate_y = m_printData.GetPrinterTranslateY(); - - scale_x = m_printData.GetPrinterScaleX(); - scale_y = m_printData.GetPrinterScaleY(); - - if (m_printData.GetOrientation() == wxLANDSCAPE) - { - translate_y -= m_maxY; - *m_pstream << "90 rotate\n"; - } - - *m_pstream << scale_x << " " << scale_y << " scale\n"; - *m_pstream << translate_x << " " << translate_y << " translate\n"; -} - -void wxPostScriptDC::EndPage () -{ - wxCHECK_RET( m_ok && m_pstream, _T("invalid postscript dc") ); - - *m_pstream << "showpage\n"; -} - -bool wxPostScriptDC::DoBlit( long xdest, long ydest, - long fwidth, long fheight, - wxDC *source, - long xsrc, long ysrc, - int rop, bool WXUNUSED(useMask) ) -{ - wxCHECK_MSG( m_ok && m_pstream, FALSE, _T("invalid postscript dc") ); - - wxCHECK_MSG( source, FALSE, _T("invalid source dc") ); - - /* blit into a bitmap */ - - wxBitmap bitmap( (int)fwidth, (int)fheight ); - wxMemoryDC memDC; - memDC.SelectObject(bitmap); - memDC.Blit(0, 0, fwidth, fheight, source, xsrc, ysrc, rop); /* TODO: Blit transparently? */ - memDC.SelectObject(wxNullBitmap); - - /* draw bitmap. scaling and positioning is done there */ - - DrawBitmap( bitmap, xdest, ydest ); - - return TRUE; -} - -long wxPostScriptDC::GetCharHeight() const -{ - if (m_font.Ok()) - return m_font.GetPointSize(); - else - return 12; -} - -void wxPostScriptDC::GetTextExtent( const wxString& string, long *x, long *y, - long *descent, long *externalLeading, wxFont *theFont ) const -{ - wxFont *fontToUse = theFont; - - if (!fontToUse) fontToUse = (wxFont*) &m_font; - - wxCHECK_RET( fontToUse, _T("GetTextExtent: no font defined") ); - wxCHECK_RET( x, _T("GetTextExtent: x == NULL") ); - wxCHECK_RET( y, _T("GetTextExtent: y == NULL") ); - - const wxWX2MBbuf strbuf = string.mb_str(); - -#if !USE_AFM_FOR_POSTSCRIPT - /* Provide a VERY rough estimate (avoid using it). - * Produces accurate results for mono-spaced font - * such as Courier (aka wxMODERN) */ - - int height = 12; - if (fontToUse) - { - height = fontToUse->GetPointSize(); - } - *x = strlen (strbuf) * height * 72 / 120; - *y = (long) (height * 1.32); /* allow for descender */ - if (descent) *descent = 0; - if (externalLeading) *externalLeading = 0; -#else - - /* method for calculating string widths in postscript: - / read in the AFM (adobe font metrics) file for the - / actual font, parse it and extract the character widths - / and also the descender. this may be improved, but for now - / it works well. the AFM file is only read in if the - / font is changed. this may be chached in the future. - / calls to GetTextExtent with the font unchanged are rather - / efficient!!! - / - / for each font and style used there is an AFM file necessary. - / currently i have only files for the roman font family. - / I try to get files for the other ones! - / - / CAVE: the size of the string is currently always calculated - / in 'points' (1/72 of an inch). this should later on be - / changed to depend on the mapping mode. - / CAVE: the path to the AFM files must be set before calling this - / function. this is usually done by a call like the following: - / wxSetAFMPath("d:\\wxw161\\afm\\"); - / - / example: - / - / wxPostScriptDC dc(NULL, TRUE); - / if (dc.Ok()){ - / wxSetAFMPath("d:\\wxw161\\afm\\"); - / dc.StartDoc("Test"); - / dc.StartPage(); - / long w,h; - / dc.SetFont(new wxFont(10, wxROMAN, wxNORMAL, wxNORMAL)); - / dc.GetTextExtent("Hallo",&w,&h); - / dc.EndPage(); - / dc.EndDoc(); - / } - / - / by steve (stefan.hammes@urz.uni-heidelberg.de) - / created: 10.09.94 - / updated: 14.05.95 */ - - /* these static vars are for storing the state between calls */ - static int lastFamily= INT_MIN; - static int lastSize= INT_MIN; - static int lastStyle= INT_MIN; - static int lastWeight= INT_MIN; - static int lastDescender = INT_MIN; - static int lastWidths[256]; /* widths of the characters */ - - /* get actual parameters */ - const int Family = fontToUse->GetFamily(); - const int Size = fontToUse->GetPointSize(); - const int Style = fontToUse->GetStyle(); - const int Weight = fontToUse->GetWeight(); - - /* if we have another font, read the font-metrics */ - if (Family!=lastFamily || Size!=lastSize || Style!=lastStyle || Weight!=lastWeight) - { - /* store actual values */ - lastFamily = Family; - lastSize = Size; - lastStyle = Style; - lastWeight = Weight; - - char *name = (char*) NULL; - - switch (Family) - { - case wxMODERN: - { - if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "CourBoO"; - else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "CourBo"; - else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "Cour0"; - else name = "Cour"; - } - break; - case wxROMAN: - { - if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "TimesBoO"; - else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "TimesBo"; - else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "TimesO"; - else if name = "TimesRo"; /* no typo */ - } - break; - default: - { - if ((Style == wxITALIC) && (Weight == wxBOLD)) name = "HelvBoO"; - else if ((Style != wxITALIC) && (Weight == wxBOLD)) name = "HelvBo"; - else if ((Style == wxITALIC) && (Weight != wxBOLD)) name = "Helv0"; - else name = "Helv"; - } - break; - } - - /* get the directory of the AFM files */ - char afmName[256]; - afmName[0] = 0; - - if (!m_printData.GetFontMetricPath().IsEmpty()) - { - strcpy( afmName, m_printData.GetFontMetricPath().mb_str() ) - } - - /* 2. open and process the file - / a short explanation of the AFM format: - / we have for each character a line, which gives its size - / e.g.: - / - / C 63 ; WX 444 ; N question ; B 49 -14 395 676 ; - / - / that means, we have a character with ascii code 63, and width - / (444/1000 * fontSize) points. - / the other data is ignored for now! - / - / when the font has changed, we read in the right AFM file and store the - / character widths in an array, which is processed below (see point 3.). */ - - /* new elements JC Sun Aug 25 23:21:44 MET DST 1996 */ - - strcat(afmName,name); - strcat(afmName,".afm"); - FILE *afmFile = fopen(afmName,"r"); - -#ifdef __UNIX__ - if (afmFile==NULL) - { - strcpy( afmName, "/usr/local/share/wx/gs_afm/" ); - strcat(afmName,name); - strcat(afmName,".afm"); - FILE *afmFile = fopen(afmName,"r"); - } - - if (afmFile==NULL) - { - strcpy( afmName, "/usr/share/wx/gs_afm/" ); - strcat(afmName,name); - strcat(afmName,".afm"); - FILE *afmFile = fopen(afmName,"r"); - } -#endif - - if (afmFile==NULL) - { - wxLogDebug( "GetTextExtent: can't open AFM file '%s'\n", afmName ); - wxLogDebug( " using approximate values\n"); - for (int i=0; i<256; i++) lastWidths[i] = 500; /* an approximate value */ - lastDescender = -150; /* dito. */ - } - else - { - /* init the widths array */ - for(int i=0; i<256; i++) lastWidths[i] = INT_MIN; - /* some variables for holding parts of a line */ - char cString[10],semiString[10],WXString[10],descString[20]; - char upString[30], utString[30], encString[50]; - char line[256]; - int ascii,cWidth; - /* read in the file and parse it */ - while(fgets(line,sizeof(line),afmFile)!=NULL) - { - /* A.) check for descender definition */ - if (strncmp(line,"Descender",9)==0) - { - if ((sscanf(line,"%s%d",descString,&lastDescender)!=2) || - (strcmp(descString,"Descender")!=0)) - { - wxLogDebug( "AFM-file '%s': line '%s' has error (bad descender)\n", afmName,line ); - } - } - /* JC 1.) check for UnderlinePosition */ - else if(strncmp(line,"UnderlinePosition",17)==0) - { - if ((sscanf(line,"%s%lf",upString,&UnderlinePosition)!=2) || - (strcmp(upString,"UnderlinePosition")!=0)) - { - wxLogDebug( "AFM-file '%s': line '%s' has error (bad UnderlinePosition)\n", afmName, line ); - } - } - /* JC 2.) check for UnderlineThickness */ - else if(strncmp(line,"UnderlineThickness",18)==0) - { - if ((sscanf(line,"%s%lf",utString,&UnderlineThickness)!=2) || - (strcmp(utString,"UnderlineThickness")!=0)) - { - wxLogDebug( "AFM-file '%s': line '%s' has error (bad UnderlineThickness)\n", afmName, line ); - } - } - /* JC 3.) check for EncodingScheme */ - else if(strncmp(line,"EncodingScheme",14)==0) - { - if ((sscanf(line,"%s%s",utString,encString)!=2) || - (strcmp(utString,"EncodingScheme")!=0)) - { - wxLogDebug("AFM-file '%s': line '%s' has error (bad EncodingScheme)\n", afmName, line ); - } - else if (strncmp(encString, "AdobeStandardEncoding", 21)) - { - wxLogDebug( "AFM-file '%s': line '%s' has error (unsupported EncodingScheme %s)\n", - afmName,line, encString); - } - } - /* B.) check for char-width */ - else if(strncmp(line,"C ",2)==0) - { - if (sscanf(line,"%s%d%s%s%d",cString,&ascii,semiString,WXString,&cWidth)!=5) - { - wxLogDebug("AFM-file '%s': line '%s' has an error (bad character width)\n",afmName,line); - } - if(strcmp(cString,"C")!=0 || strcmp(semiString,";")!=0 || strcmp(WXString,"WX")!=0) - { - wxLogDebug("AFM-file '%s': line '%s' has a format error\n",afmName,line); - } - /* printf(" char '%c'=%d has width '%d'\n",ascii,ascii,cWidth); */ - if (ascii>=0 && ascii<256) - { - lastWidths[ascii] = cWidth; /* store width */ - } - else - { - /* MATTHEW: this happens a lot; don't print an error */ - /* wxLogDebug("AFM-file '%s': ASCII value %d out of range\n",afmName,ascii); */ - } - } - /* C.) ignore other entries. */ - } - fclose(afmFile); - } - /* hack to compute correct values for german 'Umlaute' - / the correct way would be to map the character names - / like 'adieresis' to corresp. positions of ISOEnc and read - / these values from AFM files, too. Maybe later ... */ - lastWidths[196] = lastWidths['A']; // Ä - lastWidths[228] = lastWidths['a']; // ä - lastWidths[214] = lastWidths['O']; // Ö - lastWidths[246] = lastWidths['o']; // ö - lastWidths[220] = lastWidths['U']; // Ü - lastWidths[252] = lastWidths['u']; // ü - lastWidths[223] = lastWidths[251]; // ß - } - - /* JC: calculate UnderlineThickness/UnderlinePosition */ - m_underlinePosition = m_underlinePosition * fontToUse->GetPointSize() / 1000.0f; - m_underlineThickness = m_underlineThickness * fontToUse->GetPointSize() / 1000.0f * m_scaleFactor; - - /* 3. now the font metrics are read in, calc size this - / is done by adding the widths of the characters in the - / string. they are given in 1/1000 of the size! */ - - long widthSum=0; - long height=Size; /* by default */ - unsigned char *p; - for(p=(unsigned char *)strbuf; *p; p++) - { - if(lastWidths[*p]== INT_MIN) - { - wxLogDebug("GetTextExtent: undefined width for character '%c' (%d)\n", *p,*p); - widthSum += (long)(lastWidths[' ']/1000.0F * Size); /* assume space */ - } - else - { - widthSum += (long)((lastWidths[*p]/1000.0F)*Size); - } - } - - /* add descender to height (it is usually a negative value) */ - if (lastDescender!=INT_MIN) - { - height += (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */ - } - - /* return size values */ - *x = widthSum; - *y = height; - - /* return other parameters */ - if (descent) - { - if(lastDescender!=INT_MIN) - { - *descent = (long)(((-lastDescender)/1000.0F) * Size); /* MATTHEW: forgot scale */ - } - else - { - *descent = 0; - } - } - - /* currently no idea how to calculate this! */ - if (externalLeading) *externalLeading = 0; - -#endif -} - -// Determine the Default Postscript Previewer -// available on the platform -#if defined(__SUN__) && defined(__XVIEW__) -// OpenWindow/NeWS's Postscript Previewer -# define PS_VIEWER_PROG "pageview" -#elif defined(__VMS__) -#define PS_VIEWER_PROG "view/format=ps/select=x_display" -#elif defined(__SGI__) -// SGI's Display Postscript Previewer -//# define PS_VIEWER_PROG "dps" -# define PS_VIEWER_PROG "xpsview" -#elif defined(__X__) || defined(__WXGTK__) -// Front-end to ghostscript -# define PS_VIEWER_PROG "ghostview" -#else -// Windows ghostscript/ghostview -# define PS_VIEWER_PROG NULL -#endif - -wxPrintSetupData *wxThePrintSetupData = (wxPrintSetupData *) NULL; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPostScriptDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxPrintSetupData, wxObject) -#endif - -// Redundant now I think -#if 1 -IMPLEMENT_CLASS(wxPostScriptPrintDialog, wxDialog) - -wxPostScriptPrintDialog::wxPostScriptPrintDialog (wxWindow *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, long style): - wxDialog(parent, -1, title, pos, size, style) -{ - wxBeginBusyCursor(); - - char buf[100]; - int yPos = 40; - wxString - *orientation = new wxString[2], - *print_modes = new wxString[3]; - int features; - long wx_printer_translate_x, wx_printer_translate_y; - double wx_printer_scale_x, wx_printer_scale_y; - - orientation[0] = _("Portrait"); - orientation[1] = _("Landscape"); - - print_modes[0] = _("Send to Printer"); - print_modes[1] = _("Print to File"); - print_modes[2] = _("Preview Only"); - - - - wxButton *okBut = new wxButton (this, wxID_OK, _("OK"), wxPoint(5, 5)); - (void) new wxButton (this, wxID_CANCEL, _("Cancel"), wxPoint(40, 5)); - okBut->SetDefault(); - - -#if defined(__WXGTK__) || defined (__WXMOTIF__) - (void) new wxStaticText( this, -1, _("Printer Command: "), - wxPoint(5, yPos) ); - (void) new wxTextCtrl( this, wxID_PRINTER_COMMAND, wxThePrintSetupData->GetPrinterCommand(), - wxPoint(100, yPos), wxSize(100, -1) ); - - (void) new wxStaticText( this, -1, _("Printer Options: "), - wxPoint(210, yPos) ); - (void) new wxTextCtrl( this, wxID_PRINTER_OPTIONS, wxThePrintSetupData->GetPrinterOptions(), - wxPoint(305, yPos), wxSize(150, -1) ); - - yPos += 40; -#endif - - - wxRadioBox *radio0 = new wxRadioBox(this, wxID_PRINTER_ORIENTATION, "Orientation: ", wxPoint(5, yPos), wxSize(-1,-1), - 2,orientation,2,wxRA_SPECIFY_ROWS); - radio0->SetSelection((int)wxThePrintSetupData->GetPrinterOrientation() - 1); - - // @@@ Configuration hook - if ( !wxThePrintSetupData->GetPrintPreviewCommand() ) - wxThePrintSetupData->SetPrintPreviewCommand(PS_VIEWER_PROG); - - // wxGetResource ("wxWindows", "PSView", &wxThePrintSetupData->m_previewCommand); - - features = (wxThePrintSetupData->GetPrintPreviewCommand() && - *wxThePrintSetupData->GetPrintPreviewCommand()) ? 3 : 2; - - wxRadioBox *radio1 = new wxRadioBox(this, wxID_PRINTER_MODES, _("PostScript:"), - wxPoint(150, yPos), - wxSize(-1,-1), features, - print_modes, features, wxRA_SPECIFY_ROWS); - -#ifdef __WXMSW__ - radio1->Enable(0, FALSE); - if (wxThePrintSetupData->GetPrintPreviewCommand() && *wxThePrintSetupData->GetPrintPreviewCommand()) - radio1->Enable(2, FALSE); -#endif - - radio1->SetSelection((int)wxThePrintSetupData->GetPrinterMode()); - wxThePrintSetupData->GetPrinterTranslation(&wx_printer_translate_x, &wx_printer_translate_y); - wxThePrintSetupData->GetPrinterScaling(&wx_printer_scale_x, &wx_printer_scale_y); - - sprintf (buf, "%.2f", wx_printer_scale_x); - - yPos += 90; - (void) new wxStaticText(this, -1, _("X Scaling"), wxPoint(5, yPos)); - /* wxTextCtrl *text1 = */ (void) new wxTextCtrl(this, wxID_PRINTER_X_SCALE, buf, wxPoint(100, yPos), wxSize(100, -1)); - - sprintf (buf, "%.2f", wx_printer_scale_y); - (void) new wxStaticText(this, -1, _("Y Scaling"), wxPoint(220, yPos)); - /* wxTextCtrl *text2 = */ (void) new wxTextCtrl(this, wxID_PRINTER_Y_SCALE, buf, wxPoint(320, yPos), wxSize(100, -1)); - - yPos += 25; - - (void) new wxStaticText(this, -1, _("X Translation"), wxPoint(5, yPos)); - sprintf (buf, "%.2ld", wx_printer_translate_x); - /* wxTextCtrl *text3 = */ (void) new wxTextCtrl(this, wxID_PRINTER_X_TRANS, buf, wxPoint(100, yPos), wxSize(100, -1)); - - (void) new wxStaticText(this, -1, _("Y Translation"), wxPoint(220, yPos)); - sprintf (buf, "%.2ld", wx_printer_translate_y); - /* wxTextCtrl *text4 = */ (void) new wxTextCtrl(this, wxID_PRINTER_Y_TRANS, buf, wxPoint(320, yPos), wxSize(100, -1)); - - Fit (); - - delete[] orientation; - delete[] print_modes; - - wxEndBusyCursor(); -} - -int wxPostScriptPrintDialog::ShowModal () -{ - if ( wxDialog::ShowModal() == wxID_OK ) - { -// wxTextCtrl *text0 = (wxTextCtrl *)FindWindow(wxID_PRINTER_OPTIONS); - wxTextCtrl *text1 = (wxTextCtrl *)FindWindow(wxID_PRINTER_X_SCALE); - wxTextCtrl *text2 = (wxTextCtrl *)FindWindow(wxID_PRINTER_Y_SCALE); - wxTextCtrl *text3 = (wxTextCtrl *)FindWindow(wxID_PRINTER_X_TRANS); - wxTextCtrl *text4 = (wxTextCtrl *)FindWindow(wxID_PRINTER_Y_TRANS); -// wxTextCtrl *text_prt = (wxTextCtrl *)FindWindow(wxID_PRINTER_COMMAND); - wxRadioBox *radio0 = (wxRadioBox *)FindWindow(wxID_PRINTER_ORIENTATION); - wxRadioBox *radio1 = (wxRadioBox *)FindWindow(wxID_PRINTER_MODES); - - StringToDouble (WXSTRINGCAST text1->GetValue (), &wxThePrintSetupData->m_printerScaleX); - StringToDouble (WXSTRINGCAST text2->GetValue (), &wxThePrintSetupData->m_printerScaleY); - StringToLong (WXSTRINGCAST text3->GetValue (), &wxThePrintSetupData->m_printerTranslateX); - StringToLong (WXSTRINGCAST text4->GetValue (), &wxThePrintSetupData->m_printerTranslateY); - -#ifdef __X__ - // wxThePrintSetupData->SetPrinterOptions(WXSTRINGCAST text0->GetValue ()); - // wxThePrintSetupData->SetPrinterCommand(WXSTRINGCAST text_prt->GetValue ()); -#endif - - wxThePrintSetupData->SetPrinterOrientation((radio0->GetSelection() == 1 ? wxLANDSCAPE : wxPORTRAIT)); - - // C++ wants this - switch ( radio1->GetSelection() ) { - case 0: wxThePrintSetupData->SetPrinterMode(PS_PRINTER); break; - case 1: wxThePrintSetupData->SetPrinterMode(PS_FILE); break; - case 2: wxThePrintSetupData->SetPrinterMode(PS_PREVIEW); break; - } - return wxID_OK; - } - return wxID_CANCEL; -} -#endif - // 0 (redundant) - -// PostScript printer settings -// RETAINED FOR BACKWARD COMPATIBILITY -void wxSetPrinterCommand(const wxString& cmd) -{ - wxThePrintSetupData->SetPrinterCommand(cmd); -} - -void wxSetPrintPreviewCommand(const wxString& cmd) -{ - wxThePrintSetupData->SetPrintPreviewCommand(cmd); -} - -void wxSetPrinterOptions(const wxString& flags) -{ - wxThePrintSetupData->SetPrinterOptions(flags); -} - -void wxSetPrinterFile(const wxString& f) -{ - wxThePrintSetupData->SetPrinterFile(f); -} - -void wxSetPrinterOrientation(int orient) -{ - wxThePrintSetupData->SetPrinterOrientation(orient); -} - -void wxSetPrinterScaling(double x, double y) -{ - wxThePrintSetupData->SetPrinterScaling(x, y); -} - -void wxSetPrinterTranslation(long x, long y) -{ - wxThePrintSetupData->SetPrinterTranslation(x, y); -} - -// 1 = Preview, 2 = print to file, 3 = send to printer -void wxSetPrinterMode(int mode) -{ - wxThePrintSetupData->SetPrinterMode(mode); -} - -void wxSetAFMPath(const wxString& f) -{ - wxThePrintSetupData->SetAFMPath(f); -} - -// Get current values -wxString wxGetPrinterCommand() -{ - return wxThePrintSetupData->GetPrinterCommand(); -} - -wxString wxGetPrintPreviewCommand() -{ - return wxThePrintSetupData->GetPrintPreviewCommand(); -} - -wxString wxGetPrinterOptions() -{ - return wxThePrintSetupData->GetPrinterOptions(); -} - -wxString wxGetPrinterFile() -{ - return wxThePrintSetupData->GetPrinterFile(); -} - -int wxGetPrinterOrientation() -{ - return wxThePrintSetupData->GetPrinterOrientation(); -} - -void wxGetPrinterScaling(double* x, double* y) -{ - wxThePrintSetupData->GetPrinterScaling(x, y); -} - -void wxGetPrinterTranslation(long *x, long *y) -{ - wxThePrintSetupData->GetPrinterTranslation(x, y); -} - -int wxGetPrinterMode() -{ - return wxThePrintSetupData->GetPrinterMode(); -} - -wxString wxGetAFMPath() -{ - return wxThePrintSetupData->GetAFMPath(); -} - -/* - * Print setup data - */ - -wxPrintSetupData::wxPrintSetupData() -{ - m_printerOrient = wxPORTRAIT; - m_printerScaleX = (double)1.0; - m_printerScaleY = (double)1.0; - m_printerTranslateX = 0; - m_printerTranslateY = 0; - m_printerMode = wxPRINT_MODE_FILE; - m_printColour = TRUE; -} - -wxPrintSetupData::~wxPrintSetupData() -{ -} - -void wxPrintSetupData::operator=(wxPrintSetupData& data) -{ - SetPrinterCommand(data.GetPrinterCommand()); - SetPrintPreviewCommand(data.GetPrintPreviewCommand()); - SetPrinterOptions(data.GetPrinterOptions()); - long x, y; - data.GetPrinterTranslation(&x, &y); - SetPrinterTranslation(x, y); - - double x1, y1; - data.GetPrinterScaling(&x1, &y1); - SetPrinterScaling(x1, y1); - - SetPrinterOrientation(data.GetPrinterOrientation()); - SetPrinterMode(data.GetPrinterMode()); - SetAFMPath(data.GetAFMPath()); - SetPaperName(data.GetPaperName()); - SetColour(data.GetColour()); -} - -// Initialize from a wxPrintData object (wxPrintData should now be used instead of wxPrintSetupData). -void wxPrintSetupData::operator=(const wxPrintData& data) -{ - SetPrinterCommand(data.GetPrinterCommand()); - SetPrintPreviewCommand(data.GetPreviewCommand()); - SetPrinterOptions(data.GetPrinterOptions()); - SetPrinterTranslation(data.GetPrinterTranslateX(), data.GetPrinterTranslateY()); - SetPrinterScaling(data.GetPrinterScaleX(), data.GetPrinterScaleY()); - SetPrinterOrientation(data.GetOrientation()); - SetPrinterMode((int) data.GetPrintMode()); - SetAFMPath(data.GetFontMetricPath()); - SetPaperName(wxThePrintPaperDatabase->ConvertIdToName(data.GetPaperId())); - SetColour(data.GetColour()); - SetPrinterFile(data.GetFilename()); -} - -void wxInitializePrintSetupData(bool init) -{ - if (init) - { - wxThePrintSetupData = new wxPrintSetupData; - - wxThePrintSetupData->SetPrintPreviewCommand(PS_VIEWER_PROG); - wxThePrintSetupData->SetPrinterOrientation(wxPORTRAIT); - wxThePrintSetupData->SetPrinterMode(wxPRINT_MODE_PREVIEW); - wxThePrintSetupData->SetPaperName(_("A4 sheet, 210 x 297 mm")); - - // Could have a .ini file to read in some defaults - // - and/or use environment variables, e.g. WXWIN -#ifdef __VMS__ - wxThePrintSetupData->SetPrinterCommand("print"); - wxThePrintSetupData->SetPrinterOptions("/nonotify/queue=psqueue"); - wxThePrintSetupData->SetAFMPath("sys$ps_font_metrics:"); -#endif -#ifdef __WXMSW__ - wxThePrintSetupData->SetPrinterCommand("print"); - wxThePrintSetupData->SetAFMPath("c:\\windows\\system\\"); - wxThePrintSetupData->SetPrinterOptions(""); -#endif -#if !defined(__VMS__) && !defined(__WXMSW__) - wxThePrintSetupData->SetPrinterCommand("lpr"); - wxThePrintSetupData->SetPrinterOptions(""); - wxThePrintSetupData->SetAFMPath(""); -#endif - } - else - { - if (wxThePrintSetupData) - delete wxThePrintSetupData; - wxThePrintSetupData = (wxPrintSetupData *) NULL; - } -} - -// A module to allow initialization/cleanup of PostScript-related -// things without calling these functions from app.cpp. - -class WXDLLEXPORT wxPostScriptModule: public wxModule -{ -DECLARE_DYNAMIC_CLASS(wxPostScriptModule) -public: - wxPostScriptModule() {} - bool OnInit(); - void OnExit(); -}; - -IMPLEMENT_DYNAMIC_CLASS(wxPostScriptModule, wxModule) - -/* - * Initialization/cleanup module - */ - -bool wxPostScriptModule::OnInit() -{ - wxInitializePrintSetupData(); - - return TRUE; -} - -void wxPostScriptModule::OnExit() -{ - wxInitializePrintSetupData(FALSE); -} - -#endif - // wxUSE_POSTSCRIPT diff --git a/src/generic/dirdlgg.cpp b/src/generic/dirdlgg.cpp deleted file mode 100644 index ef802459fa..0000000000 --- a/src/generic/dirdlgg.cpp +++ /dev/null @@ -1,503 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: Harm van der Heijden and Robert Roebling -// Modified by: -// Created: 12/12/98 -// Copyright: (c) Harm van der Heijden and Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dirdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/button.h" -#include "wx/layout.h" -#include "wx/msgdlg.h" -#include "wx/textdlg.h" -#include "wx/filefn.h" -#include "wx/cmndata.h" -#include "wx/gdicmn.h" -#include "wx/intl.h" -#include "wx/imaglist.h" -#include "wx/icon.h" - -#include "wx/generic/dirdlgg.h" - -// If compiled under Windows, this macro can cause problems -#ifdef GetFirstChild -#undef GetFirstChild -#endif - -/* XPM */ -static char * icon1_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 6 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffff00", -"$ c #ffffff", -/* pixels */ -" ", -" @@@@@ ", -" @#+#+#@ ", -" @#+#+#+#@@@@@@ ", -" @$$$$$$$$$$$$@.", -" @$#+#+#+#+#+#@.", -" @$+#+#+#+#+#+@.", -" @$#+#+#+#+#+#@.", -" @$+#+#+#+#+#+@.", -" @$#+#+#+#+#+#@.", -" @$+#+#+#+#+#+@.", -" @$#+#+#+#+#+#@.", -" @@@@@@@@@@@@@@.", -" ..............", -" ", -" "}; - -/* XPM */ -static char * icon2_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 6 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffff00", -"$ c #ffffff", -/* pixels */ -" ", -" @@@@@ ", -" @$$$$$@ ", -" @$#+#+#$@@@@@@ ", -" @$+#+#+$$$$$$@.", -" @$#+#+#+#+#+#@.", -"@@@@@@@@@@@@@#@.", -"@$$$$$$$$$$@@+@.", -"@$#+#+#+#+##.@@.", -" @$#+#+#+#+#+.@.", -" @$+#+#+#+#+#.@.", -" @$+#+#+#+##@..", -" @@@@@@@@@@@@@.", -" .............", -" ", -" "}; - -static const int ID_DIRCTRL = 1000; -static const int ID_TEXTCTRL = 1001; -static const int ID_OK = 1002; -static const int ID_CANCEL = 1003; -static const int ID_NEW = 1004; -//static const int ID_CHECK = 1005; - -//----------------------------------------------------------------------------- -// wxDirItemData -//----------------------------------------------------------------------------- - -class wxDirItemData : public wxTreeItemData -{ -public: - wxDirItemData(wxString& path, wxString& name); - ~wxDirItemData(); - bool HasSubDirs(); - wxString *m_path, *m_name; - bool m_isHidden; - bool m_hasSubDirs; -}; - -//----------------------------------------------------------------------------- -// wxDirCtrl -//----------------------------------------------------------------------------- - -class wxDirCtrl: public wxTreeCtrl -{ - DECLARE_DYNAMIC_CLASS(wxDirCtrl) - - public: - bool m_showHidden; - wxTreeItemId m_rootId; - - wxDirCtrl(void); - wxDirCtrl(wxWindow *parent, const wxWindowID id = -1, - const wxString &dir = "/", - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const long style = wxTR_HAS_BUTTONS, - const wxString& name = "wxTreeCtrl" ); - void OnExpandItem(wxTreeEvent &event ); - void OnCollapseItem(wxTreeEvent &event ); - void ShowHidden( const bool yesno ); - DECLARE_EVENT_TABLE() - protected: - void CreateItems(const wxTreeItemId &parent); - void SetupSections(void); - wxArrayString m_paths, m_names; -}; - -//----------------------------------------------------------------------------- -// wxDirItemData -//----------------------------------------------------------------------------- - -wxDirItemData::wxDirItemData(wxString& path, wxString& name) -{ - m_path = new wxString(path); - m_name = new wxString(name); - /* Insert logic to detect hidden files here - * In UnixLand we just check whether the first char is a dot - * For FileNameFromPath read LastDirNameInThisPath ;-) */ - // m_isHidden = (bool)(wxFileNameFromPath(*m_path)[0] == '.'); - m_isHidden = FALSE; - m_hasSubDirs = HasSubDirs(); -} - -wxDirItemData:: ~wxDirItemData() -{ - delete m_path; - delete m_name; -} - -bool wxDirItemData::HasSubDirs() -{ - wxString search = *m_path + "/*"; - wxString path = wxFindFirstFile( search, wxDIR ); - return (bool)(!path.IsNull()); -} - -//----------------------------------------------------------------------------- -// wxDirCtrl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxDirCtrl,wxTreeCtrl) - -BEGIN_EVENT_TABLE(wxDirCtrl,wxTreeCtrl) - EVT_TREE_ITEM_EXPANDING (-1, wxDirCtrl::OnExpandItem) - EVT_TREE_ITEM_COLLAPSED (-1, wxDirCtrl::OnCollapseItem) -END_EVENT_TABLE() - -wxDirCtrl::wxDirCtrl(void) -{ - m_showHidden = FALSE; -}; - -wxDirCtrl::wxDirCtrl(wxWindow *parent, const wxWindowID id, const wxString &WXUNUSED(dir), - const wxPoint& pos, const wxSize& size, - const long style, const wxString& name ) - : - wxTreeCtrl( parent, id, pos, size, style, wxDefaultValidator, name ) -{ - m_imageListNormal = new wxImageList(16, 16, TRUE); - m_imageListNormal->Add(wxICON(icon1)); - m_imageListNormal->Add(wxICON(icon2)); - SetImageList(m_imageListNormal); - - m_showHidden = FALSE; - m_rootId = AddRoot("Sections"); - SetItemHasChildren(m_rootId); - Expand(m_rootId); // automatically expand first level -}; - -/* Quick macro. Don't worry, I'll #undef it later */ -#define ADD_SECTION(a,b) \ - if (wxPathExists((a))) { m_paths.Add( (a) ); m_names.Add( (b) ); }; - -void wxDirCtrl::SetupSections() -{ - wxString home; - - m_paths.Clear(); - m_names.Clear(); - ADD_SECTION(_T("/"), _("The Computer") ) - wxGetHomeDir(&home); - ADD_SECTION(home, _("My Home") ) - ADD_SECTION(_T("/mnt"), _("Mounted Devices") ) - ADD_SECTION(_T("/usr"), _("User") ) - ADD_SECTION(_T("/usr/local"), _("User Local") ) - ADD_SECTION(_T("/var"), _("Variables") ) - ADD_SECTION(_T("/etc"), _("Etcetera") ) - ADD_SECTION(_T("/tmp"), _("Temporary") ) -} -#undef ADD_SECTION - -void wxDirCtrl::CreateItems(const wxTreeItemId &parent) -{ - wxTreeItemId id; - wxDirItemData *dir_item; - -// wxASSERT(m_paths.Count() == m_names.Count()); ? - - for (unsigned int i=0; im_hasSubDirs) SetItemHasChildren(id); - } -} - -void wxDirCtrl::OnExpandItem(wxTreeEvent &event ) -{ - if (event.GetItem() == m_rootId) - { - SetupSections(); - CreateItems(m_rootId); - return; - }; - - // This may take a longish time. Go to busy cursor - wxBeginBusyCursor(); - - wxDirItemData *data = (wxDirItemData *)GetItemData(event.GetItem()); - wxASSERT(data); - - wxString search,path,filename; - - m_paths.Clear(); - m_names.Clear(); - search = *(data->m_path) + "/*"; - for (path = wxFindFirstFile( search, wxDIR ); !path.IsNull(); - path=wxFindNextFile() ) { - filename = wxFileNameFromPath( path ); - /* Don't add "." and ".." to the tree. I think wxFindNextFile - * also checks this, but I don't quite understand what happens - * there. Also wxFindNextFile seems to swallow hidden dirs */ - if ((filename != ".") && (filename != "..")) { - m_paths.Add(path); - m_names.Add(filename); - } - } - CreateItems(event.GetItem()); - wxEndBusyCursor(); - - SortChildren( event.GetItem() ); -}; - - -void wxDirCtrl::OnCollapseItem(wxTreeEvent &event ) -{ - wxTreeItemId child, parent = event.GetItem(); - long cookie; - /* Workaround because DeleteChildren has disapeared (why?) and - * CollapseAndReset doesn't work as advertised (deletes parent too) */ - child = GetFirstChild(parent, cookie); - while (child.IsOk()) { - Delete(child); - /* Not GetNextChild below, because the cookie mechanism can't - * handle disappearing children! */ - child = GetFirstChild(parent, cookie); - } -}; - -//----------------------------------------------------------------------------- -// wxDirDialog -//----------------------------------------------------------------------------- - - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#else -IMPLEMENT_DYNAMIC_CLASS( wxDirDialog, wxDialog ) -#endif - -BEGIN_EVENT_TABLE( wxDirDialog, wxDialog ) - EVT_TREE_KEY_DOWN (ID_DIRCTRL, wxDirDialog::OnTreeKeyDown) - EVT_TREE_SEL_CHANGED (ID_DIRCTRL, wxDirDialog::OnTreeSelected) - EVT_SIZE ( wxDirDialog::OnSize) - EVT_BUTTON (ID_OK, wxDirDialog::OnOK) - EVT_BUTTON (ID_CANCEL, wxDirDialog::OnCancel) - EVT_BUTTON (ID_NEW, wxDirDialog::OnNew) - EVT_TEXT_ENTER (ID_TEXTCTRL, wxDirDialog::OnOK) - // EVT_CHECKBOX (ID_CHECK, wxDirDialog::OnCheck) -END_EVENT_TABLE() - -wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, - const wxString& defaultPath, long style, - const wxPoint& pos) : - wxDialog(parent, -1, message, pos, wxSize(300,300), - wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - - m_path = defaultPath; - - m_dir = new wxDirCtrl( this, ID_DIRCTRL, "/", wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS | wxSUNKEN_BORDER ); - m_input = new wxTextCtrl( this, ID_TEXTCTRL, m_path, wxDefaultPosition ); - // m_check = new wxCheckBox( this, ID_CHECK, _("Show hidden") ); - m_ok = new wxButton( this, ID_OK, _("OK") ); - m_cancel = new wxButton( this, ID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(75,-1) ); - m_new = new wxButton( this, ID_NEW, _("New...") ); - - // m_check->SetValue(TRUE); - m_ok->SetDefault(); - m_dir->SetFocus(); - - doSize(); -} - -void wxDirDialog::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - doSize(); -} - -void wxDirDialog::doSize() -{ - /* Figure out height of DirCtrl, which is what is left over by - * the textctrl and the buttons. Manually, because I can't seem - * to get the constraints stuff to do this */ - int w,h,h2; - - GetClientSize(&w, &h); - m_input->GetSize(&w,&h2); h -= h2; - m_ok->GetSize(&w, &h2); h -= h2; - //m_check->GetSize(&w, &h2); h -= h2; - h -= 30; - - wxLayoutConstraints *c = new wxLayoutConstraints; - c->left.SameAs (this, wxLeft,5); - c->right.SameAs (this, wxRight,5); - c->height.Absolute (h); - c->top.SameAs (this, wxTop,5); - m_dir->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.SameAs (this, wxLeft,5); - c->right.SameAs (this, wxRight,5); - c->height.AsIs (); - c->top.Below (m_dir,5); - m_input->SetConstraints(c); - - /* c = new wxLayoutConstraints; - c->left.SameAs (this, wxLeft,5); - c->right.SameAs (this, wxRight,5); - c->height.AsIs (); - c->top.Below (m_input,5); - m_check->SetConstraints(c); */ - - c = new wxLayoutConstraints; - c->width.SameAs (m_cancel, wxWidth); - c->height.AsIs (); - c->top.Below (m_input,10); - c->centreX.PercentOf (this, wxWidth, 20); - m_ok->SetConstraints(c); - - c = new wxLayoutConstraints; - c->width.SameAs (m_cancel, wxWidth); - c->height.AsIs (); - c->top.Below (m_input,10); - c->bottom.SameAs (this, wxBottom, 5); - c->centreX.PercentOf (this, wxWidth, 50); - m_new->SetConstraints(c); - - c = new wxLayoutConstraints; - c->width.AsIs (); - c->height.AsIs (); - c->top.Below (m_input,10); - c->centreX.PercentOf (this, wxWidth, 80); - m_cancel->SetConstraints(c); - - Layout(); -} - -int wxDirDialog::ShowModal() -{ - m_input->SetValue( m_path ); - return wxDialog::ShowModal(); -} - -void wxDirDialog::OnTreeSelected( wxTreeEvent &event ) -{ - wxDirItemData *data = - (wxDirItemData*)m_dir->GetItemData(event.GetItem()); - if (data) - m_input->SetValue( *(data->m_path) ); -}; - -void wxDirDialog::OnTreeKeyDown( wxTreeEvent &WXUNUSED(event) ) -{ - wxDirItemData *data = - (wxDirItemData*)m_dir->GetItemData(m_dir->GetSelection()); - if (data) - m_input->SetValue( *(data->m_path) ); -}; - -void wxDirDialog::OnOK( wxCommandEvent& WXUNUSED(event) ) -{ - m_path = m_input->GetValue(); - // Does the path exist? (User may have typed anything in m_input) - if (wxPathExists(m_path)) { - // OK, path exists, we're done. - EndModal(wxID_OK); - return; - } - // Interact with user, find out if the dir is a typo or to be created - wxString msg( _("The directory ") ); - msg = msg + m_path; - msg = msg + _("\ndoes not exist\nCreate it now?") ; - wxMessageDialog dialog(this, msg, _("Directory does not exist"), wxYES_NO); - if ( dialog.ShowModal() == wxID_YES ) { - // Okay, let's make it - if (wxMkdir(m_path)) { - // The new dir was created okay. - EndModal(wxID_OK); - return; - } - else { - // Trouble... - msg = _("Failed to create directory ")+m_path+ - _("\n(Do you have the required permissions?)"); - wxMessageDialog errmsg(this, msg, _("Error creating directory"), wxOK); - errmsg.ShowModal(); - // We still don't have a valid dir. Back to the main dialog. - } - } - // User has answered NO to create dir. -} - -void wxDirDialog::OnCancel( wxCommandEvent& WXUNUSED(event) ) -{ - EndModal(wxID_CANCEL); -} - -void wxDirDialog::OnNew( wxCommandEvent& WXUNUSED(event) ) -{ - wxTextEntryDialog dialog(this, _("Enter the name of the directory to create"), - _("Create New Directory"), m_input->GetValue(), wxOK|wxCANCEL); - - while (dialog.ShowModal() == wxID_OK) - { - // Okay, let's make it - if (wxMkdir(dialog.GetValue())) { - // The new dir was created okay. - m_path = dialog.GetValue(); - return; - } - wxString msg = _("Failed to create directory ")+dialog.GetValue()+ - _("\n(Do you have the required permissions?)") ; - wxMessageDialog errmsg(this, msg, _("Error creating directory"), wxOK); - errmsg.ShowModal(); - // Show the create dialog again, until user clicks cancel or enters - // a valid dir. - } -} - -/* -void wxDirDialog::OnCheck( wxCommandEvent& WXUNUSED(event) ) -{ - printf("Checkbox clicked: %s\n", ( m_check->GetValue() ? "on" : "off" ) ); -} -*/ diff --git a/src/generic/fontdlgg.cpp b/src/generic/fontdlgg.cpp deleted file mode 100644 index c48439da7f..0000000000 --- a/src/generic/fontdlgg.cpp +++ /dev/null @@ -1,457 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlgg.cpp -// Purpose: Generic font dialog -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fontdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/dcclient.h" -#include "wx/choice.h" -#include "wx/checkbox.h" -#include -#endif - -#include -#include - -#include "wx/cmndata.h" -#include "wx/generic/fontdlgg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGenericFontDialog, wxDialog) - -BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog) - EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont) - EVT_PAINT(wxGenericFontDialog::OnPaint) - EVT_CLOSE(wxGenericFontDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -#define NUM_COLS 48 -static wxString wxColourDialogNames[NUM_COLS]={_T("ORANGE"), - _T("GOLDENROD"), - _T("WHEAT"), - _T("SPRING GREEN"), - _T("SKY BLUE"), - _T("SLATE BLUE"), - _T("MEDIUM VIOLET RED"), - _T("PURPLE"), - - _T("RED"), - _T("YELLOW"), - _T("MEDIUM SPRING GREEN"), - _T("PALE GREEN"), - _T("CYAN"), - _T("LIGHT STEEL BLUE"), - _T("ORCHID"), - _T("LIGHT MAGENTA"), - - _T("BROWN"), - _T("YELLOW"), - _T("GREEN"), - _T("CADET BLUE"), - _T("MEDIUM BLUE"), - _T("MAGENTA"), - _T("MAROON"), - _T("ORANGE RED"), - - _T("FIREBRICK"), - _T("CORAL"), - _T("FOREST GREEN"), - _T("AQUARAMINE"), - _T("BLUE"), - _T("NAVY"), - _T("THISTLE"), - _T("MEDIUM VIOLET RED"), - - _T("INDIAN RED"), - _T("GOLD"), - _T("MEDIUM SEA GREEN"), - _T("MEDIUM BLUE"), - _T("MIDNIGHT BLUE"), - _T("GREY"), - _T("PURPLE"), - _T("KHAKI"), - - _T("BLACK"), - _T("MEDIUM FOREST GREEN"), - _T("KHAKI"), - _T("DARK GREY"), - _T("SEA GREEN"), - _T("LIGHT GREY"), - _T("MEDIUM SLATE BLUE"), - _T("WHITE") - }; - -/* - * Generic wxFontDialog - */ - -wxGenericFontDialog::wxGenericFontDialog(void) -{ - m_useEvents = FALSE; - dialogParent = NULL; -} - -wxGenericFontDialog::wxGenericFontDialog(wxWindow *parent, wxFontData *data): - wxDialog(parent, -1, _("Font"), wxPoint(0, 0), wxSize(600, 600), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL) -{ - m_useEvents = FALSE; - Create(parent, data); -} - -wxGenericFontDialog::~wxGenericFontDialog(void) -{ -} - -void wxGenericFontDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) -{ - EndModal(wxID_CANCEL); -} - -bool wxGenericFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - dialogParent = parent; - - if (data) - fontData = *data; - - InitializeFont(); - CreateWidgets(); - - return TRUE; -} - -int wxGenericFontDialog::ShowModal(void) -{ - int ret = wxDialog::ShowModal(); - - if (ret != wxID_CANCEL) - { - fontData.chosenFont = dialogFont; - } - - return ret; -} - - -void wxGenericFontDialog::OnPaint(wxPaintEvent& event) -{ - wxDialog::OnPaint(event); - - wxPaintDC dc(this); - PaintFontBackground(dc); - PaintFont(dc); -} - -/* -static void wxGenericChangeFontText(wxTextCtrl& text, wxCommandEvent& event) -{ - if (event.GetEventType() == wxEVENT_TYPE_TEXT_ENTER_COMMAND) - { - wxGenericFontDialog *dialog = (wxGenericFontDialog *)text.GetParent(); - dialog->OnChangeFont(); - } -} -*/ - -void wxGenericFontDialog::CreateWidgets(void) -{ - wxBeginBusyCursor(); - - fontRect.x = 10; -#ifdef __X__ - fontRect.y = 125; -#else - fontRect.y = 115; -#endif - fontRect.width = 430; - fontRect.height = 100; - - /* - static char *families[] = { "Roman", "Decorative", "Modern", "Script", "Swiss" }; - static char *styles[] = { "Normal", "Italic", "Slant" }; - static char *weights[] = { "Normal", "Light", "Bold" }; - */ - - wxString - *families = new wxString[6], - *styles = new wxString[3], - *weights = new wxString[3]; - families[0] = _("Roman"); - families[1] = _("Decorative"); - families[2] = _("Modern"); - families[3] = _("Script"); - families[4] = _("Swiss" ); - families[5] = _("Teletype" ); - styles[0] = _("Normal"); - styles[1] = _("Italic"); - styles[2] = _("Slant"); - weights[0] = _("Normal"); - weights[1] = _("Light"); - weights[2] = _("Bold"); - - int x=-1; - int y=40; - familyChoice = new wxChoice(this, wxID_FONT_FAMILY, wxPoint(10, 10), wxSize(120, -1), 5, families); - styleChoice = new wxChoice(this, wxID_FONT_STYLE, wxPoint(170, 10), wxSize(120, -1), 3, styles); - weightChoice = new wxChoice(this, wxID_FONT_WEIGHT, wxPoint(330, 10), wxSize(120, -1), 3, weights); - - colourChoice = new wxChoice(this, wxID_FONT_COLOUR, wxPoint(10, 40), wxSize(180, -1), NUM_COLS, wxColourDialogNames); -#if 0 // def __WXMOTIF__ // TODO: This necessary now? - // We want the pointSizeText to line up on the y axis with the colourChoice - colourChoice->GetPosition(&fontRect.x, &y); //NL mod - y+=3; //NL mod -#endif - - wxString *pointSizes = new wxString[40]; - int i; - for ( i = 0; i < 40; i++) - { - char buf[5]; - sprintf(buf, "%d", i + 1); - pointSizes[i] = buf; - } - - pointSizeChoice = new wxChoice(this, wxID_FONT_SIZE, wxPoint(230, y), wxSize(50, -1), 40, pointSizes); - underLineCheckBox = new wxCheckBox(this, wxID_FONT_UNDERLINE, _("Underline"), wxPoint(320, y)); - - int rectY; - pointSizeChoice->GetPosition(&x, &rectY); //NL mod - fontRect.y = rectY; - pointSizeChoice->GetSize(&x, &y); //NL mod - - // Calculate the position of the bottom of the pointSizeChoice, and place - // the fontRect there (+5 for a nice gap) - - fontRect.y+=y+5; //NL mod - - int by = (fontRect.y + fontRect.height + 15); - - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(230, by), wxSize(75,-1)); - (void) new wxButton(this, wxID_OK, _("Cancel"), wxPoint(330, by), wxSize(75,-1)); - - familyChoice->SetStringSelection( wxFontFamilyIntToString(dialogFont.GetFamily()) ); - styleChoice->SetStringSelection(wxFontStyleIntToString(dialogFont.GetStyle())); - weightChoice->SetStringSelection(wxFontWeightIntToString(dialogFont.GetWeight())); - wxString name(wxTheColourDatabase->FindName(fontData.fontColour)); - colourChoice->SetStringSelection(name); - - underLineCheckBox->SetValue(dialogFont.GetUnderlined()); - pointSizeChoice->SetSelection(dialogFont.GetPointSize()-1); - - okButton->SetDefault(); - - // SetClientSize(450, by + 40); - Fit(); - - Centre(wxBOTH); - - wxEndBusyCursor(); - - delete[] families; - delete[] styles; - delete[] weights; - delete[] pointSizes; - m_useEvents = TRUE; -} - -void wxGenericFontDialog::InitializeFont(void) -{ - int fontFamily = wxSWISS; - int fontWeight = wxNORMAL; - int fontStyle = wxNORMAL; - int fontSize = 12; - int fontUnderline = FALSE; - if (fontData.initialFont.Ok()) - { - fontFamily = fontData.initialFont.GetFamily(); - fontWeight = fontData.initialFont.GetWeight(); - fontStyle = fontData.initialFont.GetStyle(); - fontSize = fontData.initialFont.GetPointSize(); - fontUnderline = fontData.initialFont.GetUnderlined(); - } - dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); -} - -void wxGenericFontDialog::PaintFontBackground(wxDC& dc) -{ - dc.BeginDrawing(); - - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxWHITE_BRUSH); - dc.DrawRectangle( fontRect.x, fontRect.y, fontRect.width, fontRect.height); - dc.EndDrawing(); -} - -void wxGenericFontDialog::PaintFont(wxDC& dc) -{ - dc.BeginDrawing(); - if (dialogFont.Ok()) - { - dc.SetFont(dialogFont); - // Calculate vertical centre - long w, h; - dc.GetTextExtent("X", &w, &h); - float cx = (float)(fontRect.x + 10); - float cy = (float)(fontRect.y + (fontRect.height/2.0) - (h/2.0)); - dc.SetTextForeground(fontData.fontColour); - dc.SetClippingRegion( fontRect.x, fontRect.y, (long)(fontRect.width-2.0), (long)(fontRect.height-2.0)); - dc.DrawText(_("ABCDEFGabcdefg12345"), (long)cx, (long)cy); - dc.DestroyClippingRegion(); - dc.SetFont(wxNullFont); - } - dc.EndDrawing(); -} - -void wxGenericFontDialog::OnChangeFont(wxCommandEvent& WXUNUSED(event)) -{ - if (!m_useEvents) return; - - int fontFamily = 0; /* shut up buggy egcs warnings */ - fontFamily = wxFontFamilyStringToInt(WXSTRINGCAST familyChoice->GetStringSelection()); - int fontWeight = 0; - fontWeight = wxFontWeightStringToInt(WXSTRINGCAST weightChoice->GetStringSelection()); - int fontStyle = 0; - fontStyle = wxFontStyleStringToInt(WXSTRINGCAST styleChoice->GetStringSelection()); - int fontSize = wxAtoi(pointSizeChoice->GetStringSelection()); - int fontUnderline = underLineCheckBox->GetValue(); - - dialogFont = wxFont(fontSize, fontFamily, fontStyle, fontWeight, (fontUnderline != 0)); - if (colourChoice->GetStringSelection() != _T("")) - { - wxColour *col = (wxColour*) NULL; - col = wxTheColourDatabase->FindColour(colourChoice->GetStringSelection()); - if (col) - { - fontData.fontColour = *col; - } - } - wxClientDC dc(this); - PaintFontBackground(dc); - PaintFont(dc); -} - -wxChar *wxFontWeightIntToString(int weight) -{ - switch (weight) - { - case wxLIGHT: - return _T("Light"); - case wxBOLD: - return _T("Bold"); - case wxNORMAL: - default: - return _T("Normal"); - } - return _T("Normal"); -} - -wxChar *wxFontStyleIntToString(int style) -{ - switch (style) - { - case wxITALIC: - return _T("Italic"); - case wxSLANT: - return _T("Slant"); - case wxNORMAL: - default: - return _T("Normal"); - } - return _T("Normal"); -} - -wxChar *wxFontFamilyIntToString(int family) -{ - switch (family) - { - case wxROMAN: - return _T("Roman"); - case wxDECORATIVE: - return _T("Decorative"); - case wxMODERN: - return _T("Modern"); - case wxSCRIPT: - return _T("Script"); - case wxTELETYPE: - return _T("Teletype"); - case wxSWISS: - default: - return _T("Swiss"); - } - return _T("Swiss"); -} - -int wxFontFamilyStringToInt(wxChar *family) -{ - if (!family) - return wxSWISS; - - if (wxStrcmp(family, _T("Roman")) == 0) - return wxROMAN; - else if (wxStrcmp(family, _T("Decorative")) == 0) - return wxDECORATIVE; - else if (wxStrcmp(family, _T("Modern")) == 0) - return wxMODERN; - else if (wxStrcmp(family, _T("Script")) == 0) - return wxSCRIPT; - else if (wxStrcmp(family, _T("Teletype")) == 0) - return wxTELETYPE; - else return wxSWISS; -} - -int wxFontStyleStringToInt(wxChar *style) -{ - if (!style) - return wxNORMAL; - if (wxStrcmp(style, _T("Italic")) == 0) - return wxITALIC; - else if (wxStrcmp(style, _T("Slant")) == 0) - return wxSLANT; - else - return wxNORMAL; -} - -int wxFontWeightStringToInt(wxChar *weight) -{ - if (!weight) - return wxNORMAL; - if (wxStrcmp(weight, _T("Bold")) == 0) - return wxBOLD; - else if (wxStrcmp(weight, _T("Light")) == 0) - return wxLIGHT; - else - return wxNORMAL; -} - - diff --git a/src/generic/gridg.cpp b/src/generic/gridg.cpp deleted file mode 100644 index bfd5c3928b..0000000000 --- a/src/generic/gridg.cpp +++ /dev/null @@ -1,2566 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gridg.cpp -// Purpose: wxGenericGrid -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gridg.h" -#pragma interface -#endif - -// 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 - -#include "wx/string.h" -#include "wx/generic/gridg.h" -#include "wx/settings.h" - -// Set to zero to use no double-buffering -#ifdef __WXMSW__ -#define wxUSE_DOUBLE_BUFFERING 1 -#else -#define wxUSE_DOUBLE_BUFFERING 0 -#endif - -#define wxGRID_DRAG_NONE 0 -#define wxGRID_DRAG_LEFT_RIGHT 1 -#define wxGRID_DRAG_UP_DOWN 2 - -IMPLEMENT_DYNAMIC_CLASS(wxGenericGrid, wxPanel) -IMPLEMENT_DYNAMIC_CLASS(wxGridEvent, wxEvent) - -BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel) - EVT_SIZE(wxGenericGrid::OnSize) - EVT_PAINT(wxGenericGrid::OnPaint) - EVT_ERASE_BACKGROUND(wxGenericGrid::OnEraseBackground) - EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent) - EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText) - EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll) - EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll) - - // default wxGridEvent handlers - EVT_GRID_SELECT_CELL(wxGenericGrid::_OnSelectCell) - EVT_GRID_CREATE_CELL(wxGenericGrid::_OnCreateCell) - EVT_GRID_CHANGE_LABELS(wxGenericGrid::_OnChangeLabels) - EVT_GRID_CHANGE_SEL_LABEL(wxGenericGrid::_OnChangeSelectionLabel) - EVT_GRID_CELL_CHANGE(wxGenericGrid::_OnCellChange) - EVT_GRID_CELL_LCLICK(wxGenericGrid::_OnCellLeftClick) - EVT_GRID_CELL_RCLICK(wxGenericGrid::_OnCellRightClick) - EVT_GRID_LABEL_LCLICK(wxGenericGrid::_OnLabelLeftClick) - EVT_GRID_LABEL_RCLICK(wxGenericGrid::_OnLabelRightClick) - -END_EVENT_TABLE() - - - - -wxGenericGrid::wxGenericGrid(void) -{ - m_batchCount = 0; - m_hScrollBar = (wxScrollBar *) NULL; - m_vScrollBar = (wxScrollBar *) NULL; - m_cellTextColour = *wxBLACK; - m_cellBackgroundColour = *wxWHITE; - m_labelTextColour = *wxBLACK; -// m_labelBackgroundColour = *wxLIGHT_GREY; - m_labelBackgroundColour = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - m_labelBackgroundBrush = wxNullBrush; - m_labelTextFont = wxNullFont; - m_cellTextFont = wxNullFont; - m_textItem = (wxTextCtrl *) NULL; - m_currentRectVisible = FALSE; - m_editable = TRUE; -#if defined(__WIN95__) - m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X); -#elif defined(__WXGTK__) - m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X); -#else - m_scrollWidth = 16; -#endif - m_dragStatus = wxGRID_DRAG_NONE; - m_dragRowOrCol = 0; - m_dragStartPosition = 0; - m_dragLastPosition = 0; - m_divisionPen = wxNullPen; - m_leftOfSheet = wxGRID_DEFAULT_SHEET_LEFT; - m_topOfSheet = wxGRID_DEFAULT_SHEET_TOP; - m_cellHeight = wxGRID_DEFAULT_CELL_HEIGHT; - m_totalGridWidth = 0; - m_totalGridHeight = 0; - m_colWidths = (short *) NULL; - m_rowHeights = (short *) NULL; - m_verticalLabelWidth = wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH; - m_horizontalLabelHeight = wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT; - m_verticalLabelAlignment = wxCENTRE; - m_horizontalLabelAlignment = wxCENTRE; - m_editControlPosition.x = wxGRID_DEFAULT_EDIT_X; - m_editControlPosition.y = wxGRID_DEFAULT_EDIT_Y; - m_editControlPosition.width = wxGRID_DEFAULT_EDIT_WIDTH; - m_editControlPosition.height = wxGRID_DEFAULT_EDIT_HEIGHT; - m_wCursorRow = 0; - m_wCursorColumn = 0; - m_scrollPosX = 0; - m_scrollPosY = 0; - m_editCreated = FALSE; - m_totalRows = 0; - m_totalCols = 0; - m_gridCells = (wxGridCell ***) NULL; - m_rowLabelCells = (wxGridCell **) NULL; - m_colLabelCells = (wxGridCell **) NULL; - m_textItem = (wxTextCtrl *) NULL; -} - -bool wxGenericGrid::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_batchCount = 0; - m_editingPanel = (wxPanel *) NULL; - m_hScrollBar = (wxScrollBar *) NULL; - m_vScrollBar = (wxScrollBar *) NULL; - m_cellTextColour = *wxBLACK; - m_cellBackgroundColour = *wxWHITE; - m_labelTextColour = *wxBLACK; -// m_labelBackgroundColour = *wxLIGHT_GREY; - m_labelBackgroundColour = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - m_labelBackgroundBrush = wxNullBrush; - m_labelTextFont = * wxTheFontList->FindOrCreateFont(10, wxSWISS, wxNORMAL, wxBOLD); - m_cellTextFont = * wxTheFontList->FindOrCreateFont(10, wxSWISS, wxNORMAL, wxNORMAL); - m_textItem = (wxTextCtrl *) NULL; - m_currentRectVisible = FALSE; - m_editable = TRUE; -#if defined(__WIN95__) - m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X); -#elif defined(__WXGTK__) - m_scrollWidth = wxSystemSettings::GetSystemMetric(wxSYS_VSCROLL_X); -#else - m_scrollWidth = 16; -#endif - m_dragStatus = wxGRID_DRAG_NONE; - m_dragRowOrCol = 0; - m_dragStartPosition = 0; - m_dragLastPosition = 0; - m_divisionPen = * wxThePenList->FindOrCreatePen("LIGHT GREY", 1, wxSOLID); - m_doubleBufferingBitmap = (wxBitmap *) NULL; - - if (!m_horizontalSashCursor.Ok()) - { - m_horizontalSashCursor = wxCursor(wxCURSOR_SIZEWE); - m_verticalSashCursor = wxCursor(wxCURSOR_SIZENS); - } - - SetLabelBackgroundColour(m_labelBackgroundColour); - - m_leftOfSheet = wxGRID_DEFAULT_SHEET_LEFT; - m_topOfSheet = wxGRID_DEFAULT_SHEET_TOP; - m_cellHeight = wxGRID_DEFAULT_CELL_HEIGHT; - m_totalGridWidth = 0; - m_totalGridHeight = 0; - m_colWidths = (short *) NULL; - m_rowHeights = (short *) NULL; - - m_verticalLabelWidth = wxGRID_DEFAULT_VERTICAL_LABEL_WIDTH; - m_horizontalLabelHeight = wxGRID_DEFAULT_HORIZONAL_LABEL_HEIGHT; - m_verticalLabelAlignment = wxCENTRE; - m_horizontalLabelAlignment = wxCENTRE; - m_editControlPosition.x = wxGRID_DEFAULT_EDIT_X; - m_editControlPosition.y = wxGRID_DEFAULT_EDIT_Y; - m_editControlPosition.width = wxGRID_DEFAULT_EDIT_WIDTH; - m_editControlPosition.height = wxGRID_DEFAULT_EDIT_HEIGHT; - - m_wCursorRow = 0; - m_wCursorColumn = 0; - - m_scrollPosX = 0; - m_scrollPosY = 0; - - /* Store the rect. coordinates for the current cell */ - SetCurrentRect(m_wCursorRow, m_wCursorColumn); - - m_editCreated = FALSE; - - m_totalRows = 0; - m_totalCols = 0; - m_gridCells = (wxGridCell ***) NULL; - m_rowLabelCells = (wxGridCell **) NULL; - m_colLabelCells = (wxGridCell **) NULL; - m_textItem = (wxTextCtrl *) NULL; - - wxPanel::Create(parent, id, pos, size, style, name); - - m_editingPanel = new wxPanel(this); - - m_textItem = new wxTextCtrl(m_editingPanel, wxGRID_TEXT_CTRL, "", - wxPoint(m_editControlPosition.x, m_editControlPosition.y), wxSize(m_editControlPosition.width, -1), - 0); - m_textItem->Show(TRUE); - m_textItem->SetFocus(); - int controlW, controlH; - - m_textItem->GetSize(&controlW, &controlH); - m_editControlPosition.height = controlH; - - m_topOfSheet = m_editControlPosition.y + controlH + 2; - - m_editCreated = TRUE; - - m_hScrollBar = new wxScrollBar(this, wxGRID_HSCROLL, wxPoint(0, 0), wxSize(20, 100), wxHORIZONTAL); - m_vScrollBar = new wxScrollBar(this, wxGRID_VSCROLL, wxPoint(0, 0), wxSize(100, 20), wxVERTICAL); - -// SetSize(pos.x, pos.y, size.x, size.y); - - return TRUE; -} - -wxGenericGrid::~wxGenericGrid(void) -{ - ClearGrid(); -} - -void wxGenericGrid::ClearGrid(void) -{ - int i,j; - if (m_gridCells) - { - for (i = 0; i < m_totalRows; i++) - { - for (j = 0; j < m_totalCols; j++) - if (m_gridCells[i][j]) - delete m_gridCells[i][j]; - delete[] m_gridCells[i]; - } - delete[] m_gridCells; - m_gridCells = (wxGridCell ***) NULL; - } - if (m_colWidths) - delete[] m_colWidths; - m_colWidths = (short *) NULL; - if (m_rowHeights) - delete[] m_rowHeights; - m_rowHeights = (short *) NULL; - - if (m_rowLabelCells) - { - for (i = 0; i < m_totalRows; i++) - delete m_rowLabelCells[i]; - delete[] m_rowLabelCells; - m_rowLabelCells = (wxGridCell **) NULL; - } - if (m_colLabelCells) - { - for (i = 0; i < m_totalCols; i++) - delete m_colLabelCells[i]; - delete[] m_colLabelCells; - m_colLabelCells = (wxGridCell **) NULL; - } - if (m_doubleBufferingBitmap) - { - delete m_doubleBufferingBitmap; - m_doubleBufferingBitmap = (wxBitmap *) NULL; - } -} - -bool wxGenericGrid::CreateGrid(int nRows, int nCols, wxString **cellValues, short *widths, - short defaultWidth, short defaultHeight) -{ - m_totalRows = nRows; - m_totalCols = nCols; - - int i,j; - m_colWidths = new short[nCols]; - m_rowHeights = new short[nRows]; - for (i = 0; i < nCols; i++) - if (widths) - m_colWidths[i] = widths[i]; - else - m_colWidths[i] = defaultWidth; - for (i = 0; i < nRows; i++) - m_rowHeights[i] = defaultHeight; - - m_gridCells = new wxGridCell **[nRows]; - - for (i = 0; i < nRows; i++) - m_gridCells[i] = new wxGridCell *[nCols]; - - for (i = 0; i < nRows; i++) - for (j = 0; j < nCols; j++) - if (cellValues) - { - //m_gridCells[i][j] = OnCreateCell(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CREATE_CELL, this, i, j); - GetEventHandler()->ProcessEvent(g_evt); - m_gridCells[i][j] = g_evt.m_cell; - m_gridCells[i][j]->SetTextValue(cellValues[i][j]); - } - else - m_gridCells[i][j] = (wxGridCell *) NULL; - - m_rowLabelCells = new wxGridCell *[nRows]; - for (i = 0; i < nRows; i++) - m_rowLabelCells[i] = new wxGridCell(this); - m_colLabelCells = new wxGridCell *[nCols]; - for (i = 0; i < nCols; i++) - m_colLabelCells[i] = new wxGridCell(this); - - m_wCursorRow = m_wCursorColumn = 0; - SetCurrentRect(0, 0); - - // Need to determine various dimensions - UpdateDimensions(); - - // Number of 'lines' - int objectSizeX = m_totalCols; - int pageSizeX = 1; - int viewLengthX = m_totalCols; - -/* - m_hScrollBar->SetViewLength(viewLengthX); - m_hScrollBar->SetObjectLength(objectSizeX); - m_hScrollBar->SetPageSize(pageSizeX); -*/ - m_hScrollBar->SetScrollbar(m_hScrollBar->GetThumbPosition(), pageSizeX, objectSizeX, viewLengthX); - - int objectSizeY = m_totalRows; - int pageSizeY = 1; - int viewLengthY = m_totalRows; - -/* - m_vScrollBar->SetViewLength(viewLengthY); - m_vScrollBar->SetObjectLength(objectSizeY); - m_vScrollBar->SetPageSize(pageSizeY); -*/ - - m_vScrollBar->SetScrollbar(m_vScrollBar->GetThumbPosition(), pageSizeY, objectSizeY, viewLengthY); - - AdjustScrollbars(); - - //OnChangeLabels(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CHANGE_LABELS, this); - GetEventHandler()->ProcessEvent(g_evt); - - //OnChangeSelectionLabel(); - wxGridEvent g_evt2(GetId(), wxEVT_GRID_CHANGE_SEL_LABEL, this); - GetEventHandler()->ProcessEvent(g_evt2); - - return TRUE; -} - -// Need to determine various dimensions -void wxGenericGrid::UpdateDimensions(void) -{ - int canvasWidth, canvasHeight; - GetSize(&canvasWidth, &canvasHeight); - - if (m_editCreated && m_editable) - { - int controlW, controlH; - GetTextItem()->GetSize(&controlW, &controlH); - m_topOfSheet = m_editControlPosition.y + controlH + 2; - } - else - m_topOfSheet = 0; - m_rightOfSheet = m_leftOfSheet + m_verticalLabelWidth; - int i; - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (m_rightOfSheet > canvasWidth) - break; - else - m_rightOfSheet += m_colWidths[i]; - } - m_bottomOfSheet = m_topOfSheet + m_horizontalLabelHeight; - for (i = m_scrollPosY; i < m_totalRows; i++) - { - if (m_bottomOfSheet > canvasHeight) - break; - else - m_bottomOfSheet += m_rowHeights[i]; - } - - m_totalGridWidth = m_leftOfSheet + m_verticalLabelWidth; - for (i = 0; i < m_totalCols; i++) - { - m_totalGridWidth += m_colWidths[i]; - } - m_totalGridHeight = m_topOfSheet + m_horizontalLabelHeight; - for (i = 0; i < m_totalRows; i++) - { - m_totalGridHeight += m_rowHeights[i]; - } -} - -wxGridCell *wxGenericGrid::GetCell(int row, int col) const -{ - if (!m_gridCells) - return (wxGridCell *) NULL; - - if ((row >= m_totalRows) || (col >= m_totalCols)) - return (wxGridCell *) NULL; - - wxGridCell *cell = m_gridCells[row][col]; - if (!cell) - { - // m_gridCells[row][col] = OnCreateCell(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CREATE_CELL, (wxGenericGrid*) this, row, col); - GetEventHandler()->ProcessEvent(g_evt); - m_gridCells[row][col] = g_evt.m_cell; - return m_gridCells[row][col]; - } - else - return cell; -} - -void wxGenericGrid::SetGridClippingRegion(wxDC *dc) -{ - int m_scrollWidthHoriz = 0; - int m_scrollWidthVert = 0; - int cw, ch; - GetClientSize(&cw, &ch); - - if (m_hScrollBar && m_hScrollBar->IsShown()) - m_scrollWidthHoriz = m_scrollWidth; - if (m_vScrollBar && m_vScrollBar->IsShown()) - m_scrollWidthVert = m_scrollWidth; - - // Don't paint over the scrollbars - dc->SetClippingRegion(m_leftOfSheet, m_topOfSheet, - cw - m_scrollWidthVert - m_leftOfSheet, ch - m_scrollWidthHoriz - m_topOfSheet); -} - -void wxGenericGrid::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - int w, h; - GetClientSize(&w, &h); - - bool useDoubleBuffering = (bool) wxUSE_DOUBLE_BUFFERING; - if (useDoubleBuffering) - { - // Reuse the old bitmap if possible - - if (!m_doubleBufferingBitmap || - (m_doubleBufferingBitmap->GetWidth() < w || m_doubleBufferingBitmap->GetHeight() < h)) - { - if (m_doubleBufferingBitmap) - delete m_doubleBufferingBitmap; - m_doubleBufferingBitmap = new wxBitmap(w, h); - } - if (!m_doubleBufferingBitmap || !m_doubleBufferingBitmap->Ok()) - { - // If we couldn't create a new bitmap, perhaps because resources were low, - // then don't complain, just don't double-buffer - if (m_doubleBufferingBitmap) - delete m_doubleBufferingBitmap; - m_doubleBufferingBitmap = (wxBitmap *) NULL; - useDoubleBuffering = FALSE; - } - } - - if (useDoubleBuffering) - { - wxPaintDC paintDC(this); - wxMemoryDC dc(& paintDC); - dc.SelectObject(* m_doubleBufferingBitmap); - - PaintGrid(dc); - - int vertScrollBarWidth = m_scrollWidth; - int horizScrollBarHeight = m_scrollWidth; - if (m_vScrollBar && !m_vScrollBar->IsShown()) - vertScrollBarWidth = 0; - if (m_hScrollBar && !m_hScrollBar->IsShown()) - horizScrollBarHeight = 0; - - paintDC.Blit(m_leftOfSheet, m_topOfSheet, w - vertScrollBarWidth - m_leftOfSheet, h - horizScrollBarHeight - m_topOfSheet, - &dc, m_leftOfSheet, m_topOfSheet, wxCOPY); - - dc.SelectObject(wxNullBitmap); - } - else - { - wxPaintDC dc(this); - PaintGrid(dc); - } -} - -void wxGenericGrid::PaintGrid(wxDC& dc) -{ - dc.BeginDrawing(); - dc.SetOptimization(FALSE); - - SetGridClippingRegion(& dc); - - DrawLabelAreas(& dc); - - DrawEditableArea(& dc); - DrawColumnLabels(& dc); - DrawRowLabels(& dc); - DrawCells(& dc); - DrawGridLines(& dc); - - /* Hilight present cell */ - SetCurrentRect(m_wCursorRow, m_wCursorColumn); - if (m_currentRectVisible) - HighlightCell(& dc); - - dc.DestroyClippingRegion(); - dc.SetOptimization(TRUE); - dc.EndDrawing(); -} - -// Erase (some of) the background. -// Currently, a Windows-only optimisation. -void wxGenericGrid::OnEraseBackground(wxEraseEvent& WXUNUSED(event) ) -{ - wxClientDC dc(this); - dc.BeginDrawing(); - dc.SetOptimization(FALSE); - - int w, h; - GetClientSize(& w, & h); - dc.SetBrush(*wxLIGHT_GREY_BRUSH); - dc.SetPen(*wxLIGHT_GREY_PEN); - - if (m_hScrollBar && m_hScrollBar->IsShown() && m_vScrollBar && m_vScrollBar->IsShown()) - { - dc.DrawRectangle(w - m_scrollWidth, h - m_scrollWidth, m_scrollWidth, m_scrollWidth); - } - - dc.SetOptimization(TRUE); - dc.EndDrawing(); -} - - -void wxGenericGrid::DrawLabelAreas(wxDC *dc) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - dc->SetPen(*wxTRANSPARENT_PEN); -// dc->SetBrush(*dc->GetBackground()); - - // Should blank out any area which isn't going to be painted over. -// dc->DrawRectangle(m_leftOfSheet, m_bottomOfSheet, cw - m_leftOfSheet, ch - m_bottomOfSheet); -// dc->DrawRectangle(m_rightOfSheet, m_topOfSheet, cw - m_rightOfSheet, ch - m_topOfSheet); - - // Paint the label areas - dc->SetBrush(m_labelBackgroundBrush); -// dc->DrawRectangle(m_leftOfSheet, m_topOfSheet, m_rightOfSheet - m_leftOfSheet + 1, m_horizontalLabelHeight + 1); - dc->DrawRectangle(m_leftOfSheet, m_topOfSheet, cw-m_leftOfSheet, m_horizontalLabelHeight + 1); -// dc->DrawRectangle(m_leftOfSheet, m_topOfSheet, m_verticalLabelWidth + 1, m_bottomOfSheet - m_topOfSheet + 1); - dc->DrawRectangle(m_leftOfSheet, m_topOfSheet, m_verticalLabelWidth + 1, ch-m_topOfSheet); -} - -void wxGenericGrid::DrawEditableArea(wxDC *dc) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - dc->SetPen(*wxTRANSPARENT_PEN); - dc->SetBrush(*wxTheBrushList->FindOrCreateBrush(m_cellBackgroundColour, wxSOLID)); -// dc->DrawRectangle(m_leftOfSheet+m_verticalLabelWidth, m_topOfSheet+m_horizontalLabelHeight, -// m_rightOfSheet-(m_leftOfSheet+m_verticalLabelWidth) + 1, m_bottomOfSheet - (m_topOfSheet+m_horizontalLabelHeight) + 1); - dc->DrawRectangle(m_leftOfSheet+m_verticalLabelWidth, m_topOfSheet+m_horizontalLabelHeight, - cw-(m_leftOfSheet+m_verticalLabelWidth), ch - (m_topOfSheet+m_horizontalLabelHeight)); -} - -void wxGenericGrid::DrawGridLines(wxDC *dc) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - int i; - - if (m_divisionPen.Ok()) - { - dc->SetPen(m_divisionPen); - - int heightCount = m_topOfSheet + m_horizontalLabelHeight; - - // Draw horizontal grey lines for cells - for (i = m_scrollPosY; i < (m_totalRows+1); i++) - { - if (heightCount > ch) - break; - else - { - dc->DrawLine(m_leftOfSheet, heightCount, - cw, heightCount); - if (i < m_totalRows) - heightCount += m_rowHeights[i]; - } - } - } - - if (m_verticalLabelWidth > 0) - { - dc->SetPen(*wxBLACK_PEN); - - // Draw horizontal black lines for row labels - int heightCount = m_topOfSheet + m_horizontalLabelHeight; - for (i = m_scrollPosY; i < (m_totalRows+1); i++) - { - if (heightCount > ch) - break; - else - { - dc->DrawLine(m_leftOfSheet, heightCount, - m_verticalLabelWidth, heightCount); - if (i < m_totalRows) - heightCount += m_rowHeights[i]; - } - } - // Draw a black vertical line for row number cells - dc->DrawLine(m_leftOfSheet + m_verticalLabelWidth, m_topOfSheet, - m_leftOfSheet + m_verticalLabelWidth, ch); - // First vertical line - dc->DrawLine(m_leftOfSheet, m_topOfSheet, m_leftOfSheet, ch); - - dc->SetPen(*wxWHITE_PEN); - - // Draw highlights on row labels - heightCount = m_topOfSheet + m_horizontalLabelHeight; - for (i = m_scrollPosY; i < m_totalRows; i++) - { - if (heightCount > ch) - break; - else - { - dc->DrawLine(m_leftOfSheet+1, heightCount+1, - m_verticalLabelWidth, heightCount+1); - dc->DrawLine(m_leftOfSheet+1, heightCount+1, - m_leftOfSheet+1, heightCount + m_rowHeights[i] - 1); - heightCount += m_rowHeights[i]; - } - } - // Last one - down to the floor. - dc->DrawLine(m_leftOfSheet+1, heightCount+1, - m_verticalLabelWidth, heightCount+1); - dc->DrawLine(m_leftOfSheet+1, heightCount+1, - m_leftOfSheet+1, ch); - - } - - if (m_divisionPen.Ok()) - { - dc->SetPen(m_divisionPen); - - // Draw vertical grey lines for cells - int widthCount = m_leftOfSheet + m_verticalLabelWidth; - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (widthCount > cw) - break; - else - { - // Skip the first one - if (i != m_scrollPosX) - { - dc->DrawLine(widthCount, m_topOfSheet + m_horizontalLabelHeight, - widthCount, m_bottomOfSheet); - } - widthCount += m_colWidths[i]; - } - } - // Last one - dc->DrawLine(widthCount, m_topOfSheet + m_horizontalLabelHeight, - widthCount, m_bottomOfSheet); - } - - dc->SetPen(*wxBLACK_PEN); - - // Draw two black horizontal lines for column number cells - dc->DrawLine( - m_leftOfSheet, m_topOfSheet, - cw, m_topOfSheet); - dc->DrawLine(m_leftOfSheet, m_topOfSheet + m_horizontalLabelHeight, - cw, m_topOfSheet + m_horizontalLabelHeight); - - if (m_horizontalLabelHeight > 0) - { - int widthCount = m_leftOfSheet + m_verticalLabelWidth; - - // Draw black vertical lines for column number cells - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (widthCount > cw) - break; - else - { - dc->DrawLine(widthCount, m_topOfSheet, - widthCount, m_topOfSheet + m_horizontalLabelHeight); - widthCount += m_colWidths[i]; - } - } - - // Last one - dc->DrawLine(widthCount, m_topOfSheet, - widthCount, m_topOfSheet + m_horizontalLabelHeight); - - // Draw highlights - dc->SetPen(*wxWHITE_PEN); - widthCount = m_leftOfSheet + m_verticalLabelWidth; - - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (widthCount > cw) - break; - else - { - dc->DrawLine(widthCount+1, m_topOfSheet+1, - widthCount+m_colWidths[i], m_topOfSheet+1); - dc->DrawLine(widthCount+1, m_topOfSheet+1, - widthCount+1, m_topOfSheet+m_horizontalLabelHeight); - widthCount += m_colWidths[i]; - } - } - // Last one - to the right side of the canvas. - dc->DrawLine(widthCount+1, m_topOfSheet+1, - cw, m_topOfSheet+1); - dc->DrawLine(widthCount+1, m_topOfSheet+1, - widthCount+1, m_topOfSheet+m_horizontalLabelHeight); - - } -} - -void wxGenericGrid::DrawColumnLabels(wxDC *dc) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - if (m_horizontalLabelHeight == 0) - return; - - int i; - wxRect rect; - - // Draw letters for columns - rect.y = m_topOfSheet + 1; - rect.height = m_horizontalLabelHeight - 1; - - dc->SetTextBackground(m_labelBackgroundColour); - dc->SetBackgroundMode(wxTRANSPARENT); -// dc->SetTextForeground(m_labelTextColour); - - int widthCount = m_leftOfSheet + m_verticalLabelWidth; - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (widthCount > cw) - break; - else - { - rect.x = 1 + widthCount; - rect.width = m_colWidths[i]; - DrawColumnLabel(dc, &rect, i); - - widthCount += m_colWidths[i]; - } - } -} - -void wxGenericGrid::DrawColumnLabel(wxDC *dc, wxRect *rect, int col) -{ - wxGridCell *cell = GetLabelCell(wxHORIZONTAL, col); - if (cell) - { - wxRect rect2; - rect2 = *rect; - rect2.x += 3; - rect2.y += 2; - rect2.width -= 5; - rect2.height -= 4; - dc->SetTextForeground(GetLabelTextColour()); - dc->SetFont(GetLabelTextFont()); - if ( !cell->GetTextValue().IsNull() ) - DrawTextRect(dc, cell->GetTextValue(), &rect2, GetLabelAlignment(wxHORIZONTAL)); - } -} - -void wxGenericGrid::DrawRowLabels(wxDC *dc) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - if (m_verticalLabelWidth == 0) - return; - - int i; - wxRect rect; - - // Draw numbers for rows - rect.x = m_leftOfSheet; - rect.width = m_verticalLabelWidth; - - int heightCount = m_topOfSheet + m_horizontalLabelHeight; - - dc->SetTextBackground(m_labelBackgroundColour); - dc->SetBackgroundMode(wxTRANSPARENT); - - for (i = m_scrollPosY; i < m_totalRows; i++) - { - if (heightCount > ch) - break; - else - { - rect.y = 1 + heightCount; - rect.height = m_rowHeights[i]; - DrawRowLabel(dc, &rect, i); - - heightCount += m_rowHeights[i]; - } - } -} - -void wxGenericGrid::DrawRowLabel(wxDC *dc, wxRect *rect, int row) -{ - wxGridCell *cell = GetLabelCell(wxVERTICAL, row); - if (cell) - { - wxRect rect2; - rect2 = *rect; - rect2.x += 3; - rect2.y += 2; - rect2.width -= 5; - rect2.height -= 4; - dc->SetTextForeground(GetLabelTextColour()); - dc->SetFont(GetLabelTextFont()); - if ( !cell->GetTextValue().IsNull() ) - DrawTextRect(dc, cell->GetTextValue(), &rect2, GetLabelAlignment(wxVERTICAL)); - } -} - -void wxGenericGrid::DrawCells(wxDC *dc) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - int i,j; - - // Draw value corresponding to each cell - for (i = m_scrollPosY; i < m_totalRows; i++) - { - for (j = m_scrollPosX; j < m_totalCols; j++) - { - SetCurrentRect(i, j, cw, ch); - if (m_currentRectVisible) - { - DrawCellBackground(dc, &m_currentRect, i, j); - DrawCellValue(dc, &m_currentRect, i, j); - } - if (m_currentRect.x > cw) - break; - } - if (m_currentRect.y > ch) - break; - } - dc->SetBackgroundMode(wxSOLID); - dc->SetPen(*wxBLACK_PEN); -} - -void wxGenericGrid::DrawCellBackground(wxDC *dc, wxRect *rect, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - dc->SetBrush(cell->GetBackgroundBrush()); - dc->SetPen(*wxTRANSPARENT_PEN); - -#if 0 // In wxWin 2.0 the dc code is exact. RR. -#ifdef __WXMOTIF__ - dc->DrawRectangle(rect->x+1, rect->y+1, rect->width-1, rect->height-1); -#else - dc->DrawRectangle(rect->x+1, rect->y+1, rect->width, rect->height); -#endif -#endif - - dc->DrawRectangle(rect->x+1, rect->y+1, rect->width-1, rect->height-1); - - dc->SetPen(*wxBLACK_PEN); - } -} - -void wxGenericGrid::DrawCellValue(wxDC *dc, wxRect *rect, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - wxBitmap *bitmap = cell->GetCellBitmap(); - wxRect rect2; - rect2 = *rect; - rect2.x += 3; - rect2.y += 2; - rect2.width -= 5; - rect2.height -= 4; - - if (bitmap) - { - DrawBitmapRect(dc, bitmap, &rect2, cell->GetAlignment()); - } - else - { - dc->SetBackgroundMode(wxTRANSPARENT); - dc->SetTextForeground(cell->GetTextColour()); - dc->SetFont(cell->GetFont()); - - if ( !cell->GetTextValue().IsNull() ) - DrawTextRect(dc, cell->GetTextValue(), &rect2, cell->GetAlignment()); - } - } -} - -void wxGenericGrid::AdjustScrollbars(void) -{ - int cw, ch; - GetClientSize(&cw, &ch); - - // We find the view size by seeing how many rows/cols fit on - // the current view. - // BUT... this means that the scrollbar should be adjusted every time - // it's scrolled, as well as when sized, because with variable size rows/cols, - // the number of rows/col visible on the view differs according to what bit - // you're looking at. The object length is always the same, but the - // view length differs. - - // Since this may not be known until the end of this function, we should probably call AdjustScrollbars - // twice. - int vertScrollBarWidth = m_scrollWidth; - int horizScrollBarHeight = m_scrollWidth; - if (m_vScrollBar && !m_vScrollBar->IsShown()) - vertScrollBarWidth = 0; - if (m_hScrollBar && !m_hScrollBar->IsShown()) - horizScrollBarHeight = 0; - - int noHorizSteps = 0; - int noVertSteps = 0; - - if (m_totalGridWidth + vertScrollBarWidth <= cw) - noHorizSteps = 0; - else - { - noHorizSteps = 0; - int widthCount = 0; - - int i; - int nx = 0; - for (i = m_scrollPosX ; i < m_totalCols; i++) - { - widthCount += m_colWidths[i]; - // A partial bit doesn't count, we still have to scroll to see the - // rest of it - if (widthCount + m_leftOfSheet + m_verticalLabelWidth > (cw-vertScrollBarWidth)) - break; - else - nx ++; - - } - - noHorizSteps += nx; - } - if (m_totalGridHeight + horizScrollBarHeight <= ch) - noVertSteps = 0; - else - { - noVertSteps = 0; - int heightCount = 0; - - int i; - int ny = 0; - for (i = m_scrollPosY ; i < m_totalRows; i++) - { - heightCount += m_rowHeights[i]; - // A partial bit doesn't count, we still have to scroll to see the - // rest of it - if (heightCount + m_topOfSheet + m_horizontalLabelHeight > (ch-horizScrollBarHeight)) - break; - else - ny ++; - } - - noVertSteps += ny; - } - - if (m_totalGridWidth + vertScrollBarWidth <= cw) - { - if ( m_hScrollBar ) - m_hScrollBar->Show(FALSE); - SetScrollPosX(0); - } - else - { - if ( m_hScrollBar ) - m_hScrollBar->Show(TRUE); - } - - if (m_totalGridHeight + horizScrollBarHeight <= ch) - { - if ( m_vScrollBar ) - m_vScrollBar->Show(FALSE); - SetScrollPosY(0); - } - else - { - if ( m_vScrollBar ) - m_vScrollBar->Show(TRUE); - } - - UpdateDimensions(); // Necessary in case m_scrollPosX/Y changed - - vertScrollBarWidth = m_scrollWidth; - horizScrollBarHeight = m_scrollWidth; - if (m_vScrollBar && !m_vScrollBar->IsShown()) - vertScrollBarWidth = 0; - if (m_hScrollBar && !m_hScrollBar->IsShown()) - horizScrollBarHeight = 0; - - if (m_hScrollBar && m_hScrollBar->IsShown()) - { - int nCols = GetCols(); - m_hScrollBar->SetScrollbar(m_hScrollBar->GetThumbPosition(), wxMax(noHorizSteps, 1), (noHorizSteps == 0) ? 1 : nCols, wxMax(noHorizSteps, 1)); - -/* - m_hScrollBar->SetSize(m_leftOfSheet, ch - m_scrollWidth -2, // why -2 ? Robert. - cw - vertScrollBarWidth - m_leftOfSheet, m_scrollWidth); -*/ - m_hScrollBar->SetSize(m_leftOfSheet, ch - m_scrollWidth, - cw - vertScrollBarWidth - m_leftOfSheet, m_scrollWidth); - - } - - if (m_vScrollBar && m_vScrollBar->IsShown()) - { - int nRows = GetRows(); - - m_vScrollBar->SetScrollbar(m_vScrollBar->GetThumbPosition(), wxMax(noVertSteps, 1), (noVertSteps == 0) ? 1 : nRows, wxMax(noVertSteps, 1)); - m_vScrollBar->SetSize(cw - m_scrollWidth, m_topOfSheet, - m_scrollWidth, ch - m_topOfSheet - horizScrollBarHeight); - } -} - -void wxGenericGrid::OnSize(wxSizeEvent& WXUNUSED(event) ) -{ - if (!m_vScrollBar || !m_hScrollBar) - return; - - AdjustScrollbars(); - - int cw, ch; - GetClientSize(&cw, &ch); - - if (m_editCreated && m_editingPanel && GetTextItem() && GetTextItem()->IsShown()) - { - m_editingPanel->SetSize(0, 0, cw, m_editControlPosition.height + m_editControlPosition.y + 2); - GetTextItem()->SetSize(m_editControlPosition.x, m_editControlPosition.y, - cw - 2*m_editControlPosition.x, m_editControlPosition.height); - } -} - -bool wxGenericGrid::CellHitTest(int x, int y, int *row, int *col) -{ - // Find the selected cell and call OnSelectCell - if (x >= (m_leftOfSheet + m_verticalLabelWidth) && y >= (m_topOfSheet + m_horizontalLabelHeight) && - x <= m_rightOfSheet && y <= m_bottomOfSheet) - { - // Calculate the cell number from x and y - x -= (m_verticalLabelWidth + m_leftOfSheet); - y -= (m_topOfSheet + m_horizontalLabelHeight); - - int i; - - // Now we need to do a hit test for which row we're on - int currentHeight = 0; - for (i = m_scrollPosY; i < m_totalRows; i++) - { - if (y >= currentHeight && y <= (currentHeight + m_rowHeights[i])) - { - *row = i; - break; - } - currentHeight += m_rowHeights[i]; - } - - // Now we need to do a hit test for which column we're on - int currentWidth = 0; - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (x >= currentWidth && x <= (currentWidth + m_colWidths[i])) - { - *col = i; - break; - } - currentWidth += m_colWidths[i]; - } - return TRUE; - } - return FALSE; -} - -bool wxGenericGrid::LabelSashHitTest(int x, int y, int *orientation, int *rowOrCol, int *startPos) -{ - int i; - int tolerance = 3; - - if (x >= (m_leftOfSheet + m_verticalLabelWidth) && y >= m_topOfSheet && - x <= m_rightOfSheet && y <= (m_topOfSheet + m_horizontalLabelHeight)) - { - // We may be on a column label sash. - int currentWidth = m_leftOfSheet + m_verticalLabelWidth; - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (x >= (currentWidth + m_colWidths[i] - tolerance) && x <= (currentWidth + m_colWidths[i] + tolerance)) - { - *orientation = wxHORIZONTAL; - *rowOrCol = i; - *startPos = currentWidth; - return TRUE; - } - currentWidth += m_colWidths[i]; - } - return FALSE; - } - else if (x >= m_leftOfSheet && y >= (m_topOfSheet + m_horizontalLabelHeight) && - x <= (m_leftOfSheet + m_verticalLabelWidth) && y <= m_bottomOfSheet) - { - // We may be on a row label sash. - int currentHeight = m_topOfSheet + m_horizontalLabelHeight; - for (i = m_scrollPosY; i < m_totalRows; i++) - { - if (y >= (currentHeight + m_rowHeights[i] - tolerance) && y <= (currentHeight + m_rowHeights[i] + tolerance)) - { - *orientation = wxVERTICAL; - *rowOrCol = i; - *startPos = currentHeight; - return TRUE; - } - currentHeight += m_rowHeights[i]; - } - return FALSE; - } - return FALSE; -} - -bool wxGenericGrid::LabelHitTest(int x, int y, int *row, int *col) -{ - // Find the selected label - if (x >= m_leftOfSheet && y >= m_topOfSheet && - x <= m_rightOfSheet && y <= m_bottomOfSheet) - { - // Calculate the cell number from x and y - x -= m_leftOfSheet; - y -= m_topOfSheet; - - int i; - - // Now we need to do a hit test for which row we're on - int currentHeight = m_horizontalLabelHeight; - for (i = m_scrollPosY; i < m_totalRows; i++) - { - if (y >= currentHeight && y <= (currentHeight + m_rowHeights[i])) - { - *row = i; - break; - } - currentHeight += m_rowHeights[i]; - } - if (y >= 0 && y <= m_horizontalLabelHeight) - { - *row = -1; - } - - // Now we need to do a hit test for which column we're on - int currentWidth = m_verticalLabelWidth; - for (i = m_scrollPosX; i < m_totalCols; i++) - { - if (x >= currentWidth && x <= (currentWidth + m_colWidths[i])) - { - *col = i; - break; - } - currentWidth += m_colWidths[i]; - } - if (x >= 0 && x <= m_verticalLabelWidth) - { - *col = -1; - } - - if ((*col == -1) || (*row == -1)) - { - return TRUE; - } - } - return FALSE; -} - -void wxGenericGrid::OnMouseEvent(wxMouseEvent& ev) -{ - if (ev.LeftDown()) - { - wxClientDC dc(this); - dc.BeginDrawing(); - - int row, col; - if (CellHitTest((int)ev.GetX(), (int)ev.GetY(), &row, &col)) - { - OnSelectCellImplementation(& dc, row, col); - - //OnCellLeftClick(row, col, (int)ev.GetX(), (int)ev.GetY(), ev.ControlDown(), ev.ShiftDown()); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CELL_LCLICK, this, - row, col, (int)ev.GetX(), (int)ev.GetY(), - ev.ControlDown(), ev.ShiftDown()); - GetEventHandler()->ProcessEvent(g_evt); - - } - if (LabelHitTest((int)ev.GetX(), (int)ev.GetY(), &row, &col)) - { - //OnLabelLeftClick(row, col, (int)ev.GetX(), (int)ev.GetY(), ev.ControlDown(), ev.ShiftDown()); - wxGridEvent g_evt(GetId(), wxEVT_GRID_LABEL_LCLICK, this, - row, col, (int)ev.GetX(), (int)ev.GetY(), - ev.ControlDown(), ev.ShiftDown()); - GetEventHandler()->ProcessEvent(g_evt); - - } - dc.EndDrawing(); - } - else if (ev.Dragging() && ev.LeftIsDown()) - { - switch (m_dragStatus) - { - case wxGRID_DRAG_NONE: - { - int orientation; - if (LabelSashHitTest((int)ev.GetX(), (int)ev.GetY(), &orientation, &m_dragRowOrCol, &m_dragStartPosition)) - { - if (orientation == wxHORIZONTAL) - { - m_dragStatus = wxGRID_DRAG_LEFT_RIGHT; - SetCursor(m_horizontalSashCursor); - m_dragLastPosition = (int)ev.GetX(); - } - else - { - m_dragStatus = wxGRID_DRAG_UP_DOWN; - SetCursor(m_verticalSashCursor); - m_dragLastPosition = (int)ev.GetY(); - } - wxClientDC dc(this); - dc.BeginDrawing(); - dc.SetLogicalFunction(wxINVERT); - if (orientation == wxHORIZONTAL) - dc.DrawLine((int)ev.GetX(), m_topOfSheet, (int)ev.GetX(), m_bottomOfSheet); - else - dc.DrawLine(m_leftOfSheet, (int)ev.GetY(), m_rightOfSheet, (int)ev.GetY()); - dc.EndDrawing(); - - CaptureMouse(); - } - break; - } - case wxGRID_DRAG_LEFT_RIGHT: - { - wxClientDC dc(this); - dc.BeginDrawing(); - dc.SetLogicalFunction(wxINVERT); - dc.DrawLine(m_dragLastPosition, m_topOfSheet, m_dragLastPosition, m_bottomOfSheet); - - dc.DrawLine((int)ev.GetX(), m_topOfSheet, (int)ev.GetX(), m_bottomOfSheet); - dc.EndDrawing(); - - m_dragLastPosition = (int)ev.GetX(); - SetCursor(m_horizontalSashCursor); - break; - } - case wxGRID_DRAG_UP_DOWN: - { - wxClientDC dc(this); - dc.BeginDrawing(); - dc.SetLogicalFunction(wxINVERT); - dc.DrawLine(m_leftOfSheet, m_dragLastPosition, m_rightOfSheet, m_dragLastPosition); - - dc.DrawLine(m_leftOfSheet, (int)ev.GetY(), m_rightOfSheet, (int)ev.GetY()); - dc.EndDrawing(); - - m_dragLastPosition = (int)ev.GetY(); - SetCursor(m_verticalSashCursor); - break; - } - } - } - else if (ev.Moving()) - { - int rowOrCol, orientation, startPos; - if (LabelSashHitTest((int)ev.GetX(), (int)ev.GetY(), &orientation, &rowOrCol, &startPos)) - { - if (orientation == wxHORIZONTAL) - SetCursor(m_horizontalSashCursor); - else - SetCursor(m_verticalSashCursor); - } - else - SetCursor(*wxSTANDARD_CURSOR); - } - else if (ev.LeftUp()) - { - switch (m_dragStatus) - { - case wxGRID_DRAG_LEFT_RIGHT: - { - wxClientDC dc(this); - dc.BeginDrawing(); - dc.SetLogicalFunction(wxINVERT); - dc.DrawLine(m_dragLastPosition, m_topOfSheet, m_dragLastPosition, m_bottomOfSheet); - dc.SetLogicalFunction(wxCOPY); - dc.EndDrawing(); - - ReleaseMouse(); - if (ev.GetX() > m_dragStartPosition) - { - m_colWidths[m_dragRowOrCol] = (short)(ev.GetX() - m_dragStartPosition); - UpdateDimensions(); - AdjustScrollbars(); - Refresh(); - } - SetCursor(*wxSTANDARD_CURSOR); - int cw, ch; - GetClientSize(&cw, &ch); - wxSizeEvent evt; - OnSize(evt); - break; - } - case wxGRID_DRAG_UP_DOWN: - { - wxClientDC dc(this); - dc.BeginDrawing(); - dc.SetLogicalFunction(wxINVERT); - dc.DrawLine(m_leftOfSheet, m_dragLastPosition, m_rightOfSheet, m_dragLastPosition); - dc.SetLogicalFunction(wxCOPY); - dc.EndDrawing(); - - ReleaseMouse(); - if (ev.GetY() > m_dragStartPosition) - { - m_rowHeights[m_dragRowOrCol] = (short)(ev.GetY() - m_dragStartPosition); - UpdateDimensions(); - AdjustScrollbars(); - Refresh(); - } - SetCursor(*wxSTANDARD_CURSOR); - break; - } - } - m_dragStatus = wxGRID_DRAG_NONE; - } - else if (ev.RightDown()) - { - int row, col; - if (CellHitTest((int)ev.GetX(), (int)ev.GetY(), &row, &col)) - { - //OnCellRightClick(row, col, (int)ev.GetX(), (int)ev.GetY(), ev.ControlDown(), ev.ShiftDown()); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CELL_RCLICK, this, - row, col, (int)ev.GetX(), (int)ev.GetY(), - ev.ControlDown(), ev.ShiftDown()); - GetEventHandler()->ProcessEvent(g_evt); - - } - if (LabelHitTest((int)ev.GetX(), (int)ev.GetY(), &row, &col)) - { - //OnLabelRightClick(row, col, (int)ev.GetX(), (int)ev.GetY(), ev.ControlDown(), ev.ShiftDown()); - wxGridEvent g_evt(GetId(), wxEVT_GRID_LABEL_RCLICK, this, - row, col, (int)ev.GetX(), (int)ev.GetY(), - ev.ControlDown(), ev.ShiftDown()); - GetEventHandler()->ProcessEvent(g_evt); - } - } -} - -void wxGenericGrid::OnSelectCellImplementation(wxDC *dc, int row, int col) -{ - m_wCursorColumn = col; - m_wCursorRow = row; - - //OnChangeSelectionLabel(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CHANGE_SEL_LABEL, this); - GetEventHandler()->ProcessEvent(g_evt); - - SetGridClippingRegion(dc); - - // Remove the highlight from the old cell - if (m_currentRectVisible) - HighlightCell(dc); - - // Highlight the new cell and copy its content to the edit control - SetCurrentRect(m_wCursorRow, m_wCursorColumn); - wxGridCell *cell = GetCell(m_wCursorRow, m_wCursorColumn); - if (cell) - { - if ( cell->GetTextValue().IsNull() ) - m_textItem->SetValue(""); - else - m_textItem->SetValue(cell->GetTextValue()); - } - - SetGridClippingRegion(dc); - - // 1) Why isn't this needed for Windows?? - // Probably because of the SetValue?? JS. - // 2) Arrrrrgh. This isn't needed anywhere, - // of course. One hour of debugging... RR. - // Put back for Motif only on advice of Michael Bedward -#ifdef __WXMOTIF__ - HighlightCell(dc); -#endif - - dc->DestroyClippingRegion(); - - //OnSelectCell(row, col); - wxGridEvent g_evt2(GetId(), wxEVT_GRID_SELECT_CELL, this, row, col); - GetEventHandler()->ProcessEvent(g_evt2); -} - -wxGridCell *wxGenericGrid::OnCreateCell(void) -{ - return new wxGridCell(this); -} - -void wxGenericGrid::OnChangeLabels(void) -{ - char buf[100]; - int i; - for (i = 0; i < m_totalRows; i++) - { - sprintf(buf, "%d", i+1); - SetLabelValue(wxVERTICAL, buf, i); - } - // A...Z,AA...ZZ,AAA...ZZZ, etc. - for (i = 0; i < m_totalCols; i++) - { - int j; - int noTimes = (i/26 + 1); - int ch = (i % 26) + 65; - buf[0] = 0; - for (j = 0; j < noTimes; j++) - { - char buf2[20]; - sprintf(buf2, "%c", (char)ch); - strcat(buf, buf2); - } - SetLabelValue(wxHORIZONTAL, buf, i); - } -} - -void wxGenericGrid::OnChangeSelectionLabel(void) -{ - if (!GetEditable()) - return; - - wxString rowLabel(GetLabelValue(wxVERTICAL, GetCursorRow())); - wxString colLabel(GetLabelValue(wxHORIZONTAL, GetCursorColumn())); - - wxString newLabel = colLabel + rowLabel; - if ((newLabel.Length() > 0) && (newLabel.Length() <= 8) && GetTextItem()) - { -// GetTextItem()->SetLabel(newLabel); - } -} - -void wxGenericGrid::HighlightCell(wxDC *dc) -{ - dc->SetLogicalFunction(wxINVERT); - - // Top - dc->DrawLine( m_currentRect.x + 1, - m_currentRect.y + 1, - m_currentRect.x + m_currentRect.width - 1, - m_currentRect.y + 1); - // Right - dc->DrawLine( m_currentRect.x + m_currentRect.width - 1, - m_currentRect.y + 1, - m_currentRect.x + m_currentRect.width - 1, - m_currentRect.y +m_currentRect.height - 1 ); - // Bottom - dc->DrawLine( m_currentRect.x + m_currentRect.width - 1, - m_currentRect.y + m_currentRect.height - 1, - m_currentRect.x + 1, - m_currentRect.y + m_currentRect.height - 1); - // Left - dc->DrawLine( m_currentRect.x + 1, - m_currentRect.y + m_currentRect.height - 1, - m_currentRect.x + 1, - m_currentRect.y + 1); - - dc->SetLogicalFunction(wxCOPY); -} - -void wxGenericGrid::DrawCellText(void) -{ - if (!m_currentRectVisible) - return; - - wxGridCell *cell = GetCell(GetCursorRow(), GetCursorColumn()); - if (!cell) - return; - - static wxChar szEdit[300]; - - wxClientDC dc(this); - dc.BeginDrawing(); - - SetGridClippingRegion(& dc); - - dc.SetBackgroundMode(wxTRANSPARENT); - dc.SetBrush(cell->GetBackgroundBrush()); - - wxStrcpy(szEdit, m_textItem->GetValue()); - - wxRect rect; - rect = m_currentRect; - rect.x += 3; - rect.y += 2; - rect.width -= 5; - rect.height -= 4; - - DrawTextRect(& dc, _T(" "), &rect, wxLEFT); - DrawTextRect(& dc, szEdit, &rect, cell->GetAlignment()); - - dc.DestroyClippingRegion(); - - dc.SetBackgroundMode(wxSOLID); - - dc.EndDrawing(); -} - -void wxGenericGrid::SetCurrentRect(int Row, int Column, int canvasW, int canvasH) -{ - int currentWidth = m_leftOfSheet + m_verticalLabelWidth; - int i; - for (i = m_scrollPosX; i < Column; i++) - currentWidth += m_colWidths[i]; - - int currentHeight = m_topOfSheet + m_horizontalLabelHeight; - for (i = m_scrollPosY; i < Row; i++) - currentHeight += m_rowHeights[i]; - - m_currentRect.x = currentWidth; - m_currentRect.y = currentHeight; - m_currentRect.width = m_colWidths ? (m_colWidths[Column]) : 0; - m_currentRect.height = m_rowHeights ? (m_rowHeights[Row]) : 0; - - if (Row < m_scrollPosY || Column < m_scrollPosX) - m_currentRectVisible = FALSE; - else if ((canvasW != -1 && canvasH != -1) && (m_currentRect.x > canvasW || m_currentRect.y > canvasH)) - m_currentRectVisible = FALSE; - else m_currentRectVisible = TRUE; -} - -static bool wxRectIntersection(wxRect *rect1, wxRect *rect2, wxRect *rect3) -{ - int x2_1 = rect1->x + rect1->width; - int y2_1 = rect1->y + rect1->height; - - int x2_2 = rect2->x + rect2->width; - int y2_2 = rect2->y + rect2->height; - - int x2_3, y2_3; - - // Check for intersection - if ((rect1->x > x2_2) || (rect2->x > x2_1) || - (rect1->y > y2_2) || (rect2->y > y2_1)) - { - // No intersection - rect3->x = rect3->y = rect3->width = rect3->height = 0; - return FALSE; - } - - if (rect1->x > rect2->x) - rect3->x = rect1->x; - else - rect3->x = rect2->x; - if (rect1->y > rect2->y) - rect3->y = rect1->y; - else - rect3->y = rect2->y; - - if (x2_1 > x2_2) - x2_3 = x2_2; - else - x2_3 = x2_1; - if (y2_1 > y2_2) - y2_3 = y2_2; - else - y2_3 = y2_1; - - rect3->width = (int)(x2_3 - rect3->x); - rect3->height = (int)(y2_3 - rect3->y); - return TRUE; -} - -void wxGenericGrid::DrawTextRect(wxDC *dc, const wxString& text, wxRect *rect, int flag) -{ - dc->BeginDrawing(); - - // Ultimately, this functionality should be built into wxWindows, - // and optimized for each platform. E.g. on Windows, use DrawText - // passing a clipping rectangle, so that the wxWindows clipping region - // does not have to be used to implement this. - - // If we're already clipping, we need to find the intersection - // between current clipping area and text clipping area. - - wxRect clipRect; - wxRect clipRect2; - long clipX, clipY, clipW, clipH; - dc->GetClippingBox(&clipX, &clipY, &clipW, &clipH); - clipRect.x = (int)clipX; clipRect.y = (int)clipY; - clipRect.width = (int)clipW; clipRect.height = (int)clipH; - - bool alreadyClipping = TRUE; - - if (clipRect.x == 0 && clipRect.y == 0 && clipRect.width == 0 && clipRect.height == 0) - { - alreadyClipping = FALSE; - clipRect2.x = rect->x; clipRect2.y = rect->y; - clipRect2.width = rect->width; clipRect2.height = rect->height; - } - else - { - // Find intersection. - if (!wxRectIntersection(rect, &clipRect, &clipRect2)) - return; - } - - if (alreadyClipping) - dc->DestroyClippingRegion(); - - dc->SetClippingRegion(clipRect2.x, clipRect2.y, clipRect2.width, clipRect2.height); - long textWidth, textHeight; - - dc->GetTextExtent(text, &textWidth, &textHeight); - - // Do alignment - float x,y; - switch (flag) - { - case wxRIGHT: - { - x = (rect->x + rect->width - textWidth - 1.0); - y = (rect->y + (rect->height - textHeight)/2.0); - break; - } - case wxCENTRE: - { - x = (rect->x + (rect->width - textWidth)/2.0); - y = (rect->y + (rect->height - textHeight)/2.0); - break; - } - case wxLEFT: - default: - { - x = (rect->x + 1.0); - y = (rect->y + (rect->height - textHeight)/2.0); - break; - } - } - dc->DrawText(text, (long)x, (long)y ); - - dc->DestroyClippingRegion(); - - // Restore old clipping - if (alreadyClipping) - dc->SetClippingRegion(clipRect.x, clipRect.y, clipRect.width, clipRect.height); - - dc->EndDrawing(); -} - -void wxGenericGrid::DrawBitmapRect(wxDC *dc, wxBitmap *bitmap, wxRect *rect, int flag) -{ - dc->BeginDrawing(); - - // Ultimately, this functionality should be built into wxWindows, - // and optimized for each platform. E.g. on Windows, use DrawText - // passing a clipping rectangle, so that the wxWindows clipping region - // does not have to be used to implement this. - - // If we're already clipping, we need to find the intersection - // between current clipping area and text clipping area. - - wxRect clipRect; - wxRect clipRect2; - long clipX, clipY, clipW, clipH; - dc->GetClippingBox(&clipX, &clipY, &clipW, &clipH); - clipRect.x = (int)clipX; clipRect.y = (int)clipY; - clipRect.width = (int)clipW; clipRect.height = (int)clipH; - - bool alreadyClipping = TRUE; - - if (clipRect.x == 0 && clipRect.y == 0 && clipRect.width == 0 && clipRect.height == 0) - { - alreadyClipping = FALSE; - clipRect2.x = rect->x; clipRect2.y = rect->y; - clipRect2.width = rect->width; clipRect2.height = rect->height; - } - else - { - // Find intersection. - if (!wxRectIntersection(rect, &clipRect, &clipRect2)) - return; - } - - if (alreadyClipping) - dc->DestroyClippingRegion(); - - dc->SetClippingRegion(clipRect2.x, clipRect2.y, clipRect2.width, clipRect2.height); - float bitmapWidth, bitmapHeight; - - bitmapWidth = bitmap->GetWidth(); - bitmapHeight = bitmap->GetHeight(); - - // Do alignment - long x,y; - switch (flag) - { - case wxRIGHT: - { - x = (long)(rect->x + rect->width - bitmapWidth - 1); - y = (long)(rect->y + (rect->height - bitmapHeight)/2.0); - break; - } - case wxCENTRE: - { - x = (long)(rect->x + (rect->width - bitmapWidth)/2.0); - y = (long)(rect->y + (rect->height - bitmapHeight)/2.0); - break; - } - case wxLEFT: - default: - { - x = (long)(rect->x + 1); - y = (long)(rect->y + (rect->height - bitmapHeight)/2.0); - break; - } - } - wxMemoryDC dcTemp; - dcTemp.SelectObject(*bitmap); - - dc->Blit( (long)x, (long)y, (long)bitmapWidth, (long)bitmapHeight, &dcTemp, 0, 0); - dcTemp.SelectObject(wxNullBitmap); - - dc->DestroyClippingRegion(); - - // Restore old clipping - if (alreadyClipping) - dc->SetClippingRegion(clipRect.x, clipRect.y, clipRect.width, clipRect.height); - - dc->EndDrawing(); -} - -void wxGenericGrid::OnActivate(bool active) -{ - if (active) - { - // Edit control should always have the focus - if (GetTextItem() && GetEditable()) - { - GetTextItem()->SetFocus(); - wxGridCell *cell = GetCell(GetCursorRow(), GetCursorColumn()); - if (cell) - GetTextItem()->SetValue(cell->GetTextValue()); - } - } -} - -void wxGenericGrid::SetCellValue(const wxString& val, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - cell->SetTextValue(val); - - RefreshCell(row, col, TRUE); - } -} - -void wxGenericGrid::RefreshCell(int row, int col, bool setText) -{ - // Don't refresh within a pair of batch brackets - if (GetBatchCount() > 0) - return; - - int cw, ch; - GetClientSize(&cw, &ch); - - SetCurrentRect(row, col, cw, ch); - if (m_currentRectVisible) - { - wxGridCell *cell = GetCell(row, col); - - bool currentPos = FALSE; - if (row == m_wCursorRow && col == m_wCursorColumn && GetTextItem() && GetTextItem()->IsShown() && setText) - { - GetTextItem()->SetValue(cell->GetTextValue()); - currentPos = TRUE; - } - // Gets refreshed anyway in MSW -#ifdef __WXMSW__ - if (!currentPos) -#endif - { - wxClientDC dc(this); - dc.BeginDrawing(); - DrawCellBackground(& dc, &m_currentRect, row, col); - DrawCellValue(& dc, &m_currentRect, row, col); - dc.EndDrawing(); - } - } -} - -wxString& wxGenericGrid::GetCellValue(int row, int col) const -{ - static wxString emptyString(""); - - wxGridCell *cell = GetCell(row, col); - if (cell) - return cell->GetTextValue(); - else - return emptyString; -} - -void wxGenericGrid::SetColumnWidth(int col, int width) -{ - if (col <= m_totalCols) - m_colWidths[col] = width; -} - -int wxGenericGrid::GetColumnWidth(int col) const -{ - if (col <= m_totalCols) - return m_colWidths[col]; - else - return 0; -} - -void wxGenericGrid::SetRowHeight(int row, int height) -{ - if (row <= m_totalRows) - m_rowHeights[row] = height; -} - -int wxGenericGrid::GetRowHeight(int row) const -{ - if (row <= m_totalRows) - return m_rowHeights[row]; - else - return 0; -} - -void wxGenericGrid::SetLabelSize(int orientation, int sz) -{ - if (orientation == wxHORIZONTAL) - m_horizontalLabelHeight = sz; - else - m_verticalLabelWidth = sz; - UpdateDimensions(); - SetCurrentRect(GetCursorRow(), GetCursorColumn()); -} - -int wxGenericGrid::GetLabelSize(int orientation) const -{ - if (orientation == wxHORIZONTAL) - return m_horizontalLabelHeight; - else - return m_verticalLabelWidth; -} - -wxGridCell *wxGenericGrid::GetLabelCell(int orientation, int pos) const -{ - if (orientation == wxHORIZONTAL) - { - if (m_colLabelCells && pos < m_totalCols) - return m_colLabelCells[pos]; - else - return (wxGridCell *) NULL; - } - else - { - if (m_rowLabelCells && pos < m_totalRows) - return m_rowLabelCells[pos]; - else - return (wxGridCell *) NULL; - } -} - -void wxGenericGrid::SetLabelValue(int orientation, const wxString& val, int pos) -{ - wxGridCell *cell = GetLabelCell(orientation, pos); - if (cell) - cell->SetTextValue(val); -} - -wxString& wxGenericGrid::GetLabelValue(int orientation, int pos) const -{ - static wxString emptyString = ""; - wxGridCell *cell = GetLabelCell(orientation, pos); - if (cell) - return cell->GetTextValue(); - else - return emptyString; -} - -void wxGenericGrid::SetLabelAlignment(int orientation, int align) -{ - if (orientation == wxHORIZONTAL) - m_horizontalLabelAlignment = align; - else - m_verticalLabelAlignment = align; - UpdateDimensions(); - SetCurrentRect(GetCursorRow(), GetCursorColumn()); -} - -int wxGenericGrid::GetLabelAlignment(int orientation) const -{ - if (orientation == wxHORIZONTAL) - return m_horizontalLabelAlignment; - else - return m_verticalLabelAlignment; -} - -void wxGenericGrid::SetLabelTextColour(const wxColour& colour) -{ - m_labelTextColour = colour; - -} - -void wxGenericGrid::SetLabelBackgroundColour(const wxColour& colour) -{ - m_labelBackgroundColour = colour; - m_labelBackgroundBrush = * wxTheBrushList->FindOrCreateBrush(m_labelBackgroundColour, wxSOLID); -} - -void wxGenericGrid::SetEditable(bool edit) -{ - m_editable = edit; - if (edit) - { - int controlW, controlH; - m_textItem->GetSize(&controlW, &controlH); - m_editControlPosition.height = controlH; - - m_topOfSheet = m_editControlPosition.x + controlH + 2; - if (m_textItem) - { - m_editingPanel->Show(TRUE); - m_textItem->Show(TRUE); - m_textItem->SetFocus(); - } - } - else - { - m_topOfSheet = 0; - if (m_textItem) - { - m_textItem->Show(FALSE); - m_editingPanel->Show(FALSE); - } - } - UpdateDimensions(); - SetCurrentRect(GetCursorRow(), GetCursorColumn()); - - int cw, ch; - GetClientSize(&cw, &ch); - wxSizeEvent evt; - OnSize(evt); -/* - int cw, ch; - int m_scrollWidth = 16; - GetClientSize(&cw, &ch); - - if (m_vScrollBar) - m_vScrollBar->SetSize(cw - m_scrollWidth, m_topOfSheet, - m_scrollWidth, ch - m_topOfSheet - m_scrollWidth); -*/ -} - -void wxGenericGrid::SetCellAlignment(int flag, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - cell->SetAlignment(flag); -} - -int wxGenericGrid::GetCellAlignment(int row, int col) const -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - return cell->GetAlignment(); - else - return m_cellAlignment; -} - -void wxGenericGrid::SetCellAlignment(int flag) -{ - m_cellAlignment = flag; - int i,j; - for (i = 0; i < GetRows(); i++) - for (j = 0; j < GetCols(); j++) - if (GetCell(i, j)) - GetCell(i, j)->SetAlignment(flag); -} - -int wxGenericGrid::GetCellAlignment(void) const -{ - return m_cellAlignment; -} - -void wxGenericGrid::SetCellBackgroundColour(const wxColour& col) -{ - m_cellBackgroundColour = col; - int i,j; - for (i = 0; i < GetRows(); i++) - for (j = 0; j < GetCols(); j++) - if (GetCell(i, j)) - GetCell(i, j)->SetBackgroundColour(col); -} - -void wxGenericGrid::SetCellBackgroundColour(const wxColour& val, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - cell->SetBackgroundColour(val); - RefreshCell(row, col); - } -} - -wxColour& wxGenericGrid::GetCellBackgroundColour(int row, int col) const -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - return cell->GetBackgroundColour(); - else - return (wxColour&) m_cellBackgroundColour; -} - -void wxGenericGrid::SetCellTextColour(const wxColour& val, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - cell->SetTextColour(val); - RefreshCell(row, col); - } -} - -void wxGenericGrid::SetCellTextFont(const wxFont& fnt, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - cell->SetFont(fnt); - RefreshCell(row, col); - } -} - -wxFont& wxGenericGrid::GetCellTextFont(int row, int col) const -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - return (wxFont&) cell->GetFont(); - else - return (wxFont&) m_cellTextFont; -} - -wxColour& wxGenericGrid::GetCellTextColour(int row, int col) const -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - return (wxColour&) cell->GetTextColour(); - else - return (wxColour&) m_cellTextColour; -} - -void wxGenericGrid::SetCellTextColour(const wxColour& val) -{ - m_cellTextColour = val; - int i,j; - for (i = 0; i < GetRows(); i++) - for (j = 0; j < GetCols(); j++) - if (GetCell(i, j)) - GetCell(i, j)->SetTextColour(val); -} - -void wxGenericGrid::SetCellTextFont(const wxFont& fnt) -{ - m_cellTextFont = fnt; - int i,j; - for (i = 0; i < GetRows(); i++) - for (j = 0; j < GetCols(); j++) - if (GetCell(i, j)) - GetCell(i, j)->SetFont(fnt); -} - -void wxGenericGrid::SetCellBitmap(wxBitmap *bitmap, int row, int col) -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - cell->SetCellBitmap(bitmap); - RefreshCell(row, col); - } -} - -wxBitmap *wxGenericGrid::GetCellBitmap(int row, int col) const -{ - wxGridCell *cell = GetCell(row, col); - if (cell) - { - return cell->GetCellBitmap(); - } - else - return (wxBitmap *) NULL; -} - -bool wxGenericGrid::InsertCols(int pos, int n, bool updateLabels) -{ - if (pos > m_totalCols) - return FALSE; - - if (!m_gridCells) - return CreateGrid(1, n); - else - { - int i, j; - // Cells - for (i = 0; i < m_totalRows; i++) - { - wxGridCell **cols = m_gridCells[i]; - wxGridCell **newCols = new wxGridCell *[m_totalCols + n]; - for (j = 0; j < pos; j++) - newCols[j] = cols[j]; - for (j = pos; j < pos + n; j++) - newCols[j] = new wxGridCell(this); - for (j = pos + n; j < m_totalCols + n; j++) - newCols[j] = cols[j - n]; - - delete[] cols; - m_gridCells[i] = newCols; - } - - // Column widths - short *newColWidths = new short[m_totalCols + n]; - for (j = 0; j < pos; j++) - newColWidths[j] = m_colWidths[j]; - for (j = pos; j < pos + n; j++) - newColWidths[j] = wxGRID_DEFAULT_CELL_WIDTH; - for (j = pos + n; j < m_totalCols + n; j++) - newColWidths[j] = m_colWidths[j - n]; - delete[] m_colWidths; - m_colWidths = newColWidths; - - // Column labels - wxGridCell **newLabels = new wxGridCell *[m_totalCols + n]; - for (j = 0; j < pos; j++) - newLabels[j] = m_colLabelCells[j]; - for (j = pos; j < pos + n; j++) - newLabels[j] = new wxGridCell(this); - for (j = pos + n; j < m_totalCols + n; j++) - newLabels[j] = m_colLabelCells[j - n]; - - delete[] m_colLabelCells; - m_colLabelCells = newLabels; - - m_totalCols += n; - - if (updateLabels) { - //OnChangeLabels(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CHANGE_LABELS, this); - GetEventHandler()->ProcessEvent(g_evt); - } - - UpdateDimensions(); - AdjustScrollbars(); - return TRUE; - } -} - -bool wxGenericGrid::InsertRows(int pos, int n, bool updateLabels) -{ - if (pos > m_totalRows) - return FALSE; - - if (!m_gridCells) - return CreateGrid(n, 1); - else - { - int i, j; - - wxGridCell ***rows = new wxGridCell **[m_totalRows + n]; - - // Cells - for (i = 0; i < pos; i++) - rows[i] = m_gridCells[i]; - - for (i = pos; i < pos + n; i++) - { - rows[i] = new wxGridCell *[m_totalCols]; - for (j = 0; j < m_totalCols; j++) - rows[i][j] = new wxGridCell(this); - } - - for (i = pos + n; i < m_totalRows + n; i++) - rows[i] = m_gridCells[i - n]; - - delete[] m_gridCells; - m_gridCells = rows; - - // Row heights - short *newRowHeights = new short[m_totalRows + n]; - for (i = 0; i < pos; i++) - newRowHeights[i] = m_rowHeights[i]; - for (i = pos; i < pos + n; i++) - newRowHeights[i] = wxGRID_DEFAULT_CELL_HEIGHT; - for (i = pos + n; i < m_totalRows + n; i++) - newRowHeights[i] = m_rowHeights[i - n]; - delete[] m_rowHeights; - m_rowHeights = newRowHeights; - - // Column labels - wxGridCell **newLabels = new wxGridCell *[m_totalRows + n]; - for (i = 0; i < pos; i++) - newLabels[i] = m_rowLabelCells[i]; - for (i = pos; i < pos + n; i++) - newLabels[i] = new wxGridCell(this); - for (i = pos + n; i < m_totalRows + n; i++) - newLabels[i] = m_rowLabelCells[i - n]; - - delete[] m_rowLabelCells; - m_rowLabelCells = newLabels; - - m_totalRows += n; - - if (updateLabels) { - //OnChangeLabels(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CHANGE_LABELS, this); - GetEventHandler()->ProcessEvent(g_evt); - } - - UpdateDimensions(); - AdjustScrollbars(); - return TRUE; - } -} - -bool wxGenericGrid::AppendCols(int n, bool updateLabels) -{ - return InsertCols(GetCols(), n, updateLabels); -} - -bool wxGenericGrid::AppendRows(int n, bool updateLabels) -{ - return InsertRows(GetRows(), n, updateLabels); -} - -bool wxGenericGrid::DeleteRows(int pos, int n, bool updateLabels) -{ - if (pos > m_totalRows) - return FALSE; - if (!m_gridCells) - return FALSE; - - int i; - - wxGridCell ***rows = new wxGridCell **[m_totalRows - n]; - - // Cells - for (i = 0; i < pos; i++) - rows[i] = m_gridCells[i]; - - for (i = pos + n; i < m_totalRows; i++) - rows[i-n] = m_gridCells[i]; - - delete[] m_gridCells; - m_gridCells = rows; - - // Row heights - short *newRowHeights = new short[m_totalRows - n]; - for (i = 0; i < pos; i++) - newRowHeights[i] = m_rowHeights[i]; - for (i = pos + n; i < m_totalRows; i++) - newRowHeights[i-n] = m_rowHeights[i]; - delete[] m_rowHeights; - m_rowHeights = newRowHeights; - - // Column labels - wxGridCell **newLabels = new wxGridCell *[m_totalRows - n]; - for (i = 0; i < pos; i++) - newLabels[i] = m_rowLabelCells[i]; - for (i = pos + n; i < m_totalRows; i++) - newLabels[i-n] = m_rowLabelCells[i]; - - delete[] m_rowLabelCells; - m_rowLabelCells = newLabels; - - m_totalRows -= n; - - if (updateLabels){ - //OnChangeLabels(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CHANGE_LABELS, this); - GetEventHandler()->ProcessEvent(g_evt); - } - UpdateDimensions(); - AdjustScrollbars(); - return TRUE; -} - -bool wxGenericGrid::DeleteCols(int pos, int n, bool updateLabels) -{ - if (pos + n > m_totalCols) - return FALSE; - if (!m_gridCells) - return FALSE; - - int i, j; - - // Cells - for (i = 0; i < m_totalRows; i++) - { - wxGridCell **cols = m_gridCells[i]; - wxGridCell **newCols = new wxGridCell *[m_totalCols - n]; - for (j = 0; j < pos; j++) - newCols[j] = cols[j]; - for (j = pos; j < pos + n; j++) - delete cols[j]; - for (j = pos + n; j < m_totalCols; j++) - newCols[j-n] = cols[j]; - - delete[] cols; - m_gridCells[i] = newCols; - } - - // Column widths - short *newColWidths = new short[m_totalCols - n]; - for (j = 0; j < pos; j++) - newColWidths[j] = m_colWidths[j]; - for (j = pos + n; j < m_totalCols; j++) - newColWidths[j-n] = m_colWidths[j]; - delete[] m_colWidths; - m_colWidths = newColWidths; - - // Column labels - wxGridCell **newLabels = new wxGridCell *[m_totalCols - n]; - for (j = 0; j < pos; j++) - newLabels[j] = m_colLabelCells[j]; - for (j = pos + n; j < m_totalCols; j++) - newLabels[j-n] = m_colLabelCells[j]; - - delete[] m_colLabelCells; - m_colLabelCells = newLabels; - - m_totalCols -= n; - - if (updateLabels) { - //OnChangeLabels(); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CHANGE_LABELS, this); - GetEventHandler()->ProcessEvent(g_evt); - } - UpdateDimensions(); - AdjustScrollbars(); - return TRUE; -} - -void wxGenericGrid::SetGridCursor(int row, int col) -{ - if (row >= m_totalRows || col >= m_totalCols) - return; - - if (row == GetCursorRow() && col == GetCursorColumn()) - return; - - wxClientDC dc(this); - dc.BeginDrawing(); - - SetGridClippingRegion(& dc); - - if (m_currentRectVisible) - HighlightCell(& dc); - - m_wCursorRow = row; - m_wCursorColumn = col; - - int cw, ch; - GetClientSize(&cw, &ch); - - SetCurrentRect(row, col, cw, ch); - - if (m_currentRectVisible) - HighlightCell(& dc); - - dc.DestroyClippingRegion(); - dc.EndDrawing(); -} - -/* - * Grid cell - */ - -wxGridCell::wxGridCell(wxGenericGrid *window) -{ - cellBitmap = (wxBitmap *) NULL; - font = wxNullFont; - backgroundBrush = wxNullBrush; - if (window) - textColour = window->GetCellTextColour(); - else - textColour.Set(0,0,0); - if (window) - backgroundColour = window->GetCellBackgroundColour(); - else - backgroundColour.Set(255,255,255); - - if (window) - font = window->GetCellTextFont(); - else - font = * wxTheFontList->FindOrCreateFont(12, wxSWISS, wxNORMAL, wxNORMAL); - - SetBackgroundColour(backgroundColour); - - if (window) - alignment = window->GetCellAlignment(); - else - alignment = wxLEFT; -} - -wxGridCell::~wxGridCell(void) -{ -} - -void wxGridCell::SetBackgroundColour(const wxColour& colour) -{ - backgroundColour = colour; - backgroundBrush = * wxTheBrushList->FindOrCreateBrush(backgroundColour, wxSOLID); -} - -void wxGenericGrid::OnText(wxCommandEvent& WXUNUSED(ev) ) -{ - wxGenericGrid *grid = this; - wxGridCell *cell = grid->GetCell(grid->GetCursorRow(), grid->GetCursorColumn()); - if (cell && grid->CurrentCellVisible()) - { - cell->SetTextValue(grid->GetTextItem()->GetValue()); - wxClientDC dc(grid); - - dc.BeginDrawing(); - grid->SetGridClippingRegion(& dc); - grid->DrawCellBackground(& dc, &grid->GetCurrentRect(), grid->GetCursorRow(), grid->GetCursorColumn()); - grid->DrawCellValue(& dc, &grid->GetCurrentRect(), grid->GetCursorRow(), grid->GetCursorColumn()); - grid->HighlightCell(& dc); - dc.DestroyClippingRegion(); - dc.EndDrawing(); - - //grid->OnCellChange(grid->GetCursorRow(), grid->GetCursorColumn()); - wxGridEvent g_evt(GetId(), wxEVT_GRID_CELL_CHANGE, grid, - grid->GetCursorRow(), grid->GetCursorColumn()); - GetEventHandler()->ProcessEvent(g_evt); - -// grid->DrawCellText(); - } -} - -void wxGenericGrid::OnGridScroll(wxScrollEvent& ev) -{ - static bool inScroll = FALSE; - - if ( inScroll ) - return; - - inScroll = TRUE; - wxGenericGrid *win = this; - - bool change = FALSE; - - if (ev.GetEventObject() == win->GetHorizScrollBar()) - { - change = (ev.GetPosition() != m_scrollPosX); - win->SetScrollPosX(ev.GetPosition()); - } - else - { - change = (ev.GetPosition() != m_scrollPosY); - win->SetScrollPosY(ev.GetPosition()); - } - - win->UpdateDimensions(); - - win->SetCurrentRect(win->GetCursorRow(), win->GetCursorColumn()); - - // Because rows and columns can be arbitrary sizes, - // the scrollbars will need to be adjusted to reflect the - // current view. - AdjustScrollbars(); - - if (change) win->Refresh(FALSE); - inScroll = FALSE; - -} - - -//---------------------------------------------------------------------- -// Default wxGridEvent handlers -// (just redirect to the pre-existing virtual methods) - -void wxGenericGrid::_OnSelectCell(wxGridEvent& ev) -{ - OnSelectCell(ev.m_row, ev.m_col); -} - -void wxGenericGrid::_OnCreateCell(wxGridEvent& ev) -{ - ev.m_cell = OnCreateCell(); -} - -void wxGenericGrid::_OnChangeLabels(wxGridEvent& WXUNUSED(ev)) -{ - OnChangeLabels(); -} - -void wxGenericGrid::_OnChangeSelectionLabel(wxGridEvent& WXUNUSED(ev)) -{ - OnChangeSelectionLabel(); -} - -void wxGenericGrid::_OnCellChange(wxGridEvent& ev) -{ - OnCellChange(ev.m_row, ev.m_col); -} - -void wxGenericGrid::_OnCellLeftClick(wxGridEvent& ev) -{ - OnCellLeftClick(ev.m_row, ev.m_col, ev.m_x, ev.m_y, ev.m_control, ev.m_shift); -} - -void wxGenericGrid::_OnCellRightClick(wxGridEvent& ev) -{ - OnCellRightClick(ev.m_row, ev.m_col, ev.m_x, ev.m_y, ev.m_control, ev.m_shift); -} - -void wxGenericGrid::_OnLabelLeftClick(wxGridEvent& ev) -{ - OnLabelLeftClick(ev.m_row, ev.m_col, ev.m_x, ev.m_y, ev.m_control, ev.m_shift); -} - -void wxGenericGrid::_OnLabelRightClick(wxGridEvent& ev) -{ - OnLabelRightClick(ev.m_row, ev.m_col, ev.m_x, ev.m_y, ev.m_control, ev.m_shift); -} - - diff --git a/src/generic/helpext.cpp b/src/generic/helpext.cpp deleted file mode 100644 index 43b56b8b35..0000000000 --- a/src/generic/helpext.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/*-*- c++ -*-******************************************************** - * helpext.cpp - an external help controller for wxWindows * - * * - * (C) 1999 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - *******************************************************************/ -#ifdef __GNUG__ -# pragma implementation "wxexthlp.h" -#endif - -#include "wx/setup.h" -#include "wx/helpbase.h" -#include "wx/generic/helpext.h" -#include "wx/string.h" -#include "wx/utils.h" -#include "wx/list.h" -#include -#include -#include -#include - -IMPLEMENT_CLASS(wxExtHelpController, wxHTMLHelpControllerBase) - -/** - This class implements help via an external browser. - It requires the name of a directory containing the documentation - and a file mapping numerical Section numbers to relative URLS. -*/ - -wxExtHelpController::wxExtHelpController(void) -{ - m_BrowserName = WXEXTHELP_DEFAULTBROWSER; - m_BrowserIsNetscape = WXEXTHELP_DEFAULTBROWSER_IS_NETSCAPE; - - char *browser = getenv(WXEXTHELP_ENVVAR_BROWSER); - if(browser) - { - m_BrowserName = browser; - browser = getenv(WXEXTHELP_ENVVAR_BROWSERISNETSCAPE); - m_BrowserIsNetscape = browser && (atoi(browser) != 0); - } -} - - -void -wxExtHelpController::SetBrowser(wxString const & browsername, bool isNetscape) -{ - m_BrowserName = browsername; - m_BrowserIsNetscape = isNetscape; -} - -// Set viewer: new, generic name for SetBrowser -void wxExtHelpController::SetViewer(const wxString& viewer, long flags) -{ - SetBrowser(viewer, ((flags & wxHELP_NETSCAPE) == wxHELP_NETSCAPE)); -} - -bool -wxExtHelpController::DisplayHelp(wxString const &relativeURL) -{ - wxBusyCursor b; // display a busy cursor - wxString command; - - if(m_BrowserIsNetscape) // try re-loading first - { - wxString lockfile; - wxGetHomeDir(&lockfile); - lockfile << WXEXTHELP_SEPARATOR << _T(".netscape/lock"); - struct stat statbuf; - if(lstat(lockfile.fn_str(), &statbuf) == 0) - // cannot use wxFileExists, because it's a link pointing to a - // non-existing location if(wxFileExists(lockfile)) - { - long success; - command << m_BrowserName << _T(" -remote openURL(") - << _T("file://") << m_MapFile - << WXEXTHELP_SEPARATOR << relativeURL << _T(")"); - success = wxExecute(command); - if(success != 0 ) // returns PID on success - return TRUE; - } - } - command = m_BrowserName; - command << _T(" file://") - << m_MapFile << WXEXTHELP_SEPARATOR << relativeURL; - return wxExecute(command) != 0; -} - - diff --git a/src/generic/helphtml.cpp b/src/generic/helphtml.cpp deleted file mode 100644 index 6065eeef12..0000000000 --- a/src/generic/helphtml.cpp +++ /dev/null @@ -1,284 +0,0 @@ -/*-*- c++ -*-******************************************************** - * helphtml.cpp - base class for html help systems * - * * - * (C) 1999 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - *******************************************************************/ -#ifdef __GNUG__ -# pragma implementation "helphtml.h" -#endif - -#include "wx/setup.h" -#include "wx/helpbase.h" -#include "wx/generic/helpext.h" -#include "wx/string.h" -#include "wx/utils.h" -#include "wx/list.h" -#include "wx/intl.h" -#include -#include -#include -#include - - - -class wxExtHelpMapEntry : public wxObject -{ -public: - int id; - wxString url; - wxString doc; - wxExtHelpMapEntry(int iid, wxString const &iurl, wxString const &idoc) - { id = iid; url = iurl; doc = idoc; } -}; - -IMPLEMENT_ABSTRACT_CLASS(wxHTMLHelpControllerBase, wxHelpControllerBase) - -/** - This class implements help via an external browser. - It requires the name of a directory containing the documentation - and a file mapping numerical Section numbers to relative URLS. -*/ - -wxHTMLHelpControllerBase::wxHTMLHelpControllerBase() -{ - m_MapList = (wxList*) NULL; - m_NumOfEntries = 0; -} - -void -wxHTMLHelpControllerBase::DeleteList() -{ - if(m_MapList) - { - wxNode *node = m_MapList->First(); - while (node) - { - delete (wxExtHelpMapEntry *)node->Data(); - delete node; - node = m_MapList->First(); - } - delete m_MapList; - m_MapList = (wxList*) NULL; - } -} - -wxHTMLHelpControllerBase::~wxHTMLHelpControllerBase() -{ - DeleteList(); -} - -/** This must be called to tell the controller where to find the - documentation. - @param file - NOT a filename, but a directory name. - @return true on success -*/ -bool -wxHTMLHelpControllerBase::Initialize(const wxString& file) -{ - return LoadFile(file); -} - - -// ifile is the name of the base help directory -bool -wxHTMLHelpControllerBase::LoadFile(const wxString& ifile) -{ - wxString mapFile, file, url, doc; - int id,i,len; - char buffer[WXEXTHELP_BUFLEN]; - - wxBusyCursor b; // display a busy cursor - - if(! ifile.IsEmpty()) - { - file = ifile; - if(! wxIsAbsolutePath(file)) - { - wxChar* f = wxGetWorkingDirectory(); - file = f; - delete[] f; // wxGetWorkingDirectory returns new memory - file << WXEXTHELP_SEPARATOR << ifile; - } - else - file = ifile; - - // If a locale is set, look in file/localename, i.e. - // If passed "/usr/local/myapp/help" and the current wxLocale is - // set to be "de", then look in "/usr/local/myapp/help/de/" - // first and fall back to "/usr/local/myapp/help" if that - // doesn't exist. - if(wxGetLocale() && !wxGetLocale()->GetName().IsEmpty()) - { - wxString newfile; - newfile << WXEXTHELP_SEPARATOR << wxGetLocale()->GetName(); - if(wxDirExists(newfile)) - file = newfile; - else - { - newfile = WXEXTHELP_SEPARATOR; - const wxChar *cptr = wxGetLocale()->GetName().c_str(); - while(*cptr && *cptr != _T('_')) - newfile << *(cptr++); - if(wxDirExists(newfile)) - file = newfile; - } - } - - if(! wxDirExists(file)) - return FALSE; - - mapFile << file << WXEXTHELP_SEPARATOR << WXEXTHELP_MAPFILE; - } - else // try to reload old file - mapFile = m_MapFile; - - if(! wxFileExists(mapFile)) - return FALSE; - - DeleteList(); - m_MapList = new wxList; - m_NumOfEntries = 0; - - FILE *input = fopen(mapFile.fn_str(),"rt"); - if(! input) - return FALSE; - do - { - if(fgets(buffer,WXEXTHELP_BUFLEN,input) && *buffer != WXEXTHELP_COMMENTCHAR) - { - len = strlen(buffer); - if(buffer[len-1] == '\n') - buffer[len-1] = '\0'; // cut of trailing newline - if(sscanf(buffer,"%d", &id) != 1) - break; // error - for(i=0; isdigit(buffer[i])||isspace(buffer[i])||buffer[i]=='-'; i++) - ; // find begin of URL - url = ""; - while(buffer[i] && ! isspace(buffer[i]) && buffer[i] != - WXEXTHELP_COMMENTCHAR) - url << buffer[i++]; - while(buffer[i] && buffer[i] != WXEXTHELP_COMMENTCHAR) - i++; - doc = ""; - if(buffer[i]) - doc = (buffer + i + 1); // skip the comment character - m_MapList->Append(new wxExtHelpMapEntry(id,url,doc)); - m_NumOfEntries++; - } - }while(! feof(input)); - fclose(input); - - m_MapFile = file; // now it's valid - return TRUE; -} - - -bool -wxHTMLHelpControllerBase::DisplayContents() -{ - if(! m_NumOfEntries) - return FALSE; - wxBusyCursor b; // display a busy cursor - return KeywordSearch(""); -} - -bool -wxHTMLHelpControllerBase::DisplaySection(int sectionNo) -{ - if(! m_NumOfEntries) - return FALSE; - - wxBusyCursor b; // display a busy cursor - wxNode *node = m_MapList->First(); - wxExtHelpMapEntry *entry; - while(node) - { - entry = (wxExtHelpMapEntry *)node->Data(); - if(entry->id == sectionNo) - return DisplayHelp(entry->url); - node = node->Next(); - } - return FALSE; -} - -bool -wxHTMLHelpControllerBase::DisplayBlock(long blockNo) -{ - return DisplaySection((int)blockNo); -} - -bool -wxHTMLHelpControllerBase::KeywordSearch(const wxString& k) -{ - if(! m_NumOfEntries) - return FALSE; - - wxBusyCursor b; // display a busy cursor - wxString *choices = new wxString[m_NumOfEntries]; - wxString *urls = new wxString[m_NumOfEntries]; - wxString compA, compB; - - int idx = 0, j; - bool rc; - bool showAll = k.IsEmpty(); - wxNode *node = m_MapList->First(); - wxExtHelpMapEntry *entry; - - compA = k; compA.LowerCase(); // we compare case insensitive - while(node) - { - entry = (wxExtHelpMapEntry *)node->Data(); - compB = entry->doc; compB.LowerCase(); - if((showAll || compB.Contains(k)) && ! compB.IsEmpty()) - { - urls[idx] = entry->url; - // doesn't work: - // choices[idx] = (**i).doc.Contains((**i).doc.Before(WXEXTHELP_COMMENTCHAR)); - //if(choices[idx].IsEmpty()) // didn't contain the ';' - // choices[idx] = (**i).doc; - choices[idx] = ""; - for(j=0;entry->doc.c_str()[j] - && entry->doc.c_str()[j] != WXEXTHELP_COMMENTCHAR; j++) - choices[idx] << entry->doc.c_str()[j]; - idx++; - } - node = node->Next(); - } - - if(idx == 1) - rc = DisplayHelp(urls[0]); - else if(idx == 0) - { - wxMessageBox(_("No entries found.")); - rc = FALSE; - } - else - { - idx = wxGetSingleChoiceIndex(showAll ? _("Help Index") : _("Relevant entries:"), - showAll ? _("Help Index") : _("Entries found"), - idx,choices); - if(idx != -1) - rc = DisplayHelp(urls[idx]); - else - rc = FALSE; - } - delete[] urls; - delete[] choices; - - return rc; -} - - -bool -wxHTMLHelpControllerBase::Quit() -{ - return TRUE; -} - -void -wxHTMLHelpControllerBase::OnQuit() -{ -} - diff --git a/src/generic/helpxlp.cpp b/src/generic/helpxlp.cpp deleted file mode 100644 index 26bec27921..0000000000 --- a/src/generic/helpxlp.cpp +++ /dev/null @@ -1,265 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxlp.cpp -// Purpose: Help system: wxHelp implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpxlp.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#include "wx/generic/helpxlp.h" - -#if wxUSE_HELP -#include - -#ifdef __X__ -#include - -#ifdef SUN_CC -#include -#endif // SUN_CC -#ifdef ____HPUX__ -#include -#endif // ____HPUX__ -#endif // __X__ - -#include - -// Timeout in seconds -#define WX_HELP_TIMEOUT 15 /* was 30 */ - -// MAX path length -#define _MAXPATHLEN 500 - -// MAX length of Help descriptor -#define _MAX_HELP_LEN 500 - -#include "wx/generic/helpxlp.h" - -#if !USE_SHARED_LIBRARY - -#ifdef __WXMSW__ -IMPLEMENT_CLASS(wxXLPHelpClient, wxDDEClient) -IMPLEMENT_CLASS(wxXLPHelpConnection, wxDDEConnection) -#else -IMPLEMENT_CLASS(wxXLPHelpClient, wxTCPClient) -IMPLEMENT_CLASS(wxXLPHelpConnection, wxTCPConnection) -#endif - -IMPLEMENT_CLASS(wxXLPHelpController, wxHelpControllerBase) -#endif - -// suppress annoying warning "'this' used in base member init list" (so what?) -#ifdef __VISUALC__ - #pragma warning(disable: 4355) -#endif // Visual C++ - -wxXLPHelpController::wxXLPHelpController(void) - : helpClient(this) -{ - helpFile = ""; helpServer = -1; helpHost = ""; - helpRunning = FALSE; helpConnection = NULL; -} - -#ifdef __VISUALC__ - #pragma warning(default: 4355) -#endif // Visual C++ - -wxXLPHelpController::~wxXLPHelpController(void) -{ -} - -bool wxXLPHelpController::Initialize(const wxString& filename, int server) -{ -#ifdef __X__ - char host_buf[255]; - if (wxGetHostName(host_buf, sizeof(host_buf))) - helpHost = host_buf; - else helpHost = ""; -#endif - - helpFile = filename; - helpServer = server; - return TRUE; -} - -bool wxXLPHelpController::LoadFile(const wxString& file) -{ - helpFile = file; - - if (!helpRunning) - { - if (!Run()) - return FALSE; - } - char buf[_MAX_HELP_LEN]; - sprintf(buf, "f %s", (const char*) file); - if (helpConnection) - return helpConnection->Execute(buf); - else return FALSE; -} - -bool wxXLPHelpController::DisplayContents(void) -{ - if (!helpRunning) - { - if (!Run()) - return FALSE; - } - if (helpConnection) - return helpConnection->Execute("s -1"); - else - return FALSE; -} - -bool wxXLPHelpController::DisplaySection(int section) -{ - if (!helpRunning) - { - if (!Run()) - return FALSE; - } - char buf[_MAX_HELP_LEN]; - sprintf(buf, "s %d", section); - if (helpConnection) - return helpConnection->Execute(buf); - else return FALSE; -} - -bool wxXLPHelpController::DisplayBlock(long block) -{ - if (!helpRunning) - { - if (!Run()) - return FALSE; - } - char buf[_MAX_HELP_LEN]; - sprintf(buf, "b %ld", block); - if (helpConnection) - return helpConnection->Execute(buf); - else return FALSE; -} - -bool wxXLPHelpController::KeywordSearch(const wxString& k) -{ - if (!helpRunning) - { - if (!Run()) - return FALSE; - } - char buf[500]; - sprintf(buf, "k %s", (const char*) k); - if (helpConnection) - return helpConnection->Execute(buf); - else return FALSE; -} - -bool wxXLPHelpController::Quit(void) -{ - if (helpConnection) - return helpConnection->Disconnect(); // Calls OnQuit via OnDisconnect - else return TRUE; -} - -void wxXLPHelpController::OnQuit(void) -{ -} - -bool wxXLPHelpController::Run(void) -{ -#ifdef __X__ - if (!helpFile || !helpHost || helpRunning) - return FALSE; -#endif -#ifdef __WXMSW__ - if (!helpFile || helpRunning) - return FALSE; -#endif - - time_t current_time; -#ifdef __X__ - // Invent a server name that's likely to be unique but different from - // last time - (void)time(¤t_time); - if (helpServer == -1) - helpServer = (int)(4000 + (current_time % 4000)); -#else - // Only one instance of wxHelp at a time - helpServer = 4000; -#endif - - char server[32]; - sprintf(server, "%d", helpServer); -#ifdef __WXMSW__ - // Only one instance of wxHelp under Windows. - // See if there's already an instance of wxHelp - if ((helpConnection = (wxXLPHelpConnection *)helpClient.MakeConnection(helpHost, server, "WXHELP"))) - { - helpRunning = TRUE; - return TRUE; - } -#endif - - // Start help process in server modus -// char *argv[] = {"wxhelp", "-server", server, NULL}; // HP compiler complains - char *argv[4]; - argv[0] = "wxhelp"; - argv[1] = "-server"; - argv[2] = server; - argv[3] = NULL; - - if (wxExecute((char **)argv) == FALSE) - return FALSE; // Maybe we should print a message? - - time_t start_time; - (void)time(&start_time); - // Give it some time to respond - do { - wxSleep(1); - helpConnection = (wxXLPHelpConnection *)helpClient.MakeConnection(helpHost, server, "WXHELP"); - (void)time(¤t_time); - } while (!helpConnection && ((current_time - start_time) < WX_HELP_TIMEOUT)); - - if (helpConnection == NULL) { - char buf[100]; - sprintf(buf, (const char *) _("Connection to wxHelp timed out in %d seconds"), WX_HELP_TIMEOUT); - (void)wxMessageBox(buf, _("Error")); - return FALSE; - } - helpRunning = TRUE; - return TRUE; -} - -wxXLPHelpConnection::wxXLPHelpConnection(wxXLPHelpController *instance) -{ - helpInstance = instance; -} - -bool wxXLPHelpConnection::OnDisconnect(void) -{ - helpInstance->OnQuit(); - helpInstance->helpRunning = FALSE; - helpInstance->helpConnection = NULL; - helpInstance->helpServer = -1; - delete this; - return TRUE; -} - -#endif // wxUSE_HELP diff --git a/src/generic/imaglist.cpp b/src/generic/imaglist.cpp deleted file mode 100644 index e6dcbfd926..0000000000 --- a/src/generic/imaglist.cpp +++ /dev/null @@ -1,148 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.cpp -// Purpose: -// Author: Robert Roebling -// Id: $id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "imaglist.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/generic/imaglist.h" -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// wxImageList -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxObject) - -wxImageList::wxImageList( int width, int height, bool WXUNUSED(mask), int WXUNUSED(initialCount) ) -{ - m_width = width; - m_height = height; - Create(); -} - -wxImageList::~wxImageList() -{ -} - -int wxImageList::GetImageCount() const -{ - return m_images.Number(); -} - -bool wxImageList::Create() -{ - m_images.DeleteContents( TRUE ); - return TRUE; -} - -int wxImageList::Add( const wxBitmap &bitmap ) -{ - if (bitmap.IsKindOf(CLASSINFO(wxIcon))) - m_images.Append( new wxIcon( (const wxIcon&) bitmap ) ); - else - m_images.Append( new wxBitmap(bitmap) ); - return m_images.Number()-1; -} - -const wxBitmap *wxImageList::GetBitmap( int index ) const -{ - wxNode *node = m_images.Nth( index ); - - wxCHECK_MSG( node, (wxBitmap *) NULL, _T("wrong index in image list") ); - - return (wxBitmap*)node->Data(); -} - -bool wxImageList::Replace( int index, const wxBitmap &bitmap ) -{ - wxNode *node = m_images.Nth( index ); - - wxCHECK_MSG( node, FALSE, _T("wrong index in image list") ); - - wxBitmap* newBitmap = NULL; - if (bitmap.IsKindOf(CLASSINFO(wxIcon))) - newBitmap = new wxIcon( (const wxIcon&) bitmap ); - else - newBitmap = new wxBitmap(bitmap) ; - - if (index == m_images.Number()-1) - { - m_images.DeleteNode( node ); - m_images.Append( newBitmap ); - } - else - { - wxNode *next = node->Next(); - m_images.DeleteNode( node ); - m_images.Insert( next, newBitmap ); - } - - return TRUE; -} - -bool wxImageList::Remove( int index ) -{ - wxNode *node = m_images.Nth( index ); - - wxCHECK_MSG( node, FALSE, _T("wrong index in image list") ); - - m_images.DeleteNode( node ); - - return TRUE; -} - -bool wxImageList::RemoveAll() -{ - m_images.Clear(); - - return TRUE; -} - -bool wxImageList::GetSize( int index, int &width, int &height ) const -{ - width = 0; - height = 0; - - wxNode *node = m_images.Nth( index ); - - wxCHECK_MSG( node, FALSE, _T("wrong index in image list") ); - - wxBitmap *bm = (wxBitmap*)node->Data(); - width = bm->GetWidth(); - height = bm->GetHeight(); - - return TRUE; -} - -bool wxImageList::Draw( int index, wxDC &dc, int x, int y, - int flags, bool WXUNUSED(solidBackground) ) -{ - wxNode *node = m_images.Nth( index ); - - wxCHECK_MSG( node, FALSE, _T("wrong index in image list") ); - - wxBitmap *bm = (wxBitmap*)node->Data(); - - if (bm->IsKindOf(CLASSINFO(wxIcon))) - dc.DrawIcon( * ((wxIcon*) bm), x, y); - else - dc.DrawBitmap( *bm, x, y, (flags & wxIMAGELIST_DRAW_TRANSPARENT) > 0 ); - - return TRUE; -} - - diff --git a/src/generic/laywin.cpp b/src/generic/laywin.cpp deleted file mode 100644 index 2c9afa2c7d..0000000000 --- a/src/generic/laywin.cpp +++ /dev/null @@ -1,261 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: laywin.cpp -// Purpose: Implements a simple layout algorithm, plus -// wxSashLayoutWindow which is an example of a window with -// layout-awareness (via event handlers). This is suited to -// IDE-style window layout. -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "laywin.h" -#endif - -// 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" -#include "wx/mdi.h" -#endif - -#include "wx/laywin.h" - -IMPLEMENT_DYNAMIC_CLASS(wxQueryLayoutInfoEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxCalculateLayoutEvent, wxEvent) - -#if wxUSE_SASH -IMPLEMENT_CLASS(wxSashLayoutWindow, wxSashWindow) - -BEGIN_EVENT_TABLE(wxSashLayoutWindow, wxSashWindow) - EVT_CALCULATE_LAYOUT(wxSashLayoutWindow::OnCalculateLayout) - EVT_QUERY_LAYOUT_INFO(wxSashLayoutWindow::OnQueryLayoutInfo) -END_EVENT_TABLE() - -wxSashLayoutWindow::wxSashLayoutWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style, const wxString& name): - wxSashWindow(parent, id, pos, size, style, name) -{ - m_orientation = wxLAYOUT_HORIZONTAL; - m_alignment = wxLAYOUT_TOP; -} - -// This is the function that wxLayoutAlgorithm calls to ascertain the window -// dimensions. -void wxSashLayoutWindow::OnQueryLayoutInfo(wxQueryLayoutInfoEvent& event) -{ - // int flags = event.GetFlags(); - int requestedLength = event.GetRequestedLength(); - - event.SetOrientation(m_orientation); - event.SetAlignment(m_alignment); - - if (m_orientation == wxLAYOUT_HORIZONTAL) - event.SetSize(wxSize(requestedLength, m_defaultSize.y)); - else - event.SetSize(wxSize(m_defaultSize.x, requestedLength)); -} - -// Called by parent to allow window to take a bit out of the -// client rectangle, and size itself if not in wxLAYOUT_QUERY mode. - -void wxSashLayoutWindow::OnCalculateLayout(wxCalculateLayoutEvent& event) -{ - wxRect clientSize(event.GetRect()); - - int flags = event.GetFlags(); - - if (!IsShown()) - return; - - // Let's assume that all windows stretch the full extent of the window in - // the direction of that window orientation. This will work for non-docking toolbars, - // and the status bar. Note that the windows have to have been created in a certain - // order to work, else you might get a left-aligned window going to the bottom - // of the window, and the status bar appearing to the right of it. The - // status bar would have to be created after or before the toolbar(s). - - wxRect thisRect; - - // Try to stretch - int length = (GetOrientation() == wxLAYOUT_HORIZONTAL) ? clientSize.width : clientSize.height; - wxLayoutOrientation orient = GetOrientation(); - - // We assume that a window that says it's horizontal, wants to be stretched in that - // direction. Is this distinction too fine? Do we assume that any horizontal - // window needs to be stretched in that direction? Possibly. - int whichDimension = (GetOrientation() == wxLAYOUT_HORIZONTAL) ? wxLAYOUT_LENGTH_X : wxLAYOUT_LENGTH_Y; - - wxQueryLayoutInfoEvent infoEvent(GetId()); - infoEvent.SetEventObject(this); - infoEvent.SetRequestedLength(length); - infoEvent.SetFlags(orient | whichDimension); - - if (!GetEventHandler()->ProcessEvent(infoEvent)) - return; - - wxSize sz = infoEvent.GetSize(); - - if (sz.x == 0 && sz.y == 0) // Assume it's invisible - return; - - // Now we know the size it wants to be. We wish to decide where to place it, i.e. - // how it's aligned. - switch (GetAlignment()) - { - case wxLAYOUT_TOP: - { - thisRect.x = clientSize.x; thisRect.y = clientSize.y; - thisRect.width = sz.x; thisRect.height = sz.y; - clientSize.y += thisRect.height; - clientSize.height -= thisRect.height; - break; - } - case wxLAYOUT_LEFT: - { - thisRect.x = clientSize.x; thisRect.y = clientSize.y; - thisRect.width = sz.x; thisRect.height = sz.y; - clientSize.x += thisRect.width; - clientSize.width -= thisRect.width; - break; - } - case wxLAYOUT_RIGHT: - { - thisRect.x = clientSize.x + (clientSize.width - sz.x); thisRect.y = clientSize.y; - thisRect.width = sz.x; thisRect.height = sz.y; - clientSize.width -= thisRect.width; - break; - } - case wxLAYOUT_BOTTOM: - { - thisRect.x = clientSize.x; thisRect.y = clientSize.y + (clientSize.height - sz.y); - thisRect.width = sz.x; thisRect.height = sz.y; - clientSize.height -= thisRect.height; - break; - } - case wxLAYOUT_NONE: - { - break; - } - - } - - if ((flags & wxLAYOUT_QUERY) == 0) - { - // If not in query mode, resize the window. - // TODO: add wxRect& form to wxWindow::SetSize - SetSize(thisRect.x, thisRect.y, thisRect.width, thisRect.height); - } - - event.SetRect(clientSize); -} -#endif // wxUSE_SASH - -/* - * wxLayoutAlgorithm - */ - -// Lays out windows for an MDI frame. The MDI client area gets what's left -// over. -bool wxLayoutAlgorithm::LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* r) -{ - int cw, ch; - frame->GetClientSize(& cw, & ch); - - wxRect rect(0, 0, cw, ch); - if (r) - rect = * r; - - wxCalculateLayoutEvent event; - event.SetRect(rect); - - wxNode* node = frame->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - - event.SetId(win->GetId()); - event.SetEventObject(win); - event.SetFlags(0); // ?? - - win->GetEventHandler()->ProcessEvent(event); - - node = node->Next(); - } - - wxWindow* clientWindow = frame->GetClientWindow(); - - rect = event.GetRect(); - - clientWindow->SetSize(rect.x, rect.y, rect.width, rect.height); - - return TRUE; -} - -// Layout algorithm for any window. mainWindow gets what's left over. -bool wxLayoutAlgorithm::LayoutWindow(wxWindow* parent, wxWindow* mainWindow) -{ - // Test if the parent is a sash window, and if so, - // reduce the available space to allow space for any active edges. - - int leftMargin = 0, rightMargin = 0, topMargin = 0, bottomMargin = 0; -#if wxUSE_SASH - if (parent->IsKindOf(CLASSINFO(wxSashWindow))) - { - wxSashWindow* sashWindow = (wxSashWindow*) parent; - - leftMargin = sashWindow->GetExtraBorderSize(); - rightMargin = sashWindow->GetExtraBorderSize(); - topMargin = sashWindow->GetExtraBorderSize(); - bottomMargin = sashWindow->GetExtraBorderSize(); - - if (sashWindow->GetSashVisible(wxSASH_LEFT)) - leftMargin += sashWindow->GetDefaultBorderSize(); - if (sashWindow->GetSashVisible(wxSASH_RIGHT)) - rightMargin += sashWindow->GetDefaultBorderSize(); - if (sashWindow->GetSashVisible(wxSASH_TOP)) - topMargin += sashWindow->GetDefaultBorderSize(); - if (sashWindow->GetSashVisible(wxSASH_BOTTOM)) - bottomMargin += sashWindow->GetDefaultBorderSize(); - } -#endif // wxUSE_SASH - - int cw, ch; - parent->GetClientSize(& cw, & ch); - - wxRect rect(leftMargin, topMargin, cw - leftMargin - rightMargin, ch - topMargin - bottomMargin); - - wxCalculateLayoutEvent event; - event.SetRect(rect); - - wxNode* node = parent->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - - event.SetId(win->GetId()); - event.SetEventObject(win); - event.SetFlags(0); // ?? - - win->GetEventHandler()->ProcessEvent(event); - - node = node->Next(); - } - - rect = event.GetRect(); - - if (mainWindow) - mainWindow->SetSize(rect.x, rect.y, rect.width, rect.height); - - return TRUE; -} - diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp deleted file mode 100644 index c64f7e4229..0000000000 --- a/src/generic/listctrl.cpp +++ /dev/null @@ -1,2884 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listctrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/dcscreen.h" -#include "wx/app.h" -#include "wx/generic/listctrl.h" -#include "wx/generic/imaglist.h" - -//----------------------------------------------------------------------------- -// wxListItemData -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListItemData,wxObject); - -wxListItemData::wxListItemData(void) -{ - m_image = -1; - m_data = 0; - m_xpos = 0; - m_ypos = 0; - m_width = 0; - m_height = 0; - m_colour = wxBLACK; -} - -wxListItemData::wxListItemData( const wxListItem &info ) -{ - m_image = -1; - m_data = 0; - m_colour = info.m_colour; - SetItem( info ); -} - -void wxListItemData::SetItem( const wxListItem &info ) -{ - if (info.m_mask & wxLIST_MASK_TEXT) m_text = info.m_text; - if (info.m_mask & wxLIST_MASK_IMAGE) m_image = info.m_image; - if (info.m_mask & wxLIST_MASK_DATA) m_data = info.m_data; - m_colour = info.m_colour; - m_xpos = 0; - m_ypos = 0; - m_width = info.m_width; - m_height = 0; -} - -void wxListItemData::SetText( const wxString &s ) -{ - m_text = s; -} - -void wxListItemData::SetImage( int image ) -{ - m_image = image; -} - -void wxListItemData::SetData( long data ) -{ - m_data = data; -} - -void wxListItemData::SetPosition( int x, int y ) -{ - m_xpos = x; - m_ypos = y; -} - -void wxListItemData::SetSize( int width, int height ) -{ - if (width != -1) m_width = width; - if (height != -1) m_height = height; -} - -void wxListItemData::SetColour( wxColour *col ) -{ - m_colour = col; -} - -bool wxListItemData::HasImage(void) const -{ - return (m_image >= 0); -} - -bool wxListItemData::HasText(void) const -{ - return (!m_text.IsNull()); -} - -bool wxListItemData::IsHit( int x, int y ) const -{ - return ((x >= m_xpos) && (x <= m_xpos+m_width) && (y >= m_ypos) && (y <= m_ypos+m_height)); -} - -void wxListItemData::GetText( wxString &s ) -{ - s = m_text; -} - -int wxListItemData::GetX( void ) const -{ - return m_xpos; -} - -int wxListItemData::GetY( void ) const -{ - return m_ypos; -} - -int wxListItemData::GetWidth(void) const -{ - return m_width; -} - -int wxListItemData::GetHeight(void) const -{ - return m_height; -} - -int wxListItemData::GetImage(void) const -{ - return m_image; -} - -void wxListItemData::GetItem( wxListItem &info ) -{ - info.m_text = m_text; - info.m_image = m_image; - info.m_data = m_data; -} - -wxColour *wxListItemData::GetColour(void) -{ - return m_colour; -} - -//----------------------------------------------------------------------------- -// wxListHeaderData -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListHeaderData,wxObject); - -wxListHeaderData::wxListHeaderData(void) -{ - m_mask = 0; - m_image = 0; - m_format = 0; - m_width = 0; - m_xpos = 0; - m_ypos = 0; - m_height = 0; -} - -wxListHeaderData::wxListHeaderData( const wxListItem &item ) -{ - SetItem( item ); - m_xpos = 0; - m_ypos = 0; - m_height = 0; -} - -void wxListHeaderData::SetItem( const wxListItem &item ) -{ - m_mask = item.m_mask; - m_text = item.m_text; - m_image = item.m_image; - m_format = item.m_format; - m_width = item.m_width; - if (m_width < 0) m_width = 80; - if (m_width < 6) m_width = 6; -} - -void wxListHeaderData::SetPosition( int x, int y ) -{ - m_xpos = x; - m_ypos = y; -} - -void wxListHeaderData::SetHeight( int h ) -{ - m_height = h; -} - -void wxListHeaderData::SetWidth( int w ) -{ - m_width = w; - if (m_width < 0) m_width = 80; - if (m_width < 6) m_width = 6; -} - -void wxListHeaderData::SetFormat( int format ) -{ - m_format = format; -} - -bool wxListHeaderData::HasImage(void) const -{ - return (m_image != 0); -} - -bool wxListHeaderData::HasText(void) const -{ - return (m_text.Length() > 0); -} - -bool wxListHeaderData::IsHit( int x, int y ) const -{ - return ((x >= m_xpos) && (x <= m_xpos+m_width) && (y >= m_ypos) && (y <= m_ypos+m_height)); -} - -void wxListHeaderData::GetItem( wxListItem &item ) -{ - item.m_mask = m_mask; - item.m_text = m_text; - item.m_image = m_image; - item.m_format = m_format; - item.m_width = m_width; -} - -void wxListHeaderData::GetText( wxString &s ) -{ - s = m_text; -} - -int wxListHeaderData::GetImage(void) const -{ - return m_image; -} - -int wxListHeaderData::GetWidth(void) const -{ - return m_width; -} - -int wxListHeaderData::GetFormat(void) const -{ - return m_format; -} - -//----------------------------------------------------------------------------- -// wxListLineData -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListLineData,wxObject); - -wxListLineData::wxListLineData( wxListMainWindow *owner, int mode, wxBrush *hilightBrush ) -{ - m_mode = mode; - m_hilighted = FALSE; - m_owner = owner; - m_hilightBrush = hilightBrush; - m_items.DeleteContents( TRUE ); - m_spacing = 0; -} - -void wxListLineData::CalculateSize( wxDC *dc, int spacing ) -{ - m_spacing = spacing; - switch (m_mode) - { - case wxLC_ICON: - { - m_bound_all.width = m_spacing; - m_bound_all.height = m_spacing+13; - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - wxString s; - item->GetText( s ); - long lw,lh; - dc->GetTextExtent( s, &lw, &lh ); - if (lw > m_spacing) m_bound_all.width = lw; - } - break; - } - case wxLC_LIST: - { - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - wxString s; - item->GetText( s ); - long lw,lh; - dc->GetTextExtent( s, &lw, &lh ); - m_bound_all.width = lw; - m_bound_all.height = lh; - } - break; - } - case wxLC_REPORT: - { - m_bound_all.width = 0; - m_bound_all.height = 0; - wxNode *node = m_items.First(); - while (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - wxString s; - item->GetText( s ); - if (s.IsNull()) s = "H"; - long lw,lh; - dc->GetTextExtent( s, &lw, &lh ); - item->SetSize( item->GetWidth(), lh ); - m_bound_all.width += lw; - m_bound_all.height = lh; - node = node->Next(); - } - break; - } - } -} - -void wxListLineData::SetPosition( wxDC *dc, int x, int y, int window_width ) -{ - m_bound_all.x = x; - m_bound_all.y = y; - switch (m_mode) - { - case wxLC_ICON: - { - AssignRect( m_bound_icon, 0, 0, 0, 0 ); - AssignRect( m_bound_label, 0, 0, 0, 0 ); - AssignRect( m_bound_hilight, m_bound_all ); - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - if (item->HasImage()) - { - wxListItemData *item = (wxListItemData*)node->Data(); - int w = 0; - int h = 0; - m_owner->GetImageSize( item->GetImage(), w, h ); - m_bound_icon.x = m_bound_all.x + (m_spacing/2) - (w/2); - m_bound_icon.y = m_bound_all.y + m_spacing - h - 5; - m_bound_icon.width = w; - m_bound_icon.height = h; - if (!item->HasText()) - { - AssignRect( m_bound_hilight, m_bound_icon ); - m_bound_hilight.x -= 5; - m_bound_hilight.y -= 5; - m_bound_hilight.width += 9; - m_bound_hilight.height += 9; - } - } - if (item->HasText()) - { - wxString s; - item->GetText( s ); - long lw,lh; - dc->GetTextExtent( s, &lw, &lh ); - if (m_bound_all.width > m_spacing) - m_bound_label.x = m_bound_all.x; - else - m_bound_label.x = m_bound_all.x + (m_spacing/2) - lw/2; - m_bound_label.y = m_bound_all.y + m_bound_all.height - lh; - m_bound_label.width = lw; - m_bound_label.height = lh; - AssignRect( m_bound_hilight, m_bound_label ); - m_bound_hilight.x -= 2; - m_bound_hilight.y -= 2; - m_bound_hilight.width += 4; - m_bound_hilight.height += 4; - } - } - break; - } - case wxLC_LIST: - { - AssignRect( m_bound_label, m_bound_all ); - m_bound_all.x -= 2; - m_bound_all.y -= 2; - m_bound_all.width += 4; - m_bound_all.height += 3; - AssignRect( m_bound_hilight, m_bound_all ); - AssignRect( m_bound_icon, 0, 0, 0, 0 ); - break; - } - case wxLC_REPORT: - { - long lw,lh; - dc->GetTextExtent( "H", &lw, &lh ); - m_bound_all.x = 0; - m_bound_all.y -= 0; - m_bound_all.height = lh+3; - m_bound_all.width = window_width; - AssignRect( m_bound_hilight, m_bound_all ); - AssignRect( m_bound_label, 0, 0, 0 ,0 ); - AssignRect( m_bound_icon, 0, 0, 0, 0 ); - break; - } - } -} - -void wxListLineData::SetColumnPosition( int index, int x ) -{ - int i = index; - wxNode *node = m_items.Nth( i ); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - item->SetPosition( x, m_bound_all.y+1 ); - } -} - -void wxListLineData::GetSize( int &width, int &height ) -{ - width = m_bound_all.width; - height = m_bound_all.height; -} - -void wxListLineData::GetExtent( int &x, int &y, int &width, int &height ) -{ - x = m_bound_all.x; - y = m_bound_all.y; - width = m_bound_all.width; - height = m_bound_all.height; -} - -void wxListLineData::GetLabelExtent( int &x, int &y, int &width, int &height ) -{ - x = m_bound_label.x; - y = m_bound_label.y; - width = m_bound_label.width; - height = m_bound_label.height; -} - -void wxListLineData::GetRect( wxRect &rect ) -{ - AssignRect( rect, m_bound_all ); -} - -long wxListLineData::IsHit( int x, int y ) -{ - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - if (item->HasImage() && IsInRect( x, y, m_bound_icon )) return wxLIST_HITTEST_ONITEMICON; - if (item->HasText() && IsInRect( x, y, m_bound_label )) return wxLIST_HITTEST_ONITEMLABEL; -// if (!(item->HasImage() || item->HasText())) return 0; - } - // if there is no icon or text = empty - if (IsInRect( x, y, m_bound_all )) return wxLIST_HITTEST_ONITEMICON; - return 0; -} - -void wxListLineData::InitItems( int num ) -{ - for (int i = 0; i < num; i++) m_items.Append( new wxListItemData() ); -} - -void wxListLineData::SetItem( int index, const wxListItem &info ) -{ - wxNode *node = m_items.Nth( index ); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - item->SetItem( info ); - } -} - -void wxListLineData::GetItem( int index, wxListItem &info ) -{ - int i = index; - wxNode *node = m_items.Nth( i ); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - item->GetItem( info ); - } -} - -void wxListLineData::GetText( int index, wxString &s ) -{ - int i = index; - wxNode *node = m_items.Nth( i ); - s = ""; - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - item->GetText( s ); - } -} - -void wxListLineData::SetText( int index, const wxString s ) -{ - int i = index; - wxNode *node = m_items.Nth( i ); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - item->SetText( s ); - } -} - -int wxListLineData::GetImage( int index ) -{ - int i = index; - wxNode *node = m_items.Nth( i ); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - return item->GetImage(); - } - return -1; -} - -void wxListLineData::DoDraw( wxDC *dc, bool hilight, bool paintBG ) -{ - long dev_x = dc->LogicalToDeviceX( m_bound_all.x-2 ); - long dev_y = dc->LogicalToDeviceY( m_bound_all.y-2 ); - long dev_w = dc->LogicalToDeviceXRel( m_bound_all.width+4 ); - long dev_h = dc->LogicalToDeviceYRel( m_bound_all.height+4 ); - - if (!m_owner->IsExposed( dev_x, dev_y, dev_w, dev_h )) - { - return; - } - - if (paintBG) - { - if (hilight) - { - dc->SetBrush( * m_hilightBrush ); - dc->SetPen( * wxTRANSPARENT_PEN ); - } - else - { - dc->SetBrush( * wxWHITE_BRUSH ); - dc->SetPen( * wxTRANSPARENT_PEN ); - } - dc->DrawRectangle( m_bound_hilight.x, m_bound_hilight.y, - m_bound_hilight.width, m_bound_hilight.height ); - } - - dc->SetBackgroundMode(wxTRANSPARENT); - if (m_mode == wxLC_REPORT) - { - wxString s; - wxNode *node = m_items.First(); - while (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - dc->SetClippingRegion( item->GetX(), item->GetY(), item->GetWidth()-3, item->GetHeight() ); - int x = item->GetX(); - if (item->HasImage()) - { - int y = 0; - m_owner->DrawImage( item->GetImage(), dc, x, item->GetY() ); - m_owner->GetImageSize( item->GetImage(), x, y ); - x += item->GetX() + 5; - } - if (item->HasText()) - { - item->GetText( s ); - if (hilight) - dc->SetTextForeground( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_HIGHLIGHTTEXT ) ); - else - dc->SetTextForeground( *item->GetColour() ); - dc->DrawText( s, x, item->GetY() ); - } - dc->DestroyClippingRegion(); - node = node->Next(); - } - } - else - { - wxNode *node = m_items.First(); - if (node) - { - wxListItemData *item = (wxListItemData*)node->Data(); - if (item->HasImage()) - { - m_owner->DrawImage( item->GetImage(), dc, m_bound_icon.x, m_bound_icon.y ); - } - if (item->HasText()) - { - wxString s; - item->GetText( s ); - if (hilight) - dc->SetTextForeground( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_HIGHLIGHTTEXT ) ); - else - dc->SetTextForeground( * item->GetColour() ); - dc->DrawText( s, m_bound_label.x, m_bound_label.y ); - } - } - } -} - -void wxListLineData::Hilight( bool on ) -{ - if (on == m_hilighted) return; - if (on) - m_owner->SelectLine( this ); - else - m_owner->DeselectLine( this ); - m_hilighted = on; -} - -void wxListLineData::ReverseHilight( void ) -{ - m_hilighted = !m_hilighted; - if (m_hilighted) - m_owner->SelectLine( this ); - else - m_owner->DeselectLine( this ); -} - -void wxListLineData::DrawRubberBand( wxDC *dc, bool on ) -{ - if (on) - { - dc->SetPen( * wxBLACK_PEN ); - dc->SetBrush( * wxTRANSPARENT_BRUSH ); - dc->DrawRectangle( m_bound_hilight.x, m_bound_hilight.y, - m_bound_hilight.width, m_bound_hilight.height ); - } -} - -void wxListLineData::Draw( wxDC *dc ) -{ - DoDraw( dc, m_hilighted, m_hilighted ); -} - -bool wxListLineData::IsInRect( int x, int y, const wxRect &rect ) -{ - return ((x >= rect.x) && (x <= rect.x+rect.width) && - (y >= rect.y) && (y <= rect.y+rect.height)); -} - -bool wxListLineData::IsHilighted( void ) -{ - return m_hilighted; -} - -void wxListLineData::AssignRect( wxRect &dest, int x, int y, int width, int height ) -{ - dest.x = x; - dest.y = y; - dest.width = width; - dest.height = height; -} - -void wxListLineData::AssignRect( wxRect &dest, const wxRect &source ) -{ - dest.x = source.x; - dest.y = source.y; - dest.width = source.width; - dest.height = source.height; -} - -//----------------------------------------------------------------------------- -// wxListHeaderWindow -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListHeaderWindow,wxWindow); - -BEGIN_EVENT_TABLE(wxListHeaderWindow,wxWindow) - EVT_PAINT (wxListHeaderWindow::OnPaint) - EVT_MOUSE_EVENTS (wxListHeaderWindow::OnMouse) - EVT_SET_FOCUS (wxListHeaderWindow::OnSetFocus) -END_EVENT_TABLE() - -wxListHeaderWindow::wxListHeaderWindow( void ) -{ - m_owner = (wxListMainWindow *) NULL; - m_currentCursor = (wxCursor *) NULL; - m_resizeCursor = (wxCursor *) NULL; - m_isDragging = FALSE; -} - -wxListHeaderWindow::wxListHeaderWindow( wxWindow *win, wxWindowID id, wxListMainWindow *owner, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) : - wxWindow( win, id, pos, size, style, name ) -{ - m_owner = owner; -// m_currentCursor = wxSTANDARD_CURSOR; - m_currentCursor = (wxCursor *) NULL; - m_resizeCursor = new wxCursor( wxCURSOR_SIZEWE ); - m_isDragging = FALSE; - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ) ); -} - -wxListHeaderWindow::~wxListHeaderWindow( void ) -{ - delete m_resizeCursor; -} - -void wxListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h ) -{ - const int m_corner = 1; - - dc->SetBrush( *wxTRANSPARENT_BRUSH ); - - dc->SetPen( *wxBLACK_PEN ); - dc->DrawLine( x+w-m_corner+1, y, x+w, y+h ); // right (outer) - dc->DrawRectangle( x, y+h, w+1, 1 ); // bottom (outer) - - wxPen pen( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNSHADOW ), 1, wxSOLID ); - - dc->SetPen( pen ); - dc->DrawLine( x+w-m_corner, y, x+w-1, y+h ); // right (inner) - dc->DrawRectangle( x+1, y+h-1, w-2, 1 ); // bottom (inner) - - dc->SetPen( *wxWHITE_PEN ); - dc->DrawRectangle( x, y, w-m_corner+1, 1 ); // top (outer) - dc->DrawRectangle( x, y, 1, h ); // left (outer) - dc->DrawLine( x, y+h-1, x+1, y+h-1 ); - dc->DrawLine( x+w-1, y, x+w-1, y+1 ); -} - -void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - wxPaintDC dc( this ); - PrepareDC( dc ); - - dc.BeginDrawing(); - - dc.SetFont( GetFont() ); - - int w = 0; - int h = 0; - int x = 0; - int y = 0; - GetClientSize( &w, &h ); - - dc.SetBackgroundMode(wxTRANSPARENT); - dc.SetTextForeground( *wxBLACK ); - if (m_foregroundColour.Ok()) dc.SetTextForeground( m_foregroundColour ); - - x = 1; - y = 1; - int numColumns = m_owner->GetColumnCount(); - wxListItem item; - for (int i = 0; i < numColumns; i++) - { - m_owner->GetColumn( i, item ); - int cw = item.m_width-2; - if ((i+1 == numColumns) || (x+item.m_width > w-5)) cw = w-x-1; - dc.SetPen( *wxWHITE_PEN ); - - DoDrawRect( &dc, x, y, cw, h-2 ); - dc.SetClippingRegion( x, y, cw-5, h-4 ); - dc.DrawText( item.m_text, x+4, y+3 ); - dc.DestroyClippingRegion(); - x += item.m_width; - if (x > w+5) break; - } - dc.EndDrawing(); -} - -void wxListHeaderWindow::DrawCurrent() -{ - int x1 = m_currentX; - int y1 = 0; - int x2 = m_currentX-1; - int y2 = 0; - int dummy; - m_owner->GetClientSize( &dummy, &y2 ); - ClientToScreen( &x1, &y1 ); - m_owner->ClientToScreen( &x2, &y2 ); - - wxScreenDC dc; - dc.SetLogicalFunction( wxINVERT ); - dc.SetPen( wxPen( *wxBLACK, 2, wxSOLID ) ); - dc.SetBrush( *wxTRANSPARENT_BRUSH ); - - dc.DrawLine( x1, y1, x2, y2 ); - - dc.SetLogicalFunction( wxCOPY ); - - dc.SetPen( wxNullPen ); - dc.SetBrush( wxNullBrush ); -} - -void wxListHeaderWindow::OnMouse( wxMouseEvent &event ) -{ - int x = event.GetX(); - int y = event.GetY(); - if (m_isDragging) - { - DrawCurrent(); - if (event.ButtonUp()) - { - ReleaseMouse(); - m_isDragging = FALSE; - m_owner->SetColumnWidth( m_column, m_currentX-m_minX ); - } - else - { - int size_x = 0; - int dummy; - GetClientSize( &size_x, & dummy ); - if (x > m_minX+7) - m_currentX = x; - else - m_currentX = m_minX+7; - if (m_currentX > size_x-7) m_currentX = size_x-7; - DrawCurrent(); - } - return; - } - - m_minX = 0; - bool hit_border = FALSE; - int xpos = 0; - for (int j = 0; j < m_owner->GetColumnCount(); j++) - { - xpos += m_owner->GetColumnWidth( j ); - if ((abs(x-xpos) < 3) && (y < 22)) - { - hit_border = TRUE; - m_column = j; - break; - } - m_minX = xpos; - } - - if (event.LeftDown() && hit_border) - { - m_isDragging = TRUE; - m_currentX = x; - DrawCurrent(); - CaptureMouse(); - return; - } - - if (event.Moving()) - { - if (hit_border) - { - if (m_currentCursor == wxSTANDARD_CURSOR) SetCursor( * m_resizeCursor ); - m_currentCursor = m_resizeCursor; - } - else - { - if (m_currentCursor != wxSTANDARD_CURSOR) SetCursor( * wxSTANDARD_CURSOR ); - m_currentCursor = wxSTANDARD_CURSOR; - } - } -} - -void wxListHeaderWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) ) -{ - m_owner->SetFocus(); -} - -//----------------------------------------------------------------------------- -// wxListRenameTimer (internal) -//----------------------------------------------------------------------------- - -wxListRenameTimer::wxListRenameTimer( wxListMainWindow *owner ) -{ - m_owner = owner; -} - -void wxListRenameTimer::Notify() -{ - m_owner->OnRenameTimer(); -} - -//----------------------------------------------------------------------------- -// wxListTextCtrl (internal) -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListTextCtrl,wxTextCtrl); - -BEGIN_EVENT_TABLE(wxListTextCtrl,wxTextCtrl) - EVT_CHAR (wxListTextCtrl::OnChar) - EVT_KILL_FOCUS (wxListTextCtrl::OnKillFocus) -END_EVENT_TABLE() - -wxListTextCtrl::wxListTextCtrl( wxWindow *parent, const wxWindowID id, - bool *accept, wxString *res, wxListMainWindow *owner, - const wxString &value, const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) : - wxTextCtrl( parent, id, value, pos, size, style, validator, name ) -{ - m_res = res; - m_accept = accept; - m_owner = owner; -} - -void wxListTextCtrl::OnChar( wxKeyEvent &event ) -{ - if (event.m_keyCode == WXK_RETURN) - { - (*m_accept) = TRUE; - (*m_res) = GetValue(); - m_owner->OnRenameAccept(); -// Show( FALSE ); - Destroy(); - return; - } - if (event.m_keyCode == WXK_ESCAPE) - { - (*m_accept) = FALSE; - (*m_res) = ""; -// Show( FALSE ); - Destroy(); - return; - } - event.Skip(); -} - -void wxListTextCtrl::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) -{ - (*m_accept) = FALSE; - (*m_res) = ""; -// Show( FALSE ); - Destroy(); - return; -} - -//----------------------------------------------------------------------------- -// wxListMainWindow -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListMainWindow,wxScrolledWindow); - -BEGIN_EVENT_TABLE(wxListMainWindow,wxScrolledWindow) - EVT_PAINT (wxListMainWindow::OnPaint) - EVT_SIZE (wxListMainWindow::OnSize) - EVT_MOUSE_EVENTS (wxListMainWindow::OnMouse) - EVT_CHAR (wxListMainWindow::OnChar) - EVT_KEY_DOWN (wxListMainWindow::OnKeyDown) - EVT_SET_FOCUS (wxListMainWindow::OnSetFocus) - EVT_KILL_FOCUS (wxListMainWindow::OnKillFocus) -END_EVENT_TABLE() - -wxListMainWindow::wxListMainWindow( void ) -{ - m_mode = 0; - m_lines.DeleteContents( TRUE ); - m_columns.DeleteContents( TRUE ); - m_current = (wxListLineData *) NULL; - m_visibleLines = 0; - m_hilightBrush = (wxBrush *) NULL; - m_xScroll = 0; - m_yScroll = 0; - m_dirty = TRUE; - m_small_image_list = (wxImageList *) NULL; - m_normal_image_list = (wxImageList *) NULL; - m_small_spacing = 30; - m_normal_spacing = 40; - m_hasFocus = FALSE; - m_usedKeys = TRUE; - m_lastOnSame = FALSE; - m_renameTimer = new wxListRenameTimer( this ); - m_isCreated = FALSE; - m_dragCount = 0; -} - -wxListMainWindow::wxListMainWindow( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) : - wxScrolledWindow( parent, id, pos, size, style|wxHSCROLL|wxVSCROLL, name ) -{ - m_mode = style; - m_lines.DeleteContents( TRUE ); - m_columns.DeleteContents( TRUE ); - m_current = (wxListLineData *) NULL; - m_dirty = TRUE; - m_visibleLines = 0; - m_hilightBrush = new wxBrush( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_HIGHLIGHT), wxSOLID ); - m_small_image_list = (wxImageList *) NULL; - m_normal_image_list = (wxImageList *) NULL; - m_small_spacing = 30; - m_normal_spacing = 40; - m_hasFocus = FALSE; - m_dragCount = 0; - m_isCreated = FALSE; - wxSize sz = size; - sz.y = 25; - - if (m_mode & wxLC_REPORT) - { - m_xScroll = 0; - m_yScroll = 15; - } - else - { - m_xScroll = 15; - m_yScroll = 0; - } - SetScrollbars( m_xScroll, m_yScroll, 0, 0, 0, 0 ); - - m_usedKeys = TRUE; - m_lastOnSame = FALSE; - m_renameTimer = new wxListRenameTimer( this ); - m_renameAccept = FALSE; - - SetBackgroundColour( *wxWHITE ); -} - -wxListMainWindow::~wxListMainWindow( void ) -{ - if (m_hilightBrush) delete m_hilightBrush; - - delete m_renameTimer; -} - -void wxListMainWindow::RefreshLine( wxListLineData *line ) -{ - int x = 0; - int y = 0; - int w = 0; - int h = 0; - if (line) - { - wxClientDC dc(this); - PrepareDC( dc ); - line->GetExtent( x, y, w, h ); - wxRect rect( - dc.LogicalToDeviceX(x-3), - dc.LogicalToDeviceY(y-3), - dc.LogicalToDeviceXRel(w+6), - dc.LogicalToDeviceXRel(h+6) ); - Refresh( TRUE, &rect ); - } -} - -void wxListMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - // Note: a wxPaintDC must be constructed even if no drawing is - // done (a Windows requirement). - wxPaintDC dc( this ); - PrepareDC( dc ); - - if (m_dirty) return; - - if (m_lines.GetCount() == 0) return; - - dc.BeginDrawing(); - - dc.SetFont( GetFont() ); - - if (m_mode & wxLC_REPORT) - { - int lineSpacing = 0; - wxListLineData *line = (wxListLineData*)m_lines.First()->Data(); - int dummy = 0; - line->GetSize( dummy, lineSpacing ); - lineSpacing += 1; - - int y_s = m_yScroll*GetScrollPos( wxVERTICAL ); - - wxNode *node = m_lines.Nth( y_s / lineSpacing ); - for (int i = 0; i < m_visibleLines+2; i++) - { - if (!node) break; - - line = (wxListLineData*)node->Data(); - line->Draw( &dc ); - node = node->Next(); - } - } - else - { - wxNode *node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - line->Draw( &dc ); - node = node->Next(); - } - } - - if (m_current) m_current->DrawRubberBand( &dc, m_hasFocus ); - - dc.EndDrawing(); -} - -void wxListMainWindow::HilightAll( bool on ) -{ - wxNode *node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData *)node->Data(); - if (line->IsHilighted() != on) - { - line->Hilight( on ); - RefreshLine( line ); - } - node = node->Next(); - } -} - -void wxListMainWindow::SendNotify( wxListLineData *line, wxEventType command ) -{ - wxListEvent le( command, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_itemIndex = GetIndexOfLine( line ); - line->GetItem( 0, le.m_item ); - GetParent()->GetEventHandler()->ProcessEvent( le ); -} - -void wxListMainWindow::FocusLine( wxListLineData *WXUNUSED(line) ) -{ -// SendNotify( line, wxEVT_COMMAND_LIST_ITEM_FOCUSSED ); -} - -void wxListMainWindow::UnfocusLine( wxListLineData *WXUNUSED(line) ) -{ -// SendNotify( line, wxEVT_COMMAND_LIST_ITEM_UNFOCUSSED ); -} - -void wxListMainWindow::SelectLine( wxListLineData *line ) -{ - SendNotify( line, wxEVT_COMMAND_LIST_ITEM_SELECTED ); -} - -void wxListMainWindow::DeselectLine( wxListLineData *line ) -{ - SendNotify( line, wxEVT_COMMAND_LIST_ITEM_DESELECTED ); -} - -void wxListMainWindow::DeleteLine( wxListLineData *line ) -{ - SendNotify( line, wxEVT_COMMAND_LIST_DELETE_ITEM ); -} - -void wxListMainWindow::StartLabelEdit( wxListLineData *line ) -{ - SendNotify( line, wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT ); -} - -void wxListMainWindow::RenameLine( wxListLineData *line, const wxString &newName ) -{ - wxListEvent le( wxEVT_COMMAND_LIST_END_LABEL_EDIT, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_itemIndex = GetIndexOfLine( line ); - line->GetItem( 0, le.m_item ); - le.m_item.m_text = newName; - GetParent()->GetEventHandler()->ProcessEvent( le ); -} - -void wxListMainWindow::OnRenameTimer() -{ - StartLabelEdit( m_current ); - wxString s; - m_current->GetText( 0, s ); - int x = 0; - int y = 0; - int w = 0; - int h = 0; - m_current->GetLabelExtent( x, y, w, h ); - - wxClientDC dc(this); - PrepareDC( dc ); - x = dc.LogicalToDeviceX( x ); - y = dc.LogicalToDeviceY( y ); - - wxListTextCtrl *text = new wxListTextCtrl( - this, -1, &m_renameAccept, &m_renameRes, this, s, wxPoint(x-4,y-4), wxSize(w+11,h+8) ); - text->SetFocus(); -} - -void wxListMainWindow::OnRenameAccept() -{ - RenameLine( m_current, m_renameRes ); -} - -void wxListMainWindow::OnMouse( wxMouseEvent &event ) -{ - if (GetParent()->GetEventHandler()->ProcessEvent( event)) return; - - if (!m_current) return; - if (m_dirty) return; - - wxClientDC dc(this); - PrepareDC(dc); - long x = dc.DeviceToLogicalX( (long)event.GetX() ); - long y = dc.DeviceToLogicalY( (long)event.GetY() ); - - /* Did we actually hit an item ? */ - long hitResult = 0; - wxNode *node = m_lines.First(); - wxListLineData *line = (wxListLineData *) NULL; - while (node) - { - line = (wxListLineData*)node->Data(); - hitResult = line->IsHit( x, y ); - if (hitResult) break; - line = (wxListLineData *) NULL; - node = node->Next(); - } - - if (!event.Dragging()) - m_dragCount = 0; - else - m_dragCount++; - - if (event.Dragging() && (m_dragCount > 3)) - { - m_dragCount = 0; - - wxListEvent le( wxEVT_COMMAND_LIST_BEGIN_DRAG, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_pointDrag.x = x; - le.m_pointDrag.y = y; - GetParent()->GetEventHandler()->ProcessEvent( le ); - - return; - } - - if (!line) return; - - if (event.ButtonDClick()) - { - m_usedKeys = FALSE; - m_lastOnSame = FALSE; - m_renameTimer->Stop(); - - SendNotify( line, wxEVT_COMMAND_LIST_ITEM_ACTIVATED ); - - return; - } - - if (event.LeftUp() && m_lastOnSame) - { - m_usedKeys = FALSE; - if ((line == m_current) && - (hitResult == wxLIST_HITTEST_ONITEMLABEL) && - (m_mode & wxLC_EDIT_LABELS) ) - { - m_renameTimer->Start( 100, TRUE ); - } - m_lastOnSame = FALSE; - return; - } - - if (event.RightDown()) - { - SendNotify( line, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK ); - return; - } - - if (event.MiddleDown()) - { - SendNotify( line, wxEVT_COMMAND_LIST_ITEM_MIDDLE_CLICK ); - return; - } - - if (event.LeftDown()) - { - m_usedKeys = FALSE; - wxListLineData *oldCurrent = m_current; - if (m_mode & wxLC_SINGLE_SEL) - { - m_current = line; - HilightAll( FALSE ); - m_current->ReverseHilight(); - RefreshLine( m_current ); - } - else - { - if (event.ShiftDown()) - { - m_current = line; - m_current->ReverseHilight(); - RefreshLine( m_current ); - } - else if (event.ControlDown()) - { - m_current = line; - - int numOfCurrent = -1; - node = m_lines.First(); - while (node) - { - wxListLineData *test_line = (wxListLineData*)node->Data(); - numOfCurrent++; - if (test_line == oldCurrent) break; - node = node->Next(); - } - - int numOfLine = -1; - node = m_lines.First(); - while (node) - { - wxListLineData *test_line = (wxListLineData*)node->Data(); - numOfLine++; - if (test_line == line) break; - node = node->Next(); - } - - if (numOfLine < numOfCurrent) - { - int i = numOfLine; - numOfLine = numOfCurrent; - numOfCurrent = i; - } - - wxNode *node = m_lines.Nth( numOfCurrent ); - for (int i = 0; i <= numOfLine-numOfCurrent; i++) - { - wxListLineData *test_line= (wxListLineData*)node->Data(); - test_line->Hilight(TRUE); - RefreshLine( test_line ); - node = node->Next(); - } - } - else - { - m_current = line; - HilightAll( FALSE ); - m_current->ReverseHilight(); - RefreshLine( m_current ); - } - } - if (m_current != oldCurrent) - { - RefreshLine( oldCurrent ); - UnfocusLine( oldCurrent ); - FocusLine( m_current ); - } - m_lastOnSame = (m_current == oldCurrent); - return; - } -} - -void wxListMainWindow::MoveToFocus( void ) -{ - if (!m_current) return; - - int x = 0; - int y = 0; - int w = 0; - int h = 0; - m_current->GetExtent( x, y, w, h ); - - int w_p = 0; - int h_p = 0; - GetClientSize( &w_p, &h_p ); - - if (m_mode & wxLC_REPORT) - { - int y_s = m_yScroll*GetScrollPos( wxVERTICAL ); - if ((y > y_s) && (y+h < y_s+h_p)) return; - if (y-y_s < 5) { Scroll( -1, (y-5-h_p/2)/m_yScroll ); Refresh(); } - if (y+h+5 > y_s+h_p) { Scroll( -1, (y+h-h_p/2+h+15)/m_yScroll); Refresh(); } - } - else - { - int x_s = m_xScroll*GetScrollPos( wxHORIZONTAL ); - if ((x > x_s) && (x+w < x_s+w_p)) return; - if (x-x_s < 5) { Scroll( (x-5)/m_xScroll, -1 ); Refresh(); } - if (x+w-5 > x_s+w_p) { Scroll( (x+w-w_p+15)/m_xScroll, -1 ); Refresh(); } - } -} - -void wxListMainWindow::OnArrowChar( wxListLineData *newCurrent, bool shiftDown ) -{ - if ((m_mode & wxLC_SINGLE_SEL) || (m_usedKeys == FALSE)) m_current->Hilight( FALSE ); - wxListLineData *oldCurrent = m_current; - m_current = newCurrent; - MoveToFocus(); - if (shiftDown || (m_mode & wxLC_SINGLE_SEL)) m_current->Hilight( TRUE ); - RefreshLine( m_current ); - RefreshLine( oldCurrent ); - FocusLine( m_current ); - UnfocusLine( oldCurrent ); -} - -void wxListMainWindow::OnKeyDown( wxKeyEvent &event ) -{ - wxWindow *parent = GetParent(); - - /* we propagate the key event up */ - wxKeyEvent ke( wxEVT_KEY_DOWN ); - ke.m_shiftDown = event.m_shiftDown; - ke.m_controlDown = event.m_controlDown; - ke.m_altDown = event.m_altDown; - ke.m_metaDown = event.m_metaDown; - ke.m_keyCode = event.m_keyCode; - ke.m_x = event.m_x; - ke.m_y = event.m_y; - ke.SetEventObject( parent ); - if (parent->GetEventHandler()->ProcessEvent( ke )) return; - - event.Skip(); -} - -void wxListMainWindow::OnChar( wxKeyEvent &event ) -{ - wxWindow *parent = GetParent(); - - /* we send a list_key event up */ - wxListEvent le( wxEVT_COMMAND_LIST_KEY_DOWN, GetParent()->GetId() ); - le.m_code = event.KeyCode(); - le.SetEventObject( parent ); - parent->GetEventHandler()->ProcessEvent( le ); - - /* we propagate the char event up */ - wxKeyEvent ke( wxEVT_CHAR ); - ke.m_shiftDown = event.m_shiftDown; - ke.m_controlDown = event.m_controlDown; - ke.m_altDown = event.m_altDown; - ke.m_metaDown = event.m_metaDown; - ke.m_keyCode = event.m_keyCode; - ke.m_x = event.m_x; - ke.m_y = event.m_y; - ke.SetEventObject( parent ); - if (parent->GetEventHandler()->ProcessEvent( ke )) return; - - if (event.KeyCode() == WXK_TAB) - { - wxNavigationKeyEvent nevent; - nevent.SetDirection( !event.ShiftDown() ); - nevent.SetCurrentFocus( m_parent ); - if (m_parent->GetEventHandler()->ProcessEvent( nevent )) return; - } - - /* no item -> nothing to do */ - if (!m_current) - { - event.Skip(); - return; - } - - switch (event.KeyCode()) - { - case WXK_UP: - { - wxNode *node = m_lines.Member( m_current )->Previous(); - if (node) OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - break; - } - case WXK_DOWN: - { - wxNode *node = m_lines.Member( m_current )->Next(); - if (node) OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - break; - } - case WXK_END: - { - wxNode *node = m_lines.Last(); - OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - break; - } - case WXK_HOME: - { - wxNode *node = m_lines.First(); - OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - break; - } - case WXK_PRIOR: - { - int steps = 0; - if (m_mode & wxLC_REPORT) - { - steps = m_visibleLines-1; - } - else - { - int pos = 0; - wxNode *node = m_lines.First(); - for (;;) { if (m_current == (wxListLineData*)node->Data()) break; pos++; node = node->Next(); } - steps = pos % m_visibleLines; - } - wxNode *node = m_lines.Member( m_current ); - for (int i = 0; i < steps; i++) if (node->Previous()) node = node->Previous(); - if (node) OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - break; - } - case WXK_NEXT: - { - int steps = 0; - if (m_mode & wxLC_REPORT) - { - steps = m_visibleLines-1; - } - else - { - int pos = 0; wxNode *node = m_lines.First(); - for (;;) { if (m_current == (wxListLineData*)node->Data()) break; pos++; node = node->Next(); } - steps = m_visibleLines-(pos % m_visibleLines)-1; - } - wxNode *node = m_lines.Member( m_current ); - for (int i = 0; i < steps; i++) if (node->Next()) node = node->Next(); - if (node) OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - break; - } - case WXK_LEFT: - { - if (!(m_mode & wxLC_REPORT)) - { - wxNode *node = m_lines.Member( m_current ); - for (int i = 0; i Previous()) node = node->Previous(); - if (node) OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - } - break; - } - case WXK_RIGHT: - { - if (!(m_mode & wxLC_REPORT)) - { - wxNode *node = m_lines.Member( m_current ); - for (int i = 0; i Next()) node = node->Next(); - if (node) OnArrowChar( (wxListLineData*)node->Data(), event.ShiftDown() ); - } - break; - } - case WXK_SPACE: - { - m_current->ReverseHilight(); - RefreshLine( m_current ); - break; - } - case WXK_INSERT: - { - if (!(m_mode & wxLC_SINGLE_SEL)) - { - wxListLineData *oldCurrent = m_current; - m_current->ReverseHilight(); - wxNode *node = m_lines.Member( m_current )->Next(); - if (node) m_current = (wxListLineData*)node->Data(); - MoveToFocus(); - RefreshLine( oldCurrent ); - RefreshLine( m_current ); - UnfocusLine( oldCurrent ); - FocusLine( m_current ); - } - break; - } - case WXK_RETURN: - case WXK_EXECUTE: - { - wxListEvent le( wxEVT_COMMAND_LIST_ITEM_ACTIVATED, GetParent()->GetId() ); - le.SetEventObject( GetParent() ); - le.m_itemIndex = GetIndexOfLine( m_current ); - m_current->GetItem( 0, le.m_item ); - GetParent()->GetEventHandler()->ProcessEvent( le ); - break; - } - default: - { - event.Skip(); - return; - } - } - m_usedKeys = TRUE; -} - -void wxListMainWindow::OnSetFocus( wxFocusEvent &WXUNUSED(event) ) -{ - m_hasFocus = TRUE; - RefreshLine( m_current ); - - if (!GetParent()) return; - - wxFocusEvent event( wxEVT_SET_FOCUS, GetParent()->GetId() ); - event.SetEventObject( GetParent() ); - GetParent()->GetEventHandler()->ProcessEvent( event ); -} - -void wxListMainWindow::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) -{ - m_hasFocus = FALSE; - RefreshLine( m_current ); -} - -void wxListMainWindow::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ -/* - We don't even allow the wxScrolledWindow::AdjustScrollbars() call - -*/ -} - -void wxListMainWindow::DrawImage( int index, wxDC *dc, int x, int y ) -{ - if ((m_mode & wxLC_ICON) && (m_normal_image_list)) - { - m_normal_image_list->Draw( index, *dc, x, y, wxIMAGELIST_DRAW_TRANSPARENT ); - return; - } - if ((m_mode & wxLC_SMALL_ICON) && (m_small_image_list)) - { - m_small_image_list->Draw( index, *dc, x, y, wxIMAGELIST_DRAW_TRANSPARENT ); - } - if ((m_mode & wxLC_REPORT) && (m_small_image_list)) - { - m_small_image_list->Draw( index, *dc, x, y, wxIMAGELIST_DRAW_TRANSPARENT ); - return; - } -} - -void wxListMainWindow::GetImageSize( int index, int &width, int &height ) -{ - if ((m_mode & wxLC_ICON) && (m_normal_image_list)) - { - m_normal_image_list->GetSize( index, width, height ); - return; - } - if ((m_mode & wxLC_SMALL_ICON) && (m_small_image_list)) - { - m_small_image_list->GetSize( index, width, height ); - return; - } - if ((m_mode & wxLC_REPORT) && (m_small_image_list)) - { - m_small_image_list->GetSize( index, width, height ); - return; - } - width = 0; - height = 0; -} - -int wxListMainWindow::GetTextLength( wxString &s ) -{ - wxClientDC dc( this ); - long lw = 0; - long lh = 0; - dc.GetTextExtent( s, &lw, &lh ); - return lw + 6; -} - -int wxListMainWindow::GetIndexOfLine( const wxListLineData *line ) -{ - int i = 0; - wxNode *node = m_lines.First(); - while (node) - { - if (line == (wxListLineData*)node->Data()) return i; - i++; - node = node->Next(); - } - return -1; -} - -void wxListMainWindow::SetImageList( wxImageList *imageList, int which ) -{ - m_dirty = TRUE; - if (which == wxIMAGE_LIST_NORMAL) m_normal_image_list = imageList; - if (which == wxIMAGE_LIST_SMALL) m_small_image_list = imageList; -} - -void wxListMainWindow::SetItemSpacing( int spacing, bool isSmall ) -{ - m_dirty = TRUE; - if (isSmall) - { - m_small_spacing = spacing; - } - else - { - m_normal_spacing = spacing; - } -} - -int wxListMainWindow::GetItemSpacing( bool isSmall ) -{ - if (isSmall) return m_small_spacing; else return m_normal_spacing; -} - -void wxListMainWindow::SetColumn( int col, wxListItem &item ) -{ - m_dirty = TRUE; - wxNode *node = m_columns.Nth( col ); - if (node) - { - if (item.m_width == wxLIST_AUTOSIZE_USEHEADER) item.m_width = GetTextLength( item.m_text )+7; - wxListHeaderData *column = (wxListHeaderData*)node->Data(); - column->SetItem( item ); - } - wxListCtrl *lc = (wxListCtrl*) GetParent(); - if (lc->m_headerWin) lc->m_headerWin->Refresh(); -} - -void wxListMainWindow::SetColumnWidth( int col, int width ) -{ - if (!(m_mode & wxLC_REPORT)) return; - - m_dirty = TRUE; - - wxNode *node = m_columns.Nth( col ); - if (node) - { - wxListHeaderData *column = (wxListHeaderData*)node->Data(); - column->SetWidth( width ); - } - - node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - wxNode *n = line->m_items.Nth( col ); - if (n) - { - wxListItemData *item = (wxListItemData*)n->Data(); - item->SetSize( width, -1 ); - } - node = node->Next(); - } - - wxListCtrl *lc = (wxListCtrl*) GetParent(); - if (lc->m_headerWin) lc->m_headerWin->Refresh(); -} - -void wxListMainWindow::GetColumn( int col, wxListItem &item ) -{ - wxNode *node = m_columns.Nth( col ); - if (node) - { - wxListHeaderData *column = (wxListHeaderData*)node->Data(); - column->GetItem( item ); - } - else - { - item.m_format = 0; - item.m_width = 0; - item.m_text = ""; - item.m_image = 0; - item.m_data = 0; - } -} - -int wxListMainWindow::GetColumnWidth( int col ) -{ - wxNode *node = m_columns.Nth( col ); - if (node) - { - wxListHeaderData *column = (wxListHeaderData*)node->Data(); - return column->GetWidth(); - } - else - { - return 0; - } -} - -int wxListMainWindow::GetColumnCount( void ) -{ - return m_columns.Number(); -} - -int wxListMainWindow::GetCountPerPage( void ) -{ - return m_visibleLines; -} - -void wxListMainWindow::SetItem( wxListItem &item ) -{ - m_dirty = TRUE; - wxNode *node = m_lines.Nth( item.m_itemId ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if (m_mode & wxLC_REPORT) item.m_width = GetColumnWidth( item.m_col )-3; - line->SetItem( item.m_col, item ); - } -} - -void wxListMainWindow::SetItemState( long item, long state, long stateMask ) -{ - // m_dirty = TRUE; no recalcs needed - - wxListLineData *oldCurrent = m_current; - - if (stateMask & wxLIST_STATE_FOCUSED) - { - wxNode *node = m_lines.Nth( item ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - UnfocusLine( m_current ); - m_current = line; - FocusLine( m_current ); - RefreshLine( m_current ); - if (oldCurrent) RefreshLine( oldCurrent ); - } - } - - if (stateMask & wxLIST_STATE_SELECTED) - { - bool on = state & wxLIST_STATE_SELECTED; - if (!on && (m_mode & wxLC_SINGLE_SEL)) return; - - wxNode *node = m_lines.Nth( item ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if (m_mode & wxLC_SINGLE_SEL) - { - UnfocusLine( m_current ); - m_current = line; - FocusLine( m_current ); - if (oldCurrent) oldCurrent->Hilight( FALSE ); - RefreshLine( m_current ); - if (oldCurrent) RefreshLine( oldCurrent ); - } - bool on = state & wxLIST_STATE_SELECTED; - if (on != line->IsHilighted()) - { - line->Hilight( on ); - RefreshLine( line ); - } - } - } -} - -int wxListMainWindow::GetItemState( long item, long stateMask ) -{ - int ret = wxLIST_STATE_DONTCARE; - if (stateMask & wxLIST_STATE_FOCUSED) - { - wxNode *node = m_lines.Nth( item ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if (line == m_current) ret |= wxLIST_STATE_FOCUSED; - } - } - if (stateMask & wxLIST_STATE_SELECTED) - { - wxNode *node = m_lines.Nth( item ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if (line->IsHilighted()) ret |= wxLIST_STATE_FOCUSED; - } - } - return ret; -} - -void wxListMainWindow::GetItem( wxListItem &item ) -{ - wxNode *node = m_lines.Nth( item.m_itemId ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - line->GetItem( item.m_col, item ); - } - else - { - item.m_mask = 0; - item.m_text = ""; - item.m_image = 0; - item.m_data = 0; - } -} - -int wxListMainWindow::GetItemCount( void ) -{ - return m_lines.Number(); -} - -void wxListMainWindow::GetItemRect( long index, wxRect &rect ) -{ - wxNode *node = m_lines.Nth( index ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - line->GetRect( rect ); - } - else - { - rect.x = 0; - rect.y = 0; - rect.width = 0; - rect.height = 0; - } -} - -bool wxListMainWindow::GetItemPosition(long item, wxPoint& pos) -{ - wxNode *node = m_lines.Nth( item ); - if (node) - { - wxRect rect; - wxListLineData *line = (wxListLineData*)node->Data(); - line->GetRect( rect ); - pos.x = rect.x; - pos.y = rect.y; - } - else - { - pos.x = 0; - pos.y = 0; - } - return TRUE; -} - -int wxListMainWindow::GetSelectedItemCount( void ) -{ - int ret = 0; - wxNode *node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if (line->IsHilighted()) ret++; - node = node->Next(); - } - return ret; -} - -void wxListMainWindow::SetMode( long mode ) -{ - m_dirty = TRUE; - m_mode = mode; - - DeleteEverything(); - - if (m_mode & wxLC_REPORT) - { - m_xScroll = 0; - m_yScroll = 15; - } - else - { - m_xScroll = 15; - m_yScroll = 0; - } -} - -long wxListMainWindow::GetMode( void ) const -{ - return m_mode; -} - -void wxListMainWindow::CalculatePositions( void ) -{ - if (!m_lines.First()) return; - - wxClientDC dc( this ); - dc.SetFont( GetFont() ); - - int iconSpacing = 0; - if (m_mode & wxLC_ICON) iconSpacing = m_normal_spacing; - if (m_mode & wxLC_SMALL_ICON) iconSpacing = m_small_spacing; - - // we take the first line (which also can be an icon or - // an a text item in wxLC_ICON and wxLC_LIST modes) to - // measure the size of the line - - int lineWidth = 0; - int lineHeight = 0; - int lineSpacing = 0; - - wxListLineData *line = (wxListLineData*)m_lines.First()->Data(); - line->CalculateSize( &dc, iconSpacing ); - int dummy = 0; - line->GetSize( dummy, lineSpacing ); - lineSpacing += 4; - - int clientWidth = 0; - int clientHeight = 0; - - if (m_mode & wxLC_REPORT) - { - int x = 4; - int y = 1; - int entireHeight = m_lines.Number() * lineSpacing + 2; - int scroll_pos = GetScrollPos( wxVERTICAL ); - SetScrollbars( m_xScroll, m_yScroll, 0, (entireHeight+15) / m_yScroll, 0, scroll_pos, TRUE ); - GetClientSize( &clientWidth, &clientHeight ); - - wxNode* node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - line->CalculateSize( &dc, iconSpacing ); - line->SetPosition( &dc, x, y, clientWidth ); - int col_x = 2; - for (int i = 0; i < GetColumnCount(); i++) - { - line->SetColumnPosition( i, col_x ); - col_x += GetColumnWidth( i ); - } - y += lineSpacing; // one pixel blank line between items - node = node->Next(); - } - m_visibleLines = clientHeight / lineSpacing; - } - else - { - // at first we try without any scrollbar. if the items don't - // fit into the window, we recalculate after subtracting an - // approximated 15 pt for the horizontal scrollbar - - GetSize( &clientWidth, &clientHeight ); - clientHeight -= 4; // sunken frame - - int entireWidth = 0; - - for (int tries = 0; tries < 2; tries++) - { - entireWidth = 0; - int x = 5; // painting is done at x-2 - int y = 5; // painting is done at y-2 - int maxWidth = 0; - wxNode *node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - line->CalculateSize( &dc, iconSpacing ); - line->SetPosition( &dc, x, y, clientWidth ); - line->GetSize( lineWidth, lineHeight ); - if (lineWidth > maxWidth) maxWidth = lineWidth; - y += lineSpacing; - if (y+lineSpacing-6 >= clientHeight) // -6 for earlier "line breaking" - { - y = 5; - x += maxWidth+6; - entireWidth += maxWidth+6; - maxWidth = 0; - } - node = node->Next(); - if (!node) entireWidth += maxWidth; - if ((tries == 0) && (entireWidth > clientWidth)) - { - clientHeight -= 15; // scrollbar height - break; - } - if (!node) tries = 1; // everything fits, no second try required - } - } - m_visibleLines = (clientHeight+6) / (lineSpacing); // +6 for earlier "line breaking" - - int scroll_pos = GetScrollPos( wxHORIZONTAL ); - SetScrollbars( m_xScroll, m_yScroll, (entireWidth+15) / m_xScroll, 0, scroll_pos, 0, TRUE ); - } -} - -void wxListMainWindow::RealizeChanges( void ) -{ - if (!m_current) - { - wxNode *node = m_lines.First(); - if (node) m_current = (wxListLineData*)node->Data(); - } - if (m_current) - { - FocusLine( m_current ); - if (m_mode & wxLC_SINGLE_SEL) m_current->Hilight( TRUE ); - } -} - -long wxListMainWindow::GetNextItem( long item, int WXUNUSED(geometry), int state ) -{ - long ret = 0; - if (item > 0) ret = item; - if(ret >= GetItemCount()) return -1; - wxNode *node = m_lines.Nth( ret ); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if ((state & wxLIST_STATE_FOCUSED) && (line == m_current)) return ret; - if ((state & wxLIST_STATE_SELECTED) && (line->IsHilighted())) return ret; - if (!state) return ret; - ret++; - node = node->Next(); - } - return -1; -} - -void wxListMainWindow::DeleteItem( long index ) -{ - m_dirty = TRUE; - wxNode *node = m_lines.Nth( index ); - if (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - if (m_current == line) m_current = (wxListLineData *) NULL; - DeleteLine( line ); - m_lines.DeleteNode( node ); - } -} - -void wxListMainWindow::DeleteColumn( int col ) -{ - wxCHECK_RET( col < (int)m_columns.GetCount(), - _T("attempting to delete inexistent column in wxListView") ); - - m_dirty = TRUE; - wxNode *node = m_columns.Nth( col ); - if (node) m_columns.DeleteNode( node ); -} - -void wxListMainWindow::DeleteAllItems( void ) -{ - m_dirty = TRUE; - m_current = (wxListLineData *) NULL; - wxNode *node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - DeleteLine( line ); - node = node->Next(); - } - m_lines.Clear(); -} - -void wxListMainWindow::DeleteEverything( void ) -{ - m_dirty = TRUE; - m_current = (wxListLineData *) NULL; - wxNode *node = m_lines.First(); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - DeleteLine( line ); - node = node->Next(); - } - m_lines.Clear(); - m_current = (wxListLineData *) NULL; - m_columns.Clear(); -} - -void wxListMainWindow::EnsureVisible( long index ) -{ - wxListLineData *oldCurrent = m_current; - m_current = (wxListLineData *) NULL; - int i = index; - wxNode *node = m_lines.Nth( i ); - if (node) m_current = (wxListLineData*)node->Data(); - if (m_current) MoveToFocus(); - m_current = oldCurrent; -} - -long wxListMainWindow::FindItem(long start, const wxString& str, bool WXUNUSED(partial) ) -{ - long pos = start; - wxString tmp = str; - if (pos < 0) pos = 0; - wxNode *node = m_lines.Nth( pos ); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - wxString s = ""; - line->GetText( 0, s ); - if (s == tmp) return pos; - node = node->Next(); - pos++; - } - return -1; -} - -long wxListMainWindow::FindItem(long start, long data) -{ - long pos = start; - if (pos < 0) pos = 0; - wxNode *node = m_lines.Nth( pos ); - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - wxListItem item; - line->GetItem( 0, item ); - if (item.m_data == data) return pos; - node = node->Next(); - pos++; - } - return -1; -} - -long wxListMainWindow::HitTest( int x, int y, int &flags ) -{ - wxNode *node = m_lines.First(); - int count = 0; - while (node) - { - wxListLineData *line = (wxListLineData*)node->Data(); - long ret = line->IsHit( x, y ); - if (ret & flags) - { - flags = ret; - return count; - } - node = node->Next(); - count++; - } - return -1; -} - -void wxListMainWindow::InsertItem( wxListItem &item ) -{ - m_dirty = TRUE; - int mode = 0; - if (m_mode & wxLC_REPORT) mode = wxLC_REPORT; - else if (m_mode & wxLC_LIST) mode = wxLC_LIST; - else if (m_mode & wxLC_ICON) mode = wxLC_ICON; - else if (m_mode & wxLC_SMALL_ICON) mode = wxLC_ICON; // no typo - - wxListLineData *line = new wxListLineData( this, mode, m_hilightBrush ); - - if (m_mode & wxLC_REPORT) - { - line->InitItems( GetColumnCount() ); - item.m_width = GetColumnWidth( 0 )-3; - } - else - { - line->InitItems( 1 ); - } - - line->SetItem( 0, item ); - if ((item.m_itemId >= 0) && (item.m_itemId < (int)m_lines.GetCount())) - { - wxNode *node = m_lines.Nth( item.m_itemId ); - if (node) m_lines.Insert( node, line ); - } - else - { - m_lines.Append( line ); - } -} - -void wxListMainWindow::InsertColumn( long col, wxListItem &item ) -{ - m_dirty = TRUE; - if (m_mode & wxLC_REPORT) - { - if (item.m_width == wxLIST_AUTOSIZE_USEHEADER) item.m_width = GetTextLength( item.m_text ); - wxListHeaderData *column = new wxListHeaderData( item ); - if ((col >= 0) && (col < (int)m_columns.GetCount())) - { - wxNode *node = m_columns.Nth( col ); - if (node) - m_columns.Insert( node, column ); - } - else - { - m_columns.Append( column ); - } - } -} - -wxListCtrlCompare list_ctrl_compare_func_2; -long list_ctrl_compare_data; - -int list_ctrl_compare_func_1( const void *arg1, const void *arg2 ) -{ - wxListLineData *line1 = *((wxListLineData**)arg1); - wxListLineData *line2 = *((wxListLineData**)arg2); - wxListItem item; - line1->GetItem( 0, item ); - long data1 = item.m_data; - line2->GetItem( 0, item ); - long data2 = item.m_data; - return list_ctrl_compare_func_2( data1, data2, list_ctrl_compare_data ); -} - -void wxListMainWindow::SortItems( wxListCtrlCompare fn, long data ) -{ - list_ctrl_compare_func_2 = fn; - list_ctrl_compare_data = data; - m_lines.Sort( list_ctrl_compare_func_1 ); -} - -// ------------------------------------------------------------------------------------- -// wxListItem -// ------------------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) - -wxListItem::wxListItem(void) -{ - m_mask = 0; - m_itemId = 0; - m_col = 0; - m_state = 0; - m_stateMask = 0; - m_image = 0; - m_data = 0; - m_format = wxLIST_FORMAT_CENTRE; - m_width = 0; - m_colour = wxBLACK; -} - -// ------------------------------------------------------------------------------------- -// wxListEvent -// ------------------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent) - -wxListEvent::wxListEvent( wxEventType commandType, int id ): - wxNotifyEvent( commandType, id ) -{ - m_code = 0; - m_itemIndex = 0; - m_oldItemIndex = 0; - m_col = 0; - m_cancelled = FALSE; - m_pointDrag.x = 0; - m_pointDrag.y = 0; -} - -// ------------------------------------------------------------------------------------- -// wxListCtrl -// ------------------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxListCtrl,wxControl) - EVT_SIZE (wxListCtrl::OnSize) - EVT_IDLE (wxListCtrl::OnIdle) -END_EVENT_TABLE() - -wxListCtrl::wxListCtrl(void) -{ - m_imageListNormal = (wxImageList *) NULL; - m_imageListSmall = (wxImageList *) NULL; - m_imageListState = (wxImageList *) NULL; - m_mainWin = (wxListMainWindow*) NULL; - m_headerWin = (wxListHeaderWindow*) NULL; -} - -wxListCtrl::~wxListCtrl(void) -{ -} - -bool wxListCtrl::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator &validator, - const wxString &name ) -{ - m_imageListNormal = (wxImageList *) NULL; - m_imageListSmall = (wxImageList *) NULL; - m_imageListState = (wxImageList *) NULL; - m_mainWin = (wxListMainWindow*) NULL; - m_headerWin = (wxListHeaderWindow*) NULL; - - long s = style; - - if ((s & wxLC_REPORT == 0) && - (s & wxLC_LIST == 0) && - (s & wxLC_ICON == 0)) - { - s = s | wxLC_LIST; - } - - bool ret = wxControl::Create( parent, id, pos, size, s, name ); - - SetValidator( validator ); - - if (s & wxSUNKEN_BORDER) s -= wxSUNKEN_BORDER; - - m_mainWin = new wxListMainWindow( this, -1, wxPoint(0,0), size, s ); - - if (HasFlag(wxLC_REPORT)) - m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, wxPoint(0,0), wxSize(size.x,23), wxTAB_TRAVERSAL ); - else - m_headerWin = (wxListHeaderWindow *) NULL; - - SetBackgroundColour( *wxWHITE ); - - return ret; -} - -void wxListCtrl::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - /* handled in OnIdle */ - - if (m_mainWin) m_mainWin->m_dirty = TRUE; -} - -void wxListCtrl::SetSingleStyle( long style, bool add ) -{ - long flag = GetWindowStyle(); - - if (add) - { - if (style & wxLC_MASK_TYPE) flag = flag & ~wxLC_MASK_TYPE; - if (style & wxLC_MASK_ALIGN) flag = flag & ~wxLC_MASK_ALIGN; - if (style & wxLC_MASK_SORT) flag = flag & ~wxLC_MASK_SORT; - } - - if (add) - { - flag |= style; - } - else - { - if (flag & style) flag -= style; - } - - SetWindowStyleFlag( flag ); -} - -void wxListCtrl::SetWindowStyleFlag( long flag ) -{ - if (m_mainWin) - { - m_mainWin->DeleteEverything(); - - int width = 0; - int height = 0; - GetClientSize( &width, &height ); - - m_mainWin->SetMode( flag ); - - if (flag & wxLC_REPORT) - { - if (!HasFlag(wxLC_REPORT)) - { - if (!m_headerWin) - { - m_headerWin = new wxListHeaderWindow( this, -1, m_mainWin, - wxPoint(0,0), wxSize(width,23), wxTAB_TRAVERSAL ); - } - else - { - m_headerWin->Show( TRUE ); - } - } - } - else - { - if (HasFlag(wxLC_REPORT)) - { - m_headerWin->Show( FALSE ); - } - } - } - - wxWindow::SetWindowStyleFlag( flag ); -} - -bool wxListCtrl::GetColumn(int col, wxListItem &item) const -{ - m_mainWin->GetColumn( col, item ); - return TRUE; -} - -bool wxListCtrl::SetColumn( int col, wxListItem& item ) -{ - m_mainWin->SetColumn( col, item ); - return TRUE; -} - -int wxListCtrl::GetColumnWidth( int col ) const -{ - return m_mainWin->GetColumnWidth( col ); -} - -bool wxListCtrl::SetColumnWidth( int col, int width ) -{ - m_mainWin->SetColumnWidth( col, width ); - return TRUE; -} - -int wxListCtrl::GetCountPerPage(void) const -{ - return m_mainWin->GetCountPerPage(); // different from Windows ? -} - -/* -wxText& wxListCtrl::GetEditControl(void) const -{ -} -*/ - -bool wxListCtrl::GetItem( wxListItem &info ) const -{ - m_mainWin->GetItem( info ); - return TRUE; -} - -bool wxListCtrl::SetItem( wxListItem &info ) -{ - m_mainWin->SetItem( info ); - return TRUE; -} - -long wxListCtrl::SetItem( long index, int col, const wxString& label, int imageId ) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - info.m_col = col; - if ( imageId > -1 ) - { - info.m_image = imageId; - info.m_mask |= wxLIST_MASK_IMAGE; - }; - m_mainWin->SetItem(info); - return TRUE; -} - -int wxListCtrl::GetItemState( long item, long stateMask ) const -{ - return m_mainWin->GetItemState( item, stateMask ); -} - -bool wxListCtrl::SetItemState( long item, long state, long stateMask ) -{ - m_mainWin->SetItemState( item, state, stateMask ); - return TRUE; -} - -bool wxListCtrl::SetItemImage( long item, int image, int WXUNUSED(selImage) ) -{ - wxListItem info; - info.m_image = image; - info.m_mask = wxLIST_MASK_IMAGE; - info.m_itemId = item; - m_mainWin->SetItem( info ); - return TRUE; -} - -wxString wxListCtrl::GetItemText( long item ) const -{ - wxListItem info; - info.m_itemId = item; - m_mainWin->GetItem( info ); - return info.m_text; -} - -void wxListCtrl::SetItemText( long item, const wxString &str ) -{ - wxListItem info; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = item; - info.m_text = str; - m_mainWin->SetItem( info ); -} - -long wxListCtrl::GetItemData( long item ) const -{ - wxListItem info; - info.m_itemId = item; - m_mainWin->GetItem( info ); - return info.m_data; -} - -bool wxListCtrl::SetItemData( long item, long data ) -{ - wxListItem info; - info.m_mask = wxLIST_MASK_DATA; - info.m_itemId = item; - info.m_data = data; - m_mainWin->SetItem( info ); - return TRUE; -} - -bool wxListCtrl::GetItemRect( long item, wxRect &rect, int WXUNUSED(code) ) const -{ - m_mainWin->GetItemRect( item, rect ); - return TRUE; -} - -bool wxListCtrl::GetItemPosition( long item, wxPoint& pos ) const -{ - m_mainWin->GetItemPosition( item, pos ); - return TRUE; -} - -bool wxListCtrl::SetItemPosition( long WXUNUSED(item), const wxPoint& WXUNUSED(pos) ) -{ - return 0; -} - -int wxListCtrl::GetItemCount(void) const -{ - return m_mainWin->GetItemCount(); -} - -int wxListCtrl::GetColumnCount(void) const -{ - return m_mainWin->GetColumnCount(); -} - -void wxListCtrl::SetItemSpacing( int spacing, bool isSmall ) -{ - m_mainWin->SetItemSpacing( spacing, isSmall ); -} - -int wxListCtrl::GetItemSpacing( bool isSmall ) const -{ - return m_mainWin->GetItemSpacing( isSmall ); -} - -int wxListCtrl::GetSelectedItemCount(void) const -{ - return m_mainWin->GetSelectedItemCount(); -} - -/* -wxColour wxListCtrl::GetTextColour(void) const -{ -} - -void wxListCtrl::SetTextColour(const wxColour& WXUNUSED(col)) -{ -} -*/ - -long wxListCtrl::GetTopItem(void) const -{ - return 0; -} - -long wxListCtrl::GetNextItem( long item, int geom, int state ) const -{ - return m_mainWin->GetNextItem( item, geom, state ); -} - -wxImageList *wxListCtrl::GetImageList(int which) const -{ - if (which == wxIMAGE_LIST_NORMAL) - { - return m_imageListNormal; - } - else if (which == wxIMAGE_LIST_SMALL) - { - return m_imageListSmall; - } - else if (which == wxIMAGE_LIST_STATE) - { - return m_imageListState; - } - return (wxImageList *) NULL; -} - -void wxListCtrl::SetImageList( wxImageList *imageList, int which ) -{ - m_mainWin->SetImageList( imageList, which ); -} - -bool wxListCtrl::Arrange( int WXUNUSED(flag) ) -{ - return 0; -} - -bool wxListCtrl::DeleteItem( long item ) -{ - m_mainWin->DeleteItem( item ); - return TRUE; -} - -bool wxListCtrl::DeleteAllItems(void) -{ - m_mainWin->DeleteAllItems(); - return TRUE; -} - -bool wxListCtrl::DeleteAllColumns() -{ - for ( size_t n = 0; n < m_mainWin->m_columns.GetCount(); n++ ) - DeleteColumn(n); - - return TRUE; -} - -void wxListCtrl::ClearAll() -{ - m_mainWin->DeleteEverything(); -} - -bool wxListCtrl::DeleteColumn( int col ) -{ - m_mainWin->DeleteColumn( col ); - return TRUE; -} - -/* -wxText& wxListCtrl::Edit( long WXUNUSED(item ) ) -{ -} -*/ - -bool wxListCtrl::EnsureVisible( long item ) -{ - m_mainWin->EnsureVisible( item ); - return TRUE; -} - -long wxListCtrl::FindItem( long start, const wxString& str, bool partial ) -{ - return m_mainWin->FindItem( start, str, partial ); -} - -long wxListCtrl::FindItem( long start, long data ) -{ - return m_mainWin->FindItem( start, data ); -} - -long wxListCtrl::FindItem( long WXUNUSED(start), const wxPoint& WXUNUSED(pt), - int WXUNUSED(direction)) -{ - return 0; -} - -long wxListCtrl::HitTest( const wxPoint &point, int &flags ) -{ - return m_mainWin->HitTest( (int)point.x, (int)point.y, flags ); -} - -long wxListCtrl::InsertItem( wxListItem& info ) -{ - m_mainWin->InsertItem( info ); - return 0; -} - -long wxListCtrl::InsertItem( long index, const wxString &label ) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem( info ); -} - -long wxListCtrl::InsertItem( long index, int imageIndex ) -{ - wxListItem info; - info.m_mask = wxLIST_MASK_IMAGE; - info.m_image = imageIndex; - info.m_itemId = index; - return InsertItem( info ); -} - -long wxListCtrl::InsertItem( long index, const wxString &label, int imageIndex ) -{ - wxListItem info; - info.m_text = label; - info.m_image = imageIndex; - info.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_IMAGE; - info.m_itemId = index; - return InsertItem( info ); -} - -long wxListCtrl::InsertColumn( long col, wxListItem &item ) -{ - m_mainWin->InsertColumn( col, item ); - return 0; -} - -long wxListCtrl::InsertColumn( long col, const wxString &heading, - int format, int width ) -{ - wxListItem item; - item.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_FORMAT; - item.m_text = heading; - if (width >= -2) - { - item.m_mask |= wxLIST_MASK_WIDTH; - item.m_width = width; - } - item.m_format = format; - - return InsertColumn( col, item ); -} - -bool wxListCtrl::ScrollList( int WXUNUSED(dx), int WXUNUSED(dy) ) -{ - return 0; -} - -// Sort items. -// fn is a function which takes 3 long arguments: item1, item2, data. -// item1 is the long data associated with a first item (NOT the index). -// item2 is the long data associated with a second item (NOT the index). -// data is the same value as passed to SortItems. -// The return value is a negative number if the first item should precede the second -// item, a positive number of the second item should precede the first, -// or zero if the two items are equivalent. -// data is arbitrary data to be passed to the sort function. - -bool wxListCtrl::SortItems( wxListCtrlCompare fn, long data ) -{ - m_mainWin->SortItems( fn, data ); - return TRUE; -} - -void wxListCtrl::OnIdle( wxIdleEvent &WXUNUSED(event) ) -{ - if (!m_mainWin->m_dirty) return; - - int cw = 0; - int ch = 0; - GetClientSize( &cw, &ch ); - - int x = 0; - int y = 0; - int w = 0; - int h = 0; - - if (HasFlag(wxLC_REPORT)) - { - m_headerWin->GetPosition( &x, &y ); - m_headerWin->GetSize( &w, &h ); - if ((x != 0) || (y != 0) || (w != cw) || (h != 23)) - m_headerWin->SetSize( 0, 0, cw, 23 ); - - m_mainWin->GetPosition( &x, &y ); - m_mainWin->GetSize( &w, &h ); - if ((x != 0) || (y != 24) || (w != cw) || (h != ch-24)) - m_mainWin->SetSize( 0, 24, cw, ch-24 ); - } - else - { - m_mainWin->GetPosition( &x, &y ); - m_mainWin->GetSize( &w, &h ); - if ((x != 0) || (y != 24) || (w != cw) || (h != ch)) - m_mainWin->SetSize( 0, 0, cw, ch ); - } - - m_mainWin->CalculatePositions(); - m_mainWin->RealizeChanges(); - m_mainWin->m_dirty = FALSE; - m_mainWin->Refresh(); -} - -bool wxListCtrl::SetBackgroundColour( const wxColour &colour ) -{ - if ( !wxWindow::SetBackgroundColour( colour ) ) - return FALSE; - - if (m_mainWin) - { - m_mainWin->SetBackgroundColour( colour ); - m_mainWin->m_dirty = TRUE; - } - - if (m_headerWin) - { -// m_headerWin->SetBackgroundColour( colour ); - } - - return TRUE; -} - -bool wxListCtrl::SetForegroundColour( const wxColour &colour ) -{ - if ( !wxWindow::SetForegroundColour( colour ) ) - return FALSE; - - if (m_mainWin) - { - m_mainWin->SetForegroundColour( colour ); - m_mainWin->m_dirty = TRUE; - } - - if (m_headerWin) - { - m_headerWin->SetForegroundColour( colour ); - } - - return TRUE; -} - -bool wxListCtrl::SetFont( const wxFont &font ) -{ - if ( !wxWindow::SetFont( font ) ) - return FALSE; - - if (m_mainWin) - { - m_mainWin->SetFont( font ); - m_mainWin->m_dirty = TRUE; - } - - if (m_headerWin) - { - m_headerWin->SetFont( font ); - } - - return TRUE; -} - diff --git a/src/generic/msgdlgg.cpp b/src/generic/msgdlgg.cpp deleted file mode 100644 index 7cf987fd15..0000000000 --- a/src/generic/msgdlgg.cpp +++ /dev/null @@ -1,182 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlgg.cpp -// Purpose: wxGenericMessageDialog -// Author: Julian Smart, Robert Roebling -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart, Markus Holzem, Robert Roebling -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "msgdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/intl.h" -#endif - -#include -#include - -#include "wx/generic/msgdlgg.h" - -#ifdef __WXGTK__ -#include "wx/statline.h" -#endif - -/////////////////////////////////////////////////////////////////// -// New dialog box implementations - -// Split message, using constraints to position controls -wxSize wxSplitMessage2( const wxString &message, wxWindow *parent ) -{ - int y = 10; - int w = 50; - wxString line( _T("") ); - for (uint pos = 0; pos < message.Len(); pos++) - { - if (message[pos] == _T('\n')) - { - if (!line.IsEmpty()) - { - wxStaticText *s1 = new wxStaticText( parent, -1, line, wxPoint(15,y) ); - wxSize size1( s1->GetSize() ); - if (size1.x > w) w = size1.x; - line = _T(""); - } - y += 18; - } - else - { - line += message[pos]; - } - } - - if (!line.IsEmpty()) - { - wxStaticText *s2 = new wxStaticText( parent, -1, line, wxPoint(15,y) ); - wxSize size2( s2->GetSize() ); - if (size2.x > w) w = size2.x; - } - - y += 18; - - return wxSize(w+30,y); -} - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog) - EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes) - EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo) - EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel) -END_EVENT_TABLE() - -IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog) -#endif - -wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent, const wxString& message, - const wxString& caption, long style, const wxPoint& pos) : - wxDialog( parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE ) -{ - m_dialogStyle = style; - - wxSize message_size( wxSplitMessage2( message, this ) ); - - wxButton *ok = (wxButton *) NULL; - wxButton *cancel = (wxButton *) NULL; - wxButton *yes = (wxButton *) NULL; - wxButton *no = (wxButton *) NULL; - - int y = message_size.y + 30; - - if (style & wxYES_NO) - { - yes = new wxButton( this, wxID_YES, _("Yes"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( yes ); - no = new wxButton( this, wxID_NO, _("No"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( no ); - } - - if (style & wxOK) - { - ok = new wxButton( this, wxID_OK, _("OK"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( ok ); - } - - if (style & wxCANCEL) - { - cancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxPoint(-1,y), wxSize(80,-1) ); - m_buttons.Append( cancel ); - } - - if (ok) - { - ok->SetDefault(); - ok->SetFocus(); - } - else if (yes) - { - yes->SetDefault(); - yes->SetFocus(); - } - - int w = m_buttons.GetCount() * 100; - if (message_size.x > w) w = message_size.x; - int space = w / (m_buttons.GetCount()*2); - - int n = 0; - wxNode *node = m_buttons.First(); - while (node) - { - wxWindow *win = (wxWindow*)node->Data(); - int x = (n*2+1)*space - 40 + 15; - win->Move( x, -1 ); - node = node->Next(); - n++; - } - -#if wxUSE_STATICLINE - (void) new wxStaticLine( this, -1, wxPoint(0,y-20), wxSize(w+30, 5) ); -#endif - - SetSize( w+30, y+40 ); - - Centre( wxBOTH ); -} - -void wxGenericMessageDialog::OnYes(wxCommandEvent& WXUNUSED(event)) -{ - EndModal( wxID_YES ); -} - -void wxGenericMessageDialog::OnNo(wxCommandEvent& WXUNUSED(event)) -{ - EndModal( wxID_NO ); -} - -void wxGenericMessageDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - /* Allow cancellation via ESC/Close button except if - only YES and NO are specified. */ - if ( (m_dialogStyle & wxYES_NO) != wxYES_NO || (m_dialogStyle & wxCANCEL) ) - { - EndModal( wxID_CANCEL ); - } -} - - diff --git a/src/generic/notebook.cpp b/src/generic/notebook.cpp deleted file mode 100644 index 3b18a3ce2a..0000000000 --- a/src/generic/notebook.cpp +++ /dev/null @@ -1,687 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: implementation of wxNotebook -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include -#include -#include -#include -#include -#include - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange) - EVT_SIZE(wxNotebook::OnSize) - EVT_PAINT(wxNotebook::OnPaint) - EVT_MOUSE_EVENTS(wxNotebook::OnMouseEvent) - EVT_SET_FOCUS(wxNotebook::OnSetFocus) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -// EVT_IDLE(wxNotebook::OnIdle) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNotebook construction -// ---------------------------------------------------------------------------- - -// common part of all ctors -void wxNotebook::Init() -{ - m_tabView = (wxNotebookTabView*) NULL; - m_pImageList = NULL; - m_nSelection = -1; -} - -// default for dynamic class -wxNotebook::wxNotebook() -{ - Init(); -} - -// the same arguments as for wxControl -wxNotebook::wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - Create(parent, id, pos, size, style, name); -} - -// Create() function -bool wxNotebook::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // base init - SetName(name); - - m_windowId = id == -1 ? NewControlId() : id; - - // It's like a normal window... - if (!wxWindow::Create(parent, id, pos, size, style|wxNO_BORDER, name)) - return FALSE; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - - SetTabView(new wxNotebookTabView(this)); - - return TRUE; -} - -// dtor -wxNotebook::~wxNotebook() -{ - delete m_tabView; -} - -// ---------------------------------------------------------------------------- -// wxNotebook accessors -// ---------------------------------------------------------------------------- -int wxNotebook::GetPageCount() const -{ - return m_aPages.Count(); -} - -int wxNotebook::GetRowCount() const -{ - // TODO - return 0; -} - -int wxNotebook::SetSelection(int nPage) -{ - if (nPage == -1) - return 0; - - wxASSERT( IS_VALID_PAGE(nPage) ); - -#if defined (__WIN16__) - m_tabView->SetTabSelection(nPage); -#else - wxNotebookPage* pPage = GetPage(nPage); - - m_tabView->SetTabSelection((int) (long) pPage); -#endif - // TODO - return 0; -} - -void wxNotebook::AdvanceSelection(bool bForward) -{ - int nSel = GetSelection(); - int nMax = GetPageCount() - 1; - if ( bForward ) - SetSelection(nSel == nMax ? 0 : nSel + 1); - else - SetSelection(nSel == 0 ? nMax : nSel - 1); -} - -bool wxNotebook::SetPageText(int nPage, const wxString& strText) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); -#if defined (__WIN16__) - m_tabView->SetTabText(nPage, strText); - Refresh(); - return TRUE; -#else - wxNotebookPage* page = GetPage(nPage); - if (page) - { - m_tabView->SetTabText((int) (long) page, strText); - Refresh(); - return TRUE; - } -#endif - return FALSE; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - -#if defined (__WIN16__) - return m_tabView->GetTabText(nPage); -#else - wxNotebookPage* page = ((wxNotebook*)this)->GetPage(nPage); - if (page) - return m_tabView->GetTabText((int) (long) page); - else - return wxEmptyString; -#endif -} - -int wxNotebook::GetPageImage(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return 0; -} - -bool wxNotebook::SetPageImage(int nPage, int nImage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -void wxNotebook::SetImageList(wxImageList* imageList) -{ - m_pImageList = imageList; - // TODO -} - -// ---------------------------------------------------------------------------- -// wxNotebook operations -// ---------------------------------------------------------------------------- - -// remove one page from the notebook and delete it -bool wxNotebook::DeletePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - if (m_nSelection != -1) - { - m_aPages[m_nSelection]->Show(FALSE); - m_aPages[m_nSelection]->Lower(); - } - - wxNotebookPage* pPage = GetPage(nPage); -#if defined (__WIN16__) - m_tabView->RemoveTab(nPage); -#else - m_tabView->RemoveTab((int) (long) pPage); -#endif - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - if (m_aPages.GetCount() == 0) - { - m_nSelection = -1; - m_tabView->SetTabSelection(-1, FALSE); - } - else if (m_nSelection > -1) - { - m_nSelection = -1; -#if defined (__WIN16__) - m_tabView->SetTabSelection(0, FALSE); -#else - m_tabView->SetTabSelection((int) (long) GetPage(0), FALSE); -#endif - if (m_nSelection != 0) - ChangePage(-1, 0); - } - - RefreshLayout(FALSE); - - return TRUE; -} - -bool wxNotebook::DeletePage(wxNotebookPage* page) -{ - int pagePos = FindPagePosition(page); - if (pagePos > -1) - return DeletePage(pagePos); - else - return FALSE; -} - -// remove one page from the notebook -bool wxNotebook::RemovePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - m_aPages[nPage]->Show(FALSE); - // m_aPages[nPage]->Lower(); - - wxNotebookPage* pPage = GetPage(nPage); -#if defined (__WIN16__) - m_tabView->RemoveTab(nPage); -#else - m_tabView->RemoveTab((int) (long) pPage); -#endif - - m_aPages.Remove(nPage); - - if (m_aPages.GetCount() == 0) - { - m_nSelection = -1; - m_tabView->SetTabSelection(-1, TRUE); - } - else if (m_nSelection > -1) - { - // Only change the selection if the page we - // deleted was the selection. - if (nPage == m_nSelection) - { - m_nSelection = -1; - // Select the first tab. Generates a ChangePage. - m_tabView->SetTabSelection((int) (long) GetPage(0), TRUE); - } - else - { - // We must adjust which tab we think is selected. - // If greater than the page we deleted, it must be moved down - // a notch. - if (m_nSelection > nPage) - m_nSelection -- ; - } - } - - RefreshLayout(FALSE); - - return TRUE; -} - -bool wxNotebook::RemovePage(wxNotebookPage* page) -{ - int pagePos = FindPagePosition(page); - if (pagePos > -1) - return RemovePage(pagePos); - else - return FALSE; -} - -// Find the position of the wxNotebookPage, -1 if not found. -int wxNotebook::FindPagePosition(wxNotebookPage* page) const -{ - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - if (m_aPages[nPage] == page) - return nPage; - return -1; -} - -// remove all pages -bool wxNotebook::DeleteAllPages() -{ - m_tabView->ClearTabs(TRUE); - - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - delete m_aPages[nPage]; - - m_aPages.Clear(); - - return TRUE; -} - -// add a page to the notebook -bool wxNotebook::AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - return InsertPage(GetPageCount(), pPage, strText, bSelect, imageId); -} - -// same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); - -// For 16 bit integers (tabs limited to 32768) -#if defined (__WIN16__) - m_tabView->AddTab(nPage, strText); -#else - m_tabView->AddTab((int) (long) pPage, strText); -#endif - if (!bSelect) - pPage->Show(FALSE); - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - if (bSelect) - { - // This will cause ChangePage to be called, via OnSelPage -#if defined (__WIN16__) - m_tabView->SetTabSelection(nPage, TRUE); -#else - m_tabView->SetTabSelection((int) (long) pPage, TRUE); -#endif - } - - // some page must be selected: either this one or the first one if there is - // still no selection - if ( m_nSelection == -1 ) - ChangePage(-1, 0); - - RefreshLayout(FALSE); - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -// @@@ OnSize() is used for setting the font when it's called for the first -// time because doing it in ::Create() doesn't work (for unknown reasons) -void wxNotebook::OnSize(wxSizeEvent& event) -{ - static bool s_bFirstTime = TRUE; - if ( s_bFirstTime ) { - // TODO: any first-time-size processing. - s_bFirstTime = FALSE; - } - - RefreshLayout(); - - // Processing continues to next OnSize - event.Skip(); -} - -// This was supposed to cure the non-display of the notebook -// until the user resizes the window. -// What's going on? -void wxNotebook::OnIdle(wxIdleEvent& event) -{ - static bool s_bFirstTime = TRUE; - if ( s_bFirstTime ) { - /* - wxSize sz(GetSize()); - sz.x ++; - SetSize(sz); - sz.x --; - SetSize(sz); - */ - - /* - wxSize sz(GetSize()); - wxSizeEvent sizeEvent(sz, GetId()); - sizeEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(sizeEvent); - Refresh(); - */ - s_bFirstTime = FALSE; - } - event.Skip(); -} - -// Implementation: calculate the layout of the view rect -// and resize the children if required -bool wxNotebook::RefreshLayout(bool force) -{ - if (m_tabView) - { - wxRect oldRect = m_tabView->GetViewRect(); - - int cw, ch; - GetClientSize(& cw, & ch); - - int tabHeight = m_tabView->GetTotalTabHeight(); - wxRect rect; - rect.x = 4; - rect.y = tabHeight + 4; - rect.width = cw - 8; - rect.height = ch - 4 - rect.y ; - - m_tabView->SetViewRect(rect); - - m_tabView->LayoutTabs(); - - // Need to do it a 2nd time to get the tab height with - // the new view width, since changing the view width changes the - // tab layout. - tabHeight = m_tabView->GetTotalTabHeight(); - rect.x = 4; - rect.y = tabHeight + 4; - rect.width = cw - 8; - rect.height = ch - 4 - rect.y ; - - m_tabView->SetViewRect(rect); - - m_tabView->LayoutTabs(); - - if (!force && (rect == oldRect)) - return FALSE; - - // fit the notebook page to the tab control's display area - - unsigned int nCount = m_aPages.Count(); - for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) { - wxNotebookPage *pPage = m_aPages[nPage]; - if (pPage->IsShown()) - { - wxRect clientRect = GetAvailableClientSize(); - pPage->SetSize(clientRect.x, clientRect.y, clientRect.width, clientRect.height); - if ( pPage->GetAutoLayout() ) - pPage->Layout(); - } - } - Refresh(); - } - return TRUE; -} - -void wxNotebook::OnSelChange(wxNotebookEvent& event) -{ - // is it our tab control? - if ( event.GetEventObject() == this ) - { - if (event.GetSelection() != m_nSelection) - ChangePage(event.GetOldSelection(), event.GetSelection()); - } - - // we want to give others a chance to process this message as well - event.Skip(); -} - -void wxNotebook::OnSetFocus(wxFocusEvent& event) -{ - // set focus to the currently selected page if any - if ( m_nSelection != -1 ) - m_aPages[m_nSelection]->SetFocus(); - - event.Skip(); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if ( event.IsWindowChange() ) { - // change pages - AdvanceSelection(event.GetDirection()); - } - else { - // pass to the parent - if ( GetParent() ) { - event.SetCurrentFocus(this); - GetParent()->ProcessEvent(event); - } - } -} - -// ---------------------------------------------------------------------------- -// wxNotebook base class virtuals -// ---------------------------------------------------------------------------- - -// override these 2 functions to do nothing: everything is done in OnSize - -void wxNotebook::SetConstraintSizes(bool /* recurse */) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase(int /* nPhase */) -{ - return TRUE; -} - -void wxNotebook::Command(wxCommandEvent& event) -{ - wxFAIL_MSG("wxNotebook::Command not implemented"); -} - -// ---------------------------------------------------------------------------- -// wxNotebook helper functions -// ---------------------------------------------------------------------------- - -// hide the currently active panel and show the new one -void wxNotebook::ChangePage(int nOldSel, int nSel) -{ - // cout << "ChangePage: " << nOldSel << ", " << nSel << "\n"; - wxASSERT( nOldSel != nSel ); // impossible - - if ( nOldSel != -1 ) { - m_aPages[nOldSel]->Show(FALSE); - m_aPages[nOldSel]->Lower(); - } - - wxNotebookPage *pPage = m_aPages[nSel]; - - wxRect clientRect = GetAvailableClientSize(); - pPage->SetSize(clientRect.x, clientRect.y, clientRect.width, clientRect.height); - - pPage->Show(TRUE); - pPage->Raise(); - pPage->SetFocus(); - - Refresh(); - - m_nSelection = nSel; -} - -void wxNotebook::OnMouseEvent(wxMouseEvent& event) -{ - if (m_tabView) - m_tabView->OnEvent(event); -} - -void wxNotebook::OnPaint(wxPaintEvent& WXUNUSED(event) ) -{ - wxPaintDC dc(this); - if (m_tabView) - m_tabView->Draw(dc); -} - -wxRect wxNotebook::GetAvailableClientSize() -{ - int cw, ch; - GetClientSize(& cw, & ch); - - int tabHeight = m_tabView->GetTotalTabHeight(); - - // TODO: these margins should be configurable. - wxRect rect; - rect.x = 6; - rect.y = tabHeight + 6; - rect.width = cw - 12; - rect.height = ch - 4 - rect.y ; - - return rect; -} - -/* - * wxNotebookTabView - */ - -IMPLEMENT_CLASS(wxNotebookTabView, wxTabView) - -wxNotebookTabView::wxNotebookTabView(wxNotebook *notebook, long style): wxTabView(style) -{ - m_notebook = notebook; - - m_notebook->SetTabView(this); - - SetWindow(m_notebook); -} - -wxNotebookTabView::~wxNotebookTabView(void) -{ -} - -// Called when a tab is activated -void wxNotebookTabView::OnTabActivate(int activateId, int deactivateId) -{ - if (!m_notebook) - return; - -// Because of name truncation! -#if defined(__BORLANDC__) && defined(__WIN16__) - wxNotebookEvent event(wxEVT_COMMAND_NB_PAGE_CHANGED, m_notebook->GetId()); -#else - wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, m_notebook->GetId()); -#endif - -#if defined (__WIN16__) - int activatePos = activateId; - int deactivatePos = deactivateId; -#else - // Translate from wxTabView's ids (which aren't position-dependent) - // to wxNotebook's (which are). - wxNotebookPage* pActive = (wxNotebookPage*) activateId; - wxNotebookPage* pDeactive = (wxNotebookPage*) deactivateId; - - int activatePos = m_notebook->FindPagePosition(pActive); - int deactivatePos = m_notebook->FindPagePosition(pDeactive); - -#endif - event.SetEventObject(m_notebook); - event.SetSelection(activatePos); - event.SetOldSelection(deactivatePos); - m_notebook->GetEventHandler()->ProcessEvent(event); -} - - diff --git a/src/generic/panelg.cpp b/src/generic/panelg.cpp deleted file mode 100644 index 2b74c65445..0000000000 --- a/src/generic/panelg.cpp +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: panelg.cpp -// Purpose: wxPanel -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "panelg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/object.h" -#include "wx/font.h" -#include "wx/colour.h" -#include "wx/settings.h" -#endif - -#include "wx/generic/panelg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPanel, wxWindow) - -BEGIN_EVENT_TABLE(wxPanel, wxWindow) - EVT_SYS_COLOUR_CHANGED(wxPanel::OnSysColourChanged) - EVT_SET_FOCUS(wxPanel::OnFocus) - EVT_NAVIGATION_KEY(wxPanel::OnNavigationKey) -END_EVENT_TABLE() - -#endif - -wxPanel::wxPanel() -{ - m_lastFocus = 0; -} - -bool wxPanel::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_lastFocus = 0; - - bool ret = wxWindow::Create(parent, id, pos, size, style, name); - - if ( ret ) - { -#ifndef __WXGTK__ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); -#endif - } - - return ret; -} - -void wxPanel::InitDialog(void) -{ - wxInitDialogEvent event(GetId()); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); -} - -// Responds to colour changes, and passes event on to children. -void wxPanel::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -void wxPanel::OnNavigationKey( wxNavigationKeyEvent& event ) -{ - // there is not much to do if we have only one child (or not at all) - if (GetChildren().GetCount() < 2) - { - event.Skip(); - return; - } - - // don't process these ones here - if (event.IsWindowChange()) - { - event.Skip(); - return; - } - - wxWindow *winFocus = event.GetCurrentFocus(); - if (!winFocus) - winFocus = wxWindow::FindFocus(); - - if (!winFocus) - { - event.Skip(); - return; - } - - wxWindowList::Node *start_node = GetChildren().Find( winFocus ); - if (!start_node) - start_node = GetChildren().GetFirst(); - - wxWindowList::Node *node = event.GetDirection() ? start_node->GetNext() - : start_node->GetPrevious(); - - while (node != start_node) - { - if (!node) - { - node = event.GetDirection() ? GetChildren().GetFirst() - : GetChildren().GetLast(); - - continue; - } - - wxWindow *child = node->GetData(); - - if (child->AcceptsFocus()) - { - // ok, event processed - child->SetFocus(); - return; - } - - node = event.GetDirection() ? node->GetNext() : node->GetPrevious(); - } - - // we cycled through all of our children and none of them wanted to accept - // focus - event.Skip(); -} - -void wxPanel::OnFocus(wxFocusEvent& event) -{ - if (m_lastFocus != 0) - { - wxWindow* child = FindWindow(m_lastFocus); - if (child) - child->SetFocus(); - } - else - event.Skip(); -} diff --git a/src/generic/printps.cpp b/src/generic/printps.cpp deleted file mode 100644 index e9b819b6fc..0000000000 --- a/src/generic/printps.cpp +++ /dev/null @@ -1,347 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printps.cpp -// Purpose: Postscript print/preview framework -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "printps.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/defs.h" - -#ifndef WX_PRECOMP - #include "wx/utils.h" - #include "wx/dc.h" - #include "wx/app.h" - #include "wx/msgdlg.h" - #include "wx/intl.h" - #include "wx/progdlg.h" -#endif - -#include "wx/generic/printps.h" -#include "wx/dcprint.h" -#include "wx/printdlg.h" -#include "wx/generic/prntdlgg.h" -#include "wx/paper.h" - -#include - -// ---------------------------------------------------------------------------- -// wxWin macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxPostScriptPrinter, wxPrinterBase) - IMPLEMENT_CLASS(wxPostScriptPrintPreview, wxPrintPreviewBase) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// Printer -// ---------------------------------------------------------------------------- - -wxPostScriptPrinter::wxPostScriptPrinter(wxPrintDialogData *data) - : wxPrinterBase(data) -{ -} - -wxPostScriptPrinter::~wxPostScriptPrinter() -{ -} - -bool wxPostScriptPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) -{ - sm_abortIt = FALSE; - sm_abortWindow = (wxWindow *) NULL; - - if (!printout) - return FALSE; - - printout->SetIsPreview(FALSE); - printout->OnPreparePrinting(); - - // Get some parameters from the printout, if defined - int fromPage, toPage; - int minPage, maxPage; - printout->GetPageInfo(&minPage, &maxPage, &fromPage, &toPage); - - if (maxPage == 0) - return FALSE; - - m_printDialogData.SetMinPage(minPage); - m_printDialogData.SetMaxPage(maxPage); - if (fromPage != 0) - m_printDialogData.SetFromPage(fromPage); - if (toPage != 0) - m_printDialogData.SetToPage(toPage); - - if (minPage != 0) - { - m_printDialogData.EnablePageNumbers(TRUE); - if (m_printDialogData.GetFromPage() < m_printDialogData.GetMinPage()) - m_printDialogData.SetFromPage(m_printDialogData.GetMinPage()); - else if (m_printDialogData.GetFromPage() > m_printDialogData.GetMaxPage()) - m_printDialogData.SetFromPage(m_printDialogData.GetMaxPage()); - if (m_printDialogData.GetToPage() > m_printDialogData.GetMaxPage()) - m_printDialogData.SetToPage(m_printDialogData.GetMaxPage()); - else if (m_printDialogData.GetToPage() < m_printDialogData.GetMinPage()) - m_printDialogData.SetToPage(m_printDialogData.GetMinPage()); - } - else - m_printDialogData.EnablePageNumbers(FALSE); - - - // Create a suitable device context - wxDC *dc = (wxDC *) NULL; - if (prompt) - { - dc = PrintDialog(parent); - if (!dc) - return FALSE; - } - else - { - dc = new wxPostScriptDC(wxThePrintSetupData->GetPrinterFile(), FALSE, (wxWindow *) NULL); - } - - // May have pressed cancel. - if (!dc || !dc->Ok()) - { - if (dc) delete dc; - return FALSE; - } - - int logPPIScreenX = 0; - int logPPIScreenY = 0; - int logPPIPrinterX = 0; - int logPPIPrinterY = 0; - - logPPIScreenX = 100; - logPPIScreenY = 100; - - /* - // Correct values for X/PostScript? - logPPIPrinterX = 100; - logPPIPrinterY = 100; - */ - - logPPIPrinterX = 72; - logPPIPrinterY = 72; - - printout->SetPPIScreen(logPPIScreenX, logPPIScreenY); - printout->SetPPIPrinter(logPPIPrinterX, logPPIPrinterY); - - // Set printout parameters - printout->SetDC(dc); - - int w, h; - dc->GetSize(&w, &h); - printout->SetPageSizePixels((int)w, (int)h); - dc->GetSizeMM(&w, &h); - printout->SetPageSizeMM((int)w, (int)h); - - // Create an abort window - wxBeginBusyCursor(); - - int - pagesPerCopy = m_printDialogData.GetToPage()-m_printDialogData.GetFromPage()+1, - totalPages = pagesPerCopy * m_printDialogData.GetNoCopies(), - printedPages = 0; - // Open the progress bar dialog - wxProgressDialog *progressDialog = new wxProgressDialog ( - printout->GetTitle(), - _("Printing..."), - totalPages, - parent ); - - printout->OnBeginPrinting(); - - bool keepGoing = TRUE; - - int copyCount; - for (copyCount = 1; copyCount <= m_printDialogData.GetNoCopies(); copyCount ++) - { - if (!printout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage())) - { - wxEndBusyCursor(); - wxMessageBox(_("Could not start printing."), _("Print Error"), wxOK, parent); - break; - } - if (sm_abortIt) - break; - - int pn; - for (pn = m_printDialogData.GetFromPage(); keepGoing && (pn <= m_printDialogData.GetToPage()) && printout->HasPage(pn); - pn++) - { - if (sm_abortIt) - { - keepGoing = FALSE; - break; - } - else - { - wxString msg; - msg.Printf(_("Printing page %d..."), printedPages+1); - if(progressDialog->Update(printedPages++, msg)) - { - dc->StartPage(); - printout->OnPrintPage(pn); - dc->EndPage(); - } - else - { - sm_abortIt = true; - keepGoing = false; - } - } - } - printout->OnEndDocument(); - } - - printout->OnEndPrinting(); - delete progressDialog; - - wxEndBusyCursor(); - - delete dc; - - return TRUE; -} - -wxDC* wxPostScriptPrinter::PrintDialog(wxWindow *parent) -{ - wxDC* dc = (wxDC*) NULL; - wxGenericPrintDialog* dialog = new wxGenericPrintDialog(parent, & m_printDialogData); - int ret = dialog->ShowModal() ; - if (ret == wxID_OK) - { - dc = dialog->GetPrintDC(); - m_printDialogData = dialog->GetPrintDialogData(); - } - dialog->Destroy(); - - return dc; -} - -bool wxPostScriptPrinter::Setup(wxWindow *parent) -{ - wxGenericPrintDialog* dialog = new wxGenericPrintDialog(parent, & m_printDialogData); - dialog->GetPrintDialogData().SetSetupDialog(TRUE); - - int ret = dialog->ShowModal(); - - if (ret == wxID_OK) - { - m_printDialogData = dialog->GetPrintDialogData(); - } - - dialog->Destroy(); - - return (ret == wxID_OK); -} - -// ---------------------------------------------------------------------------- -// Print preview -// ---------------------------------------------------------------------------- - -void wxPostScriptPrintPreview::Init(wxPrintout * WXUNUSED(printout), - wxPrintout * WXUNUSED(printoutForPrinting)) -{ - // Have to call it here since base constructor can't call it - DetermineScaling(); -} - -wxPostScriptPrintPreview::wxPostScriptPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintDialogData *data) - : wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - Init(printout, printoutForPrinting); -} - -wxPostScriptPrintPreview::wxPostScriptPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data) - : wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - Init(printout, printoutForPrinting); -} - -wxPostScriptPrintPreview::~wxPostScriptPrintPreview() -{ -} - -bool wxPostScriptPrintPreview::Print(bool interactive) -{ - if (!m_printPrintout) - return FALSE; - wxPostScriptPrinter printer(& m_printDialogData); - return printer.Print(m_previewFrame, m_printPrintout, interactive); -} - -void wxPostScriptPrintPreview::DetermineScaling() -{ - wxPaperSize paperType = m_printDialogData.GetPrintData().GetPaperId(); - if (paperType == wxPAPER_NONE) - paperType = wxPAPER_NONE; - - wxPrintPaperType *paper = wxThePrintPaperDatabase->FindPaperType(paperType); - if (!paper) - paper = wxThePrintPaperDatabase->FindPaperType(wxPAPER_A4); - - if (paper) - { - m_previewPrintout->SetPPIScreen(100, 100); - // m_previewPrintout->SetPPIPrinter(100, 100); - m_previewPrintout->SetPPIPrinter(72, 72); - - wxSize sizeDevUnits(paper->GetSizeDeviceUnits()); - wxSize sizeTenthsMM(paper->GetSize()); - wxSize sizeMM(sizeTenthsMM.x / 10, sizeTenthsMM.y / 10); - - // If in landscape mode, we need to swap the width and height. - if ( m_printDialogData.GetPrintData().GetOrientation() == wxLANDSCAPE ) - { - m_pageWidth = sizeDevUnits.y; - m_pageHeight = sizeDevUnits.x; - m_previewPrintout->SetPageSizeMM(sizeMM.y, sizeMM.x); - m_previewPrintout->SetPageSizePixels(m_pageWidth, m_pageHeight); - } - else - { - m_pageWidth = sizeDevUnits.x; - m_pageHeight = sizeDevUnits.y; - m_previewPrintout->SetPageSizeMM(sizeMM.x, sizeMM.y); - m_previewPrintout->SetPageSizePixels(m_pageWidth, m_pageHeight); - } - - // At 100%, the page should look about page-size on the screen. - m_previewScale = (float)0.8; - } -} - diff --git a/src/generic/prntdlgg.cpp b/src/generic/prntdlgg.cpp deleted file mode 100644 index 526a4df7a6..0000000000 --- a/src/generic/prntdlgg.cpp +++ /dev/null @@ -1,772 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: prntdlgg.cpp -// Purpose: Generic print dialogs -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "prntdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/defs.h" - -#ifndef WX_PRECOMP - #include "wx/utils.h" - #include "wx/dc.h" - #include "wx/app.h" - #include "wx/frame.h" - #include "wx/stattext.h" - #include "wx/statbox.h" - #include "wx/button.h" - #include "wx/checkbox.h" - #include "wx/textctrl.h" - #include "wx/radiobox.h" - #include "wx/filedlg.h" - #include "wx/choice.h" - #include -#endif - -#include "wx/generic/prntdlgg.h" - -#if wxUSE_POSTSCRIPT - #include "wx/generic/dcpsg.h" -#endif - -#include "wx/printdlg.h" -#include "wx/paper.h" - -// For print paper things -#include "wx/prntbase.h" - -#include -#include - -// ---------------------------------------------------------------------------- -// wxWin macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - -#if wxUSE_POSTSCRIPT - - IMPLEMENT_CLASS(wxGenericPrintDialog, wxDialog) - IMPLEMENT_CLASS(wxGenericPrintSetupDialog, wxDialog) - - BEGIN_EVENT_TABLE(wxGenericPrintDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxGenericPrintDialog::OnOK) - EVT_BUTTON(wxPRINTID_SETUP, wxGenericPrintDialog::OnSetup) - EVT_RADIOBOX(wxPRINTID_RANGE, wxGenericPrintDialog::OnRange) - END_EVENT_TABLE() -#endif - - IMPLEMENT_CLASS(wxGenericPageSetupDialog, wxDialog) - - BEGIN_EVENT_TABLE(wxGenericPageSetupDialog, wxDialog) - EVT_BUTTON(wxPRINTID_SETUP, wxGenericPageSetupDialog::OnPrinter) - END_EVENT_TABLE() -#endif // USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// global vars -// ---------------------------------------------------------------------------- - -extern wxPrintPaperDatabase *wxThePrintPaperDatabase; - -#if wxUSE_POSTSCRIPT - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// Generic print dialog for non-Windows printing use. -// ---------------------------------------------------------------------------- - -wxGenericPrintDialog::wxGenericPrintDialog(wxWindow *parent, - wxPrintDialogData* data) - : wxDialog(parent, -1, _("Print"), - wxPoint(0, 0), wxSize(600, 600), - wxDEFAULT_DIALOG_STYLE | - wxDIALOG_MODAL | - wxTAB_TRAVERSAL) -{ - if ( data ) - m_printDialogData = *data; - - Init(parent); -} - -wxGenericPrintDialog::wxGenericPrintDialog(wxWindow *parent, - wxPrintData* data) - : wxDialog(parent, -1, _("Print"), - wxPoint(0, 0), wxSize(600, 600), - wxDEFAULT_DIALOG_STYLE | - wxDIALOG_MODAL | - wxTAB_TRAVERSAL) -{ - if ( data ) - m_printDialogData = *data; - - Init(parent); -} - -void wxGenericPrintDialog::Init(wxWindow * WXUNUSED(parent)) -{ - // wxDialog::Create(parent, -1, _("Print"), wxPoint(0, 0), wxSize(600, 600), - // wxDEFAULT_DIALOG_STYLE | wxDIALOG_MODAL | wxTAB_TRAVERSAL); - - (void)new wxStaticBox( this, -1, _( "Printer options" ), wxPoint( 5, 5), wxSize( 300, 60 ) ); - - m_printToFileCheckBox = new wxCheckBox(this, wxPRINTID_PRINTTOFILE, _("Print to File"), wxPoint(20, 25) ); - - m_setupButton = new wxButton(this, wxPRINTID_SETUP, _("Setup..."), wxPoint(160, 25), wxSize(100, -1)); - - wxString *choices = new wxString[2]; - choices[0] = _("All"); - choices[1] = _("Pages"); - - m_fromText = (wxTextCtrl*)NULL; - m_toText = (wxTextCtrl*)NULL; - m_rangeRadioBox = (wxRadioBox *)NULL; - - if (m_printDialogData.GetFromPage() != 0) - { - m_rangeRadioBox = new wxRadioBox(this, wxPRINTID_RANGE, _("Print Range"), - wxPoint(5, 80), wxSize(-1, -1), - 2, choices, - 1, wxRA_VERTICAL); - m_rangeRadioBox->SetSelection(1); - } - - if(m_printDialogData.GetFromPage() != 0) - { - (void) new wxStaticText(this, wxPRINTID_STATIC, _("From:"), wxPoint(5, 135)); - - m_fromText = new wxTextCtrl(this, wxPRINTID_FROM, "", wxPoint(45, 130), wxSize(40, -1)); - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("To:"), wxPoint(100, 135)); - - m_toText = new wxTextCtrl(this, wxPRINTID_TO, "", wxPoint(133, 130), wxSize(40, -1)); - } - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Copies:"), wxPoint(200, 135)); - - m_noCopiesText = new wxTextCtrl(this, wxPRINTID_COPIES, "", wxPoint(252, 130), wxSize(40, -1)); - - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(40, 180), wxSize(100, -1)); - (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(180, 180), wxSize(100, -1)); - - okButton->SetDefault(); - okButton->SetFocus(); - Fit(); - Centre(wxBOTH); - - // Calls wxWindow::OnInitDialog and then wxGenericPrintDialog::TransferDataToWindow - InitDialog(); - delete[] choices; -} - -int wxGenericPrintDialog::ShowModal() -{ - if ( m_printDialogData.GetSetupDialog() ) - { - // Make sure wxPrintData object reflects the settings now, in case the setup dialog - // changes it. In fact there aren't any common settings at - // present, but there might be in future. - // TransferDataFromWindow(); - - wxGenericPrintSetupDialog *genericPrintSetupDialog = - new wxGenericPrintSetupDialog(this, & m_printDialogData.GetPrintData()); - int ret = genericPrintSetupDialog->ShowModal(); - if ( ret != wxID_CANCEL ) - { - // Transfer settings to the global object (for compatibility) and to - // the print dialog's print data. - *wxThePrintSetupData = genericPrintSetupDialog->GetPrintData(); - m_printDialogData.GetPrintData() = genericPrintSetupDialog->GetPrintData(); - } - genericPrintSetupDialog->Destroy(); - - // Restore the wxPrintData settings again (uncomment if any settings become common - // to both dialogs) - // TransferDataToWindow(); - - return ret; - } - else - { - return wxDialog::ShowModal(); - } -} - -wxGenericPrintDialog::~wxGenericPrintDialog() -{ -} - -void wxGenericPrintDialog::OnOK(wxCommandEvent& WXUNUSED(event)) -{ - TransferDataFromWindow(); - - // There are some interactions between the global setup data - // and the standard print dialog. The global printing 'mode' - // is determined by whether the user checks Print to file - // or not. - if (m_printDialogData.GetPrintToFile()) - { - m_printDialogData.GetPrintData().SetPrintMode(wxPRINT_MODE_FILE); - wxThePrintSetupData->SetPrinterMode(wxPRINT_MODE_FILE); - - wxString f = wxFileSelector(_("PostScript file"), - wxPathOnly(wxThePrintSetupData->GetPrinterFile()), - wxFileNameFromPath(wxThePrintSetupData->GetPrinterFile()), - _T("ps"), _T("*.ps"), 0, this); - if ( f.IsEmpty() ) - return; - - m_printDialogData.GetPrintData().SetFilename(f); - wxThePrintSetupData->SetPrinterFile(f); - } - else - { - m_printDialogData.GetPrintData().SetPrintMode(wxPRINT_MODE_PRINTER); - wxThePrintSetupData->SetPrinterMode(wxPRINT_MODE_PRINTER); - } - - EndModal(wxID_OK); -} - -void wxGenericPrintDialog::OnRange(wxCommandEvent& event) -{ - if (!m_fromText) return; - - if (event.GetInt() == 0) - { - m_fromText->Enable(FALSE); - m_toText->Enable(FALSE); - } - else if (event.GetInt() == 1) - { - m_fromText->Enable(TRUE); - m_toText->Enable(TRUE); - } -} - -void wxGenericPrintDialog::OnSetup(wxCommandEvent& WXUNUSED(event)) -{ - *wxThePrintSetupData = m_printDialogData.GetPrintData(); - wxGenericPrintSetupDialog *genericPrintSetupDialog = - new wxGenericPrintSetupDialog(this, wxThePrintSetupData); - int ret = genericPrintSetupDialog->ShowModal(); - if ( ret != wxID_CANCEL ) - { - *wxThePrintSetupData = genericPrintSetupDialog->GetPrintData(); - m_printDialogData = genericPrintSetupDialog->GetPrintData(); - } - - genericPrintSetupDialog->Close(TRUE); -} - -bool wxGenericPrintDialog::TransferDataToWindow() -{ - char buf[10]; - - if(m_printDialogData.GetFromPage() != 0) - { - if(m_fromText) - { - if (m_printDialogData.GetEnablePageNumbers()) - { - m_fromText->Enable(TRUE); - m_toText->Enable(TRUE); - sprintf(buf, "%d", m_printDialogData.GetFromPage()); - m_fromText->SetValue(buf); - sprintf(buf, "%d", m_printDialogData.GetToPage()); - m_toText->SetValue(buf); - if(m_rangeRadioBox) - if (m_printDialogData.GetAllPages()) - m_rangeRadioBox->SetSelection(0); - else - m_rangeRadioBox->SetSelection(1); - } - else - { - m_fromText->Enable(FALSE); - m_toText->Enable(FALSE); - if(m_rangeRadioBox) - { - m_rangeRadioBox->SetSelection(0); - m_rangeRadioBox->wxRadioBox::Enable(1, FALSE); - } - } - } - } - sprintf(buf, "%d", m_printDialogData.GetNoCopies()); - m_noCopiesText->SetValue(buf); - - m_printToFileCheckBox->SetValue(m_printDialogData.GetPrintToFile()); - m_printToFileCheckBox->Enable(m_printDialogData.GetEnablePrintToFile()); - return TRUE; -} - -bool wxGenericPrintDialog::TransferDataFromWindow() -{ - if(m_printDialogData.GetFromPage() != -1) - { - if (m_printDialogData.GetEnablePageNumbers()) - { - if(m_fromText) m_printDialogData.SetFromPage(wxAtoi(m_fromText->GetValue())); - if(m_toText) m_printDialogData.SetToPage(wxAtoi(m_toText->GetValue())); - } - if(m_rangeRadioBox) - { - if (m_rangeRadioBox->GetSelection() == 0) - m_printDialogData.SetAllPages(TRUE); - else - m_printDialogData.SetAllPages(FALSE); - } - } - else - { // continuous printing - m_printDialogData.SetFromPage(1); - m_printDialogData.SetToPage(32000); - } - m_printDialogData.SetNoCopies(wxAtoi(m_noCopiesText->GetValue())); - m_printDialogData.SetPrintToFile(m_printToFileCheckBox->GetValue()); - - return TRUE; -} - -/* -TODO: collate and noCopies should be duplicated across dialog data and print data objects -(slightly different semantics on Windows but let's ignore this for a bit). -*/ - -wxDC *wxGenericPrintDialog::GetPrintDC() -{ - // return new wxPostScriptDC(wxThePrintSetupData->GetPrinterFile(), FALSE, (wxWindow *) NULL); - return new wxPostScriptDC(GetPrintDialogData().GetPrintData()); -} - -// ---------------------------------------------------------------------------- -// Generic print setup dialog -// ---------------------------------------------------------------------------- - -wxGenericPrintSetupDialog::wxGenericPrintSetupDialog(wxWindow *parent, wxPrintData* data): -wxDialog(parent, -1, _("Print Setup"), wxPoint(0, 0), wxSize(600, 600), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL|wxTAB_TRAVERSAL) -{ - Init(data); -} - -// Convert wxPrintSetupData to standard wxPrintData object -wxGenericPrintSetupDialog::wxGenericPrintSetupDialog(wxWindow *parent, wxPrintSetupData* data): -wxDialog(parent, -1, _("Print Setup"), wxPoint(0, 0), wxSize(600, 600), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL|wxTAB_TRAVERSAL) -{ - wxPrintData printData; - if (data) - printData = * data; - else - printData = * wxThePrintSetupData; - - Init(& printData); -} - -void wxGenericPrintSetupDialog::Init(wxPrintData* data) -{ - if ( data ) - m_printData = *data; - - int staticBoxWidth = 300; - - (void) new wxStaticBox(this, wxPRINTID_STATIC, _("Paper size"), wxPoint(10, 10), wxSize(staticBoxWidth, 60) ); - - int xPos = 20; - int yPos = 30; - m_paperTypeChoice = CreatePaperTypeChoice(&xPos, &yPos); - - wxString *choices = new wxString[2]; - choices[0] = _("Portrait"); - choices[1] = _("Landscape"); - - m_orientationRadioBox = new wxRadioBox(this, wxPRINTID_ORIENTATION, _("Orientation"), - wxPoint(10, 80), wxSize(-1, -1), 2, choices, 1, wxRA_VERTICAL ); - m_orientationRadioBox->SetSelection(0); - - (void) new wxStaticBox(this, wxPRINTID_STATIC, _("Options"), wxPoint(10, 130), wxSize(staticBoxWidth, 50) ); - - int colourYPos = 145; - -#ifdef __WXMOTIF__ - colourYPos = 150; -#endif - - m_colourCheckBox = new wxCheckBox(this, wxPRINTID_PRINTCOLOUR, _("Print in colour"), wxPoint(15, colourYPos)); - - (void) new wxStaticBox(this, wxPRINTID_STATIC, _("Print spooling"), wxPoint(330, 10), wxSize(200,170) ); - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Printer command:"), wxPoint(340, 30)); - - m_printerCommandText = new wxTextCtrl(this, wxPRINTID_COMMAND, "", wxPoint(360, 55), wxSize(150, -1)); - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Printer options:"), wxPoint(340, 110)); - - m_printerOptionsText = new wxTextCtrl(this, wxPRINTID_OPTIONS, "", wxPoint(360, 135), wxSize(150, -1)); - - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(130, 200), wxSize(100, -1)); - (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(320, 200), wxSize(100, -1)); - - okButton->SetDefault(); - okButton->SetFocus(); - - Fit(); - Centre(wxBOTH); - - InitDialog(); - delete[] choices; -} - -wxGenericPrintSetupDialog::~wxGenericPrintSetupDialog() -{ -} - -bool wxGenericPrintSetupDialog::TransferDataToWindow() -{ - if (m_printerCommandText && m_printData.GetPrinterCommand()) - m_printerCommandText->SetValue(m_printData.GetPrinterCommand()); - if (m_printerOptionsText && m_printData.GetPrinterOptions()) - m_printerOptionsText->SetValue(m_printData.GetPrinterOptions()); - if (m_colourCheckBox) - m_colourCheckBox->SetValue(m_printData.GetColour()); - - if (m_orientationRadioBox) - { - if (m_printData.GetOrientation() == wxPORTRAIT) - m_orientationRadioBox->SetSelection(0); - else - m_orientationRadioBox->SetSelection(1); - } - return TRUE; -} - -bool wxGenericPrintSetupDialog::TransferDataFromWindow() -{ - if (m_printerCommandText) - m_printData.SetPrinterCommand(m_printerCommandText->GetValue()); - if (m_printerOptionsText) - m_printData.SetPrinterOptions(m_printerOptionsText->GetValue()); - if (m_colourCheckBox) - m_printData.SetColour(m_colourCheckBox->GetValue()); - if (m_orientationRadioBox) - { - int sel = m_orientationRadioBox->GetSelection(); - if (sel == 0) - m_printData.SetOrientation(wxPORTRAIT); - else - m_printData.SetOrientation(wxLANDSCAPE); - } - if (m_paperTypeChoice) - { - wxString val(m_paperTypeChoice->GetStringSelection()); - if (!val.IsNull() && val != "") - m_printData.SetPaperId(wxThePrintPaperDatabase->ConvertNameToId(val)); - } - - // This is for backward compatibility only - *wxThePrintSetupData = GetPrintData(); - return TRUE; -} - -wxChoice *wxGenericPrintSetupDialog::CreatePaperTypeChoice(int *x, int *y) -{ -/* Should not be necessary - if (!wxThePrintPaperDatabase) - { - wxThePrintPaperDatabase = new wxPrintPaperDatabase; - wxThePrintPaperDatabase->CreateDatabase(); - } -*/ - int n = wxThePrintPaperDatabase->Number(); - wxString *choices = new wxString [n]; - int sel = 0; - int i; - for (i = 0; i < n; i++) - { - wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Nth(i)->Data(); - choices[i] = paper->GetName(); - if (m_printData.GetPaperId() == paper->GetId()) - sel = i; - } - - int width = 250; - - wxChoice *choice = new wxChoice(this, wxPRINTID_PAPERSIZE, wxPoint(*x, *y), wxSize(width, -1), n, - choices); - - // SetFont(thisFont); - - delete[] choices; - - choice->SetSelection(sel); - return choice; -} -#endif // wxUSE_POSTSCRIPT - -// ---------------------------------------------------------------------------- -// Generic page setup dialog -// ---------------------------------------------------------------------------- - -void wxGenericPageSetupDialog::OnPrinter(wxCommandEvent& WXUNUSED(event)) -{ - // We no longer query GetPrintMode, so we can eliminate the need - // to call SetPrintMode. - // This has the limitation that we can't explicitly call the PostScript - // print setup dialog from the generic Page Setup dialog under Windows, - // but since this choice would only happen when trying to do PostScript - // printing under Windows (and only in 16-bit Windows which - // doesn't have a Windows-specific page setup dialog) it's worth it. - - // First save the current settings, so the wxPrintData object is up to date. - TransferDataFromWindow(); - - // Transfer the current print settings from this dialog to the page setup dialog. - wxPrintDialogData data; - data = GetPageSetupData().GetPrintData(); - data.SetSetupDialog(TRUE); - wxPrintDialog *printDialog = new wxPrintDialog(this, & data); - printDialog->ShowModal(); - - // Transfer the page setup print settings from the page dialog to this dialog again, in case - // the page setup dialog changed something. - GetPageSetupData().GetPrintData() = printDialog->GetPrintDialogData().GetPrintData(); - GetPageSetupData().CalculatePaperSizeFromId(); // Make sure page size reflects the id in wxPrintData - - printDialog->Destroy(); - - // Now update the dialog in case the page setup dialog changed some of our settings. - TransferDataToWindow(); -} - -wxGenericPageSetupDialog::wxGenericPageSetupDialog(wxWindow *parent, wxPageSetupData* data): -wxDialog(parent, -1, _("Page Setup"), wxPoint(0, 0), wxSize(600, 600), wxDIALOG_MODAL|wxDEFAULT_DIALOG_STYLE|wxTAB_TRAVERSAL) -{ - if ( data ) - m_pageData = *data; - - int buttonWidth = 75; - int buttonHeight = 25; - int spacing = 5; -#ifdef __WXMOTIF__ - spacing = 15; -#endif - - int yPos = 5; - int xPos = 5; - - wxButton *okButton = new wxButton(this, wxID_OK, _("OK"), wxPoint(5, yPos), wxSize(buttonWidth, buttonHeight)); - (void) new wxButton(this, wxID_CANCEL, _("Cancel"), wxPoint(buttonWidth + 5 + spacing, yPos), wxSize(buttonWidth, buttonHeight)); - - m_printerButton = new wxButton(this, wxPRINTID_SETUP, _("Printer..."), wxPoint(buttonWidth*2 + 5 + 2*spacing, yPos), wxSize(buttonWidth, buttonHeight)); - - if ( !m_pageData.GetEnablePrinter() ) - m_printerButton->Enable(FALSE); - - // if (m_printData.GetEnableHelp()) - // wxButton *helpButton = new wxButton(this, (wxFunction)wxGenericPageSetupHelpProc, _("Help"), -1, -1, buttonWidth, buttonHeight); - - okButton->SetDefault(); - okButton->SetFocus(); - - xPos = 5; - yPos += 35; - -#ifdef __WXMOTIF__ - yPos += 10; -#endif - - m_paperTypeChoice = CreatePaperTypeChoice(&xPos, &yPos); - - xPos = 5; - - wxString *choices = new wxString[2]; - choices[0] = _("Portrait"); - choices[1] = _("Landscape"); - m_orientationRadioBox = new wxRadioBox(this, wxPRINTID_ORIENTATION, _("Orientation"), - wxPoint(xPos, yPos), wxSize(-1, -1), 2, choices, 2); - m_orientationRadioBox->SetSelection(0); - - xPos = 5; - yPos += 60; - - int staticWidth = 110; -#ifdef __WXMOTIF__ - staticWidth += 20; -#endif - - int textWidth = 60; - spacing = 10; - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Left margin (mm):"), wxPoint(xPos, yPos)); - xPos += staticWidth; - - m_marginLeftText = new wxTextCtrl(this, wxPRINTID_LEFTMARGIN, "", wxPoint(xPos, yPos), wxSize(textWidth, -1)); - xPos += textWidth + spacing; - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Right margin (mm):"), wxPoint(xPos, yPos)); - xPos += staticWidth; - - m_marginRightText = new wxTextCtrl(this, wxPRINTID_RIGHTMARGIN, "", wxPoint(xPos, yPos), wxSize(textWidth, -1)); - xPos += textWidth + spacing; - - yPos += 35; - xPos = 5; - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Top margin (mm):"), wxPoint(xPos, yPos)); - xPos += staticWidth; - - m_marginTopText = new wxTextCtrl(this, wxPRINTID_TOPMARGIN, "", wxPoint(xPos, yPos), wxSize(textWidth, -1)); - xPos += textWidth + spacing; - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Bottom margin (mm):"), wxPoint(xPos, yPos)); - xPos += staticWidth; - - m_marginBottomText = new wxTextCtrl(this, wxPRINTID_BOTTOMMARGIN, "", wxPoint(xPos, yPos), wxSize(textWidth, -1)); - - Fit(); - Centre(wxBOTH); - - InitDialog(); - delete [] choices; -} - -wxGenericPageSetupDialog::~wxGenericPageSetupDialog() -{ -} - -bool wxGenericPageSetupDialog::TransferDataToWindow() -{ - if (m_marginLeftText) - m_marginLeftText->SetValue(IntToString((int) m_pageData.GetMarginTopLeft().x)); - if (m_marginTopText) - m_marginTopText->SetValue(IntToString((int) m_pageData.GetMarginTopLeft().y)); - if (m_marginRightText) - m_marginRightText->SetValue(IntToString((int) m_pageData.GetMarginBottomRight().x)); - if (m_marginBottomText) - m_marginBottomText->SetValue(IntToString((int) m_pageData.GetMarginBottomRight().y)); - - if (m_orientationRadioBox) - { - if (m_pageData.GetPrintData().GetOrientation() == wxPORTRAIT) - m_orientationRadioBox->SetSelection(0); - else - m_orientationRadioBox->SetSelection(1); - } - - // Find the paper type from either the current paper size in the wxPageSetupDialogData, or - // failing that, the id in the wxPrintData object. - - wxPrintPaperType* type = wxThePrintPaperDatabase->FindPaperType( - wxSize(m_pageData.GetPaperSize().x * 10, m_pageData.GetPaperSize().y * 10)); - - if (!type && m_pageData.GetPrintData().GetPaperId() != wxPAPER_NONE) - type = wxThePrintPaperDatabase->FindPaperType(m_pageData.GetPrintData().GetPaperId()); - - if (type) - { - m_paperTypeChoice->SetStringSelection(type->GetName()); - } - - return TRUE; -} - -bool wxGenericPageSetupDialog::TransferDataFromWindow() -{ - if (m_marginLeftText && m_marginTopText) - m_pageData.SetMarginTopLeft(wxPoint(wxAtoi((const wxChar *)m_marginLeftText->GetValue()),wxAtoi((const wxChar *)m_marginTopText->GetValue()))); - if (m_marginRightText && m_marginBottomText) - m_pageData.SetMarginBottomRight(wxPoint(wxAtoi((const wxChar *)m_marginRightText->GetValue()),wxAtoi((const wxChar *)m_marginBottomText->GetValue()))); - - if (m_orientationRadioBox) - { - int sel = m_orientationRadioBox->GetSelection(); - if (sel == 0) - { -#if wxUSE_POSTSCRIPT - wxThePrintSetupData->SetPrinterOrientation(wxPORTRAIT); -#endif - m_pageData.GetPrintData().SetOrientation(wxPORTRAIT); - } - else - { -#if wxUSE_POSTSCRIPT - wxThePrintSetupData->SetPrinterOrientation(wxLANDSCAPE); -#endif - m_pageData.GetPrintData().SetOrientation(wxLANDSCAPE); - } - } - if (m_paperTypeChoice) - { - wxString val(m_paperTypeChoice->GetStringSelection()); - if (!val.IsNull() && val != "") - { - wxPrintPaperType* paper = wxThePrintPaperDatabase->FindPaperType(val); - if ( paper ) - { - m_pageData.SetPaperSize(wxSize(paper->GetWidth()/10, paper->GetHeight()/10)); - m_pageData.GetPrintData().SetPaperId(paper->GetId()); - } - } - } - - return TRUE; -} - -wxChoice *wxGenericPageSetupDialog::CreatePaperTypeChoice(int *x, int *y) -{ -/* - if (!wxThePrintPaperDatabase) - { - wxThePrintPaperDatabase = new wxPrintPaperDatabase; - wxThePrintPaperDatabase->CreateDatabase(); - } -*/ - - int n = wxThePrintPaperDatabase->Number(); - wxString *choices = new wxString [n]; - int i; - for (i = 0; i < n; i++) - { - wxPrintPaperType *paper = (wxPrintPaperType *)wxThePrintPaperDatabase->Nth(i)->Data(); - choices[i] = paper->GetName(); - } - - (void) new wxStaticText(this, wxPRINTID_STATIC, _("Paper size"), wxPoint(*x, *y)); - *y += 25; - - wxChoice *choice = new wxChoice(this, wxPRINTID_PAPERSIZE, wxPoint(*x, *y), wxSize(300, -1), n, - choices); - *y += 35; - delete[] choices; - -// choice->SetSelection(sel); - return choice; -} - diff --git a/src/generic/progdlgg.cpp b/src/generic/progdlgg.cpp deleted file mode 100644 index 137a4be73c..0000000000 --- a/src/generic/progdlgg.cpp +++ /dev/null @@ -1,174 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: progdlgg.h -// Purpose: wxProgressDialog class -// Author: Karsten Ballüder -// Modified by: -// Created: 09.05.1999 -// RCS-ID: $Id$ -// Copyright: (c) Karsten Ballüder -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "progdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/layout.h" -#include "wx/event.h" -#include "wx/gauge.h" -#include "wx/intl.h" -#endif - -#include "wx/generic/progdlgg.h" - -#define LAYOUT_X_MARGIN 8 -#define LAYOUT_Y_MARGIN 8 - -// wxTextEntryDialog - -#if !USE_SHARED_LIBRARY - BEGIN_EVENT_TABLE(wxProgressDialog, wxFrame) - EVT_BUTTON(-1, wxProgressDialog::OnCancel) - EVT_CLOSE(wxProgressDialog::OnClose) - END_EVENT_TABLE() - - IMPLEMENT_CLASS(wxProgressDialog, wxFrame) -#endif - -wxProgressDialog::wxProgressDialog(wxString const &title, - wxString const &message, - int maximum, - wxWindow *parent, - int style) -{ - bool hasAbortButton = (style & wxPD_CAN_ABORT) != 0; - m_state = hasAbortButton ? Continue : Uncancelable; - m_disableParentOnly = (style & wxPD_APP_MODAL) == 0; - m_parent = parent; - m_maximum = maximum; - - int height = 70; // FIXME arbitrary numbers - if ( hasAbortButton ) - height += 35; - wxFrame::Create(m_parent, -1, title, - wxPoint(0, 0), wxSize(220, height), - wxDEFAULT_DIALOG_STYLE); - - wxLayoutConstraints *c; - - m_msg = new wxStaticText(this, -1, message); - c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 10); - c->top.SameAs(this, wxTop, 10); - c->width.AsIs(); - c->height.AsIs(); - m_msg->SetConstraints(c); - - if ( maximum > 0 ) - { - m_gauge = new wxGauge(this, -1, maximum); - c = new wxLayoutConstraints; - c->left.SameAs(this, wxLeft, 2*LAYOUT_X_MARGIN); - c->top.Below(m_msg, 2*LAYOUT_Y_MARGIN); - c->right.SameAs(this, wxRight, 2*LAYOUT_X_MARGIN); - c->height.AsIs(); - m_gauge->SetConstraints(c); - m_gauge->SetValue(0); - } - else - m_gauge = (wxGauge *)NULL; - - if ( hasAbortButton ) - { - m_btnAbort = new wxButton(this, -1, _("Cancel")); - c = new wxLayoutConstraints; - c->centreX.SameAs(this, wxCentreX); - if(m_gauge) - c->top.Below(m_gauge, 2*LAYOUT_Y_MARGIN); - else - c->top.Below(m_btnAbort, 2*LAYOUT_Y_MARGIN); - c->width.AsIs(); - c->height.AsIs(); - m_btnAbort->SetConstraints(c); - } - else - m_btnAbort = (wxButton *)NULL; - - SetAutoLayout(TRUE); - Show(TRUE); - Centre(wxCENTER_FRAME | wxBOTH); - - if(m_disableParentOnly) - m_parent->Enable(FALSE); - else - wxEnableTopLevelWindows(FALSE); - Enable(TRUE); // enable this window - wxYield(); -} - - -bool -wxProgressDialog::Update(int value, const wxString& newmsg) -{ - wxASSERT_MSG( value == -1 || m_gauge, _T("can't update non existent dialog") ); - wxASSERT_MSG( value < m_maximum, _T("invalid progress value") ); - - if( m_gauge ) - m_gauge->SetValue(value + 1); - if( !newmsg.IsEmpty() ) - m_msg->SetLabel(newmsg); - wxYield(); - - if ( (value == m_maximum - 1) && !(GetWindowStyleFlag() & wxPD_AUTO_HIDE) ) - { - if ( m_btnAbort ) - { - // tell the user what he should do... - m_btnAbort->SetLabel(_("Close")); - } - - if ( !newmsg ) - { - // also provide the finishing message if the application didn't - m_msg->SetLabel(_("Done.")); - } - - m_state = Finished; - while ( m_state != Canceled ) // set from OnClose() - wxYield(); - - // so that we return TRUE below - m_state = Finished; - } - - return m_state != Canceled; -} - -void wxProgressDialog::OnClose(wxCloseEvent& event) -{ - if ( m_state == Uncancelable ) - event.Veto(TRUE); - else - m_state = Canceled; -} - - -wxProgressDialog::~wxProgressDialog() -{ - if ( m_disableParentOnly ) - m_parent->Enable(TRUE); - else - wxEnableTopLevelWindows(TRUE); -} diff --git a/src/generic/prop.cpp b/src/generic/prop.cpp deleted file mode 100644 index 6fa86ca2b1..0000000000 --- a/src/generic/prop.cpp +++ /dev/null @@ -1,1150 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: prop.cpp -// Purpose: Propert sheet classes implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "prop.h" -#endif - -// 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 -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) && !defined(__WXWINE__) -#include -#else -#include -#endif -#else -#include -#endif - -#include "wx/window.h" -#include "wx/utils.h" -#include "wx/list.h" -#include "wx/debug.h" -#include "wx/prop.h" - -IMPLEMENT_DYNAMIC_CLASS(wxPropertyValue, wxObject) - -wxPropertyValue::wxPropertyValue(void) -{ - m_type = wxPropertyValueNull; - m_next = NULL; - m_last = NULL; - m_value.first = NULL; - m_clientData = NULL; - m_modifiedFlag = FALSE; -} - -wxPropertyValue::wxPropertyValue(const wxPropertyValue& copyFrom) -{ - m_modifiedFlag = FALSE; - Copy((wxPropertyValue& )copyFrom); -} - -wxPropertyValue::wxPropertyValue(const wxChar *val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueString; - - m_value.string = copystring(val); - m_clientData = NULL; - m_next = NULL; - m_last = NULL; -} - -wxPropertyValue::wxPropertyValue(const wxString& val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueString; - - m_value.string = copystring((const wxChar *)val); - m_clientData = NULL; - m_next = NULL; - m_last = NULL; -} - -wxPropertyValue::wxPropertyValue(long the_integer) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueInteger; - m_value.integer = the_integer; - m_clientData = NULL; - m_next = NULL; -} - -wxPropertyValue::wxPropertyValue(bool val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValuebool; - m_value.integer = val; - m_clientData = NULL; - m_next = NULL; -} - -wxPropertyValue::wxPropertyValue(float the_real) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueReal; - m_value.real = the_real; - m_clientData = NULL; - m_next = NULL; -} - -wxPropertyValue::wxPropertyValue(double the_real) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueReal; - m_value.real = (float)the_real; - m_clientData = NULL; - m_next = NULL; -} - -// Pointer versions: we have a pointer to the real C++ value. -wxPropertyValue::wxPropertyValue(wxChar **val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueStringPtr; - - m_value.stringPtr = val; - m_clientData = NULL; - m_next = NULL; - m_last = NULL; -} - -wxPropertyValue::wxPropertyValue(long *val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueIntegerPtr; - m_value.integerPtr = val; - m_clientData = NULL; - m_next = NULL; -} - -wxPropertyValue::wxPropertyValue(bool *val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueboolPtr; - m_value.boolPtr = val; - m_clientData = NULL; - m_next = NULL; -} - -wxPropertyValue::wxPropertyValue(float *val) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueRealPtr; - m_value.realPtr = val; - m_clientData = NULL; - m_next = NULL; -} - -wxPropertyValue::wxPropertyValue(wxList *the_list) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueList; - m_clientData = NULL; - m_last = NULL; - m_value.first = NULL; - - wxNode *node = the_list->First(); - while (node) - { - wxPropertyValue *expr = (wxPropertyValue *)node->Data(); - Append(expr); - node = node->Next(); - } - - delete the_list; -} - -wxPropertyValue::wxPropertyValue(wxStringList *the_list) -{ - m_modifiedFlag = FALSE; - m_type = wxPropertyValueList; - m_clientData = NULL; - m_last = NULL; - m_value.first = NULL; - - wxNode *node = the_list->First(); - while (node) - { - char *s = (char *)node->Data(); - Append(new wxPropertyValue(s)); - node = node->Next(); - } - delete the_list; -} - -wxPropertyValue::~wxPropertyValue(void) -{ - switch (m_type) - { - case wxPropertyValueInteger: - case wxPropertyValuebool: - case wxPropertyValueReal: - { - break; - } - case wxPropertyValueString: - { - delete[] m_value.string; - break; - } - case wxPropertyValueList: - { - wxPropertyValue *expr = m_value.first; - while (expr) - { - wxPropertyValue *expr1 = expr->m_next; - - delete expr; - expr = expr1; - } - break; - } - default: - case wxPropertyValueNull: break; - } -} - -void wxPropertyValue::Append(wxPropertyValue *expr) -{ - m_modifiedFlag = TRUE; - if (!m_value.first) - m_value.first = expr; - - if (m_last) - m_last->m_next = expr; - m_last = expr; -} - -void wxPropertyValue::Insert(wxPropertyValue *expr) -{ - m_modifiedFlag = TRUE; - expr->m_next = m_value.first; - m_value.first = expr; - - if (!m_last) - m_last = expr; -} - -// Delete from list -void wxPropertyValue::Delete(wxPropertyValue *node) -{ - wxPropertyValue *expr = GetFirst(); - - wxPropertyValue *previous = NULL; - while (expr && (expr != node)) - { - previous = expr; - expr = expr->GetNext(); - } - - if (expr) - { - if (previous) - previous->m_next = expr->m_next; - - // If node was the first in the list, - // make the list point to the NEXT one. - if (GetFirst() == expr) - { - m_value.first = expr->m_next; - } - - // If node was the last in the list, - // make the list 'last' pointer point to the PREVIOUS one. - if (GetLast() == expr) - { - if (previous) - m_last = previous; - else - m_last = NULL; - } - m_modifiedFlag = TRUE; - delete expr; - } - -} - -void wxPropertyValue::ClearList(void) -{ - wxPropertyValue *val = GetFirst(); - if (val) - m_modifiedFlag = TRUE; - - while (val) - { - wxPropertyValue *next = val->GetNext(); - delete val; - val = next; - } - m_value.first = NULL; - m_last = NULL; -} - -wxPropertyValue *wxPropertyValue::NewCopy(void) const -{ - switch (m_type) - { - case wxPropertyValueInteger: - return new wxPropertyValue(m_value.integer); - case wxPropertyValuebool: - return new wxPropertyValue((bool) (m_value.integer != 0)); - case wxPropertyValueReal: - return new wxPropertyValue(m_value.real); - case wxPropertyValueString: - return new wxPropertyValue(m_value.string); - case wxPropertyValueList: - { - wxPropertyValue *expr = m_value.first; - wxPropertyValue *new_list = new wxPropertyValue; - new_list->SetType(wxPropertyValueList); - while (expr) - { - wxPropertyValue *expr2 = expr->NewCopy(); - new_list->Append(expr2); - expr = expr->m_next; - } - return new_list; - } - case wxPropertyValueIntegerPtr: - return new wxPropertyValue(m_value.integerPtr); - case wxPropertyValueRealPtr: - return new wxPropertyValue(m_value.realPtr); - case wxPropertyValueboolPtr: - return new wxPropertyValue(m_value.boolPtr); - case wxPropertyValueStringPtr: - return new wxPropertyValue(m_value.stringPtr); - - case wxPropertyValueNull: -#ifdef __X__ - cerr << "Should never get here!\n"; -#endif - break; - } - return NULL; -} - -void wxPropertyValue::Copy(wxPropertyValue& copyFrom) -{ - m_type = copyFrom.Type(); - - switch (m_type) - { - case wxPropertyValueInteger: - (*this) = copyFrom.IntegerValue(); - return ; - - case wxPropertyValueReal: - (*this) = copyFrom.RealValue(); - return ; - - case wxPropertyValueString: - (*this) = wxString(copyFrom.StringValue()); - return ; - - case wxPropertyValuebool: - (*this) = copyFrom.BoolValue(); - return ; - - // Pointers - case wxPropertyValueboolPtr: - (*this) = copyFrom.BoolValuePtr(); - return ; - case wxPropertyValueRealPtr: - (*this) = copyFrom.RealValuePtr(); - return ; - case wxPropertyValueIntegerPtr: - (*this) = copyFrom.IntegerValuePtr(); - return ; - case wxPropertyValueStringPtr: - { - wxChar** s = copyFrom.StringValuePtr(); - (*this) = s; - return ; - } - - case wxPropertyValueList: - { - m_value.first = NULL; - m_next = NULL; - m_last = NULL; - wxPropertyValue *expr = copyFrom.m_value.first; - while (expr) - { - wxPropertyValue *expr2 = expr->NewCopy(); - Append(expr2); - expr = expr->m_next; - } - return; - } - case wxPropertyValueNull: -#ifdef __X__ - cerr << "Should never get here!\n"; -#endif - break; - } -} - -// Return nth argument of a clause (starting from 1) -wxPropertyValue *wxPropertyValue::Arg(wxPropertyValueType type, int arg) const -{ - wxPropertyValue *expr = m_value.first; - for (int i = 1; i < arg; i++) - if (expr) - expr = expr->m_next; - - if (expr && (expr->m_type == type)) - return expr; - else - return NULL; -} - -// Return nth argument of a list expression (starting from zero) -wxPropertyValue *wxPropertyValue::Nth(int arg) const -{ - if (m_type != wxPropertyValueList) - return NULL; - - wxPropertyValue *expr = m_value.first; - for (int i = 0; i < arg; i++) - if (expr) - expr = expr->m_next; - else return NULL; - - if (expr) - return expr; - else - return NULL; -} - - // Returns the number of elements in a list expression -int wxPropertyValue::Number(void) const -{ - if (m_type != wxPropertyValueList) - return 0; - - int i = 0; - wxPropertyValue *expr = m_value.first; - while (expr) - { - expr = expr->m_next; - i ++; - } - return i; -} - -void wxPropertyValue::WritePropertyClause(ostream& stream) // Write this expression as a top-level clause -{ - if (m_type != wxPropertyValueList) - return; - - wxPropertyValue *node = m_value.first; - if (node) - { - node->WritePropertyType(stream); - stream << "("; - node = node->m_next; - bool first = TRUE; - while (node) - { - if (!first) - stream << " "; - node->WritePropertyType(stream); - node = node->m_next; - if (node) stream << ",\n"; - first = FALSE; - } - stream << ").\n\n"; - } -} - -void wxPropertyValue::WritePropertyType(ostream& stream) // Write as any other subexpression -{ - switch (m_type) - { - case wxPropertyValueInteger: - { - stream << m_value.integer; - break; - } - case wxPropertyValueIntegerPtr: - { - stream << *m_value.integerPtr; - break; - } - case wxPropertyValuebool: - { - if (m_value.integer) - stream << "True"; - else - stream << "False"; - break; - } - case wxPropertyValueboolPtr: - { - if (*m_value.integerPtr) - stream << "True"; - else - stream << "False"; - break; - } - case wxPropertyValueReal: - { - float f = m_value.real; - wxSprintf(wxBuffer, _T("%.6g"), (double)f); - stream << wxBuffer; - break; - } - case wxPropertyValueRealPtr: - { - float f = *m_value.realPtr; -/* Now the parser can cope with this. - // Prevent printing in 'e' notation. Any better way? - if (fabs(f) < 0.00001) - f = 0.0; -*/ - wxSprintf(wxBuffer, _T("%.6g"), f); - stream << wxBuffer; - break; - } - case wxPropertyValueString: - { -// stream << "\""; - int i; - const wxWX2MBbuf strbuf = wxConv_libc.cWX2MB(m_value.string); - int len = strlen(strbuf); - for (i = 0; i < len; i++) - { - char ch = strbuf[i]; -// if (ch == '"' || ch == '\\') -// stream << "\\"; - stream << ch; - } - -// stream << "\""; - break; - } - case wxPropertyValueStringPtr: - { - wxFAIL_MSG( _T("wxPropertyValue::WritePropertyType( wxPropertyValueStringPtr ) not implemented") ); - /* - int i; - int len = strlen(*(m_value.stringPtr)); - for (i = 0; i < len; i++) - { - char ch = *(m_value.stringPtr)[i]; - - } - */ - break; - } - case wxPropertyValueList: - { - if (!m_value.first) - stream << "[]"; - else - { - wxPropertyValue *expr = m_value.first; - - stream << "["; - while (expr) - { - expr->WritePropertyType(stream); - expr = expr->m_next; - if (expr) stream << ", "; - } - stream << "]"; - } - break; - } - case wxPropertyValueNull: break; - } -} - -wxString wxPropertyValue::GetStringRepresentation(void) -{ - char buf[500]; - buf[0] = 0; - - ostrstream str((char *)buf, (int)500, ios::out); - WritePropertyType(str); - str << '\0'; - str.flush(); - - wxString theString(buf); - return theString; -} - -void wxPropertyValue::operator=(const wxPropertyValue& val) -{ - m_modifiedFlag = TRUE; - Copy((wxPropertyValue&)val); -} - -// void wxPropertyValue::operator=(const char *val) -void wxPropertyValue::operator=(const wxString& val1) -{ - const wxChar *val = (const wxChar *)val1; - - m_modifiedFlag = TRUE; - if (m_type == wxPropertyValueNull) - m_type = wxPropertyValueString; - - if (m_type == wxPropertyValueString) - { - if (val) - m_value.string = copystring(val); - else - m_value.string = NULL; - } - else if (m_type == wxPropertyValueStringPtr) - { - if (*m_value.stringPtr) - delete[] *m_value.stringPtr; - if (val) - *m_value.stringPtr = copystring(val); - else - *m_value.stringPtr = NULL; - } - - m_clientData = NULL; - m_next = NULL; - m_last = NULL; - -} - -void wxPropertyValue::operator=(const long val) -{ - m_modifiedFlag = TRUE; - if (m_type == wxPropertyValueNull) - m_type = wxPropertyValueInteger; - - if (m_type == wxPropertyValueInteger) - m_value.integer = val; - else if (m_type == wxPropertyValueIntegerPtr) - *m_value.integerPtr = val; - else if (m_type == wxPropertyValueReal) - m_value.real = (float)val; - else if (m_type == wxPropertyValueRealPtr) - *m_value.realPtr = (float)val; - - m_clientData = NULL; - m_next = NULL; -} - -void wxPropertyValue::operator=(const bool val) -{ - m_modifiedFlag = TRUE; - if (m_type == wxPropertyValueNull) - m_type = wxPropertyValuebool; - - if (m_type == wxPropertyValuebool) - m_value.integer = (long)val; - else if (m_type == wxPropertyValueboolPtr) - *m_value.boolPtr = val; - - m_clientData = NULL; - m_next = NULL; -} - -void wxPropertyValue::operator=(const float val) -{ - m_modifiedFlag = TRUE; - if (m_type == wxPropertyValueNull) - m_type = wxPropertyValueReal; - - if (m_type == wxPropertyValueInteger) - m_value.integer = (long)val; - else if (m_type == wxPropertyValueIntegerPtr) - *m_value.integerPtr = (long)val; - else if (m_type == wxPropertyValueReal) - m_value.real = val; - else if (m_type == wxPropertyValueRealPtr) - *m_value.realPtr = val; - - m_clientData = NULL; - m_next = NULL; -} - -void wxPropertyValue::operator=(const wxChar **val) -{ - m_modifiedFlag = TRUE; - m_type = wxPropertyValueStringPtr; - - if (val) - m_value.stringPtr = (wxChar **)val; - else - m_value.stringPtr = NULL; - m_clientData = NULL; - m_next = NULL; - m_last = NULL; - -} - -void wxPropertyValue::operator=(const long *val) -{ - m_modifiedFlag = TRUE; - m_type = wxPropertyValueIntegerPtr; - m_value.integerPtr = (long *)val; - m_clientData = NULL; - m_next = NULL; -} - -void wxPropertyValue::operator=(const bool *val) -{ - m_modifiedFlag = TRUE; - m_type = wxPropertyValueboolPtr; - m_value.boolPtr = (bool *)val; - m_clientData = NULL; - m_next = NULL; -} - -void wxPropertyValue::operator=(const float *val) -{ - m_modifiedFlag = TRUE; - m_type = wxPropertyValueRealPtr; - m_value.realPtr = (float *)val; - m_clientData = NULL; - m_next = NULL; -} - -long wxPropertyValue::IntegerValue(void) const - { - if (m_type == wxPropertyValueInteger) - return m_value.integer; - else if (m_type == wxPropertyValueReal) - return (long)m_value.real; - else if (m_type == wxPropertyValueIntegerPtr) - return *m_value.integerPtr; - else if (m_type == wxPropertyValueRealPtr) - return (long)(*m_value.realPtr); - else return 0; - } - -long *wxPropertyValue::IntegerValuePtr(void) const -{ - return m_value.integerPtr; -} - -float wxPropertyValue::RealValue(void) const { - if (m_type == wxPropertyValueReal) - return m_value.real; - else if (m_type == wxPropertyValueRealPtr) - return *m_value.realPtr; - else if (m_type == wxPropertyValueInteger) - return (float)m_value.integer; - else if (m_type == wxPropertyValueIntegerPtr) - return (float)*(m_value.integerPtr); - else return 0.0; - } - -float *wxPropertyValue::RealValuePtr(void) const -{ - return m_value.realPtr; -} - -bool wxPropertyValue::BoolValue(void) const { - if (m_type == wxPropertyValueReal) - return (m_value.real != 0.0); - if (m_type == wxPropertyValueRealPtr) - return (*(m_value.realPtr) != 0.0); - else if (m_type == wxPropertyValueInteger) - return (m_value.integer != 0); - else if (m_type == wxPropertyValueIntegerPtr) - return (*(m_value.integerPtr) != 0); - else if (m_type == wxPropertyValuebool) - return (m_value.integer != 0); - else if (m_type == wxPropertyValueboolPtr) - return (*(m_value.boolPtr) != 0); - else return FALSE; - } - -bool *wxPropertyValue::BoolValuePtr(void) const -{ - return m_value.boolPtr; -} - -wxChar *wxPropertyValue::StringValue(void) const { - if (m_type == wxPropertyValueString) - return m_value.string; - else if (m_type == wxPropertyValueStringPtr) - return *(m_value.stringPtr); - else return NULL; - } - -wxChar **wxPropertyValue::StringValuePtr(void) const -{ - return m_value.stringPtr; -} - -/* - * A property (name plus value) - */ - -IMPLEMENT_DYNAMIC_CLASS(wxProperty, wxObject) - -wxProperty::wxProperty(void) -{ - m_propertyRole = wxEmptyString; - m_propertyValidator = NULL; - m_propertyWindow = NULL; - m_enabled = TRUE; -} - -wxProperty::wxProperty(wxProperty& copyFrom) -{ - m_value = copyFrom.GetValue(); - m_name = copyFrom.GetName(); - m_propertyRole = copyFrom.GetRole(); - m_propertyValidator = copyFrom.GetValidator(); - m_enabled = copyFrom.IsEnabled(); - m_propertyWindow = NULL; -} - -wxProperty::wxProperty(wxString nm, wxString role, wxPropertyValidator *ed):m_name(nm), m_propertyRole(role) -{ - m_propertyValidator = ed; - m_propertyWindow = NULL; - m_enabled = TRUE; -} - -wxProperty::wxProperty(wxString nm, const wxPropertyValue& val, wxString role, wxPropertyValidator *ed): - m_value(val), m_name(nm), m_propertyRole(role) -{ - m_propertyValidator = ed; - m_propertyWindow = NULL; - m_enabled = TRUE; -} - -wxProperty::~wxProperty(void) -{ - if (m_propertyValidator) - delete m_propertyValidator; -} - -wxPropertyValue& wxProperty::GetValue(void) const -{ - return (wxPropertyValue&) m_value; -} - -wxPropertyValidator *wxProperty::GetValidator(void) const -{ - return m_propertyValidator; -} - -wxString& wxProperty::GetName(void) const -{ - return (wxString&) m_name; -} - -wxString& wxProperty::GetRole(void) const -{ - return (wxString&) m_propertyRole; -} - -void wxProperty::SetValue(const wxPropertyValue& val) -{ - m_value = val; -} - -void wxProperty::SetValidator(wxPropertyValidator *ed) -{ - m_propertyValidator = ed; -} - -void wxProperty::SetRole(wxString& role) -{ - m_propertyRole = role; -} - -void wxProperty::SetName(wxString& nm) -{ - m_name = nm; -} - -void wxProperty::operator=(const wxPropertyValue& val) -{ - m_value = val; -} - -/* - * Base property view class - */ - -IMPLEMENT_DYNAMIC_CLASS(wxPropertyView, wxEvtHandler) - -wxPropertyView::wxPropertyView(long flags) -{ - m_buttonFlags = flags; - m_propertySheet = NULL; - m_currentValidator = NULL; - m_currentProperty = NULL; -} - -wxPropertyView::~wxPropertyView(void) -{ -} - -void wxPropertyView::AddRegistry(wxPropertyValidatorRegistry *registry) -{ - m_validatorRegistryList.Append(registry); -} - -wxPropertyValidator *wxPropertyView::FindPropertyValidator(wxProperty *property) -{ - if (property->GetValidator()) - return property->GetValidator(); - - wxNode *node = m_validatorRegistryList.First(); - while (node) - { - wxPropertyValidatorRegistry *registry = (wxPropertyValidatorRegistry *)node->Data(); - wxPropertyValidator *validator = registry->GetValidator(property->GetRole()); - if (validator) - return validator; - node = node->Next(); - } - return NULL; -/* - if (!wxDefaultPropertyValidator) - wxDefaultPropertyValidator = new wxPropertyListValidator; - return wxDefaultPropertyValidator; -*/ -} - -/* - * Property sheet - */ - -IMPLEMENT_DYNAMIC_CLASS(wxPropertySheet, wxObject) - -wxPropertySheet::wxPropertySheet(const wxString& name) -:m_properties(wxKEY_STRING),m_name(name) -{ -} - -wxPropertySheet::~wxPropertySheet(void) -{ - Clear(); -} - -bool wxPropertySheet::Save( ostream& WXUNUSED(str) ) -{ - return FALSE; -} - -bool wxPropertySheet::Load( ostream& WXUNUSED(str) ) -{ - return FALSE; -} - -void wxPropertySheet::UpdateAllViews( wxPropertyView *WXUNUSED(thisView) ) -{ -} - -// Add a property -void wxPropertySheet::AddProperty(wxProperty *property) -{ - m_properties.Append((const wxChar*) property->GetName(), property); -} - -// Get property by name -wxProperty *wxPropertySheet::GetProperty(const wxString& name) const -{ - wxNode *node = m_properties.Find((const wxChar*) name); - if (!node) - return NULL; - else - return (wxProperty *)node->Data(); -} - -bool wxPropertySheet::SetProperty(const wxString& name, const wxPropertyValue& value) -{ - wxProperty* prop = GetProperty(name); - if(prop){ - prop->SetValue(value); - return TRUE; - }else{ - return FALSE; - } -} - -void wxPropertySheet::RemoveProperty(const wxString& name) -{ - wxNode *node = m_properties.Find(name); - if(node) - { - wxProperty *prop = (wxProperty *)node->Data(); - delete prop; - m_properties.DeleteNode(node); - } -} - -bool wxPropertySheet::HasProperty(const wxString& name) const -{ - return (GetProperty(name)?TRUE:FALSE); -} - -// Clear all properties -void wxPropertySheet::Clear(void) -{ - wxNode *node = m_properties.First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - wxNode *next = node->Next(); - delete prop; - delete node; - node = next; - } -} - -// Sets/clears the modified flag for each property value -void wxPropertySheet::SetAllModified(bool flag) -{ - wxNode *node = m_properties.First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - prop->GetValue().SetModified(flag); - node = node->Next(); - } -} - -/* - * Property validator registry - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxPropertyValidatorRegistry, wxHashTable) - -wxPropertyValidatorRegistry::wxPropertyValidatorRegistry(void):wxHashTable(wxKEY_STRING) -{ -} - -wxPropertyValidatorRegistry::~wxPropertyValidatorRegistry(void) -{ - ClearRegistry(); -} - -void wxPropertyValidatorRegistry::RegisterValidator(const wxString& typeName, wxPropertyValidator *validator) -{ - Put((const wxChar*) typeName, validator); -} - -wxPropertyValidator *wxPropertyValidatorRegistry::GetValidator(const wxString& typeName) -{ - return (wxPropertyValidator *)Get((const wxChar*) typeName); -} - -void wxPropertyValidatorRegistry::ClearRegistry(void) -{ - BeginFind(); - wxNode *node; - while ((node = Next())) - { - delete (wxPropertyValidator *)node->Data(); - } -} - - /* - * Property validator - */ - - -IMPLEMENT_ABSTRACT_CLASS(wxPropertyValidator, wxEvtHandler) - -wxPropertyValidator::wxPropertyValidator(long flags) -{ - m_validatorFlags = flags; - m_validatorProperty = NULL; -} - -wxPropertyValidator::~wxPropertyValidator(void) -{} - -bool wxPropertyValidator::StringToFloat (wxChar *s, float *number) { - double num; - bool ok = StringToDouble (s, &num); - *number = (float) num; - return ok; -} - -bool wxPropertyValidator::StringToDouble (wxChar *s, double *number) { - bool ok = TRUE; - wxChar *value_ptr; - *number = wxStrtod (s, &value_ptr); - if (value_ptr) { - int len = wxStrlen (value_ptr); - for (int i = 0; i < len; i++) { - ok = (wxIsspace (value_ptr[i]) != 0); - if (!ok) return FALSE; - } - } - return ok; -} - -bool wxPropertyValidator::StringToInt (wxChar *s, int *number) { - long num; - bool ok = StringToLong (s, &num); - *number = (int) num; - return ok; -} - -bool wxPropertyValidator::StringToLong (wxChar *s, long *number) { - bool ok = TRUE; - wxChar *value_ptr; - *number = wxStrtol (s, &value_ptr, 10); - if (value_ptr) { - int len = wxStrlen (value_ptr); - for (int i = 0; i < len; i++) { - ok = (wxIsspace (value_ptr[i]) != 0); - if (!ok) return FALSE; - } - } - return ok; -} - -wxChar *wxPropertyValidator::FloatToString (float number) { - static wxChar buf[20]; - wxSprintf (buf, _T("%.6g"), number); - return buf; -} - -wxChar *wxPropertyValidator::DoubleToString (double number) { - static wxChar buf[20]; - wxSprintf (buf, _T("%.6g"), number); - return buf; -} - -wxChar *wxPropertyValidator::IntToString (int number) { - return ::IntToString (number); -} - -wxChar *wxPropertyValidator::LongToString (long number) { - return ::LongToString (number); - } diff --git a/src/generic/propform.cpp b/src/generic/propform.cpp deleted file mode 100644 index bda34bb83a..0000000000 --- a/src/generic/propform.cpp +++ /dev/null @@ -1,751 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: propform.cpp -// Purpose: Property form classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "propform.h" -#endif - -// 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 -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) && !defined(__WXWINE__) -#include -#else -#include -#endif -#else -#include -#endif - -#include "wx/window.h" -#include "wx/utils.h" -#include "wx/list.h" -#include "wx/propform.h" - -/* - * Property view - */ - -IMPLEMENT_DYNAMIC_CLASS(wxPropertyFormView, wxPropertyView) - -BEGIN_EVENT_TABLE(wxPropertyFormView, wxPropertyView) - EVT_BUTTON(wxID_OK, wxPropertyFormView::OnOk) - EVT_BUTTON(wxID_CANCEL, wxPropertyFormView::OnCancel) - EVT_BUTTON(wxID_HELP, wxPropertyFormView::OnHelp) - EVT_BUTTON(wxID_PROP_REVERT, wxPropertyFormView::OnRevert) - EVT_BUTTON(wxID_PROP_UPDATE, wxPropertyFormView::OnUpdate) -END_EVENT_TABLE() - -bool wxPropertyFormView::sm_dialogCancelled = FALSE; - -wxPropertyFormView::wxPropertyFormView(wxWindow *propPanel, long flags):wxPropertyView(flags) -{ - m_propertyWindow = propPanel; - m_managedWindow = NULL; - - m_windowCloseButton = NULL; - m_windowCancelButton = NULL; - m_windowHelpButton = NULL; - - m_detailedEditing = FALSE; -} - -wxPropertyFormView::~wxPropertyFormView(void) -{ -} - -void wxPropertyFormView::ShowView(wxPropertySheet *ps, wxWindow *panel) -{ - m_propertySheet = ps; - - AssociatePanel(panel); -// CreateControls(); -// UpdatePropertyList(); -} - -// Update this view of the viewed object, called e.g. by -// the object itself. -bool wxPropertyFormView::OnUpdateView(void) -{ - return TRUE; -} - -bool wxPropertyFormView::Check(void) -{ - if (!m_propertySheet) - return FALSE; - - wxNode *node = m_propertySheet->GetProperties().First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - wxPropertyValidator *validator = FindPropertyValidator(prop); - if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator))) - { - wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator; - if (!formValidator->OnCheckValue(prop, this, m_propertyWindow)) - return FALSE; - } - node = node->Next(); - } - return TRUE; -} - -bool wxPropertyFormView::TransferToPropertySheet(void) -{ - if (!m_propertySheet) - return FALSE; - - wxNode *node = m_propertySheet->GetProperties().First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - wxPropertyValidator *validator = FindPropertyValidator(prop); - if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator))) - { - wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator; - formValidator->OnRetrieveValue(prop, this, m_propertyWindow); - } - node = node->Next(); - } - return TRUE; -} - -bool wxPropertyFormView::TransferToDialog(void) -{ - if (!m_propertySheet) - return FALSE; - - wxNode *node = m_propertySheet->GetProperties().First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - wxPropertyValidator *validator = FindPropertyValidator(prop); - if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator))) - { - wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator; - formValidator->OnDisplayValue(prop, this, m_propertyWindow); - } - node = node->Next(); - } - return TRUE; -} - -bool wxPropertyFormView::AssociateNames(void) -{ - if (!m_propertySheet || !m_propertyWindow) - return FALSE; - - wxNode *node = m_propertyWindow->GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win->GetName() != "") - { - wxProperty *prop = m_propertySheet->GetProperty(win->GetName()); - if (prop) - prop->SetWindow(win); - } - node = node->Next(); - } - return TRUE; -} - - -bool wxPropertyFormView::OnClose(void) -{ - delete this; - return TRUE; -} - -void wxPropertyFormView::OnOk(wxCommandEvent& WXUNUSED(event)) -{ - // Retrieve the value if any - if (!Check()) - return; - - sm_dialogCancelled = FALSE; - TransferToPropertySheet(); - - m_managedWindow->Close(TRUE); -} - -void wxPropertyFormView::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - sm_dialogCancelled = TRUE; - - m_managedWindow->Close(TRUE); -} - -void wxPropertyFormView::OnHelp(wxCommandEvent& WXUNUSED(event)) -{ -} - -void wxPropertyFormView::OnUpdate(wxCommandEvent& WXUNUSED(event)) -{ - if (Check()) - TransferToPropertySheet(); -} - -void wxPropertyFormView::OnRevert(wxCommandEvent& WXUNUSED(event)) -{ - TransferToDialog(); -} - -void wxPropertyFormView::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if (!m_propertySheet) - return; - - if (win.GetName() == "") - return; - - if (wxStrcmp(win.GetName(), _T("ok")) == 0) - OnOk(event); - else if (wxStrcmp(win.GetName(), _T("cancel")) == 0) - OnCancel(event); - else if (wxStrcmp(win.GetName(), _T("help")) == 0) - OnHelp(event); - else if (wxStrcmp(win.GetName(), _T("update")) == 0) - OnUpdate(event); - else if (wxStrcmp(win.GetName(), _T("revert")) == 0) - OnRevert(event); - else - { - // Find a validator to route the command to. - wxNode *node = m_propertySheet->GetProperties().First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - if (prop->GetWindow() && (prop->GetWindow() == &win)) - { - wxPropertyValidator *validator = FindPropertyValidator(prop); - if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator))) - { - wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator; - formValidator->OnCommand(prop, this, m_propertyWindow, event); - return; - } - } - node = node->Next(); - } - } -} - -void wxPropertyFormView::OnDoubleClick(wxControl *item) -{ - if (!m_propertySheet) - return; - - // Find a validator to route the command to. - wxNode *node = m_propertySheet->GetProperties().First(); - while (node) - { - wxProperty *prop = (wxProperty *)node->Data(); - if (prop->GetWindow() && ((wxControl *)prop->GetWindow() == item)) - { - wxPropertyValidator *validator = FindPropertyValidator(prop); - if (validator && validator->IsKindOf(CLASSINFO(wxPropertyFormValidator))) - { - wxPropertyFormValidator *formValidator = (wxPropertyFormValidator *)validator; - formValidator->OnDoubleClick(prop, this, m_propertyWindow); - return; - } - } - node = node->Next(); - } -} - -/* - * Property form dialog box - */ - -IMPLEMENT_CLASS(wxPropertyFormDialog, wxDialog) - -BEGIN_EVENT_TABLE(wxPropertyFormDialog, wxDialog) - EVT_CLOSE(wxPropertyFormDialog::OnCloseWindow) -END_EVENT_TABLE() - -wxPropertyFormDialog::wxPropertyFormDialog(wxPropertyFormView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, long style, const wxString& name): - wxDialog(parent, -1, title, pos, size, style, name) -{ - m_view = v; - m_view->AssociatePanel(this); - m_view->SetManagedWindow(this); -// SetAutoLayout(TRUE); -} - -void wxPropertyFormDialog::OnCloseWindow(wxCloseEvent& event) -{ - if (m_view) - { - m_view->OnClose(); - m_view = NULL; - this->Destroy(); - } - else - event.Veto(); -} - -void wxPropertyFormDialog::OnDefaultAction(wxControl *item) -{ - m_view->OnDoubleClick(item); -} - -void wxPropertyFormDialog::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if ( m_view ) - m_view->OnCommand(win, event); -} - -// Extend event processing to search the view's event table -bool wxPropertyFormDialog::ProcessEvent(wxEvent& event) -{ - if ( !m_view || ! m_view->ProcessEvent(event) ) - return wxEvtHandler::ProcessEvent(event); - else - return TRUE; -} - - -/* - * Property form panel - */ - -IMPLEMENT_CLASS(wxPropertyFormPanel, wxPanel) - -void wxPropertyFormPanel::OnDefaultAction(wxControl *item) -{ - m_view->OnDoubleClick(item); -} - -void wxPropertyFormPanel::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - m_view->OnCommand(win, event); -} - -// Extend event processing to search the view's event table -bool wxPropertyFormPanel::ProcessEvent(wxEvent& event) -{ - if ( !m_view || ! m_view->ProcessEvent(event) ) - return wxEvtHandler::ProcessEvent(event); - else - return TRUE; -} - -/* - * Property frame - */ - -IMPLEMENT_CLASS(wxPropertyFormFrame, wxFrame) - -BEGIN_EVENT_TABLE(wxPropertyFormFrame, wxFrame) - EVT_CLOSE(wxPropertyFormFrame::OnCloseWindow) -END_EVENT_TABLE() - -void wxPropertyFormFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_view && m_view->OnClose()) - this->Destroy(); - else - event.Veto(); -} - -wxPanel *wxPropertyFormFrame::OnCreatePanel(wxFrame *parent, wxPropertyFormView *v) -{ - return new wxPropertyFormPanel(v, parent); -} - -bool wxPropertyFormFrame::Initialize(void) -{ - m_propertyPanel = OnCreatePanel(this, m_view); - if (m_propertyPanel) - { - m_view->AssociatePanel(m_propertyPanel); - m_view->SetManagedWindow(this); - return TRUE; - } - else - return FALSE; -} - - /* - * Property form specific validator - */ - -IMPLEMENT_ABSTRACT_CLASS(wxPropertyFormValidator, wxPropertyValidator) - - -/* - * Default validators - */ - -IMPLEMENT_DYNAMIC_CLASS(wxRealFormValidator, wxPropertyFormValidator) - -/// -/// Real number form validator -/// -bool wxRealFormValidator::OnCheckValue( wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *parentWindow) -{ - if (m_realMin == 0.0 && m_realMax == 0.0) - return TRUE; - - // The item used for viewing the real number: should be a text item. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - return FALSE; - - wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue()); - - float val = 0.0; - if (!StringToFloat(WXSTRINGCAST value, &val)) - { - wxChar buf[200]; - wxSprintf(buf, _T("Value %s is not a valid real number!"), (const wxChar *)value); - wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - - if (val < m_realMin || val > m_realMax) - { - wxChar buf[200]; - wxSprintf(buf, _T("Value must be a real number between %.2f and %.2f!"), m_realMin, m_realMax); - wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - return TRUE; -} - -bool wxRealFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) -{ - // The item used for viewing the real number: should be a text item. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - return FALSE; - - wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue()); - - if (value.Length() == 0) - return FALSE; - - float f = (float)wxAtof((const wxChar *)value); - property->GetValue() = f; - return TRUE; -} - -bool wxRealFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) -{ - // The item used for viewing the real number: should be a text item. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - return FALSE; - - wxTextCtrl *textItem = (wxTextCtrl *)m_propertyWindow; - textItem->SetValue(FloatToString(property->GetValue().RealValue())); - return TRUE; -} - -/// -/// Integer validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxIntegerFormValidator, wxPropertyFormValidator) - -bool wxIntegerFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *parentWindow) -{ - if (m_integerMin == 0.0 && m_integerMax == 0.0) - return TRUE; - - // The item used for viewing the real number: should be a text item or a slider - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow) - return FALSE; - - long val = 0; - - if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - { - wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue()); - - if (!StringToLong(WXSTRINGCAST value, &val)) - { - wxChar buf[200]; - wxSprintf(buf, _T("Value %s is not a valid integer!"), (const wxChar *)value); - wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider))) - { - val = (long)((wxSlider *)m_propertyWindow)->GetValue(); - } - else - return FALSE; - - if (val < m_integerMin || val > m_integerMax) - { - char buf[200]; - sprintf(buf, "Value must be an integer between %ld and %ld!", m_integerMin, m_integerMax); - wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - return TRUE; -} - -bool wxIntegerFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow)) -{ - // The item used for viewing the real number: should be a text item or a slider - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow) - return FALSE; - - if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - { - wxString value(((wxTextCtrl *)m_propertyWindow)->GetValue()); - - if (value.Length() == 0) - return FALSE; - - long i = wxAtol((const wxChar *)value); - property->GetValue() = i; - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider))) - { - property->GetValue() = (long)((wxSlider *)m_propertyWindow)->GetValue(); - } - else - return FALSE; - - return TRUE; -} - -bool wxIntegerFormValidator::OnDisplayValue( wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow)) -{ - // The item used for viewing the real number: should be a text item or a slider - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow) - return FALSE; - - if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - { - wxTextCtrl *textItem = (wxTextCtrl *)m_propertyWindow; - textItem->SetValue(LongToString(property->GetValue().IntegerValue())); - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxSlider))) - { - ((wxSlider *)m_propertyWindow)->SetValue((int)property->GetValue().IntegerValue()); - } - else - return FALSE; - return TRUE; -} - -/// -/// Boolean validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxBoolFormValidator, wxPropertyFormValidator) - -bool wxBoolFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow)) -{ - // The item used for viewing the boolean: should be a checkbox - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxCheckBox))) - return FALSE; - - return TRUE; -} - -bool wxBoolFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) -{ - // The item used for viewing the boolean: should be a checkbox. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxCheckBox))) - return FALSE; - - wxCheckBox *checkBox = (wxCheckBox *)m_propertyWindow; - - property->GetValue() = (bool)checkBox->GetValue(); - return TRUE; -} - -bool wxBoolFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow)) -{ - // The item used for viewing the boolean: should be a checkbox. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow || !m_propertyWindow->IsKindOf(CLASSINFO(wxCheckBox))) - return FALSE; - - wxCheckBox *checkBox = (wxCheckBox *)m_propertyWindow; - checkBox->SetValue((bool)property->GetValue().BoolValue()); - return TRUE; -} - -/// -/// String validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxStringFormValidator, wxPropertyFormValidator) - -wxStringFormValidator::wxStringFormValidator(wxStringList *list, long flags): - wxPropertyFormValidator(flags) -{ - m_strings = list; -} - -bool wxStringFormValidator::OnCheckValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *parentWindow ) -{ - if (!m_strings) - return TRUE; - - // The item used for viewing the string: should be a text item, choice item or listbox. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow) - return FALSE; - if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - { - wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow; - if (!m_strings->Member(text->GetValue())) - { - wxString s("Value "); - s += text->GetValue(); - s += " is not valid."; - wxMessageBox(s, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - } - else - { - // Any other item constrains the string value, - // so we don't have to check it. - } - return TRUE; -} - -bool wxStringFormValidator::OnRetrieveValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) -{ - // The item used for viewing the string: should be a text item, choice item or listbox. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow) - return FALSE; - if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - { - wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow; - property->GetValue() = text->GetValue(); - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxListBox))) - { - wxListBox *lbox = (wxListBox *)m_propertyWindow; - if (lbox->GetSelection() > -1) - property->GetValue() = lbox->GetStringSelection(); - } -/* - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxRadioBox))) - { - wxRadioBox *rbox = (wxRadioBox *)m_propertyWindow; - int n = 0; - if ((n = rbox->GetSelection()) > -1) - property->GetValue() = rbox->GetString(n); - } -*/ - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxChoice))) - { - wxChoice *choice = (wxChoice *)m_propertyWindow; - if (choice->GetSelection() > -1) - property->GetValue() = choice->GetStringSelection(); - } - else - return FALSE; - return TRUE; -} - -bool wxStringFormValidator::OnDisplayValue(wxProperty *property, wxPropertyFormView *WXUNUSED(view), - wxWindow *WXUNUSED(parentWindow) ) -{ - // The item used for viewing the string: should be a text item, choice item or listbox. - wxWindow *m_propertyWindow = property->GetWindow(); - if (!m_propertyWindow) - return FALSE; - if (m_propertyWindow->IsKindOf(CLASSINFO(wxTextCtrl))) - { - wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow; - text->SetValue(property->GetValue().StringValue()); - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxListBox))) - { - wxListBox *lbox = (wxListBox *)m_propertyWindow; - if (lbox->Number() == 0 && m_strings) - { - // Try to initialize the listbox from 'strings' - wxNode *node = m_strings->First(); - while (node) - { - char *s = (char *)node->Data(); - lbox->Append(s); - node = node->Next(); - } - } - lbox->SetStringSelection(property->GetValue().StringValue()); - } -/* - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxRadioBox))) - { - wxRadioBox *rbox = (wxRadioBox *)m_propertyWindow; - rbox->SetStringSelection(property->GetValue().StringValue()); - } -*/ - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxChoice))) - { - wxChoice *choice = (wxChoice *)m_propertyWindow; -#ifndef __XVIEW__ - if (choice->Number() == 0 && m_strings) - { - // Try to initialize the choice item from 'strings' - // XView doesn't allow this kind of thing. - wxNode *node = m_strings->First(); - while (node) - { - char *s = (char *)node->Data(); - choice->Append(s); - node = node->Next(); - } - } -#endif - choice->SetStringSelection(property->GetValue().StringValue()); - } - else - return FALSE; - return TRUE; -} - diff --git a/src/generic/proplist.cpp b/src/generic/proplist.cpp deleted file mode 100644 index c571468482..0000000000 --- a/src/generic/proplist.cpp +++ /dev/null @@ -1,1965 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: proplist.cpp -// Purpose: Property list classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "proplist.h" -#endif - -// 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 -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) && !defined(__WXWINE__) -#include -#else -#include -#endif -#else -#include -#endif - -#include "wx/window.h" -#include "wx/utils.h" -#include "wx/list.h" -#include "wx/colordlg.h" -#include "wx/proplist.h" - -/* - * Property text edit control - */ - -IMPLEMENT_CLASS(wxPropertyTextEdit, wxTextCtrl) - -wxPropertyTextEdit::wxPropertyTextEdit(wxPropertyListView *v, wxWindow *parent, - const wxWindowID id, const wxString& value, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name): - wxTextCtrl(parent, id, value, pos, size, style, wxDefaultValidator, name) -{ - m_view = v; -} - -void wxPropertyTextEdit::OnSetFocus(void) -{ -} - -void wxPropertyTextEdit::OnKillFocus(void) -{ -} - -/* - * Property list view - */ - -IMPLEMENT_DYNAMIC_CLASS(wxPropertyListView, wxPropertyView) - -BEGIN_EVENT_TABLE(wxPropertyListView, wxPropertyView) - EVT_BUTTON(wxID_OK, wxPropertyListView::OnOk) - EVT_BUTTON(wxID_CANCEL, wxPropertyListView::OnCancel) - EVT_BUTTON(wxID_HELP, wxPropertyListView::OnHelp) - EVT_BUTTON(wxID_PROP_CROSS, wxPropertyListView::OnCross) - EVT_BUTTON(wxID_PROP_CHECK, wxPropertyListView::OnCheck) - EVT_BUTTON(wxID_PROP_EDIT, wxPropertyListView::OnEdit) - EVT_TEXT_ENTER(wxID_PROP_TEXT, wxPropertyListView::OnText) - EVT_LISTBOX(wxID_PROP_SELECT, wxPropertyListView::OnPropertySelect) - EVT_COMMAND(wxID_PROP_SELECT, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, - wxPropertyListView::OnPropertyDoubleClick) - EVT_LISTBOX(wxID_PROP_VALUE_SELECT, wxPropertyListView::OnValueListSelect) -END_EVENT_TABLE() - -bool wxPropertyListView::sm_dialogCancelled = FALSE; -wxBitmap *wxPropertyListView::sm_tickBitmap = NULL; -wxBitmap *wxPropertyListView::sm_crossBitmap = NULL; - -wxPropertyListView::wxPropertyListView(wxPanel *propPanel, long flags):wxPropertyView(flags) -{ - m_propertyScrollingList = NULL; - m_valueList = NULL; - m_valueText = NULL; - m_editButton = NULL; - m_confirmButton = NULL; - m_cancelButton = NULL; - m_propertyWindow = propPanel; - m_managedWindow = NULL; - - m_windowCloseButton = NULL; - m_windowCancelButton = NULL; - m_windowHelpButton = NULL; - - m_detailedEditing = FALSE; -} - -wxPropertyListView::~wxPropertyListView(void) -{ -/* - if (m_tickBitmap) - delete m_tickBitmap; - if (m_crossBitmap) - delete m_crossBitmap; -*/ -} - -void wxPropertyListView::ShowView(wxPropertySheet *ps, wxPanel *panel) -{ - m_propertySheet = ps; - - AssociatePanel(panel); - CreateControls(); - - UpdatePropertyList(); - panel->Layout(); -} - -// Update this view of the viewed object, called e.g. by -// the object itself. -bool wxPropertyListView::OnUpdateView(void) -{ - return TRUE; -} - -bool wxPropertyListView::UpdatePropertyList(bool clearEditArea) -{ - if (!m_propertyScrollingList || !m_propertySheet) - return FALSE; - - m_propertyScrollingList->Clear(); - if (clearEditArea) - { - m_valueList->Clear(); - m_valueText->SetValue(""); - } - wxNode *node = m_propertySheet->GetProperties().First(); - - // Should sort them... later... - while (node) - { - wxProperty *property = (wxProperty *)node->Data(); - wxString stringValueRepr(property->GetValue().GetStringRepresentation()); - wxString paddedString(MakeNameValueString(property->GetName(), stringValueRepr)); - - m_propertyScrollingList->Append(paddedString.GetData(), (char *)property); - node = node->Next(); - } - return TRUE; -} - -bool wxPropertyListView::UpdatePropertyDisplayInList(wxProperty *property) -{ - if (!m_propertyScrollingList || !m_propertySheet) - return FALSE; - -#ifdef __WXMSW__ - int currentlySelected = m_propertyScrollingList->GetSelection(); -#endif -// #ifdef __WXMSW__ - wxString stringValueRepr(property->GetValue().GetStringRepresentation()); - wxString paddedString(MakeNameValueString(property->GetName(), stringValueRepr)); - int sel = FindListIndexForProperty(property); - - if (sel > -1) - { - // Don't update the listbox unnecessarily because it can cause - // ugly flashing. - - if (paddedString != m_propertyScrollingList->GetString(sel)) - m_propertyScrollingList->SetString(sel, paddedString.GetData()); - } -//#else -// UpdatePropertyList(FALSE); -//#endif - - // TODO: why is this necessary? -#ifdef __WXMSW__ - if (currentlySelected > -1) - m_propertyScrollingList->SetSelection(currentlySelected); -#endif - - return TRUE; -} - -// Find the wxListBox index corresponding to this property -int wxPropertyListView::FindListIndexForProperty(wxProperty *property) -{ - int n = m_propertyScrollingList->Number(); - for (int i = 0; i < n; i++) - { - if (property == (wxProperty *)m_propertyScrollingList->wxListBox::GetClientData(i)) - return i; - } - return -1; -} - -wxString wxPropertyListView::MakeNameValueString(wxString name, wxString value) -{ - wxString theString(name); - - int nameWidth = 25; - int padWith = nameWidth - theString.Length(); - if (padWith < 0) - padWith = 0; - - if (GetFlags() & wxPROP_SHOWVALUES) - { - // Want to pad with spaces - theString.Append(' ', padWith); - theString += value; - } - - return theString; -} - -// Select and show string representation in validator the given -// property. NULL resets to show no property. -bool wxPropertyListView::ShowProperty(wxProperty *property, bool select) -{ - if (m_currentProperty) - { - EndShowingProperty(m_currentProperty); - m_currentProperty = NULL; - } - - m_valueList->Clear(); - m_valueText->SetValue(""); - - if (property) - { - m_currentProperty = property; - BeginShowingProperty(property); - } - if (select) - { - int sel = FindListIndexForProperty(property); - if (sel > -1) - m_propertyScrollingList->SetSelection(sel); - } - return TRUE; -} - -// Find appropriate validator and load property into value controls -bool wxPropertyListView::BeginShowingProperty(wxProperty *property) -{ - m_currentValidator = FindPropertyValidator(property); - if (!m_currentValidator) - return FALSE; - - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return FALSE; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - listValidator->OnPrepareControls(property, this, m_propertyWindow); - DisplayProperty(property); - return TRUE; -} - -// Find appropriate validator and unload property from value controls -bool wxPropertyListView::EndShowingProperty(wxProperty *property) -{ - if (!m_currentValidator) - return FALSE; - - RetrieveProperty(property); - - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return FALSE; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - listValidator->OnClearControls(property, this, m_propertyWindow); - if (m_detailedEditing) - { - listValidator->OnClearDetailControls(property, this, m_propertyWindow); - m_detailedEditing = FALSE; - } - return TRUE; -} - -void wxPropertyListView::BeginDetailedEditing(void) -{ - if (!m_currentValidator) - return; - if (!m_currentProperty) - return; - if (m_detailedEditing) - return; - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return; - if (!m_currentProperty->IsEnabled()) - return; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - if (listValidator->OnPrepareDetailControls(m_currentProperty, this, m_propertyWindow)) - m_detailedEditing = TRUE; -} - -void wxPropertyListView::EndDetailedEditing(void) -{ - if (!m_currentValidator) - return; - if (!m_currentProperty) - return; - - RetrieveProperty(m_currentProperty); - - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - if (m_detailedEditing) - { - listValidator->OnClearDetailControls(m_currentProperty, this, m_propertyWindow); - m_detailedEditing = FALSE; - } -} - -bool wxPropertyListView::DisplayProperty(wxProperty *property) -{ - if (!m_currentValidator) - return FALSE; - - if (((m_currentValidator->GetFlags() & wxPROP_ALLOW_TEXT_EDITING) == 0) || !property->IsEnabled()) - m_valueText->SetEditable(FALSE); - else - m_valueText->SetEditable(TRUE); - - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return FALSE; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - listValidator->OnDisplayValue(property, this, m_propertyWindow); - return TRUE; -} - -bool wxPropertyListView::RetrieveProperty(wxProperty *property) -{ - if (!m_currentValidator) - return FALSE; - if (!property->IsEnabled()) - return FALSE; - - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return FALSE; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - if (listValidator->OnCheckValue(property, this, m_propertyWindow)) - { - if (listValidator->OnRetrieveValue(property, this, m_propertyWindow)) - { - UpdatePropertyDisplayInList(property); - OnPropertyChanged(property); - } - } - else - { - // Revert to old value - listValidator->OnDisplayValue(property, this, m_propertyWindow); - } - return TRUE; -} - - -bool wxPropertyListView::EditProperty(wxProperty *WXUNUSED(property)) -{ - return TRUE; -} - -// Called by the listbox callback -void wxPropertyListView::OnPropertySelect(wxCommandEvent& WXUNUSED(event)) -{ - int sel = m_propertyScrollingList->GetSelection(); - if (sel > -1) - { - wxProperty *newSel = (wxProperty *)m_propertyScrollingList->wxListBox::GetClientData(sel); - if (newSel && newSel != m_currentProperty) - { - ShowProperty(newSel, FALSE); - } - } -} - -bool wxPropertyListView::CreateControls(void) -{ - wxPanel *panel = (wxPanel *)m_propertyWindow; - - int largeButtonWidth = 60; - int largeButtonHeight = 25; - - int smallButtonWidth = 25; - int smallButtonHeight = 20; - - // XView must be allowed to choose its own sized buttons -#ifdef __XVIEW__ - largeButtonWidth = -1; - largeButtonHeight = -1; - - smallButtonWidth = -1; - smallButtonHeight = -1; -#endif - - if (m_valueText) - return TRUE; - - if (!panel) - return FALSE; - - wxWindow *leftMostWindow = panel; -/* - wxWindow *topMostWindow = panel; - wxWindow *rightMostWindow = panel; -*/ - - wxSystemSettings settings; - wxFont guiFont = settings.GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - -#ifdef __WXMSW__ - wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxMODERN, wxNORMAL, wxNORMAL, FALSE, "Courier New"); -#else - wxFont *boringFont = wxTheFontList->FindOrCreateFont(guiFont.GetPointSize(), wxTELETYPE, wxNORMAL, wxNORMAL); -#endif - - // May need to be changed in future to eliminate clashes with app. - // WHAT WAS THIS FOR? -// panel->SetClientData((char *)this); - - // These buttons are at the bottom of the window, but create them now - // so the constraints are evaluated in the correct order - if (m_buttonFlags & wxPROP_BUTTON_OK) - { - m_windowCloseButton = new wxButton(panel, wxID_OK, "OK", - wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - m_windowCloseButton->SetDefault(); - m_windowCloseButton->SetFocus(); - } - else if (m_buttonFlags & wxPROP_BUTTON_CLOSE) - { - m_windowCloseButton = new wxButton(panel, wxID_OK, "Close", - wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - } - if (m_buttonFlags & wxPROP_BUTTON_CANCEL) - { - m_windowCancelButton = new wxButton(panel, wxID_CANCEL, "Cancel", - wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - } - if (m_buttonFlags & wxPROP_BUTTON_HELP) - { - m_windowHelpButton = new wxButton(panel, wxID_HELP, "Help", - wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - } - - if (m_windowCloseButton) - { - wxLayoutConstraints *c1 = new wxLayoutConstraints; - - c1->left.SameAs (panel, wxLeft, 2); - c1->bottom.SameAs (panel, wxBottom, 2); - c1->width.AsIs(); - c1->height.AsIs(); - m_windowCloseButton->SetConstraints(c1); - leftMostWindow = m_windowCloseButton; - } - if (m_windowCancelButton) - { - wxLayoutConstraints *c2 = new wxLayoutConstraints; - - c2->right.SameAs (panel, wxRight, 2); - c2->bottom.SameAs (panel, wxBottom, 2); - c2->width.AsIs(); - c2->height.AsIs(); - m_windowCancelButton->SetConstraints(c2); - leftMostWindow = m_windowCancelButton; - } - if (m_windowHelpButton) - { - wxLayoutConstraints *c2 = new wxLayoutConstraints; - if (leftMostWindow == panel) - c2->left.SameAs (panel, wxLeft, 2); - else - c2->left.RightOf (leftMostWindow, 2); - - c2->bottom.SameAs (panel, wxBottom, 2); - c2->width.AsIs(); - c2->height.AsIs(); - m_windowHelpButton->SetConstraints(c2); - leftMostWindow = m_windowHelpButton; - } - - if (m_buttonFlags & wxPROP_BUTTON_CHECK_CROSS) - { -/* - if (!tickBitmap) - { -#ifdef __WXMSW__ - tickBitmap = new wxBitmap("tick_bmp", wxBITMAP_TYPE_RESOURCE); - crossBitmap = new wxBitmap("cross_bmp", wxBITMAP_TYPE_RESOURCE); - if (!tickBitmap || !crossBitmap || !tickBitmap->Ok() || !crossBitmap->Ok()) - { - if (tickBitmap) - delete tickBitmap; - if (crossBitmap) - delete crossBitmap; - tickBitmap = NULL; - crossBitmap = NULL; - } -#endif - } -*/ -/* - if (tickBitmap && crossBitmap) - { - m_confirmButton = new wxBitmapButton(panel, wxID_PROP_CHECK, tickBitmap, - wxPoint(-1, -1), wxSize(smallButtonWidth-5, smallButtonHeight-5)); - m_cancelButton = new wxBitmapButton(panel, wxID_PROP_CROSS, crossBitmap, - wxPoint(-1, -1), wxSize(smallButtonWidth-5, smallButtonHeight-5)); - } - else -*/ - { - m_confirmButton = new wxButton(panel, wxID_PROP_CHECK, ":-)", - wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight)); - m_cancelButton = new wxButton(panel, wxID_PROP_CROSS, "X", - wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight)); - } - - wxLayoutConstraints *c = new wxLayoutConstraints; - c->left.SameAs (panel, wxLeft, 2); -/* - if (windowCloseButton) - c->top.Below (m_windowCloseButton, 2); - else -*/ - c->top.SameAs (panel, wxTop, 2); - - c->width.AsIs(); - c->height.AsIs(); - - m_cancelButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.RightOf (m_cancelButton, 2); - c->top.SameAs (m_cancelButton, wxTop, 0); - c->width.AsIs(); - c->height.AsIs(); - - m_confirmButton->SetConstraints(c); - - m_cancelButton->Enable(FALSE); - m_confirmButton->Enable(FALSE); - } - - if (m_buttonFlags & wxPROP_PULLDOWN) - { - m_editButton = new wxButton(panel, wxID_PROP_EDIT, "...", - wxPoint(-1, -1), wxSize(smallButtonWidth, smallButtonHeight)); - m_editButton->Enable(FALSE); - wxLayoutConstraints *c = new wxLayoutConstraints; - -/* - if (m_windowCloseButton) - c->top.Below (m_windowCloseButton, 2); - else -*/ - c->top.SameAs (panel, wxTop, 2); - - c->right.SameAs (panel, wxRight, 2); - c->width.AsIs(); - c->height.AsIs(); - m_editButton->SetConstraints(c); - } - - m_valueText = new wxPropertyTextEdit(this, panel, wxID_PROP_TEXT, "", wxPoint(-1, -1), wxSize(-1, -1), wxPROCESS_ENTER); - m_valueText->Enable(FALSE); - - wxLayoutConstraints *c = new wxLayoutConstraints; - - if (m_cancelButton) - c->left.RightOf (m_confirmButton, 2); - else - c->left.SameAs (panel, wxLeft, 2); -/* - if (m_windowCloseButton) - c->top.Below (m_windowCloseButton, 2); - else -*/ - c->top.SameAs (panel, wxTop, 2); - - if (m_editButton) - c->right.LeftOf (m_editButton, 2); - else - c->right.SameAs (panel, wxRight, 2); - c->height.AsIs(); - - m_valueText->SetConstraints(c); - - m_valueList = new wxListBox(panel, wxID_PROP_VALUE_SELECT, wxPoint(-1, -1), wxSize(-1, 60)); - m_valueList->Show(FALSE); - - c = new wxLayoutConstraints; - - c->left.SameAs (panel, wxLeft, 2); - c->top.Below (m_valueText, 2); - c->right.SameAs (panel, wxRight, 2); - c->height.Absolute(60); - - m_valueList->SetConstraints(c); - - m_propertyScrollingList = new wxListBox(panel, wxID_PROP_SELECT, - wxPoint(-1, -1), wxSize(300, 300)); - m_propertyScrollingList->SetFont(* boringFont); - - c = new wxLayoutConstraints; - - c->left.SameAs (panel, wxLeft, 2); - - if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD) - c->top.Below (m_valueText, 2); - else - c->top.Below (m_valueList, 2); - - c->right.SameAs (panel, wxRight, 2); - - if (m_windowCloseButton) - c->bottom.Above (m_windowCloseButton, -2); - else - c->bottom.SameAs (panel, wxBottom, 2); - - m_propertyScrollingList->SetConstraints(c); - - // Note: if this is called now, it causes a GPF. - // Why? -// panel->Layout(); - - return TRUE; -} - -void wxPropertyListView::ShowTextControl(bool show) -{ - if (m_valueText) - m_valueText->Show(show); -} - -void wxPropertyListView::ShowListBoxControl(bool show) -{ - if (m_valueList) - { - m_valueList->Show(show); - if (m_buttonFlags & wxPROP_DYNAMIC_VALUE_FIELD) - { - wxLayoutConstraints *constraints = m_propertyScrollingList->GetConstraints(); - if (constraints) - { - if (show) - { - constraints->top.Below(m_valueList, 2); - // Maintain back-pointer so when valueList is deleted, - // any reference to it from this window is removed. - m_valueList->AddConstraintReference(m_propertyScrollingList); - } - else - { - constraints->top.Below(m_valueText, 2); - m_valueText->AddConstraintReference(m_propertyScrollingList); - } - m_propertyWindow->Layout(); - } - } - } -} - -void wxPropertyListView::EnableCheck(bool show) -{ - if (m_confirmButton) - m_confirmButton->Enable(show); -} - -void wxPropertyListView::EnableCross(bool show) -{ - if (m_cancelButton) - m_cancelButton->Enable(show); -} - -bool wxPropertyListView::OnClose(void) -{ - // Retrieve the value if any - wxCommandEvent event; - OnCheck(event); - - delete this; - return TRUE; -} - -void wxPropertyListView::OnValueListSelect(wxCommandEvent& WXUNUSED(event)) -{ - if (m_currentProperty && m_currentValidator) - { - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - listValidator->OnValueListSelect(m_currentProperty, this, m_propertyWindow); - } -} - -void wxPropertyListView::OnOk(wxCommandEvent& event) -{ - // Retrieve the value if any - OnCheck(event); - - m_managedWindow->Close(TRUE); -} - -void wxPropertyListView::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ -// SetReturnCode(wxID_CANCEL); - m_managedWindow->Close(TRUE); - sm_dialogCancelled = TRUE; -} - -void wxPropertyListView::OnHelp(wxCommandEvent& WXUNUSED(event)) -{ -} - -void wxPropertyListView::OnCheck(wxCommandEvent& WXUNUSED(event)) -{ - if (m_currentProperty) - { - RetrieveProperty(m_currentProperty); - } -} - -void wxPropertyListView::OnCross(wxCommandEvent& WXUNUSED(event)) -{ - if (m_currentProperty && m_currentValidator) - { - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - // Revert to old value - listValidator->OnDisplayValue(m_currentProperty, this, m_propertyWindow); - } -} - -void wxPropertyListView::OnPropertyDoubleClick(wxCommandEvent& WXUNUSED(event)) -{ - if (m_currentProperty && m_currentValidator) - { - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - // Revert to old value - listValidator->OnDoubleClick(m_currentProperty, this, m_propertyWindow); - } -} - -void wxPropertyListView::OnEdit(wxCommandEvent& WXUNUSED(event)) -{ - if (m_currentProperty && m_currentValidator) - { - if (!m_currentValidator->IsKindOf(CLASSINFO(wxPropertyListValidator))) - return; - - wxPropertyListValidator *listValidator = (wxPropertyListValidator *)m_currentValidator; - - listValidator->OnEdit(m_currentProperty, this, m_propertyWindow); - } -} - -void wxPropertyListView::OnText(wxCommandEvent& event) -{ - if (event.GetEventType() == wxEVT_COMMAND_TEXT_ENTER) - { - OnCheck(event); - } -} - -/* - * Property dialog box - */ - -IMPLEMENT_CLASS(wxPropertyListDialog, wxDialog) - -BEGIN_EVENT_TABLE(wxPropertyListDialog, wxDialog) - EVT_BUTTON(wxID_CANCEL, wxPropertyListDialog::OnCancel) - EVT_CLOSE(wxPropertyListDialog::OnCloseWindow) -END_EVENT_TABLE() - -wxPropertyListDialog::wxPropertyListDialog(wxPropertyListView *v, wxWindow *parent, - const wxString& title, const wxPoint& pos, - const wxSize& size, long style, const wxString& name): - wxDialog(parent, -1, title, pos, size, style, name) -{ - m_view = v; - m_view->AssociatePanel( ((wxPanel*)this) ); - m_view->SetManagedWindow(this); - SetAutoLayout(TRUE); -} - -void wxPropertyListDialog::OnCloseWindow(wxCloseEvent& event) -{ - if (m_view) - { - SetReturnCode(wxID_CANCEL); - m_view->OnClose(); - m_view = NULL; - this->Destroy(); - } - else - { - event.Veto(); - } -} - -void wxPropertyListDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - SetReturnCode(wxID_CANCEL); - this->Close(); -} - -void wxPropertyListDialog::OnDefaultAction(wxControl *WXUNUSED(item)) -{ -/* - if (item == m_view->GetPropertyScrollingList()) - view->OnDoubleClick(); -*/ -} - -// Extend event processing to search the view's event table -bool wxPropertyListDialog::ProcessEvent(wxEvent& event) -{ - if ( !m_view || ! m_view->ProcessEvent(event) ) - return wxEvtHandler::ProcessEvent(event); - else - return TRUE; -} - -/* - * Property panel - */ - -IMPLEMENT_CLASS(wxPropertyListPanel, wxPanel) - -BEGIN_EVENT_TABLE(wxPropertyListPanel, wxPanel) - EVT_SIZE(wxPropertyListPanel::OnSize) -END_EVENT_TABLE() - -wxPropertyListPanel::~wxPropertyListPanel() -{ -} - -void wxPropertyListPanel::OnDefaultAction(wxControl *WXUNUSED(item)) -{ -/* - if (item == view->GetPropertyScrollingList()) - view->OnDoubleClick(); -*/ -} - -// Extend event processing to search the view's event table -bool wxPropertyListPanel::ProcessEvent(wxEvent& event) -{ - if ( !m_view || ! m_view->ProcessEvent(event) ) - return wxEvtHandler::ProcessEvent(event); - else - return TRUE; -} - -void wxPropertyListPanel::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - Layout(); -} - -/* - * Property frame - */ - -IMPLEMENT_CLASS(wxPropertyListFrame, wxFrame) - -BEGIN_EVENT_TABLE(wxPropertyListFrame, wxFrame) - EVT_CLOSE(wxPropertyListFrame::OnCloseWindow) -END_EVENT_TABLE() - -void wxPropertyListFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (m_view) - { - if (m_propertyPanel) - m_propertyPanel->SetView(NULL); - m_view->OnClose(); - m_view = NULL; - this->Destroy(); - } - else - { - event.Veto(); - } -} - -wxPropertyListPanel *wxPropertyListFrame::OnCreatePanel(wxFrame *parent, wxPropertyListView *v) -{ - return new wxPropertyListPanel(v, parent); -} - -bool wxPropertyListFrame::Initialize(void) -{ - m_propertyPanel = OnCreatePanel(this, m_view); - if (m_propertyPanel) - { - m_view->AssociatePanel(m_propertyPanel); - m_view->SetManagedWindow(this); - m_propertyPanel->SetAutoLayout(TRUE); - return TRUE; - } - else - return FALSE; -} - - /* - * Property list specific validator - */ - -IMPLEMENT_ABSTRACT_CLASS(wxPropertyListValidator, wxPropertyValidator) - -bool wxPropertyListValidator::OnSelect(bool select, wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ -// view->GetValueText()->Show(TRUE); - if (select) - OnDisplayValue(property, view, parentWindow); - - return TRUE; -} - -bool wxPropertyListValidator::OnValueListSelect(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - wxString s(view->GetValueList()->GetStringSelection()); - if (s != "") - { - view->GetValueText()->SetValue(s); - view->RetrieveProperty(property); - } - return TRUE; -} - -bool wxPropertyListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ -// view->GetValueText()->Show(TRUE); - wxString str(property->GetValue().GetStringRepresentation()); - - view->GetValueText()->SetValue(str); - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxPropertyListValidator::OnRetrieveValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - return FALSE; -} - -void wxPropertyListValidator::OnEdit(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetDetailedEditing()) - view->EndDetailedEditing(); - else - view->BeginDetailedEditing(); -} - -bool wxPropertyListValidator::OnClearControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(FALSE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(FALSE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(FALSE); - return TRUE; -} - -/* - * Default validators - */ - -IMPLEMENT_DYNAMIC_CLASS(wxRealListValidator, wxPropertyListValidator) - -/// -/// Real number validator -/// -bool wxRealListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow) -{ - if (m_realMin == 0.0 && m_realMax == 0.0) - return TRUE; - - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - - float val = 0.0; - if (!StringToFloat(WXSTRINGCAST value, &val)) - { - wxChar buf[200]; - wxSprintf(buf, _T("Value %s is not a valid real number!"), value.GetData()); - wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - - if (val < m_realMin || val > m_realMax) - { - char buf[200]; - sprintf(buf, "Value must be a real number between %.2f and %.2f!", m_realMin, m_realMax); - wxMessageBox(buf, "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxRealListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - - if (wxStrlen(view->GetValueText()->GetValue()) == 0) - return FALSE; - - wxString value(view->GetValueText()->GetValue()); - float f = (float)wxAtof(value.GetData()); - property->GetValue() = f; - return TRUE; -} - -bool wxRealListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(TRUE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(TRUE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(FALSE); - if (view->GetValueText()) - view->GetValueText()->Enable(TRUE); - return TRUE; -} - -/// -/// Integer validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxIntegerListValidator, wxPropertyListValidator) - -bool wxIntegerListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow) -{ - if (m_integerMin == 0 && m_integerMax == 0) - return TRUE; - - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - - long val = 0; - if (!StringToLong(WXSTRINGCAST value, &val)) - { - wxChar buf[200]; - wxSprintf(buf, _T("Value %s is not a valid integer!"), value.GetData()); - wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - if (val < m_integerMin || val > m_integerMax) - { - wxChar buf[200]; - wxSprintf(buf, _T("Value must be an integer between %ld and %ld!"), m_integerMin, m_integerMax); - wxMessageBox(buf, _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxIntegerListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - - if (wxStrlen(view->GetValueText()->GetValue()) == 0) - return FALSE; - - wxString value(view->GetValueText()->GetValue()); - long val = (long)wxAtoi(value.GetData()); - property->GetValue() = (long)val; - return TRUE; -} - -bool wxIntegerListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(TRUE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(TRUE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(FALSE); - if (view->GetValueText()) - view->GetValueText()->Enable(TRUE); - return TRUE; -} - -/// -/// boolean validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxBoolListValidator, wxPropertyListValidator) - -bool wxBoolListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - if (value != _T("True") && value != _T("False")) - { - wxMessageBox(_T("Value must be True or False!"), _T("Property value error"), wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxBoolListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - - if (wxStrlen(view->GetValueText()->GetValue()) == 0) - return FALSE; - - wxString value(view->GetValueText()->GetValue()); - bool boolValue = FALSE; - if (value == _T("True")) - boolValue = TRUE; - else - boolValue = FALSE; - property->GetValue() = (bool)boolValue; - return TRUE; -} - -bool wxBoolListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString str(property->GetValue().GetStringRepresentation()); - - view->GetValueText()->SetValue(str); - - if (view->GetValueList()->IsShown()) - { - view->GetValueList()->SetStringSelection(str); - } - return TRUE; -} - -bool wxBoolListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(FALSE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(FALSE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(TRUE); - if (view->GetValueText()) - view->GetValueText()->Enable(FALSE); - return TRUE; -} - -bool wxBoolListValidator::OnPrepareDetailControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetValueList()) - { - view->ShowListBoxControl(TRUE); - view->GetValueList()->Enable(TRUE); - - view->GetValueList()->Append(_T("True")); - view->GetValueList()->Append(_T("False")); - wxChar *currentString = copystring(view->GetValueText()->GetValue()); - view->GetValueList()->SetStringSelection(currentString); - delete[] currentString; - } - return TRUE; -} - -bool wxBoolListValidator::OnClearDetailControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetValueList()) - { - view->GetValueList()->Clear(); - view->ShowListBoxControl(FALSE); - view->GetValueList()->Enable(FALSE); - } - return TRUE; -} - -// Called when the property is double clicked. Extra functionality can be provided, -// cycling through possible values. -bool wxBoolListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - if (property->GetValue().BoolValue()) - property->GetValue() = (bool)FALSE; - else - property->GetValue() = (bool)TRUE; - view->DisplayProperty(property); - view->UpdatePropertyDisplayInList(property); - view->OnPropertyChanged(property); - return TRUE; -} - -/// -/// String validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxStringListValidator, wxPropertyListValidator) - -wxStringListValidator::wxStringListValidator(wxStringList *list, long flags): - wxPropertyListValidator(flags) -{ - m_strings = list; - // If no constraint, we just allow the string to be edited. - if (!m_strings && ((m_validatorFlags & wxPROP_ALLOW_TEXT_EDITING) == 0)) - m_validatorFlags |= wxPROP_ALLOW_TEXT_EDITING; -} - -bool wxStringListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!m_strings) - return TRUE; - - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - - if (!m_strings->Member(value.GetData())) - { - wxString s("Value "); - s += value.GetData(); - s += " is not valid."; - wxMessageBox(s.GetData(), "Property value error", wxOK | wxICON_EXCLAMATION, parentWindow); - return FALSE; - } - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxStringListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - property->GetValue() = value ; - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxStringListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString str(property->GetValue().GetStringRepresentation()); - view->GetValueText()->SetValue(str); - if (m_strings && view->GetValueList() && view->GetValueList()->IsShown() && view->GetValueList()->Number() > 0) - { - view->GetValueList()->SetStringSelection(str); - } - return TRUE; -} - -bool wxStringListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - // Unconstrained - if (!m_strings) - { - if (view->GetEditButton()) - view->GetEditButton()->Enable(FALSE); - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(TRUE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(TRUE); - if (view->GetValueText()) - view->GetValueText()->Enable(TRUE); - return TRUE; - } - - // Constrained - if (view->GetValueText()) - view->GetValueText()->Enable(FALSE); - - if (view->GetEditButton()) - view->GetEditButton()->Enable(TRUE); - - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(FALSE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(FALSE); - return TRUE; -} - -bool wxStringListValidator::OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetValueList()) - { - view->ShowListBoxControl(TRUE); - view->GetValueList()->Enable(TRUE); - wxNode *node = m_strings->First(); - while (node) - { - wxChar *s = (wxChar *)node->Data(); - view->GetValueList()->Append(s); - node = node->Next(); - } - wxChar *currentString = property->GetValue().StringValue(); - view->GetValueList()->SetStringSelection(currentString); - } - return TRUE; -} - -bool wxStringListValidator::OnClearDetailControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!m_strings) - { - return TRUE; - } - - if (view->GetValueList()) - { - view->GetValueList()->Clear(); - view->ShowListBoxControl(FALSE); - view->GetValueList()->Enable(FALSE); - } - return TRUE; -} - -// Called when the property is double clicked. Extra functionality can be provided, -// cycling through possible values. -bool wxStringListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - if (!m_strings) - return FALSE; - - wxNode *node = m_strings->First(); - wxChar *currentString = property->GetValue().StringValue(); - while (node) - { - wxChar *s = (wxChar *)node->Data(); - if (wxStrcmp(s, currentString) == 0) - { - wxChar *nextString = NULL; - if (node->Next()) - nextString = (wxChar *)node->Next()->Data(); - else - nextString = (wxChar *)m_strings->First()->Data(); - property->GetValue() = wxString(nextString); - view->DisplayProperty(property); - view->UpdatePropertyDisplayInList(property); - view->OnPropertyChanged(property); - return TRUE; - } - else node = node->Next(); - } - return TRUE; -} - -/// -/// Filename validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxFilenameListValidator, wxPropertyListValidator) - -wxFilenameListValidator::wxFilenameListValidator(wxString message , wxString wildcard, long flags): - wxPropertyListValidator(flags), m_filenameWildCard(wildcard), m_filenameMessage(message) -{ -} - -wxFilenameListValidator::~wxFilenameListValidator(void) -{ -} - -bool wxFilenameListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow)) -{ - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxFilenameListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - property->GetValue() = value ; - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxFilenameListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString str(property->GetValue().GetStringRepresentation()); - view->GetValueText()->SetValue(str); - return TRUE; -} - -// Called when the property is double clicked. Extra functionality can be provided, -// cycling through possible values. -bool wxFilenameListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return FALSE; - OnEdit(property, view, parentWindow); - return TRUE; -} - -bool wxFilenameListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(TRUE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(TRUE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(TRUE); - if (view->GetValueText()) - view->GetValueText()->Enable((GetFlags() & wxPROP_ALLOW_TEXT_EDITING) == wxPROP_ALLOW_TEXT_EDITING); - return TRUE; -} - -void wxFilenameListValidator::OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return; - - wxString s = wxFileSelector( - m_filenameMessage.GetData(), - wxPathOnly(property->GetValue().StringValue()), - wxFileNameFromPath(property->GetValue().StringValue()), - NULL, - m_filenameWildCard.GetData(), - 0, - parentWindow); - if (s != "") - { - property->GetValue() = s; - view->DisplayProperty(property); - view->UpdatePropertyDisplayInList(property); - view->OnPropertyChanged(property); - } -} - -/// -/// Colour validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxColourListValidator, wxPropertyListValidator) - -wxColourListValidator::wxColourListValidator(long flags): - wxPropertyListValidator(flags) -{ -} - -wxColourListValidator::~wxColourListValidator(void) -{ -} - -bool wxColourListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow)) -{ - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxColourListValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - - property->GetValue() = value ; - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxColourListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString str(property->GetValue().GetStringRepresentation()); - view->GetValueText()->SetValue(str); - return TRUE; -} - -// Called when the property is double clicked. Extra functionality can be provided, -// cycling through possible values. -bool wxColourListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return FALSE; - OnEdit(property, view, parentWindow); - return TRUE; -} - -bool wxColourListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(TRUE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(TRUE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(TRUE); - if (view->GetValueText()) - view->GetValueText()->Enable((GetFlags() & wxPROP_ALLOW_TEXT_EDITING) == wxPROP_ALLOW_TEXT_EDITING); - return TRUE; -} - -void wxColourListValidator::OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return; - - wxChar *s = property->GetValue().StringValue(); - int r = 0; - int g = 0; - int b = 0; - if (s) - { - r = wxHexToDec(s); - g = wxHexToDec(s+2); - b = wxHexToDec(s+4); - } - - wxColour col(r,g,b); - - wxColourData data; - data.SetChooseFull(TRUE); - data.SetColour(col); - - for (int i = 0; i < 16; i++) - { - wxColour colour(i*16, i*16, i*16); - data.SetCustomColour(i, colour); - } - - wxColourDialog dialog(parentWindow, &data); - if (dialog.ShowModal() != wxID_CANCEL) - { - wxColourData retData = dialog.GetColourData(); - col = retData.GetColour(); - - wxChar buf[7]; - wxDecToHex(col.Red(), buf); - wxDecToHex(col.Green(), buf+2); - wxDecToHex(col.Blue(), buf+4); - - property->GetValue() = wxString(buf); - view->DisplayProperty(property); - view->UpdatePropertyDisplayInList(property); - view->OnPropertyChanged(property); - } -} - -/// -/// List of strings validator. For this we need more user interface than -/// we get with a property list; so create a new dialog for editing the list. -/// -IMPLEMENT_DYNAMIC_CLASS(wxListOfStringsListValidator, wxPropertyListValidator) - -wxListOfStringsListValidator::wxListOfStringsListValidator(long flags): - wxPropertyListValidator(flags) -{ -} - -bool wxListOfStringsListValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow)) -{ - // No constraints for an arbitrary, user-editable list of strings. - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself. -// In this case, the user cannot directly edit the string list. -bool wxListOfStringsListValidator::OnRetrieveValue(wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow)) -{ - return TRUE; -} - -bool wxListOfStringsListValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString str(property->GetValue().GetStringRepresentation()); - view->GetValueText()->SetValue(str); - return TRUE; -} - -bool wxListOfStringsListValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetEditButton()) - view->GetEditButton()->Enable(TRUE); - if (view->GetValueText()) - view->GetValueText()->Enable(FALSE); - - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(FALSE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(FALSE); - return TRUE; -} - -// Called when the property is double clicked. Extra functionality can be provided, -// cycling through possible values. -bool wxListOfStringsListValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - OnEdit(property, view, parentWindow); - return TRUE; -} - -void wxListOfStringsListValidator::OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - // Convert property value to a list of strings for editing - wxStringList *stringList = new wxStringList; - - wxPropertyValue *expr = property->GetValue().GetFirst(); - while (expr) - { - wxChar *s = expr->StringValue(); - if (s) - stringList->Add(s); - expr = expr->GetNext(); - } - - wxString title(_T("Editing ")); - title += property->GetName(); - - if (EditStringList(parentWindow, stringList, title.GetData())) - { - wxPropertyValue& oldValue = property->GetValue(); - oldValue.ClearList(); - wxNode *node = stringList->First(); - while (node) - { - wxChar *s = (wxChar *)node->Data(); - oldValue.Append(new wxPropertyValue(s)); - - node = node->Next(); - } - - view->DisplayProperty(property); - view->UpdatePropertyDisplayInList(property); - view->OnPropertyChanged(property); - } - delete stringList; -} - -class wxPropertyStringListEditorDialog: public wxDialog -{ - public: - wxPropertyStringListEditorDialog(wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long windowStyle = wxDEFAULT_DIALOG_STYLE, const wxString& name = "stringEditorDialogBox"): - wxDialog(parent, -1, title, pos, size, windowStyle, name) - { - m_stringList = NULL; - m_stringText = NULL; - m_listBox = NULL; - sm_dialogCancelled = FALSE; - m_currentSelection = -1; - } - ~wxPropertyStringListEditorDialog(void) {} - void OnCloseWindow(wxCloseEvent& event); - void SaveCurrentSelection(void); - void ShowCurrentSelection(void); - - void OnOK(wxCommandEvent& event); - void OnCancel(wxCommandEvent& event); - void OnAdd(wxCommandEvent& event); - void OnDelete(wxCommandEvent& event); - void OnStrings(wxCommandEvent& event); - void OnText(wxCommandEvent& event); - -public: - wxStringList* m_stringList; - wxListBox* m_listBox; - wxTextCtrl* m_stringText; - static bool sm_dialogCancelled; - int m_currentSelection; -DECLARE_EVENT_TABLE() -}; - -#define wxID_PROP_SL_ADD 3000 -#define wxID_PROP_SL_DELETE 3001 -#define wxID_PROP_SL_STRINGS 3002 -#define wxID_PROP_SL_TEXT 3003 - -BEGIN_EVENT_TABLE(wxPropertyStringListEditorDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxPropertyStringListEditorDialog::OnOK) - EVT_BUTTON(wxID_CANCEL, wxPropertyStringListEditorDialog::OnCancel) - EVT_BUTTON(wxID_PROP_SL_ADD, wxPropertyStringListEditorDialog::OnAdd) - EVT_BUTTON(wxID_PROP_SL_DELETE, wxPropertyStringListEditorDialog::OnDelete) - EVT_LISTBOX(wxID_PROP_SL_STRINGS, wxPropertyStringListEditorDialog::OnStrings) - EVT_TEXT_ENTER(wxID_PROP_SL_TEXT, wxPropertyStringListEditorDialog::OnText) - EVT_CLOSE(wxPropertyStringListEditorDialog::OnCloseWindow) -END_EVENT_TABLE() - -class wxPropertyStringListEditorText: public wxTextCtrl -{ - public: - wxPropertyStringListEditorText(wxWindow *parent, wxWindowID id, const wxString& val, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long windowStyle = 0, const wxString& name = "text"): - wxTextCtrl(parent, id, val, pos, size, windowStyle, wxDefaultValidator, name) - { - } - void OnKillFocus(void) - { - wxPropertyStringListEditorDialog *dialog = (wxPropertyStringListEditorDialog *)GetParent(); - dialog->SaveCurrentSelection(); - } -}; - -bool wxPropertyStringListEditorDialog::sm_dialogCancelled = FALSE; - -// Edit the string list. -bool wxListOfStringsListValidator::EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title) -{ - int largeButtonWidth = 60; - int largeButtonHeight = 25; - - wxBeginBusyCursor(); - wxPropertyStringListEditorDialog *dialog = new wxPropertyStringListEditorDialog(parent, - title, wxPoint(10, 10), wxSize(400, 400), wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL); - - dialog->m_stringList = stringList; - - dialog->m_listBox = new wxListBox(dialog, wxID_PROP_SL_STRINGS, - wxPoint(-1, -1), wxSize(-1, -1), 0, NULL, wxLB_SINGLE); - - dialog->m_stringText = new wxPropertyStringListEditorText(dialog, - wxID_PROP_SL_TEXT, "", wxPoint(5, 240), - wxSize(300, -1), wxPROCESS_ENTER); - dialog->m_stringText->Enable(FALSE); - - wxButton *addButton = new wxButton(dialog, wxID_PROP_SL_ADD, "Add", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton *deleteButton = new wxButton(dialog, wxID_PROP_SL_DELETE, "Delete", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton *cancelButton = new wxButton(dialog, wxID_CANCEL, "Cancel", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton *okButton = new wxButton(dialog, wxID_OK, "OK", wxPoint(-1, -1), wxSize(largeButtonWidth, largeButtonHeight)); - - okButton->SetDefault(); - - wxLayoutConstraints *c = new wxLayoutConstraints; - - c->top.SameAs (dialog, wxTop, 2); - c->left.SameAs (dialog, wxLeft, 2); - c->right.SameAs (dialog, wxRight, 2); - c->bottom.SameAs (dialog->m_stringText, wxTop, 2); - dialog->m_listBox->SetConstraints(c); - - c = new wxLayoutConstraints; - c->left.SameAs (dialog, wxLeft, 2); - c->right.SameAs (dialog, wxRight, 2); - c->bottom.SameAs (addButton, wxTop, 2); - c->height.AsIs(); - dialog->m_stringText->SetConstraints(c); - - c = new wxLayoutConstraints; - c->bottom.SameAs (dialog, wxBottom, 2); - c->left.SameAs (dialog, wxLeft, 2); - c->width.AsIs(); - c->height.AsIs(); - addButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->bottom.SameAs (dialog, wxBottom, 2); - c->left.SameAs (addButton, wxRight, 2); - c->width.AsIs(); - c->height.AsIs(); - deleteButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->bottom.SameAs (dialog, wxBottom, 2); - c->right.SameAs (dialog, wxRight, 2); - c->width.AsIs(); - c->height.AsIs(); - cancelButton->SetConstraints(c); - - c = new wxLayoutConstraints; - c->bottom.SameAs (dialog, wxBottom, 2); - c->right.SameAs (cancelButton, wxLeft, 2); - c->width.AsIs(); - c->height.AsIs(); - okButton->SetConstraints(c); - - wxNode *node = stringList->First(); - while (node) - { - char *str = (char *)node->Data(); - // Save node as client data for each listbox item - dialog->m_listBox->Append(str, (char *)node); - node = node->Next(); - } - - dialog->SetClientSize(310, 305); - dialog->Layout(); - - dialog->Centre(wxBOTH); - wxEndBusyCursor(); - if (dialog->ShowModal() == wxID_CANCEL) - return FALSE; - else - return TRUE; -} - -/* - * String list editor callbacks - * - */ - -void wxPropertyStringListEditorDialog::OnStrings(wxCommandEvent& WXUNUSED(event)) -{ - int sel = m_listBox->GetSelection(); - if (sel > -1) - { - m_currentSelection = sel; - - ShowCurrentSelection(); - } -} - -void wxPropertyStringListEditorDialog::OnDelete(wxCommandEvent& WXUNUSED(event)) -{ - int sel = m_listBox->GetSelection(); - if (sel == -1) - return; - - wxNode *node = (wxNode *)m_listBox->wxListBox::GetClientData(sel); - if (!node) - return; - - m_listBox->Delete(sel); - delete[] (wxChar *)node->Data(); - delete node; - m_currentSelection = -1; - m_stringText->SetValue(""); -} - -void wxPropertyStringListEditorDialog::OnAdd(wxCommandEvent& WXUNUSED(event)) -{ - SaveCurrentSelection(); - - wxChar *initialText = _T(""); - wxNode *node = m_stringList->Add(initialText); - m_listBox->Append(initialText, (wxChar *)node); - m_currentSelection = m_stringList->Number() - 1; - m_listBox->SetSelection(m_currentSelection); - ShowCurrentSelection(); - m_stringText->SetFocus(); -} - -void wxPropertyStringListEditorDialog::OnOK(wxCommandEvent& WXUNUSED(event)) -{ - SaveCurrentSelection(); - EndModal(wxID_OK); - // Close(TRUE); - this->Destroy(); -} - -void wxPropertyStringListEditorDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - sm_dialogCancelled = TRUE; - EndModal(wxID_CANCEL); -// Close(TRUE); - this->Destroy(); -} - -void wxPropertyStringListEditorDialog::OnText(wxCommandEvent& event) -{ - if (event.GetEventType() == wxEVT_COMMAND_TEXT_ENTER) - { - SaveCurrentSelection(); - } -} - -void wxPropertyStringListEditorDialog::OnCloseWindow(wxCloseEvent& event) -{ - SaveCurrentSelection(); - this->Destroy(); -} - -void wxPropertyStringListEditorDialog::SaveCurrentSelection(void) -{ - if (m_currentSelection == -1) - return; - - wxNode *node = (wxNode *)m_listBox->wxListBox::GetClientData(m_currentSelection); - if (!node) - return; - - wxString txt(m_stringText->GetValue()); - if (node->Data()) - delete[] (char *)node->Data(); - node->SetData((wxObject *)copystring(txt)); - - m_listBox->SetString(m_currentSelection, (char *)node->Data()); -} - -void wxPropertyStringListEditorDialog::ShowCurrentSelection(void) -{ - if (m_currentSelection == -1) - { - m_stringText->SetValue(""); - return; - } - wxNode *node = (wxNode *)m_listBox->wxListBox::GetClientData(m_currentSelection); - char *txt = (char *)node->Data(); - m_stringText->SetValue(txt); - m_stringText->Enable(TRUE); -} - diff --git a/src/generic/sashwin.cpp b/src/generic/sashwin.cpp deleted file mode 100644 index bcc734ffd9..0000000000 --- a/src/generic/sashwin.cpp +++ /dev/null @@ -1,627 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sashwin.cpp -// Purpose: wxSashWindow implementation. A sash window has an optional -// sash on each edge, allowing it to be dragged. An event -// is generated when the sash is released. -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "sashwin.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if !wxUSE_SASH - #error "Thisfile requires wxUSE_SASH to be defined." -#endif // wxUSE_SASH - -#include -#include - -#include "wx/string.h" -#include "wx/dcscreen.h" -#include "wx/sashwin.h" -#include "wx/laywin.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSashWindow, wxWindow) -IMPLEMENT_DYNAMIC_CLASS(wxSashEvent, wxCommandEvent) - -BEGIN_EVENT_TABLE(wxSashWindow, wxWindow) - EVT_PAINT(wxSashWindow::OnPaint) - EVT_SIZE(wxSashWindow::OnSize) - EVT_MOUSE_EVENTS(wxSashWindow::OnMouseEvent) -END_EVENT_TABLE() -#endif - -wxSashWindow::wxSashWindow() -{ - m_draggingEdge = wxSASH_NONE; - m_dragMode = wxSASH_DRAG_NONE; - m_oldX = 0; - m_oldY = 0; - m_firstX = 0; - m_firstY = 0; - m_borderSize = 3 ; - m_extraBorderSize = 0; - m_sashCursorWE = NULL; - m_sashCursorNS = NULL; - - m_minimumPaneSizeX = 0; - m_minimumPaneSizeY = 0; - m_maximumPaneSizeX = 10000; - m_maximumPaneSizeY = 10000; -} - -wxSashWindow::wxSashWindow(wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style, const wxString& name) - :wxWindow(parent, id, pos, size, style, name) -{ - m_draggingEdge = wxSASH_NONE; - m_dragMode = wxSASH_DRAG_NONE; - m_oldX = 0; - m_oldY = 0; - m_firstX = 0; - m_firstY = 0; - m_borderSize = 3; - m_extraBorderSize = 0; - m_minimumPaneSizeX = 0; - m_minimumPaneSizeY = 0; - m_maximumPaneSizeX = 10000; - m_maximumPaneSizeY = 10000; - m_sashCursorWE = new wxCursor(wxCURSOR_SIZEWE); - m_sashCursorNS = new wxCursor(wxCURSOR_SIZENS); - - // Eventually, we'll respond to colour change messages - InitColours(); -} - -wxSashWindow::~wxSashWindow() -{ - delete m_sashCursorWE; - delete m_sashCursorNS; -} - -void wxSashWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - - // if ( m_borderSize > 0 ) - DrawBorders(dc); - - DrawSashes(dc); -} - -void wxSashWindow::OnMouseEvent(wxMouseEvent& event) -{ - long x, y; - event.Position(&x, &y); - - wxSashEdgePosition sashHit = SashHitTest(x, y); - - // reset the cursor -#ifdef __WXMOTIF__ - SetCursor(* wxSTANDARD_CURSOR); -#endif -#ifdef __WXMSW__ - SetCursor(wxCursor()); -#endif - - if (event.LeftDown()) - { - if ( sashHit != wxSASH_NONE ) - { - CaptureMouse(); - - // Required for X to specify that - // that we wish to draw on top of all windows - // - and we optimise by specifying the area - // for creating the overlap window. - // Find the first frame or dialog and use this to specify - // the area to draw on. - wxWindow* parent = this; - - while (parent && !parent->IsKindOf(CLASSINFO(wxDialog)) && - !parent->IsKindOf(CLASSINFO(wxFrame))) - parent = parent->GetParent(); - - wxScreenDC::StartDrawingOnTop(parent); - - // We don't say we're dragging yet; we leave that - // decision for the Dragging() branch, to ensure - // the user has dragged a little bit. - m_dragMode = wxSASH_DRAG_LEFT_DOWN; - m_draggingEdge = sashHit; - m_firstX = x; - m_firstY = y; - } - } - else if ( event.LeftUp() && m_dragMode == wxSASH_DRAG_LEFT_DOWN ) - { - // Wasn't a proper drag - ReleaseMouse(); - wxScreenDC::EndDrawingOnTop(); - m_dragMode = wxSASH_DRAG_NONE; - m_draggingEdge = wxSASH_NONE; - } - else if (event.LeftUp() && m_dragMode == wxSASH_DRAG_DRAGGING) - { - // We can stop dragging now and see what we've got. - m_dragMode = wxSASH_DRAG_NONE; - ReleaseMouse(); - // Erase old tracker - DrawSashTracker(m_draggingEdge, m_oldX, m_oldY); - - // End drawing on top (frees the window used for drawing - // over the screen) - wxScreenDC::EndDrawingOnTop(); - - int w, h; - GetSize(&w, &h); - int xp, yp; - GetPosition(&xp, &yp); - - wxSashEdgePosition edge = m_draggingEdge; - m_draggingEdge = wxSASH_NONE; - - wxRect dragRect; - wxSashDragStatus status = wxSASH_STATUS_OK; - switch (edge) - { - case wxSASH_TOP: - { - if (y > (yp + h)) - status = wxSASH_STATUS_OUT_OF_RANGE; - int newHeight = (h - y); - newHeight=wxMax(newHeight,m_minimumPaneSizeY); - newHeight=wxMin(newHeight,m_maximumPaneSizeY); - dragRect = wxRect(xp, (yp + h) - newHeight, w, newHeight); - break; - } - case wxSASH_BOTTOM: - { - if (y < 0) - status = wxSASH_STATUS_OUT_OF_RANGE; - int newHeight = y; - newHeight=wxMax(newHeight,m_minimumPaneSizeY); - newHeight=wxMin(newHeight,m_maximumPaneSizeY); - dragRect = wxRect(xp, yp, w, newHeight); - break; - } - case wxSASH_LEFT: - { - if (x > (xp + w)) - status = wxSASH_STATUS_OUT_OF_RANGE; - int newWidth = (w - x); - newWidth=wxMax(newWidth,m_minimumPaneSizeX); - newWidth=wxMin(newWidth,m_maximumPaneSizeX); - dragRect = wxRect((xp + w) - newWidth, yp, newWidth, h); - break; - } - case wxSASH_RIGHT: - { - if (x < 0) - status = wxSASH_STATUS_OUT_OF_RANGE; - int newWidth = x; - newWidth=wxMax(newWidth,m_minimumPaneSizeX); - newWidth=wxMin(newWidth,m_maximumPaneSizeX); - dragRect = wxRect(xp, yp, newWidth, h); - break; - } - case wxSASH_NONE: - { - break; - } - } - - wxSashEvent event(GetId(), edge); - event.SetEventObject(this); - event.SetDragStatus(status); - event.SetDragRect(dragRect); - GetEventHandler()->ProcessEvent(event); - } - else if (event.Moving() && !event.Dragging()) - { - // Just change the cursor if required - if ( sashHit != wxSASH_NONE ) - { - if ( (sashHit == wxSASH_LEFT) || (sashHit == wxSASH_RIGHT) ) - { - SetCursor(*m_sashCursorWE); - } - else - { - SetCursor(*m_sashCursorNS); - } - } - } - else if ( event.Dragging() && - ((m_dragMode == wxSASH_DRAG_DRAGGING) || (m_dragMode == wxSASH_DRAG_LEFT_DOWN)) - ) - { - if ( (m_draggingEdge == wxSASH_LEFT) || (m_draggingEdge == wxSASH_RIGHT) ) - { - SetCursor(*m_sashCursorWE); - } - else - { - SetCursor(*m_sashCursorNS); - } - - if (m_dragMode == wxSASH_DRAG_LEFT_DOWN) - { - m_dragMode = wxSASH_DRAG_DRAGGING; - DrawSashTracker(m_draggingEdge, x, y); - } - else - { - if ( m_dragMode == wxSASH_DRAG_DRAGGING ) - { - // Erase old tracker - DrawSashTracker(m_draggingEdge, m_oldX, m_oldY); - - // Draw new one - DrawSashTracker(m_draggingEdge, x, y); - } - } - m_oldX = x; - m_oldY = y; - } - else if ( event.LeftDClick() ) - { - // Nothing - } - else - { - } -} - -void wxSashWindow::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - SizeWindows(); -} - -wxSashEdgePosition wxSashWindow::SashHitTest(int x, int y, int WXUNUSED(tolerance)) -{ - int cx, cy; - GetClientSize(& cx, & cy); - - int i; - for (i = 0; i < 4; i++) - { - wxSashEdge& edge = m_sashes[i]; - wxSashEdgePosition position = (wxSashEdgePosition) i ; - - if (edge.m_show) - { - switch (position) - { - case wxSASH_TOP: - { - if (y >= 0 && y <= GetEdgeMargin(position)) - return wxSASH_TOP; - break; - } - case wxSASH_RIGHT: - { - if ((x >= cx - GetEdgeMargin(position)) && (x <= cx)) - return wxSASH_RIGHT; - break; - } - case wxSASH_BOTTOM: - { - if ((y >= cy - GetEdgeMargin(position)) && (y <= cy)) - return wxSASH_BOTTOM; - break; - } - case wxSASH_LEFT: - { - if ((x <= GetEdgeMargin(position)) && (x >= 0)) - return wxSASH_LEFT; - break; - } - case wxSASH_NONE: - { - break; - } - } - } - } - return wxSASH_NONE; -} - -// Draw 3D effect borders -void wxSashWindow::DrawBorders(wxDC& dc) -{ - int w, h; - GetClientSize(&w, &h); - - wxPen mediumShadowPen(m_mediumShadowColour, 1, wxSOLID); - wxPen darkShadowPen(m_darkShadowColour, 1, wxSOLID); - wxPen lightShadowPen(m_lightShadowColour, 1, wxSOLID); - wxPen hilightPen(m_hilightColour, 1, wxSOLID); - - if ( GetWindowStyleFlag() & wxSP_3D ) - { - dc.SetPen(mediumShadowPen); - dc.DrawLine(0, 0, w-1, 0); - dc.DrawLine(0, 0, 0, h - 1); - - dc.SetPen(darkShadowPen); - dc.DrawLine(1, 1, w-2, 1); - dc.DrawLine(1, 1, 1, h-2); - - dc.SetPen(hilightPen); - dc.DrawLine(0, h-1, w-1, h-1); - dc.DrawLine(w-1, 0, w-1, h); // Surely the maximum y pos. should be h - 1. - /// Anyway, h is required for MSW. - - dc.SetPen(lightShadowPen); - dc.DrawLine(w-2, 1, w-2, h-2); // Right hand side - dc.DrawLine(1, h-2, w-1, h-2); // Bottom - } - else if ( GetWindowStyleFlag() & wxSP_BORDER ) - { - dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.SetPen(*wxBLACK_PEN); - dc.DrawRectangle(0, 0, w-1, h-1); - } - - dc.SetPen(wxNullPen); - dc.SetBrush(wxNullBrush); -} - -void wxSashWindow::DrawSashes(wxDC& dc) -{ - int i; - for (i = 0; i < 4; i++) - if (m_sashes[i].m_show) - DrawSash((wxSashEdgePosition) i, dc); -} - -// Draw the sash -void wxSashWindow::DrawSash(wxSashEdgePosition edge, wxDC& dc) -{ - int w, h; - GetClientSize(&w, &h); - - wxPen facePen(m_faceColour, 1, wxSOLID); - wxBrush faceBrush(m_faceColour, wxSOLID); - wxPen mediumShadowPen(m_mediumShadowColour, 1, wxSOLID); - wxPen darkShadowPen(m_darkShadowColour, 1, wxSOLID); - wxPen lightShadowPen(m_lightShadowColour, 1, wxSOLID); - wxPen hilightPen(m_hilightColour, 1, wxSOLID); - wxPen blackPen(wxColour(0, 0, 0), 1, wxSOLID); - wxPen whitePen(wxColour(255, 255, 255), 1, wxSOLID); - - if ( edge == wxSASH_LEFT || edge == wxSASH_RIGHT ) - { - int sashPosition = 0; - if (edge == wxSASH_LEFT) - sashPosition = 0; - else - sashPosition = w - GetEdgeMargin(edge); - - dc.SetPen(facePen); - dc.SetBrush(faceBrush); - dc.DrawRectangle(sashPosition, 0, GetEdgeMargin(edge), h); - - if (GetWindowStyleFlag() & wxSW_3D) - { - if (edge == wxSASH_LEFT) - { - // Draw a black line on the left to indicate that the - // sash is raised - dc.SetPen(blackPen); - dc.DrawLine(GetEdgeMargin(edge), 0, GetEdgeMargin(edge), h); - } - else - { - // Draw a white line on the right to indicate that the - // sash is raised - dc.SetPen(whitePen); - dc.DrawLine(w - GetEdgeMargin(edge), 0, w - GetEdgeMargin(edge), h); - } - } - } - else // top or bottom - { - int sashPosition = 0; - if (edge == wxSASH_TOP) - sashPosition = 0; - else - sashPosition = h - GetEdgeMargin(edge); - - dc.SetPen(facePen); - dc.SetBrush(faceBrush); - dc.DrawRectangle(0, sashPosition, w, GetEdgeMargin(edge)); - - if (GetWindowStyleFlag() & wxSW_3D) - { - if (edge == wxSASH_BOTTOM) - { - // Draw a black line on the bottom to indicate that the - // sash is raised - dc.SetPen(blackPen); - dc.DrawLine(0, h - GetEdgeMargin(edge), w, h - GetEdgeMargin(edge)); - } - else - { - // Draw a white line on the top to indicate that the - // sash is raised - dc.SetPen(whitePen); - dc.DrawLine(0, GetEdgeMargin(edge), w, GetEdgeMargin(edge)); - } - } - } - - dc.SetPen(wxNullPen); - dc.SetBrush(wxNullBrush); -} - -// Draw the sash tracker (for whilst moving the sash) -void wxSashWindow::DrawSashTracker(wxSashEdgePosition edge, int x, int y) -{ - int w, h; - GetClientSize(&w, &h); - - wxScreenDC screenDC; - int x1, y1; - int x2, y2; - - if ( edge == wxSASH_LEFT || edge == wxSASH_RIGHT ) - { - x1 = x; y1 = 2; - x2 = x; y2 = h-2; - - if ( (edge == wxSASH_LEFT) && (x1 > w) ) - { - x1 = w; x2 = w; - } - else if ( (edge == wxSASH_RIGHT) && (x1 < 0) ) - { - x1 = 0; x2 = 0; - } - } - else - { - x1 = 2; y1 = y; - x2 = w-2; y2 = y; - - if ( (edge == wxSASH_TOP) && (y1 > h) ) - { - y1 = h; - y2 = h; - } - else if ( (edge == wxSASH_BOTTOM) && (y1 < 0) ) - { - y1 = 0; - y2 = 0; - } - } - - ClientToScreen(&x1, &y1); - ClientToScreen(&x2, &y2); - - wxPen sashTrackerPen(*wxBLACK, 2, wxSOLID); - - screenDC.SetLogicalFunction(wxINVERT); - screenDC.SetPen(sashTrackerPen); - screenDC.SetBrush(*wxTRANSPARENT_BRUSH); - - screenDC.DrawLine(x1, y1, x2, y2); - - screenDC.SetLogicalFunction(wxCOPY); - - screenDC.SetPen(wxNullPen); - screenDC.SetBrush(wxNullBrush); -} - -// Position and size subwindows. -// Note that the border size applies to each subwindow, not -// including the edges next to the sash. -void wxSashWindow::SizeWindows() -{ - int cw, ch; - GetClientSize(&cw, &ch); - - if (GetChildren().Number() == 1) - { - wxWindow* child = (wxWindow*) (GetChildren().First()->Data()); - - int x = 0; - int y = 0; - int width = cw; - int height = ch; - - // Top - if (m_sashes[0].m_show) - { - y = m_borderSize; - height -= m_borderSize; - } - y += m_extraBorderSize; - - // Left - if (m_sashes[3].m_show) - { - x = m_borderSize; - width -= m_borderSize; - } - x += m_extraBorderSize; - - // Right - if (m_sashes[1].m_show) - { - width -= m_borderSize; - } - width -= 2*m_extraBorderSize; - - // Bottom - if (m_sashes[2].m_show) - { - height -= m_borderSize; - } - height -= 2*m_extraBorderSize; - - child->SetSize(x, y, width, height); - } - else if (GetChildren().Number() > 1) - { - // Perhaps multiple children are themselves sash windows. - // TODO: this doesn't really work because the subwindows sizes/positions - // must be set to leave a gap for the parent's sash (hit-test and decorations). - // Perhaps we can allow for this within LayoutWindow, testing whether the parent - // is a sash window, and if so, allowing some space for the edges. - wxLayoutAlgorithm layout; - layout.LayoutWindow(this); - } - - wxClientDC dc(this); - DrawBorders(dc); - DrawSashes(dc); -} - -// Initialize colours -void wxSashWindow::InitColours() -{ - // Shadow colours -#if defined(__WIN95__) - m_faceColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - m_mediumShadowColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW); - m_darkShadowColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DDKSHADOW); - m_lightShadowColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT); - m_hilightColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT); -#else - m_faceColour = *(wxTheColourDatabase->FindColour("LIGHT GREY")); - m_mediumShadowColour = *(wxTheColourDatabase->FindColour("GREY")); - m_darkShadowColour = *(wxTheColourDatabase->FindColour("BLACK")); - m_lightShadowColour = *(wxTheColourDatabase->FindColour("LIGHT GREY")); - m_hilightColour = *(wxTheColourDatabase->FindColour("WHITE")); -#endif -} - -void wxSashWindow::SetSashVisible(wxSashEdgePosition edge, bool sash) -{ - m_sashes[edge].m_show = sash; - if (sash) - m_sashes[edge].m_margin = m_borderSize; - else - m_sashes[edge].m_margin = 0; -} - diff --git a/src/generic/scrolwin.cpp b/src/generic/scrolwin.cpp deleted file mode 100644 index 033b08913b..0000000000 --- a/src/generic/scrolwin.cpp +++ /dev/null @@ -1,501 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolwin.cpp -// Purpose: wxScrolledWindow implementation -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma implementation "scrolwin.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#include "wx/utils.h" -#include "wx/dcclient.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/generic/scrolwin.h" -#include "wx/panel.h" - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxScrolledWindow, wxPanel) - EVT_SCROLLWIN(wxScrolledWindow::OnScroll) - EVT_SIZE(wxScrolledWindow::OnSize) - EVT_PAINT(wxScrolledWindow::OnPaint) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindow, wxPanel) -#endif - -#ifdef __WXMSW__ -#include "windows.h" -#endif - -#ifdef __WXMOTIF__ -// For wxRETAINED implementation -#include -#endif - -wxScrolledWindow::wxScrolledWindow() -{ - m_xScrollPixelsPerLine = 0; - m_yScrollPixelsPerLine = 0; - m_xScrollingEnabled = TRUE; - m_yScrollingEnabled = TRUE; - m_xScrollPosition = 0; - m_yScrollPosition = 0; - m_xScrollLines = 0; - m_yScrollLines = 0; - m_xScrollLinesPerPage = 0; - m_yScrollLinesPerPage = 0; - m_scaleX = 1.0; - m_scaleY = 1.0; -} - -bool wxScrolledWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_xScrollPixelsPerLine = 0; - m_yScrollPixelsPerLine = 0; - m_xScrollingEnabled = TRUE; - m_yScrollingEnabled = TRUE; - m_xScrollPosition = 0; - m_yScrollPosition = 0; - m_xScrollLines = 0; - m_yScrollLines = 0; - m_xScrollLinesPerPage = 0; - m_yScrollLinesPerPage = 0; - m_scaleX = 1.0; - m_scaleY = 1.0; - - return wxPanel::Create(parent, id, pos, size, style, name); -} - -/* - * pixelsPerUnitX/pixelsPerUnitY: number of pixels per unit (e.g. pixels per text line) - * noUnitsX/noUnitsY: : no. units per scrollbar - */ -void wxScrolledWindow::SetScrollbars (int pixelsPerUnitX, int pixelsPerUnitY, - int noUnitsX, int noUnitsY, - int xPos, int yPos, bool noRefresh ) -{ - bool do_refresh = - ( - (noUnitsX != 0 && m_xScrollLines == 0) || - (noUnitsX < m_xScrollLines) || - (noUnitsY != 0 && m_yScrollLines == 0) || - (noUnitsY < m_yScrollLines) || - (xPos != m_xScrollPosition) || - (yPos != m_yScrollPosition) || - (pixelsPerUnitX != m_xScrollPixelsPerLine) || - (pixelsPerUnitY != m_yScrollPixelsPerLine) - ); - - m_xScrollPixelsPerLine = pixelsPerUnitX; - m_yScrollPixelsPerLine = pixelsPerUnitY; - m_xScrollPosition = xPos; - m_yScrollPosition = yPos; - m_xScrollLines = noUnitsX; - m_yScrollLines = noUnitsY; - -#ifdef __WXMOTIF__ - // Sorry, some Motif-specific code to implement a backing pixmap - // for the wxRETAINED style. Implementing a backing store can't - // be entirely generic because it relies on the wxWindowDC implementation - // to duplicate X drawing calls for the backing pixmap. - - if ((m_windowStyle & wxRETAINED) == wxRETAINED) - { - Display* dpy = XtDisplay((Widget) GetMainWidget()); - - int totalPixelWidth = m_xScrollLines * m_xScrollPixelsPerLine; - int totalPixelHeight = m_yScrollLines * m_yScrollPixelsPerLine; - if (m_backingPixmap && - !((m_pixmapWidth == totalPixelWidth) && - (m_pixmapHeight == totalPixelHeight))) - { - XFreePixmap (dpy, (Pixmap) m_backingPixmap); - m_backingPixmap = (WXPixmap) 0; - } - - if (!m_backingPixmap && - (noUnitsX != 0) && (noUnitsY != 0)) - { - int depth = wxDisplayDepth(); - m_pixmapWidth = totalPixelWidth; - m_pixmapHeight = totalPixelHeight; - m_backingPixmap = (WXPixmap) XCreatePixmap (dpy, RootWindow (dpy, DefaultScreen (dpy)), - m_pixmapWidth, m_pixmapHeight, depth); - } - - } -#endif - - AdjustScrollbars(); - - if (do_refresh && !noRefresh) - Refresh(); - -#ifdef __WXMSW__ - // Necessary? - UpdateWindow ((HWND) GetHWND()); -#endif -} - -void wxScrolledWindow::OnScroll(wxScrollWinEvent& event) -{ - int orient = event.GetOrientation(); - - int nScrollInc = CalcScrollInc(event); - if (nScrollInc == 0) return; - - if (orient == wxHORIZONTAL) - { - int newPos = m_xScrollPosition + nScrollInc; - SetScrollPos(wxHORIZONTAL, newPos, TRUE ); - } - else - { - int newPos = m_yScrollPosition + nScrollInc; - SetScrollPos(wxVERTICAL, newPos, TRUE ); - } - - if (orient == wxHORIZONTAL) - { - m_xScrollPosition += nScrollInc; - } - else - { - m_yScrollPosition += nScrollInc; - } - - if (orient == wxHORIZONTAL) - { - if (m_xScrollingEnabled) - ScrollWindow(-m_xScrollPixelsPerLine * nScrollInc, 0, (const wxRect *) NULL); - else - Refresh(); - } - else - { - if (m_yScrollingEnabled) - ScrollWindow(0, -m_yScrollPixelsPerLine * nScrollInc, (const wxRect *) NULL); - else - Refresh(); - } -} - -int wxScrolledWindow::CalcScrollInc(wxScrollWinEvent& event) -{ - int pos = event.GetPosition(); - int orient = event.GetOrientation(); - - int nScrollInc = 0; - switch (event.GetEventType()) - { - case wxEVT_SCROLLWIN_TOP: - { - if (orient == wxHORIZONTAL) - nScrollInc = - m_xScrollPosition; - else - nScrollInc = - m_yScrollPosition; - break; - } - case wxEVT_SCROLLWIN_BOTTOM: - { - if (orient == wxHORIZONTAL) - nScrollInc = m_xScrollLines - m_xScrollPosition; - else - nScrollInc = m_yScrollLines - m_yScrollPosition; - break; - } - case wxEVT_SCROLLWIN_LINEUP: - { - nScrollInc = -1; - break; - } - case wxEVT_SCROLLWIN_LINEDOWN: - { - nScrollInc = 1; - break; - } - case wxEVT_SCROLLWIN_PAGEUP: - { - if (orient == wxHORIZONTAL) - nScrollInc = -GetScrollPageSize(wxHORIZONTAL); - else - nScrollInc = -GetScrollPageSize(wxVERTICAL); - break; - } - case wxEVT_SCROLLWIN_PAGEDOWN: - { - if (orient == wxHORIZONTAL) - nScrollInc = GetScrollPageSize(wxHORIZONTAL); - else - nScrollInc = GetScrollPageSize(wxVERTICAL); - break; - } - case wxEVT_SCROLLWIN_THUMBTRACK: - { - if (orient == wxHORIZONTAL) - nScrollInc = pos - m_xScrollPosition; - else - nScrollInc = pos - m_yScrollPosition; - break; - } - default: - { - break; - } - } - - if (orient == wxHORIZONTAL) - { - if (m_xScrollPixelsPerLine > 0) { - int w, h; - GetClientSize(&w, &h); - - int nMaxWidth = m_xScrollLines*m_xScrollPixelsPerLine; - int noPositions = (int) ( ((nMaxWidth - w)/(float)m_xScrollPixelsPerLine) + 0.5 ); - if (noPositions < 0) - noPositions = 0; - - if ( (m_xScrollPosition + nScrollInc) < 0 ) - nScrollInc = -m_xScrollPosition; // As -ve as we can go - else if ( (m_xScrollPosition + nScrollInc) > noPositions ) - nScrollInc = noPositions - m_xScrollPosition; // As +ve as we can go - } - else - Refresh(); - } - else - { - if (m_yScrollPixelsPerLine > 0) { - int w, h; - GetClientSize(&w, &h); - - int nMaxHeight = m_yScrollLines*m_yScrollPixelsPerLine; - int noPositions = (int) ( ((nMaxHeight - h)/(float)m_yScrollPixelsPerLine) + 0.5 ); - if (noPositions < 0) - noPositions = 0; - - if ( (m_yScrollPosition + nScrollInc) < 0 ) - nScrollInc = -m_yScrollPosition; // As -ve as we can go - else if ( (m_yScrollPosition + nScrollInc) > noPositions ) - nScrollInc = noPositions - m_yScrollPosition; // As +ve as we can go - } - else - Refresh(); - } - - return nScrollInc; -} - -// Adjust the scrollbars - new version. -void wxScrolledWindow::AdjustScrollbars(void) -{ - int w, h; - GetClientSize(&w, &h); - - if (m_xScrollLines > 0) - { - // Calculate page size i.e. number of scroll units you get on the - // current client window - int noPagePositions = (int) ( (w/(float)m_xScrollPixelsPerLine) + 0.5 ); - if (noPagePositions < 1) noPagePositions = 1; - - // Correct position if greater than extent of canvas minus - // the visible portion of it or if below zero - m_xScrollPosition = wxMin( m_xScrollLines-noPagePositions, m_xScrollPosition); - m_xScrollPosition = wxMax( 0, m_xScrollPosition ); - - SetScrollbar(wxHORIZONTAL, m_xScrollPosition, noPagePositions, m_xScrollLines); - // The amount by which we scroll when paging - SetScrollPageSize(wxHORIZONTAL, noPagePositions); - } - else - { - m_xScrollPosition = 0; - SetScrollbar (wxHORIZONTAL, 0, 0, 0, FALSE); - } - - if (m_yScrollLines > 0) - { - // Calculate page size i.e. number of scroll units you get on the - // current client window - int noPagePositions = (int) ( (h/(float)m_yScrollPixelsPerLine) + 0.5 ); - if (noPagePositions < 1) noPagePositions = 1; - - // Correct position if greater than extent of canvas minus - // the visible portion of it or if below zero - m_yScrollPosition = wxMin( m_yScrollLines-noPagePositions, m_yScrollPosition ); - m_yScrollPosition = wxMax( 0, m_yScrollPosition ); - - SetScrollbar(wxVERTICAL, m_yScrollPosition, noPagePositions, m_yScrollLines); - // The amount by which we scroll when paging - SetScrollPageSize(wxVERTICAL, noPagePositions); - } - else - { - m_yScrollPosition = 0; - SetScrollbar (wxVERTICAL, 0, 0, 0, FALSE); - } -} - -// Default OnSize resets scrollbars, if any -void wxScrolledWindow::OnSize(wxSizeEvent& WXUNUSED(event)) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) Layout(); -#endif - - AdjustScrollbars(); -} - -// This calls OnDraw, having adjusted the origin according to the current -// scroll position -void wxScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - PrepareDC(dc); - - OnDraw(dc); -} - -// Override this function if you don't want to have wxScrolledWindow -// automatically change the origin according to the scroll position. -void wxScrolledWindow::PrepareDC(wxDC& dc) -{ - dc.SetDeviceOrigin( -m_xScrollPosition * m_xScrollPixelsPerLine, - -m_yScrollPosition * m_yScrollPixelsPerLine ); - dc.SetUserScale( m_scaleX, m_scaleY ); -} - -#if WXWIN_COMPATIBILITY -void wxScrolledWindow::GetScrollUnitsPerPage (int *x_page, int *y_page) const -{ - *x_page = GetScrollPageSize(wxHORIZONTAL); - *y_page = GetScrollPageSize(wxVERTICAL); -} -#endif - -void wxScrolledWindow::GetScrollPixelsPerUnit (int *x_unit, int *y_unit) const -{ - *x_unit = m_xScrollPixelsPerLine; - *y_unit = m_yScrollPixelsPerLine; -} - -int wxScrolledWindow::GetScrollPageSize(int orient) const -{ - if ( orient == wxHORIZONTAL ) - return m_xScrollLinesPerPage; - else - return m_yScrollLinesPerPage; -} - -void wxScrolledWindow::SetScrollPageSize(int orient, int pageSize) -{ - if ( orient == wxHORIZONTAL ) - m_xScrollLinesPerPage = pageSize; - else - m_yScrollLinesPerPage = pageSize; -} - -/* - * Scroll to given position (scroll position, not pixel position) - */ -void wxScrolledWindow::Scroll( int x_pos, int y_pos ) -{ - if (((x_pos == -1) || (x_pos == m_xScrollPosition)) && - ((y_pos == -1) || (y_pos == m_yScrollPosition))) return; - - int w, h; - GetClientSize(&w, &h); - - if (x_pos != -1) - { - m_xScrollPosition = x_pos; - - // Calculate page size i.e. number of scroll units you get on the - // current client window - int noPagePositions = (int) ( (w/(float)m_xScrollPixelsPerLine) + 0.5 ); - if (noPagePositions < 1) noPagePositions = 1; - - // Correct position if greater than extent of canvas minus - // the visible portion of it or if below zero - m_xScrollPosition = wxMin( m_xScrollLines-noPagePositions, m_xScrollPosition ); - m_xScrollPosition = wxMax( 0, m_xScrollPosition ); - - SetScrollPos( wxHORIZONTAL, m_xScrollPosition, TRUE ); - } - if (y_pos != -1) - { - m_yScrollPosition = y_pos; - - // Calculate page size i.e. number of scroll units you get on the - // current client window - int noPagePositions = (int) ( (h/(float)m_yScrollPixelsPerLine) + 0.5 ); - if (noPagePositions < 1) noPagePositions = 1; - - // Correct position if greater than extent of canvas minus - // the visible portion of it or if below zero - m_yScrollPosition = wxMin( m_yScrollLines-noPagePositions, m_yScrollPosition ); - m_yScrollPosition = wxMax( 0, m_yScrollPosition ); - - SetScrollPos( wxVERTICAL, m_yScrollPosition, TRUE ); - } - - // BAD, BAD, can cause event loops if called from OnPaint(). KB. - // Refresh(); - -#ifdef __WXMSW__ - // Necessary? - ::UpdateWindow ((HWND) GetHWND()); -#endif -} - -void wxScrolledWindow::EnableScrolling (bool x_scroll, bool y_scroll) -{ - m_xScrollingEnabled = x_scroll; - m_yScrollingEnabled = y_scroll; -} - -void wxScrolledWindow::GetVirtualSize (int *x, int *y) const -{ - *x = m_xScrollPixelsPerLine * m_xScrollLines; - *y = m_yScrollPixelsPerLine * m_yScrollLines; -} - -// Where the current view starts from -void wxScrolledWindow::ViewStart (int *x, int *y) const -{ - *x = m_xScrollPosition; - *y = m_yScrollPosition; -} - -void wxScrolledWindow::CalcScrolledPosition(int x, int y, int *xx, int *yy) const -{ - *xx = x - m_xScrollPosition * m_xScrollPixelsPerLine; - *yy = y - m_yScrollPosition * m_yScrollPixelsPerLine; -} - -void wxScrolledWindow::CalcUnscrolledPosition(int x, int y, float *xx, float *yy) const -{ - *xx = (float)(x + m_xScrollPosition * m_xScrollPixelsPerLine); - *yy = (float)(y + m_yScrollPosition * m_yScrollPixelsPerLine); -} - - diff --git a/src/generic/splitter.cpp b/src/generic/splitter.cpp deleted file mode 100644 index b458a92561..0000000000 --- a/src/generic/splitter.cpp +++ /dev/null @@ -1,877 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: splitter.cpp -// Purpose: wxSplitterWindow implementation -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "splitter.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#include - -#include "wx/string.h" -#include "wx/splitter.h" -#include "wx/dcscreen.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSplitterWindow, wxWindow) -IMPLEMENT_DYNAMIC_CLASS(wxSplitterEvent, wxCommandEvent) - -BEGIN_EVENT_TABLE(wxSplitterWindow, wxWindow) - EVT_PAINT(wxSplitterWindow::OnPaint) - EVT_SIZE(wxSplitterWindow::OnSize) - EVT_IDLE(wxSplitterWindow::OnIdle) - EVT_MOUSE_EVENTS(wxSplitterWindow::OnMouseEvent) - - EVT_SPLITTER_SASH_POS_CHANGED(-1, wxSplitterWindow::OnSashPosChanged) - // NB: we borrow OnSashPosChanged for purposes of - // EVT_SPLITTER_SASH_POS_CHANGING since default implementation is identical - EVT_SPLITTER_SASH_POS_CHANGING(-1, wxSplitterWindow::OnSashPosChanged) - EVT_SPLITTER_DCLICK(-1, wxSplitterWindow::OnDoubleClick) - EVT_SPLITTER_UNSPLIT(-1, wxSplitterWindow::OnUnsplitEvent) -END_EVENT_TABLE() -#endif - -wxSplitterWindow::wxSplitterWindow() -{ - m_splitMode = wxSPLIT_VERTICAL; - m_permitUnsplitAlways = FALSE; - m_windowOne = (wxWindow *) NULL; - m_windowTwo = (wxWindow *) NULL; - m_dragMode = wxSPLIT_DRAG_NONE; - m_oldX = 0; - m_oldY = 0; - m_firstX = 0; - m_firstY = 0; - m_sashSize = 7; - m_borderSize = 2; - m_sashPosition = 0; - m_sashCursorWE = (wxCursor *) NULL; - m_sashCursorNS = (wxCursor *) NULL; - m_sashTrackerPen = (wxPen *) NULL; - m_lightShadowPen = (wxPen *) NULL; - m_mediumShadowPen = (wxPen *) NULL; - m_darkShadowPen = (wxPen *) NULL; - m_faceBrush = (wxBrush *) NULL; - m_facePen = (wxPen *) NULL; - m_hilightPen = (wxPen *) NULL; - m_minimumPaneSize = 0; - m_needUpdating = FALSE; -} - -wxSplitterWindow::wxSplitterWindow(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) - : wxWindow(parent, id, pos, size, style, name) -{ - m_splitMode = wxSPLIT_VERTICAL; - m_permitUnsplitAlways = (style & wxSP_PERMIT_UNSPLIT) != 0; - m_windowOne = (wxWindow *) NULL; - m_windowTwo = (wxWindow *) NULL; - m_dragMode = wxSPLIT_DRAG_NONE; - m_oldX = 0; - m_oldY = 0; - m_firstX = 0; - m_firstY = 0; - m_sashSize = 7; - m_borderSize = 2; - m_sashPosition = 0; - m_minimumPaneSize = 0; - m_sashCursorWE = new wxCursor(wxCURSOR_SIZEWE); - m_sashCursorNS = new wxCursor(wxCURSOR_SIZENS); - m_sashTrackerPen = new wxPen(*wxBLACK, 2, wxSOLID); - m_lightShadowPen = (wxPen *) NULL; - m_mediumShadowPen = (wxPen *) NULL; - m_darkShadowPen = (wxPen *) NULL; - m_faceBrush = (wxBrush *) NULL; - m_facePen = (wxPen *) NULL; - m_hilightPen = (wxPen *) NULL; - - if ( style & wxSP_3D ) - { - m_borderSize = 2; - m_sashSize = 7; - } - else if ( style & wxSP_BORDER ) - { - m_borderSize = 1; - m_sashSize = 3; - } - else - { - m_borderSize = 0; - m_sashSize = 3; - } - - // Eventually, we'll respond to colour change messages - InitColours(); - - // For debugging purposes, to see the background. -// SetBackground(wxBLUE_BRUSH); - - m_needUpdating = FALSE; -} - -wxSplitterWindow::~wxSplitterWindow() -{ - delete m_sashCursorWE; - delete m_sashCursorNS; - delete m_sashTrackerPen; - delete m_lightShadowPen; - delete m_darkShadowPen; - delete m_mediumShadowPen; - delete m_hilightPen; - delete m_facePen; - delete m_faceBrush; -} - -void wxSplitterWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - - if ( m_borderSize > 0 ) - DrawBorders(dc); - DrawSash(dc); -} - -void wxSplitterWindow::OnIdle(wxIdleEvent& WXUNUSED(event)) -{ - if (m_needUpdating) - SizeWindows(); -} - -void wxSplitterWindow::OnMouseEvent(wxMouseEvent& event) -{ - long x = event.GetX(); - long y = event.GetY(); - - // reset the cursor -#ifdef __WXMOTIF__ - SetCursor(* wxSTANDARD_CURSOR); -#endif -#ifdef __WXMSW__ - SetCursor(wxCursor()); -#endif - - - if (event.LeftDown()) - { - if ( SashHitTest(x, y) ) - { - CaptureMouse(); - - m_dragMode = wxSPLIT_DRAG_DRAGGING; - - if ((GetWindowStyleFlag() & wxSP_LIVE_UPDATE) == 0) - { - DrawSashTracker(x, y); - } - - m_oldX = x; - m_oldY = y; - return; - } - } - else if (event.LeftUp() && m_dragMode == wxSPLIT_DRAG_DRAGGING) - { - // We can stop dragging now and see what we've got. - m_dragMode = wxSPLIT_DRAG_NONE; - ReleaseMouse(); - - // Erase old tracker - if ((GetWindowStyleFlag() & wxSP_LIVE_UPDATE) == 0) - { - DrawSashTracker(m_oldX, m_oldY); - } - - // Obtain window size. We are only interested in the dimension the sash - // splits up - int w, h; - GetClientSize(&w, &h); - int window_size = (m_splitMode == wxSPLIT_VERTICAL ? w : h ); - int new_sash_position = - (int) ( m_splitMode == wxSPLIT_VERTICAL ? x : y ); - - wxSplitterEvent eventSplitter(wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED, - this); - eventSplitter.m_data.pos = new_sash_position; - if ( GetEventHandler()->ProcessEvent(eventSplitter) ) - { - new_sash_position = eventSplitter.GetSashPosition(); - if ( new_sash_position == -1 ) - { - // change not allowed - return; - } - } - - if ( m_permitUnsplitAlways - || m_minimumPaneSize == 0 ) - { - // Deal with possible unsplit scenarios - if ( new_sash_position == 0 ) - { - // We remove the first window from the view - wxWindow *removedWindow = m_windowOne; - m_windowOne = m_windowTwo; - m_windowTwo = (wxWindow *) NULL; - SendUnsplitEvent(removedWindow); - m_sashPosition = 0; - } - else if ( new_sash_position == window_size ) - { - // We remove the second window from the view - wxWindow *removedWindow = m_windowTwo; - m_windowTwo = (wxWindow *) NULL; - SendUnsplitEvent(removedWindow); - m_sashPosition = 0; - } - else - { - m_sashPosition = new_sash_position; - } - } - else - { - m_sashPosition = new_sash_position; - } - - SizeWindows(); - } // left up && dragging - else if (event.Moving() && !event.Dragging()) - { - // Just change the cursor if required - if ( SashHitTest(x, y) ) - { - if ( m_splitMode == wxSPLIT_VERTICAL ) - { - SetCursor(*m_sashCursorWE); - } - else - { - SetCursor(*m_sashCursorNS); - } - } -#ifdef __WXGTK__ - else - { - // where else do we unset the cursor? - SetCursor(* wxSTANDARD_CURSOR); - } -#endif // __WXGTK__ - } - else if (event.Dragging() && (m_dragMode == wxSPLIT_DRAG_DRAGGING)) - { - // Obtain window size. We are only interested in the dimension the sash - // splits up - int new_sash_position = - (int) ( m_splitMode == wxSPLIT_VERTICAL ? x : y ); - - wxSplitterEvent eventSplitter(wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING, - this); - eventSplitter.m_data.pos = new_sash_position; - if ( GetEventHandler()->ProcessEvent(eventSplitter) ) - { - new_sash_position = eventSplitter.GetSashPosition(); - if ( new_sash_position == -1 ) - { - // change not allowed - return; - } - } - - // Erase old tracker - if ((GetWindowStyleFlag() & wxSP_LIVE_UPDATE) == 0) - { - DrawSashTracker(m_oldX, m_oldY); - } - - if (m_splitMode == wxSPLIT_VERTICAL) - x = new_sash_position; - else - y = new_sash_position; - - if (new_sash_position != -1) - { - // Only modify if permitted - m_oldX = x; - m_oldY = y; - } - -#ifdef __WXMSW__ - // As we captured the mouse, we may get the mouse events from outside - // our window - for example, negative values in x, y. This has a weird - // consequence under MSW where we use unsigned values sometimes and - // signed ones other times: the coordinates turn as big positive - // numbers and so the sash is drawn on the *right* side of the window - // instead of the left (or bottom instead of top). Correct this. - if ( (short)m_oldX < 0 ) - m_oldX = 0; - if ( (short)m_oldY < 0 ) - m_oldY = 0; -#endif // __WXMSW__ - - // Draw new one - if ((GetWindowStyleFlag() & wxSP_LIVE_UPDATE) == 0) - { - DrawSashTracker(m_oldX, m_oldY); - } - else - { - m_sashPosition = new_sash_position; - m_needUpdating = TRUE; - } - } - else if ( event.LeftDClick() ) - { - wxSplitterEvent eventSplitter(wxEVT_COMMAND_SPLITTER_DOUBLECLICKED, - this); - eventSplitter.m_data.pt.x = x; - eventSplitter.m_data.pt.y = y; - - (void)GetEventHandler()->ProcessEvent(eventSplitter); - } -} - -void wxSplitterWindow::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - int cw, ch; - GetClientSize( &cw, &ch ); - if ( m_windowTwo ) - { - if ( m_splitMode == wxSPLIT_VERTICAL ) - { - if ( m_sashPosition >= (cw - 5) ) - m_sashPosition = wxMax(10, cw - 40); - } - if ( m_splitMode == wxSPLIT_HORIZONTAL ) - { - if ( m_sashPosition >= (ch - 5) ) - m_sashPosition = wxMax(10, ch - 40); - } - } - SizeWindows(); -} - -bool wxSplitterWindow::SashHitTest(int x, int y, int tolerance) -{ - if ( m_windowTwo == NULL || m_sashPosition == 0) - return FALSE; // No sash - - if ( m_splitMode == wxSPLIT_VERTICAL ) - { - if ( (x >= m_sashPosition - tolerance) && (x <= m_sashPosition + m_sashSize + tolerance) ) - return TRUE; - else - return FALSE; - } - else - { - if ( (y >= (m_sashPosition- tolerance)) && (y <= (m_sashPosition + m_sashSize + tolerance)) ) - return TRUE; - else - return FALSE; - } - - return FALSE; -} - -// Draw 3D effect borders -void wxSplitterWindow::DrawBorders(wxDC& dc) -{ - int w, h; - GetClientSize(&w, &h); - - if ( GetWindowStyleFlag() & wxSP_3D ) - { - dc.SetPen(*m_mediumShadowPen); - dc.DrawLine(0, 0, w-1, 0); - dc.DrawLine(0, 0, 0, h - 1); - - dc.SetPen(*m_darkShadowPen); - dc.DrawLine(1, 1, w-2, 1); - dc.DrawLine(1, 1, 1, h-2); - - dc.SetPen(*m_hilightPen); - dc.DrawLine(0, h-1, w-1, h-1); - dc.DrawLine(w-1, 0, w-1, h); // Surely the maximum y pos. should be h - 1. - /// Anyway, h is required for MSW. - - dc.SetPen(*m_lightShadowPen); - dc.DrawLine(w-2, 1, w-2, h-2); // Right hand side - dc.DrawLine(1, h-2, w-1, h-2); // Bottom - } - else if ( GetWindowStyleFlag() & wxSP_BORDER ) - { - dc.SetBrush(*wxTRANSPARENT_BRUSH); - dc.SetPen(*wxBLACK_PEN); - dc.DrawRectangle(0, 0, w-1, h-1); - } - - dc.SetPen(wxNullPen); - dc.SetBrush(wxNullBrush); -} - -// Draw the sash -void wxSplitterWindow::DrawSash(wxDC& dc) -{ - if ( m_sashPosition == 0 || !m_windowTwo) - return; - - int w, h; - GetClientSize(&w, &h); - - if ( GetWindowStyleFlag() & wxSP_3D ) - { - if ( m_splitMode == wxSPLIT_VERTICAL ) - { - dc.SetPen(*m_facePen); - dc.SetBrush(*m_faceBrush); - dc.DrawRectangle(m_sashPosition + 2, 0, m_sashSize - 4, h); - - dc.SetBrush(*wxTRANSPARENT_BRUSH); - - dc.SetPen(*m_lightShadowPen); - dc.DrawLine(m_sashPosition, 1, m_sashPosition, h-2); - - dc.SetPen(*m_hilightPen); - dc.DrawLine(m_sashPosition+1, 0, m_sashPosition+1, h); - - dc.SetPen(*m_mediumShadowPen); - dc.DrawLine(m_sashPosition+m_sashSize-2, 1, m_sashPosition+m_sashSize-2, h-1); - - dc.SetPen(*m_darkShadowPen); - dc.DrawLine(m_sashPosition+m_sashSize-1, 2, m_sashPosition+m_sashSize-1, h-2); - } - else - { - dc.SetPen(*m_facePen); - dc.SetBrush(*m_faceBrush); - dc.DrawRectangle(0, m_sashPosition + 2, w, m_sashSize - 4); - - dc.SetBrush(*wxTRANSPARENT_BRUSH); - - dc.SetPen(*m_lightShadowPen); - dc.DrawLine(1, m_sashPosition, w-2, m_sashPosition); - - dc.SetPen(*m_hilightPen); - dc.DrawLine(0, m_sashPosition+1, w, m_sashPosition+1); - - dc.SetPen(*m_mediumShadowPen); - dc.DrawLine(1, m_sashPosition+m_sashSize-2, w-1, m_sashPosition+m_sashSize-2); - - dc.SetPen(*m_darkShadowPen); - dc.DrawLine(2, m_sashPosition+m_sashSize-1, w-2, m_sashPosition+m_sashSize-1); - } - } - else - { - if ( m_splitMode == wxSPLIT_VERTICAL ) - { - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxBLACK_BRUSH); - int h1 = h-1; - if ( (GetWindowStyleFlag() & wxSP_BORDER) != wxSP_BORDER ) - h1 += 1; // Not sure why this is necessary... - dc.DrawRectangle(m_sashPosition, 0, m_sashSize, h1); - } - else - { - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxBLACK_BRUSH); - int w1 = w-1; - if ( (GetWindowStyleFlag() & wxSP_BORDER) != wxSP_BORDER ) - w1 ++; - - dc.DrawRectangle(0, m_sashPosition, w1, m_sashSize); - } - - } - - dc.SetPen(wxNullPen); - dc.SetBrush(wxNullBrush); -} - -// Draw the sash tracker (for whilst moving the sash) -void wxSplitterWindow::DrawSashTracker(int x, int y) -{ - int w, h; - GetClientSize(&w, &h); - - wxScreenDC screenDC; - int x1, y1; - int x2, y2; - - if ( m_splitMode == wxSPLIT_VERTICAL ) - { - x1 = x; y1 = 2; - x2 = x; y2 = h-2; - - if ( x1 > w ) - { - x1 = w; x2 = w; - } - else if ( x1 < 0 ) - { - x1 = 0; x2 = 0; - } - } - else - { - x1 = 2; y1 = y; - x2 = w-2; y2 = y; - - if ( y1 > h ) - { - y1 = h; - y2 = h; - } - else if ( y1 < 0 ) - { - y1 = 0; - y2 = 0; - } - } - - ClientToScreen(&x1, &y1); - ClientToScreen(&x2, &y2); - - screenDC.SetLogicalFunction(wxINVERT); - screenDC.SetPen(*m_sashTrackerPen); - screenDC.SetBrush(*wxTRANSPARENT_BRUSH); - - screenDC.DrawLine(x1, y1, x2, y2); - - screenDC.SetLogicalFunction(wxCOPY); - - screenDC.SetPen(wxNullPen); - screenDC.SetBrush(wxNullBrush); -} - -// Position and size subwindows. -// Note that the border size applies to each subwindow, not -// including the edges next to the sash. -void wxSplitterWindow::SizeWindows() -{ - int w, h; - GetClientSize(&w, &h); - - if ( m_windowOne && !m_windowTwo ) - { - m_windowOne->SetSize(m_borderSize, m_borderSize, w - 2*m_borderSize, h - 2*m_borderSize); - - if (m_windowOne->GetAutoLayout()) - m_windowOne->Layout(); - } - else if ( m_windowOne && m_windowTwo ) - { - if (m_splitMode == wxSPLIT_VERTICAL) - { - int x1 = m_borderSize; - int y1 = m_borderSize; - int w1 = m_sashPosition - m_borderSize; - int h1 = h - 2*m_borderSize; - - int x2 = m_sashPosition + m_sashSize; - int y2 = m_borderSize; - int w2 = w - 2*m_borderSize - m_sashSize - w1; - int h2 = h - 2*m_borderSize; - - m_windowOne->SetSize(x1, y1, w1, h1); - m_windowTwo->SetSize(x2, y2, w2, h2); - - if (m_windowOne->GetAutoLayout()) - m_windowOne->Layout(); - if (m_windowTwo->GetAutoLayout()) - m_windowTwo->Layout(); - } - else - { - m_windowOne->SetSize(m_borderSize, m_borderSize, - w - 2*m_borderSize, m_sashPosition - m_borderSize); - m_windowTwo->SetSize(m_borderSize, m_sashPosition + m_sashSize, - w - 2*m_borderSize, h - 2*m_borderSize - m_sashSize - (m_sashPosition - m_borderSize)); - - if (m_windowOne->GetAutoLayout()) - m_windowOne->Layout(); - if (m_windowTwo->GetAutoLayout()) - m_windowTwo->Layout(); - } - } - wxClientDC dc(this); - DrawBorders(dc); - DrawSash(dc); -} - -// Set pane for unsplit window -void wxSplitterWindow::Initialize(wxWindow *window) -{ - m_windowOne = window; - m_windowTwo = (wxWindow *) NULL; - m_sashPosition = 0; -} - -// Associates the given window with window 2, drawing the appropriate sash -// and changing the split mode. -// Does nothing and returns FALSE if the window is already split. -bool wxSplitterWindow::SplitVertically(wxWindow *window1, wxWindow *window2, int sashPosition) -{ - if ( IsSplit() ) - return FALSE; - - int w, h; - GetClientSize(&w, &h); - - m_splitMode = wxSPLIT_VERTICAL; - m_windowOne = window1; - m_windowTwo = window2; - if ( sashPosition > 0 ) - m_sashPosition = sashPosition; - else if ( sashPosition < 0 ) - m_sashPosition = w - sashPosition; - else // default - m_sashPosition = w/2; - - SizeWindows(); - - return TRUE; -} - -bool wxSplitterWindow::SplitHorizontally(wxWindow *window1, wxWindow *window2, int sashPosition) -{ - if ( IsSplit() ) - return FALSE; - - int w, h; - GetClientSize(&w, &h); - - m_splitMode = wxSPLIT_HORIZONTAL; - m_windowOne = window1; - m_windowTwo = window2; - if ( sashPosition > 0 ) - m_sashPosition = sashPosition; - else if ( sashPosition < 0 ) - m_sashPosition = h - sashPosition; - else // default - m_sashPosition = h/2; - - SizeWindows(); - - return TRUE; -} - - -// Remove the specified (or second) window from the view -// Doesn't actually delete the window. -bool wxSplitterWindow::Unsplit(wxWindow *toRemove) -{ - if ( ! IsSplit() ) - return FALSE; - - wxWindow *win = NULL; - if ( toRemove == NULL || toRemove == m_windowTwo) - { - win = m_windowTwo ; - m_windowTwo = (wxWindow *) NULL; - } - else if ( toRemove == m_windowOne ) - { - win = m_windowOne ; - m_windowOne = m_windowTwo; - m_windowTwo = (wxWindow *) NULL; - } - else - { - wxFAIL_MSG(_T("splitter: attempt to remove a non-existent window")); - - return FALSE; - } - - SendUnsplitEvent(win); - m_sashPosition = 0; - SizeWindows(); - - return TRUE; -} - -// Replace a window with another one -bool wxSplitterWindow::ReplaceWindow(wxWindow *winOld, wxWindow *winNew) -{ - wxCHECK_MSG( winOld, FALSE, _T("use one of Split() functions instead") ); - wxCHECK_MSG( winNew, FALSE, _T("use Unsplit() functions instead") ); - - if ( winOld == m_windowTwo ) - { - m_windowTwo = winNew; - } - else if ( winOld == m_windowOne ) - { - m_windowOne = winNew; - } - else - { - wxFAIL_MSG(_T("splitter: attempt to replace a non-existent window")); - - return FALSE; - } - - SizeWindows(); - - return TRUE; -} - -void wxSplitterWindow::SetSashPosition(int position, bool redraw) -{ - m_sashPosition = position; - - if ( redraw ) - { - SizeWindows(); - } -} - -// Initialize colours -void wxSplitterWindow::InitColours() -{ - wxDELETE( m_facePen ); - wxDELETE( m_faceBrush ); - wxDELETE( m_mediumShadowPen ); - wxDELETE( m_darkShadowPen ); - wxDELETE( m_lightShadowPen ); - wxDELETE( m_hilightPen ); - - // Shadow colours -#if defined(__WIN95__) - wxColour faceColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - m_facePen = new wxPen(faceColour, 1, wxSOLID); - m_faceBrush = new wxBrush(faceColour, wxSOLID); - - wxColour mediumShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW)); - m_mediumShadowPen = new wxPen(mediumShadowColour, 1, wxSOLID); - - wxColour darkShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DDKSHADOW)); - m_darkShadowPen = new wxPen(darkShadowColour, 1, wxSOLID); - - wxColour lightShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DLIGHT)); - m_lightShadowPen = new wxPen(lightShadowColour, 1, wxSOLID); - - wxColour hilightColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT)); - m_hilightPen = new wxPen(hilightColour, 1, wxSOLID); -#else // !Win32 - m_facePen = new wxPen("LIGHT GREY", 1, wxSOLID); - m_faceBrush = new wxBrush("LIGHT GREY", wxSOLID); - m_mediumShadowPen = new wxPen("GREY", 1, wxSOLID); - m_darkShadowPen = new wxPen("BLACK", 1, wxSOLID); - m_lightShadowPen = new wxPen("LIGHT GREY", 1, wxSOLID); - m_hilightPen = new wxPen("WHITE", 1, wxSOLID); -#endif // Win32/!Win32 -} - -void wxSplitterWindow::SendUnsplitEvent(wxWindow *winRemoved) -{ - wxSplitterEvent event(wxEVT_COMMAND_SPLITTER_UNSPLIT, this); - event.m_data.win = winRemoved; - - (void)GetEventHandler()->ProcessEvent(event); -} - -// --------------------------------------------------------------------------- -// splitter event handlers -// --------------------------------------------------------------------------- - -void wxSplitterWindow::OnSashPosChanged(wxSplitterEvent& event) -{ - // If within UNSPLIT_THRESHOLD from edge, set to edge to cause closure. - const int UNSPLIT_THRESHOLD = 4; - - int newSashPosition = event.GetSashPosition(); - - // Obtain relevant window dimension for bottom / right threshold check - int w, h; - GetClientSize(&w, &h); - int window_size = (m_splitMode == wxSPLIT_VERTICAL) ? w : h ; - - bool unsplit_scenario = FALSE; - if ( m_permitUnsplitAlways - || m_minimumPaneSize == 0 ) - { - // Do edge detection if unsplit premitted - if ( newSashPosition <= UNSPLIT_THRESHOLD ) - { - // threshold top / left check - newSashPosition = 0; - unsplit_scenario = TRUE; - } - if ( newSashPosition >= window_size - UNSPLIT_THRESHOLD ) - { - // threshold bottom/right check - newSashPosition = window_size; - unsplit_scenario = TRUE; - } - } - - if ( !unsplit_scenario ) - { - // If resultant pane would be too small, enlarge it - if ( newSashPosition < m_minimumPaneSize ) - newSashPosition = m_minimumPaneSize; - if ( newSashPosition > window_size - m_minimumPaneSize ) - newSashPosition = window_size - m_minimumPaneSize; - } - - // If the result is out of bounds it means minimum size is too big, - // so split window in half as best compromise. - if ( newSashPosition < 0 || newSashPosition > window_size ) - newSashPosition = window_size / 2; - - // for compatibility, call the virtual function - if ( !OnSashPositionChange(newSashPosition) ) - { - newSashPosition = -1; - } - - event.SetSashPosition(newSashPosition); -} - -// Called when the sash is double-clicked. The default behaviour is to remove -// the sash if the minimum pane size is zero. -void wxSplitterWindow::OnDoubleClick(wxSplitterEvent& event) -{ - // for compatibility, call the virtual function - OnDoubleClickSash(event.GetX(), event.GetY()); - - if ( GetMinimumPaneSize() == 0 - || m_permitUnsplitAlways) - { - Unsplit(); - } -} - -void wxSplitterWindow::OnUnsplitEvent(wxSplitterEvent& event) -{ - wxWindow *win = event.GetWindowBeingRemoved(); - - // for compatibility, call the virtual function - OnUnsplit(win); - - win->Show(FALSE); -} diff --git a/src/generic/statusbr.cpp b/src/generic/statusbr.cpp deleted file mode 100644 index 00940d7e0e..0000000000 --- a/src/generic/statusbr.cpp +++ /dev/null @@ -1,339 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statusbr.cpp -// Purpose: wxStatusBar class implementation -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statusbr.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/frame.h" -#include "wx/settings.h" -#include "wx/dcclient.h" -#endif - -#include "wx/generic/statusbr.h" - -#ifdef __WXMSW__ -#include -#include "wx/msw/winundef.h" -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxWindow) - -BEGIN_EVENT_TABLE(wxStatusBar, wxWindow) - EVT_PAINT(wxStatusBar::OnPaint) - EVT_SYS_COLOUR_CHANGED(wxStatusBar::OnSysColourChanged) -END_EVENT_TABLE() -#endif - -// Default status border dimensions -#define wxTHICK_LINE_BORDER 2 -#define wxTHICK_LINE_WIDTH 1 - -wxStatusBar::wxStatusBar(void) -{ - m_statusWidths = (int *) NULL; - m_statusStrings = (wxString *) NULL; - m_nFields = 0; - m_borderX = wxTHICK_LINE_BORDER; - m_borderY = wxTHICK_LINE_BORDER; -} - -wxStatusBar::~wxStatusBar(void) -{ -# ifdef __WXMSW__ - SetFont(wxNullFont); -# endif // MSW - - if ( m_statusWidths ) - delete[] m_statusWidths; - if ( m_statusStrings ) - delete[] m_statusStrings; -} - -bool wxStatusBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_statusWidths = (int *) NULL; - m_statusStrings = (wxString *) NULL; - m_nFields = 0; - m_borderX = wxTHICK_LINE_BORDER; - m_borderY = wxTHICK_LINE_BORDER; - - bool success = wxWindow::Create(parent, id, pos, size, style | wxTAB_TRAVERSAL, name); - - // Don't wish this to be found as a child - parent->GetChildren().DeleteObject(this); - - InitColours(); - - SetFont(m_defaultStatusBarFont); - - return success; -} - -void wxStatusBar::SetFieldsCount(int number, const int widths[]) -{ - m_nFields = number; - - if ( m_statusWidths ) - delete[] m_statusWidths; - - if ( m_statusStrings ) - delete[] m_statusStrings; - - m_statusStrings = new wxString[number]; - - int i; - for (i = 0; i < number; i++) - m_statusStrings[i] = ""; - - if ( widths ) - SetStatusWidths(number, widths); -} - -void wxStatusBar::SetStatusText(const wxString& text, int number) -{ - if ((number < 0) || (number >= m_nFields)) - return; - - m_statusStrings[number] = text; - - Refresh(); - -#ifdef __WXMSW__ - // For some reason, this can cause major GDI problems - graphics - // all over the place. E.g. in print previewing. -// ::UpdateWindow((HWND) GetHWND()); -#endif -} - -wxString wxStatusBar::GetStatusText(int n) const -{ - if ((n < 0) || (n >= m_nFields)) - return wxString(""); - else - return m_statusStrings[n]; -} - -void wxStatusBar::SetStatusWidths(int n, const int widths_field[]) -{ - // only set status widths, when n == number of statuswindows - if (n == m_nFields) - { - // only set status widths, - // when one window (minimum) is variable (width <= 0) - bool is_variable = FALSE; - int i; - for (i = 0; i < m_nFields; i++) - { - if (widths_field[i] <= 0) is_variable = TRUE; - } - - // if there are old widths, delete them - if (m_statusWidths) - delete [] m_statusWidths; - - // set widths - m_statusWidths = new int[n]; - for (i = 0; i < m_nFields; i++) - { - m_statusWidths[i] = widths_field[i]; - } - } -} - -void wxStatusBar::OnPaint(wxPaintEvent& WXUNUSED(event) ) -{ - wxPaintDC dc(this); - - int i; - if ( GetFont().Ok() ) - dc.SetFont(GetFont()); - dc.SetBackgroundMode(wxTRANSPARENT); - - for ( i = 0; i < m_nFields; i ++ ) - DrawField(dc, i); - -# ifdef __WXMSW__ - dc.SetFont(wxNullFont); -# endif // MSW -} - -void wxStatusBar::DrawFieldText(wxDC& dc, int i) -{ - int leftMargin = 2; - - wxRect rect; - GetFieldRect(i, rect); - - wxString text(GetStatusText(i)); - - long x, y; - - dc.GetTextExtent(text, &x, &y); - - int xpos = rect.x + leftMargin; - int ypos = (int) (((rect.height - y) / 2 ) + rect.y + 0.5) ; - -#ifdef __WXGTK__ - xpos++; - ypos++; -#endif - - dc.SetClippingRegion(rect.x, rect.y, rect.width, rect.height); - - dc.DrawText(text, xpos, ypos); - - dc.DestroyClippingRegion(); -} - -void wxStatusBar::DrawField(wxDC& dc, int i) -{ - wxRect rect; - GetFieldRect(i, rect); - - // Draw border - // Have grey background, plus 3-d border - - // One black rectangle. - // Inside this, left and top sides - dark grey. Bottom and right - - // white. - - dc.SetPen(m_hilightPen); - - // Right and bottom white lines - dc.DrawLine(rect.x + rect.width, rect.y, - rect.x + rect.width, rect.y + rect.height); - dc.DrawLine(rect.x + rect.width, rect.y + rect.height, - rect.x, rect.y + rect.height); - - dc.SetPen(m_mediumShadowPen); - - // Left and top grey lines - dc.DrawLine(rect.x, rect.y + rect.height, - rect.x, rect.y); - dc.DrawLine(rect.x, rect.y, - rect.x + rect.width, rect.y); - - DrawFieldText(dc, i); -} - - // Get the position and size of the field's internal bounding rectangle -bool wxStatusBar::GetFieldRect(int n, wxRect& rect) const -{ - if ((n < 0) || (n >= m_nFields)) - return FALSE; - - int width, height; - GetClientSize(&width, &height); - - int i; - int sum_of_nonvar = 0; - int num_of_var = 0; - bool do_same_width = FALSE; - - int fieldWidth = 0; - int fieldPosition = 0; - - if (m_statusWidths) - { - // if sum(not variable Windows) > c_width - (20 points per variable_window) - // then do_same_width = TRUE; - for (i = 0; i < m_nFields; i++) - { - if (m_statusWidths[i] > 0) sum_of_nonvar += m_statusWidths[i]; - else num_of_var++; - } - if (sum_of_nonvar > (width - 20*num_of_var)) do_same_width = TRUE; - } - else do_same_width = TRUE; - if (do_same_width) - { - for (i = 0; i < m_nFields; i++) - { - fieldWidth = (int)(width/m_nFields); - fieldPosition = i*fieldWidth; - if ( i == n ) - break; - } - } - else // no_same_width - { - int *tempwidth = new int[m_nFields]; - int temppos = 0; - for (i = 0; i < m_nFields; i++) - { - if (m_statusWidths[i] > 0) tempwidth[i] = m_statusWidths[i]; - else tempwidth[i] = (width - sum_of_nonvar) / num_of_var; - } - for (i = 0; i < m_nFields; i++) - { - fieldWidth = tempwidth[i]; - fieldPosition = temppos; - - temppos += tempwidth[i]; - - if ( i == n ) - break; - } - delete [] tempwidth; - } - - rect.x = fieldPosition + wxTHICK_LINE_BORDER; - rect.y = wxTHICK_LINE_BORDER; - - rect.width = fieldWidth - 2 * wxTHICK_LINE_BORDER ; - rect.height = height - 2 * wxTHICK_LINE_BORDER ; - - return TRUE; -} - -// Initialize colours -void wxStatusBar::InitColours(void) -{ - // Shadow colours -#if defined(__WIN95__) - wxColour mediumShadowColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW)); - m_mediumShadowPen = wxPen(mediumShadowColour, 1, wxSOLID); - - wxColour hilightColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT)); - m_hilightPen = wxPen(hilightColour, 1, wxSOLID); -#else - m_mediumShadowPen = wxPen("GREY", 1, wxSOLID); - m_hilightPen = wxPen("WHITE", 1, wxSOLID); -#endif - - m_defaultStatusBarFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -} - -// Responds to colour changes, and passes event on to children. -void wxStatusBar::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - InitColours(); - Refresh(); - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - diff --git a/src/generic/tabg.cpp b/src/generic/tabg.cpp deleted file mode 100644 index c46ff59cd3..0000000000 --- a/src/generic/tabg.cpp +++ /dev/null @@ -1,1277 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabg.cpp -// Purpose: Generic tabbed dialogs -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include -#include -#include -#include - -#include "wx/tab.h" - -// not defined: use old, square tab implementation (fills in tabs) -// defined: use new, rounded tab implementation (doesn't colour in tabs) -// #define wxUSE_NEW_METHOD - -IMPLEMENT_DYNAMIC_CLASS(wxTabControl, wxObject) - -IMPLEMENT_DYNAMIC_CLASS(wxTabLayer, wxList) - -wxTabControl::wxTabControl(wxTabView *v) -{ - m_view = v; - m_isSelected = FALSE; - m_offsetX = 0; - m_offsetY = 0; - m_width = 0; - m_height = 0; - m_id = 0; - m_rowPosition = 0; - m_colPosition = 0; -} - -wxTabControl::~wxTabControl(void) -{ -} - -void wxTabControl::OnDraw(wxDC& dc, bool lastInRow) -{ - // Old, but in some ways better (drawing opaque tabs) -#ifndef wxUSE_NEW_METHOD - if (!m_view) - return; - - // Top-left of tab view area - int viewX = m_view->GetViewRect().x; - int viewY = m_view->GetViewRect().y; - - // Top-left of tab control - int tabX = GetX() + viewX; - int tabY = GetY() + viewY; - int tabHeightInc = 0; - if (m_isSelected) - { - tabHeightInc = (m_view->GetTabSelectionHeight() - m_view->GetTabHeight()); - tabY -= tabHeightInc; - } - - dc.SetPen(*wxTRANSPARENT_PEN); - - // Draw grey background - if (m_view->GetTabStyle() & wxTAB_STYLE_COLOUR_INTERIOR) - { - dc.SetBrush(*m_view->GetBackgroundBrush()); - - // Add 1 because the pen is transparent. Under Motif, may be different. -#ifdef __WXMOTIF__ - dc.DrawRectangle(tabX, tabY, (GetWidth()+1), (GetHeight() + tabHeightInc)); -#else - dc.DrawRectangle(tabX, tabY, (GetWidth()+1), (GetHeight() + 1 + tabHeightInc)); -#endif - } - - // Draw highlight and shadow - dc.SetPen(*m_view->GetHighlightPen()); - - // Calculate the top of the tab beneath. It's the height of the tab, MINUS - // a bit if the tab below happens to be selected. Check. - wxTabControl *tabBeneath = NULL; - int subtractThis = 0; - if (GetColPosition() > 0) - tabBeneath = m_view->FindTabControlForPosition(GetColPosition() - 1, GetRowPosition()); - if (tabBeneath && tabBeneath->IsSelected()) - subtractThis = (m_view->GetTabSelectionHeight() - m_view->GetTabHeight()); - - // Vertical highlight: if first tab, draw to bottom of view - if (tabX == m_view->GetViewRect().x && (m_view->GetTabStyle() & wxTAB_STYLE_DRAW_BOX)) - dc.DrawLine(tabX, tabY, tabX, (m_view->GetViewRect().y + m_view->GetViewRect().height)); - else if (tabX == m_view->GetViewRect().x) - // Not box drawing, just to top of view. - dc.DrawLine(tabX, tabY, tabX, (m_view->GetViewRect().y)); - else - dc.DrawLine(tabX, tabY, tabX, (tabY + GetHeight() + tabHeightInc - subtractThis)); - - dc.DrawLine(tabX, tabY, (tabX + GetWidth()), tabY); - dc.SetPen(*m_view->GetShadowPen()); - - // Test if we're outside the right-hand edge of the view area - if (((tabX + GetWidth()) >= m_view->GetViewRect().x + m_view->GetViewRect().width) && (m_view->GetTabStyle() & wxTAB_STYLE_DRAW_BOX)) - { - int bottomY = m_view->GetViewRect().y + m_view->GetViewRect().height + GetY() + m_view->GetTabHeight() + m_view->GetTopMargin(); - // Add a tab height since we wish to draw to the bottom of the view. - dc.DrawLine((tabX + GetWidth()), tabY, - (tabX + GetWidth()), bottomY); - - // Calculate the far-right of the view, since we don't wish to - // draw inside that - int rightOfView = m_view->GetViewRect().x + m_view->GetViewRect().width + 1; - - // Draw the horizontal bit to connect to the view rectangle - dc.DrawLine((wxMax((tabX + GetWidth() - m_view->GetHorizontalTabOffset()), rightOfView)), (bottomY-1), - (tabX + GetWidth()), (bottomY-1)); - - // Draw black line to emphasize shadow - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine((tabX + GetWidth() + 1), (tabY+1), - (tabX + GetWidth() + 1), bottomY); - - // Draw the horizontal bit to connect to the view rectangle - dc.DrawLine((wxMax((tabX + GetWidth() - m_view->GetHorizontalTabOffset()), rightOfView)), (bottomY), - (tabX + GetWidth() + 1), (bottomY)); - } - else - { - if (lastInRow) - { - // 25/5/97 UNLESS it's less than the max number of positions in this row - - int topY = m_view->GetViewRect().y - m_view->GetTopMargin(); - - int maxPositions = ((wxTabLayer *)m_view->GetLayers().Nth(0)->Data())->Number(); - - // Only down to the bottom of the tab, not to the top of the view - if ( GetRowPosition() < (maxPositions - 1) ) - topY = tabY + GetHeight() + tabHeightInc; - -#ifdef __WXMOTIF__ - topY -= 1; -#endif - - // Shadow - dc.DrawLine((tabX + GetWidth()), tabY, (tabX + GetWidth()), topY); - // Draw black line to emphasize shadow - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine((tabX + GetWidth() + 1), (tabY+1), (tabX + GetWidth() + 1), - topY); - } - else - { - // Calculate the top of the tab beneath. It's the height of the tab, MINUS - // a bit if the tab below (and next col along) happens to be selected. Check. - wxTabControl *tabBeneath = NULL; - int subtractThis = 0; - if (GetColPosition() > 0) - tabBeneath = m_view->FindTabControlForPosition(GetColPosition() - 1, GetRowPosition() + 1); - if (tabBeneath && tabBeneath->IsSelected()) - subtractThis = (m_view->GetTabSelectionHeight() - m_view->GetTabHeight()); - -#ifdef __WXMOTIF__ - subtractThis += 1; -#endif - - // Draw only to next tab down. - dc.DrawLine((tabX + GetWidth()), tabY, - (tabX + GetWidth()), (tabY + GetHeight() + tabHeightInc - subtractThis)); - - // Draw black line to emphasize shadow - dc.SetPen(*wxBLACK_PEN); - dc.DrawLine((tabX + GetWidth() + 1), (tabY+1), (tabX + GetWidth() + 1), - (tabY + GetHeight() + tabHeightInc - subtractThis)); - } - } - - // Draw centered text - int textY = tabY + m_view->GetVerticalTabTextSpacing() + tabHeightInc; - - if (m_isSelected) - dc.SetFont(* m_view->GetSelectedTabFont()); - else - dc.SetFont(* GetFont()); - - wxColour col(m_view->GetTextColour()); - dc.SetTextForeground(col); - dc.SetBackgroundMode(wxTRANSPARENT); - long textWidth, textHeight; - dc.GetTextExtent(GetLabel(), &textWidth, &textHeight); - - int textX = (int)(tabX + (GetWidth() - textWidth)/2.0); - if (textX < (tabX + 2)) - textX = (tabX + 2); - - dc.SetClippingRegion(tabX, tabY, GetWidth(), GetHeight()); - dc.DrawText(GetLabel(), textX, textY); - dc.DestroyClippingRegion(); - - if (m_isSelected) - { - dc.SetPen(*m_view->GetHighlightPen()); - - // Draw white highlight from the tab's left side to the left hand edge of the view - dc.DrawLine(m_view->GetViewRect().x, (tabY + GetHeight() + tabHeightInc), - tabX, (tabY + GetHeight() + tabHeightInc)); - - // Draw white highlight from the tab's right side to the right hand edge of the view - dc.DrawLine((tabX + GetWidth()), (tabY + GetHeight() + tabHeightInc), - m_view->GetViewRect().x + m_view->GetViewRect().width, (tabY + GetHeight() + tabHeightInc)); - } -#else - // New HEL version with rounder tabs - - if (!m_view) return; - - int tabInc = 0; - if (m_isSelected) - { - tabInc = m_view->GetTabSelectionHeight() - m_view->GetTabHeight(); - } - int tabLeft = GetX() + m_view->GetViewRect().x; - int tabTop = GetY() + m_view->GetViewRect().y - tabInc; - int tabRight = tabLeft + m_view->GetTabWidth(); - int left = m_view->GetViewRect().x; - int top = tabTop + m_view->GetTabHeight() + tabInc; - int right = left + m_view->GetViewRect().width; - int bottom = top + m_view->GetViewRect().height; - - if (m_isSelected) - { - // TAB is selected - draw TAB and the View's full outline - - dc.SetPen(*(m_view->GetHighlightPen())); - wxPoint pnts[10]; - int n = 0; - pnts[n].x = left; pnts[n++].y = bottom; - pnts[n].x = left; pnts[n++].y = top; - pnts[n].x = tabLeft; pnts[n++].y = top; - pnts[n].x = tabLeft; pnts[n++].y = tabTop + 2; - pnts[n].x = tabLeft + 2; pnts[n++].y = tabTop; - pnts[n].x = tabRight - 1; pnts[n++].y = tabTop; - dc.DrawLines(n, pnts); - if (!lastInRow) - { - dc.DrawLine( - (tabRight + 2), - top, - right, - top - ); - } - - dc.SetPen(*(m_view->GetShadowPen())); - dc.DrawLine( - tabRight, - tabTop + 2, - tabRight, - top - ); - dc.DrawLine( - right, - top, - right, - bottom - ); - dc.DrawLine( - right, - bottom, - left, - bottom - ); - - dc.SetPen(*wxBLACK_PEN); - dc.DrawPoint( - tabRight, - tabTop + 1 - ); - dc.DrawPoint( - tabRight + 1, - tabTop + 2 - ); - if (lastInRow) - { - dc.DrawLine( - tabRight + 1, - bottom, - tabRight + 1, - tabTop + 1 - ); - } - else - { - dc.DrawLine( - tabRight + 1, - tabTop + 2, - tabRight + 1, - top - ); - dc.DrawLine( - right + 1, - top, - right + 1, - bottom + 1 - ); - } - dc.DrawLine( - right + 1, - bottom + 1, - left + 1, - bottom + 1 - ); - } - else - { - // TAB is not selected - just draw TAB outline and RH edge - // if the TAB is the last in the row - - int maxPositions = ((wxTabLayer*)m_view->GetLayers().Nth(0)->Data())->Number(); - wxTabControl* tabBelow = 0; - wxTabControl* tabBelowRight = 0; - if (GetColPosition() > 0) - { - tabBelow = m_view->FindTabControlForPosition( - GetColPosition() - 1, - GetRowPosition() - ); - } - if (!lastInRow && GetColPosition() > 0) - { - tabBelowRight = m_view->FindTabControlForPosition( - GetColPosition() - 1, - GetRowPosition() + 1 - ); - } - - float raisedTop = top - m_view->GetTabSelectionHeight() + - m_view->GetTabHeight(); - - dc.SetPen(*(m_view->GetHighlightPen())); - wxPoint pnts[10]; - int n = 0; - - pnts[n].x = tabLeft; - - if (tabBelow && tabBelow->IsSelected()) - { - pnts[n++].y = (long)raisedTop; - } - else - { - pnts[n++].y = top; - } - pnts[n].x = tabLeft; pnts[n++].y = tabTop + 2; - pnts[n].x = tabLeft + 2; pnts[n++].y = tabTop; - pnts[n].x = tabRight - 1; pnts[n++].y = tabTop; - dc.DrawLines(n, pnts); - - dc.SetPen(*(m_view->GetShadowPen())); - if (GetRowPosition() >= maxPositions - 1) - { - dc.DrawLine( - tabRight, - (tabTop + 2), - tabRight, - bottom - ); - dc.DrawLine( - tabRight, - bottom, - (tabRight - m_view->GetHorizontalTabOffset()), - bottom - ); - } - else - { - if (tabBelowRight && tabBelowRight->IsSelected()) - { - dc.DrawLine( - tabRight, - (long)raisedTop, - tabRight, - tabTop + 1 - ); - } - else - { - dc.DrawLine( - tabRight, - top - 1, - tabRight, - tabTop + 1 - ); - } - } - - dc.SetPen(*wxBLACK_PEN); - dc.DrawPoint( - tabRight, - tabTop + 1 - ); - dc.DrawPoint( - tabRight + 1, - tabTop + 2 - ); - if (GetRowPosition() >= maxPositions - 1) - { - // draw right hand edge to bottom of view - dc.DrawLine( - tabRight + 1, - bottom + 1, - tabRight + 1, - tabTop + 2 - ); - dc.DrawLine( - tabRight + 1, - bottom + 1, - (tabRight - m_view->GetHorizontalTabOffset()), - bottom + 1 - ); - } - else - { - // draw right hand edge of TAB - if (tabBelowRight && tabBelowRight->IsSelected()) - { - dc.DrawLine( - tabRight + 1, - (long)(raisedTop - 1), - tabRight + 1, - tabTop + 2 - ); - } - else - { - dc.DrawLine( - tabRight + 1, - top - 1, - tabRight + 1, - tabTop + 2 - ); - } - } - } - - // Draw centered text - dc.SetPen(*wxBLACK_PEN); - if (m_isSelected) - { - dc.SetFont(*(m_view->GetSelectedTabFont())); - } - else - { - dc.SetFont(*(GetFont())); - } - - wxColour col(m_view->GetTextColour()); - dc.SetTextForeground(col); - dc.SetBackgroundMode(wxTRANSPARENT); - long textWidth, textHeight; - dc.GetTextExtent(GetLabel(), &textWidth, &textHeight); - - float textX = (tabLeft + tabRight - textWidth) / 2; - float textY = (tabInc + tabTop + m_view->GetVerticalTabTextSpacing()); - - dc.DrawText(GetLabel(), (long)textX, (long)textY); -#endif -} - -bool wxTabControl::HitTest(int x, int y) const -{ - // Top-left of tab control - int tabX1 = GetX() + m_view->GetViewRect().x; - int tabY1 = GetY() + m_view->GetViewRect().y; - - // Bottom-right - int tabX2 = tabX1 + GetWidth(); - int tabY2 = tabY1 + GetHeight(); - - if (x >= tabX1 && y >= tabY1 && x <= tabX2 && y <= tabY2) - return TRUE; - else - return FALSE; -} - -IMPLEMENT_DYNAMIC_CLASS(wxTabView, wxObject) - -wxTabView::wxTabView(long style) -{ - m_noTabs = 0; - m_tabStyle = style; - m_tabSelection = -1; - m_tabHeight = 20; - m_tabSelectionHeight = m_tabHeight + 2; - m_tabWidth = 80; - m_tabHorizontalOffset = 10; - m_tabHorizontalSpacing = 2; - m_tabVerticalTextSpacing = 3; - m_topMargin = 5; - m_tabViewRect.x = 20; - m_tabViewRect.y = 20; - m_tabViewRect.width = 300; - m_tabViewRect.x = 300; - m_highlightColour = *wxWHITE; - m_shadowColour = wxColour(128, 128, 128); - m_backgroundColour = *wxLIGHT_GREY; - m_textColour = *wxBLACK; - m_highlightPen = wxWHITE_PEN; - m_shadowPen = wxGREY_PEN; - m_backgroundPen = wxLIGHT_GREY_PEN; - m_backgroundBrush = wxLIGHT_GREY_BRUSH; - m_tabFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - m_tabSelectedFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - m_window = (wxWindow *) NULL; -} - -wxTabView::~wxTabView() -{ - ClearTabs(TRUE); -} - -// Automatically positions tabs -// TODO: this should just add the tab to a list, and then -// a layout function (e.g. Realize) should be called when all tabs have been added. -// The view rect could easily change as the view window is resized. -wxTabControl *wxTabView::AddTab(int id, const wxString& label, wxTabControl *existingTab) -{ - // First, find which layer we should be adding to. - wxNode *node = m_layers.Last(); - if (!node) - { - wxTabLayer *newLayer = new wxTabLayer; - node = m_layers.Append(newLayer); - } - // Check if adding another tab control would go off the - // right-hand edge of the layer. - wxTabLayer *tabLayer = (wxTabLayer *)node->Data(); - wxNode *lastTabNode = tabLayer->Last(); - if (lastTabNode) - { - wxTabControl *lastTab = (wxTabControl *)lastTabNode->Data(); - // Start another layer (row). - // Tricky choice: can't just check if will be overlapping the edge, because - // this happens anyway for 2nd and subsequent rows. - // Should check this for 1st row, and then subsequent rows should not exceed 1st - // in length. - if (((tabLayer == m_layers.First()->Data()) && ((lastTab->GetX() + 2*lastTab->GetWidth() + GetHorizontalTabSpacing()) - > GetViewRect().width)) || - ((tabLayer != m_layers.First()->Data()) && (tabLayer->Number() == ((wxTabLayer *)m_layers.First()->Data())->Number()))) - { - tabLayer = new wxTabLayer; - m_layers.Append(tabLayer); - lastTabNode = (wxNode *) NULL; - } - } - int layer = m_layers.Number() - 1; - - wxTabControl *tabControl = existingTab; - if (!existingTab) - tabControl = OnCreateTabControl(); - tabControl->SetRowPosition(tabLayer->Number()); - tabControl->SetColPosition(layer); - - wxTabControl *lastTab = (wxTabControl *) NULL; - if (lastTabNode) - lastTab = (wxTabControl *)lastTabNode->Data(); - - // Top of new tab - int verticalOffset = (- GetTopMargin()) - ((layer+1)*GetTabHeight()); - // Offset from view top-left - int horizontalOffset = 0; - if (!lastTab) - horizontalOffset = layer*GetHorizontalTabOffset(); - else - horizontalOffset = lastTab->GetX() + GetTabWidth() + GetHorizontalTabSpacing(); - - tabControl->SetPosition(horizontalOffset, verticalOffset); - tabControl->SetSize(GetTabWidth(), GetTabHeight()); - tabControl->SetId(id); - tabControl->SetLabel(label); - tabControl->SetFont(* GetTabFont()); - - tabLayer->Append(tabControl); - m_noTabs ++; - - return tabControl; -} - -// Remove the tab without deleting the window -bool wxTabView::RemoveTab(int id) -{ - wxNode *layerNode = m_layers.First(); - while (layerNode) - { - wxTabLayer *layer = (wxTabLayer *)layerNode->Data(); - wxNode *tabNode = layer->First(); - while (tabNode) - { - wxTabControl *tab = (wxTabControl *)tabNode->Data(); - if (tab->GetId() == id) - { - if (id == m_tabSelection) - m_tabSelection = -1; - delete tab; - delete tabNode; - m_noTabs --; - - // The layout has changed - LayoutTabs(); - return TRUE; - } - tabNode = tabNode->Next(); - } - layerNode = layerNode->Next(); - } - return FALSE; -} - -bool wxTabView::SetTabText(int id, const wxString& label) -{ - wxTabControl* control = FindTabControlForId(id); - if (!control) - return FALSE; - control->SetLabel(label); - return TRUE; -} - -wxString wxTabView::GetTabText(int id) const -{ - wxTabControl* control = FindTabControlForId(id); - if (!control) - return wxEmptyString; - else - return control->GetLabel(); -} - -// Returns the total height of the tabs component -- this may be several -// times the height of a tab, if there are several tab layers (rows). -int wxTabView::GetTotalTabHeight() -{ - int minY = 0; - - wxNode *layerNode = m_layers.First(); - while (layerNode) - { - wxTabLayer *layer = (wxTabLayer *)layerNode->Data(); - wxNode *tabNode = layer->First(); - while (tabNode) - { - wxTabControl *tab = (wxTabControl *)tabNode->Data(); - - if (tab->GetY() < minY) - minY = tab->GetY(); - - tabNode = tabNode->Next(); - } - layerNode = layerNode->Next(); - } - - return - minY; -} - -void wxTabView::ClearTabs(bool deleteTabs) -{ - wxNode *layerNode = m_layers.First(); - while (layerNode) - { - wxTabLayer *layer = (wxTabLayer *)layerNode->Data(); - wxNode *tabNode = layer->First(); - while (tabNode) - { - wxTabControl *tab = (wxTabControl *)tabNode->Data(); - if (deleteTabs) - delete tab; - wxNode *next = tabNode->Next(); - delete tabNode; - tabNode = next; - } - wxNode *nextLayerNode = layerNode->Next(); - delete layer; - delete layerNode; - layerNode = nextLayerNode; - } - m_noTabs = 0; -} - - -// Layout tabs (optional, e.g. if resizing window) -void wxTabView::LayoutTabs(void) -{ - // Make a list of the tab controls, deleting the wxTabLayers. - wxList controls; - - wxNode *layerNode = m_layers.First(); - while (layerNode) - { - wxTabLayer *layer = (wxTabLayer *)layerNode->Data(); - wxNode *tabNode = layer->First(); - while (tabNode) - { - wxTabControl *tab = (wxTabControl *)tabNode->Data(); - controls.Append(tab); - wxNode *next = tabNode->Next(); - delete tabNode; - tabNode = next; - } - wxNode *nextLayerNode = layerNode->Next(); - delete layer; - delete layerNode; - layerNode = nextLayerNode; - } - - wxTabControl *lastTab = (wxTabControl *) NULL; - - wxTabLayer *currentLayer = new wxTabLayer; - m_layers.Append(currentLayer); - - wxNode *node = controls.First(); - while (node) - { - wxTabControl *tabControl = (wxTabControl *)node->Data(); - if (lastTab) - { - // Start another layer (row). - // Tricky choice: can't just check if will be overlapping the edge, because - // this happens anyway for 2nd and subsequent rows. - // Should check this for 1st row, and then subsequent rows should not exceed 1st - // in length. - if (((currentLayer == m_layers.First()->Data()) && ((lastTab->GetX() + 2*lastTab->GetWidth() + GetHorizontalTabSpacing()) - > GetViewRect().width)) || - ((currentLayer != m_layers.First()->Data()) && (currentLayer->Number() == ((wxTabLayer *)m_layers.First()->Data())->Number()))) - { - currentLayer = new wxTabLayer; - m_layers.Append(currentLayer); - lastTab = (wxTabControl *) NULL; - } - } - - int layer = m_layers.Number() - 1; - - tabControl->SetRowPosition(currentLayer->Number()); - tabControl->SetColPosition(layer); - - // Top of new tab - int verticalOffset = (- GetTopMargin()) - ((layer+1)*GetTabHeight()); - // Offset from view top-left - int horizontalOffset = 0; - if (!lastTab) - horizontalOffset = layer*GetHorizontalTabOffset(); - else - horizontalOffset = lastTab->GetX() + GetTabWidth() + GetHorizontalTabSpacing(); - - tabControl->SetPosition(horizontalOffset, verticalOffset); - tabControl->SetSize(GetTabWidth(), GetTabHeight()); - - currentLayer->Append(tabControl); - lastTab = tabControl; - - node = node->Next(); - } - - // Move the selected tab to the bottom - wxTabControl *control = FindTabControlForId(m_tabSelection); - if (control) - MoveSelectionTab(control); - -} - -// Draw all tabs -void wxTabView::Draw(wxDC& dc) -{ - // Don't draw anything if there are no tabs. - if (GetNumberOfTabs() == 0) - return; - - // Draw top margin area (beneath tabs and above view area) - if (GetTabStyle() & wxTAB_STYLE_COLOUR_INTERIOR) - { - dc.SetPen(*wxTRANSPARENT_PEN); - dc.SetBrush(*GetBackgroundBrush()); - - // Add 1 because the pen is transparent. Under Motif, may be different. - dc.DrawRectangle( - m_tabViewRect.x, - (m_tabViewRect.y - m_topMargin), - (m_tabViewRect.width + 1), - (m_topMargin + 1) - ); - } - - // Draw layers in reverse order - wxNode *node = m_layers.Last(); - while (node) - { - wxTabLayer *layer = (wxTabLayer *)node->Data(); - wxNode *node2 = layer->First(); - while (node2) - { - wxTabControl *control = (wxTabControl *)node2->Data(); - control->OnDraw(dc, (node2->Next() == NULL)); - node2 = node2->Next(); - } - - node = node->Previous(); - } - - -#ifndef wxUSE_NEW_METHOD - if (GetTabStyle() & wxTAB_STYLE_DRAW_BOX) - { - dc.SetPen(* GetShadowPen()); - - // Draw bottom line - dc.DrawLine( - (GetViewRect().x + 1), - (GetViewRect().y + GetViewRect().height), - (GetViewRect().x + GetViewRect().width + 1), - (GetViewRect().y + GetViewRect().height) - ); - - // Draw right line - dc.DrawLine( - (GetViewRect().x + GetViewRect().width), - (GetViewRect().y - GetTopMargin() + 1), - (GetViewRect().x + GetViewRect().width), - (GetViewRect().y + GetViewRect().height) - ); - - dc.SetPen(* wxBLACK_PEN); - - // Draw bottom line - dc.DrawLine( - (GetViewRect().x), - (GetViewRect().y + GetViewRect().height + 1), -#if defined(__WXMOTIF__) - (GetViewRect().x + GetViewRect().width + 1), -#else - (GetViewRect().x + GetViewRect().width + 2), -#endif - - (GetViewRect().y + GetViewRect().height + 1) - ); - - // Draw right line - dc.DrawLine( - (GetViewRect().x + GetViewRect().width + 1), - (GetViewRect().y - GetTopMargin()), - (GetViewRect().x + GetViewRect().width + 1), - (GetViewRect().y + GetViewRect().height + 1) - ); - } -#endif -} - -// Process mouse event, return FALSE if we didn't process it -bool wxTabView::OnEvent(wxMouseEvent& event) -{ - if (!event.LeftDown()) - return FALSE; - - long x, y; - event.Position(&x, &y); - - wxTabControl *hitControl = (wxTabControl *) NULL; - - wxNode *node = m_layers.First(); - while (node) - { - wxTabLayer *layer = (wxTabLayer *)node->Data(); - wxNode *node2 = layer->First(); - while (node2) - { - wxTabControl *control = (wxTabControl *)node2->Data(); - if (control->HitTest((int)x, (int)y)) - { - hitControl = control; - node = (wxNode *) NULL; - node2 = (wxNode *) NULL; - } - else - node2 = node2->Next(); - } - - if (node) - node = node->Next(); - } - - if (!hitControl) - return FALSE; - - wxTabControl *currentTab = FindTabControlForId(m_tabSelection); - - if (hitControl == currentTab) - return FALSE; - - ChangeTab(hitControl); - - return TRUE; -} - -bool wxTabView::ChangeTab(wxTabControl *control) -{ - wxTabControl *currentTab = FindTabControlForId(m_tabSelection); - int oldTab = -1; - if (currentTab) - oldTab = currentTab->GetId(); - - if (control == currentTab) - return TRUE; - - if (m_layers.Number() == 0) - return FALSE; - - if (!OnTabPreActivate(control->GetId(), oldTab)) - return FALSE; - - // Move the tab to the bottom - MoveSelectionTab(control); - - if (currentTab) - currentTab->SetSelected(FALSE); - - control->SetSelected(TRUE); - m_tabSelection = control->GetId(); - - OnTabActivate(control->GetId(), oldTab); - - // Leave window refresh for the implementing window - - return TRUE; -} - -// Move the selected tab to the bottom layer, if necessary, -// without calling app activation code -bool wxTabView::MoveSelectionTab(wxTabControl *control) -{ - if (m_layers.Number() == 0) - return FALSE; - - wxTabLayer *firstLayer = (wxTabLayer *)m_layers.First()->Data(); - - // Find what column this tab is at, so we can swap with the one at the bottom. - // If we're on the bottom layer, then no need to swap. - if (!firstLayer->Member(control)) - { - // Do a swap - int col = 0; - wxNode *thisNode = FindTabNodeAndColumn(control, &col); - if (!thisNode) - return FALSE; - wxNode *otherNode = firstLayer->Nth(col); - if (!otherNode) - return FALSE; - - // If this is already in the bottom layer, return now - if (otherNode == thisNode) - return TRUE; - - wxTabControl *otherTab = (wxTabControl *)otherNode->Data(); - - // We now have pointers to the tab to be changed to, - // and the tab on the first layer. Swap tab structures and - // position details. - - int thisX = control->GetX(); - int thisY = control->GetY(); - int thisColPos = control->GetColPosition(); - int otherX = otherTab->GetX(); - int otherY = otherTab->GetY(); - int otherColPos = otherTab->GetColPosition(); - - control->SetPosition(otherX, otherY); - control->SetColPosition(otherColPos); - otherTab->SetPosition(thisX, thisY); - otherTab->SetColPosition(thisColPos); - - // Swap the data for the nodes - thisNode->SetData(otherTab); - otherNode->SetData(control); - } - return TRUE; -} - -// Called when a tab is activated -void wxTabView::OnTabActivate(int /*activateId*/, int /*deactivateId*/) -{ -} - -void wxTabView::SetHighlightColour(const wxColour& col) -{ - m_highlightColour = col; - m_highlightPen = wxThePenList->FindOrCreatePen(col, 1, wxSOLID); -} - -void wxTabView::SetShadowColour(const wxColour& col) -{ - m_shadowColour = col; - m_shadowPen = wxThePenList->FindOrCreatePen(col, 1, wxSOLID); -} - -void wxTabView::SetBackgroundColour(const wxColour& col) -{ - m_backgroundColour = col; - m_backgroundPen = wxThePenList->FindOrCreatePen(col, 1, wxSOLID); - m_backgroundBrush = wxTheBrushList->FindOrCreateBrush(col, wxSOLID); -} - -void wxTabView::SetTabSelection(int sel, bool activateTool) -{ - int oldSel = m_tabSelection; - wxTabControl *control = FindTabControlForId(sel); - wxTabControl *oldControl = FindTabControlForId(m_tabSelection); - - if (!OnTabPreActivate(sel, oldSel)) - return; - - if (control) - control->SetSelected((sel != -1)); // TODO ?? - else if (sel != -1) - { - wxFAIL_MSG(_("Could not find tab for id")); - return; - } - - if (oldControl) - oldControl->SetSelected(FALSE); - - m_tabSelection = sel; - - if (control) - MoveSelectionTab(control); - - if (activateTool) - OnTabActivate(sel, oldSel); -} - -// Find tab control for id -wxTabControl *wxTabView::FindTabControlForId(int id) const -{ - wxNode *node1 = m_layers.First(); - while (node1) - { - wxTabLayer *layer = (wxTabLayer *)node1->Data(); - wxNode *node2 = layer->First(); - while (node2) - { - wxTabControl *control = (wxTabControl *)node2->Data(); - if (control->GetId() == id) - return control; - node2 = node2->Next(); - } - node1 = node1->Next(); - } - return (wxTabControl *) NULL; -} - -// Find tab control for layer, position (starting from zero) -wxTabControl *wxTabView::FindTabControlForPosition(int layer, int position) const -{ - wxNode *node1 = m_layers.Nth(layer); - if (!node1) - return (wxTabControl *) NULL; - wxTabLayer *tabLayer = (wxTabLayer *)node1->Data(); - wxNode *node2 = tabLayer->Nth(position); - if (!node2) - return (wxTabControl *) NULL; - return (wxTabControl *)node2->Data(); -} - -// Find the node and the column at which this control is positioned. -wxNode *wxTabView::FindTabNodeAndColumn(wxTabControl *control, int *col) const -{ - wxNode *node1 = m_layers.First(); - while (node1) - { - wxTabLayer *layer = (wxTabLayer *)node1->Data(); - int c = 0; - wxNode *node2 = layer->First(); - while (node2) - { - wxTabControl *cnt = (wxTabControl *)node2->Data(); - if (cnt == control) - { - *col = c; - return node2; - } - node2 = node2->Next(); - c ++; - } - node1 = node1->Next(); - } - return (wxNode *) NULL; -} - -int wxTabView::CalculateTabWidth(int noTabs, bool adjustView) -{ - m_tabWidth = (int)((m_tabViewRect.width - ((noTabs - 1)*GetHorizontalTabSpacing()))/noTabs); - if (adjustView) - { - m_tabViewRect.width = noTabs*m_tabWidth + ((noTabs-1)*GetHorizontalTabSpacing()); - } - return m_tabWidth; -} - -/* - * wxTabbedDialog - */ - -IMPLEMENT_CLASS(wxTabbedDialog, wxDialog) - -BEGIN_EVENT_TABLE(wxTabbedDialog, wxDialog) - EVT_CLOSE(wxTabbedDialog::OnCloseWindow) - EVT_MOUSE_EVENTS(wxTabbedDialog::OnMouseEvent) - EVT_PAINT(wxTabbedDialog::OnPaint) -END_EVENT_TABLE() - -wxTabbedDialog::wxTabbedDialog(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, const wxSize& size, - long windowStyle, const wxString& name): - wxDialog(parent, id, title, pos, size, windowStyle, name) -{ - m_tabView = (wxTabView *) NULL; -} - -wxTabbedDialog::~wxTabbedDialog(void) -{ - if (m_tabView) - delete m_tabView; -} - -void wxTabbedDialog::OnCloseWindow(wxCloseEvent& WXUNUSED(event) ) -{ - Destroy(); -} - -void wxTabbedDialog::OnMouseEvent(wxMouseEvent& event ) -{ - if (m_tabView) - m_tabView->OnEvent(event); -} - -void wxTabbedDialog::OnPaint(wxPaintEvent& WXUNUSED(event) ) -{ - wxPaintDC dc(this); - if (m_tabView) - m_tabView->Draw(dc); -} - -/* - * wxTabbedPanel - */ - -IMPLEMENT_CLASS(wxTabbedPanel, wxPanel) - -BEGIN_EVENT_TABLE(wxTabbedPanel, wxPanel) - EVT_MOUSE_EVENTS(wxTabbedPanel::OnMouseEvent) - EVT_PAINT(wxTabbedPanel::OnPaint) -END_EVENT_TABLE() - -wxTabbedPanel::wxTabbedPanel(wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long windowStyle, const wxString& name): - wxPanel(parent, id, pos, size, windowStyle, name) -{ - m_tabView = (wxTabView *) NULL; -} - -wxTabbedPanel::~wxTabbedPanel(void) -{ - delete m_tabView; -} - -void wxTabbedPanel::OnMouseEvent(wxMouseEvent& event) -{ - if (m_tabView) - m_tabView->OnEvent(event); -} - -void wxTabbedPanel::OnPaint(wxPaintEvent& WXUNUSED(event) ) -{ - wxPaintDC dc(this); - if (m_tabView) - m_tabView->Draw(dc); -} - -/* - * wxPanelTabView - */ - -IMPLEMENT_CLASS(wxPanelTabView, wxTabView) - -wxPanelTabView::wxPanelTabView(wxPanel *pan, long style): wxTabView(style), m_tabWindows(wxKEY_INTEGER) -{ - m_panel = pan; - m_currentWindow = (wxWindow *) NULL; - - if (m_panel->IsKindOf(CLASSINFO(wxTabbedDialog))) - ((wxTabbedDialog *)m_panel)->SetTabView(this); - else if (m_panel->IsKindOf(CLASSINFO(wxTabbedPanel))) - ((wxTabbedPanel *)m_panel)->SetTabView(this); - - SetWindow(m_panel); -} - -wxPanelTabView::~wxPanelTabView(void) -{ - ClearWindows(TRUE); -} - -// Called when a tab is activated -void wxPanelTabView::OnTabActivate(int activateId, int deactivateId) -{ - if (!m_panel) - return; - - wxWindow *oldWindow = ((deactivateId == -1) ? 0 : GetTabWindow(deactivateId)); - wxWindow *newWindow = GetTabWindow(activateId); - - if (oldWindow) - oldWindow->Show(FALSE); - if (newWindow) - newWindow->Show(TRUE); - - m_panel->Refresh(); -} - - -void wxPanelTabView::AddTabWindow(int id, wxWindow *window) -{ - m_tabWindows.Append((long)id, window); - window->Show(FALSE); -} - -wxWindow *wxPanelTabView::GetTabWindow(int id) const -{ - wxNode *node = m_tabWindows.Find((long)id); - if (!node) - return (wxWindow *) NULL; - return (wxWindow *)node->Data(); -} - -void wxPanelTabView::ClearWindows(bool deleteWindows) -{ - if (deleteWindows) - m_tabWindows.DeleteContents(TRUE); - m_tabWindows.Clear(); - m_tabWindows.DeleteContents(FALSE); -} - -void wxPanelTabView::ShowWindowForTab(int id) -{ - wxWindow *newWindow = GetTabWindow(id); - if (newWindow == m_currentWindow) - return; - if (m_currentWindow) - m_currentWindow->Show(FALSE); - newWindow->Show(TRUE); - newWindow->Refresh(); -} - diff --git a/src/generic/textdlgg.cpp b/src/generic/textdlgg.cpp deleted file mode 100644 index cec7c36217..0000000000 --- a/src/generic/textdlgg.cpp +++ /dev/null @@ -1,162 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textdlgg.cpp -// Purpose: wxTextEntryDialog -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textdlgg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/textctrl.h" -#include "wx/layout.h" -#include "wx/intl.h" -#endif - -#include "wx/generic/textdlgg.h" - -// wxTextEntryDialog - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK) -END_EVENT_TABLE() - -IMPLEMENT_CLASS(wxTextEntryDialog, wxDialog) -#endif - -// Split message, using constraints to position controls -static void wxSplitMessage2(const wxChar *message, wxList *messageList, wxWindow *parent, wxRowColSizer *sizer) -{ - wxChar *copyMessage = copystring(message); - size_t i = 0; - size_t len = wxStrlen(copyMessage); - wxChar *currentMessage = copyMessage; - -// wxWindow *lastWindow = parent; - - while (i < len) { - while ((i < len) && (copyMessage[i] != _T('\n'))) i++; - if (i < len) copyMessage[i] = 0; - wxStaticText *mess = new wxStaticText(parent, -1, currentMessage); - -/* - wxLayoutConstraints *c = new wxLayoutConstraints; - c->left.SameAs (parent, wxLeft, 10); - c->top.SameAs (lastWindow, wxBottom, 5); - c->right.AsIs (); - c->height.AsIs (); - - mess->SetConstraints(c); -*/ - sizer->AddSizerChild(mess); - - messageList->Append(mess); - - currentMessage = copyMessage + i + 1; - } - delete[] copyMessage; -} - -wxTextEntryDialog::wxTextEntryDialog(wxWindow *parent, const wxString& message, const wxString& caption, - const wxString& value, long style, const wxPoint& pos): - wxDialog(parent, -1, caption, pos, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL|wxTAB_TRAVERSAL) -{ - m_dialogStyle = style; - m_value = value; - - wxBeginBusyCursor(); - - wxSizer *topSizer = new wxSizer(this, wxSizerShrink); - topSizer->SetBorder(10, 10); - - wxRowColSizer *messageSizer = new wxRowColSizer(topSizer, wxSIZER_COLS, 100); - messageSizer->SetName("messageSizer"); - -// bool centre = ((style & wxCENTRE) == wxCENTRE); - - wxList messageList; - wxSplitMessage2(message, &messageList, this, messageSizer); - - // Insert a spacer - wxSpacingSizer *spacingSizer = new wxSpacingSizer(topSizer, wxBelow, messageSizer, 10); - - wxTextCtrl *textCtrl = new wxTextCtrl(this, wxID_TEXT, value, wxPoint(-1, -1), wxSize(350, -1)); - - wxRowColSizer *textSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS); - textSizer->AddSizerChild(textCtrl); - textSizer->SetName("textSizer"); - - // Create constraints for the text sizer - wxLayoutConstraints *textC = new wxLayoutConstraints; - textC->left.SameAs (messageSizer, wxLeft); - textC->top.Below (spacingSizer); - textSizer->SetConstraints(textC); - - // Insert another spacer - wxSpacingSizer *spacingSizer2 = new wxSpacingSizer(topSizer, wxBelow, textSizer, 10); - spacingSizer->SetName("spacingSizer2"); - - // Insert a sizer for the buttons - wxRowColSizer *buttonSizer = new wxRowColSizer(topSizer, wxSIZER_ROWS); - buttonSizer->SetName("buttonSizer"); - - // Specify constraints for the button sizer - wxLayoutConstraints *c = new wxLayoutConstraints; - c->width.AsIs (); - c->height.AsIs (); - c->top.Below (spacingSizer2); - c->centreX.SameAs (textSizer, wxCentreX); - buttonSizer->SetConstraints(c); - buttonSizer->SetSpacing(12,0); - - wxButton *ok = NULL; - wxButton *cancel = NULL; - - if (style & wxOK) { - ok = new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxSize(75,-1)); - buttonSizer->AddSizerChild(ok); - } - - if (style & wxCANCEL) { - cancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxSize(75,-1)); - buttonSizer->AddSizerChild(cancel); - } - - if (ok) - ok->SetDefault(); - - Layout(); - Centre(wxBOTH); - - wxEndBusyCursor(); -} - -void wxTextEntryDialog::OnOK(wxCommandEvent& WXUNUSED(event) ) -{ - wxTextCtrl *textCtrl = (wxTextCtrl *)FindWindow(wxID_TEXT); - if ( textCtrl ) - m_value = textCtrl->GetValue(); - - EndModal(wxID_OK); -} - diff --git a/src/generic/treectrl.cpp b/src/generic/treectrl.cpp deleted file mode 100644 index b3bdc84ab7..0000000000 --- a/src/generic/treectrl.cpp +++ /dev/null @@ -1,1751 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: generic tree control implementation -// Author: Robert Roebling -// Created: 01/02/97 -// Modified: 22/10/98 - almost total rewrite, simpler interface (VZ) -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================= -// declarations -// ============================================================================= - -// ----------------------------------------------------------------------------- -// headers -// ----------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "treectrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/generic/treectrl.h" -#include "wx/generic/imaglist.h" -#include "wx/settings.h" -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/dynarray.h" -#include "wx/dcclient.h" -#include "wx/msgdlg.h" - -// ----------------------------------------------------------------------------- -// array types -// ----------------------------------------------------------------------------- - -class WXDLLEXPORT wxGenericTreeItem; - -WX_DEFINE_ARRAY(wxGenericTreeItem *, wxArrayTreeItems); - -// ----------------------------------------------------------------------------- -// private classes -// ----------------------------------------------------------------------------- - -// a tree item -class WXDLLEXPORT wxGenericTreeItem -{ -public: - // ctors & dtor - wxGenericTreeItem() { m_data = NULL; } - wxGenericTreeItem( wxGenericTreeItem *parent, - const wxString& text, - wxDC& dc, - int image, int selImage, - wxTreeItemData *data ); - - ~wxGenericTreeItem(); - - // trivial accessors - wxArrayTreeItems& GetChildren() { return m_children; } - - const wxString& GetText() const { return m_text; } - int GetImage() const { return m_image; } - int GetSelectedImage() const { return m_selImage; } - wxTreeItemData *GetData() const { return m_data; } - - void SetText( const wxString &text, wxDC& dc ); - void SetImage(int image) { m_image = image; } - void SetSelectedImage(int image) { m_selImage = image; } - void SetData(wxTreeItemData *data) { m_data = data; } - - void SetHasPlus(bool has = TRUE) { m_hasPlus = has; } - - void SetBold(bool bold) { m_isBold = bold; } - - int GetX() const { return m_x; } - int GetY() const { return m_y; } - - void SetHeight(int h) { m_text_height = h; } - - void SetX(int x) { m_x = x; } - void SetY(int y) { m_y = y; } - - wxGenericTreeItem *GetParent() const { return m_parent; } - - // operations - // deletes all children notifying the treectrl about it if !NULL pointer - // given - void DeleteChildren(wxTreeCtrl *tree = NULL); - // FIXME don't know what is it for - void Reset(); - - // get count of all children (and grand children if 'recursively') - size_t GetChildrenCount(bool recursively = TRUE) const; - - void Insert(wxGenericTreeItem *child, size_t index) - { m_children.Insert(child, index); } - - void SetCross( int x, int y ); - void GetSize( int &x, int &y ); - - // return the item at given position (or NULL if no item), onButton is TRUE - // if the point belongs to the item's button, otherwise it lies on the - // button's label - wxGenericTreeItem *HitTest( const wxPoint& point, bool &onButton ); - - void Expand() { m_isCollapsed = FALSE; } - void Collapse() { m_isCollapsed = TRUE; } - - void SetHilight( bool set = TRUE ) { m_hasHilight = set; } - - // status inquiries - bool HasChildren() const { return !m_children.IsEmpty(); } - bool HasHilight() const { return m_hasHilight; } - bool IsExpanded() const { return !m_isCollapsed; } - bool HasPlus() const { return m_hasPlus || HasChildren(); } - bool IsBold() const { return m_isBold; } - -private: - wxString m_text; - - int m_image, - m_selImage; - - wxTreeItemData *m_data; - - // use bitfields to save size - int m_isCollapsed :1; - int m_hasHilight :1; // same as focused - int m_hasPlus :1; // used for item which doesn't have - // children but still has a [+] button - int m_isBold :1; // render the label in bold font - - int m_x, m_y; - long m_text_height, m_text_width; - int m_xCross, m_yCross; - int m_level; - wxArrayTreeItems m_children; - wxGenericTreeItem *m_parent; -}; - -// ============================================================================= -// implementation -// ============================================================================= - -// ----------------------------------------------------------------------------- -// wxTreeEvent -// ----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxNotifyEvent) - -wxTreeEvent::wxTreeEvent( wxEventType commandType, int id ) - : wxNotifyEvent( commandType, id ) -{ - m_code = 0; - m_itemOld = (wxGenericTreeItem *)NULL; -} - -// ----------------------------------------------------------------------------- -// wxGenericTreeItem -// ----------------------------------------------------------------------------- - -wxGenericTreeItem::wxGenericTreeItem(wxGenericTreeItem *parent, - const wxString& text, - wxDC& dc, - int image, int selImage, - wxTreeItemData *data) - : m_text(text) -{ - m_image = image; - m_selImage = selImage; - m_data = data; - m_x = m_y = 0; - m_xCross = m_yCross = 0; - - m_level = 0; - - m_isCollapsed = TRUE; - m_hasHilight = FALSE; - m_hasPlus = FALSE; - m_isBold = FALSE; - - m_parent = parent; - - dc.GetTextExtent( m_text, &m_text_width, &m_text_height ); -} - -wxGenericTreeItem::~wxGenericTreeItem() -{ - delete m_data; - - wxASSERT_MSG( m_children.IsEmpty(), - _T("please call DeleteChildren() before deleting the item") ); -} - -void wxGenericTreeItem::DeleteChildren(wxTreeCtrl *tree) -{ - size_t count = m_children.Count(); - for ( size_t n = 0; n < count; n++ ) - { - wxGenericTreeItem *child = m_children[n]; - if ( tree ) - { - tree->SendDeleteEvent(child); - } - - child->DeleteChildren(tree); - delete child; - } - - m_children.Empty(); -} - -void wxGenericTreeItem::SetText( const wxString &text, wxDC& dc ) -{ - m_text = text; - - dc.GetTextExtent( m_text, &m_text_width, &m_text_height ); -} - -void wxGenericTreeItem::Reset() -{ - m_text.Empty(); - m_image = - m_selImage = -1; - m_data = NULL; - m_x = m_y = - m_text_height = m_text_width = 0; - m_xCross = - m_yCross = 0; - - m_level = 0; - - DeleteChildren(); - m_isCollapsed = TRUE; - - m_parent = (wxGenericTreeItem *)NULL; -} - -size_t wxGenericTreeItem::GetChildrenCount(bool recursively) const -{ - size_t count = m_children.Count(); - if ( !recursively ) - return count; - - size_t total = count; - for ( size_t n = 0; n < count; n++ ) - { - total += m_children[n]->GetChildrenCount(); - } - - return total; -} - -void wxGenericTreeItem::SetCross( int x, int y ) -{ - m_xCross = x; - m_yCross = y; -} - -void wxGenericTreeItem::GetSize( int &x, int &y ) -{ - if ( y < m_y ) y = m_y; - int width = m_x + m_text_width; - if (width > x) x = width; - - if (IsExpanded()) - { - size_t count = m_children.Count(); - for ( size_t n = 0; n < count; n++ ) - { - m_children[n]->GetSize( x, y ); - } - } -} - -wxGenericTreeItem *wxGenericTreeItem::HitTest( const wxPoint& point, - bool &onButton ) -{ - if ((point.y > m_y) && (point.y < m_y + m_text_height)) - { - // FIXME why +5? - // Because that is the size of the plus sign, RR - if ((point.x > m_xCross-5) && (point.x < m_xCross+5) && - (point.y > m_yCross-5) && (point.y < m_yCross+5) && - (IsExpanded() || HasPlus())) - { - onButton = TRUE; - return this; - } - - /* TODO: we should do a query here like - m_imageListNormal->GetSize( item->GetImage(), image_w, image_h ); */ - int w = m_text_width; - if (m_image != -1) w += 24; - - if ((point.x > m_x) && (point.x < m_x+w)) - { - onButton = FALSE; - return this; - } - } - else - { - if (!m_isCollapsed) - { - size_t count = m_children.Count(); - for ( size_t n = 0; n < count; n++ ) - { - wxGenericTreeItem *res = m_children[n]->HitTest( point, onButton ); - if ( res != NULL ) - return res; - } - } - } - - return NULL; -} - -// ----------------------------------------------------------------------------- -// wxTreeCtrl implementation -// ----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxScrolledWindow) - -BEGIN_EVENT_TABLE(wxTreeCtrl,wxScrolledWindow) - EVT_PAINT (wxTreeCtrl::OnPaint) - EVT_MOUSE_EVENTS (wxTreeCtrl::OnMouse) - EVT_CHAR (wxTreeCtrl::OnChar) - EVT_SET_FOCUS (wxTreeCtrl::OnSetFocus) - EVT_KILL_FOCUS (wxTreeCtrl::OnKillFocus) - EVT_IDLE (wxTreeCtrl::OnIdle) -END_EVENT_TABLE() - -// ----------------------------------------------------------------------------- -// construction/destruction -// ----------------------------------------------------------------------------- -void wxTreeCtrl::Init() -{ - m_current = - m_anchor = (wxGenericTreeItem *) NULL; - m_hasFocus = FALSE; - m_dirty = FALSE; - - m_xScroll = 0; - m_yScroll = 0; - m_lineHeight = 10; - m_indent = 15; - m_spacing = 18; - - m_hilightBrush = new wxBrush - ( - wxSystemSettings::GetSystemColour(wxSYS_COLOUR_HIGHLIGHT), - wxSOLID - ); - - m_imageListNormal = - m_imageListState = (wxImageList *) NULL; - - m_dragCount = 0; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, - const wxValidator &validator, - const wxString& name ) -{ - Init(); - - wxScrolledWindow::Create( parent, id, pos, size, style|wxHSCROLL|wxVSCROLL, name ); - - SetValidator( validator ); - - SetBackgroundColour( *wxWHITE ); - m_dottedPen = wxPen( *wxBLACK, 0, 0 ); - - return TRUE; -} - -wxTreeCtrl::~wxTreeCtrl() -{ - wxDELETE( m_hilightBrush ); - - DeleteAllItems(); -} - -// ----------------------------------------------------------------------------- -// accessors -// ----------------------------------------------------------------------------- - -size_t wxTreeCtrl::GetCount() const -{ - return m_anchor == NULL ? 0u : m_anchor->GetChildrenCount(); -} - -void wxTreeCtrl::SetIndent(unsigned int indent) -{ - m_indent = indent; - m_dirty = TRUE; - Refresh(); -} - -void wxTreeCtrl::SetSpacing(unsigned int spacing) -{ - m_spacing = spacing; - m_dirty = TRUE; - Refresh(); -} - -size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively) -{ - wxCHECK_MSG( item.IsOk(), 0u, _T("invalid tree item") ); - - return item.m_pItem->GetChildrenCount(recursively); -} - -// ----------------------------------------------------------------------------- -// functions to work with tree items -// ----------------------------------------------------------------------------- - -wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), _T(""), _T("invalid tree item") ); - - return item.m_pItem->GetText(); -} - -int wxTreeCtrl::GetItemImage(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), -1, _T("invalid tree item") ); - - return item.m_pItem->GetImage(); -} - -int wxTreeCtrl::GetItemSelectedImage(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), -1, _T("invalid tree item") ); - - return item.m_pItem->GetSelectedImage(); -} - -wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), NULL, _T("invalid tree item") ); - - return item.m_pItem->GetData(); -} - -void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - wxClientDC dc(this); - wxGenericTreeItem *pItem = item.m_pItem; - pItem->SetText(text, dc); - RefreshLine(pItem); -} - -void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - wxGenericTreeItem *pItem = item.m_pItem; - pItem->SetImage(image); - RefreshLine(pItem); -} - -void wxTreeCtrl::SetItemSelectedImage(const wxTreeItemId& item, int image) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - wxGenericTreeItem *pItem = item.m_pItem; - pItem->SetSelectedImage(image); - RefreshLine(pItem); -} - -void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - item.m_pItem->SetData(data); -} - -void wxTreeCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - wxGenericTreeItem *pItem = item.m_pItem; - pItem->SetHasPlus(has); - RefreshLine(pItem); -} - -void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold) -{ - wxCHECK_RET( item.IsOk(), _T("invalid tree item") ); - - // avoid redrawing the tree if no real change - wxGenericTreeItem *pItem = item.m_pItem; - if ( pItem->IsBold() != bold ) - { - pItem->SetBold(bold); - RefreshLine(pItem); - } -} - -// ----------------------------------------------------------------------------- -// item status inquiries -// ----------------------------------------------------------------------------- - -bool wxTreeCtrl::IsVisible(const wxTreeItemId& WXUNUSED(item)) const -{ - wxFAIL_MSG(_T("not implemented")); - - return TRUE; -} - -bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), FALSE, _T("invalid tree item") ); - - return !item.m_pItem->GetChildren().IsEmpty(); -} - -bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), FALSE, _T("invalid tree item") ); - - return item.m_pItem->IsExpanded(); -} - -bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), FALSE, _T("invalid tree item") ); - - return item.m_pItem->HasHilight(); -} - -bool wxTreeCtrl::IsBold(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), FALSE, _T("invalid tree item") ); - - return item.m_pItem->IsBold(); -} - -// ----------------------------------------------------------------------------- -// navigation -// ----------------------------------------------------------------------------- - -wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - return item.m_pItem->GetParent(); -} - -wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, long& cookie) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - cookie = 0; - return GetNextChild(item, cookie); -} - -wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& item, long& cookie) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - wxArrayTreeItems& children = item.m_pItem->GetChildren(); - if ( (size_t)cookie < children.Count() ) - { - return children.Item(cookie++); - } - else - { - // there are no more of them - return wxTreeItemId(); - } -} - -wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - wxArrayTreeItems& children = item.m_pItem->GetChildren(); - return (children.IsEmpty() ? wxTreeItemId() : wxTreeItemId(children.Last())); -} - -wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - wxGenericTreeItem *i = item.m_pItem; - wxGenericTreeItem *parent = i->GetParent(); - if ( parent == NULL ) - { - // root item doesn't have any siblings - return wxTreeItemId(); - } - - wxArrayTreeItems& siblings = parent->GetChildren(); - int index = siblings.Index(i); - wxASSERT( index != wxNOT_FOUND ); // I'm not a child of my parent? - - size_t n = (size_t)(index + 1); - return n == siblings.Count() ? wxTreeItemId() : wxTreeItemId(siblings[n]); -} - -wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - wxGenericTreeItem *i = item.m_pItem; - wxGenericTreeItem *parent = i->GetParent(); - if ( parent == NULL ) - { - // root item doesn't have any siblings - return wxTreeItemId(); - } - - wxArrayTreeItems& siblings = parent->GetChildren(); - int index = siblings.Index(i); - wxASSERT( index != wxNOT_FOUND ); // I'm not a child of my parent? - - return index == 0 ? wxTreeItemId() - : wxTreeItemId(siblings[(size_t)(index - 1)]); -} - -wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const -{ - wxFAIL_MSG(_T("not implemented")); - - return wxTreeItemId(); -} - -wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - wxFAIL_MSG(_T("not implemented")); - - return wxTreeItemId(); -} - -wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const -{ - wxCHECK_MSG( item.IsOk(), wxTreeItemId(), _T("invalid tree item") ); - - wxFAIL_MSG(_T("not implemented")); - - return wxTreeItemId(); -} - -// ----------------------------------------------------------------------------- -// operations -// ----------------------------------------------------------------------------- - -wxTreeItemId wxTreeCtrl::DoInsertItem(const wxTreeItemId& parentId, - size_t previous, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) -{ - wxGenericTreeItem *parent = parentId.m_pItem; - if ( !parent ) - { - // should we give a warning here? - return AddRoot(text, image, selImage, data); - } - - wxClientDC dc(this); - wxGenericTreeItem *item = new wxGenericTreeItem(parent, - text, dc, - image, selImage, - data); - - if ( data != NULL ) - { - data->m_pItem = item; - } - - parent->Insert( item, previous ); - - m_dirty = TRUE; - - return item; -} - -wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text, - int image, int selImage, - wxTreeItemData *data) -{ - wxCHECK_MSG( !m_anchor, wxTreeItemId(), _T("tree can have only one root") ); - - wxClientDC dc(this); - m_anchor = new wxGenericTreeItem((wxGenericTreeItem *)NULL, text, dc, - image, selImage, data); - if ( data != NULL ) - { - data->m_pItem = m_anchor; - } - - AdjustMyScrollbars(); - Refresh(); - - return m_anchor; -} - -wxTreeItemId wxTreeCtrl::PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) -{ - return DoInsertItem(parent, 0u, text, image, selImage, data); -} - -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parentId, - const wxTreeItemId& idPrevious, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) -{ - wxGenericTreeItem *parent = parentId.m_pItem; - if ( !parent ) - { - // should we give a warning here? - return AddRoot(text, image, selImage, data); - } - - int index = parent->GetChildren().Index(idPrevious.m_pItem); - wxASSERT_MSG( index != wxNOT_FOUND, - _T("previous item in wxTreeCtrl::InsertItem() is not a sibling") ); - return DoInsertItem(parentId, (size_t)index, text, image, selImage, data); -} - -wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parentId, - const wxString& text, - int image, int selImage, - wxTreeItemData *data) -{ - wxGenericTreeItem *parent = parentId.m_pItem; - if ( !parent ) - { - // should we give a warning here? - return AddRoot(text, image, selImage, data); - } - - return DoInsertItem(parent, parent->GetChildren().Count(), text, - image, selImage, data); -} - -void wxTreeCtrl::SendDeleteEvent(wxGenericTreeItem *item) -{ - wxTreeEvent event( wxEVT_COMMAND_TREE_DELETE_ITEM, GetId() ); - event.m_item = item; - event.SetEventObject( this ); - ProcessEvent( event ); -} - -void wxTreeCtrl::DeleteChildren(const wxTreeItemId& itemId) -{ - wxGenericTreeItem *item = itemId.m_pItem; - item->DeleteChildren(this); - - m_dirty = TRUE; -} - -void wxTreeCtrl::Delete(const wxTreeItemId& itemId) -{ - wxGenericTreeItem *item = itemId.m_pItem; - wxGenericTreeItem *parent = item->GetParent(); - - if ( parent ) - { - parent->GetChildren().Remove(item); - } - - item->DeleteChildren(this); - SendDeleteEvent(item); - delete item; - - m_dirty = TRUE; -} - -void wxTreeCtrl::DeleteAllItems() -{ - if ( m_anchor ) - { - m_anchor->DeleteChildren(this); - delete m_anchor; - - m_anchor = NULL; - - m_dirty = TRUE; - } -} - -void wxTreeCtrl::Expand(const wxTreeItemId& itemId) -{ - wxGenericTreeItem *item = itemId.m_pItem; - - if ( !item->HasPlus() ) - return; - - if ( item->IsExpanded() ) - return; - - wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_EXPANDING, GetId() ); - event.m_item = item; - event.SetEventObject( this ); - if ( ProcessEvent( event ) && event.m_code ) - { - // cancelled by program - return; - } - - item->Expand(); - CalculatePositions(); - - RefreshSubtree(item); - - event.SetEventType(wxEVT_COMMAND_TREE_ITEM_EXPANDED); - ProcessEvent( event ); -} - -void wxTreeCtrl::Collapse(const wxTreeItemId& itemId) -{ - wxGenericTreeItem *item = itemId.m_pItem; - - if ( !item->IsExpanded() ) - return; - - wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_COLLAPSING, GetId() ); - event.m_item = item; - event.SetEventObject( this ); - if ( ProcessEvent( event ) && event.m_code ) - { - // cancelled by program - return; - } - - item->Collapse(); - - wxArrayTreeItems& children = item->GetChildren(); - size_t count = children.Count(); - for ( size_t n = 0; n < count; n++ ) - { - Collapse(children[n]); - } - - CalculatePositions(); - - RefreshSubtree(item); - - event.SetEventType(wxEVT_COMMAND_TREE_ITEM_COLLAPSED); - ProcessEvent( event ); -} - -void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item) -{ - Collapse(item); - DeleteChildren(item); -} - -void wxTreeCtrl::Toggle(const wxTreeItemId& itemId) -{ - wxGenericTreeItem *item = itemId.m_pItem; - - if ( item->IsExpanded() ) - Collapse(itemId); - else - Expand(itemId); -} - -void wxTreeCtrl::Unselect() -{ - if ( m_current ) - { - m_current->SetHilight( FALSE ); - RefreshLine( m_current ); - } -} - -void wxTreeCtrl::UnselectAllChildren(wxGenericTreeItem *item) -{ - item->SetHilight(FALSE); - RefreshLine(item); - - if (item->HasChildren()) - { - wxArrayTreeItems& children = item->GetChildren(); - size_t count = children.Count(); - for ( size_t n = 0; n < count; ++n ) - UnselectAllChildren(children[n]); - } -} - -void wxTreeCtrl::UnselectAll() -{ - UnselectAllChildren(GetRootItem().m_pItem); -} - -// Recursive function ! -// To stop we must have crt_itemGetParent(); - - if ( parent == NULL ) // This is root item - return TagAllChildrenUntilLast(crt_item, last_item, select); - - wxArrayTreeItems& children = parent->GetChildren(); - int index = children.Index(crt_item); - wxASSERT( index != wxNOT_FOUND ); // I'm not a child of my parent? - - size_t count = children.Count(); - for (size_t n=(size_t)(index+1); nSetHilight(select); - RefreshLine(crt_item); - - if (crt_item==last_item) return TRUE; - - if (crt_item->HasChildren()) - { - wxArrayTreeItems& children = crt_item->GetChildren(); - size_t count = children.Count(); - for ( size_t n = 0; n < count; ++n ) - if (TagAllChildrenUntilLast(children[n], last_item, select)) return TRUE; - } - - return FALSE; -} - -void wxTreeCtrl::SelectItemRange(wxGenericTreeItem *item1, wxGenericTreeItem *item2) -{ - // item2 is not necessary after item1 - wxGenericTreeItem *first=NULL, *last=NULL; - - // choice first' and 'last' between item1 and item2 - if (item1->GetY()GetY()) - { - first=item1; - last=item2; - } - else - { - first=item2; - last=item1; - } - - bool select=m_current->HasHilight(); - - if (TagAllChildrenUntilLast(first,last,select)) return; - -/* - cout << first->GetText() << " " << last->GetText() << " " << (int) select << endl; -*/ - TagNextChildren(first,last,select); -} - -void wxTreeCtrl::SelectItem(const wxTreeItemId& itemId, - bool unselect_others, - bool extended_select) -{ - bool is_single=!(GetWindowStyleFlag() & wxTR_MULTIPLE); - - //wxCHECK_RET( ( (!unselect_others) && is_single), - // _T("this is a single selection tree") ); - - // to keep going anyhow !!! - if (is_single) - { - unselect_others=TRUE; - extended_select=FALSE; - } - - wxGenericTreeItem *item = itemId.m_pItem; - - wxTreeEvent event( wxEVT_COMMAND_TREE_SEL_CHANGING, GetId() ); - event.m_item = item; - event.m_itemOld = m_current; - event.SetEventObject( this ); - // Here we don't send any selection mode yet ! TO SEE - -/* - if (m_current) - cout << m_current->GetText() << " " << (int)m_current->HasHilight() << endl; -*/ - - if ( GetEventHandler()->ProcessEvent( event ) && event.WasVetoed() ) - return; - -/* - if (m_current) - cout << m_current->GetText() << " " << (int)m_current->HasHilight() << endl; -*/ - - // ctrl press - if (unselect_others) - { - if (is_single) Unselect(); // to speed up thing - else UnselectAll(); - } - - // shift press - if (extended_select) - { - if (m_current == NULL) m_current=GetRootItem().m_pItem; - // don't change the mark (m_current) - SelectItemRange(m_current, item); - } - else - { - bool select=TRUE; // the default - - // Check if we need to toggle hilight (ctrl mode) - if (!unselect_others) - select=!item->HasHilight(); - - m_current = item; - m_current->SetHilight(select); - RefreshLine( m_current ); - } - - event.SetEventType(wxEVT_COMMAND_TREE_SEL_CHANGED); - GetEventHandler()->ProcessEvent( event ); -} - -void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item) -{ - wxGenericTreeItem *gitem = item.m_pItem; - - // first expand all parent branches - wxGenericTreeItem *parent = gitem->GetParent(); - while ( parent && !parent->IsExpanded() ) - { - Expand(parent); - - parent = parent->GetParent(); - } - - // now scroll to the item - int item_y = gitem->GetY(); - - int start_x = 0; - int start_y = 0; - ViewStart( &start_x, &start_y ); - start_y *= 10; - - int client_h = 0; - int client_w = 0; - GetClientSize( &client_w, &client_h ); - - if (item_y < start_y+3) - { - int x = 0; - int y = 0; - m_anchor->GetSize( x, y ); - y += 2*m_lineHeight; - int x_pos = GetScrollPos( wxHORIZONTAL ); - SetScrollbars( 10, 10, x/10, y/10, x_pos, (item_y-client_h/2)/10 ); - } - else if (item_y > start_y+client_h-16) - { - int x = 0; - int y = 0; - m_anchor->GetSize( x, y ); - y += 2*m_lineHeight; - int x_pos = GetScrollPos( wxHORIZONTAL ); - SetScrollbars( 10, 10, x/10, y/10, x_pos, (item_y-client_h/2)/10 ); - } -} - -void wxTreeCtrl::ScrollTo(const wxTreeItemId& WXUNUSED(item)) -{ - wxFAIL_MSG(_T("not implemented")); -} - -wxTextCtrl *wxTreeCtrl::EditLabel( const wxTreeItemId& WXUNUSED(item), - wxClassInfo* WXUNUSED(textCtrlClass) ) -{ - wxFAIL_MSG(_T("not implemented")); - - return (wxTextCtrl*)NULL; -} - -wxTextCtrl *wxTreeCtrl::GetEditControl() const -{ - wxFAIL_MSG(_T("not implemented")); - - return (wxTextCtrl*)NULL; -} - -void wxTreeCtrl::EndEditLabel(const wxTreeItemId& WXUNUSED(item), bool WXUNUSED(discardChanges)) -{ - wxFAIL_MSG(_T("not implemented")); -} - -// FIXME: tree sorting functions are not reentrant and not MT-safe! -static wxTreeCtrl *s_treeBeingSorted = NULL; - -static int tree_ctrl_compare_func(wxGenericTreeItem **item1, - wxGenericTreeItem **item2) -{ - wxCHECK_MSG( s_treeBeingSorted, 0, _T("bug in wxTreeCtrl::SortChildren()") ); - - return s_treeBeingSorted->OnCompareItems(*item1, *item2); -} - -int wxTreeCtrl::OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2) -{ - return wxStrcmp(GetItemText(item1), GetItemText(item2)); -} - -void wxTreeCtrl::SortChildren(const wxTreeItemId& itemId) -{ - wxCHECK_RET( itemId.IsOk(), _T("invalid tree item") ); - - wxGenericTreeItem *item = itemId.m_pItem; - - wxCHECK_RET( !s_treeBeingSorted, - _T("wxTreeCtrl::SortChildren is not reentrant") ); - - wxArrayTreeItems& children = item->GetChildren(); - if ( children.Count() > 1 ) - { - s_treeBeingSorted = this; - children.Sort(tree_ctrl_compare_func); - s_treeBeingSorted = NULL; - - m_dirty = TRUE; - } - //else: don't make the tree dirty as nothing changed -} - -wxImageList *wxTreeCtrl::GetImageList() const -{ - return m_imageListNormal; -} - -wxImageList *wxTreeCtrl::GetStateImageList() const -{ - return m_imageListState; -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList) -{ - m_imageListNormal = imageList; - // calculate a m_lineHeight value from the image sizes - wxPaintDC dc(this); - PrepareDC( dc ); - m_lineHeight = (int)(dc.GetCharHeight() + 4); - int - width = 0, - height = 0, - n = m_imageListNormal->GetImageCount(); - for(int i = 0; i < n ; i++) - { - m_imageListNormal->GetSize(i, width, height); - height += height/5; //20% extra spacing - if(height > m_lineHeight) m_lineHeight = height; - } -} - -void wxTreeCtrl::SetStateImageList(wxImageList *imageList) -{ - m_imageListState = imageList; -} - -// ----------------------------------------------------------------------------- -// helpers -// ----------------------------------------------------------------------------- - -void wxTreeCtrl::AdjustMyScrollbars() -{ - if (m_anchor) - { - int x = 0; - int y = 0; - m_anchor->GetSize( x, y ); - y += 2*m_lineHeight; - int x_pos = GetScrollPos( wxHORIZONTAL ); - int y_pos = GetScrollPos( wxVERTICAL ); - SetScrollbars( 10, 10, x/10, y/10, x_pos, y_pos ); - } - else - { - SetScrollbars( 0, 0, 0, 0 ); - } -} - -void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc) -{ - // render bold items in bold - wxFont fontOld; - wxFont fontNew; - - if (item->IsBold()) - { - fontOld = dc.GetFont(); - if (fontOld.Ok()) - { - // VZ: is there any better way to make a bold variant of old font? - fontNew = wxFont( fontOld.GetPointSize(), - fontOld.GetFamily(), - fontOld.GetStyle(), - wxBOLD, - fontOld.GetUnderlined()); - dc.SetFont(fontNew); - } - else - { - wxFAIL_MSG(_T("wxDC::GetFont() failed!")); - } - } - - long text_w = 0; - long text_h = 0; - dc.GetTextExtent( item->GetText(), &text_w, &text_h ); - - int image_h = 0; - int image_w = 0; - if ((item->IsExpanded()) && (item->GetSelectedImage() != -1)) - { - m_imageListNormal->GetSize( item->GetSelectedImage(), image_w, image_h ); - image_w += 4; - } - else if (item->GetImage() != -1) - { - m_imageListNormal->GetSize( item->GetImage(), image_w, image_h ); - image_w += 4; - } - - int total_h = (image_h > text_h) ? image_h : text_h; - if(m_lineHeight > total_h) total_h = m_lineHeight; - - dc.DrawRectangle( item->GetX()-2, item->GetY(), image_w+text_w+4, total_h ); - - if ((item->IsExpanded()) && (item->GetSelectedImage() != -1)) - { - dc.SetClippingRegion( item->GetX(), item->GetY(), image_w-2, total_h ); - m_imageListNormal->Draw( item->GetSelectedImage(), dc, - item->GetX(), - item->GetY() +((total_h > image_h)?((total_h-image_h)/2):0), - wxIMAGELIST_DRAW_TRANSPARENT ); - dc.DestroyClippingRegion(); - } - else if (item->GetImage() != -1) - { - dc.SetClippingRegion( item->GetX(), item->GetY(), image_w-2, total_h ); - m_imageListNormal->Draw( item->GetImage(), dc, - item->GetX(), - item->GetY() +((total_h > image_h)?((total_h-image_h)/2):0), - wxIMAGELIST_DRAW_TRANSPARENT ); - dc.DestroyClippingRegion(); - } - - dc.SetBackgroundMode(wxTRANSPARENT); - dc.DrawText( item->GetText(), image_w + item->GetX(), item->GetY() - + ((total_h > text_h) ? (total_h - text_h)/2 : 0)); - - // restore normal font for bold items - if (fontOld.Ok()) - { - dc.SetFont( fontOld); - } -} - -void wxTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y ) -{ - int horizX = level*m_indent; - - item->SetX( horizX+m_indent+m_spacing ); - item->SetY( y-m_lineHeight/2 ); - item->SetHeight( m_lineHeight ); - - item->SetCross( horizX+m_indent, y ); - - int oldY = y; - - int exposed_x = dc.LogicalToDeviceX( 0 ); - int exposed_y = dc.LogicalToDeviceY( item->GetY()-2 ); - - if (IsExposed( exposed_x, exposed_y, 10000, m_lineHeight+4 )) // 10000 = very much - { - int startX = horizX; - int endX = horizX + (m_indent-5); - -// if (!item->HasChildren()) endX += (m_indent+5); - if (!item->HasChildren()) endX += 20; - - dc.DrawLine( startX, y, endX, y ); - - if (item->HasPlus()) - { - dc.DrawLine( horizX+(m_indent+5), y, horizX+(m_indent+15), y ); - dc.SetPen( *wxGREY_PEN ); - dc.SetBrush( *wxWHITE_BRUSH ); - dc.DrawRectangle( horizX+(m_indent-5), y-4, 11, 9 ); - dc.SetPen( *wxBLACK_PEN ); - dc.DrawLine( horizX+(m_indent-2), y, horizX+(m_indent+3), y ); - - if (!item->IsExpanded()) - { - dc.DrawLine( horizX+m_indent, y-2, horizX+m_indent, y+3 ); - } - } - - if (item->HasHilight()) - { - dc.SetTextForeground( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_HIGHLIGHTTEXT ) ); - - dc.SetBrush( *m_hilightBrush ); - - if (m_hasFocus) - dc.SetPen( *wxBLACK_PEN ); - else - dc.SetPen( *wxTRANSPARENT_PEN ); - - PaintItem(item, dc); - - dc.SetPen( *wxBLACK_PEN ); - dc.SetTextForeground( *wxBLACK ); - dc.SetBrush( *wxWHITE_BRUSH ); - } - else - { - dc.SetBrush( *wxWHITE_BRUSH ); - dc.SetPen( *wxTRANSPARENT_PEN ); - - PaintItem(item, dc); - - dc.SetPen( *wxBLACK_PEN ); - } - } - - if (item->IsExpanded()) - { - int semiOldY = y; - - wxArrayTreeItems& children = item->GetChildren(); - size_t count = children.Count(); - for ( size_t n = 0; n < count; n++ ) - { - y += m_lineHeight; - semiOldY = y; - PaintLevel( children[n], dc, level+1, y ); - } - - // it may happen that the item is expanded but has no items (when you - // delete all its children for example) - don't draw the vertical line - // in this case - if (count > 0) - dc.DrawLine( horizX+m_indent, oldY+5, horizX+m_indent, semiOldY ); - } -} - -// ----------------------------------------------------------------------------- -// wxWindows callbacks -// ----------------------------------------------------------------------------- - -void wxTreeCtrl::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - if ( !m_anchor ) - return; - - wxPaintDC dc(this); - PrepareDC( dc ); - - dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) ); - - dc.SetPen( m_dottedPen ); - if(GetImageList() == NULL) - m_lineHeight = (int)(dc.GetCharHeight() + 4); - - int y = m_lineHeight / 2 + 2; - PaintLevel( m_anchor, dc, 0, y ); -} - -void wxTreeCtrl::OnSetFocus( wxFocusEvent &WXUNUSED(event) ) -{ - m_hasFocus = TRUE; - - if (m_current) RefreshLine( m_current ); -} - -void wxTreeCtrl::OnKillFocus( wxFocusEvent &WXUNUSED(event) ) -{ - m_hasFocus = FALSE; - - if (m_current) RefreshLine( m_current ); -} - -void wxTreeCtrl::OnChar( wxKeyEvent &event ) -{ - wxTreeEvent te( wxEVT_COMMAND_TREE_KEY_DOWN, GetId() ); - te.m_code = event.KeyCode(); - te.SetEventObject( this ); - GetEventHandler()->ProcessEvent( te ); - - if (m_current == 0) - { - event.Skip(); - return; - } - - bool is_multiple=(GetWindowStyleFlag() & wxTR_MULTIPLE); - bool extended_select=(event.ShiftDown() && is_multiple); - bool unselect_others=!(extended_select || (event.ControlDown() && is_multiple)); - - switch (event.KeyCode()) - { - case '+': - case WXK_ADD: - if (m_current->HasPlus() && !IsExpanded(m_current)) - { - Expand(m_current); - } - break; - - case '-': - case WXK_SUBTRACT: - if (IsExpanded(m_current)) - { - Collapse(m_current); - } - break; - - case '*': - case WXK_MULTIPLY: - Toggle(m_current); - break; - - case ' ': - case WXK_RETURN: - { - wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() ); - event.m_item = m_current; - event.m_code = 0; - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - } - break; - - // up goes to the previous sibling or to the last of its children if - // it's expanded - case WXK_UP: - { - wxTreeItemId prev = GetPrevSibling( m_current ); - if (!prev) - { - prev = GetParent( m_current ); - if (prev) - { - long cockie = 0; - wxTreeItemId current = m_current; - if (current == GetFirstChild( prev, cockie )) - { - // otherwise we return to where we came from - SelectItem( prev, unselect_others, extended_select ); - EnsureVisible( prev ); - break; - } - } - } - if (prev) - { - while ( IsExpanded(prev) && HasChildren(prev) ) - { - wxTreeItemId child = GetLastChild(prev); - if ( child ) - { - prev = child; - } - } - - SelectItem( prev, unselect_others, extended_select ); - EnsureVisible( prev ); - } - } - break; - - // left arrow goes to the parent - case WXK_LEFT: - { - wxTreeItemId prev = GetParent( m_current ); - if (prev) - { - EnsureVisible( prev ); - SelectItem( prev, unselect_others, extended_select ); - } - } - break; - - case WXK_RIGHT: - // this works the same as the down arrow except that we also expand the - // item if it wasn't expanded yet - Expand(m_current); - // fall through - - case WXK_DOWN: - { - if (IsExpanded(m_current) && HasChildren(m_current)) - { - long cookie = 0; - wxTreeItemId child = GetFirstChild( m_current, cookie ); - SelectItem( child, unselect_others, extended_select ); - EnsureVisible( child ); - } - else - { - wxTreeItemId next = GetNextSibling( m_current ); - if (next == 0) - { - wxTreeItemId current = m_current; - while (current && !next) - { - current = GetParent( current ); - if (current) next = GetNextSibling( current ); - } - } - if (next != 0) - { - SelectItem( next, unselect_others, extended_select ); - EnsureVisible( next ); - } - } - } - break; - - // selects the last visible tree item - case WXK_END: - { - wxTreeItemId last = GetRootItem(); - - while ( last.IsOk() && IsExpanded(last) ) - { - wxTreeItemId lastChild = GetLastChild(last); - - // it may happen if the item was expanded but then all of - // its children have been deleted - so IsExpanded() returned - // TRUE, but GetLastChild() returned invalid item - if ( !lastChild ) - break; - - last = lastChild; - } - - if ( last.IsOk() ) - { - EnsureVisible( last ); - SelectItem( last, unselect_others, extended_select ); - } - } - break; - - // selects the root item - case WXK_HOME: - { - wxTreeItemId prev = GetRootItem(); - if (prev) - { - EnsureVisible( prev ); - SelectItem( prev, unselect_others, extended_select ); - } - } - break; - - default: - event.Skip(); - } -} - -wxTreeItemId wxTreeCtrl::HitTest(const wxPoint& point, int& WXUNUSED(flags)) -{ - wxClientDC dc(this); - PrepareDC(dc); - long x = dc.DeviceToLogicalX( (long)point.x ); - long y = dc.DeviceToLogicalY( (long)point.y ); - - bool onButton = FALSE; - return m_anchor->HitTest( wxPoint(x, y), onButton ); -} - -void wxTreeCtrl::OnMouse( wxMouseEvent &event ) -{ - if (!event.LeftIsDown()) m_dragCount = 0; - - if ( !(event.LeftDown() || event.LeftDClick() || event.Dragging()) ) return; - - if ( !m_anchor ) return; - - wxClientDC dc(this); - PrepareDC(dc); - long x = dc.DeviceToLogicalX( (long)event.GetX() ); - long y = dc.DeviceToLogicalY( (long)event.GetY() ); - - bool onButton = FALSE; - wxGenericTreeItem *item = m_anchor->HitTest( wxPoint(x,y), onButton ); - - if (item == NULL) return; /* we hit the blank area */ - - if (event.Dragging()) - { - if (m_dragCount == 2) /* small drag latency (3?) */ - { - m_dragCount = 0; - - wxTreeEvent nevent(wxEVT_COMMAND_TREE_BEGIN_DRAG, GetId()); - nevent.m_item = m_current; - nevent.SetEventObject(this); - GetEventHandler()->ProcessEvent(nevent); - } - else - { - m_dragCount++; - } - return; - } - - bool is_multiple=(GetWindowStyleFlag() & wxTR_MULTIPLE); - bool extended_select=(event.ShiftDown() && is_multiple); - bool unselect_others=!(extended_select || (event.ControlDown() && is_multiple)); - - SelectItem(item, unselect_others, extended_select); - - if (event.LeftDClick()) - { - wxTreeEvent event( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() ); - event.m_item = item; - event.m_code = 0; - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - } - - if (onButton) - { - Toggle( item ); - } -} - -void wxTreeCtrl::OnIdle( wxIdleEvent &WXUNUSED(event) ) -{ - /* after all changes have been done to the tree control, - * we actually redraw the tree when everything is over */ - - if (!m_dirty) - return; - - m_dirty = FALSE; - - CalculatePositions(); - - AdjustMyScrollbars(); -} - -// ----------------------------------------------------------------------------- - -void wxTreeCtrl::CalculateLevel( wxGenericTreeItem *item, wxDC &dc, int level, int &y ) -{ - int horizX = level*m_indent; - - item->SetX( horizX+m_indent+m_spacing ); - item->SetY( y-m_lineHeight/2 ); - item->SetHeight( m_lineHeight ); - - if ( !item->IsExpanded() ) - { - // we dont need to calculate collapsed branches - return; - } - - wxArrayTreeItems& children = item->GetChildren(); - size_t count = children.Count(); - for ( size_t n = 0; n < count; n++ ) - { - y += m_lineHeight; - CalculateLevel( children[n], dc, level+1, y ); // recurse - } -} - -void wxTreeCtrl::CalculatePositions() -{ - if ( !m_anchor ) return; - - wxClientDC dc(this); - PrepareDC( dc ); - - dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) ); - - dc.SetPen( m_dottedPen ); - if(GetImageList() == NULL) - m_lineHeight = (int)(dc.GetCharHeight() + 4); - - int y = m_lineHeight / 2 + 2; - CalculateLevel( m_anchor, dc, 0, y ); // start recursion -} - -void wxTreeCtrl::RefreshSubtree(wxGenericTreeItem *item) -{ - wxClientDC dc(this); - PrepareDC(dc); - - int cw = 0; - int ch = 0; - GetClientSize( &cw, &ch ); - - wxRect rect; - rect.x = dc.LogicalToDeviceX( 0 ); - rect.width = cw; - rect.y = dc.LogicalToDeviceY( item->GetY() ); - rect.height = ch; - - Refresh( TRUE, &rect ); - - AdjustMyScrollbars(); -} - -void wxTreeCtrl::RefreshLine( wxGenericTreeItem *item ) -{ - wxClientDC dc(this); - PrepareDC( dc ); - - wxRect rect; - rect.x = dc.LogicalToDeviceX( item->GetX() - 2 ); - rect.y = dc.LogicalToDeviceY( item->GetY() - 2 ); - rect.width = 1000; - rect.height = dc.GetCharHeight() + 6; - - Refresh( TRUE, &rect ); -} - diff --git a/src/gtk/.cvsignore b/src/gtk/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/src/gtk/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/src/gtk/Makefile.am b/src/gtk/Makefile.am deleted file mode 100644 index 4af3fb61fb..0000000000 --- a/src/gtk/Makefile.am +++ /dev/null @@ -1,213 +0,0 @@ -## Purpose: The automake makefile for wxWindows (src/gtk subdirectory) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUFFIXES = .cpp .c - -DEFS = $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) -LIBS = $(GUILIBS) - -VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${EXTRA_VPATH} - -EXTRA_DIST = "${srcdir}/../common ${srcdir}/../generic ${srcdir}" - -lib_LTLIBRARIES = @WX_LIBRARY_NAME@ -EXTRA_LTLIBRARIES = libwx_gtk.la libwx_motif.la libwx_msw.la - -# these are the common files which always make part of the library -libwx_gtk_la_SOURCES = \ -\ - win_gtk.c \ - extended.c \ - parser.c \ -\ - cmndata.cpp \ - dynarray.cpp \ - filefn.cpp \ - hash.cpp \ - list.cpp \ - matrix.cpp \ - memory.cpp \ - module.cpp \ - object.cpp \ - string.cpp \ - timercmn.cpp \ - utilscmn.cpp \ - tokenzr.cpp \ - variant.cpp \ - wxchar.cpp \ -\ - config.cpp \ - date.cpp \ - datstrm.cpp \ - db.cpp \ - dbtable.cpp \ - dcbase.cpp \ - docmdi.cpp \ - docview.cpp \ - dynlib.cpp \ - event.cpp \ - file.cpp \ - fileconf.cpp \ - framecmn.cpp \ - ftp.cpp \ - gdicmn.cpp \ - helpbase.cpp \ - http.cpp \ - image.cpp \ - imaggif.cpp \ - imagjpeg.cpp \ - imagpng.cpp \ - intl.cpp \ - ipcbase.cpp \ - layout.cpp \ - log.cpp \ - longlong.cpp \ - mimetype.cpp \ - mstream.cpp \ - objstrm.cpp \ - odbc.cpp \ - paper.cpp \ - prntbase.cpp \ - process.cpp \ - protocol.cpp \ - resource.cpp \ - sckaddr.cpp \ - sckfile.cpp \ - sckint.cpp \ - sckipc.cpp \ - sckstrm.cpp \ - serbase.cpp \ - socket.cpp \ - stream.cpp \ - tbarbase.cpp \ - tbarsmpl.cpp \ - textfile.cpp \ - time.cpp \ - url.cpp \ - valgen.cpp \ - validate.cpp \ - valtext.cpp \ - wfstream.cpp \ - wincmn.cpp \ - wxexpr.cpp \ - zstream.cpp \ -\ - caret.cpp \ - choicdgg.cpp \ - colrdlgg.cpp \ - dcpsg.cpp \ - dirdlgg.cpp \ - fontdlgg.cpp \ - gridg.cpp \ - helpext.cpp \ - helphtml.cpp \ - imaglist.cpp \ - laywin.cpp \ - listctrl.cpp \ - msgdlgg.cpp \ - panelg.cpp \ - printps.cpp \ - prntdlgg.cpp \ - progdlgg.cpp \ - prop.cpp \ - propform.cpp \ - proplist.cpp \ - sashwin.cpp \ - scrolwin.cpp \ - splitter.cpp \ - statusbr.cpp \ - tabg.cpp \ - textdlgg.cpp \ - treectrl.cpp \ -\ - threadpsx.cpp \ - utilsunx.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - checklst.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - combobox.cpp \ - control.cpp \ - cursor.cpp \ - data.cpp \ - dataobj.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - icon.cpp \ - listbox.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - minifram.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbmp.cpp \ - statbox.cpp \ - statline.cpp \ - stattext.cpp \ - tbargtk.cpp \ - textctrl.cpp \ - timer.cpp \ - tooltip.cpp \ - utilsgtk.cpp \ - utilsres.cpp \ - wave.cpp \ - window.cpp - -# these are the sources which we build by our own rules -# -# TODO: parser.y can be included into SOURCES, but for the sake of my life I -# don't know where to put lexer.l - if I put it in the sources too, -# automake tries to build lexer.lo... and fails, of course. (VZ) -BUILT_SOURCES = parser.c lexer.c -parser.c: $(srcdir)/../common/parser.y lexer.c - $(YACC) $(srcdir)/../common/parser.y - @sed -e "s;$(srcdir)/../common/y.tab.c;parser.y;g" < y.tab.c | \ - sed -e "s/BUFSIZ/5000/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > parser.c - @$(RM) y.tab.c - -lexer.c: $(srcdir)/../common/lexer.l - $(LEX) $(srcdir)/../common/lexer.l - @sed -e "s;$(srcdir)/../common/lex.yy.c;lexer.l;g" < lex.yy.c | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > lexer.c - @$(RM) lex.yy.c - -libwx_gtk_la_LDFLAGS = -rpath @libdir@ \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -libwx_gtk_la_LIBADD = $(LTLIBOBJS) -libwx_gtk_la_DEPENDENCIES = $(libwx_gtk_la_LIBADD) lexer.l parser.y diff --git a/src/gtk/accel.cpp b/src/gtk/accel.cpp deleted file mode 100644 index b15ece7379..0000000000 --- a/src/gtk/accel.cpp +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: -// Author: Robert Roebling -// Id: $id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -#include "wx/accel.h" - -#include - -#ifdef __WXDEBUG__ -#ifdef NULL -#undef NULL -#endif -#define NULL ((void*)0L) -#endif - -//----------------------------------------------------------------------------- -// wxAcceleratorTable -//----------------------------------------------------------------------------- - -class wxAccelRefData: public wxObjectRefData -{ -public: - - wxAccelRefData(void); - - wxList m_accels; -}; - -wxAccelRefData::wxAccelRefData(void) -{ - m_accels.DeleteContents( TRUE ); -} - -//----------------------------------------------------------------------------- - -#define M_ACCELDATA ((wxAccelRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable,wxObject) - -wxAcceleratorTable::wxAcceleratorTable() -{ -} - -wxAcceleratorTable::wxAcceleratorTable( int n, wxAcceleratorEntry entries[] ) -{ - m_refData = new wxAccelRefData(); - - for (int i = 0; i < n; i++) - { - int flag = entries[i].GetFlags(); - int keycode = entries[i].GetKeyCode(); - int command = entries[i].GetCommand(); - if ((keycode >= (int)'A') && (keycode <= (int)'Z')) keycode = (int)tolower( (char)keycode ); - M_ACCELDATA->m_accels.Append( new wxAcceleratorEntry( flag, keycode, command ) ); - } -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ -} - -bool wxAcceleratorTable::Ok() const -{ - return (m_refData != NULL); -} - -int wxAcceleratorTable::GetCommand( wxKeyEvent &event ) -{ - if (!Ok()) return -1; - - wxNode *node = M_ACCELDATA->m_accels.First(); - while (node) - { - wxAcceleratorEntry *entry = (wxAcceleratorEntry*)node->Data(); - if ((event.m_keyCode == entry->GetKeyCode()) && - (((entry->GetFlags() & wxACCEL_CTRL) == 0) || event.ControlDown()) && - (((entry->GetFlags() & wxACCEL_SHIFT) == 0) || event.ShiftDown()) && - (((entry->GetFlags() & wxACCEL_ALT) == 0) || event.AltDown() || event.MetaDown())) - { - return entry->GetCommand(); - } - node = node->Next(); - } - - return -1; -} - diff --git a/src/gtk/app.cpp b/src/gtk/app.cpp deleted file mode 100644 index 85b8b53fb6..0000000000 --- a/src/gtk/app.cpp +++ /dev/null @@ -1,755 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "app.h" -#endif - -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/log.h" -#include "wx/memory.h" -#include "wx/font.h" -#include "wx/settings.h" -#include "wx/dialog.h" - -#if wxUSE_WX_RESOURCES - #include "wx/resource.h" -#endif - -#include "wx/module.h" -#include "wx/image.h" - -#include "wx/thread.h" - -#include "unistd.h" - -#include -#include -#include - -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -wxApp *wxTheApp = (wxApp *) NULL; -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -#if wxUSE_THREADS -extern wxList *wxPendingEvents; -extern wxCriticalSection *wxPendingEventsLocker; -#endif -extern wxResourceCache *wxTheResourceCache; -extern bool g_isIdle; - -unsigned char g_palette[64*3] = -{ - 0x0, 0x0, 0x0, - 0xff, 0xff, 0xff, - 0xff, 0x0, 0x0, - 0xff, 0xff, 0x0, - 0x0, 0xff, 0x0, - 0x0, 0x0, 0xff, - 0x0, 0xff, 0xff, - 0x99, 0x99, 0x99, - 0xff, 0x88, 0x0, - 0x88, 0x0, 0x0, - 0x0, 0x88, 0x88, - 0x88, 0x88, 0x0, - 0xff, 0xcc, 0x97, - 0xbb, 0xbb, 0xbb, - 0x9f, 0x6b, 0x42, - 0x55, 0x55, 0x55, - 0xdd, 0xdd, 0xdd, - 0x77, 0x77, 0x77, - 0x33, 0x33, 0x33, - 0xcc, 0x0, 0x0, - 0xff, 0x44, 0x0, - 0xff, 0xcc, 0x0, - 0xcc, 0xcc, 0x0, - 0x60, 0x60, 0x0, - 0x0, 0x43, 0x0, - 0x0, 0x7f, 0x0, - 0x0, 0xcc, 0x0, - 0x0, 0x44, 0x44, - 0x0, 0x0, 0x44, - 0x0, 0x0, 0x88, - 0xef, 0xb1, 0x7b, - 0xdf, 0x98, 0x5f, - 0xbf, 0x87, 0x56, - 0x7f, 0x57, 0x26, - 0x5f, 0x39, 0xc, - 0x3f, 0x1c, 0x0, - 0x21, 0x0, 0x0, - 0x0, 0x43, 0x87, - 0x2d, 0x70, 0xaf, - 0x5a, 0x9e, 0xd7, - 0x87, 0xcc, 0xff, - 0xff, 0xe0, 0xba, - 0x21, 0x43, 0xf, - 0x3d, 0x5d, 0x25, - 0x59, 0x78, 0x3a, - 0x75, 0x93, 0x4f, - 0x91, 0xae, 0x64, - 0xad, 0xc8, 0x7a, - 0xf0, 0xa8, 0xef, - 0xd0, 0x88, 0xd0, - 0xaf, 0x66, 0xaf, - 0x8e, 0x44, 0x8e, - 0x6d, 0x22, 0x6d, - 0x4b, 0x0, 0x4b, - 0xff, 0xc0, 0xbc, - 0xff, 0x93, 0x91, - 0xff, 0x66, 0x67, - 0xd8, 0xf2, 0xbf, - 0xff, 0xc9, 0x68, - 0xff, 0x96, 0x67, - 0xa5, 0x60, 0xff, - 0x51, 0xff, 0x99, - 0x3f, 0xa5, 0x63, - 0x98, 0x90, 0x67 -}; - -//----------------------------------------------------------------------------- -// local functions -//----------------------------------------------------------------------------- - -extern void wxFlushResources(void); - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -void wxExit() -{ - gtk_main_quit(); -} - -/* forward declaration */ -gint wxapp_idle_callback( gpointer WXUNUSED(data) ); - -bool wxYield() -{ - /* it's necessary to call ProcessIdle() to update the frames sizes which - might have been changed (it also will update other things set from - OnUpdateUI() which is a nice (and desired) side effect) */ - while (wxTheApp->ProcessIdle()) { } - -#if 0 - for ( wxWindowList::Node *node = wxTopLevelWindows.GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - win->OnInternalIdle(); - } -#endif - - if (wxTheApp->m_idleTag) - { - /* We need to temporarily remove idle callbacks or the loop will - never finish. */ - gtk_idle_remove( wxTheApp->m_idleTag ); - wxTheApp->m_idleTag = 0; - - while (gtk_events_pending()) - gtk_main_iteration(); - - /* re-add idle handler */ - wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - } - else - { - while (gtk_events_pending()) - gtk_main_iteration(); - } - - return TRUE; -} - -gint wxapp_idle_callback( gpointer WXUNUSED(data) ) -{ - if (!wxTheApp) return TRUE; - -#if (GTK_MINOR_VERSION > 0) - /* when getting called from GDK's idle handler we - are no longer within GDK's grab on the GUI - thread so we must lock it here ourselves */ - GDK_THREADS_ENTER (); -#endif - - /* sent idle event to all who request them */ - while (wxTheApp->ProcessIdle()) { } - - /* we don't want any more idle events until the next event is - sent to wxGTK */ - gtk_idle_remove( wxTheApp->m_idleTag ); - wxTheApp->m_idleTag = 0; - - /* indicate that we are now in idle mode - even so deeply - in idle mode that we don't get any idle events anymore. - this is like wxMSW where an idle event is sent only - once each time after the event queue has been completely - emptied */ - g_isIdle = TRUE; - -#if (GTK_MINOR_VERSION > 0) - /* release lock again */ - GDK_THREADS_LEAVE (); -#endif - - return TRUE; -} - -void wxapp_install_idle_handler() -{ - wxASSERT_MSG( wxTheApp->m_idleTag == 0, _T("attempt to install idle handler twice") ); - - /* this routine gets called by all event handlers - indicating that the idle is over. */ - - wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - - g_isIdle = FALSE; -} - -#if wxUSE_THREADS -static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ) -{ - gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag ); - wxTheApp->m_wakeUpTimerTag = 0; - -#if (GTK_MINOR_VERSION > 0) - /* when getting called from GDK's time-out handler - we are no longer within GDK's grab on the GUI - thread so we must lock it here ourselves */ - GDK_THREADS_ENTER (); -#endif - - /* unblock other threads wishing to do some GUI things */ - wxMutexGuiLeave(); - - /* wake up other threads */ - wxUsleep( 1 ); - - /* block other thread again */ - wxMutexGuiEnter(); - -#if (GTK_MINOR_VERSION > 0) - /* release lock again */ - GDK_THREADS_LEAVE (); -#endif - - wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL ); - - return TRUE; -} -#endif - -//----------------------------------------------------------------------------- -// wxApp -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxApp,wxEvtHandler) - -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() - -wxApp::wxApp() -{ - wxTheApp = this; - - m_topWindow = (wxWindow *) NULL; - m_exitOnFrameDelete = TRUE; - - m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - -#if wxUSE_THREADS - m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL ); -#endif - - m_colorCube = (unsigned char*) NULL; -} - -wxApp::~wxApp() -{ - if (m_idleTag) gtk_idle_remove( m_idleTag ); - -#if wxUSE_THREADS - if (m_wakeUpTimerTag) gtk_timeout_remove( m_wakeUpTimerTag ); -#endif - - if (m_colorCube) free(m_colorCube); -} - -bool wxApp::OnInitGui() -{ - /* Nothing to do for 15, 16, 24, 32 bit displays */ - - GdkVisual *visual = gdk_visual_get_system(); - if (visual->depth > 8) return TRUE; - - /* this initiates the standard palette as defined by GdkImlib - in the GNOME libraries. it ensures that all GNOME applications - use the same 64 colormap entries on 8-bit displays so you - can use several rather graphics-heavy applications at the - same time. - NOTE: this doesn't really seem to work this way... */ - - /* - GdkColormap *cmap = gdk_colormap_new( gdk_visual_get_system(), TRUE ); - - for (int i = 0; i < 64; i++) - { - GdkColor col; - col.red = g_palette[i*3 + 0] << 8; - col.green = g_palette[i*3 + 1] << 8; - col.blue = g_palette[i*3 + 2] << 8; - col.pixel = 0; - - gdk_color_alloc( cmap, &col ); - } - - gtk_widget_set_default_colormap( cmap ); - */ - - /* initialize color cube for 8-bit color reduction dithering */ - - GdkColormap *cmap = gtk_widget_get_default_colormap(); - - m_colorCube = (unsigned char*)malloc(32 * 32 * 32); - - for (int r = 0; r < 32; r++) - { - for (int g = 0; g < 32; g++) - { - for (int b = 0; b < 32; b++) - { - int rr = (r << 3) | (r >> 2); - int gg = (g << 3) | (g >> 2); - int bb = (b << 3) | (b >> 2); - - int index = -1; - - GdkColor *colors = cmap->colors; - if (colors) - { - int max = 3 * 65536; - - for (int i = 0; i < cmap->size; i++) - { - int rdiff = ((rr << 8) - colors[i].red); - int gdiff = ((gg << 8) - colors[i].green); - int bdiff = ((bb << 8) - colors[i].blue); - int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); - if (sum < max) - { - index = i; max = sum; - } - } - } - else - { - /* assume 8-bit true or static colors. this really - exists. */ - GdkVisual* vis = gdk_colormap_get_visual( cmap ); - index = (r >> (5 - vis->red_prec)) << vis->red_shift; - index |= (g >> (5 - vis->green_prec)) << vis->green_shift; - index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift; - } - - m_colorCube[ (r*1024) + (g*32) + b ] = index; - } - } - } - - return TRUE; -} - -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject( this ); - ProcessEvent( event ); - - return event.MoreRequested(); -} - -void wxApp::OnIdle( wxIdleEvent &event ) -{ - static bool inOnIdle = FALSE; - - /* Avoid recursion (via ProcessEvent default case) */ - if (inOnIdle) - return; - - inOnIdle = TRUE; - -#if wxUSE_THREADS - /* Resend in the main thread events which have been prepared in other - threads */ - ProcessPendingEvents(); -#endif - - /* 'Garbage' collection of windows deleted with Close(). */ - DeletePendingObjects(); - - /* flush the logged messages if any */ -#if wxUSE_LOG - wxLog *log = wxLog::GetActiveTarget(); - if (log != NULL && log->HasPendingMessages()) - log->Flush(); -#endif // wxUSE_LOG - - /* Send OnIdle events to all windows */ - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - - wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow* win = node->GetData(); - if (SendIdleEvents(win)) - needMore = TRUE; - node = node->GetNext(); - } - - return needMore; -} - -bool wxApp::SendIdleEvents( wxWindow* win ) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - - win->OnInternalIdle(); - - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -int wxApp::MainLoop() -{ - gtk_main(); - return 0; -} - -void wxApp::ExitMainLoop() -{ - gtk_main_quit(); -} - -bool wxApp::Initialized() -{ - return m_initialized; -} - -bool wxApp::Pending() -{ - return (gtk_events_pending() > 0); -} - -void wxApp::Dispatch() -{ - gtk_main_iteration(); -} - -#if wxUSE_THREADS -void wxApp::ProcessPendingEvents() -{ - wxNode *node = wxPendingEvents->First(); - wxCriticalSectionLocker locker(*wxPendingEventsLocker); - - while (node) - { - wxEvtHandler *handler = (wxEvtHandler *)node->Data(); - - handler->ProcessPendingEvents(); - - delete node; - - node = wxPendingEvents->First(); - } -} -#endif // wxUSE_THREADS - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Find(obj)) - delete node; - - node = wxPendingDelete.First(); - } -} - -wxWindow *wxApp::GetTopWindow() -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.GetCount() > 0) - return wxTopLevelWindows.GetFirst()->GetData(); - else - return NULL; -} - -void wxApp::SetTopWindow( wxWindow *win ) -{ - m_topWindow = win; -} - -bool wxApp::Initialize() -{ - wxBuffer = new wxChar[BUFSIZ + 512]; - - wxClassInfo::InitializeClasses(); - - wxSystemSettings::Init(); - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - wxPendingEvents = new wxList(); - wxPendingEventsLocker = new wxCriticalSection(); -#endif - -/* - wxTheFontNameDirectory = new wxFontNameDirectory; - wxTheFontNameDirectory->Initialize(); -*/ - - wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING ); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxTheResourceCache = new wxResourceCache( wxKEY_STRING ); - - wxInitializeResourceSystem(); -#endif - - wxImage::InitStandardHandlers(); - - /* no global cursor under X - g_globalCursor = new wxCursor; */ - - wxModule::RegisterModules(); - if (!wxModule::InitializeModules()) return FALSE; - - return TRUE; -} - -void wxApp::CleanUp() -{ - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxFlushResources(); - - if (wxTheResourceCache) - delete wxTheResourceCache; - wxTheResourceCache = (wxResourceCache*) NULL; - - wxCleanUpResourceSystem(); -#endif - - if (wxTheColourDatabase) - delete wxTheColourDatabase; - wxTheColourDatabase = (wxColourDatabase*) NULL; - -/* - if (wxTheFontNameDirectory) delete wxTheFontNameDirectory; - wxTheFontNameDirectory = (wxFontNameDirectory*) NULL; -*/ - - wxDeleteStockObjects(); - - wxDeleteStockLists(); - - wxImage::CleanUpHandlers(); - - delete wxTheApp; - wxTheApp = (wxApp*) NULL; - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - delete wxPendingEvents; - delete wxPendingEventsLocker; -#endif - - wxSystemSettings::Done(); - - delete[] wxBuffer; - - wxClassInfo::CleanUpClasses(); - - // check for memory leaks -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - if (wxDebugContext::CountObjectsLeft() > 0) - { - wxLogDebug(_T("There were memory leaks.\n")); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } -#endif // Debug - -#if wxUSE_LOG - // do this as the very last thing because everything else can log messages - wxLog::DontCreateOnDemand(); - - wxLog *oldLog = wxLog::SetActiveTarget( (wxLog*) NULL ); - if (oldLog) - delete oldLog; -} - -wxLog *wxApp::CreateLogTarget() -{ - return new wxLogGui; -} -#endif // wxUSE_LOG - -//----------------------------------------------------------------------------- -// wxEntry -//----------------------------------------------------------------------------- - -int wxEntry( int argc, char *argv[] ) -{ - gtk_set_locale(); - - gtk_init( &argc, &argv ); - - wxSetDetectableAutoRepeat( TRUE ); - - if (!wxApp::Initialize()) - return -1; - - if (!wxTheApp) - { - wxCHECK_MSG( wxApp::GetInitializerFunction(), -1, - _T("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") ); - - wxAppInitializerFunction app_ini = wxApp::GetInitializerFunction(); - - wxObject *test_app = app_ini(); - - wxTheApp = (wxApp*) test_app; - } - - wxCHECK_MSG( wxTheApp, -1, _T("wxWindows error: no application object") ); - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - wxString name(wxFileNameFromPath(argv[0])); - wxStripExtension( name ); - wxTheApp->SetAppName( name ); - - int retValue = 0; - - if ( !wxTheApp->OnInitGui() ) - retValue = -1; - - // Here frames insert themselves automatically into wxTopLevelWindows by - // getting created in OnInit(). - if ( retValue == 0 ) - { - if ( !wxTheApp->OnInit() ) - retValue = -1; - } - - if ( retValue == 0 ) - { - /* delete pending toplevel windows (typically a single - dialog) so that, if there isn't any left, we don't - call OnRun() */ - wxTheApp->DeletePendingObjects(); - - wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0; - - if (wxTheApp->Initialized()) - { - retValue = wxTheApp->OnRun(); - - wxWindow *topWindow = wxTheApp->GetTopWindow(); - if (topWindow) - { - /* Forcibly delete the window. */ - if (topWindow->IsKindOf(CLASSINFO(wxFrame)) || - topWindow->IsKindOf(CLASSINFO(wxDialog)) ) - { - topWindow->Close( TRUE ); - wxTheApp->DeletePendingObjects(); - } - else - { - delete topWindow; - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - } - } - wxTheApp->OnExit(); - } - } - -#if wxUSE_LOG - // flush the logged messages if any - wxLog *log = wxLog::GetActiveTarget(); - if (log != NULL && log->HasPendingMessages()) - log->Flush(); - - // continuing to use user defined log target is unsafe from now on because - // some resources may be already unavailable, so replace it by something - // more safe - wxLog *oldlog = wxLog::SetActiveTarget(new wxLogStderr); - if ( oldlog ) - delete oldlog; -#endif // wxUSE_LOG - - wxApp::CleanUp(); - - return retValue; -} - diff --git a/src/gtk/bdiag.xbm b/src/gtk/bdiag.xbm deleted file mode 100644 index 9ff0a1822f..0000000000 --- a/src/gtk/bdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define bdiag_width 16 -#define bdiag_height 16 -static char bdiag_bits[] = { - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, - 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01}; diff --git a/src/gtk/bitmap.cpp b/src/gtk/bitmap.cpp deleted file mode 100644 index 80ecdcddac..0000000000 --- a/src/gtk/bitmap.cpp +++ /dev/null @@ -1,377 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/filefn.h" -#include "wx/image.h" - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkx.h" - -//----------------------------------------------------------------------------- -// wxMask -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject) - -wxMask::wxMask() -{ - m_bitmap = (GdkBitmap *) NULL; -} - -wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap), const wxColour& WXUNUSED(colour) ) -{ -} - -wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap), int WXUNUSED(paletteIndex) ) -{ -} - -wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap) ) -{ -} - -wxMask::~wxMask() -{ - if (m_bitmap) gdk_bitmap_unref( m_bitmap ); -} - -GdkBitmap *wxMask::GetBitmap(void) const -{ - return m_bitmap; -} - -//----------------------------------------------------------------------------- -// wxBitmap -//----------------------------------------------------------------------------- - -class wxBitmapRefData: public wxObjectRefData -{ -public: - wxBitmapRefData(void); - ~wxBitmapRefData(void); - - GdkPixmap *m_pixmap; - GdkBitmap *m_bitmap; - wxMask *m_mask; - int m_width; - int m_height; - int m_bpp; - wxPalette *m_palette; -}; - -wxBitmapRefData::wxBitmapRefData() -{ - m_pixmap = (GdkPixmap *) NULL; - m_bitmap = (GdkBitmap *) NULL; - m_mask = (wxMask *) NULL; - m_width = 0; - m_height = 0; - m_bpp = 0; - m_palette = (wxPalette *) NULL; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - if (m_pixmap) gdk_pixmap_unref( m_pixmap ); - if (m_bitmap) gdk_bitmap_unref( m_bitmap ); - if (m_mask) delete m_mask; - if (m_palette) delete m_palette; -} - -//----------------------------------------------------------------------------- - -#define M_BMPDATA ((wxBitmapRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxBitmap,wxGDIObject) - -wxBitmap::wxBitmap() -{ - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( int width, int height, int depth ) -{ - wxCHECK_RET( (width > 0) && (height > 0), _T("invalid bitmap size") ) - - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - if (depth == -1) depth = gdk_window_get_visual( parent )->depth; - - wxCHECK_RET( (depth == gdk_window_get_visual( parent )->depth) || - (depth == 1), _T("invalid bitmap depth") ) - - m_refData = new wxBitmapRefData(); - M_BMPDATA->m_mask = (wxMask *) NULL; - M_BMPDATA->m_width = width; - M_BMPDATA->m_height = height; - if (depth == 1) - { - M_BMPDATA->m_bitmap = gdk_pixmap_new( parent, width, height, 1 ); - M_BMPDATA->m_bpp = 1; - } - else - { - M_BMPDATA->m_pixmap = gdk_pixmap_new( parent, width, height, depth ); - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; - } - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const char **bits ) -{ - wxCHECK_RET( bits != NULL, _T("invalid bitmap data") ) - - m_refData = new wxBitmapRefData(); - - GdkBitmap *mask = (GdkBitmap*) NULL; - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - - M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, (gchar **) bits ); - - if (mask) - { - M_BMPDATA->m_mask = new wxMask(); - M_BMPDATA->m_mask->m_bitmap = mask; - } - - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); - - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; // ? - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( char **bits ) -{ - wxCHECK_RET( bits != NULL, _T("invalid bitmap data") ) - - m_refData = new wxBitmapRefData(); - - GdkBitmap *mask = (GdkBitmap*) NULL; - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - - M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, (gchar **) bits ); - - wxCHECK_RET( M_BMPDATA->m_pixmap, _T("couldn't create pixmap") ); - - if (mask) - { - M_BMPDATA->m_mask = new wxMask(); - M_BMPDATA->m_mask->m_bitmap = mask; - } - - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); - - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; // ? - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const wxBitmap& bmp ) -{ - Ref( bmp ); - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const wxString &filename, int type ) -{ - LoadFile( filename, type ); - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth)) -{ - m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_mask = (wxMask *) NULL; - M_BMPDATA->m_bitmap = - gdk_bitmap_create_from_data( (GdkWindow*) &gdk_root_parent, (gchar *) bits, width, height ); - M_BMPDATA->m_width = width; - M_BMPDATA->m_height = height; - M_BMPDATA->m_bpp = 1; - - wxCHECK_RET( M_BMPDATA->m_bitmap, _T("couldn't create bitmap") ); - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) wxTheBitmapList->DeleteObject(this); -} - -wxBitmap& wxBitmap::operator = ( const wxBitmap& bmp ) -{ - if (*this == bmp) return (*this); - Ref( bmp ); - return *this; -} - -bool wxBitmap::operator == ( const wxBitmap& bmp ) -{ - return m_refData == bmp.m_refData; -} - -bool wxBitmap::operator != ( const wxBitmap& bmp ) -{ - return m_refData != bmp.m_refData; -} - -bool wxBitmap::Ok(void) const -{ - return (m_refData != NULL); -} - -int wxBitmap::GetHeight(void) const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_height; -} - -int wxBitmap::GetWidth(void) const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_width; -} - -int wxBitmap::GetDepth(void) const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_bpp; -} - -wxMask *wxBitmap::GetMask(void) const -{ - wxCHECK_MSG( Ok(), (wxMask *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_mask; -} - -void wxBitmap::SetMask( wxMask *mask ) -{ - wxCHECK_RET( Ok(), _T("invalid bitmap") ); - - if (M_BMPDATA->m_mask) delete M_BMPDATA->m_mask; - - M_BMPDATA->m_mask = mask; -} - -bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(palette) ) -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid bitmap") ); - - if (type == wxBITMAP_TYPE_PNG) - { - wxImage image( *this ); - if (image.Ok()) return image.SaveFile( name, type ); - } - - return FALSE; -} - -bool wxBitmap::LoadFile( const wxString &name, int type ) -{ - UnRef(); - - if (!wxFileExists(name)) return FALSE; - - if (type == wxBITMAP_TYPE_XPM) - { - m_refData = new wxBitmapRefData(); - - GdkBitmap *mask = (GdkBitmap*) NULL; - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - - M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm( parent, &mask, NULL, name.fn_str() ); - - if (mask) - { - M_BMPDATA->m_mask = new wxMask(); - M_BMPDATA->m_mask->m_bitmap = mask; - } - - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; - } - else if (type == wxBITMAP_TYPE_PNG) - { - wxImage image; - image.LoadFile( name, type ); - if (image.Ok()) *this = image.ConvertToBitmap(); - } - else if (type == wxBITMAP_TYPE_BMP) - { - wxImage image; - image.LoadFile( name, type ); - if (image.Ok()) *this = image.ConvertToBitmap(); - } - else - return FALSE; - - return TRUE; -} - -wxPalette *wxBitmap::GetPalette(void) const -{ - if (!Ok()) return (wxPalette *) NULL; - - return M_BMPDATA->m_palette; -} - -void wxBitmap::SetHeight( int height ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_height = height; -} - -void wxBitmap::SetWidth( int width ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_width = width; -} - -void wxBitmap::SetDepth( int depth ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_bpp = depth; -} - -void wxBitmap::SetPixmap( GdkPixmap *pixmap ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_pixmap = pixmap; -} - -GdkPixmap *wxBitmap::GetPixmap(void) const -{ - wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_pixmap; -} - -GdkBitmap *wxBitmap::GetBitmap(void) const -{ - wxCHECK_MSG( Ok(), (GdkBitmap *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_bitmap; -} diff --git a/src/gtk/bmpbuttn.cpp b/src/gtk/bmpbuttn.cpp deleted file mode 100644 index 7ede0d75a7..0000000000 --- a/src/gtk/bmpbuttn.cpp +++ /dev/null @@ -1,311 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBitmapButton; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); - event.SetEventObject(button); - button->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// "enter" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->HasFocus(); -} - -//----------------------------------------------------------------------------- -// "leave" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->NotFocus(); -} - -//----------------------------------------------------------------------------- -// "pressed" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->StartSelect(); -} - -//----------------------------------------------------------------------------- -// "released" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->EndSelect(); -} - -//----------------------------------------------------------------------------- -// wxBitmapButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl) - -wxBitmapButton::wxBitmapButton() -{ -} - -bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - - SetValidator( validator ); - - m_bitmap = bitmap; - m_disabled = bitmap; - m_focus = bitmap; - m_selected = bitmap; - - m_label = ""; - - m_widget = gtk_button_new(); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxNO_BORDER) - gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE ); -#endif - - if (m_bitmap.Ok()) - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - GtkWidget *pixmap = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); - - gtk_widget_show( pixmap ); - gtk_container_add( GTK_CONTAINER(m_widget), pixmap ); - } - - int border = 10; - if (style & wxNO_BORDER) border = 4; - if (newSize.x == -1) newSize.x = m_bitmap.GetWidth()+border; - if (newSize.y == -1) newSize.y = m_bitmap.GetHeight()+border; - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_bmpbutton_clicked_callback), (gpointer*)this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "enter", - GTK_SIGNAL_FUNC(gtk_bmpbutton_enter_callback), (gpointer*)this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "leave", - GTK_SIGNAL_FUNC(gtk_bmpbutton_leave_callback), (gpointer*)this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "pressed", - GTK_SIGNAL_FUNC(gtk_bmpbutton_press_callback), (gpointer*)this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "released", - GTK_SIGNAL_FUNC(gtk_bmpbutton_release_callback), (gpointer*)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -void wxBitmapButton::SetDefault() -{ - GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); - gtk_widget_grab_default( m_widget ); - - SetSize( m_x, m_y, m_width, m_height ); -} - -void wxBitmapButton::SetLabel( const wxString &label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - wxControl::SetLabel( label ); -} - -wxString wxBitmapButton::GetLabel() const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid button") ); - - return wxControl::GetLabel(); -} - -void wxBitmapButton::ApplyWidgetStyle() -{ -} - -void wxBitmapButton::SetBitmap() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - wxBitmap the_one; - - if (!m_isEnabled) - the_one = m_disabled; - else - { - if (m_isSelected) - { - the_one = m_selected; - } - else - { - if (m_hasFocus) - the_one = m_focus; - else - the_one = m_bitmap; - } - } - - if (!the_one.Ok()) the_one = m_bitmap; - if (!the_one.Ok()) return; - - GtkButton *bin = GTK_BUTTON( m_widget ); - GtkPixmap *g_pixmap = GTK_PIXMAP( bin->child ); - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (the_one.GetMask()) mask = the_one.GetMask()->GetBitmap(); - - gtk_pixmap_set( g_pixmap, the_one.GetPixmap(), mask ); -} - -void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if ( ! m_disabled.Ok() ) return; - m_disabled = bitmap; - - SetBitmap(); -} - -void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if ( ! m_focus.Ok() ) return; - m_focus = bitmap; - - SetBitmap(); -} - -void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if (!m_bitmap.Ok()) return; - m_bitmap = bitmap; - - SetBitmap(); -} - -void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if ( ! m_selected.Ok() ) return; - m_selected = bitmap; - - SetBitmap(); -} - -bool wxBitmapButton::Enable( bool enable ) -{ - if ( !wxWindow::Enable(enable) ) - return FALSE; - - SetBitmap(); - - return TRUE; -} - -void wxBitmapButton::HasFocus() -{ - m_hasFocus = TRUE; - SetBitmap(); -} - -void wxBitmapButton::NotFocus() -{ - m_hasFocus = FALSE; - SetBitmap(); -} - -void wxBitmapButton::StartSelect() -{ - m_isSelected = TRUE; - SetBitmap(); -} - -void wxBitmapButton::EndSelect() -{ - m_isSelected = FALSE; - SetBitmap(); -} diff --git a/src/gtk/brush.cpp b/src/gtk/brush.cpp deleted file mode 100644 index ae8e34635c..0000000000 --- a/src/gtk/brush.cpp +++ /dev/null @@ -1,180 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/brush.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// wxBrush -//----------------------------------------------------------------------------- - -class wxBrushRefData: public wxObjectRefData -{ - public: - - wxBrushRefData(); - wxBrushRefData( const wxBrushRefData& data ); - - int m_style; - wxBitmap m_stipple; - wxColour m_colour; -}; - -wxBrushRefData::wxBrushRefData() -{ - m_style = 0; -} - -wxBrushRefData::wxBrushRefData( const wxBrushRefData& data ) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -} - -//----------------------------------------------------------------------------- - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxBrush,wxGDIObject) - -wxBrush::wxBrush() -{ - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::wxBrush( const wxColour &colour, int style ) -{ - m_refData = new wxBrushRefData(); - M_BRUSHDATA->m_style = style; - M_BRUSHDATA->m_colour = colour; - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::wxBrush( const wxBitmap &stippleBitmap ) -{ - m_refData = new wxBrushRefData(); - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_colour = *wxBLACK; - M_BRUSHDATA->m_stipple = stippleBitmap; - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::wxBrush( const wxBrush &brush ) -{ - Ref( brush ); - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::~wxBrush() -{ - if (wxTheBrushList) wxTheBrushList->RemoveBrush( this ); -} - -wxBrush& wxBrush::operator = ( const wxBrush& brush ) -{ - if (*this == brush) return (*this); - Ref( brush ); - return *this; -} - -bool wxBrush::operator == ( const wxBrush& brush ) -{ - return m_refData == brush.m_refData; -} - -bool wxBrush::operator != ( const wxBrush& brush ) -{ - return m_refData != brush.m_refData; -} - -bool wxBrush::Ok() const -{ - return ((m_refData) && M_BRUSHDATA->m_colour.Ok()); -} - -int wxBrush::GetStyle() const -{ - if (m_refData == NULL) - { - wxFAIL_MSG( _T("invalid brush") ); - return 0; - } - - return M_BRUSHDATA->m_style; -} - -wxColour &wxBrush::GetColour() const -{ - if (m_refData == NULL) - { - wxFAIL_MSG( _T("invalid brush") ); - return wxNullColour; - } - - return M_BRUSHDATA->m_colour; -} - -wxBitmap *wxBrush::GetStipple() const -{ - if (m_refData == NULL) - { - wxFAIL_MSG( _T("invalid brush") ); - return &wxNullBitmap; - } - - return &M_BRUSHDATA->m_stipple; -} - -void wxBrush::SetColour( const wxColour& col ) -{ - Unshare(); - M_BRUSHDATA->m_colour = col; -} - -void wxBrush::SetColour( unsigned char r, unsigned char g, unsigned char b ) -{ - Unshare(); - M_BRUSHDATA->m_colour.Set( r, g, b ); -} - -void wxBrush::SetStyle( int style ) -{ - Unshare(); - M_BRUSHDATA->m_style = style; -} - -void wxBrush::SetStipple( const wxBitmap& stipple ) -{ - Unshare(); - M_BRUSHDATA->m_stipple = stipple; -} - -void wxBrush::Unshare() -{ - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData( *(wxBrushRefData*)m_refData ); - UnRef(); - m_refData = ref; - } -} - diff --git a/src/gtk/button.cpp b/src/gtk/button.cpp deleted file mode 100644 index 613aab8a05..0000000000 --- a/src/gtk/button.cpp +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxButton; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); - event.SetEventObject(button); - button->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxButton,wxControl) - -wxButton::wxButton() -{ -} - -wxButton::~wxButton() -{ - if (m_clientData) delete m_clientData; -} - -bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator& validator, const wxString &name ) -{ - m_clientData = (wxClientData*) NULL; - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif // wxUSE_VALIDATORS - - m_widget = gtk_button_new_with_label( "" ); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxNO_BORDER) - gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE ); -#endif - - SetLabel(label); - - if (newSize.x == -1) newSize.x = 15+gdk_string_measure( m_widget->style->font, label.mbc_str() ); - if (newSize.y == -1) newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxButton::SetDefault(void) -{ - GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); - gtk_widget_grab_default( m_widget ); - - SetSize( m_x, m_y, m_width, m_height ); -} - -void wxButton::SetLabel( const wxString &label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - wxControl::SetLabel( label ); - - gtk_label_set( GTK_LABEL( GTK_BUTTON(m_widget)->child ), GetLabel().mbc_str() ); -} - -bool wxButton::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - gtk_widget_set_sensitive( GTK_BUTTON(m_widget)->child, enable ); - - return TRUE; -} - -void wxButton::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( GTK_BUTTON(m_widget)->child, m_widgetStyle ); -} diff --git a/src/gtk/cdiag.xbm b/src/gtk/cdiag.xbm deleted file mode 100644 index 15dc7ba86d..0000000000 --- a/src/gtk/cdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cdiag_width 16 -#define cdiag_height 16 -static char cdiag_bits[] = { - 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x18, 0x24, 0x24, - 0x42, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, - 0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x81, 0x81}; diff --git a/src/gtk/checkbox.cpp b/src/gtk/checkbox.cpp deleted file mode 100644 index 09cdd98387..0000000000 --- a/src/gtk/checkbox.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_checkbox_clicked_callback( GtkWidget *WXUNUSED(widget), wxCheckBox *cb ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!cb->m_hasVMT) return; - - if (cb->m_blockFirstEvent) - { - cb->m_blockFirstEvent = FALSE; - return; - } - - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, cb->GetId()); - event.SetInt( cb->GetValue() ); - event.SetEventObject(cb); - cb->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxCheckBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox,wxControl) - -wxCheckBox::wxCheckBox() -{ -} - -bool wxCheckBox::Create(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos, - const wxSize &size, - long style, - const wxValidator& validator, - const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_blockFirstEvent = FALSE; - - SetValidator( validator ); - wxControl::SetLabel( label ); - - if ( style & wxALIGN_RIGHT ) - { - // VZ: as I don't know a way to create a right aligned checkbox with - // GTK we will create a checkbox without label and a label at the - // left of it - m_widgetCheckbox = gtk_check_button_new(); - - m_widgetLabel = gtk_label_new(m_label.mbc_str()); - gtk_misc_set_alignment(GTK_MISC(m_widgetLabel), 0.0, 0.5); - - m_widget = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(m_widget), m_widgetLabel, FALSE, FALSE, 3); - gtk_box_pack_start(GTK_BOX(m_widget), m_widgetCheckbox, FALSE, FALSE, 3); - - // VZ: why do I have to do this to make them appear? - gtk_widget_show( m_widgetLabel ); - gtk_widget_show( m_widgetCheckbox ); - } - else - { - m_widgetCheckbox = gtk_check_button_new_with_label( m_label.mbc_str() ); - m_widgetLabel = GTK_BUTTON( m_widgetCheckbox )->child; - m_widget = m_widgetCheckbox; - } - - wxSize newSize(size); - if (newSize.x == -1) - { - newSize.x = 25 + gdk_string_measure( m_widgetCheckbox->style->font, - m_label.mbc_str() ); - } - if (newSize.y == -1) - newSize.y = 26; - - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox), - "clicked", - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxCheckBox::SetValue( bool state ) -{ - wxCHECK_RET( m_widgetCheckbox != NULL, _T("invalid checkbox") ); - - if ( state == GetValue() ) - return; - - // for compatibility with wxMSW don't send notification when the check box - // state is changed programmatically - m_blockFirstEvent = TRUE; - - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widgetCheckbox), state ); -} - -bool wxCheckBox::GetValue() const -{ - wxCHECK_MSG( m_widgetCheckbox != NULL, FALSE, _T("invalid checkbox") ); - - return GTK_TOGGLE_BUTTON(m_widgetCheckbox)->active; -} - -void wxCheckBox::SetLabel( const wxString& label ) -{ - wxCHECK_RET( m_widgetLabel != NULL, _T("invalid checkbox") ); - - wxControl::SetLabel( label ); - - gtk_label_set( GTK_LABEL(m_widgetLabel), GetLabel().mbc_str() ); -} - -bool wxCheckBox::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - gtk_widget_set_sensitive( m_widgetLabel, enable ); - - return TRUE; -} - -void wxCheckBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widgetCheckbox, m_widgetStyle ); - gtk_widget_set_style( m_widgetLabel, m_widgetStyle ); -} - diff --git a/src/gtk/checklst.cpp b/src/gtk/checklst.cpp deleted file mode 100644 index 57bd258ee1..0000000000 --- a/src/gtk/checklst.cpp +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -#include "wx/checklst.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxCheckListBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox,wxListBox) - -wxCheckListBox::wxCheckListBox() : wxListBox() -{ - m_hasCheckBoxes = TRUE; -} - -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int nStrings, - const wxString *choices, - long style, - const wxValidator& validator, - const wxString& name ) -{ - m_hasCheckBoxes = TRUE; - wxListBox::Create( parent, id, pos, size, nStrings, choices, style, validator, name ); -} - -bool wxCheckListBox::IsChecked( int index ) const -{ - wxCHECK_MSG( m_list != NULL, FALSE, _T("invalid checklistbox") ); - - GList *child = g_list_nth( m_list->children, index ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = label->label; - - return (str[1] == 'X'); - } - - wxFAIL_MSG(_T("wrong checklistbox index")); - return FALSE; -} - -void wxCheckListBox::Check( int index, bool check ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid checklistbox") ); - - GList *child = g_list_nth( m_list->children, index ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = label->label; - - if (check == (str[1] == _T('X'))) return; - - if (check) - str.SetChar( 1, _T('X') ); - else - str.SetChar( 1, _T('-') ); - - gtk_label_set( label, str.mbc_str() ); - - return; - } - - wxFAIL_MSG(_T("wrong checklistbox index")); -} - -int wxCheckListBox::GetItemHeight() const -{ - // FIXME - return 22; -} diff --git a/src/gtk/choice.cpp b/src/gtk/choice.cpp deleted file mode 100644 index f13d20eae3..0000000000 --- a/src/gtk/choice.cpp +++ /dev/null @@ -1,390 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -#include "wx/choice.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "activate" -//----------------------------------------------------------------------------- - -static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!choice->m_hasVMT) return; - - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() ); - event.SetInt( choice->GetSelection() ); - event.SetString( choice->GetStringSelection() ); - event.SetEventObject(choice); - choice->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxChoice -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxChoice,wxControl) - -wxChoice::wxChoice() -{ -} - -bool wxChoice::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - int n, const wxString choices[], - long style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; -#if (GTK_MINOR_VERSION > 0) - m_acceptsFocus = TRUE; -#endif - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_option_menu_new(); - - wxSize newSize(size); - if (newSize.x == -1) - newSize.x = 80; - if (newSize.y == -1) - newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - GtkWidget *menu = gtk_menu_new(); - - for (int i = 0; i < n; i++) - { - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - GtkWidget *item = gtk_menu_item_new_with_label( choices[i].mbc_str() ); - gtk_menu_append( GTK_MENU(menu), item ); - - gtk_widget_show( item ); - - gtk_signal_connect( GTK_OBJECT( item ), "activate", - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - } - gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxChoice::~wxChoice() -{ - Clear(); -} - -void wxChoice::AppendCommon( const wxString &item ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ); - GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() ); - - gtk_menu_append( GTK_MENU(menu), menu_item ); - - if (GTK_WIDGET_REALIZED(m_widget)) - { - gtk_widget_realize( menu_item ); - gtk_widget_realize( GTK_BIN(menu_item)->child ); - - if (m_widgetStyle) ApplyWidgetStyle(); - } - - gtk_signal_connect( GTK_OBJECT( menu_item ), "activate", - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - - gtk_widget_show( menu_item ); -} - -void wxChoice::Append( const wxString &item ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxChoice::Append( const wxString &item, void *clientData ) -{ - m_clientDataList.Append( (wxObject*) clientData ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxChoice::Append( const wxString &item, wxClientData *clientData ) -{ - m_clientObjectList.Append( (wxObject*) clientData ); - m_clientDataList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxChoice::SetClientData( int n, void* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return; - - node->SetData( (wxObject*) clientData ); -} - -void* wxChoice::GetClientData( int n ) -{ - wxCHECK_MSG( m_widget != NULL, NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return NULL; - - return node->Data(); -} - -void wxChoice::SetClientObject( int n, wxClientData* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return; - - wxClientData *cd = (wxClientData*) node->Data(); - if (cd) delete cd; - - node->SetData( (wxObject*) clientData ); -} - -wxClientData* wxChoice::GetClientObject( int n ) -{ - wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return (wxClientData*) NULL; - - return (wxClientData*) node->Data(); -} - -void wxChoice::Clear() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - gtk_option_menu_remove_menu( GTK_OPTION_MENU(m_widget) ); - GtkWidget *menu = gtk_menu_new(); - gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu ); - - wxNode *node = m_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - m_clientDataList.Clear(); -} - -void wxChoice::Delete( int WXUNUSED(n) ) -{ - wxFAIL_MSG( _T("wxChoice:Delete not implemented") ); -} - -int wxChoice::FindString( const wxString &string ) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid choice") ); - - // If you read this code once and you think you understand - // it, then you are very wrong. Robert Roebling. - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = (GtkLabel *) NULL; - if (bin->child) label = GTK_LABEL(bin->child); - if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child ); - - wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - - if (string == label->label) - return count; - - child = child->next; - count++; - } - - return -1; -} - -int wxChoice::GetColumns() const -{ - return 1; -} - -int wxChoice::GetSelection() -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid choice") ); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - if (!bin->child) return count; - child = child->next; - count++; - } - - wxFAIL_MSG( _T("wxChoice: no selection") ); - - return -1; -} - -wxString wxChoice::GetString( int n ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid choice") ); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - if (count == n) - { - GtkLabel *label = (GtkLabel *) NULL; - if (bin->child) label = GTK_LABEL(bin->child); - if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child ); - - wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - - return label->label; - } - child = child->next; - count++; - } - - wxFAIL_MSG( _T("wxChoice: invalid index in GetString()") ); - - return ""; -} - -wxString wxChoice::GetStringSelection() const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid choice") ); - - GtkLabel *label = GTK_LABEL( GTK_BUTTON(m_widget)->child ); - - wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - - return label->label; -} - -int wxChoice::Number() const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid choice") ); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - count++; - child = child->next; - } - return count; -} - -void wxChoice::SetColumns( int WXUNUSED(n) ) -{ -} - -void wxChoice::SetSelection( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - int tmp = n; - gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp ); - - gtk_choice_clicked_callback( (GtkWidget *) NULL, this ); -} - -void wxChoice::SetStringSelection( const wxString &string ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - int n = FindString( string ); - if (n != -1) SetSelection( n ); -} - -void wxChoice::ApplyWidgetStyle() -{ - SetWidgetStyle(); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( GTK_WIDGET( menu_shell ), m_widgetStyle ); - - GList *child = menu_shell->children; - while (child) - { - gtk_widget_set_style( GTK_WIDGET( child->data ), m_widgetStyle ); - - GtkBin *bin = GTK_BIN( child->data ); - GtkWidget *label = (GtkWidget *) NULL; - if (bin->child) label = bin->child; - if (!label) label = GTK_BUTTON(m_widget)->child; - - gtk_widget_set_style( label, m_widgetStyle ); - - child = child->next; - } -} - diff --git a/src/gtk/clipbrd.cpp b/src/gtk/clipbrd.cpp deleted file mode 100644 index f4ed88753f..0000000000 --- a/src/gtk/clipbrd.cpp +++ /dev/null @@ -1,627 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "clipbrd.h" -#endif - -#include "wx/clipbrd.h" - -#if wxUSE_CLIPBOARD - -#include "wx/utils.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -wxClipboard *wxTheClipboard = (wxClipboard*) NULL; - -GdkAtom g_clipboardAtom = 0; -GdkAtom g_targetsAtom = 0; - -//----------------------------------------------------------------------------- -// reminder -//----------------------------------------------------------------------------- - -/* The contents of a selection are returned in a GtkSelectionData - structure. selection/target identify the request. - type specifies the type of the return; if length < 0, and - the data should be ignored. This structure has object semantics - - no fields should be modified directly, they should not be created - directly, and pointers to them should not be stored beyond the duration of - a callback. (If the last is changed, we'll need to add reference - counting) - -struct _GtkSelectionData -{ - GdkAtom selection; - GdkAtom target; - GdkAtom type; - gint format; - guchar *data; - gint length; -}; - -*/ - -//----------------------------------------------------------------------------- -// "selection_received" for targets -//----------------------------------------------------------------------------- - -static void -targets_selection_received( GtkWidget *WXUNUSED(widget), - GtkSelectionData *selection_data, -#if (GTK_MINOR_VERSION > 0) - guint32 WXUNUSED(time), -#endif - wxClipboard *clipboard ) -{ - if (!wxTheClipboard) - { - clipboard->m_waiting = FALSE; - return; - } - - if (selection_data->length <= 0) - { - clipboard->m_waiting = FALSE; - return; - } - - /* make sure we got the data in the correct form */ - if (selection_data->type != GDK_SELECTION_TYPE_ATOM) - { - clipboard->m_waiting = FALSE; - return; - } - - // the atoms we received, holding a list of targets (= formats) - GdkAtom *atoms = (GdkAtom *)selection_data->data; - - for (unsigned int i=0; ilength/sizeof(GdkAtom); i++) - { -/* char *name = gdk_atom_name (atoms[i]); - if (name) printf( "Format available: %s.\n", name ); */ - - if (atoms[i] == clipboard->m_targetRequested) - { - clipboard->m_waiting = FALSE; - clipboard->m_formatSupported = TRUE; - return; - } - } - - clipboard->m_waiting = FALSE; - return; -} - -//----------------------------------------------------------------------------- -// "selection_received" for the actual data -//----------------------------------------------------------------------------- - -static void -selection_received( GtkWidget *WXUNUSED(widget), - GtkSelectionData *selection_data, -#if (GTK_MINOR_VERSION > 0) - guint32 WXUNUSED(time), -#endif - wxClipboard *clipboard ) -{ - if (!wxTheClipboard) - { - clipboard->m_waiting = FALSE; - return; - } - - wxDataObject *data_object = clipboard->m_receivedData; - - if (!data_object) - { - clipboard->m_waiting = FALSE; - return; - } - - if (selection_data->length <= 0) - { - clipboard->m_waiting = FALSE; - return; - } - - /* make sure we got the data in the correct format */ - if (data_object->GetFormat().GetAtom() != selection_data->target) - { - clipboard->m_waiting = FALSE; - return; - } - - /* make sure we got the data in the correct form (selection type). - if so, copy data to target object */ - - switch (data_object->GetFormat().GetType()) - { - case wxDF_TEXT: - { - if (selection_data->type != GDK_SELECTION_TYPE_STRING) - { - clipboard->m_waiting = FALSE; - return; - } - - wxTextDataObject *text_object = (wxTextDataObject *) data_object; - - wxString text = (const char*) selection_data->data; - - text_object->SetText( text ); - - break; - } - - case wxDF_BITMAP: - { - if (selection_data->type != GDK_SELECTION_TYPE_BITMAP) - { - clipboard->m_waiting = FALSE; - return; - } - - break; - } - - case wxDF_PRIVATE: - { - if (selection_data->type != GDK_SELECTION_TYPE_STRING) - { - clipboard->m_waiting = FALSE; - return; - } - - wxPrivateDataObject *private_object = (wxPrivateDataObject *) data_object; - - private_object->SetData( (const char*) selection_data->data, (size_t) selection_data->length ); - - break; - } - - default: - { - clipboard->m_waiting = FALSE; - return; - } - } - - wxTheClipboard->m_formatSupported = TRUE; - clipboard->m_waiting = FALSE; -} - -//----------------------------------------------------------------------------- -// "selection_clear" -//----------------------------------------------------------------------------- - -static gint -selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event ) -{ - if (!wxTheClipboard) return TRUE; - - if (event->selection == GDK_SELECTION_PRIMARY) - { - wxTheClipboard->m_ownsPrimarySelection = FALSE; - } - else - if (event->selection == g_clipboardAtom) - { - wxTheClipboard->m_ownsClipboard = FALSE; - } - else - { - wxTheClipboard->m_waiting = FALSE; - return FALSE; - } - - if ((!wxTheClipboard->m_ownsPrimarySelection) && - (!wxTheClipboard->m_ownsClipboard)) - { - /* the clipboard is no longer in our hands. we can the delete clipboard data. */ - if (wxTheClipboard->m_dataBroker) - { - delete wxTheClipboard->m_dataBroker; - wxTheClipboard->m_dataBroker = (wxDataBroker*) NULL; - } - } - - wxTheClipboard->m_waiting = FALSE; - return TRUE; -} - -//----------------------------------------------------------------------------- -// selection handler for supplying data -//----------------------------------------------------------------------------- - -static void -selection_handler( GtkWidget *WXUNUSED(widget), GtkSelectionData *selection_data, gpointer WXUNUSED(data) ) -{ - if (!wxTheClipboard) return; - - if (!wxTheClipboard->m_dataBroker) return; - - wxNode *node = wxTheClipboard->m_dataBroker->m_dataObjects.First(); - - while (node) - { - wxDataObject *data_object = (wxDataObject *)node->Data(); - - if (data_object->GetFormat().GetAtom() != selection_data->target) - { - node = node->Next(); - continue; - } - - switch (data_object->GetFormat().GetType()) - { - case wxDF_TEXT: - { - wxTextDataObject *text_object = (wxTextDataObject*) data_object; - - wxString text = text_object->GetText(); - -#if wxUSE_UNICODE - const wxWX2MBbuf s = text.mbc_str(); - int len = strlen(s); -#else // more efficient in non-Unicode - const char *s = text.c_str(); - int len = (int) text.Length(); -#endif - - gtk_selection_data_set( - selection_data, - GDK_SELECTION_TYPE_STRING, - 8*sizeof(gchar), - (unsigned char*) (const char*) s, - len ); - - break; - } - - case wxDF_BITMAP: - { - // wxBitmapDataObject *private_object = (wxBitmapDataObject*) data_object; - - // how do we do that ? - - break; - } - - case wxDF_PRIVATE: - { - wxPrivateDataObject *private_object = (wxPrivateDataObject*) data_object; - - if (private_object->GetSize() == 0) return; - - gtk_selection_data_set( - selection_data, - GDK_SELECTION_TYPE_STRING, - 8*sizeof(gchar), - (unsigned char*) private_object->GetData(), - (int) private_object->GetSize() ); - } - - default: - break; - } - - node = node->Next(); - } -} - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject) - -wxClipboard::wxClipboard() -{ - m_open = FALSE; - - m_ownsClipboard = FALSE; - m_ownsPrimarySelection = FALSE; - - m_dataBroker = (wxDataBroker*) NULL; - - m_receivedData = (wxDataObject*) NULL; - - /* we use m_targetsWidget to query what formats are available */ - - m_targetsWidget = gtk_window_new( GTK_WINDOW_POPUP ); - gtk_widget_realize( m_targetsWidget ); - - gtk_signal_connect( GTK_OBJECT(m_targetsWidget), - "selection_received", - GTK_SIGNAL_FUNC( targets_selection_received ), - (gpointer) this ); - - /* we use m_clipboardWidget to get and to offer data */ - - m_clipboardWidget = gtk_window_new( GTK_WINDOW_POPUP ); - gtk_widget_realize( m_clipboardWidget ); - - gtk_signal_connect( GTK_OBJECT(m_clipboardWidget), - "selection_received", - GTK_SIGNAL_FUNC( selection_received ), - (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_clipboardWidget), - "selection_clear_event", - GTK_SIGNAL_FUNC( selection_clear_clip ), - (gpointer) NULL ); - - if (!g_clipboardAtom) g_clipboardAtom = gdk_atom_intern( "CLIPBOARD", FALSE ); - if (!g_targetsAtom) g_targetsAtom = gdk_atom_intern ("TARGETS", FALSE); - - m_formatSupported = FALSE; - m_targetRequested = 0; - - m_usePrimary = FALSE; -} - -wxClipboard::~wxClipboard() -{ - Clear(); - - if (m_clipboardWidget) gtk_widget_destroy( m_clipboardWidget ); - if (m_targetsWidget) gtk_widget_destroy( m_targetsWidget ); -} - -void wxClipboard::Clear() -{ - if (m_dataBroker) - { - /* As we have data we also own the clipboard. Once we no longer own - it, clear_selection is called which will set m_data to zero */ - - if (gdk_selection_owner_get( g_clipboardAtom ) == m_clipboardWidget->window) - { - m_waiting = TRUE; - - gtk_selection_owner_set( (GtkWidget*) NULL, g_clipboardAtom, GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - } - - if (gdk_selection_owner_get( GDK_SELECTION_PRIMARY ) == m_clipboardWidget->window) - { - m_waiting = TRUE; - - gtk_selection_owner_set( (GtkWidget*) NULL, GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - } - - if (m_dataBroker) - { - delete m_dataBroker; - m_dataBroker = (wxDataBroker*) NULL; - } - } - - m_targetRequested = 0; - - m_formatSupported = FALSE; -} - -bool wxClipboard::Open() -{ - wxCHECK_MSG( !m_open, FALSE, _T("clipboard already open") ); - - m_open = TRUE; - - return TRUE; -} - -bool wxClipboard::SetData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - wxCHECK_MSG( data, FALSE, _T("data is invalid") ); - - Clear(); - - return AddData( data ); -} - -bool wxClipboard::AddData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - wxCHECK_MSG( data, FALSE, _T("data is invalid") ); - - /* if clipboard has been cleared before, create new data broker */ - if (!m_dataBroker) m_dataBroker = new wxDataBroker(); - - /* add new data to list of offered data objects */ - m_dataBroker->Add( data ); - - /* get native format id of new data object */ - GdkAtom format = data->GetFormat().GetAtom(); - - wxCHECK_MSG( format, FALSE, _T("data has invalid format") ); - - /* This should happen automatically, but to be on the safe side */ - m_ownsClipboard = FALSE; - m_ownsPrimarySelection = FALSE; - - /* Add handlers if someone requests data */ - -#if (GTK_MINOR_VERSION > 0) - - gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget), - GDK_SELECTION_PRIMARY, - format, - 0 ); /* what is info ? */ - - gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget), - g_clipboardAtom, - format, - 0 ); /* what is info ? */ - - gtk_signal_connect( GTK_OBJECT(m_clipboardWidget), - "selection_get", - GTK_SIGNAL_FUNC(selection_handler), - (gpointer) NULL ); - -#else - - gtk_selection_add_handler( m_clipboardWidget, - g_clipboardAtom, - format, - selection_handler, - (gpointer) NULL ); - - gtk_selection_add_handler( m_clipboardWidget, - GDK_SELECTION_PRIMARY, - format, - selection_handler, - (gpointer) NULL ); -#endif - - /* Tell the world we offer clipboard data */ - if (!gtk_selection_owner_set( m_clipboardWidget, - g_clipboardAtom, - GDK_CURRENT_TIME )) - { - return FALSE; - } - m_ownsClipboard = TRUE; - - if (!gtk_selection_owner_set( m_clipboardWidget, - GDK_SELECTION_PRIMARY, - GDK_CURRENT_TIME )) - { - return FALSE; - } - m_ownsPrimarySelection = TRUE; - - return TRUE; -} - -void wxClipboard::Close() -{ - wxCHECK_RET( m_open, _T("clipboard not open") ); - - m_open = FALSE; -} - -bool wxClipboard::IsSupported( wxDataFormat format ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - /* store requested format to be asked for by callbacks */ - - m_targetRequested = format.GetAtom(); - - wxCHECK_MSG( m_targetRequested, FALSE, _T("invalid clipboard format") ); - - m_formatSupported = FALSE; - - /* perform query. this will set m_formatSupported to - TRUE if m_targetRequested is supported. - alsom we have to wait for the "answer" from the - clipboard owner which is an asynchronous process. - therefore we set m_waiting = TRUE here and wait - until the callback "targets_selection_received" - sets it to FALSE */ - - m_waiting = TRUE; - - gtk_selection_convert( m_targetsWidget, - m_usePrimary?GDK_SELECTION_PRIMARY:g_clipboardAtom, - g_targetsAtom, - GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - - if (!m_formatSupported) return FALSE; - - return TRUE; -} - -bool wxClipboard::GetData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - /* is data supported by clipboard ? */ - - if (!IsSupported( data->GetFormat() )) return FALSE; - - /* store pointer to data object to be filled up by callbacks */ - - m_receivedData = data; - - /* store requested format to be asked for by callbacks */ - - m_targetRequested = data->GetFormat().GetAtom(); - - wxCHECK_MSG( m_targetRequested, FALSE, _T("invalid clipboard format") ); - - /* start query */ - - m_formatSupported = FALSE; - - /* ask for clipboard contents. this will set - m_formatSupported to TRUE if m_targetRequested - is supported. - also, we have to wait for the "answer" from the - clipboard owner which is an asynchronous process. - therefore we set m_waiting = TRUE here and wait - until the callback "targets_selection_received" - sets it to FALSE */ - - m_waiting = TRUE; - - gtk_selection_convert( m_clipboardWidget, - m_usePrimary?GDK_SELECTION_PRIMARY:g_clipboardAtom, - m_targetRequested, - GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - - /* this is a true error as we checked for the presence of such data before */ - - wxCHECK_MSG( m_formatSupported, FALSE, _T("error retrieving data from clipboard") ); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule) - -bool wxClipboardModule::OnInit() -{ - wxTheClipboard = new wxClipboard(); - - return TRUE; -} - -void wxClipboardModule::OnExit() -{ - if (wxTheClipboard) delete wxTheClipboard; - wxTheClipboard = (wxClipboard*) NULL; -} - -#endif - - // wxUSE_CLIPBOARD - diff --git a/src/gtk/colour.cpp b/src/gtk/colour.cpp deleted file mode 100644 index 51fde80c11..0000000000 --- a/src/gtk/colour.cpp +++ /dev/null @@ -1,226 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" - -//----------------------------------------------------------------------------- -// wxColour -//----------------------------------------------------------------------------- - -class wxColourRefData: public wxObjectRefData -{ - public: - - wxColourRefData(); - ~wxColourRefData(); - void FreeColour(); - - GdkColor m_color; - GdkColormap *m_colormap; - bool m_hasPixel; - - friend wxColour; -}; - -wxColourRefData::wxColourRefData() -{ - m_color.red = 0; - m_color.green = 0; - m_color.blue = 0; - m_color.pixel = 0; - m_colormap = (GdkColormap *) NULL; - m_hasPixel = FALSE; -} - -wxColourRefData::~wxColourRefData() -{ - FreeColour(); -} - -void wxColourRefData::FreeColour() -{ -// if (m_hasPixel) gdk_colors_free( m_colormap, &m_color, 1, 0 ); -} - -//----------------------------------------------------------------------------- - -#define M_COLDATA ((wxColourRefData *)m_refData) - -#define SHIFT (8*(sizeof(short int)-sizeof(char))) - -IMPLEMENT_DYNAMIC_CLASS(wxColour,wxGDIObject) - -wxColour::wxColour() -{ -} - -wxColour::wxColour( unsigned char red, unsigned char green, unsigned char blue ) -{ - m_refData = new wxColourRefData(); - M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT; - M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT; - M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT; - M_COLDATA->m_color.pixel = 0; -} - -void wxColour::InitFromName( const wxString &colourName ) -{ - wxNode *node = (wxNode *) NULL; - if ( (wxTheColourDatabase) && (node = wxTheColourDatabase->Find(colourName)) ) - { - wxColour *col = (wxColour*)node->Data(); - UnRef(); - if (col) Ref( *col ); - } - else - { - m_refData = new wxColourRefData(); - if (!gdk_color_parse( colourName.mb_str(), &M_COLDATA->m_color )) - { - wxFAIL_MSG( _T("wxColour: couldn't find colour") ); - wxPrintf( _T("Colourname %s.\n"), WXSTRINGCAST colourName ); - - delete m_refData; - m_refData = (wxObjectRefData *) NULL; - } - } -} - -wxColour::wxColour( const wxColour& col ) -{ - Ref( col ); -} - -wxColour::~wxColour() -{ -} - -wxColour& wxColour::operator = ( const wxColour& col ) -{ - if (*this == col) return (*this); - Ref( col ); - return *this; -} - -bool wxColour::operator == ( const wxColour& col ) const -{ - if (m_refData == col.m_refData) return TRUE; - - if (!m_refData) return FALSE; - if (!col.m_refData) return FALSE; - - GdkColor *own = &(((wxColourRefData*)m_refData)->m_color); - GdkColor *other = &(((wxColourRefData*)col.m_refData)->m_color); - if (own->red != other->red) return FALSE; - if (own->blue != other->blue) return FALSE; - if (own->green != other->green) return FALSE; - - return TRUE; -} - -bool wxColour::operator != ( const wxColour& col) const -{ - return m_refData != col.m_refData; -} - -void wxColour::Set( unsigned char red, unsigned char green, unsigned char blue ) -{ - UnRef(); - m_refData = new wxColourRefData(); - M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT; - M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT; - M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT; - M_COLDATA->m_color.pixel = 0; -} - -unsigned char wxColour::Red() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return (unsigned char)(M_COLDATA->m_color.red >> SHIFT); -} - -unsigned char wxColour::Green() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return (unsigned char)(M_COLDATA->m_color.green >> SHIFT); -} - -unsigned char wxColour::Blue() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT); -} - -bool wxColour::Ok() const -{ - return (m_refData != NULL); -} - -void wxColour::CalcPixel( GdkColormap *cmap ) -{ - if (!Ok()) return; - - if ((M_COLDATA->m_hasPixel) && (M_COLDATA->m_colormap == cmap)) return; - - M_COLDATA->FreeColour(); - - GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap; - if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) || - (private_colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR)) - { - GdkColor *colors = cmap->colors; - int max = 3 * (65536); - int index = -1; - - for (int i = 0; i < cmap->size; i++) - { - int rdiff = (M_COLDATA->m_color.red - colors[i].red); - int gdiff = (M_COLDATA->m_color.green - colors[i].green); - int bdiff = (M_COLDATA->m_color.blue - colors[i].blue); - int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); - if (sum < max) { index = i; max = sum; } - } - - M_COLDATA->m_hasPixel = TRUE; - M_COLDATA->m_color.pixel = index; - } - else - { - M_COLDATA->m_hasPixel = gdk_color_alloc( cmap, &M_COLDATA->m_color ); - } - - M_COLDATA->m_colormap = cmap; -} - -int wxColour::GetPixel() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return M_COLDATA->m_color.pixel; -} - -GdkColor *wxColour::GetColor() const -{ - wxCHECK_MSG( Ok(), (GdkColor *) NULL, _T("invalid colour") ); - - return &M_COLDATA->m_color; -} - - diff --git a/src/gtk/combobox.cpp b/src/gtk/combobox.cpp deleted file mode 100644 index bec8f16668..0000000000 --- a/src/gtk/combobox.cpp +++ /dev/null @@ -1,627 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" -#include "wx/settings.h" - -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "select" -//----------------------------------------------------------------------------- - -static void -gtk_combo_clicked_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!combo->m_hasVMT) return; - - if (g_blockEventsOnDrag) return; - - if (combo->m_alreadySent) - { - combo->m_alreadySent = FALSE; - return; - } - - combo->m_alreadySent = TRUE; - - wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, combo->GetId() ); - event.SetInt( combo->GetSelection() ); - event.SetString( combo->GetStringSelection() ); - event.SetEventObject( combo ); - - combo->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" -//----------------------------------------------------------------------------- - -static void -gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!combo->m_hasVMT) return; - - wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, combo->GetId() ); - event.SetString( combo->GetValue() ); - event.SetEventObject( combo ); - combo->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxComboBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxComboBox,wxControl) - -BEGIN_EVENT_TABLE(wxComboBox, wxControl) - EVT_SIZE(wxComboBox::OnSize) - EVT_CHAR(wxComboBox::OnChar) -END_EVENT_TABLE() - -bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - long style, const wxValidator& validator, - const wxString& name ) -{ - m_alreadySent = FALSE; - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_combo_new(); - - // make it more useable - gtk_combo_set_use_arrows_always(GTK_COMBO(m_widget), TRUE); - - wxSize newSize = size; - if (newSize.x == -1) - newSize.x = 100; - if (newSize.y == -1) - newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - for (int i = 0; i < n; i++) - { - /* don't send first event, which GTK sends aways when - inserting the first item */ - m_alreadySent = TRUE; - - GtkWidget *list_item = gtk_list_item_new_with_label( choices[i].mbc_str() ); - - m_clientDataList.Append( (wxObject*)NULL ); - m_clientObjectList.Append( (wxObject*)NULL ); - - gtk_container_add( GTK_CONTAINER(list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - gtk_widget_show( list_item ); - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - ConnectWidget( GTK_COMBO(m_widget)->button ); - - if (!value.IsNull()) SetValue( value ); - - if (style & wxCB_READONLY) - gtk_entry_set_editable( GTK_ENTRY( GTK_COMBO(m_widget)->entry ), FALSE ); - - gtk_signal_connect( GTK_OBJECT(GTK_COMBO(m_widget)->entry), "changed", - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxComboBox::~wxComboBox() -{ - wxNode *node = m_clientDataList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientDataList.Clear(); -} - -void wxComboBox::AppendCommon( const wxString &item ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GtkWidget *list_item = gtk_list_item_new_with_label( item.mbc_str() ); - - gtk_container_add( GTK_CONTAINER(list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - if (GTK_WIDGET_REALIZED(m_widget)) - { - gtk_widget_realize( list_item ); - gtk_widget_realize( GTK_BIN(list_item)->child ); - - if (m_widgetStyle) ApplyWidgetStyle(); - } - - gtk_widget_show( list_item ); -} - -void wxComboBox::Append( const wxString &item ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxComboBox::Append( const wxString &item, void *clientData ) -{ - m_clientDataList.Append( (wxObject*) clientData ); - m_clientObjectList.Append( (wxObject*)NULL ); - - AppendCommon( item ); -} - -void wxComboBox::Append( const wxString &item, wxClientData *clientData ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) clientData ); - - AppendCommon( item ); -} - -void wxComboBox::SetClientData( int n, void* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return; - - node->SetData( (wxObject*) clientData ); -} - -void* wxComboBox::GetClientData( int n ) -{ - wxCHECK_MSG( m_widget != NULL, NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return NULL; - - return node->Data(); -} - -void wxComboBox::SetClientObject( int n, wxClientData* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return; - - wxClientData *cd = (wxClientData*) node->Data(); - if (cd) delete cd; - - node->SetData( (wxObject*) clientData ); -} - -wxClientData* wxComboBox::GetClientObject( int n ) -{ - wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return (wxClientData*) NULL; - - return (wxClientData*) node->Data(); -} - -void wxComboBox::Clear() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - gtk_list_clear_items( GTK_LIST(list), 0, Number() ); - - wxNode *node = m_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - m_clientDataList.Clear(); -} - -void wxComboBox::Delete( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkList *listbox = GTK_LIST( GTK_COMBO(m_widget)->list ); - - GList *child = g_list_nth( listbox->children, n ); - - if (!child) - { - wxFAIL_MSG(_T("wrong index")); - return; - } - - GList *list = g_list_append( (GList*) NULL, child->data ); - gtk_list_remove_items( listbox, list ); - g_list_free( list ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - m_clientObjectList.DeleteNode( node ); - } - - node = m_clientDataList.Nth( n ); - if (node) - { - m_clientDataList.DeleteNode( node ); - } -} - -int wxComboBox::FindString( const wxString &item ) -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *child = GTK_LIST(list)->children; - int count = 0; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - if (item == wxString(label->label,*wxConvCurrent)) - return count; - count++; - child = child->next; - } - - return wxNOT_FOUND; -} - -int wxComboBox::GetSelection() const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *selection = GTK_LIST(list)->selection; - if (selection) - { - GList *child = GTK_LIST(list)->children; - int count = 0; - while (child) - { - if (child->data == selection->data) return count; - count++; - child = child->next; - } - } - - wxFAIL_MSG( _T("wxComboBox: no selection") ); - - return -1; -} - -wxString wxComboBox::GetString( int n ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - wxString str; - GList *child = g_list_nth( GTK_LIST(list)->children, n ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - str = wxString(label->label,*wxConvCurrent); - } - else - { - wxFAIL_MSG( _T("wxComboBox: wrong index") ); - } - - return str; -} - -wxString wxComboBox::GetStringSelection() const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *selection = GTK_LIST(list)->selection; - if (selection) - { - GtkBin *bin = GTK_BIN( selection->data ); - wxString tmp = wxString(GTK_LABEL( bin->child )->label,*wxConvCurrent); - return tmp; - } - - wxFAIL_MSG( _T("wxComboBox: no selection") ); - - return _T(""); -} - -int wxComboBox::Number() const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *child = GTK_LIST(list)->children; - int count = 0; - while (child) { count++; child = child->next; } - return count; -} - -void wxComboBox::SetSelection( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - gtk_list_select_item( GTK_LIST(list), n ); -} - -void wxComboBox::SetStringSelection( const wxString &string ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - int res = FindString( string ); - if (res == -1) return; - SetSelection( res ); -} - -wxString wxComboBox::GetValue() const -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - wxString tmp = wxString(gtk_entry_get_text( GTK_ENTRY(entry) ),*wxConvCurrent); - return tmp; -} - -void wxComboBox::SetValue( const wxString& value ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - wxString tmp = _T(""); - if (!value.IsNull()) tmp = value; - gtk_entry_set_text( GTK_ENTRY(entry), tmp.mbc_str() ); -} - -void wxComboBox::Copy() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; -#if (GTK_MINOR_VERSION > 0) - gtk_editable_copy_clipboard( GTK_EDITABLE(entry) ); -#else - gtk_editable_copy_clipboard( GTK_EDITABLE(entry), 0 ); -#endif -} - -void wxComboBox::Cut() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; -#if (GTK_MINOR_VERSION > 0) - gtk_editable_cut_clipboard( GTK_EDITABLE(entry) ); -#else - gtk_editable_cut_clipboard( GTK_EDITABLE(entry), 0 ); -#endif -} - -void wxComboBox::Paste() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; -#if (GTK_MINOR_VERSION > 0) - gtk_editable_paste_clipboard( GTK_EDITABLE(entry) ); -#else - gtk_editable_paste_clipboard( GTK_EDITABLE(entry), 0 ); -#endif -} - -void wxComboBox::SetInsertionPoint( long pos ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_entry_set_position( GTK_ENTRY(entry), (int)pos ); -} - -void wxComboBox::SetInsertionPointEnd() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - SetInsertionPoint( -1 ); -} - -long wxComboBox::GetInsertionPoint() const -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - return (long) GTK_EDITABLE(entry)->current_pos; -} - -long wxComboBox::GetLastPosition() const -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - int pos = GTK_ENTRY(entry)->text_length; - return (long) pos-1; -} - -void wxComboBox::Replace( long from, long to, const wxString& value ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - // FIXME: not quite sure how to do this method right in multibyte mode - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_editable_delete_text( GTK_EDITABLE(entry), (gint)from, (gint)to ); - if (value.IsNull()) return; - gint pos = (gint)to; - gtk_editable_insert_text( GTK_EDITABLE(entry), value.mbc_str(), value.Length(), &pos ); -} - -void wxComboBox::Remove(long from, long to) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_editable_delete_text( GTK_EDITABLE(entry), (gint)from, (gint)to ); -} - -void wxComboBox::SetSelection( long from, long to ) -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_editable_select_region( GTK_EDITABLE(entry), (gint)from, (gint)to ); -} - -void wxComboBox::SetEditable( bool editable ) -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_entry_set_editable( GTK_ENTRY(entry), editable ); -} - -void wxComboBox::OnChar( wxKeyEvent &event ) -{ - if ( event.KeyCode() == WXK_RETURN ) - { - wxString value = GetValue(); - - if ( Number() == 0 ) - { - // make Enter generate "selected" event if there is only one item - // in the combobox - without it, it's impossible to select it at - // all! - wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); - event.SetInt( 0 ); - event.SetString( value ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - } - else - { - // add the item to the list if it's not there yet - if ( FindString(value) == wxNOT_FOUND ) - { - Append(value); - - // and generate the selected event for it - wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); - event.SetInt( Number() - 1 ); - event.SetString( value ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - } - //else: do nothing, this will open the listbox - } - } - - event.Skip(); -} - -void wxComboBox::OnSize( wxSizeEvent &event ) -{ - event.Skip(); - - return; - - int w = 21; - gtk_widget_set_usize( GTK_COMBO(m_widget)->entry, m_width-w-1, m_height ); - - gtk_widget_set_uposition( GTK_COMBO(m_widget)->button, m_x+m_width-w, m_y ); - gtk_widget_set_usize( GTK_COMBO(m_widget)->button, w, m_height ); -} - -void wxComboBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - -// gtk_widget_set_style( GTK_COMBO(m_widget)->button, m_widgetStyle ); - gtk_widget_set_style( GTK_COMBO(m_widget)->entry, m_widgetStyle ); - gtk_widget_set_style( GTK_COMBO(m_widget)->list, m_widgetStyle ); - - GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list ); - GList *child = list->children; - while (child) - { - gtk_widget_set_style( GTK_WIDGET(child->data), m_widgetStyle ); - - GtkBin *bin = GTK_BIN(child->data); - gtk_widget_set_style( bin->child, m_widgetStyle ); - - child = child->next; - } -} - -GtkWidget* wxComboBox::GetConnectWidget() -{ - return GTK_COMBO(m_widget)->entry; -} - -bool wxComboBox::IsOwnGtkWindow( GdkWindow *window ) -{ - return ( (window == GTK_ENTRY( GTK_COMBO(m_widget)->entry )->text_area) || - (window == GTK_COMBO(m_widget)->button->window ) ); -} - diff --git a/src/gtk/control.cpp b/src/gtk/control.cpp deleted file mode 100644 index 69e7a9a0b2..0000000000 --- a/src/gtk/control.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" - -#include "gtk/gtkfeatures.h" - -//----------------------------------------------------------------------------- -// wxControl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxControl,wxWindow) - -wxControl::wxControl(void) -{ - m_needParent = TRUE; -} - -wxControl::wxControl( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) : - wxWindow( parent, id, pos, size, style, name ) -{ -} - -void wxControl::Command( wxCommandEvent &WXUNUSED(event) ) -{ -} - -void wxControl::SetLabel( const wxString &label ) -{ - m_label = _T(""); - for ( const wxChar *pc = label; *pc != _T('\0'); pc++ ) - { - if ( *pc == _T('&') ) - { - pc++; // skip it -#if 0 // it would be unused anyhow for now - kbd interface not done yet - if ( *pc != _T('&') ) m_chAccel = *pc; -#endif - } - m_label << *pc; - } -} - -wxString wxControl::GetLabel(void) const -{ - return m_label; -} - - diff --git a/src/gtk/cross.xbm b/src/gtk/cross.xbm deleted file mode 100644 index b07cbe7fcd..0000000000 --- a/src/gtk/cross.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cross_width 15 -#define cross_height 15 -static char cross_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/gtk/cursor.cpp b/src/gtk/cursor.cpp deleted file mode 100644 index 2277c0aee4..0000000000 --- a/src/gtk/cursor.cpp +++ /dev/null @@ -1,185 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// wxCursor -//----------------------------------------------------------------------------- - -class wxCursorRefData: public wxObjectRefData -{ - public: - - wxCursorRefData(); - ~wxCursorRefData(); - - GdkCursor *m_cursor; -}; - -wxCursorRefData::wxCursorRefData() -{ - m_cursor = (GdkCursor *) NULL; -} - -wxCursorRefData::~wxCursorRefData() -{ - if (m_cursor) gdk_cursor_destroy( m_cursor ); -} - -//----------------------------------------------------------------------------- - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxCursor,wxObject) - -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor( int cursorId ) -{ - m_refData = new wxCursorRefData(); - - GdkCursorType gdk_cur = GDK_LEFT_PTR; - switch (cursorId) - { - case wxCURSOR_HAND: gdk_cur = GDK_HAND1; break; - case wxCURSOR_CROSS: gdk_cur = GDK_CROSSHAIR; break; - case wxCURSOR_SIZEWE: gdk_cur = GDK_SB_H_DOUBLE_ARROW; break; - case wxCURSOR_SIZENS: gdk_cur = GDK_SB_V_DOUBLE_ARROW; break; - case wxCURSOR_WAIT: - case wxCURSOR_WATCH: gdk_cur = GDK_WATCH; break; - case wxCURSOR_SIZING: gdk_cur = GDK_SIZING; break; - case wxCURSOR_SPRAYCAN: gdk_cur = GDK_SPRAYCAN; break; - case wxCURSOR_IBEAM: gdk_cur = GDK_XTERM; break; - case wxCURSOR_PENCIL: gdk_cur = GDK_PENCIL; break; - case wxCURSOR_NO_ENTRY: gdk_cur = GDK_PIRATE; break; - case wxCURSOR_SIZENWSE: - case wxCURSOR_SIZENESW: gdk_cur = GDK_FLEUR; break; - case wxCURSOR_QUESTION_ARROW: gdk_cur = GDK_QUESTION_ARROW; break; - case wxCURSOR_PAINT_BRUSH: gdk_cur = GDK_SPRAYCAN; break; - case wxCURSOR_MAGNIFIER: gdk_cur = GDK_PLUS; break; - case wxCURSOR_CHAR: gdk_cur = GDK_XTERM; break; - case wxCURSOR_LEFT_BUTTON: gdk_cur = GDK_LEFTBUTTON; break; - case wxCURSOR_MIDDLE_BUTTON: gdk_cur = GDK_MIDDLEBUTTON; break; - case wxCURSOR_RIGHT_BUTTON: gdk_cur = GDK_RIGHTBUTTON; break; -/* - case wxCURSOR_DOUBLE_ARROW: gdk_cur = GDK_DOUBLE_ARROW; break; - case wxCURSOR_CROSS_REVERSE: gdk_cur = GDK_CROSS_REVERSE; break; - case wxCURSOR_BASED_ARROW_UP: gdk_cur = GDK_BASED_ARROW_UP; break; - case wxCURSOR_BASED_ARROW_DOWN: gdk_cur = GDK_BASED_ARROW_DOWN; break; -*/ - default: - wxFAIL_MSG(_T("unsupported cursor type")); - // will use the standard one - - case wxCURSOR_ARROW: - break; - } - - M_CURSORDATA->m_cursor = gdk_cursor_new( gdk_cur ); -} - -wxCursor::wxCursor( const wxCursor &cursor ) -{ - Ref( cursor ); -} - -wxCursor::~wxCursor() -{ -} - -wxCursor& wxCursor::operator = ( const wxCursor& cursor ) -{ - if (*this == cursor) - return (*this); - - Ref( cursor ); - - return *this; -} - -bool wxCursor::operator == ( const wxCursor& cursor ) const -{ - return m_refData == cursor.m_refData; -} - -bool wxCursor::operator != ( const wxCursor& cursor ) const -{ - return m_refData != cursor.m_refData; -} - -bool wxCursor::Ok() const -{ - return (m_refData != NULL); -} - -GdkCursor *wxCursor::GetCursor() const -{ - return M_CURSORDATA->m_cursor; -} - -//----------------------------------------------------------------------------- -// busy cursor routines -//----------------------------------------------------------------------------- - -extern wxCursor g_globalCursor; - -static wxCursor gs_savedCursor; -static int gs_busyCount = 0; - -void wxEndBusyCursor() -{ - if (--gs_busyCount > 0) - return; - - wxSetCursor( gs_savedCursor ); - gs_savedCursor = wxNullCursor; -} - -void wxBeginBusyCursor( wxCursor *WXUNUSED(cursor) ) -{ - if (gs_busyCount++ > 0) - return; - - wxASSERT_MSG( !gs_savedCursor.Ok(), - _T("forgot to call wxEndBusyCursor, will leak memory") ); - - gs_savedCursor = g_globalCursor; - - wxSetCursor( wxCursor(wxCURSOR_WATCH) ); -} - -bool wxIsBusy() -{ - return gs_busyCount > 0; -} - -void wxSetCursor( const wxCursor& cursor ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - g_globalCursor = cursor; -} diff --git a/src/gtk/data.cpp b/src/gtk/data.cpp deleted file mode 100644 index 60234d0fd6..0000000000 --- a/src/gtk/data.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -// #pragma implementation -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/window.h" -#include "wx/dc.h" -#include "wx/accel.h" -#include "wx/dcps.h" -#include "wx/icon.h" - -#define _MAXPATHLEN 500 - -/* Used for X resources */ -#include -#include -#include - -wxResourceCache *wxTheResourceCache = (wxResourceCache *) NULL; -XrmDatabase wxResourceDatabase; - -/* Useful buffer, initialized in wxCommonInit */ -char *wxBuffer = (char *) NULL; - -/* Windows List */ -wxWindowList wxTopLevelWindows; - -/* List of windows pending deletion */ -wxList wxPendingDelete; - -#if wxUSE_THREADS -/* List of events pending processing */ -wxList *wxPendingEvents = NULL; -wxCriticalSection *wxPendingEventsLocker = NULL; -#endif - -/* Current cursor, in order to hang on to - * cursor handle when setting the cursor globally */ -wxCursor g_globalCursor; - -/* Don't allow event propagation during drag */ -bool g_blockEventsOnDrag = FALSE; - -/* Don't allow mouse event propagation during scroll */ -bool g_blockEventsOnScroll = FALSE; - -/* TRUE when the message queue is empty. this gets set to - FALSE by all event callbacks before anything else is done */ -bool g_isIdle = FALSE; - -/* Message Strings for Internationalization */ -char **wx_msg_str = (char**)NULL; - -/* Custom OS version, as optionally placed in wx.ini/.wxrc - * Currently this can be Win95, Windows, Win32s, WinNT. - * For some systems, you can't tell until run-time what services you - * have. See wxGetOsVersion, which uses this string if present. */ -char *wxOsVersion = (char *) NULL; - -/* For printing several pages */ -int wxPageNumber; - -// Now in prntbase.cpp -// wxPrintPaperDatabase* wxThePrintPaperDatabase = (wxPrintPaperDatabase *) NULL; - -/* GDI Object Lists */ -wxBrushList *wxTheBrushList = (wxBrushList *) NULL; -wxPenList *wxThePenList = (wxPenList *) NULL; -wxFontList *wxTheFontList = (wxFontList *) NULL; -wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL; -wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL; - -/* X only font names */ -/* -wxFontNameDirectory *wxTheFontNameDirectory; -*/ - -/* Stock objects */ -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; - -wxPen *wxRED_PEN; -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxGREY; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = (wxCursor *) NULL; -wxCursor *wxHOURGLASS_CURSOR = (wxCursor *) NULL; -wxCursor *wxCROSS_CURSOR = (wxCursor *) NULL; - -/* 'Null' objects */ -#if wxUSE_ACCEL - wxAcceleratorTable wxNullAcceleratorTable; -#endif // wxUSE_ACCEL - -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxFont wxNullFont; -wxColour wxNullColour; -wxPalette wxNullPalette; - -/* Default window names */ -const wxChar *wxButtonNameStr = _T("button"); -const wxChar *wxCanvasNameStr = _T("canvas"); -const wxChar *wxCheckBoxNameStr = _T("check"); -const wxChar *wxChoiceNameStr = _T("choice"); -const wxChar *wxComboBoxNameStr = _T("comboBox"); -const wxChar *wxDialogNameStr = _T("dialog"); -const wxChar *wxFrameNameStr = _T("frame"); -const wxChar *wxGaugeNameStr = _T("gauge"); -const wxChar *wxStaticBoxNameStr = _T("groupBox"); -const wxChar *wxListBoxNameStr = _T("listBox"); -const wxChar *wxStaticTextNameStr = _T("message"); -const wxChar *wxStaticBitmapNameStr = _T("message"); -const wxChar *wxMultiTextNameStr = _T("multitext"); -const wxChar *wxPanelNameStr = _T("panel"); -const wxChar *wxRadioBoxNameStr = _T("radioBox"); -const wxChar *wxRadioButtonNameStr = _T("radioButton"); -const wxChar *wxBitmapRadioButtonNameStr = _T("radioButton"); -const wxChar *wxScrollBarNameStr = _T("scrollBar"); -const wxChar *wxSliderNameStr = _T("slider"); -const wxChar *wxStaticNameStr = _T("static"); -const wxChar *wxTextCtrlWindowNameStr = _T("textWindow"); -const wxChar *wxTextCtrlNameStr = _T("text"); -const wxChar *wxVirtListBoxNameStr = _T("virtListBox"); -const wxChar *wxButtonBarNameStr = _T("buttonbar"); -const wxChar *wxEnhDialogNameStr = _T("Shell"); -const wxChar *wxToolBarNameStr = _T("toolbar"); -const wxChar *wxStatusLineNameStr = _T("status_line"); -const wxChar *wxEmptyString = _T(""); -const wxChar *wxGetTextFromUserPromptStr = _T("Input Text"); -const wxChar *wxMessageBoxCaptionStr = _T("Message"); -const wxChar *wxFileSelectorPromptStr = _T("Select a file"); -const wxChar *wxFileSelectorDefaultWildcardStr = _T("*.*"); -const wxChar *wxInternalErrorStr = _T("wxWindows Internal Error"); -const wxChar *wxFatalErrorStr = _T("wxWindows Fatal Error"); - -/* See wx/utils.h */ -const wxChar *wxFloatToStringStr = _T("%.2f"); -const wxChar *wxDoubleToStringStr = _T("%.2f"); - -/* Dafaults for wxWindow etc. */ -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/gtk/dataobj.cpp b/src/gtk/dataobj.cpp deleted file mode 100644 index bb9e817c05..0000000000 --- a/src/gtk/dataobj.cpp +++ /dev/null @@ -1,469 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.cpp -// Purpose: wxDataObject class -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "dataobj.h" -#endif - -#include "wx/dataobj.h" -#include "wx/app.h" -#include "wx/debug.h" - -#include "gdk/gdk.h" - - -//------------------------------------------------------------------------- -// global data -//------------------------------------------------------------------------- - -GdkAtom g_textAtom = 0; - -//------------------------------------------------------------------------- -// wxDataFormat -//------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxDataFormat, wxObject) - -wxDataFormat::wxDataFormat() -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - m_type = wxDF_INVALID; - m_hasAtom = FALSE; - m_atom = (GdkAtom) 0; -} - -wxDataFormat::wxDataFormat( wxDataFormatId type ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - SetType( type ); -} - -wxDataFormat::wxDataFormat( const wxChar *id ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - SetId( id ); -} - -wxDataFormat::wxDataFormat( const wxString &id ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - SetId( id ); -} - -wxDataFormat::wxDataFormat( const wxDataFormat &format ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - m_type = format.GetType(); - m_id = format.GetId(); - m_hasAtom = TRUE; - m_atom = ((wxDataFormat &)format).GetAtom(); // const_cast -} - -wxDataFormat::wxDataFormat( const GdkAtom atom ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - m_hasAtom = TRUE; - - m_atom = atom; - - if (m_atom == g_textAtom) - { - m_type = wxDF_TEXT; - } else - if (m_atom == GDK_TARGET_BITMAP) - { - m_type = wxDF_BITMAP; - } else - { - m_type = wxDF_PRIVATE; - m_id = gdk_atom_name( m_atom ); - - if (m_id == _T("file:ALL")) - { - m_type = wxDF_FILENAME; - } - } -} - -void wxDataFormat::SetType( wxDataFormatId type ) -{ - m_type = type; - - if (m_type == wxDF_TEXT) - { - m_id = _T("STRING"); - } - else - if (m_type == wxDF_BITMAP) - { - m_id = _T("BITMAP"); - } - else - if (m_type == wxDF_FILENAME) - { - m_id = _T("file:ALL"); - } - else - { - wxFAIL_MSG( _T("invalid dataformat") ); - } - - m_hasAtom = FALSE; -} - -wxDataFormatId wxDataFormat::GetType() const -{ - return m_type; -} - -wxString wxDataFormat::GetId() const -{ - return m_id; -} - -void wxDataFormat::SetId( const wxChar *id ) -{ - m_type = wxDF_PRIVATE; - m_id = id; - m_hasAtom = FALSE; -} - -GdkAtom wxDataFormat::GetAtom() -{ - if (!m_hasAtom) - { - m_hasAtom = TRUE; - - if (m_type == wxDF_TEXT) - { - m_atom = g_textAtom; - } - else - if (m_type == wxDF_BITMAP) - { - m_atom = GDK_TARGET_BITMAP; - } - else - if (m_type == wxDF_PRIVATE) - { - m_atom = gdk_atom_intern( MBSTRINGCAST m_id.mbc_str(), FALSE ); - } - else - if (m_type == wxDF_FILENAME) - { - m_atom = gdk_atom_intern( "file:ALL", FALSE ); - } - else - { - m_hasAtom = FALSE; - m_atom = (GdkAtom) 0; - } - } - - return m_atom; -} - -//------------------------------------------------------------------------- -// wxDataBroker -//------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxDataBroker,wxObject) - -wxDataBroker::wxDataBroker() -{ - m_dataObjects.DeleteContents(TRUE); - m_preferred = 0; -} - -void wxDataBroker::Add( wxDataObject *dataObject, bool preferred ) -{ - if (preferred) m_preferred = m_dataObjects.GetCount(); - m_dataObjects.Append( dataObject ); -} - -size_t wxDataBroker::GetFormatCount() const -{ - return m_dataObjects.GetCount(); -} - -wxDataFormatId wxDataBroker::GetPreferredFormat() const -{ - wxNode *node = m_dataObjects.Nth( m_preferred ); - - wxASSERT( node ); - - wxDataObject* data_obj = (wxDataObject*)node->Data(); - - return data_obj->GetFormat().GetType(); -} - -wxDataFormat &wxDataBroker::GetNthFormat( size_t nth ) const -{ - wxNode *node = m_dataObjects.Nth( nth ); - - wxASSERT( node ); - - wxDataObject* data_obj = (wxDataObject*)node->Data(); - - return data_obj->GetFormat(); -} - -bool wxDataBroker::IsSupportedFormat( wxDataFormat &format ) const -{ - wxNode *node = m_dataObjects.First(); - while (node) - { - wxDataObject *dobj = (wxDataObject*)node->Data(); - - if (dobj->GetFormat().GetAtom() == format.GetAtom()) - { - return TRUE; - } - - node = node->Next(); - } - - return FALSE; -} - -size_t wxDataBroker::GetSize( wxDataFormat& format ) const -{ - wxNode *node = m_dataObjects.First(); - while (node) - { - wxDataObject *dobj = (wxDataObject*)node->Data(); - - if (dobj->GetFormat().GetAtom() == format.GetAtom()) - { - return dobj->GetSize(); - } - - node = node->Next(); - } - - return 0; -} - -void wxDataBroker::WriteData( wxDataFormat& format, void *dest ) const -{ - wxNode *node = m_dataObjects.First(); - while (node) - { - wxDataObject *dobj = (wxDataObject*)node->Data(); - - if (dobj->GetFormat().GetAtom() == format.GetAtom()) - { - dobj->WriteData( dest ); - } - - node = node->Next(); - } -} - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS( wxDataObject, wxObject ) - -wxDataObject::wxDataObject() -{ -} - -wxDataObject::~wxDataObject() -{ -} - -wxDataFormat &wxDataObject::GetFormat() -{ - return m_format; -} - -wxDataFormatId wxDataObject::GetFormatType() const -{ - return m_format.GetType(); -} - -wxString wxDataObject::GetFormatId() const -{ - return m_format.GetId(); -} - -GdkAtom wxDataObject::GetFormatAtom() const -{ - GdkAtom ret = ((wxDataObject*) this)->m_format.GetAtom(); - return ret; -} - -// ---------------------------------------------------------------------------- -// wxTextDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxTextDataObject, wxDataObject ) - -wxTextDataObject::wxTextDataObject() -{ - m_format.SetType( wxDF_TEXT ); -} - -wxTextDataObject::wxTextDataObject( const wxString& data ) -{ - m_format.SetType( wxDF_TEXT ); - - m_data = data; -} - -void wxTextDataObject::SetText( const wxString& data ) -{ - m_data = data; -} - -wxString wxTextDataObject::GetText() const -{ - return m_data; -} - -void wxTextDataObject::WriteData( void *dest ) const -{ - WriteString( m_data, dest ); -} - -size_t wxTextDataObject::GetSize() const -{ - return m_data.Len() + 1; -} - -void wxTextDataObject::WriteString( const wxString &str, void *dest ) const -{ - memcpy( dest, str.mb_str(), str.Len()+1 ); -} - -// ---------------------------------------------------------------------------- -// wxFileDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxFileDataObject, wxDataObject ) - -wxFileDataObject::wxFileDataObject() -{ - m_format.SetType( wxDF_FILENAME ); -} - -void wxFileDataObject::AddFile( const wxString &file ) -{ - m_files += file; - m_files += (wxChar)0; -} - -wxString wxFileDataObject::GetFiles() const -{ - return m_files; -} - -void wxFileDataObject::WriteData( void *dest ) const -{ - memcpy( dest, m_files.mbc_str(), GetSize() ); -} - -size_t wxFileDataObject::GetSize() const -{ - return m_files.Len() + 1; -} - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxBitmapDataObject, wxDataObject ) - -wxBitmapDataObject::wxBitmapDataObject() -{ - m_format.SetType( wxDF_BITMAP ); -} - -wxBitmapDataObject::wxBitmapDataObject( const wxBitmap& bitmap ) -{ - m_format.SetType( wxDF_BITMAP ); - - m_bitmap = bitmap; -} - -void wxBitmapDataObject::SetBitmap( const wxBitmap &bitmap ) -{ - m_bitmap = bitmap; -} - -wxBitmap wxBitmapDataObject::GetBitmap() const -{ - return m_bitmap; -} - -void wxBitmapDataObject::WriteData( void *dest ) const -{ - WriteBitmap( m_bitmap, dest ); -} - -size_t wxBitmapDataObject::GetSize() const -{ - return 0; -} - -void wxBitmapDataObject::WriteBitmap( const wxBitmap &bitmap, void *dest ) const -{ - memcpy( dest, m_bitmap.GetPixmap(), GetSize() ); -} - -// ---------------------------------------------------------------------------- -// wxPrivateDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxPrivateDataObject, wxDataObject ) - -void wxPrivateDataObject::Free() -{ - if ( m_data ) - free(m_data); -} - -wxPrivateDataObject::wxPrivateDataObject() -{ - wxString id = _T("application/"); - id += wxTheApp->GetAppName(); - - m_format.SetId( id ); - - m_size = 0; - m_data = (void *)NULL; -} - -void wxPrivateDataObject::SetData( const void *data, size_t size ) -{ - Free(); - - m_size = size; - m_data = malloc(size); - - memcpy( m_data, data, size ); -} - -void wxPrivateDataObject::WriteData( void *dest ) const -{ - WriteData( m_data, dest ); -} - -size_t wxPrivateDataObject::GetSize() const -{ - return m_size; -} - -void wxPrivateDataObject::WriteData( const void *data, void *dest ) const -{ - memcpy( dest, data, GetSize() ); -} - diff --git a/src/gtk/dc.cpp b/src/gtk/dc.cpp deleted file mode 100644 index 57c1f336a7..0000000000 --- a/src/gtk/dc.cpp +++ /dev/null @@ -1,218 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling, Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ - #pragma implementation "dc.h" -#endif - -#include "wx/dc.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxDCBase) - -wxDC::wxDC() -{ - m_ok = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_needComputeScaleX = FALSE; /* not used yet */ - m_needComputeScaleY = FALSE; /* not used yet */ - - m_logicalFunction = wxCOPY; - - m_pen = *wxBLACK_PEN; - m_font = *wxNORMAL_FONT; - m_brush = *wxTRANSPARENT_BRUSH; -} - -void wxDC::DoSetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -} - -void wxDC::DestroyClippingRegion() -{ - m_clipping = FALSE; -} - -// --------------------------------------------------------------------------- -// get DC capabilities -// --------------------------------------------------------------------------- - -void wxDC::DoGetSize( int* width, int* height ) const -{ - if (width) *width = m_maxX-m_minX; - if (height) *height = m_maxY-m_minY; -} - -void wxDC::DoGetSizeMM( int* width, int* height ) const -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - if (width) *width = int( double(w) / (m_scaleX*m_mm_to_pix_x) ); - if (height) *height = int( double(h) / (m_scaleY*m_mm_to_pix_y) ); -} - -// Resolution in pixels per logical inch -wxSize wxDC::GetPPI() const -{ - // TODO (should probably be pure virtual) - return wxSize(0, 0); -} - -// --------------------------------------------------------------------------- -// set various DC parameters -// --------------------------------------------------------------------------- - -void wxDC::ComputeScaleAndOrigin() -{ - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; -} - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - } - m_mappingMode = mode; - -/* we don't do this mega optimisation - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - } -*/ -} - -void wxDC::SetUserScale( double x, double y ) -{ - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalScale( double x, double y ) -{ - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -} - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - // only wxPostScripDC has m_signX = -1, we override SetDeviceOrigin there - m_deviceOriginX = x; - m_deviceOriginY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - // only wxPostScripDC has m_signX = -1, we override SetAxisOrientation there - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -} - -// --------------------------------------------------------------------------- -// coordinates transformations -// --------------------------------------------------------------------------- - -long wxDCBase::DeviceToLogicalX(long x) const -{ - return ((wxDC *)this)->XDEV2LOG(x); -} - -long wxDCBase::DeviceToLogicalY(long y) const -{ - return ((wxDC *)this)->YDEV2LOG(y); -} - -long wxDCBase::DeviceToLogicalXRel(long x) const -{ - return ((wxDC *)this)->XDEV2LOGREL(x); -} - -long wxDCBase::DeviceToLogicalYRel(long y) const -{ - return ((wxDC *)this)->YDEV2LOGREL(y); -} - -long wxDCBase::LogicalToDeviceX(long x) const -{ - return ((wxDC *)this)->XLOG2DEV(x); -} - -long wxDCBase::LogicalToDeviceY(long y) const -{ - return ((wxDC *)this)->YLOG2DEV(y); -} - -long wxDCBase::LogicalToDeviceXRel(long x) const -{ - return ((wxDC *)this)->XLOG2DEVREL(x); -} - -long wxDCBase::LogicalToDeviceYRel(long y) const -{ - return ((wxDC *)this)->YLOG2DEVREL(y); -} - diff --git a/src/gtk/dcclient.cpp b/src/gtk/dcclient.cpp deleted file mode 100644 index 93f34e9fe7..0000000000 --- a/src/gtk/dcclient.cpp +++ /dev/null @@ -1,1437 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling, Markus Holzem, Chris Breeze -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/image.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// local data -//----------------------------------------------------------------------------- - -#include "bdiag.xbm" -#include "fdiag.xbm" -#include "cdiag.xbm" -#include "horiz.xbm" -#include "verti.xbm" -#include "cross.xbm" -#define num_hatches 6 - -static GdkPixmap *hatches[num_hatches]; -static GdkPixmap **hatch_bitmap = (GdkPixmap **) NULL; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -//----------------------------------------------------------------------------- -// temporary implementation of the missing GDK function -//----------------------------------------------------------------------------- - -#include "gdk/gdkprivate.h" - -void gdk_draw_bitmap (GdkDrawable *drawable, - GdkGC *gc, - GdkDrawable *src, - gint xsrc, - gint ysrc, - gint xdest, - gint ydest, - gint width, - gint height) -{ - GdkWindowPrivate *drawable_private; - GdkWindowPrivate *src_private; - GdkGCPrivate *gc_private; - - g_return_if_fail (drawable != NULL); - g_return_if_fail (src != NULL); - g_return_if_fail (gc != NULL); - - drawable_private = (GdkWindowPrivate*) drawable; - src_private = (GdkWindowPrivate*) src; - if (drawable_private->destroyed || src_private->destroyed) - return; - - gc_private = (GdkGCPrivate*) gc; - - if (width == -1) width = src_private->width; - if (height == -1) height = src_private->height; - - XCopyPlane( drawable_private->xdisplay, - src_private->xwindow, - drawable_private->xwindow, - gc_private->xgc, - xsrc, ysrc, - width, height, - xdest, ydest, - 1 ); -} - -//----------------------------------------------------------------------------- -// wxWindowDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) - -wxWindowDC::wxWindowDC() -{ - m_penGC = (GdkGC *) NULL; - m_brushGC = (GdkGC *) NULL; - m_textGC = (GdkGC *) NULL; - m_bgGC = (GdkGC *) NULL; - m_cmap = (GdkColormap *) NULL; - m_isMemDC = FALSE; - m_owner = (wxWindow *)NULL; -} - -wxWindowDC::wxWindowDC( wxWindow *window ) -{ - m_penGC = (GdkGC *) NULL; - m_brushGC = (GdkGC *) NULL; - m_textGC = (GdkGC *) NULL; - m_bgGC = (GdkGC *) NULL; - m_cmap = (GdkColormap *) NULL; - m_owner = (wxWindow *)NULL; - m_isMemDC = FALSE; - - wxASSERT_MSG( window, _T("DC needs a window") ); - - GtkWidget *widget = window->m_wxwindow; - - wxASSERT_MSG( widget, _T("DC needs a widget") ); - - m_window = widget->window; - - /* not realized ? */ - if (!m_window) - { - /* don't report problems */ - m_ok = TRUE; - - return; - } - - if (window->m_wxwindow) - m_cmap = gtk_widget_get_colormap( window->m_wxwindow ); - else - m_cmap = gtk_widget_get_colormap( window->m_widget ); - - SetUpDC(); - - /* this must be done after SetUpDC, bacause SetUpDC calls the - repective SetBrush, SetPen, SetBackground etc functions - to set up the DC. SetBackground call m_owner->SetBackground - and this might not be desired as the standard dc background - is white whereas a window might assume gray to be the - standard (as e.g. wxStatusBar) */ - - m_owner = window; -} - -wxWindowDC::~wxWindowDC() -{ - Destroy(); -} - -void wxWindowDC::DoFloodFill( long WXUNUSED(x), long WXUNUSED(y), - const wxColour &WXUNUSED(col), int WXUNUSED(style) ) -{ - wxFAIL_MSG( _T("wxWindowDC::DoFloodFill not implemented") ); -} - -bool wxWindowDC::DoGetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - wxFAIL_MSG( _T("wxWindowDC::DoGetPixel not implemented") ); - return FALSE; -} - -void wxWindowDC::DoDrawLine( long x1, long y1, long x2, long y2 ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - if (m_window) - gdk_draw_line( m_window, m_penGC, XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) ); - - CalcBoundingBox(x1, y1); - CalcBoundingBox(x2, y2); - } -} - -void wxWindowDC::DoCrossHair( long x, long y ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - int w = 0; - int h = 0; - GetSize( &w, &h ); - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - if (m_window) - { - gdk_draw_line( m_window, m_penGC, 0, yy, XLOG2DEVREL(w), yy ); - gdk_draw_line( m_window, m_penGC, xx, 0, xx, YLOG2DEVREL(h) ); - } - } -} - -void wxWindowDC::DoDrawArc( long x1, long y1, long x2, long y2, - long xc, long yc ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV(xc); - long yyc = YLOG2DEV(yc); - double dx = xx1 - xxc; - double dy = yy1 - yyc; - double radius = sqrt(dx*dx+dy*dy); - long r = (long)radius; - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else - if (radius == 0.0) - { - radius1 = radius2 = 0.0; - } - else - { - radius1 = (xx1 - xxc == 0) ? - (yy1 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy1-yyc), double(xx1-xxc)) * RAD2DEG; - radius2 = (xx2 - xxc == 0) ? - (yy2 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy2-yyc), double(xx2-xxc)) * RAD2DEG; - } - long alpha1 = long(radius1 * 64.0); - long alpha2 = long((radius2 - radius1) * 64.0); - while (alpha2 <= 0) alpha2 += 360*64; - while (alpha1 > 360*64) alpha1 -= 360*64; - - if (m_window) - { - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_brushGC, TRUE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 ); - } - - CalcBoundingBox (x1, y1); - CalcBoundingBox (x2, y2); -} - -void wxWindowDC::DoDrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_window) - { - long start = long(sa * 64.0); - long end = long(ea * 64.0); - - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, start, end ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, start, end ); - } - - CalcBoundingBox (x, y); - CalcBoundingBox (x + width, y + height); -} - -void wxWindowDC::DoDrawPoint( long x, long y ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window) - gdk_draw_point( m_window, m_penGC, XLOG2DEV(x), YLOG2DEV(y) ); - - CalcBoundingBox (x, y); -} - -void wxWindowDC::DoDrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - if (n <= 0) return; - - CalcBoundingBox( points[0].x + xoffset, points[0].y + yoffset ); - - for (int i = 0; i < n-1; i++) - { - long x1 = XLOG2DEV(points[i].x + xoffset); - long x2 = XLOG2DEV(points[i+1].x + xoffset); - long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste - long y2 = YLOG2DEV(points[i+1].y + yoffset); - if (m_window) - gdk_draw_line( m_window, m_penGC, x1, y1, x2, y2 ); - - CalcBoundingBox( points[i+1].x + xoffset, points[i+1].y + yoffset ); - } -} - -void wxWindowDC::DoDrawPolygon( int n, wxPoint points[], long xoffset, long yoffset, int WXUNUSED(fillStyle) ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (n <= 0) return; - - GdkPoint *gdkpoints = new GdkPoint[n+1]; - int i; - for (i = 0 ; i < n ; i++) - { - gdkpoints[i].x = XLOG2DEV(points[i].x + xoffset); - gdkpoints[i].y = YLOG2DEV(points[i].y + yoffset); - - CalcBoundingBox( points[i].x + xoffset, points[i].y + yoffset ); - } - - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_polygon (m_window, m_brushGC, TRUE, gdkpoints, n); - - // To do: Fillstyle - - if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window) - { - for (i = 0 ; i < n ; i++) - { - gdk_draw_line( m_window, m_penGC, - gdkpoints[i%n].x, - gdkpoints[i%n].y, - gdkpoints[(i+1)%n].x, - gdkpoints[(i+1)%n].y); - } - } - - delete[] gdkpoints; -} - -void wxWindowDC::DoDrawRectangle( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_window) - { - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy, ww, hh ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_rectangle( m_window, m_penGC, FALSE, xx, yy, ww-1, hh-1 ); - } - - CalcBoundingBox( x, y ); - CalcBoundingBox( x + width, y + height ); -} - -void wxWindowDC::DoDrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - long rr = XLOG2DEVREL((long)radius); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - // CMB: if radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rr == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - ww--; - hh--; - } - - if (m_window) - { - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - long dd = 2 * rr; - if (dd > ww) dd = ww; - if (dd > hh) dd = hh; - rr = dd / 2; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx+rr, yy, ww-dd+1, hh ); - gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy+rr, ww, hh-dd+1 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, dd, dd, 90*64, 90*64 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy, dd, dd, 0, 90*64 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 ); - } - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - gdk_draw_line( m_window, m_penGC, xx+rr, yy, xx+ww-rr, yy ); - gdk_draw_line( m_window, m_penGC, xx+rr, yy+hh, xx+ww-rr, yy+hh ); - gdk_draw_line( m_window, m_penGC, xx, yy+rr, xx, yy+hh-rr ); - gdk_draw_line( m_window, m_penGC, xx+ww, yy+rr, xx+ww, yy+hh-rr ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, dd, dd, 90*64, 90*64 ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy, dd, dd, 0, 90*64 ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 ); - } - } - - // this ignores the radius - CalcBoundingBox( x, y ); - CalcBoundingBox( x + width, y + height ); -} - -void wxWindowDC::DoDrawEllipse( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_window) - { - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, 0, 360*64 ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, 0, 360*64 ); - } - - CalcBoundingBox( x - width, y - height ); - CalcBoundingBox( x + width, y + height ); -} - -void wxWindowDC::DoDrawIcon( const wxIcon &icon, long x, long y ) -{ - // VZ: egcs 1.0.3 refuses to compile this without cast, no idea why - DoDrawBitmap( (const wxBitmap&)icon, x, y, (bool)TRUE ); -} - -void wxWindowDC::DoDrawBitmap( const wxBitmap &bitmap, - long x, long y, - bool useMask ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxCHECK_RET( bitmap.Ok(), _T("invalid bitmap") ); - - /* scale/translate size and position */ - - int xx = XLOG2DEV(x); - int yy = YLOG2DEV(y); - - int w = bitmap.GetWidth(); - int h = bitmap.GetHeight(); - - CalcBoundingBox( x, y ); - CalcBoundingBox( x + w, y + h ); - - if (!m_window) return; - - int ww = XLOG2DEVREL(w); - int hh = YLOG2DEVREL(h); - - /* scale bitmap if required */ - - wxBitmap use_bitmap; - - if ((w != ww) || (h != hh)) - { - wxImage image( bitmap ); - image = image.Scale( ww, hh ); - - use_bitmap = image.ConvertToBitmap(); - } - else - { - use_bitmap = bitmap; - } - - /* apply mask if any */ - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (use_bitmap.GetMask()) mask = use_bitmap.GetMask()->GetBitmap(); - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, mask ); - gdk_gc_set_clip_origin( m_penGC, xx, yy ); - } - - /* draw XPixmap or XBitmap, depending on what the wxBitmap contains */ - - GdkPixmap *pm = use_bitmap.GetPixmap(); - if (pm) - { - gdk_draw_pixmap( m_window, m_penGC, pm, 0, 0, xx, yy, -1, -1 ); - } - else - { - GdkBitmap *bm = use_bitmap.GetBitmap(); - if (bm) - { - gdk_draw_bitmap( m_window, m_penGC, bm, 0, 0, xx, yy, -1, -1 ); - } - } - - /* remove mask again if any */ - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL ); - gdk_gc_set_clip_origin( m_penGC, 0, 0 ); - } -} - -bool wxWindowDC::DoBlit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int logical_func, bool useMask ) -{ - /* this is the nth try to get this utterly useless function to - work. it now completely ignores the scaling or translation - of the source dc, but scales correctly on the target dc and - knows about possible mask information in a memory dc. */ - - wxCHECK_MSG( Ok(), FALSE, _T("invalid window dc") ); - - wxCHECK_MSG( source, FALSE, _T("invalid source dc") ); - - if (!m_window) return FALSE; - - wxClientDC *srcDC = (wxClientDC*)source; - wxMemoryDC *memDC = (wxMemoryDC*)source; - - bool use_bitmap_method = FALSE; - - if (srcDC->m_isMemDC) - { - if (!memDC->m_selected.Ok()) return FALSE; - - /* we use the "XCopyArea" way to copy a memory dc into - y different window if the memory dc BOTH - a) doesn't have any mask or its mask isn't used - b) it is clipped - c) is not 1-bit */ - - if (useMask && (memDC->m_selected.GetMask())) - { - /* we HAVE TO use the direct way for memory dcs - that have mask since the XCopyArea doesn't know - about masks */ - use_bitmap_method = TRUE; - } - else if (memDC->m_selected.GetDepth() == 1) - { - /* we HAVE TO use the direct way for memory dcs - that are bitmaps because XCopyArea doesn't cope - with different bit depths */ - use_bitmap_method = TRUE; - } - else if ((xsrc == 0) && (ysrc == 0) && - (width == memDC->m_selected.GetWidth()) && - (height == memDC->m_selected.GetHeight())) - { - /* we SHOULD use the direct way if all of the bitmap - in the memory dc is copied in which case XCopyArea - wouldn't be able able to boost performace by reducing - the area to be scaled */ - use_bitmap_method = TRUE; - } - else - { - use_bitmap_method = FALSE; - } - } - - CalcBoundingBox( xdest, ydest ); - CalcBoundingBox( xdest + width, ydest + height ); - - int old_logical_func = m_logicalFunction; - SetLogicalFunction( logical_func ); - - if (use_bitmap_method) - { - /* scale/translate bitmap size */ - - long bm_width = memDC->m_selected.GetWidth(); - long bm_height = memDC->m_selected.GetHeight(); - - long bm_ww = XLOG2DEVREL( bm_width ); - long bm_hh = YLOG2DEVREL( bm_height ); - - /* scale bitmap if required */ - - wxBitmap use_bitmap; - - if ((bm_width != bm_ww) || (bm_height != bm_hh)) - { - wxImage image( memDC->m_selected ); - image = image.Scale( bm_ww, bm_hh ); - - use_bitmap = image.ConvertToBitmap(); - } - else - { - use_bitmap = memDC->m_selected; - } - - /* scale/translate size and position */ - - long xx = XLOG2DEV(xdest); - long yy = YLOG2DEV(ydest); - - long ww = XLOG2DEVREL(width); - long hh = YLOG2DEVREL(height); - - /* apply mask if any */ - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (use_bitmap.GetMask()) mask = use_bitmap.GetMask()->GetBitmap(); - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, mask ); - gdk_gc_set_clip_origin( m_penGC, xx, yy ); - } - - /* draw XPixmap or XBitmap, depending on what the wxBitmap contains */ - - GdkPixmap *pm = use_bitmap.GetPixmap(); - if (pm) - { - gdk_draw_pixmap( m_window, m_penGC, pm, xsrc, ysrc, xx, yy, ww, hh ); - } - else - { - GdkBitmap *bm = use_bitmap.GetBitmap(); - if (bm) - { - /* we use the textGC here because blitting a bitmap is done - using the current text colour */ - gdk_draw_bitmap( m_window, m_textGC, bm, xsrc, ysrc, xx, yy, ww, hh ); - } - } - - /* remove mask again if any */ - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL ); - gdk_gc_set_clip_origin( m_penGC, 0, 0 ); - } - } - else /* use_bitmap_method */ - { - /* scale/translate size and position */ - - long xx = XLOG2DEV(xdest); - long yy = YLOG2DEV(ydest); - - long ww = XLOG2DEVREL(width); - long hh = YLOG2DEVREL(height); - - if ((width != ww) || (height != hh)) - { - /* draw source window into a bitmap as we cannot scale - a window in contrast to a bitmap. this would actually - work with memory dcs as well, but we'd lose the mask - information and waste one step in this process since - a memory already has a bitmap. all this is slightly - inefficient as we could take an XImage directly from - an X window, but we'd then also have to care that - the window is not outside the screen (in which case - we'd get a BadMatch or what not). - Is a double XGetImage and combined XGetPixel and - XPutPixel really faster? I'm not sure. look at wxXt - for a different implementation of the same problem. */ - - wxBitmap bitmap( width, height ); - gdk_window_copy_area( bitmap.GetPixmap(), m_penGC, 0, 0, - srcDC->GetWindow(), - xsrc, ysrc, width, height ); - - /* scale image */ - - wxImage image( bitmap ); - image = image.Scale( ww, hh ); - - /* convert to bitmap */ - - bitmap = image.ConvertToBitmap(); - - /* draw scaled bitmap */ - - gdk_draw_pixmap( m_window, m_penGC, bitmap.GetPixmap(), 0, 0, xx, yy, -1, -1 ); - - } - else - { - /* no scaling and not a memory dc with a mask either */ - - gdk_window_copy_area( m_window, m_penGC, xx, yy, - srcDC->GetWindow(), - xsrc, ysrc, width, height ); - } - } - - SetLogicalFunction( old_logical_func ); - return TRUE; -} - -void wxWindowDC::DoDrawText( const wxString &text, long x, long y ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (!m_window) return; - - GdkFont *font = m_font.GetInternalFont( m_scaleY ); - - x = XLOG2DEV(x); - y = YLOG2DEV(y); - - /* CMB 21/5/98: draw text background if mode is wxSOLID */ - if (m_backgroundMode == wxSOLID) - { - long width = gdk_string_width( font, text.mbc_str() ); - long height = font->ascent + font->descent; - gdk_gc_set_foreground( m_textGC, m_textBackgroundColour.GetColor() ); - gdk_draw_rectangle( m_window, m_textGC, TRUE, x, y, width, height ); - gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() ); - } - gdk_draw_string( m_window, font, m_textGC, x, y + font->ascent, text.mbc_str() ); - - /* CMB 17/7/98: simple underline: ignores scaling and underlying - X font's XA_UNDERLINE_POSITION and XA_UNDERLINE_THICKNESS - properties (see wxXt implementation) */ - if (m_font.GetUnderlined()) - { - long width = gdk_string_width( font, text.mbc_str() ); - long ul_y = y + font->ascent; - if (font->descent > 0) ul_y++; - gdk_draw_line( m_window, m_textGC, x, ul_y, x + width, ul_y); - } - - long w, h; - GetTextExtent (text, &w, &h); - CalcBoundingBox (x + w, y + h); - CalcBoundingBox (x, y); -} - -void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height, - long *descent, long *externalLeading, - wxFont *theFont ) const -{ - wxFont fontToUse = m_font; - if (theFont) fontToUse = *theFont; - - GdkFont *font = fontToUse.GetInternalFont( m_scaleY ); - if (width) (*width) = long(gdk_string_width( font, string.mbc_str() ) / m_scaleX); - if (height) (*height) = long((font->ascent + font->descent) / m_scaleY); - if (descent) (*descent) = long(font->descent / m_scaleY); - if (externalLeading) (*externalLeading) = 0; // ?? -} - -long wxWindowDC::GetCharWidth() const -{ - GdkFont *font = m_font.GetInternalFont( m_scaleY ); - return long(gdk_string_width( font, "H" ) / m_scaleX); -} - -long wxWindowDC::GetCharHeight() const -{ - GdkFont *font = m_font.GetInternalFont( m_scaleY ); - return long((font->ascent + font->descent) / m_scaleY); -} - -void wxWindowDC::Clear() -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (!m_window) return; - - /* - we either are a memory dc or have a window as the - owner. anything else shouldn't happen. - - we don't use gdk_window_clear() as we don't set - the window's background colour anymore. it is too - much pain to keep the DC's and the window's back- - ground colour in synch. */ - - if (m_owner) - { - int width,height; - m_owner->GetSize( &width, &height ); - gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height ); - return; - } - - if (m_isMemDC) - { - int width,height; - GetSize( &width, &height ); - gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height ); - return; - } -} - -void wxWindowDC::SetFont( const wxFont &font ) -{ - m_font = font; -} - -void wxWindowDC::SetPen( const wxPen &pen ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen == pen) return; - - m_pen = pen; - - if (!m_pen.Ok()) return; - - if (!m_window) return; - - gint width = m_pen.GetWidth(); - // CMB: if width is non-zero scale it with the dc - if (width <= 0) - { - width = 1; - } - else - { - // X doesn't allow different width in x and y and so we take - // the average - double w = 0.5 + (abs(XLOG2DEVREL(width)) + abs(YLOG2DEVREL(width))) / 2.0; - width = (int)w; - } - - GdkLineStyle lineStyle = GDK_LINE_SOLID; - switch (m_pen.GetStyle()) - { - case wxSOLID: { lineStyle = GDK_LINE_SOLID; break; } - case wxDOT: { lineStyle = GDK_LINE_ON_OFF_DASH; break; } - case wxLONG_DASH: { lineStyle = GDK_LINE_ON_OFF_DASH; break; } - case wxSHORT_DASH: { lineStyle = GDK_LINE_ON_OFF_DASH; break; } - case wxDOT_DASH: { lineStyle = GDK_LINE_DOUBLE_DASH; break; } - } - - GdkCapStyle capStyle = GDK_CAP_ROUND; - switch (m_pen.GetCap()) - { - case wxCAP_ROUND: { capStyle = (width <= 1) ? GDK_CAP_NOT_LAST : GDK_CAP_ROUND; break; } - case wxCAP_PROJECTING: { capStyle = GDK_CAP_PROJECTING; break; } - case wxCAP_BUTT: { capStyle = GDK_CAP_BUTT; break; } - } - - GdkJoinStyle joinStyle = GDK_JOIN_ROUND; - switch (m_pen.GetJoin()) - { - case wxJOIN_BEVEL: { joinStyle = GDK_JOIN_BEVEL; break; } - case wxJOIN_ROUND: { joinStyle = GDK_JOIN_ROUND; break; } - case wxJOIN_MITER: { joinStyle = GDK_JOIN_MITER; break; } - } - - gdk_gc_set_line_attributes( m_penGC, width, lineStyle, capStyle, joinStyle ); - - m_pen.GetColour().CalcPixel( m_cmap ); - gdk_gc_set_foreground( m_penGC, m_pen.GetColour().GetColor() ); -} - -void wxWindowDC::SetBrush( const wxBrush &brush ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_brush == brush) return; - - m_brush = brush; - - if (!m_brush.Ok()) return; - - if (!m_window) return; - - m_brush.GetColour().CalcPixel( m_cmap ); - gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() ); - - GdkFill fillStyle = GDK_SOLID; - switch (m_brush.GetStyle()) - { - case wxSOLID: - case wxTRANSPARENT: - break; - default: - fillStyle = GDK_STIPPLED; - } - - gdk_gc_set_fill( m_brushGC, fillStyle ); - - if ((m_brush.GetStyle() == wxSTIPPLE) && (m_brush.GetStipple()->Ok())) - { - if (m_brush.GetStipple()->GetPixmap()) - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetPixmap() ); - else - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetBitmap() ); - } - - if (IS_HATCH(m_brush.GetStyle())) - { - int num = m_brush.GetStyle() - wxBDIAGONAL_HATCH; - gdk_gc_set_stipple( m_brushGC, hatches[num] ); - } -} - -void wxWindowDC::SetBackground( const wxBrush &brush ) -{ - /* CMB 21/7/98: Added SetBackground. Sets background brush - * for Clear() and bg colour for shapes filled with cross-hatch brush */ - - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_backgroundBrush == brush) return; - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) return; - - if (!m_window) return; - - m_backgroundBrush.GetColour().CalcPixel( m_cmap ); - gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() ); - gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() ); - gdk_gc_set_background( m_bgGC, m_backgroundBrush.GetColour().GetColor() ); - gdk_gc_set_foreground( m_bgGC, m_backgroundBrush.GetColour().GetColor() ); - - GdkFill fillStyle = GDK_SOLID; - switch (m_backgroundBrush.GetStyle()) - { - case wxSOLID: - case wxTRANSPARENT: - break; - default: - fillStyle = GDK_STIPPLED; - } - - gdk_gc_set_fill( m_bgGC, fillStyle ); - - if (m_backgroundBrush.GetStyle() == wxSTIPPLE) - { - gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() ); - } - - if (IS_HATCH(m_backgroundBrush.GetStyle())) - { - int num = m_backgroundBrush.GetStyle() - wxBDIAGONAL_HATCH; - gdk_gc_set_stipple( m_bgGC, hatches[num] ); - } -} - -void wxWindowDC::SetLogicalFunction( int function ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_logicalFunction == function) return; - - GdkFunction mode = GDK_COPY; - switch (function) - { - case wxXOR: mode = GDK_XOR; break; - case wxINVERT: mode = GDK_INVERT; break; -#if (GTK_MINOR_VERSION > 0) - case wxOR_REVERSE: mode = GDK_OR_REVERSE; break; - case wxAND_REVERSE: mode = GDK_AND_REVERSE; break; - case wxCLEAR: mode = GDK_CLEAR; break; - case wxSET: mode = GDK_SET; break; - case wxOR_INVERT: mode = GDK_OR_INVERT; break; - case wxSRC_AND: - case wxAND: mode = GDK_AND; break; - case wxSRC_OR: - case wxOR: mode = GDK_OR; break; - case wxEQUIV: mode = GDK_EQUIV; break; - case wxNAND: mode = GDK_NAND; break; - case wxAND_INVERT: mode = GDK_AND_INVERT; break; - case wxCOPY: mode = GDK_COPY; break; - case wxNO_OP: mode = GDK_NOOP; break; - case wxSRC_INVERT: mode = GDK_COPY_INVERT; break; -#endif - default: - { - wxFAIL_MSG( _T("unsupported logical function") ); - break; - } - } - - m_logicalFunction = function; - - if (!m_window) return; - - gdk_gc_set_function( m_penGC, mode ); - gdk_gc_set_function( m_brushGC, mode ); - gdk_gc_set_function( m_textGC, mode ); -} - -void wxWindowDC::SetTextForeground( const wxColour &col ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_textForegroundColour == col) return; - - m_textForegroundColour = col; - if (!m_textForegroundColour.Ok()) return; - - if (!m_window) return; - - m_textForegroundColour.CalcPixel( m_cmap ); - gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() ); -} - -void wxWindowDC::SetTextBackground( const wxColour &col ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_textBackgroundColour == col) return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) return; - - if (!m_window) return; - - m_textBackgroundColour.CalcPixel( m_cmap ); - gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() ); -} - -void wxWindowDC::SetBackgroundMode( int mode ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - m_backgroundMode = mode; - - if (!m_window) return; - - // CMB 21/7/98: fill style of cross-hatch brushes is affected by - // transparent/solid background mode - - if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT) - { - gdk_gc_set_fill( m_brushGC, - (m_backgroundMode == wxTRANSPARENT) ? GDK_STIPPLED : GDK_OPAQUE_STIPPLED); - } -} - -void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) ) -{ - wxFAIL_MSG( _T("wxWindowDC::SetPalette not implemented") ); -} - -void wxWindowDC::DoSetClippingRegion( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxDC::DoSetClippingRegion( x, y, width, height ); - - if (!m_window) return; - - GdkRectangle rect; - rect.x = XLOG2DEV(x); - rect.y = YLOG2DEV(y); - rect.width = XLOG2DEVREL(width); - rect.height = YLOG2DEVREL(height); - gdk_gc_set_clip_rectangle( m_penGC, &rect ); - gdk_gc_set_clip_rectangle( m_brushGC, &rect ); - gdk_gc_set_clip_rectangle( m_textGC, &rect ); - gdk_gc_set_clip_rectangle( m_bgGC, &rect ); -} - -void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion ®ion ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (region.Empty()) - { - DestroyClippingRegion(); - return; - } - - if (!m_window) return; - - gdk_gc_set_clip_region( m_penGC, region.GetRegion() ); - gdk_gc_set_clip_region( m_brushGC, region.GetRegion() ); - gdk_gc_set_clip_region( m_textGC, region.GetRegion() ); - gdk_gc_set_clip_region( m_bgGC, region.GetRegion() ); -} - -void wxWindowDC::DestroyClippingRegion() -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxDC::DestroyClippingRegion(); - - if (!m_window) return; - - gdk_gc_set_clip_rectangle( m_penGC, (GdkRectangle *) NULL ); - gdk_gc_set_clip_rectangle( m_brushGC, (GdkRectangle *) NULL ); - gdk_gc_set_clip_rectangle( m_textGC, (GdkRectangle *) NULL ); - gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL ); -} - -void wxWindowDC::SetUpDC() -{ - Destroy(); - m_ok = TRUE; - m_logicalFunction = wxCOPY; - m_penGC = gdk_gc_new( m_window ); - m_brushGC = gdk_gc_new( m_window ); - m_textGC = gdk_gc_new( m_window ); - m_bgGC = gdk_gc_new( m_window ); - - wxColour tmp_col( m_textForegroundColour ); - m_textForegroundColour = wxNullColour; - SetTextForeground( tmp_col ); - tmp_col = m_textBackgroundColour; - m_textBackgroundColour = wxNullColour; - SetTextBackground( tmp_col ); - - wxPen tmp_pen( m_pen ); - m_pen = wxNullPen; - SetPen( tmp_pen ); - - wxFont tmp_font( m_font ); - m_font = wxNullFont; - SetFont( tmp_font ); - - wxBrush tmp_brush( m_brush ); - m_brush = wxNullBrush; - SetBrush( tmp_brush ); - - tmp_brush = m_backgroundBrush; - m_backgroundBrush = wxNullBrush; - SetBackground( tmp_brush ); - - if (!hatch_bitmap) - { - hatch_bitmap = hatches; - hatch_bitmap[0] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, bdiag_bits, bdiag_width, bdiag_height ); - hatch_bitmap[1] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cdiag_bits, cdiag_width, cdiag_height ); - hatch_bitmap[2] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, fdiag_bits, fdiag_width, fdiag_height ); - hatch_bitmap[3] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cross_bits, cross_width, cross_height ); - hatch_bitmap[4] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, horiz_bits, horiz_width, horiz_height ); - hatch_bitmap[5] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, verti_bits, verti_width, verti_height ); - } -} - -void wxWindowDC::Destroy() -{ - if (m_penGC) gdk_gc_unref( m_penGC ); - m_penGC = (GdkGC*) NULL; - if (m_brushGC) gdk_gc_unref( m_brushGC ); - m_brushGC = (GdkGC*) NULL; - if (m_textGC) gdk_gc_unref( m_textGC ); - m_textGC = (GdkGC*) NULL; - if (m_bgGC) gdk_gc_unref( m_bgGC ); - m_bgGC = (GdkGC*) NULL; -} - -void wxWindowDC::ComputeScaleAndOrigin() -{ - /* CMB: copy scale to see if it changes */ - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - wxDC::ComputeScaleAndOrigin(); - - /* CMB: if scale has changed call SetPen to recalulate the line width */ - if ((m_scaleX != origScaleX || m_scaleY != origScaleY) && - (m_pen.Ok())) - { - /* this is a bit artificial, but we need to force wxDC to think - the pen has changed */ - wxPen pen = m_pen; - m_pen = wxNullPen; - SetPen( pen ); - } -} - -// Resolution in pixels per logical inch -wxSize wxWindowDC::GetPPI() const -{ - return wxSize(100, 100); -} - -int wxWindowDC::GetDepth() const -{ - wxFAIL_MSG(_T("not implemented")); - - return -1; -} - -#if wxUSE_SPLINES -// ----------------------------------- spline code ---------------------------------------- - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); - -wxList wx_spline_point_list; - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point( x1, y1 ); - wx_spline_add_point( xmid, ymid ); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - -/* utilities used by spline drawing routines */ - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack() -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint ; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0 ); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -void wxWindowDC::DoDrawSpline( wxList *points ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point( cx1, cy1 ); - wx_spline_add_point( x2, y2 ); - - wx_spline_draw_point_array( this ); -} - -#endif // wxUSE_SPLINE - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC,wxWindowDC) - -wxPaintDC::wxPaintDC() - : wxWindowDC() -{ -} - -wxPaintDC::wxPaintDC( wxWindow *win ) - : wxWindowDC( win ) -{ -} - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClientDC,wxWindowDC) - -wxClientDC::wxClientDC() - : wxWindowDC() -{ -} - -wxClientDC::wxClientDC( wxWindow *win ) - : wxWindowDC( win ) -{ -} - diff --git a/src/gtk/dcmemory.cpp b/src/gtk/dcmemory.cpp deleted file mode 100644 index 6e6365b3ea..0000000000 --- a/src/gtk/dcmemory.cpp +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxWindowDC) - -wxMemoryDC::wxMemoryDC() : wxWindowDC() -{ - m_ok = FALSE; - - m_cmap = gtk_widget_get_default_colormap(); -} - -wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) - : wxWindowDC() -{ - m_ok = FALSE; - - m_cmap = gtk_widget_get_default_colormap(); -} - -wxMemoryDC::~wxMemoryDC() -{ -} - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_selected = bitmap; - if (m_selected.Ok()) - { - if (m_selected.GetPixmap()) - { - m_window = m_selected.GetPixmap(); - } - else - { - m_window = m_selected.GetBitmap(); - } - - SetUpDC(); - - m_isMemDC = TRUE; - } - else - { - m_ok = FALSE; - m_window = (GdkWindow *) NULL; - } -} - -void wxMemoryDC::DoGetSize( int *width, int *height ) const -{ - if (m_selected.Ok()) - { - if (width) (*width) = m_selected.GetWidth(); - if (height) (*height) = m_selected.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - } -} - - diff --git a/src/gtk/dcscreen.cpp b/src/gtk/dcscreen.cpp deleted file mode 100644 index 96491de8ad..0000000000 --- a/src/gtk/dcscreen.cpp +++ /dev/null @@ -1,345 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" -#include "wx/window.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// global data initialization -//----------------------------------------------------------------------------- - -GdkWindow *wxScreenDC::sm_overlayWindow = (GdkWindow*) NULL; - int wxScreenDC::sm_overlayWindowX = 0; - int wxScreenDC::sm_overlayWindowY = 0; - - -//----------------------------------------------------------------------------- -// create X window -//----------------------------------------------------------------------------- - -extern "C" { - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkx.h" -#include - -int my_nevent_masks = 17; -int my_event_masks_table[19] = -{ - ExposureMask, - PointerMotionMask, - PointerMotionHintMask, - ButtonMotionMask, - Button1MotionMask, - Button2MotionMask, - Button3MotionMask, - ButtonPressMask | OwnerGrabButtonMask, - ButtonReleaseMask | OwnerGrabButtonMask, - KeyPressMask, - KeyReleaseMask, - EnterWindowMask, - LeaveWindowMask, - FocusChangeMask, - StructureNotifyMask, - PropertyChangeMask, - VisibilityChangeMask, - 0, /* PROXIMITY_IN */ - 0 /* PROXIMTY_OUT */ -}; - -GdkWindow* -gdk_window_transparent_new ( GdkWindow *parent, - GdkWindowAttr *attributes, - gint attributes_mask) -{ - GdkWindow *window; - GdkWindowPrivate *gprivate; - GdkWindowPrivate *parent_private; - GdkVisual *visual; - Display *parent_display; - Window xparent; - Visual *xvisual; - XSetWindowAttributes xattributes; - long xattributes_mask; - XSizeHints size_hints; - XWMHints wm_hints; - XClassHint *class_hint; - int x, y, depth; - unsigned int gclass; - char *title; - int i; - - g_return_val_if_fail (attributes != NULL, NULL); - - if (!parent) - parent = (GdkWindow*) &gdk_root_parent; - - parent_private = (GdkWindowPrivate*) parent; - if (parent_private->destroyed) - return NULL; - - xparent = parent_private->xwindow; - parent_display = parent_private->xdisplay; - - gprivate = g_new (GdkWindowPrivate, 1); - window = (GdkWindow*) gprivate; - - gprivate->parent = parent; - - if (parent_private != &gdk_root_parent) - parent_private->children = g_list_prepend (parent_private->children, window); - - gprivate->xdisplay = parent_display; - gprivate->destroyed = FALSE; - gprivate->resize_count = 0; - gprivate->ref_count = 1; - xattributes_mask = 0; - - if (attributes_mask & GDK_WA_X) - x = attributes->x; - else - x = 0; - - if (attributes_mask & GDK_WA_Y) - y = attributes->y; - else - y = 0; - - gprivate->x = x; - gprivate->y = y; - gprivate->width = (attributes->width > 1) ? (attributes->width) : (1); - gprivate->height = (attributes->height > 1) ? (attributes->height) : (1); - gprivate->window_type = attributes->window_type; - gprivate->extension_events = FALSE; - -#if (GTK_MINOR_VERSION == 0) - gprivate->dnd_drag_data_type = None; - gprivate->dnd_drag_data_typesavail = - gprivate->dnd_drop_data_typesavail = NULL; - gprivate->dnd_drop_enabled = gprivate->dnd_drag_enabled = - gprivate->dnd_drag_accepted = gprivate->dnd_drag_datashow = - gprivate->dnd_drop_data_numtypesavail = - gprivate->dnd_drag_data_numtypesavail = 0; - gprivate->dnd_drag_eventmask = gprivate->dnd_drag_savedeventmask = 0; -#endif - - gprivate->filters = NULL; - gprivate->children = NULL; - - window->user_data = NULL; - - if (attributes_mask & GDK_WA_VISUAL) - visual = attributes->visual; - else - visual = gdk_visual_get_system (); - xvisual = ((GdkVisualPrivate*) visual)->xvisual; - - xattributes.event_mask = StructureNotifyMask; - for (i = 0; i < my_nevent_masks; i++) - { - if (attributes->event_mask & (1 << (i + 1))) - xattributes.event_mask |= my_event_masks_table[i]; - } - - if (xattributes.event_mask) - xattributes_mask |= CWEventMask; - - if(attributes_mask & GDK_WA_NOREDIR) { - xattributes.override_redirect = - (attributes->override_redirect == FALSE)?False:True; - xattributes_mask |= CWOverrideRedirect; - } else - xattributes.override_redirect = False; - - gclass = InputOutput; - depth = visual->depth; - - if (attributes_mask & GDK_WA_COLORMAP) - gprivate->colormap = attributes->colormap; - else - gprivate->colormap = gdk_colormap_get_system (); - - xattributes.colormap = ((GdkColormapPrivate*) gprivate->colormap)->xcolormap; - xattributes_mask |= CWColormap; - - xparent = gdk_root_window; - - xattributes.save_under = True; - xattributes.override_redirect = True; - xattributes.cursor = None; - xattributes_mask |= CWSaveUnder | CWOverrideRedirect; - - gprivate->xwindow = XCreateWindow (gprivate->xdisplay, xparent, - x, y, gprivate->width, gprivate->height, - 0, depth, gclass, xvisual, - xattributes_mask, &xattributes); - gdk_window_ref (window); - gdk_xid_table_insert (&gprivate->xwindow, window); - - if (gprivate->colormap) - gdk_colormap_ref (gprivate->colormap); - - XSetWMProtocols (gprivate->xdisplay, gprivate->xwindow, gdk_wm_window_protocols, 2); - - size_hints.flags = PSize; - size_hints.width = gprivate->width; - size_hints.height = gprivate->height; - - wm_hints.flags = InputHint | StateHint | WindowGroupHint; - wm_hints.window_group = gdk_leader_window; - wm_hints.input = True; - wm_hints.initial_state = NormalState; - - /* FIXME: Is there any point in doing this? Do any WM's pay - * attention to PSize, and even if they do, is this the - * correct value??? - */ - XSetWMNormalHints (gprivate->xdisplay, gprivate->xwindow, &size_hints); - - XSetWMHints (gprivate->xdisplay, gprivate->xwindow, &wm_hints); - - if (attributes_mask & GDK_WA_TITLE) - title = attributes->title; - else -#if (GTK_MINOR_VERSION > 0) - title = "Unknown"; // GLH: Well I don't know for the moment what to write here. -#else - title = gdk_progname; -#endif - - XmbSetWMProperties (gprivate->xdisplay, gprivate->xwindow, - title, title, - NULL, 0, - NULL, NULL, NULL); - - if (attributes_mask & GDK_WA_WMCLASS) - { - class_hint = XAllocClassHint (); - class_hint->res_name = attributes->wmclass_name; - class_hint->res_class = attributes->wmclass_class; - XSetClassHint (gprivate->xdisplay, gprivate->xwindow, class_hint); - XFree (class_hint); - } - - return window; -} - -} // extern "C" - -//----------------------------------------------------------------------------- -// wxScreenDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC,wxPaintDC) - -wxScreenDC::wxScreenDC(void) -{ - m_ok = FALSE; - m_window = (GdkWindow *) NULL; - m_cmap = gdk_colormap_get_system(); - - if (sm_overlayWindow) - { - m_window = sm_overlayWindow; - m_deviceOriginX = - sm_overlayWindowX; - m_deviceOriginY = - sm_overlayWindowY; - } - else - { - m_window = GDK_ROOT_PARENT(); - } - - SetUpDC(); - - gdk_gc_set_subwindow( m_penGC, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_subwindow( m_brushGC, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_subwindow( m_textGC, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_subwindow( m_bgGC, GDK_INCLUDE_INFERIORS ); -} - -wxScreenDC::~wxScreenDC(void) -{ - EndDrawingOnTop(); -} - -bool wxScreenDC::StartDrawingOnTop( wxWindow *window ) -{ - if (!window) return StartDrawingOnTop(); - - int x = 0; - int y = 0; - window->GetPosition( &x, &y ); - int w = 0; - int h = 0; - window->GetSize( &w, &h ); - window->ClientToScreen( &x, &y ); - - wxRect rect; - rect.x = x; - rect.y = y; - rect.width = 0; - rect.height = 0; - - return StartDrawingOnTop( &rect ); -} - -bool wxScreenDC::StartDrawingOnTop( wxRect *rect ) -{ - int x = 0; - int y = 0; - int width = gdk_screen_width(); - int height = gdk_screen_height(); - if (rect) - { - x = rect->x; - y = rect->y; - width = rect->width; - height = rect->height; - } - - sm_overlayWindowX = x; - sm_overlayWindowY = y; - - GdkWindowAttr attr; - attr.x = x; - attr.y = y; - attr.width = width; - attr.height = height; - attr.override_redirect = TRUE; - attr.wclass = GDK_INPUT_OUTPUT; - attr.event_mask = 0; - attr.window_type = GDK_WINDOW_TEMP; - - // GTK cannot set transparent backgrounds. :-( - sm_overlayWindow = gdk_window_transparent_new( NULL, &attr, GDK_WA_NOREDIR | GDK_WA_X | GDK_WA_Y ); - - if (sm_overlayWindow) gdk_window_show( sm_overlayWindow ); - - return (sm_overlayWindow != NULL); -} - -bool wxScreenDC::EndDrawingOnTop(void) -{ - if (sm_overlayWindow) gdk_window_destroy( sm_overlayWindow ); - - sm_overlayWindow = NULL; - sm_overlayWindowX = 0; - sm_overlayWindowY = 0; - - return TRUE; -} - diff --git a/src/gtk/dialog.cpp b/src/gtk/dialog.cpp deleted file mode 100644 index 68afab7f74..0000000000 --- a/src/gtk/dialog.cpp +++ /dev/null @@ -1,629 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/frame.h" -#include "wx/app.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - if ((win->m_width != alloc->width) || (win->m_height != alloc->height)) - { - win->m_width = alloc->width; - win->m_height = alloc->height; - win->UpdateSize(); - } -} - -//----------------------------------------------------------------------------- -// "configure_event" -//----------------------------------------------------------------------------- - -static gint gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - - int x = 0; - int y = 0; - gdk_window_get_root_origin( win->m_widget->window, &x, &y ); - - win->m_x = x; - win->m_y = y; - - wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() ); - mevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( mevent ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "realize" from m_widget -//----------------------------------------------------------------------------- - -/* we cannot MWM hints and icons before the widget has been realized, - so we do this directly after realization */ - -static gint -gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - /* I haven''t been able to set the position of - the dialog before it is shown, so I set the - position in "realize" and "map" */ - gtk_widget_set_uposition( widget, win->m_x, win->m_y ); - - /* reset the icon */ - if (win->m_icon != wxNullIcon) - { - wxIcon icon( win->m_icon ); - win->m_icon = wxNullIcon; - win->SetIcon( icon ); - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "map" from m_widget -//----------------------------------------------------------------------------- - -static gint -gtk_dialog_map_callback( GtkWidget *widget, wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - /* I haven''t been able to set the position of - the dialog before it is shown, so I set the - position in "realize" and "map" */ - gtk_widget_set_uposition( widget, win->m_x, win->m_y ); - - /* all this is for Motif Window Manager "hints" and is supposed to be - recognized by other WM as well. not tested. */ - long decor = (long) GDK_DECOR_BORDER; - long func = (long) GDK_FUNC_MOVE ; - - if ((win->GetWindowStyle() & wxCAPTION) != 0) - decor |= GDK_DECOR_TITLE; - if ((win->GetWindowStyle() & wxSYSTEM_MENU) != 0) - { - decor |= GDK_DECOR_MENU; - func |= GDK_FUNC_CLOSE; - } - if ((win->GetWindowStyle() & wxMINIMIZE_BOX) != 0) - { - func |= GDK_FUNC_MINIMIZE; - decor |= GDK_DECOR_MINIMIZE; - } - if ((win->GetWindowStyle() & wxMAXIMIZE_BOX) != 0) - { - decor |= GDK_DECOR_MAXIMIZE; - func |= GDK_FUNC_MAXIMIZE; - } - if ((win->GetWindowStyle() & wxRESIZE_BORDER) != 0) - { - func |= GDK_FUNC_RESIZE; - decor |= GDK_DECOR_RESIZEH; - } - gdk_window_set_decorations( win->m_widget->window, (GdkWMDecoration)decor); - gdk_window_set_functions( win->m_widget->window, (GdkWMFunction)func); - - /* GTK's shrinking/growing policy */ - if ((win->GetWindowStyle() & wxRESIZE_BORDER) == 0) - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 0, 0, 1); - else - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// InsertChild for wxDialog -//----------------------------------------------------------------------------- - -/* Callback for wxFrame. This very strange beast has to be used because - * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxWindows requires different ways to insert - * a child in container classes. */ - -static void wxInsertChildInDialog( wxDialog* parent, wxWindow* child ) -{ - gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - - if (parent->HasFlag(wxTAB_TRAVERSAL)) - { - /* we now allow a window to get the focus as long as it - doesn't have any children. */ - GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS ); - } -} - -//----------------------------------------------------------------------------- -// wxDialog -//----------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxDialog,wxPanel) - EVT_BUTTON (wxID_OK, wxDialog::OnOK) - EVT_BUTTON (wxID_CANCEL, wxDialog::OnCancel) - EVT_BUTTON (wxID_APPLY, wxDialog::OnApply) - EVT_SIZE (wxDialog::OnSize) - EVT_CLOSE (wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxDialog,wxPanel) - -void wxDialog::Init() -{ - m_returnCode = 0; - m_sizeSet = FALSE; - m_modalShowing = FALSE; -} - -wxDialog::wxDialog( wxWindow *parent, - wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Init(); - - Create( parent, id, title, pos, size, style, name ); -} - -bool wxDialog::Create( wxWindow *parent, - wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - wxTopLevelWindows.Append( this ); - - m_needParent = FALSE; - - PreCreation( parent, id, pos, size, style, name ); - - m_insertCallback = (wxInsertChildFunction) wxInsertChildInDialog; - - m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - - if (!name.IsEmpty()) - gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); - - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_dialog_delete_callback), (gpointer)this ); - - m_wxwindow = gtk_myfixed_new(); - gtk_widget_show( m_wxwindow ); - GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - - gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); - - SetTitle( title ); - - if (m_parent) m_parent->AddChild( this ); - - PostCreation(); - - /* we cannot set MWM hints before the widget has - been realized, so we do this directly after realization */ - gtk_signal_connect( GTK_OBJECT(m_widget), "realize", - GTK_SIGNAL_FUNC(gtk_dialog_realized_callback), (gpointer) this ); - - /* we set the position of the window after the map event. setting it - before has no effect (with KWM) */ - gtk_signal_connect( GTK_OBJECT(m_widget), "map", - GTK_SIGNAL_FUNC(gtk_dialog_map_callback), (gpointer) this ); - - /* the user resized the frame by dragging etc. */ - gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", - GTK_SIGNAL_FUNC(gtk_dialog_configure_callback), (gpointer)this ); - - return TRUE; -} - -wxDialog::~wxDialog() -{ - m_isBeingDeleted = TRUE; - - wxTopLevelWindows.DeleteObject( this ); - - if (wxTheApp->GetTopWindow() == this) - { - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - } - - if (wxTopLevelWindows.Number() == 0) - { - wxTheApp->ExitMainLoop(); - } -} - -void wxDialog::SetTitle( const wxString& title ) -{ - m_title = title; - if (m_title.IsNull()) m_title = _T(""); - gtk_window_set_title( GTK_WINDOW(m_widget), m_title.mbc_str() ); -} - -wxString wxDialog::GetTitle() const -{ - return (wxString&)m_title; -} - -void wxDialog::OnApply( wxCommandEvent &WXUNUSED(event) ) -{ - if (Validate()) TransferDataFromWindow(); -} - -void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) ) -{ - if (IsModal()) - { - EndModal(wxID_CANCEL); - } - else - { - SetReturnCode(wxID_CANCEL); - Show(FALSE); - } -} - -void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) ) -{ - if (Validate() && TransferDataFromWindow()) - { - if (IsModal()) - { - EndModal(wxID_OK); - } - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnPaint( wxPaintEvent& WXUNUSED(event) ) -{ - // yes -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList s_closing; - - if (s_closing.Member(this)) - return; // no loops - - s_closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - s_closing.DeleteObject(this); -} - -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this); - - return TRUE; -} - -void wxDialog::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") ); - -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - { - Layout(); - } - else -#endif // wxUSE_CONSTRAINTS - { - /* no child: go out ! */ - if (!GetChildren().First()) return; - - /* do we have exactly one child? */ - wxWindow *child = (wxWindow *) NULL; - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!wxIS_KIND_OF(win,wxFrame) && !wxIS_KIND_OF(win,wxDialog)) - { - /* it's the second one: do nothing */ - if (child) return; - child = win; - } - } - - /* yes: set it's size to fill all the frame */ - int client_x, client_y; - GetClientSize( &client_x, &client_y ); - child->SetSize( 1, 1, client_x-2, client_y); - } -} - -void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") ); - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid dialog") ); - - if (m_resizing) return; /* I don't like recursions */ - m_resizing = TRUE; - - int old_x = m_x; - int old_y = m_y; - int old_width = m_width; - int old_height = m_height; - - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - if ((m_x != -1) || (m_y != -1)) - { - if ((m_x != old_x) || (m_y != old_y)) - { - /* we set the position here and when showing the dialog - for the first time in idle time */ - gtk_widget_set_uposition( m_widget, m_x, m_y ); - } - } - - if ((m_width != old_width) || (m_height != old_height)) - { - /* actual resizing is deferred to GtkOnSize in idle time and - when showing the dialog */ - m_sizeSet = FALSE; - } - - m_resizing = FALSE; -} - -void wxDialog::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height ) -{ - // due to a bug in gtk, x,y are always 0 - // m_x = x; - // m_y = y; - - if ((m_height == height) && (m_width == width) && (m_sizeSet)) return; - if (!m_wxwindow) return; - - m_width = width; - m_height = height; - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - /* we actually set the size of a frame here and no-where else */ - gtk_widget_set_usize( m_widget, m_width, m_height ); - - m_sizeSet = TRUE; - - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); -} - -void wxDialog::Centre( int direction ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") ); - - int x = 0; - int y = 0; - - if ((direction & wxHORIZONTAL) == wxHORIZONTAL) x = (gdk_screen_width () - m_width) / 2; - if ((direction & wxVERTICAL) == wxVERTICAL) y = (gdk_screen_height () - m_height) / 2; - - Move( x, y ); -} - -void wxDialog::OnInternalIdle() -{ - if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow)) - GtkOnSize( m_x, m_y, m_width, m_height ); -} - -bool wxDialog::Show( bool show ) -{ - if (!show && IsModal()) - { - EndModal( wxID_CANCEL ); - } - - if (show && !m_sizeSet) - { - /* by calling GtkOnSize here, we don't have to call - either after showing the frame, which would entail - much ugly flicker nor from within the size_allocate - handler, because GTK 1.1.X forbids that. */ - - GtkOnSize( m_x, m_y, m_width, m_height ); - } - - bool ret = wxWindow::Show( show ); - - if (show) InitDialog(); - - return ret; -} - -bool wxDialog::IsModal() const -{ - return m_modalShowing; -} - -void wxDialog::SetModal( bool WXUNUSED(flag) ) -{ -/* - if (flag) - m_windowStyle |= wxDIALOG_MODAL; - else - if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL; -*/ - wxFAIL_MSG( _T("wxDialog:SetModal obsolete now") ); -} - -int wxDialog::ShowModal() -{ - if (IsModal()) - { - wxFAIL_MSG( _T("wxDialog:ShowModal called twice") ); - return GetReturnCode(); - } - - Show( TRUE ); - - m_modalShowing = TRUE; - - gtk_grab_add( m_widget ); - gtk_main(); - gtk_grab_remove( m_widget ); - - return GetReturnCode(); -} - -void wxDialog::EndModal( int retCode ) -{ - SetReturnCode( retCode ); - - if (!IsModal()) - { - wxFAIL_MSG( _T("wxDialog:EndModal called twice") ); - return; - } - - m_modalShowing = FALSE; - - gtk_main_quit(); - - Show( FALSE ); -} - -void wxDialog::InitDialog() -{ - wxWindow::InitDialog(); -} - -void wxDialog::SetIcon( const wxIcon &icon ) -{ - m_icon = icon; - if (!icon.Ok()) return; - - if (!m_widget->window) return; - - wxMask *mask = icon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; - if (mask) bm = mask->GetBitmap(); - - gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); -} diff --git a/src/gtk/dnd.cpp b/src/gtk/dnd.cpp deleted file mode 100644 index 9596cf7d13..0000000000 --- a/src/gtk/dnd.cpp +++ /dev/null @@ -1,887 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget class -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/dnd.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/intl.h" -#include "wx/utils.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gdk/gdkprivate.h" - -#include "gtk/gtkdnd.h" -#include "gtk/gtkselection.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//---------------------------------------------------------------------------- -// global data -//---------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//---------------------------------------------------------------------------- -// standard icons -//---------------------------------------------------------------------------- - -/* XPM */ -static char * gv_xpm[] = { -"40 34 3 1", -" s None c None", -". c black", -"X c white", -" ", -" ", -" ...... ", -" ..XXXXXX.. ", -" .XXXXXXXXXX. ", -" .XXXXXXXXXXXX. ", -" .XXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXX. ", -" .XXX..XXXX..XXX. ", -" ....XX....XX....XX. ", -" .XXX.XXX..XXXX..XXX.... ", -" .XXXXXXXXXXXXXXXXXXX.XXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXXX. ", -" ..XXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXX... ", -" ..XXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXX.XXXXXXX. ", -" .XXXXXXX.XXXXXXX.XXXXXXX. ", -" .XXXXXXXX.XXXXXXX.XXXXXXX. ", -" .XXXXXXX...XXXXX...XXXXX. ", -" .XXXXXXX. ..... ..... ", -" ..XXXX.. ", -" .... ", -" ", -" ", -" "}; - -/* XPM */ -static char * page_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 5 1", -/* colors */ -" s None c None", -". c black", -"X c wheat", -"o c tan", -"O c #6699FF", -/* pixels */ -" ................... ", -" .XXXXXXXXXXXXXXXXX.. ", -" .XXXXXXXXXXXXXXXXX.o. ", -" .XXXXXXXXXXXXXXXXX.oo. ", -" .XXXXXXXXXXXXXXXXX.ooo. ", -" .XXXXXXXXXXXXXXXXX.oooo. ", -" .XXXXXXXXXXXXXXXXX....... ", -" .XXXXXOOOOOOOOOOXXXooooo. ", -" .XXXXXXXXXXXXXXXXXXooooo. ", -" .XXXXXOOOOOOOOOOXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXOOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXOOOOOOOOOOXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXOOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXOOOOOOOOOOXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXOOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXOOOOOOOXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" ......................... "}; - - - -// ---------------------------------------------------------------------------- -// "drag_leave" -// ---------------------------------------------------------------------------- - -static void target_drag_leave( GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - guint WXUNUSED(time), - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* inform the wxDropTarget about the current GdkDragContext. - this is only valid for the duration of this call */ - drop_target->SetDragContext( context ); - - /* we don't need return values. this event is just for - information */ - drop_target->OnLeave(); - - /* this has to be done because GDK has no "drag_enter" event */ - drop_target->m_firstMotion = TRUE; - - /* after this, invalidate the drop_target's GdkDragContext */ - drop_target->SetDragContext( (GdkDragContext*) NULL ); -} - -// ---------------------------------------------------------------------------- -// "drag_motion" -// ---------------------------------------------------------------------------- - -static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - gint x, - gint y, - guint time, - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* Owen Taylor: "if the coordinates not in a drop zone, - return FALSE, otherwise call gtk_drag_status() and - return TRUE" */ - - /* inform the wxDropTarget about the current GdkDragContext. - this is only valid for the duration of this call */ - drop_target->SetDragContext( context ); - - if (drop_target->m_firstMotion) - { - /* the first "drag_motion" event substitutes a "drag_enter" event */ - drop_target->OnEnter(); - } - - /* give program a chance to react (i.e. to say no by returning FALSE) */ - bool ret = drop_target->OnMove( x, y ); - - /* we don't yet handle which "actions" (i.e. copy or move) - the target accepts. so far we simply accept the - suggested action. TODO. */ - if (ret) - gdk_drag_status( context, context->suggested_action, time ); - - /* after this, invalidate the drop_target's GdkDragContext */ - drop_target->SetDragContext( (GdkDragContext*) NULL ); - - /* this has to be done because GDK has no "drag_enter" event */ - drop_target->m_firstMotion = FALSE; - - return ret; -} - -// ---------------------------------------------------------------------------- -// "drag_drop" -// ---------------------------------------------------------------------------- - -static gboolean target_drag_drop( GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* Owen Taylor: "if the drop is not in a drop zone, - return FALSE, otherwise, if you aren't accepting - the drop, call gtk_drag_finish() with success == FALSE - otherwise call gtk_drag_data_get()" */ - -// printf( "drop.\n" ); - - /* this seems to make a difference between not accepting - due to wrong target area and due to wrong format. let - us hope that this is not required.. */ - - /* inform the wxDropTarget about the current GdkDragContext. - this is only valid for the duration of this call */ - drop_target->SetDragContext( context ); - - /* inform the wxDropTarget about the current drag widget. - this is only valid for the duration of this call */ - drop_target->SetDragWidget( widget ); - - /* inform the wxDropTarget about the current drag time. - this is only valid for the duration of this call */ - drop_target->SetDragTime( time ); - - bool ret = drop_target->OnDrop( x, y ); - - if (!ret) - { - /* cancel the whole thing */ - gtk_drag_finish( context, - FALSE, /* no success */ - FALSE, /* don't delete data on dropping side */ - time ); - } - - /* after this, invalidate the drop_target's GdkDragContext */ - drop_target->SetDragContext( (GdkDragContext*) NULL ); - - /* after this, invalidate the drop_target's drag widget */ - drop_target->SetDragWidget( (GtkWidget*) NULL ); - - /* this has to be done because GDK has no "drag_enter" event */ - drop_target->m_firstMotion = TRUE; - - return ret; -} - -// ---------------------------------------------------------------------------- -// "drag_data_received" -// ---------------------------------------------------------------------------- - -static void target_drag_data_received( GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *data, - guint WXUNUSED(info), - guint time, - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* Owen Taylor: "call gtk_drag_finish() with - success == TRUE" */ - -// printf( "data received.\n" ); - - if ((data->length <= 0) || (data->format != 8)) - { - /* negative data length and non 8-bit data format - qualifies for junk */ - gtk_drag_finish (context, FALSE, FALSE, time); - -// printf( "no data.\n" ); - - return; - } - - /* inform the wxDropTarget about the current GtkSelectionData. - this is only valid for the duration of this call */ - drop_target->SetDragData( data ); - - if (drop_target->OnData( x, y )) - { - /* tell GTK that data transfer was successfull */ - gtk_drag_finish( context, TRUE, FALSE, time ); - } - else - { - /* tell GTK that data transfer was not successfull */ - gtk_drag_finish( context, FALSE, FALSE, time ); - } - - /* after this, invalidate the drop_target's drag data */ - drop_target->SetDragData( (GtkSelectionData*) NULL ); -} - -//---------------------------------------------------------------------------- -// wxDropTarget -//---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ - m_firstMotion = TRUE; - m_dragContext = (GdkDragContext*) NULL; - m_dragWidget = (GtkWidget*) NULL; - m_dragData = (GtkSelectionData*) NULL; - m_dragTime = 0; -} - -wxDropTarget::~wxDropTarget() -{ -} - -void wxDropTarget::OnEnter() -{ -} - -void wxDropTarget::OnLeave() -{ -} - -bool wxDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return TRUE; -} - -bool wxDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return FALSE; -} - -bool wxDropTarget::OnData( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return FALSE; -} - -bool wxDropTarget::RequestData( wxDataFormat format ) -{ - if (!m_dragContext) return FALSE; - if (!m_dragWidget) return FALSE; - -/* - wxPrintf( _T("format: %s.\n"), format.GetId().c_str() ); - if (format.GetType() == wxDF_PRIVATE) wxPrintf( _T("private data.\n") ); - if (format.GetType() == wxDF_TEXT) wxPrintf( _T("text data.\n") ); -*/ - - /* this should trigger an "drag_data_received" event */ - gtk_drag_get_data( m_dragWidget, - m_dragContext, - format.GetAtom(), - m_dragTime ); - - return TRUE; -} - -bool wxDropTarget::IsSupported( wxDataFormat format ) -{ - if (!m_dragContext) return FALSE; - - GList *child = m_dragContext->targets; - while (child) - { - GdkAtom formatAtom = (GdkAtom) GPOINTER_TO_INT(child->data); - -// char *name = gdk_atom_name( formatAtom ); -// if (name) printf( "Format available: %s.\n", name ); - - if (formatAtom == format.GetAtom()) return TRUE; - child = child->next; - } - - return FALSE; -} - -bool wxDropTarget::GetData( wxDataObject *data_object ) -{ - if (!m_dragData) return FALSE; - - if (m_dragData->target != data_object->GetFormat().GetAtom()) return FALSE; - - if (data_object->GetFormat().GetType() == wxDF_TEXT) - { - wxTextDataObject *text_object = (wxTextDataObject*)data_object; - text_object->SetText( (const char*)m_dragData->data ); - } else - - if (data_object->GetFormat().GetType() == wxDF_FILENAME) - { - } else - - if (data_object->GetFormat().GetType() == wxDF_PRIVATE) - { - wxPrivateDataObject *priv_object = (wxPrivateDataObject*)data_object; - priv_object->SetData( (const char*)m_dragData->data, (size_t)m_dragData->length ); - } - - return TRUE; -} - -void wxDropTarget::UnregisterWidget( GtkWidget *widget ) -{ - wxCHECK_RET( widget != NULL, _T("unregister widget is NULL") ); - - gtk_drag_dest_unset( widget ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this ); -} - -void wxDropTarget::RegisterWidget( GtkWidget *widget ) -{ - wxCHECK_RET( widget != NULL, _T("register widget is NULL") ); - - /* gtk_drag_dest_set() determines what default behaviour we'd like - GTK to supply. we don't want to specify out targets (=formats) - or actions in advance (i.e. not GTK_DEST_DEFAULT_MOTION and - not GTK_DEST_DEFAULT_DROP). instead we react individually to - "drag_motion" and "drag_drop" events. this makes it possible - to allow dropping on only a small area. we should set - GTK_DEST_DEFAULT_HIGHLIGHT as this will switch on the nice - highlighting if dragging over standard controls, but this - seems to be broken without the other two. */ - - gtk_drag_dest_set( widget, - (GtkDestDefaults) 0, /* no default behaviour */ - (GtkTargetEntry*) NULL, /* we don't supply any formats here */ - 0, /* number of targets = 0 */ - (GdkDragAction) 0 ); /* we don't supply any actions here */ - - gtk_signal_connect( GTK_OBJECT(widget), "drag_leave", - GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(widget), "drag_motion", - GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(widget), "drag_drop", - GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(widget), "drag_data_received", - GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this ); -} - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -bool wxTextDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return IsSupported( wxDF_TEXT ); -} - -bool wxTextDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) ) -{ - if (IsSupported( wxDF_TEXT )) - { - RequestData( wxDF_TEXT ); - return TRUE; - } - - return FALSE; -} - -bool wxTextDropTarget::OnData( int x, int y ) -{ - wxTextDataObject data; - if (!GetData( &data )) return FALSE; - - OnDropText( x, y, data.GetText() ); - - return TRUE; -} - -//------------------------------------------------------------------------- -// wxPrivateDropTarget -//------------------------------------------------------------------------- - -wxPrivateDropTarget::wxPrivateDropTarget() -{ - m_id = wxTheApp->GetAppName(); -} - -wxPrivateDropTarget::wxPrivateDropTarget( const wxString &id ) -{ - m_id = id; -} - -bool wxPrivateDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return IsSupported( m_id ); -} - -bool wxPrivateDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) ) -{ - if (!IsSupported( m_id )) - { - RequestData( m_id ); - return FALSE; - } - - return FALSE; -} - -bool wxPrivateDropTarget::OnData( int x, int y ) -{ - if (!IsSupported( m_id )) return FALSE; - - wxPrivateDataObject data; - if (!GetData( &data )) return FALSE; - - OnDropData( x, y, data.GetData(), data.GetSize() ); - - return TRUE; -} - -//---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -//---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return IsSupported( wxDF_FILENAME ); -} - -bool wxFileDropTarget::OnDrop( int x, int y ) -{ - if (IsSupported( wxDF_FILENAME )) - { - RequestData( wxDF_FILENAME ); - return TRUE; - } - - return FALSE; -} - -bool wxFileDropTarget::OnData( int x, int y ) -{ - wxFileDataObject data; - if (!GetData( &data )) return FALSE; - - /* get number of substrings /root/mytext.txt/0/root/myothertext.txt/0/0 */ - size_t number = 0; - size_t i; - size_t size = data.GetFiles().Length(); - wxChar *text = WXSTRINGCAST data.GetFiles(); - for ( i = 0; i < size; i++) - if (text[i] == 0) number++; - - if (number == 0) return FALSE; - - wxChar **files = new wxChar*[number]; - - text = WXSTRINGCAST data.GetFiles(); - for (i = 0; i < number; i++) - { - files[i] = text; - int len = wxStrlen( text ); - text += len+1; - } - - OnDropFiles( x, y, number, files ); - - free( files ); - - return TRUE; -} - -//---------------------------------------------------------------------------- -// "drag_data_get" -//---------------------------------------------------------------------------- - -static void -source_drag_data_get (GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - GtkSelectionData *selection_data, - guint WXUNUSED(info), - guint WXUNUSED(time), - wxDropSource *drop_source ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "Provide data!\n" ); - -// char *name = gdk_atom_name( selection_data->target ); -// if (name) printf( "Format requested: %s.\n", name ); - - wxNode *node = drop_source->m_data->m_dataObjects.First(); - while (node) - { - wxDataObject *data_object = (wxDataObject*) node->Data(); - if (data_object->GetFormat().GetAtom() == selection_data->target) - { -// printf( "format found.\n" ); - - size_t data_size = data_object->GetSize(); - - if (data_size > 0) - { -// printf( "data size: %d.\n", (int)data_size ); - - guchar *buffer = new guchar[data_size]; - data_object->WriteData( buffer ); - - gtk_selection_data_set( selection_data, - selection_data->target, - 8, // 8-bit - buffer, - data_size ); - - free( buffer ); - - /* so far only copy, no moves. TODO. */ - drop_source->m_retValue = wxDragCopy; - - return; - } - } - - node = node->Next(); - } - - drop_source->m_retValue = wxDragCancel; -} - -//---------------------------------------------------------------------------- -// "drag_data_delete" -//---------------------------------------------------------------------------- - -static void source_drag_data_delete( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *drop_source ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "Delete the data!\n" ); - - drop_source->m_retValue = wxDragMove; -} - -//---------------------------------------------------------------------------- -// "drag_begin" -//---------------------------------------------------------------------------- - -static void source_drag_begin( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *WXUNUSED(drop_source) ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "drag_begin.\n" ); -} - -//---------------------------------------------------------------------------- -// "drag_end" -//---------------------------------------------------------------------------- - -static void source_drag_end( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *drop_source ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "drag_end.\n" ); - - drop_source->m_waiting = FALSE; -} - -//--------------------------------------------------------------------------- -// wxDropSource -//--------------------------------------------------------------------------- - -wxDropSource::wxDropSource( wxWindow *win, const wxIcon &go, const wxIcon &stop ) -{ - g_blockEventsOnDrag = TRUE; - m_waiting = TRUE; - - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - - m_data = (wxDataBroker*) NULL; - m_retValue = wxDragCancel; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); - - m_goIcon = go; - if (wxNullIcon == go) m_goIcon = wxIcon( page_xpm ); - m_stopIcon = stop; - if (wxNullIcon == stop) m_stopIcon = wxIcon( gv_xpm ); -} - -wxDropSource::wxDropSource( wxDataObject *data, wxWindow *win, const wxIcon &go, const wxIcon &stop ) -{ - m_waiting = TRUE; - - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - m_retValue = wxDragCancel; - - if (data) - { - m_data = new wxDataBroker(); - m_data->Add( data ); - } - else - { - m_data = (wxDataBroker*) NULL; - } - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); - - m_goIcon = go; - if (wxNullIcon == go) m_goIcon = wxIcon( page_xpm ); - m_stopIcon = stop; - if (wxNullIcon == stop) m_stopIcon = wxIcon( gv_xpm ); -} - -wxDropSource::wxDropSource( wxDataBroker *data, wxWindow *win ) -{ - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - m_retValue = wxDragCancel; - - m_data = data; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -} - -void wxDropSource::SetData( wxDataObject *data ) -{ - if (m_data) delete m_data; - - if (data) - { - m_data = new wxDataBroker(); - m_data->Add( data ); - } - else - { - m_data = (wxDataBroker*) NULL; - } -} - -void wxDropSource::SetData( wxDataBroker *data ) -{ - if (m_data) delete m_data; - - m_data = data; -} - -wxDropSource::~wxDropSource(void) -{ - if (m_data) delete m_data; - - g_blockEventsOnDrag = FALSE; -} - -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - wxASSERT_MSG( m_data, _T("wxDragSource: no data") ); - - if (!m_data) return (wxDragResult) wxDragNone; - - g_blockEventsOnDrag = TRUE; - - RegisterWindow(); - - m_waiting = TRUE; - - GdkAtom atom = gdk_atom_intern( "STRING", FALSE ); -// wxPrintf( _T("atom id: %d.\n"), (int)atom ); - - GtkTargetList *target_list = gtk_target_list_new( (GtkTargetEntry*) NULL, 0 ); - gtk_target_list_add( target_list, atom, 0, 0 ); - - GdkEventMotion event; - event.window = m_widget->window; - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer( event.window, &x, &y, &state ); - event.x = x; - event.y = y; - event.state = state; - event.time = GDK_CURRENT_TIME; - - /* GTK wants to know which button was pressed which caused the dragging */ - int button_number = 0; - if (event.state & GDK_BUTTON1_MASK) button_number = 1; - else if (event.state & GDK_BUTTON2_MASK) button_number = 2; - else if (event.state & GDK_BUTTON3_MASK) button_number = 3; - - /* don't start dragging if no button is down */ - if (button_number) - { - GdkDragContext *context = gtk_drag_begin( m_widget, - target_list, - GDK_ACTION_COPY, - button_number, /* number of mouse button which started drag */ - (GdkEvent*) &event ); - - wxMask *mask = m_goIcon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; - if (mask) bm = mask->GetBitmap(); - GdkPixmap *pm = m_goIcon.GetPixmap(); - - gtk_drag_set_icon_pixmap( context, - gtk_widget_get_colormap( m_widget ), - pm, - bm, - 0, - 0 ); - - while (m_waiting) gtk_main_iteration();; - } - - g_blockEventsOnDrag = FALSE; - - UnregisterWindow(); - - return m_retValue; -} - -void wxDropSource::RegisterWindow() -{ - if (!m_widget) return; - - gtk_signal_connect( GTK_OBJECT(m_widget), "drag_data_get", - GTK_SIGNAL_FUNC (source_drag_data_get), (gpointer) this); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_data_delete", - GTK_SIGNAL_FUNC (source_drag_data_delete), (gpointer) this ); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_begin", - GTK_SIGNAL_FUNC (source_drag_begin), (gpointer) this ); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_end", - GTK_SIGNAL_FUNC (source_drag_end), (gpointer) this ); - -} - -void wxDropSource::UnregisterWindow() -{ - if (!m_widget) return; - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_data_get), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_data_delete), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_begin), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_end), (gpointer) this ); -} - -#endif - - // wxUSE_DRAG_AND_DROP diff --git a/src/gtk/fdiag.xbm b/src/gtk/fdiag.xbm deleted file mode 100644 index 67d3b4732a..0000000000 --- a/src/gtk/fdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define fdiag_width 16 -#define fdiag_height 16 -static char fdiag_bits[] = { - 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, - 0x40, 0x40, 0x80, 0x80, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, - 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80}; diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp deleted file mode 100644 index 528bba04b3..0000000000 --- a/src/gtk/filedlg.cpp +++ /dev/null @@ -1,252 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/filedlg.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/generic/msgdlgg.h" - -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -static -bool gtk_filedialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -/* - printf( "OnDelete from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "clicked" for OK-button -//----------------------------------------------------------------------------- - -static -void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFileDialog *dialog ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int style = dialog->GetStyle(); - - GtkFileSelection *filedlg = GTK_FILE_SELECTION(dialog->m_widget); - char *filename = gtk_file_selection_get_filename(filedlg); - - if ( (style & wxSAVE) && ( style & wxOVERWRITE_PROMPT ) ) - { - if (wxFileExists( filename )) - { - wxString msg; - msg.Printf( _("File '%s' already exists, do you really want to " - "overwrite it?"), filename); - - if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES) - return; - } - } - else if ( (style & wxOPEN) && ( style & wxFILE_MUST_EXIST) ) - { - if ( !wxFileExists( filename ) ) - { - wxMessageBox(_("Please choose an existing file."), _("Error"), wxOK); - - return; - } - } - - dialog->SetPath( filename ); - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK); - event.SetEventObject( dialog ); - dialog->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "clicked" for Cancel-button -//----------------------------------------------------------------------------- - -static -void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFileDialog *dialog ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - event.SetEventObject( dialog ); - dialog->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxFileDialog -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog) - -wxFileDialog::wxFileDialog( wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, - const wxString& wildCard, - long style, const wxPoint& pos ) -{ - m_needParent = FALSE; - - PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" ); - m_message = message; - m_path = _T(""); - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_dialogStyle = style; - m_filterIndex = 1; - - m_widget = gtk_file_selection_new( m_message.mbc_str() ); - - int x = (gdk_screen_width () - 400) / 2; - int y = (gdk_screen_height () - 400) / 2; - gtk_widget_set_uposition( m_widget, x, y ); - - GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget); - gtk_file_selection_hide_fileop_buttons( sel ); // they don't work anyway - - m_path.Append(m_dir); - if( ! m_path.IsEmpty() && m_path.Last()!=_T('/') ) - m_path.Append('/'); - m_path.Append(m_fileName); - - if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path.mbc_str()); - - gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", - GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this ); - - // strange way to internationalize - gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->ok_button)->child ), wxConv_current->cWX2MB(_("OK")) ); - - gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked", - GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this ); - - // strange way to internationalize - gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->cancel_button)->child ), wxConv_current->cWX2MB(_("Cancel")) ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_filedialog_delete_callback), (gpointer)this ); -} - -void wxFileDialog::SetPath(const wxString& path) -{ - // not only set the full path but also update filename and dir - m_path = path; - if ( !!path ) - { - wxString ext; - wxSplitPath(path, &m_dir, &m_fileName, &ext); - m_fileName += ext; - } -} - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -wxString -wxFileSelectorEx(const wxChar *message, - const wxChar *default_path, - const wxChar *default_filename, - int *indexDefaultExtension, - const wxChar *wildcard, - int flags, - wxWindow *parent, - int x, int y) -{ - // TODO: implement this somehow - return wxFileSelector(message, default_path, default_filename, _T(""), - wildcard, flags, parent, x, y); -} - -wxString wxFileSelector( const wxChar *title, - const wxChar *defaultDir, const wxChar *defaultFileName, - const wxChar *defaultExtension, const wxChar *filter, int flags, - wxWindow *parent, int x, int y ) -{ - wxString filter2; - if ( defaultExtension && !filter ) - filter2 = wxString(_T("*.")) + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - - wxFileDialog fileDialog( parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y) ); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - return fileDialog.GetPath(); - } - else - { - return wxEmptyString; - } -} - -wxString wxLoadFileSelector( const wxChar *what, const wxChar *extension, const wxChar *default_name, wxWindow *parent ) -{ - wxChar *ext = (wxChar *)extension; - - wxChar prompt[50]; - wxString str = _("Load %s file"); - wxSprintf(prompt, str, what); - - if (*ext == _T('.')) ext++; - wxChar wild[60]; - wxSprintf(wild, _T("*.%s"), ext); - - return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent); -} - -wxString wxSaveFileSelector(const wxChar *what, const wxChar *extension, const wxChar *default_name, - wxWindow *parent ) -{ - wxChar *ext = (wxChar *)extension; - - wxChar prompt[50]; - wxString str = _("Save %s file"); - wxSprintf(prompt, str, what); - - if (*ext == _T('.')) ext++; - wxChar wild[60]; - wxSprintf(wild, _T("*.%s"), ext); - - return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent); -} - diff --git a/src/gtk/font.cpp b/src/gtk/font.cpp deleted file mode 100644 index 842c716587..0000000000 --- a/src/gtk/font.cpp +++ /dev/null @@ -1,1013 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/font.h" -#include "wx/utils.h" -#include "wx/log.h" -#include - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// local data -//----------------------------------------------------------------------------- - -/* -extern wxFontNameDirectory *wxTheFontNameDirectory; -*/ - -//----------------------------------------------------------------------------- -// wxFont -//----------------------------------------------------------------------------- - -class wxFontRefData: public wxObjectRefData -{ -public: - - wxFontRefData(); - wxFontRefData( const wxFontRefData& data ); - ~wxFontRefData(); - - wxList m_scaled_xfonts; - int m_pointSize; - int m_family, m_style, m_weight; - bool m_underlined; - wxString m_faceName; - - bool m_byXFontName; - GdkFont *m_font; - - friend wxFont; -}; - -wxFontRefData::wxFontRefData() : m_scaled_xfonts(wxKEY_INTEGER) -{ - m_byXFontName = FALSE; - m_pointSize = 12; - m_family = wxSWISS; - m_style = wxNORMAL; - m_weight = wxNORMAL; - m_underlined = FALSE; - m_font = (GdkFont *) NULL; -} - -wxFontRefData::wxFontRefData( const wxFontRefData& data ) : m_scaled_xfonts(wxKEY_INTEGER) -{ - m_byXFontName = FALSE; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; - m_font = (GdkFont *) NULL; - if (data.m_font) m_font = gdk_font_ref( data.m_font ); -} - -wxFontRefData::~wxFontRefData() -{ - wxNode *node = m_scaled_xfonts.First(); - while (node) - { - GdkFont *font = (GdkFont*)node->Data(); - wxNode *next = node->Next(); - gdk_font_unref( font ); - node = next; - } - if (m_font) gdk_font_unref( m_font ); -} - -//----------------------------------------------------------------------------- - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) - -wxFont::wxFont() -{ - if (wxTheFontList) wxTheFontList->Append( this ); -} - -wxFont::wxFont( char *xFontName ) -{ - if (!xFontName) return; - - m_refData = new wxFontRefData(); - - M_FONTDATA->m_byXFontName = TRUE; - M_FONTDATA->m_font = gdk_font_load( xFontName ); -} - -wxFont::wxFont( int pointSize, int family, int style, int weight, bool underlined, const wxString& face ) -{ - m_refData = new wxFontRefData(); - - if (family == wxDEFAULT) - M_FONTDATA->m_family = wxSWISS; - else - M_FONTDATA->m_family = family; - - if (!face.IsEmpty()) M_FONTDATA->m_faceName = face; - - if (style == wxDEFAULT) - M_FONTDATA->m_style = wxNORMAL; - else - M_FONTDATA->m_style = style; - - if (weight == wxDEFAULT) - M_FONTDATA->m_weight = wxNORMAL; - else - M_FONTDATA->m_weight = weight; - - if (pointSize == wxDEFAULT) - M_FONTDATA->m_pointSize = 12; - else - M_FONTDATA->m_pointSize = pointSize; - - M_FONTDATA->m_underlined = underlined; - - if (wxTheFontList) wxTheFontList->Append( this ); - -} - -wxFont::wxFont( const wxFont& font ) -{ - Ref( font ); - - if (wxTheFontList) wxTheFontList->Append( this ); -} - -wxFont::~wxFont() -{ - if (wxTheFontList) wxTheFontList->DeleteObject( this ); -} - -wxFont& wxFont::operator = ( const wxFont& font ) -{ - if (*this == font) return (*this); - Ref( font ); - return *this; -} - -bool wxFont::operator == ( const wxFont& font ) const -{ - return m_refData == font.m_refData; -} - -bool wxFont::operator != ( const wxFont& font ) const -{ - return m_refData != font.m_refData; -} - -bool wxFont::Ok() const -{ - return (m_refData != NULL); -} - -int wxFont::GetPointSize() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_pointSize; -} - -wxString wxFont::GetFaceName() const -{ - wxCHECK_MSG( Ok(), _T(""), _T("invalid font") ); - - return M_FONTDATA->m_faceName; -} - -int wxFont::GetFamily() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_family; -} - -wxString wxFont::GetFamilyString() const -{ - wxCHECK_MSG( Ok(), _T("wxDEFAULT"), _T("invalid font") ); - - switch (M_FONTDATA->m_family) - { - case wxDECORATIVE: return wxString(_T("wxDECORATIVE")); - case wxROMAN: return wxString(_T("wxROMAN")); - case wxSCRIPT: return wxString(_T("wxSCRIPT")); - case wxSWISS: return wxString(_T("wxSWISS")); - case wxMODERN: return wxString(_T("wxMODERN")); - case wxTELETYPE: return wxString(_T("wxTELETYPE")); - default: return _T("wxDEFAULT"); - } - - return "wxDEFAULT"; -} - -int wxFont::GetStyle() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_style; -} - -wxString wxFont::GetStyleString() const -{ - wxCHECK_MSG( Ok(), _T("wxDEFAULT"), _T("invalid font") ); - - switch (M_FONTDATA->m_style) - { - case wxNORMAL: return wxString(_T("wxNORMAL")); - case wxSLANT: return wxString(_T("wxSLANT")); - case wxITALIC: return wxString(_T("wxITALIC")); - default: return wxString(_T("wxDEFAULT")); - } - - return wxString(_T("wxDEFAULT")); -} - -int wxFont::GetWeight() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_weight; -} - -wxString wxFont::GetWeightString() const -{ - wxCHECK_MSG( Ok(), _T("wxDEFAULT"), _T("invalid font") ); - - switch (M_FONTDATA->m_weight) - { - case wxNORMAL: return wxString(_T("wxNORMAL")); - case wxBOLD: return wxString(_T("wxBOLD")); - case wxLIGHT: return wxString(_T("wxLIGHT")); - default: return wxString(_T("wxDEFAULT")); - } - - return wxString(_T("wxDEFAULT")); -} - -bool wxFont::GetUnderlined() const -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid font") ); - - return M_FONTDATA->m_underlined; -} - -void wxFont::Unshare() -{ - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; -} - -//----------------------------------------------------------------------------- -// get internal representation of font -//----------------------------------------------------------------------------- - -static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, - bool underlined, const wxString &facename ); - -GdkFont *wxFont::GetInternalFont( float scale ) const -{ - if (!Ok()) - { - wxFAIL_MSG( _T("invalid font") ); - return (GdkFont*) NULL; - } - - /* short cut if the special X font constructor has been used */ - if (M_FONTDATA->m_byXFontName) return M_FONTDATA->m_font; - - long int_scale = long(scale * 100.0 + 0.5); /* key for fontlist */ - int point_scale = (M_FONTDATA->m_pointSize * 10 * int_scale) / 100; - GdkFont *font = (GdkFont *) NULL; - - wxNode *node = M_FONTDATA->m_scaled_xfonts.Find(int_scale); - if (node) - { - font = (GdkFont*)node->Data(); - } - else - { -/* - if ((int_scale == 100) && - (M_FONTDATA->m_family == wxSWISS) && - (M_FONTDATA->m_style == wxNORMAL) && - (M_FONTDATA->m_pointSize == 12) && - (M_FONTDATA->m_weight == wxNORMAL) && - (M_FONTDATA->m_underlined == FALSE)) - { - font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" ); - } - else -*/ - { - font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family, M_FONTDATA->m_style, - M_FONTDATA->m_weight, M_FONTDATA->m_underlined, M_FONTDATA->m_faceName ); - } - M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font ); - } - - if (!font) - { - wxLogError(_T("could not load any font")); - } - - return font; -} - -//----------------------------------------------------------------------------- -// local utilities to find a X font -//----------------------------------------------------------------------------- - -static GdkFont*wxLoadQueryFont( int pointSize, int family, int style, int weight, - bool underlined, const wxString &facename ) -{ - wxChar *xfamily = (wxChar*) NULL; - wxChar *xstyle = (wxChar*) NULL; - wxChar *xweight = (wxChar*) NULL; - - switch (family) - { - case wxDECORATIVE: xfamily = _T("lucida"); break; - case wxROMAN: xfamily = _T("times"); break; - case wxMODERN: xfamily = _T("courier"); break; - case wxSWISS: xfamily = _T("helvetica"); break; - case wxTELETYPE: xfamily = _T("lucidatypewriter"); break; - case wxSCRIPT: xfamily = _T("utopia"); break; - default: xfamily = _T("*"); - } - - if (!facename.IsEmpty()) - { - wxSprintf( wxBuffer, _T("-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*"), facename.c_str() ); - GdkFont *test = gdk_font_load( wxConv_libc.cWX2MB(wxBuffer) ); - if (test) - { - gdk_font_unref( test ); - xfamily = WXSTRINGCAST facename; - } - } - - switch (style) - { - case wxITALIC: xstyle = _T("i"); break; - case wxSLANT: xstyle = _T("o"); break; - case wxNORMAL: xstyle = _T("r"); break; - default: xstyle = _T("*"); break; - } - switch (weight) - { - case wxBOLD: xweight = _T("bold"); break; - case wxLIGHT: - case wxNORMAL: xweight = _T("medium"); break; - default: xweight = _T("*"); break; - } - - wxSprintf( wxBuffer, _T("-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*"), - xfamily, xweight, xstyle, pointSize); - - return gdk_font_load( wxConv_libc.cWX2MB(wxBuffer) ); -} - -static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, - bool underlined, const wxString &facename ) -{ - GdkFont *font = wxLoadQueryFont( point_size, family, style, weight, underlined, facename ); - - if (!font) - { - /* search up and down by stepsize 10 */ - int max_size = point_size + 20 * (1 + (point_size/180)); - int min_size = point_size - 20 * (1 + (point_size/180)); - - int i; - - /* Search for smaller size (approx.) */ - for (i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10) - font = wxLoadQueryFont(i, family, style, weight, underlined, facename ); - - /* Search for larger size (approx.) */ - for (i=point_size+10; !font && i <= max_size; i += 10) - font = wxLoadQueryFont( i, family, style, weight, underlined, facename ); - - /* Try default family */ - if (!font && family != wxDEFAULT) - font = wxLoadQueryFont( point_size, wxDEFAULT, style, weight, underlined, facename ); - - /* Bogus font */ - if (!font) - font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, underlined, facename ); - } - - return font; -} - -/* - -//----------------------------------------------------------------------------- -// face names and index functions -//----------------------------------------------------------------------------- - -static char *font_defaults[] = { - "FamilyDefault", "Default", - "FamilyRoman", "Roman", - "FamilyDecorative", "Decorative", - "FamilyModern", "Modern", - "FamilyTeletype", "Teletype", - "FamilySwiss", "Swiss", - "FamilyScript", "Script", - - "AfmMedium", "", - "AfmBold", "Bo", - "AfmLight", "", - "AfmStraight", "", - "AfmItalic", "${AfmSlant}", - "AfmSlant", "O", - "AfmRoman", "Ro", - "AfmTimes", "Times", - "AfmHelvetica", "Helv", - "AfmCourier", "Cour", - - "Afm___", "${AfmTimes,$[weight],$[style]}", - - "AfmTimes__", "${AfmTimes}${Afm$[weight]}${Afm$[style]}", - "AfmTimesMediumStraight", "${AfmTimes}${AfmRoman}", - "AfmTimesLightStraight", "${AfmTimes}${AfmRoman}", - "AfmTimes_Italic", "${AfmTimes}$[weight]${AfmItalic}", - "AfmTimes_Slant", "${AfmTimes}$[weight]${AfmItalic}", - - "AfmSwiss__", "${AfmHelvetica}${Afm$[weight]}${Afm$[style]}", - "AfmModern__", "${AfmCourier}${Afm$[weight]}${Afm$[style]}", - - "AfmTeletype__", "${AfmModern,$[weight],$[style]}", - - "PostScriptMediumStraight", "", - "PostScriptMediumItalic", "-Oblique", - "PostScriptMediumSlant", "-Oblique", - "PostScriptLightStraight", "", - "PostScriptLightItalic", "-Oblique", - "PostScriptLightSlant", "-Oblique", - "PostScriptBoldStraight", "-Bold", - "PostScriptBoldItalic", "-BoldOblique", - "PostScriptBoldSlant", "-BoldOblique", - -#if WX_NORMALIZED_PS_FONTS - "PostScript___", "${PostScriptTimes,$[weight],$[style]}", -#else - "PostScriptRoman__", "${PostScriptTimes,$[weight],$[style]}", - "PostScript___", "LucidaSans${PostScript$[weight]$[style]}", -#endif - - "PostScriptTimesMedium", "", - "PostScriptTimesLight", "", - "PostScriptTimesBold", "Bold", - - "PostScriptTimes__", "Times${PostScript$[weight]$[style]}", - "PostScriptTimesMediumStraight", "Times-Roman", - "PostScriptTimesLightStraight", "Times-Roman", - "PostScriptTimes_Slant", "Times-${PostScriptTimes$[weight]}Italic", - "PostScriptTimes_Italic", "Times-${PostScriptTimes$[weight]}Italic", - - "PostScriptSwiss__", "Helvetica${PostScript$[weight]$[style]}", - "PostScriptModern__", "Courier${PostScript$[weight]$[style]}", - - "PostScriptTeletype__", "${PostScriptModern,$[weight],$[style]}", - -#if !WX_NORMALIZED_PS_FONTS - "PostScriptScript__", "Zapf-Chancery-MediumItalic", -#endif - - "ScreenMedium", "medium", - "ScreenBold", "bold", - "ScreenLight", "light", - "ScreenStraight", "r", - "ScreenItalic", "i", - "ScreenSlant", "o", - - "ScreenDefaultBase", "*-times", - - "ScreenRomanBase", "*-times", - "ScreenDecorativeBase", "*-helvetica", - "ScreenModernBase", "*-courier", - "ScreenTeletypeBase", "*-lucidatypewriter", - "ScreenSwissBase", "*-lucida", - "ScreenScriptBase", "*-zapfchancery", - - "ScreenStdSuffix", "-${Screen$[weight]}-${Screen$[style]}" - "-normal-*-*-%d-*-*-*-*-*-*", - - "Screen___", - "-${ScreenDefaultBase}${ScreenStdSuffix}", - "ScreenRoman__", - "-${ScreenRomanBase}${ScreenStdSuffix}", - "ScreenDecorative__", - "-${ScreenDecorativeBase}${ScreenStdSuffix}", - "ScreenModern__", - "-${ScreenModernBase}${ScreenStdSuffix}", - "ScreenTeletype__", - "-${ScreenTeletypeBase}${ScreenStdSuffix}", - "ScreenSwiss__", - "-${ScreenSwissBase}${ScreenStdSuffix}", - "ScreenScript__", - "-${ScreenScriptBase}${ScreenStdSuffix}", - (char *) NULL -}; - -enum {wxWEIGHT_NORMAL, wxWEIGHT_BOLD, wxWEIGHT_LIGHT, wxNUM_WEIGHTS}; -enum {wxSTYLE_NORMAL, wxSTYLE_ITALIC, wxSTYLE_SLANT, wxNUM_STYLES}; - -static int WCoordinate(int w) -{ - switch (w) - { - case wxBOLD: return wxWEIGHT_BOLD; - case wxLIGHT: return wxWEIGHT_LIGHT; - case wxNORMAL: - default: return wxWEIGHT_NORMAL; - } -}; - -static int SCoordinate(int s) -{ - switch (s) - { - case wxITALIC: return wxSTYLE_ITALIC; - case wxSLANT: return wxSTYLE_SLANT; - case wxNORMAL: - default: return wxSTYLE_NORMAL; - } -}; - -//----------------------------------------------------------------------------- -// wxSuffixMap -//----------------------------------------------------------------------------- - -class wxSuffixMap -{ -public: - ~wxSuffixMap(); - - inline char *GetName(int weight, int style) - { - return ( map [WCoordinate(weight)] [SCoordinate(style)] ); - } - - char *map[wxNUM_WEIGHTS][wxNUM_STYLES]; - void Initialize(const char *, const char *); -}; - -static void SearchResource(const char *prefix, const char **names, int count, char **v) -{ - int k, i, j; - char resource[1024], **defaults, *internal; - - k = 1 << count; - - *v = (char *) NULL; - internal = (char *) NULL; - - for (i = 0; i < k; i++) - { - strcpy(resource, prefix); - for (j = 0; j < count; j++) - { - // upon failure to find a matching fontname - // in the default fonts above, we substitute more - // and more values by _ so that at last ScreenMyFontBoldNormal - // would turn into Screen___ and this will then get - // converted to -${ScreenDefaultBase}${ScreenStdSuffix} - - if (!(i & (1 << j))) - strcat(resource, names[j]); - else - strcat(resource, "_"); - } - - // we previously search the Xt-resources here - - if (!internal) - { - defaults = font_defaults; - while (*defaults) - { - if (!strcmp(*defaults, resource)) - { - internal = defaults[1]; - break; - } - defaults += 2; - } - } - } - - if (internal) - { - if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) && - (strcmp(names[0], "Default") != 0)) - { - // we did not find any font name in the standard list. - // this can (hopefully does) mean that someone supplied - // the facename in the wxFont constructor so we insert - // it here - - strcpy( resource,"-*-" ); // any producer - strcat( resource, names[0] ); // facename - strcat( resource, "${ScreenStdSuffix}" ); // add size params later on - *v = copystring(resource); - } - else - { - *v = copystring(internal); - } - } -} - -wxSuffixMap::~wxSuffixMap() -{ - int k, j; - - for (k = 0; k < wxNUM_WEIGHTS; ++k) - for (j = 0; j < wxNUM_STYLES; ++j) - if (map[k][j]) - { - delete[] map[k][j]; - map[k][j] = (char *) NULL; - } -} - -void wxSuffixMap::Initialize(const char *resname, const char *devresname) -{ - const char *weight, *style; - char *v; - int i, j, k; - const char *names[3]; - - for (k = 0; k < wxNUM_WEIGHTS; k++) - { - switch (k) - { - case wxWEIGHT_NORMAL: weight = "Medium"; break; - case wxWEIGHT_LIGHT: weight = "Light"; break; - case wxWEIGHT_BOLD: - default: weight = "Bold"; - } - for (j = 0; j < wxNUM_STYLES; j++) - { - switch (j) - { - case wxSTYLE_NORMAL: style = "Straight"; break; - case wxSTYLE_ITALIC: style = "Italic"; break; - case wxSTYLE_SLANT: - default: style = "Slant"; - } - names[0] = resname; - names[1] = weight; - names[2] = style; - - SearchResource(devresname, names, 3, &v); - - // Expand macros in the found string: -found: - int len, closer = 0, startpos = 0; - - len = (v ? strlen(v) : 0); - for (i = 0; i < len; i++) - { - if (v[i] == '$' && ((v[i+1] == '[') || (v[i+1] == '{'))) - { - startpos = i; - closer = (v[i+1] == '[') ? ']' : '}'; - ++i; - } - else if (v[i] == closer) - { - int newstrlen; - const char *r = (char *) NULL; bool delete_r = FALSE; - char *name; - - name = v + startpos + 2; - v[i] = 0; - - if (closer == '}') - { - int i, count, len; - char **names; - - for (i = 0, count = 1; name[i]; i++) - if (name[i] == ',') - count++; - - len = i; - - names = new char*[count]; - names[0] = name; - for (i = 0, count = 1; i < len; i++) - if (name[i] == ',') - { - names[count++] = name + i + 1; - name[i] = 0; - } - - SearchResource("", (const char **)names, count, (char **)&r); - delete_r = (r != 0); - delete[] names; - - if (!r) - { - for (i = 0; i < len; i++) - if (!name[i]) - name[i] = ','; - r = ""; - wxLogError( "Bad resource name in font lookup." ); - } - } else if (!strcmp(name, "weight")) { - r = weight; - } else if (!strcmp(name, "style")) { - r = style; - } else if (!strcmp(name, "family")) { - r = resname; - } else { - r = ""; - wxLogError( "Bad font macro name." ); - } - - // add r to v - newstrlen = strlen(r); - char *naya = new char[startpos + newstrlen + len - i]; - memcpy(naya, v, startpos); - memcpy(naya + startpos, r, newstrlen); - memcpy(naya + startpos + newstrlen, v + i + 1, len - i); - if (delete_r) - delete[] (char*)r; - delete[] v; - v = naya; - - goto found; - } - } - // We have a final value: - map[k][j] = v; - } - } -} - -//----------------------------------------------------------------------------- -// wxFontNameItem -//----------------------------------------------------------------------------- - -class wxFontNameItem : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFontNameItem) -public: - wxFontNameItem(const char *name, int id, int family); - ~wxFontNameItem(); - - inline char* GetScreenName(int w, int s) {return screen.GetName(w, s);} - inline char* GetPostScriptName(int w, int s) {return printing.GetName(w, s);} - inline char* GetAFMName(int w, int s) {return afm.GetName(w, s);} - inline char* GetName() {return name;} - inline int GetFamily() {return family;} - inline int GetId() {return id;} - inline bool IsRoman() {return isroman;} -#if defined(__WXDEBUG__) - void Dump(ostream& str); -#endif - - int id; - int family; - char *name; - wxSuffixMap screen, printing, afm; - bool isroman; -}; - -IMPLEMENT_ABSTRACT_CLASS(wxFontNameItem, wxObject) - -wxFontNameItem::wxFontNameItem(const char *Name, int Id, int Family) -{ - name = copystring(Name); - id = Id; - family = Family; - - screen. Initialize(name, "Screen"); - printing.Initialize(name, "PostScript"); - afm. Initialize(name, "Afm"); -} - -wxFontNameItem::~wxFontNameItem() -{ - if (name) - delete[] name; - name = (char *) NULL; -} - -#if defined(__WXDEBUG__) -void wxFontNameItem::Dump(ostream& str) -{ - str << "wxFontNameItem(" << name << ")"; -} -#endif - -//----------------------------------------------------------------------------- -// wxFontDirectory -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject) - -wxFontNameDirectory::wxFontNameDirectory() -{ - table = new wxHashTable(wxKEY_INTEGER, 20); - nextFontId = -1; -} - -wxFontNameDirectory::~wxFontNameDirectory() -{ - // Cleanup wxFontNameItems allocated - table->BeginFind(); - wxNode *node = table->Next(); - while (node) - { - wxFontNameItem *item = (wxFontNameItem*)node->Data(); - delete item; - node = table->Next(); - } - delete table; -} - -int wxFontNameDirectory::GetNewFontId() -{ - return (nextFontId--); -} - -void wxFontNameDirectory::Initialize() -{ - Initialize(wxDEFAULT, wxDEFAULT, "Default"); - Initialize(wxDECORATIVE, wxDECORATIVE, "Decorative"); - Initialize(wxROMAN, wxROMAN, "Roman"); - Initialize(wxMODERN, wxMODERN, "Modern"); - Initialize(wxTELETYPE, wxTELETYPE, "Teletype"); - Initialize(wxSWISS, wxSWISS, "Swiss"); - Initialize(wxSCRIPT, wxSCRIPT, "Script"); -} - -void wxFontNameDirectory::Initialize(int fontid, int family, const char *resname) -{ - char *fam, resource[256]; - - sprintf(resource, "Family%s", resname); - SearchResource((const char *)resource, (const char **) NULL, 0, (char **)&fam); - - if (fam) - { - if (!strcmp(fam, "Default")) family = wxDEFAULT; - else if (!strcmp(fam, "Roman")) family = wxROMAN; - else if (!strcmp(fam, "Decorative")) family = wxDECORATIVE; - else if (!strcmp(fam, "Modern")) family = wxMODERN; - else if (!strcmp(fam, "Teletype")) family = wxTELETYPE; - else if (!strcmp(fam, "Swiss")) family = wxSWISS; - else if (!strcmp(fam, "Script")) family = wxSCRIPT; - delete[] fam; // free resource - } - table->Put(fontid, new wxFontNameItem(resname, fontid, family)); -} - -int wxFontNameDirectory::FindOrCreateFontId(const char *name, int family) -{ - int id; - - // font exists -> return id - if ( (id = GetFontId(name)) ) return id; - - // create new font - Initialize(id=GetNewFontId(), family, name); - return id; -} - -char *wxFontNameDirectory::GetScreenName(int fontid, int weight, int style) -{ - wxFontNameItem *item = (wxFontNameItem*)table->Get(fontid); // find font - if (item) - return item->GetScreenName(weight, style); - - // font does not exist - return (char *) NULL; -} - -char *wxFontNameDirectory::GetPostScriptName(int fontid, int weight, int style) -{ - wxFontNameItem *item = (wxFontNameItem*)table->Get(fontid); // find font - if (item) - return item->GetPostScriptName(weight, style); - - // font does not exist - return (char *) NULL; -} - -char *wxFontNameDirectory::GetAFMName(int fontid, int weight, int style) -{ - wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); // find font - if (item) - return item->GetAFMName(weight, style); - // font does not exist - return (char *) NULL; -} - -char *wxFontNameDirectory::GetFontName(int fontid) -{ - wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); // find font - if (item) - return item->GetName(); - - // font does not exist - return (char *) NULL; -} - -int wxFontNameDirectory::GetFontId(const char *name) -{ - wxNode *node; - - table->BeginFind(); - - while ( (node = table->Next()) ) - { - wxFontNameItem *item = (wxFontNameItem*)node->Data(); - if (!strcmp(name, item->name)) - return item->id; - } - - // font does not exist - return 0; -} - -int wxFontNameDirectory::GetFamily(int fontid) -{ - wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); - - if (item) - return item->family; - - // font does not exist - return wxDEFAULT; -} - -*/ diff --git a/src/gtk/frame.cpp b/src/gtk/frame.cpp deleted file mode 100644 index c33bf7f0cf..0000000000 --- a/src/gtk/frame.cpp +++ /dev/null @@ -1,1016 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/dialog.h" -#include "wx/control.h" -#include "wx/app.h" -#include "wx/menu.h" -#include "wx/toolbar.h" -#include "wx/statusbr.h" -#include "wx/dcclient.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" -#include "gdk/gdkkeysyms.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -const int wxMENU_HEIGHT = 27; -const int wxSTATUS_HEIGHT = 25; -const int wxPLACE_HOLDER = 0; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; - -//----------------------------------------------------------------------------- -// debug -//----------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -extern void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ); - -#endif - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - if ((win->m_width != alloc->width) || (win->m_height != alloc->height)) - { - win->m_width = alloc->width; - win->m_height = alloc->height; - win->UpdateSize(); - } -} - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "child_attached" of menu bar -//----------------------------------------------------------------------------- - -static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (!win->m_hasVMT) return; - - win->m_menuBarDetached = FALSE; - win->UpdateSize(); -} - -//----------------------------------------------------------------------------- -// "child_detached" of menu bar -//----------------------------------------------------------------------------- - -static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (!win->m_hasVMT) return; - - win->m_menuBarDetached = TRUE; - win->UpdateSize(); -} - -#if wxUSE_TOOLBAR -//----------------------------------------------------------------------------- -// "child_attached" of tool bar -//----------------------------------------------------------------------------- - -static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (!win->m_hasVMT) return; - - win->m_toolBarDetached = FALSE; - - win->UpdateSize(); -} - -//----------------------------------------------------------------------------- -// "child_detached" of tool bar -//----------------------------------------------------------------------------- - -static void gtk_toolbar_detached_callback( GtkWidget *widget, GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - win->m_toolBarDetached = TRUE; - win->UpdateSize(); -} -#endif // wxUSE_TOOLBAR - -//----------------------------------------------------------------------------- -// "configure_event" -//----------------------------------------------------------------------------- - -static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - - int x = 0; - int y = 0; - gdk_window_get_root_origin( win->m_widget->window, &x, &y ); - - win->m_x = x; - win->m_y = y; - - wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() ); - mevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( mevent ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "realize" from m_widget -//----------------------------------------------------------------------------- - -/* we cannot MWM hints and icons before the widget has been realized, - so we do this directly after realization */ - -static gint -gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - /* all this is for Motif Window Manager "hints" and is supposed to be - recognized by other WM as well. not tested. */ - long decor = (long) GDK_DECOR_BORDER; - long func = (long) GDK_FUNC_MOVE; - - if ((win->GetWindowStyle() & wxCAPTION) != 0) - decor |= GDK_DECOR_TITLE; - if ((win->GetWindowStyle() & wxSYSTEM_MENU) != 0) - { - decor |= GDK_DECOR_MENU; - func |= GDK_FUNC_CLOSE; - } - if ((win->GetWindowStyle() & wxMINIMIZE_BOX) != 0) - { - func |= GDK_FUNC_MINIMIZE; - decor |= GDK_DECOR_MINIMIZE; - } - if ((win->GetWindowStyle() & wxMAXIMIZE_BOX) != 0) - { - func |= GDK_FUNC_MAXIMIZE; - decor |= GDK_DECOR_MAXIMIZE; - } - if ((win->GetWindowStyle() & wxRESIZE_BORDER) != 0) - { - func |= GDK_FUNC_RESIZE; - decor |= GDK_DECOR_RESIZEH; - } - - - gdk_window_set_decorations( win->m_widget->window, (GdkWMDecoration)decor); - gdk_window_set_functions( win->m_widget->window, (GdkWMFunction)func); - - /* GTK's shrinking/growing policy */ - if ((win->GetWindowStyle() & wxRESIZE_BORDER) == 0) - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 0, 0, 1); - else - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1); - - /* reset the icon */ - if (win->m_icon != wxNullIcon) - { - wxIcon icon( win->m_icon ); - win->m_icon = wxNullIcon; - win->SetIcon( icon ); - } - - /* we set the focus to the child that accepts the focus. this - doesn't really have to be done in "realize" but why not? */ - wxWindowList::Node *node = win->GetChildren().GetFirst(); - while (node) - { - wxWindow *child = node->GetData(); - if (child->AcceptsFocus()) - { - child->SetFocus(); - break; - } - - node = node->GetNext(); - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// InsertChild for wxFrame -//----------------------------------------------------------------------------- - -/* Callback for wxFrame. This very strange beast has to be used because - * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxWindows requires different ways to insert - * a child in container classes. */ - -static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child ) -{ - if (!parent->m_insertInClientArea) - { - /* these are outside the client area */ - wxFrame* frame = (wxFrame*) parent; - gtk_myfixed_put( GTK_MYFIXED(frame->m_mainWidget), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - -#if wxUSE_TOOLBAR - /* we connect to these events for recalculating the client area - space when the toolbar is floating */ - if (wxIS_KIND_OF(child,wxToolBar)) - { - wxToolBar *toolBar = (wxToolBar*) child; - if (toolBar->GetWindowStyle() & wxTB_DOCKABLE) - { - gtk_signal_connect( GTK_OBJECT(toolBar->m_widget), "child_attached", - GTK_SIGNAL_FUNC(gtk_toolbar_attached_callback), (gpointer)parent ); - - gtk_signal_connect( GTK_OBJECT(toolBar->m_widget), "child_detached", - GTK_SIGNAL_FUNC(gtk_toolbar_detached_callback), (gpointer)parent ); - } - } -#endif // wxUSE_TOOLBAR - } - else - { - /* these are inside the client area */ - gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - } - - /* resize on OnInternalIdle */ - parent->UpdateSize(); -} - -//----------------------------------------------------------------------------- -// wxFrame -//----------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_CLOSE(wxFrame::OnCloseWindow) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame,wxWindow) - -void wxFrame::Init() -{ - m_frameMenuBar = (wxMenuBar *) NULL; -#if wxUSE_STATUSBAR - m_frameStatusBar = (wxStatusBar *) NULL; -#endif // wxUSE_STATUSBAR -#if wxUSE_TOOLBAR - m_frameToolBar = (wxToolBar *) NULL; -#endif // wxUSE_TOOLBAR - m_sizeSet = FALSE; - m_miniEdge = 0; - m_miniTitle = 0; - m_mainWidget = (GtkWidget*) NULL; - m_menuBarDetached = FALSE; - m_toolBarDetached = FALSE; - m_insertInClientArea = TRUE; -} - -wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Init(); - - Create( parent, id, title, pos, size, style, name ); -} - -bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - wxTopLevelWindows.Append( this ); - - m_needParent = FALSE; - - PreCreation( parent, id, pos, size, style, name ); - - m_title = title; - - m_insertCallback = (wxInsertChildFunction) wxInsertChildInFrame; - - GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - if (style & wxSIMPLE_BORDER) win_type = GTK_WINDOW_POPUP; - - m_widget = gtk_window_new( win_type ); - - if (!name.IsEmpty()) - gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxFrame::m_widget"), name ); -#endif - - gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() ); - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_frame_delete_callback), (gpointer)this ); - - /* m_mainWidget holds the toolbar, the menubar and the client area */ - m_mainWidget = gtk_myfixed_new(); - gtk_widget_show( m_mainWidget ); - GTK_WIDGET_UNSET_FLAGS( m_mainWidget, GTK_CAN_FOCUS ); - gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_mainWidget, _T("wxFrame::m_mainWidget"), name ); -#endif - - /* m_wxwindow only represents the client area without toolbar and menubar */ - m_wxwindow = gtk_myfixed_new(); - gtk_widget_show( m_wxwindow ); - gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_wxwindow, _T("wxFrame::m_wxwindow"), name ); -#endif - - /* we donm't allow the frame to get the focus as otherwise - the frame will grabit at arbitrary fcous changes. */ - GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - - if (m_parent) m_parent->AddChild( this ); - - PostCreation(); - - /* we cannot set MWM hints and icons before the widget has - been realized, so we do this directly after realization */ - gtk_signal_connect( GTK_OBJECT(m_widget), "realize", - GTK_SIGNAL_FUNC(gtk_frame_realized_callback), (gpointer) this ); - - /* the user resized the frame by dragging etc. */ - gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this ); - - /* the only way to get the window size is to connect to this event */ - gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", - GTK_SIGNAL_FUNC(gtk_frame_configure_callback), (gpointer)this ); - - return TRUE; -} - -wxFrame::~wxFrame() -{ - m_isBeingDeleted = TRUE; - - if (m_frameMenuBar) delete m_frameMenuBar; - m_frameMenuBar = (wxMenuBar *) NULL; - -#if wxUSE_STATUSBAR - if (m_frameStatusBar) delete m_frameStatusBar; - m_frameStatusBar = (wxStatusBar *) NULL; -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - if (m_frameToolBar) delete m_frameToolBar; - m_frameToolBar = (wxToolBar *) NULL; -#endif // wxUSE_TOOLBAR - - wxTopLevelWindows.DeleteObject( this ); - - if (wxTheApp->GetTopWindow() == this) - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - - if (wxTopLevelWindows.Number() == 0) - wxTheApp->ExitMainLoop(); -} - -bool wxFrame::Show( bool show ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - if (show && !m_sizeSet) - { - /* by calling GtkOnSize here, we don't have to call - either after showing the frame, which would entail - much ugly flicker or from within the size_allocate - handler, because GTK 1.1.X forbids that. */ - - GtkOnSize( m_x, m_y, m_width, m_height ); - } - - return wxWindow::Show( show ); -} - -bool wxFrame::Destroy() -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this); - - return TRUE; -} - -void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - /* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */ - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid frame") ); - - /* avoid recursions */ - if (m_resizing) return; - m_resizing = TRUE; - - int old_x = m_x; - int old_y = m_y; - int old_width = m_width; - int old_height = m_height; - - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - if ((m_x != -1) || (m_y != -1)) - { - if ((m_x != old_x) || (m_y != old_y)) - { - gtk_widget_set_uposition( m_widget, m_x, m_y ); - } - } - - if ((m_width != old_width) || (m_height != old_height)) - { - /* we set the size in GtkOnSize, i.e. mostly the actual resizing is - done either directly before the frame is shown or in idle time - so that different calls to SetSize() don't lead to flicker. */ - m_sizeSet = FALSE; - } - - m_resizing = FALSE; -} - -void wxFrame::Centre( int direction ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - int x = 0; - int y = 0; - - if ((direction & wxHORIZONTAL) == wxHORIZONTAL) x = (gdk_screen_width () - m_width) / 2; - if ((direction & wxVERTICAL) == wxVERTICAL) y = (gdk_screen_height () - m_height) / 2; - - Move( x, y ); -} - -void wxFrame::DoGetClientSize( int *width, int *height ) const -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxWindow::DoGetClientSize( width, height ); - if (height) - { - /* menu bar */ - if (m_frameMenuBar) - { - if (!m_menuBarDetached) - (*height) -= wxMENU_HEIGHT; - else - (*height) -= wxPLACE_HOLDER; - } - - /* status bar */ - if (m_frameStatusBar) (*height) -= wxSTATUS_HEIGHT; - - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - (*height) -= y; - } - else - (*height) -= wxPLACE_HOLDER; - } - - /* mini edge */ - (*height) -= m_miniEdge*2 + m_miniTitle; - } - if (width) - { - (*width) -= m_miniEdge*2; - } -} - -void wxFrame::DoSetClientSize( int width, int height ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - /* menu bar */ - if (m_frameMenuBar) - { - if (!m_menuBarDetached) - height += wxMENU_HEIGHT; - else - height += wxPLACE_HOLDER; - } - - /* status bar */ - if (m_frameStatusBar) height += wxSTATUS_HEIGHT; - - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - height += y; - } - else - height += wxPLACE_HOLDER; - } - - wxWindow::DoSetClientSize( width + m_miniEdge*2, height + m_miniEdge*2 + m_miniTitle ); -} - -void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height ) -{ - // due to a bug in gtk, x,y are always 0 - // m_x = x; - // m_y = y; - - /* avoid recursions */ - if (m_resizing) return; - m_resizing = TRUE; - - /* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */ - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid frame") ); - - m_width = width; - m_height = height; - - /* space occupied by m_frameToolBar and m_frameMenuBar */ - int client_area_y_offset = 0; - - /* wxMDIChildFrame derives from wxFrame but it _is_ a wxWindow as it uses - wxWindow::Create to create it's GTK equivalent. m_mainWidget is only - set in wxFrame::Create so it is used to check what kind of frame we - have here. if m_mainWidget is NULL it is a wxMDIChildFrame and so we - skip the part which handles m_frameMenuBar, m_frameToolBar and (most - importantly) m_mainWidget */ - - if (m_mainWidget) - { - /* check if size is in legal range */ - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - /* I revert back to wxGTK's original behaviour. m_mainWidget holds the - * menubar, the toolbar and the client area, which is represented by - * m_wxwindow. - * this hurts in the eye, but I don't want to call SetSize() - * because I don't want to call any non-native functions here. */ - - if (m_frameMenuBar) - { - int xx = m_miniEdge; - int yy = m_miniEdge + m_miniTitle; - int ww = m_width - 2*m_miniEdge; - int hh = wxMENU_HEIGHT; - if (m_menuBarDetached) hh = wxPLACE_HOLDER; - m_frameMenuBar->m_x = xx; - m_frameMenuBar->m_y = yy; - m_frameMenuBar->m_width = ww; - m_frameMenuBar->m_height = hh; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_frameMenuBar->m_widget, - xx, yy, ww, hh ); - client_area_y_offset += hh; - } - - if (m_frameToolBar) - { - int xx = m_miniEdge; - int yy = m_miniEdge + m_miniTitle; - if (m_frameMenuBar) - { - if (!m_menuBarDetached) - yy += wxMENU_HEIGHT; - else - yy += wxPLACE_HOLDER; - } - int ww = m_width - 2*m_miniEdge; - int hh = m_frameToolBar->m_height; - if (m_toolBarDetached) hh = wxPLACE_HOLDER; - m_frameToolBar->m_x = xx; - m_frameToolBar->m_y = yy; - /* m_frameToolBar->m_height = hh; don't change the toolbar's height */ - m_frameToolBar->m_width = ww; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_frameToolBar->m_widget, - xx, yy, ww, hh ); - client_area_y_offset += hh; - } - - int client_x = m_miniEdge; - int client_y = client_area_y_offset + m_miniEdge + m_miniTitle; - int client_w = m_width - 2*m_miniEdge; - int client_h = m_height - client_area_y_offset- 2*m_miniEdge - m_miniTitle; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_wxwindow, - client_x, client_y, client_w, client_h ); - } - else - { - /* if there is no m_mainWidget between m_widget and m_wxwindow there - is no need to set the size or position of m_wxwindow. */ - } - - if (m_frameStatusBar) - { - int xx = 0 + m_miniEdge; - int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge - client_area_y_offset; - int ww = m_width - 2*m_miniEdge; - int hh = wxSTATUS_HEIGHT; - m_frameStatusBar->m_x = xx; - m_frameStatusBar->m_y = yy; - m_frameStatusBar->m_width = ww; - m_frameStatusBar->m_height = hh; - gtk_myfixed_set_size( GTK_MYFIXED(m_wxwindow), - m_frameStatusBar->m_widget, - xx, yy, ww, hh ); - } - - /* we actually set the size of a frame here and no-where else */ - gtk_widget_set_usize( m_widget, m_width, m_height ); - - m_sizeSet = TRUE; - - /* send size event to frame */ - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - - /* send size event to status bar */ - if (m_frameStatusBar) - { - wxSizeEvent event2( wxSize(m_frameStatusBar->m_width,m_frameStatusBar->m_height), m_frameStatusBar->GetId() ); - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->GetEventHandler()->ProcessEvent( event2 ); - } - - m_resizing = FALSE; -} - -void wxFrame::MakeModal( bool modal ) -{ - if (modal) - gtk_grab_add( m_widget ); - else - gtk_grab_remove( m_widget ); -} - -void wxFrame::OnInternalIdle() -{ - if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow)) - GtkOnSize( m_x, m_y, m_width, m_height ); - - DoMenuUpdates(); - - if (m_frameMenuBar) m_frameMenuBar->OnInternalIdle(); - if (m_frameToolBar) m_frameToolBar->OnInternalIdle(); - if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle(); -} - -void wxFrame::OnCloseWindow( wxCloseEvent& WXUNUSED(event) ) -{ - Destroy(); -} - -void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - { - Layout(); - } - else -#endif // wxUSE_CONSTRAINTS - { - /* do we have exactly one child? */ - wxWindow *child = (wxWindow *)NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !wxIS_KIND_OF(win,wxFrame) && !wxIS_KIND_OF(win,wxDialog) ) - { - if (child) - { - /* it's the second one: do nothing */ - return; - } - - child = win; - } - } - - /* no children at all? */ - if (child) - { - /* yes: set it's size to fill all the frame */ - int client_x, client_y; - DoGetClientSize( &client_x, &client_y ); - child->SetSize( 1, 1, client_x-2, client_y-2 ); - } - } -} - -void wxFrame::SetMenuBar( wxMenuBar *menuBar ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid frame") ); - - m_frameMenuBar = menuBar; - - if (m_frameMenuBar) - { - m_frameMenuBar->SetInvokingWindow( this ); - - if (m_frameMenuBar->GetParent() != this) - { - m_frameMenuBar->SetParent(this); - gtk_myfixed_put( GTK_MYFIXED(m_mainWidget), - m_frameMenuBar->m_widget, - m_frameMenuBar->m_x, - m_frameMenuBar->m_y, - m_frameMenuBar->m_width, - m_frameMenuBar->m_height ); - - if (menuBar->GetWindowStyle() & wxMB_DOCKABLE) - { - gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_attached", - GTK_SIGNAL_FUNC(gtk_menu_attached_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_detached", - GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this ); - } - - m_frameMenuBar->Show( TRUE ); - } - } - - /* resize window in OnInternalIdle */ - m_sizeSet = FALSE; -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ -#if wxUSE_STATUSBAR - if (GetStatusBar()) - { - // if no help string found, we will clear the status bar text - wxString helpString; - - int menuId = event.GetMenuId(); - if ( menuId != -1 ) - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - helpString = menuBar->GetHelpString(menuId); - } - } - - SetStatusText(helpString); - } -#endif // wxUSE_STATUSBAR -} - -#if wxUSE_TOOLBAR -wxToolBar* wxFrame::CreateToolBar( long style, wxWindowID id, const wxString& name ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, _T("recreating toolbar in wxFrame") ); - - m_insertInClientArea = FALSE; - - m_frameToolBar = OnCreateToolBar( style, id, name ); - - if (m_frameToolBar) GetChildren().DeleteObject( m_frameToolBar ); - - m_insertInClientArea = TRUE; - - m_sizeSet = FALSE; - - return m_frameToolBar; -} - -wxToolBar* wxFrame::OnCreateToolBar( long style, wxWindowID id, const wxString& name ) -{ - return new wxToolBar( this, id, wxDefaultPosition, wxDefaultSize, style, name ); -} - -wxToolBar *wxFrame::GetToolBar() const -{ - return m_frameToolBar; -} -#endif // wxUSE_TOOLBAR - -#if wxUSE_STATUSBAR -wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, _T("recreating status bar in wxFrame") ); - - m_frameStatusBar = OnCreateStatusBar( number, style, id, name ); - - m_sizeSet = FALSE; - - return m_frameStatusBar; -} - -wxStatusBar *wxFrame::OnCreateStatusBar( int number, long style, wxWindowID id, const wxString& name ) -{ - wxStatusBar *statusBar = (wxStatusBar *) NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont( statusBar->GetFont() ); - - long x, y; - dc.GetTextExtent( "X", &x, &y ); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize( -1, -1, 100, height ); - - statusBar->SetFieldsCount( number ); - return statusBar; -} - -wxStatusBar *wxFrame::GetStatusBar() const -{ - return m_frameStatusBar; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_RET( m_frameStatusBar != NULL, _T("no statusbar to set text for") ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[] ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_RET( m_frameStatusBar != NULL, _T("no statusbar to set widths for") ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); -} -#endif // wxUSE_STATUSBAR - -void wxFrame::Command( int id ) -{ - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar(); - if (!bar) return; - - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } - - wxEvtHandler* evtHandler = GetEventHandler(); - - evtHandler->ProcessEvent(commandEvent); -} - -void wxFrame::SetTitle( const wxString &title ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - m_title = title; - if (m_title.IsNull()) m_title = _T(""); - gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() ); -} - -void wxFrame::SetIcon( const wxIcon &icon ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - m_icon = icon; - if (!icon.Ok()) return; - - if (!m_widget->window) return; - - wxMask *mask = icon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; - if (mask) bm = mask->GetBitmap(); - - gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); -} - diff --git a/src/gtk/gauge.cpp b/src/gtk/gauge.cpp deleted file mode 100644 index ff974edef9..0000000000 --- a/src/gtk/gauge.cpp +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxGauge -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl) - -bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_rangeMax = range; - m_gaugePos = 0; - m_useProgressBar = TRUE; - - m_widget = gtk_progress_bar_new(); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -void wxGauge::SetRange( int r ) -{ - m_rangeMax = r; - if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax; - - gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax ); -} - -void wxGauge::SetValue( int pos ) -{ - m_gaugePos = pos; - if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax; - - gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax ); -} - -int wxGauge::GetRange(void) const -{ - return m_rangeMax; -} - -int wxGauge::GetValue(void) const -{ - return m_gaugePos; -} - -void wxGauge::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - diff --git a/src/gtk/gdiobj.cpp b/src/gtk/gdiobj.cpp deleted file mode 100644 index fe9fc047c7..0000000000 --- a/src/gtk/gdiobj.cpp +++ /dev/null @@ -1,19 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: Julian Smart -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - diff --git a/src/gtk/horiz.xbm b/src/gtk/horiz.xbm deleted file mode 100644 index ff3309bcc4..0000000000 --- a/src/gtk/horiz.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define horiz_width 15 -#define horiz_height 15 -static char horiz_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00}; diff --git a/src/gtk/icon.cpp b/src/gtk/icon.cpp deleted file mode 100644 index a372cb9869..0000000000 --- a/src/gtk/icon.cpp +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// wxIcon -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxIcon,wxBitmap) - -wxIcon::wxIcon( const char **bits, int WXUNUSED(width), int WXUNUSED(height) ) : - wxBitmap( bits ) -{ -} - -wxIcon::wxIcon( char **bits, int WXUNUSED(width), int WXUNUSED(height) ) : - wxBitmap( bits ) -{ -} - -wxIcon::wxIcon() : wxBitmap() -{ -} - -wxIcon::wxIcon( const wxIcon& icon ) : wxBitmap() -{ - Ref(icon); -} - -wxIcon& wxIcon::operator = ( const wxIcon& icon ) -{ - if (*this == icon) return (*this); - Ref(icon); - return *this; -} - diff --git a/src/gtk/joystick.cpp b/src/gtk/joystick.cpp deleted file mode 100644 index 0b7cf394f4..0000000000 --- a/src/gtk/joystick.cpp +++ /dev/null @@ -1,357 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: Ported to Linux by Guilhem Lavaux -// Modified by: -// Created: 05/23/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include "wx/event.h" -#include "wx/window.h" -#include "wx/gtk/joystick.h" - -#define JOYSTICK_AXE_MAX 32767 -#define JOYSTICK_AXE_MIN -32767 - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -wxJoystick::wxJoystick(int joystick) -{ - wxString dev_name; - // Assume it's the same device name on all Linux systems ... - dev_name.Printf("/dev/js%d", (joystick == wxJOYSTICK1) ? 0 : 1); - - m_joystick = open(dev_name, O_RDWR); - m_lastposition = wxPoint(-1, -1); - for (int i=0;i<15;i++) - m_axe[i] = 0; - if (m_joystick != -1) - Create(); -} - -//////////////////////////////////////////////////////////////////////////// -// Background thread -//////////////////////////////////////////////////////////////////////////// -void *wxJoystick::Entry(void) -{ - struct js_event j_evt; - wxJoystickEvent jwx_event; - fd_set read_fds; - struct timeval time_out = {0, 0}; - - FD_ZERO(&read_fds); - while (1) { - TestDestroy(); - - if (m_polling) { - FD_SET(m_joystick, &read_fds); - select(m_joystick+1, &read_fds, NULL, NULL, &time_out); - if (FD_ISSET(m_joystick, &read_fds)) - read(m_joystick, &j_evt, sizeof(j_evt)); - else - j_evt.type = 0; - } else { - read(m_joystick, &j_evt, sizeof(j_evt)); - } - - if ((j_evt.type & JS_EVENT_AXIS) == JS_EVENT_AXIS) { - switch (j_evt.number) { - case 1: - m_lastposition.x = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_MOVE); - break; - case 2: - m_lastposition.y = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_MOVE); - break; - case 3: - m_axe[3] = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_ZMOVE); - break; - default: - m_axe[j_evt.number] = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_MOVE); - break; - } - jwx_event.SetPosition(m_lastposition); - jwx_event.SetZPosition(m_axe[3]); - } - if ((j_evt.type & JS_EVENT_BUTTON) == JS_EVENT_BUTTON) { - register int mask = 1 << j_evt.number; - char button = m_buttons & mask; - - m_buttons &= ~mask; - if (button) { - jwx_event.SetEventType(wxEVT_JOY_BUTTON_UP); - } else { - jwx_event.SetEventType(wxEVT_JOY_BUTTON_DOWN); - m_buttons |= mask; - } - - jwx_event.SetButtonState(m_buttons); - jwx_event.SetButtonChange(j_evt.number); - } - } - if (m_catchwin) - m_catchwin->ProcessEvent(jwx_event); - if (m_polling) - usleep(m_polling*1000); -} - -//////////////////////////////////////////////////////////////////////////// -// State -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition(void) const -{ - return m_lastposition; -} - -int wxJoystick::GetZPosition(void) const -{ - return m_axe[3]; -} - -int wxJoystick::GetButtonState(void) const -{ - return m_buttons; -} - -int wxJoystick::GetPOVPosition(void) const -{ - return 0; -} - -int wxJoystick::GetPOVCTSPosition(void) const -{ - return 0; -} - -int wxJoystick::GetRudderPosition(void) const -{ - return m_axe[4]; -} - -int wxJoystick::GetUPosition(void) const -{ - return m_axe[5]; -} - -int wxJoystick::GetVPosition(void) const -{ - return m_axe[6]; -} - -int wxJoystick::GetMovementThreshold(void) const -{ - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ -} - -//////////////////////////////////////////////////////////////////////////// -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk(void) const -{ - return (m_joystick != -1); -} - -int wxJoystick::GetNumberJoysticks(void) const -{ - wxString dev_name; - int fd, j; - - for (j=0;j<2;j++) { - dev_name.Printf("/dev/js%d", j); - fd = open(dev_name, O_RDONLY); - if (fd == -1) - return j; - close(fd); - } - return j; -} - -int wxJoystick::GetManufacturerId(void) const -{ - return 0; -} - -int wxJoystick::GetProductId(void) const -{ - return 0; -} - -wxString wxJoystick::GetProductName(void) const -{ - return ""; -} - -int wxJoystick::GetXMin(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetYMin(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetZMin(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetXMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetYMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetZMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetNumberButtons(void) const -{ - int nb; - - ioctl(m_joystick, JSIOCGBUTTONS, &nb); - - return nb; -} - -int wxJoystick::GetNumberAxes(void) const -{ - int nb; - - ioctl(m_joystick, JSIOCGAXES, &nb); - - return nb; -} - -int wxJoystick::GetMaxButtons(void) const -{ - return 15; // internal -} - -int wxJoystick::GetMaxAxes(void) const -{ - return 15; // internal -} - -int wxJoystick::GetPollingMin(void) const -{ - return -1; -} - -int wxJoystick::GetPollingMax(void) const -{ - return -1; -} - -int wxJoystick::GetRudderMin(void) const -{ - return JOYSTICK_AXE_MIN; -} - -int wxJoystick::GetRudderMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetUMin(void) const -{ - return JOYSTICK_AXE_MIN; -} - -int wxJoystick::GetUMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetVMin(void) const -{ - return JOYSTICK_AXE_MIN; -} - -int wxJoystick::GetVMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -bool wxJoystick::HasRudder(void) const -{ - return GetNumberAxes() >= 4; -} - -bool wxJoystick::HasZ(void) const -{ - return GetNumberAxes() >= 3; -} - -bool wxJoystick::HasU(void) const -{ - return GetNumberAxes() >= 5; -} - -bool wxJoystick::HasV(void) const -{ - return GetNumberAxes() >= 6; -} - -bool wxJoystick::HasPOV(void) const -{ - return FALSE; -} - -bool wxJoystick::HasPOV4Dir(void) const -{ - return FALSE; -} - -bool wxJoystick::HasPOVCTS(void) const -{ - return FALSE; -} - -//////////////////////////////////////////////////////////////////////////// -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq = 0) -{ - m_catchwin = win; - m_polling = pollingFreq; - return TRUE; -} - -bool wxJoystick::ReleaseCapture(void) -{ - m_catchwin = NULL; - m_polling = 0; - return TRUE; -} - diff --git a/src/gtk/listbox.cpp b/src/gtk/listbox.cpp deleted file mode 100644 index d529cd1669..0000000000 --- a/src/gtk/listbox.cpp +++ /dev/null @@ -1,942 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "listbox.h" -#endif - -#include "wx/dynarray.h" -#include "wx/listbox.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/checklst.h" -#include "wx/settings.h" - -#if wxUSE_TOOLTIPS -#include "wx/tooltip.h" -#endif - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//------------------------------------------------------------------------- -// conditional compilation -//------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION > 0) - #define NEW_GTK_SCROLL_CODE -#endif - -//----------------------------------------------------------------------------- -// private functions -//----------------------------------------------------------------------------- - -#if wxUSE_CHECKLISTBOX - -#define CHECKBOX_STRING "[-] " - -// checklistboxes have "[±] " prepended to their lables, this macro removes it -// (NB: 4 below is the length of CHECKBOX_STRING above) -// -// the argument to it is a "const char *" pointer -#define GET_REAL_LABEL(label) ((m_hasCheckBoxes)?(label)+4 : (label)) - -#else // !wxUSE_CHECKLISTBOX - -#define GET_REAL_LABEL(label) (label) - -#endif // wxUSE_CHECKLISTBOX - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; - -static bool g_hasDoubleClicked = FALSE; - -//----------------------------------------------------------------------------- -// "button_release_event" -//----------------------------------------------------------------------------- - -/* we would normally emit a wxEVT_COMMAND_LISTBOX_DOUBLECLICKED event once - a GDK_2BUTTON_PRESS occurs, but this has the particular problem of the - listbox keeping the focus until it receives a GDK_BUTTON_RELEASE event. - this can lead to race conditions so that we emit the dclick event - after the GDK_BUTTON_RELEASE event after the GDK_2BUTTON_PRESS event */ - -static gint -gtk_listbox_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!listbox->m_hasVMT) return FALSE; - - if (!g_hasDoubleClicked) return FALSE; - - wxCommandEvent event( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, listbox->GetId() ); - event.SetEventObject( listbox ); - - wxArrayInt aSelections; - int count = listbox->GetSelections(aSelections); - if ( count > 0 ) - { - event.m_commandInt = aSelections[0] ; - event.m_clientData = listbox->GetClientData( event.m_commandInt ); - wxString str(listbox->GetString(event.m_commandInt)); - if (!str.IsEmpty()) event.m_commandString = str; - } - else - { - event.m_commandInt = -1 ; - event.m_commandString.Empty(); - } - - listbox->GetEventHandler()->ProcessEvent( event ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_listbox_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!listbox->m_hasVMT) return FALSE; - - int sel = listbox->GetIndex( widget ); - -#if wxUSE_CHECKLISTBOX - if ((listbox->m_hasCheckBoxes) && (gdk_event->x < 15) && (gdk_event->type != GDK_2BUTTON_PRESS)) - { - wxCheckListBox *clb = (wxCheckListBox *)listbox; - - clb->Check( sel, !clb->IsChecked(sel) ); - - wxCommandEvent event( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, listbox->GetId() ); - event.SetEventObject( listbox ); - event.SetInt( sel ); - listbox->GetEventHandler()->ProcessEvent( event ); - } -#endif // wxUSE_CHECKLISTBOX - - /* emit wxEVT_COMMAND_LISTBOX_DOUBLECLICKED later */ - g_hasDoubleClicked = (gdk_event->type == GDK_2BUTTON_PRESS); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "key_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - - if (!listbox->m_hasVMT) return FALSE; - - if (gdk_event->keyval != ' ') return FALSE; - -#if wxUSE_CHECKLISTBOX - int sel = listbox->GetIndex( widget ); - - wxCheckListBox *clb = (wxCheckListBox *)listbox; - - clb->Check( sel, !clb->IsChecked(sel) ); - - wxCommandEvent event( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, listbox->GetId() ); - event.SetEventObject( listbox ); - event.SetInt( sel ); - listbox->GetEventHandler()->ProcessEvent( event ); -#endif // wxUSE_CHECKLISTBOX - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "select" and "deselect" -//----------------------------------------------------------------------------- - -static void gtk_listitem_select_callback( GtkWidget *WXUNUSED(widget), wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!listbox->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, listbox->GetId() ); - - wxArrayInt aSelections; - int count = listbox->GetSelections(aSelections); - if ( count > 0 ) - { - event.m_commandInt = aSelections[0] ; - event.m_clientData = listbox->GetClientData( event.m_commandInt ); - wxString str(listbox->GetString(event.m_commandInt)); - if (!str.IsEmpty()) event.m_commandString = str; - } - else - { - event.m_commandInt = -1 ; - event.m_commandString.Empty(); - } - - event.SetEventObject( listbox ); - - listbox->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxListBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListBox,wxControl) - -wxListBox::wxListBox() -{ - m_list = (GtkList *) NULL; -#if wxUSE_CHECKLISTBOX - m_hasCheckBoxes = FALSE; -#endif // wxUSE_CHECKLISTBOX -} - -bool wxListBox::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - int n, const wxString choices[], - long style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_scrolled_window_new( (GtkAdjustment*) NULL, (GtkAdjustment*) NULL ); - if (style & wxLB_ALWAYS_SB) - { - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS ); - } - else - { - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); - } - - m_list = GTK_LIST( gtk_list_new() ); - - GtkSelectionMode mode = GTK_SELECTION_BROWSE; - if (style & wxLB_MULTIPLE) - mode = GTK_SELECTION_MULTIPLE; - else if (style & wxLB_EXTENDED) - mode = GTK_SELECTION_EXTENDED; - - gtk_list_set_selection_mode( GTK_LIST(m_list), mode ); - -#ifdef NEW_GTK_SCROLL_CODE - gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) ); -#else - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) ); -#endif - - gtk_widget_show( GTK_WIDGET(m_list) ); - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = 100; - if (newSize.y == -1) newSize.y = 110; - SetSize( newSize.x, newSize.y ); - - for (int i = 0; i < n; i++) - { - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - GtkWidget *list_item; - - wxString str(choices[i]); -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - str.Prepend(CHECKBOX_STRING); - } -#endif // wxUSE_CHECKLISTBOX - - list_item = gtk_list_item_new_with_label( str.mbc_str() ); - - gtk_container_add( GTK_CONTAINER(m_list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (style & wxLB_MULTIPLE) - gtk_signal_connect( GTK_OBJECT(list_item), "deselect", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(list_item), - "button_press_event", - (GtkSignalFunc)gtk_listbox_button_press_callback, - (gpointer) this ); - - gtk_signal_connect_after( GTK_OBJECT(list_item), - "button_release_event", - (GtkSignalFunc)gtk_listbox_button_release_callback, - (gpointer) this ); - -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - gtk_signal_connect( GTK_OBJECT(list_item), - "key_press_event", - (GtkSignalFunc)gtk_listbox_key_press_callback, - (gpointer)this ); - } -#endif // wxUSE_CHECKLISTBOX - - ConnectWidget( list_item ); - - gtk_widget_show( list_item ); - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxListBox::~wxListBox() -{ - Clear(); -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GList *children = m_list->children; - int length = g_list_length(children); - wxCHECK_RET( pos <= length, _T("invalid index in wxListBox::InsertItems") ); - - // VZ: it seems that GTK 1.0.6 doesn't has a function to insert an item - // into a listbox at the given position, this is why we first delete - // all items after this position, then append these items and then - // reappend back the old ones. - - // first detach the old items - int n; // loop var - - if ( pos == length ) - { - // no need to do anything complicated - for ( n = 0; n < nItems; n++ ) - { - Append(items[n]); - } - - return; - } - - wxArrayString deletedLabels; - wxArrayPtrVoid deletedData; - wxArrayInt deletedChecks; // only for check list boxes - - GList *child = g_list_nth( children, pos ); - for ( n = 0; child != NULL; n++, child = child->next ) - { - // save label - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str(GET_REAL_LABEL(label->label)); - deletedLabels.Add(str); - - // save data - void *clientData = NULL; - wxNode *node = NULL; - - if ( n < (int)m_clientObjectList.GetCount() ) - node = m_clientObjectList.Nth( n ); - - if ( node ) - { - clientData = node->GetData(); - m_clientObjectList.DeleteNode( node ); - } - - if ( !clientData ) - { - if ( n < (int)m_clientDataList.GetCount() ) - node = m_clientDataList.Nth( n ); - - if ( node ) - { - clientData = node->GetData(); - node = m_clientDataList.Nth( n ); - } - } - - deletedData.Add(clientData); - -#if wxUSE_CHECKLISTBOX - // save check state - if ( m_hasCheckBoxes ) - { - deletedChecks.Add(((wxCheckListBox *)this)->IsChecked(pos + n)); - } -#endif // wxUSE_CHECKLISTBOX - } - - int nDeletedCount = n; - - gtk_list_clear_items( m_list, pos, length ); - - // now append the new items - for ( n = 0; n < nItems; n++ ) - { - Append(items[n]); - } - - // and append the old items too - pos += nItems; // now the indices are shifter - for ( n = 0; n < nDeletedCount; n++ ) - { - Append(deletedLabels[n], deletedData[n]); - -#if wxUSE_CHECKLISTBOX - if ( m_hasCheckBoxes ) - { - ((wxCheckListBox *)this)->Check(pos + n, (bool)deletedChecks[n]); - } -#endif // wxUSE_CHECKLISTBOX - } -} - -void wxListBox::AppendCommon( const wxString &item ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GtkWidget *list_item; - - wxString label(item); -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - label.Prepend(CHECKBOX_STRING); - } -#endif // wxUSE_CHECKLISTBOX - - list_item = gtk_list_item_new_with_label( label.mbc_str() ); - - gtk_container_add( GTK_CONTAINER(m_list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (HasFlag(wxLB_MULTIPLE)) - gtk_signal_connect( GTK_OBJECT(list_item), "deselect", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(list_item), - "button_press_event", - (GtkSignalFunc)gtk_listbox_button_press_callback, - (gpointer) this ); - - gtk_signal_connect_after( GTK_OBJECT(list_item), - "button_release_event", - (GtkSignalFunc)gtk_listbox_button_release_callback, - (gpointer) this ); - -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - gtk_signal_connect( GTK_OBJECT(list_item), - "key_press_event", - (GtkSignalFunc)gtk_listbox_key_press_callback, - (gpointer)this ); - } -#endif // wxUSE_CHECKLISTBOX - - gtk_widget_show( list_item ); - - ConnectWidget( list_item ); - - if (GTK_WIDGET_REALIZED(m_widget)) - { - gtk_widget_realize( list_item ); - gtk_widget_realize( GTK_BIN(list_item)->child ); - - if (m_widgetStyle) ApplyWidgetStyle(); - -#if wxUSE_DRAG_AND_DROP -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) m_dropTarget->RegisterWidget( list_item ); -#endif -#endif - -#if wxUSE_TOOLTIPS - if (m_tooltip) m_tooltip->Apply( this ); -#endif - } -} - -void wxListBox::Append( const wxString &item ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxListBox::Append( const wxString &item, void *clientData ) -{ - m_clientDataList.Append( (wxObject*) clientData ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxListBox::Append( const wxString &item, wxClientData *clientData ) -{ - m_clientObjectList.Append( (wxObject*) clientData ); - m_clientDataList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxListBox::SetClientData( int n, void* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return; - - node->SetData( (wxObject*) clientData ); -} - -void* wxListBox::GetClientData( int n ) -{ - wxCHECK_MSG( m_widget != NULL, NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return NULL; - - return node->Data(); -} - -void wxListBox::SetClientObject( int n, wxClientData* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return; - - wxClientData *cd = (wxClientData*) node->Data(); - if (cd) delete cd; - - node->SetData( (wxObject*) clientData ); -} - -wxClientData* wxListBox::GetClientObject( int n ) -{ - wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return (wxClientData*) NULL; - - return (wxClientData*) node->Data(); -} - -void wxListBox::Clear() -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - gtk_list_clear_items( m_list, 0, Number() ); - - wxNode *node = m_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - m_clientDataList.Clear(); -} - -void wxListBox::Delete( int n ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GList *child = g_list_nth( m_list->children, n ); - - wxCHECK_RET( child, _T("wrong listbox index") ); - - GList *list = g_list_append( (GList*) NULL, child->data ); - gtk_list_remove_items( m_list, list ); - g_list_free( list ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - m_clientObjectList.DeleteNode( node ); - } - - node = m_clientDataList.Nth( n ); - if (node) - { - m_clientDataList.DeleteNode( node ); - } -} - -void wxListBox::Deselect( int n ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - gtk_list_unselect_item( m_list, n ); -} - -int wxListBox::FindString( const wxString &item ) const -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - GList *child = m_list->children; - int count = 0; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = GET_REAL_LABEL(label->label); - - if (str == item) - return count; - - count++; - child = child->next; - } - - // it's not an error if the string is not found -> no wxCHECK - - return -1; -} - -int wxListBox::GetSelection() const -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - GList *child = m_list->children; - int count = 0; - while (child) - { - if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) return count; - count++; - child = child->next; - } - return -1; -} - -int wxListBox::GetSelections( wxArrayInt& aSelections ) const -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - // get the number of selected items first - GList *child = m_list->children; - int count = 0; - for (child = m_list->children; child != NULL; child = child->next) - { - if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) - count++; - } - - aSelections.Empty(); - - if (count > 0) - { - // now fill the list - aSelections.Alloc(count); // optimization attempt - int i = 0; - for (child = m_list->children; child != NULL; child = child->next, i++) - { - if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) - aSelections.Add(i); - } - } - - return count; -} - -wxString wxListBox::GetString( int n ) const -{ - wxCHECK_MSG( m_list != NULL, _T(""), _T("invalid listbox") ); - - GList *child = g_list_nth( m_list->children, n ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = GET_REAL_LABEL(label->label); - - return str; - } - - wxFAIL_MSG(_T("wrong listbox index")); - - return _T(""); -} - -wxString wxListBox::GetStringSelection() const -{ - wxCHECK_MSG( m_list != NULL, _T(""), _T("invalid listbox") ); - - GList *selection = m_list->selection; - if (selection) - { - GtkBin *bin = GTK_BIN( selection->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = GET_REAL_LABEL(label->label); - - return str; - } - - wxFAIL_MSG(_T("no listbox selection available")); - return _T(""); -} - -int wxListBox::Number() -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - GList *child = m_list->children; - int count = 0; - while (child) { count++; child = child->next; } - return count; -} - -bool wxListBox::Selected( int n ) -{ - wxCHECK_MSG( m_list != NULL, FALSE, _T("invalid listbox") ); - - GList *target = g_list_nth( m_list->children, n ); - if (target) - { - GList *child = m_list->selection; - while (child) - { - if (child->data == target->data) return TRUE; - child = child->next; - } - } - wxFAIL_MSG(_T("wrong listbox index")); - return FALSE; -} - -void wxListBox::Set( int WXUNUSED(n), const wxString *WXUNUSED(choices) ) -{ - wxFAIL_MSG(_T("wxListBox::Set not implemented")); -} - -void wxListBox::SetFirstItem( int WXUNUSED(n) ) -{ - wxFAIL_MSG(_T("wxListBox::SetFirstItem not implemented")); -} - -void wxListBox::SetFirstItem( const wxString &WXUNUSED(item) ) -{ - wxFAIL_MSG(_T("wxListBox::SetFirstItem not implemented")); -} - -void wxListBox::SetSelection( int n, bool select ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - if (select) - gtk_list_select_item( m_list, n ); - else - gtk_list_unselect_item( m_list, n ); -} - -void wxListBox::SetString( int n, const wxString &string ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GList *child = g_list_nth( m_list->children, n ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str; -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - str += CHECKBOX_STRING; -#endif // wxUSE_CHECKLISTBOX - str += string; - - gtk_label_set( label, str.mbc_str() ); - } - else - { - wxFAIL_MSG(_T("wrong listbox index")); - } -} - -void wxListBox::SetStringSelection( const wxString &string, bool select ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - SetSelection( FindString(string), select ); -} - -int wxListBox::GetIndex( GtkWidget *item ) const -{ - if (item) - { - GList *child = m_list->children; - int count = 0; - while (child) - { - if (GTK_WIDGET(child->data) == item) return count; - count++; - child = child->next; - } - } - return -1; -} - -#if wxUSE_TOOLTIPS -void wxListBox::ApplyToolTip( GtkTooltips *tips, const wxChar *tip ) -{ - GList *child = m_list->children; - while (child) - { - gtk_tooltips_set_tip( tips, GTK_WIDGET( child->data ), wxConv_local.cWX2MB(tip), (gchar*) NULL ); - child = child->next; - } -} -#endif // wxUSE_TOOLTIPS - -#if wxUSE_DRAG_AND_DROP -void wxListBox::SetDropTarget( wxDropTarget *dropTarget ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) - { - GList *child = m_list->children; - while (child) - { - m_dropTarget->UnregisterWidget( GTK_WIDGET( child->data ) ); - child = child->next; - } - } -#endif - - wxWindow::SetDropTarget( dropTarget ); - -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) - { - GList *child = m_list->children; - while (child) - { - m_dropTarget->RegisterWidget( GTK_WIDGET( child->data ) ); - child = child->next; - } - } -#endif -} -#endif - -GtkWidget *wxListBox::GetConnectWidget() -{ - return GTK_WIDGET(m_list); -} - -bool wxListBox::IsOwnGtkWindow( GdkWindow *window ) -{ - if (wxWindow::IsOwnGtkWindow( window )) return TRUE; - - GList *child = m_list->children; - while (child) - { - GtkWidget *bin = GTK_WIDGET( child->data ); - if (bin->window == window) return TRUE; - child = child->next; - } - - return FALSE; -} - -void wxListBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - - if (m_backgroundColour.Ok()) - { - GdkWindow *window = GTK_WIDGET(m_list)->window; - if ( window ) - { - m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) ); - gdk_window_set_background( window, m_backgroundColour.GetColor() ); - gdk_window_clear( window ); - } - } - - GList *child = m_list->children; - while (child) - { - gtk_widget_set_style( GTK_WIDGET(child->data), m_widgetStyle ); - - GtkBin *bin = GTK_BIN( child->data ); - GtkWidget *label = GTK_WIDGET( bin->child ); - gtk_widget_set_style( label, m_widgetStyle ); - - child = child->next; - } -} diff --git a/src/gtk/main.cpp b/src/gtk/main.cpp deleted file mode 100644 index a6ea36c74e..0000000000 --- a/src/gtk/main.cpp +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Entry point -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/app.h" - -int wxEntry(int argc, char *argv[]); - - -#if defined(AIX) || defined(AIX4) || defined(____HPUX__) || defined(NOMAIN) - - // main in IMPLEMENT_WX_MAIN in IMPLEMENT_APP in app.h - -#else - - -int main(int argc, char* argv[]) -{ - return wxEntry(argc, argv); -} - -#endif diff --git a/src/gtk/makefile.unx b/src/gtk/makefile.unx deleted file mode 100644 index ad4654c9e7..0000000000 --- a/src/gtk/makefile.unx +++ /dev/null @@ -1,220 +0,0 @@ -# -# File: makefile.unx -# Author: Robert Roebling -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for wxGtk library, Unix - -EXTRACFLAGS=-DLEX_SCANNER - -include ../make.env - -LIB_CPP_SRC=\ -\ - ../common/cmndata.cpp \ - ../common/config.cpp \ - ../common/date.cpp \ - ../common/docmdi.cpp \ - ../common/docview.cpp \ - ../common/dynarray.cpp \ - ../common/dynlib.cpp \ - ../common/event.cpp \ - ../common/file.cpp \ - ../common/fileconf.cpp \ - ../common/filefn.cpp \ - ../common/gdicmn.cpp \ - ../common/hash.cpp \ - ../common/helpbase.cpp \ - ../common/intl.cpp \ - ../common/image.cpp \ - ../common/imagjpeg.cpp \ - ../common/imagpng.cpp \ - ../common/ipcbase.cpp \ - ../common/layout.cpp \ - ../common/list.cpp \ - ../common/log.cpp \ - ../common/matrix.cpp \ - ../common/memory.cpp \ - ../common/module.cpp \ - ../common/object.cpp \ - ../common/odbc.cpp \ - ../common/postscrp.cpp \ - ../common/prntbase.cpp \ - ../common/resource.cpp \ - ../common/serbase.cpp \ - ../common/string.cpp \ - ../common/textfile.cpp \ - ../common/time.cpp \ - ../common/timercmn.cpp \ - ../common/utilscmn.cpp \ - ../common/wincmn.cpp \ - ../common/framecmn.cpp \ - ../common/stream.cpp \ - ../common/datstrm.cpp \ - ../common/wfstream.cpp \ - ../common/mstream.cpp \ - ../common/zstream.cpp \ - ../common/objstrm.cpp \ - ../common/sckstrm.cpp \ - ../common/validate.cpp \ - ../common/valtext.cpp \ - ../common/variant.cpp \ - ../common/wxexpr.cpp \ - ../common/socket.cpp \ - ../common/sckaddr.cpp \ - ../common/sckipc.cpp \ - ../common/protocol.cpp \ - ../common/ftp.cpp \ - ../common/http.cpp \ - ../common/url.cpp \ - ../common/tokenzr.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - checklst.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - control.cpp \ - combobox.cpp \ - cursor.cpp \ - data.cpp \ - dataobj.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dcps.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - icon.cpp \ - listbox.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - minifram.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbox.cpp \ - statbmp.cpp \ - stattext.cpp \ - tbargtk.cpp \ - threadpsx.cpp \ - textctrl.cpp \ - timer.cpp \ - utilsgtk.cpp \ - utilsres.cpp \ - wave.cpp \ - window.cpp \ -\ - ../generic/choicdgg.cpp \ - ../generic/colrdlgg.cpp \ - ../generic/dirdlgg.cpp \ - ../generic/fontdlgg.cpp \ - ../generic/gridg.cpp \ - ../generic/helpext.cpp \ - ../generic/imaglist.cpp \ - ../generic/listctrl.cpp \ - ../generic/laywin.cpp \ - ../generic/msgdlgg.cpp \ - ../generic/panelg.cpp \ - ../generic/printps.cpp \ - ../generic/prntdlgg.cpp \ - ../generic/sashwin.cpp \ - ../generic/scrolwin.cpp \ - ../generic/splitter.cpp \ - ../generic/statusbr.cpp \ - ../generic/tabg.cpp \ - ../generic/textdlgg.cpp \ - ../generic/treectrl.cpp - - -ZLIB_SRC=\ - ../zlib/adler32.c ../zlib/deflate.c ../zlib/infblock.c\ - ../zlib/inflate.c ../zlib/zutil.c ../zlib/compress.c \ - ../zlib/infcodes.c ../zlib/inftrees.c ../zlib/trees.c \ - ../zlib/crc32.c ../zlib/gzio.c ../zlib/inffast.c\ - ../zlib/infutil.c ../zlib/uncompr.c - -PNG_SRC=\ - ../png/png.c \ - ../png/pngset.c \ - ../png/pngget.c \ - ../png/pngrutil.c \ - ../png/pngtrans.c \ - ../png/pngwutil.c \ - ../png/pngread.c \ - ../png/pngrio.c \ - ../png/pngwio.c \ - ../png/pngwrite.c \ - ../png/pngrtran.c \ - ../png/pngwtran.c \ - ../png/pngmem.c \ - ../png/pngerror.c \ - ../png/pngpread.c - -LIB_C_SRC=\ -\ - win_gtk.c \ - ../common/y_tab.c \ - ../common/extended.c - -# Only need to compile zlib files if we don't -# already have a zlib library installed on our system -# (or we wish to statically link them for some reason) -EXTRA_C_SRC=\ - $(ZLIB_SRC) $(PNG_SRC) - -all: $(WXLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) $(LIB_C_SRC:.c=.o) $(EXTRA_C_SRC:.c=.o) - -$(WXLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -../common/y_tab.$(OBJSUFF): ../common/y_tab.c ../common/lex_yy.c - $(CCLEX) -c $(CFLAGS) -DNO_CONFIGURE -o $@ ../common/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -../common/lex_yy.c: ../common/lexer.l - $(LEX) -o../common/lex.yy.c ../common/lexer.l - sed -e "s/BUFSIZ/5000/g" < ../common/lex.yy.c | \ - sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c - /bin/rm -f ../common/lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv y.tab.c ../common/y_tab.c - -clean: - rm -f $(OBJECTS) $(WXLIB) - diff --git a/src/gtk/mdi.cpp b/src/gtk/mdi.cpp deleted file mode 100644 index e9acbdf01a..0000000000 --- a/src/gtk/mdi.cpp +++ /dev/null @@ -1,423 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" -#include "wx/dialog.h" -#include "wx/menu.h" -#include - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -const int wxMENU_HEIGHT = 27; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// globals -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; - -//----------------------------------------------------------------------------- -// wxMDIParentFrame -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) -END_EVENT_TABLE() - -wxMDIParentFrame::wxMDIParentFrame() -{ - m_justInserted = FALSE; - m_clientWindow = (wxMDIClientWindow *) NULL; -} - -wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_justInserted = FALSE; - m_clientWindow = (wxMDIClientWindow *) NULL; - Create( parent, id, title, pos, size, style, name ); -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ -} - -bool wxMDIParentFrame::Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - wxFrame::Create( parent, id, title, pos, size, style, name ); - - OnCreateClient(); - - return TRUE; -} - -void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height ) -{ - wxFrame::GtkOnSize( x, y, width, height ); - - wxMDIChildFrame *child_frame = GetActiveChild(); - if (!child_frame) return; - - wxMenuBar *menu_bar = child_frame->m_menuBar; - if (!menu_bar) return; - if (!menu_bar->m_widget) return; - - menu_bar->m_x = 0; - menu_bar->m_y = 0; - menu_bar->m_width = m_width; - menu_bar->m_height = wxMENU_HEIGHT; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - menu_bar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); -} - -void wxMDIParentFrame::OnInternalIdle() -{ - /* if a an MDI child window has just been inserted - it has to be brought to the top in idle time. we - simply set the last notebook page active as new - pages can only be appended at the end */ - - if (m_justInserted) - { - GtkNotebook *notebook = GTK_NOTEBOOK(m_clientWindow->m_widget); - gtk_notebook_set_page( notebook, g_list_length( notebook->children ) - 1 ); - - m_justInserted = FALSE; - return; - } - - wxFrame::OnInternalIdle(); - - wxMDIChildFrame *active_child_frame = GetActiveChild(); - bool visible_child_menu = FALSE; - - wxNode *node = m_clientWindow->GetChildren().First(); - while (node) - { - wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); - wxMenuBar *menu_bar = child_frame->m_menuBar; - if (child_frame->m_menuBar) - { - if (child_frame == active_child_frame) - { - if (menu_bar->Show(TRUE)) - { - menu_bar->m_width = m_width; - menu_bar->m_height = wxMENU_HEIGHT; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - menu_bar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - menu_bar->SetInvokingWindow( child_frame ); - } - visible_child_menu = TRUE; - } - else - { - if (menu_bar->Show(FALSE)) - { - menu_bar->UnsetInvokingWindow( child_frame ); - } - } - } - node = node->Next(); - } - - /* show/hide parent menu bar as required */ - if ((m_frameMenuBar) && - (m_frameMenuBar->IsShown() == visible_child_menu)) - { - if (visible_child_menu) - { - m_frameMenuBar->Show( FALSE ); - m_frameMenuBar->UnsetInvokingWindow( this ); - } - else - { - m_frameMenuBar->Show( TRUE ); - m_frameMenuBar->SetInvokingWindow( this ); - - m_frameMenuBar->m_width = m_width; - m_frameMenuBar->m_height = wxMENU_HEIGHT; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_frameMenuBar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - } - } -} - -void wxMDIParentFrame::GetClientSize(int *width, int *height ) const -{ - wxFrame::GetClientSize( width, height ); -} - -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - if (!m_clientWindow) return (wxMDIChildFrame*) NULL; - - GtkNotebook *notebook = GTK_NOTEBOOK(m_clientWindow->m_widget); - if (!notebook) return (wxMDIChildFrame*) NULL; - -#if (GTK_MINOR_VERSION > 0) - gint i = gtk_notebook_get_current_page( notebook ); -#else - gint i = gtk_notebook_current_page( notebook ); -#endif - if (i < 0) return (wxMDIChildFrame*) NULL; - - GtkNotebookPage* page = (GtkNotebookPage*) (g_list_nth(notebook->children,i)->data); - if (!page) return (wxMDIChildFrame*) NULL; - - wxNode *node = m_clientWindow->GetChildren().First(); - while (node) - { - wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); - if (child_frame->m_page == page) - return child_frame; - node = node->Next(); - } - - return (wxMDIChildFrame*) NULL; -} - -wxMDIClientWindow *wxMDIParentFrame::GetClientWindow() const -{ - return m_clientWindow; -} - -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - m_clientWindow = new wxMDIClientWindow( this ); - return m_clientWindow; -} - -void wxMDIParentFrame::ActivateNext() -{ - if (m_clientWindow) - gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) ); -} - -void wxMDIParentFrame::ActivatePrevious() -{ - if (m_clientWindow) - gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) ); -} - -void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) ) -{ -} - -void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(event) ) -{ -} - -//----------------------------------------------------------------------------- -// wxMDIChildFrame -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxFrame) - -BEGIN_EVENT_TABLE(wxMDIChildFrame, wxFrame) - EVT_ACTIVATE(wxMDIChildFrame::OnActivate) -END_EVENT_TABLE() - -wxMDIChildFrame::wxMDIChildFrame() -{ - m_menuBar = (wxMenuBar *) NULL; - m_page = (GtkNotebookPage *) NULL; -} - -wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& WXUNUSED(pos), const wxSize& size, - long style, const wxString& name ) -{ - m_menuBar = (wxMenuBar *) NULL; - m_page = (GtkNotebookPage *) NULL; - Create( parent, id, title, wxDefaultPosition, size, style, name ); -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ - if (m_menuBar) - delete m_menuBar; -} - -bool wxMDIChildFrame::Create( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& WXUNUSED(pos), const wxSize& size, - long style, const wxString& name ) -{ - m_title = title; - - return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name ); -} - -void wxMDIChildFrame::GetClientSize( int *width, int *height ) const -{ - wxWindow::GetClientSize( width, height ); -} - -void wxMDIChildFrame::AddChild( wxWindow *child ) -{ - wxWindow::AddChild( child ); -} - -void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar ) -{ - wxASSERT_MSG( m_menuBar == NULL, _T("Only one menubar allowed") ); - - m_menuBar = menu_bar; - - if (m_menuBar) - { - wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->GetParent(); - - m_menuBar->SetParent( mdi_frame ); - - /* insert the invisible menu bar into the _parent_ mdi frame */ - gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_mainWidget), - m_menuBar->m_widget, - 0, 0, mdi_frame->m_width, wxMENU_HEIGHT ); - } -} - -wxMenuBar *wxMDIChildFrame::GetMenuBar() const -{ - return m_menuBar; -} - -void wxMDIChildFrame::Activate() -{ -#if (GTK_MINOR_VERSION > 0) - wxMDIParentFrame* parent = (wxMDIParentFrame*) GetParent(); - GtkNotebook* notebook = GTK_NOTEBOOK(parent->m_widget); - gint pageno = gtk_notebook_page_num( notebook, m_page->child ); - gtk_notebook_set_page( notebook, pageno ); -#else - // the only way I can see to do this under gtk+ 1.0.X would - // be to keep track of page numbers, start at first and - // do "next" enough times to get to this page number - messy - // - J. Russell Smyth -#endif -} - -void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) ) -{ -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if ((win->m_x == alloc->x) && - (win->m_y == alloc->y) && - (win->m_width == alloc->width) && - (win->m_height == alloc->height) && - (win->m_sizeSet)) - { - return; - } - - win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height ); -} - -//----------------------------------------------------------------------------- -// InsertChild callback for wxMDIClientWindow -//----------------------------------------------------------------------------- - -static void wxInsertChildInMDI( wxMDIClientWindow* parent, wxMDIChildFrame* child ) -{ - wxString s = child->m_title; - if (s.IsNull()) s = _("MDI child"); - - GtkWidget *label_widget = gtk_label_new( s.mbc_str() ); - gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 ); - - gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child ); - - GtkNotebook *notebook = GTK_NOTEBOOK(parent->m_widget); - - gtk_notebook_append_page( notebook, child->m_widget, label_widget ); - - child->m_page = (GtkNotebookPage*) (g_list_last(notebook->children)->data); - - wxMDIParentFrame *parent_frame = (wxMDIParentFrame*) parent->GetParent(); - parent_frame->m_justInserted = TRUE; -} - -//----------------------------------------------------------------------------- -// wxMDIClientWindow -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow,wxWindow) - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::wxMDIClientWindow( wxMDIParentFrame *parent, long style ) -{ - CreateClient( parent, style ); -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style ) -{ - m_needParent = TRUE; - - m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI; - - PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" ); - - m_widget = gtk_notebook_new(); - - gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - diff --git a/src/gtk/menu.cpp b/src/gtk/menu.cpp deleted file mode 100644 index e2b79dbf82..0000000000 --- a/src/gtk/menu.cpp +++ /dev/null @@ -1,1091 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/app.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// wxMenuBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar,wxWindow) - -wxMenuBar::wxMenuBar( long style ) -{ - /* the parent window is known after wxFrame::SetMenu() */ - m_needParent = FALSE; - - PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, style, "menu" ); - - m_menus.DeleteContents( TRUE ); - - /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - m_accel = gtk_accel_group_new(); - m_factory = gtk_item_factory_new( GTK_TYPE_MENU_BAR, "
", m_accel ); - m_menubar = gtk_item_factory_get_widget( m_factory, "
" ); -#else - m_menubar = gtk_menu_bar_new(); -#endif - - if (style & wxMB_DOCKABLE) - { - m_widget = gtk_handle_box_new(); - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_menubar) ); - gtk_widget_show( GTK_WIDGET(m_menubar) ); - } - else - { - m_widget = GTK_WIDGET(m_menubar); - } - - PostCreation(); -} - -wxMenuBar::wxMenuBar() -{ - /* the parent window is known after wxFrame::SetMenu() */ - m_needParent = FALSE; - - PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" ); - - m_menus.DeleteContents( TRUE ); - - /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - m_accel = gtk_accel_group_new(); - m_factory = gtk_item_factory_new( GTK_TYPE_MENU_BAR, "
", m_accel ); - m_menubar = gtk_item_factory_get_widget( m_factory, "
" ); -#else - m_menubar = gtk_menu_bar_new(); -#endif - - m_widget = GTK_WIDGET(m_menubar); - - PostCreation(); -} - -wxMenuBar::~wxMenuBar() -{ - // how to destroy a GtkItemFactory ? -} - -static void wxMenubarUnsetInvokingWindow( wxMenu *menu, wxWindow *win ) -{ - menu->SetInvokingWindow( (wxWindow*) NULL ); - -#if (GTK_MINOR_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) top_frame = top_frame->GetParent(); - - /* support for native hot keys */ - gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = menu->GetItems().First(); - while (node) - { - wxMenuItem *menuitem = (wxMenuItem*)node->Data(); - if (menuitem->IsSubMenu()) - wxMenubarUnsetInvokingWindow( menuitem->GetSubMenu(), win ); - node = node->Next(); - } -} - -static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win ) -{ - menu->SetInvokingWindow( win ); - -#if (GTK_MINOR_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) - top_frame = top_frame->GetParent(); - - /* support for native hot keys */ - gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = menu->GetItems().First(); - while (node) - { - wxMenuItem *menuitem = (wxMenuItem*)node->Data(); - if (menuitem->IsSubMenu()) - wxMenubarSetInvokingWindow( menuitem->GetSubMenu(), win ); - node = node->Next(); - } -} - -void wxMenuBar::SetInvokingWindow( wxWindow *win ) -{ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) - top_frame = top_frame->GetParent(); - - /* support for native key accelerators indicated by underscroes */ - gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = m_menus.First(); - while (node) - { - wxMenu *menu = (wxMenu*)node->Data(); - wxMenubarSetInvokingWindow( menu, win ); - node = node->Next(); - } -} - -void wxMenuBar::UnsetInvokingWindow( wxWindow *win ) -{ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) - top_frame = top_frame->GetParent(); - - /* support for native key accelerators indicated by underscroes */ - gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = m_menus.First(); - while (node) - { - wxMenu *menu = (wxMenu*)node->Data(); - wxMenubarUnsetInvokingWindow( menu, win ); - node = node->Next(); - } -} - -void wxMenuBar::Append( wxMenu *menu, const wxString &title ) -{ - m_menus.Append( menu ); - - /* GTK 1.2 wants to have "_" instead of "&" for accelerators */ - wxString str; - for ( const wxChar *pc = title; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('&')) - { -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - str << _T('_'); - } else - if (*pc == _T('/')) - { - str << _T('\\'); -#endif - } - else - str << *pc; - } - - /* this doesn't have much effect right now */ - menu->SetTitle( str ); - - /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - - /* local buffer in multibyte form */ - char buf[200]; - strcpy( buf, "/" ); - strcat( buf, str.mb_str() ); - - GtkItemFactoryEntry entry; - entry.path = buf; - entry.accelerator = (gchar*) NULL; - entry.callback = (GtkItemFactoryCallback) NULL; - entry.callback_action = 0; - entry.item_type = ""; - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* in order to get the pointer to the item we need the item text _without_ underscores */ - wxString tmp = _T("
/"); - for ( const wxChar *pc = str; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('_')) pc++; /* skip it */ - tmp << *pc; - } - - menu->m_owner = gtk_item_factory_get_item( m_factory, tmp.mb_str() ); - - gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu->m_owner), menu->m_menu ); - -#else - - menu->m_owner = gtk_menu_item_new_with_label( str.mb_str() ); - gtk_widget_show( menu->m_owner ); - gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu->m_owner), menu->m_menu ); - - gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), menu->m_owner ); - -#endif -} - -static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString ) -{ - if (menu->GetTitle() == menuString) - { - int res = menu->FindItem( itemString ); - if (res != wxNOT_FOUND) - return res; - } - - wxNode *node = ((wxMenu *)menu)->GetItems().First(); // const_cast - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->IsSubMenu()) - return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString); - - node = node->Next(); - } - - return wxNOT_FOUND; -} - -wxMenuItem *wxMenuBar::FindItemForId(int itemId, wxMenu **menuForItem ) const -{ - if ( menuForItem ) - { - // TODO return the pointer to the menu - - *menuForItem = NULL; - } - - return FindItem(itemId); -} - -int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemString ) const -{ - wxNode *node = m_menus.First(); - while (node) - { - wxMenu *menu = (wxMenu*)node->Data(); - int res = FindMenuItemRecursive( menu, menuString, itemString); - if (res != -1) return res; - node = node->Next(); - } - return -1; -} - -// Find a wxMenuItem using its id. Recurses down into sub-menus -static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id) -{ - wxMenuItem* result = menu->FindItem(id); - - wxNode *node = ((wxMenu *)menu)->GetItems().First(); // const_cast - while ( node && result == NULL ) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->IsSubMenu()) - { - result = FindMenuItemByIdRecursive( item->GetSubMenu(), id ); - } - node = node->Next(); - } - - return result; -} - -wxMenuItem* wxMenuBar::FindItem( int id ) const -{ - wxMenuItem* result = 0; - wxNode *node = m_menus.First(); - while (node && result == 0) - { - wxMenu *menu = (wxMenu*)node->Data(); - result = FindMenuItemByIdRecursive( menu, id ); - node = node->Next(); - } - - return result; -} - -void wxMenuBar::Check( int id, bool check ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::Check: no such item") ); - - item->Check(check); -} - -bool wxMenuBar::IsChecked( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, FALSE, _T("wxMenuBar::IsChecked: no such item") ); - - return item->IsChecked(); -} - -void wxMenuBar::Enable( int id, bool enable ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::Enable: no such item") ); - - item->Enable(enable); -} - -bool wxMenuBar::IsEnabled( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, FALSE, _T("wxMenuBar::IsEnabled: no such item") ); - - return item->IsEnabled(); -} - -wxString wxMenuBar::GetLabel( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, _T(""), _T("wxMenuBar::GetLabel: no such item") ); - - return item->GetText(); -} - -void wxMenuBar::SetLabel( int id, const wxString &label ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::SetLabel: no such item") ); - - item->SetText( label ); -} - -void wxMenuBar::EnableTop( int pos, bool flag ) -{ - wxNode *node = m_menus.Nth( pos ); - - wxCHECK_RET( node, _T("menu not found") ); - - wxMenu* menu = (wxMenu*)node->Data(); - - if (menu->m_owner) - gtk_widget_set_sensitive( menu->m_owner, flag ); -} - -wxString wxMenuBar::GetLabelTop( int pos ) const -{ - wxNode *node = m_menus.Nth( pos ); - - wxCHECK_MSG( node, _T("invalid"), _T("menu not found") ); - - wxMenu* menu = (wxMenu*)node->Data(); - - return menu->GetTitle(); -} - -void wxMenuBar::SetLabelTop( int pos, const wxString& label ) -{ - wxNode *node = m_menus.Nth( pos ); - - wxCHECK_RET( node, _T("menu not found") ); - - wxMenu* menu = (wxMenu*)node->Data(); - - menu->SetTitle( label ); -} - -void wxMenuBar::SetHelpString( int id, const wxString& helpString ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::SetHelpString: no such item") ); - - item->SetHelp( helpString ); -} - -wxString wxMenuBar::GetHelpString( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, _T(""), _T("wxMenuBar::GetHelpString: no such item") ); - - return item->GetHelp(); -} - -//----------------------------------------------------------------------------- -// "activate" -//----------------------------------------------------------------------------- - -static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int id = menu->FindMenuIdByMenuItem(widget); - - /* should find it for normal (not popup) menu */ - wxASSERT( (id != -1) || (menu->GetInvokingWindow() != NULL) ); - - if (!menu->IsEnabled(id)) - return; - - wxMenuItem* item = menu->FindItem( id ); - wxCHECK_RET( item, _T("error in menu item callback") ); - - if (item->IsCheckable()) - { - if (item->GetCheckedFlag() == item->IsChecked()) - { - /* the menu item has been checked by calling wxMenuItem->Check() */ - return; - } - else - { - /* the user pressed on the menu item -> report */ - item->SetCheckedFlag(item->IsChecked()); /* make consistent again */ - } - } - - wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, id ); - event.SetEventObject( menu ); - event.SetInt(id ); - - if (menu->GetCallback()) - { - (void) (*(menu->GetCallback())) (*menu, event); - return; - } - - if (menu->GetEventHandler()->ProcessEvent(event)) - return; - - wxWindow *win = menu->GetInvokingWindow(); - if (win) - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "select" -//----------------------------------------------------------------------------- - -static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int id = menu->FindMenuIdByMenuItem(widget); - - wxASSERT( id != -1 ); // should find it! - - if (!menu->IsEnabled(id)) - return; - - wxMenuEvent event( wxEVT_MENU_HIGHLIGHT, id ); - event.SetEventObject( menu ); - -/* wxMSW doesn't call callback here either - - if (menu->m_callback) - { - (void) (*(menu->m_callback)) (*menu, event); - return; - } -*/ - - if (menu->GetEventHandler()->ProcessEvent(event)) - return; - - wxWindow *win = menu->GetInvokingWindow(); - if (win) win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "deselect" -//----------------------------------------------------------------------------- - -static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int id = menu->FindMenuIdByMenuItem(widget); - - wxASSERT( id != -1 ); // should find it! - - if (!menu->IsEnabled(id)) - return; - - wxMenuEvent event( wxEVT_MENU_HIGHLIGHT, -1 ); - event.SetEventObject( menu ); - - if (menu->GetEventHandler()->ProcessEvent(event)) - return; - - wxWindow *win = menu->GetInvokingWindow(); - if (win) - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxMenuItem -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMenuItem,wxObject) - -wxMenuItem::wxMenuItem() -{ - m_id = ID_SEPARATOR; - m_isCheckMenu = FALSE; - m_isChecked = FALSE; - m_isEnabled = TRUE; - m_subMenu = (wxMenu *) NULL; - m_menuItem = (GtkWidget *) NULL; -} - -// it's valid for this function to be called even if m_menuItem == NULL -void wxMenuItem::SetName( const wxString& str ) -{ - /* '\t' is the deliminator indicating a hot key */ - m_text = _T(""); - const wxChar *pc = str; - for (; (*pc != _T('\0')) && (*pc != _T('\t')); pc++ ) - { - if (*pc == _T('&')) - { -#if (GTK_MINOR_VERSION > 0) - m_text << _T('_'); - } else - if (*pc == _T('/')) /* we have to filter out slashes ... */ - { - m_text << _T('\\'); /* ... and replace them with back slashes */ -#endif - } - else - m_text << *pc; - } - - /* only GTK 1.2 knows about hot keys */ - m_hotKey = _T(""); -#if (GTK_MINOR_VERSION > 0) - if(*pc == _T('\t')) - { - pc++; - m_hotKey = pc; - } -#endif - - if (m_menuItem) - { - GtkLabel *label = GTK_LABEL( GTK_BIN(m_menuItem)->child ); - gtk_label_set( label, m_text.mb_str()); - } -} - -void wxMenuItem::Check( bool check ) -{ - wxCHECK_RET( m_menuItem, _T("invalid menu item") ); - - wxCHECK_RET( IsCheckable(), _T("Can't check uncheckable item!") ) - - if (check == m_isChecked) return; - - m_isChecked = check; - gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check ); -} - -void wxMenuItem::Enable( bool enable ) -{ - wxCHECK_RET( m_menuItem, _T("invalid menu item") ); - - gtk_widget_set_sensitive( m_menuItem, enable ); - m_isEnabled = enable; -} - -bool wxMenuItem::IsChecked() const -{ - wxCHECK_MSG( m_menuItem, FALSE, _T("invalid menu item") ); - - wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item! - - bool bIsChecked = ((GtkCheckMenuItem*)m_menuItem)->active != 0; - - return bIsChecked; -} - -//----------------------------------------------------------------------------- -// wxMenu -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler) - -wxMenu::wxMenu( const wxString& title, const wxFunction func ) -{ - m_title = title; - m_items.DeleteContents( TRUE ); - m_invokingWindow = (wxWindow *) NULL; - -#if (GTK_MINOR_VERSION > 0) - m_accel = gtk_accel_group_new(); - m_factory = gtk_item_factory_new( GTK_TYPE_MENU, "
", m_accel ); - m_menu = gtk_item_factory_get_widget( m_factory, "
" ); -#else - m_menu = gtk_menu_new(); // Do not show! -#endif - - m_callback = func; - m_eventHandler = this; - m_clientData = (void*) NULL; - - if (m_title.IsNull()) m_title = _T(""); - if (m_title != _T("")) - { - Append(-2, m_title); - AppendSeparator(); - } - - m_owner = (GtkWidget*) NULL; -} - -wxMenu::~wxMenu() -{ - /* how do we delete an item-factory ? */ -} - -void wxMenu::SetTitle( const wxString& title ) -{ - // TODO Waiting for something better - m_title = title; -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::AppendSeparator() -{ - wxMenuItem *mitem = new wxMenuItem(); - mitem->SetId(ID_SEPARATOR); - -#if (GTK_MINOR_VERSION > 0) - GtkItemFactoryEntry entry; - entry.path = "/sep"; - entry.callback = (GtkItemFactoryCallback) NULL; - entry.callback_action = 0; - entry.item_type = ""; - entry.accelerator = (gchar*) NULL; - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* this will be wrong for more than one separator. do we care? */ - GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, "
/sep" ); -#else - GtkWidget *menuItem = gtk_menu_item_new(); - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); -#endif - - mitem->SetMenuItem(menuItem); - m_items.Append( mitem ); -} - -static char* GetHotKey( const wxString &hotkey, char *hotbuf ) -{ - if (hotkey.IsEmpty()) return (char*) NULL; - - switch (hotkey[0]) - { - case _T('a'): /* Alt */ - case _T('A'): - case _T('m'): /* Meta */ - case _T('M'): - { - strcpy( hotbuf, "" ); - wxString last = hotkey.Right(1); - strcat( hotbuf, last.mb_str() ); - return hotbuf; - } - case _T('c'): /* Ctrl */ - case _T('C'): - case _T('s'): /* Strg, yeah man, I'm German */ - case _T('S'): - { - strcpy( hotbuf, "" ); - wxString last = hotkey.Right(1); - strcat( hotbuf, last.mb_str() ); - return hotbuf; - } - case _T('F'): /* function keys */ - { - strcpy( hotbuf, hotkey.mb_str() ); - return hotbuf; - } - default: - { - } - } - return (char*) NULL; -} - -void wxMenu::Append( int id, const wxString &item, const wxString &helpStr, bool checkable ) -{ - wxMenuItem *mitem = new wxMenuItem(); - mitem->SetId(id); - mitem->SetText(item); - mitem->SetHelp(helpStr); - mitem->SetCheckable(checkable); - -#if (GTK_MINOR_VERSION > 0) - /* text has "_" instead of "&" after mitem->SetText() */ - wxString text( mitem->GetText() ); - - /* local buffer in multibyte form */ - char buf[200]; - strcpy( buf, "/" ); - strcat( buf, text.mb_str() ); - - GtkItemFactoryEntry entry; - entry.path = buf; - entry.callback = (GtkItemFactoryCallback) gtk_menu_clicked_callback; - entry.callback_action = 0; - if (checkable) - entry.item_type = ""; - else - entry.item_type = ""; - - char hotbuf[50]; - entry.accelerator = GetHotKey( mitem->GetHotKey(), hotbuf ); - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* in order to get the pointer to the item we need the item text _without_ underscores */ - wxString s = _T("
/"); - for ( const wxChar *pc = text; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('_')) pc++; /* skip it */ - s << *pc; - } - - GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, s.mb_str() ); - -#else - - GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label( mitem->GetText().mb_str() ) - : gtk_menu_item_new_with_label( mitem->GetText().mb_str() ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "activate", - GTK_SIGNAL_FUNC(gtk_menu_clicked_callback), - (gpointer)this ); - - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); - -#endif - - gtk_signal_connect( GTK_OBJECT(menuItem), "select", - GTK_SIGNAL_FUNC(gtk_menu_hilight_callback), - (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "deselect", - GTK_SIGNAL_FUNC(gtk_menu_nolight_callback), - (gpointer)this ); - - mitem->SetMenuItem(menuItem); - - m_items.Append( mitem ); -} - -void wxMenu::Append( int id, const wxString &item, wxMenu *subMenu, const wxString &helpStr ) -{ - wxMenuItem *mitem = new wxMenuItem(); - mitem->SetId(id); - mitem->SetText(item); - mitem->SetHelp(helpStr); - -#if (GTK_MINOR_VERSION > 0) - /* text has "_" instead of "&" after mitem->SetText() */ - wxString text( mitem->GetText() ); - - /* local buffer in multibyte form */ - char buf[200]; - strcpy( buf, "/" ); - strcat( buf, text.mb_str() ); - - GtkItemFactoryEntry entry; - entry.path = buf; - entry.callback = (GtkItemFactoryCallback) 0; - entry.callback_action = 0; - entry.item_type = ""; - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* in order to get the pointer to the item we need the item text _without_ underscores */ - wxString s = _T("
/"); - for ( const wxChar *pc = text; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('_')) pc++; /* skip it */ - s << *pc; - } - - GtkWidget *menuItem = gtk_item_factory_get_item( m_factory, s.mb_str() ); - -#else - - GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText().mbc_str()); - - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); - -#endif - - gtk_signal_connect( GTK_OBJECT(menuItem), "select", - GTK_SIGNAL_FUNC(gtk_menu_hilight_callback), - (gpointer*)this ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "deselect", - GTK_SIGNAL_FUNC(gtk_menu_nolight_callback), - (gpointer*)this ); - - gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu ); - - mitem->SetMenuItem(menuItem); - mitem->SetSubMenu(subMenu); - - m_items.Append( mitem ); -} - -void wxMenu::Append( wxMenuItem *item ) -{ - m_items.Append( item ); - - GtkWidget *menuItem = (GtkWidget*) NULL; - - if (item->IsSeparator()) - menuItem = gtk_menu_item_new(); - else if (item->IsSubMenu()) - menuItem = gtk_menu_item_new_with_label(item->GetText().mbc_str()); - else - menuItem = item->IsCheckable() ? gtk_check_menu_item_new_with_label(item->GetText().mbc_str()) - : gtk_menu_item_new_with_label(item->GetText().mbc_str()); - - if (!item->IsSeparator()) - { - gtk_signal_connect( GTK_OBJECT(menuItem), "select", - GTK_SIGNAL_FUNC(gtk_menu_hilight_callback), - (gpointer*)this ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "deselect", - GTK_SIGNAL_FUNC(gtk_menu_nolight_callback), - (gpointer*)this ); - - if (!item->IsSubMenu()) - { - gtk_signal_connect( GTK_OBJECT(menuItem), "activate", - GTK_SIGNAL_FUNC(gtk_menu_clicked_callback), - (gpointer*)this ); - } - } - - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); - item->SetMenuItem(menuItem); -} - -int wxMenu::FindItem( const wxString itemString ) const -{ - wxString s = _T(""); - for ( const wxChar *pc = itemString; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('&')) - { - pc++; /* skip it */ -#if (GTK_MINOR_VERSION > 0) - s << _T('_'); -#endif - } - s << *pc; - } - - wxNode *node = m_items.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->GetText() == s) - { - return item->GetId(); - } - node = node->Next(); - } - - return wxNOT_FOUND; -} - -void wxMenu::Enable( int id, bool enable ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::Enable: no such item") ); - - item->Enable(enable); -} - -bool wxMenu::IsEnabled( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, FALSE, _T("wxMenu::IsEnabled: no such item") ); - - return item->IsEnabled(); -} - -void wxMenu::Check( int id, bool enable ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::Check: no such item") ); - - item->Check(enable); -} - -bool wxMenu::IsChecked( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, FALSE, _T("wxMenu::IsChecked: no such item") ); - - return item->IsChecked(); -} - -void wxMenu::SetLabel( int id, const wxString &label ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::SetLabel: no such item") ); - - item->SetText(label); -} - -wxString wxMenu::GetLabel( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, _T(""), _T("wxMenu::GetLabel: no such item") ); - - return item->GetText(); -} - -void wxMenu::SetHelpString( int id, const wxString& helpString ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::SetHelpString: no such item") ); - - item->SetHelp( helpString ); -} - -wxString wxMenu::GetHelpString( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, _T(""), _T("wxMenu::GetHelpString: no such item") ); - - return item->GetHelp(); -} - -int wxMenu::FindMenuIdByMenuItem( GtkWidget *menuItem ) const -{ - wxNode *node = m_items.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->GetMenuItem() == menuItem) - return item->GetId(); - node = node->Next(); - } - - return wxNOT_FOUND; -} - -wxMenuItem *wxMenu::FindItem(int id) const -{ - wxNode *node = m_items.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->GetId() == id) - { - return item; - } - node = node->Next(); - } - - /* Not finding anything here can be correct - * when search the entire menu system for - * an entry -> no error message. */ - - return (wxMenuItem *) NULL; -} - -void wxMenu::SetInvokingWindow( wxWindow *win ) -{ - m_invokingWindow = win; -} - -wxWindow *wxMenu::GetInvokingWindow() -{ - return m_invokingWindow; -} - -// Update a menu and all submenus recursively. source is the object that has -// the update event handlers defined for it. If NULL, the menu or associated -// window will be used. -void wxMenu::UpdateUI(wxEvtHandler* source) -{ - if (!source && GetInvokingWindow()) - source = GetInvokingWindow()->GetEventHandler(); - if (!source) - source = GetEventHandler(); - if (!source) - source = this; - - wxNode* node = GetItems().First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if ( !item->IsSeparator() ) - { - wxWindowID id = item->GetId(); - wxUpdateUIEvent event(id); - event.SetEventObject( source ); - - if (source->ProcessEvent(event)) - { - if (event.GetSetText()) - SetLabel(id, event.GetText()); - if (event.GetSetChecked()) - Check(id, event.GetChecked()); - if (event.GetSetEnabled()) - Enable(id, event.GetEnabled()); - } - - if (item->GetSubMenu()) - item->GetSubMenu()->UpdateUI(source); - } - node = node->Next(); - } -} - diff --git a/src/gtk/minifram.cpp b/src/gtk/minifram.cpp deleted file mode 100644 index a749f18a83..0000000000 --- a/src/gtk/minifram.cpp +++ /dev/null @@ -1,320 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -#include "wx/minifram.h" -#include "wx/dcscreen.h" - -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkx.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; - -//----------------------------------------------------------------------------- -// local functions -//----------------------------------------------------------------------------- - -/* draw XOR rectangle when moving mine frame around */ - -static void DrawFrame( GtkWidget *widget, int x, int y, int w, int h ) -{ - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( widget->window, &org_x, &org_y ); - x += org_x; - y += org_y; - - GdkGC *gc = gdk_gc_new( GDK_ROOT_PARENT() ); - gdk_gc_set_subwindow( gc, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_function( gc, GDK_INVERT ); - - gdk_draw_rectangle( GDK_ROOT_PARENT(), gc, FALSE, x, y, w, h ); - gdk_gc_unref( gc ); -} - -//----------------------------------------------------------------------------- -// "expose_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (gdk_event->count > 0) return; - - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - 0, 0, - win->m_width, win->m_height ); - - if (!win->m_title.IsEmpty() && - ((win->GetWindowStyle() & wxCAPTION) || - (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) || - (win->GetWindowStyle() & wxTINY_CAPTION_VERT))) - { - GdkGC *gc = gdk_gc_new( widget->window ); - GdkFont *font = wxSMALL_FONT->GetInternalFont(1.0); - int x = 2; - if (win->GetWindowStyle() & wxSYSTEM_MENU) x = 18; - - gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] ); - gdk_draw_rectangle( widget->window, gc, TRUE, - x, - 3, - win->m_width - 4 - x, - font->ascent + font->descent+1 ); - - gdk_gc_set_foreground( gc, &widget->style->white ); - gdk_draw_string( widget->window, font, gc, - x+2, - 3+font->ascent, - win->m_title.mb_str() ); - - gdk_gc_unref( gc ); - } -} - -//----------------------------------------------------------------------------- -// "draw" of m_mainWidget -//----------------------------------------------------------------------------- - -static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - 0, 0, - win->m_width, win->m_height ); - - if (!win->m_title.IsEmpty() && - ((win->GetWindowStyle() & wxCAPTION) || - (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) || - (win->GetWindowStyle() & wxTINY_CAPTION_VERT))) - { - GdkGC *gc = gdk_gc_new( widget->window ); - GdkFont *font = wxSMALL_FONT->GetInternalFont(1.0); - int x = 2; - if (win->GetWindowStyle() & wxSYSTEM_MENU) x = 17; - - gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] ); - gdk_draw_rectangle( widget->window, gc, TRUE, - x, - 3, - win->m_width - 4 - x, - font->ascent + font->descent+1 ); - - gdk_gc_set_foreground( gc, &widget->style->white ); - gdk_draw_string( widget->window, font, gc, - x+2, - 3+font->ascent, - win->m_title.mb_str() ); - - gdk_gc_unref( gc ); - } -} - -//----------------------------------------------------------------------------- -// "button_press_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (win->m_isDragging) return TRUE; - - gdk_pointer_grab( widget->window, FALSE, - (GdkEventMask) - (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK | - GDK_BUTTON_MOTION_MASK | - GDK_BUTTON1_MOTION_MASK), - (GdkWindow *) NULL, - (GdkCursor *) NULL, - GDK_CURRENT_TIME ); - - win->m_diffX = (int)gdk_event->x; - win->m_diffY = (int)gdk_event->y; - DrawFrame( widget, 0, 0, win->m_width, win->m_height ); - win->m_oldX = 0; - win->m_oldY = 0; - - win->m_isDragging = TRUE; - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (!win->m_isDragging) return TRUE; - - win->m_isDragging = FALSE; - - int x = (int)gdk_event->x; - int y = (int)gdk_event->y; - - DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height ); - gdk_pointer_ungrab ( GDK_CURRENT_TIME ); - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( widget->window, &org_x, &org_y ); - x += org_x - win->m_diffX; - y += org_y - win->m_diffY; - win->m_x = x; - win->m_y = y; - gtk_widget_set_uposition( win->m_widget, x, y ); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "motion_notify_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (!win->m_isDragging) return TRUE; - - if (gdk_event->is_hint) - { - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - gdk_event->x = x; - gdk_event->y = y; - gdk_event->state = state; - } - - DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height ); - win->m_oldX = (int)gdk_event->x - win->m_diffX; - win->m_oldY = (int)gdk_event->y - win->m_diffY; - DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height ); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "clicked" of X system button -//----------------------------------------------------------------------------- - -static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - mf->Close(); -} - -//----------------------------------------------------------------------------- -// wxMiniFrame -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame,wxFrame) - -bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - style = style | wxSIMPLE_BORDER; - - if ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)) - m_miniTitle = 13; - - m_miniEdge = 3; - m_isDragging = FALSE; - m_oldX = -1; - m_oldY = -1; - m_diffX = 0; - m_diffY = 0; - - wxFrame::Create( parent, id, title, pos, size, style, name ); - - if ((style & wxSYSTEM_MENU) && - ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT))) - { - GtkWidget *close_button = gtk_button_new_with_label( "x" ); - - gtk_myfixed_put( GTK_MYFIXED(m_mainWidget), - close_button, - 4, 4, 12, 11 ); - - gtk_widget_show( close_button ); - - gtk_signal_connect( GTK_OBJECT(close_button), "clicked", - GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); - } - - /* these are called when the borders are drawn */ - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_own_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "draw", - GTK_SIGNAL_FUNC(gtk_window_own_draw_callback), (gpointer)this ); - - /* these are required for dragging the mini frame around */ - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "button_press_event", - GTK_SIGNAL_FUNC(gtk_window_button_press_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "button_release_event", - GTK_SIGNAL_FUNC(gtk_window_button_release_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "motion_notify_event", - GTK_SIGNAL_FUNC(gtk_window_motion_notify_callback), (gpointer)this ); - - return TRUE; -} diff --git a/src/gtk/notebook.cpp b/src/gtk/notebook.cpp deleted file mode 100644 index 6523a5a5cb..0000000000 --- a/src/gtk/notebook.cpp +++ /dev/null @@ -1,625 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -#include "wx/notebook.h" -#include "wx/panel.h" -#include "wx/utils.h" -#include "wx/imaglist.h" -#include "wx/intl.h" -#include "wx/log.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" -#include "gdk/gdkkeysyms.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// debug -//----------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -extern void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ); - -#endif - -//----------------------------------------------------------------------------- -// wxNotebookPage -//----------------------------------------------------------------------------- - -class wxNotebookPage: public wxObject -{ -public: - wxNotebookPage() - { - m_text = ""; - m_image = -1; - m_page = (GtkNotebookPage *) NULL; - m_client = (wxWindow *) NULL; - m_box = (GtkWidget *) NULL; - } - - wxString m_text; - int m_image; - GtkNotebookPage *m_page; - GtkLabel *m_label; - wxWindow *m_client; - GtkWidget *m_box; // in which the label and image are packed -}; - -//----------------------------------------------------------------------------- -// "switch_page" -//----------------------------------------------------------------------------- - -static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget), - GtkNotebookPage *WXUNUSED(page), - gint page, - wxNotebook *notebook ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - int old = notebook->GetSelection(); - - wxNotebookEvent event1( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, - notebook->GetId(), page, old ); - event1.SetEventObject( notebook ); - - if ((notebook->GetEventHandler()->ProcessEvent( event1 )) && - !event1.IsAllowed() ) - { - /* program doesn't allow the page change */ - gtk_signal_emit_stop_by_name( GTK_OBJECT(notebook->m_widget), "switch_page" ); - return; - } - - wxNotebookEvent event2( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, - notebook->GetId(), page, old ); - event2.SetEventObject( notebook ); - notebook->GetEventHandler()->ProcessEvent( event2 ); -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if ((win->m_x == alloc->x) && - (win->m_y == alloc->y) && - (win->m_width == alloc->width) && - (win->m_height == alloc->height)) - { - return; - } - - win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height ); - - if (win->GetAutoLayout()) win->Layout(); -} - -//----------------------------------------------------------------------------- -// "key_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - - if (!notebook->m_hasVMT) return FALSE; - - /* this code makes jumping down from the handles of the notebooks - to the actual items in the visible notebook page possible with - the down-arrow key */ - - if (gdk_event->keyval != GDK_Down) return FALSE; - - if (notebook != notebook->FindFocus()) return FALSE; - - if (notebook->m_pages.GetCount() == 0) return FALSE; - - wxNode *node = notebook->m_pages.Nth( notebook->GetSelection() ); - - if (!node) return FALSE; - - wxNotebookPage *page = (wxNotebookPage*) node->Data(); - - // don't let others the key event - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" ); - - page->m_client->SetFocus(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// InsertChild callback for wxNotebook -//----------------------------------------------------------------------------- - -static void wxInsertChildInNotebook( wxNotebook* WXUNUSED(parent), wxWindow* WXUNUSED(child) ) -{ - /* we don't do anything here but pray */ -} - -//----------------------------------------------------------------------------- -// wxNotebook -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxControl) - -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -END_EVENT_TABLE() - -void wxNotebook::Init() -{ - m_imageList = (wxImageList *) NULL; - m_pages.DeleteContents( TRUE ); - m_lastSelection = -1; -} - -wxNotebook::wxNotebook() -{ - Init(); -} - -wxNotebook::wxNotebook( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - Init(); - Create( parent, id, pos, size, style, name ); -} - -wxNotebook::~wxNotebook() -{ - /* don't generate change page events any more */ - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this ); - - DeleteAllPages(); -} - -bool wxNotebook::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - m_insertCallback = (wxInsertChildFunction)wxInsertChildInNotebook; - - PreCreation( parent, id, pos, size, style, name ); - - m_widget = gtk_notebook_new(); - -#ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxNotebook::m_widget"), name ); -#endif - - gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page", - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer)this ); - - m_parent->DoAddChild( this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "key_press_event", - GTK_SIGNAL_FUNC(gtk_notebook_key_press_callback), (gpointer)this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -int wxNotebook::GetSelection() const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); - - GList *pages = GTK_NOTEBOOK(m_widget)->children; - - if (g_list_length(pages) == 0) return -1; - - GtkNotebook *notebook = GTK_NOTEBOOK(m_widget); - - if (notebook->cur_page == NULL) return m_lastSelection; - - return g_list_index( pages, (gpointer)(notebook->cur_page) ); -} - -int wxNotebook::GetPageCount() const -{ - return (int) g_list_length( GTK_NOTEBOOK(m_widget)->children ); -} - -int wxNotebook::GetRowCount() const -{ - return 1; -} - -wxString wxNotebook::GetPageText( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - if (nb_page) - return nb_page->m_text; - else - return ""; -} - -int wxNotebook::GetPageImage( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - if (nb_page) - return nb_page->m_image; - else - return -1; -} - -wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, _T("invalid notebook") ); - - wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, _T("invalid notebook index") ); - - wxNode *node = m_pages.Nth( page ); - - return (wxNotebookPage *) node->Data(); -} - -int wxNotebook::SetSelection( int page ) -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); - - wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, _T("invalid notebook index") ); - - int selOld = GetSelection(); - - gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), page ); - - return selOld; -} - -void wxNotebook::AdvanceSelection( bool forward ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid notebook") ); - - int sel = GetSelection(); - int max = GetPageCount(); - - if (forward) - SetSelection( sel == max ? 0 : sel + 1 ); - else - SetSelection( sel == 0 ? max-1 : sel - 1 ); -} - -void wxNotebook::SetImageList( wxImageList* imageList ) -{ - m_imageList = imageList; -} - -bool wxNotebook::SetPageText( int page, const wxString &text ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - - wxCHECK_MSG( nb_page, FALSE, _T("SetPageText: invalid page index") ); - - nb_page->m_text = text; - - gtk_label_set( nb_page->m_label, nb_page->m_text.mbc_str() ); - - return TRUE; -} - -bool wxNotebook::SetPageImage( int page, int image ) -{ - /* HvdH 28-12-98: now it works, but it's a bit of a kludge */ - - wxNotebookPage* nb_page = GetNotebookPage(page); - - if (!nb_page) return FALSE; - - /* Optimization posibility: return immediately if image unchanged. - * Not enabled because it may break existing (stupid) code that - * manipulates the imagelist to cycle images */ - - /* if (image == nb_page->m_image) return TRUE; */ - - /* For different cases: - 1) no image -> no image - 2) image -> no image - 3) no image -> image - 4) image -> image */ - - if (image == -1 && nb_page->m_image == -1) - return TRUE; /* Case 1): Nothing to do. */ - - GtkWidget *pixmapwid = (GtkWidget*) NULL; - - if (nb_page->m_image != -1) - { - /* Case 2) or 4). There is already an image in the gtkhbox. Let's find it */ - - GList *child = gtk_container_children(GTK_CONTAINER(nb_page->m_box)); - while (child) - { - if (GTK_IS_PIXMAP(child->data)) - { - pixmapwid = GTK_WIDGET(child->data); - break; - } - child = child->next; - } - - /* We should have the pixmap widget now */ - wxASSERT(pixmapwid != NULL); - - if (image == -1) - { - /* If there's no new widget, just remove the old from the box */ - gtk_container_remove(GTK_CONTAINER(nb_page->m_box), pixmapwid); - nb_page->m_image = -1; - - return TRUE; /* Case 2) */ - } - } - - /* Only cases 3) and 4) left */ - wxASSERT( m_imageList != NULL ); /* Just in case */ - - /* Construct the new pixmap */ - const wxBitmap *bmp = m_imageList->GetBitmap(image); - GdkPixmap *pixmap = bmp->GetPixmap(); - GdkBitmap *mask = (GdkBitmap*) NULL; - if ( bmp->GetMask() ) - { - mask = bmp->GetMask()->GetBitmap(); - } - - if (pixmapwid == NULL) - { - /* Case 3) No old pixmap. Create a new one and prepend it to the hbox */ - pixmapwid = gtk_pixmap_new (pixmap, mask ); - - /* CHECKME: Are these pack flags okay? */ - gtk_box_pack_start(GTK_BOX(nb_page->m_box), pixmapwid, FALSE, FALSE, 3); - gtk_widget_show(pixmapwid); - } - else - { - /* Case 4) Simply replace the pixmap */ - gtk_pixmap_set(GTK_PIXMAP(pixmapwid), pixmap, mask); - } - - nb_page->m_image = image; - - return TRUE; -} - -void wxNotebook::SetPageSize( const wxSize &WXUNUSED(size) ) -{ - wxFAIL_MSG( _T("wxNotebook::SetPageSize not implemented") ); -} - -void wxNotebook::SetPadding( const wxSize &WXUNUSED(padding) ) -{ - wxFAIL_MSG( _T("wxNotebook::SetPadding not implemented") ); -} - -void wxNotebook::SetTabSize(const wxSize& WXUNUSED(sz)) -{ - wxFAIL_MSG( _T("wxNotebook::SetTabSize not implemented") ); -} - -bool wxNotebook::DeleteAllPages() -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); - - while (m_pages.GetCount() > 0) - DeletePage( m_pages.GetCount()-1 ); - - return TRUE; -} - -bool wxNotebook::DeletePage( int page ) -{ - wxNotebookPage* nb_page = GetNotebookPage(page); - if (!nb_page) return FALSE; - - /* GTK sets GtkNotebook.cur_page to NULL before sending - the switvh page event */ - m_lastSelection = GetSelection(); - - nb_page->m_client->Destroy(); - m_pages.DeleteObject( nb_page ); - - m_lastSelection = -1; - - return TRUE; -} - -bool wxNotebook::RemovePage( int page ) -{ - wxNotebookPage* nb_page = GetNotebookPage(page); - - if (!nb_page) return FALSE; - - gtk_notebook_remove_page( GTK_NOTEBOOK(m_widget), page ); - - m_pages.DeleteObject( nb_page ); - - return TRUE; -} - -bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text, - bool select, int imageId ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); - - wxCHECK_MSG( win->GetParent() == this, FALSE, - _T("Can't add a page whose parent is not the notebook!") ); - - /* don't receive switch page during addition */ - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this ); - - GtkNotebook *notebook = GTK_NOTEBOOK(m_widget); - - wxNotebookPage *page = new wxNotebookPage(); - - if (position < 0) - m_pages.Append( page ); - else - m_pages.Insert( m_pages.Nth( position ), page ); - - page->m_client = win; - - page->m_box = gtk_hbox_new( FALSE, 0 ); - gtk_container_border_width( GTK_CONTAINER(page->m_box), 2 ); - - if (position < 0) - gtk_notebook_append_page( notebook, win->m_widget, page->m_box ); - else - gtk_notebook_insert_page( notebook, win->m_widget, page->m_box, position ); - - page->m_page = GTK_NOTEBOOK_PAGE( g_list_last(notebook->children)->data ); - - gtk_signal_connect( GTK_OBJECT(win->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)win ); - - /* set the label image */ - page->m_image = imageId; - - if (imageId != -1) - { - wxASSERT( m_imageList != NULL ); - - const wxBitmap *bmp = m_imageList->GetBitmap(imageId); - GdkPixmap *pixmap = bmp->GetPixmap(); - GdkBitmap *mask = (GdkBitmap*) NULL; - if ( bmp->GetMask() ) - { - mask = bmp->GetMask()->GetBitmap(); - } - - GtkWidget *pixmapwid = gtk_pixmap_new (pixmap, mask ); - - gtk_box_pack_start(GTK_BOX(page->m_box), pixmapwid, FALSE, FALSE, 3); - - gtk_widget_show(pixmapwid); - } - - /* set the label text */ - page->m_text = text; - if (page->m_text.IsEmpty()) page->m_text = _T(""); - - page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) ); - gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 ); - - /* show the label */ - gtk_widget_show( GTK_WIDGET(page->m_label) ); - - if (select && (m_pages.GetCount() > 1)) - { - if (position < 0) - SetSelection( GetPageCount()-1 ); - else - SetSelection( position ); - } - - gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page", - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer)this ); - - return TRUE; -} - -bool wxNotebook::AddPage(wxWindow* win, const wxString& text, - bool select, int imageId) -{ - return InsertPage( -1, win, text, select, imageId ); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if (event.IsWindowChange()) - AdvanceSelection( event.GetDirection() ); - else - event.Skip(); -} - -wxWindow *wxNotebook::GetPage( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - if (!nb_page) - return (wxWindow *) NULL; - else - return nb_page->m_client; -} - -// override these 2 functions to do nothing: everything is done in OnSize -void wxNotebook::SetConstraintSizes( bool WXUNUSED(recurse) ) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase( int WXUNUSED(nPhase) ) -{ - return TRUE; -} - -void wxNotebook::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - -bool wxNotebook::IsOwnGtkWindow( GdkWindow *window ) -{ - return ((m_widget->window == window) || - (GTK_NOTEBOOK(m_widget)->panel == window)); -} - -//----------------------------------------------------------------------------- -// wxNotebookEvent -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) - diff --git a/src/gtk/palette.cpp b/src/gtk/palette.cpp deleted file mode 100644 index 37b7e4d3a4..0000000000 --- a/src/gtk/palette.cpp +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -class wxPaletteRefData: public wxObjectRefData -{ - public: - - wxPaletteRefData(void); - ~wxPaletteRefData(void); - - GdkColormap *m_colormap; -}; - -wxPaletteRefData::wxPaletteRefData() -{ - m_colormap = (GdkColormap *) NULL; -} - -wxPaletteRefData::~wxPaletteRefData() -{ - if (m_colormap) gdk_colormap_unref( m_colormap ); -} - -//----------------------------------------------------------------------------- - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxPalette,wxGDIObject) - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue ) -{ - m_refData = new wxPaletteRefData(); - Create( n, red, green, blue ); -} - -wxPalette::wxPalette( const wxPalette& palette ) -{ - Ref( palette ); -} - -wxPalette::~wxPalette() -{ -} - -wxPalette& wxPalette::operator = ( const wxPalette& palette ) -{ - if (*this == palette) return (*this); - Ref( palette ); - return *this; -} - -bool wxPalette::operator == ( const wxPalette& palette ) -{ - return m_refData == palette.m_refData; -} - -bool wxPalette::operator != ( const wxPalette& palette ) -{ - return m_refData != palette.m_refData; -} - -bool wxPalette::Ok(void) const -{ - return (m_refData != NULL); -} - -bool wxPalette::Create( int WXUNUSED(n), - const unsigned char *WXUNUSED(red), - const unsigned char *WXUNUSED(green), - const unsigned char *WXUNUSED(blue) ) -{ - wxFAIL_MSG(_T("not implemented")); - - return FALSE; -} - -int wxPalette::GetPixel( const unsigned char WXUNUSED(red), - const unsigned char WXUNUSED(green), - const unsigned char WXUNUSED(blue) ) const -{ - wxFAIL_MSG(_T("not implemented")); - - return 0; -} - -bool wxPalette::GetRGB( int WXUNUSED(pixel), - unsigned char *WXUNUSED(red), - unsigned char *WXUNUSED(green), - unsigned char *WXUNUSED(blue) ) const -{ - wxFAIL_MSG(_T("not implemented")); - - return 0; -} - diff --git a/src/gtk/pen.cpp b/src/gtk/pen.cpp deleted file mode 100644 index 1e2205e78d..0000000000 --- a/src/gtk/pen.cpp +++ /dev/null @@ -1,192 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/pen.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// wxPen -//----------------------------------------------------------------------------- - -class wxPenRefData: public wxObjectRefData -{ -public: - - wxPenRefData(void); - wxPenRefData(const wxPenRefData& data); - - int m_width; - int m_style; - int m_joinStyle; - int m_capStyle; - wxColour m_colour; -}; - -wxPenRefData::wxPenRefData() -{ - m_width = 1; - m_style = wxSOLID; - m_joinStyle = wxJOIN_ROUND; - m_capStyle = wxCAP_ROUND; -} - -wxPenRefData::wxPenRefData( const wxPenRefData& data ) -{ - m_style = data.m_style; - m_width = data.m_width; - m_joinStyle = data.m_joinStyle; - m_capStyle = data.m_capStyle; - m_colour = data.m_colour; -} - -//----------------------------------------------------------------------------- - -#define M_PENDATA ((wxPenRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxPen,wxGDIObject) - -wxPen::wxPen() -{ - if (wxThePenList) wxThePenList->AddPen( this ); -} - -wxPen::wxPen( const wxColour &colour, int width, int style ) -{ - m_refData = new wxPenRefData(); - M_PENDATA->m_width = width; - M_PENDATA->m_style = style; - M_PENDATA->m_colour = colour; - - if (wxThePenList) wxThePenList->AddPen( this ); -} - -wxPen::wxPen( const wxPen& pen ) -{ - Ref( pen ); - if (wxThePenList) wxThePenList->AddPen( this ); -} - -wxPen::~wxPen() -{ - if (wxThePenList) wxThePenList->RemovePen( this ); -} - -wxPen& wxPen::operator = ( const wxPen& pen ) -{ - if (*this == pen) return (*this); - Ref( pen ); - return *this; -} - -bool wxPen::operator == ( const wxPen& pen ) -{ - return m_refData == pen.m_refData; -} - -bool wxPen::operator != ( const wxPen& pen ) -{ - return m_refData != pen.m_refData; -} - -void wxPen::SetColour( const wxColour &colour ) -{ - Unshare(); - M_PENDATA->m_colour = colour; -} - -void wxPen::SetColour( int red, int green, int blue ) -{ - Unshare(); - M_PENDATA->m_colour.Set( red, green, blue ); -} - -void wxPen::SetCap( int capStyle ) -{ - Unshare(); - M_PENDATA->m_capStyle = capStyle; -} - -void wxPen::SetJoin( int joinStyle ) -{ - Unshare(); - M_PENDATA->m_joinStyle = joinStyle; -} - -void wxPen::SetStyle( int style ) -{ - Unshare(); - M_PENDATA->m_style = style; -} - -void wxPen::SetWidth( int width ) -{ - Unshare(); - M_PENDATA->m_width = width; -} - -int wxPen::GetCap() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_capStyle; -} - -int wxPen::GetJoin() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_joinStyle; -} - -int wxPen::GetStyle() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_style; -} - -int wxPen::GetWidth() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_width; -} - -wxColour &wxPen::GetColour() const -{ - wxCHECK_MSG( Ok(), wxNullColour, _T("invalid pen") ); - - return M_PENDATA->m_colour; -} - -bool wxPen::Ok() const -{ - return (m_refData != NULL); -} - -void wxPen::Unshare() -{ - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData( *(wxPenRefData*)m_refData ); - UnRef(); - m_refData = ref; - } -} - diff --git a/src/gtk/radiobox.cpp b/src/gtk/radiobox.cpp deleted file mode 100644 index 432496cd91..0000000000 --- a/src/gtk/radiobox.cpp +++ /dev/null @@ -1,518 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" -#include "wx/dialog.h" -#include "wx/frame.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRadioBox *rb ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!rb->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - if (rb->m_alreadySent) - { - rb->m_alreadySent = FALSE; - return; - } - - rb->m_alreadySent = TRUE; - - wxCommandEvent event( wxEVT_COMMAND_RADIOBOX_SELECTED, rb->GetId() ); - event.SetInt( rb->GetSelection() ); - event.SetString( rb->GetStringSelection() ); - event.SetEventObject( rb ); - rb->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxRadioBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl) - -BEGIN_EVENT_TABLE(wxRadioBox, wxControl) - EVT_SIZE(wxRadioBox::OnSize) -END_EVENT_TABLE() - -wxRadioBox::wxRadioBox() -{ -} - -bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint &pos, const wxSize &size, - int n, const wxString choices[], int majorDim, - long style, const wxValidator& validator, - const wxString &name ) -{ - m_alreadySent = FALSE; - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_frame_new( title.mbc_str() ); - - m_majorDim = majorDim; - - GtkRadioButton *m_radio = (GtkRadioButton*) NULL; - - GSList *radio_button_group = (GSList *) NULL; - for (int i = 0; i < n; i++) - { - if (i) radio_button_group = gtk_radio_button_group( GTK_RADIO_BUTTON(m_radio) ); - - m_radio = GTK_RADIO_BUTTON( gtk_radio_button_new_with_label( radio_button_group, choices[i].mbc_str() ) ); - - m_boxes.Append( (wxObject*) m_radio ); - - ConnectWidget( GTK_WIDGET(m_radio) ); - - if (!i) gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_radio), TRUE ); - - gtk_signal_connect( GTK_OBJECT(m_radio), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow), - GTK_WIDGET(m_radio), - m_x+10, m_y+10+(i*24), 10, 10 ); - } - - wxSize ls = LayoutItems(); - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = ls.x; - if (newSize.y == -1) newSize.y = ls.y; - SetSize( newSize.x, newSize.y ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetLabel( title ); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxRadioBox::~wxRadioBox() -{ - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - gtk_widget_destroy( button ); - node = node->Next(); - } -} - -void wxRadioBox::OnSize( wxSizeEvent &event ) -{ - LayoutItems(); - - event.Skip(); -} - -wxSize wxRadioBox::LayoutItems() -{ - int x = 7; - int y = 15; - - int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; - - wxSize res( 0, 0 ); - - if (m_windowStyle & wxRA_HORIZONTAL) - { - - for (int j = 0; j < m_majorDim; j++) - { - y = 15; - - int max_len = 0; - wxNode *node = m_boxes.Nth( j*num_per_major ); - for (int i1 = 0; i1< num_per_major; i1++) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child ); - GdkFont *font = m_widget->style->font; - int len = 22+gdk_string_measure( font, label->label ); - if (len > max_len) max_len = len; - - gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), button, m_x+x, m_y+y ); - y += 20; - - node = node->Next(); - if (!node) break; - } - - // we don't know the max_len before - - node = m_boxes.Nth( j*num_per_major ); - for (int i2 = 0; i2< num_per_major; i2++) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - gtk_myfixed_resize( GTK_MYFIXED(m_parent->m_wxwindow), button, max_len, 20 ); - - node = node->Next(); - if (!node) break; - } - - if (y > res.y) res.y = y; - - x += max_len + 2; - } - - res.x = x+4; - res.y += 9; - } - else - { - int max = 0; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkLabel *label = GTK_LABEL( button->child ); - - GdkFont *font = m_widget->style->font; - int len = 22+gdk_string_measure( font, label->label ); - if (len > max) max = len; - - node = node->Next(); - } - - node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - gtk_myfixed_set_size( GTK_MYFIXED(m_parent->m_wxwindow), button, m_x+x, m_y+y, max, 20 ); - x += max; - - node = node->Next(); - } - res.x = x+4; - res.y = 42; - } - - return res; -} - -bool wxRadioBox::Show( bool show ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobox") ); - - wxWindow::Show( show ); - - if ((m_windowStyle & wxNO_BORDER) != 0) - gtk_widget_hide( m_widget ); - - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - if (show) gtk_widget_show( button ); else gtk_widget_hide( button ); - - node = node->Next(); - } - - return TRUE; -} - -int wxRadioBox::FindString( const wxString &s ) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid radiobox") ); - - int count = 0; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkButton *button = GTK_BUTTON( node->Data() ); - - GtkLabel *label = GTK_LABEL( button->child ); - if (s == label->label) return count; - count++; - - node = node->Next(); - } - - return -1; -} - -void wxRadioBox::SetFocus() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - if (m_boxes.GetCount() == 0) return; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - if (button->active) - { - gtk_widget_grab_focus( GTK_WIDGET(button) ); - - return; - } - node = node->Next(); - } - -} - -void wxRadioBox::SetSelection( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( n ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - - gtk_toggle_button_set_state( button, 1 ); -} - -int wxRadioBox::GetSelection(void) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid radiobox") ); - - int count = 0; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - if (button->active) return count; - count++; - node = node->Next(); - } - - wxFAIL_MSG( _T("wxRadioBox none selected") ); - - return -1; -} - -wxString wxRadioBox::GetString( int n ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( n ); - - wxCHECK_MSG( node, _T(""), _T("radiobox wrong index") ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkLabel *label = GTK_LABEL( button->child ); - - return wxString( label->label ); -} - -wxString wxRadioBox::GetLabel( int item ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid radiobox") ); - - return GetString( item ); -} - -void wxRadioBox::SetLabel( const wxString& label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxControl::SetLabel( label ); - - gtk_frame_set_label( GTK_FRAME(m_widget), wxControl::GetLabel().mbc_str() ); -} - -void wxRadioBox::SetLabel( int item, const wxString& label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( item ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkLabel *g_label = GTK_LABEL( button->child ); - - gtk_label_set( g_label, label.mbc_str() ); -} - -void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) ) -{ - wxFAIL_MSG(_T("wxRadioBox::SetLabel not implemented.")); -} - -bool wxRadioBox::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkWidget *label = button->child; - gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); - gtk_widget_set_sensitive( label, enable ); - node = node->Next(); - } - - return TRUE; -} - -void wxRadioBox::Enable( int item, bool enable ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( item ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkWidget *label = button->child; - gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); - gtk_widget_set_sensitive( label, enable ); -} - -void wxRadioBox::Show( int item, bool show ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( item ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkWidget *button = GTK_WIDGET( node->Data() ); - - if (show) - gtk_widget_show( button ); - else - gtk_widget_hide( button ); -} - -wxString wxRadioBox::GetStringSelection(void) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid radiobox") ); - - wxNode *node = m_boxes.First(); - while (node) - { - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - if (button->active) - { - GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child ); - return label->label; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wxRadioBox none selected") ); - return _T(""); -} - -bool wxRadioBox::SetStringSelection( const wxString &s ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobox") ); - - int res = FindString( s ); - if (res == -1) return FALSE; - SetSelection( res ); - - return TRUE; -} - -int wxRadioBox::Number(void) const -{ - return m_boxes.Number(); -} - -int wxRadioBox::GetNumberOfRowsOrCols(void) const -{ - return 1; -} - -void wxRadioBox::SetNumberOfRowsOrCols( int WXUNUSED(n) ) -{ - wxFAIL_MSG(_T("wxRadioBox::SetNumberOfRowsOrCols not implemented.")); -} - -void wxRadioBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - - gtk_widget_set_style( m_widget, m_widgetStyle ); - - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *widget = GTK_WIDGET( node->Data() ); - gtk_widget_set_style( widget, m_widgetStyle ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - gtk_widget_set_style( button->child, m_widgetStyle ); - - node = node->Next(); - } -} - -bool wxRadioBox::IsOwnGtkWindow( GdkWindow *window ) -{ - if (window == m_widget->window) return TRUE; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - if (window == button->window) return TRUE; - - node = node->Next(); - } - - return FALSE; -} diff --git a/src/gtk/radiobut.cpp b/src/gtk/radiobut.cpp deleted file mode 100644 index 8ccd9ef3c0..0000000000 --- a/src/gtk/radiobut.cpp +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static -void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRadioButton *rb ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!rb->m_hasVMT) return; - - if (rb->m_blockFirstEvent) - { - rb->m_blockFirstEvent = FALSE; - return; - } - - if (g_blockEventsOnDrag) return; - - wxCommandEvent event( wxEVT_COMMAND_RADIOBUTTON_SELECTED, rb->GetId()); - event.SetInt( rb->GetValue() ); - event.SetEventObject( rb ); - rb->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxRadioButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton,wxControl) - -bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, const wxSize& size, long style, - const wxValidator& validator, const wxString& name ) -{ - m_acceptsFocus = TRUE; - m_needParent = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - - SetValidator( validator ); - - m_widget = gtk_radio_button_new_with_label( (GSList *) NULL, label.mbc_str() ); - - m_theOtherRadioButtton = - gtk_radio_button_new_with_label( - gtk_radio_button_group( GTK_RADIO_BUTTON(m_widget) ), - "button2" ); - - SetLabel(label); - - m_blockFirstEvent = FALSE; - - if (newSize.x == -1) newSize.x = 22+gdk_string_measure( m_widget->style->font, label.mbc_str() ); - if (newSize.y == -1) newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxRadioButton::SetLabel( const wxString& label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); - - wxControl::SetLabel( label ); - GtkButton *bin = GTK_BUTTON( m_widget ); - GtkLabel *g_label = GTK_LABEL( bin->child ); - gtk_label_set( g_label, GetLabel().mbc_str() ); -} - -void wxRadioButton::SetValue( bool val ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); - - if ( val == GetValue() ) - return; - - m_blockFirstEvent = TRUE; - - if (val) - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widget), TRUE ); - else - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_theOtherRadioButtton), TRUE ); -} - -bool wxRadioButton::GetValue() const -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobutton") ); - - return GTK_TOGGLE_BUTTON(m_widget)->active; -} - -bool wxRadioButton::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - gtk_widget_set_sensitive( GTK_BUTTON(m_widget)->child, enable ); - - return TRUE; -} - -void wxRadioButton::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( GTK_BUTTON(m_widget)->child, m_widgetStyle ); -} diff --git a/src/gtk/region.cpp b/src/gtk/region.cpp deleted file mode 100644 index 305967bc7d..0000000000 --- a/src/gtk/region.cpp +++ /dev/null @@ -1,440 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/region.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -#ifdef __WXDEBUG__ -#ifdef NULL -#undef NULL -#endif -#define NULL ((void*)0L) -#endif - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -class wxRegionRefData: public wxObjectRefData -{ - public: - - wxRegionRefData(void); - ~wxRegionRefData(void); - - public: - - GdkRegion *m_region; - wxList m_rects; -}; - -wxRegionRefData::wxRegionRefData(void) -{ - m_region = (GdkRegion *) NULL; -} - -wxRegionRefData::~wxRegionRefData(void) -{ - if (m_region) gdk_region_destroy( m_region ); - - wxNode *node = m_rects.First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - delete r; - node = node->Next(); - } -} - -//----------------------------------------------------------------------------- - -#define M_REGIONDATA ((wxRegionRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxRegion,wxGDIObject); - -wxRegion::wxRegion( long x, long y, long w, long h ) -{ - m_refData = new wxRegionRefData(); - GdkRegion *reg = gdk_region_new(); - GdkRectangle rect; - rect.x = x; - rect.y = y; - rect.width = w; - rect.height = h; - M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &rect ); - gdk_region_destroy( reg ); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(x,y,w,h) ); -} - -wxRegion::wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight ) -{ - m_refData = new wxRegionRefData(); - GdkRegion *reg = gdk_region_new(); - GdkRectangle rect; - rect.x = topLeft.x; - rect.y = topLeft.y; - rect.width = bottomRight.x - rect.x; - rect.height = bottomRight.y - rect.y; - M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &rect ); - gdk_region_destroy( reg ); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(topLeft,bottomRight) ); -} - -wxRegion::wxRegion( const wxRect& rect ) -{ - m_refData = new wxRegionRefData(); - GdkRegion *reg = gdk_region_new(); - GdkRectangle g_rect; - g_rect.x = rect.x; - g_rect.y = rect.y; - g_rect.width = rect.width; - g_rect.height = rect.height; - M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &g_rect ); - gdk_region_destroy( reg ); - - wxNode *node = M_REGIONDATA->m_rects.First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) ); - node = node->Next(); - } -} - -wxRegion::wxRegion(void) -{ - m_refData = new wxRegionRefData(); - M_REGIONDATA->m_region = gdk_region_new(); -} - -wxRegion::~wxRegion(void) -{ -} - -bool wxRegion::operator == ( const wxRegion& region ) -{ - return m_refData == region.m_refData; -} - -bool wxRegion::operator != ( const wxRegion& region ) -{ - return m_refData != region.m_refData; -} - -void wxRegion::Clear(void) -{ - UnRef(); - m_refData = new wxRegionRefData(); - M_REGIONDATA->m_region = gdk_region_new(); -} - -bool wxRegion::Union( long x, long y, long width, long height ) -{ - GdkRectangle rect; - rect.x = x; - rect.y = y; - rect.width = width; - rect.height = height; - GdkRegion *reg = gdk_region_union_with_rect( M_REGIONDATA->m_region, &rect ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(x,y,width,height) ); - return TRUE; -} - -bool wxRegion::Union( const wxRect& rect ) -{ - GdkRectangle g_rect; - g_rect.x = rect.x; - g_rect.y = rect.y; - g_rect.width = rect.width; - g_rect.height = rect.height; - GdkRegion *reg = gdk_region_union_with_rect( M_REGIONDATA->m_region, &g_rect ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(rect.x,rect.y,rect.width,rect.height) ); - return TRUE; -} - -bool wxRegion::Union( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - - wxNode *node = region.GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) ); - node = node->Next(); - } - - return TRUE; -} - -bool wxRegion::Intersect( long x, long y, long width, long height ) -{ - wxRegion reg( x, y, width, height ); - Intersect( reg ); - return TRUE; -} - -bool wxRegion::Intersect( const wxRect& rect ) -{ - wxRegion reg( rect ); - Intersect( reg ); - return TRUE; -} - -bool wxRegion::Intersect( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_intersect( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - return TRUE; -} - -bool wxRegion::Subtract( long x, long y, long width, long height ) -{ - wxRegion reg( x, y, width, height ); - Subtract( reg ); - return TRUE; -} - -bool wxRegion::Subtract( const wxRect& rect ) -{ - wxRegion reg( rect ); - Subtract( reg ); - return TRUE; -} - -bool wxRegion::Subtract( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_subtract( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - return TRUE; -} - -bool wxRegion::Xor( long x, long y, long width, long height ) -{ - wxRegion reg( x, y, width, height ); - Xor( reg ); - return TRUE; -} - -bool wxRegion::Xor( const wxRect& rect ) -{ - wxRegion reg( rect ); - Xor( reg ); - return TRUE; -} - -bool wxRegion::Xor( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_xor( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - - wxNode *node = region.GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) ); - node = node->Next(); - } - - return TRUE; -} - -void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const -{ - x = 0; - y = 0; - w = -1; - h = -1; - wxNode *node = GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - if (node == GetRectList()->First()) - { - x = r->x; - y = r->y; - w = r->width; - h = r->height; - } - else - { - if (r->x < x) - { - x = r->x; - w += x - r->x; - } - if (r->y < y) - { - y = r->y; - h += y - r->y; - } - if (r->width+r->x > x+w) - { - w = r->x + r->width - x; - } - if (r->height+r->y > y+h) - { - h = r->y + r->height - y; - } - } - node = node->Next(); - } -} - -wxRect wxRegion::GetBox(void) const -{ - long x = 0; - long y = 0; - long w = -1; - long h = -1; - GetBox( x, y, w, h ); - return wxRect( x, y, w, h ); -} - -bool wxRegion::Empty(void) const -{ - return gdk_region_empty( M_REGIONDATA->m_region ); -} - -wxRegionContain wxRegion::Contains( long x, long y ) const -{ - if (gdk_region_point_in( M_REGIONDATA->m_region, x, y )) - return wxInRegion; - else - return wxOutRegion; -} - -wxRegionContain wxRegion::Contains( long x, long y, long w, long h ) const -{ - GdkRectangle rect; - rect.x = x; - rect.y = y; - rect.width = w; - rect.height = h; - GdkOverlapType res = gdk_region_rect_in( M_REGIONDATA->m_region, &rect ); - switch (res) - { - case GDK_OVERLAP_RECTANGLE_IN: return wxInRegion; - case GDK_OVERLAP_RECTANGLE_OUT: return wxOutRegion; - case GDK_OVERLAP_RECTANGLE_PART: return wxPartRegion; - } - return wxOutRegion; -} - -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - return Contains( pt.x, pt.y ); -} - -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - return Contains( rect.x, rect.y, rect.width, rect.height ); -} - -GdkRegion *wxRegion::GetRegion(void) const -{ - return M_REGIONDATA->m_region; -} - -wxList *wxRegion::GetRectList() const -{ - return &(M_REGIONDATA->m_rects); -} - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject); - -wxRegionIterator::wxRegionIterator(void) -{ - m_current = 0; -} - -wxRegionIterator::wxRegionIterator( const wxRegion& region ) -{ - m_region = region; - m_current = 0; -} - -void wxRegionIterator::Reset( const wxRegion& region ) -{ - m_region = region; - m_current = 0; -} - -wxRegionIterator::operator bool (void) const -{ - return m_current < m_region.GetRectList()->Number(); -} - -bool wxRegionIterator::HaveRects(void) const -{ - return m_current < m_region.GetRectList()->Number(); -} - -void wxRegionIterator::operator ++ (void) -{ - if (m_current < m_region.GetRectList()->Number()) ++m_current; -} - -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_region.GetRectList()->Number()) ++m_current; -} - -long wxRegionIterator::GetX(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->x; -} - -long wxRegionIterator::GetY(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->y; -} - -long wxRegionIterator::GetW(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->width; -} - -long wxRegionIterator::GetH(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->height; -} - - diff --git a/src/gtk/scrolbar.cpp b/src/gtk/scrolbar.cpp deleted file mode 100644 index 84a46924ef..0000000000 --- a/src/gtk/scrolbar.cpp +++ /dev/null @@ -1,309 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" -#include "wx/utils.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; - -//----------------------------------------------------------------------------- -// "value_changed" -//----------------------------------------------------------------------------- - -static void gtk_scrollbar_callback( GtkWidget *WXUNUSED(widget), wxScrollBar *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - float diff = win->m_adjust->value - win->m_oldPos; - if (fabs(diff) < 0.2) return; - win->m_oldPos = win->m_adjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_adjust->step_increment; - float page_step = win->m_adjust->page_increment; - - if (win->IsScrolling()) - { - command = wxEVT_SCROLL_THUMBTRACK; - } - else - { - if (fabs(win->m_adjust->value-win->m_adjust->lower) < 0.2) command = wxEVT_SCROLL_BOTTOM; - else if (fabs(win->m_adjust->value-win->m_adjust->upper) < 0.2) command = wxEVT_SCROLL_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - } - - int value = (int)(win->m_adjust->value+0.5); - - int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL; - - wxScrollEvent event( command, win->GetId(), value, orient ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - -/* - wxCommandEvent cevent( wxEVT_COMMAND_SCROLLBAR_UPDATED, win->GetId() ); - cevent.SetEventObject( win ); - win->ProcessEvent( cevent ); -*/ -} - -//----------------------------------------------------------------------------- -// "button_press_event" from slider -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget), - GdkEventButton *WXUNUSED(gdk_event), - wxScrollBar *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - win->SetScrolling(TRUE); -// g_blockEventsOnScroll = TRUE; doesn't work in DialogEd - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" from slider -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget), - GdkEventButton *WXUNUSED(gdk_event), - wxScrollBar *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - win->SetScrolling(FALSE); -// g_blockEventsOnScroll = FALSE; - - gtk_signal_emit_by_name( GTK_OBJECT(win->m_adjust), "value_changed" ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// wxScrollBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar,wxControl) - -wxScrollBar::~wxScrollBar(void) -{ -} - -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_oldPos = 0.0; - - if (style & wxSB_VERTICAL == wxSB_VERTICAL) - m_widget = gtk_hscrollbar_new( (GtkAdjustment *) NULL ); - else - m_widget = gtk_vscrollbar_new( (GtkAdjustment *) NULL ); - - m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) ); - - gtk_signal_connect( GTK_OBJECT(m_adjust), - "value_changed", - (GtkSignalFunc) gtk_scrollbar_callback, - (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), - "button_press_event", - (GtkSignalFunc)gtk_scrollbar_button_press_callback, - (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), - "button_release_event", - (GtkSignalFunc)gtk_scrollbar_button_release_callback, - (gpointer) this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -int wxScrollBar::GetThumbPosition(void) const -{ - return (int)(m_adjust->value+0.5); -} - -int wxScrollBar::GetThumbSize() const -{ - return (int)(m_adjust->page_size+0.5); -} - -int wxScrollBar::GetPageSize() const -{ - return (int)(m_adjust->page_increment+0.5); -} - -int wxScrollBar::GetRange() const -{ - return (int)(m_adjust->upper+0.5); -} - -void wxScrollBar::SetThumbPosition( int viewStart ) -{ - if (m_isScrolling) return; - - float fpos = (float)viewStart; - m_oldPos = fpos; - if (fabs(fpos-m_adjust->value) < 0.2) return; - m_adjust->value = fpos; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); -} - -void wxScrollBar::SetScrollbar( int position, int thumbSize, int range, int pageSize, - bool WXUNUSED(refresh) ) -{ - float fpos = (float)position; - float frange = (float)range; - float fthumb = (float)thumbSize; - float fpage = (float)pageSize; - - if ((fabs(frange-m_adjust->upper) < 0.2) && - (fabs(fthumb-m_adjust->page_size) < 0.2) && - (fabs(fpage-m_adjust->page_increment) < 0.2)) - { - SetThumbPosition( position ); - return; - } - - m_oldPos = fpos; - - m_adjust->lower = 0.0; - m_adjust->upper = frange; - m_adjust->value = fpos; - m_adjust->step_increment = 1.0; - m_adjust->page_increment = (float)(wxMax(fpage,0)); - m_adjust->page_size = fthumb; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -/* Backward compatibility */ -int wxScrollBar::GetValue(void) const -{ - return GetThumbPosition(); -} - -void wxScrollBar::SetValue( int viewStart ) -{ - SetThumbPosition( viewStart ); -} - -void wxScrollBar::GetValues( int *viewStart, int *viewLength, int *objectLength, int *pageLength ) const -{ - int pos = (int)(m_adjust->value+0.5); - int thumb = (int)(m_adjust->page_size+0.5); - int page = (int)(m_adjust->page_increment+0.5); - int range = (int)(m_adjust->upper+0.5); - - *viewStart = pos; - *viewLength = range; - *objectLength = thumb; - *pageLength = page; -} - -int wxScrollBar::GetViewLength() const -{ - return (int)(m_adjust->upper+0.5); -} - -int wxScrollBar::GetObjectLength() const -{ - return (int)(m_adjust->page_size+0.5); -} - -void wxScrollBar::SetPageSize( int pageLength ) -{ - int pos = (int)(m_adjust->value+0.5); - int thumb = (int)(m_adjust->page_size+0.5); - int range = (int)(m_adjust->upper+0.5); - SetScrollbar( pos, thumb, range, pageLength ); -} - -void wxScrollBar::SetObjectLength( int objectLength ) -{ - int pos = (int)(m_adjust->value+0.5); - int page = (int)(m_adjust->page_increment+0.5); - int range = (int)(m_adjust->upper+0.5); - SetScrollbar( pos, objectLength, range, page ); -} - -void wxScrollBar::SetViewLength( int viewLength ) -{ - int pos = (int)(m_adjust->value+0.5); - int thumb = (int)(m_adjust->page_size+0.5); - int page = (int)(m_adjust->page_increment+0.5); - SetScrollbar( pos, thumb, viewLength, page ); -} - -bool wxScrollBar::IsOwnGtkWindow( GdkWindow *window ) -{ - GtkRange *range = GTK_RANGE(m_widget); - return ( (window == GTK_WIDGET(range)->window) || - (window == range->trough) || - (window == range->slider) || - (window == range->step_forw) || - (window == range->step_back) ); -} - -void wxScrollBar::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - diff --git a/src/gtk/settings.cpp b/src/gtk/settings.cpp deleted file mode 100644 index 8ee443f68b..0000000000 --- a/src/gtk/settings.cpp +++ /dev/null @@ -1,197 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" -#include "wx/debug.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -/* -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -*/ - -#define SHIFT (8*(sizeof(short int)-sizeof(char))) - -//wxColour *g_systemWinColour = (wxColour *) NULL; -wxColour *g_systemBtnFaceColour = (wxColour *) NULL; -wxColour *g_systemBtnShadowColour = (wxColour *) NULL; -wxColour *g_systemBtnHighlightColour = (wxColour *) NULL; -wxColour *g_systemHighlightColour = (wxColour *) NULL; - -wxFont *g_systemFont = (wxFont *) NULL; - -void wxSystemSettings::Done() -{ -// delete g_systemWinColour; - delete g_systemBtnFaceColour; - delete g_systemBtnShadowColour; - delete g_systemBtnHighlightColour; - delete g_systemHighlightColour; - delete g_systemFont; -} - -wxColour wxSystemSettings::GetSystemColour( int index ) -{ - switch (index) - { - case wxSYS_COLOUR_SCROLLBAR: - case wxSYS_COLOUR_BACKGROUND: - case wxSYS_COLOUR_ACTIVECAPTION: - case wxSYS_COLOUR_INACTIVECAPTION: - case wxSYS_COLOUR_MENU: - case wxSYS_COLOUR_WINDOWFRAME: - case wxSYS_COLOUR_ACTIVEBORDER: - case wxSYS_COLOUR_INACTIVEBORDER: - case wxSYS_COLOUR_BTNFACE: - { - if (!g_systemBtnFaceColour) - { - g_systemBtnFaceColour = - new wxColour( 0xd6d6 >> SHIFT, - 0xd6d6 >> SHIFT, - 0xd6d6 >> SHIFT ); - } - return *g_systemBtnFaceColour; - } - case wxSYS_COLOUR_WINDOW: - { - return *wxWHITE; - } - case wxSYS_COLOUR_GRAYTEXT: - case wxSYS_COLOUR_BTNSHADOW: - { - if (!g_systemBtnShadowColour) - { - g_systemBtnShadowColour = - new wxColour( 0x7530 >> SHIFT, - 0x7530 >> SHIFT, - 0x7530 >> SHIFT ); - } - return *g_systemBtnShadowColour; - } - case wxSYS_COLOUR_BTNHIGHLIGHT: - { - if (!g_systemBtnHighlightColour) - { - g_systemBtnHighlightColour = - new wxColour( 0xea60 >> SHIFT, - 0xea60 >> SHIFT, - 0xea60 >> SHIFT ); - } - return *g_systemBtnHighlightColour; - } - case wxSYS_COLOUR_HIGHLIGHT: - { - if (!g_systemHighlightColour) - { - g_systemHighlightColour = - new wxColour( 0 >> SHIFT, - 0 >> SHIFT, - 0x9c40 >> SHIFT ); - } - return *g_systemHighlightColour; - } - case wxSYS_COLOUR_MENUTEXT: - case wxSYS_COLOUR_WINDOWTEXT: - case wxSYS_COLOUR_CAPTIONTEXT: - case wxSYS_COLOUR_INACTIVECAPTIONTEXT: - case wxSYS_COLOUR_BTNTEXT: - case wxSYS_COLOUR_INFOTEXT: - { - return *wxBLACK; - } - case wxSYS_COLOUR_HIGHLIGHTTEXT: - { - return *wxWHITE; - } - case wxSYS_COLOUR_INFOBK: - case wxSYS_COLOUR_APPWORKSPACE: - { - return *wxWHITE; // ? - } - } - return *wxWHITE; -} - -wxFont wxSystemSettings::GetSystemFont( int index ) -{ - switch (index) - { - case wxSYS_OEM_FIXED_FONT: - case wxSYS_ANSI_FIXED_FONT: - case wxSYS_SYSTEM_FIXED_FONT: - { - return *wxNORMAL_FONT; - } - case wxSYS_ANSI_VAR_FONT: - case wxSYS_SYSTEM_FONT: - case wxSYS_DEVICE_DEFAULT_FONT: - case wxSYS_DEFAULT_GUI_FONT: - { - if (!g_systemFont) - g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ); - return *g_systemFont; - } - } - - return wxNullFont; -} - -int wxSystemSettings::GetSystemMetric( int index ) -{ - switch (index) - { - case wxSYS_SCREEN_X: return gdk_screen_width(); - case wxSYS_SCREEN_Y: return gdk_screen_height(); - case wxSYS_HSCROLL_Y: return 15; - case wxSYS_VSCROLL_X: return 15; - } - - wxCHECK_MSG( index, 0, _T("wxSystemSettings::GetSystemMetric not fully implemented") ); - - return 0; -} diff --git a/src/gtk/slider.cpp b/src/gtk/slider.cpp deleted file mode 100644 index c28fc43e1b..0000000000 --- a/src/gtk/slider.cpp +++ /dev/null @@ -1,291 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/slider.h" -#include "wx/utils.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "value_changed" -//----------------------------------------------------------------------------- - -static void gtk_slider_callback( GtkWidget *WXUNUSED(widget), wxSlider *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - float diff = win->m_adjust->value - win->m_oldPos; - if (fabs(diff) < 0.2) return; - win->m_oldPos = win->m_adjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_adjust->step_increment; - float page_step = win->m_adjust->page_increment; - - if (fabs(win->m_adjust->value-win->m_adjust->lower) < 0.2) command = wxEVT_SCROLL_BOTTOM; - else if (fabs(win->m_adjust->value-win->m_adjust->upper) < 0.2) command = wxEVT_SCROLL_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - - int value = (int)ceil(win->m_adjust->value); - - int orient = wxHORIZONTAL; - if (win->GetWindowStyleFlag() & wxSB_VERTICAL == wxSB_VERTICAL) orient = wxVERTICAL; - - wxScrollEvent event( command, win->GetId(), value, orient ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, win->GetId() ); - cevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( cevent ); -} - -//----------------------------------------------------------------------------- -// wxSlider -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSlider,wxControl) - -wxSlider::wxSlider(void) -{ -} - -wxSlider::~wxSlider(void) -{ -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) -{ - m_acceptsFocus = TRUE; - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_oldPos = 0.0; - - if (style & wxSL_VERTICAL) - m_widget = gtk_vscale_new( (GtkAdjustment *) NULL ); - else - m_widget = gtk_hscale_new( (GtkAdjustment *) NULL ); - - if (style & wxSL_LABELS) - { - gtk_scale_set_draw_value( GTK_SCALE( m_widget ), TRUE ); - - /* labels need more space and too small window will - cause junk to appear on the dialog */ - if (style & wxSL_VERTICAL) - { - wxSize sz( size ); - if (sz.x < 35) - { - sz.x = 35; - SetSize( sz ); - } - } - else - { - wxSize sz( size ); - if (sz.y < 35) - { - sz.y = 35; - SetSize( sz ); - } - } - } - else - gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE ); - - m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) ); - - gtk_signal_connect( GTK_OBJECT(m_adjust), - "value_changed", - (GtkSignalFunc) gtk_slider_callback, - (gpointer) this ); - - SetRange( minValue, maxValue ); - SetValue( value ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -int wxSlider::GetValue(void) const -{ - return (int)(m_adjust->value+0.5); -} - -void wxSlider::SetValue( int value ) -{ - float fpos = (float)value; - m_oldPos = fpos; - if (fabs(fpos-m_adjust->value) < 0.2) return; - - m_adjust->value = fpos; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); -} - -void wxSlider::SetRange( int minValue, int maxValue ) -{ - float fmin = (float)minValue; - float fmax = (float)maxValue; - - if ((fabs(fmin-m_adjust->lower) < 0.2) && - (fabs(fmax-m_adjust->upper) < 0.2)) - { - return; - } - - m_adjust->lower = fmin; - m_adjust->upper = fmax; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -int wxSlider::GetMin(void) const -{ - return (int)ceil(m_adjust->lower); -} - -int wxSlider::GetMax(void) const -{ - return (int)ceil(m_adjust->upper); -} - -void wxSlider::SetPageSize( int pageSize ) -{ - float fpage = (float)pageSize; - - if (fabs(fpage-m_adjust->page_increment) < 0.2) return; - - m_adjust->page_increment = fpage; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -int wxSlider::GetPageSize(void) const -{ - return (int)ceil(m_adjust->page_increment); -} - -void wxSlider::SetThumbLength( int len ) -{ - float flen = (float)len; - - if (fabs(flen-m_adjust->page_size) < 0.2) return; - - m_adjust->page_size = flen; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -int wxSlider::GetThumbLength(void) const -{ - return (int)ceil(m_adjust->page_size); -} - -void wxSlider::SetLineSize( int WXUNUSED(lineSize) ) -{ -} - -int wxSlider::GetLineSize(void) const -{ - return 0; -} - -void wxSlider::SetTick( int WXUNUSED(tickPos) ) -{ -} - -void wxSlider::SetTickFreq( int WXUNUSED(n), int WXUNUSED(pos) ) -{ -} - -int wxSlider::GetTickFreq(void) const -{ - return 0; -} - -void wxSlider::ClearTicks(void) -{ -} - -void wxSlider::SetSelection( int WXUNUSED(minPos), int WXUNUSED(maxPos) ) -{ -} - -int wxSlider::GetSelEnd(void) const -{ - return 0; -} - -int wxSlider::GetSelStart(void) const -{ - return 0; -} - -void wxSlider::ClearSel(void) -{ -} - -bool wxSlider::IsOwnGtkWindow( GdkWindow *window ) -{ - GtkRange *range = GTK_RANGE(m_widget); - return ( (window == GTK_WIDGET(range)->window) || - (window == range->trough) || - (window == range->slider) || - (window == range->step_forw) || - (window == range->step_back) ); -} - -void wxSlider::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} diff --git a/src/gtk/spinbutt.cpp b/src/gtk/spinbutt.cpp deleted file mode 100644 index 7b3b204283..0000000000 --- a/src/gtk/spinbutt.cpp +++ /dev/null @@ -1,210 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: Robert -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "spinbutt.h" -#endif - -#include "wx/spinbutt.h" -#include "wx/utils.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -static const float sensitivity = 0.2; - -//----------------------------------------------------------------------------- -// "value_changed" -//----------------------------------------------------------------------------- - -static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - float diff = win->m_adjust->value - win->m_oldPos; - if (fabs(diff) < sensitivity) return; - win->m_oldPos = win->m_adjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_adjust->step_increment; - float page_step = win->m_adjust->page_increment; - - if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP; - else if (fabs(diff-page_step) < sensitivity) command = wxEVT_SCROLL_PAGEDOWN; - else if (fabs(diff+page_step) < sensitivity) command = wxEVT_SCROLL_PAGEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - - int value = (int)ceil(win->m_adjust->value); - - wxSpinEvent event( command, win->GetId()); - event.SetPosition( value ); - event.SetOrientation( wxVERTICAL ); - event.SetEventObject( win ); - - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton,wxControl) - -BEGIN_EVENT_TABLE(wxSpinButton, wxControl) - EVT_SIZE(wxSpinButton::OnSize) -END_EVENT_TABLE() - -wxSpinButton::wxSpinButton() -{ -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_needParent = TRUE; - - wxSize new_size = size; - new_size.x = 15; - if (new_size.y == -1) - new_size.y = 30; - - PreCreation( parent, id, pos, new_size, style, name ); - -// SetValidator( validator ); - - m_oldPos = 0.0; - - m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0); - - m_widget = gtk_spin_button_new( m_adjust, 0, 0 ); - - gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) ); - - gtk_signal_connect( GTK_OBJECT (m_adjust), - "value_changed", - (GtkSignalFunc) gtk_spinbutt_callback, - (gpointer) this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -int wxSpinButton::GetMin() const -{ - wxCHECK_MSG( (m_widget != NULL), 0, _T("invalid spin button") ); - - return (int)ceil(m_adjust->lower); -} - -int wxSpinButton::GetMax() const -{ - wxCHECK_MSG( (m_widget != NULL), 0, _T("invalid spin button") ); - - return (int)ceil(m_adjust->upper); -} - -int wxSpinButton::GetValue() const -{ - wxCHECK_MSG( (m_widget != NULL), 0, _T("invalid spin button") ); - - return (int)ceil(m_adjust->value); -} - -void wxSpinButton::SetValue( int value ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid spin button") ); - - float fpos = (float)value; - m_oldPos = fpos; - if (fabs(fpos-m_adjust->value) < sensitivity) return; - - m_adjust->value = fpos; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid spin button") ); - - float fmin = (float)minVal; - float fmax = (float)maxVal; - - if ((fabs(fmin-m_adjust->lower) < sensitivity) && - (fabs(fmax-m_adjust->upper) < sensitivity)) - { - return; - } - - m_adjust->lower = fmin; - m_adjust->upper = fmax; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid spin button") ); - - m_width = 15; - gtk_widget_set_usize( m_widget, m_width, m_height ); -} - -bool wxSpinButton::IsOwnGtkWindow( GdkWindow *window ) -{ - return GTK_SPIN_BUTTON(m_widget)->panel == window; -} - -void wxSpinButton::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - -//----------------------------------------------------------------------------- -// wxSpinEvent -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id): - wxScrollEvent(commandType, id) -{ -} diff --git a/src/gtk/statbmp.cpp b/src/gtk/statbmp.cpp deleted file mode 100644 index ff7fc98b4f..0000000000 --- a/src/gtk/statbmp.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticBitmap -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap,wxControl) - -wxStaticBitmap::wxStaticBitmap(void) -{ -} - -wxStaticBitmap::wxStaticBitmap( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Create( parent, id, bitmap, pos, size, style, name ); -} - -bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, size, style, name ); - - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - m_widget = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); - - if (newSize.x == -1) newSize.x = m_bitmap.GetWidth(); - if (newSize.y == -1) newSize.y = m_bitmap.GetHeight(); - SetSize( newSize.x, newSize.y ); - } - else - { - m_widget = gtk_label_new( "Bitmap" ); - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -void wxStaticBitmap::SetBitmap( const wxBitmap &bitmap ) -{ - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - gtk_pixmap_set( GTK_PIXMAP(m_widget), m_bitmap.GetPixmap(), mask ); - } -} diff --git a/src/gtk/statbox.cpp b/src/gtk/statbox.cpp deleted file mode 100644 index d1c978b2ef..0000000000 --- a/src/gtk/statbox.cpp +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox,wxControl) - -wxStaticBox::wxStaticBox(void) -{ -} - -wxStaticBox::wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Create( parent, id, label, pos, size, style, name ); -} - -bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_isStaticBox = TRUE; - - m_widget = gtk_frame_new(m_label.mbc_str()); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetLabel(label); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxStaticBox::SetLabel( const wxString &label ) -{ - wxControl::SetLabel( label ); - GtkFrame *frame = GTK_FRAME( m_widget ); - gtk_frame_set_label( frame, GetLabel().mbc_str() ); -} - -void wxStaticBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} diff --git a/src/gtk/statline.cpp b/src/gtk/statline.cpp deleted file mode 100644 index 572edb0b1d..0000000000 --- a/src/gtk/statline.cpp +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statline.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statline.h" -#endif - -#include "wx/statline.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticLine,wxControl) - -wxStaticLine::wxStaticLine(void) -{ -} - -wxStaticLine::wxStaticLine( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Create( parent, id, pos, size, style, name ); -} - -bool wxStaticLine::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - if (style & wxVERTICAL) - m_widget = gtk_vseparator_new(); - else - m_widget = gtk_hseparator_new(); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - diff --git a/src/gtk/stattext.cpp b/src/gtk/stattext.cpp deleted file mode 100644 index 194fb3da08..0000000000 --- a/src/gtk/stattext.cpp +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ - #pragma implementation "stattext.h" -#endif - -#include "wx/stattext.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticText -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticText,wxControl) - -wxStaticText::wxStaticText() -{ -} - -wxStaticText::wxStaticText(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name) -{ - Create( parent, id, label, pos, size, style, name ); -} - -bool wxStaticText::Create(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name ) -{ - m_needParent = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, size, style, name ); - - // notice that we call the base class version which will just remove the - // '&' characters from the string, but not set the label's text to it - // because the label is not yet created and because SetLabel() has a side - // effect of changing the control size which might not be desirable - wxControl::SetLabel(label); - m_widget = gtk_label_new( m_label.mbc_str() ); - - GtkJustification justify; - if ( style & wxALIGN_CENTER ) - justify = GTK_JUSTIFY_CENTER; - else if ( style & wxALIGN_RIGHT ) - justify = GTK_JUSTIFY_RIGHT; - else // wxALIGN_LEFT is 0 - justify = GTK_JUSTIFY_LEFT; - gtk_label_set_justify(GTK_LABEL(m_widget), justify); - -#if GTK_MINOR_VERSION == 2 - // GTK_JUSTIFY_LEFT is 0, RIGHT 1 and CENTER 2 - static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; - gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0); -#endif // GTK 1.2.x - - GtkRequisition req; - (* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request ) (m_widget, &req ); - - if (newSize.x == -1) newSize.x = req.width; - if (newSize.y == -1) newSize.y = req.height; - - SetSize( newSize.x, newSize.y ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxString wxStaticText::GetLabel(void) const -{ - char *str = (char *) NULL; - gtk_label_get( GTK_LABEL(m_widget), &str ); - - return wxString(str); -} - -void wxStaticText::SetLabel( const wxString &label ) -{ - wxControl::SetLabel(label); - - gtk_label_set( GTK_LABEL(m_widget), m_label.mbc_str() ); - - // adjust the label size to the new label - - // TODO there should be a way to prevent SetLabel() from doing it (an - // additional parameter?) - GtkRequisition req; - (* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request ) (m_widget, &req ); - - SetSize( req.width, req.height ); -} - -void wxStaticText::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp deleted file mode 100644 index de244c82b1..0000000000 --- a/src/gtk/tbargtk.cpp +++ /dev/null @@ -1,586 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbargtk.cpp -// Purpose: GTK toolbar -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbargtk.h" -#endif - -#include "wx/toolbar.h" -#include "wx/frame.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" (internal from gtk_toolbar) -//----------------------------------------------------------------------------- - -static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!tool->m_enabled) return; - - if (tool->m_isToggle) - { - tool->m_toggleState = !tool->m_toggleState; - - if (tool->m_bitmap2.Ok()) - { - wxBitmap bitmap = tool->m_bitmap1; - if (tool->m_toggleState) bitmap = tool->m_bitmap2; - - GtkPixmap *pixmap = GTK_PIXMAP( tool->m_pixmap ); - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap(); - - gtk_pixmap_set( pixmap, bitmap.GetPixmap(), mask ); - } - } - - tool->m_owner->OnLeftClick( tool->m_index, tool->m_toggleState ); -} - -//----------------------------------------------------------------------------- -// "enter_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget), - GdkEventCrossing *WXUNUSED(gdk_event), wxToolBarTool *tool ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return TRUE; - - - wxToolBar *tb = tool->m_owner; - - /* we grey-out the tip text of disabled tool */ -#if 0 - if (tool->m_enabled) - { - if (tb->m_fg->red != 0) - { - tb->m_fg->red = 0; - tb->m_fg->green = 0; - tb->m_fg->blue = 0; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(tb->m_toolbar) ), tb->m_fg ); - -#if (GTK_MINOR_VERSION > 0) - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( - GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window ) ); - - g_style->fg[GTK_STATE_NORMAL] = *tb->m_fg; - gtk_widget_set_style( GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); -#endif - } - } - else - { - if (tb->m_fg->red == 0) - { - tb->m_fg->red = 33000; - tb->m_fg->green = 33000; - tb->m_fg->blue = 33000; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(tb->m_toolbar) ), tb->m_fg ); -#if (GTK_MINOR_VERSION > 0) - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( - GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window ) ); - - g_style->fg[GTK_STATE_NORMAL] = *tb->m_fg; - gtk_widget_set_style( GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); -#endif - } - } -#endif - - /* emit the event */ - - tb->OnMouseEnter( tool->m_index ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// wxToolBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl) - -BEGIN_EVENT_TABLE(wxToolBar, wxControl) - EVT_IDLE(wxToolBar::OnIdle) -END_EVENT_TABLE() - -wxToolBar::wxToolBar() -{ -} - -wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - Create( parent, id, pos, size, style, name ); -} - -wxToolBar::~wxToolBar() -{ - delete m_fg; - delete m_bg; -} - -bool wxToolBar::Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_tools.DeleteContents( TRUE ); - - m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, - GTK_TOOLBAR_ICONS ) ); - - m_separation = 5; - gtk_toolbar_set_space_size( m_toolbar, m_separation ); - m_hasToolAlready = FALSE; - - if (style & wxTB_DOCKABLE) - { - m_widget = gtk_handle_box_new(); - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) ); - gtk_widget_show( GTK_WIDGET(m_toolbar) ); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxTB_FLAT) - gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(m_widget), GTK_SHADOW_NONE ); -#endif - } - else - { - m_widget = GTK_WIDGET(m_toolbar); - } - - gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE ); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxTB_FLAT) - gtk_toolbar_set_button_relief( GTK_TOOLBAR(m_toolbar), GTK_RELIEF_NONE ); -#endif - - m_fg = new GdkColor; - m_fg->red = 0; - m_fg->green = 0; - m_fg->blue = 0; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_fg ); - - m_bg = new GdkColor; - m_bg->red = 65535; - m_bg->green = 65535; - m_bg->blue = 50000; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_bg ); - -#if (GTK_MINOR_VERSION > 0) - gtk_tooltips_force_window( GTK_TOOLBAR(m_toolbar)->tooltips ); - - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( - GTK_TOOLBAR(m_toolbar)->tooltips->tip_window ) ); - - g_style->bg[GTK_STATE_NORMAL] = *m_bg; - gtk_widget_set_style( GTK_TOOLBAR(m_toolbar)->tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, m_bg, m_fg ); -#endif - - m_xMargin = 0; - m_yMargin = 0; - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, toolIndex ); - event.SetEventObject(this); - event.SetInt( toolIndex ); - event.SetExtraLong((long) toggleDown); - - GetEventHandler()->ProcessEvent(event); - - return TRUE; -} - -void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_RCLICKED, toolIndex ); - event.SetEventObject( this ); - event.SetInt( toolIndex ); - - GetEventHandler()->ProcessEvent(event); -} - -void wxToolBar::OnMouseEnter( int toolIndex ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_ENTER, GetId() ); - event.SetEventObject(this); - event.SetInt( toolIndex ); - - GetEventHandler()->ProcessEvent(event); -} - -wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap, bool toggle, - float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData, - const wxString& helpString1, const wxString& helpString2 ) -{ - m_hasToolAlready = TRUE; - - wxCHECK_MSG( bitmap.Ok(), (wxToolBarTool *)NULL, - _T("invalid bitmap for wxToolBar icon") ); - - wxCHECK_MSG( bitmap.GetBitmap() == NULL, (wxToolBarTool *)NULL, - _T("wxToolBar doesn't support GdkBitmap") ); - - wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL, - _T("wxToolBar::Add needs a wxBitmap") ); - - GtkWidget *tool_pixmap = (GtkWidget *)NULL; - - GdkPixmap *pixmap = bitmap.GetPixmap(); - - GdkBitmap *mask = (GdkBitmap *)NULL; - if ( bitmap.GetMask() ) - mask = bitmap.GetMask()->GetBitmap(); - - tool_pixmap = gtk_pixmap_new( pixmap, mask ); - gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE ); - - gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 ); - - wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, - toggle, clientData, - helpString1, helpString2, - tool_pixmap ); - - GtkToolbarChildType ctype = toggle ? GTK_TOOLBAR_CHILD_TOGGLEBUTTON - : GTK_TOOLBAR_CHILD_BUTTON; - - GtkWidget *item = gtk_toolbar_append_element - ( - GTK_TOOLBAR(m_toolbar), - ctype, - (GtkWidget *)NULL, - (const char *)NULL, - helpString1.mbc_str(), - "", - tool_pixmap, - (GtkSignalFunc)gtk_toolbar_callback, - (gpointer)tool - ); - - tool->m_item = item; - - gtk_signal_connect( GTK_OBJECT(tool->m_item), - "enter_notify_event", - GTK_SIGNAL_FUNC(gtk_toolbar_enter_callback), - (gpointer)tool ); - - m_tools.Append( tool ); - - return tool; -} - -void wxToolBar::AddSeparator() -{ - gtk_toolbar_append_space( m_toolbar ); -} - -void wxToolBar::ClearTools() -{ - wxFAIL_MSG( _T("wxToolBar::ClearTools not implemented") ); -} - -bool wxToolBar::Realize() -{ - m_x = 0; - m_y = 0; - m_width = 100; - m_height = 0; - - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_bitmap1.Ok()) - { - int tool_height = tool->m_bitmap1.GetHeight(); - if (tool_height > m_height) m_height = tool_height; - } - - node = node->Next(); - } - - m_height += 5 + 2*m_yMargin; - - return TRUE; -} - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_enabled = enable; - -/* we don't disable the tools for now as the bitmaps don't get - greyed anyway and this also disables tooltips */ - - if (tool->m_item) - gtk_widget_set_sensitive( tool->m_item, enable ); - - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); -} - -void wxToolBar::ToggleTool( int toolIndex, bool toggle ) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_toggleState = toggle; - if ((tool->m_item) && (GTK_IS_TOGGLE_BUTTON(tool->m_item))) - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(tool->m_item), toggle ); - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); -} - -wxObject *wxToolBar::GetToolClientData( int index ) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == index) return tool->m_clientData;; - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return (wxObject*)NULL; -} - -bool wxToolBar::GetToolState(int toolIndex) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) return tool->m_toggleState; - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return FALSE; -} - -bool wxToolBar::GetToolEnabled(int toolIndex) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) return tool->m_enabled; - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return FALSE; -} - -void wxToolBar::SetMargins( int x, int y ) -{ - wxCHECK_RET( !m_hasToolAlready, _T("wxToolBar::SetMargins must be called before adding tool.") ); - - if (x > 2) gtk_toolbar_append_space( m_toolbar ); // oh well - - m_xMargin = x; - m_yMargin = y; -} - -void wxToolBar::SetToolPacking( int WXUNUSED(packing) ) -{ - wxFAIL_MSG( _T("wxToolBar::SetToolPacking not implemented") ); -} - -void wxToolBar::SetToolSeparation( int separation ) -{ - gtk_toolbar_set_space_size( m_toolbar, separation ); - m_separation = separation; -} - -int wxToolBar::GetToolPacking() -{ - return 0; -} - -int wxToolBar::GetToolSeparation() -{ - return m_separation; -} - -wxString wxToolBar::GetToolLongHelp(int toolIndex) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - return tool->m_longHelpString; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return _T(""); -} - -wxString wxToolBar::GetToolShortHelp(int toolIndex) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - return tool->m_shortHelpString; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return _T(""); -} - -void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_longHelpString = helpString; - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return; -} - -void wxToolBar::SetToolShortHelp(int toolIndex, const wxString& helpString) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_shortHelpString = helpString; - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return; -} - -void wxToolBar::OnIdle( wxIdleEvent &WXUNUSED(ievent) ) -{ - wxEvtHandler* evtHandler = GetEventHandler(); - - wxNode* node = m_tools.First(); - while (node) - { - wxToolBarTool* tool = (wxToolBarTool*) node->Data(); - - wxUpdateUIEvent event( tool->m_index ); - event.SetEventObject(this); - - if (evtHandler->ProcessEvent( event )) - { - if (event.GetSetEnabled()) - EnableTool(tool->m_index, event.GetEnabled()); - if (event.GetSetChecked()) - ToggleTool(tool->m_index, event.GetChecked()); -/* - if (event.GetSetText()) - // Set tooltip? -*/ - } - - node = node->Next(); - } -} - diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp deleted file mode 100644 index 51169aaa60..0000000000 --- a/src/gtk/textctrl.cpp +++ /dev/null @@ -1,1071 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -#include "wx/textctrl.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/settings.h" - -#include -#include -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gdk/gdkkeysyms.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "changed" -//----------------------------------------------------------------------------- - -static void -gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) -{ - if (!win->m_hasVMT) return; - - if (g_isIdle) - wxapp_install_idle_handler(); - - win->SetModified(); - - wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() ); - event.SetString( win->GetValue() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" from vertical scrollbar -//----------------------------------------------------------------------------- - -static void -gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) -{ - if (!win->m_hasVMT) return; - - if (g_isIdle) - wxapp_install_idle_handler(); - - win->CalculateScrollbar(); -} - -//----------------------------------------------------------------------------- -// wxTextCtrl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_CHAR(wxTextCtrl::OnChar) - - EVT_MENU(wxID_CUT, wxTextCtrl::OnCut) - EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy) - EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste) - EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo) - EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo) - - EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut) - EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy) - EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste) - EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo) - EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo) -END_EVENT_TABLE() - -#ifndef NO_TEXT_WINDOW_STREAM -wxTextCtrl::wxTextCtrl() : streambuf() -{ - if (allocate()) setp(base(),ebuf()); - - m_modified = FALSE; -} -#else -wxTextCtrl::wxTextCtrl() -{ - m_modified = FALSE; -} -#endif - -#ifndef NO_TEXT_WINDOW_STREAM -wxTextCtrl::wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value, - const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) : streambuf() -{ - if (allocate()) setp(base(),ebuf()); - - m_modified = FALSE; - Create( parent, id, value, pos, size, style, validator, name ); -} -#else -wxTextCtrl::wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value, - const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) -{ - m_modified = FALSE; - Create( parent, id, value, pos, size, style, validator, name ); -} -#endif - -bool wxTextCtrl::Create( wxWindow *parent, wxWindowID id, const wxString &value, - const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif // wxUSE_VALIDATORS - - m_vScrollbarVisible = FALSE; - - bool multi_line = (style & wxTE_MULTILINE) != 0; - if (multi_line) - { - /* a multi-line edit control: create a vertical scrollbar by default and - horizontal if requested */ - bool bHasHScrollbar = (style & wxHSCROLL) != 0; - - /* create our control ... */ - m_text = gtk_text_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); - - /* ... and put into the upper left hand corner of the table */ - m_widget = gtk_table_new(bHasHScrollbar ? 2 : 1, 2, FALSE); - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - gtk_table_attach( GTK_TABLE(m_widget), m_text, 0, 1, 0, 1, - (GtkAttachOptions)(GTK_FILL | GTK_EXPAND | GTK_SHRINK), - (GtkAttachOptions)(GTK_FILL | GTK_EXPAND | GTK_SHRINK), - 0, 0); - - /* always wrap words */ - gtk_text_set_word_wrap( GTK_TEXT(m_text), TRUE ); - - /* put the horizontal scrollbar in the lower left hand corner */ - if (bHasHScrollbar) - { - GtkWidget *hscrollbar = gtk_hscrollbar_new(GTK_TEXT(m_text)->hadj); - GTK_WIDGET_UNSET_FLAGS( hscrollbar, GTK_CAN_FOCUS ); - gtk_table_attach(GTK_TABLE(m_widget), hscrollbar, 0, 1, 1, 2, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL | GTK_SHRINK), - GTK_FILL, - 0, 0); - gtk_widget_show(hscrollbar); - -#if (GTK_MINOR_VERSION > 0) - /* don't wrap lines, otherwise we wouldn't need the scrollbar */ - gtk_text_set_line_wrap( GTK_TEXT(m_text), FALSE ); -#endif - } - - /* finally, put the vertical scrollbar in the upper right corner */ - m_vScrollbar = gtk_vscrollbar_new( GTK_TEXT(m_text)->vadj ); - GTK_WIDGET_UNSET_FLAGS( m_vScrollbar, GTK_CAN_FOCUS ); - gtk_table_attach(GTK_TABLE(m_widget), m_vScrollbar, 1, 2, 0, 1, - GTK_FILL, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL | GTK_SHRINK), - 0, 0); - } - else - { - /* a single-line text control: no need for scrollbars */ - m_widget = - m_text = gtk_entry_new(); - } - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = 80; - if (newSize.y == -1) newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - if (multi_line) - gtk_widget_show(m_text); - - /* we want to be notified about text changes */ - gtk_signal_connect( GTK_OBJECT(m_text), "changed", - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - - if (multi_line) - { - gtk_signal_connect(GTK_OBJECT(GTK_TEXT(m_text)->vadj), "changed", - (GtkSignalFunc) gtk_scrollbar_changed_callback, (gpointer) this ); - } - - if (!value.IsEmpty()) - { - gint tmp = 0; - -#if GTK_MINOR_VERSION == 0 - // if we don't realize it, GTK 1.0.6 dies with a SIGSEGV in - // gtk_editable_insert_text() - gtk_widget_realize(m_text); -#endif // GTK 1.0 - -#if wxUSE_UNICODE - wxWX2MBbuf val = value.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), val, strlen(val), &tmp ); -#else // !Unicode - gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &tmp ); -#endif // Unicode/!Unicode - - if (multi_line) - { - /* bring editable's cursor uptodate. bug in GTK. */ - - GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - } - - if (style & wxTE_PASSWORD) - { - if (!multi_line) - gtk_entry_set_visibility( GTK_ENTRY(m_text), FALSE ); - } - - if (style & wxTE_READONLY) - { - if (!multi_line) - gtk_entry_set_editable( GTK_ENTRY(m_text), FALSE ); - } - else - { - if (multi_line) - gtk_text_set_editable( GTK_TEXT(m_text), 1 ); - } - - SetBackgroundColour( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ); - SetForegroundColour( parent->GetForegroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -void wxTextCtrl::CalculateScrollbar() -{ - if ((m_windowStyle & wxTE_MULTILINE) == 0) return; - - GtkAdjustment *adj = GTK_TEXT(m_text)->vadj; - - if (adj->upper - adj->page_size < 0.8) - { - if (m_vScrollbarVisible) - { - gtk_widget_hide( m_vScrollbar ); - m_vScrollbarVisible = FALSE; - } - } - else - { - if (!m_vScrollbarVisible) - { - gtk_widget_show( m_vScrollbar ); - m_vScrollbarVisible = TRUE; - } - } -} - -wxString wxTextCtrl::GetValue() const -{ - wxCHECK_MSG( m_text != NULL, _T(""), _T("invalid text ctrl") ); - - wxString tmp; - if (m_windowStyle & wxTE_MULTILINE) - { - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); - char *text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len ); - tmp = wxString(text,*wxConv_current); - g_free( text ); - } - else - { - tmp = wxString(gtk_entry_get_text( GTK_ENTRY(m_text) ),*wxConv_current); - } - return tmp; -} - -void wxTextCtrl::SetValue( const wxString &value ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_text), - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - - wxString tmp = _T(""); - if (!value.IsNull()) tmp = value; - if (m_windowStyle & wxTE_MULTILINE) - { - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); - gtk_editable_delete_text( GTK_EDITABLE(m_text), 0, len ); - len = 0; -#if wxUSE_UNICODE - wxWX2MBbuf tmpbuf = tmp.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), tmpbuf, strlen(tmpbuf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), tmp.mbc_str(), tmp.Length(), &len ); -#endif - } - else - { - gtk_entry_set_text( GTK_ENTRY(m_text), tmp.mbc_str() ); - } - - gtk_signal_connect( GTK_OBJECT(m_text), "changed", - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); -} - -void wxTextCtrl::WriteText( const wxString &text ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (text.IsNull()) return; - - if (m_windowStyle & wxTE_MULTILINE) - { - /* this moves the cursor pos to behind the inserted text */ - gint len = GTK_EDITABLE(m_text)->current_pos; - -#if wxUSE_UNICODE - wxWX2MBbuf buf = text.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len ); -#endif - - /* bring editable's cursor uptodate. bug in GTK. */ - GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - else - { - /* this moves the cursor pos to behind the inserted text */ - gint len = GTK_EDITABLE(m_text)->current_pos; -#if wxUSE_UNICODE - wxWX2MBbuf buf = text.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len ); -#endif - - /* bring editable's cursor uptodate. bug in GTK. */ - GTK_EDITABLE(m_text)->current_pos += text.Len(); - - /* bring entry's cursor uptodate. bug in GTK. */ - gtk_entry_set_position( GTK_ENTRY(m_text), GTK_EDITABLE(m_text)->current_pos ); - } -} - -void wxTextCtrl::AppendText( const wxString &text ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (m_windowStyle & wxTE_MULTILINE) - { - /* we'll insert at the last position */ - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); -#if wxUSE_UNICODE - wxWX2MBbuf buf = text.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len ); -#endif - - /* bring editable's cursor uptodate. bug in GTK. */ - GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - else - { - gtk_entry_append_text( GTK_ENTRY(m_text), text.mbc_str() ); - } -} - -bool wxTextCtrl::LoadFile( const wxString &file ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - if (!wxFileExists(file)) return FALSE; - - Clear(); - - FILE *fp = (FILE*) NULL; - struct stat statb; - - if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG || - !(fp = fopen (FNSTRINGCAST file.fn_str(), "r"))) - { - return FALSE; - } - else - { - gint len = statb.st_size; - char *text; - if (!(text = (char*)malloc ((unsigned) (len + 1)))) - { - fclose (fp); - return FALSE; - } - if (fread (text, sizeof (char), len, fp) != (size_t) len) - { - } - fclose (fp); - - text[len] = 0; - - if (m_windowStyle & wxTE_MULTILINE) - { - gint pos = 0; - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, len, &pos ); - } - else - { - gtk_entry_set_text( GTK_ENTRY(m_text), text ); - } - - free (text); - m_modified = FALSE; - return TRUE; - } - return FALSE; -} - -bool wxTextCtrl::SaveFile( const wxString &file ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - if (file == _T("")) return FALSE; - - FILE *fp; - - if (!(fp = fopen (FNSTRINGCAST file.fn_str(), "w"))) - { - return FALSE; - } - else - { - char *text = (char*) NULL; - gint len = 0; - - if (m_windowStyle & wxTE_MULTILINE) - { - len = gtk_text_get_length( GTK_TEXT(m_text) ); - text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len ); - } - else - { - text = gtk_entry_get_text( GTK_ENTRY(m_text) ); - } - - if (fwrite (text, sizeof (char), len, fp) != (size_t) len) - { - // Did not write whole file - } - - // Make sure newline terminates the file - if (text[len - 1] != '\n') - fputc ('\n', fp); - - fclose (fp); - - if (m_windowStyle & wxTE_MULTILINE) g_free( text ); - - m_modified = FALSE; - return TRUE; - } - - return TRUE; -} - -wxString wxTextCtrl::GetLineText( long lineNo ) const -{ - if (m_windowStyle & wxTE_MULTILINE) - { - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); - char *text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len ); - - if (text) - { - wxString buf(_T("")); - long i; - int currentLine = 0; - for (i = 0; currentLine != lineNo && text[i]; i++ ) - if (text[i] == '\n') - currentLine++; - // Now get the text - int j; - for (j = 0; text[i] && text[i] != '\n'; i++, j++ ) - buf += text[i]; - - g_free( text ); - return buf; - } - else - return wxEmptyString; - } - else - { - if (lineNo == 0) return GetValue(); - return wxEmptyString; - } -} - -void wxTextCtrl::OnDropFiles( wxDropFilesEvent &WXUNUSED(event) ) -{ - /* If you implement this, don't forget to update the documentation! - * (file docs/latex/wx/text.tex) */ - wxFAIL_MSG( _T("wxTextCtrl::OnDropFiles not implemented") ); -} - -long wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const -{ - if ( m_windowStyle & wxTE_MULTILINE ) - { - wxString text = GetValue(); - - // cast to prevent warning. But pos really should've been unsigned. - if( (unsigned long)pos > text.Len() ) - return FALSE; - - *x=0; // First Col - *y=0; // First Line - - const wxChar* stop = text.c_str() + pos; - for ( const wxChar *p = text.c_str(); p < stop; p++ ) - { - if (*p == _T('\n')) - { - (*y)++; - *x=0; - } - else - (*x)++; - } - } - else // single line control - { - if ( pos <= GTK_ENTRY(m_text)->text_length ) - { - *y = 0; - *x = pos; - } - else - { - // index out of bounds - return FALSE; - } - } - - return TRUE; -} - -long wxTextCtrl::XYToPosition(long x, long y ) const -{ - if (!(m_windowStyle & wxTE_MULTILINE)) return 0; - - long pos=0; - for( int i=0; icurrent_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - else - { - gtk_entry_set_position( GTK_ENTRY(m_text), (int)pos ); - - /* bring editable's cursor uptodate. bug in GTK. */ - - GTK_EDITABLE(m_text)->current_pos = pos; - } -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (m_windowStyle & wxTE_MULTILINE) - SetInsertionPoint(gtk_text_get_length(GTK_TEXT(m_text))); - else - gtk_entry_set_position( GTK_ENTRY(m_text), -1 ); -} - -void wxTextCtrl::SetEditable( bool editable ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (m_windowStyle & wxTE_MULTILINE) - gtk_text_set_editable( GTK_TEXT(m_text), editable ); - else - gtk_entry_set_editable( GTK_ENTRY(m_text), editable ); -} - -void wxTextCtrl::SetSelection( long from, long to ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_editable_select_region( GTK_EDITABLE(m_text), (gint)from, (gint)to ); -} - -void wxTextCtrl::ShowPosition( long WXUNUSED(pos) ) -{ -// SetInsertionPoint( pos ); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - wxCHECK_MSG( m_text != NULL, 0, _T("invalid text ctrl") ); - - return (long) GTK_EDITABLE(m_text)->current_pos; -} - -long wxTextCtrl::GetLastPosition() const -{ - wxCHECK_MSG( m_text != NULL, 0, _T("invalid text ctrl") ); - - int pos = 0; - if (m_windowStyle & wxTE_MULTILINE) - pos = gtk_text_get_length( GTK_TEXT(m_text) ); - else - pos = GTK_ENTRY(m_text)->text_length; - - return (long)pos; -} - -void wxTextCtrl::Remove( long from, long to ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to ); -} - -void wxTextCtrl::Replace( long from, long to, const wxString &value ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to ); - if (value.IsNull()) return; - gint pos = (gint)from; -#if wxUSE_UNICODE - wxWX2MBbuf buf = value.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &pos ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos ); -#endif -} - -void wxTextCtrl::Cut() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - -#if (GTK_MINOR_VERSION > 0) - gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) ); -#else - gtk_editable_cut_clipboard( GTK_EDITABLE(m_text), 0 ); -#endif -} - -void wxTextCtrl::Copy() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - -#if (GTK_MINOR_VERSION > 0) - gtk_editable_copy_clipboard( GTK_EDITABLE(m_text) ); -#else - gtk_editable_copy_clipboard( GTK_EDITABLE(m_text), 0 ); -#endif -} - -void wxTextCtrl::Paste() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - -#if (GTK_MINOR_VERSION > 0) - gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) ); -#else - gtk_editable_paste_clipboard( GTK_EDITABLE(m_text), 0 ); -#endif -} - -bool wxTextCtrl::CanCopy() const -{ - // Can copy if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanCut() const -{ - // Can cut if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanPaste() const -{ - return IsEditable() ; -} - -// Undo/redo -void wxTextCtrl::Undo() -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::Undo not implemented") ); -} - -void wxTextCtrl::Redo() -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::Redo not implemented") ); -} - -bool wxTextCtrl::CanUndo() const -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::CanUndo not implemented") ); - return FALSE; -} - -bool wxTextCtrl::CanRedo() const -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::CanRedo not implemented") ); - return FALSE; -} - -// If the return values from and to are the same, there is no -// selection. -void wxTextCtrl::GetSelection(long* from, long* to) const -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (!(GTK_EDITABLE(m_text)->has_selection)) - { - if (from) *from = 0; - if (to) *to = 0; - return; - } - - if (from) *from = (long) GTK_EDITABLE(m_text)->selection_start_pos; - if (to) *to = (long) GTK_EDITABLE(m_text)->selection_end_pos; -} - -bool wxTextCtrl::IsEditable() const -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - return GTK_EDITABLE(m_text)->editable; -} - -void wxTextCtrl::Clear() -{ - SetValue( _T("") ); -} - -void wxTextCtrl::OnChar( wxKeyEvent &key_event ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if ((key_event.KeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER)) - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); - event.SetEventObject(this); - if (GetEventHandler()->ProcessEvent(event)) return; - } - - key_event.Skip(); -} - -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow( int WXUNUSED(c) ) -{ - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return EOF; -} - -int wxTextCtrl::sync() -{ - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -} - -int wxTextCtrl::underflow() -{ - return EOF; -} - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - static char buf[100]; - sprintf(buf, "%.2f", f); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - static char buf[100]; - sprintf(buf, "%.2f", d); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - static char buf[100]; - sprintf(buf, "%i", i); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - static char buf[100]; - sprintf(buf, "%ld", i); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} -#endif - -GtkWidget* wxTextCtrl::GetConnectWidget() -{ - return GTK_WIDGET(m_text); -} - -bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window ) -{ - if (m_windowStyle & wxTE_MULTILINE) - return (window == GTK_TEXT(m_text)->text_area); - else - return (window == GTK_ENTRY(m_text)->text_area); -} - -bool wxTextCtrl::SetFont( const wxFont &WXUNUSED(font) ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - // doesn't work - return FALSE; -} - -bool wxTextCtrl::SetForegroundColour( const wxColour &WXUNUSED(colour) ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - // doesn't work - return FALSE; -} - -bool wxTextCtrl::SetBackgroundColour( const wxColour &colour ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - wxControl::SetBackgroundColour( colour ); - - if (!m_widget->window) - return FALSE; - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg.Red() == colour.Red() && - sysbg.Green() == colour.Green() && - sysbg.Blue() == colour.Blue()) - { - return FALSE; // FIXME or TRUE? - } - - if (!m_backgroundColour.Ok()) - return FALSE; - - if (m_windowStyle & wxTE_MULTILINE) - { - GdkWindow *window = GTK_TEXT(m_text)->text_area; - if (!window) - return FALSE; - m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) ); - gdk_window_set_background( window, m_backgroundColour.GetColor() ); - gdk_window_clear( window ); - } - - return TRUE; -} - -void wxTextCtrl::ApplyWidgetStyle() -{ - if (m_windowStyle & wxTE_MULTILINE) - { - // how ? - } - else - { - SetWidgetStyle(); - gtk_widget_set_style( m_text, m_widgetStyle ); - } -} - -void wxTextCtrl::OnCut(wxCommandEvent& WXUNUSED(event)) -{ - Cut(); -} - -void wxTextCtrl::OnCopy(wxCommandEvent& WXUNUSED(event)) -{ - Copy(); -} - -void wxTextCtrl::OnPaste(wxCommandEvent& WXUNUSED(event)) -{ - Paste(); -} - -void wxTextCtrl::OnUndo(wxCommandEvent& WXUNUSED(event)) -{ - Undo(); -} - -void wxTextCtrl::OnRedo(wxCommandEvent& WXUNUSED(event)) -{ - Redo(); -} - -void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event) -{ - event.Enable( CanCut() ); -} - -void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event) -{ - event.Enable( CanCopy() ); -} - -void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event) -{ - event.Enable( CanPaste() ); -} - -void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event) -{ - event.Enable( CanUndo() ); -} - -void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event) -{ - event.Enable( CanRedo() ); -} diff --git a/src/gtk/threadno.cpp b/src/gtk/threadno.cpp deleted file mode 100644 index 4ac3f05954..0000000000 --- a/src/gtk/threadno.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: Solaris thread support -// Author: Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "thread.h" -#endif - -#include "wx/wx.h" -#include "wx/module.h" -#include "wx/thread.h" -#include "wx/log.h" - -wxMutex::wxMutex() -{ - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked) - wxLogDebug( "wxMutex warning: destroying a locked mutex (%d locks)", m_locked ); -} - -wxMutexError wxMutex::Lock() -{ - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (m_locked > 0) - return wxMUTEX_BUSY; - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked == 0) - return wxMUTEX_UNLOCKED; - m_locked--; - return wxMUTEX_NO_ERROR; -} - -wxCondition::wxCondition() -{ -} - -wxCondition::~wxCondition() -{ -} - -void wxCondition::Wait(wxMutex& WXUNUSED(mutex)) -{ -} - -bool wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) -{ - return FALSE; -} - -void wxCondition::Signal() -{ -} - -void wxCondition::Broadcast() -{ -} - -struct wxThreadInternal -{ - int thread_id; - void* exit_status; -}; - -wxThreadError wxThread::Create() -{ - p_internal->exit_status = Entry(); - OnExit(); - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - return wxTHREAD_NOT_RUNNING; -} - -wxThreadError wxThread::Pause() -{ - return wxTHREAD_NOT_RUNNING; -} - -wxThreadError wxThread::Resume() -{ - return wxTHREAD_NOT_RUNNING; -} - -void wxThread::DeferDestroy( bool WXUNUSED(on) ) -{ -} - -void wxThread::TestDestroy() -{ -} - -void *wxThread::Join() -{ - return p_internal->exit_status; -} - -unsigned long wxThread::GetID() const -{ - return 0; -} - -bool wxThread::IsMain() -{ - return TRUE; -} - -bool wxThread::IsRunning() const -{ - return FALSE; -} - -bool wxThread::IsAlive() const -{ - return FALSE; -} - -void wxThread::SetPriority(int WXUNUSED(prio)) { } -int wxThread::GetPriority() const { return 0; } - -wxMutex *wxMainMutex; // controls access to all GUI functions - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -bool wxThreadModule::OnInit() -{ - wxMainMutex = new wxMutex(); - wxMainMutex->Lock(); - return TRUE; -} - -void wxThreadModule::OnExit() -{ - wxMainMutex->Unlock(); - delete wxMainMutex; -} - - - -void wxMutexGuiEnter() -{ -} - -void wxMutexGuiLeave() -{ -} diff --git a/src/gtk/threadsgi.cpp b/src/gtk/threadsgi.cpp deleted file mode 100644 index 217f67d7d9..0000000000 --- a/src/gtk/threadsgi.cpp +++ /dev/null @@ -1,269 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: threadsgi.cpp -// Purpose: wxThread (SGI) Implementation -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include -#include - -#include -#include -#include -#include "wx/thread.h" -#include "wx/module.h" -#include "wx/utils.h" -#include "wx/log.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -enum thread_state -{ - STATE_IDLE = 0, - STATE_RUNNING, - STATE_CANCELED, - STATE_EXITED -}; - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -static int p_mainid; -wxMutex *wxMainMutex; - -#include "threadgui.inc" - -///////////////////////////////////////////////////////////////////////////// -// Unix implementations (SGI threads) -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - abilock_t p_mutex; -}; - -wxMutex::wxMutex() -{ - m_locked = 0; - p_internal = new wxMutexInternal; - init_lock(&(p_internal->p_mutex)); -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxLogDebug( "wxMutex warning: freeing a locked mutex (%d locks)\n", m_locked ); - delete p_internal; -} - -wxMutexError wxMutex::Lock() -{ - spin_lock(&(p_internal->p_mutex)); - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (acquire_lock(&(p_internal->p_mutex)) != 0) - return wxMUTEX_BUSY; - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked == 0) - return wxMUTEX_UNLOCKED; - release_lock(&(p_internal->p_mutex)); - m_locked--; - return wxMUTEX_NO_ERROR; -} - -// GL: Don't know how it works on SGI. Wolfram ? - -wxCondition::wxCondition() {} -wxCondition::~wxCondition() {} -int wxCondition::Wait(wxMutex& WXUNUSED(mutex)) { return 0;} -int wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) { return 0; } -int wxCondition::Signal() { return 0; } -int wxCondition::Broadcast() { return 0; } - -class -wxThreadPrivate { -public: - wxThreadPrivate() { thread_id = 0; state = STATE_IDLE; } - ~wxThreadPrivate() {} - static void SprocStart(void *ptr); - static void SignalHandler(int sig); -public: - int state, thread_id; - void* exit_status; -}; - -void wxThreadPrivate::SprocStart(void *ptr) -{ - void* status; - - wxThread *thr = (wxThread *)ptr; - - thr->p_internal->thread_id = getpid(); - thr->p_internal->exit_status = 0; - status = thr->Entry(); - thr->Exit(status); -} - -void wxThread::Exit(void* status) -{ - wxThread* ptr = this; - THREAD_SEND_EXIT_MSG(ptr); - p_internal->state = STATE_EXITED; - p_internal->exit_status = status; - _exit(0); -} - -wxThreadError wxThread::Create() -{ - if (p_internal->state != STATE_IDLE) - return wxTHREAD_RUNNING; - p_internal->state = STATE_RUNNING; - if (sproc(p_internal->SprocStart, PR_SALL, this) < 0) { - p_internal->state = STATE_IDLE; - return wxTHREAD_NO_RESOURCE; - } - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - if (p_internal->state == STATE_RUNNING) - p_internal->state = STATE_CANCELED; - - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - return wxTHREAD_NO_ERROR; -} - -void *wxThread::Join() -{ - if (p_internal->state != STATE_IDLE) { - bool do_unlock = wxThread::IsMain(); - int stat; - - if (do_unlock) - wxMainMutex->Unlock(); - waitpid(p_internal->thread_id, &stat, 0); - if (do_unlock) - wxMainMutex->Lock(); - if (!WIFEXITED(stat) && !WIFSIGNALED(stat)) - return 0; - p_internal->state = STATE_IDLE; - return p_internal->exit_status; - } - return 0; -} - -unsigned long wxThread::GetID() const -{ - return (unsigned long)p_internal->thread_id; -} - -void wxThread::TestDestroy() -{ - if (p_internal->state == STATE_CANCELED) { - p_internal->exit_status = 0; - _exit(0); - } -} - -void wxThread::SetPriority(int prio) -{ -} - -int wxThread::GetPriority() const -{ - return 0; -} - -bool wxThread::IsMain() -{ - return (int)getpid() == main_id; -} - -bool wxThread::IsAlive() const -{ - return (p_internal->state == STATE_RUNNING); -} - -bool wxThread::IsRunning() const -{ - return (p_internal->state == STATE_RUNNING); -} - -wxThread::wxThread() -{ - p_internal = new wxThreadPrivate(); -} - -wxThread::~wxThread() -{ - Cancel(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Global initialization - -class wxThreadModule : public wxModule -{ -public: - virtual bool OnInit(); - virtual void OnExit(); - -private: - DECLARE_DYNAMIC_CLASS(wxThreadModule) -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -bool wxThreadModule::OnInit() -{ - wxMainMutex = new wxMutex(); - wxThreadGuiInit(); - p_mainid = (int)getpid(); - wxMainMutex->Lock(); - return TRUE; -} - -void wxThreadModule::OnExit() -{ - wxMainMutex->Unlock(); - wxThreadGuiExit(); - delete wxMainMutex; -} - diff --git a/src/gtk/timer.cpp b/src/gtk/timer.cpp deleted file mode 100644 index a1a8a8126a..0000000000 --- a/src/gtk/timer.cpp +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" - -#include "gtk/gtk.h" -/* -#include "glib.h" -*/ - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -/* -static GTimer *g_timer = (GTimer*) NULL; - -void wxStartTimer() -{ - if (g_timer) - { - g_timer_rest( g_timer ); - } - else - { - g_timer = g_timer_new(); - g_timer_start( g_timer ); - } -} - -long wxGetElapsedTime( bool resetTimer ) -{ - gulong res = 0; - if (g_timer) - { - g_timer_elapsed( g_timer, &res ); - if (resetTimer) g_timer_reset( g_timer ); - } - - return res; -} - -bool wxGetLocalTime( long *timeZone, int *dstObserved ) -{ -} - -long wxGetCurrentTime() -{ -} -*/ - - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxTimer,wxObject) - -static gint timeout_callback( gpointer data ) -{ - wxTimer *timer = (wxTimer*)data; - timer->Notify(); - - if (timer->OneShot()) - { - timer->Stop(); - } - - return TRUE; -} - -wxTimer::wxTimer() -{ - m_tag = -1; - m_time = 1000; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); -} - -bool wxTimer::Start( int millisecs, bool oneShot ) -{ - if (millisecs != -1) - { - m_time = millisecs; - } - - m_oneShot = oneShot; - - m_tag = gtk_timeout_add( millisecs, timeout_callback, this ); - - return TRUE; -} - -void wxTimer::Stop() -{ - if (m_tag != -1) - { - gtk_timeout_remove( m_tag ); - m_tag = -1; - } -} - diff --git a/src/gtk/tooltip.cpp b/src/gtk/tooltip.cpp deleted file mode 100644 index 2e400fe04d..0000000000 --- a/src/gtk/tooltip.cpp +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tooltip.cpp -// Purpose: wxToolTip implementation -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "tooltip.h" -#endif - -#include "wx/setup.h" - -#if wxUSE_TOOLTIPS - -#include "wx/window.h" -#include "wx/tooltip.h" - -#include "gtk/gtk.h" -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -static GtkTooltips *ss_tooltips = (GtkTooltips*) NULL; -static GdkColor ss_bg; -static GdkColor ss_fg; - -//----------------------------------------------------------------------------- -// wxToolTip -//----------------------------------------------------------------------------- - -wxToolTip::wxToolTip( const wxString &tip ) -{ - m_text = tip; - m_window = (wxWindow*) NULL; -} - -void wxToolTip::SetTip( const wxString &tip ) -{ - m_text = tip; - Apply( m_window ); -} - -void wxToolTip::Apply( wxWindow *win ) -{ - if (!win) return; - - if (!ss_tooltips) - { - ss_tooltips = gtk_tooltips_new(); - - ss_fg.red = 0; - ss_fg.green = 0; - ss_fg.blue = 0; - gdk_color_alloc( gtk_widget_get_default_colormap(), &ss_fg ); - - ss_bg.red = 65535; - ss_bg.green = 65535; - ss_bg.blue = 50000; - gdk_color_alloc( gtk_widget_get_default_colormap(), &ss_bg ); - -#if (GTK_MINOR_VERSION > 0) - gtk_tooltips_force_window( ss_tooltips ); - - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( ss_tooltips->tip_window ) ); - - g_style->fg[GTK_STATE_NORMAL] = ss_fg; - g_style->bg[GTK_STATE_NORMAL] = ss_bg; - - gtk_widget_set_style( ss_tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( ss_tooltips, &ss_bg, &ss_fg ); -#endif - } - - m_window = win; - - if (m_text.IsEmpty()) - m_window->ApplyToolTip( ss_tooltips, (wxChar*) NULL ); - else - m_window->ApplyToolTip( ss_tooltips, m_text ); -} - -void wxToolTip::Enable( bool flag ) -{ - if (!ss_tooltips) return; - - if (flag) - gtk_tooltips_enable( ss_tooltips ); - else - gtk_tooltips_disable( ss_tooltips ); -} - -void wxToolTip::SetDelay( long msecs ) -{ - if (!ss_tooltips) return; - - gtk_tooltips_set_delay( ss_tooltips, msecs ); -} -#endif - diff --git a/src/gtk/treegtk.cpp b/src/gtk/treegtk.cpp deleted file mode 100644 index 6d8fa194e1..0000000000 --- a/src/gtk/treegtk.cpp +++ /dev/null @@ -1,936 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: wxTreeCtrl -// Author: Denis Pershin -// Modified by: -// Created: 07/05/98 -// RCS-ID: $Id$ -// Copyright: (c) Denis Pershin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "treectrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/gtk/treectrl.h" -#include -#include "wx/log.h" - -#include - -//static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeItem **gtkItem); -//static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem); - -static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data); -static void gtk_treectrl_first_selected_callback(GtkWidget *widget, gpointer data); -static void gtk_treectrl_first_visible_callback(GtkWidget *widget, gpointer data); - -// static void gtk_treectrl_next_callback (GtkWidget *widget, gpointer data); -// static void gtk_treectrl_next_visible_callback (GtkWidget *widget, gpointer data); -// static void gtk_treectrl_next_selected_callback (GtkWidget *widget, gpointer data); - -static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItemId *treeitem); -static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItemId *treeitem); -static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItemId *treeitem); - -static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItemId *treeitem) { - wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner"); - if (owner == NULL) - return; - -// long id = (long)gtk_object_get_data(GTK_OBJECT(widget), "id"); - owner->SendExpanding(GTK_TREE_ITEM(widget)); - owner->SendExpanded(GTK_TREE_ITEM(widget)); -}; - -static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItemId *treeitem) { - wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner"); - if (owner == NULL) - return; - -// long id = (long)gtk_object_get_data(GTK_OBJECT(widget), "id"); - owner->SendCollapsing(GTK_TREE_ITEM(widget)); - owner->SendCollapsed(GTK_TREE_ITEM(widget)); -}; - -static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItemId *treeitem) { - wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner"); - if (owner == NULL) - return; - -// long id = (long)gtk_object_get_data(GTK_OBJECT(widget), "id"); - owner->SendSelChanging(GTK_TREE_ITEM(widget)); - owner->SendSelChanged(GTK_TREE_ITEM(widget)); -} - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) - -#endif - -void wxTreeCtrl::Init() { - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, const wxString& name) { - Init(); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - SetParent(parent); - - if (width <= 0) - width = 100; - if (height <= 0) - height = 30; - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - m_needParent = TRUE; - -printf("precreate\n"); - PreCreation( parent, id, pos, size, style, name ); - -printf("1\n"); - - m_widget = gtk_scrolled_window_new(NULL, NULL); -printf("2\n"); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - -printf("3\n"); - m_tree = GTK_TREE(gtk_tree_new()); - -printf("4\n"); - gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_tree)); -printf("5\n"); - gtk_widget_show(GTK_WIDGET(m_tree)); - - SetName(name); - SetValidator(validator); - -printf("Robert's new insertion code :-)\n"); - m_parent->DoAddChild( this ); -printf("postcreate\n"); - PostCreation(); - - gtk_widget_realize(GTK_WIDGET(m_tree)); - - Show(TRUE); - - return TRUE; -} - -wxTreeCtrl::~wxTreeCtrl(void) { - if (m_textCtrl) - delete m_textCtrl; -} - -// Attributes -static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data) { - int count = (*((int *)data)); - - count++; - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_count_callback, data); -} - -size_t wxTreeCtrl::GetCount() const { - int count = 0; - - if (m_anchor != NULL) - gtk_treectrl_count_callback(GTK_WIDGET(m_anchor), &count); - return count; -} - -unsigned int wxTreeCtrl::GetIndent() const { - return m_tree->indent_value; -} - -void wxTreeCtrl::SetIndent(unsigned int indent) { - m_tree->indent_value = indent; -} - -wxImageList *wxTreeCtrl::GetImageList() const { - return m_imageListNormal; -} - -wxImageList *wxTreeCtrl::GetStateImageList() const { - return m_imageListState; -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList) { - m_imageListNormal = imageList; -} - -void wxTreeCtrl::SetStateImageList(wxImageList *imageList) { - m_imageListState = imageList; -} - -wxString wxTreeCtrl::GetItemText(const wxTreeItemId &item) const { - char *t; - - if (!item.IsOk()) - return wxString(""); - - GtkLabel *l = GTK_LABEL(gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "w_label")); - gtk_label_get(l, &t); - - return t; -} - -int wxTreeCtrl::GetItemImage(const wxTreeItemId& item) const { - if (!item.IsOk()) - return (-1); - - return (int)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "image"); -} - -int wxTreeCtrl::GetItemSelectedImage(const wxTreeItemId& item) const { - if (!item.IsOk()) - return (-1); - - return (int)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "selectedImage"); -} - -wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const { - if (!item.IsOk()) - return NULL; - - return (wxTreeItemData *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "data"); -} - -void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) { - if (!item.IsOk()) - return; - - GtkLabel *l = GTK_LABEL(gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "w_label")); - gtk_label_set(l, text); -} - -void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image) { - if (!item.IsOk()) - return; - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "image", (void *)image); -} - -void wxTreeCtrl::SetItemSelectedImage(const wxTreeItemId& item, int image) { - if (!item.IsOk()) - return; - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "selectedImage", (void *)image); -} - -void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data) { - if (!item.IsOk()) - return; - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "data", data); -} - -bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const { - return GTK_WIDGET_VISIBLE(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - - if (p->subtree == NULL) - return wxFalse; - - if (GTK_TREE(p->subtree)->children == NULL) - return wxFalse; - - if (g_list_length(GTK_TREE(p->subtree)->children) == 0) - return wxFalse; - - return wxTrue; -} - -bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const { - return (((GtkTreeItem *)item)->expanded != 0); -} - -bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return wxFalse; - - if (g_list_index(GTK_TREE(parent)->children, p) == -1) - return wxFalse; - - return wxTrue; -} - -wxTreeItemId wxTreeCtrl::GetRootItem() const { - return m_anchor; -} - -static void gtk_treectrl_first_selected_callback(GtkWidget *widget, gpointer data) { - GtkTreeItem *p = (*((GtkTreeItem **)data)); - - GtkTree *tree = GTK_TREE(GTK_TREE_ITEM(widget)->subtree); - - if (tree->selection != NULL) { - p = (GtkTreeItem *)tree->selection->data; - return; - } - - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_first_selected_callback, data); -} - -wxTreeItemId wxTreeCtrl::GetSelection() const { - GtkTreeItem *p = NULL; - - if (m_anchor == NULL) - return NULL; - - gtk_treectrl_first_selected_callback(GTK_WIDGET(m_anchor), &p); - - return p; -} - -wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const { - if (item.IsOk()) - return (GtkTreeItem *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "parent"); - - return NULL; -} - -wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, long& cookie) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - cookie = 0; - return GTK_TREE_ITEM(g_list_first(GTK_TREE(parent)->children)->data); -} - -wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& item, long& cookie) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - cookie++; - return GTK_TREE_ITEM(g_list_nth(GTK_TREE(parent)->children, cookie)->data); -} - -wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const -{ - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - wxCHECK_MSG( GTK_IS_TREE(parent), NULL, "invalid tree item" ); - - return GTK_TREE_ITEM(g_list_last(GTK_TREE(parent)->children)->data); -} - -wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (g_list_index(GTK_TREE(parent)->children, p) == -1) - return NULL; - - return GTK_TREE_ITEM(g_list_next(g_list_find(GTK_TREE(parent)->children, p))->data); -} - -wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (g_list_index(GTK_TREE(parent)->children, p) == -1) - return NULL; - - return GTK_TREE_ITEM(g_list_previous(g_list_find(GTK_TREE(parent)->children, p))->data); -} - -static void gtk_treectrl_first_visible_callback(GtkWidget *widget, gpointer data) { - GtkTreeItem *p = (*((GtkTreeItem **)data)); - - GtkTree *tree = GTK_TREE(GTK_TREE_ITEM(widget)->subtree); - - if (tree->children != NULL) { - guint len = g_list_length(tree->children); - for (guint i=0; ichildren, i)->data)))) { - p = GTK_TREE_ITEM((GtkTreeItem *)g_list_nth(tree->children, i)->data); - return; - } - } - } - - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_first_visible_callback, data); -} - -wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const { - GtkTreeItem *p = NULL; - - if (m_anchor == NULL) - return NULL; - - gtk_treectrl_first_visible_callback(GTK_WIDGET(m_anchor), &p); - - return p; -} - -wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkTree *parent = GTK_TREE(GTK_WIDGET(p)->parent); - GtkTreeItem *q; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (parent->children == NULL) - return NULL; - - q = GTK_TREE_ITEM(g_list_next(g_list_find(GTK_TREE(parent)->children, p))->data); - - while (q != p) { - q = GTK_TREE_ITEM(g_list_next(g_list_find(GTK_TREE(parent)->children, q))->data); - if (GTK_WIDGET_VISIBLE(GTK_WIDGET(q))) - return q; - } - - return NULL; -} - -wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkTree *parent = GTK_TREE(GTK_WIDGET(p)->parent); - GtkTreeItem *q; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (parent->children == NULL) - return NULL; - - q = GTK_TREE_ITEM(g_list_previous(g_list_find(GTK_TREE(parent)->children, p))->data); - - while (q != p) { - q = GTK_TREE_ITEM(g_list_previous(g_list_find(GTK_TREE(parent)->children, q))->data); - if (GTK_WIDGET_VISIBLE(GTK_WIDGET(q))) - return q; - } - - return NULL; -} - -wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text, int image, - int selectedImage, wxTreeItemData *data) { - return p_InsertItem(0, text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::PrependItem(const wxTreeItemId& parent, - const wxString& text, int image, int selectedImage, - wxTreeItemData *data) { -#warning "Need to implement PrependItem" - return NULL; -} - -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, const wxString& text, - int image, int selectedImage, wxTreeItemData *data) { -#warning "Need to implement InsertItem" - return NULL; -} - -wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parent, - const wxString& text, int image, int selectedImage, - wxTreeItemData *data) { - return p_InsertItem(parent, text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::p_InsertItem(GtkTreeItem *p, - const wxString& text, int image, int selectedImage, - wxTreeItemData *data) { - GtkTreeItem *item; - -printf("begin insert\n"); - - item = GTK_TREE_ITEM(gtk_tree_item_new()); - - GtkHBox *m_box = GTK_HBOX(gtk_hbox_new(FALSE, 0)); - gtk_container_add (GTK_CONTAINER (item), GTK_WIDGET(m_box)); - - gtk_object_set_data(GTK_OBJECT(item), "w_box", m_box); - - const wxBitmap *bmp; - const wxImageList *list; - if ((list = GetImageList(wxIMAGE_LIST_NORMAL)) != NULL) - if ((bmp = list->GetBitmap(image)) != NULL) - if (bmp->Ok()) { - GdkBitmap *mask = NULL; - if (bmp->GetMask()) - mask = bmp->GetMask()->GetBitmap(); - GtkPixmap *m_image_widget = GTK_PIXMAP(gtk_pixmap_new(bmp->GetPixmap(), mask)); - gtk_misc_set_alignment (GTK_MISC (m_image_widget), 0.0, 0.5); - gtk_box_pack_start(GTK_BOX(m_box), GTK_WIDGET(m_image_widget), FALSE, FALSE, 0); - gtk_object_set_data(GTK_OBJECT(item), "w_image", (void *)m_image_widget); - gtk_object_set_data(GTK_OBJECT(item), "image", (void *)image); - gtk_widget_show (GTK_WIDGET(m_image_widget)); - } - GtkLabel *m_label_widget = GTK_LABEL(gtk_label_new ((char *)(const char *)text)); - gtk_misc_set_alignment (GTK_MISC (m_label_widget), 0.5, 0.5); - gtk_box_pack_start(GTK_BOX(m_box), GTK_WIDGET(m_label_widget), FALSE, FALSE, 0); - gtk_object_set_data(GTK_OBJECT(item), "w_label", m_label_widget); - gtk_widget_show (GTK_WIDGET(m_label_widget)); - - gtk_widget_show(GTK_WIDGET(m_box)); - - gtk_object_set_data(GTK_OBJECT(item), "owner", this); - gtk_object_set_data(GTK_OBJECT(item), "data", data); - gtk_object_set_data(GTK_OBJECT(item), "parent", p); - - if (p != 0) { - if (p->subtree == NULL) { - GtkTree *tree = GTK_TREE(gtk_tree_new()); - gtk_tree_item_set_subtree(GTK_TREE_ITEM(p), GTK_WIDGET(tree)); - gtk_widget_show(GTK_WIDGET(tree)); - p->expanded = 1; - } - - gtk_container_add(GTK_CONTAINER(p->subtree), GTK_WIDGET(item)); - } else { -printf("Adding root\n"); -printf("m_tree = %p\n", m_tree); - m_anchor = item; - gtk_container_add(GTK_CONTAINER(m_tree), GTK_WIDGET(item)); - } - - gtk_widget_show(GTK_WIDGET(item)); - - gtk_signal_connect(GTK_OBJECT(item), "select", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "deselect", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "expand", - GTK_SIGNAL_FUNC(gtk_treeitem_expand_callback), (gpointer)this ); - gtk_signal_connect(GTK_OBJECT(item), "collapse", - GTK_SIGNAL_FUNC(gtk_treeitem_collapse_callback), (gpointer)this ); - - return item; -} - -void wxTreeCtrl::Delete(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - GtkTreeItem *parent = GTK_TREE_ITEM(GTK_WIDGET((GtkTreeItem *)item)->parent); - if (parent == NULL) - return; - - gtk_container_remove(GTK_CONTAINER(parent), GTK_WIDGET((GtkTreeItem *)item)); - - return; -} - -void wxTreeCtrl::DeleteAllItems() { - gtk_tree_item_remove_subtree(m_anchor); -} - -void wxTreeCtrl::Expand(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_expand(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -void wxTreeCtrl::Collapse(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_collapse(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_collapse(GTK_TREE_ITEM((GtkTreeItem *)item)); - gtk_tree_item_remove_subtree(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -void wxTreeCtrl::Toggle(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - if (((GtkTreeItem *)item)->expanded) - gtk_tree_item_collapse(GTK_TREE_ITEM((GtkTreeItem *)item)); - else - gtk_tree_item_expand(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -static void gtk_treectrl_unselect_callback(GtkWidget *widget, gpointer data) { - GtkTreeItem *p; - - GtkTree *tree = GTK_TREE(GTK_TREE_ITEM(widget)->subtree); - - if (tree->selection != NULL) { - guint len = g_list_length(tree->selection); - for (guint i=0; iselection, i)->data); - gtk_tree_unselect_child(tree, GTK_WIDGET(p)); - } - } - - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_unselect_callback, data); -} - -void wxTreeCtrl::Unselect() { - if (m_anchor == NULL) - return; - - gtk_treectrl_unselect_callback(GTK_WIDGET(m_anchor), NULL); -} - -void wxTreeCtrl::SelectItem(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_select((GtkTreeItem *)item); -} - -void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item) { -#warning "Need to implement EnsureVisible" -} - -void wxTreeCtrl::ScrollTo(const wxTreeItemId& item) { -#warning "Need to implement ScrollTo" -} - -wxTextCtrl* wxTreeCtrl::EditLabel(const wxTreeItemId& item, - wxClassInfo* textControlClass) { - wxASSERT( textControlClass->IsKindOf(CLASSINFO(wxTextCtrl)) ); -#warning "Need to implement EditLabel" -/* - char *s; - m_editItem = item; - - GtkLabel *m_label = (GtkLabel *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "w_label"); - gtk_label_get(m_label, &s); - - m_textCtrl = new wxTextCtrl(this, -1, s); -// m_textCtrl->SetValue(s); - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "w_edit", m_textCtrl->m_widget); - - gtk_container_remove(GTK_CONTAINER((GtkTreeItem *)item), GTK_WIDGET(m_label)); - gtk_container_add(GTK_CONTAINER((GtkTreeItem *)item), m_textCtrl->m_widget); - -*/ - return m_textCtrl; -} - -wxTextCtrl* wxTreeCtrl::GetEditControl() const { - return m_textCtrl; -} - -void wxTreeCtrl::EndEditLabel(const wxTreeItemId& item, bool discardChanges) { -#warning "Need to implement EndEditLabel" -/* - GtkLabel *m_label = (GtkLabel *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)m_editItem), "w_label"); - gtk_label_set(m_label, m_textCtrl->GetValue()); - - gtk_object_remove_data(GTK_OBJECT((GtkTreeItem *)m_editItem), "w_edit"); - - gtk_container_remove(GTK_CONTAINER((GtkTreeItem *)m_editItem), m_textCtrl->m_widget); - gtk_container_add(GTK_CONTAINER((GtkTreeItem *)m_editItem), GTK_WIDGET(m_label)); - - delete m_textCtrl; - m_textCtrl = NULL; -*/ -} - -void wxTreeCtrl::ExpandItem(const wxTreeItemId& item, int action) { - switch (action) { - case wxTREE_EXPAND_EXPAND: - Expand(item); - break; - - case wxTREE_EXPAND_COLLAPSE: - Collapse(item); - break; - - case wxTREE_EXPAND_COLLAPSE_RESET: - CollapseAndReset(item); - break; - - case wxTREE_EXPAND_TOGGLE: - Toggle(item); - break; - - default: - wxFAIL_MSG("unknown action in wxTreeCtrl::ExpandItem"); - } -} - -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent, - const wxString& text, int image, int selImage, - long insertAfter) { -// InsertItem(parent, insertAfter, text, image, selImage); - #warning "Need to implement InsertItem" - return NULL; -} - -/* Old functions -long wxTreeCtrl::GetChild(long item) const { - GtkTreeItem *p; - GtkTreeItem *next = NULL; - - p = findGtkTreeItem(item); - GList *list = gtk_container_children(GTK_CONTAINER(p)); - next = GTK_TREE_ITEM(list->data);; - - if (next != NULL) - return (long)gtk_object_get_data(GTK_OBJECT(next), "id"); - - return (-1); -} - -long wxTreeCtrl::GetFirstVisibleItem(void) const { - GtkTreeItem *next = NULL; - - GList *list = gtk_container_children(GTK_CONTAINER(m_anchor)); - next = GTK_TREE_ITEM(list->data);; -// gtk_container_foreach(GTK_CONTAINER(m_anchor), gtk_treectrl_next_visible_callback, &next); - - if (next != NULL) - return (long)gtk_object_get_data(GTK_OBJECT(next), "id"); - - return (-1); -} - -long wxTreeCtrl::GetNextVisibleItem(long item) const { - GtkTreeItem *p; - GtkTreeItem *next = NULL; - - p = findGtkTreeItem(item); - GList *list = gtk_container_children(GTK_CONTAINER(p)); - next = GTK_TREE_ITEM(list->data);; -// gtk_container_foreach(GTK_CONTAINER(p), gtk_treectrl_next_visible_callback, &next); - - if (next != NULL) - return (long)gtk_object_get_data(GTK_OBJECT(next), "id"); - - return (-1); -} - -bool wxTreeCtrl::GetItem(wxTreeItem& info) const { - GtkTreeItem *p; - - p = findGtkTreeItem(info.m_itemId); - - if (p == NULL) { - wxLogSysError("TreeCtrl::GetItem failed"); - return FALSE; - } - - wxConvertFromGtkTreeItem(info, p); - - return TRUE; -} - -bool wxTreeCtrl::SetItem(wxTreeItem& info) { - GtkTreeItem *p; - - p = findGtkTreeItem(info.m_itemId); - - if (p == NULL) { - wxLogSysError("TreeCtrl::SetItem failed"); - return FALSE; - } - - wxConvertToGtkTreeItem(this, info, &p); - - return TRUE; -} - -int wxTreeCtrl::GetItemState(long item, long stateMask) const { - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) { - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} -*/ - -// Operations -/* -bool wxTreeCtrl::DeleteChildren(long item) { - GtkTreeItem *p; - - p = findGtkTreeItem(item); - if (p == NULL) - return FALSE; - - gtk_tree_item_remove_subtree(GTK_TREE_ITEM(p)); - - return TRUE; -} -*/ - -/* -long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) { - GtkTreeItem *p; - GtkTreeItem *item = NULL; - - info.m_itemId = m_curitemId; - m_curitemId++; - - wxConvertToGtkTreeItem(this, info, &item); - - if (parent != 0) { - p = findGtkTreeItem(parent); - if (p->subtree == NULL) { - GtkTree *tree = GTK_TREE(gtk_tree_new()); - gtk_tree_item_set_subtree(GTK_TREE_ITEM(p), GTK_WIDGET(tree)); - gtk_widget_show(GTK_WIDGET(tree)); - p->expanded = 1; - } - - gtk_container_add(GTK_CONTAINER(p->subtree), GTK_WIDGET(item)); - } else { - m_anchor = item; - gtk_container_add(GTK_CONTAINER(m_tree), GTK_WIDGET(item)); - } - - if ((info.m_mask & wxTREE_MASK_CHILDREN) != 0) { - GtkTree *tree = GTK_TREE(gtk_tree_new()); - gtk_tree_item_set_subtree(GTK_TREE_ITEM(item), GTK_WIDGET(tree)); - gtk_widget_show(GTK_WIDGET(tree)); - } - - gtk_widget_show(GTK_WIDGET(item)); - - gtk_signal_connect(GTK_OBJECT(item), "select", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "deselect", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "expand", - GTK_SIGNAL_FUNC(gtk_treeitem_expand_callback), (gpointer)this ); - gtk_signal_connect(GTK_OBJECT(item), "collapse", - GTK_SIGNAL_FUNC(gtk_treeitem_collapse_callback), (gpointer)this ); - - return info.m_itemId; -} - -long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image, - int selImage, long insertAfter) { - - wxTreeItem info; - info.m_text = label; - info.m_mask = wxTREE_MASK_TEXT; - if (image > -1) { - info.m_mask |= wxTREE_MASK_IMAGE | wxTREE_MASK_SELECTED_IMAGE; - info.m_image = image; - if (selImage == -1) - info.m_selectedImage = image; - else - info.m_selectedImage = selImage; - } - - return InsertItem(parent, info, insertAfter); -} -*/ - -void wxTreeCtrl::SendMessage(wxEventType command, const wxTreeItemId& item) { - wxTreeEvent event(command, GetId()); - event.SetEventObject(this); - event.m_item = item; - ProcessEvent(event); -} - -void wxTreeCtrl::SendExpanding(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_EXPANDING, item); -} - -void wxTreeCtrl::SendExpanded(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_EXPANDED, item); -} - -void wxTreeCtrl::SendCollapsing(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, item); -} - -void wxTreeCtrl::SendCollapsed(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_COLLAPSED, item); -} - -void wxTreeCtrl::SendSelChanging(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_SEL_CHANGED, item); -} - -void wxTreeCtrl::SendSelChanged(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_SEL_CHANGING, item); -} - -// Tree event -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent) - -wxTreeEvent::wxTreeEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) { - m_code = 0; - m_itemOld = 0; -} diff --git a/src/gtk/utilsgtk.cpp b/src/gtk/utilsgtk.cpp deleted file mode 100644 index dddd561bcc..0000000000 --- a/src/gtk/utilsgtk.cpp +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/utils.h" -#include "wx/string.h" - -#include "wx/intl.h" -#include "wx/log.h" - -#include "wx/process.h" - -#include "wx/unix/execute.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // for O_WRONLY and friends - -#include -#include -#include -#include -#include - -#ifdef HAVE_X11_XKBLIB_H - #ifdef __HPUX__ - /* under HP-UX XKBlib.h defines structures with field named "explicit" - - * which is, of course, an error for a C++ compiler */ - #define explicit __wx_explicit - #endif - - #include "X11/XKBlib.h" - - #ifdef __HPUX__ - #undef explicit - #endif // __HPUX__ -#endif // HAVE_X11_XKBLIB_H - -// ---------------------------------------------------------------------------- -// misc. -// ---------------------------------------------------------------------------- - -void wxBell() -{ - gdk_beep(); -} - -/* Don't synthesize KeyUp events holding down a key and producing - KeyDown events with autorepeat. */ -#ifdef HAVE_X11_XKBLIB_H -bool wxSetDetectableAutoRepeat( bool flag ) -{ - Bool result; - XkbSetDetectableAutoRepeat( GDK_DISPLAY(), flag, &result ); - return result; /* TRUE if keyboard hardware supports this mode */ -} -#else -bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) ) -{ - return FALSE; -} -#endif - -// ---------------------------------------------------------------------------- -// display characterstics -// ---------------------------------------------------------------------------- - -void wxDisplaySize( int *width, int *height ) -{ - if (width) *width = gdk_screen_width(); - if (height) *height = gdk_screen_height(); -} - -void wxGetMousePosition( int* x, int* y ) -{ - gdk_window_get_pointer( (GdkWindow*) NULL, x, y, (GdkModifierType*) NULL ); -} - -bool wxColourDisplay() -{ - return TRUE; -} - -int wxDisplayDepth() -{ - return gdk_window_get_visual( (GdkWindow*) &gdk_root_parent )->depth; -} - -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - if (majorVsn) *majorVsn = GTK_MAJOR_VERSION; - if (minorVsn) *minorVsn = GTK_MINOR_VERSION; - - return wxGTK; -} - -// ---------------------------------------------------------------------------- -// subprocess routines -// ---------------------------------------------------------------------------- - -static void GTK_EndProcessDetector(gpointer data, gint source, - GdkInputCondition WXUNUSED(condition) ) -{ - wxEndProcessData *proc_data = (wxEndProcessData *)data; - - wxHandleProcessTermination(proc_data); - - close(source); - gdk_input_remove(proc_data->tag); -} - -int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) -{ - int tag = gdk_input_add(fd, - GDK_INPUT_READ, - GTK_EndProcessDetector, - (gpointer)proc_data); - - return tag; -} - diff --git a/src/gtk/utilsres.cpp b/src/gtk/utilsres.cpp deleted file mode 100644 index 4dc2843925..0000000000 --- a/src/gtk/utilsres.cpp +++ /dev/null @@ -1,367 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -//#ifdef __GNUG__ -//#pragma implementation "utils.h" -//#endif - -#include "wx/utils.h" -#include "wx/string.h" -#include "wx/list.h" - -#include -#include -#include -#ifdef __SVR4__ -#include -#endif - -#include "gdk/gdkx.h" // GDK_DISPLAY -#include "gdk/gdkprivate.h" // gdk_progclass - -#include -#include -#include - -#include "wx/log.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -// Yuck this is really BOTH site and platform dependent -// so we should use some other strategy! -#ifdef __SUN__ - #define DEFAULT_XRESOURCE_DIR _T("/usr/openwin/lib/app-defaults") -#else - #define DEFAULT_XRESOURCE_DIR _T("/usr/lib/X11/app-defaults") -#endif - -//----------------------------------------------------------------------------- -// glabal data (data.cpp) -//----------------------------------------------------------------------------- - -extern wxResourceCache *wxTheResourceCache; -extern XrmDatabase wxResourceDatabase; - -//----------------------------------------------------------------------------- -// utility functions for get/write resources -//----------------------------------------------------------------------------- - -static wxChar *GetResourcePath(wxChar *buf, wxChar *name, bool create) -{ - if (create && FileExists(name)) - { - wxStrcpy(buf, name); - return buf; // Exists so ... - } - if (*name == _T('/')) - wxStrcpy(buf, name); - else - { - // Put in standard place for resource files if not absolute - wxStrcpy(buf, DEFAULT_XRESOURCE_DIR); - wxStrcat(buf, _T("/")); - wxStrcat(buf, FileNameFromPath(name)); - } - if (create) - { - // Touch the file to create it - FILE *fd = fopen(wxConv_file.cWX2MB(buf), "w"); - if (fd) fclose(fd); - } - return buf; -} - -// Read $HOME for what it says is home, if not -// read $USER or $LOGNAME for user name else determine -// the Real User, then determine the Real home dir. -static wxChar *GetIniFile(wxChar *dest, const wxChar *filename) -{ - const wxChar *home = (const wxChar *) NULL; - if (filename && wxIsAbsolutePath(filename)) - { - wxStrcpy(dest, filename); - } - else - { - if ((home = wxGetUserHome(wxString())) != NULL) - { - wxStrcpy(dest, home); - if (dest[wxStrlen(dest) - 1] != _T('/')) wxStrcat(dest, _T("/")); - if (filename == NULL) - { - if ((filename = wxGetenv(_T("XENVIRONMENT"))) == NULL) filename = _T(".Xdefaults"); - } - else - if (*filename != _T('.')) wxStrcat(dest, _T(".")); - wxStrcat(dest, filename); - } - else - { - dest[0] = _T('\0'); - } - } - return dest; -} - -static void wxXMergeDatabases() -{ - XrmDatabase homeDB, serverDB, applicationDB; - wxChar filenamebuf[1024]; - - wxChar *filename = &filenamebuf[0]; - wxChar *environment; - char *classname = gdk_progclass; // Robert Roebling ?? - char name[256]; - (void)strcpy(name, "/usr/lib/X11/app-defaults/"); - (void)strcat(name, classname ? classname : "wxWindows"); - - // Get application defaults file, if any - if ((applicationDB = XrmGetFileDatabase(name))) - (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase); - - // Merge server defaults, created by xrdb, loaded as a property of the root - // window when the server initializes and loaded into the display - // structure on XOpenDisplay; - // if not defined, use .Xdefaults - if (XResourceManagerString(GDK_DISPLAY()) != NULL) - { - serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY())); - } - else - { - (void)GetIniFile(filename, (wxChar *) NULL); - serverDB = XrmGetFileDatabase(wxConv_file.cWX2MB(filename)); - } - if (serverDB) - XrmMergeDatabases(serverDB, &wxResourceDatabase); - - // Open XENVIRONMENT file, or if not defined, the .Xdefaults, - // and merge into existing database - - if ((environment = wxGetenv(_T("XENVIRONMENT"))) == NULL) - { - size_t len; -#if wxUSE_UNICODE - char hostbuf[1024]; -#endif - environment = GetIniFile(filename, (const wxChar *) NULL); - len = wxStrlen(environment); -#if !defined(SVR4) || defined(__sgi) -#if wxUSE_UNICODE - (void)gethostname(hostbuf, 1024 - len); -#else - (void)gethostname(environment + len, 1024 - len); -#endif -#else -#if wxUSE_UNICODE - (void)sysinfo(SI_HOSTNAME, hostbuf, 1024 - len); -#else - (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len); -#endif -#endif -#if wxUSE_UNICODE - wxStrcat(environment, wxConv_libc.cMB2WX(hostbuf)); -#endif - } - if ((homeDB = XrmGetFileDatabase(wxConv_file.cWX2MB(environment)))) - XrmMergeDatabases(homeDB, &wxResourceDatabase); -} - -//----------------------------------------------------------------------------- -// called on application exit -//----------------------------------------------------------------------------- - -void wxFlushResources() -{ - wxChar nameBuffer[512]; - - wxNode *node = wxTheResourceCache->First(); - while (node) { - wxString str = node->GetKeyString(); - wxChar *file = WXSTRINGCAST str; - // If file doesn't exist, create it first. - (void)GetResourcePath(nameBuffer, file, TRUE); - - XrmDatabase database = (XrmDatabase)node->Data(); - XrmPutFileDatabase(database, wxConv_file.cWX2MB(nameBuffer)); - XrmDestroyDatabase(database); - wxNode *next = node->Next(); -// delete node; - node = next; - } -} - -void wxDeleteResources(const wxChar *file) -{ - wxLogTrace(wxTraceResAlloc, _T("Delete: Number = %d"), wxTheResourceCache->Number()); - wxChar buffer[500]; - (void)GetIniFile(buffer, file); - - wxNode *node = wxTheResourceCache->Find(buffer); - if (node) { - XrmDatabase database = (XrmDatabase)node->Data(); - XrmDestroyDatabase(database); -// delete node; - } -} - -//----------------------------------------------------------------------------- -// resource functions -//----------------------------------------------------------------------------- - -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file ) -{ - wxChar buffer[500]; - - if (!entry) return FALSE; - - (void)GetIniFile(buffer, file); - - XrmDatabase database; - wxNode *node = wxTheResourceCache->Find(buffer); - if (node) - database = (XrmDatabase)node->Data(); - else { - database = XrmGetFileDatabase(wxConv_file.cWX2MB(buffer)); - wxLogTrace(wxTraceResAlloc, _T("Write: Number = %d"), wxTheResourceCache->Number()); - wxTheResourceCache->Append(buffer, (wxObject *)database); - } - char resName[300]; - strcpy(resName, !section.IsNull() ? MBSTRINGCAST section.mb_str() : "wxWindows"); - strcat(resName, "."); - strcat(resName, entry.mb_str()); - XrmPutStringResource(&database, resName, value.mb_str()); - return TRUE; -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file ) -{ - if (!wxResourceDatabase) - wxXMergeDatabases(); - - XrmDatabase database; - if (!file.IsEmpty()) - { - wxChar buffer[500]; - // Is this right? Trying to get it to look in the user's - // home directory instead of current directory -- JACS - (void)GetIniFile(buffer, file); - - wxNode *node = (wxNode*) NULL; /* suppress egcs warning */ - node = wxTheResourceCache->Find(buffer); - if (node) - { - database = (XrmDatabase)node->Data(); - } - else - { - database = XrmGetFileDatabase(wxConv_file.cWX2MB(buffer)); - wxLogTrace(wxTraceResAlloc, _T("Get: Number = %d"), wxTheResourceCache->Number()); - wxTheResourceCache->Append(buffer, (wxObject *)database); - } - } else - database = wxResourceDatabase; - - XrmValue xvalue; - char *str_type[20]; - char buf[150]; - strcpy(buf, section.mb_str()); - strcat(buf, "."); - strcat(buf, entry.mb_str()); - - bool success = XrmGetResource(database, buf, "*", str_type, &xvalue); - // Try different combinations of upper/lower case, just in case... - if (!success) - { - buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0])); - success = XrmGetResource(database, buf, "*", str_type, &xvalue); - } - if (success) - { - if (*value) - delete[] *value; - *value = new char[xvalue.size + 1]; - strncpy(*value, xvalue.addr, (int)xvalue.size); - return TRUE; - } - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file ) -{ - char *s = (char *) NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) - { - *value = (float)strtod(s, (char **) NULL); - delete[]s; - return TRUE; - } else - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file ) -{ - char *s = (char *) NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) - { - *value = strtol(s, (char **) NULL, 10); - delete[]s; - return TRUE; - } else - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file ) -{ - char *s = (char *) NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) - { - // Handle True, False here - // True, Yes, Enables, Set or Activated - if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A') - *value = TRUE; - // False, No, Disabled, Reset, Cleared, Deactivated - else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C') - *value = FALSE; - // Handle as Integer - else - *value = (int)strtol(s, (char **) NULL, 10); - delete[]s; - return TRUE; - } else - return FALSE; -}; - diff --git a/src/gtk/verti.xbm b/src/gtk/verti.xbm deleted file mode 100644 index 2dd9dc4c05..0000000000 --- a/src/gtk/verti.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define verti_width 15 -#define verti_height 15 -static char verti_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/gtk/wave.cpp b/src/gtk/wave.cpp deleted file mode 100644 index 80a679ebb8..0000000000 --- a/src/gtk/wave.cpp +++ /dev/null @@ -1,229 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave -// Author: Marcel Rasche -// Modified by: -// Created: 25/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include - -#if wxUSE_WAVE - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#include -#include -#include -#include -#include - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/file.h" -#include "wx/wave.h" - -//----------------------------------------------------------------- -// wxWave -//----------------------------------------------------------------- - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(isResource) -{ - Create(sFileName, isResource); -} - -wxWave::wxWave(int size, const wxByte* data) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(size, data); -} - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - if (isResource) - { - // todo - return (m_waveData ? TRUE : FALSE); - } - else - { - m_isResource = FALSE; - - wxFile fileWave; - if (!fileWave.Open(fileName, wxFile::read)) - { - return FALSE; - } - - m_waveLength = (int) fileWave.Length(); - - m_waveData = new wxByte[m_waveLength]; - if (!m_waveData) - { - return FALSE; - } - - fileWave.Read(m_waveData, m_waveLength); - - return TRUE; - } -} - -bool wxWave::Create(int size, const wxByte* data) -{ - Free(); - m_isResource = FALSE; - m_waveLength=size; - m_waveData = new wxByte[size]; - if (!m_waveData) - { - return FALSE; - } - - for (int i=0; i 65536) - return FALSE; - if ( ioctl(dev,SNDCTL_DSP_SAMPLESIZE,&iDataBits) < 0 ) - return FALSE; - if ( ioctl(dev,SNDCTL_DSP_STEREO,&iChannel) < 0 ) - return FALSE; - if ( ioctl(dev,SNDCTL_DSP_SPEED,&ulSamplingRate) < 0 ) - return FALSE; - - return TRUE; -} -#endif - diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c deleted file mode 100644 index 1c885094af..0000000000 --- a/src/gtk/win_gtk.c +++ /dev/null @@ -1,725 +0,0 @@ -/* /////////////////////////////////////////////////////////////////////////// -// Name: win_gtk.c -// Purpose: native GTK+ widget for wxWindows -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////// */ - -#include "wx/gtk/win_gtk.h" -#include "gtk/gtksignal.h" -#include "gtk/gtknotebook.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -static void gtk_myfixed_class_init (GtkMyFixedClass *klass); -static void gtk_myfixed_init (GtkMyFixed *myfixed); -static void gtk_myfixed_map (GtkWidget *widget); -#if (GTK_MINOR_VERSION == 0) -static void gtk_myfixed_unmap (GtkWidget *widget); -#endif -static void gtk_myfixed_realize (GtkWidget *widget); -static void gtk_myfixed_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_myfixed_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_myfixed_paint (GtkWidget *widget, - GdkRectangle *area); -static void gtk_myfixed_draw (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_myfixed_expose (GtkWidget *widget, - GdkEventExpose *event); -static void gtk_myfixed_add (GtkContainer *container, - GtkWidget *widget); -static void gtk_myfixed_remove (GtkContainer *container, - GtkWidget *widget); -static void gtk_myfixed_foreach (GtkContainer *container, -#if (GTK_MINOR_VERSION > 0) - gboolean include_internals, -#endif - GtkCallback callback, - gpointer callback_data); -#if (GTK_MINOR_VERSION > 0) -static GtkType gtk_myfixed_child_type (GtkContainer *container); -#endif - -#if (GTK_MINOR_VERSION > 0) -static void gtk_myfixed_scroll_set_adjustments (GtkMyFixed *myfixed, - GtkAdjustment *hadj, - GtkAdjustment *vadj); -#endif - - - -static GtkContainerClass *parent_class = NULL; - -guint -gtk_myfixed_get_type () -{ - static guint myfixed_type = 0; - - if (!myfixed_type) - { - GtkTypeInfo myfixed_info = - { - "GtkMyFixed", - sizeof (GtkMyFixed), - sizeof (GtkMyFixedClass), - (GtkClassInitFunc) gtk_myfixed_class_init, - (GtkObjectInitFunc) gtk_myfixed_init, -#if (GTK_MINOR_VERSION > 0) - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, -#else - (GtkArgSetFunc) NULL, - (GtkArgGetFunc) NULL, -#endif - }; - myfixed_type = gtk_type_unique (gtk_container_get_type (), &myfixed_info); - } - - return myfixed_type; -} - -static void -gtk_myfixed_class_init (GtkMyFixedClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - object_class = (GtkObjectClass*) klass; - widget_class = (GtkWidgetClass*) klass; - container_class = (GtkContainerClass*) klass; - -#if (GTK_MINOR_VERSION > 0) - parent_class = gtk_type_class (GTK_TYPE_CONTAINER); -#else - parent_class = gtk_type_class (gtk_container_get_type ()); -#endif - - widget_class->map = gtk_myfixed_map; -#if (GTK_MINOR_VERSION == 0) - widget_class->unmap = gtk_myfixed_unmap; -#endif - widget_class->realize = gtk_myfixed_realize; - widget_class->size_request = gtk_myfixed_size_request; - widget_class->size_allocate = gtk_myfixed_size_allocate; - widget_class->draw = gtk_myfixed_draw; - widget_class->expose_event = gtk_myfixed_expose; - - container_class->add = gtk_myfixed_add; - container_class->remove = gtk_myfixed_remove; -#if (GTK_MINOR_VERSION > 0) - container_class->forall = gtk_myfixed_foreach; -#else - container_class->foreach = gtk_myfixed_foreach; -#endif - -#if (GTK_MINOR_VERSION > 0) - container_class->child_type = gtk_myfixed_child_type; -#endif - -#if (GTK_MINOR_VERSION > 0) - klass->set_scroll_adjustments = gtk_myfixed_scroll_set_adjustments; - - widget_class->set_scroll_adjustments_signal = - gtk_signal_new ("set_scroll_adjustments", - GTK_RUN_LAST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkMyFixedClass, set_scroll_adjustments), - gtk_marshal_NONE__POINTER_POINTER, - GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); -#endif -} - -#if (GTK_MINOR_VERSION > 0) -static GtkType -gtk_myfixed_child_type (GtkContainer *container) -{ - return GTK_TYPE_WIDGET; -} -#endif - -static void -gtk_myfixed_init (GtkMyFixed *myfixed) -{ - GTK_WIDGET_UNSET_FLAGS (myfixed, GTK_NO_WINDOW); - -#if (GTK_MINOR_VERSION == 0) - GTK_WIDGET_SET_FLAGS (myfixed, GTK_BASIC); -#endif - -#if (GTK_MINOR_VERSION > 0) - myfixed->shadow_type = GTK_SHADOW_NONE; -#endif - - myfixed->children = NULL; -} - -GtkWidget* -gtk_myfixed_new () -{ - GtkMyFixed *myfixed; - - myfixed = gtk_type_new (gtk_myfixed_get_type ()); - - return GTK_WIDGET (myfixed); -} - -#if (GTK_MINOR_VERSION > 0) -void -gtk_myfixed_scroll_set_adjustments (GtkMyFixed *myfixed, - GtkAdjustment *hadj, - GtkAdjustment *vadj) -{ - /* OK, this is embarassing, but this function has to be here */ -} - -void -gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed, - GtkShadowType type) -{ - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - - if ((GtkShadowType) myfixed->shadow_type != type) - { - myfixed->shadow_type = type; - - if (GTK_WIDGET_VISIBLE (myfixed)) - { - gtk_widget_size_allocate (GTK_WIDGET (myfixed), &(GTK_WIDGET (myfixed)->allocation)); - gtk_widget_queue_draw (GTK_WIDGET (myfixed)); - } - } -} -#endif - -void -gtk_myfixed_put (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height) -{ - GtkMyFixedChild *child_info; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - child_info = g_new (GtkMyFixedChild, 1); - child_info->widget = widget; - child_info->x = x; - child_info->y = y; - child_info->width = width; - child_info->height = height; - - gtk_widget_set_parent (widget, GTK_WIDGET (myfixed)); - - myfixed->children = g_list_append (myfixed->children, child_info); - - if (GTK_WIDGET_REALIZED (myfixed)) - gtk_widget_realize (widget); - - if (GTK_WIDGET_VISIBLE (myfixed) && GTK_WIDGET_VISIBLE (widget)) - { - if (GTK_WIDGET_MAPPED (myfixed)) - gtk_widget_map (widget); - - gtk_widget_queue_resize (GTK_WIDGET (myfixed)); - } -} - -void -gtk_myfixed_move (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y) -{ - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (child->widget == widget) - { - gtk_myfixed_set_size( myfixed, widget, x, y, child->width, child->height ); - break; - } - } -} - -void -gtk_myfixed_resize (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 width, - gint16 height) -{ - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (child->widget == widget) - { - gtk_myfixed_set_size( myfixed, widget, child->x, child->y, width, height ); - break; - } - } -} - -void -gtk_myfixed_set_size (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height) -{ - GtkMyFixedChild *child; - GList *children; - GtkAllocation child_allocation; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (child->widget == widget) - { - if ((child->x == x) && - (child->y == y) && - (child->width == width) && - (child->height == height)) return; - - child->x = x; - child->y = y; - child->width = width; - child->height = height; - - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (myfixed)) - { - if ((child->width > 1) && (child->height > 1) && (GTK_WIDGET_REALIZED(widget))) - { - child_allocation.x = child->x; - child_allocation.y = child->y; - child_allocation.width = MAX( child->width, 1 ); - child_allocation.height = MAX( child->height, 1 ); - - /* work around for GTK bug when moving widgets outside - the X window -> do NOT move them entirely outside */ - if (child_allocation.y + child_allocation.height < 0) - child_allocation.y = -child_allocation.height; - if (child_allocation.x + child_allocation.width < 0) - child_allocation.x = -child_allocation.width; - - gtk_widget_size_allocate (widget, &child_allocation); - } - else - { - gtk_widget_queue_resize (GTK_WIDGET (myfixed)); - } - } - break; - } - } -} - -static void -gtk_myfixed_map (GtkWidget *widget) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - myfixed = GTK_MYFIXED (widget); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child->widget) && !GTK_WIDGET_MAPPED (child->widget)) - gtk_widget_map (child->widget); - } - - gdk_window_show (widget->window); -} - -#if (GTK_MINOR_VERSION == 0) -static void -gtk_myfixed_unmap (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); -} -#endif - -static void -gtk_myfixed_realize (GtkWidget *widget) -{ - GtkMyFixed *myfixed; - GdkWindowAttr attributes; - gint attributes_mask; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - myfixed = GTK_MYFIXED (widget); - - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - - attributes.window_type = GDK_WINDOW_CHILD; - -#if (GTK_MINOR_VERSION > 0) - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = widget->allocation.width; - attributes.height = widget->allocation.height; - - if (myfixed->shadow_type != GTK_SHADOW_NONE) - { - attributes.x += 2; - attributes.y += 2; - attributes.width -= 4; - attributes.height -= 4; - } - - if (attributes.width < 2) attributes.width = 2; - if (attributes.height < 2) attributes.height = 2; -#else - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = 32000; - attributes.height = 32000; -#endif - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - attributes.event_mask = gtk_widget_get_events (widget); - attributes.event_mask |= - GDK_EXPOSURE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK | - GDK_BUTTON_MOTION_MASK | - GDK_BUTTON1_MOTION_MASK | - GDK_BUTTON2_MOTION_MASK | - GDK_BUTTON3_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_KEY_PRESS_MASK | - GDK_KEY_RELEASE_MASK | - GDK_ENTER_NOTIFY_MASK | - GDK_LEAVE_NOTIFY_MASK | - GDK_FOCUS_CHANGE_MASK; - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new( gtk_widget_get_parent_window (widget), &attributes, - attributes_mask); - gdk_window_set_user_data (widget->window, widget); - - widget->style = gtk_style_attach (widget->style, widget->window); - gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); -} - -static void -gtk_myfixed_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - GtkRequisition child_requisition; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - g_return_if_fail (requisition != NULL); - - myfixed = GTK_MYFIXED (widget); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child->widget)) - { - gtk_widget_size_request (child->widget, &child_requisition); - } - } - - /* request very little, I'm not sure if requesting nothing - will always have positive effects on stability... */ - requisition->width = 2; - requisition->height = 2; -} - -static void -gtk_myfixed_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkMyFixed *myfixed; - gint border; - GtkMyFixedChild *child; - GtkAllocation child_allocation; - GList *children; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED(widget)); - g_return_if_fail (allocation != NULL); - - myfixed = GTK_MYFIXED (widget); - - widget->allocation = *allocation; -#if (GTK_MINOR_VERSION > 0) - if (myfixed->shadow_type == GTK_SHADOW_NONE) - border = 0; - else - border = 2; -#else - border = 0; -#endif - - if (GTK_WIDGET_REALIZED (widget)) - { - gdk_window_move_resize( widget->window, - allocation->x+border, allocation->y+border, -#if (GTK_MINOR_VERSION > 0) - allocation->width-border*2, allocation->height-border*2 -#else - 32000, 32000 -#endif - ); - } - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - /* please look at the text in wxWindow::DoSetSize() on why the - test GTK_WIDGET_REALIZED() has to be here */ - if (GTK_WIDGET_VISIBLE (child->widget)) - { -/* if (GTK_IS_NOTEBOOK(child->widget) && !GTK_WIDGET_REALIZED(child->widget)) - { - gtk_widget_queue_resize( child->widget ); - } - else */ - { - child_allocation.x = child->x; - child_allocation.y = child->y; - child_allocation.width = MAX( child->width, 1 ); - child_allocation.height = MAX( child->height, 1 ); - - /* work around for GTK bug when moving widgets outside - the X window -> do NOT move them entirely outside */ - if (child_allocation.y + child_allocation.height < 0) - child_allocation.y = -child_allocation.height; - if (child_allocation.x + child_allocation.width < 0) - child_allocation.x = -child_allocation.width; - - gtk_widget_size_allocate (child->widget, &child_allocation); - } - } - } -} - -static void -gtk_myfixed_paint (GtkWidget *widget, - GdkRectangle *area) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - gdk_window_clear_area (widget->window, - area->x, area->y, - area->width, area->height); -} - -static void -gtk_myfixed_draw (GtkWidget *widget, - GdkRectangle *area) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GdkRectangle child_area; - GList *children; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - myfixed = GTK_MYFIXED (widget); - gtk_myfixed_paint (widget, area); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (gtk_widget_intersect (child->widget, area, &child_area)) - gtk_widget_draw (child->widget, &child_area); - } - } -} - -static gint -gtk_myfixed_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GdkEventExpose child_event; - GList *children; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_MYFIXED (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - myfixed = GTK_MYFIXED (widget); - - child_event = *event; - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_NO_WINDOW (child->widget) && - gtk_widget_intersect (child->widget, &event->area, - &child_event.area)) - gtk_widget_event (child->widget, (GdkEvent*) &child_event); - } - } - - return FALSE; -} - -static void -gtk_myfixed_add (GtkContainer *container, - GtkWidget *widget) -{ - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_MYFIXED (container)); - g_return_if_fail (widget != NULL); - - gtk_myfixed_put (GTK_MYFIXED (container), widget, 0, 0, 20, 20 ); -} - -static void -gtk_myfixed_remove (GtkContainer *container, - GtkWidget *widget) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_MYFIXED (container)); - g_return_if_fail (widget != NULL); - - myfixed = GTK_MYFIXED (container); - - children = myfixed->children; - while (children) - { - child = children->data; - - if (child->widget == widget) - { - gboolean was_visible = GTK_WIDGET_VISIBLE (widget); - - gtk_widget_unparent (widget); - - myfixed->children = g_list_remove_link (myfixed->children, children); - g_list_free (children); - g_free (child); - - if (was_visible && GTK_WIDGET_VISIBLE (container)) - gtk_widget_queue_resize (GTK_WIDGET (container)); - - break; - } - - children = children->next; - } -} - -static void -gtk_myfixed_foreach (GtkContainer *container, -#if (GTK_MINOR_VERSION > 0) - gboolean include_internals, -#endif - GtkCallback callback, - gpointer callback_data) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_MYFIXED (container)); - g_return_if_fail (callback != NULL); - - myfixed = GTK_MYFIXED (container); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - (* callback) (child->widget, callback_data); - } -} - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp deleted file mode 100644 index cc3d1edb16..0000000000 --- a/src/gtk/window.cpp +++ /dev/null @@ -1,3038 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ - #pragma implementation "window.h" -#endif - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/dc.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/layout.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" - -#if wxUSE_DRAG_AND_DROP - #include "wx/dnd.h" -#endif - -#if wxUSE_TOOLTIPS - #include "wx/tooltip.h" -#endif - -#include "wx/menu.h" -#include "wx/statusbr.h" -#include "wx/intl.h" -#include "wx/settings.h" -#include "wx/log.h" - -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkkeysyms.h" -#include "wx/gtk/win_gtk.h" - -#include "gdk/gdkx.h" - -//----------------------------------------------------------------------------- -// documentation on internals -//----------------------------------------------------------------------------- - -/* - I have been asked several times about writing some documentation about - the GTK port of wxWindows, especially its internal structures. Obviously, - you cannot understand wxGTK without knowing a little about the GTK, but - some more information about what the wxWindow, which is the base class - for all other window classes, does seems required as well. - - What does wxWindow do? It contains the common interface for the following - jobs of its descendants: - - 1) Define the rudimentary behaviour common to all window classes, such as - resizing, intercepting user input (so as to make it possible to use these - events for special purposes in a derived class), window names etc. - - 2) Provide the possibility to contain and manage children, if the derived - class is allowed to contain children, which holds true for those window - classes which do not display a native GTK widget. To name them, these - classes are wxPanel, wxScrolledWindow, wxDialog, wxFrame. The MDI frame- - work classes are a special case and are handled a bit differently from - the rest. The same holds true for the wxNotebook class. - - 3) Provide the possibility to draw into a client area of a window. This, - too, only holds true for classes that do not display a native GTK widget - as above. - - 4) Provide the entire mechanism for scrolling widgets. This actual inter- - face for this is usually in wxScrolledWindow, but the GTK implementation - is in this class. - - 5) A multitude of helper or extra methods for special purposes, such as - Drag'n'Drop, managing validators etc. - - Normally one might expect, that one wxWindows window would always correspond - to one GTK widget. Under GTK, there is no such allround widget that has all - the functionality. Moreover, the GTK defines a client area as a different - widget from the actual widget you are handling. Last but not least some - special classes (e.g. wxFrame) handle different categories of widgets and - still have the possibility to draw something in the client area. - It was therefore required to write a special purpose GTK widget, that would - represent a client area in the sense of wxWindows capable to do the jobs - 2), 3) and 4). I have written this class and it resides in win_gtk.c of - this directory. - - All windows must have a widget, with which they interact with other under- - lying GTK widgets. It is this widget, e.g. that has to be resized etc and - thw wxWindow class has a member variable called m_widget which holds a - pointer to this widget. When the window class represents a GTK native widget, - this is (in most cases) the only GTK widget the class manages. E.g. the - wxStatitText class handles only a GtkLabel widget a pointer to which you - can find in m_widget (defined in wxWindow) - - When the class has a client area for drawing into and for containing children - it has to handle the client area widget (of the type GtkMyFixed, defined in - win_gtk.c), but there could be any number of widgets, handled by a class - The common rule for all windows is only, that the widget that interacts with - the rest of GTK must be referenced in m_widget and all other widgets must be - children of this widget on the GTK level. The top-most widget, which also - represents the client area, must be in the m_wxwindow field and must be of - the type GtkMyFixed. - - As I said, the window classes that display a GTK native widget only have - one widget, so in the case of e.g. the wxButton class m_widget holds a - pointer to a GtkButton widget. But windows with client areas (for drawing - and children) have a m_widget field that is a pointer to a GtkScrolled- - Window and a m_wxwindow field that is pointer to a GtkMyFixed and this - one is (in the GTK sense) a child of the GtkScrolledWindow. - - If the m_wxwindow field is set, then all input to this widget is inter- - cepted and sent to the wxWindows class. If not, all input to the widget - that gets pointed to by m_widget gets intercepted and sent to the class. - -*/ - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; -extern wxCursor g_globalCursor; -static wxWindow *g_captureWindow = (wxWindow*) NULL; -static wxWindow *g_focusWindow = (wxWindow*) NULL; - -/* hack: we need something to pass to gtk_menu_popup, so we store the time of - the last click here */ -static guint32 gs_timeLastClick = 0; - -//----------------------------------------------------------------------------- -// debug -//----------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -static gint gtk_debug_focus_in_callback( GtkWidget *WXUNUSED(widget), - GdkEvent *WXUNUSED(event), - const wxChar *name ) -{ -/* - static bool s_done = FALSE; - if ( !s_done ) - { - wxLog::AddTraceMask("focus"); - s_done = TRUE; - } - wxLogTrace(_T("FOCUS NOW AT: %s"), name); -*/ - - return FALSE; -} - -void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ) -{ - wxString tmp = name; - tmp += _T(" FROM "); - tmp += window; - - wxChar *s = new wxChar[tmp.Length()+1]; - - wxStrcpy( s, tmp ); - - gtk_signal_connect( GTK_OBJECT(widget), "focus_in_event", - GTK_SIGNAL_FUNC(gtk_debug_focus_in_callback), (gpointer)s ); -} - -#endif // Debug - -//----------------------------------------------------------------------------- -// missing gdk functions -//----------------------------------------------------------------------------- - -void -gdk_window_warp_pointer (GdkWindow *window, - gint x, - gint y) -{ - GdkWindowPrivate *priv; - - if (!window) - window = (GdkWindow*) &gdk_root_parent; - - priv = (GdkWindowPrivate*) window; - - if (!priv->destroyed) - { - XWarpPointer (priv->xdisplay, - None, /* not source window -> move from anywhere */ - priv->xwindow, /* dest window */ - 0, 0, 0, 0, /* not source window -> move from anywhere */ - x, y ); - } -} - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// key event conversion routines -//----------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION == 0) -static guint -gdk_keyval_to_upper (guint keyval) -{ - if (keyval) - { - KeySym lower_val = 0; - KeySym upper_val = 0; - - XConvertCase (keyval, &lower_val, &upper_val); - return upper_val; - } - return 0; -} -#endif - -static long map_to_unmodified_wx_keysym( KeySym keysym ) -{ - guint key_code = 0; - - switch (keysym) - { - case GDK_Shift_L: - case GDK_Shift_R: key_code = WXK_SHIFT; break; - case GDK_Control_L: - case GDK_Control_R: key_code = WXK_CONTROL; break; - case GDK_Meta_L: - case GDK_Meta_R: - case GDK_Alt_L: - case GDK_Alt_R: - case GDK_Super_L: - case GDK_Super_R: key_code = WXK_ALT; break; - case GDK_Menu: key_code = WXK_MENU; break; - case GDK_Help: key_code = WXK_HELP; break; - case GDK_BackSpace: key_code = WXK_BACK; break; - case GDK_ISO_Left_Tab: - case GDK_Tab: key_code = WXK_TAB; break; - case GDK_Linefeed: key_code = WXK_RETURN; break; - case GDK_Clear: key_code = WXK_CLEAR; break; - case GDK_Return: key_code = WXK_RETURN; break; - case GDK_Pause: key_code = WXK_PAUSE; break; - case GDK_Scroll_Lock: key_code = WXK_SCROLL; break; - case GDK_Escape: key_code = WXK_ESCAPE; break; - case GDK_Delete: key_code = WXK_DELETE; break; - case GDK_Home: key_code = WXK_HOME; break; - case GDK_Left: key_code = WXK_LEFT; break; - case GDK_Up: key_code = WXK_UP; break; - case GDK_Right: key_code = WXK_RIGHT; break; - case GDK_Down: key_code = WXK_DOWN; break; - case GDK_Prior: key_code = WXK_PRIOR; break; -// case GDK_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_Next: key_code = WXK_NEXT; break; -// case GDK_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_End: key_code = WXK_END; break; - case GDK_Begin: key_code = WXK_HOME; break; - case GDK_Select: key_code = WXK_SELECT; break; - case GDK_Print: key_code = WXK_PRINT; break; - case GDK_Execute: key_code = WXK_EXECUTE; break; - case GDK_Insert: key_code = WXK_INSERT; break; - case GDK_Num_Lock: key_code = WXK_NUMLOCK; break; - - case GDK_KP_0: key_code = WXK_NUMPAD0; break; - case GDK_KP_1: key_code = WXK_NUMPAD1; break; - case GDK_KP_2: key_code = WXK_NUMPAD2; break; - case GDK_KP_3: key_code = WXK_NUMPAD3; break; - case GDK_KP_4: key_code = WXK_NUMPAD4; break; - case GDK_KP_5: key_code = WXK_NUMPAD5; break; - case GDK_KP_6: key_code = WXK_NUMPAD6; break; - case GDK_KP_7: key_code = WXK_NUMPAD7; break; - case GDK_KP_8: key_code = WXK_NUMPAD8; break; - case GDK_KP_9: key_code = WXK_NUMPAD9; break; - case GDK_KP_Space: key_code = WXK_NUMPAD_SPACE; break; - case GDK_KP_Tab: key_code = WXK_NUMPAD_TAB; break; - case GDK_KP_Enter: key_code = WXK_NUMPAD_ENTER; break; - case GDK_KP_F1: key_code = WXK_NUMPAD_F1; break; - case GDK_KP_F2: key_code = WXK_NUMPAD_F2; break; - case GDK_KP_F3: key_code = WXK_NUMPAD_F3; break; - case GDK_KP_F4: key_code = WXK_NUMPAD_F4; break; - case GDK_KP_Home: key_code = WXK_NUMPAD_HOME; break; - case GDK_KP_Left: key_code = WXK_NUMPAD_LEFT; break; - case GDK_KP_Up: key_code = WXK_NUMPAD_UP; break; - case GDK_KP_Right: key_code = WXK_NUMPAD_RIGHT; break; - case GDK_KP_Down: key_code = WXK_NUMPAD_DOWN; break; - case GDK_KP_Prior: key_code = WXK_NUMPAD_PRIOR; break; -// case GDK_KP_Page_Up: key_code = WXK_NUMPAD_PAGEUP; break; - case GDK_KP_Next: key_code = WXK_NUMPAD_NEXT; break; -// case GDK_KP_Page_Down: key_code = WXK_NUMPAD_PAGEDOWN; break; - case GDK_KP_End: key_code = WXK_NUMPAD_END; break; - case GDK_KP_Begin: key_code = WXK_NUMPAD_BEGIN; break; - case GDK_KP_Insert: key_code = WXK_NUMPAD_INSERT; break; - case GDK_KP_Delete: key_code = WXK_NUMPAD_DELETE; break; - case GDK_KP_Equal: key_code = WXK_NUMPAD_EQUAL; break; - case GDK_KP_Multiply: key_code = WXK_NUMPAD_MULTIPLY; break; - case GDK_KP_Add: key_code = WXK_NUMPAD_ADD; break; - case GDK_KP_Separator: key_code = WXK_NUMPAD_SEPARATOR; break; - case GDK_KP_Subtract: key_code = WXK_NUMPAD_SUBTRACT; break; - case GDK_KP_Decimal: key_code = WXK_NUMPAD_DECIMAL; break; - case GDK_KP_Divide: key_code = WXK_NUMPAD_DIVIDE; break; - - case GDK_F1: key_code = WXK_F1; break; - case GDK_F2: key_code = WXK_F2; break; - case GDK_F3: key_code = WXK_F3; break; - case GDK_F4: key_code = WXK_F4; break; - case GDK_F5: key_code = WXK_F5; break; - case GDK_F6: key_code = WXK_F6; break; - case GDK_F7: key_code = WXK_F7; break; - case GDK_F8: key_code = WXK_F8; break; - case GDK_F9: key_code = WXK_F9; break; - case GDK_F10: key_code = WXK_F10; break; - case GDK_F11: key_code = WXK_F11; break; - case GDK_F12: key_code = WXK_F12; break; - default: - { - if (keysym <= 0xFF) - { - guint upper = gdk_keyval_to_upper( keysym ); - keysym = (upper != 0 ? upper : keysym ); /* to be MSW compatible */ - key_code = keysym; - } - } - } - - return (key_code); -} - -static long map_to_wx_keysym( KeySym keysym ) -{ - guint key_code = 0; - - switch (keysym) - { - case GDK_Menu: key_code = WXK_MENU; break; - case GDK_Help: key_code = WXK_HELP; break; - case GDK_BackSpace: key_code = WXK_BACK; break; - case GDK_ISO_Left_Tab: - case GDK_Tab: key_code = WXK_TAB; break; - case GDK_Linefeed: key_code = WXK_RETURN; break; - case GDK_Clear: key_code = WXK_CLEAR; break; - case GDK_Return: key_code = WXK_RETURN; break; - case GDK_Pause: key_code = WXK_PAUSE; break; - case GDK_Scroll_Lock: key_code = WXK_SCROLL; break; - case GDK_Escape: key_code = WXK_ESCAPE; break; - case GDK_Delete: key_code = WXK_DELETE; break; - case GDK_Home: key_code = WXK_HOME; break; - case GDK_Left: key_code = WXK_LEFT; break; - case GDK_Up: key_code = WXK_UP; break; - case GDK_Right: key_code = WXK_RIGHT; break; - case GDK_Down: key_code = WXK_DOWN; break; - case GDK_Prior: key_code = WXK_PRIOR; break; -// case GDK_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_Next: key_code = WXK_NEXT; break; -// case GDK_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_End: key_code = WXK_END; break; - case GDK_Begin: key_code = WXK_HOME; break; - case GDK_Select: key_code = WXK_SELECT; break; - case GDK_Print: key_code = WXK_PRINT; break; - case GDK_Execute: key_code = WXK_EXECUTE; break; - case GDK_Insert: key_code = WXK_INSERT; break; - case GDK_Num_Lock: key_code = WXK_NUMLOCK; break; - - case GDK_KP_0: key_code = '0'; break; - case GDK_KP_1: key_code = '1'; break; - case GDK_KP_2: key_code = '2'; break; - case GDK_KP_3: key_code = '3'; break; - case GDK_KP_4: key_code = '4'; break; - case GDK_KP_5: key_code = '5'; break; - case GDK_KP_6: key_code = '6'; break; - case GDK_KP_7: key_code = '7'; break; - case GDK_KP_8: key_code = '8'; break; - case GDK_KP_9: key_code = '9'; break; - case GDK_KP_Space: key_code = ' '; break; - case GDK_KP_Tab: key_code = WXK_TAB; break; /* or '\t' ??? */ - case GDK_KP_Enter: key_code = WXK_RETURN; break; /* or '\r' ??? */ - case GDK_KP_F1: key_code = WXK_NUMPAD_F1; break; - case GDK_KP_F2: key_code = WXK_NUMPAD_F2; break; - case GDK_KP_F3: key_code = WXK_NUMPAD_F3; break; - case GDK_KP_F4: key_code = WXK_NUMPAD_F4; break; - case GDK_KP_Home: key_code = WXK_HOME; break; - case GDK_KP_Left: key_code = WXK_LEFT; break; - case GDK_KP_Up: key_code = WXK_UP; break; - case GDK_KP_Right: key_code = WXK_RIGHT; break; - case GDK_KP_Down: key_code = WXK_DOWN; break; - case GDK_KP_Prior: key_code = WXK_PRIOR; break; -// case GDK_KP_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_KP_Next: key_code = WXK_NEXT; break; -// case GDK_KP_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_KP_End: key_code = WXK_END; break; - case GDK_KP_Begin: key_code = WXK_HOME; break; - case GDK_KP_Insert: key_code = WXK_INSERT; break; - case GDK_KP_Delete: key_code = WXK_DELETE; break; - case GDK_KP_Equal: key_code = '='; break; - case GDK_KP_Multiply: key_code = '*'; break; - case GDK_KP_Add: key_code = '+'; break; - case GDK_KP_Separator: key_code = ','; break; - case GDK_KP_Subtract: key_code = '-'; break; - case GDK_KP_Decimal: key_code = '.'; break; - case GDK_KP_Divide: key_code = '/'; break; - - case GDK_F1: key_code = WXK_F1; break; - case GDK_F2: key_code = WXK_F2; break; - case GDK_F3: key_code = WXK_F3; break; - case GDK_F4: key_code = WXK_F4; break; - case GDK_F5: key_code = WXK_F5; break; - case GDK_F6: key_code = WXK_F6; break; - case GDK_F7: key_code = WXK_F7; break; - case GDK_F8: key_code = WXK_F8; break; - case GDK_F9: key_code = WXK_F9; break; - case GDK_F10: key_code = WXK_F10; break; - case GDK_F11: key_code = WXK_F11; break; - case GDK_F12: key_code = WXK_F12; break; - default: - { - if (keysym <= 0xFF) - { - key_code = keysym; - } - } - } - - return (key_code); -} - -//----------------------------------------------------------------------------- -// local code (see below) -//----------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION > 0) - -static void draw_frame( GtkWidget *widget, wxWindow *win ) -{ - if (!win->m_hasVMT) - return; - - int dw = 0; - int dh = 0; - - if (win->HasScrolling()) - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(widget)->klass ); - -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - if (scroll_window->vscrollbar_visible) - { - dw += 15; /* dw += vscrollbar->allocation.width; */ - dw += scroll_class->scrollbar_spacing; - } - - if (scroll_window->hscrollbar_visible) - { - dh += 15; /* dh += hscrollbar->allocation.height; */ - dh += scroll_class->scrollbar_spacing; - } - } - - int dx = 0; - int dy = 0; - if (GTK_WIDGET_NO_WINDOW (widget)) - { - dx += widget->allocation.x; - dy += widget->allocation.y; - } - - if (win->HasFlag(wxRAISED_BORDER)) - { - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - dx, dy, - win->m_width-dw, win->m_height-dh ); - return; - } - - if (win->HasFlag(wxSUNKEN_BORDER)) - { - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_IN, - dx, dy, - win->m_width-dw, win->m_height-dh ); - return; - } -} - -//----------------------------------------------------------------------------- -// "expose_event" of m_widget -//----------------------------------------------------------------------------- - -static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win ) -{ - if (gdk_event->count > 0) return; - draw_frame( widget, win ); -} - -//----------------------------------------------------------------------------- -// "draw" of m_wxwindow -//----------------------------------------------------------------------------- - -static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindow *win ) -{ - draw_frame( widget, win ); -} - -#endif // GTK_MINOR_VERSION > 0 - -//----------------------------------------------------------------------------- -// "expose_event" of m_wxwindow -//----------------------------------------------------------------------------- - -static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxWindow *win ) -{ - if ( !win->m_hasVMT ) - return; - - win->GetUpdateRegion().Union( gdk_event->area.x, - gdk_event->area.y, - gdk_event->area.width, - gdk_event->area.height ); - - if ( gdk_event->count > 0 ) - return; - -/* - printf( "OnExpose from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - win->GetUpdateRegion().Clear(); -} - -//----------------------------------------------------------------------------- -// "draw" of m_wxwindow -//----------------------------------------------------------------------------- - -static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) - return; - - win->GetUpdateRegion().Union( rect->x, rect->y, - rect->width, rect->height ); - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - win->GetUpdateRegion().Clear(); -} - -//----------------------------------------------------------------------------- -// "key_press_event" from any window -//----------------------------------------------------------------------------- - -static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - -/* - printf( "KeyDown-ScanCode is: %d.\n", gdk_event->keyval ); - if (gdk_event->state & GDK_SHIFT_MASK) - printf( "ShiftDown.\n" ); - else - printf( "ShiftUp.\n" ); - if (gdk_event->state & GDK_CONTROL_MASK) - printf( "ControlDown.\n" ); - else - printf( "ControlUp.\n" ); - printf( "\n" ); -*/ - int x = 0; - int y = 0; - GdkModifierType state; - if (gdk_event->window) gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - - long key_code = map_to_unmodified_wx_keysym( gdk_event->keyval ); - - /* sending unknown key events doesn't really make sense */ - if (key_code == 0) return FALSE; - - bool ret = FALSE; - - wxKeyEvent event( wxEVT_KEY_DOWN ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_keyCode = key_code; - event.m_scanCode = gdk_event->keyval; - event.m_x = x; - event.m_y = y; - event.SetEventObject( win ); - ret = win->GetEventHandler()->ProcessEvent( event ); - - key_code = map_to_wx_keysym( gdk_event->keyval ); - - /* wxMSW doesn't send char events with Alt pressed */ - if ((key_code != 0) && - ((gdk_event->state & GDK_MOD1_MASK) == 0) && - ((gdk_event->state & GDK_MOD1_MASK) == 0)) - { - wxKeyEvent event2( wxEVT_CHAR ); - event2.SetTimestamp( gdk_event->time ); - event2.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event2.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); -// event2.m_altDown = (gdk_event->state & GDK_MOD1_MASK); -// event2.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event2.m_keyCode = key_code; - event2.m_scanCode = gdk_event->keyval; - event2.m_x = x; - event2.m_y = y; - event2.SetEventObject( win ); - ret = (ret || win->GetEventHandler()->ProcessEvent( event2 )); - } - -#if wxUSE_ACCEL - if (!ret) - { - wxWindow *ancestor = win; - while (ancestor) - { - int command = ancestor->GetAcceleratorTable()->GetCommand( event ); - if (command != -1) - { - wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command ); - ret = ancestor->GetEventHandler()->ProcessEvent( command_event ); - break; - } - ancestor = ancestor->GetParent(); - } - } -#endif // wxUSE_ACCEL - - /* win is a control: tab can be propagated up */ - if ( (!ret) && - ((gdk_event->keyval == GDK_Tab) || (gdk_event->keyval == GDK_ISO_Left_Tab)) && - (win->HasFlag(wxTE_PROCESS_TAB) == 0)) - { - wxNavigationKeyEvent new_event; - /* GDK reports GDK_ISO_Left_Tab for SHIFT-TAB */ - new_event.SetDirection( (gdk_event->keyval == GDK_Tab) ); - /* CTRL-TAB changes the (parent) window, i.e. switch notebook page */ - new_event.SetWindowChange( (gdk_event->state & GDK_CONTROL_MASK) ); - new_event.SetCurrentFocus( win ); - ret = win->GetEventHandler()->ProcessEvent( new_event ); - } - - /* generate wxID_CANCEL if has been pressed (typically in dialogs) */ - if ( (!ret) && - (gdk_event->keyval == GDK_Escape) ) - { - wxCommandEvent new_event(wxEVT_COMMAND_BUTTON_CLICKED,wxID_CANCEL); - new_event.SetEventObject( win ); - ret = win->GetEventHandler()->ProcessEvent( new_event ); - } - -#if (GTK_MINOR_VERSION > 0) - /* pressing F10 will activate the menu bar of the top frame */ - if ( (!ret) && - (gdk_event->keyval == GDK_F10) ) - { - wxWindow *ancestor = win; - while (ancestor) - { - if (wxIsKindOf(ancestor,wxFrame)) - { - wxFrame *frame = (wxFrame*) ancestor; - wxMenuBar *menubar = frame->GetMenuBar(); - if (menubar) - { - wxNode *node = menubar->GetMenus().First(); - if (node) - { - // doesn't work correctly - // wxMenu *firstMenu = (wxMenu*) node->Data(); - // gtk_menu_item_select( GTK_MENU_ITEM(firstMenu->m_owner) ); - // ret = TRUE; - break; - } - } - } - ancestor = ancestor->GetParent(); - } - } -#endif - -/* - Damn, I forgot why this didn't work, but it didn't work. - - // win is a panel: up can be propagated to the panel - if ((!ret) && (win->m_wxwindow) && (win->m_parent) && (win->m_parent->AcceptsFocus()) && - (gdk_event->keyval == GDK_Up)) - { - win->m_parent->SetFocus(); - ret = TRUE; - } - - // win is a panel: left/right can be propagated to the panel - if ((!ret) && (win->m_wxwindow) && - ((gdk_event->keyval == GDK_Right) || (gdk_event->keyval == GDK_Left) || - (gdk_event->keyval == GDK_Up) || (gdk_event->keyval == GDK_Down))) - { - wxNavigationKeyEvent new_event; - new_event.SetDirection( (gdk_event->keyval == GDK_Right) || (gdk_event->keyval == GDK_Down) ); - new_event.SetCurrentFocus( win ); - ret = win->GetEventHandler()->ProcessEvent( new_event ); - } -*/ - - if (ret) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "key_release_event" from any window -//----------------------------------------------------------------------------- - -static gint gtk_window_key_release_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - -/* - printf( "KeyUp-ScanCode is: %d.\n", gdk_event->keyval ); - if (gdk_event->state & GDK_SHIFT_MASK) - printf( "ShiftDown.\n" ); - else - printf( "ShiftUp.\n" ); - if (gdk_event->state & GDK_CONTROL_MASK) - printf( "ControlDown.\n" ); - else - printf( "ControlUp.\n" ); - printf( "\n" ); -*/ - - long key_code = map_to_unmodified_wx_keysym( gdk_event->keyval ); - - /* sending unknown key events doesn't really make sense */ - if (key_code == 0) return FALSE; - - int x = 0; - int y = 0; - GdkModifierType state; - if (gdk_event->window) gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - - wxKeyEvent event( wxEVT_KEY_UP ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_keyCode = key_code; - event.m_scanCode = gdk_event->keyval; - event.m_x = x; - event.m_y = y; - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_press_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - -/* - wxPrintf( _T("1) OnButtonPress from ") ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( _T(".\n") ); -*/ - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - if (win->m_wxwindow) - { - if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow) && !GTK_WIDGET_HAS_FOCUS (win->m_wxwindow) ) - { - gtk_widget_grab_focus (win->m_wxwindow); - -/* - wxPrintf( _T("GrabFocus from ") ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( _T(".\n") ); -*/ - - } - } - -/* - wxPrintf( _T("2) OnButtonPress from ") ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( _T(".\n") ); -*/ - - wxEventType event_type = wxEVT_LEFT_DOWN; - - if (gdk_event->button == 1) - { - switch (gdk_event->type) - { - case GDK_BUTTON_PRESS: event_type = wxEVT_LEFT_DOWN; break; - case GDK_2BUTTON_PRESS: event_type = wxEVT_LEFT_DCLICK; break; - default: break; - } - } - else if (gdk_event->button == 2) - { - switch (gdk_event->type) - { - case GDK_BUTTON_PRESS: event_type = wxEVT_MIDDLE_DOWN; break; - case GDK_2BUTTON_PRESS: event_type = wxEVT_MIDDLE_DCLICK; break; - default: break; - } - } - else if (gdk_event->button == 3) - { - switch (gdk_event->type) - { - case GDK_BUTTON_PRESS: event_type = wxEVT_RIGHT_DOWN; break; - case GDK_2BUTTON_PRESS: event_type = wxEVT_RIGHT_DCLICK; break; - default: break; - } - } - - wxMouseEvent event( event_type ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK); - event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK); - event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK); - - event.m_x = (long)gdk_event->x; - event.m_y = (long)gdk_event->y; - - // Some control don't have their own X window and thus cannot get - // any events. - - if (!g_captureWindow) - { - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - - if (child->m_isStaticBox) - { - // wxStaticBox is transparent in the box itself - int x = event.m_x; - int y = event.m_y; - int xx1 = child->m_x; - int yy1 = child->m_y; - int xx2 = child->m_x + child->m_width; - int yy2 = child->m_x + child->m_height; - - // left - if (((x >= xx1) && (x <= xx1+10) && (y >= yy1) && (y <= yy2)) || - // right - ((x >= xx2-10) && (x <= xx2) && (y >= yy1) && (y <= yy2)) || - // top - ((x >= xx1) && (x <= xx2) && (y >= yy1) && (y <= yy1+10)) || - // bottom - ((x >= xx1) && (x <= xx2) && (y >= yy2-1) && (y <= yy2))) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - - } - else - { - if ((child->m_wxwindow == (GtkWidget*) NULL) && - (child->m_x <= event.m_x) && - (child->m_y <= event.m_y) && - (child->m_x+child->m_width >= event.m_x) && - (child->m_y+child->m_height >= event.m_y)) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - } - node = node->Next(); - } - } - - event.SetEventObject( win ); - - gs_timeLastClick = gdk_event->time; - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "button_press_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - -/* - printf( "OnButtonRelease from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxEventType event_type = wxEVT_NULL; - - switch (gdk_event->button) - { - case 1: event_type = wxEVT_LEFT_UP; break; - case 2: event_type = wxEVT_MIDDLE_UP; break; - case 3: event_type = wxEVT_RIGHT_UP; break; - } - - wxMouseEvent event( event_type ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK); - event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK); - event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK); - event.m_x = (long)gdk_event->x; - event.m_y = (long)gdk_event->y; - - // Some control don't have their own X window and thus cannot get - // any events. - - if (!g_captureWindow) - { - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - - if (child->m_isStaticBox) - { - // wxStaticBox is transparent in the box itself - int x = event.m_x; - int y = event.m_y; - int xx1 = child->m_x; - int yy1 = child->m_y; - int xx2 = child->m_x + child->m_width; - int yy2 = child->m_x + child->m_height; - - // left - if (((x >= xx1) && (x <= xx1+10) && (y >= yy1) && (y <= yy2)) || - // right - ((x >= xx2-10) && (x <= xx2) && (y >= yy1) && (y <= yy2)) || - // top - ((x >= xx1) && (x <= xx2) && (y >= yy1) && (y <= yy1+10)) || - // bottom - ((x >= xx1) && (x <= xx2) && (y >= yy2-1) && (y <= yy2))) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - - } - else - { - if ((child->m_wxwindow == (GtkWidget*) NULL) && - (child->m_x <= event.m_x) && - (child->m_y <= event.m_y) && - (child->m_x+child->m_width >= event.m_x) && - (child->m_y+child->m_height >= event.m_y)) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - } - node = node->Next(); - } - } - - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "button_release_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "motion_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - if (gdk_event->is_hint) - { - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - gdk_event->x = x; - gdk_event->y = y; - gdk_event->state = state; - } - -/* - printf( "OnMotion from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxMouseEvent event( wxEVT_MOTION ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK); - event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK); - event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK); - - event.m_x = (long)gdk_event->x; - event.m_y = (long)gdk_event->y; - - // Some control don't have their own X window and thus cannot get - // any events. - - if (!g_captureWindow) - { - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - - if (child->m_isStaticBox) - { - // wxStaticBox is transparent in the box itself - int x = event.m_x; - int y = event.m_y; - int xx1 = child->m_x; - int yy1 = child->m_y; - int xx2 = child->m_x + child->m_width; - int yy2 = child->m_x + child->m_height; - - // left - if (((x >= xx1) && (x <= xx1+10) && (y >= yy1) && (y <= yy2)) || - // right - ((x >= xx2-10) && (x <= xx2) && (y >= yy1) && (y <= yy2)) || - // top - ((x >= xx1) && (x <= xx2) && (y >= yy1) && (y <= yy1+10)) || - // bottom - ((x >= xx1) && (x <= xx2) && (y >= yy2-1) && (y <= yy2))) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - - } - else - { - if ((child->m_wxwindow == (GtkWidget*) NULL) && - (child->m_x <= event.m_x) && - (child->m_y <= event.m_y) && - (child->m_x+child->m_width >= event.m_x) && - (child->m_y+child->m_height >= event.m_y)) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - } - node = node->Next(); - } - } - - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "motion_notify_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "focus_in_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_focus_in_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - g_focusWindow = win; - - if (win->m_wxwindow) - { - if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow)) - { - GTK_WIDGET_SET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS); -/* - printf( "SetFocus flag from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - } - } - - -/* - printf( "OnSetFocus from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( " " ); - printf( WXSTRINGCAST win->GetLabel() ); - printf( ".\n" ); -*/ - - wxFocusEvent event( wxEVT_SET_FOCUS, win->GetId() ); - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "focus_out_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - if (win->m_wxwindow) - { - if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow)) - GTK_WIDGET_UNSET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS); - } - -/* - printf( "OnKillFocus from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxFocusEvent event( wxEVT_KILL_FOCUS, win->GetId() ); - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_out_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "enter_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_enter_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - wxMouseEvent event( wxEVT_ENTER_WINDOW ); -#if (GTK_MINOR_VERSION > 0) - event.SetTimestamp( gdk_event->time ); -#endif - event.SetEventObject( win ); - - int x = 0; - int y = 0; - GdkModifierType state = (GdkModifierType)0; - - gdk_window_get_pointer( widget->window, &x, &y, &state ); - - event.m_shiftDown = (state & GDK_SHIFT_MASK); - event.m_controlDown = (state & GDK_CONTROL_MASK); - event.m_altDown = (state & GDK_MOD1_MASK); - event.m_metaDown = (state & GDK_MOD2_MASK); - event.m_leftDown = (state & GDK_BUTTON1_MASK); - event.m_middleDown = (state & GDK_BUTTON2_MASK); - event.m_rightDown = (state & GDK_BUTTON3_MASK); - - event.m_x = (long)x; - event.m_y = (long)y; - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "enter_notify_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "leave_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - wxMouseEvent event( wxEVT_LEAVE_WINDOW ); -#if (GTK_MINOR_VERSION > 0) - event.SetTimestamp( gdk_event->time ); -#endif - event.SetEventObject( win ); - - int x = 0; - int y = 0; - GdkModifierType state = (GdkModifierType)0; - - gdk_window_get_pointer( widget->window, &x, &y, &state ); - - event.m_shiftDown = (state & GDK_SHIFT_MASK); - event.m_controlDown = (state & GDK_CONTROL_MASK); - event.m_altDown = (state & GDK_MOD1_MASK); - event.m_metaDown = (state & GDK_MOD2_MASK); - event.m_leftDown = (state & GDK_BUTTON1_MASK); - event.m_middleDown = (state & GDK_BUTTON2_MASK); - event.m_rightDown = (state & GDK_BUTTON3_MASK); - - event.m_x = (long)x; - event.m_y = (long)y; - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "leave_notify_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "value_changed" from m_vAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_vscroll_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - - if (!win->m_hasVMT) return; - - float diff = win->m_vAdjust->value - win->m_oldVerticalPos; - if (fabs(diff) < 0.2) return; - win->m_oldVerticalPos = win->m_vAdjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_vAdjust->step_increment; - float page_step = win->m_vAdjust->page_increment; - - if (win->IsScrolling()) - { - command = wxEVT_SCROLLWIN_THUMBTRACK; - } - else - { - if (fabs(win->m_vAdjust->value-win->m_vAdjust->lower) < 0.2) command = wxEVT_SCROLLWIN_BOTTOM; - else if (fabs(win->m_vAdjust->value-win->m_vAdjust->upper) < 0.2) command = wxEVT_SCROLLWIN_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEUP; - else command = wxEVT_SCROLLWIN_THUMBTRACK; - } - - int value = (int)(win->m_vAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxVERTICAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "value_changed" from m_hAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_hscroll_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!win->m_hasVMT) return; - - float diff = win->m_hAdjust->value - win->m_oldHorizontalPos; - if (fabs(diff) < 0.2) return; - win->m_oldHorizontalPos = win->m_hAdjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_hAdjust->step_increment; - float page_step = win->m_hAdjust->page_increment; - - if (win->IsScrolling()) - { - command = wxEVT_SCROLLWIN_THUMBTRACK; - } - else - { - if (fabs(win->m_hAdjust->value-win->m_hAdjust->lower) < 0.2) command = wxEVT_SCROLLWIN_BOTTOM; - else if (fabs(win->m_hAdjust->value-win->m_hAdjust->upper) < 0.2) command = wxEVT_SCROLLWIN_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEUP; - else command = wxEVT_SCROLLWIN_THUMBTRACK; - } - - int value = (int)(win->m_hAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxHORIZONTAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" from m_vAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_vscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!win->m_hasVMT) return; - - wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK; - int value = (int)(win->m_vAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxVERTICAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" from m_hAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_hscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!win->m_hasVMT) return; - - wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK; - int value = (int)(win->m_hAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxHORIZONTAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "button_press_event" from scrollbar -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget), - GdkEventButton *WXUNUSED(gdk_event), - wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - -// don't test here as we can release the mouse while being over -// a different window then the slider -// -// if (gdk_event->window != widget->slider) return FALSE; - - win->SetScrolling( TRUE ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" from scrollbar -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_release_callback( GtkRange *widget, - GdkEventButton *WXUNUSED(gdk_event), - wxWindow *win ) -{ - -// don't test here as we can release the mouse while being over -// a different window then the slider -// -// if (gdk_event->window != widget->slider) return FALSE; - - GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(win->m_widget); - - if (widget == GTK_RANGE(scrolledWindow->vscrollbar)) - gtk_signal_emit_by_name( GTK_OBJECT(win->m_hAdjust), "value_changed" ); - else - gtk_signal_emit_by_name( GTK_OBJECT(win->m_vAdjust), "value_changed" ); - - win->SetScrolling( FALSE ); - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// this wxWindowBase function is implemented here (in platform-specific file) -// because it is static and so couldn't be made virtual -// ---------------------------------------------------------------------------- - -wxWindow *wxWindowBase::FindFocus() -{ - return g_focusWindow; -} - -//----------------------------------------------------------------------------- -// "realize" from m_widget -//----------------------------------------------------------------------------- - -/* we cannot set colours, fonts and cursors before the widget has - been realized, so we do this directly after realization */ - -static gint -gtk_window_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (win->m_delayedFont) - win->SetFont( win->GetFont() ); - - if (win->m_delayedBackgroundColour) - win->SetBackgroundColour( win->GetBackgroundColour() ); - - if (win->m_delayedForegroundColour) - win->SetForegroundColour( win->GetForegroundColour() ); - - win->SetCursor( win->GetCursor() ); - - wxWindowCreateEvent event( win ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// InsertChild for wxWindow. -//----------------------------------------------------------------------------- - -/* Callback for wxWindow. This very strange beast has to be used because - * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxNotebook requires a different way to insert - * a child in it. I had opted for creating a wxNotebookPage window class - * which would have made this superfluous (such in the MDI window system), - * but no-one was listening to me... */ - -static void wxInsertChildInWindow( wxWindow* parent, wxWindow* child ) -{ - gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - - if (parent->HasFlag(wxTAB_TRAVERSAL)) - { - /* we now allow a window to get the focus as long as it - doesn't have any children. */ - GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS ); - } -} - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -wxWindow* wxGetActiveWindow() -{ - return g_focusWindow; -} - -//----------------------------------------------------------------------------- -// wxWindow -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase) - -void wxWindow::Init() -{ - // common init - InitBase(); - - // GTK specific - m_widget = (GtkWidget *) NULL; - m_wxwindow = (GtkWidget *) NULL; - - // position/size - m_x = 0; - m_y = 0; - m_width = 0; - m_height = 0; - - m_sizeSet = FALSE; - m_hasVMT = FALSE; - m_needParent = TRUE; - m_isBeingDeleted = FALSE; - - m_hasScrolling = FALSE; - m_isScrolling = FALSE; - - m_hAdjust = (GtkAdjustment*) NULL; - m_vAdjust = (GtkAdjustment*) NULL; - m_oldHorizontalPos = 0.0; - m_oldVerticalPos = 0.0; - - m_resizing = FALSE; - m_scrollGC = (GdkGC*) NULL; - m_widgetStyle = (GtkStyle*) NULL; - - m_insertCallback = (wxInsertChildFunction) NULL; - - m_isStaticBox = FALSE; - m_acceptsFocus = FALSE; -} - -wxWindow::wxWindow() -{ - Init(); -} - -wxWindow::wxWindow( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Init(); - - Create( parent, id, pos, size, style, name ); -} - -bool wxWindow::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - PreCreation( parent, id, pos, size, style, name ); - - m_insertCallback = wxInsertChildInWindow; - - m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxWindow::m_widget"), name ); -#endif - - GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget); - -#ifdef __WXDEBUG__ - debug_focus_in( scrolledWindow->hscrollbar, _T("wxWindow::hsrcollbar"), name ); - debug_focus_in( scrolledWindow->vscrollbar, _T("wxWindow::vsrcollbar"), name ); -#endif - - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - scroll_class->scrollbar_spacing = 0; - - gtk_scrolled_window_set_policy( scrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); - - m_hAdjust = gtk_range_get_adjustment( GTK_RANGE(scrolledWindow->hscrollbar) ); - m_vAdjust = gtk_range_get_adjustment( GTK_RANGE(scrolledWindow->vscrollbar) ); - - m_wxwindow = gtk_myfixed_new(); - -#ifdef __WXDEBUG__ - debug_focus_in( m_wxwindow, _T("wxWindow::m_wxwindow"), name ); -#endif - - gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); - -#if (GTK_MINOR_VERSION > 0) - GtkMyFixed *myfixed = GTK_MYFIXED(m_wxwindow); - - if (HasFlag(wxRAISED_BORDER)) - { - gtk_myfixed_set_shadow_type( myfixed, GTK_SHADOW_OUT ); - } - else if (HasFlag(wxSUNKEN_BORDER)) - { - gtk_myfixed_set_shadow_type( myfixed, GTK_SHADOW_IN ); - } - else - { - gtk_myfixed_set_shadow_type( myfixed, GTK_SHADOW_NONE ); - } -#else // GTK_MINOR_VERSION == 0 - GtkViewport *viewport = GTK_VIEWPORT(scrolledWindow->viewport); - - if (HasFlag(wxRAISED_BORDER)) - { - gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_OUT ); - } - else if (HasFlag(wxSUNKEN_BORDER)) - { - gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_IN ); - } - else - { - gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE ); - } -#endif // GTK_MINOR_VERSION - - if (HasFlag(wxTAB_TRAVERSAL)) - { - /* we now allow a window to get the focus as long as it - doesn't have any children. */ - GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - m_acceptsFocus = FALSE; - } - else - { - GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - m_acceptsFocus = TRUE; - } - -#if (GTK_MINOR_VERSION == 0) - // shut the viewport up - gtk_viewport_set_hadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); - gtk_viewport_set_vadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); -#endif // GTK_MINOR_VERSION == 0 - - // I _really_ don't want scrollbars in the beginning - m_vAdjust->lower = 0.0; - m_vAdjust->upper = 1.0; - m_vAdjust->value = 0.0; - m_vAdjust->step_increment = 1.0; - m_vAdjust->page_increment = 1.0; - m_vAdjust->page_size = 5.0; - gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" ); - m_hAdjust->lower = 0.0; - m_hAdjust->upper = 1.0; - m_hAdjust->value = 0.0; - m_hAdjust->step_increment = 1.0; - m_hAdjust->page_increment = 1.0; - m_hAdjust->page_size = 5.0; - gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" ); - - // these handlers block mouse events to any window during scrolling such as - // motion events and prevent GTK and wxWindows from fighting over where the - // slider should be - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->vscrollbar), "button_press_event", - (GtkSignalFunc)gtk_scrollbar_button_press_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->hscrollbar), "button_press_event", - (GtkSignalFunc)gtk_scrollbar_button_press_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->vscrollbar), "button_release_event", - (GtkSignalFunc)gtk_scrollbar_button_release_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->hscrollbar), "button_release_event", - (GtkSignalFunc)gtk_scrollbar_button_release_callback, (gpointer) this ); - - // these handlers get notified when screen updates are required either when - // scrolling or when the window size (and therefore scrollbar configuration) - // has changed - - gtk_signal_connect( GTK_OBJECT(m_hAdjust), "value_changed", - (GtkSignalFunc) gtk_window_hscroll_callback, (gpointer) this ); - gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed", - (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_hAdjust), "changed", - (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this ); - gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed", - (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this ); - - gtk_widget_show( m_wxwindow ); - - if (m_parent) - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -wxWindow::~wxWindow() -{ - m_isBeingDeleted = TRUE; - m_hasVMT = FALSE; - - if (m_widget) - Show( FALSE ); - - DestroyChildren(); - - if (m_parent) - m_parent->RemoveChild( this ); - - if (m_widgetStyle) - { - gtk_style_unref( m_widgetStyle ); - m_widgetStyle = (GtkStyle*) NULL; - } - - if (m_scrollGC) - { - gdk_gc_unref( m_scrollGC ); - m_scrollGC = (GdkGC*) NULL; - } - - if (m_wxwindow) - { - gtk_widget_destroy( m_wxwindow ); - m_wxwindow = (GtkWidget*) NULL; - } - - if (m_widget) - { - gtk_widget_destroy( m_widget ); - m_widget = (GtkWidget*) NULL; - } -} - -void wxWindow::PreCreation( wxWindow *parent, - wxWindowID id, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name ) -{ - wxASSERT_MSG( !m_needParent || parent, _T("Need complete parent.") ); - - if ( !CreateBase(parent, id, pos, size, style, name) ) - { - wxFAIL_MSG(_T("window creation failed")); - } - - m_width = WidthDefault(size.x); - m_height = HeightDefault(size.y); - - m_x = (int)pos.x; - m_y = (int)pos.y; - - if (!parent) /* some reasonable defaults */ - { - if (m_x == -1) - { - m_x = (gdk_screen_width () - m_width) / 2; - if (m_x < 10) m_x = 10; - } - if (m_y == -1) - { - m_y = (gdk_screen_height () - m_height) / 2; - if (m_y < 10) m_y = 10; - } - } -} - -void wxWindow::PostCreation() -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - - if (m_wxwindow) - { - /* these get reported to wxWindows -> wxPaintEvent */ - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw", - GTK_SIGNAL_FUNC(gtk_window_draw_callback), (gpointer)this ); - -#if (GTK_MINOR_VERSION > 0) - /* these are called when the "sunken" or "raised" borders are drawn */ - gtk_signal_connect( GTK_OBJECT(m_widget), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_own_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "draw", - GTK_SIGNAL_FUNC(gtk_window_own_draw_callback), (gpointer)this ); -#endif - } - - GtkWidget *connect_widget = GetConnectWidget(); - - ConnectWidget( connect_widget ); - - /* we cannot set colours, fonts and cursors before the widget has - been realized, so we do this directly after realization */ - gtk_signal_connect( GTK_OBJECT(connect_widget), "realize", - GTK_SIGNAL_FUNC(gtk_window_realized_callback), (gpointer) this ); - - m_hasVMT = TRUE; -} - -void wxWindow::ConnectWidget( GtkWidget *widget ) -{ - gtk_signal_connect( GTK_OBJECT(widget), "key_press_event", - GTK_SIGNAL_FUNC(gtk_window_key_press_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "key_release_event", - GTK_SIGNAL_FUNC(gtk_window_key_release_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "button_press_event", - GTK_SIGNAL_FUNC(gtk_window_button_press_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "button_release_event", - GTK_SIGNAL_FUNC(gtk_window_button_release_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "motion_notify_event", - GTK_SIGNAL_FUNC(gtk_window_motion_notify_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "focus_in_event", - GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "focus_out_event", - GTK_SIGNAL_FUNC(gtk_window_focus_out_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "enter_notify_event", - GTK_SIGNAL_FUNC(gtk_window_enter_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "leave_notify_event", - GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this ); -} - -bool wxWindow::Destroy() -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - - m_hasVMT = FALSE; - - return wxWindowBase::Destroy(); -} - -void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - wxASSERT_MSG( (m_parent != NULL), _T("wxWindow::SetSize requires parent.\n") ); - - if (m_resizing) return; /* I don't like recursions */ - m_resizing = TRUE; - - if (m_parent->m_wxwindow == NULL) /* i.e. wxNotebook */ - { - /* don't set the size for children of wxNotebook, just take the values. */ - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - else - { - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - int border = 0; - int bottom_border = 0; - - if (GTK_WIDGET_CAN_DEFAULT(m_widget)) - { - /* the default button has a border around it */ - border = 6; - bottom_border = 5; - } - - /* this is the result of hours of debugging: the following code - means that if we have a m_wxwindow and we set the size of - m_widget, m_widget (which is a GtkScrolledWindow) does NOT - automatically propagate its size down to its m_wxwindow, - which is its client area. therefore, we have to tell the - client area directly that it has to resize itself. - this will lead to that m_widget (GtkScrolledWindow) will - calculate how much size it needs for scrollbars etc and - it will then call XXX_size_allocate of its child, which - is m_wxwindow. m_wxwindow in turn will do the same with its - children and so on. problems can arise if this happens - before all the children have been realized as some widgets - stupidy need to be realized during XXX_size_allocate (e.g. - GtkNotebook) and they will segv if called otherwise. this - emergency is tested in gtk_myfixed_size_allocate. Normally - this shouldn't be needed and only gtk_widget_queue_resize() - should be enough to provoke a resize at the next appropriate - moment, but this seems to fail, e.g. when a wxNotebook contains - a wxSplitterWindow: the splitter window's children won't - show up properly resized then. */ - - gtk_myfixed_set_size( GTK_MYFIXED(m_parent->m_wxwindow), - m_widget, - m_x-border, - m_y-border, - m_width+2*border, - m_height+border+bottom_border ); - } - - m_sizeSet = TRUE; - - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - - m_resizing = FALSE; -} - -void wxWindow::OnInternalIdle() -{ - GdkWindow *window = GetConnectWidget()->window; - if (window) - { - wxCursor cursor = m_cursor; - if (g_globalCursor.Ok()) cursor = g_globalCursor; - - if (m_currentGdkCursor != cursor) - { - gdk_window_set_cursor( window, cursor.GetCursor() ); - m_currentGdkCursor = cursor; - } - } - - UpdateWindowUI(); -} - -void wxWindow::DoGetSize( int *width, int *height ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (width) (*width) = m_width; - if (height) (*height) = m_height; -} - -void wxWindow::DoSetClientSize( int width, int height ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_wxwindow) - { - SetSize( width, height ); - } - else - { - int dw = 0; - int dh = 0; - - if (!m_hasScrolling) - { - GtkStyleClass *window_class = m_wxwindow->style->klass; - - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - dw += 2 * window_class->xthickness; - dh += 2 * window_class->ythickness; - } - } - else - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - -#if (GTK_MINOR_VERSION == 0) - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } -#endif - -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - if (scroll_window->vscrollbar_visible) - { - dw += 15; /* dw += vscrollbar->allocation.width; */ - dw += scroll_class->scrollbar_spacing; - } - - if (scroll_window->hscrollbar_visible) - { - dh += 15; /* dh += hscrollbar->allocation.height; */ - dh += scroll_class->scrollbar_spacing; - } - } - - SetSize( width+dw, height+dh ); - } -} - -void wxWindow::DoGetClientSize( int *width, int *height ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_wxwindow) - { - if (width) (*width) = m_width; - if (height) (*height) = m_height; - } - else - { - int dw = 0; - int dh = 0; - - if (!m_hasScrolling) - { - GtkStyleClass *window_class = m_wxwindow->style->klass; - - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - dw += 2 * window_class->xthickness; - dh += 2 * window_class->ythickness; - } - } - else - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - -#if (GTK_MINOR_VERSION == 0) - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - if ( HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER) ) - { - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } -#endif -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - if (scroll_window->vscrollbar_visible) - { - dw += 15; /* dw += vscrollbar->allocation.width; */ - dw += scroll_class->scrollbar_spacing; - } - - if (scroll_window->hscrollbar_visible) - { - dh += 15; /* dh += hscrollbar->allocation.height; */ - dh += scroll_class->scrollbar_spacing; - } - } - - if (width) (*width) = m_width - dw; - if (height) (*height) = m_height - dh; - } -} - -void wxWindow::DoGetPosition( int *x, int *y ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (x) (*x) = m_x; - if (y) (*y) = m_y; -} - -void wxWindow::DoClientToScreen( int *x, int *y ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - GdkWindow *source = (GdkWindow *) NULL; - if (m_wxwindow) - source = m_wxwindow->window; - else - source = m_widget->window; - - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( source, &org_x, &org_y ); - - if (!m_wxwindow) - { - if (GTK_WIDGET_NO_WINDOW (m_widget)) - { - org_x += m_widget->allocation.x; - org_y += m_widget->allocation.y; - } - } - - if (x) *x += org_x; - if (y) *y += org_y; -} - -void wxWindow::DoScreenToClient( int *x, int *y ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - GdkWindow *source = (GdkWindow *) NULL; - if (m_wxwindow) - source = m_wxwindow->window; - else - source = m_widget->window; - - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( source, &org_x, &org_y ); - - if (!m_wxwindow) - { - if (GTK_WIDGET_NO_WINDOW (m_widget)) - { - org_x += m_widget->allocation.x; - org_y += m_widget->allocation.y; - } - } - - if (x) *x -= org_x; - if (y) *y -= org_y; -} - -bool wxWindow::Show( bool show ) -{ - wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") ); - - if (!wxWindowBase::Show(show)) - { - // nothing to do - return FALSE; - } - - if (show) - gtk_widget_show( m_widget ); - else - gtk_widget_hide( m_widget ); - - return TRUE; -} - -bool wxWindow::Enable( bool enable ) -{ - wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") ); - - if (!wxWindowBase::Enable(enable)) - { - // nothing to do - return FALSE; - } - - gtk_widget_set_sensitive( m_widget, enable ); - if ( m_wxwindow ) - gtk_widget_set_sensitive( m_wxwindow, enable ); - - return TRUE; -} - -int wxWindow::GetCharHeight() const -{ - wxCHECK_MSG( (m_widget != NULL), 12, _T("invalid window") ); - - wxCHECK_MSG( m_font.Ok(), 12, _T("invalid font") ); - - GdkFont *font = m_font.GetInternalFont( 1.0 ); - - return font->ascent + font->descent; -} - -int wxWindow::GetCharWidth() const -{ - wxCHECK_MSG( (m_widget != NULL), 8, _T("invalid window") ); - - wxCHECK_MSG( m_font.Ok(), 8, _T("invalid font") ); - - GdkFont *font = m_font.GetInternalFont( 1.0 ); - - return gdk_string_width( font, "H" ); -} - -void wxWindow::GetTextExtent( const wxString& string, - int *x, - int *y, - int *descent, - int *externalLeading, - const wxFont *theFont ) const -{ - wxFont fontToUse = m_font; - if (theFont) fontToUse = *theFont; - - wxCHECK_RET( fontToUse.Ok(), _T("invalid font") ); - - GdkFont *font = fontToUse.GetInternalFont( 1.0 ); - if (x) (*x) = gdk_string_width( font, string.mbc_str() ); - if (y) (*y) = font->ascent + font->descent; - if (descent) (*descent) = font->descent; - if (externalLeading) (*externalLeading) = 0; // ?? -} - -void wxWindow::SetFocus() -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (connect_widget) - { - if (GTK_WIDGET_CAN_FOCUS(connect_widget) /*&& !GTK_WIDGET_HAS_FOCUS (connect_widget)*/ ) - { - gtk_widget_grab_focus (connect_widget); - } - else if (GTK_IS_CONTAINER(connect_widget)) - { - gtk_container_focus( GTK_CONTAINER(connect_widget), GTK_DIR_TAB_FORWARD ); - } - else - { - } - } -} - -bool wxWindow::AcceptsFocus() const -{ - return m_acceptsFocus && wxWindowBase::AcceptsFocus(); -} - -bool wxWindow::Reparent( wxWindow *newParent ) -{ - wxCHECK_MSG( (m_widget != NULL), (wxWindow*) NULL, _T("invalid window") ); - - wxWindow *oldParent = m_parent; - - if ( !wxWindowBase::Reparent(newParent) ) - return FALSE; - - if (oldParent) - { - gtk_container_remove( GTK_CONTAINER(oldParent->m_wxwindow), m_widget ); - } - - if (newParent) - { - /* insert GTK representation */ - (*(newParent->m_insertCallback))(newParent, this); - } - - return TRUE; -} - -void wxWindow::DoAddChild(wxWindow *child) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - - wxASSERT_MSG( (child != NULL), _T("invalid child window") ); - - wxASSERT_MSG( (m_insertCallback != NULL), _T("invalid child insertion function") ); - - /* add to list */ - AddChild( child ); - - /* insert GTK representation */ - (*m_insertCallback)(this, child); -} - -void wxWindow::Raise() -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - gdk_window_raise( m_widget->window ); -} - -void wxWindow::Lower() -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - gdk_window_lower( m_widget->window ); -} - -bool wxWindow::SetCursor( const wxCursor &cursor ) -{ - wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") ); - - if (!wxWindowBase::SetCursor(cursor)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedCursor) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedCursor = TRUE; - - // pretend we have done something - return TRUE; - } - -// gdk_window_set_cursor( connect_widget->window, GetCursor().GetCursor() ); - - // cursor was set - return TRUE; -} - -void wxWindow::WarpPointer( int x, int y ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (connect_widget->window) - { - /* we provide this function ourselves as it is - missing in GDK */ - gdk_window_warp_pointer( connect_widget->window, x, y ); - } -} - -void wxWindow::Refresh( bool eraseBackground, const wxRect *rect ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - if (eraseBackground && m_wxwindow && m_wxwindow->window) - { - if (rect) - { - gdk_window_clear_area( m_wxwindow->window, - rect->x, rect->y, - rect->width, rect->height ); - } - else - { - gdk_window_clear( m_wxwindow->window ); - } - } - - if (!rect) - { - if (m_wxwindow) - gtk_widget_draw( m_wxwindow, (GdkRectangle*) NULL ); - else - gtk_widget_draw( m_widget, (GdkRectangle*) NULL ); - } - else - { - GdkRectangle gdk_rect; - gdk_rect.x = rect->x; - gdk_rect.y = rect->y; - gdk_rect.width = rect->width; - gdk_rect.height = rect->height; - - if (m_wxwindow) - gtk_widget_draw( m_wxwindow, &gdk_rect ); - else - gtk_widget_draw( m_widget, &gdk_rect ); - } -} - -void wxWindow::Clear() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - if (!m_widget->window) return; - - if (m_wxwindow && m_wxwindow->window) - { - gdk_window_clear( m_wxwindow->window ); - } -} - -#if wxUSE_TOOLTIPS -void wxWindow::DoSetToolTip( wxToolTip *tip ) -{ - wxWindowBase::DoSetToolTip(tip); - - if (m_tooltip) - m_tooltip->Apply( this ); -} - -void wxWindow::ApplyToolTip( GtkTooltips *tips, const wxChar *tip ) -{ - gtk_tooltips_set_tip( tips, GetConnectWidget(), wxConv_current->cWX2MB(tip), (gchar*) NULL ); -} -#endif // wxUSE_TOOLTIPS - -bool wxWindow::SetBackgroundColour( const wxColour &colour ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") ); - - if (!wxWindowBase::SetBackgroundColour(colour)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedBackgroundColour) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedBackgroundColour = TRUE; - - // pretend we have done something - return TRUE; - } - - if (m_wxwindow && m_wxwindow->window) - { - /* wxMSW doesn't clear the window here. I don't do that either to - provide compatibility. call Clear() to do the job. */ - - m_backgroundColour.CalcPixel( gdk_window_get_colormap( m_wxwindow->window ) ); - gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() ); - } - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg == m_backgroundColour) - { - m_backgroundColour = wxNullColour; - ApplyWidgetStyle(); - m_backgroundColour = sysbg; - } - else - { - ApplyWidgetStyle(); - } - - return TRUE; -} - -bool wxWindow::SetForegroundColour( const wxColour &colour ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") ); - - if (!wxWindowBase::SetForegroundColour(colour)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedForegroundColour) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedForegroundColour = TRUE; - - // pretend we have done something - return TRUE; - } - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if ( sysbg == m_backgroundColour ) - { - m_backgroundColour = wxNullColour; - ApplyWidgetStyle(); - m_backgroundColour = sysbg; - } - else - { - ApplyWidgetStyle(); - } - - return TRUE; -} - -GtkStyle *wxWindow::GetWidgetStyle() -{ - if (m_widgetStyle) gtk_style_unref( m_widgetStyle ); - - m_widgetStyle = gtk_style_copy( gtk_widget_get_style( m_widget ) ); - - return m_widgetStyle; -} - -void wxWindow::SetWidgetStyle() -{ - GtkStyle *style = GetWidgetStyle(); - - gdk_font_unref( style->font ); - style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) ); - - if (m_foregroundColour.Ok()) - { - m_foregroundColour.CalcPixel( gdk_window_get_colormap( m_widget->window ) ); - style->fg[GTK_STATE_NORMAL] = *m_foregroundColour.GetColor(); - style->fg[GTK_STATE_PRELIGHT] = *m_foregroundColour.GetColor(); - style->fg[GTK_STATE_ACTIVE] = *m_foregroundColour.GetColor(); - } - - if (m_backgroundColour.Ok()) - { - m_backgroundColour.CalcPixel( gdk_window_get_colormap( m_widget->window ) ); - style->bg[GTK_STATE_NORMAL] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_NORMAL] = *m_backgroundColour.GetColor(); - style->bg[GTK_STATE_PRELIGHT] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_PRELIGHT] = *m_backgroundColour.GetColor(); - style->bg[GTK_STATE_ACTIVE] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_ACTIVE] = *m_backgroundColour.GetColor(); - style->bg[GTK_STATE_INSENSITIVE] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_INSENSITIVE] = *m_backgroundColour.GetColor(); - } -} - -void wxWindow::ApplyWidgetStyle() -{ -} - -static void SetInvokingWindow( wxMenu *menu, wxWindow *win ) -{ - menu->SetInvokingWindow( win ); - wxNode *node = menu->GetItems().First(); - while (node) - { - wxMenuItem *menuitem = (wxMenuItem*)node->Data(); - if (menuitem->IsSubMenu()) - { - SetInvokingWindow( menuitem->GetSubMenu(), win ); - } - node = node->Next(); - } -} - -static gint gs_pop_x = 0; -static gint gs_pop_y = 0; - -static void pop_pos_callback( GtkMenu * WXUNUSED(menu), - gint *x, gint *y, - wxWindow *win ) -{ - win->ClientToScreen( &gs_pop_x, &gs_pop_y ); - *x = gs_pop_x; - *y = gs_pop_y; -} - -bool wxWindow::PopupMenu( wxMenu *menu, int x, int y ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") ); - - wxCHECK_MSG( menu != NULL, FALSE, _T("invalid popup-menu") ); - - SetInvokingWindow( menu, this ); - - menu->UpdateUI(); - - gs_pop_x = x; - gs_pop_y = y; - - gtk_menu_popup( - GTK_MENU(menu->m_menu), - (GtkWidget *) NULL, // parent menu shell - (GtkWidget *) NULL, // parent menu item - (GtkMenuPositionFunc) pop_pos_callback, - (gpointer) this, // client data - 0, // button used to activate it - 0 //gs_timeLastClick // the time of activation - ); - return TRUE; -} - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget( wxDropTarget *dropTarget ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - GtkWidget *dnd_widget = GetConnectWidget(); - - if (m_dropTarget) m_dropTarget->UnregisterWidget( dnd_widget ); - - if (m_dropTarget) delete m_dropTarget; - m_dropTarget = dropTarget; - - if (m_dropTarget) m_dropTarget->RegisterWidget( dnd_widget ); -} - -#endif // wxUSE_DRAG_AND_DROP - -GtkWidget* wxWindow::GetConnectWidget() -{ - GtkWidget *connect_widget = m_widget; - if (m_wxwindow) connect_widget = m_wxwindow; - - return connect_widget; -} - -bool wxWindow::IsOwnGtkWindow( GdkWindow *window ) -{ - if (m_wxwindow) return (window == m_wxwindow->window); - return (window == m_widget->window); -} - -bool wxWindow::SetFont( const wxFont &font ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T( "invalid window") ); - - if (!wxWindowBase::SetFont(font)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedFont) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedFont = TRUE; - - // pretend we have done something - return TRUE; - } - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if ( sysbg == m_backgroundColour ) - { - m_backgroundColour = wxNullColour; - ApplyWidgetStyle(); - m_backgroundColour = sysbg; - } - else - { - ApplyWidgetStyle(); - } - - return TRUE; -} - -void wxWindow::CaptureMouse() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( g_captureWindow == NULL, _T("CaptureMouse called twice") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) return; - - gdk_pointer_grab( connect_widget->window, FALSE, - (GdkEventMask) - (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK), - (GdkWindow *) NULL, - m_cursor.GetCursor(), - GDK_CURRENT_TIME ); - g_captureWindow = this; -} - -void wxWindow::ReleaseMouse() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( g_captureWindow, _T("ReleaseMouse called twice") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) return; - - gdk_pointer_ungrab ( GDK_CURRENT_TIME ); - g_captureWindow = (wxWindow*) NULL; -} - -bool wxWindow::IsRetained() const -{ - return FALSE; -} - -void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( m_wxwindow != NULL, _T("window needs client area for scrolling") ); - - m_hasScrolling = TRUE; - - if (orient == wxHORIZONTAL) - { - float fpos = (float)pos; - float frange = (float)range; - float fthumb = (float)thumbVisible; - if (fpos > frange-fthumb) fpos = frange-fthumb; - if (fpos < 0.0) fpos = 0.0; - - if ((fabs(frange-m_hAdjust->upper) < 0.2) && - (fabs(fthumb-m_hAdjust->page_size) < 0.2)) - { - SetScrollPos( orient, pos, refresh ); - return; - } - - m_oldHorizontalPos = fpos; - - m_hAdjust->lower = 0.0; - m_hAdjust->upper = frange; - m_hAdjust->value = fpos; - m_hAdjust->step_increment = 1.0; - m_hAdjust->page_increment = (float)(wxMax(fthumb,0)); - m_hAdjust->page_size = fthumb; - } - else - { - float fpos = (float)pos; - float frange = (float)range; - float fthumb = (float)thumbVisible; - if (fpos > frange-fthumb) fpos = frange-fthumb; - if (fpos < 0.0) fpos = 0.0; - - if ((fabs(frange-m_vAdjust->upper) < 0.2) && - (fabs(fthumb-m_vAdjust->page_size) < 0.2)) - { - SetScrollPos( orient, pos, refresh ); - return; - } - - m_oldVerticalPos = fpos; - - m_vAdjust->lower = 0.0; - m_vAdjust->upper = frange; - m_vAdjust->value = fpos; - m_vAdjust->step_increment = 1.0; - m_vAdjust->page_increment = (float)(wxMax(fthumb,0)); - m_vAdjust->page_size = fthumb; - } - - if (orient == wxHORIZONTAL) - gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" ); - else - gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" ); -} - -void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( m_wxwindow != NULL, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - { - float fpos = (float)pos; - if (fpos > m_hAdjust->upper - m_hAdjust->page_size) fpos = m_hAdjust->upper - m_hAdjust->page_size; - if (fpos < 0.0) fpos = 0.0; - m_oldHorizontalPos = fpos; - - if (fabs(fpos-m_hAdjust->value) < 0.2) return; - m_hAdjust->value = fpos; - } - else - { - float fpos = (float)pos; - if (fpos > m_vAdjust->upper - m_vAdjust->page_size) fpos = m_vAdjust->upper - m_vAdjust->page_size; - if (fpos < 0.0) fpos = 0.0; - m_oldVerticalPos = fpos; - - if (fabs(fpos-m_vAdjust->value) < 0.2) return; - m_vAdjust->value = fpos; - } - - if (!m_isScrolling) /* prevent recursion */ - { - if (m_wxwindow->window) - { - if (orient == wxHORIZONTAL) - gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "value_changed" ); - else - gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" ); - } - } -} - -int wxWindow::GetScrollThumb( int orient ) const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid window") ); - - wxCHECK_MSG( m_wxwindow != NULL, 0, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - return (int)(m_hAdjust->page_size+0.5); - else - return (int)(m_vAdjust->page_size+0.5); -} - -int wxWindow::GetScrollPos( int orient ) const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid window") ); - - wxCHECK_MSG( m_wxwindow != NULL, 0, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - return (int)(m_hAdjust->value+0.5); - else - return (int)(m_vAdjust->value+0.5); -} - -int wxWindow::GetScrollRange( int orient ) const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid window") ); - - wxCHECK_MSG( m_wxwindow != NULL, 0, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - return (int)(m_hAdjust->upper+0.5); - else - return (int)(m_vAdjust->upper+0.5); -} - -void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( m_wxwindow != NULL, _T("window needs client area for scrolling") ); - - if (!m_scrollGC) - { - m_scrollGC = gdk_gc_new( m_wxwindow->window ); - gdk_gc_set_exposures( m_scrollGC, TRUE ); - } - - wxNode *node = m_children.First(); - while (node) - { - wxWindow *child = (wxWindow*) node->Data(); - int sx = 0; - int sy = 0; - child->GetSize( &sx, &sy ); - child->SetSize( child->m_x + dx, child->m_y + dy, sx, sy, wxSIZE_ALLOW_MINUS_ONE ); - node = node->Next(); - } - - int cw = 0; - int ch = 0; - GetClientSize( &cw, &ch ); - int w = cw - abs(dx); - int h = ch - abs(dy); - - if ((h < 0) || (w < 0)) - { - Refresh(); - } - else - { - int s_x = 0; - int s_y = 0; - if (dx < 0) s_x = -dx; - if (dy < 0) s_y = -dy; - int d_x = 0; - int d_y = 0; - if (dx > 0) d_x = dx; - if (dy > 0) d_y = dy; - - gdk_window_copy_area( m_wxwindow->window, m_scrollGC, d_x, d_y, - m_wxwindow->window, s_x, s_y, w, h ); - - wxRect rect; - if (dx < 0) rect.x = cw+dx; else rect.x = 0; - if (dy < 0) rect.y = ch+dy; else rect.y = 0; - if (dy != 0) rect.width = cw; else rect.width = abs(dx); - if (dx != 0) rect.height = ch; else rect.height = abs(dy); - - Refresh( TRUE, &rect ); - } -} - -void wxWindow::SetScrolling(bool scroll) -{ - m_isScrolling = g_blockEventsOnScroll = scroll; -} diff --git a/src/gtk1/.cvsignore b/src/gtk1/.cvsignore deleted file mode 100644 index f5eaa1a859..0000000000 --- a/src/gtk1/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile.in - diff --git a/src/gtk1/Makefile.am b/src/gtk1/Makefile.am deleted file mode 100644 index 4af3fb61fb..0000000000 --- a/src/gtk1/Makefile.am +++ /dev/null @@ -1,213 +0,0 @@ -## Purpose: The automake makefile for wxWindows (src/gtk subdirectory) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUFFIXES = .cpp .c - -DEFS = $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) -LIBS = $(GUILIBS) - -VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${EXTRA_VPATH} - -EXTRA_DIST = "${srcdir}/../common ${srcdir}/../generic ${srcdir}" - -lib_LTLIBRARIES = @WX_LIBRARY_NAME@ -EXTRA_LTLIBRARIES = libwx_gtk.la libwx_motif.la libwx_msw.la - -# these are the common files which always make part of the library -libwx_gtk_la_SOURCES = \ -\ - win_gtk.c \ - extended.c \ - parser.c \ -\ - cmndata.cpp \ - dynarray.cpp \ - filefn.cpp \ - hash.cpp \ - list.cpp \ - matrix.cpp \ - memory.cpp \ - module.cpp \ - object.cpp \ - string.cpp \ - timercmn.cpp \ - utilscmn.cpp \ - tokenzr.cpp \ - variant.cpp \ - wxchar.cpp \ -\ - config.cpp \ - date.cpp \ - datstrm.cpp \ - db.cpp \ - dbtable.cpp \ - dcbase.cpp \ - docmdi.cpp \ - docview.cpp \ - dynlib.cpp \ - event.cpp \ - file.cpp \ - fileconf.cpp \ - framecmn.cpp \ - ftp.cpp \ - gdicmn.cpp \ - helpbase.cpp \ - http.cpp \ - image.cpp \ - imaggif.cpp \ - imagjpeg.cpp \ - imagpng.cpp \ - intl.cpp \ - ipcbase.cpp \ - layout.cpp \ - log.cpp \ - longlong.cpp \ - mimetype.cpp \ - mstream.cpp \ - objstrm.cpp \ - odbc.cpp \ - paper.cpp \ - prntbase.cpp \ - process.cpp \ - protocol.cpp \ - resource.cpp \ - sckaddr.cpp \ - sckfile.cpp \ - sckint.cpp \ - sckipc.cpp \ - sckstrm.cpp \ - serbase.cpp \ - socket.cpp \ - stream.cpp \ - tbarbase.cpp \ - tbarsmpl.cpp \ - textfile.cpp \ - time.cpp \ - url.cpp \ - valgen.cpp \ - validate.cpp \ - valtext.cpp \ - wfstream.cpp \ - wincmn.cpp \ - wxexpr.cpp \ - zstream.cpp \ -\ - caret.cpp \ - choicdgg.cpp \ - colrdlgg.cpp \ - dcpsg.cpp \ - dirdlgg.cpp \ - fontdlgg.cpp \ - gridg.cpp \ - helpext.cpp \ - helphtml.cpp \ - imaglist.cpp \ - laywin.cpp \ - listctrl.cpp \ - msgdlgg.cpp \ - panelg.cpp \ - printps.cpp \ - prntdlgg.cpp \ - progdlgg.cpp \ - prop.cpp \ - propform.cpp \ - proplist.cpp \ - sashwin.cpp \ - scrolwin.cpp \ - splitter.cpp \ - statusbr.cpp \ - tabg.cpp \ - textdlgg.cpp \ - treectrl.cpp \ -\ - threadpsx.cpp \ - utilsunx.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - checklst.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - combobox.cpp \ - control.cpp \ - cursor.cpp \ - data.cpp \ - dataobj.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - icon.cpp \ - listbox.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - minifram.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbmp.cpp \ - statbox.cpp \ - statline.cpp \ - stattext.cpp \ - tbargtk.cpp \ - textctrl.cpp \ - timer.cpp \ - tooltip.cpp \ - utilsgtk.cpp \ - utilsres.cpp \ - wave.cpp \ - window.cpp - -# these are the sources which we build by our own rules -# -# TODO: parser.y can be included into SOURCES, but for the sake of my life I -# don't know where to put lexer.l - if I put it in the sources too, -# automake tries to build lexer.lo... and fails, of course. (VZ) -BUILT_SOURCES = parser.c lexer.c -parser.c: $(srcdir)/../common/parser.y lexer.c - $(YACC) $(srcdir)/../common/parser.y - @sed -e "s;$(srcdir)/../common/y.tab.c;parser.y;g" < y.tab.c | \ - sed -e "s/BUFSIZ/5000/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > parser.c - @$(RM) y.tab.c - -lexer.c: $(srcdir)/../common/lexer.l - $(LEX) $(srcdir)/../common/lexer.l - @sed -e "s;$(srcdir)/../common/lex.yy.c;lexer.l;g" < lex.yy.c | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > lexer.c - @$(RM) lex.yy.c - -libwx_gtk_la_LDFLAGS = -rpath @libdir@ \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -libwx_gtk_la_LIBADD = $(LTLIBOBJS) -libwx_gtk_la_DEPENDENCIES = $(libwx_gtk_la_LIBADD) lexer.l parser.y diff --git a/src/gtk1/accel.cpp b/src/gtk1/accel.cpp deleted file mode 100644 index b15ece7379..0000000000 --- a/src/gtk1/accel.cpp +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: -// Author: Robert Roebling -// Id: $id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -#include "wx/accel.h" - -#include - -#ifdef __WXDEBUG__ -#ifdef NULL -#undef NULL -#endif -#define NULL ((void*)0L) -#endif - -//----------------------------------------------------------------------------- -// wxAcceleratorTable -//----------------------------------------------------------------------------- - -class wxAccelRefData: public wxObjectRefData -{ -public: - - wxAccelRefData(void); - - wxList m_accels; -}; - -wxAccelRefData::wxAccelRefData(void) -{ - m_accels.DeleteContents( TRUE ); -} - -//----------------------------------------------------------------------------- - -#define M_ACCELDATA ((wxAccelRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable,wxObject) - -wxAcceleratorTable::wxAcceleratorTable() -{ -} - -wxAcceleratorTable::wxAcceleratorTable( int n, wxAcceleratorEntry entries[] ) -{ - m_refData = new wxAccelRefData(); - - for (int i = 0; i < n; i++) - { - int flag = entries[i].GetFlags(); - int keycode = entries[i].GetKeyCode(); - int command = entries[i].GetCommand(); - if ((keycode >= (int)'A') && (keycode <= (int)'Z')) keycode = (int)tolower( (char)keycode ); - M_ACCELDATA->m_accels.Append( new wxAcceleratorEntry( flag, keycode, command ) ); - } -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ -} - -bool wxAcceleratorTable::Ok() const -{ - return (m_refData != NULL); -} - -int wxAcceleratorTable::GetCommand( wxKeyEvent &event ) -{ - if (!Ok()) return -1; - - wxNode *node = M_ACCELDATA->m_accels.First(); - while (node) - { - wxAcceleratorEntry *entry = (wxAcceleratorEntry*)node->Data(); - if ((event.m_keyCode == entry->GetKeyCode()) && - (((entry->GetFlags() & wxACCEL_CTRL) == 0) || event.ControlDown()) && - (((entry->GetFlags() & wxACCEL_SHIFT) == 0) || event.ShiftDown()) && - (((entry->GetFlags() & wxACCEL_ALT) == 0) || event.AltDown() || event.MetaDown())) - { - return entry->GetCommand(); - } - node = node->Next(); - } - - return -1; -} - diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp deleted file mode 100644 index 85b8b53fb6..0000000000 --- a/src/gtk1/app.cpp +++ /dev/null @@ -1,755 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "app.h" -#endif - -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/log.h" -#include "wx/memory.h" -#include "wx/font.h" -#include "wx/settings.h" -#include "wx/dialog.h" - -#if wxUSE_WX_RESOURCES - #include "wx/resource.h" -#endif - -#include "wx/module.h" -#include "wx/image.h" - -#include "wx/thread.h" - -#include "unistd.h" - -#include -#include -#include - -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -wxApp *wxTheApp = (wxApp *) NULL; -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -#if wxUSE_THREADS -extern wxList *wxPendingEvents; -extern wxCriticalSection *wxPendingEventsLocker; -#endif -extern wxResourceCache *wxTheResourceCache; -extern bool g_isIdle; - -unsigned char g_palette[64*3] = -{ - 0x0, 0x0, 0x0, - 0xff, 0xff, 0xff, - 0xff, 0x0, 0x0, - 0xff, 0xff, 0x0, - 0x0, 0xff, 0x0, - 0x0, 0x0, 0xff, - 0x0, 0xff, 0xff, - 0x99, 0x99, 0x99, - 0xff, 0x88, 0x0, - 0x88, 0x0, 0x0, - 0x0, 0x88, 0x88, - 0x88, 0x88, 0x0, - 0xff, 0xcc, 0x97, - 0xbb, 0xbb, 0xbb, - 0x9f, 0x6b, 0x42, - 0x55, 0x55, 0x55, - 0xdd, 0xdd, 0xdd, - 0x77, 0x77, 0x77, - 0x33, 0x33, 0x33, - 0xcc, 0x0, 0x0, - 0xff, 0x44, 0x0, - 0xff, 0xcc, 0x0, - 0xcc, 0xcc, 0x0, - 0x60, 0x60, 0x0, - 0x0, 0x43, 0x0, - 0x0, 0x7f, 0x0, - 0x0, 0xcc, 0x0, - 0x0, 0x44, 0x44, - 0x0, 0x0, 0x44, - 0x0, 0x0, 0x88, - 0xef, 0xb1, 0x7b, - 0xdf, 0x98, 0x5f, - 0xbf, 0x87, 0x56, - 0x7f, 0x57, 0x26, - 0x5f, 0x39, 0xc, - 0x3f, 0x1c, 0x0, - 0x21, 0x0, 0x0, - 0x0, 0x43, 0x87, - 0x2d, 0x70, 0xaf, - 0x5a, 0x9e, 0xd7, - 0x87, 0xcc, 0xff, - 0xff, 0xe0, 0xba, - 0x21, 0x43, 0xf, - 0x3d, 0x5d, 0x25, - 0x59, 0x78, 0x3a, - 0x75, 0x93, 0x4f, - 0x91, 0xae, 0x64, - 0xad, 0xc8, 0x7a, - 0xf0, 0xa8, 0xef, - 0xd0, 0x88, 0xd0, - 0xaf, 0x66, 0xaf, - 0x8e, 0x44, 0x8e, - 0x6d, 0x22, 0x6d, - 0x4b, 0x0, 0x4b, - 0xff, 0xc0, 0xbc, - 0xff, 0x93, 0x91, - 0xff, 0x66, 0x67, - 0xd8, 0xf2, 0xbf, - 0xff, 0xc9, 0x68, - 0xff, 0x96, 0x67, - 0xa5, 0x60, 0xff, - 0x51, 0xff, 0x99, - 0x3f, 0xa5, 0x63, - 0x98, 0x90, 0x67 -}; - -//----------------------------------------------------------------------------- -// local functions -//----------------------------------------------------------------------------- - -extern void wxFlushResources(void); - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -void wxExit() -{ - gtk_main_quit(); -} - -/* forward declaration */ -gint wxapp_idle_callback( gpointer WXUNUSED(data) ); - -bool wxYield() -{ - /* it's necessary to call ProcessIdle() to update the frames sizes which - might have been changed (it also will update other things set from - OnUpdateUI() which is a nice (and desired) side effect) */ - while (wxTheApp->ProcessIdle()) { } - -#if 0 - for ( wxWindowList::Node *node = wxTopLevelWindows.GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - win->OnInternalIdle(); - } -#endif - - if (wxTheApp->m_idleTag) - { - /* We need to temporarily remove idle callbacks or the loop will - never finish. */ - gtk_idle_remove( wxTheApp->m_idleTag ); - wxTheApp->m_idleTag = 0; - - while (gtk_events_pending()) - gtk_main_iteration(); - - /* re-add idle handler */ - wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - } - else - { - while (gtk_events_pending()) - gtk_main_iteration(); - } - - return TRUE; -} - -gint wxapp_idle_callback( gpointer WXUNUSED(data) ) -{ - if (!wxTheApp) return TRUE; - -#if (GTK_MINOR_VERSION > 0) - /* when getting called from GDK's idle handler we - are no longer within GDK's grab on the GUI - thread so we must lock it here ourselves */ - GDK_THREADS_ENTER (); -#endif - - /* sent idle event to all who request them */ - while (wxTheApp->ProcessIdle()) { } - - /* we don't want any more idle events until the next event is - sent to wxGTK */ - gtk_idle_remove( wxTheApp->m_idleTag ); - wxTheApp->m_idleTag = 0; - - /* indicate that we are now in idle mode - even so deeply - in idle mode that we don't get any idle events anymore. - this is like wxMSW where an idle event is sent only - once each time after the event queue has been completely - emptied */ - g_isIdle = TRUE; - -#if (GTK_MINOR_VERSION > 0) - /* release lock again */ - GDK_THREADS_LEAVE (); -#endif - - return TRUE; -} - -void wxapp_install_idle_handler() -{ - wxASSERT_MSG( wxTheApp->m_idleTag == 0, _T("attempt to install idle handler twice") ); - - /* this routine gets called by all event handlers - indicating that the idle is over. */ - - wxTheApp->m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - - g_isIdle = FALSE; -} - -#if wxUSE_THREADS -static gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) ) -{ - gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag ); - wxTheApp->m_wakeUpTimerTag = 0; - -#if (GTK_MINOR_VERSION > 0) - /* when getting called from GDK's time-out handler - we are no longer within GDK's grab on the GUI - thread so we must lock it here ourselves */ - GDK_THREADS_ENTER (); -#endif - - /* unblock other threads wishing to do some GUI things */ - wxMutexGuiLeave(); - - /* wake up other threads */ - wxUsleep( 1 ); - - /* block other thread again */ - wxMutexGuiEnter(); - -#if (GTK_MINOR_VERSION > 0) - /* release lock again */ - GDK_THREADS_LEAVE (); -#endif - - wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL ); - - return TRUE; -} -#endif - -//----------------------------------------------------------------------------- -// wxApp -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxApp,wxEvtHandler) - -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() - -wxApp::wxApp() -{ - wxTheApp = this; - - m_topWindow = (wxWindow *) NULL; - m_exitOnFrameDelete = TRUE; - - m_idleTag = gtk_idle_add( wxapp_idle_callback, (gpointer) NULL ); - -#if wxUSE_THREADS - m_wakeUpTimerTag = gtk_timeout_add( 20, wxapp_wakeup_timerout_callback, (gpointer) NULL ); -#endif - - m_colorCube = (unsigned char*) NULL; -} - -wxApp::~wxApp() -{ - if (m_idleTag) gtk_idle_remove( m_idleTag ); - -#if wxUSE_THREADS - if (m_wakeUpTimerTag) gtk_timeout_remove( m_wakeUpTimerTag ); -#endif - - if (m_colorCube) free(m_colorCube); -} - -bool wxApp::OnInitGui() -{ - /* Nothing to do for 15, 16, 24, 32 bit displays */ - - GdkVisual *visual = gdk_visual_get_system(); - if (visual->depth > 8) return TRUE; - - /* this initiates the standard palette as defined by GdkImlib - in the GNOME libraries. it ensures that all GNOME applications - use the same 64 colormap entries on 8-bit displays so you - can use several rather graphics-heavy applications at the - same time. - NOTE: this doesn't really seem to work this way... */ - - /* - GdkColormap *cmap = gdk_colormap_new( gdk_visual_get_system(), TRUE ); - - for (int i = 0; i < 64; i++) - { - GdkColor col; - col.red = g_palette[i*3 + 0] << 8; - col.green = g_palette[i*3 + 1] << 8; - col.blue = g_palette[i*3 + 2] << 8; - col.pixel = 0; - - gdk_color_alloc( cmap, &col ); - } - - gtk_widget_set_default_colormap( cmap ); - */ - - /* initialize color cube for 8-bit color reduction dithering */ - - GdkColormap *cmap = gtk_widget_get_default_colormap(); - - m_colorCube = (unsigned char*)malloc(32 * 32 * 32); - - for (int r = 0; r < 32; r++) - { - for (int g = 0; g < 32; g++) - { - for (int b = 0; b < 32; b++) - { - int rr = (r << 3) | (r >> 2); - int gg = (g << 3) | (g >> 2); - int bb = (b << 3) | (b >> 2); - - int index = -1; - - GdkColor *colors = cmap->colors; - if (colors) - { - int max = 3 * 65536; - - for (int i = 0; i < cmap->size; i++) - { - int rdiff = ((rr << 8) - colors[i].red); - int gdiff = ((gg << 8) - colors[i].green); - int bdiff = ((bb << 8) - colors[i].blue); - int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); - if (sum < max) - { - index = i; max = sum; - } - } - } - else - { - /* assume 8-bit true or static colors. this really - exists. */ - GdkVisual* vis = gdk_colormap_get_visual( cmap ); - index = (r >> (5 - vis->red_prec)) << vis->red_shift; - index |= (g >> (5 - vis->green_prec)) << vis->green_shift; - index |= (b >> (5 - vis->blue_prec)) << vis->blue_shift; - } - - m_colorCube[ (r*1024) + (g*32) + b ] = index; - } - } - } - - return TRUE; -} - -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject( this ); - ProcessEvent( event ); - - return event.MoreRequested(); -} - -void wxApp::OnIdle( wxIdleEvent &event ) -{ - static bool inOnIdle = FALSE; - - /* Avoid recursion (via ProcessEvent default case) */ - if (inOnIdle) - return; - - inOnIdle = TRUE; - -#if wxUSE_THREADS - /* Resend in the main thread events which have been prepared in other - threads */ - ProcessPendingEvents(); -#endif - - /* 'Garbage' collection of windows deleted with Close(). */ - DeletePendingObjects(); - - /* flush the logged messages if any */ -#if wxUSE_LOG - wxLog *log = wxLog::GetActiveTarget(); - if (log != NULL && log->HasPendingMessages()) - log->Flush(); -#endif // wxUSE_LOG - - /* Send OnIdle events to all windows */ - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - - wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow* win = node->GetData(); - if (SendIdleEvents(win)) - needMore = TRUE; - node = node->GetNext(); - } - - return needMore; -} - -bool wxApp::SendIdleEvents( wxWindow* win ) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - - win->OnInternalIdle(); - - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -int wxApp::MainLoop() -{ - gtk_main(); - return 0; -} - -void wxApp::ExitMainLoop() -{ - gtk_main_quit(); -} - -bool wxApp::Initialized() -{ - return m_initialized; -} - -bool wxApp::Pending() -{ - return (gtk_events_pending() > 0); -} - -void wxApp::Dispatch() -{ - gtk_main_iteration(); -} - -#if wxUSE_THREADS -void wxApp::ProcessPendingEvents() -{ - wxNode *node = wxPendingEvents->First(); - wxCriticalSectionLocker locker(*wxPendingEventsLocker); - - while (node) - { - wxEvtHandler *handler = (wxEvtHandler *)node->Data(); - - handler->ProcessPendingEvents(); - - delete node; - - node = wxPendingEvents->First(); - } -} -#endif // wxUSE_THREADS - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Find(obj)) - delete node; - - node = wxPendingDelete.First(); - } -} - -wxWindow *wxApp::GetTopWindow() -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.GetCount() > 0) - return wxTopLevelWindows.GetFirst()->GetData(); - else - return NULL; -} - -void wxApp::SetTopWindow( wxWindow *win ) -{ - m_topWindow = win; -} - -bool wxApp::Initialize() -{ - wxBuffer = new wxChar[BUFSIZ + 512]; - - wxClassInfo::InitializeClasses(); - - wxSystemSettings::Init(); - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - wxPendingEvents = new wxList(); - wxPendingEventsLocker = new wxCriticalSection(); -#endif - -/* - wxTheFontNameDirectory = new wxFontNameDirectory; - wxTheFontNameDirectory->Initialize(); -*/ - - wxTheColourDatabase = new wxColourDatabase( wxKEY_STRING ); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxTheResourceCache = new wxResourceCache( wxKEY_STRING ); - - wxInitializeResourceSystem(); -#endif - - wxImage::InitStandardHandlers(); - - /* no global cursor under X - g_globalCursor = new wxCursor; */ - - wxModule::RegisterModules(); - if (!wxModule::InitializeModules()) return FALSE; - - return TRUE; -} - -void wxApp::CleanUp() -{ - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxFlushResources(); - - if (wxTheResourceCache) - delete wxTheResourceCache; - wxTheResourceCache = (wxResourceCache*) NULL; - - wxCleanUpResourceSystem(); -#endif - - if (wxTheColourDatabase) - delete wxTheColourDatabase; - wxTheColourDatabase = (wxColourDatabase*) NULL; - -/* - if (wxTheFontNameDirectory) delete wxTheFontNameDirectory; - wxTheFontNameDirectory = (wxFontNameDirectory*) NULL; -*/ - - wxDeleteStockObjects(); - - wxDeleteStockLists(); - - wxImage::CleanUpHandlers(); - - delete wxTheApp; - wxTheApp = (wxApp*) NULL; - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - delete wxPendingEvents; - delete wxPendingEventsLocker; -#endif - - wxSystemSettings::Done(); - - delete[] wxBuffer; - - wxClassInfo::CleanUpClasses(); - - // check for memory leaks -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - if (wxDebugContext::CountObjectsLeft() > 0) - { - wxLogDebug(_T("There were memory leaks.\n")); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } -#endif // Debug - -#if wxUSE_LOG - // do this as the very last thing because everything else can log messages - wxLog::DontCreateOnDemand(); - - wxLog *oldLog = wxLog::SetActiveTarget( (wxLog*) NULL ); - if (oldLog) - delete oldLog; -} - -wxLog *wxApp::CreateLogTarget() -{ - return new wxLogGui; -} -#endif // wxUSE_LOG - -//----------------------------------------------------------------------------- -// wxEntry -//----------------------------------------------------------------------------- - -int wxEntry( int argc, char *argv[] ) -{ - gtk_set_locale(); - - gtk_init( &argc, &argv ); - - wxSetDetectableAutoRepeat( TRUE ); - - if (!wxApp::Initialize()) - return -1; - - if (!wxTheApp) - { - wxCHECK_MSG( wxApp::GetInitializerFunction(), -1, - _T("wxWindows error: No initializer - use IMPLEMENT_APP macro.\n") ); - - wxAppInitializerFunction app_ini = wxApp::GetInitializerFunction(); - - wxObject *test_app = app_ini(); - - wxTheApp = (wxApp*) test_app; - } - - wxCHECK_MSG( wxTheApp, -1, _T("wxWindows error: no application object") ); - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - wxString name(wxFileNameFromPath(argv[0])); - wxStripExtension( name ); - wxTheApp->SetAppName( name ); - - int retValue = 0; - - if ( !wxTheApp->OnInitGui() ) - retValue = -1; - - // Here frames insert themselves automatically into wxTopLevelWindows by - // getting created in OnInit(). - if ( retValue == 0 ) - { - if ( !wxTheApp->OnInit() ) - retValue = -1; - } - - if ( retValue == 0 ) - { - /* delete pending toplevel windows (typically a single - dialog) so that, if there isn't any left, we don't - call OnRun() */ - wxTheApp->DeletePendingObjects(); - - wxTheApp->m_initialized = wxTopLevelWindows.GetCount() != 0; - - if (wxTheApp->Initialized()) - { - retValue = wxTheApp->OnRun(); - - wxWindow *topWindow = wxTheApp->GetTopWindow(); - if (topWindow) - { - /* Forcibly delete the window. */ - if (topWindow->IsKindOf(CLASSINFO(wxFrame)) || - topWindow->IsKindOf(CLASSINFO(wxDialog)) ) - { - topWindow->Close( TRUE ); - wxTheApp->DeletePendingObjects(); - } - else - { - delete topWindow; - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - } - } - wxTheApp->OnExit(); - } - } - -#if wxUSE_LOG - // flush the logged messages if any - wxLog *log = wxLog::GetActiveTarget(); - if (log != NULL && log->HasPendingMessages()) - log->Flush(); - - // continuing to use user defined log target is unsafe from now on because - // some resources may be already unavailable, so replace it by something - // more safe - wxLog *oldlog = wxLog::SetActiveTarget(new wxLogStderr); - if ( oldlog ) - delete oldlog; -#endif // wxUSE_LOG - - wxApp::CleanUp(); - - return retValue; -} - diff --git a/src/gtk1/bdiag.xbm b/src/gtk1/bdiag.xbm deleted file mode 100644 index 9ff0a1822f..0000000000 --- a/src/gtk1/bdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define bdiag_width 16 -#define bdiag_height 16 -static char bdiag_bits[] = { - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, - 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01}; diff --git a/src/gtk1/bitmap.cpp b/src/gtk1/bitmap.cpp deleted file mode 100644 index 80ecdcddac..0000000000 --- a/src/gtk1/bitmap.cpp +++ /dev/null @@ -1,377 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/filefn.h" -#include "wx/image.h" - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkx.h" - -//----------------------------------------------------------------------------- -// wxMask -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMask,wxObject) - -wxMask::wxMask() -{ - m_bitmap = (GdkBitmap *) NULL; -} - -wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap), const wxColour& WXUNUSED(colour) ) -{ -} - -wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap), int WXUNUSED(paletteIndex) ) -{ -} - -wxMask::wxMask( const wxBitmap& WXUNUSED(bitmap) ) -{ -} - -wxMask::~wxMask() -{ - if (m_bitmap) gdk_bitmap_unref( m_bitmap ); -} - -GdkBitmap *wxMask::GetBitmap(void) const -{ - return m_bitmap; -} - -//----------------------------------------------------------------------------- -// wxBitmap -//----------------------------------------------------------------------------- - -class wxBitmapRefData: public wxObjectRefData -{ -public: - wxBitmapRefData(void); - ~wxBitmapRefData(void); - - GdkPixmap *m_pixmap; - GdkBitmap *m_bitmap; - wxMask *m_mask; - int m_width; - int m_height; - int m_bpp; - wxPalette *m_palette; -}; - -wxBitmapRefData::wxBitmapRefData() -{ - m_pixmap = (GdkPixmap *) NULL; - m_bitmap = (GdkBitmap *) NULL; - m_mask = (wxMask *) NULL; - m_width = 0; - m_height = 0; - m_bpp = 0; - m_palette = (wxPalette *) NULL; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - if (m_pixmap) gdk_pixmap_unref( m_pixmap ); - if (m_bitmap) gdk_bitmap_unref( m_bitmap ); - if (m_mask) delete m_mask; - if (m_palette) delete m_palette; -} - -//----------------------------------------------------------------------------- - -#define M_BMPDATA ((wxBitmapRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxBitmap,wxGDIObject) - -wxBitmap::wxBitmap() -{ - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( int width, int height, int depth ) -{ - wxCHECK_RET( (width > 0) && (height > 0), _T("invalid bitmap size") ) - - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - if (depth == -1) depth = gdk_window_get_visual( parent )->depth; - - wxCHECK_RET( (depth == gdk_window_get_visual( parent )->depth) || - (depth == 1), _T("invalid bitmap depth") ) - - m_refData = new wxBitmapRefData(); - M_BMPDATA->m_mask = (wxMask *) NULL; - M_BMPDATA->m_width = width; - M_BMPDATA->m_height = height; - if (depth == 1) - { - M_BMPDATA->m_bitmap = gdk_pixmap_new( parent, width, height, 1 ); - M_BMPDATA->m_bpp = 1; - } - else - { - M_BMPDATA->m_pixmap = gdk_pixmap_new( parent, width, height, depth ); - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; - } - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const char **bits ) -{ - wxCHECK_RET( bits != NULL, _T("invalid bitmap data") ) - - m_refData = new wxBitmapRefData(); - - GdkBitmap *mask = (GdkBitmap*) NULL; - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - - M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, (gchar **) bits ); - - if (mask) - { - M_BMPDATA->m_mask = new wxMask(); - M_BMPDATA->m_mask->m_bitmap = mask; - } - - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); - - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; // ? - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( char **bits ) -{ - wxCHECK_RET( bits != NULL, _T("invalid bitmap data") ) - - m_refData = new wxBitmapRefData(); - - GdkBitmap *mask = (GdkBitmap*) NULL; - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - - M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( parent, &mask, NULL, (gchar **) bits ); - - wxCHECK_RET( M_BMPDATA->m_pixmap, _T("couldn't create pixmap") ); - - if (mask) - { - M_BMPDATA->m_mask = new wxMask(); - M_BMPDATA->m_mask->m_bitmap = mask; - } - - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); - - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; // ? - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const wxBitmap& bmp ) -{ - Ref( bmp ); - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const wxString &filename, int type ) -{ - LoadFile( filename, type ); - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap( const char bits[], int width, int height, int WXUNUSED(depth)) -{ - m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_mask = (wxMask *) NULL; - M_BMPDATA->m_bitmap = - gdk_bitmap_create_from_data( (GdkWindow*) &gdk_root_parent, (gchar *) bits, width, height ); - M_BMPDATA->m_width = width; - M_BMPDATA->m_height = height; - M_BMPDATA->m_bpp = 1; - - wxCHECK_RET( M_BMPDATA->m_bitmap, _T("couldn't create bitmap") ); - - if (wxTheBitmapList) wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) wxTheBitmapList->DeleteObject(this); -} - -wxBitmap& wxBitmap::operator = ( const wxBitmap& bmp ) -{ - if (*this == bmp) return (*this); - Ref( bmp ); - return *this; -} - -bool wxBitmap::operator == ( const wxBitmap& bmp ) -{ - return m_refData == bmp.m_refData; -} - -bool wxBitmap::operator != ( const wxBitmap& bmp ) -{ - return m_refData != bmp.m_refData; -} - -bool wxBitmap::Ok(void) const -{ - return (m_refData != NULL); -} - -int wxBitmap::GetHeight(void) const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_height; -} - -int wxBitmap::GetWidth(void) const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_width; -} - -int wxBitmap::GetDepth(void) const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid bitmap") ); - - return M_BMPDATA->m_bpp; -} - -wxMask *wxBitmap::GetMask(void) const -{ - wxCHECK_MSG( Ok(), (wxMask *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_mask; -} - -void wxBitmap::SetMask( wxMask *mask ) -{ - wxCHECK_RET( Ok(), _T("invalid bitmap") ); - - if (M_BMPDATA->m_mask) delete M_BMPDATA->m_mask; - - M_BMPDATA->m_mask = mask; -} - -bool wxBitmap::SaveFile( const wxString &name, int type, wxPalette *WXUNUSED(palette) ) -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid bitmap") ); - - if (type == wxBITMAP_TYPE_PNG) - { - wxImage image( *this ); - if (image.Ok()) return image.SaveFile( name, type ); - } - - return FALSE; -} - -bool wxBitmap::LoadFile( const wxString &name, int type ) -{ - UnRef(); - - if (!wxFileExists(name)) return FALSE; - - if (type == wxBITMAP_TYPE_XPM) - { - m_refData = new wxBitmapRefData(); - - GdkBitmap *mask = (GdkBitmap*) NULL; - GdkWindow *parent = (GdkWindow*) &gdk_root_parent; - - M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm( parent, &mask, NULL, name.fn_str() ); - - if (mask) - { - M_BMPDATA->m_mask = new wxMask(); - M_BMPDATA->m_mask->m_bitmap = mask; - } - - gdk_window_get_size( M_BMPDATA->m_pixmap, &(M_BMPDATA->m_width), &(M_BMPDATA->m_height) ); - M_BMPDATA->m_bpp = gdk_window_get_visual( parent )->depth; - } - else if (type == wxBITMAP_TYPE_PNG) - { - wxImage image; - image.LoadFile( name, type ); - if (image.Ok()) *this = image.ConvertToBitmap(); - } - else if (type == wxBITMAP_TYPE_BMP) - { - wxImage image; - image.LoadFile( name, type ); - if (image.Ok()) *this = image.ConvertToBitmap(); - } - else - return FALSE; - - return TRUE; -} - -wxPalette *wxBitmap::GetPalette(void) const -{ - if (!Ok()) return (wxPalette *) NULL; - - return M_BMPDATA->m_palette; -} - -void wxBitmap::SetHeight( int height ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_height = height; -} - -void wxBitmap::SetWidth( int width ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_width = width; -} - -void wxBitmap::SetDepth( int depth ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_bpp = depth; -} - -void wxBitmap::SetPixmap( GdkPixmap *pixmap ) -{ - if (!m_refData) m_refData = new wxBitmapRefData(); - - M_BMPDATA->m_pixmap = pixmap; -} - -GdkPixmap *wxBitmap::GetPixmap(void) const -{ - wxCHECK_MSG( Ok(), (GdkPixmap *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_pixmap; -} - -GdkBitmap *wxBitmap::GetBitmap(void) const -{ - wxCHECK_MSG( Ok(), (GdkBitmap *) NULL, _T("invalid bitmap") ); - - return M_BMPDATA->m_bitmap; -} diff --git a/src/gtk1/bmpbuttn.cpp b/src/gtk1/bmpbuttn.cpp deleted file mode 100644 index 7ede0d75a7..0000000000 --- a/src/gtk1/bmpbuttn.cpp +++ /dev/null @@ -1,311 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxBitmapButton; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); - event.SetEventObject(button); - button->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// "enter" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_enter_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->HasFocus(); -} - -//----------------------------------------------------------------------------- -// "leave" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_leave_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->NotFocus(); -} - -//----------------------------------------------------------------------------- -// "pressed" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_press_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->StartSelect(); -} - -//----------------------------------------------------------------------------- -// "released" -//----------------------------------------------------------------------------- - -static void gtk_bmpbutton_release_callback( GtkWidget *WXUNUSED(widget), wxBitmapButton *button ) -{ - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - button->EndSelect(); -} - -//----------------------------------------------------------------------------- -// wxBitmapButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton,wxControl) - -wxBitmapButton::wxBitmapButton() -{ -} - -bool wxBitmapButton::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - - SetValidator( validator ); - - m_bitmap = bitmap; - m_disabled = bitmap; - m_focus = bitmap; - m_selected = bitmap; - - m_label = ""; - - m_widget = gtk_button_new(); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxNO_BORDER) - gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE ); -#endif - - if (m_bitmap.Ok()) - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - GtkWidget *pixmap = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); - - gtk_widget_show( pixmap ); - gtk_container_add( GTK_CONTAINER(m_widget), pixmap ); - } - - int border = 10; - if (style & wxNO_BORDER) border = 4; - if (newSize.x == -1) newSize.x = m_bitmap.GetWidth()+border; - if (newSize.y == -1) newSize.y = m_bitmap.GetHeight()+border; - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_bmpbutton_clicked_callback), (gpointer*)this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "enter", - GTK_SIGNAL_FUNC(gtk_bmpbutton_enter_callback), (gpointer*)this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "leave", - GTK_SIGNAL_FUNC(gtk_bmpbutton_leave_callback), (gpointer*)this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "pressed", - GTK_SIGNAL_FUNC(gtk_bmpbutton_press_callback), (gpointer*)this ); - gtk_signal_connect( GTK_OBJECT(m_widget), "released", - GTK_SIGNAL_FUNC(gtk_bmpbutton_release_callback), (gpointer*)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -void wxBitmapButton::SetDefault() -{ - GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); - gtk_widget_grab_default( m_widget ); - - SetSize( m_x, m_y, m_width, m_height ); -} - -void wxBitmapButton::SetLabel( const wxString &label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - wxControl::SetLabel( label ); -} - -wxString wxBitmapButton::GetLabel() const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid button") ); - - return wxControl::GetLabel(); -} - -void wxBitmapButton::ApplyWidgetStyle() -{ -} - -void wxBitmapButton::SetBitmap() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - wxBitmap the_one; - - if (!m_isEnabled) - the_one = m_disabled; - else - { - if (m_isSelected) - { - the_one = m_selected; - } - else - { - if (m_hasFocus) - the_one = m_focus; - else - the_one = m_bitmap; - } - } - - if (!the_one.Ok()) the_one = m_bitmap; - if (!the_one.Ok()) return; - - GtkButton *bin = GTK_BUTTON( m_widget ); - GtkPixmap *g_pixmap = GTK_PIXMAP( bin->child ); - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (the_one.GetMask()) mask = the_one.GetMask()->GetBitmap(); - - gtk_pixmap_set( g_pixmap, the_one.GetPixmap(), mask ); -} - -void wxBitmapButton::SetBitmapDisabled( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if ( ! m_disabled.Ok() ) return; - m_disabled = bitmap; - - SetBitmap(); -} - -void wxBitmapButton::SetBitmapFocus( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if ( ! m_focus.Ok() ) return; - m_focus = bitmap; - - SetBitmap(); -} - -void wxBitmapButton::SetBitmapLabel( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if (!m_bitmap.Ok()) return; - m_bitmap = bitmap; - - SetBitmap(); -} - -void wxBitmapButton::SetBitmapSelected( const wxBitmap& bitmap ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - if ( ! m_selected.Ok() ) return; - m_selected = bitmap; - - SetBitmap(); -} - -bool wxBitmapButton::Enable( bool enable ) -{ - if ( !wxWindow::Enable(enable) ) - return FALSE; - - SetBitmap(); - - return TRUE; -} - -void wxBitmapButton::HasFocus() -{ - m_hasFocus = TRUE; - SetBitmap(); -} - -void wxBitmapButton::NotFocus() -{ - m_hasFocus = FALSE; - SetBitmap(); -} - -void wxBitmapButton::StartSelect() -{ - m_isSelected = TRUE; - SetBitmap(); -} - -void wxBitmapButton::EndSelect() -{ - m_isSelected = FALSE; - SetBitmap(); -} diff --git a/src/gtk1/brush.cpp b/src/gtk1/brush.cpp deleted file mode 100644 index ae8e34635c..0000000000 --- a/src/gtk1/brush.cpp +++ /dev/null @@ -1,180 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/brush.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// wxBrush -//----------------------------------------------------------------------------- - -class wxBrushRefData: public wxObjectRefData -{ - public: - - wxBrushRefData(); - wxBrushRefData( const wxBrushRefData& data ); - - int m_style; - wxBitmap m_stipple; - wxColour m_colour; -}; - -wxBrushRefData::wxBrushRefData() -{ - m_style = 0; -} - -wxBrushRefData::wxBrushRefData( const wxBrushRefData& data ) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -} - -//----------------------------------------------------------------------------- - -#define M_BRUSHDATA ((wxBrushRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxBrush,wxGDIObject) - -wxBrush::wxBrush() -{ - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::wxBrush( const wxColour &colour, int style ) -{ - m_refData = new wxBrushRefData(); - M_BRUSHDATA->m_style = style; - M_BRUSHDATA->m_colour = colour; - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::wxBrush( const wxBitmap &stippleBitmap ) -{ - m_refData = new wxBrushRefData(); - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_colour = *wxBLACK; - M_BRUSHDATA->m_stipple = stippleBitmap; - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::wxBrush( const wxBrush &brush ) -{ - Ref( brush ); - - if (wxTheBrushList) wxTheBrushList->AddBrush( this ); -} - -wxBrush::~wxBrush() -{ - if (wxTheBrushList) wxTheBrushList->RemoveBrush( this ); -} - -wxBrush& wxBrush::operator = ( const wxBrush& brush ) -{ - if (*this == brush) return (*this); - Ref( brush ); - return *this; -} - -bool wxBrush::operator == ( const wxBrush& brush ) -{ - return m_refData == brush.m_refData; -} - -bool wxBrush::operator != ( const wxBrush& brush ) -{ - return m_refData != brush.m_refData; -} - -bool wxBrush::Ok() const -{ - return ((m_refData) && M_BRUSHDATA->m_colour.Ok()); -} - -int wxBrush::GetStyle() const -{ - if (m_refData == NULL) - { - wxFAIL_MSG( _T("invalid brush") ); - return 0; - } - - return M_BRUSHDATA->m_style; -} - -wxColour &wxBrush::GetColour() const -{ - if (m_refData == NULL) - { - wxFAIL_MSG( _T("invalid brush") ); - return wxNullColour; - } - - return M_BRUSHDATA->m_colour; -} - -wxBitmap *wxBrush::GetStipple() const -{ - if (m_refData == NULL) - { - wxFAIL_MSG( _T("invalid brush") ); - return &wxNullBitmap; - } - - return &M_BRUSHDATA->m_stipple; -} - -void wxBrush::SetColour( const wxColour& col ) -{ - Unshare(); - M_BRUSHDATA->m_colour = col; -} - -void wxBrush::SetColour( unsigned char r, unsigned char g, unsigned char b ) -{ - Unshare(); - M_BRUSHDATA->m_colour.Set( r, g, b ); -} - -void wxBrush::SetStyle( int style ) -{ - Unshare(); - M_BRUSHDATA->m_style = style; -} - -void wxBrush::SetStipple( const wxBitmap& stipple ) -{ - Unshare(); - M_BRUSHDATA->m_stipple = stipple; -} - -void wxBrush::Unshare() -{ - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData( *(wxBrushRefData*)m_refData ); - UnRef(); - m_refData = ref; - } -} - diff --git a/src/gtk1/button.cpp b/src/gtk1/button.cpp deleted file mode 100644 index 613aab8a05..0000000000 --- a/src/gtk1/button.cpp +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxButton; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxButton *button ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!button->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId()); - event.SetEventObject(button); - button->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxButton,wxControl) - -wxButton::wxButton() -{ -} - -wxButton::~wxButton() -{ - if (m_clientData) delete m_clientData; -} - -bool wxButton::Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos, const wxSize &size, - long style, const wxValidator& validator, const wxString &name ) -{ - m_clientData = (wxClientData*) NULL; - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif // wxUSE_VALIDATORS - - m_widget = gtk_button_new_with_label( "" ); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxNO_BORDER) - gtk_button_set_relief( GTK_BUTTON(m_widget), GTK_RELIEF_NONE ); -#endif - - SetLabel(label); - - if (newSize.x == -1) newSize.x = 15+gdk_string_measure( m_widget->style->font, label.mbc_str() ); - if (newSize.y == -1) newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxButton::SetDefault(void) -{ - GTK_WIDGET_SET_FLAGS( m_widget, GTK_CAN_DEFAULT ); - gtk_widget_grab_default( m_widget ); - - SetSize( m_x, m_y, m_width, m_height ); -} - -void wxButton::SetLabel( const wxString &label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid button") ); - - wxControl::SetLabel( label ); - - gtk_label_set( GTK_LABEL( GTK_BUTTON(m_widget)->child ), GetLabel().mbc_str() ); -} - -bool wxButton::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - gtk_widget_set_sensitive( GTK_BUTTON(m_widget)->child, enable ); - - return TRUE; -} - -void wxButton::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( GTK_BUTTON(m_widget)->child, m_widgetStyle ); -} diff --git a/src/gtk1/cdiag.xbm b/src/gtk1/cdiag.xbm deleted file mode 100644 index 15dc7ba86d..0000000000 --- a/src/gtk1/cdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cdiag_width 16 -#define cdiag_height 16 -static char cdiag_bits[] = { - 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x18, 0x24, 0x24, - 0x42, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, - 0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x81, 0x81}; diff --git a/src/gtk1/checkbox.cpp b/src/gtk1/checkbox.cpp deleted file mode 100644 index 09cdd98387..0000000000 --- a/src/gtk1/checkbox.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_checkbox_clicked_callback( GtkWidget *WXUNUSED(widget), wxCheckBox *cb ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!cb->m_hasVMT) return; - - if (cb->m_blockFirstEvent) - { - cb->m_blockFirstEvent = FALSE; - return; - } - - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, cb->GetId()); - event.SetInt( cb->GetValue() ); - event.SetEventObject(cb); - cb->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxCheckBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox,wxControl) - -wxCheckBox::wxCheckBox() -{ -} - -bool wxCheckBox::Create(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos, - const wxSize &size, - long style, - const wxValidator& validator, - const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_blockFirstEvent = FALSE; - - SetValidator( validator ); - wxControl::SetLabel( label ); - - if ( style & wxALIGN_RIGHT ) - { - // VZ: as I don't know a way to create a right aligned checkbox with - // GTK we will create a checkbox without label and a label at the - // left of it - m_widgetCheckbox = gtk_check_button_new(); - - m_widgetLabel = gtk_label_new(m_label.mbc_str()); - gtk_misc_set_alignment(GTK_MISC(m_widgetLabel), 0.0, 0.5); - - m_widget = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(m_widget), m_widgetLabel, FALSE, FALSE, 3); - gtk_box_pack_start(GTK_BOX(m_widget), m_widgetCheckbox, FALSE, FALSE, 3); - - // VZ: why do I have to do this to make them appear? - gtk_widget_show( m_widgetLabel ); - gtk_widget_show( m_widgetCheckbox ); - } - else - { - m_widgetCheckbox = gtk_check_button_new_with_label( m_label.mbc_str() ); - m_widgetLabel = GTK_BUTTON( m_widgetCheckbox )->child; - m_widget = m_widgetCheckbox; - } - - wxSize newSize(size); - if (newSize.x == -1) - { - newSize.x = 25 + gdk_string_measure( m_widgetCheckbox->style->font, - m_label.mbc_str() ); - } - if (newSize.y == -1) - newSize.y = 26; - - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widgetCheckbox), - "clicked", - GTK_SIGNAL_FUNC(gtk_checkbox_clicked_callback), - (gpointer *)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxCheckBox::SetValue( bool state ) -{ - wxCHECK_RET( m_widgetCheckbox != NULL, _T("invalid checkbox") ); - - if ( state == GetValue() ) - return; - - // for compatibility with wxMSW don't send notification when the check box - // state is changed programmatically - m_blockFirstEvent = TRUE; - - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widgetCheckbox), state ); -} - -bool wxCheckBox::GetValue() const -{ - wxCHECK_MSG( m_widgetCheckbox != NULL, FALSE, _T("invalid checkbox") ); - - return GTK_TOGGLE_BUTTON(m_widgetCheckbox)->active; -} - -void wxCheckBox::SetLabel( const wxString& label ) -{ - wxCHECK_RET( m_widgetLabel != NULL, _T("invalid checkbox") ); - - wxControl::SetLabel( label ); - - gtk_label_set( GTK_LABEL(m_widgetLabel), GetLabel().mbc_str() ); -} - -bool wxCheckBox::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - gtk_widget_set_sensitive( m_widgetLabel, enable ); - - return TRUE; -} - -void wxCheckBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widgetCheckbox, m_widgetStyle ); - gtk_widget_set_style( m_widgetLabel, m_widgetStyle ); -} - diff --git a/src/gtk1/checklst.cpp b/src/gtk1/checklst.cpp deleted file mode 100644 index 57bd258ee1..0000000000 --- a/src/gtk1/checklst.cpp +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -#include "wx/checklst.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxCheckListBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox,wxListBox) - -wxCheckListBox::wxCheckListBox() : wxListBox() -{ - m_hasCheckBoxes = TRUE; -} - -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int nStrings, - const wxString *choices, - long style, - const wxValidator& validator, - const wxString& name ) -{ - m_hasCheckBoxes = TRUE; - wxListBox::Create( parent, id, pos, size, nStrings, choices, style, validator, name ); -} - -bool wxCheckListBox::IsChecked( int index ) const -{ - wxCHECK_MSG( m_list != NULL, FALSE, _T("invalid checklistbox") ); - - GList *child = g_list_nth( m_list->children, index ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = label->label; - - return (str[1] == 'X'); - } - - wxFAIL_MSG(_T("wrong checklistbox index")); - return FALSE; -} - -void wxCheckListBox::Check( int index, bool check ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid checklistbox") ); - - GList *child = g_list_nth( m_list->children, index ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = label->label; - - if (check == (str[1] == _T('X'))) return; - - if (check) - str.SetChar( 1, _T('X') ); - else - str.SetChar( 1, _T('-') ); - - gtk_label_set( label, str.mbc_str() ); - - return; - } - - wxFAIL_MSG(_T("wrong checklistbox index")); -} - -int wxCheckListBox::GetItemHeight() const -{ - // FIXME - return 22; -} diff --git a/src/gtk1/choice.cpp b/src/gtk1/choice.cpp deleted file mode 100644 index f13d20eae3..0000000000 --- a/src/gtk1/choice.cpp +++ /dev/null @@ -1,390 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -#include "wx/choice.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "activate" -//----------------------------------------------------------------------------- - -static void gtk_choice_clicked_callback( GtkWidget *WXUNUSED(widget), wxChoice *choice ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!choice->m_hasVMT) return; - - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, choice->GetId() ); - event.SetInt( choice->GetSelection() ); - event.SetString( choice->GetStringSelection() ); - event.SetEventObject(choice); - choice->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxChoice -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxChoice,wxControl) - -wxChoice::wxChoice() -{ -} - -bool wxChoice::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - int n, const wxString choices[], - long style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; -#if (GTK_MINOR_VERSION > 0) - m_acceptsFocus = TRUE; -#endif - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_option_menu_new(); - - wxSize newSize(size); - if (newSize.x == -1) - newSize.x = 80; - if (newSize.y == -1) - newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - GtkWidget *menu = gtk_menu_new(); - - for (int i = 0; i < n; i++) - { - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - GtkWidget *item = gtk_menu_item_new_with_label( choices[i].mbc_str() ); - gtk_menu_append( GTK_MENU(menu), item ); - - gtk_widget_show( item ); - - gtk_signal_connect( GTK_OBJECT( item ), "activate", - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - } - gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxChoice::~wxChoice() -{ - Clear(); -} - -void wxChoice::AppendCommon( const wxString &item ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - GtkWidget *menu = gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ); - GtkWidget *menu_item = gtk_menu_item_new_with_label( item.mbc_str() ); - - gtk_menu_append( GTK_MENU(menu), menu_item ); - - if (GTK_WIDGET_REALIZED(m_widget)) - { - gtk_widget_realize( menu_item ); - gtk_widget_realize( GTK_BIN(menu_item)->child ); - - if (m_widgetStyle) ApplyWidgetStyle(); - } - - gtk_signal_connect( GTK_OBJECT( menu_item ), "activate", - GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this ); - - gtk_widget_show( menu_item ); -} - -void wxChoice::Append( const wxString &item ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxChoice::Append( const wxString &item, void *clientData ) -{ - m_clientDataList.Append( (wxObject*) clientData ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxChoice::Append( const wxString &item, wxClientData *clientData ) -{ - m_clientObjectList.Append( (wxObject*) clientData ); - m_clientDataList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxChoice::SetClientData( int n, void* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return; - - node->SetData( (wxObject*) clientData ); -} - -void* wxChoice::GetClientData( int n ) -{ - wxCHECK_MSG( m_widget != NULL, NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return NULL; - - return node->Data(); -} - -void wxChoice::SetClientObject( int n, wxClientData* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return; - - wxClientData *cd = (wxClientData*) node->Data(); - if (cd) delete cd; - - node->SetData( (wxObject*) clientData ); -} - -wxClientData* wxChoice::GetClientObject( int n ) -{ - wxCHECK_MSG( m_widget != NULL, (wxClientData*) NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return (wxClientData*) NULL; - - return (wxClientData*) node->Data(); -} - -void wxChoice::Clear() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - gtk_option_menu_remove_menu( GTK_OPTION_MENU(m_widget) ); - GtkWidget *menu = gtk_menu_new(); - gtk_option_menu_set_menu( GTK_OPTION_MENU(m_widget), menu ); - - wxNode *node = m_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - m_clientDataList.Clear(); -} - -void wxChoice::Delete( int WXUNUSED(n) ) -{ - wxFAIL_MSG( _T("wxChoice:Delete not implemented") ); -} - -int wxChoice::FindString( const wxString &string ) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid choice") ); - - // If you read this code once and you think you understand - // it, then you are very wrong. Robert Roebling. - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = (GtkLabel *) NULL; - if (bin->child) label = GTK_LABEL(bin->child); - if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child ); - - wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - - if (string == label->label) - return count; - - child = child->next; - count++; - } - - return -1; -} - -int wxChoice::GetColumns() const -{ - return 1; -} - -int wxChoice::GetSelection() -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid choice") ); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - if (!bin->child) return count; - child = child->next; - count++; - } - - wxFAIL_MSG( _T("wxChoice: no selection") ); - - return -1; -} - -wxString wxChoice::GetString( int n ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid choice") ); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - if (count == n) - { - GtkLabel *label = (GtkLabel *) NULL; - if (bin->child) label = GTK_LABEL(bin->child); - if (!label) label = GTK_LABEL( GTK_BUTTON(m_widget)->child ); - - wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - - return label->label; - } - child = child->next; - count++; - } - - wxFAIL_MSG( _T("wxChoice: invalid index in GetString()") ); - - return ""; -} - -wxString wxChoice::GetStringSelection() const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid choice") ); - - GtkLabel *label = GTK_LABEL( GTK_BUTTON(m_widget)->child ); - - wxASSERT_MSG( label != NULL , _T("wxChoice: invalid label") ); - - return label->label; -} - -int wxChoice::Number() const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid choice") ); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - int count = 0; - GList *child = menu_shell->children; - while (child) - { - count++; - child = child->next; - } - return count; -} - -void wxChoice::SetColumns( int WXUNUSED(n) ) -{ -} - -void wxChoice::SetSelection( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - int tmp = n; - gtk_option_menu_set_history( GTK_OPTION_MENU(m_widget), (gint)tmp ); - - gtk_choice_clicked_callback( (GtkWidget *) NULL, this ); -} - -void wxChoice::SetStringSelection( const wxString &string ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid choice") ); - - int n = FindString( string ); - if (n != -1) SetSelection( n ); -} - -void wxChoice::ApplyWidgetStyle() -{ - SetWidgetStyle(); - - GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) ); - - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( GTK_WIDGET( menu_shell ), m_widgetStyle ); - - GList *child = menu_shell->children; - while (child) - { - gtk_widget_set_style( GTK_WIDGET( child->data ), m_widgetStyle ); - - GtkBin *bin = GTK_BIN( child->data ); - GtkWidget *label = (GtkWidget *) NULL; - if (bin->child) label = bin->child; - if (!label) label = GTK_BUTTON(m_widget)->child; - - gtk_widget_set_style( label, m_widgetStyle ); - - child = child->next; - } -} - diff --git a/src/gtk1/clipbrd.cpp b/src/gtk1/clipbrd.cpp deleted file mode 100644 index f4ed88753f..0000000000 --- a/src/gtk1/clipbrd.cpp +++ /dev/null @@ -1,627 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "clipbrd.h" -#endif - -#include "wx/clipbrd.h" - -#if wxUSE_CLIPBOARD - -#include "wx/utils.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -wxClipboard *wxTheClipboard = (wxClipboard*) NULL; - -GdkAtom g_clipboardAtom = 0; -GdkAtom g_targetsAtom = 0; - -//----------------------------------------------------------------------------- -// reminder -//----------------------------------------------------------------------------- - -/* The contents of a selection are returned in a GtkSelectionData - structure. selection/target identify the request. - type specifies the type of the return; if length < 0, and - the data should be ignored. This structure has object semantics - - no fields should be modified directly, they should not be created - directly, and pointers to them should not be stored beyond the duration of - a callback. (If the last is changed, we'll need to add reference - counting) - -struct _GtkSelectionData -{ - GdkAtom selection; - GdkAtom target; - GdkAtom type; - gint format; - guchar *data; - gint length; -}; - -*/ - -//----------------------------------------------------------------------------- -// "selection_received" for targets -//----------------------------------------------------------------------------- - -static void -targets_selection_received( GtkWidget *WXUNUSED(widget), - GtkSelectionData *selection_data, -#if (GTK_MINOR_VERSION > 0) - guint32 WXUNUSED(time), -#endif - wxClipboard *clipboard ) -{ - if (!wxTheClipboard) - { - clipboard->m_waiting = FALSE; - return; - } - - if (selection_data->length <= 0) - { - clipboard->m_waiting = FALSE; - return; - } - - /* make sure we got the data in the correct form */ - if (selection_data->type != GDK_SELECTION_TYPE_ATOM) - { - clipboard->m_waiting = FALSE; - return; - } - - // the atoms we received, holding a list of targets (= formats) - GdkAtom *atoms = (GdkAtom *)selection_data->data; - - for (unsigned int i=0; ilength/sizeof(GdkAtom); i++) - { -/* char *name = gdk_atom_name (atoms[i]); - if (name) printf( "Format available: %s.\n", name ); */ - - if (atoms[i] == clipboard->m_targetRequested) - { - clipboard->m_waiting = FALSE; - clipboard->m_formatSupported = TRUE; - return; - } - } - - clipboard->m_waiting = FALSE; - return; -} - -//----------------------------------------------------------------------------- -// "selection_received" for the actual data -//----------------------------------------------------------------------------- - -static void -selection_received( GtkWidget *WXUNUSED(widget), - GtkSelectionData *selection_data, -#if (GTK_MINOR_VERSION > 0) - guint32 WXUNUSED(time), -#endif - wxClipboard *clipboard ) -{ - if (!wxTheClipboard) - { - clipboard->m_waiting = FALSE; - return; - } - - wxDataObject *data_object = clipboard->m_receivedData; - - if (!data_object) - { - clipboard->m_waiting = FALSE; - return; - } - - if (selection_data->length <= 0) - { - clipboard->m_waiting = FALSE; - return; - } - - /* make sure we got the data in the correct format */ - if (data_object->GetFormat().GetAtom() != selection_data->target) - { - clipboard->m_waiting = FALSE; - return; - } - - /* make sure we got the data in the correct form (selection type). - if so, copy data to target object */ - - switch (data_object->GetFormat().GetType()) - { - case wxDF_TEXT: - { - if (selection_data->type != GDK_SELECTION_TYPE_STRING) - { - clipboard->m_waiting = FALSE; - return; - } - - wxTextDataObject *text_object = (wxTextDataObject *) data_object; - - wxString text = (const char*) selection_data->data; - - text_object->SetText( text ); - - break; - } - - case wxDF_BITMAP: - { - if (selection_data->type != GDK_SELECTION_TYPE_BITMAP) - { - clipboard->m_waiting = FALSE; - return; - } - - break; - } - - case wxDF_PRIVATE: - { - if (selection_data->type != GDK_SELECTION_TYPE_STRING) - { - clipboard->m_waiting = FALSE; - return; - } - - wxPrivateDataObject *private_object = (wxPrivateDataObject *) data_object; - - private_object->SetData( (const char*) selection_data->data, (size_t) selection_data->length ); - - break; - } - - default: - { - clipboard->m_waiting = FALSE; - return; - } - } - - wxTheClipboard->m_formatSupported = TRUE; - clipboard->m_waiting = FALSE; -} - -//----------------------------------------------------------------------------- -// "selection_clear" -//----------------------------------------------------------------------------- - -static gint -selection_clear_clip( GtkWidget *WXUNUSED(widget), GdkEventSelection *event ) -{ - if (!wxTheClipboard) return TRUE; - - if (event->selection == GDK_SELECTION_PRIMARY) - { - wxTheClipboard->m_ownsPrimarySelection = FALSE; - } - else - if (event->selection == g_clipboardAtom) - { - wxTheClipboard->m_ownsClipboard = FALSE; - } - else - { - wxTheClipboard->m_waiting = FALSE; - return FALSE; - } - - if ((!wxTheClipboard->m_ownsPrimarySelection) && - (!wxTheClipboard->m_ownsClipboard)) - { - /* the clipboard is no longer in our hands. we can the delete clipboard data. */ - if (wxTheClipboard->m_dataBroker) - { - delete wxTheClipboard->m_dataBroker; - wxTheClipboard->m_dataBroker = (wxDataBroker*) NULL; - } - } - - wxTheClipboard->m_waiting = FALSE; - return TRUE; -} - -//----------------------------------------------------------------------------- -// selection handler for supplying data -//----------------------------------------------------------------------------- - -static void -selection_handler( GtkWidget *WXUNUSED(widget), GtkSelectionData *selection_data, gpointer WXUNUSED(data) ) -{ - if (!wxTheClipboard) return; - - if (!wxTheClipboard->m_dataBroker) return; - - wxNode *node = wxTheClipboard->m_dataBroker->m_dataObjects.First(); - - while (node) - { - wxDataObject *data_object = (wxDataObject *)node->Data(); - - if (data_object->GetFormat().GetAtom() != selection_data->target) - { - node = node->Next(); - continue; - } - - switch (data_object->GetFormat().GetType()) - { - case wxDF_TEXT: - { - wxTextDataObject *text_object = (wxTextDataObject*) data_object; - - wxString text = text_object->GetText(); - -#if wxUSE_UNICODE - const wxWX2MBbuf s = text.mbc_str(); - int len = strlen(s); -#else // more efficient in non-Unicode - const char *s = text.c_str(); - int len = (int) text.Length(); -#endif - - gtk_selection_data_set( - selection_data, - GDK_SELECTION_TYPE_STRING, - 8*sizeof(gchar), - (unsigned char*) (const char*) s, - len ); - - break; - } - - case wxDF_BITMAP: - { - // wxBitmapDataObject *private_object = (wxBitmapDataObject*) data_object; - - // how do we do that ? - - break; - } - - case wxDF_PRIVATE: - { - wxPrivateDataObject *private_object = (wxPrivateDataObject*) data_object; - - if (private_object->GetSize() == 0) return; - - gtk_selection_data_set( - selection_data, - GDK_SELECTION_TYPE_STRING, - 8*sizeof(gchar), - (unsigned char*) private_object->GetData(), - (int) private_object->GetSize() ); - } - - default: - break; - } - - node = node->Next(); - } -} - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject) - -wxClipboard::wxClipboard() -{ - m_open = FALSE; - - m_ownsClipboard = FALSE; - m_ownsPrimarySelection = FALSE; - - m_dataBroker = (wxDataBroker*) NULL; - - m_receivedData = (wxDataObject*) NULL; - - /* we use m_targetsWidget to query what formats are available */ - - m_targetsWidget = gtk_window_new( GTK_WINDOW_POPUP ); - gtk_widget_realize( m_targetsWidget ); - - gtk_signal_connect( GTK_OBJECT(m_targetsWidget), - "selection_received", - GTK_SIGNAL_FUNC( targets_selection_received ), - (gpointer) this ); - - /* we use m_clipboardWidget to get and to offer data */ - - m_clipboardWidget = gtk_window_new( GTK_WINDOW_POPUP ); - gtk_widget_realize( m_clipboardWidget ); - - gtk_signal_connect( GTK_OBJECT(m_clipboardWidget), - "selection_received", - GTK_SIGNAL_FUNC( selection_received ), - (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_clipboardWidget), - "selection_clear_event", - GTK_SIGNAL_FUNC( selection_clear_clip ), - (gpointer) NULL ); - - if (!g_clipboardAtom) g_clipboardAtom = gdk_atom_intern( "CLIPBOARD", FALSE ); - if (!g_targetsAtom) g_targetsAtom = gdk_atom_intern ("TARGETS", FALSE); - - m_formatSupported = FALSE; - m_targetRequested = 0; - - m_usePrimary = FALSE; -} - -wxClipboard::~wxClipboard() -{ - Clear(); - - if (m_clipboardWidget) gtk_widget_destroy( m_clipboardWidget ); - if (m_targetsWidget) gtk_widget_destroy( m_targetsWidget ); -} - -void wxClipboard::Clear() -{ - if (m_dataBroker) - { - /* As we have data we also own the clipboard. Once we no longer own - it, clear_selection is called which will set m_data to zero */ - - if (gdk_selection_owner_get( g_clipboardAtom ) == m_clipboardWidget->window) - { - m_waiting = TRUE; - - gtk_selection_owner_set( (GtkWidget*) NULL, g_clipboardAtom, GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - } - - if (gdk_selection_owner_get( GDK_SELECTION_PRIMARY ) == m_clipboardWidget->window) - { - m_waiting = TRUE; - - gtk_selection_owner_set( (GtkWidget*) NULL, GDK_SELECTION_PRIMARY, GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - } - - if (m_dataBroker) - { - delete m_dataBroker; - m_dataBroker = (wxDataBroker*) NULL; - } - } - - m_targetRequested = 0; - - m_formatSupported = FALSE; -} - -bool wxClipboard::Open() -{ - wxCHECK_MSG( !m_open, FALSE, _T("clipboard already open") ); - - m_open = TRUE; - - return TRUE; -} - -bool wxClipboard::SetData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - wxCHECK_MSG( data, FALSE, _T("data is invalid") ); - - Clear(); - - return AddData( data ); -} - -bool wxClipboard::AddData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - wxCHECK_MSG( data, FALSE, _T("data is invalid") ); - - /* if clipboard has been cleared before, create new data broker */ - if (!m_dataBroker) m_dataBroker = new wxDataBroker(); - - /* add new data to list of offered data objects */ - m_dataBroker->Add( data ); - - /* get native format id of new data object */ - GdkAtom format = data->GetFormat().GetAtom(); - - wxCHECK_MSG( format, FALSE, _T("data has invalid format") ); - - /* This should happen automatically, but to be on the safe side */ - m_ownsClipboard = FALSE; - m_ownsPrimarySelection = FALSE; - - /* Add handlers if someone requests data */ - -#if (GTK_MINOR_VERSION > 0) - - gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget), - GDK_SELECTION_PRIMARY, - format, - 0 ); /* what is info ? */ - - gtk_selection_add_target( GTK_WIDGET(m_clipboardWidget), - g_clipboardAtom, - format, - 0 ); /* what is info ? */ - - gtk_signal_connect( GTK_OBJECT(m_clipboardWidget), - "selection_get", - GTK_SIGNAL_FUNC(selection_handler), - (gpointer) NULL ); - -#else - - gtk_selection_add_handler( m_clipboardWidget, - g_clipboardAtom, - format, - selection_handler, - (gpointer) NULL ); - - gtk_selection_add_handler( m_clipboardWidget, - GDK_SELECTION_PRIMARY, - format, - selection_handler, - (gpointer) NULL ); -#endif - - /* Tell the world we offer clipboard data */ - if (!gtk_selection_owner_set( m_clipboardWidget, - g_clipboardAtom, - GDK_CURRENT_TIME )) - { - return FALSE; - } - m_ownsClipboard = TRUE; - - if (!gtk_selection_owner_set( m_clipboardWidget, - GDK_SELECTION_PRIMARY, - GDK_CURRENT_TIME )) - { - return FALSE; - } - m_ownsPrimarySelection = TRUE; - - return TRUE; -} - -void wxClipboard::Close() -{ - wxCHECK_RET( m_open, _T("clipboard not open") ); - - m_open = FALSE; -} - -bool wxClipboard::IsSupported( wxDataFormat format ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - /* store requested format to be asked for by callbacks */ - - m_targetRequested = format.GetAtom(); - - wxCHECK_MSG( m_targetRequested, FALSE, _T("invalid clipboard format") ); - - m_formatSupported = FALSE; - - /* perform query. this will set m_formatSupported to - TRUE if m_targetRequested is supported. - alsom we have to wait for the "answer" from the - clipboard owner which is an asynchronous process. - therefore we set m_waiting = TRUE here and wait - until the callback "targets_selection_received" - sets it to FALSE */ - - m_waiting = TRUE; - - gtk_selection_convert( m_targetsWidget, - m_usePrimary?GDK_SELECTION_PRIMARY:g_clipboardAtom, - g_targetsAtom, - GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - - if (!m_formatSupported) return FALSE; - - return TRUE; -} - -bool wxClipboard::GetData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, _T("clipboard not open") ); - - /* is data supported by clipboard ? */ - - if (!IsSupported( data->GetFormat() )) return FALSE; - - /* store pointer to data object to be filled up by callbacks */ - - m_receivedData = data; - - /* store requested format to be asked for by callbacks */ - - m_targetRequested = data->GetFormat().GetAtom(); - - wxCHECK_MSG( m_targetRequested, FALSE, _T("invalid clipboard format") ); - - /* start query */ - - m_formatSupported = FALSE; - - /* ask for clipboard contents. this will set - m_formatSupported to TRUE if m_targetRequested - is supported. - also, we have to wait for the "answer" from the - clipboard owner which is an asynchronous process. - therefore we set m_waiting = TRUE here and wait - until the callback "targets_selection_received" - sets it to FALSE */ - - m_waiting = TRUE; - - gtk_selection_convert( m_clipboardWidget, - m_usePrimary?GDK_SELECTION_PRIMARY:g_clipboardAtom, - m_targetRequested, - GDK_CURRENT_TIME ); - - while (m_waiting) gtk_main_iteration(); - - /* this is a true error as we checked for the presence of such data before */ - - wxCHECK_MSG( m_formatSupported, FALSE, _T("error retrieving data from clipboard") ); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule) - -bool wxClipboardModule::OnInit() -{ - wxTheClipboard = new wxClipboard(); - - return TRUE; -} - -void wxClipboardModule::OnExit() -{ - if (wxTheClipboard) delete wxTheClipboard; - wxTheClipboard = (wxClipboard*) NULL; -} - -#endif - - // wxUSE_CLIPBOARD - diff --git a/src/gtk1/colour.cpp b/src/gtk1/colour.cpp deleted file mode 100644 index 51fde80c11..0000000000 --- a/src/gtk1/colour.cpp +++ /dev/null @@ -1,226 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" - -//----------------------------------------------------------------------------- -// wxColour -//----------------------------------------------------------------------------- - -class wxColourRefData: public wxObjectRefData -{ - public: - - wxColourRefData(); - ~wxColourRefData(); - void FreeColour(); - - GdkColor m_color; - GdkColormap *m_colormap; - bool m_hasPixel; - - friend wxColour; -}; - -wxColourRefData::wxColourRefData() -{ - m_color.red = 0; - m_color.green = 0; - m_color.blue = 0; - m_color.pixel = 0; - m_colormap = (GdkColormap *) NULL; - m_hasPixel = FALSE; -} - -wxColourRefData::~wxColourRefData() -{ - FreeColour(); -} - -void wxColourRefData::FreeColour() -{ -// if (m_hasPixel) gdk_colors_free( m_colormap, &m_color, 1, 0 ); -} - -//----------------------------------------------------------------------------- - -#define M_COLDATA ((wxColourRefData *)m_refData) - -#define SHIFT (8*(sizeof(short int)-sizeof(char))) - -IMPLEMENT_DYNAMIC_CLASS(wxColour,wxGDIObject) - -wxColour::wxColour() -{ -} - -wxColour::wxColour( unsigned char red, unsigned char green, unsigned char blue ) -{ - m_refData = new wxColourRefData(); - M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT; - M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT; - M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT; - M_COLDATA->m_color.pixel = 0; -} - -void wxColour::InitFromName( const wxString &colourName ) -{ - wxNode *node = (wxNode *) NULL; - if ( (wxTheColourDatabase) && (node = wxTheColourDatabase->Find(colourName)) ) - { - wxColour *col = (wxColour*)node->Data(); - UnRef(); - if (col) Ref( *col ); - } - else - { - m_refData = new wxColourRefData(); - if (!gdk_color_parse( colourName.mb_str(), &M_COLDATA->m_color )) - { - wxFAIL_MSG( _T("wxColour: couldn't find colour") ); - wxPrintf( _T("Colourname %s.\n"), WXSTRINGCAST colourName ); - - delete m_refData; - m_refData = (wxObjectRefData *) NULL; - } - } -} - -wxColour::wxColour( const wxColour& col ) -{ - Ref( col ); -} - -wxColour::~wxColour() -{ -} - -wxColour& wxColour::operator = ( const wxColour& col ) -{ - if (*this == col) return (*this); - Ref( col ); - return *this; -} - -bool wxColour::operator == ( const wxColour& col ) const -{ - if (m_refData == col.m_refData) return TRUE; - - if (!m_refData) return FALSE; - if (!col.m_refData) return FALSE; - - GdkColor *own = &(((wxColourRefData*)m_refData)->m_color); - GdkColor *other = &(((wxColourRefData*)col.m_refData)->m_color); - if (own->red != other->red) return FALSE; - if (own->blue != other->blue) return FALSE; - if (own->green != other->green) return FALSE; - - return TRUE; -} - -bool wxColour::operator != ( const wxColour& col) const -{ - return m_refData != col.m_refData; -} - -void wxColour::Set( unsigned char red, unsigned char green, unsigned char blue ) -{ - UnRef(); - m_refData = new wxColourRefData(); - M_COLDATA->m_color.red = ((unsigned short)red) << SHIFT; - M_COLDATA->m_color.green = ((unsigned short)green) << SHIFT; - M_COLDATA->m_color.blue = ((unsigned short)blue) << SHIFT; - M_COLDATA->m_color.pixel = 0; -} - -unsigned char wxColour::Red() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return (unsigned char)(M_COLDATA->m_color.red >> SHIFT); -} - -unsigned char wxColour::Green() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return (unsigned char)(M_COLDATA->m_color.green >> SHIFT); -} - -unsigned char wxColour::Blue() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return (unsigned char)(M_COLDATA->m_color.blue >> SHIFT); -} - -bool wxColour::Ok() const -{ - return (m_refData != NULL); -} - -void wxColour::CalcPixel( GdkColormap *cmap ) -{ - if (!Ok()) return; - - if ((M_COLDATA->m_hasPixel) && (M_COLDATA->m_colormap == cmap)) return; - - M_COLDATA->FreeColour(); - - GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap; - if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) || - (private_colormap->visual->type == GDK_VISUAL_PSEUDO_COLOR)) - { - GdkColor *colors = cmap->colors; - int max = 3 * (65536); - int index = -1; - - for (int i = 0; i < cmap->size; i++) - { - int rdiff = (M_COLDATA->m_color.red - colors[i].red); - int gdiff = (M_COLDATA->m_color.green - colors[i].green); - int bdiff = (M_COLDATA->m_color.blue - colors[i].blue); - int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); - if (sum < max) { index = i; max = sum; } - } - - M_COLDATA->m_hasPixel = TRUE; - M_COLDATA->m_color.pixel = index; - } - else - { - M_COLDATA->m_hasPixel = gdk_color_alloc( cmap, &M_COLDATA->m_color ); - } - - M_COLDATA->m_colormap = cmap; -} - -int wxColour::GetPixel() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid colour") ); - - return M_COLDATA->m_color.pixel; -} - -GdkColor *wxColour::GetColor() const -{ - wxCHECK_MSG( Ok(), (GdkColor *) NULL, _T("invalid colour") ); - - return &M_COLDATA->m_color; -} - - diff --git a/src/gtk1/combobox.cpp b/src/gtk1/combobox.cpp deleted file mode 100644 index bec8f16668..0000000000 --- a/src/gtk1/combobox.cpp +++ /dev/null @@ -1,627 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" -#include "wx/settings.h" - -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "select" -//----------------------------------------------------------------------------- - -static void -gtk_combo_clicked_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!combo->m_hasVMT) return; - - if (g_blockEventsOnDrag) return; - - if (combo->m_alreadySent) - { - combo->m_alreadySent = FALSE; - return; - } - - combo->m_alreadySent = TRUE; - - wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, combo->GetId() ); - event.SetInt( combo->GetSelection() ); - event.SetString( combo->GetStringSelection() ); - event.SetEventObject( combo ); - - combo->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" -//----------------------------------------------------------------------------- - -static void -gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxComboBox *combo ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!combo->m_hasVMT) return; - - wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, combo->GetId() ); - event.SetString( combo->GetValue() ); - event.SetEventObject( combo ); - combo->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxComboBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxComboBox,wxControl) - -BEGIN_EVENT_TABLE(wxComboBox, wxControl) - EVT_SIZE(wxComboBox::OnSize) - EVT_CHAR(wxComboBox::OnChar) -END_EVENT_TABLE() - -bool wxComboBox::Create( wxWindow *parent, wxWindowID id, const wxString& value, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - long style, const wxValidator& validator, - const wxString& name ) -{ - m_alreadySent = FALSE; - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_combo_new(); - - // make it more useable - gtk_combo_set_use_arrows_always(GTK_COMBO(m_widget), TRUE); - - wxSize newSize = size; - if (newSize.x == -1) - newSize.x = 100; - if (newSize.y == -1) - newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - for (int i = 0; i < n; i++) - { - /* don't send first event, which GTK sends aways when - inserting the first item */ - m_alreadySent = TRUE; - - GtkWidget *list_item = gtk_list_item_new_with_label( choices[i].mbc_str() ); - - m_clientDataList.Append( (wxObject*)NULL ); - m_clientObjectList.Append( (wxObject*)NULL ); - - gtk_container_add( GTK_CONTAINER(list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - gtk_widget_show( list_item ); - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - ConnectWidget( GTK_COMBO(m_widget)->button ); - - if (!value.IsNull()) SetValue( value ); - - if (style & wxCB_READONLY) - gtk_entry_set_editable( GTK_ENTRY( GTK_COMBO(m_widget)->entry ), FALSE ); - - gtk_signal_connect( GTK_OBJECT(GTK_COMBO(m_widget)->entry), "changed", - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxComboBox::~wxComboBox() -{ - wxNode *node = m_clientDataList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientDataList.Clear(); -} - -void wxComboBox::AppendCommon( const wxString &item ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GtkWidget *list_item = gtk_list_item_new_with_label( item.mbc_str() ); - - gtk_container_add( GTK_CONTAINER(list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_combo_clicked_callback), (gpointer)this ); - - if (GTK_WIDGET_REALIZED(m_widget)) - { - gtk_widget_realize( list_item ); - gtk_widget_realize( GTK_BIN(list_item)->child ); - - if (m_widgetStyle) ApplyWidgetStyle(); - } - - gtk_widget_show( list_item ); -} - -void wxComboBox::Append( const wxString &item ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxComboBox::Append( const wxString &item, void *clientData ) -{ - m_clientDataList.Append( (wxObject*) clientData ); - m_clientObjectList.Append( (wxObject*)NULL ); - - AppendCommon( item ); -} - -void wxComboBox::Append( const wxString &item, wxClientData *clientData ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) clientData ); - - AppendCommon( item ); -} - -void wxComboBox::SetClientData( int n, void* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return; - - node->SetData( (wxObject*) clientData ); -} - -void* wxComboBox::GetClientData( int n ) -{ - wxCHECK_MSG( m_widget != NULL, NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return NULL; - - return node->Data(); -} - -void wxComboBox::SetClientObject( int n, wxClientData* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return; - - wxClientData *cd = (wxClientData*) node->Data(); - if (cd) delete cd; - - node->SetData( (wxObject*) clientData ); -} - -wxClientData* wxComboBox::GetClientObject( int n ) -{ - wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return (wxClientData*) NULL; - - return (wxClientData*) node->Data(); -} - -void wxComboBox::Clear() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - gtk_list_clear_items( GTK_LIST(list), 0, Number() ); - - wxNode *node = m_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - m_clientDataList.Clear(); -} - -void wxComboBox::Delete( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkList *listbox = GTK_LIST( GTK_COMBO(m_widget)->list ); - - GList *child = g_list_nth( listbox->children, n ); - - if (!child) - { - wxFAIL_MSG(_T("wrong index")); - return; - } - - GList *list = g_list_append( (GList*) NULL, child->data ); - gtk_list_remove_items( listbox, list ); - g_list_free( list ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - m_clientObjectList.DeleteNode( node ); - } - - node = m_clientDataList.Nth( n ); - if (node) - { - m_clientDataList.DeleteNode( node ); - } -} - -int wxComboBox::FindString( const wxString &item ) -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *child = GTK_LIST(list)->children; - int count = 0; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - if (item == wxString(label->label,*wxConvCurrent)) - return count; - count++; - child = child->next; - } - - return wxNOT_FOUND; -} - -int wxComboBox::GetSelection() const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *selection = GTK_LIST(list)->selection; - if (selection) - { - GList *child = GTK_LIST(list)->children; - int count = 0; - while (child) - { - if (child->data == selection->data) return count; - count++; - child = child->next; - } - } - - wxFAIL_MSG( _T("wxComboBox: no selection") ); - - return -1; -} - -wxString wxComboBox::GetString( int n ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - wxString str; - GList *child = g_list_nth( GTK_LIST(list)->children, n ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - str = wxString(label->label,*wxConvCurrent); - } - else - { - wxFAIL_MSG( _T("wxComboBox: wrong index") ); - } - - return str; -} - -wxString wxComboBox::GetStringSelection() const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *selection = GTK_LIST(list)->selection; - if (selection) - { - GtkBin *bin = GTK_BIN( selection->data ); - wxString tmp = wxString(GTK_LABEL( bin->child )->label,*wxConvCurrent); - return tmp; - } - - wxFAIL_MSG( _T("wxComboBox: no selection") ); - - return _T(""); -} - -int wxComboBox::Number() const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - - GList *child = GTK_LIST(list)->children; - int count = 0; - while (child) { count++; child = child->next; } - return count; -} - -void wxComboBox::SetSelection( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *list = GTK_COMBO(m_widget)->list; - gtk_list_select_item( GTK_LIST(list), n ); -} - -void wxComboBox::SetStringSelection( const wxString &string ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - int res = FindString( string ); - if (res == -1) return; - SetSelection( res ); -} - -wxString wxComboBox::GetValue() const -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - wxString tmp = wxString(gtk_entry_get_text( GTK_ENTRY(entry) ),*wxConvCurrent); - return tmp; -} - -void wxComboBox::SetValue( const wxString& value ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - wxString tmp = _T(""); - if (!value.IsNull()) tmp = value; - gtk_entry_set_text( GTK_ENTRY(entry), tmp.mbc_str() ); -} - -void wxComboBox::Copy() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; -#if (GTK_MINOR_VERSION > 0) - gtk_editable_copy_clipboard( GTK_EDITABLE(entry) ); -#else - gtk_editable_copy_clipboard( GTK_EDITABLE(entry), 0 ); -#endif -} - -void wxComboBox::Cut() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; -#if (GTK_MINOR_VERSION > 0) - gtk_editable_cut_clipboard( GTK_EDITABLE(entry) ); -#else - gtk_editable_cut_clipboard( GTK_EDITABLE(entry), 0 ); -#endif -} - -void wxComboBox::Paste() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; -#if (GTK_MINOR_VERSION > 0) - gtk_editable_paste_clipboard( GTK_EDITABLE(entry) ); -#else - gtk_editable_paste_clipboard( GTK_EDITABLE(entry), 0 ); -#endif -} - -void wxComboBox::SetInsertionPoint( long pos ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_entry_set_position( GTK_ENTRY(entry), (int)pos ); -} - -void wxComboBox::SetInsertionPointEnd() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - SetInsertionPoint( -1 ); -} - -long wxComboBox::GetInsertionPoint() const -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - return (long) GTK_EDITABLE(entry)->current_pos; -} - -long wxComboBox::GetLastPosition() const -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - int pos = GTK_ENTRY(entry)->text_length; - return (long) pos-1; -} - -void wxComboBox::Replace( long from, long to, const wxString& value ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - // FIXME: not quite sure how to do this method right in multibyte mode - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_editable_delete_text( GTK_EDITABLE(entry), (gint)from, (gint)to ); - if (value.IsNull()) return; - gint pos = (gint)to; - gtk_editable_insert_text( GTK_EDITABLE(entry), value.mbc_str(), value.Length(), &pos ); -} - -void wxComboBox::Remove(long from, long to) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_editable_delete_text( GTK_EDITABLE(entry), (gint)from, (gint)to ); -} - -void wxComboBox::SetSelection( long from, long to ) -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_editable_select_region( GTK_EDITABLE(entry), (gint)from, (gint)to ); -} - -void wxComboBox::SetEditable( bool editable ) -{ - GtkWidget *entry = GTK_COMBO(m_widget)->entry; - gtk_entry_set_editable( GTK_ENTRY(entry), editable ); -} - -void wxComboBox::OnChar( wxKeyEvent &event ) -{ - if ( event.KeyCode() == WXK_RETURN ) - { - wxString value = GetValue(); - - if ( Number() == 0 ) - { - // make Enter generate "selected" event if there is only one item - // in the combobox - without it, it's impossible to select it at - // all! - wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); - event.SetInt( 0 ); - event.SetString( value ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - } - else - { - // add the item to the list if it's not there yet - if ( FindString(value) == wxNOT_FOUND ) - { - Append(value); - - // and generate the selected event for it - wxCommandEvent event( wxEVT_COMMAND_COMBOBOX_SELECTED, GetId() ); - event.SetInt( Number() - 1 ); - event.SetString( value ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - } - //else: do nothing, this will open the listbox - } - } - - event.Skip(); -} - -void wxComboBox::OnSize( wxSizeEvent &event ) -{ - event.Skip(); - - return; - - int w = 21; - gtk_widget_set_usize( GTK_COMBO(m_widget)->entry, m_width-w-1, m_height ); - - gtk_widget_set_uposition( GTK_COMBO(m_widget)->button, m_x+m_width-w, m_y ); - gtk_widget_set_usize( GTK_COMBO(m_widget)->button, w, m_height ); -} - -void wxComboBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - -// gtk_widget_set_style( GTK_COMBO(m_widget)->button, m_widgetStyle ); - gtk_widget_set_style( GTK_COMBO(m_widget)->entry, m_widgetStyle ); - gtk_widget_set_style( GTK_COMBO(m_widget)->list, m_widgetStyle ); - - GtkList *list = GTK_LIST( GTK_COMBO(m_widget)->list ); - GList *child = list->children; - while (child) - { - gtk_widget_set_style( GTK_WIDGET(child->data), m_widgetStyle ); - - GtkBin *bin = GTK_BIN(child->data); - gtk_widget_set_style( bin->child, m_widgetStyle ); - - child = child->next; - } -} - -GtkWidget* wxComboBox::GetConnectWidget() -{ - return GTK_COMBO(m_widget)->entry; -} - -bool wxComboBox::IsOwnGtkWindow( GdkWindow *window ) -{ - return ( (window == GTK_ENTRY( GTK_COMBO(m_widget)->entry )->text_area) || - (window == GTK_COMBO(m_widget)->button->window ) ); -} - diff --git a/src/gtk1/control.cpp b/src/gtk1/control.cpp deleted file mode 100644 index 69e7a9a0b2..0000000000 --- a/src/gtk1/control.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" - -#include "gtk/gtkfeatures.h" - -//----------------------------------------------------------------------------- -// wxControl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxControl,wxWindow) - -wxControl::wxControl(void) -{ - m_needParent = TRUE; -} - -wxControl::wxControl( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) : - wxWindow( parent, id, pos, size, style, name ) -{ -} - -void wxControl::Command( wxCommandEvent &WXUNUSED(event) ) -{ -} - -void wxControl::SetLabel( const wxString &label ) -{ - m_label = _T(""); - for ( const wxChar *pc = label; *pc != _T('\0'); pc++ ) - { - if ( *pc == _T('&') ) - { - pc++; // skip it -#if 0 // it would be unused anyhow for now - kbd interface not done yet - if ( *pc != _T('&') ) m_chAccel = *pc; -#endif - } - m_label << *pc; - } -} - -wxString wxControl::GetLabel(void) const -{ - return m_label; -} - - diff --git a/src/gtk1/cross.xbm b/src/gtk1/cross.xbm deleted file mode 100644 index b07cbe7fcd..0000000000 --- a/src/gtk1/cross.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cross_width 15 -#define cross_height 15 -static char cross_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/gtk1/cursor.cpp b/src/gtk1/cursor.cpp deleted file mode 100644 index 2277c0aee4..0000000000 --- a/src/gtk1/cursor.cpp +++ /dev/null @@ -1,185 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// wxCursor -//----------------------------------------------------------------------------- - -class wxCursorRefData: public wxObjectRefData -{ - public: - - wxCursorRefData(); - ~wxCursorRefData(); - - GdkCursor *m_cursor; -}; - -wxCursorRefData::wxCursorRefData() -{ - m_cursor = (GdkCursor *) NULL; -} - -wxCursorRefData::~wxCursorRefData() -{ - if (m_cursor) gdk_cursor_destroy( m_cursor ); -} - -//----------------------------------------------------------------------------- - -#define M_CURSORDATA ((wxCursorRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxCursor,wxObject) - -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor( int cursorId ) -{ - m_refData = new wxCursorRefData(); - - GdkCursorType gdk_cur = GDK_LEFT_PTR; - switch (cursorId) - { - case wxCURSOR_HAND: gdk_cur = GDK_HAND1; break; - case wxCURSOR_CROSS: gdk_cur = GDK_CROSSHAIR; break; - case wxCURSOR_SIZEWE: gdk_cur = GDK_SB_H_DOUBLE_ARROW; break; - case wxCURSOR_SIZENS: gdk_cur = GDK_SB_V_DOUBLE_ARROW; break; - case wxCURSOR_WAIT: - case wxCURSOR_WATCH: gdk_cur = GDK_WATCH; break; - case wxCURSOR_SIZING: gdk_cur = GDK_SIZING; break; - case wxCURSOR_SPRAYCAN: gdk_cur = GDK_SPRAYCAN; break; - case wxCURSOR_IBEAM: gdk_cur = GDK_XTERM; break; - case wxCURSOR_PENCIL: gdk_cur = GDK_PENCIL; break; - case wxCURSOR_NO_ENTRY: gdk_cur = GDK_PIRATE; break; - case wxCURSOR_SIZENWSE: - case wxCURSOR_SIZENESW: gdk_cur = GDK_FLEUR; break; - case wxCURSOR_QUESTION_ARROW: gdk_cur = GDK_QUESTION_ARROW; break; - case wxCURSOR_PAINT_BRUSH: gdk_cur = GDK_SPRAYCAN; break; - case wxCURSOR_MAGNIFIER: gdk_cur = GDK_PLUS; break; - case wxCURSOR_CHAR: gdk_cur = GDK_XTERM; break; - case wxCURSOR_LEFT_BUTTON: gdk_cur = GDK_LEFTBUTTON; break; - case wxCURSOR_MIDDLE_BUTTON: gdk_cur = GDK_MIDDLEBUTTON; break; - case wxCURSOR_RIGHT_BUTTON: gdk_cur = GDK_RIGHTBUTTON; break; -/* - case wxCURSOR_DOUBLE_ARROW: gdk_cur = GDK_DOUBLE_ARROW; break; - case wxCURSOR_CROSS_REVERSE: gdk_cur = GDK_CROSS_REVERSE; break; - case wxCURSOR_BASED_ARROW_UP: gdk_cur = GDK_BASED_ARROW_UP; break; - case wxCURSOR_BASED_ARROW_DOWN: gdk_cur = GDK_BASED_ARROW_DOWN; break; -*/ - default: - wxFAIL_MSG(_T("unsupported cursor type")); - // will use the standard one - - case wxCURSOR_ARROW: - break; - } - - M_CURSORDATA->m_cursor = gdk_cursor_new( gdk_cur ); -} - -wxCursor::wxCursor( const wxCursor &cursor ) -{ - Ref( cursor ); -} - -wxCursor::~wxCursor() -{ -} - -wxCursor& wxCursor::operator = ( const wxCursor& cursor ) -{ - if (*this == cursor) - return (*this); - - Ref( cursor ); - - return *this; -} - -bool wxCursor::operator == ( const wxCursor& cursor ) const -{ - return m_refData == cursor.m_refData; -} - -bool wxCursor::operator != ( const wxCursor& cursor ) const -{ - return m_refData != cursor.m_refData; -} - -bool wxCursor::Ok() const -{ - return (m_refData != NULL); -} - -GdkCursor *wxCursor::GetCursor() const -{ - return M_CURSORDATA->m_cursor; -} - -//----------------------------------------------------------------------------- -// busy cursor routines -//----------------------------------------------------------------------------- - -extern wxCursor g_globalCursor; - -static wxCursor gs_savedCursor; -static int gs_busyCount = 0; - -void wxEndBusyCursor() -{ - if (--gs_busyCount > 0) - return; - - wxSetCursor( gs_savedCursor ); - gs_savedCursor = wxNullCursor; -} - -void wxBeginBusyCursor( wxCursor *WXUNUSED(cursor) ) -{ - if (gs_busyCount++ > 0) - return; - - wxASSERT_MSG( !gs_savedCursor.Ok(), - _T("forgot to call wxEndBusyCursor, will leak memory") ); - - gs_savedCursor = g_globalCursor; - - wxSetCursor( wxCursor(wxCURSOR_WATCH) ); -} - -bool wxIsBusy() -{ - return gs_busyCount > 0; -} - -void wxSetCursor( const wxCursor& cursor ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - g_globalCursor = cursor; -} diff --git a/src/gtk1/data.cpp b/src/gtk1/data.cpp deleted file mode 100644 index 60234d0fd6..0000000000 --- a/src/gtk1/data.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -// #pragma implementation -#endif - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/window.h" -#include "wx/dc.h" -#include "wx/accel.h" -#include "wx/dcps.h" -#include "wx/icon.h" - -#define _MAXPATHLEN 500 - -/* Used for X resources */ -#include -#include -#include - -wxResourceCache *wxTheResourceCache = (wxResourceCache *) NULL; -XrmDatabase wxResourceDatabase; - -/* Useful buffer, initialized in wxCommonInit */ -char *wxBuffer = (char *) NULL; - -/* Windows List */ -wxWindowList wxTopLevelWindows; - -/* List of windows pending deletion */ -wxList wxPendingDelete; - -#if wxUSE_THREADS -/* List of events pending processing */ -wxList *wxPendingEvents = NULL; -wxCriticalSection *wxPendingEventsLocker = NULL; -#endif - -/* Current cursor, in order to hang on to - * cursor handle when setting the cursor globally */ -wxCursor g_globalCursor; - -/* Don't allow event propagation during drag */ -bool g_blockEventsOnDrag = FALSE; - -/* Don't allow mouse event propagation during scroll */ -bool g_blockEventsOnScroll = FALSE; - -/* TRUE when the message queue is empty. this gets set to - FALSE by all event callbacks before anything else is done */ -bool g_isIdle = FALSE; - -/* Message Strings for Internationalization */ -char **wx_msg_str = (char**)NULL; - -/* Custom OS version, as optionally placed in wx.ini/.wxrc - * Currently this can be Win95, Windows, Win32s, WinNT. - * For some systems, you can't tell until run-time what services you - * have. See wxGetOsVersion, which uses this string if present. */ -char *wxOsVersion = (char *) NULL; - -/* For printing several pages */ -int wxPageNumber; - -// Now in prntbase.cpp -// wxPrintPaperDatabase* wxThePrintPaperDatabase = (wxPrintPaperDatabase *) NULL; - -/* GDI Object Lists */ -wxBrushList *wxTheBrushList = (wxBrushList *) NULL; -wxPenList *wxThePenList = (wxPenList *) NULL; -wxFontList *wxTheFontList = (wxFontList *) NULL; -wxColourDatabase *wxTheColourDatabase = (wxColourDatabase *) NULL; -wxBitmapList *wxTheBitmapList = (wxBitmapList *) NULL; - -/* X only font names */ -/* -wxFontNameDirectory *wxTheFontNameDirectory; -*/ - -/* Stock objects */ -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; - -wxPen *wxRED_PEN; -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxGREY; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = (wxCursor *) NULL; -wxCursor *wxHOURGLASS_CURSOR = (wxCursor *) NULL; -wxCursor *wxCROSS_CURSOR = (wxCursor *) NULL; - -/* 'Null' objects */ -#if wxUSE_ACCEL - wxAcceleratorTable wxNullAcceleratorTable; -#endif // wxUSE_ACCEL - -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxFont wxNullFont; -wxColour wxNullColour; -wxPalette wxNullPalette; - -/* Default window names */ -const wxChar *wxButtonNameStr = _T("button"); -const wxChar *wxCanvasNameStr = _T("canvas"); -const wxChar *wxCheckBoxNameStr = _T("check"); -const wxChar *wxChoiceNameStr = _T("choice"); -const wxChar *wxComboBoxNameStr = _T("comboBox"); -const wxChar *wxDialogNameStr = _T("dialog"); -const wxChar *wxFrameNameStr = _T("frame"); -const wxChar *wxGaugeNameStr = _T("gauge"); -const wxChar *wxStaticBoxNameStr = _T("groupBox"); -const wxChar *wxListBoxNameStr = _T("listBox"); -const wxChar *wxStaticTextNameStr = _T("message"); -const wxChar *wxStaticBitmapNameStr = _T("message"); -const wxChar *wxMultiTextNameStr = _T("multitext"); -const wxChar *wxPanelNameStr = _T("panel"); -const wxChar *wxRadioBoxNameStr = _T("radioBox"); -const wxChar *wxRadioButtonNameStr = _T("radioButton"); -const wxChar *wxBitmapRadioButtonNameStr = _T("radioButton"); -const wxChar *wxScrollBarNameStr = _T("scrollBar"); -const wxChar *wxSliderNameStr = _T("slider"); -const wxChar *wxStaticNameStr = _T("static"); -const wxChar *wxTextCtrlWindowNameStr = _T("textWindow"); -const wxChar *wxTextCtrlNameStr = _T("text"); -const wxChar *wxVirtListBoxNameStr = _T("virtListBox"); -const wxChar *wxButtonBarNameStr = _T("buttonbar"); -const wxChar *wxEnhDialogNameStr = _T("Shell"); -const wxChar *wxToolBarNameStr = _T("toolbar"); -const wxChar *wxStatusLineNameStr = _T("status_line"); -const wxChar *wxEmptyString = _T(""); -const wxChar *wxGetTextFromUserPromptStr = _T("Input Text"); -const wxChar *wxMessageBoxCaptionStr = _T("Message"); -const wxChar *wxFileSelectorPromptStr = _T("Select a file"); -const wxChar *wxFileSelectorDefaultWildcardStr = _T("*.*"); -const wxChar *wxInternalErrorStr = _T("wxWindows Internal Error"); -const wxChar *wxFatalErrorStr = _T("wxWindows Fatal Error"); - -/* See wx/utils.h */ -const wxChar *wxFloatToStringStr = _T("%.2f"); -const wxChar *wxDoubleToStringStr = _T("%.2f"); - -/* Dafaults for wxWindow etc. */ -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/gtk1/dataobj.cpp b/src/gtk1/dataobj.cpp deleted file mode 100644 index bb9e817c05..0000000000 --- a/src/gtk1/dataobj.cpp +++ /dev/null @@ -1,469 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.cpp -// Purpose: wxDataObject class -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "dataobj.h" -#endif - -#include "wx/dataobj.h" -#include "wx/app.h" -#include "wx/debug.h" - -#include "gdk/gdk.h" - - -//------------------------------------------------------------------------- -// global data -//------------------------------------------------------------------------- - -GdkAtom g_textAtom = 0; - -//------------------------------------------------------------------------- -// wxDataFormat -//------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxDataFormat, wxObject) - -wxDataFormat::wxDataFormat() -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - m_type = wxDF_INVALID; - m_hasAtom = FALSE; - m_atom = (GdkAtom) 0; -} - -wxDataFormat::wxDataFormat( wxDataFormatId type ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - SetType( type ); -} - -wxDataFormat::wxDataFormat( const wxChar *id ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - SetId( id ); -} - -wxDataFormat::wxDataFormat( const wxString &id ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - SetId( id ); -} - -wxDataFormat::wxDataFormat( const wxDataFormat &format ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - m_type = format.GetType(); - m_id = format.GetId(); - m_hasAtom = TRUE; - m_atom = ((wxDataFormat &)format).GetAtom(); // const_cast -} - -wxDataFormat::wxDataFormat( const GdkAtom atom ) -{ - if (!g_textAtom) g_textAtom = gdk_atom_intern( "STRING", FALSE ); - m_hasAtom = TRUE; - - m_atom = atom; - - if (m_atom == g_textAtom) - { - m_type = wxDF_TEXT; - } else - if (m_atom == GDK_TARGET_BITMAP) - { - m_type = wxDF_BITMAP; - } else - { - m_type = wxDF_PRIVATE; - m_id = gdk_atom_name( m_atom ); - - if (m_id == _T("file:ALL")) - { - m_type = wxDF_FILENAME; - } - } -} - -void wxDataFormat::SetType( wxDataFormatId type ) -{ - m_type = type; - - if (m_type == wxDF_TEXT) - { - m_id = _T("STRING"); - } - else - if (m_type == wxDF_BITMAP) - { - m_id = _T("BITMAP"); - } - else - if (m_type == wxDF_FILENAME) - { - m_id = _T("file:ALL"); - } - else - { - wxFAIL_MSG( _T("invalid dataformat") ); - } - - m_hasAtom = FALSE; -} - -wxDataFormatId wxDataFormat::GetType() const -{ - return m_type; -} - -wxString wxDataFormat::GetId() const -{ - return m_id; -} - -void wxDataFormat::SetId( const wxChar *id ) -{ - m_type = wxDF_PRIVATE; - m_id = id; - m_hasAtom = FALSE; -} - -GdkAtom wxDataFormat::GetAtom() -{ - if (!m_hasAtom) - { - m_hasAtom = TRUE; - - if (m_type == wxDF_TEXT) - { - m_atom = g_textAtom; - } - else - if (m_type == wxDF_BITMAP) - { - m_atom = GDK_TARGET_BITMAP; - } - else - if (m_type == wxDF_PRIVATE) - { - m_atom = gdk_atom_intern( MBSTRINGCAST m_id.mbc_str(), FALSE ); - } - else - if (m_type == wxDF_FILENAME) - { - m_atom = gdk_atom_intern( "file:ALL", FALSE ); - } - else - { - m_hasAtom = FALSE; - m_atom = (GdkAtom) 0; - } - } - - return m_atom; -} - -//------------------------------------------------------------------------- -// wxDataBroker -//------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxDataBroker,wxObject) - -wxDataBroker::wxDataBroker() -{ - m_dataObjects.DeleteContents(TRUE); - m_preferred = 0; -} - -void wxDataBroker::Add( wxDataObject *dataObject, bool preferred ) -{ - if (preferred) m_preferred = m_dataObjects.GetCount(); - m_dataObjects.Append( dataObject ); -} - -size_t wxDataBroker::GetFormatCount() const -{ - return m_dataObjects.GetCount(); -} - -wxDataFormatId wxDataBroker::GetPreferredFormat() const -{ - wxNode *node = m_dataObjects.Nth( m_preferred ); - - wxASSERT( node ); - - wxDataObject* data_obj = (wxDataObject*)node->Data(); - - return data_obj->GetFormat().GetType(); -} - -wxDataFormat &wxDataBroker::GetNthFormat( size_t nth ) const -{ - wxNode *node = m_dataObjects.Nth( nth ); - - wxASSERT( node ); - - wxDataObject* data_obj = (wxDataObject*)node->Data(); - - return data_obj->GetFormat(); -} - -bool wxDataBroker::IsSupportedFormat( wxDataFormat &format ) const -{ - wxNode *node = m_dataObjects.First(); - while (node) - { - wxDataObject *dobj = (wxDataObject*)node->Data(); - - if (dobj->GetFormat().GetAtom() == format.GetAtom()) - { - return TRUE; - } - - node = node->Next(); - } - - return FALSE; -} - -size_t wxDataBroker::GetSize( wxDataFormat& format ) const -{ - wxNode *node = m_dataObjects.First(); - while (node) - { - wxDataObject *dobj = (wxDataObject*)node->Data(); - - if (dobj->GetFormat().GetAtom() == format.GetAtom()) - { - return dobj->GetSize(); - } - - node = node->Next(); - } - - return 0; -} - -void wxDataBroker::WriteData( wxDataFormat& format, void *dest ) const -{ - wxNode *node = m_dataObjects.First(); - while (node) - { - wxDataObject *dobj = (wxDataObject*)node->Data(); - - if (dobj->GetFormat().GetAtom() == format.GetAtom()) - { - dobj->WriteData( dest ); - } - - node = node->Next(); - } -} - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS( wxDataObject, wxObject ) - -wxDataObject::wxDataObject() -{ -} - -wxDataObject::~wxDataObject() -{ -} - -wxDataFormat &wxDataObject::GetFormat() -{ - return m_format; -} - -wxDataFormatId wxDataObject::GetFormatType() const -{ - return m_format.GetType(); -} - -wxString wxDataObject::GetFormatId() const -{ - return m_format.GetId(); -} - -GdkAtom wxDataObject::GetFormatAtom() const -{ - GdkAtom ret = ((wxDataObject*) this)->m_format.GetAtom(); - return ret; -} - -// ---------------------------------------------------------------------------- -// wxTextDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxTextDataObject, wxDataObject ) - -wxTextDataObject::wxTextDataObject() -{ - m_format.SetType( wxDF_TEXT ); -} - -wxTextDataObject::wxTextDataObject( const wxString& data ) -{ - m_format.SetType( wxDF_TEXT ); - - m_data = data; -} - -void wxTextDataObject::SetText( const wxString& data ) -{ - m_data = data; -} - -wxString wxTextDataObject::GetText() const -{ - return m_data; -} - -void wxTextDataObject::WriteData( void *dest ) const -{ - WriteString( m_data, dest ); -} - -size_t wxTextDataObject::GetSize() const -{ - return m_data.Len() + 1; -} - -void wxTextDataObject::WriteString( const wxString &str, void *dest ) const -{ - memcpy( dest, str.mb_str(), str.Len()+1 ); -} - -// ---------------------------------------------------------------------------- -// wxFileDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxFileDataObject, wxDataObject ) - -wxFileDataObject::wxFileDataObject() -{ - m_format.SetType( wxDF_FILENAME ); -} - -void wxFileDataObject::AddFile( const wxString &file ) -{ - m_files += file; - m_files += (wxChar)0; -} - -wxString wxFileDataObject::GetFiles() const -{ - return m_files; -} - -void wxFileDataObject::WriteData( void *dest ) const -{ - memcpy( dest, m_files.mbc_str(), GetSize() ); -} - -size_t wxFileDataObject::GetSize() const -{ - return m_files.Len() + 1; -} - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxBitmapDataObject, wxDataObject ) - -wxBitmapDataObject::wxBitmapDataObject() -{ - m_format.SetType( wxDF_BITMAP ); -} - -wxBitmapDataObject::wxBitmapDataObject( const wxBitmap& bitmap ) -{ - m_format.SetType( wxDF_BITMAP ); - - m_bitmap = bitmap; -} - -void wxBitmapDataObject::SetBitmap( const wxBitmap &bitmap ) -{ - m_bitmap = bitmap; -} - -wxBitmap wxBitmapDataObject::GetBitmap() const -{ - return m_bitmap; -} - -void wxBitmapDataObject::WriteData( void *dest ) const -{ - WriteBitmap( m_bitmap, dest ); -} - -size_t wxBitmapDataObject::GetSize() const -{ - return 0; -} - -void wxBitmapDataObject::WriteBitmap( const wxBitmap &bitmap, void *dest ) const -{ - memcpy( dest, m_bitmap.GetPixmap(), GetSize() ); -} - -// ---------------------------------------------------------------------------- -// wxPrivateDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxPrivateDataObject, wxDataObject ) - -void wxPrivateDataObject::Free() -{ - if ( m_data ) - free(m_data); -} - -wxPrivateDataObject::wxPrivateDataObject() -{ - wxString id = _T("application/"); - id += wxTheApp->GetAppName(); - - m_format.SetId( id ); - - m_size = 0; - m_data = (void *)NULL; -} - -void wxPrivateDataObject::SetData( const void *data, size_t size ) -{ - Free(); - - m_size = size; - m_data = malloc(size); - - memcpy( m_data, data, size ); -} - -void wxPrivateDataObject::WriteData( void *dest ) const -{ - WriteData( m_data, dest ); -} - -size_t wxPrivateDataObject::GetSize() const -{ - return m_size; -} - -void wxPrivateDataObject::WriteData( const void *data, void *dest ) const -{ - memcpy( dest, data, GetSize() ); -} - diff --git a/src/gtk1/dc.cpp b/src/gtk1/dc.cpp deleted file mode 100644 index 57c1f336a7..0000000000 --- a/src/gtk1/dc.cpp +++ /dev/null @@ -1,218 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling, Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ - #pragma implementation "dc.h" -#endif - -#include "wx/dc.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxDCBase) - -wxDC::wxDC() -{ - m_ok = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_needComputeScaleX = FALSE; /* not used yet */ - m_needComputeScaleY = FALSE; /* not used yet */ - - m_logicalFunction = wxCOPY; - - m_pen = *wxBLACK_PEN; - m_font = *wxNORMAL_FONT; - m_brush = *wxTRANSPARENT_BRUSH; -} - -void wxDC::DoSetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -} - -void wxDC::DestroyClippingRegion() -{ - m_clipping = FALSE; -} - -// --------------------------------------------------------------------------- -// get DC capabilities -// --------------------------------------------------------------------------- - -void wxDC::DoGetSize( int* width, int* height ) const -{ - if (width) *width = m_maxX-m_minX; - if (height) *height = m_maxY-m_minY; -} - -void wxDC::DoGetSizeMM( int* width, int* height ) const -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - if (width) *width = int( double(w) / (m_scaleX*m_mm_to_pix_x) ); - if (height) *height = int( double(h) / (m_scaleY*m_mm_to_pix_y) ); -} - -// Resolution in pixels per logical inch -wxSize wxDC::GetPPI() const -{ - // TODO (should probably be pure virtual) - return wxSize(0, 0); -} - -// --------------------------------------------------------------------------- -// set various DC parameters -// --------------------------------------------------------------------------- - -void wxDC::ComputeScaleAndOrigin() -{ - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; -} - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - } - m_mappingMode = mode; - -/* we don't do this mega optimisation - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - } -*/ -} - -void wxDC::SetUserScale( double x, double y ) -{ - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalScale( double x, double y ) -{ - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -} - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - // only wxPostScripDC has m_signX = -1, we override SetDeviceOrigin there - m_deviceOriginX = x; - m_deviceOriginY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - // only wxPostScripDC has m_signX = -1, we override SetAxisOrientation there - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -} - -// --------------------------------------------------------------------------- -// coordinates transformations -// --------------------------------------------------------------------------- - -long wxDCBase::DeviceToLogicalX(long x) const -{ - return ((wxDC *)this)->XDEV2LOG(x); -} - -long wxDCBase::DeviceToLogicalY(long y) const -{ - return ((wxDC *)this)->YDEV2LOG(y); -} - -long wxDCBase::DeviceToLogicalXRel(long x) const -{ - return ((wxDC *)this)->XDEV2LOGREL(x); -} - -long wxDCBase::DeviceToLogicalYRel(long y) const -{ - return ((wxDC *)this)->YDEV2LOGREL(y); -} - -long wxDCBase::LogicalToDeviceX(long x) const -{ - return ((wxDC *)this)->XLOG2DEV(x); -} - -long wxDCBase::LogicalToDeviceY(long y) const -{ - return ((wxDC *)this)->YLOG2DEV(y); -} - -long wxDCBase::LogicalToDeviceXRel(long x) const -{ - return ((wxDC *)this)->XLOG2DEVREL(x); -} - -long wxDCBase::LogicalToDeviceYRel(long y) const -{ - return ((wxDC *)this)->YLOG2DEVREL(y); -} - diff --git a/src/gtk1/dcclient.cpp b/src/gtk1/dcclient.cpp deleted file mode 100644 index 93f34e9fe7..0000000000 --- a/src/gtk1/dcclient.cpp +++ /dev/null @@ -1,1437 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling, Markus Holzem, Chris Breeze -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/image.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// local data -//----------------------------------------------------------------------------- - -#include "bdiag.xbm" -#include "fdiag.xbm" -#include "cdiag.xbm" -#include "horiz.xbm" -#include "verti.xbm" -#include "cross.xbm" -#define num_hatches 6 - -static GdkPixmap *hatches[num_hatches]; -static GdkPixmap **hatch_bitmap = (GdkPixmap **) NULL; - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -//----------------------------------------------------------------------------- -// temporary implementation of the missing GDK function -//----------------------------------------------------------------------------- - -#include "gdk/gdkprivate.h" - -void gdk_draw_bitmap (GdkDrawable *drawable, - GdkGC *gc, - GdkDrawable *src, - gint xsrc, - gint ysrc, - gint xdest, - gint ydest, - gint width, - gint height) -{ - GdkWindowPrivate *drawable_private; - GdkWindowPrivate *src_private; - GdkGCPrivate *gc_private; - - g_return_if_fail (drawable != NULL); - g_return_if_fail (src != NULL); - g_return_if_fail (gc != NULL); - - drawable_private = (GdkWindowPrivate*) drawable; - src_private = (GdkWindowPrivate*) src; - if (drawable_private->destroyed || src_private->destroyed) - return; - - gc_private = (GdkGCPrivate*) gc; - - if (width == -1) width = src_private->width; - if (height == -1) height = src_private->height; - - XCopyPlane( drawable_private->xdisplay, - src_private->xwindow, - drawable_private->xwindow, - gc_private->xgc, - xsrc, ysrc, - width, height, - xdest, ydest, - 1 ); -} - -//----------------------------------------------------------------------------- -// wxWindowDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) - -wxWindowDC::wxWindowDC() -{ - m_penGC = (GdkGC *) NULL; - m_brushGC = (GdkGC *) NULL; - m_textGC = (GdkGC *) NULL; - m_bgGC = (GdkGC *) NULL; - m_cmap = (GdkColormap *) NULL; - m_isMemDC = FALSE; - m_owner = (wxWindow *)NULL; -} - -wxWindowDC::wxWindowDC( wxWindow *window ) -{ - m_penGC = (GdkGC *) NULL; - m_brushGC = (GdkGC *) NULL; - m_textGC = (GdkGC *) NULL; - m_bgGC = (GdkGC *) NULL; - m_cmap = (GdkColormap *) NULL; - m_owner = (wxWindow *)NULL; - m_isMemDC = FALSE; - - wxASSERT_MSG( window, _T("DC needs a window") ); - - GtkWidget *widget = window->m_wxwindow; - - wxASSERT_MSG( widget, _T("DC needs a widget") ); - - m_window = widget->window; - - /* not realized ? */ - if (!m_window) - { - /* don't report problems */ - m_ok = TRUE; - - return; - } - - if (window->m_wxwindow) - m_cmap = gtk_widget_get_colormap( window->m_wxwindow ); - else - m_cmap = gtk_widget_get_colormap( window->m_widget ); - - SetUpDC(); - - /* this must be done after SetUpDC, bacause SetUpDC calls the - repective SetBrush, SetPen, SetBackground etc functions - to set up the DC. SetBackground call m_owner->SetBackground - and this might not be desired as the standard dc background - is white whereas a window might assume gray to be the - standard (as e.g. wxStatusBar) */ - - m_owner = window; -} - -wxWindowDC::~wxWindowDC() -{ - Destroy(); -} - -void wxWindowDC::DoFloodFill( long WXUNUSED(x), long WXUNUSED(y), - const wxColour &WXUNUSED(col), int WXUNUSED(style) ) -{ - wxFAIL_MSG( _T("wxWindowDC::DoFloodFill not implemented") ); -} - -bool wxWindowDC::DoGetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - wxFAIL_MSG( _T("wxWindowDC::DoGetPixel not implemented") ); - return FALSE; -} - -void wxWindowDC::DoDrawLine( long x1, long y1, long x2, long y2 ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - if (m_window) - gdk_draw_line( m_window, m_penGC, XLOG2DEV(x1), YLOG2DEV(y1), XLOG2DEV(x2), YLOG2DEV(y2) ); - - CalcBoundingBox(x1, y1); - CalcBoundingBox(x2, y2); - } -} - -void wxWindowDC::DoCrossHair( long x, long y ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - int w = 0; - int h = 0; - GetSize( &w, &h ); - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - if (m_window) - { - gdk_draw_line( m_window, m_penGC, 0, yy, XLOG2DEVREL(w), yy ); - gdk_draw_line( m_window, m_penGC, xx, 0, xx, YLOG2DEVREL(h) ); - } - } -} - -void wxWindowDC::DoDrawArc( long x1, long y1, long x2, long y2, - long xc, long yc ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV(xc); - long yyc = YLOG2DEV(yc); - double dx = xx1 - xxc; - double dy = yy1 - yyc; - double radius = sqrt(dx*dx+dy*dy); - long r = (long)radius; - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else - if (radius == 0.0) - { - radius1 = radius2 = 0.0; - } - else - { - radius1 = (xx1 - xxc == 0) ? - (yy1 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy1-yyc), double(xx1-xxc)) * RAD2DEG; - radius2 = (xx2 - xxc == 0) ? - (yy2 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy2-yyc), double(xx2-xxc)) * RAD2DEG; - } - long alpha1 = long(radius1 * 64.0); - long alpha2 = long((radius2 - radius1) * 64.0); - while (alpha2 <= 0) alpha2 += 360*64; - while (alpha1 > 360*64) alpha1 -= 360*64; - - if (m_window) - { - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_brushGC, TRUE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_penGC, FALSE, xxc-r, yyc-r, 2*r,2*r, alpha1, alpha2 ); - } - - CalcBoundingBox (x1, y1); - CalcBoundingBox (x2, y2); -} - -void wxWindowDC::DoDrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_window) - { - long start = long(sa * 64.0); - long end = long(ea * 64.0); - - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, start, end ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, start, end ); - } - - CalcBoundingBox (x, y); - CalcBoundingBox (x + width, y + height); -} - -void wxWindowDC::DoDrawPoint( long x, long y ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window) - gdk_draw_point( m_window, m_penGC, XLOG2DEV(x), YLOG2DEV(y) ); - - CalcBoundingBox (x, y); -} - -void wxWindowDC::DoDrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - if (n <= 0) return; - - CalcBoundingBox( points[0].x + xoffset, points[0].y + yoffset ); - - for (int i = 0; i < n-1; i++) - { - long x1 = XLOG2DEV(points[i].x + xoffset); - long x2 = XLOG2DEV(points[i+1].x + xoffset); - long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste - long y2 = YLOG2DEV(points[i+1].y + yoffset); - if (m_window) - gdk_draw_line( m_window, m_penGC, x1, y1, x2, y2 ); - - CalcBoundingBox( points[i+1].x + xoffset, points[i+1].y + yoffset ); - } -} - -void wxWindowDC::DoDrawPolygon( int n, wxPoint points[], long xoffset, long yoffset, int WXUNUSED(fillStyle) ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (n <= 0) return; - - GdkPoint *gdkpoints = new GdkPoint[n+1]; - int i; - for (i = 0 ; i < n ; i++) - { - gdkpoints[i].x = XLOG2DEV(points[i].x + xoffset); - gdkpoints[i].y = YLOG2DEV(points[i].y + yoffset); - - CalcBoundingBox( points[i].x + xoffset, points[i].y + yoffset ); - } - - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_polygon (m_window, m_brushGC, TRUE, gdkpoints, n); - - // To do: Fillstyle - - if ((m_pen.GetStyle() != wxTRANSPARENT) && m_window) - { - for (i = 0 ; i < n ; i++) - { - gdk_draw_line( m_window, m_penGC, - gdkpoints[i%n].x, - gdkpoints[i%n].y, - gdkpoints[(i+1)%n].x, - gdkpoints[(i+1)%n].y); - } - } - - delete[] gdkpoints; -} - -void wxWindowDC::DoDrawRectangle( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_window) - { - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy, ww, hh ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_rectangle( m_window, m_penGC, FALSE, xx, yy, ww-1, hh-1 ); - } - - CalcBoundingBox( x, y ); - CalcBoundingBox( x + width, y + height ); -} - -void wxWindowDC::DoDrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - long rr = XLOG2DEVREL((long)radius); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - // CMB: if radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rr == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - ww--; - hh--; - } - - if (m_window) - { - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - long dd = 2 * rr; - if (dd > ww) dd = ww; - if (dd > hh) dd = hh; - rr = dd / 2; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx+rr, yy, ww-dd+1, hh ); - gdk_draw_rectangle( m_window, m_brushGC, TRUE, xx, yy+rr, ww, hh-dd+1 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, dd, dd, 90*64, 90*64 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy, dd, dd, 0, 90*64 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 ); - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 ); - } - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - gdk_draw_line( m_window, m_penGC, xx+rr, yy, xx+ww-rr, yy ); - gdk_draw_line( m_window, m_penGC, xx+rr, yy+hh, xx+ww-rr, yy+hh ); - gdk_draw_line( m_window, m_penGC, xx, yy+rr, xx, yy+hh-rr ); - gdk_draw_line( m_window, m_penGC, xx+ww, yy+rr, xx+ww, yy+hh-rr ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, dd, dd, 90*64, 90*64 ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy, dd, dd, 0, 90*64 ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx+ww-dd, yy+hh-dd, dd, dd, 270*64, 90*64 ); - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy+hh-dd, dd, dd, 180*64, 90*64 ); - } - } - - // this ignores the radius - CalcBoundingBox( x, y ); - CalcBoundingBox( x + width, y + height ); -} - -void wxWindowDC::DoDrawEllipse( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_window) - { - if (m_brush.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_brushGC, TRUE, xx, yy, ww, hh, 0, 360*64 ); - - if (m_pen.GetStyle() != wxTRANSPARENT) - gdk_draw_arc( m_window, m_penGC, FALSE, xx, yy, ww, hh, 0, 360*64 ); - } - - CalcBoundingBox( x - width, y - height ); - CalcBoundingBox( x + width, y + height ); -} - -void wxWindowDC::DoDrawIcon( const wxIcon &icon, long x, long y ) -{ - // VZ: egcs 1.0.3 refuses to compile this without cast, no idea why - DoDrawBitmap( (const wxBitmap&)icon, x, y, (bool)TRUE ); -} - -void wxWindowDC::DoDrawBitmap( const wxBitmap &bitmap, - long x, long y, - bool useMask ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxCHECK_RET( bitmap.Ok(), _T("invalid bitmap") ); - - /* scale/translate size and position */ - - int xx = XLOG2DEV(x); - int yy = YLOG2DEV(y); - - int w = bitmap.GetWidth(); - int h = bitmap.GetHeight(); - - CalcBoundingBox( x, y ); - CalcBoundingBox( x + w, y + h ); - - if (!m_window) return; - - int ww = XLOG2DEVREL(w); - int hh = YLOG2DEVREL(h); - - /* scale bitmap if required */ - - wxBitmap use_bitmap; - - if ((w != ww) || (h != hh)) - { - wxImage image( bitmap ); - image = image.Scale( ww, hh ); - - use_bitmap = image.ConvertToBitmap(); - } - else - { - use_bitmap = bitmap; - } - - /* apply mask if any */ - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (use_bitmap.GetMask()) mask = use_bitmap.GetMask()->GetBitmap(); - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, mask ); - gdk_gc_set_clip_origin( m_penGC, xx, yy ); - } - - /* draw XPixmap or XBitmap, depending on what the wxBitmap contains */ - - GdkPixmap *pm = use_bitmap.GetPixmap(); - if (pm) - { - gdk_draw_pixmap( m_window, m_penGC, pm, 0, 0, xx, yy, -1, -1 ); - } - else - { - GdkBitmap *bm = use_bitmap.GetBitmap(); - if (bm) - { - gdk_draw_bitmap( m_window, m_penGC, bm, 0, 0, xx, yy, -1, -1 ); - } - } - - /* remove mask again if any */ - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL ); - gdk_gc_set_clip_origin( m_penGC, 0, 0 ); - } -} - -bool wxWindowDC::DoBlit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, - int logical_func, bool useMask ) -{ - /* this is the nth try to get this utterly useless function to - work. it now completely ignores the scaling or translation - of the source dc, but scales correctly on the target dc and - knows about possible mask information in a memory dc. */ - - wxCHECK_MSG( Ok(), FALSE, _T("invalid window dc") ); - - wxCHECK_MSG( source, FALSE, _T("invalid source dc") ); - - if (!m_window) return FALSE; - - wxClientDC *srcDC = (wxClientDC*)source; - wxMemoryDC *memDC = (wxMemoryDC*)source; - - bool use_bitmap_method = FALSE; - - if (srcDC->m_isMemDC) - { - if (!memDC->m_selected.Ok()) return FALSE; - - /* we use the "XCopyArea" way to copy a memory dc into - y different window if the memory dc BOTH - a) doesn't have any mask or its mask isn't used - b) it is clipped - c) is not 1-bit */ - - if (useMask && (memDC->m_selected.GetMask())) - { - /* we HAVE TO use the direct way for memory dcs - that have mask since the XCopyArea doesn't know - about masks */ - use_bitmap_method = TRUE; - } - else if (memDC->m_selected.GetDepth() == 1) - { - /* we HAVE TO use the direct way for memory dcs - that are bitmaps because XCopyArea doesn't cope - with different bit depths */ - use_bitmap_method = TRUE; - } - else if ((xsrc == 0) && (ysrc == 0) && - (width == memDC->m_selected.GetWidth()) && - (height == memDC->m_selected.GetHeight())) - { - /* we SHOULD use the direct way if all of the bitmap - in the memory dc is copied in which case XCopyArea - wouldn't be able able to boost performace by reducing - the area to be scaled */ - use_bitmap_method = TRUE; - } - else - { - use_bitmap_method = FALSE; - } - } - - CalcBoundingBox( xdest, ydest ); - CalcBoundingBox( xdest + width, ydest + height ); - - int old_logical_func = m_logicalFunction; - SetLogicalFunction( logical_func ); - - if (use_bitmap_method) - { - /* scale/translate bitmap size */ - - long bm_width = memDC->m_selected.GetWidth(); - long bm_height = memDC->m_selected.GetHeight(); - - long bm_ww = XLOG2DEVREL( bm_width ); - long bm_hh = YLOG2DEVREL( bm_height ); - - /* scale bitmap if required */ - - wxBitmap use_bitmap; - - if ((bm_width != bm_ww) || (bm_height != bm_hh)) - { - wxImage image( memDC->m_selected ); - image = image.Scale( bm_ww, bm_hh ); - - use_bitmap = image.ConvertToBitmap(); - } - else - { - use_bitmap = memDC->m_selected; - } - - /* scale/translate size and position */ - - long xx = XLOG2DEV(xdest); - long yy = YLOG2DEV(ydest); - - long ww = XLOG2DEVREL(width); - long hh = YLOG2DEVREL(height); - - /* apply mask if any */ - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (use_bitmap.GetMask()) mask = use_bitmap.GetMask()->GetBitmap(); - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, mask ); - gdk_gc_set_clip_origin( m_penGC, xx, yy ); - } - - /* draw XPixmap or XBitmap, depending on what the wxBitmap contains */ - - GdkPixmap *pm = use_bitmap.GetPixmap(); - if (pm) - { - gdk_draw_pixmap( m_window, m_penGC, pm, xsrc, ysrc, xx, yy, ww, hh ); - } - else - { - GdkBitmap *bm = use_bitmap.GetBitmap(); - if (bm) - { - /* we use the textGC here because blitting a bitmap is done - using the current text colour */ - gdk_draw_bitmap( m_window, m_textGC, bm, xsrc, ysrc, xx, yy, ww, hh ); - } - } - - /* remove mask again if any */ - - if (useMask && mask) - { - gdk_gc_set_clip_mask( m_penGC, (GdkBitmap *) NULL ); - gdk_gc_set_clip_origin( m_penGC, 0, 0 ); - } - } - else /* use_bitmap_method */ - { - /* scale/translate size and position */ - - long xx = XLOG2DEV(xdest); - long yy = YLOG2DEV(ydest); - - long ww = XLOG2DEVREL(width); - long hh = YLOG2DEVREL(height); - - if ((width != ww) || (height != hh)) - { - /* draw source window into a bitmap as we cannot scale - a window in contrast to a bitmap. this would actually - work with memory dcs as well, but we'd lose the mask - information and waste one step in this process since - a memory already has a bitmap. all this is slightly - inefficient as we could take an XImage directly from - an X window, but we'd then also have to care that - the window is not outside the screen (in which case - we'd get a BadMatch or what not). - Is a double XGetImage and combined XGetPixel and - XPutPixel really faster? I'm not sure. look at wxXt - for a different implementation of the same problem. */ - - wxBitmap bitmap( width, height ); - gdk_window_copy_area( bitmap.GetPixmap(), m_penGC, 0, 0, - srcDC->GetWindow(), - xsrc, ysrc, width, height ); - - /* scale image */ - - wxImage image( bitmap ); - image = image.Scale( ww, hh ); - - /* convert to bitmap */ - - bitmap = image.ConvertToBitmap(); - - /* draw scaled bitmap */ - - gdk_draw_pixmap( m_window, m_penGC, bitmap.GetPixmap(), 0, 0, xx, yy, -1, -1 ); - - } - else - { - /* no scaling and not a memory dc with a mask either */ - - gdk_window_copy_area( m_window, m_penGC, xx, yy, - srcDC->GetWindow(), - xsrc, ysrc, width, height ); - } - } - - SetLogicalFunction( old_logical_func ); - return TRUE; -} - -void wxWindowDC::DoDrawText( const wxString &text, long x, long y ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (!m_window) return; - - GdkFont *font = m_font.GetInternalFont( m_scaleY ); - - x = XLOG2DEV(x); - y = YLOG2DEV(y); - - /* CMB 21/5/98: draw text background if mode is wxSOLID */ - if (m_backgroundMode == wxSOLID) - { - long width = gdk_string_width( font, text.mbc_str() ); - long height = font->ascent + font->descent; - gdk_gc_set_foreground( m_textGC, m_textBackgroundColour.GetColor() ); - gdk_draw_rectangle( m_window, m_textGC, TRUE, x, y, width, height ); - gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() ); - } - gdk_draw_string( m_window, font, m_textGC, x, y + font->ascent, text.mbc_str() ); - - /* CMB 17/7/98: simple underline: ignores scaling and underlying - X font's XA_UNDERLINE_POSITION and XA_UNDERLINE_THICKNESS - properties (see wxXt implementation) */ - if (m_font.GetUnderlined()) - { - long width = gdk_string_width( font, text.mbc_str() ); - long ul_y = y + font->ascent; - if (font->descent > 0) ul_y++; - gdk_draw_line( m_window, m_textGC, x, ul_y, x + width, ul_y); - } - - long w, h; - GetTextExtent (text, &w, &h); - CalcBoundingBox (x + w, y + h); - CalcBoundingBox (x, y); -} - -void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height, - long *descent, long *externalLeading, - wxFont *theFont ) const -{ - wxFont fontToUse = m_font; - if (theFont) fontToUse = *theFont; - - GdkFont *font = fontToUse.GetInternalFont( m_scaleY ); - if (width) (*width) = long(gdk_string_width( font, string.mbc_str() ) / m_scaleX); - if (height) (*height) = long((font->ascent + font->descent) / m_scaleY); - if (descent) (*descent) = long(font->descent / m_scaleY); - if (externalLeading) (*externalLeading) = 0; // ?? -} - -long wxWindowDC::GetCharWidth() const -{ - GdkFont *font = m_font.GetInternalFont( m_scaleY ); - return long(gdk_string_width( font, "H" ) / m_scaleX); -} - -long wxWindowDC::GetCharHeight() const -{ - GdkFont *font = m_font.GetInternalFont( m_scaleY ); - return long((font->ascent + font->descent) / m_scaleY); -} - -void wxWindowDC::Clear() -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (!m_window) return; - - /* - we either are a memory dc or have a window as the - owner. anything else shouldn't happen. - - we don't use gdk_window_clear() as we don't set - the window's background colour anymore. it is too - much pain to keep the DC's and the window's back- - ground colour in synch. */ - - if (m_owner) - { - int width,height; - m_owner->GetSize( &width, &height ); - gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height ); - return; - } - - if (m_isMemDC) - { - int width,height; - GetSize( &width, &height ); - gdk_draw_rectangle( m_window, m_bgGC, TRUE, 0, 0, width, height ); - return; - } -} - -void wxWindowDC::SetFont( const wxFont &font ) -{ - m_font = font; -} - -void wxWindowDC::SetPen( const wxPen &pen ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_pen == pen) return; - - m_pen = pen; - - if (!m_pen.Ok()) return; - - if (!m_window) return; - - gint width = m_pen.GetWidth(); - // CMB: if width is non-zero scale it with the dc - if (width <= 0) - { - width = 1; - } - else - { - // X doesn't allow different width in x and y and so we take - // the average - double w = 0.5 + (abs(XLOG2DEVREL(width)) + abs(YLOG2DEVREL(width))) / 2.0; - width = (int)w; - } - - GdkLineStyle lineStyle = GDK_LINE_SOLID; - switch (m_pen.GetStyle()) - { - case wxSOLID: { lineStyle = GDK_LINE_SOLID; break; } - case wxDOT: { lineStyle = GDK_LINE_ON_OFF_DASH; break; } - case wxLONG_DASH: { lineStyle = GDK_LINE_ON_OFF_DASH; break; } - case wxSHORT_DASH: { lineStyle = GDK_LINE_ON_OFF_DASH; break; } - case wxDOT_DASH: { lineStyle = GDK_LINE_DOUBLE_DASH; break; } - } - - GdkCapStyle capStyle = GDK_CAP_ROUND; - switch (m_pen.GetCap()) - { - case wxCAP_ROUND: { capStyle = (width <= 1) ? GDK_CAP_NOT_LAST : GDK_CAP_ROUND; break; } - case wxCAP_PROJECTING: { capStyle = GDK_CAP_PROJECTING; break; } - case wxCAP_BUTT: { capStyle = GDK_CAP_BUTT; break; } - } - - GdkJoinStyle joinStyle = GDK_JOIN_ROUND; - switch (m_pen.GetJoin()) - { - case wxJOIN_BEVEL: { joinStyle = GDK_JOIN_BEVEL; break; } - case wxJOIN_ROUND: { joinStyle = GDK_JOIN_ROUND; break; } - case wxJOIN_MITER: { joinStyle = GDK_JOIN_MITER; break; } - } - - gdk_gc_set_line_attributes( m_penGC, width, lineStyle, capStyle, joinStyle ); - - m_pen.GetColour().CalcPixel( m_cmap ); - gdk_gc_set_foreground( m_penGC, m_pen.GetColour().GetColor() ); -} - -void wxWindowDC::SetBrush( const wxBrush &brush ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_brush == brush) return; - - m_brush = brush; - - if (!m_brush.Ok()) return; - - if (!m_window) return; - - m_brush.GetColour().CalcPixel( m_cmap ); - gdk_gc_set_foreground( m_brushGC, m_brush.GetColour().GetColor() ); - - GdkFill fillStyle = GDK_SOLID; - switch (m_brush.GetStyle()) - { - case wxSOLID: - case wxTRANSPARENT: - break; - default: - fillStyle = GDK_STIPPLED; - } - - gdk_gc_set_fill( m_brushGC, fillStyle ); - - if ((m_brush.GetStyle() == wxSTIPPLE) && (m_brush.GetStipple()->Ok())) - { - if (m_brush.GetStipple()->GetPixmap()) - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetPixmap() ); - else - gdk_gc_set_stipple( m_brushGC, m_brush.GetStipple()->GetBitmap() ); - } - - if (IS_HATCH(m_brush.GetStyle())) - { - int num = m_brush.GetStyle() - wxBDIAGONAL_HATCH; - gdk_gc_set_stipple( m_brushGC, hatches[num] ); - } -} - -void wxWindowDC::SetBackground( const wxBrush &brush ) -{ - /* CMB 21/7/98: Added SetBackground. Sets background brush - * for Clear() and bg colour for shapes filled with cross-hatch brush */ - - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_backgroundBrush == brush) return; - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) return; - - if (!m_window) return; - - m_backgroundBrush.GetColour().CalcPixel( m_cmap ); - gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() ); - gdk_gc_set_background( m_penGC, m_backgroundBrush.GetColour().GetColor() ); - gdk_gc_set_background( m_bgGC, m_backgroundBrush.GetColour().GetColor() ); - gdk_gc_set_foreground( m_bgGC, m_backgroundBrush.GetColour().GetColor() ); - - GdkFill fillStyle = GDK_SOLID; - switch (m_backgroundBrush.GetStyle()) - { - case wxSOLID: - case wxTRANSPARENT: - break; - default: - fillStyle = GDK_STIPPLED; - } - - gdk_gc_set_fill( m_bgGC, fillStyle ); - - if (m_backgroundBrush.GetStyle() == wxSTIPPLE) - { - gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() ); - } - - if (IS_HATCH(m_backgroundBrush.GetStyle())) - { - int num = m_backgroundBrush.GetStyle() - wxBDIAGONAL_HATCH; - gdk_gc_set_stipple( m_bgGC, hatches[num] ); - } -} - -void wxWindowDC::SetLogicalFunction( int function ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_logicalFunction == function) return; - - GdkFunction mode = GDK_COPY; - switch (function) - { - case wxXOR: mode = GDK_XOR; break; - case wxINVERT: mode = GDK_INVERT; break; -#if (GTK_MINOR_VERSION > 0) - case wxOR_REVERSE: mode = GDK_OR_REVERSE; break; - case wxAND_REVERSE: mode = GDK_AND_REVERSE; break; - case wxCLEAR: mode = GDK_CLEAR; break; - case wxSET: mode = GDK_SET; break; - case wxOR_INVERT: mode = GDK_OR_INVERT; break; - case wxSRC_AND: - case wxAND: mode = GDK_AND; break; - case wxSRC_OR: - case wxOR: mode = GDK_OR; break; - case wxEQUIV: mode = GDK_EQUIV; break; - case wxNAND: mode = GDK_NAND; break; - case wxAND_INVERT: mode = GDK_AND_INVERT; break; - case wxCOPY: mode = GDK_COPY; break; - case wxNO_OP: mode = GDK_NOOP; break; - case wxSRC_INVERT: mode = GDK_COPY_INVERT; break; -#endif - default: - { - wxFAIL_MSG( _T("unsupported logical function") ); - break; - } - } - - m_logicalFunction = function; - - if (!m_window) return; - - gdk_gc_set_function( m_penGC, mode ); - gdk_gc_set_function( m_brushGC, mode ); - gdk_gc_set_function( m_textGC, mode ); -} - -void wxWindowDC::SetTextForeground( const wxColour &col ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_textForegroundColour == col) return; - - m_textForegroundColour = col; - if (!m_textForegroundColour.Ok()) return; - - if (!m_window) return; - - m_textForegroundColour.CalcPixel( m_cmap ); - gdk_gc_set_foreground( m_textGC, m_textForegroundColour.GetColor() ); -} - -void wxWindowDC::SetTextBackground( const wxColour &col ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (m_textBackgroundColour == col) return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) return; - - if (!m_window) return; - - m_textBackgroundColour.CalcPixel( m_cmap ); - gdk_gc_set_background( m_textGC, m_textBackgroundColour.GetColor() ); -} - -void wxWindowDC::SetBackgroundMode( int mode ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - m_backgroundMode = mode; - - if (!m_window) return; - - // CMB 21/7/98: fill style of cross-hatch brushes is affected by - // transparent/solid background mode - - if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT) - { - gdk_gc_set_fill( m_brushGC, - (m_backgroundMode == wxTRANSPARENT) ? GDK_STIPPLED : GDK_OPAQUE_STIPPLED); - } -} - -void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) ) -{ - wxFAIL_MSG( _T("wxWindowDC::SetPalette not implemented") ); -} - -void wxWindowDC::DoSetClippingRegion( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxDC::DoSetClippingRegion( x, y, width, height ); - - if (!m_window) return; - - GdkRectangle rect; - rect.x = XLOG2DEV(x); - rect.y = YLOG2DEV(y); - rect.width = XLOG2DEVREL(width); - rect.height = YLOG2DEVREL(height); - gdk_gc_set_clip_rectangle( m_penGC, &rect ); - gdk_gc_set_clip_rectangle( m_brushGC, &rect ); - gdk_gc_set_clip_rectangle( m_textGC, &rect ); - gdk_gc_set_clip_rectangle( m_bgGC, &rect ); -} - -void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion ®ion ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - if (region.Empty()) - { - DestroyClippingRegion(); - return; - } - - if (!m_window) return; - - gdk_gc_set_clip_region( m_penGC, region.GetRegion() ); - gdk_gc_set_clip_region( m_brushGC, region.GetRegion() ); - gdk_gc_set_clip_region( m_textGC, region.GetRegion() ); - gdk_gc_set_clip_region( m_bgGC, region.GetRegion() ); -} - -void wxWindowDC::DestroyClippingRegion() -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxDC::DestroyClippingRegion(); - - if (!m_window) return; - - gdk_gc_set_clip_rectangle( m_penGC, (GdkRectangle *) NULL ); - gdk_gc_set_clip_rectangle( m_brushGC, (GdkRectangle *) NULL ); - gdk_gc_set_clip_rectangle( m_textGC, (GdkRectangle *) NULL ); - gdk_gc_set_clip_rectangle( m_bgGC, (GdkRectangle *) NULL ); -} - -void wxWindowDC::SetUpDC() -{ - Destroy(); - m_ok = TRUE; - m_logicalFunction = wxCOPY; - m_penGC = gdk_gc_new( m_window ); - m_brushGC = gdk_gc_new( m_window ); - m_textGC = gdk_gc_new( m_window ); - m_bgGC = gdk_gc_new( m_window ); - - wxColour tmp_col( m_textForegroundColour ); - m_textForegroundColour = wxNullColour; - SetTextForeground( tmp_col ); - tmp_col = m_textBackgroundColour; - m_textBackgroundColour = wxNullColour; - SetTextBackground( tmp_col ); - - wxPen tmp_pen( m_pen ); - m_pen = wxNullPen; - SetPen( tmp_pen ); - - wxFont tmp_font( m_font ); - m_font = wxNullFont; - SetFont( tmp_font ); - - wxBrush tmp_brush( m_brush ); - m_brush = wxNullBrush; - SetBrush( tmp_brush ); - - tmp_brush = m_backgroundBrush; - m_backgroundBrush = wxNullBrush; - SetBackground( tmp_brush ); - - if (!hatch_bitmap) - { - hatch_bitmap = hatches; - hatch_bitmap[0] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, bdiag_bits, bdiag_width, bdiag_height ); - hatch_bitmap[1] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cdiag_bits, cdiag_width, cdiag_height ); - hatch_bitmap[2] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, fdiag_bits, fdiag_width, fdiag_height ); - hatch_bitmap[3] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, cross_bits, cross_width, cross_height ); - hatch_bitmap[4] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, horiz_bits, horiz_width, horiz_height ); - hatch_bitmap[5] = gdk_bitmap_create_from_data( (GdkWindow *) NULL, verti_bits, verti_width, verti_height ); - } -} - -void wxWindowDC::Destroy() -{ - if (m_penGC) gdk_gc_unref( m_penGC ); - m_penGC = (GdkGC*) NULL; - if (m_brushGC) gdk_gc_unref( m_brushGC ); - m_brushGC = (GdkGC*) NULL; - if (m_textGC) gdk_gc_unref( m_textGC ); - m_textGC = (GdkGC*) NULL; - if (m_bgGC) gdk_gc_unref( m_bgGC ); - m_bgGC = (GdkGC*) NULL; -} - -void wxWindowDC::ComputeScaleAndOrigin() -{ - /* CMB: copy scale to see if it changes */ - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - wxDC::ComputeScaleAndOrigin(); - - /* CMB: if scale has changed call SetPen to recalulate the line width */ - if ((m_scaleX != origScaleX || m_scaleY != origScaleY) && - (m_pen.Ok())) - { - /* this is a bit artificial, but we need to force wxDC to think - the pen has changed */ - wxPen pen = m_pen; - m_pen = wxNullPen; - SetPen( pen ); - } -} - -// Resolution in pixels per logical inch -wxSize wxWindowDC::GetPPI() const -{ - return wxSize(100, 100); -} - -int wxWindowDC::GetDepth() const -{ - wxFAIL_MSG(_T("not implemented")); - - return -1; -} - -#if wxUSE_SPLINES -// ----------------------------------- spline code ---------------------------------------- - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); - -wxList wx_spline_point_list; - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point( x1, y1 ); - wx_spline_add_point( xmid, ymid ); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - -/* utilities used by spline drawing routines */ - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack() -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint ; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0 ); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -void wxWindowDC::DoDrawSpline( wxList *points ) -{ - wxCHECK_RET( Ok(), _T("invalid window dc") ); - - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point( cx1, cy1 ); - wx_spline_add_point( x2, y2 ); - - wx_spline_draw_point_array( this ); -} - -#endif // wxUSE_SPLINE - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC,wxWindowDC) - -wxPaintDC::wxPaintDC() - : wxWindowDC() -{ -} - -wxPaintDC::wxPaintDC( wxWindow *win ) - : wxWindowDC( win ) -{ -} - -//----------------------------------------------------------------------------- -// wxClientDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClientDC,wxWindowDC) - -wxClientDC::wxClientDC() - : wxWindowDC() -{ -} - -wxClientDC::wxClientDC( wxWindow *win ) - : wxWindowDC( win ) -{ -} - diff --git a/src/gtk1/dcmemory.cpp b/src/gtk1/dcmemory.cpp deleted file mode 100644 index 6e6365b3ea..0000000000 --- a/src/gtk1/dcmemory.cpp +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxWindowDC) - -wxMemoryDC::wxMemoryDC() : wxWindowDC() -{ - m_ok = FALSE; - - m_cmap = gtk_widget_get_default_colormap(); -} - -wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) - : wxWindowDC() -{ - m_ok = FALSE; - - m_cmap = gtk_widget_get_default_colormap(); -} - -wxMemoryDC::~wxMemoryDC() -{ -} - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_selected = bitmap; - if (m_selected.Ok()) - { - if (m_selected.GetPixmap()) - { - m_window = m_selected.GetPixmap(); - } - else - { - m_window = m_selected.GetBitmap(); - } - - SetUpDC(); - - m_isMemDC = TRUE; - } - else - { - m_ok = FALSE; - m_window = (GdkWindow *) NULL; - } -} - -void wxMemoryDC::DoGetSize( int *width, int *height ) const -{ - if (m_selected.Ok()) - { - if (width) (*width) = m_selected.GetWidth(); - if (height) (*height) = m_selected.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - } -} - - diff --git a/src/gtk1/dcscreen.cpp b/src/gtk1/dcscreen.cpp deleted file mode 100644 index 96491de8ad..0000000000 --- a/src/gtk1/dcscreen.cpp +++ /dev/null @@ -1,345 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" -#include "wx/window.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// global data initialization -//----------------------------------------------------------------------------- - -GdkWindow *wxScreenDC::sm_overlayWindow = (GdkWindow*) NULL; - int wxScreenDC::sm_overlayWindowX = 0; - int wxScreenDC::sm_overlayWindowY = 0; - - -//----------------------------------------------------------------------------- -// create X window -//----------------------------------------------------------------------------- - -extern "C" { - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkx.h" -#include - -int my_nevent_masks = 17; -int my_event_masks_table[19] = -{ - ExposureMask, - PointerMotionMask, - PointerMotionHintMask, - ButtonMotionMask, - Button1MotionMask, - Button2MotionMask, - Button3MotionMask, - ButtonPressMask | OwnerGrabButtonMask, - ButtonReleaseMask | OwnerGrabButtonMask, - KeyPressMask, - KeyReleaseMask, - EnterWindowMask, - LeaveWindowMask, - FocusChangeMask, - StructureNotifyMask, - PropertyChangeMask, - VisibilityChangeMask, - 0, /* PROXIMITY_IN */ - 0 /* PROXIMTY_OUT */ -}; - -GdkWindow* -gdk_window_transparent_new ( GdkWindow *parent, - GdkWindowAttr *attributes, - gint attributes_mask) -{ - GdkWindow *window; - GdkWindowPrivate *gprivate; - GdkWindowPrivate *parent_private; - GdkVisual *visual; - Display *parent_display; - Window xparent; - Visual *xvisual; - XSetWindowAttributes xattributes; - long xattributes_mask; - XSizeHints size_hints; - XWMHints wm_hints; - XClassHint *class_hint; - int x, y, depth; - unsigned int gclass; - char *title; - int i; - - g_return_val_if_fail (attributes != NULL, NULL); - - if (!parent) - parent = (GdkWindow*) &gdk_root_parent; - - parent_private = (GdkWindowPrivate*) parent; - if (parent_private->destroyed) - return NULL; - - xparent = parent_private->xwindow; - parent_display = parent_private->xdisplay; - - gprivate = g_new (GdkWindowPrivate, 1); - window = (GdkWindow*) gprivate; - - gprivate->parent = parent; - - if (parent_private != &gdk_root_parent) - parent_private->children = g_list_prepend (parent_private->children, window); - - gprivate->xdisplay = parent_display; - gprivate->destroyed = FALSE; - gprivate->resize_count = 0; - gprivate->ref_count = 1; - xattributes_mask = 0; - - if (attributes_mask & GDK_WA_X) - x = attributes->x; - else - x = 0; - - if (attributes_mask & GDK_WA_Y) - y = attributes->y; - else - y = 0; - - gprivate->x = x; - gprivate->y = y; - gprivate->width = (attributes->width > 1) ? (attributes->width) : (1); - gprivate->height = (attributes->height > 1) ? (attributes->height) : (1); - gprivate->window_type = attributes->window_type; - gprivate->extension_events = FALSE; - -#if (GTK_MINOR_VERSION == 0) - gprivate->dnd_drag_data_type = None; - gprivate->dnd_drag_data_typesavail = - gprivate->dnd_drop_data_typesavail = NULL; - gprivate->dnd_drop_enabled = gprivate->dnd_drag_enabled = - gprivate->dnd_drag_accepted = gprivate->dnd_drag_datashow = - gprivate->dnd_drop_data_numtypesavail = - gprivate->dnd_drag_data_numtypesavail = 0; - gprivate->dnd_drag_eventmask = gprivate->dnd_drag_savedeventmask = 0; -#endif - - gprivate->filters = NULL; - gprivate->children = NULL; - - window->user_data = NULL; - - if (attributes_mask & GDK_WA_VISUAL) - visual = attributes->visual; - else - visual = gdk_visual_get_system (); - xvisual = ((GdkVisualPrivate*) visual)->xvisual; - - xattributes.event_mask = StructureNotifyMask; - for (i = 0; i < my_nevent_masks; i++) - { - if (attributes->event_mask & (1 << (i + 1))) - xattributes.event_mask |= my_event_masks_table[i]; - } - - if (xattributes.event_mask) - xattributes_mask |= CWEventMask; - - if(attributes_mask & GDK_WA_NOREDIR) { - xattributes.override_redirect = - (attributes->override_redirect == FALSE)?False:True; - xattributes_mask |= CWOverrideRedirect; - } else - xattributes.override_redirect = False; - - gclass = InputOutput; - depth = visual->depth; - - if (attributes_mask & GDK_WA_COLORMAP) - gprivate->colormap = attributes->colormap; - else - gprivate->colormap = gdk_colormap_get_system (); - - xattributes.colormap = ((GdkColormapPrivate*) gprivate->colormap)->xcolormap; - xattributes_mask |= CWColormap; - - xparent = gdk_root_window; - - xattributes.save_under = True; - xattributes.override_redirect = True; - xattributes.cursor = None; - xattributes_mask |= CWSaveUnder | CWOverrideRedirect; - - gprivate->xwindow = XCreateWindow (gprivate->xdisplay, xparent, - x, y, gprivate->width, gprivate->height, - 0, depth, gclass, xvisual, - xattributes_mask, &xattributes); - gdk_window_ref (window); - gdk_xid_table_insert (&gprivate->xwindow, window); - - if (gprivate->colormap) - gdk_colormap_ref (gprivate->colormap); - - XSetWMProtocols (gprivate->xdisplay, gprivate->xwindow, gdk_wm_window_protocols, 2); - - size_hints.flags = PSize; - size_hints.width = gprivate->width; - size_hints.height = gprivate->height; - - wm_hints.flags = InputHint | StateHint | WindowGroupHint; - wm_hints.window_group = gdk_leader_window; - wm_hints.input = True; - wm_hints.initial_state = NormalState; - - /* FIXME: Is there any point in doing this? Do any WM's pay - * attention to PSize, and even if they do, is this the - * correct value??? - */ - XSetWMNormalHints (gprivate->xdisplay, gprivate->xwindow, &size_hints); - - XSetWMHints (gprivate->xdisplay, gprivate->xwindow, &wm_hints); - - if (attributes_mask & GDK_WA_TITLE) - title = attributes->title; - else -#if (GTK_MINOR_VERSION > 0) - title = "Unknown"; // GLH: Well I don't know for the moment what to write here. -#else - title = gdk_progname; -#endif - - XmbSetWMProperties (gprivate->xdisplay, gprivate->xwindow, - title, title, - NULL, 0, - NULL, NULL, NULL); - - if (attributes_mask & GDK_WA_WMCLASS) - { - class_hint = XAllocClassHint (); - class_hint->res_name = attributes->wmclass_name; - class_hint->res_class = attributes->wmclass_class; - XSetClassHint (gprivate->xdisplay, gprivate->xwindow, class_hint); - XFree (class_hint); - } - - return window; -} - -} // extern "C" - -//----------------------------------------------------------------------------- -// wxScreenDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC,wxPaintDC) - -wxScreenDC::wxScreenDC(void) -{ - m_ok = FALSE; - m_window = (GdkWindow *) NULL; - m_cmap = gdk_colormap_get_system(); - - if (sm_overlayWindow) - { - m_window = sm_overlayWindow; - m_deviceOriginX = - sm_overlayWindowX; - m_deviceOriginY = - sm_overlayWindowY; - } - else - { - m_window = GDK_ROOT_PARENT(); - } - - SetUpDC(); - - gdk_gc_set_subwindow( m_penGC, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_subwindow( m_brushGC, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_subwindow( m_textGC, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_subwindow( m_bgGC, GDK_INCLUDE_INFERIORS ); -} - -wxScreenDC::~wxScreenDC(void) -{ - EndDrawingOnTop(); -} - -bool wxScreenDC::StartDrawingOnTop( wxWindow *window ) -{ - if (!window) return StartDrawingOnTop(); - - int x = 0; - int y = 0; - window->GetPosition( &x, &y ); - int w = 0; - int h = 0; - window->GetSize( &w, &h ); - window->ClientToScreen( &x, &y ); - - wxRect rect; - rect.x = x; - rect.y = y; - rect.width = 0; - rect.height = 0; - - return StartDrawingOnTop( &rect ); -} - -bool wxScreenDC::StartDrawingOnTop( wxRect *rect ) -{ - int x = 0; - int y = 0; - int width = gdk_screen_width(); - int height = gdk_screen_height(); - if (rect) - { - x = rect->x; - y = rect->y; - width = rect->width; - height = rect->height; - } - - sm_overlayWindowX = x; - sm_overlayWindowY = y; - - GdkWindowAttr attr; - attr.x = x; - attr.y = y; - attr.width = width; - attr.height = height; - attr.override_redirect = TRUE; - attr.wclass = GDK_INPUT_OUTPUT; - attr.event_mask = 0; - attr.window_type = GDK_WINDOW_TEMP; - - // GTK cannot set transparent backgrounds. :-( - sm_overlayWindow = gdk_window_transparent_new( NULL, &attr, GDK_WA_NOREDIR | GDK_WA_X | GDK_WA_Y ); - - if (sm_overlayWindow) gdk_window_show( sm_overlayWindow ); - - return (sm_overlayWindow != NULL); -} - -bool wxScreenDC::EndDrawingOnTop(void) -{ - if (sm_overlayWindow) gdk_window_destroy( sm_overlayWindow ); - - sm_overlayWindow = NULL; - sm_overlayWindowX = 0; - sm_overlayWindowY = 0; - - return TRUE; -} - diff --git a/src/gtk1/dialog.cpp b/src/gtk1/dialog.cpp deleted file mode 100644 index 68afab7f74..0000000000 --- a/src/gtk1/dialog.cpp +++ /dev/null @@ -1,629 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/frame.h" -#include "wx/app.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -bool gtk_dialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_dialog_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - if ((win->m_width != alloc->width) || (win->m_height != alloc->height)) - { - win->m_width = alloc->width; - win->m_height = alloc->height; - win->UpdateSize(); - } -} - -//----------------------------------------------------------------------------- -// "configure_event" -//----------------------------------------------------------------------------- - -static gint gtk_dialog_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - - int x = 0; - int y = 0; - gdk_window_get_root_origin( win->m_widget->window, &x, &y ); - - win->m_x = x; - win->m_y = y; - - wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() ); - mevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( mevent ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "realize" from m_widget -//----------------------------------------------------------------------------- - -/* we cannot MWM hints and icons before the widget has been realized, - so we do this directly after realization */ - -static gint -gtk_dialog_realized_callback( GtkWidget *widget, wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - /* I haven''t been able to set the position of - the dialog before it is shown, so I set the - position in "realize" and "map" */ - gtk_widget_set_uposition( widget, win->m_x, win->m_y ); - - /* reset the icon */ - if (win->m_icon != wxNullIcon) - { - wxIcon icon( win->m_icon ); - win->m_icon = wxNullIcon; - win->SetIcon( icon ); - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "map" from m_widget -//----------------------------------------------------------------------------- - -static gint -gtk_dialog_map_callback( GtkWidget *widget, wxDialog *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - /* I haven''t been able to set the position of - the dialog before it is shown, so I set the - position in "realize" and "map" */ - gtk_widget_set_uposition( widget, win->m_x, win->m_y ); - - /* all this is for Motif Window Manager "hints" and is supposed to be - recognized by other WM as well. not tested. */ - long decor = (long) GDK_DECOR_BORDER; - long func = (long) GDK_FUNC_MOVE ; - - if ((win->GetWindowStyle() & wxCAPTION) != 0) - decor |= GDK_DECOR_TITLE; - if ((win->GetWindowStyle() & wxSYSTEM_MENU) != 0) - { - decor |= GDK_DECOR_MENU; - func |= GDK_FUNC_CLOSE; - } - if ((win->GetWindowStyle() & wxMINIMIZE_BOX) != 0) - { - func |= GDK_FUNC_MINIMIZE; - decor |= GDK_DECOR_MINIMIZE; - } - if ((win->GetWindowStyle() & wxMAXIMIZE_BOX) != 0) - { - decor |= GDK_DECOR_MAXIMIZE; - func |= GDK_FUNC_MAXIMIZE; - } - if ((win->GetWindowStyle() & wxRESIZE_BORDER) != 0) - { - func |= GDK_FUNC_RESIZE; - decor |= GDK_DECOR_RESIZEH; - } - gdk_window_set_decorations( win->m_widget->window, (GdkWMDecoration)decor); - gdk_window_set_functions( win->m_widget->window, (GdkWMFunction)func); - - /* GTK's shrinking/growing policy */ - if ((win->GetWindowStyle() & wxRESIZE_BORDER) == 0) - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 0, 0, 1); - else - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// InsertChild for wxDialog -//----------------------------------------------------------------------------- - -/* Callback for wxFrame. This very strange beast has to be used because - * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxWindows requires different ways to insert - * a child in container classes. */ - -static void wxInsertChildInDialog( wxDialog* parent, wxWindow* child ) -{ - gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - - if (parent->HasFlag(wxTAB_TRAVERSAL)) - { - /* we now allow a window to get the focus as long as it - doesn't have any children. */ - GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS ); - } -} - -//----------------------------------------------------------------------------- -// wxDialog -//----------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxDialog,wxPanel) - EVT_BUTTON (wxID_OK, wxDialog::OnOK) - EVT_BUTTON (wxID_CANCEL, wxDialog::OnCancel) - EVT_BUTTON (wxID_APPLY, wxDialog::OnApply) - EVT_SIZE (wxDialog::OnSize) - EVT_CLOSE (wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxDialog,wxPanel) - -void wxDialog::Init() -{ - m_returnCode = 0; - m_sizeSet = FALSE; - m_modalShowing = FALSE; -} - -wxDialog::wxDialog( wxWindow *parent, - wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Init(); - - Create( parent, id, title, pos, size, style, name ); -} - -bool wxDialog::Create( wxWindow *parent, - wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - wxTopLevelWindows.Append( this ); - - m_needParent = FALSE; - - PreCreation( parent, id, pos, size, style, name ); - - m_insertCallback = (wxInsertChildFunction) wxInsertChildInDialog; - - m_widget = gtk_window_new( GTK_WINDOW_TOPLEVEL ); - - if (!name.IsEmpty()) - gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); - - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_dialog_delete_callback), (gpointer)this ); - - m_wxwindow = gtk_myfixed_new(); - gtk_widget_show( m_wxwindow ); - GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - - gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); - - SetTitle( title ); - - if (m_parent) m_parent->AddChild( this ); - - PostCreation(); - - /* we cannot set MWM hints before the widget has - been realized, so we do this directly after realization */ - gtk_signal_connect( GTK_OBJECT(m_widget), "realize", - GTK_SIGNAL_FUNC(gtk_dialog_realized_callback), (gpointer) this ); - - /* we set the position of the window after the map event. setting it - before has no effect (with KWM) */ - gtk_signal_connect( GTK_OBJECT(m_widget), "map", - GTK_SIGNAL_FUNC(gtk_dialog_map_callback), (gpointer) this ); - - /* the user resized the frame by dragging etc. */ - gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_dialog_size_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", - GTK_SIGNAL_FUNC(gtk_dialog_configure_callback), (gpointer)this ); - - return TRUE; -} - -wxDialog::~wxDialog() -{ - m_isBeingDeleted = TRUE; - - wxTopLevelWindows.DeleteObject( this ); - - if (wxTheApp->GetTopWindow() == this) - { - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - } - - if (wxTopLevelWindows.Number() == 0) - { - wxTheApp->ExitMainLoop(); - } -} - -void wxDialog::SetTitle( const wxString& title ) -{ - m_title = title; - if (m_title.IsNull()) m_title = _T(""); - gtk_window_set_title( GTK_WINDOW(m_widget), m_title.mbc_str() ); -} - -wxString wxDialog::GetTitle() const -{ - return (wxString&)m_title; -} - -void wxDialog::OnApply( wxCommandEvent &WXUNUSED(event) ) -{ - if (Validate()) TransferDataFromWindow(); -} - -void wxDialog::OnCancel( wxCommandEvent &WXUNUSED(event) ) -{ - if (IsModal()) - { - EndModal(wxID_CANCEL); - } - else - { - SetReturnCode(wxID_CANCEL); - Show(FALSE); - } -} - -void wxDialog::OnOK( wxCommandEvent &WXUNUSED(event) ) -{ - if (Validate() && TransferDataFromWindow()) - { - if (IsModal()) - { - EndModal(wxID_OK); - } - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnPaint( wxPaintEvent& WXUNUSED(event) ) -{ - // yes -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList s_closing; - - if (s_closing.Member(this)) - return; // no loops - - s_closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - s_closing.DeleteObject(this); -} - -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this); - - return TRUE; -} - -void wxDialog::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") ); - -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - { - Layout(); - } - else -#endif // wxUSE_CONSTRAINTS - { - /* no child: go out ! */ - if (!GetChildren().First()) return; - - /* do we have exactly one child? */ - wxWindow *child = (wxWindow *) NULL; - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!wxIS_KIND_OF(win,wxFrame) && !wxIS_KIND_OF(win,wxDialog)) - { - /* it's the second one: do nothing */ - if (child) return; - child = win; - } - } - - /* yes: set it's size to fill all the frame */ - int client_x, client_y; - GetClientSize( &client_x, &client_y ); - child->SetSize( 1, 1, client_x-2, client_y); - } -} - -void wxDialog::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") ); - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid dialog") ); - - if (m_resizing) return; /* I don't like recursions */ - m_resizing = TRUE; - - int old_x = m_x; - int old_y = m_y; - int old_width = m_width; - int old_height = m_height; - - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - if ((m_x != -1) || (m_y != -1)) - { - if ((m_x != old_x) || (m_y != old_y)) - { - /* we set the position here and when showing the dialog - for the first time in idle time */ - gtk_widget_set_uposition( m_widget, m_x, m_y ); - } - } - - if ((m_width != old_width) || (m_height != old_height)) - { - /* actual resizing is deferred to GtkOnSize in idle time and - when showing the dialog */ - m_sizeSet = FALSE; - } - - m_resizing = FALSE; -} - -void wxDialog::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height ) -{ - // due to a bug in gtk, x,y are always 0 - // m_x = x; - // m_y = y; - - if ((m_height == height) && (m_width == width) && (m_sizeSet)) return; - if (!m_wxwindow) return; - - m_width = width; - m_height = height; - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - /* we actually set the size of a frame here and no-where else */ - gtk_widget_set_usize( m_widget, m_width, m_height ); - - m_sizeSet = TRUE; - - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); -} - -void wxDialog::Centre( int direction ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid dialog") ); - - int x = 0; - int y = 0; - - if ((direction & wxHORIZONTAL) == wxHORIZONTAL) x = (gdk_screen_width () - m_width) / 2; - if ((direction & wxVERTICAL) == wxVERTICAL) y = (gdk_screen_height () - m_height) / 2; - - Move( x, y ); -} - -void wxDialog::OnInternalIdle() -{ - if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow)) - GtkOnSize( m_x, m_y, m_width, m_height ); -} - -bool wxDialog::Show( bool show ) -{ - if (!show && IsModal()) - { - EndModal( wxID_CANCEL ); - } - - if (show && !m_sizeSet) - { - /* by calling GtkOnSize here, we don't have to call - either after showing the frame, which would entail - much ugly flicker nor from within the size_allocate - handler, because GTK 1.1.X forbids that. */ - - GtkOnSize( m_x, m_y, m_width, m_height ); - } - - bool ret = wxWindow::Show( show ); - - if (show) InitDialog(); - - return ret; -} - -bool wxDialog::IsModal() const -{ - return m_modalShowing; -} - -void wxDialog::SetModal( bool WXUNUSED(flag) ) -{ -/* - if (flag) - m_windowStyle |= wxDIALOG_MODAL; - else - if (m_windowStyle & wxDIALOG_MODAL) m_windowStyle -= wxDIALOG_MODAL; -*/ - wxFAIL_MSG( _T("wxDialog:SetModal obsolete now") ); -} - -int wxDialog::ShowModal() -{ - if (IsModal()) - { - wxFAIL_MSG( _T("wxDialog:ShowModal called twice") ); - return GetReturnCode(); - } - - Show( TRUE ); - - m_modalShowing = TRUE; - - gtk_grab_add( m_widget ); - gtk_main(); - gtk_grab_remove( m_widget ); - - return GetReturnCode(); -} - -void wxDialog::EndModal( int retCode ) -{ - SetReturnCode( retCode ); - - if (!IsModal()) - { - wxFAIL_MSG( _T("wxDialog:EndModal called twice") ); - return; - } - - m_modalShowing = FALSE; - - gtk_main_quit(); - - Show( FALSE ); -} - -void wxDialog::InitDialog() -{ - wxWindow::InitDialog(); -} - -void wxDialog::SetIcon( const wxIcon &icon ) -{ - m_icon = icon; - if (!icon.Ok()) return; - - if (!m_widget->window) return; - - wxMask *mask = icon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; - if (mask) bm = mask->GetBitmap(); - - gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); -} diff --git a/src/gtk1/dnd.cpp b/src/gtk1/dnd.cpp deleted file mode 100644 index 9596cf7d13..0000000000 --- a/src/gtk1/dnd.cpp +++ /dev/null @@ -1,887 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget class -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/dnd.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/intl.h" -#include "wx/utils.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gdk/gdkprivate.h" - -#include "gtk/gtkdnd.h" -#include "gtk/gtkselection.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//---------------------------------------------------------------------------- -// global data -//---------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//---------------------------------------------------------------------------- -// standard icons -//---------------------------------------------------------------------------- - -/* XPM */ -static char * gv_xpm[] = { -"40 34 3 1", -" s None c None", -". c black", -"X c white", -" ", -" ", -" ...... ", -" ..XXXXXX.. ", -" .XXXXXXXXXX. ", -" .XXXXXXXXXXXX. ", -" .XXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXX. ", -" .XXX..XXXX..XXX. ", -" ....XX....XX....XX. ", -" .XXX.XXX..XXXX..XXX.... ", -" .XXXXXXXXXXXXXXXXXXX.XXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXXX. ", -" ..XXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXX... ", -" ..XXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXX.XXXXXXX. ", -" .XXXXXXX.XXXXXXX.XXXXXXX. ", -" .XXXXXXXX.XXXXXXX.XXXXXXX. ", -" .XXXXXXX...XXXXX...XXXXX. ", -" .XXXXXXX. ..... ..... ", -" ..XXXX.. ", -" .... ", -" ", -" ", -" "}; - -/* XPM */ -static char * page_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 5 1", -/* colors */ -" s None c None", -". c black", -"X c wheat", -"o c tan", -"O c #6699FF", -/* pixels */ -" ................... ", -" .XXXXXXXXXXXXXXXXX.. ", -" .XXXXXXXXXXXXXXXXX.o. ", -" .XXXXXXXXXXXXXXXXX.oo. ", -" .XXXXXXXXXXXXXXXXX.ooo. ", -" .XXXXXXXXXXXXXXXXX.oooo. ", -" .XXXXXXXXXXXXXXXXX....... ", -" .XXXXXOOOOOOOOOOXXXooooo. ", -" .XXXXXXXXXXXXXXXXXXooooo. ", -" .XXXXXOOOOOOOOOOXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXOOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXOOOOOOOOOOXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXOOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXOOOOOOOOOOXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXOOOOOOOOOOXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXOOOOOOOXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" .XXXXXXXXXXXXXXXXXXXXXXX. ", -" ......................... "}; - - - -// ---------------------------------------------------------------------------- -// "drag_leave" -// ---------------------------------------------------------------------------- - -static void target_drag_leave( GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - guint WXUNUSED(time), - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* inform the wxDropTarget about the current GdkDragContext. - this is only valid for the duration of this call */ - drop_target->SetDragContext( context ); - - /* we don't need return values. this event is just for - information */ - drop_target->OnLeave(); - - /* this has to be done because GDK has no "drag_enter" event */ - drop_target->m_firstMotion = TRUE; - - /* after this, invalidate the drop_target's GdkDragContext */ - drop_target->SetDragContext( (GdkDragContext*) NULL ); -} - -// ---------------------------------------------------------------------------- -// "drag_motion" -// ---------------------------------------------------------------------------- - -static gboolean target_drag_motion( GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - gint x, - gint y, - guint time, - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* Owen Taylor: "if the coordinates not in a drop zone, - return FALSE, otherwise call gtk_drag_status() and - return TRUE" */ - - /* inform the wxDropTarget about the current GdkDragContext. - this is only valid for the duration of this call */ - drop_target->SetDragContext( context ); - - if (drop_target->m_firstMotion) - { - /* the first "drag_motion" event substitutes a "drag_enter" event */ - drop_target->OnEnter(); - } - - /* give program a chance to react (i.e. to say no by returning FALSE) */ - bool ret = drop_target->OnMove( x, y ); - - /* we don't yet handle which "actions" (i.e. copy or move) - the target accepts. so far we simply accept the - suggested action. TODO. */ - if (ret) - gdk_drag_status( context, context->suggested_action, time ); - - /* after this, invalidate the drop_target's GdkDragContext */ - drop_target->SetDragContext( (GdkDragContext*) NULL ); - - /* this has to be done because GDK has no "drag_enter" event */ - drop_target->m_firstMotion = FALSE; - - return ret; -} - -// ---------------------------------------------------------------------------- -// "drag_drop" -// ---------------------------------------------------------------------------- - -static gboolean target_drag_drop( GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* Owen Taylor: "if the drop is not in a drop zone, - return FALSE, otherwise, if you aren't accepting - the drop, call gtk_drag_finish() with success == FALSE - otherwise call gtk_drag_data_get()" */ - -// printf( "drop.\n" ); - - /* this seems to make a difference between not accepting - due to wrong target area and due to wrong format. let - us hope that this is not required.. */ - - /* inform the wxDropTarget about the current GdkDragContext. - this is only valid for the duration of this call */ - drop_target->SetDragContext( context ); - - /* inform the wxDropTarget about the current drag widget. - this is only valid for the duration of this call */ - drop_target->SetDragWidget( widget ); - - /* inform the wxDropTarget about the current drag time. - this is only valid for the duration of this call */ - drop_target->SetDragTime( time ); - - bool ret = drop_target->OnDrop( x, y ); - - if (!ret) - { - /* cancel the whole thing */ - gtk_drag_finish( context, - FALSE, /* no success */ - FALSE, /* don't delete data on dropping side */ - time ); - } - - /* after this, invalidate the drop_target's GdkDragContext */ - drop_target->SetDragContext( (GdkDragContext*) NULL ); - - /* after this, invalidate the drop_target's drag widget */ - drop_target->SetDragWidget( (GtkWidget*) NULL ); - - /* this has to be done because GDK has no "drag_enter" event */ - drop_target->m_firstMotion = TRUE; - - return ret; -} - -// ---------------------------------------------------------------------------- -// "drag_data_received" -// ---------------------------------------------------------------------------- - -static void target_drag_data_received( GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *data, - guint WXUNUSED(info), - guint time, - wxDropTarget *drop_target ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - /* Owen Taylor: "call gtk_drag_finish() with - success == TRUE" */ - -// printf( "data received.\n" ); - - if ((data->length <= 0) || (data->format != 8)) - { - /* negative data length and non 8-bit data format - qualifies for junk */ - gtk_drag_finish (context, FALSE, FALSE, time); - -// printf( "no data.\n" ); - - return; - } - - /* inform the wxDropTarget about the current GtkSelectionData. - this is only valid for the duration of this call */ - drop_target->SetDragData( data ); - - if (drop_target->OnData( x, y )) - { - /* tell GTK that data transfer was successfull */ - gtk_drag_finish( context, TRUE, FALSE, time ); - } - else - { - /* tell GTK that data transfer was not successfull */ - gtk_drag_finish( context, FALSE, FALSE, time ); - } - - /* after this, invalidate the drop_target's drag data */ - drop_target->SetDragData( (GtkSelectionData*) NULL ); -} - -//---------------------------------------------------------------------------- -// wxDropTarget -//---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ - m_firstMotion = TRUE; - m_dragContext = (GdkDragContext*) NULL; - m_dragWidget = (GtkWidget*) NULL; - m_dragData = (GtkSelectionData*) NULL; - m_dragTime = 0; -} - -wxDropTarget::~wxDropTarget() -{ -} - -void wxDropTarget::OnEnter() -{ -} - -void wxDropTarget::OnLeave() -{ -} - -bool wxDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return TRUE; -} - -bool wxDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return FALSE; -} - -bool wxDropTarget::OnData( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return FALSE; -} - -bool wxDropTarget::RequestData( wxDataFormat format ) -{ - if (!m_dragContext) return FALSE; - if (!m_dragWidget) return FALSE; - -/* - wxPrintf( _T("format: %s.\n"), format.GetId().c_str() ); - if (format.GetType() == wxDF_PRIVATE) wxPrintf( _T("private data.\n") ); - if (format.GetType() == wxDF_TEXT) wxPrintf( _T("text data.\n") ); -*/ - - /* this should trigger an "drag_data_received" event */ - gtk_drag_get_data( m_dragWidget, - m_dragContext, - format.GetAtom(), - m_dragTime ); - - return TRUE; -} - -bool wxDropTarget::IsSupported( wxDataFormat format ) -{ - if (!m_dragContext) return FALSE; - - GList *child = m_dragContext->targets; - while (child) - { - GdkAtom formatAtom = (GdkAtom) GPOINTER_TO_INT(child->data); - -// char *name = gdk_atom_name( formatAtom ); -// if (name) printf( "Format available: %s.\n", name ); - - if (formatAtom == format.GetAtom()) return TRUE; - child = child->next; - } - - return FALSE; -} - -bool wxDropTarget::GetData( wxDataObject *data_object ) -{ - if (!m_dragData) return FALSE; - - if (m_dragData->target != data_object->GetFormat().GetAtom()) return FALSE; - - if (data_object->GetFormat().GetType() == wxDF_TEXT) - { - wxTextDataObject *text_object = (wxTextDataObject*)data_object; - text_object->SetText( (const char*)m_dragData->data ); - } else - - if (data_object->GetFormat().GetType() == wxDF_FILENAME) - { - } else - - if (data_object->GetFormat().GetType() == wxDF_PRIVATE) - { - wxPrivateDataObject *priv_object = (wxPrivateDataObject*)data_object; - priv_object->SetData( (const char*)m_dragData->data, (size_t)m_dragData->length ); - } - - return TRUE; -} - -void wxDropTarget::UnregisterWidget( GtkWidget *widget ) -{ - wxCHECK_RET( widget != NULL, _T("unregister widget is NULL") ); - - gtk_drag_dest_unset( widget ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(widget), - GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this ); -} - -void wxDropTarget::RegisterWidget( GtkWidget *widget ) -{ - wxCHECK_RET( widget != NULL, _T("register widget is NULL") ); - - /* gtk_drag_dest_set() determines what default behaviour we'd like - GTK to supply. we don't want to specify out targets (=formats) - or actions in advance (i.e. not GTK_DEST_DEFAULT_MOTION and - not GTK_DEST_DEFAULT_DROP). instead we react individually to - "drag_motion" and "drag_drop" events. this makes it possible - to allow dropping on only a small area. we should set - GTK_DEST_DEFAULT_HIGHLIGHT as this will switch on the nice - highlighting if dragging over standard controls, but this - seems to be broken without the other two. */ - - gtk_drag_dest_set( widget, - (GtkDestDefaults) 0, /* no default behaviour */ - (GtkTargetEntry*) NULL, /* we don't supply any formats here */ - 0, /* number of targets = 0 */ - (GdkDragAction) 0 ); /* we don't supply any actions here */ - - gtk_signal_connect( GTK_OBJECT(widget), "drag_leave", - GTK_SIGNAL_FUNC(target_drag_leave), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(widget), "drag_motion", - GTK_SIGNAL_FUNC(target_drag_motion), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(widget), "drag_drop", - GTK_SIGNAL_FUNC(target_drag_drop), (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(widget), "drag_data_received", - GTK_SIGNAL_FUNC(target_drag_data_received), (gpointer) this ); -} - -//------------------------------------------------------------------------- -// wxTextDropTarget -//------------------------------------------------------------------------- - -bool wxTextDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return IsSupported( wxDF_TEXT ); -} - -bool wxTextDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) ) -{ - if (IsSupported( wxDF_TEXT )) - { - RequestData( wxDF_TEXT ); - return TRUE; - } - - return FALSE; -} - -bool wxTextDropTarget::OnData( int x, int y ) -{ - wxTextDataObject data; - if (!GetData( &data )) return FALSE; - - OnDropText( x, y, data.GetText() ); - - return TRUE; -} - -//------------------------------------------------------------------------- -// wxPrivateDropTarget -//------------------------------------------------------------------------- - -wxPrivateDropTarget::wxPrivateDropTarget() -{ - m_id = wxTheApp->GetAppName(); -} - -wxPrivateDropTarget::wxPrivateDropTarget( const wxString &id ) -{ - m_id = id; -} - -bool wxPrivateDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return IsSupported( m_id ); -} - -bool wxPrivateDropTarget::OnDrop( int WXUNUSED(x), int WXUNUSED(y) ) -{ - if (!IsSupported( m_id )) - { - RequestData( m_id ); - return FALSE; - } - - return FALSE; -} - -bool wxPrivateDropTarget::OnData( int x, int y ) -{ - if (!IsSupported( m_id )) return FALSE; - - wxPrivateDataObject data; - if (!GetData( &data )) return FALSE; - - OnDropData( x, y, data.GetData(), data.GetSize() ); - - return TRUE; -} - -//---------------------------------------------------------------------------- -// A drop target which accepts files (dragged from File Manager or Explorer) -//---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnMove( int WXUNUSED(x), int WXUNUSED(y) ) -{ - return IsSupported( wxDF_FILENAME ); -} - -bool wxFileDropTarget::OnDrop( int x, int y ) -{ - if (IsSupported( wxDF_FILENAME )) - { - RequestData( wxDF_FILENAME ); - return TRUE; - } - - return FALSE; -} - -bool wxFileDropTarget::OnData( int x, int y ) -{ - wxFileDataObject data; - if (!GetData( &data )) return FALSE; - - /* get number of substrings /root/mytext.txt/0/root/myothertext.txt/0/0 */ - size_t number = 0; - size_t i; - size_t size = data.GetFiles().Length(); - wxChar *text = WXSTRINGCAST data.GetFiles(); - for ( i = 0; i < size; i++) - if (text[i] == 0) number++; - - if (number == 0) return FALSE; - - wxChar **files = new wxChar*[number]; - - text = WXSTRINGCAST data.GetFiles(); - for (i = 0; i < number; i++) - { - files[i] = text; - int len = wxStrlen( text ); - text += len+1; - } - - OnDropFiles( x, y, number, files ); - - free( files ); - - return TRUE; -} - -//---------------------------------------------------------------------------- -// "drag_data_get" -//---------------------------------------------------------------------------- - -static void -source_drag_data_get (GtkWidget *WXUNUSED(widget), - GdkDragContext *context, - GtkSelectionData *selection_data, - guint WXUNUSED(info), - guint WXUNUSED(time), - wxDropSource *drop_source ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "Provide data!\n" ); - -// char *name = gdk_atom_name( selection_data->target ); -// if (name) printf( "Format requested: %s.\n", name ); - - wxNode *node = drop_source->m_data->m_dataObjects.First(); - while (node) - { - wxDataObject *data_object = (wxDataObject*) node->Data(); - if (data_object->GetFormat().GetAtom() == selection_data->target) - { -// printf( "format found.\n" ); - - size_t data_size = data_object->GetSize(); - - if (data_size > 0) - { -// printf( "data size: %d.\n", (int)data_size ); - - guchar *buffer = new guchar[data_size]; - data_object->WriteData( buffer ); - - gtk_selection_data_set( selection_data, - selection_data->target, - 8, // 8-bit - buffer, - data_size ); - - free( buffer ); - - /* so far only copy, no moves. TODO. */ - drop_source->m_retValue = wxDragCopy; - - return; - } - } - - node = node->Next(); - } - - drop_source->m_retValue = wxDragCancel; -} - -//---------------------------------------------------------------------------- -// "drag_data_delete" -//---------------------------------------------------------------------------- - -static void source_drag_data_delete( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *drop_source ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "Delete the data!\n" ); - - drop_source->m_retValue = wxDragMove; -} - -//---------------------------------------------------------------------------- -// "drag_begin" -//---------------------------------------------------------------------------- - -static void source_drag_begin( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *WXUNUSED(drop_source) ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "drag_begin.\n" ); -} - -//---------------------------------------------------------------------------- -// "drag_end" -//---------------------------------------------------------------------------- - -static void source_drag_end( GtkWidget *WXUNUSED(widget), - GdkDragContext *WXUNUSED(context), - wxDropSource *drop_source ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -// printf( "drag_end.\n" ); - - drop_source->m_waiting = FALSE; -} - -//--------------------------------------------------------------------------- -// wxDropSource -//--------------------------------------------------------------------------- - -wxDropSource::wxDropSource( wxWindow *win, const wxIcon &go, const wxIcon &stop ) -{ - g_blockEventsOnDrag = TRUE; - m_waiting = TRUE; - - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - - m_data = (wxDataBroker*) NULL; - m_retValue = wxDragCancel; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); - - m_goIcon = go; - if (wxNullIcon == go) m_goIcon = wxIcon( page_xpm ); - m_stopIcon = stop; - if (wxNullIcon == stop) m_stopIcon = wxIcon( gv_xpm ); -} - -wxDropSource::wxDropSource( wxDataObject *data, wxWindow *win, const wxIcon &go, const wxIcon &stop ) -{ - m_waiting = TRUE; - - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - m_retValue = wxDragCancel; - - if (data) - { - m_data = new wxDataBroker(); - m_data->Add( data ); - } - else - { - m_data = (wxDataBroker*) NULL; - } - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); - - m_goIcon = go; - if (wxNullIcon == go) m_goIcon = wxIcon( page_xpm ); - m_stopIcon = stop; - if (wxNullIcon == stop) m_stopIcon = wxIcon( gv_xpm ); -} - -wxDropSource::wxDropSource( wxDataBroker *data, wxWindow *win ) -{ - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - m_retValue = wxDragCancel; - - m_data = data; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -} - -void wxDropSource::SetData( wxDataObject *data ) -{ - if (m_data) delete m_data; - - if (data) - { - m_data = new wxDataBroker(); - m_data->Add( data ); - } - else - { - m_data = (wxDataBroker*) NULL; - } -} - -void wxDropSource::SetData( wxDataBroker *data ) -{ - if (m_data) delete m_data; - - m_data = data; -} - -wxDropSource::~wxDropSource(void) -{ - if (m_data) delete m_data; - - g_blockEventsOnDrag = FALSE; -} - -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - wxASSERT_MSG( m_data, _T("wxDragSource: no data") ); - - if (!m_data) return (wxDragResult) wxDragNone; - - g_blockEventsOnDrag = TRUE; - - RegisterWindow(); - - m_waiting = TRUE; - - GdkAtom atom = gdk_atom_intern( "STRING", FALSE ); -// wxPrintf( _T("atom id: %d.\n"), (int)atom ); - - GtkTargetList *target_list = gtk_target_list_new( (GtkTargetEntry*) NULL, 0 ); - gtk_target_list_add( target_list, atom, 0, 0 ); - - GdkEventMotion event; - event.window = m_widget->window; - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer( event.window, &x, &y, &state ); - event.x = x; - event.y = y; - event.state = state; - event.time = GDK_CURRENT_TIME; - - /* GTK wants to know which button was pressed which caused the dragging */ - int button_number = 0; - if (event.state & GDK_BUTTON1_MASK) button_number = 1; - else if (event.state & GDK_BUTTON2_MASK) button_number = 2; - else if (event.state & GDK_BUTTON3_MASK) button_number = 3; - - /* don't start dragging if no button is down */ - if (button_number) - { - GdkDragContext *context = gtk_drag_begin( m_widget, - target_list, - GDK_ACTION_COPY, - button_number, /* number of mouse button which started drag */ - (GdkEvent*) &event ); - - wxMask *mask = m_goIcon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; - if (mask) bm = mask->GetBitmap(); - GdkPixmap *pm = m_goIcon.GetPixmap(); - - gtk_drag_set_icon_pixmap( context, - gtk_widget_get_colormap( m_widget ), - pm, - bm, - 0, - 0 ); - - while (m_waiting) gtk_main_iteration();; - } - - g_blockEventsOnDrag = FALSE; - - UnregisterWindow(); - - return m_retValue; -} - -void wxDropSource::RegisterWindow() -{ - if (!m_widget) return; - - gtk_signal_connect( GTK_OBJECT(m_widget), "drag_data_get", - GTK_SIGNAL_FUNC (source_drag_data_get), (gpointer) this); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_data_delete", - GTK_SIGNAL_FUNC (source_drag_data_delete), (gpointer) this ); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_begin", - GTK_SIGNAL_FUNC (source_drag_begin), (gpointer) this ); - gtk_signal_connect (GTK_OBJECT(m_widget), "drag_end", - GTK_SIGNAL_FUNC (source_drag_end), (gpointer) this ); - -} - -void wxDropSource::UnregisterWindow() -{ - if (!m_widget) return; - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_data_get), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_data_delete), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_begin), (gpointer) this ); - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(source_drag_end), (gpointer) this ); -} - -#endif - - // wxUSE_DRAG_AND_DROP diff --git a/src/gtk1/fdiag.xbm b/src/gtk1/fdiag.xbm deleted file mode 100644 index 67d3b4732a..0000000000 --- a/src/gtk1/fdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define fdiag_width 16 -#define fdiag_height 16 -static char fdiag_bits[] = { - 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, - 0x40, 0x40, 0x80, 0x80, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, - 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80}; diff --git a/src/gtk1/filedlg.cpp b/src/gtk1/filedlg.cpp deleted file mode 100644 index 528bba04b3..0000000000 --- a/src/gtk1/filedlg.cpp +++ /dev/null @@ -1,252 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/filedlg.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/generic/msgdlgg.h" - -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -static -bool gtk_filedialog_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxDialog *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - -/* - printf( "OnDelete from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "clicked" for OK-button -//----------------------------------------------------------------------------- - -static -void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), wxFileDialog *dialog ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int style = dialog->GetStyle(); - - GtkFileSelection *filedlg = GTK_FILE_SELECTION(dialog->m_widget); - char *filename = gtk_file_selection_get_filename(filedlg); - - if ( (style & wxSAVE) && ( style & wxOVERWRITE_PROMPT ) ) - { - if (wxFileExists( filename )) - { - wxString msg; - msg.Printf( _("File '%s' already exists, do you really want to " - "overwrite it?"), filename); - - if (wxMessageBox(msg, _("Confirm"), wxYES_NO) != wxYES) - return; - } - } - else if ( (style & wxOPEN) && ( style & wxFILE_MUST_EXIST) ) - { - if ( !wxFileExists( filename ) ) - { - wxMessageBox(_("Please choose an existing file."), _("Error"), wxOK); - - return; - } - } - - dialog->SetPath( filename ); - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK); - event.SetEventObject( dialog ); - dialog->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "clicked" for Cancel-button -//----------------------------------------------------------------------------- - -static -void gtk_filedialog_cancel_callback( GtkWidget *WXUNUSED(w), wxFileDialog *dialog ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - event.SetEventObject( dialog ); - dialog->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxFileDialog -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxDialog) - -wxFileDialog::wxFileDialog( wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, - const wxString& wildCard, - long style, const wxPoint& pos ) -{ - m_needParent = FALSE; - - PreCreation( parent, -1, pos, wxDefaultSize, style | wxDIALOG_MODAL, "filedialog" ); - m_message = message; - m_path = _T(""); - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_dialogStyle = style; - m_filterIndex = 1; - - m_widget = gtk_file_selection_new( m_message.mbc_str() ); - - int x = (gdk_screen_width () - 400) / 2; - int y = (gdk_screen_height () - 400) / 2; - gtk_widget_set_uposition( m_widget, x, y ); - - GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget); - gtk_file_selection_hide_fileop_buttons( sel ); // they don't work anyway - - m_path.Append(m_dir); - if( ! m_path.IsEmpty() && m_path.Last()!=_T('/') ) - m_path.Append('/'); - m_path.Append(m_fileName); - - if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path.mbc_str()); - - gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked", - GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this ); - - // strange way to internationalize - gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->ok_button)->child ), wxConv_current->cWX2MB(_("OK")) ); - - gtk_signal_connect( GTK_OBJECT(sel->cancel_button), "clicked", - GTK_SIGNAL_FUNC(gtk_filedialog_cancel_callback), (gpointer*)this ); - - // strange way to internationalize - gtk_label_set( GTK_LABEL( GTK_BUTTON(sel->cancel_button)->child ), wxConv_current->cWX2MB(_("Cancel")) ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_filedialog_delete_callback), (gpointer)this ); -} - -void wxFileDialog::SetPath(const wxString& path) -{ - // not only set the full path but also update filename and dir - m_path = path; - if ( !!path ) - { - wxString ext; - wxSplitPath(path, &m_dir, &m_fileName, &ext); - m_fileName += ext; - } -} - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -wxString -wxFileSelectorEx(const wxChar *message, - const wxChar *default_path, - const wxChar *default_filename, - int *indexDefaultExtension, - const wxChar *wildcard, - int flags, - wxWindow *parent, - int x, int y) -{ - // TODO: implement this somehow - return wxFileSelector(message, default_path, default_filename, _T(""), - wildcard, flags, parent, x, y); -} - -wxString wxFileSelector( const wxChar *title, - const wxChar *defaultDir, const wxChar *defaultFileName, - const wxChar *defaultExtension, const wxChar *filter, int flags, - wxWindow *parent, int x, int y ) -{ - wxString filter2; - if ( defaultExtension && !filter ) - filter2 = wxString(_T("*.")) + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - - wxFileDialog fileDialog( parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y) ); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - return fileDialog.GetPath(); - } - else - { - return wxEmptyString; - } -} - -wxString wxLoadFileSelector( const wxChar *what, const wxChar *extension, const wxChar *default_name, wxWindow *parent ) -{ - wxChar *ext = (wxChar *)extension; - - wxChar prompt[50]; - wxString str = _("Load %s file"); - wxSprintf(prompt, str, what); - - if (*ext == _T('.')) ext++; - wxChar wild[60]; - wxSprintf(wild, _T("*.%s"), ext); - - return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent); -} - -wxString wxSaveFileSelector(const wxChar *what, const wxChar *extension, const wxChar *default_name, - wxWindow *parent ) -{ - wxChar *ext = (wxChar *)extension; - - wxChar prompt[50]; - wxString str = _("Save %s file"); - wxSprintf(prompt, str, what); - - if (*ext == _T('.')) ext++; - wxChar wild[60]; - wxSprintf(wild, _T("*.%s"), ext); - - return wxFileSelector (prompt, (const wxChar *) NULL, default_name, ext, wild, 0, parent); -} - diff --git a/src/gtk1/font.cpp b/src/gtk1/font.cpp deleted file mode 100644 index 842c716587..0000000000 --- a/src/gtk1/font.cpp +++ /dev/null @@ -1,1013 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/font.h" -#include "wx/utils.h" -#include "wx/log.h" -#include - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// local data -//----------------------------------------------------------------------------- - -/* -extern wxFontNameDirectory *wxTheFontNameDirectory; -*/ - -//----------------------------------------------------------------------------- -// wxFont -//----------------------------------------------------------------------------- - -class wxFontRefData: public wxObjectRefData -{ -public: - - wxFontRefData(); - wxFontRefData( const wxFontRefData& data ); - ~wxFontRefData(); - - wxList m_scaled_xfonts; - int m_pointSize; - int m_family, m_style, m_weight; - bool m_underlined; - wxString m_faceName; - - bool m_byXFontName; - GdkFont *m_font; - - friend wxFont; -}; - -wxFontRefData::wxFontRefData() : m_scaled_xfonts(wxKEY_INTEGER) -{ - m_byXFontName = FALSE; - m_pointSize = 12; - m_family = wxSWISS; - m_style = wxNORMAL; - m_weight = wxNORMAL; - m_underlined = FALSE; - m_font = (GdkFont *) NULL; -} - -wxFontRefData::wxFontRefData( const wxFontRefData& data ) : m_scaled_xfonts(wxKEY_INTEGER) -{ - m_byXFontName = FALSE; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; - m_font = (GdkFont *) NULL; - if (data.m_font) m_font = gdk_font_ref( data.m_font ); -} - -wxFontRefData::~wxFontRefData() -{ - wxNode *node = m_scaled_xfonts.First(); - while (node) - { - GdkFont *font = (GdkFont*)node->Data(); - wxNode *next = node->Next(); - gdk_font_unref( font ); - node = next; - } - if (m_font) gdk_font_unref( m_font ); -} - -//----------------------------------------------------------------------------- - -#define M_FONTDATA ((wxFontRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) - -wxFont::wxFont() -{ - if (wxTheFontList) wxTheFontList->Append( this ); -} - -wxFont::wxFont( char *xFontName ) -{ - if (!xFontName) return; - - m_refData = new wxFontRefData(); - - M_FONTDATA->m_byXFontName = TRUE; - M_FONTDATA->m_font = gdk_font_load( xFontName ); -} - -wxFont::wxFont( int pointSize, int family, int style, int weight, bool underlined, const wxString& face ) -{ - m_refData = new wxFontRefData(); - - if (family == wxDEFAULT) - M_FONTDATA->m_family = wxSWISS; - else - M_FONTDATA->m_family = family; - - if (!face.IsEmpty()) M_FONTDATA->m_faceName = face; - - if (style == wxDEFAULT) - M_FONTDATA->m_style = wxNORMAL; - else - M_FONTDATA->m_style = style; - - if (weight == wxDEFAULT) - M_FONTDATA->m_weight = wxNORMAL; - else - M_FONTDATA->m_weight = weight; - - if (pointSize == wxDEFAULT) - M_FONTDATA->m_pointSize = 12; - else - M_FONTDATA->m_pointSize = pointSize; - - M_FONTDATA->m_underlined = underlined; - - if (wxTheFontList) wxTheFontList->Append( this ); - -} - -wxFont::wxFont( const wxFont& font ) -{ - Ref( font ); - - if (wxTheFontList) wxTheFontList->Append( this ); -} - -wxFont::~wxFont() -{ - if (wxTheFontList) wxTheFontList->DeleteObject( this ); -} - -wxFont& wxFont::operator = ( const wxFont& font ) -{ - if (*this == font) return (*this); - Ref( font ); - return *this; -} - -bool wxFont::operator == ( const wxFont& font ) const -{ - return m_refData == font.m_refData; -} - -bool wxFont::operator != ( const wxFont& font ) const -{ - return m_refData != font.m_refData; -} - -bool wxFont::Ok() const -{ - return (m_refData != NULL); -} - -int wxFont::GetPointSize() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_pointSize; -} - -wxString wxFont::GetFaceName() const -{ - wxCHECK_MSG( Ok(), _T(""), _T("invalid font") ); - - return M_FONTDATA->m_faceName; -} - -int wxFont::GetFamily() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_family; -} - -wxString wxFont::GetFamilyString() const -{ - wxCHECK_MSG( Ok(), _T("wxDEFAULT"), _T("invalid font") ); - - switch (M_FONTDATA->m_family) - { - case wxDECORATIVE: return wxString(_T("wxDECORATIVE")); - case wxROMAN: return wxString(_T("wxROMAN")); - case wxSCRIPT: return wxString(_T("wxSCRIPT")); - case wxSWISS: return wxString(_T("wxSWISS")); - case wxMODERN: return wxString(_T("wxMODERN")); - case wxTELETYPE: return wxString(_T("wxTELETYPE")); - default: return _T("wxDEFAULT"); - } - - return "wxDEFAULT"; -} - -int wxFont::GetStyle() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_style; -} - -wxString wxFont::GetStyleString() const -{ - wxCHECK_MSG( Ok(), _T("wxDEFAULT"), _T("invalid font") ); - - switch (M_FONTDATA->m_style) - { - case wxNORMAL: return wxString(_T("wxNORMAL")); - case wxSLANT: return wxString(_T("wxSLANT")); - case wxITALIC: return wxString(_T("wxITALIC")); - default: return wxString(_T("wxDEFAULT")); - } - - return wxString(_T("wxDEFAULT")); -} - -int wxFont::GetWeight() const -{ - wxCHECK_MSG( Ok(), 0, _T("invalid font") ); - - return M_FONTDATA->m_weight; -} - -wxString wxFont::GetWeightString() const -{ - wxCHECK_MSG( Ok(), _T("wxDEFAULT"), _T("invalid font") ); - - switch (M_FONTDATA->m_weight) - { - case wxNORMAL: return wxString(_T("wxNORMAL")); - case wxBOLD: return wxString(_T("wxBOLD")); - case wxLIGHT: return wxString(_T("wxLIGHT")); - default: return wxString(_T("wxDEFAULT")); - } - - return wxString(_T("wxDEFAULT")); -} - -bool wxFont::GetUnderlined() const -{ - wxCHECK_MSG( Ok(), FALSE, _T("invalid font") ); - - return M_FONTDATA->m_underlined; -} - -void wxFont::Unshare() -{ - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; -} - -//----------------------------------------------------------------------------- -// get internal representation of font -//----------------------------------------------------------------------------- - -static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, - bool underlined, const wxString &facename ); - -GdkFont *wxFont::GetInternalFont( float scale ) const -{ - if (!Ok()) - { - wxFAIL_MSG( _T("invalid font") ); - return (GdkFont*) NULL; - } - - /* short cut if the special X font constructor has been used */ - if (M_FONTDATA->m_byXFontName) return M_FONTDATA->m_font; - - long int_scale = long(scale * 100.0 + 0.5); /* key for fontlist */ - int point_scale = (M_FONTDATA->m_pointSize * 10 * int_scale) / 100; - GdkFont *font = (GdkFont *) NULL; - - wxNode *node = M_FONTDATA->m_scaled_xfonts.Find(int_scale); - if (node) - { - font = (GdkFont*)node->Data(); - } - else - { -/* - if ((int_scale == 100) && - (M_FONTDATA->m_family == wxSWISS) && - (M_FONTDATA->m_style == wxNORMAL) && - (M_FONTDATA->m_pointSize == 12) && - (M_FONTDATA->m_weight == wxNORMAL) && - (M_FONTDATA->m_underlined == FALSE)) - { - font = gdk_font_load( "-adobe-helvetica-medium-r-normal--*-120-*-*-*-*-*-*" ); - } - else -*/ - { - font = wxLoadQueryNearestFont( point_scale, M_FONTDATA->m_family, M_FONTDATA->m_style, - M_FONTDATA->m_weight, M_FONTDATA->m_underlined, M_FONTDATA->m_faceName ); - } - M_FONTDATA->m_scaled_xfonts.Append( int_scale, (wxObject*)font ); - } - - if (!font) - { - wxLogError(_T("could not load any font")); - } - - return font; -} - -//----------------------------------------------------------------------------- -// local utilities to find a X font -//----------------------------------------------------------------------------- - -static GdkFont*wxLoadQueryFont( int pointSize, int family, int style, int weight, - bool underlined, const wxString &facename ) -{ - wxChar *xfamily = (wxChar*) NULL; - wxChar *xstyle = (wxChar*) NULL; - wxChar *xweight = (wxChar*) NULL; - - switch (family) - { - case wxDECORATIVE: xfamily = _T("lucida"); break; - case wxROMAN: xfamily = _T("times"); break; - case wxMODERN: xfamily = _T("courier"); break; - case wxSWISS: xfamily = _T("helvetica"); break; - case wxTELETYPE: xfamily = _T("lucidatypewriter"); break; - case wxSCRIPT: xfamily = _T("utopia"); break; - default: xfamily = _T("*"); - } - - if (!facename.IsEmpty()) - { - wxSprintf( wxBuffer, _T("-*-%s-*-*-normal-*-*-*-*-*-*-*-*-*"), facename.c_str() ); - GdkFont *test = gdk_font_load( wxConv_libc.cWX2MB(wxBuffer) ); - if (test) - { - gdk_font_unref( test ); - xfamily = WXSTRINGCAST facename; - } - } - - switch (style) - { - case wxITALIC: xstyle = _T("i"); break; - case wxSLANT: xstyle = _T("o"); break; - case wxNORMAL: xstyle = _T("r"); break; - default: xstyle = _T("*"); break; - } - switch (weight) - { - case wxBOLD: xweight = _T("bold"); break; - case wxLIGHT: - case wxNORMAL: xweight = _T("medium"); break; - default: xweight = _T("*"); break; - } - - wxSprintf( wxBuffer, _T("-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*"), - xfamily, xweight, xstyle, pointSize); - - return gdk_font_load( wxConv_libc.cWX2MB(wxBuffer) ); -} - -static GdkFont *wxLoadQueryNearestFont( int point_size, int family, int style, int weight, - bool underlined, const wxString &facename ) -{ - GdkFont *font = wxLoadQueryFont( point_size, family, style, weight, underlined, facename ); - - if (!font) - { - /* search up and down by stepsize 10 */ - int max_size = point_size + 20 * (1 + (point_size/180)); - int min_size = point_size - 20 * (1 + (point_size/180)); - - int i; - - /* Search for smaller size (approx.) */ - for (i=point_size-10; !font && i >= 10 && i >= min_size; i -= 10) - font = wxLoadQueryFont(i, family, style, weight, underlined, facename ); - - /* Search for larger size (approx.) */ - for (i=point_size+10; !font && i <= max_size; i += 10) - font = wxLoadQueryFont( i, family, style, weight, underlined, facename ); - - /* Try default family */ - if (!font && family != wxDEFAULT) - font = wxLoadQueryFont( point_size, wxDEFAULT, style, weight, underlined, facename ); - - /* Bogus font */ - if (!font) - font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, underlined, facename ); - } - - return font; -} - -/* - -//----------------------------------------------------------------------------- -// face names and index functions -//----------------------------------------------------------------------------- - -static char *font_defaults[] = { - "FamilyDefault", "Default", - "FamilyRoman", "Roman", - "FamilyDecorative", "Decorative", - "FamilyModern", "Modern", - "FamilyTeletype", "Teletype", - "FamilySwiss", "Swiss", - "FamilyScript", "Script", - - "AfmMedium", "", - "AfmBold", "Bo", - "AfmLight", "", - "AfmStraight", "", - "AfmItalic", "${AfmSlant}", - "AfmSlant", "O", - "AfmRoman", "Ro", - "AfmTimes", "Times", - "AfmHelvetica", "Helv", - "AfmCourier", "Cour", - - "Afm___", "${AfmTimes,$[weight],$[style]}", - - "AfmTimes__", "${AfmTimes}${Afm$[weight]}${Afm$[style]}", - "AfmTimesMediumStraight", "${AfmTimes}${AfmRoman}", - "AfmTimesLightStraight", "${AfmTimes}${AfmRoman}", - "AfmTimes_Italic", "${AfmTimes}$[weight]${AfmItalic}", - "AfmTimes_Slant", "${AfmTimes}$[weight]${AfmItalic}", - - "AfmSwiss__", "${AfmHelvetica}${Afm$[weight]}${Afm$[style]}", - "AfmModern__", "${AfmCourier}${Afm$[weight]}${Afm$[style]}", - - "AfmTeletype__", "${AfmModern,$[weight],$[style]}", - - "PostScriptMediumStraight", "", - "PostScriptMediumItalic", "-Oblique", - "PostScriptMediumSlant", "-Oblique", - "PostScriptLightStraight", "", - "PostScriptLightItalic", "-Oblique", - "PostScriptLightSlant", "-Oblique", - "PostScriptBoldStraight", "-Bold", - "PostScriptBoldItalic", "-BoldOblique", - "PostScriptBoldSlant", "-BoldOblique", - -#if WX_NORMALIZED_PS_FONTS - "PostScript___", "${PostScriptTimes,$[weight],$[style]}", -#else - "PostScriptRoman__", "${PostScriptTimes,$[weight],$[style]}", - "PostScript___", "LucidaSans${PostScript$[weight]$[style]}", -#endif - - "PostScriptTimesMedium", "", - "PostScriptTimesLight", "", - "PostScriptTimesBold", "Bold", - - "PostScriptTimes__", "Times${PostScript$[weight]$[style]}", - "PostScriptTimesMediumStraight", "Times-Roman", - "PostScriptTimesLightStraight", "Times-Roman", - "PostScriptTimes_Slant", "Times-${PostScriptTimes$[weight]}Italic", - "PostScriptTimes_Italic", "Times-${PostScriptTimes$[weight]}Italic", - - "PostScriptSwiss__", "Helvetica${PostScript$[weight]$[style]}", - "PostScriptModern__", "Courier${PostScript$[weight]$[style]}", - - "PostScriptTeletype__", "${PostScriptModern,$[weight],$[style]}", - -#if !WX_NORMALIZED_PS_FONTS - "PostScriptScript__", "Zapf-Chancery-MediumItalic", -#endif - - "ScreenMedium", "medium", - "ScreenBold", "bold", - "ScreenLight", "light", - "ScreenStraight", "r", - "ScreenItalic", "i", - "ScreenSlant", "o", - - "ScreenDefaultBase", "*-times", - - "ScreenRomanBase", "*-times", - "ScreenDecorativeBase", "*-helvetica", - "ScreenModernBase", "*-courier", - "ScreenTeletypeBase", "*-lucidatypewriter", - "ScreenSwissBase", "*-lucida", - "ScreenScriptBase", "*-zapfchancery", - - "ScreenStdSuffix", "-${Screen$[weight]}-${Screen$[style]}" - "-normal-*-*-%d-*-*-*-*-*-*", - - "Screen___", - "-${ScreenDefaultBase}${ScreenStdSuffix}", - "ScreenRoman__", - "-${ScreenRomanBase}${ScreenStdSuffix}", - "ScreenDecorative__", - "-${ScreenDecorativeBase}${ScreenStdSuffix}", - "ScreenModern__", - "-${ScreenModernBase}${ScreenStdSuffix}", - "ScreenTeletype__", - "-${ScreenTeletypeBase}${ScreenStdSuffix}", - "ScreenSwiss__", - "-${ScreenSwissBase}${ScreenStdSuffix}", - "ScreenScript__", - "-${ScreenScriptBase}${ScreenStdSuffix}", - (char *) NULL -}; - -enum {wxWEIGHT_NORMAL, wxWEIGHT_BOLD, wxWEIGHT_LIGHT, wxNUM_WEIGHTS}; -enum {wxSTYLE_NORMAL, wxSTYLE_ITALIC, wxSTYLE_SLANT, wxNUM_STYLES}; - -static int WCoordinate(int w) -{ - switch (w) - { - case wxBOLD: return wxWEIGHT_BOLD; - case wxLIGHT: return wxWEIGHT_LIGHT; - case wxNORMAL: - default: return wxWEIGHT_NORMAL; - } -}; - -static int SCoordinate(int s) -{ - switch (s) - { - case wxITALIC: return wxSTYLE_ITALIC; - case wxSLANT: return wxSTYLE_SLANT; - case wxNORMAL: - default: return wxSTYLE_NORMAL; - } -}; - -//----------------------------------------------------------------------------- -// wxSuffixMap -//----------------------------------------------------------------------------- - -class wxSuffixMap -{ -public: - ~wxSuffixMap(); - - inline char *GetName(int weight, int style) - { - return ( map [WCoordinate(weight)] [SCoordinate(style)] ); - } - - char *map[wxNUM_WEIGHTS][wxNUM_STYLES]; - void Initialize(const char *, const char *); -}; - -static void SearchResource(const char *prefix, const char **names, int count, char **v) -{ - int k, i, j; - char resource[1024], **defaults, *internal; - - k = 1 << count; - - *v = (char *) NULL; - internal = (char *) NULL; - - for (i = 0; i < k; i++) - { - strcpy(resource, prefix); - for (j = 0; j < count; j++) - { - // upon failure to find a matching fontname - // in the default fonts above, we substitute more - // and more values by _ so that at last ScreenMyFontBoldNormal - // would turn into Screen___ and this will then get - // converted to -${ScreenDefaultBase}${ScreenStdSuffix} - - if (!(i & (1 << j))) - strcat(resource, names[j]); - else - strcat(resource, "_"); - } - - // we previously search the Xt-resources here - - if (!internal) - { - defaults = font_defaults; - while (*defaults) - { - if (!strcmp(*defaults, resource)) - { - internal = defaults[1]; - break; - } - defaults += 2; - } - } - } - - if (internal) - { - if ((strcmp(internal,"-${ScreenDefaultBase}${ScreenStdSuffix}") == 0) && - (strcmp(names[0], "Default") != 0)) - { - // we did not find any font name in the standard list. - // this can (hopefully does) mean that someone supplied - // the facename in the wxFont constructor so we insert - // it here - - strcpy( resource,"-*-" ); // any producer - strcat( resource, names[0] ); // facename - strcat( resource, "${ScreenStdSuffix}" ); // add size params later on - *v = copystring(resource); - } - else - { - *v = copystring(internal); - } - } -} - -wxSuffixMap::~wxSuffixMap() -{ - int k, j; - - for (k = 0; k < wxNUM_WEIGHTS; ++k) - for (j = 0; j < wxNUM_STYLES; ++j) - if (map[k][j]) - { - delete[] map[k][j]; - map[k][j] = (char *) NULL; - } -} - -void wxSuffixMap::Initialize(const char *resname, const char *devresname) -{ - const char *weight, *style; - char *v; - int i, j, k; - const char *names[3]; - - for (k = 0; k < wxNUM_WEIGHTS; k++) - { - switch (k) - { - case wxWEIGHT_NORMAL: weight = "Medium"; break; - case wxWEIGHT_LIGHT: weight = "Light"; break; - case wxWEIGHT_BOLD: - default: weight = "Bold"; - } - for (j = 0; j < wxNUM_STYLES; j++) - { - switch (j) - { - case wxSTYLE_NORMAL: style = "Straight"; break; - case wxSTYLE_ITALIC: style = "Italic"; break; - case wxSTYLE_SLANT: - default: style = "Slant"; - } - names[0] = resname; - names[1] = weight; - names[2] = style; - - SearchResource(devresname, names, 3, &v); - - // Expand macros in the found string: -found: - int len, closer = 0, startpos = 0; - - len = (v ? strlen(v) : 0); - for (i = 0; i < len; i++) - { - if (v[i] == '$' && ((v[i+1] == '[') || (v[i+1] == '{'))) - { - startpos = i; - closer = (v[i+1] == '[') ? ']' : '}'; - ++i; - } - else if (v[i] == closer) - { - int newstrlen; - const char *r = (char *) NULL; bool delete_r = FALSE; - char *name; - - name = v + startpos + 2; - v[i] = 0; - - if (closer == '}') - { - int i, count, len; - char **names; - - for (i = 0, count = 1; name[i]; i++) - if (name[i] == ',') - count++; - - len = i; - - names = new char*[count]; - names[0] = name; - for (i = 0, count = 1; i < len; i++) - if (name[i] == ',') - { - names[count++] = name + i + 1; - name[i] = 0; - } - - SearchResource("", (const char **)names, count, (char **)&r); - delete_r = (r != 0); - delete[] names; - - if (!r) - { - for (i = 0; i < len; i++) - if (!name[i]) - name[i] = ','; - r = ""; - wxLogError( "Bad resource name in font lookup." ); - } - } else if (!strcmp(name, "weight")) { - r = weight; - } else if (!strcmp(name, "style")) { - r = style; - } else if (!strcmp(name, "family")) { - r = resname; - } else { - r = ""; - wxLogError( "Bad font macro name." ); - } - - // add r to v - newstrlen = strlen(r); - char *naya = new char[startpos + newstrlen + len - i]; - memcpy(naya, v, startpos); - memcpy(naya + startpos, r, newstrlen); - memcpy(naya + startpos + newstrlen, v + i + 1, len - i); - if (delete_r) - delete[] (char*)r; - delete[] v; - v = naya; - - goto found; - } - } - // We have a final value: - map[k][j] = v; - } - } -} - -//----------------------------------------------------------------------------- -// wxFontNameItem -//----------------------------------------------------------------------------- - -class wxFontNameItem : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFontNameItem) -public: - wxFontNameItem(const char *name, int id, int family); - ~wxFontNameItem(); - - inline char* GetScreenName(int w, int s) {return screen.GetName(w, s);} - inline char* GetPostScriptName(int w, int s) {return printing.GetName(w, s);} - inline char* GetAFMName(int w, int s) {return afm.GetName(w, s);} - inline char* GetName() {return name;} - inline int GetFamily() {return family;} - inline int GetId() {return id;} - inline bool IsRoman() {return isroman;} -#if defined(__WXDEBUG__) - void Dump(ostream& str); -#endif - - int id; - int family; - char *name; - wxSuffixMap screen, printing, afm; - bool isroman; -}; - -IMPLEMENT_ABSTRACT_CLASS(wxFontNameItem, wxObject) - -wxFontNameItem::wxFontNameItem(const char *Name, int Id, int Family) -{ - name = copystring(Name); - id = Id; - family = Family; - - screen. Initialize(name, "Screen"); - printing.Initialize(name, "PostScript"); - afm. Initialize(name, "Afm"); -} - -wxFontNameItem::~wxFontNameItem() -{ - if (name) - delete[] name; - name = (char *) NULL; -} - -#if defined(__WXDEBUG__) -void wxFontNameItem::Dump(ostream& str) -{ - str << "wxFontNameItem(" << name << ")"; -} -#endif - -//----------------------------------------------------------------------------- -// wxFontDirectory -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject) - -wxFontNameDirectory::wxFontNameDirectory() -{ - table = new wxHashTable(wxKEY_INTEGER, 20); - nextFontId = -1; -} - -wxFontNameDirectory::~wxFontNameDirectory() -{ - // Cleanup wxFontNameItems allocated - table->BeginFind(); - wxNode *node = table->Next(); - while (node) - { - wxFontNameItem *item = (wxFontNameItem*)node->Data(); - delete item; - node = table->Next(); - } - delete table; -} - -int wxFontNameDirectory::GetNewFontId() -{ - return (nextFontId--); -} - -void wxFontNameDirectory::Initialize() -{ - Initialize(wxDEFAULT, wxDEFAULT, "Default"); - Initialize(wxDECORATIVE, wxDECORATIVE, "Decorative"); - Initialize(wxROMAN, wxROMAN, "Roman"); - Initialize(wxMODERN, wxMODERN, "Modern"); - Initialize(wxTELETYPE, wxTELETYPE, "Teletype"); - Initialize(wxSWISS, wxSWISS, "Swiss"); - Initialize(wxSCRIPT, wxSCRIPT, "Script"); -} - -void wxFontNameDirectory::Initialize(int fontid, int family, const char *resname) -{ - char *fam, resource[256]; - - sprintf(resource, "Family%s", resname); - SearchResource((const char *)resource, (const char **) NULL, 0, (char **)&fam); - - if (fam) - { - if (!strcmp(fam, "Default")) family = wxDEFAULT; - else if (!strcmp(fam, "Roman")) family = wxROMAN; - else if (!strcmp(fam, "Decorative")) family = wxDECORATIVE; - else if (!strcmp(fam, "Modern")) family = wxMODERN; - else if (!strcmp(fam, "Teletype")) family = wxTELETYPE; - else if (!strcmp(fam, "Swiss")) family = wxSWISS; - else if (!strcmp(fam, "Script")) family = wxSCRIPT; - delete[] fam; // free resource - } - table->Put(fontid, new wxFontNameItem(resname, fontid, family)); -} - -int wxFontNameDirectory::FindOrCreateFontId(const char *name, int family) -{ - int id; - - // font exists -> return id - if ( (id = GetFontId(name)) ) return id; - - // create new font - Initialize(id=GetNewFontId(), family, name); - return id; -} - -char *wxFontNameDirectory::GetScreenName(int fontid, int weight, int style) -{ - wxFontNameItem *item = (wxFontNameItem*)table->Get(fontid); // find font - if (item) - return item->GetScreenName(weight, style); - - // font does not exist - return (char *) NULL; -} - -char *wxFontNameDirectory::GetPostScriptName(int fontid, int weight, int style) -{ - wxFontNameItem *item = (wxFontNameItem*)table->Get(fontid); // find font - if (item) - return item->GetPostScriptName(weight, style); - - // font does not exist - return (char *) NULL; -} - -char *wxFontNameDirectory::GetAFMName(int fontid, int weight, int style) -{ - wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); // find font - if (item) - return item->GetAFMName(weight, style); - // font does not exist - return (char *) NULL; -} - -char *wxFontNameDirectory::GetFontName(int fontid) -{ - wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); // find font - if (item) - return item->GetName(); - - // font does not exist - return (char *) NULL; -} - -int wxFontNameDirectory::GetFontId(const char *name) -{ - wxNode *node; - - table->BeginFind(); - - while ( (node = table->Next()) ) - { - wxFontNameItem *item = (wxFontNameItem*)node->Data(); - if (!strcmp(name, item->name)) - return item->id; - } - - // font does not exist - return 0; -} - -int wxFontNameDirectory::GetFamily(int fontid) -{ - wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); - - if (item) - return item->family; - - // font does not exist - return wxDEFAULT; -} - -*/ diff --git a/src/gtk1/frame.cpp b/src/gtk1/frame.cpp deleted file mode 100644 index c33bf7f0cf..0000000000 --- a/src/gtk1/frame.cpp +++ /dev/null @@ -1,1016 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/dialog.h" -#include "wx/control.h" -#include "wx/app.h" -#include "wx/menu.h" -#include "wx/toolbar.h" -#include "wx/statusbr.h" -#include "wx/dcclient.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" -#include "gdk/gdkkeysyms.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -const int wxMENU_HEIGHT = 27; -const int wxSTATUS_HEIGHT = 25; -const int wxPLACE_HOLDER = 0; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; - -//----------------------------------------------------------------------------- -// debug -//----------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -extern void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ); - -#endif - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_frame_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - if ((win->m_width != alloc->width) || (win->m_height != alloc->height)) - { - win->m_width = alloc->width; - win->m_height = alloc->height; - win->UpdateSize(); - } -} - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -static gint gtk_frame_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "child_attached" of menu bar -//----------------------------------------------------------------------------- - -static void gtk_menu_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (!win->m_hasVMT) return; - - win->m_menuBarDetached = FALSE; - win->UpdateSize(); -} - -//----------------------------------------------------------------------------- -// "child_detached" of menu bar -//----------------------------------------------------------------------------- - -static void gtk_menu_detached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (!win->m_hasVMT) return; - - win->m_menuBarDetached = TRUE; - win->UpdateSize(); -} - -#if wxUSE_TOOLBAR -//----------------------------------------------------------------------------- -// "child_attached" of tool bar -//----------------------------------------------------------------------------- - -static void gtk_toolbar_attached_callback( GtkWidget *WXUNUSED(widget), GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (!win->m_hasVMT) return; - - win->m_toolBarDetached = FALSE; - - win->UpdateSize(); -} - -//----------------------------------------------------------------------------- -// "child_detached" of tool bar -//----------------------------------------------------------------------------- - -static void gtk_toolbar_detached_callback( GtkWidget *widget, GtkWidget *WXUNUSED(child), wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - win->m_toolBarDetached = TRUE; - win->UpdateSize(); -} -#endif // wxUSE_TOOLBAR - -//----------------------------------------------------------------------------- -// "configure_event" -//----------------------------------------------------------------------------- - -static gint gtk_frame_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *WXUNUSED(event), wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - - int x = 0; - int y = 0; - gdk_window_get_root_origin( win->m_widget->window, &x, &y ); - - win->m_x = x; - win->m_y = y; - - wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() ); - mevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( mevent ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "realize" from m_widget -//----------------------------------------------------------------------------- - -/* we cannot MWM hints and icons before the widget has been realized, - so we do this directly after realization */ - -static gint -gtk_frame_realized_callback( GtkWidget *widget, wxFrame *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - /* all this is for Motif Window Manager "hints" and is supposed to be - recognized by other WM as well. not tested. */ - long decor = (long) GDK_DECOR_BORDER; - long func = (long) GDK_FUNC_MOVE; - - if ((win->GetWindowStyle() & wxCAPTION) != 0) - decor |= GDK_DECOR_TITLE; - if ((win->GetWindowStyle() & wxSYSTEM_MENU) != 0) - { - decor |= GDK_DECOR_MENU; - func |= GDK_FUNC_CLOSE; - } - if ((win->GetWindowStyle() & wxMINIMIZE_BOX) != 0) - { - func |= GDK_FUNC_MINIMIZE; - decor |= GDK_DECOR_MINIMIZE; - } - if ((win->GetWindowStyle() & wxMAXIMIZE_BOX) != 0) - { - func |= GDK_FUNC_MAXIMIZE; - decor |= GDK_DECOR_MAXIMIZE; - } - if ((win->GetWindowStyle() & wxRESIZE_BORDER) != 0) - { - func |= GDK_FUNC_RESIZE; - decor |= GDK_DECOR_RESIZEH; - } - - - gdk_window_set_decorations( win->m_widget->window, (GdkWMDecoration)decor); - gdk_window_set_functions( win->m_widget->window, (GdkWMFunction)func); - - /* GTK's shrinking/growing policy */ - if ((win->GetWindowStyle() & wxRESIZE_BORDER) == 0) - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 0, 0, 1); - else - gtk_window_set_policy(GTK_WINDOW(win->m_widget), 1, 1, 1); - - /* reset the icon */ - if (win->m_icon != wxNullIcon) - { - wxIcon icon( win->m_icon ); - win->m_icon = wxNullIcon; - win->SetIcon( icon ); - } - - /* we set the focus to the child that accepts the focus. this - doesn't really have to be done in "realize" but why not? */ - wxWindowList::Node *node = win->GetChildren().GetFirst(); - while (node) - { - wxWindow *child = node->GetData(); - if (child->AcceptsFocus()) - { - child->SetFocus(); - break; - } - - node = node->GetNext(); - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// InsertChild for wxFrame -//----------------------------------------------------------------------------- - -/* Callback for wxFrame. This very strange beast has to be used because - * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxWindows requires different ways to insert - * a child in container classes. */ - -static void wxInsertChildInFrame( wxFrame* parent, wxWindow* child ) -{ - if (!parent->m_insertInClientArea) - { - /* these are outside the client area */ - wxFrame* frame = (wxFrame*) parent; - gtk_myfixed_put( GTK_MYFIXED(frame->m_mainWidget), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - -#if wxUSE_TOOLBAR - /* we connect to these events for recalculating the client area - space when the toolbar is floating */ - if (wxIS_KIND_OF(child,wxToolBar)) - { - wxToolBar *toolBar = (wxToolBar*) child; - if (toolBar->GetWindowStyle() & wxTB_DOCKABLE) - { - gtk_signal_connect( GTK_OBJECT(toolBar->m_widget), "child_attached", - GTK_SIGNAL_FUNC(gtk_toolbar_attached_callback), (gpointer)parent ); - - gtk_signal_connect( GTK_OBJECT(toolBar->m_widget), "child_detached", - GTK_SIGNAL_FUNC(gtk_toolbar_detached_callback), (gpointer)parent ); - } - } -#endif // wxUSE_TOOLBAR - } - else - { - /* these are inside the client area */ - gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - } - - /* resize on OnInternalIdle */ - parent->UpdateSize(); -} - -//----------------------------------------------------------------------------- -// wxFrame -//----------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_CLOSE(wxFrame::OnCloseWindow) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame,wxWindow) - -void wxFrame::Init() -{ - m_frameMenuBar = (wxMenuBar *) NULL; -#if wxUSE_STATUSBAR - m_frameStatusBar = (wxStatusBar *) NULL; -#endif // wxUSE_STATUSBAR -#if wxUSE_TOOLBAR - m_frameToolBar = (wxToolBar *) NULL; -#endif // wxUSE_TOOLBAR - m_sizeSet = FALSE; - m_miniEdge = 0; - m_miniTitle = 0; - m_mainWidget = (GtkWidget*) NULL; - m_menuBarDetached = FALSE; - m_toolBarDetached = FALSE; - m_insertInClientArea = TRUE; -} - -wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Init(); - - Create( parent, id, title, pos, size, style, name ); -} - -bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - wxTopLevelWindows.Append( this ); - - m_needParent = FALSE; - - PreCreation( parent, id, pos, size, style, name ); - - m_title = title; - - m_insertCallback = (wxInsertChildFunction) wxInsertChildInFrame; - - GtkWindowType win_type = GTK_WINDOW_TOPLEVEL; - if (style & wxSIMPLE_BORDER) win_type = GTK_WINDOW_POPUP; - - m_widget = gtk_window_new( win_type ); - - if (!name.IsEmpty()) - gtk_window_set_wmclass( GTK_WINDOW(m_widget), name.mb_str(), name.mb_str() ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxFrame::m_widget"), name ); -#endif - - gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() ); - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_frame_delete_callback), (gpointer)this ); - - /* m_mainWidget holds the toolbar, the menubar and the client area */ - m_mainWidget = gtk_myfixed_new(); - gtk_widget_show( m_mainWidget ); - GTK_WIDGET_UNSET_FLAGS( m_mainWidget, GTK_CAN_FOCUS ); - gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_mainWidget, _T("wxFrame::m_mainWidget"), name ); -#endif - - /* m_wxwindow only represents the client area without toolbar and menubar */ - m_wxwindow = gtk_myfixed_new(); - gtk_widget_show( m_wxwindow ); - gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_wxwindow, _T("wxFrame::m_wxwindow"), name ); -#endif - - /* we donm't allow the frame to get the focus as otherwise - the frame will grabit at arbitrary fcous changes. */ - GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - - if (m_parent) m_parent->AddChild( this ); - - PostCreation(); - - /* we cannot set MWM hints and icons before the widget has - been realized, so we do this directly after realization */ - gtk_signal_connect( GTK_OBJECT(m_widget), "realize", - GTK_SIGNAL_FUNC(gtk_frame_realized_callback), (gpointer) this ); - - /* the user resized the frame by dragging etc. */ - gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this ); - - /* the only way to get the window size is to connect to this event */ - gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", - GTK_SIGNAL_FUNC(gtk_frame_configure_callback), (gpointer)this ); - - return TRUE; -} - -wxFrame::~wxFrame() -{ - m_isBeingDeleted = TRUE; - - if (m_frameMenuBar) delete m_frameMenuBar; - m_frameMenuBar = (wxMenuBar *) NULL; - -#if wxUSE_STATUSBAR - if (m_frameStatusBar) delete m_frameStatusBar; - m_frameStatusBar = (wxStatusBar *) NULL; -#endif // wxUSE_STATUSBAR - -#if wxUSE_TOOLBAR - if (m_frameToolBar) delete m_frameToolBar; - m_frameToolBar = (wxToolBar *) NULL; -#endif // wxUSE_TOOLBAR - - wxTopLevelWindows.DeleteObject( this ); - - if (wxTheApp->GetTopWindow() == this) - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - - if (wxTopLevelWindows.Number() == 0) - wxTheApp->ExitMainLoop(); -} - -bool wxFrame::Show( bool show ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - if (show && !m_sizeSet) - { - /* by calling GtkOnSize here, we don't have to call - either after showing the frame, which would entail - much ugly flicker or from within the size_allocate - handler, because GTK 1.1.X forbids that. */ - - GtkOnSize( m_x, m_y, m_width, m_height ); - } - - return wxWindow::Show( show ); -} - -bool wxFrame::Destroy() -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - if (!wxPendingDelete.Member(this)) wxPendingDelete.Append(this); - - return TRUE; -} - -void wxFrame::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - /* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */ - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid frame") ); - - /* avoid recursions */ - if (m_resizing) return; - m_resizing = TRUE; - - int old_x = m_x; - int old_y = m_y; - int old_width = m_width; - int old_height = m_height; - - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - if ((m_x != -1) || (m_y != -1)) - { - if ((m_x != old_x) || (m_y != old_y)) - { - gtk_widget_set_uposition( m_widget, m_x, m_y ); - } - } - - if ((m_width != old_width) || (m_height != old_height)) - { - /* we set the size in GtkOnSize, i.e. mostly the actual resizing is - done either directly before the frame is shown or in idle time - so that different calls to SetSize() don't lead to flicker. */ - m_sizeSet = FALSE; - } - - m_resizing = FALSE; -} - -void wxFrame::Centre( int direction ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - int x = 0; - int y = 0; - - if ((direction & wxHORIZONTAL) == wxHORIZONTAL) x = (gdk_screen_width () - m_width) / 2; - if ((direction & wxVERTICAL) == wxVERTICAL) y = (gdk_screen_height () - m_height) / 2; - - Move( x, y ); -} - -void wxFrame::DoGetClientSize( int *width, int *height ) const -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxWindow::DoGetClientSize( width, height ); - if (height) - { - /* menu bar */ - if (m_frameMenuBar) - { - if (!m_menuBarDetached) - (*height) -= wxMENU_HEIGHT; - else - (*height) -= wxPLACE_HOLDER; - } - - /* status bar */ - if (m_frameStatusBar) (*height) -= wxSTATUS_HEIGHT; - - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - (*height) -= y; - } - else - (*height) -= wxPLACE_HOLDER; - } - - /* mini edge */ - (*height) -= m_miniEdge*2 + m_miniTitle; - } - if (width) - { - (*width) -= m_miniEdge*2; - } -} - -void wxFrame::DoSetClientSize( int width, int height ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - /* menu bar */ - if (m_frameMenuBar) - { - if (!m_menuBarDetached) - height += wxMENU_HEIGHT; - else - height += wxPLACE_HOLDER; - } - - /* status bar */ - if (m_frameStatusBar) height += wxSTATUS_HEIGHT; - - /* tool bar */ - if (m_frameToolBar) - { - if (!m_toolBarDetached) - { - int y = 0; - m_frameToolBar->GetSize( (int *) NULL, &y ); - height += y; - } - else - height += wxPLACE_HOLDER; - } - - wxWindow::DoSetClientSize( width + m_miniEdge*2, height + m_miniEdge*2 + m_miniTitle ); -} - -void wxFrame::GtkOnSize( int WXUNUSED(x), int WXUNUSED(y), int width, int height ) -{ - // due to a bug in gtk, x,y are always 0 - // m_x = x; - // m_y = y; - - /* avoid recursions */ - if (m_resizing) return; - m_resizing = TRUE; - - /* this shouldn't happen: wxFrame, wxMDIParentFrame and wxMDIChildFrame have m_wxwindow */ - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid frame") ); - - m_width = width; - m_height = height; - - /* space occupied by m_frameToolBar and m_frameMenuBar */ - int client_area_y_offset = 0; - - /* wxMDIChildFrame derives from wxFrame but it _is_ a wxWindow as it uses - wxWindow::Create to create it's GTK equivalent. m_mainWidget is only - set in wxFrame::Create so it is used to check what kind of frame we - have here. if m_mainWidget is NULL it is a wxMDIChildFrame and so we - skip the part which handles m_frameMenuBar, m_frameToolBar and (most - importantly) m_mainWidget */ - - if (m_mainWidget) - { - /* check if size is in legal range */ - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - /* I revert back to wxGTK's original behaviour. m_mainWidget holds the - * menubar, the toolbar and the client area, which is represented by - * m_wxwindow. - * this hurts in the eye, but I don't want to call SetSize() - * because I don't want to call any non-native functions here. */ - - if (m_frameMenuBar) - { - int xx = m_miniEdge; - int yy = m_miniEdge + m_miniTitle; - int ww = m_width - 2*m_miniEdge; - int hh = wxMENU_HEIGHT; - if (m_menuBarDetached) hh = wxPLACE_HOLDER; - m_frameMenuBar->m_x = xx; - m_frameMenuBar->m_y = yy; - m_frameMenuBar->m_width = ww; - m_frameMenuBar->m_height = hh; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_frameMenuBar->m_widget, - xx, yy, ww, hh ); - client_area_y_offset += hh; - } - - if (m_frameToolBar) - { - int xx = m_miniEdge; - int yy = m_miniEdge + m_miniTitle; - if (m_frameMenuBar) - { - if (!m_menuBarDetached) - yy += wxMENU_HEIGHT; - else - yy += wxPLACE_HOLDER; - } - int ww = m_width - 2*m_miniEdge; - int hh = m_frameToolBar->m_height; - if (m_toolBarDetached) hh = wxPLACE_HOLDER; - m_frameToolBar->m_x = xx; - m_frameToolBar->m_y = yy; - /* m_frameToolBar->m_height = hh; don't change the toolbar's height */ - m_frameToolBar->m_width = ww; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_frameToolBar->m_widget, - xx, yy, ww, hh ); - client_area_y_offset += hh; - } - - int client_x = m_miniEdge; - int client_y = client_area_y_offset + m_miniEdge + m_miniTitle; - int client_w = m_width - 2*m_miniEdge; - int client_h = m_height - client_area_y_offset- 2*m_miniEdge - m_miniTitle; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_wxwindow, - client_x, client_y, client_w, client_h ); - } - else - { - /* if there is no m_mainWidget between m_widget and m_wxwindow there - is no need to set the size or position of m_wxwindow. */ - } - - if (m_frameStatusBar) - { - int xx = 0 + m_miniEdge; - int yy = m_height - wxSTATUS_HEIGHT - m_miniEdge - client_area_y_offset; - int ww = m_width - 2*m_miniEdge; - int hh = wxSTATUS_HEIGHT; - m_frameStatusBar->m_x = xx; - m_frameStatusBar->m_y = yy; - m_frameStatusBar->m_width = ww; - m_frameStatusBar->m_height = hh; - gtk_myfixed_set_size( GTK_MYFIXED(m_wxwindow), - m_frameStatusBar->m_widget, - xx, yy, ww, hh ); - } - - /* we actually set the size of a frame here and no-where else */ - gtk_widget_set_usize( m_widget, m_width, m_height ); - - m_sizeSet = TRUE; - - /* send size event to frame */ - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - - /* send size event to status bar */ - if (m_frameStatusBar) - { - wxSizeEvent event2( wxSize(m_frameStatusBar->m_width,m_frameStatusBar->m_height), m_frameStatusBar->GetId() ); - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->GetEventHandler()->ProcessEvent( event2 ); - } - - m_resizing = FALSE; -} - -void wxFrame::MakeModal( bool modal ) -{ - if (modal) - gtk_grab_add( m_widget ); - else - gtk_grab_remove( m_widget ); -} - -void wxFrame::OnInternalIdle() -{ - if (!m_sizeSet && GTK_WIDGET_REALIZED(m_wxwindow)) - GtkOnSize( m_x, m_y, m_width, m_height ); - - DoMenuUpdates(); - - if (m_frameMenuBar) m_frameMenuBar->OnInternalIdle(); - if (m_frameToolBar) m_frameToolBar->OnInternalIdle(); - if (m_frameStatusBar) m_frameStatusBar->OnInternalIdle(); -} - -void wxFrame::OnCloseWindow( wxCloseEvent& WXUNUSED(event) ) -{ - Destroy(); -} - -void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - { - Layout(); - } - else -#endif // wxUSE_CONSTRAINTS - { - /* do we have exactly one child? */ - wxWindow *child = (wxWindow *)NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !wxIS_KIND_OF(win,wxFrame) && !wxIS_KIND_OF(win,wxDialog) ) - { - if (child) - { - /* it's the second one: do nothing */ - return; - } - - child = win; - } - } - - /* no children at all? */ - if (child) - { - /* yes: set it's size to fill all the frame */ - int client_x, client_y; - DoGetClientSize( &client_x, &client_y ); - child->SetSize( 1, 1, client_x-2, client_y-2 ); - } - } -} - -void wxFrame::SetMenuBar( wxMenuBar *menuBar ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - wxASSERT_MSG( (m_wxwindow != NULL), _T("invalid frame") ); - - m_frameMenuBar = menuBar; - - if (m_frameMenuBar) - { - m_frameMenuBar->SetInvokingWindow( this ); - - if (m_frameMenuBar->GetParent() != this) - { - m_frameMenuBar->SetParent(this); - gtk_myfixed_put( GTK_MYFIXED(m_mainWidget), - m_frameMenuBar->m_widget, - m_frameMenuBar->m_x, - m_frameMenuBar->m_y, - m_frameMenuBar->m_width, - m_frameMenuBar->m_height ); - - if (menuBar->GetWindowStyle() & wxMB_DOCKABLE) - { - gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_attached", - GTK_SIGNAL_FUNC(gtk_menu_attached_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(menuBar->m_widget), "child_detached", - GTK_SIGNAL_FUNC(gtk_menu_detached_callback), (gpointer)this ); - } - - m_frameMenuBar->Show( TRUE ); - } - } - - /* resize window in OnInternalIdle */ - m_sizeSet = FALSE; -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ -#if wxUSE_STATUSBAR - if (GetStatusBar()) - { - // if no help string found, we will clear the status bar text - wxString helpString; - - int menuId = event.GetMenuId(); - if ( menuId != -1 ) - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - helpString = menuBar->GetHelpString(menuId); - } - } - - SetStatusText(helpString); - } -#endif // wxUSE_STATUSBAR -} - -#if wxUSE_TOOLBAR -wxToolBar* wxFrame::CreateToolBar( long style, wxWindowID id, const wxString& name ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, _T("recreating toolbar in wxFrame") ); - - m_insertInClientArea = FALSE; - - m_frameToolBar = OnCreateToolBar( style, id, name ); - - if (m_frameToolBar) GetChildren().DeleteObject( m_frameToolBar ); - - m_insertInClientArea = TRUE; - - m_sizeSet = FALSE; - - return m_frameToolBar; -} - -wxToolBar* wxFrame::OnCreateToolBar( long style, wxWindowID id, const wxString& name ) -{ - return new wxToolBar( this, id, wxDefaultPosition, wxDefaultSize, style, name ); -} - -wxToolBar *wxFrame::GetToolBar() const -{ - return m_frameToolBar; -} -#endif // wxUSE_TOOLBAR - -#if wxUSE_STATUSBAR -wxStatusBar* wxFrame::CreateStatusBar( int number, long style, wxWindowID id, const wxString& name ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, _T("recreating status bar in wxFrame") ); - - m_frameStatusBar = OnCreateStatusBar( number, style, id, name ); - - m_sizeSet = FALSE; - - return m_frameStatusBar; -} - -wxStatusBar *wxFrame::OnCreateStatusBar( int number, long style, wxWindowID id, const wxString& name ) -{ - wxStatusBar *statusBar = (wxStatusBar *) NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont( statusBar->GetFont() ); - - long x, y; - dc.GetTextExtent( "X", &x, &y ); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize( -1, -1, 100, height ); - - statusBar->SetFieldsCount( number ); - return statusBar; -} - -wxStatusBar *wxFrame::GetStatusBar() const -{ - return m_frameStatusBar; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_RET( m_frameStatusBar != NULL, _T("no statusbar to set text for") ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[] ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - wxCHECK_RET( m_frameStatusBar != NULL, _T("no statusbar to set widths for") ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); -} -#endif // wxUSE_STATUSBAR - -void wxFrame::Command( int id ) -{ - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar(); - if (!bar) return; - - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } - - wxEvtHandler* evtHandler = GetEventHandler(); - - evtHandler->ProcessEvent(commandEvent); -} - -void wxFrame::SetTitle( const wxString &title ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - m_title = title; - if (m_title.IsNull()) m_title = _T(""); - gtk_window_set_title( GTK_WINDOW(m_widget), title.mbc_str() ); -} - -void wxFrame::SetIcon( const wxIcon &icon ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid frame") ); - - m_icon = icon; - if (!icon.Ok()) return; - - if (!m_widget->window) return; - - wxMask *mask = icon.GetMask(); - GdkBitmap *bm = (GdkBitmap *) NULL; - if (mask) bm = mask->GetBitmap(); - - gdk_window_set_icon( m_widget->window, (GdkWindow *) NULL, icon.GetPixmap(), bm ); -} - diff --git a/src/gtk1/gauge.cpp b/src/gtk1/gauge.cpp deleted file mode 100644 index ff974edef9..0000000000 --- a/src/gtk1/gauge.cpp +++ /dev/null @@ -1,80 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxGauge -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxGauge,wxControl) - -bool wxGauge::Create( wxWindow *parent, wxWindowID id, int range, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_rangeMax = range; - m_gaugePos = 0; - m_useProgressBar = TRUE; - - m_widget = gtk_progress_bar_new(); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -void wxGauge::SetRange( int r ) -{ - m_rangeMax = r; - if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax; - - gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax ); -} - -void wxGauge::SetValue( int pos ) -{ - m_gaugePos = pos; - if (m_gaugePos > m_rangeMax) m_gaugePos = m_rangeMax; - - gtk_progress_bar_update( GTK_PROGRESS_BAR(m_widget), ((float)m_gaugePos)/m_rangeMax ); -} - -int wxGauge::GetRange(void) const -{ - return m_rangeMax; -} - -int wxGauge::GetValue(void) const -{ - return m_gaugePos; -} - -void wxGauge::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - diff --git a/src/gtk1/gdiobj.cpp b/src/gtk1/gdiobj.cpp deleted file mode 100644 index fe9fc047c7..0000000000 --- a/src/gtk1/gdiobj.cpp +++ /dev/null @@ -1,19 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: Julian Smart -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - diff --git a/src/gtk1/horiz.xbm b/src/gtk1/horiz.xbm deleted file mode 100644 index ff3309bcc4..0000000000 --- a/src/gtk1/horiz.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define horiz_width 15 -#define horiz_height 15 -static char horiz_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00}; diff --git a/src/gtk1/icon.cpp b/src/gtk1/icon.cpp deleted file mode 100644 index a372cb9869..0000000000 --- a/src/gtk1/icon.cpp +++ /dev/null @@ -1,47 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" - -//----------------------------------------------------------------------------- -// wxIcon -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxIcon,wxBitmap) - -wxIcon::wxIcon( const char **bits, int WXUNUSED(width), int WXUNUSED(height) ) : - wxBitmap( bits ) -{ -} - -wxIcon::wxIcon( char **bits, int WXUNUSED(width), int WXUNUSED(height) ) : - wxBitmap( bits ) -{ -} - -wxIcon::wxIcon() : wxBitmap() -{ -} - -wxIcon::wxIcon( const wxIcon& icon ) : wxBitmap() -{ - Ref(icon); -} - -wxIcon& wxIcon::operator = ( const wxIcon& icon ) -{ - if (*this == icon) return (*this); - Ref(icon); - return *this; -} - diff --git a/src/gtk1/joystick.cpp b/src/gtk1/joystick.cpp deleted file mode 100644 index 0b7cf394f4..0000000000 --- a/src/gtk1/joystick.cpp +++ /dev/null @@ -1,357 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: Ported to Linux by Guilhem Lavaux -// Modified by: -// Created: 05/23/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include "wx/event.h" -#include "wx/window.h" -#include "wx/gtk/joystick.h" - -#define JOYSTICK_AXE_MAX 32767 -#define JOYSTICK_AXE_MIN -32767 - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -wxJoystick::wxJoystick(int joystick) -{ - wxString dev_name; - // Assume it's the same device name on all Linux systems ... - dev_name.Printf("/dev/js%d", (joystick == wxJOYSTICK1) ? 0 : 1); - - m_joystick = open(dev_name, O_RDWR); - m_lastposition = wxPoint(-1, -1); - for (int i=0;i<15;i++) - m_axe[i] = 0; - if (m_joystick != -1) - Create(); -} - -//////////////////////////////////////////////////////////////////////////// -// Background thread -//////////////////////////////////////////////////////////////////////////// -void *wxJoystick::Entry(void) -{ - struct js_event j_evt; - wxJoystickEvent jwx_event; - fd_set read_fds; - struct timeval time_out = {0, 0}; - - FD_ZERO(&read_fds); - while (1) { - TestDestroy(); - - if (m_polling) { - FD_SET(m_joystick, &read_fds); - select(m_joystick+1, &read_fds, NULL, NULL, &time_out); - if (FD_ISSET(m_joystick, &read_fds)) - read(m_joystick, &j_evt, sizeof(j_evt)); - else - j_evt.type = 0; - } else { - read(m_joystick, &j_evt, sizeof(j_evt)); - } - - if ((j_evt.type & JS_EVENT_AXIS) == JS_EVENT_AXIS) { - switch (j_evt.number) { - case 1: - m_lastposition.x = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_MOVE); - break; - case 2: - m_lastposition.y = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_MOVE); - break; - case 3: - m_axe[3] = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_ZMOVE); - break; - default: - m_axe[j_evt.number] = j_evt.value; - jwx_event.SetEventType(wxEVT_JOY_MOVE); - break; - } - jwx_event.SetPosition(m_lastposition); - jwx_event.SetZPosition(m_axe[3]); - } - if ((j_evt.type & JS_EVENT_BUTTON) == JS_EVENT_BUTTON) { - register int mask = 1 << j_evt.number; - char button = m_buttons & mask; - - m_buttons &= ~mask; - if (button) { - jwx_event.SetEventType(wxEVT_JOY_BUTTON_UP); - } else { - jwx_event.SetEventType(wxEVT_JOY_BUTTON_DOWN); - m_buttons |= mask; - } - - jwx_event.SetButtonState(m_buttons); - jwx_event.SetButtonChange(j_evt.number); - } - } - if (m_catchwin) - m_catchwin->ProcessEvent(jwx_event); - if (m_polling) - usleep(m_polling*1000); -} - -//////////////////////////////////////////////////////////////////////////// -// State -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition(void) const -{ - return m_lastposition; -} - -int wxJoystick::GetZPosition(void) const -{ - return m_axe[3]; -} - -int wxJoystick::GetButtonState(void) const -{ - return m_buttons; -} - -int wxJoystick::GetPOVPosition(void) const -{ - return 0; -} - -int wxJoystick::GetPOVCTSPosition(void) const -{ - return 0; -} - -int wxJoystick::GetRudderPosition(void) const -{ - return m_axe[4]; -} - -int wxJoystick::GetUPosition(void) const -{ - return m_axe[5]; -} - -int wxJoystick::GetVPosition(void) const -{ - return m_axe[6]; -} - -int wxJoystick::GetMovementThreshold(void) const -{ - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ -} - -//////////////////////////////////////////////////////////////////////////// -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk(void) const -{ - return (m_joystick != -1); -} - -int wxJoystick::GetNumberJoysticks(void) const -{ - wxString dev_name; - int fd, j; - - for (j=0;j<2;j++) { - dev_name.Printf("/dev/js%d", j); - fd = open(dev_name, O_RDONLY); - if (fd == -1) - return j; - close(fd); - } - return j; -} - -int wxJoystick::GetManufacturerId(void) const -{ - return 0; -} - -int wxJoystick::GetProductId(void) const -{ - return 0; -} - -wxString wxJoystick::GetProductName(void) const -{ - return ""; -} - -int wxJoystick::GetXMin(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetYMin(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetZMin(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetXMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetYMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetZMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetNumberButtons(void) const -{ - int nb; - - ioctl(m_joystick, JSIOCGBUTTONS, &nb); - - return nb; -} - -int wxJoystick::GetNumberAxes(void) const -{ - int nb; - - ioctl(m_joystick, JSIOCGAXES, &nb); - - return nb; -} - -int wxJoystick::GetMaxButtons(void) const -{ - return 15; // internal -} - -int wxJoystick::GetMaxAxes(void) const -{ - return 15; // internal -} - -int wxJoystick::GetPollingMin(void) const -{ - return -1; -} - -int wxJoystick::GetPollingMax(void) const -{ - return -1; -} - -int wxJoystick::GetRudderMin(void) const -{ - return JOYSTICK_AXE_MIN; -} - -int wxJoystick::GetRudderMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetUMin(void) const -{ - return JOYSTICK_AXE_MIN; -} - -int wxJoystick::GetUMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -int wxJoystick::GetVMin(void) const -{ - return JOYSTICK_AXE_MIN; -} - -int wxJoystick::GetVMax(void) const -{ - return JOYSTICK_AXE_MAX; -} - -bool wxJoystick::HasRudder(void) const -{ - return GetNumberAxes() >= 4; -} - -bool wxJoystick::HasZ(void) const -{ - return GetNumberAxes() >= 3; -} - -bool wxJoystick::HasU(void) const -{ - return GetNumberAxes() >= 5; -} - -bool wxJoystick::HasV(void) const -{ - return GetNumberAxes() >= 6; -} - -bool wxJoystick::HasPOV(void) const -{ - return FALSE; -} - -bool wxJoystick::HasPOV4Dir(void) const -{ - return FALSE; -} - -bool wxJoystick::HasPOVCTS(void) const -{ - return FALSE; -} - -//////////////////////////////////////////////////////////////////////////// -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq = 0) -{ - m_catchwin = win; - m_polling = pollingFreq; - return TRUE; -} - -bool wxJoystick::ReleaseCapture(void) -{ - m_catchwin = NULL; - m_polling = 0; - return TRUE; -} - diff --git a/src/gtk1/listbox.cpp b/src/gtk1/listbox.cpp deleted file mode 100644 index d529cd1669..0000000000 --- a/src/gtk1/listbox.cpp +++ /dev/null @@ -1,942 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "listbox.h" -#endif - -#include "wx/dynarray.h" -#include "wx/listbox.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/checklst.h" -#include "wx/settings.h" - -#if wxUSE_TOOLTIPS -#include "wx/tooltip.h" -#endif - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//------------------------------------------------------------------------- -// conditional compilation -//------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION > 0) - #define NEW_GTK_SCROLL_CODE -#endif - -//----------------------------------------------------------------------------- -// private functions -//----------------------------------------------------------------------------- - -#if wxUSE_CHECKLISTBOX - -#define CHECKBOX_STRING "[-] " - -// checklistboxes have "[±] " prepended to their lables, this macro removes it -// (NB: 4 below is the length of CHECKBOX_STRING above) -// -// the argument to it is a "const char *" pointer -#define GET_REAL_LABEL(label) ((m_hasCheckBoxes)?(label)+4 : (label)) - -#else // !wxUSE_CHECKLISTBOX - -#define GET_REAL_LABEL(label) (label) - -#endif // wxUSE_CHECKLISTBOX - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; - -static bool g_hasDoubleClicked = FALSE; - -//----------------------------------------------------------------------------- -// "button_release_event" -//----------------------------------------------------------------------------- - -/* we would normally emit a wxEVT_COMMAND_LISTBOX_DOUBLECLICKED event once - a GDK_2BUTTON_PRESS occurs, but this has the particular problem of the - listbox keeping the focus until it receives a GDK_BUTTON_RELEASE event. - this can lead to race conditions so that we emit the dclick event - after the GDK_BUTTON_RELEASE event after the GDK_2BUTTON_PRESS event */ - -static gint -gtk_listbox_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!listbox->m_hasVMT) return FALSE; - - if (!g_hasDoubleClicked) return FALSE; - - wxCommandEvent event( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, listbox->GetId() ); - event.SetEventObject( listbox ); - - wxArrayInt aSelections; - int count = listbox->GetSelections(aSelections); - if ( count > 0 ) - { - event.m_commandInt = aSelections[0] ; - event.m_clientData = listbox->GetClientData( event.m_commandInt ); - wxString str(listbox->GetString(event.m_commandInt)); - if (!str.IsEmpty()) event.m_commandString = str; - } - else - { - event.m_commandInt = -1 ; - event.m_commandString.Empty(); - } - - listbox->GetEventHandler()->ProcessEvent( event ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_listbox_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!listbox->m_hasVMT) return FALSE; - - int sel = listbox->GetIndex( widget ); - -#if wxUSE_CHECKLISTBOX - if ((listbox->m_hasCheckBoxes) && (gdk_event->x < 15) && (gdk_event->type != GDK_2BUTTON_PRESS)) - { - wxCheckListBox *clb = (wxCheckListBox *)listbox; - - clb->Check( sel, !clb->IsChecked(sel) ); - - wxCommandEvent event( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, listbox->GetId() ); - event.SetEventObject( listbox ); - event.SetInt( sel ); - listbox->GetEventHandler()->ProcessEvent( event ); - } -#endif // wxUSE_CHECKLISTBOX - - /* emit wxEVT_COMMAND_LISTBOX_DOUBLECLICKED later */ - g_hasDoubleClicked = (gdk_event->type == GDK_2BUTTON_PRESS); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "key_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_listbox_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - - if (!listbox->m_hasVMT) return FALSE; - - if (gdk_event->keyval != ' ') return FALSE; - -#if wxUSE_CHECKLISTBOX - int sel = listbox->GetIndex( widget ); - - wxCheckListBox *clb = (wxCheckListBox *)listbox; - - clb->Check( sel, !clb->IsChecked(sel) ); - - wxCommandEvent event( wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, listbox->GetId() ); - event.SetEventObject( listbox ); - event.SetInt( sel ); - listbox->GetEventHandler()->ProcessEvent( event ); -#endif // wxUSE_CHECKLISTBOX - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "select" and "deselect" -//----------------------------------------------------------------------------- - -static void gtk_listitem_select_callback( GtkWidget *WXUNUSED(widget), wxListBox *listbox ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!listbox->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, listbox->GetId() ); - - wxArrayInt aSelections; - int count = listbox->GetSelections(aSelections); - if ( count > 0 ) - { - event.m_commandInt = aSelections[0] ; - event.m_clientData = listbox->GetClientData( event.m_commandInt ); - wxString str(listbox->GetString(event.m_commandInt)); - if (!str.IsEmpty()) event.m_commandString = str; - } - else - { - event.m_commandInt = -1 ; - event.m_commandString.Empty(); - } - - event.SetEventObject( listbox ); - - listbox->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxListBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxListBox,wxControl) - -wxListBox::wxListBox() -{ - m_list = (GtkList *) NULL; -#if wxUSE_CHECKLISTBOX - m_hasCheckBoxes = FALSE; -#endif // wxUSE_CHECKLISTBOX -} - -bool wxListBox::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - int n, const wxString choices[], - long style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_scrolled_window_new( (GtkAdjustment*) NULL, (GtkAdjustment*) NULL ); - if (style & wxLB_ALWAYS_SB) - { - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS ); - } - else - { - gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); - } - - m_list = GTK_LIST( gtk_list_new() ); - - GtkSelectionMode mode = GTK_SELECTION_BROWSE; - if (style & wxLB_MULTIPLE) - mode = GTK_SELECTION_MULTIPLE; - else if (style & wxLB_EXTENDED) - mode = GTK_SELECTION_EXTENDED; - - gtk_list_set_selection_mode( GTK_LIST(m_list), mode ); - -#ifdef NEW_GTK_SCROLL_CODE - gtk_scrolled_window_add_with_viewport( GTK_SCROLLED_WINDOW(m_widget), GTK_WIDGET(m_list) ); -#else - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_list) ); -#endif - - gtk_widget_show( GTK_WIDGET(m_list) ); - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = 100; - if (newSize.y == -1) newSize.y = 110; - SetSize( newSize.x, newSize.y ); - - for (int i = 0; i < n; i++) - { - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - GtkWidget *list_item; - - wxString str(choices[i]); -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - str.Prepend(CHECKBOX_STRING); - } -#endif // wxUSE_CHECKLISTBOX - - list_item = gtk_list_item_new_with_label( str.mbc_str() ); - - gtk_container_add( GTK_CONTAINER(m_list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (style & wxLB_MULTIPLE) - gtk_signal_connect( GTK_OBJECT(list_item), "deselect", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(list_item), - "button_press_event", - (GtkSignalFunc)gtk_listbox_button_press_callback, - (gpointer) this ); - - gtk_signal_connect_after( GTK_OBJECT(list_item), - "button_release_event", - (GtkSignalFunc)gtk_listbox_button_release_callback, - (gpointer) this ); - -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - gtk_signal_connect( GTK_OBJECT(list_item), - "key_press_event", - (GtkSignalFunc)gtk_listbox_key_press_callback, - (gpointer)this ); - } -#endif // wxUSE_CHECKLISTBOX - - ConnectWidget( list_item ); - - gtk_widget_show( list_item ); - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_WINDOW ) ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxListBox::~wxListBox() -{ - Clear(); -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GList *children = m_list->children; - int length = g_list_length(children); - wxCHECK_RET( pos <= length, _T("invalid index in wxListBox::InsertItems") ); - - // VZ: it seems that GTK 1.0.6 doesn't has a function to insert an item - // into a listbox at the given position, this is why we first delete - // all items after this position, then append these items and then - // reappend back the old ones. - - // first detach the old items - int n; // loop var - - if ( pos == length ) - { - // no need to do anything complicated - for ( n = 0; n < nItems; n++ ) - { - Append(items[n]); - } - - return; - } - - wxArrayString deletedLabels; - wxArrayPtrVoid deletedData; - wxArrayInt deletedChecks; // only for check list boxes - - GList *child = g_list_nth( children, pos ); - for ( n = 0; child != NULL; n++, child = child->next ) - { - // save label - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str(GET_REAL_LABEL(label->label)); - deletedLabels.Add(str); - - // save data - void *clientData = NULL; - wxNode *node = NULL; - - if ( n < (int)m_clientObjectList.GetCount() ) - node = m_clientObjectList.Nth( n ); - - if ( node ) - { - clientData = node->GetData(); - m_clientObjectList.DeleteNode( node ); - } - - if ( !clientData ) - { - if ( n < (int)m_clientDataList.GetCount() ) - node = m_clientDataList.Nth( n ); - - if ( node ) - { - clientData = node->GetData(); - node = m_clientDataList.Nth( n ); - } - } - - deletedData.Add(clientData); - -#if wxUSE_CHECKLISTBOX - // save check state - if ( m_hasCheckBoxes ) - { - deletedChecks.Add(((wxCheckListBox *)this)->IsChecked(pos + n)); - } -#endif // wxUSE_CHECKLISTBOX - } - - int nDeletedCount = n; - - gtk_list_clear_items( m_list, pos, length ); - - // now append the new items - for ( n = 0; n < nItems; n++ ) - { - Append(items[n]); - } - - // and append the old items too - pos += nItems; // now the indices are shifter - for ( n = 0; n < nDeletedCount; n++ ) - { - Append(deletedLabels[n], deletedData[n]); - -#if wxUSE_CHECKLISTBOX - if ( m_hasCheckBoxes ) - { - ((wxCheckListBox *)this)->Check(pos + n, (bool)deletedChecks[n]); - } -#endif // wxUSE_CHECKLISTBOX - } -} - -void wxListBox::AppendCommon( const wxString &item ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GtkWidget *list_item; - - wxString label(item); -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - label.Prepend(CHECKBOX_STRING); - } -#endif // wxUSE_CHECKLISTBOX - - list_item = gtk_list_item_new_with_label( label.mbc_str() ); - - gtk_container_add( GTK_CONTAINER(m_list), list_item ); - - gtk_signal_connect( GTK_OBJECT(list_item), "select", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - if (HasFlag(wxLB_MULTIPLE)) - gtk_signal_connect( GTK_OBJECT(list_item), "deselect", - GTK_SIGNAL_FUNC(gtk_listitem_select_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(list_item), - "button_press_event", - (GtkSignalFunc)gtk_listbox_button_press_callback, - (gpointer) this ); - - gtk_signal_connect_after( GTK_OBJECT(list_item), - "button_release_event", - (GtkSignalFunc)gtk_listbox_button_release_callback, - (gpointer) this ); - -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - { - gtk_signal_connect( GTK_OBJECT(list_item), - "key_press_event", - (GtkSignalFunc)gtk_listbox_key_press_callback, - (gpointer)this ); - } -#endif // wxUSE_CHECKLISTBOX - - gtk_widget_show( list_item ); - - ConnectWidget( list_item ); - - if (GTK_WIDGET_REALIZED(m_widget)) - { - gtk_widget_realize( list_item ); - gtk_widget_realize( GTK_BIN(list_item)->child ); - - if (m_widgetStyle) ApplyWidgetStyle(); - -#if wxUSE_DRAG_AND_DROP -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) m_dropTarget->RegisterWidget( list_item ); -#endif -#endif - -#if wxUSE_TOOLTIPS - if (m_tooltip) m_tooltip->Apply( this ); -#endif - } -} - -void wxListBox::Append( const wxString &item ) -{ - m_clientDataList.Append( (wxObject*) NULL ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxListBox::Append( const wxString &item, void *clientData ) -{ - m_clientDataList.Append( (wxObject*) clientData ); - m_clientObjectList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxListBox::Append( const wxString &item, wxClientData *clientData ) -{ - m_clientObjectList.Append( (wxObject*) clientData ); - m_clientDataList.Append( (wxObject*) NULL ); - - AppendCommon( item ); -} - -void wxListBox::SetClientData( int n, void* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return; - - node->SetData( (wxObject*) clientData ); -} - -void* wxListBox::GetClientData( int n ) -{ - wxCHECK_MSG( m_widget != NULL, NULL, _T("invalid combobox") ); - - wxNode *node = m_clientDataList.Nth( n ); - if (!node) return NULL; - - return node->Data(); -} - -void wxListBox::SetClientObject( int n, wxClientData* clientData ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return; - - wxClientData *cd = (wxClientData*) node->Data(); - if (cd) delete cd; - - node->SetData( (wxObject*) clientData ); -} - -wxClientData* wxListBox::GetClientObject( int n ) -{ - wxCHECK_MSG( m_widget != NULL, (wxClientData*)NULL, _T("invalid combobox") ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (!node) return (wxClientData*) NULL; - - return (wxClientData*) node->Data(); -} - -void wxListBox::Clear() -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - gtk_list_clear_items( m_list, 0, Number() ); - - wxNode *node = m_clientObjectList.First(); - while (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - node = node->Next(); - } - m_clientObjectList.Clear(); - - m_clientDataList.Clear(); -} - -void wxListBox::Delete( int n ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GList *child = g_list_nth( m_list->children, n ); - - wxCHECK_RET( child, _T("wrong listbox index") ); - - GList *list = g_list_append( (GList*) NULL, child->data ); - gtk_list_remove_items( m_list, list ); - g_list_free( list ); - - wxNode *node = m_clientObjectList.Nth( n ); - if (node) - { - wxClientData *cd = (wxClientData*)node->Data(); - if (cd) delete cd; - m_clientObjectList.DeleteNode( node ); - } - - node = m_clientDataList.Nth( n ); - if (node) - { - m_clientDataList.DeleteNode( node ); - } -} - -void wxListBox::Deselect( int n ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - gtk_list_unselect_item( m_list, n ); -} - -int wxListBox::FindString( const wxString &item ) const -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - GList *child = m_list->children; - int count = 0; - while (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = GET_REAL_LABEL(label->label); - - if (str == item) - return count; - - count++; - child = child->next; - } - - // it's not an error if the string is not found -> no wxCHECK - - return -1; -} - -int wxListBox::GetSelection() const -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - GList *child = m_list->children; - int count = 0; - while (child) - { - if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) return count; - count++; - child = child->next; - } - return -1; -} - -int wxListBox::GetSelections( wxArrayInt& aSelections ) const -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - // get the number of selected items first - GList *child = m_list->children; - int count = 0; - for (child = m_list->children; child != NULL; child = child->next) - { - if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) - count++; - } - - aSelections.Empty(); - - if (count > 0) - { - // now fill the list - aSelections.Alloc(count); // optimization attempt - int i = 0; - for (child = m_list->children; child != NULL; child = child->next, i++) - { - if (GTK_WIDGET(child->data)->state == GTK_STATE_SELECTED) - aSelections.Add(i); - } - } - - return count; -} - -wxString wxListBox::GetString( int n ) const -{ - wxCHECK_MSG( m_list != NULL, _T(""), _T("invalid listbox") ); - - GList *child = g_list_nth( m_list->children, n ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = GET_REAL_LABEL(label->label); - - return str; - } - - wxFAIL_MSG(_T("wrong listbox index")); - - return _T(""); -} - -wxString wxListBox::GetStringSelection() const -{ - wxCHECK_MSG( m_list != NULL, _T(""), _T("invalid listbox") ); - - GList *selection = m_list->selection; - if (selection) - { - GtkBin *bin = GTK_BIN( selection->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str = GET_REAL_LABEL(label->label); - - return str; - } - - wxFAIL_MSG(_T("no listbox selection available")); - return _T(""); -} - -int wxListBox::Number() -{ - wxCHECK_MSG( m_list != NULL, -1, _T("invalid listbox") ); - - GList *child = m_list->children; - int count = 0; - while (child) { count++; child = child->next; } - return count; -} - -bool wxListBox::Selected( int n ) -{ - wxCHECK_MSG( m_list != NULL, FALSE, _T("invalid listbox") ); - - GList *target = g_list_nth( m_list->children, n ); - if (target) - { - GList *child = m_list->selection; - while (child) - { - if (child->data == target->data) return TRUE; - child = child->next; - } - } - wxFAIL_MSG(_T("wrong listbox index")); - return FALSE; -} - -void wxListBox::Set( int WXUNUSED(n), const wxString *WXUNUSED(choices) ) -{ - wxFAIL_MSG(_T("wxListBox::Set not implemented")); -} - -void wxListBox::SetFirstItem( int WXUNUSED(n) ) -{ - wxFAIL_MSG(_T("wxListBox::SetFirstItem not implemented")); -} - -void wxListBox::SetFirstItem( const wxString &WXUNUSED(item) ) -{ - wxFAIL_MSG(_T("wxListBox::SetFirstItem not implemented")); -} - -void wxListBox::SetSelection( int n, bool select ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - if (select) - gtk_list_select_item( m_list, n ); - else - gtk_list_unselect_item( m_list, n ); -} - -void wxListBox::SetString( int n, const wxString &string ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - GList *child = g_list_nth( m_list->children, n ); - if (child) - { - GtkBin *bin = GTK_BIN( child->data ); - GtkLabel *label = GTK_LABEL( bin->child ); - - wxString str; -#if wxUSE_CHECKLISTBOX - if (m_hasCheckBoxes) - str += CHECKBOX_STRING; -#endif // wxUSE_CHECKLISTBOX - str += string; - - gtk_label_set( label, str.mbc_str() ); - } - else - { - wxFAIL_MSG(_T("wrong listbox index")); - } -} - -void wxListBox::SetStringSelection( const wxString &string, bool select ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - - SetSelection( FindString(string), select ); -} - -int wxListBox::GetIndex( GtkWidget *item ) const -{ - if (item) - { - GList *child = m_list->children; - int count = 0; - while (child) - { - if (GTK_WIDGET(child->data) == item) return count; - count++; - child = child->next; - } - } - return -1; -} - -#if wxUSE_TOOLTIPS -void wxListBox::ApplyToolTip( GtkTooltips *tips, const wxChar *tip ) -{ - GList *child = m_list->children; - while (child) - { - gtk_tooltips_set_tip( tips, GTK_WIDGET( child->data ), wxConv_local.cWX2MB(tip), (gchar*) NULL ); - child = child->next; - } -} -#endif // wxUSE_TOOLTIPS - -#if wxUSE_DRAG_AND_DROP -void wxListBox::SetDropTarget( wxDropTarget *dropTarget ) -{ - wxCHECK_RET( m_list != NULL, _T("invalid listbox") ); - -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) - { - GList *child = m_list->children; - while (child) - { - m_dropTarget->UnregisterWidget( GTK_WIDGET( child->data ) ); - child = child->next; - } - } -#endif - - wxWindow::SetDropTarget( dropTarget ); - -#ifndef NEW_GTK_DND_CODE - if (m_dropTarget) - { - GList *child = m_list->children; - while (child) - { - m_dropTarget->RegisterWidget( GTK_WIDGET( child->data ) ); - child = child->next; - } - } -#endif -} -#endif - -GtkWidget *wxListBox::GetConnectWidget() -{ - return GTK_WIDGET(m_list); -} - -bool wxListBox::IsOwnGtkWindow( GdkWindow *window ) -{ - if (wxWindow::IsOwnGtkWindow( window )) return TRUE; - - GList *child = m_list->children; - while (child) - { - GtkWidget *bin = GTK_WIDGET( child->data ); - if (bin->window == window) return TRUE; - child = child->next; - } - - return FALSE; -} - -void wxListBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - - if (m_backgroundColour.Ok()) - { - GdkWindow *window = GTK_WIDGET(m_list)->window; - if ( window ) - { - m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) ); - gdk_window_set_background( window, m_backgroundColour.GetColor() ); - gdk_window_clear( window ); - } - } - - GList *child = m_list->children; - while (child) - { - gtk_widget_set_style( GTK_WIDGET(child->data), m_widgetStyle ); - - GtkBin *bin = GTK_BIN( child->data ); - GtkWidget *label = GTK_WIDGET( bin->child ); - gtk_widget_set_style( label, m_widgetStyle ); - - child = child->next; - } -} diff --git a/src/gtk1/main.cpp b/src/gtk1/main.cpp deleted file mode 100644 index a6ea36c74e..0000000000 --- a/src/gtk1/main.cpp +++ /dev/null @@ -1,29 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Entry point -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/app.h" - -int wxEntry(int argc, char *argv[]); - - -#if defined(AIX) || defined(AIX4) || defined(____HPUX__) || defined(NOMAIN) - - // main in IMPLEMENT_WX_MAIN in IMPLEMENT_APP in app.h - -#else - - -int main(int argc, char* argv[]) -{ - return wxEntry(argc, argv); -} - -#endif diff --git a/src/gtk1/makefile.unx b/src/gtk1/makefile.unx deleted file mode 100644 index ad4654c9e7..0000000000 --- a/src/gtk1/makefile.unx +++ /dev/null @@ -1,220 +0,0 @@ -# -# File: makefile.unx -# Author: Robert Roebling -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for wxGtk library, Unix - -EXTRACFLAGS=-DLEX_SCANNER - -include ../make.env - -LIB_CPP_SRC=\ -\ - ../common/cmndata.cpp \ - ../common/config.cpp \ - ../common/date.cpp \ - ../common/docmdi.cpp \ - ../common/docview.cpp \ - ../common/dynarray.cpp \ - ../common/dynlib.cpp \ - ../common/event.cpp \ - ../common/file.cpp \ - ../common/fileconf.cpp \ - ../common/filefn.cpp \ - ../common/gdicmn.cpp \ - ../common/hash.cpp \ - ../common/helpbase.cpp \ - ../common/intl.cpp \ - ../common/image.cpp \ - ../common/imagjpeg.cpp \ - ../common/imagpng.cpp \ - ../common/ipcbase.cpp \ - ../common/layout.cpp \ - ../common/list.cpp \ - ../common/log.cpp \ - ../common/matrix.cpp \ - ../common/memory.cpp \ - ../common/module.cpp \ - ../common/object.cpp \ - ../common/odbc.cpp \ - ../common/postscrp.cpp \ - ../common/prntbase.cpp \ - ../common/resource.cpp \ - ../common/serbase.cpp \ - ../common/string.cpp \ - ../common/textfile.cpp \ - ../common/time.cpp \ - ../common/timercmn.cpp \ - ../common/utilscmn.cpp \ - ../common/wincmn.cpp \ - ../common/framecmn.cpp \ - ../common/stream.cpp \ - ../common/datstrm.cpp \ - ../common/wfstream.cpp \ - ../common/mstream.cpp \ - ../common/zstream.cpp \ - ../common/objstrm.cpp \ - ../common/sckstrm.cpp \ - ../common/validate.cpp \ - ../common/valtext.cpp \ - ../common/variant.cpp \ - ../common/wxexpr.cpp \ - ../common/socket.cpp \ - ../common/sckaddr.cpp \ - ../common/sckipc.cpp \ - ../common/protocol.cpp \ - ../common/ftp.cpp \ - ../common/http.cpp \ - ../common/url.cpp \ - ../common/tokenzr.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - checklst.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - control.cpp \ - combobox.cpp \ - cursor.cpp \ - data.cpp \ - dataobj.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dcps.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - icon.cpp \ - listbox.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - minifram.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbox.cpp \ - statbmp.cpp \ - stattext.cpp \ - tbargtk.cpp \ - threadpsx.cpp \ - textctrl.cpp \ - timer.cpp \ - utilsgtk.cpp \ - utilsres.cpp \ - wave.cpp \ - window.cpp \ -\ - ../generic/choicdgg.cpp \ - ../generic/colrdlgg.cpp \ - ../generic/dirdlgg.cpp \ - ../generic/fontdlgg.cpp \ - ../generic/gridg.cpp \ - ../generic/helpext.cpp \ - ../generic/imaglist.cpp \ - ../generic/listctrl.cpp \ - ../generic/laywin.cpp \ - ../generic/msgdlgg.cpp \ - ../generic/panelg.cpp \ - ../generic/printps.cpp \ - ../generic/prntdlgg.cpp \ - ../generic/sashwin.cpp \ - ../generic/scrolwin.cpp \ - ../generic/splitter.cpp \ - ../generic/statusbr.cpp \ - ../generic/tabg.cpp \ - ../generic/textdlgg.cpp \ - ../generic/treectrl.cpp - - -ZLIB_SRC=\ - ../zlib/adler32.c ../zlib/deflate.c ../zlib/infblock.c\ - ../zlib/inflate.c ../zlib/zutil.c ../zlib/compress.c \ - ../zlib/infcodes.c ../zlib/inftrees.c ../zlib/trees.c \ - ../zlib/crc32.c ../zlib/gzio.c ../zlib/inffast.c\ - ../zlib/infutil.c ../zlib/uncompr.c - -PNG_SRC=\ - ../png/png.c \ - ../png/pngset.c \ - ../png/pngget.c \ - ../png/pngrutil.c \ - ../png/pngtrans.c \ - ../png/pngwutil.c \ - ../png/pngread.c \ - ../png/pngrio.c \ - ../png/pngwio.c \ - ../png/pngwrite.c \ - ../png/pngrtran.c \ - ../png/pngwtran.c \ - ../png/pngmem.c \ - ../png/pngerror.c \ - ../png/pngpread.c - -LIB_C_SRC=\ -\ - win_gtk.c \ - ../common/y_tab.c \ - ../common/extended.c - -# Only need to compile zlib files if we don't -# already have a zlib library installed on our system -# (or we wish to statically link them for some reason) -EXTRA_C_SRC=\ - $(ZLIB_SRC) $(PNG_SRC) - -all: $(WXLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) $(LIB_C_SRC:.c=.o) $(EXTRA_C_SRC:.c=.o) - -$(WXLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -../common/y_tab.$(OBJSUFF): ../common/y_tab.c ../common/lex_yy.c - $(CCLEX) -c $(CFLAGS) -DNO_CONFIGURE -o $@ ../common/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -../common/lex_yy.c: ../common/lexer.l - $(LEX) -o../common/lex.yy.c ../common/lexer.l - sed -e "s/BUFSIZ/5000/g" < ../common/lex.yy.c | \ - sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c - /bin/rm -f ../common/lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv y.tab.c ../common/y_tab.c - -clean: - rm -f $(OBJECTS) $(WXLIB) - diff --git a/src/gtk1/mdi.cpp b/src/gtk1/mdi.cpp deleted file mode 100644 index e9acbdf01a..0000000000 --- a/src/gtk1/mdi.cpp +++ /dev/null @@ -1,423 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" -#include "wx/dialog.h" -#include "wx/menu.h" -#include - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -const int wxMENU_HEIGHT = 27; - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// globals -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; - -//----------------------------------------------------------------------------- -// wxMDIParentFrame -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame,wxFrame) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) -END_EVENT_TABLE() - -wxMDIParentFrame::wxMDIParentFrame() -{ - m_justInserted = FALSE; - m_clientWindow = (wxMDIClientWindow *) NULL; -} - -wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_justInserted = FALSE; - m_clientWindow = (wxMDIClientWindow *) NULL; - Create( parent, id, title, pos, size, style, name ); -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ -} - -bool wxMDIParentFrame::Create( wxWindow *parent, - wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - wxFrame::Create( parent, id, title, pos, size, style, name ); - - OnCreateClient(); - - return TRUE; -} - -void wxMDIParentFrame::GtkOnSize( int x, int y, int width, int height ) -{ - wxFrame::GtkOnSize( x, y, width, height ); - - wxMDIChildFrame *child_frame = GetActiveChild(); - if (!child_frame) return; - - wxMenuBar *menu_bar = child_frame->m_menuBar; - if (!menu_bar) return; - if (!menu_bar->m_widget) return; - - menu_bar->m_x = 0; - menu_bar->m_y = 0; - menu_bar->m_width = m_width; - menu_bar->m_height = wxMENU_HEIGHT; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - menu_bar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); -} - -void wxMDIParentFrame::OnInternalIdle() -{ - /* if a an MDI child window has just been inserted - it has to be brought to the top in idle time. we - simply set the last notebook page active as new - pages can only be appended at the end */ - - if (m_justInserted) - { - GtkNotebook *notebook = GTK_NOTEBOOK(m_clientWindow->m_widget); - gtk_notebook_set_page( notebook, g_list_length( notebook->children ) - 1 ); - - m_justInserted = FALSE; - return; - } - - wxFrame::OnInternalIdle(); - - wxMDIChildFrame *active_child_frame = GetActiveChild(); - bool visible_child_menu = FALSE; - - wxNode *node = m_clientWindow->GetChildren().First(); - while (node) - { - wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); - wxMenuBar *menu_bar = child_frame->m_menuBar; - if (child_frame->m_menuBar) - { - if (child_frame == active_child_frame) - { - if (menu_bar->Show(TRUE)) - { - menu_bar->m_width = m_width; - menu_bar->m_height = wxMENU_HEIGHT; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - menu_bar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - menu_bar->SetInvokingWindow( child_frame ); - } - visible_child_menu = TRUE; - } - else - { - if (menu_bar->Show(FALSE)) - { - menu_bar->UnsetInvokingWindow( child_frame ); - } - } - } - node = node->Next(); - } - - /* show/hide parent menu bar as required */ - if ((m_frameMenuBar) && - (m_frameMenuBar->IsShown() == visible_child_menu)) - { - if (visible_child_menu) - { - m_frameMenuBar->Show( FALSE ); - m_frameMenuBar->UnsetInvokingWindow( this ); - } - else - { - m_frameMenuBar->Show( TRUE ); - m_frameMenuBar->SetInvokingWindow( this ); - - m_frameMenuBar->m_width = m_width; - m_frameMenuBar->m_height = wxMENU_HEIGHT; - gtk_myfixed_set_size( GTK_MYFIXED(m_mainWidget), - m_frameMenuBar->m_widget, - 0, 0, m_width, wxMENU_HEIGHT ); - } - } -} - -void wxMDIParentFrame::GetClientSize(int *width, int *height ) const -{ - wxFrame::GetClientSize( width, height ); -} - -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - if (!m_clientWindow) return (wxMDIChildFrame*) NULL; - - GtkNotebook *notebook = GTK_NOTEBOOK(m_clientWindow->m_widget); - if (!notebook) return (wxMDIChildFrame*) NULL; - -#if (GTK_MINOR_VERSION > 0) - gint i = gtk_notebook_get_current_page( notebook ); -#else - gint i = gtk_notebook_current_page( notebook ); -#endif - if (i < 0) return (wxMDIChildFrame*) NULL; - - GtkNotebookPage* page = (GtkNotebookPage*) (g_list_nth(notebook->children,i)->data); - if (!page) return (wxMDIChildFrame*) NULL; - - wxNode *node = m_clientWindow->GetChildren().First(); - while (node) - { - wxMDIChildFrame *child_frame = (wxMDIChildFrame *)node->Data(); - if (child_frame->m_page == page) - return child_frame; - node = node->Next(); - } - - return (wxMDIChildFrame*) NULL; -} - -wxMDIClientWindow *wxMDIParentFrame::GetClientWindow() const -{ - return m_clientWindow; -} - -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - m_clientWindow = new wxMDIClientWindow( this ); - return m_clientWindow; -} - -void wxMDIParentFrame::ActivateNext() -{ - if (m_clientWindow) - gtk_notebook_next_page( GTK_NOTEBOOK(m_clientWindow->m_widget) ); -} - -void wxMDIParentFrame::ActivatePrevious() -{ - if (m_clientWindow) - gtk_notebook_prev_page( GTK_NOTEBOOK(m_clientWindow->m_widget) ); -} - -void wxMDIParentFrame::OnActivate( wxActivateEvent& WXUNUSED(event) ) -{ -} - -void wxMDIParentFrame::OnSysColourChanged( wxSysColourChangedEvent& WXUNUSED(event) ) -{ -} - -//----------------------------------------------------------------------------- -// wxMDIChildFrame -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame,wxFrame) - -BEGIN_EVENT_TABLE(wxMDIChildFrame, wxFrame) - EVT_ACTIVATE(wxMDIChildFrame::OnActivate) -END_EVENT_TABLE() - -wxMDIChildFrame::wxMDIChildFrame() -{ - m_menuBar = (wxMenuBar *) NULL; - m_page = (GtkNotebookPage *) NULL; -} - -wxMDIChildFrame::wxMDIChildFrame( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& WXUNUSED(pos), const wxSize& size, - long style, const wxString& name ) -{ - m_menuBar = (wxMenuBar *) NULL; - m_page = (GtkNotebookPage *) NULL; - Create( parent, id, title, wxDefaultPosition, size, style, name ); -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ - if (m_menuBar) - delete m_menuBar; -} - -bool wxMDIChildFrame::Create( wxMDIParentFrame *parent, - wxWindowID id, const wxString& title, - const wxPoint& WXUNUSED(pos), const wxSize& size, - long style, const wxString& name ) -{ - m_title = title; - - return wxWindow::Create( parent->GetClientWindow(), id, wxDefaultPosition, size, style, name ); -} - -void wxMDIChildFrame::GetClientSize( int *width, int *height ) const -{ - wxWindow::GetClientSize( width, height ); -} - -void wxMDIChildFrame::AddChild( wxWindow *child ) -{ - wxWindow::AddChild( child ); -} - -void wxMDIChildFrame::SetMenuBar( wxMenuBar *menu_bar ) -{ - wxASSERT_MSG( m_menuBar == NULL, _T("Only one menubar allowed") ); - - m_menuBar = menu_bar; - - if (m_menuBar) - { - wxMDIParentFrame *mdi_frame = (wxMDIParentFrame*)m_parent->GetParent(); - - m_menuBar->SetParent( mdi_frame ); - - /* insert the invisible menu bar into the _parent_ mdi frame */ - gtk_myfixed_put( GTK_MYFIXED(mdi_frame->m_mainWidget), - m_menuBar->m_widget, - 0, 0, mdi_frame->m_width, wxMENU_HEIGHT ); - } -} - -wxMenuBar *wxMDIChildFrame::GetMenuBar() const -{ - return m_menuBar; -} - -void wxMDIChildFrame::Activate() -{ -#if (GTK_MINOR_VERSION > 0) - wxMDIParentFrame* parent = (wxMDIParentFrame*) GetParent(); - GtkNotebook* notebook = GTK_NOTEBOOK(parent->m_widget); - gint pageno = gtk_notebook_page_num( notebook, m_page->child ); - gtk_notebook_set_page( notebook, pageno ); -#else - // the only way I can see to do this under gtk+ 1.0.X would - // be to keep track of page numbers, start at first and - // do "next" enough times to get to this page number - messy - // - J. Russell Smyth -#endif -} - -void wxMDIChildFrame::OnActivate( wxActivateEvent &WXUNUSED(event) ) -{ -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if ((win->m_x == alloc->x) && - (win->m_y == alloc->y) && - (win->m_width == alloc->width) && - (win->m_height == alloc->height) && - (win->m_sizeSet)) - { - return; - } - - win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height ); -} - -//----------------------------------------------------------------------------- -// InsertChild callback for wxMDIClientWindow -//----------------------------------------------------------------------------- - -static void wxInsertChildInMDI( wxMDIClientWindow* parent, wxMDIChildFrame* child ) -{ - wxString s = child->m_title; - if (s.IsNull()) s = _("MDI child"); - - GtkWidget *label_widget = gtk_label_new( s.mbc_str() ); - gtk_misc_set_alignment( GTK_MISC(label_widget), 0.0, 0.5 ); - - gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child ); - - GtkNotebook *notebook = GTK_NOTEBOOK(parent->m_widget); - - gtk_notebook_append_page( notebook, child->m_widget, label_widget ); - - child->m_page = (GtkNotebookPage*) (g_list_last(notebook->children)->data); - - wxMDIParentFrame *parent_frame = (wxMDIParentFrame*) parent->GetParent(); - parent_frame->m_justInserted = TRUE; -} - -//----------------------------------------------------------------------------- -// wxMDIClientWindow -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow,wxWindow) - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::wxMDIClientWindow( wxMDIParentFrame *parent, long style ) -{ - CreateClient( parent, style ); -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style ) -{ - m_needParent = TRUE; - - m_insertCallback = (wxInsertChildFunction)wxInsertChildInMDI; - - PreCreation( parent, -1, wxPoint(10,10), wxSize(100,100), style, "wxMDIClientWindow" ); - - m_widget = gtk_notebook_new(); - - gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - diff --git a/src/gtk1/menu.cpp b/src/gtk1/menu.cpp deleted file mode 100644 index e2b79dbf82..0000000000 --- a/src/gtk1/menu.cpp +++ /dev/null @@ -1,1091 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/app.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// wxMenuBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar,wxWindow) - -wxMenuBar::wxMenuBar( long style ) -{ - /* the parent window is known after wxFrame::SetMenu() */ - m_needParent = FALSE; - - PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, style, "menu" ); - - m_menus.DeleteContents( TRUE ); - - /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - m_accel = gtk_accel_group_new(); - m_factory = gtk_item_factory_new( GTK_TYPE_MENU_BAR, "
", m_accel ); - m_menubar = gtk_item_factory_get_widget( m_factory, "
" ); -#else - m_menubar = gtk_menu_bar_new(); -#endif - - if (style & wxMB_DOCKABLE) - { - m_widget = gtk_handle_box_new(); - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_menubar) ); - gtk_widget_show( GTK_WIDGET(m_menubar) ); - } - else - { - m_widget = GTK_WIDGET(m_menubar); - } - - PostCreation(); -} - -wxMenuBar::wxMenuBar() -{ - /* the parent window is known after wxFrame::SetMenu() */ - m_needParent = FALSE; - - PreCreation( (wxWindow *) NULL, -1, wxDefaultPosition, wxDefaultSize, 0, "menu" ); - - m_menus.DeleteContents( TRUE ); - - /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - m_accel = gtk_accel_group_new(); - m_factory = gtk_item_factory_new( GTK_TYPE_MENU_BAR, "
", m_accel ); - m_menubar = gtk_item_factory_get_widget( m_factory, "
" ); -#else - m_menubar = gtk_menu_bar_new(); -#endif - - m_widget = GTK_WIDGET(m_menubar); - - PostCreation(); -} - -wxMenuBar::~wxMenuBar() -{ - // how to destroy a GtkItemFactory ? -} - -static void wxMenubarUnsetInvokingWindow( wxMenu *menu, wxWindow *win ) -{ - menu->SetInvokingWindow( (wxWindow*) NULL ); - -#if (GTK_MINOR_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) top_frame = top_frame->GetParent(); - - /* support for native hot keys */ - gtk_accel_group_detach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = menu->GetItems().First(); - while (node) - { - wxMenuItem *menuitem = (wxMenuItem*)node->Data(); - if (menuitem->IsSubMenu()) - wxMenubarUnsetInvokingWindow( menuitem->GetSubMenu(), win ); - node = node->Next(); - } -} - -static void wxMenubarSetInvokingWindow( wxMenu *menu, wxWindow *win ) -{ - menu->SetInvokingWindow( win ); - -#if (GTK_MINOR_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) - top_frame = top_frame->GetParent(); - - /* support for native hot keys */ - gtk_accel_group_attach( menu->m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = menu->GetItems().First(); - while (node) - { - wxMenuItem *menuitem = (wxMenuItem*)node->Data(); - if (menuitem->IsSubMenu()) - wxMenubarSetInvokingWindow( menuitem->GetSubMenu(), win ); - node = node->Next(); - } -} - -void wxMenuBar::SetInvokingWindow( wxWindow *win ) -{ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) - top_frame = top_frame->GetParent(); - - /* support for native key accelerators indicated by underscroes */ - gtk_accel_group_attach( m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = m_menus.First(); - while (node) - { - wxMenu *menu = (wxMenu*)node->Data(); - wxMenubarSetInvokingWindow( menu, win ); - node = node->Next(); - } -} - -void wxMenuBar::UnsetInvokingWindow( wxWindow *win ) -{ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - wxWindow *top_frame = win; - while (top_frame->GetParent()) - top_frame = top_frame->GetParent(); - - /* support for native key accelerators indicated by underscroes */ - gtk_accel_group_detach( m_accel, GTK_OBJECT(top_frame->m_widget) ); -#endif - - wxNode *node = m_menus.First(); - while (node) - { - wxMenu *menu = (wxMenu*)node->Data(); - wxMenubarUnsetInvokingWindow( menu, win ); - node = node->Next(); - } -} - -void wxMenuBar::Append( wxMenu *menu, const wxString &title ) -{ - m_menus.Append( menu ); - - /* GTK 1.2 wants to have "_" instead of "&" for accelerators */ - wxString str; - for ( const wxChar *pc = title; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('&')) - { -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - str << _T('_'); - } else - if (*pc == _T('/')) - { - str << _T('\\'); -#endif - } - else - str << *pc; - } - - /* this doesn't have much effect right now */ - menu->SetTitle( str ); - - /* GTK 1.2.0 doesn't have gtk_item_factory_get_item(), but GTK 1.2.1 has. */ -#if (GTK_MINOR_VERSION > 0) && (GTK_MICRO_VERSION > 0) - - /* local buffer in multibyte form */ - char buf[200]; - strcpy( buf, "/" ); - strcat( buf, str.mb_str() ); - - GtkItemFactoryEntry entry; - entry.path = buf; - entry.accelerator = (gchar*) NULL; - entry.callback = (GtkItemFactoryCallback) NULL; - entry.callback_action = 0; - entry.item_type = ""; - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* in order to get the pointer to the item we need the item text _without_ underscores */ - wxString tmp = _T("
/"); - for ( const wxChar *pc = str; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('_')) pc++; /* skip it */ - tmp << *pc; - } - - menu->m_owner = gtk_item_factory_get_item( m_factory, tmp.mb_str() ); - - gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu->m_owner), menu->m_menu ); - -#else - - menu->m_owner = gtk_menu_item_new_with_label( str.mb_str() ); - gtk_widget_show( menu->m_owner ); - gtk_menu_item_set_submenu( GTK_MENU_ITEM(menu->m_owner), menu->m_menu ); - - gtk_menu_bar_append( GTK_MENU_BAR(m_menubar), menu->m_owner ); - -#endif -} - -static int FindMenuItemRecursive( const wxMenu *menu, const wxString &menuString, const wxString &itemString ) -{ - if (menu->GetTitle() == menuString) - { - int res = menu->FindItem( itemString ); - if (res != wxNOT_FOUND) - return res; - } - - wxNode *node = ((wxMenu *)menu)->GetItems().First(); // const_cast - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->IsSubMenu()) - return FindMenuItemRecursive(item->GetSubMenu(), menuString, itemString); - - node = node->Next(); - } - - return wxNOT_FOUND; -} - -wxMenuItem *wxMenuBar::FindItemForId(int itemId, wxMenu **menuForItem ) const -{ - if ( menuForItem ) - { - // TODO return the pointer to the menu - - *menuForItem = NULL; - } - - return FindItem(itemId); -} - -int wxMenuBar::FindMenuItem( const wxString &menuString, const wxString &itemString ) const -{ - wxNode *node = m_menus.First(); - while (node) - { - wxMenu *menu = (wxMenu*)node->Data(); - int res = FindMenuItemRecursive( menu, menuString, itemString); - if (res != -1) return res; - node = node->Next(); - } - return -1; -} - -// Find a wxMenuItem using its id. Recurses down into sub-menus -static wxMenuItem* FindMenuItemByIdRecursive(const wxMenu* menu, int id) -{ - wxMenuItem* result = menu->FindItem(id); - - wxNode *node = ((wxMenu *)menu)->GetItems().First(); // const_cast - while ( node && result == NULL ) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->IsSubMenu()) - { - result = FindMenuItemByIdRecursive( item->GetSubMenu(), id ); - } - node = node->Next(); - } - - return result; -} - -wxMenuItem* wxMenuBar::FindItem( int id ) const -{ - wxMenuItem* result = 0; - wxNode *node = m_menus.First(); - while (node && result == 0) - { - wxMenu *menu = (wxMenu*)node->Data(); - result = FindMenuItemByIdRecursive( menu, id ); - node = node->Next(); - } - - return result; -} - -void wxMenuBar::Check( int id, bool check ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::Check: no such item") ); - - item->Check(check); -} - -bool wxMenuBar::IsChecked( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, FALSE, _T("wxMenuBar::IsChecked: no such item") ); - - return item->IsChecked(); -} - -void wxMenuBar::Enable( int id, bool enable ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::Enable: no such item") ); - - item->Enable(enable); -} - -bool wxMenuBar::IsEnabled( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, FALSE, _T("wxMenuBar::IsEnabled: no such item") ); - - return item->IsEnabled(); -} - -wxString wxMenuBar::GetLabel( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, _T(""), _T("wxMenuBar::GetLabel: no such item") ); - - return item->GetText(); -} - -void wxMenuBar::SetLabel( int id, const wxString &label ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::SetLabel: no such item") ); - - item->SetText( label ); -} - -void wxMenuBar::EnableTop( int pos, bool flag ) -{ - wxNode *node = m_menus.Nth( pos ); - - wxCHECK_RET( node, _T("menu not found") ); - - wxMenu* menu = (wxMenu*)node->Data(); - - if (menu->m_owner) - gtk_widget_set_sensitive( menu->m_owner, flag ); -} - -wxString wxMenuBar::GetLabelTop( int pos ) const -{ - wxNode *node = m_menus.Nth( pos ); - - wxCHECK_MSG( node, _T("invalid"), _T("menu not found") ); - - wxMenu* menu = (wxMenu*)node->Data(); - - return menu->GetTitle(); -} - -void wxMenuBar::SetLabelTop( int pos, const wxString& label ) -{ - wxNode *node = m_menus.Nth( pos ); - - wxCHECK_RET( node, _T("menu not found") ); - - wxMenu* menu = (wxMenu*)node->Data(); - - menu->SetTitle( label ); -} - -void wxMenuBar::SetHelpString( int id, const wxString& helpString ) -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_RET( item, _T("wxMenuBar::SetHelpString: no such item") ); - - item->SetHelp( helpString ); -} - -wxString wxMenuBar::GetHelpString( int id ) const -{ - wxMenuItem* item = FindMenuItemById( id ); - - wxCHECK_MSG( item, _T(""), _T("wxMenuBar::GetHelpString: no such item") ); - - return item->GetHelp(); -} - -//----------------------------------------------------------------------------- -// "activate" -//----------------------------------------------------------------------------- - -static void gtk_menu_clicked_callback( GtkWidget *widget, wxMenu *menu ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int id = menu->FindMenuIdByMenuItem(widget); - - /* should find it for normal (not popup) menu */ - wxASSERT( (id != -1) || (menu->GetInvokingWindow() != NULL) ); - - if (!menu->IsEnabled(id)) - return; - - wxMenuItem* item = menu->FindItem( id ); - wxCHECK_RET( item, _T("error in menu item callback") ); - - if (item->IsCheckable()) - { - if (item->GetCheckedFlag() == item->IsChecked()) - { - /* the menu item has been checked by calling wxMenuItem->Check() */ - return; - } - else - { - /* the user pressed on the menu item -> report */ - item->SetCheckedFlag(item->IsChecked()); /* make consistent again */ - } - } - - wxCommandEvent event( wxEVT_COMMAND_MENU_SELECTED, id ); - event.SetEventObject( menu ); - event.SetInt(id ); - - if (menu->GetCallback()) - { - (void) (*(menu->GetCallback())) (*menu, event); - return; - } - - if (menu->GetEventHandler()->ProcessEvent(event)) - return; - - wxWindow *win = menu->GetInvokingWindow(); - if (win) - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "select" -//----------------------------------------------------------------------------- - -static void gtk_menu_hilight_callback( GtkWidget *widget, wxMenu *menu ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int id = menu->FindMenuIdByMenuItem(widget); - - wxASSERT( id != -1 ); // should find it! - - if (!menu->IsEnabled(id)) - return; - - wxMenuEvent event( wxEVT_MENU_HIGHLIGHT, id ); - event.SetEventObject( menu ); - -/* wxMSW doesn't call callback here either - - if (menu->m_callback) - { - (void) (*(menu->m_callback)) (*menu, event); - return; - } -*/ - - if (menu->GetEventHandler()->ProcessEvent(event)) - return; - - wxWindow *win = menu->GetInvokingWindow(); - if (win) win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "deselect" -//----------------------------------------------------------------------------- - -static void gtk_menu_nolight_callback( GtkWidget *widget, wxMenu *menu ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - int id = menu->FindMenuIdByMenuItem(widget); - - wxASSERT( id != -1 ); // should find it! - - if (!menu->IsEnabled(id)) - return; - - wxMenuEvent event( wxEVT_MENU_HIGHLIGHT, -1 ); - event.SetEventObject( menu ); - - if (menu->GetEventHandler()->ProcessEvent(event)) - return; - - wxWindow *win = menu->GetInvokingWindow(); - if (win) - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxMenuItem -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMenuItem,wxObject) - -wxMenuItem::wxMenuItem() -{ - m_id = ID_SEPARATOR; - m_isCheckMenu = FALSE; - m_isChecked = FALSE; - m_isEnabled = TRUE; - m_subMenu = (wxMenu *) NULL; - m_menuItem = (GtkWidget *) NULL; -} - -// it's valid for this function to be called even if m_menuItem == NULL -void wxMenuItem::SetName( const wxString& str ) -{ - /* '\t' is the deliminator indicating a hot key */ - m_text = _T(""); - const wxChar *pc = str; - for (; (*pc != _T('\0')) && (*pc != _T('\t')); pc++ ) - { - if (*pc == _T('&')) - { -#if (GTK_MINOR_VERSION > 0) - m_text << _T('_'); - } else - if (*pc == _T('/')) /* we have to filter out slashes ... */ - { - m_text << _T('\\'); /* ... and replace them with back slashes */ -#endif - } - else - m_text << *pc; - } - - /* only GTK 1.2 knows about hot keys */ - m_hotKey = _T(""); -#if (GTK_MINOR_VERSION > 0) - if(*pc == _T('\t')) - { - pc++; - m_hotKey = pc; - } -#endif - - if (m_menuItem) - { - GtkLabel *label = GTK_LABEL( GTK_BIN(m_menuItem)->child ); - gtk_label_set( label, m_text.mb_str()); - } -} - -void wxMenuItem::Check( bool check ) -{ - wxCHECK_RET( m_menuItem, _T("invalid menu item") ); - - wxCHECK_RET( IsCheckable(), _T("Can't check uncheckable item!") ) - - if (check == m_isChecked) return; - - m_isChecked = check; - gtk_check_menu_item_set_state( (GtkCheckMenuItem*)m_menuItem, (gint)check ); -} - -void wxMenuItem::Enable( bool enable ) -{ - wxCHECK_RET( m_menuItem, _T("invalid menu item") ); - - gtk_widget_set_sensitive( m_menuItem, enable ); - m_isEnabled = enable; -} - -bool wxMenuItem::IsChecked() const -{ - wxCHECK_MSG( m_menuItem, FALSE, _T("invalid menu item") ); - - wxCHECK( IsCheckable(), FALSE ); // can't get state of uncheckable item! - - bool bIsChecked = ((GtkCheckMenuItem*)m_menuItem)->active != 0; - - return bIsChecked; -} - -//----------------------------------------------------------------------------- -// wxMenu -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMenu,wxEvtHandler) - -wxMenu::wxMenu( const wxString& title, const wxFunction func ) -{ - m_title = title; - m_items.DeleteContents( TRUE ); - m_invokingWindow = (wxWindow *) NULL; - -#if (GTK_MINOR_VERSION > 0) - m_accel = gtk_accel_group_new(); - m_factory = gtk_item_factory_new( GTK_TYPE_MENU, "
", m_accel ); - m_menu = gtk_item_factory_get_widget( m_factory, "
" ); -#else - m_menu = gtk_menu_new(); // Do not show! -#endif - - m_callback = func; - m_eventHandler = this; - m_clientData = (void*) NULL; - - if (m_title.IsNull()) m_title = _T(""); - if (m_title != _T("")) - { - Append(-2, m_title); - AppendSeparator(); - } - - m_owner = (GtkWidget*) NULL; -} - -wxMenu::~wxMenu() -{ - /* how do we delete an item-factory ? */ -} - -void wxMenu::SetTitle( const wxString& title ) -{ - // TODO Waiting for something better - m_title = title; -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::AppendSeparator() -{ - wxMenuItem *mitem = new wxMenuItem(); - mitem->SetId(ID_SEPARATOR); - -#if (GTK_MINOR_VERSION > 0) - GtkItemFactoryEntry entry; - entry.path = "/sep"; - entry.callback = (GtkItemFactoryCallback) NULL; - entry.callback_action = 0; - entry.item_type = ""; - entry.accelerator = (gchar*) NULL; - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* this will be wrong for more than one separator. do we care? */ - GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, "
/sep" ); -#else - GtkWidget *menuItem = gtk_menu_item_new(); - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); -#endif - - mitem->SetMenuItem(menuItem); - m_items.Append( mitem ); -} - -static char* GetHotKey( const wxString &hotkey, char *hotbuf ) -{ - if (hotkey.IsEmpty()) return (char*) NULL; - - switch (hotkey[0]) - { - case _T('a'): /* Alt */ - case _T('A'): - case _T('m'): /* Meta */ - case _T('M'): - { - strcpy( hotbuf, "" ); - wxString last = hotkey.Right(1); - strcat( hotbuf, last.mb_str() ); - return hotbuf; - } - case _T('c'): /* Ctrl */ - case _T('C'): - case _T('s'): /* Strg, yeah man, I'm German */ - case _T('S'): - { - strcpy( hotbuf, "" ); - wxString last = hotkey.Right(1); - strcat( hotbuf, last.mb_str() ); - return hotbuf; - } - case _T('F'): /* function keys */ - { - strcpy( hotbuf, hotkey.mb_str() ); - return hotbuf; - } - default: - { - } - } - return (char*) NULL; -} - -void wxMenu::Append( int id, const wxString &item, const wxString &helpStr, bool checkable ) -{ - wxMenuItem *mitem = new wxMenuItem(); - mitem->SetId(id); - mitem->SetText(item); - mitem->SetHelp(helpStr); - mitem->SetCheckable(checkable); - -#if (GTK_MINOR_VERSION > 0) - /* text has "_" instead of "&" after mitem->SetText() */ - wxString text( mitem->GetText() ); - - /* local buffer in multibyte form */ - char buf[200]; - strcpy( buf, "/" ); - strcat( buf, text.mb_str() ); - - GtkItemFactoryEntry entry; - entry.path = buf; - entry.callback = (GtkItemFactoryCallback) gtk_menu_clicked_callback; - entry.callback_action = 0; - if (checkable) - entry.item_type = ""; - else - entry.item_type = ""; - - char hotbuf[50]; - entry.accelerator = GetHotKey( mitem->GetHotKey(), hotbuf ); - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* in order to get the pointer to the item we need the item text _without_ underscores */ - wxString s = _T("
/"); - for ( const wxChar *pc = text; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('_')) pc++; /* skip it */ - s << *pc; - } - - GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, s.mb_str() ); - -#else - - GtkWidget *menuItem = checkable ? gtk_check_menu_item_new_with_label( mitem->GetText().mb_str() ) - : gtk_menu_item_new_with_label( mitem->GetText().mb_str() ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "activate", - GTK_SIGNAL_FUNC(gtk_menu_clicked_callback), - (gpointer)this ); - - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); - -#endif - - gtk_signal_connect( GTK_OBJECT(menuItem), "select", - GTK_SIGNAL_FUNC(gtk_menu_hilight_callback), - (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "deselect", - GTK_SIGNAL_FUNC(gtk_menu_nolight_callback), - (gpointer)this ); - - mitem->SetMenuItem(menuItem); - - m_items.Append( mitem ); -} - -void wxMenu::Append( int id, const wxString &item, wxMenu *subMenu, const wxString &helpStr ) -{ - wxMenuItem *mitem = new wxMenuItem(); - mitem->SetId(id); - mitem->SetText(item); - mitem->SetHelp(helpStr); - -#if (GTK_MINOR_VERSION > 0) - /* text has "_" instead of "&" after mitem->SetText() */ - wxString text( mitem->GetText() ); - - /* local buffer in multibyte form */ - char buf[200]; - strcpy( buf, "/" ); - strcat( buf, text.mb_str() ); - - GtkItemFactoryEntry entry; - entry.path = buf; - entry.callback = (GtkItemFactoryCallback) 0; - entry.callback_action = 0; - entry.item_type = ""; - - gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */ - - /* in order to get the pointer to the item we need the item text _without_ underscores */ - wxString s = _T("
/"); - for ( const wxChar *pc = text; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('_')) pc++; /* skip it */ - s << *pc; - } - - GtkWidget *menuItem = gtk_item_factory_get_item( m_factory, s.mb_str() ); - -#else - - GtkWidget *menuItem = gtk_menu_item_new_with_label(mitem->GetText().mbc_str()); - - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); - -#endif - - gtk_signal_connect( GTK_OBJECT(menuItem), "select", - GTK_SIGNAL_FUNC(gtk_menu_hilight_callback), - (gpointer*)this ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "deselect", - GTK_SIGNAL_FUNC(gtk_menu_nolight_callback), - (gpointer*)this ); - - gtk_menu_item_set_submenu( GTK_MENU_ITEM(menuItem), subMenu->m_menu ); - - mitem->SetMenuItem(menuItem); - mitem->SetSubMenu(subMenu); - - m_items.Append( mitem ); -} - -void wxMenu::Append( wxMenuItem *item ) -{ - m_items.Append( item ); - - GtkWidget *menuItem = (GtkWidget*) NULL; - - if (item->IsSeparator()) - menuItem = gtk_menu_item_new(); - else if (item->IsSubMenu()) - menuItem = gtk_menu_item_new_with_label(item->GetText().mbc_str()); - else - menuItem = item->IsCheckable() ? gtk_check_menu_item_new_with_label(item->GetText().mbc_str()) - : gtk_menu_item_new_with_label(item->GetText().mbc_str()); - - if (!item->IsSeparator()) - { - gtk_signal_connect( GTK_OBJECT(menuItem), "select", - GTK_SIGNAL_FUNC(gtk_menu_hilight_callback), - (gpointer*)this ); - - gtk_signal_connect( GTK_OBJECT(menuItem), "deselect", - GTK_SIGNAL_FUNC(gtk_menu_nolight_callback), - (gpointer*)this ); - - if (!item->IsSubMenu()) - { - gtk_signal_connect( GTK_OBJECT(menuItem), "activate", - GTK_SIGNAL_FUNC(gtk_menu_clicked_callback), - (gpointer*)this ); - } - } - - gtk_menu_append( GTK_MENU(m_menu), menuItem ); - gtk_widget_show( menuItem ); - item->SetMenuItem(menuItem); -} - -int wxMenu::FindItem( const wxString itemString ) const -{ - wxString s = _T(""); - for ( const wxChar *pc = itemString; *pc != _T('\0'); pc++ ) - { - if (*pc == _T('&')) - { - pc++; /* skip it */ -#if (GTK_MINOR_VERSION > 0) - s << _T('_'); -#endif - } - s << *pc; - } - - wxNode *node = m_items.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->GetText() == s) - { - return item->GetId(); - } - node = node->Next(); - } - - return wxNOT_FOUND; -} - -void wxMenu::Enable( int id, bool enable ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::Enable: no such item") ); - - item->Enable(enable); -} - -bool wxMenu::IsEnabled( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, FALSE, _T("wxMenu::IsEnabled: no such item") ); - - return item->IsEnabled(); -} - -void wxMenu::Check( int id, bool enable ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::Check: no such item") ); - - item->Check(enable); -} - -bool wxMenu::IsChecked( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, FALSE, _T("wxMenu::IsChecked: no such item") ); - - return item->IsChecked(); -} - -void wxMenu::SetLabel( int id, const wxString &label ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::SetLabel: no such item") ); - - item->SetText(label); -} - -wxString wxMenu::GetLabel( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, _T(""), _T("wxMenu::GetLabel: no such item") ); - - return item->GetText(); -} - -void wxMenu::SetHelpString( int id, const wxString& helpString ) -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_RET( item, _T("wxMenu::SetHelpString: no such item") ); - - item->SetHelp( helpString ); -} - -wxString wxMenu::GetHelpString( int id ) const -{ - wxMenuItem *item = FindItem(id); - - wxCHECK_MSG( item, _T(""), _T("wxMenu::GetHelpString: no such item") ); - - return item->GetHelp(); -} - -int wxMenu::FindMenuIdByMenuItem( GtkWidget *menuItem ) const -{ - wxNode *node = m_items.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->GetMenuItem() == menuItem) - return item->GetId(); - node = node->Next(); - } - - return wxNOT_FOUND; -} - -wxMenuItem *wxMenu::FindItem(int id) const -{ - wxNode *node = m_items.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem*)node->Data(); - if (item->GetId() == id) - { - return item; - } - node = node->Next(); - } - - /* Not finding anything here can be correct - * when search the entire menu system for - * an entry -> no error message. */ - - return (wxMenuItem *) NULL; -} - -void wxMenu::SetInvokingWindow( wxWindow *win ) -{ - m_invokingWindow = win; -} - -wxWindow *wxMenu::GetInvokingWindow() -{ - return m_invokingWindow; -} - -// Update a menu and all submenus recursively. source is the object that has -// the update event handlers defined for it. If NULL, the menu or associated -// window will be used. -void wxMenu::UpdateUI(wxEvtHandler* source) -{ - if (!source && GetInvokingWindow()) - source = GetInvokingWindow()->GetEventHandler(); - if (!source) - source = GetEventHandler(); - if (!source) - source = this; - - wxNode* node = GetItems().First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if ( !item->IsSeparator() ) - { - wxWindowID id = item->GetId(); - wxUpdateUIEvent event(id); - event.SetEventObject( source ); - - if (source->ProcessEvent(event)) - { - if (event.GetSetText()) - SetLabel(id, event.GetText()); - if (event.GetSetChecked()) - Check(id, event.GetChecked()); - if (event.GetSetEnabled()) - Enable(id, event.GetEnabled()); - } - - if (item->GetSubMenu()) - item->GetSubMenu()->UpdateUI(source); - } - node = node->Next(); - } -} - diff --git a/src/gtk1/minifram.cpp b/src/gtk1/minifram.cpp deleted file mode 100644 index a749f18a83..0000000000 --- a/src/gtk1/minifram.cpp +++ /dev/null @@ -1,320 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -#include "wx/minifram.h" -#include "wx/dcscreen.h" - -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -#include "gdk/gdk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkx.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; - -//----------------------------------------------------------------------------- -// local functions -//----------------------------------------------------------------------------- - -/* draw XOR rectangle when moving mine frame around */ - -static void DrawFrame( GtkWidget *widget, int x, int y, int w, int h ) -{ - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( widget->window, &org_x, &org_y ); - x += org_x; - y += org_y; - - GdkGC *gc = gdk_gc_new( GDK_ROOT_PARENT() ); - gdk_gc_set_subwindow( gc, GDK_INCLUDE_INFERIORS ); - gdk_gc_set_function( gc, GDK_INVERT ); - - gdk_draw_rectangle( GDK_ROOT_PARENT(), gc, FALSE, x, y, w, h ); - gdk_gc_unref( gc ); -} - -//----------------------------------------------------------------------------- -// "expose_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (gdk_event->count > 0) return; - - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - 0, 0, - win->m_width, win->m_height ); - - if (!win->m_title.IsEmpty() && - ((win->GetWindowStyle() & wxCAPTION) || - (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) || - (win->GetWindowStyle() & wxTINY_CAPTION_VERT))) - { - GdkGC *gc = gdk_gc_new( widget->window ); - GdkFont *font = wxSMALL_FONT->GetInternalFont(1.0); - int x = 2; - if (win->GetWindowStyle() & wxSYSTEM_MENU) x = 18; - - gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] ); - gdk_draw_rectangle( widget->window, gc, TRUE, - x, - 3, - win->m_width - 4 - x, - font->ascent + font->descent+1 ); - - gdk_gc_set_foreground( gc, &widget->style->white ); - gdk_draw_string( widget->window, font, gc, - x+2, - 3+font->ascent, - win->m_title.mb_str() ); - - gdk_gc_unref( gc ); - } -} - -//----------------------------------------------------------------------------- -// "draw" of m_mainWidget -//----------------------------------------------------------------------------- - -static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - 0, 0, - win->m_width, win->m_height ); - - if (!win->m_title.IsEmpty() && - ((win->GetWindowStyle() & wxCAPTION) || - (win->GetWindowStyle() & wxTINY_CAPTION_HORIZ) || - (win->GetWindowStyle() & wxTINY_CAPTION_VERT))) - { - GdkGC *gc = gdk_gc_new( widget->window ); - GdkFont *font = wxSMALL_FONT->GetInternalFont(1.0); - int x = 2; - if (win->GetWindowStyle() & wxSYSTEM_MENU) x = 17; - - gdk_gc_set_foreground( gc, &widget->style->bg[GTK_STATE_SELECTED] ); - gdk_draw_rectangle( widget->window, gc, TRUE, - x, - 3, - win->m_width - 4 - x, - font->ascent + font->descent+1 ); - - gdk_gc_set_foreground( gc, &widget->style->white ); - gdk_draw_string( widget->window, font, gc, - x+2, - 3+font->ascent, - win->m_title.mb_str() ); - - gdk_gc_unref( gc ); - } -} - -//----------------------------------------------------------------------------- -// "button_press_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (win->m_isDragging) return TRUE; - - gdk_pointer_grab( widget->window, FALSE, - (GdkEventMask) - (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK | - GDK_BUTTON_MOTION_MASK | - GDK_BUTTON1_MOTION_MASK), - (GdkWindow *) NULL, - (GdkCursor *) NULL, - GDK_CURRENT_TIME ); - - win->m_diffX = (int)gdk_event->x; - win->m_diffY = (int)gdk_event->y; - DrawFrame( widget, 0, 0, win->m_width, win->m_height ); - win->m_oldX = 0; - win->m_oldY = 0; - - win->m_isDragging = TRUE; - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxMiniFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (!win->m_isDragging) return TRUE; - - win->m_isDragging = FALSE; - - int x = (int)gdk_event->x; - int y = (int)gdk_event->y; - - DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height ); - gdk_pointer_ungrab ( GDK_CURRENT_TIME ); - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( widget->window, &org_x, &org_y ); - x += org_x - win->m_diffX; - y += org_y - win->m_diffY; - win->m_x = x; - win->m_y = y; - gtk_widget_set_uposition( win->m_widget, x, y ); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "motion_notify_event" of m_mainWidget -//----------------------------------------------------------------------------- - -static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxMiniFrame *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (!win->m_isDragging) return TRUE; - - if (gdk_event->is_hint) - { - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - gdk_event->x = x; - gdk_event->y = y; - gdk_event->state = state; - } - - DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height ); - win->m_oldX = (int)gdk_event->x - win->m_diffX; - win->m_oldY = (int)gdk_event->y - win->m_diffY; - DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height ); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "clicked" of X system button -//----------------------------------------------------------------------------- - -static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFrame *mf ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - mf->Close(); -} - -//----------------------------------------------------------------------------- -// wxMiniFrame -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame,wxFrame) - -bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - style = style | wxSIMPLE_BORDER; - - if ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)) - m_miniTitle = 13; - - m_miniEdge = 3; - m_isDragging = FALSE; - m_oldX = -1; - m_oldY = -1; - m_diffX = 0; - m_diffY = 0; - - wxFrame::Create( parent, id, title, pos, size, style, name ); - - if ((style & wxSYSTEM_MENU) && - ((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT))) - { - GtkWidget *close_button = gtk_button_new_with_label( "x" ); - - gtk_myfixed_put( GTK_MYFIXED(m_mainWidget), - close_button, - 4, 4, 12, 11 ); - - gtk_widget_show( close_button ); - - gtk_signal_connect( GTK_OBJECT(close_button), "clicked", - GTK_SIGNAL_FUNC(gtk_button_clicked_callback), (gpointer*)this ); - } - - /* these are called when the borders are drawn */ - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_own_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "draw", - GTK_SIGNAL_FUNC(gtk_window_own_draw_callback), (gpointer)this ); - - /* these are required for dragging the mini frame around */ - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "button_press_event", - GTK_SIGNAL_FUNC(gtk_window_button_press_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "button_release_event", - GTK_SIGNAL_FUNC(gtk_window_button_release_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_mainWidget), "motion_notify_event", - GTK_SIGNAL_FUNC(gtk_window_motion_notify_callback), (gpointer)this ); - - return TRUE; -} diff --git a/src/gtk1/notebook.cpp b/src/gtk1/notebook.cpp deleted file mode 100644 index 6523a5a5cb..0000000000 --- a/src/gtk1/notebook.cpp +++ /dev/null @@ -1,625 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -#include "wx/notebook.h" -#include "wx/panel.h" -#include "wx/utils.h" -#include "wx/imaglist.h" -#include "wx/intl.h" -#include "wx/log.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" -#include "gdk/gdkkeysyms.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// debug -//----------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -extern void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ); - -#endif - -//----------------------------------------------------------------------------- -// wxNotebookPage -//----------------------------------------------------------------------------- - -class wxNotebookPage: public wxObject -{ -public: - wxNotebookPage() - { - m_text = ""; - m_image = -1; - m_page = (GtkNotebookPage *) NULL; - m_client = (wxWindow *) NULL; - m_box = (GtkWidget *) NULL; - } - - wxString m_text; - int m_image; - GtkNotebookPage *m_page; - GtkLabel *m_label; - wxWindow *m_client; - GtkWidget *m_box; // in which the label and image are packed -}; - -//----------------------------------------------------------------------------- -// "switch_page" -//----------------------------------------------------------------------------- - -static void gtk_notebook_page_change_callback(GtkNotebook *WXUNUSED(widget), - GtkNotebookPage *WXUNUSED(page), - gint page, - wxNotebook *notebook ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - int old = notebook->GetSelection(); - - wxNotebookEvent event1( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, - notebook->GetId(), page, old ); - event1.SetEventObject( notebook ); - - if ((notebook->GetEventHandler()->ProcessEvent( event1 )) && - !event1.IsAllowed() ) - { - /* program doesn't allow the page change */ - gtk_signal_emit_stop_by_name( GTK_OBJECT(notebook->m_widget), "switch_page" ); - return; - } - - wxNotebookEvent event2( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, - notebook->GetId(), page, old ); - event2.SetEventObject( notebook ); - notebook->GetEventHandler()->ProcessEvent( event2 ); -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if ((win->m_x == alloc->x) && - (win->m_y == alloc->y) && - (win->m_width == alloc->width) && - (win->m_height == alloc->height)) - { - return; - } - - win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height ); - - if (win->GetAutoLayout()) win->Layout(); -} - -//----------------------------------------------------------------------------- -// "key_press_event" -//----------------------------------------------------------------------------- - -static gint -gtk_notebook_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxNotebook *notebook ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return FALSE; - - if (!notebook->m_hasVMT) return FALSE; - - /* this code makes jumping down from the handles of the notebooks - to the actual items in the visible notebook page possible with - the down-arrow key */ - - if (gdk_event->keyval != GDK_Down) return FALSE; - - if (notebook != notebook->FindFocus()) return FALSE; - - if (notebook->m_pages.GetCount() == 0) return FALSE; - - wxNode *node = notebook->m_pages.Nth( notebook->GetSelection() ); - - if (!node) return FALSE; - - wxNotebookPage *page = (wxNotebookPage*) node->Data(); - - // don't let others the key event - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" ); - - page->m_client->SetFocus(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// InsertChild callback for wxNotebook -//----------------------------------------------------------------------------- - -static void wxInsertChildInNotebook( wxNotebook* WXUNUSED(parent), wxWindow* WXUNUSED(child) ) -{ - /* we don't do anything here but pray */ -} - -//----------------------------------------------------------------------------- -// wxNotebook -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxControl) - -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -END_EVENT_TABLE() - -void wxNotebook::Init() -{ - m_imageList = (wxImageList *) NULL; - m_pages.DeleteContents( TRUE ); - m_lastSelection = -1; -} - -wxNotebook::wxNotebook() -{ - Init(); -} - -wxNotebook::wxNotebook( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - Init(); - Create( parent, id, pos, size, style, name ); -} - -wxNotebook::~wxNotebook() -{ - /* don't generate change page events any more */ - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this ); - - DeleteAllPages(); -} - -bool wxNotebook::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - m_insertCallback = (wxInsertChildFunction)wxInsertChildInNotebook; - - PreCreation( parent, id, pos, size, style, name ); - - m_widget = gtk_notebook_new(); - -#ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxNotebook::m_widget"), name ); -#endif - - gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page", - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer)this ); - - m_parent->DoAddChild( this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "key_press_event", - GTK_SIGNAL_FUNC(gtk_notebook_key_press_callback), (gpointer)this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -int wxNotebook::GetSelection() const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); - - GList *pages = GTK_NOTEBOOK(m_widget)->children; - - if (g_list_length(pages) == 0) return -1; - - GtkNotebook *notebook = GTK_NOTEBOOK(m_widget); - - if (notebook->cur_page == NULL) return m_lastSelection; - - return g_list_index( pages, (gpointer)(notebook->cur_page) ); -} - -int wxNotebook::GetPageCount() const -{ - return (int) g_list_length( GTK_NOTEBOOK(m_widget)->children ); -} - -int wxNotebook::GetRowCount() const -{ - return 1; -} - -wxString wxNotebook::GetPageText( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - if (nb_page) - return nb_page->m_text; - else - return ""; -} - -int wxNotebook::GetPageImage( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - if (nb_page) - return nb_page->m_image; - else - return -1; -} - -wxNotebookPage* wxNotebook::GetNotebookPage( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, (wxNotebookPage*) NULL, _T("invalid notebook") ); - - wxCHECK_MSG( page < (int)m_pages.GetCount(), (wxNotebookPage*) NULL, _T("invalid notebook index") ); - - wxNode *node = m_pages.Nth( page ); - - return (wxNotebookPage *) node->Data(); -} - -int wxNotebook::SetSelection( int page ) -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid notebook") ); - - wxCHECK_MSG( page < (int)m_pages.GetCount(), -1, _T("invalid notebook index") ); - - int selOld = GetSelection(); - - gtk_notebook_set_page( GTK_NOTEBOOK(m_widget), page ); - - return selOld; -} - -void wxNotebook::AdvanceSelection( bool forward ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid notebook") ); - - int sel = GetSelection(); - int max = GetPageCount(); - - if (forward) - SetSelection( sel == max ? 0 : sel + 1 ); - else - SetSelection( sel == 0 ? max-1 : sel - 1 ); -} - -void wxNotebook::SetImageList( wxImageList* imageList ) -{ - m_imageList = imageList; -} - -bool wxNotebook::SetPageText( int page, const wxString &text ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - - wxCHECK_MSG( nb_page, FALSE, _T("SetPageText: invalid page index") ); - - nb_page->m_text = text; - - gtk_label_set( nb_page->m_label, nb_page->m_text.mbc_str() ); - - return TRUE; -} - -bool wxNotebook::SetPageImage( int page, int image ) -{ - /* HvdH 28-12-98: now it works, but it's a bit of a kludge */ - - wxNotebookPage* nb_page = GetNotebookPage(page); - - if (!nb_page) return FALSE; - - /* Optimization posibility: return immediately if image unchanged. - * Not enabled because it may break existing (stupid) code that - * manipulates the imagelist to cycle images */ - - /* if (image == nb_page->m_image) return TRUE; */ - - /* For different cases: - 1) no image -> no image - 2) image -> no image - 3) no image -> image - 4) image -> image */ - - if (image == -1 && nb_page->m_image == -1) - return TRUE; /* Case 1): Nothing to do. */ - - GtkWidget *pixmapwid = (GtkWidget*) NULL; - - if (nb_page->m_image != -1) - { - /* Case 2) or 4). There is already an image in the gtkhbox. Let's find it */ - - GList *child = gtk_container_children(GTK_CONTAINER(nb_page->m_box)); - while (child) - { - if (GTK_IS_PIXMAP(child->data)) - { - pixmapwid = GTK_WIDGET(child->data); - break; - } - child = child->next; - } - - /* We should have the pixmap widget now */ - wxASSERT(pixmapwid != NULL); - - if (image == -1) - { - /* If there's no new widget, just remove the old from the box */ - gtk_container_remove(GTK_CONTAINER(nb_page->m_box), pixmapwid); - nb_page->m_image = -1; - - return TRUE; /* Case 2) */ - } - } - - /* Only cases 3) and 4) left */ - wxASSERT( m_imageList != NULL ); /* Just in case */ - - /* Construct the new pixmap */ - const wxBitmap *bmp = m_imageList->GetBitmap(image); - GdkPixmap *pixmap = bmp->GetPixmap(); - GdkBitmap *mask = (GdkBitmap*) NULL; - if ( bmp->GetMask() ) - { - mask = bmp->GetMask()->GetBitmap(); - } - - if (pixmapwid == NULL) - { - /* Case 3) No old pixmap. Create a new one and prepend it to the hbox */ - pixmapwid = gtk_pixmap_new (pixmap, mask ); - - /* CHECKME: Are these pack flags okay? */ - gtk_box_pack_start(GTK_BOX(nb_page->m_box), pixmapwid, FALSE, FALSE, 3); - gtk_widget_show(pixmapwid); - } - else - { - /* Case 4) Simply replace the pixmap */ - gtk_pixmap_set(GTK_PIXMAP(pixmapwid), pixmap, mask); - } - - nb_page->m_image = image; - - return TRUE; -} - -void wxNotebook::SetPageSize( const wxSize &WXUNUSED(size) ) -{ - wxFAIL_MSG( _T("wxNotebook::SetPageSize not implemented") ); -} - -void wxNotebook::SetPadding( const wxSize &WXUNUSED(padding) ) -{ - wxFAIL_MSG( _T("wxNotebook::SetPadding not implemented") ); -} - -void wxNotebook::SetTabSize(const wxSize& WXUNUSED(sz)) -{ - wxFAIL_MSG( _T("wxNotebook::SetTabSize not implemented") ); -} - -bool wxNotebook::DeleteAllPages() -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); - - while (m_pages.GetCount() > 0) - DeletePage( m_pages.GetCount()-1 ); - - return TRUE; -} - -bool wxNotebook::DeletePage( int page ) -{ - wxNotebookPage* nb_page = GetNotebookPage(page); - if (!nb_page) return FALSE; - - /* GTK sets GtkNotebook.cur_page to NULL before sending - the switvh page event */ - m_lastSelection = GetSelection(); - - nb_page->m_client->Destroy(); - m_pages.DeleteObject( nb_page ); - - m_lastSelection = -1; - - return TRUE; -} - -bool wxNotebook::RemovePage( int page ) -{ - wxNotebookPage* nb_page = GetNotebookPage(page); - - if (!nb_page) return FALSE; - - gtk_notebook_remove_page( GTK_NOTEBOOK(m_widget), page ); - - m_pages.DeleteObject( nb_page ); - - return TRUE; -} - -bool wxNotebook::InsertPage( int position, wxWindow* win, const wxString& text, - bool select, int imageId ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid notebook") ); - - wxCHECK_MSG( win->GetParent() == this, FALSE, - _T("Can't add a page whose parent is not the notebook!") ); - - /* don't receive switch page during addition */ - gtk_signal_disconnect_by_func( GTK_OBJECT(m_widget), - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer) this ); - - GtkNotebook *notebook = GTK_NOTEBOOK(m_widget); - - wxNotebookPage *page = new wxNotebookPage(); - - if (position < 0) - m_pages.Append( page ); - else - m_pages.Insert( m_pages.Nth( position ), page ); - - page->m_client = win; - - page->m_box = gtk_hbox_new( FALSE, 0 ); - gtk_container_border_width( GTK_CONTAINER(page->m_box), 2 ); - - if (position < 0) - gtk_notebook_append_page( notebook, win->m_widget, page->m_box ); - else - gtk_notebook_insert_page( notebook, win->m_widget, page->m_box, position ); - - page->m_page = GTK_NOTEBOOK_PAGE( g_list_last(notebook->children)->data ); - - gtk_signal_connect( GTK_OBJECT(win->m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)win ); - - /* set the label image */ - page->m_image = imageId; - - if (imageId != -1) - { - wxASSERT( m_imageList != NULL ); - - const wxBitmap *bmp = m_imageList->GetBitmap(imageId); - GdkPixmap *pixmap = bmp->GetPixmap(); - GdkBitmap *mask = (GdkBitmap*) NULL; - if ( bmp->GetMask() ) - { - mask = bmp->GetMask()->GetBitmap(); - } - - GtkWidget *pixmapwid = gtk_pixmap_new (pixmap, mask ); - - gtk_box_pack_start(GTK_BOX(page->m_box), pixmapwid, FALSE, FALSE, 3); - - gtk_widget_show(pixmapwid); - } - - /* set the label text */ - page->m_text = text; - if (page->m_text.IsEmpty()) page->m_text = _T(""); - - page->m_label = GTK_LABEL( gtk_label_new(page->m_text.mbc_str()) ); - gtk_box_pack_end( GTK_BOX(page->m_box), GTK_WIDGET(page->m_label), FALSE, FALSE, 3 ); - - /* show the label */ - gtk_widget_show( GTK_WIDGET(page->m_label) ); - - if (select && (m_pages.GetCount() > 1)) - { - if (position < 0) - SetSelection( GetPageCount()-1 ); - else - SetSelection( position ); - } - - gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page", - GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback), (gpointer)this ); - - return TRUE; -} - -bool wxNotebook::AddPage(wxWindow* win, const wxString& text, - bool select, int imageId) -{ - return InsertPage( -1, win, text, select, imageId ); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if (event.IsWindowChange()) - AdvanceSelection( event.GetDirection() ); - else - event.Skip(); -} - -wxWindow *wxNotebook::GetPage( int page ) const -{ - wxCHECK_MSG( m_widget != NULL, (wxWindow*) NULL, _T("invalid notebook") ); - - wxNotebookPage* nb_page = GetNotebookPage(page); - if (!nb_page) - return (wxWindow *) NULL; - else - return nb_page->m_client; -} - -// override these 2 functions to do nothing: everything is done in OnSize -void wxNotebook::SetConstraintSizes( bool WXUNUSED(recurse) ) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase( int WXUNUSED(nPhase) ) -{ - return TRUE; -} - -void wxNotebook::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - -bool wxNotebook::IsOwnGtkWindow( GdkWindow *window ) -{ - return ((m_widget->window == window) || - (GTK_NOTEBOOK(m_widget)->panel == window)); -} - -//----------------------------------------------------------------------------- -// wxNotebookEvent -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) - diff --git a/src/gtk1/palette.cpp b/src/gtk1/palette.cpp deleted file mode 100644 index 37b7e4d3a4..0000000000 --- a/src/gtk1/palette.cpp +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// wxPalette -//----------------------------------------------------------------------------- - -class wxPaletteRefData: public wxObjectRefData -{ - public: - - wxPaletteRefData(void); - ~wxPaletteRefData(void); - - GdkColormap *m_colormap; -}; - -wxPaletteRefData::wxPaletteRefData() -{ - m_colormap = (GdkColormap *) NULL; -} - -wxPaletteRefData::~wxPaletteRefData() -{ - if (m_colormap) gdk_colormap_unref( m_colormap ); -} - -//----------------------------------------------------------------------------- - -#define M_PALETTEDATA ((wxPaletteRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxPalette,wxGDIObject) - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette( int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue ) -{ - m_refData = new wxPaletteRefData(); - Create( n, red, green, blue ); -} - -wxPalette::wxPalette( const wxPalette& palette ) -{ - Ref( palette ); -} - -wxPalette::~wxPalette() -{ -} - -wxPalette& wxPalette::operator = ( const wxPalette& palette ) -{ - if (*this == palette) return (*this); - Ref( palette ); - return *this; -} - -bool wxPalette::operator == ( const wxPalette& palette ) -{ - return m_refData == palette.m_refData; -} - -bool wxPalette::operator != ( const wxPalette& palette ) -{ - return m_refData != palette.m_refData; -} - -bool wxPalette::Ok(void) const -{ - return (m_refData != NULL); -} - -bool wxPalette::Create( int WXUNUSED(n), - const unsigned char *WXUNUSED(red), - const unsigned char *WXUNUSED(green), - const unsigned char *WXUNUSED(blue) ) -{ - wxFAIL_MSG(_T("not implemented")); - - return FALSE; -} - -int wxPalette::GetPixel( const unsigned char WXUNUSED(red), - const unsigned char WXUNUSED(green), - const unsigned char WXUNUSED(blue) ) const -{ - wxFAIL_MSG(_T("not implemented")); - - return 0; -} - -bool wxPalette::GetRGB( int WXUNUSED(pixel), - unsigned char *WXUNUSED(red), - unsigned char *WXUNUSED(green), - unsigned char *WXUNUSED(blue) ) const -{ - wxFAIL_MSG(_T("not implemented")); - - return 0; -} - diff --git a/src/gtk1/pen.cpp b/src/gtk1/pen.cpp deleted file mode 100644 index 1e2205e78d..0000000000 --- a/src/gtk1/pen.cpp +++ /dev/null @@ -1,192 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/pen.h" - -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// wxPen -//----------------------------------------------------------------------------- - -class wxPenRefData: public wxObjectRefData -{ -public: - - wxPenRefData(void); - wxPenRefData(const wxPenRefData& data); - - int m_width; - int m_style; - int m_joinStyle; - int m_capStyle; - wxColour m_colour; -}; - -wxPenRefData::wxPenRefData() -{ - m_width = 1; - m_style = wxSOLID; - m_joinStyle = wxJOIN_ROUND; - m_capStyle = wxCAP_ROUND; -} - -wxPenRefData::wxPenRefData( const wxPenRefData& data ) -{ - m_style = data.m_style; - m_width = data.m_width; - m_joinStyle = data.m_joinStyle; - m_capStyle = data.m_capStyle; - m_colour = data.m_colour; -} - -//----------------------------------------------------------------------------- - -#define M_PENDATA ((wxPenRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxPen,wxGDIObject) - -wxPen::wxPen() -{ - if (wxThePenList) wxThePenList->AddPen( this ); -} - -wxPen::wxPen( const wxColour &colour, int width, int style ) -{ - m_refData = new wxPenRefData(); - M_PENDATA->m_width = width; - M_PENDATA->m_style = style; - M_PENDATA->m_colour = colour; - - if (wxThePenList) wxThePenList->AddPen( this ); -} - -wxPen::wxPen( const wxPen& pen ) -{ - Ref( pen ); - if (wxThePenList) wxThePenList->AddPen( this ); -} - -wxPen::~wxPen() -{ - if (wxThePenList) wxThePenList->RemovePen( this ); -} - -wxPen& wxPen::operator = ( const wxPen& pen ) -{ - if (*this == pen) return (*this); - Ref( pen ); - return *this; -} - -bool wxPen::operator == ( const wxPen& pen ) -{ - return m_refData == pen.m_refData; -} - -bool wxPen::operator != ( const wxPen& pen ) -{ - return m_refData != pen.m_refData; -} - -void wxPen::SetColour( const wxColour &colour ) -{ - Unshare(); - M_PENDATA->m_colour = colour; -} - -void wxPen::SetColour( int red, int green, int blue ) -{ - Unshare(); - M_PENDATA->m_colour.Set( red, green, blue ); -} - -void wxPen::SetCap( int capStyle ) -{ - Unshare(); - M_PENDATA->m_capStyle = capStyle; -} - -void wxPen::SetJoin( int joinStyle ) -{ - Unshare(); - M_PENDATA->m_joinStyle = joinStyle; -} - -void wxPen::SetStyle( int style ) -{ - Unshare(); - M_PENDATA->m_style = style; -} - -void wxPen::SetWidth( int width ) -{ - Unshare(); - M_PENDATA->m_width = width; -} - -int wxPen::GetCap() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_capStyle; -} - -int wxPen::GetJoin() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_joinStyle; -} - -int wxPen::GetStyle() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_style; -} - -int wxPen::GetWidth() const -{ - wxCHECK_MSG( Ok(), -1, _T("invalid pen") ); - - return M_PENDATA->m_width; -} - -wxColour &wxPen::GetColour() const -{ - wxCHECK_MSG( Ok(), wxNullColour, _T("invalid pen") ); - - return M_PENDATA->m_colour; -} - -bool wxPen::Ok() const -{ - return (m_refData != NULL); -} - -void wxPen::Unshare() -{ - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData( *(wxPenRefData*)m_refData ); - UnRef(); - m_refData = ref; - } -} - diff --git a/src/gtk1/radiobox.cpp b/src/gtk1/radiobox.cpp deleted file mode 100644 index 432496cd91..0000000000 --- a/src/gtk1/radiobox.cpp +++ /dev/null @@ -1,518 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" -#include "wx/dialog.h" -#include "wx/frame.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "wx/gtk/win_gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRadioBox *rb ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!rb->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - if (rb->m_alreadySent) - { - rb->m_alreadySent = FALSE; - return; - } - - rb->m_alreadySent = TRUE; - - wxCommandEvent event( wxEVT_COMMAND_RADIOBOX_SELECTED, rb->GetId() ); - event.SetInt( rb->GetSelection() ); - event.SetString( rb->GetStringSelection() ); - event.SetEventObject( rb ); - rb->GetEventHandler()->ProcessEvent(event); -} - -//----------------------------------------------------------------------------- -// wxRadioBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox,wxControl) - -BEGIN_EVENT_TABLE(wxRadioBox, wxControl) - EVT_SIZE(wxRadioBox::OnSize) -END_EVENT_TABLE() - -wxRadioBox::wxRadioBox() -{ -} - -bool wxRadioBox::Create( wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint &pos, const wxSize &size, - int n, const wxString choices[], int majorDim, - long style, const wxValidator& validator, - const wxString &name ) -{ - m_alreadySent = FALSE; - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_widget = gtk_frame_new( title.mbc_str() ); - - m_majorDim = majorDim; - - GtkRadioButton *m_radio = (GtkRadioButton*) NULL; - - GSList *radio_button_group = (GSList *) NULL; - for (int i = 0; i < n; i++) - { - if (i) radio_button_group = gtk_radio_button_group( GTK_RADIO_BUTTON(m_radio) ); - - m_radio = GTK_RADIO_BUTTON( gtk_radio_button_new_with_label( radio_button_group, choices[i].mbc_str() ) ); - - m_boxes.Append( (wxObject*) m_radio ); - - ConnectWidget( GTK_WIDGET(m_radio) ); - - if (!i) gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_radio), TRUE ); - - gtk_signal_connect( GTK_OBJECT(m_radio), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - gtk_myfixed_put( GTK_MYFIXED(m_parent->m_wxwindow), - GTK_WIDGET(m_radio), - m_x+10, m_y+10+(i*24), 10, 10 ); - } - - wxSize ls = LayoutItems(); - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = ls.x; - if (newSize.y == -1) newSize.y = ls.y; - SetSize( newSize.x, newSize.y ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetLabel( title ); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxRadioBox::~wxRadioBox() -{ - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - gtk_widget_destroy( button ); - node = node->Next(); - } -} - -void wxRadioBox::OnSize( wxSizeEvent &event ) -{ - LayoutItems(); - - event.Skip(); -} - -wxSize wxRadioBox::LayoutItems() -{ - int x = 7; - int y = 15; - - int num_per_major = (m_boxes.GetCount() - 1) / m_majorDim +1; - - wxSize res( 0, 0 ); - - if (m_windowStyle & wxRA_HORIZONTAL) - { - - for (int j = 0; j < m_majorDim; j++) - { - y = 15; - - int max_len = 0; - wxNode *node = m_boxes.Nth( j*num_per_major ); - for (int i1 = 0; i1< num_per_major; i1++) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child ); - GdkFont *font = m_widget->style->font; - int len = 22+gdk_string_measure( font, label->label ); - if (len > max_len) max_len = len; - - gtk_myfixed_move( GTK_MYFIXED(m_parent->m_wxwindow), button, m_x+x, m_y+y ); - y += 20; - - node = node->Next(); - if (!node) break; - } - - // we don't know the max_len before - - node = m_boxes.Nth( j*num_per_major ); - for (int i2 = 0; i2< num_per_major; i2++) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - gtk_myfixed_resize( GTK_MYFIXED(m_parent->m_wxwindow), button, max_len, 20 ); - - node = node->Next(); - if (!node) break; - } - - if (y > res.y) res.y = y; - - x += max_len + 2; - } - - res.x = x+4; - res.y += 9; - } - else - { - int max = 0; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkLabel *label = GTK_LABEL( button->child ); - - GdkFont *font = m_widget->style->font; - int len = 22+gdk_string_measure( font, label->label ); - if (len > max) max = len; - - node = node->Next(); - } - - node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - gtk_myfixed_set_size( GTK_MYFIXED(m_parent->m_wxwindow), button, m_x+x, m_y+y, max, 20 ); - x += max; - - node = node->Next(); - } - res.x = x+4; - res.y = 42; - } - - return res; -} - -bool wxRadioBox::Show( bool show ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobox") ); - - wxWindow::Show( show ); - - if ((m_windowStyle & wxNO_BORDER) != 0) - gtk_widget_hide( m_widget ); - - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - if (show) gtk_widget_show( button ); else gtk_widget_hide( button ); - - node = node->Next(); - } - - return TRUE; -} - -int wxRadioBox::FindString( const wxString &s ) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid radiobox") ); - - int count = 0; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkButton *button = GTK_BUTTON( node->Data() ); - - GtkLabel *label = GTK_LABEL( button->child ); - if (s == label->label) return count; - count++; - - node = node->Next(); - } - - return -1; -} - -void wxRadioBox::SetFocus() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - if (m_boxes.GetCount() == 0) return; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - if (button->active) - { - gtk_widget_grab_focus( GTK_WIDGET(button) ); - - return; - } - node = node->Next(); - } - -} - -void wxRadioBox::SetSelection( int n ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( n ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - - gtk_toggle_button_set_state( button, 1 ); -} - -int wxRadioBox::GetSelection(void) const -{ - wxCHECK_MSG( m_widget != NULL, -1, _T("invalid radiobox") ); - - int count = 0; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - if (button->active) return count; - count++; - node = node->Next(); - } - - wxFAIL_MSG( _T("wxRadioBox none selected") ); - - return -1; -} - -wxString wxRadioBox::GetString( int n ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( n ); - - wxCHECK_MSG( node, _T(""), _T("radiobox wrong index") ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkLabel *label = GTK_LABEL( button->child ); - - return wxString( label->label ); -} - -wxString wxRadioBox::GetLabel( int item ) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid radiobox") ); - - return GetString( item ); -} - -void wxRadioBox::SetLabel( const wxString& label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxControl::SetLabel( label ); - - gtk_frame_set_label( GTK_FRAME(m_widget), wxControl::GetLabel().mbc_str() ); -} - -void wxRadioBox::SetLabel( int item, const wxString& label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( item ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkLabel *g_label = GTK_LABEL( button->child ); - - gtk_label_set( g_label, label.mbc_str() ); -} - -void wxRadioBox::SetLabel( int WXUNUSED(item), wxBitmap *WXUNUSED(bitmap) ) -{ - wxFAIL_MSG(_T("wxRadioBox::SetLabel not implemented.")); -} - -bool wxRadioBox::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkWidget *label = button->child; - gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); - gtk_widget_set_sensitive( label, enable ); - node = node->Next(); - } - - return TRUE; -} - -void wxRadioBox::Enable( int item, bool enable ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( item ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - GtkWidget *label = button->child; - gtk_widget_set_sensitive( GTK_WIDGET(button), enable ); - gtk_widget_set_sensitive( label, enable ); -} - -void wxRadioBox::Show( int item, bool show ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobox") ); - - wxNode *node = m_boxes.Nth( item ); - - wxCHECK_RET( node, _T("radiobox wrong index") ); - - GtkWidget *button = GTK_WIDGET( node->Data() ); - - if (show) - gtk_widget_show( button ); - else - gtk_widget_hide( button ); -} - -wxString wxRadioBox::GetStringSelection(void) const -{ - wxCHECK_MSG( m_widget != NULL, _T(""), _T("invalid radiobox") ); - - wxNode *node = m_boxes.First(); - while (node) - { - GtkToggleButton *button = GTK_TOGGLE_BUTTON( node->Data() ); - if (button->active) - { - GtkLabel *label = GTK_LABEL( GTK_BUTTON(button)->child ); - return label->label; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wxRadioBox none selected") ); - return _T(""); -} - -bool wxRadioBox::SetStringSelection( const wxString &s ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobox") ); - - int res = FindString( s ); - if (res == -1) return FALSE; - SetSelection( res ); - - return TRUE; -} - -int wxRadioBox::Number(void) const -{ - return m_boxes.Number(); -} - -int wxRadioBox::GetNumberOfRowsOrCols(void) const -{ - return 1; -} - -void wxRadioBox::SetNumberOfRowsOrCols( int WXUNUSED(n) ) -{ - wxFAIL_MSG(_T("wxRadioBox::SetNumberOfRowsOrCols not implemented.")); -} - -void wxRadioBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - - gtk_widget_set_style( m_widget, m_widgetStyle ); - - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *widget = GTK_WIDGET( node->Data() ); - gtk_widget_set_style( widget, m_widgetStyle ); - - GtkButton *button = GTK_BUTTON( node->Data() ); - gtk_widget_set_style( button->child, m_widgetStyle ); - - node = node->Next(); - } -} - -bool wxRadioBox::IsOwnGtkWindow( GdkWindow *window ) -{ - if (window == m_widget->window) return TRUE; - - wxNode *node = m_boxes.First(); - while (node) - { - GtkWidget *button = GTK_WIDGET( node->Data() ); - - if (window == button->window) return TRUE; - - node = node->Next(); - } - - return FALSE; -} diff --git a/src/gtk1/radiobut.cpp b/src/gtk1/radiobut.cpp deleted file mode 100644 index 8ccd9ef3c0..0000000000 --- a/src/gtk1/radiobut.cpp +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" -//----------------------------------------------------------------------------- - -static -void gtk_radiobutton_clicked_callback( GtkWidget *WXUNUSED(widget), wxRadioButton *rb ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!rb->m_hasVMT) return; - - if (rb->m_blockFirstEvent) - { - rb->m_blockFirstEvent = FALSE; - return; - } - - if (g_blockEventsOnDrag) return; - - wxCommandEvent event( wxEVT_COMMAND_RADIOBUTTON_SELECTED, rb->GetId()); - event.SetInt( rb->GetValue() ); - event.SetEventObject( rb ); - rb->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxRadioButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton,wxControl) - -bool wxRadioButton::Create( wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, const wxSize& size, long style, - const wxValidator& validator, const wxString& name ) -{ - m_acceptsFocus = TRUE; - m_needParent = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, newSize, style, name ); - - SetValidator( validator ); - - m_widget = gtk_radio_button_new_with_label( (GSList *) NULL, label.mbc_str() ); - - m_theOtherRadioButtton = - gtk_radio_button_new_with_label( - gtk_radio_button_group( GTK_RADIO_BUTTON(m_widget) ), - "button2" ); - - SetLabel(label); - - m_blockFirstEvent = FALSE; - - if (newSize.x == -1) newSize.x = 22+gdk_string_measure( m_widget->style->font, label.mbc_str() ); - if (newSize.y == -1) newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "clicked", - GTK_SIGNAL_FUNC(gtk_radiobutton_clicked_callback), (gpointer*)this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxRadioButton::SetLabel( const wxString& label ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); - - wxControl::SetLabel( label ); - GtkButton *bin = GTK_BUTTON( m_widget ); - GtkLabel *g_label = GTK_LABEL( bin->child ); - gtk_label_set( g_label, GetLabel().mbc_str() ); -} - -void wxRadioButton::SetValue( bool val ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid radiobutton") ); - - if ( val == GetValue() ) - return; - - m_blockFirstEvent = TRUE; - - if (val) - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_widget), TRUE ); - else - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(m_theOtherRadioButtton), TRUE ); -} - -bool wxRadioButton::GetValue() const -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid radiobutton") ); - - return GTK_TOGGLE_BUTTON(m_widget)->active; -} - -bool wxRadioButton::Enable( bool enable ) -{ - if ( !wxControl::Enable( enable ) ) - return FALSE; - - gtk_widget_set_sensitive( GTK_BUTTON(m_widget)->child, enable ); - - return TRUE; -} - -void wxRadioButton::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); - gtk_widget_set_style( GTK_BUTTON(m_widget)->child, m_widgetStyle ); -} diff --git a/src/gtk1/region.cpp b/src/gtk1/region.cpp deleted file mode 100644 index 305967bc7d..0000000000 --- a/src/gtk1/region.cpp +++ /dev/null @@ -1,440 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: region.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/region.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -#ifdef __WXDEBUG__ -#ifdef NULL -#undef NULL -#endif -#define NULL ((void*)0L) -#endif - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -class wxRegionRefData: public wxObjectRefData -{ - public: - - wxRegionRefData(void); - ~wxRegionRefData(void); - - public: - - GdkRegion *m_region; - wxList m_rects; -}; - -wxRegionRefData::wxRegionRefData(void) -{ - m_region = (GdkRegion *) NULL; -} - -wxRegionRefData::~wxRegionRefData(void) -{ - if (m_region) gdk_region_destroy( m_region ); - - wxNode *node = m_rects.First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - delete r; - node = node->Next(); - } -} - -//----------------------------------------------------------------------------- - -#define M_REGIONDATA ((wxRegionRefData *)m_refData) - -IMPLEMENT_DYNAMIC_CLASS(wxRegion,wxGDIObject); - -wxRegion::wxRegion( long x, long y, long w, long h ) -{ - m_refData = new wxRegionRefData(); - GdkRegion *reg = gdk_region_new(); - GdkRectangle rect; - rect.x = x; - rect.y = y; - rect.width = w; - rect.height = h; - M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &rect ); - gdk_region_destroy( reg ); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(x,y,w,h) ); -} - -wxRegion::wxRegion( const wxPoint& topLeft, const wxPoint& bottomRight ) -{ - m_refData = new wxRegionRefData(); - GdkRegion *reg = gdk_region_new(); - GdkRectangle rect; - rect.x = topLeft.x; - rect.y = topLeft.y; - rect.width = bottomRight.x - rect.x; - rect.height = bottomRight.y - rect.y; - M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &rect ); - gdk_region_destroy( reg ); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(topLeft,bottomRight) ); -} - -wxRegion::wxRegion( const wxRect& rect ) -{ - m_refData = new wxRegionRefData(); - GdkRegion *reg = gdk_region_new(); - GdkRectangle g_rect; - g_rect.x = rect.x; - g_rect.y = rect.y; - g_rect.width = rect.width; - g_rect.height = rect.height; - M_REGIONDATA->m_region = gdk_region_union_with_rect( reg, &g_rect ); - gdk_region_destroy( reg ); - - wxNode *node = M_REGIONDATA->m_rects.First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) ); - node = node->Next(); - } -} - -wxRegion::wxRegion(void) -{ - m_refData = new wxRegionRefData(); - M_REGIONDATA->m_region = gdk_region_new(); -} - -wxRegion::~wxRegion(void) -{ -} - -bool wxRegion::operator == ( const wxRegion& region ) -{ - return m_refData == region.m_refData; -} - -bool wxRegion::operator != ( const wxRegion& region ) -{ - return m_refData != region.m_refData; -} - -void wxRegion::Clear(void) -{ - UnRef(); - m_refData = new wxRegionRefData(); - M_REGIONDATA->m_region = gdk_region_new(); -} - -bool wxRegion::Union( long x, long y, long width, long height ) -{ - GdkRectangle rect; - rect.x = x; - rect.y = y; - rect.width = width; - rect.height = height; - GdkRegion *reg = gdk_region_union_with_rect( M_REGIONDATA->m_region, &rect ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(x,y,width,height) ); - return TRUE; -} - -bool wxRegion::Union( const wxRect& rect ) -{ - GdkRectangle g_rect; - g_rect.x = rect.x; - g_rect.y = rect.y; - g_rect.width = rect.width; - g_rect.height = rect.height; - GdkRegion *reg = gdk_region_union_with_rect( M_REGIONDATA->m_region, &g_rect ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(rect.x,rect.y,rect.width,rect.height) ); - return TRUE; -} - -bool wxRegion::Union( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_union( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - - wxNode *node = region.GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) ); - node = node->Next(); - } - - return TRUE; -} - -bool wxRegion::Intersect( long x, long y, long width, long height ) -{ - wxRegion reg( x, y, width, height ); - Intersect( reg ); - return TRUE; -} - -bool wxRegion::Intersect( const wxRect& rect ) -{ - wxRegion reg( rect ); - Intersect( reg ); - return TRUE; -} - -bool wxRegion::Intersect( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_intersect( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - return TRUE; -} - -bool wxRegion::Subtract( long x, long y, long width, long height ) -{ - wxRegion reg( x, y, width, height ); - Subtract( reg ); - return TRUE; -} - -bool wxRegion::Subtract( const wxRect& rect ) -{ - wxRegion reg( rect ); - Subtract( reg ); - return TRUE; -} - -bool wxRegion::Subtract( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_subtract( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - return TRUE; -} - -bool wxRegion::Xor( long x, long y, long width, long height ) -{ - wxRegion reg( x, y, width, height ); - Xor( reg ); - return TRUE; -} - -bool wxRegion::Xor( const wxRect& rect ) -{ - wxRegion reg( rect ); - Xor( reg ); - return TRUE; -} - -bool wxRegion::Xor( const wxRegion& region ) -{ - GdkRegion *reg = gdk_regions_xor( M_REGIONDATA->m_region, region.GetRegion() ); - gdk_region_destroy( M_REGIONDATA->m_region ); - M_REGIONDATA->m_region = reg; - - wxNode *node = region.GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - M_REGIONDATA->m_rects.Append( (wxObject*) new wxRect(r->x,r->y,r->width,r->height) ); - node = node->Next(); - } - - return TRUE; -} - -void wxRegion::GetBox( long& x, long& y, long&w, long &h ) const -{ - x = 0; - y = 0; - w = -1; - h = -1; - wxNode *node = GetRectList()->First(); - while (node) - { - wxRect *r = (wxRect*)node->Data(); - if (node == GetRectList()->First()) - { - x = r->x; - y = r->y; - w = r->width; - h = r->height; - } - else - { - if (r->x < x) - { - x = r->x; - w += x - r->x; - } - if (r->y < y) - { - y = r->y; - h += y - r->y; - } - if (r->width+r->x > x+w) - { - w = r->x + r->width - x; - } - if (r->height+r->y > y+h) - { - h = r->y + r->height - y; - } - } - node = node->Next(); - } -} - -wxRect wxRegion::GetBox(void) const -{ - long x = 0; - long y = 0; - long w = -1; - long h = -1; - GetBox( x, y, w, h ); - return wxRect( x, y, w, h ); -} - -bool wxRegion::Empty(void) const -{ - return gdk_region_empty( M_REGIONDATA->m_region ); -} - -wxRegionContain wxRegion::Contains( long x, long y ) const -{ - if (gdk_region_point_in( M_REGIONDATA->m_region, x, y )) - return wxInRegion; - else - return wxOutRegion; -} - -wxRegionContain wxRegion::Contains( long x, long y, long w, long h ) const -{ - GdkRectangle rect; - rect.x = x; - rect.y = y; - rect.width = w; - rect.height = h; - GdkOverlapType res = gdk_region_rect_in( M_REGIONDATA->m_region, &rect ); - switch (res) - { - case GDK_OVERLAP_RECTANGLE_IN: return wxInRegion; - case GDK_OVERLAP_RECTANGLE_OUT: return wxOutRegion; - case GDK_OVERLAP_RECTANGLE_PART: return wxPartRegion; - } - return wxOutRegion; -} - -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - return Contains( pt.x, pt.y ); -} - -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - return Contains( rect.x, rect.y, rect.width, rect.height ); -} - -GdkRegion *wxRegion::GetRegion(void) const -{ - return M_REGIONDATA->m_region; -} - -wxList *wxRegion::GetRectList() const -{ - return &(M_REGIONDATA->m_rects); -} - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator,wxObject); - -wxRegionIterator::wxRegionIterator(void) -{ - m_current = 0; -} - -wxRegionIterator::wxRegionIterator( const wxRegion& region ) -{ - m_region = region; - m_current = 0; -} - -void wxRegionIterator::Reset( const wxRegion& region ) -{ - m_region = region; - m_current = 0; -} - -wxRegionIterator::operator bool (void) const -{ - return m_current < m_region.GetRectList()->Number(); -} - -bool wxRegionIterator::HaveRects(void) const -{ - return m_current < m_region.GetRectList()->Number(); -} - -void wxRegionIterator::operator ++ (void) -{ - if (m_current < m_region.GetRectList()->Number()) ++m_current; -} - -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_region.GetRectList()->Number()) ++m_current; -} - -long wxRegionIterator::GetX(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->x; -} - -long wxRegionIterator::GetY(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->y; -} - -long wxRegionIterator::GetW(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->width; -} - -long wxRegionIterator::GetH(void) const -{ - wxNode *node = m_region.GetRectList()->Nth( m_current ); - if (!node) return 0; - wxRect *r = (wxRect*)node->Data(); - return r->height; -} - - diff --git a/src/gtk1/scrolbar.cpp b/src/gtk1/scrolbar.cpp deleted file mode 100644 index 84a46924ef..0000000000 --- a/src/gtk1/scrolbar.cpp +++ /dev/null @@ -1,309 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" -#include "wx/utils.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; - -//----------------------------------------------------------------------------- -// "value_changed" -//----------------------------------------------------------------------------- - -static void gtk_scrollbar_callback( GtkWidget *WXUNUSED(widget), wxScrollBar *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - float diff = win->m_adjust->value - win->m_oldPos; - if (fabs(diff) < 0.2) return; - win->m_oldPos = win->m_adjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_adjust->step_increment; - float page_step = win->m_adjust->page_increment; - - if (win->IsScrolling()) - { - command = wxEVT_SCROLL_THUMBTRACK; - } - else - { - if (fabs(win->m_adjust->value-win->m_adjust->lower) < 0.2) command = wxEVT_SCROLL_BOTTOM; - else if (fabs(win->m_adjust->value-win->m_adjust->upper) < 0.2) command = wxEVT_SCROLL_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - } - - int value = (int)(win->m_adjust->value+0.5); - - int orient = win->HasFlag(wxSB_VERTICAL) ? wxVERTICAL : wxHORIZONTAL; - - wxScrollEvent event( command, win->GetId(), value, orient ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - -/* - wxCommandEvent cevent( wxEVT_COMMAND_SCROLLBAR_UPDATED, win->GetId() ); - cevent.SetEventObject( win ); - win->ProcessEvent( cevent ); -*/ -} - -//----------------------------------------------------------------------------- -// "button_press_event" from slider -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget), - GdkEventButton *WXUNUSED(gdk_event), - wxScrollBar *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - win->SetScrolling(TRUE); -// g_blockEventsOnScroll = TRUE; doesn't work in DialogEd - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" from slider -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_release_callback( GtkRange *WXUNUSED(widget), - GdkEventButton *WXUNUSED(gdk_event), - wxScrollBar *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - win->SetScrolling(FALSE); -// g_blockEventsOnScroll = FALSE; - - gtk_signal_emit_by_name( GTK_OBJECT(win->m_adjust), "value_changed" ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// wxScrollBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar,wxControl) - -wxScrollBar::~wxScrollBar(void) -{ -} - -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_oldPos = 0.0; - - if (style & wxSB_VERTICAL == wxSB_VERTICAL) - m_widget = gtk_hscrollbar_new( (GtkAdjustment *) NULL ); - else - m_widget = gtk_vscrollbar_new( (GtkAdjustment *) NULL ); - - m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) ); - - gtk_signal_connect( GTK_OBJECT(m_adjust), - "value_changed", - (GtkSignalFunc) gtk_scrollbar_callback, - (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), - "button_press_event", - (GtkSignalFunc)gtk_scrollbar_button_press_callback, - (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), - "button_release_event", - (GtkSignalFunc)gtk_scrollbar_button_release_callback, - (gpointer) this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -int wxScrollBar::GetThumbPosition(void) const -{ - return (int)(m_adjust->value+0.5); -} - -int wxScrollBar::GetThumbSize() const -{ - return (int)(m_adjust->page_size+0.5); -} - -int wxScrollBar::GetPageSize() const -{ - return (int)(m_adjust->page_increment+0.5); -} - -int wxScrollBar::GetRange() const -{ - return (int)(m_adjust->upper+0.5); -} - -void wxScrollBar::SetThumbPosition( int viewStart ) -{ - if (m_isScrolling) return; - - float fpos = (float)viewStart; - m_oldPos = fpos; - if (fabs(fpos-m_adjust->value) < 0.2) return; - m_adjust->value = fpos; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); -} - -void wxScrollBar::SetScrollbar( int position, int thumbSize, int range, int pageSize, - bool WXUNUSED(refresh) ) -{ - float fpos = (float)position; - float frange = (float)range; - float fthumb = (float)thumbSize; - float fpage = (float)pageSize; - - if ((fabs(frange-m_adjust->upper) < 0.2) && - (fabs(fthumb-m_adjust->page_size) < 0.2) && - (fabs(fpage-m_adjust->page_increment) < 0.2)) - { - SetThumbPosition( position ); - return; - } - - m_oldPos = fpos; - - m_adjust->lower = 0.0; - m_adjust->upper = frange; - m_adjust->value = fpos; - m_adjust->step_increment = 1.0; - m_adjust->page_increment = (float)(wxMax(fpage,0)); - m_adjust->page_size = fthumb; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -/* Backward compatibility */ -int wxScrollBar::GetValue(void) const -{ - return GetThumbPosition(); -} - -void wxScrollBar::SetValue( int viewStart ) -{ - SetThumbPosition( viewStart ); -} - -void wxScrollBar::GetValues( int *viewStart, int *viewLength, int *objectLength, int *pageLength ) const -{ - int pos = (int)(m_adjust->value+0.5); - int thumb = (int)(m_adjust->page_size+0.5); - int page = (int)(m_adjust->page_increment+0.5); - int range = (int)(m_adjust->upper+0.5); - - *viewStart = pos; - *viewLength = range; - *objectLength = thumb; - *pageLength = page; -} - -int wxScrollBar::GetViewLength() const -{ - return (int)(m_adjust->upper+0.5); -} - -int wxScrollBar::GetObjectLength() const -{ - return (int)(m_adjust->page_size+0.5); -} - -void wxScrollBar::SetPageSize( int pageLength ) -{ - int pos = (int)(m_adjust->value+0.5); - int thumb = (int)(m_adjust->page_size+0.5); - int range = (int)(m_adjust->upper+0.5); - SetScrollbar( pos, thumb, range, pageLength ); -} - -void wxScrollBar::SetObjectLength( int objectLength ) -{ - int pos = (int)(m_adjust->value+0.5); - int page = (int)(m_adjust->page_increment+0.5); - int range = (int)(m_adjust->upper+0.5); - SetScrollbar( pos, objectLength, range, page ); -} - -void wxScrollBar::SetViewLength( int viewLength ) -{ - int pos = (int)(m_adjust->value+0.5); - int thumb = (int)(m_adjust->page_size+0.5); - int page = (int)(m_adjust->page_increment+0.5); - SetScrollbar( pos, thumb, viewLength, page ); -} - -bool wxScrollBar::IsOwnGtkWindow( GdkWindow *window ) -{ - GtkRange *range = GTK_RANGE(m_widget); - return ( (window == GTK_WIDGET(range)->window) || - (window == range->trough) || - (window == range->slider) || - (window == range->step_forw) || - (window == range->step_back) ); -} - -void wxScrollBar::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - diff --git a/src/gtk1/settings.cpp b/src/gtk1/settings.cpp deleted file mode 100644 index 8ee443f68b..0000000000 --- a/src/gtk1/settings.cpp +++ /dev/null @@ -1,197 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" -#include "wx/debug.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -/* -#define wxSYS_COLOUR_SCROLLBAR 0 -#define wxSYS_COLOUR_BACKGROUND 1 -#define wxSYS_COLOUR_ACTIVECAPTION 2 -#define wxSYS_COLOUR_INACTIVECAPTION 3 -#define wxSYS_COLOUR_MENU 4 -#define wxSYS_COLOUR_WINDOW 5 -#define wxSYS_COLOUR_WINDOWFRAME 6 -#define wxSYS_COLOUR_MENUTEXT 7 -#define wxSYS_COLOUR_WINDOWTEXT 8 -#define wxSYS_COLOUR_CAPTIONTEXT 9 -#define wxSYS_COLOUR_ACTIVEBORDER 10 -#define wxSYS_COLOUR_INACTIVEBORDER 11 -#define wxSYS_COLOUR_APPWORKSPACE 12 -#define wxSYS_COLOUR_HIGHLIGHT 13 -#define wxSYS_COLOUR_HIGHLIGHTTEXT 14 -#define wxSYS_COLOUR_BTNFACE 15 -#define wxSYS_COLOUR_BTNSHADOW 16 -#define wxSYS_COLOUR_GRAYTEXT 17 -#define wxSYS_COLOUR_BTNTEXT 18 -#define wxSYS_COLOUR_INACTIVECAPTIONTEXT 19 -#define wxSYS_COLOUR_BTNHIGHLIGHT 20 - -#define wxSYS_COLOUR_3DDKSHADOW 21 -#define wxSYS_COLOUR_3DLIGHT 22 -#define wxSYS_COLOUR_INFOTEXT 23 -#define wxSYS_COLOUR_INFOBK 24 - -#define wxSYS_COLOUR_DESKTOP wxSYS_COLOUR_BACKGROUND -#define wxSYS_COLOUR_3DFACE wxSYS_COLOUR_BTNFACE -#define wxSYS_COLOUR_3DSHADOW wxSYS_COLOUR_BTNSHADOW -#define wxSYS_COLOUR_3DHIGHLIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_3DHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -#define wxSYS_COLOUR_BTNHILIGHT wxSYS_COLOUR_BTNHIGHLIGHT -*/ - -#define SHIFT (8*(sizeof(short int)-sizeof(char))) - -//wxColour *g_systemWinColour = (wxColour *) NULL; -wxColour *g_systemBtnFaceColour = (wxColour *) NULL; -wxColour *g_systemBtnShadowColour = (wxColour *) NULL; -wxColour *g_systemBtnHighlightColour = (wxColour *) NULL; -wxColour *g_systemHighlightColour = (wxColour *) NULL; - -wxFont *g_systemFont = (wxFont *) NULL; - -void wxSystemSettings::Done() -{ -// delete g_systemWinColour; - delete g_systemBtnFaceColour; - delete g_systemBtnShadowColour; - delete g_systemBtnHighlightColour; - delete g_systemHighlightColour; - delete g_systemFont; -} - -wxColour wxSystemSettings::GetSystemColour( int index ) -{ - switch (index) - { - case wxSYS_COLOUR_SCROLLBAR: - case wxSYS_COLOUR_BACKGROUND: - case wxSYS_COLOUR_ACTIVECAPTION: - case wxSYS_COLOUR_INACTIVECAPTION: - case wxSYS_COLOUR_MENU: - case wxSYS_COLOUR_WINDOWFRAME: - case wxSYS_COLOUR_ACTIVEBORDER: - case wxSYS_COLOUR_INACTIVEBORDER: - case wxSYS_COLOUR_BTNFACE: - { - if (!g_systemBtnFaceColour) - { - g_systemBtnFaceColour = - new wxColour( 0xd6d6 >> SHIFT, - 0xd6d6 >> SHIFT, - 0xd6d6 >> SHIFT ); - } - return *g_systemBtnFaceColour; - } - case wxSYS_COLOUR_WINDOW: - { - return *wxWHITE; - } - case wxSYS_COLOUR_GRAYTEXT: - case wxSYS_COLOUR_BTNSHADOW: - { - if (!g_systemBtnShadowColour) - { - g_systemBtnShadowColour = - new wxColour( 0x7530 >> SHIFT, - 0x7530 >> SHIFT, - 0x7530 >> SHIFT ); - } - return *g_systemBtnShadowColour; - } - case wxSYS_COLOUR_BTNHIGHLIGHT: - { - if (!g_systemBtnHighlightColour) - { - g_systemBtnHighlightColour = - new wxColour( 0xea60 >> SHIFT, - 0xea60 >> SHIFT, - 0xea60 >> SHIFT ); - } - return *g_systemBtnHighlightColour; - } - case wxSYS_COLOUR_HIGHLIGHT: - { - if (!g_systemHighlightColour) - { - g_systemHighlightColour = - new wxColour( 0 >> SHIFT, - 0 >> SHIFT, - 0x9c40 >> SHIFT ); - } - return *g_systemHighlightColour; - } - case wxSYS_COLOUR_MENUTEXT: - case wxSYS_COLOUR_WINDOWTEXT: - case wxSYS_COLOUR_CAPTIONTEXT: - case wxSYS_COLOUR_INACTIVECAPTIONTEXT: - case wxSYS_COLOUR_BTNTEXT: - case wxSYS_COLOUR_INFOTEXT: - { - return *wxBLACK; - } - case wxSYS_COLOUR_HIGHLIGHTTEXT: - { - return *wxWHITE; - } - case wxSYS_COLOUR_INFOBK: - case wxSYS_COLOUR_APPWORKSPACE: - { - return *wxWHITE; // ? - } - } - return *wxWHITE; -} - -wxFont wxSystemSettings::GetSystemFont( int index ) -{ - switch (index) - { - case wxSYS_OEM_FIXED_FONT: - case wxSYS_ANSI_FIXED_FONT: - case wxSYS_SYSTEM_FIXED_FONT: - { - return *wxNORMAL_FONT; - } - case wxSYS_ANSI_VAR_FONT: - case wxSYS_SYSTEM_FONT: - case wxSYS_DEVICE_DEFAULT_FONT: - case wxSYS_DEFAULT_GUI_FONT: - { - if (!g_systemFont) - g_systemFont = new wxFont( 12, wxSWISS, wxNORMAL, wxNORMAL ); - return *g_systemFont; - } - } - - return wxNullFont; -} - -int wxSystemSettings::GetSystemMetric( int index ) -{ - switch (index) - { - case wxSYS_SCREEN_X: return gdk_screen_width(); - case wxSYS_SCREEN_Y: return gdk_screen_height(); - case wxSYS_HSCROLL_Y: return 15; - case wxSYS_VSCROLL_X: return 15; - } - - wxCHECK_MSG( index, 0, _T("wxSystemSettings::GetSystemMetric not fully implemented") ); - - return 0; -} diff --git a/src/gtk1/slider.cpp b/src/gtk1/slider.cpp deleted file mode 100644 index c28fc43e1b..0000000000 --- a/src/gtk1/slider.cpp +++ /dev/null @@ -1,291 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/slider.h" -#include "wx/utils.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "value_changed" -//----------------------------------------------------------------------------- - -static void gtk_slider_callback( GtkWidget *WXUNUSED(widget), wxSlider *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - float diff = win->m_adjust->value - win->m_oldPos; - if (fabs(diff) < 0.2) return; - win->m_oldPos = win->m_adjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_adjust->step_increment; - float page_step = win->m_adjust->page_increment; - - if (fabs(win->m_adjust->value-win->m_adjust->lower) < 0.2) command = wxEVT_SCROLL_BOTTOM; - else if (fabs(win->m_adjust->value-win->m_adjust->upper) < 0.2) command = wxEVT_SCROLL_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLL_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLL_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLL_PAGEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - - int value = (int)ceil(win->m_adjust->value); - - int orient = wxHORIZONTAL; - if (win->GetWindowStyleFlag() & wxSB_VERTICAL == wxSB_VERTICAL) orient = wxVERTICAL; - - wxScrollEvent event( command, win->GetId(), value, orient ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, win->GetId() ); - cevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( cevent ); -} - -//----------------------------------------------------------------------------- -// wxSlider -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSlider,wxControl) - -wxSlider::wxSlider(void) -{ -} - -wxSlider::~wxSlider(void) -{ -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name ) -{ - m_acceptsFocus = TRUE; - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - SetValidator( validator ); - - m_oldPos = 0.0; - - if (style & wxSL_VERTICAL) - m_widget = gtk_vscale_new( (GtkAdjustment *) NULL ); - else - m_widget = gtk_hscale_new( (GtkAdjustment *) NULL ); - - if (style & wxSL_LABELS) - { - gtk_scale_set_draw_value( GTK_SCALE( m_widget ), TRUE ); - - /* labels need more space and too small window will - cause junk to appear on the dialog */ - if (style & wxSL_VERTICAL) - { - wxSize sz( size ); - if (sz.x < 35) - { - sz.x = 35; - SetSize( sz ); - } - } - else - { - wxSize sz( size ); - if (sz.y < 35) - { - sz.y = 35; - SetSize( sz ); - } - } - } - else - gtk_scale_set_draw_value( GTK_SCALE( m_widget ), FALSE ); - - m_adjust = gtk_range_get_adjustment( GTK_RANGE(m_widget) ); - - gtk_signal_connect( GTK_OBJECT(m_adjust), - "value_changed", - (GtkSignalFunc) gtk_slider_callback, - (gpointer) this ); - - SetRange( minValue, maxValue ); - SetValue( value ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -int wxSlider::GetValue(void) const -{ - return (int)(m_adjust->value+0.5); -} - -void wxSlider::SetValue( int value ) -{ - float fpos = (float)value; - m_oldPos = fpos; - if (fabs(fpos-m_adjust->value) < 0.2) return; - - m_adjust->value = fpos; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); -} - -void wxSlider::SetRange( int minValue, int maxValue ) -{ - float fmin = (float)minValue; - float fmax = (float)maxValue; - - if ((fabs(fmin-m_adjust->lower) < 0.2) && - (fabs(fmax-m_adjust->upper) < 0.2)) - { - return; - } - - m_adjust->lower = fmin; - m_adjust->upper = fmax; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -int wxSlider::GetMin(void) const -{ - return (int)ceil(m_adjust->lower); -} - -int wxSlider::GetMax(void) const -{ - return (int)ceil(m_adjust->upper); -} - -void wxSlider::SetPageSize( int pageSize ) -{ - float fpage = (float)pageSize; - - if (fabs(fpage-m_adjust->page_increment) < 0.2) return; - - m_adjust->page_increment = fpage; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -int wxSlider::GetPageSize(void) const -{ - return (int)ceil(m_adjust->page_increment); -} - -void wxSlider::SetThumbLength( int len ) -{ - float flen = (float)len; - - if (fabs(flen-m_adjust->page_size) < 0.2) return; - - m_adjust->page_size = flen; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -int wxSlider::GetThumbLength(void) const -{ - return (int)ceil(m_adjust->page_size); -} - -void wxSlider::SetLineSize( int WXUNUSED(lineSize) ) -{ -} - -int wxSlider::GetLineSize(void) const -{ - return 0; -} - -void wxSlider::SetTick( int WXUNUSED(tickPos) ) -{ -} - -void wxSlider::SetTickFreq( int WXUNUSED(n), int WXUNUSED(pos) ) -{ -} - -int wxSlider::GetTickFreq(void) const -{ - return 0; -} - -void wxSlider::ClearTicks(void) -{ -} - -void wxSlider::SetSelection( int WXUNUSED(minPos), int WXUNUSED(maxPos) ) -{ -} - -int wxSlider::GetSelEnd(void) const -{ - return 0; -} - -int wxSlider::GetSelStart(void) const -{ - return 0; -} - -void wxSlider::ClearSel(void) -{ -} - -bool wxSlider::IsOwnGtkWindow( GdkWindow *window ) -{ - GtkRange *range = GTK_RANGE(m_widget); - return ( (window == GTK_WIDGET(range)->window) || - (window == range->trough) || - (window == range->slider) || - (window == range->step_forw) || - (window == range->step_back) ); -} - -void wxSlider::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} diff --git a/src/gtk1/spinbutt.cpp b/src/gtk1/spinbutt.cpp deleted file mode 100644 index 7b3b204283..0000000000 --- a/src/gtk1/spinbutt.cpp +++ /dev/null @@ -1,210 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: Robert -// Modified by: -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "spinbutt.h" -#endif - -#include "wx/spinbutt.h" -#include "wx/utils.h" -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -static const float sensitivity = 0.2; - -//----------------------------------------------------------------------------- -// "value_changed" -//----------------------------------------------------------------------------- - -static void gtk_spinbutt_callback( GtkWidget *WXUNUSED(widget), wxSpinButton *win ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return; - if (g_blockEventsOnDrag) return; - - float diff = win->m_adjust->value - win->m_oldPos; - if (fabs(diff) < sensitivity) return; - win->m_oldPos = win->m_adjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_adjust->step_increment; - float page_step = win->m_adjust->page_increment; - - if (fabs(diff-line_step) < sensitivity) command = wxEVT_SCROLL_LINEDOWN; - else if (fabs(diff+line_step) < sensitivity) command = wxEVT_SCROLL_LINEUP; - else if (fabs(diff-page_step) < sensitivity) command = wxEVT_SCROLL_PAGEDOWN; - else if (fabs(diff+page_step) < sensitivity) command = wxEVT_SCROLL_PAGEUP; - else command = wxEVT_SCROLL_THUMBTRACK; - - int value = (int)ceil(win->m_adjust->value); - - wxSpinEvent event( command, win->GetId()); - event.SetPosition( value ); - event.SetOrientation( wxVERTICAL ); - event.SetEventObject( win ); - - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// wxSpinButton -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton,wxControl) - -BEGIN_EVENT_TABLE(wxSpinButton, wxControl) - EVT_SIZE(wxSpinButton::OnSize) -END_EVENT_TABLE() - -wxSpinButton::wxSpinButton() -{ -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_needParent = TRUE; - - wxSize new_size = size; - new_size.x = 15; - if (new_size.y == -1) - new_size.y = 30; - - PreCreation( parent, id, pos, new_size, style, name ); - -// SetValidator( validator ); - - m_oldPos = 0.0; - - m_adjust = (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 100.0, 1.0, 5.0, 0.0); - - m_widget = gtk_spin_button_new( m_adjust, 0, 0 ); - - gtk_spin_button_set_wrap( GTK_SPIN_BUTTON(m_widget), (m_windowStyle & wxSP_WRAP) ); - - gtk_signal_connect( GTK_OBJECT (m_adjust), - "value_changed", - (GtkSignalFunc) gtk_spinbutt_callback, - (gpointer) this ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -int wxSpinButton::GetMin() const -{ - wxCHECK_MSG( (m_widget != NULL), 0, _T("invalid spin button") ); - - return (int)ceil(m_adjust->lower); -} - -int wxSpinButton::GetMax() const -{ - wxCHECK_MSG( (m_widget != NULL), 0, _T("invalid spin button") ); - - return (int)ceil(m_adjust->upper); -} - -int wxSpinButton::GetValue() const -{ - wxCHECK_MSG( (m_widget != NULL), 0, _T("invalid spin button") ); - - return (int)ceil(m_adjust->value); -} - -void wxSpinButton::SetValue( int value ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid spin button") ); - - float fpos = (float)value; - m_oldPos = fpos; - if (fabs(fpos-m_adjust->value) < sensitivity) return; - - m_adjust->value = fpos; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "value_changed" ); -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid spin button") ); - - float fmin = (float)minVal; - float fmax = (float)maxVal; - - if ((fabs(fmin-m_adjust->lower) < sensitivity) && - (fabs(fmax-m_adjust->upper) < sensitivity)) - { - return; - } - - m_adjust->lower = fmin; - m_adjust->upper = fmax; - - gtk_signal_emit_by_name( GTK_OBJECT(m_adjust), "changed" ); -} - -void wxSpinButton::OnSize( wxSizeEvent &WXUNUSED(event) ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid spin button") ); - - m_width = 15; - gtk_widget_set_usize( m_widget, m_width, m_height ); -} - -bool wxSpinButton::IsOwnGtkWindow( GdkWindow *window ) -{ - return GTK_SPIN_BUTTON(m_widget)->panel == window; -} - -void wxSpinButton::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - -//----------------------------------------------------------------------------- -// wxSpinEvent -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id): - wxScrollEvent(commandType, id) -{ -} diff --git a/src/gtk1/statbmp.cpp b/src/gtk1/statbmp.cpp deleted file mode 100644 index ff7fc98b4f..0000000000 --- a/src/gtk1/statbmp.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticBitmap -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap,wxControl) - -wxStaticBitmap::wxStaticBitmap(void) -{ -} - -wxStaticBitmap::wxStaticBitmap( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Create( parent, id, bitmap, pos, size, style, name ); -} - -bool wxStaticBitmap::Create( wxWindow *parent, wxWindowID id, const wxBitmap &bitmap, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, size, style, name ); - - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - m_widget = gtk_pixmap_new( m_bitmap.GetPixmap(), mask ); - - if (newSize.x == -1) newSize.x = m_bitmap.GetWidth(); - if (newSize.y == -1) newSize.y = m_bitmap.GetHeight(); - SetSize( newSize.x, newSize.y ); - } - else - { - m_widget = gtk_label_new( "Bitmap" ); - } - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -void wxStaticBitmap::SetBitmap( const wxBitmap &bitmap ) -{ - m_bitmap = bitmap; - - if (m_bitmap.Ok()) - { - GdkBitmap *mask = (GdkBitmap *) NULL; - if (m_bitmap.GetMask()) mask = m_bitmap.GetMask()->GetBitmap(); - gtk_pixmap_set( GTK_PIXMAP(m_widget), m_bitmap.GetPixmap(), mask ); - } -} diff --git a/src/gtk1/statbox.cpp b/src/gtk1/statbox.cpp deleted file mode 100644 index d1c978b2ef..0000000000 --- a/src/gtk1/statbox.cpp +++ /dev/null @@ -1,74 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticBox -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox,wxControl) - -wxStaticBox::wxStaticBox(void) -{ -} - -wxStaticBox::wxStaticBox( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Create( parent, id, label, pos, size, style, name ); -} - -bool wxStaticBox::Create( wxWindow *parent, wxWindowID id, const wxString &label, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_isStaticBox = TRUE; - - m_widget = gtk_frame_new(m_label.mbc_str()); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetLabel(label); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -void wxStaticBox::SetLabel( const wxString &label ) -{ - wxControl::SetLabel( label ); - GtkFrame *frame = GTK_FRAME( m_widget ); - gtk_frame_set_label( frame, GetLabel().mbc_str() ); -} - -void wxStaticBox::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} diff --git a/src/gtk1/statline.cpp b/src/gtk1/statline.cpp deleted file mode 100644 index 572edb0b1d..0000000000 --- a/src/gtk1/statline.cpp +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statline.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statline.h" -#endif - -#include "wx/statline.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticLine -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticLine,wxControl) - -wxStaticLine::wxStaticLine(void) -{ -} - -wxStaticLine::wxStaticLine( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Create( parent, id, pos, size, style, name ); -} - -bool wxStaticLine::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - if (style & wxVERTICAL) - m_widget = gtk_vseparator_new(); - else - m_widget = gtk_hseparator_new(); - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - diff --git a/src/gtk1/stattext.cpp b/src/gtk1/stattext.cpp deleted file mode 100644 index 194fb3da08..0000000000 --- a/src/gtk1/stattext.cpp +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ - #pragma implementation "stattext.h" -#endif - -#include "wx/stattext.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// wxStaticText -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxStaticText,wxControl) - -wxStaticText::wxStaticText() -{ -} - -wxStaticText::wxStaticText(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name) -{ - Create( parent, id, label, pos, size, style, name ); -} - -bool wxStaticText::Create(wxWindow *parent, - wxWindowID id, - const wxString &label, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name ) -{ - m_needParent = TRUE; - - wxSize newSize = size; - - PreCreation( parent, id, pos, size, style, name ); - - // notice that we call the base class version which will just remove the - // '&' characters from the string, but not set the label's text to it - // because the label is not yet created and because SetLabel() has a side - // effect of changing the control size which might not be desirable - wxControl::SetLabel(label); - m_widget = gtk_label_new( m_label.mbc_str() ); - - GtkJustification justify; - if ( style & wxALIGN_CENTER ) - justify = GTK_JUSTIFY_CENTER; - else if ( style & wxALIGN_RIGHT ) - justify = GTK_JUSTIFY_RIGHT; - else // wxALIGN_LEFT is 0 - justify = GTK_JUSTIFY_LEFT; - gtk_label_set_justify(GTK_LABEL(m_widget), justify); - -#if GTK_MINOR_VERSION == 2 - // GTK_JUSTIFY_LEFT is 0, RIGHT 1 and CENTER 2 - static const float labelAlignments[] = { 0.0, 1.0, 0.5 }; - gtk_misc_set_alignment(GTK_MISC(m_widget), labelAlignments[justify], 0.0); -#endif // GTK 1.2.x - - GtkRequisition req; - (* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request ) (m_widget, &req ); - - if (newSize.x == -1) newSize.x = req.width; - if (newSize.y == -1) newSize.y = req.height; - - SetSize( newSize.x, newSize.y ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - SetBackgroundColour( parent->GetBackgroundColour() ); - SetForegroundColour( parent->GetForegroundColour() ); - SetFont( parent->GetFont() ); - - Show( TRUE ); - - return TRUE; -} - -wxString wxStaticText::GetLabel(void) const -{ - char *str = (char *) NULL; - gtk_label_get( GTK_LABEL(m_widget), &str ); - - return wxString(str); -} - -void wxStaticText::SetLabel( const wxString &label ) -{ - wxControl::SetLabel(label); - - gtk_label_set( GTK_LABEL(m_widget), m_label.mbc_str() ); - - // adjust the label size to the new label - - // TODO there should be a way to prevent SetLabel() from doing it (an - // additional parameter?) - GtkRequisition req; - (* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request ) (m_widget, &req ); - - SetSize( req.width, req.height ); -} - -void wxStaticText::ApplyWidgetStyle() -{ - SetWidgetStyle(); - gtk_widget_set_style( m_widget, m_widgetStyle ); -} - diff --git a/src/gtk1/tbargtk.cpp b/src/gtk1/tbargtk.cpp deleted file mode 100644 index de244c82b1..0000000000 --- a/src/gtk1/tbargtk.cpp +++ /dev/null @@ -1,586 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbargtk.cpp -// Purpose: GTK toolbar -// Author: Robert Roebling -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbargtk.h" -#endif - -#include "wx/toolbar.h" -#include "wx/frame.h" - -#include "glib.h" -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "clicked" (internal from gtk_toolbar) -//----------------------------------------------------------------------------- - -static void gtk_toolbar_callback( GtkWidget *WXUNUSED(widget), wxToolBarTool *tool ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!tool->m_enabled) return; - - if (tool->m_isToggle) - { - tool->m_toggleState = !tool->m_toggleState; - - if (tool->m_bitmap2.Ok()) - { - wxBitmap bitmap = tool->m_bitmap1; - if (tool->m_toggleState) bitmap = tool->m_bitmap2; - - GtkPixmap *pixmap = GTK_PIXMAP( tool->m_pixmap ); - - GdkBitmap *mask = (GdkBitmap *) NULL; - if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap(); - - gtk_pixmap_set( pixmap, bitmap.GetPixmap(), mask ); - } - } - - tool->m_owner->OnLeftClick( tool->m_index, tool->m_toggleState ); -} - -//----------------------------------------------------------------------------- -// "enter_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget), - GdkEventCrossing *WXUNUSED(gdk_event), wxToolBarTool *tool ) -{ - if (g_isIdle) wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return TRUE; - - - wxToolBar *tb = tool->m_owner; - - /* we grey-out the tip text of disabled tool */ -#if 0 - if (tool->m_enabled) - { - if (tb->m_fg->red != 0) - { - tb->m_fg->red = 0; - tb->m_fg->green = 0; - tb->m_fg->blue = 0; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(tb->m_toolbar) ), tb->m_fg ); - -#if (GTK_MINOR_VERSION > 0) - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( - GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window ) ); - - g_style->fg[GTK_STATE_NORMAL] = *tb->m_fg; - gtk_widget_set_style( GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); -#endif - } - } - else - { - if (tb->m_fg->red == 0) - { - tb->m_fg->red = 33000; - tb->m_fg->green = 33000; - tb->m_fg->blue = 33000; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(tb->m_toolbar) ), tb->m_fg ); -#if (GTK_MINOR_VERSION > 0) - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( - GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window ) ); - - g_style->fg[GTK_STATE_NORMAL] = *tb->m_fg; - gtk_widget_set_style( GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg ); -#endif - } - } -#endif - - /* emit the event */ - - tb->OnMouseEnter( tool->m_index ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// wxToolBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl) - -BEGIN_EVENT_TABLE(wxToolBar, wxControl) - EVT_IDLE(wxToolBar::OnIdle) -END_EVENT_TABLE() - -wxToolBar::wxToolBar() -{ -} - -wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - Create( parent, id, pos, size, style, name ); -} - -wxToolBar::~wxToolBar() -{ - delete m_fg; - delete m_bg; -} - -bool wxToolBar::Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - m_needParent = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - - m_tools.DeleteContents( TRUE ); - - m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, - GTK_TOOLBAR_ICONS ) ); - - m_separation = 5; - gtk_toolbar_set_space_size( m_toolbar, m_separation ); - m_hasToolAlready = FALSE; - - if (style & wxTB_DOCKABLE) - { - m_widget = gtk_handle_box_new(); - gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) ); - gtk_widget_show( GTK_WIDGET(m_toolbar) ); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxTB_FLAT) - gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(m_widget), GTK_SHADOW_NONE ); -#endif - } - else - { - m_widget = GTK_WIDGET(m_toolbar); - } - - gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE ); - -#if (GTK_MINOR_VERSION > 0) - if (style & wxTB_FLAT) - gtk_toolbar_set_button_relief( GTK_TOOLBAR(m_toolbar), GTK_RELIEF_NONE ); -#endif - - m_fg = new GdkColor; - m_fg->red = 0; - m_fg->green = 0; - m_fg->blue = 0; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_fg ); - - m_bg = new GdkColor; - m_bg->red = 65535; - m_bg->green = 65535; - m_bg->blue = 50000; - gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_bg ); - -#if (GTK_MINOR_VERSION > 0) - gtk_tooltips_force_window( GTK_TOOLBAR(m_toolbar)->tooltips ); - - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( - GTK_TOOLBAR(m_toolbar)->tooltips->tip_window ) ); - - g_style->bg[GTK_STATE_NORMAL] = *m_bg; - gtk_widget_set_style( GTK_TOOLBAR(m_toolbar)->tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, m_bg, m_fg ); -#endif - - m_xMargin = 0; - m_yMargin = 0; - - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, toolIndex ); - event.SetEventObject(this); - event.SetInt( toolIndex ); - event.SetExtraLong((long) toggleDown); - - GetEventHandler()->ProcessEvent(event); - - return TRUE; -} - -void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_RCLICKED, toolIndex ); - event.SetEventObject( this ); - event.SetInt( toolIndex ); - - GetEventHandler()->ProcessEvent(event); -} - -void wxToolBar::OnMouseEnter( int toolIndex ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_ENTER, GetId() ); - event.SetEventObject(this); - event.SetInt( toolIndex ); - - GetEventHandler()->ProcessEvent(event); -} - -wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap, bool toggle, - float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData, - const wxString& helpString1, const wxString& helpString2 ) -{ - m_hasToolAlready = TRUE; - - wxCHECK_MSG( bitmap.Ok(), (wxToolBarTool *)NULL, - _T("invalid bitmap for wxToolBar icon") ); - - wxCHECK_MSG( bitmap.GetBitmap() == NULL, (wxToolBarTool *)NULL, - _T("wxToolBar doesn't support GdkBitmap") ); - - wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL, - _T("wxToolBar::Add needs a wxBitmap") ); - - GtkWidget *tool_pixmap = (GtkWidget *)NULL; - - GdkPixmap *pixmap = bitmap.GetPixmap(); - - GdkBitmap *mask = (GdkBitmap *)NULL; - if ( bitmap.GetMask() ) - mask = bitmap.GetMask()->GetBitmap(); - - tool_pixmap = gtk_pixmap_new( pixmap, mask ); - gtk_pixmap_set_build_insensitive( GTK_PIXMAP(tool_pixmap), TRUE ); - - gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 ); - - wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, - toggle, clientData, - helpString1, helpString2, - tool_pixmap ); - - GtkToolbarChildType ctype = toggle ? GTK_TOOLBAR_CHILD_TOGGLEBUTTON - : GTK_TOOLBAR_CHILD_BUTTON; - - GtkWidget *item = gtk_toolbar_append_element - ( - GTK_TOOLBAR(m_toolbar), - ctype, - (GtkWidget *)NULL, - (const char *)NULL, - helpString1.mbc_str(), - "", - tool_pixmap, - (GtkSignalFunc)gtk_toolbar_callback, - (gpointer)tool - ); - - tool->m_item = item; - - gtk_signal_connect( GTK_OBJECT(tool->m_item), - "enter_notify_event", - GTK_SIGNAL_FUNC(gtk_toolbar_enter_callback), - (gpointer)tool ); - - m_tools.Append( tool ); - - return tool; -} - -void wxToolBar::AddSeparator() -{ - gtk_toolbar_append_space( m_toolbar ); -} - -void wxToolBar::ClearTools() -{ - wxFAIL_MSG( _T("wxToolBar::ClearTools not implemented") ); -} - -bool wxToolBar::Realize() -{ - m_x = 0; - m_y = 0; - m_width = 100; - m_height = 0; - - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_bitmap1.Ok()) - { - int tool_height = tool->m_bitmap1.GetHeight(); - if (tool_height > m_height) m_height = tool_height; - } - - node = node->Next(); - } - - m_height += 5 + 2*m_yMargin; - - return TRUE; -} - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_enabled = enable; - -/* we don't disable the tools for now as the bitmaps don't get - greyed anyway and this also disables tooltips */ - - if (tool->m_item) - gtk_widget_set_sensitive( tool->m_item, enable ); - - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); -} - -void wxToolBar::ToggleTool( int toolIndex, bool toggle ) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_toggleState = toggle; - if ((tool->m_item) && (GTK_IS_TOGGLE_BUTTON(tool->m_item))) - gtk_toggle_button_set_state( GTK_TOGGLE_BUTTON(tool->m_item), toggle ); - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); -} - -wxObject *wxToolBar::GetToolClientData( int index ) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == index) return tool->m_clientData;; - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return (wxObject*)NULL; -} - -bool wxToolBar::GetToolState(int toolIndex) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) return tool->m_toggleState; - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return FALSE; -} - -bool wxToolBar::GetToolEnabled(int toolIndex) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) return tool->m_enabled; - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return FALSE; -} - -void wxToolBar::SetMargins( int x, int y ) -{ - wxCHECK_RET( !m_hasToolAlready, _T("wxToolBar::SetMargins must be called before adding tool.") ); - - if (x > 2) gtk_toolbar_append_space( m_toolbar ); // oh well - - m_xMargin = x; - m_yMargin = y; -} - -void wxToolBar::SetToolPacking( int WXUNUSED(packing) ) -{ - wxFAIL_MSG( _T("wxToolBar::SetToolPacking not implemented") ); -} - -void wxToolBar::SetToolSeparation( int separation ) -{ - gtk_toolbar_set_space_size( m_toolbar, separation ); - m_separation = separation; -} - -int wxToolBar::GetToolPacking() -{ - return 0; -} - -int wxToolBar::GetToolSeparation() -{ - return m_separation; -} - -wxString wxToolBar::GetToolLongHelp(int toolIndex) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - return tool->m_longHelpString; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return _T(""); -} - -wxString wxToolBar::GetToolShortHelp(int toolIndex) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - return tool->m_shortHelpString; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return _T(""); -} - -void wxToolBar::SetToolLongHelp(int toolIndex, const wxString& helpString) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_longHelpString = helpString; - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return; -} - -void wxToolBar::SetToolShortHelp(int toolIndex, const wxString& helpString) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_shortHelpString = helpString; - return; - } - node = node->Next(); - } - - wxFAIL_MSG( _T("wrong toolbar index") ); - - return; -} - -void wxToolBar::OnIdle( wxIdleEvent &WXUNUSED(ievent) ) -{ - wxEvtHandler* evtHandler = GetEventHandler(); - - wxNode* node = m_tools.First(); - while (node) - { - wxToolBarTool* tool = (wxToolBarTool*) node->Data(); - - wxUpdateUIEvent event( tool->m_index ); - event.SetEventObject(this); - - if (evtHandler->ProcessEvent( event )) - { - if (event.GetSetEnabled()) - EnableTool(tool->m_index, event.GetEnabled()); - if (event.GetSetChecked()) - ToggleTool(tool->m_index, event.GetChecked()); -/* - if (event.GetSetText()) - // Set tooltip? -*/ - } - - node = node->Next(); - } -} - diff --git a/src/gtk1/textctrl.cpp b/src/gtk1/textctrl.cpp deleted file mode 100644 index 51169aaa60..0000000000 --- a/src/gtk1/textctrl.cpp +++ /dev/null @@ -1,1071 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -#include "wx/textctrl.h" -#include "wx/utils.h" -#include "wx/intl.h" -#include "wx/settings.h" - -#include -#include -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gdk/gdkkeysyms.h" - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern bool g_blockEventsOnDrag; - -//----------------------------------------------------------------------------- -// "changed" -//----------------------------------------------------------------------------- - -static void -gtk_text_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) -{ - if (!win->m_hasVMT) return; - - if (g_isIdle) - wxapp_install_idle_handler(); - - win->SetModified(); - - wxCommandEvent event( wxEVT_COMMAND_TEXT_UPDATED, win->GetId() ); - event.SetString( win->GetValue() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" from vertical scrollbar -//----------------------------------------------------------------------------- - -static void -gtk_scrollbar_changed_callback( GtkWidget *WXUNUSED(widget), wxTextCtrl *win ) -{ - if (!win->m_hasVMT) return; - - if (g_isIdle) - wxapp_install_idle_handler(); - - win->CalculateScrollbar(); -} - -//----------------------------------------------------------------------------- -// wxTextCtrl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl,wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_CHAR(wxTextCtrl::OnChar) - - EVT_MENU(wxID_CUT, wxTextCtrl::OnCut) - EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy) - EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste) - EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo) - EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo) - - EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut) - EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy) - EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste) - EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo) - EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo) -END_EVENT_TABLE() - -#ifndef NO_TEXT_WINDOW_STREAM -wxTextCtrl::wxTextCtrl() : streambuf() -{ - if (allocate()) setp(base(),ebuf()); - - m_modified = FALSE; -} -#else -wxTextCtrl::wxTextCtrl() -{ - m_modified = FALSE; -} -#endif - -#ifndef NO_TEXT_WINDOW_STREAM -wxTextCtrl::wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value, - const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) : streambuf() -{ - if (allocate()) setp(base(),ebuf()); - - m_modified = FALSE; - Create( parent, id, value, pos, size, style, validator, name ); -} -#else -wxTextCtrl::wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value, - const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) -{ - m_modified = FALSE; - Create( parent, id, value, pos, size, style, validator, name ); -} -#endif - -bool wxTextCtrl::Create( wxWindow *parent, wxWindowID id, const wxString &value, - const wxPoint &pos, const wxSize &size, - int style, const wxValidator& validator, const wxString &name ) -{ - m_needParent = TRUE; - m_acceptsFocus = TRUE; - - PreCreation( parent, id, pos, size, style, name ); - -#if wxUSE_VALIDATORS - SetValidator( validator ); -#endif // wxUSE_VALIDATORS - - m_vScrollbarVisible = FALSE; - - bool multi_line = (style & wxTE_MULTILINE) != 0; - if (multi_line) - { - /* a multi-line edit control: create a vertical scrollbar by default and - horizontal if requested */ - bool bHasHScrollbar = (style & wxHSCROLL) != 0; - - /* create our control ... */ - m_text = gtk_text_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); - - /* ... and put into the upper left hand corner of the table */ - m_widget = gtk_table_new(bHasHScrollbar ? 2 : 1, 2, FALSE); - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - gtk_table_attach( GTK_TABLE(m_widget), m_text, 0, 1, 0, 1, - (GtkAttachOptions)(GTK_FILL | GTK_EXPAND | GTK_SHRINK), - (GtkAttachOptions)(GTK_FILL | GTK_EXPAND | GTK_SHRINK), - 0, 0); - - /* always wrap words */ - gtk_text_set_word_wrap( GTK_TEXT(m_text), TRUE ); - - /* put the horizontal scrollbar in the lower left hand corner */ - if (bHasHScrollbar) - { - GtkWidget *hscrollbar = gtk_hscrollbar_new(GTK_TEXT(m_text)->hadj); - GTK_WIDGET_UNSET_FLAGS( hscrollbar, GTK_CAN_FOCUS ); - gtk_table_attach(GTK_TABLE(m_widget), hscrollbar, 0, 1, 1, 2, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL | GTK_SHRINK), - GTK_FILL, - 0, 0); - gtk_widget_show(hscrollbar); - -#if (GTK_MINOR_VERSION > 0) - /* don't wrap lines, otherwise we wouldn't need the scrollbar */ - gtk_text_set_line_wrap( GTK_TEXT(m_text), FALSE ); -#endif - } - - /* finally, put the vertical scrollbar in the upper right corner */ - m_vScrollbar = gtk_vscrollbar_new( GTK_TEXT(m_text)->vadj ); - GTK_WIDGET_UNSET_FLAGS( m_vScrollbar, GTK_CAN_FOCUS ); - gtk_table_attach(GTK_TABLE(m_widget), m_vScrollbar, 1, 2, 0, 1, - GTK_FILL, - (GtkAttachOptions)(GTK_EXPAND | GTK_FILL | GTK_SHRINK), - 0, 0); - } - else - { - /* a single-line text control: no need for scrollbars */ - m_widget = - m_text = gtk_entry_new(); - } - - wxSize newSize = size; - if (newSize.x == -1) newSize.x = 80; - if (newSize.y == -1) newSize.y = 26; - SetSize( newSize.x, newSize.y ); - - m_parent->DoAddChild( this ); - - PostCreation(); - - if (multi_line) - gtk_widget_show(m_text); - - /* we want to be notified about text changes */ - gtk_signal_connect( GTK_OBJECT(m_text), "changed", - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - - if (multi_line) - { - gtk_signal_connect(GTK_OBJECT(GTK_TEXT(m_text)->vadj), "changed", - (GtkSignalFunc) gtk_scrollbar_changed_callback, (gpointer) this ); - } - - if (!value.IsEmpty()) - { - gint tmp = 0; - -#if GTK_MINOR_VERSION == 0 - // if we don't realize it, GTK 1.0.6 dies with a SIGSEGV in - // gtk_editable_insert_text() - gtk_widget_realize(m_text); -#endif // GTK 1.0 - -#if wxUSE_UNICODE - wxWX2MBbuf val = value.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), val, strlen(val), &tmp ); -#else // !Unicode - gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &tmp ); -#endif // Unicode/!Unicode - - if (multi_line) - { - /* bring editable's cursor uptodate. bug in GTK. */ - - GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - } - - if (style & wxTE_PASSWORD) - { - if (!multi_line) - gtk_entry_set_visibility( GTK_ENTRY(m_text), FALSE ); - } - - if (style & wxTE_READONLY) - { - if (!multi_line) - gtk_entry_set_editable( GTK_ENTRY(m_text), FALSE ); - } - else - { - if (multi_line) - gtk_text_set_editable( GTK_TEXT(m_text), 1 ); - } - - SetBackgroundColour( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ); - SetForegroundColour( parent->GetForegroundColour() ); - - Show( TRUE ); - - return TRUE; -} - -void wxTextCtrl::CalculateScrollbar() -{ - if ((m_windowStyle & wxTE_MULTILINE) == 0) return; - - GtkAdjustment *adj = GTK_TEXT(m_text)->vadj; - - if (adj->upper - adj->page_size < 0.8) - { - if (m_vScrollbarVisible) - { - gtk_widget_hide( m_vScrollbar ); - m_vScrollbarVisible = FALSE; - } - } - else - { - if (!m_vScrollbarVisible) - { - gtk_widget_show( m_vScrollbar ); - m_vScrollbarVisible = TRUE; - } - } -} - -wxString wxTextCtrl::GetValue() const -{ - wxCHECK_MSG( m_text != NULL, _T(""), _T("invalid text ctrl") ); - - wxString tmp; - if (m_windowStyle & wxTE_MULTILINE) - { - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); - char *text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len ); - tmp = wxString(text,*wxConv_current); - g_free( text ); - } - else - { - tmp = wxString(gtk_entry_get_text( GTK_ENTRY(m_text) ),*wxConv_current); - } - return tmp; -} - -void wxTextCtrl::SetValue( const wxString &value ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_signal_disconnect_by_func( GTK_OBJECT(m_text), - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); - - wxString tmp = _T(""); - if (!value.IsNull()) tmp = value; - if (m_windowStyle & wxTE_MULTILINE) - { - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); - gtk_editable_delete_text( GTK_EDITABLE(m_text), 0, len ); - len = 0; -#if wxUSE_UNICODE - wxWX2MBbuf tmpbuf = tmp.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), tmpbuf, strlen(tmpbuf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), tmp.mbc_str(), tmp.Length(), &len ); -#endif - } - else - { - gtk_entry_set_text( GTK_ENTRY(m_text), tmp.mbc_str() ); - } - - gtk_signal_connect( GTK_OBJECT(m_text), "changed", - GTK_SIGNAL_FUNC(gtk_text_changed_callback), (gpointer)this); -} - -void wxTextCtrl::WriteText( const wxString &text ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (text.IsNull()) return; - - if (m_windowStyle & wxTE_MULTILINE) - { - /* this moves the cursor pos to behind the inserted text */ - gint len = GTK_EDITABLE(m_text)->current_pos; - -#if wxUSE_UNICODE - wxWX2MBbuf buf = text.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len ); -#endif - - /* bring editable's cursor uptodate. bug in GTK. */ - GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - else - { - /* this moves the cursor pos to behind the inserted text */ - gint len = GTK_EDITABLE(m_text)->current_pos; -#if wxUSE_UNICODE - wxWX2MBbuf buf = text.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len ); -#endif - - /* bring editable's cursor uptodate. bug in GTK. */ - GTK_EDITABLE(m_text)->current_pos += text.Len(); - - /* bring entry's cursor uptodate. bug in GTK. */ - gtk_entry_set_position( GTK_ENTRY(m_text), GTK_EDITABLE(m_text)->current_pos ); - } -} - -void wxTextCtrl::AppendText( const wxString &text ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (m_windowStyle & wxTE_MULTILINE) - { - /* we'll insert at the last position */ - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); -#if wxUSE_UNICODE - wxWX2MBbuf buf = text.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, text.Length(), &len ); -#endif - - /* bring editable's cursor uptodate. bug in GTK. */ - GTK_EDITABLE(m_text)->current_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - else - { - gtk_entry_append_text( GTK_ENTRY(m_text), text.mbc_str() ); - } -} - -bool wxTextCtrl::LoadFile( const wxString &file ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - if (!wxFileExists(file)) return FALSE; - - Clear(); - - FILE *fp = (FILE*) NULL; - struct stat statb; - - if ((stat (FNSTRINGCAST file.fn_str(), &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG || - !(fp = fopen (FNSTRINGCAST file.fn_str(), "r"))) - { - return FALSE; - } - else - { - gint len = statb.st_size; - char *text; - if (!(text = (char*)malloc ((unsigned) (len + 1)))) - { - fclose (fp); - return FALSE; - } - if (fread (text, sizeof (char), len, fp) != (size_t) len) - { - } - fclose (fp); - - text[len] = 0; - - if (m_windowStyle & wxTE_MULTILINE) - { - gint pos = 0; - gtk_editable_insert_text( GTK_EDITABLE(m_text), text, len, &pos ); - } - else - { - gtk_entry_set_text( GTK_ENTRY(m_text), text ); - } - - free (text); - m_modified = FALSE; - return TRUE; - } - return FALSE; -} - -bool wxTextCtrl::SaveFile( const wxString &file ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - if (file == _T("")) return FALSE; - - FILE *fp; - - if (!(fp = fopen (FNSTRINGCAST file.fn_str(), "w"))) - { - return FALSE; - } - else - { - char *text = (char*) NULL; - gint len = 0; - - if (m_windowStyle & wxTE_MULTILINE) - { - len = gtk_text_get_length( GTK_TEXT(m_text) ); - text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len ); - } - else - { - text = gtk_entry_get_text( GTK_ENTRY(m_text) ); - } - - if (fwrite (text, sizeof (char), len, fp) != (size_t) len) - { - // Did not write whole file - } - - // Make sure newline terminates the file - if (text[len - 1] != '\n') - fputc ('\n', fp); - - fclose (fp); - - if (m_windowStyle & wxTE_MULTILINE) g_free( text ); - - m_modified = FALSE; - return TRUE; - } - - return TRUE; -} - -wxString wxTextCtrl::GetLineText( long lineNo ) const -{ - if (m_windowStyle & wxTE_MULTILINE) - { - gint len = gtk_text_get_length( GTK_TEXT(m_text) ); - char *text = gtk_editable_get_chars( GTK_EDITABLE(m_text), 0, len ); - - if (text) - { - wxString buf(_T("")); - long i; - int currentLine = 0; - for (i = 0; currentLine != lineNo && text[i]; i++ ) - if (text[i] == '\n') - currentLine++; - // Now get the text - int j; - for (j = 0; text[i] && text[i] != '\n'; i++, j++ ) - buf += text[i]; - - g_free( text ); - return buf; - } - else - return wxEmptyString; - } - else - { - if (lineNo == 0) return GetValue(); - return wxEmptyString; - } -} - -void wxTextCtrl::OnDropFiles( wxDropFilesEvent &WXUNUSED(event) ) -{ - /* If you implement this, don't forget to update the documentation! - * (file docs/latex/wx/text.tex) */ - wxFAIL_MSG( _T("wxTextCtrl::OnDropFiles not implemented") ); -} - -long wxTextCtrl::PositionToXY(long pos, long *x, long *y ) const -{ - if ( m_windowStyle & wxTE_MULTILINE ) - { - wxString text = GetValue(); - - // cast to prevent warning. But pos really should've been unsigned. - if( (unsigned long)pos > text.Len() ) - return FALSE; - - *x=0; // First Col - *y=0; // First Line - - const wxChar* stop = text.c_str() + pos; - for ( const wxChar *p = text.c_str(); p < stop; p++ ) - { - if (*p == _T('\n')) - { - (*y)++; - *x=0; - } - else - (*x)++; - } - } - else // single line control - { - if ( pos <= GTK_ENTRY(m_text)->text_length ) - { - *y = 0; - *x = pos; - } - else - { - // index out of bounds - return FALSE; - } - } - - return TRUE; -} - -long wxTextCtrl::XYToPosition(long x, long y ) const -{ - if (!(m_windowStyle & wxTE_MULTILINE)) return 0; - - long pos=0; - for( int i=0; icurrent_pos = gtk_text_get_point( GTK_TEXT(m_text) ); - } - else - { - gtk_entry_set_position( GTK_ENTRY(m_text), (int)pos ); - - /* bring editable's cursor uptodate. bug in GTK. */ - - GTK_EDITABLE(m_text)->current_pos = pos; - } -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (m_windowStyle & wxTE_MULTILINE) - SetInsertionPoint(gtk_text_get_length(GTK_TEXT(m_text))); - else - gtk_entry_set_position( GTK_ENTRY(m_text), -1 ); -} - -void wxTextCtrl::SetEditable( bool editable ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (m_windowStyle & wxTE_MULTILINE) - gtk_text_set_editable( GTK_TEXT(m_text), editable ); - else - gtk_entry_set_editable( GTK_ENTRY(m_text), editable ); -} - -void wxTextCtrl::SetSelection( long from, long to ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_editable_select_region( GTK_EDITABLE(m_text), (gint)from, (gint)to ); -} - -void wxTextCtrl::ShowPosition( long WXUNUSED(pos) ) -{ -// SetInsertionPoint( pos ); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - wxCHECK_MSG( m_text != NULL, 0, _T("invalid text ctrl") ); - - return (long) GTK_EDITABLE(m_text)->current_pos; -} - -long wxTextCtrl::GetLastPosition() const -{ - wxCHECK_MSG( m_text != NULL, 0, _T("invalid text ctrl") ); - - int pos = 0; - if (m_windowStyle & wxTE_MULTILINE) - pos = gtk_text_get_length( GTK_TEXT(m_text) ); - else - pos = GTK_ENTRY(m_text)->text_length; - - return (long)pos; -} - -void wxTextCtrl::Remove( long from, long to ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to ); -} - -void wxTextCtrl::Replace( long from, long to, const wxString &value ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - gtk_editable_delete_text( GTK_EDITABLE(m_text), (gint)from, (gint)to ); - if (value.IsNull()) return; - gint pos = (gint)from; -#if wxUSE_UNICODE - wxWX2MBbuf buf = value.mbc_str(); - gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &pos ); -#else - gtk_editable_insert_text( GTK_EDITABLE(m_text), value, value.Length(), &pos ); -#endif -} - -void wxTextCtrl::Cut() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - -#if (GTK_MINOR_VERSION > 0) - gtk_editable_cut_clipboard( GTK_EDITABLE(m_text) ); -#else - gtk_editable_cut_clipboard( GTK_EDITABLE(m_text), 0 ); -#endif -} - -void wxTextCtrl::Copy() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - -#if (GTK_MINOR_VERSION > 0) - gtk_editable_copy_clipboard( GTK_EDITABLE(m_text) ); -#else - gtk_editable_copy_clipboard( GTK_EDITABLE(m_text), 0 ); -#endif -} - -void wxTextCtrl::Paste() -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - -#if (GTK_MINOR_VERSION > 0) - gtk_editable_paste_clipboard( GTK_EDITABLE(m_text) ); -#else - gtk_editable_paste_clipboard( GTK_EDITABLE(m_text), 0 ); -#endif -} - -bool wxTextCtrl::CanCopy() const -{ - // Can copy if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanCut() const -{ - // Can cut if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanPaste() const -{ - return IsEditable() ; -} - -// Undo/redo -void wxTextCtrl::Undo() -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::Undo not implemented") ); -} - -void wxTextCtrl::Redo() -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::Redo not implemented") ); -} - -bool wxTextCtrl::CanUndo() const -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::CanUndo not implemented") ); - return FALSE; -} - -bool wxTextCtrl::CanRedo() const -{ - // TODO - wxFAIL_MSG( _T("wxTextCtrl::CanRedo not implemented") ); - return FALSE; -} - -// If the return values from and to are the same, there is no -// selection. -void wxTextCtrl::GetSelection(long* from, long* to) const -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if (!(GTK_EDITABLE(m_text)->has_selection)) - { - if (from) *from = 0; - if (to) *to = 0; - return; - } - - if (from) *from = (long) GTK_EDITABLE(m_text)->selection_start_pos; - if (to) *to = (long) GTK_EDITABLE(m_text)->selection_end_pos; -} - -bool wxTextCtrl::IsEditable() const -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - return GTK_EDITABLE(m_text)->editable; -} - -void wxTextCtrl::Clear() -{ - SetValue( _T("") ); -} - -void wxTextCtrl::OnChar( wxKeyEvent &key_event ) -{ - wxCHECK_RET( m_text != NULL, _T("invalid text ctrl") ); - - if ((key_event.KeyCode() == WXK_RETURN) && (m_windowStyle & wxPROCESS_ENTER)) - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); - event.SetEventObject(this); - if (GetEventHandler()->ProcessEvent(event)) return; - } - - key_event.Skip(); -} - -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow( int WXUNUSED(c) ) -{ - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return EOF; -} - -int wxTextCtrl::sync() -{ - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -} - -int wxTextCtrl::underflow() -{ - return EOF; -} - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - static char buf[100]; - sprintf(buf, "%.2f", f); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - static char buf[100]; - sprintf(buf, "%.2f", d); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - static char buf[100]; - sprintf(buf, "%i", i); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - static char buf[100]; - sprintf(buf, "%ld", i); - AppendText(buf); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} -#endif - -GtkWidget* wxTextCtrl::GetConnectWidget() -{ - return GTK_WIDGET(m_text); -} - -bool wxTextCtrl::IsOwnGtkWindow( GdkWindow *window ) -{ - if (m_windowStyle & wxTE_MULTILINE) - return (window == GTK_TEXT(m_text)->text_area); - else - return (window == GTK_ENTRY(m_text)->text_area); -} - -bool wxTextCtrl::SetFont( const wxFont &WXUNUSED(font) ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - // doesn't work - return FALSE; -} - -bool wxTextCtrl::SetForegroundColour( const wxColour &WXUNUSED(colour) ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - // doesn't work - return FALSE; -} - -bool wxTextCtrl::SetBackgroundColour( const wxColour &colour ) -{ - wxCHECK_MSG( m_text != NULL, FALSE, _T("invalid text ctrl") ); - - wxControl::SetBackgroundColour( colour ); - - if (!m_widget->window) - return FALSE; - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg.Red() == colour.Red() && - sysbg.Green() == colour.Green() && - sysbg.Blue() == colour.Blue()) - { - return FALSE; // FIXME or TRUE? - } - - if (!m_backgroundColour.Ok()) - return FALSE; - - if (m_windowStyle & wxTE_MULTILINE) - { - GdkWindow *window = GTK_TEXT(m_text)->text_area; - if (!window) - return FALSE; - m_backgroundColour.CalcPixel( gdk_window_get_colormap( window ) ); - gdk_window_set_background( window, m_backgroundColour.GetColor() ); - gdk_window_clear( window ); - } - - return TRUE; -} - -void wxTextCtrl::ApplyWidgetStyle() -{ - if (m_windowStyle & wxTE_MULTILINE) - { - // how ? - } - else - { - SetWidgetStyle(); - gtk_widget_set_style( m_text, m_widgetStyle ); - } -} - -void wxTextCtrl::OnCut(wxCommandEvent& WXUNUSED(event)) -{ - Cut(); -} - -void wxTextCtrl::OnCopy(wxCommandEvent& WXUNUSED(event)) -{ - Copy(); -} - -void wxTextCtrl::OnPaste(wxCommandEvent& WXUNUSED(event)) -{ - Paste(); -} - -void wxTextCtrl::OnUndo(wxCommandEvent& WXUNUSED(event)) -{ - Undo(); -} - -void wxTextCtrl::OnRedo(wxCommandEvent& WXUNUSED(event)) -{ - Redo(); -} - -void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event) -{ - event.Enable( CanCut() ); -} - -void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event) -{ - event.Enable( CanCopy() ); -} - -void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event) -{ - event.Enable( CanPaste() ); -} - -void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event) -{ - event.Enable( CanUndo() ); -} - -void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event) -{ - event.Enable( CanRedo() ); -} diff --git a/src/gtk1/threadno.cpp b/src/gtk1/threadno.cpp deleted file mode 100644 index 4ac3f05954..0000000000 --- a/src/gtk1/threadno.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: Solaris thread support -// Author: Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "thread.h" -#endif - -#include "wx/wx.h" -#include "wx/module.h" -#include "wx/thread.h" -#include "wx/log.h" - -wxMutex::wxMutex() -{ - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked) - wxLogDebug( "wxMutex warning: destroying a locked mutex (%d locks)", m_locked ); -} - -wxMutexError wxMutex::Lock() -{ - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (m_locked > 0) - return wxMUTEX_BUSY; - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked == 0) - return wxMUTEX_UNLOCKED; - m_locked--; - return wxMUTEX_NO_ERROR; -} - -wxCondition::wxCondition() -{ -} - -wxCondition::~wxCondition() -{ -} - -void wxCondition::Wait(wxMutex& WXUNUSED(mutex)) -{ -} - -bool wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) -{ - return FALSE; -} - -void wxCondition::Signal() -{ -} - -void wxCondition::Broadcast() -{ -} - -struct wxThreadInternal -{ - int thread_id; - void* exit_status; -}; - -wxThreadError wxThread::Create() -{ - p_internal->exit_status = Entry(); - OnExit(); - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - return wxTHREAD_NOT_RUNNING; -} - -wxThreadError wxThread::Pause() -{ - return wxTHREAD_NOT_RUNNING; -} - -wxThreadError wxThread::Resume() -{ - return wxTHREAD_NOT_RUNNING; -} - -void wxThread::DeferDestroy( bool WXUNUSED(on) ) -{ -} - -void wxThread::TestDestroy() -{ -} - -void *wxThread::Join() -{ - return p_internal->exit_status; -} - -unsigned long wxThread::GetID() const -{ - return 0; -} - -bool wxThread::IsMain() -{ - return TRUE; -} - -bool wxThread::IsRunning() const -{ - return FALSE; -} - -bool wxThread::IsAlive() const -{ - return FALSE; -} - -void wxThread::SetPriority(int WXUNUSED(prio)) { } -int wxThread::GetPriority() const { return 0; } - -wxMutex *wxMainMutex; // controls access to all GUI functions - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -bool wxThreadModule::OnInit() -{ - wxMainMutex = new wxMutex(); - wxMainMutex->Lock(); - return TRUE; -} - -void wxThreadModule::OnExit() -{ - wxMainMutex->Unlock(); - delete wxMainMutex; -} - - - -void wxMutexGuiEnter() -{ -} - -void wxMutexGuiLeave() -{ -} diff --git a/src/gtk1/threadsgi.cpp b/src/gtk1/threadsgi.cpp deleted file mode 100644 index 217f67d7d9..0000000000 --- a/src/gtk1/threadsgi.cpp +++ /dev/null @@ -1,269 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: threadsgi.cpp -// Purpose: wxThread (SGI) Implementation -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include -#include - -#include -#include -#include -#include "wx/thread.h" -#include "wx/module.h" -#include "wx/utils.h" -#include "wx/log.h" - -#include "gdk/gdk.h" -#include "gtk/gtk.h" - -enum thread_state -{ - STATE_IDLE = 0, - STATE_RUNNING, - STATE_CANCELED, - STATE_EXITED -}; - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -static int p_mainid; -wxMutex *wxMainMutex; - -#include "threadgui.inc" - -///////////////////////////////////////////////////////////////////////////// -// Unix implementations (SGI threads) -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - abilock_t p_mutex; -}; - -wxMutex::wxMutex() -{ - m_locked = 0; - p_internal = new wxMutexInternal; - init_lock(&(p_internal->p_mutex)); -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxLogDebug( "wxMutex warning: freeing a locked mutex (%d locks)\n", m_locked ); - delete p_internal; -} - -wxMutexError wxMutex::Lock() -{ - spin_lock(&(p_internal->p_mutex)); - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (acquire_lock(&(p_internal->p_mutex)) != 0) - return wxMUTEX_BUSY; - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked == 0) - return wxMUTEX_UNLOCKED; - release_lock(&(p_internal->p_mutex)); - m_locked--; - return wxMUTEX_NO_ERROR; -} - -// GL: Don't know how it works on SGI. Wolfram ? - -wxCondition::wxCondition() {} -wxCondition::~wxCondition() {} -int wxCondition::Wait(wxMutex& WXUNUSED(mutex)) { return 0;} -int wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) { return 0; } -int wxCondition::Signal() { return 0; } -int wxCondition::Broadcast() { return 0; } - -class -wxThreadPrivate { -public: - wxThreadPrivate() { thread_id = 0; state = STATE_IDLE; } - ~wxThreadPrivate() {} - static void SprocStart(void *ptr); - static void SignalHandler(int sig); -public: - int state, thread_id; - void* exit_status; -}; - -void wxThreadPrivate::SprocStart(void *ptr) -{ - void* status; - - wxThread *thr = (wxThread *)ptr; - - thr->p_internal->thread_id = getpid(); - thr->p_internal->exit_status = 0; - status = thr->Entry(); - thr->Exit(status); -} - -void wxThread::Exit(void* status) -{ - wxThread* ptr = this; - THREAD_SEND_EXIT_MSG(ptr); - p_internal->state = STATE_EXITED; - p_internal->exit_status = status; - _exit(0); -} - -wxThreadError wxThread::Create() -{ - if (p_internal->state != STATE_IDLE) - return wxTHREAD_RUNNING; - p_internal->state = STATE_RUNNING; - if (sproc(p_internal->SprocStart, PR_SALL, this) < 0) { - p_internal->state = STATE_IDLE; - return wxTHREAD_NO_RESOURCE; - } - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - if (p_internal->state == STATE_RUNNING) - p_internal->state = STATE_CANCELED; - - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - return wxTHREAD_NO_ERROR; -} - -void *wxThread::Join() -{ - if (p_internal->state != STATE_IDLE) { - bool do_unlock = wxThread::IsMain(); - int stat; - - if (do_unlock) - wxMainMutex->Unlock(); - waitpid(p_internal->thread_id, &stat, 0); - if (do_unlock) - wxMainMutex->Lock(); - if (!WIFEXITED(stat) && !WIFSIGNALED(stat)) - return 0; - p_internal->state = STATE_IDLE; - return p_internal->exit_status; - } - return 0; -} - -unsigned long wxThread::GetID() const -{ - return (unsigned long)p_internal->thread_id; -} - -void wxThread::TestDestroy() -{ - if (p_internal->state == STATE_CANCELED) { - p_internal->exit_status = 0; - _exit(0); - } -} - -void wxThread::SetPriority(int prio) -{ -} - -int wxThread::GetPriority() const -{ - return 0; -} - -bool wxThread::IsMain() -{ - return (int)getpid() == main_id; -} - -bool wxThread::IsAlive() const -{ - return (p_internal->state == STATE_RUNNING); -} - -bool wxThread::IsRunning() const -{ - return (p_internal->state == STATE_RUNNING); -} - -wxThread::wxThread() -{ - p_internal = new wxThreadPrivate(); -} - -wxThread::~wxThread() -{ - Cancel(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Global initialization - -class wxThreadModule : public wxModule -{ -public: - virtual bool OnInit(); - virtual void OnExit(); - -private: - DECLARE_DYNAMIC_CLASS(wxThreadModule) -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -bool wxThreadModule::OnInit() -{ - wxMainMutex = new wxMutex(); - wxThreadGuiInit(); - p_mainid = (int)getpid(); - wxMainMutex->Lock(); - return TRUE; -} - -void wxThreadModule::OnExit() -{ - wxMainMutex->Unlock(); - wxThreadGuiExit(); - delete wxMainMutex; -} - diff --git a/src/gtk1/timer.cpp b/src/gtk1/timer.cpp deleted file mode 100644 index a1a8a8126a..0000000000 --- a/src/gtk1/timer.cpp +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" - -#include "gtk/gtk.h" -/* -#include "glib.h" -*/ - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -/* -static GTimer *g_timer = (GTimer*) NULL; - -void wxStartTimer() -{ - if (g_timer) - { - g_timer_rest( g_timer ); - } - else - { - g_timer = g_timer_new(); - g_timer_start( g_timer ); - } -} - -long wxGetElapsedTime( bool resetTimer ) -{ - gulong res = 0; - if (g_timer) - { - g_timer_elapsed( g_timer, &res ); - if (resetTimer) g_timer_reset( g_timer ); - } - - return res; -} - -bool wxGetLocalTime( long *timeZone, int *dstObserved ) -{ -} - -long wxGetCurrentTime() -{ -} -*/ - - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxTimer,wxObject) - -static gint timeout_callback( gpointer data ) -{ - wxTimer *timer = (wxTimer*)data; - timer->Notify(); - - if (timer->OneShot()) - { - timer->Stop(); - } - - return TRUE; -} - -wxTimer::wxTimer() -{ - m_tag = -1; - m_time = 1000; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); -} - -bool wxTimer::Start( int millisecs, bool oneShot ) -{ - if (millisecs != -1) - { - m_time = millisecs; - } - - m_oneShot = oneShot; - - m_tag = gtk_timeout_add( millisecs, timeout_callback, this ); - - return TRUE; -} - -void wxTimer::Stop() -{ - if (m_tag != -1) - { - gtk_timeout_remove( m_tag ); - m_tag = -1; - } -} - diff --git a/src/gtk1/tooltip.cpp b/src/gtk1/tooltip.cpp deleted file mode 100644 index 2e400fe04d..0000000000 --- a/src/gtk1/tooltip.cpp +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tooltip.cpp -// Purpose: wxToolTip implementation -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "tooltip.h" -#endif - -#include "wx/setup.h" - -#if wxUSE_TOOLTIPS - -#include "wx/window.h" -#include "wx/tooltip.h" - -#include "gtk/gtk.h" -#include "gdk/gdk.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -static GtkTooltips *ss_tooltips = (GtkTooltips*) NULL; -static GdkColor ss_bg; -static GdkColor ss_fg; - -//----------------------------------------------------------------------------- -// wxToolTip -//----------------------------------------------------------------------------- - -wxToolTip::wxToolTip( const wxString &tip ) -{ - m_text = tip; - m_window = (wxWindow*) NULL; -} - -void wxToolTip::SetTip( const wxString &tip ) -{ - m_text = tip; - Apply( m_window ); -} - -void wxToolTip::Apply( wxWindow *win ) -{ - if (!win) return; - - if (!ss_tooltips) - { - ss_tooltips = gtk_tooltips_new(); - - ss_fg.red = 0; - ss_fg.green = 0; - ss_fg.blue = 0; - gdk_color_alloc( gtk_widget_get_default_colormap(), &ss_fg ); - - ss_bg.red = 65535; - ss_bg.green = 65535; - ss_bg.blue = 50000; - gdk_color_alloc( gtk_widget_get_default_colormap(), &ss_bg ); - -#if (GTK_MINOR_VERSION > 0) - gtk_tooltips_force_window( ss_tooltips ); - - GtkStyle *g_style = - gtk_style_copy( - gtk_widget_get_style( ss_tooltips->tip_window ) ); - - g_style->fg[GTK_STATE_NORMAL] = ss_fg; - g_style->bg[GTK_STATE_NORMAL] = ss_bg; - - gtk_widget_set_style( ss_tooltips->tip_window, g_style ); -#else - gtk_tooltips_set_colors( ss_tooltips, &ss_bg, &ss_fg ); -#endif - } - - m_window = win; - - if (m_text.IsEmpty()) - m_window->ApplyToolTip( ss_tooltips, (wxChar*) NULL ); - else - m_window->ApplyToolTip( ss_tooltips, m_text ); -} - -void wxToolTip::Enable( bool flag ) -{ - if (!ss_tooltips) return; - - if (flag) - gtk_tooltips_enable( ss_tooltips ); - else - gtk_tooltips_disable( ss_tooltips ); -} - -void wxToolTip::SetDelay( long msecs ) -{ - if (!ss_tooltips) return; - - gtk_tooltips_set_delay( ss_tooltips, msecs ); -} -#endif - diff --git a/src/gtk1/treegtk.cpp b/src/gtk1/treegtk.cpp deleted file mode 100644 index 6d8fa194e1..0000000000 --- a/src/gtk1/treegtk.cpp +++ /dev/null @@ -1,936 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: wxTreeCtrl -// Author: Denis Pershin -// Modified by: -// Created: 07/05/98 -// RCS-ID: $Id$ -// Copyright: (c) Denis Pershin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "treectrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/gtk/treectrl.h" -#include -#include "wx/log.h" - -#include - -//static void wxConvertToGtkTreeItem(wxTreeCtrl *owner, wxTreeItem& info, GtkTreeItem **gtkItem); -//static void wxConvertFromGtkTreeItem(wxTreeItem& info, GtkTreeItem *gtkItem); - -static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data); -static void gtk_treectrl_first_selected_callback(GtkWidget *widget, gpointer data); -static void gtk_treectrl_first_visible_callback(GtkWidget *widget, gpointer data); - -// static void gtk_treectrl_next_callback (GtkWidget *widget, gpointer data); -// static void gtk_treectrl_next_visible_callback (GtkWidget *widget, gpointer data); -// static void gtk_treectrl_next_selected_callback (GtkWidget *widget, gpointer data); - -static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItemId *treeitem); -static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItemId *treeitem); -static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItemId *treeitem); - -static void gtk_treeitem_expand_callback(GtkWidget *widget, wxTreeItemId *treeitem) { - wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner"); - if (owner == NULL) - return; - -// long id = (long)gtk_object_get_data(GTK_OBJECT(widget), "id"); - owner->SendExpanding(GTK_TREE_ITEM(widget)); - owner->SendExpanded(GTK_TREE_ITEM(widget)); -}; - -static void gtk_treeitem_collapse_callback(GtkWidget *widget, wxTreeItemId *treeitem) { - wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner"); - if (owner == NULL) - return; - -// long id = (long)gtk_object_get_data(GTK_OBJECT(widget), "id"); - owner->SendCollapsing(GTK_TREE_ITEM(widget)); - owner->SendCollapsed(GTK_TREE_ITEM(widget)); -}; - -static void gtk_treeitem_select_callback(GtkWidget *widget, wxTreeItemId *treeitem) { - wxTreeCtrl *owner = (wxTreeCtrl *)gtk_object_get_data(GTK_OBJECT(widget), "owner"); - if (owner == NULL) - return; - -// long id = (long)gtk_object_get_data(GTK_OBJECT(widget), "id"); - owner->SendSelChanging(GTK_TREE_ITEM(widget)); - owner->SendSelChanged(GTK_TREE_ITEM(widget)); -} - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) - -#endif - -void wxTreeCtrl::Init() { - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, const wxString& name) { - Init(); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - SetParent(parent); - - if (width <= 0) - width = 100; - if (height <= 0) - height = 30; - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - m_needParent = TRUE; - -printf("precreate\n"); - PreCreation( parent, id, pos, size, style, name ); - -printf("1\n"); - - m_widget = gtk_scrolled_window_new(NULL, NULL); -printf("2\n"); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(m_widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - -printf("3\n"); - m_tree = GTK_TREE(gtk_tree_new()); - -printf("4\n"); - gtk_container_add(GTK_CONTAINER(m_widget), GTK_WIDGET(m_tree)); -printf("5\n"); - gtk_widget_show(GTK_WIDGET(m_tree)); - - SetName(name); - SetValidator(validator); - -printf("Robert's new insertion code :-)\n"); - m_parent->DoAddChild( this ); -printf("postcreate\n"); - PostCreation(); - - gtk_widget_realize(GTK_WIDGET(m_tree)); - - Show(TRUE); - - return TRUE; -} - -wxTreeCtrl::~wxTreeCtrl(void) { - if (m_textCtrl) - delete m_textCtrl; -} - -// Attributes -static void gtk_treectrl_count_callback (GtkWidget *widget, gpointer data) { - int count = (*((int *)data)); - - count++; - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_count_callback, data); -} - -size_t wxTreeCtrl::GetCount() const { - int count = 0; - - if (m_anchor != NULL) - gtk_treectrl_count_callback(GTK_WIDGET(m_anchor), &count); - return count; -} - -unsigned int wxTreeCtrl::GetIndent() const { - return m_tree->indent_value; -} - -void wxTreeCtrl::SetIndent(unsigned int indent) { - m_tree->indent_value = indent; -} - -wxImageList *wxTreeCtrl::GetImageList() const { - return m_imageListNormal; -} - -wxImageList *wxTreeCtrl::GetStateImageList() const { - return m_imageListState; -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList) { - m_imageListNormal = imageList; -} - -void wxTreeCtrl::SetStateImageList(wxImageList *imageList) { - m_imageListState = imageList; -} - -wxString wxTreeCtrl::GetItemText(const wxTreeItemId &item) const { - char *t; - - if (!item.IsOk()) - return wxString(""); - - GtkLabel *l = GTK_LABEL(gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "w_label")); - gtk_label_get(l, &t); - - return t; -} - -int wxTreeCtrl::GetItemImage(const wxTreeItemId& item) const { - if (!item.IsOk()) - return (-1); - - return (int)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "image"); -} - -int wxTreeCtrl::GetItemSelectedImage(const wxTreeItemId& item) const { - if (!item.IsOk()) - return (-1); - - return (int)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "selectedImage"); -} - -wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const { - if (!item.IsOk()) - return NULL; - - return (wxTreeItemData *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "data"); -} - -void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) { - if (!item.IsOk()) - return; - - GtkLabel *l = GTK_LABEL(gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "w_label")); - gtk_label_set(l, text); -} - -void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image) { - if (!item.IsOk()) - return; - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "image", (void *)image); -} - -void wxTreeCtrl::SetItemSelectedImage(const wxTreeItemId& item, int image) { - if (!item.IsOk()) - return; - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "selectedImage", (void *)image); -} - -void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data) { - if (!item.IsOk()) - return; - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "data", data); -} - -bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const { - return GTK_WIDGET_VISIBLE(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - - if (p->subtree == NULL) - return wxFalse; - - if (GTK_TREE(p->subtree)->children == NULL) - return wxFalse; - - if (g_list_length(GTK_TREE(p->subtree)->children) == 0) - return wxFalse; - - return wxTrue; -} - -bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const { - return (((GtkTreeItem *)item)->expanded != 0); -} - -bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return wxFalse; - - if (g_list_index(GTK_TREE(parent)->children, p) == -1) - return wxFalse; - - return wxTrue; -} - -wxTreeItemId wxTreeCtrl::GetRootItem() const { - return m_anchor; -} - -static void gtk_treectrl_first_selected_callback(GtkWidget *widget, gpointer data) { - GtkTreeItem *p = (*((GtkTreeItem **)data)); - - GtkTree *tree = GTK_TREE(GTK_TREE_ITEM(widget)->subtree); - - if (tree->selection != NULL) { - p = (GtkTreeItem *)tree->selection->data; - return; - } - - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_first_selected_callback, data); -} - -wxTreeItemId wxTreeCtrl::GetSelection() const { - GtkTreeItem *p = NULL; - - if (m_anchor == NULL) - return NULL; - - gtk_treectrl_first_selected_callback(GTK_WIDGET(m_anchor), &p); - - return p; -} - -wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const { - if (item.IsOk()) - return (GtkTreeItem *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "parent"); - - return NULL; -} - -wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, long& cookie) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - cookie = 0; - return GTK_TREE_ITEM(g_list_first(GTK_TREE(parent)->children)->data); -} - -wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& item, long& cookie) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - cookie++; - return GTK_TREE_ITEM(g_list_nth(GTK_TREE(parent)->children, cookie)->data); -} - -wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const -{ - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - wxCHECK_MSG( GTK_IS_TREE(parent), NULL, "invalid tree item" ); - - return GTK_TREE_ITEM(g_list_last(GTK_TREE(parent)->children)->data); -} - -wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (g_list_index(GTK_TREE(parent)->children, p) == -1) - return NULL; - - return GTK_TREE_ITEM(g_list_next(g_list_find(GTK_TREE(parent)->children, p))->data); -} - -wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkWidget *parent = GTK_WIDGET(p)->parent; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (g_list_index(GTK_TREE(parent)->children, p) == -1) - return NULL; - - return GTK_TREE_ITEM(g_list_previous(g_list_find(GTK_TREE(parent)->children, p))->data); -} - -static void gtk_treectrl_first_visible_callback(GtkWidget *widget, gpointer data) { - GtkTreeItem *p = (*((GtkTreeItem **)data)); - - GtkTree *tree = GTK_TREE(GTK_TREE_ITEM(widget)->subtree); - - if (tree->children != NULL) { - guint len = g_list_length(tree->children); - for (guint i=0; ichildren, i)->data)))) { - p = GTK_TREE_ITEM((GtkTreeItem *)g_list_nth(tree->children, i)->data); - return; - } - } - } - - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_first_visible_callback, data); -} - -wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const { - GtkTreeItem *p = NULL; - - if (m_anchor == NULL) - return NULL; - - gtk_treectrl_first_visible_callback(GTK_WIDGET(m_anchor), &p); - - return p; -} - -wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkTree *parent = GTK_TREE(GTK_WIDGET(p)->parent); - GtkTreeItem *q; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (parent->children == NULL) - return NULL; - - q = GTK_TREE_ITEM(g_list_next(g_list_find(GTK_TREE(parent)->children, p))->data); - - while (q != p) { - q = GTK_TREE_ITEM(g_list_next(g_list_find(GTK_TREE(parent)->children, q))->data); - if (GTK_WIDGET_VISIBLE(GTK_WIDGET(q))) - return q; - } - - return NULL; -} - -wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const { - GtkTreeItem *p = (GtkTreeItem *)item; - GtkTree *parent = GTK_TREE(GTK_WIDGET(p)->parent); - GtkTreeItem *q; - - if (!GTK_IS_TREE(parent)) - return NULL; - - if (parent->children == NULL) - return NULL; - - q = GTK_TREE_ITEM(g_list_previous(g_list_find(GTK_TREE(parent)->children, p))->data); - - while (q != p) { - q = GTK_TREE_ITEM(g_list_previous(g_list_find(GTK_TREE(parent)->children, q))->data); - if (GTK_WIDGET_VISIBLE(GTK_WIDGET(q))) - return q; - } - - return NULL; -} - -wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text, int image, - int selectedImage, wxTreeItemData *data) { - return p_InsertItem(0, text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::PrependItem(const wxTreeItemId& parent, - const wxString& text, int image, int selectedImage, - wxTreeItemData *data) { -#warning "Need to implement PrependItem" - return NULL; -} - -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, const wxString& text, - int image, int selectedImage, wxTreeItemData *data) { -#warning "Need to implement InsertItem" - return NULL; -} - -wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parent, - const wxString& text, int image, int selectedImage, - wxTreeItemData *data) { - return p_InsertItem(parent, text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::p_InsertItem(GtkTreeItem *p, - const wxString& text, int image, int selectedImage, - wxTreeItemData *data) { - GtkTreeItem *item; - -printf("begin insert\n"); - - item = GTK_TREE_ITEM(gtk_tree_item_new()); - - GtkHBox *m_box = GTK_HBOX(gtk_hbox_new(FALSE, 0)); - gtk_container_add (GTK_CONTAINER (item), GTK_WIDGET(m_box)); - - gtk_object_set_data(GTK_OBJECT(item), "w_box", m_box); - - const wxBitmap *bmp; - const wxImageList *list; - if ((list = GetImageList(wxIMAGE_LIST_NORMAL)) != NULL) - if ((bmp = list->GetBitmap(image)) != NULL) - if (bmp->Ok()) { - GdkBitmap *mask = NULL; - if (bmp->GetMask()) - mask = bmp->GetMask()->GetBitmap(); - GtkPixmap *m_image_widget = GTK_PIXMAP(gtk_pixmap_new(bmp->GetPixmap(), mask)); - gtk_misc_set_alignment (GTK_MISC (m_image_widget), 0.0, 0.5); - gtk_box_pack_start(GTK_BOX(m_box), GTK_WIDGET(m_image_widget), FALSE, FALSE, 0); - gtk_object_set_data(GTK_OBJECT(item), "w_image", (void *)m_image_widget); - gtk_object_set_data(GTK_OBJECT(item), "image", (void *)image); - gtk_widget_show (GTK_WIDGET(m_image_widget)); - } - GtkLabel *m_label_widget = GTK_LABEL(gtk_label_new ((char *)(const char *)text)); - gtk_misc_set_alignment (GTK_MISC (m_label_widget), 0.5, 0.5); - gtk_box_pack_start(GTK_BOX(m_box), GTK_WIDGET(m_label_widget), FALSE, FALSE, 0); - gtk_object_set_data(GTK_OBJECT(item), "w_label", m_label_widget); - gtk_widget_show (GTK_WIDGET(m_label_widget)); - - gtk_widget_show(GTK_WIDGET(m_box)); - - gtk_object_set_data(GTK_OBJECT(item), "owner", this); - gtk_object_set_data(GTK_OBJECT(item), "data", data); - gtk_object_set_data(GTK_OBJECT(item), "parent", p); - - if (p != 0) { - if (p->subtree == NULL) { - GtkTree *tree = GTK_TREE(gtk_tree_new()); - gtk_tree_item_set_subtree(GTK_TREE_ITEM(p), GTK_WIDGET(tree)); - gtk_widget_show(GTK_WIDGET(tree)); - p->expanded = 1; - } - - gtk_container_add(GTK_CONTAINER(p->subtree), GTK_WIDGET(item)); - } else { -printf("Adding root\n"); -printf("m_tree = %p\n", m_tree); - m_anchor = item; - gtk_container_add(GTK_CONTAINER(m_tree), GTK_WIDGET(item)); - } - - gtk_widget_show(GTK_WIDGET(item)); - - gtk_signal_connect(GTK_OBJECT(item), "select", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "deselect", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "expand", - GTK_SIGNAL_FUNC(gtk_treeitem_expand_callback), (gpointer)this ); - gtk_signal_connect(GTK_OBJECT(item), "collapse", - GTK_SIGNAL_FUNC(gtk_treeitem_collapse_callback), (gpointer)this ); - - return item; -} - -void wxTreeCtrl::Delete(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - GtkTreeItem *parent = GTK_TREE_ITEM(GTK_WIDGET((GtkTreeItem *)item)->parent); - if (parent == NULL) - return; - - gtk_container_remove(GTK_CONTAINER(parent), GTK_WIDGET((GtkTreeItem *)item)); - - return; -} - -void wxTreeCtrl::DeleteAllItems() { - gtk_tree_item_remove_subtree(m_anchor); -} - -void wxTreeCtrl::Expand(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_expand(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -void wxTreeCtrl::Collapse(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_collapse(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_collapse(GTK_TREE_ITEM((GtkTreeItem *)item)); - gtk_tree_item_remove_subtree(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -void wxTreeCtrl::Toggle(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - if (((GtkTreeItem *)item)->expanded) - gtk_tree_item_collapse(GTK_TREE_ITEM((GtkTreeItem *)item)); - else - gtk_tree_item_expand(GTK_TREE_ITEM((GtkTreeItem *)item)); -} - -static void gtk_treectrl_unselect_callback(GtkWidget *widget, gpointer data) { - GtkTreeItem *p; - - GtkTree *tree = GTK_TREE(GTK_TREE_ITEM(widget)->subtree); - - if (tree->selection != NULL) { - guint len = g_list_length(tree->selection); - for (guint i=0; iselection, i)->data); - gtk_tree_unselect_child(tree, GTK_WIDGET(p)); - } - } - - if (GTK_IS_CONTAINER(widget)) - gtk_container_foreach(GTK_CONTAINER(widget), gtk_treectrl_unselect_callback, data); -} - -void wxTreeCtrl::Unselect() { - if (m_anchor == NULL) - return; - - gtk_treectrl_unselect_callback(GTK_WIDGET(m_anchor), NULL); -} - -void wxTreeCtrl::SelectItem(const wxTreeItemId& item) { - if (!item.IsOk()) - return; - - gtk_tree_item_select((GtkTreeItem *)item); -} - -void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item) { -#warning "Need to implement EnsureVisible" -} - -void wxTreeCtrl::ScrollTo(const wxTreeItemId& item) { -#warning "Need to implement ScrollTo" -} - -wxTextCtrl* wxTreeCtrl::EditLabel(const wxTreeItemId& item, - wxClassInfo* textControlClass) { - wxASSERT( textControlClass->IsKindOf(CLASSINFO(wxTextCtrl)) ); -#warning "Need to implement EditLabel" -/* - char *s; - m_editItem = item; - - GtkLabel *m_label = (GtkLabel *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)item), "w_label"); - gtk_label_get(m_label, &s); - - m_textCtrl = new wxTextCtrl(this, -1, s); -// m_textCtrl->SetValue(s); - - gtk_object_set_data(GTK_OBJECT((GtkTreeItem *)item), "w_edit", m_textCtrl->m_widget); - - gtk_container_remove(GTK_CONTAINER((GtkTreeItem *)item), GTK_WIDGET(m_label)); - gtk_container_add(GTK_CONTAINER((GtkTreeItem *)item), m_textCtrl->m_widget); - -*/ - return m_textCtrl; -} - -wxTextCtrl* wxTreeCtrl::GetEditControl() const { - return m_textCtrl; -} - -void wxTreeCtrl::EndEditLabel(const wxTreeItemId& item, bool discardChanges) { -#warning "Need to implement EndEditLabel" -/* - GtkLabel *m_label = (GtkLabel *)gtk_object_get_data(GTK_OBJECT((GtkTreeItem *)m_editItem), "w_label"); - gtk_label_set(m_label, m_textCtrl->GetValue()); - - gtk_object_remove_data(GTK_OBJECT((GtkTreeItem *)m_editItem), "w_edit"); - - gtk_container_remove(GTK_CONTAINER((GtkTreeItem *)m_editItem), m_textCtrl->m_widget); - gtk_container_add(GTK_CONTAINER((GtkTreeItem *)m_editItem), GTK_WIDGET(m_label)); - - delete m_textCtrl; - m_textCtrl = NULL; -*/ -} - -void wxTreeCtrl::ExpandItem(const wxTreeItemId& item, int action) { - switch (action) { - case wxTREE_EXPAND_EXPAND: - Expand(item); - break; - - case wxTREE_EXPAND_COLLAPSE: - Collapse(item); - break; - - case wxTREE_EXPAND_COLLAPSE_RESET: - CollapseAndReset(item); - break; - - case wxTREE_EXPAND_TOGGLE: - Toggle(item); - break; - - default: - wxFAIL_MSG("unknown action in wxTreeCtrl::ExpandItem"); - } -} - -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent, - const wxString& text, int image, int selImage, - long insertAfter) { -// InsertItem(parent, insertAfter, text, image, selImage); - #warning "Need to implement InsertItem" - return NULL; -} - -/* Old functions -long wxTreeCtrl::GetChild(long item) const { - GtkTreeItem *p; - GtkTreeItem *next = NULL; - - p = findGtkTreeItem(item); - GList *list = gtk_container_children(GTK_CONTAINER(p)); - next = GTK_TREE_ITEM(list->data);; - - if (next != NULL) - return (long)gtk_object_get_data(GTK_OBJECT(next), "id"); - - return (-1); -} - -long wxTreeCtrl::GetFirstVisibleItem(void) const { - GtkTreeItem *next = NULL; - - GList *list = gtk_container_children(GTK_CONTAINER(m_anchor)); - next = GTK_TREE_ITEM(list->data);; -// gtk_container_foreach(GTK_CONTAINER(m_anchor), gtk_treectrl_next_visible_callback, &next); - - if (next != NULL) - return (long)gtk_object_get_data(GTK_OBJECT(next), "id"); - - return (-1); -} - -long wxTreeCtrl::GetNextVisibleItem(long item) const { - GtkTreeItem *p; - GtkTreeItem *next = NULL; - - p = findGtkTreeItem(item); - GList *list = gtk_container_children(GTK_CONTAINER(p)); - next = GTK_TREE_ITEM(list->data);; -// gtk_container_foreach(GTK_CONTAINER(p), gtk_treectrl_next_visible_callback, &next); - - if (next != NULL) - return (long)gtk_object_get_data(GTK_OBJECT(next), "id"); - - return (-1); -} - -bool wxTreeCtrl::GetItem(wxTreeItem& info) const { - GtkTreeItem *p; - - p = findGtkTreeItem(info.m_itemId); - - if (p == NULL) { - wxLogSysError("TreeCtrl::GetItem failed"); - return FALSE; - } - - wxConvertFromGtkTreeItem(info, p); - - return TRUE; -} - -bool wxTreeCtrl::SetItem(wxTreeItem& info) { - GtkTreeItem *p; - - p = findGtkTreeItem(info.m_itemId); - - if (p == NULL) { - wxLogSysError("TreeCtrl::SetItem failed"); - return FALSE; - } - - wxConvertToGtkTreeItem(this, info, &p); - - return TRUE; -} - -int wxTreeCtrl::GetItemState(long item, long stateMask) const { - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) { - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} -*/ - -// Operations -/* -bool wxTreeCtrl::DeleteChildren(long item) { - GtkTreeItem *p; - - p = findGtkTreeItem(item); - if (p == NULL) - return FALSE; - - gtk_tree_item_remove_subtree(GTK_TREE_ITEM(p)); - - return TRUE; -} -*/ - -/* -long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) { - GtkTreeItem *p; - GtkTreeItem *item = NULL; - - info.m_itemId = m_curitemId; - m_curitemId++; - - wxConvertToGtkTreeItem(this, info, &item); - - if (parent != 0) { - p = findGtkTreeItem(parent); - if (p->subtree == NULL) { - GtkTree *tree = GTK_TREE(gtk_tree_new()); - gtk_tree_item_set_subtree(GTK_TREE_ITEM(p), GTK_WIDGET(tree)); - gtk_widget_show(GTK_WIDGET(tree)); - p->expanded = 1; - } - - gtk_container_add(GTK_CONTAINER(p->subtree), GTK_WIDGET(item)); - } else { - m_anchor = item; - gtk_container_add(GTK_CONTAINER(m_tree), GTK_WIDGET(item)); - } - - if ((info.m_mask & wxTREE_MASK_CHILDREN) != 0) { - GtkTree *tree = GTK_TREE(gtk_tree_new()); - gtk_tree_item_set_subtree(GTK_TREE_ITEM(item), GTK_WIDGET(tree)); - gtk_widget_show(GTK_WIDGET(tree)); - } - - gtk_widget_show(GTK_WIDGET(item)); - - gtk_signal_connect(GTK_OBJECT(item), "select", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "deselect", - GTK_SIGNAL_FUNC(gtk_treeitem_select_callback), (gpointer)this ); - - gtk_signal_connect(GTK_OBJECT(item), "expand", - GTK_SIGNAL_FUNC(gtk_treeitem_expand_callback), (gpointer)this ); - gtk_signal_connect(GTK_OBJECT(item), "collapse", - GTK_SIGNAL_FUNC(gtk_treeitem_collapse_callback), (gpointer)this ); - - return info.m_itemId; -} - -long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image, - int selImage, long insertAfter) { - - wxTreeItem info; - info.m_text = label; - info.m_mask = wxTREE_MASK_TEXT; - if (image > -1) { - info.m_mask |= wxTREE_MASK_IMAGE | wxTREE_MASK_SELECTED_IMAGE; - info.m_image = image; - if (selImage == -1) - info.m_selectedImage = image; - else - info.m_selectedImage = selImage; - } - - return InsertItem(parent, info, insertAfter); -} -*/ - -void wxTreeCtrl::SendMessage(wxEventType command, const wxTreeItemId& item) { - wxTreeEvent event(command, GetId()); - event.SetEventObject(this); - event.m_item = item; - ProcessEvent(event); -} - -void wxTreeCtrl::SendExpanding(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_EXPANDING, item); -} - -void wxTreeCtrl::SendExpanded(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_EXPANDED, item); -} - -void wxTreeCtrl::SendCollapsing(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_COLLAPSING, item); -} - -void wxTreeCtrl::SendCollapsed(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_ITEM_COLLAPSED, item); -} - -void wxTreeCtrl::SendSelChanging(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_SEL_CHANGED, item); -} - -void wxTreeCtrl::SendSelChanged(const wxTreeItemId& item) { - SendMessage(wxEVT_COMMAND_TREE_SEL_CHANGING, item); -} - -// Tree event -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent) - -wxTreeEvent::wxTreeEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) { - m_code = 0; - m_itemOld = 0; -} diff --git a/src/gtk1/utilsgtk.cpp b/src/gtk1/utilsgtk.cpp deleted file mode 100644 index dddd561bcc..0000000000 --- a/src/gtk1/utilsgtk.cpp +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/utils.h" -#include "wx/string.h" - -#include "wx/intl.h" -#include "wx/log.h" - -#include "wx/process.h" - -#include "wx/unix/execute.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // for O_WRONLY and friends - -#include -#include -#include -#include -#include - -#ifdef HAVE_X11_XKBLIB_H - #ifdef __HPUX__ - /* under HP-UX XKBlib.h defines structures with field named "explicit" - - * which is, of course, an error for a C++ compiler */ - #define explicit __wx_explicit - #endif - - #include "X11/XKBlib.h" - - #ifdef __HPUX__ - #undef explicit - #endif // __HPUX__ -#endif // HAVE_X11_XKBLIB_H - -// ---------------------------------------------------------------------------- -// misc. -// ---------------------------------------------------------------------------- - -void wxBell() -{ - gdk_beep(); -} - -/* Don't synthesize KeyUp events holding down a key and producing - KeyDown events with autorepeat. */ -#ifdef HAVE_X11_XKBLIB_H -bool wxSetDetectableAutoRepeat( bool flag ) -{ - Bool result; - XkbSetDetectableAutoRepeat( GDK_DISPLAY(), flag, &result ); - return result; /* TRUE if keyboard hardware supports this mode */ -} -#else -bool wxSetDetectableAutoRepeat( bool WXUNUSED(flag) ) -{ - return FALSE; -} -#endif - -// ---------------------------------------------------------------------------- -// display characterstics -// ---------------------------------------------------------------------------- - -void wxDisplaySize( int *width, int *height ) -{ - if (width) *width = gdk_screen_width(); - if (height) *height = gdk_screen_height(); -} - -void wxGetMousePosition( int* x, int* y ) -{ - gdk_window_get_pointer( (GdkWindow*) NULL, x, y, (GdkModifierType*) NULL ); -} - -bool wxColourDisplay() -{ - return TRUE; -} - -int wxDisplayDepth() -{ - return gdk_window_get_visual( (GdkWindow*) &gdk_root_parent )->depth; -} - -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - if (majorVsn) *majorVsn = GTK_MAJOR_VERSION; - if (minorVsn) *minorVsn = GTK_MINOR_VERSION; - - return wxGTK; -} - -// ---------------------------------------------------------------------------- -// subprocess routines -// ---------------------------------------------------------------------------- - -static void GTK_EndProcessDetector(gpointer data, gint source, - GdkInputCondition WXUNUSED(condition) ) -{ - wxEndProcessData *proc_data = (wxEndProcessData *)data; - - wxHandleProcessTermination(proc_data); - - close(source); - gdk_input_remove(proc_data->tag); -} - -int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) -{ - int tag = gdk_input_add(fd, - GDK_INPUT_READ, - GTK_EndProcessDetector, - (gpointer)proc_data); - - return tag; -} - diff --git a/src/gtk1/utilsres.cpp b/src/gtk1/utilsres.cpp deleted file mode 100644 index 4dc2843925..0000000000 --- a/src/gtk1/utilsres.cpp +++ /dev/null @@ -1,367 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -//#ifdef __GNUG__ -//#pragma implementation "utils.h" -//#endif - -#include "wx/utils.h" -#include "wx/string.h" -#include "wx/list.h" - -#include -#include -#include -#ifdef __SVR4__ -#include -#endif - -#include "gdk/gdkx.h" // GDK_DISPLAY -#include "gdk/gdkprivate.h" // gdk_progclass - -#include -#include -#include - -#include "wx/log.h" - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -// Yuck this is really BOTH site and platform dependent -// so we should use some other strategy! -#ifdef __SUN__ - #define DEFAULT_XRESOURCE_DIR _T("/usr/openwin/lib/app-defaults") -#else - #define DEFAULT_XRESOURCE_DIR _T("/usr/lib/X11/app-defaults") -#endif - -//----------------------------------------------------------------------------- -// glabal data (data.cpp) -//----------------------------------------------------------------------------- - -extern wxResourceCache *wxTheResourceCache; -extern XrmDatabase wxResourceDatabase; - -//----------------------------------------------------------------------------- -// utility functions for get/write resources -//----------------------------------------------------------------------------- - -static wxChar *GetResourcePath(wxChar *buf, wxChar *name, bool create) -{ - if (create && FileExists(name)) - { - wxStrcpy(buf, name); - return buf; // Exists so ... - } - if (*name == _T('/')) - wxStrcpy(buf, name); - else - { - // Put in standard place for resource files if not absolute - wxStrcpy(buf, DEFAULT_XRESOURCE_DIR); - wxStrcat(buf, _T("/")); - wxStrcat(buf, FileNameFromPath(name)); - } - if (create) - { - // Touch the file to create it - FILE *fd = fopen(wxConv_file.cWX2MB(buf), "w"); - if (fd) fclose(fd); - } - return buf; -} - -// Read $HOME for what it says is home, if not -// read $USER or $LOGNAME for user name else determine -// the Real User, then determine the Real home dir. -static wxChar *GetIniFile(wxChar *dest, const wxChar *filename) -{ - const wxChar *home = (const wxChar *) NULL; - if (filename && wxIsAbsolutePath(filename)) - { - wxStrcpy(dest, filename); - } - else - { - if ((home = wxGetUserHome(wxString())) != NULL) - { - wxStrcpy(dest, home); - if (dest[wxStrlen(dest) - 1] != _T('/')) wxStrcat(dest, _T("/")); - if (filename == NULL) - { - if ((filename = wxGetenv(_T("XENVIRONMENT"))) == NULL) filename = _T(".Xdefaults"); - } - else - if (*filename != _T('.')) wxStrcat(dest, _T(".")); - wxStrcat(dest, filename); - } - else - { - dest[0] = _T('\0'); - } - } - return dest; -} - -static void wxXMergeDatabases() -{ - XrmDatabase homeDB, serverDB, applicationDB; - wxChar filenamebuf[1024]; - - wxChar *filename = &filenamebuf[0]; - wxChar *environment; - char *classname = gdk_progclass; // Robert Roebling ?? - char name[256]; - (void)strcpy(name, "/usr/lib/X11/app-defaults/"); - (void)strcat(name, classname ? classname : "wxWindows"); - - // Get application defaults file, if any - if ((applicationDB = XrmGetFileDatabase(name))) - (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase); - - // Merge server defaults, created by xrdb, loaded as a property of the root - // window when the server initializes and loaded into the display - // structure on XOpenDisplay; - // if not defined, use .Xdefaults - if (XResourceManagerString(GDK_DISPLAY()) != NULL) - { - serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY())); - } - else - { - (void)GetIniFile(filename, (wxChar *) NULL); - serverDB = XrmGetFileDatabase(wxConv_file.cWX2MB(filename)); - } - if (serverDB) - XrmMergeDatabases(serverDB, &wxResourceDatabase); - - // Open XENVIRONMENT file, or if not defined, the .Xdefaults, - // and merge into existing database - - if ((environment = wxGetenv(_T("XENVIRONMENT"))) == NULL) - { - size_t len; -#if wxUSE_UNICODE - char hostbuf[1024]; -#endif - environment = GetIniFile(filename, (const wxChar *) NULL); - len = wxStrlen(environment); -#if !defined(SVR4) || defined(__sgi) -#if wxUSE_UNICODE - (void)gethostname(hostbuf, 1024 - len); -#else - (void)gethostname(environment + len, 1024 - len); -#endif -#else -#if wxUSE_UNICODE - (void)sysinfo(SI_HOSTNAME, hostbuf, 1024 - len); -#else - (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len); -#endif -#endif -#if wxUSE_UNICODE - wxStrcat(environment, wxConv_libc.cMB2WX(hostbuf)); -#endif - } - if ((homeDB = XrmGetFileDatabase(wxConv_file.cWX2MB(environment)))) - XrmMergeDatabases(homeDB, &wxResourceDatabase); -} - -//----------------------------------------------------------------------------- -// called on application exit -//----------------------------------------------------------------------------- - -void wxFlushResources() -{ - wxChar nameBuffer[512]; - - wxNode *node = wxTheResourceCache->First(); - while (node) { - wxString str = node->GetKeyString(); - wxChar *file = WXSTRINGCAST str; - // If file doesn't exist, create it first. - (void)GetResourcePath(nameBuffer, file, TRUE); - - XrmDatabase database = (XrmDatabase)node->Data(); - XrmPutFileDatabase(database, wxConv_file.cWX2MB(nameBuffer)); - XrmDestroyDatabase(database); - wxNode *next = node->Next(); -// delete node; - node = next; - } -} - -void wxDeleteResources(const wxChar *file) -{ - wxLogTrace(wxTraceResAlloc, _T("Delete: Number = %d"), wxTheResourceCache->Number()); - wxChar buffer[500]; - (void)GetIniFile(buffer, file); - - wxNode *node = wxTheResourceCache->Find(buffer); - if (node) { - XrmDatabase database = (XrmDatabase)node->Data(); - XrmDestroyDatabase(database); -// delete node; - } -} - -//----------------------------------------------------------------------------- -// resource functions -//----------------------------------------------------------------------------- - -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file ) -{ - wxChar buffer[500]; - - if (!entry) return FALSE; - - (void)GetIniFile(buffer, file); - - XrmDatabase database; - wxNode *node = wxTheResourceCache->Find(buffer); - if (node) - database = (XrmDatabase)node->Data(); - else { - database = XrmGetFileDatabase(wxConv_file.cWX2MB(buffer)); - wxLogTrace(wxTraceResAlloc, _T("Write: Number = %d"), wxTheResourceCache->Number()); - wxTheResourceCache->Append(buffer, (wxObject *)database); - } - char resName[300]; - strcpy(resName, !section.IsNull() ? MBSTRINGCAST section.mb_str() : "wxWindows"); - strcat(resName, "."); - strcat(resName, entry.mb_str()); - XrmPutStringResource(&database, resName, value.mb_str()); - return TRUE; -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file ) -{ - if (!wxResourceDatabase) - wxXMergeDatabases(); - - XrmDatabase database; - if (!file.IsEmpty()) - { - wxChar buffer[500]; - // Is this right? Trying to get it to look in the user's - // home directory instead of current directory -- JACS - (void)GetIniFile(buffer, file); - - wxNode *node = (wxNode*) NULL; /* suppress egcs warning */ - node = wxTheResourceCache->Find(buffer); - if (node) - { - database = (XrmDatabase)node->Data(); - } - else - { - database = XrmGetFileDatabase(wxConv_file.cWX2MB(buffer)); - wxLogTrace(wxTraceResAlloc, _T("Get: Number = %d"), wxTheResourceCache->Number()); - wxTheResourceCache->Append(buffer, (wxObject *)database); - } - } else - database = wxResourceDatabase; - - XrmValue xvalue; - char *str_type[20]; - char buf[150]; - strcpy(buf, section.mb_str()); - strcat(buf, "."); - strcat(buf, entry.mb_str()); - - bool success = XrmGetResource(database, buf, "*", str_type, &xvalue); - // Try different combinations of upper/lower case, just in case... - if (!success) - { - buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0])); - success = XrmGetResource(database, buf, "*", str_type, &xvalue); - } - if (success) - { - if (*value) - delete[] *value; - *value = new char[xvalue.size + 1]; - strncpy(*value, xvalue.addr, (int)xvalue.size); - return TRUE; - } - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file ) -{ - char *s = (char *) NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) - { - *value = (float)strtod(s, (char **) NULL); - delete[]s; - return TRUE; - } else - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file ) -{ - char *s = (char *) NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) - { - *value = strtol(s, (char **) NULL, 10); - delete[]s; - return TRUE; - } else - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file ) -{ - char *s = (char *) NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) - { - // Handle True, False here - // True, Yes, Enables, Set or Activated - if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A') - *value = TRUE; - // False, No, Disabled, Reset, Cleared, Deactivated - else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C') - *value = FALSE; - // Handle as Integer - else - *value = (int)strtol(s, (char **) NULL, 10); - delete[]s; - return TRUE; - } else - return FALSE; -}; - diff --git a/src/gtk1/verti.xbm b/src/gtk1/verti.xbm deleted file mode 100644 index 2dd9dc4c05..0000000000 --- a/src/gtk1/verti.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define verti_width 15 -#define verti_height 15 -static char verti_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/gtk1/wave.cpp b/src/gtk1/wave.cpp deleted file mode 100644 index 80a679ebb8..0000000000 --- a/src/gtk1/wave.cpp +++ /dev/null @@ -1,229 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave -// Author: Marcel Rasche -// Modified by: -// Created: 25/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include - -#if wxUSE_WAVE - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#include -#include -#include -#include -#include - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/file.h" -#include "wx/wave.h" - -//----------------------------------------------------------------- -// wxWave -//----------------------------------------------------------------- - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(isResource) -{ - Create(sFileName, isResource); -} - -wxWave::wxWave(int size, const wxByte* data) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(size, data); -} - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - if (isResource) - { - // todo - return (m_waveData ? TRUE : FALSE); - } - else - { - m_isResource = FALSE; - - wxFile fileWave; - if (!fileWave.Open(fileName, wxFile::read)) - { - return FALSE; - } - - m_waveLength = (int) fileWave.Length(); - - m_waveData = new wxByte[m_waveLength]; - if (!m_waveData) - { - return FALSE; - } - - fileWave.Read(m_waveData, m_waveLength); - - return TRUE; - } -} - -bool wxWave::Create(int size, const wxByte* data) -{ - Free(); - m_isResource = FALSE; - m_waveLength=size; - m_waveData = new wxByte[size]; - if (!m_waveData) - { - return FALSE; - } - - for (int i=0; i 65536) - return FALSE; - if ( ioctl(dev,SNDCTL_DSP_SAMPLESIZE,&iDataBits) < 0 ) - return FALSE; - if ( ioctl(dev,SNDCTL_DSP_STEREO,&iChannel) < 0 ) - return FALSE; - if ( ioctl(dev,SNDCTL_DSP_SPEED,&ulSamplingRate) < 0 ) - return FALSE; - - return TRUE; -} -#endif - diff --git a/src/gtk1/win_gtk.c b/src/gtk1/win_gtk.c deleted file mode 100644 index 1c885094af..0000000000 --- a/src/gtk1/win_gtk.c +++ /dev/null @@ -1,725 +0,0 @@ -/* /////////////////////////////////////////////////////////////////////////// -// Name: win_gtk.c -// Purpose: native GTK+ widget for wxWindows -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////// */ - -#include "wx/gtk/win_gtk.h" -#include "gtk/gtksignal.h" -#include "gtk/gtknotebook.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -static void gtk_myfixed_class_init (GtkMyFixedClass *klass); -static void gtk_myfixed_init (GtkMyFixed *myfixed); -static void gtk_myfixed_map (GtkWidget *widget); -#if (GTK_MINOR_VERSION == 0) -static void gtk_myfixed_unmap (GtkWidget *widget); -#endif -static void gtk_myfixed_realize (GtkWidget *widget); -static void gtk_myfixed_size_request (GtkWidget *widget, - GtkRequisition *requisition); -static void gtk_myfixed_size_allocate (GtkWidget *widget, - GtkAllocation *allocation); -static void gtk_myfixed_paint (GtkWidget *widget, - GdkRectangle *area); -static void gtk_myfixed_draw (GtkWidget *widget, - GdkRectangle *area); -static gint gtk_myfixed_expose (GtkWidget *widget, - GdkEventExpose *event); -static void gtk_myfixed_add (GtkContainer *container, - GtkWidget *widget); -static void gtk_myfixed_remove (GtkContainer *container, - GtkWidget *widget); -static void gtk_myfixed_foreach (GtkContainer *container, -#if (GTK_MINOR_VERSION > 0) - gboolean include_internals, -#endif - GtkCallback callback, - gpointer callback_data); -#if (GTK_MINOR_VERSION > 0) -static GtkType gtk_myfixed_child_type (GtkContainer *container); -#endif - -#if (GTK_MINOR_VERSION > 0) -static void gtk_myfixed_scroll_set_adjustments (GtkMyFixed *myfixed, - GtkAdjustment *hadj, - GtkAdjustment *vadj); -#endif - - - -static GtkContainerClass *parent_class = NULL; - -guint -gtk_myfixed_get_type () -{ - static guint myfixed_type = 0; - - if (!myfixed_type) - { - GtkTypeInfo myfixed_info = - { - "GtkMyFixed", - sizeof (GtkMyFixed), - sizeof (GtkMyFixedClass), - (GtkClassInitFunc) gtk_myfixed_class_init, - (GtkObjectInitFunc) gtk_myfixed_init, -#if (GTK_MINOR_VERSION > 0) - /* reserved_1 */ NULL, - /* reserved_2 */ NULL, - (GtkClassInitFunc) NULL, -#else - (GtkArgSetFunc) NULL, - (GtkArgGetFunc) NULL, -#endif - }; - myfixed_type = gtk_type_unique (gtk_container_get_type (), &myfixed_info); - } - - return myfixed_type; -} - -static void -gtk_myfixed_class_init (GtkMyFixedClass *klass) -{ - GtkObjectClass *object_class; - GtkWidgetClass *widget_class; - GtkContainerClass *container_class; - - object_class = (GtkObjectClass*) klass; - widget_class = (GtkWidgetClass*) klass; - container_class = (GtkContainerClass*) klass; - -#if (GTK_MINOR_VERSION > 0) - parent_class = gtk_type_class (GTK_TYPE_CONTAINER); -#else - parent_class = gtk_type_class (gtk_container_get_type ()); -#endif - - widget_class->map = gtk_myfixed_map; -#if (GTK_MINOR_VERSION == 0) - widget_class->unmap = gtk_myfixed_unmap; -#endif - widget_class->realize = gtk_myfixed_realize; - widget_class->size_request = gtk_myfixed_size_request; - widget_class->size_allocate = gtk_myfixed_size_allocate; - widget_class->draw = gtk_myfixed_draw; - widget_class->expose_event = gtk_myfixed_expose; - - container_class->add = gtk_myfixed_add; - container_class->remove = gtk_myfixed_remove; -#if (GTK_MINOR_VERSION > 0) - container_class->forall = gtk_myfixed_foreach; -#else - container_class->foreach = gtk_myfixed_foreach; -#endif - -#if (GTK_MINOR_VERSION > 0) - container_class->child_type = gtk_myfixed_child_type; -#endif - -#if (GTK_MINOR_VERSION > 0) - klass->set_scroll_adjustments = gtk_myfixed_scroll_set_adjustments; - - widget_class->set_scroll_adjustments_signal = - gtk_signal_new ("set_scroll_adjustments", - GTK_RUN_LAST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkMyFixedClass, set_scroll_adjustments), - gtk_marshal_NONE__POINTER_POINTER, - GTK_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); -#endif -} - -#if (GTK_MINOR_VERSION > 0) -static GtkType -gtk_myfixed_child_type (GtkContainer *container) -{ - return GTK_TYPE_WIDGET; -} -#endif - -static void -gtk_myfixed_init (GtkMyFixed *myfixed) -{ - GTK_WIDGET_UNSET_FLAGS (myfixed, GTK_NO_WINDOW); - -#if (GTK_MINOR_VERSION == 0) - GTK_WIDGET_SET_FLAGS (myfixed, GTK_BASIC); -#endif - -#if (GTK_MINOR_VERSION > 0) - myfixed->shadow_type = GTK_SHADOW_NONE; -#endif - - myfixed->children = NULL; -} - -GtkWidget* -gtk_myfixed_new () -{ - GtkMyFixed *myfixed; - - myfixed = gtk_type_new (gtk_myfixed_get_type ()); - - return GTK_WIDGET (myfixed); -} - -#if (GTK_MINOR_VERSION > 0) -void -gtk_myfixed_scroll_set_adjustments (GtkMyFixed *myfixed, - GtkAdjustment *hadj, - GtkAdjustment *vadj) -{ - /* OK, this is embarassing, but this function has to be here */ -} - -void -gtk_myfixed_set_shadow_type (GtkMyFixed *myfixed, - GtkShadowType type) -{ - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - - if ((GtkShadowType) myfixed->shadow_type != type) - { - myfixed->shadow_type = type; - - if (GTK_WIDGET_VISIBLE (myfixed)) - { - gtk_widget_size_allocate (GTK_WIDGET (myfixed), &(GTK_WIDGET (myfixed)->allocation)); - gtk_widget_queue_draw (GTK_WIDGET (myfixed)); - } - } -} -#endif - -void -gtk_myfixed_put (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height) -{ - GtkMyFixedChild *child_info; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - child_info = g_new (GtkMyFixedChild, 1); - child_info->widget = widget; - child_info->x = x; - child_info->y = y; - child_info->width = width; - child_info->height = height; - - gtk_widget_set_parent (widget, GTK_WIDGET (myfixed)); - - myfixed->children = g_list_append (myfixed->children, child_info); - - if (GTK_WIDGET_REALIZED (myfixed)) - gtk_widget_realize (widget); - - if (GTK_WIDGET_VISIBLE (myfixed) && GTK_WIDGET_VISIBLE (widget)) - { - if (GTK_WIDGET_MAPPED (myfixed)) - gtk_widget_map (widget); - - gtk_widget_queue_resize (GTK_WIDGET (myfixed)); - } -} - -void -gtk_myfixed_move (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y) -{ - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (child->widget == widget) - { - gtk_myfixed_set_size( myfixed, widget, x, y, child->width, child->height ); - break; - } - } -} - -void -gtk_myfixed_resize (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 width, - gint16 height) -{ - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (child->widget == widget) - { - gtk_myfixed_set_size( myfixed, widget, child->x, child->y, width, height ); - break; - } - } -} - -void -gtk_myfixed_set_size (GtkMyFixed *myfixed, - GtkWidget *widget, - gint16 x, - gint16 y, - gint16 width, - gint16 height) -{ - GtkMyFixedChild *child; - GList *children; - GtkAllocation child_allocation; - - g_return_if_fail (myfixed != NULL); - g_return_if_fail (GTK_IS_MYFIXED (myfixed)); - g_return_if_fail (widget != NULL); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (child->widget == widget) - { - if ((child->x == x) && - (child->y == y) && - (child->width == width) && - (child->height == height)) return; - - child->x = x; - child->y = y; - child->width = width; - child->height = height; - - if (GTK_WIDGET_VISIBLE (widget) && GTK_WIDGET_VISIBLE (myfixed)) - { - if ((child->width > 1) && (child->height > 1) && (GTK_WIDGET_REALIZED(widget))) - { - child_allocation.x = child->x; - child_allocation.y = child->y; - child_allocation.width = MAX( child->width, 1 ); - child_allocation.height = MAX( child->height, 1 ); - - /* work around for GTK bug when moving widgets outside - the X window -> do NOT move them entirely outside */ - if (child_allocation.y + child_allocation.height < 0) - child_allocation.y = -child_allocation.height; - if (child_allocation.x + child_allocation.width < 0) - child_allocation.x = -child_allocation.width; - - gtk_widget_size_allocate (widget, &child_allocation); - } - else - { - gtk_widget_queue_resize (GTK_WIDGET (myfixed)); - } - } - break; - } - } -} - -static void -gtk_myfixed_map (GtkWidget *widget) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - GTK_WIDGET_SET_FLAGS (widget, GTK_MAPPED); - myfixed = GTK_MYFIXED (widget); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child->widget) && !GTK_WIDGET_MAPPED (child->widget)) - gtk_widget_map (child->widget); - } - - gdk_window_show (widget->window); -} - -#if (GTK_MINOR_VERSION == 0) -static void -gtk_myfixed_unmap (GtkWidget *widget) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - GTK_WIDGET_UNSET_FLAGS (widget, GTK_MAPPED); -} -#endif - -static void -gtk_myfixed_realize (GtkWidget *widget) -{ - GtkMyFixed *myfixed; - GdkWindowAttr attributes; - gint attributes_mask; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - myfixed = GTK_MYFIXED (widget); - - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); - - attributes.window_type = GDK_WINDOW_CHILD; - -#if (GTK_MINOR_VERSION > 0) - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = widget->allocation.width; - attributes.height = widget->allocation.height; - - if (myfixed->shadow_type != GTK_SHADOW_NONE) - { - attributes.x += 2; - attributes.y += 2; - attributes.width -= 4; - attributes.height -= 4; - } - - if (attributes.width < 2) attributes.width = 2; - if (attributes.height < 2) attributes.height = 2; -#else - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = 32000; - attributes.height = 32000; -#endif - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual (widget); - attributes.colormap = gtk_widget_get_colormap (widget); - attributes.event_mask = gtk_widget_get_events (widget); - attributes.event_mask |= - GDK_EXPOSURE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_POINTER_MOTION_HINT_MASK | - GDK_BUTTON_MOTION_MASK | - GDK_BUTTON1_MOTION_MASK | - GDK_BUTTON2_MOTION_MASK | - GDK_BUTTON3_MOTION_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_KEY_PRESS_MASK | - GDK_KEY_RELEASE_MASK | - GDK_ENTER_NOTIFY_MASK | - GDK_LEAVE_NOTIFY_MASK | - GDK_FOCUS_CHANGE_MASK; - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; - - widget->window = gdk_window_new( gtk_widget_get_parent_window (widget), &attributes, - attributes_mask); - gdk_window_set_user_data (widget->window, widget); - - widget->style = gtk_style_attach (widget->style, widget->window); - gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); -} - -static void -gtk_myfixed_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - GtkRequisition child_requisition; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - g_return_if_fail (requisition != NULL); - - myfixed = GTK_MYFIXED (widget); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_VISIBLE (child->widget)) - { - gtk_widget_size_request (child->widget, &child_requisition); - } - } - - /* request very little, I'm not sure if requesting nothing - will always have positive effects on stability... */ - requisition->width = 2; - requisition->height = 2; -} - -static void -gtk_myfixed_size_allocate (GtkWidget *widget, - GtkAllocation *allocation) -{ - GtkMyFixed *myfixed; - gint border; - GtkMyFixedChild *child; - GtkAllocation child_allocation; - GList *children; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED(widget)); - g_return_if_fail (allocation != NULL); - - myfixed = GTK_MYFIXED (widget); - - widget->allocation = *allocation; -#if (GTK_MINOR_VERSION > 0) - if (myfixed->shadow_type == GTK_SHADOW_NONE) - border = 0; - else - border = 2; -#else - border = 0; -#endif - - if (GTK_WIDGET_REALIZED (widget)) - { - gdk_window_move_resize( widget->window, - allocation->x+border, allocation->y+border, -#if (GTK_MINOR_VERSION > 0) - allocation->width-border*2, allocation->height-border*2 -#else - 32000, 32000 -#endif - ); - } - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - /* please look at the text in wxWindow::DoSetSize() on why the - test GTK_WIDGET_REALIZED() has to be here */ - if (GTK_WIDGET_VISIBLE (child->widget)) - { -/* if (GTK_IS_NOTEBOOK(child->widget) && !GTK_WIDGET_REALIZED(child->widget)) - { - gtk_widget_queue_resize( child->widget ); - } - else */ - { - child_allocation.x = child->x; - child_allocation.y = child->y; - child_allocation.width = MAX( child->width, 1 ); - child_allocation.height = MAX( child->height, 1 ); - - /* work around for GTK bug when moving widgets outside - the X window -> do NOT move them entirely outside */ - if (child_allocation.y + child_allocation.height < 0) - child_allocation.y = -child_allocation.height; - if (child_allocation.x + child_allocation.width < 0) - child_allocation.x = -child_allocation.width; - - gtk_widget_size_allocate (child->widget, &child_allocation); - } - } - } -} - -static void -gtk_myfixed_paint (GtkWidget *widget, - GdkRectangle *area) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - g_return_if_fail (area != NULL); - - if (GTK_WIDGET_DRAWABLE (widget)) - gdk_window_clear_area (widget->window, - area->x, area->y, - area->width, area->height); -} - -static void -gtk_myfixed_draw (GtkWidget *widget, - GdkRectangle *area) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GdkRectangle child_area; - GList *children; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_MYFIXED (widget)); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - myfixed = GTK_MYFIXED (widget); - gtk_myfixed_paint (widget, area); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (gtk_widget_intersect (child->widget, area, &child_area)) - gtk_widget_draw (child->widget, &child_area); - } - } -} - -static gint -gtk_myfixed_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GdkEventExpose child_event; - GList *children; - - g_return_val_if_fail (widget != NULL, FALSE); - g_return_val_if_fail (GTK_IS_MYFIXED (widget), FALSE); - g_return_val_if_fail (event != NULL, FALSE); - - if (GTK_WIDGET_DRAWABLE (widget)) - { - myfixed = GTK_MYFIXED (widget); - - child_event = *event; - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - if (GTK_WIDGET_NO_WINDOW (child->widget) && - gtk_widget_intersect (child->widget, &event->area, - &child_event.area)) - gtk_widget_event (child->widget, (GdkEvent*) &child_event); - } - } - - return FALSE; -} - -static void -gtk_myfixed_add (GtkContainer *container, - GtkWidget *widget) -{ - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_MYFIXED (container)); - g_return_if_fail (widget != NULL); - - gtk_myfixed_put (GTK_MYFIXED (container), widget, 0, 0, 20, 20 ); -} - -static void -gtk_myfixed_remove (GtkContainer *container, - GtkWidget *widget) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_MYFIXED (container)); - g_return_if_fail (widget != NULL); - - myfixed = GTK_MYFIXED (container); - - children = myfixed->children; - while (children) - { - child = children->data; - - if (child->widget == widget) - { - gboolean was_visible = GTK_WIDGET_VISIBLE (widget); - - gtk_widget_unparent (widget); - - myfixed->children = g_list_remove_link (myfixed->children, children); - g_list_free (children); - g_free (child); - - if (was_visible && GTK_WIDGET_VISIBLE (container)) - gtk_widget_queue_resize (GTK_WIDGET (container)); - - break; - } - - children = children->next; - } -} - -static void -gtk_myfixed_foreach (GtkContainer *container, -#if (GTK_MINOR_VERSION > 0) - gboolean include_internals, -#endif - GtkCallback callback, - gpointer callback_data) -{ - GtkMyFixed *myfixed; - GtkMyFixedChild *child; - GList *children; - - g_return_if_fail (container != NULL); - g_return_if_fail (GTK_IS_MYFIXED (container)); - g_return_if_fail (callback != NULL); - - myfixed = GTK_MYFIXED (container); - - children = myfixed->children; - while (children) - { - child = children->data; - children = children->next; - - (* callback) (child->widget, callback_data); - } -} - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp deleted file mode 100644 index cc3d1edb16..0000000000 --- a/src/gtk1/window.cpp +++ /dev/null @@ -1,3038 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: window.cpp -// Purpose: -// Author: Robert Roebling -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ - #pragma implementation "window.h" -#endif - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/dc.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/layout.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" - -#if wxUSE_DRAG_AND_DROP - #include "wx/dnd.h" -#endif - -#if wxUSE_TOOLTIPS - #include "wx/tooltip.h" -#endif - -#include "wx/menu.h" -#include "wx/statusbr.h" -#include "wx/intl.h" -#include "wx/settings.h" -#include "wx/log.h" - -#include - -#include "gdk/gdk.h" -#include "gtk/gtk.h" -#include "gdk/gdkprivate.h" -#include "gdk/gdkkeysyms.h" -#include "wx/gtk/win_gtk.h" - -#include "gdk/gdkx.h" - -//----------------------------------------------------------------------------- -// documentation on internals -//----------------------------------------------------------------------------- - -/* - I have been asked several times about writing some documentation about - the GTK port of wxWindows, especially its internal structures. Obviously, - you cannot understand wxGTK without knowing a little about the GTK, but - some more information about what the wxWindow, which is the base class - for all other window classes, does seems required as well. - - What does wxWindow do? It contains the common interface for the following - jobs of its descendants: - - 1) Define the rudimentary behaviour common to all window classes, such as - resizing, intercepting user input (so as to make it possible to use these - events for special purposes in a derived class), window names etc. - - 2) Provide the possibility to contain and manage children, if the derived - class is allowed to contain children, which holds true for those window - classes which do not display a native GTK widget. To name them, these - classes are wxPanel, wxScrolledWindow, wxDialog, wxFrame. The MDI frame- - work classes are a special case and are handled a bit differently from - the rest. The same holds true for the wxNotebook class. - - 3) Provide the possibility to draw into a client area of a window. This, - too, only holds true for classes that do not display a native GTK widget - as above. - - 4) Provide the entire mechanism for scrolling widgets. This actual inter- - face for this is usually in wxScrolledWindow, but the GTK implementation - is in this class. - - 5) A multitude of helper or extra methods for special purposes, such as - Drag'n'Drop, managing validators etc. - - Normally one might expect, that one wxWindows window would always correspond - to one GTK widget. Under GTK, there is no such allround widget that has all - the functionality. Moreover, the GTK defines a client area as a different - widget from the actual widget you are handling. Last but not least some - special classes (e.g. wxFrame) handle different categories of widgets and - still have the possibility to draw something in the client area. - It was therefore required to write a special purpose GTK widget, that would - represent a client area in the sense of wxWindows capable to do the jobs - 2), 3) and 4). I have written this class and it resides in win_gtk.c of - this directory. - - All windows must have a widget, with which they interact with other under- - lying GTK widgets. It is this widget, e.g. that has to be resized etc and - thw wxWindow class has a member variable called m_widget which holds a - pointer to this widget. When the window class represents a GTK native widget, - this is (in most cases) the only GTK widget the class manages. E.g. the - wxStatitText class handles only a GtkLabel widget a pointer to which you - can find in m_widget (defined in wxWindow) - - When the class has a client area for drawing into and for containing children - it has to handle the client area widget (of the type GtkMyFixed, defined in - win_gtk.c), but there could be any number of widgets, handled by a class - The common rule for all windows is only, that the widget that interacts with - the rest of GTK must be referenced in m_widget and all other widgets must be - children of this widget on the GTK level. The top-most widget, which also - represents the client area, must be in the m_wxwindow field and must be of - the type GtkMyFixed. - - As I said, the window classes that display a GTK native widget only have - one widget, so in the case of e.g. the wxButton class m_widget holds a - pointer to a GtkButton widget. But windows with client areas (for drawing - and children) have a m_widget field that is a pointer to a GtkScrolled- - Window and a m_wxwindow field that is pointer to a GtkMyFixed and this - one is (in the GTK sense) a child of the GtkScrolledWindow. - - If the m_wxwindow field is set, then all input to this widget is inter- - cepted and sent to the wxWindows class. If not, all input to the widget - that gets pointed to by m_widget gets intercepted and sent to the class. - -*/ - -//----------------------------------------------------------------------------- -// data -//----------------------------------------------------------------------------- - -extern wxList wxPendingDelete; -extern bool g_blockEventsOnDrag; -extern bool g_blockEventsOnScroll; -extern wxCursor g_globalCursor; -static wxWindow *g_captureWindow = (wxWindow*) NULL; -static wxWindow *g_focusWindow = (wxWindow*) NULL; - -/* hack: we need something to pass to gtk_menu_popup, so we store the time of - the last click here */ -static guint32 gs_timeLastClick = 0; - -//----------------------------------------------------------------------------- -// debug -//----------------------------------------------------------------------------- - -#ifdef __WXDEBUG__ - -static gint gtk_debug_focus_in_callback( GtkWidget *WXUNUSED(widget), - GdkEvent *WXUNUSED(event), - const wxChar *name ) -{ -/* - static bool s_done = FALSE; - if ( !s_done ) - { - wxLog::AddTraceMask("focus"); - s_done = TRUE; - } - wxLogTrace(_T("FOCUS NOW AT: %s"), name); -*/ - - return FALSE; -} - -void debug_focus_in( GtkWidget* widget, const wxChar* name, const wxChar *window ) -{ - wxString tmp = name; - tmp += _T(" FROM "); - tmp += window; - - wxChar *s = new wxChar[tmp.Length()+1]; - - wxStrcpy( s, tmp ); - - gtk_signal_connect( GTK_OBJECT(widget), "focus_in_event", - GTK_SIGNAL_FUNC(gtk_debug_focus_in_callback), (gpointer)s ); -} - -#endif // Debug - -//----------------------------------------------------------------------------- -// missing gdk functions -//----------------------------------------------------------------------------- - -void -gdk_window_warp_pointer (GdkWindow *window, - gint x, - gint y) -{ - GdkWindowPrivate *priv; - - if (!window) - window = (GdkWindow*) &gdk_root_parent; - - priv = (GdkWindowPrivate*) window; - - if (!priv->destroyed) - { - XWarpPointer (priv->xdisplay, - None, /* not source window -> move from anywhere */ - priv->xwindow, /* dest window */ - 0, 0, 0, 0, /* not source window -> move from anywhere */ - x, y ); - } -} - -//----------------------------------------------------------------------------- -// idle system -//----------------------------------------------------------------------------- - -extern void wxapp_install_idle_handler(); -extern bool g_isIdle; - -//----------------------------------------------------------------------------- -// key event conversion routines -//----------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION == 0) -static guint -gdk_keyval_to_upper (guint keyval) -{ - if (keyval) - { - KeySym lower_val = 0; - KeySym upper_val = 0; - - XConvertCase (keyval, &lower_val, &upper_val); - return upper_val; - } - return 0; -} -#endif - -static long map_to_unmodified_wx_keysym( KeySym keysym ) -{ - guint key_code = 0; - - switch (keysym) - { - case GDK_Shift_L: - case GDK_Shift_R: key_code = WXK_SHIFT; break; - case GDK_Control_L: - case GDK_Control_R: key_code = WXK_CONTROL; break; - case GDK_Meta_L: - case GDK_Meta_R: - case GDK_Alt_L: - case GDK_Alt_R: - case GDK_Super_L: - case GDK_Super_R: key_code = WXK_ALT; break; - case GDK_Menu: key_code = WXK_MENU; break; - case GDK_Help: key_code = WXK_HELP; break; - case GDK_BackSpace: key_code = WXK_BACK; break; - case GDK_ISO_Left_Tab: - case GDK_Tab: key_code = WXK_TAB; break; - case GDK_Linefeed: key_code = WXK_RETURN; break; - case GDK_Clear: key_code = WXK_CLEAR; break; - case GDK_Return: key_code = WXK_RETURN; break; - case GDK_Pause: key_code = WXK_PAUSE; break; - case GDK_Scroll_Lock: key_code = WXK_SCROLL; break; - case GDK_Escape: key_code = WXK_ESCAPE; break; - case GDK_Delete: key_code = WXK_DELETE; break; - case GDK_Home: key_code = WXK_HOME; break; - case GDK_Left: key_code = WXK_LEFT; break; - case GDK_Up: key_code = WXK_UP; break; - case GDK_Right: key_code = WXK_RIGHT; break; - case GDK_Down: key_code = WXK_DOWN; break; - case GDK_Prior: key_code = WXK_PRIOR; break; -// case GDK_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_Next: key_code = WXK_NEXT; break; -// case GDK_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_End: key_code = WXK_END; break; - case GDK_Begin: key_code = WXK_HOME; break; - case GDK_Select: key_code = WXK_SELECT; break; - case GDK_Print: key_code = WXK_PRINT; break; - case GDK_Execute: key_code = WXK_EXECUTE; break; - case GDK_Insert: key_code = WXK_INSERT; break; - case GDK_Num_Lock: key_code = WXK_NUMLOCK; break; - - case GDK_KP_0: key_code = WXK_NUMPAD0; break; - case GDK_KP_1: key_code = WXK_NUMPAD1; break; - case GDK_KP_2: key_code = WXK_NUMPAD2; break; - case GDK_KP_3: key_code = WXK_NUMPAD3; break; - case GDK_KP_4: key_code = WXK_NUMPAD4; break; - case GDK_KP_5: key_code = WXK_NUMPAD5; break; - case GDK_KP_6: key_code = WXK_NUMPAD6; break; - case GDK_KP_7: key_code = WXK_NUMPAD7; break; - case GDK_KP_8: key_code = WXK_NUMPAD8; break; - case GDK_KP_9: key_code = WXK_NUMPAD9; break; - case GDK_KP_Space: key_code = WXK_NUMPAD_SPACE; break; - case GDK_KP_Tab: key_code = WXK_NUMPAD_TAB; break; - case GDK_KP_Enter: key_code = WXK_NUMPAD_ENTER; break; - case GDK_KP_F1: key_code = WXK_NUMPAD_F1; break; - case GDK_KP_F2: key_code = WXK_NUMPAD_F2; break; - case GDK_KP_F3: key_code = WXK_NUMPAD_F3; break; - case GDK_KP_F4: key_code = WXK_NUMPAD_F4; break; - case GDK_KP_Home: key_code = WXK_NUMPAD_HOME; break; - case GDK_KP_Left: key_code = WXK_NUMPAD_LEFT; break; - case GDK_KP_Up: key_code = WXK_NUMPAD_UP; break; - case GDK_KP_Right: key_code = WXK_NUMPAD_RIGHT; break; - case GDK_KP_Down: key_code = WXK_NUMPAD_DOWN; break; - case GDK_KP_Prior: key_code = WXK_NUMPAD_PRIOR; break; -// case GDK_KP_Page_Up: key_code = WXK_NUMPAD_PAGEUP; break; - case GDK_KP_Next: key_code = WXK_NUMPAD_NEXT; break; -// case GDK_KP_Page_Down: key_code = WXK_NUMPAD_PAGEDOWN; break; - case GDK_KP_End: key_code = WXK_NUMPAD_END; break; - case GDK_KP_Begin: key_code = WXK_NUMPAD_BEGIN; break; - case GDK_KP_Insert: key_code = WXK_NUMPAD_INSERT; break; - case GDK_KP_Delete: key_code = WXK_NUMPAD_DELETE; break; - case GDK_KP_Equal: key_code = WXK_NUMPAD_EQUAL; break; - case GDK_KP_Multiply: key_code = WXK_NUMPAD_MULTIPLY; break; - case GDK_KP_Add: key_code = WXK_NUMPAD_ADD; break; - case GDK_KP_Separator: key_code = WXK_NUMPAD_SEPARATOR; break; - case GDK_KP_Subtract: key_code = WXK_NUMPAD_SUBTRACT; break; - case GDK_KP_Decimal: key_code = WXK_NUMPAD_DECIMAL; break; - case GDK_KP_Divide: key_code = WXK_NUMPAD_DIVIDE; break; - - case GDK_F1: key_code = WXK_F1; break; - case GDK_F2: key_code = WXK_F2; break; - case GDK_F3: key_code = WXK_F3; break; - case GDK_F4: key_code = WXK_F4; break; - case GDK_F5: key_code = WXK_F5; break; - case GDK_F6: key_code = WXK_F6; break; - case GDK_F7: key_code = WXK_F7; break; - case GDK_F8: key_code = WXK_F8; break; - case GDK_F9: key_code = WXK_F9; break; - case GDK_F10: key_code = WXK_F10; break; - case GDK_F11: key_code = WXK_F11; break; - case GDK_F12: key_code = WXK_F12; break; - default: - { - if (keysym <= 0xFF) - { - guint upper = gdk_keyval_to_upper( keysym ); - keysym = (upper != 0 ? upper : keysym ); /* to be MSW compatible */ - key_code = keysym; - } - } - } - - return (key_code); -} - -static long map_to_wx_keysym( KeySym keysym ) -{ - guint key_code = 0; - - switch (keysym) - { - case GDK_Menu: key_code = WXK_MENU; break; - case GDK_Help: key_code = WXK_HELP; break; - case GDK_BackSpace: key_code = WXK_BACK; break; - case GDK_ISO_Left_Tab: - case GDK_Tab: key_code = WXK_TAB; break; - case GDK_Linefeed: key_code = WXK_RETURN; break; - case GDK_Clear: key_code = WXK_CLEAR; break; - case GDK_Return: key_code = WXK_RETURN; break; - case GDK_Pause: key_code = WXK_PAUSE; break; - case GDK_Scroll_Lock: key_code = WXK_SCROLL; break; - case GDK_Escape: key_code = WXK_ESCAPE; break; - case GDK_Delete: key_code = WXK_DELETE; break; - case GDK_Home: key_code = WXK_HOME; break; - case GDK_Left: key_code = WXK_LEFT; break; - case GDK_Up: key_code = WXK_UP; break; - case GDK_Right: key_code = WXK_RIGHT; break; - case GDK_Down: key_code = WXK_DOWN; break; - case GDK_Prior: key_code = WXK_PRIOR; break; -// case GDK_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_Next: key_code = WXK_NEXT; break; -// case GDK_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_End: key_code = WXK_END; break; - case GDK_Begin: key_code = WXK_HOME; break; - case GDK_Select: key_code = WXK_SELECT; break; - case GDK_Print: key_code = WXK_PRINT; break; - case GDK_Execute: key_code = WXK_EXECUTE; break; - case GDK_Insert: key_code = WXK_INSERT; break; - case GDK_Num_Lock: key_code = WXK_NUMLOCK; break; - - case GDK_KP_0: key_code = '0'; break; - case GDK_KP_1: key_code = '1'; break; - case GDK_KP_2: key_code = '2'; break; - case GDK_KP_3: key_code = '3'; break; - case GDK_KP_4: key_code = '4'; break; - case GDK_KP_5: key_code = '5'; break; - case GDK_KP_6: key_code = '6'; break; - case GDK_KP_7: key_code = '7'; break; - case GDK_KP_8: key_code = '8'; break; - case GDK_KP_9: key_code = '9'; break; - case GDK_KP_Space: key_code = ' '; break; - case GDK_KP_Tab: key_code = WXK_TAB; break; /* or '\t' ??? */ - case GDK_KP_Enter: key_code = WXK_RETURN; break; /* or '\r' ??? */ - case GDK_KP_F1: key_code = WXK_NUMPAD_F1; break; - case GDK_KP_F2: key_code = WXK_NUMPAD_F2; break; - case GDK_KP_F3: key_code = WXK_NUMPAD_F3; break; - case GDK_KP_F4: key_code = WXK_NUMPAD_F4; break; - case GDK_KP_Home: key_code = WXK_HOME; break; - case GDK_KP_Left: key_code = WXK_LEFT; break; - case GDK_KP_Up: key_code = WXK_UP; break; - case GDK_KP_Right: key_code = WXK_RIGHT; break; - case GDK_KP_Down: key_code = WXK_DOWN; break; - case GDK_KP_Prior: key_code = WXK_PRIOR; break; -// case GDK_KP_Page_Up: key_code = WXK_PAGEUP; break; - case GDK_KP_Next: key_code = WXK_NEXT; break; -// case GDK_KP_Page_Down: key_code = WXK_PAGEDOWN; break; - case GDK_KP_End: key_code = WXK_END; break; - case GDK_KP_Begin: key_code = WXK_HOME; break; - case GDK_KP_Insert: key_code = WXK_INSERT; break; - case GDK_KP_Delete: key_code = WXK_DELETE; break; - case GDK_KP_Equal: key_code = '='; break; - case GDK_KP_Multiply: key_code = '*'; break; - case GDK_KP_Add: key_code = '+'; break; - case GDK_KP_Separator: key_code = ','; break; - case GDK_KP_Subtract: key_code = '-'; break; - case GDK_KP_Decimal: key_code = '.'; break; - case GDK_KP_Divide: key_code = '/'; break; - - case GDK_F1: key_code = WXK_F1; break; - case GDK_F2: key_code = WXK_F2; break; - case GDK_F3: key_code = WXK_F3; break; - case GDK_F4: key_code = WXK_F4; break; - case GDK_F5: key_code = WXK_F5; break; - case GDK_F6: key_code = WXK_F6; break; - case GDK_F7: key_code = WXK_F7; break; - case GDK_F8: key_code = WXK_F8; break; - case GDK_F9: key_code = WXK_F9; break; - case GDK_F10: key_code = WXK_F10; break; - case GDK_F11: key_code = WXK_F11; break; - case GDK_F12: key_code = WXK_F12; break; - default: - { - if (keysym <= 0xFF) - { - key_code = keysym; - } - } - } - - return (key_code); -} - -//----------------------------------------------------------------------------- -// local code (see below) -//----------------------------------------------------------------------------- - -#if (GTK_MINOR_VERSION > 0) - -static void draw_frame( GtkWidget *widget, wxWindow *win ) -{ - if (!win->m_hasVMT) - return; - - int dw = 0; - int dh = 0; - - if (win->HasScrolling()) - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(widget)->klass ); - -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - if (scroll_window->vscrollbar_visible) - { - dw += 15; /* dw += vscrollbar->allocation.width; */ - dw += scroll_class->scrollbar_spacing; - } - - if (scroll_window->hscrollbar_visible) - { - dh += 15; /* dh += hscrollbar->allocation.height; */ - dh += scroll_class->scrollbar_spacing; - } - } - - int dx = 0; - int dy = 0; - if (GTK_WIDGET_NO_WINDOW (widget)) - { - dx += widget->allocation.x; - dy += widget->allocation.y; - } - - if (win->HasFlag(wxRAISED_BORDER)) - { - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_OUT, - dx, dy, - win->m_width-dw, win->m_height-dh ); - return; - } - - if (win->HasFlag(wxSUNKEN_BORDER)) - { - gtk_draw_shadow( widget->style, - widget->window, - GTK_STATE_NORMAL, - GTK_SHADOW_IN, - dx, dy, - win->m_width-dw, win->m_height-dh ); - return; - } -} - -//----------------------------------------------------------------------------- -// "expose_event" of m_widget -//----------------------------------------------------------------------------- - -static void gtk_window_own_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_event, wxWindow *win ) -{ - if (gdk_event->count > 0) return; - draw_frame( widget, win ); -} - -//----------------------------------------------------------------------------- -// "draw" of m_wxwindow -//----------------------------------------------------------------------------- - -static void gtk_window_own_draw_callback( GtkWidget *widget, GdkRectangle *WXUNUSED(rect), wxWindow *win ) -{ - draw_frame( widget, win ); -} - -#endif // GTK_MINOR_VERSION > 0 - -//----------------------------------------------------------------------------- -// "expose_event" of m_wxwindow -//----------------------------------------------------------------------------- - -static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxWindow *win ) -{ - if ( !win->m_hasVMT ) - return; - - win->GetUpdateRegion().Union( gdk_event->area.x, - gdk_event->area.y, - gdk_event->area.width, - gdk_event->area.height ); - - if ( gdk_event->count > 0 ) - return; - -/* - printf( "OnExpose from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - win->GetUpdateRegion().Clear(); -} - -//----------------------------------------------------------------------------- -// "draw" of m_wxwindow -//----------------------------------------------------------------------------- - -static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) - return; - - win->GetUpdateRegion().Union( rect->x, rect->y, - rect->width, rect->height ); - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - win->GetUpdateRegion().Clear(); -} - -//----------------------------------------------------------------------------- -// "key_press_event" from any window -//----------------------------------------------------------------------------- - -static gint gtk_window_key_press_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - -/* - printf( "KeyDown-ScanCode is: %d.\n", gdk_event->keyval ); - if (gdk_event->state & GDK_SHIFT_MASK) - printf( "ShiftDown.\n" ); - else - printf( "ShiftUp.\n" ); - if (gdk_event->state & GDK_CONTROL_MASK) - printf( "ControlDown.\n" ); - else - printf( "ControlUp.\n" ); - printf( "\n" ); -*/ - int x = 0; - int y = 0; - GdkModifierType state; - if (gdk_event->window) gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - - long key_code = map_to_unmodified_wx_keysym( gdk_event->keyval ); - - /* sending unknown key events doesn't really make sense */ - if (key_code == 0) return FALSE; - - bool ret = FALSE; - - wxKeyEvent event( wxEVT_KEY_DOWN ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_keyCode = key_code; - event.m_scanCode = gdk_event->keyval; - event.m_x = x; - event.m_y = y; - event.SetEventObject( win ); - ret = win->GetEventHandler()->ProcessEvent( event ); - - key_code = map_to_wx_keysym( gdk_event->keyval ); - - /* wxMSW doesn't send char events with Alt pressed */ - if ((key_code != 0) && - ((gdk_event->state & GDK_MOD1_MASK) == 0) && - ((gdk_event->state & GDK_MOD1_MASK) == 0)) - { - wxKeyEvent event2( wxEVT_CHAR ); - event2.SetTimestamp( gdk_event->time ); - event2.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event2.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); -// event2.m_altDown = (gdk_event->state & GDK_MOD1_MASK); -// event2.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event2.m_keyCode = key_code; - event2.m_scanCode = gdk_event->keyval; - event2.m_x = x; - event2.m_y = y; - event2.SetEventObject( win ); - ret = (ret || win->GetEventHandler()->ProcessEvent( event2 )); - } - -#if wxUSE_ACCEL - if (!ret) - { - wxWindow *ancestor = win; - while (ancestor) - { - int command = ancestor->GetAcceleratorTable()->GetCommand( event ); - if (command != -1) - { - wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command ); - ret = ancestor->GetEventHandler()->ProcessEvent( command_event ); - break; - } - ancestor = ancestor->GetParent(); - } - } -#endif // wxUSE_ACCEL - - /* win is a control: tab can be propagated up */ - if ( (!ret) && - ((gdk_event->keyval == GDK_Tab) || (gdk_event->keyval == GDK_ISO_Left_Tab)) && - (win->HasFlag(wxTE_PROCESS_TAB) == 0)) - { - wxNavigationKeyEvent new_event; - /* GDK reports GDK_ISO_Left_Tab for SHIFT-TAB */ - new_event.SetDirection( (gdk_event->keyval == GDK_Tab) ); - /* CTRL-TAB changes the (parent) window, i.e. switch notebook page */ - new_event.SetWindowChange( (gdk_event->state & GDK_CONTROL_MASK) ); - new_event.SetCurrentFocus( win ); - ret = win->GetEventHandler()->ProcessEvent( new_event ); - } - - /* generate wxID_CANCEL if has been pressed (typically in dialogs) */ - if ( (!ret) && - (gdk_event->keyval == GDK_Escape) ) - { - wxCommandEvent new_event(wxEVT_COMMAND_BUTTON_CLICKED,wxID_CANCEL); - new_event.SetEventObject( win ); - ret = win->GetEventHandler()->ProcessEvent( new_event ); - } - -#if (GTK_MINOR_VERSION > 0) - /* pressing F10 will activate the menu bar of the top frame */ - if ( (!ret) && - (gdk_event->keyval == GDK_F10) ) - { - wxWindow *ancestor = win; - while (ancestor) - { - if (wxIsKindOf(ancestor,wxFrame)) - { - wxFrame *frame = (wxFrame*) ancestor; - wxMenuBar *menubar = frame->GetMenuBar(); - if (menubar) - { - wxNode *node = menubar->GetMenus().First(); - if (node) - { - // doesn't work correctly - // wxMenu *firstMenu = (wxMenu*) node->Data(); - // gtk_menu_item_select( GTK_MENU_ITEM(firstMenu->m_owner) ); - // ret = TRUE; - break; - } - } - } - ancestor = ancestor->GetParent(); - } - } -#endif - -/* - Damn, I forgot why this didn't work, but it didn't work. - - // win is a panel: up can be propagated to the panel - if ((!ret) && (win->m_wxwindow) && (win->m_parent) && (win->m_parent->AcceptsFocus()) && - (gdk_event->keyval == GDK_Up)) - { - win->m_parent->SetFocus(); - ret = TRUE; - } - - // win is a panel: left/right can be propagated to the panel - if ((!ret) && (win->m_wxwindow) && - ((gdk_event->keyval == GDK_Right) || (gdk_event->keyval == GDK_Left) || - (gdk_event->keyval == GDK_Up) || (gdk_event->keyval == GDK_Down))) - { - wxNavigationKeyEvent new_event; - new_event.SetDirection( (gdk_event->keyval == GDK_Right) || (gdk_event->keyval == GDK_Down) ); - new_event.SetCurrentFocus( win ); - ret = win->GetEventHandler()->ProcessEvent( new_event ); - } -*/ - - if (ret) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_press_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "key_release_event" from any window -//----------------------------------------------------------------------------- - -static gint gtk_window_key_release_callback( GtkWidget *widget, GdkEventKey *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - -/* - printf( "KeyUp-ScanCode is: %d.\n", gdk_event->keyval ); - if (gdk_event->state & GDK_SHIFT_MASK) - printf( "ShiftDown.\n" ); - else - printf( "ShiftUp.\n" ); - if (gdk_event->state & GDK_CONTROL_MASK) - printf( "ControlDown.\n" ); - else - printf( "ControlUp.\n" ); - printf( "\n" ); -*/ - - long key_code = map_to_unmodified_wx_keysym( gdk_event->keyval ); - - /* sending unknown key events doesn't really make sense */ - if (key_code == 0) return FALSE; - - int x = 0; - int y = 0; - GdkModifierType state; - if (gdk_event->window) gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - - wxKeyEvent event( wxEVT_KEY_UP ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_keyCode = key_code; - event.m_scanCode = gdk_event->keyval; - event.m_x = x; - event.m_y = y; - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "key_release_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_press_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - -/* - wxPrintf( _T("1) OnButtonPress from ") ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( _T(".\n") ); -*/ - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return TRUE; - if (g_blockEventsOnScroll) return TRUE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - if (win->m_wxwindow) - { - if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow) && !GTK_WIDGET_HAS_FOCUS (win->m_wxwindow) ) - { - gtk_widget_grab_focus (win->m_wxwindow); - -/* - wxPrintf( _T("GrabFocus from ") ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( _T(".\n") ); -*/ - - } - } - -/* - wxPrintf( _T("2) OnButtonPress from ") ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - wxPrintf( win->GetClassInfo()->GetClassName() ); - wxPrintf( _T(".\n") ); -*/ - - wxEventType event_type = wxEVT_LEFT_DOWN; - - if (gdk_event->button == 1) - { - switch (gdk_event->type) - { - case GDK_BUTTON_PRESS: event_type = wxEVT_LEFT_DOWN; break; - case GDK_2BUTTON_PRESS: event_type = wxEVT_LEFT_DCLICK; break; - default: break; - } - } - else if (gdk_event->button == 2) - { - switch (gdk_event->type) - { - case GDK_BUTTON_PRESS: event_type = wxEVT_MIDDLE_DOWN; break; - case GDK_2BUTTON_PRESS: event_type = wxEVT_MIDDLE_DCLICK; break; - default: break; - } - } - else if (gdk_event->button == 3) - { - switch (gdk_event->type) - { - case GDK_BUTTON_PRESS: event_type = wxEVT_RIGHT_DOWN; break; - case GDK_2BUTTON_PRESS: event_type = wxEVT_RIGHT_DCLICK; break; - default: break; - } - } - - wxMouseEvent event( event_type ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK); - event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK); - event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK); - - event.m_x = (long)gdk_event->x; - event.m_y = (long)gdk_event->y; - - // Some control don't have their own X window and thus cannot get - // any events. - - if (!g_captureWindow) - { - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - - if (child->m_isStaticBox) - { - // wxStaticBox is transparent in the box itself - int x = event.m_x; - int y = event.m_y; - int xx1 = child->m_x; - int yy1 = child->m_y; - int xx2 = child->m_x + child->m_width; - int yy2 = child->m_x + child->m_height; - - // left - if (((x >= xx1) && (x <= xx1+10) && (y >= yy1) && (y <= yy2)) || - // right - ((x >= xx2-10) && (x <= xx2) && (y >= yy1) && (y <= yy2)) || - // top - ((x >= xx1) && (x <= xx2) && (y >= yy1) && (y <= yy1+10)) || - // bottom - ((x >= xx1) && (x <= xx2) && (y >= yy2-1) && (y <= yy2))) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - - } - else - { - if ((child->m_wxwindow == (GtkWidget*) NULL) && - (child->m_x <= event.m_x) && - (child->m_y <= event.m_y) && - (child->m_x+child->m_width >= event.m_x) && - (child->m_y+child->m_height >= event.m_y)) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - } - node = node->Next(); - } - } - - event.SetEventObject( win ); - - gs_timeLastClick = gdk_event->time; - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "button_press_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButton *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - -/* - printf( "OnButtonRelease from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxEventType event_type = wxEVT_NULL; - - switch (gdk_event->button) - { - case 1: event_type = wxEVT_LEFT_UP; break; - case 2: event_type = wxEVT_MIDDLE_UP; break; - case 3: event_type = wxEVT_RIGHT_UP; break; - } - - wxMouseEvent event( event_type ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK); - event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK); - event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK); - event.m_x = (long)gdk_event->x; - event.m_y = (long)gdk_event->y; - - // Some control don't have their own X window and thus cannot get - // any events. - - if (!g_captureWindow) - { - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - - if (child->m_isStaticBox) - { - // wxStaticBox is transparent in the box itself - int x = event.m_x; - int y = event.m_y; - int xx1 = child->m_x; - int yy1 = child->m_y; - int xx2 = child->m_x + child->m_width; - int yy2 = child->m_x + child->m_height; - - // left - if (((x >= xx1) && (x <= xx1+10) && (y >= yy1) && (y <= yy2)) || - // right - ((x >= xx2-10) && (x <= xx2) && (y >= yy1) && (y <= yy2)) || - // top - ((x >= xx1) && (x <= xx2) && (y >= yy1) && (y <= yy1+10)) || - // bottom - ((x >= xx1) && (x <= xx2) && (y >= yy2-1) && (y <= yy2))) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - - } - else - { - if ((child->m_wxwindow == (GtkWidget*) NULL) && - (child->m_x <= event.m_x) && - (child->m_y <= event.m_y) && - (child->m_x+child->m_width >= event.m_x) && - (child->m_y+child->m_height >= event.m_y)) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - } - node = node->Next(); - } - } - - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "button_release_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "motion_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - if (g_blockEventsOnScroll) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - if (gdk_event->is_hint) - { - int x = 0; - int y = 0; - GdkModifierType state; - gdk_window_get_pointer(gdk_event->window, &x, &y, &state); - gdk_event->x = x; - gdk_event->y = y; - gdk_event->state = state; - } - -/* - printf( "OnMotion from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxMouseEvent event( wxEVT_MOTION ); - event.SetTimestamp( gdk_event->time ); - event.m_shiftDown = (gdk_event->state & GDK_SHIFT_MASK); - event.m_controlDown = (gdk_event->state & GDK_CONTROL_MASK); - event.m_altDown = (gdk_event->state & GDK_MOD1_MASK); - event.m_metaDown = (gdk_event->state & GDK_MOD2_MASK); - event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK); - event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK); - event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK); - - event.m_x = (long)gdk_event->x; - event.m_y = (long)gdk_event->y; - - // Some control don't have their own X window and thus cannot get - // any events. - - if (!g_captureWindow) - { - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow*)node->Data(); - - if (child->m_isStaticBox) - { - // wxStaticBox is transparent in the box itself - int x = event.m_x; - int y = event.m_y; - int xx1 = child->m_x; - int yy1 = child->m_y; - int xx2 = child->m_x + child->m_width; - int yy2 = child->m_x + child->m_height; - - // left - if (((x >= xx1) && (x <= xx1+10) && (y >= yy1) && (y <= yy2)) || - // right - ((x >= xx2-10) && (x <= xx2) && (y >= yy1) && (y <= yy2)) || - // top - ((x >= xx1) && (x <= xx2) && (y >= yy1) && (y <= yy1+10)) || - // bottom - ((x >= xx1) && (x <= xx2) && (y >= yy2-1) && (y <= yy2))) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - - } - else - { - if ((child->m_wxwindow == (GtkWidget*) NULL) && - (child->m_x <= event.m_x) && - (child->m_y <= event.m_y) && - (child->m_x+child->m_width >= event.m_x) && - (child->m_y+child->m_height >= event.m_y)) - { - win = child; - event.m_x -= child->m_x; - event.m_y -= child->m_y; - break; - } - } - node = node->Next(); - } - } - - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "motion_notify_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "focus_in_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_focus_in_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - g_focusWindow = win; - - if (win->m_wxwindow) - { - if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow)) - { - GTK_WIDGET_SET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS); -/* - printf( "SetFocus flag from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - } - } - - -/* - printf( "OnSetFocus from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( " " ); - printf( WXSTRINGCAST win->GetLabel() ); - printf( ".\n" ); -*/ - - wxFocusEvent event( wxEVT_SET_FOCUS, win->GetId() ); - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "focus_out_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_focus_out_callback( GtkWidget *widget, GdkEvent *WXUNUSED(event), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - if (win->m_wxwindow) - { - if (GTK_WIDGET_CAN_FOCUS(win->m_wxwindow)) - GTK_WIDGET_UNSET_FLAGS (win->m_wxwindow, GTK_HAS_FOCUS); - } - -/* - printf( "OnKillFocus from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxFocusEvent event( wxEVT_KILL_FOCUS, win->GetId() ); - event.SetEventObject( win ); - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_out_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "enter_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_enter_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - wxMouseEvent event( wxEVT_ENTER_WINDOW ); -#if (GTK_MINOR_VERSION > 0) - event.SetTimestamp( gdk_event->time ); -#endif - event.SetEventObject( win ); - - int x = 0; - int y = 0; - GdkModifierType state = (GdkModifierType)0; - - gdk_window_get_pointer( widget->window, &x, &y, &state ); - - event.m_shiftDown = (state & GDK_SHIFT_MASK); - event.m_controlDown = (state & GDK_CONTROL_MASK); - event.m_altDown = (state & GDK_MOD1_MASK); - event.m_metaDown = (state & GDK_MOD2_MASK); - event.m_leftDown = (state & GDK_BUTTON1_MASK); - event.m_middleDown = (state & GDK_BUTTON2_MASK); - event.m_rightDown = (state & GDK_BUTTON3_MASK); - - event.m_x = (long)x; - event.m_y = (long)y; - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "enter_notify_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "leave_notify_event" -//----------------------------------------------------------------------------- - -static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_event, wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (!win->m_hasVMT) return FALSE; - if (g_blockEventsOnDrag) return FALSE; - - if (!win->IsOwnGtkWindow( gdk_event->window )) return FALSE; - - wxMouseEvent event( wxEVT_LEAVE_WINDOW ); -#if (GTK_MINOR_VERSION > 0) - event.SetTimestamp( gdk_event->time ); -#endif - event.SetEventObject( win ); - - int x = 0; - int y = 0; - GdkModifierType state = (GdkModifierType)0; - - gdk_window_get_pointer( widget->window, &x, &y, &state ); - - event.m_shiftDown = (state & GDK_SHIFT_MASK); - event.m_controlDown = (state & GDK_CONTROL_MASK); - event.m_altDown = (state & GDK_MOD1_MASK); - event.m_metaDown = (state & GDK_MOD2_MASK); - event.m_leftDown = (state & GDK_BUTTON1_MASK); - event.m_middleDown = (state & GDK_BUTTON2_MASK); - event.m_rightDown = (state & GDK_BUTTON3_MASK); - - event.m_x = (long)x; - event.m_y = (long)y; - - if (win->GetEventHandler()->ProcessEvent( event )) - { - gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "leave_notify_event" ); - return TRUE; - } - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "value_changed" from m_vAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_vscroll_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - - if (!win->m_hasVMT) return; - - float diff = win->m_vAdjust->value - win->m_oldVerticalPos; - if (fabs(diff) < 0.2) return; - win->m_oldVerticalPos = win->m_vAdjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_vAdjust->step_increment; - float page_step = win->m_vAdjust->page_increment; - - if (win->IsScrolling()) - { - command = wxEVT_SCROLLWIN_THUMBTRACK; - } - else - { - if (fabs(win->m_vAdjust->value-win->m_vAdjust->lower) < 0.2) command = wxEVT_SCROLLWIN_BOTTOM; - else if (fabs(win->m_vAdjust->value-win->m_vAdjust->upper) < 0.2) command = wxEVT_SCROLLWIN_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEUP; - else command = wxEVT_SCROLLWIN_THUMBTRACK; - } - - int value = (int)(win->m_vAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxVERTICAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "value_changed" from m_hAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_hscroll_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!win->m_hasVMT) return; - - float diff = win->m_hAdjust->value - win->m_oldHorizontalPos; - if (fabs(diff) < 0.2) return; - win->m_oldHorizontalPos = win->m_hAdjust->value; - - wxEventType command = wxEVT_NULL; - - float line_step = win->m_hAdjust->step_increment; - float page_step = win->m_hAdjust->page_increment; - - if (win->IsScrolling()) - { - command = wxEVT_SCROLLWIN_THUMBTRACK; - } - else - { - if (fabs(win->m_hAdjust->value-win->m_hAdjust->lower) < 0.2) command = wxEVT_SCROLLWIN_BOTTOM; - else if (fabs(win->m_hAdjust->value-win->m_hAdjust->upper) < 0.2) command = wxEVT_SCROLLWIN_TOP; - else if (fabs(diff-line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEDOWN; - else if (fabs(diff+line_step) < 0.2) command = wxEVT_SCROLLWIN_LINEUP; - else if (fabs(diff-page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEDOWN; - else if (fabs(diff+page_step) < 0.2) command = wxEVT_SCROLLWIN_PAGEUP; - else command = wxEVT_SCROLLWIN_THUMBTRACK; - } - - int value = (int)(win->m_hAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxHORIZONTAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" from m_vAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_vscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!win->m_hasVMT) return; - - wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK; - int value = (int)(win->m_vAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxVERTICAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "changed" from m_hAdjust -//----------------------------------------------------------------------------- - -static void gtk_window_hscroll_change_callback( GtkWidget *WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (g_blockEventsOnDrag) return; - if (!win->m_hasVMT) return; - - wxEventType command = wxEVT_SCROLLWIN_THUMBTRACK; - int value = (int)(win->m_hAdjust->value+0.5); - - wxScrollWinEvent event( command, value, wxHORIZONTAL ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); -} - -//----------------------------------------------------------------------------- -// "button_press_event" from scrollbar -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_press_callback( GtkRange *WXUNUSED(widget), - GdkEventButton *WXUNUSED(gdk_event), - wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - -// don't test here as we can release the mouse while being over -// a different window then the slider -// -// if (gdk_event->window != widget->slider) return FALSE; - - win->SetScrolling( TRUE ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// "button_release_event" from scrollbar -//----------------------------------------------------------------------------- - -static gint gtk_scrollbar_button_release_callback( GtkRange *widget, - GdkEventButton *WXUNUSED(gdk_event), - wxWindow *win ) -{ - -// don't test here as we can release the mouse while being over -// a different window then the slider -// -// if (gdk_event->window != widget->slider) return FALSE; - - GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(win->m_widget); - - if (widget == GTK_RANGE(scrolledWindow->vscrollbar)) - gtk_signal_emit_by_name( GTK_OBJECT(win->m_hAdjust), "value_changed" ); - else - gtk_signal_emit_by_name( GTK_OBJECT(win->m_vAdjust), "value_changed" ); - - win->SetScrolling( FALSE ); - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// this wxWindowBase function is implemented here (in platform-specific file) -// because it is static and so couldn't be made virtual -// ---------------------------------------------------------------------------- - -wxWindow *wxWindowBase::FindFocus() -{ - return g_focusWindow; -} - -//----------------------------------------------------------------------------- -// "realize" from m_widget -//----------------------------------------------------------------------------- - -/* we cannot set colours, fonts and cursors before the widget has - been realized, so we do this directly after realization */ - -static gint -gtk_window_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win ) -{ - if (g_isIdle) - wxapp_install_idle_handler(); - - if (win->m_delayedFont) - win->SetFont( win->GetFont() ); - - if (win->m_delayedBackgroundColour) - win->SetBackgroundColour( win->GetBackgroundColour() ); - - if (win->m_delayedForegroundColour) - win->SetForegroundColour( win->GetForegroundColour() ); - - win->SetCursor( win->GetCursor() ); - - wxWindowCreateEvent event( win ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - return FALSE; -} - -//----------------------------------------------------------------------------- -// InsertChild for wxWindow. -//----------------------------------------------------------------------------- - -/* Callback for wxWindow. This very strange beast has to be used because - * C++ has no virtual methods in a constructor. We have to emulate a - * virtual function here as wxNotebook requires a different way to insert - * a child in it. I had opted for creating a wxNotebookPage window class - * which would have made this superfluous (such in the MDI window system), - * but no-one was listening to me... */ - -static void wxInsertChildInWindow( wxWindow* parent, wxWindow* child ) -{ - gtk_myfixed_put( GTK_MYFIXED(parent->m_wxwindow), - GTK_WIDGET(child->m_widget), - child->m_x, - child->m_y, - child->m_width, - child->m_height ); - - if (parent->HasFlag(wxTAB_TRAVERSAL)) - { - /* we now allow a window to get the focus as long as it - doesn't have any children. */ - GTK_WIDGET_UNSET_FLAGS( parent->m_wxwindow, GTK_CAN_FOCUS ); - } -} - -//----------------------------------------------------------------------------- -// global functions -//----------------------------------------------------------------------------- - -wxWindow* wxGetActiveWindow() -{ - return g_focusWindow; -} - -//----------------------------------------------------------------------------- -// wxWindow -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase) - -void wxWindow::Init() -{ - // common init - InitBase(); - - // GTK specific - m_widget = (GtkWidget *) NULL; - m_wxwindow = (GtkWidget *) NULL; - - // position/size - m_x = 0; - m_y = 0; - m_width = 0; - m_height = 0; - - m_sizeSet = FALSE; - m_hasVMT = FALSE; - m_needParent = TRUE; - m_isBeingDeleted = FALSE; - - m_hasScrolling = FALSE; - m_isScrolling = FALSE; - - m_hAdjust = (GtkAdjustment*) NULL; - m_vAdjust = (GtkAdjustment*) NULL; - m_oldHorizontalPos = 0.0; - m_oldVerticalPos = 0.0; - - m_resizing = FALSE; - m_scrollGC = (GdkGC*) NULL; - m_widgetStyle = (GtkStyle*) NULL; - - m_insertCallback = (wxInsertChildFunction) NULL; - - m_isStaticBox = FALSE; - m_acceptsFocus = FALSE; -} - -wxWindow::wxWindow() -{ - Init(); -} - -wxWindow::wxWindow( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - Init(); - - Create( parent, id, pos, size, style, name ); -} - -bool wxWindow::Create( wxWindow *parent, wxWindowID id, - const wxPoint &pos, const wxSize &size, - long style, const wxString &name ) -{ - PreCreation( parent, id, pos, size, style, name ); - - m_insertCallback = wxInsertChildInWindow; - - m_widget = gtk_scrolled_window_new( (GtkAdjustment *) NULL, (GtkAdjustment *) NULL ); - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - -#ifdef __WXDEBUG__ - debug_focus_in( m_widget, _T("wxWindow::m_widget"), name ); -#endif - - GtkScrolledWindow *scrolledWindow = GTK_SCROLLED_WINDOW(m_widget); - -#ifdef __WXDEBUG__ - debug_focus_in( scrolledWindow->hscrollbar, _T("wxWindow::hsrcollbar"), name ); - debug_focus_in( scrolledWindow->vscrollbar, _T("wxWindow::vsrcollbar"), name ); -#endif - - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - scroll_class->scrollbar_spacing = 0; - - gtk_scrolled_window_set_policy( scrolledWindow, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC ); - - m_hAdjust = gtk_range_get_adjustment( GTK_RANGE(scrolledWindow->hscrollbar) ); - m_vAdjust = gtk_range_get_adjustment( GTK_RANGE(scrolledWindow->vscrollbar) ); - - m_wxwindow = gtk_myfixed_new(); - -#ifdef __WXDEBUG__ - debug_focus_in( m_wxwindow, _T("wxWindow::m_wxwindow"), name ); -#endif - - gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow ); - -#if (GTK_MINOR_VERSION > 0) - GtkMyFixed *myfixed = GTK_MYFIXED(m_wxwindow); - - if (HasFlag(wxRAISED_BORDER)) - { - gtk_myfixed_set_shadow_type( myfixed, GTK_SHADOW_OUT ); - } - else if (HasFlag(wxSUNKEN_BORDER)) - { - gtk_myfixed_set_shadow_type( myfixed, GTK_SHADOW_IN ); - } - else - { - gtk_myfixed_set_shadow_type( myfixed, GTK_SHADOW_NONE ); - } -#else // GTK_MINOR_VERSION == 0 - GtkViewport *viewport = GTK_VIEWPORT(scrolledWindow->viewport); - - if (HasFlag(wxRAISED_BORDER)) - { - gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_OUT ); - } - else if (HasFlag(wxSUNKEN_BORDER)) - { - gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_IN ); - } - else - { - gtk_viewport_set_shadow_type( viewport, GTK_SHADOW_NONE ); - } -#endif // GTK_MINOR_VERSION - - if (HasFlag(wxTAB_TRAVERSAL)) - { - /* we now allow a window to get the focus as long as it - doesn't have any children. */ - GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - m_acceptsFocus = FALSE; - } - else - { - GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - m_acceptsFocus = TRUE; - } - -#if (GTK_MINOR_VERSION == 0) - // shut the viewport up - gtk_viewport_set_hadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); - gtk_viewport_set_vadjustment( viewport, (GtkAdjustment*) gtk_adjustment_new( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ); -#endif // GTK_MINOR_VERSION == 0 - - // I _really_ don't want scrollbars in the beginning - m_vAdjust->lower = 0.0; - m_vAdjust->upper = 1.0; - m_vAdjust->value = 0.0; - m_vAdjust->step_increment = 1.0; - m_vAdjust->page_increment = 1.0; - m_vAdjust->page_size = 5.0; - gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" ); - m_hAdjust->lower = 0.0; - m_hAdjust->upper = 1.0; - m_hAdjust->value = 0.0; - m_hAdjust->step_increment = 1.0; - m_hAdjust->page_increment = 1.0; - m_hAdjust->page_size = 5.0; - gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" ); - - // these handlers block mouse events to any window during scrolling such as - // motion events and prevent GTK and wxWindows from fighting over where the - // slider should be - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->vscrollbar), "button_press_event", - (GtkSignalFunc)gtk_scrollbar_button_press_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->hscrollbar), "button_press_event", - (GtkSignalFunc)gtk_scrollbar_button_press_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->vscrollbar), "button_release_event", - (GtkSignalFunc)gtk_scrollbar_button_release_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(scrolledWindow->hscrollbar), "button_release_event", - (GtkSignalFunc)gtk_scrollbar_button_release_callback, (gpointer) this ); - - // these handlers get notified when screen updates are required either when - // scrolling or when the window size (and therefore scrollbar configuration) - // has changed - - gtk_signal_connect( GTK_OBJECT(m_hAdjust), "value_changed", - (GtkSignalFunc) gtk_window_hscroll_callback, (gpointer) this ); - gtk_signal_connect( GTK_OBJECT(m_vAdjust), "value_changed", - (GtkSignalFunc) gtk_window_vscroll_callback, (gpointer) this ); - - gtk_signal_connect( GTK_OBJECT(m_hAdjust), "changed", - (GtkSignalFunc) gtk_window_hscroll_change_callback, (gpointer) this ); - gtk_signal_connect(GTK_OBJECT(m_vAdjust), "changed", - (GtkSignalFunc) gtk_window_vscroll_change_callback, (gpointer) this ); - - gtk_widget_show( m_wxwindow ); - - if (m_parent) - m_parent->DoAddChild( this ); - - PostCreation(); - - Show( TRUE ); - - return TRUE; -} - -wxWindow::~wxWindow() -{ - m_isBeingDeleted = TRUE; - m_hasVMT = FALSE; - - if (m_widget) - Show( FALSE ); - - DestroyChildren(); - - if (m_parent) - m_parent->RemoveChild( this ); - - if (m_widgetStyle) - { - gtk_style_unref( m_widgetStyle ); - m_widgetStyle = (GtkStyle*) NULL; - } - - if (m_scrollGC) - { - gdk_gc_unref( m_scrollGC ); - m_scrollGC = (GdkGC*) NULL; - } - - if (m_wxwindow) - { - gtk_widget_destroy( m_wxwindow ); - m_wxwindow = (GtkWidget*) NULL; - } - - if (m_widget) - { - gtk_widget_destroy( m_widget ); - m_widget = (GtkWidget*) NULL; - } -} - -void wxWindow::PreCreation( wxWindow *parent, - wxWindowID id, - const wxPoint &pos, - const wxSize &size, - long style, - const wxString &name ) -{ - wxASSERT_MSG( !m_needParent || parent, _T("Need complete parent.") ); - - if ( !CreateBase(parent, id, pos, size, style, name) ) - { - wxFAIL_MSG(_T("window creation failed")); - } - - m_width = WidthDefault(size.x); - m_height = HeightDefault(size.y); - - m_x = (int)pos.x; - m_y = (int)pos.y; - - if (!parent) /* some reasonable defaults */ - { - if (m_x == -1) - { - m_x = (gdk_screen_width () - m_width) / 2; - if (m_x < 10) m_x = 10; - } - if (m_y == -1) - { - m_y = (gdk_screen_height () - m_height) / 2; - if (m_y < 10) m_y = 10; - } - } -} - -void wxWindow::PostCreation() -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - - if (m_wxwindow) - { - /* these get reported to wxWindows -> wxPaintEvent */ - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_wxwindow), "draw", - GTK_SIGNAL_FUNC(gtk_window_draw_callback), (gpointer)this ); - -#if (GTK_MINOR_VERSION > 0) - /* these are called when the "sunken" or "raised" borders are drawn */ - gtk_signal_connect( GTK_OBJECT(m_widget), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_own_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "draw", - GTK_SIGNAL_FUNC(gtk_window_own_draw_callback), (gpointer)this ); -#endif - } - - GtkWidget *connect_widget = GetConnectWidget(); - - ConnectWidget( connect_widget ); - - /* we cannot set colours, fonts and cursors before the widget has - been realized, so we do this directly after realization */ - gtk_signal_connect( GTK_OBJECT(connect_widget), "realize", - GTK_SIGNAL_FUNC(gtk_window_realized_callback), (gpointer) this ); - - m_hasVMT = TRUE; -} - -void wxWindow::ConnectWidget( GtkWidget *widget ) -{ - gtk_signal_connect( GTK_OBJECT(widget), "key_press_event", - GTK_SIGNAL_FUNC(gtk_window_key_press_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "key_release_event", - GTK_SIGNAL_FUNC(gtk_window_key_release_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "button_press_event", - GTK_SIGNAL_FUNC(gtk_window_button_press_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "button_release_event", - GTK_SIGNAL_FUNC(gtk_window_button_release_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "motion_notify_event", - GTK_SIGNAL_FUNC(gtk_window_motion_notify_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "focus_in_event", - GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "focus_out_event", - GTK_SIGNAL_FUNC(gtk_window_focus_out_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "enter_notify_event", - GTK_SIGNAL_FUNC(gtk_window_enter_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(widget), "leave_notify_event", - GTK_SIGNAL_FUNC(gtk_window_leave_callback), (gpointer)this ); -} - -bool wxWindow::Destroy() -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - - m_hasVMT = FALSE; - - return wxWindowBase::Destroy(); -} - -void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - wxASSERT_MSG( (m_parent != NULL), _T("wxWindow::SetSize requires parent.\n") ); - - if (m_resizing) return; /* I don't like recursions */ - m_resizing = TRUE; - - if (m_parent->m_wxwindow == NULL) /* i.e. wxNotebook */ - { - /* don't set the size for children of wxNotebook, just take the values. */ - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - else - { - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - int border = 0; - int bottom_border = 0; - - if (GTK_WIDGET_CAN_DEFAULT(m_widget)) - { - /* the default button has a border around it */ - border = 6; - bottom_border = 5; - } - - /* this is the result of hours of debugging: the following code - means that if we have a m_wxwindow and we set the size of - m_widget, m_widget (which is a GtkScrolledWindow) does NOT - automatically propagate its size down to its m_wxwindow, - which is its client area. therefore, we have to tell the - client area directly that it has to resize itself. - this will lead to that m_widget (GtkScrolledWindow) will - calculate how much size it needs for scrollbars etc and - it will then call XXX_size_allocate of its child, which - is m_wxwindow. m_wxwindow in turn will do the same with its - children and so on. problems can arise if this happens - before all the children have been realized as some widgets - stupidy need to be realized during XXX_size_allocate (e.g. - GtkNotebook) and they will segv if called otherwise. this - emergency is tested in gtk_myfixed_size_allocate. Normally - this shouldn't be needed and only gtk_widget_queue_resize() - should be enough to provoke a resize at the next appropriate - moment, but this seems to fail, e.g. when a wxNotebook contains - a wxSplitterWindow: the splitter window's children won't - show up properly resized then. */ - - gtk_myfixed_set_size( GTK_MYFIXED(m_parent->m_wxwindow), - m_widget, - m_x-border, - m_y-border, - m_width+2*border, - m_height+border+bottom_border ); - } - - m_sizeSet = TRUE; - - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - - m_resizing = FALSE; -} - -void wxWindow::OnInternalIdle() -{ - GdkWindow *window = GetConnectWidget()->window; - if (window) - { - wxCursor cursor = m_cursor; - if (g_globalCursor.Ok()) cursor = g_globalCursor; - - if (m_currentGdkCursor != cursor) - { - gdk_window_set_cursor( window, cursor.GetCursor() ); - m_currentGdkCursor = cursor; - } - } - - UpdateWindowUI(); -} - -void wxWindow::DoGetSize( int *width, int *height ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (width) (*width) = m_width; - if (height) (*height) = m_height; -} - -void wxWindow::DoSetClientSize( int width, int height ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_wxwindow) - { - SetSize( width, height ); - } - else - { - int dw = 0; - int dh = 0; - - if (!m_hasScrolling) - { - GtkStyleClass *window_class = m_wxwindow->style->klass; - - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - dw += 2 * window_class->xthickness; - dh += 2 * window_class->ythickness; - } - } - else - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - -#if (GTK_MINOR_VERSION == 0) - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } -#endif - -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - if (scroll_window->vscrollbar_visible) - { - dw += 15; /* dw += vscrollbar->allocation.width; */ - dw += scroll_class->scrollbar_spacing; - } - - if (scroll_window->hscrollbar_visible) - { - dh += 15; /* dh += hscrollbar->allocation.height; */ - dh += scroll_class->scrollbar_spacing; - } - } - - SetSize( width+dw, height+dh ); - } -} - -void wxWindow::DoGetClientSize( int *width, int *height ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_wxwindow) - { - if (width) (*width) = m_width; - if (height) (*height) = m_height; - } - else - { - int dw = 0; - int dh = 0; - - if (!m_hasScrolling) - { - GtkStyleClass *window_class = m_wxwindow->style->klass; - - if (HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER)) - { - dw += 2 * window_class->xthickness; - dh += 2 * window_class->ythickness; - } - } - else - { - GtkScrolledWindow *scroll_window = GTK_SCROLLED_WINDOW(m_widget); - GtkScrolledWindowClass *scroll_class = GTK_SCROLLED_WINDOW_CLASS( GTK_OBJECT(m_widget)->klass ); - -#if (GTK_MINOR_VERSION == 0) - GtkWidget *viewport = scroll_window->viewport; - GtkStyleClass *viewport_class = viewport->style->klass; - - if ( HasFlag(wxRAISED_BORDER) || HasFlag(wxSUNKEN_BORDER) ) - { - dw += 2 * viewport_class->xthickness; - dh += 2 * viewport_class->ythickness; - } -#endif -/* - GtkWidget *hscrollbar = scroll_window->hscrollbar; - GtkWidget *vscrollbar = scroll_window->vscrollbar; - - we use this instead: range.slider_width = 11 + 2*2pts edge -*/ - - if (scroll_window->vscrollbar_visible) - { - dw += 15; /* dw += vscrollbar->allocation.width; */ - dw += scroll_class->scrollbar_spacing; - } - - if (scroll_window->hscrollbar_visible) - { - dh += 15; /* dh += hscrollbar->allocation.height; */ - dh += scroll_class->scrollbar_spacing; - } - } - - if (width) (*width) = m_width - dw; - if (height) (*height) = m_height - dh; - } -} - -void wxWindow::DoGetPosition( int *x, int *y ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (x) (*x) = m_x; - if (y) (*y) = m_y; -} - -void wxWindow::DoClientToScreen( int *x, int *y ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - GdkWindow *source = (GdkWindow *) NULL; - if (m_wxwindow) - source = m_wxwindow->window; - else - source = m_widget->window; - - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( source, &org_x, &org_y ); - - if (!m_wxwindow) - { - if (GTK_WIDGET_NO_WINDOW (m_widget)) - { - org_x += m_widget->allocation.x; - org_y += m_widget->allocation.y; - } - } - - if (x) *x += org_x; - if (y) *y += org_y; -} - -void wxWindow::DoScreenToClient( int *x, int *y ) const -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - GdkWindow *source = (GdkWindow *) NULL; - if (m_wxwindow) - source = m_wxwindow->window; - else - source = m_widget->window; - - int org_x = 0; - int org_y = 0; - gdk_window_get_origin( source, &org_x, &org_y ); - - if (!m_wxwindow) - { - if (GTK_WIDGET_NO_WINDOW (m_widget)) - { - org_x += m_widget->allocation.x; - org_y += m_widget->allocation.y; - } - } - - if (x) *x -= org_x; - if (y) *y -= org_y; -} - -bool wxWindow::Show( bool show ) -{ - wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") ); - - if (!wxWindowBase::Show(show)) - { - // nothing to do - return FALSE; - } - - if (show) - gtk_widget_show( m_widget ); - else - gtk_widget_hide( m_widget ); - - return TRUE; -} - -bool wxWindow::Enable( bool enable ) -{ - wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") ); - - if (!wxWindowBase::Enable(enable)) - { - // nothing to do - return FALSE; - } - - gtk_widget_set_sensitive( m_widget, enable ); - if ( m_wxwindow ) - gtk_widget_set_sensitive( m_wxwindow, enable ); - - return TRUE; -} - -int wxWindow::GetCharHeight() const -{ - wxCHECK_MSG( (m_widget != NULL), 12, _T("invalid window") ); - - wxCHECK_MSG( m_font.Ok(), 12, _T("invalid font") ); - - GdkFont *font = m_font.GetInternalFont( 1.0 ); - - return font->ascent + font->descent; -} - -int wxWindow::GetCharWidth() const -{ - wxCHECK_MSG( (m_widget != NULL), 8, _T("invalid window") ); - - wxCHECK_MSG( m_font.Ok(), 8, _T("invalid font") ); - - GdkFont *font = m_font.GetInternalFont( 1.0 ); - - return gdk_string_width( font, "H" ); -} - -void wxWindow::GetTextExtent( const wxString& string, - int *x, - int *y, - int *descent, - int *externalLeading, - const wxFont *theFont ) const -{ - wxFont fontToUse = m_font; - if (theFont) fontToUse = *theFont; - - wxCHECK_RET( fontToUse.Ok(), _T("invalid font") ); - - GdkFont *font = fontToUse.GetInternalFont( 1.0 ); - if (x) (*x) = gdk_string_width( font, string.mbc_str() ); - if (y) (*y) = font->ascent + font->descent; - if (descent) (*descent) = font->descent; - if (externalLeading) (*externalLeading) = 0; // ?? -} - -void wxWindow::SetFocus() -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (connect_widget) - { - if (GTK_WIDGET_CAN_FOCUS(connect_widget) /*&& !GTK_WIDGET_HAS_FOCUS (connect_widget)*/ ) - { - gtk_widget_grab_focus (connect_widget); - } - else if (GTK_IS_CONTAINER(connect_widget)) - { - gtk_container_focus( GTK_CONTAINER(connect_widget), GTK_DIR_TAB_FORWARD ); - } - else - { - } - } -} - -bool wxWindow::AcceptsFocus() const -{ - return m_acceptsFocus && wxWindowBase::AcceptsFocus(); -} - -bool wxWindow::Reparent( wxWindow *newParent ) -{ - wxCHECK_MSG( (m_widget != NULL), (wxWindow*) NULL, _T("invalid window") ); - - wxWindow *oldParent = m_parent; - - if ( !wxWindowBase::Reparent(newParent) ) - return FALSE; - - if (oldParent) - { - gtk_container_remove( GTK_CONTAINER(oldParent->m_wxwindow), m_widget ); - } - - if (newParent) - { - /* insert GTK representation */ - (*(newParent->m_insertCallback))(newParent, this); - } - - return TRUE; -} - -void wxWindow::DoAddChild(wxWindow *child) -{ - wxASSERT_MSG( (m_widget != NULL), _T("invalid window") ); - - wxASSERT_MSG( (child != NULL), _T("invalid child window") ); - - wxASSERT_MSG( (m_insertCallback != NULL), _T("invalid child insertion function") ); - - /* add to list */ - AddChild( child ); - - /* insert GTK representation */ - (*m_insertCallback)(this, child); -} - -void wxWindow::Raise() -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - gdk_window_raise( m_widget->window ); -} - -void wxWindow::Lower() -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - gdk_window_lower( m_widget->window ); -} - -bool wxWindow::SetCursor( const wxCursor &cursor ) -{ - wxCHECK_MSG( (m_widget != NULL), FALSE, _T("invalid window") ); - - if (!wxWindowBase::SetCursor(cursor)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedCursor) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedCursor = TRUE; - - // pretend we have done something - return TRUE; - } - -// gdk_window_set_cursor( connect_widget->window, GetCursor().GetCursor() ); - - // cursor was set - return TRUE; -} - -void wxWindow::WarpPointer( int x, int y ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (connect_widget->window) - { - /* we provide this function ourselves as it is - missing in GDK */ - gdk_window_warp_pointer( connect_widget->window, x, y ); - } -} - -void wxWindow::Refresh( bool eraseBackground, const wxRect *rect ) -{ - wxCHECK_RET( (m_widget != NULL), _T("invalid window") ); - - if (!m_widget->window) return; - - if (eraseBackground && m_wxwindow && m_wxwindow->window) - { - if (rect) - { - gdk_window_clear_area( m_wxwindow->window, - rect->x, rect->y, - rect->width, rect->height ); - } - else - { - gdk_window_clear( m_wxwindow->window ); - } - } - - if (!rect) - { - if (m_wxwindow) - gtk_widget_draw( m_wxwindow, (GdkRectangle*) NULL ); - else - gtk_widget_draw( m_widget, (GdkRectangle*) NULL ); - } - else - { - GdkRectangle gdk_rect; - gdk_rect.x = rect->x; - gdk_rect.y = rect->y; - gdk_rect.width = rect->width; - gdk_rect.height = rect->height; - - if (m_wxwindow) - gtk_widget_draw( m_wxwindow, &gdk_rect ); - else - gtk_widget_draw( m_widget, &gdk_rect ); - } -} - -void wxWindow::Clear() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - if (!m_widget->window) return; - - if (m_wxwindow && m_wxwindow->window) - { - gdk_window_clear( m_wxwindow->window ); - } -} - -#if wxUSE_TOOLTIPS -void wxWindow::DoSetToolTip( wxToolTip *tip ) -{ - wxWindowBase::DoSetToolTip(tip); - - if (m_tooltip) - m_tooltip->Apply( this ); -} - -void wxWindow::ApplyToolTip( GtkTooltips *tips, const wxChar *tip ) -{ - gtk_tooltips_set_tip( tips, GetConnectWidget(), wxConv_current->cWX2MB(tip), (gchar*) NULL ); -} -#endif // wxUSE_TOOLTIPS - -bool wxWindow::SetBackgroundColour( const wxColour &colour ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") ); - - if (!wxWindowBase::SetBackgroundColour(colour)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedBackgroundColour) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedBackgroundColour = TRUE; - - // pretend we have done something - return TRUE; - } - - if (m_wxwindow && m_wxwindow->window) - { - /* wxMSW doesn't clear the window here. I don't do that either to - provide compatibility. call Clear() to do the job. */ - - m_backgroundColour.CalcPixel( gdk_window_get_colormap( m_wxwindow->window ) ); - gdk_window_set_background( m_wxwindow->window, m_backgroundColour.GetColor() ); - } - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if (sysbg == m_backgroundColour) - { - m_backgroundColour = wxNullColour; - ApplyWidgetStyle(); - m_backgroundColour = sysbg; - } - else - { - ApplyWidgetStyle(); - } - - return TRUE; -} - -bool wxWindow::SetForegroundColour( const wxColour &colour ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") ); - - if (!wxWindowBase::SetForegroundColour(colour)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedForegroundColour) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedForegroundColour = TRUE; - - // pretend we have done something - return TRUE; - } - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if ( sysbg == m_backgroundColour ) - { - m_backgroundColour = wxNullColour; - ApplyWidgetStyle(); - m_backgroundColour = sysbg; - } - else - { - ApplyWidgetStyle(); - } - - return TRUE; -} - -GtkStyle *wxWindow::GetWidgetStyle() -{ - if (m_widgetStyle) gtk_style_unref( m_widgetStyle ); - - m_widgetStyle = gtk_style_copy( gtk_widget_get_style( m_widget ) ); - - return m_widgetStyle; -} - -void wxWindow::SetWidgetStyle() -{ - GtkStyle *style = GetWidgetStyle(); - - gdk_font_unref( style->font ); - style->font = gdk_font_ref( m_font.GetInternalFont( 1.0 ) ); - - if (m_foregroundColour.Ok()) - { - m_foregroundColour.CalcPixel( gdk_window_get_colormap( m_widget->window ) ); - style->fg[GTK_STATE_NORMAL] = *m_foregroundColour.GetColor(); - style->fg[GTK_STATE_PRELIGHT] = *m_foregroundColour.GetColor(); - style->fg[GTK_STATE_ACTIVE] = *m_foregroundColour.GetColor(); - } - - if (m_backgroundColour.Ok()) - { - m_backgroundColour.CalcPixel( gdk_window_get_colormap( m_widget->window ) ); - style->bg[GTK_STATE_NORMAL] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_NORMAL] = *m_backgroundColour.GetColor(); - style->bg[GTK_STATE_PRELIGHT] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_PRELIGHT] = *m_backgroundColour.GetColor(); - style->bg[GTK_STATE_ACTIVE] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_ACTIVE] = *m_backgroundColour.GetColor(); - style->bg[GTK_STATE_INSENSITIVE] = *m_backgroundColour.GetColor(); - style->base[GTK_STATE_INSENSITIVE] = *m_backgroundColour.GetColor(); - } -} - -void wxWindow::ApplyWidgetStyle() -{ -} - -static void SetInvokingWindow( wxMenu *menu, wxWindow *win ) -{ - menu->SetInvokingWindow( win ); - wxNode *node = menu->GetItems().First(); - while (node) - { - wxMenuItem *menuitem = (wxMenuItem*)node->Data(); - if (menuitem->IsSubMenu()) - { - SetInvokingWindow( menuitem->GetSubMenu(), win ); - } - node = node->Next(); - } -} - -static gint gs_pop_x = 0; -static gint gs_pop_y = 0; - -static void pop_pos_callback( GtkMenu * WXUNUSED(menu), - gint *x, gint *y, - wxWindow *win ) -{ - win->ClientToScreen( &gs_pop_x, &gs_pop_y ); - *x = gs_pop_x; - *y = gs_pop_y; -} - -bool wxWindow::PopupMenu( wxMenu *menu, int x, int y ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T("invalid window") ); - - wxCHECK_MSG( menu != NULL, FALSE, _T("invalid popup-menu") ); - - SetInvokingWindow( menu, this ); - - menu->UpdateUI(); - - gs_pop_x = x; - gs_pop_y = y; - - gtk_menu_popup( - GTK_MENU(menu->m_menu), - (GtkWidget *) NULL, // parent menu shell - (GtkWidget *) NULL, // parent menu item - (GtkMenuPositionFunc) pop_pos_callback, - (gpointer) this, // client data - 0, // button used to activate it - 0 //gs_timeLastClick // the time of activation - ); - return TRUE; -} - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget( wxDropTarget *dropTarget ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - GtkWidget *dnd_widget = GetConnectWidget(); - - if (m_dropTarget) m_dropTarget->UnregisterWidget( dnd_widget ); - - if (m_dropTarget) delete m_dropTarget; - m_dropTarget = dropTarget; - - if (m_dropTarget) m_dropTarget->RegisterWidget( dnd_widget ); -} - -#endif // wxUSE_DRAG_AND_DROP - -GtkWidget* wxWindow::GetConnectWidget() -{ - GtkWidget *connect_widget = m_widget; - if (m_wxwindow) connect_widget = m_wxwindow; - - return connect_widget; -} - -bool wxWindow::IsOwnGtkWindow( GdkWindow *window ) -{ - if (m_wxwindow) return (window == m_wxwindow->window); - return (window == m_widget->window); -} - -bool wxWindow::SetFont( const wxFont &font ) -{ - wxCHECK_MSG( m_widget != NULL, FALSE, _T( "invalid window") ); - - if (!wxWindowBase::SetFont(font)) - { - // don't leave if the GTK widget has just - // been realized - if (!m_delayedFont) return FALSE; - } - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) - { - // indicate that a new style has been set - // but it couldn't get applied as the - // widget hasn't been realized yet. - m_delayedFont = TRUE; - - // pretend we have done something - return TRUE; - } - - wxColour sysbg = wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ); - if ( sysbg == m_backgroundColour ) - { - m_backgroundColour = wxNullColour; - ApplyWidgetStyle(); - m_backgroundColour = sysbg; - } - else - { - ApplyWidgetStyle(); - } - - return TRUE; -} - -void wxWindow::CaptureMouse() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( g_captureWindow == NULL, _T("CaptureMouse called twice") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) return; - - gdk_pointer_grab( connect_widget->window, FALSE, - (GdkEventMask) - (GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK), - (GdkWindow *) NULL, - m_cursor.GetCursor(), - GDK_CURRENT_TIME ); - g_captureWindow = this; -} - -void wxWindow::ReleaseMouse() -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( g_captureWindow, _T("ReleaseMouse called twice") ); - - GtkWidget *connect_widget = GetConnectWidget(); - if (!connect_widget->window) return; - - gdk_pointer_ungrab ( GDK_CURRENT_TIME ); - g_captureWindow = (wxWindow*) NULL; -} - -bool wxWindow::IsRetained() const -{ - return FALSE; -} - -void wxWindow::SetScrollbar( int orient, int pos, int thumbVisible, - int range, bool refresh ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( m_wxwindow != NULL, _T("window needs client area for scrolling") ); - - m_hasScrolling = TRUE; - - if (orient == wxHORIZONTAL) - { - float fpos = (float)pos; - float frange = (float)range; - float fthumb = (float)thumbVisible; - if (fpos > frange-fthumb) fpos = frange-fthumb; - if (fpos < 0.0) fpos = 0.0; - - if ((fabs(frange-m_hAdjust->upper) < 0.2) && - (fabs(fthumb-m_hAdjust->page_size) < 0.2)) - { - SetScrollPos( orient, pos, refresh ); - return; - } - - m_oldHorizontalPos = fpos; - - m_hAdjust->lower = 0.0; - m_hAdjust->upper = frange; - m_hAdjust->value = fpos; - m_hAdjust->step_increment = 1.0; - m_hAdjust->page_increment = (float)(wxMax(fthumb,0)); - m_hAdjust->page_size = fthumb; - } - else - { - float fpos = (float)pos; - float frange = (float)range; - float fthumb = (float)thumbVisible; - if (fpos > frange-fthumb) fpos = frange-fthumb; - if (fpos < 0.0) fpos = 0.0; - - if ((fabs(frange-m_vAdjust->upper) < 0.2) && - (fabs(fthumb-m_vAdjust->page_size) < 0.2)) - { - SetScrollPos( orient, pos, refresh ); - return; - } - - m_oldVerticalPos = fpos; - - m_vAdjust->lower = 0.0; - m_vAdjust->upper = frange; - m_vAdjust->value = fpos; - m_vAdjust->step_increment = 1.0; - m_vAdjust->page_increment = (float)(wxMax(fthumb,0)); - m_vAdjust->page_size = fthumb; - } - - if (orient == wxHORIZONTAL) - gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "changed" ); - else - gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "changed" ); -} - -void wxWindow::SetScrollPos( int orient, int pos, bool WXUNUSED(refresh) ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( m_wxwindow != NULL, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - { - float fpos = (float)pos; - if (fpos > m_hAdjust->upper - m_hAdjust->page_size) fpos = m_hAdjust->upper - m_hAdjust->page_size; - if (fpos < 0.0) fpos = 0.0; - m_oldHorizontalPos = fpos; - - if (fabs(fpos-m_hAdjust->value) < 0.2) return; - m_hAdjust->value = fpos; - } - else - { - float fpos = (float)pos; - if (fpos > m_vAdjust->upper - m_vAdjust->page_size) fpos = m_vAdjust->upper - m_vAdjust->page_size; - if (fpos < 0.0) fpos = 0.0; - m_oldVerticalPos = fpos; - - if (fabs(fpos-m_vAdjust->value) < 0.2) return; - m_vAdjust->value = fpos; - } - - if (!m_isScrolling) /* prevent recursion */ - { - if (m_wxwindow->window) - { - if (orient == wxHORIZONTAL) - gtk_signal_emit_by_name( GTK_OBJECT(m_hAdjust), "value_changed" ); - else - gtk_signal_emit_by_name( GTK_OBJECT(m_vAdjust), "value_changed" ); - } - } -} - -int wxWindow::GetScrollThumb( int orient ) const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid window") ); - - wxCHECK_MSG( m_wxwindow != NULL, 0, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - return (int)(m_hAdjust->page_size+0.5); - else - return (int)(m_vAdjust->page_size+0.5); -} - -int wxWindow::GetScrollPos( int orient ) const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid window") ); - - wxCHECK_MSG( m_wxwindow != NULL, 0, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - return (int)(m_hAdjust->value+0.5); - else - return (int)(m_vAdjust->value+0.5); -} - -int wxWindow::GetScrollRange( int orient ) const -{ - wxCHECK_MSG( m_widget != NULL, 0, _T("invalid window") ); - - wxCHECK_MSG( m_wxwindow != NULL, 0, _T("window needs client area for scrolling") ); - - if (orient == wxHORIZONTAL) - return (int)(m_hAdjust->upper+0.5); - else - return (int)(m_vAdjust->upper+0.5); -} - -void wxWindow::ScrollWindow( int dx, int dy, const wxRect* WXUNUSED(rect) ) -{ - wxCHECK_RET( m_widget != NULL, _T("invalid window") ); - - wxCHECK_RET( m_wxwindow != NULL, _T("window needs client area for scrolling") ); - - if (!m_scrollGC) - { - m_scrollGC = gdk_gc_new( m_wxwindow->window ); - gdk_gc_set_exposures( m_scrollGC, TRUE ); - } - - wxNode *node = m_children.First(); - while (node) - { - wxWindow *child = (wxWindow*) node->Data(); - int sx = 0; - int sy = 0; - child->GetSize( &sx, &sy ); - child->SetSize( child->m_x + dx, child->m_y + dy, sx, sy, wxSIZE_ALLOW_MINUS_ONE ); - node = node->Next(); - } - - int cw = 0; - int ch = 0; - GetClientSize( &cw, &ch ); - int w = cw - abs(dx); - int h = ch - abs(dy); - - if ((h < 0) || (w < 0)) - { - Refresh(); - } - else - { - int s_x = 0; - int s_y = 0; - if (dx < 0) s_x = -dx; - if (dy < 0) s_y = -dy; - int d_x = 0; - int d_y = 0; - if (dx > 0) d_x = dx; - if (dy > 0) d_y = dy; - - gdk_window_copy_area( m_wxwindow->window, m_scrollGC, d_x, d_y, - m_wxwindow->window, s_x, s_y, w, h ); - - wxRect rect; - if (dx < 0) rect.x = cw+dx; else rect.x = 0; - if (dy < 0) rect.y = ch+dy; else rect.y = 0; - if (dy != 0) rect.width = cw; else rect.width = abs(dx); - if (dx != 0) rect.height = ch; else rect.height = abs(dy); - - Refresh( TRUE, &rect ); - } -} - -void wxWindow::SetScrolling(bool scroll) -{ - m_isScrolling = g_blockEventsOnScroll = scroll; -} diff --git a/src/iodbc/AUTHORS b/src/iodbc/AUTHORS deleted file mode 100644 index 4168f05912..0000000000 --- a/src/iodbc/AUTHORS +++ /dev/null @@ -1,4 +0,0 @@ -Written by Ke Jin - -Additions by OpenLink Software Inc. http://www.openlinksw.com/ -Contact: Patrick van Kleef diff --git a/src/iodbc/COPYING b/src/iodbc/COPYING deleted file mode 100644 index 79d009a2fb..0000000000 --- a/src/iodbc/COPYING +++ /dev/null @@ -1,482 +0,0 @@ - GNU LIBRARY GENERAL PUBLIC LICENSE - Version 2, June 1991 - - 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.] - - 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. - - GNU LIBRARY GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 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: - - 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.) - -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: - - 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. - - 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: - - 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. - - 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. - - NO WARRANTY - - 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. - - END OF TERMS AND CONDITIONS - - 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. - - - Copyright (C) - - 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. - -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: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the - library `Frob' (a library for tweaking knobs) written by James Random Hacker. - - , 1 April 1990 - Ty Coon, President of Vice - -That's all there is to it! - diff --git a/src/iodbc/Changes.log b/src/iodbc/Changes.log deleted file mode 100644 index e7c359f2b3..0000000000 --- a/src/iodbc/Changes.log +++ /dev/null @@ -1,67 +0,0 @@ -January 18, 1999, V2.50: - * Added autoconf/automake/libtool support - * Licensing moved to LGPL - * Added OpenLink code enhancements and bug fixes - ------------------------------------------------------------------------- -Original Changelog from Ke Jin ------------------------------------------------------------------------- -July 30, 1995, v2.00.beta: - 0. the first release and beta version. - -Sep. 11, 1995, v2.10: - 1. Porting to AIX 3.x and 4.x, by writing dlopen(), - dlsym(), dlclose() interface. - 2. Tested on SCO OpenServer 5.x - 3. Awared of that, unlike s700/s800, exported function - symbols on HP9000 s300/s400 will be prepended with - a '_' prefix by compiler(and this '_' prefix is not - automatically handled by shl_findsym()). Now, it works - fine on s300/s400. - 4. Support driver ODBC call tracing. - -Oct. 12, 1995, v2.11: - 5. Driver's SQLNumResultCols() will automatically be - invoked in driver manager's SQLExecute(), - SQLExecDirect() and SQLParamData() after successfully - (i.e. return SQL_SUCCESS or SQL_SUCCESS_WITH_INFO ) - calling of their correspondent driver functions. This - simplifies the state tracing/checking of the driver - manager a lot and allows store procedures to return - result set and also make iODBC driver manager work - properly with SELECT INTO statements which actually - don't return result sets. - 6. Memory leaks are cleared. - 7. Two bugs in dld.c for AIX are fixed - 8. A bug of setting tracing option is fixed. - 9. The driver will not be unloaded by SQLDisconnect() - but by SQLFreeConnect() or next SQLConnect()/ - SQLDriverConnect()/SQLBrowsConnect() on a different - driver. This will save driver's loading time if it - has been used by a previous connection(even there - is no active connection on this driver). - 10.Another three platforms are supported: - FreeBSD 2.x - Concurrent Max/OS SVR4 1.x - DG/UX 5.x - 11.autoconfig and build -- shell scripts to help modifying - Config.mk and building iodbc driver manager - -Nov. 12, 1995, v2.12 - 12.I realized that a driver manager doesn't aware of - difference between a C5 (i.e. hstmt) and a C6 - (i.e. transaction) states. - 13.The link flags "-lc" has been droped from Linux ELF - section of Config.mk to fix a segment fault problem. - Now, it works fine on Slackware 2.3 and Red Hat 2.0 - (kernel version are 1.2.xx and 1.3.xx respectively). - 14.On FreeBSD 2.x, dlsym() doesn't handle the '_' prefix - prepended to an exportting function symbol by compiler. - So, CLI_NAME_PREFIX needs to be defined as "_SQL" for - FreeBSD 2.x. - 15.Some files are renamed - dld.c -> dlf.c - dld.h -> dlf.h - confg.h -> config.h - 16. Fix a bug on setting tracing options. - diff --git a/src/iodbc/IAFA-PACKAGE b/src/iodbc/IAFA-PACKAGE deleted file mode 100644 index a53af75fec..0000000000 --- a/src/iodbc/IAFA-PACKAGE +++ /dev/null @@ -1,40 +0,0 @@ -Title: iODBC Driver Manager - -Version: 2.50 - -Description: iODBC (intrinsic Open Database Connectivity) driver manager - is compatible with ODBC 2.x specification and performs exactly - same jobs of ODBC 2.x driver manager(i.e. driver loading, - Parameters and function sequence checking, driver's function - Invoking, etc.). Any ODBC driver works with ODBC 2.0 driver - Manager will also work with iODBC driver manager and vice versa. - Applications (using ODBC function calls) linked with - iODBC driver manager will be able to simultaneously access - different type of data sources within one process through - suitable iODBC drivers. - -Original Author: Jin, Ke -Source Code Enhancement Contributors: OpenLink Software -Maintainers: OpenLink Software -Web Site: http://www.openlinksw.com - -Platforms: SunOS (Sparc) 4.1.x - HP/UX (s700/s800) 9.x, 10.x - HP/UX (s300/s400) 9.x - IBM AIX 3.x, 4.x - Solaris (Sparc) 2.x - Solaris (PCx86) 2.x - SGI Irix 5.x, 6.x - NCR SVR4 3.x - UnixWare SVR4.2 1.x, 2.x - DEC Unix (OSF/1) 3.x, 4.x - FreeBSD 2.x - BSDI BSD/OS 2.x - Linux ELF 1.2.x - SCO OpenServer 5.x - Concurrent MAX/OS 1.x - DG/UX 5.x - -License Policy: Freely Redistributable under GNU Library General Public License (LGPL) - -Keywords: ODBC, database, SQL, OpenLink diff --git a/src/iodbc/INSTALL b/src/iodbc/INSTALL deleted file mode 100644 index b42a17ac46..0000000000 --- a/src/iodbc/INSTALL +++ /dev/null @@ -1,182 +0,0 @@ -Basic Installation -================== - - These are generic installation instructions. - - The `configure' shell script attempts to guess correct values for -various system-dependent variables used during compilation. It uses -those values to create a `Makefile' in each directory of the package. -It may also create one or more `.h' files containing system-dependent -definitions. Finally, it creates a shell script `config.status' that -you can run in the future to recreate the current configuration, a file -`config.cache' that saves the results of its tests to speed up -reconfiguring, and a file `config.log' containing compiler output -(useful mainly for debugging `configure'). - - If you need to do unusual things to compile the package, please try -to figure out how `configure' could check whether to do them, and mail -diffs or instructions to the address given in the `README' so they can -be considered for the next release. If at some point `config.cache' -contains results you don't want to keep, you may remove or edit it. - - The file `configure.in' is used to create `configure' by a program -called `autoconf'. You only need `configure.in' if you want to change -it or regenerate `configure' using a newer version of `autoconf'. - -The simplest way to compile this package is: - - 1. `cd' to the directory containing the package's source code and type - `./configure' to configure the package for your system. If you're - using `csh' on an old version of System V, you might need to type - `sh ./configure' instead to prevent `csh' from trying to execute - `configure' itself. - - Running `configure' takes awhile. While running, it prints some - messages telling which features it is checking for. - - 2. Type `make' to compile the package. - - 3. Optionally, type `make check' to run any self-tests that come with - the package. - - 4. Type `make install' to install the programs and any data files and - documentation. - - 5. You can remove the program binaries and object files from the - source code directory by typing `make clean'. To also remove the - files that `configure' created (so you can compile the package for - a different kind of computer), type `make distclean'. There is - also a `make maintainer-clean' target, but that is intended mainly - for the package's developers. If you use it, you may have to get - all sorts of other programs in order to regenerate files that came - with the distribution. - -Compilers and Options -===================== - - Some systems require unusual options for compilation or linking that -the `configure' script does not know about. You can give `configure' -initial values for variables by setting them in the environment. Using -a Bourne-compatible shell, you can do that on the command line like -this: - CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure - -Or on systems that have the `env' program, you can do it like this: - env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure - -Compiling For Multiple Architectures -==================================== - - You can compile the package for more than one kind of computer at the -same time, by placing the object files for each architecture in their -own directory. To do this, you must use a version of `make' that -supports the `VPATH' variable, such as GNU `make'. `cd' to the -directory where you want the object files and executables to go and run -the `configure' script. `configure' automatically checks for the -source code in the directory that `configure' is in and in `..'. - - If you have to use a `make' that does not supports the `VPATH' -variable, you have to compile the package for one architecture at a time -in the source code directory. After you have installed the package for -one architecture, use `make distclean' before reconfiguring for another -architecture. - -Installation Names -================== - - By default, `make install' will install the package's files in -`/usr/local/bin', `/usr/local/man', etc. You can specify an -installation prefix other than `/usr/local' by giving `configure' the -option `--prefix=PATH'. - - You can specify separate installation prefixes for -architecture-specific files and architecture-independent files. If you -give `configure' the option `--exec-prefix=PATH', the package will use -PATH as the prefix for installing programs and libraries. -Documentation and other data files will still use the regular prefix. - - In addition, if you use an unusual directory layout you can give -options like `--bindir=PATH' to specify different values for particular -kinds of files. Run `configure --help' for a list of the directories -you can set and what kinds of files go in them. - - If the package supports it, you can cause programs to be installed -with an extra prefix or suffix on their names by giving `configure' the -option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. - -Optional Features -================= - - Some packages pay attention to `--enable-FEATURE' options to -`configure', where FEATURE indicates an optional part of the package. -They may also pay attention to `--with-PACKAGE' options, where PACKAGE -is something like `gnu-as' or `x' (for the X Window System). The -`README' should mention any `--enable-' and `--with-' options that the -package recognizes. - - For packages that use the X Window System, `configure' can usually -find the X include and library files automatically, but if it doesn't, -you can use the `configure' options `--x-includes=DIR' and -`--x-libraries=DIR' to specify their locations. - -Specifying the System Type -========================== - - There may be some features `configure' can not figure out -automatically, but needs to determine by the type of host the package -will run on. Usually `configure' can figure that out, but if it prints -a message saying it can not guess the host type, give it the -`--host=TYPE' option. TYPE can either be a short name for the system -type, such as `sun4', or a canonical name with three fields: - CPU-COMPANY-SYSTEM - -See the file `config.sub' for the possible values of each field. If -`config.sub' isn't included in this package, then this package doesn't -need to know the host type. - - If you are building compiler tools for cross-compiling, you can also -use the `--target=TYPE' option to select the type of system they will -produce code for and the `--build=TYPE' option to select the type of -system on which you are compiling the package. - -Sharing Defaults -================ - - If you want to set default values for `configure' scripts to share, -you can create a site shell script called `config.site' that gives -default values for variables like `CC', `cache_file', and `prefix'. -`configure' looks for `PREFIX/share/config.site' if it exists, then -`PREFIX/etc/config.site' if it exists. Or, you can set the -`CONFIG_SITE' environment variable to the location of the site script. -A warning: not all `configure' scripts look for a site script. - -Operation Controls -================== - - `configure' recognizes the following options to control how it -operates. - -`--cache-file=FILE' - Use and save the results of the tests in FILE instead of - `./config.cache'. Set FILE to `/dev/null' to disable caching, for - debugging `configure'. - -`--help' - Print a summary of the options to `configure', and exit. - -`--quiet' -`--silent' -`-q' - Do not print messages saying which checks are being made. To - suppress all normal output, redirect it to `/dev/null' (any error - messages will still be shown). - -`--srcdir=DIR' - Look for the package's source code in directory DIR. Usually - `configure' can determine that directory automatically. - -`--version' - Print the version of Autoconf used to generate the `configure' - script, and exit. - -`configure' also accepts some other, not widely useful, options. diff --git a/src/iodbc/NEWS b/src/iodbc/NEWS deleted file mode 100644 index 27eb6d4202..0000000000 --- a/src/iodbc/NEWS +++ /dev/null @@ -1,8 +0,0 @@ -Version: 2.5 -------------- -Added OpenLink enhancements - - -Version: 2.12 -------------- -Original version of Ke Jin diff --git a/src/iodbc/README b/src/iodbc/README deleted file mode 100644 index 23cb2a5e82..0000000000 --- a/src/iodbc/README +++ /dev/null @@ -1,187 +0,0 @@ -0. Changes - a. I realized that a driver manager doesn't aware of - difference between a C5 (i.e. hstmt) and a C6 - (i.e. transaction) states. - - b. The link flags "-lc" has been removed from Linux ELF - section of Config.mk to fix a segment fault problem. - Now, it works fine on Slackware 2.3 and Red Hat 2.0 - (kernel version are 1.2.xx and 1.3.xx respectively). - - c. On FreeBSD 2.x, dlsym() doesn't handle the '_' - prepended before a exporting function symbol. So, - CLI_NAME_PREFIX needs to be defined as "_SQL" for - FreeBSD. - - d. Some files are renamed - dld.c -> dlf.c - dld.h -> dlf.h - confg.h -> config.h - -1. iODBC driver manager platform availability - - iODBC driver manager has been ported to following Unix platforms: - - SunOS 4.1.x Sun Sparc - HP/UX 9.x, 10.x HP9000 s700/s800 - HP/UX 9.x HP9000 s300/s400 - IBM AIX 3.x, 4.x IBM RS6000, PowerPC - Sun Solaris 2.x Sun Sparc, PCx86 - SGI Irix SVR4 5.x, 6.x IP12 MIPS, IP22 MIPS - NCR SVR4 3.x NCR 3435 - UnixWare SVR4.2 1.x, 2.x x86 - DEC Unix(OSF/1) 3.x, 4.x DEC Alpha - FreeBSD 2.x x86 - BSDI BSD/OS 2.x ? - Linux ELF 1.2.x, 1.3.x x86 - SCO OpenServer 5.x x86 - Max/OS SVR4 1.x Concurrent Maxion 9200 MP - DG/UX 5.x Aviion - - Porting of iODBC driver manager to some non-unix operating systems - such as Windows family(3.x, 95, NT), OS/2 and Mac is supported but - has never compiled and tested yet :). Of cause, you need to supply - a make/build file and a short LibMain for creating the iodbc.dll. - -2. How to build iODBC driver manager: - - step 1. Identify your system - step 2. Run build with a suitable option - - Here is an example: - - %[1]: sh iodbc-2.12.shar - .... - %[2]: cd iodbc-2.12 - %[3]: uname -s -v -r -m - HP-UX B.10.01 A 9000/710 - %[4]: ./build hp700 - autoconfig hp700 - make - .... - Generating iODBC driver manager --> /home/kejin/iodbc-2.12.sl - -3. odbc.ini( ~/.odbc.ini ) - - Driver manager and drivers use odbc.ini(or ~/.odbc.ini on Unix) file - or connection string when establishing a data source connection. On - Windows, odbc.ini is located in Windows directory. On unix, iODBC driver - manager(and all other ODBC drivers and driver managers I awared) looks - .odbc.ini file in real user's home directory (it could be a softlink to - the file located somewhere else). Make sure your driver will look into - the same file (or a file which is a symbolic link to the same file). - The format of odbc.ini( or ~/.odbc.ini ) is defined as: - - odbc.ini(or .odbc.ini) ::= data_source_list - - data_source_list ::= /* empty */ - | data_source '\n' data_source_list - - data_source ::= '[' data_source_name ']' '\n' data_source_desc - - data_source_name ::= 'default' | [A-Za-z]*[A-Za-z0-9_]* - - data_source_desc ::= /* empty */ - | attrib_desc '\n' data_source_desc - - addrib_desc ::= Attrib '=' attrib_value - - Attrib ::= 'Driver' | 'PID' | 'UID' | driver_def_attrib - - driver_def_attrib ::= [A-Za-z]*[A-Za-z0-9_]* - - An example of .odbc.ini file: - - [toronto_yp] - # yellow page of metro Toronto - Driver = /usr/lib/odbc/oracle.so - <....> - - [toronto_wp] - # white page of metro Toronto - Driver = /usr/lib/odbc/oracle.so - <....> - - [contract] - # all contract documents - Driver = /usr/lib/odbc/informix.so - <....> - - [netnews] - # NNTP netnews group - Driver = /usr/lib/odbc/nnodbc.so - Server = news.empress.com - - [rnd_test] - # data source for R&D test - Driver = /home/r_d/odbc/empodbc.so - URL = empodbc://rnd.empress.com:6322/rnd_test/testdb - - [default] - # default to odbc gateway - Driver = /usr/lib/odbc/gateway.so - -4. Tracing - - iODBC driver manager traces driver's ODBC call invoked by the driver - manager. Default tracing file is ./odbc.log. Tracing option (i.e. - on/off or optional tracing file name) can be set in ~/.odbc.ini - file (under a data source section) as: - - TraceFile = - Trace = ON | On | on | 1 | OFF | Off | off | 0 - - If is stderr or stdout, i.e. - - TraceFile = stderr - - or - - TraceFile = stdout - - the tracing message will go to the terminal screen(if it is available). - - iODBC driver manager allows one to tune on/off tracing on selected - connection(s). Different connections can share one or use different - tracing file(s). ODBC calls on connections without tuning tracing on - will not be traced. - -5. File list: - - README This file - IAFA-PACKAGE Version and copyright information - Changes.log Source changes log - Version.mk Version make include file - Config.mk Config make include file - Makefile make file - config.h system config include file - isql.h ODBC 1.0 macro - isqlext.h ODBC 2.0 macro - dlf.h general dynamic loader module interface - dlf.c general dynamic loader module (mapping to svr4) - dlproc.h simple dynamic loader module interface - dlproc.c simple dynamic loader on top of dlf module - herr.h error handling module interface - herr.c error handling module - herr.ci error handling source include - henv.h environment handle interface - henv.c environment handle module - henv.ci environment handle source include - hdbc.h connection handle interface - hdbc.c connection handle module - hstmt.h statement handle interface - hstmt.c statement handle module - connect.c connect functions - prepare.c query prepare functions - execute.c query executing functions - result.c query result property functions - fetch.c query result fetch functions - info.c driver information functions - catalog.c catalog functions - misc.c miscellaneous functions - itrace.h macro - itrace.c trace function - main.c entry function used to build a share library on AIX - shrsub.exp export symbol list used on AIX - autoconfig shell script for creating Config.mk - build shell script for building iodbc driver manager diff --git a/src/iodbc/autoconfig b/src/iodbc/autoconfig deleted file mode 100755 index ac6de96f2d..0000000000 --- a/src/iodbc/autoconfig +++ /dev/null @@ -1,230 +0,0 @@ -#! /usr/bin/sh - -cat > Config.tmp << '@END' -# -# Copyright (C) 1995 by Ke Jin -# - -#============ Default for all system ============== -SHELL = -SHELL = /bin/sh -DLDAPI = DLDAPI_SVR4_DLFCN -DLSUFFIX= so -OUTFILE = iodbc -OBJX = -@END - -\rm -f Makefile.tmp -cat > Makefile.tmp <<'@END' -include Version.mk -include Config.mk -@END - -case $1 in - sun4) - cat >> Config.tmp << '@END' - -#============ SunOS 4.1.x ========================= -PIC = -pic -CC = acc -LIBS = -ldl -@END - ;; - - aix) - cat >> Config.tmp << '@END' - -#=========== AIX 3.x 4.x ========================== -DLDAPI = DLDAPI_AIX_LOAD -ANSI = -langlvl=ansi -LDFLAGS = -H512 -T512 -bE:shrsub.exp -bM:SRE -LIBS = -lc -OBJX = main.o -DLSUFFIX= s.o -CFLAGSX = -DCLI_NAME_PREFIX=\".SQL\" -@END - ;; - - hp300 | hp400) - cat >> Config.tmp << '@END' - -#============ HP/UX (s300/s400) 9.x 10.x ========== -DLDAPI = DLDAPI_HP_SHL -ANSI = -Aa -PIC = +z -LDFLAGS = -b -DLSUFFIX= sl -CFLAGSX = -D_INCLUDE_POSIX_SOURCE -DCLI_NAME_PREFIX=\"_SQL\" -@END - ;; - - hp700 | hp800) - cat >> Config.tmp << '@END' - -#============ HP/UX 9000(s700/s800) 9.x 10.x ====== -DLDAPI = DLDAPI_HP_SHL -ANSI = -Aa -PIC = +z -LDFLAGS = -b -LIBS = -lc -ldld -DLSUFFIX= sl -CFLAGSX = -D_INCLUDE_POSIX_SOURCE -@END - ;; - - solaris) - cat >> Config.tmp << '@END' - -#======= Solaris 2.x, SunOS 5.x (Sparc/x86) ======= -LDFLAGS = -G -z defs -LIBS = -lc -ldl -lnsl -@END - ;; - - ncr |gis) - cat >> Config.tmp << '@END' - -#============= NCR SVR4 3.x ======================= -PIC = -KPIC -LDFLAGS = -G -z defs -LIBS = -lc -ldl -@END - ;; - - unixware) - cat >> Config.tmp << '@END' - -#========= UnixWare SVR4 1.x, 2.x ================= -PIC = -KPIC -LDFLAGS = -G -z defs -LIBS = -lc -ldl -@END - ;; - - maxos) - cat >> Config.tmp << '@END' - -#============ Concurrent Maxion MAX/OS 1.x ======== -PIC = -KPIC -LDFLAGS = -G -z defs -LIBS = -lc -ldl -@END - ;; - - sco-opensrv | sco-osr5 ) - cat >> Config.tmp << '@END' - -#============ SCO OpenServer 5.x ================== -PIC = -K PIC -b elf -LDFLAGS = -G -z defs -LIBS = -lc -ldl -@END - ;; - - dgux) - cat >> Config.tmp << '@END' - -#============ DG/UX 5.x =========================== -PIC = -K PIC -LDFLAGS = -G -z defs -LIBS = -lc -ldl -@END - ;; - - freebsd) - cat >> Config.tmp << '@END' - -#============= FreeBSD 2.x ======================== -PIC = -fPIC -CFLAGSX = -DCLI_NAME_PREFIX=\"_SQL\" -LDFLAGS = -Bshareable -LIBS = -lc -@END - - \rm -f Makefile.tmp - cat > Makefile.tmp <<'@END' -.include "Version.mk" -.include "Config.mk" -@END - ;; - - bsd-os) - cat >> Config.tmp << '@END' - -#============ BSDI BSD/OS 2.x ===================== -# -# ported by: Stuart Hayton -# -CC = gcc -LDFLAGS = -r -LDSUFFIX= o -LIBS = -lc_s.2.0 -ldl -@END - ;; - - linux-elf) - cat >> Config.tmp << '@END' - -#============= Linux ELF ========================= -# Slackware 2.x,(kernel 1.3.x) on i386 -# Red Hat 2.x (kernel 1.2.x) on i486 -# -ANSI = -ansi -CC = gcc -PIC = -fPIC -LDFLAGS = -shared -LIBS = -ldl -@END - ;; - - irix5| irix6) - cat >> Config.tmp << '@END' - -#============= SGI IRIX 5.x, 6.x ================= -LDFLAGS = -shared -LIBS = -lc -@END - ;; - - dec-osf1 | dec-unix) - cat >> Config.tmp << '@END' - -#============= DEC Unix(OSF/1) 3.x, 4.x ========== -LDFLAGS = -shared -LIBS = -lc -@END - ;; - *) - cat << '@END' - - Usage: autoconfig or - build - - platform_opt: - - sun4 -- SunOS 4.1.x - aix -- IBM AIX 3.x, 4.x - hp300, hp400 -- HP/UX 9.x, 10.x on 9000 s300/s400 - hp700, hp800 -- HP/UX 9.x, 10.x on 9000 s700/s800 - solaris -- Sun Solaris 2.x, SunOS 5.x - ncr, gis -- NCR(GIS) SVR4 3.x - unixware -- Novell UnixWare 1.x, 2.x - maxos -- Concurrent MAX/OS SVR4 1.x - sco-osr5 -- SCO Open Server 5.x - dgux -- DG/UX 5.x - freebsd -- FreeBSD 2.x - bsd-os -- BSDI BSD/OS 2.x - linux-elf -- Linux ELF 1.2.x and up - irix5, irix6 -- SGI Irix 5.x, 6.x - dec-osf1 -- DEC Unix(OSF/1) 3.x, 4.x - -@END - \rm -f Config.tmp - \rm -f Makefile.tmp - exit 1 - ;; -esac - \mv -f Config.tmp Config.mk - sed -e 's/.include.*//' -e 's/include.*//' Makefile >> Makefile.tmp - \mv -f Makefile.tmp Makefile - exit 0 diff --git a/src/iodbc/catalog.c b/src/iodbc/catalog.c deleted file mode 100644 index 37b134df47..0000000000 --- a/src/iodbc/catalog.c +++ /dev/null @@ -1,987 +0,0 @@ -/* - * catalog.c - * - * $Id$ - * - * Catalog functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -#ifndef NULL -#define NULL 0 -#endif - -static RETCODE -_iodbcdm_cata_state_ok ( - HSTMT hstmt, - int fidx) -/* check state for executing catalog functions */ -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - int sqlstat = en_00000; - - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - case en_stmt_fetched: - case en_stmt_xfetched: - sqlstat = en_24000; - break; - - default: - break; - } - } - else if (pstmt->asyn_on != fidx) - { - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - return SQL_SUCCESS; -} - - -static RETCODE -_iodbcdm_cata_state_tr ( - HSTMT hstmt, - int fidx, - RETCODE result) -/* state transition for catalog function */ -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - DBC_t FAR *pdbc; - - pdbc = (DBC_t FAR *) (pstmt->hdbc); - - if (pstmt->asyn_on == fidx) - { - switch (result) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return result; - } - } - - if (pstmt->state <= en_stmt_executed) - { - switch (result) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - pstmt->state = en_stmt_cursoropen; - break; - - case SQL_ERROR: - pstmt->state = en_stmt_allocated; - pstmt->prep_state = 0; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = fidx; - break; - - default: - break; - } - } - - return result; -} - - -RETCODE SQL_API -SQLGetTypeInfo ( - HSTMT hstmt, - SWORD fSqlType) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - int sqlstat = en_00000; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if (fSqlType > SQL_TYPE_MAX) - { - sqlstat = en_S1004; - break; - } - - /* Note: SQL_TYPE_DRIVER_START is a negative number So, we use ">" */ - if (fSqlType < SQL_TYPE_MIN && fSqlType > SQL_TYPE_DRIVER_START) - { - sqlstat = en_S1004; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_GetTypeInfo); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_GetTypeInfo); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER ( pstmt->hdbc, retcode, hproc, en_GetTypeInfo, - (pstmt->dhstmt, fSqlType)) - - return _iodbcdm_cata_state_tr (hstmt, en_GetTypeInfo, retcode); -} - - -RETCODE SQL_API -SQLSpecialColumns ( - HSTMT hstmt, - UWORD fColType, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName, - UWORD fScope, - UWORD fNullable) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - if (fColType != SQL_BEST_ROWID && fColType != SQL_ROWVER) - { - sqlstat = en_S1097; - break; - } - - if (fScope != SQL_SCOPE_CURROW - && fScope != SQL_SCOPE_TRANSACTION - && fScope != SQL_SCOPE_SESSION) - { - sqlstat = en_S1098; - break; - } - - if (fNullable != SQL_NO_NULLS && fNullable != SQL_NULLABLE) - { - sqlstat = en_S1099; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_SpecialColumns); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_SpecialColumns); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_SpecialColumns, ( - pstmt->dhstmt, - fColType, - szTableQualifier, - cbTableQualifier, - szTableOwner, - cbTableOwner, - szTableName, - cbTableName, - fScope, - fNullable)) - - return _iodbcdm_cata_state_tr (hstmt, en_SpecialColumns, retcode); -} - - -RETCODE SQL_API -SQLStatistics ( - HSTMT hstmt, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName, - UWORD fUnique, - UWORD fAccuracy) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - if (fUnique != SQL_INDEX_UNIQUE && fUnique != SQL_INDEX_ALL) - { - sqlstat = en_S1100; - break; - } - - if (fAccuracy != SQL_ENSURE && fAccuracy != SQL_QUICK) - { - sqlstat = en_S1101; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_Statistics); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Statistics); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Statistics, ( - pstmt->dhstmt, - szTableQualifier, - cbTableQualifier, - szTableOwner, - cbTableOwner, - szTableName, - cbTableName, - fUnique, - fAccuracy)) - - return _iodbcdm_cata_state_tr (hstmt, en_Statistics, retcode); -} - - -RETCODE SQL_API -SQLTables ( - HSTMT hstmt, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName, - UCHAR FAR * szTableType, - SWORD cbTableType) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS) - || (cbTableType < 0 && cbTableType != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_Tables); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Tables); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Tables, ( - pstmt->dhstmt, - szTableQualifier, - cbTableQualifier, - szTableOwner, - cbTableOwner, - szTableName, - cbTableName, - szTableType, - cbTableType)) - - return _iodbcdm_cata_state_tr (hstmt, en_Tables, retcode); -} - - -RETCODE SQL_API -SQLColumnPrivileges ( - HSTMT hstmt, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName, - UCHAR FAR * szColumnName, - SWORD cbColumnName) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS) - || (cbColumnName < 0 && cbColumnName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_ColumnPrivileges); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ColumnPrivileges); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ColumnPrivileges, ( - pstmt->dhstmt, - szTableQualifier, - cbTableQualifier, - szTableOwner, - cbTableOwner, - szTableName, - cbTableName, - szColumnName, - cbColumnName)) - - return _iodbcdm_cata_state_tr (hstmt, en_ColumnPrivileges, retcode); -} - - -RETCODE SQL_API -SQLColumns ( - HSTMT hstmt, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName, - UCHAR FAR * szColumnName, - SWORD cbColumnName) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS) - || (cbColumnName < 0 && cbColumnName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_Columns); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Columns); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Columns, ( - pstmt->dhstmt, - szTableQualifier, - cbTableQualifier, - szTableOwner, - cbTableOwner, - szTableName, - cbTableName, - szColumnName, - cbColumnName)) - - return _iodbcdm_cata_state_tr (hstmt, en_Columns, retcode); -} - - -RETCODE SQL_API -SQLForeignKeys ( - HSTMT hstmt, - UCHAR FAR * szPkTableQualifier, - SWORD cbPkTableQualifier, - UCHAR FAR * szPkTableOwner, - SWORD cbPkTableOwner, - UCHAR FAR * szPkTableName, - SWORD cbPkTableName, - UCHAR FAR * szFkTableQualifier, - SWORD cbFkTableQualifier, - UCHAR FAR * szFkTableOwner, - SWORD cbFkTableOwner, - UCHAR FAR * szFkTableName, - SWORD cbFkTableName) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbPkTableQualifier < 0 && cbPkTableQualifier != SQL_NTS) - || (cbPkTableOwner < 0 && cbPkTableOwner != SQL_NTS) - || (cbPkTableName < 0 && cbPkTableName != SQL_NTS) - || (cbFkTableQualifier < 0 && cbFkTableQualifier != SQL_NTS) - || (cbFkTableOwner < 0 && cbFkTableOwner != SQL_NTS) - || (cbFkTableName < 0 && cbFkTableName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_ForeignKeys); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ForeignKeys); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ForeignKeys, ( - pstmt->dhstmt, - szPkTableQualifier, - cbPkTableQualifier, - szPkTableOwner, - cbPkTableOwner, - szPkTableName, - cbPkTableName, - szFkTableQualifier, - cbFkTableQualifier, - szFkTableOwner, - cbFkTableOwner, - szFkTableName, - cbFkTableName)) - - return _iodbcdm_cata_state_tr (hstmt, en_ForeignKeys, retcode); -} - - -RETCODE SQL_API -SQLPrimaryKeys ( - HSTMT hstmt, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_PrimaryKeys); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_PrimaryKeys); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_PrimaryKeys, ( - pstmt->dhstmt, - szTableQualifier, - cbTableQualifier, - szTableOwner, - cbTableOwner, - szTableName, - cbTableName)) - - return _iodbcdm_cata_state_tr (hstmt, en_PrimaryKeys, retcode); -} - - -RETCODE SQL_API -SQLProcedureColumns ( - HSTMT hstmt, - UCHAR FAR * szProcQualifier, - SWORD cbProcQualifier, - UCHAR FAR * szProcOwner, - SWORD cbProcOwner, - UCHAR FAR * szProcName, - SWORD cbProcName, - UCHAR FAR * szColumnName, - SWORD cbColumnName) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbProcQualifier < 0 && cbProcQualifier != SQL_NTS) - || (cbProcOwner < 0 && cbProcOwner != SQL_NTS) - || (cbProcName < 0 && cbProcName != SQL_NTS) - || (cbColumnName < 0 && cbColumnName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_ProcedureColumns); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ProcedureColumns); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ProcedureColumns, ( - pstmt->dhstmt, - szProcQualifier, - cbProcQualifier, - szProcOwner, - cbProcOwner, - szProcName, - cbProcName, - szColumnName, - cbColumnName)) - - return _iodbcdm_cata_state_tr (hstmt, en_ProcedureColumns, retcode); -} - - -RETCODE SQL_API -SQLProcedures ( - HSTMT hstmt, - UCHAR FAR * szProcQualifier, - SWORD cbProcQualifier, - UCHAR FAR * szProcOwner, - SWORD cbProcOwner, - UCHAR FAR * szProcName, - SWORD cbProcName) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbProcQualifier < 0 && cbProcQualifier != SQL_NTS) - || (cbProcOwner < 0 && cbProcOwner != SQL_NTS) - || (cbProcName < 0 && cbProcName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_Procedures); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Procedures); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Procedures, ( - pstmt->dhstmt, - szProcQualifier, - cbProcQualifier, - szProcOwner, - cbProcOwner, - szProcName, - cbProcName)) - - return _iodbcdm_cata_state_tr (hstmt, en_Procedures, retcode); -} - - -RETCODE SQL_API -SQLTablePrivileges ( - HSTMT hstmt, - UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, - SWORD cbTableOwner, - UCHAR FAR * szTableName, - SWORD cbTableName) -{ - - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if ((cbTableQualifier < 0 && cbTableQualifier != SQL_NTS) - || (cbTableOwner < 0 && cbTableOwner != SQL_NTS) - || (cbTableName < 0 && cbTableName != SQL_NTS)) - { - sqlstat = en_S1090; - break; - } - - retcode = _iodbcdm_cata_state_ok (hstmt, en_TablePrivileges); - - if (retcode != SQL_SUCCESS) - { - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_TablePrivileges); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_TablePrivileges, - (pstmt->dhstmt, szTableQualifier, cbTableQualifier, szTableOwner, - cbTableOwner, szTableName, cbTableName)) - - return _iodbcdm_cata_state_tr (hstmt, en_TablePrivileges, retcode); -} diff --git a/src/iodbc/config.h b/src/iodbc/config.h deleted file mode 100644 index 3f2bff3786..0000000000 --- a/src/iodbc/config.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * - * config.h - * - * $Id$ - * - * Configuration - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _CONFIG_H -#define _CONFIG_H - -#if !defined(WINDOWS) && !defined(WIN32_SYSTEM) -#define _UNIX_ - -#include "wx/setup.h" - -/* we have these definitions from configure */ -#if defined(HAVE_DLOPEN) - #define DLDAPI_SVR4_DLFCN -#elif define(HAVE_SHL_LOAD) - #define DLDAPI_HP_SHL -#endif - -#include -#include -#include -#include - -#define MEM_ALLOC(size) (malloc((size_t)(size))) -#define MEM_FREE(ptr) {if(ptr) free(ptr);} - -#define STRCPY(t, s) (strcpy((char*)(t), (char*)(s))) -#define STRNCPY(t,s,n) (strncpy((char*)(t), (char*)(s), (size_t)(n))) -#define STRCAT(t, s) (strcat((char*)(t), (char*)(s))) -#define STRNCAT(t,s,n) (strncat((char*)(t), (char*)(s), (size_t)(n))) -#define STREQ(a, b) (strcmp((char*)(a), (char*)(b)) == 0) -#define STRLEN(str) ((str)? strlen((char*)(str)):0) - -#define EXPORT -#define CALLBACK -#define FAR - -typedef signed short SSHOR; -typedef short WORD; -typedef long DWORD; - -typedef WORD WPARAM; -typedef DWORD LPARAM; -typedef int BOOL; -#endif /* _UNIX_ */ - -#if defined(WINDOWS) || defined(WIN32_SYSTEM) -#include -#include - -#ifdef _MSVC_ -#define MEM_ALLOC(size) (fmalloc((size_t)(size))) -#define MEM_FREE(ptr) ((ptr)? ffree((PTR)(ptr)):0)) -#define STRCPY(t, s) (fstrcpy((char FAR*)(t), (char FAR*)(s))) -#define STRNCPY(t,s,n) (fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n))) -#define STRLEN(str) ((str)? fstrlen((char FAR*)(str)):0) -#define STREQ(a, b) (fstrcmp((char FAR*)(a), (char FAR*)(b) == 0) -#endif - -#ifdef _BORLAND_ -#define MEM_ALLOC(size) (farmalloc((unsigned long)(size)) -#define MEM_FREE(ptr) ((ptr)? farfree((void far*)(ptr)):0) -#define STRCPY(t, s) (_fstrcpy((char FAR*)(t), (char FAR*)(s))) -#define STRNCPY(t,s,n) (_fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n))) -#define STRLEN(str) ((str)? _fstrlen((char FAR*)(str)):0) -#define STREQ(a, b) (_fstrcmp((char FAR*)(a), (char FAR*)(b) == 0) -#endif - -#endif /* WINDOWS */ - -#define SYSERR (-1) - -#ifndef NULL -#define NULL ((void FAR*)0UL) -#endif - -#endif diff --git a/src/iodbc/connect.c b/src/iodbc/connect.c deleted file mode 100644 index b444f77c5e..0000000000 --- a/src/iodbc/connect.c +++ /dev/null @@ -1,1241 +0,0 @@ -/* - * connect.c - * - * $Id$ - * - * Connect (load) driver - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -extern char* _iodbcdm_getkeyvalbydsn(); -extern char* _iodbcdm_getkeyvalinstr(); -extern RETCODE _iodbcdm_driverunload(); - -/* - * Following id string is a copyright mark. Removing(i.e. use - * souce code of this package without it or make it not appear - * in the final object file) or modifing it without permission - * from original author(kejin@empress.com) are copyright - * violation. - */ -static char sccsid[] - = "@(#)iODBC driver manager 2.5, Copyright(c) 1995 by Ke Jin"; - -/* - Load driver share library( or increase its reference count - * if it has already been loaded by another active connection) - * - Call driver's SQLAllocEnv() (for the first reference only) - * - Call driver's SQLAllocConnect() - * - Call driver's SQLSetConnectOption() (set login time out) - * - Increase the bookkeeping reference count - */ -static RETCODE -_iodbcdm_driverload ( - char FAR * path, - HDBC hdbc) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - GENV_t FAR *genv; - ENV_t FAR *penv = NULL; - HDLL hdll; - HPROC hproc; - RETCODE retcode = SQL_SUCCESS; - int sqlstat = en_00000; - - if (path == NULL || path[0] == '\0') - { - PUSHSQLERR (pdbc->herr, en_IM002); - - return SQL_ERROR; - } - - if (hdbc == SQL_NULL_HDBC || pdbc->genv == SQL_NULL_HENV) - { - return SQL_INVALID_HANDLE; - } - - genv = (GENV_t FAR *) pdbc->genv; - - /* This will either load the driver dll or increase its reference count */ - hdll = _iodbcdm_dllopen ((char FAR *) path); - - if (hdll == SQL_NULL_HDLL) - { - PUSHSYSERR (pdbc->herr, _iodbcdm_dllerror ()); - PUSHSQLERR (pdbc->herr, en_IM003); - return SQL_ERROR; - } - - penv = (ENV_t FAR *) (pdbc->henv); - - if (penv != NULL) - { - if (penv->hdll != hdll) - { - _iodbcdm_driverunload (hdbc); - } - else - { - /* - * this will not unload the driver but only decrease its internal - * reference count - */ - _iodbcdm_dllclose (hdll); - } - } - - if (penv == NULL) - { - /* - * find out whether this dll has already been loaded on another - * connection - */ - for (penv = (ENV_t FAR *) genv->henv; - penv != NULL; - penv = (ENV_t FAR *) penv->next) - { - if (penv->hdll == hdll) - { - /* - * this will not unload the driver but only decrease its internal - * reference count - */ - _iodbcdm_dllclose (hdll); - break; - } - } - - if (penv == NULL) - /* no connection attaching with this dll */ - { - int i; - - /* create a new dll env instance */ - penv = (ENV_t FAR *) MEM_ALLOC (sizeof (ENV_t)); - - if (penv == NULL) - { - _iodbcdm_dllclose (hdll); - - PUSHSQLERR (pdbc->herr, en_S1001); - - return SQL_ERROR; - } - - for (i = 0; i < SQL_EXT_API_LAST + 1; i++) - { - (penv->dllproc_tab)[i] = SQL_NULL_HPROC; - } - - pdbc->henv = penv; - penv->hdll = hdll; - - /* call driver's SQLAllocHandle() or SQLAllocEnv() */ - -#if (ODBCVER >= 0x0300) - hproc = _iodbcdm_getproc (hdbc, en_AllocHandle); - - if (hproc) - { - CALL_DRIVER (hdbc, retcode, hproc, en_AllocHandle, - (SQL_HANDLE_ENV, SQL_NULL_HANDLE, &(penv->dhenv))) - } - else /* try driver's SQLAllocEnv() */ -#endif - { - hproc = _iodbcdm_getproc (hdbc, en_AllocEnv); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM004; - } - else - { - CALL_DRIVER (hdbc, retcode, hproc, - en_AllocEnv, (&(penv->dhenv))) - } - } - - if (retcode == SQL_ERROR) - { - sqlstat = en_IM004; - } - - if (sqlstat != en_00000) - { - _iodbcdm_dllclose (hdll); - MEM_FREE (penv); - PUSHSQLERR (pdbc->herr, en_IM004); - - return SQL_ERROR; - } - - /* insert into dll env list */ - penv->next = (ENV_t FAR *) genv->henv; - genv->henv = penv; - - /* initiate this new env entry */ - penv->refcount = 0; /* we will increase it after - * driver's SQLAllocConnect() - * success - */ - } - - pdbc->henv = penv; - - if (pdbc->dhdbc == SQL_NULL_HDBC) - { - -#if (ODBCVER >= 0x0300) - hproc = _iodbcdm_getproc (hdbc, en_AllocHandle); - - if (hproc) - { - CALL_DRIVER (hdbc, retcode, hproc, en_AllocHandle, - (SQL_HANDLE_DBC, penv->dhenv, &(pdbc->dhdbc))) - } - else -#endif - - { - hproc = _iodbcdm_getproc (hdbc, en_AllocConnect); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM005; - } - else - { - CALL_DRIVER (hdbc, retcode, hproc, - en_AllocConnect, (penv->dhenv, &(pdbc->dhdbc))) - } - } - - if (retcode == SQL_ERROR) - { - sqlstat = en_IM005; - } - - if (sqlstat != en_00000) - { - _iodbcdm_driverunload (hdbc); - - pdbc->dhdbc = SQL_NULL_HDBC; - PUSHSQLERR (pdbc->herr, en_IM005); - - return SQL_ERROR; - } - } - - pdbc->henv = penv; - penv->refcount++; /* bookkeeping reference count on this driver */ - } - - /* driver's login timeout option must been set before - * its SQLConnect() call */ - if (pdbc->login_timeout != 0UL) - { - hproc = _iodbcdm_getproc (hdbc, en_SetConnectOption); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM004; - } - else - { - CALL_DRIVER (hdbc, retcode, hproc, - en_SetConnectOption, ( - pdbc->dhdbc, - SQL_LOGIN_TIMEOUT, - pdbc->login_timeout)) - - if (retcode == SQL_ERROR) - { - PUSHSQLERR (pdbc->herr, en_IM006); - - return SQL_SUCCESS_WITH_INFO; - } - } - } - - return SQL_SUCCESS; -} - - -/* - Call driver's SQLFreeConnect() - * - Call driver's SQLFreeEnv() ( for the last reference only) - * - Unload the share library( or decrease its reference - * count if it is not the last referenct ) - * - decrease bookkeeping reference count - * - state transition to allocated - */ -RETCODE -_iodbcdm_driverunload (HDBC hdbc) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - ENV_t FAR *penv; - ENV_t FAR *tpenv; - GENV_t FAR *genv; - HPROC hproc; - RETCODE retcode = SQL_SUCCESS; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* no pointer check will be performed in this function */ - penv = (ENV_t FAR *) pdbc->henv; - genv = (GENV_t FAR *) pdbc->genv; - - if (penv == NULL || penv->hdll == SQL_NULL_HDLL) - { - return SQL_SUCCESS; - } - -#if (ODBCVER >= 0x0300) - hproc = _iodbcdm_getproc (hdbc, en_FreeHandle); - - if (hproc) - { - CALL_DRIVER (hdbc, retcode, hproc, en_FreeHandle, - (SQL_HANDLE_DBC, pdbc->dhdbc)) - } - else -#endif - - { - hproc = _iodbcdm_getproc (hdbc, en_FreeConnect); - - if (hproc != SQL_NULL_HPROC) - { - CALL_DRIVER (hdbc, retcode, hproc, - en_FreeConnect, (pdbc->dhdbc)) - - pdbc->dhdbc = SQL_NULL_HDBC; - } - } - - penv->refcount--; - - if (!penv->refcount) - /* no other connections still attaching with this driver */ - { - -#if (ODBCVER >= 0x0300) - hproc = _iodbcdm_getproc (hdbc, en_FreeHandle); - - if (hproc) - { - CALL_DRIVER (hdbc, retcode, hproc, en_FreeHandle, - (SQL_HANDLE_ENV, penv->dhenv)) - } - else -#endif - - { - hproc = _iodbcdm_getproc (hdbc, en_FreeEnv); - - if (hproc != SQL_NULL_HPROC) - { - CALL_DRIVER (hdbc, retcode, hproc, en_FreeEnv, - (penv->dhenv)) - - penv->dhenv = SQL_NULL_HENV; - } - } - - _iodbcdm_dllclose (penv->hdll); - - penv->hdll = SQL_NULL_HDLL; - - for (tpenv = (ENV_t FAR *) genv->henv; - tpenv != NULL; - tpenv = (ENV_t FAR *) penv->next) - { - if (tpenv == penv) - { - genv->henv = penv->next; - break; - } - - if (tpenv->next == penv) - { - tpenv->next = penv->next; - break; - } - } - - MEM_FREE (penv); - } - - pdbc->henv = SQL_NULL_HENV; - pdbc->hstmt = SQL_NULL_HSTMT; - /* pdbc->herr = SQL_NULL_HERR; - -- delay to DM's SQLFreeConnect() */ - pdbc->dhdbc = SQL_NULL_HDBC; - pdbc->state = en_dbc_allocated; - - /* set connect options to default values */ - /********** - pdbc->access_mode = SQL_MODE_DEFAULT; - pdbc->autocommit = SQL_AUTOCOMMIT_DEFAULT; - pdbc->login_timeout = 0UL; - **********/ - pdbc->odbc_cursors = SQL_CUR_DEFAULT; - pdbc->packet_size = 0UL; - pdbc->quiet_mode = (UDWORD) NULL; - pdbc->txn_isolation = SQL_TXN_READ_UNCOMMITTED; - - if (pdbc->current_qualifier != NULL) - { - MEM_FREE (pdbc->current_qualifier); - pdbc->current_qualifier = NULL; - } - - return SQL_SUCCESS; -} - - -static RETCODE -_iodbcdm_dbcdelayset (HDBC hdbc) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - ENV_t FAR *penv; - HPROC hproc; - RETCODE retcode = SQL_SUCCESS; - RETCODE ret; - - penv = pdbc->henv; - - hproc = _iodbcdm_getproc (hdbc, en_SetConnectOption); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_IM006); - - return SQL_SUCCESS_WITH_INFO; - } - - if (pdbc->access_mode != SQL_MODE_DEFAULT) - { - CALL_DRIVER (hdbc, ret, hproc, - en_SetConnectOption, ( - SQL_ACCESS_MODE, - pdbc->access_mode)) - - retcode |= ret; - } - - if (pdbc->autocommit != SQL_AUTOCOMMIT_DEFAULT) - { - CALL_DRIVER (hdbc, ret, hproc, - en_SetConnectOption, ( - pdbc->dhdbc, - SQL_AUTOCOMMIT, - pdbc->autocommit)) - - retcode |= ret; - } - - if (pdbc->current_qualifier != NULL) - { - CALL_DRIVER (hdbc, ret, hproc, - en_SetConnectOption, ( - pdbc->dhdbc, - SQL_CURRENT_QUALIFIER, - pdbc->current_qualifier)) - - retcode |= ret; - } - - if (pdbc->packet_size != 0UL) - { - CALL_DRIVER (hdbc, ret, hproc, - en_SetConnectOption, ( - pdbc->dhdbc, - SQL_PACKET_SIZE, - pdbc->packet_size)) - - retcode |= ret; - } - - if (pdbc->quiet_mode != (UDWORD) NULL) - { - CALL_DRIVER (hdbc, ret, hproc, - en_SetConnectOption, ( - pdbc->dhdbc, - SQL_QUIET_MODE, - pdbc->quiet_mode)) - - retcode |= ret; - } - - if (pdbc->txn_isolation != SQL_TXN_READ_UNCOMMITTED) - { - CALL_DRIVER (hdbc, ret, hproc, - en_SetConnectOption, ( - pdbc->dhdbc, - SQL_TXN_ISOLATION, - pdbc->txn_isolation)) - } - - /* check error code for driver's SQLSetConnectOption() call */ - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - { - PUSHSQLERR (pdbc->herr, en_IM006); - - retcode = SQL_ERROR; - } - - /* get cursor behavior on transaction commit or rollback */ - hproc = _iodbcdm_getproc (hdbc, en_GetInfo); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_01000); - - return retcode; - } - - CALL_DRIVER (hdbc, ret, hproc, - en_GetInfo, ( - pdbc->dhdbc, - SQL_CURSOR_COMMIT_BEHAVIOR, - (PTR) & (pdbc->cb_commit), - sizeof (pdbc->cb_commit), - NULL)) - - retcode |= ret; - - CALL_DRIVER (hdbc, ret, hproc, - en_GetInfo, ( - pdbc->dhdbc, - SQL_CURSOR_ROLLBACK_BEHAVIOR, - (PTR) & (pdbc->cb_rollback), - sizeof (pdbc->cb_rollback), - NULL)) - - retcode |= ret; - - if (retcode != SQL_SUCCESS - && retcode != SQL_SUCCESS_WITH_INFO) - { - return SQL_ERROR; - } - - return retcode; -} - - -static RETCODE -_iodbcdm_settracing (HDBC hdbc, char *dsn, int dsnlen) -{ - char buf[256]; - char *ptr; - RETCODE setopterr = SQL_SUCCESS; - - /* Get Driver's DLL path from specificed or default dsn section */ - ptr = _iodbcdm_getkeyvalbydsn (dsn, dsnlen, "TraceFile", - (char FAR *) buf, sizeof (buf)); - - if (ptr == NULL || ptr[0] == '\0') - { - ptr = (char FAR *) (SQL_OPT_TRACE_FILE_DEFAULT); - } - - setopterr |= SQLSetConnectOption (hdbc, SQL_OPT_TRACEFILE, (UDWORD) (ptr)); - - ptr = _iodbcdm_getkeyvalbydsn (dsn, dsnlen, "Trace", - (char FAR *) buf, sizeof (buf)); - - if (ptr != NULL) - { - UDWORD opt = (UDWORD) (-1L); - - if (STREQ (ptr, "ON") - || STREQ (ptr, "On") - || STREQ (ptr, "on") - || STREQ (ptr, "1")) - { - opt = SQL_OPT_TRACE_ON; - } - - if (STREQ (ptr, "OFF") - || STREQ (ptr, "Off") - || STREQ (ptr, "off") - || STREQ (ptr, "0")) - { - opt = SQL_OPT_TRACE_OFF; - } - - if (opt != (UDWORD) (-1L)) - { - setopterr |= SQLSetConnectOption (hdbc, - SQL_OPT_TRACE, opt); - } - } - - return setopterr; -} - - -RETCODE SQL_API -SQLConnect ( - HDBC hdbc, - UCHAR FAR * szDSN, - SWORD cbDSN, - UCHAR FAR * szUID, - SWORD cbUID, - UCHAR FAR * szAuthStr, - SWORD cbAuthStr) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - RETCODE retcode = SQL_SUCCESS; - RETCODE setopterr = SQL_SUCCESS; - char driver[1024] = {'\0'}; /* MS SDK Guide - * specifies driver - * path can't longer - * than 255. */ - char *ptr; - HPROC hproc; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check arguments */ - if ((cbDSN < 0 && cbDSN != SQL_NTS) - || (cbUID < 0 && cbUID != SQL_NTS) - || (cbAuthStr < 0 && cbAuthStr != SQL_NTS) - || (cbDSN > SQL_MAX_DSN_LENGTH)) - { - PUSHSQLERR (pdbc->herr, en_S1090); - - return SQL_ERROR; - } - - if (szDSN == NULL || cbDSN == 0) - { - PUSHSQLERR (pdbc->herr, en_IM002); - - return SQL_ERROR; - } - - /* check state */ - if (pdbc->state != en_dbc_allocated) - { - PUSHSQLERR (pdbc->herr, en_08002); - - return SQL_ERROR; - } - - setopterr |= _iodbcdm_settracing (hdbc, - (char *) szDSN, cbDSN); - - ptr = _iodbcdm_getkeyvalbydsn (szDSN, cbDSN, "Driver", - (char FAR *) driver, sizeof (driver)); - - if (ptr == NULL) - /* No specified or default dsn section or - * no driver specification in this dsn section */ - { - PUSHSQLERR (pdbc->herr, en_IM002); - - return SQL_ERROR; - } - - retcode = _iodbcdm_driverload (driver, hdbc); - - switch (retcode) - { - case SQL_SUCCESS: - break; - - case SQL_SUCCESS_WITH_INFO: - setopterr = SQL_ERROR; - /* unsuccessed in calling driver's - * SQLSetConnectOption() to set login - * timeout. - */ - break; - - default: - return retcode; - } - - hproc = _iodbcdm_getproc (hdbc, en_Connect); - - if (hproc == SQL_NULL_HPROC) - { - _iodbcdm_driverunload (hdbc); - - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_Connect, ( - pdbc->dhdbc, - szDSN, cbDSN, - szUID, cbUID, - szAuthStr, cbAuthStr)) - - if (retcode != SQL_SUCCESS - && retcode != SQL_SUCCESS_WITH_INFO) - { - /* not unload driver for retrive error - * messge from driver */ - /********* - _iodbcdm_driverunload( hdbc ); - **********/ - - return retcode; - } - - /* state transition */ - pdbc->state = en_dbc_connected; - - /* do delaid option setting */ - setopterr |= _iodbcdm_dbcdelayset (hdbc); - - if (setopterr != SQL_SUCCESS) - { - return SQL_SUCCESS_WITH_INFO; - } - - return retcode; -} - - -RETCODE SQL_API -SQLDriverConnect ( - HDBC hdbc, - HWND hwnd, - UCHAR FAR * szConnStrIn, - SWORD cbConnStrIn, - UCHAR FAR * szConnStrOut, - SWORD cbConnStrOutMax, - SWORD FAR * pcbConnStrOut, - UWORD fDriverCompletion) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - HDLL hdll; - char FAR *drv; - char drvbuf[1024]; - char FAR *dsn; - char dsnbuf[SQL_MAX_DSN_LENGTH + 1]; - UCHAR cnstr2drv[1024]; - - HPROC hproc; - HPROC dialproc; - - int sqlstat = en_00000; - RETCODE retcode = SQL_SUCCESS; - RETCODE setopterr = SQL_SUCCESS; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check arguments */ - if ((cbConnStrIn < 0 && cbConnStrIn != SQL_NTS) - || cbConnStrOutMax < 0) - { - PUSHSQLERR (pdbc->herr, en_S1090); - - return SQL_ERROR; - } - - /* check state */ - if (pdbc->state != en_dbc_allocated) - { - PUSHSQLERR (pdbc->herr, en_08002); - - return SQL_ERROR; - } - - drv = _iodbcdm_getkeyvalinstr (szConnStrIn, cbConnStrIn, - "DRIVER", drvbuf, sizeof (drvbuf)); - - dsn = _iodbcdm_getkeyvalinstr (szConnStrIn, cbConnStrIn, - "DSN", dsnbuf, sizeof (dsnbuf)); - - switch (fDriverCompletion) - { - case SQL_DRIVER_NOPROMPT: - break; - - case SQL_DRIVER_COMPLETE: - case SQL_DRIVER_COMPLETE_REQUIRED: - if (dsn != NULL || drv != NULL) - { - break; - } - /* fall to next case */ - case SQL_DRIVER_PROMPT: - /* Get data source dialog box function from - * current executable */ - hdll = _iodbcdm_dllopen ((char FAR *) NULL); - dialproc = _iodbcdm_dllproc (hdll, - "_iodbcdm_drvconn_dialbox"); - - if (dialproc == SQL_NULL_HPROC) - { - sqlstat = en_IM008; - break; - } - - retcode = dialproc ( - hwnd, /* window or display handle */ - dsnbuf, /* input/output dsn buf */ - sizeof (dsnbuf), /* buf size */ - &sqlstat); /* error code */ - - if (retcode != SQL_SUCCESS) - { - break; - } - - if (cbConnStrIn == SQL_NTS) - { - cbConnStrIn = STRLEN (szConnStrIn); - } - - dsn = dsnbuf; - - if (dsn[0] == '\0') - { - dsn = "default"; - } - - if (cbConnStrIn > sizeof (cnstr2drv) - - STRLEN (dsn) - STRLEN ("DSN=;") - 1) - { - sqlstat = en_S1001; /* a lazy way to avoid - * using heap memory */ - break; - } - - sprintf (cnstr2drv, "DSN=%s;", dsn); - cbConnStrIn += STRLEN (cnstr2drv); - STRNCAT (cnstr2drv, szConnStrIn, cbConnStrIn); - szConnStrIn = cnstr2drv; - break; - - default: - sqlstat = en_S1110; - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pdbc->herr, sqlstat); - - return SQL_ERROR; - } - - if (dsn == NULL || dsn[0] == '\0') - { - dsn = "default"; - } - else - /* if you want tracing, you must use a DSN */ - { - setopterr |= _iodbcdm_settracing (hdbc, - (char *) dsn, SQL_NTS); - } - - if (drv == NULL || drv[0] == '\0') - { - drv = _iodbcdm_getkeyvalbydsn (dsn, SQL_NTS, "Driver", - drvbuf, sizeof (drvbuf)); - } - - if (drv == NULL) - { - PUSHSQLERR (pdbc->herr, en_IM002); - - return SQL_ERROR; - } - - retcode = _iodbcdm_driverload (drv, hdbc); - - switch (retcode) - { - case SQL_SUCCESS: - break; - - case SQL_SUCCESS_WITH_INFO: - setopterr = SQL_ERROR; - /* unsuccessed in calling driver's - * SQLSetConnectOption() to set login - * timeout. - */ - break; - - default: - return retcode; - } - - hproc = _iodbcdm_getproc (hdbc, en_DriverConnect); - - if (hproc == SQL_NULL_HPROC) - { - _iodbcdm_driverunload (hdbc); - - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_DriverConnect, ( - pdbc->dhdbc, hwnd, - szConnStrIn, cbConnStrIn, - szConnStrOut, cbConnStrOutMax, - pcbConnStrOut, fDriverCompletion)) - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - { - /* don't unload driver here for retrive - * error message from driver */ - /******** - _iodbcdm_driverunload( hdbc ); - *********/ - - return retcode; - } - - /* state transition */ - pdbc->state = en_dbc_connected; - - /* do delaid option setting */ - setopterr |= _iodbcdm_dbcdelayset (hdbc); - - if (setopterr != SQL_SUCCESS) - { - return SQL_SUCCESS_WITH_INFO; - } - - return retcode; -} - - -RETCODE SQL_API -SQLBrowseConnect ( - HDBC hdbc, - UCHAR FAR * szConnStrIn, - SWORD cbConnStrIn, - UCHAR FAR * szConnStrOut, - SWORD cbConnStrOutMax, - SWORD FAR * pcbConnStrOut) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - char FAR *drv; - char drvbuf[1024]; - char FAR *dsn; - char dsnbuf[SQL_MAX_DSN_LENGTH + 1]; - - HPROC hproc; - - RETCODE retcode = SQL_SUCCESS; - RETCODE setopterr = SQL_SUCCESS; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check arguments */ - if ((cbConnStrIn < 0 && cbConnStrIn != SQL_NTS) || cbConnStrOutMax < 0) - { - PUSHSQLERR (pdbc->herr, en_S1090); - - return SQL_ERROR; - } - - if (pdbc->state == en_dbc_allocated) - { - drv = _iodbcdm_getkeyvalinstr (szConnStrIn, cbConnStrIn, - "DRIVER", drvbuf, sizeof (drvbuf)); - - dsn = _iodbcdm_getkeyvalinstr (szConnStrIn, cbConnStrIn, - "DSN", dsnbuf, sizeof (dsnbuf)); - - if (dsn == NULL || dsn[0] == '\0') - { - dsn = "default"; - } - else - /* if you want tracing, you must use a DSN */ - { - setopterr |= _iodbcdm_settracing (hdbc, - (char *) dsn, SQL_NTS); - } - - if (drv == NULL || drv[0] == '\0') - { - drv = _iodbcdm_getkeyvalbydsn (dsn, SQL_NTS, "Driver", - drvbuf, sizeof (drvbuf)); - } - - if (drv == NULL) - { - PUSHSQLERR (pdbc->herr, en_IM002); - - return SQL_ERROR; - } - - retcode = _iodbcdm_driverload (drv, hdbc); - - switch (retcode) - { - case SQL_SUCCESS: - break; - - case SQL_SUCCESS_WITH_INFO: - setopterr = SQL_ERROR; - /* unsuccessed in calling driver's - * SQLSetConnectOption() to set login - * timeout. - */ - break; - - default: - return retcode; - } - } - else if (pdbc->state != en_dbc_needdata) - { - PUSHSQLERR (pdbc->herr, en_08002); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (hdbc, en_BrowseConnect); - - if (hproc == SQL_NULL_HPROC) - { - _iodbcdm_driverunload (hdbc); - - pdbc->state = en_dbc_allocated; - - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_BrowseConnect, ( - pdbc->dhdbc, - szConnStrIn, cbConnStrIn, - szConnStrOut, cbConnStrOutMax, - pcbConnStrOut)) - - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - pdbc->state = en_dbc_connected; - setopterr |= _iodbcdm_dbcdelayset (hdbc); - if (setopterr != SQL_SUCCESS) - { - retcode = SQL_SUCCESS_WITH_INFO; - } - break; - - case SQL_NEED_DATA: - pdbc->state = en_dbc_needdata; - break; - - case SQL_ERROR: - pdbc->state = en_dbc_allocated; - /* but the driver will not unloaded - * to allow application retrive err - * message from driver - */ - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLDisconnect (HDBC hdbc) -{ - DBC_t FAR *pdbc = (DBC_t *) hdbc; - STMT_t FAR *pstmt; - RETCODE retcode; - HPROC hproc; - - int sqlstat = en_00000; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check hdbc state */ - if (pdbc->state == en_dbc_allocated) - { - sqlstat = en_08003; - } - - /* check stmt(s) state */ - for (pstmt = (STMT_t FAR *) pdbc->hstmt; - pstmt != NULL && sqlstat == en_00000; - pstmt = (STMT_t FAR *) pstmt->next) - { - if (pstmt->state >= en_stmt_needdata - || pstmt->asyn_on != en_NullProc) - /* In this case one need to call - * SQLCancel() first */ - { - sqlstat = en_S1010; - } - } - - if (sqlstat == en_00000) - { - hproc = _iodbcdm_getproc (hdbc, en_Disconnect); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pdbc->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_Disconnect, ( - pdbc->dhdbc)) - - if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) - { - /* diff from MS specs. We disallow - * driver SQLDisconnect() return - * SQL_SUCCESS_WITH_INFO and post - * error message. - */ - retcode = SQL_SUCCESS; - } - else - { - return retcode; - } - - /* free all statement handle(s) on this connection */ - for (; pdbc->hstmt;) - { - _iodbcdm_dropstmt (pdbc->hstmt); - } - - /* state transition */ - if (retcode == SQL_SUCCESS) - { - pdbc->state = en_dbc_allocated; - } - - return retcode; -} - - -RETCODE SQL_API -SQLNativeSql ( - HDBC hdbc, - UCHAR FAR * szSqlStrIn, - SDWORD cbSqlStrIn, - UCHAR FAR * szSqlStr, - SDWORD cbSqlStrMax, - SDWORD FAR * pcbSqlStr) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - HPROC hproc; - int sqlstat = en_00000; - RETCODE retcode; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - if (szSqlStrIn == NULL) - { - sqlstat = en_S1009; - } - else if (cbSqlStrIn < 0 && cbSqlStrIn != SQL_NTS) - { - sqlstat = en_S1090; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pdbc->herr, sqlstat); - - return SQL_ERROR; - } - - /* check state */ - if (pdbc->state <= en_dbc_needdata) - { - PUSHSQLERR (pdbc->herr, en_08003); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (hdbc, en_NativeSql); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_NativeSql, - (pdbc->dhdbc, szSqlStrIn, cbSqlStrIn, szSqlStr, cbSqlStrMax, pcbSqlStr)) - - return retcode; -} diff --git a/src/iodbc/dlf.c b/src/iodbc/dlf.c deleted file mode 100644 index 46cf232907..0000000000 --- a/src/iodbc/dlf.c +++ /dev/null @@ -1,612 +0,0 @@ -/* - * dlf.c - * - * $Id$ - * - * Dynamic Library Loader (mapping to SVR4) - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "dlf.h" -#include - -#ifdef DLDAPI_DEFINED -#undef DLDAPI_DEFINED -#endif - -#ifdef DLDAPI_SVR4_DLFCN -#define DLDAPI_DEFINED -static char sccsid[] = "@(#)dynamic load interface -- SVR4 dlfcn"; -#endif - -/********************************* - * - * HP/UX - * - *********************************/ - -#ifdef DLDAPI_HP_SHL -#define DLDAPI_DEFINED -#include - -static char sccsid[] = "@(#)dynamic load interface -- HP/UX dl(shl)"; - -void * -dlopen (char *path, int mode) -{ - return (void *) shl_load ((char *) (path), BIND_DEFERRED, 0L); -} - - -void * -dlsym (void *hdll, char *sym) -{ - void *symaddr = 0; - int ret; - - if (!hdll) - hdll = (void *) PROG_HANDLE; - - /* Remember, a driver may export calls as function pointers - * (i.e. with type TYPE_DATA) rather than as functions - * (i.e. with type TYPE_PROCEDURE). Thus, to be safe, we - * uses TYPE_UNDEFINED to cover all of them. - */ - ret = shl_findsym ((shl_t *) & hdll, sym, TYPE_UNDEFINED, &symaddr); - - if (ret == -1) - return 0; - - return symaddr; -} - - -char * -dlerror () -{ - extern char *strerror (); - - return strerror (errno); -} - - -int -dlclose (void *hdll) -{ - return shl_unload ((shl_t) hdll); -} -#endif /* end of HP/UX Seection */ - - -/********************************* - * - * IBM AIX - * - *********************************/ - -#ifdef DLDAPI_AIX_LOAD -#define DLDAPI_DEFINED -#include -#include -#include -#include - -/* - * Following id sting is a copyright mark. Removing(i.e. use the - * source code in this .c file without include it or make it not - * appear in the final object file of AIX platform) or modifing - * it without permission from original author(kejin@empress.com) - * are copyright violation. - */ -static char sccsid[] -= "@(#)dynamic load interface, Copyright(c) 1995 by Ke Jin"; - -#ifndef HTAB_SIZE -#define HTAB_SIZE 256 -#endif - -#define FACTOR 0.618039887 /* i.e. (sqrt(5) - 1)/2 */ - -#ifndef ENTRY_SYM -#define ENTRY_SYM ".__start" /* default entry point for aix */ -#endif - -typedef struct slot_s - { - char *sym; - long fdesc[3]; /* 12 bytes function descriptor */ - struct slot_s *next; - } -slot_t; - -/* Note: on AIX, a function pointer actually points to a - * function descriptor, a 12 bytes data. The first 4 bytes - * is the virtual address of the function. The next 4 bytes - * is the virtual address of TOC (Table of Contents) of the - * object module the function belong to. The last 4 bytes - * are always 0 for C and Fortran functions. Every object - * module has an entry point (which can be specified at link - * time by -e ld option). iODBC driver manager requires ODBC - * driver shared library always use the default entry point - * (so you shouldn't use -e ld option when creating a driver - * share library). load() returns the function descriptor of - * a module's entry point. From which we can calculate function - * descriptors of other functions in the same module by using - * the fact that the load() doesn't change the relative - * offset of functions to their module entry point(i.e the - * offset in memory loaded by load() will be as same as in - * the module library file). - */ - -typedef slot_t *hent_t; -typedef struct nlist nlist_t; -typedef struct stat stat_t; - -typedef struct obj - { - int dev; /* device id */ - int ino; /* inode number */ - char *path; /* file name */ - int (*pentry) (); /* entry point of this share library */ - int refn; /* number of reference */ - hent_t htab[HTAB_SIZE]; - struct obj * next; - } -obj_t; - -static char *errmsg = 0; - -static void -init_htab (hent_t * ht) -/* initate a hashing table */ -{ - int i; - - for (i = 0; i < HTAB_SIZE; i++) - ht[i] = (slot_t *) 0; - - return; -} - - -static void -clean_htab (hent_t * ht) -/* free all slots */ -{ - int i; - slot_t *ent; - slot_t *tent; - - for (i = 0; i < HTAB_SIZE; i++) - { - for (ent = ht[i]; ent;) - { - tent = ent->next; - - free (ent->sym); - free (ent); - - ent = tent; - } - - ht[i] = 0; - } - - return; -} - - -static int -hash (char *sym) -{ - int a, key; - double f; - - if (!sym || !*sym) - return 0; - - for (key = *sym; *sym; sym++) - { - key += *sym; - a = key; - - key = (int) ((a << 8) + (key >> 8)); - key = (key > 0) ? key : -key; - } - - f = key * FACTOR; - a = (int) f; - - return (int) ((HTAB_SIZE - 1) * (f - a)); -} - - -static hent_t -search (hent_t * htab, char *sym) -/* search hashing table to find a matched slot */ -{ - int key; - slot_t *ent; - - key = hash (sym); - - for (ent = htab[key]; ent; ent = ent->next) - { - if (!strcmp (ent->sym, sym)) - return ent; - } - - return 0; /* no match */ -} - - -static void -insert (hent_t * htab, slot_t * ent) -/* insert a new slot to hashing table */ -{ - int key; - - key = hash (ent->sym); - - ent->next = htab[key]; - htab[key] = ent; - - return; -} - - -static slot_t * -slot_alloc (char *sym) -/* allocate a new slot with symbol */ -{ - slot_t *ent; - - ent = (slot_t *) malloc (sizeof (slot_t)); - - ent->sym = (char *) malloc (strlen (sym) + 1); - - if (!ent->sym) - { - free (ent); - return 0; - } - - strcpy (ent->sym, sym); - - return ent; -} - - -static obj_t *obj_list = 0; - -void * -dlopen (char *file, int mode) -{ - stat_t st; - obj_t *pobj; - char buf[1024]; - - if (!file || !*file) - { - errno = EINVAL; - return 0; - } - - errno = 0; - errmsg = 0; - - if (stat (file, &st)) - return 0; - - for (pobj = obj_list; pobj; pobj = pobj->next) - /* find a match object */ - { - if (pobj->ino == st.st_ino - && pobj->dev == st.st_dev) - { - /* found a match. increase its - * reference count and return - * its address */ - pobj->refn++; - return pobj; - } - } - - pobj = (obj_t *) malloc (sizeof (obj_t)); - - if (!pobj) - return 0; - - pobj->path = (char *) malloc (strlen (file) + 1); - - if (!pobj->path) - { - free (pobj); - return 0; - } - - strcpy (pobj->path, file); - - pobj->dev = st.st_dev; - pobj->ino = st.st_ino; - pobj->refn = 1; - - pobj->pentry = (int (*)()) load (file, 0, 0); - - if (!pobj->pentry) - { - free (pobj->path); - free (pobj); - return 0; - } - - init_htab (pobj->htab); - - pobj->next = obj_list; - obj_list = pobj; - - return pobj; -} - - -int -dlclose (void *hobj) -{ - obj_t *pobj = (obj_t *) hobj; - obj_t *tpobj; - int match = 0; - - if (!hobj) - { - errno = EINVAL; - return -1; - } - - errno = 0; - errmsg = 0; - - if (pobj == obj_list) - { - pobj->refn--; - - if (pobj->refn) - return 0; - - match = 1; - obj_list = pobj->next; - } - - for (tpobj = obj_list; !match && tpobj; tpobj = tpobj->next) - { - if (tpobj->next == pobj) - { - pobj->refn--; - - if (pobj->refn) - return 0; - - match = 1; - tpobj->next = pobj->next; - } - } - - if (match) - { - unload ((void *) (pobj->pentry)); - clean_htab (pobj->htab); - free (pobj->path); - free (pobj); - } - - return 0; -} - - -char * -dlerror () -{ - extern char *sys_errlist[]; - - if (!errmsg || !errmsg[0]) - { - if (errno >= 0) - return sys_errlist[errno]; - - return ""; - } - - return errmsg; -} - - -void * -dlsym (void *hdl, char *sym) -{ - nlist_t nl[3]; - obj_t *pobj = (obj_t *) hdl; - slot_t *ent; - int (*fp) (); - long lbuf[3]; - - if (!hdl || !(pobj->htab) || !sym || !*sym) - { - errno = EINVAL; - return 0; - } - - errno = 0; - errmsg = 0; - - ent = search (pobj->htab, sym); - - if (ent) - return ent->fdesc; - -#define n_name _n._n_name - - nl[0].n_name = ENTRY_SYM; - nl[1].n_name = sym; - nl[2].n_name = 0; - - /* There is a potential problem here. If application - * did not pass a full path name, and changed the - * working directory after the load(), then nlist() - * will be unable to open the original shared library - * file to resolve the symbols. there are 3 ways to working - * round this: 1. convert to full pathname in driver - * manager. 2. applications always pass driver's full - * path name. 3. if driver itself don't support - * SQLGetFunctions(), call it with SQL_ALL_FUNCTIONS - * as flag immidately after SQLConnect(), SQLDriverConnect() - * and SQLBrowseConnect() to force the driver manager - * resolving all will be used symbols. - */ - if (nlist (pobj->path, nl) == -1) - return 0; - - if (!nl[0].n_type && !nl[0].n_value) - { - errmsg = "can't locate module entry symbol"; - return 0; - } - - /* Note: On AIX 3.x if the object library is not - * built with -g compiling option, .n_type field - * is always 0. While on 4.x it will be 32. - * On AIX 4.x, if the symbol is a entry point, - * n_value will be 0. However, one thing is for sure - * that if a symbol is not existance in the file, - * both .n_type and .n_value would be 0. - */ - - if (!nl[1].n_type && !nl[1].n_value) - { - errmsg = "symbol not existance in this module"; - return 0; - } - - ent = slot_alloc (sym); - - if (!ent) - return 0; - - /* catch it with a slot in the hashing table */ - insert (pobj->htab, ent); - - memcpy (ent->fdesc, pobj->pentry, sizeof (ent->fdesc)); - - /* now ent->fdesc[0] is the virtual address of entry point - * and ent->fdesc[1] is the TOC of the module - */ - - /* let's calculate the virtual address of the symbol - * by adding a relative offset getting from the module - * file symbol table, i.e - * - * functin virtual address = entry point virtual address + - * + ( function offset in file - entry point offset in file ) - */ - - (ent->fdesc)[0] = (ent->fdesc)[0] + - (nl[1].n_value - nl[0].n_value); - - /* return the function descriptor */ - return ent->fdesc; -} -#endif /* end of IBM AIX Section */ - - -/********************************* - * - * Windows 3.x, 95, NT - * - *********************************/ - -#ifdef DLDAPI_WINDOWS -#define DLDAPI_DEFINED -#include - -void FAR * -dlopen (char FAR * dll, int mode) -{ - HINSTANCE hint; - - if (dll == NULL) - { - return GetWindowWord (NULL, GWW_HINSTANCE); - } - - hint = LoadLibrary (dll); - - if (hint < HINSTANCE_ERROR) - { - return NULL; - } - - return (void FAR *) hint; -} - - -void FAR * -dlsym (void FAR * hdll, char FAR * sym) -{ - return (void FAR *) GetProcAddress (hdll, sym); -} - - -char FAR * -dlerror () -{ - return 0L; /* unimplemented yet */ -} - - -int -dlclose (void FAR * hdll) -{ - FreeLibrary ((HINSTANCE) hdll); -} -#endif /* end of Windows family */ - - -/*********************************** - * - * other platforms - * - ***********************************/ - -#ifdef DLDAPI_OS2 -#define DLDAPI_DEFINED -/* - * DosLoadModule(), DosQueryProcAddress(), DosFreeModule(), ... - */ -#endif - -#ifdef DLDAPI_MAC -#define DLDAPI_DEFINED -#endif - -#ifdef DLDAPI_NEXT -#define DLDAPI_DEFINED -#endif - -#ifndef DLDAPI_DEFINED -#error "dynamic load editor undefined" -#endif diff --git a/src/iodbc/dlf.h b/src/iodbc/dlf.h deleted file mode 100644 index a766ebbe52..0000000000 --- a/src/iodbc/dlf.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * dlf.h - * - * $Id$ - * - * Dynamic Library Loader (mapping to SVR4) - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _DLF_H -#define _DLF_H -#include "config.h" - -#if defined(HAVE_LIBDL) -#define DLDAPI_SVR4_DLFCN -#elif defined(HAVE_SHL_LOAD) -#define DLDAPI_HP_SHL -#endif - -#ifdef DLDAPI_SVR4_DLFCN -#include -#elif DLDAPI_AIX_LOAD -#include -#else -extern void FAR *dlopen (char FAR * path, int mode); -extern void FAR *dlsym (void FAR * hdll, char FAR * sym); -extern char FAR *dlerror (); -extern int dlclose (void FAR * hdll); -#endif - -#ifndef RTLD_LAZY -#define RTLD_LAZY 1 -#endif - -#define DLL_OPEN(dll) (void*)dlopen((char*)(path), RTLD_LAZY) -#define DLL_PROC(hdll, sym) (void*)dlsym((void*)(hdll), (char*)sym) -#define DLL_ERROR() (char*)dlerror() -#define DLL_CLOSE(hdll) dlclose((void*)(hdll)) -#endif diff --git a/src/iodbc/dlproc.c b/src/iodbc/dlproc.c deleted file mode 100644 index df67ba8ed0..0000000000 --- a/src/iodbc/dlproc.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * dlproc.c - * - * $Id$ - * - * Load driver and resolve driver's function entry point - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" - -#include "itrace.h" - -#include "henv.ci" - -HPROC -_iodbcdm_getproc (HDBC hdbc, int idx) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - ENV_t FAR *penv; - HPROC FAR *phproc; - - if (idx <= 0 || idx > SQL_EXT_API_LAST) - /* first entry naver used */ - { - return SQL_NULL_HPROC; - } - - penv = (ENV_t FAR *) (pdbc->henv); - - if (penv == NULL) - { - return SQL_NULL_HPROC; - } - - phproc = penv->dllproc_tab + idx; - - if (*phproc == SQL_NULL_HPROC) - { - int i, en_idx; - - for (i = 0;; i++) - { - en_idx = odbcapi_symtab[i].en_idx; - - if (en_idx == en_NullProc) - { - break; - } - - if (en_idx == idx) - { - *phproc = _iodbcdm_dllproc (penv->hdll, - odbcapi_symtab[i].symbol); - - break; - } - } - } - - return *phproc; -} - - -HDLL -_iodbcdm_dllopen (char FAR * path) -{ - return (HDLL) DLL_OPEN (path); -} - - -HPROC -_iodbcdm_dllproc (HDLL hdll, char FAR * sym) -{ - return (HPROC) DLL_PROC (hdll, sym); -} - - -int -_iodbcdm_dllclose (HDLL hdll) -{ - DLL_CLOSE (hdll); - - return 0; -} - - -char * -_iodbcdm_dllerror () -{ - return DLL_ERROR (); -} - diff --git a/src/iodbc/dlproc.h b/src/iodbc/dlproc.h deleted file mode 100644 index 663055599d..0000000000 --- a/src/iodbc/dlproc.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * dlproc.h - * - * $Id$ - * - * Load driver and resolve driver's function entry point - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _DLPROC_H -#define _DLPROC_H - -#include "dlf.h" - -typedef RETCODE (FAR * HPROC) (); - -#ifdef DLDAPI_SVR4_DLFCN -#include -typedef void *HDLL; -#endif - -#ifdef DLDAPI_HP_SHL -#include -typedef shl_t HDLL; -#endif - -#if defined(DLDAPI_AIX_LOAD) || defined(__DECCXX) -typedef void *HDLL; -#endif - -extern HPROC _iodbcdm_getproc (); -extern HDLL _iodbcdm_dllopen (char FAR * dll); -extern HPROC _iodbcdm_dllproc (HDLL hdll, char FAR * sym); -extern char FAR *_iodbcdm_dllerror (); -extern int _iodbcdm_dllclose (HDLL hdll); - -#define SQL_NULL_HDLL ((HDLL)NULL) -#define SQL_NULL_HPROC ((HPROC)NULL) -#endif diff --git a/src/iodbc/execute.c b/src/iodbc/execute.c deleted file mode 100644 index 64d71d6ba5..0000000000 --- a/src/iodbc/execute.c +++ /dev/null @@ -1,768 +0,0 @@ -/* - * execute.c - * - * $Id$ - * - * Invoke a query - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -static void -do_cursoropen (STMT_t FAR * pstmt) -{ - RETCODE retcode; - SWORD ncol; - - pstmt->state = en_stmt_executed; - - retcode = SQLNumResultCols (pstmt, &ncol); - - if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) - { - if (ncol) - { - pstmt->state = en_stmt_cursoropen; - pstmt->cursor_state = en_stmt_cursor_opened; - } - else - { - pstmt->state = en_stmt_executed; - pstmt->cursor_state = en_stmt_cursor_no; - } - } -} - - -RETCODE SQL_API -SQLExecute (HSTMT hstmt) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - sqlstat = en_S1010; - break; - - case en_stmt_executed: - if (!pstmt->prep_state) - { - sqlstat = en_S1010; - } - break; - - case en_stmt_cursoropen: - if (!pstmt->prep_state) - { - sqlstat = en_S1010; - } - break; - - case en_stmt_fetched: - case en_stmt_xfetched: - if (!pstmt->prep_state) - { - sqlstat = en_S1010; - } - else - { - sqlstat = en_24000; - } - break; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - default: - break; - } - } - else if (pstmt->asyn_on != en_Execute) - { - sqlstat = en_S1010; - } - - if (sqlstat == en_00000) - { - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Execute); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Execute, - (pstmt->dhstmt)) - - /* stmt state transition */ - if (pstmt->asyn_on == en_Execute) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NEED_DATA: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_prepared: - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - do_cursoropen (hstmt); - break; - - case SQL_NEED_DATA: - pstmt->state = en_stmt_needdata; - pstmt->need_on = en_Execute; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_Execute; - break; - - default: - break; - } - break; - - case en_stmt_executed: - switch (retcode) - { - case SQL_ERROR: - pstmt->state = en_stmt_allocated; - pstmt->cursor_state = en_stmt_cursor_no; - pstmt->prep_state = 0; - break; - - case SQL_NEED_DATA: - pstmt->state = en_stmt_needdata; - pstmt->need_on = en_Execute; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_Execute; - break; - - default: - break; - } - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLExecDirect ( - HSTMT hstmt, - UCHAR FAR * szSqlStr, - SDWORD cbSqlStr) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - - int sqlstat = en_00000; - RETCODE retcode = SQL_SUCCESS; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check arguments */ - if (szSqlStr == NULL) - { - sqlstat = en_S1009; - } - else if (cbSqlStr < 0 && cbSqlStr != SQL_NTS) - { - sqlstat = en_S1090; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_fetched: - case en_stmt_xfetched: - sqlstat = en_24000; - break; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - default: - break; - } - } - else if (pstmt->asyn_on != en_ExecDirect) - { - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ExecDirect); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ExecDirect, - (pstmt->dhstmt, szSqlStr, cbSqlStr)) - - /* stmt state transition */ - if (pstmt->asyn_on == en_ExecDirect) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NEED_DATA: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - if (pstmt->state <= en_stmt_executed) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - do_cursoropen (hstmt); - break; - - case SQL_NEED_DATA: - pstmt->state = en_stmt_needdata; - pstmt->need_on = en_ExecDirect; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_ExecDirect; - break; - - case SQL_ERROR: - pstmt->state = en_stmt_allocated; - pstmt->cursor_state = en_stmt_cursor_no; - pstmt->prep_state = 0; - break; - - default: - break; - } - } - - return retcode; -} - - -RETCODE SQL_API -SQLPutData ( - HSTMT hstmt, - PTR rgbValue, - SDWORD cbValue) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument value */ - if (rgbValue == NULL && - (cbValue != SQL_DEFAULT_PARAM && cbValue != SQL_NULL_DATA)) - { - PUSHSQLERR (pstmt->herr, en_S1009); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - if (pstmt->state <= en_stmt_xfetched) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - } - else if (pstmt->asyn_on != en_PutData) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_PutData); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_PutData, - (pstmt->dhstmt, rgbValue, cbValue)) - - /* state transition */ - if (pstmt->asyn_on == en_PutData) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - /* must in mustput or canput states */ - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - pstmt->state = en_stmt_canput; - break; - - case SQL_ERROR: - switch (pstmt->need_on) - { - case en_ExecDirect: - pstmt->state = en_stmt_allocated; - pstmt->need_on = en_NullProc; - break; - - case en_Execute: - if (pstmt->prep_state) - { - pstmt->state = en_stmt_prepared; - pstmt->need_on = en_NullProc; - } - break; - - case en_SetPos: - /* Is this possible ???? */ - pstmt->state = en_stmt_xfetched; - break; - - default: - break; - } - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_PutData; - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLParamData ( - HSTMT hstmt, - PTR FAR * prgbValue) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - if (pstmt->state <= en_stmt_xfetched) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - } - else if (pstmt->asyn_on != en_ParamData) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ParamData); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ParamData, - (pstmt->dhstmt, prgbValue)) - - /* state transition */ - if (pstmt->asyn_on == en_ParamData) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - if (pstmt->state < en_stmt_needdata) - { - return retcode; - } - - switch (retcode) - { - case SQL_ERROR: - switch (pstmt->need_on) - { - case en_ExecDirect: - pstmt->state = en_stmt_allocated; - break; - - case en_Execute: - pstmt->state = en_stmt_prepared; - break; - - case en_SetPos: - pstmt->state = en_stmt_xfetched; - pstmt->cursor_state - = en_stmt_cursor_xfetched; - break; - - default: - break; - } - pstmt->need_on = en_NullProc; - break; - - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - switch (pstmt->state) - { - case en_stmt_needdata: - pstmt->state = en_stmt_mustput; - break; - - case en_stmt_canput: - switch (pstmt->need_on) - { - case en_SetPos: - pstmt->state - = en_stmt_xfetched; - pstmt->cursor_state - = en_stmt_cursor_xfetched; - break; - - case en_ExecDirect: - case en_Execute: - do_cursoropen (hstmt); - break; - - default: - break; - } - break; - - default: - break; - } - pstmt->need_on = en_NullProc; - break; - - case SQL_NEED_DATA: - pstmt->state = en_stmt_mustput; - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLNumParams ( - HSTMT hstmt, - SWORD FAR * pcpar) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - - default: - break; - } - } - else if (pstmt->asyn_on != en_NumParams) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_NumParams); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_NumParams, - (pstmt->dhstmt, pcpar)) - - /* state transition */ - if (pstmt->asyn_on == en_NumParams) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - break; - - default: - return retcode; - } - } - - if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_NumParams; - } - - return retcode; -} - - -RETCODE SQL_API -SQLDescribeParam ( - HSTMT hstmt, - UWORD ipar, - SWORD FAR * pfSqlType, - UDWORD FAR * pcbColDef, - SWORD FAR * pibScale, - SWORD FAR * pfNullable) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - if (ipar == 0) - { - PUSHSQLERR (pstmt->herr, en_S1093); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - - default: - break; - } - } - else if (pstmt->asyn_on != en_DescribeParam) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_DescribeParam); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_DescribeParam, - (pstmt->dhstmt, ipar, pfSqlType, pcbColDef, pibScale, pfNullable)) - - /* state transition */ - if (pstmt->asyn_on == en_DescribeParam) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - break; - - default: - return retcode; - } - } - - if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_DescribeParam; - } - - return retcode; -} diff --git a/src/iodbc/fetch.c b/src/iodbc/fetch.c deleted file mode 100644 index 8bf06274b6..0000000000 --- a/src/iodbc/fetch.c +++ /dev/null @@ -1,649 +0,0 @@ -/* - * fetch.c - * - * $Id$ - * - * Fetch query result - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -RETCODE SQL_API -SQLFetch (HSTMT hstmt) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - case en_stmt_xfetched: - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - - default: - break; - } - } - else if (pstmt->asyn_on != en_Fetch) - { - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Fetch); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Fetch, - (pstmt->dhstmt)) - - /* state transition */ - if (pstmt->asyn_on == en_Fetch) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NO_DATA_FOUND: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_cursoropen: - case en_stmt_fetched: - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - pstmt->state = en_stmt_fetched; - pstmt->cursor_state = en_stmt_cursor_fetched; - break; - - case SQL_NO_DATA_FOUND: - if (pstmt->prep_state) - { - pstmt->state = en_stmt_prepared; - } - else - { - - pstmt->state = en_stmt_allocated; - } - pstmt->cursor_state = en_stmt_cursor_no; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_Fetch; - break; - - default: - break; - } - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLExtendedFetch ( - HSTMT hstmt, - UWORD fFetchType, - SDWORD irow, - UDWORD FAR * pcrow, - UWORD FAR * rgfRowStatus) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check fetch type */ - if (fFetchType < SQL_FETCH_NEXT || fFetchType > SQL_FETCH_BOOKMARK) - { - /* Unlike MS driver manager(i.e. DM), - * we don't check driver's ODBC version - * against SQL_FETCH_RESUME (only 1.0) - * and SQL_FETCH_BOOKMARK (only 2.0). - */ - PUSHSQLERR (pstmt->herr, en_S1106); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - case en_stmt_fetched: - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - - default: - break; - } - } - else if (pstmt->asyn_on != en_ExtendedFetch) - { - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ExtendedFetch); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ExtendedFetch, - (pstmt->dhstmt, fFetchType, irow, pcrow, rgfRowStatus)) - - /* state transition */ - if (pstmt->asyn_on == en_ExtendedFetch) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NO_DATA_FOUND: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_cursoropen: - case en_stmt_xfetched: - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NO_DATA_FOUND: - pstmt->state = en_stmt_xfetched; - pstmt->cursor_state = en_stmt_cursor_xfetched; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_ExtendedFetch; - break; - - default: - break; - } - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLGetData ( - HSTMT hstmt, - UWORD icol, - SWORD fCType, - PTR rgbValue, - SDWORD cbValueMax, - SDWORD FAR * pcbValue) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - if (rgbValue == NULL) - { - sqlstat = en_S1009; - } - else if (cbValueMax < 0) - { - sqlstat = en_S1090; - } - else - { - switch (fCType) - { - case SQL_C_DEFAULT: - case SQL_C_CHAR: - case SQL_C_BINARY: - case SQL_C_BIT: - case SQL_C_TINYINT: - case SQL_C_STINYINT: - case SQL_C_UTINYINT: - case SQL_C_SHORT: - case SQL_C_SSHORT: - case SQL_C_USHORT: - case SQL_C_LONG: - case SQL_C_SLONG: - case SQL_C_ULONG: - case SQL_C_FLOAT: - case SQL_C_DOUBLE: - case SQL_C_DATE: - case SQL_C_TIME: - case SQL_C_TIMESTAMP: - break; - - default: - sqlstat = en_S1003; - break; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - case en_stmt_executed: - case en_stmt_cursoropen: - sqlstat = en_24000; - break; - - default: - break; - } - } - else if (pstmt->asyn_on != en_GetData) - { - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_GetData); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_GetData, - (pstmt->dhstmt, icol, fCType, rgbValue, cbValueMax, pcbValue)) - - /* state transition */ - if (pstmt->asyn_on == en_GetData) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NO_DATA_FOUND: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_fetched: - case en_stmt_xfetched: - if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_GetData; - break; - } - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLMoreResults (HSTMT hstmt) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT - || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - return SQL_NO_DATA_FOUND; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - - default: - break; - } - } - else if (pstmt->asyn_on != en_MoreResults) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_MoreResults); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_MoreResults, - (pstmt->dhstmt)) - - /* state transition */ - if (pstmt->asyn_on == en_MoreResults) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NO_DATA_FOUND: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - /* driver should return SQL_NO_DATA_FOUND */ - break; - - case en_stmt_executed: - if (retcode == SQL_NO_DATA_FOUND) - { - if (pstmt->prep_state) - { - pstmt->state = en_stmt_prepared; - } - else - { - pstmt->state = en_stmt_allocated; - } - } - else if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_MoreResults; - } - break; - - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - if (retcode == SQL_SUCCESS) - { - break; - } - else if (retcode == SQL_NO_DATA_FOUND) - { - if (pstmt->prep_state) - { - pstmt->state = en_stmt_prepared; - } - else - { - pstmt->state = en_stmt_allocated; - } - } - else if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_MoreResults; - } - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLSetPos ( - HSTMT hstmt, - UWORD irow, - UWORD fOption, - UWORD fLock) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument value */ - if (fOption > SQL_ADD || fLock > SQL_LOCK_UNLOCK) - { - PUSHSQLERR (pstmt->herr, en_S1009); - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - case en_stmt_fetched: - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - case en_stmt_executed: - case en_stmt_cursoropen: - sqlstat = en_24000; - break; - - default: - break; - } - } - else if (pstmt->asyn_on != en_SetPos) - { - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_SetPos); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_SetPos, - (pstmt->dhstmt, irow, fOption, fLock)) - - /* state transition */ - if (pstmt->asyn_on == en_SetPos) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_NEED_DATA: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - /* now, the only possible init state is 'xfetched' */ - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - break; - - case SQL_NEED_DATA: - pstmt->state = en_stmt_needdata; - pstmt->need_on = en_SetPos; - break; - - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_SetPos; - break; - - default: - break; - } - - return retcode; -} diff --git a/src/iodbc/hdbc.c b/src/iodbc/hdbc.c deleted file mode 100644 index afb6472d19..0000000000 --- a/src/iodbc/hdbc.c +++ /dev/null @@ -1,811 +0,0 @@ -/* - * hdbc.c - * - * $Id$ - * - * Data source connect object management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" -#include "stdio.h" - -extern RETCODE _iodbcdm_driverunload(); - - -RETCODE SQL_API -SQLAllocConnect ( - HENV henv, - HDBC FAR * phdbc) -{ - GENV_t FAR *genv = (GENV_t FAR *) henv; - DBC_t FAR *pdbc; - -#if (ODBCVER >= 0x0300) - if (henv == SQL_NULL_HENV || genv->type != SQL_HANDLE_ENV) -#else - if (henv == SQL_NULL_HENV) -#endif - - { - return SQL_INVALID_HANDLE; - } - - if (phdbc == NULL) - { - PUSHSQLERR (genv->herr, en_S1009); - - return SQL_ERROR; - } - - pdbc = (DBC_t FAR *) MEM_ALLOC (sizeof (DBC_t)); - - if (pdbc == NULL) - { - *phdbc = SQL_NULL_HDBC; - - PUSHSQLERR (genv->herr, en_S1001); - - return SQL_ERROR; - } - -#if (ODBCVER >= 0x0300) - pdbc->type = SQL_HANDLE_DBC; -#endif - - /* insert this dbc entry into the link list */ - pdbc->next = genv->hdbc; - genv->hdbc = pdbc; - pdbc->genv = henv; - - pdbc->henv = SQL_NULL_HENV; - pdbc->hstmt = SQL_NULL_HSTMT; - pdbc->herr = SQL_NULL_HERR; - pdbc->dhdbc = SQL_NULL_HDBC; - pdbc->state = en_dbc_allocated; - pdbc->trace = 0; - pdbc->tstm = NULL; - pdbc->tfile = NULL; - - /* set connect options to default values */ - pdbc->access_mode = SQL_MODE_DEFAULT; - pdbc->autocommit = SQL_AUTOCOMMIT_DEFAULT; - pdbc->current_qualifier = NULL; - pdbc->login_timeout = 0UL; - pdbc->odbc_cursors = SQL_CUR_DEFAULT; - pdbc->packet_size = 0UL; - pdbc->quiet_mode = (UDWORD) NULL; - pdbc->txn_isolation = SQL_TXN_READ_UNCOMMITTED; - pdbc->cb_commit = (SWORD) SQL_CB_DELETE; - pdbc->cb_rollback = (SWORD) SQL_CB_DELETE; - - *phdbc = (HDBC) pdbc; - - return SQL_SUCCESS; -} - - -RETCODE SQL_API -SQLFreeConnect (HDBC hdbc) -{ - GENV_t FAR *genv; - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - DBC_t FAR *tpdbc; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pdbc->state != en_dbc_allocated) - { - PUSHSQLERR (pdbc->herr, en_S1010); - - return SQL_ERROR; - } - - genv = (GENV_t FAR *) pdbc->genv; - - for (tpdbc = (DBC_t FAR *) genv->hdbc; - tpdbc != NULL; - tpdbc = tpdbc->next) - { - if (pdbc == tpdbc) - { - genv->hdbc = pdbc->next; - break; - } - - if (pdbc == tpdbc->next) - { - tpdbc->next = pdbc->next; - break; - } - } - - /* free this dbc */ - _iodbcdm_driverunload (pdbc); - _iodbcdm_freesqlerrlist (pdbc->herr); - - if (pdbc->tfile) - { - MEM_FREE (pdbc->tfile); - } - - SQLSetConnectOption (pdbc, SQL_OPT_TRACE, SQL_OPT_TRACE_OFF); - - MEM_FREE (pdbc); - - return SQL_SUCCESS; -} - - -RETCODE SQL_API -SQLSetConnectOption ( - HDBC hdbc, - UWORD fOption, - UDWORD vParam) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - STMT_t FAR *pstmt; - HPROC hproc = SQL_NULL_HPROC; - int sqlstat = en_00000; - RETCODE retcode = SQL_SUCCESS; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check option */ - if (fOption < SQL_CONN_OPT_MIN || - (fOption > SQL_CONN_OPT_MAX && fOption < SQL_CONNECT_OPT_DRVR_START)) - { - PUSHSQLERR (pdbc->herr, en_S1092); - - return SQL_ERROR; - } - - /* check state of connection handle */ - switch (pdbc->state) - { - case en_dbc_allocated: - if (fOption == SQL_TRANSLATE_DLL || fOption == SQL_TRANSLATE_OPTION) - { - /* This two options are only meaningful - * for specified driver. So, has to be - * set after a dirver has been loaded. - */ - sqlstat = en_08003; - break; - } - - if (fOption >= SQL_CONNECT_OPT_DRVR_START && pdbc->henv == SQL_NULL_HENV) - /* An option only meaningful for drivers - * is passed before loading a driver. - * We classify this as an invalid option error. - * This is not documented by MS SDK guide. - */ - { - sqlstat = en_S1092; - break; - } - break; - - case en_dbc_needdata: - sqlstat = en_S1010; - break; - - case en_dbc_connected: - case en_dbc_hstmt: - if (fOption == SQL_ODBC_CURSORS) - { - sqlstat = en_08002; - } - break; - - default: - break; - } - - /* check state of statement handle(s) */ - for (pstmt = (STMT_t FAR *) pdbc->hstmt; - pstmt != NULL && sqlstat == en_00000; - pstmt = (STMT_t FAR *) pstmt->next) - { - if (pstmt->state >= en_stmt_needdata || pstmt->asyn_on != en_NullProc) - { - sqlstat = en_S1010; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pdbc->herr, sqlstat); - - return SQL_ERROR; - } - - if (fOption == SQL_OPT_TRACE) - /* tracing flag can be set before and after connect - * and only meaningful for driver manager(actually - * there is only one tracing file under one global - * environment). - */ - { - switch (vParam) - { - case SQL_OPT_TRACE_ON: - if (pdbc->tfile == NULL) - { - pdbc->tfile = (char FAR *) MEM_ALLOC (1 + - STRLEN (SQL_OPT_TRACE_FILE_DEFAULT)); - - if (pdbc->tfile == NULL) - { - PUSHSQLERR (pdbc->herr, en_S1001); - - return SQL_ERROR; - } - - STRCPY (pdbc->tfile, SQL_OPT_TRACE_FILE_DEFAULT); - } - - if (pdbc->tstm == NULL) - { - -#if defined(stderr) && defined(stdout) - if (STREQ (pdbc->tfile, "stderr")) - { - pdbc->tstm = stderr; - } - else if (STREQ (pdbc->tfile, "stdout")) - { - pdbc->tstm = stdout; - } - else -#endif - - { - pdbc->tstm - = fopen (pdbc->tfile, "a+"); - } - - if (pdbc->tstm) - { - pdbc->trace = 1; - } - else - { - pdbc->trace = 0; - - sqlstat = en_IM013; - retcode = SQL_ERROR; - } - } - break; - - case SQL_OPT_TRACE_OFF: - if (pdbc->trace && pdbc->tstm) - { - -#if defined(stderr) && defined(stdout) - if (stderr != (FILE FAR *) (pdbc->tstm) - && stdout != (FILE FAR *) (pdbc->tstm)) -#endif - - { - fclose (pdbc->tstm); - } - } - pdbc->tstm = NULL; - pdbc->trace = 0; - break; - - default: - PUSHSQLERR (pdbc->herr, en_S1009); - retcode = SQL_ERROR; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pdbc->herr, sqlstat); - } - - return retcode; - } - - if (fOption == SQL_OPT_TRACEFILE) - /* Tracing file can be set before and after connect - * and only meaningful for driver manager. - */ - { - if (vParam == 0UL || ((char FAR *) vParam)[0] == 0) - { - PUSHSQLERR (pdbc->herr, en_S1009); - - return SQL_ERROR; - } - - if (pdbc->tfile && STREQ (pdbc->tfile, vParam)) - { - return SQL_SUCCESS; - } - - if (pdbc->trace) - { - PUSHSQLERR (pdbc->herr, en_IM014); - - return SQL_ERROR; - } - - if (pdbc->tfile) - { - MEM_FREE (pdbc->tfile); - } - - pdbc->tfile = (char FAR *) MEM_ALLOC (1 + STRLEN (vParam)); - - if (pdbc->tfile == NULL) - { - PUSHSQLERR (pdbc->herr, en_S1001); - - return SQL_ERROR; - } - - STRCPY (pdbc->tfile, vParam); - - return SQL_SUCCESS; - } - - if (pdbc->state != en_dbc_allocated) - { - /* If already connected, then, driver's odbc call - * will be invoked. Otherwise, we only save the options - * and delay the setting process until the connection - * been established. - */ - hproc = _iodbcdm_getproc (hdbc, en_SetConnectOption); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_SetConnectOption, - (pdbc->dhdbc, fOption, vParam)) - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - { - return retcode; - } - } - - /* - * Now, either driver's odbc call was successed or - * driver has not been loaded yet. In the first case, we - * need flip flag for(such as access_mode, autocommit, ...) - * for our finit state machine. While in the second case, - * we need save option values(such as current_qualifier, ...) - * for delaied setting. So, ... - */ - - /* No matter what state we are(i.e. allocated or connected, ..) - * we need to flip the flag. - */ - switch (fOption) - { - case SQL_ACCESS_MODE: - pdbc->access_mode = vParam; - break; - - case SQL_AUTOCOMMIT: - pdbc->autocommit = vParam; - break; - } - - /* state transition */ - if (pdbc->state != en_dbc_allocated) - { - return retcode; - } - - /* Only 'allocated' state is possible here, and we need to - * save the options for delaied setting. - */ - switch (fOption) - { - case SQL_CURRENT_QUALIFIER: - if (pdbc->current_qualifier != NULL) - { - MEM_FREE (pdbc->current_qualifier); - } - - if (vParam == 0UL) - { - pdbc->current_qualifier = NULL; - - break; - } - - pdbc->current_qualifier - = (char FAR *) MEM_ALLOC ( - STRLEN (vParam) + 1); - - if (pdbc->current_qualifier == NULL) - { - PUSHSQLERR (pdbc->herr, en_S1001); - return SQL_ERROR; - } - - STRCPY (pdbc->current_qualifier, vParam); - break; - - case SQL_LOGIN_TIMEOUT: - pdbc->login_timeout = vParam; - break; - - case SQL_ODBC_CURSORS: - pdbc->odbc_cursors = vParam; - break; - - case SQL_PACKET_SIZE: - pdbc->packet_size = vParam; - break; - - case SQL_QUIET_MODE: - pdbc->quiet_mode = vParam; - break; - - case SQL_TXN_ISOLATION: - pdbc->txn_isolation = vParam; - break; - - default: - /* Since we didn't save the option value for delaied - * setting, we should raise an error here. - */ - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLGetConnectOption ( - HDBC hdbc, - UWORD fOption, - PTR pvParam) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - int sqlstat = en_00000; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check option */ - if (fOption < SQL_CONN_OPT_MIN || - (fOption > SQL_CONN_OPT_MAX && fOption < SQL_CONNECT_OPT_DRVR_START)) - { - PUSHSQLERR (pdbc->herr, en_S1092); - - return SQL_ERROR; - } - - /* check state */ - switch (pdbc->state) - { - case en_dbc_allocated: - if (fOption != SQL_ACCESS_MODE - && fOption != SQL_AUTOCOMMIT - && fOption != SQL_LOGIN_TIMEOUT - && fOption != SQL_OPT_TRACE - && fOption != SQL_OPT_TRACEFILE) - { - sqlstat = en_08003; - } - /* MS ODBC SDK document only - * allows SQL_ACCESS_MODE - * and SQL_AUTOCOMMIT in this - * dbc state. We allow another - * two options, because they - * are only meaningful for driver - * manager. - */ - break; - - case en_dbc_needdata: - sqlstat = en_S1010; - break; - - default: - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pdbc->herr, sqlstat); - - return SQL_ERROR; - } - - /* Tracing and tracing file options are only - * meaningful for driver manager - */ - if (fOption == SQL_OPT_TRACE) - { - if (pdbc->trace) - *((UDWORD *) pvParam) = (UDWORD) SQL_OPT_TRACE_ON; - else - *((UDWORD *) pvParam) = (UDWORD) SQL_OPT_TRACE_OFF; - - return SQL_SUCCESS; - } - - if (fOption == SQL_OPT_TRACEFILE) - { - STRCPY (pvParam, pdbc->tfile); - - return SQL_ERROR; - } - - if (pdbc->state != en_dbc_allocated) - /* if already connected, we will invoke driver's function */ - { - hproc = _iodbcdm_getproc (hdbc, en_GetConnectOption); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_GetConnectOption, - (pdbc->dhdbc, fOption, pvParam)) - - return retcode; - } - - /* We needn't to handle options which are not allowed - * to be *get* at a allocated dbc state(and two tracing - * options which has been handled and returned). Thus, - * there are only two possible cases. - */ - switch (fOption) - { - case SQL_ACCESS_MODE: - *((UDWORD *) pvParam) = pdbc->access_mode; - break; - - case SQL_AUTOCOMMIT: - *((UDWORD *) pvParam) = pdbc->autocommit; - break; - - case SQL_LOGIN_TIMEOUT: - *((UDWORD *) pvParam) = pdbc->login_timeout; - break; - - default: - break; - } - - return SQL_SUCCESS; -} - - -static RETCODE -_iodbcdm_transact ( - HDBC hdbc, - UWORD fType) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - STMT_t FAR *pstmt; - HPROC hproc; - RETCODE retcode; - - /* check state */ - switch (pdbc->state) - { - case en_dbc_allocated: - case en_dbc_needdata: - PUSHSQLERR (pdbc->herr, en_08003); - return SQL_ERROR; - - case en_dbc_connected: - return SQL_SUCCESS; - - case en_dbc_hstmt: - default: - break; - } - - for (pstmt = (STMT_t FAR *) (pdbc->hstmt); - pstmt != NULL; - pstmt = pstmt->next) - { - if (pstmt->state >= en_stmt_needdata - || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pdbc->herr, en_S1010); - - return SQL_ERROR; - } - } - - hproc = _iodbcdm_getproc (hdbc, en_Transact); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_Transact, - (SQL_NULL_HENV, pdbc->dhdbc, fType)) - - /* state transition */ - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - { - return retcode; - } - - pdbc->state = en_dbc_hstmt; - - for (pstmt = (STMT_t FAR *) (pdbc->hstmt); - pstmt != NULL; - pstmt = pstmt->next) - { - switch (pstmt->state) - { - case en_stmt_prepared: - if (pdbc->cb_commit == SQL_CB_DELETE - || pdbc->cb_rollback == SQL_CB_DELETE) - { - pstmt->state = en_stmt_allocated; - pstmt->prep_state = 0; - break; - } - break; - - case en_stmt_executed: - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - if (!pstmt->prep_state - && pdbc->cb_commit != SQL_CB_PRESERVE - && pdbc->cb_rollback != SQL_CB_PRESERVE) - { - pstmt->state = en_stmt_allocated; - pstmt->prep_state = 0; - pstmt->cursor_state = en_stmt_cursor_no; - break; - } - - if (pstmt->prep_state) - { - if (pdbc->cb_commit == SQL_CB_DELETE - || pdbc->cb_rollback == SQL_CB_DELETE) - { - pstmt->state = en_stmt_allocated; - pstmt->prep_state = 0; - pstmt->cursor_state = en_stmt_cursor_no; - break; - } - - if (pdbc->cb_commit == SQL_CB_CLOSE - || pdbc->cb_rollback == SQL_CB_CLOSE) - { - pstmt->state - = en_stmt_prepared; - pstmt->cursor_state - = en_stmt_cursor_no; - break; - } - break; - } - break; - - default: - break; - } - } - - return retcode; -} - - -RETCODE SQL_API -SQLTransact ( - HENV henv, - HDBC hdbc, - UWORD fType) -{ - GENV_t FAR *genv = (GENV_t FAR *) henv; - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - HERR herr; - RETCODE retcode = 0; - - if (hdbc != SQL_NULL_HDBC) - { - herr = pdbc->herr; - } - else if (henv != SQL_NULL_HENV) - { - herr = genv->herr; - } - else - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - if (fType != SQL_COMMIT - && fType != SQL_ROLLBACK) - { - PUSHSQLERR (herr, en_S1012); - - return SQL_ERROR; - } - - if (hdbc != SQL_NULL_HDBC) - { - retcode = _iodbcdm_transact (hdbc, fType); - } - else - { - for (pdbc = (DBC_t FAR *) (genv->hdbc); - pdbc != NULL; - pdbc = pdbc->next) - { - retcode |= _iodbcdm_transact (hdbc, fType); - } - } - - if (retcode != SQL_SUCCESS - && retcode != SQL_SUCCESS_WITH_INFO) - { - /* fail on one of the connection */ - return SQL_ERROR; - } - - return retcode; -} diff --git a/src/iodbc/hdbc.h b/src/iodbc/hdbc.h deleted file mode 100644 index 659eadcc05..0000000000 --- a/src/iodbc/hdbc.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * hdbc.h - * - * $Id$ - * - * Data source connect object management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _HDBC_H -#define _HDBC_H - -typedef struct DBC - { - int type; /* must be 1st field */ - struct DBC FAR * - next; - - HENV genv; /* back point to global env object */ - - HDBC dhdbc; /* driver's private dbc */ - HENV henv; /* back point to instant env object */ - HSTMT hstmt; /* list of statement object handle(s) */ - HERR herr; - - int state; - - /* options */ - UDWORD access_mode; - UDWORD autocommit; - - UDWORD login_timeout; - UDWORD odbc_cursors; - UDWORD packet_size; - UDWORD quiet_mode; - UDWORD txn_isolation; - SWORD cb_commit; - SWORD cb_rollback; - - char FAR * - current_qualifier; - - int trace; /* trace flag */ - char FAR * - tfile; - void FAR * - tstm; /* trace stream */ - } -DBC_t; - -/* - * Note: - * - ODBC applications can see address of driver manager's - * connection object, i.e connection handle -- a void pointer, - * but not detail of it. ODBC applications can neither see - * detail driver's connection object nor its address. - * - * - ODBC driver manager knows its own connection objects and - * exposes their address to an ODBC application. Driver manager - * also knows address of driver's connection objects and keeps - * it via dhdbc field in driver manager's connection object. - * - * - ODBC driver exposes address of its own connection object to - * driver manager without detail. - * - * - Applications can get driver's connection object handle by - * SQLGetInfo() with fInfoType equals to SQL_DRIVER_HDBC. - */ - -enum - { - en_dbc_allocated, - en_dbc_needdata, - en_dbc_connected, - en_dbc_hstmt - }; -#endif diff --git a/src/iodbc/henv.c b/src/iodbc/henv.c deleted file mode 100644 index 54dbac8dee..0000000000 --- a/src/iodbc/henv.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * henv.c - * - * $Id$ - * - * Environment object management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" - -#include "itrace.h" - -RETCODE SQL_API -SQLAllocEnv (HENV FAR * phenv) -{ - GENV_t FAR *genv; - - genv = (GENV_t *) MEM_ALLOC (sizeof (GENV_t)); - - if (genv == NULL) - { - *phenv = SQL_NULL_HENV; - - return SQL_ERROR; - } - -#if (ODBCVER >= 0x0300 ) - genv->type = SQL_HANDLE_ENV; -#endif - - genv->henv = SQL_NULL_HENV; /* driver's env list */ - genv->hdbc = SQL_NULL_HDBC; /* driver's dbc list */ - genv->herr = SQL_NULL_HERR; /* err list */ - - *phenv = (HENV) genv; - - return SQL_SUCCESS; -} - - -RETCODE SQL_API -SQLFreeEnv (HENV henv) -{ - GENV_t FAR *genv = (GENV_t *) henv; - - if (henv == SQL_NULL_HENV) - { - return SQL_INVALID_HANDLE; - } - - if (genv->hdbc != SQL_NULL_HDBC) - { - PUSHSQLERR (genv->herr, en_S1010); - - return SQL_ERROR; - } - - _iodbcdm_freesqlerrlist (genv->herr); - - MEM_FREE (henv); - - return SQL_SUCCESS; -} diff --git a/src/iodbc/henv.ci b/src/iodbc/henv.ci deleted file mode 100644 index c320b45f8d..0000000000 --- a/src/iodbc/henv.ci +++ /dev/null @@ -1,117 +0,0 @@ -/* - * henv.ci - * - * $Id$ - * - * Function names - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -/* There are some exceptions : - * on FreeBSD 2.x CLI_NAME_PREFIX is defined in Config.mk as "_SQL" - * on HP/UX s300/s400, CLI_NAME_PREFIX is defined in Config.mk as "_SQL" - * on AIX 3.x 4.x, CLI_NAME_PREFIX is defined in Config.mk as ".SQL" - */ -#ifndef CLI_NAME_PREFIX -# define CLI_NAME_PREFIX "SQL" /* using call by value prefix */ -#else -# ifdef NEED_USCORE -# define CLI_NAME_PREFIX "_SQL" -# endif -#endif - -static struct - { - int en_idx; - char *symbol; - } -odbcapi_symtab[] = { - -#if (ODBCVER >= 0x0300) - { en_AllocHandle CLI_NAME_PREFIX "AllocHandle" }, - { en_FreeHandle CLI_NAME_PREFIX "FreeHandle" }, -#endif - { en_AllocEnv, CLI_NAME_PREFIX "AllocEnv" }, - { en_AllocConnect, CLI_NAME_PREFIX "AllocConnect" }, - { en_Connect, CLI_NAME_PREFIX "Connect" }, - { en_DriverConnect, CLI_NAME_PREFIX "DriverConnect" }, - { en_BrowseConnect, CLI_NAME_PREFIX "BrowseConnect" }, - - { en_DataSources, CLI_NAME_PREFIX "DataSources" }, - { en_Drivers, CLI_NAME_PREFIX "Driver" }, - { en_GetInfo, CLI_NAME_PREFIX "GetInfo" }, - { en_GetFunctions, CLI_NAME_PREFIX "GetFunctions" }, - { en_GetTypeInfo, CLI_NAME_PREFIX "GetTypeInfo" }, - - { en_SetConnectOption, CLI_NAME_PREFIX "SetConnectOption" }, - { en_GetConnectOption, CLI_NAME_PREFIX "GetConnectOption" }, - { en_SetStmtOption, CLI_NAME_PREFIX "SetStmtOption" }, - { en_GetStmtOption, CLI_NAME_PREFIX "GetStmtOption" }, - - { en_AllocStmt, CLI_NAME_PREFIX "AllocStmt" }, - { en_Prepare, CLI_NAME_PREFIX "Prepare" }, - { en_BindParameter, CLI_NAME_PREFIX "BindParameter" }, - { en_ParamOptions, CLI_NAME_PREFIX "ParamOptions" }, - { en_GetCursorName, CLI_NAME_PREFIX "GetCursorName" }, - { en_SetCursorName, CLI_NAME_PREFIX "SetCursorName" }, - { en_SetScrollOptions, CLI_NAME_PREFIX "SetScrollOptions" }, - { en_SetParam, CLI_NAME_PREFIX "SetParam" }, - - { en_Execute, CLI_NAME_PREFIX "Execute" }, - { en_ExecDirect, CLI_NAME_PREFIX "ExecDirect" }, - { en_NativeSql, CLI_NAME_PREFIX "NativeSql" }, - { en_DescribeParam, CLI_NAME_PREFIX "DescribeParam" }, - { en_NumParams, CLI_NAME_PREFIX "NumParams" }, - { en_ParamData, CLI_NAME_PREFIX "ParamData" }, - { en_PutData, CLI_NAME_PREFIX "PutData" }, - - { en_RowCount, CLI_NAME_PREFIX "RowCount" }, - { en_NumResultCols, CLI_NAME_PREFIX "NumResultCols" }, - { en_DescribeCol, CLI_NAME_PREFIX "DescribeCol" }, - { en_ColAttributes, CLI_NAME_PREFIX "ColAttributes" }, - { en_BindCol, CLI_NAME_PREFIX "BindCol" }, - { en_Fetch, CLI_NAME_PREFIX "Fetch" }, - { en_ExtendedFetch, CLI_NAME_PREFIX "ExtendedFetch" }, - { en_GetData, CLI_NAME_PREFIX "GetData" }, - { en_SetPos, CLI_NAME_PREFIX "SetPos" }, - { en_MoreResults, CLI_NAME_PREFIX "MoreResults" }, - { en_Error, CLI_NAME_PREFIX "Error" }, - - { en_ColumnPrivileges, CLI_NAME_PREFIX "ColumnPrivileges" }, - { en_Columns, CLI_NAME_PREFIX "Columns" }, - { en_ForeignKeys, CLI_NAME_PREFIX "ForeignKeys" }, - { en_PrimaryKeys, CLI_NAME_PREFIX "PrimaryKeys" }, - { en_ProcedureColumns, CLI_NAME_PREFIX "ProcedureColumns" }, - { en_Procedures, CLI_NAME_PREFIX "Procedures" }, - { en_SpecialColumns, CLI_NAME_PREFIX "SpecialColumns" }, - { en_Statistics, CLI_NAME_PREFIX "Statistics" }, - { en_TablePrivileges, CLI_NAME_PREFIX "TablePrivileges" }, - { en_Tables, CLI_NAME_PREFIX "Tables" }, - - { en_FreeStmt, CLI_NAME_PREFIX "FreeStmt" }, - { en_Cancel, CLI_NAME_PREFIX "Cancel" }, - { en_Transact, CLI_NAME_PREFIX "Transact" }, - - { en_Disconnect, CLI_NAME_PREFIX "Disconnect" }, - { en_FreeConnect, CLI_NAME_PREFIX "FreeConnect" }, - { en_FreeEnv, CLI_NAME_PREFIX "FreeEnv" }, - - { en_NullProc, NULL } -}; diff --git a/src/iodbc/henv.h b/src/iodbc/henv.h deleted file mode 100644 index f2a44907ef..0000000000 --- a/src/iodbc/henv.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * henv.h - * - * $Id$ - * - * Environment object management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _HENV_H -#define _HENV_H - -#include "config.h" -#include "dlproc.h" - -#include "isql.h" -#include "isqlext.h" - -#ifndef SYSERR -#define SYSERR -1 -#endif - -enum - { - -#if (ODBCVER >= 0x0300) - en_AllocHandle = SQL_API_SQLALLOCHANDLE, - en_FreeHandle = SQL_API_SQLFREEHANDLE, -#endif - - en_AllocEnv = SQL_API_SQLALLOCENV, - en_AllocConnect = SQL_API_SQLALLOCCONNECT, - en_Connect = SQL_API_SQLCONNECT, - en_DriverConnect = SQL_API_SQLDRIVERCONNECT, - en_BrowseConnect = SQL_API_SQLBROWSECONNECT, - - en_DataSources = SQL_API_SQLDATASOURCES, - en_Drivers = SQL_API_SQLDRIVERS, - en_GetInfo = SQL_API_SQLGETINFO, - en_GetFunctions = SQL_API_SQLGETFUNCTIONS, - en_GetTypeInfo = SQL_API_SQLGETTYPEINFO, - - en_SetConnectOption = SQL_API_SQLSETCONNECTOPTION, - en_GetConnectOption = SQL_API_SQLGETCONNECTOPTION, - en_SetStmtOption = SQL_API_SQLSETSTMTOPTION, - en_GetStmtOption = SQL_API_SQLGETSTMTOPTION, - - en_AllocStmt = SQL_API_SQLALLOCSTMT, - en_Prepare = SQL_API_SQLPREPARE, - en_BindParameter = SQL_API_SQLBINDPARAMETER, - en_ParamOptions = SQL_API_SQLPARAMOPTIONS, - en_GetCursorName = SQL_API_SQLGETCURSORNAME, - en_SetCursorName = SQL_API_SQLSETCURSORNAME, - en_SetScrollOptions = SQL_API_SQLSETSCROLLOPTIONS, - en_SetParam = SQL_API_SQLSETPARAM, - - en_Execute = SQL_API_SQLEXECUTE, - en_ExecDirect = SQL_API_SQLEXECDIRECT, - en_NativeSql = SQL_API_SQLNATIVESQL, - en_DescribeParam = SQL_API_SQLDESCRIBEPARAM, - en_NumParams = SQL_API_SQLNUMPARAMS, - en_ParamData = SQL_API_SQLPARAMDATA, - en_PutData = SQL_API_SQLPUTDATA, - - en_RowCount = SQL_API_SQLROWCOUNT, - en_NumResultCols = SQL_API_SQLNUMRESULTCOLS, - en_DescribeCol = SQL_API_SQLDESCRIBECOL, - en_ColAttributes = SQL_API_SQLCOLATTRIBUTES, - en_BindCol = SQL_API_SQLBINDCOL, - en_Fetch = SQL_API_SQLFETCH, - en_ExtendedFetch = SQL_API_SQLEXTENDEDFETCH, - en_GetData = SQL_API_SQLGETDATA, - en_SetPos = SQL_API_SQLSETPOS, - en_MoreResults = SQL_API_SQLMORERESULTS, - en_Error = SQL_API_SQLERROR, - - en_ColumnPrivileges = SQL_API_SQLCOLUMNPRIVILEGES, - en_Columns = SQL_API_SQLCOLUMNS, - en_ForeignKeys = SQL_API_SQLFOREIGNKEYS, - en_PrimaryKeys = SQL_API_SQLPRIMARYKEYS, - en_ProcedureColumns = SQL_API_SQLPROCEDURECOLUMNS, - en_Procedures = SQL_API_SQLPROCEDURES, - en_SpecialColumns = SQL_API_SQLSPECIALCOLUMNS, - en_Statistics = SQL_API_SQLSTATISTICS, - en_TablePrivileges = SQL_API_SQLTABLEPRIVILEGES, - en_Tables = SQL_API_SQLTABLES, - - en_FreeStmt = SQL_API_SQLFREESTMT, - en_Cancel = SQL_API_SQLCANCEL, - en_Transact = SQL_API_SQLTRANSACT, - - en_Disconnect = SQL_API_SQLDISCONNECT, - en_FreeConnect = SQL_API_SQLFREECONNECT, - en_FreeEnv = SQL_API_SQLFREEENV, - - en_NullProc = SYSERR - }; - -typedef struct - { - int type; /* must be 1st field */ - - HENV henv; /* driver's env list */ - HDBC hdbc; /* driver's dbc list */ - HERR herr; /* err list */ - int state; - } -GENV_t; - -typedef struct - { - HENV next; /* next attached env handle */ - int refcount; /* Driver's bookkeeping reference count */ - HPROC dllproc_tab[SQL_EXT_API_LAST + 1]; /* driver api calls */ - - HENV dhenv; /* driver env handle */ - HDLL hdll; /* drvier share library handle */ - } -ENV_t; - -/* Note: - - * - ODBC applications only know about global environment handle, - * a void pointer points to a GENV_t object. There is only one - * this object per process(however, to make the library reentrant, - * we still keep this object on heap). Applications only know - * address of this object and needn't care about its detail. - * - * - ODBC driver manager knows about instance environment handles, - * void pointers point to ENV_t objects. There are maybe more - * than one this kind of objects per process. However, multiple - * connections to a same data source(i.e. call same share library) - * will share one instance environment object. - * - * - ODBC drvier manager knows about their own environemnt handle, - * a void pointer point to a driver defined object. Every driver - * keeps one of its own environment object and driver manager - * keeps address of it by the 'dhenv' field in the instance - * environment object without care about its detail. - * - * - Applications can get driver's environment object handle by - * SQLGetInfo() with fInfoType equals to SQL_DRIVER_HENV - */ -#endif diff --git a/src/iodbc/herr.c b/src/iodbc/herr.c deleted file mode 100644 index ad9ba81e87..0000000000 --- a/src/iodbc/herr.c +++ /dev/null @@ -1,378 +0,0 @@ -/* - * herr.c - * - * $Id$ - * - * Error stack management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -#include "herr.ci" - -static HERR -_iodbcdm_popsqlerr (HERR herr) -{ - sqlerr_t *list = (sqlerr_t *) herr; - sqlerr_t *next; - - if (herr == SQL_NULL_HERR) - { - return herr; - } - - next = list->next; - - MEM_FREE (list); - - return next; -} - - -void -_iodbcdm_freesqlerrlist (HERR herrlist) -{ - HERR list; - - for (list = herrlist; list != 0;) - { - list = _iodbcdm_popsqlerr (list); - } -} - - -HERR -_iodbcdm_pushsqlerr ( - HERR herr, - sqlstcode_t code, - char *msg) -{ - sqlerr_t *ebuf; - sqlerr_t *perr = (sqlerr_t *) herr; - int idx = 0; - - if (herr != SQL_NULL_HERR) - { - idx = perr->idx + 1; - } - - if (idx == 64) - /* over wirte the top entry to prevent error stack blow out */ - { - perr->code = code; - perr->msg = msg; - - return herr; - } - - ebuf = (sqlerr_t *) MEM_ALLOC (sizeof (sqlerr_t)); - - if (ebuf == NULL) - { - return NULL; - } - - ebuf->msg = msg; - ebuf->code = code; - ebuf->idx = idx; - ebuf->next = (sqlerr_t *) herr; - - return (HERR) ebuf; -} - - -static char FAR * -_iodbcdm_getsqlstate ( - HERR herr, - void FAR * tab) -{ - sqlerr_t *perr = (sqlerr_t *) herr; - sqlerrmsg_t *ptr; - - if (herr == SQL_NULL_HERR || tab == NULL) - { - return (char FAR *) NULL; - } - - for (ptr = tab; - ptr->code != en_sqlstat_total; - ptr++) - { - if (ptr->code == perr->code) - { - return (char FAR *) (ptr->stat); - } - } - - return (char FAR *) NULL; -} - - -static char FAR * -_iodbcdm_getsqlerrmsg ( - HERR herr, - void FAR * errtab) -{ - sqlerr_t *perr = (sqlerr_t *) herr; - sqlerrmsg_t *ptr; - - if (herr == SQL_NULL_HERR) - { - return NULL; - } - - if (perr->msg == NULL && errtab == NULL) - { - return NULL; - } - - if (perr->msg != NULL) - { - return perr->msg; - } - - for (ptr = (sqlerrmsg_t *) errtab; - ptr->code != en_sqlstat_total; - ptr++) - { - if (ptr->code == perr->code) - { - return (char FAR *) ptr->msg; - } - } - - return (char FAR *) NULL; -} - - -RETCODE SQL_API -SQLError ( - HENV henv, - HDBC hdbc, - HSTMT hstmt, - UCHAR FAR * szSqlstate, - SDWORD FAR * pfNativeError, - UCHAR FAR * szErrorMsg, - SWORD cbErrorMsgMax, - SWORD FAR * pcbErrorMsg) -{ - GENV_t FAR *genv = (GENV_t FAR *) henv; - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HDBC thdbc; - - HENV dhenv = SQL_NULL_HENV; - HDBC dhdbc = SQL_NULL_HDBC; - HSTMT dhstmt = SQL_NULL_HSTMT; - - HERR herr = SQL_NULL_HERR; - HPROC hproc = SQL_NULL_HPROC; - - char FAR *errmsg = NULL; - char FAR *ststr = NULL; - - int handle = 0; - RETCODE retcode = SQL_SUCCESS; - - if (hstmt != SQL_NULL_HSTMT) /* retrive stmt err */ - { - herr = pstmt->herr; - thdbc = pstmt->hdbc; - - if (thdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - hproc = _iodbcdm_getproc (thdbc, en_Error); - dhstmt = pstmt->dhstmt; - handle = 3; - } - else if (hdbc != SQL_NULL_HDBC) /* retrive dbc err */ - { - herr = pdbc->herr; - thdbc = hdbc; - if (thdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - hproc = _iodbcdm_getproc (thdbc, en_Error); - dhdbc = pdbc->dhdbc; - handle = 2; - - if (herr == SQL_NULL_HERR - && pdbc->henv == SQL_NULL_HENV) - { - return SQL_NO_DATA_FOUND; - } - } - else if (henv != SQL_NULL_HENV) /* retrive env err */ - { - herr = genv->herr; - - /* Drivers shouldn't push error message - * on envoriment handle */ - - if (herr == SQL_NULL_HERR) - { - return SQL_NO_DATA_FOUND; - } - - handle = 1; - } - else - { - return SQL_INVALID_HANDLE; - } - - if (szErrorMsg != NULL) - { - if (cbErrorMsgMax < 0 - || cbErrorMsgMax > SQL_MAX_MESSAGE_LENGTH - 1) - { - return SQL_ERROR; - /* SQLError() doesn't post error for itself */ - } - } - - if (herr == SQL_NULL_HERR) /* no err on drv mng */ - { - /* call driver */ - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (thdbc, retcode, hproc, en_Error, - (dhenv, dhdbc, dhstmt, szSqlstate, pfNativeError, szErrorMsg, - cbErrorMsgMax, pcbErrorMsg)) - - return retcode; - } - - if (szSqlstate != NULL) - { - int len; - - /* get sql state string */ - ststr = (char FAR *) _iodbcdm_getsqlstate (herr, - (void FAR *) sqlerrmsg_tab); - - if (ststr == NULL) - { - len = 0; - } - else - { - len = (int) STRLEN (ststr); - } - - STRNCPY (szSqlstate, ststr, len); - szSqlstate[len] = 0; - /* buffer size of szSqlstate is not checked. Applications - * suppose provide enough ( not less than 6 bytes ) buffer - * or NULL for it. - */ - } - - if (pfNativeError != NULL) - { - /* native error code is specific to data source */ - *pfNativeError = (SDWORD) 0L; - } - - if (szErrorMsg == NULL || cbErrorMsgMax == 0) - { - if (pcbErrorMsg != NULL) - { - *pcbErrorMsg = (SWORD) 0; - } - } - else - { - int len; - char msgbuf[256] = {'\0'}; - - /* get sql state message */ - errmsg = _iodbcdm_getsqlerrmsg (herr, (void FAR *) sqlerrmsg_tab); - - if (errmsg == NULL) - { - errmsg = (char FAR *) ""; - } - - sprintf (msgbuf, "%s%s", sqlerrhd, errmsg); - - len = STRLEN (msgbuf); - - if (len < cbErrorMsgMax - 1) - { - retcode = SQL_SUCCESS; - } - else - { - len = cbErrorMsgMax - 1; - retcode = SQL_SUCCESS_WITH_INFO; - /* and not posts error for itself */ - } - - STRNCPY ((char *) szErrorMsg, msgbuf, len); - szErrorMsg[len] = 0; - - if (pcbErrorMsg != NULL) - { - *pcbErrorMsg = (SWORD) len; - } - } - - switch (handle) /* free this err */ - { - case 1: - genv->herr = _iodbcdm_popsqlerr (genv->herr); - break; - - case 2: - pdbc->herr = _iodbcdm_popsqlerr (pdbc->herr); - break; - - case 3: - pstmt->herr = _iodbcdm_popsqlerr (pstmt->herr); - break; - - default: - break; - } - - return retcode; -} diff --git a/src/iodbc/herr.ci b/src/iodbc/herr.ci deleted file mode 100644 index c880c12a0d..0000000000 --- a/src/iodbc/herr.ci +++ /dev/null @@ -1,124 +0,0 @@ -/* - * herr.ci - * - * $Id$ - * - * Error messages - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -static const sqlerrmsg_t sqlerrmsg_tab[] = -{ - { en_00000, "00000", "" }, - { en_01000, "01000", "General warning" }, - { en_01002, "01002", "Disconnect error" }, - { en_01004, "01004", "Data truncated" }, - { en_01006, "01006", "Privilege not revoked" }, - { en_01S00, "01S00", "Invalid connection string attribute" }, - { en_01S01, "01S01", "Error in row" }, - { en_01S02, "01S02", "Optional value changed" }, - { en_01S03, "01S03", "No rows updated or deleted" }, - { en_01S04, "01S04", "More than one row updated or deleted" }, - { en_07001, "07001", "Wrong number of parameters" }, - { en_07006, "07006", "Restricted data type attribute violation" }, - { en_08001, "08001", "Unable to connect to data source" }, - { en_08002, "08002", "Connection in use" }, - { en_08003, "08003", "Connect not open" }, - { en_08004, "08004", "Data source rejected establishment of connection" }, - { en_08007, "08007", "Connection failure during transaction" }, - { en_08S01, "08S01", "Communication link failure" }, - { en_21S01, "21S01", "Insert value list does not match" }, - { en_21S02, "21S02", "Degree of derived table does not match column list" }, - { en_22001, "22001", "String data right truncation" }, - { en_22003, "22003", "Numeric value out of range" }, - { en_22005, "22005", "Error in assignment" }, - { en_22008, "22008", "Datetime field overflow" }, - { en_22012, "22012", "Division by zero" }, - { en_22026, "22026", "String data, length mismatch" }, - { en_23000, "23000", "Integrity constraint violation" }, - { en_24000, "24000", "Invalid cursor state" }, - { en_25000, "25000", "Invalid transaction state" }, - { en_28000, "28000", "Invalid authorization specification" }, - { en_34000, "34000", "Invalid cursor name" }, - { en_37000, "37000", "Syntex error or access violation" }, - { en_3C000, "3C000", "Duplicate cursor name" }, - { en_40001, "40001", "Serialization failure" }, - { en_42000, "42000", "Syntax error or access violation" }, - { en_70100, "70100", "Operation aborted" }, - { en_IM001, "IM001", "Driver does not support this function" }, - { en_IM002, "IM002", "Data source name not found and no default " - "driver specified. Driver could not be loaded" }, - { en_IM003, "IM003", "Specified driver could not be loaded" }, - { en_IM004, "IM004", "Driver's SQLAllocEnv() failed" }, - { en_IM005, "IM005", "Driver's SQLAllocConnect() failed" }, - { en_IM006, "IM006", "Driver's SQLSetConnectOption failed" }, - { en_IM007, "IM007", "No data source or driver specified, dialog prohibited" }, - { en_IM008, "IM008", "Dialog failed" }, - { en_IM009, "IM009", "Unable to load translation DLL" }, - { en_IM010, "IM010", "Data source name too long" }, - { en_IM011, "IM011", "Driver name too long" }, - { en_IM012, "IM012", "DRIVER keyword syntax error" }, - { en_IM013, "IM013", "Trace file error" }, - { en_IM014, "IM014", "Try to change tracing file while tracing is on" }, - { en_S0001, "S0001", "Base table or view already exists" }, - { en_S0002, "S0002", "Base table not found" }, - { en_S0011, "S0011", "Index already exists" }, - { en_S0012, "S0012", "Index not found" }, - { en_S0021, "S0021", "Column already exists" }, - { en_S0022, "S0022", "Column not found" }, - { en_S0023, "S0023", "No default for column" }, - { en_S1000, "S1000", "General error" }, - { en_S1001, "S1001", "Memory allocation failure" }, - { en_S1002, "S1002", "Invalid column number" }, - { en_S1003, "S1003", "Program type out of range" }, - { en_S1004, "S1004", "SQL data type out of range" }, - { en_S1008, "S1008", "Operation canceled" }, - { en_S1009, "S1009", "Invalid argument value" }, - { en_S1010, "S1010", "Function sequence error" }, - { en_S1011, "S1011", "Operation invalid at this time" }, - { en_S1012, "S1012", "Invalid transaction operation code specified" }, - { en_S1015, "S1015", "No cursor name available" }, - { en_S1090, "S1090", "Invalid string or buffer length" }, - { en_S1091, "S1091", "Descriptor type out of range" }, - { en_S1092, "S1092", "Option type out of range" }, - { en_S1093, "S1093", "Invalid parameter" }, - { en_S1094, "S1094", "Invalid scale value" }, - { en_S1095, "S1095", "Function type out of range" }, - { en_S1096, "S1096", "Information type out of range" }, - { en_S1097, "S1097", "Column type out of range" }, - { en_S1098, "S1098", "Scope type out of range" }, - { en_S1099, "S1099", "Nullable type out of range" }, - { en_S1100, "S1100", "Uniquenss option type out of range" }, - { en_S1101, "S1101", "Accuracy option type out of range" }, - { en_S1103, "S1103", "Direction option out of range" }, - { en_S1104, "S1104", "Invalid precision value" }, - { en_S1105, "S1105", "Invalid parameter type" }, - { en_S1106, "S1106", "Fetch type out of range" }, - { en_S1107, "S1107", "Row value out of range" }, - { en_S1108, "S1108", "Concurrency option out of range" }, - { en_S1109, "S1109", "Invalid cursor position" }, - { en_S1110, "S1110", "Invalid driver completion" }, - { en_S1111, "S1111", "Invalid bookmark value" }, - { en_S1C00, "S1C00", "Driver not capable" }, - { en_S1T00, "S1T00", "Timeout expired" }, - { en_sqlstat_total, NULL, NULL } -}; - -static char FAR* sqlerrhd = "[iODBC][Driver Manager]"; diff --git a/src/iodbc/herr.h b/src/iodbc/herr.h deleted file mode 100644 index 8355c012ad..0000000000 --- a/src/iodbc/herr.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * herr.h - * - * $Id$ - * - * Error stack management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _HERR_H -#define _HERR_H - -typedef enum - { - en_00000 = 0, - en_01000, - en_01002, - en_01004, - en_01006, - en_01S00, - en_01S01, - en_01S02, - en_01S03, - en_01S04, - en_07001, - en_07006, - en_08001, - en_08002, - en_08003, - en_08004, - en_08007, - en_08S01, - en_21S01, - en_21S02, - en_22001, - en_22003, - en_22005, - en_22008, - en_22012, - en_22026, - en_23000, - en_24000, - en_25000, - en_28000, - en_34000, - en_37000, - en_3C000, - en_40001, - en_42000, - en_70100, - en_IM001, - en_IM002, - en_IM003, - en_IM004, - en_IM005, - en_IM006, - en_IM007, - en_IM008, - en_IM009, - en_IM010, - en_IM011, - en_IM012, - en_IM013, - en_IM014, - en_S0001, - en_S0002, - en_S0011, - en_S0012, - en_S0021, - en_S0022, - en_S0023, - en_S1000, - en_S1001, - en_S1002, - en_S1003, - en_S1004, - en_S1008, - en_S1009, - en_S1010, - en_S1011, - en_S1012, - en_S1015, - en_S1090, - en_S1091, - en_S1092, - en_S1093, - en_S1094, - en_S1095, - en_S1096, - en_S1097, - en_S1098, - en_S1099, - en_S1100, - en_S1101, - en_S1103, - en_S1104, - en_S1105, - en_S1106, - en_S1107, - en_S1108, - en_S1109, - en_S1110, - en_S1111, - en_S1C00, - en_S1T00, - en_sqlstat_total - } -sqlstcode_t; - -typedef void FAR *HERR; -#define SQL_NULL_HERR ((HERR)NULL) - -typedef struct - { - sqlstcode_t code; - char FAR *stat; - char FAR *msg; - } -sqlerrmsg_t; - -typedef struct sqlerr - { - sqlstcode_t code; - int idx; - char FAR *msg; - struct sqlerr *next; - } -sqlerr_t; - -extern void _iodbcdm_freesqlerrlist (HERR herr); -extern HERR _iodbcdm_pushsqlerr (HERR list, sqlstcode_t code, char *sysmsg); - -#define PUSHSYSERR(list, msg) \ - list = (HERR)_iodbcdm_pushsqlerr( (HERR)(list), 0, (char*)msg ) -#define PUSHSQLERR(list, code) \ - list = (HERR)_iodbcdm_pushsqlerr( (HERR)(list), (int)(code), NULL ) -#endif /* _SQLERR_H */ diff --git a/src/iodbc/hstmt.c b/src/iodbc/hstmt.c deleted file mode 100644 index ccab2f4c40..0000000000 --- a/src/iodbc/hstmt.c +++ /dev/null @@ -1,600 +0,0 @@ -/* - * hstmt.c - * - * $Id$ - * - * Query statement object management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -RETCODE SQL_API -SQLAllocStmt ( - HDBC hdbc, - HSTMT FAR * phstmt) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - STMT_t FAR *pstmt = NULL; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode = SQL_SUCCESS; - -#if (ODBCVER >= 0x0300) - if (hdbc == SQL_NULL_HDBC || pdbc->type != SQL_HANDLE_DBC) -#else - if (hdbc == SQL_NULL_HDBC) -#endif - { - return SQL_INVALID_HANDLE; - } - - if (phstmt == NULL) - { - PUSHSQLERR (pdbc->herr, en_S1009); - - return SQL_ERROR; - } - - /* check state */ - switch (pdbc->state) - { - case en_dbc_connected: - case en_dbc_hstmt: - break; - - case en_dbc_allocated: - case en_dbc_needdata: - PUSHSQLERR (pdbc->herr, en_08003); - *phstmt = SQL_NULL_HSTMT; - return SQL_ERROR; - - default: - return SQL_INVALID_HANDLE; - } - - pstmt = (STMT_t FAR *) MEM_ALLOC (sizeof (STMT_t)); - - if (pstmt == NULL) - { - PUSHSQLERR (pdbc->herr, en_S1001); - *phstmt = SQL_NULL_HSTMT; - - return SQL_ERROR; - } - -#if (ODBCVER >= 0x0300) - pstmt->type = SQL_HANDLE_STMT; -#endif - - /* initiate the object */ - pstmt->herr = SQL_NULL_HERR; - pstmt->hdbc = hdbc; - pstmt->state = en_stmt_allocated; - pstmt->cursor_state = en_stmt_cursor_no; - pstmt->prep_state = 0; - pstmt->asyn_on = en_NullProc; - pstmt->need_on = en_NullProc; - - /* call driver's function */ - -#if (ODBCVER >= 0x0300) - hproc = _iodbcdm_getproc (hdbc, en_AllocHandle); - - if (hproc) - { - CALL_DRIVER (pstmt->hdbc, hdbc, retcode, hproc, en_AllocHandle, - (SQL_HANDLE_STMT, pdbc->dhdbc, &(pstmt->dhstmt))) - } - else -#endif - - { - hproc = _iodbcdm_getproc (hdbc, en_AllocStmt); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - *phstmt = SQL_NULL_HSTMT; - MEM_FREE (pstmt); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_AllocStmt, - (pdbc->dhdbc, &(pstmt->dhstmt))) - } - - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - { - *phstmt = SQL_NULL_HSTMT; - MEM_FREE (pstmt); - - return retcode; - } - - /* insert into list */ - pstmt->next = pdbc->hstmt; - pdbc->hstmt = pstmt; - - *phstmt = (HSTMT) pstmt; - - /* state transition */ - pdbc->state = en_dbc_hstmt; - - return SQL_SUCCESS; -} - - -RETCODE -_iodbcdm_dropstmt (HSTMT hstmt) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - STMT_t FAR *tpstmt; - DBC_t FAR *pdbc; - - if (hstmt == SQL_NULL_HSTMT) - { - return SQL_INVALID_HANDLE; - } - - pdbc = (DBC_t FAR *) (pstmt->hdbc); - - for (tpstmt = (STMT_t FAR *) pdbc->hstmt; - tpstmt != NULL; - tpstmt = tpstmt->next) - { - if (tpstmt == pstmt) - { - pdbc->hstmt = (HSTMT) pstmt->next; - break; - } - - if (tpstmt->next == pstmt) - { - tpstmt->next = pstmt->next; - break; - } - } - - if (tpstmt == NULL) - { - return SQL_INVALID_HANDLE; - } - - _iodbcdm_freesqlerrlist (pstmt->herr); - MEM_FREE (hstmt); - - return SQL_SUCCESS; -} - - -RETCODE SQL_API -SQLFreeStmt ( - HSTMT hstmt, - UWORD fOption) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - STMT_t FAR *tpstmt; - DBC_t FAR *pdbc; - - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - pdbc = (DBC_t FAR *) (pstmt->hdbc); - - /* check option */ - switch (fOption) - { - case SQL_DROP: - case SQL_CLOSE: - case SQL_UNBIND: - case SQL_RESET_PARAMS: - break; - - default: - PUSHSQLERR (pstmt->herr, en_S1092); - return SQL_ERROR; - } - - /* check state */ - if (pstmt->state >= en_stmt_needdata || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - hproc = SQL_NULL_HPROC; - -#if (ODBCVER >= 0x0300) - if (fOption == SQL_DROP) - { - hproc = _iodbcdm_getproc (pstmt->hdbc, en_FreeHandle); - - if (hproc) - { - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_FreeHandle, - (SQL_HANDLE_STMT, pstmt->dhstmt)) - } - } -#endif - - if (hproc == SQL_NULL_HPROC) - { - hproc = _iodbcdm_getproc (pstmt->hdbc, en_FreeStmt); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_FreeStmt, - (pstmt->dhstmt, fOption)) - } - - if (retcode != SQL_SUCCESS - && retcode != SQL_SUCCESS_WITH_INFO) - { - return retcode; - } - - /* state transition */ - switch (fOption) - { - case SQL_DROP: - /* delet this object (ignore return) */ - _iodbcdm_dropstmt (hstmt); - break; - - case SQL_CLOSE: - pstmt->cursor_state = en_stmt_cursor_no; - /* This means cursor name set by - * SQLSetCursorName() call will also - * be erased. - */ - - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - break; - - case en_stmt_executed: - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - if (pstmt->prep_state) - { - pstmt->state = - en_stmt_prepared; - } - else - { - pstmt->state = - en_stmt_allocated; - } - break; - - default: - break; - } - break; - - case SQL_UNBIND: - case SQL_RESET_PARAMS: - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLSetStmtOption ( - HSTMT hstmt, - UWORD fOption, - UDWORD vParam) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - int sqlstat = en_00000; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check option */ - if ( /* fOption < SQL_STMT_OPT_MIN || */ - fOption > SQL_STMT_OPT_MAX) - { - PUSHSQLERR (pstmt->herr, en_S1092); - - return SQL_ERROR; - } - - if (fOption == SQL_CONCURRENCY - || fOption == SQL_CURSOR_TYPE - || fOption == SQL_SIMULATE_CURSOR - || fOption == SQL_USE_BOOKMARKS) - { - if (pstmt->asyn_on != en_NullProc) - { - if (pstmt->prep_state) - { - sqlstat = en_S1011; - } - } - else - { - switch (pstmt->state) - { - case en_stmt_prepared: - sqlstat = en_S1011; - break; - - case en_stmt_executed: - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - sqlstat = en_24000; - break; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - if (pstmt->prep_state) - { - sqlstat = en_S1011; - } - break; - - default: - break; - } - } - } - else - { - if (pstmt->asyn_on != en_NullProc) - { - if (!pstmt->prep_state) - { - sqlstat = en_S1010; - } - } - else - { - if (pstmt->state >= en_stmt_needdata) - { - sqlstat = en_S1010; - } - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_SetStmtOption); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_SetStmtOption, - (pstmt->dhstmt, fOption, vParam)) - - return retcode; -} - - -RETCODE SQL_API -SQLGetStmtOption ( - HSTMT hstmt, - UWORD fOption, - PTR pvParam) -{ - STMT_t FAR *pstmt = (STMT_t *) hstmt; - HPROC hproc; - int sqlstat = en_00000; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check option */ - if ( /* fOption < SQL_STMT_OPT_MIN || */ - fOption > SQL_STMT_OPT_MAX) - { - PUSHSQLERR (pstmt->herr, en_S1092); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->state >= en_stmt_needdata - || pstmt->asyn_on != en_NullProc) - { - sqlstat = en_S1010; - } - else - { - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - case en_stmt_executed: - case en_stmt_cursoropen: - if (fOption == SQL_ROW_NUMBER || fOption == SQL_GET_BOOKMARK) - { - sqlstat = en_24000; - } - break; - - default: - break; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_GetStmtOption); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_GetStmtOption, - (pstmt->dhstmt, fOption, pvParam)) - - return retcode; -} - - -RETCODE SQL_API -SQLCancel (HSTMT hstmt) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - /* check state */ - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Cancel); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Cancel, - (pstmt->dhstmt)) - - /* state transition */ - if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO) - { - return retcode; - } - - switch (pstmt->state) - { - case en_stmt_allocated: - case en_stmt_prepared: - break; - - case en_stmt_executed: - if (pstmt->prep_state) - { - pstmt->state = en_stmt_prepared; - } - else - { - pstmt->state = en_stmt_allocated; - } - break; - - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - if (pstmt->prep_state) - { - pstmt->state = en_stmt_prepared; - } - else - { - pstmt->state = en_stmt_allocated; - } - break; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - switch (pstmt->need_on) - { - case en_ExecDirect: - pstmt->state = en_stmt_allocated; - break; - - case en_Execute: - pstmt->state = en_stmt_prepared; - break; - - case en_SetPos: - pstmt->state = en_stmt_xfetched; - break; - - default: - break; - } - pstmt->need_on = en_NullProc; - break; - - default: - break; - } - - return retcode; -} diff --git a/src/iodbc/hstmt.h b/src/iodbc/hstmt.h deleted file mode 100644 index 505200993a..0000000000 --- a/src/iodbc/hstmt.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * hstmt.h - * - * $Id$ - * - * Query statement object management functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _HSTMT_H -#define _HSTMT_H - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -typedef struct STMT - { - int type; /* must be 1st field */ - - struct STMT *next; - - HERR herr; - HDBC hdbc; /* back point to connection object */ - HSTMT dhstmt; /* driver's stmt handle */ - - int state; - int cursor_state; - int prep_state; - int asyn_on; /* async executing which odbc call */ - int need_on; /* which call return SQL_NEED_DATA */ - } -STMT_t; - -enum - { - en_stmt_allocated = 0, - en_stmt_prepared, - en_stmt_executed, - en_stmt_cursoropen, - en_stmt_fetched, - en_stmt_xfetched, - en_stmt_needdata, /* not call SQLParamData() yet */ - en_stmt_mustput, /* not call SQLPutData() yet */ - en_stmt_canput /* SQLPutData() called */ - }; /* for statement handle state */ - -enum - { - en_stmt_cursor_no = 0, - en_stmt_cursor_named, - en_stmt_cursor_opened, - en_stmt_cursor_fetched, - en_stmt_cursor_xfetched - }; /* for statement cursor state */ - -extern RETCODE _iodbcdm_dropstmt (); -#endif diff --git a/src/iodbc/info.c b/src/iodbc/info.c deleted file mode 100644 index 0c8fda5ec3..0000000000 --- a/src/iodbc/info.c +++ /dev/null @@ -1,517 +0,0 @@ -/* - * info.c - * - * $Id$ - * - * Information functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -#include -#include - -#define SECT1 "ODBC Data Sources" -#define SECT2 "Default" -#define MAX_ENTRIES 1024 - -extern char * _iodbcdm_getinifile (char *buf, int size); -extern char * _iodbcdm_getkeyvalbydsn (char *dsn, int dsnlen, char *keywd, char *value, int size); - -static int -stricmp (const char *s1, const char *s2) -{ - int cmp; - - while (*s1) - { - if ((cmp = toupper (*s1) - toupper (*s2)) != 0) - return cmp; - s1++; - s2++; - } - return (*s2) ? -1 : 0; -} - -static int -SectSorter (const void *p1, const void *p2) -{ - char **s1 = (char **) p1; - char **s2 = (char **) p2; - - return stricmp (*s1, *s2); -} - - -RETCODE SQL_API -SQLDataSources ( - HENV henv, - UWORD fDir, - UCHAR FAR * szDSN, - SWORD cbDSNMax, - SWORD FAR * pcbDSN, - UCHAR FAR * szDesc, - SWORD cbDescMax, - SWORD FAR * pcbDesc) -{ - GENV_t FAR *genv = (GENV_t FAR *) henv; - char *path; - char buf[1024]; - FILE *fp; - int i; - static int cur_entry = -1; - static int num_entries = 0; - static char **sect = NULL; - - if (henv == SQL_NULL_HENV) - { - return SQL_INVALID_HANDLE; - } - /* check argument */ - if (cbDSNMax < 0 || cbDescMax < 0) - { - PUSHSQLERR (genv->herr, en_S1090); - - return SQL_ERROR; - } - if (fDir != SQL_FETCH_FIRST - && fDir != SQL_FETCH_NEXT) - { - PUSHSQLERR (genv->herr, en_S1103); - - return SQL_ERROR; - } - if (cur_entry < 0 || fDir == SQL_FETCH_FIRST) - { - cur_entry = 0; - num_entries = 0; - - - /* - * Open the odbc.ini file - */ - path = (char *) _iodbcdm_getinifile (buf, sizeof (buf)); - if ((fp = fopen (path, "r")) == NULL) - { - return SQL_NO_DATA_FOUND; - } - /* - * Free old section list - */ - if (sect) - { - for (i = 0; i < MAX_ENTRIES; i++) - if (sect[i]) - free (sect[i]); - free (sect); - } - if ((sect = (char **) calloc (MAX_ENTRIES, sizeof (char *))) == NULL) - { - PUSHSQLERR (genv->herr, en_S1011); - - return SQL_ERROR; - } - /* - * Build a dynamic list of sections - */ - while (1) - { - char *str, *p; - - str = fgets (buf, sizeof (buf), fp); - - if (str == NULL) - break; - - if (*str == '[') - { - str++; - for (p = str; *p; p++) - if (*p == ']') - *p = '\0'; - - if (!strcmp (str, SECT1)) - continue; - if (!strcmp (str, SECT2)) - continue; - - /* - * Add this section to the comma separated list - */ - if (num_entries >= MAX_ENTRIES) - break; /* Skip the rest */ - - sect[num_entries++] = (char *) strdup (str); - } - } - - /* - * Sort all entries so we can present a nice list - */ - if (num_entries > 1) - qsort (sect, num_entries, sizeof (char *), SectSorter); - } - /* - * Try to get to the next item - */ - if (cur_entry >= num_entries) - { - cur_entry = 0; /* Next time, start all over again */ - return SQL_NO_DATA_FOUND; - } - /* - * Copy DSN information - */ - STRNCPY (szDSN, sect[cur_entry], cbDSNMax); - - /* - * And find the description that goes with this entry - */ - _iodbcdm_getkeyvalbydsn (sect[cur_entry], strlen (sect[cur_entry]), - "Description", szDesc, cbDescMax); - - /* - * Next record - */ - cur_entry++; - - return SQL_SUCCESS; -} - - -RETCODE SQL_API -SQLDrivers ( - HENV henv, - UWORD fDir, - UCHAR FAR * szDrvDesc, - SWORD cbDrvDescMax, - SWORD FAR * pcbDrvDesc, - UCHAR FAR * szDrvAttr, - SWORD cbDrvAttrMax, - SWORD FAR * pcbDrvAttr) -{ - GENV_t FAR *genv = (GENV_t FAR *) henv; - - if (henv == SQL_NULL_HENV) - { - return SQL_INVALID_HANDLE; - } - - if (cbDrvDescMax < 0 || cbDrvAttrMax < 0 || cbDrvAttrMax == 1) - { - PUSHSQLERR (genv->herr, en_S1090); - - return SQL_ERROR; - } - - if (fDir != SQL_FETCH_FIRST || fDir != SQL_FETCH_NEXT) - { - PUSHSQLERR (genv->herr, en_S1103); - - return SQL_ERROR; - } - -/*********************/ - return SQL_NO_DATA_FOUND; -} - - -RETCODE SQL_API -SQLGetInfo ( - HDBC hdbc, - UWORD fInfoType, - PTR rgbInfoValue, - SWORD cbInfoValueMax, - SWORD FAR * pcbInfoValue) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - ENV_t FAR *penv; - STMT_t FAR *pstmt = NULL; - STMT_t FAR *tpstmt; - HPROC hproc; - RETCODE retcode = SQL_SUCCESS; - - DWORD dword; - int size = 0, len = 0; - char buf[16] = {'\0'}; - - if (hdbc == SQL_NULL_HDBC || pdbc->henv == SQL_NULL_HENV) - { - return SQL_INVALID_HANDLE; - } - - if (cbInfoValueMax < 0) - { - PUSHSQLERR (pdbc->herr, en_S1090); - - return SQL_ERROR; - } - - if ( /* fInfoType < SQL_INFO_FIRST || */ - (fInfoType > SQL_INFO_LAST - && fInfoType < SQL_INFO_DRIVER_START)) - { - PUSHSQLERR (pdbc->herr, en_S1096); - - return SQL_ERROR; - } - - if (fInfoType == SQL_ODBC_VER) - { - sprintf (buf, "%02d.%02d", - (ODBCVER) >> 8, 0x00FF & (ODBCVER)); - - - if (rgbInfoValue != NULL - && cbInfoValueMax > 0) - { - len = STRLEN (buf); - - if (len < cbInfoValueMax - 1) - { - len = cbInfoValueMax - 1; - PUSHSQLERR (pdbc->herr, en_01004); - - retcode = SQL_SUCCESS_WITH_INFO; - } - - STRNCPY (rgbInfoValue, buf, len); - ((char FAR *) rgbInfoValue)[len] = '\0'; - } - - if (pcbInfoValue != NULL) - { - *pcbInfoValue = (SWORD) len; - } - - return retcode; - } - - if (pdbc->state == en_dbc_allocated || pdbc->state == en_dbc_needdata) - { - PUSHSQLERR (pdbc->herr, en_08003); - - return SQL_ERROR; - } - - switch (fInfoType) - { - case SQL_DRIVER_HDBC: - dword = (DWORD) (pdbc->dhdbc); - size = sizeof (dword); - break; - - case SQL_DRIVER_HENV: - penv = (ENV_t FAR *) (pdbc->henv); - dword = (DWORD) (penv->dhenv); - size = sizeof (dword); - break; - - case SQL_DRIVER_HLIB: - penv = (ENV_t FAR *) (pdbc->henv); - dword = (DWORD) (penv->hdll); - size = sizeof (dword); - break; - - case SQL_DRIVER_HSTMT: - if (rgbInfoValue != NULL) - { - pstmt = *((STMT_t FAR **) rgbInfoValue); - } - - for (tpstmt = (STMT_t FAR *) (pdbc->hstmt); - tpstmt != NULL; - tpstmt = tpstmt->next) - { - if (tpstmt == pstmt) - { - break; - } - } - - if (tpstmt == NULL) - { - PUSHSQLERR (pdbc->herr, en_S1009); - - return SQL_ERROR; - } - - dword = (DWORD) (pstmt->dhstmt); - size = sizeof (dword); - break; - - default: - break; - } - - if (size) - { - if (rgbInfoValue != NULL) - { - *((DWORD *) rgbInfoValue) = dword; - } - - if (pcbInfoValue != NULL) - { - *(pcbInfoValue) = (SWORD) size; - } - - return SQL_SUCCESS; - } - - hproc = _iodbcdm_getproc (hdbc, en_GetInfo); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pdbc->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (hdbc, retcode, hproc, en_GetInfo, - (pdbc->dhdbc, fInfoType, rgbInfoValue, cbInfoValueMax, pcbInfoValue)) - - if (retcode == SQL_ERROR - && fInfoType == SQL_DRIVER_ODBC_VER) - { - STRCPY (buf, "01.00"); - - if (rgbInfoValue != NULL - && cbInfoValueMax > 0) - { - len = STRLEN (buf); - - if (len < cbInfoValueMax - 1) - { - len = cbInfoValueMax - 1; - PUSHSQLERR (pdbc->herr, en_01004); - } - - STRNCPY (rgbInfoValue, buf, len); - ((char FAR *) rgbInfoValue)[len] = '\0'; - } - - if (pcbInfoValue != NULL) - { - *pcbInfoValue = (SWORD) len; - } - - /* what should we return in this case ???? */ - } - - return retcode; -} - - -RETCODE SQL_API -SQLGetFunctions ( - HDBC hdbc, - UWORD fFunc, - UWORD FAR * pfExists) -{ - DBC_t FAR *pdbc = (DBC_t FAR *) hdbc; - HPROC hproc; - RETCODE retcode; - - if (hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - if (fFunc > SQL_EXT_API_LAST) - { - PUSHSQLERR (pdbc->herr, en_S1095); - - return SQL_ERROR; - } - - if (pdbc->state == en_dbc_allocated - || pdbc->state == en_dbc_needdata) - { - PUSHSQLERR (pdbc->herr, en_S1010); - - return SQL_ERROR; - } - - if (pfExists == NULL) - { - return SQL_SUCCESS; - } - - hproc = _iodbcdm_getproc (hdbc, en_GetFunctions); - - if (hproc != SQL_NULL_HPROC) - { - CALL_DRIVER (hdbc, retcode, hproc, en_GetFunctions, - (pdbc->dhdbc, fFunc, pfExists)) - - return retcode; - } - - if (fFunc == SQL_API_SQLSETPARAM) - { - fFunc = SQL_API_SQLBINDPARAMETER; - } - - if (fFunc != SQL_API_ALL_FUNCTIONS) - { - hproc = _iodbcdm_getproc (hdbc, fFunc); - - if (hproc == SQL_NULL_HPROC) - { - *pfExists = (UWORD) 0; - } - else - { - *pfExists = (UWORD) 1; - } - - return SQL_SUCCESS; - } - - for (fFunc = 0; fFunc < 100; fFunc++) - { - hproc = _iodbcdm_getproc (hdbc, fFunc); - - if (hproc == SQL_NULL_HPROC) - { - pfExists[fFunc] = (UWORD) 0; - } - else - { - pfExists[fFunc] = (UWORD) 1; - } - } - - return SQL_SUCCESS; -} diff --git a/src/iodbc/iodbc.h b/src/iodbc/iodbc.h deleted file mode 100644 index e60123d0b2..0000000000 --- a/src/iodbc/iodbc.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef _CONFIG_H -#define _CONFIG_H - -# if !defined(WINDOWS) && !defined(WIN32_SYSTEM) -# define _UNIX_ - -# include -# include - -# define MEM_ALLOC(size) (malloc((size_t)(size))) -# define MEM_FREE(ptr) {if(ptr) free(ptr);} - -# define STRCPY(t, s) (strcpy((char*)(t), (char*)(s))) -# define STRNCPY(t,s,n) (strncpy((char*)(t), (char*)(s), (size_t)(n))) -# define STRCAT(t, s) (strcat((char*)(t), (char*)(s))) -# define STRNCAT(t,s,n) (strncat((char*)(t), (char*)(s), (size_t)(n))) -# define STREQ(a, b) (strcmp((char*)(a), (char*)(b)) == 0) -# define STRLEN(str) ((str)? strlen((char*)(str)):0) - -# define EXPORT -# define CALLBACK -# define FAR - - typedef signed short SSHOR; - typedef short WORD; - typedef long DWORD; - - typedef WORD WPARAM; - typedef DWORD LPARAM; - typedef void* HWND; - typedef int BOOL; - -# endif /* _UNIX_ */ - -# if defined(WINDOWS) || defined(WIN32_SYSTEM) - -# include -# include - -# ifdef _MSVC_ -# define MEM_ALLOC(size) (fmalloc((size_t)(size))) -# define MEM_FREE(ptr) ((ptr)? ffree((PTR)(ptr)):0)) -# define STRCPY(t, s) (fstrcpy((char FAR*)(t), (char FAR*)(s))) -# define STRNCPY(t,s,n) (fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n))) -# define STRLEN(str) ((str)? fstrlen((char FAR*)(str)):0) -# define STREQ(a, b) (fstrcmp((char FAR*)(a), (char FAR*)(b) == 0) -# endif - -# ifdef _BORLAND_ -# define MEM_ALLOC(size) (farmalloc((unsigned long)(size)) -# define MEM_FREE(ptr) ((ptr)? farfree((void far*)(ptr)):0) -# define STRCPY(t, s) (_fstrcpy((char FAR*)(t), (char FAR*)(s))) -# define STRNCPY(t,s,n) (_fstrncpy((char FAR*)(t), (char FAR*)(s), (size_t)(n))) -# define STRLEN(str) ((str)? _fstrlen((char FAR*)(str)):0) -# define STREQ(a, b) (_fstrcmp((char FAR*)(a), (char FAR*)(b) == 0) -# endif - -# endif /* WINDOWS */ - -# define SYSERR (-1) - -# ifndef NULL -# define NULL ((void FAR*)0UL) -# endif - -#endif diff --git a/src/iodbc/isql.h b/src/iodbc/isql.h deleted file mode 100644 index 5774241d4c..0000000000 --- a/src/iodbc/isql.h +++ /dev/null @@ -1,228 +0,0 @@ -/* - * isql.h - * - * $Id$ - * - * iODBC defines - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _ISQL_H -#define _ISQL_H - -#ifdef WIN32 -#define SQL_API __stdcall -#else -#define FAR -#define EXPORT -#define CALLBACK -#define SQL_API EXPORT CALLBACK - -typedef void *HWND; -#endif - -typedef unsigned char UCHAR; -typedef long int SDWORD; -typedef short int SWORD; -typedef unsigned long int UDWORD; -typedef unsigned short int UWORD; - -typedef void FAR *PTR; -typedef void FAR *HENV; -typedef void FAR *HDBC; -typedef void FAR *HSTMT; - -typedef signed short RETCODE; -#define SQLRETURN RETCODE - - -#define ODBCVER 0x0250 - -#define SQL_MAX_MESSAGE_LENGTH 512 -#define SQL_MAX_DSN_LENGTH 32 - -/* - * Function return codes - */ -#define SQL_INVALID_HANDLE (-2) -#define SQL_ERROR (-1) -#define SQL_SUCCESS 0 -#define SQL_SUCCESS_WITH_INFO 1 -#define SQL_NO_DATA_FOUND 100 - -/* - * Standard SQL datatypes, using ANSI type numbering - */ -#define SQL_CHAR 1 -#define SQL_NUMERIC 2 -#define SQL_DECIMAL 3 -#define SQL_INTEGER 4 -#define SQL_SMALLINT 5 -#define SQL_FLOAT 6 -#define SQL_REAL 7 -#define SQL_DOUBLE 8 -#define SQL_VARCHAR 12 - -#define SQL_TYPE_MIN SQL_CHAR -#define SQL_TYPE_NULL 0 -#define SQL_TYPE_MAX SQL_VARCHAR - -/* - * C datatype to SQL datatype mapping - */ -#define SQL_C_CHAR SQL_CHAR -#define SQL_C_LONG SQL_INTEGER -#define SQL_C_SHORT SQL_SMALLINT -#define SQL_C_FLOAT SQL_REAL -#define SQL_C_DOUBLE SQL_DOUBLE -#define SQL_C_DEFAULT 99 - -/* - * NULL status constants. - */ -#define SQL_NO_NULLS 0 -#define SQL_NULLABLE 1 -#define SQL_NULLABLE_UNKNOWN 2 - -/* - * Special length values - */ -#define SQL_NULL_DATA (-1) -#define SQL_DATA_AT_EXEC (-2) -#define SQL_NTS (-3) - -/* - * SQLFreeStmt - */ -#define SQL_CLOSE 0 -#define SQL_DROP 1 -#define SQL_UNBIND 2 -#define SQL_RESET_PARAMS 3 - -/* - * SQLTransact - */ -#define SQL_COMMIT 0 -#define SQL_ROLLBACK 1 - -/* - * SQLColAttributes - */ -#define SQL_COLUMN_COUNT 0 -#define SQL_COLUMN_NAME 1 -#define SQL_COLUMN_TYPE 2 -#define SQL_COLUMN_LENGTH 3 -#define SQL_COLUMN_PRECISION 4 -#define SQL_COLUMN_SCALE 5 -#define SQL_COLUMN_DISPLAY_SIZE 6 -#define SQL_COLUMN_NULLABLE 7 -#define SQL_COLUMN_UNSIGNED 8 -#define SQL_COLUMN_MONEY 9 -#define SQL_COLUMN_UPDATABLE 10 -#define SQL_COLUMN_AUTO_INCREMENT 11 -#define SQL_COLUMN_CASE_SENSITIVE 12 -#define SQL_COLUMN_SEARCHABLE 13 -#define SQL_COLUMN_TYPE_NAME 14 -#define SQL_COLUMN_TABLE_NAME 15 -#define SQL_COLUMN_OWNER_NAME 16 -#define SQL_COLUMN_QUALIFIER_NAME 17 -#define SQL_COLUMN_LABEL 18 - -#define SQL_COLATT_OPT_MAX SQL_COLUMN_LABEL -#define SQL_COLATT_OPT_MIN SQL_COLUMN_COUNT -#define SQL_COLUMN_DRIVER_START 1000 - -/* - * SQLColAttributes : SQL_COLUMN_UPDATABLE - */ -#define SQL_ATTR_READONLY 0 -#define SQL_ATTR_WRITE 1 -#define SQL_ATTR_READWRITE_UNKNOWN 2 - -/* - * SQLColAttributes : SQL_COLUMN_SEARCHABLE - */ -#define SQL_UNSEARCHABLE 0 -#define SQL_LIKE_ONLY 1 -#define SQL_ALL_EXCEPT_LIKE 2 -#define SQL_SEARCHABLE 3 - -/* - * NULL Handles - */ -#define SQL_NULL_HENV 0 -#define SQL_NULL_HDBC 0 -#define SQL_NULL_HSTMT 0 - - -/* - * Function Prototypes - */ -#ifdef __cplusplus -extern "C" -{ -#endif - - RETCODE SQL_API SQLAllocConnect (HENV henv, HDBC FAR * phdbc); - RETCODE SQL_API SQLAllocEnv (HENV FAR * phenv); - RETCODE SQL_API SQLAllocStmt (HDBC hdbc, HSTMT FAR * phstmt); - RETCODE SQL_API SQLBindCol (HSTMT hstmt, UWORD icol, SWORD fCType, - PTR rgbValue, SDWORD cbValueMax, SDWORD FAR * pcbValue); - RETCODE SQL_API SQLCancel (HSTMT hstmt); - RETCODE SQL_API SQLColAttributes (HSTMT hstmt, UWORD icol, UWORD fDescType, - PTR rgbDesc, SWORD cbDescMax, SWORD FAR * pcbDesc, SDWORD FAR * pfDesc); - RETCODE SQL_API SQLConnect (HDBC hdbc, UCHAR FAR * szDSN, SWORD cbDSN, - UCHAR FAR * szUID, SWORD cbUID, UCHAR FAR * szAuthStr, SWORD cbAuthStr); - RETCODE SQL_API SQLDescribeCol (HSTMT hstmt, UWORD icol, - UCHAR FAR * szColName, SWORD cbColNameMax, SWORD FAR * pcbColName, - SWORD FAR * pfSqlType, UDWORD FAR * pcbColDef, SWORD FAR * pibScale, - SWORD FAR * pfNullable); - RETCODE SQL_API SQLDisconnect (HDBC hdbc); - RETCODE SQL_API SQLError (HENV henv, HDBC hdbc, HSTMT hstmt, - UCHAR FAR * szSqlState, SDWORD FAR * pfNativeError, UCHAR FAR * szErrorMsg, - SWORD cbErrorMsgMax, SWORD FAR * pcbErrorMsg); - RETCODE SQL_API SQLExecDirect (HSTMT hstmt, UCHAR FAR * szSqlStr, - SDWORD cbSqlStr); - RETCODE SQL_API SQLExecute (HSTMT hstmt); - RETCODE SQL_API SQLFetch (HSTMT hstmt); - RETCODE SQL_API SQLFreeConnect (HDBC hdbc); - RETCODE SQL_API SQLFreeEnv (HENV henv); - RETCODE SQL_API SQLFreeStmt (HSTMT hstmt, UWORD fOption); - RETCODE SQL_API SQLGetCursorName (HSTMT hstmt, UCHAR FAR * szCursor, - SWORD cbCursorMax, SWORD FAR * pcbCursor); - RETCODE SQL_API SQLNumResultCols (HSTMT hstmt, SWORD FAR * pccol); - RETCODE SQL_API SQLPrepare (HSTMT hstmt, UCHAR FAR * szSqlStr, - SDWORD cbSqlStr); - RETCODE SQL_API SQLRowCount (HSTMT hstmt, SDWORD FAR * pcrow); - RETCODE SQL_API SQLSetCursorName (HSTMT hstmt, UCHAR FAR * szCursor, - SWORD cbCursor); - RETCODE SQL_API SQLTransact (HENV henv, HDBC hdbc, UWORD fType); - -/* - * Depreciated ODBC 1.0 function - Use SQLBindParameter - */ - RETCODE SQL_API SQLSetParam (HSTMT hstmt, UWORD ipar, SWORD fCType, - SWORD fSqlType, UDWORD cbColDef, SWORD ibScale, PTR rgbValue, - SDWORD FAR * pcbValue); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/iodbc/isqlext.h b/src/iodbc/isqlext.h deleted file mode 100644 index c70c08ce17..0000000000 --- a/src/iodbc/isqlext.h +++ /dev/null @@ -1,1177 +0,0 @@ -/* - * - * isqlext.h - * - * $Id$ - * - * iODBC defines (ext) - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _ISQLEXT_H -# define _ISQLEXT_H - -#include "isql.h" - -/* - * Generic constants - */ -#define SQL_MAX_OPTION_STRING_LENGTH 256 - -/* - * Additional return codes - */ -#define SQL_STILL_EXECUTING 2 -#define SQL_NEED_DATA 99 - -/* - * SQL extended datatypes - */ -#define SQL_DATE 9 -#define SQL_TIME 10 -#define SQL_TIMESTAMP 11 -#define SQL_LONGVARCHAR (-1) -#define SQL_BINARY (-2) -#define SQL_VARBINARY (-3) -#define SQL_LONGVARBINARY (-4) -#define SQL_BIGINT (-5) -#define SQL_TINYINT (-6) -#define SQL_BIT (-7) - -#define SQL_INTERVAL_YEAR (-80) -#define SQL_INTERVAL_MONTH (-81) -#define SQL_INTERVAL_YEAR_TO_MONTH (-82) -#define SQL_INTERVAL_DAY (-83) -#define SQL_INTERVAL_HOUR (-84) -#define SQL_INTERVAL_MINUTE (-85) -#define SQL_INTERVAL_SECOND (-86) -#define SQL_INTERVAL_DAY_TO_HOUR (-87) -#define SQL_INTERVAL_DAY_TO_MINUTE (-88) -#define SQL_INTERVAL_DAY_TO_SECOND (-89) -#define SQL_INTERVAL_HOUR_TO_MINUTE (-90) -#define SQL_INTERVAL_HOUR_TO_SECOND (-91) -#define SQL_INTERVAL_MINUTE_TO_SECOND (-92) -#define SQL_UNICODE (-95) - -#define SQL_TYPE_DRIVER_START SQL_INTERVAL_YEAR -#define SQL_TYPE_DRIVER_END SQL_UNICODE - -#define SQL_SIGNED_OFFSET (-20) -#define SQL_UNSIGNED_OFFSET (-22) - -/* - * C datatype to SQL datatype mapping - */ -#define SQL_C_DATE SQL_DATE -#define SQL_C_TIME SQL_TIME -#define SQL_C_TIMESTAMP SQL_TIMESTAMP -#define SQL_C_BINARY SQL_BINARY -#define SQL_C_BIT SQL_BIT -#define SQL_C_TINYINT SQL_TINYINT -#define SQL_C_SLONG SQL_C_LONG+SQL_SIGNED_OFFSET -#define SQL_C_SSHORT SQL_C_SHORT+SQL_SIGNED_OFFSET -#define SQL_C_STINYINT SQL_TINYINT+SQL_SIGNED_OFFSET -#define SQL_C_ULONG SQL_C_LONG+SQL_UNSIGNED_OFFSET -#define SQL_C_USHORT SQL_C_SHORT+SQL_UNSIGNED_OFFSET -#define SQL_C_UTINYINT SQL_TINYINT+SQL_UNSIGNED_OFFSET -#define SQL_C_BOOKMARK SQL_C_ULONG - -/* - * Extended data types override sql.h defined - */ -#undef SQL_TYPE_MIN -#define SQL_TYPE_MIN SQL_BIT -#define SQL_ALL_TYPES 0 - -/* - * SQL portable types for C - DATE, TIME, TIMESTAMP - */ -typedef struct _DATE_STRUCT - { - SWORD year; - UWORD month; - UWORD day; - } -DATE_STRUCT; - -typedef struct _TIME_STRUCT - { - UWORD hour; - UWORD minute; - UWORD second; - } -TIME_STRUCT; - -typedef struct _TIMESTAMP_STRUCT - { - SWORD year; - UWORD month; - UWORD day; - UWORD hour; - UWORD minute; - UWORD second; - UDWORD fraction; - } -TIMESTAMP_STRUCT; - -typedef unsigned long int BOOKMARK; - -/* - * ---------------------------------------------------------------------- - * Level 1 Functions - * ---------------------------------------------------------------------- - */ - -/* - * SQLDriverConnect - */ -#define SQL_DRIVER_NOPROMPT 0 -#define SQL_DRIVER_COMPLETE 1 -#define SQL_DRIVER_PROMPT 2 -#define SQL_DRIVER_COMPLETE_REQUIRED 3 - -/* - * SQLGetData - */ -#define SQL_NO_TOTAL (-4) - -/* - * SQLBindParameter - */ -#define SQL_DEFAULT_PARAM (-5) -#define SQL_IGNORE (-6) -#define SQL_LEN_DATA_AT_EXEC_OFFSET (-100) -#define SQL_LEN_DATA_AT_EXEC(length) (-length+SQL_LEN_DATA_AT_EXEC_OFFSET) - -/* - * SQLGetFunctions - */ -#define SQL_API_SQLALLOCCONNECT 1 /* Core Functions */ -#define SQL_API_SQLALLOCENV 2 -#define SQL_API_SQLALLOCSTMT 3 -#define SQL_API_SQLBINDCOL 4 -#define SQL_API_SQLCANCEL 5 -#define SQL_API_SQLCOLATTRIBUTES 6 -#define SQL_API_SQLCONNECT 7 -#define SQL_API_SQLDESCRIBECOL 8 -#define SQL_API_SQLDISCONNECT 9 -#define SQL_API_SQLERROR 10 -#define SQL_API_SQLEXECDIRECT 11 -#define SQL_API_SQLEXECUTE 12 -#define SQL_API_SQLFETCH 13 -#define SQL_API_SQLFREECONNECT 14 -#define SQL_API_SQLFREEENV 15 -#define SQL_API_SQLFREESTMT 16 -#define SQL_API_SQLGETCURSORNAME 17 -#define SQL_API_SQLNUMRESULTCOLS 18 -#define SQL_API_SQLPREPARE 19 -#define SQL_API_SQLROWCOUNT 20 -#define SQL_API_SQLSETCURSORNAME 21 -#define SQL_API_SQLSETPARAM 22 -#define SQL_API_SQLTRANSACT 23 - -#define SQL_NUM_FUNCTIONS 23 - -#define SQL_EXT_API_START 40 - -#define SQL_API_SQLCOLUMNS 40 /* Level 1 Functions */ -#define SQL_API_SQLDRIVERCONNECT 41 -#define SQL_API_SQLGETCONNECTOPTION 42 -#define SQL_API_SQLGETDATA 43 -#define SQL_API_SQLGETFUNCTIONS 44 -#define SQL_API_SQLGETINFO 45 -#define SQL_API_SQLGETSTMTOPTION 46 -#define SQL_API_SQLGETTYPEINFO 47 -#define SQL_API_SQLPARAMDATA 48 -#define SQL_API_SQLPUTDATA 49 -#define SQL_API_SQLSETCONNECTOPTION 50 -#define SQL_API_SQLSETSTMTOPTION 51 -#define SQL_API_SQLSPECIALCOLUMNS 52 -#define SQL_API_SQLSTATISTICS 53 -#define SQL_API_SQLTABLES 54 - -#define SQL_API_SQLBROWSECONNECT 55 /* Level 2 Functions */ -#define SQL_API_SQLCOLUMNPRIVILEGES 56 -#define SQL_API_SQLDATASOURCES 57 -#define SQL_API_SQLDESCRIBEPARAM 58 -#define SQL_API_SQLEXTENDEDFETCH 59 -#define SQL_API_SQLFOREIGNKEYS 60 -#define SQL_API_SQLMORERESULTS 61 -#define SQL_API_SQLNATIVESQL 62 -#define SQL_API_SQLNUMPARAMS 63 -#define SQL_API_SQLPARAMOPTIONS 64 -#define SQL_API_SQLPRIMARYKEYS 65 -#define SQL_API_SQLPROCEDURECOLUMNS 66 -#define SQL_API_SQLPROCEDURES 67 -#define SQL_API_SQLSETPOS 68 -#define SQL_API_SQLSETSCROLLOPTIONS 69 -#define SQL_API_SQLTABLEPRIVILEGES 70 - -#define SQL_API_SQLDRIVERS 71 -#define SQL_API_SQLBINDPARAMETER 72 -#define SQL_EXT_API_LAST SQL_API_SQLBINDPARAMETER - -#define SQL_API_ALL_FUNCTIONS 0 - -#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1) - -/* - * SQLGetInfo - */ -#define SQL_INFO_FIRST 0 -#define SQL_ACTIVE_CONNECTIONS 0 -#define SQL_ACTIVE_STATEMENTS 1 -#define SQL_DATA_SOURCE_NAME 2 -#define SQL_DRIVER_HDBC 3 -#define SQL_DRIVER_HENV 4 -#define SQL_DRIVER_HSTMT 5 -#define SQL_DRIVER_NAME 6 -#define SQL_DRIVER_VER 7 -#define SQL_FETCH_DIRECTION 8 -#define SQL_ODBC_API_CONFORMANCE 9 -#define SQL_ODBC_VER 10 -#define SQL_ROW_UPDATES 11 -#define SQL_ODBC_SAG_CLI_CONFORMANCE 12 -#define SQL_SERVER_NAME 13 -#define SQL_SEARCH_PATTERN_ESCAPE 14 -#define SQL_ODBC_SQL_CONFORMANCE 15 -#define SQL_DBMS_NAME 17 -#define SQL_DBMS_VER 18 -#define SQL_ACCESSIBLE_TABLES 19 -#define SQL_ACCESSIBLE_PROCEDURES 20 -#define SQL_PROCEDURES 21 -#define SQL_CONCAT_NULL_BEHAVIOR 22 -#define SQL_CURSOR_COMMIT_BEHAVIOR 23 -#define SQL_CURSOR_ROLLBACK_BEHAVIOR 24 -#define SQL_DATA_SOURCE_READ_ONLY 25 -#define SQL_DEFAULT_TXN_ISOLATION 26 -#define SQL_EXPRESSIONS_IN_ORDERBY 27 -#define SQL_IDENTIFIER_CASE 28 -#define SQL_IDENTIFIER_QUOTE_CHAR 29 -#define SQL_MAX_COLUMN_NAME_LEN 30 -#define SQL_MAX_CURSOR_NAME_LEN 31 -#define SQL_MAX_OWNER_NAME_LEN 32 -#define SQL_MAX_PROCEDURE_NAME_LEN 33 -#define SQL_MAX_QUALIFIER_NAME_LEN 34 -#define SQL_MAX_TABLE_NAME_LEN 35 -#define SQL_MULT_RESULT_SETS 36 -#define SQL_MULTIPLE_ACTIVE_TXN 37 -#define SQL_OUTER_JOINS 38 -#define SQL_OWNER_TERM 39 -#define SQL_PROCEDURE_TERM 40 -#define SQL_QUALIFIER_NAME_SEPARATOR 41 -#define SQL_QUALIFIER_TERM 42 -#define SQL_SCROLL_CONCURRENCY 43 -#define SQL_SCROLL_OPTIONS 44 -#define SQL_TABLE_TERM 45 -#define SQL_TXN_CAPABLE 46 -#define SQL_USER_NAME 47 -#define SQL_CONVERT_FUNCTIONS 48 -#define SQL_NUMERIC_FUNCTIONS 49 -#define SQL_STRING_FUNCTIONS 50 -#define SQL_SYSTEM_FUNCTIONS 51 -#define SQL_TIMEDATE_FUNCTIONS 52 -#define SQL_CONVERT_BIGINT 53 -#define SQL_CONVERT_BINARY 54 -#define SQL_CONVERT_BIT 55 -#define SQL_CONVERT_CHAR 56 -#define SQL_CONVERT_DATE 57 -#define SQL_CONVERT_DECIMAL 58 -#define SQL_CONVERT_DOUBLE 59 -#define SQL_CONVERT_FLOAT 60 -#define SQL_CONVERT_INTEGER 61 -#define SQL_CONVERT_LONGVARCHAR 62 -#define SQL_CONVERT_NUMERIC 63 -#define SQL_CONVERT_REAL 64 -#define SQL_CONVERT_SMALLINT 65 -#define SQL_CONVERT_TIME 66 -#define SQL_CONVERT_TIMESTAMP 67 -#define SQL_CONVERT_TINYINT 68 -#define SQL_CONVERT_VARBINARY 69 -#define SQL_CONVERT_VARCHAR 70 -#define SQL_CONVERT_LONGVARBINARY 71 -#define SQL_TXN_ISOLATION_OPTION 72 -#define SQL_ODBC_SQL_OPT_IEF 73 - -/* - * ODBC SDK 1.0 Additions - */ -#define SQL_CORRELATION_NAME 74 -#define SQL_NON_NULLABLE_COLUMNS 75 - -/* - * ODBC SDK 2.0 Additions - */ -#define SQL_DRIVER_HLIB 76 -#define SQL_DRIVER_ODBC_VER 77 -#define SQL_LOCK_TYPES 78 -#define SQL_POS_OPERATIONS 79 -#define SQL_POSITIONED_STATEMENTS 80 -#define SQL_GETDATA_EXTENSIONS 81 -#define SQL_BOOKMARK_PERSISTENCE 82 -#define SQL_STATIC_SENSITIVITY 83 -#define SQL_FILE_USAGE 84 -#define SQL_NULL_COLLATION 85 -#define SQL_ALTER_TABLE 86 -#define SQL_COLUMN_ALIAS 87 -#define SQL_GROUP_BY 88 -#define SQL_KEYWORDS 89 -#define SQL_ORDER_BY_COLUMNS_IN_SELECT 90 -#define SQL_OWNER_USAGE 91 -#define SQL_QUALIFIER_USAGE 92 -#define SQL_QUOTED_IDENTIFIER_CASE 93 -#define SQL_SPECIAL_CHARACTERS 94 -#define SQL_SUBQUERIES 95 -#define SQL_UNION 96 -#define SQL_MAX_COLUMNS_IN_GROUP_BY 97 -#define SQL_MAX_COLUMNS_IN_INDEX 98 -#define SQL_MAX_COLUMNS_IN_ORDER_BY 99 -#define SQL_MAX_COLUMNS_IN_SELECT 100 -#define SQL_MAX_COLUMNS_IN_TABLE 101 -#define SQL_MAX_INDEX_SIZE 102 -#define SQL_MAX_ROW_SIZE_INCLUDES_LONG 103 -#define SQL_MAX_ROW_SIZE 104 -#define SQL_MAX_STATEMENT_LEN 105 -#define SQL_MAX_TABLES_IN_SELECT 106 -#define SQL_MAX_USER_NAME_LEN 107 -#define SQL_MAX_CHAR_LITERAL_LEN 108 -#define SQL_TIMEDATE_ADD_INTERVALS 109 -#define SQL_TIMEDATE_DIFF_INTERVALS 110 -#define SQL_NEED_LONG_DATA_LEN 111 -#define SQL_MAX_BINARY_LITERAL_LEN 112 -#define SQL_LIKE_ESCAPE_CLAUSE 113 -#define SQL_QUALIFIER_LOCATION 114 - -/* - * ODBC SDK 2.01 Additions - */ -#define SQL_OJ_CAPABILITIES 65003 /* Temp value until ODBC 3.0 */ - -#define SQL_INFO_LAST SQL_QUALIFIER_LOCATION -#define SQL_INFO_DRIVER_START 1000 - - -/* - * SQL_CONVERT_* bitmask values - */ -#define SQL_CVT_CHAR 0x00000001L -#define SQL_CVT_NUMERIC 0x00000002L -#define SQL_CVT_DECIMAL 0x00000004L -#define SQL_CVT_INTEGER 0x00000008L -#define SQL_CVT_SMALLINT 0x00000010L -#define SQL_CVT_FLOAT 0x00000020L -#define SQL_CVT_REAL 0x00000040L -#define SQL_CVT_DOUBLE 0x00000080L -#define SQL_CVT_VARCHAR 0x00000100L -#define SQL_CVT_LONGVARCHAR 0x00000200L -#define SQL_CVT_BINARY 0x00000400L -#define SQL_CVT_VARBINARY 0x00000800L -#define SQL_CVT_BIT 0x00001000L -#define SQL_CVT_TINYINT 0x00002000L -#define SQL_CVT_BIGINT 0x00004000L -#define SQL_CVT_DATE 0x00008000L -#define SQL_CVT_TIME 0x00010000L -#define SQL_CVT_TIMESTAMP 0x00020000L -#define SQL_CVT_LONGVARBINARY 0x00040000L - -/* - * SQL_CONVERT_FUNCTIONS - */ -#define SQL_FN_CVT_CONVERT 0x00000001L - -/* - * SQL_STRING_FUNCTIONS - */ -#define SQL_FN_STR_CONCAT 0x00000001L -#define SQL_FN_STR_INSERT 0x00000002L -#define SQL_FN_STR_LEFT 0x00000004L -#define SQL_FN_STR_LTRIM 0x00000008L -#define SQL_FN_STR_LENGTH 0x00000010L -#define SQL_FN_STR_LOCATE 0x00000020L -#define SQL_FN_STR_LCASE 0x00000040L -#define SQL_FN_STR_REPEAT 0x00000080L -#define SQL_FN_STR_REPLACE 0x00000100L -#define SQL_FN_STR_RIGHT 0x00000200L -#define SQL_FN_STR_RTRIM 0x00000400L -#define SQL_FN_STR_SUBSTRING 0x00000800L -#define SQL_FN_STR_UCASE 0x00001000L -#define SQL_FN_STR_ASCII 0x00002000L -#define SQL_FN_STR_CHAR 0x00004000L -#define SQL_FN_STR_DIFFERENCE 0x00008000L -#define SQL_FN_STR_LOCATE_2 0x00010000L -#define SQL_FN_STR_SOUNDEX 0x00020000L -#define SQL_FN_STR_SPACE 0x00040000L - -/* - * SQL_NUMERIC_FUNCTIONS - */ -#define SQL_FN_NUM_ABS 0x00000001L -#define SQL_FN_NUM_ACOS 0x00000002L -#define SQL_FN_NUM_ASIN 0x00000004L -#define SQL_FN_NUM_ATAN 0x00000008L -#define SQL_FN_NUM_ATAN2 0x00000010L -#define SQL_FN_NUM_CEILING 0x00000020L -#define SQL_FN_NUM_COS 0x00000040L -#define SQL_FN_NUM_COT 0x00000080L -#define SQL_FN_NUM_EXP 0x00000100L -#define SQL_FN_NUM_FLOOR 0x00000200L -#define SQL_FN_NUM_LOG 0x00000400L -#define SQL_FN_NUM_MOD 0x00000800L -#define SQL_FN_NUM_SIGN 0x00001000L -#define SQL_FN_NUM_SIN 0x00002000L -#define SQL_FN_NUM_SQRT 0x00004000L -#define SQL_FN_NUM_TAN 0x00008000L -#define SQL_FN_NUM_PI 0x00010000L -#define SQL_FN_NUM_RAND 0x00020000L -#define SQL_FN_NUM_DEGREES 0x00040000L -#define SQL_FN_NUM_LOG10 0x00080000L -#define SQL_FN_NUM_POWER 0x00100000L -#define SQL_FN_NUM_RADIANS 0x00200000L -#define SQL_FN_NUM_ROUND 0x00400000L -#define SQL_FN_NUM_TRUNCATE 0x00800000L - -/* - * SQL_TIMEDATE_FUNCTIONS - */ -#define SQL_FN_TD_NOW 0x00000001L -#define SQL_FN_TD_CURDATE 0x00000002L -#define SQL_FN_TD_DAYOFMONTH 0x00000004L -#define SQL_FN_TD_DAYOFWEEK 0x00000008L -#define SQL_FN_TD_DAYOFYEAR 0x00000010L -#define SQL_FN_TD_MONTH 0x00000020L -#define SQL_FN_TD_QUARTER 0x00000040L -#define SQL_FN_TD_WEEK 0x00000080L -#define SQL_FN_TD_YEAR 0x00000100L -#define SQL_FN_TD_CURTIME 0x00000200L -#define SQL_FN_TD_HOUR 0x00000400L -#define SQL_FN_TD_MINUTE 0x00000800L -#define SQL_FN_TD_SECOND 0x00001000L -#define SQL_FN_TD_TIMESTAMPADD 0x00002000L -#define SQL_FN_TD_TIMESTAMPDIFF 0x00004000L -#define SQL_FN_TD_DAYNAME 0x00008000L -#define SQL_FN_TD_MONTHNAME 0x00010000L - -/* - * SQL_SYSTEM_FUNCTIONS - */ -#define SQL_FN_SYS_USERNAME 0x00000001L -#define SQL_FN_SYS_DBNAME 0x00000002L -#define SQL_FN_SYS_IFNULL 0x00000004L - -/* - * SQL_TIMEDATE_ADD_INTERVALS - * SQL_TIMEDATE_DIFF_INTERVALS - */ -#define SQL_FN_TSI_FRAC_SECOND 0x00000001L -#define SQL_FN_TSI_SECOND 0x00000002L -#define SQL_FN_TSI_MINUTE 0x00000004L -#define SQL_FN_TSI_HOUR 0x00000008L -#define SQL_FN_TSI_DAY 0x00000010L -#define SQL_FN_TSI_WEEK 0x00000020L -#define SQL_FN_TSI_MONTH 0x00000040L -#define SQL_FN_TSI_QUARTER 0x00000080L -#define SQL_FN_TSI_YEAR 0x00000100L - -/* - * SQL_ODBC_API_CONFORMANCE - */ -#define SQL_OAC_NONE 0x0000 -#define SQL_OAC_LEVEL1 0x0001 -#define SQL_OAC_LEVEL2 0x0002 - -/* - * SQL_ODBC_SAG_CLI_CONFORMANCE - */ -#define SQL_OSCC_NOT_COMPLIANT 0x0000 -#define SQL_OSCC_COMPLIANT 0x0001 - -/* - * SQL_ODBC_SQL_CONFORMANCE - */ -#define SQL_OSC_MINIMUM 0x0000 -#define SQL_OSC_CORE 0x0001 -#define SQL_OSC_EXTENDED 0x0002 - -/* - * SQL_CONCAT_NULL_BEHAVIOR - */ -#define SQL_CB_NULL 0x0000 -#define SQL_CB_NON_NULL 0x0001 - -/* - * SQL_CURSOR_COMMIT_BEHAVIOR - * SQL_CURSOR_ROLLBACK_BEHAVIOR - */ -#define SQL_CB_DELETE 0x0000 -#define SQL_CB_CLOSE 0x0001 -#define SQL_CB_PRESERVE 0x0002 - -/* - * SQL_IDENTIFIER_CASE - */ -#define SQL_IC_UPPER 0x0001 -#define SQL_IC_LOWER 0x0002 -#define SQL_IC_SENSITIVE 0x0003 -#define SQL_IC_MIXED 0x0004 - -/* - * SQL_TXN_CAPABLE - */ -#define SQL_TC_NONE 0x0000 -#define SQL_TC_DML 0x0001 -#define SQL_TC_ALL 0x0002 -#define SQL_TC_DDL_COMMIT 0x0003 -#define SQL_TC_DDL_IGNORE 0x0004 - -/* - * SQL_SCROLL_OPTIONS - */ -#define SQL_SO_FORWARD_ONLY 0x00000001L -#define SQL_SO_KEYSET_DRIVEN 0x00000002L -#define SQL_SO_DYNAMIC 0x00000004L -#define SQL_SO_MIXED 0x00000008L -#define SQL_SO_STATIC 0x00000010L - -/* - * SQL_SCROLL_CONCURRENCY - */ -#define SQL_SCCO_READ_ONLY 0x00000001L -#define SQL_SCCO_LOCK 0x00000002L -#define SQL_SCCO_OPT_ROWVER 0x00000004L -#define SQL_SCCO_OPT_VALUES 0x00000008L - -/* - * SQL_FETCH_DIRECTION - */ -#define SQL_FD_FETCH_NEXT 0x00000001L -#define SQL_FD_FETCH_FIRST 0x00000002L -#define SQL_FD_FETCH_LAST 0x00000004L -#define SQL_FD_FETCH_PRIOR 0x00000008L -#define SQL_FD_FETCH_ABSOLUTE 0x00000010L -#define SQL_FD_FETCH_RELATIVE 0x00000020L -#define SQL_FD_FETCH_RESUME 0x00000040L -#define SQL_FD_FETCH_BOOKMARK 0x00000080L - -/* - * SQL_TXN_ISOLATION_OPTION - */ -#define SQL_TXN_READ_UNCOMMITTED 0x00000001L -#define SQL_TXN_READ_COMMITTED 0x00000002L -#define SQL_TXN_REPEATABLE_READ 0x00000004L -#define SQL_TXN_SERIALIZABLE 0x00000008L -#define SQL_TXN_VERSIONING 0x00000010L - -/* - * SQL_CORRELATION_NAME - */ -#define SQL_CN_NONE 0x0000 -#define SQL_CN_DIFFERENT 0x0001 -#define SQL_CN_ANY 0x0002 - -/* - * SQL_NON_NULLABLE_COLUMNS - */ -#define SQL_NNC_NULL 0x0000 -#define SQL_NNC_NON_NULL 0x0001 - -/* - * SQL_NULL_COLLATION - */ -#define SQL_NC_HIGH 0x0000 -#define SQL_NC_LOW 0x0001 -#define SQL_NC_START 0x0002 -#define SQL_NC_END 0x0004 - -/* - * SQL_FILE_USAGE - */ -#define SQL_FILE_NOT_SUPPORTED 0x0000 -#define SQL_FILE_TABLE 0x0001 -#define SQL_FILE_QUALIFIER 0x0002 - -/* - * SQL_GETDATA_EXTENSIONS - */ -#define SQL_GD_ANY_COLUMN 0x00000001L -#define SQL_GD_ANY_ORDER 0x00000002L -#define SQL_GD_BLOCK 0x00000004L -#define SQL_GD_BOUND 0x00000008L - -/* - * SQL_ALTER_TABLE - */ -#define SQL_AT_ADD_COLUMN 0x00000001L -#define SQL_AT_DROP_COLUMN 0x00000002L - -/* - * SQL_POSITIONED_STATEMENTS - */ -#define SQL_PS_POSITIONED_DELETE 0x00000001L -#define SQL_PS_POSITIONED_UPDATE 0x00000002L -#define SQL_PS_SELECT_FOR_UPDATE 0x00000004L - -/* - * SQL_GROUP_BY - */ -#define SQL_GB_NOT_SUPPORTED 0x0000 -#define SQL_GB_GROUP_BY_EQUALS_SELECT 0x0001 -#define SQL_GB_GROUP_BY_CONTAINS_SELECT 0x0002 -#define SQL_GB_NO_RELATION 0x0003 - -/* - * SQL_OWNER_USAGE - */ -#define SQL_OU_DML_STATEMENTS 0x00000001L -#define SQL_OU_PROCEDURE_INVOCATION 0x00000002L -#define SQL_OU_TABLE_DEFINITION 0x00000004L -#define SQL_OU_INDEX_DEFINITION 0x00000008L -#define SQL_OU_PRIVILEGE_DEFINITION 0x00000010L - -/* - * SQL_QUALIFIER_USAGE - */ -#define SQL_QU_DML_STATEMENTS 0x00000001L -#define SQL_QU_PROCEDURE_INVOCATION 0x00000002L -#define SQL_QU_TABLE_DEFINITION 0x00000004L -#define SQL_QU_INDEX_DEFINITION 0x00000008L -#define SQL_QU_PRIVILEGE_DEFINITION 0x00000010L - -/* - * SQL_SUBQUERIES - */ -#define SQL_SQ_COMPARISON 0x00000001L -#define SQL_SQ_EXISTS 0x00000002L -#define SQL_SQ_IN 0x00000004L -#define SQL_SQ_QUANTIFIED 0x00000008L -#define SQL_SQ_CORRELATED_SUBQUERIES 0x00000010L - -/* - * SQL_UNION - */ -#define SQL_U_UNION 0x00000001L -#define SQL_U_UNION_ALL 0x00000002L - -/* - * SQL_BOOKMARK_PERSISTENCE - */ -#define SQL_BP_CLOSE 0x00000001L -#define SQL_BP_DELETE 0x00000002L -#define SQL_BP_DROP 0x00000004L -#define SQL_BP_TRANSACTION 0x00000008L -#define SQL_BP_UPDATE 0x00000010L -#define SQL_BP_OTHER_HSTMT 0x00000020L -#define SQL_BP_SCROLL 0x00000040L - -/* - * SQL_STATIC_SENSITIVITY - */ -#define SQL_SS_ADDITIONS 0x00000001L -#define SQL_SS_DELETIONS 0x00000002L -#define SQL_SS_UPDATES 0x00000004L - -/* - * SQL_LOCK_TYPES - */ -#define SQL_LCK_NO_CHANGE 0x00000001L -#define SQL_LCK_EXCLUSIVE 0x00000002L -#define SQL_LCK_UNLOCK 0x00000004L - -/* - * SQL_POS_OPERATIONS - */ -#define SQL_POS_POSITION 0x00000001L -#define SQL_POS_REFRESH 0x00000002L -#define SQL_POS_UPDATE 0x00000004L -#define SQL_POS_DELETE 0x00000008L -#define SQL_POS_ADD 0x00000010L - -/* - * SQL_QUALIFIER_LOCATION - */ -#define SQL_QL_START 0x0001L -#define SQL_QL_END 0x0002L - -/* - * SQL_OJ_CAPABILITIES - */ -#define SQL_OJ_LEFT 0x00000001L -#define SQL_OJ_RIGHT 0x00000002L -#define SQL_OJ_FULL 0x00000004L -#define SQL_OJ_NESTED 0x00000008L -#define SQL_OJ_NOT_ORDERED 0x00000010L -#define SQL_OJ_INNER 0x00000020L -#define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L - -/* - * SQLGetStmtOption/SQLSetStmtOption - */ -#define SQL_QUERY_TIMEOUT 0 -#define SQL_MAX_ROWS 1 -#define SQL_NOSCAN 2 -#define SQL_MAX_LENGTH 3 -#define SQL_ASYNC_ENABLE 4 -#define SQL_BIND_TYPE 5 -#define SQL_CURSOR_TYPE 6 -#define SQL_CONCURRENCY 7 -#define SQL_KEYSET_SIZE 8 -#define SQL_ROWSET_SIZE 9 -#define SQL_SIMULATE_CURSOR 10 -#define SQL_RETRIEVE_DATA 11 -#define SQL_USE_BOOKMARKS 12 -#define SQL_GET_BOOKMARK 13 -#define SQL_ROW_NUMBER 14 - -#define SQL_STMT_OPT_MIN SQL_QUERY_TIMEOUT -#define SQL_STMT_OPT_MAX SQL_ROW_NUMBER - - -/* - * SQL_QUERY_TIMEOUT - */ -#define SQL_QUERY_TIMEOUT_DEFAULT 0UL - -/* - * SQL_MAX_ROWS - */ -#define SQL_MAX_ROWS_DEFAULT 0UL - -/* - * SQL_NOSCAN - */ -#define SQL_NOSCAN_OFF 0UL /* 1.0 FALSE */ -#define SQL_NOSCAN_ON 1UL /* 1.0 TRUE */ -#define SQL_NOSCAN_DEFAULT SQL_NOSCAN_OFF - -/* - * SQL_MAX_LENGTH - */ -#define SQL_MAX_LENGTH_DEFAULT 0UL - -/* - * SQL_ASYNC_ENABLE - */ -#define SQL_ASYNC_ENABLE_OFF 0UL -#define SQL_ASYNC_ENABLE_ON 1UL -#define SQL_ASYNC_ENABLE_DEFAULT SQL_ASYNC_ENABLE_OFF - -/* - * SQL_BIND_TYPE - */ -#define SQL_BIND_BY_COLUMN 0UL -#define SQL_BIND_TYPE_DEFAULT SQL_BIND_BY_COLUMN - -/* - * SQL_CONCURRENCY - */ -#define SQL_CONCUR_READ_ONLY 1 -#define SQL_CONCUR_LOCK 2 -#define SQL_CONCUR_ROWVER 3 -#define SQL_CONCUR_VALUES 4 -#define SQL_CONCUR_DEFAULT SQL_CONCUR_READ_ONLY - -/* - * SQL_CURSOR_TYPE - */ -#define SQL_CURSOR_FORWARD_ONLY 0UL -#define SQL_CURSOR_KEYSET_DRIVEN 1UL -#define SQL_CURSOR_DYNAMIC 2UL -#define SQL_CURSOR_STATIC 3UL -#define SQL_CURSOR_TYPE_DEFAULT SQL_CURSOR_FORWARD_ONLY - -/* - * SQL_ROWSET_SIZE - */ -#define SQL_ROWSET_SIZE_DEFAULT 1UL - -/* - * SQL_KEYSET_SIZE - */ -#define SQL_KEYSET_SIZE_DEFAULT 0UL - -/* - * SQL_SIMULATE_CURSOR - */ -#define SQL_SC_NON_UNIQUE 0UL -#define SQL_SC_TRY_UNIQUE 1UL -#define SQL_SC_UNIQUE 2UL - -/* - * SQL_RETRIEVE_DATA - */ -#define SQL_RD_OFF 0UL -#define SQL_RD_ON 1UL -#define SQL_RD_DEFAULT SQL_RD_ON - -/* - * SQL_USE_BOOKMARKS - */ -#define SQL_UB_OFF 0UL -#define SQL_UB_ON 1UL -#define SQL_UB_DEFAULT SQL_UB_OFF - -/* - * SQLSetConnectOption/SQLGetConnectOption - */ -#define SQL_ACCESS_MODE 101 -#define SQL_AUTOCOMMIT 102 -#define SQL_LOGIN_TIMEOUT 103 -#define SQL_OPT_TRACE 104 -#define SQL_OPT_TRACEFILE 105 -#define SQL_TRANSLATE_DLL 106 -#define SQL_TRANSLATE_OPTION 107 -#define SQL_TXN_ISOLATION 108 -#define SQL_CURRENT_QUALIFIER 109 -#define SQL_ODBC_CURSORS 110 -#define SQL_QUIET_MODE 111 -#define SQL_PACKET_SIZE 112 - -#define SQL_CONN_OPT_MIN SQL_ACCESS_MODE -#define SQL_CONN_OPT_MAX SQL_PACKET_SIZE -#define SQL_CONNECT_OPT_DRVR_START 1000 - - -/* - * SQL_ACCESS_MODE - */ -#define SQL_MODE_READ_WRITE 0UL -#define SQL_MODE_READ_ONLY 1UL -#define SQL_MODE_DEFAULT SQL_MODE_READ_WRITE - -/* - * SQL_AUTOCOMMIT - */ -#define SQL_AUTOCOMMIT_OFF 0UL -#define SQL_AUTOCOMMIT_ON 1UL -#define SQL_AUTOCOMMIT_DEFAULT SQL_AUTOCOMMIT_ON - -/* - * SQL_LOGIN_TIMEOUT - */ -#define SQL_LOGIN_TIMEOUT_DEFAULT 15UL - -/* - * SQL_OPT_TRACE - */ -#define SQL_OPT_TRACE_OFF 0UL -#define SQL_OPT_TRACE_ON 1UL -#define SQL_OPT_TRACE_DEFAULT SQL_OPT_TRACE_OFF -#define SQL_OPT_TRACE_FILE_DEFAULT "odbc.log" - -/* - * SQL_ODBC_CURSORS - */ -#define SQL_CUR_USE_IF_NEEDED 0UL -#define SQL_CUR_USE_ODBC 1UL -#define SQL_CUR_USE_DRIVER 2UL -#define SQL_CUR_DEFAULT SQL_CUR_USE_DRIVER - -/* - * SQLSpecialColumns - Column types and scopes - */ -#define SQL_BEST_ROWID 1 -#define SQL_ROWVER 2 - -#define SQL_SCOPE_CURROW 0 -#define SQL_SCOPE_TRANSACTION 1 -#define SQL_SCOPE_SESSION 2 - -/* - * SQLSetPos - */ -#define SQL_ENTIRE_ROWSET 0 - -/* - * SQLSetPos - */ -#define SQL_POSITION 0 -#define SQL_REFRESH 1 -#define SQL_UPDATE 2 -#define SQL_DELETE 3 -#define SQL_ADD 4 - -/* - * SQLSetPos - */ -#define SQL_LOCK_NO_CHANGE 0 -#define SQL_LOCK_EXCLUSIVE 1 -#define SQL_LOCK_UNLOCK 2 - -/* - * SQLSetPos - */ -#define SQL_POSITION_TO(hstmt,irow) \ - SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE) -#define SQL_LOCK_RECORD(hstmt,irow,fLock) \ - SQLSetPos(hstmt,irow,SQL_POSITION,fLock) -#define SQL_REFRESH_RECORD(hstmt,irow,fLock) \ - SQLSetPos(hstmt,irow,SQL_REFRESH,fLock) -#define SQL_UPDATE_RECORD(hstmt,irow) \ - SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE) -#define SQL_DELETE_RECORD(hstmt,irow) \ - SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE) -#define SQL_ADD_RECORD(hstmt,irow) \ - SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE) - -/* - * All the ODBC keywords - */ -#define SQL_ODBC_KEYWORDS \ -"ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\ -"ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\ -"BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\ -"CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\ -"COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\ -"CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\ -"CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\ -"DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\ -"DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\ -"DISTINCT,DOMAIN,DOUBLE,DROP,"\ -"ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\ -"EXISTS,EXTERNAL,EXTRACT,"\ -"FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\ -"GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\ -"IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\ -"INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\ -"JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\ -"MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"\ -"NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\ -"OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\ -"PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\ -"PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\ -"REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"\ -"SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"\ -"SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\ -"SUBSTRING,SUM,SYSTEM_USER,"\ -"TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\ -"TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\ -"UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\ -"VALUE,,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR" - -/* - * ---------------------------------------------------------------------- - * Level 2 Functions - * ---------------------------------------------------------------------- - */ - -/* - * SQLExtendedFetch - fFetchType - */ -#define SQL_FETCH_NEXT 1 -#define SQL_FETCH_FIRST 2 -#define SQL_FETCH_LAST 3 -#define SQL_FETCH_PRIOR 4 -#define SQL_FETCH_ABSOLUTE 5 -#define SQL_FETCH_RELATIVE 6 -#define SQL_FETCH_BOOKMARK 8 - -/* - * SQLExtendedFetch - rgfRowStatus - */ -#define SQL_ROW_SUCCESS 0 -#define SQL_ROW_DELETED 1 -#define SQL_ROW_UPDATED 2 -#define SQL_ROW_NOROW 3 -#define SQL_ROW_ADDED 4 -#define SQL_ROW_ERROR 5 - -/* - * SQLForeignKeys - UPDATE_RULE/DELETE_RULE - */ -#define SQL_CASCADE 0 -#define SQL_RESTRICT 1 -#define SQL_SET_NULL 2 - -/* - * SQLBindParameter - fParamType - * SQLProcedureColumns - COLUMN_TYPE - */ -#define SQL_PARAM_TYPE_UNKNOWN 0 -#define SQL_PARAM_INPUT 1 -#define SQL_PARAM_INPUT_OUTPUT 2 -#define SQL_RESULT_COL 3 -#define SQL_PARAM_OUTPUT 4 -#define SQL_RETURN_VALUE 5 - -/* - * SQLSetParam to SQLBindParameter conversion - */ -#define SQL_PARAM_TYPE_DEFAULT SQL_PARAM_INPUT_OUTPUT -#define SQL_SETPARAM_VALUE_MAX (-1L) - -/* - * SQLStatistics - fUnique - */ -#define SQL_INDEX_UNIQUE 0 -#define SQL_INDEX_ALL 1 - -/* - * SQLStatistics - fAccuracy - */ -#define SQL_QUICK 0 -#define SQL_ENSURE 1 - -/* - * SQLStatistics - TYPE - */ -#define SQL_TABLE_STAT 0 -#define SQL_INDEX_CLUSTERED 1 -#define SQL_INDEX_HASHED 2 -#define SQL_INDEX_OTHER 3 - -/* - * SQLProcedures - PROCEDURE_TYPE - */ -#define SQL_PT_UNKNOWN 0 -#define SQL_PT_PROCEDURE 1 -#define SQL_PT_FUNCTION 2 - -/* - * SQLSpecialColumns - PSEUDO_COLUMN - */ -#define SQL_PC_UNKNOWN 0 -#define SQL_PC_NOT_PSEUDO 1 -#define SQL_PC_PSEUDO 2 - -/* - * Deprecated defines from prior versions of ODBC - */ -#define SQL_DATABASE_NAME 16 -#define SQL_FD_FETCH_PREV SQL_FD_FETCH_PRIOR -#define SQL_FETCH_PREV SQL_FETCH_PRIOR -#define SQL_CONCUR_TIMESTAMP SQL_CONCUR_ROWVER -#define SQL_SCCO_OPT_TIMESTAMP SQL_SCCO_OPT_ROWVER -#define SQL_CC_DELETE SQL_CB_DELETE -#define SQL_CR_DELETE SQL_CB_DELETE -#define SQL_CC_CLOSE SQL_CB_CLOSE -#define SQL_CR_CLOSE SQL_CB_CLOSE -#define SQL_CC_PRESERVE SQL_CB_PRESERVE -#define SQL_CR_PRESERVE SQL_CB_PRESERVE -#define SQL_FETCH_RESUME 7 -#define SQL_SCROLL_FORWARD_ONLY 0L -#define SQL_SCROLL_KEYSET_DRIVEN (-1L) -#define SQL_SCROLL_DYNAMIC (-2L) -#define SQL_SCROLL_STATIC (-3L) -#define SQL_PC_NON_PSEUDO SQL_PC_NOT_PSEUDO - -#ifdef __cplusplus -extern "C" { -#endif -/* - * Level 1 function rototypes - */ -RETCODE SQL_API SQLColumns (HSTMT hstmt, UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner, - UCHAR FAR * szTableName, SWORD cbTableName, UCHAR FAR * szColumnName, - SWORD cbColumnName); -RETCODE SQL_API SQLDriverConnect (HDBC hdbc, HWND hwnd, - UCHAR FAR * szConnStrIn, SWORD cbConnStrIn, UCHAR FAR * szConnStrOut, - SWORD cbConnStrOutMax, SWORD FAR * pcbConnStrOut, UWORD fDriverCompletion); -RETCODE SQL_API SQLGetConnectOption (HDBC hdbc, UWORD fOption, PTR pvParam); -RETCODE SQL_API SQLGetData (HSTMT hstmt, UWORD icol, SWORD fCType, - PTR rgbValue, SDWORD cbValueMax, SDWORD FAR * pcbValue); -RETCODE SQL_API SQLGetFunctions (HDBC hdbc, UWORD fFunction, - UWORD FAR * pfExists); -RETCODE SQL_API SQLGetInfo (HDBC hdbc, UWORD fInfoType, PTR rgbInfoValue, - SWORD cbInfoValueMax, SWORD FAR * pcbInfoValue); -RETCODE SQL_API SQLGetStmtOption (HSTMT hstmt, UWORD fOption, PTR pvParam); -RETCODE SQL_API SQLGetTypeInfo (HSTMT hstmt, SWORD fSqlType); -RETCODE SQL_API SQLParamData (HSTMT hstmt, PTR FAR * prgbValue); -RETCODE SQL_API SQLPutData (HSTMT hstmt, PTR rgbValue, SDWORD cbValue); -RETCODE SQL_API SQLSetConnectOption (HDBC hdbc, UWORD fOption, UDWORD vParam); -RETCODE SQL_API SQLSetStmtOption (HSTMT hstmt, UWORD fOption, UDWORD vParam); -RETCODE SQL_API SQLSpecialColumns (HSTMT hstmt, UWORD fColType, - UCHAR FAR * szTableQualifier, SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, SWORD cbTableOwner, UCHAR FAR * szTableName, - SWORD cbTableName, UWORD fScope, UWORD fNullable); -RETCODE SQL_API SQLStatistics (HSTMT hstmt, UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner, - UCHAR FAR * szTableName, SWORD cbTableName, UWORD fUnique, UWORD fAccuracy); -RETCODE SQL_API SQLTables (HSTMT hstmt, UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner, - UCHAR FAR * szTableName, SWORD cbTableName, UCHAR FAR * szTableType, - SWORD cbTableType); - -/* - * Level 2 function prototypes - */ -RETCODE SQL_API SQLBrowseConnect (HDBC hdbc, - UCHAR FAR * szConnStrIn, SWORD cbConnStrIn, UCHAR FAR * szConnStrOut, - SWORD cbConnStrOutMax, SWORD FAR * pcbConnStrOut); -RETCODE SQL_API SQLColumnPrivileges (HSTMT hstmt, - UCHAR FAR * szTableQualifier, SWORD cbTableQualifier, - UCHAR FAR * szTableOwner, SWORD cbTableOwner, UCHAR FAR * szTableName, - SWORD cbTableName, UCHAR FAR * szColumnName, SWORD cbColumnName); -RETCODE SQL_API SQLDataSources (HENV henv, UWORD fDirection, - UCHAR FAR * szDSN, SWORD cbDSNMax, SWORD FAR * pcbDSN, - UCHAR FAR * szDescription, SWORD cbDescriptionMax, - SWORD FAR * pcbDescription); -RETCODE SQL_API SQLDescribeParam (HSTMT hstmt, UWORD ipar, - SWORD FAR * pfSqlType, UDWORD FAR * pcbColDef, SWORD FAR * pibScale, - SWORD FAR * pfNullable); -RETCODE SQL_API SQLExtendedFetch (HSTMT hstmt, UWORD fFetchType, SDWORD irow, - UDWORD FAR * pcrow, UWORD FAR * rgfRowStatus); -RETCODE SQL_API SQLForeignKeys (HSTMT hstmt, UCHAR FAR * szPkTableQualifier, - SWORD cbPkTableQualifier, UCHAR FAR * szPkTableOwner, SWORD cbPkTableOwner, - UCHAR FAR * szPkTableName, SWORD cbPkTableName, - UCHAR FAR * szFkTableQualifier, SWORD cbFkTableQualifier, - UCHAR FAR * szFkTableOwner, SWORD cbFkTableOwner, UCHAR FAR * szFkTableName, - SWORD cbFkTableName); -RETCODE SQL_API SQLMoreResults (HSTMT hstmt); -RETCODE SQL_API SQLNativeSql (HDBC hdbc, UCHAR FAR * szSqlStrIn, - SDWORD cbSqlStrIn, UCHAR FAR * szSqlStr, SDWORD cbSqlStrMax, - SDWORD FAR * pcbSqlStr); -RETCODE SQL_API SQLNumParams (HSTMT hstmt, SWORD FAR * pcpar); -RETCODE SQL_API SQLParamOptions (HSTMT hstmt, UDWORD crow, UDWORD FAR * pirow); -RETCODE SQL_API SQLPrimaryKeys (HSTMT hstmt, UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner, - UCHAR FAR * szTableName, SWORD cbTableName); -RETCODE SQL_API SQLProcedureColumns (HSTMT hstmt, UCHAR FAR * szProcQualifier, - SWORD cbProcQualifier, UCHAR FAR * szProcOwner, SWORD cbProcOwner, - UCHAR FAR * szProcName, SWORD cbProcName, UCHAR FAR * szColumnName, - SWORD cbColumnName); -RETCODE SQL_API SQLProcedures (HSTMT hstmt, UCHAR FAR * szProcQualifier, - SWORD cbProcQualifier, UCHAR FAR * szProcOwner, SWORD cbProcOwner, - UCHAR FAR * szProcName, SWORD cbProcName); -RETCODE SQL_API SQLSetPos (HSTMT hstmt, UWORD irow, UWORD fOption, UWORD fLock); -RETCODE SQL_API SQLTablePrivileges (HSTMT hstmt, UCHAR FAR * szTableQualifier, - SWORD cbTableQualifier, UCHAR FAR * szTableOwner, SWORD cbTableOwner, - UCHAR FAR * szTableName, SWORD cbTableName); - -/* - * SDK 2.0 Additional function prototypes - */ -RETCODE SQL_API SQLDrivers (HENV henv, UWORD fDirection, - UCHAR FAR * szDriverDesc, SWORD cbDriverDescMax, SWORD FAR * pcbDriverDesc, - UCHAR FAR * szDriverAttributes, SWORD cbDrvrAttrMax, - SWORD FAR * pcbDrvrAttr); -RETCODE SQL_API SQLBindParameter (HSTMT hstmt, UWORD ipar, SWORD fParamType, - SWORD fCType, SWORD fSqlType, UDWORD cbColDef, SWORD ibScale, PTR rgbValue, - SDWORD cbValueMax, SDWORD FAR * pcbValue); - -/* - * Depreciated - use SQLSetStmtOptions - */ -RETCODE SQL_API SQLSetScrollOptions (HSTMT hstmt, UWORD fConcurrency, - SDWORD crowKeyset, UWORD crowRowset); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/iodbc/itrace.c b/src/iodbc/itrace.c deleted file mode 100644 index 7b64169838..0000000000 --- a/src/iodbc/itrace.c +++ /dev/null @@ -1,117 +0,0 @@ -/* - * itrace.c - * - * $Id$ - * - * Trace functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "itrace.h" - -#include "herr.h" -#include "henv.h" -#include "henv.ci" - -#include - -static int -printreturn (void FAR * istm, int ret) -{ - FILE FAR *stm = (FILE FAR *) istm; - char FAR *ptr = "Invalid return value"; - - switch (ret) - { - case SQL_SUCCESS: - ptr = "SQL_SUCCESS"; - break; - - case SQL_SUCCESS_WITH_INFO: - ptr = "SQL_SUCCESS_WITH_INFO"; - break; - - case SQL_NO_DATA_FOUND: - ptr = "SQL_NO_DATA_FOUND"; - break; - - case SQL_NEED_DATA: - ptr = "SQL_NEED_DATA"; - break; - - case SQL_INVALID_HANDLE: - ptr = "SQL_INVALID_HANDLE"; - break; - - case SQL_ERROR: - ptr = "SQL_ERROR"; - break; - - case SQL_STILL_EXECUTING: - ptr = "SQL_STILL_EXECUTING"; - break; - - default: - break; - } - - fprintf (stm, "%s\n", ptr); - fflush (stm); - - return 0; -} - - -HPROC -_iodbcdm_gettrproc (void FAR * istm, int procid, int type) -{ - FILE FAR *stm = (FILE FAR *) istm; - - if (type == TRACE_TYPE_DM2DRV) - { - int i, j = 0; - - for (i = 0; j != en_NullProc; i++) - { - j = odbcapi_symtab[i].en_idx; - - if (j == procid) - { - fprintf (stm, "\n%s ( ... )\n", odbcapi_symtab[i].symbol); - - fflush (stm); - } - } - } - - if (type == TRACE_TYPE_RETURN) - { - return (HPROC) printreturn; - } - - return SQL_NULL_HPROC; -} diff --git a/src/iodbc/itrace.h b/src/iodbc/itrace.h deleted file mode 100644 index 61ba072ec8..0000000000 --- a/src/iodbc/itrace.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * itrace.h - * - * $Id$ - * - * Trace functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ -#ifndef _ITRACE_H -#define _ITRACE_H - -#ifdef DEBUG - -#ifndef NO_TRACE -#define NO_TRACE -#endif - -#endif - -#define TRACE_TYPE_APP2DM 1 -#define TRACE_TYPE_DM2DRV 2 -#define TRACE_TYPE_DRV2DM 3 - -#define TRACE_TYPE_RETURN 4 - -extern HPROC _iodbcdm_gettrproc (void FAR * stm, int procid, int type); - -#ifdef NO_TRACE -#define TRACE_CALL( stm, trace_on, procid, plist ) -#else -#define TRACE_CALL( stm, trace_on, plist )\ - {\ - if( trace_on)\ - {\ - HPROC hproc;\ -\ - hproc = _iodbcdm_gettrproc(stm, procid, TRACE_TYPE_APP2DM);\ -\ - if( hproc )\ - hproc plist;\ - }\ - } -#endif - -#ifdef NO_TRACE -#define TRACE_DM2DRV( stm, procid, plist ) -#else -#define TRACE_DM2DRV( stm, procid, plist )\ - {\ - HPROC hproc;\ -\ - hproc = _iodbcdm_gettrproc(stm, procid, TRACE_TYPE_DM2DRV);\ -\ - if( hproc )\ - hproc plist;\ - } -#endif - -#ifdef NO_TRACE -#define TRACE_DRV2DM( stm, procid, plist ) -#else -#define TRACE_DRV2DM( stm, procid, plist ) \ - {\ - HPROC hproc;\ -\ - hproc = _iodbcdm_gettrproc( stm, procid, TRACE_TYPE_DRV2DM);\ -\ - if( hproc )\ - hproc plist;\ - } -#endif - -#ifdef NO_TRACE -#define TRACE_RETURN( stm, trace_on, ret ) -#else -#define TRACE_RETURN( stm, trace_on, ret )\ - {\ - if( trace_on ) {\ - HPROC hproc;\ -\ - hproc = _iodbcdm_gettrproc( stm, 0, TRACE_TYPE_RETURN);\ -\ - if( hproc )\ - hproc( stm, ret );\ - }\ - } -#endif - -#ifdef NO_TRACE -#define CALL_DRIVER( hdbc, ret, proc, procid, plist ) { ret = proc plist; } -#else -#define CALL_DRIVER( hdbc, ret, proc, procid, plist )\ - {\ - DBC_t FAR* pdbc = (DBC_t FAR*)(hdbc);\ -\ - if( pdbc->trace ) {\ - TRACE_DM2DRV( pdbc->tstm, procid, plist )\ - ret = proc plist;\ - TRACE_DRV2DM( pdbc->tstm, procid, plist )\ - TRACE_RETURN( pdbc->tstm, 1, ret )\ - }\ - else\ - ret = proc plist;\ - } -#endif - -#endif diff --git a/src/iodbc/misc.c b/src/iodbc/misc.c deleted file mode 100644 index a31cee6cc6..0000000000 --- a/src/iodbc/misc.c +++ /dev/null @@ -1,413 +0,0 @@ -/* - * misc.c - * - * $Id$ - * - * Miscellaneous functions - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include -#include - -static int -upper_strneq ( - char *s1, - char *s2, - int n) -{ - int i; - char c1, c2; - - for (i = 1; i < n; i++) - { - c1 = s1[i]; - c2 = s2[i]; - - if (c1 >= 'a' && c1 <= 'z') - { - c1 += ('A' - 'a'); - } - else if (c1 == '\n') - { - c1 = '\0'; - } - - if (c2 >= 'a' && c2 <= 'z') - { - c2 += ('A' - 'a'); - } - else if (c2 == '\n') - { - c2 = '\0'; - } - - if ((c1 - c2) || !c1 || !c2) - { - break; - } - } - - return (int) !(c1 - c2); -} - -static char * /* return new position in input str */ -readtoken ( - char *istr, /* old position in input buf */ - char *obuf) /* token string ( if "\0", then finished ) */ -{ - char *start = obuf; - - /* Skip leading white space */ - while (*istr == ' ' || *istr == '\t') - istr++; - - for (; *istr && *istr != '\n'; istr++) - { - char c, nx; - - c = *(istr); - nx = *(istr + 1); - - if (c == ';') - { - for (; *istr && *istr != '\n'; istr++); - break; - } - *obuf = c; - obuf++; - - if (nx == ';' || nx == '=' || c == '=') - { - istr++; - break; - } - } - *obuf = '\0'; - - /* Trim end of token */ - for (; obuf > start && (*(obuf - 1) == ' ' || *(obuf - 1) == '\t');) - *--obuf = '\0'; - - return istr; -} - -#if !defined(WINDOWS) && !defined(WIN32) && !defined(OS2) -# include -# define UNIX_PWD -#endif - -char * -_iodbcdm_getinifile (char *buf, int size) -{ - int i, j; - char *ptr; - - j = STRLEN ("/odbc.ini") + 1; - - if (size < j) - { - return NULL; - } - -#if !defined(UNIX_PWD) - - i = GetWindowsDirectory ((LPSTR) buf, size); - - if (i == 0 || i > size - j) - { - return NULL; - } - - sprintf (buf + i, "/odbc.ini"); - - return buf; -#else - if ((ptr = getenv ("ODBCINI")) != NULL) - { - strcpy (buf, ptr); - return buf; - } - - if ((ptr = getenv ("IODBCINI")) != NULL) - { - strcpy (buf, ptr); - return buf; - } - - if ((ptr = getenv ("HOME")) == NULL) - { - ptr = (char *) getpwuid (getuid ()); - - if (ptr == NULL) - { - return NULL; - } - - ptr = ((struct passwd *) ptr)->pw_dir; - } - - if (ptr == NULL || *ptr == '\0') - { - ptr = "/home"; - } - - if (size < STRLEN (ptr) + j) - { - return NULL; - } - - sprintf (buf, "%s%s", ptr, "/.odbc.ini"); - /* i.e. searching ~/.odbc.ini */ -#endif - - return buf; -} - - -/* - * read odbc init file to resolve the value of specified - * key from named or defaulted dsn section - */ -char * -_iodbcdm_getkeyvalbydsn ( - char *dsn, - int dsnlen, - char *keywd, - char *value, - int size) -{ - char buf[1024]; - char dsntk[SQL_MAX_DSN_LENGTH + 3] = {'[', '\0'}; - char token[1024]; /* large enough */ - FILE *file; - char pathbuf[1024]; - char *path; - -#define DSN_NOMATCH 0 -#define DSN_NAMED 1 -#define DSN_DEFAULT 2 - - int dsnid = DSN_NOMATCH; - int defaultdsn = DSN_NOMATCH; - - if (dsn == NULL || *dsn == 0) - { - dsn = "default"; - dsnlen = STRLEN (dsn); - } - - if (dsnlen == SQL_NTS) - { - dsnlen = STRLEN (dsn); - } - - if (dsnlen <= 0 || keywd == NULL || buf == 0 || size <= 0) - { - return NULL; - } - - if (dsnlen > sizeof (dsntk) - 2) - { - return NULL; - } - - value[0] = '\0'; - - STRNCAT (dsntk, dsn, dsnlen); - STRCAT (dsntk, "]"); - - dsnlen = dsnlen + 2; - - path = _iodbcdm_getinifile (pathbuf, sizeof (pathbuf)); - - if (path == NULL) - { - return NULL; - } - - file = (FILE *) fopen (path, "r"); - - if (file == NULL) - { - return NULL; - } - - for (;;) - { - char *str; - - str = fgets (buf, sizeof (buf), file); - - if (str == NULL) - { - break; - } - - if (*str == '[') - { - if (upper_strneq (str, "[default]", STRLEN ("[default]"))) - { - /* we only read first dsn default dsn - * section (as well as named dsn). - */ - if (defaultdsn == DSN_NOMATCH) - { - dsnid = DSN_DEFAULT; - defaultdsn = DSN_DEFAULT; - } - else - { - dsnid = DSN_NOMATCH; - } - - continue; - } - else if (upper_strneq (str, dsntk, dsnlen)) - { - dsnid = DSN_NAMED; - } - else - { - dsnid = DSN_NOMATCH; - } - - continue; - } - else if (dsnid == DSN_NOMATCH) - { - continue; - } - - str = readtoken (str, token); - - if (upper_strneq (keywd, token, STRLEN (keywd))) - { - str = readtoken (str, token); - - if (!STREQ (token, "=")) - /* something other than = */ - { - continue; - } - - str = readtoken (str, token); - - if (STRLEN (token) > size - 1) - { - break; - } - - STRNCPY (value, token, size); - /* copy the value(i.e. next token) to buf */ - - if (dsnid != DSN_DEFAULT) - { - break; - } - } - } - - fclose (file); - - return (*value) ? value : NULL; -} - - -char * -_iodbcdm_getkeyvalinstr ( - char *cnstr, - int cnlen, - char *keywd, - char *value, - int size) -{ - char token[1024] = {'\0'}; - int flag = 0; - - if (cnstr == NULL || value == NULL - || keywd == NULL || size < 1) - { - return NULL; - } - - if (cnlen == SQL_NTS) - { - cnlen = STRLEN (cnstr); - } - - if (cnlen <= 0) - { - return NULL; - } - - for (;;) - { - cnstr = readtoken (cnstr, token); - - if (*token == '\0') - { - break; - } - - if (STREQ (token, ";")) - { - flag = 0; - continue; - } - - switch (flag) - { - case 0: - if (upper_strneq (token, keywd, strlen (keywd))) - { - flag = 1; - } - break; - - case 1: - if (STREQ (token, "=")) - { - flag = 2; - } - break; - - case 2: - if (size < strlen (token) + 1) - { - return NULL; - } - - STRNCPY (value, token, size); - - return value; - - default: - break; - } - } - - return NULL; -} diff --git a/src/iodbc/prepare.c b/src/iodbc/prepare.c deleted file mode 100644 index 59aa4de13a..0000000000 --- a/src/iodbc/prepare.c +++ /dev/null @@ -1,525 +0,0 @@ -/* - * prepare.c - * - * $Id$ - * - * Prepare a query - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -#include - -RETCODE SQL_API -SQLPrepare ( - HSTMT hstmt, - UCHAR FAR * szSqlStr, - SDWORD cbSqlStr) -{ - STMT_t FAR *pstmt = (STMT_t *) hstmt; - - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode = SQL_SUCCESS; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - /* not on asyn state */ - switch (pstmt->state) - { - case en_stmt_fetched: - case en_stmt_xfetched: - sqlstat = en_24000; - break; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - default: - break; - } - } - else if (pstmt->asyn_on != en_Prepare) - { - /* asyn on other */ - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - if (szSqlStr == NULL) - { - PUSHSQLERR (pstmt->herr, en_S1009); - - return SQL_ERROR; - } - - if (cbSqlStr < 0 && cbSqlStr != SQL_NTS) - { - PUSHSQLERR (pstmt->herr, en_S1090); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_Prepare); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_Prepare, - (pstmt->dhstmt, szSqlStr, cbSqlStr)) - - /* stmt state transition */ - if (pstmt->asyn_on == en_Prepare) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - return retcode; - - case SQL_STILL_EXECUTING: - default: - return retcode; - } - } - - switch (retcode) - { - case SQL_STILL_EXECUTING: - pstmt->asyn_on = en_Prepare; - break; - - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - pstmt->state = en_stmt_prepared; - pstmt->prep_state = 1; - break; - - case SQL_ERROR: - switch (pstmt->state) - { - case en_stmt_prepared: - case en_stmt_executed: - pstmt->state = en_stmt_allocated; - pstmt->prep_state = 0; - break; - - default: - break; - } - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLSetCursorName ( - HSTMT hstmt, - UCHAR FAR * szCursor, - SWORD cbCursor) -{ - STMT_t FAR *pstmt = (STMT_t *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - - RETCODE retcode = SQL_SUCCESS; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - if (szCursor == NULL) - { - PUSHSQLERR (pstmt->herr, en_S1009); - - return SQL_ERROR; - } - - if (cbCursor < 0 && cbCursor != SQL_NTS) - { - PUSHSQLERR (pstmt->herr, en_S1090); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on != en_NullProc) - { - sqlstat = en_S1010; - } - else - { - switch (pstmt->state) - { - case en_stmt_executed: - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - sqlstat = en_24000; - break; - - case en_stmt_needdata: - case en_stmt_mustput: - case en_stmt_canput: - sqlstat = en_S1010; - break; - - default: - break; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_SetCursorName); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_SetCursorName, - (pstmt->dhstmt, szCursor, cbCursor)) - - if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO) - { - pstmt->cursor_state = en_stmt_cursor_named; - } - - return retcode; -} - - -RETCODE SQL_API -SQLBindParameter ( - HSTMT hstmt, - UWORD ipar, - SWORD fParamType, - SWORD fCType, - SWORD fSqlType, - UDWORD cbColDef, - SWORD ibScale, - PTR rgbValue, - SDWORD cbValueMax, - SDWORD FAR * pcbValue) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - - int sqlstat = en_00000; - RETCODE retcode = SQL_SUCCESS; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check param */ - if (fSqlType > SQL_TYPE_MAX || - (fSqlType < SQL_TYPE_MIN && fSqlType > SQL_TYPE_DRIVER_START)) - /* Note: SQL_TYPE_DRIVER_START is a nagtive number - * So, we use ">" */ - { - sqlstat = en_S1004; - } - else if (ipar < 1) - { - sqlstat = en_S1093; - } - else if ((rgbValue == NULL && pcbValue == NULL) - && fParamType != SQL_PARAM_OUTPUT) - { - sqlstat = en_S1009; - /* This means, I allow output to nowhere - * (i.e. * junk output result). But I can't - * allow input from nowhere. - */ - } -/********** - else if( cbValueMax < 0L && cbValueMax != SQL_SETPARAM_VALUE_MAX ) - { - sqlstat = en_S1090; - } -**********/ - else if (fParamType != SQL_PARAM_INPUT - && fParamType != SQL_PARAM_OUTPUT - && fParamType != SQL_PARAM_INPUT_OUTPUT) - { - sqlstat = en_S1105; - } - else - { - switch (fCType) - { - case SQL_C_DEFAULT: - case SQL_C_CHAR: - case SQL_C_BINARY: - case SQL_C_BIT: - case SQL_C_TINYINT: - case SQL_C_STINYINT: - case SQL_C_UTINYINT: - case SQL_C_SHORT: - case SQL_C_SSHORT: - case SQL_C_USHORT: - case SQL_C_LONG: - case SQL_C_SLONG: - case SQL_C_ULONG: - case SQL_C_FLOAT: - case SQL_C_DOUBLE: - case SQL_C_DATE: - case SQL_C_TIME: - case SQL_C_TIMESTAMP: - break; - - default: - sqlstat = en_S1003; - break; - } - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->state >= en_stmt_needdata || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - retcode = SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_BindParameter); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_BindParameter, - (pstmt->dhstmt, ipar, fParamType, fCType, fSqlType, cbColDef, - ibScale, rgbValue, cbValueMax, pcbValue)) - - return retcode; -} - - -RETCODE SQL_API -SQLParamOptions ( - HSTMT hstmt, - UDWORD crow, - UDWORD FAR * pirow) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - if (crow == (UDWORD) 0UL) - { - PUSHSQLERR (pstmt->herr, en_S1107); - - return SQL_ERROR; - } - - if (pstmt->state >= en_stmt_needdata || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ParamOptions); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ParamOptions, - (pstmt->dhstmt, crow, pirow)) - - return retcode; -} - - -RETCODE SQL_API -SQLSetScrollOptions ( - HSTMT hstmt, - UWORD fConcurrency, - SDWORD crowKeyset, - UWORD crowRowset) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - int sqlstat = en_00000; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - for (;;) - { - if (crowRowset == (UWORD) 0) - { - sqlstat = en_S1107; - break; - } - - if (crowKeyset > (SDWORD) 0L && crowKeyset < (SDWORD) crowRowset) - { - sqlstat = en_S1107; - break; - } - - if (crowKeyset < 1) - { - if (crowKeyset != SQL_SCROLL_FORWARD_ONLY - && crowKeyset != SQL_SCROLL_STATIC - && crowKeyset != SQL_SCROLL_KEYSET_DRIVEN - && crowKeyset != SQL_SCROLL_DYNAMIC) - { - sqlstat = en_S1107; - break; - } - } - - if (fConcurrency != SQL_CONCUR_READ_ONLY - && fConcurrency != SQL_CONCUR_LOCK - && fConcurrency != SQL_CONCUR_ROWVER - && fConcurrency != SQL_CONCUR_VALUES) - { - sqlstat = en_S1108; - break; - } - - if (pstmt->state != en_stmt_allocated) - { - sqlstat = en_S1010; - break; - } - - hproc = _iodbcdm_getproc (pstmt->hdbc, en_SetScrollOptions); - - if (hproc == SQL_NULL_HPROC) - { - sqlstat = en_IM001; - break; - } - - sqlstat = en_00000; - if (1) /* turn off solaris warning message */ - break; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_SetScrollOptions, - (pstmt->dhstmt, fConcurrency, crowKeyset, crowRowset)) - - return retcode; -} - - -RETCODE SQL_API -SQLSetParam ( - HSTMT hstmt, - UWORD ipar, - SWORD fCType, - SWORD fSqlType, - UDWORD cbColDef, - SWORD ibScale, - PTR rgbValue, - SDWORD FAR * pcbValue) -{ - return SQLBindParameter (hstmt, - ipar, - (SWORD) SQL_PARAM_INPUT_OUTPUT, - fCType, - fSqlType, - cbColDef, - ibScale, - rgbValue, - SQL_SETPARAM_VALUE_MAX, - pcbValue); -} diff --git a/src/iodbc/result.c b/src/iodbc/result.c deleted file mode 100644 index 99dd7bf7f3..0000000000 --- a/src/iodbc/result.c +++ /dev/null @@ -1,523 +0,0 @@ -/* - * result.c - * - * $Id$ - * - * Prepare for getting query result - * - * The iODBC driver manager. - * - * Copyright (C) 1995 by Ke Jin - * - * 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. - */ - -#include "config.h" - -#include "isql.h" -#include "isqlext.h" - -#include "dlproc.h" - -#include "herr.h" -#include "henv.h" -#include "hdbc.h" -#include "hstmt.h" - -#include "itrace.h" - -RETCODE SQL_API -SQLBindCol ( - HSTMT hstmt, - UWORD icol, - SWORD fCType, - PTR rgbValue, - SDWORD cbValueMax, - SDWORD FAR * pcbValue) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc = SQL_NULL_HPROC; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - switch (fCType) - { - case SQL_C_DEFAULT: - case SQL_C_CHAR: - case SQL_C_BINARY: - case SQL_C_BIT: - case SQL_C_TINYINT: - case SQL_C_STINYINT: - case SQL_C_UTINYINT: - case SQL_C_SHORT: - case SQL_C_SSHORT: - case SQL_C_USHORT: - case SQL_C_LONG: - case SQL_C_SLONG: - case SQL_C_ULONG: - case SQL_C_FLOAT: - case SQL_C_DOUBLE: - case SQL_C_DATE: - case SQL_C_TIME: - case SQL_C_TIMESTAMP: - break; - - default: - PUSHSQLERR (pstmt->herr, en_S1003); - return SQL_ERROR; - } - - if (cbValueMax < 0) - { - PUSHSQLERR (pstmt->herr, en_S1090); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->state > en_stmt_needdata || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - } - - /* call driver's function */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_BindCol); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_BindCol, - (pstmt->dhstmt, icol, fCType, rgbValue, cbValueMax, pcbValue)) - - return retcode; -} - - -RETCODE SQL_API -SQLGetCursorName ( - HSTMT hstmt, - UCHAR FAR * szCursor, - SWORD cbCursorMax, - SWORD FAR * pcbCursor) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check argument */ - if (cbCursorMax < (SWORD) 0) - { - PUSHSQLERR (pstmt->herr, en_S1090); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->state >= en_stmt_needdata || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - if (pstmt->state < en_stmt_cursoropen - && pstmt->cursor_state == en_stmt_cursor_no) - { - PUSHSQLERR (pstmt->herr, en_S1015); - - return SQL_ERROR; - } - - /* call driver's function */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_GetCursorName); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_GetCursorName, - (pstmt->dhstmt, szCursor, cbCursorMax, pcbCursor)) - - return retcode; -} - - -RETCODE SQL_API -SQLRowCount ( - HSTMT hstmt, - SDWORD FAR * pcrow) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pstmt->state >= en_stmt_needdata - || pstmt->state <= en_stmt_prepared - || pstmt->asyn_on != en_NullProc) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_RowCount); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_RowCount, - (pstmt->dhstmt, pcrow)) - - return retcode; -} - - -RETCODE SQL_API -SQLNumResultCols ( - HSTMT hstmt, - SWORD FAR * pccol) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - SWORD ccol; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - if (pstmt->state == en_stmt_allocated - || pstmt->state >= en_stmt_needdata) - { - PUSHSQLERR (pstmt->herr, en_S1010); - return SQL_ERROR; - } - } - else if (pstmt->asyn_on != en_NumResultCols) - { - PUSHSQLERR (pstmt->herr, en_S1010); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_NumResultCols); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_NumResultCols, - (pstmt->dhstmt, &ccol)) - - /* state transition */ - if (pstmt->asyn_on == en_NumResultCols) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - - case SQL_STILL_EXECUTING: - default: - break; - } - } - - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - break; - - case SQL_STILL_EXECUTING: - ccol = 0; - pstmt->asyn_on = en_NumResultCols; - break; - - default: - ccol = 0; - break; - } - - if (pccol) - { - *pccol = ccol; - } - - return retcode; -} - - -RETCODE SQL_API -SQLDescribeCol ( - HSTMT hstmt, - UWORD icol, - UCHAR FAR * szColName, - SWORD cbColNameMax, - SWORD FAR * pcbColName, - SWORD FAR * pfSqlType, - UDWORD FAR * pcbColDef, - SWORD FAR * pibScale, - SWORD FAR * pfNullable) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT - || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check arguments */ - if (icol == 0) - { - sqlstat = en_S1002; - } - else if (cbColNameMax < 0) - { - sqlstat = en_S1090; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - if (pstmt->asyn_on == en_stmt_allocated - || pstmt->asyn_on >= en_stmt_needdata) - { - sqlstat = en_S1010; - } - } - else if (pstmt->asyn_on != en_DescribeCol) - { - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_DescribeCol); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_DescribeCol, - (pstmt->dhstmt, icol, szColName, cbColNameMax, pcbColName, - pfSqlType, pcbColDef, pibScale, pfNullable)) - - /* state transition */ - if (pstmt->asyn_on == en_DescribeCol) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_prepared: - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_DescribeCol; - } - break; - - default: - break; - } - - return retcode; -} - - -RETCODE SQL_API -SQLColAttributes ( - HSTMT hstmt, - UWORD icol, - UWORD fDescType, - PTR rgbDesc, - SWORD cbDescMax, - SWORD FAR * pcbDesc, - SDWORD FAR * pfDesc) -{ - STMT_t FAR *pstmt = (STMT_t FAR *) hstmt; - HPROC hproc; - RETCODE retcode; - int sqlstat = en_00000; - - if (hstmt == SQL_NULL_HSTMT || pstmt->hdbc == SQL_NULL_HDBC) - { - return SQL_INVALID_HANDLE; - } - - /* check arguments */ - if (icol == 0 && fDescType != SQL_COLUMN_COUNT) - { - sqlstat = en_S1002; - } - else if (cbDescMax < 0) - { - sqlstat = en_S1090; - } - else if ( /* fDescType < SQL_COLATT_OPT_MIN || *//* turnoff warning */ - (fDescType > SQL_COLATT_OPT_MAX - && fDescType < SQL_COLUMN_DRIVER_START)) - { - sqlstat = en_S1091; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* check state */ - if (pstmt->asyn_on == en_NullProc) - { - if (pstmt->asyn_on == en_stmt_allocated - || pstmt->asyn_on >= en_stmt_needdata) - { - sqlstat = en_S1010; - } - } - else if (pstmt->asyn_on != en_ColAttributes) - { - sqlstat = en_S1010; - } - - if (sqlstat != en_00000) - { - PUSHSQLERR (pstmt->herr, sqlstat); - - return SQL_ERROR; - } - - /* call driver */ - hproc = _iodbcdm_getproc (pstmt->hdbc, en_ColAttributes); - - if (hproc == SQL_NULL_HPROC) - { - PUSHSQLERR (pstmt->herr, en_IM001); - - return SQL_ERROR; - } - - CALL_DRIVER (pstmt->hdbc, retcode, hproc, en_ColAttributes, - (pstmt->dhstmt, icol, fDescType, rgbDesc, cbDescMax, pcbDesc, pfDesc)) - - /* state transition */ - if (pstmt->asyn_on == en_ColAttributes) - { - switch (retcode) - { - case SQL_SUCCESS: - case SQL_SUCCESS_WITH_INFO: - case SQL_ERROR: - pstmt->asyn_on = en_NullProc; - break; - - default: - return retcode; - } - } - - switch (pstmt->state) - { - case en_stmt_prepared: - case en_stmt_cursoropen: - case en_stmt_fetched: - case en_stmt_xfetched: - if (retcode == SQL_STILL_EXECUTING) - { - pstmt->asyn_on = en_ColAttributes; - } - break; - - default: - break; - } - - return retcode; -} diff --git a/src/iodbc/shrsub.exp b/src/iodbc/shrsub.exp deleted file mode 100644 index 1fe3ec7de9..0000000000 --- a/src/iodbc/shrsub.exp +++ /dev/null @@ -1,64 +0,0 @@ -SQLAllocEnv -SQLAllocConnect -SQLConnect -SQLDriverConnect -SQLBrowseConnect - -SQLDataSources -SQLDrivers -SQLGetInfo -SQLGetFunctions -SQLGetTypeInfo - -SQLSetConnectOption -SQLGetConnectOption -SQLSetStmtOption -SQLGetStmtOption - -SQLAllocStmt -SQLPrepare -SQLBindParameter -SQLParamOptions -SQLGetCursorName -SQLSetCursorName -SQLSetScrollOptions -SQLSetParam - -SQLExecute -SQLExecDirect -SQLNativeSql -SQLDescribeParam -SQLNumParams -SQLParamData -SQLPutData - -SQLRowCount -SQLNumResultCols -SQLDescribeCol -SQLColAttributes -SQLBindCol -SQLFetch -SQLExtendedFetch -SQLGetData -SQLSetPos -SQLMoreResults -SQLError - -SQLColumnPrivileges -SQLColumns -SQLForeignKeys -SQLPrimaryKeys -SQLProcedureColumns -SQLProcedures -SQLSpecialColumns -SQLStatistics -SQLTablePrivileges -SQLTables - -SQLFreeStmt -SQLCancel -SQLTransact - -SQLDisconnect -SQLFreeConnect -SQLFreeEnv diff --git a/src/jpeg/README b/src/jpeg/README deleted file mode 100644 index 86cc20669d..0000000000 --- a/src/jpeg/README +++ /dev/null @@ -1,385 +0,0 @@ -The Independent JPEG Group's JPEG software -========================================== - -README for release 6b of 27-Mar-1998 -==================================== - -This distribution contains the sixth public release of the Independent JPEG -Group's free JPEG software. You are welcome to redistribute this software and -to use it for any purpose, subject to the conditions under LEGAL ISSUES, below. - -Serious users of this software (particularly those incorporating it into -larger programs) should contact IJG at jpeg-info@uunet.uu.net to be added to -our electronic mailing list. Mailing list members are notified of updates -and have a chance to participate in technical discussions, etc. - -This software is the work of Tom Lane, Philip Gladstone, Jim Boucher, -Lee Crocker, Julian Minguillon, Luis Ortiz, George Phillips, Davide Rossi, -Guido Vollbeding, Ge' Weijers, and other members of the Independent JPEG -Group. - -IJG is not affiliated with the official ISO JPEG standards committee. - - -DOCUMENTATION ROADMAP -===================== - -This file contains the following sections: - -OVERVIEW General description of JPEG and the IJG software. -LEGAL ISSUES Copyright, lack of warranty, terms of distribution. -REFERENCES Where to learn more about JPEG. -ARCHIVE LOCATIONS Where to find newer versions of this software. -RELATED SOFTWARE Other stuff you should get. -FILE FORMAT WARS Software *not* to get. -TO DO Plans for future IJG releases. - -Other documentation files in the distribution are: - -User documentation: - install.doc How to configure and install the IJG software. - usage.doc Usage instructions for cjpeg, djpeg, jpegtran, - rdjpgcom, and wrjpgcom. - *.1 Unix-style man pages for programs (same info as usage.doc). - wizard.doc Advanced usage instructions for JPEG wizards only. - change.log Version-to-version change highlights. -Programmer and internal documentation: - libjpeg.doc How to use the JPEG library in your own programs. - example.c Sample code for calling the JPEG library. - structure.doc Overview of the JPEG library's internal structure. - filelist.doc Road map of IJG files. - coderules.doc Coding style rules --- please read if you contribute code. - -Please read at least the files install.doc and usage.doc. Useful information -can also be found in the JPEG FAQ (Frequently Asked Questions) article. See -ARCHIVE LOCATIONS below to find out where to obtain the FAQ article. - -If you want to understand how the JPEG code works, we suggest reading one or -more of the REFERENCES, then looking at the documentation files (in roughly -the order listed) before diving into the code. - - -OVERVIEW -======== - -This package contains C software to implement JPEG image compression and -decompression. JPEG (pronounced "jay-peg") is a standardized compression -method for full-color and gray-scale images. JPEG is intended for compressing -"real-world" scenes; line drawings, cartoons and other non-realistic images -are not its strong suit. JPEG is lossy, meaning that the output image is not -exactly identical to the input image. Hence you must not use JPEG if you -have to have identical output bits. However, on typical photographic images, -very good compression levels can be obtained with no visible change, and -remarkably high compression levels are possible if you can tolerate a -low-quality image. For more details, see the references, or just experiment -with various compression settings. - -This software implements JPEG baseline, extended-sequential, and progressive -compression processes. Provision is made for supporting all variants of these -processes, although some uncommon parameter settings aren't implemented yet. -For legal reasons, we are not distributing code for the arithmetic-coding -variants of JPEG; see LEGAL ISSUES. We have made no provision for supporting -the hierarchical or lossless processes defined in the standard. - -We provide a set of library routines for reading and writing JPEG image files, -plus two sample applications "cjpeg" and "djpeg", which use the library to -perform conversion between JPEG and some other popular image file formats. -The library is intended to be reused in other applications. - -In order to support file conversion and viewing software, we have included -considerable functionality beyond the bare JPEG coding/decoding capability; -for example, the color quantization modules are not strictly part of JPEG -decoding, but they are essential for output to colormapped file formats or -colormapped displays. These extra functions can be compiled out of the -library if not required for a particular application. We have also included -"jpegtran", a utility for lossless transcoding between different JPEG -processes, and "rdjpgcom" and "wrjpgcom", two simple applications for -inserting and extracting textual comments in JFIF files. - -The emphasis in designing this software has been on achieving portability and -flexibility, while also making it fast enough to be useful. In particular, -the software is not intended to be read as a tutorial on JPEG. (See the -REFERENCES section for introductory material.) Rather, it is intended to -be reliable, portable, industrial-strength code. We do not claim to have -achieved that goal in every aspect of the software, but we strive for it. - -We welcome the use of this software as a component of commercial products. -No royalty is required, but we do ask for an acknowledgement in product -documentation, as described under LEGAL ISSUES. - - -LEGAL ISSUES -============ - -In plain English: - -1. We don't promise that this software works. (But if you find any bugs, - please let us know!) -2. You can use this software for whatever you want. You don't have to pay us. -3. You may not pretend that you wrote this software. If you use it in a - program, you must acknowledge somewhere in your documentation that - you've used the IJG code. - -In legalese: - -The authors make NO WARRANTY or representation, either express or implied, -with respect to this software, its quality, accuracy, merchantability, or -fitness for a particular purpose. This software is provided "AS IS", and you, -its user, assume the entire risk as to its quality and accuracy. - -This software is copyright (C) 1991-1998, Thomas G. Lane. -All Rights Reserved except as specified below. - -Permission is hereby granted to use, copy, modify, and distribute this -software (or portions thereof) for any purpose, without fee, subject to these -conditions: -(1) If any part of the source code for this software is distributed, then this -README file must be included, with this copyright and no-warranty notice -unaltered; and any additions, deletions, or changes to the original files -must be clearly indicated in accompanying documentation. -(2) If only executable code is distributed, then the accompanying -documentation must state that "this software is based in part on the work of -the Independent JPEG Group". -(3) Permission for use of this software is granted only if the user accepts -full responsibility for any undesirable consequences; the authors accept -NO LIABILITY for damages of any kind. - -These conditions apply to any software derived from or based on the IJG code, -not just to the unmodified library. If you use our work, you ought to -acknowledge us. - -Permission is NOT granted for the use of any IJG author's name or company name -in advertising or publicity relating to this software or products derived from -it. This software may be referred to only as "the Independent JPEG Group's -software". - -We specifically permit and encourage the use of this software as the basis of -commercial products, provided that all warranty or liability claims are -assumed by the product vendor. - - -ansi2knr.c is included in this distribution by permission of L. Peter Deutsch, -sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA. -ansi2knr.c is NOT covered by the above copyright and conditions, but instead -by the usual distribution terms of the Free Software Foundation; principally, -that you must include source code if you redistribute it. (See the file -ansi2knr.c for full details.) However, since ansi2knr.c is not needed as part -of any program generated from the IJG code, this does not limit you more than -the foregoing paragraphs do. - -The Unix configuration script "configure" was produced with GNU Autoconf. -It is copyright by the Free Software Foundation but is freely distributable. -The same holds for its supporting scripts (config.guess, config.sub, -ltconfig, ltmain.sh). Another support script, install-sh, is copyright -by M.I.T. but is also freely distributable. - -It appears that the arithmetic coding option of the JPEG spec is covered by -patents owned by IBM, AT&T, and Mitsubishi. Hence arithmetic coding cannot -legally be used without obtaining one or more licenses. For this reason, -support for arithmetic coding has been removed from the free JPEG software. -(Since arithmetic coding provides only a marginal gain over the unpatented -Huffman mode, it is unlikely that very many implementations will support it.) -So far as we are aware, there are no patent restrictions on the remaining -code. - -The IJG distribution formerly included code to read and write GIF files. -To avoid entanglement with the Unisys LZW patent, GIF reading support has -been removed altogether, and the GIF writer has been simplified to produce -"uncompressed GIFs". This technique does not use the LZW algorithm; the -resulting GIF files are larger than usual, but are readable by all standard -GIF decoders. - -We are required to state that - "The Graphics Interchange Format(c) is the Copyright property of - CompuServe Incorporated. GIF(sm) is a Service Mark property of - CompuServe Incorporated." - - -REFERENCES -========== - -We highly recommend reading one or more of these references before trying to -understand the innards of the JPEG software. - -The best short technical introduction to the JPEG compression algorithm is - Wallace, Gregory K. "The JPEG Still Picture Compression Standard", - Communications of the ACM, April 1991 (vol. 34 no. 4), pp. 30-44. -(Adjacent articles in that issue discuss MPEG motion picture compression, -applications of JPEG, and related topics.) If you don't have the CACM issue -handy, a PostScript file containing a revised version of Wallace's article is -available at ftp://ftp.uu.net/graphics/jpeg/wallace.ps.gz. The file (actually -a preprint for an article that appeared in IEEE Trans. Consumer Electronics) -omits the sample images that appeared in CACM, but it includes corrections -and some added material. Note: the Wallace article is copyright ACM and IEEE, -and it may not be used for commercial purposes. - -A somewhat less technical, more leisurely introduction to JPEG can be found in -"The Data Compression Book" by Mark Nelson and Jean-loup Gailly, published by -M&T Books (New York), 2nd ed. 1996, ISBN 1-55851-434-1. This book provides -good explanations and example C code for a multitude of compression methods -including JPEG. It is an excellent source if you are comfortable reading C -code but don't know much about data compression in general. The book's JPEG -sample code is far from industrial-strength, but when you are ready to look -at a full implementation, you've got one here... - -The best full description of JPEG is the textbook "JPEG Still Image Data -Compression Standard" by William B. Pennebaker and Joan L. Mitchell, published -by Van Nostrand Reinhold, 1993, ISBN 0-442-01272-1. Price US$59.95, 638 pp. -The book includes the complete text of the ISO JPEG standards (DIS 10918-1 -and draft DIS 10918-2). This is by far the most complete exposition of JPEG -in existence, and we highly recommend it. - -The JPEG standard itself is not available electronically; you must order a -paper copy through ISO or ITU. (Unless you feel a need to own a certified -official copy, we recommend buying the Pennebaker and Mitchell book instead; -it's much cheaper and includes a great deal of useful explanatory material.) -In the USA, copies of the standard may be ordered from ANSI Sales at (212) -642-4900, or from Global Engineering Documents at (800) 854-7179. (ANSI -doesn't take credit card orders, but Global does.) It's not cheap: as of -1992, ANSI was charging $95 for Part 1 and $47 for Part 2, plus 7% -shipping/handling. The standard is divided into two parts, Part 1 being the -actual specification, while Part 2 covers compliance testing methods. Part 1 -is titled "Digital Compression and Coding of Continuous-tone Still Images, -Part 1: Requirements and guidelines" and has document numbers ISO/IEC IS -10918-1, ITU-T T.81. Part 2 is titled "Digital Compression and Coding of -Continuous-tone Still Images, Part 2: Compliance testing" and has document -numbers ISO/IEC IS 10918-2, ITU-T T.83. - -Some extensions to the original JPEG standard are defined in JPEG Part 3, -a newer ISO standard numbered ISO/IEC IS 10918-3 and ITU-T T.84. IJG -currently does not support any Part 3 extensions. - -The JPEG standard does not specify all details of an interchangeable file -format. For the omitted details we follow the "JFIF" conventions, revision -1.02. A copy of the JFIF spec is available from: - Literature Department - C-Cube Microsystems, Inc. - 1778 McCarthy Blvd. - Milpitas, CA 95035 - phone (408) 944-6300, fax (408) 944-6314 -A PostScript version of this document is available by FTP at -ftp://ftp.uu.net/graphics/jpeg/jfif.ps.gz. There is also a plain text -version at ftp://ftp.uu.net/graphics/jpeg/jfif.txt.gz, but it is missing -the figures. - -The TIFF 6.0 file format specification can be obtained by FTP from -ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme -found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems. -IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6). -Instead, we recommend the JPEG design proposed by TIFF Technical Note #2 -(Compression tag 7). Copies of this Note can be obtained from ftp.sgi.com or -from ftp://ftp.uu.net/graphics/jpeg/. It is expected that the next revision -of the TIFF spec will replace the 6.0 JPEG design with the Note's design. -Although IJG's own code does not support TIFF/JPEG, the free libtiff library -uses our library to implement TIFF/JPEG per the Note. libtiff is available -from ftp://ftp.sgi.com/graphics/tiff/. - - -ARCHIVE LOCATIONS -================= - -The "official" archive site for this software is ftp.uu.net (Internet -address 192.48.96.9). The most recent released version can always be found -there in directory graphics/jpeg. This particular version will be archived -as ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz. If you don't have -direct Internet access, UUNET's archives are also available via UUCP; contact -help@uunet.uu.net for information on retrieving files that way. - -Numerous Internet sites maintain copies of the UUNET files. However, only -ftp.uu.net is guaranteed to have the latest official version. - -You can also obtain this software in DOS-compatible "zip" archive format from -the SimTel archives (ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/), or -on CompuServe in the Graphics Support forum (GO CIS:GRAPHSUP), library 12 -"JPEG Tools". Again, these versions may sometimes lag behind the ftp.uu.net -release. - -The JPEG FAQ (Frequently Asked Questions) article is a useful source of -general information about JPEG. It is updated constantly and therefore is -not included in this distribution. The FAQ is posted every two weeks to -Usenet newsgroups comp.graphics.misc, news.answers, and other groups. -It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/ -and other news.answers archive sites, including the official news.answers -archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/. -If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu -with body - send usenet/news.answers/jpeg-faq/part1 - send usenet/news.answers/jpeg-faq/part2 - - -RELATED SOFTWARE -================ - -Numerous viewing and image manipulation programs now support JPEG. (Quite a -few of them use this library to do so.) The JPEG FAQ described above lists -some of the more popular free and shareware viewers, and tells where to -obtain them on Internet. - -If you are on a Unix machine, we highly recommend Jef Poskanzer's free -PBMPLUS software, which provides many useful operations on PPM-format image -files. In particular, it can convert PPM images to and from a wide range of -other formats, thus making cjpeg/djpeg considerably more useful. The latest -version is distributed by the NetPBM group, and is available from numerous -sites, notably ftp://wuarchive.wustl.edu/graphics/graphics/packages/NetPBM/. -Unfortunately PBMPLUS/NETPBM is not nearly as portable as the IJG software is; -you are likely to have difficulty making it work on any non-Unix machine. - -A different free JPEG implementation, written by the PVRG group at Stanford, -is available from ftp://havefun.stanford.edu/pub/jpeg/. This program -is designed for research and experimentation rather than production use; -it is slower, harder to use, and less portable than the IJG code, but it -is easier to read and modify. Also, the PVRG code supports lossless JPEG, -which we do not. (On the other hand, it doesn't do progressive JPEG.) - - -FILE FORMAT WARS -================ - -Some JPEG programs produce files that are not compatible with our library. -The root of the problem is that the ISO JPEG committee failed to specify a -concrete file format. Some vendors "filled in the blanks" on their own, -creating proprietary formats that no one else could read. (For example, none -of the early commercial JPEG implementations for the Macintosh were able to -exchange compressed files.) - -The file format we have adopted is called JFIF (see REFERENCES). This format -has been agreed to by a number of major commercial JPEG vendors, and it has -become the de facto standard. JFIF is a minimal or "low end" representation. -We recommend the use of TIFF/JPEG (TIFF revision 6.0 as modified by TIFF -Technical Note #2) for "high end" applications that need to record a lot of -additional data about an image. TIFF/JPEG is fairly new and not yet widely -supported, unfortunately. - -The upcoming JPEG Part 3 standard defines a file format called SPIFF. -SPIFF is interoperable with JFIF, in the sense that most JFIF decoders should -be able to read the most common variant of SPIFF. SPIFF has some technical -advantages over JFIF, but its major claim to fame is simply that it is an -official standard rather than an informal one. At this point it is unclear -whether SPIFF will supersede JFIF or whether JFIF will remain the de-facto -standard. IJG intends to support SPIFF once the standard is frozen, but we -have not decided whether it should become our default output format or not. -(In any case, our decoder will remain capable of reading JFIF indefinitely.) - -Various proprietary file formats incorporating JPEG compression also exist. -We have little or no sympathy for the existence of these formats. Indeed, -one of the original reasons for developing this free software was to help -force convergence on common, open format standards for JPEG files. Don't -use a proprietary file format! - - -TO DO -===== - -The major thrust for v7 will probably be improvement of visual quality. -The current method for scaling the quantization tables is known not to be -very good at low Q values. We also intend to investigate block boundary -smoothing, "poor man's variable quantization", and other means of improving -quality-vs-file-size performance without sacrificing compatibility. - -In future versions, we are considering supporting some of the upcoming JPEG -Part 3 extensions --- principally, variable quantization and the SPIFF file -format. - -As always, speeding things up is of great interest. - -Please send bug reports, offers of help, etc. to jpeg-info@uunet.uu.net. diff --git a/src/jpeg/ansi2knr.1 b/src/jpeg/ansi2knr.1 deleted file mode 100644 index f9ee5a631c..0000000000 --- a/src/jpeg/ansi2knr.1 +++ /dev/null @@ -1,36 +0,0 @@ -.TH ANSI2KNR 1 "19 Jan 1996" -.SH NAME -ansi2knr \- convert ANSI C to Kernighan & Ritchie C -.SH SYNOPSIS -.I ansi2knr -[--varargs] input_file [output_file] -.SH DESCRIPTION -If no output_file is supplied, output goes to stdout. -.br -There are no error messages. -.sp -.I ansi2knr -recognizes function definitions by seeing a non-keyword identifier at the left -margin, followed by a left parenthesis, with a right parenthesis as the last -character on the line, and with a left brace as the first token on the -following line (ignoring possible intervening comments). It will recognize a -multi-line header provided that no intervening line ends with a left or right -brace or a semicolon. These algorithms ignore whitespace and comments, except -that the function name must be the first thing on the line. -.sp -The following constructs will confuse it: -.br - - Any other construct that starts at the left margin and follows the -above syntax (such as a macro or function call). -.br - - Some macros that tinker with the syntax of the function header. -.sp -The --varargs switch is obsolete, and is recognized only for -backwards compatibility. The present version of -.I ansi2knr -will always attempt to convert a ... argument to va_alist and va_dcl. -.SH AUTHOR -L. Peter Deutsch wrote the original ansi2knr and -continues to maintain the current version; most of the code in the current -version is his work. ansi2knr also includes contributions by Francois -Pinard and Jim Avera . diff --git a/src/jpeg/ansi2knr.c b/src/jpeg/ansi2knr.c deleted file mode 100644 index 4e05fc2d32..0000000000 --- a/src/jpeg/ansi2knr.c +++ /dev/null @@ -1,693 +0,0 @@ -/* ansi2knr.c */ -/* Convert ANSI C function definitions to K&R ("traditional C") syntax */ - -/* -ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY. No author or distributor accepts responsibility to anyone for the -consequences of using it or for whether it serves any particular purpose or -works at all, unless he says so in writing. Refer to the GNU General Public -License (the "GPL") for full details. - -Everyone is granted permission to copy, modify and redistribute ansi2knr, -but only under the conditions described in the GPL. A copy of this license -is supposed to have been given to you along with ansi2knr so you can know -your rights and responsibilities. It should be in a file named COPYLEFT. -[In the IJG distribution, the GPL appears below, not in a separate file.] -Among other things, the copyright notice and this notice must be preserved -on all copies. - -We explicitly state here what we believe is already implied by the GPL: if -the ansi2knr program is distributed as a separate set of sources and a -separate executable file which are aggregated on a storage medium together -with another program, this in itself does not bring the other program under -the GPL, nor does the mere fact that such a program or the procedures for -constructing it invoke the ansi2knr executable bring any other part of the -program under the GPL. -*/ - -/* ----------- Here is the GNU GPL file COPYLEFT, referred to above ---------- ------ These terms do NOT apply to the JPEG software itself; see README ------ - - GHOSTSCRIPT GENERAL PUBLIC LICENSE - (Clarified 11 Feb 1988) - - Copyright (C) 1988 Richard M. Stallman - Everyone is permitted to copy and distribute verbatim copies of this - license, but changing it is not allowed. You can also use this wording - to make the terms for other programs. - - The license agreements of most software companies keep you at the -mercy of those companies. By contrast, our general public license is -intended to give everyone the right to share Ghostscript. To make sure -that you get the rights we want you to have, we need to make -restrictions that forbid anyone to deny you these rights or to ask you -to surrender the rights. Hence this license agreement. - - Specifically, we want to make sure that you have the right to give -away copies of Ghostscript, that you receive source code or else can get -it if you want it, that you can change Ghostscript or use pieces of it -in new free programs, and that you know you can do these things. - - To make sure that everyone has such rights, we have to forbid you to -deprive anyone else of these rights. For example, if you distribute -copies of Ghostscript, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - Also, for our own protection, we must make certain that everyone finds -out that there is no warranty for Ghostscript. If Ghostscript is -modified by someone else and passed on, we want its recipients to know -that what they have is not what we distributed, so that any problems -introduced by others will not reflect on our reputation. - - Therefore we (Richard M. Stallman and the Free Software Foundation, -Inc.) make the following terms which say what you must do to be allowed -to distribute or change Ghostscript. - - - COPYING POLICIES - - 1. You may copy and distribute verbatim copies of Ghostscript source -code as you receive it, in any medium, provided that you conspicuously -and appropriately publish on each copy a valid copyright and license -notice "Copyright (C) 1989 Aladdin Enterprises. All rights reserved. -Distributed by Free Software Foundation, Inc." (or with whatever year is -appropriate); keep intact the notices on all files that refer to this -License Agreement and to the absence of any warranty; and give any other -recipients of the Ghostscript program a copy of this License Agreement -along with the program. You may charge a distribution fee for the -physical act of transferring a copy. - - 2. You may modify your copy or copies of Ghostscript or any portion of -it, and copy and distribute such modifications under the terms of -Paragraph 1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating - that you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, - that in whole or in part contains or is a derivative of Ghostscript - or any part thereof, to be licensed at no charge to all third - parties on terms identical to those contained in this License - Agreement (except that you may choose to grant more extensive - warranty protection to some or all third parties, at your option). - - c) You may charge a distribution fee for the physical act of - transferring a copy, and you may at your option offer warranty - protection in exchange for a fee. - -Mere aggregation of another unrelated program with this program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other program under the scope of these terms. - - 3. You may copy and distribute Ghostscript (or a portion or derivative -of it, under Paragraph 2) in object code or executable form under the -terms of Paragraphs 1 and 2 above provided that you also do one of the -following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal - shipping charge) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -For an executable file, complete source code means all the source code for -all modules it contains; but, as a special exception, it need not include -source code for modules which are standard libraries that accompany the -operating system on which the executable file runs. - - 4. You may not copy, sublicense, distribute or transfer Ghostscript -except as expressly provided under this License Agreement. Any attempt -otherwise to copy, sublicense, distribute or transfer Ghostscript is -void and your rights to use the program under this License agreement -shall be automatically terminated. However, parties who have received -computer software programs from you with this License Agreement will not -have their licenses terminated so long as such parties remain in full -compliance. - - 5. If you wish to incorporate parts of Ghostscript into other free -programs whose distribution conditions are different, write to the Free -Software Foundation at 675 Mass Ave, Cambridge, MA 02139. We have not -yet worked out a simple rule that can be stated here, but we will often -permit this. We 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. - -Your comments and suggestions about our licensing policies and our -software are welcome! Please contact the Free Software Foundation, -Inc., 675 Mass Ave, Cambridge, MA 02139, or call (617) 876-3296. - - NO WARRANTY - - BECAUSE GHOSTSCRIPT IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY -NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT -WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC, RICHARD -M. STALLMAN, ALADDIN ENTERPRISES, L. PETER DEUTSCH, AND/OR OTHER PARTIES -PROVIDE GHOSTSCRIPT "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 GHOSTSCRIPT IS WITH -YOU. SHOULD GHOSTSCRIPT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR OR CORRECTION. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M. -STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., L. PETER DEUTSCH, ALADDIN -ENTERPRISES, AND/OR ANY OTHER PARTY WHO MAY MODIFY AND REDISTRIBUTE -GHOSTSCRIPT AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING -ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE -(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED -INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE -PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) GHOSTSCRIPT, EVEN IF YOU -HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM -BY ANY OTHER PARTY. - --------------------- End of file COPYLEFT ------------------------------ -*/ - -/* - * Usage: - ansi2knr input_file [output_file] - * If no output_file is supplied, output goes to stdout. - * There are no error messages. - * - * ansi2knr recognizes function definitions by seeing a non-keyword - * identifier at the left margin, followed by a left parenthesis, - * with a right parenthesis as the last character on the line, - * and with a left brace as the first token on the following line - * (ignoring possible intervening comments). - * It will recognize a multi-line header provided that no intervening - * line ends with a left or right brace or a semicolon. - * These algorithms ignore whitespace and comments, except that - * the function name must be the first thing on the line. - * The following constructs will confuse it: - * - Any other construct that starts at the left margin and - * follows the above syntax (such as a macro or function call). - * - Some macros that tinker with the syntax of the function header. - */ - -/* - * The original and principal author of ansi2knr is L. Peter Deutsch - * . Other authors are noted in the change history - * that follows (in reverse chronological order): - lpd 96-01-21 added code to cope with not HAVE_CONFIG_H and with - compilers that don't understand void, as suggested by - Tom Lane - lpd 96-01-15 changed to require that the first non-comment token - on the line following a function header be a left brace, - to reduce sensitivity to macros, as suggested by Tom Lane - - lpd 95-06-22 removed #ifndefs whose sole purpose was to define - undefined preprocessor symbols as 0; changed all #ifdefs - for configuration symbols to #ifs - lpd 95-04-05 changed copyright notice to make it clear that - including ansi2knr in a program does not bring the entire - program under the GPL - lpd 94-12-18 added conditionals for systems where ctype macros - don't handle 8-bit characters properly, suggested by - Francois Pinard ; - removed --varargs switch (this is now the default) - lpd 94-10-10 removed CONFIG_BROKETS conditional - lpd 94-07-16 added some conditionals to help GNU `configure', - suggested by Francois Pinard ; - properly erase prototype args in function parameters, - contributed by Jim Avera ; - correct error in writeblanks (it shouldn't erase EOLs) - lpd 89-xx-xx original version - */ - -/* Most of the conditionals here are to make ansi2knr work with */ -/* or without the GNU configure machinery. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -#if HAVE_CONFIG_H - -/* - For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h). - This will define HAVE_CONFIG_H and so, activate the following lines. - */ - -# if STDC_HEADERS || HAVE_STRING_H -# include -# else -# include -# endif - -#else /* not HAVE_CONFIG_H */ - -/* Otherwise do it the hard way */ - -# ifdef BSD -# include -# else -# ifdef VMS - extern int strlen(), strncmp(); -# else -# include -# endif -# endif - -#endif /* not HAVE_CONFIG_H */ - -#if STDC_HEADERS -# include -#else -/* - malloc and free should be declared in stdlib.h, - but if you've got a K&R compiler, they probably aren't. - */ -# ifdef MSDOS -# include -# else -# ifdef VMS - extern char *malloc(); - extern void free(); -# else - extern char *malloc(); - extern int free(); -# endif -# endif - -#endif - -/* - * The ctype macros don't always handle 8-bit characters correctly. - * Compensate for this here. - */ -#ifdef isascii -# undef HAVE_ISASCII /* just in case */ -# define HAVE_ISASCII 1 -#else -#endif -#if STDC_HEADERS || !HAVE_ISASCII -# define is_ascii(c) 1 -#else -# define is_ascii(c) isascii(c) -#endif - -#define is_space(c) (is_ascii(c) && isspace(c)) -#define is_alpha(c) (is_ascii(c) && isalpha(c)) -#define is_alnum(c) (is_ascii(c) && isalnum(c)) - -/* Scanning macros */ -#define isidchar(ch) (is_alnum(ch) || (ch) == '_') -#define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_') - -/* Forward references */ -char *skipspace(); -int writeblanks(); -int test1(); -int convert1(); - -/* The main program */ -int -main(argc, argv) - int argc; - char *argv[]; -{ FILE *in, *out; -#define bufsize 5000 /* arbitrary size */ - char *buf; - char *line; - char *more; - /* - * In previous versions, ansi2knr recognized a --varargs switch. - * If this switch was supplied, ansi2knr would attempt to convert - * a ... argument to va_alist and va_dcl; if this switch was not - * supplied, ansi2knr would simply drop any such arguments. - * Now, ansi2knr always does this conversion, and we only - * check for this switch for backward compatibility. - */ - int convert_varargs = 1; - - if ( argc > 1 && argv[1][0] == '-' ) - { if ( !strcmp(argv[1], "--varargs") ) - { convert_varargs = 1; - argc--; - argv++; - } - else - { fprintf(stderr, "Unrecognized switch: %s\n", argv[1]); - exit(1); - } - } - switch ( argc ) - { - default: - printf("Usage: ansi2knr input_file [output_file]\n"); - exit(0); - case 2: - out = stdout; - break; - case 3: - out = fopen(argv[2], "w"); - if ( out == NULL ) - { fprintf(stderr, "Cannot open output file %s\n", argv[2]); - exit(1); - } - } - in = fopen(argv[1], "r"); - if ( in == NULL ) - { fprintf(stderr, "Cannot open input file %s\n", argv[1]); - exit(1); - } - fprintf(out, "#line 1 \"%s\"\n", argv[1]); - buf = malloc(bufsize); - line = buf; - while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL ) - { -test: line += strlen(line); - switch ( test1(buf) ) - { - case 2: /* a function header */ - convert1(buf, out, 1, convert_varargs); - break; - case 1: /* a function */ - /* Check for a { at the start of the next line. */ - more = ++line; -f: if ( line >= buf + (bufsize - 1) ) /* overflow check */ - goto wl; - if ( fgets(line, (unsigned)(buf + bufsize - line), in) == NULL ) - goto wl; - switch ( *skipspace(more, 1) ) - { - case '{': - /* Definitely a function header. */ - convert1(buf, out, 0, convert_varargs); - fputs(more, out); - break; - case 0: - /* The next line was blank or a comment: */ - /* keep scanning for a non-comment. */ - line += strlen(line); - goto f; - default: - /* buf isn't a function header, but */ - /* more might be. */ - fputs(buf, out); - strcpy(buf, more); - line = buf; - goto test; - } - break; - case -1: /* maybe the start of a function */ - if ( line != buf + (bufsize - 1) ) /* overflow check */ - continue; - /* falls through */ - default: /* not a function */ -wl: fputs(buf, out); - break; - } - line = buf; - } - if ( line != buf ) - fputs(buf, out); - free(buf); - fclose(out); - fclose(in); - return 0; -} - -/* Skip over space and comments, in either direction. */ -char * -skipspace(p, dir) - register char *p; - register int dir; /* 1 for forward, -1 for backward */ -{ for ( ; ; ) - { while ( is_space(*p) ) - p += dir; - if ( !(*p == '/' && p[dir] == '*') ) - break; - p += dir; p += dir; - while ( !(*p == '*' && p[dir] == '/') ) - { if ( *p == 0 ) - return p; /* multi-line comment?? */ - p += dir; - } - p += dir; p += dir; - } - return p; -} - -/* - * Write blanks over part of a string. - * Don't overwrite end-of-line characters. - */ -int -writeblanks(start, end) - char *start; - char *end; -{ char *p; - for ( p = start; p < end; p++ ) - if ( *p != '\r' && *p != '\n' ) - *p = ' '; - return 0; -} - -/* - * Test whether the string in buf is a function definition. - * The string may contain and/or end with a newline. - * Return as follows: - * 0 - definitely not a function definition; - * 1 - definitely a function definition; - * 2 - definitely a function prototype (NOT USED); - * -1 - may be the beginning of a function definition, - * append another line and look again. - * The reason we don't attempt to convert function prototypes is that - * Ghostscript's declaration-generating macros look too much like - * prototypes, and confuse the algorithms. - */ -int -test1(buf) - char *buf; -{ register char *p = buf; - char *bend; - char *endfn; - int contin; - - if ( !isidfirstchar(*p) ) - return 0; /* no name at left margin */ - bend = skipspace(buf + strlen(buf) - 1, -1); - switch ( *bend ) - { - case ';': contin = 0 /*2*/; break; - case ')': contin = 1; break; - case '{': return 0; /* not a function */ - case '}': return 0; /* not a function */ - default: contin = -1; - } - while ( isidchar(*p) ) - p++; - endfn = p; - p = skipspace(p, 1); - if ( *p++ != '(' ) - return 0; /* not a function */ - p = skipspace(p, 1); - if ( *p == ')' ) - return 0; /* no parameters */ - /* Check that the apparent function name isn't a keyword. */ - /* We only need to check for keywords that could be followed */ - /* by a left parenthesis (which, unfortunately, is most of them). */ - { static char *words[] = - { "asm", "auto", "case", "char", "const", "double", - "extern", "float", "for", "if", "int", "long", - "register", "return", "short", "signed", "sizeof", - "static", "switch", "typedef", "unsigned", - "void", "volatile", "while", 0 - }; - char **key = words; - char *kp; - int len = endfn - buf; - - while ( (kp = *key) != 0 ) - { if ( strlen(kp) == len && !strncmp(kp, buf, len) ) - return 0; /* name is a keyword */ - key++; - } - } - return contin; -} - -/* Convert a recognized function definition or header to K&R syntax. */ -int -convert1(buf, out, header, convert_varargs) - char *buf; - FILE *out; - int header; /* Boolean */ - int convert_varargs; /* Boolean */ -{ char *endfn; - register char *p; - char **breaks; - unsigned num_breaks = 2; /* for testing */ - char **btop; - char **bp; - char **ap; - char *vararg = 0; - - /* Pre-ANSI implementations don't agree on whether strchr */ - /* is called strchr or index, so we open-code it here. */ - for ( endfn = buf; *(endfn++) != '('; ) - ; -top: p = endfn; - breaks = (char **)malloc(sizeof(char *) * num_breaks * 2); - if ( breaks == 0 ) - { /* Couldn't allocate break table, give up */ - fprintf(stderr, "Unable to allocate break table!\n"); - fputs(buf, out); - return -1; - } - btop = breaks + num_breaks * 2 - 2; - bp = breaks; - /* Parse the argument list */ - do - { int level = 0; - char *lp = NULL; - char *rp; - char *end = NULL; - - if ( bp >= btop ) - { /* Filled up break table. */ - /* Allocate a bigger one and start over. */ - free((char *)breaks); - num_breaks <<= 1; - goto top; - } - *bp++ = p; - /* Find the end of the argument */ - for ( ; end == NULL; p++ ) - { switch(*p) - { - case ',': - if ( !level ) end = p; - break; - case '(': - if ( !level ) lp = p; - level++; - break; - case ')': - if ( --level < 0 ) end = p; - else rp = p; - break; - case '/': - p = skipspace(p, 1) - 1; - break; - default: - ; - } - } - /* Erase any embedded prototype parameters. */ - if ( lp ) - writeblanks(lp + 1, rp); - p--; /* back up over terminator */ - /* Find the name being declared. */ - /* This is complicated because of procedure and */ - /* array modifiers. */ - for ( ; ; ) - { p = skipspace(p - 1, -1); - switch ( *p ) - { - case ']': /* skip array dimension(s) */ - case ')': /* skip procedure args OR name */ - { int level = 1; - while ( level ) - switch ( *--p ) - { - case ']': case ')': level++; break; - case '[': case '(': level--; break; - case '/': p = skipspace(p, -1) + 1; break; - default: ; - } - } - if ( *p == '(' && *skipspace(p + 1, 1) == '*' ) - { /* We found the name being declared */ - while ( !isidfirstchar(*p) ) - p = skipspace(p, 1) + 1; - goto found; - } - break; - default: - goto found; - } - } -found: if ( *p == '.' && p[-1] == '.' && p[-2] == '.' ) - { if ( convert_varargs ) - { *bp++ = "va_alist"; - vararg = p-2; - } - else - { p++; - if ( bp == breaks + 1 ) /* sole argument */ - writeblanks(breaks[0], p); - else - writeblanks(bp[-1] - 1, p); - bp--; - } - } - else - { while ( isidchar(*p) ) p--; - *bp++ = p+1; - } - p = end; - } - while ( *p++ == ',' ); - *bp = p; - /* Make a special check for 'void' arglist */ - if ( bp == breaks+2 ) - { p = skipspace(breaks[0], 1); - if ( !strncmp(p, "void", 4) ) - { p = skipspace(p+4, 1); - if ( p == breaks[2] - 1 ) - { bp = breaks; /* yup, pretend arglist is empty */ - writeblanks(breaks[0], p + 1); - } - } - } - /* Put out the function name and left parenthesis. */ - p = buf; - while ( p != endfn ) putc(*p, out), p++; - /* Put out the declaration. */ - if ( header ) - { fputs(");", out); - for ( p = breaks[0]; *p; p++ ) - if ( *p == '\r' || *p == '\n' ) - putc(*p, out); - } - else - { for ( ap = breaks+1; ap < bp; ap += 2 ) - { p = *ap; - while ( isidchar(*p) ) - putc(*p, out), p++; - if ( ap < bp - 1 ) - fputs(", ", out); - } - fputs(") ", out); - /* Put out the argument declarations */ - for ( ap = breaks+2; ap <= bp; ap += 2 ) - (*ap)[-1] = ';'; - if ( vararg != 0 ) - { *vararg = 0; - fputs(breaks[0], out); /* any prior args */ - fputs("va_dcl", out); /* the final arg */ - fputs(bp[0], out); - } - else - fputs(breaks[0], out); - } - free((char *)breaks); - return 0; -} diff --git a/src/jpeg/change.log b/src/jpeg/change.log deleted file mode 100644 index 74102c0db5..0000000000 --- a/src/jpeg/change.log +++ /dev/null @@ -1,217 +0,0 @@ -CHANGE LOG for Independent JPEG Group's JPEG software - - -Version 6b 27-Mar-1998 ------------------------ - -jpegtran has new features for lossless image transformations (rotation -and flipping) as well as "lossless" reduction to grayscale. - -jpegtran now copies comments by default; it has a -copy switch to enable -copying all APPn blocks as well, or to suppress comments. (Formerly it -always suppressed comments and APPn blocks.) jpegtran now also preserves -JFIF version and resolution information. - -New decompressor library feature: COM and APPn markers found in the input -file can be saved in memory for later use by the application. (Before, -you had to code this up yourself with a custom marker processor.) - -There is an unused field "void * client_data" now in compress and decompress -parameter structs; this may be useful in some applications. - -JFIF version number information is now saved by the decoder and accepted by -the encoder. jpegtran uses this to copy the source file's version number, -to ensure "jpegtran -copy all" won't create bogus files that contain JFXX -extensions but claim to be version 1.01. Applications that generate their -own JFXX extension markers also (finally) have a supported way to cause the -encoder to emit JFIF version number 1.02. - -djpeg's trace mode reports JFIF 1.02 thumbnail images as such, rather -than as unknown APP0 markers. - -In -verbose mode, djpeg and rdjpgcom will try to print the contents of -APP12 markers as text. Some digital cameras store useful text information -in APP12 markers. - -Handling of truncated data streams is more robust: blocks beyond the one in -which the error occurs will be output as uniform gray, or left unchanged -if decoding a progressive JPEG. The appearance no longer depends on the -Huffman tables being used. - -Huffman tables are checked for validity much more carefully than before. - -To avoid the Unisys LZW patent, djpeg's GIF output capability has been -changed to produce "uncompressed GIFs", and cjpeg's GIF input capability -has been removed altogether. We're not happy about it either, but there -seems to be no good alternative. - -The configure script now supports building libjpeg as a shared library -on many flavors of Unix (all the ones that GNU libtool knows how to -build shared libraries for). Use "./configure --enable-shared" to -try this out. - -New jconfig file and makefiles for Microsoft Visual C++ and Developer Studio. -Also, a jconfig file and a build script for Metrowerks CodeWarrior -on Apple Macintosh. makefile.dj has been updated for DJGPP v2, and there -are miscellaneous other minor improvements in the makefiles. - -jmemmac.c now knows how to create temporary files following Mac System 7 -conventions. - -djpeg's -map switch is now able to read raw-format PPM files reliably. - -cjpeg -progressive -restart no longer generates any unnecessary DRI markers. - -Multiple calls to jpeg_simple_progression for a single JPEG object -no longer leak memory. - - -Version 6a 7-Feb-96 --------------------- - -Library initialization sequence modified to detect version mismatches -and struct field packing mismatches between library and calling application. -This change requires applications to be recompiled, but does not require -any application source code change. - -All routine declarations changed to the style "GLOBAL(type) name ...", -that is, GLOBAL, LOCAL, METHODDEF, EXTERN are now macros taking the -routine's return type as an argument. This makes it possible to add -Microsoft-style linkage keywords to all the routines by changing just -these macros. Note that any application code that was using these macros -will have to be changed. - -DCT coefficient quantization tables are now stored in normal array order -rather than zigzag order. Application code that calls jpeg_add_quant_table, -or otherwise manipulates quantization tables directly, will need to be -changed. If you need to make such code work with either older or newer -versions of the library, a test like "#if JPEG_LIB_VERSION >= 61" is -recommended. - -djpeg's trace capability now dumps DQT tables in natural order, not zigzag -order. This allows the trace output to be made into a "-qtables" file -more easily. - -New system-dependent memory manager module for use on Apple Macintosh. - -Fix bug in cjpeg's -smooth option: last one or two scanlines would be -duplicates of the prior line unless the image height mod 16 was 1 or 2. - -Repair minor problems in VMS, BCC, MC6 makefiles. - -New configure script based on latest GNU Autoconf. - -Correct the list of include files needed by MetroWerks C for ccommand(). - -Numerous small documentation updates. - - -Version 6 2-Aug-95 -------------------- - -Progressive JPEG support: library can read and write full progressive JPEG -files. A "buffered image" mode supports incremental decoding for on-the-fly -display of progressive images. Simply recompiling an existing IJG-v5-based -decoder with v6 should allow it to read progressive files, though of course -without any special progressive display. - -New "jpegtran" application performs lossless transcoding between different -JPEG formats; primarily, it can be used to convert baseline to progressive -JPEG and vice versa. In support of jpegtran, the library now allows lossless -reading and writing of JPEG files as DCT coefficient arrays. This ability -may be of use in other applications. - -Notes for programmers: -* We changed jpeg_start_decompress() to be able to suspend; this makes all -decoding modes available to suspending-input applications. However, -existing applications that use suspending input will need to be changed -to check the return value from jpeg_start_decompress(). You don't need to -do anything if you don't use a suspending data source. -* We changed the interface to the virtual array routines: access_virt_array -routines now take a count of the number of rows to access this time. The -last parameter to request_virt_array routines is now interpreted as the -maximum number of rows that may be accessed at once, but not necessarily -the height of every access. - - -Version 5b 15-Mar-95 ---------------------- - -Correct bugs with grayscale images having v_samp_factor > 1. - -jpeg_write_raw_data() now supports output suspension. - -Correct bugs in "configure" script for case of compiling in -a directory other than the one containing the source files. - -Repair bug in jquant1.c: sometimes didn't use as many colors as it could. - -Borland C makefile and jconfig file work under either MS-DOS or OS/2. - -Miscellaneous improvements to documentation. - - -Version 5a 7-Dec-94 --------------------- - -Changed color conversion roundoff behavior so that grayscale values are -represented exactly. (This causes test image files to change.) - -Make ordered dither use 16x16 instead of 4x4 pattern for a small quality -improvement. - -New configure script based on latest GNU Autoconf. -Fix configure script to handle CFLAGS correctly. -Rename *.auto files to *.cfg, so that configure script still works if -file names have been truncated for DOS. - -Fix bug in rdbmp.c: didn't allow for extra data between header and image. - -Modify rdppm.c/wrppm.c to handle 2-byte raw PPM/PGM formats for 12-bit data. - -Fix several bugs in rdrle.c. - -NEED_SHORT_EXTERNAL_NAMES option was broken. - -Revise jerror.h/jerror.c for more flexibility in message table. - -Repair oversight in jmemname.c NO_MKTEMP case: file could be there -but unreadable. - - -Version 5 24-Sep-94 --------------------- - -Version 5 represents a nearly complete redesign and rewrite of the IJG -software. Major user-visible changes include: - * Automatic configuration simplifies installation for most Unix systems. - * A range of speed vs. image quality tradeoffs are supported. - This includes resizing of an image during decompression: scaling down - by a factor of 1/2, 1/4, or 1/8 is handled very efficiently. - * New programs rdjpgcom and wrjpgcom allow insertion and extraction - of text comments in a JPEG file. - -The application programmer's interface to the library has changed completely. -Notable improvements include: - * We have eliminated the use of callback routines for handling the - uncompressed image data. The application now sees the library as a - set of routines that it calls to read or write image data on a - scanline-by-scanline basis. - * The application image data is represented in a conventional interleaved- - pixel format, rather than as a separate array for each color channel. - This can save a copying step in many programs. - * The handling of compressed data has been cleaned up: the application can - supply routines to source or sink the compressed data. It is possible to - suspend processing on source/sink buffer overrun, although this is not - supported in all operating modes. - * All static state has been eliminated from the library, so that multiple - instances of compression or decompression can be active concurrently. - * JPEG abbreviated datastream formats are supported, ie, quantization and - Huffman tables can be stored separately from the image data. - * And not only that, but the documentation of the library has improved - considerably! - - -The last widely used release before the version 5 rewrite was version 4A of -18-Feb-93. Change logs before that point have been discarded, since they -are not of much interest after the rewrite. diff --git a/src/jpeg/jcapimin.c b/src/jpeg/jcapimin.c deleted file mode 100644 index 54fb8c58c5..0000000000 --- a/src/jpeg/jcapimin.c +++ /dev/null @@ -1,280 +0,0 @@ -/* - * jcapimin.c - * - * Copyright (C) 1994-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains application interface code for the compression half - * of the JPEG library. These are the "minimum" API routines that may be - * needed in either the normal full-compression case or the transcoding-only - * case. - * - * Most of the routines intended to be called directly by an application - * are in this file or in jcapistd.c. But also see jcparam.c for - * parameter-setup helper routines, jcomapi.c for routines shared by - * compression and decompression, and jctrans.c for the transcoding case. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * Initialization of a JPEG compression object. - * The error manager must already be set up (in case memory manager fails). - */ - -GLOBAL(void) -jpeg_CreateCompress (j_compress_ptr cinfo, int version, size_t structsize) -{ - int i; - - /* Guard against version mismatches between library and caller. */ - cinfo->mem = NULL; /* so jpeg_destroy knows mem mgr not called */ - if (version != JPEG_LIB_VERSION) - ERREXIT2(cinfo, JERR_BAD_LIB_VERSION, JPEG_LIB_VERSION, version); - if (structsize != SIZEOF(struct jpeg_compress_struct)) - ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE, - (int) SIZEOF(struct jpeg_compress_struct), (int) structsize); - - /* For debugging purposes, we zero the whole master structure. - * But the application has already set the err pointer, and may have set - * client_data, so we have to save and restore those fields. - * Note: if application hasn't set client_data, tools like Purify may - * complain here. - */ - { - struct jpeg_error_mgr * err = cinfo->err; - void * client_data = cinfo->client_data; /* ignore Purify complaint here */ - MEMZERO(cinfo, SIZEOF(struct jpeg_compress_struct)); - cinfo->err = err; - cinfo->client_data = client_data; - } - cinfo->is_decompressor = FALSE; - - /* Initialize a memory manager instance for this object */ - jinit_memory_mgr((j_common_ptr) cinfo); - - /* Zero out pointers to permanent structures. */ - cinfo->progress = NULL; - cinfo->dest = NULL; - - cinfo->comp_info = NULL; - - for (i = 0; i < NUM_QUANT_TBLS; i++) - cinfo->quant_tbl_ptrs[i] = NULL; - - for (i = 0; i < NUM_HUFF_TBLS; i++) { - cinfo->dc_huff_tbl_ptrs[i] = NULL; - cinfo->ac_huff_tbl_ptrs[i] = NULL; - } - - cinfo->script_space = NULL; - - cinfo->input_gamma = 1.0; /* in case application forgets */ - - /* OK, I'm ready */ - cinfo->global_state = CSTATE_START; -} - - -/* - * Destruction of a JPEG compression object - */ - -GLOBAL(void) -jpeg_destroy_compress (j_compress_ptr cinfo) -{ - jpeg_destroy((j_common_ptr) cinfo); /* use common routine */ -} - - -/* - * Abort processing of a JPEG compression operation, - * but don't destroy the object itself. - */ - -GLOBAL(void) -jpeg_abort_compress (j_compress_ptr cinfo) -{ - jpeg_abort((j_common_ptr) cinfo); /* use common routine */ -} - - -/* - * Forcibly suppress or un-suppress all quantization and Huffman tables. - * Marks all currently defined tables as already written (if suppress) - * or not written (if !suppress). This will control whether they get emitted - * by a subsequent jpeg_start_compress call. - * - * This routine is exported for use by applications that want to produce - * abbreviated JPEG datastreams. It logically belongs in jcparam.c, but - * since it is called by jpeg_start_compress, we put it here --- otherwise - * jcparam.o would be linked whether the application used it or not. - */ - -GLOBAL(void) -jpeg_suppress_tables (j_compress_ptr cinfo, boolean suppress) -{ - int i; - JQUANT_TBL * qtbl; - JHUFF_TBL * htbl; - - for (i = 0; i < NUM_QUANT_TBLS; i++) { - if ((qtbl = cinfo->quant_tbl_ptrs[i]) != NULL) - qtbl->sent_table = suppress; - } - - for (i = 0; i < NUM_HUFF_TBLS; i++) { - if ((htbl = cinfo->dc_huff_tbl_ptrs[i]) != NULL) - htbl->sent_table = suppress; - if ((htbl = cinfo->ac_huff_tbl_ptrs[i]) != NULL) - htbl->sent_table = suppress; - } -} - - -/* - * Finish JPEG compression. - * - * If a multipass operating mode was selected, this may do a great deal of - * work including most of the actual output. - */ - -GLOBAL(void) -jpeg_finish_compress (j_compress_ptr cinfo) -{ - JDIMENSION iMCU_row; - - if (cinfo->global_state == CSTATE_SCANNING || - cinfo->global_state == CSTATE_RAW_OK) { - /* Terminate first pass */ - if (cinfo->next_scanline < cinfo->image_height) - ERREXIT(cinfo, JERR_TOO_LITTLE_DATA); - (*cinfo->master->finish_pass) (cinfo); - } else if (cinfo->global_state != CSTATE_WRCOEFS) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - /* Perform any remaining passes */ - while (! cinfo->master->is_last_pass) { - (*cinfo->master->prepare_for_pass) (cinfo); - for (iMCU_row = 0; iMCU_row < cinfo->total_iMCU_rows; iMCU_row++) { - if (cinfo->progress != NULL) { - cinfo->progress->pass_counter = (long) iMCU_row; - cinfo->progress->pass_limit = (long) cinfo->total_iMCU_rows; - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - } - /* We bypass the main controller and invoke coef controller directly; - * all work is being done from the coefficient buffer. - */ - if (! (*cinfo->coef->compress_data) (cinfo, (JSAMPIMAGE) NULL)) - ERREXIT(cinfo, JERR_CANT_SUSPEND); - } - (*cinfo->master->finish_pass) (cinfo); - } - /* Write EOI, do final cleanup */ - (*cinfo->marker->write_file_trailer) (cinfo); - (*cinfo->dest->term_destination) (cinfo); - /* We can use jpeg_abort to release memory and reset global_state */ - jpeg_abort((j_common_ptr) cinfo); -} - - -/* - * Write a special marker. - * This is only recommended for writing COM or APPn markers. - * Must be called after jpeg_start_compress() and before - * first call to jpeg_write_scanlines() or jpeg_write_raw_data(). - */ - -GLOBAL(void) -jpeg_write_marker (j_compress_ptr cinfo, int marker, - const JOCTET *dataptr, unsigned int datalen) -{ - JMETHOD(void, write_marker_byte, (j_compress_ptr info, int val)); - - if (cinfo->next_scanline != 0 || - (cinfo->global_state != CSTATE_SCANNING && - cinfo->global_state != CSTATE_RAW_OK && - cinfo->global_state != CSTATE_WRCOEFS)) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - (*cinfo->marker->write_marker_header) (cinfo, marker, datalen); - write_marker_byte = cinfo->marker->write_marker_byte; /* copy for speed */ - while (datalen--) { - (*write_marker_byte) (cinfo, *dataptr); - dataptr++; - } -} - -/* Same, but piecemeal. */ - -GLOBAL(void) -jpeg_write_m_header (j_compress_ptr cinfo, int marker, unsigned int datalen) -{ - if (cinfo->next_scanline != 0 || - (cinfo->global_state != CSTATE_SCANNING && - cinfo->global_state != CSTATE_RAW_OK && - cinfo->global_state != CSTATE_WRCOEFS)) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - (*cinfo->marker->write_marker_header) (cinfo, marker, datalen); -} - -GLOBAL(void) -jpeg_write_m_byte (j_compress_ptr cinfo, int val) -{ - (*cinfo->marker->write_marker_byte) (cinfo, val); -} - - -/* - * Alternate compression function: just write an abbreviated table file. - * Before calling this, all parameters and a data destination must be set up. - * - * To produce a pair of files containing abbreviated tables and abbreviated - * image data, one would proceed as follows: - * - * initialize JPEG object - * set JPEG parameters - * set destination to table file - * jpeg_write_tables(cinfo); - * set destination to image file - * jpeg_start_compress(cinfo, FALSE); - * write data... - * jpeg_finish_compress(cinfo); - * - * jpeg_write_tables has the side effect of marking all tables written - * (same as jpeg_suppress_tables(..., TRUE)). Thus a subsequent start_compress - * will not re-emit the tables unless it is passed write_all_tables=TRUE. - */ - -GLOBAL(void) -jpeg_write_tables (j_compress_ptr cinfo) -{ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - /* (Re)initialize error mgr and destination modules */ - (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo); - (*cinfo->dest->init_destination) (cinfo); - /* Initialize the marker writer ... bit of a crock to do it here. */ - jinit_marker_writer(cinfo); - /* Write them tables! */ - (*cinfo->marker->write_tables_only) (cinfo); - /* And clean up. */ - (*cinfo->dest->term_destination) (cinfo); - /* - * In library releases up through v6a, we called jpeg_abort() here to free - * any working memory allocated by the destination manager and marker - * writer. Some applications had a problem with that: they allocated space - * of their own from the library memory manager, and didn't want it to go - * away during write_tables. So now we do nothing. This will cause a - * memory leak if an app calls write_tables repeatedly without doing a full - * compression cycle or otherwise resetting the JPEG object. However, that - * seems less bad than unexpectedly freeing memory in the normal case. - * An app that prefers the old behavior can call jpeg_abort for itself after - * each call to jpeg_write_tables(). - */ -} diff --git a/src/jpeg/jcapistd.c b/src/jpeg/jcapistd.c deleted file mode 100644 index c0320b1b19..0000000000 --- a/src/jpeg/jcapistd.c +++ /dev/null @@ -1,161 +0,0 @@ -/* - * jcapistd.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains application interface code for the compression half - * of the JPEG library. These are the "standard" API routines that are - * used in the normal full-compression case. They are not used by a - * transcoding-only application. Note that if an application links in - * jpeg_start_compress, it will end up linking in the entire compressor. - * We thus must separate this file from jcapimin.c to avoid linking the - * whole compression library into a transcoder. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * Compression initialization. - * Before calling this, all parameters and a data destination must be set up. - * - * We require a write_all_tables parameter as a failsafe check when writing - * multiple datastreams from the same compression object. Since prior runs - * will have left all the tables marked sent_table=TRUE, a subsequent run - * would emit an abbreviated stream (no tables) by default. This may be what - * is wanted, but for safety's sake it should not be the default behavior: - * programmers should have to make a deliberate choice to emit abbreviated - * images. Therefore the documentation and examples should encourage people - * to pass write_all_tables=TRUE; then it will take active thought to do the - * wrong thing. - */ - -GLOBAL(void) -jpeg_start_compress (j_compress_ptr cinfo, boolean write_all_tables) -{ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - if (write_all_tables) - jpeg_suppress_tables(cinfo, FALSE); /* mark all tables to be written */ - - /* (Re)initialize error mgr and destination modules */ - (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo); - (*cinfo->dest->init_destination) (cinfo); - /* Perform master selection of active modules */ - jinit_compress_master(cinfo); - /* Set up for the first pass */ - (*cinfo->master->prepare_for_pass) (cinfo); - /* Ready for application to drive first pass through jpeg_write_scanlines - * or jpeg_write_raw_data. - */ - cinfo->next_scanline = 0; - cinfo->global_state = (cinfo->raw_data_in ? CSTATE_RAW_OK : CSTATE_SCANNING); -} - - -/* - * Write some scanlines of data to the JPEG compressor. - * - * The return value will be the number of lines actually written. - * This should be less than the supplied num_lines only in case that - * the data destination module has requested suspension of the compressor, - * or if more than image_height scanlines are passed in. - * - * Note: we warn about excess calls to jpeg_write_scanlines() since - * this likely signals an application programmer error. However, - * excess scanlines passed in the last valid call are *silently* ignored, - * so that the application need not adjust num_lines for end-of-image - * when using a multiple-scanline buffer. - */ - -GLOBAL(JDIMENSION) -jpeg_write_scanlines (j_compress_ptr cinfo, JSAMPARRAY scanlines, - JDIMENSION num_lines) -{ - JDIMENSION row_ctr, rows_left; - - if (cinfo->global_state != CSTATE_SCANNING) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - if (cinfo->next_scanline >= cinfo->image_height) - WARNMS(cinfo, JWRN_TOO_MUCH_DATA); - - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) { - cinfo->progress->pass_counter = (long) cinfo->next_scanline; - cinfo->progress->pass_limit = (long) cinfo->image_height; - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - } - - /* Give master control module another chance if this is first call to - * jpeg_write_scanlines. This lets output of the frame/scan headers be - * delayed so that application can write COM, etc, markers between - * jpeg_start_compress and jpeg_write_scanlines. - */ - if (cinfo->master->call_pass_startup) - (*cinfo->master->pass_startup) (cinfo); - - /* Ignore any extra scanlines at bottom of image. */ - rows_left = cinfo->image_height - cinfo->next_scanline; - if (num_lines > rows_left) - num_lines = rows_left; - - row_ctr = 0; - (*cinfo->main->process_data) (cinfo, scanlines, &row_ctr, num_lines); - cinfo->next_scanline += row_ctr; - return row_ctr; -} - - -/* - * Alternate entry point to write raw data. - * Processes exactly one iMCU row per call, unless suspended. - */ - -GLOBAL(JDIMENSION) -jpeg_write_raw_data (j_compress_ptr cinfo, JSAMPIMAGE data, - JDIMENSION num_lines) -{ - JDIMENSION lines_per_iMCU_row; - - if (cinfo->global_state != CSTATE_RAW_OK) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - if (cinfo->next_scanline >= cinfo->image_height) { - WARNMS(cinfo, JWRN_TOO_MUCH_DATA); - return 0; - } - - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) { - cinfo->progress->pass_counter = (long) cinfo->next_scanline; - cinfo->progress->pass_limit = (long) cinfo->image_height; - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - } - - /* Give master control module another chance if this is first call to - * jpeg_write_raw_data. This lets output of the frame/scan headers be - * delayed so that application can write COM, etc, markers between - * jpeg_start_compress and jpeg_write_raw_data. - */ - if (cinfo->master->call_pass_startup) - (*cinfo->master->pass_startup) (cinfo); - - /* Verify that at least one iMCU row has been passed. */ - lines_per_iMCU_row = cinfo->max_v_samp_factor * DCTSIZE; - if (num_lines < lines_per_iMCU_row) - ERREXIT(cinfo, JERR_BUFFER_SIZE); - - /* Directly compress the row. */ - if (! (*cinfo->coef->compress_data) (cinfo, data)) { - /* If compressor did not consume the whole row, suspend processing. */ - return 0; - } - - /* OK, we processed one iMCU row. */ - cinfo->next_scanline += lines_per_iMCU_row; - return lines_per_iMCU_row; -} diff --git a/src/jpeg/jccoefct.c b/src/jpeg/jccoefct.c deleted file mode 100644 index 1963ddb61b..0000000000 --- a/src/jpeg/jccoefct.c +++ /dev/null @@ -1,449 +0,0 @@ -/* - * jccoefct.c - * - * Copyright (C) 1994-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the coefficient buffer controller for compression. - * This controller is the top level of the JPEG compressor proper. - * The coefficient buffer lies between forward-DCT and entropy encoding steps. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* We use a full-image coefficient buffer when doing Huffman optimization, - * and also for writing multiple-scan JPEG files. In all cases, the DCT - * step is run during the first pass, and subsequent passes need only read - * the buffered coefficients. - */ -#ifdef ENTROPY_OPT_SUPPORTED -#define FULL_COEF_BUFFER_SUPPORTED -#else -#ifdef C_MULTISCAN_FILES_SUPPORTED -#define FULL_COEF_BUFFER_SUPPORTED -#endif -#endif - - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_c_coef_controller pub; /* public fields */ - - JDIMENSION iMCU_row_num; /* iMCU row # within image */ - JDIMENSION mcu_ctr; /* counts MCUs processed in current row */ - int MCU_vert_offset; /* counts MCU rows within iMCU row */ - int MCU_rows_per_iMCU_row; /* number of such rows needed */ - - /* For single-pass compression, it's sufficient to buffer just one MCU - * (although this may prove a bit slow in practice). We allocate a - * workspace of C_MAX_BLOCKS_IN_MCU coefficient blocks, and reuse it for each - * MCU constructed and sent. (On 80x86, the workspace is FAR even though - * it's not really very big; this is to keep the module interfaces unchanged - * when a large coefficient buffer is necessary.) - * In multi-pass modes, this array points to the current MCU's blocks - * within the virtual arrays. - */ - JBLOCKROW MCU_buffer[C_MAX_BLOCKS_IN_MCU]; - - /* In multi-pass modes, we need a virtual block array for each component. */ - jvirt_barray_ptr whole_image[MAX_COMPONENTS]; -} my_coef_controller; - -typedef my_coef_controller * my_coef_ptr; - - -/* Forward declarations */ -METHODDEF(boolean) compress_data - JPP((j_compress_ptr cinfo, JSAMPIMAGE input_buf)); -#ifdef FULL_COEF_BUFFER_SUPPORTED -METHODDEF(boolean) compress_first_pass - JPP((j_compress_ptr cinfo, JSAMPIMAGE input_buf)); -METHODDEF(boolean) compress_output - JPP((j_compress_ptr cinfo, JSAMPIMAGE input_buf)); -#endif - - -LOCAL(void) -start_iMCU_row (j_compress_ptr cinfo) -/* Reset within-iMCU-row counters for a new row */ -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - - /* In an interleaved scan, an MCU row is the same as an iMCU row. - * In a noninterleaved scan, an iMCU row has v_samp_factor MCU rows. - * But at the bottom of the image, process only what's left. - */ - if (cinfo->comps_in_scan > 1) { - coef->MCU_rows_per_iMCU_row = 1; - } else { - if (coef->iMCU_row_num < (cinfo->total_iMCU_rows-1)) - coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->v_samp_factor; - else - coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->last_row_height; - } - - coef->mcu_ctr = 0; - coef->MCU_vert_offset = 0; -} - - -/* - * Initialize for a processing pass. - */ - -METHODDEF(void) -start_pass_coef (j_compress_ptr cinfo, J_BUF_MODE pass_mode) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - - coef->iMCU_row_num = 0; - start_iMCU_row(cinfo); - - switch (pass_mode) { - case JBUF_PASS_THRU: - if (coef->whole_image[0] != NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - coef->pub.compress_data = compress_data; - break; -#ifdef FULL_COEF_BUFFER_SUPPORTED - case JBUF_SAVE_AND_PASS: - if (coef->whole_image[0] == NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - coef->pub.compress_data = compress_first_pass; - break; - case JBUF_CRANK_DEST: - if (coef->whole_image[0] == NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - coef->pub.compress_data = compress_output; - break; -#endif - default: - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - break; - } -} - - -/* - * Process some data in the single-pass case. - * We process the equivalent of one fully interleaved MCU row ("iMCU" row) - * per call, ie, v_samp_factor block rows for each component in the image. - * Returns TRUE if the iMCU row is completed, FALSE if suspended. - * - * NB: input_buf contains a plane for each component in image, - * which we index according to the component's SOF position. - */ - -METHODDEF(boolean) -compress_data (j_compress_ptr cinfo, JSAMPIMAGE input_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION MCU_col_num; /* index of current MCU within row */ - JDIMENSION last_MCU_col = cinfo->MCUs_per_row - 1; - JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1; - int blkn, bi, ci, yindex, yoffset, blockcnt; - JDIMENSION ypos, xpos; - jpeg_component_info *compptr; - - /* Loop to write as much as one whole iMCU row */ - for (yoffset = coef->MCU_vert_offset; yoffset < coef->MCU_rows_per_iMCU_row; - yoffset++) { - for (MCU_col_num = coef->mcu_ctr; MCU_col_num <= last_MCU_col; - MCU_col_num++) { - /* Determine where data comes from in input_buf and do the DCT thing. - * Each call on forward_DCT processes a horizontal row of DCT blocks - * as wide as an MCU; we rely on having allocated the MCU_buffer[] blocks - * sequentially. Dummy blocks at the right or bottom edge are filled in - * specially. The data in them does not matter for image reconstruction, - * so we fill them with values that will encode to the smallest amount of - * data, viz: all zeroes in the AC entries, DC entries equal to previous - * block's DC value. (Thanks to Thomas Kinsman for this idea.) - */ - blkn = 0; - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - blockcnt = (MCU_col_num < last_MCU_col) ? compptr->MCU_width - : compptr->last_col_width; - xpos = MCU_col_num * compptr->MCU_sample_width; - ypos = yoffset * DCTSIZE; /* ypos == (yoffset+yindex) * DCTSIZE */ - for (yindex = 0; yindex < compptr->MCU_height; yindex++) { - if (coef->iMCU_row_num < last_iMCU_row || - yoffset+yindex < compptr->last_row_height) { - (*cinfo->fdct->forward_DCT) (cinfo, compptr, - input_buf[compptr->component_index], - coef->MCU_buffer[blkn], - ypos, xpos, (JDIMENSION) blockcnt); - if (blockcnt < compptr->MCU_width) { - /* Create some dummy blocks at the right edge of the image. */ - jzero_far((void FAR *) coef->MCU_buffer[blkn + blockcnt], - (compptr->MCU_width - blockcnt) * SIZEOF(JBLOCK)); - for (bi = blockcnt; bi < compptr->MCU_width; bi++) { - coef->MCU_buffer[blkn+bi][0][0] = coef->MCU_buffer[blkn+bi-1][0][0]; - } - } - } else { - /* Create a row of dummy blocks at the bottom of the image. */ - jzero_far((void FAR *) coef->MCU_buffer[blkn], - compptr->MCU_width * SIZEOF(JBLOCK)); - for (bi = 0; bi < compptr->MCU_width; bi++) { - coef->MCU_buffer[blkn+bi][0][0] = coef->MCU_buffer[blkn-1][0][0]; - } - } - blkn += compptr->MCU_width; - ypos += DCTSIZE; - } - } - /* Try to write the MCU. In event of a suspension failure, we will - * re-DCT the MCU on restart (a bit inefficient, could be fixed...) - */ - if (! (*cinfo->entropy->encode_mcu) (cinfo, coef->MCU_buffer)) { - /* Suspension forced; update state counters and exit */ - coef->MCU_vert_offset = yoffset; - coef->mcu_ctr = MCU_col_num; - return FALSE; - } - } - /* Completed an MCU row, but perhaps not an iMCU row */ - coef->mcu_ctr = 0; - } - /* Completed the iMCU row, advance counters for next one */ - coef->iMCU_row_num++; - start_iMCU_row(cinfo); - return TRUE; -} - - -#ifdef FULL_COEF_BUFFER_SUPPORTED - -/* - * Process some data in the first pass of a multi-pass case. - * We process the equivalent of one fully interleaved MCU row ("iMCU" row) - * per call, ie, v_samp_factor block rows for each component in the image. - * This amount of data is read from the source buffer, DCT'd and quantized, - * and saved into the virtual arrays. We also generate suitable dummy blocks - * as needed at the right and lower edges. (The dummy blocks are constructed - * in the virtual arrays, which have been padded appropriately.) This makes - * it possible for subsequent passes not to worry about real vs. dummy blocks. - * - * We must also emit the data to the entropy encoder. This is conveniently - * done by calling compress_output() after we've loaded the current strip - * of the virtual arrays. - * - * NB: input_buf contains a plane for each component in image. All - * components are DCT'd and loaded into the virtual arrays in this pass. - * However, it may be that only a subset of the components are emitted to - * the entropy encoder during this first pass; be careful about looking - * at the scan-dependent variables (MCU dimensions, etc). - */ - -METHODDEF(boolean) -compress_first_pass (j_compress_ptr cinfo, JSAMPIMAGE input_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1; - JDIMENSION blocks_across, MCUs_across, MCUindex; - int bi, ci, h_samp_factor, block_row, block_rows, ndummy; - JCOEF lastDC; - jpeg_component_info *compptr; - JBLOCKARRAY buffer; - JBLOCKROW thisblockrow, lastblockrow; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Align the virtual buffer for this component. */ - buffer = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[ci], - coef->iMCU_row_num * compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, TRUE); - /* Count non-dummy DCT block rows in this iMCU row. */ - if (coef->iMCU_row_num < last_iMCU_row) - block_rows = compptr->v_samp_factor; - else { - /* NB: can't use last_row_height here, since may not be set! */ - block_rows = (int) (compptr->height_in_blocks % compptr->v_samp_factor); - if (block_rows == 0) block_rows = compptr->v_samp_factor; - } - blocks_across = compptr->width_in_blocks; - h_samp_factor = compptr->h_samp_factor; - /* Count number of dummy blocks to be added at the right margin. */ - ndummy = (int) (blocks_across % h_samp_factor); - if (ndummy > 0) - ndummy = h_samp_factor - ndummy; - /* Perform DCT for all non-dummy blocks in this iMCU row. Each call - * on forward_DCT processes a complete horizontal row of DCT blocks. - */ - for (block_row = 0; block_row < block_rows; block_row++) { - thisblockrow = buffer[block_row]; - (*cinfo->fdct->forward_DCT) (cinfo, compptr, - input_buf[ci], thisblockrow, - (JDIMENSION) (block_row * DCTSIZE), - (JDIMENSION) 0, blocks_across); - if (ndummy > 0) { - /* Create dummy blocks at the right edge of the image. */ - thisblockrow += blocks_across; /* => first dummy block */ - jzero_far((void FAR *) thisblockrow, ndummy * SIZEOF(JBLOCK)); - lastDC = thisblockrow[-1][0]; - for (bi = 0; bi < ndummy; bi++) { - thisblockrow[bi][0] = lastDC; - } - } - } - /* If at end of image, create dummy block rows as needed. - * The tricky part here is that within each MCU, we want the DC values - * of the dummy blocks to match the last real block's DC value. - * This squeezes a few more bytes out of the resulting file... - */ - if (coef->iMCU_row_num == last_iMCU_row) { - blocks_across += ndummy; /* include lower right corner */ - MCUs_across = blocks_across / h_samp_factor; - for (block_row = block_rows; block_row < compptr->v_samp_factor; - block_row++) { - thisblockrow = buffer[block_row]; - lastblockrow = buffer[block_row-1]; - jzero_far((void FAR *) thisblockrow, - (size_t) (blocks_across * SIZEOF(JBLOCK))); - for (MCUindex = 0; MCUindex < MCUs_across; MCUindex++) { - lastDC = lastblockrow[h_samp_factor-1][0]; - for (bi = 0; bi < h_samp_factor; bi++) { - thisblockrow[bi][0] = lastDC; - } - thisblockrow += h_samp_factor; /* advance to next MCU in row */ - lastblockrow += h_samp_factor; - } - } - } - } - /* NB: compress_output will increment iMCU_row_num if successful. - * A suspension return will result in redoing all the work above next time. - */ - - /* Emit data to the entropy encoder, sharing code with subsequent passes */ - return compress_output(cinfo, input_buf); -} - - -/* - * Process some data in subsequent passes of a multi-pass case. - * We process the equivalent of one fully interleaved MCU row ("iMCU" row) - * per call, ie, v_samp_factor block rows for each component in the scan. - * The data is obtained from the virtual arrays and fed to the entropy coder. - * Returns TRUE if the iMCU row is completed, FALSE if suspended. - * - * NB: input_buf is ignored; it is likely to be a NULL pointer. - */ - -METHODDEF(boolean) -compress_output (j_compress_ptr cinfo, JSAMPIMAGE input_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION MCU_col_num; /* index of current MCU within row */ - int blkn, ci, xindex, yindex, yoffset; - JDIMENSION start_col; - JBLOCKARRAY buffer[MAX_COMPS_IN_SCAN]; - JBLOCKROW buffer_ptr; - jpeg_component_info *compptr; - - /* Align the virtual buffers for the components used in this scan. - * NB: during first pass, this is safe only because the buffers will - * already be aligned properly, so jmemmgr.c won't need to do any I/O. - */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - buffer[ci] = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[compptr->component_index], - coef->iMCU_row_num * compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, FALSE); - } - - /* Loop to process one whole iMCU row */ - for (yoffset = coef->MCU_vert_offset; yoffset < coef->MCU_rows_per_iMCU_row; - yoffset++) { - for (MCU_col_num = coef->mcu_ctr; MCU_col_num < cinfo->MCUs_per_row; - MCU_col_num++) { - /* Construct list of pointers to DCT blocks belonging to this MCU */ - blkn = 0; /* index of current DCT block within MCU */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - start_col = MCU_col_num * compptr->MCU_width; - for (yindex = 0; yindex < compptr->MCU_height; yindex++) { - buffer_ptr = buffer[ci][yindex+yoffset] + start_col; - for (xindex = 0; xindex < compptr->MCU_width; xindex++) { - coef->MCU_buffer[blkn++] = buffer_ptr++; - } - } - } - /* Try to write the MCU. */ - if (! (*cinfo->entropy->encode_mcu) (cinfo, coef->MCU_buffer)) { - /* Suspension forced; update state counters and exit */ - coef->MCU_vert_offset = yoffset; - coef->mcu_ctr = MCU_col_num; - return FALSE; - } - } - /* Completed an MCU row, but perhaps not an iMCU row */ - coef->mcu_ctr = 0; - } - /* Completed the iMCU row, advance counters for next one */ - coef->iMCU_row_num++; - start_iMCU_row(cinfo); - return TRUE; -} - -#endif /* FULL_COEF_BUFFER_SUPPORTED */ - - -/* - * Initialize coefficient buffer controller. - */ - -GLOBAL(void) -jinit_c_coef_controller (j_compress_ptr cinfo, boolean need_full_buffer) -{ - my_coef_ptr coef; - - coef = (my_coef_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_coef_controller)); - cinfo->coef = (struct jpeg_c_coef_controller *) coef; - coef->pub.start_pass = start_pass_coef; - - /* Create the coefficient buffer. */ - if (need_full_buffer) { -#ifdef FULL_COEF_BUFFER_SUPPORTED - /* Allocate a full-image virtual array for each component, */ - /* padded to a multiple of samp_factor DCT blocks in each direction. */ - int ci; - jpeg_component_info *compptr; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - coef->whole_image[ci] = (*cinfo->mem->request_virt_barray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, FALSE, - (JDIMENSION) jround_up((long) compptr->width_in_blocks, - (long) compptr->h_samp_factor), - (JDIMENSION) jround_up((long) compptr->height_in_blocks, - (long) compptr->v_samp_factor), - (JDIMENSION) compptr->v_samp_factor); - } -#else - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); -#endif - } else { - /* We only need a single-MCU buffer. */ - JBLOCKROW buffer; - int i; - - buffer = (JBLOCKROW) - (*cinfo->mem->alloc_large) ((j_common_ptr) cinfo, JPOOL_IMAGE, - C_MAX_BLOCKS_IN_MCU * SIZEOF(JBLOCK)); - for (i = 0; i < C_MAX_BLOCKS_IN_MCU; i++) { - coef->MCU_buffer[i] = buffer + i; - } - coef->whole_image[0] = NULL; /* flag for no virtual arrays */ - } -} diff --git a/src/jpeg/jccolor.c b/src/jpeg/jccolor.c deleted file mode 100644 index 0a8a4b5d13..0000000000 --- a/src/jpeg/jccolor.c +++ /dev/null @@ -1,459 +0,0 @@ -/* - * jccolor.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains input colorspace conversion routines. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Private subobject */ - -typedef struct { - struct jpeg_color_converter pub; /* public fields */ - - /* Private state for RGB->YCC conversion */ - INT32 * rgb_ycc_tab; /* => table for RGB to YCbCr conversion */ -} my_color_converter; - -typedef my_color_converter * my_cconvert_ptr; - - -/**************** RGB -> YCbCr conversion: most common case **************/ - -/* - * YCbCr is defined per CCIR 601-1, except that Cb and Cr are - * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5. - * The conversion equations to be implemented are therefore - * Y = 0.29900 * R + 0.58700 * G + 0.11400 * B - * Cb = -0.16874 * R - 0.33126 * G + 0.50000 * B + CENTERJSAMPLE - * Cr = 0.50000 * R - 0.41869 * G - 0.08131 * B + CENTERJSAMPLE - * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.) - * Note: older versions of the IJG code used a zero offset of MAXJSAMPLE/2, - * rather than CENTERJSAMPLE, for Cb and Cr. This gave equal positive and - * negative swings for Cb/Cr, but meant that grayscale values (Cb=Cr=0) - * were not represented exactly. Now we sacrifice exact representation of - * maximum red and maximum blue in order to get exact grayscales. - * - * To avoid floating-point arithmetic, we represent the fractional constants - * as integers scaled up by 2^16 (about 4 digits precision); we have to divide - * the products by 2^16, with appropriate rounding, to get the correct answer. - * - * For even more speed, we avoid doing any multiplications in the inner loop - * by precalculating the constants times R,G,B for all possible values. - * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table); - * for 12-bit samples it is still acceptable. It's not very reasonable for - * 16-bit samples, but if you want lossless storage you shouldn't be changing - * colorspace anyway. - * The CENTERJSAMPLE offsets and the rounding fudge-factor of 0.5 are included - * in the tables to save adding them separately in the inner loop. - */ - -#define SCALEBITS 16 /* speediest right-shift on some machines */ -#define CBCR_OFFSET ((INT32) CENTERJSAMPLE << SCALEBITS) -#define ONE_HALF ((INT32) 1 << (SCALEBITS-1)) -#define FIX(x) ((INT32) ((x) * (1L< Y section */ -#define G_Y_OFF (1*(MAXJSAMPLE+1)) /* offset to G => Y section */ -#define B_Y_OFF (2*(MAXJSAMPLE+1)) /* etc. */ -#define R_CB_OFF (3*(MAXJSAMPLE+1)) -#define G_CB_OFF (4*(MAXJSAMPLE+1)) -#define B_CB_OFF (5*(MAXJSAMPLE+1)) -#define R_CR_OFF B_CB_OFF /* B=>Cb, R=>Cr are the same */ -#define G_CR_OFF (6*(MAXJSAMPLE+1)) -#define B_CR_OFF (7*(MAXJSAMPLE+1)) -#define TABLE_SIZE (8*(MAXJSAMPLE+1)) - - -/* - * Initialize for RGB->YCC colorspace conversion. - */ - -METHODDEF(void) -rgb_ycc_start (j_compress_ptr cinfo) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - INT32 * rgb_ycc_tab; - INT32 i; - - /* Allocate and fill in the conversion tables. */ - cconvert->rgb_ycc_tab = rgb_ycc_tab = (INT32 *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (TABLE_SIZE * SIZEOF(INT32))); - - for (i = 0; i <= MAXJSAMPLE; i++) { - rgb_ycc_tab[i+R_Y_OFF] = FIX(0.29900) * i; - rgb_ycc_tab[i+G_Y_OFF] = FIX(0.58700) * i; - rgb_ycc_tab[i+B_Y_OFF] = FIX(0.11400) * i + ONE_HALF; - rgb_ycc_tab[i+R_CB_OFF] = (-FIX(0.16874)) * i; - rgb_ycc_tab[i+G_CB_OFF] = (-FIX(0.33126)) * i; - /* We use a rounding fudge-factor of 0.5-epsilon for Cb and Cr. - * This ensures that the maximum output will round to MAXJSAMPLE - * not MAXJSAMPLE+1, and thus that we don't have to range-limit. - */ - rgb_ycc_tab[i+B_CB_OFF] = FIX(0.50000) * i + CBCR_OFFSET + ONE_HALF-1; -/* B=>Cb and R=>Cr tables are the same - rgb_ycc_tab[i+R_CR_OFF] = FIX(0.50000) * i + CBCR_OFFSET + ONE_HALF-1; -*/ - rgb_ycc_tab[i+G_CR_OFF] = (-FIX(0.41869)) * i; - rgb_ycc_tab[i+B_CR_OFF] = (-FIX(0.08131)) * i; - } -} - - -/* - * Convert some rows of samples to the JPEG colorspace. - * - * Note that we change from the application's interleaved-pixel format - * to our internal noninterleaved, one-plane-per-component format. - * The input buffer is therefore three times as wide as the output buffer. - * - * A starting row offset is provided only for the output buffer. The caller - * can easily adjust the passed input_buf value to accommodate any row - * offset required on that side. - */ - -METHODDEF(void) -rgb_ycc_convert (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPIMAGE output_buf, - JDIMENSION output_row, int num_rows) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - register int r, g, b; - register INT32 * ctab = cconvert->rgb_ycc_tab; - register JSAMPROW inptr; - register JSAMPROW outptr0, outptr1, outptr2; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->image_width; - - while (--num_rows >= 0) { - inptr = *input_buf++; - outptr0 = output_buf[0][output_row]; - outptr1 = output_buf[1][output_row]; - outptr2 = output_buf[2][output_row]; - output_row++; - for (col = 0; col < num_cols; col++) { - r = GETJSAMPLE(inptr[RGB_RED]); - g = GETJSAMPLE(inptr[RGB_GREEN]); - b = GETJSAMPLE(inptr[RGB_BLUE]); - inptr += RGB_PIXELSIZE; - /* If the inputs are 0..MAXJSAMPLE, the outputs of these equations - * must be too; we do not need an explicit range-limiting operation. - * Hence the value being shifted is never negative, and we don't - * need the general RIGHT_SHIFT macro. - */ - /* Y */ - outptr0[col] = (JSAMPLE) - ((ctab[r+R_Y_OFF] + ctab[g+G_Y_OFF] + ctab[b+B_Y_OFF]) - >> SCALEBITS); - /* Cb */ - outptr1[col] = (JSAMPLE) - ((ctab[r+R_CB_OFF] + ctab[g+G_CB_OFF] + ctab[b+B_CB_OFF]) - >> SCALEBITS); - /* Cr */ - outptr2[col] = (JSAMPLE) - ((ctab[r+R_CR_OFF] + ctab[g+G_CR_OFF] + ctab[b+B_CR_OFF]) - >> SCALEBITS); - } - } -} - - -/**************** Cases other than RGB -> YCbCr **************/ - - -/* - * Convert some rows of samples to the JPEG colorspace. - * This version handles RGB->grayscale conversion, which is the same - * as the RGB->Y portion of RGB->YCbCr. - * We assume rgb_ycc_start has been called (we only use the Y tables). - */ - -METHODDEF(void) -rgb_gray_convert (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPIMAGE output_buf, - JDIMENSION output_row, int num_rows) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - register int r, g, b; - register INT32 * ctab = cconvert->rgb_ycc_tab; - register JSAMPROW inptr; - register JSAMPROW outptr; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->image_width; - - while (--num_rows >= 0) { - inptr = *input_buf++; - outptr = output_buf[0][output_row]; - output_row++; - for (col = 0; col < num_cols; col++) { - r = GETJSAMPLE(inptr[RGB_RED]); - g = GETJSAMPLE(inptr[RGB_GREEN]); - b = GETJSAMPLE(inptr[RGB_BLUE]); - inptr += RGB_PIXELSIZE; - /* Y */ - outptr[col] = (JSAMPLE) - ((ctab[r+R_Y_OFF] + ctab[g+G_Y_OFF] + ctab[b+B_Y_OFF]) - >> SCALEBITS); - } - } -} - - -/* - * Convert some rows of samples to the JPEG colorspace. - * This version handles Adobe-style CMYK->YCCK conversion, - * where we convert R=1-C, G=1-M, and B=1-Y to YCbCr using the same - * conversion as above, while passing K (black) unchanged. - * We assume rgb_ycc_start has been called. - */ - -METHODDEF(void) -cmyk_ycck_convert (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPIMAGE output_buf, - JDIMENSION output_row, int num_rows) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - register int r, g, b; - register INT32 * ctab = cconvert->rgb_ycc_tab; - register JSAMPROW inptr; - register JSAMPROW outptr0, outptr1, outptr2, outptr3; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->image_width; - - while (--num_rows >= 0) { - inptr = *input_buf++; - outptr0 = output_buf[0][output_row]; - outptr1 = output_buf[1][output_row]; - outptr2 = output_buf[2][output_row]; - outptr3 = output_buf[3][output_row]; - output_row++; - for (col = 0; col < num_cols; col++) { - r = MAXJSAMPLE - GETJSAMPLE(inptr[0]); - g = MAXJSAMPLE - GETJSAMPLE(inptr[1]); - b = MAXJSAMPLE - GETJSAMPLE(inptr[2]); - /* K passes through as-is */ - outptr3[col] = inptr[3]; /* don't need GETJSAMPLE here */ - inptr += 4; - /* If the inputs are 0..MAXJSAMPLE, the outputs of these equations - * must be too; we do not need an explicit range-limiting operation. - * Hence the value being shifted is never negative, and we don't - * need the general RIGHT_SHIFT macro. - */ - /* Y */ - outptr0[col] = (JSAMPLE) - ((ctab[r+R_Y_OFF] + ctab[g+G_Y_OFF] + ctab[b+B_Y_OFF]) - >> SCALEBITS); - /* Cb */ - outptr1[col] = (JSAMPLE) - ((ctab[r+R_CB_OFF] + ctab[g+G_CB_OFF] + ctab[b+B_CB_OFF]) - >> SCALEBITS); - /* Cr */ - outptr2[col] = (JSAMPLE) - ((ctab[r+R_CR_OFF] + ctab[g+G_CR_OFF] + ctab[b+B_CR_OFF]) - >> SCALEBITS); - } - } -} - - -/* - * Convert some rows of samples to the JPEG colorspace. - * This version handles grayscale output with no conversion. - * The source can be either plain grayscale or YCbCr (since Y == gray). - */ - -METHODDEF(void) -grayscale_convert (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPIMAGE output_buf, - JDIMENSION output_row, int num_rows) -{ - register JSAMPROW inptr; - register JSAMPROW outptr; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->image_width; - int instride = cinfo->input_components; - - while (--num_rows >= 0) { - inptr = *input_buf++; - outptr = output_buf[0][output_row]; - output_row++; - for (col = 0; col < num_cols; col++) { - outptr[col] = inptr[0]; /* don't need GETJSAMPLE() here */ - inptr += instride; - } - } -} - - -/* - * Convert some rows of samples to the JPEG colorspace. - * This version handles multi-component colorspaces without conversion. - * We assume input_components == num_components. - */ - -METHODDEF(void) -null_convert (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPIMAGE output_buf, - JDIMENSION output_row, int num_rows) -{ - register JSAMPROW inptr; - register JSAMPROW outptr; - register JDIMENSION col; - register int ci; - int nc = cinfo->num_components; - JDIMENSION num_cols = cinfo->image_width; - - while (--num_rows >= 0) { - /* It seems fastest to make a separate pass for each component. */ - for (ci = 0; ci < nc; ci++) { - inptr = *input_buf; - outptr = output_buf[ci][output_row]; - for (col = 0; col < num_cols; col++) { - outptr[col] = inptr[ci]; /* don't need GETJSAMPLE() here */ - inptr += nc; - } - } - input_buf++; - output_row++; - } -} - - -/* - * Empty method for start_pass. - */ - -METHODDEF(void) -null_method (j_compress_ptr cinfo) -{ - /* no work needed */ -} - - -/* - * Module initialization routine for input colorspace conversion. - */ - -GLOBAL(void) -jinit_color_converter (j_compress_ptr cinfo) -{ - my_cconvert_ptr cconvert; - - cconvert = (my_cconvert_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_color_converter)); - cinfo->cconvert = (struct jpeg_color_converter *) cconvert; - /* set start_pass to null method until we find out differently */ - cconvert->pub.start_pass = null_method; - - /* Make sure input_components agrees with in_color_space */ - switch (cinfo->in_color_space) { - case JCS_GRAYSCALE: - if (cinfo->input_components != 1) - ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); - break; - - case JCS_RGB: -#if RGB_PIXELSIZE != 3 - if (cinfo->input_components != RGB_PIXELSIZE) - ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); - break; -#endif /* else share code with YCbCr */ - - case JCS_YCbCr: - if (cinfo->input_components != 3) - ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); - break; - - case JCS_CMYK: - case JCS_YCCK: - if (cinfo->input_components != 4) - ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); - break; - - default: /* JCS_UNKNOWN can be anything */ - if (cinfo->input_components < 1) - ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); - break; - } - - /* Check num_components, set conversion method based on requested space */ - switch (cinfo->jpeg_color_space) { - case JCS_GRAYSCALE: - if (cinfo->num_components != 1) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - if (cinfo->in_color_space == JCS_GRAYSCALE) - cconvert->pub.color_convert = grayscale_convert; - else if (cinfo->in_color_space == JCS_RGB) { - cconvert->pub.start_pass = rgb_ycc_start; - cconvert->pub.color_convert = rgb_gray_convert; - } else if (cinfo->in_color_space == JCS_YCbCr) - cconvert->pub.color_convert = grayscale_convert; - else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - case JCS_RGB: - if (cinfo->num_components != 3) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - if (cinfo->in_color_space == JCS_RGB && RGB_PIXELSIZE == 3) - cconvert->pub.color_convert = null_convert; - else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - case JCS_YCbCr: - if (cinfo->num_components != 3) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - if (cinfo->in_color_space == JCS_RGB) { - cconvert->pub.start_pass = rgb_ycc_start; - cconvert->pub.color_convert = rgb_ycc_convert; - } else if (cinfo->in_color_space == JCS_YCbCr) - cconvert->pub.color_convert = null_convert; - else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - case JCS_CMYK: - if (cinfo->num_components != 4) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - if (cinfo->in_color_space == JCS_CMYK) - cconvert->pub.color_convert = null_convert; - else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - case JCS_YCCK: - if (cinfo->num_components != 4) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - if (cinfo->in_color_space == JCS_CMYK) { - cconvert->pub.start_pass = rgb_ycc_start; - cconvert->pub.color_convert = cmyk_ycck_convert; - } else if (cinfo->in_color_space == JCS_YCCK) - cconvert->pub.color_convert = null_convert; - else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - default: /* allow null conversion of JCS_UNKNOWN */ - if (cinfo->jpeg_color_space != cinfo->in_color_space || - cinfo->num_components != cinfo->input_components) - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - cconvert->pub.color_convert = null_convert; - break; - } -} diff --git a/src/jpeg/jcdctmgr.c b/src/jpeg/jcdctmgr.c deleted file mode 100644 index 61fa79b9e6..0000000000 --- a/src/jpeg/jcdctmgr.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * jcdctmgr.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the forward-DCT management logic. - * This code selects a particular DCT implementation to be used, - * and it performs related housekeeping chores including coefficient - * quantization. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - - -/* Private subobject for this module */ - -typedef struct { - struct jpeg_forward_dct pub; /* public fields */ - - /* Pointer to the DCT routine actually in use */ - forward_DCT_method_ptr do_dct; - - /* The actual post-DCT divisors --- not identical to the quant table - * entries, because of scaling (especially for an unnormalized DCT). - * Each table is given in normal array order. - */ - DCTELEM * divisors[NUM_QUANT_TBLS]; - -#ifdef DCT_FLOAT_SUPPORTED - /* Same as above for the floating-point case. */ - float_DCT_method_ptr do_float_dct; - FAST_FLOAT * float_divisors[NUM_QUANT_TBLS]; -#endif -} my_fdct_controller; - -typedef my_fdct_controller * my_fdct_ptr; - - -/* - * Initialize for a processing pass. - * Verify that all referenced Q-tables are present, and set up - * the divisor table for each one. - * In the current implementation, DCT of all components is done during - * the first pass, even if only some components will be output in the - * first scan. Hence all components should be examined here. - */ - -METHODDEF(void) -start_pass_fdctmgr (j_compress_ptr cinfo) -{ - my_fdct_ptr fdct = (my_fdct_ptr) cinfo->fdct; - int ci, qtblno, i; - jpeg_component_info *compptr; - JQUANT_TBL * qtbl; - DCTELEM * dtbl; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - qtblno = compptr->quant_tbl_no; - /* Make sure specified quantization table is present */ - if (qtblno < 0 || qtblno >= NUM_QUANT_TBLS || - cinfo->quant_tbl_ptrs[qtblno] == NULL) - ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno); - qtbl = cinfo->quant_tbl_ptrs[qtblno]; - /* Compute divisors for this quant table */ - /* We may do this more than once for same table, but it's not a big deal */ - switch (cinfo->dct_method) { -#ifdef DCT_ISLOW_SUPPORTED - case JDCT_ISLOW: - /* For LL&M IDCT method, divisors are equal to raw quantization - * coefficients multiplied by 8 (to counteract scaling). - */ - if (fdct->divisors[qtblno] == NULL) { - fdct->divisors[qtblno] = (DCTELEM *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - DCTSIZE2 * SIZEOF(DCTELEM)); - } - dtbl = fdct->divisors[qtblno]; - for (i = 0; i < DCTSIZE2; i++) { - dtbl[i] = ((DCTELEM) qtbl->quantval[i]) << 3; - } - break; -#endif -#ifdef DCT_IFAST_SUPPORTED - case JDCT_IFAST: - { - /* For AA&N IDCT method, divisors are equal to quantization - * coefficients scaled by scalefactor[row]*scalefactor[col], where - * scalefactor[0] = 1 - * scalefactor[k] = cos(k*PI/16) * sqrt(2) for k=1..7 - * We apply a further scale factor of 8. - */ -#define CONST_BITS 14 - static const INT16 aanscales[DCTSIZE2] = { - /* precomputed values scaled up by 14 bits */ - 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, - 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270, - 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906, - 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315, - 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, - 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552, - 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446, - 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247 - }; - SHIFT_TEMPS - - if (fdct->divisors[qtblno] == NULL) { - fdct->divisors[qtblno] = (DCTELEM *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - DCTSIZE2 * SIZEOF(DCTELEM)); - } - dtbl = fdct->divisors[qtblno]; - for (i = 0; i < DCTSIZE2; i++) { - dtbl[i] = (DCTELEM) - DESCALE(MULTIPLY16V16((INT32) qtbl->quantval[i], - (INT32) aanscales[i]), - CONST_BITS-3); - } - } - break; -#endif -#ifdef DCT_FLOAT_SUPPORTED - case JDCT_FLOAT: - { - /* For float AA&N IDCT method, divisors are equal to quantization - * coefficients scaled by scalefactor[row]*scalefactor[col], where - * scalefactor[0] = 1 - * scalefactor[k] = cos(k*PI/16) * sqrt(2) for k=1..7 - * We apply a further scale factor of 8. - * What's actually stored is 1/divisor so that the inner loop can - * use a multiplication rather than a division. - */ - FAST_FLOAT * fdtbl; - int row, col; - static const double aanscalefactor[DCTSIZE] = { - 1.0, 1.387039845, 1.306562965, 1.175875602, - 1.0, 0.785694958, 0.541196100, 0.275899379 - }; - - if (fdct->float_divisors[qtblno] == NULL) { - fdct->float_divisors[qtblno] = (FAST_FLOAT *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - DCTSIZE2 * SIZEOF(FAST_FLOAT)); - } - fdtbl = fdct->float_divisors[qtblno]; - i = 0; - for (row = 0; row < DCTSIZE; row++) { - for (col = 0; col < DCTSIZE; col++) { - fdtbl[i] = (FAST_FLOAT) - (1.0 / (((double) qtbl->quantval[i] * - aanscalefactor[row] * aanscalefactor[col] * 8.0))); - i++; - } - } - } - break; -#endif - default: - ERREXIT(cinfo, JERR_NOT_COMPILED); - break; - } - } -} - - -/* - * Perform forward DCT on one or more blocks of a component. - * - * The input samples are taken from the sample_data[] array starting at - * position start_row/start_col, and moving to the right for any additional - * blocks. The quantized coefficients are returned in coef_blocks[]. - */ - -METHODDEF(void) -forward_DCT (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY sample_data, JBLOCKROW coef_blocks, - JDIMENSION start_row, JDIMENSION start_col, - JDIMENSION num_blocks) -/* This version is used for integer DCT implementations. */ -{ - /* This routine is heavily used, so it's worth coding it tightly. */ - my_fdct_ptr fdct = (my_fdct_ptr) cinfo->fdct; - forward_DCT_method_ptr do_dct = fdct->do_dct; - DCTELEM * divisors = fdct->divisors[compptr->quant_tbl_no]; - DCTELEM workspace[DCTSIZE2]; /* work area for FDCT subroutine */ - JDIMENSION bi; - - sample_data += start_row; /* fold in the vertical offset once */ - - for (bi = 0; bi < num_blocks; bi++, start_col += DCTSIZE) { - /* Load data into workspace, applying unsigned->signed conversion */ - { register DCTELEM *workspaceptr; - register JSAMPROW elemptr; - register int elemr; - - workspaceptr = workspace; - for (elemr = 0; elemr < DCTSIZE; elemr++) { - elemptr = sample_data[elemr] + start_col; -#if DCTSIZE == 8 /* unroll the inner loop */ - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; -#else - { register int elemc; - for (elemc = DCTSIZE; elemc > 0; elemc--) { - *workspaceptr++ = GETJSAMPLE(*elemptr++) - CENTERJSAMPLE; - } - } -#endif - } - } - - /* Perform the DCT */ - (*do_dct) (workspace); - - /* Quantize/descale the coefficients, and store into coef_blocks[] */ - { register DCTELEM temp, qval; - register int i; - register JCOEFPTR output_ptr = coef_blocks[bi]; - - for (i = 0; i < DCTSIZE2; i++) { - qval = divisors[i]; - temp = workspace[i]; - /* Divide the coefficient value by qval, ensuring proper rounding. - * Since C does not specify the direction of rounding for negative - * quotients, we have to force the dividend positive for portability. - * - * In most files, at least half of the output values will be zero - * (at default quantization settings, more like three-quarters...) - * so we should ensure that this case is fast. On many machines, - * a comparison is enough cheaper than a divide to make a special test - * a win. Since both inputs will be nonnegative, we need only test - * for a < b to discover whether a/b is 0. - * If your machine's division is fast enough, define FAST_DIVIDE. - */ -#ifdef FAST_DIVIDE -#define DIVIDE_BY(a,b) a /= b -#else -#define DIVIDE_BY(a,b) if (a >= b) a /= b; else a = 0 -#endif - if (temp < 0) { - temp = -temp; - temp += qval>>1; /* for rounding */ - DIVIDE_BY(temp, qval); - temp = -temp; - } else { - temp += qval>>1; /* for rounding */ - DIVIDE_BY(temp, qval); - } - output_ptr[i] = (JCOEF) temp; - } - } - } -} - - -#ifdef DCT_FLOAT_SUPPORTED - -METHODDEF(void) -forward_DCT_float (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY sample_data, JBLOCKROW coef_blocks, - JDIMENSION start_row, JDIMENSION start_col, - JDIMENSION num_blocks) -/* This version is used for floating-point DCT implementations. */ -{ - /* This routine is heavily used, so it's worth coding it tightly. */ - my_fdct_ptr fdct = (my_fdct_ptr) cinfo->fdct; - float_DCT_method_ptr do_dct = fdct->do_float_dct; - FAST_FLOAT * divisors = fdct->float_divisors[compptr->quant_tbl_no]; - FAST_FLOAT workspace[DCTSIZE2]; /* work area for FDCT subroutine */ - JDIMENSION bi; - - sample_data += start_row; /* fold in the vertical offset once */ - - for (bi = 0; bi < num_blocks; bi++, start_col += DCTSIZE) { - /* Load data into workspace, applying unsigned->signed conversion */ - { register FAST_FLOAT *workspaceptr; - register JSAMPROW elemptr; - register int elemr; - - workspaceptr = workspace; - for (elemr = 0; elemr < DCTSIZE; elemr++) { - elemptr = sample_data[elemr] + start_col; -#if DCTSIZE == 8 /* unroll the inner loop */ - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - *workspaceptr++ = (FAST_FLOAT)(GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); -#else - { register int elemc; - for (elemc = DCTSIZE; elemc > 0; elemc--) { - *workspaceptr++ = (FAST_FLOAT) - (GETJSAMPLE(*elemptr++) - CENTERJSAMPLE); - } - } -#endif - } - } - - /* Perform the DCT */ - (*do_dct) (workspace); - - /* Quantize/descale the coefficients, and store into coef_blocks[] */ - { register FAST_FLOAT temp; - register int i; - register JCOEFPTR output_ptr = coef_blocks[bi]; - - for (i = 0; i < DCTSIZE2; i++) { - /* Apply the quantization and scaling factor */ - temp = workspace[i] * divisors[i]; - /* Round to nearest integer. - * Since C does not specify the direction of rounding for negative - * quotients, we have to force the dividend positive for portability. - * The maximum coefficient size is +-16K (for 12-bit data), so this - * code should work for either 16-bit or 32-bit ints. - */ - output_ptr[i] = (JCOEF) ((int) (temp + (FAST_FLOAT) 16384.5) - 16384); - } - } - } -} - -#endif /* DCT_FLOAT_SUPPORTED */ - - -/* - * Initialize FDCT manager. - */ - -GLOBAL(void) -jinit_forward_dct (j_compress_ptr cinfo) -{ - my_fdct_ptr fdct; - int i; - - fdct = (my_fdct_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_fdct_controller)); - cinfo->fdct = (struct jpeg_forward_dct *) fdct; - fdct->pub.start_pass = start_pass_fdctmgr; - - switch (cinfo->dct_method) { -#ifdef DCT_ISLOW_SUPPORTED - case JDCT_ISLOW: - fdct->pub.forward_DCT = forward_DCT; - fdct->do_dct = jpeg_fdct_islow; - break; -#endif -#ifdef DCT_IFAST_SUPPORTED - case JDCT_IFAST: - fdct->pub.forward_DCT = forward_DCT; - fdct->do_dct = jpeg_fdct_ifast; - break; -#endif -#ifdef DCT_FLOAT_SUPPORTED - case JDCT_FLOAT: - fdct->pub.forward_DCT = forward_DCT_float; - fdct->do_float_dct = jpeg_fdct_float; - break; -#endif - default: - ERREXIT(cinfo, JERR_NOT_COMPILED); - break; - } - - /* Mark divisor tables unallocated */ - for (i = 0; i < NUM_QUANT_TBLS; i++) { - fdct->divisors[i] = NULL; -#ifdef DCT_FLOAT_SUPPORTED - fdct->float_divisors[i] = NULL; -#endif - } -} diff --git a/src/jpeg/jchuff.c b/src/jpeg/jchuff.c deleted file mode 100644 index f235250548..0000000000 --- a/src/jpeg/jchuff.c +++ /dev/null @@ -1,909 +0,0 @@ -/* - * jchuff.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains Huffman entropy encoding routines. - * - * Much of the complexity here has to do with supporting output suspension. - * If the data destination module demands suspension, we want to be able to - * back up to the start of the current MCU. To do this, we copy state - * variables into local working storage, and update them back to the - * permanent JPEG objects only upon successful completion of an MCU. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jchuff.h" /* Declarations shared with jcphuff.c */ - - -/* Expanded entropy encoder object for Huffman encoding. - * - * The savable_state subrecord contains fields that change within an MCU, - * but must not be updated permanently until we complete the MCU. - */ - -typedef struct { - INT32 put_buffer; /* current bit-accumulation buffer */ - int put_bits; /* # of bits now in it */ - int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */ -} savable_state; - -/* This macro is to work around compilers with missing or broken - * structure assignment. You'll need to fix this code if you have - * such a compiler and you change MAX_COMPS_IN_SCAN. - */ - -#ifndef NO_STRUCT_ASSIGN -#define ASSIGN_STATE(dest,src) ((dest) = (src)) -#else -#if MAX_COMPS_IN_SCAN == 4 -#define ASSIGN_STATE(dest,src) \ - ((dest).put_buffer = (src).put_buffer, \ - (dest).put_bits = (src).put_bits, \ - (dest).last_dc_val[0] = (src).last_dc_val[0], \ - (dest).last_dc_val[1] = (src).last_dc_val[1], \ - (dest).last_dc_val[2] = (src).last_dc_val[2], \ - (dest).last_dc_val[3] = (src).last_dc_val[3]) -#endif -#endif - - -typedef struct { - struct jpeg_entropy_encoder pub; /* public fields */ - - savable_state saved; /* Bit buffer & DC state at start of MCU */ - - /* These fields are NOT loaded into local working state. */ - unsigned int restarts_to_go; /* MCUs left in this restart interval */ - int next_restart_num; /* next restart number to write (0-7) */ - - /* Pointers to derived tables (these workspaces have image lifespan) */ - c_derived_tbl * dc_derived_tbls[NUM_HUFF_TBLS]; - c_derived_tbl * ac_derived_tbls[NUM_HUFF_TBLS]; - -#ifdef ENTROPY_OPT_SUPPORTED /* Statistics tables for optimization */ - long * dc_count_ptrs[NUM_HUFF_TBLS]; - long * ac_count_ptrs[NUM_HUFF_TBLS]; -#endif -} huff_entropy_encoder; - -typedef huff_entropy_encoder * huff_entropy_ptr; - -/* Working state while writing an MCU. - * This struct contains all the fields that are needed by subroutines. - */ - -typedef struct { - JOCTET * next_output_byte; /* => next byte to write in buffer */ - size_t free_in_buffer; /* # of byte spaces remaining in buffer */ - savable_state cur; /* Current bit buffer & DC state */ - j_compress_ptr cinfo; /* dump_buffer needs access to this */ -} working_state; - - -/* Forward declarations */ -METHODDEF(boolean) encode_mcu_huff JPP((j_compress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(void) finish_pass_huff JPP((j_compress_ptr cinfo)); -#ifdef ENTROPY_OPT_SUPPORTED -METHODDEF(boolean) encode_mcu_gather JPP((j_compress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(void) finish_pass_gather JPP((j_compress_ptr cinfo)); -#endif - - -/* - * Initialize for a Huffman-compressed scan. - * If gather_statistics is TRUE, we do not output anything during the scan, - * just count the Huffman symbols used and generate Huffman code tables. - */ - -METHODDEF(void) -start_pass_huff (j_compress_ptr cinfo, boolean gather_statistics) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - int ci, dctbl, actbl; - jpeg_component_info * compptr; - - if (gather_statistics) { -#ifdef ENTROPY_OPT_SUPPORTED - entropy->pub.encode_mcu = encode_mcu_gather; - entropy->pub.finish_pass = finish_pass_gather; -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else { - entropy->pub.encode_mcu = encode_mcu_huff; - entropy->pub.finish_pass = finish_pass_huff; - } - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - dctbl = compptr->dc_tbl_no; - actbl = compptr->ac_tbl_no; - if (gather_statistics) { -#ifdef ENTROPY_OPT_SUPPORTED - /* Check for invalid table indexes */ - /* (make_c_derived_tbl does this in the other path) */ - if (dctbl < 0 || dctbl >= NUM_HUFF_TBLS) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, dctbl); - if (actbl < 0 || actbl >= NUM_HUFF_TBLS) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, actbl); - /* Allocate and zero the statistics tables */ - /* Note that jpeg_gen_optimal_table expects 257 entries in each table! */ - if (entropy->dc_count_ptrs[dctbl] == NULL) - entropy->dc_count_ptrs[dctbl] = (long *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - 257 * SIZEOF(long)); - MEMZERO(entropy->dc_count_ptrs[dctbl], 257 * SIZEOF(long)); - if (entropy->ac_count_ptrs[actbl] == NULL) - entropy->ac_count_ptrs[actbl] = (long *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - 257 * SIZEOF(long)); - MEMZERO(entropy->ac_count_ptrs[actbl], 257 * SIZEOF(long)); -#endif - } else { - /* Compute derived values for Huffman tables */ - /* We may do this more than once for a table, but it's not expensive */ - jpeg_make_c_derived_tbl(cinfo, TRUE, dctbl, - & entropy->dc_derived_tbls[dctbl]); - jpeg_make_c_derived_tbl(cinfo, FALSE, actbl, - & entropy->ac_derived_tbls[actbl]); - } - /* Initialize DC predictions to 0 */ - entropy->saved.last_dc_val[ci] = 0; - } - - /* Initialize bit buffer to empty */ - entropy->saved.put_buffer = 0; - entropy->saved.put_bits = 0; - - /* Initialize restart stuff */ - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num = 0; -} - - -/* - * Compute the derived values for a Huffman table. - * This routine also performs some validation checks on the table. - * - * Note this is also used by jcphuff.c. - */ - -GLOBAL(void) -jpeg_make_c_derived_tbl (j_compress_ptr cinfo, boolean isDC, int tblno, - c_derived_tbl ** pdtbl) -{ - JHUFF_TBL *htbl; - c_derived_tbl *dtbl; - int p, i, l, lastp, si, maxsymbol; - char huffsize[257]; - unsigned int huffcode[257]; - unsigned int code; - - /* Note that huffsize[] and huffcode[] are filled in code-length order, - * paralleling the order of the symbols themselves in htbl->huffval[]. - */ - - /* Find the input Huffman table */ - if (tblno < 0 || tblno >= NUM_HUFF_TBLS) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, tblno); - htbl = - isDC ? cinfo->dc_huff_tbl_ptrs[tblno] : cinfo->ac_huff_tbl_ptrs[tblno]; - if (htbl == NULL) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, tblno); - - /* Allocate a workspace if we haven't already done so. */ - if (*pdtbl == NULL) - *pdtbl = (c_derived_tbl *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(c_derived_tbl)); - dtbl = *pdtbl; - - /* Figure C.1: make table of Huffman code length for each symbol */ - - p = 0; - for (l = 1; l <= 16; l++) { - i = (int) htbl->bits[l]; - if (i < 0 || p + i > 256) /* protect against table overrun */ - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - while (i--) - huffsize[p++] = (char) l; - } - huffsize[p] = 0; - lastp = p; - - /* Figure C.2: generate the codes themselves */ - /* We also validate that the counts represent a legal Huffman code tree. */ - - code = 0; - si = huffsize[0]; - p = 0; - while (huffsize[p]) { - while (((int) huffsize[p]) == si) { - huffcode[p++] = code; - code++; - } - /* code is now 1 more than the last code used for codelength si; but - * it must still fit in si bits, since no code is allowed to be all ones. - */ - if (((INT32) code) >= (((INT32) 1) << si)) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - code <<= 1; - si++; - } - - /* Figure C.3: generate encoding tables */ - /* These are code and size indexed by symbol value */ - - /* Set all codeless symbols to have code length 0; - * this lets us detect duplicate VAL entries here, and later - * allows emit_bits to detect any attempt to emit such symbols. - */ - MEMZERO(dtbl->ehufsi, SIZEOF(dtbl->ehufsi)); - - /* This is also a convenient place to check for out-of-range - * and duplicated VAL entries. We allow 0..255 for AC symbols - * but only 0..15 for DC. (We could constrain them further - * based on data depth and mode, but this seems enough.) - */ - maxsymbol = isDC ? 15 : 255; - - for (p = 0; p < lastp; p++) { - i = htbl->huffval[p]; - if (i < 0 || i > maxsymbol || dtbl->ehufsi[i]) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - dtbl->ehufco[i] = huffcode[p]; - dtbl->ehufsi[i] = huffsize[p]; - } -} - - -/* Outputting bytes to the file */ - -/* Emit a byte, taking 'action' if must suspend. */ -#define emit_byte(state,val,action) \ - { *(state)->next_output_byte++ = (JOCTET) (val); \ - if (--(state)->free_in_buffer == 0) \ - if (! dump_buffer(state)) \ - { action; } } - - -LOCAL(boolean) -dump_buffer (working_state * state) -/* Empty the output buffer; return TRUE if successful, FALSE if must suspend */ -{ - struct jpeg_destination_mgr * dest = state->cinfo->dest; - - if (! (*dest->empty_output_buffer) (state->cinfo)) - return FALSE; - /* After a successful buffer dump, must reset buffer pointers */ - state->next_output_byte = dest->next_output_byte; - state->free_in_buffer = dest->free_in_buffer; - return TRUE; -} - - -/* Outputting bits to the file */ - -/* Only the right 24 bits of put_buffer are used; the valid bits are - * left-justified in this part. At most 16 bits can be passed to emit_bits - * in one call, and we never retain more than 7 bits in put_buffer - * between calls, so 24 bits are sufficient. - */ - -INLINE -LOCAL(boolean) -emit_bits (working_state * state, unsigned int code, int size) -/* Emit some bits; return TRUE if successful, FALSE if must suspend */ -{ - /* This routine is heavily used, so it's worth coding tightly. */ - register INT32 put_buffer = (INT32) code; - register int put_bits = state->cur.put_bits; - - /* if size is 0, caller used an invalid Huffman table entry */ - if (size == 0) - ERREXIT(state->cinfo, JERR_HUFF_MISSING_CODE); - - put_buffer &= (((INT32) 1)<cur.put_buffer; /* and merge with old buffer contents */ - - while (put_bits >= 8) { - int c = (int) ((put_buffer >> 16) & 0xFF); - - emit_byte(state, c, return FALSE); - if (c == 0xFF) { /* need to stuff a zero byte? */ - emit_byte(state, 0, return FALSE); - } - put_buffer <<= 8; - put_bits -= 8; - } - - state->cur.put_buffer = put_buffer; /* update state variables */ - state->cur.put_bits = put_bits; - - return TRUE; -} - - -LOCAL(boolean) -flush_bits (working_state * state) -{ - if (! emit_bits(state, 0x7F, 7)) /* fill any partial byte with ones */ - return FALSE; - state->cur.put_buffer = 0; /* and reset bit-buffer to empty */ - state->cur.put_bits = 0; - return TRUE; -} - - -/* Encode a single block's worth of coefficients */ - -LOCAL(boolean) -encode_one_block (working_state * state, JCOEFPTR block, int last_dc_val, - c_derived_tbl *dctbl, c_derived_tbl *actbl) -{ - register int temp, temp2; - register int nbits; - register int k, r, i; - - /* Encode the DC coefficient difference per section F.1.2.1 */ - - temp = temp2 = block[0] - last_dc_val; - - if (temp < 0) { - temp = -temp; /* temp is abs value of input */ - /* For a negative input, want temp2 = bitwise complement of abs(input) */ - /* This code assumes we are on a two's complement machine */ - temp2--; - } - - /* Find the number of bits needed for the magnitude of the coefficient */ - nbits = 0; - while (temp) { - nbits++; - temp >>= 1; - } - /* Check for out-of-range coefficient values. - * Since we're encoding a difference, the range limit is twice as much. - */ - if (nbits > MAX_COEF_BITS+1) - ERREXIT(state->cinfo, JERR_BAD_DCT_COEF); - - /* Emit the Huffman-coded symbol for the number of bits */ - if (! emit_bits(state, dctbl->ehufco[nbits], dctbl->ehufsi[nbits])) - return FALSE; - - /* Emit that number of bits of the value, if positive, */ - /* or the complement of its magnitude, if negative. */ - if (nbits) /* emit_bits rejects calls with size 0 */ - if (! emit_bits(state, (unsigned int) temp2, nbits)) - return FALSE; - - /* Encode the AC coefficients per section F.1.2.2 */ - - r = 0; /* r = run length of zeros */ - - for (k = 1; k < DCTSIZE2; k++) { - if ((temp = block[jpeg_natural_order[k]]) == 0) { - r++; - } else { - /* if run length > 15, must emit special run-length-16 codes (0xF0) */ - while (r > 15) { - if (! emit_bits(state, actbl->ehufco[0xF0], actbl->ehufsi[0xF0])) - return FALSE; - r -= 16; - } - - temp2 = temp; - if (temp < 0) { - temp = -temp; /* temp is abs value of input */ - /* This code assumes we are on a two's complement machine */ - temp2--; - } - - /* Find the number of bits needed for the magnitude of the coefficient */ - nbits = 1; /* there must be at least one 1 bit */ - while ((temp >>= 1)) - nbits++; - /* Check for out-of-range coefficient values */ - if (nbits > MAX_COEF_BITS) - ERREXIT(state->cinfo, JERR_BAD_DCT_COEF); - - /* Emit Huffman symbol for run length / number of bits */ - i = (r << 4) + nbits; - if (! emit_bits(state, actbl->ehufco[i], actbl->ehufsi[i])) - return FALSE; - - /* Emit that number of bits of the value, if positive, */ - /* or the complement of its magnitude, if negative. */ - if (! emit_bits(state, (unsigned int) temp2, nbits)) - return FALSE; - - r = 0; - } - } - - /* If the last coef(s) were zero, emit an end-of-block code */ - if (r > 0) - if (! emit_bits(state, actbl->ehufco[0], actbl->ehufsi[0])) - return FALSE; - - return TRUE; -} - - -/* - * Emit a restart marker & resynchronize predictions. - */ - -LOCAL(boolean) -emit_restart (working_state * state, int restart_num) -{ - int ci; - - if (! flush_bits(state)) - return FALSE; - - emit_byte(state, 0xFF, return FALSE); - emit_byte(state, JPEG_RST0 + restart_num, return FALSE); - - /* Re-initialize DC predictions to 0 */ - for (ci = 0; ci < state->cinfo->comps_in_scan; ci++) - state->cur.last_dc_val[ci] = 0; - - /* The restart counter is not updated until we successfully write the MCU. */ - - return TRUE; -} - - -/* - * Encode and output one MCU's worth of Huffman-compressed coefficients. - */ - -METHODDEF(boolean) -encode_mcu_huff (j_compress_ptr cinfo, JBLOCKROW *MCU_data) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - working_state state; - int blkn, ci; - jpeg_component_info * compptr; - - /* Load up working state */ - state.next_output_byte = cinfo->dest->next_output_byte; - state.free_in_buffer = cinfo->dest->free_in_buffer; - ASSIGN_STATE(state.cur, entropy->saved); - state.cinfo = cinfo; - - /* Emit restart marker if needed */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) - if (! emit_restart(&state, entropy->next_restart_num)) - return FALSE; - } - - /* Encode the MCU data blocks */ - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - ci = cinfo->MCU_membership[blkn]; - compptr = cinfo->cur_comp_info[ci]; - if (! encode_one_block(&state, - MCU_data[blkn][0], state.cur.last_dc_val[ci], - entropy->dc_derived_tbls[compptr->dc_tbl_no], - entropy->ac_derived_tbls[compptr->ac_tbl_no])) - return FALSE; - /* Update last_dc_val */ - state.cur.last_dc_val[ci] = MCU_data[blkn][0][0]; - } - - /* Completed MCU, so update state */ - cinfo->dest->next_output_byte = state.next_output_byte; - cinfo->dest->free_in_buffer = state.free_in_buffer; - ASSIGN_STATE(entropy->saved, state.cur); - - /* Update restart-interval state too */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) { - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num++; - entropy->next_restart_num &= 7; - } - entropy->restarts_to_go--; - } - - return TRUE; -} - - -/* - * Finish up at the end of a Huffman-compressed scan. - */ - -METHODDEF(void) -finish_pass_huff (j_compress_ptr cinfo) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - working_state state; - - /* Load up working state ... flush_bits needs it */ - state.next_output_byte = cinfo->dest->next_output_byte; - state.free_in_buffer = cinfo->dest->free_in_buffer; - ASSIGN_STATE(state.cur, entropy->saved); - state.cinfo = cinfo; - - /* Flush out the last data */ - if (! flush_bits(&state)) - ERREXIT(cinfo, JERR_CANT_SUSPEND); - - /* Update state */ - cinfo->dest->next_output_byte = state.next_output_byte; - cinfo->dest->free_in_buffer = state.free_in_buffer; - ASSIGN_STATE(entropy->saved, state.cur); -} - - -/* - * Huffman coding optimization. - * - * We first scan the supplied data and count the number of uses of each symbol - * that is to be Huffman-coded. (This process MUST agree with the code above.) - * Then we build a Huffman coding tree for the observed counts. - * Symbols which are not needed at all for the particular image are not - * assigned any code, which saves space in the DHT marker as well as in - * the compressed data. - */ - -#ifdef ENTROPY_OPT_SUPPORTED - - -/* Process a single block's worth of coefficients */ - -LOCAL(void) -htest_one_block (j_compress_ptr cinfo, JCOEFPTR block, int last_dc_val, - long dc_counts[], long ac_counts[]) -{ - register int temp; - register int nbits; - register int k, r; - - /* Encode the DC coefficient difference per section F.1.2.1 */ - - temp = block[0] - last_dc_val; - if (temp < 0) - temp = -temp; - - /* Find the number of bits needed for the magnitude of the coefficient */ - nbits = 0; - while (temp) { - nbits++; - temp >>= 1; - } - /* Check for out-of-range coefficient values. - * Since we're encoding a difference, the range limit is twice as much. - */ - if (nbits > MAX_COEF_BITS+1) - ERREXIT(cinfo, JERR_BAD_DCT_COEF); - - /* Count the Huffman symbol for the number of bits */ - dc_counts[nbits]++; - - /* Encode the AC coefficients per section F.1.2.2 */ - - r = 0; /* r = run length of zeros */ - - for (k = 1; k < DCTSIZE2; k++) { - if ((temp = block[jpeg_natural_order[k]]) == 0) { - r++; - } else { - /* if run length > 15, must emit special run-length-16 codes (0xF0) */ - while (r > 15) { - ac_counts[0xF0]++; - r -= 16; - } - - /* Find the number of bits needed for the magnitude of the coefficient */ - if (temp < 0) - temp = -temp; - - /* Find the number of bits needed for the magnitude of the coefficient */ - nbits = 1; /* there must be at least one 1 bit */ - while ((temp >>= 1)) - nbits++; - /* Check for out-of-range coefficient values */ - if (nbits > MAX_COEF_BITS) - ERREXIT(cinfo, JERR_BAD_DCT_COEF); - - /* Count Huffman symbol for run length / number of bits */ - ac_counts[(r << 4) + nbits]++; - - r = 0; - } - } - - /* If the last coef(s) were zero, emit an end-of-block code */ - if (r > 0) - ac_counts[0]++; -} - - -/* - * Trial-encode one MCU's worth of Huffman-compressed coefficients. - * No data is actually output, so no suspension return is possible. - */ - -METHODDEF(boolean) -encode_mcu_gather (j_compress_ptr cinfo, JBLOCKROW *MCU_data) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - int blkn, ci; - jpeg_component_info * compptr; - - /* Take care of restart intervals if needed */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) { - /* Re-initialize DC predictions to 0 */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) - entropy->saved.last_dc_val[ci] = 0; - /* Update restart state */ - entropy->restarts_to_go = cinfo->restart_interval; - } - entropy->restarts_to_go--; - } - - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - ci = cinfo->MCU_membership[blkn]; - compptr = cinfo->cur_comp_info[ci]; - htest_one_block(cinfo, MCU_data[blkn][0], entropy->saved.last_dc_val[ci], - entropy->dc_count_ptrs[compptr->dc_tbl_no], - entropy->ac_count_ptrs[compptr->ac_tbl_no]); - entropy->saved.last_dc_val[ci] = MCU_data[blkn][0][0]; - } - - return TRUE; -} - - -/* - * Generate the best Huffman code table for the given counts, fill htbl. - * Note this is also used by jcphuff.c. - * - * The JPEG standard requires that no symbol be assigned a codeword of all - * one bits (so that padding bits added at the end of a compressed segment - * can't look like a valid code). Because of the canonical ordering of - * codewords, this just means that there must be an unused slot in the - * longest codeword length category. Section K.2 of the JPEG spec suggests - * reserving such a slot by pretending that symbol 256 is a valid symbol - * with count 1. In theory that's not optimal; giving it count zero but - * including it in the symbol set anyway should give a better Huffman code. - * But the theoretically better code actually seems to come out worse in - * practice, because it produces more all-ones bytes (which incur stuffed - * zero bytes in the final file). In any case the difference is tiny. - * - * The JPEG standard requires Huffman codes to be no more than 16 bits long. - * If some symbols have a very small but nonzero probability, the Huffman tree - * must be adjusted to meet the code length restriction. We currently use - * the adjustment method suggested in JPEG section K.2. This method is *not* - * optimal; it may not choose the best possible limited-length code. But - * typically only very-low-frequency symbols will be given less-than-optimal - * lengths, so the code is almost optimal. Experimental comparisons against - * an optimal limited-length-code algorithm indicate that the difference is - * microscopic --- usually less than a hundredth of a percent of total size. - * So the extra complexity of an optimal algorithm doesn't seem worthwhile. - */ - -GLOBAL(void) -jpeg_gen_optimal_table (j_compress_ptr cinfo, JHUFF_TBL * htbl, long freq[]) -{ -#define MAX_CLEN 32 /* assumed maximum initial code length */ - UINT8 bits[MAX_CLEN+1]; /* bits[k] = # of symbols with code length k */ - int codesize[257]; /* codesize[k] = code length of symbol k */ - int others[257]; /* next symbol in current branch of tree */ - int c1, c2; - int p, i, j; - long v; - - /* This algorithm is explained in section K.2 of the JPEG standard */ - - MEMZERO(bits, SIZEOF(bits)); - MEMZERO(codesize, SIZEOF(codesize)); - for (i = 0; i < 257; i++) - others[i] = -1; /* init links to empty */ - - freq[256] = 1; /* make sure 256 has a nonzero count */ - /* Including the pseudo-symbol 256 in the Huffman procedure guarantees - * that no real symbol is given code-value of all ones, because 256 - * will be placed last in the largest codeword category. - */ - - /* Huffman's basic algorithm to assign optimal code lengths to symbols */ - - for (;;) { - /* Find the smallest nonzero frequency, set c1 = its symbol */ - /* In case of ties, take the larger symbol number */ - c1 = -1; - v = 1000000000L; - for (i = 0; i <= 256; i++) { - if (freq[i] && freq[i] <= v) { - v = freq[i]; - c1 = i; - } - } - - /* Find the next smallest nonzero frequency, set c2 = its symbol */ - /* In case of ties, take the larger symbol number */ - c2 = -1; - v = 1000000000L; - for (i = 0; i <= 256; i++) { - if (freq[i] && freq[i] <= v && i != c1) { - v = freq[i]; - c2 = i; - } - } - - /* Done if we've merged everything into one frequency */ - if (c2 < 0) - break; - - /* Else merge the two counts/trees */ - freq[c1] += freq[c2]; - freq[c2] = 0; - - /* Increment the codesize of everything in c1's tree branch */ - codesize[c1]++; - while (others[c1] >= 0) { - c1 = others[c1]; - codesize[c1]++; - } - - others[c1] = c2; /* chain c2 onto c1's tree branch */ - - /* Increment the codesize of everything in c2's tree branch */ - codesize[c2]++; - while (others[c2] >= 0) { - c2 = others[c2]; - codesize[c2]++; - } - } - - /* Now count the number of symbols of each code length */ - for (i = 0; i <= 256; i++) { - if (codesize[i]) { - /* The JPEG standard seems to think that this can't happen, */ - /* but I'm paranoid... */ - if (codesize[i] > MAX_CLEN) - ERREXIT(cinfo, JERR_HUFF_CLEN_OVERFLOW); - - bits[codesize[i]]++; - } - } - - /* JPEG doesn't allow symbols with code lengths over 16 bits, so if the pure - * Huffman procedure assigned any such lengths, we must adjust the coding. - * Here is what the JPEG spec says about how this next bit works: - * Since symbols are paired for the longest Huffman code, the symbols are - * removed from this length category two at a time. The prefix for the pair - * (which is one bit shorter) is allocated to one of the pair; then, - * skipping the BITS entry for that prefix length, a code word from the next - * shortest nonzero BITS entry is converted into a prefix for two code words - * one bit longer. - */ - - for (i = MAX_CLEN; i > 16; i--) { - while (bits[i] > 0) { - j = i - 2; /* find length of new prefix to be used */ - while (bits[j] == 0) - j--; - - bits[i] -= 2; /* remove two symbols */ - bits[i-1]++; /* one goes in this length */ - bits[j+1] += 2; /* two new symbols in this length */ - bits[j]--; /* symbol of this length is now a prefix */ - } - } - - /* Remove the count for the pseudo-symbol 256 from the largest codelength */ - while (bits[i] == 0) /* find largest codelength still in use */ - i--; - bits[i]--; - - /* Return final symbol counts (only for lengths 0..16) */ - MEMCOPY(htbl->bits, bits, SIZEOF(htbl->bits)); - - /* Return a list of the symbols sorted by code length */ - /* It's not real clear to me why we don't need to consider the codelength - * changes made above, but the JPEG spec seems to think this works. - */ - p = 0; - for (i = 1; i <= MAX_CLEN; i++) { - for (j = 0; j <= 255; j++) { - if (codesize[j] == i) { - htbl->huffval[p] = (UINT8) j; - p++; - } - } - } - - /* Set sent_table FALSE so updated table will be written to JPEG file. */ - htbl->sent_table = FALSE; -} - - -/* - * Finish up a statistics-gathering pass and create the new Huffman tables. - */ - -METHODDEF(void) -finish_pass_gather (j_compress_ptr cinfo) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - int ci, dctbl, actbl; - jpeg_component_info * compptr; - JHUFF_TBL **htblptr; - boolean did_dc[NUM_HUFF_TBLS]; - boolean did_ac[NUM_HUFF_TBLS]; - - /* It's important not to apply jpeg_gen_optimal_table more than once - * per table, because it clobbers the input frequency counts! - */ - MEMZERO(did_dc, SIZEOF(did_dc)); - MEMZERO(did_ac, SIZEOF(did_ac)); - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - dctbl = compptr->dc_tbl_no; - actbl = compptr->ac_tbl_no; - if (! did_dc[dctbl]) { - htblptr = & cinfo->dc_huff_tbl_ptrs[dctbl]; - if (*htblptr == NULL) - *htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); - jpeg_gen_optimal_table(cinfo, *htblptr, entropy->dc_count_ptrs[dctbl]); - did_dc[dctbl] = TRUE; - } - if (! did_ac[actbl]) { - htblptr = & cinfo->ac_huff_tbl_ptrs[actbl]; - if (*htblptr == NULL) - *htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); - jpeg_gen_optimal_table(cinfo, *htblptr, entropy->ac_count_ptrs[actbl]); - did_ac[actbl] = TRUE; - } - } -} - - -#endif /* ENTROPY_OPT_SUPPORTED */ - - -/* - * Module initialization routine for Huffman entropy encoding. - */ - -GLOBAL(void) -jinit_huff_encoder (j_compress_ptr cinfo) -{ - huff_entropy_ptr entropy; - int i; - - entropy = (huff_entropy_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(huff_entropy_encoder)); - cinfo->entropy = (struct jpeg_entropy_encoder *) entropy; - entropy->pub.start_pass = start_pass_huff; - - /* Mark tables unallocated */ - for (i = 0; i < NUM_HUFF_TBLS; i++) { - entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL; -#ifdef ENTROPY_OPT_SUPPORTED - entropy->dc_count_ptrs[i] = entropy->ac_count_ptrs[i] = NULL; -#endif - } -} diff --git a/src/jpeg/jchuff.h b/src/jpeg/jchuff.h deleted file mode 100644 index a9599fc1e6..0000000000 --- a/src/jpeg/jchuff.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * jchuff.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains declarations for Huffman entropy encoding routines - * that are shared between the sequential encoder (jchuff.c) and the - * progressive encoder (jcphuff.c). No other modules need to see these. - */ - -/* The legal range of a DCT coefficient is - * -1024 .. +1023 for 8-bit data; - * -16384 .. +16383 for 12-bit data. - * Hence the magnitude should always fit in 10 or 14 bits respectively. - */ - -#if BITS_IN_JSAMPLE == 8 -#define MAX_COEF_BITS 10 -#else -#define MAX_COEF_BITS 14 -#endif - -/* Derived data constructed for each Huffman table */ - -typedef struct { - unsigned int ehufco[256]; /* code for each symbol */ - char ehufsi[256]; /* length of code for each symbol */ - /* If no code has been allocated for a symbol S, ehufsi[S] contains 0 */ -} c_derived_tbl; - -/* Short forms of external names for systems with brain-damaged linkers. */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_make_c_derived_tbl jMkCDerived -#define jpeg_gen_optimal_table jGenOptTbl -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - -/* Expand a Huffman table definition into the derived format */ -EXTERN(void) jpeg_make_c_derived_tbl - JPP((j_compress_ptr cinfo, boolean isDC, int tblno, - c_derived_tbl ** pdtbl)); - -/* Generate an optimal table definition given the specified counts */ -EXTERN(void) jpeg_gen_optimal_table - JPP((j_compress_ptr cinfo, JHUFF_TBL * htbl, long freq[])); diff --git a/src/jpeg/jcinit.c b/src/jpeg/jcinit.c deleted file mode 100644 index 5efffe3316..0000000000 --- a/src/jpeg/jcinit.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * jcinit.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains initialization logic for the JPEG compressor. - * This routine is in charge of selecting the modules to be executed and - * making an initialization call to each one. - * - * Logically, this code belongs in jcmaster.c. It's split out because - * linking this routine implies linking the entire compression library. - * For a transcoding-only application, we want to be able to use jcmaster.c - * without linking in the whole library. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * Master selection of compression modules. - * This is done once at the start of processing an image. We determine - * which modules will be used and give them appropriate initialization calls. - */ - -GLOBAL(void) -jinit_compress_master (j_compress_ptr cinfo) -{ - /* Initialize master control (includes parameter checking/processing) */ - jinit_c_master_control(cinfo, FALSE /* full compression */); - - /* Preprocessing */ - if (! cinfo->raw_data_in) { - jinit_color_converter(cinfo); - jinit_downsampler(cinfo); - jinit_c_prep_controller(cinfo, FALSE /* never need full buffer here */); - } - /* Forward DCT */ - jinit_forward_dct(cinfo); - /* Entropy encoding: either Huffman or arithmetic coding. */ - if (cinfo->arith_code) { - ERREXIT(cinfo, JERR_ARITH_NOTIMPL); - } else { - if (cinfo->progressive_mode) { -#ifdef C_PROGRESSIVE_SUPPORTED - jinit_phuff_encoder(cinfo); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else - jinit_huff_encoder(cinfo); - } - - /* Need a full-image coefficient buffer in any multi-pass mode. */ - jinit_c_coef_controller(cinfo, - (boolean) (cinfo->num_scans > 1 || cinfo->optimize_coding)); - jinit_c_main_controller(cinfo, FALSE /* never need full buffer here */); - - jinit_marker_writer(cinfo); - - /* We can now tell the memory manager to allocate virtual arrays. */ - (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo); - - /* Write the datastream header (SOI) immediately. - * Frame and scan headers are postponed till later. - * This lets application insert special markers after the SOI. - */ - (*cinfo->marker->write_file_header) (cinfo); -} diff --git a/src/jpeg/jcmainct.c b/src/jpeg/jcmainct.c deleted file mode 100644 index e0279a7e01..0000000000 --- a/src/jpeg/jcmainct.c +++ /dev/null @@ -1,293 +0,0 @@ -/* - * jcmainct.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the main buffer controller for compression. - * The main buffer lies between the pre-processor and the JPEG - * compressor proper; it holds downsampled data in the JPEG colorspace. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Note: currently, there is no operating mode in which a full-image buffer - * is needed at this step. If there were, that mode could not be used with - * "raw data" input, since this module is bypassed in that case. However, - * we've left the code here for possible use in special applications. - */ -#undef FULL_MAIN_BUFFER_SUPPORTED - - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_c_main_controller pub; /* public fields */ - - JDIMENSION cur_iMCU_row; /* number of current iMCU row */ - JDIMENSION rowgroup_ctr; /* counts row groups received in iMCU row */ - boolean suspended; /* remember if we suspended output */ - J_BUF_MODE pass_mode; /* current operating mode */ - - /* If using just a strip buffer, this points to the entire set of buffers - * (we allocate one for each component). In the full-image case, this - * points to the currently accessible strips of the virtual arrays. - */ - JSAMPARRAY buffer[MAX_COMPONENTS]; - -#ifdef FULL_MAIN_BUFFER_SUPPORTED - /* If using full-image storage, this array holds pointers to virtual-array - * control blocks for each component. Unused if not full-image storage. - */ - jvirt_sarray_ptr whole_image[MAX_COMPONENTS]; -#endif -} my_main_controller; - -typedef my_main_controller * my_main_ptr; - - -/* Forward declarations */ -METHODDEF(void) process_data_simple_main - JPP((j_compress_ptr cinfo, JSAMPARRAY input_buf, - JDIMENSION *in_row_ctr, JDIMENSION in_rows_avail)); -#ifdef FULL_MAIN_BUFFER_SUPPORTED -METHODDEF(void) process_data_buffer_main - JPP((j_compress_ptr cinfo, JSAMPARRAY input_buf, - JDIMENSION *in_row_ctr, JDIMENSION in_rows_avail)); -#endif - - -/* - * Initialize for a processing pass. - */ - -METHODDEF(void) -start_pass_main (j_compress_ptr cinfo, J_BUF_MODE pass_mode) -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - - /* Do nothing in raw-data mode. */ - if (cinfo->raw_data_in) - return; - - main->cur_iMCU_row = 0; /* initialize counters */ - main->rowgroup_ctr = 0; - main->suspended = FALSE; - main->pass_mode = pass_mode; /* save mode for use by process_data */ - - switch (pass_mode) { - case JBUF_PASS_THRU: -#ifdef FULL_MAIN_BUFFER_SUPPORTED - if (main->whole_image[0] != NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); -#endif - main->pub.process_data = process_data_simple_main; - break; -#ifdef FULL_MAIN_BUFFER_SUPPORTED - case JBUF_SAVE_SOURCE: - case JBUF_CRANK_DEST: - case JBUF_SAVE_AND_PASS: - if (main->whole_image[0] == NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - main->pub.process_data = process_data_buffer_main; - break; -#endif - default: - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - break; - } -} - - -/* - * Process some data. - * This routine handles the simple pass-through mode, - * where we have only a strip buffer. - */ - -METHODDEF(void) -process_data_simple_main (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JDIMENSION *in_row_ctr, - JDIMENSION in_rows_avail) -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - - while (main->cur_iMCU_row < cinfo->total_iMCU_rows) { - /* Read input data if we haven't filled the main buffer yet */ - if (main->rowgroup_ctr < DCTSIZE) - (*cinfo->prep->pre_process_data) (cinfo, - input_buf, in_row_ctr, in_rows_avail, - main->buffer, &main->rowgroup_ctr, - (JDIMENSION) DCTSIZE); - - /* If we don't have a full iMCU row buffered, return to application for - * more data. Note that preprocessor will always pad to fill the iMCU row - * at the bottom of the image. - */ - if (main->rowgroup_ctr != DCTSIZE) - return; - - /* Send the completed row to the compressor */ - if (! (*cinfo->coef->compress_data) (cinfo, main->buffer)) { - /* If compressor did not consume the whole row, then we must need to - * suspend processing and return to the application. In this situation - * we pretend we didn't yet consume the last input row; otherwise, if - * it happened to be the last row of the image, the application would - * think we were done. - */ - if (! main->suspended) { - (*in_row_ctr)--; - main->suspended = TRUE; - } - return; - } - /* We did finish the row. Undo our little suspension hack if a previous - * call suspended; then mark the main buffer empty. - */ - if (main->suspended) { - (*in_row_ctr)++; - main->suspended = FALSE; - } - main->rowgroup_ctr = 0; - main->cur_iMCU_row++; - } -} - - -#ifdef FULL_MAIN_BUFFER_SUPPORTED - -/* - * Process some data. - * This routine handles all of the modes that use a full-size buffer. - */ - -METHODDEF(void) -process_data_buffer_main (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JDIMENSION *in_row_ctr, - JDIMENSION in_rows_avail) -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - int ci; - jpeg_component_info *compptr; - boolean writing = (main->pass_mode != JBUF_CRANK_DEST); - - while (main->cur_iMCU_row < cinfo->total_iMCU_rows) { - /* Realign the virtual buffers if at the start of an iMCU row. */ - if (main->rowgroup_ctr == 0) { - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - main->buffer[ci] = (*cinfo->mem->access_virt_sarray) - ((j_common_ptr) cinfo, main->whole_image[ci], - main->cur_iMCU_row * (compptr->v_samp_factor * DCTSIZE), - (JDIMENSION) (compptr->v_samp_factor * DCTSIZE), writing); - } - /* In a read pass, pretend we just read some source data. */ - if (! writing) { - *in_row_ctr += cinfo->max_v_samp_factor * DCTSIZE; - main->rowgroup_ctr = DCTSIZE; - } - } - - /* If a write pass, read input data until the current iMCU row is full. */ - /* Note: preprocessor will pad if necessary to fill the last iMCU row. */ - if (writing) { - (*cinfo->prep->pre_process_data) (cinfo, - input_buf, in_row_ctr, in_rows_avail, - main->buffer, &main->rowgroup_ctr, - (JDIMENSION) DCTSIZE); - /* Return to application if we need more data to fill the iMCU row. */ - if (main->rowgroup_ctr < DCTSIZE) - return; - } - - /* Emit data, unless this is a sink-only pass. */ - if (main->pass_mode != JBUF_SAVE_SOURCE) { - if (! (*cinfo->coef->compress_data) (cinfo, main->buffer)) { - /* If compressor did not consume the whole row, then we must need to - * suspend processing and return to the application. In this situation - * we pretend we didn't yet consume the last input row; otherwise, if - * it happened to be the last row of the image, the application would - * think we were done. - */ - if (! main->suspended) { - (*in_row_ctr)--; - main->suspended = TRUE; - } - return; - } - /* We did finish the row. Undo our little suspension hack if a previous - * call suspended; then mark the main buffer empty. - */ - if (main->suspended) { - (*in_row_ctr)++; - main->suspended = FALSE; - } - } - - /* If get here, we are done with this iMCU row. Mark buffer empty. */ - main->rowgroup_ctr = 0; - main->cur_iMCU_row++; - } -} - -#endif /* FULL_MAIN_BUFFER_SUPPORTED */ - - -/* - * Initialize main buffer controller. - */ - -GLOBAL(void) -jinit_c_main_controller (j_compress_ptr cinfo, boolean need_full_buffer) -{ - my_main_ptr main; - int ci; - jpeg_component_info *compptr; - - main = (my_main_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_main_controller)); - cinfo->main = (struct jpeg_c_main_controller *) main; - main->pub.start_pass = start_pass_main; - - /* We don't need to create a buffer in raw-data mode. */ - if (cinfo->raw_data_in) - return; - - /* Create the buffer. It holds downsampled data, so each component - * may be of a different size. - */ - if (need_full_buffer) { -#ifdef FULL_MAIN_BUFFER_SUPPORTED - /* Allocate a full-image virtual array for each component */ - /* Note we pad the bottom to a multiple of the iMCU height */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - main->whole_image[ci] = (*cinfo->mem->request_virt_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, FALSE, - compptr->width_in_blocks * DCTSIZE, - (JDIMENSION) jround_up((long) compptr->height_in_blocks, - (long) compptr->v_samp_factor) * DCTSIZE, - (JDIMENSION) (compptr->v_samp_factor * DCTSIZE)); - } -#else - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); -#endif - } else { -#ifdef FULL_MAIN_BUFFER_SUPPORTED - main->whole_image[0] = NULL; /* flag for no virtual arrays */ -#endif - /* Allocate a strip buffer for each component */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - main->buffer[ci] = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - compptr->width_in_blocks * DCTSIZE, - (JDIMENSION) (compptr->v_samp_factor * DCTSIZE)); - } - } -} diff --git a/src/jpeg/jcmarker.c b/src/jpeg/jcmarker.c deleted file mode 100644 index 3d1e6c6d52..0000000000 --- a/src/jpeg/jcmarker.c +++ /dev/null @@ -1,664 +0,0 @@ -/* - * jcmarker.c - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains routines to write JPEG datastream markers. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -typedef enum { /* JPEG marker codes */ - M_SOF0 = 0xc0, - M_SOF1 = 0xc1, - M_SOF2 = 0xc2, - M_SOF3 = 0xc3, - - M_SOF5 = 0xc5, - M_SOF6 = 0xc6, - M_SOF7 = 0xc7, - - M_JPG = 0xc8, - M_SOF9 = 0xc9, - M_SOF10 = 0xca, - M_SOF11 = 0xcb, - - M_SOF13 = 0xcd, - M_SOF14 = 0xce, - M_SOF15 = 0xcf, - - M_DHT = 0xc4, - - M_DAC = 0xcc, - - M_RST0 = 0xd0, - M_RST1 = 0xd1, - M_RST2 = 0xd2, - M_RST3 = 0xd3, - M_RST4 = 0xd4, - M_RST5 = 0xd5, - M_RST6 = 0xd6, - M_RST7 = 0xd7, - - M_SOI = 0xd8, - M_EOI = 0xd9, - M_SOS = 0xda, - M_DQT = 0xdb, - M_DNL = 0xdc, - M_DRI = 0xdd, - M_DHP = 0xde, - M_EXP = 0xdf, - - M_APP0 = 0xe0, - M_APP1 = 0xe1, - M_APP2 = 0xe2, - M_APP3 = 0xe3, - M_APP4 = 0xe4, - M_APP5 = 0xe5, - M_APP6 = 0xe6, - M_APP7 = 0xe7, - M_APP8 = 0xe8, - M_APP9 = 0xe9, - M_APP10 = 0xea, - M_APP11 = 0xeb, - M_APP12 = 0xec, - M_APP13 = 0xed, - M_APP14 = 0xee, - M_APP15 = 0xef, - - M_JPG0 = 0xf0, - M_JPG13 = 0xfd, - M_COM = 0xfe, - - M_TEM = 0x01, - - M_ERROR = 0x100 -} JPEG_MARKER; - - -/* Private state */ - -typedef struct { - struct jpeg_marker_writer pub; /* public fields */ - - unsigned int last_restart_interval; /* last DRI value emitted; 0 after SOI */ -} my_marker_writer; - -typedef my_marker_writer * my_marker_ptr; - - -/* - * Basic output routines. - * - * Note that we do not support suspension while writing a marker. - * Therefore, an application using suspension must ensure that there is - * enough buffer space for the initial markers (typ. 600-700 bytes) before - * calling jpeg_start_compress, and enough space to write the trailing EOI - * (a few bytes) before calling jpeg_finish_compress. Multipass compression - * modes are not supported at all with suspension, so those two are the only - * points where markers will be written. - */ - -LOCAL(void) -emit_byte (j_compress_ptr cinfo, int val) -/* Emit a byte */ -{ - struct jpeg_destination_mgr * dest = cinfo->dest; - - *(dest->next_output_byte)++ = (JOCTET) val; - if (--dest->free_in_buffer == 0) { - if (! (*dest->empty_output_buffer) (cinfo)) - ERREXIT(cinfo, JERR_CANT_SUSPEND); - } -} - - -LOCAL(void) -emit_marker (j_compress_ptr cinfo, JPEG_MARKER mark) -/* Emit a marker code */ -{ - emit_byte(cinfo, 0xFF); - emit_byte(cinfo, (int) mark); -} - - -LOCAL(void) -emit_2bytes (j_compress_ptr cinfo, int value) -/* Emit a 2-byte integer; these are always MSB first in JPEG files */ -{ - emit_byte(cinfo, (value >> 8) & 0xFF); - emit_byte(cinfo, value & 0xFF); -} - - -/* - * Routines to write specific marker types. - */ - -LOCAL(int) -emit_dqt (j_compress_ptr cinfo, int index) -/* Emit a DQT marker */ -/* Returns the precision used (0 = 8bits, 1 = 16bits) for baseline checking */ -{ - JQUANT_TBL * qtbl = cinfo->quant_tbl_ptrs[index]; - int prec; - int i; - - if (qtbl == NULL) - ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, index); - - prec = 0; - for (i = 0; i < DCTSIZE2; i++) { - if (qtbl->quantval[i] > 255) - prec = 1; - } - - if (! qtbl->sent_table) { - emit_marker(cinfo, M_DQT); - - emit_2bytes(cinfo, prec ? DCTSIZE2*2 + 1 + 2 : DCTSIZE2 + 1 + 2); - - emit_byte(cinfo, index + (prec<<4)); - - for (i = 0; i < DCTSIZE2; i++) { - /* The table entries must be emitted in zigzag order. */ - unsigned int qval = qtbl->quantval[jpeg_natural_order[i]]; - if (prec) - emit_byte(cinfo, (int) (qval >> 8)); - emit_byte(cinfo, (int) (qval & 0xFF)); - } - - qtbl->sent_table = TRUE; - } - - return prec; -} - - -LOCAL(void) -emit_dht (j_compress_ptr cinfo, int index, boolean is_ac) -/* Emit a DHT marker */ -{ - JHUFF_TBL * htbl; - int length, i; - - if (is_ac) { - htbl = cinfo->ac_huff_tbl_ptrs[index]; - index += 0x10; /* output index has AC bit set */ - } else { - htbl = cinfo->dc_huff_tbl_ptrs[index]; - } - - if (htbl == NULL) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, index); - - if (! htbl->sent_table) { - emit_marker(cinfo, M_DHT); - - length = 0; - for (i = 1; i <= 16; i++) - length += htbl->bits[i]; - - emit_2bytes(cinfo, length + 2 + 1 + 16); - emit_byte(cinfo, index); - - for (i = 1; i <= 16; i++) - emit_byte(cinfo, htbl->bits[i]); - - for (i = 0; i < length; i++) - emit_byte(cinfo, htbl->huffval[i]); - - htbl->sent_table = TRUE; - } -} - - -LOCAL(void) -emit_dac (j_compress_ptr cinfo) -/* Emit a DAC marker */ -/* Since the useful info is so small, we want to emit all the tables in */ -/* one DAC marker. Therefore this routine does its own scan of the table. */ -{ -#ifdef C_ARITH_CODING_SUPPORTED - char dc_in_use[NUM_ARITH_TBLS]; - char ac_in_use[NUM_ARITH_TBLS]; - int length, i; - jpeg_component_info *compptr; - - for (i = 0; i < NUM_ARITH_TBLS; i++) - dc_in_use[i] = ac_in_use[i] = 0; - - for (i = 0; i < cinfo->comps_in_scan; i++) { - compptr = cinfo->cur_comp_info[i]; - dc_in_use[compptr->dc_tbl_no] = 1; - ac_in_use[compptr->ac_tbl_no] = 1; - } - - length = 0; - for (i = 0; i < NUM_ARITH_TBLS; i++) - length += dc_in_use[i] + ac_in_use[i]; - - emit_marker(cinfo, M_DAC); - - emit_2bytes(cinfo, length*2 + 2); - - for (i = 0; i < NUM_ARITH_TBLS; i++) { - if (dc_in_use[i]) { - emit_byte(cinfo, i); - emit_byte(cinfo, cinfo->arith_dc_L[i] + (cinfo->arith_dc_U[i]<<4)); - } - if (ac_in_use[i]) { - emit_byte(cinfo, i + 0x10); - emit_byte(cinfo, cinfo->arith_ac_K[i]); - } - } -#endif /* C_ARITH_CODING_SUPPORTED */ -} - - -LOCAL(void) -emit_dri (j_compress_ptr cinfo) -/* Emit a DRI marker */ -{ - emit_marker(cinfo, M_DRI); - - emit_2bytes(cinfo, 4); /* fixed length */ - - emit_2bytes(cinfo, (int) cinfo->restart_interval); -} - - -LOCAL(void) -emit_sof (j_compress_ptr cinfo, JPEG_MARKER code) -/* Emit a SOF marker */ -{ - int ci; - jpeg_component_info *compptr; - - emit_marker(cinfo, code); - - emit_2bytes(cinfo, 3 * cinfo->num_components + 2 + 5 + 1); /* length */ - - /* Make sure image isn't bigger than SOF field can handle */ - if ((long) cinfo->image_height > 65535L || - (long) cinfo->image_width > 65535L) - ERREXIT1(cinfo, JERR_IMAGE_TOO_BIG, (unsigned int) 65535); - - emit_byte(cinfo, cinfo->data_precision); - emit_2bytes(cinfo, (int) cinfo->image_height); - emit_2bytes(cinfo, (int) cinfo->image_width); - - emit_byte(cinfo, cinfo->num_components); - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - emit_byte(cinfo, compptr->component_id); - emit_byte(cinfo, (compptr->h_samp_factor << 4) + compptr->v_samp_factor); - emit_byte(cinfo, compptr->quant_tbl_no); - } -} - - -LOCAL(void) -emit_sos (j_compress_ptr cinfo) -/* Emit a SOS marker */ -{ - int i, td, ta; - jpeg_component_info *compptr; - - emit_marker(cinfo, M_SOS); - - emit_2bytes(cinfo, 2 * cinfo->comps_in_scan + 2 + 1 + 3); /* length */ - - emit_byte(cinfo, cinfo->comps_in_scan); - - for (i = 0; i < cinfo->comps_in_scan; i++) { - compptr = cinfo->cur_comp_info[i]; - emit_byte(cinfo, compptr->component_id); - td = compptr->dc_tbl_no; - ta = compptr->ac_tbl_no; - if (cinfo->progressive_mode) { - /* Progressive mode: only DC or only AC tables are used in one scan; - * furthermore, Huffman coding of DC refinement uses no table at all. - * We emit 0 for unused field(s); this is recommended by the P&M text - * but does not seem to be specified in the standard. - */ - if (cinfo->Ss == 0) { - ta = 0; /* DC scan */ - if (cinfo->Ah != 0 && !cinfo->arith_code) - td = 0; /* no DC table either */ - } else { - td = 0; /* AC scan */ - } - } - emit_byte(cinfo, (td << 4) + ta); - } - - emit_byte(cinfo, cinfo->Ss); - emit_byte(cinfo, cinfo->Se); - emit_byte(cinfo, (cinfo->Ah << 4) + cinfo->Al); -} - - -LOCAL(void) -emit_jfif_app0 (j_compress_ptr cinfo) -/* Emit a JFIF-compliant APP0 marker */ -{ - /* - * Length of APP0 block (2 bytes) - * Block ID (4 bytes - ASCII "JFIF") - * Zero byte (1 byte to terminate the ID string) - * Version Major, Minor (2 bytes - major first) - * Units (1 byte - 0x00 = none, 0x01 = inch, 0x02 = cm) - * Xdpu (2 bytes - dots per unit horizontal) - * Ydpu (2 bytes - dots per unit vertical) - * Thumbnail X size (1 byte) - * Thumbnail Y size (1 byte) - */ - - emit_marker(cinfo, M_APP0); - - emit_2bytes(cinfo, 2 + 4 + 1 + 2 + 1 + 2 + 2 + 1 + 1); /* length */ - - emit_byte(cinfo, 0x4A); /* Identifier: ASCII "JFIF" */ - emit_byte(cinfo, 0x46); - emit_byte(cinfo, 0x49); - emit_byte(cinfo, 0x46); - emit_byte(cinfo, 0); - emit_byte(cinfo, cinfo->JFIF_major_version); /* Version fields */ - emit_byte(cinfo, cinfo->JFIF_minor_version); - emit_byte(cinfo, cinfo->density_unit); /* Pixel size information */ - emit_2bytes(cinfo, (int) cinfo->X_density); - emit_2bytes(cinfo, (int) cinfo->Y_density); - emit_byte(cinfo, 0); /* No thumbnail image */ - emit_byte(cinfo, 0); -} - - -LOCAL(void) -emit_adobe_app14 (j_compress_ptr cinfo) -/* Emit an Adobe APP14 marker */ -{ - /* - * Length of APP14 block (2 bytes) - * Block ID (5 bytes - ASCII "Adobe") - * Version Number (2 bytes - currently 100) - * Flags0 (2 bytes - currently 0) - * Flags1 (2 bytes - currently 0) - * Color transform (1 byte) - * - * Although Adobe TN 5116 mentions Version = 101, all the Adobe files - * now in circulation seem to use Version = 100, so that's what we write. - * - * We write the color transform byte as 1 if the JPEG color space is - * YCbCr, 2 if it's YCCK, 0 otherwise. Adobe's definition has to do with - * whether the encoder performed a transformation, which is pretty useless. - */ - - emit_marker(cinfo, M_APP14); - - emit_2bytes(cinfo, 2 + 5 + 2 + 2 + 2 + 1); /* length */ - - emit_byte(cinfo, 0x41); /* Identifier: ASCII "Adobe" */ - emit_byte(cinfo, 0x64); - emit_byte(cinfo, 0x6F); - emit_byte(cinfo, 0x62); - emit_byte(cinfo, 0x65); - emit_2bytes(cinfo, 100); /* Version */ - emit_2bytes(cinfo, 0); /* Flags0 */ - emit_2bytes(cinfo, 0); /* Flags1 */ - switch (cinfo->jpeg_color_space) { - case JCS_YCbCr: - emit_byte(cinfo, 1); /* Color transform = 1 */ - break; - case JCS_YCCK: - emit_byte(cinfo, 2); /* Color transform = 2 */ - break; - default: - emit_byte(cinfo, 0); /* Color transform = 0 */ - break; - } -} - - -/* - * These routines allow writing an arbitrary marker with parameters. - * The only intended use is to emit COM or APPn markers after calling - * write_file_header and before calling write_frame_header. - * Other uses are not guaranteed to produce desirable results. - * Counting the parameter bytes properly is the caller's responsibility. - */ - -METHODDEF(void) -write_marker_header (j_compress_ptr cinfo, int marker, unsigned int datalen) -/* Emit an arbitrary marker header */ -{ - if (datalen > (unsigned int) 65533) /* safety check */ - ERREXIT(cinfo, JERR_BAD_LENGTH); - - emit_marker(cinfo, (JPEG_MARKER) marker); - - emit_2bytes(cinfo, (int) (datalen + 2)); /* total length */ -} - -METHODDEF(void) -write_marker_byte (j_compress_ptr cinfo, int val) -/* Emit one byte of marker parameters following write_marker_header */ -{ - emit_byte(cinfo, val); -} - - -/* - * Write datastream header. - * This consists of an SOI and optional APPn markers. - * We recommend use of the JFIF marker, but not the Adobe marker, - * when using YCbCr or grayscale data. The JFIF marker should NOT - * be used for any other JPEG colorspace. The Adobe marker is helpful - * to distinguish RGB, CMYK, and YCCK colorspaces. - * Note that an application can write additional header markers after - * jpeg_start_compress returns. - */ - -METHODDEF(void) -write_file_header (j_compress_ptr cinfo) -{ - my_marker_ptr marker = (my_marker_ptr) cinfo->marker; - - emit_marker(cinfo, M_SOI); /* first the SOI */ - - /* SOI is defined to reset restart interval to 0 */ - marker->last_restart_interval = 0; - - if (cinfo->write_JFIF_header) /* next an optional JFIF APP0 */ - emit_jfif_app0(cinfo); - if (cinfo->write_Adobe_marker) /* next an optional Adobe APP14 */ - emit_adobe_app14(cinfo); -} - - -/* - * Write frame header. - * This consists of DQT and SOFn markers. - * Note that we do not emit the SOF until we have emitted the DQT(s). - * This avoids compatibility problems with incorrect implementations that - * try to error-check the quant table numbers as soon as they see the SOF. - */ - -METHODDEF(void) -write_frame_header (j_compress_ptr cinfo) -{ - int ci, prec; - boolean is_baseline; - jpeg_component_info *compptr; - - /* Emit DQT for each quantization table. - * Note that emit_dqt() suppresses any duplicate tables. - */ - prec = 0; - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - prec += emit_dqt(cinfo, compptr->quant_tbl_no); - } - /* now prec is nonzero iff there are any 16-bit quant tables. */ - - /* Check for a non-baseline specification. - * Note we assume that Huffman table numbers won't be changed later. - */ - if (cinfo->arith_code || cinfo->progressive_mode || - cinfo->data_precision != 8) { - is_baseline = FALSE; - } else { - is_baseline = TRUE; - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - if (compptr->dc_tbl_no > 1 || compptr->ac_tbl_no > 1) - is_baseline = FALSE; - } - if (prec && is_baseline) { - is_baseline = FALSE; - /* If it's baseline except for quantizer size, warn the user */ - TRACEMS(cinfo, 0, JTRC_16BIT_TABLES); - } - } - - /* Emit the proper SOF marker */ - if (cinfo->arith_code) { - emit_sof(cinfo, M_SOF9); /* SOF code for arithmetic coding */ - } else { - if (cinfo->progressive_mode) - emit_sof(cinfo, M_SOF2); /* SOF code for progressive Huffman */ - else if (is_baseline) - emit_sof(cinfo, M_SOF0); /* SOF code for baseline implementation */ - else - emit_sof(cinfo, M_SOF1); /* SOF code for non-baseline Huffman file */ - } -} - - -/* - * Write scan header. - * This consists of DHT or DAC markers, optional DRI, and SOS. - * Compressed data will be written following the SOS. - */ - -METHODDEF(void) -write_scan_header (j_compress_ptr cinfo) -{ - my_marker_ptr marker = (my_marker_ptr) cinfo->marker; - int i; - jpeg_component_info *compptr; - - if (cinfo->arith_code) { - /* Emit arith conditioning info. We may have some duplication - * if the file has multiple scans, but it's so small it's hardly - * worth worrying about. - */ - emit_dac(cinfo); - } else { - /* Emit Huffman tables. - * Note that emit_dht() suppresses any duplicate tables. - */ - for (i = 0; i < cinfo->comps_in_scan; i++) { - compptr = cinfo->cur_comp_info[i]; - if (cinfo->progressive_mode) { - /* Progressive mode: only DC or only AC tables are used in one scan */ - if (cinfo->Ss == 0) { - if (cinfo->Ah == 0) /* DC needs no table for refinement scan */ - emit_dht(cinfo, compptr->dc_tbl_no, FALSE); - } else { - emit_dht(cinfo, compptr->ac_tbl_no, TRUE); - } - } else { - /* Sequential mode: need both DC and AC tables */ - emit_dht(cinfo, compptr->dc_tbl_no, FALSE); - emit_dht(cinfo, compptr->ac_tbl_no, TRUE); - } - } - } - - /* Emit DRI if required --- note that DRI value could change for each scan. - * We avoid wasting space with unnecessary DRIs, however. - */ - if (cinfo->restart_interval != marker->last_restart_interval) { - emit_dri(cinfo); - marker->last_restart_interval = cinfo->restart_interval; - } - - emit_sos(cinfo); -} - - -/* - * Write datastream trailer. - */ - -METHODDEF(void) -write_file_trailer (j_compress_ptr cinfo) -{ - emit_marker(cinfo, M_EOI); -} - - -/* - * Write an abbreviated table-specification datastream. - * This consists of SOI, DQT and DHT tables, and EOI. - * Any table that is defined and not marked sent_table = TRUE will be - * emitted. Note that all tables will be marked sent_table = TRUE at exit. - */ - -METHODDEF(void) -write_tables_only (j_compress_ptr cinfo) -{ - int i; - - emit_marker(cinfo, M_SOI); - - for (i = 0; i < NUM_QUANT_TBLS; i++) { - if (cinfo->quant_tbl_ptrs[i] != NULL) - (void) emit_dqt(cinfo, i); - } - - if (! cinfo->arith_code) { - for (i = 0; i < NUM_HUFF_TBLS; i++) { - if (cinfo->dc_huff_tbl_ptrs[i] != NULL) - emit_dht(cinfo, i, FALSE); - if (cinfo->ac_huff_tbl_ptrs[i] != NULL) - emit_dht(cinfo, i, TRUE); - } - } - - emit_marker(cinfo, M_EOI); -} - - -/* - * Initialize the marker writer module. - */ - -GLOBAL(void) -jinit_marker_writer (j_compress_ptr cinfo) -{ - my_marker_ptr marker; - - /* Create the subobject */ - marker = (my_marker_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_marker_writer)); - cinfo->marker = (struct jpeg_marker_writer *) marker; - /* Initialize method pointers */ - marker->pub.write_file_header = write_file_header; - marker->pub.write_frame_header = write_frame_header; - marker->pub.write_scan_header = write_scan_header; - marker->pub.write_file_trailer = write_file_trailer; - marker->pub.write_tables_only = write_tables_only; - marker->pub.write_marker_header = write_marker_header; - marker->pub.write_marker_byte = write_marker_byte; - /* Initialize private state */ - marker->last_restart_interval = 0; -} diff --git a/src/jpeg/jcmaster.c b/src/jpeg/jcmaster.c deleted file mode 100644 index aab4020b87..0000000000 --- a/src/jpeg/jcmaster.c +++ /dev/null @@ -1,590 +0,0 @@ -/* - * jcmaster.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains master control logic for the JPEG compressor. - * These routines are concerned with parameter validation, initial setup, - * and inter-pass control (determining the number of passes and the work - * to be done in each pass). - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Private state */ - -typedef enum { - main_pass, /* input data, also do first output step */ - huff_opt_pass, /* Huffman code optimization pass */ - output_pass /* data output pass */ -} c_pass_type; - -typedef struct { - struct jpeg_comp_master pub; /* public fields */ - - c_pass_type pass_type; /* the type of the current pass */ - - int pass_number; /* # of passes completed */ - int total_passes; /* total # of passes needed */ - - int scan_number; /* current index in scan_info[] */ -} my_comp_master; - -typedef my_comp_master * my_master_ptr; - - -/* - * Support routines that do various essential calculations. - */ - -LOCAL(void) -initial_setup (j_compress_ptr cinfo) -/* Do computations that are needed before master selection phase */ -{ - int ci; - jpeg_component_info *compptr; - long samplesperrow; - JDIMENSION jd_samplesperrow; - - /* Sanity check on image dimensions */ - if (cinfo->image_height <= 0 || cinfo->image_width <= 0 - || cinfo->num_components <= 0 || cinfo->input_components <= 0) - ERREXIT(cinfo, JERR_EMPTY_IMAGE); - - /* Make sure image isn't bigger than I can handle */ - if ((long) cinfo->image_height > (long) JPEG_MAX_DIMENSION || - (long) cinfo->image_width > (long) JPEG_MAX_DIMENSION) - ERREXIT1(cinfo, JERR_IMAGE_TOO_BIG, (unsigned int) JPEG_MAX_DIMENSION); - - /* Width of an input scanline must be representable as JDIMENSION. */ - samplesperrow = (long) cinfo->image_width * (long) cinfo->input_components; - jd_samplesperrow = (JDIMENSION) samplesperrow; - if ((long) jd_samplesperrow != samplesperrow) - ERREXIT(cinfo, JERR_WIDTH_OVERFLOW); - - /* For now, precision must match compiled-in value... */ - if (cinfo->data_precision != BITS_IN_JSAMPLE) - ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision); - - /* Check that number of components won't exceed internal array sizes */ - if (cinfo->num_components > MAX_COMPONENTS) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components, - MAX_COMPONENTS); - - /* Compute maximum sampling factors; check factor validity */ - cinfo->max_h_samp_factor = 1; - cinfo->max_v_samp_factor = 1; - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - if (compptr->h_samp_factor<=0 || compptr->h_samp_factor>MAX_SAMP_FACTOR || - compptr->v_samp_factor<=0 || compptr->v_samp_factor>MAX_SAMP_FACTOR) - ERREXIT(cinfo, JERR_BAD_SAMPLING); - cinfo->max_h_samp_factor = MAX(cinfo->max_h_samp_factor, - compptr->h_samp_factor); - cinfo->max_v_samp_factor = MAX(cinfo->max_v_samp_factor, - compptr->v_samp_factor); - } - - /* Compute dimensions of components */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Fill in the correct component_index value; don't rely on application */ - compptr->component_index = ci; - /* For compression, we never do DCT scaling. */ - compptr->DCT_scaled_size = DCTSIZE; - /* Size in DCT blocks */ - compptr->width_in_blocks = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width * (long) compptr->h_samp_factor, - (long) (cinfo->max_h_samp_factor * DCTSIZE)); - compptr->height_in_blocks = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height * (long) compptr->v_samp_factor, - (long) (cinfo->max_v_samp_factor * DCTSIZE)); - /* Size in samples */ - compptr->downsampled_width = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width * (long) compptr->h_samp_factor, - (long) cinfo->max_h_samp_factor); - compptr->downsampled_height = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height * (long) compptr->v_samp_factor, - (long) cinfo->max_v_samp_factor); - /* Mark component needed (this flag isn't actually used for compression) */ - compptr->component_needed = TRUE; - } - - /* Compute number of fully interleaved MCU rows (number of times that - * main controller will call coefficient controller). - */ - cinfo->total_iMCU_rows = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, - (long) (cinfo->max_v_samp_factor*DCTSIZE)); -} - - -#ifdef C_MULTISCAN_FILES_SUPPORTED - -LOCAL(void) -validate_script (j_compress_ptr cinfo) -/* Verify that the scan script in cinfo->scan_info[] is valid; also - * determine whether it uses progressive JPEG, and set cinfo->progressive_mode. - */ -{ - const jpeg_scan_info * scanptr; - int scanno, ncomps, ci, coefi, thisi; - int Ss, Se, Ah, Al; - boolean component_sent[MAX_COMPONENTS]; -#ifdef C_PROGRESSIVE_SUPPORTED - int * last_bitpos_ptr; - int last_bitpos[MAX_COMPONENTS][DCTSIZE2]; - /* -1 until that coefficient has been seen; then last Al for it */ -#endif - - if (cinfo->num_scans <= 0) - ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, 0); - - /* For sequential JPEG, all scans must have Ss=0, Se=DCTSIZE2-1; - * for progressive JPEG, no scan can have this. - */ - scanptr = cinfo->scan_info; - if (scanptr->Ss != 0 || scanptr->Se != DCTSIZE2-1) { -#ifdef C_PROGRESSIVE_SUPPORTED - cinfo->progressive_mode = TRUE; - last_bitpos_ptr = & last_bitpos[0][0]; - for (ci = 0; ci < cinfo->num_components; ci++) - for (coefi = 0; coefi < DCTSIZE2; coefi++) - *last_bitpos_ptr++ = -1; -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else { - cinfo->progressive_mode = FALSE; - for (ci = 0; ci < cinfo->num_components; ci++) - component_sent[ci] = FALSE; - } - - for (scanno = 1; scanno <= cinfo->num_scans; scanptr++, scanno++) { - /* Validate component indexes */ - ncomps = scanptr->comps_in_scan; - if (ncomps <= 0 || ncomps > MAX_COMPS_IN_SCAN) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, ncomps, MAX_COMPS_IN_SCAN); - for (ci = 0; ci < ncomps; ci++) { - thisi = scanptr->component_index[ci]; - if (thisi < 0 || thisi >= cinfo->num_components) - ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, scanno); - /* Components must appear in SOF order within each scan */ - if (ci > 0 && thisi <= scanptr->component_index[ci-1]) - ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, scanno); - } - /* Validate progression parameters */ - Ss = scanptr->Ss; - Se = scanptr->Se; - Ah = scanptr->Ah; - Al = scanptr->Al; - if (cinfo->progressive_mode) { -#ifdef C_PROGRESSIVE_SUPPORTED - /* The JPEG spec simply gives the ranges 0..13 for Ah and Al, but that - * seems wrong: the upper bound ought to depend on data precision. - * Perhaps they really meant 0..N+1 for N-bit precision. - * Here we allow 0..10 for 8-bit data; Al larger than 10 results in - * out-of-range reconstructed DC values during the first DC scan, - * which might cause problems for some decoders. - */ -#if BITS_IN_JSAMPLE == 8 -#define MAX_AH_AL 10 -#else -#define MAX_AH_AL 13 -#endif - if (Ss < 0 || Ss >= DCTSIZE2 || Se < Ss || Se >= DCTSIZE2 || - Ah < 0 || Ah > MAX_AH_AL || Al < 0 || Al > MAX_AH_AL) - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - if (Ss == 0) { - if (Se != 0) /* DC and AC together not OK */ - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - } else { - if (ncomps != 1) /* AC scans must be for only one component */ - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - } - for (ci = 0; ci < ncomps; ci++) { - last_bitpos_ptr = & last_bitpos[scanptr->component_index[ci]][0]; - if (Ss != 0 && last_bitpos_ptr[0] < 0) /* AC without prior DC scan */ - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - for (coefi = Ss; coefi <= Se; coefi++) { - if (last_bitpos_ptr[coefi] < 0) { - /* first scan of this coefficient */ - if (Ah != 0) - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - } else { - /* not first scan */ - if (Ah != last_bitpos_ptr[coefi] || Al != Ah-1) - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - } - last_bitpos_ptr[coefi] = Al; - } - } -#endif - } else { - /* For sequential JPEG, all progression parameters must be these: */ - if (Ss != 0 || Se != DCTSIZE2-1 || Ah != 0 || Al != 0) - ERREXIT1(cinfo, JERR_BAD_PROG_SCRIPT, scanno); - /* Make sure components are not sent twice */ - for (ci = 0; ci < ncomps; ci++) { - thisi = scanptr->component_index[ci]; - if (component_sent[thisi]) - ERREXIT1(cinfo, JERR_BAD_SCAN_SCRIPT, scanno); - component_sent[thisi] = TRUE; - } - } - } - - /* Now verify that everything got sent. */ - if (cinfo->progressive_mode) { -#ifdef C_PROGRESSIVE_SUPPORTED - /* For progressive mode, we only check that at least some DC data - * got sent for each component; the spec does not require that all bits - * of all coefficients be transmitted. Would it be wiser to enforce - * transmission of all coefficient bits?? - */ - for (ci = 0; ci < cinfo->num_components; ci++) { - if (last_bitpos[ci][0] < 0) - ERREXIT(cinfo, JERR_MISSING_DATA); - } -#endif - } else { - for (ci = 0; ci < cinfo->num_components; ci++) { - if (! component_sent[ci]) - ERREXIT(cinfo, JERR_MISSING_DATA); - } - } -} - -#endif /* C_MULTISCAN_FILES_SUPPORTED */ - - -LOCAL(void) -select_scan_parameters (j_compress_ptr cinfo) -/* Set up the scan parameters for the current scan */ -{ - int ci; - -#ifdef C_MULTISCAN_FILES_SUPPORTED - if (cinfo->scan_info != NULL) { - /* Prepare for current scan --- the script is already validated */ - my_master_ptr master = (my_master_ptr) cinfo->master; - const jpeg_scan_info * scanptr = cinfo->scan_info + master->scan_number; - - cinfo->comps_in_scan = scanptr->comps_in_scan; - for (ci = 0; ci < scanptr->comps_in_scan; ci++) { - cinfo->cur_comp_info[ci] = - &cinfo->comp_info[scanptr->component_index[ci]]; - } - cinfo->Ss = scanptr->Ss; - cinfo->Se = scanptr->Se; - cinfo->Ah = scanptr->Ah; - cinfo->Al = scanptr->Al; - } - else -#endif - { - /* Prepare for single sequential-JPEG scan containing all components */ - if (cinfo->num_components > MAX_COMPS_IN_SCAN) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components, - MAX_COMPS_IN_SCAN); - cinfo->comps_in_scan = cinfo->num_components; - for (ci = 0; ci < cinfo->num_components; ci++) { - cinfo->cur_comp_info[ci] = &cinfo->comp_info[ci]; - } - cinfo->Ss = 0; - cinfo->Se = DCTSIZE2-1; - cinfo->Ah = 0; - cinfo->Al = 0; - } -} - - -LOCAL(void) -per_scan_setup (j_compress_ptr cinfo) -/* Do computations that are needed before processing a JPEG scan */ -/* cinfo->comps_in_scan and cinfo->cur_comp_info[] are already set */ -{ - int ci, mcublks, tmp; - jpeg_component_info *compptr; - - if (cinfo->comps_in_scan == 1) { - - /* Noninterleaved (single-component) scan */ - compptr = cinfo->cur_comp_info[0]; - - /* Overall image size in MCUs */ - cinfo->MCUs_per_row = compptr->width_in_blocks; - cinfo->MCU_rows_in_scan = compptr->height_in_blocks; - - /* For noninterleaved scan, always one block per MCU */ - compptr->MCU_width = 1; - compptr->MCU_height = 1; - compptr->MCU_blocks = 1; - compptr->MCU_sample_width = DCTSIZE; - compptr->last_col_width = 1; - /* For noninterleaved scans, it is convenient to define last_row_height - * as the number of block rows present in the last iMCU row. - */ - tmp = (int) (compptr->height_in_blocks % compptr->v_samp_factor); - if (tmp == 0) tmp = compptr->v_samp_factor; - compptr->last_row_height = tmp; - - /* Prepare array describing MCU composition */ - cinfo->blocks_in_MCU = 1; - cinfo->MCU_membership[0] = 0; - - } else { - - /* Interleaved (multi-component) scan */ - if (cinfo->comps_in_scan <= 0 || cinfo->comps_in_scan > MAX_COMPS_IN_SCAN) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->comps_in_scan, - MAX_COMPS_IN_SCAN); - - /* Overall image size in MCUs */ - cinfo->MCUs_per_row = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width, - (long) (cinfo->max_h_samp_factor*DCTSIZE)); - cinfo->MCU_rows_in_scan = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, - (long) (cinfo->max_v_samp_factor*DCTSIZE)); - - cinfo->blocks_in_MCU = 0; - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - /* Sampling factors give # of blocks of component in each MCU */ - compptr->MCU_width = compptr->h_samp_factor; - compptr->MCU_height = compptr->v_samp_factor; - compptr->MCU_blocks = compptr->MCU_width * compptr->MCU_height; - compptr->MCU_sample_width = compptr->MCU_width * DCTSIZE; - /* Figure number of non-dummy blocks in last MCU column & row */ - tmp = (int) (compptr->width_in_blocks % compptr->MCU_width); - if (tmp == 0) tmp = compptr->MCU_width; - compptr->last_col_width = tmp; - tmp = (int) (compptr->height_in_blocks % compptr->MCU_height); - if (tmp == 0) tmp = compptr->MCU_height; - compptr->last_row_height = tmp; - /* Prepare array describing MCU composition */ - mcublks = compptr->MCU_blocks; - if (cinfo->blocks_in_MCU + mcublks > C_MAX_BLOCKS_IN_MCU) - ERREXIT(cinfo, JERR_BAD_MCU_SIZE); - while (mcublks-- > 0) { - cinfo->MCU_membership[cinfo->blocks_in_MCU++] = ci; - } - } - - } - - /* Convert restart specified in rows to actual MCU count. */ - /* Note that count must fit in 16 bits, so we provide limiting. */ - if (cinfo->restart_in_rows > 0) { - long nominal = (long) cinfo->restart_in_rows * (long) cinfo->MCUs_per_row; - cinfo->restart_interval = (unsigned int) MIN(nominal, 65535L); - } -} - - -/* - * Per-pass setup. - * This is called at the beginning of each pass. We determine which modules - * will be active during this pass and give them appropriate start_pass calls. - * We also set is_last_pass to indicate whether any more passes will be - * required. - */ - -METHODDEF(void) -prepare_for_pass (j_compress_ptr cinfo) -{ - my_master_ptr master = (my_master_ptr) cinfo->master; - - switch (master->pass_type) { - case main_pass: - /* Initial pass: will collect input data, and do either Huffman - * optimization or data output for the first scan. - */ - select_scan_parameters(cinfo); - per_scan_setup(cinfo); - if (! cinfo->raw_data_in) { - (*cinfo->cconvert->start_pass) (cinfo); - (*cinfo->downsample->start_pass) (cinfo); - (*cinfo->prep->start_pass) (cinfo, JBUF_PASS_THRU); - } - (*cinfo->fdct->start_pass) (cinfo); - (*cinfo->entropy->start_pass) (cinfo, cinfo->optimize_coding); - (*cinfo->coef->start_pass) (cinfo, - (master->total_passes > 1 ? - JBUF_SAVE_AND_PASS : JBUF_PASS_THRU)); - (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU); - if (cinfo->optimize_coding) { - /* No immediate data output; postpone writing frame/scan headers */ - master->pub.call_pass_startup = FALSE; - } else { - /* Will write frame/scan headers at first jpeg_write_scanlines call */ - master->pub.call_pass_startup = TRUE; - } - break; -#ifdef ENTROPY_OPT_SUPPORTED - case huff_opt_pass: - /* Do Huffman optimization for a scan after the first one. */ - select_scan_parameters(cinfo); - per_scan_setup(cinfo); - if (cinfo->Ss != 0 || cinfo->Ah == 0 || cinfo->arith_code) { - (*cinfo->entropy->start_pass) (cinfo, TRUE); - (*cinfo->coef->start_pass) (cinfo, JBUF_CRANK_DEST); - master->pub.call_pass_startup = FALSE; - break; - } - /* Special case: Huffman DC refinement scans need no Huffman table - * and therefore we can skip the optimization pass for them. - */ - master->pass_type = output_pass; - master->pass_number++; - /*FALLTHROUGH*/ -#endif - case output_pass: - /* Do a data-output pass. */ - /* We need not repeat per-scan setup if prior optimization pass did it. */ - if (! cinfo->optimize_coding) { - select_scan_parameters(cinfo); - per_scan_setup(cinfo); - } - (*cinfo->entropy->start_pass) (cinfo, FALSE); - (*cinfo->coef->start_pass) (cinfo, JBUF_CRANK_DEST); - /* We emit frame/scan headers now */ - if (master->scan_number == 0) - (*cinfo->marker->write_frame_header) (cinfo); - (*cinfo->marker->write_scan_header) (cinfo); - master->pub.call_pass_startup = FALSE; - break; - default: - ERREXIT(cinfo, JERR_NOT_COMPILED); - } - - master->pub.is_last_pass = (master->pass_number == master->total_passes-1); - - /* Set up progress monitor's pass info if present */ - if (cinfo->progress != NULL) { - cinfo->progress->completed_passes = master->pass_number; - cinfo->progress->total_passes = master->total_passes; - } -} - - -/* - * Special start-of-pass hook. - * This is called by jpeg_write_scanlines if call_pass_startup is TRUE. - * In single-pass processing, we need this hook because we don't want to - * write frame/scan headers during jpeg_start_compress; we want to let the - * application write COM markers etc. between jpeg_start_compress and the - * jpeg_write_scanlines loop. - * In multi-pass processing, this routine is not used. - */ - -METHODDEF(void) -pass_startup (j_compress_ptr cinfo) -{ - cinfo->master->call_pass_startup = FALSE; /* reset flag so call only once */ - - (*cinfo->marker->write_frame_header) (cinfo); - (*cinfo->marker->write_scan_header) (cinfo); -} - - -/* - * Finish up at end of pass. - */ - -METHODDEF(void) -finish_pass_master (j_compress_ptr cinfo) -{ - my_master_ptr master = (my_master_ptr) cinfo->master; - - /* The entropy coder always needs an end-of-pass call, - * either to analyze statistics or to flush its output buffer. - */ - (*cinfo->entropy->finish_pass) (cinfo); - - /* Update state for next pass */ - switch (master->pass_type) { - case main_pass: - /* next pass is either output of scan 0 (after optimization) - * or output of scan 1 (if no optimization). - */ - master->pass_type = output_pass; - if (! cinfo->optimize_coding) - master->scan_number++; - break; - case huff_opt_pass: - /* next pass is always output of current scan */ - master->pass_type = output_pass; - break; - case output_pass: - /* next pass is either optimization or output of next scan */ - if (cinfo->optimize_coding) - master->pass_type = huff_opt_pass; - master->scan_number++; - break; - } - - master->pass_number++; -} - - -/* - * Initialize master compression control. - */ - -GLOBAL(void) -jinit_c_master_control (j_compress_ptr cinfo, boolean transcode_only) -{ - my_master_ptr master; - - master = (my_master_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_comp_master)); - cinfo->master = (struct jpeg_comp_master *) master; - master->pub.prepare_for_pass = prepare_for_pass; - master->pub.pass_startup = pass_startup; - master->pub.finish_pass = finish_pass_master; - master->pub.is_last_pass = FALSE; - - /* Validate parameters, determine derived values */ - initial_setup(cinfo); - - if (cinfo->scan_info != NULL) { -#ifdef C_MULTISCAN_FILES_SUPPORTED - validate_script(cinfo); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else { - cinfo->progressive_mode = FALSE; - cinfo->num_scans = 1; - } - - if (cinfo->progressive_mode) /* TEMPORARY HACK ??? */ - cinfo->optimize_coding = TRUE; /* assume default tables no good for progressive mode */ - - /* Initialize my private state */ - if (transcode_only) { - /* no main pass in transcoding */ - if (cinfo->optimize_coding) - master->pass_type = huff_opt_pass; - else - master->pass_type = output_pass; - } else { - /* for normal compression, first pass is always this type: */ - master->pass_type = main_pass; - } - master->scan_number = 0; - master->pass_number = 0; - if (cinfo->optimize_coding) - master->total_passes = cinfo->num_scans * 2; - else - master->total_passes = cinfo->num_scans; -} diff --git a/src/jpeg/jcomapi.c b/src/jpeg/jcomapi.c deleted file mode 100644 index 9b1fa7568a..0000000000 --- a/src/jpeg/jcomapi.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * jcomapi.c - * - * Copyright (C) 1994-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains application interface routines that are used for both - * compression and decompression. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * Abort processing of a JPEG compression or decompression operation, - * but don't destroy the object itself. - * - * For this, we merely clean up all the nonpermanent memory pools. - * Note that temp files (virtual arrays) are not allowed to belong to - * the permanent pool, so we will be able to close all temp files here. - * Closing a data source or destination, if necessary, is the application's - * responsibility. - */ - -GLOBAL(void) -jpeg_abort (j_common_ptr cinfo) -{ - int pool; - - /* Do nothing if called on a not-initialized or destroyed JPEG object. */ - if (cinfo->mem == NULL) - return; - - /* Releasing pools in reverse order might help avoid fragmentation - * with some (brain-damaged) malloc libraries. - */ - for (pool = JPOOL_NUMPOOLS-1; pool > JPOOL_PERMANENT; pool--) { - (*cinfo->mem->free_pool) (cinfo, pool); - } - - /* Reset overall state for possible reuse of object */ - if (cinfo->is_decompressor) { - cinfo->global_state = DSTATE_START; - /* Try to keep application from accessing now-deleted marker list. - * A bit kludgy to do it here, but this is the most central place. - */ - ((j_decompress_ptr) cinfo)->marker_list = NULL; - } else { - cinfo->global_state = CSTATE_START; - } -} - - -/* - * Destruction of a JPEG object. - * - * Everything gets deallocated except the master jpeg_compress_struct itself - * and the error manager struct. Both of these are supplied by the application - * and must be freed, if necessary, by the application. (Often they are on - * the stack and so don't need to be freed anyway.) - * Closing a data source or destination, if necessary, is the application's - * responsibility. - */ - -GLOBAL(void) -jpeg_destroy (j_common_ptr cinfo) -{ - /* We need only tell the memory manager to release everything. */ - /* NB: mem pointer is NULL if memory mgr failed to initialize. */ - if (cinfo->mem != NULL) - (*cinfo->mem->self_destruct) (cinfo); - cinfo->mem = NULL; /* be safe if jpeg_destroy is called twice */ - cinfo->global_state = 0; /* mark it destroyed */ -} - - -/* - * Convenience routines for allocating quantization and Huffman tables. - * (Would jutils.c be a more reasonable place to put these?) - */ - -GLOBAL(JQUANT_TBL *) -jpeg_alloc_quant_table (j_common_ptr cinfo) -{ - JQUANT_TBL *tbl; - - tbl = (JQUANT_TBL *) - (*cinfo->mem->alloc_small) (cinfo, JPOOL_PERMANENT, SIZEOF(JQUANT_TBL)); - tbl->sent_table = FALSE; /* make sure this is false in any new table */ - return tbl; -} - - -GLOBAL(JHUFF_TBL *) -jpeg_alloc_huff_table (j_common_ptr cinfo) -{ - JHUFF_TBL *tbl; - - tbl = (JHUFF_TBL *) - (*cinfo->mem->alloc_small) (cinfo, JPOOL_PERMANENT, SIZEOF(JHUFF_TBL)); - tbl->sent_table = FALSE; /* make sure this is false in any new table */ - return tbl; -} diff --git a/src/jpeg/jconfig.h b/src/jpeg/jconfig.h deleted file mode 100644 index 2bf765bb68..0000000000 --- a/src/jpeg/jconfig.h +++ /dev/null @@ -1,73 +0,0 @@ -/* This test added by JACS as a quick fix. What should we do - * to make it work with configure? - */ - -#if defined(_MSC_VER) || defined(__BORLANDC__) -#include "jconfig.vc" -#else - -/* jconfig.h. Generated automatically by configure. */ -/* jconfig.cfg --- source file edited by configure script */ -/* see jconfig.doc for explanations */ - -/* use wxWindows' configure */ -#include "wx/setup.h" - -#define HAVE_PROTOTYPES -#define HAVE_UNSIGNED_CHAR -#define HAVE_UNSIGNED_SHORT -#undef void -#undef const - -/* use wxWindows' configure */ -/* #undef CHAR_IS_UNSIGNED */ -#ifdef __CHAR_UNSIGNED__ - #ifndef CHAR_IS_UNSIGNED - #define CHAR_IS_UNSIGNED - #endif -#else - #undef CHAR_IS_UNSIGNED -#endif - -#define HAVE_STDDEF_H -#define HAVE_STDLIB_H -#undef NEED_BSD_STRINGS -#undef NEED_SYS_TYPES_H -#undef NEED_FAR_POINTERS -#undef NEED_SHORT_EXTERNAL_NAMES -/* Define this if you get warnings about undefined structures. */ -#undef INCOMPLETE_TYPES_BROKEN - -#ifdef JPEG_INTERNALS - -#undef RIGHT_SHIFT_IS_UNSIGNED - -/* use wxWindows' configure */ -/* #define INLINE __inline__ */ -#define INLINE inline - -/* These are for configuring the JPEG memory manager. */ -#undef DEFAULT_MAX_MEM -#undef NO_MKTEMP - -#endif /* JPEG_INTERNALS */ - -#ifdef JPEG_CJPEG_DJPEG - -#define BMP_SUPPORTED /* BMP image file format */ -#define GIF_SUPPORTED /* GIF image file format */ -#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ -#undef RLE_SUPPORTED /* Utah RLE image file format */ -#define TARGA_SUPPORTED /* Targa image file format */ - -#undef TWO_FILE_COMMANDLINE -#undef NEED_SIGNAL_CATCHER -#undef DONT_USE_B_MODE - -/* Define this if you want percent-done progress reports from cjpeg/djpeg. */ -#undef PROGRESS_REPORT - -#endif /* JPEG_CJPEG_DJPEG */ -#endif - /* _MSC_VER */ - diff --git a/src/jpeg/jconfig.vc b/src/jpeg/jconfig.vc deleted file mode 100644 index 7e291c75bd..0000000000 --- a/src/jpeg/jconfig.vc +++ /dev/null @@ -1,45 +0,0 @@ -/* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 95 or NT. */ -/* see jconfig.doc for explanations */ - -#define HAVE_PROTOTYPES -#define HAVE_UNSIGNED_CHAR -#define HAVE_UNSIGNED_SHORT -/* #define void char */ -/* #define const */ -#undef CHAR_IS_UNSIGNED -#define HAVE_STDDEF_H -#define HAVE_STDLIB_H -#undef NEED_BSD_STRINGS -#undef NEED_SYS_TYPES_H -#undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ -#undef NEED_SHORT_EXTERNAL_NAMES -#undef INCOMPLETE_TYPES_BROKEN - -/* Define "boolean" as unsigned char, not int, per Windows custom */ -#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ -typedef unsigned char boolean; -#endif -#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ - - -#ifdef JPEG_INTERNALS - -#undef RIGHT_SHIFT_IS_UNSIGNED - -#endif /* JPEG_INTERNALS */ - -#ifdef JPEG_CJPEG_DJPEG - -#define BMP_SUPPORTED /* BMP image file format */ -#define GIF_SUPPORTED /* GIF image file format */ -#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ -#undef RLE_SUPPORTED /* Utah RLE image file format */ -#define TARGA_SUPPORTED /* Targa image file format */ - -#define TWO_FILE_COMMANDLINE /* optional */ -#define USE_SETMODE /* Microsoft has setmode() */ -#undef NEED_SIGNAL_CATCHER -#undef DONT_USE_B_MODE -#undef PROGRESS_REPORT /* optional */ - -#endif /* JPEG_CJPEG_DJPEG */ diff --git a/src/jpeg/jcparam.c b/src/jpeg/jcparam.c deleted file mode 100644 index 6fc48f5365..0000000000 --- a/src/jpeg/jcparam.c +++ /dev/null @@ -1,610 +0,0 @@ -/* - * jcparam.c - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains optional default-setting code for the JPEG compressor. - * Applications do not have to use this file, but those that don't use it - * must know a lot more about the innards of the JPEG code. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * Quantization table setup routines - */ - -GLOBAL(void) -jpeg_add_quant_table (j_compress_ptr cinfo, int which_tbl, - const unsigned int *basic_table, - int scale_factor, boolean force_baseline) -/* Define a quantization table equal to the basic_table times - * a scale factor (given as a percentage). - * If force_baseline is TRUE, the computed quantization table entries - * are limited to 1..255 for JPEG baseline compatibility. - */ -{ - JQUANT_TBL ** qtblptr; - int i; - long temp; - - /* Safety check to ensure start_compress not called yet. */ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - if (which_tbl < 0 || which_tbl >= NUM_QUANT_TBLS) - ERREXIT1(cinfo, JERR_DQT_INDEX, which_tbl); - - qtblptr = & cinfo->quant_tbl_ptrs[which_tbl]; - - if (*qtblptr == NULL) - *qtblptr = jpeg_alloc_quant_table((j_common_ptr) cinfo); - - for (i = 0; i < DCTSIZE2; i++) { - temp = ((long) basic_table[i] * scale_factor + 50L) / 100L; - /* limit the values to the valid range */ - if (temp <= 0L) temp = 1L; - if (temp > 32767L) temp = 32767L; /* max quantizer needed for 12 bits */ - if (force_baseline && temp > 255L) - temp = 255L; /* limit to baseline range if requested */ - (*qtblptr)->quantval[i] = (UINT16) temp; - } - - /* Initialize sent_table FALSE so table will be written to JPEG file. */ - (*qtblptr)->sent_table = FALSE; -} - - -GLOBAL(void) -jpeg_set_linear_quality (j_compress_ptr cinfo, int scale_factor, - boolean force_baseline) -/* Set or change the 'quality' (quantization) setting, using default tables - * and a straight percentage-scaling quality scale. In most cases it's better - * to use jpeg_set_quality (below); this entry point is provided for - * applications that insist on a linear percentage scaling. - */ -{ - /* These are the sample quantization tables given in JPEG spec section K.1. - * The spec says that the values given produce "good" quality, and - * when divided by 2, "very good" quality. - */ - static const unsigned int std_luminance_quant_tbl[DCTSIZE2] = { - 16, 11, 10, 16, 24, 40, 51, 61, - 12, 12, 14, 19, 26, 58, 60, 55, - 14, 13, 16, 24, 40, 57, 69, 56, - 14, 17, 22, 29, 51, 87, 80, 62, - 18, 22, 37, 56, 68, 109, 103, 77, - 24, 35, 55, 64, 81, 104, 113, 92, - 49, 64, 78, 87, 103, 121, 120, 101, - 72, 92, 95, 98, 112, 100, 103, 99 - }; - static const unsigned int std_chrominance_quant_tbl[DCTSIZE2] = { - 17, 18, 24, 47, 99, 99, 99, 99, - 18, 21, 26, 66, 99, 99, 99, 99, - 24, 26, 56, 99, 99, 99, 99, 99, - 47, 66, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99, - 99, 99, 99, 99, 99, 99, 99, 99 - }; - - /* Set up two quantization tables using the specified scaling */ - jpeg_add_quant_table(cinfo, 0, std_luminance_quant_tbl, - scale_factor, force_baseline); - jpeg_add_quant_table(cinfo, 1, std_chrominance_quant_tbl, - scale_factor, force_baseline); -} - - -GLOBAL(int) -jpeg_quality_scaling (int quality) -/* Convert a user-specified quality rating to a percentage scaling factor - * for an underlying quantization table, using our recommended scaling curve. - * The input 'quality' factor should be 0 (terrible) to 100 (very good). - */ -{ - /* Safety limit on quality factor. Convert 0 to 1 to avoid zero divide. */ - if (quality <= 0) quality = 1; - if (quality > 100) quality = 100; - - /* The basic table is used as-is (scaling 100) for a quality of 50. - * Qualities 50..100 are converted to scaling percentage 200 - 2*Q; - * note that at Q=100 the scaling is 0, which will cause jpeg_add_quant_table - * to make all the table entries 1 (hence, minimum quantization loss). - * Qualities 1..50 are converted to scaling percentage 5000/Q. - */ - if (quality < 50) - quality = 5000 / quality; - else - quality = 200 - quality*2; - - return quality; -} - - -GLOBAL(void) -jpeg_set_quality (j_compress_ptr cinfo, int quality, boolean force_baseline) -/* Set or change the 'quality' (quantization) setting, using default tables. - * This is the standard quality-adjusting entry point for typical user - * interfaces; only those who want detailed control over quantization tables - * would use the preceding three routines directly. - */ -{ - /* Convert user 0-100 rating to percentage scaling */ - quality = jpeg_quality_scaling(quality); - - /* Set up standard quality tables */ - jpeg_set_linear_quality(cinfo, quality, force_baseline); -} - - -/* - * Huffman table setup routines - */ - -LOCAL(void) -add_huff_table (j_compress_ptr cinfo, - JHUFF_TBL **htblptr, const UINT8 *bits, const UINT8 *val) -/* Define a Huffman table */ -{ - int nsymbols, len; - - if (*htblptr == NULL) - *htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); - - /* Copy the number-of-symbols-of-each-code-length counts */ - MEMCOPY((*htblptr)->bits, bits, SIZEOF((*htblptr)->bits)); - - /* Validate the counts. We do this here mainly so we can copy the right - * number of symbols from the val[] array, without risking marching off - * the end of memory. jchuff.c will do a more thorough test later. - */ - nsymbols = 0; - for (len = 1; len <= 16; len++) - nsymbols += bits[len]; - if (nsymbols < 1 || nsymbols > 256) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - - MEMCOPY((*htblptr)->huffval, val, nsymbols * SIZEOF(UINT8)); - - /* Initialize sent_table FALSE so table will be written to JPEG file. */ - (*htblptr)->sent_table = FALSE; -} - - -LOCAL(void) -std_huff_tables (j_compress_ptr cinfo) -/* Set up the standard Huffman tables (cf. JPEG standard section K.3) */ -/* IMPORTANT: these are only valid for 8-bit data precision! */ -{ - static const UINT8 bits_dc_luminance[17] = - { /* 0-base */ 0, 0, 1, 5, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }; - static const UINT8 val_dc_luminance[] = - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; - - static const UINT8 bits_dc_chrominance[17] = - { /* 0-base */ 0, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }; - static const UINT8 val_dc_chrominance[] = - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }; - - static const UINT8 bits_ac_luminance[17] = - { /* 0-base */ 0, 0, 2, 1, 3, 3, 2, 4, 3, 5, 5, 4, 4, 0, 0, 1, 0x7d }; - static const UINT8 val_ac_luminance[] = - { 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, - 0x21, 0x31, 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, - 0x22, 0x71, 0x14, 0x32, 0x81, 0x91, 0xa1, 0x08, - 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 0xd1, 0xf0, - 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, - 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, - 0x29, 0x2a, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, - 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, - 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7a, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, - 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, - 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, - 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, - 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, - 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, - 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xe1, 0xe2, - 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, - 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 0xfa }; - - static const UINT8 bits_ac_chrominance[17] = - { /* 0-base */ 0, 0, 2, 1, 2, 4, 4, 3, 4, 7, 5, 4, 4, 0, 1, 2, 0x77 }; - static const UINT8 val_ac_chrominance[] = - { 0x00, 0x01, 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, - 0x31, 0x06, 0x12, 0x41, 0x51, 0x07, 0x61, 0x71, - 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 0x42, 0x91, - 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, - 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, - 0xe1, 0x25, 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, - 0x27, 0x28, 0x29, 0x2a, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, - 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7a, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, - 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 0x95, 0x96, - 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, - 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, - 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, - 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xd2, - 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, - 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, - 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, - 0xf9, 0xfa }; - - add_huff_table(cinfo, &cinfo->dc_huff_tbl_ptrs[0], - bits_dc_luminance, val_dc_luminance); - add_huff_table(cinfo, &cinfo->ac_huff_tbl_ptrs[0], - bits_ac_luminance, val_ac_luminance); - add_huff_table(cinfo, &cinfo->dc_huff_tbl_ptrs[1], - bits_dc_chrominance, val_dc_chrominance); - add_huff_table(cinfo, &cinfo->ac_huff_tbl_ptrs[1], - bits_ac_chrominance, val_ac_chrominance); -} - - -/* - * Default parameter setup for compression. - * - * Applications that don't choose to use this routine must do their - * own setup of all these parameters. Alternately, you can call this - * to establish defaults and then alter parameters selectively. This - * is the recommended approach since, if we add any new parameters, - * your code will still work (they'll be set to reasonable defaults). - */ - -GLOBAL(void) -jpeg_set_defaults (j_compress_ptr cinfo) -{ - int i; - - /* Safety check to ensure start_compress not called yet. */ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - /* Allocate comp_info array large enough for maximum component count. - * Array is made permanent in case application wants to compress - * multiple images at same param settings. - */ - if (cinfo->comp_info == NULL) - cinfo->comp_info = (jpeg_component_info *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - MAX_COMPONENTS * SIZEOF(jpeg_component_info)); - - /* Initialize everything not dependent on the color space */ - - cinfo->data_precision = BITS_IN_JSAMPLE; - /* Set up two quantization tables using default quality of 75 */ - jpeg_set_quality(cinfo, 75, TRUE); - /* Set up two Huffman tables */ - std_huff_tables(cinfo); - - /* Initialize default arithmetic coding conditioning */ - for (i = 0; i < NUM_ARITH_TBLS; i++) { - cinfo->arith_dc_L[i] = 0; - cinfo->arith_dc_U[i] = 1; - cinfo->arith_ac_K[i] = 5; - } - - /* Default is no multiple-scan output */ - cinfo->scan_info = NULL; - cinfo->num_scans = 0; - - /* Expect normal source image, not raw downsampled data */ - cinfo->raw_data_in = FALSE; - - /* Use Huffman coding, not arithmetic coding, by default */ - cinfo->arith_code = FALSE; - - /* By default, don't do extra passes to optimize entropy coding */ - cinfo->optimize_coding = FALSE; - /* The standard Huffman tables are only valid for 8-bit data precision. - * If the precision is higher, force optimization on so that usable - * tables will be computed. This test can be removed if default tables - * are supplied that are valid for the desired precision. - */ - if (cinfo->data_precision > 8) - cinfo->optimize_coding = TRUE; - - /* By default, use the simpler non-cosited sampling alignment */ - cinfo->CCIR601_sampling = FALSE; - - /* No input smoothing */ - cinfo->smoothing_factor = 0; - - /* DCT algorithm preference */ - cinfo->dct_method = JDCT_DEFAULT; - - /* No restart markers */ - cinfo->restart_interval = 0; - cinfo->restart_in_rows = 0; - - /* Fill in default JFIF marker parameters. Note that whether the marker - * will actually be written is determined by jpeg_set_colorspace. - * - * By default, the library emits JFIF version code 1.01. - * An application that wants to emit JFIF 1.02 extension markers should set - * JFIF_minor_version to 2. We could probably get away with just defaulting - * to 1.02, but there may still be some decoders in use that will complain - * about that; saying 1.01 should minimize compatibility problems. - */ - cinfo->JFIF_major_version = 1; /* Default JFIF version = 1.01 */ - cinfo->JFIF_minor_version = 1; - cinfo->density_unit = 0; /* Pixel size is unknown by default */ - cinfo->X_density = 1; /* Pixel aspect ratio is square by default */ - cinfo->Y_density = 1; - - /* Choose JPEG colorspace based on input space, set defaults accordingly */ - - jpeg_default_colorspace(cinfo); -} - - -/* - * Select an appropriate JPEG colorspace for in_color_space. - */ - -GLOBAL(void) -jpeg_default_colorspace (j_compress_ptr cinfo) -{ - switch (cinfo->in_color_space) { - case JCS_GRAYSCALE: - jpeg_set_colorspace(cinfo, JCS_GRAYSCALE); - break; - case JCS_RGB: - jpeg_set_colorspace(cinfo, JCS_YCbCr); - break; - case JCS_YCbCr: - jpeg_set_colorspace(cinfo, JCS_YCbCr); - break; - case JCS_CMYK: - jpeg_set_colorspace(cinfo, JCS_CMYK); /* By default, no translation */ - break; - case JCS_YCCK: - jpeg_set_colorspace(cinfo, JCS_YCCK); - break; - case JCS_UNKNOWN: - jpeg_set_colorspace(cinfo, JCS_UNKNOWN); - break; - default: - ERREXIT(cinfo, JERR_BAD_IN_COLORSPACE); - } -} - - -/* - * Set the JPEG colorspace, and choose colorspace-dependent default values. - */ - -GLOBAL(void) -jpeg_set_colorspace (j_compress_ptr cinfo, J_COLOR_SPACE colorspace) -{ - jpeg_component_info * compptr; - int ci; - -#define SET_COMP(index,id,hsamp,vsamp,quant,dctbl,actbl) \ - (compptr = &cinfo->comp_info[index], \ - compptr->component_id = (id), \ - compptr->h_samp_factor = (hsamp), \ - compptr->v_samp_factor = (vsamp), \ - compptr->quant_tbl_no = (quant), \ - compptr->dc_tbl_no = (dctbl), \ - compptr->ac_tbl_no = (actbl) ) - - /* Safety check to ensure start_compress not called yet. */ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - /* For all colorspaces, we use Q and Huff tables 0 for luminance components, - * tables 1 for chrominance components. - */ - - cinfo->jpeg_color_space = colorspace; - - cinfo->write_JFIF_header = FALSE; /* No marker for non-JFIF colorspaces */ - cinfo->write_Adobe_marker = FALSE; /* write no Adobe marker by default */ - - switch (colorspace) { - case JCS_GRAYSCALE: - cinfo->write_JFIF_header = TRUE; /* Write a JFIF marker */ - cinfo->num_components = 1; - /* JFIF specifies component ID 1 */ - SET_COMP(0, 1, 1,1, 0, 0,0); - break; - case JCS_RGB: - cinfo->write_Adobe_marker = TRUE; /* write Adobe marker to flag RGB */ - cinfo->num_components = 3; - SET_COMP(0, 0x52 /* 'R' */, 1,1, 0, 0,0); - SET_COMP(1, 0x47 /* 'G' */, 1,1, 0, 0,0); - SET_COMP(2, 0x42 /* 'B' */, 1,1, 0, 0,0); - break; - case JCS_YCbCr: - cinfo->write_JFIF_header = TRUE; /* Write a JFIF marker */ - cinfo->num_components = 3; - /* JFIF specifies component IDs 1,2,3 */ - /* We default to 2x2 subsamples of chrominance */ - SET_COMP(0, 1, 2,2, 0, 0,0); - SET_COMP(1, 2, 1,1, 1, 1,1); - SET_COMP(2, 3, 1,1, 1, 1,1); - break; - case JCS_CMYK: - cinfo->write_Adobe_marker = TRUE; /* write Adobe marker to flag CMYK */ - cinfo->num_components = 4; - SET_COMP(0, 0x43 /* 'C' */, 1,1, 0, 0,0); - SET_COMP(1, 0x4D /* 'M' */, 1,1, 0, 0,0); - SET_COMP(2, 0x59 /* 'Y' */, 1,1, 0, 0,0); - SET_COMP(3, 0x4B /* 'K' */, 1,1, 0, 0,0); - break; - case JCS_YCCK: - cinfo->write_Adobe_marker = TRUE; /* write Adobe marker to flag YCCK */ - cinfo->num_components = 4; - SET_COMP(0, 1, 2,2, 0, 0,0); - SET_COMP(1, 2, 1,1, 1, 1,1); - SET_COMP(2, 3, 1,1, 1, 1,1); - SET_COMP(3, 4, 2,2, 0, 0,0); - break; - case JCS_UNKNOWN: - cinfo->num_components = cinfo->input_components; - if (cinfo->num_components < 1 || cinfo->num_components > MAX_COMPONENTS) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components, - MAX_COMPONENTS); - for (ci = 0; ci < cinfo->num_components; ci++) { - SET_COMP(ci, ci, 1,1, 0, 0,0); - } - break; - default: - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - } -} - - -#ifdef C_PROGRESSIVE_SUPPORTED - -LOCAL(jpeg_scan_info *) -fill_a_scan (jpeg_scan_info * scanptr, int ci, - int Ss, int Se, int Ah, int Al) -/* Support routine: generate one scan for specified component */ -{ - scanptr->comps_in_scan = 1; - scanptr->component_index[0] = ci; - scanptr->Ss = Ss; - scanptr->Se = Se; - scanptr->Ah = Ah; - scanptr->Al = Al; - scanptr++; - return scanptr; -} - -LOCAL(jpeg_scan_info *) -fill_scans (jpeg_scan_info * scanptr, int ncomps, - int Ss, int Se, int Ah, int Al) -/* Support routine: generate one scan for each component */ -{ - int ci; - - for (ci = 0; ci < ncomps; ci++) { - scanptr->comps_in_scan = 1; - scanptr->component_index[0] = ci; - scanptr->Ss = Ss; - scanptr->Se = Se; - scanptr->Ah = Ah; - scanptr->Al = Al; - scanptr++; - } - return scanptr; -} - -LOCAL(jpeg_scan_info *) -fill_dc_scans (jpeg_scan_info * scanptr, int ncomps, int Ah, int Al) -/* Support routine: generate interleaved DC scan if possible, else N scans */ -{ - int ci; - - if (ncomps <= MAX_COMPS_IN_SCAN) { - /* Single interleaved DC scan */ - scanptr->comps_in_scan = ncomps; - for (ci = 0; ci < ncomps; ci++) - scanptr->component_index[ci] = ci; - scanptr->Ss = scanptr->Se = 0; - scanptr->Ah = Ah; - scanptr->Al = Al; - scanptr++; - } else { - /* Noninterleaved DC scan for each component */ - scanptr = fill_scans(scanptr, ncomps, 0, 0, Ah, Al); - } - return scanptr; -} - - -/* - * Create a recommended progressive-JPEG script. - * cinfo->num_components and cinfo->jpeg_color_space must be correct. - */ - -GLOBAL(void) -jpeg_simple_progression (j_compress_ptr cinfo) -{ - int ncomps = cinfo->num_components; - int nscans; - jpeg_scan_info * scanptr; - - /* Safety check to ensure start_compress not called yet. */ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - /* Figure space needed for script. Calculation must match code below! */ - if (ncomps == 3 && cinfo->jpeg_color_space == JCS_YCbCr) { - /* Custom script for YCbCr color images. */ - nscans = 10; - } else { - /* All-purpose script for other color spaces. */ - if (ncomps > MAX_COMPS_IN_SCAN) - nscans = 6 * ncomps; /* 2 DC + 4 AC scans per component */ - else - nscans = 2 + 4 * ncomps; /* 2 DC scans; 4 AC scans per component */ - } - - /* Allocate space for script. - * We need to put it in the permanent pool in case the application performs - * multiple compressions without changing the settings. To avoid a memory - * leak if jpeg_simple_progression is called repeatedly for the same JPEG - * object, we try to re-use previously allocated space, and we allocate - * enough space to handle YCbCr even if initially asked for grayscale. - */ - if (cinfo->script_space == NULL || cinfo->script_space_size < nscans) { - cinfo->script_space_size = MAX(nscans, 10); - cinfo->script_space = (jpeg_scan_info *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - cinfo->script_space_size * SIZEOF(jpeg_scan_info)); - } - scanptr = cinfo->script_space; - cinfo->scan_info = scanptr; - cinfo->num_scans = nscans; - - if (ncomps == 3 && cinfo->jpeg_color_space == JCS_YCbCr) { - /* Custom script for YCbCr color images. */ - /* Initial DC scan */ - scanptr = fill_dc_scans(scanptr, ncomps, 0, 1); - /* Initial AC scan: get some luma data out in a hurry */ - scanptr = fill_a_scan(scanptr, 0, 1, 5, 0, 2); - /* Chroma data is too small to be worth expending many scans on */ - scanptr = fill_a_scan(scanptr, 2, 1, 63, 0, 1); - scanptr = fill_a_scan(scanptr, 1, 1, 63, 0, 1); - /* Complete spectral selection for luma AC */ - scanptr = fill_a_scan(scanptr, 0, 6, 63, 0, 2); - /* Refine next bit of luma AC */ - scanptr = fill_a_scan(scanptr, 0, 1, 63, 2, 1); - /* Finish DC successive approximation */ - scanptr = fill_dc_scans(scanptr, ncomps, 1, 0); - /* Finish AC successive approximation */ - scanptr = fill_a_scan(scanptr, 2, 1, 63, 1, 0); - scanptr = fill_a_scan(scanptr, 1, 1, 63, 1, 0); - /* Luma bottom bit comes last since it's usually largest scan */ - scanptr = fill_a_scan(scanptr, 0, 1, 63, 1, 0); - } else { - /* All-purpose script for other color spaces. */ - /* Successive approximation first pass */ - scanptr = fill_dc_scans(scanptr, ncomps, 0, 1); - scanptr = fill_scans(scanptr, ncomps, 1, 5, 0, 2); - scanptr = fill_scans(scanptr, ncomps, 6, 63, 0, 2); - /* Successive approximation second pass */ - scanptr = fill_scans(scanptr, ncomps, 1, 63, 2, 1); - /* Successive approximation final pass */ - scanptr = fill_dc_scans(scanptr, ncomps, 1, 0); - scanptr = fill_scans(scanptr, ncomps, 1, 63, 1, 0); - } -} - -#endif /* C_PROGRESSIVE_SUPPORTED */ diff --git a/src/jpeg/jcphuff.c b/src/jpeg/jcphuff.c deleted file mode 100644 index 07f9178b01..0000000000 --- a/src/jpeg/jcphuff.c +++ /dev/null @@ -1,833 +0,0 @@ -/* - * jcphuff.c - * - * Copyright (C) 1995-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains Huffman entropy encoding routines for progressive JPEG. - * - * We do not support output suspension in this module, since the library - * currently does not allow multiple-scan files to be written with output - * suspension. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jchuff.h" /* Declarations shared with jchuff.c */ - -#ifdef C_PROGRESSIVE_SUPPORTED - -/* Expanded entropy encoder object for progressive Huffman encoding. */ - -typedef struct { - struct jpeg_entropy_encoder pub; /* public fields */ - - /* Mode flag: TRUE for optimization, FALSE for actual data output */ - boolean gather_statistics; - - /* Bit-level coding status. - * next_output_byte/free_in_buffer are local copies of cinfo->dest fields. - */ - JOCTET * next_output_byte; /* => next byte to write in buffer */ - size_t free_in_buffer; /* # of byte spaces remaining in buffer */ - INT32 put_buffer; /* current bit-accumulation buffer */ - int put_bits; /* # of bits now in it */ - j_compress_ptr cinfo; /* link to cinfo (needed for dump_buffer) */ - - /* Coding status for DC components */ - int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */ - - /* Coding status for AC components */ - int ac_tbl_no; /* the table number of the single component */ - unsigned int EOBRUN; /* run length of EOBs */ - unsigned int BE; /* # of buffered correction bits before MCU */ - char * bit_buffer; /* buffer for correction bits (1 per char) */ - /* packing correction bits tightly would save some space but cost time... */ - - unsigned int restarts_to_go; /* MCUs left in this restart interval */ - int next_restart_num; /* next restart number to write (0-7) */ - - /* Pointers to derived tables (these workspaces have image lifespan). - * Since any one scan codes only DC or only AC, we only need one set - * of tables, not one for DC and one for AC. - */ - c_derived_tbl * derived_tbls[NUM_HUFF_TBLS]; - - /* Statistics tables for optimization; again, one set is enough */ - long * count_ptrs[NUM_HUFF_TBLS]; -} phuff_entropy_encoder; - -typedef phuff_entropy_encoder * phuff_entropy_ptr; - -/* MAX_CORR_BITS is the number of bits the AC refinement correction-bit - * buffer can hold. Larger sizes may slightly improve compression, but - * 1000 is already well into the realm of overkill. - * The minimum safe size is 64 bits. - */ - -#define MAX_CORR_BITS 1000 /* Max # of correction bits I can buffer */ - -/* IRIGHT_SHIFT is like RIGHT_SHIFT, but works on int rather than INT32. - * We assume that int right shift is unsigned if INT32 right shift is, - * which should be safe. - */ - -#ifdef RIGHT_SHIFT_IS_UNSIGNED -#define ISHIFT_TEMPS int ishift_temp; -#define IRIGHT_SHIFT(x,shft) \ - ((ishift_temp = (x)) < 0 ? \ - (ishift_temp >> (shft)) | ((~0) << (16-(shft))) : \ - (ishift_temp >> (shft))) -#else -#define ISHIFT_TEMPS -#define IRIGHT_SHIFT(x,shft) ((x) >> (shft)) -#endif - -/* Forward declarations */ -METHODDEF(boolean) encode_mcu_DC_first JPP((j_compress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(boolean) encode_mcu_AC_first JPP((j_compress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(boolean) encode_mcu_DC_refine JPP((j_compress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(boolean) encode_mcu_AC_refine JPP((j_compress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(void) finish_pass_phuff JPP((j_compress_ptr cinfo)); -METHODDEF(void) finish_pass_gather_phuff JPP((j_compress_ptr cinfo)); - - -/* - * Initialize for a Huffman-compressed scan using progressive JPEG. - */ - -METHODDEF(void) -start_pass_phuff (j_compress_ptr cinfo, boolean gather_statistics) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - boolean is_DC_band; - int ci, tbl; - jpeg_component_info * compptr; - - entropy->cinfo = cinfo; - entropy->gather_statistics = gather_statistics; - - is_DC_band = (cinfo->Ss == 0); - - /* We assume jcmaster.c already validated the scan parameters. */ - - /* Select execution routines */ - if (cinfo->Ah == 0) { - if (is_DC_band) - entropy->pub.encode_mcu = encode_mcu_DC_first; - else - entropy->pub.encode_mcu = encode_mcu_AC_first; - } else { - if (is_DC_band) - entropy->pub.encode_mcu = encode_mcu_DC_refine; - else { - entropy->pub.encode_mcu = encode_mcu_AC_refine; - /* AC refinement needs a correction bit buffer */ - if (entropy->bit_buffer == NULL) - entropy->bit_buffer = (char *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - MAX_CORR_BITS * SIZEOF(char)); - } - } - if (gather_statistics) - entropy->pub.finish_pass = finish_pass_gather_phuff; - else - entropy->pub.finish_pass = finish_pass_phuff; - - /* Only DC coefficients may be interleaved, so cinfo->comps_in_scan = 1 - * for AC coefficients. - */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - /* Initialize DC predictions to 0 */ - entropy->last_dc_val[ci] = 0; - /* Get table index */ - if (is_DC_band) { - if (cinfo->Ah != 0) /* DC refinement needs no table */ - continue; - tbl = compptr->dc_tbl_no; - } else { - entropy->ac_tbl_no = tbl = compptr->ac_tbl_no; - } - if (gather_statistics) { - /* Check for invalid table index */ - /* (make_c_derived_tbl does this in the other path) */ - if (tbl < 0 || tbl >= NUM_HUFF_TBLS) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, tbl); - /* Allocate and zero the statistics tables */ - /* Note that jpeg_gen_optimal_table expects 257 entries in each table! */ - if (entropy->count_ptrs[tbl] == NULL) - entropy->count_ptrs[tbl] = (long *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - 257 * SIZEOF(long)); - MEMZERO(entropy->count_ptrs[tbl], 257 * SIZEOF(long)); - } else { - /* Compute derived values for Huffman table */ - /* We may do this more than once for a table, but it's not expensive */ - jpeg_make_c_derived_tbl(cinfo, is_DC_band, tbl, - & entropy->derived_tbls[tbl]); - } - } - - /* Initialize AC stuff */ - entropy->EOBRUN = 0; - entropy->BE = 0; - - /* Initialize bit buffer to empty */ - entropy->put_buffer = 0; - entropy->put_bits = 0; - - /* Initialize restart stuff */ - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num = 0; -} - - -/* Outputting bytes to the file. - * NB: these must be called only when actually outputting, - * that is, entropy->gather_statistics == FALSE. - */ - -/* Emit a byte */ -#define emit_byte(entropy,val) \ - { *(entropy)->next_output_byte++ = (JOCTET) (val); \ - if (--(entropy)->free_in_buffer == 0) \ - dump_buffer(entropy); } - - -LOCAL(void) -dump_buffer (phuff_entropy_ptr entropy) -/* Empty the output buffer; we do not support suspension in this module. */ -{ - struct jpeg_destination_mgr * dest = entropy->cinfo->dest; - - if (! (*dest->empty_output_buffer) (entropy->cinfo)) - ERREXIT(entropy->cinfo, JERR_CANT_SUSPEND); - /* After a successful buffer dump, must reset buffer pointers */ - entropy->next_output_byte = dest->next_output_byte; - entropy->free_in_buffer = dest->free_in_buffer; -} - - -/* Outputting bits to the file */ - -/* Only the right 24 bits of put_buffer are used; the valid bits are - * left-justified in this part. At most 16 bits can be passed to emit_bits - * in one call, and we never retain more than 7 bits in put_buffer - * between calls, so 24 bits are sufficient. - */ - -INLINE -LOCAL(void) -emit_bits (phuff_entropy_ptr entropy, unsigned int code, int size) -/* Emit some bits, unless we are in gather mode */ -{ - /* This routine is heavily used, so it's worth coding tightly. */ - register INT32 put_buffer = (INT32) code; - register int put_bits = entropy->put_bits; - - /* if size is 0, caller used an invalid Huffman table entry */ - if (size == 0) - ERREXIT(entropy->cinfo, JERR_HUFF_MISSING_CODE); - - if (entropy->gather_statistics) - return; /* do nothing if we're only getting stats */ - - put_buffer &= (((INT32) 1)<put_buffer; /* and merge with old buffer contents */ - - while (put_bits >= 8) { - int c = (int) ((put_buffer >> 16) & 0xFF); - - emit_byte(entropy, c); - if (c == 0xFF) { /* need to stuff a zero byte? */ - emit_byte(entropy, 0); - } - put_buffer <<= 8; - put_bits -= 8; - } - - entropy->put_buffer = put_buffer; /* update variables */ - entropy->put_bits = put_bits; -} - - -LOCAL(void) -flush_bits (phuff_entropy_ptr entropy) -{ - emit_bits(entropy, 0x7F, 7); /* fill any partial byte with ones */ - entropy->put_buffer = 0; /* and reset bit-buffer to empty */ - entropy->put_bits = 0; -} - - -/* - * Emit (or just count) a Huffman symbol. - */ - -INLINE -LOCAL(void) -emit_symbol (phuff_entropy_ptr entropy, int tbl_no, int symbol) -{ - if (entropy->gather_statistics) - entropy->count_ptrs[tbl_no][symbol]++; - else { - c_derived_tbl * tbl = entropy->derived_tbls[tbl_no]; - emit_bits(entropy, tbl->ehufco[symbol], tbl->ehufsi[symbol]); - } -} - - -/* - * Emit bits from a correction bit buffer. - */ - -LOCAL(void) -emit_buffered_bits (phuff_entropy_ptr entropy, char * bufstart, - unsigned int nbits) -{ - if (entropy->gather_statistics) - return; /* no real work */ - - while (nbits > 0) { - emit_bits(entropy, (unsigned int) (*bufstart), 1); - bufstart++; - nbits--; - } -} - - -/* - * Emit any pending EOBRUN symbol. - */ - -LOCAL(void) -emit_eobrun (phuff_entropy_ptr entropy) -{ - register int temp, nbits; - - if (entropy->EOBRUN > 0) { /* if there is any pending EOBRUN */ - temp = entropy->EOBRUN; - nbits = 0; - while ((temp >>= 1)) - nbits++; - /* safety check: shouldn't happen given limited correction-bit buffer */ - if (nbits > 14) - ERREXIT(entropy->cinfo, JERR_HUFF_MISSING_CODE); - - emit_symbol(entropy, entropy->ac_tbl_no, nbits << 4); - if (nbits) - emit_bits(entropy, entropy->EOBRUN, nbits); - - entropy->EOBRUN = 0; - - /* Emit any buffered correction bits */ - emit_buffered_bits(entropy, entropy->bit_buffer, entropy->BE); - entropy->BE = 0; - } -} - - -/* - * Emit a restart marker & resynchronize predictions. - */ - -LOCAL(void) -emit_restart (phuff_entropy_ptr entropy, int restart_num) -{ - int ci; - - emit_eobrun(entropy); - - if (! entropy->gather_statistics) { - flush_bits(entropy); - emit_byte(entropy, 0xFF); - emit_byte(entropy, JPEG_RST0 + restart_num); - } - - if (entropy->cinfo->Ss == 0) { - /* Re-initialize DC predictions to 0 */ - for (ci = 0; ci < entropy->cinfo->comps_in_scan; ci++) - entropy->last_dc_val[ci] = 0; - } else { - /* Re-initialize all AC-related fields to 0 */ - entropy->EOBRUN = 0; - entropy->BE = 0; - } -} - - -/* - * MCU encoding for DC initial scan (either spectral selection, - * or first pass of successive approximation). - */ - -METHODDEF(boolean) -encode_mcu_DC_first (j_compress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - register int temp, temp2; - register int nbits; - int blkn, ci; - int Al = cinfo->Al; - JBLOCKROW block; - jpeg_component_info * compptr; - ISHIFT_TEMPS - - entropy->next_output_byte = cinfo->dest->next_output_byte; - entropy->free_in_buffer = cinfo->dest->free_in_buffer; - - /* Emit restart marker if needed */ - if (cinfo->restart_interval) - if (entropy->restarts_to_go == 0) - emit_restart(entropy, entropy->next_restart_num); - - /* Encode the MCU data blocks */ - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - block = MCU_data[blkn]; - ci = cinfo->MCU_membership[blkn]; - compptr = cinfo->cur_comp_info[ci]; - - /* Compute the DC value after the required point transform by Al. - * This is simply an arithmetic right shift. - */ - temp2 = IRIGHT_SHIFT((int) ((*block)[0]), Al); - - /* DC differences are figured on the point-transformed values. */ - temp = temp2 - entropy->last_dc_val[ci]; - entropy->last_dc_val[ci] = temp2; - - /* Encode the DC coefficient difference per section G.1.2.1 */ - temp2 = temp; - if (temp < 0) { - temp = -temp; /* temp is abs value of input */ - /* For a negative input, want temp2 = bitwise complement of abs(input) */ - /* This code assumes we are on a two's complement machine */ - temp2--; - } - - /* Find the number of bits needed for the magnitude of the coefficient */ - nbits = 0; - while (temp) { - nbits++; - temp >>= 1; - } - /* Check for out-of-range coefficient values. - * Since we're encoding a difference, the range limit is twice as much. - */ - if (nbits > MAX_COEF_BITS+1) - ERREXIT(cinfo, JERR_BAD_DCT_COEF); - - /* Count/emit the Huffman-coded symbol for the number of bits */ - emit_symbol(entropy, compptr->dc_tbl_no, nbits); - - /* Emit that number of bits of the value, if positive, */ - /* or the complement of its magnitude, if negative. */ - if (nbits) /* emit_bits rejects calls with size 0 */ - emit_bits(entropy, (unsigned int) temp2, nbits); - } - - cinfo->dest->next_output_byte = entropy->next_output_byte; - cinfo->dest->free_in_buffer = entropy->free_in_buffer; - - /* Update restart-interval state too */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) { - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num++; - entropy->next_restart_num &= 7; - } - entropy->restarts_to_go--; - } - - return TRUE; -} - - -/* - * MCU encoding for AC initial scan (either spectral selection, - * or first pass of successive approximation). - */ - -METHODDEF(boolean) -encode_mcu_AC_first (j_compress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - register int temp, temp2; - register int nbits; - register int r, k; - int Se = cinfo->Se; - int Al = cinfo->Al; - JBLOCKROW block; - - entropy->next_output_byte = cinfo->dest->next_output_byte; - entropy->free_in_buffer = cinfo->dest->free_in_buffer; - - /* Emit restart marker if needed */ - if (cinfo->restart_interval) - if (entropy->restarts_to_go == 0) - emit_restart(entropy, entropy->next_restart_num); - - /* Encode the MCU data block */ - block = MCU_data[0]; - - /* Encode the AC coefficients per section G.1.2.2, fig. G.3 */ - - r = 0; /* r = run length of zeros */ - - for (k = cinfo->Ss; k <= Se; k++) { - if ((temp = (*block)[jpeg_natural_order[k]]) == 0) { - r++; - continue; - } - /* We must apply the point transform by Al. For AC coefficients this - * is an integer division with rounding towards 0. To do this portably - * in C, we shift after obtaining the absolute value; so the code is - * interwoven with finding the abs value (temp) and output bits (temp2). - */ - if (temp < 0) { - temp = -temp; /* temp is abs value of input */ - temp >>= Al; /* apply the point transform */ - /* For a negative coef, want temp2 = bitwise complement of abs(coef) */ - temp2 = ~temp; - } else { - temp >>= Al; /* apply the point transform */ - temp2 = temp; - } - /* Watch out for case that nonzero coef is zero after point transform */ - if (temp == 0) { - r++; - continue; - } - - /* Emit any pending EOBRUN */ - if (entropy->EOBRUN > 0) - emit_eobrun(entropy); - /* if run length > 15, must emit special run-length-16 codes (0xF0) */ - while (r > 15) { - emit_symbol(entropy, entropy->ac_tbl_no, 0xF0); - r -= 16; - } - - /* Find the number of bits needed for the magnitude of the coefficient */ - nbits = 1; /* there must be at least one 1 bit */ - while ((temp >>= 1)) - nbits++; - /* Check for out-of-range coefficient values */ - if (nbits > MAX_COEF_BITS) - ERREXIT(cinfo, JERR_BAD_DCT_COEF); - - /* Count/emit Huffman symbol for run length / number of bits */ - emit_symbol(entropy, entropy->ac_tbl_no, (r << 4) + nbits); - - /* Emit that number of bits of the value, if positive, */ - /* or the complement of its magnitude, if negative. */ - emit_bits(entropy, (unsigned int) temp2, nbits); - - r = 0; /* reset zero run length */ - } - - if (r > 0) { /* If there are trailing zeroes, */ - entropy->EOBRUN++; /* count an EOB */ - if (entropy->EOBRUN == 0x7FFF) - emit_eobrun(entropy); /* force it out to avoid overflow */ - } - - cinfo->dest->next_output_byte = entropy->next_output_byte; - cinfo->dest->free_in_buffer = entropy->free_in_buffer; - - /* Update restart-interval state too */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) { - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num++; - entropy->next_restart_num &= 7; - } - entropy->restarts_to_go--; - } - - return TRUE; -} - - -/* - * MCU encoding for DC successive approximation refinement scan. - * Note: we assume such scans can be multi-component, although the spec - * is not very clear on the point. - */ - -METHODDEF(boolean) -encode_mcu_DC_refine (j_compress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - register int temp; - int blkn; - int Al = cinfo->Al; - JBLOCKROW block; - - entropy->next_output_byte = cinfo->dest->next_output_byte; - entropy->free_in_buffer = cinfo->dest->free_in_buffer; - - /* Emit restart marker if needed */ - if (cinfo->restart_interval) - if (entropy->restarts_to_go == 0) - emit_restart(entropy, entropy->next_restart_num); - - /* Encode the MCU data blocks */ - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - block = MCU_data[blkn]; - - /* We simply emit the Al'th bit of the DC coefficient value. */ - temp = (*block)[0]; - emit_bits(entropy, (unsigned int) (temp >> Al), 1); - } - - cinfo->dest->next_output_byte = entropy->next_output_byte; - cinfo->dest->free_in_buffer = entropy->free_in_buffer; - - /* Update restart-interval state too */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) { - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num++; - entropy->next_restart_num &= 7; - } - entropy->restarts_to_go--; - } - - return TRUE; -} - - -/* - * MCU encoding for AC successive approximation refinement scan. - */ - -METHODDEF(boolean) -encode_mcu_AC_refine (j_compress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - register int temp; - register int r, k; - int EOB; - char *BR_buffer; - unsigned int BR; - int Se = cinfo->Se; - int Al = cinfo->Al; - JBLOCKROW block; - int absvalues[DCTSIZE2]; - - entropy->next_output_byte = cinfo->dest->next_output_byte; - entropy->free_in_buffer = cinfo->dest->free_in_buffer; - - /* Emit restart marker if needed */ - if (cinfo->restart_interval) - if (entropy->restarts_to_go == 0) - emit_restart(entropy, entropy->next_restart_num); - - /* Encode the MCU data block */ - block = MCU_data[0]; - - /* It is convenient to make a pre-pass to determine the transformed - * coefficients' absolute values and the EOB position. - */ - EOB = 0; - for (k = cinfo->Ss; k <= Se; k++) { - temp = (*block)[jpeg_natural_order[k]]; - /* We must apply the point transform by Al. For AC coefficients this - * is an integer division with rounding towards 0. To do this portably - * in C, we shift after obtaining the absolute value. - */ - if (temp < 0) - temp = -temp; /* temp is abs value of input */ - temp >>= Al; /* apply the point transform */ - absvalues[k] = temp; /* save abs value for main pass */ - if (temp == 1) - EOB = k; /* EOB = index of last newly-nonzero coef */ - } - - /* Encode the AC coefficients per section G.1.2.3, fig. G.7 */ - - r = 0; /* r = run length of zeros */ - BR = 0; /* BR = count of buffered bits added now */ - BR_buffer = entropy->bit_buffer + entropy->BE; /* Append bits to buffer */ - - for (k = cinfo->Ss; k <= Se; k++) { - if ((temp = absvalues[k]) == 0) { - r++; - continue; - } - - /* Emit any required ZRLs, but not if they can be folded into EOB */ - while (r > 15 && k <= EOB) { - /* emit any pending EOBRUN and the BE correction bits */ - emit_eobrun(entropy); - /* Emit ZRL */ - emit_symbol(entropy, entropy->ac_tbl_no, 0xF0); - r -= 16; - /* Emit buffered correction bits that must be associated with ZRL */ - emit_buffered_bits(entropy, BR_buffer, BR); - BR_buffer = entropy->bit_buffer; /* BE bits are gone now */ - BR = 0; - } - - /* If the coef was previously nonzero, it only needs a correction bit. - * NOTE: a straight translation of the spec's figure G.7 would suggest - * that we also need to test r > 15. But if r > 15, we can only get here - * if k > EOB, which implies that this coefficient is not 1. - */ - if (temp > 1) { - /* The correction bit is the next bit of the absolute value. */ - BR_buffer[BR++] = (char) (temp & 1); - continue; - } - - /* Emit any pending EOBRUN and the BE correction bits */ - emit_eobrun(entropy); - - /* Count/emit Huffman symbol for run length / number of bits */ - emit_symbol(entropy, entropy->ac_tbl_no, (r << 4) + 1); - - /* Emit output bit for newly-nonzero coef */ - temp = ((*block)[jpeg_natural_order[k]] < 0) ? 0 : 1; - emit_bits(entropy, (unsigned int) temp, 1); - - /* Emit buffered correction bits that must be associated with this code */ - emit_buffered_bits(entropy, BR_buffer, BR); - BR_buffer = entropy->bit_buffer; /* BE bits are gone now */ - BR = 0; - r = 0; /* reset zero run length */ - } - - if (r > 0 || BR > 0) { /* If there are trailing zeroes, */ - entropy->EOBRUN++; /* count an EOB */ - entropy->BE += BR; /* concat my correction bits to older ones */ - /* We force out the EOB if we risk either: - * 1. overflow of the EOB counter; - * 2. overflow of the correction bit buffer during the next MCU. - */ - if (entropy->EOBRUN == 0x7FFF || entropy->BE > (MAX_CORR_BITS-DCTSIZE2+1)) - emit_eobrun(entropy); - } - - cinfo->dest->next_output_byte = entropy->next_output_byte; - cinfo->dest->free_in_buffer = entropy->free_in_buffer; - - /* Update restart-interval state too */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) { - entropy->restarts_to_go = cinfo->restart_interval; - entropy->next_restart_num++; - entropy->next_restart_num &= 7; - } - entropy->restarts_to_go--; - } - - return TRUE; -} - - -/* - * Finish up at the end of a Huffman-compressed progressive scan. - */ - -METHODDEF(void) -finish_pass_phuff (j_compress_ptr cinfo) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - - entropy->next_output_byte = cinfo->dest->next_output_byte; - entropy->free_in_buffer = cinfo->dest->free_in_buffer; - - /* Flush out any buffered data */ - emit_eobrun(entropy); - flush_bits(entropy); - - cinfo->dest->next_output_byte = entropy->next_output_byte; - cinfo->dest->free_in_buffer = entropy->free_in_buffer; -} - - -/* - * Finish up a statistics-gathering pass and create the new Huffman tables. - */ - -METHODDEF(void) -finish_pass_gather_phuff (j_compress_ptr cinfo) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - boolean is_DC_band; - int ci, tbl; - jpeg_component_info * compptr; - JHUFF_TBL **htblptr; - boolean did[NUM_HUFF_TBLS]; - - /* Flush out buffered data (all we care about is counting the EOB symbol) */ - emit_eobrun(entropy); - - is_DC_band = (cinfo->Ss == 0); - - /* It's important not to apply jpeg_gen_optimal_table more than once - * per table, because it clobbers the input frequency counts! - */ - MEMZERO(did, SIZEOF(did)); - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - if (is_DC_band) { - if (cinfo->Ah != 0) /* DC refinement needs no table */ - continue; - tbl = compptr->dc_tbl_no; - } else { - tbl = compptr->ac_tbl_no; - } - if (! did[tbl]) { - if (is_DC_band) - htblptr = & cinfo->dc_huff_tbl_ptrs[tbl]; - else - htblptr = & cinfo->ac_huff_tbl_ptrs[tbl]; - if (*htblptr == NULL) - *htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); - jpeg_gen_optimal_table(cinfo, *htblptr, entropy->count_ptrs[tbl]); - did[tbl] = TRUE; - } - } -} - - -/* - * Module initialization routine for progressive Huffman entropy encoding. - */ - -GLOBAL(void) -jinit_phuff_encoder (j_compress_ptr cinfo) -{ - phuff_entropy_ptr entropy; - int i; - - entropy = (phuff_entropy_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(phuff_entropy_encoder)); - cinfo->entropy = (struct jpeg_entropy_encoder *) entropy; - entropy->pub.start_pass = start_pass_phuff; - - /* Mark tables unallocated */ - for (i = 0; i < NUM_HUFF_TBLS; i++) { - entropy->derived_tbls[i] = NULL; - entropy->count_ptrs[i] = NULL; - } - entropy->bit_buffer = NULL; /* needed only in AC refinement scan */ -} - -#endif /* C_PROGRESSIVE_SUPPORTED */ diff --git a/src/jpeg/jcprepct.c b/src/jpeg/jcprepct.c deleted file mode 100644 index fa93333db2..0000000000 --- a/src/jpeg/jcprepct.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - * jcprepct.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the compression preprocessing controller. - * This controller manages the color conversion, downsampling, - * and edge expansion steps. - * - * Most of the complexity here is associated with buffering input rows - * as required by the downsampler. See the comments at the head of - * jcsample.c for the downsampler's needs. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* At present, jcsample.c can request context rows only for smoothing. - * In the future, we might also need context rows for CCIR601 sampling - * or other more-complex downsampling procedures. The code to support - * context rows should be compiled only if needed. - */ -#ifdef INPUT_SMOOTHING_SUPPORTED -#define CONTEXT_ROWS_SUPPORTED -#endif - - -/* - * For the simple (no-context-row) case, we just need to buffer one - * row group's worth of pixels for the downsampling step. At the bottom of - * the image, we pad to a full row group by replicating the last pixel row. - * The downsampler's last output row is then replicated if needed to pad - * out to a full iMCU row. - * - * When providing context rows, we must buffer three row groups' worth of - * pixels. Three row groups are physically allocated, but the row pointer - * arrays are made five row groups high, with the extra pointers above and - * below "wrapping around" to point to the last and first real row groups. - * This allows the downsampler to access the proper context rows. - * At the top and bottom of the image, we create dummy context rows by - * copying the first or last real pixel row. This copying could be avoided - * by pointer hacking as is done in jdmainct.c, but it doesn't seem worth the - * trouble on the compression side. - */ - - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_c_prep_controller pub; /* public fields */ - - /* Downsampling input buffer. This buffer holds color-converted data - * until we have enough to do a downsample step. - */ - JSAMPARRAY color_buf[MAX_COMPONENTS]; - - JDIMENSION rows_to_go; /* counts rows remaining in source image */ - int next_buf_row; /* index of next row to store in color_buf */ - -#ifdef CONTEXT_ROWS_SUPPORTED /* only needed for context case */ - int this_row_group; /* starting row index of group to process */ - int next_buf_stop; /* downsample when we reach this index */ -#endif -} my_prep_controller; - -typedef my_prep_controller * my_prep_ptr; - - -/* - * Initialize for a processing pass. - */ - -METHODDEF(void) -start_pass_prep (j_compress_ptr cinfo, J_BUF_MODE pass_mode) -{ - my_prep_ptr prep = (my_prep_ptr) cinfo->prep; - - if (pass_mode != JBUF_PASS_THRU) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - - /* Initialize total-height counter for detecting bottom of image */ - prep->rows_to_go = cinfo->image_height; - /* Mark the conversion buffer empty */ - prep->next_buf_row = 0; -#ifdef CONTEXT_ROWS_SUPPORTED - /* Preset additional state variables for context mode. - * These aren't used in non-context mode, so we needn't test which mode. - */ - prep->this_row_group = 0; - /* Set next_buf_stop to stop after two row groups have been read in. */ - prep->next_buf_stop = 2 * cinfo->max_v_samp_factor; -#endif -} - - -/* - * Expand an image vertically from height input_rows to height output_rows, - * by duplicating the bottom row. - */ - -LOCAL(void) -expand_bottom_edge (JSAMPARRAY image_data, JDIMENSION num_cols, - int input_rows, int output_rows) -{ - register int row; - - for (row = input_rows; row < output_rows; row++) { - jcopy_sample_rows(image_data, input_rows-1, image_data, row, - 1, num_cols); - } -} - - -/* - * Process some data in the simple no-context case. - * - * Preprocessor output data is counted in "row groups". A row group - * is defined to be v_samp_factor sample rows of each component. - * Downsampling will produce this much data from each max_v_samp_factor - * input rows. - */ - -METHODDEF(void) -pre_process_data (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JDIMENSION *in_row_ctr, - JDIMENSION in_rows_avail, - JSAMPIMAGE output_buf, JDIMENSION *out_row_group_ctr, - JDIMENSION out_row_groups_avail) -{ - my_prep_ptr prep = (my_prep_ptr) cinfo->prep; - int numrows, ci; - JDIMENSION inrows; - jpeg_component_info * compptr; - - while (*in_row_ctr < in_rows_avail && - *out_row_group_ctr < out_row_groups_avail) { - /* Do color conversion to fill the conversion buffer. */ - inrows = in_rows_avail - *in_row_ctr; - numrows = cinfo->max_v_samp_factor - prep->next_buf_row; - numrows = (int) MIN((JDIMENSION) numrows, inrows); - (*cinfo->cconvert->color_convert) (cinfo, input_buf + *in_row_ctr, - prep->color_buf, - (JDIMENSION) prep->next_buf_row, - numrows); - *in_row_ctr += numrows; - prep->next_buf_row += numrows; - prep->rows_to_go -= numrows; - /* If at bottom of image, pad to fill the conversion buffer. */ - if (prep->rows_to_go == 0 && - prep->next_buf_row < cinfo->max_v_samp_factor) { - for (ci = 0; ci < cinfo->num_components; ci++) { - expand_bottom_edge(prep->color_buf[ci], cinfo->image_width, - prep->next_buf_row, cinfo->max_v_samp_factor); - } - prep->next_buf_row = cinfo->max_v_samp_factor; - } - /* If we've filled the conversion buffer, empty it. */ - if (prep->next_buf_row == cinfo->max_v_samp_factor) { - (*cinfo->downsample->downsample) (cinfo, - prep->color_buf, (JDIMENSION) 0, - output_buf, *out_row_group_ctr); - prep->next_buf_row = 0; - (*out_row_group_ctr)++; - } - /* If at bottom of image, pad the output to a full iMCU height. - * Note we assume the caller is providing a one-iMCU-height output buffer! - */ - if (prep->rows_to_go == 0 && - *out_row_group_ctr < out_row_groups_avail) { - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - expand_bottom_edge(output_buf[ci], - compptr->width_in_blocks * DCTSIZE, - (int) (*out_row_group_ctr * compptr->v_samp_factor), - (int) (out_row_groups_avail * compptr->v_samp_factor)); - } - *out_row_group_ctr = out_row_groups_avail; - break; /* can exit outer loop without test */ - } - } -} - - -#ifdef CONTEXT_ROWS_SUPPORTED - -/* - * Process some data in the context case. - */ - -METHODDEF(void) -pre_process_context (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JDIMENSION *in_row_ctr, - JDIMENSION in_rows_avail, - JSAMPIMAGE output_buf, JDIMENSION *out_row_group_ctr, - JDIMENSION out_row_groups_avail) -{ - my_prep_ptr prep = (my_prep_ptr) cinfo->prep; - int numrows, ci; - int buf_height = cinfo->max_v_samp_factor * 3; - JDIMENSION inrows; - - while (*out_row_group_ctr < out_row_groups_avail) { - if (*in_row_ctr < in_rows_avail) { - /* Do color conversion to fill the conversion buffer. */ - inrows = in_rows_avail - *in_row_ctr; - numrows = prep->next_buf_stop - prep->next_buf_row; - numrows = (int) MIN((JDIMENSION) numrows, inrows); - (*cinfo->cconvert->color_convert) (cinfo, input_buf + *in_row_ctr, - prep->color_buf, - (JDIMENSION) prep->next_buf_row, - numrows); - /* Pad at top of image, if first time through */ - if (prep->rows_to_go == cinfo->image_height) { - for (ci = 0; ci < cinfo->num_components; ci++) { - int row; - for (row = 1; row <= cinfo->max_v_samp_factor; row++) { - jcopy_sample_rows(prep->color_buf[ci], 0, - prep->color_buf[ci], -row, - 1, cinfo->image_width); - } - } - } - *in_row_ctr += numrows; - prep->next_buf_row += numrows; - prep->rows_to_go -= numrows; - } else { - /* Return for more data, unless we are at the bottom of the image. */ - if (prep->rows_to_go != 0) - break; - /* When at bottom of image, pad to fill the conversion buffer. */ - if (prep->next_buf_row < prep->next_buf_stop) { - for (ci = 0; ci < cinfo->num_components; ci++) { - expand_bottom_edge(prep->color_buf[ci], cinfo->image_width, - prep->next_buf_row, prep->next_buf_stop); - } - prep->next_buf_row = prep->next_buf_stop; - } - } - /* If we've gotten enough data, downsample a row group. */ - if (prep->next_buf_row == prep->next_buf_stop) { - (*cinfo->downsample->downsample) (cinfo, - prep->color_buf, - (JDIMENSION) prep->this_row_group, - output_buf, *out_row_group_ctr); - (*out_row_group_ctr)++; - /* Advance pointers with wraparound as necessary. */ - prep->this_row_group += cinfo->max_v_samp_factor; - if (prep->this_row_group >= buf_height) - prep->this_row_group = 0; - if (prep->next_buf_row >= buf_height) - prep->next_buf_row = 0; - prep->next_buf_stop = prep->next_buf_row + cinfo->max_v_samp_factor; - } - } -} - - -/* - * Create the wrapped-around downsampling input buffer needed for context mode. - */ - -LOCAL(void) -create_context_buffer (j_compress_ptr cinfo) -{ - my_prep_ptr prep = (my_prep_ptr) cinfo->prep; - int rgroup_height = cinfo->max_v_samp_factor; - int ci, i; - jpeg_component_info * compptr; - JSAMPARRAY true_buffer, fake_buffer; - - /* Grab enough space for fake row pointers for all the components; - * we need five row groups' worth of pointers for each component. - */ - fake_buffer = (JSAMPARRAY) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (cinfo->num_components * 5 * rgroup_height) * - SIZEOF(JSAMPROW)); - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Allocate the actual buffer space (3 row groups) for this component. - * We make the buffer wide enough to allow the downsampler to edge-expand - * horizontally within the buffer, if it so chooses. - */ - true_buffer = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (JDIMENSION) (((long) compptr->width_in_blocks * DCTSIZE * - cinfo->max_h_samp_factor) / compptr->h_samp_factor), - (JDIMENSION) (3 * rgroup_height)); - /* Copy true buffer row pointers into the middle of the fake row array */ - MEMCOPY(fake_buffer + rgroup_height, true_buffer, - 3 * rgroup_height * SIZEOF(JSAMPROW)); - /* Fill in the above and below wraparound pointers */ - for (i = 0; i < rgroup_height; i++) { - fake_buffer[i] = true_buffer[2 * rgroup_height + i]; - fake_buffer[4 * rgroup_height + i] = true_buffer[i]; - } - prep->color_buf[ci] = fake_buffer + rgroup_height; - fake_buffer += 5 * rgroup_height; /* point to space for next component */ - } -} - -#endif /* CONTEXT_ROWS_SUPPORTED */ - - -/* - * Initialize preprocessing controller. - */ - -GLOBAL(void) -jinit_c_prep_controller (j_compress_ptr cinfo, boolean need_full_buffer) -{ - my_prep_ptr prep; - int ci; - jpeg_component_info * compptr; - - if (need_full_buffer) /* safety check */ - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - - prep = (my_prep_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_prep_controller)); - cinfo->prep = (struct jpeg_c_prep_controller *) prep; - prep->pub.start_pass = start_pass_prep; - - /* Allocate the color conversion buffer. - * We make the buffer wide enough to allow the downsampler to edge-expand - * horizontally within the buffer, if it so chooses. - */ - if (cinfo->downsample->need_context_rows) { - /* Set up to provide context rows */ -#ifdef CONTEXT_ROWS_SUPPORTED - prep->pub.pre_process_data = pre_process_context; - create_context_buffer(cinfo); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else { - /* No context, just make it tall enough for one row group */ - prep->pub.pre_process_data = pre_process_data; - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - prep->color_buf[ci] = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (JDIMENSION) (((long) compptr->width_in_blocks * DCTSIZE * - cinfo->max_h_samp_factor) / compptr->h_samp_factor), - (JDIMENSION) cinfo->max_v_samp_factor); - } - } -} diff --git a/src/jpeg/jcsample.c b/src/jpeg/jcsample.c deleted file mode 100644 index 212ec8757c..0000000000 --- a/src/jpeg/jcsample.c +++ /dev/null @@ -1,519 +0,0 @@ -/* - * jcsample.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains downsampling routines. - * - * Downsampling input data is counted in "row groups". A row group - * is defined to be max_v_samp_factor pixel rows of each component, - * from which the downsampler produces v_samp_factor sample rows. - * A single row group is processed in each call to the downsampler module. - * - * The downsampler is responsible for edge-expansion of its output data - * to fill an integral number of DCT blocks horizontally. The source buffer - * may be modified if it is helpful for this purpose (the source buffer is - * allocated wide enough to correspond to the desired output width). - * The caller (the prep controller) is responsible for vertical padding. - * - * The downsampler may request "context rows" by setting need_context_rows - * during startup. In this case, the input arrays will contain at least - * one row group's worth of pixels above and below the passed-in data; - * the caller will create dummy rows at image top and bottom by replicating - * the first or last real pixel row. - * - * An excellent reference for image resampling is - * Digital Image Warping, George Wolberg, 1990. - * Pub. by IEEE Computer Society Press, Los Alamitos, CA. ISBN 0-8186-8944-7. - * - * The downsampling algorithm used here is a simple average of the source - * pixels covered by the output pixel. The hi-falutin sampling literature - * refers to this as a "box filter". In general the characteristics of a box - * filter are not very good, but for the specific cases we normally use (1:1 - * and 2:1 ratios) the box is equivalent to a "triangle filter" which is not - * nearly so bad. If you intend to use other sampling ratios, you'd be well - * advised to improve this code. - * - * A simple input-smoothing capability is provided. This is mainly intended - * for cleaning up color-dithered GIF input files (if you find it inadequate, - * we suggest using an external filtering program such as pnmconvol). When - * enabled, each input pixel P is replaced by a weighted sum of itself and its - * eight neighbors. P's weight is 1-8*SF and each neighbor's weight is SF, - * where SF = (smoothing_factor / 1024). - * Currently, smoothing is only supported for 2h2v sampling factors. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Pointer to routine to downsample a single component */ -typedef JMETHOD(void, downsample1_ptr, - (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data)); - -/* Private subobject */ - -typedef struct { - struct jpeg_downsampler pub; /* public fields */ - - /* Downsampling method pointers, one per component */ - downsample1_ptr methods[MAX_COMPONENTS]; -} my_downsampler; - -typedef my_downsampler * my_downsample_ptr; - - -/* - * Initialize for a downsampling pass. - */ - -METHODDEF(void) -start_pass_downsample (j_compress_ptr cinfo) -{ - /* no work for now */ -} - - -/* - * Expand a component horizontally from width input_cols to width output_cols, - * by duplicating the rightmost samples. - */ - -LOCAL(void) -expand_right_edge (JSAMPARRAY image_data, int num_rows, - JDIMENSION input_cols, JDIMENSION output_cols) -{ - register JSAMPROW ptr; - register JSAMPLE pixval; - register int count; - int row; - int numcols = (int) (output_cols - input_cols); - - if (numcols > 0) { - for (row = 0; row < num_rows; row++) { - ptr = image_data[row] + input_cols; - pixval = ptr[-1]; /* don't need GETJSAMPLE() here */ - for (count = numcols; count > 0; count--) - *ptr++ = pixval; - } - } -} - - -/* - * Do downsampling for a whole row group (all components). - * - * In this version we simply downsample each component independently. - */ - -METHODDEF(void) -sep_downsample (j_compress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION in_row_index, - JSAMPIMAGE output_buf, JDIMENSION out_row_group_index) -{ - my_downsample_ptr downsample = (my_downsample_ptr) cinfo->downsample; - int ci; - jpeg_component_info * compptr; - JSAMPARRAY in_ptr, out_ptr; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - in_ptr = input_buf[ci] + in_row_index; - out_ptr = output_buf[ci] + (out_row_group_index * compptr->v_samp_factor); - (*downsample->methods[ci]) (cinfo, compptr, in_ptr, out_ptr); - } -} - - -/* - * Downsample pixel values of a single component. - * One row group is processed per call. - * This version handles arbitrary integral sampling ratios, without smoothing. - * Note that this version is not actually used for customary sampling ratios. - */ - -METHODDEF(void) -int_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data) -{ - int inrow, outrow, h_expand, v_expand, numpix, numpix2, h, v; - JDIMENSION outcol, outcol_h; /* outcol_h == outcol*h_expand */ - JDIMENSION output_cols = compptr->width_in_blocks * DCTSIZE; - JSAMPROW inptr, outptr; - INT32 outvalue; - - h_expand = cinfo->max_h_samp_factor / compptr->h_samp_factor; - v_expand = cinfo->max_v_samp_factor / compptr->v_samp_factor; - numpix = h_expand * v_expand; - numpix2 = numpix/2; - - /* Expand input data enough to let all the output samples be generated - * by the standard loop. Special-casing padded output would be more - * efficient. - */ - expand_right_edge(input_data, cinfo->max_v_samp_factor, - cinfo->image_width, output_cols * h_expand); - - inrow = 0; - for (outrow = 0; outrow < compptr->v_samp_factor; outrow++) { - outptr = output_data[outrow]; - for (outcol = 0, outcol_h = 0; outcol < output_cols; - outcol++, outcol_h += h_expand) { - outvalue = 0; - for (v = 0; v < v_expand; v++) { - inptr = input_data[inrow+v] + outcol_h; - for (h = 0; h < h_expand; h++) { - outvalue += (INT32) GETJSAMPLE(*inptr++); - } - } - *outptr++ = (JSAMPLE) ((outvalue + numpix2) / numpix); - } - inrow += v_expand; - } -} - - -/* - * Downsample pixel values of a single component. - * This version handles the special case of a full-size component, - * without smoothing. - */ - -METHODDEF(void) -fullsize_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data) -{ - /* Copy the data */ - jcopy_sample_rows(input_data, 0, output_data, 0, - cinfo->max_v_samp_factor, cinfo->image_width); - /* Edge-expand */ - expand_right_edge(output_data, cinfo->max_v_samp_factor, - cinfo->image_width, compptr->width_in_blocks * DCTSIZE); -} - - -/* - * Downsample pixel values of a single component. - * This version handles the common case of 2:1 horizontal and 1:1 vertical, - * without smoothing. - * - * A note about the "bias" calculations: when rounding fractional values to - * integer, we do not want to always round 0.5 up to the next integer. - * If we did that, we'd introduce a noticeable bias towards larger values. - * Instead, this code is arranged so that 0.5 will be rounded up or down at - * alternate pixel locations (a simple ordered dither pattern). - */ - -METHODDEF(void) -h2v1_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data) -{ - int outrow; - JDIMENSION outcol; - JDIMENSION output_cols = compptr->width_in_blocks * DCTSIZE; - register JSAMPROW inptr, outptr; - register int bias; - - /* Expand input data enough to let all the output samples be generated - * by the standard loop. Special-casing padded output would be more - * efficient. - */ - expand_right_edge(input_data, cinfo->max_v_samp_factor, - cinfo->image_width, output_cols * 2); - - for (outrow = 0; outrow < compptr->v_samp_factor; outrow++) { - outptr = output_data[outrow]; - inptr = input_data[outrow]; - bias = 0; /* bias = 0,1,0,1,... for successive samples */ - for (outcol = 0; outcol < output_cols; outcol++) { - *outptr++ = (JSAMPLE) ((GETJSAMPLE(*inptr) + GETJSAMPLE(inptr[1]) - + bias) >> 1); - bias ^= 1; /* 0=>1, 1=>0 */ - inptr += 2; - } - } -} - - -/* - * Downsample pixel values of a single component. - * This version handles the standard case of 2:1 horizontal and 2:1 vertical, - * without smoothing. - */ - -METHODDEF(void) -h2v2_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data) -{ - int inrow, outrow; - JDIMENSION outcol; - JDIMENSION output_cols = compptr->width_in_blocks * DCTSIZE; - register JSAMPROW inptr0, inptr1, outptr; - register int bias; - - /* Expand input data enough to let all the output samples be generated - * by the standard loop. Special-casing padded output would be more - * efficient. - */ - expand_right_edge(input_data, cinfo->max_v_samp_factor, - cinfo->image_width, output_cols * 2); - - inrow = 0; - for (outrow = 0; outrow < compptr->v_samp_factor; outrow++) { - outptr = output_data[outrow]; - inptr0 = input_data[inrow]; - inptr1 = input_data[inrow+1]; - bias = 1; /* bias = 1,2,1,2,... for successive samples */ - for (outcol = 0; outcol < output_cols; outcol++) { - *outptr++ = (JSAMPLE) ((GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) + - GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]) - + bias) >> 2); - bias ^= 3; /* 1=>2, 2=>1 */ - inptr0 += 2; inptr1 += 2; - } - inrow += 2; - } -} - - -#ifdef INPUT_SMOOTHING_SUPPORTED - -/* - * Downsample pixel values of a single component. - * This version handles the standard case of 2:1 horizontal and 2:1 vertical, - * with smoothing. One row of context is required. - */ - -METHODDEF(void) -h2v2_smooth_downsample (j_compress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data) -{ - int inrow, outrow; - JDIMENSION colctr; - JDIMENSION output_cols = compptr->width_in_blocks * DCTSIZE; - register JSAMPROW inptr0, inptr1, above_ptr, below_ptr, outptr; - INT32 membersum, neighsum, memberscale, neighscale; - - /* Expand input data enough to let all the output samples be generated - * by the standard loop. Special-casing padded output would be more - * efficient. - */ - expand_right_edge(input_data - 1, cinfo->max_v_samp_factor + 2, - cinfo->image_width, output_cols * 2); - - /* We don't bother to form the individual "smoothed" input pixel values; - * we can directly compute the output which is the average of the four - * smoothed values. Each of the four member pixels contributes a fraction - * (1-8*SF) to its own smoothed image and a fraction SF to each of the three - * other smoothed pixels, therefore a total fraction (1-5*SF)/4 to the final - * output. The four corner-adjacent neighbor pixels contribute a fraction - * SF to just one smoothed pixel, or SF/4 to the final output; while the - * eight edge-adjacent neighbors contribute SF to each of two smoothed - * pixels, or SF/2 overall. In order to use integer arithmetic, these - * factors are scaled by 2^16 = 65536. - * Also recall that SF = smoothing_factor / 1024. - */ - - memberscale = 16384 - cinfo->smoothing_factor * 80; /* scaled (1-5*SF)/4 */ - neighscale = cinfo->smoothing_factor * 16; /* scaled SF/4 */ - - inrow = 0; - for (outrow = 0; outrow < compptr->v_samp_factor; outrow++) { - outptr = output_data[outrow]; - inptr0 = input_data[inrow]; - inptr1 = input_data[inrow+1]; - above_ptr = input_data[inrow-1]; - below_ptr = input_data[inrow+2]; - - /* Special case for first column: pretend column -1 is same as column 0 */ - membersum = GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) + - GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]); - neighsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[1]) + - GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[1]) + - GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[2]) + - GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[2]); - neighsum += neighsum; - neighsum += GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[2]) + - GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[2]); - membersum = membersum * memberscale + neighsum * neighscale; - *outptr++ = (JSAMPLE) ((membersum + 32768) >> 16); - inptr0 += 2; inptr1 += 2; above_ptr += 2; below_ptr += 2; - - for (colctr = output_cols - 2; colctr > 0; colctr--) { - /* sum of pixels directly mapped to this output element */ - membersum = GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) + - GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]); - /* sum of edge-neighbor pixels */ - neighsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[1]) + - GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[1]) + - GETJSAMPLE(inptr0[-1]) + GETJSAMPLE(inptr0[2]) + - GETJSAMPLE(inptr1[-1]) + GETJSAMPLE(inptr1[2]); - /* The edge-neighbors count twice as much as corner-neighbors */ - neighsum += neighsum; - /* Add in the corner-neighbors */ - neighsum += GETJSAMPLE(above_ptr[-1]) + GETJSAMPLE(above_ptr[2]) + - GETJSAMPLE(below_ptr[-1]) + GETJSAMPLE(below_ptr[2]); - /* form final output scaled up by 2^16 */ - membersum = membersum * memberscale + neighsum * neighscale; - /* round, descale and output it */ - *outptr++ = (JSAMPLE) ((membersum + 32768) >> 16); - inptr0 += 2; inptr1 += 2; above_ptr += 2; below_ptr += 2; - } - - /* Special case for last column */ - membersum = GETJSAMPLE(*inptr0) + GETJSAMPLE(inptr0[1]) + - GETJSAMPLE(*inptr1) + GETJSAMPLE(inptr1[1]); - neighsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(above_ptr[1]) + - GETJSAMPLE(*below_ptr) + GETJSAMPLE(below_ptr[1]) + - GETJSAMPLE(inptr0[-1]) + GETJSAMPLE(inptr0[1]) + - GETJSAMPLE(inptr1[-1]) + GETJSAMPLE(inptr1[1]); - neighsum += neighsum; - neighsum += GETJSAMPLE(above_ptr[-1]) + GETJSAMPLE(above_ptr[1]) + - GETJSAMPLE(below_ptr[-1]) + GETJSAMPLE(below_ptr[1]); - membersum = membersum * memberscale + neighsum * neighscale; - *outptr = (JSAMPLE) ((membersum + 32768) >> 16); - - inrow += 2; - } -} - - -/* - * Downsample pixel values of a single component. - * This version handles the special case of a full-size component, - * with smoothing. One row of context is required. - */ - -METHODDEF(void) -fullsize_smooth_downsample (j_compress_ptr cinfo, jpeg_component_info *compptr, - JSAMPARRAY input_data, JSAMPARRAY output_data) -{ - int outrow; - JDIMENSION colctr; - JDIMENSION output_cols = compptr->width_in_blocks * DCTSIZE; - register JSAMPROW inptr, above_ptr, below_ptr, outptr; - INT32 membersum, neighsum, memberscale, neighscale; - int colsum, lastcolsum, nextcolsum; - - /* Expand input data enough to let all the output samples be generated - * by the standard loop. Special-casing padded output would be more - * efficient. - */ - expand_right_edge(input_data - 1, cinfo->max_v_samp_factor + 2, - cinfo->image_width, output_cols); - - /* Each of the eight neighbor pixels contributes a fraction SF to the - * smoothed pixel, while the main pixel contributes (1-8*SF). In order - * to use integer arithmetic, these factors are multiplied by 2^16 = 65536. - * Also recall that SF = smoothing_factor / 1024. - */ - - memberscale = 65536L - cinfo->smoothing_factor * 512L; /* scaled 1-8*SF */ - neighscale = cinfo->smoothing_factor * 64; /* scaled SF */ - - for (outrow = 0; outrow < compptr->v_samp_factor; outrow++) { - outptr = output_data[outrow]; - inptr = input_data[outrow]; - above_ptr = input_data[outrow-1]; - below_ptr = input_data[outrow+1]; - - /* Special case for first column */ - colsum = GETJSAMPLE(*above_ptr++) + GETJSAMPLE(*below_ptr++) + - GETJSAMPLE(*inptr); - membersum = GETJSAMPLE(*inptr++); - nextcolsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(*below_ptr) + - GETJSAMPLE(*inptr); - neighsum = colsum + (colsum - membersum) + nextcolsum; - membersum = membersum * memberscale + neighsum * neighscale; - *outptr++ = (JSAMPLE) ((membersum + 32768) >> 16); - lastcolsum = colsum; colsum = nextcolsum; - - for (colctr = output_cols - 2; colctr > 0; colctr--) { - membersum = GETJSAMPLE(*inptr++); - above_ptr++; below_ptr++; - nextcolsum = GETJSAMPLE(*above_ptr) + GETJSAMPLE(*below_ptr) + - GETJSAMPLE(*inptr); - neighsum = lastcolsum + (colsum - membersum) + nextcolsum; - membersum = membersum * memberscale + neighsum * neighscale; - *outptr++ = (JSAMPLE) ((membersum + 32768) >> 16); - lastcolsum = colsum; colsum = nextcolsum; - } - - /* Special case for last column */ - membersum = GETJSAMPLE(*inptr); - neighsum = lastcolsum + (colsum - membersum) + colsum; - membersum = membersum * memberscale + neighsum * neighscale; - *outptr = (JSAMPLE) ((membersum + 32768) >> 16); - - } -} - -#endif /* INPUT_SMOOTHING_SUPPORTED */ - - -/* - * Module initialization routine for downsampling. - * Note that we must select a routine for each component. - */ - -GLOBAL(void) -jinit_downsampler (j_compress_ptr cinfo) -{ - my_downsample_ptr downsample; - int ci; - jpeg_component_info * compptr; - boolean smoothok = TRUE; - - downsample = (my_downsample_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_downsampler)); - cinfo->downsample = (struct jpeg_downsampler *) downsample; - downsample->pub.start_pass = start_pass_downsample; - downsample->pub.downsample = sep_downsample; - downsample->pub.need_context_rows = FALSE; - - if (cinfo->CCIR601_sampling) - ERREXIT(cinfo, JERR_CCIR601_NOTIMPL); - - /* Verify we can handle the sampling factors, and set up method pointers */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - if (compptr->h_samp_factor == cinfo->max_h_samp_factor && - compptr->v_samp_factor == cinfo->max_v_samp_factor) { -#ifdef INPUT_SMOOTHING_SUPPORTED - if (cinfo->smoothing_factor) { - downsample->methods[ci] = fullsize_smooth_downsample; - downsample->pub.need_context_rows = TRUE; - } else -#endif - downsample->methods[ci] = fullsize_downsample; - } else if (compptr->h_samp_factor * 2 == cinfo->max_h_samp_factor && - compptr->v_samp_factor == cinfo->max_v_samp_factor) { - smoothok = FALSE; - downsample->methods[ci] = h2v1_downsample; - } else if (compptr->h_samp_factor * 2 == cinfo->max_h_samp_factor && - compptr->v_samp_factor * 2 == cinfo->max_v_samp_factor) { -#ifdef INPUT_SMOOTHING_SUPPORTED - if (cinfo->smoothing_factor) { - downsample->methods[ci] = h2v2_smooth_downsample; - downsample->pub.need_context_rows = TRUE; - } else -#endif - downsample->methods[ci] = h2v2_downsample; - } else if ((cinfo->max_h_samp_factor % compptr->h_samp_factor) == 0 && - (cinfo->max_v_samp_factor % compptr->v_samp_factor) == 0) { - smoothok = FALSE; - downsample->methods[ci] = int_downsample; - } else - ERREXIT(cinfo, JERR_FRACT_SAMPLE_NOTIMPL); - } - -#ifdef INPUT_SMOOTHING_SUPPORTED - if (cinfo->smoothing_factor && !smoothok) - TRACEMS(cinfo, 0, JTRC_SMOOTH_NOTIMPL); -#endif -} diff --git a/src/jpeg/jctrans.c b/src/jpeg/jctrans.c deleted file mode 100644 index 0e6d70769d..0000000000 --- a/src/jpeg/jctrans.c +++ /dev/null @@ -1,388 +0,0 @@ -/* - * jctrans.c - * - * Copyright (C) 1995-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains library routines for transcoding compression, - * that is, writing raw DCT coefficient arrays to an output JPEG file. - * The routines in jcapimin.c will also be needed by a transcoder. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Forward declarations */ -LOCAL(void) transencode_master_selection - JPP((j_compress_ptr cinfo, jvirt_barray_ptr * coef_arrays)); -LOCAL(void) transencode_coef_controller - JPP((j_compress_ptr cinfo, jvirt_barray_ptr * coef_arrays)); - - -/* - * Compression initialization for writing raw-coefficient data. - * Before calling this, all parameters and a data destination must be set up. - * Call jpeg_finish_compress() to actually write the data. - * - * The number of passed virtual arrays must match cinfo->num_components. - * Note that the virtual arrays need not be filled or even realized at - * the time write_coefficients is called; indeed, if the virtual arrays - * were requested from this compression object's memory manager, they - * typically will be realized during this routine and filled afterwards. - */ - -GLOBAL(void) -jpeg_write_coefficients (j_compress_ptr cinfo, jvirt_barray_ptr * coef_arrays) -{ - if (cinfo->global_state != CSTATE_START) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - /* Mark all tables to be written */ - jpeg_suppress_tables(cinfo, FALSE); - /* (Re)initialize error mgr and destination modules */ - (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo); - (*cinfo->dest->init_destination) (cinfo); - /* Perform master selection of active modules */ - transencode_master_selection(cinfo, coef_arrays); - /* Wait for jpeg_finish_compress() call */ - cinfo->next_scanline = 0; /* so jpeg_write_marker works */ - cinfo->global_state = CSTATE_WRCOEFS; -} - - -/* - * Initialize the compression object with default parameters, - * then copy from the source object all parameters needed for lossless - * transcoding. Parameters that can be varied without loss (such as - * scan script and Huffman optimization) are left in their default states. - */ - -GLOBAL(void) -jpeg_copy_critical_parameters (j_decompress_ptr srcinfo, - j_compress_ptr dstinfo) -{ - JQUANT_TBL ** qtblptr; - jpeg_component_info *incomp, *outcomp; - JQUANT_TBL *c_quant, *slot_quant; - int tblno, ci, coefi; - - /* Safety check to ensure start_compress not called yet. */ - if (dstinfo->global_state != CSTATE_START) - ERREXIT1(dstinfo, JERR_BAD_STATE, dstinfo->global_state); - /* Copy fundamental image dimensions */ - dstinfo->image_width = srcinfo->image_width; - dstinfo->image_height = srcinfo->image_height; - dstinfo->input_components = srcinfo->num_components; - dstinfo->in_color_space = srcinfo->jpeg_color_space; - /* Initialize all parameters to default values */ - jpeg_set_defaults(dstinfo); - /* jpeg_set_defaults may choose wrong colorspace, eg YCbCr if input is RGB. - * Fix it to get the right header markers for the image colorspace. - */ - jpeg_set_colorspace(dstinfo, srcinfo->jpeg_color_space); - dstinfo->data_precision = srcinfo->data_precision; - dstinfo->CCIR601_sampling = srcinfo->CCIR601_sampling; - /* Copy the source's quantization tables. */ - for (tblno = 0; tblno < NUM_QUANT_TBLS; tblno++) { - if (srcinfo->quant_tbl_ptrs[tblno] != NULL) { - qtblptr = & dstinfo->quant_tbl_ptrs[tblno]; - if (*qtblptr == NULL) - *qtblptr = jpeg_alloc_quant_table((j_common_ptr) dstinfo); - MEMCOPY((*qtblptr)->quantval, - srcinfo->quant_tbl_ptrs[tblno]->quantval, - SIZEOF((*qtblptr)->quantval)); - (*qtblptr)->sent_table = FALSE; - } - } - /* Copy the source's per-component info. - * Note we assume jpeg_set_defaults has allocated the dest comp_info array. - */ - dstinfo->num_components = srcinfo->num_components; - if (dstinfo->num_components < 1 || dstinfo->num_components > MAX_COMPONENTS) - ERREXIT2(dstinfo, JERR_COMPONENT_COUNT, dstinfo->num_components, - MAX_COMPONENTS); - for (ci = 0, incomp = srcinfo->comp_info, outcomp = dstinfo->comp_info; - ci < dstinfo->num_components; ci++, incomp++, outcomp++) { - outcomp->component_id = incomp->component_id; - outcomp->h_samp_factor = incomp->h_samp_factor; - outcomp->v_samp_factor = incomp->v_samp_factor; - outcomp->quant_tbl_no = incomp->quant_tbl_no; - /* Make sure saved quantization table for component matches the qtable - * slot. If not, the input file re-used this qtable slot. - * IJG encoder currently cannot duplicate this. - */ - tblno = outcomp->quant_tbl_no; - if (tblno < 0 || tblno >= NUM_QUANT_TBLS || - srcinfo->quant_tbl_ptrs[tblno] == NULL) - ERREXIT1(dstinfo, JERR_NO_QUANT_TABLE, tblno); - slot_quant = srcinfo->quant_tbl_ptrs[tblno]; - c_quant = incomp->quant_table; - if (c_quant != NULL) { - for (coefi = 0; coefi < DCTSIZE2; coefi++) { - if (c_quant->quantval[coefi] != slot_quant->quantval[coefi]) - ERREXIT1(dstinfo, JERR_MISMATCHED_QUANT_TABLE, tblno); - } - } - /* Note: we do not copy the source's Huffman table assignments; - * instead we rely on jpeg_set_colorspace to have made a suitable choice. - */ - } - /* Also copy JFIF version and resolution information, if available. - * Strictly speaking this isn't "critical" info, but it's nearly - * always appropriate to copy it if available. In particular, - * if the application chooses to copy JFIF 1.02 extension markers from - * the source file, we need to copy the version to make sure we don't - * emit a file that has 1.02 extensions but a claimed version of 1.01. - * We will *not*, however, copy version info from mislabeled "2.01" files. - */ - if (srcinfo->saw_JFIF_marker) { - if (srcinfo->JFIF_major_version == 1) { - dstinfo->JFIF_major_version = srcinfo->JFIF_major_version; - dstinfo->JFIF_minor_version = srcinfo->JFIF_minor_version; - } - dstinfo->density_unit = srcinfo->density_unit; - dstinfo->X_density = srcinfo->X_density; - dstinfo->Y_density = srcinfo->Y_density; - } -} - - -/* - * Master selection of compression modules for transcoding. - * This substitutes for jcinit.c's initialization of the full compressor. - */ - -LOCAL(void) -transencode_master_selection (j_compress_ptr cinfo, - jvirt_barray_ptr * coef_arrays) -{ - /* Although we don't actually use input_components for transcoding, - * jcmaster.c's initial_setup will complain if input_components is 0. - */ - cinfo->input_components = 1; - /* Initialize master control (includes parameter checking/processing) */ - jinit_c_master_control(cinfo, TRUE /* transcode only */); - - /* Entropy encoding: either Huffman or arithmetic coding. */ - if (cinfo->arith_code) { - ERREXIT(cinfo, JERR_ARITH_NOTIMPL); - } else { - if (cinfo->progressive_mode) { -#ifdef C_PROGRESSIVE_SUPPORTED - jinit_phuff_encoder(cinfo); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else - jinit_huff_encoder(cinfo); - } - - /* We need a special coefficient buffer controller. */ - transencode_coef_controller(cinfo, coef_arrays); - - jinit_marker_writer(cinfo); - - /* We can now tell the memory manager to allocate virtual arrays. */ - (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo); - - /* Write the datastream header (SOI, JFIF) immediately. - * Frame and scan headers are postponed till later. - * This lets application insert special markers after the SOI. - */ - (*cinfo->marker->write_file_header) (cinfo); -} - - -/* - * The rest of this file is a special implementation of the coefficient - * buffer controller. This is similar to jccoefct.c, but it handles only - * output from presupplied virtual arrays. Furthermore, we generate any - * dummy padding blocks on-the-fly rather than expecting them to be present - * in the arrays. - */ - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_c_coef_controller pub; /* public fields */ - - JDIMENSION iMCU_row_num; /* iMCU row # within image */ - JDIMENSION mcu_ctr; /* counts MCUs processed in current row */ - int MCU_vert_offset; /* counts MCU rows within iMCU row */ - int MCU_rows_per_iMCU_row; /* number of such rows needed */ - - /* Virtual block array for each component. */ - jvirt_barray_ptr * whole_image; - - /* Workspace for constructing dummy blocks at right/bottom edges. */ - JBLOCKROW dummy_buffer[C_MAX_BLOCKS_IN_MCU]; -} my_coef_controller; - -typedef my_coef_controller * my_coef_ptr; - - -LOCAL(void) -start_iMCU_row (j_compress_ptr cinfo) -/* Reset within-iMCU-row counters for a new row */ -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - - /* In an interleaved scan, an MCU row is the same as an iMCU row. - * In a noninterleaved scan, an iMCU row has v_samp_factor MCU rows. - * But at the bottom of the image, process only what's left. - */ - if (cinfo->comps_in_scan > 1) { - coef->MCU_rows_per_iMCU_row = 1; - } else { - if (coef->iMCU_row_num < (cinfo->total_iMCU_rows-1)) - coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->v_samp_factor; - else - coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->last_row_height; - } - - coef->mcu_ctr = 0; - coef->MCU_vert_offset = 0; -} - - -/* - * Initialize for a processing pass. - */ - -METHODDEF(void) -start_pass_coef (j_compress_ptr cinfo, J_BUF_MODE pass_mode) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - - if (pass_mode != JBUF_CRANK_DEST) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - - coef->iMCU_row_num = 0; - start_iMCU_row(cinfo); -} - - -/* - * Process some data. - * We process the equivalent of one fully interleaved MCU row ("iMCU" row) - * per call, ie, v_samp_factor block rows for each component in the scan. - * The data is obtained from the virtual arrays and fed to the entropy coder. - * Returns TRUE if the iMCU row is completed, FALSE if suspended. - * - * NB: input_buf is ignored; it is likely to be a NULL pointer. - */ - -METHODDEF(boolean) -compress_output (j_compress_ptr cinfo, JSAMPIMAGE input_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION MCU_col_num; /* index of current MCU within row */ - JDIMENSION last_MCU_col = cinfo->MCUs_per_row - 1; - JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1; - int blkn, ci, xindex, yindex, yoffset, blockcnt; - JDIMENSION start_col; - JBLOCKARRAY buffer[MAX_COMPS_IN_SCAN]; - JBLOCKROW MCU_buffer[C_MAX_BLOCKS_IN_MCU]; - JBLOCKROW buffer_ptr; - jpeg_component_info *compptr; - - /* Align the virtual buffers for the components used in this scan. */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - buffer[ci] = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[compptr->component_index], - coef->iMCU_row_num * compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, FALSE); - } - - /* Loop to process one whole iMCU row */ - for (yoffset = coef->MCU_vert_offset; yoffset < coef->MCU_rows_per_iMCU_row; - yoffset++) { - for (MCU_col_num = coef->mcu_ctr; MCU_col_num < cinfo->MCUs_per_row; - MCU_col_num++) { - /* Construct list of pointers to DCT blocks belonging to this MCU */ - blkn = 0; /* index of current DCT block within MCU */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - start_col = MCU_col_num * compptr->MCU_width; - blockcnt = (MCU_col_num < last_MCU_col) ? compptr->MCU_width - : compptr->last_col_width; - for (yindex = 0; yindex < compptr->MCU_height; yindex++) { - if (coef->iMCU_row_num < last_iMCU_row || - yindex+yoffset < compptr->last_row_height) { - /* Fill in pointers to real blocks in this row */ - buffer_ptr = buffer[ci][yindex+yoffset] + start_col; - for (xindex = 0; xindex < blockcnt; xindex++) - MCU_buffer[blkn++] = buffer_ptr++; - } else { - /* At bottom of image, need a whole row of dummy blocks */ - xindex = 0; - } - /* Fill in any dummy blocks needed in this row. - * Dummy blocks are filled in the same way as in jccoefct.c: - * all zeroes in the AC entries, DC entries equal to previous - * block's DC value. The init routine has already zeroed the - * AC entries, so we need only set the DC entries correctly. - */ - for (; xindex < compptr->MCU_width; xindex++) { - MCU_buffer[blkn] = coef->dummy_buffer[blkn]; - MCU_buffer[blkn][0][0] = MCU_buffer[blkn-1][0][0]; - blkn++; - } - } - } - /* Try to write the MCU. */ - if (! (*cinfo->entropy->encode_mcu) (cinfo, MCU_buffer)) { - /* Suspension forced; update state counters and exit */ - coef->MCU_vert_offset = yoffset; - coef->mcu_ctr = MCU_col_num; - return FALSE; - } - } - /* Completed an MCU row, but perhaps not an iMCU row */ - coef->mcu_ctr = 0; - } - /* Completed the iMCU row, advance counters for next one */ - coef->iMCU_row_num++; - start_iMCU_row(cinfo); - return TRUE; -} - - -/* - * Initialize coefficient buffer controller. - * - * Each passed coefficient array must be the right size for that - * coefficient: width_in_blocks wide and height_in_blocks high, - * with unitheight at least v_samp_factor. - */ - -LOCAL(void) -transencode_coef_controller (j_compress_ptr cinfo, - jvirt_barray_ptr * coef_arrays) -{ - my_coef_ptr coef; - JBLOCKROW buffer; - int i; - - coef = (my_coef_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_coef_controller)); - cinfo->coef = (struct jpeg_c_coef_controller *) coef; - coef->pub.start_pass = start_pass_coef; - coef->pub.compress_data = compress_output; - - /* Save pointer to virtual arrays */ - coef->whole_image = coef_arrays; - - /* Allocate and pre-zero space for dummy DCT blocks. */ - buffer = (JBLOCKROW) - (*cinfo->mem->alloc_large) ((j_common_ptr) cinfo, JPOOL_IMAGE, - C_MAX_BLOCKS_IN_MCU * SIZEOF(JBLOCK)); - jzero_far((void FAR *) buffer, C_MAX_BLOCKS_IN_MCU * SIZEOF(JBLOCK)); - for (i = 0; i < C_MAX_BLOCKS_IN_MCU; i++) { - coef->dummy_buffer[i] = buffer + i; - } -} diff --git a/src/jpeg/jdapimin.c b/src/jpeg/jdapimin.c deleted file mode 100644 index cadb59fce3..0000000000 --- a/src/jpeg/jdapimin.c +++ /dev/null @@ -1,395 +0,0 @@ -/* - * jdapimin.c - * - * Copyright (C) 1994-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains application interface code for the decompression half - * of the JPEG library. These are the "minimum" API routines that may be - * needed in either the normal full-decompression case or the - * transcoding-only case. - * - * Most of the routines intended to be called directly by an application - * are in this file or in jdapistd.c. But also see jcomapi.c for routines - * shared by compression and decompression, and jdtrans.c for the transcoding - * case. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * Initialization of a JPEG decompression object. - * The error manager must already be set up (in case memory manager fails). - */ - -GLOBAL(void) -jpeg_CreateDecompress (j_decompress_ptr cinfo, int version, size_t structsize) -{ - int i; - - /* Guard against version mismatches between library and caller. */ - cinfo->mem = NULL; /* so jpeg_destroy knows mem mgr not called */ - if (version != JPEG_LIB_VERSION) - ERREXIT2(cinfo, JERR_BAD_LIB_VERSION, JPEG_LIB_VERSION, version); - if (structsize != SIZEOF(struct jpeg_decompress_struct)) - ERREXIT2(cinfo, JERR_BAD_STRUCT_SIZE, - (int) SIZEOF(struct jpeg_decompress_struct), (int) structsize); - - /* For debugging purposes, we zero the whole master structure. - * But the application has already set the err pointer, and may have set - * client_data, so we have to save and restore those fields. - * Note: if application hasn't set client_data, tools like Purify may - * complain here. - */ - { - struct jpeg_error_mgr * err = cinfo->err; - void * client_data = cinfo->client_data; /* ignore Purify complaint here */ - MEMZERO(cinfo, SIZEOF(struct jpeg_decompress_struct)); - cinfo->err = err; - cinfo->client_data = client_data; - } - cinfo->is_decompressor = TRUE; - - /* Initialize a memory manager instance for this object */ - jinit_memory_mgr((j_common_ptr) cinfo); - - /* Zero out pointers to permanent structures. */ - cinfo->progress = NULL; - cinfo->src = NULL; - - for (i = 0; i < NUM_QUANT_TBLS; i++) - cinfo->quant_tbl_ptrs[i] = NULL; - - for (i = 0; i < NUM_HUFF_TBLS; i++) { - cinfo->dc_huff_tbl_ptrs[i] = NULL; - cinfo->ac_huff_tbl_ptrs[i] = NULL; - } - - /* Initialize marker processor so application can override methods - * for COM, APPn markers before calling jpeg_read_header. - */ - cinfo->marker_list = NULL; - jinit_marker_reader(cinfo); - - /* And initialize the overall input controller. */ - jinit_input_controller(cinfo); - - /* OK, I'm ready */ - cinfo->global_state = DSTATE_START; -} - - -/* - * Destruction of a JPEG decompression object - */ - -GLOBAL(void) -jpeg_destroy_decompress (j_decompress_ptr cinfo) -{ - jpeg_destroy((j_common_ptr) cinfo); /* use common routine */ -} - - -/* - * Abort processing of a JPEG decompression operation, - * but don't destroy the object itself. - */ - -GLOBAL(void) -jpeg_abort_decompress (j_decompress_ptr cinfo) -{ - jpeg_abort((j_common_ptr) cinfo); /* use common routine */ -} - - -/* - * Set default decompression parameters. - */ - -LOCAL(void) -default_decompress_parms (j_decompress_ptr cinfo) -{ - /* Guess the input colorspace, and set output colorspace accordingly. */ - /* (Wish JPEG committee had provided a real way to specify this...) */ - /* Note application may override our guesses. */ - switch (cinfo->num_components) { - case 1: - cinfo->jpeg_color_space = JCS_GRAYSCALE; - cinfo->out_color_space = JCS_GRAYSCALE; - break; - - case 3: - if (cinfo->saw_JFIF_marker) { - cinfo->jpeg_color_space = JCS_YCbCr; /* JFIF implies YCbCr */ - } else if (cinfo->saw_Adobe_marker) { - switch (cinfo->Adobe_transform) { - case 0: - cinfo->jpeg_color_space = JCS_RGB; - break; - case 1: - cinfo->jpeg_color_space = JCS_YCbCr; - break; - default: - WARNMS1(cinfo, JWRN_ADOBE_XFORM, cinfo->Adobe_transform); - cinfo->jpeg_color_space = JCS_YCbCr; /* assume it's YCbCr */ - break; - } - } else { - /* Saw no special markers, try to guess from the component IDs */ - int cid0 = cinfo->comp_info[0].component_id; - int cid1 = cinfo->comp_info[1].component_id; - int cid2 = cinfo->comp_info[2].component_id; - - if (cid0 == 1 && cid1 == 2 && cid2 == 3) - cinfo->jpeg_color_space = JCS_YCbCr; /* assume JFIF w/out marker */ - else if (cid0 == 82 && cid1 == 71 && cid2 == 66) - cinfo->jpeg_color_space = JCS_RGB; /* ASCII 'R', 'G', 'B' */ - else { - TRACEMS3(cinfo, 1, JTRC_UNKNOWN_IDS, cid0, cid1, cid2); - cinfo->jpeg_color_space = JCS_YCbCr; /* assume it's YCbCr */ - } - } - /* Always guess RGB is proper output colorspace. */ - cinfo->out_color_space = JCS_RGB; - break; - - case 4: - if (cinfo->saw_Adobe_marker) { - switch (cinfo->Adobe_transform) { - case 0: - cinfo->jpeg_color_space = JCS_CMYK; - break; - case 2: - cinfo->jpeg_color_space = JCS_YCCK; - break; - default: - WARNMS1(cinfo, JWRN_ADOBE_XFORM, cinfo->Adobe_transform); - cinfo->jpeg_color_space = JCS_YCCK; /* assume it's YCCK */ - break; - } - } else { - /* No special markers, assume straight CMYK. */ - cinfo->jpeg_color_space = JCS_CMYK; - } - cinfo->out_color_space = JCS_CMYK; - break; - - default: - cinfo->jpeg_color_space = JCS_UNKNOWN; - cinfo->out_color_space = JCS_UNKNOWN; - break; - } - - /* Set defaults for other decompression parameters. */ - cinfo->scale_num = 1; /* 1:1 scaling */ - cinfo->scale_denom = 1; - cinfo->output_gamma = 1.0; - cinfo->buffered_image = FALSE; - cinfo->raw_data_out = FALSE; - cinfo->dct_method = JDCT_DEFAULT; - cinfo->do_fancy_upsampling = TRUE; - cinfo->do_block_smoothing = TRUE; - cinfo->quantize_colors = FALSE; - /* We set these in case application only sets quantize_colors. */ - cinfo->dither_mode = JDITHER_FS; -#ifdef QUANT_2PASS_SUPPORTED - cinfo->two_pass_quantize = TRUE; -#else - cinfo->two_pass_quantize = FALSE; -#endif - cinfo->desired_number_of_colors = 256; - cinfo->colormap = NULL; - /* Initialize for no mode change in buffered-image mode. */ - cinfo->enable_1pass_quant = FALSE; - cinfo->enable_external_quant = FALSE; - cinfo->enable_2pass_quant = FALSE; -} - - -/* - * Decompression startup: read start of JPEG datastream to see what's there. - * Need only initialize JPEG object and supply a data source before calling. - * - * This routine will read as far as the first SOS marker (ie, actual start of - * compressed data), and will save all tables and parameters in the JPEG - * object. It will also initialize the decompression parameters to default - * values, and finally return JPEG_HEADER_OK. On return, the application may - * adjust the decompression parameters and then call jpeg_start_decompress. - * (Or, if the application only wanted to determine the image parameters, - * the data need not be decompressed. In that case, call jpeg_abort or - * jpeg_destroy to release any temporary space.) - * If an abbreviated (tables only) datastream is presented, the routine will - * return JPEG_HEADER_TABLES_ONLY upon reaching EOI. The application may then - * re-use the JPEG object to read the abbreviated image datastream(s). - * It is unnecessary (but OK) to call jpeg_abort in this case. - * The JPEG_SUSPENDED return code only occurs if the data source module - * requests suspension of the decompressor. In this case the application - * should load more source data and then re-call jpeg_read_header to resume - * processing. - * If a non-suspending data source is used and require_image is TRUE, then the - * return code need not be inspected since only JPEG_HEADER_OK is possible. - * - * This routine is now just a front end to jpeg_consume_input, with some - * extra error checking. - */ - -GLOBAL(int) -jpeg_read_header (j_decompress_ptr cinfo, boolean require_image) -{ - int retcode; - - if (cinfo->global_state != DSTATE_START && - cinfo->global_state != DSTATE_INHEADER) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - retcode = jpeg_consume_input(cinfo); - - switch (retcode) { - case JPEG_REACHED_SOS: - retcode = JPEG_HEADER_OK; - break; - case JPEG_REACHED_EOI: - if (require_image) /* Complain if application wanted an image */ - ERREXIT(cinfo, JERR_NO_IMAGE); - /* Reset to start state; it would be safer to require the application to - * call jpeg_abort, but we can't change it now for compatibility reasons. - * A side effect is to free any temporary memory (there shouldn't be any). - */ - jpeg_abort((j_common_ptr) cinfo); /* sets state = DSTATE_START */ - retcode = JPEG_HEADER_TABLES_ONLY; - break; - case JPEG_SUSPENDED: - /* no work */ - break; - } - - return retcode; -} - - -/* - * Consume data in advance of what the decompressor requires. - * This can be called at any time once the decompressor object has - * been created and a data source has been set up. - * - * This routine is essentially a state machine that handles a couple - * of critical state-transition actions, namely initial setup and - * transition from header scanning to ready-for-start_decompress. - * All the actual input is done via the input controller's consume_input - * method. - */ - -GLOBAL(int) -jpeg_consume_input (j_decompress_ptr cinfo) -{ - int retcode = JPEG_SUSPENDED; - - /* NB: every possible DSTATE value should be listed in this switch */ - switch (cinfo->global_state) { - case DSTATE_START: - /* Start-of-datastream actions: reset appropriate modules */ - (*cinfo->inputctl->reset_input_controller) (cinfo); - /* Initialize application's data source module */ - (*cinfo->src->init_source) (cinfo); - cinfo->global_state = DSTATE_INHEADER; - /*FALLTHROUGH*/ - case DSTATE_INHEADER: - retcode = (*cinfo->inputctl->consume_input) (cinfo); - if (retcode == JPEG_REACHED_SOS) { /* Found SOS, prepare to decompress */ - /* Set up default parameters based on header data */ - default_decompress_parms(cinfo); - /* Set global state: ready for start_decompress */ - cinfo->global_state = DSTATE_READY; - } - break; - case DSTATE_READY: - /* Can't advance past first SOS until start_decompress is called */ - retcode = JPEG_REACHED_SOS; - break; - case DSTATE_PRELOAD: - case DSTATE_PRESCAN: - case DSTATE_SCANNING: - case DSTATE_RAW_OK: - case DSTATE_BUFIMAGE: - case DSTATE_BUFPOST: - case DSTATE_STOPPING: - retcode = (*cinfo->inputctl->consume_input) (cinfo); - break; - default: - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - } - return retcode; -} - - -/* - * Have we finished reading the input file? - */ - -GLOBAL(boolean) -jpeg_input_complete (j_decompress_ptr cinfo) -{ - /* Check for valid jpeg object */ - if (cinfo->global_state < DSTATE_START || - cinfo->global_state > DSTATE_STOPPING) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - return cinfo->inputctl->eoi_reached; -} - - -/* - * Is there more than one scan? - */ - -GLOBAL(boolean) -jpeg_has_multiple_scans (j_decompress_ptr cinfo) -{ - /* Only valid after jpeg_read_header completes */ - if (cinfo->global_state < DSTATE_READY || - cinfo->global_state > DSTATE_STOPPING) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - return cinfo->inputctl->has_multiple_scans; -} - - -/* - * Finish JPEG decompression. - * - * This will normally just verify the file trailer and release temp storage. - * - * Returns FALSE if suspended. The return value need be inspected only if - * a suspending data source is used. - */ - -GLOBAL(boolean) -jpeg_finish_decompress (j_decompress_ptr cinfo) -{ - if ((cinfo->global_state == DSTATE_SCANNING || - cinfo->global_state == DSTATE_RAW_OK) && ! cinfo->buffered_image) { - /* Terminate final pass of non-buffered mode */ - if (cinfo->output_scanline < cinfo->output_height) - ERREXIT(cinfo, JERR_TOO_LITTLE_DATA); - (*cinfo->master->finish_output_pass) (cinfo); - cinfo->global_state = DSTATE_STOPPING; - } else if (cinfo->global_state == DSTATE_BUFIMAGE) { - /* Finishing after a buffered-image operation */ - cinfo->global_state = DSTATE_STOPPING; - } else if (cinfo->global_state != DSTATE_STOPPING) { - /* STOPPING = repeat call after a suspension, anything else is error */ - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - } - /* Read until EOI */ - while (! cinfo->inputctl->eoi_reached) { - if ((*cinfo->inputctl->consume_input) (cinfo) == JPEG_SUSPENDED) - return FALSE; /* Suspend, come back later */ - } - /* Do final cleanup */ - (*cinfo->src->term_source) (cinfo); - /* We can use jpeg_abort to release memory and reset global_state */ - jpeg_abort((j_common_ptr) cinfo); - return TRUE; -} diff --git a/src/jpeg/jdapistd.c b/src/jpeg/jdapistd.c deleted file mode 100644 index c8e3fa0c35..0000000000 --- a/src/jpeg/jdapistd.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * jdapistd.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains application interface code for the decompression half - * of the JPEG library. These are the "standard" API routines that are - * used in the normal full-decompression case. They are not used by a - * transcoding-only application. Note that if an application links in - * jpeg_start_decompress, it will end up linking in the entire decompressor. - * We thus must separate this file from jdapimin.c to avoid linking the - * whole decompression library into a transcoder. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Forward declarations */ -LOCAL(boolean) output_pass_setup JPP((j_decompress_ptr cinfo)); - - -/* - * Decompression initialization. - * jpeg_read_header must be completed before calling this. - * - * If a multipass operating mode was selected, this will do all but the - * last pass, and thus may take a great deal of time. - * - * Returns FALSE if suspended. The return value need be inspected only if - * a suspending data source is used. - */ - -GLOBAL(boolean) -jpeg_start_decompress (j_decompress_ptr cinfo) -{ - if (cinfo->global_state == DSTATE_READY) { - /* First call: initialize master control, select active modules */ - jinit_master_decompress(cinfo); - if (cinfo->buffered_image) { - /* No more work here; expecting jpeg_start_output next */ - cinfo->global_state = DSTATE_BUFIMAGE; - return TRUE; - } - cinfo->global_state = DSTATE_PRELOAD; - } - if (cinfo->global_state == DSTATE_PRELOAD) { - /* If file has multiple scans, absorb them all into the coef buffer */ - if (cinfo->inputctl->has_multiple_scans) { -#ifdef D_MULTISCAN_FILES_SUPPORTED - for (;;) { - int retcode; - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - /* Absorb some more input */ - retcode = (*cinfo->inputctl->consume_input) (cinfo); - if (retcode == JPEG_SUSPENDED) - return FALSE; - if (retcode == JPEG_REACHED_EOI) - break; - /* Advance progress counter if appropriate */ - if (cinfo->progress != NULL && - (retcode == JPEG_ROW_COMPLETED || retcode == JPEG_REACHED_SOS)) { - if (++cinfo->progress->pass_counter >= cinfo->progress->pass_limit) { - /* jdmaster underestimated number of scans; ratchet up one scan */ - cinfo->progress->pass_limit += (long) cinfo->total_iMCU_rows; - } - } - } -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif /* D_MULTISCAN_FILES_SUPPORTED */ - } - cinfo->output_scan_number = cinfo->input_scan_number; - } else if (cinfo->global_state != DSTATE_PRESCAN) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - /* Perform any dummy output passes, and set up for the final pass */ - return output_pass_setup(cinfo); -} - - -/* - * Set up for an output pass, and perform any dummy pass(es) needed. - * Common subroutine for jpeg_start_decompress and jpeg_start_output. - * Entry: global_state = DSTATE_PRESCAN only if previously suspended. - * Exit: If done, returns TRUE and sets global_state for proper output mode. - * If suspended, returns FALSE and sets global_state = DSTATE_PRESCAN. - */ - -LOCAL(boolean) -output_pass_setup (j_decompress_ptr cinfo) -{ - if (cinfo->global_state != DSTATE_PRESCAN) { - /* First call: do pass setup */ - (*cinfo->master->prepare_for_output_pass) (cinfo); - cinfo->output_scanline = 0; - cinfo->global_state = DSTATE_PRESCAN; - } - /* Loop over any required dummy passes */ - while (cinfo->master->is_dummy_pass) { -#ifdef QUANT_2PASS_SUPPORTED - /* Crank through the dummy pass */ - while (cinfo->output_scanline < cinfo->output_height) { - JDIMENSION last_scanline; - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) { - cinfo->progress->pass_counter = (long) cinfo->output_scanline; - cinfo->progress->pass_limit = (long) cinfo->output_height; - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - } - /* Process some data */ - last_scanline = cinfo->output_scanline; - (*cinfo->main->process_data) (cinfo, (JSAMPARRAY) NULL, - &cinfo->output_scanline, (JDIMENSION) 0); - if (cinfo->output_scanline == last_scanline) - return FALSE; /* No progress made, must suspend */ - } - /* Finish up dummy pass, and set up for another one */ - (*cinfo->master->finish_output_pass) (cinfo); - (*cinfo->master->prepare_for_output_pass) (cinfo); - cinfo->output_scanline = 0; -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif /* QUANT_2PASS_SUPPORTED */ - } - /* Ready for application to drive output pass through - * jpeg_read_scanlines or jpeg_read_raw_data. - */ - cinfo->global_state = cinfo->raw_data_out ? DSTATE_RAW_OK : DSTATE_SCANNING; - return TRUE; -} - - -/* - * Read some scanlines of data from the JPEG decompressor. - * - * The return value will be the number of lines actually read. - * This may be less than the number requested in several cases, - * including bottom of image, data source suspension, and operating - * modes that emit multiple scanlines at a time. - * - * Note: we warn about excess calls to jpeg_read_scanlines() since - * this likely signals an application programmer error. However, - * an oversize buffer (max_lines > scanlines remaining) is not an error. - */ - -GLOBAL(JDIMENSION) -jpeg_read_scanlines (j_decompress_ptr cinfo, JSAMPARRAY scanlines, - JDIMENSION max_lines) -{ - JDIMENSION row_ctr; - - if (cinfo->global_state != DSTATE_SCANNING) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - if (cinfo->output_scanline >= cinfo->output_height) { - WARNMS(cinfo, JWRN_TOO_MUCH_DATA); - return 0; - } - - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) { - cinfo->progress->pass_counter = (long) cinfo->output_scanline; - cinfo->progress->pass_limit = (long) cinfo->output_height; - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - } - - /* Process some data */ - row_ctr = 0; - (*cinfo->main->process_data) (cinfo, scanlines, &row_ctr, max_lines); - cinfo->output_scanline += row_ctr; - return row_ctr; -} - - -/* - * Alternate entry point to read raw data. - * Processes exactly one iMCU row per call, unless suspended. - */ - -GLOBAL(JDIMENSION) -jpeg_read_raw_data (j_decompress_ptr cinfo, JSAMPIMAGE data, - JDIMENSION max_lines) -{ - JDIMENSION lines_per_iMCU_row; - - if (cinfo->global_state != DSTATE_RAW_OK) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - if (cinfo->output_scanline >= cinfo->output_height) { - WARNMS(cinfo, JWRN_TOO_MUCH_DATA); - return 0; - } - - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) { - cinfo->progress->pass_counter = (long) cinfo->output_scanline; - cinfo->progress->pass_limit = (long) cinfo->output_height; - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - } - - /* Verify that at least one iMCU row can be returned. */ - lines_per_iMCU_row = cinfo->max_v_samp_factor * cinfo->min_DCT_scaled_size; - if (max_lines < lines_per_iMCU_row) - ERREXIT(cinfo, JERR_BUFFER_SIZE); - - /* Decompress directly into user's buffer. */ - if (! (*cinfo->coef->decompress_data) (cinfo, data)) - return 0; /* suspension forced, can do nothing more */ - - /* OK, we processed one iMCU row. */ - cinfo->output_scanline += lines_per_iMCU_row; - return lines_per_iMCU_row; -} - - -/* Additional entry points for buffered-image mode. */ - -#ifdef D_MULTISCAN_FILES_SUPPORTED - -/* - * Initialize for an output pass in buffered-image mode. - */ - -GLOBAL(boolean) -jpeg_start_output (j_decompress_ptr cinfo, int scan_number) -{ - if (cinfo->global_state != DSTATE_BUFIMAGE && - cinfo->global_state != DSTATE_PRESCAN) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - /* Limit scan number to valid range */ - if (scan_number <= 0) - scan_number = 1; - if (cinfo->inputctl->eoi_reached && - scan_number > cinfo->input_scan_number) - scan_number = cinfo->input_scan_number; - cinfo->output_scan_number = scan_number; - /* Perform any dummy output passes, and set up for the real pass */ - return output_pass_setup(cinfo); -} - - -/* - * Finish up after an output pass in buffered-image mode. - * - * Returns FALSE if suspended. The return value need be inspected only if - * a suspending data source is used. - */ - -GLOBAL(boolean) -jpeg_finish_output (j_decompress_ptr cinfo) -{ - if ((cinfo->global_state == DSTATE_SCANNING || - cinfo->global_state == DSTATE_RAW_OK) && cinfo->buffered_image) { - /* Terminate this pass. */ - /* We do not require the whole pass to have been completed. */ - (*cinfo->master->finish_output_pass) (cinfo); - cinfo->global_state = DSTATE_BUFPOST; - } else if (cinfo->global_state != DSTATE_BUFPOST) { - /* BUFPOST = repeat call after a suspension, anything else is error */ - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - } - /* Read markers looking for SOS or EOI */ - while (cinfo->input_scan_number <= cinfo->output_scan_number && - ! cinfo->inputctl->eoi_reached) { - if ((*cinfo->inputctl->consume_input) (cinfo) == JPEG_SUSPENDED) - return FALSE; /* Suspend, come back later */ - } - cinfo->global_state = DSTATE_BUFIMAGE; - return TRUE; -} - -#endif /* D_MULTISCAN_FILES_SUPPORTED */ diff --git a/src/jpeg/jdatadst.c b/src/jpeg/jdatadst.c deleted file mode 100644 index a8f6fb0e02..0000000000 --- a/src/jpeg/jdatadst.c +++ /dev/null @@ -1,151 +0,0 @@ -/* - * jdatadst.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains compression data destination routines for the case of - * emitting JPEG data to a file (or any stdio stream). While these routines - * are sufficient for most applications, some will want to use a different - * destination manager. - * IMPORTANT: we assume that fwrite() will correctly transcribe an array of - * JOCTETs into 8-bit-wide elements on external storage. If char is wider - * than 8 bits on your machine, you may need to do some tweaking. - */ - -/* this is not a core library module, so it doesn't define JPEG_INTERNALS */ -#include "jinclude.h" -#include "jpeglib.h" -#include "jerror.h" - - -/* Expanded data destination object for stdio output */ - -typedef struct { - struct jpeg_destination_mgr pub; /* public fields */ - - FILE * outfile; /* target stream */ - JOCTET * buffer; /* start of buffer */ -} my_destination_mgr; - -typedef my_destination_mgr * my_dest_ptr; - -#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */ - - -/* - * Initialize destination --- called by jpeg_start_compress - * before any data is actually written. - */ - -METHODDEF(void) -init_destination (j_compress_ptr cinfo) -{ - my_dest_ptr dest = (my_dest_ptr) cinfo->dest; - - /* Allocate the output buffer --- it will be released when done with image */ - dest->buffer = (JOCTET *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - OUTPUT_BUF_SIZE * SIZEOF(JOCTET)); - - dest->pub.next_output_byte = dest->buffer; - dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; -} - - -/* - * Empty the output buffer --- called whenever buffer fills up. - * - * In typical applications, this should write the entire output buffer - * (ignoring the current state of next_output_byte & free_in_buffer), - * reset the pointer & count to the start of the buffer, and return TRUE - * indicating that the buffer has been dumped. - * - * In applications that need to be able to suspend compression due to output - * overrun, a FALSE return indicates that the buffer cannot be emptied now. - * In this situation, the compressor will return to its caller (possibly with - * an indication that it has not accepted all the supplied scanlines). The - * application should resume compression after it has made more room in the - * output buffer. Note that there are substantial restrictions on the use of - * suspension --- see the documentation. - * - * When suspending, the compressor will back up to a convenient restart point - * (typically the start of the current MCU). next_output_byte & free_in_buffer - * indicate where the restart point will be if the current call returns FALSE. - * Data beyond this point will be regenerated after resumption, so do not - * write it out when emptying the buffer externally. - */ - -METHODDEF(boolean) -empty_output_buffer (j_compress_ptr cinfo) -{ - my_dest_ptr dest = (my_dest_ptr) cinfo->dest; - - if (JFWRITE(dest->outfile, dest->buffer, OUTPUT_BUF_SIZE) != - (size_t) OUTPUT_BUF_SIZE) - ERREXIT(cinfo, JERR_FILE_WRITE); - - dest->pub.next_output_byte = dest->buffer; - dest->pub.free_in_buffer = OUTPUT_BUF_SIZE; - - return TRUE; -} - - -/* - * Terminate destination --- called by jpeg_finish_compress - * after all data has been written. Usually needs to flush buffer. - * - * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding - * application must deal with any cleanup that should happen even - * for error exit. - */ - -METHODDEF(void) -term_destination (j_compress_ptr cinfo) -{ - my_dest_ptr dest = (my_dest_ptr) cinfo->dest; - size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer; - - /* Write any data remaining in the buffer */ - if (datacount > 0) { - if (JFWRITE(dest->outfile, dest->buffer, datacount) != datacount) - ERREXIT(cinfo, JERR_FILE_WRITE); - } - fflush(dest->outfile); - /* Make sure we wrote the output file OK */ - if (ferror(dest->outfile)) - ERREXIT(cinfo, JERR_FILE_WRITE); -} - - -/* - * Prepare for output to a stdio stream. - * The caller must have already opened the stream, and is responsible - * for closing it after finishing compression. - */ - -GLOBAL(void) -jpeg_stdio_dest (j_compress_ptr cinfo, FILE * outfile) -{ - my_dest_ptr dest; - - /* The destination object is made permanent so that multiple JPEG images - * can be written to the same file without re-executing jpeg_stdio_dest. - * This makes it dangerous to use this manager and a different destination - * manager serially with the same JPEG object, because their private object - * sizes may be different. Caveat programmer. - */ - if (cinfo->dest == NULL) { /* first time for this JPEG object? */ - cinfo->dest = (struct jpeg_destination_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - SIZEOF(my_destination_mgr)); - } - - dest = (my_dest_ptr) cinfo->dest; - dest->pub.init_destination = init_destination; - dest->pub.empty_output_buffer = empty_output_buffer; - dest->pub.term_destination = term_destination; - dest->outfile = outfile; -} diff --git a/src/jpeg/jdatasrc.c b/src/jpeg/jdatasrc.c deleted file mode 100644 index edc752bf5d..0000000000 --- a/src/jpeg/jdatasrc.c +++ /dev/null @@ -1,212 +0,0 @@ -/* - * jdatasrc.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains decompression data source routines for the case of - * reading JPEG data from a file (or any stdio stream). While these routines - * are sufficient for most applications, some will want to use a different - * source manager. - * IMPORTANT: we assume that fread() will correctly transcribe an array of - * JOCTETs from 8-bit-wide elements on external storage. If char is wider - * than 8 bits on your machine, you may need to do some tweaking. - */ - -/* this is not a core library module, so it doesn't define JPEG_INTERNALS */ -#include "jinclude.h" -#include "jpeglib.h" -#include "jerror.h" - - -/* Expanded data source object for stdio input */ - -typedef struct { - struct jpeg_source_mgr pub; /* public fields */ - - FILE * infile; /* source stream */ - JOCTET * buffer; /* start of buffer */ - boolean start_of_file; /* have we gotten any data yet? */ -} my_source_mgr; - -typedef my_source_mgr * my_src_ptr; - -#define INPUT_BUF_SIZE 4096 /* choose an efficiently fread'able size */ - - -/* - * Initialize source --- called by jpeg_read_header - * before any data is actually read. - */ - -METHODDEF(void) -init_source (j_decompress_ptr cinfo) -{ - my_src_ptr src = (my_src_ptr) cinfo->src; - - /* We reset the empty-input-file flag for each image, - * but we don't clear the input buffer. - * This is correct behavior for reading a series of images from one source. - */ - src->start_of_file = TRUE; -} - - -/* - * Fill the input buffer --- called whenever buffer is emptied. - * - * In typical applications, this should read fresh data into the buffer - * (ignoring the current state of next_input_byte & bytes_in_buffer), - * reset the pointer & count to the start of the buffer, and return TRUE - * indicating that the buffer has been reloaded. It is not necessary to - * fill the buffer entirely, only to obtain at least one more byte. - * - * There is no such thing as an EOF return. If the end of the file has been - * reached, the routine has a choice of ERREXIT() or inserting fake data into - * the buffer. In most cases, generating a warning message and inserting a - * fake EOI marker is the best course of action --- this will allow the - * decompressor to output however much of the image is there. However, - * the resulting error message is misleading if the real problem is an empty - * input file, so we handle that case specially. - * - * In applications that need to be able to suspend compression due to input - * not being available yet, a FALSE return indicates that no more data can be - * obtained right now, but more may be forthcoming later. In this situation, - * the decompressor will return to its caller (with an indication of the - * number of scanlines it has read, if any). The application should resume - * decompression after it has loaded more data into the input buffer. Note - * that there are substantial restrictions on the use of suspension --- see - * the documentation. - * - * When suspending, the decompressor will back up to a convenient restart point - * (typically the start of the current MCU). next_input_byte & bytes_in_buffer - * indicate where the restart point will be if the current call returns FALSE. - * Data beyond this point must be rescanned after resumption, so move it to - * the front of the buffer rather than discarding it. - */ - -METHODDEF(boolean) -fill_input_buffer (j_decompress_ptr cinfo) -{ - my_src_ptr src = (my_src_ptr) cinfo->src; - size_t nbytes; - - nbytes = JFREAD(src->infile, src->buffer, INPUT_BUF_SIZE); - - if (nbytes <= 0) { - if (src->start_of_file) /* Treat empty input file as fatal error */ - ERREXIT(cinfo, JERR_INPUT_EMPTY); - WARNMS(cinfo, JWRN_JPEG_EOF); - /* Insert a fake EOI marker */ - src->buffer[0] = (JOCTET) 0xFF; - src->buffer[1] = (JOCTET) JPEG_EOI; - nbytes = 2; - } - - src->pub.next_input_byte = src->buffer; - src->pub.bytes_in_buffer = nbytes; - src->start_of_file = FALSE; - - return TRUE; -} - - -/* - * Skip data --- used to skip over a potentially large amount of - * uninteresting data (such as an APPn marker). - * - * Writers of suspendable-input applications must note that skip_input_data - * is not granted the right to give a suspension return. If the skip extends - * beyond the data currently in the buffer, the buffer can be marked empty so - * that the next read will cause a fill_input_buffer call that can suspend. - * Arranging for additional bytes to be discarded before reloading the input - * buffer is the application writer's problem. - */ - -METHODDEF(void) -skip_input_data (j_decompress_ptr cinfo, long num_bytes) -{ - my_src_ptr src = (my_src_ptr) cinfo->src; - - /* Just a dumb implementation for now. Could use fseek() except - * it doesn't work on pipes. Not clear that being smart is worth - * any trouble anyway --- large skips are infrequent. - */ - if (num_bytes > 0) { - while (num_bytes > (long) src->pub.bytes_in_buffer) { - num_bytes -= (long) src->pub.bytes_in_buffer; - (void) fill_input_buffer(cinfo); - /* note we assume that fill_input_buffer will never return FALSE, - * so suspension need not be handled. - */ - } - src->pub.next_input_byte += (size_t) num_bytes; - src->pub.bytes_in_buffer -= (size_t) num_bytes; - } -} - - -/* - * An additional method that can be provided by data source modules is the - * resync_to_restart method for error recovery in the presence of RST markers. - * For the moment, this source module just uses the default resync method - * provided by the JPEG library. That method assumes that no backtracking - * is possible. - */ - - -/* - * Terminate source --- called by jpeg_finish_decompress - * after all data has been read. Often a no-op. - * - * NB: *not* called by jpeg_abort or jpeg_destroy; surrounding - * application must deal with any cleanup that should happen even - * for error exit. - */ - -METHODDEF(void) -term_source (j_decompress_ptr cinfo) -{ - /* no work necessary here */ -} - - -/* - * Prepare for input from a stdio stream. - * The caller must have already opened the stream, and is responsible - * for closing it after finishing decompression. - */ - -GLOBAL(void) -jpeg_stdio_src (j_decompress_ptr cinfo, FILE * infile) -{ - my_src_ptr src; - - /* The source object and input buffer are made permanent so that a series - * of JPEG images can be read from the same file by calling jpeg_stdio_src - * only before the first one. (If we discarded the buffer at the end of - * one image, we'd likely lose the start of the next one.) - * This makes it unsafe to use this manager and a different source - * manager serially with the same JPEG object. Caveat programmer. - */ - if (cinfo->src == NULL) { /* first time for this JPEG object? */ - cinfo->src = (struct jpeg_source_mgr *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - SIZEOF(my_source_mgr)); - src = (my_src_ptr) cinfo->src; - src->buffer = (JOCTET *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - INPUT_BUF_SIZE * SIZEOF(JOCTET)); - } - - src = (my_src_ptr) cinfo->src; - src->pub.init_source = init_source; - src->pub.fill_input_buffer = fill_input_buffer; - src->pub.skip_input_data = skip_input_data; - src->pub.resync_to_restart = jpeg_resync_to_restart; /* use default method */ - src->pub.term_source = term_source; - src->infile = infile; - src->pub.bytes_in_buffer = 0; /* forces fill_input_buffer on first read */ - src->pub.next_input_byte = NULL; /* until buffer loaded */ -} diff --git a/src/jpeg/jdcoefct.c b/src/jpeg/jdcoefct.c deleted file mode 100644 index 4938d20fcb..0000000000 --- a/src/jpeg/jdcoefct.c +++ /dev/null @@ -1,736 +0,0 @@ -/* - * jdcoefct.c - * - * Copyright (C) 1994-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the coefficient buffer controller for decompression. - * This controller is the top level of the JPEG decompressor proper. - * The coefficient buffer lies between entropy decoding and inverse-DCT steps. - * - * In buffered-image mode, this controller is the interface between - * input-oriented processing and output-oriented processing. - * Also, the input side (only) is used when reading a file for transcoding. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - -/* Block smoothing is only applicable for progressive JPEG, so: */ -#ifndef D_PROGRESSIVE_SUPPORTED -#undef BLOCK_SMOOTHING_SUPPORTED -#endif - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_d_coef_controller pub; /* public fields */ - - /* These variables keep track of the current location of the input side. */ - /* cinfo->input_iMCU_row is also used for this. */ - JDIMENSION MCU_ctr; /* counts MCUs processed in current row */ - int MCU_vert_offset; /* counts MCU rows within iMCU row */ - int MCU_rows_per_iMCU_row; /* number of such rows needed */ - - /* The output side's location is represented by cinfo->output_iMCU_row. */ - - /* In single-pass modes, it's sufficient to buffer just one MCU. - * We allocate a workspace of D_MAX_BLOCKS_IN_MCU coefficient blocks, - * and let the entropy decoder write into that workspace each time. - * (On 80x86, the workspace is FAR even though it's not really very big; - * this is to keep the module interfaces unchanged when a large coefficient - * buffer is necessary.) - * In multi-pass modes, this array points to the current MCU's blocks - * within the virtual arrays; it is used only by the input side. - */ - JBLOCKROW MCU_buffer[D_MAX_BLOCKS_IN_MCU]; - -#ifdef D_MULTISCAN_FILES_SUPPORTED - /* In multi-pass modes, we need a virtual block array for each component. */ - jvirt_barray_ptr whole_image[MAX_COMPONENTS]; -#endif - -#ifdef BLOCK_SMOOTHING_SUPPORTED - /* When doing block smoothing, we latch coefficient Al values here */ - int * coef_bits_latch; -#define SAVED_COEFS 6 /* we save coef_bits[0..5] */ -#endif -} my_coef_controller; - -typedef my_coef_controller * my_coef_ptr; - -/* Forward declarations */ -METHODDEF(int) decompress_onepass - JPP((j_decompress_ptr cinfo, JSAMPIMAGE output_buf)); -#ifdef D_MULTISCAN_FILES_SUPPORTED -METHODDEF(int) decompress_data - JPP((j_decompress_ptr cinfo, JSAMPIMAGE output_buf)); -#endif -#ifdef BLOCK_SMOOTHING_SUPPORTED -LOCAL(boolean) smoothing_ok JPP((j_decompress_ptr cinfo)); -METHODDEF(int) decompress_smooth_data - JPP((j_decompress_ptr cinfo, JSAMPIMAGE output_buf)); -#endif - - -LOCAL(void) -start_iMCU_row (j_decompress_ptr cinfo) -/* Reset within-iMCU-row counters for a new row (input side) */ -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - - /* In an interleaved scan, an MCU row is the same as an iMCU row. - * In a noninterleaved scan, an iMCU row has v_samp_factor MCU rows. - * But at the bottom of the image, process only what's left. - */ - if (cinfo->comps_in_scan > 1) { - coef->MCU_rows_per_iMCU_row = 1; - } else { - if (cinfo->input_iMCU_row < (cinfo->total_iMCU_rows-1)) - coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->v_samp_factor; - else - coef->MCU_rows_per_iMCU_row = cinfo->cur_comp_info[0]->last_row_height; - } - - coef->MCU_ctr = 0; - coef->MCU_vert_offset = 0; -} - - -/* - * Initialize for an input processing pass. - */ - -METHODDEF(void) -start_input_pass (j_decompress_ptr cinfo) -{ - cinfo->input_iMCU_row = 0; - start_iMCU_row(cinfo); -} - - -/* - * Initialize for an output processing pass. - */ - -METHODDEF(void) -start_output_pass (j_decompress_ptr cinfo) -{ -#ifdef BLOCK_SMOOTHING_SUPPORTED - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - - /* If multipass, check to see whether to use block smoothing on this pass */ - if (coef->pub.coef_arrays != NULL) { - if (cinfo->do_block_smoothing && smoothing_ok(cinfo)) - coef->pub.decompress_data = decompress_smooth_data; - else - coef->pub.decompress_data = decompress_data; - } -#endif - cinfo->output_iMCU_row = 0; -} - - -/* - * Decompress and return some data in the single-pass case. - * Always attempts to emit one fully interleaved MCU row ("iMCU" row). - * Input and output must run in lockstep since we have only a one-MCU buffer. - * Return value is JPEG_ROW_COMPLETED, JPEG_SCAN_COMPLETED, or JPEG_SUSPENDED. - * - * NB: output_buf contains a plane for each component in image, - * which we index according to the component's SOF position. - */ - -METHODDEF(int) -decompress_onepass (j_decompress_ptr cinfo, JSAMPIMAGE output_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION MCU_col_num; /* index of current MCU within row */ - JDIMENSION last_MCU_col = cinfo->MCUs_per_row - 1; - JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1; - int blkn, ci, xindex, yindex, yoffset, useful_width; - JSAMPARRAY output_ptr; - JDIMENSION start_col, output_col; - jpeg_component_info *compptr; - inverse_DCT_method_ptr inverse_DCT; - - /* Loop to process as much as one whole iMCU row */ - for (yoffset = coef->MCU_vert_offset; yoffset < coef->MCU_rows_per_iMCU_row; - yoffset++) { - for (MCU_col_num = coef->MCU_ctr; MCU_col_num <= last_MCU_col; - MCU_col_num++) { - /* Try to fetch an MCU. Entropy decoder expects buffer to be zeroed. */ - jzero_far((void FAR *) coef->MCU_buffer[0], - (size_t) (cinfo->blocks_in_MCU * SIZEOF(JBLOCK))); - if (! (*cinfo->entropy->decode_mcu) (cinfo, coef->MCU_buffer)) { - /* Suspension forced; update state counters and exit */ - coef->MCU_vert_offset = yoffset; - coef->MCU_ctr = MCU_col_num; - return JPEG_SUSPENDED; - } - /* Determine where data should go in output_buf and do the IDCT thing. - * We skip dummy blocks at the right and bottom edges (but blkn gets - * incremented past them!). Note the inner loop relies on having - * allocated the MCU_buffer[] blocks sequentially. - */ - blkn = 0; /* index of current DCT block within MCU */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - /* Don't bother to IDCT an uninteresting component. */ - if (! compptr->component_needed) { - blkn += compptr->MCU_blocks; - continue; - } - inverse_DCT = cinfo->idct->inverse_DCT[compptr->component_index]; - useful_width = (MCU_col_num < last_MCU_col) ? compptr->MCU_width - : compptr->last_col_width; - output_ptr = output_buf[compptr->component_index] + - yoffset * compptr->DCT_scaled_size; - start_col = MCU_col_num * compptr->MCU_sample_width; - for (yindex = 0; yindex < compptr->MCU_height; yindex++) { - if (cinfo->input_iMCU_row < last_iMCU_row || - yoffset+yindex < compptr->last_row_height) { - output_col = start_col; - for (xindex = 0; xindex < useful_width; xindex++) { - (*inverse_DCT) (cinfo, compptr, - (JCOEFPTR) coef->MCU_buffer[blkn+xindex], - output_ptr, output_col); - output_col += compptr->DCT_scaled_size; - } - } - blkn += compptr->MCU_width; - output_ptr += compptr->DCT_scaled_size; - } - } - } - /* Completed an MCU row, but perhaps not an iMCU row */ - coef->MCU_ctr = 0; - } - /* Completed the iMCU row, advance counters for next one */ - cinfo->output_iMCU_row++; - if (++(cinfo->input_iMCU_row) < cinfo->total_iMCU_rows) { - start_iMCU_row(cinfo); - return JPEG_ROW_COMPLETED; - } - /* Completed the scan */ - (*cinfo->inputctl->finish_input_pass) (cinfo); - return JPEG_SCAN_COMPLETED; -} - - -/* - * Dummy consume-input routine for single-pass operation. - */ - -METHODDEF(int) -dummy_consume_data (j_decompress_ptr cinfo) -{ - return JPEG_SUSPENDED; /* Always indicate nothing was done */ -} - - -#ifdef D_MULTISCAN_FILES_SUPPORTED - -/* - * Consume input data and store it in the full-image coefficient buffer. - * We read as much as one fully interleaved MCU row ("iMCU" row) per call, - * ie, v_samp_factor block rows for each component in the scan. - * Return value is JPEG_ROW_COMPLETED, JPEG_SCAN_COMPLETED, or JPEG_SUSPENDED. - */ - -METHODDEF(int) -consume_data (j_decompress_ptr cinfo) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION MCU_col_num; /* index of current MCU within row */ - int blkn, ci, xindex, yindex, yoffset; - JDIMENSION start_col; - JBLOCKARRAY buffer[MAX_COMPS_IN_SCAN]; - JBLOCKROW buffer_ptr; - jpeg_component_info *compptr; - - /* Align the virtual buffers for the components used in this scan. */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - buffer[ci] = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[compptr->component_index], - cinfo->input_iMCU_row * compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, TRUE); - /* Note: entropy decoder expects buffer to be zeroed, - * but this is handled automatically by the memory manager - * because we requested a pre-zeroed array. - */ - } - - /* Loop to process one whole iMCU row */ - for (yoffset = coef->MCU_vert_offset; yoffset < coef->MCU_rows_per_iMCU_row; - yoffset++) { - for (MCU_col_num = coef->MCU_ctr; MCU_col_num < cinfo->MCUs_per_row; - MCU_col_num++) { - /* Construct list of pointers to DCT blocks belonging to this MCU */ - blkn = 0; /* index of current DCT block within MCU */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - start_col = MCU_col_num * compptr->MCU_width; - for (yindex = 0; yindex < compptr->MCU_height; yindex++) { - buffer_ptr = buffer[ci][yindex+yoffset] + start_col; - for (xindex = 0; xindex < compptr->MCU_width; xindex++) { - coef->MCU_buffer[blkn++] = buffer_ptr++; - } - } - } - /* Try to fetch the MCU. */ - if (! (*cinfo->entropy->decode_mcu) (cinfo, coef->MCU_buffer)) { - /* Suspension forced; update state counters and exit */ - coef->MCU_vert_offset = yoffset; - coef->MCU_ctr = MCU_col_num; - return JPEG_SUSPENDED; - } - } - /* Completed an MCU row, but perhaps not an iMCU row */ - coef->MCU_ctr = 0; - } - /* Completed the iMCU row, advance counters for next one */ - if (++(cinfo->input_iMCU_row) < cinfo->total_iMCU_rows) { - start_iMCU_row(cinfo); - return JPEG_ROW_COMPLETED; - } - /* Completed the scan */ - (*cinfo->inputctl->finish_input_pass) (cinfo); - return JPEG_SCAN_COMPLETED; -} - - -/* - * Decompress and return some data in the multi-pass case. - * Always attempts to emit one fully interleaved MCU row ("iMCU" row). - * Return value is JPEG_ROW_COMPLETED, JPEG_SCAN_COMPLETED, or JPEG_SUSPENDED. - * - * NB: output_buf contains a plane for each component in image. - */ - -METHODDEF(int) -decompress_data (j_decompress_ptr cinfo, JSAMPIMAGE output_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1; - JDIMENSION block_num; - int ci, block_row, block_rows; - JBLOCKARRAY buffer; - JBLOCKROW buffer_ptr; - JSAMPARRAY output_ptr; - JDIMENSION output_col; - jpeg_component_info *compptr; - inverse_DCT_method_ptr inverse_DCT; - - /* Force some input to be done if we are getting ahead of the input. */ - while (cinfo->input_scan_number < cinfo->output_scan_number || - (cinfo->input_scan_number == cinfo->output_scan_number && - cinfo->input_iMCU_row <= cinfo->output_iMCU_row)) { - if ((*cinfo->inputctl->consume_input)(cinfo) == JPEG_SUSPENDED) - return JPEG_SUSPENDED; - } - - /* OK, output from the virtual arrays. */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Don't bother to IDCT an uninteresting component. */ - if (! compptr->component_needed) - continue; - /* Align the virtual buffer for this component. */ - buffer = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[ci], - cinfo->output_iMCU_row * compptr->v_samp_factor, - (JDIMENSION) compptr->v_samp_factor, FALSE); - /* Count non-dummy DCT block rows in this iMCU row. */ - if (cinfo->output_iMCU_row < last_iMCU_row) - block_rows = compptr->v_samp_factor; - else { - /* NB: can't use last_row_height here; it is input-side-dependent! */ - block_rows = (int) (compptr->height_in_blocks % compptr->v_samp_factor); - if (block_rows == 0) block_rows = compptr->v_samp_factor; - } - inverse_DCT = cinfo->idct->inverse_DCT[ci]; - output_ptr = output_buf[ci]; - /* Loop over all DCT blocks to be processed. */ - for (block_row = 0; block_row < block_rows; block_row++) { - buffer_ptr = buffer[block_row]; - output_col = 0; - for (block_num = 0; block_num < compptr->width_in_blocks; block_num++) { - (*inverse_DCT) (cinfo, compptr, (JCOEFPTR) buffer_ptr, - output_ptr, output_col); - buffer_ptr++; - output_col += compptr->DCT_scaled_size; - } - output_ptr += compptr->DCT_scaled_size; - } - } - - if (++(cinfo->output_iMCU_row) < cinfo->total_iMCU_rows) - return JPEG_ROW_COMPLETED; - return JPEG_SCAN_COMPLETED; -} - -#endif /* D_MULTISCAN_FILES_SUPPORTED */ - - -#ifdef BLOCK_SMOOTHING_SUPPORTED - -/* - * This code applies interblock smoothing as described by section K.8 - * of the JPEG standard: the first 5 AC coefficients are estimated from - * the DC values of a DCT block and its 8 neighboring blocks. - * We apply smoothing only for progressive JPEG decoding, and only if - * the coefficients it can estimate are not yet known to full precision. - */ - -/* Natural-order array positions of the first 5 zigzag-order coefficients */ -#define Q01_POS 1 -#define Q10_POS 8 -#define Q20_POS 16 -#define Q11_POS 9 -#define Q02_POS 2 - -/* - * Determine whether block smoothing is applicable and safe. - * We also latch the current states of the coef_bits[] entries for the - * AC coefficients; otherwise, if the input side of the decompressor - * advances into a new scan, we might think the coefficients are known - * more accurately than they really are. - */ - -LOCAL(boolean) -smoothing_ok (j_decompress_ptr cinfo) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - boolean smoothing_useful = FALSE; - int ci, coefi; - jpeg_component_info *compptr; - JQUANT_TBL * qtable; - int * coef_bits; - int * coef_bits_latch; - - if (! cinfo->progressive_mode || cinfo->coef_bits == NULL) - return FALSE; - - /* Allocate latch area if not already done */ - if (coef->coef_bits_latch == NULL) - coef->coef_bits_latch = (int *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - cinfo->num_components * - (SAVED_COEFS * SIZEOF(int))); - coef_bits_latch = coef->coef_bits_latch; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* All components' quantization values must already be latched. */ - if ((qtable = compptr->quant_table) == NULL) - return FALSE; - /* Verify DC & first 5 AC quantizers are nonzero to avoid zero-divide. */ - if (qtable->quantval[0] == 0 || - qtable->quantval[Q01_POS] == 0 || - qtable->quantval[Q10_POS] == 0 || - qtable->quantval[Q20_POS] == 0 || - qtable->quantval[Q11_POS] == 0 || - qtable->quantval[Q02_POS] == 0) - return FALSE; - /* DC values must be at least partly known for all components. */ - coef_bits = cinfo->coef_bits[ci]; - if (coef_bits[0] < 0) - return FALSE; - /* Block smoothing is helpful if some AC coefficients remain inaccurate. */ - for (coefi = 1; coefi <= 5; coefi++) { - coef_bits_latch[coefi] = coef_bits[coefi]; - if (coef_bits[coefi] != 0) - smoothing_useful = TRUE; - } - coef_bits_latch += SAVED_COEFS; - } - - return smoothing_useful; -} - - -/* - * Variant of decompress_data for use when doing block smoothing. - */ - -METHODDEF(int) -decompress_smooth_data (j_decompress_ptr cinfo, JSAMPIMAGE output_buf) -{ - my_coef_ptr coef = (my_coef_ptr) cinfo->coef; - JDIMENSION last_iMCU_row = cinfo->total_iMCU_rows - 1; - JDIMENSION block_num, last_block_column; - int ci, block_row, block_rows, access_rows; - JBLOCKARRAY buffer; - JBLOCKROW buffer_ptr, prev_block_row, next_block_row; - JSAMPARRAY output_ptr; - JDIMENSION output_col; - jpeg_component_info *compptr; - inverse_DCT_method_ptr inverse_DCT; - boolean first_row, last_row; - JBLOCK workspace; - int *coef_bits; - JQUANT_TBL *quanttbl; - INT32 Q00,Q01,Q02,Q10,Q11,Q20, num; - int DC1,DC2,DC3,DC4,DC5,DC6,DC7,DC8,DC9; - int Al, pred; - - /* Force some input to be done if we are getting ahead of the input. */ - while (cinfo->input_scan_number <= cinfo->output_scan_number && - ! cinfo->inputctl->eoi_reached) { - if (cinfo->input_scan_number == cinfo->output_scan_number) { - /* If input is working on current scan, we ordinarily want it to - * have completed the current row. But if input scan is DC, - * we want it to keep one row ahead so that next block row's DC - * values are up to date. - */ - JDIMENSION delta = (cinfo->Ss == 0) ? 1 : 0; - if (cinfo->input_iMCU_row > cinfo->output_iMCU_row+delta) - break; - } - if ((*cinfo->inputctl->consume_input)(cinfo) == JPEG_SUSPENDED) - return JPEG_SUSPENDED; - } - - /* OK, output from the virtual arrays. */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Don't bother to IDCT an uninteresting component. */ - if (! compptr->component_needed) - continue; - /* Count non-dummy DCT block rows in this iMCU row. */ - if (cinfo->output_iMCU_row < last_iMCU_row) { - block_rows = compptr->v_samp_factor; - access_rows = block_rows * 2; /* this and next iMCU row */ - last_row = FALSE; - } else { - /* NB: can't use last_row_height here; it is input-side-dependent! */ - block_rows = (int) (compptr->height_in_blocks % compptr->v_samp_factor); - if (block_rows == 0) block_rows = compptr->v_samp_factor; - access_rows = block_rows; /* this iMCU row only */ - last_row = TRUE; - } - /* Align the virtual buffer for this component. */ - if (cinfo->output_iMCU_row > 0) { - access_rows += compptr->v_samp_factor; /* prior iMCU row too */ - buffer = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[ci], - (cinfo->output_iMCU_row - 1) * compptr->v_samp_factor, - (JDIMENSION) access_rows, FALSE); - buffer += compptr->v_samp_factor; /* point to current iMCU row */ - first_row = FALSE; - } else { - buffer = (*cinfo->mem->access_virt_barray) - ((j_common_ptr) cinfo, coef->whole_image[ci], - (JDIMENSION) 0, (JDIMENSION) access_rows, FALSE); - first_row = TRUE; - } - /* Fetch component-dependent info */ - coef_bits = coef->coef_bits_latch + (ci * SAVED_COEFS); - quanttbl = compptr->quant_table; - Q00 = quanttbl->quantval[0]; - Q01 = quanttbl->quantval[Q01_POS]; - Q10 = quanttbl->quantval[Q10_POS]; - Q20 = quanttbl->quantval[Q20_POS]; - Q11 = quanttbl->quantval[Q11_POS]; - Q02 = quanttbl->quantval[Q02_POS]; - inverse_DCT = cinfo->idct->inverse_DCT[ci]; - output_ptr = output_buf[ci]; - /* Loop over all DCT blocks to be processed. */ - for (block_row = 0; block_row < block_rows; block_row++) { - buffer_ptr = buffer[block_row]; - if (first_row && block_row == 0) - prev_block_row = buffer_ptr; - else - prev_block_row = buffer[block_row-1]; - if (last_row && block_row == block_rows-1) - next_block_row = buffer_ptr; - else - next_block_row = buffer[block_row+1]; - /* We fetch the surrounding DC values using a sliding-register approach. - * Initialize all nine here so as to do the right thing on narrow pics. - */ - DC1 = DC2 = DC3 = (int) prev_block_row[0][0]; - DC4 = DC5 = DC6 = (int) buffer_ptr[0][0]; - DC7 = DC8 = DC9 = (int) next_block_row[0][0]; - output_col = 0; - last_block_column = compptr->width_in_blocks - 1; - for (block_num = 0; block_num <= last_block_column; block_num++) { - /* Fetch current DCT block into workspace so we can modify it. */ - jcopy_block_row(buffer_ptr, (JBLOCKROW) workspace, (JDIMENSION) 1); - /* Update DC values */ - if (block_num < last_block_column) { - DC3 = (int) prev_block_row[1][0]; - DC6 = (int) buffer_ptr[1][0]; - DC9 = (int) next_block_row[1][0]; - } - /* Compute coefficient estimates per K.8. - * An estimate is applied only if coefficient is still zero, - * and is not known to be fully accurate. - */ - /* AC01 */ - if ((Al=coef_bits[1]) != 0 && workspace[1] == 0) { - num = 36 * Q00 * (DC4 - DC6); - if (num >= 0) { - pred = (int) (((Q01<<7) + num) / (Q01<<8)); - if (Al > 0 && pred >= (1< 0 && pred >= (1<= 0) { - pred = (int) (((Q10<<7) + num) / (Q10<<8)); - if (Al > 0 && pred >= (1< 0 && pred >= (1<= 0) { - pred = (int) (((Q20<<7) + num) / (Q20<<8)); - if (Al > 0 && pred >= (1< 0 && pred >= (1<= 0) { - pred = (int) (((Q11<<7) + num) / (Q11<<8)); - if (Al > 0 && pred >= (1< 0 && pred >= (1<= 0) { - pred = (int) (((Q02<<7) + num) / (Q02<<8)); - if (Al > 0 && pred >= (1< 0 && pred >= (1<DCT_scaled_size; - } - output_ptr += compptr->DCT_scaled_size; - } - } - - if (++(cinfo->output_iMCU_row) < cinfo->total_iMCU_rows) - return JPEG_ROW_COMPLETED; - return JPEG_SCAN_COMPLETED; -} - -#endif /* BLOCK_SMOOTHING_SUPPORTED */ - - -/* - * Initialize coefficient buffer controller. - */ - -GLOBAL(void) -jinit_d_coef_controller (j_decompress_ptr cinfo, boolean need_full_buffer) -{ - my_coef_ptr coef; - - coef = (my_coef_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_coef_controller)); - cinfo->coef = (struct jpeg_d_coef_controller *) coef; - coef->pub.start_input_pass = start_input_pass; - coef->pub.start_output_pass = start_output_pass; -#ifdef BLOCK_SMOOTHING_SUPPORTED - coef->coef_bits_latch = NULL; -#endif - - /* Create the coefficient buffer. */ - if (need_full_buffer) { -#ifdef D_MULTISCAN_FILES_SUPPORTED - /* Allocate a full-image virtual array for each component, */ - /* padded to a multiple of samp_factor DCT blocks in each direction. */ - /* Note we ask for a pre-zeroed array. */ - int ci, access_rows; - jpeg_component_info *compptr; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - access_rows = compptr->v_samp_factor; -#ifdef BLOCK_SMOOTHING_SUPPORTED - /* If block smoothing could be used, need a bigger window */ - if (cinfo->progressive_mode) - access_rows *= 3; -#endif - coef->whole_image[ci] = (*cinfo->mem->request_virt_barray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, TRUE, - (JDIMENSION) jround_up((long) compptr->width_in_blocks, - (long) compptr->h_samp_factor), - (JDIMENSION) jround_up((long) compptr->height_in_blocks, - (long) compptr->v_samp_factor), - (JDIMENSION) access_rows); - } - coef->pub.consume_data = consume_data; - coef->pub.decompress_data = decompress_data; - coef->pub.coef_arrays = coef->whole_image; /* link to virtual arrays */ -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else { - /* We only need a single-MCU buffer. */ - JBLOCKROW buffer; - int i; - - buffer = (JBLOCKROW) - (*cinfo->mem->alloc_large) ((j_common_ptr) cinfo, JPOOL_IMAGE, - D_MAX_BLOCKS_IN_MCU * SIZEOF(JBLOCK)); - for (i = 0; i < D_MAX_BLOCKS_IN_MCU; i++) { - coef->MCU_buffer[i] = buffer + i; - } - coef->pub.consume_data = dummy_consume_data; - coef->pub.decompress_data = decompress_onepass; - coef->pub.coef_arrays = NULL; /* flag for no virtual arrays */ - } -} diff --git a/src/jpeg/jdcolor.c b/src/jpeg/jdcolor.c deleted file mode 100644 index 6c04dfe8aa..0000000000 --- a/src/jpeg/jdcolor.c +++ /dev/null @@ -1,396 +0,0 @@ -/* - * jdcolor.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains output colorspace conversion routines. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Private subobject */ - -typedef struct { - struct jpeg_color_deconverter pub; /* public fields */ - - /* Private state for YCC->RGB conversion */ - int * Cr_r_tab; /* => table for Cr to R conversion */ - int * Cb_b_tab; /* => table for Cb to B conversion */ - INT32 * Cr_g_tab; /* => table for Cr to G conversion */ - INT32 * Cb_g_tab; /* => table for Cb to G conversion */ -} my_color_deconverter; - -typedef my_color_deconverter * my_cconvert_ptr; - - -/**************** YCbCr -> RGB conversion: most common case **************/ - -/* - * YCbCr is defined per CCIR 601-1, except that Cb and Cr are - * normalized to the range 0..MAXJSAMPLE rather than -0.5 .. 0.5. - * The conversion equations to be implemented are therefore - * R = Y + 1.40200 * Cr - * G = Y - 0.34414 * Cb - 0.71414 * Cr - * B = Y + 1.77200 * Cb - * where Cb and Cr represent the incoming values less CENTERJSAMPLE. - * (These numbers are derived from TIFF 6.0 section 21, dated 3-June-92.) - * - * To avoid floating-point arithmetic, we represent the fractional constants - * as integers scaled up by 2^16 (about 4 digits precision); we have to divide - * the products by 2^16, with appropriate rounding, to get the correct answer. - * Notice that Y, being an integral input, does not contribute any fraction - * so it need not participate in the rounding. - * - * For even more speed, we avoid doing any multiplications in the inner loop - * by precalculating the constants times Cb and Cr for all possible values. - * For 8-bit JSAMPLEs this is very reasonable (only 256 entries per table); - * for 12-bit samples it is still acceptable. It's not very reasonable for - * 16-bit samples, but if you want lossless storage you shouldn't be changing - * colorspace anyway. - * The Cr=>R and Cb=>B values can be rounded to integers in advance; the - * values for the G calculation are left scaled up, since we must add them - * together before rounding. - */ - -#define SCALEBITS 16 /* speediest right-shift on some machines */ -#define ONE_HALF ((INT32) 1 << (SCALEBITS-1)) -#define FIX(x) ((INT32) ((x) * (1L<RGB colorspace conversion. - */ - -LOCAL(void) -build_ycc_rgb_table (j_decompress_ptr cinfo) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - int i; - INT32 x; - SHIFT_TEMPS - - cconvert->Cr_r_tab = (int *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(int)); - cconvert->Cb_b_tab = (int *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(int)); - cconvert->Cr_g_tab = (INT32 *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(INT32)); - cconvert->Cb_g_tab = (INT32 *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(INT32)); - - for (i = 0, x = -CENTERJSAMPLE; i <= MAXJSAMPLE; i++, x++) { - /* i is the actual input pixel value, in the range 0..MAXJSAMPLE */ - /* The Cb or Cr value we are thinking of is x = i - CENTERJSAMPLE */ - /* Cr=>R value is nearest int to 1.40200 * x */ - cconvert->Cr_r_tab[i] = (int) - RIGHT_SHIFT(FIX(1.40200) * x + ONE_HALF, SCALEBITS); - /* Cb=>B value is nearest int to 1.77200 * x */ - cconvert->Cb_b_tab[i] = (int) - RIGHT_SHIFT(FIX(1.77200) * x + ONE_HALF, SCALEBITS); - /* Cr=>G value is scaled-up -0.71414 * x */ - cconvert->Cr_g_tab[i] = (- FIX(0.71414)) * x; - /* Cb=>G value is scaled-up -0.34414 * x */ - /* We also add in ONE_HALF so that need not do it in inner loop */ - cconvert->Cb_g_tab[i] = (- FIX(0.34414)) * x + ONE_HALF; - } -} - - -/* - * Convert some rows of samples to the output colorspace. - * - * Note that we change from noninterleaved, one-plane-per-component format - * to interleaved-pixel format. The output buffer is therefore three times - * as wide as the input buffer. - * A starting row offset is provided only for the input buffer. The caller - * can easily adjust the passed output_buf value to accommodate any row - * offset required on that side. - */ - -METHODDEF(void) -ycc_rgb_convert (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - register int y, cb, cr; - register JSAMPROW outptr; - register JSAMPROW inptr0, inptr1, inptr2; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->output_width; - /* copy these pointers into registers if possible */ - register JSAMPLE * range_limit = cinfo->sample_range_limit; - register int * Crrtab = cconvert->Cr_r_tab; - register int * Cbbtab = cconvert->Cb_b_tab; - register INT32 * Crgtab = cconvert->Cr_g_tab; - register INT32 * Cbgtab = cconvert->Cb_g_tab; - SHIFT_TEMPS - - while (--num_rows >= 0) { - inptr0 = input_buf[0][input_row]; - inptr1 = input_buf[1][input_row]; - inptr2 = input_buf[2][input_row]; - input_row++; - outptr = *output_buf++; - for (col = 0; col < num_cols; col++) { - y = GETJSAMPLE(inptr0[col]); - cb = GETJSAMPLE(inptr1[col]); - cr = GETJSAMPLE(inptr2[col]); - /* Range-limiting is essential due to noise introduced by DCT losses. */ - outptr[RGB_RED] = range_limit[y + Crrtab[cr]]; - outptr[RGB_GREEN] = range_limit[y + - ((int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], - SCALEBITS))]; - outptr[RGB_BLUE] = range_limit[y + Cbbtab[cb]]; - outptr += RGB_PIXELSIZE; - } - } -} - - -/**************** Cases other than YCbCr -> RGB **************/ - - -/* - * Color conversion for no colorspace change: just copy the data, - * converting from separate-planes to interleaved representation. - */ - -METHODDEF(void) -null_convert (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows) -{ - register JSAMPROW inptr, outptr; - register JDIMENSION count; - register int num_components = cinfo->num_components; - JDIMENSION num_cols = cinfo->output_width; - int ci; - - while (--num_rows >= 0) { - for (ci = 0; ci < num_components; ci++) { - inptr = input_buf[ci][input_row]; - outptr = output_buf[0] + ci; - for (count = num_cols; count > 0; count--) { - *outptr = *inptr++; /* needn't bother with GETJSAMPLE() here */ - outptr += num_components; - } - } - input_row++; - output_buf++; - } -} - - -/* - * Color conversion for grayscale: just copy the data. - * This also works for YCbCr -> grayscale conversion, in which - * we just copy the Y (luminance) component and ignore chrominance. - */ - -METHODDEF(void) -grayscale_convert (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows) -{ - jcopy_sample_rows(input_buf[0], (int) input_row, output_buf, 0, - num_rows, cinfo->output_width); -} - - -/* - * Convert grayscale to RGB: just duplicate the graylevel three times. - * This is provided to support applications that don't want to cope - * with grayscale as a separate case. - */ - -METHODDEF(void) -gray_rgb_convert (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows) -{ - register JSAMPROW inptr, outptr; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->output_width; - - while (--num_rows >= 0) { - inptr = input_buf[0][input_row++]; - outptr = *output_buf++; - for (col = 0; col < num_cols; col++) { - /* We can dispense with GETJSAMPLE() here */ - outptr[RGB_RED] = outptr[RGB_GREEN] = outptr[RGB_BLUE] = inptr[col]; - outptr += RGB_PIXELSIZE; - } - } -} - - -/* - * Adobe-style YCCK->CMYK conversion. - * We convert YCbCr to R=1-C, G=1-M, and B=1-Y using the same - * conversion as above, while passing K (black) unchanged. - * We assume build_ycc_rgb_table has been called. - */ - -METHODDEF(void) -ycck_cmyk_convert (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows) -{ - my_cconvert_ptr cconvert = (my_cconvert_ptr) cinfo->cconvert; - register int y, cb, cr; - register JSAMPROW outptr; - register JSAMPROW inptr0, inptr1, inptr2, inptr3; - register JDIMENSION col; - JDIMENSION num_cols = cinfo->output_width; - /* copy these pointers into registers if possible */ - register JSAMPLE * range_limit = cinfo->sample_range_limit; - register int * Crrtab = cconvert->Cr_r_tab; - register int * Cbbtab = cconvert->Cb_b_tab; - register INT32 * Crgtab = cconvert->Cr_g_tab; - register INT32 * Cbgtab = cconvert->Cb_g_tab; - SHIFT_TEMPS - - while (--num_rows >= 0) { - inptr0 = input_buf[0][input_row]; - inptr1 = input_buf[1][input_row]; - inptr2 = input_buf[2][input_row]; - inptr3 = input_buf[3][input_row]; - input_row++; - outptr = *output_buf++; - for (col = 0; col < num_cols; col++) { - y = GETJSAMPLE(inptr0[col]); - cb = GETJSAMPLE(inptr1[col]); - cr = GETJSAMPLE(inptr2[col]); - /* Range-limiting is essential due to noise introduced by DCT losses. */ - outptr[0] = range_limit[MAXJSAMPLE - (y + Crrtab[cr])]; /* red */ - outptr[1] = range_limit[MAXJSAMPLE - (y + /* green */ - ((int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], - SCALEBITS)))]; - outptr[2] = range_limit[MAXJSAMPLE - (y + Cbbtab[cb])]; /* blue */ - /* K passes through unchanged */ - outptr[3] = inptr3[col]; /* don't need GETJSAMPLE here */ - outptr += 4; - } - } -} - - -/* - * Empty method for start_pass. - */ - -METHODDEF(void) -start_pass_dcolor (j_decompress_ptr cinfo) -{ - /* no work needed */ -} - - -/* - * Module initialization routine for output colorspace conversion. - */ - -GLOBAL(void) -jinit_color_deconverter (j_decompress_ptr cinfo) -{ - my_cconvert_ptr cconvert; - int ci; - - cconvert = (my_cconvert_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_color_deconverter)); - cinfo->cconvert = (struct jpeg_color_deconverter *) cconvert; - cconvert->pub.start_pass = start_pass_dcolor; - - /* Make sure num_components agrees with jpeg_color_space */ - switch (cinfo->jpeg_color_space) { - case JCS_GRAYSCALE: - if (cinfo->num_components != 1) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - break; - - case JCS_RGB: - case JCS_YCbCr: - if (cinfo->num_components != 3) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - break; - - case JCS_CMYK: - case JCS_YCCK: - if (cinfo->num_components != 4) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - break; - - default: /* JCS_UNKNOWN can be anything */ - if (cinfo->num_components < 1) - ERREXIT(cinfo, JERR_BAD_J_COLORSPACE); - break; - } - - /* Set out_color_components and conversion method based on requested space. - * Also clear the component_needed flags for any unused components, - * so that earlier pipeline stages can avoid useless computation. - */ - - switch (cinfo->out_color_space) { - case JCS_GRAYSCALE: - cinfo->out_color_components = 1; - if (cinfo->jpeg_color_space == JCS_GRAYSCALE || - cinfo->jpeg_color_space == JCS_YCbCr) { - cconvert->pub.color_convert = grayscale_convert; - /* For color->grayscale conversion, only the Y (0) component is needed */ - for (ci = 1; ci < cinfo->num_components; ci++) - cinfo->comp_info[ci].component_needed = FALSE; - } else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - case JCS_RGB: - cinfo->out_color_components = RGB_PIXELSIZE; - if (cinfo->jpeg_color_space == JCS_YCbCr) { - cconvert->pub.color_convert = ycc_rgb_convert; - build_ycc_rgb_table(cinfo); - } else if (cinfo->jpeg_color_space == JCS_GRAYSCALE) { - cconvert->pub.color_convert = gray_rgb_convert; - } else if (cinfo->jpeg_color_space == JCS_RGB && RGB_PIXELSIZE == 3) { - cconvert->pub.color_convert = null_convert; - } else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - case JCS_CMYK: - cinfo->out_color_components = 4; - if (cinfo->jpeg_color_space == JCS_YCCK) { - cconvert->pub.color_convert = ycck_cmyk_convert; - build_ycc_rgb_table(cinfo); - } else if (cinfo->jpeg_color_space == JCS_CMYK) { - cconvert->pub.color_convert = null_convert; - } else - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - - default: - /* Permit null conversion to same output space */ - if (cinfo->out_color_space == cinfo->jpeg_color_space) { - cinfo->out_color_components = cinfo->num_components; - cconvert->pub.color_convert = null_convert; - } else /* unsupported non-null conversion */ - ERREXIT(cinfo, JERR_CONVERSION_NOTIMPL); - break; - } - - if (cinfo->quantize_colors) - cinfo->output_components = 1; /* single colormapped output component */ - else - cinfo->output_components = cinfo->out_color_components; -} diff --git a/src/jpeg/jdct.h b/src/jpeg/jdct.h deleted file mode 100644 index 04192a266a..0000000000 --- a/src/jpeg/jdct.h +++ /dev/null @@ -1,176 +0,0 @@ -/* - * jdct.h - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This include file contains common declarations for the forward and - * inverse DCT modules. These declarations are private to the DCT managers - * (jcdctmgr.c, jddctmgr.c) and the individual DCT algorithms. - * The individual DCT algorithms are kept in separate files to ease - * machine-dependent tuning (e.g., assembly coding). - */ - - -/* - * A forward DCT routine is given a pointer to a work area of type DCTELEM[]; - * the DCT is to be performed in-place in that buffer. Type DCTELEM is int - * for 8-bit samples, INT32 for 12-bit samples. (NOTE: Floating-point DCT - * implementations use an array of type FAST_FLOAT, instead.) - * The DCT inputs are expected to be signed (range +-CENTERJSAMPLE). - * The DCT outputs are returned scaled up by a factor of 8; they therefore - * have a range of +-8K for 8-bit data, +-128K for 12-bit data. This - * convention improves accuracy in integer implementations and saves some - * work in floating-point ones. - * Quantization of the output coefficients is done by jcdctmgr.c. - */ - -#if BITS_IN_JSAMPLE == 8 -typedef int DCTELEM; /* 16 or 32 bits is fine */ -#else -typedef INT32 DCTELEM; /* must have 32 bits */ -#endif - -typedef JMETHOD(void, forward_DCT_method_ptr, (DCTELEM * data)); -typedef JMETHOD(void, float_DCT_method_ptr, (FAST_FLOAT * data)); - - -/* - * An inverse DCT routine is given a pointer to the input JBLOCK and a pointer - * to an output sample array. The routine must dequantize the input data as - * well as perform the IDCT; for dequantization, it uses the multiplier table - * pointed to by compptr->dct_table. The output data is to be placed into the - * sample array starting at a specified column. (Any row offset needed will - * be applied to the array pointer before it is passed to the IDCT code.) - * Note that the number of samples emitted by the IDCT routine is - * DCT_scaled_size * DCT_scaled_size. - */ - -/* typedef inverse_DCT_method_ptr is declared in jpegint.h */ - -/* - * Each IDCT routine has its own ideas about the best dct_table element type. - */ - -typedef MULTIPLIER ISLOW_MULT_TYPE; /* short or int, whichever is faster */ -#if BITS_IN_JSAMPLE == 8 -typedef MULTIPLIER IFAST_MULT_TYPE; /* 16 bits is OK, use short if faster */ -#define IFAST_SCALE_BITS 2 /* fractional bits in scale factors */ -#else -typedef INT32 IFAST_MULT_TYPE; /* need 32 bits for scaled quantizers */ -#define IFAST_SCALE_BITS 13 /* fractional bits in scale factors */ -#endif -typedef FAST_FLOAT FLOAT_MULT_TYPE; /* preferred floating type */ - - -/* - * Each IDCT routine is responsible for range-limiting its results and - * converting them to unsigned form (0..MAXJSAMPLE). The raw outputs could - * be quite far out of range if the input data is corrupt, so a bulletproof - * range-limiting step is required. We use a mask-and-table-lookup method - * to do the combined operations quickly. See the comments with - * prepare_range_limit_table (in jdmaster.c) for more info. - */ - -#define IDCT_range_limit(cinfo) ((cinfo)->sample_range_limit + CENTERJSAMPLE) - -#define RANGE_MASK (MAXJSAMPLE * 4 + 3) /* 2 bits wider than legal samples */ - - -/* Short forms of external names for systems with brain-damaged linkers. */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_fdct_islow jFDislow -#define jpeg_fdct_ifast jFDifast -#define jpeg_fdct_float jFDfloat -#define jpeg_idct_islow jRDislow -#define jpeg_idct_ifast jRDifast -#define jpeg_idct_float jRDfloat -#define jpeg_idct_4x4 jRD4x4 -#define jpeg_idct_2x2 jRD2x2 -#define jpeg_idct_1x1 jRD1x1 -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - -/* Extern declarations for the forward and inverse DCT routines. */ - -EXTERN(void) jpeg_fdct_islow JPP((DCTELEM * data)); -EXTERN(void) jpeg_fdct_ifast JPP((DCTELEM * data)); -EXTERN(void) jpeg_fdct_float JPP((FAST_FLOAT * data)); - -EXTERN(void) jpeg_idct_islow - JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)); -EXTERN(void) jpeg_idct_ifast - JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)); -EXTERN(void) jpeg_idct_float - JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)); -EXTERN(void) jpeg_idct_4x4 - JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)); -EXTERN(void) jpeg_idct_2x2 - JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)); -EXTERN(void) jpeg_idct_1x1 - JPP((j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, JSAMPARRAY output_buf, JDIMENSION output_col)); - - -/* - * Macros for handling fixed-point arithmetic; these are used by many - * but not all of the DCT/IDCT modules. - * - * All values are expected to be of type INT32. - * Fractional constants are scaled left by CONST_BITS bits. - * CONST_BITS is defined within each module using these macros, - * and may differ from one module to the next. - */ - -#define ONE ((INT32) 1) -#define CONST_SCALE (ONE << CONST_BITS) - -/* Convert a positive real constant to an integer scaled by CONST_SCALE. - * Caution: some C compilers fail to reduce "FIX(constant)" at compile time, - * thus causing a lot of useless floating-point operations at run time. - */ - -#define FIX(x) ((INT32) ((x) * CONST_SCALE + 0.5)) - -/* Descale and correctly round an INT32 value that's scaled by N bits. - * We assume RIGHT_SHIFT rounds towards minus infinity, so adding - * the fudge factor is correct for either sign of X. - */ - -#define DESCALE(x,n) RIGHT_SHIFT((x) + (ONE << ((n)-1)), n) - -/* Multiply an INT32 variable by an INT32 constant to yield an INT32 result. - * This macro is used only when the two inputs will actually be no more than - * 16 bits wide, so that a 16x16->32 bit multiply can be used instead of a - * full 32x32 multiply. This provides a useful speedup on many machines. - * Unfortunately there is no way to specify a 16x16->32 multiply portably - * in C, but some C compilers will do the right thing if you provide the - * correct combination of casts. - */ - -#ifdef SHORTxSHORT_32 /* may work if 'int' is 32 bits */ -#define MULTIPLY16C16(var,const) (((INT16) (var)) * ((INT16) (const))) -#endif -#ifdef SHORTxLCONST_32 /* known to work with Microsoft C 6.0 */ -#define MULTIPLY16C16(var,const) (((INT16) (var)) * ((INT32) (const))) -#endif - -#ifndef MULTIPLY16C16 /* default definition */ -#define MULTIPLY16C16(var,const) ((var) * (const)) -#endif - -/* Same except both inputs are variables. */ - -#ifdef SHORTxSHORT_32 /* may work if 'int' is 32 bits */ -#define MULTIPLY16V16(var1,var2) (((INT16) (var1)) * ((INT16) (var2))) -#endif - -#ifndef MULTIPLY16V16 /* default definition */ -#define MULTIPLY16V16(var1,var2) ((var1) * (var2)) -#endif diff --git a/src/jpeg/jddctmgr.c b/src/jpeg/jddctmgr.c deleted file mode 100644 index bbf8d0e92f..0000000000 --- a/src/jpeg/jddctmgr.c +++ /dev/null @@ -1,269 +0,0 @@ -/* - * jddctmgr.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the inverse-DCT management logic. - * This code selects a particular IDCT implementation to be used, - * and it performs related housekeeping chores. No code in this file - * is executed per IDCT step, only during output pass setup. - * - * Note that the IDCT routines are responsible for performing coefficient - * dequantization as well as the IDCT proper. This module sets up the - * dequantization multiplier table needed by the IDCT routine. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - - -/* - * The decompressor input side (jdinput.c) saves away the appropriate - * quantization table for each component at the start of the first scan - * involving that component. (This is necessary in order to correctly - * decode files that reuse Q-table slots.) - * When we are ready to make an output pass, the saved Q-table is converted - * to a multiplier table that will actually be used by the IDCT routine. - * The multiplier table contents are IDCT-method-dependent. To support - * application changes in IDCT method between scans, we can remake the - * multiplier tables if necessary. - * In buffered-image mode, the first output pass may occur before any data - * has been seen for some components, and thus before their Q-tables have - * been saved away. To handle this case, multiplier tables are preset - * to zeroes; the result of the IDCT will be a neutral gray level. - */ - - -/* Private subobject for this module */ - -typedef struct { - struct jpeg_inverse_dct pub; /* public fields */ - - /* This array contains the IDCT method code that each multiplier table - * is currently set up for, or -1 if it's not yet set up. - * The actual multiplier tables are pointed to by dct_table in the - * per-component comp_info structures. - */ - int cur_method[MAX_COMPONENTS]; -} my_idct_controller; - -typedef my_idct_controller * my_idct_ptr; - - -/* Allocated multiplier tables: big enough for any supported variant */ - -typedef union { - ISLOW_MULT_TYPE islow_array[DCTSIZE2]; -#ifdef DCT_IFAST_SUPPORTED - IFAST_MULT_TYPE ifast_array[DCTSIZE2]; -#endif -#ifdef DCT_FLOAT_SUPPORTED - FLOAT_MULT_TYPE float_array[DCTSIZE2]; -#endif -} multiplier_table; - - -/* The current scaled-IDCT routines require ISLOW-style multiplier tables, - * so be sure to compile that code if either ISLOW or SCALING is requested. - */ -#ifdef DCT_ISLOW_SUPPORTED -#define PROVIDE_ISLOW_TABLES -#else -#ifdef IDCT_SCALING_SUPPORTED -#define PROVIDE_ISLOW_TABLES -#endif -#endif - - -/* - * Prepare for an output pass. - * Here we select the proper IDCT routine for each component and build - * a matching multiplier table. - */ - -METHODDEF(void) -start_pass (j_decompress_ptr cinfo) -{ - my_idct_ptr idct = (my_idct_ptr) cinfo->idct; - int ci, i; - jpeg_component_info *compptr; - int method = 0; - inverse_DCT_method_ptr method_ptr = NULL; - JQUANT_TBL * qtbl; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Select the proper IDCT routine for this component's scaling */ - switch (compptr->DCT_scaled_size) { -#ifdef IDCT_SCALING_SUPPORTED - case 1: - method_ptr = jpeg_idct_1x1; - method = JDCT_ISLOW; /* jidctred uses islow-style table */ - break; - case 2: - method_ptr = jpeg_idct_2x2; - method = JDCT_ISLOW; /* jidctred uses islow-style table */ - break; - case 4: - method_ptr = jpeg_idct_4x4; - method = JDCT_ISLOW; /* jidctred uses islow-style table */ - break; -#endif - case DCTSIZE: - switch (cinfo->dct_method) { -#ifdef DCT_ISLOW_SUPPORTED - case JDCT_ISLOW: - method_ptr = jpeg_idct_islow; - method = JDCT_ISLOW; - break; -#endif -#ifdef DCT_IFAST_SUPPORTED - case JDCT_IFAST: - method_ptr = jpeg_idct_ifast; - method = JDCT_IFAST; - break; -#endif -#ifdef DCT_FLOAT_SUPPORTED - case JDCT_FLOAT: - method_ptr = jpeg_idct_float; - method = JDCT_FLOAT; - break; -#endif - default: - ERREXIT(cinfo, JERR_NOT_COMPILED); - break; - } - break; - default: - ERREXIT1(cinfo, JERR_BAD_DCTSIZE, compptr->DCT_scaled_size); - break; - } - idct->pub.inverse_DCT[ci] = method_ptr; - /* Create multiplier table from quant table. - * However, we can skip this if the component is uninteresting - * or if we already built the table. Also, if no quant table - * has yet been saved for the component, we leave the - * multiplier table all-zero; we'll be reading zeroes from the - * coefficient controller's buffer anyway. - */ - if (! compptr->component_needed || idct->cur_method[ci] == method) - continue; - qtbl = compptr->quant_table; - if (qtbl == NULL) /* happens if no data yet for component */ - continue; - idct->cur_method[ci] = method; - switch (method) { -#ifdef PROVIDE_ISLOW_TABLES - case JDCT_ISLOW: - { - /* For LL&M IDCT method, multipliers are equal to raw quantization - * coefficients, but are stored as ints to ensure access efficiency. - */ - ISLOW_MULT_TYPE * ismtbl = (ISLOW_MULT_TYPE *) compptr->dct_table; - for (i = 0; i < DCTSIZE2; i++) { - ismtbl[i] = (ISLOW_MULT_TYPE) qtbl->quantval[i]; - } - } - break; -#endif -#ifdef DCT_IFAST_SUPPORTED - case JDCT_IFAST: - { - /* For AA&N IDCT method, multipliers are equal to quantization - * coefficients scaled by scalefactor[row]*scalefactor[col], where - * scalefactor[0] = 1 - * scalefactor[k] = cos(k*PI/16) * sqrt(2) for k=1..7 - * For integer operation, the multiplier table is to be scaled by - * IFAST_SCALE_BITS. - */ - IFAST_MULT_TYPE * ifmtbl = (IFAST_MULT_TYPE *) compptr->dct_table; -#define CONST_BITS 14 - static const INT16 aanscales[DCTSIZE2] = { - /* precomputed values scaled up by 14 bits */ - 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, - 22725, 31521, 29692, 26722, 22725, 17855, 12299, 6270, - 21407, 29692, 27969, 25172, 21407, 16819, 11585, 5906, - 19266, 26722, 25172, 22654, 19266, 15137, 10426, 5315, - 16384, 22725, 21407, 19266, 16384, 12873, 8867, 4520, - 12873, 17855, 16819, 15137, 12873, 10114, 6967, 3552, - 8867, 12299, 11585, 10426, 8867, 6967, 4799, 2446, - 4520, 6270, 5906, 5315, 4520, 3552, 2446, 1247 - }; - SHIFT_TEMPS - - for (i = 0; i < DCTSIZE2; i++) { - ifmtbl[i] = (IFAST_MULT_TYPE) - DESCALE(MULTIPLY16V16((INT32) qtbl->quantval[i], - (INT32) aanscales[i]), - CONST_BITS-IFAST_SCALE_BITS); - } - } - break; -#endif -#ifdef DCT_FLOAT_SUPPORTED - case JDCT_FLOAT: - { - /* For float AA&N IDCT method, multipliers are equal to quantization - * coefficients scaled by scalefactor[row]*scalefactor[col], where - * scalefactor[0] = 1 - * scalefactor[k] = cos(k*PI/16) * sqrt(2) for k=1..7 - */ - FLOAT_MULT_TYPE * fmtbl = (FLOAT_MULT_TYPE *) compptr->dct_table; - int row, col; - static const double aanscalefactor[DCTSIZE] = { - 1.0, 1.387039845, 1.306562965, 1.175875602, - 1.0, 0.785694958, 0.541196100, 0.275899379 - }; - - i = 0; - for (row = 0; row < DCTSIZE; row++) { - for (col = 0; col < DCTSIZE; col++) { - fmtbl[i] = (FLOAT_MULT_TYPE) - ((double) qtbl->quantval[i] * - aanscalefactor[row] * aanscalefactor[col]); - i++; - } - } - } - break; -#endif - default: - ERREXIT(cinfo, JERR_NOT_COMPILED); - break; - } - } -} - - -/* - * Initialize IDCT manager. - */ - -GLOBAL(void) -jinit_inverse_dct (j_decompress_ptr cinfo) -{ - my_idct_ptr idct; - int ci; - jpeg_component_info *compptr; - - idct = (my_idct_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_idct_controller)); - cinfo->idct = (struct jpeg_inverse_dct *) idct; - idct->pub.start_pass = start_pass; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Allocate and pre-zero a multiplier table for each component */ - compptr->dct_table = - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(multiplier_table)); - MEMZERO(compptr->dct_table, SIZEOF(multiplier_table)); - /* Mark multiplier table not yet set up for any method */ - idct->cur_method[ci] = -1; - } -} diff --git a/src/jpeg/jdhuff.c b/src/jpeg/jdhuff.c deleted file mode 100644 index b5ba39f736..0000000000 --- a/src/jpeg/jdhuff.c +++ /dev/null @@ -1,651 +0,0 @@ -/* - * jdhuff.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains Huffman entropy decoding routines. - * - * Much of the complexity here has to do with supporting input suspension. - * If the data source module demands suspension, we want to be able to back - * up to the start of the current MCU. To do this, we copy state variables - * into local working storage, and update them back to the permanent - * storage only upon successful completion of an MCU. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdhuff.h" /* Declarations shared with jdphuff.c */ - - -/* - * Expanded entropy decoder object for Huffman decoding. - * - * The savable_state subrecord contains fields that change within an MCU, - * but must not be updated permanently until we complete the MCU. - */ - -typedef struct { - int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */ -} savable_state; - -/* This macro is to work around compilers with missing or broken - * structure assignment. You'll need to fix this code if you have - * such a compiler and you change MAX_COMPS_IN_SCAN. - */ - -#ifndef NO_STRUCT_ASSIGN -#define ASSIGN_STATE(dest,src) ((dest) = (src)) -#else -#if MAX_COMPS_IN_SCAN == 4 -#define ASSIGN_STATE(dest,src) \ - ((dest).last_dc_val[0] = (src).last_dc_val[0], \ - (dest).last_dc_val[1] = (src).last_dc_val[1], \ - (dest).last_dc_val[2] = (src).last_dc_val[2], \ - (dest).last_dc_val[3] = (src).last_dc_val[3]) -#endif -#endif - - -typedef struct { - struct jpeg_entropy_decoder pub; /* public fields */ - - /* These fields are loaded into local variables at start of each MCU. - * In case of suspension, we exit WITHOUT updating them. - */ - bitread_perm_state bitstate; /* Bit buffer at start of MCU */ - savable_state saved; /* Other state at start of MCU */ - - /* These fields are NOT loaded into local working state. */ - unsigned int restarts_to_go; /* MCUs left in this restart interval */ - - /* Pointers to derived tables (these workspaces have image lifespan) */ - d_derived_tbl * dc_derived_tbls[NUM_HUFF_TBLS]; - d_derived_tbl * ac_derived_tbls[NUM_HUFF_TBLS]; - - /* Precalculated info set up by start_pass for use in decode_mcu: */ - - /* Pointers to derived tables to be used for each block within an MCU */ - d_derived_tbl * dc_cur_tbls[D_MAX_BLOCKS_IN_MCU]; - d_derived_tbl * ac_cur_tbls[D_MAX_BLOCKS_IN_MCU]; - /* Whether we care about the DC and AC coefficient values for each block */ - boolean dc_needed[D_MAX_BLOCKS_IN_MCU]; - boolean ac_needed[D_MAX_BLOCKS_IN_MCU]; -} huff_entropy_decoder; - -typedef huff_entropy_decoder * huff_entropy_ptr; - - -/* - * Initialize for a Huffman-compressed scan. - */ - -METHODDEF(void) -start_pass_huff_decoder (j_decompress_ptr cinfo) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - int ci, blkn, dctbl, actbl; - jpeg_component_info * compptr; - - /* Check that the scan parameters Ss, Se, Ah/Al are OK for sequential JPEG. - * This ought to be an error condition, but we make it a warning because - * there are some baseline files out there with all zeroes in these bytes. - */ - if (cinfo->Ss != 0 || cinfo->Se != DCTSIZE2-1 || - cinfo->Ah != 0 || cinfo->Al != 0) - WARNMS(cinfo, JWRN_NOT_SEQUENTIAL); - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - dctbl = compptr->dc_tbl_no; - actbl = compptr->ac_tbl_no; - /* Compute derived values for Huffman tables */ - /* We may do this more than once for a table, but it's not expensive */ - jpeg_make_d_derived_tbl(cinfo, TRUE, dctbl, - & entropy->dc_derived_tbls[dctbl]); - jpeg_make_d_derived_tbl(cinfo, FALSE, actbl, - & entropy->ac_derived_tbls[actbl]); - /* Initialize DC predictions to 0 */ - entropy->saved.last_dc_val[ci] = 0; - } - - /* Precalculate decoding info for each block in an MCU of this scan */ - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - ci = cinfo->MCU_membership[blkn]; - compptr = cinfo->cur_comp_info[ci]; - /* Precalculate which table to use for each block */ - entropy->dc_cur_tbls[blkn] = entropy->dc_derived_tbls[compptr->dc_tbl_no]; - entropy->ac_cur_tbls[blkn] = entropy->ac_derived_tbls[compptr->ac_tbl_no]; - /* Decide whether we really care about the coefficient values */ - if (compptr->component_needed) { - entropy->dc_needed[blkn] = TRUE; - /* we don't need the ACs if producing a 1/8th-size image */ - entropy->ac_needed[blkn] = (compptr->DCT_scaled_size > 1); - } else { - entropy->dc_needed[blkn] = entropy->ac_needed[blkn] = FALSE; - } - } - - /* Initialize bitread state variables */ - entropy->bitstate.bits_left = 0; - entropy->bitstate.get_buffer = 0; /* unnecessary, but keeps Purify quiet */ - entropy->pub.insufficient_data = FALSE; - - /* Initialize restart counter */ - entropy->restarts_to_go = cinfo->restart_interval; -} - - -/* - * Compute the derived values for a Huffman table. - * This routine also performs some validation checks on the table. - * - * Note this is also used by jdphuff.c. - */ - -GLOBAL(void) -jpeg_make_d_derived_tbl (j_decompress_ptr cinfo, boolean isDC, int tblno, - d_derived_tbl ** pdtbl) -{ - JHUFF_TBL *htbl; - d_derived_tbl *dtbl; - int p, i, l, si, numsymbols; - int lookbits, ctr; - char huffsize[257]; - unsigned int huffcode[257]; - unsigned int code; - - /* Note that huffsize[] and huffcode[] are filled in code-length order, - * paralleling the order of the symbols themselves in htbl->huffval[]. - */ - - /* Find the input Huffman table */ - if (tblno < 0 || tblno >= NUM_HUFF_TBLS) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, tblno); - htbl = - isDC ? cinfo->dc_huff_tbl_ptrs[tblno] : cinfo->ac_huff_tbl_ptrs[tblno]; - if (htbl == NULL) - ERREXIT1(cinfo, JERR_NO_HUFF_TABLE, tblno); - - /* Allocate a workspace if we haven't already done so. */ - if (*pdtbl == NULL) - *pdtbl = (d_derived_tbl *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(d_derived_tbl)); - dtbl = *pdtbl; - dtbl->pub = htbl; /* fill in back link */ - - /* Figure C.1: make table of Huffman code length for each symbol */ - - p = 0; - for (l = 1; l <= 16; l++) { - i = (int) htbl->bits[l]; - if (i < 0 || p + i > 256) /* protect against table overrun */ - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - while (i--) - huffsize[p++] = (char) l; - } - huffsize[p] = 0; - numsymbols = p; - - /* Figure C.2: generate the codes themselves */ - /* We also validate that the counts represent a legal Huffman code tree. */ - - code = 0; - si = huffsize[0]; - p = 0; - while (huffsize[p]) { - while (((int) huffsize[p]) == si) { - huffcode[p++] = code; - code++; - } - /* code is now 1 more than the last code used for codelength si; but - * it must still fit in si bits, since no code is allowed to be all ones. - */ - if (((INT32) code) >= (((INT32) 1) << si)) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - code <<= 1; - si++; - } - - /* Figure F.15: generate decoding tables for bit-sequential decoding */ - - p = 0; - for (l = 1; l <= 16; l++) { - if (htbl->bits[l]) { - /* valoffset[l] = huffval[] index of 1st symbol of code length l, - * minus the minimum code of length l - */ - dtbl->valoffset[l] = (INT32) p - (INT32) huffcode[p]; - p += htbl->bits[l]; - dtbl->maxcode[l] = huffcode[p-1]; /* maximum code of length l */ - } else { - dtbl->maxcode[l] = -1; /* -1 if no codes of this length */ - } - } - dtbl->maxcode[17] = 0xFFFFFL; /* ensures jpeg_huff_decode terminates */ - - /* Compute lookahead tables to speed up decoding. - * First we set all the table entries to 0, indicating "too long"; - * then we iterate through the Huffman codes that are short enough and - * fill in all the entries that correspond to bit sequences starting - * with that code. - */ - - MEMZERO(dtbl->look_nbits, SIZEOF(dtbl->look_nbits)); - - p = 0; - for (l = 1; l <= HUFF_LOOKAHEAD; l++) { - for (i = 1; i <= (int) htbl->bits[l]; i++, p++) { - /* l = current code's length, p = its index in huffcode[] & huffval[]. */ - /* Generate left-justified code followed by all possible bit sequences */ - lookbits = huffcode[p] << (HUFF_LOOKAHEAD-l); - for (ctr = 1 << (HUFF_LOOKAHEAD-l); ctr > 0; ctr--) { - dtbl->look_nbits[lookbits] = l; - dtbl->look_sym[lookbits] = htbl->huffval[p]; - lookbits++; - } - } - } - - /* Validate symbols as being reasonable. - * For AC tables, we make no check, but accept all byte values 0..255. - * For DC tables, we require the symbols to be in range 0..15. - * (Tighter bounds could be applied depending on the data depth and mode, - * but this is sufficient to ensure safe decoding.) - */ - if (isDC) { - for (i = 0; i < numsymbols; i++) { - int sym = htbl->huffval[i]; - if (sym < 0 || sym > 15) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - } - } -} - - -/* - * Out-of-line code for bit fetching (shared with jdphuff.c). - * See jdhuff.h for info about usage. - * Note: current values of get_buffer and bits_left are passed as parameters, - * but are returned in the corresponding fields of the state struct. - * - * On most machines MIN_GET_BITS should be 25 to allow the full 32-bit width - * of get_buffer to be used. (On machines with wider words, an even larger - * buffer could be used.) However, on some machines 32-bit shifts are - * quite slow and take time proportional to the number of places shifted. - * (This is true with most PC compilers, for instance.) In this case it may - * be a win to set MIN_GET_BITS to the minimum value of 15. This reduces the - * average shift distance at the cost of more calls to jpeg_fill_bit_buffer. - */ - -#ifdef SLOW_SHIFT_32 -#define MIN_GET_BITS 15 /* minimum allowable value */ -#else -#define MIN_GET_BITS (BIT_BUF_SIZE-7) -#endif - - -GLOBAL(boolean) -jpeg_fill_bit_buffer (bitread_working_state * state, - register bit_buf_type get_buffer, register int bits_left, - int nbits) -/* Load up the bit buffer to a depth of at least nbits */ -{ - /* Copy heavily used state fields into locals (hopefully registers) */ - register const JOCTET * next_input_byte = state->next_input_byte; - register size_t bytes_in_buffer = state->bytes_in_buffer; - j_decompress_ptr cinfo = state->cinfo; - - /* Attempt to load at least MIN_GET_BITS bits into get_buffer. */ - /* (It is assumed that no request will be for more than that many bits.) */ - /* We fail to do so only if we hit a marker or are forced to suspend. */ - - if (cinfo->unread_marker == 0) { /* cannot advance past a marker */ - while (bits_left < MIN_GET_BITS) { - register int c; - - /* Attempt to read a byte */ - if (bytes_in_buffer == 0) { - if (! (*cinfo->src->fill_input_buffer) (cinfo)) - return FALSE; - next_input_byte = cinfo->src->next_input_byte; - bytes_in_buffer = cinfo->src->bytes_in_buffer; - } - bytes_in_buffer--; - c = GETJOCTET(*next_input_byte++); - - /* If it's 0xFF, check and discard stuffed zero byte */ - if (c == 0xFF) { - /* Loop here to discard any padding FF's on terminating marker, - * so that we can save a valid unread_marker value. NOTE: we will - * accept multiple FF's followed by a 0 as meaning a single FF data - * byte. This data pattern is not valid according to the standard. - */ - do { - if (bytes_in_buffer == 0) { - if (! (*cinfo->src->fill_input_buffer) (cinfo)) - return FALSE; - next_input_byte = cinfo->src->next_input_byte; - bytes_in_buffer = cinfo->src->bytes_in_buffer; - } - bytes_in_buffer--; - c = GETJOCTET(*next_input_byte++); - } while (c == 0xFF); - - if (c == 0) { - /* Found FF/00, which represents an FF data byte */ - c = 0xFF; - } else { - /* Oops, it's actually a marker indicating end of compressed data. - * Save the marker code for later use. - * Fine point: it might appear that we should save the marker into - * bitread working state, not straight into permanent state. But - * once we have hit a marker, we cannot need to suspend within the - * current MCU, because we will read no more bytes from the data - * source. So it is OK to update permanent state right away. - */ - cinfo->unread_marker = c; - /* See if we need to insert some fake zero bits. */ - goto no_more_bytes; - } - } - - /* OK, load c into get_buffer */ - get_buffer = (get_buffer << 8) | c; - bits_left += 8; - } /* end while */ - } else { - no_more_bytes: - /* We get here if we've read the marker that terminates the compressed - * data segment. There should be enough bits in the buffer register - * to satisfy the request; if so, no problem. - */ - if (nbits > bits_left) { - /* Uh-oh. Report corrupted data to user and stuff zeroes into - * the data stream, so that we can produce some kind of image. - * We use a nonvolatile flag to ensure that only one warning message - * appears per data segment. - */ - if (! cinfo->entropy->insufficient_data) { - WARNMS(cinfo, JWRN_HIT_MARKER); - cinfo->entropy->insufficient_data = TRUE; - } - /* Fill the buffer with zero bits */ - get_buffer <<= MIN_GET_BITS - bits_left; - bits_left = MIN_GET_BITS; - } - } - - /* Unload the local registers */ - state->next_input_byte = next_input_byte; - state->bytes_in_buffer = bytes_in_buffer; - state->get_buffer = get_buffer; - state->bits_left = bits_left; - - return TRUE; -} - - -/* - * Out-of-line code for Huffman code decoding. - * See jdhuff.h for info about usage. - */ - -GLOBAL(int) -jpeg_huff_decode (bitread_working_state * state, - register bit_buf_type get_buffer, register int bits_left, - d_derived_tbl * htbl, int min_bits) -{ - register int l = min_bits; - register INT32 code; - - /* HUFF_DECODE has determined that the code is at least min_bits */ - /* bits long, so fetch that many bits in one swoop. */ - - CHECK_BIT_BUFFER(*state, l, return -1); - code = GET_BITS(l); - - /* Collect the rest of the Huffman code one bit at a time. */ - /* This is per Figure F.16 in the JPEG spec. */ - - while (code > htbl->maxcode[l]) { - code <<= 1; - CHECK_BIT_BUFFER(*state, 1, return -1); - code |= GET_BITS(1); - l++; - } - - /* Unload the local registers */ - state->get_buffer = get_buffer; - state->bits_left = bits_left; - - /* With garbage input we may reach the sentinel value l = 17. */ - - if (l > 16) { - WARNMS(state->cinfo, JWRN_HUFF_BAD_CODE); - return 0; /* fake a zero as the safest result */ - } - - return htbl->pub->huffval[ (int) (code + htbl->valoffset[l]) ]; -} - - -/* - * Figure F.12: extend sign bit. - * On some machines, a shift and add will be faster than a table lookup. - */ - -#ifdef AVOID_TABLES - -#define HUFF_EXTEND(x,s) ((x) < (1<<((s)-1)) ? (x) + (((-1)<<(s)) + 1) : (x)) - -#else - -#define HUFF_EXTEND(x,s) ((x) < extend_test[s] ? (x) + extend_offset[s] : (x)) - -static const int extend_test[16] = /* entry n is 2**(n-1) */ - { 0, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, - 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000 }; - -static const int extend_offset[16] = /* entry n is (-1 << n) + 1 */ - { 0, ((-1)<<1) + 1, ((-1)<<2) + 1, ((-1)<<3) + 1, ((-1)<<4) + 1, - ((-1)<<5) + 1, ((-1)<<6) + 1, ((-1)<<7) + 1, ((-1)<<8) + 1, - ((-1)<<9) + 1, ((-1)<<10) + 1, ((-1)<<11) + 1, ((-1)<<12) + 1, - ((-1)<<13) + 1, ((-1)<<14) + 1, ((-1)<<15) + 1 }; - -#endif /* AVOID_TABLES */ - - -/* - * Check for a restart marker & resynchronize decoder. - * Returns FALSE if must suspend. - */ - -LOCAL(boolean) -process_restart (j_decompress_ptr cinfo) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - int ci; - - /* Throw away any unused bits remaining in bit buffer; */ - /* include any full bytes in next_marker's count of discarded bytes */ - cinfo->marker->discarded_bytes += entropy->bitstate.bits_left / 8; - entropy->bitstate.bits_left = 0; - - /* Advance past the RSTn marker */ - if (! (*cinfo->marker->read_restart_marker) (cinfo)) - return FALSE; - - /* Re-initialize DC predictions to 0 */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) - entropy->saved.last_dc_val[ci] = 0; - - /* Reset restart counter */ - entropy->restarts_to_go = cinfo->restart_interval; - - /* Reset out-of-data flag, unless read_restart_marker left us smack up - * against a marker. In that case we will end up treating the next data - * segment as empty, and we can avoid producing bogus output pixels by - * leaving the flag set. - */ - if (cinfo->unread_marker == 0) - entropy->pub.insufficient_data = FALSE; - - return TRUE; -} - - -/* - * Decode and return one MCU's worth of Huffman-compressed coefficients. - * The coefficients are reordered from zigzag order into natural array order, - * but are not dequantized. - * - * The i'th block of the MCU is stored into the block pointed to by - * MCU_data[i]. WE ASSUME THIS AREA HAS BEEN ZEROED BY THE CALLER. - * (Wholesale zeroing is usually a little faster than retail...) - * - * Returns FALSE if data source requested suspension. In that case no - * changes have been made to permanent state. (Exception: some output - * coefficients may already have been assigned. This is harmless for - * this module, since we'll just re-assign them on the next call.) - */ - -METHODDEF(boolean) -decode_mcu (j_decompress_ptr cinfo, JBLOCKROW *MCU_data) -{ - huff_entropy_ptr entropy = (huff_entropy_ptr) cinfo->entropy; - int blkn; - BITREAD_STATE_VARS; - savable_state state; - - /* Process restart marker if needed; may have to suspend */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) - if (! process_restart(cinfo)) - return FALSE; - } - - /* If we've run out of data, just leave the MCU set to zeroes. - * This way, we return uniform gray for the remainder of the segment. - */ - if (! entropy->pub.insufficient_data) { - - /* Load up working state */ - BITREAD_LOAD_STATE(cinfo,entropy->bitstate); - ASSIGN_STATE(state, entropy->saved); - - /* Outer loop handles each block in the MCU */ - - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - JBLOCKROW block = MCU_data[blkn]; - d_derived_tbl * dctbl = entropy->dc_cur_tbls[blkn]; - d_derived_tbl * actbl = entropy->ac_cur_tbls[blkn]; - register int s, k, r; - - /* Decode a single block's worth of coefficients */ - - /* Section F.2.2.1: decode the DC coefficient difference */ - HUFF_DECODE(s, br_state, dctbl, return FALSE, label1); - if (s) { - CHECK_BIT_BUFFER(br_state, s, return FALSE); - r = GET_BITS(s); - s = HUFF_EXTEND(r, s); - } - - if (entropy->dc_needed[blkn]) { - /* Convert DC difference to actual value, update last_dc_val */ - int ci = cinfo->MCU_membership[blkn]; - s += state.last_dc_val[ci]; - state.last_dc_val[ci] = s; - /* Output the DC coefficient (assumes jpeg_natural_order[0] = 0) */ - (*block)[0] = (JCOEF) s; - } - - if (entropy->ac_needed[blkn]) { - - /* Section F.2.2.2: decode the AC coefficients */ - /* Since zeroes are skipped, output area must be cleared beforehand */ - for (k = 1; k < DCTSIZE2; k++) { - HUFF_DECODE(s, br_state, actbl, return FALSE, label2); - - r = s >> 4; - s &= 15; - - if (s) { - k += r; - CHECK_BIT_BUFFER(br_state, s, return FALSE); - r = GET_BITS(s); - s = HUFF_EXTEND(r, s); - /* Output coefficient in natural (dezigzagged) order. - * Note: the extra entries in jpeg_natural_order[] will save us - * if k >= DCTSIZE2, which could happen if the data is corrupted. - */ - (*block)[jpeg_natural_order[k]] = (JCOEF) s; - } else { - if (r != 15) - break; - k += 15; - } - } - - } else { - - /* Section F.2.2.2: decode the AC coefficients */ - /* In this path we just discard the values */ - for (k = 1; k < DCTSIZE2; k++) { - HUFF_DECODE(s, br_state, actbl, return FALSE, label3); - - r = s >> 4; - s &= 15; - - if (s) { - k += r; - CHECK_BIT_BUFFER(br_state, s, return FALSE); - DROP_BITS(s); - } else { - if (r != 15) - break; - k += 15; - } - } - - } - } - - /* Completed MCU, so update state */ - BITREAD_SAVE_STATE(cinfo,entropy->bitstate); - ASSIGN_STATE(entropy->saved, state); - } - - /* Account for restart interval (no-op if not using restarts) */ - entropy->restarts_to_go--; - - return TRUE; -} - - -/* - * Module initialization routine for Huffman entropy decoding. - */ - -GLOBAL(void) -jinit_huff_decoder (j_decompress_ptr cinfo) -{ - huff_entropy_ptr entropy; - int i; - - entropy = (huff_entropy_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(huff_entropy_decoder)); - cinfo->entropy = (struct jpeg_entropy_decoder *) entropy; - entropy->pub.start_pass = start_pass_huff_decoder; - entropy->pub.decode_mcu = decode_mcu; - - /* Mark tables unallocated */ - for (i = 0; i < NUM_HUFF_TBLS; i++) { - entropy->dc_derived_tbls[i] = entropy->ac_derived_tbls[i] = NULL; - } -} diff --git a/src/jpeg/jdhuff.h b/src/jpeg/jdhuff.h deleted file mode 100644 index ae19b6cafd..0000000000 --- a/src/jpeg/jdhuff.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - * jdhuff.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains declarations for Huffman entropy decoding routines - * that are shared between the sequential decoder (jdhuff.c) and the - * progressive decoder (jdphuff.c). No other modules need to see these. - */ - -/* Short forms of external names for systems with brain-damaged linkers. */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_make_d_derived_tbl jMkDDerived -#define jpeg_fill_bit_buffer jFilBitBuf -#define jpeg_huff_decode jHufDecode -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* Derived data constructed for each Huffman table */ - -#define HUFF_LOOKAHEAD 8 /* # of bits of lookahead */ - -typedef struct { - /* Basic tables: (element [0] of each array is unused) */ - INT32 maxcode[18]; /* largest code of length k (-1 if none) */ - /* (maxcode[17] is a sentinel to ensure jpeg_huff_decode terminates) */ - INT32 valoffset[17]; /* huffval[] offset for codes of length k */ - /* valoffset[k] = huffval[] index of 1st symbol of code length k, less - * the smallest code of length k; so given a code of length k, the - * corresponding symbol is huffval[code + valoffset[k]] - */ - - /* Link to public Huffman table (needed only in jpeg_huff_decode) */ - JHUFF_TBL *pub; - - /* Lookahead tables: indexed by the next HUFF_LOOKAHEAD bits of - * the input data stream. If the next Huffman code is no more - * than HUFF_LOOKAHEAD bits long, we can obtain its length and - * the corresponding symbol directly from these tables. - */ - int look_nbits[1< 32 bits on your machine, and shifting/masking longs is - * reasonably fast, making bit_buf_type be long and setting BIT_BUF_SIZE - * appropriately should be a win. Unfortunately we can't define the size - * with something like #define BIT_BUF_SIZE (sizeof(bit_buf_type)*8) - * because not all machines measure sizeof in 8-bit bytes. - */ - -typedef struct { /* Bitreading state saved across MCUs */ - bit_buf_type get_buffer; /* current bit-extraction buffer */ - int bits_left; /* # of unused bits in it */ -} bitread_perm_state; - -typedef struct { /* Bitreading working state within an MCU */ - /* Current data source location */ - /* We need a copy, rather than munging the original, in case of suspension */ - const JOCTET * next_input_byte; /* => next byte to read from source */ - size_t bytes_in_buffer; /* # of bytes remaining in source buffer */ - /* Bit input buffer --- note these values are kept in register variables, - * not in this struct, inside the inner loops. - */ - bit_buf_type get_buffer; /* current bit-extraction buffer */ - int bits_left; /* # of unused bits in it */ - /* Pointer needed by jpeg_fill_bit_buffer. */ - j_decompress_ptr cinfo; /* back link to decompress master record */ -} bitread_working_state; - -/* Macros to declare and load/save bitread local variables. */ -#define BITREAD_STATE_VARS \ - register bit_buf_type get_buffer; \ - register int bits_left; \ - bitread_working_state br_state - -#define BITREAD_LOAD_STATE(cinfop,permstate) \ - br_state.cinfo = cinfop; \ - br_state.next_input_byte = cinfop->src->next_input_byte; \ - br_state.bytes_in_buffer = cinfop->src->bytes_in_buffer; \ - get_buffer = permstate.get_buffer; \ - bits_left = permstate.bits_left; - -#define BITREAD_SAVE_STATE(cinfop,permstate) \ - cinfop->src->next_input_byte = br_state.next_input_byte; \ - cinfop->src->bytes_in_buffer = br_state.bytes_in_buffer; \ - permstate.get_buffer = get_buffer; \ - permstate.bits_left = bits_left - -/* - * These macros provide the in-line portion of bit fetching. - * Use CHECK_BIT_BUFFER to ensure there are N bits in get_buffer - * before using GET_BITS, PEEK_BITS, or DROP_BITS. - * The variables get_buffer and bits_left are assumed to be locals, - * but the state struct might not be (jpeg_huff_decode needs this). - * CHECK_BIT_BUFFER(state,n,action); - * Ensure there are N bits in get_buffer; if suspend, take action. - * val = GET_BITS(n); - * Fetch next N bits. - * val = PEEK_BITS(n); - * Fetch next N bits without removing them from the buffer. - * DROP_BITS(n); - * Discard next N bits. - * The value N should be a simple variable, not an expression, because it - * is evaluated multiple times. - */ - -#define CHECK_BIT_BUFFER(state,nbits,action) \ - { if (bits_left < (nbits)) { \ - if (! jpeg_fill_bit_buffer(&(state),get_buffer,bits_left,nbits)) \ - { action; } \ - get_buffer = (state).get_buffer; bits_left = (state).bits_left; } } - -#define GET_BITS(nbits) \ - (((int) (get_buffer >> (bits_left -= (nbits)))) & ((1<<(nbits))-1)) - -#define PEEK_BITS(nbits) \ - (((int) (get_buffer >> (bits_left - (nbits)))) & ((1<<(nbits))-1)) - -#define DROP_BITS(nbits) \ - (bits_left -= (nbits)) - -/* Load up the bit buffer to a depth of at least nbits */ -EXTERN(boolean) jpeg_fill_bit_buffer - JPP((bitread_working_state * state, register bit_buf_type get_buffer, - register int bits_left, int nbits)); - - -/* - * Code for extracting next Huffman-coded symbol from input bit stream. - * Again, this is time-critical and we make the main paths be macros. - * - * We use a lookahead table to process codes of up to HUFF_LOOKAHEAD bits - * without looping. Usually, more than 95% of the Huffman codes will be 8 - * or fewer bits long. The few overlength codes are handled with a loop, - * which need not be inline code. - * - * Notes about the HUFF_DECODE macro: - * 1. Near the end of the data segment, we may fail to get enough bits - * for a lookahead. In that case, we do it the hard way. - * 2. If the lookahead table contains no entry, the next code must be - * more than HUFF_LOOKAHEAD bits long. - * 3. jpeg_huff_decode returns -1 if forced to suspend. - */ - -#define HUFF_DECODE(result,state,htbl,failaction,slowlabel) \ -{ register int nb, look; \ - if (bits_left < HUFF_LOOKAHEAD) { \ - if (! jpeg_fill_bit_buffer(&state,get_buffer,bits_left, 0)) {failaction;} \ - get_buffer = state.get_buffer; bits_left = state.bits_left; \ - if (bits_left < HUFF_LOOKAHEAD) { \ - nb = 1; goto slowlabel; \ - } \ - } \ - look = PEEK_BITS(HUFF_LOOKAHEAD); \ - if ((nb = htbl->look_nbits[look]) != 0) { \ - DROP_BITS(nb); \ - result = htbl->look_sym[look]; \ - } else { \ - nb = HUFF_LOOKAHEAD+1; \ -slowlabel: \ - if ((result=jpeg_huff_decode(&state,get_buffer,bits_left,htbl,nb)) < 0) \ - { failaction; } \ - get_buffer = state.get_buffer; bits_left = state.bits_left; \ - } \ -} - -/* Out-of-line case for Huffman code fetching */ -EXTERN(int) jpeg_huff_decode - JPP((bitread_working_state * state, register bit_buf_type get_buffer, - register int bits_left, d_derived_tbl * htbl, int min_bits)); diff --git a/src/jpeg/jdinput.c b/src/jpeg/jdinput.c deleted file mode 100644 index 0c2ac8f120..0000000000 --- a/src/jpeg/jdinput.c +++ /dev/null @@ -1,381 +0,0 @@ -/* - * jdinput.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains input control logic for the JPEG decompressor. - * These routines are concerned with controlling the decompressor's input - * processing (marker reading and coefficient decoding). The actual input - * reading is done in jdmarker.c, jdhuff.c, and jdphuff.c. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Private state */ - -typedef struct { - struct jpeg_input_controller pub; /* public fields */ - - boolean inheaders; /* TRUE until first SOS is reached */ -} my_input_controller; - -typedef my_input_controller * my_inputctl_ptr; - - -/* Forward declarations */ -METHODDEF(int) consume_markers JPP((j_decompress_ptr cinfo)); - - -/* - * Routines to calculate various quantities related to the size of the image. - */ - -LOCAL(void) -initial_setup (j_decompress_ptr cinfo) -/* Called once, when first SOS marker is reached */ -{ - int ci; - jpeg_component_info *compptr; - - /* Make sure image isn't bigger than I can handle */ - if ((long) cinfo->image_height > (long) JPEG_MAX_DIMENSION || - (long) cinfo->image_width > (long) JPEG_MAX_DIMENSION) - ERREXIT1(cinfo, JERR_IMAGE_TOO_BIG, (unsigned int) JPEG_MAX_DIMENSION); - - /* For now, precision must match compiled-in value... */ - if (cinfo->data_precision != BITS_IN_JSAMPLE) - ERREXIT1(cinfo, JERR_BAD_PRECISION, cinfo->data_precision); - - /* Check that number of components won't exceed internal array sizes */ - if (cinfo->num_components > MAX_COMPONENTS) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->num_components, - MAX_COMPONENTS); - - /* Compute maximum sampling factors; check factor validity */ - cinfo->max_h_samp_factor = 1; - cinfo->max_v_samp_factor = 1; - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - if (compptr->h_samp_factor<=0 || compptr->h_samp_factor>MAX_SAMP_FACTOR || - compptr->v_samp_factor<=0 || compptr->v_samp_factor>MAX_SAMP_FACTOR) - ERREXIT(cinfo, JERR_BAD_SAMPLING); - cinfo->max_h_samp_factor = MAX(cinfo->max_h_samp_factor, - compptr->h_samp_factor); - cinfo->max_v_samp_factor = MAX(cinfo->max_v_samp_factor, - compptr->v_samp_factor); - } - - /* We initialize DCT_scaled_size and min_DCT_scaled_size to DCTSIZE. - * In the full decompressor, this will be overridden by jdmaster.c; - * but in the transcoder, jdmaster.c is not used, so we must do it here. - */ - cinfo->min_DCT_scaled_size = DCTSIZE; - - /* Compute dimensions of components */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - compptr->DCT_scaled_size = DCTSIZE; - /* Size in DCT blocks */ - compptr->width_in_blocks = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width * (long) compptr->h_samp_factor, - (long) (cinfo->max_h_samp_factor * DCTSIZE)); - compptr->height_in_blocks = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height * (long) compptr->v_samp_factor, - (long) (cinfo->max_v_samp_factor * DCTSIZE)); - /* downsampled_width and downsampled_height will also be overridden by - * jdmaster.c if we are doing full decompression. The transcoder library - * doesn't use these values, but the calling application might. - */ - /* Size in samples */ - compptr->downsampled_width = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width * (long) compptr->h_samp_factor, - (long) cinfo->max_h_samp_factor); - compptr->downsampled_height = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height * (long) compptr->v_samp_factor, - (long) cinfo->max_v_samp_factor); - /* Mark component needed, until color conversion says otherwise */ - compptr->component_needed = TRUE; - /* Mark no quantization table yet saved for component */ - compptr->quant_table = NULL; - } - - /* Compute number of fully interleaved MCU rows. */ - cinfo->total_iMCU_rows = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, - (long) (cinfo->max_v_samp_factor*DCTSIZE)); - - /* Decide whether file contains multiple scans */ - if (cinfo->comps_in_scan < cinfo->num_components || cinfo->progressive_mode) - cinfo->inputctl->has_multiple_scans = TRUE; - else - cinfo->inputctl->has_multiple_scans = FALSE; -} - - -LOCAL(void) -per_scan_setup (j_decompress_ptr cinfo) -/* Do computations that are needed before processing a JPEG scan */ -/* cinfo->comps_in_scan and cinfo->cur_comp_info[] were set from SOS marker */ -{ - int ci, mcublks, tmp; - jpeg_component_info *compptr; - - if (cinfo->comps_in_scan == 1) { - - /* Noninterleaved (single-component) scan */ - compptr = cinfo->cur_comp_info[0]; - - /* Overall image size in MCUs */ - cinfo->MCUs_per_row = compptr->width_in_blocks; - cinfo->MCU_rows_in_scan = compptr->height_in_blocks; - - /* For noninterleaved scan, always one block per MCU */ - compptr->MCU_width = 1; - compptr->MCU_height = 1; - compptr->MCU_blocks = 1; - compptr->MCU_sample_width = compptr->DCT_scaled_size; - compptr->last_col_width = 1; - /* For noninterleaved scans, it is convenient to define last_row_height - * as the number of block rows present in the last iMCU row. - */ - tmp = (int) (compptr->height_in_blocks % compptr->v_samp_factor); - if (tmp == 0) tmp = compptr->v_samp_factor; - compptr->last_row_height = tmp; - - /* Prepare array describing MCU composition */ - cinfo->blocks_in_MCU = 1; - cinfo->MCU_membership[0] = 0; - - } else { - - /* Interleaved (multi-component) scan */ - if (cinfo->comps_in_scan <= 0 || cinfo->comps_in_scan > MAX_COMPS_IN_SCAN) - ERREXIT2(cinfo, JERR_COMPONENT_COUNT, cinfo->comps_in_scan, - MAX_COMPS_IN_SCAN); - - /* Overall image size in MCUs */ - cinfo->MCUs_per_row = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width, - (long) (cinfo->max_h_samp_factor*DCTSIZE)); - cinfo->MCU_rows_in_scan = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, - (long) (cinfo->max_v_samp_factor*DCTSIZE)); - - cinfo->blocks_in_MCU = 0; - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - /* Sampling factors give # of blocks of component in each MCU */ - compptr->MCU_width = compptr->h_samp_factor; - compptr->MCU_height = compptr->v_samp_factor; - compptr->MCU_blocks = compptr->MCU_width * compptr->MCU_height; - compptr->MCU_sample_width = compptr->MCU_width * compptr->DCT_scaled_size; - /* Figure number of non-dummy blocks in last MCU column & row */ - tmp = (int) (compptr->width_in_blocks % compptr->MCU_width); - if (tmp == 0) tmp = compptr->MCU_width; - compptr->last_col_width = tmp; - tmp = (int) (compptr->height_in_blocks % compptr->MCU_height); - if (tmp == 0) tmp = compptr->MCU_height; - compptr->last_row_height = tmp; - /* Prepare array describing MCU composition */ - mcublks = compptr->MCU_blocks; - if (cinfo->blocks_in_MCU + mcublks > D_MAX_BLOCKS_IN_MCU) - ERREXIT(cinfo, JERR_BAD_MCU_SIZE); - while (mcublks-- > 0) { - cinfo->MCU_membership[cinfo->blocks_in_MCU++] = ci; - } - } - - } -} - - -/* - * Save away a copy of the Q-table referenced by each component present - * in the current scan, unless already saved during a prior scan. - * - * In a multiple-scan JPEG file, the encoder could assign different components - * the same Q-table slot number, but change table definitions between scans - * so that each component uses a different Q-table. (The IJG encoder is not - * currently capable of doing this, but other encoders might.) Since we want - * to be able to dequantize all the components at the end of the file, this - * means that we have to save away the table actually used for each component. - * We do this by copying the table at the start of the first scan containing - * the component. - * The JPEG spec prohibits the encoder from changing the contents of a Q-table - * slot between scans of a component using that slot. If the encoder does so - * anyway, this decoder will simply use the Q-table values that were current - * at the start of the first scan for the component. - * - * The decompressor output side looks only at the saved quant tables, - * not at the current Q-table slots. - */ - -LOCAL(void) -latch_quant_tables (j_decompress_ptr cinfo) -{ - int ci, qtblno; - jpeg_component_info *compptr; - JQUANT_TBL * qtbl; - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - /* No work if we already saved Q-table for this component */ - if (compptr->quant_table != NULL) - continue; - /* Make sure specified quantization table is present */ - qtblno = compptr->quant_tbl_no; - if (qtblno < 0 || qtblno >= NUM_QUANT_TBLS || - cinfo->quant_tbl_ptrs[qtblno] == NULL) - ERREXIT1(cinfo, JERR_NO_QUANT_TABLE, qtblno); - /* OK, save away the quantization table */ - qtbl = (JQUANT_TBL *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(JQUANT_TBL)); - MEMCOPY(qtbl, cinfo->quant_tbl_ptrs[qtblno], SIZEOF(JQUANT_TBL)); - compptr->quant_table = qtbl; - } -} - - -/* - * Initialize the input modules to read a scan of compressed data. - * The first call to this is done by jdmaster.c after initializing - * the entire decompressor (during jpeg_start_decompress). - * Subsequent calls come from consume_markers, below. - */ - -METHODDEF(void) -start_input_pass (j_decompress_ptr cinfo) -{ - per_scan_setup(cinfo); - latch_quant_tables(cinfo); - (*cinfo->entropy->start_pass) (cinfo); - (*cinfo->coef->start_input_pass) (cinfo); - cinfo->inputctl->consume_input = cinfo->coef->consume_data; -} - - -/* - * Finish up after inputting a compressed-data scan. - * This is called by the coefficient controller after it's read all - * the expected data of the scan. - */ - -METHODDEF(void) -finish_input_pass (j_decompress_ptr cinfo) -{ - cinfo->inputctl->consume_input = consume_markers; -} - - -/* - * Read JPEG markers before, between, or after compressed-data scans. - * Change state as necessary when a new scan is reached. - * Return value is JPEG_SUSPENDED, JPEG_REACHED_SOS, or JPEG_REACHED_EOI. - * - * The consume_input method pointer points either here or to the - * coefficient controller's consume_data routine, depending on whether - * we are reading a compressed data segment or inter-segment markers. - */ - -METHODDEF(int) -consume_markers (j_decompress_ptr cinfo) -{ - my_inputctl_ptr inputctl = (my_inputctl_ptr) cinfo->inputctl; - int val; - - if (inputctl->pub.eoi_reached) /* After hitting EOI, read no further */ - return JPEG_REACHED_EOI; - - val = (*cinfo->marker->read_markers) (cinfo); - - switch (val) { - case JPEG_REACHED_SOS: /* Found SOS */ - if (inputctl->inheaders) { /* 1st SOS */ - initial_setup(cinfo); - inputctl->inheaders = FALSE; - /* Note: start_input_pass must be called by jdmaster.c - * before any more input can be consumed. jdapimin.c is - * responsible for enforcing this sequencing. - */ - } else { /* 2nd or later SOS marker */ - if (! inputctl->pub.has_multiple_scans) - ERREXIT(cinfo, JERR_EOI_EXPECTED); /* Oops, I wasn't expecting this! */ - start_input_pass(cinfo); - } - break; - case JPEG_REACHED_EOI: /* Found EOI */ - inputctl->pub.eoi_reached = TRUE; - if (inputctl->inheaders) { /* Tables-only datastream, apparently */ - if (cinfo->marker->saw_SOF) - ERREXIT(cinfo, JERR_SOF_NO_SOS); - } else { - /* Prevent infinite loop in coef ctlr's decompress_data routine - * if user set output_scan_number larger than number of scans. - */ - if (cinfo->output_scan_number > cinfo->input_scan_number) - cinfo->output_scan_number = cinfo->input_scan_number; - } - break; - case JPEG_SUSPENDED: - break; - } - - return val; -} - - -/* - * Reset state to begin a fresh datastream. - */ - -METHODDEF(void) -reset_input_controller (j_decompress_ptr cinfo) -{ - my_inputctl_ptr inputctl = (my_inputctl_ptr) cinfo->inputctl; - - inputctl->pub.consume_input = consume_markers; - inputctl->pub.has_multiple_scans = FALSE; /* "unknown" would be better */ - inputctl->pub.eoi_reached = FALSE; - inputctl->inheaders = TRUE; - /* Reset other modules */ - (*cinfo->err->reset_error_mgr) ((j_common_ptr) cinfo); - (*cinfo->marker->reset_marker_reader) (cinfo); - /* Reset progression state -- would be cleaner if entropy decoder did this */ - cinfo->coef_bits = NULL; -} - - -/* - * Initialize the input controller module. - * This is called only once, when the decompression object is created. - */ - -GLOBAL(void) -jinit_input_controller (j_decompress_ptr cinfo) -{ - my_inputctl_ptr inputctl; - - /* Create subobject in permanent pool */ - inputctl = (my_inputctl_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - SIZEOF(my_input_controller)); - cinfo->inputctl = (struct jpeg_input_controller *) inputctl; - /* Initialize method pointers */ - inputctl->pub.consume_input = consume_markers; - inputctl->pub.reset_input_controller = reset_input_controller; - inputctl->pub.start_input_pass = start_input_pass; - inputctl->pub.finish_input_pass = finish_input_pass; - /* Initialize state: can't use reset_input_controller since we don't - * want to try to reset other modules yet. - */ - inputctl->pub.has_multiple_scans = FALSE; /* "unknown" would be better */ - inputctl->pub.eoi_reached = FALSE; - inputctl->inheaders = TRUE; -} diff --git a/src/jpeg/jdmainct.c b/src/jpeg/jdmainct.c deleted file mode 100644 index 13c956f5de..0000000000 --- a/src/jpeg/jdmainct.c +++ /dev/null @@ -1,512 +0,0 @@ -/* - * jdmainct.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the main buffer controller for decompression. - * The main buffer lies between the JPEG decompressor proper and the - * post-processor; it holds downsampled data in the JPEG colorspace. - * - * Note that this code is bypassed in raw-data mode, since the application - * supplies the equivalent of the main buffer in that case. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * In the current system design, the main buffer need never be a full-image - * buffer; any full-height buffers will be found inside the coefficient or - * postprocessing controllers. Nonetheless, the main controller is not - * trivial. Its responsibility is to provide context rows for upsampling/ - * rescaling, and doing this in an efficient fashion is a bit tricky. - * - * Postprocessor input data is counted in "row groups". A row group - * is defined to be (v_samp_factor * DCT_scaled_size / min_DCT_scaled_size) - * sample rows of each component. (We require DCT_scaled_size values to be - * chosen such that these numbers are integers. In practice DCT_scaled_size - * values will likely be powers of two, so we actually have the stronger - * condition that DCT_scaled_size / min_DCT_scaled_size is an integer.) - * Upsampling will typically produce max_v_samp_factor pixel rows from each - * row group (times any additional scale factor that the upsampler is - * applying). - * - * The coefficient controller will deliver data to us one iMCU row at a time; - * each iMCU row contains v_samp_factor * DCT_scaled_size sample rows, or - * exactly min_DCT_scaled_size row groups. (This amount of data corresponds - * to one row of MCUs when the image is fully interleaved.) Note that the - * number of sample rows varies across components, but the number of row - * groups does not. Some garbage sample rows may be included in the last iMCU - * row at the bottom of the image. - * - * Depending on the vertical scaling algorithm used, the upsampler may need - * access to the sample row(s) above and below its current input row group. - * The upsampler is required to set need_context_rows TRUE at global selection - * time if so. When need_context_rows is FALSE, this controller can simply - * obtain one iMCU row at a time from the coefficient controller and dole it - * out as row groups to the postprocessor. - * - * When need_context_rows is TRUE, this controller guarantees that the buffer - * passed to postprocessing contains at least one row group's worth of samples - * above and below the row group(s) being processed. Note that the context - * rows "above" the first passed row group appear at negative row offsets in - * the passed buffer. At the top and bottom of the image, the required - * context rows are manufactured by duplicating the first or last real sample - * row; this avoids having special cases in the upsampling inner loops. - * - * The amount of context is fixed at one row group just because that's a - * convenient number for this controller to work with. The existing - * upsamplers really only need one sample row of context. An upsampler - * supporting arbitrary output rescaling might wish for more than one row - * group of context when shrinking the image; tough, we don't handle that. - * (This is justified by the assumption that downsizing will be handled mostly - * by adjusting the DCT_scaled_size values, so that the actual scale factor at - * the upsample step needn't be much less than one.) - * - * To provide the desired context, we have to retain the last two row groups - * of one iMCU row while reading in the next iMCU row. (The last row group - * can't be processed until we have another row group for its below-context, - * and so we have to save the next-to-last group too for its above-context.) - * We could do this most simply by copying data around in our buffer, but - * that'd be very slow. We can avoid copying any data by creating a rather - * strange pointer structure. Here's how it works. We allocate a workspace - * consisting of M+2 row groups (where M = min_DCT_scaled_size is the number - * of row groups per iMCU row). We create two sets of redundant pointers to - * the workspace. Labeling the physical row groups 0 to M+1, the synthesized - * pointer lists look like this: - * M+1 M-1 - * master pointer --> 0 master pointer --> 0 - * 1 1 - * ... ... - * M-3 M-3 - * M-2 M - * M-1 M+1 - * M M-2 - * M+1 M-1 - * 0 0 - * We read alternate iMCU rows using each master pointer; thus the last two - * row groups of the previous iMCU row remain un-overwritten in the workspace. - * The pointer lists are set up so that the required context rows appear to - * be adjacent to the proper places when we pass the pointer lists to the - * upsampler. - * - * The above pictures describe the normal state of the pointer lists. - * At top and bottom of the image, we diddle the pointer lists to duplicate - * the first or last sample row as necessary (this is cheaper than copying - * sample rows around). - * - * This scheme breaks down if M < 2, ie, min_DCT_scaled_size is 1. In that - * situation each iMCU row provides only one row group so the buffering logic - * must be different (eg, we must read two iMCU rows before we can emit the - * first row group). For now, we simply do not support providing context - * rows when min_DCT_scaled_size is 1. That combination seems unlikely to - * be worth providing --- if someone wants a 1/8th-size preview, they probably - * want it quick and dirty, so a context-free upsampler is sufficient. - */ - - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_d_main_controller pub; /* public fields */ - - /* Pointer to allocated workspace (M or M+2 row groups). */ - JSAMPARRAY buffer[MAX_COMPONENTS]; - - boolean buffer_full; /* Have we gotten an iMCU row from decoder? */ - JDIMENSION rowgroup_ctr; /* counts row groups output to postprocessor */ - - /* Remaining fields are only used in the context case. */ - - /* These are the master pointers to the funny-order pointer lists. */ - JSAMPIMAGE xbuffer[2]; /* pointers to weird pointer lists */ - - int whichptr; /* indicates which pointer set is now in use */ - int context_state; /* process_data state machine status */ - JDIMENSION rowgroups_avail; /* row groups available to postprocessor */ - JDIMENSION iMCU_row_ctr; /* counts iMCU rows to detect image top/bot */ -} my_main_controller; - -typedef my_main_controller * my_main_ptr; - -/* context_state values: */ -#define CTX_PREPARE_FOR_IMCU 0 /* need to prepare for MCU row */ -#define CTX_PROCESS_IMCU 1 /* feeding iMCU to postprocessor */ -#define CTX_POSTPONED_ROW 2 /* feeding postponed row group */ - - -/* Forward declarations */ -METHODDEF(void) process_data_simple_main - JPP((j_decompress_ptr cinfo, JSAMPARRAY output_buf, - JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)); -METHODDEF(void) process_data_context_main - JPP((j_decompress_ptr cinfo, JSAMPARRAY output_buf, - JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)); -#ifdef QUANT_2PASS_SUPPORTED -METHODDEF(void) process_data_crank_post - JPP((j_decompress_ptr cinfo, JSAMPARRAY output_buf, - JDIMENSION *out_row_ctr, JDIMENSION out_rows_avail)); -#endif - - -LOCAL(void) -alloc_funny_pointers (j_decompress_ptr cinfo) -/* Allocate space for the funny pointer lists. - * This is done only once, not once per pass. - */ -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - int ci, rgroup; - int M = cinfo->min_DCT_scaled_size; - jpeg_component_info *compptr; - JSAMPARRAY xbuf; - - /* Get top-level space for component array pointers. - * We alloc both arrays with one call to save a few cycles. - */ - main->xbuffer[0] = (JSAMPIMAGE) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - cinfo->num_components * 2 * SIZEOF(JSAMPARRAY)); - main->xbuffer[1] = main->xbuffer[0] + cinfo->num_components; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - rgroup = (compptr->v_samp_factor * compptr->DCT_scaled_size) / - cinfo->min_DCT_scaled_size; /* height of a row group of component */ - /* Get space for pointer lists --- M+4 row groups in each list. - * We alloc both pointer lists with one call to save a few cycles. - */ - xbuf = (JSAMPARRAY) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - 2 * (rgroup * (M + 4)) * SIZEOF(JSAMPROW)); - xbuf += rgroup; /* want one row group at negative offsets */ - main->xbuffer[0][ci] = xbuf; - xbuf += rgroup * (M + 4); - main->xbuffer[1][ci] = xbuf; - } -} - - -LOCAL(void) -make_funny_pointers (j_decompress_ptr cinfo) -/* Create the funny pointer lists discussed in the comments above. - * The actual workspace is already allocated (in main->buffer), - * and the space for the pointer lists is allocated too. - * This routine just fills in the curiously ordered lists. - * This will be repeated at the beginning of each pass. - */ -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - int ci, i, rgroup; - int M = cinfo->min_DCT_scaled_size; - jpeg_component_info *compptr; - JSAMPARRAY buf, xbuf0, xbuf1; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - rgroup = (compptr->v_samp_factor * compptr->DCT_scaled_size) / - cinfo->min_DCT_scaled_size; /* height of a row group of component */ - xbuf0 = main->xbuffer[0][ci]; - xbuf1 = main->xbuffer[1][ci]; - /* First copy the workspace pointers as-is */ - buf = main->buffer[ci]; - for (i = 0; i < rgroup * (M + 2); i++) { - xbuf0[i] = xbuf1[i] = buf[i]; - } - /* In the second list, put the last four row groups in swapped order */ - for (i = 0; i < rgroup * 2; i++) { - xbuf1[rgroup*(M-2) + i] = buf[rgroup*M + i]; - xbuf1[rgroup*M + i] = buf[rgroup*(M-2) + i]; - } - /* The wraparound pointers at top and bottom will be filled later - * (see set_wraparound_pointers, below). Initially we want the "above" - * pointers to duplicate the first actual data line. This only needs - * to happen in xbuffer[0]. - */ - for (i = 0; i < rgroup; i++) { - xbuf0[i - rgroup] = xbuf0[0]; - } - } -} - - -LOCAL(void) -set_wraparound_pointers (j_decompress_ptr cinfo) -/* Set up the "wraparound" pointers at top and bottom of the pointer lists. - * This changes the pointer list state from top-of-image to the normal state. - */ -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - int ci, i, rgroup; - int M = cinfo->min_DCT_scaled_size; - jpeg_component_info *compptr; - JSAMPARRAY xbuf0, xbuf1; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - rgroup = (compptr->v_samp_factor * compptr->DCT_scaled_size) / - cinfo->min_DCT_scaled_size; /* height of a row group of component */ - xbuf0 = main->xbuffer[0][ci]; - xbuf1 = main->xbuffer[1][ci]; - for (i = 0; i < rgroup; i++) { - xbuf0[i - rgroup] = xbuf0[rgroup*(M+1) + i]; - xbuf1[i - rgroup] = xbuf1[rgroup*(M+1) + i]; - xbuf0[rgroup*(M+2) + i] = xbuf0[i]; - xbuf1[rgroup*(M+2) + i] = xbuf1[i]; - } - } -} - - -LOCAL(void) -set_bottom_pointers (j_decompress_ptr cinfo) -/* Change the pointer lists to duplicate the last sample row at the bottom - * of the image. whichptr indicates which xbuffer holds the final iMCU row. - * Also sets rowgroups_avail to indicate number of nondummy row groups in row. - */ -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - int ci, i, rgroup, iMCUheight, rows_left; - jpeg_component_info *compptr; - JSAMPARRAY xbuf; - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Count sample rows in one iMCU row and in one row group */ - iMCUheight = compptr->v_samp_factor * compptr->DCT_scaled_size; - rgroup = iMCUheight / cinfo->min_DCT_scaled_size; - /* Count nondummy sample rows remaining for this component */ - rows_left = (int) (compptr->downsampled_height % (JDIMENSION) iMCUheight); - if (rows_left == 0) rows_left = iMCUheight; - /* Count nondummy row groups. Should get same answer for each component, - * so we need only do it once. - */ - if (ci == 0) { - main->rowgroups_avail = (JDIMENSION) ((rows_left-1) / rgroup + 1); - } - /* Duplicate the last real sample row rgroup*2 times; this pads out the - * last partial rowgroup and ensures at least one full rowgroup of context. - */ - xbuf = main->xbuffer[main->whichptr][ci]; - for (i = 0; i < rgroup * 2; i++) { - xbuf[rows_left + i] = xbuf[rows_left-1]; - } - } -} - - -/* - * Initialize for a processing pass. - */ - -METHODDEF(void) -start_pass_main (j_decompress_ptr cinfo, J_BUF_MODE pass_mode) -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - - switch (pass_mode) { - case JBUF_PASS_THRU: - if (cinfo->upsample->need_context_rows) { - main->pub.process_data = process_data_context_main; - make_funny_pointers(cinfo); /* Create the xbuffer[] lists */ - main->whichptr = 0; /* Read first iMCU row into xbuffer[0] */ - main->context_state = CTX_PREPARE_FOR_IMCU; - main->iMCU_row_ctr = 0; - } else { - /* Simple case with no context needed */ - main->pub.process_data = process_data_simple_main; - } - main->buffer_full = FALSE; /* Mark buffer empty */ - main->rowgroup_ctr = 0; - break; -#ifdef QUANT_2PASS_SUPPORTED - case JBUF_CRANK_DEST: - /* For last pass of 2-pass quantization, just crank the postprocessor */ - main->pub.process_data = process_data_crank_post; - break; -#endif - default: - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - break; - } -} - - -/* - * Process some data. - * This handles the simple case where no context is required. - */ - -METHODDEF(void) -process_data_simple_main (j_decompress_ptr cinfo, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - JDIMENSION rowgroups_avail; - - /* Read input data if we haven't filled the main buffer yet */ - if (! main->buffer_full) { - if (! (*cinfo->coef->decompress_data) (cinfo, main->buffer)) - return; /* suspension forced, can do nothing more */ - main->buffer_full = TRUE; /* OK, we have an iMCU row to work with */ - } - - /* There are always min_DCT_scaled_size row groups in an iMCU row. */ - rowgroups_avail = (JDIMENSION) cinfo->min_DCT_scaled_size; - /* Note: at the bottom of the image, we may pass extra garbage row groups - * to the postprocessor. The postprocessor has to check for bottom - * of image anyway (at row resolution), so no point in us doing it too. - */ - - /* Feed the postprocessor */ - (*cinfo->post->post_process_data) (cinfo, main->buffer, - &main->rowgroup_ctr, rowgroups_avail, - output_buf, out_row_ctr, out_rows_avail); - - /* Has postprocessor consumed all the data yet? If so, mark buffer empty */ - if (main->rowgroup_ctr >= rowgroups_avail) { - main->buffer_full = FALSE; - main->rowgroup_ctr = 0; - } -} - - -/* - * Process some data. - * This handles the case where context rows must be provided. - */ - -METHODDEF(void) -process_data_context_main (j_decompress_ptr cinfo, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - my_main_ptr main = (my_main_ptr) cinfo->main; - - /* Read input data if we haven't filled the main buffer yet */ - if (! main->buffer_full) { - if (! (*cinfo->coef->decompress_data) (cinfo, - main->xbuffer[main->whichptr])) - return; /* suspension forced, can do nothing more */ - main->buffer_full = TRUE; /* OK, we have an iMCU row to work with */ - main->iMCU_row_ctr++; /* count rows received */ - } - - /* Postprocessor typically will not swallow all the input data it is handed - * in one call (due to filling the output buffer first). Must be prepared - * to exit and restart. This switch lets us keep track of how far we got. - * Note that each case falls through to the next on successful completion. - */ - switch (main->context_state) { - case CTX_POSTPONED_ROW: - /* Call postprocessor using previously set pointers for postponed row */ - (*cinfo->post->post_process_data) (cinfo, main->xbuffer[main->whichptr], - &main->rowgroup_ctr, main->rowgroups_avail, - output_buf, out_row_ctr, out_rows_avail); - if (main->rowgroup_ctr < main->rowgroups_avail) - return; /* Need to suspend */ - main->context_state = CTX_PREPARE_FOR_IMCU; - if (*out_row_ctr >= out_rows_avail) - return; /* Postprocessor exactly filled output buf */ - /*FALLTHROUGH*/ - case CTX_PREPARE_FOR_IMCU: - /* Prepare to process first M-1 row groups of this iMCU row */ - main->rowgroup_ctr = 0; - main->rowgroups_avail = (JDIMENSION) (cinfo->min_DCT_scaled_size - 1); - /* Check for bottom of image: if so, tweak pointers to "duplicate" - * the last sample row, and adjust rowgroups_avail to ignore padding rows. - */ - if (main->iMCU_row_ctr == cinfo->total_iMCU_rows) - set_bottom_pointers(cinfo); - main->context_state = CTX_PROCESS_IMCU; - /*FALLTHROUGH*/ - case CTX_PROCESS_IMCU: - /* Call postprocessor using previously set pointers */ - (*cinfo->post->post_process_data) (cinfo, main->xbuffer[main->whichptr], - &main->rowgroup_ctr, main->rowgroups_avail, - output_buf, out_row_ctr, out_rows_avail); - if (main->rowgroup_ctr < main->rowgroups_avail) - return; /* Need to suspend */ - /* After the first iMCU, change wraparound pointers to normal state */ - if (main->iMCU_row_ctr == 1) - set_wraparound_pointers(cinfo); - /* Prepare to load new iMCU row using other xbuffer list */ - main->whichptr ^= 1; /* 0=>1 or 1=>0 */ - main->buffer_full = FALSE; - /* Still need to process last row group of this iMCU row, */ - /* which is saved at index M+1 of the other xbuffer */ - main->rowgroup_ctr = (JDIMENSION) (cinfo->min_DCT_scaled_size + 1); - main->rowgroups_avail = (JDIMENSION) (cinfo->min_DCT_scaled_size + 2); - main->context_state = CTX_POSTPONED_ROW; - } -} - - -/* - * Process some data. - * Final pass of two-pass quantization: just call the postprocessor. - * Source data will be the postprocessor controller's internal buffer. - */ - -#ifdef QUANT_2PASS_SUPPORTED - -METHODDEF(void) -process_data_crank_post (j_decompress_ptr cinfo, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - (*cinfo->post->post_process_data) (cinfo, (JSAMPIMAGE) NULL, - (JDIMENSION *) NULL, (JDIMENSION) 0, - output_buf, out_row_ctr, out_rows_avail); -} - -#endif /* QUANT_2PASS_SUPPORTED */ - - -/* - * Initialize main buffer controller. - */ - -GLOBAL(void) -jinit_d_main_controller (j_decompress_ptr cinfo, boolean need_full_buffer) -{ - my_main_ptr main; - int ci, rgroup, ngroups; - jpeg_component_info *compptr; - - main = (my_main_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_main_controller)); - cinfo->main = (struct jpeg_d_main_controller *) main; - main->pub.start_pass = start_pass_main; - - if (need_full_buffer) /* shouldn't happen */ - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - - /* Allocate the workspace. - * ngroups is the number of row groups we need. - */ - if (cinfo->upsample->need_context_rows) { - if (cinfo->min_DCT_scaled_size < 2) /* unsupported, see comments above */ - ERREXIT(cinfo, JERR_NOTIMPL); - alloc_funny_pointers(cinfo); /* Alloc space for xbuffer[] lists */ - ngroups = cinfo->min_DCT_scaled_size + 2; - } else { - ngroups = cinfo->min_DCT_scaled_size; - } - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - rgroup = (compptr->v_samp_factor * compptr->DCT_scaled_size) / - cinfo->min_DCT_scaled_size; /* height of a row group of component */ - main->buffer[ci] = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - compptr->width_in_blocks * compptr->DCT_scaled_size, - (JDIMENSION) (rgroup * ngroups)); - } -} diff --git a/src/jpeg/jdmarker.c b/src/jpeg/jdmarker.c deleted file mode 100644 index f4cca8cc83..0000000000 --- a/src/jpeg/jdmarker.c +++ /dev/null @@ -1,1360 +0,0 @@ -/* - * jdmarker.c - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains routines to decode JPEG datastream markers. - * Most of the complexity arises from our desire to support input - * suspension: if not all of the data for a marker is available, - * we must exit back to the application. On resumption, we reprocess - * the marker. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -typedef enum { /* JPEG marker codes */ - M_SOF0 = 0xc0, - M_SOF1 = 0xc1, - M_SOF2 = 0xc2, - M_SOF3 = 0xc3, - - M_SOF5 = 0xc5, - M_SOF6 = 0xc6, - M_SOF7 = 0xc7, - - M_JPG = 0xc8, - M_SOF9 = 0xc9, - M_SOF10 = 0xca, - M_SOF11 = 0xcb, - - M_SOF13 = 0xcd, - M_SOF14 = 0xce, - M_SOF15 = 0xcf, - - M_DHT = 0xc4, - - M_DAC = 0xcc, - - M_RST0 = 0xd0, - M_RST1 = 0xd1, - M_RST2 = 0xd2, - M_RST3 = 0xd3, - M_RST4 = 0xd4, - M_RST5 = 0xd5, - M_RST6 = 0xd6, - M_RST7 = 0xd7, - - M_SOI = 0xd8, - M_EOI = 0xd9, - M_SOS = 0xda, - M_DQT = 0xdb, - M_DNL = 0xdc, - M_DRI = 0xdd, - M_DHP = 0xde, - M_EXP = 0xdf, - - M_APP0 = 0xe0, - M_APP1 = 0xe1, - M_APP2 = 0xe2, - M_APP3 = 0xe3, - M_APP4 = 0xe4, - M_APP5 = 0xe5, - M_APP6 = 0xe6, - M_APP7 = 0xe7, - M_APP8 = 0xe8, - M_APP9 = 0xe9, - M_APP10 = 0xea, - M_APP11 = 0xeb, - M_APP12 = 0xec, - M_APP13 = 0xed, - M_APP14 = 0xee, - M_APP15 = 0xef, - - M_JPG0 = 0xf0, - M_JPG13 = 0xfd, - M_COM = 0xfe, - - M_TEM = 0x01, - - M_ERROR = 0x100 -} JPEG_MARKER; - - -/* Private state */ - -typedef struct { - struct jpeg_marker_reader pub; /* public fields */ - - /* Application-overridable marker processing methods */ - jpeg_marker_parser_method process_COM; - jpeg_marker_parser_method process_APPn[16]; - - /* Limit on marker data length to save for each marker type */ - unsigned int length_limit_COM; - unsigned int length_limit_APPn[16]; - - /* Status of COM/APPn marker saving */ - jpeg_saved_marker_ptr cur_marker; /* NULL if not processing a marker */ - unsigned int bytes_read; /* data bytes read so far in marker */ - /* Note: cur_marker is not linked into marker_list until it's all read. */ -} my_marker_reader; - -typedef my_marker_reader * my_marker_ptr; - - -/* - * Macros for fetching data from the data source module. - * - * At all times, cinfo->src->next_input_byte and ->bytes_in_buffer reflect - * the current restart point; we update them only when we have reached a - * suitable place to restart if a suspension occurs. - */ - -/* Declare and initialize local copies of input pointer/count */ -#define INPUT_VARS(cinfo) \ - struct jpeg_source_mgr * datasrc = (cinfo)->src; \ - const JOCTET * next_input_byte = datasrc->next_input_byte; \ - size_t bytes_in_buffer = datasrc->bytes_in_buffer - -/* Unload the local copies --- do this only at a restart boundary */ -#define INPUT_SYNC(cinfo) \ - ( datasrc->next_input_byte = next_input_byte, \ - datasrc->bytes_in_buffer = bytes_in_buffer ) - -/* Reload the local copies --- used only in MAKE_BYTE_AVAIL */ -#define INPUT_RELOAD(cinfo) \ - ( next_input_byte = datasrc->next_input_byte, \ - bytes_in_buffer = datasrc->bytes_in_buffer ) - -/* Internal macro for INPUT_BYTE and INPUT_2BYTES: make a byte available. - * Note we do *not* do INPUT_SYNC before calling fill_input_buffer, - * but we must reload the local copies after a successful fill. - */ -#define MAKE_BYTE_AVAIL(cinfo,action) \ - if (bytes_in_buffer == 0) { \ - if (! (*datasrc->fill_input_buffer) (cinfo)) \ - { action; } \ - INPUT_RELOAD(cinfo); \ - } - -/* Read a byte into variable V. - * If must suspend, take the specified action (typically "return FALSE"). - */ -#define INPUT_BYTE(cinfo,V,action) \ - MAKESTMT( MAKE_BYTE_AVAIL(cinfo,action); \ - bytes_in_buffer--; \ - V = GETJOCTET(*next_input_byte++); ) - -/* As above, but read two bytes interpreted as an unsigned 16-bit integer. - * V should be declared unsigned int or perhaps INT32. - */ -#define INPUT_2BYTES(cinfo,V,action) \ - MAKESTMT( MAKE_BYTE_AVAIL(cinfo,action); \ - bytes_in_buffer--; \ - V = ((unsigned int) GETJOCTET(*next_input_byte++)) << 8; \ - MAKE_BYTE_AVAIL(cinfo,action); \ - bytes_in_buffer--; \ - V += GETJOCTET(*next_input_byte++); ) - - -/* - * Routines to process JPEG markers. - * - * Entry condition: JPEG marker itself has been read and its code saved - * in cinfo->unread_marker; input restart point is just after the marker. - * - * Exit: if return TRUE, have read and processed any parameters, and have - * updated the restart point to point after the parameters. - * If return FALSE, was forced to suspend before reaching end of - * marker parameters; restart point has not been moved. Same routine - * will be called again after application supplies more input data. - * - * This approach to suspension assumes that all of a marker's parameters - * can fit into a single input bufferload. This should hold for "normal" - * markers. Some COM/APPn markers might have large parameter segments - * that might not fit. If we are simply dropping such a marker, we use - * skip_input_data to get past it, and thereby put the problem on the - * source manager's shoulders. If we are saving the marker's contents - * into memory, we use a slightly different convention: when forced to - * suspend, the marker processor updates the restart point to the end of - * what it's consumed (ie, the end of the buffer) before returning FALSE. - * On resumption, cinfo->unread_marker still contains the marker code, - * but the data source will point to the next chunk of marker data. - * The marker processor must retain internal state to deal with this. - * - * Note that we don't bother to avoid duplicate trace messages if a - * suspension occurs within marker parameters. Other side effects - * require more care. - */ - - -LOCAL(boolean) -get_soi (j_decompress_ptr cinfo) -/* Process an SOI marker */ -{ - int i; - - TRACEMS(cinfo, 1, JTRC_SOI); - - if (cinfo->marker->saw_SOI) - ERREXIT(cinfo, JERR_SOI_DUPLICATE); - - /* Reset all parameters that are defined to be reset by SOI */ - - for (i = 0; i < NUM_ARITH_TBLS; i++) { - cinfo->arith_dc_L[i] = 0; - cinfo->arith_dc_U[i] = 1; - cinfo->arith_ac_K[i] = 5; - } - cinfo->restart_interval = 0; - - /* Set initial assumptions for colorspace etc */ - - cinfo->jpeg_color_space = JCS_UNKNOWN; - cinfo->CCIR601_sampling = FALSE; /* Assume non-CCIR sampling??? */ - - cinfo->saw_JFIF_marker = FALSE; - cinfo->JFIF_major_version = 1; /* set default JFIF APP0 values */ - cinfo->JFIF_minor_version = 1; - cinfo->density_unit = 0; - cinfo->X_density = 1; - cinfo->Y_density = 1; - cinfo->saw_Adobe_marker = FALSE; - cinfo->Adobe_transform = 0; - - cinfo->marker->saw_SOI = TRUE; - - return TRUE; -} - - -LOCAL(boolean) -get_sof (j_decompress_ptr cinfo, boolean is_prog, boolean is_arith) -/* Process a SOFn marker */ -{ - INT32 length; - int c, ci; - jpeg_component_info * compptr; - INPUT_VARS(cinfo); - - cinfo->progressive_mode = is_prog; - cinfo->arith_code = is_arith; - - INPUT_2BYTES(cinfo, length, return FALSE); - - INPUT_BYTE(cinfo, cinfo->data_precision, return FALSE); - INPUT_2BYTES(cinfo, cinfo->image_height, return FALSE); - INPUT_2BYTES(cinfo, cinfo->image_width, return FALSE); - INPUT_BYTE(cinfo, cinfo->num_components, return FALSE); - - length -= 8; - - TRACEMS4(cinfo, 1, JTRC_SOF, cinfo->unread_marker, - (int) cinfo->image_width, (int) cinfo->image_height, - cinfo->num_components); - - if (cinfo->marker->saw_SOF) - ERREXIT(cinfo, JERR_SOF_DUPLICATE); - - /* We don't support files in which the image height is initially specified */ - /* as 0 and is later redefined by DNL. As long as we have to check that, */ - /* might as well have a general sanity check. */ - if (cinfo->image_height <= 0 || cinfo->image_width <= 0 - || cinfo->num_components <= 0) - ERREXIT(cinfo, JERR_EMPTY_IMAGE); - - if (length != (cinfo->num_components * 3)) - ERREXIT(cinfo, JERR_BAD_LENGTH); - - if (cinfo->comp_info == NULL) /* do only once, even if suspend */ - cinfo->comp_info = (jpeg_component_info *) (*cinfo->mem->alloc_small) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - cinfo->num_components * SIZEOF(jpeg_component_info)); - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - compptr->component_index = ci; - INPUT_BYTE(cinfo, compptr->component_id, return FALSE); - INPUT_BYTE(cinfo, c, return FALSE); - compptr->h_samp_factor = (c >> 4) & 15; - compptr->v_samp_factor = (c ) & 15; - INPUT_BYTE(cinfo, compptr->quant_tbl_no, return FALSE); - - TRACEMS4(cinfo, 1, JTRC_SOF_COMPONENT, - compptr->component_id, compptr->h_samp_factor, - compptr->v_samp_factor, compptr->quant_tbl_no); - } - - cinfo->marker->saw_SOF = TRUE; - - INPUT_SYNC(cinfo); - return TRUE; -} - - -LOCAL(boolean) -get_sos (j_decompress_ptr cinfo) -/* Process a SOS marker */ -{ - INT32 length; - int i, ci, n, c, cc; - jpeg_component_info * compptr; - INPUT_VARS(cinfo); - - if (! cinfo->marker->saw_SOF) - ERREXIT(cinfo, JERR_SOS_NO_SOF); - - INPUT_2BYTES(cinfo, length, return FALSE); - - INPUT_BYTE(cinfo, n, return FALSE); /* Number of components */ - - TRACEMS1(cinfo, 1, JTRC_SOS, n); - - if (length != (n * 2 + 6) || n < 1 || n > MAX_COMPS_IN_SCAN) - ERREXIT(cinfo, JERR_BAD_LENGTH); - - cinfo->comps_in_scan = n; - - /* Collect the component-spec parameters */ - - for (i = 0; i < n; i++) { - INPUT_BYTE(cinfo, cc, return FALSE); - INPUT_BYTE(cinfo, c, return FALSE); - - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - if (cc == compptr->component_id) - goto id_found; - } - - ERREXIT1(cinfo, JERR_BAD_COMPONENT_ID, cc); - - id_found: - - cinfo->cur_comp_info[i] = compptr; - compptr->dc_tbl_no = (c >> 4) & 15; - compptr->ac_tbl_no = (c ) & 15; - - TRACEMS3(cinfo, 1, JTRC_SOS_COMPONENT, cc, - compptr->dc_tbl_no, compptr->ac_tbl_no); - } - - /* Collect the additional scan parameters Ss, Se, Ah/Al. */ - INPUT_BYTE(cinfo, c, return FALSE); - cinfo->Ss = c; - INPUT_BYTE(cinfo, c, return FALSE); - cinfo->Se = c; - INPUT_BYTE(cinfo, c, return FALSE); - cinfo->Ah = (c >> 4) & 15; - cinfo->Al = (c ) & 15; - - TRACEMS4(cinfo, 1, JTRC_SOS_PARAMS, cinfo->Ss, cinfo->Se, - cinfo->Ah, cinfo->Al); - - /* Prepare to scan data & restart markers */ - cinfo->marker->next_restart_num = 0; - - /* Count another SOS marker */ - cinfo->input_scan_number++; - - INPUT_SYNC(cinfo); - return TRUE; -} - - -#ifdef D_ARITH_CODING_SUPPORTED - -LOCAL(boolean) -get_dac (j_decompress_ptr cinfo) -/* Process a DAC marker */ -{ - INT32 length; - int index, val; - INPUT_VARS(cinfo); - - INPUT_2BYTES(cinfo, length, return FALSE); - length -= 2; - - while (length > 0) { - INPUT_BYTE(cinfo, index, return FALSE); - INPUT_BYTE(cinfo, val, return FALSE); - - length -= 2; - - TRACEMS2(cinfo, 1, JTRC_DAC, index, val); - - if (index < 0 || index >= (2*NUM_ARITH_TBLS)) - ERREXIT1(cinfo, JERR_DAC_INDEX, index); - - if (index >= NUM_ARITH_TBLS) { /* define AC table */ - cinfo->arith_ac_K[index-NUM_ARITH_TBLS] = (UINT8) val; - } else { /* define DC table */ - cinfo->arith_dc_L[index] = (UINT8) (val & 0x0F); - cinfo->arith_dc_U[index] = (UINT8) (val >> 4); - if (cinfo->arith_dc_L[index] > cinfo->arith_dc_U[index]) - ERREXIT1(cinfo, JERR_DAC_VALUE, val); - } - } - - if (length != 0) - ERREXIT(cinfo, JERR_BAD_LENGTH); - - INPUT_SYNC(cinfo); - return TRUE; -} - -#else /* ! D_ARITH_CODING_SUPPORTED */ - -#define get_dac(cinfo) skip_variable(cinfo) - -#endif /* D_ARITH_CODING_SUPPORTED */ - - -LOCAL(boolean) -get_dht (j_decompress_ptr cinfo) -/* Process a DHT marker */ -{ - INT32 length; - UINT8 bits[17]; - UINT8 huffval[256]; - int i, index, count; - JHUFF_TBL **htblptr; - INPUT_VARS(cinfo); - - INPUT_2BYTES(cinfo, length, return FALSE); - length -= 2; - - while (length > 16) { - INPUT_BYTE(cinfo, index, return FALSE); - - TRACEMS1(cinfo, 1, JTRC_DHT, index); - - bits[0] = 0; - count = 0; - for (i = 1; i <= 16; i++) { - INPUT_BYTE(cinfo, bits[i], return FALSE); - count += bits[i]; - } - - length -= 1 + 16; - - TRACEMS8(cinfo, 2, JTRC_HUFFBITS, - bits[1], bits[2], bits[3], bits[4], - bits[5], bits[6], bits[7], bits[8]); - TRACEMS8(cinfo, 2, JTRC_HUFFBITS, - bits[9], bits[10], bits[11], bits[12], - bits[13], bits[14], bits[15], bits[16]); - - /* Here we just do minimal validation of the counts to avoid walking - * off the end of our table space. jdhuff.c will check more carefully. - */ - if (count > 256 || ((INT32) count) > length) - ERREXIT(cinfo, JERR_BAD_HUFF_TABLE); - - for (i = 0; i < count; i++) - INPUT_BYTE(cinfo, huffval[i], return FALSE); - - length -= count; - - if (index & 0x10) { /* AC table definition */ - index -= 0x10; - htblptr = &cinfo->ac_huff_tbl_ptrs[index]; - } else { /* DC table definition */ - htblptr = &cinfo->dc_huff_tbl_ptrs[index]; - } - - if (index < 0 || index >= NUM_HUFF_TBLS) - ERREXIT1(cinfo, JERR_DHT_INDEX, index); - - if (*htblptr == NULL) - *htblptr = jpeg_alloc_huff_table((j_common_ptr) cinfo); - - MEMCOPY((*htblptr)->bits, bits, SIZEOF((*htblptr)->bits)); - MEMCOPY((*htblptr)->huffval, huffval, SIZEOF((*htblptr)->huffval)); - } - - if (length != 0) - ERREXIT(cinfo, JERR_BAD_LENGTH); - - INPUT_SYNC(cinfo); - return TRUE; -} - - -LOCAL(boolean) -get_dqt (j_decompress_ptr cinfo) -/* Process a DQT marker */ -{ - INT32 length; - int n, i, prec; - unsigned int tmp; - JQUANT_TBL *quant_ptr; - INPUT_VARS(cinfo); - - INPUT_2BYTES(cinfo, length, return FALSE); - length -= 2; - - while (length > 0) { - INPUT_BYTE(cinfo, n, return FALSE); - prec = n >> 4; - n &= 0x0F; - - TRACEMS2(cinfo, 1, JTRC_DQT, n, prec); - - if (n >= NUM_QUANT_TBLS) - ERREXIT1(cinfo, JERR_DQT_INDEX, n); - - if (cinfo->quant_tbl_ptrs[n] == NULL) - cinfo->quant_tbl_ptrs[n] = jpeg_alloc_quant_table((j_common_ptr) cinfo); - quant_ptr = cinfo->quant_tbl_ptrs[n]; - - for (i = 0; i < DCTSIZE2; i++) { - if (prec) - INPUT_2BYTES(cinfo, tmp, return FALSE); - else - INPUT_BYTE(cinfo, tmp, return FALSE); - /* We convert the zigzag-order table to natural array order. */ - quant_ptr->quantval[jpeg_natural_order[i]] = (UINT16) tmp; - } - - if (cinfo->err->trace_level >= 2) { - for (i = 0; i < DCTSIZE2; i += 8) { - TRACEMS8(cinfo, 2, JTRC_QUANTVALS, - quant_ptr->quantval[i], quant_ptr->quantval[i+1], - quant_ptr->quantval[i+2], quant_ptr->quantval[i+3], - quant_ptr->quantval[i+4], quant_ptr->quantval[i+5], - quant_ptr->quantval[i+6], quant_ptr->quantval[i+7]); - } - } - - length -= DCTSIZE2+1; - if (prec) length -= DCTSIZE2; - } - - if (length != 0) - ERREXIT(cinfo, JERR_BAD_LENGTH); - - INPUT_SYNC(cinfo); - return TRUE; -} - - -LOCAL(boolean) -get_dri (j_decompress_ptr cinfo) -/* Process a DRI marker */ -{ - INT32 length; - unsigned int tmp; - INPUT_VARS(cinfo); - - INPUT_2BYTES(cinfo, length, return FALSE); - - if (length != 4) - ERREXIT(cinfo, JERR_BAD_LENGTH); - - INPUT_2BYTES(cinfo, tmp, return FALSE); - - TRACEMS1(cinfo, 1, JTRC_DRI, tmp); - - cinfo->restart_interval = tmp; - - INPUT_SYNC(cinfo); - return TRUE; -} - - -/* - * Routines for processing APPn and COM markers. - * These are either saved in memory or discarded, per application request. - * APP0 and APP14 are specially checked to see if they are - * JFIF and Adobe markers, respectively. - */ - -#define APP0_DATA_LEN 14 /* Length of interesting data in APP0 */ -#define APP14_DATA_LEN 12 /* Length of interesting data in APP14 */ -#define APPN_DATA_LEN 14 /* Must be the largest of the above!! */ - - -LOCAL(void) -examine_app0 (j_decompress_ptr cinfo, JOCTET FAR * data, - unsigned int datalen, INT32 remaining) -/* Examine first few bytes from an APP0. - * Take appropriate action if it is a JFIF marker. - * datalen is # of bytes at data[], remaining is length of rest of marker data. - */ -{ - INT32 totallen = (INT32) datalen + remaining; - - if (datalen >= APP0_DATA_LEN && - GETJOCTET(data[0]) == 0x4A && - GETJOCTET(data[1]) == 0x46 && - GETJOCTET(data[2]) == 0x49 && - GETJOCTET(data[3]) == 0x46 && - GETJOCTET(data[4]) == 0) { - /* Found JFIF APP0 marker: save info */ - cinfo->saw_JFIF_marker = TRUE; - cinfo->JFIF_major_version = GETJOCTET(data[5]); - cinfo->JFIF_minor_version = GETJOCTET(data[6]); - cinfo->density_unit = GETJOCTET(data[7]); - cinfo->X_density = (GETJOCTET(data[8]) << 8) + GETJOCTET(data[9]); - cinfo->Y_density = (GETJOCTET(data[10]) << 8) + GETJOCTET(data[11]); - /* Check version. - * Major version must be 1, anything else signals an incompatible change. - * (We used to treat this as an error, but now it's a nonfatal warning, - * because some bozo at Hijaak couldn't read the spec.) - * Minor version should be 0..2, but process anyway if newer. - */ - if (cinfo->JFIF_major_version != 1) - WARNMS2(cinfo, JWRN_JFIF_MAJOR, - cinfo->JFIF_major_version, cinfo->JFIF_minor_version); - /* Generate trace messages */ - TRACEMS5(cinfo, 1, JTRC_JFIF, - cinfo->JFIF_major_version, cinfo->JFIF_minor_version, - cinfo->X_density, cinfo->Y_density, cinfo->density_unit); - /* Validate thumbnail dimensions and issue appropriate messages */ - if (GETJOCTET(data[12]) | GETJOCTET(data[13])) - TRACEMS2(cinfo, 1, JTRC_JFIF_THUMBNAIL, - GETJOCTET(data[12]), GETJOCTET(data[13])); - totallen -= APP0_DATA_LEN; - if (totallen != - ((INT32)GETJOCTET(data[12]) * (INT32)GETJOCTET(data[13]) * (INT32) 3)) - TRACEMS1(cinfo, 1, JTRC_JFIF_BADTHUMBNAILSIZE, (int) totallen); - } else if (datalen >= 6 && - GETJOCTET(data[0]) == 0x4A && - GETJOCTET(data[1]) == 0x46 && - GETJOCTET(data[2]) == 0x58 && - GETJOCTET(data[3]) == 0x58 && - GETJOCTET(data[4]) == 0) { - /* Found JFIF "JFXX" extension APP0 marker */ - /* The library doesn't actually do anything with these, - * but we try to produce a helpful trace message. - */ - switch (GETJOCTET(data[5])) { - case 0x10: - TRACEMS1(cinfo, 1, JTRC_THUMB_JPEG, (int) totallen); - break; - case 0x11: - TRACEMS1(cinfo, 1, JTRC_THUMB_PALETTE, (int) totallen); - break; - case 0x13: - TRACEMS1(cinfo, 1, JTRC_THUMB_RGB, (int) totallen); - break; - default: - TRACEMS2(cinfo, 1, JTRC_JFIF_EXTENSION, - GETJOCTET(data[5]), (int) totallen); - break; - } - } else { - /* Start of APP0 does not match "JFIF" or "JFXX", or too short */ - TRACEMS1(cinfo, 1, JTRC_APP0, (int) totallen); - } -} - - -LOCAL(void) -examine_app14 (j_decompress_ptr cinfo, JOCTET FAR * data, - unsigned int datalen, INT32 remaining) -/* Examine first few bytes from an APP14. - * Take appropriate action if it is an Adobe marker. - * datalen is # of bytes at data[], remaining is length of rest of marker data. - */ -{ - unsigned int version, flags0, flags1, transform; - - if (datalen >= APP14_DATA_LEN && - GETJOCTET(data[0]) == 0x41 && - GETJOCTET(data[1]) == 0x64 && - GETJOCTET(data[2]) == 0x6F && - GETJOCTET(data[3]) == 0x62 && - GETJOCTET(data[4]) == 0x65) { - /* Found Adobe APP14 marker */ - version = (GETJOCTET(data[5]) << 8) + GETJOCTET(data[6]); - flags0 = (GETJOCTET(data[7]) << 8) + GETJOCTET(data[8]); - flags1 = (GETJOCTET(data[9]) << 8) + GETJOCTET(data[10]); - transform = GETJOCTET(data[11]); - TRACEMS4(cinfo, 1, JTRC_ADOBE, version, flags0, flags1, transform); - cinfo->saw_Adobe_marker = TRUE; - cinfo->Adobe_transform = (UINT8) transform; - } else { - /* Start of APP14 does not match "Adobe", or too short */ - TRACEMS1(cinfo, 1, JTRC_APP14, (int) (datalen + remaining)); - } -} - - -METHODDEF(boolean) -get_interesting_appn (j_decompress_ptr cinfo) -/* Process an APP0 or APP14 marker without saving it */ -{ - INT32 length; - JOCTET b[APPN_DATA_LEN]; - unsigned int i, numtoread; - INPUT_VARS(cinfo); - - INPUT_2BYTES(cinfo, length, return FALSE); - length -= 2; - - /* get the interesting part of the marker data */ - if (length >= APPN_DATA_LEN) - numtoread = APPN_DATA_LEN; - else if (length > 0) - numtoread = (unsigned int) length; - else - numtoread = 0; - for (i = 0; i < numtoread; i++) - INPUT_BYTE(cinfo, b[i], return FALSE); - length -= numtoread; - - /* process it */ - switch (cinfo->unread_marker) { - case M_APP0: - examine_app0(cinfo, (JOCTET FAR *) b, numtoread, length); - break; - case M_APP14: - examine_app14(cinfo, (JOCTET FAR *) b, numtoread, length); - break; - default: - /* can't get here unless jpeg_save_markers chooses wrong processor */ - ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, cinfo->unread_marker); - break; - } - - /* skip any remaining data -- could be lots */ - INPUT_SYNC(cinfo); - if (length > 0) - (*cinfo->src->skip_input_data) (cinfo, (long) length); - - return TRUE; -} - - -#ifdef SAVE_MARKERS_SUPPORTED - -METHODDEF(boolean) -save_marker (j_decompress_ptr cinfo) -/* Save an APPn or COM marker into the marker list */ -{ - my_marker_ptr marker = (my_marker_ptr) cinfo->marker; - jpeg_saved_marker_ptr cur_marker = marker->cur_marker; - unsigned int bytes_read, data_length; - JOCTET FAR * data; - INT32 length = 0; - INPUT_VARS(cinfo); - - if (cur_marker == NULL) { - /* begin reading a marker */ - INPUT_2BYTES(cinfo, length, return FALSE); - length -= 2; - if (length >= 0) { /* watch out for bogus length word */ - /* figure out how much we want to save */ - unsigned int limit; - if (cinfo->unread_marker == (int) M_COM) - limit = marker->length_limit_COM; - else - limit = marker->length_limit_APPn[cinfo->unread_marker - (int) M_APP0]; - if ((unsigned int) length < limit) - limit = (unsigned int) length; - /* allocate and initialize the marker item */ - cur_marker = (jpeg_saved_marker_ptr) - (*cinfo->mem->alloc_large) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(struct jpeg_marker_struct) + limit); - cur_marker->next = NULL; - cur_marker->marker = (UINT8) cinfo->unread_marker; - cur_marker->original_length = (unsigned int) length; - cur_marker->data_length = limit; - /* data area is just beyond the jpeg_marker_struct */ - data = cur_marker->data = (JOCTET FAR *) (cur_marker + 1); - marker->cur_marker = cur_marker; - marker->bytes_read = 0; - bytes_read = 0; - data_length = limit; - } else { - /* deal with bogus length word */ - bytes_read = data_length = 0; - data = NULL; - } - } else { - /* resume reading a marker */ - bytes_read = marker->bytes_read; - data_length = cur_marker->data_length; - data = cur_marker->data + bytes_read; - } - - while (bytes_read < data_length) { - INPUT_SYNC(cinfo); /* move the restart point to here */ - marker->bytes_read = bytes_read; - /* If there's not at least one byte in buffer, suspend */ - MAKE_BYTE_AVAIL(cinfo, return FALSE); - /* Copy bytes with reasonable rapidity */ - while (bytes_read < data_length && bytes_in_buffer > 0) { - *data++ = *next_input_byte++; - bytes_in_buffer--; - bytes_read++; - } - } - - /* Done reading what we want to read */ - if (cur_marker != NULL) { /* will be NULL if bogus length word */ - /* Add new marker to end of list */ - if (cinfo->marker_list == NULL) { - cinfo->marker_list = cur_marker; - } else { - jpeg_saved_marker_ptr prev = cinfo->marker_list; - while (prev->next != NULL) - prev = prev->next; - prev->next = cur_marker; - } - /* Reset pointer & calc remaining data length */ - data = cur_marker->data; - length = cur_marker->original_length - data_length; - } - /* Reset to initial state for next marker */ - marker->cur_marker = NULL; - - /* Process the marker if interesting; else just make a generic trace msg */ - switch (cinfo->unread_marker) { - case M_APP0: - examine_app0(cinfo, data, data_length, length); - break; - case M_APP14: - examine_app14(cinfo, data, data_length, length); - break; - default: - TRACEMS2(cinfo, 1, JTRC_MISC_MARKER, cinfo->unread_marker, - (int) (data_length + length)); - break; - } - - /* skip any remaining data -- could be lots */ - INPUT_SYNC(cinfo); /* do before skip_input_data */ - if (length > 0) - (*cinfo->src->skip_input_data) (cinfo, (long) length); - - return TRUE; -} - -#endif /* SAVE_MARKERS_SUPPORTED */ - - -METHODDEF(boolean) -skip_variable (j_decompress_ptr cinfo) -/* Skip over an unknown or uninteresting variable-length marker */ -{ - INT32 length; - INPUT_VARS(cinfo); - - INPUT_2BYTES(cinfo, length, return FALSE); - length -= 2; - - TRACEMS2(cinfo, 1, JTRC_MISC_MARKER, cinfo->unread_marker, (int) length); - - INPUT_SYNC(cinfo); /* do before skip_input_data */ - if (length > 0) - (*cinfo->src->skip_input_data) (cinfo, (long) length); - - return TRUE; -} - - -/* - * Find the next JPEG marker, save it in cinfo->unread_marker. - * Returns FALSE if had to suspend before reaching a marker; - * in that case cinfo->unread_marker is unchanged. - * - * Note that the result might not be a valid marker code, - * but it will never be 0 or FF. - */ - -LOCAL(boolean) -next_marker (j_decompress_ptr cinfo) -{ - int c; - INPUT_VARS(cinfo); - - for (;;) { - INPUT_BYTE(cinfo, c, return FALSE); - /* Skip any non-FF bytes. - * This may look a bit inefficient, but it will not occur in a valid file. - * We sync after each discarded byte so that a suspending data source - * can discard the byte from its buffer. - */ - while (c != 0xFF) { - cinfo->marker->discarded_bytes++; - INPUT_SYNC(cinfo); - INPUT_BYTE(cinfo, c, return FALSE); - } - /* This loop swallows any duplicate FF bytes. Extra FFs are legal as - * pad bytes, so don't count them in discarded_bytes. We assume there - * will not be so many consecutive FF bytes as to overflow a suspending - * data source's input buffer. - */ - do { - INPUT_BYTE(cinfo, c, return FALSE); - } while (c == 0xFF); - if (c != 0) - break; /* found a valid marker, exit loop */ - /* Reach here if we found a stuffed-zero data sequence (FF/00). - * Discard it and loop back to try again. - */ - cinfo->marker->discarded_bytes += 2; - INPUT_SYNC(cinfo); - } - - if (cinfo->marker->discarded_bytes != 0) { - WARNMS2(cinfo, JWRN_EXTRANEOUS_DATA, cinfo->marker->discarded_bytes, c); - cinfo->marker->discarded_bytes = 0; - } - - cinfo->unread_marker = c; - - INPUT_SYNC(cinfo); - return TRUE; -} - - -LOCAL(boolean) -first_marker (j_decompress_ptr cinfo) -/* Like next_marker, but used to obtain the initial SOI marker. */ -/* For this marker, we do not allow preceding garbage or fill; otherwise, - * we might well scan an entire input file before realizing it ain't JPEG. - * If an application wants to process non-JFIF files, it must seek to the - * SOI before calling the JPEG library. - */ -{ - int c, c2; - INPUT_VARS(cinfo); - - INPUT_BYTE(cinfo, c, return FALSE); - INPUT_BYTE(cinfo, c2, return FALSE); - if (c != 0xFF || c2 != (int) M_SOI) - ERREXIT2(cinfo, JERR_NO_SOI, c, c2); - - cinfo->unread_marker = c2; - - INPUT_SYNC(cinfo); - return TRUE; -} - - -/* - * Read markers until SOS or EOI. - * - * Returns same codes as are defined for jpeg_consume_input: - * JPEG_SUSPENDED, JPEG_REACHED_SOS, or JPEG_REACHED_EOI. - */ - -METHODDEF(int) -read_markers (j_decompress_ptr cinfo) -{ - /* Outer loop repeats once for each marker. */ - for (;;) { - /* Collect the marker proper, unless we already did. */ - /* NB: first_marker() enforces the requirement that SOI appear first. */ - if (cinfo->unread_marker == 0) { - if (! cinfo->marker->saw_SOI) { - if (! first_marker(cinfo)) - return JPEG_SUSPENDED; - } else { - if (! next_marker(cinfo)) - return JPEG_SUSPENDED; - } - } - /* At this point cinfo->unread_marker contains the marker code and the - * input point is just past the marker proper, but before any parameters. - * A suspension will cause us to return with this state still true. - */ - switch (cinfo->unread_marker) { - case M_SOI: - if (! get_soi(cinfo)) - return JPEG_SUSPENDED; - break; - - case M_SOF0: /* Baseline */ - case M_SOF1: /* Extended sequential, Huffman */ - if (! get_sof(cinfo, FALSE, FALSE)) - return JPEG_SUSPENDED; - break; - - case M_SOF2: /* Progressive, Huffman */ - if (! get_sof(cinfo, TRUE, FALSE)) - return JPEG_SUSPENDED; - break; - - case M_SOF9: /* Extended sequential, arithmetic */ - if (! get_sof(cinfo, FALSE, TRUE)) - return JPEG_SUSPENDED; - break; - - case M_SOF10: /* Progressive, arithmetic */ - if (! get_sof(cinfo, TRUE, TRUE)) - return JPEG_SUSPENDED; - break; - - /* Currently unsupported SOFn types */ - case M_SOF3: /* Lossless, Huffman */ - case M_SOF5: /* Differential sequential, Huffman */ - case M_SOF6: /* Differential progressive, Huffman */ - case M_SOF7: /* Differential lossless, Huffman */ - case M_JPG: /* Reserved for JPEG extensions */ - case M_SOF11: /* Lossless, arithmetic */ - case M_SOF13: /* Differential sequential, arithmetic */ - case M_SOF14: /* Differential progressive, arithmetic */ - case M_SOF15: /* Differential lossless, arithmetic */ - ERREXIT1(cinfo, JERR_SOF_UNSUPPORTED, cinfo->unread_marker); - break; - - case M_SOS: - if (! get_sos(cinfo)) - return JPEG_SUSPENDED; - cinfo->unread_marker = 0; /* processed the marker */ - return JPEG_REACHED_SOS; - - case M_EOI: - TRACEMS(cinfo, 1, JTRC_EOI); - cinfo->unread_marker = 0; /* processed the marker */ - return JPEG_REACHED_EOI; - - case M_DAC: - if (! get_dac(cinfo)) - return JPEG_SUSPENDED; - break; - - case M_DHT: - if (! get_dht(cinfo)) - return JPEG_SUSPENDED; - break; - - case M_DQT: - if (! get_dqt(cinfo)) - return JPEG_SUSPENDED; - break; - - case M_DRI: - if (! get_dri(cinfo)) - return JPEG_SUSPENDED; - break; - - case M_APP0: - case M_APP1: - case M_APP2: - case M_APP3: - case M_APP4: - case M_APP5: - case M_APP6: - case M_APP7: - case M_APP8: - case M_APP9: - case M_APP10: - case M_APP11: - case M_APP12: - case M_APP13: - case M_APP14: - case M_APP15: - if (! (*((my_marker_ptr) cinfo->marker)->process_APPn[ - cinfo->unread_marker - (int) M_APP0]) (cinfo)) - return JPEG_SUSPENDED; - break; - - case M_COM: - if (! (*((my_marker_ptr) cinfo->marker)->process_COM) (cinfo)) - return JPEG_SUSPENDED; - break; - - case M_RST0: /* these are all parameterless */ - case M_RST1: - case M_RST2: - case M_RST3: - case M_RST4: - case M_RST5: - case M_RST6: - case M_RST7: - case M_TEM: - TRACEMS1(cinfo, 1, JTRC_PARMLESS_MARKER, cinfo->unread_marker); - break; - - case M_DNL: /* Ignore DNL ... perhaps the wrong thing */ - if (! skip_variable(cinfo)) - return JPEG_SUSPENDED; - break; - - default: /* must be DHP, EXP, JPGn, or RESn */ - /* For now, we treat the reserved markers as fatal errors since they are - * likely to be used to signal incompatible JPEG Part 3 extensions. - * Once the JPEG 3 version-number marker is well defined, this code - * ought to change! - */ - ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, cinfo->unread_marker); - break; - } - /* Successfully processed marker, so reset state variable */ - cinfo->unread_marker = 0; - } /* end loop */ -} - - -/* - * Read a restart marker, which is expected to appear next in the datastream; - * if the marker is not there, take appropriate recovery action. - * Returns FALSE if suspension is required. - * - * This is called by the entropy decoder after it has read an appropriate - * number of MCUs. cinfo->unread_marker may be nonzero if the entropy decoder - * has already read a marker from the data source. Under normal conditions - * cinfo->unread_marker will be reset to 0 before returning; if not reset, - * it holds a marker which the decoder will be unable to read past. - */ - -METHODDEF(boolean) -read_restart_marker (j_decompress_ptr cinfo) -{ - /* Obtain a marker unless we already did. */ - /* Note that next_marker will complain if it skips any data. */ - if (cinfo->unread_marker == 0) { - if (! next_marker(cinfo)) - return FALSE; - } - - if (cinfo->unread_marker == - ((int) M_RST0 + cinfo->marker->next_restart_num)) { - /* Normal case --- swallow the marker and let entropy decoder continue */ - TRACEMS1(cinfo, 3, JTRC_RST, cinfo->marker->next_restart_num); - cinfo->unread_marker = 0; - } else { - /* Uh-oh, the restart markers have been messed up. */ - /* Let the data source manager determine how to resync. */ - if (! (*cinfo->src->resync_to_restart) (cinfo, - cinfo->marker->next_restart_num)) - return FALSE; - } - - /* Update next-restart state */ - cinfo->marker->next_restart_num = (cinfo->marker->next_restart_num + 1) & 7; - - return TRUE; -} - - -/* - * This is the default resync_to_restart method for data source managers - * to use if they don't have any better approach. Some data source managers - * may be able to back up, or may have additional knowledge about the data - * which permits a more intelligent recovery strategy; such managers would - * presumably supply their own resync method. - * - * read_restart_marker calls resync_to_restart if it finds a marker other than - * the restart marker it was expecting. (This code is *not* used unless - * a nonzero restart interval has been declared.) cinfo->unread_marker is - * the marker code actually found (might be anything, except 0 or FF). - * The desired restart marker number (0..7) is passed as a parameter. - * This routine is supposed to apply whatever error recovery strategy seems - * appropriate in order to position the input stream to the next data segment. - * Note that cinfo->unread_marker is treated as a marker appearing before - * the current data-source input point; usually it should be reset to zero - * before returning. - * Returns FALSE if suspension is required. - * - * This implementation is substantially constrained by wanting to treat the - * input as a data stream; this means we can't back up. Therefore, we have - * only the following actions to work with: - * 1. Simply discard the marker and let the entropy decoder resume at next - * byte of file. - * 2. Read forward until we find another marker, discarding intervening - * data. (In theory we could look ahead within the current bufferload, - * without having to discard data if we don't find the desired marker. - * This idea is not implemented here, in part because it makes behavior - * dependent on buffer size and chance buffer-boundary positions.) - * 3. Leave the marker unread (by failing to zero cinfo->unread_marker). - * This will cause the entropy decoder to process an empty data segment, - * inserting dummy zeroes, and then we will reprocess the marker. - * - * #2 is appropriate if we think the desired marker lies ahead, while #3 is - * appropriate if the found marker is a future restart marker (indicating - * that we have missed the desired restart marker, probably because it got - * corrupted). - * We apply #2 or #3 if the found marker is a restart marker no more than - * two counts behind or ahead of the expected one. We also apply #2 if the - * found marker is not a legal JPEG marker code (it's certainly bogus data). - * If the found marker is a restart marker more than 2 counts away, we do #1 - * (too much risk that the marker is erroneous; with luck we will be able to - * resync at some future point). - * For any valid non-restart JPEG marker, we apply #3. This keeps us from - * overrunning the end of a scan. An implementation limited to single-scan - * files might find it better to apply #2 for markers other than EOI, since - * any other marker would have to be bogus data in that case. - */ - -GLOBAL(boolean) -jpeg_resync_to_restart (j_decompress_ptr cinfo, int desired) -{ - int marker = cinfo->unread_marker; - int action = 1; - - /* Always put up a warning. */ - WARNMS2(cinfo, JWRN_MUST_RESYNC, marker, desired); - - /* Outer loop handles repeated decision after scanning forward. */ - for (;;) { - if (marker < (int) M_SOF0) - action = 2; /* invalid marker */ - else if (marker < (int) M_RST0 || marker > (int) M_RST7) - action = 3; /* valid non-restart marker */ - else { - if (marker == ((int) M_RST0 + ((desired+1) & 7)) || - marker == ((int) M_RST0 + ((desired+2) & 7))) - action = 3; /* one of the next two expected restarts */ - else if (marker == ((int) M_RST0 + ((desired-1) & 7)) || - marker == ((int) M_RST0 + ((desired-2) & 7))) - action = 2; /* a prior restart, so advance */ - else - action = 1; /* desired restart or too far away */ - } - TRACEMS2(cinfo, 4, JTRC_RECOVERY_ACTION, marker, action); - switch (action) { - case 1: - /* Discard marker and let entropy decoder resume processing. */ - cinfo->unread_marker = 0; - return TRUE; - case 2: - /* Scan to the next marker, and repeat the decision loop. */ - if (! next_marker(cinfo)) - return FALSE; - marker = cinfo->unread_marker; - break; - case 3: - /* Return without advancing past this marker. */ - /* Entropy decoder will be forced to process an empty segment. */ - return TRUE; - } - } /* end loop */ -} - - -/* - * Reset marker processing state to begin a fresh datastream. - */ - -METHODDEF(void) -reset_marker_reader (j_decompress_ptr cinfo) -{ - my_marker_ptr marker = (my_marker_ptr) cinfo->marker; - - cinfo->comp_info = NULL; /* until allocated by get_sof */ - cinfo->input_scan_number = 0; /* no SOS seen yet */ - cinfo->unread_marker = 0; /* no pending marker */ - marker->pub.saw_SOI = FALSE; /* set internal state too */ - marker->pub.saw_SOF = FALSE; - marker->pub.discarded_bytes = 0; - marker->cur_marker = NULL; -} - - -/* - * Initialize the marker reader module. - * This is called only once, when the decompression object is created. - */ - -GLOBAL(void) -jinit_marker_reader (j_decompress_ptr cinfo) -{ - my_marker_ptr marker; - int i; - - /* Create subobject in permanent pool */ - marker = (my_marker_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT, - SIZEOF(my_marker_reader)); - cinfo->marker = (struct jpeg_marker_reader *) marker; - /* Initialize public method pointers */ - marker->pub.reset_marker_reader = reset_marker_reader; - marker->pub.read_markers = read_markers; - marker->pub.read_restart_marker = read_restart_marker; - /* Initialize COM/APPn processing. - * By default, we examine and then discard APP0 and APP14, - * but simply discard COM and all other APPn. - */ - marker->process_COM = skip_variable; - marker->length_limit_COM = 0; - for (i = 0; i < 16; i++) { - marker->process_APPn[i] = skip_variable; - marker->length_limit_APPn[i] = 0; - } - marker->process_APPn[0] = get_interesting_appn; - marker->process_APPn[14] = get_interesting_appn; - /* Reset marker processing state */ - reset_marker_reader(cinfo); -} - - -/* - * Control saving of COM and APPn markers into marker_list. - */ - -#ifdef SAVE_MARKERS_SUPPORTED - -GLOBAL(void) -jpeg_save_markers (j_decompress_ptr cinfo, int marker_code, - unsigned int length_limit) -{ - my_marker_ptr marker = (my_marker_ptr) cinfo->marker; - long maxlength; - jpeg_marker_parser_method processor; - - /* Length limit mustn't be larger than what we can allocate - * (should only be a concern in a 16-bit environment). - */ - maxlength = cinfo->mem->max_alloc_chunk - SIZEOF(struct jpeg_marker_struct); - if (((long) length_limit) > maxlength) - length_limit = (unsigned int) maxlength; - - /* Choose processor routine to use. - * APP0/APP14 have special requirements. - */ - if (length_limit) { - processor = save_marker; - /* If saving APP0/APP14, save at least enough for our internal use. */ - if (marker_code == (int) M_APP0 && length_limit < APP0_DATA_LEN) - length_limit = APP0_DATA_LEN; - else if (marker_code == (int) M_APP14 && length_limit < APP14_DATA_LEN) - length_limit = APP14_DATA_LEN; - } else { - processor = skip_variable; - /* If discarding APP0/APP14, use our regular on-the-fly processor. */ - if (marker_code == (int) M_APP0 || marker_code == (int) M_APP14) - processor = get_interesting_appn; - } - - if (marker_code == (int) M_COM) { - marker->process_COM = processor; - marker->length_limit_COM = length_limit; - } else if (marker_code >= (int) M_APP0 && marker_code <= (int) M_APP15) { - marker->process_APPn[marker_code - (int) M_APP0] = processor; - marker->length_limit_APPn[marker_code - (int) M_APP0] = length_limit; - } else - ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, marker_code); -} - -#endif /* SAVE_MARKERS_SUPPORTED */ - - -/* - * Install a special processing method for COM or APPn markers. - */ - -GLOBAL(void) -jpeg_set_marker_processor (j_decompress_ptr cinfo, int marker_code, - jpeg_marker_parser_method routine) -{ - my_marker_ptr marker = (my_marker_ptr) cinfo->marker; - - if (marker_code == (int) M_COM) - marker->process_COM = routine; - else if (marker_code >= (int) M_APP0 && marker_code <= (int) M_APP15) - marker->process_APPn[marker_code - (int) M_APP0] = routine; - else - ERREXIT1(cinfo, JERR_UNKNOWN_MARKER, marker_code); -} diff --git a/src/jpeg/jdmaster.c b/src/jpeg/jdmaster.c deleted file mode 100644 index 2802c5b7b2..0000000000 --- a/src/jpeg/jdmaster.c +++ /dev/null @@ -1,557 +0,0 @@ -/* - * jdmaster.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains master control logic for the JPEG decompressor. - * These routines are concerned with selecting the modules to be executed - * and with determining the number of passes and the work to be done in each - * pass. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Private state */ - -typedef struct { - struct jpeg_decomp_master pub; /* public fields */ - - int pass_number; /* # of passes completed */ - - boolean using_merged_upsample; /* TRUE if using merged upsample/cconvert */ - - /* Saved references to initialized quantizer modules, - * in case we need to switch modes. - */ - struct jpeg_color_quantizer * quantizer_1pass; - struct jpeg_color_quantizer * quantizer_2pass; -} my_decomp_master; - -typedef my_decomp_master * my_master_ptr; - - -/* - * Determine whether merged upsample/color conversion should be used. - * CRUCIAL: this must match the actual capabilities of jdmerge.c! - */ - -LOCAL(boolean) -use_merged_upsample (j_decompress_ptr cinfo) -{ -#ifdef UPSAMPLE_MERGING_SUPPORTED - /* Merging is the equivalent of plain box-filter upsampling */ - if (cinfo->do_fancy_upsampling || cinfo->CCIR601_sampling) - return FALSE; - /* jdmerge.c only supports YCC=>RGB color conversion */ - if (cinfo->jpeg_color_space != JCS_YCbCr || cinfo->num_components != 3 || - cinfo->out_color_space != JCS_RGB || - cinfo->out_color_components != RGB_PIXELSIZE) - return FALSE; - /* and it only handles 2h1v or 2h2v sampling ratios */ - if (cinfo->comp_info[0].h_samp_factor != 2 || - cinfo->comp_info[1].h_samp_factor != 1 || - cinfo->comp_info[2].h_samp_factor != 1 || - cinfo->comp_info[0].v_samp_factor > 2 || - cinfo->comp_info[1].v_samp_factor != 1 || - cinfo->comp_info[2].v_samp_factor != 1) - return FALSE; - /* furthermore, it doesn't work if we've scaled the IDCTs differently */ - if (cinfo->comp_info[0].DCT_scaled_size != cinfo->min_DCT_scaled_size || - cinfo->comp_info[1].DCT_scaled_size != cinfo->min_DCT_scaled_size || - cinfo->comp_info[2].DCT_scaled_size != cinfo->min_DCT_scaled_size) - return FALSE; - /* ??? also need to test for upsample-time rescaling, when & if supported */ - return TRUE; /* by golly, it'll work... */ -#else - return FALSE; -#endif -} - - -/* - * Compute output image dimensions and related values. - * NOTE: this is exported for possible use by application. - * Hence it mustn't do anything that can't be done twice. - * Also note that it may be called before the master module is initialized! - */ - -GLOBAL(void) -jpeg_calc_output_dimensions (j_decompress_ptr cinfo) -/* Do computations that are needed before master selection phase */ -{ -#ifdef IDCT_SCALING_SUPPORTED - int ci; - jpeg_component_info *compptr; -#endif - - /* Prevent application from calling me at wrong times */ - if (cinfo->global_state != DSTATE_READY) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - -#ifdef IDCT_SCALING_SUPPORTED - - /* Compute actual output image dimensions and DCT scaling choices. */ - if (cinfo->scale_num * 8 <= cinfo->scale_denom) { - /* Provide 1/8 scaling */ - cinfo->output_width = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width, 8L); - cinfo->output_height = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, 8L); - cinfo->min_DCT_scaled_size = 1; - } else if (cinfo->scale_num * 4 <= cinfo->scale_denom) { - /* Provide 1/4 scaling */ - cinfo->output_width = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width, 4L); - cinfo->output_height = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, 4L); - cinfo->min_DCT_scaled_size = 2; - } else if (cinfo->scale_num * 2 <= cinfo->scale_denom) { - /* Provide 1/2 scaling */ - cinfo->output_width = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width, 2L); - cinfo->output_height = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height, 2L); - cinfo->min_DCT_scaled_size = 4; - } else { - /* Provide 1/1 scaling */ - cinfo->output_width = cinfo->image_width; - cinfo->output_height = cinfo->image_height; - cinfo->min_DCT_scaled_size = DCTSIZE; - } - /* In selecting the actual DCT scaling for each component, we try to - * scale up the chroma components via IDCT scaling rather than upsampling. - * This saves time if the upsampler gets to use 1:1 scaling. - * Note this code assumes that the supported DCT scalings are powers of 2. - */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - int ssize = cinfo->min_DCT_scaled_size; - while (ssize < DCTSIZE && - (compptr->h_samp_factor * ssize * 2 <= - cinfo->max_h_samp_factor * cinfo->min_DCT_scaled_size) && - (compptr->v_samp_factor * ssize * 2 <= - cinfo->max_v_samp_factor * cinfo->min_DCT_scaled_size)) { - ssize = ssize * 2; - } - compptr->DCT_scaled_size = ssize; - } - - /* Recompute downsampled dimensions of components; - * application needs to know these if using raw downsampled data. - */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Size in samples, after IDCT scaling */ - compptr->downsampled_width = (JDIMENSION) - jdiv_round_up((long) cinfo->image_width * - (long) (compptr->h_samp_factor * compptr->DCT_scaled_size), - (long) (cinfo->max_h_samp_factor * DCTSIZE)); - compptr->downsampled_height = (JDIMENSION) - jdiv_round_up((long) cinfo->image_height * - (long) (compptr->v_samp_factor * compptr->DCT_scaled_size), - (long) (cinfo->max_v_samp_factor * DCTSIZE)); - } - -#else /* !IDCT_SCALING_SUPPORTED */ - - /* Hardwire it to "no scaling" */ - cinfo->output_width = cinfo->image_width; - cinfo->output_height = cinfo->image_height; - /* jdinput.c has already initialized DCT_scaled_size to DCTSIZE, - * and has computed unscaled downsampled_width and downsampled_height. - */ - -#endif /* IDCT_SCALING_SUPPORTED */ - - /* Report number of components in selected colorspace. */ - /* Probably this should be in the color conversion module... */ - switch (cinfo->out_color_space) { - case JCS_GRAYSCALE: - cinfo->out_color_components = 1; - break; - case JCS_RGB: -#if RGB_PIXELSIZE != 3 - cinfo->out_color_components = RGB_PIXELSIZE; - break; -#endif /* else share code with YCbCr */ - case JCS_YCbCr: - cinfo->out_color_components = 3; - break; - case JCS_CMYK: - case JCS_YCCK: - cinfo->out_color_components = 4; - break; - default: /* else must be same colorspace as in file */ - cinfo->out_color_components = cinfo->num_components; - break; - } - cinfo->output_components = (cinfo->quantize_colors ? 1 : - cinfo->out_color_components); - - /* See if upsampler will want to emit more than one row at a time */ - if (use_merged_upsample(cinfo)) - cinfo->rec_outbuf_height = cinfo->max_v_samp_factor; - else - cinfo->rec_outbuf_height = 1; -} - - -/* - * Several decompression processes need to range-limit values to the range - * 0..MAXJSAMPLE; the input value may fall somewhat outside this range - * due to noise introduced by quantization, roundoff error, etc. These - * processes are inner loops and need to be as fast as possible. On most - * machines, particularly CPUs with pipelines or instruction prefetch, - * a (subscript-check-less) C table lookup - * x = sample_range_limit[x]; - * is faster than explicit tests - * if (x < 0) x = 0; - * else if (x > MAXJSAMPLE) x = MAXJSAMPLE; - * These processes all use a common table prepared by the routine below. - * - * For most steps we can mathematically guarantee that the initial value - * of x is within MAXJSAMPLE+1 of the legal range, so a table running from - * -(MAXJSAMPLE+1) to 2*MAXJSAMPLE+1 is sufficient. But for the initial - * limiting step (just after the IDCT), a wildly out-of-range value is - * possible if the input data is corrupt. To avoid any chance of indexing - * off the end of memory and getting a bad-pointer trap, we perform the - * post-IDCT limiting thus: - * x = range_limit[x & MASK]; - * where MASK is 2 bits wider than legal sample data, ie 10 bits for 8-bit - * samples. Under normal circumstances this is more than enough range and - * a correct output will be generated; with bogus input data the mask will - * cause wraparound, and we will safely generate a bogus-but-in-range output. - * For the post-IDCT step, we want to convert the data from signed to unsigned - * representation by adding CENTERJSAMPLE at the same time that we limit it. - * So the post-IDCT limiting table ends up looking like this: - * CENTERJSAMPLE,CENTERJSAMPLE+1,...,MAXJSAMPLE, - * MAXJSAMPLE (repeat 2*(MAXJSAMPLE+1)-CENTERJSAMPLE times), - * 0 (repeat 2*(MAXJSAMPLE+1)-CENTERJSAMPLE times), - * 0,1,...,CENTERJSAMPLE-1 - * Negative inputs select values from the upper half of the table after - * masking. - * - * We can save some space by overlapping the start of the post-IDCT table - * with the simpler range limiting table. The post-IDCT table begins at - * sample_range_limit + CENTERJSAMPLE. - * - * Note that the table is allocated in near data space on PCs; it's small - * enough and used often enough to justify this. - */ - -LOCAL(void) -prepare_range_limit_table (j_decompress_ptr cinfo) -/* Allocate and fill in the sample_range_limit table */ -{ - JSAMPLE * table; - int i; - - table = (JSAMPLE *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (5 * (MAXJSAMPLE+1) + CENTERJSAMPLE) * SIZEOF(JSAMPLE)); - table += (MAXJSAMPLE+1); /* allow negative subscripts of simple table */ - cinfo->sample_range_limit = table; - /* First segment of "simple" table: limit[x] = 0 for x < 0 */ - MEMZERO(table - (MAXJSAMPLE+1), (MAXJSAMPLE+1) * SIZEOF(JSAMPLE)); - /* Main part of "simple" table: limit[x] = x */ - for (i = 0; i <= MAXJSAMPLE; i++) - table[i] = (JSAMPLE) i; - table += CENTERJSAMPLE; /* Point to where post-IDCT table starts */ - /* End of simple table, rest of first half of post-IDCT table */ - for (i = CENTERJSAMPLE; i < 2*(MAXJSAMPLE+1); i++) - table[i] = MAXJSAMPLE; - /* Second half of post-IDCT table */ - MEMZERO(table + (2 * (MAXJSAMPLE+1)), - (2 * (MAXJSAMPLE+1) - CENTERJSAMPLE) * SIZEOF(JSAMPLE)); - MEMCOPY(table + (4 * (MAXJSAMPLE+1) - CENTERJSAMPLE), - cinfo->sample_range_limit, CENTERJSAMPLE * SIZEOF(JSAMPLE)); -} - - -/* - * Master selection of decompression modules. - * This is done once at jpeg_start_decompress time. We determine - * which modules will be used and give them appropriate initialization calls. - * We also initialize the decompressor input side to begin consuming data. - * - * Since jpeg_read_header has finished, we know what is in the SOF - * and (first) SOS markers. We also have all the application parameter - * settings. - */ - -LOCAL(void) -master_selection (j_decompress_ptr cinfo) -{ - my_master_ptr master = (my_master_ptr) cinfo->master; - boolean use_c_buffer; - long samplesperrow; - JDIMENSION jd_samplesperrow; - - /* Initialize dimensions and other stuff */ - jpeg_calc_output_dimensions(cinfo); - prepare_range_limit_table(cinfo); - - /* Width of an output scanline must be representable as JDIMENSION. */ - samplesperrow = (long) cinfo->output_width * (long) cinfo->out_color_components; - jd_samplesperrow = (JDIMENSION) samplesperrow; - if ((long) jd_samplesperrow != samplesperrow) - ERREXIT(cinfo, JERR_WIDTH_OVERFLOW); - - /* Initialize my private state */ - master->pass_number = 0; - master->using_merged_upsample = use_merged_upsample(cinfo); - - /* Color quantizer selection */ - master->quantizer_1pass = NULL; - master->quantizer_2pass = NULL; - /* No mode changes if not using buffered-image mode. */ - if (! cinfo->quantize_colors || ! cinfo->buffered_image) { - cinfo->enable_1pass_quant = FALSE; - cinfo->enable_external_quant = FALSE; - cinfo->enable_2pass_quant = FALSE; - } - if (cinfo->quantize_colors) { - if (cinfo->raw_data_out) - ERREXIT(cinfo, JERR_NOTIMPL); - /* 2-pass quantizer only works in 3-component color space. */ - if (cinfo->out_color_components != 3) { - cinfo->enable_1pass_quant = TRUE; - cinfo->enable_external_quant = FALSE; - cinfo->enable_2pass_quant = FALSE; - cinfo->colormap = NULL; - } else if (cinfo->colormap != NULL) { - cinfo->enable_external_quant = TRUE; - } else if (cinfo->two_pass_quantize) { - cinfo->enable_2pass_quant = TRUE; - } else { - cinfo->enable_1pass_quant = TRUE; - } - - if (cinfo->enable_1pass_quant) { -#ifdef QUANT_1PASS_SUPPORTED - jinit_1pass_quantizer(cinfo); - master->quantizer_1pass = cinfo->cquantize; -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } - - /* We use the 2-pass code to map to external colormaps. */ - if (cinfo->enable_2pass_quant || cinfo->enable_external_quant) { -#ifdef QUANT_2PASS_SUPPORTED - jinit_2pass_quantizer(cinfo); - master->quantizer_2pass = cinfo->cquantize; -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } - /* If both quantizers are initialized, the 2-pass one is left active; - * this is necessary for starting with quantization to an external map. - */ - } - - /* Post-processing: in particular, color conversion first */ - if (! cinfo->raw_data_out) { - if (master->using_merged_upsample) { -#ifdef UPSAMPLE_MERGING_SUPPORTED - jinit_merged_upsampler(cinfo); /* does color conversion too */ -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else { - jinit_color_deconverter(cinfo); - jinit_upsampler(cinfo); - } - jinit_d_post_controller(cinfo, cinfo->enable_2pass_quant); - } - /* Inverse DCT */ - jinit_inverse_dct(cinfo); - /* Entropy decoding: either Huffman or arithmetic coding. */ - if (cinfo->arith_code) { - ERREXIT(cinfo, JERR_ARITH_NOTIMPL); - } else { - if (cinfo->progressive_mode) { -#ifdef D_PROGRESSIVE_SUPPORTED - jinit_phuff_decoder(cinfo); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else - jinit_huff_decoder(cinfo); - } - - /* Initialize principal buffer controllers. */ - use_c_buffer = cinfo->inputctl->has_multiple_scans || cinfo->buffered_image; - jinit_d_coef_controller(cinfo, use_c_buffer); - - if (! cinfo->raw_data_out) - jinit_d_main_controller(cinfo, FALSE /* never need full buffer here */); - - /* We can now tell the memory manager to allocate virtual arrays. */ - (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo); - - /* Initialize input side of decompressor to consume first scan. */ - (*cinfo->inputctl->start_input_pass) (cinfo); - -#ifdef D_MULTISCAN_FILES_SUPPORTED - /* If jpeg_start_decompress will read the whole file, initialize - * progress monitoring appropriately. The input step is counted - * as one pass. - */ - if (cinfo->progress != NULL && ! cinfo->buffered_image && - cinfo->inputctl->has_multiple_scans) { - int nscans; - /* Estimate number of scans to set pass_limit. */ - if (cinfo->progressive_mode) { - /* Arbitrarily estimate 2 interleaved DC scans + 3 AC scans/component. */ - nscans = 2 + 3 * cinfo->num_components; - } else { - /* For a nonprogressive multiscan file, estimate 1 scan per component. */ - nscans = cinfo->num_components; - } - cinfo->progress->pass_counter = 0L; - cinfo->progress->pass_limit = (long) cinfo->total_iMCU_rows * nscans; - cinfo->progress->completed_passes = 0; - cinfo->progress->total_passes = (cinfo->enable_2pass_quant ? 3 : 2); - /* Count the input pass as done */ - master->pass_number++; - } -#endif /* D_MULTISCAN_FILES_SUPPORTED */ -} - - -/* - * Per-pass setup. - * This is called at the beginning of each output pass. We determine which - * modules will be active during this pass and give them appropriate - * start_pass calls. We also set is_dummy_pass to indicate whether this - * is a "real" output pass or a dummy pass for color quantization. - * (In the latter case, jdapistd.c will crank the pass to completion.) - */ - -METHODDEF(void) -prepare_for_output_pass (j_decompress_ptr cinfo) -{ - my_master_ptr master = (my_master_ptr) cinfo->master; - - if (master->pub.is_dummy_pass) { -#ifdef QUANT_2PASS_SUPPORTED - /* Final pass of 2-pass quantization */ - master->pub.is_dummy_pass = FALSE; - (*cinfo->cquantize->start_pass) (cinfo, FALSE); - (*cinfo->post->start_pass) (cinfo, JBUF_CRANK_DEST); - (*cinfo->main->start_pass) (cinfo, JBUF_CRANK_DEST); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif /* QUANT_2PASS_SUPPORTED */ - } else { - if (cinfo->quantize_colors && cinfo->colormap == NULL) { - /* Select new quantization method */ - if (cinfo->two_pass_quantize && cinfo->enable_2pass_quant) { - cinfo->cquantize = master->quantizer_2pass; - master->pub.is_dummy_pass = TRUE; - } else if (cinfo->enable_1pass_quant) { - cinfo->cquantize = master->quantizer_1pass; - } else { - ERREXIT(cinfo, JERR_MODE_CHANGE); - } - } - (*cinfo->idct->start_pass) (cinfo); - (*cinfo->coef->start_output_pass) (cinfo); - if (! cinfo->raw_data_out) { - if (! master->using_merged_upsample) - (*cinfo->cconvert->start_pass) (cinfo); - (*cinfo->upsample->start_pass) (cinfo); - if (cinfo->quantize_colors) - (*cinfo->cquantize->start_pass) (cinfo, master->pub.is_dummy_pass); - (*cinfo->post->start_pass) (cinfo, - (master->pub.is_dummy_pass ? JBUF_SAVE_AND_PASS : JBUF_PASS_THRU)); - (*cinfo->main->start_pass) (cinfo, JBUF_PASS_THRU); - } - } - - /* Set up progress monitor's pass info if present */ - if (cinfo->progress != NULL) { - cinfo->progress->completed_passes = master->pass_number; - cinfo->progress->total_passes = master->pass_number + - (master->pub.is_dummy_pass ? 2 : 1); - /* In buffered-image mode, we assume one more output pass if EOI not - * yet reached, but no more passes if EOI has been reached. - */ - if (cinfo->buffered_image && ! cinfo->inputctl->eoi_reached) { - cinfo->progress->total_passes += (cinfo->enable_2pass_quant ? 2 : 1); - } - } -} - - -/* - * Finish up at end of an output pass. - */ - -METHODDEF(void) -finish_output_pass (j_decompress_ptr cinfo) -{ - my_master_ptr master = (my_master_ptr) cinfo->master; - - if (cinfo->quantize_colors) - (*cinfo->cquantize->finish_pass) (cinfo); - master->pass_number++; -} - - -#ifdef D_MULTISCAN_FILES_SUPPORTED - -/* - * Switch to a new external colormap between output passes. - */ - -GLOBAL(void) -jpeg_new_colormap (j_decompress_ptr cinfo) -{ - my_master_ptr master = (my_master_ptr) cinfo->master; - - /* Prevent application from calling me at wrong times */ - if (cinfo->global_state != DSTATE_BUFIMAGE) - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - - if (cinfo->quantize_colors && cinfo->enable_external_quant && - cinfo->colormap != NULL) { - /* Select 2-pass quantizer for external colormap use */ - cinfo->cquantize = master->quantizer_2pass; - /* Notify quantizer of colormap change */ - (*cinfo->cquantize->new_color_map) (cinfo); - master->pub.is_dummy_pass = FALSE; /* just in case */ - } else - ERREXIT(cinfo, JERR_MODE_CHANGE); -} - -#endif /* D_MULTISCAN_FILES_SUPPORTED */ - - -/* - * Initialize master decompression control and select active modules. - * This is performed at the start of jpeg_start_decompress. - */ - -GLOBAL(void) -jinit_master_decompress (j_decompress_ptr cinfo) -{ - my_master_ptr master; - - master = (my_master_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_decomp_master)); - cinfo->master = (struct jpeg_decomp_master *) master; - master->pub.prepare_for_output_pass = prepare_for_output_pass; - master->pub.finish_output_pass = finish_output_pass; - - master->pub.is_dummy_pass = FALSE; - - master_selection(cinfo); -} diff --git a/src/jpeg/jdmerge.c b/src/jpeg/jdmerge.c deleted file mode 100644 index 37444468c2..0000000000 --- a/src/jpeg/jdmerge.c +++ /dev/null @@ -1,400 +0,0 @@ -/* - * jdmerge.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains code for merged upsampling/color conversion. - * - * This file combines functions from jdsample.c and jdcolor.c; - * read those files first to understand what's going on. - * - * When the chroma components are to be upsampled by simple replication - * (ie, box filtering), we can save some work in color conversion by - * calculating all the output pixels corresponding to a pair of chroma - * samples at one time. In the conversion equations - * R = Y + K1 * Cr - * G = Y + K2 * Cb + K3 * Cr - * B = Y + K4 * Cb - * only the Y term varies among the group of pixels corresponding to a pair - * of chroma samples, so the rest of the terms can be calculated just once. - * At typical sampling ratios, this eliminates half or three-quarters of the - * multiplications needed for color conversion. - * - * This file currently provides implementations for the following cases: - * YCbCr => RGB color conversion only. - * Sampling ratios of 2h1v or 2h2v. - * No scaling needed at upsample time. - * Corner-aligned (non-CCIR601) sampling alignment. - * Other special cases could be added, but in most applications these are - * the only common cases. (For uncommon cases we fall back on the more - * general code in jdsample.c and jdcolor.c.) - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - -#ifdef UPSAMPLE_MERGING_SUPPORTED - - -/* Private subobject */ - -typedef struct { - struct jpeg_upsampler pub; /* public fields */ - - /* Pointer to routine to do actual upsampling/conversion of one row group */ - JMETHOD(void, upmethod, (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, - JSAMPARRAY output_buf)); - - /* Private state for YCC->RGB conversion */ - int * Cr_r_tab; /* => table for Cr to R conversion */ - int * Cb_b_tab; /* => table for Cb to B conversion */ - INT32 * Cr_g_tab; /* => table for Cr to G conversion */ - INT32 * Cb_g_tab; /* => table for Cb to G conversion */ - - /* For 2:1 vertical sampling, we produce two output rows at a time. - * We need a "spare" row buffer to hold the second output row if the - * application provides just a one-row buffer; we also use the spare - * to discard the dummy last row if the image height is odd. - */ - JSAMPROW spare_row; - boolean spare_full; /* T if spare buffer is occupied */ - - JDIMENSION out_row_width; /* samples per output row */ - JDIMENSION rows_to_go; /* counts rows remaining in image */ -} my_upsampler; - -typedef my_upsampler * my_upsample_ptr; - -#define SCALEBITS 16 /* speediest right-shift on some machines */ -#define ONE_HALF ((INT32) 1 << (SCALEBITS-1)) -#define FIX(x) ((INT32) ((x) * (1L<RGB colorspace conversion. - * This is taken directly from jdcolor.c; see that file for more info. - */ - -LOCAL(void) -build_ycc_rgb_table (j_decompress_ptr cinfo) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - int i; - INT32 x; - SHIFT_TEMPS - - upsample->Cr_r_tab = (int *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(int)); - upsample->Cb_b_tab = (int *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(int)); - upsample->Cr_g_tab = (INT32 *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(INT32)); - upsample->Cb_g_tab = (INT32 *) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (MAXJSAMPLE+1) * SIZEOF(INT32)); - - for (i = 0, x = -CENTERJSAMPLE; i <= MAXJSAMPLE; i++, x++) { - /* i is the actual input pixel value, in the range 0..MAXJSAMPLE */ - /* The Cb or Cr value we are thinking of is x = i - CENTERJSAMPLE */ - /* Cr=>R value is nearest int to 1.40200 * x */ - upsample->Cr_r_tab[i] = (int) - RIGHT_SHIFT(FIX(1.40200) * x + ONE_HALF, SCALEBITS); - /* Cb=>B value is nearest int to 1.77200 * x */ - upsample->Cb_b_tab[i] = (int) - RIGHT_SHIFT(FIX(1.77200) * x + ONE_HALF, SCALEBITS); - /* Cr=>G value is scaled-up -0.71414 * x */ - upsample->Cr_g_tab[i] = (- FIX(0.71414)) * x; - /* Cb=>G value is scaled-up -0.34414 * x */ - /* We also add in ONE_HALF so that need not do it in inner loop */ - upsample->Cb_g_tab[i] = (- FIX(0.34414)) * x + ONE_HALF; - } -} - - -/* - * Initialize for an upsampling pass. - */ - -METHODDEF(void) -start_pass_merged_upsample (j_decompress_ptr cinfo) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - - /* Mark the spare buffer empty */ - upsample->spare_full = FALSE; - /* Initialize total-height counter for detecting bottom of image */ - upsample->rows_to_go = cinfo->output_height; -} - - -/* - * Control routine to do upsampling (and color conversion). - * - * The control routine just handles the row buffering considerations. - */ - -METHODDEF(void) -merged_2v_upsample (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -/* 2:1 vertical sampling case: may need a spare row. */ -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - JSAMPROW work_ptrs[2]; - JDIMENSION num_rows; /* number of rows returned to caller */ - - if (upsample->spare_full) { - /* If we have a spare row saved from a previous cycle, just return it. */ - jcopy_sample_rows(& upsample->spare_row, 0, output_buf + *out_row_ctr, 0, - 1, upsample->out_row_width); - num_rows = 1; - upsample->spare_full = FALSE; - } else { - /* Figure number of rows to return to caller. */ - num_rows = 2; - /* Not more than the distance to the end of the image. */ - if (num_rows > upsample->rows_to_go) - num_rows = upsample->rows_to_go; - /* And not more than what the client can accept: */ - out_rows_avail -= *out_row_ctr; - if (num_rows > out_rows_avail) - num_rows = out_rows_avail; - /* Create output pointer array for upsampler. */ - work_ptrs[0] = output_buf[*out_row_ctr]; - if (num_rows > 1) { - work_ptrs[1] = output_buf[*out_row_ctr + 1]; - } else { - work_ptrs[1] = upsample->spare_row; - upsample->spare_full = TRUE; - } - /* Now do the upsampling. */ - (*upsample->upmethod) (cinfo, input_buf, *in_row_group_ctr, work_ptrs); - } - - /* Adjust counts */ - *out_row_ctr += num_rows; - upsample->rows_to_go -= num_rows; - /* When the buffer is emptied, declare this input row group consumed */ - if (! upsample->spare_full) - (*in_row_group_ctr)++; -} - - -METHODDEF(void) -merged_1v_upsample (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -/* 1:1 vertical sampling case: much easier, never need a spare row. */ -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - - /* Just do the upsampling. */ - (*upsample->upmethod) (cinfo, input_buf, *in_row_group_ctr, - output_buf + *out_row_ctr); - /* Adjust counts */ - (*out_row_ctr)++; - (*in_row_group_ctr)++; -} - - -/* - * These are the routines invoked by the control routines to do - * the actual upsampling/conversion. One row group is processed per call. - * - * Note: since we may be writing directly into application-supplied buffers, - * we have to be honest about the output width; we can't assume the buffer - * has been rounded up to an even width. - */ - - -/* - * Upsample and color convert for the case of 2:1 horizontal and 1:1 vertical. - */ - -METHODDEF(void) -h2v1_merged_upsample (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, - JSAMPARRAY output_buf) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - register int y, cred, cgreen, cblue; - int cb, cr; - register JSAMPROW outptr; - JSAMPROW inptr0, inptr1, inptr2; - JDIMENSION col; - /* copy these pointers into registers if possible */ - register JSAMPLE * range_limit = cinfo->sample_range_limit; - int * Crrtab = upsample->Cr_r_tab; - int * Cbbtab = upsample->Cb_b_tab; - INT32 * Crgtab = upsample->Cr_g_tab; - INT32 * Cbgtab = upsample->Cb_g_tab; - SHIFT_TEMPS - - inptr0 = input_buf[0][in_row_group_ctr]; - inptr1 = input_buf[1][in_row_group_ctr]; - inptr2 = input_buf[2][in_row_group_ctr]; - outptr = output_buf[0]; - /* Loop for each pair of output pixels */ - for (col = cinfo->output_width >> 1; col > 0; col--) { - /* Do the chroma part of the calculation */ - cb = GETJSAMPLE(*inptr1++); - cr = GETJSAMPLE(*inptr2++); - cred = Crrtab[cr]; - cgreen = (int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS); - cblue = Cbbtab[cb]; - /* Fetch 2 Y values and emit 2 pixels */ - y = GETJSAMPLE(*inptr0++); - outptr[RGB_RED] = range_limit[y + cred]; - outptr[RGB_GREEN] = range_limit[y + cgreen]; - outptr[RGB_BLUE] = range_limit[y + cblue]; - outptr += RGB_PIXELSIZE; - y = GETJSAMPLE(*inptr0++); - outptr[RGB_RED] = range_limit[y + cred]; - outptr[RGB_GREEN] = range_limit[y + cgreen]; - outptr[RGB_BLUE] = range_limit[y + cblue]; - outptr += RGB_PIXELSIZE; - } - /* If image width is odd, do the last output column separately */ - if (cinfo->output_width & 1) { - cb = GETJSAMPLE(*inptr1); - cr = GETJSAMPLE(*inptr2); - cred = Crrtab[cr]; - cgreen = (int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS); - cblue = Cbbtab[cb]; - y = GETJSAMPLE(*inptr0); - outptr[RGB_RED] = range_limit[y + cred]; - outptr[RGB_GREEN] = range_limit[y + cgreen]; - outptr[RGB_BLUE] = range_limit[y + cblue]; - } -} - - -/* - * Upsample and color convert for the case of 2:1 horizontal and 2:1 vertical. - */ - -METHODDEF(void) -h2v2_merged_upsample (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION in_row_group_ctr, - JSAMPARRAY output_buf) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - register int y, cred, cgreen, cblue; - int cb, cr; - register JSAMPROW outptr0, outptr1; - JSAMPROW inptr00, inptr01, inptr1, inptr2; - JDIMENSION col; - /* copy these pointers into registers if possible */ - register JSAMPLE * range_limit = cinfo->sample_range_limit; - int * Crrtab = upsample->Cr_r_tab; - int * Cbbtab = upsample->Cb_b_tab; - INT32 * Crgtab = upsample->Cr_g_tab; - INT32 * Cbgtab = upsample->Cb_g_tab; - SHIFT_TEMPS - - inptr00 = input_buf[0][in_row_group_ctr*2]; - inptr01 = input_buf[0][in_row_group_ctr*2 + 1]; - inptr1 = input_buf[1][in_row_group_ctr]; - inptr2 = input_buf[2][in_row_group_ctr]; - outptr0 = output_buf[0]; - outptr1 = output_buf[1]; - /* Loop for each group of output pixels */ - for (col = cinfo->output_width >> 1; col > 0; col--) { - /* Do the chroma part of the calculation */ - cb = GETJSAMPLE(*inptr1++); - cr = GETJSAMPLE(*inptr2++); - cred = Crrtab[cr]; - cgreen = (int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS); - cblue = Cbbtab[cb]; - /* Fetch 4 Y values and emit 4 pixels */ - y = GETJSAMPLE(*inptr00++); - outptr0[RGB_RED] = range_limit[y + cred]; - outptr0[RGB_GREEN] = range_limit[y + cgreen]; - outptr0[RGB_BLUE] = range_limit[y + cblue]; - outptr0 += RGB_PIXELSIZE; - y = GETJSAMPLE(*inptr00++); - outptr0[RGB_RED] = range_limit[y + cred]; - outptr0[RGB_GREEN] = range_limit[y + cgreen]; - outptr0[RGB_BLUE] = range_limit[y + cblue]; - outptr0 += RGB_PIXELSIZE; - y = GETJSAMPLE(*inptr01++); - outptr1[RGB_RED] = range_limit[y + cred]; - outptr1[RGB_GREEN] = range_limit[y + cgreen]; - outptr1[RGB_BLUE] = range_limit[y + cblue]; - outptr1 += RGB_PIXELSIZE; - y = GETJSAMPLE(*inptr01++); - outptr1[RGB_RED] = range_limit[y + cred]; - outptr1[RGB_GREEN] = range_limit[y + cgreen]; - outptr1[RGB_BLUE] = range_limit[y + cblue]; - outptr1 += RGB_PIXELSIZE; - } - /* If image width is odd, do the last output column separately */ - if (cinfo->output_width & 1) { - cb = GETJSAMPLE(*inptr1); - cr = GETJSAMPLE(*inptr2); - cred = Crrtab[cr]; - cgreen = (int) RIGHT_SHIFT(Cbgtab[cb] + Crgtab[cr], SCALEBITS); - cblue = Cbbtab[cb]; - y = GETJSAMPLE(*inptr00); - outptr0[RGB_RED] = range_limit[y + cred]; - outptr0[RGB_GREEN] = range_limit[y + cgreen]; - outptr0[RGB_BLUE] = range_limit[y + cblue]; - y = GETJSAMPLE(*inptr01); - outptr1[RGB_RED] = range_limit[y + cred]; - outptr1[RGB_GREEN] = range_limit[y + cgreen]; - outptr1[RGB_BLUE] = range_limit[y + cblue]; - } -} - - -/* - * Module initialization routine for merged upsampling/color conversion. - * - * NB: this is called under the conditions determined by use_merged_upsample() - * in jdmaster.c. That routine MUST correspond to the actual capabilities - * of this module; no safety checks are made here. - */ - -GLOBAL(void) -jinit_merged_upsampler (j_decompress_ptr cinfo) -{ - my_upsample_ptr upsample; - - upsample = (my_upsample_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_upsampler)); - cinfo->upsample = (struct jpeg_upsampler *) upsample; - upsample->pub.start_pass = start_pass_merged_upsample; - upsample->pub.need_context_rows = FALSE; - - upsample->out_row_width = cinfo->output_width * cinfo->out_color_components; - - if (cinfo->max_v_samp_factor == 2) { - upsample->pub.upsample = merged_2v_upsample; - upsample->upmethod = h2v2_merged_upsample; - /* Allocate a spare row buffer */ - upsample->spare_row = (JSAMPROW) - (*cinfo->mem->alloc_large) ((j_common_ptr) cinfo, JPOOL_IMAGE, - (size_t) (upsample->out_row_width * SIZEOF(JSAMPLE))); - } else { - upsample->pub.upsample = merged_1v_upsample; - upsample->upmethod = h2v1_merged_upsample; - /* No spare row needed */ - upsample->spare_row = NULL; - } - - build_ycc_rgb_table(cinfo); -} - -#endif /* UPSAMPLE_MERGING_SUPPORTED */ diff --git a/src/jpeg/jdphuff.c b/src/jpeg/jdphuff.c deleted file mode 100644 index 2267809945..0000000000 --- a/src/jpeg/jdphuff.c +++ /dev/null @@ -1,668 +0,0 @@ -/* - * jdphuff.c - * - * Copyright (C) 1995-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains Huffman entropy decoding routines for progressive JPEG. - * - * Much of the complexity here has to do with supporting input suspension. - * If the data source module demands suspension, we want to be able to back - * up to the start of the current MCU. To do this, we copy state variables - * into local working storage, and update them back to the permanent - * storage only upon successful completion of an MCU. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdhuff.h" /* Declarations shared with jdhuff.c */ - - -#ifdef D_PROGRESSIVE_SUPPORTED - -/* - * Expanded entropy decoder object for progressive Huffman decoding. - * - * The savable_state subrecord contains fields that change within an MCU, - * but must not be updated permanently until we complete the MCU. - */ - -typedef struct { - unsigned int EOBRUN; /* remaining EOBs in EOBRUN */ - int last_dc_val[MAX_COMPS_IN_SCAN]; /* last DC coef for each component */ -} savable_state; - -/* This macro is to work around compilers with missing or broken - * structure assignment. You'll need to fix this code if you have - * such a compiler and you change MAX_COMPS_IN_SCAN. - */ - -#ifndef NO_STRUCT_ASSIGN -#define ASSIGN_STATE(dest,src) ((dest) = (src)) -#else -#if MAX_COMPS_IN_SCAN == 4 -#define ASSIGN_STATE(dest,src) \ - ((dest).EOBRUN = (src).EOBRUN, \ - (dest).last_dc_val[0] = (src).last_dc_val[0], \ - (dest).last_dc_val[1] = (src).last_dc_val[1], \ - (dest).last_dc_val[2] = (src).last_dc_val[2], \ - (dest).last_dc_val[3] = (src).last_dc_val[3]) -#endif -#endif - - -typedef struct { - struct jpeg_entropy_decoder pub; /* public fields */ - - /* These fields are loaded into local variables at start of each MCU. - * In case of suspension, we exit WITHOUT updating them. - */ - bitread_perm_state bitstate; /* Bit buffer at start of MCU */ - savable_state saved; /* Other state at start of MCU */ - - /* These fields are NOT loaded into local working state. */ - unsigned int restarts_to_go; /* MCUs left in this restart interval */ - - /* Pointers to derived tables (these workspaces have image lifespan) */ - d_derived_tbl * derived_tbls[NUM_HUFF_TBLS]; - - d_derived_tbl * ac_derived_tbl; /* active table during an AC scan */ -} phuff_entropy_decoder; - -typedef phuff_entropy_decoder * phuff_entropy_ptr; - -/* Forward declarations */ -METHODDEF(boolean) decode_mcu_DC_first JPP((j_decompress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(boolean) decode_mcu_AC_first JPP((j_decompress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(boolean) decode_mcu_DC_refine JPP((j_decompress_ptr cinfo, - JBLOCKROW *MCU_data)); -METHODDEF(boolean) decode_mcu_AC_refine JPP((j_decompress_ptr cinfo, - JBLOCKROW *MCU_data)); - - -/* - * Initialize for a Huffman-compressed scan. - */ - -METHODDEF(void) -start_pass_phuff_decoder (j_decompress_ptr cinfo) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - boolean is_DC_band, bad; - int ci, coefi, tbl; - int *coef_bit_ptr; - jpeg_component_info * compptr; - - is_DC_band = (cinfo->Ss == 0); - - /* Validate scan parameters */ - bad = FALSE; - if (is_DC_band) { - if (cinfo->Se != 0) - bad = TRUE; - } else { - /* need not check Ss/Se < 0 since they came from unsigned bytes */ - if (cinfo->Ss > cinfo->Se || cinfo->Se >= DCTSIZE2) - bad = TRUE; - /* AC scans may have only one component */ - if (cinfo->comps_in_scan != 1) - bad = TRUE; - } - if (cinfo->Ah != 0) { - /* Successive approximation refinement scan: must have Al = Ah-1. */ - if (cinfo->Al != cinfo->Ah-1) - bad = TRUE; - } - if (cinfo->Al > 13) /* need not check for < 0 */ - bad = TRUE; - /* Arguably the maximum Al value should be less than 13 for 8-bit precision, - * but the spec doesn't say so, and we try to be liberal about what we - * accept. Note: large Al values could result in out-of-range DC - * coefficients during early scans, leading to bizarre displays due to - * overflows in the IDCT math. But we won't crash. - */ - if (bad) - ERREXIT4(cinfo, JERR_BAD_PROGRESSION, - cinfo->Ss, cinfo->Se, cinfo->Ah, cinfo->Al); - /* Update progression status, and verify that scan order is legal. - * Note that inter-scan inconsistencies are treated as warnings - * not fatal errors ... not clear if this is right way to behave. - */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - int cindex = cinfo->cur_comp_info[ci]->component_index; - coef_bit_ptr = & cinfo->coef_bits[cindex][0]; - if (!is_DC_band && coef_bit_ptr[0] < 0) /* AC without prior DC scan */ - WARNMS2(cinfo, JWRN_BOGUS_PROGRESSION, cindex, 0); - for (coefi = cinfo->Ss; coefi <= cinfo->Se; coefi++) { - int expected = (coef_bit_ptr[coefi] < 0) ? 0 : coef_bit_ptr[coefi]; - if (cinfo->Ah != expected) - WARNMS2(cinfo, JWRN_BOGUS_PROGRESSION, cindex, coefi); - coef_bit_ptr[coefi] = cinfo->Al; - } - } - - /* Select MCU decoding routine */ - if (cinfo->Ah == 0) { - if (is_DC_band) - entropy->pub.decode_mcu = decode_mcu_DC_first; - else - entropy->pub.decode_mcu = decode_mcu_AC_first; - } else { - if (is_DC_band) - entropy->pub.decode_mcu = decode_mcu_DC_refine; - else - entropy->pub.decode_mcu = decode_mcu_AC_refine; - } - - for (ci = 0; ci < cinfo->comps_in_scan; ci++) { - compptr = cinfo->cur_comp_info[ci]; - /* Make sure requested tables are present, and compute derived tables. - * We may build same derived table more than once, but it's not expensive. - */ - if (is_DC_band) { - if (cinfo->Ah == 0) { /* DC refinement needs no table */ - tbl = compptr->dc_tbl_no; - jpeg_make_d_derived_tbl(cinfo, TRUE, tbl, - & entropy->derived_tbls[tbl]); - } - } else { - tbl = compptr->ac_tbl_no; - jpeg_make_d_derived_tbl(cinfo, FALSE, tbl, - & entropy->derived_tbls[tbl]); - /* remember the single active table */ - entropy->ac_derived_tbl = entropy->derived_tbls[tbl]; - } - /* Initialize DC predictions to 0 */ - entropy->saved.last_dc_val[ci] = 0; - } - - /* Initialize bitread state variables */ - entropy->bitstate.bits_left = 0; - entropy->bitstate.get_buffer = 0; /* unnecessary, but keeps Purify quiet */ - entropy->pub.insufficient_data = FALSE; - - /* Initialize private state variables */ - entropy->saved.EOBRUN = 0; - - /* Initialize restart counter */ - entropy->restarts_to_go = cinfo->restart_interval; -} - - -/* - * Figure F.12: extend sign bit. - * On some machines, a shift and add will be faster than a table lookup. - */ - -#ifdef AVOID_TABLES - -#define HUFF_EXTEND(x,s) ((x) < (1<<((s)-1)) ? (x) + (((-1)<<(s)) + 1) : (x)) - -#else - -#define HUFF_EXTEND(x,s) ((x) < extend_test[s] ? (x) + extend_offset[s] : (x)) - -static const int extend_test[16] = /* entry n is 2**(n-1) */ - { 0, 0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080, - 0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000 }; - -static const int extend_offset[16] = /* entry n is (-1 << n) + 1 */ - { 0, ((-1)<<1) + 1, ((-1)<<2) + 1, ((-1)<<3) + 1, ((-1)<<4) + 1, - ((-1)<<5) + 1, ((-1)<<6) + 1, ((-1)<<7) + 1, ((-1)<<8) + 1, - ((-1)<<9) + 1, ((-1)<<10) + 1, ((-1)<<11) + 1, ((-1)<<12) + 1, - ((-1)<<13) + 1, ((-1)<<14) + 1, ((-1)<<15) + 1 }; - -#endif /* AVOID_TABLES */ - - -/* - * Check for a restart marker & resynchronize decoder. - * Returns FALSE if must suspend. - */ - -LOCAL(boolean) -process_restart (j_decompress_ptr cinfo) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - int ci; - - /* Throw away any unused bits remaining in bit buffer; */ - /* include any full bytes in next_marker's count of discarded bytes */ - cinfo->marker->discarded_bytes += entropy->bitstate.bits_left / 8; - entropy->bitstate.bits_left = 0; - - /* Advance past the RSTn marker */ - if (! (*cinfo->marker->read_restart_marker) (cinfo)) - return FALSE; - - /* Re-initialize DC predictions to 0 */ - for (ci = 0; ci < cinfo->comps_in_scan; ci++) - entropy->saved.last_dc_val[ci] = 0; - /* Re-init EOB run count, too */ - entropy->saved.EOBRUN = 0; - - /* Reset restart counter */ - entropy->restarts_to_go = cinfo->restart_interval; - - /* Reset out-of-data flag, unless read_restart_marker left us smack up - * against a marker. In that case we will end up treating the next data - * segment as empty, and we can avoid producing bogus output pixels by - * leaving the flag set. - */ - if (cinfo->unread_marker == 0) - entropy->pub.insufficient_data = FALSE; - - return TRUE; -} - - -/* - * Huffman MCU decoding. - * Each of these routines decodes and returns one MCU's worth of - * Huffman-compressed coefficients. - * The coefficients are reordered from zigzag order into natural array order, - * but are not dequantized. - * - * The i'th block of the MCU is stored into the block pointed to by - * MCU_data[i]. WE ASSUME THIS AREA IS INITIALLY ZEROED BY THE CALLER. - * - * We return FALSE if data source requested suspension. In that case no - * changes have been made to permanent state. (Exception: some output - * coefficients may already have been assigned. This is harmless for - * spectral selection, since we'll just re-assign them on the next call. - * Successive approximation AC refinement has to be more careful, however.) - */ - -/* - * MCU decoding for DC initial scan (either spectral selection, - * or first pass of successive approximation). - */ - -METHODDEF(boolean) -decode_mcu_DC_first (j_decompress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - int Al = cinfo->Al; - register int s, r; - int blkn, ci; - JBLOCKROW block; - BITREAD_STATE_VARS; - savable_state state; - d_derived_tbl * tbl; - jpeg_component_info * compptr; - - /* Process restart marker if needed; may have to suspend */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) - if (! process_restart(cinfo)) - return FALSE; - } - - /* If we've run out of data, just leave the MCU set to zeroes. - * This way, we return uniform gray for the remainder of the segment. - */ - if (! entropy->pub.insufficient_data) { - - /* Load up working state */ - BITREAD_LOAD_STATE(cinfo,entropy->bitstate); - ASSIGN_STATE(state, entropy->saved); - - /* Outer loop handles each block in the MCU */ - - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - block = MCU_data[blkn]; - ci = cinfo->MCU_membership[blkn]; - compptr = cinfo->cur_comp_info[ci]; - tbl = entropy->derived_tbls[compptr->dc_tbl_no]; - - /* Decode a single block's worth of coefficients */ - - /* Section F.2.2.1: decode the DC coefficient difference */ - HUFF_DECODE(s, br_state, tbl, return FALSE, label1); - if (s) { - CHECK_BIT_BUFFER(br_state, s, return FALSE); - r = GET_BITS(s); - s = HUFF_EXTEND(r, s); - } - - /* Convert DC difference to actual value, update last_dc_val */ - s += state.last_dc_val[ci]; - state.last_dc_val[ci] = s; - /* Scale and output the coefficient (assumes jpeg_natural_order[0]=0) */ - (*block)[0] = (JCOEF) (s << Al); - } - - /* Completed MCU, so update state */ - BITREAD_SAVE_STATE(cinfo,entropy->bitstate); - ASSIGN_STATE(entropy->saved, state); - } - - /* Account for restart interval (no-op if not using restarts) */ - entropy->restarts_to_go--; - - return TRUE; -} - - -/* - * MCU decoding for AC initial scan (either spectral selection, - * or first pass of successive approximation). - */ - -METHODDEF(boolean) -decode_mcu_AC_first (j_decompress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - int Se = cinfo->Se; - int Al = cinfo->Al; - register int s, k, r; - unsigned int EOBRUN; - JBLOCKROW block; - BITREAD_STATE_VARS; - d_derived_tbl * tbl; - - /* Process restart marker if needed; may have to suspend */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) - if (! process_restart(cinfo)) - return FALSE; - } - - /* If we've run out of data, just leave the MCU set to zeroes. - * This way, we return uniform gray for the remainder of the segment. - */ - if (! entropy->pub.insufficient_data) { - - /* Load up working state. - * We can avoid loading/saving bitread state if in an EOB run. - */ - EOBRUN = entropy->saved.EOBRUN; /* only part of saved state we need */ - - /* There is always only one block per MCU */ - - if (EOBRUN > 0) /* if it's a band of zeroes... */ - EOBRUN--; /* ...process it now (we do nothing) */ - else { - BITREAD_LOAD_STATE(cinfo,entropy->bitstate); - block = MCU_data[0]; - tbl = entropy->ac_derived_tbl; - - for (k = cinfo->Ss; k <= Se; k++) { - HUFF_DECODE(s, br_state, tbl, return FALSE, label2); - r = s >> 4; - s &= 15; - if (s) { - k += r; - CHECK_BIT_BUFFER(br_state, s, return FALSE); - r = GET_BITS(s); - s = HUFF_EXTEND(r, s); - /* Scale and output coefficient in natural (dezigzagged) order */ - (*block)[jpeg_natural_order[k]] = (JCOEF) (s << Al); - } else { - if (r == 15) { /* ZRL */ - k += 15; /* skip 15 zeroes in band */ - } else { /* EOBr, run length is 2^r + appended bits */ - EOBRUN = 1 << r; - if (r) { /* EOBr, r > 0 */ - CHECK_BIT_BUFFER(br_state, r, return FALSE); - r = GET_BITS(r); - EOBRUN += r; - } - EOBRUN--; /* this band is processed at this moment */ - break; /* force end-of-band */ - } - } - } - - BITREAD_SAVE_STATE(cinfo,entropy->bitstate); - } - - /* Completed MCU, so update state */ - entropy->saved.EOBRUN = EOBRUN; /* only part of saved state we need */ - } - - /* Account for restart interval (no-op if not using restarts) */ - entropy->restarts_to_go--; - - return TRUE; -} - - -/* - * MCU decoding for DC successive approximation refinement scan. - * Note: we assume such scans can be multi-component, although the spec - * is not very clear on the point. - */ - -METHODDEF(boolean) -decode_mcu_DC_refine (j_decompress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - int p1 = 1 << cinfo->Al; /* 1 in the bit position being coded */ - int blkn; - JBLOCKROW block; - BITREAD_STATE_VARS; - - /* Process restart marker if needed; may have to suspend */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) - if (! process_restart(cinfo)) - return FALSE; - } - - /* Not worth the cycles to check insufficient_data here, - * since we will not change the data anyway if we read zeroes. - */ - - /* Load up working state */ - BITREAD_LOAD_STATE(cinfo,entropy->bitstate); - - /* Outer loop handles each block in the MCU */ - - for (blkn = 0; blkn < cinfo->blocks_in_MCU; blkn++) { - block = MCU_data[blkn]; - - /* Encoded data is simply the next bit of the two's-complement DC value */ - CHECK_BIT_BUFFER(br_state, 1, return FALSE); - if (GET_BITS(1)) - (*block)[0] |= p1; - /* Note: since we use |=, repeating the assignment later is safe */ - } - - /* Completed MCU, so update state */ - BITREAD_SAVE_STATE(cinfo,entropy->bitstate); - - /* Account for restart interval (no-op if not using restarts) */ - entropy->restarts_to_go--; - - return TRUE; -} - - -/* - * MCU decoding for AC successive approximation refinement scan. - */ - -METHODDEF(boolean) -decode_mcu_AC_refine (j_decompress_ptr cinfo, JBLOCKROW *MCU_data) -{ - phuff_entropy_ptr entropy = (phuff_entropy_ptr) cinfo->entropy; - int Se = cinfo->Se; - int p1 = 1 << cinfo->Al; /* 1 in the bit position being coded */ - int m1 = (-1) << cinfo->Al; /* -1 in the bit position being coded */ - register int s, k, r; - unsigned int EOBRUN; - JBLOCKROW block; - JCOEFPTR thiscoef; - BITREAD_STATE_VARS; - d_derived_tbl * tbl; - int num_newnz; - int newnz_pos[DCTSIZE2]; - - /* Process restart marker if needed; may have to suspend */ - if (cinfo->restart_interval) { - if (entropy->restarts_to_go == 0) - if (! process_restart(cinfo)) - return FALSE; - } - - /* If we've run out of data, don't modify the MCU. - */ - if (! entropy->pub.insufficient_data) { - - /* Load up working state */ - BITREAD_LOAD_STATE(cinfo,entropy->bitstate); - EOBRUN = entropy->saved.EOBRUN; /* only part of saved state we need */ - - /* There is always only one block per MCU */ - block = MCU_data[0]; - tbl = entropy->ac_derived_tbl; - - /* If we are forced to suspend, we must undo the assignments to any newly - * nonzero coefficients in the block, because otherwise we'd get confused - * next time about which coefficients were already nonzero. - * But we need not undo addition of bits to already-nonzero coefficients; - * instead, we can test the current bit to see if we already did it. - */ - num_newnz = 0; - - /* initialize coefficient loop counter to start of band */ - k = cinfo->Ss; - - if (EOBRUN == 0) { - for (; k <= Se; k++) { - HUFF_DECODE(s, br_state, tbl, goto undoit, label3); - r = s >> 4; - s &= 15; - if (s) { - if (s != 1) /* size of new coef should always be 1 */ - WARNMS(cinfo, JWRN_HUFF_BAD_CODE); - CHECK_BIT_BUFFER(br_state, 1, goto undoit); - if (GET_BITS(1)) - s = p1; /* newly nonzero coef is positive */ - else - s = m1; /* newly nonzero coef is negative */ - } else { - if (r != 15) { - EOBRUN = 1 << r; /* EOBr, run length is 2^r + appended bits */ - if (r) { - CHECK_BIT_BUFFER(br_state, r, goto undoit); - r = GET_BITS(r); - EOBRUN += r; - } - break; /* rest of block is handled by EOB logic */ - } - /* note s = 0 for processing ZRL */ - } - /* Advance over already-nonzero coefs and r still-zero coefs, - * appending correction bits to the nonzeroes. A correction bit is 1 - * if the absolute value of the coefficient must be increased. - */ - do { - thiscoef = *block + jpeg_natural_order[k]; - if (*thiscoef != 0) { - CHECK_BIT_BUFFER(br_state, 1, goto undoit); - if (GET_BITS(1)) { - if ((*thiscoef & p1) == 0) { /* do nothing if already set it */ - if (*thiscoef >= 0) - *thiscoef += p1; - else - *thiscoef += m1; - } - } - } else { - if (--r < 0) - break; /* reached target zero coefficient */ - } - k++; - } while (k <= Se); - if (s) { - int pos = jpeg_natural_order[k]; - /* Output newly nonzero coefficient */ - (*block)[pos] = (JCOEF) s; - /* Remember its position in case we have to suspend */ - newnz_pos[num_newnz++] = pos; - } - } - } - - if (EOBRUN > 0) { - /* Scan any remaining coefficient positions after the end-of-band - * (the last newly nonzero coefficient, if any). Append a correction - * bit to each already-nonzero coefficient. A correction bit is 1 - * if the absolute value of the coefficient must be increased. - */ - for (; k <= Se; k++) { - thiscoef = *block + jpeg_natural_order[k]; - if (*thiscoef != 0) { - CHECK_BIT_BUFFER(br_state, 1, goto undoit); - if (GET_BITS(1)) { - if ((*thiscoef & p1) == 0) { /* do nothing if already changed it */ - if (*thiscoef >= 0) - *thiscoef += p1; - else - *thiscoef += m1; - } - } - } - } - /* Count one block completed in EOB run */ - EOBRUN--; - } - - /* Completed MCU, so update state */ - BITREAD_SAVE_STATE(cinfo,entropy->bitstate); - entropy->saved.EOBRUN = EOBRUN; /* only part of saved state we need */ - } - - /* Account for restart interval (no-op if not using restarts) */ - entropy->restarts_to_go--; - - return TRUE; - -undoit: - /* Re-zero any output coefficients that we made newly nonzero */ - while (num_newnz > 0) - (*block)[newnz_pos[--num_newnz]] = 0; - - return FALSE; -} - - -/* - * Module initialization routine for progressive Huffman entropy decoding. - */ - -GLOBAL(void) -jinit_phuff_decoder (j_decompress_ptr cinfo) -{ - phuff_entropy_ptr entropy; - int *coef_bit_ptr; - int ci, i; - - entropy = (phuff_entropy_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(phuff_entropy_decoder)); - cinfo->entropy = (struct jpeg_entropy_decoder *) entropy; - entropy->pub.start_pass = start_pass_phuff_decoder; - - /* Mark derived tables unallocated */ - for (i = 0; i < NUM_HUFF_TBLS; i++) { - entropy->derived_tbls[i] = NULL; - } - - /* Create progression status table */ - cinfo->coef_bits = (int (*)[DCTSIZE2]) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - cinfo->num_components*DCTSIZE2*SIZEOF(int)); - coef_bit_ptr = & cinfo->coef_bits[0][0]; - for (ci = 0; ci < cinfo->num_components; ci++) - for (i = 0; i < DCTSIZE2; i++) - *coef_bit_ptr++ = -1; -} - -#endif /* D_PROGRESSIVE_SUPPORTED */ diff --git a/src/jpeg/jdpostct.c b/src/jpeg/jdpostct.c deleted file mode 100644 index 571563d728..0000000000 --- a/src/jpeg/jdpostct.c +++ /dev/null @@ -1,290 +0,0 @@ -/* - * jdpostct.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the decompression postprocessing controller. - * This controller manages the upsampling, color conversion, and color - * quantization/reduction steps; specifically, it controls the buffering - * between upsample/color conversion and color quantization/reduction. - * - * If no color quantization/reduction is required, then this module has no - * work to do, and it just hands off to the upsample/color conversion code. - * An integrated upsample/convert/quantize process would replace this module - * entirely. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Private buffer controller object */ - -typedef struct { - struct jpeg_d_post_controller pub; /* public fields */ - - /* Color quantization source buffer: this holds output data from - * the upsample/color conversion step to be passed to the quantizer. - * For two-pass color quantization, we need a full-image buffer; - * for one-pass operation, a strip buffer is sufficient. - */ - jvirt_sarray_ptr whole_image; /* virtual array, or NULL if one-pass */ - JSAMPARRAY buffer; /* strip buffer, or current strip of virtual */ - JDIMENSION strip_height; /* buffer size in rows */ - /* for two-pass mode only: */ - JDIMENSION starting_row; /* row # of first row in current strip */ - JDIMENSION next_row; /* index of next row to fill/empty in strip */ -} my_post_controller; - -typedef my_post_controller * my_post_ptr; - - -/* Forward declarations */ -METHODDEF(void) post_process_1pass - JPP((j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail)); -#ifdef QUANT_2PASS_SUPPORTED -METHODDEF(void) post_process_prepass - JPP((j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail)); -METHODDEF(void) post_process_2pass - JPP((j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail)); -#endif - - -/* - * Initialize for a processing pass. - */ - -METHODDEF(void) -start_pass_dpost (j_decompress_ptr cinfo, J_BUF_MODE pass_mode) -{ - my_post_ptr post = (my_post_ptr) cinfo->post; - - switch (pass_mode) { - case JBUF_PASS_THRU: - if (cinfo->quantize_colors) { - /* Single-pass processing with color quantization. */ - post->pub.post_process_data = post_process_1pass; - /* We could be doing buffered-image output before starting a 2-pass - * color quantization; in that case, jinit_d_post_controller did not - * allocate a strip buffer. Use the virtual-array buffer as workspace. - */ - if (post->buffer == NULL) { - post->buffer = (*cinfo->mem->access_virt_sarray) - ((j_common_ptr) cinfo, post->whole_image, - (JDIMENSION) 0, post->strip_height, TRUE); - } - } else { - /* For single-pass processing without color quantization, - * I have no work to do; just call the upsampler directly. - */ - post->pub.post_process_data = cinfo->upsample->upsample; - } - break; -#ifdef QUANT_2PASS_SUPPORTED - case JBUF_SAVE_AND_PASS: - /* First pass of 2-pass quantization */ - if (post->whole_image == NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - post->pub.post_process_data = post_process_prepass; - break; - case JBUF_CRANK_DEST: - /* Second pass of 2-pass quantization */ - if (post->whole_image == NULL) - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - post->pub.post_process_data = post_process_2pass; - break; -#endif /* QUANT_2PASS_SUPPORTED */ - default: - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); - break; - } - post->starting_row = post->next_row = 0; -} - - -/* - * Process some data in the one-pass (strip buffer) case. - * This is used for color precision reduction as well as one-pass quantization. - */ - -METHODDEF(void) -post_process_1pass (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - my_post_ptr post = (my_post_ptr) cinfo->post; - JDIMENSION num_rows, max_rows; - - /* Fill the buffer, but not more than what we can dump out in one go. */ - /* Note we rely on the upsampler to detect bottom of image. */ - max_rows = out_rows_avail - *out_row_ctr; - if (max_rows > post->strip_height) - max_rows = post->strip_height; - num_rows = 0; - (*cinfo->upsample->upsample) (cinfo, - input_buf, in_row_group_ctr, in_row_groups_avail, - post->buffer, &num_rows, max_rows); - /* Quantize and emit data. */ - (*cinfo->cquantize->color_quantize) (cinfo, - post->buffer, output_buf + *out_row_ctr, (int) num_rows); - *out_row_ctr += num_rows; -} - - -#ifdef QUANT_2PASS_SUPPORTED - -/* - * Process some data in the first pass of 2-pass quantization. - */ - -METHODDEF(void) -post_process_prepass (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - my_post_ptr post = (my_post_ptr) cinfo->post; - JDIMENSION old_next_row, num_rows; - - /* Reposition virtual buffer if at start of strip. */ - if (post->next_row == 0) { - post->buffer = (*cinfo->mem->access_virt_sarray) - ((j_common_ptr) cinfo, post->whole_image, - post->starting_row, post->strip_height, TRUE); - } - - /* Upsample some data (up to a strip height's worth). */ - old_next_row = post->next_row; - (*cinfo->upsample->upsample) (cinfo, - input_buf, in_row_group_ctr, in_row_groups_avail, - post->buffer, &post->next_row, post->strip_height); - - /* Allow quantizer to scan new data. No data is emitted, */ - /* but we advance out_row_ctr so outer loop can tell when we're done. */ - if (post->next_row > old_next_row) { - num_rows = post->next_row - old_next_row; - (*cinfo->cquantize->color_quantize) (cinfo, post->buffer + old_next_row, - (JSAMPARRAY) NULL, (int) num_rows); - *out_row_ctr += num_rows; - } - - /* Advance if we filled the strip. */ - if (post->next_row >= post->strip_height) { - post->starting_row += post->strip_height; - post->next_row = 0; - } -} - - -/* - * Process some data in the second pass of 2-pass quantization. - */ - -METHODDEF(void) -post_process_2pass (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - my_post_ptr post = (my_post_ptr) cinfo->post; - JDIMENSION num_rows, max_rows; - - /* Reposition virtual buffer if at start of strip. */ - if (post->next_row == 0) { - post->buffer = (*cinfo->mem->access_virt_sarray) - ((j_common_ptr) cinfo, post->whole_image, - post->starting_row, post->strip_height, FALSE); - } - - /* Determine number of rows to emit. */ - num_rows = post->strip_height - post->next_row; /* available in strip */ - max_rows = out_rows_avail - *out_row_ctr; /* available in output area */ - if (num_rows > max_rows) - num_rows = max_rows; - /* We have to check bottom of image here, can't depend on upsampler. */ - max_rows = cinfo->output_height - post->starting_row; - if (num_rows > max_rows) - num_rows = max_rows; - - /* Quantize and emit data. */ - (*cinfo->cquantize->color_quantize) (cinfo, - post->buffer + post->next_row, output_buf + *out_row_ctr, - (int) num_rows); - *out_row_ctr += num_rows; - - /* Advance if we filled the strip. */ - post->next_row += num_rows; - if (post->next_row >= post->strip_height) { - post->starting_row += post->strip_height; - post->next_row = 0; - } -} - -#endif /* QUANT_2PASS_SUPPORTED */ - - -/* - * Initialize postprocessing controller. - */ - -GLOBAL(void) -jinit_d_post_controller (j_decompress_ptr cinfo, boolean need_full_buffer) -{ - my_post_ptr post; - - post = (my_post_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_post_controller)); - cinfo->post = (struct jpeg_d_post_controller *) post; - post->pub.start_pass = start_pass_dpost; - post->whole_image = NULL; /* flag for no virtual arrays */ - post->buffer = NULL; /* flag for no strip buffer */ - - /* Create the quantization buffer, if needed */ - if (cinfo->quantize_colors) { - /* The buffer strip height is max_v_samp_factor, which is typically - * an efficient number of rows for upsampling to return. - * (In the presence of output rescaling, we might want to be smarter?) - */ - post->strip_height = (JDIMENSION) cinfo->max_v_samp_factor; - if (need_full_buffer) { - /* Two-pass color quantization: need full-image storage. */ - /* We round up the number of rows to a multiple of the strip height. */ -#ifdef QUANT_2PASS_SUPPORTED - post->whole_image = (*cinfo->mem->request_virt_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, FALSE, - cinfo->output_width * cinfo->out_color_components, - (JDIMENSION) jround_up((long) cinfo->output_height, - (long) post->strip_height), - post->strip_height); -#else - ERREXIT(cinfo, JERR_BAD_BUFFER_MODE); -#endif /* QUANT_2PASS_SUPPORTED */ - } else { - /* One-pass color quantization: just make a strip buffer. */ - post->buffer = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - cinfo->output_width * cinfo->out_color_components, - post->strip_height); - } - } -} diff --git a/src/jpeg/jdsample.c b/src/jpeg/jdsample.c deleted file mode 100644 index 80ffefb2a1..0000000000 --- a/src/jpeg/jdsample.c +++ /dev/null @@ -1,478 +0,0 @@ -/* - * jdsample.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains upsampling routines. - * - * Upsampling input data is counted in "row groups". A row group - * is defined to be (v_samp_factor * DCT_scaled_size / min_DCT_scaled_size) - * sample rows of each component. Upsampling will normally produce - * max_v_samp_factor pixel rows from each row group (but this could vary - * if the upsampler is applying a scale factor of its own). - * - * An excellent reference for image resampling is - * Digital Image Warping, George Wolberg, 1990. - * Pub. by IEEE Computer Society Press, Los Alamitos, CA. ISBN 0-8186-8944-7. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Pointer to routine to upsample a single component */ -typedef JMETHOD(void, upsample1_ptr, - (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr)); - -/* Private subobject */ - -typedef struct { - struct jpeg_upsampler pub; /* public fields */ - - /* Color conversion buffer. When using separate upsampling and color - * conversion steps, this buffer holds one upsampled row group until it - * has been color converted and output. - * Note: we do not allocate any storage for component(s) which are full-size, - * ie do not need rescaling. The corresponding entry of color_buf[] is - * simply set to point to the input data array, thereby avoiding copying. - */ - JSAMPARRAY color_buf[MAX_COMPONENTS]; - - /* Per-component upsampling method pointers */ - upsample1_ptr methods[MAX_COMPONENTS]; - - int next_row_out; /* counts rows emitted from color_buf */ - JDIMENSION rows_to_go; /* counts rows remaining in image */ - - /* Height of an input row group for each component. */ - int rowgroup_height[MAX_COMPONENTS]; - - /* These arrays save pixel expansion factors so that int_expand need not - * recompute them each time. They are unused for other upsampling methods. - */ - UINT8 h_expand[MAX_COMPONENTS]; - UINT8 v_expand[MAX_COMPONENTS]; -} my_upsampler; - -typedef my_upsampler * my_upsample_ptr; - - -/* - * Initialize for an upsampling pass. - */ - -METHODDEF(void) -start_pass_upsample (j_decompress_ptr cinfo) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - - /* Mark the conversion buffer empty */ - upsample->next_row_out = cinfo->max_v_samp_factor; - /* Initialize total-height counter for detecting bottom of image */ - upsample->rows_to_go = cinfo->output_height; -} - - -/* - * Control routine to do upsampling (and color conversion). - * - * In this version we upsample each component independently. - * We upsample one row group into the conversion buffer, then apply - * color conversion a row at a time. - */ - -METHODDEF(void) -sep_upsample (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - int ci; - jpeg_component_info * compptr; - JDIMENSION num_rows; - - /* Fill the conversion buffer, if it's empty */ - if (upsample->next_row_out >= cinfo->max_v_samp_factor) { - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Invoke per-component upsample method. Notice we pass a POINTER - * to color_buf[ci], so that fullsize_upsample can change it. - */ - (*upsample->methods[ci]) (cinfo, compptr, - input_buf[ci] + (*in_row_group_ctr * upsample->rowgroup_height[ci]), - upsample->color_buf + ci); - } - upsample->next_row_out = 0; - } - - /* Color-convert and emit rows */ - - /* How many we have in the buffer: */ - num_rows = (JDIMENSION) (cinfo->max_v_samp_factor - upsample->next_row_out); - /* Not more than the distance to the end of the image. Need this test - * in case the image height is not a multiple of max_v_samp_factor: - */ - if (num_rows > upsample->rows_to_go) - num_rows = upsample->rows_to_go; - /* And not more than what the client can accept: */ - out_rows_avail -= *out_row_ctr; - if (num_rows > out_rows_avail) - num_rows = out_rows_avail; - - (*cinfo->cconvert->color_convert) (cinfo, upsample->color_buf, - (JDIMENSION) upsample->next_row_out, - output_buf + *out_row_ctr, - (int) num_rows); - - /* Adjust counts */ - *out_row_ctr += num_rows; - upsample->rows_to_go -= num_rows; - upsample->next_row_out += num_rows; - /* When the buffer is emptied, declare this input row group consumed */ - if (upsample->next_row_out >= cinfo->max_v_samp_factor) - (*in_row_group_ctr)++; -} - - -/* - * These are the routines invoked by sep_upsample to upsample pixel values - * of a single component. One row group is processed per call. - */ - - -/* - * For full-size components, we just make color_buf[ci] point at the - * input buffer, and thus avoid copying any data. Note that this is - * safe only because sep_upsample doesn't declare the input row group - * "consumed" until we are done color converting and emitting it. - */ - -METHODDEF(void) -fullsize_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - *output_data_ptr = input_data; -} - - -/* - * This is a no-op version used for "uninteresting" components. - * These components will not be referenced by color conversion. - */ - -METHODDEF(void) -noop_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - *output_data_ptr = NULL; /* safety check */ -} - - -/* - * This version handles any integral sampling ratios. - * This is not used for typical JPEG files, so it need not be fast. - * Nor, for that matter, is it particularly accurate: the algorithm is - * simple replication of the input pixel onto the corresponding output - * pixels. The hi-falutin sampling literature refers to this as a - * "box filter". A box filter tends to introduce visible artifacts, - * so if you are actually going to use 3:1 or 4:1 sampling ratios - * you would be well advised to improve this code. - */ - -METHODDEF(void) -int_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - my_upsample_ptr upsample = (my_upsample_ptr) cinfo->upsample; - JSAMPARRAY output_data = *output_data_ptr; - register JSAMPROW inptr, outptr; - register JSAMPLE invalue; - register int h; - JSAMPROW outend; - int h_expand, v_expand; - int inrow, outrow; - - h_expand = upsample->h_expand[compptr->component_index]; - v_expand = upsample->v_expand[compptr->component_index]; - - inrow = outrow = 0; - while (outrow < cinfo->max_v_samp_factor) { - /* Generate one output row with proper horizontal expansion */ - inptr = input_data[inrow]; - outptr = output_data[outrow]; - outend = outptr + cinfo->output_width; - while (outptr < outend) { - invalue = *inptr++; /* don't need GETJSAMPLE() here */ - for (h = h_expand; h > 0; h--) { - *outptr++ = invalue; - } - } - /* Generate any additional output rows by duplicating the first one */ - if (v_expand > 1) { - jcopy_sample_rows(output_data, outrow, output_data, outrow+1, - v_expand-1, cinfo->output_width); - } - inrow++; - outrow += v_expand; - } -} - - -/* - * Fast processing for the common case of 2:1 horizontal and 1:1 vertical. - * It's still a box filter. - */ - -METHODDEF(void) -h2v1_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - JSAMPARRAY output_data = *output_data_ptr; - register JSAMPROW inptr, outptr; - register JSAMPLE invalue; - JSAMPROW outend; - int inrow; - - for (inrow = 0; inrow < cinfo->max_v_samp_factor; inrow++) { - inptr = input_data[inrow]; - outptr = output_data[inrow]; - outend = outptr + cinfo->output_width; - while (outptr < outend) { - invalue = *inptr++; /* don't need GETJSAMPLE() here */ - *outptr++ = invalue; - *outptr++ = invalue; - } - } -} - - -/* - * Fast processing for the common case of 2:1 horizontal and 2:1 vertical. - * It's still a box filter. - */ - -METHODDEF(void) -h2v2_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - JSAMPARRAY output_data = *output_data_ptr; - register JSAMPROW inptr, outptr; - register JSAMPLE invalue; - JSAMPROW outend; - int inrow, outrow; - - inrow = outrow = 0; - while (outrow < cinfo->max_v_samp_factor) { - inptr = input_data[inrow]; - outptr = output_data[outrow]; - outend = outptr + cinfo->output_width; - while (outptr < outend) { - invalue = *inptr++; /* don't need GETJSAMPLE() here */ - *outptr++ = invalue; - *outptr++ = invalue; - } - jcopy_sample_rows(output_data, outrow, output_data, outrow+1, - 1, cinfo->output_width); - inrow++; - outrow += 2; - } -} - - -/* - * Fancy processing for the common case of 2:1 horizontal and 1:1 vertical. - * - * The upsampling algorithm is linear interpolation between pixel centers, - * also known as a "triangle filter". This is a good compromise between - * speed and visual quality. The centers of the output pixels are 1/4 and 3/4 - * of the way between input pixel centers. - * - * A note about the "bias" calculations: when rounding fractional values to - * integer, we do not want to always round 0.5 up to the next integer. - * If we did that, we'd introduce a noticeable bias towards larger values. - * Instead, this code is arranged so that 0.5 will be rounded up or down at - * alternate pixel locations (a simple ordered dither pattern). - */ - -METHODDEF(void) -h2v1_fancy_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - JSAMPARRAY output_data = *output_data_ptr; - register JSAMPROW inptr, outptr; - register int invalue; - register JDIMENSION colctr; - int inrow; - - for (inrow = 0; inrow < cinfo->max_v_samp_factor; inrow++) { - inptr = input_data[inrow]; - outptr = output_data[inrow]; - /* Special case for first column */ - invalue = GETJSAMPLE(*inptr++); - *outptr++ = (JSAMPLE) invalue; - *outptr++ = (JSAMPLE) ((invalue * 3 + GETJSAMPLE(*inptr) + 2) >> 2); - - for (colctr = compptr->downsampled_width - 2; colctr > 0; colctr--) { - /* General case: 3/4 * nearer pixel + 1/4 * further pixel */ - invalue = GETJSAMPLE(*inptr++) * 3; - *outptr++ = (JSAMPLE) ((invalue + GETJSAMPLE(inptr[-2]) + 1) >> 2); - *outptr++ = (JSAMPLE) ((invalue + GETJSAMPLE(*inptr) + 2) >> 2); - } - - /* Special case for last column */ - invalue = GETJSAMPLE(*inptr); - *outptr++ = (JSAMPLE) ((invalue * 3 + GETJSAMPLE(inptr[-1]) + 1) >> 2); - *outptr++ = (JSAMPLE) invalue; - } -} - - -/* - * Fancy processing for the common case of 2:1 horizontal and 2:1 vertical. - * Again a triangle filter; see comments for h2v1 case, above. - * - * It is OK for us to reference the adjacent input rows because we demanded - * context from the main buffer controller (see initialization code). - */ - -METHODDEF(void) -h2v2_fancy_upsample (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JSAMPARRAY input_data, JSAMPARRAY * output_data_ptr) -{ - JSAMPARRAY output_data = *output_data_ptr; - register JSAMPROW inptr0, inptr1, outptr; -#if BITS_IN_JSAMPLE == 8 - register int thiscolsum, lastcolsum, nextcolsum; -#else - register INT32 thiscolsum, lastcolsum, nextcolsum; -#endif - register JDIMENSION colctr; - int inrow, outrow, v; - - inrow = outrow = 0; - while (outrow < cinfo->max_v_samp_factor) { - for (v = 0; v < 2; v++) { - /* inptr0 points to nearest input row, inptr1 points to next nearest */ - inptr0 = input_data[inrow]; - if (v == 0) /* next nearest is row above */ - inptr1 = input_data[inrow-1]; - else /* next nearest is row below */ - inptr1 = input_data[inrow+1]; - outptr = output_data[outrow++]; - - /* Special case for first column */ - thiscolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++); - nextcolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++); - *outptr++ = (JSAMPLE) ((thiscolsum * 4 + 8) >> 4); - *outptr++ = (JSAMPLE) ((thiscolsum * 3 + nextcolsum + 7) >> 4); - lastcolsum = thiscolsum; thiscolsum = nextcolsum; - - for (colctr = compptr->downsampled_width - 2; colctr > 0; colctr--) { - /* General case: 3/4 * nearer pixel + 1/4 * further pixel in each */ - /* dimension, thus 9/16, 3/16, 3/16, 1/16 overall */ - nextcolsum = GETJSAMPLE(*inptr0++) * 3 + GETJSAMPLE(*inptr1++); - *outptr++ = (JSAMPLE) ((thiscolsum * 3 + lastcolsum + 8) >> 4); - *outptr++ = (JSAMPLE) ((thiscolsum * 3 + nextcolsum + 7) >> 4); - lastcolsum = thiscolsum; thiscolsum = nextcolsum; - } - - /* Special case for last column */ - *outptr++ = (JSAMPLE) ((thiscolsum * 3 + lastcolsum + 8) >> 4); - *outptr++ = (JSAMPLE) ((thiscolsum * 4 + 7) >> 4); - } - inrow++; - } -} - - -/* - * Module initialization routine for upsampling. - */ - -GLOBAL(void) -jinit_upsampler (j_decompress_ptr cinfo) -{ - my_upsample_ptr upsample; - int ci; - jpeg_component_info * compptr; - boolean need_buffer, do_fancy; - int h_in_group, v_in_group, h_out_group, v_out_group; - - upsample = (my_upsample_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_upsampler)); - cinfo->upsample = (struct jpeg_upsampler *) upsample; - upsample->pub.start_pass = start_pass_upsample; - upsample->pub.upsample = sep_upsample; - upsample->pub.need_context_rows = FALSE; /* until we find out differently */ - - if (cinfo->CCIR601_sampling) /* this isn't supported */ - ERREXIT(cinfo, JERR_CCIR601_NOTIMPL); - - /* jdmainct.c doesn't support context rows when min_DCT_scaled_size = 1, - * so don't ask for it. - */ - do_fancy = cinfo->do_fancy_upsampling && cinfo->min_DCT_scaled_size > 1; - - /* Verify we can handle the sampling factors, select per-component methods, - * and create storage as needed. - */ - for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; - ci++, compptr++) { - /* Compute size of an "input group" after IDCT scaling. This many samples - * are to be converted to max_h_samp_factor * max_v_samp_factor pixels. - */ - h_in_group = (compptr->h_samp_factor * compptr->DCT_scaled_size) / - cinfo->min_DCT_scaled_size; - v_in_group = (compptr->v_samp_factor * compptr->DCT_scaled_size) / - cinfo->min_DCT_scaled_size; - h_out_group = cinfo->max_h_samp_factor; - v_out_group = cinfo->max_v_samp_factor; - upsample->rowgroup_height[ci] = v_in_group; /* save for use later */ - need_buffer = TRUE; - if (! compptr->component_needed) { - /* Don't bother to upsample an uninteresting component. */ - upsample->methods[ci] = noop_upsample; - need_buffer = FALSE; - } else if (h_in_group == h_out_group && v_in_group == v_out_group) { - /* Fullsize components can be processed without any work. */ - upsample->methods[ci] = fullsize_upsample; - need_buffer = FALSE; - } else if (h_in_group * 2 == h_out_group && - v_in_group == v_out_group) { - /* Special cases for 2h1v upsampling */ - if (do_fancy && compptr->downsampled_width > 2) - upsample->methods[ci] = h2v1_fancy_upsample; - else - upsample->methods[ci] = h2v1_upsample; - } else if (h_in_group * 2 == h_out_group && - v_in_group * 2 == v_out_group) { - /* Special cases for 2h2v upsampling */ - if (do_fancy && compptr->downsampled_width > 2) { - upsample->methods[ci] = h2v2_fancy_upsample; - upsample->pub.need_context_rows = TRUE; - } else - upsample->methods[ci] = h2v2_upsample; - } else if ((h_out_group % h_in_group) == 0 && - (v_out_group % v_in_group) == 0) { - /* Generic integral-factors upsampling method */ - upsample->methods[ci] = int_upsample; - upsample->h_expand[ci] = (UINT8) (h_out_group / h_in_group); - upsample->v_expand[ci] = (UINT8) (v_out_group / v_in_group); - } else - ERREXIT(cinfo, JERR_FRACT_SAMPLE_NOTIMPL); - if (need_buffer) { - upsample->color_buf[ci] = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (JDIMENSION) jround_up((long) cinfo->output_width, - (long) cinfo->max_h_samp_factor), - (JDIMENSION) cinfo->max_v_samp_factor); - } - } -} diff --git a/src/jpeg/jdtrans.c b/src/jpeg/jdtrans.c deleted file mode 100644 index 6c0ab715d3..0000000000 --- a/src/jpeg/jdtrans.c +++ /dev/null @@ -1,143 +0,0 @@ -/* - * jdtrans.c - * - * Copyright (C) 1995-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains library routines for transcoding decompression, - * that is, reading raw DCT coefficient arrays from an input JPEG file. - * The routines in jdapimin.c will also be needed by a transcoder. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* Forward declarations */ -LOCAL(void) transdecode_master_selection JPP((j_decompress_ptr cinfo)); - - -/* - * Read the coefficient arrays from a JPEG file. - * jpeg_read_header must be completed before calling this. - * - * The entire image is read into a set of virtual coefficient-block arrays, - * one per component. The return value is a pointer to the array of - * virtual-array descriptors. These can be manipulated directly via the - * JPEG memory manager, or handed off to jpeg_write_coefficients(). - * To release the memory occupied by the virtual arrays, call - * jpeg_finish_decompress() when done with the data. - * - * An alternative usage is to simply obtain access to the coefficient arrays - * during a buffered-image-mode decompression operation. This is allowed - * after any jpeg_finish_output() call. The arrays can be accessed until - * jpeg_finish_decompress() is called. (Note that any call to the library - * may reposition the arrays, so don't rely on access_virt_barray() results - * to stay valid across library calls.) - * - * Returns NULL if suspended. This case need be checked only if - * a suspending data source is used. - */ - -GLOBAL(jvirt_barray_ptr *) -jpeg_read_coefficients (j_decompress_ptr cinfo) -{ - if (cinfo->global_state == DSTATE_READY) { - /* First call: initialize active modules */ - transdecode_master_selection(cinfo); - cinfo->global_state = DSTATE_RDCOEFS; - } - if (cinfo->global_state == DSTATE_RDCOEFS) { - /* Absorb whole file into the coef buffer */ - for (;;) { - int retcode; - /* Call progress monitor hook if present */ - if (cinfo->progress != NULL) - (*cinfo->progress->progress_monitor) ((j_common_ptr) cinfo); - /* Absorb some more input */ - retcode = (*cinfo->inputctl->consume_input) (cinfo); - if (retcode == JPEG_SUSPENDED) - return NULL; - if (retcode == JPEG_REACHED_EOI) - break; - /* Advance progress counter if appropriate */ - if (cinfo->progress != NULL && - (retcode == JPEG_ROW_COMPLETED || retcode == JPEG_REACHED_SOS)) { - if (++cinfo->progress->pass_counter >= cinfo->progress->pass_limit) { - /* startup underestimated number of scans; ratchet up one scan */ - cinfo->progress->pass_limit += (long) cinfo->total_iMCU_rows; - } - } - } - /* Set state so that jpeg_finish_decompress does the right thing */ - cinfo->global_state = DSTATE_STOPPING; - } - /* At this point we should be in state DSTATE_STOPPING if being used - * standalone, or in state DSTATE_BUFIMAGE if being invoked to get access - * to the coefficients during a full buffered-image-mode decompression. - */ - if ((cinfo->global_state == DSTATE_STOPPING || - cinfo->global_state == DSTATE_BUFIMAGE) && cinfo->buffered_image) { - return cinfo->coef->coef_arrays; - } - /* Oops, improper usage */ - ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state); - return NULL; /* keep compiler happy */ -} - - -/* - * Master selection of decompression modules for transcoding. - * This substitutes for jdmaster.c's initialization of the full decompressor. - */ - -LOCAL(void) -transdecode_master_selection (j_decompress_ptr cinfo) -{ - /* This is effectively a buffered-image operation. */ - cinfo->buffered_image = TRUE; - - /* Entropy decoding: either Huffman or arithmetic coding. */ - if (cinfo->arith_code) { - ERREXIT(cinfo, JERR_ARITH_NOTIMPL); - } else { - if (cinfo->progressive_mode) { -#ifdef D_PROGRESSIVE_SUPPORTED - jinit_phuff_decoder(cinfo); -#else - ERREXIT(cinfo, JERR_NOT_COMPILED); -#endif - } else - jinit_huff_decoder(cinfo); - } - - /* Always get a full-image coefficient buffer. */ - jinit_d_coef_controller(cinfo, TRUE); - - /* We can now tell the memory manager to allocate virtual arrays. */ - (*cinfo->mem->realize_virt_arrays) ((j_common_ptr) cinfo); - - /* Initialize input side of decompressor to consume first scan. */ - (*cinfo->inputctl->start_input_pass) (cinfo); - - /* Initialize progress monitoring. */ - if (cinfo->progress != NULL) { - int nscans; - /* Estimate number of scans to set pass_limit. */ - if (cinfo->progressive_mode) { - /* Arbitrarily estimate 2 interleaved DC scans + 3 AC scans/component. */ - nscans = 2 + 3 * cinfo->num_components; - } else if (cinfo->inputctl->has_multiple_scans) { - /* For a nonprogressive multiscan file, estimate 1 scan per component. */ - nscans = cinfo->num_components; - } else { - nscans = 1; - } - cinfo->progress->pass_counter = 0L; - cinfo->progress->pass_limit = (long) cinfo->total_iMCU_rows * nscans; - cinfo->progress->completed_passes = 0; - cinfo->progress->total_passes = 1; - } -} diff --git a/src/jpeg/jerror.c b/src/jpeg/jerror.c deleted file mode 100644 index 3da7be86a0..0000000000 --- a/src/jpeg/jerror.c +++ /dev/null @@ -1,252 +0,0 @@ -/* - * jerror.c - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains simple error-reporting and trace-message routines. - * These are suitable for Unix-like systems and others where writing to - * stderr is the right thing to do. Many applications will want to replace - * some or all of these routines. - * - * If you define USE_WINDOWS_MESSAGEBOX in jconfig.h or in the makefile, - * you get a Windows-specific hack to display error messages in a dialog box. - * It ain't much, but it beats dropping error messages into the bit bucket, - * which is what happens to output to stderr under most Windows C compilers. - * - * These routines are used by both the compression and decompression code. - */ - -/* this is not a core library module, so it doesn't define JPEG_INTERNALS */ -#include "jinclude.h" -#include "jpeglib.h" -#include "jversion.h" -#include "jerror.h" - -#ifdef USE_WINDOWS_MESSAGEBOX -#include -#endif - -#ifndef EXIT_FAILURE /* define exit() codes if not provided */ -#define EXIT_FAILURE 1 -#endif - - -/* - * Create the message string table. - * We do this from the master message list in jerror.h by re-reading - * jerror.h with a suitable definition for macro JMESSAGE. - * The message table is made an external symbol just in case any applications - * want to refer to it directly. - */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_std_message_table jMsgTable -#endif - -#define JMESSAGE(code,string) string , - -const char * const jpeg_std_message_table[] = { -#include "jerror.h" - NULL -}; - - -/* - * Error exit handler: must not return to caller. - * - * Applications may override this if they want to get control back after - * an error. Typically one would longjmp somewhere instead of exiting. - * The setjmp buffer can be made a private field within an expanded error - * handler object. Note that the info needed to generate an error message - * is stored in the error object, so you can generate the message now or - * later, at your convenience. - * You should make sure that the JPEG object is cleaned up (with jpeg_abort - * or jpeg_destroy) at some point. - */ - -METHODDEF(void) -error_exit (j_common_ptr cinfo) -{ - /* Always display the message */ - (*cinfo->err->output_message) (cinfo); - - /* Let the memory manager delete any temp files before we die */ - jpeg_destroy(cinfo); - - exit(EXIT_FAILURE); -} - - -/* - * Actual output of an error or trace message. - * Applications may override this method to send JPEG messages somewhere - * other than stderr. - * - * On Windows, printing to stderr is generally completely useless, - * so we provide optional code to produce an error-dialog popup. - * Most Windows applications will still prefer to override this routine, - * but if they don't, it'll do something at least marginally useful. - * - * NOTE: to use the library in an environment that doesn't support the - * C stdio library, you may have to delete the call to fprintf() entirely, - * not just not use this routine. - */ - -METHODDEF(void) -output_message (j_common_ptr cinfo) -{ - char buffer[JMSG_LENGTH_MAX]; - - /* Create the message */ - (*cinfo->err->format_message) (cinfo, buffer); - -#ifdef USE_WINDOWS_MESSAGEBOX - /* Display it in a message dialog box */ - MessageBox(GetActiveWindow(), buffer, "JPEG Library Error", - MB_OK | MB_ICONERROR); -#else - /* Send it to stderr, adding a newline */ - fprintf(stderr, "%s\n", buffer); -#endif -} - - -/* - * Decide whether to emit a trace or warning message. - * msg_level is one of: - * -1: recoverable corrupt-data warning, may want to abort. - * 0: important advisory messages (always display to user). - * 1: first level of tracing detail. - * 2,3,...: successively more detailed tracing messages. - * An application might override this method if it wanted to abort on warnings - * or change the policy about which messages to display. - */ - -METHODDEF(void) -emit_message (j_common_ptr cinfo, int msg_level) -{ - struct jpeg_error_mgr * err = cinfo->err; - - if (msg_level < 0) { - /* It's a warning message. Since corrupt files may generate many warnings, - * the policy implemented here is to show only the first warning, - * unless trace_level >= 3. - */ - if (err->num_warnings == 0 || err->trace_level >= 3) - (*err->output_message) (cinfo); - /* Always count warnings in num_warnings. */ - err->num_warnings++; - } else { - /* It's a trace message. Show it if trace_level >= msg_level. */ - if (err->trace_level >= msg_level) - (*err->output_message) (cinfo); - } -} - - -/* - * Format a message string for the most recent JPEG error or message. - * The message is stored into buffer, which should be at least JMSG_LENGTH_MAX - * characters. Note that no '\n' character is added to the string. - * Few applications should need to override this method. - */ - -METHODDEF(void) -format_message (j_common_ptr cinfo, char * buffer) -{ - struct jpeg_error_mgr * err = cinfo->err; - int msg_code = err->msg_code; - const char * msgtext = NULL; - const char * msgptr; - char ch; - boolean isstring; - - /* Look up message string in proper table */ - if (msg_code > 0 && msg_code <= err->last_jpeg_message) { - msgtext = err->jpeg_message_table[msg_code]; - } else if (err->addon_message_table != NULL && - msg_code >= err->first_addon_message && - msg_code <= err->last_addon_message) { - msgtext = err->addon_message_table[msg_code - err->first_addon_message]; - } - - /* Defend against bogus message number */ - if (msgtext == NULL) { - err->msg_parm.i[0] = msg_code; - msgtext = err->jpeg_message_table[0]; - } - - /* Check for string parameter, as indicated by %s in the message text */ - isstring = FALSE; - msgptr = msgtext; - while ((ch = *msgptr++) != '\0') { - if (ch == '%') { - if (*msgptr == 's') isstring = TRUE; - break; - } - } - - /* Format the message into the passed buffer */ - if (isstring) - sprintf(buffer, msgtext, err->msg_parm.s); - else - sprintf(buffer, msgtext, - err->msg_parm.i[0], err->msg_parm.i[1], - err->msg_parm.i[2], err->msg_parm.i[3], - err->msg_parm.i[4], err->msg_parm.i[5], - err->msg_parm.i[6], err->msg_parm.i[7]); -} - - -/* - * Reset error state variables at start of a new image. - * This is called during compression startup to reset trace/error - * processing to default state, without losing any application-specific - * method pointers. An application might possibly want to override - * this method if it has additional error processing state. - */ - -METHODDEF(void) -reset_error_mgr (j_common_ptr cinfo) -{ - cinfo->err->num_warnings = 0; - /* trace_level is not reset since it is an application-supplied parameter */ - cinfo->err->msg_code = 0; /* may be useful as a flag for "no error" */ -} - - -/* - * Fill in the standard error-handling methods in a jpeg_error_mgr object. - * Typical call is: - * struct jpeg_compress_struct cinfo; - * struct jpeg_error_mgr err; - * - * cinfo.err = jpeg_std_error(&err); - * after which the application may override some of the methods. - */ - -GLOBAL(struct jpeg_error_mgr *) -jpeg_std_error (struct jpeg_error_mgr * err) -{ - err->error_exit = error_exit; - err->emit_message = emit_message; - err->output_message = output_message; - err->format_message = format_message; - err->reset_error_mgr = reset_error_mgr; - - err->trace_level = 0; /* default = no tracing */ - err->num_warnings = 0; /* no warnings emitted yet */ - err->msg_code = 0; /* may be useful as a flag for "no error" */ - - /* Initialize message table pointers */ - err->jpeg_message_table = jpeg_std_message_table; - err->last_jpeg_message = (int) JMSG_LASTMSGCODE - 1; - - err->addon_message_table = NULL; - err->first_addon_message = 0; /* for safety */ - err->last_addon_message = 0; - - return err; -} diff --git a/src/jpeg/jerror.h b/src/jpeg/jerror.h deleted file mode 100644 index fc2fffeac2..0000000000 --- a/src/jpeg/jerror.h +++ /dev/null @@ -1,291 +0,0 @@ -/* - * jerror.h - * - * Copyright (C) 1994-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file defines the error and message codes for the JPEG library. - * Edit this file to add new codes, or to translate the message strings to - * some other language. - * A set of error-reporting macros are defined too. Some applications using - * the JPEG library may wish to include this file to get the error codes - * and/or the macros. - */ - -/* - * To define the enum list of message codes, include this file without - * defining macro JMESSAGE. To create a message string table, include it - * again with a suitable JMESSAGE definition (see jerror.c for an example). - */ -#ifndef JMESSAGE -#ifndef JERROR_H -/* First time through, define the enum list */ -#define JMAKE_ENUM_LIST -#else -/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ -#define JMESSAGE(code,string) -#endif /* JERROR_H */ -#endif /* JMESSAGE */ - -#ifdef JMAKE_ENUM_LIST - -typedef enum { - -#define JMESSAGE(code,string) code , - -#endif /* JMAKE_ENUM_LIST */ - -JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */ - -/* For maintenance convenience, list is alphabetical by message code name */ -JMESSAGE(JERR_ARITH_NOTIMPL, - "Sorry, there are legal restrictions on arithmetic coding") -JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix") -JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") -JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") -JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") -JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") -JMESSAGE(JERR_BAD_DCTSIZE, "IDCT output block size %d not supported") -JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") -JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace") -JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace") -JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length") -JMESSAGE(JERR_BAD_LIB_VERSION, - "Wrong JPEG library version: library is %d, caller expects %d") -JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan") -JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d") -JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d") -JMESSAGE(JERR_BAD_PROGRESSION, - "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d") -JMESSAGE(JERR_BAD_PROG_SCRIPT, - "Invalid progressive parameters at scan script entry %d") -JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors") -JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d") -JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d") -JMESSAGE(JERR_BAD_STRUCT_SIZE, - "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u") -JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access") -JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small") -JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here") -JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet") -JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d") -JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") -JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d") -JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x") -JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d") -JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d") -JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)") -JMESSAGE(JERR_EMS_READ, "Read from EMS failed") -JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed") -JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan") -JMESSAGE(JERR_FILE_READ, "Input file read error") -JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?") -JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet") -JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow") -JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry") -JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels") -JMESSAGE(JERR_INPUT_EMPTY, "Empty input file") -JMESSAGE(JERR_INPUT_EOF, "Premature end of input file") -JMESSAGE(JERR_MISMATCHED_QUANT_TABLE, - "Cannot transcode due to multiple use of quantization table %d") -JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data") -JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change") -JMESSAGE(JERR_NOTIMPL, "Not implemented yet") -JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time") -JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported") -JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined") -JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image") -JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined") -JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x") -JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)") -JMESSAGE(JERR_QUANT_COMPONENTS, - "Cannot quantize more than %d color components") -JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors") -JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors") -JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers") -JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker") -JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x") -JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers") -JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF") -JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s") -JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file") -JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file") -JMESSAGE(JERR_TFILE_WRITE, - "Write failed on temporary file --- out of disk space?") -JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines") -JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x") -JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up") -JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation") -JMESSAGE(JERR_XMS_READ, "Read from XMS failed") -JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed") -JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT) -JMESSAGE(JMSG_VERSION, JVERSION) -JMESSAGE(JTRC_16BIT_TABLES, - "Caution: quantization tables are too coarse for baseline JPEG") -JMESSAGE(JTRC_ADOBE, - "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d") -JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u") -JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u") -JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x") -JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x") -JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d") -JMESSAGE(JTRC_DRI, "Define Restart Interval %u") -JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u") -JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u") -JMESSAGE(JTRC_EOI, "End Of Image") -JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d") -JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d") -JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE, - "Warning: thumbnail image size does not match data length %u") -JMESSAGE(JTRC_JFIF_EXTENSION, - "JFIF extension marker: type 0x%02x, length %u") -JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image") -JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u") -JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x") -JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u") -JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors") -JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors") -JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization") -JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d") -JMESSAGE(JTRC_RST, "RST%d") -JMESSAGE(JTRC_SMOOTH_NOTIMPL, - "Smoothing not supported with nonstandard sampling ratios") -JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d") -JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d") -JMESSAGE(JTRC_SOI, "Start of Image") -JMESSAGE(JTRC_SOS, "Start Of Scan: %d components") -JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d") -JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d") -JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s") -JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s") -JMESSAGE(JTRC_THUMB_JPEG, - "JFIF extension marker: JPEG-compressed thumbnail image, length %u") -JMESSAGE(JTRC_THUMB_PALETTE, - "JFIF extension marker: palette thumbnail image, length %u") -JMESSAGE(JTRC_THUMB_RGB, - "JFIF extension marker: RGB thumbnail image, length %u") -JMESSAGE(JTRC_UNKNOWN_IDS, - "Unrecognized component IDs %d %d %d, assuming YCbCr") -JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u") -JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u") -JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d") -JMESSAGE(JWRN_BOGUS_PROGRESSION, - "Inconsistent progression sequence for component %d coefficient %d") -JMESSAGE(JWRN_EXTRANEOUS_DATA, - "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x") -JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment") -JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code") -JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d") -JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file") -JMESSAGE(JWRN_MUST_RESYNC, - "Corrupt JPEG data: found marker 0x%02x instead of RST%d") -JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG") -JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines") - -#ifdef JMAKE_ENUM_LIST - - JMSG_LASTMSGCODE -} J_MESSAGE_CODE; - -#undef JMAKE_ENUM_LIST -#endif /* JMAKE_ENUM_LIST */ - -/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ -#undef JMESSAGE - - -#ifndef JERROR_H -#define JERROR_H - -/* Macros to simplify using the error and trace message stuff */ -/* The first parameter is either type of cinfo pointer */ - -/* Fatal errors (print message and exit) */ -#define ERREXIT(cinfo,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT1(cinfo,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT2(cinfo,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT3(cinfo,code,p1,p2,p3) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (cinfo)->err->msg_parm.i[3] = (p4), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXITS(cinfo,code,str) \ - ((cinfo)->err->msg_code = (code), \ - strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) - -#define MAKESTMT(stuff) do { stuff } while (0) - -/* Nonfatal errors (we can keep going, but the data is probably corrupt) */ -#define WARNMS(cinfo,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) -#define WARNMS1(cinfo,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) -#define WARNMS2(cinfo,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) - -/* Informational/debugging messages */ -#define TRACEMS(cinfo,lvl,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS1(cinfo,lvl,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS2(cinfo,lvl,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - _mp[4] = (p5); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMSS(cinfo,lvl,code,str) \ - ((cinfo)->err->msg_code = (code), \ - strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) - -#endif /* JERROR_H */ diff --git a/src/jpeg/jfdctflt.c b/src/jpeg/jfdctflt.c deleted file mode 100644 index 79d7a00787..0000000000 --- a/src/jpeg/jfdctflt.c +++ /dev/null @@ -1,168 +0,0 @@ -/* - * jfdctflt.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a floating-point implementation of the - * forward DCT (Discrete Cosine Transform). - * - * This implementation should be more accurate than either of the integer - * DCT implementations. However, it may not give the same results on all - * machines because of differences in roundoff behavior. Speed will depend - * on the hardware's floating point capacity. - * - * A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT - * on each column. Direct algorithms are also available, but they are - * much more complex and seem not to be any faster when reduced to code. - * - * This implementation is based on Arai, Agui, and Nakajima's algorithm for - * scaled DCT. Their original paper (Trans. IEICE E-71(11):1095) is in - * Japanese, but the algorithm is described in the Pennebaker & Mitchell - * JPEG textbook (see REFERENCES section in file README). The following code - * is based directly on figure 4-8 in P&M. - * While an 8-point DCT cannot be done in less than 11 multiplies, it is - * possible to arrange the computation so that many of the multiplies are - * simple scalings of the final outputs. These multiplies can then be - * folded into the multiplications or divisions by the JPEG quantization - * table entries. The AA&N method leaves only 5 multiplies and 29 adds - * to be done in the DCT itself. - * The primary disadvantage of this method is that with a fixed-point - * implementation, accuracy is lost due to imprecise representation of the - * scaled quantization values. However, that problem does not arise if - * we use floating point arithmetic. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef DCT_FLOAT_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* - * Perform the forward DCT on one block of samples. - */ - -GLOBAL(void) -jpeg_fdct_float (FAST_FLOAT * data) -{ - FAST_FLOAT tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - FAST_FLOAT tmp10, tmp11, tmp12, tmp13; - FAST_FLOAT z1, z2, z3, z4, z5, z11, z13; - FAST_FLOAT *dataptr; - int ctr; - - /* Pass 1: process rows. */ - - dataptr = data; - for (ctr = DCTSIZE-1; ctr >= 0; ctr--) { - tmp0 = dataptr[0] + dataptr[7]; - tmp7 = dataptr[0] - dataptr[7]; - tmp1 = dataptr[1] + dataptr[6]; - tmp6 = dataptr[1] - dataptr[6]; - tmp2 = dataptr[2] + dataptr[5]; - tmp5 = dataptr[2] - dataptr[5]; - tmp3 = dataptr[3] + dataptr[4]; - tmp4 = dataptr[3] - dataptr[4]; - - /* Even part */ - - tmp10 = tmp0 + tmp3; /* phase 2 */ - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - dataptr[0] = tmp10 + tmp11; /* phase 3 */ - dataptr[4] = tmp10 - tmp11; - - z1 = (tmp12 + tmp13) * ((FAST_FLOAT) 0.707106781); /* c4 */ - dataptr[2] = tmp13 + z1; /* phase 5 */ - dataptr[6] = tmp13 - z1; - - /* Odd part */ - - tmp10 = tmp4 + tmp5; /* phase 2 */ - tmp11 = tmp5 + tmp6; - tmp12 = tmp6 + tmp7; - - /* The rotator is modified from fig 4-8 to avoid extra negations. */ - z5 = (tmp10 - tmp12) * ((FAST_FLOAT) 0.382683433); /* c6 */ - z2 = ((FAST_FLOAT) 0.541196100) * tmp10 + z5; /* c2-c6 */ - z4 = ((FAST_FLOAT) 1.306562965) * tmp12 + z5; /* c2+c6 */ - z3 = tmp11 * ((FAST_FLOAT) 0.707106781); /* c4 */ - - z11 = tmp7 + z3; /* phase 5 */ - z13 = tmp7 - z3; - - dataptr[5] = z13 + z2; /* phase 6 */ - dataptr[3] = z13 - z2; - dataptr[1] = z11 + z4; - dataptr[7] = z11 - z4; - - dataptr += DCTSIZE; /* advance pointer to next row */ - } - - /* Pass 2: process columns. */ - - dataptr = data; - for (ctr = DCTSIZE-1; ctr >= 0; ctr--) { - tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7]; - tmp7 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*7]; - tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6]; - tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6]; - tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5]; - tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5]; - tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]; - tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4]; - - /* Even part */ - - tmp10 = tmp0 + tmp3; /* phase 2 */ - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - dataptr[DCTSIZE*0] = tmp10 + tmp11; /* phase 3 */ - dataptr[DCTSIZE*4] = tmp10 - tmp11; - - z1 = (tmp12 + tmp13) * ((FAST_FLOAT) 0.707106781); /* c4 */ - dataptr[DCTSIZE*2] = tmp13 + z1; /* phase 5 */ - dataptr[DCTSIZE*6] = tmp13 - z1; - - /* Odd part */ - - tmp10 = tmp4 + tmp5; /* phase 2 */ - tmp11 = tmp5 + tmp6; - tmp12 = tmp6 + tmp7; - - /* The rotator is modified from fig 4-8 to avoid extra negations. */ - z5 = (tmp10 - tmp12) * ((FAST_FLOAT) 0.382683433); /* c6 */ - z2 = ((FAST_FLOAT) 0.541196100) * tmp10 + z5; /* c2-c6 */ - z4 = ((FAST_FLOAT) 1.306562965) * tmp12 + z5; /* c2+c6 */ - z3 = tmp11 * ((FAST_FLOAT) 0.707106781); /* c4 */ - - z11 = tmp7 + z3; /* phase 5 */ - z13 = tmp7 - z3; - - dataptr[DCTSIZE*5] = z13 + z2; /* phase 6 */ - dataptr[DCTSIZE*3] = z13 - z2; - dataptr[DCTSIZE*1] = z11 + z4; - dataptr[DCTSIZE*7] = z11 - z4; - - dataptr++; /* advance pointer to next column */ - } -} - -#endif /* DCT_FLOAT_SUPPORTED */ diff --git a/src/jpeg/jfdctfst.c b/src/jpeg/jfdctfst.c deleted file mode 100644 index ccb378a3b4..0000000000 --- a/src/jpeg/jfdctfst.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * jfdctfst.c - * - * Copyright (C) 1994-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a fast, not so accurate integer implementation of the - * forward DCT (Discrete Cosine Transform). - * - * A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT - * on each column. Direct algorithms are also available, but they are - * much more complex and seem not to be any faster when reduced to code. - * - * This implementation is based on Arai, Agui, and Nakajima's algorithm for - * scaled DCT. Their original paper (Trans. IEICE E-71(11):1095) is in - * Japanese, but the algorithm is described in the Pennebaker & Mitchell - * JPEG textbook (see REFERENCES section in file README). The following code - * is based directly on figure 4-8 in P&M. - * While an 8-point DCT cannot be done in less than 11 multiplies, it is - * possible to arrange the computation so that many of the multiplies are - * simple scalings of the final outputs. These multiplies can then be - * folded into the multiplications or divisions by the JPEG quantization - * table entries. The AA&N method leaves only 5 multiplies and 29 adds - * to be done in the DCT itself. - * The primary disadvantage of this method is that with fixed-point math, - * accuracy is lost due to imprecise representation of the scaled - * quantization values. The smaller the quantization table entry, the less - * precise the scaled value, so this implementation does worse with high- - * quality-setting files than with low-quality ones. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef DCT_IFAST_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* Scaling decisions are generally the same as in the LL&M algorithm; - * see jfdctint.c for more details. However, we choose to descale - * (right shift) multiplication products as soon as they are formed, - * rather than carrying additional fractional bits into subsequent additions. - * This compromises accuracy slightly, but it lets us save a few shifts. - * More importantly, 16-bit arithmetic is then adequate (for 8-bit samples) - * everywhere except in the multiplications proper; this saves a good deal - * of work on 16-bit-int machines. - * - * Again to save a few shifts, the intermediate results between pass 1 and - * pass 2 are not upscaled, but are represented only to integral precision. - * - * A final compromise is to represent the multiplicative constants to only - * 8 fractional bits, rather than 13. This saves some shifting work on some - * machines, and may also reduce the cost of multiplication (since there - * are fewer one-bits in the constants). - */ - -#define CONST_BITS 8 - - -/* Some C compilers fail to reduce "FIX(constant)" at compile time, thus - * causing a lot of useless floating-point operations at run time. - * To get around this we use the following pre-calculated constants. - * If you change CONST_BITS you may want to add appropriate values. - * (With a reasonable C compiler, you can just rely on the FIX() macro...) - */ - -#if CONST_BITS == 8 -#define FIX_0_382683433 ((INT32) 98) /* FIX(0.382683433) */ -#define FIX_0_541196100 ((INT32) 139) /* FIX(0.541196100) */ -#define FIX_0_707106781 ((INT32) 181) /* FIX(0.707106781) */ -#define FIX_1_306562965 ((INT32) 334) /* FIX(1.306562965) */ -#else -#define FIX_0_382683433 FIX(0.382683433) -#define FIX_0_541196100 FIX(0.541196100) -#define FIX_0_707106781 FIX(0.707106781) -#define FIX_1_306562965 FIX(1.306562965) -#endif - - -/* We can gain a little more speed, with a further compromise in accuracy, - * by omitting the addition in a descaling shift. This yields an incorrectly - * rounded result half the time... - */ - -#ifndef USE_ACCURATE_ROUNDING -#undef DESCALE -#define DESCALE(x,n) RIGHT_SHIFT(x, n) -#endif - - -/* Multiply a DCTELEM variable by an INT32 constant, and immediately - * descale to yield a DCTELEM result. - */ - -#define MULTIPLY(var,const) ((DCTELEM) DESCALE((var) * (const), CONST_BITS)) - - -/* - * Perform the forward DCT on one block of samples. - */ - -GLOBAL(void) -jpeg_fdct_ifast (DCTELEM * data) -{ - DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - DCTELEM tmp10, tmp11, tmp12, tmp13; - DCTELEM z1, z2, z3, z4, z5, z11, z13; - DCTELEM *dataptr; - int ctr; - SHIFT_TEMPS - - /* Pass 1: process rows. */ - - dataptr = data; - for (ctr = DCTSIZE-1; ctr >= 0; ctr--) { - tmp0 = dataptr[0] + dataptr[7]; - tmp7 = dataptr[0] - dataptr[7]; - tmp1 = dataptr[1] + dataptr[6]; - tmp6 = dataptr[1] - dataptr[6]; - tmp2 = dataptr[2] + dataptr[5]; - tmp5 = dataptr[2] - dataptr[5]; - tmp3 = dataptr[3] + dataptr[4]; - tmp4 = dataptr[3] - dataptr[4]; - - /* Even part */ - - tmp10 = tmp0 + tmp3; /* phase 2 */ - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - dataptr[0] = tmp10 + tmp11; /* phase 3 */ - dataptr[4] = tmp10 - tmp11; - - z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); /* c4 */ - dataptr[2] = tmp13 + z1; /* phase 5 */ - dataptr[6] = tmp13 - z1; - - /* Odd part */ - - tmp10 = tmp4 + tmp5; /* phase 2 */ - tmp11 = tmp5 + tmp6; - tmp12 = tmp6 + tmp7; - - /* The rotator is modified from fig 4-8 to avoid extra negations. */ - z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */ - z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */ - z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */ - z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */ - - z11 = tmp7 + z3; /* phase 5 */ - z13 = tmp7 - z3; - - dataptr[5] = z13 + z2; /* phase 6 */ - dataptr[3] = z13 - z2; - dataptr[1] = z11 + z4; - dataptr[7] = z11 - z4; - - dataptr += DCTSIZE; /* advance pointer to next row */ - } - - /* Pass 2: process columns. */ - - dataptr = data; - for (ctr = DCTSIZE-1; ctr >= 0; ctr--) { - tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7]; - tmp7 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*7]; - tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6]; - tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6]; - tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5]; - tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5]; - tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]; - tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4]; - - /* Even part */ - - tmp10 = tmp0 + tmp3; /* phase 2 */ - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - dataptr[DCTSIZE*0] = tmp10 + tmp11; /* phase 3 */ - dataptr[DCTSIZE*4] = tmp10 - tmp11; - - z1 = MULTIPLY(tmp12 + tmp13, FIX_0_707106781); /* c4 */ - dataptr[DCTSIZE*2] = tmp13 + z1; /* phase 5 */ - dataptr[DCTSIZE*6] = tmp13 - z1; - - /* Odd part */ - - tmp10 = tmp4 + tmp5; /* phase 2 */ - tmp11 = tmp5 + tmp6; - tmp12 = tmp6 + tmp7; - - /* The rotator is modified from fig 4-8 to avoid extra negations. */ - z5 = MULTIPLY(tmp10 - tmp12, FIX_0_382683433); /* c6 */ - z2 = MULTIPLY(tmp10, FIX_0_541196100) + z5; /* c2-c6 */ - z4 = MULTIPLY(tmp12, FIX_1_306562965) + z5; /* c2+c6 */ - z3 = MULTIPLY(tmp11, FIX_0_707106781); /* c4 */ - - z11 = tmp7 + z3; /* phase 5 */ - z13 = tmp7 - z3; - - dataptr[DCTSIZE*5] = z13 + z2; /* phase 6 */ - dataptr[DCTSIZE*3] = z13 - z2; - dataptr[DCTSIZE*1] = z11 + z4; - dataptr[DCTSIZE*7] = z11 - z4; - - dataptr++; /* advance pointer to next column */ - } -} - -#endif /* DCT_IFAST_SUPPORTED */ diff --git a/src/jpeg/jfdctint.c b/src/jpeg/jfdctint.c deleted file mode 100644 index 0a78b64aee..0000000000 --- a/src/jpeg/jfdctint.c +++ /dev/null @@ -1,283 +0,0 @@ -/* - * jfdctint.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a slow-but-accurate integer implementation of the - * forward DCT (Discrete Cosine Transform). - * - * A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT - * on each column. Direct algorithms are also available, but they are - * much more complex and seem not to be any faster when reduced to code. - * - * This implementation is based on an algorithm described in - * C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT - * Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics, - * Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991. - * The primary algorithm described there uses 11 multiplies and 29 adds. - * We use their alternate method with 12 multiplies and 32 adds. - * The advantage of this method is that no data path contains more than one - * multiplication; this allows a very simple and accurate implementation in - * scaled fixed-point arithmetic, with a minimal number of shifts. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef DCT_ISLOW_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* - * The poop on this scaling stuff is as follows: - * - * Each 1-D DCT step produces outputs which are a factor of sqrt(N) - * larger than the true DCT outputs. The final outputs are therefore - * a factor of N larger than desired; since N=8 this can be cured by - * a simple right shift at the end of the algorithm. The advantage of - * this arrangement is that we save two multiplications per 1-D DCT, - * because the y0 and y4 outputs need not be divided by sqrt(N). - * In the IJG code, this factor of 8 is removed by the quantization step - * (in jcdctmgr.c), NOT in this module. - * - * We have to do addition and subtraction of the integer inputs, which - * is no problem, and multiplication by fractional constants, which is - * a problem to do in integer arithmetic. We multiply all the constants - * by CONST_SCALE and convert them to integer constants (thus retaining - * CONST_BITS bits of precision in the constants). After doing a - * multiplication we have to divide the product by CONST_SCALE, with proper - * rounding, to produce the correct output. This division can be done - * cheaply as a right shift of CONST_BITS bits. We postpone shifting - * as long as possible so that partial sums can be added together with - * full fractional precision. - * - * The outputs of the first pass are scaled up by PASS1_BITS bits so that - * they are represented to better-than-integral precision. These outputs - * require BITS_IN_JSAMPLE + PASS1_BITS + 3 bits; this fits in a 16-bit word - * with the recommended scaling. (For 12-bit sample data, the intermediate - * array is INT32 anyway.) - * - * To avoid overflow of the 32-bit intermediate results in pass 2, we must - * have BITS_IN_JSAMPLE + CONST_BITS + PASS1_BITS <= 26. Error analysis - * shows that the values given below are the most effective. - */ - -#if BITS_IN_JSAMPLE == 8 -#define CONST_BITS 13 -#define PASS1_BITS 2 -#else -#define CONST_BITS 13 -#define PASS1_BITS 1 /* lose a little precision to avoid overflow */ -#endif - -/* Some C compilers fail to reduce "FIX(constant)" at compile time, thus - * causing a lot of useless floating-point operations at run time. - * To get around this we use the following pre-calculated constants. - * If you change CONST_BITS you may want to add appropriate values. - * (With a reasonable C compiler, you can just rely on the FIX() macro...) - */ - -#if CONST_BITS == 13 -#define FIX_0_298631336 ((INT32) 2446) /* FIX(0.298631336) */ -#define FIX_0_390180644 ((INT32) 3196) /* FIX(0.390180644) */ -#define FIX_0_541196100 ((INT32) 4433) /* FIX(0.541196100) */ -#define FIX_0_765366865 ((INT32) 6270) /* FIX(0.765366865) */ -#define FIX_0_899976223 ((INT32) 7373) /* FIX(0.899976223) */ -#define FIX_1_175875602 ((INT32) 9633) /* FIX(1.175875602) */ -#define FIX_1_501321110 ((INT32) 12299) /* FIX(1.501321110) */ -#define FIX_1_847759065 ((INT32) 15137) /* FIX(1.847759065) */ -#define FIX_1_961570560 ((INT32) 16069) /* FIX(1.961570560) */ -#define FIX_2_053119869 ((INT32) 16819) /* FIX(2.053119869) */ -#define FIX_2_562915447 ((INT32) 20995) /* FIX(2.562915447) */ -#define FIX_3_072711026 ((INT32) 25172) /* FIX(3.072711026) */ -#else -#define FIX_0_298631336 FIX(0.298631336) -#define FIX_0_390180644 FIX(0.390180644) -#define FIX_0_541196100 FIX(0.541196100) -#define FIX_0_765366865 FIX(0.765366865) -#define FIX_0_899976223 FIX(0.899976223) -#define FIX_1_175875602 FIX(1.175875602) -#define FIX_1_501321110 FIX(1.501321110) -#define FIX_1_847759065 FIX(1.847759065) -#define FIX_1_961570560 FIX(1.961570560) -#define FIX_2_053119869 FIX(2.053119869) -#define FIX_2_562915447 FIX(2.562915447) -#define FIX_3_072711026 FIX(3.072711026) -#endif - - -/* Multiply an INT32 variable by an INT32 constant to yield an INT32 result. - * For 8-bit samples with the recommended scaling, all the variable - * and constant values involved are no more than 16 bits wide, so a - * 16x16->32 bit multiply can be used instead of a full 32x32 multiply. - * For 12-bit samples, a full 32-bit multiplication will be needed. - */ - -#if BITS_IN_JSAMPLE == 8 -#define MULTIPLY(var,const) MULTIPLY16C16(var,const) -#else -#define MULTIPLY(var,const) ((var) * (const)) -#endif - - -/* - * Perform the forward DCT on one block of samples. - */ - -GLOBAL(void) -jpeg_fdct_islow (DCTELEM * data) -{ - INT32 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - INT32 tmp10, tmp11, tmp12, tmp13; - INT32 z1, z2, z3, z4, z5; - DCTELEM *dataptr; - int ctr; - SHIFT_TEMPS - - /* Pass 1: process rows. */ - /* Note results are scaled up by sqrt(8) compared to a true DCT; */ - /* furthermore, we scale the results by 2**PASS1_BITS. */ - - dataptr = data; - for (ctr = DCTSIZE-1; ctr >= 0; ctr--) { - tmp0 = dataptr[0] + dataptr[7]; - tmp7 = dataptr[0] - dataptr[7]; - tmp1 = dataptr[1] + dataptr[6]; - tmp6 = dataptr[1] - dataptr[6]; - tmp2 = dataptr[2] + dataptr[5]; - tmp5 = dataptr[2] - dataptr[5]; - tmp3 = dataptr[3] + dataptr[4]; - tmp4 = dataptr[3] - dataptr[4]; - - /* Even part per LL&M figure 1 --- note that published figure is faulty; - * rotator "sqrt(2)*c1" should be "sqrt(2)*c6". - */ - - tmp10 = tmp0 + tmp3; - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - dataptr[0] = (DCTELEM) ((tmp10 + tmp11) << PASS1_BITS); - dataptr[4] = (DCTELEM) ((tmp10 - tmp11) << PASS1_BITS); - - z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100); - dataptr[2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865), - CONST_BITS-PASS1_BITS); - dataptr[6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065), - CONST_BITS-PASS1_BITS); - - /* Odd part per figure 8 --- note paper omits factor of sqrt(2). - * cK represents cos(K*pi/16). - * i0..i3 in the paper are tmp4..tmp7 here. - */ - - z1 = tmp4 + tmp7; - z2 = tmp5 + tmp6; - z3 = tmp4 + tmp6; - z4 = tmp5 + tmp7; - z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */ - - tmp4 = MULTIPLY(tmp4, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */ - tmp5 = MULTIPLY(tmp5, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */ - tmp6 = MULTIPLY(tmp6, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */ - tmp7 = MULTIPLY(tmp7, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */ - z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */ - z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */ - z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */ - z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */ - - z3 += z5; - z4 += z5; - - dataptr[7] = (DCTELEM) DESCALE(tmp4 + z1 + z3, CONST_BITS-PASS1_BITS); - dataptr[5] = (DCTELEM) DESCALE(tmp5 + z2 + z4, CONST_BITS-PASS1_BITS); - dataptr[3] = (DCTELEM) DESCALE(tmp6 + z2 + z3, CONST_BITS-PASS1_BITS); - dataptr[1] = (DCTELEM) DESCALE(tmp7 + z1 + z4, CONST_BITS-PASS1_BITS); - - dataptr += DCTSIZE; /* advance pointer to next row */ - } - - /* Pass 2: process columns. - * We remove the PASS1_BITS scaling, but leave the results scaled up - * by an overall factor of 8. - */ - - dataptr = data; - for (ctr = DCTSIZE-1; ctr >= 0; ctr--) { - tmp0 = dataptr[DCTSIZE*0] + dataptr[DCTSIZE*7]; - tmp7 = dataptr[DCTSIZE*0] - dataptr[DCTSIZE*7]; - tmp1 = dataptr[DCTSIZE*1] + dataptr[DCTSIZE*6]; - tmp6 = dataptr[DCTSIZE*1] - dataptr[DCTSIZE*6]; - tmp2 = dataptr[DCTSIZE*2] + dataptr[DCTSIZE*5]; - tmp5 = dataptr[DCTSIZE*2] - dataptr[DCTSIZE*5]; - tmp3 = dataptr[DCTSIZE*3] + dataptr[DCTSIZE*4]; - tmp4 = dataptr[DCTSIZE*3] - dataptr[DCTSIZE*4]; - - /* Even part per LL&M figure 1 --- note that published figure is faulty; - * rotator "sqrt(2)*c1" should be "sqrt(2)*c6". - */ - - tmp10 = tmp0 + tmp3; - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - dataptr[DCTSIZE*0] = (DCTELEM) DESCALE(tmp10 + tmp11, PASS1_BITS); - dataptr[DCTSIZE*4] = (DCTELEM) DESCALE(tmp10 - tmp11, PASS1_BITS); - - z1 = MULTIPLY(tmp12 + tmp13, FIX_0_541196100); - dataptr[DCTSIZE*2] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp13, FIX_0_765366865), - CONST_BITS+PASS1_BITS); - dataptr[DCTSIZE*6] = (DCTELEM) DESCALE(z1 + MULTIPLY(tmp12, - FIX_1_847759065), - CONST_BITS+PASS1_BITS); - - /* Odd part per figure 8 --- note paper omits factor of sqrt(2). - * cK represents cos(K*pi/16). - * i0..i3 in the paper are tmp4..tmp7 here. - */ - - z1 = tmp4 + tmp7; - z2 = tmp5 + tmp6; - z3 = tmp4 + tmp6; - z4 = tmp5 + tmp7; - z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */ - - tmp4 = MULTIPLY(tmp4, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */ - tmp5 = MULTIPLY(tmp5, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */ - tmp6 = MULTIPLY(tmp6, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */ - tmp7 = MULTIPLY(tmp7, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */ - z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */ - z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */ - z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */ - z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */ - - z3 += z5; - z4 += z5; - - dataptr[DCTSIZE*7] = (DCTELEM) DESCALE(tmp4 + z1 + z3, - CONST_BITS+PASS1_BITS); - dataptr[DCTSIZE*5] = (DCTELEM) DESCALE(tmp5 + z2 + z4, - CONST_BITS+PASS1_BITS); - dataptr[DCTSIZE*3] = (DCTELEM) DESCALE(tmp6 + z2 + z3, - CONST_BITS+PASS1_BITS); - dataptr[DCTSIZE*1] = (DCTELEM) DESCALE(tmp7 + z1 + z4, - CONST_BITS+PASS1_BITS); - - dataptr++; /* advance pointer to next column */ - } -} - -#endif /* DCT_ISLOW_SUPPORTED */ diff --git a/src/jpeg/jidctflt.c b/src/jpeg/jidctflt.c deleted file mode 100644 index 0188ce3dfc..0000000000 --- a/src/jpeg/jidctflt.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * jidctflt.c - * - * Copyright (C) 1994-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a floating-point implementation of the - * inverse DCT (Discrete Cosine Transform). In the IJG code, this routine - * must also perform dequantization of the input coefficients. - * - * This implementation should be more accurate than either of the integer - * IDCT implementations. However, it may not give the same results on all - * machines because of differences in roundoff behavior. Speed will depend - * on the hardware's floating point capacity. - * - * A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT - * on each row (or vice versa, but it's more convenient to emit a row at - * a time). Direct algorithms are also available, but they are much more - * complex and seem not to be any faster when reduced to code. - * - * This implementation is based on Arai, Agui, and Nakajima's algorithm for - * scaled DCT. Their original paper (Trans. IEICE E-71(11):1095) is in - * Japanese, but the algorithm is described in the Pennebaker & Mitchell - * JPEG textbook (see REFERENCES section in file README). The following code - * is based directly on figure 4-8 in P&M. - * While an 8-point DCT cannot be done in less than 11 multiplies, it is - * possible to arrange the computation so that many of the multiplies are - * simple scalings of the final outputs. These multiplies can then be - * folded into the multiplications or divisions by the JPEG quantization - * table entries. The AA&N method leaves only 5 multiplies and 29 adds - * to be done in the DCT itself. - * The primary disadvantage of this method is that with a fixed-point - * implementation, accuracy is lost due to imprecise representation of the - * scaled quantization values. However, that problem does not arise if - * we use floating point arithmetic. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef DCT_FLOAT_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* Dequantize a coefficient by multiplying it by the multiplier-table - * entry; produce a float result. - */ - -#define DEQUANTIZE(coef,quantval) (((FAST_FLOAT) (coef)) * (quantval)) - - -/* - * Perform dequantization and inverse DCT on one block of coefficients. - */ - -GLOBAL(void) -jpeg_idct_float (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col) -{ - FAST_FLOAT tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - FAST_FLOAT tmp10, tmp11, tmp12, tmp13; - FAST_FLOAT z5, z10, z11, z12, z13; - JCOEFPTR inptr; - FLOAT_MULT_TYPE * quantptr; - FAST_FLOAT * wsptr; - JSAMPROW outptr; - JSAMPLE *range_limit = IDCT_range_limit(cinfo); - int ctr; - FAST_FLOAT workspace[DCTSIZE2]; /* buffers data between passes */ - SHIFT_TEMPS - - /* Pass 1: process columns from input, store into work array. */ - - inptr = coef_block; - quantptr = (FLOAT_MULT_TYPE *) compptr->dct_table; - wsptr = workspace; - for (ctr = DCTSIZE; ctr > 0; ctr--) { - /* Due to quantization, we will usually find that many of the input - * coefficients are zero, especially the AC terms. We can exploit this - * by short-circuiting the IDCT calculation for any column in which all - * the AC terms are zero. In that case each output is equal to the - * DC coefficient (with scale factor as needed). - * With typical images and quantization tables, half or more of the - * column DCT calculations can be simplified this way. - */ - - if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*2] == 0 && - inptr[DCTSIZE*3] == 0 && inptr[DCTSIZE*4] == 0 && - inptr[DCTSIZE*5] == 0 && inptr[DCTSIZE*6] == 0 && - inptr[DCTSIZE*7] == 0) { - /* AC terms all zero */ - FAST_FLOAT dcval = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - - wsptr[DCTSIZE*0] = dcval; - wsptr[DCTSIZE*1] = dcval; - wsptr[DCTSIZE*2] = dcval; - wsptr[DCTSIZE*3] = dcval; - wsptr[DCTSIZE*4] = dcval; - wsptr[DCTSIZE*5] = dcval; - wsptr[DCTSIZE*6] = dcval; - wsptr[DCTSIZE*7] = dcval; - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - continue; - } - - /* Even part */ - - tmp0 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - tmp1 = DEQUANTIZE(inptr[DCTSIZE*2], quantptr[DCTSIZE*2]); - tmp2 = DEQUANTIZE(inptr[DCTSIZE*4], quantptr[DCTSIZE*4]); - tmp3 = DEQUANTIZE(inptr[DCTSIZE*6], quantptr[DCTSIZE*6]); - - tmp10 = tmp0 + tmp2; /* phase 3 */ - tmp11 = tmp0 - tmp2; - - tmp13 = tmp1 + tmp3; /* phases 5-3 */ - tmp12 = (tmp1 - tmp3) * ((FAST_FLOAT) 1.414213562) - tmp13; /* 2*c4 */ - - tmp0 = tmp10 + tmp13; /* phase 2 */ - tmp3 = tmp10 - tmp13; - tmp1 = tmp11 + tmp12; - tmp2 = tmp11 - tmp12; - - /* Odd part */ - - tmp4 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]); - tmp5 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]); - tmp6 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]); - tmp7 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]); - - z13 = tmp6 + tmp5; /* phase 6 */ - z10 = tmp6 - tmp5; - z11 = tmp4 + tmp7; - z12 = tmp4 - tmp7; - - tmp7 = z11 + z13; /* phase 5 */ - tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562); /* 2*c4 */ - - z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065); /* 2*c2 */ - tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5; /* 2*(c2-c6) */ - tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5; /* -2*(c2+c6) */ - - tmp6 = tmp12 - tmp7; /* phase 2 */ - tmp5 = tmp11 - tmp6; - tmp4 = tmp10 + tmp5; - - wsptr[DCTSIZE*0] = tmp0 + tmp7; - wsptr[DCTSIZE*7] = tmp0 - tmp7; - wsptr[DCTSIZE*1] = tmp1 + tmp6; - wsptr[DCTSIZE*6] = tmp1 - tmp6; - wsptr[DCTSIZE*2] = tmp2 + tmp5; - wsptr[DCTSIZE*5] = tmp2 - tmp5; - wsptr[DCTSIZE*4] = tmp3 + tmp4; - wsptr[DCTSIZE*3] = tmp3 - tmp4; - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - } - - /* Pass 2: process rows from work array, store into output array. */ - /* Note that we must descale the results by a factor of 8 == 2**3. */ - - wsptr = workspace; - for (ctr = 0; ctr < DCTSIZE; ctr++) { - outptr = output_buf[ctr] + output_col; - /* Rows of zeroes can be exploited in the same way as we did with columns. - * However, the column calculation has created many nonzero AC terms, so - * the simplification applies less often (typically 5% to 10% of the time). - * And testing floats for zero is relatively expensive, so we don't bother. - */ - - /* Even part */ - - tmp10 = wsptr[0] + wsptr[4]; - tmp11 = wsptr[0] - wsptr[4]; - - tmp13 = wsptr[2] + wsptr[6]; - tmp12 = (wsptr[2] - wsptr[6]) * ((FAST_FLOAT) 1.414213562) - tmp13; - - tmp0 = tmp10 + tmp13; - tmp3 = tmp10 - tmp13; - tmp1 = tmp11 + tmp12; - tmp2 = tmp11 - tmp12; - - /* Odd part */ - - z13 = wsptr[5] + wsptr[3]; - z10 = wsptr[5] - wsptr[3]; - z11 = wsptr[1] + wsptr[7]; - z12 = wsptr[1] - wsptr[7]; - - tmp7 = z11 + z13; - tmp11 = (z11 - z13) * ((FAST_FLOAT) 1.414213562); - - z5 = (z10 + z12) * ((FAST_FLOAT) 1.847759065); /* 2*c2 */ - tmp10 = ((FAST_FLOAT) 1.082392200) * z12 - z5; /* 2*(c2-c6) */ - tmp12 = ((FAST_FLOAT) -2.613125930) * z10 + z5; /* -2*(c2+c6) */ - - tmp6 = tmp12 - tmp7; - tmp5 = tmp11 - tmp6; - tmp4 = tmp10 + tmp5; - - /* Final output stage: scale down by a factor of 8 and range-limit */ - - outptr[0] = range_limit[(int) DESCALE((INT32) (tmp0 + tmp7), 3) - & RANGE_MASK]; - outptr[7] = range_limit[(int) DESCALE((INT32) (tmp0 - tmp7), 3) - & RANGE_MASK]; - outptr[1] = range_limit[(int) DESCALE((INT32) (tmp1 + tmp6), 3) - & RANGE_MASK]; - outptr[6] = range_limit[(int) DESCALE((INT32) (tmp1 - tmp6), 3) - & RANGE_MASK]; - outptr[2] = range_limit[(int) DESCALE((INT32) (tmp2 + tmp5), 3) - & RANGE_MASK]; - outptr[5] = range_limit[(int) DESCALE((INT32) (tmp2 - tmp5), 3) - & RANGE_MASK]; - outptr[4] = range_limit[(int) DESCALE((INT32) (tmp3 + tmp4), 3) - & RANGE_MASK]; - outptr[3] = range_limit[(int) DESCALE((INT32) (tmp3 - tmp4), 3) - & RANGE_MASK]; - - wsptr += DCTSIZE; /* advance pointer to next row */ - } -} - -#endif /* DCT_FLOAT_SUPPORTED */ diff --git a/src/jpeg/jidctfst.c b/src/jpeg/jidctfst.c deleted file mode 100644 index dba4216fb9..0000000000 --- a/src/jpeg/jidctfst.c +++ /dev/null @@ -1,368 +0,0 @@ -/* - * jidctfst.c - * - * Copyright (C) 1994-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a fast, not so accurate integer implementation of the - * inverse DCT (Discrete Cosine Transform). In the IJG code, this routine - * must also perform dequantization of the input coefficients. - * - * A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT - * on each row (or vice versa, but it's more convenient to emit a row at - * a time). Direct algorithms are also available, but they are much more - * complex and seem not to be any faster when reduced to code. - * - * This implementation is based on Arai, Agui, and Nakajima's algorithm for - * scaled DCT. Their original paper (Trans. IEICE E-71(11):1095) is in - * Japanese, but the algorithm is described in the Pennebaker & Mitchell - * JPEG textbook (see REFERENCES section in file README). The following code - * is based directly on figure 4-8 in P&M. - * While an 8-point DCT cannot be done in less than 11 multiplies, it is - * possible to arrange the computation so that many of the multiplies are - * simple scalings of the final outputs. These multiplies can then be - * folded into the multiplications or divisions by the JPEG quantization - * table entries. The AA&N method leaves only 5 multiplies and 29 adds - * to be done in the DCT itself. - * The primary disadvantage of this method is that with fixed-point math, - * accuracy is lost due to imprecise representation of the scaled - * quantization values. The smaller the quantization table entry, the less - * precise the scaled value, so this implementation does worse with high- - * quality-setting files than with low-quality ones. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef DCT_IFAST_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* Scaling decisions are generally the same as in the LL&M algorithm; - * see jidctint.c for more details. However, we choose to descale - * (right shift) multiplication products as soon as they are formed, - * rather than carrying additional fractional bits into subsequent additions. - * This compromises accuracy slightly, but it lets us save a few shifts. - * More importantly, 16-bit arithmetic is then adequate (for 8-bit samples) - * everywhere except in the multiplications proper; this saves a good deal - * of work on 16-bit-int machines. - * - * The dequantized coefficients are not integers because the AA&N scaling - * factors have been incorporated. We represent them scaled up by PASS1_BITS, - * so that the first and second IDCT rounds have the same input scaling. - * For 8-bit JSAMPLEs, we choose IFAST_SCALE_BITS = PASS1_BITS so as to - * avoid a descaling shift; this compromises accuracy rather drastically - * for small quantization table entries, but it saves a lot of shifts. - * For 12-bit JSAMPLEs, there's no hope of using 16x16 multiplies anyway, - * so we use a much larger scaling factor to preserve accuracy. - * - * A final compromise is to represent the multiplicative constants to only - * 8 fractional bits, rather than 13. This saves some shifting work on some - * machines, and may also reduce the cost of multiplication (since there - * are fewer one-bits in the constants). - */ - -#if BITS_IN_JSAMPLE == 8 -#define CONST_BITS 8 -#define PASS1_BITS 2 -#else -#define CONST_BITS 8 -#define PASS1_BITS 1 /* lose a little precision to avoid overflow */ -#endif - -/* Some C compilers fail to reduce "FIX(constant)" at compile time, thus - * causing a lot of useless floating-point operations at run time. - * To get around this we use the following pre-calculated constants. - * If you change CONST_BITS you may want to add appropriate values. - * (With a reasonable C compiler, you can just rely on the FIX() macro...) - */ - -#if CONST_BITS == 8 -#define FIX_1_082392200 ((INT32) 277) /* FIX(1.082392200) */ -#define FIX_1_414213562 ((INT32) 362) /* FIX(1.414213562) */ -#define FIX_1_847759065 ((INT32) 473) /* FIX(1.847759065) */ -#define FIX_2_613125930 ((INT32) 669) /* FIX(2.613125930) */ -#else -#define FIX_1_082392200 FIX(1.082392200) -#define FIX_1_414213562 FIX(1.414213562) -#define FIX_1_847759065 FIX(1.847759065) -#define FIX_2_613125930 FIX(2.613125930) -#endif - - -/* We can gain a little more speed, with a further compromise in accuracy, - * by omitting the addition in a descaling shift. This yields an incorrectly - * rounded result half the time... - */ - -#ifndef USE_ACCURATE_ROUNDING -#undef DESCALE -#define DESCALE(x,n) RIGHT_SHIFT(x, n) -#endif - - -/* Multiply a DCTELEM variable by an INT32 constant, and immediately - * descale to yield a DCTELEM result. - */ - -#define MULTIPLY(var,const) ((DCTELEM) DESCALE((var) * (const), CONST_BITS)) - - -/* Dequantize a coefficient by multiplying it by the multiplier-table - * entry; produce a DCTELEM result. For 8-bit data a 16x16->16 - * multiplication will do. For 12-bit data, the multiplier table is - * declared INT32, so a 32-bit multiply will be used. - */ - -#if BITS_IN_JSAMPLE == 8 -#define DEQUANTIZE(coef,quantval) (((IFAST_MULT_TYPE) (coef)) * (quantval)) -#else -#define DEQUANTIZE(coef,quantval) \ - DESCALE((coef)*(quantval), IFAST_SCALE_BITS-PASS1_BITS) -#endif - - -/* Like DESCALE, but applies to a DCTELEM and produces an int. - * We assume that int right shift is unsigned if INT32 right shift is. - */ - -#ifdef RIGHT_SHIFT_IS_UNSIGNED -#define ISHIFT_TEMPS DCTELEM ishift_temp; -#if BITS_IN_JSAMPLE == 8 -#define DCTELEMBITS 16 /* DCTELEM may be 16 or 32 bits */ -#else -#define DCTELEMBITS 32 /* DCTELEM must be 32 bits */ -#endif -#define IRIGHT_SHIFT(x,shft) \ - ((ishift_temp = (x)) < 0 ? \ - (ishift_temp >> (shft)) | ((~((DCTELEM) 0)) << (DCTELEMBITS-(shft))) : \ - (ishift_temp >> (shft))) -#else -#define ISHIFT_TEMPS -#define IRIGHT_SHIFT(x,shft) ((x) >> (shft)) -#endif - -#ifdef USE_ACCURATE_ROUNDING -#define IDESCALE(x,n) ((int) IRIGHT_SHIFT((x) + (1 << ((n)-1)), n)) -#else -#define IDESCALE(x,n) ((int) IRIGHT_SHIFT(x, n)) -#endif - - -/* - * Perform dequantization and inverse DCT on one block of coefficients. - */ - -GLOBAL(void) -jpeg_idct_ifast (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col) -{ - DCTELEM tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; - DCTELEM tmp10, tmp11, tmp12, tmp13; - DCTELEM z5, z10, z11, z12, z13; - JCOEFPTR inptr; - IFAST_MULT_TYPE * quantptr; - int * wsptr; - JSAMPROW outptr; - JSAMPLE *range_limit = IDCT_range_limit(cinfo); - int ctr; - int workspace[DCTSIZE2]; /* buffers data between passes */ - SHIFT_TEMPS /* for DESCALE */ - ISHIFT_TEMPS /* for IDESCALE */ - - /* Pass 1: process columns from input, store into work array. */ - - inptr = coef_block; - quantptr = (IFAST_MULT_TYPE *) compptr->dct_table; - wsptr = workspace; - for (ctr = DCTSIZE; ctr > 0; ctr--) { - /* Due to quantization, we will usually find that many of the input - * coefficients are zero, especially the AC terms. We can exploit this - * by short-circuiting the IDCT calculation for any column in which all - * the AC terms are zero. In that case each output is equal to the - * DC coefficient (with scale factor as needed). - * With typical images and quantization tables, half or more of the - * column DCT calculations can be simplified this way. - */ - - if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*2] == 0 && - inptr[DCTSIZE*3] == 0 && inptr[DCTSIZE*4] == 0 && - inptr[DCTSIZE*5] == 0 && inptr[DCTSIZE*6] == 0 && - inptr[DCTSIZE*7] == 0) { - /* AC terms all zero */ - int dcval = (int) DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - - wsptr[DCTSIZE*0] = dcval; - wsptr[DCTSIZE*1] = dcval; - wsptr[DCTSIZE*2] = dcval; - wsptr[DCTSIZE*3] = dcval; - wsptr[DCTSIZE*4] = dcval; - wsptr[DCTSIZE*5] = dcval; - wsptr[DCTSIZE*6] = dcval; - wsptr[DCTSIZE*7] = dcval; - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - continue; - } - - /* Even part */ - - tmp0 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - tmp1 = DEQUANTIZE(inptr[DCTSIZE*2], quantptr[DCTSIZE*2]); - tmp2 = DEQUANTIZE(inptr[DCTSIZE*4], quantptr[DCTSIZE*4]); - tmp3 = DEQUANTIZE(inptr[DCTSIZE*6], quantptr[DCTSIZE*6]); - - tmp10 = tmp0 + tmp2; /* phase 3 */ - tmp11 = tmp0 - tmp2; - - tmp13 = tmp1 + tmp3; /* phases 5-3 */ - tmp12 = MULTIPLY(tmp1 - tmp3, FIX_1_414213562) - tmp13; /* 2*c4 */ - - tmp0 = tmp10 + tmp13; /* phase 2 */ - tmp3 = tmp10 - tmp13; - tmp1 = tmp11 + tmp12; - tmp2 = tmp11 - tmp12; - - /* Odd part */ - - tmp4 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]); - tmp5 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]); - tmp6 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]); - tmp7 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]); - - z13 = tmp6 + tmp5; /* phase 6 */ - z10 = tmp6 - tmp5; - z11 = tmp4 + tmp7; - z12 = tmp4 - tmp7; - - tmp7 = z11 + z13; /* phase 5 */ - tmp11 = MULTIPLY(z11 - z13, FIX_1_414213562); /* 2*c4 */ - - z5 = MULTIPLY(z10 + z12, FIX_1_847759065); /* 2*c2 */ - tmp10 = MULTIPLY(z12, FIX_1_082392200) - z5; /* 2*(c2-c6) */ - tmp12 = MULTIPLY(z10, - FIX_2_613125930) + z5; /* -2*(c2+c6) */ - - tmp6 = tmp12 - tmp7; /* phase 2 */ - tmp5 = tmp11 - tmp6; - tmp4 = tmp10 + tmp5; - - wsptr[DCTSIZE*0] = (int) (tmp0 + tmp7); - wsptr[DCTSIZE*7] = (int) (tmp0 - tmp7); - wsptr[DCTSIZE*1] = (int) (tmp1 + tmp6); - wsptr[DCTSIZE*6] = (int) (tmp1 - tmp6); - wsptr[DCTSIZE*2] = (int) (tmp2 + tmp5); - wsptr[DCTSIZE*5] = (int) (tmp2 - tmp5); - wsptr[DCTSIZE*4] = (int) (tmp3 + tmp4); - wsptr[DCTSIZE*3] = (int) (tmp3 - tmp4); - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - } - - /* Pass 2: process rows from work array, store into output array. */ - /* Note that we must descale the results by a factor of 8 == 2**3, */ - /* and also undo the PASS1_BITS scaling. */ - - wsptr = workspace; - for (ctr = 0; ctr < DCTSIZE; ctr++) { - outptr = output_buf[ctr] + output_col; - /* Rows of zeroes can be exploited in the same way as we did with columns. - * However, the column calculation has created many nonzero AC terms, so - * the simplification applies less often (typically 5% to 10% of the time). - * On machines with very fast multiplication, it's possible that the - * test takes more time than it's worth. In that case this section - * may be commented out. - */ - -#ifndef NO_ZERO_ROW_TEST - if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 && wsptr[4] == 0 && - wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) { - /* AC terms all zero */ - JSAMPLE dcval = range_limit[IDESCALE(wsptr[0], PASS1_BITS+3) - & RANGE_MASK]; - - outptr[0] = dcval; - outptr[1] = dcval; - outptr[2] = dcval; - outptr[3] = dcval; - outptr[4] = dcval; - outptr[5] = dcval; - outptr[6] = dcval; - outptr[7] = dcval; - - wsptr += DCTSIZE; /* advance pointer to next row */ - continue; - } -#endif - - /* Even part */ - - tmp10 = ((DCTELEM) wsptr[0] + (DCTELEM) wsptr[4]); - tmp11 = ((DCTELEM) wsptr[0] - (DCTELEM) wsptr[4]); - - tmp13 = ((DCTELEM) wsptr[2] + (DCTELEM) wsptr[6]); - tmp12 = MULTIPLY((DCTELEM) wsptr[2] - (DCTELEM) wsptr[6], FIX_1_414213562) - - tmp13; - - tmp0 = tmp10 + tmp13; - tmp3 = tmp10 - tmp13; - tmp1 = tmp11 + tmp12; - tmp2 = tmp11 - tmp12; - - /* Odd part */ - - z13 = (DCTELEM) wsptr[5] + (DCTELEM) wsptr[3]; - z10 = (DCTELEM) wsptr[5] - (DCTELEM) wsptr[3]; - z11 = (DCTELEM) wsptr[1] + (DCTELEM) wsptr[7]; - z12 = (DCTELEM) wsptr[1] - (DCTELEM) wsptr[7]; - - tmp7 = z11 + z13; /* phase 5 */ - tmp11 = MULTIPLY(z11 - z13, FIX_1_414213562); /* 2*c4 */ - - z5 = MULTIPLY(z10 + z12, FIX_1_847759065); /* 2*c2 */ - tmp10 = MULTIPLY(z12, FIX_1_082392200) - z5; /* 2*(c2-c6) */ - tmp12 = MULTIPLY(z10, - FIX_2_613125930) + z5; /* -2*(c2+c6) */ - - tmp6 = tmp12 - tmp7; /* phase 2 */ - tmp5 = tmp11 - tmp6; - tmp4 = tmp10 + tmp5; - - /* Final output stage: scale down by a factor of 8 and range-limit */ - - outptr[0] = range_limit[IDESCALE(tmp0 + tmp7, PASS1_BITS+3) - & RANGE_MASK]; - outptr[7] = range_limit[IDESCALE(tmp0 - tmp7, PASS1_BITS+3) - & RANGE_MASK]; - outptr[1] = range_limit[IDESCALE(tmp1 + tmp6, PASS1_BITS+3) - & RANGE_MASK]; - outptr[6] = range_limit[IDESCALE(tmp1 - tmp6, PASS1_BITS+3) - & RANGE_MASK]; - outptr[2] = range_limit[IDESCALE(tmp2 + tmp5, PASS1_BITS+3) - & RANGE_MASK]; - outptr[5] = range_limit[IDESCALE(tmp2 - tmp5, PASS1_BITS+3) - & RANGE_MASK]; - outptr[4] = range_limit[IDESCALE(tmp3 + tmp4, PASS1_BITS+3) - & RANGE_MASK]; - outptr[3] = range_limit[IDESCALE(tmp3 - tmp4, PASS1_BITS+3) - & RANGE_MASK]; - - wsptr += DCTSIZE; /* advance pointer to next row */ - } -} - -#endif /* DCT_IFAST_SUPPORTED */ diff --git a/src/jpeg/jidctint.c b/src/jpeg/jidctint.c deleted file mode 100644 index a72b3207ca..0000000000 --- a/src/jpeg/jidctint.c +++ /dev/null @@ -1,389 +0,0 @@ -/* - * jidctint.c - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a slow-but-accurate integer implementation of the - * inverse DCT (Discrete Cosine Transform). In the IJG code, this routine - * must also perform dequantization of the input coefficients. - * - * A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT - * on each row (or vice versa, but it's more convenient to emit a row at - * a time). Direct algorithms are also available, but they are much more - * complex and seem not to be any faster when reduced to code. - * - * This implementation is based on an algorithm described in - * C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT - * Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics, - * Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991. - * The primary algorithm described there uses 11 multiplies and 29 adds. - * We use their alternate method with 12 multiplies and 32 adds. - * The advantage of this method is that no data path contains more than one - * multiplication; this allows a very simple and accurate implementation in - * scaled fixed-point arithmetic, with a minimal number of shifts. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef DCT_ISLOW_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* - * The poop on this scaling stuff is as follows: - * - * Each 1-D IDCT step produces outputs which are a factor of sqrt(N) - * larger than the true IDCT outputs. The final outputs are therefore - * a factor of N larger than desired; since N=8 this can be cured by - * a simple right shift at the end of the algorithm. The advantage of - * this arrangement is that we save two multiplications per 1-D IDCT, - * because the y0 and y4 inputs need not be divided by sqrt(N). - * - * We have to do addition and subtraction of the integer inputs, which - * is no problem, and multiplication by fractional constants, which is - * a problem to do in integer arithmetic. We multiply all the constants - * by CONST_SCALE and convert them to integer constants (thus retaining - * CONST_BITS bits of precision in the constants). After doing a - * multiplication we have to divide the product by CONST_SCALE, with proper - * rounding, to produce the correct output. This division can be done - * cheaply as a right shift of CONST_BITS bits. We postpone shifting - * as long as possible so that partial sums can be added together with - * full fractional precision. - * - * The outputs of the first pass are scaled up by PASS1_BITS bits so that - * they are represented to better-than-integral precision. These outputs - * require BITS_IN_JSAMPLE + PASS1_BITS + 3 bits; this fits in a 16-bit word - * with the recommended scaling. (To scale up 12-bit sample data further, an - * intermediate INT32 array would be needed.) - * - * To avoid overflow of the 32-bit intermediate results in pass 2, we must - * have BITS_IN_JSAMPLE + CONST_BITS + PASS1_BITS <= 26. Error analysis - * shows that the values given below are the most effective. - */ - -#if BITS_IN_JSAMPLE == 8 -#define CONST_BITS 13 -#define PASS1_BITS 2 -#else -#define CONST_BITS 13 -#define PASS1_BITS 1 /* lose a little precision to avoid overflow */ -#endif - -/* Some C compilers fail to reduce "FIX(constant)" at compile time, thus - * causing a lot of useless floating-point operations at run time. - * To get around this we use the following pre-calculated constants. - * If you change CONST_BITS you may want to add appropriate values. - * (With a reasonable C compiler, you can just rely on the FIX() macro...) - */ - -#if CONST_BITS == 13 -#define FIX_0_298631336 ((INT32) 2446) /* FIX(0.298631336) */ -#define FIX_0_390180644 ((INT32) 3196) /* FIX(0.390180644) */ -#define FIX_0_541196100 ((INT32) 4433) /* FIX(0.541196100) */ -#define FIX_0_765366865 ((INT32) 6270) /* FIX(0.765366865) */ -#define FIX_0_899976223 ((INT32) 7373) /* FIX(0.899976223) */ -#define FIX_1_175875602 ((INT32) 9633) /* FIX(1.175875602) */ -#define FIX_1_501321110 ((INT32) 12299) /* FIX(1.501321110) */ -#define FIX_1_847759065 ((INT32) 15137) /* FIX(1.847759065) */ -#define FIX_1_961570560 ((INT32) 16069) /* FIX(1.961570560) */ -#define FIX_2_053119869 ((INT32) 16819) /* FIX(2.053119869) */ -#define FIX_2_562915447 ((INT32) 20995) /* FIX(2.562915447) */ -#define FIX_3_072711026 ((INT32) 25172) /* FIX(3.072711026) */ -#else -#define FIX_0_298631336 FIX(0.298631336) -#define FIX_0_390180644 FIX(0.390180644) -#define FIX_0_541196100 FIX(0.541196100) -#define FIX_0_765366865 FIX(0.765366865) -#define FIX_0_899976223 FIX(0.899976223) -#define FIX_1_175875602 FIX(1.175875602) -#define FIX_1_501321110 FIX(1.501321110) -#define FIX_1_847759065 FIX(1.847759065) -#define FIX_1_961570560 FIX(1.961570560) -#define FIX_2_053119869 FIX(2.053119869) -#define FIX_2_562915447 FIX(2.562915447) -#define FIX_3_072711026 FIX(3.072711026) -#endif - - -/* Multiply an INT32 variable by an INT32 constant to yield an INT32 result. - * For 8-bit samples with the recommended scaling, all the variable - * and constant values involved are no more than 16 bits wide, so a - * 16x16->32 bit multiply can be used instead of a full 32x32 multiply. - * For 12-bit samples, a full 32-bit multiplication will be needed. - */ - -#if BITS_IN_JSAMPLE == 8 -#define MULTIPLY(var,const) MULTIPLY16C16(var,const) -#else -#define MULTIPLY(var,const) ((var) * (const)) -#endif - - -/* Dequantize a coefficient by multiplying it by the multiplier-table - * entry; produce an int result. In this module, both inputs and result - * are 16 bits or less, so either int or short multiply will work. - */ - -#define DEQUANTIZE(coef,quantval) (((ISLOW_MULT_TYPE) (coef)) * (quantval)) - - -/* - * Perform dequantization and inverse DCT on one block of coefficients. - */ - -GLOBAL(void) -jpeg_idct_islow (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col) -{ - INT32 tmp0, tmp1, tmp2, tmp3; - INT32 tmp10, tmp11, tmp12, tmp13; - INT32 z1, z2, z3, z4, z5; - JCOEFPTR inptr; - ISLOW_MULT_TYPE * quantptr; - int * wsptr; - JSAMPROW outptr; - JSAMPLE *range_limit = IDCT_range_limit(cinfo); - int ctr; - int workspace[DCTSIZE2]; /* buffers data between passes */ - SHIFT_TEMPS - - /* Pass 1: process columns from input, store into work array. */ - /* Note results are scaled up by sqrt(8) compared to a true IDCT; */ - /* furthermore, we scale the results by 2**PASS1_BITS. */ - - inptr = coef_block; - quantptr = (ISLOW_MULT_TYPE *) compptr->dct_table; - wsptr = workspace; - for (ctr = DCTSIZE; ctr > 0; ctr--) { - /* Due to quantization, we will usually find that many of the input - * coefficients are zero, especially the AC terms. We can exploit this - * by short-circuiting the IDCT calculation for any column in which all - * the AC terms are zero. In that case each output is equal to the - * DC coefficient (with scale factor as needed). - * With typical images and quantization tables, half or more of the - * column DCT calculations can be simplified this way. - */ - - if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*2] == 0 && - inptr[DCTSIZE*3] == 0 && inptr[DCTSIZE*4] == 0 && - inptr[DCTSIZE*5] == 0 && inptr[DCTSIZE*6] == 0 && - inptr[DCTSIZE*7] == 0) { - /* AC terms all zero */ - int dcval = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]) << PASS1_BITS; - - wsptr[DCTSIZE*0] = dcval; - wsptr[DCTSIZE*1] = dcval; - wsptr[DCTSIZE*2] = dcval; - wsptr[DCTSIZE*3] = dcval; - wsptr[DCTSIZE*4] = dcval; - wsptr[DCTSIZE*5] = dcval; - wsptr[DCTSIZE*6] = dcval; - wsptr[DCTSIZE*7] = dcval; - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - continue; - } - - /* Even part: reverse the even part of the forward DCT. */ - /* The rotator is sqrt(2)*c(-6). */ - - z2 = DEQUANTIZE(inptr[DCTSIZE*2], quantptr[DCTSIZE*2]); - z3 = DEQUANTIZE(inptr[DCTSIZE*6], quantptr[DCTSIZE*6]); - - z1 = MULTIPLY(z2 + z3, FIX_0_541196100); - tmp2 = z1 + MULTIPLY(z3, - FIX_1_847759065); - tmp3 = z1 + MULTIPLY(z2, FIX_0_765366865); - - z2 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - z3 = DEQUANTIZE(inptr[DCTSIZE*4], quantptr[DCTSIZE*4]); - - tmp0 = (z2 + z3) << CONST_BITS; - tmp1 = (z2 - z3) << CONST_BITS; - - tmp10 = tmp0 + tmp3; - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - /* Odd part per figure 8; the matrix is unitary and hence its - * transpose is its inverse. i0..i3 are y7,y5,y3,y1 respectively. - */ - - tmp0 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]); - tmp1 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]); - tmp2 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]); - tmp3 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]); - - z1 = tmp0 + tmp3; - z2 = tmp1 + tmp2; - z3 = tmp0 + tmp2; - z4 = tmp1 + tmp3; - z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */ - - tmp0 = MULTIPLY(tmp0, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */ - tmp1 = MULTIPLY(tmp1, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */ - tmp2 = MULTIPLY(tmp2, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */ - tmp3 = MULTIPLY(tmp3, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */ - z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */ - z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */ - z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */ - z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */ - - z3 += z5; - z4 += z5; - - tmp0 += z1 + z3; - tmp1 += z2 + z4; - tmp2 += z2 + z3; - tmp3 += z1 + z4; - - /* Final output stage: inputs are tmp10..tmp13, tmp0..tmp3 */ - - wsptr[DCTSIZE*0] = (int) DESCALE(tmp10 + tmp3, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*7] = (int) DESCALE(tmp10 - tmp3, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*1] = (int) DESCALE(tmp11 + tmp2, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*6] = (int) DESCALE(tmp11 - tmp2, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*2] = (int) DESCALE(tmp12 + tmp1, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*5] = (int) DESCALE(tmp12 - tmp1, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*3] = (int) DESCALE(tmp13 + tmp0, CONST_BITS-PASS1_BITS); - wsptr[DCTSIZE*4] = (int) DESCALE(tmp13 - tmp0, CONST_BITS-PASS1_BITS); - - inptr++; /* advance pointers to next column */ - quantptr++; - wsptr++; - } - - /* Pass 2: process rows from work array, store into output array. */ - /* Note that we must descale the results by a factor of 8 == 2**3, */ - /* and also undo the PASS1_BITS scaling. */ - - wsptr = workspace; - for (ctr = 0; ctr < DCTSIZE; ctr++) { - outptr = output_buf[ctr] + output_col; - /* Rows of zeroes can be exploited in the same way as we did with columns. - * However, the column calculation has created many nonzero AC terms, so - * the simplification applies less often (typically 5% to 10% of the time). - * On machines with very fast multiplication, it's possible that the - * test takes more time than it's worth. In that case this section - * may be commented out. - */ - -#ifndef NO_ZERO_ROW_TEST - if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 && wsptr[4] == 0 && - wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) { - /* AC terms all zero */ - JSAMPLE dcval = range_limit[(int) DESCALE((INT32) wsptr[0], PASS1_BITS+3) - & RANGE_MASK]; - - outptr[0] = dcval; - outptr[1] = dcval; - outptr[2] = dcval; - outptr[3] = dcval; - outptr[4] = dcval; - outptr[5] = dcval; - outptr[6] = dcval; - outptr[7] = dcval; - - wsptr += DCTSIZE; /* advance pointer to next row */ - continue; - } -#endif - - /* Even part: reverse the even part of the forward DCT. */ - /* The rotator is sqrt(2)*c(-6). */ - - z2 = (INT32) wsptr[2]; - z3 = (INT32) wsptr[6]; - - z1 = MULTIPLY(z2 + z3, FIX_0_541196100); - tmp2 = z1 + MULTIPLY(z3, - FIX_1_847759065); - tmp3 = z1 + MULTIPLY(z2, FIX_0_765366865); - - tmp0 = ((INT32) wsptr[0] + (INT32) wsptr[4]) << CONST_BITS; - tmp1 = ((INT32) wsptr[0] - (INT32) wsptr[4]) << CONST_BITS; - - tmp10 = tmp0 + tmp3; - tmp13 = tmp0 - tmp3; - tmp11 = tmp1 + tmp2; - tmp12 = tmp1 - tmp2; - - /* Odd part per figure 8; the matrix is unitary and hence its - * transpose is its inverse. i0..i3 are y7,y5,y3,y1 respectively. - */ - - tmp0 = (INT32) wsptr[7]; - tmp1 = (INT32) wsptr[5]; - tmp2 = (INT32) wsptr[3]; - tmp3 = (INT32) wsptr[1]; - - z1 = tmp0 + tmp3; - z2 = tmp1 + tmp2; - z3 = tmp0 + tmp2; - z4 = tmp1 + tmp3; - z5 = MULTIPLY(z3 + z4, FIX_1_175875602); /* sqrt(2) * c3 */ - - tmp0 = MULTIPLY(tmp0, FIX_0_298631336); /* sqrt(2) * (-c1+c3+c5-c7) */ - tmp1 = MULTIPLY(tmp1, FIX_2_053119869); /* sqrt(2) * ( c1+c3-c5+c7) */ - tmp2 = MULTIPLY(tmp2, FIX_3_072711026); /* sqrt(2) * ( c1+c3+c5-c7) */ - tmp3 = MULTIPLY(tmp3, FIX_1_501321110); /* sqrt(2) * ( c1+c3-c5-c7) */ - z1 = MULTIPLY(z1, - FIX_0_899976223); /* sqrt(2) * (c7-c3) */ - z2 = MULTIPLY(z2, - FIX_2_562915447); /* sqrt(2) * (-c1-c3) */ - z3 = MULTIPLY(z3, - FIX_1_961570560); /* sqrt(2) * (-c3-c5) */ - z4 = MULTIPLY(z4, - FIX_0_390180644); /* sqrt(2) * (c5-c3) */ - - z3 += z5; - z4 += z5; - - tmp0 += z1 + z3; - tmp1 += z2 + z4; - tmp2 += z2 + z3; - tmp3 += z1 + z4; - - /* Final output stage: inputs are tmp10..tmp13, tmp0..tmp3 */ - - outptr[0] = range_limit[(int) DESCALE(tmp10 + tmp3, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[7] = range_limit[(int) DESCALE(tmp10 - tmp3, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[1] = range_limit[(int) DESCALE(tmp11 + tmp2, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[6] = range_limit[(int) DESCALE(tmp11 - tmp2, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[2] = range_limit[(int) DESCALE(tmp12 + tmp1, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[5] = range_limit[(int) DESCALE(tmp12 - tmp1, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[3] = range_limit[(int) DESCALE(tmp13 + tmp0, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - outptr[4] = range_limit[(int) DESCALE(tmp13 - tmp0, - CONST_BITS+PASS1_BITS+3) - & RANGE_MASK]; - - wsptr += DCTSIZE; /* advance pointer to next row */ - } -} - -#endif /* DCT_ISLOW_SUPPORTED */ diff --git a/src/jpeg/jidctred.c b/src/jpeg/jidctred.c deleted file mode 100644 index 421f3c7ca1..0000000000 --- a/src/jpeg/jidctred.c +++ /dev/null @@ -1,398 +0,0 @@ -/* - * jidctred.c - * - * Copyright (C) 1994-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains inverse-DCT routines that produce reduced-size output: - * either 4x4, 2x2, or 1x1 pixels from an 8x8 DCT block. - * - * The implementation is based on the Loeffler, Ligtenberg and Moschytz (LL&M) - * algorithm used in jidctint.c. We simply replace each 8-to-8 1-D IDCT step - * with an 8-to-4 step that produces the four averages of two adjacent outputs - * (or an 8-to-2 step producing two averages of four outputs, for 2x2 output). - * These steps were derived by computing the corresponding values at the end - * of the normal LL&M code, then simplifying as much as possible. - * - * 1x1 is trivial: just take the DC coefficient divided by 8. - * - * See jidctint.c for additional comments. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jdct.h" /* Private declarations for DCT subsystem */ - -#ifdef IDCT_SCALING_SUPPORTED - - -/* - * This module is specialized to the case DCTSIZE = 8. - */ - -#if DCTSIZE != 8 - Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */ -#endif - - -/* Scaling is the same as in jidctint.c. */ - -#if BITS_IN_JSAMPLE == 8 -#define CONST_BITS 13 -#define PASS1_BITS 2 -#else -#define CONST_BITS 13 -#define PASS1_BITS 1 /* lose a little precision to avoid overflow */ -#endif - -/* Some C compilers fail to reduce "FIX(constant)" at compile time, thus - * causing a lot of useless floating-point operations at run time. - * To get around this we use the following pre-calculated constants. - * If you change CONST_BITS you may want to add appropriate values. - * (With a reasonable C compiler, you can just rely on the FIX() macro...) - */ - -#if CONST_BITS == 13 -#define FIX_0_211164243 ((INT32) 1730) /* FIX(0.211164243) */ -#define FIX_0_509795579 ((INT32) 4176) /* FIX(0.509795579) */ -#define FIX_0_601344887 ((INT32) 4926) /* FIX(0.601344887) */ -#define FIX_0_720959822 ((INT32) 5906) /* FIX(0.720959822) */ -#define FIX_0_765366865 ((INT32) 6270) /* FIX(0.765366865) */ -#define FIX_0_850430095 ((INT32) 6967) /* FIX(0.850430095) */ -#define FIX_0_899976223 ((INT32) 7373) /* FIX(0.899976223) */ -#define FIX_1_061594337 ((INT32) 8697) /* FIX(1.061594337) */ -#define FIX_1_272758580 ((INT32) 10426) /* FIX(1.272758580) */ -#define FIX_1_451774981 ((INT32) 11893) /* FIX(1.451774981) */ -#define FIX_1_847759065 ((INT32) 15137) /* FIX(1.847759065) */ -#define FIX_2_172734803 ((INT32) 17799) /* FIX(2.172734803) */ -#define FIX_2_562915447 ((INT32) 20995) /* FIX(2.562915447) */ -#define FIX_3_624509785 ((INT32) 29692) /* FIX(3.624509785) */ -#else -#define FIX_0_211164243 FIX(0.211164243) -#define FIX_0_509795579 FIX(0.509795579) -#define FIX_0_601344887 FIX(0.601344887) -#define FIX_0_720959822 FIX(0.720959822) -#define FIX_0_765366865 FIX(0.765366865) -#define FIX_0_850430095 FIX(0.850430095) -#define FIX_0_899976223 FIX(0.899976223) -#define FIX_1_061594337 FIX(1.061594337) -#define FIX_1_272758580 FIX(1.272758580) -#define FIX_1_451774981 FIX(1.451774981) -#define FIX_1_847759065 FIX(1.847759065) -#define FIX_2_172734803 FIX(2.172734803) -#define FIX_2_562915447 FIX(2.562915447) -#define FIX_3_624509785 FIX(3.624509785) -#endif - - -/* Multiply an INT32 variable by an INT32 constant to yield an INT32 result. - * For 8-bit samples with the recommended scaling, all the variable - * and constant values involved are no more than 16 bits wide, so a - * 16x16->32 bit multiply can be used instead of a full 32x32 multiply. - * For 12-bit samples, a full 32-bit multiplication will be needed. - */ - -#if BITS_IN_JSAMPLE == 8 -#define MULTIPLY(var,const) MULTIPLY16C16(var,const) -#else -#define MULTIPLY(var,const) ((var) * (const)) -#endif - - -/* Dequantize a coefficient by multiplying it by the multiplier-table - * entry; produce an int result. In this module, both inputs and result - * are 16 bits or less, so either int or short multiply will work. - */ - -#define DEQUANTIZE(coef,quantval) (((ISLOW_MULT_TYPE) (coef)) * (quantval)) - - -/* - * Perform dequantization and inverse DCT on one block of coefficients, - * producing a reduced-size 4x4 output block. - */ - -GLOBAL(void) -jpeg_idct_4x4 (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col) -{ - INT32 tmp0, tmp2, tmp10, tmp12; - INT32 z1, z2, z3, z4; - JCOEFPTR inptr; - ISLOW_MULT_TYPE * quantptr; - int * wsptr; - JSAMPROW outptr; - JSAMPLE *range_limit = IDCT_range_limit(cinfo); - int ctr; - int workspace[DCTSIZE*4]; /* buffers data between passes */ - SHIFT_TEMPS - - /* Pass 1: process columns from input, store into work array. */ - - inptr = coef_block; - quantptr = (ISLOW_MULT_TYPE *) compptr->dct_table; - wsptr = workspace; - for (ctr = DCTSIZE; ctr > 0; inptr++, quantptr++, wsptr++, ctr--) { - /* Don't bother to process column 4, because second pass won't use it */ - if (ctr == DCTSIZE-4) - continue; - if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*2] == 0 && - inptr[DCTSIZE*3] == 0 && inptr[DCTSIZE*5] == 0 && - inptr[DCTSIZE*6] == 0 && inptr[DCTSIZE*7] == 0) { - /* AC terms all zero; we need not examine term 4 for 4x4 output */ - int dcval = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]) << PASS1_BITS; - - wsptr[DCTSIZE*0] = dcval; - wsptr[DCTSIZE*1] = dcval; - wsptr[DCTSIZE*2] = dcval; - wsptr[DCTSIZE*3] = dcval; - - continue; - } - - /* Even part */ - - tmp0 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - tmp0 <<= (CONST_BITS+1); - - z2 = DEQUANTIZE(inptr[DCTSIZE*2], quantptr[DCTSIZE*2]); - z3 = DEQUANTIZE(inptr[DCTSIZE*6], quantptr[DCTSIZE*6]); - - tmp2 = MULTIPLY(z2, FIX_1_847759065) + MULTIPLY(z3, - FIX_0_765366865); - - tmp10 = tmp0 + tmp2; - tmp12 = tmp0 - tmp2; - - /* Odd part */ - - z1 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]); - z2 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]); - z3 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]); - z4 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]); - - tmp0 = MULTIPLY(z1, - FIX_0_211164243) /* sqrt(2) * (c3-c1) */ - + MULTIPLY(z2, FIX_1_451774981) /* sqrt(2) * (c3+c7) */ - + MULTIPLY(z3, - FIX_2_172734803) /* sqrt(2) * (-c1-c5) */ - + MULTIPLY(z4, FIX_1_061594337); /* sqrt(2) * (c5+c7) */ - - tmp2 = MULTIPLY(z1, - FIX_0_509795579) /* sqrt(2) * (c7-c5) */ - + MULTIPLY(z2, - FIX_0_601344887) /* sqrt(2) * (c5-c1) */ - + MULTIPLY(z3, FIX_0_899976223) /* sqrt(2) * (c3-c7) */ - + MULTIPLY(z4, FIX_2_562915447); /* sqrt(2) * (c1+c3) */ - - /* Final output stage */ - - wsptr[DCTSIZE*0] = (int) DESCALE(tmp10 + tmp2, CONST_BITS-PASS1_BITS+1); - wsptr[DCTSIZE*3] = (int) DESCALE(tmp10 - tmp2, CONST_BITS-PASS1_BITS+1); - wsptr[DCTSIZE*1] = (int) DESCALE(tmp12 + tmp0, CONST_BITS-PASS1_BITS+1); - wsptr[DCTSIZE*2] = (int) DESCALE(tmp12 - tmp0, CONST_BITS-PASS1_BITS+1); - } - - /* Pass 2: process 4 rows from work array, store into output array. */ - - wsptr = workspace; - for (ctr = 0; ctr < 4; ctr++) { - outptr = output_buf[ctr] + output_col; - /* It's not clear whether a zero row test is worthwhile here ... */ - -#ifndef NO_ZERO_ROW_TEST - if (wsptr[1] == 0 && wsptr[2] == 0 && wsptr[3] == 0 && - wsptr[5] == 0 && wsptr[6] == 0 && wsptr[7] == 0) { - /* AC terms all zero */ - JSAMPLE dcval = range_limit[(int) DESCALE((INT32) wsptr[0], PASS1_BITS+3) - & RANGE_MASK]; - - outptr[0] = dcval; - outptr[1] = dcval; - outptr[2] = dcval; - outptr[3] = dcval; - - wsptr += DCTSIZE; /* advance pointer to next row */ - continue; - } -#endif - - /* Even part */ - - tmp0 = ((INT32) wsptr[0]) << (CONST_BITS+1); - - tmp2 = MULTIPLY((INT32) wsptr[2], FIX_1_847759065) - + MULTIPLY((INT32) wsptr[6], - FIX_0_765366865); - - tmp10 = tmp0 + tmp2; - tmp12 = tmp0 - tmp2; - - /* Odd part */ - - z1 = (INT32) wsptr[7]; - z2 = (INT32) wsptr[5]; - z3 = (INT32) wsptr[3]; - z4 = (INT32) wsptr[1]; - - tmp0 = MULTIPLY(z1, - FIX_0_211164243) /* sqrt(2) * (c3-c1) */ - + MULTIPLY(z2, FIX_1_451774981) /* sqrt(2) * (c3+c7) */ - + MULTIPLY(z3, - FIX_2_172734803) /* sqrt(2) * (-c1-c5) */ - + MULTIPLY(z4, FIX_1_061594337); /* sqrt(2) * (c5+c7) */ - - tmp2 = MULTIPLY(z1, - FIX_0_509795579) /* sqrt(2) * (c7-c5) */ - + MULTIPLY(z2, - FIX_0_601344887) /* sqrt(2) * (c5-c1) */ - + MULTIPLY(z3, FIX_0_899976223) /* sqrt(2) * (c3-c7) */ - + MULTIPLY(z4, FIX_2_562915447); /* sqrt(2) * (c1+c3) */ - - /* Final output stage */ - - outptr[0] = range_limit[(int) DESCALE(tmp10 + tmp2, - CONST_BITS+PASS1_BITS+3+1) - & RANGE_MASK]; - outptr[3] = range_limit[(int) DESCALE(tmp10 - tmp2, - CONST_BITS+PASS1_BITS+3+1) - & RANGE_MASK]; - outptr[1] = range_limit[(int) DESCALE(tmp12 + tmp0, - CONST_BITS+PASS1_BITS+3+1) - & RANGE_MASK]; - outptr[2] = range_limit[(int) DESCALE(tmp12 - tmp0, - CONST_BITS+PASS1_BITS+3+1) - & RANGE_MASK]; - - wsptr += DCTSIZE; /* advance pointer to next row */ - } -} - - -/* - * Perform dequantization and inverse DCT on one block of coefficients, - * producing a reduced-size 2x2 output block. - */ - -GLOBAL(void) -jpeg_idct_2x2 (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col) -{ - INT32 tmp0, tmp10, z1; - JCOEFPTR inptr; - ISLOW_MULT_TYPE * quantptr; - int * wsptr; - JSAMPROW outptr; - JSAMPLE *range_limit = IDCT_range_limit(cinfo); - int ctr; - int workspace[DCTSIZE*2]; /* buffers data between passes */ - SHIFT_TEMPS - - /* Pass 1: process columns from input, store into work array. */ - - inptr = coef_block; - quantptr = (ISLOW_MULT_TYPE *) compptr->dct_table; - wsptr = workspace; - for (ctr = DCTSIZE; ctr > 0; inptr++, quantptr++, wsptr++, ctr--) { - /* Don't bother to process columns 2,4,6 */ - if (ctr == DCTSIZE-2 || ctr == DCTSIZE-4 || ctr == DCTSIZE-6) - continue; - if (inptr[DCTSIZE*1] == 0 && inptr[DCTSIZE*3] == 0 && - inptr[DCTSIZE*5] == 0 && inptr[DCTSIZE*7] == 0) { - /* AC terms all zero; we need not examine terms 2,4,6 for 2x2 output */ - int dcval = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]) << PASS1_BITS; - - wsptr[DCTSIZE*0] = dcval; - wsptr[DCTSIZE*1] = dcval; - - continue; - } - - /* Even part */ - - z1 = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]); - tmp10 = z1 << (CONST_BITS+2); - - /* Odd part */ - - z1 = DEQUANTIZE(inptr[DCTSIZE*7], quantptr[DCTSIZE*7]); - tmp0 = MULTIPLY(z1, - FIX_0_720959822); /* sqrt(2) * (c7-c5+c3-c1) */ - z1 = DEQUANTIZE(inptr[DCTSIZE*5], quantptr[DCTSIZE*5]); - tmp0 += MULTIPLY(z1, FIX_0_850430095); /* sqrt(2) * (-c1+c3+c5+c7) */ - z1 = DEQUANTIZE(inptr[DCTSIZE*3], quantptr[DCTSIZE*3]); - tmp0 += MULTIPLY(z1, - FIX_1_272758580); /* sqrt(2) * (-c1+c3-c5-c7) */ - z1 = DEQUANTIZE(inptr[DCTSIZE*1], quantptr[DCTSIZE*1]); - tmp0 += MULTIPLY(z1, FIX_3_624509785); /* sqrt(2) * (c1+c3+c5+c7) */ - - /* Final output stage */ - - wsptr[DCTSIZE*0] = (int) DESCALE(tmp10 + tmp0, CONST_BITS-PASS1_BITS+2); - wsptr[DCTSIZE*1] = (int) DESCALE(tmp10 - tmp0, CONST_BITS-PASS1_BITS+2); - } - - /* Pass 2: process 2 rows from work array, store into output array. */ - - wsptr = workspace; - for (ctr = 0; ctr < 2; ctr++) { - outptr = output_buf[ctr] + output_col; - /* It's not clear whether a zero row test is worthwhile here ... */ - -#ifndef NO_ZERO_ROW_TEST - if (wsptr[1] == 0 && wsptr[3] == 0 && wsptr[5] == 0 && wsptr[7] == 0) { - /* AC terms all zero */ - JSAMPLE dcval = range_limit[(int) DESCALE((INT32) wsptr[0], PASS1_BITS+3) - & RANGE_MASK]; - - outptr[0] = dcval; - outptr[1] = dcval; - - wsptr += DCTSIZE; /* advance pointer to next row */ - continue; - } -#endif - - /* Even part */ - - tmp10 = ((INT32) wsptr[0]) << (CONST_BITS+2); - - /* Odd part */ - - tmp0 = MULTIPLY((INT32) wsptr[7], - FIX_0_720959822) /* sqrt(2) * (c7-c5+c3-c1) */ - + MULTIPLY((INT32) wsptr[5], FIX_0_850430095) /* sqrt(2) * (-c1+c3+c5+c7) */ - + MULTIPLY((INT32) wsptr[3], - FIX_1_272758580) /* sqrt(2) * (-c1+c3-c5-c7) */ - + MULTIPLY((INT32) wsptr[1], FIX_3_624509785); /* sqrt(2) * (c1+c3+c5+c7) */ - - /* Final output stage */ - - outptr[0] = range_limit[(int) DESCALE(tmp10 + tmp0, - CONST_BITS+PASS1_BITS+3+2) - & RANGE_MASK]; - outptr[1] = range_limit[(int) DESCALE(tmp10 - tmp0, - CONST_BITS+PASS1_BITS+3+2) - & RANGE_MASK]; - - wsptr += DCTSIZE; /* advance pointer to next row */ - } -} - - -/* - * Perform dequantization and inverse DCT on one block of coefficients, - * producing a reduced-size 1x1 output block. - */ - -GLOBAL(void) -jpeg_idct_1x1 (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col) -{ - int dcval; - ISLOW_MULT_TYPE * quantptr; - JSAMPLE *range_limit = IDCT_range_limit(cinfo); - SHIFT_TEMPS - - /* We hardly need an inverse DCT routine for this: just take the - * average pixel value, which is one-eighth of the DC coefficient. - */ - quantptr = (ISLOW_MULT_TYPE *) compptr->dct_table; - dcval = DEQUANTIZE(coef_block[0], quantptr[0]); - dcval = (int) DESCALE((INT32) dcval, 3); - - output_buf[0][output_col] = range_limit[dcval & RANGE_MASK]; -} - -#endif /* IDCT_SCALING_SUPPORTED */ diff --git a/src/jpeg/jinclude.h b/src/jpeg/jinclude.h deleted file mode 100644 index b4722d428e..0000000000 --- a/src/jpeg/jinclude.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * jinclude.h - * - * Copyright (C) 1991-1994, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file exists to provide a single place to fix any problems with - * including the wrong system include files. (Common problems are taken - * care of by the standard jconfig symbols, but on really weird systems - * you may have to edit this file.) - * - * NOTE: this file is NOT intended to be included by applications using the - * JPEG library. Most applications need only include jpeglib.h. - */ - - -/* Include auto-config file to find out which system include files we need. */ - -#include "../src/jpeg/jconfig.h" /* auto configuration options */ -#define JCONFIG_INCLUDED /* so that jpeglib.h doesn't do it again */ - -/* - * We need the NULL macro and size_t typedef. - * On an ANSI-conforming system it is sufficient to include . - * Otherwise, we get them from or ; we may have to - * pull in as well. - * Note that the core JPEG library does not require ; - * only the default error handler and data source/destination modules do. - * But we must pull it in because of the references to FILE in jpeglib.h. - * You can remove those references if you want to compile without . - */ - -#ifdef HAVE_STDDEF_H -#include -#endif - -#ifdef HAVE_STDLIB_H -#include -#endif - -#ifdef NEED_SYS_TYPES_H -#include -#endif - -#include - -/* - * We need memory copying and zeroing functions, plus strncpy(). - * ANSI and System V implementations declare these in . - * BSD doesn't have the mem() functions, but it does have bcopy()/bzero(). - * Some systems may declare memset and memcpy in . - * - * NOTE: we assume the size parameters to these functions are of type size_t. - * Change the casts in these macros if not! - */ - -#ifdef NEED_BSD_STRINGS - -#include -#define MEMZERO(target,size) bzero((void *)(target), (size_t)(size)) -#define MEMCOPY(dest,src,size) bcopy((const void *)(src), (void *)(dest), (size_t)(size)) - -#else /* not BSD, assume ANSI/SysV string lib */ - -#include -#define MEMZERO(target,size) memset((void *)(target), 0, (size_t)(size)) -#define MEMCOPY(dest,src,size) memcpy((void *)(dest), (const void *)(src), (size_t)(size)) - -#endif - -/* - * In ANSI C, and indeed any rational implementation, size_t is also the - * type returned by sizeof(). However, it seems there are some irrational - * implementations out there, in which sizeof() returns an int even though - * size_t is defined as long or unsigned long. To ensure consistent results - * we always use this SIZEOF() macro in place of using sizeof() directly. - */ - -#define SIZEOF(object) ((size_t) sizeof(object)) - -/* - * The modules that use fread() and fwrite() always invoke them through - * these macros. On some systems you may need to twiddle the argument casts. - * CAUTION: argument order is different from underlying functions! - */ - -#define JFREAD(file,buf,sizeofbuf) \ - ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) -#define JFWRITE(file,buf,sizeofbuf) \ - ((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) diff --git a/src/jpeg/jmemansi.c b/src/jpeg/jmemansi.c deleted file mode 100644 index 2d93e49625..0000000000 --- a/src/jpeg/jmemansi.c +++ /dev/null @@ -1,167 +0,0 @@ -/* - * jmemansi.c - * - * Copyright (C) 1992-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file provides a simple generic implementation of the system- - * dependent portion of the JPEG memory manager. This implementation - * assumes that you have the ANSI-standard library routine tmpfile(). - * Also, the problem of determining the amount of memory available - * is shoved onto the user. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jmemsys.h" /* import the system-dependent declarations */ - -#ifndef HAVE_STDLIB_H /* should declare malloc(),free() */ -extern void * malloc JPP((size_t size)); -extern void free JPP((void *ptr)); -#endif - -#ifndef SEEK_SET /* pre-ANSI systems may not define this; */ -#define SEEK_SET 0 /* if not, assume 0 is correct */ -#endif - - -/* - * Memory allocation and freeing are controlled by the regular library - * routines malloc() and free(). - */ - -GLOBAL(void *) -jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * "Large" objects are treated the same as "small" ones. - * NB: although we include FAR keywords in the routine declarations, - * this file won't actually work in 80x86 small/medium model; at least, - * you probably won't be able to process useful-size images in only 64KB. - */ - -GLOBAL(void FAR *) -jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void FAR *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * This routine computes the total memory space available for allocation. - * It's impossible to do this in a portable way; our current solution is - * to make the user tell us (with a default value set at compile time). - * If you can actually get the available space, it's a good idea to subtract - * a slop factor of 5% or so. - */ - -#ifndef DEFAULT_MAX_MEM /* so can override from makefile */ -#define DEFAULT_MAX_MEM 1000000L /* default: one megabyte */ -#endif - -GLOBAL(long) -jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, - long max_bytes_needed, long already_allocated) -{ - return cinfo->mem->max_memory_to_use - already_allocated; -} - - -/* - * Backing store (temporary file) management. - * Backing store objects are only used when the value returned by - * jpeg_mem_available is less than the total space needed. You can dispense - * with these routines if you have plenty of virtual memory; see jmemnobs.c. - */ - - -METHODDEF(void) -read_backing_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - if (fseek(info->temp_file, file_offset, SEEK_SET)) - ERREXIT(cinfo, JERR_TFILE_SEEK); - if (JFREAD(info->temp_file, buffer_address, byte_count) - != (size_t) byte_count) - ERREXIT(cinfo, JERR_TFILE_READ); -} - - -METHODDEF(void) -write_backing_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - if (fseek(info->temp_file, file_offset, SEEK_SET)) - ERREXIT(cinfo, JERR_TFILE_SEEK); - if (JFWRITE(info->temp_file, buffer_address, byte_count) - != (size_t) byte_count) - ERREXIT(cinfo, JERR_TFILE_WRITE); -} - - -METHODDEF(void) -close_backing_store (j_common_ptr cinfo, backing_store_ptr info) -{ - fclose(info->temp_file); - /* Since this implementation uses tmpfile() to create the file, - * no explicit file deletion is needed. - */ -} - - -/* - * Initial opening of a backing-store object. - * - * This version uses tmpfile(), which constructs a suitable file name - * behind the scenes. We don't have to use info->temp_name[] at all; - * indeed, we can't even find out the actual name of the temp file. - */ - -GLOBAL(void) -jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - if ((info->temp_file = tmpfile()) == NULL) - ERREXITS(cinfo, JERR_TFILE_CREATE, ""); - info->read_backing_store = read_backing_store; - info->write_backing_store = write_backing_store; - info->close_backing_store = close_backing_store; -} - - -/* - * These routines take care of any system-dependent initialization and - * cleanup required. - */ - -GLOBAL(long) -jpeg_mem_init (j_common_ptr cinfo) -{ - return DEFAULT_MAX_MEM; /* default for max_memory_to_use */ -} - -GLOBAL(void) -jpeg_mem_term (j_common_ptr cinfo) -{ - /* no work */ -} diff --git a/src/jpeg/jmemdos.c b/src/jpeg/jmemdos.c deleted file mode 100644 index 60b45c6938..0000000000 --- a/src/jpeg/jmemdos.c +++ /dev/null @@ -1,638 +0,0 @@ -/* - * jmemdos.c - * - * Copyright (C) 1992-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file provides an MS-DOS-compatible implementation of the system- - * dependent portion of the JPEG memory manager. Temporary data can be - * stored in extended or expanded memory as well as in regular DOS files. - * - * If you use this file, you must be sure that NEED_FAR_POINTERS is defined - * if you compile in a small-data memory model; it should NOT be defined if - * you use a large-data memory model. This file is not recommended if you - * are using a flat-memory-space 386 environment such as DJGCC or Watcom C. - * Also, this code will NOT work if struct fields are aligned on greater than - * 2-byte boundaries. - * - * Based on code contributed by Ge' Weijers. - */ - -/* - * If you have both extended and expanded memory, you may want to change the - * order in which they are tried in jopen_backing_store. On a 286 machine - * expanded memory is usually faster, since extended memory access involves - * an expensive protected-mode-and-back switch. On 386 and better, extended - * memory is usually faster. As distributed, the code tries extended memory - * first (what? not everyone has a 386? :-). - * - * You can disable use of extended/expanded memory entirely by altering these - * definitions or overriding them from the Makefile (eg, -DEMS_SUPPORTED=0). - */ - -#ifndef XMS_SUPPORTED -#define XMS_SUPPORTED 1 -#endif -#ifndef EMS_SUPPORTED -#define EMS_SUPPORTED 1 -#endif - - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jmemsys.h" /* import the system-dependent declarations */ - -#ifndef HAVE_STDLIB_H /* should declare these */ -extern void * malloc JPP((size_t size)); -extern void free JPP((void *ptr)); -extern char * getenv JPP((const char * name)); -#endif - -#ifdef NEED_FAR_POINTERS - -#ifdef __TURBOC__ -/* These definitions work for Borland C (Turbo C) */ -#include /* need farmalloc(), farfree() */ -#define far_malloc(x) farmalloc(x) -#define far_free(x) farfree(x) -#else -/* These definitions work for Microsoft C and compatible compilers */ -#include /* need _fmalloc(), _ffree() */ -#define far_malloc(x) _fmalloc(x) -#define far_free(x) _ffree(x) -#endif - -#else /* not NEED_FAR_POINTERS */ - -#define far_malloc(x) malloc(x) -#define far_free(x) free(x) - -#endif /* NEED_FAR_POINTERS */ - -#ifdef DONT_USE_B_MODE /* define mode parameters for fopen() */ -#define READ_BINARY "r" -#else -#define READ_BINARY "rb" -#endif - -#ifndef USE_MSDOS_MEMMGR /* make sure user got configuration right */ - You forgot to define USE_MSDOS_MEMMGR in jconfig.h. /* deliberate syntax error */ -#endif - -#if MAX_ALLOC_CHUNK >= 65535L /* make sure jconfig.h got this right */ - MAX_ALLOC_CHUNK should be less than 64K. /* deliberate syntax error */ -#endif - - -/* - * Declarations for assembly-language support routines (see jmemdosa.asm). - * - * The functions are declared "far" as are all their pointer arguments; - * this ensures the assembly source code will work regardless of the - * compiler memory model. We assume "short" is 16 bits, "long" is 32. - */ - -typedef void far * XMSDRIVER; /* actually a pointer to code */ -typedef struct { /* registers for calling XMS driver */ - unsigned short ax, dx, bx; - void far * ds_si; - } XMScontext; -typedef struct { /* registers for calling EMS driver */ - unsigned short ax, dx, bx; - void far * ds_si; - } EMScontext; - -extern short far jdos_open JPP((short far * handle, char far * filename)); -extern short far jdos_close JPP((short handle)); -extern short far jdos_seek JPP((short handle, long offset)); -extern short far jdos_read JPP((short handle, void far * buffer, - unsigned short count)); -extern short far jdos_write JPP((short handle, void far * buffer, - unsigned short count)); -extern void far jxms_getdriver JPP((XMSDRIVER far *)); -extern void far jxms_calldriver JPP((XMSDRIVER, XMScontext far *)); -extern short far jems_available JPP((void)); -extern void far jems_calldriver JPP((EMScontext far *)); - - -/* - * Selection of a file name for a temporary file. - * This is highly system-dependent, and you may want to customize it. - */ - -static int next_file_num; /* to distinguish among several temp files */ - -LOCAL(void) -select_file_name (char * fname) -{ - const char * env; - char * ptr; - FILE * tfile; - - /* Keep generating file names till we find one that's not in use */ - for (;;) { - /* Get temp directory name from environment TMP or TEMP variable; - * if none, use "." - */ - if ((env = (const char *) getenv("TMP")) == NULL) - if ((env = (const char *) getenv("TEMP")) == NULL) - env = "."; - if (*env == '\0') /* null string means "." */ - env = "."; - ptr = fname; /* copy name to fname */ - while (*env != '\0') - *ptr++ = *env++; - if (ptr[-1] != '\\' && ptr[-1] != '/') - *ptr++ = '\\'; /* append backslash if not in env variable */ - /* Append a suitable file name */ - next_file_num++; /* advance counter */ - sprintf(ptr, "JPG%03d.TMP", next_file_num); - /* Probe to see if file name is already in use */ - if ((tfile = fopen(fname, READ_BINARY)) == NULL) - break; - fclose(tfile); /* oops, it's there; close tfile & try again */ - } -} - - -/* - * Near-memory allocation and freeing are controlled by the regular library - * routines malloc() and free(). - */ - -GLOBAL(void *) -jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * "Large" objects are allocated in far memory, if possible - */ - -GLOBAL(void FAR *) -jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void FAR *) far_malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) -{ - far_free(object); -} - - -/* - * This routine computes the total memory space available for allocation. - * It's impossible to do this in a portable way; our current solution is - * to make the user tell us (with a default value set at compile time). - * If you can actually get the available space, it's a good idea to subtract - * a slop factor of 5% or so. - */ - -#ifndef DEFAULT_MAX_MEM /* so can override from makefile */ -#define DEFAULT_MAX_MEM 300000L /* for total usage about 450K */ -#endif - -GLOBAL(long) -jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, - long max_bytes_needed, long already_allocated) -{ - return cinfo->mem->max_memory_to_use - already_allocated; -} - - -/* - * Backing store (temporary file) management. - * Backing store objects are only used when the value returned by - * jpeg_mem_available is less than the total space needed. You can dispense - * with these routines if you have plenty of virtual memory; see jmemnobs.c. - */ - -/* - * For MS-DOS we support three types of backing storage: - * 1. Conventional DOS files. We access these by direct DOS calls rather - * than via the stdio package. This provides a bit better performance, - * but the real reason is that the buffers to be read or written are FAR. - * The stdio library for small-data memory models can't cope with that. - * 2. Extended memory, accessed per the XMS V2.0 specification. - * 3. Expanded memory, accessed per the LIM/EMS 4.0 specification. - * You'll need copies of those specs to make sense of the related code. - * The specs are available by Internet FTP from the SIMTEL archives - * (oak.oakland.edu and its various mirror sites). See files - * pub/msdos/microsoft/xms20.arc and pub/msdos/info/limems41.zip. - */ - - -/* - * Access methods for a DOS file. - */ - - -METHODDEF(void) -read_file_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - if (jdos_seek(info->handle.file_handle, file_offset)) - ERREXIT(cinfo, JERR_TFILE_SEEK); - /* Since MAX_ALLOC_CHUNK is less than 64K, byte_count will be too. */ - if (byte_count > 65535L) /* safety check */ - ERREXIT(cinfo, JERR_BAD_ALLOC_CHUNK); - if (jdos_read(info->handle.file_handle, buffer_address, - (unsigned short) byte_count)) - ERREXIT(cinfo, JERR_TFILE_READ); -} - - -METHODDEF(void) -write_file_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - if (jdos_seek(info->handle.file_handle, file_offset)) - ERREXIT(cinfo, JERR_TFILE_SEEK); - /* Since MAX_ALLOC_CHUNK is less than 64K, byte_count will be too. */ - if (byte_count > 65535L) /* safety check */ - ERREXIT(cinfo, JERR_BAD_ALLOC_CHUNK); - if (jdos_write(info->handle.file_handle, buffer_address, - (unsigned short) byte_count)) - ERREXIT(cinfo, JERR_TFILE_WRITE); -} - - -METHODDEF(void) -close_file_store (j_common_ptr cinfo, backing_store_ptr info) -{ - jdos_close(info->handle.file_handle); /* close the file */ - remove(info->temp_name); /* delete the file */ -/* If your system doesn't have remove(), try unlink() instead. - * remove() is the ANSI-standard name for this function, but - * unlink() was more common in pre-ANSI systems. - */ - TRACEMSS(cinfo, 1, JTRC_TFILE_CLOSE, info->temp_name); -} - - -LOCAL(boolean) -open_file_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - short handle; - - select_file_name(info->temp_name); - if (jdos_open((short far *) & handle, (char far *) info->temp_name)) { - /* might as well exit since jpeg_open_backing_store will fail anyway */ - ERREXITS(cinfo, JERR_TFILE_CREATE, info->temp_name); - return FALSE; - } - info->handle.file_handle = handle; - info->read_backing_store = read_file_store; - info->write_backing_store = write_file_store; - info->close_backing_store = close_file_store; - TRACEMSS(cinfo, 1, JTRC_TFILE_OPEN, info->temp_name); - return TRUE; /* succeeded */ -} - - -/* - * Access methods for extended memory. - */ - -#if XMS_SUPPORTED - -static XMSDRIVER xms_driver; /* saved address of XMS driver */ - -typedef union { /* either long offset or real-mode pointer */ - long offset; - void far * ptr; - } XMSPTR; - -typedef struct { /* XMS move specification structure */ - long length; - XMSH src_handle; - XMSPTR src; - XMSH dst_handle; - XMSPTR dst; - } XMSspec; - -#define ODD(X) (((X) & 1L) != 0) - - -METHODDEF(void) -read_xms_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - XMScontext ctx; - XMSspec spec; - char endbuffer[2]; - - /* The XMS driver can't cope with an odd length, so handle the last byte - * specially if byte_count is odd. We don't expect this to be common. - */ - - spec.length = byte_count & (~ 1L); - spec.src_handle = info->handle.xms_handle; - spec.src.offset = file_offset; - spec.dst_handle = 0; - spec.dst.ptr = buffer_address; - - ctx.ds_si = (void far *) & spec; - ctx.ax = 0x0b00; /* EMB move */ - jxms_calldriver(xms_driver, (XMScontext far *) & ctx); - if (ctx.ax != 1) - ERREXIT(cinfo, JERR_XMS_READ); - - if (ODD(byte_count)) { - read_xms_store(cinfo, info, (void FAR *) endbuffer, - file_offset + byte_count - 1L, 2L); - ((char FAR *) buffer_address)[byte_count - 1L] = endbuffer[0]; - } -} - - -METHODDEF(void) -write_xms_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - XMScontext ctx; - XMSspec spec; - char endbuffer[2]; - - /* The XMS driver can't cope with an odd length, so handle the last byte - * specially if byte_count is odd. We don't expect this to be common. - */ - - spec.length = byte_count & (~ 1L); - spec.src_handle = 0; - spec.src.ptr = buffer_address; - spec.dst_handle = info->handle.xms_handle; - spec.dst.offset = file_offset; - - ctx.ds_si = (void far *) & spec; - ctx.ax = 0x0b00; /* EMB move */ - jxms_calldriver(xms_driver, (XMScontext far *) & ctx); - if (ctx.ax != 1) - ERREXIT(cinfo, JERR_XMS_WRITE); - - if (ODD(byte_count)) { - read_xms_store(cinfo, info, (void FAR *) endbuffer, - file_offset + byte_count - 1L, 2L); - endbuffer[0] = ((char FAR *) buffer_address)[byte_count - 1L]; - write_xms_store(cinfo, info, (void FAR *) endbuffer, - file_offset + byte_count - 1L, 2L); - } -} - - -METHODDEF(void) -close_xms_store (j_common_ptr cinfo, backing_store_ptr info) -{ - XMScontext ctx; - - ctx.dx = info->handle.xms_handle; - ctx.ax = 0x0a00; - jxms_calldriver(xms_driver, (XMScontext far *) & ctx); - TRACEMS1(cinfo, 1, JTRC_XMS_CLOSE, info->handle.xms_handle); - /* we ignore any error return from the driver */ -} - - -LOCAL(boolean) -open_xms_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - XMScontext ctx; - - /* Get address of XMS driver */ - jxms_getdriver((XMSDRIVER far *) & xms_driver); - if (xms_driver == NULL) - return FALSE; /* no driver to be had */ - - /* Get version number, must be >= 2.00 */ - ctx.ax = 0x0000; - jxms_calldriver(xms_driver, (XMScontext far *) & ctx); - if (ctx.ax < (unsigned short) 0x0200) - return FALSE; - - /* Try to get space (expressed in kilobytes) */ - ctx.dx = (unsigned short) ((total_bytes_needed + 1023L) >> 10); - ctx.ax = 0x0900; - jxms_calldriver(xms_driver, (XMScontext far *) & ctx); - if (ctx.ax != 1) - return FALSE; - - /* Succeeded, save the handle and away we go */ - info->handle.xms_handle = ctx.dx; - info->read_backing_store = read_xms_store; - info->write_backing_store = write_xms_store; - info->close_backing_store = close_xms_store; - TRACEMS1(cinfo, 1, JTRC_XMS_OPEN, ctx.dx); - return TRUE; /* succeeded */ -} - -#endif /* XMS_SUPPORTED */ - - -/* - * Access methods for expanded memory. - */ - -#if EMS_SUPPORTED - -/* The EMS move specification structure requires word and long fields aligned - * at odd byte boundaries. Some compilers will align struct fields at even - * byte boundaries. While it's usually possible to force byte alignment, - * that causes an overall performance penalty and may pose problems in merging - * JPEG into a larger application. Instead we accept some rather dirty code - * here. Note this code would fail if the hardware did not allow odd-byte - * word & long accesses, but all 80x86 CPUs do. - */ - -typedef void far * EMSPTR; - -typedef union { /* EMS move specification structure */ - long length; /* It's easy to access first 4 bytes */ - char bytes[18]; /* Misaligned fields in here! */ - } EMSspec; - -/* Macros for accessing misaligned fields */ -#define FIELD_AT(spec,offset,type) (*((type *) &(spec.bytes[offset]))) -#define SRC_TYPE(spec) FIELD_AT(spec,4,char) -#define SRC_HANDLE(spec) FIELD_AT(spec,5,EMSH) -#define SRC_OFFSET(spec) FIELD_AT(spec,7,unsigned short) -#define SRC_PAGE(spec) FIELD_AT(spec,9,unsigned short) -#define SRC_PTR(spec) FIELD_AT(spec,7,EMSPTR) -#define DST_TYPE(spec) FIELD_AT(spec,11,char) -#define DST_HANDLE(spec) FIELD_AT(spec,12,EMSH) -#define DST_OFFSET(spec) FIELD_AT(spec,14,unsigned short) -#define DST_PAGE(spec) FIELD_AT(spec,16,unsigned short) -#define DST_PTR(spec) FIELD_AT(spec,14,EMSPTR) - -#define EMSPAGESIZE 16384L /* gospel, see the EMS specs */ - -#define HIBYTE(W) (((W) >> 8) & 0xFF) -#define LOBYTE(W) ((W) & 0xFF) - - -METHODDEF(void) -read_ems_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - EMScontext ctx; - EMSspec spec; - - spec.length = byte_count; - SRC_TYPE(spec) = 1; - SRC_HANDLE(spec) = info->handle.ems_handle; - SRC_PAGE(spec) = (unsigned short) (file_offset / EMSPAGESIZE); - SRC_OFFSET(spec) = (unsigned short) (file_offset % EMSPAGESIZE); - DST_TYPE(spec) = 0; - DST_HANDLE(spec) = 0; - DST_PTR(spec) = buffer_address; - - ctx.ds_si = (void far *) & spec; - ctx.ax = 0x5700; /* move memory region */ - jems_calldriver((EMScontext far *) & ctx); - if (HIBYTE(ctx.ax) != 0) - ERREXIT(cinfo, JERR_EMS_READ); -} - - -METHODDEF(void) -write_ems_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - EMScontext ctx; - EMSspec spec; - - spec.length = byte_count; - SRC_TYPE(spec) = 0; - SRC_HANDLE(spec) = 0; - SRC_PTR(spec) = buffer_address; - DST_TYPE(spec) = 1; - DST_HANDLE(spec) = info->handle.ems_handle; - DST_PAGE(spec) = (unsigned short) (file_offset / EMSPAGESIZE); - DST_OFFSET(spec) = (unsigned short) (file_offset % EMSPAGESIZE); - - ctx.ds_si = (void far *) & spec; - ctx.ax = 0x5700; /* move memory region */ - jems_calldriver((EMScontext far *) & ctx); - if (HIBYTE(ctx.ax) != 0) - ERREXIT(cinfo, JERR_EMS_WRITE); -} - - -METHODDEF(void) -close_ems_store (j_common_ptr cinfo, backing_store_ptr info) -{ - EMScontext ctx; - - ctx.ax = 0x4500; - ctx.dx = info->handle.ems_handle; - jems_calldriver((EMScontext far *) & ctx); - TRACEMS1(cinfo, 1, JTRC_EMS_CLOSE, info->handle.ems_handle); - /* we ignore any error return from the driver */ -} - - -LOCAL(boolean) -open_ems_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - EMScontext ctx; - - /* Is EMS driver there? */ - if (! jems_available()) - return FALSE; - - /* Get status, make sure EMS is OK */ - ctx.ax = 0x4000; - jems_calldriver((EMScontext far *) & ctx); - if (HIBYTE(ctx.ax) != 0) - return FALSE; - - /* Get version, must be >= 4.0 */ - ctx.ax = 0x4600; - jems_calldriver((EMScontext far *) & ctx); - if (HIBYTE(ctx.ax) != 0 || LOBYTE(ctx.ax) < 0x40) - return FALSE; - - /* Try to allocate requested space */ - ctx.ax = 0x4300; - ctx.bx = (unsigned short) ((total_bytes_needed + EMSPAGESIZE-1L) / EMSPAGESIZE); - jems_calldriver((EMScontext far *) & ctx); - if (HIBYTE(ctx.ax) != 0) - return FALSE; - - /* Succeeded, save the handle and away we go */ - info->handle.ems_handle = ctx.dx; - info->read_backing_store = read_ems_store; - info->write_backing_store = write_ems_store; - info->close_backing_store = close_ems_store; - TRACEMS1(cinfo, 1, JTRC_EMS_OPEN, ctx.dx); - return TRUE; /* succeeded */ -} - -#endif /* EMS_SUPPORTED */ - - -/* - * Initial opening of a backing-store object. - */ - -GLOBAL(void) -jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - /* Try extended memory, then expanded memory, then regular file. */ -#if XMS_SUPPORTED - if (open_xms_store(cinfo, info, total_bytes_needed)) - return; -#endif -#if EMS_SUPPORTED - if (open_ems_store(cinfo, info, total_bytes_needed)) - return; -#endif - if (open_file_store(cinfo, info, total_bytes_needed)) - return; - ERREXITS(cinfo, JERR_TFILE_CREATE, ""); -} - - -/* - * These routines take care of any system-dependent initialization and - * cleanup required. - */ - -GLOBAL(long) -jpeg_mem_init (j_common_ptr cinfo) -{ - next_file_num = 0; /* initialize temp file name generator */ - return DEFAULT_MAX_MEM; /* default for max_memory_to_use */ -} - -GLOBAL(void) -jpeg_mem_term (j_common_ptr cinfo) -{ - /* Microsoft C, at least in v6.00A, will not successfully reclaim freed - * blocks of size > 32Kbytes unless we give it a kick in the rear, like so: - */ -#ifdef NEED_FHEAPMIN - _fheapmin(); -#endif -} diff --git a/src/jpeg/jmemdosa.asm b/src/jpeg/jmemdosa.asm deleted file mode 100644 index ecd43729fe..0000000000 --- a/src/jpeg/jmemdosa.asm +++ /dev/null @@ -1,379 +0,0 @@ -; -; jmemdosa.asm -; -; Copyright (C) 1992, Thomas G. Lane. -; This file is part of the Independent JPEG Group's software. -; For conditions of distribution and use, see the accompanying README file. -; -; This file contains low-level interface routines to support the MS-DOS -; backing store manager (jmemdos.c). Routines are provided to access disk -; files through direct DOS calls, and to access XMS and EMS drivers. -; -; This file should assemble with Microsoft's MASM or any compatible -; assembler (including Borland's Turbo Assembler). If you haven't got -; a compatible assembler, better fall back to jmemansi.c or jmemname.c. -; -; To minimize dependence on the C compiler's register usage conventions, -; we save and restore all 8086 registers, even though most compilers only -; require SI,DI,DS to be preserved. Also, we use only 16-bit-wide return -; values, which everybody returns in AX. -; -; Based on code contributed by Ge' Weijers. -; - -JMEMDOSA_TXT segment byte public 'CODE' - - assume cs:JMEMDOSA_TXT - - public _jdos_open - public _jdos_close - public _jdos_seek - public _jdos_read - public _jdos_write - public _jxms_getdriver - public _jxms_calldriver - public _jems_available - public _jems_calldriver - -; -; short far jdos_open (short far * handle, char far * filename) -; -; Create and open a temporary file -; -_jdos_open proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov cx,0 ; normal file attributes - lds dx,dword ptr [bp+10] ; get filename pointer - mov ah,3ch ; create file - int 21h - jc open_err ; if failed, return error code - lds bx,dword ptr [bp+6] ; get handle pointer - mov word ptr [bx],ax ; save the handle - xor ax,ax ; return zero for OK -open_err: pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jdos_open endp - - -; -; short far jdos_close (short handle) -; -; Close the file handle -; -_jdos_close proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov bx,word ptr [bp+6] ; file handle - mov ah,3eh ; close file - int 21h - jc close_err ; if failed, return error code - xor ax,ax ; return zero for OK -close_err: pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jdos_close endp - - -; -; short far jdos_seek (short handle, long offset) -; -; Set file position -; -_jdos_seek proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov bx,word ptr [bp+6] ; file handle - mov dx,word ptr [bp+8] ; LS offset - mov cx,word ptr [bp+10] ; MS offset - mov ax,4200h ; absolute seek - int 21h - jc seek_err ; if failed, return error code - xor ax,ax ; return zero for OK -seek_err: pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jdos_seek endp - - -; -; short far jdos_read (short handle, void far * buffer, unsigned short count) -; -; Read from file -; -_jdos_read proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov bx,word ptr [bp+6] ; file handle - lds dx,dword ptr [bp+8] ; buffer address - mov cx,word ptr [bp+12] ; number of bytes - mov ah,3fh ; read file - int 21h - jc read_err ; if failed, return error code - cmp ax,word ptr [bp+12] ; make sure all bytes were read - je read_ok - mov ax,1 ; else return 1 for not OK - jmp short read_err -read_ok: xor ax,ax ; return zero for OK -read_err: pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jdos_read endp - - -; -; short far jdos_write (short handle, void far * buffer, unsigned short count) -; -; Write to file -; -_jdos_write proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov bx,word ptr [bp+6] ; file handle - lds dx,dword ptr [bp+8] ; buffer address - mov cx,word ptr [bp+12] ; number of bytes - mov ah,40h ; write file - int 21h - jc write_err ; if failed, return error code - cmp ax,word ptr [bp+12] ; make sure all bytes written - je write_ok - mov ax,1 ; else return 1 for not OK - jmp short write_err -write_ok: xor ax,ax ; return zero for OK -write_err: pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jdos_write endp - - -; -; void far jxms_getdriver (XMSDRIVER far *) -; -; Get the address of the XMS driver, or NULL if not available -; -_jxms_getdriver proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov ax,4300h ; call multiplex interrupt with - int 2fh ; a magic cookie, hex 4300 - cmp al,80h ; AL should contain hex 80 - je xmsavail - xor dx,dx ; no XMS driver available - xor ax,ax ; return a nil pointer - jmp short xmsavail_done -xmsavail: mov ax,4310h ; fetch driver address with - int 2fh ; another magic cookie - mov dx,es ; copy address to dx:ax - mov ax,bx -xmsavail_done: les bx,dword ptr [bp+6] ; get pointer to return value - mov word ptr es:[bx],ax - mov word ptr es:[bx+2],dx - pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jxms_getdriver endp - - -; -; void far jxms_calldriver (XMSDRIVER, XMScontext far *) -; -; The XMScontext structure contains values for the AX,DX,BX,SI,DS registers. -; These are loaded, the XMS call is performed, and the new values of the -; AX,DX,BX registers are written back to the context structure. -; -_jxms_calldriver proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - les bx,dword ptr [bp+10] ; get XMScontext pointer - mov ax,word ptr es:[bx] ; load registers - mov dx,word ptr es:[bx+2] - mov si,word ptr es:[bx+6] - mov ds,word ptr es:[bx+8] - mov bx,word ptr es:[bx+4] - call dword ptr [bp+6] ; call the driver - mov cx,bx ; save returned BX for a sec - les bx,dword ptr [bp+10] ; get XMScontext pointer - mov word ptr es:[bx],ax ; put back ax,dx,bx - mov word ptr es:[bx+2],dx - mov word ptr es:[bx+4],cx - pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jxms_calldriver endp - - -; -; short far jems_available (void) -; -; Have we got an EMS driver? (this comes straight from the EMS 4.0 specs) -; -_jems_available proc far - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - mov ax,3567h ; get interrupt vector 67h - int 21h - push cs - pop ds - mov di,000ah ; check offs 10 in returned seg - lea si,ASCII_device_name ; against literal string - mov cx,8 - cld - repe cmpsb - jne no_ems - mov ax,1 ; match, it's there - jmp short avail_done -no_ems: xor ax,ax ; it's not there -avail_done: pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - ret - -ASCII_device_name db "EMMXXXX0" - -_jems_available endp - - -; -; void far jems_calldriver (EMScontext far *) -; -; The EMScontext structure contains values for the AX,DX,BX,SI,DS registers. -; These are loaded, the EMS trap is performed, and the new values of the -; AX,DX,BX registers are written back to the context structure. -; -_jems_calldriver proc far - push bp ; linkage - mov bp,sp - push si ; save all registers for safety - push di - push bx - push cx - push dx - push es - push ds - les bx,dword ptr [bp+6] ; get EMScontext pointer - mov ax,word ptr es:[bx] ; load registers - mov dx,word ptr es:[bx+2] - mov si,word ptr es:[bx+6] - mov ds,word ptr es:[bx+8] - mov bx,word ptr es:[bx+4] - int 67h ; call the EMS driver - mov cx,bx ; save returned BX for a sec - les bx,dword ptr [bp+6] ; get EMScontext pointer - mov word ptr es:[bx],ax ; put back ax,dx,bx - mov word ptr es:[bx+2],dx - mov word ptr es:[bx+4],cx - pop ds ; restore registers and exit - pop es - pop dx - pop cx - pop bx - pop di - pop si - pop bp - ret -_jems_calldriver endp - -JMEMDOSA_TXT ends - - end diff --git a/src/jpeg/jmemmac.c b/src/jpeg/jmemmac.c deleted file mode 100644 index 106f9bea05..0000000000 --- a/src/jpeg/jmemmac.c +++ /dev/null @@ -1,289 +0,0 @@ -/* - * jmemmac.c - * - * Copyright (C) 1992-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * jmemmac.c provides an Apple Macintosh implementation of the system- - * dependent portion of the JPEG memory manager. - * - * If you use jmemmac.c, then you must define USE_MAC_MEMMGR in the - * JPEG_INTERNALS part of jconfig.h. - * - * jmemmac.c uses the Macintosh toolbox routines NewPtr and DisposePtr - * instead of malloc and free. It accurately determines the amount of - * memory available by using CompactMem. Notice that if left to its - * own devices, this code can chew up all available space in the - * application's zone, with the exception of the rather small "slop" - * factor computed in jpeg_mem_available(). The application can ensure - * that more space is left over by reducing max_memory_to_use. - * - * Large images are swapped to disk using temporary files and System 7.0+'s - * temporary folder functionality. - * - * Note that jmemmac.c depends on two features of MacOS that were first - * introduced in System 7: FindFolder and the FSSpec-based calls. - * If your application uses jmemmac.c and is run under System 6 or earlier, - * and the jpeg library decides it needs a temporary file, it will abort, - * printing error messages about requiring System 7. (If no temporary files - * are created, it will run fine.) - * - * If you want to use jmemmac.c in an application that might be used with - * System 6 or earlier, then you should remove dependencies on FindFolder - * and the FSSpec calls. You will need to replace FindFolder with some - * other mechanism for finding a place to put temporary files, and you - * should replace the FSSpec calls with their HFS equivalents: - * - * FSpDelete -> HDelete - * FSpGetFInfo -> HGetFInfo - * FSpCreate -> HCreate - * FSpOpenDF -> HOpen *** Note: not HOpenDF *** - * FSMakeFSSpec -> (fill in spec by hand.) - * - * (Use HOpen instead of HOpenDF. HOpen is just a glue-interface to PBHOpen, - * which is on all HFS macs. HOpenDF is a System 7 addition which avoids the - * ages-old problem of names starting with a period.) - * - * Contributed by Sam Bushell (jsam@iagu.on.net) and - * Dan Gildor (gyld@in-touch.com). - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jmemsys.h" /* import the system-dependent declarations */ - -#ifndef USE_MAC_MEMMGR /* make sure user got configuration right */ - You forgot to define USE_MAC_MEMMGR in jconfig.h. /* deliberate syntax error */ -#endif - -#include /* we use the MacOS memory manager */ -#include /* we use the MacOS File stuff */ -#include /* we use the MacOS HFS stuff */ -#include /* for smSystemScript */ -#include /* we use Gestalt to test for specific functionality */ - -#ifndef TEMP_FILE_NAME /* can override from jconfig.h or Makefile */ -#define TEMP_FILE_NAME "JPG%03d.TMP" -#endif - -static int next_file_num; /* to distinguish among several temp files */ - - -/* - * Memory allocation and freeing are controlled by the MacOS library - * routines NewPtr() and DisposePtr(), which allocate fixed-address - * storage. Unfortunately, the IJG library isn't smart enough to cope - * with relocatable storage. - */ - -GLOBAL(void *) -jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void *) NewPtr(sizeofobject); -} - -GLOBAL(void) -jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) -{ - DisposePtr((Ptr) object); -} - - -/* - * "Large" objects are treated the same as "small" ones. - * NB: we include FAR keywords in the routine declarations simply for - * consistency with the rest of the IJG code; FAR should expand to empty - * on rational architectures like the Mac. - */ - -GLOBAL(void FAR *) -jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void FAR *) NewPtr(sizeofobject); -} - -GLOBAL(void) -jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) -{ - DisposePtr((Ptr) object); -} - - -/* - * This routine computes the total memory space available for allocation. - */ - -GLOBAL(long) -jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, - long max_bytes_needed, long already_allocated) -{ - long limit = cinfo->mem->max_memory_to_use - already_allocated; - long slop, mem; - - /* Don't ask for more than what application has told us we may use */ - if (max_bytes_needed > limit && limit > 0) - max_bytes_needed = limit; - /* Find whether there's a big enough free block in the heap. - * CompactMem tries to create a contiguous block of the requested size, - * and then returns the size of the largest free block (which could be - * much more or much less than we asked for). - * We add some slop to ensure we don't use up all available memory. - */ - slop = max_bytes_needed / 16 + 32768L; - mem = CompactMem(max_bytes_needed + slop) - slop; - if (mem < 0) - mem = 0; /* sigh, couldn't even get the slop */ - /* Don't take more than the application says we can have */ - if (mem > limit && limit > 0) - mem = limit; - return mem; -} - - -/* - * Backing store (temporary file) management. - * Backing store objects are only used when the value returned by - * jpeg_mem_available is less than the total space needed. You can dispense - * with these routines if you have plenty of virtual memory; see jmemnobs.c. - */ - - -METHODDEF(void) -read_backing_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - long bytes = byte_count; - long retVal; - - if ( SetFPos ( info->temp_file, fsFromStart, file_offset ) != noErr ) - ERREXIT(cinfo, JERR_TFILE_SEEK); - - retVal = FSRead ( info->temp_file, &bytes, - (unsigned char *) buffer_address ); - if ( retVal != noErr || bytes != byte_count ) - ERREXIT(cinfo, JERR_TFILE_READ); -} - - -METHODDEF(void) -write_backing_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - long bytes = byte_count; - long retVal; - - if ( SetFPos ( info->temp_file, fsFromStart, file_offset ) != noErr ) - ERREXIT(cinfo, JERR_TFILE_SEEK); - - retVal = FSWrite ( info->temp_file, &bytes, - (unsigned char *) buffer_address ); - if ( retVal != noErr || bytes != byte_count ) - ERREXIT(cinfo, JERR_TFILE_WRITE); -} - - -METHODDEF(void) -close_backing_store (j_common_ptr cinfo, backing_store_ptr info) -{ - FSClose ( info->temp_file ); - FSpDelete ( &(info->tempSpec) ); -} - - -/* - * Initial opening of a backing-store object. - * - * This version uses FindFolder to find the Temporary Items folder, - * and puts the temporary file in there. - */ - -GLOBAL(void) -jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - short tmpRef, vRefNum; - long dirID; - FInfo finderInfo; - FSSpec theSpec; - Str255 fName; - OSErr osErr; - long gestaltResponse = 0; - - /* Check that FSSpec calls are available. */ - osErr = Gestalt( gestaltFSAttr, &gestaltResponse ); - if ( ( osErr != noErr ) - || !( gestaltResponse & (1<temp_name, TEMP_FILE_NAME, next_file_num); - strcpy ( (Ptr)fName+1, info->temp_name ); - *fName = strlen (info->temp_name); - osErr = FSMakeFSSpec ( vRefNum, dirID, fName, &theSpec ); - - if ( (osErr = FSpGetFInfo ( &theSpec, &finderInfo ) ) != noErr ) - break; - } - - osErr = FSpCreate ( &theSpec, '????', '????', smSystemScript ); - if ( osErr != noErr ) - ERREXITS(cinfo, JERR_TFILE_CREATE, info->temp_name); - - osErr = FSpOpenDF ( &theSpec, fsRdWrPerm, &(info->temp_file) ); - if ( osErr != noErr ) - ERREXITS(cinfo, JERR_TFILE_CREATE, info->temp_name); - - info->tempSpec = theSpec; - - info->read_backing_store = read_backing_store; - info->write_backing_store = write_backing_store; - info->close_backing_store = close_backing_store; - TRACEMSS(cinfo, 1, JTRC_TFILE_OPEN, info->temp_name); -} - - -/* - * These routines take care of any system-dependent initialization and - * cleanup required. - */ - -GLOBAL(long) -jpeg_mem_init (j_common_ptr cinfo) -{ - next_file_num = 0; - - /* max_memory_to_use will be initialized to FreeMem()'s result; - * the calling application might later reduce it, for example - * to leave room to invoke multiple JPEG objects. - * Note that FreeMem returns the total number of free bytes; - * it may not be possible to allocate a single block of this size. - */ - return FreeMem(); -} - -GLOBAL(void) -jpeg_mem_term (j_common_ptr cinfo) -{ - /* no work */ -} diff --git a/src/jpeg/jmemmgr.c b/src/jpeg/jmemmgr.c deleted file mode 100644 index d801b322da..0000000000 --- a/src/jpeg/jmemmgr.c +++ /dev/null @@ -1,1118 +0,0 @@ -/* - * jmemmgr.c - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains the JPEG system-independent memory management - * routines. This code is usable across a wide variety of machines; most - * of the system dependencies have been isolated in a separate file. - * The major functions provided here are: - * * pool-based allocation and freeing of memory; - * * policy decisions about how to divide available memory among the - * virtual arrays; - * * control logic for swapping virtual arrays between main memory and - * backing storage. - * The separate system-dependent file provides the actual backing-storage - * access code, and it contains the policy decision about how much total - * main memory to use. - * This file is system-dependent in the sense that some of its functions - * are unnecessary in some systems. For example, if there is enough virtual - * memory so that backing storage will never be used, much of the virtual - * array control logic could be removed. (Of course, if you have that much - * memory then you shouldn't care about a little bit of unused code...) - */ - -#define JPEG_INTERNALS -#define AM_MEMORY_MANAGER /* we define jvirt_Xarray_control structs */ -#include "jinclude.h" -#include "jpeglib.h" -#include "jmemsys.h" /* import the system-dependent declarations */ - -#ifndef NO_GETENV -#ifndef HAVE_STDLIB_H /* should declare getenv() */ -extern char * getenv JPP((const char * name)); -#endif -#endif - - -/* - * Some important notes: - * The allocation routines provided here must never return NULL. - * They should exit to error_exit if unsuccessful. - * - * It's not a good idea to try to merge the sarray and barray routines, - * even though they are textually almost the same, because samples are - * usually stored as bytes while coefficients are shorts or ints. Thus, - * in machines where byte pointers have a different representation from - * word pointers, the resulting machine code could not be the same. - */ - - -/* - * Many machines require storage alignment: longs must start on 4-byte - * boundaries, doubles on 8-byte boundaries, etc. On such machines, malloc() - * always returns pointers that are multiples of the worst-case alignment - * requirement, and we had better do so too. - * There isn't any really portable way to determine the worst-case alignment - * requirement. This module assumes that the alignment requirement is - * multiples of sizeof(ALIGN_TYPE). - * By default, we define ALIGN_TYPE as double. This is necessary on some - * workstations (where doubles really do need 8-byte alignment) and will work - * fine on nearly everything. If your machine has lesser alignment needs, - * you can save a few bytes by making ALIGN_TYPE smaller. - * The only place I know of where this will NOT work is certain Macintosh - * 680x0 compilers that define double as a 10-byte IEEE extended float. - * Doing 10-byte alignment is counterproductive because longwords won't be - * aligned well. Put "#define ALIGN_TYPE long" in jconfig.h if you have - * such a compiler. - */ - -#ifndef ALIGN_TYPE /* so can override from jconfig.h */ -#define ALIGN_TYPE double -#endif - - -/* - * We allocate objects from "pools", where each pool is gotten with a single - * request to jpeg_get_small() or jpeg_get_large(). There is no per-object - * overhead within a pool, except for alignment padding. Each pool has a - * header with a link to the next pool of the same class. - * Small and large pool headers are identical except that the latter's - * link pointer must be FAR on 80x86 machines. - * Notice that the "real" header fields are union'ed with a dummy ALIGN_TYPE - * field. This forces the compiler to make SIZEOF(small_pool_hdr) a multiple - * of the alignment requirement of ALIGN_TYPE. - */ - -typedef union small_pool_struct * small_pool_ptr; - -typedef union small_pool_struct { - struct { - small_pool_ptr next; /* next in list of pools */ - size_t bytes_used; /* how many bytes already used within pool */ - size_t bytes_left; /* bytes still available in this pool */ - } hdr; - ALIGN_TYPE dummy; /* included in union to ensure alignment */ -} small_pool_hdr; - -typedef union large_pool_struct FAR * large_pool_ptr; - -typedef union large_pool_struct { - struct { - large_pool_ptr next; /* next in list of pools */ - size_t bytes_used; /* how many bytes already used within pool */ - size_t bytes_left; /* bytes still available in this pool */ - } hdr; - ALIGN_TYPE dummy; /* included in union to ensure alignment */ -} large_pool_hdr; - - -/* - * Here is the full definition of a memory manager object. - */ - -typedef struct { - struct jpeg_memory_mgr pub; /* public fields */ - - /* Each pool identifier (lifetime class) names a linked list of pools. */ - small_pool_ptr small_list[JPOOL_NUMPOOLS]; - large_pool_ptr large_list[JPOOL_NUMPOOLS]; - - /* Since we only have one lifetime class of virtual arrays, only one - * linked list is necessary (for each datatype). Note that the virtual - * array control blocks being linked together are actually stored somewhere - * in the small-pool list. - */ - jvirt_sarray_ptr virt_sarray_list; - jvirt_barray_ptr virt_barray_list; - - /* This counts total space obtained from jpeg_get_small/large */ - long total_space_allocated; - - /* alloc_sarray and alloc_barray set this value for use by virtual - * array routines. - */ - JDIMENSION last_rowsperchunk; /* from most recent alloc_sarray/barray */ -} my_memory_mgr; - -typedef my_memory_mgr * my_mem_ptr; - - -/* - * The control blocks for virtual arrays. - * Note that these blocks are allocated in the "small" pool area. - * System-dependent info for the associated backing store (if any) is hidden - * inside the backing_store_info struct. - */ - -struct jvirt_sarray_control { - JSAMPARRAY mem_buffer; /* => the in-memory buffer */ - JDIMENSION rows_in_array; /* total virtual array height */ - JDIMENSION samplesperrow; /* width of array (and of memory buffer) */ - JDIMENSION maxaccess; /* max rows accessed by access_virt_sarray */ - JDIMENSION rows_in_mem; /* height of memory buffer */ - JDIMENSION rowsperchunk; /* allocation chunk size in mem_buffer */ - JDIMENSION cur_start_row; /* first logical row # in the buffer */ - JDIMENSION first_undef_row; /* row # of first uninitialized row */ - boolean pre_zero; /* pre-zero mode requested? */ - boolean dirty; /* do current buffer contents need written? */ - boolean b_s_open; /* is backing-store data valid? */ - jvirt_sarray_ptr next; /* link to next virtual sarray control block */ - backing_store_info b_s_info; /* System-dependent control info */ -}; - -struct jvirt_barray_control { - JBLOCKARRAY mem_buffer; /* => the in-memory buffer */ - JDIMENSION rows_in_array; /* total virtual array height */ - JDIMENSION blocksperrow; /* width of array (and of memory buffer) */ - JDIMENSION maxaccess; /* max rows accessed by access_virt_barray */ - JDIMENSION rows_in_mem; /* height of memory buffer */ - JDIMENSION rowsperchunk; /* allocation chunk size in mem_buffer */ - JDIMENSION cur_start_row; /* first logical row # in the buffer */ - JDIMENSION first_undef_row; /* row # of first uninitialized row */ - boolean pre_zero; /* pre-zero mode requested? */ - boolean dirty; /* do current buffer contents need written? */ - boolean b_s_open; /* is backing-store data valid? */ - jvirt_barray_ptr next; /* link to next virtual barray control block */ - backing_store_info b_s_info; /* System-dependent control info */ -}; - - -#ifdef MEM_STATS /* optional extra stuff for statistics */ - -LOCAL(void) -print_mem_stats (j_common_ptr cinfo, int pool_id) -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - small_pool_ptr shdr_ptr; - large_pool_ptr lhdr_ptr; - - /* Since this is only a debugging stub, we can cheat a little by using - * fprintf directly rather than going through the trace message code. - * This is helpful because message parm array can't handle longs. - */ - fprintf(stderr, "Freeing pool %d, total space = %ld\n", - pool_id, mem->total_space_allocated); - - for (lhdr_ptr = mem->large_list[pool_id]; lhdr_ptr != NULL; - lhdr_ptr = lhdr_ptr->hdr.next) { - fprintf(stderr, " Large chunk used %ld\n", - (long) lhdr_ptr->hdr.bytes_used); - } - - for (shdr_ptr = mem->small_list[pool_id]; shdr_ptr != NULL; - shdr_ptr = shdr_ptr->hdr.next) { - fprintf(stderr, " Small chunk used %ld free %ld\n", - (long) shdr_ptr->hdr.bytes_used, - (long) shdr_ptr->hdr.bytes_left); - } -} - -#endif /* MEM_STATS */ - - -LOCAL(void) -out_of_memory (j_common_ptr cinfo, int which) -/* Report an out-of-memory error and stop execution */ -/* If we compiled MEM_STATS support, report alloc requests before dying */ -{ -#ifdef MEM_STATS - cinfo->err->trace_level = 2; /* force self_destruct to report stats */ -#endif - ERREXIT1(cinfo, JERR_OUT_OF_MEMORY, which); -} - - -/* - * Allocation of "small" objects. - * - * For these, we use pooled storage. When a new pool must be created, - * we try to get enough space for the current request plus a "slop" factor, - * where the slop will be the amount of leftover space in the new pool. - * The speed vs. space tradeoff is largely determined by the slop values. - * A different slop value is provided for each pool class (lifetime), - * and we also distinguish the first pool of a class from later ones. - * NOTE: the values given work fairly well on both 16- and 32-bit-int - * machines, but may be too small if longs are 64 bits or more. - */ - -static const size_t first_pool_slop[JPOOL_NUMPOOLS] = -{ - 1600, /* first PERMANENT pool */ - 16000 /* first IMAGE pool */ -}; - -static const size_t extra_pool_slop[JPOOL_NUMPOOLS] = -{ - 0, /* additional PERMANENT pools */ - 5000 /* additional IMAGE pools */ -}; - -#define MIN_SLOP 50 /* greater than 0 to avoid futile looping */ - - -METHODDEF(void *) -alloc_small (j_common_ptr cinfo, int pool_id, size_t sizeofobject) -/* Allocate a "small" object */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - small_pool_ptr hdr_ptr, prev_hdr_ptr; - char * data_ptr; - size_t odd_bytes, min_request, slop; - - /* Check for unsatisfiable request (do now to ensure no overflow below) */ - if (sizeofobject > (size_t) (MAX_ALLOC_CHUNK-SIZEOF(small_pool_hdr))) - out_of_memory(cinfo, 1); /* request exceeds malloc's ability */ - - /* Round up the requested size to a multiple of SIZEOF(ALIGN_TYPE) */ - odd_bytes = sizeofobject % SIZEOF(ALIGN_TYPE); - if (odd_bytes > 0) - sizeofobject += SIZEOF(ALIGN_TYPE) - odd_bytes; - - /* See if space is available in any existing pool */ - if (pool_id < 0 || pool_id >= JPOOL_NUMPOOLS) - ERREXIT1(cinfo, JERR_BAD_POOL_ID, pool_id); /* safety check */ - prev_hdr_ptr = NULL; - hdr_ptr = mem->small_list[pool_id]; - while (hdr_ptr != NULL) { - if (hdr_ptr->hdr.bytes_left >= sizeofobject) - break; /* found pool with enough space */ - prev_hdr_ptr = hdr_ptr; - hdr_ptr = hdr_ptr->hdr.next; - } - - /* Time to make a new pool? */ - if (hdr_ptr == NULL) { - /* min_request is what we need now, slop is what will be leftover */ - min_request = sizeofobject + SIZEOF(small_pool_hdr); - if (prev_hdr_ptr == NULL) /* first pool in class? */ - slop = first_pool_slop[pool_id]; - else - slop = extra_pool_slop[pool_id]; - /* Don't ask for more than MAX_ALLOC_CHUNK */ - if (slop > (size_t) (MAX_ALLOC_CHUNK-min_request)) - slop = (size_t) (MAX_ALLOC_CHUNK-min_request); - /* Try to get space, if fail reduce slop and try again */ - for (;;) { - hdr_ptr = (small_pool_ptr) jpeg_get_small(cinfo, min_request + slop); - if (hdr_ptr != NULL) - break; - slop /= 2; - if (slop < MIN_SLOP) /* give up when it gets real small */ - out_of_memory(cinfo, 2); /* jpeg_get_small failed */ - } - mem->total_space_allocated += min_request + slop; - /* Success, initialize the new pool header and add to end of list */ - hdr_ptr->hdr.next = NULL; - hdr_ptr->hdr.bytes_used = 0; - hdr_ptr->hdr.bytes_left = sizeofobject + slop; - if (prev_hdr_ptr == NULL) /* first pool in class? */ - mem->small_list[pool_id] = hdr_ptr; - else - prev_hdr_ptr->hdr.next = hdr_ptr; - } - - /* OK, allocate the object from the current pool */ - data_ptr = (char *) (hdr_ptr + 1); /* point to first data byte in pool */ - data_ptr += hdr_ptr->hdr.bytes_used; /* point to place for object */ - hdr_ptr->hdr.bytes_used += sizeofobject; - hdr_ptr->hdr.bytes_left -= sizeofobject; - - return (void *) data_ptr; -} - - -/* - * Allocation of "large" objects. - * - * The external semantics of these are the same as "small" objects, - * except that FAR pointers are used on 80x86. However the pool - * management heuristics are quite different. We assume that each - * request is large enough that it may as well be passed directly to - * jpeg_get_large; the pool management just links everything together - * so that we can free it all on demand. - * Note: the major use of "large" objects is in JSAMPARRAY and JBLOCKARRAY - * structures. The routines that create these structures (see below) - * deliberately bunch rows together to ensure a large request size. - */ - -METHODDEF(void FAR *) -alloc_large (j_common_ptr cinfo, int pool_id, size_t sizeofobject) -/* Allocate a "large" object */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - large_pool_ptr hdr_ptr; - size_t odd_bytes; - - /* Check for unsatisfiable request (do now to ensure no overflow below) */ - if (sizeofobject > (size_t) (MAX_ALLOC_CHUNK-SIZEOF(large_pool_hdr))) - out_of_memory(cinfo, 3); /* request exceeds malloc's ability */ - - /* Round up the requested size to a multiple of SIZEOF(ALIGN_TYPE) */ - odd_bytes = sizeofobject % SIZEOF(ALIGN_TYPE); - if (odd_bytes > 0) - sizeofobject += SIZEOF(ALIGN_TYPE) - odd_bytes; - - /* Always make a new pool */ - if (pool_id < 0 || pool_id >= JPOOL_NUMPOOLS) - ERREXIT1(cinfo, JERR_BAD_POOL_ID, pool_id); /* safety check */ - - hdr_ptr = (large_pool_ptr) jpeg_get_large(cinfo, sizeofobject + - SIZEOF(large_pool_hdr)); - if (hdr_ptr == NULL) - out_of_memory(cinfo, 4); /* jpeg_get_large failed */ - mem->total_space_allocated += sizeofobject + SIZEOF(large_pool_hdr); - - /* Success, initialize the new pool header and add to list */ - hdr_ptr->hdr.next = mem->large_list[pool_id]; - /* We maintain space counts in each pool header for statistical purposes, - * even though they are not needed for allocation. - */ - hdr_ptr->hdr.bytes_used = sizeofobject; - hdr_ptr->hdr.bytes_left = 0; - mem->large_list[pool_id] = hdr_ptr; - - return (void FAR *) (hdr_ptr + 1); /* point to first data byte in pool */ -} - - -/* - * Creation of 2-D sample arrays. - * The pointers are in near heap, the samples themselves in FAR heap. - * - * To minimize allocation overhead and to allow I/O of large contiguous - * blocks, we allocate the sample rows in groups of as many rows as possible - * without exceeding MAX_ALLOC_CHUNK total bytes per allocation request. - * NB: the virtual array control routines, later in this file, know about - * this chunking of rows. The rowsperchunk value is left in the mem manager - * object so that it can be saved away if this sarray is the workspace for - * a virtual array. - */ - -METHODDEF(JSAMPARRAY) -alloc_sarray (j_common_ptr cinfo, int pool_id, - JDIMENSION samplesperrow, JDIMENSION numrows) -/* Allocate a 2-D sample array */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - JSAMPARRAY result; - JSAMPROW workspace; - JDIMENSION rowsperchunk, currow, i; - long ltemp; - - /* Calculate max # of rows allowed in one allocation chunk */ - ltemp = (MAX_ALLOC_CHUNK-SIZEOF(large_pool_hdr)) / - ((long) samplesperrow * SIZEOF(JSAMPLE)); - if (ltemp <= 0) - ERREXIT(cinfo, JERR_WIDTH_OVERFLOW); - if (ltemp < (long) numrows) - rowsperchunk = (JDIMENSION) ltemp; - else - rowsperchunk = numrows; - mem->last_rowsperchunk = rowsperchunk; - - /* Get space for row pointers (small object) */ - result = (JSAMPARRAY) alloc_small(cinfo, pool_id, - (size_t) (numrows * SIZEOF(JSAMPROW))); - - /* Get the rows themselves (large objects) */ - currow = 0; - while (currow < numrows) { - rowsperchunk = MIN(rowsperchunk, numrows - currow); - workspace = (JSAMPROW) alloc_large(cinfo, pool_id, - (size_t) ((size_t) rowsperchunk * (size_t) samplesperrow - * SIZEOF(JSAMPLE))); - for (i = rowsperchunk; i > 0; i--) { - result[currow++] = workspace; - workspace += samplesperrow; - } - } - - return result; -} - - -/* - * Creation of 2-D coefficient-block arrays. - * This is essentially the same as the code for sample arrays, above. - */ - -METHODDEF(JBLOCKARRAY) -alloc_barray (j_common_ptr cinfo, int pool_id, - JDIMENSION blocksperrow, JDIMENSION numrows) -/* Allocate a 2-D coefficient-block array */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - JBLOCKARRAY result; - JBLOCKROW workspace; - JDIMENSION rowsperchunk, currow, i; - long ltemp; - - /* Calculate max # of rows allowed in one allocation chunk */ - ltemp = (MAX_ALLOC_CHUNK-SIZEOF(large_pool_hdr)) / - ((long) blocksperrow * SIZEOF(JBLOCK)); - if (ltemp <= 0) - ERREXIT(cinfo, JERR_WIDTH_OVERFLOW); - if (ltemp < (long) numrows) - rowsperchunk = (JDIMENSION) ltemp; - else - rowsperchunk = numrows; - mem->last_rowsperchunk = rowsperchunk; - - /* Get space for row pointers (small object) */ - result = (JBLOCKARRAY) alloc_small(cinfo, pool_id, - (size_t) (numrows * SIZEOF(JBLOCKROW))); - - /* Get the rows themselves (large objects) */ - currow = 0; - while (currow < numrows) { - rowsperchunk = MIN(rowsperchunk, numrows - currow); - workspace = (JBLOCKROW) alloc_large(cinfo, pool_id, - (size_t) ((size_t) rowsperchunk * (size_t) blocksperrow - * SIZEOF(JBLOCK))); - for (i = rowsperchunk; i > 0; i--) { - result[currow++] = workspace; - workspace += blocksperrow; - } - } - - return result; -} - - -/* - * About virtual array management: - * - * The above "normal" array routines are only used to allocate strip buffers - * (as wide as the image, but just a few rows high). Full-image-sized buffers - * are handled as "virtual" arrays. The array is still accessed a strip at a - * time, but the memory manager must save the whole array for repeated - * accesses. The intended implementation is that there is a strip buffer in - * memory (as high as is possible given the desired memory limit), plus a - * backing file that holds the rest of the array. - * - * The request_virt_array routines are told the total size of the image and - * the maximum number of rows that will be accessed at once. The in-memory - * buffer must be at least as large as the maxaccess value. - * - * The request routines create control blocks but not the in-memory buffers. - * That is postponed until realize_virt_arrays is called. At that time the - * total amount of space needed is known (approximately, anyway), so free - * memory can be divided up fairly. - * - * The access_virt_array routines are responsible for making a specific strip - * area accessible (after reading or writing the backing file, if necessary). - * Note that the access routines are told whether the caller intends to modify - * the accessed strip; during a read-only pass this saves having to rewrite - * data to disk. The access routines are also responsible for pre-zeroing - * any newly accessed rows, if pre-zeroing was requested. - * - * In current usage, the access requests are usually for nonoverlapping - * strips; that is, successive access start_row numbers differ by exactly - * num_rows = maxaccess. This means we can get good performance with simple - * buffer dump/reload logic, by making the in-memory buffer be a multiple - * of the access height; then there will never be accesses across bufferload - * boundaries. The code will still work with overlapping access requests, - * but it doesn't handle bufferload overlaps very efficiently. - */ - - -METHODDEF(jvirt_sarray_ptr) -request_virt_sarray (j_common_ptr cinfo, int pool_id, boolean pre_zero, - JDIMENSION samplesperrow, JDIMENSION numrows, - JDIMENSION maxaccess) -/* Request a virtual 2-D sample array */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - jvirt_sarray_ptr result; - - /* Only IMAGE-lifetime virtual arrays are currently supported */ - if (pool_id != JPOOL_IMAGE) - ERREXIT1(cinfo, JERR_BAD_POOL_ID, pool_id); /* safety check */ - - /* get control block */ - result = (jvirt_sarray_ptr) alloc_small(cinfo, pool_id, - SIZEOF(struct jvirt_sarray_control)); - - result->mem_buffer = NULL; /* marks array not yet realized */ - result->rows_in_array = numrows; - result->samplesperrow = samplesperrow; - result->maxaccess = maxaccess; - result->pre_zero = pre_zero; - result->b_s_open = FALSE; /* no associated backing-store object */ - result->next = mem->virt_sarray_list; /* add to list of virtual arrays */ - mem->virt_sarray_list = result; - - return result; -} - - -METHODDEF(jvirt_barray_ptr) -request_virt_barray (j_common_ptr cinfo, int pool_id, boolean pre_zero, - JDIMENSION blocksperrow, JDIMENSION numrows, - JDIMENSION maxaccess) -/* Request a virtual 2-D coefficient-block array */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - jvirt_barray_ptr result; - - /* Only IMAGE-lifetime virtual arrays are currently supported */ - if (pool_id != JPOOL_IMAGE) - ERREXIT1(cinfo, JERR_BAD_POOL_ID, pool_id); /* safety check */ - - /* get control block */ - result = (jvirt_barray_ptr) alloc_small(cinfo, pool_id, - SIZEOF(struct jvirt_barray_control)); - - result->mem_buffer = NULL; /* marks array not yet realized */ - result->rows_in_array = numrows; - result->blocksperrow = blocksperrow; - result->maxaccess = maxaccess; - result->pre_zero = pre_zero; - result->b_s_open = FALSE; /* no associated backing-store object */ - result->next = mem->virt_barray_list; /* add to list of virtual arrays */ - mem->virt_barray_list = result; - - return result; -} - - -METHODDEF(void) -realize_virt_arrays (j_common_ptr cinfo) -/* Allocate the in-memory buffers for any unrealized virtual arrays */ -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - long space_per_minheight, maximum_space, avail_mem; - long minheights, max_minheights; - jvirt_sarray_ptr sptr; - jvirt_barray_ptr bptr; - - /* Compute the minimum space needed (maxaccess rows in each buffer) - * and the maximum space needed (full image height in each buffer). - * These may be of use to the system-dependent jpeg_mem_available routine. - */ - space_per_minheight = 0; - maximum_space = 0; - for (sptr = mem->virt_sarray_list; sptr != NULL; sptr = sptr->next) { - if (sptr->mem_buffer == NULL) { /* if not realized yet */ - space_per_minheight += (long) sptr->maxaccess * - (long) sptr->samplesperrow * SIZEOF(JSAMPLE); - maximum_space += (long) sptr->rows_in_array * - (long) sptr->samplesperrow * SIZEOF(JSAMPLE); - } - } - for (bptr = mem->virt_barray_list; bptr != NULL; bptr = bptr->next) { - if (bptr->mem_buffer == NULL) { /* if not realized yet */ - space_per_minheight += (long) bptr->maxaccess * - (long) bptr->blocksperrow * SIZEOF(JBLOCK); - maximum_space += (long) bptr->rows_in_array * - (long) bptr->blocksperrow * SIZEOF(JBLOCK); - } - } - - if (space_per_minheight <= 0) - return; /* no unrealized arrays, no work */ - - /* Determine amount of memory to actually use; this is system-dependent. */ - avail_mem = jpeg_mem_available(cinfo, space_per_minheight, maximum_space, - mem->total_space_allocated); - - /* If the maximum space needed is available, make all the buffers full - * height; otherwise parcel it out with the same number of minheights - * in each buffer. - */ - if (avail_mem >= maximum_space) - max_minheights = 1000000000L; - else { - max_minheights = avail_mem / space_per_minheight; - /* If there doesn't seem to be enough space, try to get the minimum - * anyway. This allows a "stub" implementation of jpeg_mem_available(). - */ - if (max_minheights <= 0) - max_minheights = 1; - } - - /* Allocate the in-memory buffers and initialize backing store as needed. */ - - for (sptr = mem->virt_sarray_list; sptr != NULL; sptr = sptr->next) { - if (sptr->mem_buffer == NULL) { /* if not realized yet */ - minheights = ((long) sptr->rows_in_array - 1L) / sptr->maxaccess + 1L; - if (minheights <= max_minheights) { - /* This buffer fits in memory */ - sptr->rows_in_mem = sptr->rows_in_array; - } else { - /* It doesn't fit in memory, create backing store. */ - sptr->rows_in_mem = (JDIMENSION) (max_minheights * sptr->maxaccess); - jpeg_open_backing_store(cinfo, & sptr->b_s_info, - (long) sptr->rows_in_array * - (long) sptr->samplesperrow * - (long) SIZEOF(JSAMPLE)); - sptr->b_s_open = TRUE; - } - sptr->mem_buffer = alloc_sarray(cinfo, JPOOL_IMAGE, - sptr->samplesperrow, sptr->rows_in_mem); - sptr->rowsperchunk = mem->last_rowsperchunk; - sptr->cur_start_row = 0; - sptr->first_undef_row = 0; - sptr->dirty = FALSE; - } - } - - for (bptr = mem->virt_barray_list; bptr != NULL; bptr = bptr->next) { - if (bptr->mem_buffer == NULL) { /* if not realized yet */ - minheights = ((long) bptr->rows_in_array - 1L) / bptr->maxaccess + 1L; - if (minheights <= max_minheights) { - /* This buffer fits in memory */ - bptr->rows_in_mem = bptr->rows_in_array; - } else { - /* It doesn't fit in memory, create backing store. */ - bptr->rows_in_mem = (JDIMENSION) (max_minheights * bptr->maxaccess); - jpeg_open_backing_store(cinfo, & bptr->b_s_info, - (long) bptr->rows_in_array * - (long) bptr->blocksperrow * - (long) SIZEOF(JBLOCK)); - bptr->b_s_open = TRUE; - } - bptr->mem_buffer = alloc_barray(cinfo, JPOOL_IMAGE, - bptr->blocksperrow, bptr->rows_in_mem); - bptr->rowsperchunk = mem->last_rowsperchunk; - bptr->cur_start_row = 0; - bptr->first_undef_row = 0; - bptr->dirty = FALSE; - } - } -} - - -LOCAL(void) -do_sarray_io (j_common_ptr cinfo, jvirt_sarray_ptr ptr, boolean writing) -/* Do backing store read or write of a virtual sample array */ -{ - long bytesperrow, file_offset, byte_count, rows, thisrow, i; - - bytesperrow = (long) ptr->samplesperrow * SIZEOF(JSAMPLE); - file_offset = ptr->cur_start_row * bytesperrow; - /* Loop to read or write each allocation chunk in mem_buffer */ - for (i = 0; i < (long) ptr->rows_in_mem; i += ptr->rowsperchunk) { - /* One chunk, but check for short chunk at end of buffer */ - rows = MIN((long) ptr->rowsperchunk, (long) ptr->rows_in_mem - i); - /* Transfer no more than is currently defined */ - thisrow = (long) ptr->cur_start_row + i; - rows = MIN(rows, (long) ptr->first_undef_row - thisrow); - /* Transfer no more than fits in file */ - rows = MIN(rows, (long) ptr->rows_in_array - thisrow); - if (rows <= 0) /* this chunk might be past end of file! */ - break; - byte_count = rows * bytesperrow; - if (writing) - (*ptr->b_s_info.write_backing_store) (cinfo, & ptr->b_s_info, - (void FAR *) ptr->mem_buffer[i], - file_offset, byte_count); - else - (*ptr->b_s_info.read_backing_store) (cinfo, & ptr->b_s_info, - (void FAR *) ptr->mem_buffer[i], - file_offset, byte_count); - file_offset += byte_count; - } -} - - -LOCAL(void) -do_barray_io (j_common_ptr cinfo, jvirt_barray_ptr ptr, boolean writing) -/* Do backing store read or write of a virtual coefficient-block array */ -{ - long bytesperrow, file_offset, byte_count, rows, thisrow, i; - - bytesperrow = (long) ptr->blocksperrow * SIZEOF(JBLOCK); - file_offset = ptr->cur_start_row * bytesperrow; - /* Loop to read or write each allocation chunk in mem_buffer */ - for (i = 0; i < (long) ptr->rows_in_mem; i += ptr->rowsperchunk) { - /* One chunk, but check for short chunk at end of buffer */ - rows = MIN((long) ptr->rowsperchunk, (long) ptr->rows_in_mem - i); - /* Transfer no more than is currently defined */ - thisrow = (long) ptr->cur_start_row + i; - rows = MIN(rows, (long) ptr->first_undef_row - thisrow); - /* Transfer no more than fits in file */ - rows = MIN(rows, (long) ptr->rows_in_array - thisrow); - if (rows <= 0) /* this chunk might be past end of file! */ - break; - byte_count = rows * bytesperrow; - if (writing) - (*ptr->b_s_info.write_backing_store) (cinfo, & ptr->b_s_info, - (void FAR *) ptr->mem_buffer[i], - file_offset, byte_count); - else - (*ptr->b_s_info.read_backing_store) (cinfo, & ptr->b_s_info, - (void FAR *) ptr->mem_buffer[i], - file_offset, byte_count); - file_offset += byte_count; - } -} - - -METHODDEF(JSAMPARRAY) -access_virt_sarray (j_common_ptr cinfo, jvirt_sarray_ptr ptr, - JDIMENSION start_row, JDIMENSION num_rows, - boolean writable) -/* Access the part of a virtual sample array starting at start_row */ -/* and extending for num_rows rows. writable is true if */ -/* caller intends to modify the accessed area. */ -{ - JDIMENSION end_row = start_row + num_rows; - JDIMENSION undef_row; - - /* debugging check */ - if (end_row > ptr->rows_in_array || num_rows > ptr->maxaccess || - ptr->mem_buffer == NULL) - ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS); - - /* Make the desired part of the virtual array accessible */ - if (start_row < ptr->cur_start_row || - end_row > ptr->cur_start_row+ptr->rows_in_mem) { - if (! ptr->b_s_open) - ERREXIT(cinfo, JERR_VIRTUAL_BUG); - /* Flush old buffer contents if necessary */ - if (ptr->dirty) { - do_sarray_io(cinfo, ptr, TRUE); - ptr->dirty = FALSE; - } - /* Decide what part of virtual array to access. - * Algorithm: if target address > current window, assume forward scan, - * load starting at target address. If target address < current window, - * assume backward scan, load so that target area is top of window. - * Note that when switching from forward write to forward read, will have - * start_row = 0, so the limiting case applies and we load from 0 anyway. - */ - if (start_row > ptr->cur_start_row) { - ptr->cur_start_row = start_row; - } else { - /* use long arithmetic here to avoid overflow & unsigned problems */ - long ltemp; - - ltemp = (long) end_row - (long) ptr->rows_in_mem; - if (ltemp < 0) - ltemp = 0; /* don't fall off front end of file */ - ptr->cur_start_row = (JDIMENSION) ltemp; - } - /* Read in the selected part of the array. - * During the initial write pass, we will do no actual read - * because the selected part is all undefined. - */ - do_sarray_io(cinfo, ptr, FALSE); - } - /* Ensure the accessed part of the array is defined; prezero if needed. - * To improve locality of access, we only prezero the part of the array - * that the caller is about to access, not the entire in-memory array. - */ - if (ptr->first_undef_row < end_row) { - if (ptr->first_undef_row < start_row) { - if (writable) /* writer skipped over a section of array */ - ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS); - undef_row = start_row; /* but reader is allowed to read ahead */ - } else { - undef_row = ptr->first_undef_row; - } - if (writable) - ptr->first_undef_row = end_row; - if (ptr->pre_zero) { - size_t bytesperrow = (size_t) ptr->samplesperrow * SIZEOF(JSAMPLE); - undef_row -= ptr->cur_start_row; /* make indexes relative to buffer */ - end_row -= ptr->cur_start_row; - while (undef_row < end_row) { - jzero_far((void FAR *) ptr->mem_buffer[undef_row], bytesperrow); - undef_row++; - } - } else { - if (! writable) /* reader looking at undefined data */ - ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS); - } - } - /* Flag the buffer dirty if caller will write in it */ - if (writable) - ptr->dirty = TRUE; - /* Return address of proper part of the buffer */ - return ptr->mem_buffer + (start_row - ptr->cur_start_row); -} - - -METHODDEF(JBLOCKARRAY) -access_virt_barray (j_common_ptr cinfo, jvirt_barray_ptr ptr, - JDIMENSION start_row, JDIMENSION num_rows, - boolean writable) -/* Access the part of a virtual block array starting at start_row */ -/* and extending for num_rows rows. writable is true if */ -/* caller intends to modify the accessed area. */ -{ - JDIMENSION end_row = start_row + num_rows; - JDIMENSION undef_row; - - /* debugging check */ - if (end_row > ptr->rows_in_array || num_rows > ptr->maxaccess || - ptr->mem_buffer == NULL) - ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS); - - /* Make the desired part of the virtual array accessible */ - if (start_row < ptr->cur_start_row || - end_row > ptr->cur_start_row+ptr->rows_in_mem) { - if (! ptr->b_s_open) - ERREXIT(cinfo, JERR_VIRTUAL_BUG); - /* Flush old buffer contents if necessary */ - if (ptr->dirty) { - do_barray_io(cinfo, ptr, TRUE); - ptr->dirty = FALSE; - } - /* Decide what part of virtual array to access. - * Algorithm: if target address > current window, assume forward scan, - * load starting at target address. If target address < current window, - * assume backward scan, load so that target area is top of window. - * Note that when switching from forward write to forward read, will have - * start_row = 0, so the limiting case applies and we load from 0 anyway. - */ - if (start_row > ptr->cur_start_row) { - ptr->cur_start_row = start_row; - } else { - /* use long arithmetic here to avoid overflow & unsigned problems */ - long ltemp; - - ltemp = (long) end_row - (long) ptr->rows_in_mem; - if (ltemp < 0) - ltemp = 0; /* don't fall off front end of file */ - ptr->cur_start_row = (JDIMENSION) ltemp; - } - /* Read in the selected part of the array. - * During the initial write pass, we will do no actual read - * because the selected part is all undefined. - */ - do_barray_io(cinfo, ptr, FALSE); - } - /* Ensure the accessed part of the array is defined; prezero if needed. - * To improve locality of access, we only prezero the part of the array - * that the caller is about to access, not the entire in-memory array. - */ - if (ptr->first_undef_row < end_row) { - if (ptr->first_undef_row < start_row) { - if (writable) /* writer skipped over a section of array */ - ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS); - undef_row = start_row; /* but reader is allowed to read ahead */ - } else { - undef_row = ptr->first_undef_row; - } - if (writable) - ptr->first_undef_row = end_row; - if (ptr->pre_zero) { - size_t bytesperrow = (size_t) ptr->blocksperrow * SIZEOF(JBLOCK); - undef_row -= ptr->cur_start_row; /* make indexes relative to buffer */ - end_row -= ptr->cur_start_row; - while (undef_row < end_row) { - jzero_far((void FAR *) ptr->mem_buffer[undef_row], bytesperrow); - undef_row++; - } - } else { - if (! writable) /* reader looking at undefined data */ - ERREXIT(cinfo, JERR_BAD_VIRTUAL_ACCESS); - } - } - /* Flag the buffer dirty if caller will write in it */ - if (writable) - ptr->dirty = TRUE; - /* Return address of proper part of the buffer */ - return ptr->mem_buffer + (start_row - ptr->cur_start_row); -} - - -/* - * Release all objects belonging to a specified pool. - */ - -METHODDEF(void) -free_pool (j_common_ptr cinfo, int pool_id) -{ - my_mem_ptr mem = (my_mem_ptr) cinfo->mem; - small_pool_ptr shdr_ptr; - large_pool_ptr lhdr_ptr; - size_t space_freed; - - if (pool_id < 0 || pool_id >= JPOOL_NUMPOOLS) - ERREXIT1(cinfo, JERR_BAD_POOL_ID, pool_id); /* safety check */ - -#ifdef MEM_STATS - if (cinfo->err->trace_level > 1) - print_mem_stats(cinfo, pool_id); /* print pool's memory usage statistics */ -#endif - - /* If freeing IMAGE pool, close any virtual arrays first */ - if (pool_id == JPOOL_IMAGE) { - jvirt_sarray_ptr sptr; - jvirt_barray_ptr bptr; - - for (sptr = mem->virt_sarray_list; sptr != NULL; sptr = sptr->next) { - if (sptr->b_s_open) { /* there may be no backing store */ - sptr->b_s_open = FALSE; /* prevent recursive close if error */ - (*sptr->b_s_info.close_backing_store) (cinfo, & sptr->b_s_info); - } - } - mem->virt_sarray_list = NULL; - for (bptr = mem->virt_barray_list; bptr != NULL; bptr = bptr->next) { - if (bptr->b_s_open) { /* there may be no backing store */ - bptr->b_s_open = FALSE; /* prevent recursive close if error */ - (*bptr->b_s_info.close_backing_store) (cinfo, & bptr->b_s_info); - } - } - mem->virt_barray_list = NULL; - } - - /* Release large objects */ - lhdr_ptr = mem->large_list[pool_id]; - mem->large_list[pool_id] = NULL; - - while (lhdr_ptr != NULL) { - large_pool_ptr next_lhdr_ptr = lhdr_ptr->hdr.next; - space_freed = lhdr_ptr->hdr.bytes_used + - lhdr_ptr->hdr.bytes_left + - SIZEOF(large_pool_hdr); - jpeg_free_large(cinfo, (void FAR *) lhdr_ptr, space_freed); - mem->total_space_allocated -= space_freed; - lhdr_ptr = next_lhdr_ptr; - } - - /* Release small objects */ - shdr_ptr = mem->small_list[pool_id]; - mem->small_list[pool_id] = NULL; - - while (shdr_ptr != NULL) { - small_pool_ptr next_shdr_ptr = shdr_ptr->hdr.next; - space_freed = shdr_ptr->hdr.bytes_used + - shdr_ptr->hdr.bytes_left + - SIZEOF(small_pool_hdr); - jpeg_free_small(cinfo, (void *) shdr_ptr, space_freed); - mem->total_space_allocated -= space_freed; - shdr_ptr = next_shdr_ptr; - } -} - - -/* - * Close up shop entirely. - * Note that this cannot be called unless cinfo->mem is non-NULL. - */ - -METHODDEF(void) -self_destruct (j_common_ptr cinfo) -{ - int pool; - - /* Close all backing store, release all memory. - * Releasing pools in reverse order might help avoid fragmentation - * with some (brain-damaged) malloc libraries. - */ - for (pool = JPOOL_NUMPOOLS-1; pool >= JPOOL_PERMANENT; pool--) { - free_pool(cinfo, pool); - } - - /* Release the memory manager control block too. */ - jpeg_free_small(cinfo, (void *) cinfo->mem, SIZEOF(my_memory_mgr)); - cinfo->mem = NULL; /* ensures I will be called only once */ - - jpeg_mem_term(cinfo); /* system-dependent cleanup */ -} - - -/* - * Memory manager initialization. - * When this is called, only the error manager pointer is valid in cinfo! - */ - -GLOBAL(void) -jinit_memory_mgr (j_common_ptr cinfo) -{ - my_mem_ptr mem; - long max_to_use; - int pool; - size_t test_mac; - - cinfo->mem = NULL; /* for safety if init fails */ - - /* Check for configuration errors. - * SIZEOF(ALIGN_TYPE) should be a power of 2; otherwise, it probably - * doesn't reflect any real hardware alignment requirement. - * The test is a little tricky: for X>0, X and X-1 have no one-bits - * in common if and only if X is a power of 2, ie has only one one-bit. - * Some compilers may give an "unreachable code" warning here; ignore it. - */ - if ((SIZEOF(ALIGN_TYPE) & (SIZEOF(ALIGN_TYPE)-1)) != 0) - ERREXIT(cinfo, JERR_BAD_ALIGN_TYPE); - /* MAX_ALLOC_CHUNK must be representable as type size_t, and must be - * a multiple of SIZEOF(ALIGN_TYPE). - * Again, an "unreachable code" warning may be ignored here. - * But a "constant too large" warning means you need to fix MAX_ALLOC_CHUNK. - */ - test_mac = (size_t) MAX_ALLOC_CHUNK; - if ((long) test_mac != MAX_ALLOC_CHUNK || - (MAX_ALLOC_CHUNK % SIZEOF(ALIGN_TYPE)) != 0) - ERREXIT(cinfo, JERR_BAD_ALLOC_CHUNK); - - max_to_use = jpeg_mem_init(cinfo); /* system-dependent initialization */ - - /* Attempt to allocate memory manager's control block */ - mem = (my_mem_ptr) jpeg_get_small(cinfo, SIZEOF(my_memory_mgr)); - - if (mem == NULL) { - jpeg_mem_term(cinfo); /* system-dependent cleanup */ - ERREXIT1(cinfo, JERR_OUT_OF_MEMORY, 0); - } - - /* OK, fill in the method pointers */ - mem->pub.alloc_small = alloc_small; - mem->pub.alloc_large = alloc_large; - mem->pub.alloc_sarray = alloc_sarray; - mem->pub.alloc_barray = alloc_barray; - mem->pub.request_virt_sarray = request_virt_sarray; - mem->pub.request_virt_barray = request_virt_barray; - mem->pub.realize_virt_arrays = realize_virt_arrays; - mem->pub.access_virt_sarray = access_virt_sarray; - mem->pub.access_virt_barray = access_virt_barray; - mem->pub.free_pool = free_pool; - mem->pub.self_destruct = self_destruct; - - /* Make MAX_ALLOC_CHUNK accessible to other modules */ - mem->pub.max_alloc_chunk = MAX_ALLOC_CHUNK; - - /* Initialize working state */ - mem->pub.max_memory_to_use = max_to_use; - - for (pool = JPOOL_NUMPOOLS-1; pool >= JPOOL_PERMANENT; pool--) { - mem->small_list[pool] = NULL; - mem->large_list[pool] = NULL; - } - mem->virt_sarray_list = NULL; - mem->virt_barray_list = NULL; - - mem->total_space_allocated = SIZEOF(my_memory_mgr); - - /* Declare ourselves open for business */ - cinfo->mem = & mem->pub; - - /* Check for an environment variable JPEGMEM; if found, override the - * default max_memory setting from jpeg_mem_init. Note that the - * surrounding application may again override this value. - * If your system doesn't support getenv(), define NO_GETENV to disable - * this feature. - */ -#ifndef NO_GETENV - { char * memenv; - - if ((memenv = getenv("JPEGMEM")) != NULL) { - char ch = 'x'; - - if (sscanf(memenv, "%ld%c", &max_to_use, &ch) > 0) { - if (ch == 'm' || ch == 'M') - max_to_use *= 1000L; - mem->pub.max_memory_to_use = max_to_use * 1000L; - } - } - } -#endif - -} diff --git a/src/jpeg/jmemname.c b/src/jpeg/jmemname.c deleted file mode 100644 index ed96dee1bc..0000000000 --- a/src/jpeg/jmemname.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * jmemname.c - * - * Copyright (C) 1992-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file provides a generic implementation of the system-dependent - * portion of the JPEG memory manager. This implementation assumes that - * you must explicitly construct a name for each temp file. - * Also, the problem of determining the amount of memory available - * is shoved onto the user. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jmemsys.h" /* import the system-dependent declarations */ - -#ifndef HAVE_STDLIB_H /* should declare malloc(),free() */ -extern void * malloc JPP((size_t size)); -extern void free JPP((void *ptr)); -#endif - -#ifndef SEEK_SET /* pre-ANSI systems may not define this; */ -#define SEEK_SET 0 /* if not, assume 0 is correct */ -#endif - -#ifdef DONT_USE_B_MODE /* define mode parameters for fopen() */ -#define READ_BINARY "r" -#define RW_BINARY "w+" -#else -#ifdef VMS /* VMS is very nonstandard */ -#define READ_BINARY "rb", "ctx=stm" -#define RW_BINARY "w+b", "ctx=stm" -#else /* standard ANSI-compliant case */ -#define READ_BINARY "rb" -#define RW_BINARY "w+b" -#endif -#endif - - -/* - * Selection of a file name for a temporary file. - * This is system-dependent! - * - * The code as given is suitable for most Unix systems, and it is easily - * modified for most non-Unix systems. Some notes: - * 1. The temp file is created in the directory named by TEMP_DIRECTORY. - * The default value is /usr/tmp, which is the conventional place for - * creating large temp files on Unix. On other systems you'll probably - * want to change the file location. You can do this by editing the - * #define, or (preferred) by defining TEMP_DIRECTORY in jconfig.h. - * - * 2. If you need to change the file name as well as its location, - * you can override the TEMP_FILE_NAME macro. (Note that this is - * actually a printf format string; it must contain %s and %d.) - * Few people should need to do this. - * - * 3. mktemp() is used to ensure that multiple processes running - * simultaneously won't select the same file names. If your system - * doesn't have mktemp(), define NO_MKTEMP to do it the hard way. - * (If you don't have , also define NO_ERRNO_H.) - * - * 4. You probably want to define NEED_SIGNAL_CATCHER so that cjpeg.c/djpeg.c - * will cause the temp files to be removed if you stop the program early. - */ - -#ifndef TEMP_DIRECTORY /* can override from jconfig.h or Makefile */ -#define TEMP_DIRECTORY "/usr/tmp/" /* recommended setting for Unix */ -#endif - -static int next_file_num; /* to distinguish among several temp files */ - -#ifdef NO_MKTEMP - -#ifndef TEMP_FILE_NAME /* can override from jconfig.h or Makefile */ -#define TEMP_FILE_NAME "%sJPG%03d.TMP" -#endif - -#ifndef NO_ERRNO_H -#include /* to define ENOENT */ -#endif - -/* ANSI C specifies that errno is a macro, but on older systems it's more - * likely to be a plain int variable. And not all versions of errno.h - * bother to declare it, so we have to in order to be most portable. Thus: - */ -#ifndef errno -extern int errno; -#endif - - -LOCAL(void) -select_file_name (char * fname) -{ - FILE * tfile; - - /* Keep generating file names till we find one that's not in use */ - for (;;) { - next_file_num++; /* advance counter */ - sprintf(fname, TEMP_FILE_NAME, TEMP_DIRECTORY, next_file_num); - if ((tfile = fopen(fname, READ_BINARY)) == NULL) { - /* fopen could have failed for a reason other than the file not - * being there; for example, file there but unreadable. - * If isn't available, then we cannot test the cause. - */ -#ifdef ENOENT - if (errno != ENOENT) - continue; -#endif - break; - } - fclose(tfile); /* oops, it's there; close tfile & try again */ - } -} - -#else /* ! NO_MKTEMP */ - -/* Note that mktemp() requires the initial filename to end in six X's */ -#ifndef TEMP_FILE_NAME /* can override from jconfig.h or Makefile */ -#define TEMP_FILE_NAME "%sJPG%dXXXXXX" -#endif - -LOCAL(void) -select_file_name (char * fname) -{ - next_file_num++; /* advance counter */ - sprintf(fname, TEMP_FILE_NAME, TEMP_DIRECTORY, next_file_num); - mktemp(fname); /* make sure file name is unique */ - /* mktemp replaces the trailing XXXXXX with a unique string of characters */ -} - -#endif /* NO_MKTEMP */ - - -/* - * Memory allocation and freeing are controlled by the regular library - * routines malloc() and free(). - */ - -GLOBAL(void *) -jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * "Large" objects are treated the same as "small" ones. - * NB: although we include FAR keywords in the routine declarations, - * this file won't actually work in 80x86 small/medium model; at least, - * you probably won't be able to process useful-size images in only 64KB. - */ - -GLOBAL(void FAR *) -jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void FAR *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * This routine computes the total memory space available for allocation. - * It's impossible to do this in a portable way; our current solution is - * to make the user tell us (with a default value set at compile time). - * If you can actually get the available space, it's a good idea to subtract - * a slop factor of 5% or so. - */ - -#ifndef DEFAULT_MAX_MEM /* so can override from makefile */ -#define DEFAULT_MAX_MEM 1000000L /* default: one megabyte */ -#endif - -GLOBAL(long) -jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, - long max_bytes_needed, long already_allocated) -{ - return cinfo->mem->max_memory_to_use - already_allocated; -} - - -/* - * Backing store (temporary file) management. - * Backing store objects are only used when the value returned by - * jpeg_mem_available is less than the total space needed. You can dispense - * with these routines if you have plenty of virtual memory; see jmemnobs.c. - */ - - -METHODDEF(void) -read_backing_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - if (fseek(info->temp_file, file_offset, SEEK_SET)) - ERREXIT(cinfo, JERR_TFILE_SEEK); - if (JFREAD(info->temp_file, buffer_address, byte_count) - != (size_t) byte_count) - ERREXIT(cinfo, JERR_TFILE_READ); -} - - -METHODDEF(void) -write_backing_store (j_common_ptr cinfo, backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count) -{ - if (fseek(info->temp_file, file_offset, SEEK_SET)) - ERREXIT(cinfo, JERR_TFILE_SEEK); - if (JFWRITE(info->temp_file, buffer_address, byte_count) - != (size_t) byte_count) - ERREXIT(cinfo, JERR_TFILE_WRITE); -} - - -METHODDEF(void) -close_backing_store (j_common_ptr cinfo, backing_store_ptr info) -{ - fclose(info->temp_file); /* close the file */ - unlink(info->temp_name); /* delete the file */ -/* If your system doesn't have unlink(), use remove() instead. - * remove() is the ANSI-standard name for this function, but if - * your system was ANSI you'd be using jmemansi.c, right? - */ - TRACEMSS(cinfo, 1, JTRC_TFILE_CLOSE, info->temp_name); -} - - -/* - * Initial opening of a backing-store object. - */ - -GLOBAL(void) -jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - select_file_name(info->temp_name); - if ((info->temp_file = fopen(info->temp_name, RW_BINARY)) == NULL) - ERREXITS(cinfo, JERR_TFILE_CREATE, info->temp_name); - info->read_backing_store = read_backing_store; - info->write_backing_store = write_backing_store; - info->close_backing_store = close_backing_store; - TRACEMSS(cinfo, 1, JTRC_TFILE_OPEN, info->temp_name); -} - - -/* - * These routines take care of any system-dependent initialization and - * cleanup required. - */ - -GLOBAL(long) -jpeg_mem_init (j_common_ptr cinfo) -{ - next_file_num = 0; /* initialize temp file name generator */ - return DEFAULT_MAX_MEM; /* default for max_memory_to_use */ -} - -GLOBAL(void) -jpeg_mem_term (j_common_ptr cinfo) -{ - /* no work */ -} diff --git a/src/jpeg/jmemnobs.c b/src/jpeg/jmemnobs.c deleted file mode 100644 index eb8c337725..0000000000 --- a/src/jpeg/jmemnobs.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * jmemnobs.c - * - * Copyright (C) 1992-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file provides a really simple implementation of the system- - * dependent portion of the JPEG memory manager. This implementation - * assumes that no backing-store files are needed: all required space - * can be obtained from malloc(). - * This is very portable in the sense that it'll compile on almost anything, - * but you'd better have lots of main memory (or virtual memory) if you want - * to process big images. - * Note that the max_memory_to_use option is ignored by this implementation. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" -#include "jmemsys.h" /* import the system-dependent declarations */ - -#ifndef HAVE_STDLIB_H /* should declare malloc(),free() */ -extern void * malloc JPP((size_t size)); -extern void free JPP((void *ptr)); -#endif - - -/* - * Memory allocation and freeing are controlled by the regular library - * routines malloc() and free(). - */ - -GLOBAL(void *) -jpeg_get_small (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_small (j_common_ptr cinfo, void * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * "Large" objects are treated the same as "small" ones. - * NB: although we include FAR keywords in the routine declarations, - * this file won't actually work in 80x86 small/medium model; at least, - * you probably won't be able to process useful-size images in only 64KB. - */ - -GLOBAL(void FAR *) -jpeg_get_large (j_common_ptr cinfo, size_t sizeofobject) -{ - return (void FAR *) malloc(sizeofobject); -} - -GLOBAL(void) -jpeg_free_large (j_common_ptr cinfo, void FAR * object, size_t sizeofobject) -{ - free(object); -} - - -/* - * This routine computes the total memory space available for allocation. - * Here we always say, "we got all you want bud!" - */ - -GLOBAL(long) -jpeg_mem_available (j_common_ptr cinfo, long min_bytes_needed, - long max_bytes_needed, long already_allocated) -{ - return max_bytes_needed; -} - - -/* - * Backing store (temporary file) management. - * Since jpeg_mem_available always promised the moon, - * this should never be called and we can just error out. - */ - -GLOBAL(void) -jpeg_open_backing_store (j_common_ptr cinfo, backing_store_ptr info, - long total_bytes_needed) -{ - ERREXIT(cinfo, JERR_NO_BACKING_STORE); -} - - -/* - * These routines take care of any system-dependent initialization and - * cleanup required. Here, there isn't any. - */ - -GLOBAL(long) -jpeg_mem_init (j_common_ptr cinfo) -{ - return 0; /* just set max_memory_to_use to 0 */ -} - -GLOBAL(void) -jpeg_mem_term (j_common_ptr cinfo) -{ - /* no work */ -} diff --git a/src/jpeg/jmemsys.h b/src/jpeg/jmemsys.h deleted file mode 100644 index 6c3c6d348f..0000000000 --- a/src/jpeg/jmemsys.h +++ /dev/null @@ -1,198 +0,0 @@ -/* - * jmemsys.h - * - * Copyright (C) 1992-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This include file defines the interface between the system-independent - * and system-dependent portions of the JPEG memory manager. No other - * modules need include it. (The system-independent portion is jmemmgr.c; - * there are several different versions of the system-dependent portion.) - * - * This file works as-is for the system-dependent memory managers supplied - * in the IJG distribution. You may need to modify it if you write a - * custom memory manager. If system-dependent changes are needed in - * this file, the best method is to #ifdef them based on a configuration - * symbol supplied in jconfig.h, as we have done with USE_MSDOS_MEMMGR - * and USE_MAC_MEMMGR. - */ - - -/* Short forms of external names for systems with brain-damaged linkers. */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_get_small jGetSmall -#define jpeg_free_small jFreeSmall -#define jpeg_get_large jGetLarge -#define jpeg_free_large jFreeLarge -#define jpeg_mem_available jMemAvail -#define jpeg_open_backing_store jOpenBackStore -#define jpeg_mem_init jMemInit -#define jpeg_mem_term jMemTerm -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* - * These two functions are used to allocate and release small chunks of - * memory. (Typically the total amount requested through jpeg_get_small is - * no more than 20K or so; this will be requested in chunks of a few K each.) - * Behavior should be the same as for the standard library functions malloc - * and free; in particular, jpeg_get_small must return NULL on failure. - * On most systems, these ARE malloc and free. jpeg_free_small is passed the - * size of the object being freed, just in case it's needed. - * On an 80x86 machine using small-data memory model, these manage near heap. - */ - -EXTERN(void *) jpeg_get_small JPP((j_common_ptr cinfo, size_t sizeofobject)); -EXTERN(void) jpeg_free_small JPP((j_common_ptr cinfo, void * object, - size_t sizeofobject)); - -/* - * These two functions are used to allocate and release large chunks of - * memory (up to the total free space designated by jpeg_mem_available). - * The interface is the same as above, except that on an 80x86 machine, - * far pointers are used. On most other machines these are identical to - * the jpeg_get/free_small routines; but we keep them separate anyway, - * in case a different allocation strategy is desirable for large chunks. - */ - -EXTERN(void FAR *) jpeg_get_large JPP((j_common_ptr cinfo, - size_t sizeofobject)); -EXTERN(void) jpeg_free_large JPP((j_common_ptr cinfo, void FAR * object, - size_t sizeofobject)); - -/* - * The macro MAX_ALLOC_CHUNK designates the maximum number of bytes that may - * be requested in a single call to jpeg_get_large (and jpeg_get_small for that - * matter, but that case should never come into play). This macro is needed - * to model the 64Kb-segment-size limit of far addressing on 80x86 machines. - * On those machines, we expect that jconfig.h will provide a proper value. - * On machines with 32-bit flat address spaces, any large constant may be used. - * - * NB: jmemmgr.c expects that MAX_ALLOC_CHUNK will be representable as type - * size_t and will be a multiple of sizeof(align_type). - */ - -#ifndef MAX_ALLOC_CHUNK /* may be overridden in jconfig.h */ -#define MAX_ALLOC_CHUNK 1000000000L -#endif - -/* - * This routine computes the total space still available for allocation by - * jpeg_get_large. If more space than this is needed, backing store will be - * used. NOTE: any memory already allocated must not be counted. - * - * There is a minimum space requirement, corresponding to the minimum - * feasible buffer sizes; jmemmgr.c will request that much space even if - * jpeg_mem_available returns zero. The maximum space needed, enough to hold - * all working storage in memory, is also passed in case it is useful. - * Finally, the total space already allocated is passed. If no better - * method is available, cinfo->mem->max_memory_to_use - already_allocated - * is often a suitable calculation. - * - * It is OK for jpeg_mem_available to underestimate the space available - * (that'll just lead to more backing-store access than is really necessary). - * However, an overestimate will lead to failure. Hence it's wise to subtract - * a slop factor from the true available space. 5% should be enough. - * - * On machines with lots of virtual memory, any large constant may be returned. - * Conversely, zero may be returned to always use the minimum amount of memory. - */ - -EXTERN(long) jpeg_mem_available JPP((j_common_ptr cinfo, - long min_bytes_needed, - long max_bytes_needed, - long already_allocated)); - - -/* - * This structure holds whatever state is needed to access a single - * backing-store object. The read/write/close method pointers are called - * by jmemmgr.c to manipulate the backing-store object; all other fields - * are private to the system-dependent backing store routines. - */ - -#define TEMP_NAME_LENGTH 64 /* max length of a temporary file's name */ - - -#ifdef USE_MSDOS_MEMMGR /* DOS-specific junk */ - -typedef unsigned short XMSH; /* type of extended-memory handles */ -typedef unsigned short EMSH; /* type of expanded-memory handles */ - -typedef union { - short file_handle; /* DOS file handle if it's a temp file */ - XMSH xms_handle; /* handle if it's a chunk of XMS */ - EMSH ems_handle; /* handle if it's a chunk of EMS */ -} handle_union; - -#endif /* USE_MSDOS_MEMMGR */ - -#ifdef USE_MAC_MEMMGR /* Mac-specific junk */ -#include -#endif /* USE_MAC_MEMMGR */ - - -typedef struct backing_store_struct * backing_store_ptr; - -typedef struct backing_store_struct { - /* Methods for reading/writing/closing this backing-store object */ - JMETHOD(void, read_backing_store, (j_common_ptr cinfo, - backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count)); - JMETHOD(void, write_backing_store, (j_common_ptr cinfo, - backing_store_ptr info, - void FAR * buffer_address, - long file_offset, long byte_count)); - JMETHOD(void, close_backing_store, (j_common_ptr cinfo, - backing_store_ptr info)); - - /* Private fields for system-dependent backing-store management */ -#ifdef USE_MSDOS_MEMMGR - /* For the MS-DOS manager (jmemdos.c), we need: */ - handle_union handle; /* reference to backing-store storage object */ - char temp_name[TEMP_NAME_LENGTH]; /* name if it's a file */ -#else -#ifdef USE_MAC_MEMMGR - /* For the Mac manager (jmemmac.c), we need: */ - short temp_file; /* file reference number to temp file */ - FSSpec tempSpec; /* the FSSpec for the temp file */ - char temp_name[TEMP_NAME_LENGTH]; /* name if it's a file */ -#else - /* For a typical implementation with temp files, we need: */ - FILE * temp_file; /* stdio reference to temp file */ - char temp_name[TEMP_NAME_LENGTH]; /* name of temp file */ -#endif -#endif -} backing_store_info; - - -/* - * Initial opening of a backing-store object. This must fill in the - * read/write/close pointers in the object. The read/write routines - * may take an error exit if the specified maximum file size is exceeded. - * (If jpeg_mem_available always returns a large value, this routine can - * just take an error exit.) - */ - -EXTERN(void) jpeg_open_backing_store JPP((j_common_ptr cinfo, - backing_store_ptr info, - long total_bytes_needed)); - - -/* - * These routines take care of any system-dependent initialization and - * cleanup required. jpeg_mem_init will be called before anything is - * allocated (and, therefore, nothing in cinfo is of use except the error - * manager pointer). It should return a suitable default value for - * max_memory_to_use; this may subsequently be overridden by the surrounding - * application. (Note that max_memory_to_use is only important if - * jpeg_mem_available chooses to consult it ... no one else will.) - * jpeg_mem_term may assume that all requested memory has been freed and that - * all opened backing-store objects have been closed. - */ - -EXTERN(long) jpeg_mem_init JPP((j_common_ptr cinfo)); -EXTERN(void) jpeg_mem_term JPP((j_common_ptr cinfo)); diff --git a/src/jpeg/jmorecfg.h b/src/jpeg/jmorecfg.h deleted file mode 100644 index 8275eb093f..0000000000 --- a/src/jpeg/jmorecfg.h +++ /dev/null @@ -1,369 +0,0 @@ -/* - * jmorecfg.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains additional configuration options that customize the - * JPEG software for special applications or support machine-dependent - * optimizations. Most users will not need to touch this file. - */ - - -/* - * Define BITS_IN_JSAMPLE as either - * 8 for 8-bit sample values (the usual setting) - * 12 for 12-bit sample values - * Only 8 and 12 are legal data precisions for lossy JPEG according to the - * JPEG standard, and the IJG code does not support anything else! - * We do not support run-time selection of data precision, sorry. - */ - -#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ - - -/* - * Maximum number of components (color channels) allowed in JPEG image. - * To meet the letter of the JPEG spec, set this to 255. However, darn - * few applications need more than 4 channels (maybe 5 for CMYK + alpha - * mask). We recommend 10 as a reasonable compromise; use 4 if you are - * really short on memory. (Each allowed component costs a hundred or so - * bytes of storage, whether actually used in an image or not.) - */ - -#define MAX_COMPONENTS 10 /* maximum number of image components */ - - -/* - * Basic data types. - * You may need to change these if you have a machine with unusual data - * type sizes; for example, "char" not 8 bits, "short" not 16 bits, - * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, - * but it had better be at least 16. - */ - -/* Representation of a single sample (pixel element value). - * We frequently allocate large arrays of these, so it's important to keep - * them small. But if you have memory to burn and access to char or short - * arrays is very slow on your hardware, you might want to change these. - */ - -#if BITS_IN_JSAMPLE == 8 -/* JSAMPLE should be the smallest type that will hold the values 0..255. - * You can use a signed char by having GETJSAMPLE mask it with 0xFF. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JSAMPLE; -#ifdef CHAR_IS_UNSIGNED -#define GETJSAMPLE(value) ((int) (value)) -#else -#define GETJSAMPLE(value) ((int) (value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - -#define MAXJSAMPLE 255 -#define CENTERJSAMPLE 128 - -#endif /* BITS_IN_JSAMPLE == 8 */ - - -#if BITS_IN_JSAMPLE == 12 -/* JSAMPLE should be the smallest type that will hold the values 0..4095. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 4095 -#define CENTERJSAMPLE 2048 - -#endif /* BITS_IN_JSAMPLE == 12 */ - - -/* Representation of a DCT frequency coefficient. - * This should be a signed value of at least 16 bits; "short" is usually OK. - * Again, we allocate large arrays of these, but you can change to int - * if you have memory to burn and "short" is really slow. - */ - -typedef short JCOEF; - - -/* Compressed datastreams are represented as arrays of JOCTET. - * These must be EXACTLY 8 bits wide, at least once they are written to - * external storage. Note that when using the stdio data source/destination - * managers, this is also the data type passed to fread/fwrite. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JOCTET; -#define GETJOCTET(value) (value) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JOCTET; -#ifdef CHAR_IS_UNSIGNED -#define GETJOCTET(value) (value) -#else -#define GETJOCTET(value) ((value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - - -/* These typedefs are used for various table entries and so forth. - * They must be at least as wide as specified; but making them too big - * won't cost a huge amount of memory, so we don't provide special - * extraction code like we did for JSAMPLE. (In other words, these - * typedefs live at a different point on the speed/space tradeoff curve.) - */ - -/* UINT8 must hold at least the values 0..255. */ - -#ifdef HAVE_UNSIGNED_CHAR -typedef unsigned char UINT8; -#else /* not HAVE_UNSIGNED_CHAR */ -#ifdef CHAR_IS_UNSIGNED -typedef char UINT8; -#else /* not CHAR_IS_UNSIGNED */ -typedef short UINT8; -#endif /* CHAR_IS_UNSIGNED */ -#endif /* HAVE_UNSIGNED_CHAR */ - -/* UINT16 must hold at least the values 0..65535. */ - -#ifdef HAVE_UNSIGNED_SHORT -typedef unsigned short UINT16; -#else /* not HAVE_UNSIGNED_SHORT */ -typedef unsigned int UINT16; -#endif /* HAVE_UNSIGNED_SHORT */ - -/* INT16 must hold at least the values -32768..32767. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ -typedef short INT16; -#endif - -/* INT32 must hold at least signed 32-bit values. */ - -/* Modified JACS 23/4/99. 1200 means VC++ 6 */ -#if !defined(XMD_H) && !(_MSC_VER >= 1200) /* X11/xmd.h correctly defines INT32 */ -typedef long INT32; -#endif - -/* Added JACS 23/4/99, to get INT32 definition */ -#if (_MSC_VER >= 1200) -#include -#endif - -/* Datatype used for image dimensions. The JPEG standard only supports - * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore - * "unsigned int" is sufficient on all machines. However, if you need to - * handle larger images and you don't mind deviating from the spec, you - * can change this datatype. - */ - -typedef unsigned int JDIMENSION; - -#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ - - -/* These macros are used in all function definitions and extern declarations. - * You could modify them if you need to change function linkage conventions; - * in particular, you'll need to do that to make the library a Windows DLL. - * Another application is to make all functions global for use with debuggers - * or code profilers that require it. - */ - -/* a function called through method pointers: */ -#define METHODDEF(type) static type -/* a function used only in its module: */ -#define LOCAL(type) static type -/* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type -/* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type - - -/* This macro is used to declare a "method", that is, a function pointer. - * We want to supply prototype parameters if the compiler can cope. - * Note that the arglist parameter must be parenthesized! - * Again, you can customize this if you need special linkage keywords. - */ - -#ifdef HAVE_PROTOTYPES -#define JMETHOD(type,methodname,arglist) type (*methodname) arglist -#else -#define JMETHOD(type,methodname,arglist) type (*methodname) () -#endif - - -/* Here is the pseudo-keyword for declaring pointers that must be "far" - * on 80x86 machines. Most of the specialized coding for 80x86 is handled - * by just saying "FAR *" where such a pointer is needed. In a few places - * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. - */ - -#ifdef NEED_FAR_POINTERS -#define FAR far -#else -#define FAR -#endif - - -/* - * On a few systems, type boolean and/or its values FALSE, TRUE may appear - * in standard header files. Or you may have conflicts with application- - * specific header files that you want to include together with these files. - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. - */ - -#ifndef HAVE_BOOLEAN -typedef int boolean; -#endif -#ifndef FALSE /* in case these macros already exist */ -#define FALSE 0 /* values of boolean */ -#endif -#ifndef TRUE -#define TRUE 1 -#endif - - -/* - * The remaining options affect code selection within the JPEG library, - * but they don't need to be visible to most applications using the library. - * To minimize application namespace pollution, the symbols won't be - * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. - */ - -#ifdef JPEG_INTERNALS -#define JPEG_INTERNAL_OPTIONS -#endif - -#ifdef JPEG_INTERNAL_OPTIONS - - -/* - * These defines indicate whether to include various optional functions. - * Undefining some of these symbols will produce a smaller but less capable - * library. Note that you can leave certain source files out of the - * compilation/linking process if you've #undef'd the corresponding symbols. - * (You may HAVE to do that if your compiler doesn't like null source files.) - */ - -/* Arithmetic coding is unsupported for legal reasons. Complaints to IBM. */ - -/* Capability options common to encoder and decoder: */ - -#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ -#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ -#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ - -/* Encoder capability options: */ - -#undef C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ -/* Note: if you selected 12-bit data precision, it is dangerous to turn off - * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit - * precision, so jchuff.c normally uses entropy optimization to compute - * usable tables for higher precision. If you don't want to do optimization, - * you'll have to supply different default Huffman tables. - * The exact same statements apply for progressive JPEG: the default tables - * don't work for progressive mode. (This may get fixed, however.) - */ -#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ - -/* Decoder capability options: */ - -#undef D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ -#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ -#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ -#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ -#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ -#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ -#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ - -/* more capability options later, no doubt */ - - -/* - * Ordering of RGB data in scanlines passed to or from the application. - * If your application wants to deal with data in the order B,G,R, just - * change these macros. You can also deal with formats such as R,G,B,X - * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing - * the offsets will also change the order in which colormap data is organized. - * RESTRICTIONS: - * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. - * 2. These macros only affect RGB<=>YCbCr color conversion, so they are not - * useful if you are using JPEG color spaces other than YCbCr or grayscale. - * 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE - * is not 3 (they don't understand about dummy color components!). So you - * can't use color quantization if you change that value. - */ - -#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ -#define RGB_GREEN 1 /* Offset of Green */ -#define RGB_BLUE 2 /* Offset of Blue */ -#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ - - -/* Definitions for speed-related optimizations. */ - - -/* If your compiler supports inline functions, define INLINE - * as the inline keyword; otherwise define it as empty. - */ - -#ifndef INLINE -#ifdef __GNUC__ /* for instance, GNU C knows about inline */ -#define INLINE __inline__ -#endif -#ifndef INLINE -#define INLINE /* default is to define it as empty */ -#endif -#endif - - -/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying - * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER - * as short on such a machine. MULTIPLIER must be at least 16 bits wide. - */ - -#ifndef MULTIPLIER -#define MULTIPLIER int /* type for fastest integer multiply */ -#endif - - -/* FAST_FLOAT should be either float or double, whichever is done faster - * by your compiler. (Note that this type is only used in the floating point - * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) - * Typically, float is faster in ANSI C compilers, while double is faster in - * pre-ANSI compilers (because they insist on converting to double anyway). - * The code below therefore chooses float if we have ANSI-style prototypes. - */ - -#ifndef FAST_FLOAT -#ifdef HAVE_PROTOTYPES -#define FAST_FLOAT float -#else -#define FAST_FLOAT double -#endif -#endif - -#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/src/jpeg/jpegint.h b/src/jpeg/jpegint.h deleted file mode 100644 index 95b00d405c..0000000000 --- a/src/jpeg/jpegint.h +++ /dev/null @@ -1,392 +0,0 @@ -/* - * jpegint.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file provides common declarations for the various JPEG modules. - * These declarations are considered internal to the JPEG library; most - * applications using the library shouldn't need to include this file. - */ - - -/* Declarations for both compression & decompression */ - -typedef enum { /* Operating modes for buffer controllers */ - JBUF_PASS_THRU, /* Plain stripwise operation */ - /* Remaining modes require a full-image buffer to have been created */ - JBUF_SAVE_SOURCE, /* Run source subobject only, save output */ - JBUF_CRANK_DEST, /* Run dest subobject only, using saved data */ - JBUF_SAVE_AND_PASS /* Run both subobjects, save output */ -} J_BUF_MODE; - -/* Values of global_state field (jdapi.c has some dependencies on ordering!) */ -#define CSTATE_START 100 /* after create_compress */ -#define CSTATE_SCANNING 101 /* start_compress done, write_scanlines OK */ -#define CSTATE_RAW_OK 102 /* start_compress done, write_raw_data OK */ -#define CSTATE_WRCOEFS 103 /* jpeg_write_coefficients done */ -#define DSTATE_START 200 /* after create_decompress */ -#define DSTATE_INHEADER 201 /* reading header markers, no SOS yet */ -#define DSTATE_READY 202 /* found SOS, ready for start_decompress */ -#define DSTATE_PRELOAD 203 /* reading multiscan file in start_decompress*/ -#define DSTATE_PRESCAN 204 /* performing dummy pass for 2-pass quant */ -#define DSTATE_SCANNING 205 /* start_decompress done, read_scanlines OK */ -#define DSTATE_RAW_OK 206 /* start_decompress done, read_raw_data OK */ -#define DSTATE_BUFIMAGE 207 /* expecting jpeg_start_output */ -#define DSTATE_BUFPOST 208 /* looking for SOS/EOI in jpeg_finish_output */ -#define DSTATE_RDCOEFS 209 /* reading file in jpeg_read_coefficients */ -#define DSTATE_STOPPING 210 /* looking for EOI in jpeg_finish_decompress */ - - -/* Declarations for compression modules */ - -/* Master control module */ -struct jpeg_comp_master { - JMETHOD(void, prepare_for_pass, (j_compress_ptr cinfo)); - JMETHOD(void, pass_startup, (j_compress_ptr cinfo)); - JMETHOD(void, finish_pass, (j_compress_ptr cinfo)); - - /* State variables made visible to other modules */ - boolean call_pass_startup; /* True if pass_startup must be called */ - boolean is_last_pass; /* True during last pass */ -}; - -/* Main buffer control (downsampled-data buffer) */ -struct jpeg_c_main_controller { - JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode)); - JMETHOD(void, process_data, (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JDIMENSION *in_row_ctr, - JDIMENSION in_rows_avail)); -}; - -/* Compression preprocessing (downsampling input buffer control) */ -struct jpeg_c_prep_controller { - JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode)); - JMETHOD(void, pre_process_data, (j_compress_ptr cinfo, - JSAMPARRAY input_buf, - JDIMENSION *in_row_ctr, - JDIMENSION in_rows_avail, - JSAMPIMAGE output_buf, - JDIMENSION *out_row_group_ctr, - JDIMENSION out_row_groups_avail)); -}; - -/* Coefficient buffer control */ -struct jpeg_c_coef_controller { - JMETHOD(void, start_pass, (j_compress_ptr cinfo, J_BUF_MODE pass_mode)); - JMETHOD(boolean, compress_data, (j_compress_ptr cinfo, - JSAMPIMAGE input_buf)); -}; - -/* Colorspace conversion */ -struct jpeg_color_converter { - JMETHOD(void, start_pass, (j_compress_ptr cinfo)); - JMETHOD(void, color_convert, (j_compress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPIMAGE output_buf, - JDIMENSION output_row, int num_rows)); -}; - -/* Downsampling */ -struct jpeg_downsampler { - JMETHOD(void, start_pass, (j_compress_ptr cinfo)); - JMETHOD(void, downsample, (j_compress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION in_row_index, - JSAMPIMAGE output_buf, - JDIMENSION out_row_group_index)); - - boolean need_context_rows; /* TRUE if need rows above & below */ -}; - -/* Forward DCT (also controls coefficient quantization) */ -struct jpeg_forward_dct { - JMETHOD(void, start_pass, (j_compress_ptr cinfo)); - /* perhaps this should be an array??? */ - JMETHOD(void, forward_DCT, (j_compress_ptr cinfo, - jpeg_component_info * compptr, - JSAMPARRAY sample_data, JBLOCKROW coef_blocks, - JDIMENSION start_row, JDIMENSION start_col, - JDIMENSION num_blocks)); -}; - -/* Entropy encoding */ -struct jpeg_entropy_encoder { - JMETHOD(void, start_pass, (j_compress_ptr cinfo, boolean gather_statistics)); - JMETHOD(boolean, encode_mcu, (j_compress_ptr cinfo, JBLOCKROW *MCU_data)); - JMETHOD(void, finish_pass, (j_compress_ptr cinfo)); -}; - -/* Marker writing */ -struct jpeg_marker_writer { - JMETHOD(void, write_file_header, (j_compress_ptr cinfo)); - JMETHOD(void, write_frame_header, (j_compress_ptr cinfo)); - JMETHOD(void, write_scan_header, (j_compress_ptr cinfo)); - JMETHOD(void, write_file_trailer, (j_compress_ptr cinfo)); - JMETHOD(void, write_tables_only, (j_compress_ptr cinfo)); - /* These routines are exported to allow insertion of extra markers */ - /* Probably only COM and APPn markers should be written this way */ - JMETHOD(void, write_marker_header, (j_compress_ptr cinfo, int marker, - unsigned int datalen)); - JMETHOD(void, write_marker_byte, (j_compress_ptr cinfo, int val)); -}; - - -/* Declarations for decompression modules */ - -/* Master control module */ -struct jpeg_decomp_master { - JMETHOD(void, prepare_for_output_pass, (j_decompress_ptr cinfo)); - JMETHOD(void, finish_output_pass, (j_decompress_ptr cinfo)); - - /* State variables made visible to other modules */ - boolean is_dummy_pass; /* True during 1st pass for 2-pass quant */ -}; - -/* Input control module */ -struct jpeg_input_controller { - JMETHOD(int, consume_input, (j_decompress_ptr cinfo)); - JMETHOD(void, reset_input_controller, (j_decompress_ptr cinfo)); - JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo)); - JMETHOD(void, finish_input_pass, (j_decompress_ptr cinfo)); - - /* State variables made visible to other modules */ - boolean has_multiple_scans; /* True if file has multiple scans */ - boolean eoi_reached; /* True when EOI has been consumed */ -}; - -/* Main buffer control (downsampled-data buffer) */ -struct jpeg_d_main_controller { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)); - JMETHOD(void, process_data, (j_decompress_ptr cinfo, - JSAMPARRAY output_buf, JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail)); -}; - -/* Coefficient buffer control */ -struct jpeg_d_coef_controller { - JMETHOD(void, start_input_pass, (j_decompress_ptr cinfo)); - JMETHOD(int, consume_data, (j_decompress_ptr cinfo)); - JMETHOD(void, start_output_pass, (j_decompress_ptr cinfo)); - JMETHOD(int, decompress_data, (j_decompress_ptr cinfo, - JSAMPIMAGE output_buf)); - /* Pointer to array of coefficient virtual arrays, or NULL if none */ - jvirt_barray_ptr *coef_arrays; -}; - -/* Decompression postprocessing (color quantization buffer control) */ -struct jpeg_d_post_controller { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo, J_BUF_MODE pass_mode)); - JMETHOD(void, post_process_data, (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, - JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, - JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail)); -}; - -/* Marker reading & parsing */ -struct jpeg_marker_reader { - JMETHOD(void, reset_marker_reader, (j_decompress_ptr cinfo)); - /* Read markers until SOS or EOI. - * Returns same codes as are defined for jpeg_consume_input: - * JPEG_SUSPENDED, JPEG_REACHED_SOS, or JPEG_REACHED_EOI. - */ - JMETHOD(int, read_markers, (j_decompress_ptr cinfo)); - /* Read a restart marker --- exported for use by entropy decoder only */ - jpeg_marker_parser_method read_restart_marker; - - /* State of marker reader --- nominally internal, but applications - * supplying COM or APPn handlers might like to know the state. - */ - boolean saw_SOI; /* found SOI? */ - boolean saw_SOF; /* found SOF? */ - int next_restart_num; /* next restart number expected (0-7) */ - unsigned int discarded_bytes; /* # of bytes skipped looking for a marker */ -}; - -/* Entropy decoding */ -struct jpeg_entropy_decoder { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); - JMETHOD(boolean, decode_mcu, (j_decompress_ptr cinfo, - JBLOCKROW *MCU_data)); - - /* This is here to share code between baseline and progressive decoders; */ - /* other modules probably should not use it */ - boolean insufficient_data; /* set TRUE after emitting warning */ -}; - -/* Inverse DCT (also performs dequantization) */ -typedef JMETHOD(void, inverse_DCT_method_ptr, - (j_decompress_ptr cinfo, jpeg_component_info * compptr, - JCOEFPTR coef_block, - JSAMPARRAY output_buf, JDIMENSION output_col)); - -struct jpeg_inverse_dct { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); - /* It is useful to allow each component to have a separate IDCT method. */ - inverse_DCT_method_ptr inverse_DCT[MAX_COMPONENTS]; -}; - -/* Upsampling (note that upsampler must also call color converter) */ -struct jpeg_upsampler { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); - JMETHOD(void, upsample, (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, - JDIMENSION *in_row_group_ctr, - JDIMENSION in_row_groups_avail, - JSAMPARRAY output_buf, - JDIMENSION *out_row_ctr, - JDIMENSION out_rows_avail)); - - boolean need_context_rows; /* TRUE if need rows above & below */ -}; - -/* Colorspace conversion */ -struct jpeg_color_deconverter { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo)); - JMETHOD(void, color_convert, (j_decompress_ptr cinfo, - JSAMPIMAGE input_buf, JDIMENSION input_row, - JSAMPARRAY output_buf, int num_rows)); -}; - -/* Color quantization or color precision reduction */ -struct jpeg_color_quantizer { - JMETHOD(void, start_pass, (j_decompress_ptr cinfo, boolean is_pre_scan)); - JMETHOD(void, color_quantize, (j_decompress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPARRAY output_buf, - int num_rows)); - JMETHOD(void, finish_pass, (j_decompress_ptr cinfo)); - JMETHOD(void, new_color_map, (j_decompress_ptr cinfo)); -}; - - -/* Miscellaneous useful macros */ - -#undef MAX -#define MAX(a,b) ((a) > (b) ? (a) : (b)) -#undef MIN -#define MIN(a,b) ((a) < (b) ? (a) : (b)) - - -/* We assume that right shift corresponds to signed division by 2 with - * rounding towards minus infinity. This is correct for typical "arithmetic - * shift" instructions that shift in copies of the sign bit. But some - * C compilers implement >> with an unsigned shift. For these machines you - * must define RIGHT_SHIFT_IS_UNSIGNED. - * RIGHT_SHIFT provides a proper signed right shift of an INT32 quantity. - * It is only applied with constant shift counts. SHIFT_TEMPS must be - * included in the variables of any routine using RIGHT_SHIFT. - */ - -#ifdef RIGHT_SHIFT_IS_UNSIGNED -#define SHIFT_TEMPS INT32 shift_temp; -#define RIGHT_SHIFT(x,shft) \ - ((shift_temp = (x)) < 0 ? \ - (shift_temp >> (shft)) | ((~((INT32) 0)) << (32-(shft))) : \ - (shift_temp >> (shft))) -#else -#define SHIFT_TEMPS -#define RIGHT_SHIFT(x,shft) ((x) >> (shft)) -#endif - - -/* Short forms of external names for systems with brain-damaged linkers. */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jinit_compress_master jICompress -#define jinit_c_master_control jICMaster -#define jinit_c_main_controller jICMainC -#define jinit_c_prep_controller jICPrepC -#define jinit_c_coef_controller jICCoefC -#define jinit_color_converter jICColor -#define jinit_downsampler jIDownsampler -#define jinit_forward_dct jIFDCT -#define jinit_huff_encoder jIHEncoder -#define jinit_phuff_encoder jIPHEncoder -#define jinit_marker_writer jIMWriter -#define jinit_master_decompress jIDMaster -#define jinit_d_main_controller jIDMainC -#define jinit_d_coef_controller jIDCoefC -#define jinit_d_post_controller jIDPostC -#define jinit_input_controller jIInCtlr -#define jinit_marker_reader jIMReader -#define jinit_huff_decoder jIHDecoder -#define jinit_phuff_decoder jIPHDecoder -#define jinit_inverse_dct jIIDCT -#define jinit_upsampler jIUpsampler -#define jinit_color_deconverter jIDColor -#define jinit_1pass_quantizer jI1Quant -#define jinit_2pass_quantizer jI2Quant -#define jinit_merged_upsampler jIMUpsampler -#define jinit_memory_mgr jIMemMgr -#define jdiv_round_up jDivRound -#define jround_up jRound -#define jcopy_sample_rows jCopySamples -#define jcopy_block_row jCopyBlocks -#define jzero_far jZeroFar -#define jpeg_zigzag_order jZIGTable -#define jpeg_natural_order jZAGTable -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* Compression module initialization routines */ -EXTERN(void) jinit_compress_master JPP((j_compress_ptr cinfo)); -EXTERN(void) jinit_c_master_control JPP((j_compress_ptr cinfo, - boolean transcode_only)); -EXTERN(void) jinit_c_main_controller JPP((j_compress_ptr cinfo, - boolean need_full_buffer)); -EXTERN(void) jinit_c_prep_controller JPP((j_compress_ptr cinfo, - boolean need_full_buffer)); -EXTERN(void) jinit_c_coef_controller JPP((j_compress_ptr cinfo, - boolean need_full_buffer)); -EXTERN(void) jinit_color_converter JPP((j_compress_ptr cinfo)); -EXTERN(void) jinit_downsampler JPP((j_compress_ptr cinfo)); -EXTERN(void) jinit_forward_dct JPP((j_compress_ptr cinfo)); -EXTERN(void) jinit_huff_encoder JPP((j_compress_ptr cinfo)); -EXTERN(void) jinit_phuff_encoder JPP((j_compress_ptr cinfo)); -EXTERN(void) jinit_marker_writer JPP((j_compress_ptr cinfo)); -/* Decompression module initialization routines */ -EXTERN(void) jinit_master_decompress JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_d_main_controller JPP((j_decompress_ptr cinfo, - boolean need_full_buffer)); -EXTERN(void) jinit_d_coef_controller JPP((j_decompress_ptr cinfo, - boolean need_full_buffer)); -EXTERN(void) jinit_d_post_controller JPP((j_decompress_ptr cinfo, - boolean need_full_buffer)); -EXTERN(void) jinit_input_controller JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_marker_reader JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_huff_decoder JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_phuff_decoder JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_inverse_dct JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_upsampler JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_color_deconverter JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_1pass_quantizer JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_2pass_quantizer JPP((j_decompress_ptr cinfo)); -EXTERN(void) jinit_merged_upsampler JPP((j_decompress_ptr cinfo)); -/* Memory manager initialization */ -EXTERN(void) jinit_memory_mgr JPP((j_common_ptr cinfo)); - -/* Utility routines in jutils.c */ -EXTERN(long) jdiv_round_up JPP((long a, long b)); -EXTERN(long) jround_up JPP((long a, long b)); -EXTERN(void) jcopy_sample_rows JPP((JSAMPARRAY input_array, int source_row, - JSAMPARRAY output_array, int dest_row, - int num_rows, JDIMENSION num_cols)); -EXTERN(void) jcopy_block_row JPP((JBLOCKROW input_row, JBLOCKROW output_row, - JDIMENSION num_blocks)); -EXTERN(void) jzero_far JPP((void FAR * target, size_t bytestozero)); -/* Constant tables in jutils.c */ -#if 0 /* This table is not actually needed in v6a */ -extern const int jpeg_zigzag_order[]; /* natural coef order to zigzag order */ -#endif -extern const int jpeg_natural_order[]; /* zigzag coef order to natural order */ - -/* Suppress undefined-structure complaints if necessary. */ - -#ifdef INCOMPLETE_TYPES_BROKEN -#ifndef AM_MEMORY_MANAGER /* only jmemmgr.c defines these */ -struct jvirt_sarray_control { long dummy; }; -struct jvirt_barray_control { long dummy; }; -#endif -#endif /* INCOMPLETE_TYPES_BROKEN */ diff --git a/src/jpeg/jpeglib.h b/src/jpeg/jpeglib.h deleted file mode 100644 index b7a0ec4e98..0000000000 --- a/src/jpeg/jpeglib.h +++ /dev/null @@ -1,1096 +0,0 @@ -/* - * jpeglib.h - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file defines the application interface for the JPEG library. - * Most applications using the library need only include this file, - * and perhaps jerror.h if they want to know the exact error codes. - */ - -#ifndef JPEGLIB_H -#define JPEGLIB_H - -/* - * First we include the configuration files that record how this - * installation of the JPEG library is set up. jconfig.h can be - * generated automatically for many systems. jmorecfg.h contains - * manual configuration options that most people need not worry about. - */ - -#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ -#include "../src/jpeg/jconfig.h" /* widely used configuration options */ -#endif -#include "jmorecfg.h" /* seldom changed options */ - - -/* Version ID for the JPEG library. - * Might be useful for tests like "#if JPEG_LIB_VERSION >= 60". - */ - -#define JPEG_LIB_VERSION 62 /* Version 6b */ - - -/* Various constants determining the sizes of things. - * All of these are specified by the JPEG standard, so don't change them - * if you want to be compatible. - */ - -#define DCTSIZE 8 /* The basic DCT block is 8x8 samples */ -#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ -#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ -#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ -#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ -#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ -#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ -/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; - * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. - * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU - * to handle it. We even let you do this from the jconfig.h file. However, - * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe - * sometimes emits noncompliant files doesn't mean you should too. - */ -#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ -#ifndef D_MAX_BLOCKS_IN_MCU -#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ -#endif - - -/* Data structures for images (arrays of samples and of DCT coefficients). - * On 80x86 machines, the image arrays are too big for near pointers, - * but the pointer arrays can fit in near memory. - */ - -typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ -typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ -typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ - -typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ -typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ -typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ -typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ - -typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ - - -/* Types for JPEG compression parameters and working tables. */ - - -/* DCT coefficient quantization tables. */ - -typedef struct { - /* This array gives the coefficient quantizers in natural array order - * (not the zigzag order in which they are stored in a JPEG DQT marker). - * CAUTION: IJG versions prior to v6a kept this array in zigzag order. - */ - UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JQUANT_TBL; - - -/* Huffman coding tables. */ - -typedef struct { - /* These two fields directly represent the contents of a JPEG DHT marker */ - UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ - /* length k bits; bits[0] is unused */ - UINT8 huffval[256]; /* The symbols, in order of incr code length */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JHUFF_TBL; - - -/* Basic info about one component (color channel). */ - -typedef struct { - /* These values are fixed over the whole image. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOF marker. */ - int component_id; /* identifier for this component (0..255) */ - int component_index; /* its index in SOF or cinfo->comp_info[] */ - int h_samp_factor; /* horizontal sampling factor (1..4) */ - int v_samp_factor; /* vertical sampling factor (1..4) */ - int quant_tbl_no; /* quantization table selector (0..3) */ - /* These values may vary between scans. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOS marker. */ - /* The decompressor output side may not use these variables. */ - int dc_tbl_no; /* DC entropy table selector (0..3) */ - int ac_tbl_no; /* AC entropy table selector (0..3) */ - - /* Remaining fields should be treated as private by applications. */ - - /* These values are computed during compression or decompression startup: */ - /* Component's size in DCT blocks. - * Any dummy blocks added to complete an MCU are not counted; therefore - * these values do not depend on whether a scan is interleaved or not. - */ - JDIMENSION width_in_blocks; - JDIMENSION height_in_blocks; - /* Size of a DCT block in samples. Always DCTSIZE for compression. - * For decompression this is the size of the output from one DCT block, - * reflecting any scaling we choose to apply during the IDCT step. - * Values of 1,2,4,8 are likely to be supported. Note that different - * components may receive different IDCT scalings. - */ - int DCT_scaled_size; - /* The downsampled dimensions are the component's actual, unpadded number - * of samples at the main buffer (preprocessing/compression interface), thus - * downsampled_width = ceil(image_width * Hi/Hmax) - * and similarly for height. For decompression, IDCT scaling is included, so - * downsampled_width = ceil(image_width * Hi/Hmax * DCT_scaled_size/DCTSIZE) - */ - JDIMENSION downsampled_width; /* actual width in samples */ - JDIMENSION downsampled_height; /* actual height in samples */ - /* This flag is used only for decompression. In cases where some of the - * components will be ignored (eg grayscale output from YCbCr image), - * we can skip most computations for the unused components. - */ - boolean component_needed; /* do we need the value of this component? */ - - /* These values are computed before starting a scan of the component. */ - /* The decompressor output side may not use these variables. */ - int MCU_width; /* number of blocks per MCU, horizontally */ - int MCU_height; /* number of blocks per MCU, vertically */ - int MCU_blocks; /* MCU_width * MCU_height */ - int MCU_sample_width; /* MCU width in samples, MCU_width*DCT_scaled_size */ - int last_col_width; /* # of non-dummy blocks across in last MCU */ - int last_row_height; /* # of non-dummy blocks down in last MCU */ - - /* Saved quantization table for component; NULL if none yet saved. - * See jdinput.c comments about the need for this information. - * This field is currently used only for decompression. - */ - JQUANT_TBL * quant_table; - - /* Private per-component storage for DCT or IDCT subsystem. */ - void * dct_table; -} jpeg_component_info; - - -/* The script for encoding a multiple-scan file is an array of these: */ - -typedef struct { - int comps_in_scan; /* number of components encoded in this scan */ - int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ - int Ss, Se; /* progressive JPEG spectral selection parms */ - int Ah, Al; /* progressive JPEG successive approx. parms */ -} jpeg_scan_info; - -/* The decompressor can save APPn and COM markers in a list of these: */ - -typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; - -struct jpeg_marker_struct { - jpeg_saved_marker_ptr next; /* next in list, or NULL */ - UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ - unsigned int original_length; /* # bytes of data in the file */ - unsigned int data_length; /* # bytes of data saved at data[] */ - JOCTET FAR * data; /* the data contained in the marker */ - /* the marker length word is not counted in data_length or original_length */ -}; - -/* Known color spaces. */ - -typedef enum { - JCS_UNKNOWN, /* error/unspecified */ - JCS_GRAYSCALE, /* monochrome */ - JCS_RGB, /* red/green/blue */ - JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ - JCS_CMYK, /* C/M/Y/K */ - JCS_YCCK /* Y/Cb/Cr/K */ -} J_COLOR_SPACE; - -/* DCT/IDCT algorithm options. */ - -typedef enum { - JDCT_ISLOW, /* slow but accurate integer algorithm */ - JDCT_IFAST, /* faster, less accurate integer method */ - JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ -} J_DCT_METHOD; - -#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ -#define JDCT_DEFAULT JDCT_ISLOW -#endif -#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ -#define JDCT_FASTEST JDCT_IFAST -#endif - -/* Dithering options for decompression. */ - -typedef enum { - JDITHER_NONE, /* no dithering */ - JDITHER_ORDERED, /* simple ordered dither */ - JDITHER_FS /* Floyd-Steinberg error diffusion dither */ -} J_DITHER_MODE; - - -/* Common fields between JPEG compression and decompression master structs. */ - -#define jpeg_common_fields \ - struct jpeg_error_mgr * err; /* Error handler module */\ - struct jpeg_memory_mgr * mem; /* Memory manager module */\ - struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ - void * client_data; /* Available for use by application */\ - boolean is_decompressor; /* So common code can tell which is which */\ - int global_state /* For checking call sequence validity */ - -/* Routines that are to be used by both halves of the library are declared - * to receive a pointer to this structure. There are no actual instances of - * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. - */ -struct jpeg_common_struct { - jpeg_common_fields; /* Fields common to both master struct types */ - /* Additional fields follow in an actual jpeg_compress_struct or - * jpeg_decompress_struct. All three structs must agree on these - * initial fields! (This would be a lot cleaner in C++.) - */ -}; - -typedef struct jpeg_common_struct * j_common_ptr; -typedef struct jpeg_compress_struct * j_compress_ptr; -typedef struct jpeg_decompress_struct * j_decompress_ptr; - - -/* Master record for a compression instance */ - -struct jpeg_compress_struct { - jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ - - /* Destination for compressed data */ - struct jpeg_destination_mgr * dest; - - /* Description of source image --- these fields must be filled in by - * outer application before starting compression. in_color_space must - * be correct before you can even call jpeg_set_defaults(). - */ - - JDIMENSION image_width; /* input image width */ - JDIMENSION image_height; /* input image height */ - int input_components; /* # of color components in input image */ - J_COLOR_SPACE in_color_space; /* colorspace of input image */ - - double input_gamma; /* image gamma of input image */ - - /* Compression parameters --- these fields must be set before calling - * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to - * initialize everything to reasonable defaults, then changing anything - * the application specifically wants to change. That way you won't get - * burnt when new parameters are added. Also note that there are several - * helper routines to simplify changing parameters. - */ - - int data_precision; /* bits of precision in image data */ - - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - int num_scans; /* # of entries in scan_info array */ - const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ - /* The default value of scan_info is NULL, which causes a single-scan - * sequential JPEG file to be emitted. To create a multi-scan file, - * set num_scans and scan_info to point to an array of scan definitions. - */ - - boolean raw_data_in; /* TRUE=caller supplies downsampled data */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - int smoothing_factor; /* 1..100, or 0 for no input smoothing */ - J_DCT_METHOD dct_method; /* DCT algorithm selector */ - - /* The restart interval can be specified in absolute MCUs by setting - * restart_interval, or in MCU rows by setting restart_in_rows - * (in which case the correct restart_interval will be figured - * for each scan). - */ - unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ - int restart_in_rows; /* if > 0, MCU rows per restart interval */ - - /* Parameters controlling emission of special markers. */ - - boolean write_JFIF_header; /* should a JFIF marker be written? */ - UINT8 JFIF_major_version; /* What to write for the JFIF version number */ - UINT8 JFIF_minor_version; - /* These three values are not used by the JPEG code, merely copied */ - /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ - /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ - /* ratio is defined by X_density/Y_density even when density_unit=0. */ - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean write_Adobe_marker; /* should an Adobe marker be written? */ - - /* State variable: index of next scanline to be written to - * jpeg_write_scanlines(). Application may use this to control its - * processing loop, e.g., "while (next_scanline < image_height)". - */ - - JDIMENSION next_scanline; /* 0 .. image_height-1 */ - - /* Remaining fields are known throughout compressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during compression startup - */ - boolean progressive_mode; /* TRUE if scan script uses progressive mode */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ - /* The coefficient controller receives data in units of MCU rows as defined - * for fully interleaved scans (whether the JPEG file is interleaved or not). - * There are v_samp_factor * DCTSIZE sample rows of each component in an - * "iMCU" (interleaved MCU) row. - */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[C_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - /* - * Links to compression subobjects (methods and private variables of modules) - */ - struct jpeg_comp_master * master; - struct jpeg_c_main_controller * main; - struct jpeg_c_prep_controller * prep; - struct jpeg_c_coef_controller * coef; - struct jpeg_marker_writer * marker; - struct jpeg_color_converter * cconvert; - struct jpeg_downsampler * downsample; - struct jpeg_forward_dct * fdct; - struct jpeg_entropy_encoder * entropy; - jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ - int script_space_size; -}; - - -/* Master record for a decompression instance */ - -struct jpeg_decompress_struct { - jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ - - /* Source of compressed data */ - struct jpeg_source_mgr * src; - - /* Basic description of image --- filled in by jpeg_read_header(). */ - /* Application may inspect these values to decide how to process image. */ - - JDIMENSION image_width; /* nominal image width (from SOF marker) */ - JDIMENSION image_height; /* nominal image height */ - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - /* Decompression processing parameters --- these fields must be set before - * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes - * them to default values. - */ - - J_COLOR_SPACE out_color_space; /* colorspace for output */ - - unsigned int scale_num, scale_denom; /* fraction by which to scale image */ - - double output_gamma; /* image gamma wanted in output */ - - boolean buffered_image; /* TRUE=multiple output passes */ - boolean raw_data_out; /* TRUE=downsampled data wanted */ - - J_DCT_METHOD dct_method; /* IDCT algorithm selector */ - boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ - boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ - - boolean quantize_colors; /* TRUE=colormapped output wanted */ - /* the following are ignored if not quantize_colors: */ - J_DITHER_MODE dither_mode; /* type of color dithering to use */ - boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ - int desired_number_of_colors; /* max # colors to use in created colormap */ - /* these are significant only in buffered-image mode: */ - boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ - boolean enable_external_quant;/* enable future use of external colormap */ - boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ - - /* Description of actual output image that will be returned to application. - * These fields are computed by jpeg_start_decompress(). - * You can also use jpeg_calc_output_dimensions() to determine these values - * in advance of calling jpeg_start_decompress(). - */ - - JDIMENSION output_width; /* scaled image width */ - JDIMENSION output_height; /* scaled image height */ - int out_color_components; /* # of color components in out_color_space */ - int output_components; /* # of color components returned */ - /* output_components is 1 (a colormap index) when quantizing colors; - * otherwise it equals out_color_components. - */ - int rec_outbuf_height; /* min recommended height of scanline buffer */ - /* If the buffer passed to jpeg_read_scanlines() is less than this many rows - * high, space and time will be wasted due to unnecessary data copying. - * Usually rec_outbuf_height will be 1 or 2, at most 4. - */ - - /* When quantizing colors, the output colormap is described by these fields. - * The application can supply a colormap by setting colormap non-NULL before - * calling jpeg_start_decompress; otherwise a colormap is created during - * jpeg_start_decompress or jpeg_start_output. - * The map has out_color_components rows and actual_number_of_colors columns. - */ - int actual_number_of_colors; /* number of entries in use */ - JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ - - /* State variables: these variables indicate the progress of decompression. - * The application may examine these but must not modify them. - */ - - /* Row index of next scanline to be read from jpeg_read_scanlines(). - * Application may use this to control its processing loop, e.g., - * "while (output_scanline < output_height)". - */ - JDIMENSION output_scanline; /* 0 .. output_height-1 */ - - /* Current input scan number and number of iMCU rows completed in scan. - * These indicate the progress of the decompressor input side. - */ - int input_scan_number; /* Number of SOS markers seen so far */ - JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ - - /* The "output scan number" is the notional scan being displayed by the - * output side. The decompressor will not allow output scan/row number - * to get ahead of input scan/row, but it can fall arbitrarily far behind. - */ - int output_scan_number; /* Nominal scan number being displayed */ - JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ - - /* Current progression status. coef_bits[c][i] indicates the precision - * with which component c's DCT coefficient i (in zigzag order) is known. - * It is -1 when no data has yet been received, otherwise it is the point - * transform (shift) value for the most recent scan of the coefficient - * (thus, 0 at completion of the progression). - * This pointer is NULL when reading a non-progressive file. - */ - int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ - - /* Internal JPEG parameters --- the application usually need not look at - * these fields. Note that the decompressor output side may not use - * any parameters that can change between scans. - */ - - /* Quantization and Huffman tables are carried forward across input - * datastreams when processing abbreviated JPEG datastreams. - */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - /* These parameters are never carried across datastreams, since they - * are given in SOF/SOS markers or defined to be reset by SOI. - */ - - int data_precision; /* bits of precision in image data */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ - - /* These fields record data obtained from optional markers recognized by - * the JPEG library. - */ - boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ - /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ - UINT8 JFIF_major_version; /* JFIF version number */ - UINT8 JFIF_minor_version; - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ - UINT8 Adobe_transform; /* Color transform code from Adobe marker */ - - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - - /* Aside from the specific data retained from APPn markers known to the - * library, the uninterpreted contents of any or all APPn and COM markers - * can be saved in a list for examination by the application. - */ - jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ - - /* Remaining fields are known throughout decompressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during decompression startup - */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - int min_DCT_scaled_size; /* smallest DCT_scaled_size of any component */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ - /* The coefficient controller's input and output progress is measured in - * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows - * in fully interleaved JPEG scans, but are used whether the scan is - * interleaved or not. We define an iMCU row as v_samp_factor DCT block - * rows of each component. Therefore, the IDCT output contains - * v_samp_factor*DCT_scaled_size sample rows of a component per iMCU row. - */ - - JSAMPLE * sample_range_limit; /* table for fast range-limiting */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - * Note that the decompressor output side must not use these fields. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[D_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - /* This field is shared between entropy decoder and marker parser. - * It is either zero or the code of a JPEG marker that has been - * read from the data source, but has not yet been processed. - */ - int unread_marker; - - /* - * Links to decompression subobjects (methods, private variables of modules) - */ - struct jpeg_decomp_master * master; - struct jpeg_d_main_controller * main; - struct jpeg_d_coef_controller * coef; - struct jpeg_d_post_controller * post; - struct jpeg_input_controller * inputctl; - struct jpeg_marker_reader * marker; - struct jpeg_entropy_decoder * entropy; - struct jpeg_inverse_dct * idct; - struct jpeg_upsampler * upsample; - struct jpeg_color_deconverter * cconvert; - struct jpeg_color_quantizer * cquantize; -}; - - -/* "Object" declarations for JPEG modules that may be supplied or called - * directly by the surrounding application. - * As with all objects in the JPEG library, these structs only define the - * publicly visible methods and state variables of a module. Additional - * private fields may exist after the public ones. - */ - - -/* Error handler object */ - -struct jpeg_error_mgr { - /* Error exit handler: does not return to caller */ - JMETHOD(void, error_exit, (j_common_ptr cinfo)); - /* Conditionally emit a trace or warning message */ - JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); - /* Routine that actually outputs a trace or error message */ - JMETHOD(void, output_message, (j_common_ptr cinfo)); - /* Format a message string for the most recent JPEG error or message */ - JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); -#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ - /* Reset error state variables at start of a new image */ - JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); - - /* The message ID code and any parameters are saved here. - * A message can have one string parameter or up to 8 int parameters. - */ - int msg_code; -#define JMSG_STR_PARM_MAX 80 - union { - int i[8]; - char s[JMSG_STR_PARM_MAX]; - } msg_parm; - - /* Standard state variables for error facility */ - - int trace_level; /* max msg_level that will be displayed */ - - /* For recoverable corrupt-data errors, we emit a warning message, - * but keep going unless emit_message chooses to abort. emit_message - * should count warnings in num_warnings. The surrounding application - * can check for bad data by seeing if num_warnings is nonzero at the - * end of processing. - */ - long num_warnings; /* number of corrupt-data warnings */ - - /* These fields point to the table(s) of error message strings. - * An application can change the table pointer to switch to a different - * message list (typically, to change the language in which errors are - * reported). Some applications may wish to add additional error codes - * that will be handled by the JPEG library error mechanism; the second - * table pointer is used for this purpose. - * - * First table includes all errors generated by JPEG library itself. - * Error code 0 is reserved for a "no such error string" message. - */ - const char * const * jpeg_message_table; /* Library errors */ - int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ - /* Second table can be added by application (see cjpeg/djpeg for example). - * It contains strings numbered first_addon_message..last_addon_message. - */ - const char * const * addon_message_table; /* Non-library errors */ - int first_addon_message; /* code for first string in addon table */ - int last_addon_message; /* code for last string in addon table */ -}; - - -/* Progress monitor object */ - -struct jpeg_progress_mgr { - JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); - - long pass_counter; /* work units completed in this pass */ - long pass_limit; /* total number of work units in this pass */ - int completed_passes; /* passes completed so far */ - int total_passes; /* total number of passes expected */ -}; - - -/* Data destination object for compression */ - -struct jpeg_destination_mgr { - JOCTET * next_output_byte; /* => next byte to write in buffer */ - size_t free_in_buffer; /* # of byte spaces remaining in buffer */ - - JMETHOD(void, init_destination, (j_compress_ptr cinfo)); - JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); - JMETHOD(void, term_destination, (j_compress_ptr cinfo)); -}; - - -/* Data source object for decompression */ - -struct jpeg_source_mgr { - const JOCTET * next_input_byte; /* => next byte to read from buffer */ - size_t bytes_in_buffer; /* # of bytes remaining in buffer */ - - JMETHOD(void, init_source, (j_decompress_ptr cinfo)); - JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); - JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); - JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); - JMETHOD(void, term_source, (j_decompress_ptr cinfo)); -}; - - -/* Memory manager object. - * Allocates "small" objects (a few K total), "large" objects (tens of K), - * and "really big" objects (virtual arrays with backing store if needed). - * The memory manager does not allow individual objects to be freed; rather, - * each created object is assigned to a pool, and whole pools can be freed - * at once. This is faster and more convenient than remembering exactly what - * to free, especially where malloc()/free() are not too speedy. - * NB: alloc routines never return NULL. They exit to error_exit if not - * successful. - */ - -#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ -#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ -#define JPOOL_NUMPOOLS 2 - -typedef struct jvirt_sarray_control * jvirt_sarray_ptr; -typedef struct jvirt_barray_control * jvirt_barray_ptr; - - -struct jpeg_memory_mgr { - /* Method pointers */ - JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, - JDIMENSION samplesperrow, - JDIMENSION numrows)); - JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, - JDIMENSION blocksperrow, - JDIMENSION numrows)); - JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION samplesperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION blocksperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); - JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, - jvirt_sarray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, - jvirt_barray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); - JMETHOD(void, self_destruct, (j_common_ptr cinfo)); - - /* Limit on memory allocation for this JPEG object. (Note that this is - * merely advisory, not a guaranteed maximum; it only affects the space - * used for virtual-array buffers.) May be changed by outer application - * after creating the JPEG object. - */ - long max_memory_to_use; - - /* Maximum allocation request accepted by alloc_large. */ - long max_alloc_chunk; -}; - - -/* Routine signature for application-supplied marker processing methods. - * Need not pass marker code since it is stored in cinfo->unread_marker. - */ -typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); - - -/* Declarations for routines called by application. - * The JPP macro hides prototype parameters from compilers that can't cope. - * Note JPP requires double parentheses. - */ - -#ifdef HAVE_PROTOTYPES -#define JPP(arglist) arglist -#else -#define JPP(arglist) () -#endif - - -/* Short forms of external names for systems with brain-damaged linkers. - * We shorten external names to be unique in the first six letters, which - * is good enough for all known systems. - * (If your compiler itself needs names to be unique in less than 15 - * characters, you are out of luck. Get a better compiler.) - */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_std_error jStdError -#define jpeg_CreateCompress jCreaCompress -#define jpeg_CreateDecompress jCreaDecompress -#define jpeg_destroy_compress jDestCompress -#define jpeg_destroy_decompress jDestDecompress -#define jpeg_stdio_dest jStdDest -#define jpeg_stdio_src jStdSrc -#define jpeg_set_defaults jSetDefaults -#define jpeg_set_colorspace jSetColorspace -#define jpeg_default_colorspace jDefColorspace -#define jpeg_set_quality jSetQuality -#define jpeg_set_linear_quality jSetLQuality -#define jpeg_add_quant_table jAddQuantTable -#define jpeg_quality_scaling jQualityScaling -#define jpeg_simple_progression jSimProgress -#define jpeg_suppress_tables jSuppressTables -#define jpeg_alloc_quant_table jAlcQTable -#define jpeg_alloc_huff_table jAlcHTable -#define jpeg_start_compress jStrtCompress -#define jpeg_write_scanlines jWrtScanlines -#define jpeg_finish_compress jFinCompress -#define jpeg_write_raw_data jWrtRawData -#define jpeg_write_marker jWrtMarker -#define jpeg_write_m_header jWrtMHeader -#define jpeg_write_m_byte jWrtMByte -#define jpeg_write_tables jWrtTables -#define jpeg_read_header jReadHeader -#define jpeg_start_decompress jStrtDecompress -#define jpeg_read_scanlines jReadScanlines -#define jpeg_finish_decompress jFinDecompress -#define jpeg_read_raw_data jReadRawData -#define jpeg_has_multiple_scans jHasMultScn -#define jpeg_start_output jStrtOutput -#define jpeg_finish_output jFinOutput -#define jpeg_input_complete jInComplete -#define jpeg_new_colormap jNewCMap -#define jpeg_consume_input jConsumeInput -#define jpeg_calc_output_dimensions jCalcDimensions -#define jpeg_save_markers jSaveMarkers -#define jpeg_set_marker_processor jSetMarker -#define jpeg_read_coefficients jReadCoefs -#define jpeg_write_coefficients jWrtCoefs -#define jpeg_copy_critical_parameters jCopyCrit -#define jpeg_abort_compress jAbrtCompress -#define jpeg_abort_decompress jAbrtDecompress -#define jpeg_abort jAbort -#define jpeg_destroy jDestroy -#define jpeg_resync_to_restart jResyncRestart -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* Default error-management setup */ -EXTERN(struct jpeg_error_mgr *) jpeg_std_error - JPP((struct jpeg_error_mgr * err)); - -/* Initialization of JPEG compression objects. - * jpeg_create_compress() and jpeg_create_decompress() are the exported - * names that applications should call. These expand to calls on - * jpeg_CreateCompress and jpeg_CreateDecompress with additional information - * passed for version mismatch checking. - * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. - */ -#define jpeg_create_compress(cinfo) \ - jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_compress_struct)) -#define jpeg_create_decompress(cinfo) \ - jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_decompress_struct)) -EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, - int version, size_t structsize)); -EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, - int version, size_t structsize)); -/* Destruction of JPEG compression objects */ -EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); - -/* Standard data source and destination managers: stdio streams. */ -/* Caller is responsible for opening the file before and closing after. */ -EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); -EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); - -/* Default parameter setup for compression */ -EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); -/* Compression parameter setup aids */ -EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, - J_COLOR_SPACE colorspace)); -EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, - boolean force_baseline)); -EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, - int scale_factor, - boolean force_baseline)); -EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, - const unsigned int *basic_table, - int scale_factor, - boolean force_baseline)); -EXTERN(int) jpeg_quality_scaling JPP((int quality)); -EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, - boolean suppress)); -EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); -EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); - -/* Main entry points for compression */ -EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, - boolean write_all_tables)); -EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION num_lines)); -EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); - -/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION num_lines)); - -/* Write a special marker. See libjpeg.doc concerning safe usage. */ -EXTERN(void) jpeg_write_marker - JPP((j_compress_ptr cinfo, int marker, - const JOCTET * dataptr, unsigned int datalen)); -/* Same, but piecemeal. */ -EXTERN(void) jpeg_write_m_header - JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); -EXTERN(void) jpeg_write_m_byte - JPP((j_compress_ptr cinfo, int val)); - -/* Alternate compression function: just write an abbreviated table file */ -EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); - -/* Decompression startup: read start of JPEG datastream to see what's there */ -EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, - boolean require_image)); -/* Return value is one of: */ -#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ -#define JPEG_HEADER_OK 1 /* Found valid image datastream */ -#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ -/* If you pass require_image = TRUE (normal case), you need not check for - * a TABLES_ONLY return code; an abbreviated file will cause an error exit. - * JPEG_SUSPENDED is only possible if you use a data source module that can - * give a suspension return (the stdio source module doesn't). - */ - -/* Main entry points for decompression */ -EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); -EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION max_lines)); -EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); - -/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION max_lines)); - -/* Additional entry points for buffered-image mode. */ -EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, - int scan_number)); -EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); -EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); -/* Return value is one of: */ -/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ -#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ -#define JPEG_REACHED_EOI 2 /* Reached end of image */ -#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ -#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ - -/* Precalculate output dimensions for current decompression parameters. */ -EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); - -/* Control saving of COM and APPn markers into marker_list. */ -EXTERN(void) jpeg_save_markers - JPP((j_decompress_ptr cinfo, int marker_code, - unsigned int length_limit)); - -/* Install a special processing method for COM or APPn markers. */ -EXTERN(void) jpeg_set_marker_processor - JPP((j_decompress_ptr cinfo, int marker_code, - jpeg_marker_parser_method routine)); - -/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ -EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, - jvirt_barray_ptr * coef_arrays)); -EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, - j_compress_ptr dstinfo)); - -/* If you choose to abort compression or decompression before completing - * jpeg_finish_(de)compress, then you need to clean up to release memory, - * temporary files, etc. You can just call jpeg_destroy_(de)compress - * if you're done with the JPEG object, but if you want to clean it up and - * reuse it, call this: - */ -EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); - -/* Generic versions of jpeg_abort and jpeg_destroy that work on either - * flavor of JPEG object. These may be more convenient in some places. - */ -EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); -EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); - -/* Default restart-marker-resync procedure for use by data source modules */ -EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, - int desired)); - - -/* These marker codes are exported since applications and data source modules - * are likely to want to use them. - */ - -#define JPEG_RST0 0xD0 /* RST0 marker code */ -#define JPEG_EOI 0xD9 /* EOI marker code */ -#define JPEG_APP0 0xE0 /* APP0 marker code */ -#define JPEG_COM 0xFE /* COM marker code */ - - -/* If we have a brain-damaged compiler that emits warnings (or worse, errors) - * for structure definitions that are never filled in, keep it quiet by - * supplying dummy definitions for the various substructures. - */ - -#ifdef INCOMPLETE_TYPES_BROKEN -#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ -struct jvirt_sarray_control { long dummy; }; -struct jvirt_barray_control { long dummy; }; -struct jpeg_comp_master { long dummy; }; -struct jpeg_c_main_controller { long dummy; }; -struct jpeg_c_prep_controller { long dummy; }; -struct jpeg_c_coef_controller { long dummy; }; -struct jpeg_marker_writer { long dummy; }; -struct jpeg_color_converter { long dummy; }; -struct jpeg_downsampler { long dummy; }; -struct jpeg_forward_dct { long dummy; }; -struct jpeg_entropy_encoder { long dummy; }; -struct jpeg_decomp_master { long dummy; }; -struct jpeg_d_main_controller { long dummy; }; -struct jpeg_d_coef_controller { long dummy; }; -struct jpeg_d_post_controller { long dummy; }; -struct jpeg_input_controller { long dummy; }; -struct jpeg_marker_reader { long dummy; }; -struct jpeg_entropy_decoder { long dummy; }; -struct jpeg_inverse_dct { long dummy; }; -struct jpeg_upsampler { long dummy; }; -struct jpeg_color_deconverter { long dummy; }; -struct jpeg_color_quantizer { long dummy; }; -#endif /* JPEG_INTERNALS */ -#endif /* INCOMPLETE_TYPES_BROKEN */ - - -/* - * The JPEG library modules define JPEG_INTERNALS before including this file. - * The internal structure declarations are read only when that is true. - * Applications using the library should not include jpegint.h, but may wish - * to include jerror.h. - */ - -#ifdef JPEG_INTERNALS -#include "jpegint.h" /* fetch private declarations */ -#include "jerror.h" /* fetch error codes too */ -#endif - -#endif /* JPEGLIB_H */ diff --git a/src/jpeg/jpegtran.1 b/src/jpeg/jpegtran.1 deleted file mode 100644 index 6de18e2af9..0000000000 --- a/src/jpeg/jpegtran.1 +++ /dev/null @@ -1,238 +0,0 @@ -.TH JPEGTRAN 1 "3 August 1997" -.SH NAME -jpegtran \- lossless transformation of JPEG files -.SH SYNOPSIS -.B jpegtran -[ -.I options -] -[ -.I filename -] -.LP -.SH DESCRIPTION -.LP -.B jpegtran -performs various useful transformations of JPEG files. -It can translate the coded representation from one variant of JPEG to another, -for example from baseline JPEG to progressive JPEG or vice versa. It can also -perform some rearrangements of the image data, for example turning an image -from landscape to portrait format by rotation. -.PP -.B jpegtran -works by rearranging the compressed data (DCT coefficients), without -ever fully decoding the image. Therefore, its transformations are lossless: -there is no image degradation at all, which would not be true if you used -.B djpeg -followed by -.B cjpeg -to accomplish the same conversion. But by the same token, -.B jpegtran -cannot perform lossy operations such as changing the image quality. -.PP -.B jpegtran -reads the named JPEG/JFIF file, or the standard input if no file is -named, and produces a JPEG/JFIF file on the standard output. -.SH OPTIONS -All switch names may be abbreviated; for example, -.B \-optimize -may be written -.B \-opt -or -.BR \-o . -Upper and lower case are equivalent. -British spellings are also accepted (e.g., -.BR \-optimise ), -though for brevity these are not mentioned below. -.PP -To specify the coded JPEG representation used in the output file, -.B jpegtran -accepts a subset of the switches recognized by -.BR cjpeg : -.TP -.B \-optimize -Perform optimization of entropy encoding parameters. -.TP -.B \-progressive -Create progressive JPEG file. -.TP -.BI \-restart " N" -Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is -attached to the number. -.TP -.BI \-scans " file" -Use the scan script given in the specified text file. -.PP -See -.BR cjpeg (1) -for more details about these switches. -If you specify none of these switches, you get a plain baseline-JPEG output -file. The quality setting and so forth are determined by the input file. -.PP -The image can be losslessly transformed by giving one of these switches: -.TP -.B \-flip horizontal -Mirror image horizontally (left-right). -.TP -.B \-flip vertical -Mirror image vertically (top-bottom). -.TP -.B \-rotate 90 -Rotate image 90 degrees clockwise. -.TP -.B \-rotate 180 -Rotate image 180 degrees. -.TP -.B \-rotate 270 -Rotate image 270 degrees clockwise (or 90 ccw). -.TP -.B \-transpose -Transpose image (across UL-to-LR axis). -.TP -.B \-transverse -Transverse transpose (across UR-to-LL axis). -.PP -The transpose transformation has no restrictions regarding image dimensions. -The other transformations operate rather oddly if the image dimensions are not -a multiple of the iMCU size (usually 8 or 16 pixels), because they can only -transform complete blocks of DCT coefficient data in the desired way. -.PP -.BR jpegtran 's -default behavior when transforming an odd-size image is designed -to preserve exact reversibility and mathematical consistency of the -transformation set. As stated, transpose is able to flip the entire image -area. Horizontal mirroring leaves any partial iMCU column at the right edge -untouched, but is able to flip all rows of the image. Similarly, vertical -mirroring leaves any partial iMCU row at the bottom edge untouched, but is -able to flip all columns. The other transforms can be built up as sequences -of transpose and flip operations; for consistency, their actions on edge -pixels are defined to be the same as the end result of the corresponding -transpose-and-flip sequence. -.PP -For practical use, you may prefer to discard any untransformable edge pixels -rather than having a strange-looking strip along the right and/or bottom edges -of a transformed image. To do this, add the -.B \-trim -switch: -.TP -.B \-trim -Drop non-transformable edge blocks. -.PP -Obviously, a transformation with -.B \-trim -is not reversible, so strictly speaking -.B jpegtran -with this switch is not lossless. Also, the expected mathematical -equivalences between the transformations no longer hold. For example, -.B \-rot 270 -trim -trims only the bottom edge, but -.B \-rot 90 -trim -followed by -.B \-rot 180 -trim -trims both edges. -.PP -Another not-strictly-lossless transformation switch is: -.TP -.B \-grayscale -Force grayscale output. -.PP -This option discards the chrominance channels if the input image is YCbCr -(ie, a standard color JPEG), resulting in a grayscale JPEG file. The -luminance channel is preserved exactly, so this is a better method of reducing -to grayscale than decompression, conversion, and recompression. This switch -is particularly handy for fixing a monochrome picture that was mistakenly -encoded as a color JPEG. (In such a case, the space savings from getting rid -of the near-empty chroma channels won't be large; but the decoding time for -a grayscale JPEG is substantially less than that for a color JPEG.) -.PP -.B jpegtran -also recognizes these switches that control what to do with "extra" markers, -such as comment blocks: -.TP -.B \-copy none -Copy no extra markers from source file. This setting suppresses all -comments and other excess baggage present in the source file. -.TP -.B \-copy comments -Copy only comment markers. This setting copies comments from the source file, -but discards any other inessential data. -.TP -.B \-copy all -Copy all extra markers. This setting preserves miscellaneous markers -found in the source file, such as JFIF thumbnails and Photoshop settings. -In some files these extra markers can be sizable. -.PP -The default behavior is -.BR "\-copy comments" . -(Note: in IJG releases v6 and v6a, -.B jpegtran -always did the equivalent of -.BR "\-copy none" .) -.PP -Additional switches recognized by jpegtran are: -.TP -.BI \-maxmemory " N" -Set limit for amount of memory to use in processing large images. Value is -in thousands of bytes, or millions of bytes if "M" is attached to the -number. For example, -.B \-max 4m -selects 4000000 bytes. If more space is needed, temporary files will be used. -.TP -.BI \-outfile " name" -Send output image to the named file, not to standard output. -.TP -.B \-verbose -Enable debug printout. More -.BR \-v 's -give more output. Also, version information is printed at startup. -.TP -.B \-debug -Same as -.BR \-verbose . -.SH EXAMPLES -.LP -This example converts a baseline JPEG file to progressive form: -.IP -.B jpegtran \-progressive -.I foo.jpg -.B > -.I fooprog.jpg -.PP -This example rotates an image 90 degrees clockwise, discarding any -unrotatable edge pixels: -.IP -.B jpegtran \-rot 90 -trim -.I foo.jpg -.B > -.I foo90.jpg -.SH ENVIRONMENT -.TP -.B JPEGMEM -If this environment variable is set, its value is the default memory limit. -The value is specified as described for the -.B \-maxmemory -switch. -.B JPEGMEM -overrides the default value specified when the program was compiled, and -itself is overridden by an explicit -.BR \-maxmemory . -.SH SEE ALSO -.BR cjpeg (1), -.BR djpeg (1), -.BR rdjpgcom (1), -.BR wrjpgcom (1) -.br -Wallace, Gregory K. "The JPEG Still Picture Compression Standard", -Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44. -.SH AUTHOR -Independent JPEG Group -.SH BUGS -Arithmetic coding is not supported for legal reasons. -.PP -The transform options can't transform odd-size images perfectly. Use -.B \-trim -if you don't like the results without it. -.PP -The entire image is read into memory and then written out again, even in -cases where this isn't really necessary. Expect swapping on large images, -especially when using the more complex transform options. diff --git a/src/jpeg/jpegtran.c b/src/jpeg/jpegtran.c deleted file mode 100644 index 20ef111b3f..0000000000 --- a/src/jpeg/jpegtran.c +++ /dev/null @@ -1,504 +0,0 @@ -/* - * jpegtran.c - * - * Copyright (C) 1995-1997, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains a command-line user interface for JPEG transcoding. - * It is very similar to cjpeg.c, but provides lossless transcoding between - * different JPEG file formats. It also provides some lossless and sort-of- - * lossless transformations of JPEG data. - */ - -#include "cdjpeg.h" /* Common decls for cjpeg/djpeg applications */ -#include "transupp.h" /* Support routines for jpegtran */ -#include "jversion.h" /* for version message */ - -#ifdef USE_CCOMMAND /* command-line reader for Macintosh */ -#ifdef __MWERKS__ -#include /* Metrowerks needs this */ -#include /* ... and this */ -#endif -#ifdef THINK_C -#include /* Think declares it here */ -#endif -#endif - - -/* - * Argument-parsing code. - * The switch parser is designed to be useful with DOS-style command line - * syntax, ie, intermixed switches and file names, where only the switches - * to the left of a given file name affect processing of that file. - * The main program in this file doesn't actually use this capability... - */ - - -static const char * progname; /* program name for error messages */ -static char * outfilename; /* for -outfile switch */ -static JCOPY_OPTION copyoption; /* -copy switch */ -static jpeg_transform_info transformoption; /* image transformation options */ - - -LOCAL(void) -usage (void) -/* complain about bad command line */ -{ - fprintf(stderr, "usage: %s [switches] ", progname); -#ifdef TWO_FILE_COMMANDLINE - fprintf(stderr, "inputfile outputfile\n"); -#else - fprintf(stderr, "[inputfile]\n"); -#endif - - fprintf(stderr, "Switches (names may be abbreviated):\n"); - fprintf(stderr, " -copy none Copy no extra markers from source file\n"); - fprintf(stderr, " -copy comments Copy only comment markers (default)\n"); - fprintf(stderr, " -copy all Copy all extra markers\n"); -#ifdef ENTROPY_OPT_SUPPORTED - fprintf(stderr, " -optimize Optimize Huffman table (smaller file, but slow compression)\n"); -#endif -#ifdef C_PROGRESSIVE_SUPPORTED - fprintf(stderr, " -progressive Create progressive JPEG file\n"); -#endif -#if TRANSFORMS_SUPPORTED - fprintf(stderr, "Switches for modifying the image:\n"); - fprintf(stderr, " -grayscale Reduce to grayscale (omit color data)\n"); - fprintf(stderr, " -flip [horizontal|vertical] Mirror image (left-right or top-bottom)\n"); - fprintf(stderr, " -rotate [90|180|270] Rotate image (degrees clockwise)\n"); - fprintf(stderr, " -transpose Transpose image\n"); - fprintf(stderr, " -transverse Transverse transpose image\n"); - fprintf(stderr, " -trim Drop non-transformable edge blocks\n"); -#endif /* TRANSFORMS_SUPPORTED */ - fprintf(stderr, "Switches for advanced users:\n"); - fprintf(stderr, " -restart N Set restart interval in rows, or in blocks with B\n"); - fprintf(stderr, " -maxmemory N Maximum memory to use (in kbytes)\n"); - fprintf(stderr, " -outfile name Specify name for output file\n"); - fprintf(stderr, " -verbose or -debug Emit debug output\n"); - fprintf(stderr, "Switches for wizards:\n"); -#ifdef C_ARITH_CODING_SUPPORTED - fprintf(stderr, " -arithmetic Use arithmetic coding\n"); -#endif -#ifdef C_MULTISCAN_FILES_SUPPORTED - fprintf(stderr, " -scans file Create multi-scan JPEG per script file\n"); -#endif - exit(EXIT_FAILURE); -} - - -LOCAL(void) -select_transform (JXFORM_CODE transform) -/* Silly little routine to detect multiple transform options, - * which we can't handle. - */ -{ -#if TRANSFORMS_SUPPORTED - if (transformoption.transform == JXFORM_NONE || - transformoption.transform == transform) { - transformoption.transform = transform; - } else { - fprintf(stderr, "%s: can only do one image transformation at a time\n", - progname); - usage(); - } -#else - fprintf(stderr, "%s: sorry, image transformation was not compiled\n", - progname); - exit(EXIT_FAILURE); -#endif -} - - -LOCAL(int) -parse_switches (j_compress_ptr cinfo, int argc, char **argv, - int last_file_arg_seen, boolean for_real) -/* Parse optional switches. - * Returns argv[] index of first file-name argument (== argc if none). - * Any file names with indexes <= last_file_arg_seen are ignored; - * they have presumably been processed in a previous iteration. - * (Pass 0 for last_file_arg_seen on the first or only iteration.) - * for_real is FALSE on the first (dummy) pass; we may skip any expensive - * processing. - */ -{ - int argn; - char * arg; - boolean simple_progressive; - char * scansarg = NULL; /* saves -scans parm if any */ - - /* Set up default JPEG parameters. */ - simple_progressive = FALSE; - outfilename = NULL; - copyoption = JCOPYOPT_DEFAULT; - transformoption.transform = JXFORM_NONE; - transformoption.trim = FALSE; - transformoption.force_grayscale = FALSE; - cinfo->err->trace_level = 0; - - /* Scan command line options, adjust parameters */ - - for (argn = 1; argn < argc; argn++) { - arg = argv[argn]; - if (*arg != '-') { - /* Not a switch, must be a file name argument */ - if (argn <= last_file_arg_seen) { - outfilename = NULL; /* -outfile applies to just one input file */ - continue; /* ignore this name if previously processed */ - } - break; /* else done parsing switches */ - } - arg++; /* advance past switch marker character */ - - if (keymatch(arg, "arithmetic", 1)) { - /* Use arithmetic coding. */ -#ifdef C_ARITH_CODING_SUPPORTED - cinfo->arith_code = TRUE; -#else - fprintf(stderr, "%s: sorry, arithmetic coding not supported\n", - progname); - exit(EXIT_FAILURE); -#endif - - } else if (keymatch(arg, "copy", 1)) { - /* Select which extra markers to copy. */ - if (++argn >= argc) /* advance to next argument */ - usage(); - if (keymatch(argv[argn], "none", 1)) { - copyoption = JCOPYOPT_NONE; - } else if (keymatch(argv[argn], "comments", 1)) { - copyoption = JCOPYOPT_COMMENTS; - } else if (keymatch(argv[argn], "all", 1)) { - copyoption = JCOPYOPT_ALL; - } else - usage(); - - } else if (keymatch(arg, "debug", 1) || keymatch(arg, "verbose", 1)) { - /* Enable debug printouts. */ - /* On first -d, print version identification */ - static boolean printed_version = FALSE; - - if (! printed_version) { - fprintf(stderr, "Independent JPEG Group's JPEGTRAN, version %s\n%s\n", - JVERSION, JCOPYRIGHT); - printed_version = TRUE; - } - cinfo->err->trace_level++; - - } else if (keymatch(arg, "flip", 1)) { - /* Mirror left-right or top-bottom. */ - if (++argn >= argc) /* advance to next argument */ - usage(); - if (keymatch(argv[argn], "horizontal", 1)) - select_transform(JXFORM_FLIP_H); - else if (keymatch(argv[argn], "vertical", 1)) - select_transform(JXFORM_FLIP_V); - else - usage(); - - } else if (keymatch(arg, "grayscale", 1) || keymatch(arg, "greyscale",1)) { - /* Force to grayscale. */ -#if TRANSFORMS_SUPPORTED - transformoption.force_grayscale = TRUE; -#else - select_transform(JXFORM_NONE); /* force an error */ -#endif - - } else if (keymatch(arg, "maxmemory", 3)) { - /* Maximum memory in Kb (or Mb with 'm'). */ - long lval; - char ch = 'x'; - - if (++argn >= argc) /* advance to next argument */ - usage(); - if (sscanf(argv[argn], "%ld%c", &lval, &ch) < 1) - usage(); - if (ch == 'm' || ch == 'M') - lval *= 1000L; - cinfo->mem->max_memory_to_use = lval * 1000L; - - } else if (keymatch(arg, "optimize", 1) || keymatch(arg, "optimise", 1)) { - /* Enable entropy parm optimization. */ -#ifdef ENTROPY_OPT_SUPPORTED - cinfo->optimize_coding = TRUE; -#else - fprintf(stderr, "%s: sorry, entropy optimization was not compiled\n", - progname); - exit(EXIT_FAILURE); -#endif - - } else if (keymatch(arg, "outfile", 4)) { - /* Set output file name. */ - if (++argn >= argc) /* advance to next argument */ - usage(); - outfilename = argv[argn]; /* save it away for later use */ - - } else if (keymatch(arg, "progressive", 1)) { - /* Select simple progressive mode. */ -#ifdef C_PROGRESSIVE_SUPPORTED - simple_progressive = TRUE; - /* We must postpone execution until num_components is known. */ -#else - fprintf(stderr, "%s: sorry, progressive output was not compiled\n", - progname); - exit(EXIT_FAILURE); -#endif - - } else if (keymatch(arg, "restart", 1)) { - /* Restart interval in MCU rows (or in MCUs with 'b'). */ - long lval; - char ch = 'x'; - - if (++argn >= argc) /* advance to next argument */ - usage(); - if (sscanf(argv[argn], "%ld%c", &lval, &ch) < 1) - usage(); - if (lval < 0 || lval > 65535L) - usage(); - if (ch == 'b' || ch == 'B') { - cinfo->restart_interval = (unsigned int) lval; - cinfo->restart_in_rows = 0; /* else prior '-restart n' overrides me */ - } else { - cinfo->restart_in_rows = (int) lval; - /* restart_interval will be computed during startup */ - } - - } else if (keymatch(arg, "rotate", 2)) { - /* Rotate 90, 180, or 270 degrees (measured clockwise). */ - if (++argn >= argc) /* advance to next argument */ - usage(); - if (keymatch(argv[argn], "90", 2)) - select_transform(JXFORM_ROT_90); - else if (keymatch(argv[argn], "180", 3)) - select_transform(JXFORM_ROT_180); - else if (keymatch(argv[argn], "270", 3)) - select_transform(JXFORM_ROT_270); - else - usage(); - - } else if (keymatch(arg, "scans", 1)) { - /* Set scan script. */ -#ifdef C_MULTISCAN_FILES_SUPPORTED - if (++argn >= argc) /* advance to next argument */ - usage(); - scansarg = argv[argn]; - /* We must postpone reading the file in case -progressive appears. */ -#else - fprintf(stderr, "%s: sorry, multi-scan output was not compiled\n", - progname); - exit(EXIT_FAILURE); -#endif - - } else if (keymatch(arg, "transpose", 1)) { - /* Transpose (across UL-to-LR axis). */ - select_transform(JXFORM_TRANSPOSE); - - } else if (keymatch(arg, "transverse", 6)) { - /* Transverse transpose (across UR-to-LL axis). */ - select_transform(JXFORM_TRANSVERSE); - - } else if (keymatch(arg, "trim", 3)) { - /* Trim off any partial edge MCUs that the transform can't handle. */ - transformoption.trim = TRUE; - - } else { - usage(); /* bogus switch */ - } - } - - /* Post-switch-scanning cleanup */ - - if (for_real) { - -#ifdef C_PROGRESSIVE_SUPPORTED - if (simple_progressive) /* process -progressive; -scans can override */ - jpeg_simple_progression(cinfo); -#endif - -#ifdef C_MULTISCAN_FILES_SUPPORTED - if (scansarg != NULL) /* process -scans if it was present */ - if (! read_scan_script(cinfo, scansarg)) - usage(); -#endif - } - - return argn; /* return index of next arg (file name) */ -} - - -/* - * The main program. - */ - -int -main (int argc, char **argv) -{ - struct jpeg_decompress_struct srcinfo; - struct jpeg_compress_struct dstinfo; - struct jpeg_error_mgr jsrcerr, jdsterr; -#ifdef PROGRESS_REPORT - struct cdjpeg_progress_mgr progress; -#endif - jvirt_barray_ptr * src_coef_arrays; - jvirt_barray_ptr * dst_coef_arrays; - int file_index; - FILE * input_file; - FILE * output_file; - - /* On Mac, fetch a command line. */ -#ifdef USE_CCOMMAND - argc = ccommand(&argv); -#endif - - progname = argv[0]; - if (progname == NULL || progname[0] == 0) - progname = "jpegtran"; /* in case C library doesn't provide it */ - - /* Initialize the JPEG decompression object with default error handling. */ - srcinfo.err = jpeg_std_error(&jsrcerr); - jpeg_create_decompress(&srcinfo); - /* Initialize the JPEG compression object with default error handling. */ - dstinfo.err = jpeg_std_error(&jdsterr); - jpeg_create_compress(&dstinfo); - - /* Now safe to enable signal catcher. - * Note: we assume only the decompression object will have virtual arrays. - */ -#ifdef NEED_SIGNAL_CATCHER - enable_signal_catcher((j_common_ptr) &srcinfo); -#endif - - /* Scan command line to find file names. - * It is convenient to use just one switch-parsing routine, but the switch - * values read here are mostly ignored; we will rescan the switches after - * opening the input file. Also note that most of the switches affect the - * destination JPEG object, so we parse into that and then copy over what - * needs to affects the source too. - */ - - file_index = parse_switches(&dstinfo, argc, argv, 0, FALSE); - jsrcerr.trace_level = jdsterr.trace_level; - srcinfo.mem->max_memory_to_use = dstinfo.mem->max_memory_to_use; - -#ifdef TWO_FILE_COMMANDLINE - /* Must have either -outfile switch or explicit output file name */ - if (outfilename == NULL) { - if (file_index != argc-2) { - fprintf(stderr, "%s: must name one input and one output file\n", - progname); - usage(); - } - outfilename = argv[file_index+1]; - } else { - if (file_index != argc-1) { - fprintf(stderr, "%s: must name one input and one output file\n", - progname); - usage(); - } - } -#else - /* Unix style: expect zero or one file name */ - if (file_index < argc-1) { - fprintf(stderr, "%s: only one input file\n", progname); - usage(); - } -#endif /* TWO_FILE_COMMANDLINE */ - - /* Open the input file. */ - if (file_index < argc) { - if ((input_file = fopen(argv[file_index], READ_BINARY)) == NULL) { - fprintf(stderr, "%s: can't open %s\n", progname, argv[file_index]); - exit(EXIT_FAILURE); - } - } else { - /* default input file is stdin */ - input_file = read_stdin(); - } - - /* Open the output file. */ - if (outfilename != NULL) { - if ((output_file = fopen(outfilename, WRITE_BINARY)) == NULL) { - fprintf(stderr, "%s: can't open %s\n", progname, outfilename); - exit(EXIT_FAILURE); - } - } else { - /* default output file is stdout */ - output_file = write_stdout(); - } - -#ifdef PROGRESS_REPORT - start_progress_monitor((j_common_ptr) &dstinfo, &progress); -#endif - - /* Specify data source for decompression */ - jpeg_stdio_src(&srcinfo, input_file); - - /* Enable saving of extra markers that we want to copy */ - jcopy_markers_setup(&srcinfo, copyoption); - - /* Read file header */ - (void) jpeg_read_header(&srcinfo, TRUE); - - /* Any space needed by a transform option must be requested before - * jpeg_read_coefficients so that memory allocation will be done right. - */ -#if TRANSFORMS_SUPPORTED - jtransform_request_workspace(&srcinfo, &transformoption); -#endif - - /* Read source file as DCT coefficients */ - src_coef_arrays = jpeg_read_coefficients(&srcinfo); - - /* Initialize destination compression parameters from source values */ - jpeg_copy_critical_parameters(&srcinfo, &dstinfo); - - /* Adjust destination parameters if required by transform options; - * also find out which set of coefficient arrays will hold the output. - */ -#if TRANSFORMS_SUPPORTED - dst_coef_arrays = jtransform_adjust_parameters(&srcinfo, &dstinfo, - src_coef_arrays, - &transformoption); -#else - dst_coef_arrays = src_coef_arrays; -#endif - - /* Adjust default compression parameters by re-parsing the options */ - file_index = parse_switches(&dstinfo, argc, argv, 0, TRUE); - - /* Specify data destination for compression */ - jpeg_stdio_dest(&dstinfo, output_file); - - /* Start compressor (note no image data is actually written here) */ - jpeg_write_coefficients(&dstinfo, dst_coef_arrays); - - /* Copy to the output file any extra markers that we want to preserve */ - jcopy_markers_execute(&srcinfo, &dstinfo, copyoption); - - /* Execute image transformation, if any */ -#if TRANSFORMS_SUPPORTED - jtransform_execute_transformation(&srcinfo, &dstinfo, - src_coef_arrays, - &transformoption); -#endif - - /* Finish compression and release memory */ - jpeg_finish_compress(&dstinfo); - jpeg_destroy_compress(&dstinfo); - (void) jpeg_finish_decompress(&srcinfo); - jpeg_destroy_decompress(&srcinfo); - - /* Close files, if we opened them */ - if (input_file != stdin) - fclose(input_file); - if (output_file != stdout) - fclose(output_file); - -#ifdef PROGRESS_REPORT - end_progress_monitor((j_common_ptr) &dstinfo); -#endif - - /* All done. */ - exit(jsrcerr.num_warnings + jdsterr.num_warnings ?EXIT_WARNING:EXIT_SUCCESS); - return 0; /* suppress no-return-value warnings */ -} diff --git a/src/jpeg/jquant1.c b/src/jpeg/jquant1.c deleted file mode 100644 index b2f96aa15d..0000000000 --- a/src/jpeg/jquant1.c +++ /dev/null @@ -1,856 +0,0 @@ -/* - * jquant1.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains 1-pass color quantization (color mapping) routines. - * These routines provide mapping to a fixed color map using equally spaced - * color values. Optional Floyd-Steinberg or ordered dithering is available. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - -#ifdef QUANT_1PASS_SUPPORTED - - -/* - * The main purpose of 1-pass quantization is to provide a fast, if not very - * high quality, colormapped output capability. A 2-pass quantizer usually - * gives better visual quality; however, for quantized grayscale output this - * quantizer is perfectly adequate. Dithering is highly recommended with this - * quantizer, though you can turn it off if you really want to. - * - * In 1-pass quantization the colormap must be chosen in advance of seeing the - * image. We use a map consisting of all combinations of Ncolors[i] color - * values for the i'th component. The Ncolors[] values are chosen so that - * their product, the total number of colors, is no more than that requested. - * (In most cases, the product will be somewhat less.) - * - * Since the colormap is orthogonal, the representative value for each color - * component can be determined without considering the other components; - * then these indexes can be combined into a colormap index by a standard - * N-dimensional-array-subscript calculation. Most of the arithmetic involved - * can be precalculated and stored in the lookup table colorindex[]. - * colorindex[i][j] maps pixel value j in component i to the nearest - * representative value (grid plane) for that component; this index is - * multiplied by the array stride for component i, so that the - * index of the colormap entry closest to a given pixel value is just - * sum( colorindex[component-number][pixel-component-value] ) - * Aside from being fast, this scheme allows for variable spacing between - * representative values with no additional lookup cost. - * - * If gamma correction has been applied in color conversion, it might be wise - * to adjust the color grid spacing so that the representative colors are - * equidistant in linear space. At this writing, gamma correction is not - * implemented by jdcolor, so nothing is done here. - */ - - -/* Declarations for ordered dithering. - * - * We use a standard 16x16 ordered dither array. The basic concept of ordered - * dithering is described in many references, for instance Dale Schumacher's - * chapter II.2 of Graphics Gems II (James Arvo, ed. Academic Press, 1991). - * In place of Schumacher's comparisons against a "threshold" value, we add a - * "dither" value to the input pixel and then round the result to the nearest - * output value. The dither value is equivalent to (0.5 - threshold) times - * the distance between output values. For ordered dithering, we assume that - * the output colors are equally spaced; if not, results will probably be - * worse, since the dither may be too much or too little at a given point. - * - * The normal calculation would be to form pixel value + dither, range-limit - * this to 0..MAXJSAMPLE, and then index into the colorindex table as usual. - * We can skip the separate range-limiting step by extending the colorindex - * table in both directions. - */ - -#define ODITHER_SIZE 16 /* dimension of dither matrix */ -/* NB: if ODITHER_SIZE is not a power of 2, ODITHER_MASK uses will break */ -#define ODITHER_CELLS (ODITHER_SIZE*ODITHER_SIZE) /* # cells in matrix */ -#define ODITHER_MASK (ODITHER_SIZE-1) /* mask for wrapping around counters */ - -typedef int ODITHER_MATRIX[ODITHER_SIZE][ODITHER_SIZE]; -typedef int (*ODITHER_MATRIX_PTR)[ODITHER_SIZE]; - -static const UINT8 base_dither_matrix[ODITHER_SIZE][ODITHER_SIZE] = { - /* Bayer's order-4 dither array. Generated by the code given in - * Stephen Hawley's article "Ordered Dithering" in Graphics Gems I. - * The values in this array must range from 0 to ODITHER_CELLS-1. - */ - { 0,192, 48,240, 12,204, 60,252, 3,195, 51,243, 15,207, 63,255 }, - { 128, 64,176,112,140, 76,188,124,131, 67,179,115,143, 79,191,127 }, - { 32,224, 16,208, 44,236, 28,220, 35,227, 19,211, 47,239, 31,223 }, - { 160, 96,144, 80,172,108,156, 92,163, 99,147, 83,175,111,159, 95 }, - { 8,200, 56,248, 4,196, 52,244, 11,203, 59,251, 7,199, 55,247 }, - { 136, 72,184,120,132, 68,180,116,139, 75,187,123,135, 71,183,119 }, - { 40,232, 24,216, 36,228, 20,212, 43,235, 27,219, 39,231, 23,215 }, - { 168,104,152, 88,164,100,148, 84,171,107,155, 91,167,103,151, 87 }, - { 2,194, 50,242, 14,206, 62,254, 1,193, 49,241, 13,205, 61,253 }, - { 130, 66,178,114,142, 78,190,126,129, 65,177,113,141, 77,189,125 }, - { 34,226, 18,210, 46,238, 30,222, 33,225, 17,209, 45,237, 29,221 }, - { 162, 98,146, 82,174,110,158, 94,161, 97,145, 81,173,109,157, 93 }, - { 10,202, 58,250, 6,198, 54,246, 9,201, 57,249, 5,197, 53,245 }, - { 138, 74,186,122,134, 70,182,118,137, 73,185,121,133, 69,181,117 }, - { 42,234, 26,218, 38,230, 22,214, 41,233, 25,217, 37,229, 21,213 }, - { 170,106,154, 90,166,102,150, 86,169,105,153, 89,165,101,149, 85 } -}; - - -/* Declarations for Floyd-Steinberg dithering. - * - * Errors are accumulated into the array fserrors[], at a resolution of - * 1/16th of a pixel count. The error at a given pixel is propagated - * to its not-yet-processed neighbors using the standard F-S fractions, - * ... (here) 7/16 - * 3/16 5/16 1/16 - * We work left-to-right on even rows, right-to-left on odd rows. - * - * We can get away with a single array (holding one row's worth of errors) - * by using it to store the current row's errors at pixel columns not yet - * processed, but the next row's errors at columns already processed. We - * need only a few extra variables to hold the errors immediately around the - * current column. (If we are lucky, those variables are in registers, but - * even if not, they're probably cheaper to access than array elements are.) - * - * The fserrors[] array is indexed [component#][position]. - * We provide (#columns + 2) entries per component; the extra entry at each - * end saves us from special-casing the first and last pixels. - * - * Note: on a wide image, we might not have enough room in a PC's near data - * segment to hold the error array; so it is allocated with alloc_large. - */ - -#if BITS_IN_JSAMPLE == 8 -typedef INT16 FSERROR; /* 16 bits should be enough */ -typedef int LOCFSERROR; /* use 'int' for calculation temps */ -#else -typedef INT32 FSERROR; /* may need more than 16 bits */ -typedef INT32 LOCFSERROR; /* be sure calculation temps are big enough */ -#endif - -typedef FSERROR FAR *FSERRPTR; /* pointer to error array (in FAR storage!) */ - - -/* Private subobject */ - -#define MAX_Q_COMPS 4 /* max components I can handle */ - -typedef struct { - struct jpeg_color_quantizer pub; /* public fields */ - - /* Initially allocated colormap is saved here */ - JSAMPARRAY sv_colormap; /* The color map as a 2-D pixel array */ - int sv_actual; /* number of entries in use */ - - JSAMPARRAY colorindex; /* Precomputed mapping for speed */ - /* colorindex[i][j] = index of color closest to pixel value j in component i, - * premultiplied as described above. Since colormap indexes must fit into - * JSAMPLEs, the entries of this array will too. - */ - boolean is_padded; /* is the colorindex padded for odither? */ - - int Ncolors[MAX_Q_COMPS]; /* # of values alloced to each component */ - - /* Variables for ordered dithering */ - int row_index; /* cur row's vertical index in dither matrix */ - ODITHER_MATRIX_PTR odither[MAX_Q_COMPS]; /* one dither array per component */ - - /* Variables for Floyd-Steinberg dithering */ - FSERRPTR fserrors[MAX_Q_COMPS]; /* accumulated errors */ - boolean on_odd_row; /* flag to remember which row we are on */ -} my_cquantizer; - -typedef my_cquantizer * my_cquantize_ptr; - - -/* - * Policy-making subroutines for create_colormap and create_colorindex. - * These routines determine the colormap to be used. The rest of the module - * only assumes that the colormap is orthogonal. - * - * * select_ncolors decides how to divvy up the available colors - * among the components. - * * output_value defines the set of representative values for a component. - * * largest_input_value defines the mapping from input values to - * representative values for a component. - * Note that the latter two routines may impose different policies for - * different components, though this is not currently done. - */ - - -LOCAL(int) -select_ncolors (j_decompress_ptr cinfo, int Ncolors[]) -/* Determine allocation of desired colors to components, */ -/* and fill in Ncolors[] array to indicate choice. */ -/* Return value is total number of colors (product of Ncolors[] values). */ -{ - int nc = cinfo->out_color_components; /* number of color components */ - int max_colors = cinfo->desired_number_of_colors; - int total_colors, iroot, i, j; - boolean changed; - long temp; - static const int RGB_order[3] = { RGB_GREEN, RGB_RED, RGB_BLUE }; - - /* We can allocate at least the nc'th root of max_colors per component. */ - /* Compute floor(nc'th root of max_colors). */ - iroot = 1; - do { - iroot++; - temp = iroot; /* set temp = iroot ** nc */ - for (i = 1; i < nc; i++) - temp *= iroot; - } while (temp <= (long) max_colors); /* repeat till iroot exceeds root */ - iroot--; /* now iroot = floor(root) */ - - /* Must have at least 2 color values per component */ - if (iroot < 2) - ERREXIT1(cinfo, JERR_QUANT_FEW_COLORS, (int) temp); - - /* Initialize to iroot color values for each component */ - total_colors = 1; - for (i = 0; i < nc; i++) { - Ncolors[i] = iroot; - total_colors *= iroot; - } - /* We may be able to increment the count for one or more components without - * exceeding max_colors, though we know not all can be incremented. - * Sometimes, the first component can be incremented more than once! - * (Example: for 16 colors, we start at 2*2*2, go to 3*2*2, then 4*2*2.) - * In RGB colorspace, try to increment G first, then R, then B. - */ - do { - changed = FALSE; - for (i = 0; i < nc; i++) { - j = (cinfo->out_color_space == JCS_RGB ? RGB_order[i] : i); - /* calculate new total_colors if Ncolors[j] is incremented */ - temp = total_colors / Ncolors[j]; - temp *= Ncolors[j]+1; /* done in long arith to avoid oflo */ - if (temp > (long) max_colors) - break; /* won't fit, done with this pass */ - Ncolors[j]++; /* OK, apply the increment */ - total_colors = (int) temp; - changed = TRUE; - } - } while (changed); - - return total_colors; -} - - -LOCAL(int) -output_value (j_decompress_ptr cinfo, int ci, int j, int maxj) -/* Return j'th output value, where j will range from 0 to maxj */ -/* The output values must fall in 0..MAXJSAMPLE in increasing order */ -{ - /* We always provide values 0 and MAXJSAMPLE for each component; - * any additional values are equally spaced between these limits. - * (Forcing the upper and lower values to the limits ensures that - * dithering can't produce a color outside the selected gamut.) - */ - return (int) (((INT32) j * MAXJSAMPLE + maxj/2) / maxj); -} - - -LOCAL(int) -largest_input_value (j_decompress_ptr cinfo, int ci, int j, int maxj) -/* Return largest input value that should map to j'th output value */ -/* Must have largest(j=0) >= 0, and largest(j=maxj) >= MAXJSAMPLE */ -{ - /* Breakpoints are halfway between values returned by output_value */ - return (int) (((INT32) (2*j + 1) * MAXJSAMPLE + maxj) / (2*maxj)); -} - - -/* - * Create the colormap. - */ - -LOCAL(void) -create_colormap (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - JSAMPARRAY colormap; /* Created colormap */ - int total_colors; /* Number of distinct output colors */ - int i,j,k, nci, blksize, blkdist, ptr, val; - - /* Select number of colors for each component */ - total_colors = select_ncolors(cinfo, cquantize->Ncolors); - - /* Report selected color counts */ - if (cinfo->out_color_components == 3) - TRACEMS4(cinfo, 1, JTRC_QUANT_3_NCOLORS, - total_colors, cquantize->Ncolors[0], - cquantize->Ncolors[1], cquantize->Ncolors[2]); - else - TRACEMS1(cinfo, 1, JTRC_QUANT_NCOLORS, total_colors); - - /* Allocate and fill in the colormap. */ - /* The colors are ordered in the map in standard row-major order, */ - /* i.e. rightmost (highest-indexed) color changes most rapidly. */ - - colormap = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (JDIMENSION) total_colors, (JDIMENSION) cinfo->out_color_components); - - /* blksize is number of adjacent repeated entries for a component */ - /* blkdist is distance between groups of identical entries for a component */ - blkdist = total_colors; - - for (i = 0; i < cinfo->out_color_components; i++) { - /* fill in colormap entries for i'th color component */ - nci = cquantize->Ncolors[i]; /* # of distinct values for this color */ - blksize = blkdist / nci; - for (j = 0; j < nci; j++) { - /* Compute j'th output value (out of nci) for component */ - val = output_value(cinfo, i, j, nci-1); - /* Fill in all colormap entries that have this value of this component */ - for (ptr = j * blksize; ptr < total_colors; ptr += blkdist) { - /* fill in blksize entries beginning at ptr */ - for (k = 0; k < blksize; k++) - colormap[i][ptr+k] = (JSAMPLE) val; - } - } - blkdist = blksize; /* blksize of this color is blkdist of next */ - } - - /* Save the colormap in private storage, - * where it will survive color quantization mode changes. - */ - cquantize->sv_colormap = colormap; - cquantize->sv_actual = total_colors; -} - - -/* - * Create the color index table. - */ - -LOCAL(void) -create_colorindex (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - JSAMPROW indexptr; - int i,j,k, nci, blksize, val, pad; - - /* For ordered dither, we pad the color index tables by MAXJSAMPLE in - * each direction (input index values can be -MAXJSAMPLE .. 2*MAXJSAMPLE). - * This is not necessary in the other dithering modes. However, we - * flag whether it was done in case user changes dithering mode. - */ - if (cinfo->dither_mode == JDITHER_ORDERED) { - pad = MAXJSAMPLE*2; - cquantize->is_padded = TRUE; - } else { - pad = 0; - cquantize->is_padded = FALSE; - } - - cquantize->colorindex = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (JDIMENSION) (MAXJSAMPLE+1 + pad), - (JDIMENSION) cinfo->out_color_components); - - /* blksize is number of adjacent repeated entries for a component */ - blksize = cquantize->sv_actual; - - for (i = 0; i < cinfo->out_color_components; i++) { - /* fill in colorindex entries for i'th color component */ - nci = cquantize->Ncolors[i]; /* # of distinct values for this color */ - blksize = blksize / nci; - - /* adjust colorindex pointers to provide padding at negative indexes. */ - if (pad) - cquantize->colorindex[i] += MAXJSAMPLE; - - /* in loop, val = index of current output value, */ - /* and k = largest j that maps to current val */ - indexptr = cquantize->colorindex[i]; - val = 0; - k = largest_input_value(cinfo, i, 0, nci-1); - for (j = 0; j <= MAXJSAMPLE; j++) { - while (j > k) /* advance val if past boundary */ - k = largest_input_value(cinfo, i, ++val, nci-1); - /* premultiply so that no multiplication needed in main processing */ - indexptr[j] = (JSAMPLE) (val * blksize); - } - /* Pad at both ends if necessary */ - if (pad) - for (j = 1; j <= MAXJSAMPLE; j++) { - indexptr[-j] = indexptr[0]; - indexptr[MAXJSAMPLE+j] = indexptr[MAXJSAMPLE]; - } - } -} - - -/* - * Create an ordered-dither array for a component having ncolors - * distinct output values. - */ - -LOCAL(ODITHER_MATRIX_PTR) -make_odither_array (j_decompress_ptr cinfo, int ncolors) -{ - ODITHER_MATRIX_PTR odither; - int j,k; - INT32 num,den; - - odither = (ODITHER_MATRIX_PTR) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(ODITHER_MATRIX)); - /* The inter-value distance for this color is MAXJSAMPLE/(ncolors-1). - * Hence the dither value for the matrix cell with fill order f - * (f=0..N-1) should be (N-1-2*f)/(2*N) * MAXJSAMPLE/(ncolors-1). - * On 16-bit-int machine, be careful to avoid overflow. - */ - den = 2 * ODITHER_CELLS * ((INT32) (ncolors - 1)); - for (j = 0; j < ODITHER_SIZE; j++) { - for (k = 0; k < ODITHER_SIZE; k++) { - num = ((INT32) (ODITHER_CELLS-1 - 2*((int)base_dither_matrix[j][k]))) - * MAXJSAMPLE; - /* Ensure round towards zero despite C's lack of consistency - * about rounding negative values in integer division... - */ - odither[j][k] = (int) (num<0 ? -((-num)/den) : num/den); - } - } - return odither; -} - - -/* - * Create the ordered-dither tables. - * Components having the same number of representative colors may - * share a dither table. - */ - -LOCAL(void) -create_odither_tables (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - ODITHER_MATRIX_PTR odither; - int i, j, nci; - - for (i = 0; i < cinfo->out_color_components; i++) { - nci = cquantize->Ncolors[i]; /* # of distinct values for this color */ - odither = NULL; /* search for matching prior component */ - for (j = 0; j < i; j++) { - if (nci == cquantize->Ncolors[j]) { - odither = cquantize->odither[j]; - break; - } - } - if (odither == NULL) /* need a new table? */ - odither = make_odither_array(cinfo, nci); - cquantize->odither[i] = odither; - } -} - - -/* - * Map some rows of pixels to the output colormapped representation. - */ - -METHODDEF(void) -color_quantize (j_decompress_ptr cinfo, JSAMPARRAY input_buf, - JSAMPARRAY output_buf, int num_rows) -/* General case, no dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - JSAMPARRAY colorindex = cquantize->colorindex; - register int pixcode, ci; - register JSAMPROW ptrin, ptrout; - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - register int nc = cinfo->out_color_components; - - for (row = 0; row < num_rows; row++) { - ptrin = input_buf[row]; - ptrout = output_buf[row]; - for (col = width; col > 0; col--) { - pixcode = 0; - for (ci = 0; ci < nc; ci++) { - pixcode += GETJSAMPLE(colorindex[ci][GETJSAMPLE(*ptrin++)]); - } - *ptrout++ = (JSAMPLE) pixcode; - } - } -} - - -METHODDEF(void) -color_quantize3 (j_decompress_ptr cinfo, JSAMPARRAY input_buf, - JSAMPARRAY output_buf, int num_rows) -/* Fast path for out_color_components==3, no dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - register int pixcode; - register JSAMPROW ptrin, ptrout; - JSAMPROW colorindex0 = cquantize->colorindex[0]; - JSAMPROW colorindex1 = cquantize->colorindex[1]; - JSAMPROW colorindex2 = cquantize->colorindex[2]; - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - - for (row = 0; row < num_rows; row++) { - ptrin = input_buf[row]; - ptrout = output_buf[row]; - for (col = width; col > 0; col--) { - pixcode = GETJSAMPLE(colorindex0[GETJSAMPLE(*ptrin++)]); - pixcode += GETJSAMPLE(colorindex1[GETJSAMPLE(*ptrin++)]); - pixcode += GETJSAMPLE(colorindex2[GETJSAMPLE(*ptrin++)]); - *ptrout++ = (JSAMPLE) pixcode; - } - } -} - - -METHODDEF(void) -quantize_ord_dither (j_decompress_ptr cinfo, JSAMPARRAY input_buf, - JSAMPARRAY output_buf, int num_rows) -/* General case, with ordered dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - register JSAMPROW input_ptr; - register JSAMPROW output_ptr; - JSAMPROW colorindex_ci; - int * dither; /* points to active row of dither matrix */ - int row_index, col_index; /* current indexes into dither matrix */ - int nc = cinfo->out_color_components; - int ci; - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - - for (row = 0; row < num_rows; row++) { - /* Initialize output values to 0 so can process components separately */ - jzero_far((void FAR *) output_buf[row], - (size_t) (width * SIZEOF(JSAMPLE))); - row_index = cquantize->row_index; - for (ci = 0; ci < nc; ci++) { - input_ptr = input_buf[row] + ci; - output_ptr = output_buf[row]; - colorindex_ci = cquantize->colorindex[ci]; - dither = cquantize->odither[ci][row_index]; - col_index = 0; - - for (col = width; col > 0; col--) { - /* Form pixel value + dither, range-limit to 0..MAXJSAMPLE, - * select output value, accumulate into output code for this pixel. - * Range-limiting need not be done explicitly, as we have extended - * the colorindex table to produce the right answers for out-of-range - * inputs. The maximum dither is +- MAXJSAMPLE; this sets the - * required amount of padding. - */ - *output_ptr += colorindex_ci[GETJSAMPLE(*input_ptr)+dither[col_index]]; - input_ptr += nc; - output_ptr++; - col_index = (col_index + 1) & ODITHER_MASK; - } - } - /* Advance row index for next row */ - row_index = (row_index + 1) & ODITHER_MASK; - cquantize->row_index = row_index; - } -} - - -METHODDEF(void) -quantize3_ord_dither (j_decompress_ptr cinfo, JSAMPARRAY input_buf, - JSAMPARRAY output_buf, int num_rows) -/* Fast path for out_color_components==3, with ordered dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - register int pixcode; - register JSAMPROW input_ptr; - register JSAMPROW output_ptr; - JSAMPROW colorindex0 = cquantize->colorindex[0]; - JSAMPROW colorindex1 = cquantize->colorindex[1]; - JSAMPROW colorindex2 = cquantize->colorindex[2]; - int * dither0; /* points to active row of dither matrix */ - int * dither1; - int * dither2; - int row_index, col_index; /* current indexes into dither matrix */ - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - - for (row = 0; row < num_rows; row++) { - row_index = cquantize->row_index; - input_ptr = input_buf[row]; - output_ptr = output_buf[row]; - dither0 = cquantize->odither[0][row_index]; - dither1 = cquantize->odither[1][row_index]; - dither2 = cquantize->odither[2][row_index]; - col_index = 0; - - for (col = width; col > 0; col--) { - pixcode = GETJSAMPLE(colorindex0[GETJSAMPLE(*input_ptr++) + - dither0[col_index]]); - pixcode += GETJSAMPLE(colorindex1[GETJSAMPLE(*input_ptr++) + - dither1[col_index]]); - pixcode += GETJSAMPLE(colorindex2[GETJSAMPLE(*input_ptr++) + - dither2[col_index]]); - *output_ptr++ = (JSAMPLE) pixcode; - col_index = (col_index + 1) & ODITHER_MASK; - } - row_index = (row_index + 1) & ODITHER_MASK; - cquantize->row_index = row_index; - } -} - - -METHODDEF(void) -quantize_fs_dither (j_decompress_ptr cinfo, JSAMPARRAY input_buf, - JSAMPARRAY output_buf, int num_rows) -/* General case, with Floyd-Steinberg dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - register LOCFSERROR cur; /* current error or pixel value */ - LOCFSERROR belowerr; /* error for pixel below cur */ - LOCFSERROR bpreverr; /* error for below/prev col */ - LOCFSERROR bnexterr; /* error for below/next col */ - LOCFSERROR delta; - register FSERRPTR errorptr; /* => fserrors[] at column before current */ - register JSAMPROW input_ptr; - register JSAMPROW output_ptr; - JSAMPROW colorindex_ci; - JSAMPROW colormap_ci; - int pixcode; - int nc = cinfo->out_color_components; - int dir; /* 1 for left-to-right, -1 for right-to-left */ - int dirnc; /* dir * nc */ - int ci; - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - JSAMPLE *range_limit = cinfo->sample_range_limit; - SHIFT_TEMPS - - for (row = 0; row < num_rows; row++) { - /* Initialize output values to 0 so can process components separately */ - jzero_far((void FAR *) output_buf[row], - (size_t) (width * SIZEOF(JSAMPLE))); - for (ci = 0; ci < nc; ci++) { - input_ptr = input_buf[row] + ci; - output_ptr = output_buf[row]; - if (cquantize->on_odd_row) { - /* work right to left in this row */ - input_ptr += (width-1) * nc; /* so point to rightmost pixel */ - output_ptr += width-1; - dir = -1; - dirnc = -nc; - errorptr = cquantize->fserrors[ci] + (width+1); /* => entry after last column */ - } else { - /* work left to right in this row */ - dir = 1; - dirnc = nc; - errorptr = cquantize->fserrors[ci]; /* => entry before first column */ - } - colorindex_ci = cquantize->colorindex[ci]; - colormap_ci = cquantize->sv_colormap[ci]; - /* Preset error values: no error propagated to first pixel from left */ - cur = 0; - /* and no error propagated to row below yet */ - belowerr = bpreverr = 0; - - for (col = width; col > 0; col--) { - /* cur holds the error propagated from the previous pixel on the - * current line. Add the error propagated from the previous line - * to form the complete error correction term for this pixel, and - * round the error term (which is expressed * 16) to an integer. - * RIGHT_SHIFT rounds towards minus infinity, so adding 8 is correct - * for either sign of the error value. - * Note: errorptr points to *previous* column's array entry. - */ - cur = RIGHT_SHIFT(cur + errorptr[dir] + 8, 4); - /* Form pixel value + error, and range-limit to 0..MAXJSAMPLE. - * The maximum error is +- MAXJSAMPLE; this sets the required size - * of the range_limit array. - */ - cur += GETJSAMPLE(*input_ptr); - cur = GETJSAMPLE(range_limit[cur]); - /* Select output value, accumulate into output code for this pixel */ - pixcode = GETJSAMPLE(colorindex_ci[cur]); - *output_ptr += (JSAMPLE) pixcode; - /* Compute actual representation error at this pixel */ - /* Note: we can do this even though we don't have the final */ - /* pixel code, because the colormap is orthogonal. */ - cur -= GETJSAMPLE(colormap_ci[pixcode]); - /* Compute error fractions to be propagated to adjacent pixels. - * Add these into the running sums, and simultaneously shift the - * next-line error sums left by 1 column. - */ - bnexterr = cur; - delta = cur * 2; - cur += delta; /* form error * 3 */ - errorptr[0] = (FSERROR) (bpreverr + cur); - cur += delta; /* form error * 5 */ - bpreverr = belowerr + cur; - belowerr = bnexterr; - cur += delta; /* form error * 7 */ - /* At this point cur contains the 7/16 error value to be propagated - * to the next pixel on the current line, and all the errors for the - * next line have been shifted over. We are therefore ready to move on. - */ - input_ptr += dirnc; /* advance input ptr to next column */ - output_ptr += dir; /* advance output ptr to next column */ - errorptr += dir; /* advance errorptr to current column */ - } - /* Post-loop cleanup: we must unload the final error value into the - * final fserrors[] entry. Note we need not unload belowerr because - * it is for the dummy column before or after the actual array. - */ - errorptr[0] = (FSERROR) bpreverr; /* unload prev err into array */ - } - cquantize->on_odd_row = (cquantize->on_odd_row ? FALSE : TRUE); - } -} - - -/* - * Allocate workspace for Floyd-Steinberg errors. - */ - -LOCAL(void) -alloc_fs_workspace (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - size_t arraysize; - int i; - - arraysize = (size_t) ((cinfo->output_width + 2) * SIZEOF(FSERROR)); - for (i = 0; i < cinfo->out_color_components; i++) { - cquantize->fserrors[i] = (FSERRPTR) - (*cinfo->mem->alloc_large)((j_common_ptr) cinfo, JPOOL_IMAGE, arraysize); - } -} - - -/* - * Initialize for one-pass color quantization. - */ - -METHODDEF(void) -start_pass_1_quant (j_decompress_ptr cinfo, boolean is_pre_scan) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - size_t arraysize; - int i; - - /* Install my colormap. */ - cinfo->colormap = cquantize->sv_colormap; - cinfo->actual_number_of_colors = cquantize->sv_actual; - - /* Initialize for desired dithering mode. */ - switch (cinfo->dither_mode) { - case JDITHER_NONE: - if (cinfo->out_color_components == 3) - cquantize->pub.color_quantize = color_quantize3; - else - cquantize->pub.color_quantize = color_quantize; - break; - case JDITHER_ORDERED: - if (cinfo->out_color_components == 3) - cquantize->pub.color_quantize = quantize3_ord_dither; - else - cquantize->pub.color_quantize = quantize_ord_dither; - cquantize->row_index = 0; /* initialize state for ordered dither */ - /* If user changed to ordered dither from another mode, - * we must recreate the color index table with padding. - * This will cost extra space, but probably isn't very likely. - */ - if (! cquantize->is_padded) - create_colorindex(cinfo); - /* Create ordered-dither tables if we didn't already. */ - if (cquantize->odither[0] == NULL) - create_odither_tables(cinfo); - break; - case JDITHER_FS: - cquantize->pub.color_quantize = quantize_fs_dither; - cquantize->on_odd_row = FALSE; /* initialize state for F-S dither */ - /* Allocate Floyd-Steinberg workspace if didn't already. */ - if (cquantize->fserrors[0] == NULL) - alloc_fs_workspace(cinfo); - /* Initialize the propagated errors to zero. */ - arraysize = (size_t) ((cinfo->output_width + 2) * SIZEOF(FSERROR)); - for (i = 0; i < cinfo->out_color_components; i++) - jzero_far((void FAR *) cquantize->fserrors[i], arraysize); - break; - default: - ERREXIT(cinfo, JERR_NOT_COMPILED); - break; - } -} - - -/* - * Finish up at the end of the pass. - */ - -METHODDEF(void) -finish_pass_1_quant (j_decompress_ptr cinfo) -{ - /* no work in 1-pass case */ -} - - -/* - * Switch to a new external colormap between output passes. - * Shouldn't get to this module! - */ - -METHODDEF(void) -new_color_map_1_quant (j_decompress_ptr cinfo) -{ - ERREXIT(cinfo, JERR_MODE_CHANGE); -} - - -/* - * Module initialization routine for 1-pass color quantization. - */ - -GLOBAL(void) -jinit_1pass_quantizer (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize; - - cquantize = (my_cquantize_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_cquantizer)); - cinfo->cquantize = (struct jpeg_color_quantizer *) cquantize; - cquantize->pub.start_pass = start_pass_1_quant; - cquantize->pub.finish_pass = finish_pass_1_quant; - cquantize->pub.new_color_map = new_color_map_1_quant; - cquantize->fserrors[0] = NULL; /* Flag FS workspace not allocated */ - cquantize->odither[0] = NULL; /* Also flag odither arrays not allocated */ - - /* Make sure my internal arrays won't overflow */ - if (cinfo->out_color_components > MAX_Q_COMPS) - ERREXIT1(cinfo, JERR_QUANT_COMPONENTS, MAX_Q_COMPS); - /* Make sure colormap indexes can be represented by JSAMPLEs */ - if (cinfo->desired_number_of_colors > (MAXJSAMPLE+1)) - ERREXIT1(cinfo, JERR_QUANT_MANY_COLORS, MAXJSAMPLE+1); - - /* Create the colormap and color index table. */ - create_colormap(cinfo); - create_colorindex(cinfo); - - /* Allocate Floyd-Steinberg workspace now if requested. - * We do this now since it is FAR storage and may affect the memory - * manager's space calculations. If the user changes to FS dither - * mode in a later pass, we will allocate the space then, and will - * possibly overrun the max_memory_to_use setting. - */ - if (cinfo->dither_mode == JDITHER_FS) - alloc_fs_workspace(cinfo); -} - -#endif /* QUANT_1PASS_SUPPORTED */ diff --git a/src/jpeg/jquant2.c b/src/jpeg/jquant2.c deleted file mode 100644 index af601e334b..0000000000 --- a/src/jpeg/jquant2.c +++ /dev/null @@ -1,1310 +0,0 @@ -/* - * jquant2.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains 2-pass color quantization (color mapping) routines. - * These routines provide selection of a custom color map for an image, - * followed by mapping of the image to that color map, with optional - * Floyd-Steinberg dithering. - * It is also possible to use just the second pass to map to an arbitrary - * externally-given color map. - * - * Note: ordered dithering is not supported, since there isn't any fast - * way to compute intercolor distances; it's unclear that ordered dither's - * fundamental assumptions even hold with an irregularly spaced color map. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - -#ifdef QUANT_2PASS_SUPPORTED - - -/* - * This module implements the well-known Heckbert paradigm for color - * quantization. Most of the ideas used here can be traced back to - * Heckbert's seminal paper - * Heckbert, Paul. "Color Image Quantization for Frame Buffer Display", - * Proc. SIGGRAPH '82, Computer Graphics v.16 #3 (July 1982), pp 297-304. - * - * In the first pass over the image, we accumulate a histogram showing the - * usage count of each possible color. To keep the histogram to a reasonable - * size, we reduce the precision of the input; typical practice is to retain - * 5 or 6 bits per color, so that 8 or 4 different input values are counted - * in the same histogram cell. - * - * Next, the color-selection step begins with a box representing the whole - * color space, and repeatedly splits the "largest" remaining box until we - * have as many boxes as desired colors. Then the mean color in each - * remaining box becomes one of the possible output colors. - * - * The second pass over the image maps each input pixel to the closest output - * color (optionally after applying a Floyd-Steinberg dithering correction). - * This mapping is logically trivial, but making it go fast enough requires - * considerable care. - * - * Heckbert-style quantizers vary a good deal in their policies for choosing - * the "largest" box and deciding where to cut it. The particular policies - * used here have proved out well in experimental comparisons, but better ones - * may yet be found. - * - * In earlier versions of the IJG code, this module quantized in YCbCr color - * space, processing the raw upsampled data without a color conversion step. - * This allowed the color conversion math to be done only once per colormap - * entry, not once per pixel. However, that optimization precluded other - * useful optimizations (such as merging color conversion with upsampling) - * and it also interfered with desired capabilities such as quantizing to an - * externally-supplied colormap. We have therefore abandoned that approach. - * The present code works in the post-conversion color space, typically RGB. - * - * To improve the visual quality of the results, we actually work in scaled - * RGB space, giving G distances more weight than R, and R in turn more than - * B. To do everything in integer math, we must use integer scale factors. - * The 2/3/1 scale factors used here correspond loosely to the relative - * weights of the colors in the NTSC grayscale equation. - * If you want to use this code to quantize a non-RGB color space, you'll - * probably need to change these scale factors. - */ - -#define R_SCALE 2 /* scale R distances by this much */ -#define G_SCALE 3 /* scale G distances by this much */ -#define B_SCALE 1 /* and B by this much */ - -/* Relabel R/G/B as components 0/1/2, respecting the RGB ordering defined - * in jmorecfg.h. As the code stands, it will do the right thing for R,G,B - * and B,G,R orders. If you define some other weird order in jmorecfg.h, - * you'll get compile errors until you extend this logic. In that case - * you'll probably want to tweak the histogram sizes too. - */ - -#if RGB_RED == 0 -#define C0_SCALE R_SCALE -#endif -#if RGB_BLUE == 0 -#define C0_SCALE B_SCALE -#endif -#if RGB_GREEN == 1 -#define C1_SCALE G_SCALE -#endif -#if RGB_RED == 2 -#define C2_SCALE R_SCALE -#endif -#if RGB_BLUE == 2 -#define C2_SCALE B_SCALE -#endif - - -/* - * First we have the histogram data structure and routines for creating it. - * - * The number of bits of precision can be adjusted by changing these symbols. - * We recommend keeping 6 bits for G and 5 each for R and B. - * If you have plenty of memory and cycles, 6 bits all around gives marginally - * better results; if you are short of memory, 5 bits all around will save - * some space but degrade the results. - * To maintain a fully accurate histogram, we'd need to allocate a "long" - * (preferably unsigned long) for each cell. In practice this is overkill; - * we can get by with 16 bits per cell. Few of the cell counts will overflow, - * and clamping those that do overflow to the maximum value will give close- - * enough results. This reduces the recommended histogram size from 256Kb - * to 128Kb, which is a useful savings on PC-class machines. - * (In the second pass the histogram space is re-used for pixel mapping data; - * in that capacity, each cell must be able to store zero to the number of - * desired colors. 16 bits/cell is plenty for that too.) - * Since the JPEG code is intended to run in small memory model on 80x86 - * machines, we can't just allocate the histogram in one chunk. Instead - * of a true 3-D array, we use a row of pointers to 2-D arrays. Each - * pointer corresponds to a C0 value (typically 2^5 = 32 pointers) and - * each 2-D array has 2^6*2^5 = 2048 or 2^6*2^6 = 4096 entries. Note that - * on 80x86 machines, the pointer row is in near memory but the actual - * arrays are in far memory (same arrangement as we use for image arrays). - */ - -#define MAXNUMCOLORS (MAXJSAMPLE+1) /* maximum size of colormap */ - -/* These will do the right thing for either R,G,B or B,G,R color order, - * but you may not like the results for other color orders. - */ -#define HIST_C0_BITS 5 /* bits of precision in R/B histogram */ -#define HIST_C1_BITS 6 /* bits of precision in G histogram */ -#define HIST_C2_BITS 5 /* bits of precision in B/R histogram */ - -/* Number of elements along histogram axes. */ -#define HIST_C0_ELEMS (1<cquantize; - register JSAMPROW ptr; - register histptr histp; - register hist3d histogram = cquantize->histogram; - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - - for (row = 0; row < num_rows; row++) { - ptr = input_buf[row]; - for (col = width; col > 0; col--) { - /* get pixel value and index into the histogram */ - histp = & histogram[GETJSAMPLE(ptr[0]) >> C0_SHIFT] - [GETJSAMPLE(ptr[1]) >> C1_SHIFT] - [GETJSAMPLE(ptr[2]) >> C2_SHIFT]; - /* increment, check for overflow and undo increment if so. */ - if (++(*histp) <= 0) - (*histp)--; - ptr += 3; - } - } -} - - -/* - * Next we have the really interesting routines: selection of a colormap - * given the completed histogram. - * These routines work with a list of "boxes", each representing a rectangular - * subset of the input color space (to histogram precision). - */ - -typedef struct { - /* The bounds of the box (inclusive); expressed as histogram indexes */ - int c0min, c0max; - int c1min, c1max; - int c2min, c2max; - /* The volume (actually 2-norm) of the box */ - INT32 volume; - /* The number of nonzero histogram cells within this box */ - long colorcount; -} box; - -typedef box * boxptr; - - -LOCAL(boxptr) -find_biggest_color_pop (boxptr boxlist, int numboxes) -/* Find the splittable box with the largest color population */ -/* Returns NULL if no splittable boxes remain */ -{ - register boxptr boxp; - register int i; - register long maxc = 0; - boxptr which = NULL; - - for (i = 0, boxp = boxlist; i < numboxes; i++, boxp++) { - if (boxp->colorcount > maxc && boxp->volume > 0) { - which = boxp; - maxc = boxp->colorcount; - } - } - return which; -} - - -LOCAL(boxptr) -find_biggest_volume (boxptr boxlist, int numboxes) -/* Find the splittable box with the largest (scaled) volume */ -/* Returns NULL if no splittable boxes remain */ -{ - register boxptr boxp; - register int i; - register INT32 maxv = 0; - boxptr which = NULL; - - for (i = 0, boxp = boxlist; i < numboxes; i++, boxp++) { - if (boxp->volume > maxv) { - which = boxp; - maxv = boxp->volume; - } - } - return which; -} - - -LOCAL(void) -update_box (j_decompress_ptr cinfo, boxptr boxp) -/* Shrink the min/max bounds of a box to enclose only nonzero elements, */ -/* and recompute its volume and population */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - hist3d histogram = cquantize->histogram; - histptr histp; - int c0,c1,c2; - int c0min,c0max,c1min,c1max,c2min,c2max; - INT32 dist0,dist1,dist2; - long ccount; - - c0min = boxp->c0min; c0max = boxp->c0max; - c1min = boxp->c1min; c1max = boxp->c1max; - c2min = boxp->c2min; c2max = boxp->c2max; - - if (c0max > c0min) - for (c0 = c0min; c0 <= c0max; c0++) - for (c1 = c1min; c1 <= c1max; c1++) { - histp = & histogram[c0][c1][c2min]; - for (c2 = c2min; c2 <= c2max; c2++) - if (*histp++ != 0) { - boxp->c0min = c0min = c0; - goto have_c0min; - } - } - have_c0min: - if (c0max > c0min) - for (c0 = c0max; c0 >= c0min; c0--) - for (c1 = c1min; c1 <= c1max; c1++) { - histp = & histogram[c0][c1][c2min]; - for (c2 = c2min; c2 <= c2max; c2++) - if (*histp++ != 0) { - boxp->c0max = c0max = c0; - goto have_c0max; - } - } - have_c0max: - if (c1max > c1min) - for (c1 = c1min; c1 <= c1max; c1++) - for (c0 = c0min; c0 <= c0max; c0++) { - histp = & histogram[c0][c1][c2min]; - for (c2 = c2min; c2 <= c2max; c2++) - if (*histp++ != 0) { - boxp->c1min = c1min = c1; - goto have_c1min; - } - } - have_c1min: - if (c1max > c1min) - for (c1 = c1max; c1 >= c1min; c1--) - for (c0 = c0min; c0 <= c0max; c0++) { - histp = & histogram[c0][c1][c2min]; - for (c2 = c2min; c2 <= c2max; c2++) - if (*histp++ != 0) { - boxp->c1max = c1max = c1; - goto have_c1max; - } - } - have_c1max: - if (c2max > c2min) - for (c2 = c2min; c2 <= c2max; c2++) - for (c0 = c0min; c0 <= c0max; c0++) { - histp = & histogram[c0][c1min][c2]; - for (c1 = c1min; c1 <= c1max; c1++, histp += HIST_C2_ELEMS) - if (*histp != 0) { - boxp->c2min = c2min = c2; - goto have_c2min; - } - } - have_c2min: - if (c2max > c2min) - for (c2 = c2max; c2 >= c2min; c2--) - for (c0 = c0min; c0 <= c0max; c0++) { - histp = & histogram[c0][c1min][c2]; - for (c1 = c1min; c1 <= c1max; c1++, histp += HIST_C2_ELEMS) - if (*histp != 0) { - boxp->c2max = c2max = c2; - goto have_c2max; - } - } - have_c2max: - - /* Update box volume. - * We use 2-norm rather than real volume here; this biases the method - * against making long narrow boxes, and it has the side benefit that - * a box is splittable iff norm > 0. - * Since the differences are expressed in histogram-cell units, - * we have to shift back to JSAMPLE units to get consistent distances; - * after which, we scale according to the selected distance scale factors. - */ - dist0 = ((c0max - c0min) << C0_SHIFT) * C0_SCALE; - dist1 = ((c1max - c1min) << C1_SHIFT) * C1_SCALE; - dist2 = ((c2max - c2min) << C2_SHIFT) * C2_SCALE; - boxp->volume = dist0*dist0 + dist1*dist1 + dist2*dist2; - - /* Now scan remaining volume of box and compute population */ - ccount = 0; - for (c0 = c0min; c0 <= c0max; c0++) - for (c1 = c1min; c1 <= c1max; c1++) { - histp = & histogram[c0][c1][c2min]; - for (c2 = c2min; c2 <= c2max; c2++, histp++) - if (*histp != 0) { - ccount++; - } - } - boxp->colorcount = ccount; -} - - -LOCAL(int) -median_cut (j_decompress_ptr cinfo, boxptr boxlist, int numboxes, - int desired_colors) -/* Repeatedly select and split the largest box until we have enough boxes */ -{ - int n,lb; - int c0,c1,c2,cmax; - register boxptr b1,b2; - - while (numboxes < desired_colors) { - /* Select box to split. - * Current algorithm: by population for first half, then by volume. - */ - if (numboxes*2 <= desired_colors) { - b1 = find_biggest_color_pop(boxlist, numboxes); - } else { - b1 = find_biggest_volume(boxlist, numboxes); - } - if (b1 == NULL) /* no splittable boxes left! */ - break; - b2 = &boxlist[numboxes]; /* where new box will go */ - /* Copy the color bounds to the new box. */ - b2->c0max = b1->c0max; b2->c1max = b1->c1max; b2->c2max = b1->c2max; - b2->c0min = b1->c0min; b2->c1min = b1->c1min; b2->c2min = b1->c2min; - /* Choose which axis to split the box on. - * Current algorithm: longest scaled axis. - * See notes in update_box about scaling distances. - */ - c0 = ((b1->c0max - b1->c0min) << C0_SHIFT) * C0_SCALE; - c1 = ((b1->c1max - b1->c1min) << C1_SHIFT) * C1_SCALE; - c2 = ((b1->c2max - b1->c2min) << C2_SHIFT) * C2_SCALE; - /* We want to break any ties in favor of green, then red, blue last. - * This code does the right thing for R,G,B or B,G,R color orders only. - */ -#if RGB_RED == 0 - cmax = c1; n = 1; - if (c0 > cmax) { cmax = c0; n = 0; } - if (c2 > cmax) { n = 2; } -#else - cmax = c1; n = 1; - if (c2 > cmax) { cmax = c2; n = 2; } - if (c0 > cmax) { n = 0; } -#endif - /* Choose split point along selected axis, and update box bounds. - * Current algorithm: split at halfway point. - * (Since the box has been shrunk to minimum volume, - * any split will produce two nonempty subboxes.) - * Note that lb value is max for lower box, so must be < old max. - */ - switch (n) { - case 0: - lb = (b1->c0max + b1->c0min) / 2; - b1->c0max = lb; - b2->c0min = lb+1; - break; - case 1: - lb = (b1->c1max + b1->c1min) / 2; - b1->c1max = lb; - b2->c1min = lb+1; - break; - case 2: - lb = (b1->c2max + b1->c2min) / 2; - b1->c2max = lb; - b2->c2min = lb+1; - break; - } - /* Update stats for boxes */ - update_box(cinfo, b1); - update_box(cinfo, b2); - numboxes++; - } - return numboxes; -} - - -LOCAL(void) -compute_color (j_decompress_ptr cinfo, boxptr boxp, int icolor) -/* Compute representative color for a box, put it in colormap[icolor] */ -{ - /* Current algorithm: mean weighted by pixels (not colors) */ - /* Note it is important to get the rounding correct! */ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - hist3d histogram = cquantize->histogram; - histptr histp; - int c0,c1,c2; - int c0min,c0max,c1min,c1max,c2min,c2max; - long count; - long total = 0; - long c0total = 0; - long c1total = 0; - long c2total = 0; - - c0min = boxp->c0min; c0max = boxp->c0max; - c1min = boxp->c1min; c1max = boxp->c1max; - c2min = boxp->c2min; c2max = boxp->c2max; - - for (c0 = c0min; c0 <= c0max; c0++) - for (c1 = c1min; c1 <= c1max; c1++) { - histp = & histogram[c0][c1][c2min]; - for (c2 = c2min; c2 <= c2max; c2++) { - if ((count = *histp++) != 0) { - total += count; - c0total += ((c0 << C0_SHIFT) + ((1<>1)) * count; - c1total += ((c1 << C1_SHIFT) + ((1<>1)) * count; - c2total += ((c2 << C2_SHIFT) + ((1<>1)) * count; - } - } - } - - cinfo->colormap[0][icolor] = (JSAMPLE) ((c0total + (total>>1)) / total); - cinfo->colormap[1][icolor] = (JSAMPLE) ((c1total + (total>>1)) / total); - cinfo->colormap[2][icolor] = (JSAMPLE) ((c2total + (total>>1)) / total); -} - - -LOCAL(void) -select_colors (j_decompress_ptr cinfo, int desired_colors) -/* Master routine for color selection */ -{ - boxptr boxlist; - int numboxes; - int i; - - /* Allocate workspace for box list */ - boxlist = (boxptr) (*cinfo->mem->alloc_small) - ((j_common_ptr) cinfo, JPOOL_IMAGE, desired_colors * SIZEOF(box)); - /* Initialize one box containing whole space */ - numboxes = 1; - boxlist[0].c0min = 0; - boxlist[0].c0max = MAXJSAMPLE >> C0_SHIFT; - boxlist[0].c1min = 0; - boxlist[0].c1max = MAXJSAMPLE >> C1_SHIFT; - boxlist[0].c2min = 0; - boxlist[0].c2max = MAXJSAMPLE >> C2_SHIFT; - /* Shrink it to actually-used volume and set its statistics */ - update_box(cinfo, & boxlist[0]); - /* Perform median-cut to produce final box list */ - numboxes = median_cut(cinfo, boxlist, numboxes, desired_colors); - /* Compute the representative color for each box, fill colormap */ - for (i = 0; i < numboxes; i++) - compute_color(cinfo, & boxlist[i], i); - cinfo->actual_number_of_colors = numboxes; - TRACEMS1(cinfo, 1, JTRC_QUANT_SELECTED, numboxes); -} - - -/* - * These routines are concerned with the time-critical task of mapping input - * colors to the nearest color in the selected colormap. - * - * We re-use the histogram space as an "inverse color map", essentially a - * cache for the results of nearest-color searches. All colors within a - * histogram cell will be mapped to the same colormap entry, namely the one - * closest to the cell's center. This may not be quite the closest entry to - * the actual input color, but it's almost as good. A zero in the cache - * indicates we haven't found the nearest color for that cell yet; the array - * is cleared to zeroes before starting the mapping pass. When we find the - * nearest color for a cell, its colormap index plus one is recorded in the - * cache for future use. The pass2 scanning routines call fill_inverse_cmap - * when they need to use an unfilled entry in the cache. - * - * Our method of efficiently finding nearest colors is based on the "locally - * sorted search" idea described by Heckbert and on the incremental distance - * calculation described by Spencer W. Thomas in chapter III.1 of Graphics - * Gems II (James Arvo, ed. Academic Press, 1991). Thomas points out that - * the distances from a given colormap entry to each cell of the histogram can - * be computed quickly using an incremental method: the differences between - * distances to adjacent cells themselves differ by a constant. This allows a - * fairly fast implementation of the "brute force" approach of computing the - * distance from every colormap entry to every histogram cell. Unfortunately, - * it needs a work array to hold the best-distance-so-far for each histogram - * cell (because the inner loop has to be over cells, not colormap entries). - * The work array elements have to be INT32s, so the work array would need - * 256Kb at our recommended precision. This is not feasible in DOS machines. - * - * To get around these problems, we apply Thomas' method to compute the - * nearest colors for only the cells within a small subbox of the histogram. - * The work array need be only as big as the subbox, so the memory usage - * problem is solved. Furthermore, we need not fill subboxes that are never - * referenced in pass2; many images use only part of the color gamut, so a - * fair amount of work is saved. An additional advantage of this - * approach is that we can apply Heckbert's locality criterion to quickly - * eliminate colormap entries that are far away from the subbox; typically - * three-fourths of the colormap entries are rejected by Heckbert's criterion, - * and we need not compute their distances to individual cells in the subbox. - * The speed of this approach is heavily influenced by the subbox size: too - * small means too much overhead, too big loses because Heckbert's criterion - * can't eliminate as many colormap entries. Empirically the best subbox - * size seems to be about 1/512th of the histogram (1/8th in each direction). - * - * Thomas' article also describes a refined method which is asymptotically - * faster than the brute-force method, but it is also far more complex and - * cannot efficiently be applied to small subboxes. It is therefore not - * useful for programs intended to be portable to DOS machines. On machines - * with plenty of memory, filling the whole histogram in one shot with Thomas' - * refined method might be faster than the present code --- but then again, - * it might not be any faster, and it's certainly more complicated. - */ - - -/* log2(histogram cells in update box) for each axis; this can be adjusted */ -#define BOX_C0_LOG (HIST_C0_BITS-3) -#define BOX_C1_LOG (HIST_C1_BITS-3) -#define BOX_C2_LOG (HIST_C2_BITS-3) - -#define BOX_C0_ELEMS (1<actual_number_of_colors; - int maxc0, maxc1, maxc2; - int centerc0, centerc1, centerc2; - int i, x, ncolors; - INT32 minmaxdist, min_dist, max_dist, tdist; - INT32 mindist[MAXNUMCOLORS]; /* min distance to colormap entry i */ - - /* Compute true coordinates of update box's upper corner and center. - * Actually we compute the coordinates of the center of the upper-corner - * histogram cell, which are the upper bounds of the volume we care about. - * Note that since ">>" rounds down, the "center" values may be closer to - * min than to max; hence comparisons to them must be "<=", not "<". - */ - maxc0 = minc0 + ((1 << BOX_C0_SHIFT) - (1 << C0_SHIFT)); - centerc0 = (minc0 + maxc0) >> 1; - maxc1 = minc1 + ((1 << BOX_C1_SHIFT) - (1 << C1_SHIFT)); - centerc1 = (minc1 + maxc1) >> 1; - maxc2 = minc2 + ((1 << BOX_C2_SHIFT) - (1 << C2_SHIFT)); - centerc2 = (minc2 + maxc2) >> 1; - - /* For each color in colormap, find: - * 1. its minimum squared-distance to any point in the update box - * (zero if color is within update box); - * 2. its maximum squared-distance to any point in the update box. - * Both of these can be found by considering only the corners of the box. - * We save the minimum distance for each color in mindist[]; - * only the smallest maximum distance is of interest. - */ - minmaxdist = 0x7FFFFFFFL; - - for (i = 0; i < numcolors; i++) { - /* We compute the squared-c0-distance term, then add in the other two. */ - x = GETJSAMPLE(cinfo->colormap[0][i]); - if (x < minc0) { - tdist = (x - minc0) * C0_SCALE; - min_dist = tdist*tdist; - tdist = (x - maxc0) * C0_SCALE; - max_dist = tdist*tdist; - } else if (x > maxc0) { - tdist = (x - maxc0) * C0_SCALE; - min_dist = tdist*tdist; - tdist = (x - minc0) * C0_SCALE; - max_dist = tdist*tdist; - } else { - /* within cell range so no contribution to min_dist */ - min_dist = 0; - if (x <= centerc0) { - tdist = (x - maxc0) * C0_SCALE; - max_dist = tdist*tdist; - } else { - tdist = (x - minc0) * C0_SCALE; - max_dist = tdist*tdist; - } - } - - x = GETJSAMPLE(cinfo->colormap[1][i]); - if (x < minc1) { - tdist = (x - minc1) * C1_SCALE; - min_dist += tdist*tdist; - tdist = (x - maxc1) * C1_SCALE; - max_dist += tdist*tdist; - } else if (x > maxc1) { - tdist = (x - maxc1) * C1_SCALE; - min_dist += tdist*tdist; - tdist = (x - minc1) * C1_SCALE; - max_dist += tdist*tdist; - } else { - /* within cell range so no contribution to min_dist */ - if (x <= centerc1) { - tdist = (x - maxc1) * C1_SCALE; - max_dist += tdist*tdist; - } else { - tdist = (x - minc1) * C1_SCALE; - max_dist += tdist*tdist; - } - } - - x = GETJSAMPLE(cinfo->colormap[2][i]); - if (x < minc2) { - tdist = (x - minc2) * C2_SCALE; - min_dist += tdist*tdist; - tdist = (x - maxc2) * C2_SCALE; - max_dist += tdist*tdist; - } else if (x > maxc2) { - tdist = (x - maxc2) * C2_SCALE; - min_dist += tdist*tdist; - tdist = (x - minc2) * C2_SCALE; - max_dist += tdist*tdist; - } else { - /* within cell range so no contribution to min_dist */ - if (x <= centerc2) { - tdist = (x - maxc2) * C2_SCALE; - max_dist += tdist*tdist; - } else { - tdist = (x - minc2) * C2_SCALE; - max_dist += tdist*tdist; - } - } - - mindist[i] = min_dist; /* save away the results */ - if (max_dist < minmaxdist) - minmaxdist = max_dist; - } - - /* Now we know that no cell in the update box is more than minmaxdist - * away from some colormap entry. Therefore, only colors that are - * within minmaxdist of some part of the box need be considered. - */ - ncolors = 0; - for (i = 0; i < numcolors; i++) { - if (mindist[i] <= minmaxdist) - colorlist[ncolors++] = (JSAMPLE) i; - } - return ncolors; -} - - -LOCAL(void) -find_best_colors (j_decompress_ptr cinfo, int minc0, int minc1, int minc2, - int numcolors, JSAMPLE colorlist[], JSAMPLE bestcolor[]) -/* Find the closest colormap entry for each cell in the update box, - * given the list of candidate colors prepared by find_nearby_colors. - * Return the indexes of the closest entries in the bestcolor[] array. - * This routine uses Thomas' incremental distance calculation method to - * find the distance from a colormap entry to successive cells in the box. - */ -{ - int ic0, ic1, ic2; - int i, icolor; - register INT32 * bptr; /* pointer into bestdist[] array */ - JSAMPLE * cptr; /* pointer into bestcolor[] array */ - INT32 dist0, dist1; /* initial distance values */ - register INT32 dist2; /* current distance in inner loop */ - INT32 xx0, xx1; /* distance increments */ - register INT32 xx2; - INT32 inc0, inc1, inc2; /* initial values for increments */ - /* This array holds the distance to the nearest-so-far color for each cell */ - INT32 bestdist[BOX_C0_ELEMS * BOX_C1_ELEMS * BOX_C2_ELEMS]; - - /* Initialize best-distance for each cell of the update box */ - bptr = bestdist; - for (i = BOX_C0_ELEMS*BOX_C1_ELEMS*BOX_C2_ELEMS-1; i >= 0; i--) - *bptr++ = 0x7FFFFFFFL; - - /* For each color selected by find_nearby_colors, - * compute its distance to the center of each cell in the box. - * If that's less than best-so-far, update best distance and color number. - */ - - /* Nominal steps between cell centers ("x" in Thomas article) */ -#define STEP_C0 ((1 << C0_SHIFT) * C0_SCALE) -#define STEP_C1 ((1 << C1_SHIFT) * C1_SCALE) -#define STEP_C2 ((1 << C2_SHIFT) * C2_SCALE) - - for (i = 0; i < numcolors; i++) { - icolor = GETJSAMPLE(colorlist[i]); - /* Compute (square of) distance from minc0/c1/c2 to this color */ - inc0 = (minc0 - GETJSAMPLE(cinfo->colormap[0][icolor])) * C0_SCALE; - dist0 = inc0*inc0; - inc1 = (minc1 - GETJSAMPLE(cinfo->colormap[1][icolor])) * C1_SCALE; - dist0 += inc1*inc1; - inc2 = (minc2 - GETJSAMPLE(cinfo->colormap[2][icolor])) * C2_SCALE; - dist0 += inc2*inc2; - /* Form the initial difference increments */ - inc0 = inc0 * (2 * STEP_C0) + STEP_C0 * STEP_C0; - inc1 = inc1 * (2 * STEP_C1) + STEP_C1 * STEP_C1; - inc2 = inc2 * (2 * STEP_C2) + STEP_C2 * STEP_C2; - /* Now loop over all cells in box, updating distance per Thomas method */ - bptr = bestdist; - cptr = bestcolor; - xx0 = inc0; - for (ic0 = BOX_C0_ELEMS-1; ic0 >= 0; ic0--) { - dist1 = dist0; - xx1 = inc1; - for (ic1 = BOX_C1_ELEMS-1; ic1 >= 0; ic1--) { - dist2 = dist1; - xx2 = inc2; - for (ic2 = BOX_C2_ELEMS-1; ic2 >= 0; ic2--) { - if (dist2 < *bptr) { - *bptr = dist2; - *cptr = (JSAMPLE) icolor; - } - dist2 += xx2; - xx2 += 2 * STEP_C2 * STEP_C2; - bptr++; - cptr++; - } - dist1 += xx1; - xx1 += 2 * STEP_C1 * STEP_C1; - } - dist0 += xx0; - xx0 += 2 * STEP_C0 * STEP_C0; - } - } -} - - -LOCAL(void) -fill_inverse_cmap (j_decompress_ptr cinfo, int c0, int c1, int c2) -/* Fill the inverse-colormap entries in the update box that contains */ -/* histogram cell c0/c1/c2. (Only that one cell MUST be filled, but */ -/* we can fill as many others as we wish.) */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - hist3d histogram = cquantize->histogram; - int minc0, minc1, minc2; /* lower left corner of update box */ - int ic0, ic1, ic2; - register JSAMPLE * cptr; /* pointer into bestcolor[] array */ - register histptr cachep; /* pointer into main cache array */ - /* This array lists the candidate colormap indexes. */ - JSAMPLE colorlist[MAXNUMCOLORS]; - int numcolors; /* number of candidate colors */ - /* This array holds the actually closest colormap index for each cell. */ - JSAMPLE bestcolor[BOX_C0_ELEMS * BOX_C1_ELEMS * BOX_C2_ELEMS]; - - /* Convert cell coordinates to update box ID */ - c0 >>= BOX_C0_LOG; - c1 >>= BOX_C1_LOG; - c2 >>= BOX_C2_LOG; - - /* Compute true coordinates of update box's origin corner. - * Actually we compute the coordinates of the center of the corner - * histogram cell, which are the lower bounds of the volume we care about. - */ - minc0 = (c0 << BOX_C0_SHIFT) + ((1 << C0_SHIFT) >> 1); - minc1 = (c1 << BOX_C1_SHIFT) + ((1 << C1_SHIFT) >> 1); - minc2 = (c2 << BOX_C2_SHIFT) + ((1 << C2_SHIFT) >> 1); - - /* Determine which colormap entries are close enough to be candidates - * for the nearest entry to some cell in the update box. - */ - numcolors = find_nearby_colors(cinfo, minc0, minc1, minc2, colorlist); - - /* Determine the actually nearest colors. */ - find_best_colors(cinfo, minc0, minc1, minc2, numcolors, colorlist, - bestcolor); - - /* Save the best color numbers (plus 1) in the main cache array */ - c0 <<= BOX_C0_LOG; /* convert ID back to base cell indexes */ - c1 <<= BOX_C1_LOG; - c2 <<= BOX_C2_LOG; - cptr = bestcolor; - for (ic0 = 0; ic0 < BOX_C0_ELEMS; ic0++) { - for (ic1 = 0; ic1 < BOX_C1_ELEMS; ic1++) { - cachep = & histogram[c0+ic0][c1+ic1][c2]; - for (ic2 = 0; ic2 < BOX_C2_ELEMS; ic2++) { - *cachep++ = (histcell) (GETJSAMPLE(*cptr++) + 1); - } - } - } -} - - -/* - * Map some rows of pixels to the output colormapped representation. - */ - -METHODDEF(void) -pass2_no_dither (j_decompress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPARRAY output_buf, int num_rows) -/* This version performs no dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - hist3d histogram = cquantize->histogram; - register JSAMPROW inptr, outptr; - register histptr cachep; - register int c0, c1, c2; - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - - for (row = 0; row < num_rows; row++) { - inptr = input_buf[row]; - outptr = output_buf[row]; - for (col = width; col > 0; col--) { - /* get pixel value and index into the cache */ - c0 = GETJSAMPLE(*inptr++) >> C0_SHIFT; - c1 = GETJSAMPLE(*inptr++) >> C1_SHIFT; - c2 = GETJSAMPLE(*inptr++) >> C2_SHIFT; - cachep = & histogram[c0][c1][c2]; - /* If we have not seen this color before, find nearest colormap entry */ - /* and update the cache */ - if (*cachep == 0) - fill_inverse_cmap(cinfo, c0,c1,c2); - /* Now emit the colormap index for this cell */ - *outptr++ = (JSAMPLE) (*cachep - 1); - } - } -} - - -METHODDEF(void) -pass2_fs_dither (j_decompress_ptr cinfo, - JSAMPARRAY input_buf, JSAMPARRAY output_buf, int num_rows) -/* This version performs Floyd-Steinberg dithering */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - hist3d histogram = cquantize->histogram; - register LOCFSERROR cur0, cur1, cur2; /* current error or pixel value */ - LOCFSERROR belowerr0, belowerr1, belowerr2; /* error for pixel below cur */ - LOCFSERROR bpreverr0, bpreverr1, bpreverr2; /* error for below/prev col */ - register FSERRPTR errorptr; /* => fserrors[] at column before current */ - JSAMPROW inptr; /* => current input pixel */ - JSAMPROW outptr; /* => current output pixel */ - histptr cachep; - int dir; /* +1 or -1 depending on direction */ - int dir3; /* 3*dir, for advancing inptr & errorptr */ - int row; - JDIMENSION col; - JDIMENSION width = cinfo->output_width; - JSAMPLE *range_limit = cinfo->sample_range_limit; - int *error_limit = cquantize->error_limiter; - JSAMPROW colormap0 = cinfo->colormap[0]; - JSAMPROW colormap1 = cinfo->colormap[1]; - JSAMPROW colormap2 = cinfo->colormap[2]; - SHIFT_TEMPS - - for (row = 0; row < num_rows; row++) { - inptr = input_buf[row]; - outptr = output_buf[row]; - if (cquantize->on_odd_row) { - /* work right to left in this row */ - inptr += (width-1) * 3; /* so point to rightmost pixel */ - outptr += width-1; - dir = -1; - dir3 = -3; - errorptr = cquantize->fserrors + (width+1)*3; /* => entry after last column */ - cquantize->on_odd_row = FALSE; /* flip for next time */ - } else { - /* work left to right in this row */ - dir = 1; - dir3 = 3; - errorptr = cquantize->fserrors; /* => entry before first real column */ - cquantize->on_odd_row = TRUE; /* flip for next time */ - } - /* Preset error values: no error propagated to first pixel from left */ - cur0 = cur1 = cur2 = 0; - /* and no error propagated to row below yet */ - belowerr0 = belowerr1 = belowerr2 = 0; - bpreverr0 = bpreverr1 = bpreverr2 = 0; - - for (col = width; col > 0; col--) { - /* curN holds the error propagated from the previous pixel on the - * current line. Add the error propagated from the previous line - * to form the complete error correction term for this pixel, and - * round the error term (which is expressed * 16) to an integer. - * RIGHT_SHIFT rounds towards minus infinity, so adding 8 is correct - * for either sign of the error value. - * Note: errorptr points to *previous* column's array entry. - */ - cur0 = RIGHT_SHIFT(cur0 + errorptr[dir3+0] + 8, 4); - cur1 = RIGHT_SHIFT(cur1 + errorptr[dir3+1] + 8, 4); - cur2 = RIGHT_SHIFT(cur2 + errorptr[dir3+2] + 8, 4); - /* Limit the error using transfer function set by init_error_limit. - * See comments with init_error_limit for rationale. - */ - cur0 = error_limit[cur0]; - cur1 = error_limit[cur1]; - cur2 = error_limit[cur2]; - /* Form pixel value + error, and range-limit to 0..MAXJSAMPLE. - * The maximum error is +- MAXJSAMPLE (or less with error limiting); - * this sets the required size of the range_limit array. - */ - cur0 += GETJSAMPLE(inptr[0]); - cur1 += GETJSAMPLE(inptr[1]); - cur2 += GETJSAMPLE(inptr[2]); - cur0 = GETJSAMPLE(range_limit[cur0]); - cur1 = GETJSAMPLE(range_limit[cur1]); - cur2 = GETJSAMPLE(range_limit[cur2]); - /* Index into the cache with adjusted pixel value */ - cachep = & histogram[cur0>>C0_SHIFT][cur1>>C1_SHIFT][cur2>>C2_SHIFT]; - /* If we have not seen this color before, find nearest colormap */ - /* entry and update the cache */ - if (*cachep == 0) - fill_inverse_cmap(cinfo, cur0>>C0_SHIFT,cur1>>C1_SHIFT,cur2>>C2_SHIFT); - /* Now emit the colormap index for this cell */ - { register int pixcode = *cachep - 1; - *outptr = (JSAMPLE) pixcode; - /* Compute representation error for this pixel */ - cur0 -= GETJSAMPLE(colormap0[pixcode]); - cur1 -= GETJSAMPLE(colormap1[pixcode]); - cur2 -= GETJSAMPLE(colormap2[pixcode]); - } - /* Compute error fractions to be propagated to adjacent pixels. - * Add these into the running sums, and simultaneously shift the - * next-line error sums left by 1 column. - */ - { register LOCFSERROR bnexterr, delta; - - bnexterr = cur0; /* Process component 0 */ - delta = cur0 * 2; - cur0 += delta; /* form error * 3 */ - errorptr[0] = (FSERROR) (bpreverr0 + cur0); - cur0 += delta; /* form error * 5 */ - bpreverr0 = belowerr0 + cur0; - belowerr0 = bnexterr; - cur0 += delta; /* form error * 7 */ - bnexterr = cur1; /* Process component 1 */ - delta = cur1 * 2; - cur1 += delta; /* form error * 3 */ - errorptr[1] = (FSERROR) (bpreverr1 + cur1); - cur1 += delta; /* form error * 5 */ - bpreverr1 = belowerr1 + cur1; - belowerr1 = bnexterr; - cur1 += delta; /* form error * 7 */ - bnexterr = cur2; /* Process component 2 */ - delta = cur2 * 2; - cur2 += delta; /* form error * 3 */ - errorptr[2] = (FSERROR) (bpreverr2 + cur2); - cur2 += delta; /* form error * 5 */ - bpreverr2 = belowerr2 + cur2; - belowerr2 = bnexterr; - cur2 += delta; /* form error * 7 */ - } - /* At this point curN contains the 7/16 error value to be propagated - * to the next pixel on the current line, and all the errors for the - * next line have been shifted over. We are therefore ready to move on. - */ - inptr += dir3; /* Advance pixel pointers to next column */ - outptr += dir; - errorptr += dir3; /* advance errorptr to current column */ - } - /* Post-loop cleanup: we must unload the final error values into the - * final fserrors[] entry. Note we need not unload belowerrN because - * it is for the dummy column before or after the actual array. - */ - errorptr[0] = (FSERROR) bpreverr0; /* unload prev errs into array */ - errorptr[1] = (FSERROR) bpreverr1; - errorptr[2] = (FSERROR) bpreverr2; - } -} - - -/* - * Initialize the error-limiting transfer function (lookup table). - * The raw F-S error computation can potentially compute error values of up to - * +- MAXJSAMPLE. But we want the maximum correction applied to a pixel to be - * much less, otherwise obviously wrong pixels will be created. (Typical - * effects include weird fringes at color-area boundaries, isolated bright - * pixels in a dark area, etc.) The standard advice for avoiding this problem - * is to ensure that the "corners" of the color cube are allocated as output - * colors; then repeated errors in the same direction cannot cause cascading - * error buildup. However, that only prevents the error from getting - * completely out of hand; Aaron Giles reports that error limiting improves - * the results even with corner colors allocated. - * A simple clamping of the error values to about +- MAXJSAMPLE/8 works pretty - * well, but the smoother transfer function used below is even better. Thanks - * to Aaron Giles for this idea. - */ - -LOCAL(void) -init_error_limit (j_decompress_ptr cinfo) -/* Allocate and fill in the error_limiter table */ -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - int * table; - int in, out; - - table = (int *) (*cinfo->mem->alloc_small) - ((j_common_ptr) cinfo, JPOOL_IMAGE, (MAXJSAMPLE*2+1) * SIZEOF(int)); - table += MAXJSAMPLE; /* so can index -MAXJSAMPLE .. +MAXJSAMPLE */ - cquantize->error_limiter = table; - -#define STEPSIZE ((MAXJSAMPLE+1)/16) - /* Map errors 1:1 up to +- MAXJSAMPLE/16 */ - out = 0; - for (in = 0; in < STEPSIZE; in++, out++) { - table[in] = out; table[-in] = -out; - } - /* Map errors 1:2 up to +- 3*MAXJSAMPLE/16 */ - for (; in < STEPSIZE*3; in++, out += (in&1) ? 0 : 1) { - table[in] = out; table[-in] = -out; - } - /* Clamp the rest to final out value (which is (MAXJSAMPLE+1)/8) */ - for (; in <= MAXJSAMPLE; in++) { - table[in] = out; table[-in] = -out; - } -#undef STEPSIZE -} - - -/* - * Finish up at the end of each pass. - */ - -METHODDEF(void) -finish_pass1 (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - - /* Select the representative colors and fill in cinfo->colormap */ - cinfo->colormap = cquantize->sv_colormap; - select_colors(cinfo, cquantize->desired); - /* Force next pass to zero the color index table */ - cquantize->needs_zeroed = TRUE; -} - - -METHODDEF(void) -finish_pass2 (j_decompress_ptr cinfo) -{ - /* no work */ -} - - -/* - * Initialize for each processing pass. - */ - -METHODDEF(void) -start_pass_2_quant (j_decompress_ptr cinfo, boolean is_pre_scan) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - hist3d histogram = cquantize->histogram; - int i; - - /* Only F-S dithering or no dithering is supported. */ - /* If user asks for ordered dither, give him F-S. */ - if (cinfo->dither_mode != JDITHER_NONE) - cinfo->dither_mode = JDITHER_FS; - - if (is_pre_scan) { - /* Set up method pointers */ - cquantize->pub.color_quantize = prescan_quantize; - cquantize->pub.finish_pass = finish_pass1; - cquantize->needs_zeroed = TRUE; /* Always zero histogram */ - } else { - /* Set up method pointers */ - if (cinfo->dither_mode == JDITHER_FS) - cquantize->pub.color_quantize = pass2_fs_dither; - else - cquantize->pub.color_quantize = pass2_no_dither; - cquantize->pub.finish_pass = finish_pass2; - - /* Make sure color count is acceptable */ - i = cinfo->actual_number_of_colors; - if (i < 1) - ERREXIT1(cinfo, JERR_QUANT_FEW_COLORS, 1); - if (i > MAXNUMCOLORS) - ERREXIT1(cinfo, JERR_QUANT_MANY_COLORS, MAXNUMCOLORS); - - if (cinfo->dither_mode == JDITHER_FS) { - size_t arraysize = (size_t) ((cinfo->output_width + 2) * - (3 * SIZEOF(FSERROR))); - /* Allocate Floyd-Steinberg workspace if we didn't already. */ - if (cquantize->fserrors == NULL) - cquantize->fserrors = (FSERRPTR) (*cinfo->mem->alloc_large) - ((j_common_ptr) cinfo, JPOOL_IMAGE, arraysize); - /* Initialize the propagated errors to zero. */ - jzero_far((void FAR *) cquantize->fserrors, arraysize); - /* Make the error-limit table if we didn't already. */ - if (cquantize->error_limiter == NULL) - init_error_limit(cinfo); - cquantize->on_odd_row = FALSE; - } - - } - /* Zero the histogram or inverse color map, if necessary */ - if (cquantize->needs_zeroed) { - for (i = 0; i < HIST_C0_ELEMS; i++) { - jzero_far((void FAR *) histogram[i], - HIST_C1_ELEMS*HIST_C2_ELEMS * SIZEOF(histcell)); - } - cquantize->needs_zeroed = FALSE; - } -} - - -/* - * Switch to a new external colormap between output passes. - */ - -METHODDEF(void) -new_color_map_2_quant (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize; - - /* Reset the inverse color map */ - cquantize->needs_zeroed = TRUE; -} - - -/* - * Module initialization routine for 2-pass color quantization. - */ - -GLOBAL(void) -jinit_2pass_quantizer (j_decompress_ptr cinfo) -{ - my_cquantize_ptr cquantize; - int i; - - cquantize = (my_cquantize_ptr) - (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_IMAGE, - SIZEOF(my_cquantizer)); - cinfo->cquantize = (struct jpeg_color_quantizer *) cquantize; - cquantize->pub.start_pass = start_pass_2_quant; - cquantize->pub.new_color_map = new_color_map_2_quant; - cquantize->fserrors = NULL; /* flag optional arrays not allocated */ - cquantize->error_limiter = NULL; - - /* Make sure jdmaster didn't give me a case I can't handle */ - if (cinfo->out_color_components != 3) - ERREXIT(cinfo, JERR_NOTIMPL); - - /* Allocate the histogram/inverse colormap storage */ - cquantize->histogram = (hist3d) (*cinfo->mem->alloc_small) - ((j_common_ptr) cinfo, JPOOL_IMAGE, HIST_C0_ELEMS * SIZEOF(hist2d)); - for (i = 0; i < HIST_C0_ELEMS; i++) { - cquantize->histogram[i] = (hist2d) (*cinfo->mem->alloc_large) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - HIST_C1_ELEMS*HIST_C2_ELEMS * SIZEOF(histcell)); - } - cquantize->needs_zeroed = TRUE; /* histogram is garbage now */ - - /* Allocate storage for the completed colormap, if required. - * We do this now since it is FAR storage and may affect - * the memory manager's space calculations. - */ - if (cinfo->enable_2pass_quant) { - /* Make sure color count is acceptable */ - int desired = cinfo->desired_number_of_colors; - /* Lower bound on # of colors ... somewhat arbitrary as long as > 0 */ - if (desired < 8) - ERREXIT1(cinfo, JERR_QUANT_FEW_COLORS, 8); - /* Make sure colormap indexes can be represented by JSAMPLEs */ - if (desired > MAXNUMCOLORS) - ERREXIT1(cinfo, JERR_QUANT_MANY_COLORS, MAXNUMCOLORS); - cquantize->sv_colormap = (*cinfo->mem->alloc_sarray) - ((j_common_ptr) cinfo,JPOOL_IMAGE, (JDIMENSION) desired, (JDIMENSION) 3); - cquantize->desired = desired; - } else - cquantize->sv_colormap = NULL; - - /* Only F-S dithering or no dithering is supported. */ - /* If user asks for ordered dither, give him F-S. */ - if (cinfo->dither_mode != JDITHER_NONE) - cinfo->dither_mode = JDITHER_FS; - - /* Allocate Floyd-Steinberg workspace if necessary. - * This isn't really needed until pass 2, but again it is FAR storage. - * Although we will cope with a later change in dither_mode, - * we do not promise to honor max_memory_to_use if dither_mode changes. - */ - if (cinfo->dither_mode == JDITHER_FS) { - cquantize->fserrors = (FSERRPTR) (*cinfo->mem->alloc_large) - ((j_common_ptr) cinfo, JPOOL_IMAGE, - (size_t) ((cinfo->output_width + 2) * (3 * SIZEOF(FSERROR)))); - /* Might as well create the error-limiting table too. */ - init_error_limit(cinfo); - } -} - -#endif /* QUANT_2PASS_SUPPORTED */ diff --git a/src/jpeg/jutils.c b/src/jpeg/jutils.c deleted file mode 100644 index d18a955562..0000000000 --- a/src/jpeg/jutils.c +++ /dev/null @@ -1,179 +0,0 @@ -/* - * jutils.c - * - * Copyright (C) 1991-1996, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains tables and miscellaneous utility routines needed - * for both compression and decompression. - * Note we prefix all global names with "j" to minimize conflicts with - * a surrounding application. - */ - -#define JPEG_INTERNALS -#include "jinclude.h" -#include "jpeglib.h" - - -/* - * jpeg_zigzag_order[i] is the zigzag-order position of the i'th element - * of a DCT block read in natural order (left to right, top to bottom). - */ - -#if 0 /* This table is not actually needed in v6a */ - -const int jpeg_zigzag_order[DCTSIZE2] = { - 0, 1, 5, 6, 14, 15, 27, 28, - 2, 4, 7, 13, 16, 26, 29, 42, - 3, 8, 12, 17, 25, 30, 41, 43, - 9, 11, 18, 24, 31, 40, 44, 53, - 10, 19, 23, 32, 39, 45, 52, 54, - 20, 22, 33, 38, 46, 51, 55, 60, - 21, 34, 37, 47, 50, 56, 59, 61, - 35, 36, 48, 49, 57, 58, 62, 63 -}; - -#endif - -/* - * jpeg_natural_order[i] is the natural-order position of the i'th element - * of zigzag order. - * - * When reading corrupted data, the Huffman decoders could attempt - * to reference an entry beyond the end of this array (if the decoded - * zero run length reaches past the end of the block). To prevent - * wild stores without adding an inner-loop test, we put some extra - * "63"s after the real entries. This will cause the extra coefficient - * to be stored in location 63 of the block, not somewhere random. - * The worst case would be a run-length of 15, which means we need 16 - * fake entries. - */ - -const int jpeg_natural_order[DCTSIZE2+16] = { - 0, 1, 8, 16, 9, 2, 3, 10, - 17, 24, 32, 25, 18, 11, 4, 5, - 12, 19, 26, 33, 40, 48, 41, 34, - 27, 20, 13, 6, 7, 14, 21, 28, - 35, 42, 49, 56, 57, 50, 43, 36, - 29, 22, 15, 23, 30, 37, 44, 51, - 58, 59, 52, 45, 38, 31, 39, 46, - 53, 60, 61, 54, 47, 55, 62, 63, - 63, 63, 63, 63, 63, 63, 63, 63, /* extra entries for safety in decoder */ - 63, 63, 63, 63, 63, 63, 63, 63 -}; - - -/* - * Arithmetic utilities - */ - -GLOBAL(long) -jdiv_round_up (long a, long b) -/* Compute a/b rounded up to next integer, ie, ceil(a/b) */ -/* Assumes a >= 0, b > 0 */ -{ - return (a + b - 1L) / b; -} - - -GLOBAL(long) -jround_up (long a, long b) -/* Compute a rounded up to next multiple of b, ie, ceil(a/b)*b */ -/* Assumes a >= 0, b > 0 */ -{ - a += b - 1L; - return a - (a % b); -} - - -/* On normal machines we can apply MEMCOPY() and MEMZERO() to sample arrays - * and coefficient-block arrays. This won't work on 80x86 because the arrays - * are FAR and we're assuming a small-pointer memory model. However, some - * DOS compilers provide far-pointer versions of memcpy() and memset() even - * in the small-model libraries. These will be used if USE_FMEM is defined. - * Otherwise, the routines below do it the hard way. (The performance cost - * is not all that great, because these routines aren't very heavily used.) - */ - -#ifndef NEED_FAR_POINTERS /* normal case, same as regular macros */ -#define FMEMCOPY(dest,src,size) MEMCOPY(dest,src,size) -#define FMEMZERO(target,size) MEMZERO(target,size) -#else /* 80x86 case, define if we can */ -#ifdef USE_FMEM -#define FMEMCOPY(dest,src,size) _fmemcpy((void FAR *)(dest), (const void FAR *)(src), (size_t)(size)) -#define FMEMZERO(target,size) _fmemset((void FAR *)(target), 0, (size_t)(size)) -#endif -#endif - - -GLOBAL(void) -jcopy_sample_rows (JSAMPARRAY input_array, int source_row, - JSAMPARRAY output_array, int dest_row, - int num_rows, JDIMENSION num_cols) -/* Copy some rows of samples from one place to another. - * num_rows rows are copied from input_array[source_row++] - * to output_array[dest_row++]; these areas may overlap for duplication. - * The source and destination arrays must be at least as wide as num_cols. - */ -{ - register JSAMPROW inptr, outptr; -#ifdef FMEMCOPY - register size_t count = (size_t) (num_cols * SIZEOF(JSAMPLE)); -#else - register JDIMENSION count; -#endif - register int row; - - input_array += source_row; - output_array += dest_row; - - for (row = num_rows; row > 0; row--) { - inptr = *input_array++; - outptr = *output_array++; -#ifdef FMEMCOPY - FMEMCOPY(outptr, inptr, count); -#else - for (count = num_cols; count > 0; count--) - *outptr++ = *inptr++; /* needn't bother with GETJSAMPLE() here */ -#endif - } -} - - -GLOBAL(void) -jcopy_block_row (JBLOCKROW input_row, JBLOCKROW output_row, - JDIMENSION num_blocks) -/* Copy a row of coefficient blocks from one place to another. */ -{ -#ifdef FMEMCOPY - FMEMCOPY(output_row, input_row, num_blocks * (DCTSIZE2 * SIZEOF(JCOEF))); -#else - register JCOEFPTR inptr, outptr; - register long count; - - inptr = (JCOEFPTR) input_row; - outptr = (JCOEFPTR) output_row; - for (count = (long) num_blocks * DCTSIZE2; count > 0; count--) { - *outptr++ = *inptr++; - } -#endif -} - - -GLOBAL(void) -jzero_far (void FAR * target, size_t bytestozero) -/* Zero out a chunk of FAR memory. */ -/* This might be sample-array data, block-array data, or alloc_large data. */ -{ -#ifdef FMEMZERO - FMEMZERO(target, bytestozero); -#else - register char FAR * ptr = (char FAR *) target; - register size_t count; - - for (count = bytestozero; count > 0; count--) { - *ptr++ = 0; - } -#endif -} diff --git a/src/jpeg/jversion.h b/src/jpeg/jversion.h deleted file mode 100644 index 6472c58d35..0000000000 --- a/src/jpeg/jversion.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * jversion.h - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains software version identification. - */ - - -#define JVERSION "6b 27-Mar-1998" - -#define JCOPYRIGHT "Copyright (C) 1998, Thomas G. Lane" diff --git a/src/jpeg/makefile.b32 b/src/jpeg/makefile.b32 deleted file mode 100644 index 35d923f954..0000000000 --- a/src/jpeg/makefile.b32 +++ /dev/null @@ -1,77 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds JPEG library (BC++ 32-bit) - -# WXWIN and BCCDIR are set by parent make - -LIBTARGET =..\..\lib\jpeg.lib - -SYSDEPMEM= jmemnobs.obj - -# source files: JPEG library proper -LIBSOURCES= jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c \ - jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c \ - jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c \ - jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c \ - jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c \ - jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c \ - jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c \ - jquant2.c jutils.c jmemmgr.c -# memmgr back ends: compile only one of these into a working library -SYSDEPSOURCES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemmac.c -# source files: cjpeg/djpeg/jpegtran applications, also rdjpgcom/wrjpgcom -APPSOURCES= cjpeg.c djpeg.c jpegtran.c rdjpgcom.c wrjpgcom.c cdjpeg.c \ - rdcolmap.c rdswitch.c transupp.c rdppm.c wrppm.c rdgif.c wrgif.c \ - rdtarga.c wrtarga.c rdbmp.c wrbmp.c rdrle.c wrrle.c -SOURCES= $(LIBSOURCES) $(SYSDEPSOURCES) $(APPSOURCES) -# files included by source files -INCLUDES= jchuff.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h jmorecfg.h \ - jpegint.h jpeglib.h jversion.h cdjpeg.h cderror.h transupp.h -# documentation, test, and support files -DOCS= README install.doc usage.doc cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 \ - wrjpgcom.1 wizard.doc example.c libjpeg.doc structure.doc \ - coderules.doc filelist.doc change.log -MKFILES= configure makefile.cfg makefile.ansi makefile.unix makefile.bcc \ - makefile.mc6 makefile.dj makefile.wat makefile.vc makelib.ds \ - makeapps.ds makeproj.mac makcjpeg.st makdjpeg.st makljpeg.st \ - maktjpeg.st makefile.manx makefile.sas makefile.mms makefile.vms \ - makvms.opt -CONFIGFILES= jconfig.cfg jconfig.bcc jconfig.mc6 jconfig.dj jconfig.wat \ - jconfig.vc jconfig.mac jconfig.st jconfig.manx jconfig.sas \ - jconfig.vms -CONFIGUREFILES= config.guess config.sub install-sh ltconfig ltmain.sh -OTHERFILES= jconfig.doc ckconfig.c ansi2knr.c ansi2knr.1 jmemdosa.asm -TESTFILES= testorig.jpg testimg.ppm testimg.bmp testimg.jpg testprog.jpg \ - testimgp.jpg -DISTFILES= $(DOCS) $(MKFILES) $(CONFIGFILES) $(SOURCES) $(INCLUDES) \ - $(CONFIGUREFILES) $(OTHERFILES) $(TESTFILES) -# library object files common to compression and decompression -COMOBJECTS= jcomapi.obj jutils.obj jerror.obj jmemmgr.obj $(SYSDEPMEM) -# compression library object files -CLIBOBJECTS= jcapimin.obj jcapistd.obj jctrans.obj jcparam.obj jdatadst.obj \ - jcinit.obj jcmaster.obj jcmarker.obj jcmainct.obj jcprepct.obj \ - jccoefct.obj jccolor.obj jcsample.obj jchuff.obj jcphuff.obj \ - jcdctmgr.obj jfdctfst.obj jfdctflt.obj jfdctint.obj -# decompression library object files -DLIBOBJECTS= jdapimin.obj jdapistd.obj jdtrans.obj jdatasrc.obj \ - jdmaster.obj jdinput.obj jdmarker.obj jdhuff.obj jdphuff.obj \ - jdmainct.obj jdcoefct.obj jdpostct.obj jddctmgr.obj jidctfst.obj \ - jidctflt.obj jidctint.obj jidctred.obj jdsample.obj jdcolor.obj \ - jquant1.obj jquant2.obj jdmerge.obj -# These objectfiles are included in libjpeg.lib -OBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS) -# object files for sample applications (excluding library files) -COBJECTS= cjpeg.obj rdppm.obj rdgif.obj rdtarga.obj rdrle.obj rdbmp.obj \ - rdswitch.obj cdjpeg.obj -DOBJECTS= djpeg.obj wrppm.obj wrgif.obj wrtarga.obj wrrle.obj wrbmp.obj \ - rdcolmap.obj cdjpeg.obj -TROBJECTS= jpegtran.obj rdswitch.obj cdjpeg.obj transupp.obj - -!include $(WXWIN)\src\makelib.b32 \ No newline at end of file diff --git a/src/jpeg/makefile.bcc b/src/jpeg/makefile.bcc deleted file mode 100644 index a1cfcde669..0000000000 --- a/src/jpeg/makefile.bcc +++ /dev/null @@ -1,285 +0,0 @@ -# Makefile for Independent JPEG Group's software - -# This makefile is suitable for Borland C on MS-DOS or OS/2. -# It works with Borland C++ for DOS, revision 3.0 or later, -# and has been tested with Borland C++ for OS/2. -# Watch out for optimization bugs in the OS/2 compilers --- see notes below! -# Thanks to Tom Wright and Ge' Weijers (original DOS) and -# Ken Porter (OS/2) for this file. - -# Read installation instructions before saying "make" !! - -# Are we under DOS or OS/2? -!if !$d(DOS) && !$d(OS2) -!if $d(__OS2__) -OS2=1 -!else -DOS=1 -!endif -!endif - -# The name of your C compiler: -CC= bcc - -# You may need to adjust these cc options: -!if $d(DOS) -CFLAGS= -O2 -mm -w-par -w-stu -w-ccc -w-rch -!else -CFLAGS= -O1 -w-par -w-stu -w-ccc -w-rch -!endif -# -O2 enables full code optimization (for pre-3.0 Borland C++, use -O -G -Z). -# -O2 is buggy in Borland OS/2 C++ revision 2.0, so use -O1 there for now. -# If you have Borland OS/2 C++ revision 1.0, use -O or no optimization at all. -# -mm selects medium memory model (near data, far code pointers; DOS only!) -# -w-par suppresses warnings about unused function parameters -# -w-stu suppresses warnings about incomplete structures -# -w-ccc suppresses warnings about compile-time-constant conditions -# -w-rch suppresses warnings about unreachable code -# Generally, we recommend defining any configuration symbols in jconfig.h, -# NOT via -D switches here. - -# Link-time cc options: -!if $d(DOS) -LDFLAGS= -mm -# memory model option here must match CFLAGS! -!else -LDFLAGS= -# -lai full-screen app -# -lc case-significant link -!endif - -# Put here the object file name for the correct system-dependent memory -# manager file. -# For DOS, we recommend jmemdos.c and jmemdosa.asm. -# For OS/2, we recommend jmemnobs.c (flat memory!) -# SYSDEPMEMLIB must list the same files with "+" signs for the librarian. -!if $d(DOS) -SYSDEPMEM= jmemdos.obj jmemdosa.obj -SYSDEPMEMLIB= +jmemdos.obj +jmemdosa.obj -!else -SYSDEPMEM= jmemnobs.obj -SYSDEPMEMLIB= +jmemnobs.obj -!endif - -# End of configurable options. - - -# source files: JPEG library proper -LIBSOURCES= jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c \ - jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c \ - jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c \ - jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c \ - jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c \ - jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c \ - jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c \ - jquant2.c jutils.c jmemmgr.c -# memmgr back ends: compile only one of these into a working library -SYSDEPSOURCES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemmac.c -# source files: cjpeg/djpeg/jpegtran applications, also rdjpgcom/wrjpgcom -APPSOURCES= cjpeg.c djpeg.c jpegtran.c rdjpgcom.c wrjpgcom.c cdjpeg.c \ - rdcolmap.c rdswitch.c transupp.c rdppm.c wrppm.c rdgif.c wrgif.c \ - rdtarga.c wrtarga.c rdbmp.c wrbmp.c rdrle.c wrrle.c -SOURCES= $(LIBSOURCES) $(SYSDEPSOURCES) $(APPSOURCES) -# files included by source files -INCLUDES= jchuff.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h jmorecfg.h \ - jpegint.h jpeglib.h jversion.h cdjpeg.h cderror.h transupp.h -# documentation, test, and support files -DOCS= README install.doc usage.doc cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 \ - wrjpgcom.1 wizard.doc example.c libjpeg.doc structure.doc \ - coderules.doc filelist.doc change.log -MKFILES= configure makefile.cfg makefile.ansi makefile.unix makefile.bcc \ - makefile.mc6 makefile.dj makefile.wat makefile.vc makelib.ds \ - makeapps.ds makeproj.mac makcjpeg.st makdjpeg.st makljpeg.st \ - maktjpeg.st makefile.manx makefile.sas makefile.mms makefile.vms \ - makvms.opt -CONFIGFILES= jconfig.cfg jconfig.bcc jconfig.mc6 jconfig.dj jconfig.wat \ - jconfig.vc jconfig.mac jconfig.st jconfig.manx jconfig.sas \ - jconfig.vms -CONFIGUREFILES= config.guess config.sub install-sh ltconfig ltmain.sh -OTHERFILES= jconfig.doc ckconfig.c ansi2knr.c ansi2knr.1 jmemdosa.asm -TESTFILES= testorig.jpg testimg.ppm testimg.bmp testimg.jpg testprog.jpg \ - testimgp.jpg -DISTFILES= $(DOCS) $(MKFILES) $(CONFIGFILES) $(SOURCES) $(INCLUDES) \ - $(CONFIGUREFILES) $(OTHERFILES) $(TESTFILES) -# library object files common to compression and decompression -COMOBJECTS= jcomapi.obj jutils.obj jerror.obj jmemmgr.obj $(SYSDEPMEM) -# compression library object files -CLIBOBJECTS= jcapimin.obj jcapistd.obj jctrans.obj jcparam.obj jdatadst.obj \ - jcinit.obj jcmaster.obj jcmarker.obj jcmainct.obj jcprepct.obj \ - jccoefct.obj jccolor.obj jcsample.obj jchuff.obj jcphuff.obj \ - jcdctmgr.obj jfdctfst.obj jfdctflt.obj jfdctint.obj -# decompression library object files -DLIBOBJECTS= jdapimin.obj jdapistd.obj jdtrans.obj jdatasrc.obj \ - jdmaster.obj jdinput.obj jdmarker.obj jdhuff.obj jdphuff.obj \ - jdmainct.obj jdcoefct.obj jdpostct.obj jddctmgr.obj jidctfst.obj \ - jidctflt.obj jidctint.obj jidctred.obj jdsample.obj jdcolor.obj \ - jquant1.obj jquant2.obj jdmerge.obj -# These objectfiles are included in libjpeg.lib -LIBOBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS) -# object files for sample applications (excluding library files) -COBJECTS= cjpeg.obj rdppm.obj rdgif.obj rdtarga.obj rdrle.obj rdbmp.obj \ - rdswitch.obj cdjpeg.obj -DOBJECTS= djpeg.obj wrppm.obj wrgif.obj wrtarga.obj wrrle.obj wrbmp.obj \ - rdcolmap.obj cdjpeg.obj -TROBJECTS= jpegtran.obj rdswitch.obj cdjpeg.obj transupp.obj - - -all: libjpeg.lib cjpeg.exe djpeg.exe jpegtran.exe rdjpgcom.exe wrjpgcom.exe - -libjpeg.lib: $(LIBOBJECTS) - - del libjpeg.lib - tlib libjpeg.lib /E /C @&&| -+jcapimin.obj +jcapistd.obj +jctrans.obj +jcparam.obj +jdatadst.obj & -+jcinit.obj +jcmaster.obj +jcmarker.obj +jcmainct.obj +jcprepct.obj & -+jccoefct.obj +jccolor.obj +jcsample.obj +jchuff.obj +jcphuff.obj & -+jcdctmgr.obj +jfdctfst.obj +jfdctflt.obj +jfdctint.obj +jdapimin.obj & -+jdapistd.obj +jdtrans.obj +jdatasrc.obj +jdmaster.obj +jdinput.obj & -+jdmarker.obj +jdhuff.obj +jdphuff.obj +jdmainct.obj +jdcoefct.obj & -+jdpostct.obj +jddctmgr.obj +jidctfst.obj +jidctflt.obj +jidctint.obj & -+jidctred.obj +jdsample.obj +jdcolor.obj +jquant1.obj +jquant2.obj & -+jdmerge.obj +jcomapi.obj +jutils.obj +jerror.obj +jmemmgr.obj & -$(SYSDEPMEMLIB) -| - -cjpeg.exe: $(COBJECTS) libjpeg.lib - $(CC) $(LDFLAGS) -ecjpeg.exe $(COBJECTS) libjpeg.lib - -djpeg.exe: $(DOBJECTS) libjpeg.lib - $(CC) $(LDFLAGS) -edjpeg.exe $(DOBJECTS) libjpeg.lib - -jpegtran.exe: $(TROBJECTS) libjpeg.lib - $(CC) $(LDFLAGS) -ejpegtran.exe $(TROBJECTS) libjpeg.lib - -rdjpgcom.exe: rdjpgcom.c -!if $d(DOS) - $(CC) -ms -O rdjpgcom.c -!else - $(CC) $(CFLAGS) rdjpgcom.c -!endif - -# On DOS, wrjpgcom needs large model so it can malloc a 64K chunk -wrjpgcom.exe: wrjpgcom.c -!if $d(DOS) - $(CC) -ml -O wrjpgcom.c -!else - $(CC) $(CFLAGS) wrjpgcom.c -!endif - -# This "{}" syntax allows Borland Make to "batch" source files. -# In this way, each run of the compiler can build many modules. -.c.obj: - $(CC) $(CFLAGS) -c{ $<} - -jconfig.h: jconfig.doc - echo You must prepare a system-dependent jconfig.h file. - echo Please read the installation directions in install.doc. - exit 1 - -clean: - - del *.obj - - del libjpeg.lib - - del cjpeg.exe - - del djpeg.exe - - del jpegtran.exe - - del rdjpgcom.exe - - del wrjpgcom.exe - - del testout*.* - -test: cjpeg.exe djpeg.exe jpegtran.exe - - del testout*.* - djpeg -dct int -ppm -outfile testout.ppm testorig.jpg - djpeg -dct int -bmp -colors 256 -outfile testout.bmp testorig.jpg - cjpeg -dct int -outfile testout.jpg testimg.ppm - djpeg -dct int -ppm -outfile testoutp.ppm testprog.jpg - cjpeg -dct int -progressive -opt -outfile testoutp.jpg testimg.ppm - jpegtran -outfile testoutt.jpg testprog.jpg -!if $d(DOS) - fc /b testimg.ppm testout.ppm - fc /b testimg.bmp testout.bmp - fc /b testimg.jpg testout.jpg - fc /b testimg.ppm testoutp.ppm - fc /b testimgp.jpg testoutp.jpg - fc /b testorig.jpg testoutt.jpg -!else - echo n > n.tmp - comp testimg.ppm testout.ppm < n.tmp - comp testimg.bmp testout.bmp < n.tmp - comp testimg.jpg testout.jpg < n.tmp - comp testimg.ppm testoutp.ppm < n.tmp - comp testimgp.jpg testoutp.jpg < n.tmp - comp testorig.jpg testoutt.jpg < n.tmp - del n.tmp -!endif - - -jcapimin.obj: jcapimin.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcapistd.obj: jcapistd.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jccoefct.obj: jccoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jccolor.obj: jccolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcdctmgr.obj: jcdctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jchuff.obj: jchuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jchuff.h -jcinit.obj: jcinit.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcmainct.obj: jcmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcmarker.obj: jcmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcmaster.obj: jcmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcomapi.obj: jcomapi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcparam.obj: jcparam.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcphuff.obj: jcphuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jchuff.h -jcprepct.obj: jcprepct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jcsample.obj: jcsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jctrans.obj: jctrans.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdapimin.obj: jdapimin.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdapistd.obj: jdapistd.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdatadst.obj: jdatadst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h -jdatasrc.obj: jdatasrc.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h -jdcoefct.obj: jdcoefct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdcolor.obj: jdcolor.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jddctmgr.obj: jddctmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jdhuff.obj: jdhuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdhuff.h -jdinput.obj: jdinput.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdmainct.obj: jdmainct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdmarker.obj: jdmarker.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdmaster.obj: jdmaster.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdmerge.obj: jdmerge.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdphuff.obj: jdphuff.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdhuff.h -jdpostct.obj: jdpostct.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdsample.obj: jdsample.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jdtrans.obj: jdtrans.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jerror.obj: jerror.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jversion.h jerror.h -jfdctflt.obj: jfdctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jfdctfst.obj: jfdctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jfdctint.obj: jfdctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jidctflt.obj: jidctflt.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jidctfst.obj: jidctfst.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jidctint.obj: jidctint.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jidctred.obj: jidctred.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jdct.h -jquant1.obj: jquant1.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jquant2.obj: jquant2.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jutils.obj: jutils.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h -jmemmgr.obj: jmemmgr.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h -jmemansi.obj: jmemansi.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h -jmemname.obj: jmemname.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h -jmemnobs.obj: jmemnobs.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h -jmemdos.obj: jmemdos.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h -jmemmac.obj: jmemmac.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h jmemsys.h -cjpeg.obj: cjpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h jversion.h -djpeg.obj: djpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h jversion.h -jpegtran.obj: jpegtran.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h transupp.h jversion.h -rdjpgcom.obj: rdjpgcom.c jinclude.h jconfig.h -wrjpgcom.obj: wrjpgcom.c jinclude.h jconfig.h -cdjpeg.obj: cdjpeg.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -rdcolmap.obj: rdcolmap.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -rdswitch.obj: rdswitch.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -transupp.obj: transupp.c jinclude.h jconfig.h jpeglib.h jmorecfg.h jpegint.h jerror.h transupp.h -rdppm.obj: rdppm.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -wrppm.obj: wrppm.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -rdgif.obj: rdgif.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -wrgif.obj: wrgif.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -rdtarga.obj: rdtarga.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -wrtarga.obj: wrtarga.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -rdbmp.obj: rdbmp.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -wrbmp.obj: wrbmp.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -rdrle.obj: rdrle.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -wrrle.obj: wrrle.c cdjpeg.h jinclude.h jconfig.h jpeglib.h jmorecfg.h jerror.h cderror.h -jmemdosa.obj: jmemdosa.asm - tasm /mx jmemdosa.asm diff --git a/src/jpeg/makefile.unx b/src/jpeg/makefile.unx deleted file mode 100644 index bcf905ee69..0000000000 --- a/src/jpeg/makefile.unx +++ /dev/null @@ -1,36 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) 1999 -# -# -# Makefile for OGL library, Unix - -include ../make.env - -JPEGLIB=$(WXDIR)/lib/libjpeg$(GUISUFFIX).a - -all: $(JPEGLIB) - -# Define library objects -OBJECTS=\ - jcomapi.o jutils.o jerror.o jmemmgr.o jmemnobs.o \ - jcapimin.o jcapistd.o jctrans.o jcparam.o jdatadst.o \ - jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o \ - jccoefct.o jccolor.o jcsample.o jchuff.o jcphuff.o \ - jcdctmgr.o jfdctfst.o jfdctflt.o jfdctint.o \ - jdapimin.o jdapistd.o jdtrans.o jdatasrc.o \ - jdmaster.o jdinput.o jdmarker.o jdhuff.o jdphuff.o \ - jdmainct.o jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o \ - jidctflt.o jidctint.o jidctred.o jdsample.o jdcolor.o \ - jquant1.o jquant2.o jdmerge.o - -$(JPEGLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(JPEGLIB) - diff --git a/src/jpeg/makefile.vc b/src/jpeg/makefile.vc deleted file mode 100644 index 9f05dd6d22..0000000000 --- a/src/jpeg/makefile.vc +++ /dev/null @@ -1,99 +0,0 @@ -# Makefile for Independent JPEG Group's software - -# This makefile is for Microsoft Visual C++ on Windows NT (and 95?). -# It builds the IJG library as a statically linkable library (.LIB), -# and builds the sample applications as console-mode apps. -# Thanks to Xingong Chang, Raymond Everly and others. - -# Read installation instructions before saying "nmake" !! -# To build an optimized library without debug info, say "nmake nodebug=1". - -# Put here the object file name for the correct system-dependent memory -# manager file. For NT we suggest jmemnobs.obj, which expects the OS to -# provide adequate virtual memory. -SYSDEPMEM= jmemnobs.obj - -# miscellaneous OS-dependent stuff -# file deletion command -RM= del - -# End of configurable options. - - -# source files: JPEG library proper -LIBSOURCES= jcapimin.c jcapistd.c jccoefct.c jccolor.c jcdctmgr.c jchuff.c \ - jcinit.c jcmainct.c jcmarker.c jcmaster.c jcomapi.c jcparam.c \ - jcphuff.c jcprepct.c jcsample.c jctrans.c jdapimin.c jdapistd.c \ - jdatadst.c jdatasrc.c jdcoefct.c jdcolor.c jddctmgr.c jdhuff.c \ - jdinput.c jdmainct.c jdmarker.c jdmaster.c jdmerge.c jdphuff.c \ - jdpostct.c jdsample.c jdtrans.c jerror.c jfdctflt.c jfdctfst.c \ - jfdctint.c jidctflt.c jidctfst.c jidctint.c jidctred.c jquant1.c \ - jquant2.c jutils.c jmemmgr.c -# memmgr back ends: compile only one of these into a working library -SYSDEPSOURCES= jmemansi.c jmemname.c jmemnobs.c jmemdos.c jmemmac.c -# source files: cjpeg/djpeg/jpegtran applications, also rdjpgcom/wrjpgcom -APPSOURCES= cjpeg.c djpeg.c jpegtran.c rdjpgcom.c wrjpgcom.c cdjpeg.c \ - rdcolmap.c rdswitch.c transupp.c rdppm.c wrppm.c rdgif.c wrgif.c \ - rdtarga.c wrtarga.c rdbmp.c wrbmp.c rdrle.c wrrle.c -SOURCES= $(LIBSOURCES) $(SYSDEPSOURCES) $(APPSOURCES) -# files included by source files -INCLUDES= jchuff.h jdhuff.h jdct.h jerror.h jinclude.h jmemsys.h jmorecfg.h \ - jpegint.h jpeglib.h jversion.h cdjpeg.h cderror.h transupp.h -# documentation, test, and support files -DOCS= README install.doc usage.doc cjpeg.1 djpeg.1 jpegtran.1 rdjpgcom.1 \ - wrjpgcom.1 wizard.doc example.c libjpeg.doc structure.doc \ - coderules.doc filelist.doc change.log -MKFILES= configure makefile.cfg makefile.ansi makefile.unix makefile.bcc \ - makefile.mc6 makefile.dj makefile.wat makefile.vc makelib.ds \ - makeapps.ds makeproj.mac makcjpeg.st makdjpeg.st makljpeg.st \ - maktjpeg.st makefile.manx makefile.sas makefile.mms makefile.vms \ - makvms.opt -CONFIGFILES= jconfig.cfg jconfig.bcc jconfig.mc6 jconfig.dj jconfig.wat \ - jconfig.vc jconfig.mac jconfig.st jconfig.manx jconfig.sas \ - jconfig.vms -CONFIGUREFILES= config.guess config.sub install-sh ltconfig ltmain.sh -OTHERFILES= jconfig.doc ckconfig.c ansi2knr.c ansi2knr.1 jmemdosa.asm -TESTFILES= testorig.jpg testimg.ppm testimg.bmp testimg.jpg testprog.jpg \ - testimgp.jpg -DISTFILES= $(DOCS) $(MKFILES) $(CONFIGFILES) $(SOURCES) $(INCLUDES) \ - $(CONFIGUREFILES) $(OTHERFILES) $(TESTFILES) -# library object files common to compression and decompression -COMOBJECTS= jcomapi.obj jutils.obj jerror.obj jmemmgr.obj $(SYSDEPMEM) -# compression library object files -CLIBOBJECTS= jcapimin.obj jcapistd.obj jctrans.obj jcparam.obj jdatadst.obj \ - jcinit.obj jcmaster.obj jcmarker.obj jcmainct.obj jcprepct.obj \ - jccoefct.obj jccolor.obj jcsample.obj jchuff.obj jcphuff.obj \ - jcdctmgr.obj jfdctfst.obj jfdctflt.obj jfdctint.obj -# decompression library object files -DLIBOBJECTS= jdapimin.obj jdapistd.obj jdtrans.obj jdatasrc.obj \ - jdmaster.obj jdinput.obj jdmarker.obj jdhuff.obj jdphuff.obj \ - jdmainct.obj jdcoefct.obj jdpostct.obj jddctmgr.obj jidctfst.obj \ - jidctflt.obj jidctint.obj jidctred.obj jdsample.obj jdcolor.obj \ - jquant1.obj jquant2.obj jdmerge.obj -# These objectfiles are included in libjpeg.lib -OBJECTS= $(CLIBOBJECTS) $(DLIBOBJECTS) $(COMOBJECTS) -# object files for sample applications (excluding library files) -COBJECTS= cjpeg.obj rdppm.obj rdgif.obj rdtarga.obj rdrle.obj rdbmp.obj \ - rdswitch.obj cdjpeg.obj -DOBJECTS= djpeg.obj wrppm.obj wrgif.obj wrtarga.obj wrrle.obj wrbmp.obj \ - rdcolmap.obj cdjpeg.obj -TROBJECTS= jpegtran.obj rdswitch.obj cdjpeg.obj transupp.obj - -LIBTARGET=..\..\lib\jpeg.lib - -# Note: we have to put this first, to override the default definition -# which doesn't work because there are too many files on the command line. -# This means that we must explicitly use the 'all' target when making -# jpeg.lib, because of the ordering of targets. - -defaulttarget: - echo Please use the 'all' target for this makefile. - -clean: - -erase $(LIBTARGET) - -erase *.obj - -# Pull in standard variable definitions - -!include ..\makelib.vc - diff --git a/src/mac/accel.cpp b/src/mac/accel.cpp deleted file mode 100644 index b0b8734d55..0000000000 --- a/src/mac/accel.cpp +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: wxAcceleratorTable -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -#include "wx/setup.h" -#include "wx/accel.h" -#include "wx/string.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject) -#endif - -class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData -{ - friend class WXDLLEXPORT wxAcceleratorTable; -public: - wxAcceleratorRefData(); - ~wxAcceleratorRefData(); - -/* TODO: implementation - inline HACCEL GetHACCEL() const { return m_hAccel; } -protected: - HACCEL m_hAccel; -*/ -}; - -#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData) - -wxAcceleratorRefData::wxAcceleratorRefData() -{ - // TODO -/* - HACCEL m_hAccel; -*/ -} - -wxAcceleratorRefData::~wxAcceleratorRefData() -{ -/* - if (m_hAccel) - { - DestroyAcceleratorTable((HACCEL) m_hAccel); - } - m_hAccel = 0 ; -*/ -} - -wxAcceleratorTable::wxAcceleratorTable() -{ - m_refData = NULL; -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ -} - -// Load from .rc resource -wxAcceleratorTable::wxAcceleratorTable(const wxString& resource) -{ - m_refData = new wxAcceleratorRefData; - -/* TODO: load acelerator from resource, if appropriate for your platform - M_ACCELDATA->m_hAccel = hAccel; - M_ACCELDATA->m_ok = (hAccel != 0); -*/ -} - -// Create from an array -wxAcceleratorTable::wxAcceleratorTable(int n, wxAcceleratorEntry entries[]) -{ - m_refData = new wxAcceleratorRefData; - -/* TODO: create table from entries - */ -} - -bool wxAcceleratorTable::Ok() const -{ - // TODO - return FALSE; -} - diff --git a/src/mac/app.cpp b/src/mac/app.cpp deleted file mode 100644 index 3061f99aea..0000000000 --- a/src/mac/app.cpp +++ /dev/null @@ -1,1405 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: wxApp -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "app.h" -#endif - -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/utils.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/palette.h" -#include "wx/dc.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/log.h" -#include "wx/module.h" -#include "wx/memory.h" - -#if wxUSE_WX_RESOURCES -#include "wx/resource.h" -#endif - -#include - -// mac - -#include "apprsrc.h" - -extern char *wxBuffer; -extern wxList wxPendingDelete; - -wxApp *wxTheApp = NULL; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() -#endif - -long wxApp::sm_lastMessageTime = 0; - -const short kMacMinHeap = (29 * 1024) ; -// platform specific static variables - -bool gMacHasAppearance = false ; -long gMacAppearanceVersion = 0 ; -RgnHandle gMacCursorRgn = NULL ; - - -bool wxApp::Initialize() -{ - int error = 0 ; - - // Mac-specific - long total,contig; - - // init all managers - - ::InitGraf(&qd.thePort); - ::InitFonts(); - ::InitWindows(); - ::InitMenus(); - ::TEInit(); - ::InitDialogs(0L); - ::InitCursor(); - CursHandle aCursHandle = ::GetCursor(watchCursor); // Watch should be in system - if (aCursHandle) - ::SetCursor(*aCursHandle); - ::FlushEvents(everyEvent, 0); - - // setup memory of application - - ::MaxApplZone(); - for (long i = 1; i <= 4; i++) - ::MoreMasters(); - PurgeSpace(&total, &contig); - ::SetCursor( &qd.arrow ) ; - -#if 0 - InitAEHandlers(); - InitializeAECore() ; - GUSISetup(GUSIwithInternetSockets); -#endif - - // test the minimal configuration necessary - - long theSystem ; - long theMachine; - long theAppearance ; - - if (Gestalt(gestaltMachineType, &theMachine) != noErr) - { - error = kMacSTRWrongMachine; - } - else if (theMachine < gestaltMacPlus) - { - error = kMacSTRWrongMachine; - } - else if (Gestalt(gestaltSystemVersion, &theSystem) != noErr ) - { - error = kMacSTROldSystem ; - } - else if ( theSystem < 0x0700 ) - { - error = kMacSTROldSystem ; - } - else if ((long)GetApplLimit() - (long)ApplicationZone() < kMacMinHeap) - { - error = kMacSTRSmallSize; - } - else - { - if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr ) - { - gMacHasAppearance = true ; - RegisterAppearanceClient(); - if ( Gestalt( gestaltAppearanceVersion, &theAppearance ) == noErr ) - { - gMacAppearanceVersion = theAppearance ; - } - else - { - gMacAppearanceVersion = 0x0100 ; - } - } - else - error = kMacSTRNoPre8Yet ; - } - - // if we encountered any problems so far, give the error code and exit immediately - - if ( error ) - { - short itemHit; - Str255 message; - - SetCursor(&qd.arrow); - GetIndString(message, 128, error); - ParamText(message, (ConstStr255Param)"\p", (ConstStr255Param)"\p", (ConstStr255Param)"\p"); - itemHit = Alert(129, nil); - return FALSE ; - } - - // now avoid exceptions thrown for new (bad_alloc) - - std::__throws_bad_alloc = FALSE ; - - gMacCursorRgn = ::NewRgn() ; - -#ifdef __WXMSW__ - wxBuffer = new char[1500]; -#else - wxBuffer = new char[BUFSIZ + 512]; -#endif - -/* No longer used -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - - streambuf* sBuf = new wxDebugStreamBuf; - ostream* oStr = new ostream(sBuf) ; - wxDebugContext::SetStream(oStr, sBuf); -#endif -*/ - - wxClassInfo::InitializeClasses(); - - wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - wxBitmap::InitStandardHandlers(); - - wxModule::RegisterModules(); - wxASSERT( wxModule::InitializeModules() == TRUE ); - - return TRUE; -} - -void wxApp::CleanUp() -{ - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - - wxDeleteStockObjects() ; - - // Destroy all GDI lists, etc. - - delete wxTheBrushList; - wxTheBrushList = NULL; - - delete wxThePenList; - wxThePenList = NULL; - - delete wxTheFontList; - wxTheFontList = NULL; - - delete wxTheBitmapList; - wxTheBitmapList = NULL; - - delete wxTheColourDatabase; - wxTheColourDatabase = NULL; - - wxBitmap::CleanUpHandlers(); - - delete[] wxBuffer; - wxBuffer = NULL; - - wxClassInfo::CleanUpClasses(); - - delete wxTheApp; - wxTheApp = NULL; - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // At this point we want to check if there are any memory - // blocks that aren't part of the wxDebugContext itself, - // as a special case. Then when dumping we need to ignore - // wxDebugContext, too. - if (wxDebugContext::CountObjectsLeft() > 0) - { - wxTrace("There were memory leaks.\n"); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } -// wxDebugContext::SetStream(NULL, NULL); -#endif - - // do it as the very last thing because everything else can log messages - wxLog::DontCreateOnDemand(); - // do it as the very last thing because everything else can log messages - delete wxLog::SetActiveTarget(NULL); - - ::PrClose() ; - if (gMacCursorRgn) - ::DisposeRgn(gMacCursorRgn); - #if 0 - TerminateAE() ; - #endif -} - -int wxEntry( int argc, char *argv[] ) -{ - if (!wxApp::Initialize()) - return FALSE; - if (!wxTheApp) - { - if (!wxApp::GetInitializerFunction()) - { - printf( "wxWindows error: No initializer - use IMPLEMENT_APP macro.\n" ); - return 0; - }; - - wxTheApp = (wxApp*) (* wxApp::GetInitializerFunction()) (); - }; - - if (!wxTheApp) - { - printf( "wxWindows error: wxTheApp == NULL\n" ); - return 0; - }; - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - // GUI-specific initialization, such as creating an app context. - wxTheApp->OnInitGui(); - - // Here frames insert themselves automatically - // into wxTopLevelWindows by getting created - // in OnInit(). - - if (!wxTheApp->OnInit()) return 0; - - int retValue = 0; - - if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun(); - - if (wxTheApp->GetTopWindow()) - { - delete wxTheApp->GetTopWindow(); - wxTheApp->SetTopWindow(NULL); - } - - wxTheApp->DeletePendingObjects(); - - wxTheApp->OnExit(); - - wxApp::CleanUp(); - - return retValue; -}; - -// Static member initialization -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_className = ""; - m_wantDebugOutput = TRUE ; - m_appName = ""; - argc = 0; - argv = NULL; -#ifdef __WXMSW__ - m_printMode = wxPRINT_WINDOWS; -#else - m_printMode = wxPRINT_POSTSCRIPT; -#endif - m_exitOnFrameDelete = TRUE; - m_auto3D = TRUE; -} - -bool wxApp::Initialized() -{ - return TRUE; -// if (GetTopWindow()) -// return TRUE; -// else -// return FALSE; -} - -int wxApp::MainLoop() -{ - m_keepGoing = TRUE; - - while (m_keepGoing) - { - MacDoOneEvent() ; - } - - return 0; -} - -// Returns TRUE if more time is needed. -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -void wxApp::ExitMainLoop() -{ - m_keepGoing = FALSE; -} - -// Is a message/event pending? -bool wxApp::Pending() -{ -/* TODO. - */ - return FALSE; -} - -// Dispatch a message. -void wxApp::Dispatch() -{ -/* TODO. - */ -} - -void wxApp::OnIdle(wxIdleEvent& event) -{ - static bool inOnIdle = FALSE; - - // Avoid recursion (via ProcessEvent default case) - if (inOnIdle) - return; - - inOnIdle = TRUE; - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); - - // Send OnIdle events to all windows - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -// Send idle event to all top-level windows -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - wxNode* node = wxTopLevelWindows.First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore; -} - -// Send idle event to window and all subwindows -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Member(obj)) - delete node; - - // Deleting one object may have deleted other pending - // objects, so start from beginning of list again. - node = wxPendingDelete.First(); - } -} - -wxLog* wxApp::CreateLogTarget() -{ - return new wxLogGui; -} - -wxWindow* wxApp::GetTopWindow() const -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.Number() > 0) - return (wxWindow*) wxTopLevelWindows.First()->Data(); - else - return NULL; -} - -void wxExit() -{ - wxApp::CleanUp(); - ::ExitToShell() ; -} - -// Yield to other processes -bool wxYield() -{ -#if 0 - ::YieldToOtherThreads() ; - ::SystemTime() ; -#endif - return TRUE; -} - -// platform specifics - -void wxApp::MacDoOneEvent() -{ - EventRecord event ; - - long sleepTime = 60; - - if (WaitNextEvent(everyEvent, &event,sleepTime, gMacCursorRgn)) - { - MacHandleOneEvent( &event ); - } - else - { - // idlers - wxTheApp->ProcessIdle() ; - } - - // repeaters -#if 0 - wxMacProcessSocketEvents() ; -#endif -} - -void wxApp::MacHandleOneEvent( EventRecord *ev ) -{ - switch (ev->what) - { - case nullEvent: - MacHandleNullEvent( ev ) ; - break ; - case kHighLevelEvent: - MacHandleHighLevelEvent( ev ) ; - break; - case mouseDown: - MacHandleMouseDownEvent( ev ) ; - wxTheApp->ExitMainLoop() ; - break; - case mouseUp: - MacHandleMouseUpEvent( ev ) ; - break; - case keyDown: - MacHandleKeyDownEvent( ev ) ; - break; - case autoKey: - MacHandleAutoKeyEvent( ev ) ; - break; - case keyUp: - MacHandleKeyUpEvent( ev ) ; - break; - case activateEvt: - MacHandleActivateEvent( ev ) ; - break; - case updateEvt: - MacHandleUpdateEvent( ev ) ; - break; - case diskEvt: - MacHandleDiskEvent( ev ) ; - break; - case osEvt: - MacHandleOSEvent( ev ) ; - break; - default: - break; - } -} - -void wxApp::MacHandleNullEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleHighLevelEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleMouseDownEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleMouseUpEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleKeyDownEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleKeyUpEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleAutoKeyEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleActivateEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleUpdateEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleDiskEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleOSEvent( EventRecord *ev ) -{ -} - - - -/* - -void wxApp::doMacMouseDown(void) -{ - WindowPtr window; - short windowPart = ::FindWindow(m_event.where, &window); - if ( windowPart != inMenuBar ) - { - WindowPtr frontWindow = FrontWindow(); - if (WindowIsModal(frontWindow) && (window != frontWindow)) - SysBeep(1); - else - { - switch (windowPart) - { - case inMenuBar: - break; - case inContent: - doMacInContent(window); break; - case inDrag: - doMacInDrag(window); break; - case inGrow: - doMacInGrow(window); break; - case inGoAway: - doMacInGoAway(window); break; - case inZoomIn: - case inZoomOut: - doMacInZoom(window, windowPart); break; - default: - break; - } - - } - } - else - { - doMacInMenuBar(::MenuSelect(m_event.where)); - } -} - -void wxApp::doMacMouseUp(void) -{ - if (m_mouseWindow) - { -#if 0 - int hitX = m_event.where.h; // screen window c.s. - int hitY = m_event.where.v; // screen window c.s. - m_mouseWindow->ScreenToClient(&hitX, &hitY); // mouseWindow client c.s. - m_mouseWindow->ClientToLogical(&hitX, &hitY); // mouseWindow logical c.s. -#endif - - wxMouseEvent event(wxEVT_LEFT_UP); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = FALSE; - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - m_mouseWindow->ProcessEvent(event); - } - else - { - //??? Can't we just throw away mouse up events without matching mouse down - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { -#if 0 - int hitX = cCurrentEvent.where.h; // screen window c.s. - int hitY = cCurrentEvent.where.v; // screen window c.s. - theMacWxFrame->ScreenToWindow(&hitX, &hitY); -#endif - - wxMouseEvent event(wxEVT_LEFT_UP); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = FALSE; - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - theMacWxFrame->ProcessEvent(event); - } - } -} - -void wxApp::doMacMouseMotion(void) -{ - if (m_mouseWindow) { - wxMouseEvent event(wxEVT_MOTION); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = !(m_event.modifiers & btnState); - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - m_mouseWindow->ProcessEvent(event); - } - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - wxMouseEvent event(wxEVT_MOTION); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = !(m_event.modifiers & btnState); - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - m_mouseWindow->ProcessEvent(event); - } - } - - //??? Need to work with floating windows... isn't there a toolbox call to find the - // top window intersecting a point is screen coordinates?? -#if 0 - else // will only work for one floating window at the moment... ? - { - WindowPtr frontDocPtr = findFrontNonFloatingWindow(); - WindowPtr frontFloatingPtr = ::FrontWindow(); - - int hitX = cCurrentEvent.where.h; - int hitY = cCurrentEvent.where.v; - - wxFrame* macWxFrame = findMacWxFrame(frontDocPtr); - - if ((frontFloatingPtr != frontDocPtr) & (frontFloatingPtr != NULL)) - { - RgnHandle frontFloatStrRgn = getStructureRegion(frontFloatingPtr); - Rect frontFloatRect = (**frontFloatStrRgn).rgnBBox; - - if ((hitX >= frontFloatRect.left) & - (hitX <= frontFloatRect.right) & - (hitY >= frontFloatRect.top) & - (hitY <= frontFloatRect.bottom)) - { - macWxFrame = findMacWxFrame(frontFloatingPtr); - } - } - } -#endif -} - -void wxApp::doMacKeyDown(void) -{ - long menuResult = 0 ; - short keycode ; - short keychar ; - keychar = short(m_event.message & charCodeMask); - keycode = short(m_event.message & keyCodeMask) >> 8 ; - - // Handle menu accelerators - if ( gSFMacHasAppearance ) - { - menuResult = MenuEvent( &m_event ) ; - if ( HiWord( menuResult ) ) - { - doMacInMenuBar( menuResult ) ; - } - else - { - ControlHandle control ; - - GetKeyboardFocus( FrontNonFloatingWindow() , &control ) ; - if ( control && keychar != 0x07 ) - HandleControlKey( control , keycode , keychar , m_event.modifiers ) ; - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - wxKeyEvent event(wxEVT_CHAR); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_keyCode = macTranslateKey(keychar, m_event.modifiers & (shiftKey|optionKey)); - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } - } - } - } - else - { - if (GetMenuHandle( kwxMacAppleMenuId ) ) - { -// menuResult = MDEF_MenuKey(m_event.message, m_event.modifiers , GetMenuHandle( kwxMacAppleMenuId ) ); - } - else - { - if (m_event.modifiers & cmdKey) - { - menuResult = MenuKey( keychar ) ; - } - } - - if ( HiWord( menuResult ) ) - { - doMacInMenuBar( menuResult ) ; - } - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - wxKeyEvent event(wxEVT_CHAR); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_keyCode = macTranslateKey(keychar, m_event.modifiers & (shiftKey|optionKey)); - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } - } - } -} - -void wxApp::doMacAutoKey(void) -{ - doMacKeyDown(); -} - -void wxApp::doMacKeyUp(void) -{ -} - -void wxApp::doMacActivateEvt(void) -{ - HighlightAndActivateWindow( (WindowPtr) m_event.message , m_event.modifiers & activeFlag ) ; -} - -void wxApp::doMacUpdateEvt(void) -{ - WindowPtr theMacWindow = (WindowPtr)(m_event.message); - ::BeginUpdate(theMacWindow); - - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(theMacWindow); - if (theMacWxFrame) - { -// if (!::EmptyRgn(theMacWindow->visRgn)) // this doesn't work with windowshade -// { - if ( theMacWxFrame->MacSetupPort() ) - { - // Erase update region - // we must do this, because controls add their former rect to the inval - // rgn and the background might not have been correct at that moment - ::EraseRect(&theMacWindow->portRect); - - // Can't use UpdateControls since each control has it's own coordinate system - // ::UpdateControls(theMacWindow, theMacWindow->visRgn); - - ::UpdateControls( theMacWindow , theMacWindow->visRgn ) ; - #if 0 - // Draw the grow box - if (cStyle & wxRESIZE_BORDER) - MacDrawGrowIcon(); - #endif - - wxPaintEvent event; - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - // ::SetThemeWindowBackground( theMacWindow , kThemeActiveDialogBackgroundBrush , false ) ; - ::ClipRect( &theMacWindow->portRect ) ; - ::SetOrigin( 0 , 0 ); - } - else - { - wxASSERT_MSG( false , "unabled to setup window mac port") ; - } - -// } - } - - ::EndUpdate(theMacWindow); -} - -void wxApp::doMacDiskEvt(void) -{ // based on "Programming for System 7" by Gary Little and Tim Swihart - if ((m_event.message >> 16) != noErr) - { - const int kDILeft = 0x0050; // top coord for disk init dialog - const int kDITop = 0x0070; // left coord for disk init dialog - Point mountPoint; - mountPoint.h = kDILeft; - mountPoint.v = kDITop; - int myError = DIBadMount(mountPoint, m_event.message); - } -} - -void wxApp::doMacOsEvt(void) -{ // based on "Programming for System 7" by Gary Little and Tim Swihart - switch ((m_event.message >> 24) & 0x0ff) - { - case suspendResumeMessage: - if (m_event.message & resumeFlag) - doMacResumeEvent(); - else - doMacSuspendEvent(); - break; - case mouseMovedMessage: - doMacMouseMovedMessage(); - break; - } -} - -void wxApp::doMacHighLevelEvent(void) -{ - ::AEProcessAppleEvent(&m_event); // System 7 or higher -} - -void wxApp::doMacResumeEvent(void) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - if (m_event.message & convertClipboardFlag) - ::TEFromScrap(); - - wxActivateEvent event(wxEVT_ACTIVATE, TRUE); - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } -} - -void wxApp::doMacSuspendEvent(void) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - ::ZeroScrap(); - ::TEToScrap(); - - wxActivateEvent event(wxEVT_ACTIVATE, FALSE); - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } -} - -void wxApp::doMacMouseMovedMessage(void) -{ // based on "Programming for System 7" by Gary Little and Tim Swihart - if (m_cursorRgn) - ::DisposeRgn(m_cursorRgn); - m_cursorRgn = ::NewRgn(); - ::SetRectRgn(m_cursorRgn, -32768, -32768, 32766, 32766); -} - -void wxApp::doMacInMenuBar(long menuResult) -{ - int macMenuId = HiWord(menuResult); - int macMenuItemNum = LoWord(menuResult); // counting from 1 - - if (macMenuId == 0) // no menu item selected; - return; - if (macMenuId == 128) - { - if (macMenuItemNum != 1) - { // if not the "About" entry (or the separator) - Str255 daName; - ::GetMenuItemText(GetMenuHandle(128), macMenuItemNum, daName); - (void)::OpenDeskAcc(daName); - ::HiliteMenu(0); - return; - } - } - - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - if ( theMacWxFrame->IsKindOf( CLASSINFO( wxDialog ) ) ) - (( wxDialog *) theMacWxFrame)->MacMenuSelect(m_event, macMenuId, macMenuItemNum); - else if ( theMacWxFrame->IsKindOf( CLASSINFO( wxFrame ) ) ) - (( wxFrame *) theMacWxFrame)->MacMenuSelect(m_event, macMenuId, macMenuItemNum); - } - ::HiliteMenu(0); -} - -void wxApp::doMacInContent(WindowPtr window) -{ - WindowPtr frontWindow = FrontWindow(); - if (window != frontWindow ) - { -// SFSelectWindow( window ) ; - } - else - { - ControlHandle control ; - Point localwhere = m_event.where ; - GrafPtr port ; - SInt16 controlpart ; - - ::GetPort( &port ) ; - ::SetPort( window ) ; - ::GlobalToLocal( &localwhere ) ; - - ::SetPort( port ) ; - - if ( !gSFMacHasAppearance ) - { - controlpart = FindControl( localwhere , window , &control ) ; - } - else - { - control = FindControlUnderMouse( localwhere , window , &controlpart ) ; - } - - if ( control && IsControlActive( control ) ) - { - wxControl* wxc = (wxControl*) GetControlReference( control ) ; - - if ( wxWindow::FindFocus() != wxc && wxc->AcceptsFocus() ) - { - wxc->SetFocus() ; - if ( wxWindow::FindFocus() != wxc ) - control = NULL ; // we were not able to change focus - } - - if ( control ) - { - if ( !gSFMacHasAppearance) - { - controlpart = TrackControl( control , localwhere , NULL ) ; - } - else - { - controlpart = HandleControlClick( control , localwhere , m_event.modifiers , (ControlActionUPP) -1 ) ; - } - - if ( controlpart ) - { - wxControl* wx = (wxControl*) GetControlReference( control ) ; - if ( wx ) - wx->MacHandleControlClick( control , controlpart ) ; - } - } - } - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - doMacContentClick((wxFrame*)theMacWxFrame); // todo : this cast is wrong - } - } - } - -#if 0 - wxFrame* theMacWxFrame = findMacWxFrame(window); - if (theMacWxFrame) - { - WindowPtr MacWindow = findFrontNonFloatingWindow(); - if (window != MacWindow) - { - wxFrame* frontFrame = findMacWxFrame(MacWindow); - if (!frontFrame) wxFatalError("No wxFrame for frontnonfloatingWindow."); - if (!frontFrame->IsModal()) - { - frontFrame->SetFocus(); - doMacContentClick(theMacWxFrame); // jonto - to deal with doc windows behind floaters ? - ::newSelectWindow(window); // WCH : should I be calling some wxMethod? - if (!IsFloating(MacWindow)) - { - KeyMap keyMap; - GetKeys(keyMap); - if (!(keyMap[1] & 0x8000)) theMacWxFrame->ShowAsActive(true); // temporary measure... - } - } // jonto : not sure yet, but let's try this ... - else ::SysBeep(3); - } - else - { - doMacContentClick(theMacWxFrame); - } - } -#endif -} - -void wxApp::doMacContentClick(wxWindow* frame) -{ - m_mouseWindow = frame; - - wxMouseEvent event(wxEVT_LEFT_DOWN); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = FALSE; - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - if ( m_event.modifiers & controlKey ) - { - event.m_rightDown = TRUE; - } - else - { - event.m_leftDown = TRUE; - } -#if 0 - event.m_leftDown = !(m_event.modifiers & btnState); - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; -#endif - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - -// m_mouseWindow->ProcessEvent(event); - m_mouseWindow->MacDispatchMouseEvent(event); - -#if 0 - // RightButton is cmdKey click on the mac platform for one-button mouse - Bool rightButton = cCurrentEvent.modifiers & cmdKey; - // altKey is optionKey on the mac platform: - Bool isAltKey = cCurrentEvent.modifiers & optionKey; - - WXTYPE mouseEventType = rightButton ? wxEVENT_TYPE_RIGHT_DOWN - : wxEVENT_TYPE_LEFT_DOWN; - wxMouseEvent theMouseEvent(mouseEventType); - theMouseEvent.leftDown = !rightButton; - theMouseEvent.middleDown = FALSE; - theMouseEvent.rightDown = rightButton; - theMouseEvent.shiftDown = cCurrentEvent.modifiers & shiftKey; - theMouseEvent.controlDown = cCurrentEvent.modifiers & controlKey; - theMouseEvent.altDown = isAltKey; - theMouseEvent.metaDown = FALSE; // mflatt - theMouseEvent.timeStamp = cCurrentEvent.when; // mflatt - - int hitX = cCurrentEvent.where.h; // screen window c.s. - int hitY = cCurrentEvent.where.v; // screen window c.s. - - frame->ScreenToWindow(&hitX, &hitY); -// frameParentArea->ScreenToArea(&hitX, &hitY); // tx coords ? - theMouseEvent.x = hitX; // frame parent area c.s. - theMouseEvent.y = hitY; // frame parent area c.s. - - frame->SeekMouseEventArea(theMouseEvent); -#endif -} - -void wxApp::doMacInDrag(WindowPtr window) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - // should be desktop, not screen - Rect dragBoundsRect = qd.screenBits.bounds; // can't move to a different screen -//xxx ::InsetRect(&dragBoundsRect, 4, ::GetMBarHeight() + 4); // This is not really necessary - Rect oldPos = (**(((WindowPeek)window)->strucRgn)).rgnBBox; - ::DragReferencedWindow(window, m_event.where, &dragBoundsRect); // jonto - #if 0 - theMacWxFrame->m_x += (**(((WindowPeek)window)->strucRgn)).rgnBBox.left - oldPos.left; - theMacWxFrame->m_y += (**(((WindowPeek)window)->strucRgn)).rgnBBox.top - oldPos.top; - #endif - Move( (**(((WindowPeek)window)->strucRgn)).rgnBBox.left , (**(((WindowPeek)window)->strucRgn)).rgnBBox.top ) ; -#if 0 - theMacWxFrame->wxMacRecalcNewSize(); // Actually, recalc new position only -#endif - } - -#if 0 -// if (window != ::FrontWindow()) - if (window != findFrontNonFloatingWindow()) - { -// wxFrame* frontFrame = findMacWxFrame(::FrontWindow()); - wxFrame* frontFrame = findMacWxFrame(findFrontNonFloatingWindow()); - if (!frontFrame) wxFatalError("No wxFrame for frontWindow."); - if (frontFrame->IsModal()) - { - ::SysBeep(3); - return; - } - } - - wxFrame* theMacWxFrame = findMacWxFrame(window); - if (theMacWxFrame) - { - Rect dragBoundsRect = qd.screenBits.bounds; // can't move to a different screen - ::InsetRect(&dragBoundsRect, 4, ::GetMBarHeight() + 4); // This is not really necessary - newDragWindow(window, cCurrentEvent.where, &dragBoundsRect); // jonto - theMacWxFrame->wxMacRecalcNewSize(); // Actually, recalc new position only - if (!IsFloating(window)) - { - theMacWxFrame->ShowAsActive(true); // temporary measure... - } - } -#endif -} - -void wxApp::doMacInGrow(WindowPtr window) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - Rect growSizeRect; // WCH: growSizeRect should be a member of wxFrame class - growSizeRect.top = 1; // minimum window height - growSizeRect.left = 1; // minimum window width - growSizeRect.bottom = qd.screenBits.bounds.bottom - qd.screenBits.bounds.top; - growSizeRect.right = qd.screenBits.bounds.right - qd.screenBits.bounds.left; - long windSize = ::GrowWindow(window, m_event.where, &growSizeRect); - if (windSize != 0) - { - int nWidth = LoWord(windSize); - int nHeight = HiWord(windSize); - int oWidth, oHeight; - theMacWxFrame->GetSize(&oWidth, &oHeight); - if (nWidth == 0) nWidth = oWidth; - if (nHeight == 0) nHeight = oHeight; - theMacWxFrame->SetSize( -1, -1, nWidth, nHeight, wxSIZE_USE_EXISTING); - } - } -} - -void wxApp::doMacInGoAway(WindowPtr window) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - if (TrackGoAway(window, m_event.where)) - { - // TODO: Stefan, I think you need to send a wxCloseEvent to the window - // here. The OnCloseWindow handler will take care of delete the frame - // if it wishes to (there should be a default wxFrame::OnCloseWindow - // that destroys the frame). - if (theMacWxFrame->OnClose()) { -#if WXGARBAGE_COLLECTION_ON - theMacWxFrame->Show(FALSE); -#else - delete theMacWxFrame; -#endif - } - } - } -} - -void wxApp::doMacInZoom(WindowPtr window, short windowPart) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - if (TrackBox(window, m_event.where, windowPart)) - { -#if 0 - theMacWxFrame->Maximize(windowPart == inZoomOut); -#endif - } - } -} - -long wxApp::macTranslateKey(char key, int mods) -{ - static Handle transH = NULL; - static unsigned long transState = 0; - static Handle ScriptH = NULL; - static short region_code = 1; - - if (!ScriptH) { // tom: don't guess the regioncode!!!! - struct ItlbRecord * r; - ScriptH = GetResource('itlb',0); - if (ScriptH) { - HLock(ScriptH); - r = (ItlbRecord*)*ScriptH; - region_code = r->itlbKeys; - HUnlock(ScriptH); - } - } - - switch (key) { - case 0x7e: - case 0x3e: - key = WXK_UP; - break; - case 0x7d: - case 0x3d: - key = WXK_DOWN; - break; - case 0x7b: - case 0x3b: - key = WXK_LEFT; - break; - case 0x7c: - case 0x3c: - key = WXK_RIGHT; - break; - case 0x24: - case 0x4c: - key = WXK_RETURN; - break; - case 0x30: - key = WXK_TAB; - break; - case 0x33: - key = WXK_BACK; - break; - case 0x75: - key = WXK_DELETE; - break; - case 0x73: - key = WXK_HOME; - break; - case 0x77: - key = WXK_END; - break; - case 0x74: - key = WXK_PAGEUP; - break; - case 0x79: - key = WXK_PAGEDOWN; - break; - default: - if (!transH) { - transH = GetIndResource('KCHR', 1); - HNoPurge(transH); - } -#if 0 //Tom replaces - if (transH) { - // Only let shift & option modify the key: - HLock(transH); - key = KeyTranslate(*transH, (key & 0x7F) | mods, &transState) & charCodeMask; - HUnlock(transH); -#else - if (0) { // tom fettig@dfki.uni-sb.de - // why if(0): - // code is not correct, see inside Macintosh: Text 1-87 - // and 'itlk'-resource!! - // and it is not necessary, as the translated char is in - // cCurrrentEvent.message!! - // Only let shift & option modify the key: - HLock(transH); - key = KeyTranslate(*transH, (key & 0x7F) | mods, &transState) & charCodeMask; - HUnlock(transH); -#endif - } - } // end switch - - return key; -} - -void -wxApp::macAdjustCursor() -{ - if (m_event.what != kHighLevelEvent) - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - if (!theMacWxFrame->MacAdjustCursor(m_event.where)) - ::SetCursor(&(qd.arrow)); - } - } -} -*/ diff --git a/src/mac/apprsrc.r b/src/mac/apprsrc.r deleted file mode 100644 index 6a9530632a..0000000000 --- a/src/mac/apprsrc.r +++ /dev/null @@ -1,627 +0,0 @@ -#include -#include "apprsrc.h" - -resource 'STR#' ( 128 , "Simple Alert Messages" ) -{ - { - "This application needs at least a MacPlus" , - "This application needs more memory" , - "This application is out of memory" , - "This application needs at least System 7" , - "This application needs Appearance extension (built in with System 8) - this restriction will be relieved in the final release" - } -} ; - -data 'alis' (128, "Libs alias") { - $"0000 0000 00CE 0002 0001 0A58 5858 5858" - $"5858 5858 5800 0000 0000 0000 0000 0000" - $"0000 0000 0000 AB9F 536B 4244 0000 0002" - $"EE7C 044C 6962 7300 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0003 1F71 AE82 7707 006A 0016 026C" - $"01A3 0001 0001 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0009 5858 5858 5858" - $"5858 5800 0001 0004 0002 EE7C 0002 0019" - $"5858 5858 5858 5858 5858 5858 5858 5858" - $"5858 5858 5858 5858 5800 FFFF 0000" -}; - -data 'CSOR' (0) { - $"1441 6476 616E 6365 6420 436F 6E63 6570" - $"7473 2041 47" -}; - -resource 'FREF' (128) { - 'APPL', - 0, - "" -}; - -resource 'FREF' (129) { - 'shlb', - 1, - "" -}; - -resource 'FREF' (130) { - 'PLPW', - 2, - "" -}; - -resource 'icl4' (128) { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0666 6666 0000 0000 0000 0006 6666 6660" - $"0666 6666 0000 0000 0000 0006 6666 6660" - $"0666 6660 0000 0000 0000 0000 6666 6660" - $"0666 6660 0000 0006 6000 0000 6666 6660" - $"0666 6660 0000 0666 6600 0000 6666 6660" - $"0666 6660 0000 6606 6600 0000 6666 6660" - $"0666 6660 0000 6606 0000 0000 6666 6660" - $"0666 6600 0000 0666 6000 0000 0666 6660" - $"0666 6600 0000 0006 6600 0000 0666 6660" - $"0666 6600 0000 0006 0060 0000 0666 6660" - $"0666 6660 0000 0006 6600 0000 6666 6660" - $"0666 6660 0000 0666 6000 0000 6666 6660" - $"0666 6666 0000 6606 0000 0006 6666 6660" - $"0666 6666 6000 6606 0000 0066 6666 6660" - $"0666 6666 6000 0666 6600 0066 6666 6660" - $"0666 6666 6600 0006 0600 0666 6666 6660" - $"0666 6666 6600 0006 0000 0666 6666 6660" - $"0666 6666 6660 0006 0000 6666 6666 6660" - $"0666 6666 6666 0006 0006 6666 6666 6660" - $"0666 6666 6666 0006 0006 6666 6666 6660" - $"0666 6666 6666 6006 0066 6666 6666 6660" - $"0666 6666 6666 6006 0066 6666 6666 6660" - $"0666 6666 6666 6006 0066 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6660 6666 6666 6666 6660" - $"0666 6666 6666 6666 6666 6666 6666 6660" - $"0666 6666 6666 6666 6666 6666 6666 6660" - $"0666 6666 6666 6666 6666 6666 6666 6660" -}; - -resource 'icl4' (129, "Editor icon-generic ") { - $"0FFF FFFF FFFF FFFF FFFF FFFF FFFF 0000" - $"F000 0000 0000 0000 0000 0000 000C F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCF FFFF FFFF FFFF FFFF CCCC F000" - $"F0CC CCFD DDDD DDDD DDDD DDDD FCCC F000" - $"F0CC CCFD DDDD DDDF FDDD DDDD FCCC F000" - $"F0CC CFDD DDDD DFFF FFDD DDDD DFCC F000" - $"F0FC CFDD DDDD FFCF FFDD DDDD DFCC F000" - $"FF0F 0FDD DDDD FFCF DDDD DDDD DFCC F0F0" - $"F00F 0FFD DDDD DFFF FDDD DDDD FFCC FFCF" - $"000F 0CFD DDDD DDDF FFDD DDDD FCCC F0CF" - $"000F 0CCF DDDD DDDF DDDD DDDF CCCC CCCF" - $"000F 0CCF FDDD DDDF FFDD DDFC CCCC CCCF" - $"000F 0CCC FDDD DFFF FDDD DDFC CCCC CCCF" - $"000F 0CCC CFDD FFCF DDDD DFCC CCCC CCCF" - $"000F 0CCC CFDD FFCF DDDD DFCC CCCC CCCF" - $"000F 0CCC CCFD DFFF FFDD FCCC CCCC CCCF" - $"000F 0CCC CCFF DDDF DFDF CCCC CCCC CCCF" - $"000F 0CCC CCCF DDDF DDDF CCCC CCCC CCCF" - $"000F 0CCC CCCC FDDF DDFC CCCC CCCC FCCF" - $"F00F 0CCC CCCC FDDF DDFC CCCC CCCC FFCF" - $"FF0F 0CCC CCCC FDDF DDFC CCCC CCCC F0F0" - $"F0F0 CCCC CCCC CFDF DFCC CCCC CCCC F000" - $"F00C CCCC CCCC CFDF DFCC CCCC CCCC F000" - $"F0CC CCCC CCCC CFDF DFCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCFF FCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"FCCC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"0FFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -resource 'icl4' (130, "Editor icon-generic ") { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"000F FFFF FFFF FFFF FFFF FFFF FFFF F000" - $"000F 0000 0000 0000 0000 0000 0000 F000" - $"000F 0CCC CCCC CCCC CCCC CCCC CCCC F000" - $"FFFF DDDD DDDD DDDD DDDD DDDD DDDD FFFF" - $"F00D 0000 0000 0000 0000 0000 0000 D00F" - $"F0CD 0CFD DDDD DDDD DDDD DDDD FCCC DCCF" - $"F0CD 0CFD DDDD DDDF FDDD DDDD FCCC DCCF" - $"F0CD 0FDD DDDD DFFF FFDD DDDD DFCC DCCF" - $"F0CD 0FDD DDDD FFCF FFDD DDDD DFCC DCCF" - $"F0CD 0FDD DDDD FFCF DDDD DDDD DFCC DCCF" - $"F0CD 0FFD DDDD DFFF FDDD DDDD FFCC DCCF" - $"F0CD 0CFD DDDD DDDF FFDD DDDD FCCC DCCF" - $"F0CD 0CCF DDDD DDDF DDDD DDDF CCCC DCCF" - $"F0CD 0CCF FDDD DDDF FFDD DDFC CCCC DCCF" - $"F0CD 0CCC FDDD DFFF FDDD DDFC CCCC DCCF" - $"F0CD 0CCC CFDD FFCF DDDD DFCC CCCC DCCF" - $"F0CD 0CCC CFDD FFCF DDDD DFCC CCCC DCCF" - $"F0CD 0CCC CCFD DFFF FFDD FCCC CCCC DCCF" - $"F0CD 0CCC CCFF DDDF DFDF CCCC CCCC DCCF" - $"F0CD 0CCC CCCF DDDF DDDF CCCC CCCC DCCF" - $"F0CD 0CCC CCCC FDDF DDFC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC FDDF DDFC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC FDDF DDFC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC CFDF DFCC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC CFDF DFCC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC CFDF DFCC CCCC CCCC DCCF" - $"F0CD DDDD DDDD DDFF FDDD DDDD DDDD FFFF" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF F0" -}; - -resource 'icl8' (128) { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"00AB ABAB ABAB ABAB 0000 0000 0000 0000" - $"0000 0000 0000 00AB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB 0000 0000 0000 0000" - $"0000 0000 0000 00AB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 0000 0000" - $"0000 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 0000 00AB" - $"AB00 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 00AB ABAB" - $"ABAB 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 ABAB 00AB" - $"ABAB 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 ABAB 00AB" - $"0000 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB 0000 0000 0000 00AB ABAB" - $"AB00 0000 0000 0000 00AB ABAB ABAB AB00" - $"00AB ABAB ABAB 0000 0000 0000 0000 00AB" - $"ABAB 0000 0000 0000 00AB ABAB ABAB AB00" - $"00AB ABAB ABAB 0000 0000 0000 0000 00AB" - $"0000 AB00 0000 0000 00AB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 0000 00AB" - $"ABAB 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 00AB ABAB" - $"AB00 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB 0000 0000 ABAB 00AB" - $"0000 0000 0000 00AB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB AB00 0000 ABAB 00AB" - $"0000 0000 0000 ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB AB00 0000 00AB ABAB" - $"ABAB 0000 0000 ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB 0000 0000 00AB" - $"00AB 0000 00AB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB 0000 0000 00AB" - $"0000 0000 00AB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB AB00 0000 00AB" - $"0000 0000 ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB 0000 00AB" - $"0000 00AB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB 0000 00AB" - $"0000 00AB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB AB00 00AB" - $"0000 ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB AB00 00AB" - $"0000 ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB AB00 00AB" - $"0000 ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB ABAB" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB ABAB" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB ABAB" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB" -}; - -resource 'icl8' (130, "Editor icon-generic ") { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 00FF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FF00 0000" - $"0000 00FF 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 00F5 FF00 0000" - $"0000 00FF F5F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F8 FF00 0000" - $"FFFF FFFF F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" - $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 FFFF FFFF" - $"FF00 F5F9 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 F9F5 00FF" - $"FF00 F6F9 002B FFF9 F9F9 F9F9 F9F9 F9F9" - $"F9F9 F9F9 F9F9 F9F9 FF2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFF9 F9F9 F9F9 F9F9 FF2B 2BF8 F92B F8FF" - $"FF00 F6F9 00FF F9F9 F9F9 F9F9 F9FF FFFF" - $"FFFF F9F9 F9F9 F9F9 F9FF 2BF8 F92B F8FF" - $"FF00 F6F9 00FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"FFFF F9F9 F9F9 F9F9 F9FF 2BF8 F92B F8FF" - $"FF00 F6F9 00FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9F9 F9F9 F9FF 2BF8 F92B F8FF" - $"FF00 F6F9 00FF FFF9 F9F9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 F9F9 FFFF 2BF8 F92B F8FF" - $"FF00 F6F9 002B FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 F9F9 FF2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2BFF F9F9 F9F9 F9F9 F9FF" - $"F9F9 F9F9 F9F9 F9FF 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2BFF FFF9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 FF2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B FFF9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 FF2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2BFF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2BFF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B FFF9 F9FF FFFF" - $"FFFF F9F9 FF2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B FFFF F9F9 F9FF" - $"F9FF F9FF 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2BFF F9F9 F9FF" - $"F9F9 F9FF 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B FFF9 F9FF" - $"F9F9 FF2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B FFF9 F9FF" - $"F9F9 FF2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B FFF9 F9FF" - $"F9F9 FF2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B 2BFF F9FF" - $"F9FF 2B2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B 2BFF F9FF" - $"F9FF 2B2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 00F8 F82B 2B2B 2B2B 2BFF F9FF" - $"F9FF 2B2B 2B2B 2B2B F8F8 F8F8 F9F7 F8FF" - $"FF00 F6F9 F9F9 F9F9 F9F9 F9F9 F9F9 FFFF" - $"FFF9 F9F9 F9F9 F9F9 F9F9 F9F9 FFFF FFFF" - $"FF00 F62B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B" - $"2B2B 2B2B 2B2B 2B2B 2B2B 2BF8 FF00 0000" - $"FFF5 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8" - $"F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 FF00 0000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FF" -}; - -resource 'icl8' (129) { - $"00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000" - $"FF00 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 00F6 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6FF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F62B FFF9 F9F9 F9F9 F9F9 F9F9" - $"F9F9 F9F9 F9F9 F9F9 FF2B F6F7 FF00 0000" - $"FF00 F6F6 F62B FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFF9 F9F9 F9F9 F9F9 FF2B F6F7 FF00 0000" - $"FF00 F7F6 F6FF F9F9 F9F9 F9F9 F9FF FFFF" - $"FFFF F9F9 F9F9 F9F9 F9FF F6F7 FF00 0000" - $"FF00 FFF7 F6FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"FFFF F9F9 F9F9 F9F9 F9FF F6F7 FF00 0000" - $"FFFF 00FF 00FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9F9 F9F9 F9FF F6F7 FF00 FF00" - $"FF00 00FF 00FF FFF9 F9F9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 F9F9 FFFF F6F7 FFFF F7FF" - $"0000 00FF 00F6 FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 F9F9 FFF6 F6F7 FF00 F7FF" - $"0000 00FF 00F6 F6FF F9F9 F9F9 F9F9 F9FF" - $"F9F9 F9F9 F9F9 F9FF F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6FF FFF9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 FFF6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 FFF9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 FFF6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6FF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6FF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 FFF9 F9FF FFFF" - $"FFFF F9F9 FFF6 F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 FFFF F9F9 F9FF" - $"F9FF F9FF F6F6 F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 F6FF F9F9 F9FF" - $"F9F9 F9FF F6F6 F6F6 F6F6 F6F6 F7F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 F6F6 FFF9 F9FF" - $"F9F9 FFF6 F6F6 F6F6 F6F6 F6F7 FFF7 F7FF" - $"FF00 00FF 00F6 F6F6 F6F6 F6F6 FFF9 F9FF" - $"F9F9 FFF6 F6F6 F6F6 F6F6 F6F7 FFFF F7FF" - $"FFFF 00FF 00F6 F6F6 F6F6 F6F6 FFF9 F9FF" - $"F9F9 FFF6 F6F6 F6F6 F6F6 F6F7 FF00 FF00" - $"FF00 FF00 F6F6 F6F6 F6F6 F6F6 F6FF F9FF" - $"F9FF F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 00F6 F6F6 F6F6 F6F6 F6F6 F6FF F9FF" - $"F9FF F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6FF F9FF" - $"F9FF F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 FFFF" - $"FFF6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FFF6 F7F7 F7F7 F7F7 F7F7 F7F7 F7F7 F7F7" - $"F7F7 F7F7 F7F7 F7F7 F7F7 F7F7 FF00 0000" - $"00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -resource 'icm#' (129) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'icm#' (128) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'icm#' (130) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'icm4' (129) { - $"" -}; - -resource 'icm4' (128) { - $"" -}; - -resource 'icm4' (130) { - $"" -}; - -resource 'icm8' (129) { - $"" -}; - -resource 'icm8' (128) { - $"" -}; - -resource 'icm8' (130) { - $"" -}; - -resource 'ICN#' (128) { - { /* array: 2 elements */ - /* [1] */ - $"0000 0000 7F00 01FE 7F00 01FE 7E00 00FE" - $"7E01 80FE 7E07 C0FE 7E0D C0FE 7E0D 00FE" - $"7C07 807E 7C01 C07E 7C01 207E 7E01 C0FE" - $"7E07 80FE 7F0D 01FE 7F8D 03FE 7F87 C3FE" - $"7FC1 47FE 7FC1 07FE 7FE1 0FFE 7FF1 1FFE" - $"7FF1 1FFE 7FF9 3FFE 7FF9 3FFE 7FF9 3FFE" - $"7FFD 7FFE 7FFD 7FFE 7FFD 7FFE 7FFD 7FFE" - $"7FFE FFFE 7FFF FFFE 7FFF FFFE 7FFF FFFE", - /* [2] */ - $"0000 0000 7F00 01FE 7F00 01FE 7E00 00FE" - $"7E01 80FE 7E07 C0FE 7E0D C0FE 7E0D 00FE" - $"7C07 807E 7C01 C07E 7C01 207E 7E01 C0FE" - $"7E07 80FE 7F0D 01FE 7F8D 03FE 7F87 C3FE" - $"7FC1 47FE 7FC1 07FE 7FE1 0FFE 7FF1 1FFE" - $"7FF1 1FFE 7FF9 3FFE 7FF9 3FFE 7FF9 3FFE" - $"7FFD 7FFE 7FFD 7FFE 7FFD 7FFE 7FFD 7FFE" - $"7FFE FFFE 7FFF FFFE 7FFF FFFE 7FFF FFFE" - } -}; - -resource 'ICN#' (129, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"7FFF FFF0 8000 0008 8000 0008 8000 0008" - $"82AA AA88 8200 0088 8200 0088 8201 8088" - $"A407 C048 D40D C04A 940D 004D 1607 80C9" - $"1201 C081 1101 0101 1181 C201 1087 8201" - $"104D 0401 104D 0401 1027 C801 1031 5001" - $"1011 1009 9009 200D D009 200A A009 2008" - $"8005 4008 8005 4008 8005 4008 8003 8008" - $"8000 0008 8000 0008 8000 0008 7FFF FFF0", - /* [2] */ - $"0000 0000 1FFF FFF8 1FFF FFF8 1FFF FFF8" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFF8 FFFF FFF8 FFFF FFF8" - } -}; - -resource 'ICN#' (130, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"0000 0000 1FFF FFF8 1000 0008 1000 0008" - $"FAAA AAAF 9200 00A1 8200 0089 9201 8081" - $"8407 C049 940D C041 840D 0049 9607 80C1" - $"8201 C089 9101 0101 8181 C209 9087 8201" - $"804D 0409 904D 0401 8027 C809 9031 5001" - $"8011 1009 9009 2001 8009 2009 9009 2001" - $"8005 4009 9005 4001 8005 4009 9557 D55F" - $"8000 0008 8000 0008 FFFF FFF8", - /* [2] */ - $"0000 0000 1FFF FFF8 1FFF FFF8 1FFF FFF8" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFF8 FFFF FFF8 FFFF FFF8" - } -}; - -resource 'ics#' (129, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"3FFC 2004 E007 8001 8001 8001 8001 8001" - $"8001 8001 8001 8001 8001 8007 8004 FFFC", - /* [2] */ - $"3FFC 3FFC FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFC FFFC" - } -}; - -resource 'ics#' (128) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'ics#' (130, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"3FFC 2004 E007 8001 8001 8001 8001 8001" - $"8001 8001 8001 8001 8001 8007 8004 FFFC", - /* [2] */ - $"3FFC 3FFC FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFC FFFC" - } -}; - -resource 'ics4' (129, "Editor icon-generic ") { - $"00FF FFFF FFFF FF00 00F0 0000 0000 CF00" - $"FFFD DDDD DDDD DFFF F0D0 0000 0000 CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0DC CCCC CCCC CDCF F0DD DDDD DDDD DFFF" - $"FCCC CCCC CCCC CF00 FFFF FFFF FFFF FF" -}; - -resource 'ics4' (128) { - $"" -}; - -resource 'ics4' (130, "Editor icon-generic ") { - $"00FF FFFF FFFF FF00 00F0 0000 0000 CF00" - $"FFFD DDDD DDDD DFFF F0D0 0000 0000 CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0DC CCCC CCCC CDCF F0DD DDDD DDDD DFFF" - $"FCCC CCCC CCCC CF00 FFFF FFFF FFFF FF" -}; - -resource 'ics8' (129, "Editor icon-generic ") { - $"0000 FFFF FFFF FFFF FFFF FFFF FFFF 0000" - $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F6FF 0000" - $"FFFF FFF9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF5 F9F5 F5F5 F5F5 F5F5 F5F5 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F92B 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF6 F8F8 F8F8 F8F8 F8F8 F8F8 F8FF 0000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -resource 'ics8' (128) { - $"" -}; - -resource 'ics8' (130, "Editor icon-generic ") { - $"0000 FFFF FFFF FFFF FFFF FFFF FFFF 0000" - $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F6FF 0000" - $"FFFF FFF9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF5 F9F5 F5F5 F5F5 F5F5 F5F5 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F92B 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF6 F8F8 F8F8 F8F8 F8F8 F8F8 F8FF 0000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'iSNP' (129) { - $"0000" /* .. */ -}; - -data 'iSNP' (128) { - $"0000" /* .. */ -}; - -data 'iSNP' (130) { - $"0000" /* .. */ -}; - -resource 'BNDL' (128) { - 'CSOR', - 0, - { /* array TypeArray: 2 elements */ - /* [1] */ - 'ICN#', - { /* array IDArray: 3 elements */ - /* [1] */ - 0, 128, - /* [2] */ - 1, 129, - /* [3] */ - 2, 130 - }, - /* [2] */ - 'FREF', - { /* array IDArray: 3 elements */ - /* [1] */ - 0, 128, - /* [2] */ - 1, 129, - /* [3] */ - 2, 130 - } - } -}; - -resource 'MENU' (1, preload) -{ - 1, textMenuProc, 0b11111111111111111111111111111110 , enabled, apple , - { - "AboutÉ" , noicon, nokey,nomark,plain , - "-" , noicon, nokey,nomark,plain - } -} ; - -resource 'MBAR' (1,preload) -{ - { 1 } ; -} ; \ No newline at end of file diff --git a/src/mac/bitmap.cpp b/src/mac/bitmap.cpp deleted file mode 100644 index 1e6255f551..0000000000 --- a/src/mac/bitmap.cpp +++ /dev/null @@ -1,430 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: wxBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/palette.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -wxBitmapRefData::wxBitmapRefData() -{ - m_ok = FALSE; - m_width = 0; - m_height = 0; - m_depth = 0; - m_quality = 0; - m_numColors = 0; - m_bitmapMask = NULL; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - /* - * TODO: delete the bitmap data here. - */ - - if (m_bitmapMask) - delete m_bitmapMask; - m_bitmapMask = NULL; -} - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap() -{ - m_refData = NULL; - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -wxBitmap::wxBitmap(const char bits[], int the_width, int the_height, int no_bits) -{ - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = the_width ; - M_BITMAPDATA->m_height = the_height ; - M_BITMAPDATA->m_depth = no_bits ; - M_BITMAPDATA->m_numColors = 0; - - /* TODO: create the bitmap from data */ - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(int w, int h, int d) -{ - (void)Create(w, h, d); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth) -{ - (void) Create(data, type, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxString& filename, long type) -{ - LoadFile(filename, (int)type); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -/* TODO: maybe allow creation from XPM -// Create from data -wxBitmap::wxBitmap(const char **data) -{ - (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); -} -*/ - -bool wxBitmap::Create(int w, int h, int d) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = d; - - /* TODO: create new bitmap */ - - return M_BITMAPDATA->m_ok; -} - -bool wxBitmap::LoadFile(const wxString& filename, long type) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->LoadFile(this, filename, type, -1, -1); -} - -bool wxBitmap::Create(void *data, long type, int width, int height, int depth) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->Create(this, data, type, width, height, depth); -} - -bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *palette) -{ - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->SaveFile(this, filename, type, palette); -} - -void wxBitmap::SetWidth(int w) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; -} - -void wxBitmap::SetHeight(int h) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_height = h; -} - -void wxBitmap::SetDepth(int d) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_depth = d; -} - -void wxBitmap::SetQuality(int q) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_quality = q; -} - -void wxBitmap::SetOk(bool isOk) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_ok = isOk; -} - -void wxBitmap::SetPalette(const wxPalette& palette) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapPalette = palette ; -} - -void wxBitmap::SetMask(wxMask *mask) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapMask = mask ; -} - -void wxBitmap::AddHandler(wxBitmapHandler *handler) -{ - sm_handlers.Append(handler); -} - -void wxBitmap::InsertHandler(wxBitmapHandler *handler) -{ - sm_handlers.Insert(handler); -} - -bool wxBitmap::RemoveHandler(const wxString& name) -{ - wxBitmapHandler *handler = FindHandler(name); - if ( handler ) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& name) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetName() == name ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& extension, long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetExtension() == extension && - (bitmapType == -1 || handler->GetType() == bitmapType) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if (handler->GetType() == bitmapType) - return handler; - node = node->Next(); - } - return NULL; -} - -/* - * wxMask - */ - -wxMask::wxMask() -{ -/* TODO - m_maskBitmap = 0; -*/ -} - -// Construct a mask from a bitmap and a colour indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour) -{ -/* TODO - m_maskBitmap = 0; -*/ - Create(bitmap, colour); -} - -// Construct a mask from a bitmap and a palette index indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap, paletteIndex); -} - -// Construct a mask from a mono bitmap (copies the bitmap). -wxMask::wxMask(const wxBitmap& bitmap) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap); -} - -wxMask::~wxMask() -{ -// TODO: delete mask bitmap -} - -// Create a mask from a mono bitmap (copies the bitmap). -bool wxMask::Create(const wxBitmap& bitmap) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a palette index indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a colour indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) -{ -// TODO - return FALSE; -} - -/* - * wxBitmapHandler - */ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) - -bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth) -{ - return FALSE; -} - -bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long type, - int desiredWidth, int desiredHeight) -{ - return FALSE; -} - -bool wxBitmapHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette) -{ - return FALSE; -} - -/* - * Standard handlers - */ - -/* TODO: bitmap handlers, a bit like this: -class WXDLLEXPORT wxBMPResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPResourceHandler) -public: - inline wxBMPResourceHandler() - { - m_name = "Windows bitmap resource"; - m_extension = ""; - m_type = wxBITMAP_TYPE_BMP_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); -}; -IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler) -*/ - -void wxBitmap::CleanUpHandlers() -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -void wxBitmap::InitStandardHandlers() -{ -/* TODO: initialize all standard bitmap or derive class handlers here. - AddHandler(new wxBMPResourceHandler); - AddHandler(new wxBMPFileHandler); - AddHandler(new wxXPMFileHandler); - AddHandler(new wxXPMDataHandler); - AddHandler(new wxICOResourceHandler); - AddHandler(new wxICOFileHandler); -*/ -} diff --git a/src/mac/bmpbuttn.cpp b/src/mac/bmpbuttn.cpp deleted file mode 100644 index 169f0d557a..0000000000 --- a/src/mac/bmpbuttn.cpp +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: wxBitmapButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) -#endif - -bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_buttonBitmap = bitmap; - SetName(name); - SetValidator(validator); - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - m_windowStyle = style; - m_marginX = 0; - m_marginY = 0; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - if ( width == -1 && bitmap.Ok()) - width = bitmap.GetWidth() + 2*m_marginX; - - if ( height == -1 && bitmap.Ok()) - height = bitmap.GetHeight() + 2*m_marginY; - - /* TODO: create bitmap button - */ - - return FALSE; -} - -void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) -{ - m_buttonBitmap = bitmap; -} - diff --git a/src/mac/brush.cpp b/src/mac/brush.cpp deleted file mode 100644 index 4f28e92f53..0000000000 --- a/src/mac/brush.cpp +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: wxBrush -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/brush.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif - -wxBrushRefData::wxBrushRefData() -{ - m_style = wxSOLID; -// TODO: null data -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -/* TODO: null data - m_hBrush = 0; -*/ -} - -wxBrushRefData::~wxBrushRefData() -{ -// TODO: delete data -} - -// Brushes -wxBrush::wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::~wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->RemoveBrush(this); -} - -wxBrush::wxBrush(const wxColour& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_stipple = stipple; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -void wxBrush::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxBrush::SetColour(const wxColour& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_BRUSHDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxBrush::SetStyle(int Style) -{ - Unshare(); - - M_BRUSHDATA->m_style = Style; - - RealizeResource(); -} - -void wxBrush::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_BRUSHDATA->m_stipple = Stipple; - - RealizeResource(); -} - -bool wxBrush::RealizeResource() -{ -// TODO: create the brush - return FALSE; -} - diff --git a/src/mac/button.cpp b/src/mac/button.cpp deleted file mode 100644 index befd0d7156..0000000000 --- a/src/mac/button.cpp +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: wxButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -// Button - -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - parent->AddChild((wxButton *)this); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create button - - return FALSE; -} - -void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxButton::SetDefault() -{ - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - parent->SetDefaultItem(this); - - // TODO: make button the default -} - -wxString wxButton::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxButton::Command (wxCommandEvent & event) -{ - ProcessCommand (event); -} - diff --git a/src/mac/carbon/accel.cpp b/src/mac/carbon/accel.cpp deleted file mode 100644 index b0b8734d55..0000000000 --- a/src/mac/carbon/accel.cpp +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: wxAcceleratorTable -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -#include "wx/setup.h" -#include "wx/accel.h" -#include "wx/string.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject) -#endif - -class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData -{ - friend class WXDLLEXPORT wxAcceleratorTable; -public: - wxAcceleratorRefData(); - ~wxAcceleratorRefData(); - -/* TODO: implementation - inline HACCEL GetHACCEL() const { return m_hAccel; } -protected: - HACCEL m_hAccel; -*/ -}; - -#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData) - -wxAcceleratorRefData::wxAcceleratorRefData() -{ - // TODO -/* - HACCEL m_hAccel; -*/ -} - -wxAcceleratorRefData::~wxAcceleratorRefData() -{ -/* - if (m_hAccel) - { - DestroyAcceleratorTable((HACCEL) m_hAccel); - } - m_hAccel = 0 ; -*/ -} - -wxAcceleratorTable::wxAcceleratorTable() -{ - m_refData = NULL; -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ -} - -// Load from .rc resource -wxAcceleratorTable::wxAcceleratorTable(const wxString& resource) -{ - m_refData = new wxAcceleratorRefData; - -/* TODO: load acelerator from resource, if appropriate for your platform - M_ACCELDATA->m_hAccel = hAccel; - M_ACCELDATA->m_ok = (hAccel != 0); -*/ -} - -// Create from an array -wxAcceleratorTable::wxAcceleratorTable(int n, wxAcceleratorEntry entries[]) -{ - m_refData = new wxAcceleratorRefData; - -/* TODO: create table from entries - */ -} - -bool wxAcceleratorTable::Ok() const -{ - // TODO - return FALSE; -} - diff --git a/src/mac/carbon/app.cpp b/src/mac/carbon/app.cpp deleted file mode 100644 index 3061f99aea..0000000000 --- a/src/mac/carbon/app.cpp +++ /dev/null @@ -1,1405 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: wxApp -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "app.h" -#endif - -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/utils.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/palette.h" -#include "wx/dc.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/log.h" -#include "wx/module.h" -#include "wx/memory.h" - -#if wxUSE_WX_RESOURCES -#include "wx/resource.h" -#endif - -#include - -// mac - -#include "apprsrc.h" - -extern char *wxBuffer; -extern wxList wxPendingDelete; - -wxApp *wxTheApp = NULL; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() -#endif - -long wxApp::sm_lastMessageTime = 0; - -const short kMacMinHeap = (29 * 1024) ; -// platform specific static variables - -bool gMacHasAppearance = false ; -long gMacAppearanceVersion = 0 ; -RgnHandle gMacCursorRgn = NULL ; - - -bool wxApp::Initialize() -{ - int error = 0 ; - - // Mac-specific - long total,contig; - - // init all managers - - ::InitGraf(&qd.thePort); - ::InitFonts(); - ::InitWindows(); - ::InitMenus(); - ::TEInit(); - ::InitDialogs(0L); - ::InitCursor(); - CursHandle aCursHandle = ::GetCursor(watchCursor); // Watch should be in system - if (aCursHandle) - ::SetCursor(*aCursHandle); - ::FlushEvents(everyEvent, 0); - - // setup memory of application - - ::MaxApplZone(); - for (long i = 1; i <= 4; i++) - ::MoreMasters(); - PurgeSpace(&total, &contig); - ::SetCursor( &qd.arrow ) ; - -#if 0 - InitAEHandlers(); - InitializeAECore() ; - GUSISetup(GUSIwithInternetSockets); -#endif - - // test the minimal configuration necessary - - long theSystem ; - long theMachine; - long theAppearance ; - - if (Gestalt(gestaltMachineType, &theMachine) != noErr) - { - error = kMacSTRWrongMachine; - } - else if (theMachine < gestaltMacPlus) - { - error = kMacSTRWrongMachine; - } - else if (Gestalt(gestaltSystemVersion, &theSystem) != noErr ) - { - error = kMacSTROldSystem ; - } - else if ( theSystem < 0x0700 ) - { - error = kMacSTROldSystem ; - } - else if ((long)GetApplLimit() - (long)ApplicationZone() < kMacMinHeap) - { - error = kMacSTRSmallSize; - } - else - { - if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr ) - { - gMacHasAppearance = true ; - RegisterAppearanceClient(); - if ( Gestalt( gestaltAppearanceVersion, &theAppearance ) == noErr ) - { - gMacAppearanceVersion = theAppearance ; - } - else - { - gMacAppearanceVersion = 0x0100 ; - } - } - else - error = kMacSTRNoPre8Yet ; - } - - // if we encountered any problems so far, give the error code and exit immediately - - if ( error ) - { - short itemHit; - Str255 message; - - SetCursor(&qd.arrow); - GetIndString(message, 128, error); - ParamText(message, (ConstStr255Param)"\p", (ConstStr255Param)"\p", (ConstStr255Param)"\p"); - itemHit = Alert(129, nil); - return FALSE ; - } - - // now avoid exceptions thrown for new (bad_alloc) - - std::__throws_bad_alloc = FALSE ; - - gMacCursorRgn = ::NewRgn() ; - -#ifdef __WXMSW__ - wxBuffer = new char[1500]; -#else - wxBuffer = new char[BUFSIZ + 512]; -#endif - -/* No longer used -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - - streambuf* sBuf = new wxDebugStreamBuf; - ostream* oStr = new ostream(sBuf) ; - wxDebugContext::SetStream(oStr, sBuf); -#endif -*/ - - wxClassInfo::InitializeClasses(); - - wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - wxBitmap::InitStandardHandlers(); - - wxModule::RegisterModules(); - wxASSERT( wxModule::InitializeModules() == TRUE ); - - return TRUE; -} - -void wxApp::CleanUp() -{ - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - - wxDeleteStockObjects() ; - - // Destroy all GDI lists, etc. - - delete wxTheBrushList; - wxTheBrushList = NULL; - - delete wxThePenList; - wxThePenList = NULL; - - delete wxTheFontList; - wxTheFontList = NULL; - - delete wxTheBitmapList; - wxTheBitmapList = NULL; - - delete wxTheColourDatabase; - wxTheColourDatabase = NULL; - - wxBitmap::CleanUpHandlers(); - - delete[] wxBuffer; - wxBuffer = NULL; - - wxClassInfo::CleanUpClasses(); - - delete wxTheApp; - wxTheApp = NULL; - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // At this point we want to check if there are any memory - // blocks that aren't part of the wxDebugContext itself, - // as a special case. Then when dumping we need to ignore - // wxDebugContext, too. - if (wxDebugContext::CountObjectsLeft() > 0) - { - wxTrace("There were memory leaks.\n"); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } -// wxDebugContext::SetStream(NULL, NULL); -#endif - - // do it as the very last thing because everything else can log messages - wxLog::DontCreateOnDemand(); - // do it as the very last thing because everything else can log messages - delete wxLog::SetActiveTarget(NULL); - - ::PrClose() ; - if (gMacCursorRgn) - ::DisposeRgn(gMacCursorRgn); - #if 0 - TerminateAE() ; - #endif -} - -int wxEntry( int argc, char *argv[] ) -{ - if (!wxApp::Initialize()) - return FALSE; - if (!wxTheApp) - { - if (!wxApp::GetInitializerFunction()) - { - printf( "wxWindows error: No initializer - use IMPLEMENT_APP macro.\n" ); - return 0; - }; - - wxTheApp = (wxApp*) (* wxApp::GetInitializerFunction()) (); - }; - - if (!wxTheApp) - { - printf( "wxWindows error: wxTheApp == NULL\n" ); - return 0; - }; - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - // GUI-specific initialization, such as creating an app context. - wxTheApp->OnInitGui(); - - // Here frames insert themselves automatically - // into wxTopLevelWindows by getting created - // in OnInit(). - - if (!wxTheApp->OnInit()) return 0; - - int retValue = 0; - - if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun(); - - if (wxTheApp->GetTopWindow()) - { - delete wxTheApp->GetTopWindow(); - wxTheApp->SetTopWindow(NULL); - } - - wxTheApp->DeletePendingObjects(); - - wxTheApp->OnExit(); - - wxApp::CleanUp(); - - return retValue; -}; - -// Static member initialization -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_className = ""; - m_wantDebugOutput = TRUE ; - m_appName = ""; - argc = 0; - argv = NULL; -#ifdef __WXMSW__ - m_printMode = wxPRINT_WINDOWS; -#else - m_printMode = wxPRINT_POSTSCRIPT; -#endif - m_exitOnFrameDelete = TRUE; - m_auto3D = TRUE; -} - -bool wxApp::Initialized() -{ - return TRUE; -// if (GetTopWindow()) -// return TRUE; -// else -// return FALSE; -} - -int wxApp::MainLoop() -{ - m_keepGoing = TRUE; - - while (m_keepGoing) - { - MacDoOneEvent() ; - } - - return 0; -} - -// Returns TRUE if more time is needed. -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -void wxApp::ExitMainLoop() -{ - m_keepGoing = FALSE; -} - -// Is a message/event pending? -bool wxApp::Pending() -{ -/* TODO. - */ - return FALSE; -} - -// Dispatch a message. -void wxApp::Dispatch() -{ -/* TODO. - */ -} - -void wxApp::OnIdle(wxIdleEvent& event) -{ - static bool inOnIdle = FALSE; - - // Avoid recursion (via ProcessEvent default case) - if (inOnIdle) - return; - - inOnIdle = TRUE; - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); - - // Send OnIdle events to all windows - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -// Send idle event to all top-level windows -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - wxNode* node = wxTopLevelWindows.First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore; -} - -// Send idle event to window and all subwindows -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Member(obj)) - delete node; - - // Deleting one object may have deleted other pending - // objects, so start from beginning of list again. - node = wxPendingDelete.First(); - } -} - -wxLog* wxApp::CreateLogTarget() -{ - return new wxLogGui; -} - -wxWindow* wxApp::GetTopWindow() const -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.Number() > 0) - return (wxWindow*) wxTopLevelWindows.First()->Data(); - else - return NULL; -} - -void wxExit() -{ - wxApp::CleanUp(); - ::ExitToShell() ; -} - -// Yield to other processes -bool wxYield() -{ -#if 0 - ::YieldToOtherThreads() ; - ::SystemTime() ; -#endif - return TRUE; -} - -// platform specifics - -void wxApp::MacDoOneEvent() -{ - EventRecord event ; - - long sleepTime = 60; - - if (WaitNextEvent(everyEvent, &event,sleepTime, gMacCursorRgn)) - { - MacHandleOneEvent( &event ); - } - else - { - // idlers - wxTheApp->ProcessIdle() ; - } - - // repeaters -#if 0 - wxMacProcessSocketEvents() ; -#endif -} - -void wxApp::MacHandleOneEvent( EventRecord *ev ) -{ - switch (ev->what) - { - case nullEvent: - MacHandleNullEvent( ev ) ; - break ; - case kHighLevelEvent: - MacHandleHighLevelEvent( ev ) ; - break; - case mouseDown: - MacHandleMouseDownEvent( ev ) ; - wxTheApp->ExitMainLoop() ; - break; - case mouseUp: - MacHandleMouseUpEvent( ev ) ; - break; - case keyDown: - MacHandleKeyDownEvent( ev ) ; - break; - case autoKey: - MacHandleAutoKeyEvent( ev ) ; - break; - case keyUp: - MacHandleKeyUpEvent( ev ) ; - break; - case activateEvt: - MacHandleActivateEvent( ev ) ; - break; - case updateEvt: - MacHandleUpdateEvent( ev ) ; - break; - case diskEvt: - MacHandleDiskEvent( ev ) ; - break; - case osEvt: - MacHandleOSEvent( ev ) ; - break; - default: - break; - } -} - -void wxApp::MacHandleNullEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleHighLevelEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleMouseDownEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleMouseUpEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleKeyDownEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleKeyUpEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleAutoKeyEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleActivateEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleUpdateEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleDiskEvent( EventRecord *ev ) -{ -} - -void wxApp::MacHandleOSEvent( EventRecord *ev ) -{ -} - - - -/* - -void wxApp::doMacMouseDown(void) -{ - WindowPtr window; - short windowPart = ::FindWindow(m_event.where, &window); - if ( windowPart != inMenuBar ) - { - WindowPtr frontWindow = FrontWindow(); - if (WindowIsModal(frontWindow) && (window != frontWindow)) - SysBeep(1); - else - { - switch (windowPart) - { - case inMenuBar: - break; - case inContent: - doMacInContent(window); break; - case inDrag: - doMacInDrag(window); break; - case inGrow: - doMacInGrow(window); break; - case inGoAway: - doMacInGoAway(window); break; - case inZoomIn: - case inZoomOut: - doMacInZoom(window, windowPart); break; - default: - break; - } - - } - } - else - { - doMacInMenuBar(::MenuSelect(m_event.where)); - } -} - -void wxApp::doMacMouseUp(void) -{ - if (m_mouseWindow) - { -#if 0 - int hitX = m_event.where.h; // screen window c.s. - int hitY = m_event.where.v; // screen window c.s. - m_mouseWindow->ScreenToClient(&hitX, &hitY); // mouseWindow client c.s. - m_mouseWindow->ClientToLogical(&hitX, &hitY); // mouseWindow logical c.s. -#endif - - wxMouseEvent event(wxEVT_LEFT_UP); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = FALSE; - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - m_mouseWindow->ProcessEvent(event); - } - else - { - //??? Can't we just throw away mouse up events without matching mouse down - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { -#if 0 - int hitX = cCurrentEvent.where.h; // screen window c.s. - int hitY = cCurrentEvent.where.v; // screen window c.s. - theMacWxFrame->ScreenToWindow(&hitX, &hitY); -#endif - - wxMouseEvent event(wxEVT_LEFT_UP); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = FALSE; - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - theMacWxFrame->ProcessEvent(event); - } - } -} - -void wxApp::doMacMouseMotion(void) -{ - if (m_mouseWindow) { - wxMouseEvent event(wxEVT_MOTION); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = !(m_event.modifiers & btnState); - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - m_mouseWindow->ProcessEvent(event); - } - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - wxMouseEvent event(wxEVT_MOTION); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = !(m_event.modifiers & btnState); - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - - m_mouseWindow->ProcessEvent(event); - } - } - - //??? Need to work with floating windows... isn't there a toolbox call to find the - // top window intersecting a point is screen coordinates?? -#if 0 - else // will only work for one floating window at the moment... ? - { - WindowPtr frontDocPtr = findFrontNonFloatingWindow(); - WindowPtr frontFloatingPtr = ::FrontWindow(); - - int hitX = cCurrentEvent.where.h; - int hitY = cCurrentEvent.where.v; - - wxFrame* macWxFrame = findMacWxFrame(frontDocPtr); - - if ((frontFloatingPtr != frontDocPtr) & (frontFloatingPtr != NULL)) - { - RgnHandle frontFloatStrRgn = getStructureRegion(frontFloatingPtr); - Rect frontFloatRect = (**frontFloatStrRgn).rgnBBox; - - if ((hitX >= frontFloatRect.left) & - (hitX <= frontFloatRect.right) & - (hitY >= frontFloatRect.top) & - (hitY <= frontFloatRect.bottom)) - { - macWxFrame = findMacWxFrame(frontFloatingPtr); - } - } - } -#endif -} - -void wxApp::doMacKeyDown(void) -{ - long menuResult = 0 ; - short keycode ; - short keychar ; - keychar = short(m_event.message & charCodeMask); - keycode = short(m_event.message & keyCodeMask) >> 8 ; - - // Handle menu accelerators - if ( gSFMacHasAppearance ) - { - menuResult = MenuEvent( &m_event ) ; - if ( HiWord( menuResult ) ) - { - doMacInMenuBar( menuResult ) ; - } - else - { - ControlHandle control ; - - GetKeyboardFocus( FrontNonFloatingWindow() , &control ) ; - if ( control && keychar != 0x07 ) - HandleControlKey( control , keycode , keychar , m_event.modifiers ) ; - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - wxKeyEvent event(wxEVT_CHAR); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_keyCode = macTranslateKey(keychar, m_event.modifiers & (shiftKey|optionKey)); - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } - } - } - } - else - { - if (GetMenuHandle( kwxMacAppleMenuId ) ) - { -// menuResult = MDEF_MenuKey(m_event.message, m_event.modifiers , GetMenuHandle( kwxMacAppleMenuId ) ); - } - else - { - if (m_event.modifiers & cmdKey) - { - menuResult = MenuKey( keychar ) ; - } - } - - if ( HiWord( menuResult ) ) - { - doMacInMenuBar( menuResult ) ; - } - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - wxKeyEvent event(wxEVT_CHAR); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_keyCode = macTranslateKey(keychar, m_event.modifiers & (shiftKey|optionKey)); - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } - } - } -} - -void wxApp::doMacAutoKey(void) -{ - doMacKeyDown(); -} - -void wxApp::doMacKeyUp(void) -{ -} - -void wxApp::doMacActivateEvt(void) -{ - HighlightAndActivateWindow( (WindowPtr) m_event.message , m_event.modifiers & activeFlag ) ; -} - -void wxApp::doMacUpdateEvt(void) -{ - WindowPtr theMacWindow = (WindowPtr)(m_event.message); - ::BeginUpdate(theMacWindow); - - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(theMacWindow); - if (theMacWxFrame) - { -// if (!::EmptyRgn(theMacWindow->visRgn)) // this doesn't work with windowshade -// { - if ( theMacWxFrame->MacSetupPort() ) - { - // Erase update region - // we must do this, because controls add their former rect to the inval - // rgn and the background might not have been correct at that moment - ::EraseRect(&theMacWindow->portRect); - - // Can't use UpdateControls since each control has it's own coordinate system - // ::UpdateControls(theMacWindow, theMacWindow->visRgn); - - ::UpdateControls( theMacWindow , theMacWindow->visRgn ) ; - #if 0 - // Draw the grow box - if (cStyle & wxRESIZE_BORDER) - MacDrawGrowIcon(); - #endif - - wxPaintEvent event; - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - // ::SetThemeWindowBackground( theMacWindow , kThemeActiveDialogBackgroundBrush , false ) ; - ::ClipRect( &theMacWindow->portRect ) ; - ::SetOrigin( 0 , 0 ); - } - else - { - wxASSERT_MSG( false , "unabled to setup window mac port") ; - } - -// } - } - - ::EndUpdate(theMacWindow); -} - -void wxApp::doMacDiskEvt(void) -{ // based on "Programming for System 7" by Gary Little and Tim Swihart - if ((m_event.message >> 16) != noErr) - { - const int kDILeft = 0x0050; // top coord for disk init dialog - const int kDITop = 0x0070; // left coord for disk init dialog - Point mountPoint; - mountPoint.h = kDILeft; - mountPoint.v = kDITop; - int myError = DIBadMount(mountPoint, m_event.message); - } -} - -void wxApp::doMacOsEvt(void) -{ // based on "Programming for System 7" by Gary Little and Tim Swihart - switch ((m_event.message >> 24) & 0x0ff) - { - case suspendResumeMessage: - if (m_event.message & resumeFlag) - doMacResumeEvent(); - else - doMacSuspendEvent(); - break; - case mouseMovedMessage: - doMacMouseMovedMessage(); - break; - } -} - -void wxApp::doMacHighLevelEvent(void) -{ - ::AEProcessAppleEvent(&m_event); // System 7 or higher -} - -void wxApp::doMacResumeEvent(void) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - if (m_event.message & convertClipboardFlag) - ::TEFromScrap(); - - wxActivateEvent event(wxEVT_ACTIVATE, TRUE); - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } -} - -void wxApp::doMacSuspendEvent(void) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - ::ZeroScrap(); - ::TEToScrap(); - - wxActivateEvent event(wxEVT_ACTIVATE, FALSE); - event.m_timeStamp = m_event.when; - event.SetEventObject(theMacWxFrame); - - theMacWxFrame->ProcessEvent(event); - } -} - -void wxApp::doMacMouseMovedMessage(void) -{ // based on "Programming for System 7" by Gary Little and Tim Swihart - if (m_cursorRgn) - ::DisposeRgn(m_cursorRgn); - m_cursorRgn = ::NewRgn(); - ::SetRectRgn(m_cursorRgn, -32768, -32768, 32766, 32766); -} - -void wxApp::doMacInMenuBar(long menuResult) -{ - int macMenuId = HiWord(menuResult); - int macMenuItemNum = LoWord(menuResult); // counting from 1 - - if (macMenuId == 0) // no menu item selected; - return; - if (macMenuId == 128) - { - if (macMenuItemNum != 1) - { // if not the "About" entry (or the separator) - Str255 daName; - ::GetMenuItemText(GetMenuHandle(128), macMenuItemNum, daName); - (void)::OpenDeskAcc(daName); - ::HiliteMenu(0); - return; - } - } - - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - if ( theMacWxFrame->IsKindOf( CLASSINFO( wxDialog ) ) ) - (( wxDialog *) theMacWxFrame)->MacMenuSelect(m_event, macMenuId, macMenuItemNum); - else if ( theMacWxFrame->IsKindOf( CLASSINFO( wxFrame ) ) ) - (( wxFrame *) theMacWxFrame)->MacMenuSelect(m_event, macMenuId, macMenuItemNum); - } - ::HiliteMenu(0); -} - -void wxApp::doMacInContent(WindowPtr window) -{ - WindowPtr frontWindow = FrontWindow(); - if (window != frontWindow ) - { -// SFSelectWindow( window ) ; - } - else - { - ControlHandle control ; - Point localwhere = m_event.where ; - GrafPtr port ; - SInt16 controlpart ; - - ::GetPort( &port ) ; - ::SetPort( window ) ; - ::GlobalToLocal( &localwhere ) ; - - ::SetPort( port ) ; - - if ( !gSFMacHasAppearance ) - { - controlpart = FindControl( localwhere , window , &control ) ; - } - else - { - control = FindControlUnderMouse( localwhere , window , &controlpart ) ; - } - - if ( control && IsControlActive( control ) ) - { - wxControl* wxc = (wxControl*) GetControlReference( control ) ; - - if ( wxWindow::FindFocus() != wxc && wxc->AcceptsFocus() ) - { - wxc->SetFocus() ; - if ( wxWindow::FindFocus() != wxc ) - control = NULL ; // we were not able to change focus - } - - if ( control ) - { - if ( !gSFMacHasAppearance) - { - controlpart = TrackControl( control , localwhere , NULL ) ; - } - else - { - controlpart = HandleControlClick( control , localwhere , m_event.modifiers , (ControlActionUPP) -1 ) ; - } - - if ( controlpart ) - { - wxControl* wx = (wxControl*) GetControlReference( control ) ; - if ( wx ) - wx->MacHandleControlClick( control , controlpart ) ; - } - } - } - else - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - doMacContentClick((wxFrame*)theMacWxFrame); // todo : this cast is wrong - } - } - } - -#if 0 - wxFrame* theMacWxFrame = findMacWxFrame(window); - if (theMacWxFrame) - { - WindowPtr MacWindow = findFrontNonFloatingWindow(); - if (window != MacWindow) - { - wxFrame* frontFrame = findMacWxFrame(MacWindow); - if (!frontFrame) wxFatalError("No wxFrame for frontnonfloatingWindow."); - if (!frontFrame->IsModal()) - { - frontFrame->SetFocus(); - doMacContentClick(theMacWxFrame); // jonto - to deal with doc windows behind floaters ? - ::newSelectWindow(window); // WCH : should I be calling some wxMethod? - if (!IsFloating(MacWindow)) - { - KeyMap keyMap; - GetKeys(keyMap); - if (!(keyMap[1] & 0x8000)) theMacWxFrame->ShowAsActive(true); // temporary measure... - } - } // jonto : not sure yet, but let's try this ... - else ::SysBeep(3); - } - else - { - doMacContentClick(theMacWxFrame); - } - } -#endif -} - -void wxApp::doMacContentClick(wxWindow* frame) -{ - m_mouseWindow = frame; - - wxMouseEvent event(wxEVT_LEFT_DOWN); - event.m_shiftDown = m_event.modifiers & shiftKey; - event.m_controlDown = m_event.modifiers & controlKey; - event.m_altDown = m_event.modifiers & optionKey; - event.m_metaDown = m_event.modifiers & cmdKey; - event.m_leftDown = FALSE; - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; - if ( m_event.modifiers & controlKey ) - { - event.m_rightDown = TRUE; - } - else - { - event.m_leftDown = TRUE; - } -#if 0 - event.m_leftDown = !(m_event.modifiers & btnState); - event.m_middleDown = FALSE; - event.m_rightDown = FALSE; -#endif - event.m_x = m_event.where.h; - event.m_y = m_event.where.v; - event.m_timeStamp = m_event.when; - event.SetEventObject(m_mouseWindow); - -// m_mouseWindow->ProcessEvent(event); - m_mouseWindow->MacDispatchMouseEvent(event); - -#if 0 - // RightButton is cmdKey click on the mac platform for one-button mouse - Bool rightButton = cCurrentEvent.modifiers & cmdKey; - // altKey is optionKey on the mac platform: - Bool isAltKey = cCurrentEvent.modifiers & optionKey; - - WXTYPE mouseEventType = rightButton ? wxEVENT_TYPE_RIGHT_DOWN - : wxEVENT_TYPE_LEFT_DOWN; - wxMouseEvent theMouseEvent(mouseEventType); - theMouseEvent.leftDown = !rightButton; - theMouseEvent.middleDown = FALSE; - theMouseEvent.rightDown = rightButton; - theMouseEvent.shiftDown = cCurrentEvent.modifiers & shiftKey; - theMouseEvent.controlDown = cCurrentEvent.modifiers & controlKey; - theMouseEvent.altDown = isAltKey; - theMouseEvent.metaDown = FALSE; // mflatt - theMouseEvent.timeStamp = cCurrentEvent.when; // mflatt - - int hitX = cCurrentEvent.where.h; // screen window c.s. - int hitY = cCurrentEvent.where.v; // screen window c.s. - - frame->ScreenToWindow(&hitX, &hitY); -// frameParentArea->ScreenToArea(&hitX, &hitY); // tx coords ? - theMouseEvent.x = hitX; // frame parent area c.s. - theMouseEvent.y = hitY; // frame parent area c.s. - - frame->SeekMouseEventArea(theMouseEvent); -#endif -} - -void wxApp::doMacInDrag(WindowPtr window) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - // should be desktop, not screen - Rect dragBoundsRect = qd.screenBits.bounds; // can't move to a different screen -//xxx ::InsetRect(&dragBoundsRect, 4, ::GetMBarHeight() + 4); // This is not really necessary - Rect oldPos = (**(((WindowPeek)window)->strucRgn)).rgnBBox; - ::DragReferencedWindow(window, m_event.where, &dragBoundsRect); // jonto - #if 0 - theMacWxFrame->m_x += (**(((WindowPeek)window)->strucRgn)).rgnBBox.left - oldPos.left; - theMacWxFrame->m_y += (**(((WindowPeek)window)->strucRgn)).rgnBBox.top - oldPos.top; - #endif - Move( (**(((WindowPeek)window)->strucRgn)).rgnBBox.left , (**(((WindowPeek)window)->strucRgn)).rgnBBox.top ) ; -#if 0 - theMacWxFrame->wxMacRecalcNewSize(); // Actually, recalc new position only -#endif - } - -#if 0 -// if (window != ::FrontWindow()) - if (window != findFrontNonFloatingWindow()) - { -// wxFrame* frontFrame = findMacWxFrame(::FrontWindow()); - wxFrame* frontFrame = findMacWxFrame(findFrontNonFloatingWindow()); - if (!frontFrame) wxFatalError("No wxFrame for frontWindow."); - if (frontFrame->IsModal()) - { - ::SysBeep(3); - return; - } - } - - wxFrame* theMacWxFrame = findMacWxFrame(window); - if (theMacWxFrame) - { - Rect dragBoundsRect = qd.screenBits.bounds; // can't move to a different screen - ::InsetRect(&dragBoundsRect, 4, ::GetMBarHeight() + 4); // This is not really necessary - newDragWindow(window, cCurrentEvent.where, &dragBoundsRect); // jonto - theMacWxFrame->wxMacRecalcNewSize(); // Actually, recalc new position only - if (!IsFloating(window)) - { - theMacWxFrame->ShowAsActive(true); // temporary measure... - } - } -#endif -} - -void wxApp::doMacInGrow(WindowPtr window) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - Rect growSizeRect; // WCH: growSizeRect should be a member of wxFrame class - growSizeRect.top = 1; // minimum window height - growSizeRect.left = 1; // minimum window width - growSizeRect.bottom = qd.screenBits.bounds.bottom - qd.screenBits.bounds.top; - growSizeRect.right = qd.screenBits.bounds.right - qd.screenBits.bounds.left; - long windSize = ::GrowWindow(window, m_event.where, &growSizeRect); - if (windSize != 0) - { - int nWidth = LoWord(windSize); - int nHeight = HiWord(windSize); - int oWidth, oHeight; - theMacWxFrame->GetSize(&oWidth, &oHeight); - if (nWidth == 0) nWidth = oWidth; - if (nHeight == 0) nHeight = oHeight; - theMacWxFrame->SetSize( -1, -1, nWidth, nHeight, wxSIZE_USE_EXISTING); - } - } -} - -void wxApp::doMacInGoAway(WindowPtr window) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - if (TrackGoAway(window, m_event.where)) - { - // TODO: Stefan, I think you need to send a wxCloseEvent to the window - // here. The OnCloseWindow handler will take care of delete the frame - // if it wishes to (there should be a default wxFrame::OnCloseWindow - // that destroys the frame). - if (theMacWxFrame->OnClose()) { -#if WXGARBAGE_COLLECTION_ON - theMacWxFrame->Show(FALSE); -#else - delete theMacWxFrame; -#endif - } - } - } -} - -void wxApp::doMacInZoom(WindowPtr window, short windowPart) -{ - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(window); - if (theMacWxFrame) - { - if (TrackBox(window, m_event.where, windowPart)) - { -#if 0 - theMacWxFrame->Maximize(windowPart == inZoomOut); -#endif - } - } -} - -long wxApp::macTranslateKey(char key, int mods) -{ - static Handle transH = NULL; - static unsigned long transState = 0; - static Handle ScriptH = NULL; - static short region_code = 1; - - if (!ScriptH) { // tom: don't guess the regioncode!!!! - struct ItlbRecord * r; - ScriptH = GetResource('itlb',0); - if (ScriptH) { - HLock(ScriptH); - r = (ItlbRecord*)*ScriptH; - region_code = r->itlbKeys; - HUnlock(ScriptH); - } - } - - switch (key) { - case 0x7e: - case 0x3e: - key = WXK_UP; - break; - case 0x7d: - case 0x3d: - key = WXK_DOWN; - break; - case 0x7b: - case 0x3b: - key = WXK_LEFT; - break; - case 0x7c: - case 0x3c: - key = WXK_RIGHT; - break; - case 0x24: - case 0x4c: - key = WXK_RETURN; - break; - case 0x30: - key = WXK_TAB; - break; - case 0x33: - key = WXK_BACK; - break; - case 0x75: - key = WXK_DELETE; - break; - case 0x73: - key = WXK_HOME; - break; - case 0x77: - key = WXK_END; - break; - case 0x74: - key = WXK_PAGEUP; - break; - case 0x79: - key = WXK_PAGEDOWN; - break; - default: - if (!transH) { - transH = GetIndResource('KCHR', 1); - HNoPurge(transH); - } -#if 0 //Tom replaces - if (transH) { - // Only let shift & option modify the key: - HLock(transH); - key = KeyTranslate(*transH, (key & 0x7F) | mods, &transState) & charCodeMask; - HUnlock(transH); -#else - if (0) { // tom fettig@dfki.uni-sb.de - // why if(0): - // code is not correct, see inside Macintosh: Text 1-87 - // and 'itlk'-resource!! - // and it is not necessary, as the translated char is in - // cCurrrentEvent.message!! - // Only let shift & option modify the key: - HLock(transH); - key = KeyTranslate(*transH, (key & 0x7F) | mods, &transState) & charCodeMask; - HUnlock(transH); -#endif - } - } // end switch - - return key; -} - -void -wxApp::macAdjustCursor() -{ - if (m_event.what != kHighLevelEvent) - { - wxWindow* theMacWxFrame = wxFrame::MacFindFrameOrDialog(::FrontWindow()); - if (theMacWxFrame) - { - if (!theMacWxFrame->MacAdjustCursor(m_event.where)) - ::SetCursor(&(qd.arrow)); - } - } -} -*/ diff --git a/src/mac/carbon/apprsrc.r b/src/mac/carbon/apprsrc.r deleted file mode 100644 index 6a9530632a..0000000000 --- a/src/mac/carbon/apprsrc.r +++ /dev/null @@ -1,627 +0,0 @@ -#include -#include "apprsrc.h" - -resource 'STR#' ( 128 , "Simple Alert Messages" ) -{ - { - "This application needs at least a MacPlus" , - "This application needs more memory" , - "This application is out of memory" , - "This application needs at least System 7" , - "This application needs Appearance extension (built in with System 8) - this restriction will be relieved in the final release" - } -} ; - -data 'alis' (128, "Libs alias") { - $"0000 0000 00CE 0002 0001 0A58 5858 5858" - $"5858 5858 5800 0000 0000 0000 0000 0000" - $"0000 0000 0000 AB9F 536B 4244 0000 0002" - $"EE7C 044C 6962 7300 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0003 1F71 AE82 7707 006A 0016 026C" - $"01A3 0001 0001 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0009 5858 5858 5858" - $"5858 5800 0001 0004 0002 EE7C 0002 0019" - $"5858 5858 5858 5858 5858 5858 5858 5858" - $"5858 5858 5858 5858 5800 FFFF 0000" -}; - -data 'CSOR' (0) { - $"1441 6476 616E 6365 6420 436F 6E63 6570" - $"7473 2041 47" -}; - -resource 'FREF' (128) { - 'APPL', - 0, - "" -}; - -resource 'FREF' (129) { - 'shlb', - 1, - "" -}; - -resource 'FREF' (130) { - 'PLPW', - 2, - "" -}; - -resource 'icl4' (128) { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0666 6666 0000 0000 0000 0006 6666 6660" - $"0666 6666 0000 0000 0000 0006 6666 6660" - $"0666 6660 0000 0000 0000 0000 6666 6660" - $"0666 6660 0000 0006 6000 0000 6666 6660" - $"0666 6660 0000 0666 6600 0000 6666 6660" - $"0666 6660 0000 6606 6600 0000 6666 6660" - $"0666 6660 0000 6606 0000 0000 6666 6660" - $"0666 6600 0000 0666 6000 0000 0666 6660" - $"0666 6600 0000 0006 6600 0000 0666 6660" - $"0666 6600 0000 0006 0060 0000 0666 6660" - $"0666 6660 0000 0006 6600 0000 6666 6660" - $"0666 6660 0000 0666 6000 0000 6666 6660" - $"0666 6666 0000 6606 0000 0006 6666 6660" - $"0666 6666 6000 6606 0000 0066 6666 6660" - $"0666 6666 6000 0666 6600 0066 6666 6660" - $"0666 6666 6600 0006 0600 0666 6666 6660" - $"0666 6666 6600 0006 0000 0666 6666 6660" - $"0666 6666 6660 0006 0000 6666 6666 6660" - $"0666 6666 6666 0006 0006 6666 6666 6660" - $"0666 6666 6666 0006 0006 6666 6666 6660" - $"0666 6666 6666 6006 0066 6666 6666 6660" - $"0666 6666 6666 6006 0066 6666 6666 6660" - $"0666 6666 6666 6006 0066 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6606 0666 6666 6666 6660" - $"0666 6666 6666 6660 6666 6666 6666 6660" - $"0666 6666 6666 6666 6666 6666 6666 6660" - $"0666 6666 6666 6666 6666 6666 6666 6660" - $"0666 6666 6666 6666 6666 6666 6666 6660" -}; - -resource 'icl4' (129, "Editor icon-generic ") { - $"0FFF FFFF FFFF FFFF FFFF FFFF FFFF 0000" - $"F000 0000 0000 0000 0000 0000 000C F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCF FFFF FFFF FFFF FFFF CCCC F000" - $"F0CC CCFD DDDD DDDD DDDD DDDD FCCC F000" - $"F0CC CCFD DDDD DDDF FDDD DDDD FCCC F000" - $"F0CC CFDD DDDD DFFF FFDD DDDD DFCC F000" - $"F0FC CFDD DDDD FFCF FFDD DDDD DFCC F000" - $"FF0F 0FDD DDDD FFCF DDDD DDDD DFCC F0F0" - $"F00F 0FFD DDDD DFFF FDDD DDDD FFCC FFCF" - $"000F 0CFD DDDD DDDF FFDD DDDD FCCC F0CF" - $"000F 0CCF DDDD DDDF DDDD DDDF CCCC CCCF" - $"000F 0CCF FDDD DDDF FFDD DDFC CCCC CCCF" - $"000F 0CCC FDDD DFFF FDDD DDFC CCCC CCCF" - $"000F 0CCC CFDD FFCF DDDD DFCC CCCC CCCF" - $"000F 0CCC CFDD FFCF DDDD DFCC CCCC CCCF" - $"000F 0CCC CCFD DFFF FFDD FCCC CCCC CCCF" - $"000F 0CCC CCFF DDDF DFDF CCCC CCCC CCCF" - $"000F 0CCC CCCF DDDF DDDF CCCC CCCC CCCF" - $"000F 0CCC CCCC FDDF DDFC CCCC CCCC FCCF" - $"F00F 0CCC CCCC FDDF DDFC CCCC CCCC FFCF" - $"FF0F 0CCC CCCC FDDF DDFC CCCC CCCC F0F0" - $"F0F0 CCCC CCCC CFDF DFCC CCCC CCCC F000" - $"F00C CCCC CCCC CFDF DFCC CCCC CCCC F000" - $"F0CC CCCC CCCC CFDF DFCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCFF FCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"FCCC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"0FFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -resource 'icl4' (130, "Editor icon-generic ") { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"000F FFFF FFFF FFFF FFFF FFFF FFFF F000" - $"000F 0000 0000 0000 0000 0000 0000 F000" - $"000F 0CCC CCCC CCCC CCCC CCCC CCCC F000" - $"FFFF DDDD DDDD DDDD DDDD DDDD DDDD FFFF" - $"F00D 0000 0000 0000 0000 0000 0000 D00F" - $"F0CD 0CFD DDDD DDDD DDDD DDDD FCCC DCCF" - $"F0CD 0CFD DDDD DDDF FDDD DDDD FCCC DCCF" - $"F0CD 0FDD DDDD DFFF FFDD DDDD DFCC DCCF" - $"F0CD 0FDD DDDD FFCF FFDD DDDD DFCC DCCF" - $"F0CD 0FDD DDDD FFCF DDDD DDDD DFCC DCCF" - $"F0CD 0FFD DDDD DFFF FDDD DDDD FFCC DCCF" - $"F0CD 0CFD DDDD DDDF FFDD DDDD FCCC DCCF" - $"F0CD 0CCF DDDD DDDF DDDD DDDF CCCC DCCF" - $"F0CD 0CCF FDDD DDDF FFDD DDFC CCCC DCCF" - $"F0CD 0CCC FDDD DFFF FDDD DDFC CCCC DCCF" - $"F0CD 0CCC CFDD FFCF DDDD DFCC CCCC DCCF" - $"F0CD 0CCC CFDD FFCF DDDD DFCC CCCC DCCF" - $"F0CD 0CCC CCFD DFFF FFDD FCCC CCCC DCCF" - $"F0CD 0CCC CCFF DDDF DFDF CCCC CCCC DCCF" - $"F0CD 0CCC CCCF DDDF DDDF CCCC CCCC DCCF" - $"F0CD 0CCC CCCC FDDF DDFC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC FDDF DDFC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC FDDF DDFC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC CFDF DFCC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC CFDF DFCC CCCC CCCC DCCF" - $"F0CD 0CCC CCCC CFDF DFCC CCCC CCCC DCCF" - $"F0CD DDDD DDDD DDFF FDDD DDDD DDDD FFFF" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"F0CC CCCC CCCC CCCC CCCC CCCC CCCC F000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF F0" -}; - -resource 'icl8' (128) { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"00AB ABAB ABAB ABAB 0000 0000 0000 0000" - $"0000 0000 0000 00AB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB 0000 0000 0000 0000" - $"0000 0000 0000 00AB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 0000 0000" - $"0000 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 0000 00AB" - $"AB00 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 00AB ABAB" - $"ABAB 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 ABAB 00AB" - $"ABAB 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 ABAB 00AB" - $"0000 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB 0000 0000 0000 00AB ABAB" - $"AB00 0000 0000 0000 00AB ABAB ABAB AB00" - $"00AB ABAB ABAB 0000 0000 0000 0000 00AB" - $"ABAB 0000 0000 0000 00AB ABAB ABAB AB00" - $"00AB ABAB ABAB 0000 0000 0000 0000 00AB" - $"0000 AB00 0000 0000 00AB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 0000 00AB" - $"ABAB 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB AB00 0000 0000 00AB ABAB" - $"AB00 0000 0000 0000 ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB 0000 0000 ABAB 00AB" - $"0000 0000 0000 00AB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB AB00 0000 ABAB 00AB" - $"0000 0000 0000 ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB AB00 0000 00AB ABAB" - $"ABAB 0000 0000 ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB 0000 0000 00AB" - $"00AB 0000 00AB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB 0000 0000 00AB" - $"0000 0000 00AB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB AB00 0000 00AB" - $"0000 0000 ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB 0000 00AB" - $"0000 00AB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB 0000 00AB" - $"0000 00AB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB AB00 00AB" - $"0000 ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB AB00 00AB" - $"0000 ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB AB00 00AB" - $"0000 ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB 00AB" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB ABAB" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB ABAB" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB00" - $"00AB ABAB ABAB ABAB ABAB ABAB ABAB ABAB" - $"ABAB ABAB ABAB ABAB ABAB ABAB ABAB AB" -}; - -resource 'icl8' (130, "Editor icon-generic ") { - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 00FF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FF00 0000" - $"0000 00FF 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 00F5 FF00 0000" - $"0000 00FF F5F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F8 FF00 0000" - $"FFFF FFFF F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" - $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 FFFF FFFF" - $"FF00 F5F9 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 F9F5 00FF" - $"FF00 F6F9 002B FFF9 F9F9 F9F9 F9F9 F9F9" - $"F9F9 F9F9 F9F9 F9F9 FF2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFF9 F9F9 F9F9 F9F9 FF2B 2BF8 F92B F8FF" - $"FF00 F6F9 00FF F9F9 F9F9 F9F9 F9FF FFFF" - $"FFFF F9F9 F9F9 F9F9 F9FF 2BF8 F92B F8FF" - $"FF00 F6F9 00FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"FFFF F9F9 F9F9 F9F9 F9FF 2BF8 F92B F8FF" - $"FF00 F6F9 00FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9F9 F9F9 F9FF 2BF8 F92B F8FF" - $"FF00 F6F9 00FF FFF9 F9F9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 F9F9 FFFF 2BF8 F92B F8FF" - $"FF00 F6F9 002B FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 F9F9 FF2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2BFF F9F9 F9F9 F9F9 F9FF" - $"F9F9 F9F9 F9F9 F9FF 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2BFF FFF9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 FF2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B FFF9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 FF2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2BFF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2BFF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B FFF9 F9FF FFFF" - $"FFFF F9F9 FF2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B FFFF F9F9 F9FF" - $"F9FF F9FF 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2BFF F9F9 F9FF" - $"F9F9 F9FF 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B FFF9 F9FF" - $"F9F9 FF2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B FFF9 F9FF" - $"F9F9 FF2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B FFF9 F9FF" - $"F9F9 FF2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B 2BFF F9FF" - $"F9FF 2B2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 002B 2B2B 2B2B 2B2B 2BFF F9FF" - $"F9FF 2B2B 2B2B 2B2B 2B2B 2BF8 F92B F8FF" - $"FF00 F6F9 00F8 F82B 2B2B 2B2B 2BFF F9FF" - $"F9FF 2B2B 2B2B 2B2B F8F8 F8F8 F9F7 F8FF" - $"FF00 F6F9 F9F9 F9F9 F9F9 F9F9 F9F9 FFFF" - $"FFF9 F9F9 F9F9 F9F9 F9F9 F9F9 FFFF FFFF" - $"FF00 F62B 2B2B 2B2B 2B2B 2B2B 2B2B 2B2B" - $"2B2B 2B2B 2B2B 2B2B 2B2B 2BF8 FF00 0000" - $"FFF5 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 F8F8" - $"F8F8 F8F8 F8F8 F8F8 F8F8 F8F8 FF00 0000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FF" -}; - -resource 'icl8' (129) { - $"00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF 0000 0000" - $"FF00 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 00F6 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6FF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F62B FFF9 F9F9 F9F9 F9F9 F9F9" - $"F9F9 F9F9 F9F9 F9F9 FF2B F6F7 FF00 0000" - $"FF00 F6F6 F62B FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFF9 F9F9 F9F9 F9F9 FF2B F6F7 FF00 0000" - $"FF00 F7F6 F6FF F9F9 F9F9 F9F9 F9FF FFFF" - $"FFFF F9F9 F9F9 F9F9 F9FF F6F7 FF00 0000" - $"FF00 FFF7 F6FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"FFFF F9F9 F9F9 F9F9 F9FF F6F7 FF00 0000" - $"FFFF 00FF 00FF F9F9 F9F9 F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9F9 F9F9 F9FF F6F7 FF00 FF00" - $"FF00 00FF 00FF FFF9 F9F9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 F9F9 FFFF F6F7 FFFF F7FF" - $"0000 00FF 00F6 FFF9 F9F9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 F9F9 FFF6 F6F7 FF00 F7FF" - $"0000 00FF 00F6 F6FF F9F9 F9F9 F9F9 F9FF" - $"F9F9 F9F9 F9F9 F9FF F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6FF FFF9 F9F9 F9F9 F9FF" - $"FFFF F9F9 F9F9 FFF6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 FFF9 F9F9 F9FF FFFF" - $"FFF9 F9F9 F9F9 FFF6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6FF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6FF F9F9 FFFF 2BFF" - $"F9F9 F9F9 F9FF F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 FFF9 F9FF FFFF" - $"FFFF F9F9 FFF6 F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 FFFF F9F9 F9FF" - $"F9FF F9FF F6F6 F6F6 F6F6 F6F6 F6F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 F6FF F9F9 F9FF" - $"F9F9 F9FF F6F6 F6F6 F6F6 F6F6 F7F6 F7FF" - $"0000 00FF 00F6 F6F6 F6F6 F6F6 FFF9 F9FF" - $"F9F9 FFF6 F6F6 F6F6 F6F6 F6F7 FFF7 F7FF" - $"FF00 00FF 00F6 F6F6 F6F6 F6F6 FFF9 F9FF" - $"F9F9 FFF6 F6F6 F6F6 F6F6 F6F7 FFFF F7FF" - $"FFFF 00FF 00F6 F6F6 F6F6 F6F6 FFF9 F9FF" - $"F9F9 FFF6 F6F6 F6F6 F6F6 F6F7 FF00 FF00" - $"FF00 FF00 F6F6 F6F6 F6F6 F6F6 F6FF F9FF" - $"F9FF F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 00F6 F6F6 F6F6 F6F6 F6F6 F6FF F9FF" - $"F9FF F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6FF F9FF" - $"F9FF F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 FFFF" - $"FFF6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FF00 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6 F6F6" - $"F6F6 F6F6 F6F6 F6F6 F6F6 F6F7 FF00 0000" - $"FFF6 F7F7 F7F7 F7F7 F7F7 F7F7 F7F7 F7F7" - $"F7F7 F7F7 F7F7 F7F7 F7F7 F7F7 FF00 0000" - $"00FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -resource 'icm#' (129) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'icm#' (128) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'icm#' (130) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'icm4' (129) { - $"" -}; - -resource 'icm4' (128) { - $"" -}; - -resource 'icm4' (130) { - $"" -}; - -resource 'icm8' (129) { - $"" -}; - -resource 'icm8' (128) { - $"" -}; - -resource 'icm8' (130) { - $"" -}; - -resource 'ICN#' (128) { - { /* array: 2 elements */ - /* [1] */ - $"0000 0000 7F00 01FE 7F00 01FE 7E00 00FE" - $"7E01 80FE 7E07 C0FE 7E0D C0FE 7E0D 00FE" - $"7C07 807E 7C01 C07E 7C01 207E 7E01 C0FE" - $"7E07 80FE 7F0D 01FE 7F8D 03FE 7F87 C3FE" - $"7FC1 47FE 7FC1 07FE 7FE1 0FFE 7FF1 1FFE" - $"7FF1 1FFE 7FF9 3FFE 7FF9 3FFE 7FF9 3FFE" - $"7FFD 7FFE 7FFD 7FFE 7FFD 7FFE 7FFD 7FFE" - $"7FFE FFFE 7FFF FFFE 7FFF FFFE 7FFF FFFE", - /* [2] */ - $"0000 0000 7F00 01FE 7F00 01FE 7E00 00FE" - $"7E01 80FE 7E07 C0FE 7E0D C0FE 7E0D 00FE" - $"7C07 807E 7C01 C07E 7C01 207E 7E01 C0FE" - $"7E07 80FE 7F0D 01FE 7F8D 03FE 7F87 C3FE" - $"7FC1 47FE 7FC1 07FE 7FE1 0FFE 7FF1 1FFE" - $"7FF1 1FFE 7FF9 3FFE 7FF9 3FFE 7FF9 3FFE" - $"7FFD 7FFE 7FFD 7FFE 7FFD 7FFE 7FFD 7FFE" - $"7FFE FFFE 7FFF FFFE 7FFF FFFE 7FFF FFFE" - } -}; - -resource 'ICN#' (129, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"7FFF FFF0 8000 0008 8000 0008 8000 0008" - $"82AA AA88 8200 0088 8200 0088 8201 8088" - $"A407 C048 D40D C04A 940D 004D 1607 80C9" - $"1201 C081 1101 0101 1181 C201 1087 8201" - $"104D 0401 104D 0401 1027 C801 1031 5001" - $"1011 1009 9009 200D D009 200A A009 2008" - $"8005 4008 8005 4008 8005 4008 8003 8008" - $"8000 0008 8000 0008 8000 0008 7FFF FFF0", - /* [2] */ - $"0000 0000 1FFF FFF8 1FFF FFF8 1FFF FFF8" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFF8 FFFF FFF8 FFFF FFF8" - } -}; - -resource 'ICN#' (130, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"0000 0000 1FFF FFF8 1000 0008 1000 0008" - $"FAAA AAAF 9200 00A1 8200 0089 9201 8081" - $"8407 C049 940D C041 840D 0049 9607 80C1" - $"8201 C089 9101 0101 8181 C209 9087 8201" - $"804D 0409 904D 0401 8027 C809 9031 5001" - $"8011 1009 9009 2001 8009 2009 9009 2001" - $"8005 4009 9005 4001 8005 4009 9557 D55F" - $"8000 0008 8000 0008 FFFF FFF8", - /* [2] */ - $"0000 0000 1FFF FFF8 1FFF FFF8 1FFF FFF8" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFF8 FFFF FFF8 FFFF FFF8" - } -}; - -resource 'ics#' (129, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"3FFC 2004 E007 8001 8001 8001 8001 8001" - $"8001 8001 8001 8001 8001 8007 8004 FFFC", - /* [2] */ - $"3FFC 3FFC FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFC FFFC" - } -}; - -resource 'ics#' (128) { - { /* array: 2 elements */ - /* [1] */ - $"", - /* [2] */ - $"" - } -}; - -resource 'ics#' (130, "Editor icon-generic ") { - { /* array: 2 elements */ - /* [1] */ - $"3FFC 2004 E007 8001 8001 8001 8001 8001" - $"8001 8001 8001 8001 8001 8007 8004 FFFC", - /* [2] */ - $"3FFC 3FFC FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFC FFFC" - } -}; - -resource 'ics4' (129, "Editor icon-generic ") { - $"00FF FFFF FFFF FF00 00F0 0000 0000 CF00" - $"FFFD DDDD DDDD DFFF F0D0 0000 0000 CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0DC CCCC CCCC CDCF F0DD DDDD DDDD DFFF" - $"FCCC CCCC CCCC CF00 FFFF FFFF FFFF FF" -}; - -resource 'ics4' (128) { - $"" -}; - -resource 'ics4' (130, "Editor icon-generic ") { - $"00FF FFFF FFFF FF00 00F0 0000 0000 CF00" - $"FFFD DDDD DDDD DFFF F0D0 0000 0000 CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0D0 CCCC CCCC CDCF F0D0 CCCC CCCC CDCF" - $"F0DC CCCC CCCC CDCF F0DD DDDD DDDD DFFF" - $"FCCC CCCC CCCC CF00 FFFF FFFF FFFF FF" -}; - -resource 'ics8' (129, "Editor icon-generic ") { - $"0000 FFFF FFFF FFFF FFFF FFFF FFFF 0000" - $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F6FF 0000" - $"FFFF FFF9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF5 F9F5 F5F5 F5F5 F5F5 F5F5 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F92B 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF6 F8F8 F8F8 F8F8 F8F8 F8F8 F8FF 0000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -resource 'ics8' (128) { - $"" -}; - -resource 'ics8' (130, "Editor icon-generic ") { - $"0000 FFFF FFFF FFFF FFFF FFFF FFFF 0000" - $"0000 FFF5 F5F5 F5F5 F5F5 F5F5 F6FF 0000" - $"FFFF FFF9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF5 F9F5 F5F5 F5F5 F5F5 F5F5 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F5 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F92B 2B2B 2B2B 2B2B 2B2B 2BF9 F8FF" - $"FFF5 F9F9 F9F9 F9F9 F9F9 F9F9 F9FF FFFF" - $"FFF6 F8F8 F8F8 F8F8 F8F8 F8F8 F8FF 0000" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'iSNP' (129) { - $"0000" /* .. */ -}; - -data 'iSNP' (128) { - $"0000" /* .. */ -}; - -data 'iSNP' (130) { - $"0000" /* .. */ -}; - -resource 'BNDL' (128) { - 'CSOR', - 0, - { /* array TypeArray: 2 elements */ - /* [1] */ - 'ICN#', - { /* array IDArray: 3 elements */ - /* [1] */ - 0, 128, - /* [2] */ - 1, 129, - /* [3] */ - 2, 130 - }, - /* [2] */ - 'FREF', - { /* array IDArray: 3 elements */ - /* [1] */ - 0, 128, - /* [2] */ - 1, 129, - /* [3] */ - 2, 130 - } - } -}; - -resource 'MENU' (1, preload) -{ - 1, textMenuProc, 0b11111111111111111111111111111110 , enabled, apple , - { - "AboutÉ" , noicon, nokey,nomark,plain , - "-" , noicon, nokey,nomark,plain - } -} ; - -resource 'MBAR' (1,preload) -{ - { 1 } ; -} ; \ No newline at end of file diff --git a/src/mac/carbon/bitmap.cpp b/src/mac/carbon/bitmap.cpp deleted file mode 100644 index 1e6255f551..0000000000 --- a/src/mac/carbon/bitmap.cpp +++ /dev/null @@ -1,430 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: wxBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/palette.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -wxBitmapRefData::wxBitmapRefData() -{ - m_ok = FALSE; - m_width = 0; - m_height = 0; - m_depth = 0; - m_quality = 0; - m_numColors = 0; - m_bitmapMask = NULL; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - /* - * TODO: delete the bitmap data here. - */ - - if (m_bitmapMask) - delete m_bitmapMask; - m_bitmapMask = NULL; -} - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap() -{ - m_refData = NULL; - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -wxBitmap::wxBitmap(const char bits[], int the_width, int the_height, int no_bits) -{ - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = the_width ; - M_BITMAPDATA->m_height = the_height ; - M_BITMAPDATA->m_depth = no_bits ; - M_BITMAPDATA->m_numColors = 0; - - /* TODO: create the bitmap from data */ - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(int w, int h, int d) -{ - (void)Create(w, h, d); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth) -{ - (void) Create(data, type, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxString& filename, long type) -{ - LoadFile(filename, (int)type); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -/* TODO: maybe allow creation from XPM -// Create from data -wxBitmap::wxBitmap(const char **data) -{ - (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); -} -*/ - -bool wxBitmap::Create(int w, int h, int d) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = d; - - /* TODO: create new bitmap */ - - return M_BITMAPDATA->m_ok; -} - -bool wxBitmap::LoadFile(const wxString& filename, long type) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->LoadFile(this, filename, type, -1, -1); -} - -bool wxBitmap::Create(void *data, long type, int width, int height, int depth) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->Create(this, data, type, width, height, depth); -} - -bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *palette) -{ - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->SaveFile(this, filename, type, palette); -} - -void wxBitmap::SetWidth(int w) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; -} - -void wxBitmap::SetHeight(int h) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_height = h; -} - -void wxBitmap::SetDepth(int d) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_depth = d; -} - -void wxBitmap::SetQuality(int q) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_quality = q; -} - -void wxBitmap::SetOk(bool isOk) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_ok = isOk; -} - -void wxBitmap::SetPalette(const wxPalette& palette) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapPalette = palette ; -} - -void wxBitmap::SetMask(wxMask *mask) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapMask = mask ; -} - -void wxBitmap::AddHandler(wxBitmapHandler *handler) -{ - sm_handlers.Append(handler); -} - -void wxBitmap::InsertHandler(wxBitmapHandler *handler) -{ - sm_handlers.Insert(handler); -} - -bool wxBitmap::RemoveHandler(const wxString& name) -{ - wxBitmapHandler *handler = FindHandler(name); - if ( handler ) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& name) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetName() == name ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& extension, long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetExtension() == extension && - (bitmapType == -1 || handler->GetType() == bitmapType) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if (handler->GetType() == bitmapType) - return handler; - node = node->Next(); - } - return NULL; -} - -/* - * wxMask - */ - -wxMask::wxMask() -{ -/* TODO - m_maskBitmap = 0; -*/ -} - -// Construct a mask from a bitmap and a colour indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour) -{ -/* TODO - m_maskBitmap = 0; -*/ - Create(bitmap, colour); -} - -// Construct a mask from a bitmap and a palette index indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap, paletteIndex); -} - -// Construct a mask from a mono bitmap (copies the bitmap). -wxMask::wxMask(const wxBitmap& bitmap) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap); -} - -wxMask::~wxMask() -{ -// TODO: delete mask bitmap -} - -// Create a mask from a mono bitmap (copies the bitmap). -bool wxMask::Create(const wxBitmap& bitmap) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a palette index indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a colour indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) -{ -// TODO - return FALSE; -} - -/* - * wxBitmapHandler - */ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) - -bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth) -{ - return FALSE; -} - -bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long type, - int desiredWidth, int desiredHeight) -{ - return FALSE; -} - -bool wxBitmapHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette) -{ - return FALSE; -} - -/* - * Standard handlers - */ - -/* TODO: bitmap handlers, a bit like this: -class WXDLLEXPORT wxBMPResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPResourceHandler) -public: - inline wxBMPResourceHandler() - { - m_name = "Windows bitmap resource"; - m_extension = ""; - m_type = wxBITMAP_TYPE_BMP_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); -}; -IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler) -*/ - -void wxBitmap::CleanUpHandlers() -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -void wxBitmap::InitStandardHandlers() -{ -/* TODO: initialize all standard bitmap or derive class handlers here. - AddHandler(new wxBMPResourceHandler); - AddHandler(new wxBMPFileHandler); - AddHandler(new wxXPMFileHandler); - AddHandler(new wxXPMDataHandler); - AddHandler(new wxICOResourceHandler); - AddHandler(new wxICOFileHandler); -*/ -} diff --git a/src/mac/carbon/bmpbuttn.cpp b/src/mac/carbon/bmpbuttn.cpp deleted file mode 100644 index 169f0d557a..0000000000 --- a/src/mac/carbon/bmpbuttn.cpp +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: wxBitmapButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) -#endif - -bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_buttonBitmap = bitmap; - SetName(name); - SetValidator(validator); - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - m_windowStyle = style; - m_marginX = 0; - m_marginY = 0; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - if ( width == -1 && bitmap.Ok()) - width = bitmap.GetWidth() + 2*m_marginX; - - if ( height == -1 && bitmap.Ok()) - height = bitmap.GetHeight() + 2*m_marginY; - - /* TODO: create bitmap button - */ - - return FALSE; -} - -void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) -{ - m_buttonBitmap = bitmap; -} - diff --git a/src/mac/carbon/brush.cpp b/src/mac/carbon/brush.cpp deleted file mode 100644 index 4f28e92f53..0000000000 --- a/src/mac/carbon/brush.cpp +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: wxBrush -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/brush.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif - -wxBrushRefData::wxBrushRefData() -{ - m_style = wxSOLID; -// TODO: null data -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -/* TODO: null data - m_hBrush = 0; -*/ -} - -wxBrushRefData::~wxBrushRefData() -{ -// TODO: delete data -} - -// Brushes -wxBrush::wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::~wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->RemoveBrush(this); -} - -wxBrush::wxBrush(const wxColour& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_stipple = stipple; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -void wxBrush::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxBrush::SetColour(const wxColour& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_BRUSHDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxBrush::SetStyle(int Style) -{ - Unshare(); - - M_BRUSHDATA->m_style = Style; - - RealizeResource(); -} - -void wxBrush::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_BRUSHDATA->m_stipple = Stipple; - - RealizeResource(); -} - -bool wxBrush::RealizeResource() -{ -// TODO: create the brush - return FALSE; -} - diff --git a/src/mac/carbon/button.cpp b/src/mac/carbon/button.cpp deleted file mode 100644 index befd0d7156..0000000000 --- a/src/mac/carbon/button.cpp +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: wxButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -// Button - -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - parent->AddChild((wxButton *)this); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create button - - return FALSE; -} - -void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxButton::SetDefault() -{ - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - parent->SetDefaultItem(this); - - // TODO: make button the default -} - -wxString wxButton::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxButton::Command (wxCommandEvent & event) -{ - ProcessCommand (event); -} - diff --git a/src/mac/carbon/checkbox.cpp b/src/mac/carbon/checkbox.cpp deleted file mode 100644 index dd2e2abe7a..0000000000 --- a/src/mac/carbon/checkbox.cpp +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: wxCheckBox -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create checkbox - - return FALSE; -} - -void wxCheckBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxCheckBox::GetValue() const -{ - // TODO - return FALSE; -} - -void wxCheckBox::Command (wxCommandEvent & event) -{ - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -// Bitmap checkbox -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: Create the bitmap checkbox - - return FALSE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap *bitmap) -{ - // TODO -} - -void wxBitmapCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxBitmapCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxBitmapCheckBox::GetValue() const -{ - // TODOD - return FALSE; -} - - diff --git a/src/mac/carbon/checklst.cpp b/src/mac/carbon/checklst.cpp deleted file mode 100644 index 2f43152c2a..0000000000 --- a/src/mac/carbon/checklst.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: implementation of wxCheckListBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -#include "wx/checklst.h" - -// ============================================================================ -// implementation -// ============================================================================ - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox) -#endif - -// ---------------------------------------------------------------------------- -// implementation of wxCheckListBox class -// ---------------------------------------------------------------------------- - -// define event table -// ------------------ -BEGIN_EVENT_TABLE(wxCheckListBox, wxListBox) -END_EVENT_TABLE() - -// control creation -// ---------------- - -// def ctor: use Create() to really create the control -wxCheckListBox::wxCheckListBox() : wxListBox() -{ -} - -// ctor which creates the associated control -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - int nStrings, const wxString choices[], - long style, const wxValidator& val, - const wxString& name) - : wxListBox() -{ - // TODO: you'll probably need a separate Create instead of using - // the wxListBox one as here. - Create(parent, id, pos, size, nStrings, choices, style|wxLB_OWNERDRAW, val, name); -} - -// check items -// ----------- - -bool wxCheckListBox::IsChecked(size_t uiIndex) const -{ - // TODO - return FALSE; -} - -void wxCheckListBox::Check(size_t uiIndex, bool bCheck) -{ - // TODO -} - - diff --git a/src/mac/carbon/choice.cpp b/src/mac/carbon/choice.cpp deleted file mode 100644 index a584d5303f..0000000000 --- a/src/mac/carbon/choice.cpp +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/choice.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -bool wxChoice::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create choice control - return FALSE; -} - -void wxChoice::Append(const wxString& item) -{ - // TODO - m_noStrings ++; -} - -void wxChoice::Delete(int n) -{ - // TODO - m_noStrings --; -} - -void wxChoice::Clear() -{ - // TODO - m_noStrings = 0; -} - -int wxChoice::GetSelection() const -{ - // TODO - return 0; -} - -void wxChoice::SetSelection(int n) -{ - // TODO -} - -int wxChoice::FindString(const wxString& s) const -{ - // TODO - return 0; -} - -wxString wxChoice::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxChoice::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -wxString wxChoice::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return wxString(this->GetString (sel)); - else - return wxString(""); -} - -bool wxChoice::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxChoice::Command(wxCommandEvent & event) -{ - SetSelection (event.GetInt()); - ProcessCommand (event); -} - diff --git a/src/mac/carbon/clipbrd.cpp b/src/mac/carbon/clipbrd.cpp deleted file mode 100644 index 3fe9ebfb72..0000000000 --- a/src/mac/carbon/clipbrd.cpp +++ /dev/null @@ -1,237 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: Clipboard functionality -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma implementation "clipbrd.h" -#endif - -#include "wx/app.h" -#include "wx/frame.h" -#include "wx/bitmap.h" -#include "wx/utils.h" -#include "wx/metafile.h" -#include "wx/clipbrd.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject) -#endif - -bool wxOpenClipboard() -{ - // TODO - return FALSE; -} - -bool wxCloseClipboard() -{ - // TODO - return FALSE; -} - -bool wxEmptyClipboard() -{ - // TODO - return FALSE; -} - -bool wxClipboardOpen() -{ - // TODO - return FALSE; -} - -bool wxIsClipboardFormatAvailable(int dataFormat) -{ - // TODO - return FALSE; -} - -bool wxSetClipboardData(int dataFormat, wxObject *obj, int width, int height) -{ - // TODO - return FALSE; -} - -wxObject *wxGetClipboardData(int dataFormat, long *len) -{ - // TODO - return NULL; -} - -int wxEnumClipboardFormats(int dataFormat) -{ - // TODO - return 0; -} - -int wxRegisterClipboardFormat(char *formatName) -{ - // TODO - return 0; -} - -bool wxGetClipboardFormatName(int dataFormat, char *formatName, int maxCount) -{ - // TODO - return FALSE; -} - -/* - * Generalized clipboard implementation by Matthew Flatt - */ - -wxClipboard *wxTheClipboard = NULL; - -void wxInitClipboard() -{ - if (!wxTheClipboard) - wxTheClipboard = new wxClipboard; -} - -wxClipboard::wxClipboard() -{ - clipOwner = NULL; - cbString = NULL; -} - -wxClipboard::~wxClipboard() -{ - if (clipOwner) - clipOwner->BeingReplaced(); - if (cbString) - delete[] cbString; -} - -static int FormatStringToID(char *str) -{ - if (!strcmp(str, "TEXT")) - return wxDF_TEXT; - - return wxRegisterClipboardFormat(str); -} - -void wxClipboard::SetClipboardClient(wxClipboardClient *client, long time) -{ - bool got_selection; - - if (clipOwner) - clipOwner->BeingReplaced(); - clipOwner = client; - if (cbString) { - delete[] cbString; - cbString = NULL; - } - - if (wxOpenClipboard()) { - char **formats, *data; - int i; - int ftype; - long size; - - formats = clipOwner->formats.ListToArray(FALSE); - for (i = clipOwner->formats.Number(); i--; ) { - ftype = FormatStringToID(formats[i]); - data = clipOwner->GetData(formats[i], &size); - if (!wxSetClipboardData(ftype, (wxObject *)data, size, 1)) { - got_selection = FALSE; - break; - } - } - - if (i < 0) - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } -} - -wxClipboardClient *wxClipboard::GetClipboardClient() -{ - return clipOwner; -} - -void wxClipboard::SetClipboardString(char *str, long time) -{ - bool got_selection; - - if (clipOwner) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } - if (cbString) - delete[] cbString; - - cbString = str; - - if (wxOpenClipboard()) { - if (!wxSetClipboardData(wxDF_TEXT, (wxObject *)str)) - got_selection = FALSE; - else - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - delete[] cbString; - cbString = NULL; - } -} - -char *wxClipboard::GetClipboardString(long time) -{ - char *str; - long length; - - str = GetClipboardData("TEXT", &length, time); - if (!str) { - str = new char[1]; - *str = 0; - } - - return str; -} - -char *wxClipboard::GetClipboardData(char *format, long *length, long time) -{ - if (clipOwner) { - if (clipOwner->formats.Member(format)) - return clipOwner->GetData(format, length); - else - return NULL; - } else if (cbString) { - if (!strcmp(format, "TEXT")) - return copystring(cbString); - else - return NULL; - } else { - if (wxOpenClipboard()) { - receivedString = (char *)wxGetClipboardData(FormatStringToID(format), - length); - wxCloseClipboard(); - } else - receivedString = NULL; - - return receivedString; - } -} - diff --git a/src/mac/carbon/colordlg.cpp b/src/mac/carbon/colordlg.cpp deleted file mode 100644 index 2275a9a39d..0000000000 --- a/src/mac/carbon/colordlg.cpp +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.cpp -// Purpose: wxColourDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colordlg.h" -#endif - -#include "wx/stubs/colordlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) -#endif - -/* - * wxColourDialog - */ - -wxColourDialog::wxColourDialog() -{ - m_dialogParent = NULL; -} - -wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) -{ - Create(parent, data); -} - -bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) -{ - m_dialogParent = parent; - - if (data) - m_colourData = *data; - return TRUE; -} - -int wxColourDialog::ShowModal() -{ - /* TODO: implement dialog - */ - - return wxID_CANCEL; -} - diff --git a/src/mac/carbon/colour.cpp b/src/mac/carbon/colour.cpp deleted file mode 100644 index 8d0827ef1d..0000000000 --- a/src/mac/carbon/colour.cpp +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/colour.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -#endif - -// Colour - -wxColour::wxColour () -{ - m_isInit = FALSE; - m_red = m_blue = m_green = 0; -/* TODO - m_pixel = 0; -*/ -} - -wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::wxColour (const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ -} - -wxColour& wxColour::operator =(const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ - return *this; -} - -void wxColour::InitFromName(const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::~wxColour () -{ -} - -void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} diff --git a/src/mac/carbon/combobox.cpp b/src/mac/carbon/combobox.cpp deleted file mode 100644 index 0be841bad4..0000000000 --- a/src/mac/carbon/combobox.cpp +++ /dev/null @@ -1,165 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -bool wxComboBox::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create combobox control - - return TRUE; -} - -wxString wxComboBox::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxComboBox::SetValue(const wxString& value) -{ - // TODO -} - -// Clipboard operations -void wxComboBox::Copy() -{ - // TODO -} - -void wxComboBox::Cut() -{ - // TODO -} - -void wxComboBox::Paste() -{ - // TODO -} - -void wxComboBox::SetEditable(bool editable) -{ - // TODO -} - -void wxComboBox::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxComboBox::SetInsertionPointEnd() -{ - // TODO -} - -long wxComboBox::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxComboBox::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxComboBox::Remove(long from, long to) -{ - // TODO -} - -void wxComboBox::SetSelection(long from, long to) -{ - // TODO -} - -void wxComboBox::Append(const wxString& item) -{ - // TODO -} - -void wxComboBox::Delete(int n) -{ - // TODO -} - -void wxComboBox::Clear() -{ - // TODO -} - -int wxComboBox::GetSelection() const -{ - // TODO - return -1; -} - -void wxComboBox::SetSelection(int n) -{ - // TODO -} - -int wxComboBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -wxString wxComboBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -wxString wxComboBox::GetStringSelection() const -{ - // TODO - return wxString(""); -} - -bool wxComboBox::SetStringSelection(const wxString& sel) -{ - // TODO - return FALSE; -} diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp deleted file mode 100644 index b141a80ff1..0000000000 --- a/src/mac/carbon/control.cpp +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -BEGIN_EVENT_TABLE(wxControl, wxWindow) -END_EVENT_TABLE() -#endif - -// Item members -wxControl::wxControl() -{ - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - m_callback = 0; -} - -wxControl::~wxControl() -{ - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem(NULL); - } -} - -void wxControl::SetLabel(const wxString& label) -{ - // TODO -} - -wxString wxControl::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxControl::ProcessCommand (wxCommandEvent & event) -{ - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - } - else - { - GetEventHandler()->OnCommand(*this, event); - } -} - -void wxControl::Centre (int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; - - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); - - new_x = x; - new_y = y; - - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); - - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); - - SetSize (new_x, new_y, width, height); -} - diff --git a/src/mac/carbon/corersrc.r b/src/mac/carbon/corersrc.r deleted file mode 100644 index 46850cfcc3..0000000000 --- a/src/mac/carbon/corersrc.r +++ /dev/null @@ -1,539 +0,0 @@ -#include - -resource 'ALRT' (128, purgeable) { - {70, 50, 198, 470}, - 128, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (129, purgeable) { - {70, 50, 198, 470}, - 129, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (130, purgeable) { - {70, 50, 198, 470}, - 130, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (131, purgeable) { - {70, 50, 198, 470}, - 131, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (132, purgeable) { - {70, 50, 198, 470}, - 132, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'DITL' (128, purgeable) { - { /* array DITLarray: 3 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "OK" - }, - /* [2] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [3] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (129, purgeable) { - { /* array DITLarray: 4 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "Yes" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "No" - }, - /* [3] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [4] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (130, purgeable) { - { /* array DITLarray: 5 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "Yes" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "No" - }, - /* [3] */ - {100, 65, 120, 145}, - Button { - enabled, - "Cancel" - }, - /* [4] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [5] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (131, purgeable) { - { /* array DITLarray: 4 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "No" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "Yes" - }, - /* [3] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [4] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (132, purgeable) { - { /* array DITLarray: 5 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "No" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "Yes" - }, - /* [3] */ - {100, 65, 120, 145}, - Button { - enabled, - "Cancel" - }, - /* [4] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [5] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -data 'DLGX' (128) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0003 0002 0000 0000 0000 0000 0000 0006" /* ................ */ - $"0000 0000 0000 0000 0000 0006 0000 0000" /* ................ */ - $"0000 0000 0000" /* ...... */ -}; - -data 'DLGX' (129) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0004 0002 0000 0000 0000 0000 0000 0002" /* ................ */ - $"0000 0000 0000 0000 0000 0006 0000 0000" /* ................ */ - $"0000 0000 0000 0006 0000 0000 0000 0000" /* ................ */ - $"0000" /* .. */ -}; - -data 'DLGX' (131) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0004 0002 0000 0000 0000 0000 0000 0002" /* ................ */ - $"0000 0000 0000 0000 0000 0006 0000 0000" /* ................ */ - $"0000 0000 0000 0006 0000 0000 0000 0000" /* ................ */ - $"0000" /* .. */ -}; - -data 'DLGX' (132) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0005 0002 0000 0000 0000 0000 0000 0002" /* ................ */ - $"0000 0000 0000 0000 0000 0002 0000 0000" /* ................ */ - $"0000 0000 0000 0006 0000 0000 0000 0000" /* ................ */ - $"0000 0006 0000 0000 0000 0000 0000" /* .............. */ -}; - -data 'ics#' (200, "¥ New File") { - $"0000 3FE0 2C70 3458 2C78 3408 2C08 3408" /* ..?à,p4X,x4.,.4. */ - $"2C08 3408 2C08 3408 2C0E 340F 3FFE 0000" /* ,.4.,.4.,.4.?þ.. */ - $"0000 3FE0 3FF0 3FF8 3FF8 3FF8 3FF8 3FF8" /* ..?à?ð?ø?ø?ø?ø?ø */ - $"3FF8 3FF8 3FF8 3FF8 3FFE 3FFF 3FFE 0000" /* ?ø?ø?ø?ø?þ?ÿ?þ.. */ -}; - -data 'ics4' (200, "¥ New File") { - $"0000 0000 0000 0000 00FF FFFF FFF0 0000" /* .........ÿÿÿÿð.. */ - $"00F1 FFED EFFF 0000 00FF 1FDE DFCF F000" /* .ñÿíïÿ...ÿ.ÞßÏð. */ - $"00F1 FFED EFFF F000 00FF 1FDE DEEE F000" /* .ñÿíïÿð..ÿ.ÞÞîð. */ - $"00F1 FFED EDED F000 00FF 1FDE DEDE F000" /* .ñÿíííð..ÿ.ÞÞÞð. */ - $"00F1 FFED EDED F000 00FF 1FDE DEDE F000" /* .ñÿíííð..ÿ.ÞÞÞð. */ - $"00F1 FFED EDED F000 00FF 1FDE DEDE F000" /* .ñÿíííð..ÿ.ÞÞÞð. */ - $"00F1 FFED EDED FEE0 00FF 1FDE DEDE FEEE" /* .ñÿíííþà.ÿ.ÞÞÞþî */ - $"00FF FFFF FFFF FEE0 0000 0000 0000 0000" /* .ÿÿÿÿÿþà........ */ -}; - -data 'ics8' (200, "¥ New File") { - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 FFFF FFFF FFFF FFFF FF00 0000 0000" /* ..ÿÿÿÿÿÿÿÿÿ..... */ - $"0000 FF05 FFFF FB7F FBFF FFFF 0000 0000" /* ..ÿ.ÿÿû.ûÿÿÿ.... */ - $"0000 FFFF 0BFF 7FFB 7FFF F6FF FF00 0000" /* ..ÿÿ.ÿ.û.ÿöÿÿ... */ - $"0000 FF05 FFFF FB7F FBFF FFFF FF00 0000" /* ..ÿ.ÿÿû.ûÿÿÿÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB FBFB FF00 0000" /* ..ÿÿ.ÿ.û.ûûûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FF00 0000" /* ..ÿ.ÿÿû.û.û.ÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FF00 0000" /* ..ÿÿ.ÿ.û.û.ûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FF00 0000" /* ..ÿ.ÿÿû.û.û.ÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FF00 0000" /* ..ÿÿ.ÿ.û.û.ûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FF00 0000" /* ..ÿ.ÿÿû.û.û.ÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FF00 0000" /* ..ÿÿ.ÿ.û.û.ûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FFFC FC00" /* ..ÿ.ÿÿû.û.û.ÿüü. */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FFFC FCFC" /* ..ÿÿ.ÿ.û.û.ûÿüüü */ - $"0000 FFFF FFFF FFFF FFFF FFFF FFFC FC00" /* ..ÿÿÿÿÿÿÿÿÿÿÿüü. */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ -}; - -resource 'ldes' ( 128 ) -{ - versionZero - { - 0 , - 1 , - 0 , - 0 , - hasVertScroll , - noHorizScroll , - 0 , - noGrowSpace , - } -} ; - -resource 'CURS' (9, "Hand") { - $"01 80 1A 70 26 48 26 4A 12 4D 12 49 68 09 98 01" - $"88 02 40 02 20 02 20 04 10 04 08 08 04 08 04 08", - $"01 80 1B F0 3F F8 3F FA 1F FF 1F FF 7F FF FF FF" - $"FF FE 7F FE 3F FE 3F FC 1F FC 0F F8 07 F8 07 F8", - {9, 8} -}; - -resource 'CURS' (10, "SizeWE") { - $"0000 0180 0180 0180 0180 1188 318C 7FFE" - $"318C 1188 0180 0180 0180 0180", - $"03C0 03C0 03C0 03C0 1BD8 3BDC 7BFE FFFF" - $"7FFE 3BDC 1BD8 03C0 03C0 03C0 03C0", - {7, 7} -}; - -resource 'CURS' (11, "Size NS") { - $"0000 0080 01C0 03E0 0080 0080 0080 3FFE" - $"3FFE 0080 0080 0080 03E0 01C0 0080", - $"0080 01C0 03E0 07F0 07F0 0180 7FFF 7FFF" - $"7FFF 7FFF 01C0 07F0 07F0 03E0 01C0 0080", - {7, 7} -}; - -// get folder - -resource 'DITL' (250, purgeable) { - { /* array DITLarray: 11 elements */ - /* [1] */ - {157, 253, 177, 333}, - Button { - enabled, - "Open" - }, - /* [2] */ - {126, 253, 146, 333}, - Button { - enabled, - "Cancel" - }, - /* [3] */ - {0, 0, 0, 0}, - HelpItem { - disabled, - HMScanhdlg { - -6043 - } - }, - /* [4] */ - {30, 236, 46, 338}, - UserItem { - enabled - }, - /* [5] */ - {54, 253, 74, 333}, - Button { - enabled, - "Eject" - }, - /* [6] */ - {82, 253, 102, 333}, - Button { - enabled, - "Desktop" - }, - /* [7] */ - {51, 13, 181, 231}, - UserItem { - enabled - }, - /* [8] */ - {28, 13, 47, 231}, - UserItem { - enabled - }, - /* [9] */ - {113, 252, 114, 334}, - Picture { - disabled, - 11 - }, - /* [10] */ - {189, 24, 209, 211}, - Button { - enabled, - "" - }, - /* [11] */ - {6, 15, 23, 300}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DLOG' (250, purgeable) { - {0, 0, 215, 344}, - dBoxProc, - invisible, - noGoAway, - 0x0, - 250, - "" , 0 -}; - -resource 'STR#' (250) { - { /* array StringArray: 3 elements */ - /* [1] */ - "Select \"^0\"", - /* [2] */ - "Desktop", - /* [3] */ - "Select ^0" - } -}; - -// end of get folder - -// get file - -resource 'DITL' (251, purgeable) { - { /* array DITLarray: 11 elements */ - /* [1] */ - {157, 253, 177, 333}, - Button { - enabled, - "Open" - }, - /* [2] */ - {126, 253, 146, 333}, - Button { - enabled, - "Cancel" - }, - /* [3] */ - {0, 0, 0, 0}, - HelpItem { - disabled, - HMScanhdlg { - -6043 - } - }, - /* [4] */ - {30, 236, 46, 338}, - UserItem { - enabled - }, - /* [5] */ - {54, 253, 74, 333}, - Button { - enabled, - "Eject" - }, - /* [6] */ - {82, 253, 102, 333}, - Button { - enabled, - "Desktop" - }, - /* [7] */ - {51, 13, 181, 231}, - UserItem { - enabled - }, - /* [8] */ - {28, 13, 47, 231}, - UserItem { - enabled - }, - /* [9] */ - {113, 252, 114, 334}, - Picture { - disabled, - 11 - }, - /* [10] */ - {6, 15, 23, 300}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DLOG' (251, purgeable) { - {0, 0, 195, 344}, - dBoxProc, - invisible, - noGoAway, - 0x0, - 251, - "" , 0 -}; - -resource 'STR#' (251) { - { /* array StringArray: 3 elements */ - /* [1] */ - "Select \"^0\"", - /* [2] */ - "Desktop", - /* [3] */ - "Select ^0" - } -}; - -// end of get file \ No newline at end of file diff --git a/src/mac/carbon/cursor.cpp b/src/mac/carbon/cursor.cpp deleted file mode 100644 index 4333364c93..0000000000 --- a/src/mac/carbon/cursor.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -#endif - -wxCursorRefData::wxCursorRefData() -{ - m_width = 32; m_height = 32; - -/* TODO - m_hCursor = 0 ; -*/ -} - -wxCursorRefData::~wxCursorRefData() -{ - // TODO: destroy cursor -} - -// Cursors -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), const char WXUNUSED(maskBits)[]) -{ -} - -wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) -{ - m_refData = new wxCursorRefData; - - // TODO: create cursor from a file -} - -// Cursors by stock number -wxCursor::wxCursor(int cursor_type) -{ - m_refData = new wxCursorRefData; - -/* TODO - switch (cursor_type) - { - case wxCURSOR_WAIT: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_WAIT); - break; - case wxCURSOR_IBEAM: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_IBEAM); - break; - case wxCURSOR_CROSS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_CROSS); - break; - case wxCURSOR_SIZENWSE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENWSE); - break; - case wxCURSOR_SIZENESW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENESW); - break; - case wxCURSOR_SIZEWE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZEWE); - break; - case wxCURSOR_SIZENS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENS); - break; - case wxCURSOR_CHAR: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_HAND: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_HAND"); - break; - } - case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BULLSEYE"); - break; - } - case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PENCIL"); - break; - } - case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_MAGNIFIER"); - break; - } - case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_NO_ENTRY"); - break; - } - case wxCURSOR_LEFT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_RIGHT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_MIDDLE_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_SIZING: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_SIZING"); - break; - } - case wxCURSOR_WATCH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_WATCH"); - break; - } - case wxCURSOR_SPRAYCAN: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_ROLLER"); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PBRUSH"); - break; - } - case wxCURSOR_POINT_LEFT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PLEFT"); - break; - } - case wxCURSOR_POINT_RIGHT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PRIGHT"); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_QARROW"); - break; - } - case wxCURSOR_BLANK: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BLANK"); - break; - } - default: - case wxCURSOR_ARROW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } -*/ - -} - -wxCursor::~wxCursor() -{ -} - -// Global cursor setting -void wxSetCursor(const wxCursor& cursor) -{ - // TODO (optional on platforms with no global cursor) -} - - diff --git a/src/mac/carbon/data.cpp b/src/mac/carbon/data.cpp deleted file mode 100644 index 138289a5bf..0000000000 --- a/src/mac/carbon/data.cpp +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: Various data -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wx.h" - -#if wxUSE_POSTSCRIPT -#include "wx/generic/dcpsg.h" -#endif - -#define _MAXPATHLEN 500 - -// Useful buffer, initialized in CommonInit -char *wxBuffer = NULL; - -// Windows List -wxList wxTopLevelWindows; - -// List of windows pending deletion -wxList wxPendingDelete; - -int wxPageNumber; - -// GDI Object Lists -wxBrushList *wxTheBrushList = NULL; -wxPenList *wxThePenList = NULL; -wxFontList *wxTheFontList = NULL; -wxBitmapList *wxTheBitmapList = NULL; - -wxColourDatabase *wxTheColourDatabase = NULL; - -// Stock objects -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; -wxPen *wxRED_PEN; - -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = NULL; -wxCursor *wxHOURGLASS_CURSOR = NULL; -wxCursor *wxCROSS_CURSOR = NULL; - -// 'Null' objects -wxAcceleratorTable wxNullAcceleratorTable; -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxPalette wxNullPalette; -wxFont wxNullFont; -wxColour wxNullColour; - -// Default window names -const char *wxButtonNameStr = "button"; -const char *wxCanvasNameStr = "canvas"; -const char *wxCheckBoxNameStr = "check"; -const char *wxChoiceNameStr = "choice"; -const char *wxComboBoxNameStr = "comboBox"; -const char *wxDialogNameStr = "dialog"; -const char *wxFrameNameStr = "frame"; -const char *wxGaugeNameStr = "gauge"; -const char *wxStaticBoxNameStr = "groupBox"; -const char *wxListBoxNameStr = "listBox"; -const char *wxStaticTextNameStr = "message"; -const char *wxStaticBitmapNameStr = "message"; -const char *wxMultiTextNameStr = "multitext"; -const char *wxPanelNameStr = "panel"; -const char *wxRadioBoxNameStr = "radioBox"; -const char *wxRadioButtonNameStr = "radioButton"; -const char *wxBitmapRadioButtonNameStr = "radioButton"; -const char *wxScrollBarNameStr = "scrollBar"; -const char *wxSliderNameStr = "slider"; -const char *wxStaticNameStr = "static"; -const char *wxTextCtrlWindowNameStr = "textWindow"; -const char *wxTextCtrlNameStr = "text"; -const char *wxVirtListBoxNameStr = "virtListBox"; -const char *wxButtonBarNameStr = "buttonbar"; -const char *wxEnhDialogNameStr = "Shell"; -const char *wxToolBarNameStr = "toolbar"; -const char *wxStatusLineNameStr = "status_line"; -const char *wxEmptyString = ""; -const char *wxGetTextFromUserPromptStr = "Input Text"; -const char *wxMessageBoxCaptionStr = "Message"; -const char *wxFileSelectorPromptStr = "Select a file"; -const char *wxFileSelectorDefaultWildcardStr = "*.*"; -const char *wxInternalErrorStr = "wxWindows Internal Error"; -const char *wxFatalErrorStr = "wxWindows Fatal Error"; - -// See wx/utils.h -const char *wxFloatToStringStr = "%.2f"; -const char *wxDoubleToStringStr = "%.2f"; - -#if wxUSE_SHARED_LIBRARY -///// Event tables (also must be in one, statically-linked file for shared libraries) - -// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here -const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } - -const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; -#endif - -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/mac/carbon/dc.cpp b/src/mac/carbon/dc.cpp deleted file mode 100644 index 2c1c613595..0000000000 --- a/src/mac/carbon/dc.cpp +++ /dev/null @@ -1,385 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dc.h" -#endif - -#include "wx/dc.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -#endif - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -wxDC::wxDC(void) -{ - m_ok = FALSE; - m_optimize = FALSE; - m_autoSetting = FALSE; - m_colour = TRUE; - m_clipping = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_logicalOriginX = 0; - m_logicalOriginY = 0; - m_deviceOriginX = 0; - m_deviceOriginY = 0; - m_internalDeviceOriginX = 0; - m_internalDeviceOriginY = 0; - m_externalDeviceOriginX = 0; - m_externalDeviceOriginY = 0; - - m_logicalScaleX = 1.0; - m_logicalScaleY = 1.0; - m_userScaleX = 1.0; - m_userScaleY = 1.0; - m_scaleX = 1.0; - m_scaleY = 1.0; - - m_mappingMode = wxMM_TEXT; - m_needComputeScaleX = FALSE; - m_needComputeScaleY = FALSE; - - m_signX = 1; // default x-axis left to right - m_signY = 1; // default y-axis top down - - m_maxX = m_maxY = -100000; - m_minY = m_minY = 100000; - - m_logicalFunction = wxCOPY; -// m_textAlignment = wxALIGN_TOP_LEFT; - m_backgroundMode = wxTRANSPARENT; - - m_textForegroundColour = *wxBLACK; - m_textBackgroundColour = *wxWHITE; - m_pen = *wxBLACK_PEN; - m_font = *wxNORMAL_FONT; - m_brush = *wxTRANSPARENT_BRUSH; - m_backgroundBrush = *wxWHITE_BRUSH; - -// m_palette = wxAPP_COLOURMAP; -}; - -wxDC::~wxDC(void) -{ -}; - -void wxDC::DrawIcon( const wxIcon &WXUNUSED(icon), long WXUNUSED(x), long WXUNUSED(y), bool WXUNUSED(useMask) ) -{ -}; - -void wxDC::DrawPoint( wxPoint& point ) -{ - DrawPoint( point.x, point.y ); -}; - -void wxDC::DrawPolygon( wxList *list, long xoffset, long yoffset, int fillStyle ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawPolygon( n, points, xoffset, yoffset, fillStyle ); - delete[] points; -}; - -void wxDC::DrawLines( wxList *list, long xoffset, long yoffset ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawLines( n, points, xoffset, yoffset ); - delete []points; -}; - -void wxDC::DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ) -{ - wxList list; - list.Append( (wxObject*)new wxPoint(x1, y1) ); - list.Append( (wxObject*)new wxPoint(x2, y2) ); - list.Append( (wxObject*)new wxPoint(x3, y3) ); - DrawSpline(&list); - wxNode *node = list.First(); - while (node) - { - wxPoint *p = (wxPoint*)node->Data(); - delete p; - node = node->Next(); - }; -}; - -void wxDC::DrawSpline( int n, wxPoint points[] ) -{ - wxList list; - for (int i = 0; i < n; i++) list.Append( (wxObject*)&points[i] ); - DrawSpline( &list ); -}; - -void wxDC::SetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -}; - -void wxDC::DestroyClippingRegion(void) -{ - m_clipping = FALSE; -}; - -void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const -{ - if (m_clipping) - { - if (x) *x = m_clipX1; - if (y) *y = m_clipY1; - if (width) *width = (m_clipX2 - m_clipX1); - if (height) *height = (m_clipY2 - m_clipY1); - } - else - *x = *y = *width = *height = 0; -}; - -void wxDC::GetSize( int* width, int* height ) const -{ - *width = m_maxX-m_minX; - *height = m_maxY-m_minY; -}; - -void wxDC::GetSizeMM( long* width, long* height ) const -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - *width = long( double(w) / (m_scaleX*m_mm_to_pix_x) ); - *height = long( double(h) / (m_scaleY*m_mm_to_pix_y) ); -}; - -void wxDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - m_textForegroundColour = col; -}; - -void wxDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - m_textBackgroundColour = col; -}; - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - }; - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - }; -}; - -void wxDC::SetUserScale( double x, double y ) -{ - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetUserScale( double *x, double *y ) -{ - if (x) *x = m_userScaleX; - if (y) *y = m_userScaleY; -}; - -void wxDC::SetLogicalScale( double x, double y ) -{ - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalScale( double *x, double *y ) -{ - if (x) *x = m_logicalScaleX; - if (y) *y = m_logicalScaleY; -}; - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalOrigin( long *x, long *y ) -{ - if (x) *x = m_logicalOriginX; - if (y) *y = m_logicalOriginY; -}; - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - m_externalDeviceOriginX = x; - m_externalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetDeviceOrigin( long *x, long *y ) -{ -// if (x) *x = m_externalDeviceOriginX; -// if (y) *y = m_externalDeviceOriginY; - if (x) *x = m_deviceOriginX; - if (y) *y = m_deviceOriginY; -}; - -void wxDC::SetInternalDeviceOrigin( long x, long y ) -{ - m_internalDeviceOriginX = x; - m_internalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetInternalDeviceOrigin( long *x, long *y ) -{ - if (x) *x = m_internalDeviceOriginX; - if (y) *y = m_internalDeviceOriginY; -}; - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -}; - -long wxDC::DeviceToLogicalX(long x) const -{ - return XDEV2LOG(x); -}; - -long wxDC::DeviceToLogicalY(long y) const -{ - return YDEV2LOG(y); -}; - -long wxDC::DeviceToLogicalXRel(long x) const -{ - return XDEV2LOGREL(x); -}; - -long wxDC::DeviceToLogicalYRel(long y) const -{ - return YDEV2LOGREL(y); -}; - -long wxDC::LogicalToDeviceX(long x) const -{ - return XLOG2DEV(x); -}; - -long wxDC::LogicalToDeviceY(long y) const -{ - return YLOG2DEV(y); -}; - -long wxDC::LogicalToDeviceXRel(long x) const -{ - return XLOG2DEVREL(x); -}; - -long wxDC::LogicalToDeviceYRel(long y) const -{ - return YLOG2DEVREL(y); -}; - -void wxDC::CalcBoundingBox( long x, long y ) -{ - if (x < m_minX) m_minX = x; - if (y < m_minY) m_minY = y; - if (x > m_maxX) m_maxX = x; - if (y > m_maxY) m_maxY = y; -}; - -void wxDC::ComputeScaleAndOrigin(void) -{ - // CMB: copy scale to see if it changes - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; - - m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX; - m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY; - - // CMB: if scale has changed call SetPen to recalulate the line width - if (m_scaleX != origScaleX || m_scaleY != origScaleY) - { - // this is a bit artificial, but we need to force wxDC to think - // the pen has changed - wxPen* pen = & GetPen(); - wxPen tempPen; - m_pen = tempPen; - SetPen(* pen); - } -}; - diff --git a/src/mac/carbon/dcclient.cpp b/src/mac/carbon/dcclient.cpp deleted file mode 100644 index 925d9609ee..0000000000 --- a/src/mac/carbon/dcclient.cpp +++ /dev/null @@ -1,635 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: wxClientDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/region.h" -#include - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) -#endif - -/* - * wxWindowDC - */ - -wxWindowDC::wxWindowDC(void) -{ -}; - -wxWindowDC::wxWindowDC( wxWindow *window ) -{ -}; - -wxWindowDC::~wxWindowDC(void) -{ -}; - -void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1), - const wxColour& WXUNUSED(col), int WXUNUSED(style) ) -{ -}; - -bool wxWindowDC::GetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - return FALSE; -}; - -void wxWindowDC::DrawLine( long x1, long y1, long x2, long y2 ) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::CrossHair( long x, long y ) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) -{ - if (!Ok()) return; - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV((long)xc); - long yyc = YLOG2DEV((long)yc); - double dx = xx1 - xxc; - double dy = yy1 - yyc; - double radius = sqrt(dx*dx+dy*dy); - long r = (long)radius; - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else - if (radius == 0.0) - { - radius1 = radius2 = 0.0; - } - else - { - radius1 = (xx1 - xxc == 0) ? - (yy1 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy1-yyc), double(xx1-xxc)) * RAD2DEG; - radius2 = (xx2 - xxc == 0) ? - (yy2 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy2-yyc), double(xx2-xxc)) * RAD2DEG; - }; - long alpha1 = long(radius1 * 64.0); - long alpha2 = long((radius2 - radius1) * 64.0); - while (alpha2 <= 0) alpha2 += 360*64; - while (alpha1 > 360*64) alpha1 -= 360*64; - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; - -}; - -void wxWindowDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - long start = long(sa * 64.0); - long end = long(ea * 64.0); - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawPoint( long x, long y ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - for (int i = 0; i < n-1; i++) - { - long x1 = XLOG2DEV(points[i].x + xoffset); - long x2 = XLOG2DEV(points[i+1].x + xoffset); - long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste - long y2 = YLOG2DEV(points[i+1].y + yoffset); - }; -}; - -void wxWindowDC::DrawLines( wxList *points, long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - wxNode *node = points->First(); - while (node->Next()) - { - wxPoint *point = (wxPoint*)node->Data(); - wxPoint *npoint = (wxPoint*)node->Next()->Data(); - long x1 = XLOG2DEV(point->x + xoffset); - long x2 = XLOG2DEV(npoint->x + xoffset); - long y1 = YLOG2DEV(point->y + yoffset); // and again... - long y2 = YLOG2DEV(npoint->y + yoffset); - node = node->Next(); - }; -}; - -void wxWindowDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[], - long WXUNUSED(xoffset), long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxWindowDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset), - long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxWindowDC::DrawRectangle( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - if (!Ok()) return; - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - long rr = XLOG2DEVREL((long)radius); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - // CMB: if radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rr == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - ww--; - hh--; - } - - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - long dd = 2 * rr; - if (dd > ww) dd = ww; - if (dd > hh) dd = hh; - rr = dd / 2; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - }; - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - }; -}; - -void wxWindowDC::DrawEllipse( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -bool wxWindowDC::CanDrawBitmap(void) const -{ - return TRUE; -}; - -void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask ) -{ - if (!Ok()) return; - - if (!icon.Ok()) return; - - int xx = XLOG2DEV(x); - int yy = YLOG2DEV(y); - -}; - -bool wxWindowDC::Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) ) -{ - if (!Ok()) return FALSE; - - // CMB 20/5/98: add blitting of bitmaps - if (source->IsKindOf(CLASSINFO(wxMemoryDC))) - { - wxMemoryDC* srcDC = (wxMemoryDC*)source; - /* - GdkBitmap* bmap = srcDC->m_selected.GetBitmap(); - if (bmap) - { - gdk_draw_bitmap ( - m_window, - m_textGC, - bmap, - source->DeviceToLogicalX(xsrc), source->DeviceToLogicalY(ysrc), - XLOG2DEV(xdest), YLOG2DEV(ydest), - source->DeviceToLogicalXRel(width), source->DeviceToLogicalYRel(height) - ); - return TRUE; - } - */ - } - - return TRUE; -}; - -void wxWindowDC::DrawText( const wxString &text, long x, long y, bool -WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - - - -bool wxWindowDC::CanGetTextExtent(void) const -{ - return TRUE; -}; - -void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height, - long *WXUNUSED(descent), long *WXUNUSED(externalLeading), - wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - -long wxWindowDC::GetCharWidth(void) -{ - if (!Ok()) return 0; - return 0; -}; - -long wxWindowDC::GetCharHeight(void) -{ - if (!Ok()) return 0; - return 0; -}; - -void wxWindowDC::Clear(void) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::SetFont( const wxFont &font ) -{ - if (!Ok()) return; - - m_font = font; -}; - -void wxWindowDC::SetPen( const wxPen &pen ) -{ - if (!Ok()) return; - - if (m_pen == pen) return; - - m_pen = pen; - - if (!m_pen.Ok()) return; -}; - -void wxWindowDC::SetBrush( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_brush == brush) return; - - m_brush = brush; - - if (!m_brush.Ok()) return; - -}; - -void wxWindowDC::SetBackground( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_backgroundBrush == brush) return; - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) return; - -}; - -void wxWindowDC::SetLogicalFunction( int function ) -{ - if (m_logicalFunction == function) return; -}; - -void wxWindowDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textForegroundColour == col) return; - - m_textForegroundColour = col; - if (!m_textForegroundColour.Ok()) return; -}; - -void wxWindowDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textBackgroundColour == col) return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) return; -}; - -void wxWindowDC::SetBackgroundMode( int mode ) -{ - m_backgroundMode = mode; - - if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT) - { - } -}; - -void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) ) -{ -}; - -void wxWindowDC::SetClippingRegion( long x, long y, long width, long height ) -{ - wxDC::SetClippingRegion( x, y, width, height ); - - // TODO - -}; - -void wxWindowDC::SetClippingRegion( const wxRegion& region ) -{ - wxRect box = region.GetBox(); - - wxDC::SetClippingRegion( box.x, box.y, box.width, box.height ); - - // TODO -} - -void wxWindowDC::DestroyClippingRegion(void) -{ - wxDC::DestroyClippingRegion(); - -}; - -// ----------------------------------- spline code ---------------------------------------- - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(void); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); - -wxList wx_spline_point_list; - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point( x1, y1 ); - wx_spline_add_point( xmid, ymid ); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - -/* utilities used by spline drawing routines */ - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack(void) -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint ; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0 ); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -void wxWindowDC::DrawSpline( wxList *points ) -{ - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point( cx1, cy1 ); - wx_spline_add_point( x2, y2 ); - - wx_spline_draw_point_array( this ); -}; diff --git a/src/mac/carbon/dcmemory.cpp b/src/mac/carbon/dcmemory.cpp deleted file mode 100644 index 7cbd330821..0000000000 --- a/src/mac/carbon/dcmemory.cpp +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxPaintDC) - -wxMemoryDC::wxMemoryDC(void) -{ - m_ok = FALSE; -}; - -wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) -{ - m_ok = FALSE; -}; - -wxMemoryDC::~wxMemoryDC(void) -{ -}; - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_selected = bitmap; - if (m_selected.Ok()) - { - } - else - { - m_ok = FALSE; - }; -}; - -void wxMemoryDC::GetSize( int *width, int *height ) const -{ - if (m_selected.Ok()) - { - if (width) (*width) = m_selected.GetWidth(); - if (height) (*height) = m_selected.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - }; -}; - - diff --git a/src/mac/carbon/dcscreen.cpp b/src/mac/carbon/dcscreen.cpp deleted file mode 100644 index e03bbac0c8..0000000000 --- a/src/mac/carbon/dcscreen.cpp +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -#endif - -// Create a DC representing the whole screen -wxScreenDC::wxScreenDC() -{ - // TODO -} - -wxScreenDC::~wxScreenDC() -{ - // TODO -} - diff --git a/src/mac/carbon/dialog.cpp b/src/mac/carbon/dialog.cpp deleted file mode 100644 index bf3cae5e35..0000000000 --- a/src/mac/carbon/dialog.cpp +++ /dev/null @@ -1,286 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/settings.h" - -// Lists to keep track of windows, so we can disable/enable them -// for modal dialogs -wxList wxModalDialogs; -wxList wxModelessWindows; // Frames and modeless dialogs -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - -BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -wxDialog::wxDialog() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -} - -bool wxDialog::Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_windowStyle = style; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - SetName(name); - - if (!parent) - wxTopLevelWindows.Append(this); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create dialog - - return FALSE; -} - -void wxDialog::SetModal(bool flag) -{ - if ( flag ) - m_windowStyle |= wxDIALOG_MODAL ; - else - if ( m_windowStyle & wxDIALOG_MODAL ) - m_windowStyle -= wxDIALOG_MODAL ; - - wxModelessWindows.DeleteObject(this); - if (!flag) - wxModelessWindows.Append(this); -} - -wxDialog::~wxDialog() -{ - // TODO - wxTopLevelWindows.DeleteObject(this); - - if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL ) - wxModelessWindows.DeleteObject(this); - - // If this is the last top-level window, exit. - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO: exit - } - } -} - -// By default, pressing escape cancels the dialog -void wxDialog::OnCharHook(wxKeyEvent& event) -{ - if (event.m_keyCode == WXK_ESCAPE) - { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - - return; - } - // We didn't process this event. - event.Skip(); -} - -void wxDialog::Iconize(bool WXUNUSED(iconize)) -{ - // TODO -} - -bool wxDialog::IsIconized() const -{ - // TODO - return FALSE; -} - -void wxDialog::SetClientSize(int width, int height) -{ - // TODO -} - -void wxDialog::GetPosition(int *x, int *y) const -{ - // TODO -} - -bool wxDialog::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxDialog::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxDialog::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxDialog::Centre(int direction) -{ - int x_offset,y_offset ; - int display_width, display_height; - int width, height, x, y; - wxWindow *parent = GetParent(); - if ((direction & wxCENTER_FRAME) && parent) - { - parent->GetPosition(&x_offset,&y_offset) ; - parent->GetSize(&display_width,&display_height) ; - } - else - { - wxDisplaySize(&display_width, &display_height); - x_offset = 0 ; - y_offset = 0 ; - } - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x+x_offset, y+y_offset, width, height); -} - -// Replacement for Show(TRUE) for modal dialogs - returns return code -int wxDialog::ShowModal() -{ - m_windowStyle |= wxDIALOG_MODAL; - // TODO: modal showing - Show(TRUE); - return GetReturnCode(); -} - -void wxDialog::EndModal(int retCode) -{ - SetReturnCode(retCode); - // TODO modal un-showing - Show(FALSE); -} - -// Standard buttons -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnApply(wxCommandEvent& event) -{ - if (Validate()) - TransferDataFromWindow(); - // TODO probably need to disable the Apply button until things change again -} - -void wxDialog::OnCancel(wxCommandEvent& event) -{ - if ( IsModal() ) - EndModal(wxID_CANCEL); - else - { - SetReturnCode(wxID_CANCEL); - this->Show(FALSE); - } -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList closing; - - if ( closing.Member(this) ) - return; - - closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog - - closing.DeleteObject(this); -} - -// Destroy the window (delayed, if a managed window) -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); -} - -void wxDialog::Fit() -{ -} diff --git a/src/mac/carbon/dirdlg.cpp b/src/mac/carbon/dirdlg.cpp deleted file mode 100644 index 095621b978..0000000000 --- a/src/mac/carbon/dirdlg.cpp +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dirdlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/dirdlg.h" - -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif - -wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, - const wxString& defaultPath, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = defaultPath; -} - -int wxDirDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/mac/carbon/dnd.cpp b/src/mac/carbon/dnd.cpp deleted file mode 100644 index 32088eef0f..0000000000 --- a/src/mac/carbon/dnd.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget, wxDropSource, wxDataObject implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/dnd.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" - -// ---------------------------------------------------------------------------- -// global -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxDropTarget -// ---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ -}; - -wxDropTarget::~wxDropTarget() -{ -}; - -// ---------------------------------------------------------------------------- -// wxTextDropTarget -// ---------------------------------------------------------------------------- - -bool wxTextDropTarget::OnDrop( long x, long y, const void *pData ) -{ - OnDropText( x, y, (const char*)pData ); - return TRUE; -}; - -bool wxTextDropTarget::OnDropText( long x, long y, const char *psz ) -{ - printf( "Got dropped text: %s.\n", psz ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -}; - -size_t wxTextDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxTextDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_TEXT; -} - -// ---------------------------------------------------------------------------- -// wxFileDropTarget -// ---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnDropFiles( long x, long y, size_t nFiles, const char * const WXUNUSED(aszFiles)[] ) -{ - printf( "Got %d dropped files.\n", (int)nFiles ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -} - -bool wxFileDropTarget::OnDrop(long x, long y, const void *WXUNUSED(pData) ) -{ - char *str = "/this/is/a/path.txt"; - - return OnDropFiles(x, y, 1, &str ); -} - -size_t wxFileDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxFileDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_FILENAME; -} - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// drag request - -wxDropSource::wxDropSource( wxWindow *win ) -{ - // TODO - // m_window = win; - m_data = NULL; - - // m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - // m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -wxDropSource::wxDropSource( wxDataObject &data, wxWindow *win ) -{ - // TODO - // m_window = win; - m_data = &data; - - // m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - // m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -void wxDropSource::SetData( wxDataObject &data ) -{ - m_data = &data; -}; - -wxDropSource::~wxDropSource(void) -{ -}; - -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - // TODO - return wxDragError; -}; - diff --git a/src/mac/carbon/filedlg.cpp b/src/mac/carbon/filedlg.cpp deleted file mode 100644 index b6f5b1912d..0000000000 --- a/src/mac/carbon/filedlg.cpp +++ /dev/null @@ -1,143 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: wxFileDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/filedlg.h" -#include "wx/intl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxFileDialog, wxDialog) -#endif - -WXDLLEXPORT wxString wxFileSelector(const char *title, - const char *defaultDir, const char *defaultFileName, - const char *defaultExtension, const char *filter, int flags, - wxWindow *parent, int x, int y) -{ - // If there's a default extension specified but no filter, we create a suitable - // filter. - - wxString filter2(""); - if ( defaultExtension && !filter ) - filter2 = wxString("*.") + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - else - defaultDirString = ""; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - else - defaultFilenameString = ""; - - wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return wxGetEmptyString(); -} - -WXDLLEXPORT wxString wxFileSelectorEx(const char *title, - const char *defaultDir, - const char *defaultFileName, - int* defaultFilterIndex, - const char *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "", - defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return wxGetEmptyString(); -} - -wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = ""; - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_filterIndex = 1; -} - -int wxFileDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -// Generic file load/save dialog -static wxString -wxDefaultFileSelector(bool load, const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - char *ext = (char *)extension; - - char prompt[50]; - wxString str; - if (load) - str = "Load %s file"; - else - str = "Save %s file"; - sprintf(prompt, wxGetTranslation(str), what); - - if (*ext == '.') ext++; - char wild[60]; - sprintf(wild, "*.%s", ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -wxString -wxLoadFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - - -// Generic file save dialog -wxString -wxSaveFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(FALSE, what, extension, default_name, parent); -} - - diff --git a/src/mac/carbon/font.cpp b/src/mac/carbon/font.cpp deleted file mode 100644 index 493a6a25ba..0000000000 --- a/src/mac/carbon/font.cpp +++ /dev/null @@ -1,244 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) -#endif - -wxFontRefData::wxFontRefData() -{ - m_style = 0; - m_pointSize = 0; - m_family = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::wxFontRefData(const wxFontRefData& data) -{ - m_style = data.m_style; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::~wxFontRefData() -{ - // TODO: delete font data -} - -wxFont::wxFont() -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - Create(pointSize, family, style, weight, underlined, faceName); - - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); - - return TRUE; -} - -wxFont::~wxFont() -{ - if (wxTheFontList) - wxTheFontList->DeleteObject(this); -} - -bool wxFont::RealizeResource() -{ - // TODO: create the font (if there is a native font object) - return FALSE; -} - -void wxFont::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; - - RealizeResource(); -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; - - RealizeResource(); -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; - - RealizeResource(); -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; - - RealizeResource(); -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; - - RealizeResource(); -} - -wxString wxFont::GetFamilyString() const -{ - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; -} - -/* New font system */ -wxString wxFont::GetFaceName() const -{ - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString() const -{ - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; -} - -wxString wxFont::GetWeightString() const -{ - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; -} - diff --git a/src/mac/carbon/fontdlg.cpp b/src/mac/carbon/fontdlg.cpp deleted file mode 100644 index 60e8e9b987..0000000000 --- a/src/mac/carbon/fontdlg.cpp +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.cpp -// Purpose: wxFontDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fontdlg.h" -#endif - -#include "wx/stubs/fontdlg.h" -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif - -/* - * wxFontDialog - */ - -wxFontDialog::wxFontDialog() -{ - m_dialogParent = NULL; -} - -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} - -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; - - if (data) - m_fontData = *data; - - // TODO: you may need to do dialog creation here, unless it's - // done in ShowModal. - return TRUE; -} - -int wxFontDialog::ShowModal() -{ - // TODO: show (maybe create) the dialog - return wxID_CANCEL; -} - diff --git a/src/mac/carbon/frame.cpp b/src/mac/carbon/frame.cpp deleted file mode 100644 index 55f1e3b72c..0000000000 --- a/src/mac/carbon/frame.cpp +++ /dev/null @@ -1,565 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: wxFrame -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" -#include "wx/menu.h" -#include "wx/dcclient.h" -#include "wx/dialog.h" -#include "wx/settings.h" -#include "wx/app.h" - -extern wxList wxModelessWindows; -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_ACTIVATE(wxFrame::OnActivate) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) - EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) - EVT_IDLE(wxFrame::OnIdle) - EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) -#endif - -#if wxUSE_NATIVE_STATUSBAR -bool wxFrame::m_useNativeStatusBar = TRUE; -#else -bool wxFrame::m_useNativeStatusBar = FALSE; -#endif - -wxFrame::wxFrame() -{ - m_frameToolBar = NULL ; - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_windowParent = NULL; - m_iconized = FALSE; -} - -bool wxFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - m_frameMenuBar = NULL; - m_frameToolBar = NULL ; - m_frameStatusBar = NULL; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - wxModelessWindows.Append(this); - - // TODO: create frame. - - return FALSE; -} - -wxFrame::~wxFrame() -{ - wxTopLevelWindows.DeleteObject(this); - - if (m_frameStatusBar) - delete m_frameStatusBar; - if (m_frameMenuBar) - delete m_frameMenuBar; - -/* Check if it's the last top-level window */ - - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO signal to the app that we're going to close - } - } - - wxModelessWindows.DeleteObject(this); -} - -// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. -void wxFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxFrame::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxFrame::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -bool wxFrame::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxFrame::Iconize(bool iconize) -{ - // TODO -} - -// Equivalent to maximize/restore in Windows -void wxFrame::Maximize(bool maximize) -{ - // TODO -} - -bool wxFrame::IsIconized() const -{ - // TODO - return FALSE; -} - -// Is the frame maximized? -bool wxFrame::IsMaximized(void) const -{ - // TODO - return FALSE; -} - -void wxFrame::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxFrame::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; - // TODO -} - -wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - wxStatusBar *statusBar = NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(statusBar->GetFont()); - - long x, y; - dc.GetTextExtent("X", &x, &y); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize(-1, -1, 100, height); - - statusBar->SetFieldsCount(number); - return statusBar; -} - -wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - // Calling CreateStatusBar twice is an error. - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, - "recreating status bar in wxFrame" ); - - m_frameStatusBar = OnCreateStatusBar(number, style, id, - name); - if ( m_frameStatusBar ) - { - PositionStatusBar(); - return m_frameStatusBar; - } - else - return NULL; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[]) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); - PositionStatusBar(); -} - -void wxFrame::PositionStatusBar() -{ - int w, h; - GetClientSize(&w, &h); - int sw, sh; - m_frameStatusBar->GetSize(&sw, &sh); - - // Since we wish the status bar to be directly under the client area, - // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); -} - -void wxFrame::SetMenuBar(wxMenuBar *menuBar) -{ - if (!menuBar) - { - m_frameMenuBar = NULL; - return; - } - - m_frameMenuBar = menuBar; - - // TODO -} - -void wxFrame::Fit() -{ - // Work out max. size - wxNode *node = GetChildren().First(); - int max_width = 0; - int max_height = 0; - while (node) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *win = (wxWindow *)node->Data(); - - if (!win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog))) - { - int width, height; - int x, y; - win->GetSize(&width, &height); - win->GetPosition(&x, &y); - - if ((x + width) > max_width) - max_width = x + width; - if ((y + height) > max_height) - max_height = y + height; - } - node = node->Next(); - } - SetClientSize(max_width, max_height); -} - -// Responds to colour changes, and passes event on to children. -void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - if ( m_frameStatusBar ) - { - wxSysColourChangedEvent event2; - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->ProcessEvent(event2); - } - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -// Default resizing behaviour - if only ONE subwindow, -// resize to client rectangle size -void wxFrame::OnSize(wxSizeEvent& event) -{ - // if we're using constraints - do use them - #if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) { - Layout(); - return; - } - #endif - - // do we have _exactly_ one child? - wxWindow *child = NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog)) && - (win != GetStatusBar()) && - (win != GetToolBar()) ) - { - if ( child ) - return; // it's our second subwindow - nothing to do - child = win; - } - } - - if ( child ) { - // we have exactly one child - set it's size to fill the whole frame - int clientW, clientH; - GetClientSize(&clientW, &clientH); - - int x = 0; - int y = 0; - - child->SetSize(x, y, clientW, clientH); - } -} - -// Default activation behaviour - set the focus for the first child -// subwindow found. -void wxFrame::OnActivate(wxActivateEvent& event) -{ - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && - !child->IsKindOf(CLASSINFO(wxDialog))) - { - child->SetFocus(); - return; - } - } -} - -// The default implementation for the close window event. -void wxFrame::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -// Destroy the window (delayed, if a managed window) -bool wxFrame::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -// Default menu selection behaviour - display a help string -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ - if (GetStatusBar()) - { - if (event.GetMenuId() == -1) - SetStatusText(""); - else - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - wxString helpString(menuBar->GetHelpString(event.GetMenuId())); - if (helpString != "") - SetStatusText(helpString); - } - } - } -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::Centre(int direction) -{ - int display_width, display_height, width, height, x, y; - wxDisplaySize(&display_width, &display_height); - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x, y, width, height); -} - -// Call this to simulate a menu command -void wxFrame::Command(int id) -{ - ProcessCommand(id); -} - -void wxFrame::ProcessCommand(int id) -{ - wxCommandEvent commandEvent(wxEVENT_TYPE_MENU_COMMAND, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar() ; - if (!bar) - return; - -/* TODO: check the menu item if required - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } -*/ - - // Process events starting with the window with the focus, if any. - wxWindow* focusWin = wxFindFocusDescendant(this); - - wxEvtHandler* evtHandler = focusWin ? focusWin->GetEventHandler() : GetEventHandler(); - - evtHandler->ProcessEvent(commandEvent); -} - -// Checks if there is a toolbar, and returns the first free client position -wxPoint wxFrame::GetClientAreaOrigin() const -{ - wxPoint pt(0, 0); - if (GetToolBar()) - { - int w, h; - GetToolBar()->GetSize(& w, & h); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - pt.x += w; - } - else - { - pt.y += h; - } - } - return pt; -} - -void wxFrame::ScreenToClient(int *x, int *y) const -{ - wxWindow::ScreenToClient(x, y); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt(GetClientAreaOrigin()); - *x -= pt.x; - *y -= pt.y; -} - -void wxFrame::ClientToScreen(int *x, int *y) const -{ - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt1(GetClientAreaOrigin()); - *x += pt1.x; - *y += pt1.y; - - wxWindow::ClientToScreen(x, y); -} - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -void wxFrame::PositionToolBar() -{ - int cw, ch; - - // TODO: we actually need to use the low-level client size, before - // the toolbar/status bar were added. - // So DEFINITELY replace the line below with something appropriate. - - GetClientSize(& cw, &ch); - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - ch -= statusY; - } - - if (GetToolBar()) - { - int tw, th; - GetToolBar()->GetSize(& tw, & th); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS - // means, pretend we don't have toolbar/status bar, so we - // have the original client size. - GetToolBar()->SetSize(0, 0, tw, ch, wxSIZE_NO_ADJUSTMENTS); - } - else - { - // Use the 'real' position - GetToolBar()->SetSize(0, 0, cw, th, wxSIZE_NO_ADJUSTMENTS); - } - } -} - diff --git a/src/mac/carbon/gauge.cpp b/src/mac/carbon/gauge.cpp deleted file mode 100644 index a85fbc498f..0000000000 --- a/src/mac/carbon/gauge.cpp +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif - -bool wxGauge::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_rangeMax = range; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - - // TODO - return FALSE; -} - -void wxGauge::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxGauge::SetShadowWidth(int w) -{ - // TODO optional -} - -void wxGauge::SetBezelFace(int w) -{ - // TODO optional -} - -void wxGauge::SetRange(int r) -{ - m_rangeMax = r; - // TODO -} - -void wxGauge::SetValue(int pos) -{ - m_gaugePos = pos; - // TODO -} - -int wxGauge::GetShadowWidth() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetBezelFace() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetRange() const -{ - return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - return m_gaugePos; -} - diff --git a/src/mac/carbon/gdiobj.cpp b/src/mac/carbon/gdiobj.cpp deleted file mode 100644 index 63697c8354..0000000000 --- a/src/mac/carbon/gdiobj.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - -// TODO: Nothing to do, unless you want to. diff --git a/src/mac/carbon/helpxxxx.cpp b/src/mac/carbon/helpxxxx.cpp deleted file mode 100644 index 086762c646..0000000000 --- a/src/mac/carbon/helpxxxx.cpp +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.cpp -// Purpose: Help system: native implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpxxxx.h" -#endif - -#include "wx/stubs/helpxxxx.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxXXXXHelpController, wxHelpControllerBase) -#endif - -wxXXXXHelpController::wxXXXXHelpController() -{ - m_helpFile = ""; -} - -wxXXXXHelpController::~wxXXXXHelpController() -{ -} - -bool wxXXXXHelpController::Initialize(const wxString& filename) -{ - m_helpFile = filename; - // TODO any other inits - return TRUE; -} - -bool wxXXXXHelpController::LoadFile(const wxString& file) -{ - m_helpFile = file; - // TODO - return TRUE; -} - -bool wxXXXXHelpController::DisplayContents() -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplaySection(int section) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplayBlock(long block) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::KeywordSearch(const wxString& k) -{ - if (m_helpFile == "") return FALSE; - - // TODO - return FALSE; -} - -// Can't close the help window explicitly in WinHelp -bool wxXXXXHelpController::Quit() -{ - // TODO - return FALSE; -} - -void wxXXXXHelpController::OnQuit() -{ -} - diff --git a/src/mac/carbon/icon.cpp b/src/mac/carbon/icon.cpp deleted file mode 100644 index 6deee7dbdc..0000000000 --- a/src/mac/carbon/icon.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -#endif - -/* - * Icons - */ - - -wxIconRefData::wxIconRefData() -{ - // TODO: init icon handle -} - -wxIconRefData::~wxIconRefData() -{ - // TODO: destroy icon handle -} - -wxIcon::wxIcon() -{ -} - -wxIcon::wxIcon(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height)) -{ -} - -wxIcon::wxIcon(const wxString& icon_file, long flags, - int desiredWidth, int desiredHeight) - -{ - LoadFile(icon_file, flags, desiredWidth, desiredHeight); -} - -wxIcon::~wxIcon() -{ -} - -bool wxIcon::LoadFile(const wxString& filename, long type, - int desiredWidth, int desiredHeight) -{ - UnRef(); - - m_refData = new wxIconRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler ) - return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight); - else - return FALSE; -} - diff --git a/src/mac/carbon/imaglist.cpp b/src/mac/carbon/imaglist.cpp deleted file mode 100644 index 4cb47b4e69..0000000000 --- a/src/mac/carbon/imaglist.cpp +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.cpp -// Purpose: wxImageList. You may wish to use the generic version. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "imaglist.h" -#endif - -#include "wx/stubs/imaglist.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxObject) -#endif - -wxImageList::wxImageList() -{ - // TODO: init image list handle, if any -} - -wxImageList::~wxImageList() -{ - // TODO: destroy image list handle, if any -} - - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -// Returns the number of images in the image list. -int wxImageList::GetImageCount() const -{ - // TODO - return 0; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Creates an image list -bool wxImageList::Create(int width, int height, bool mask, int initial) -{ - // TODO - return FALSE; -} - -// Adds a bitmap, and optionally a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -int wxImageList::Add(const wxBitmap& bitmap, const wxBitmap& mask) -{ - // TODO - return 0; -} - -// Adds a bitmap, using the specified colour to create the mask bitmap -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap'. -int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour) -{ - // TODO - return 0; -} - -// Adds a bitmap and mask from an icon. -int wxImageList::Add(const wxIcon& icon) -{ - // TODO - return 0; -} - -// Replaces a bitmap, optionally passing a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -bool wxImageList::Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask) -{ - // TODO - return 0; -} - -// Replaces a bitmap and mask from an icon. -bool wxImageList::Replace(int index, const wxIcon& icon) -{ - // TODO - return 0; -} - -// Removes the image at the given index. -bool wxImageList::Remove(int index) -{ - // TODO - return FALSE; -} - -// Remove all images -bool wxImageList::RemoveAll() -{ - // TODO - return FALSE; -} - -// Draws the given image on a dc at the specified position. -// If 'solidBackground' is TRUE, Draw sets the image list background -// colour to the background colour of the wxDC, to speed up -// drawing by eliminating masked drawing where possible. -bool wxImageList::Draw(int index, wxDC& dc, int x, int y, - int flags, bool solidBackground) -{ - // TODO - return FALSE; -} - diff --git a/src/mac/carbon/joystick.cpp b/src/mac/carbon/joystick.cpp deleted file mode 100644 index 6677277f48..0000000000 --- a/src/mac/carbon/joystick.cpp +++ /dev/null @@ -1,279 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition() const -{ - // TODO - return wxPoint(0, 0); -} - -int wxJoystick::GetZPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetButtonState() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVCTSPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMovementThreshold() const -{ - // TODO - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ - // TODO -} - -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk() const -{ - // TODO - return FALSE; -} - -int wxJoystick::GetNumberJoysticks() const -{ - // TODO - return 0; -} - -int wxJoystick::GetManufacturerId() const -{ - // TODO - return 0; -} - -int wxJoystick::GetProductId() const -{ - // TODO - return 0; -} - -wxString wxJoystick::GetProductName() const -{ - // TODO - return wxString(""); -} - -int wxJoystick::GetXMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetXMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMax() const -{ - // TODO - return 0; -} - -bool wxJoystick::HasRudder() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasZ() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasU() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV4Dir() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOVCTS() const -{ - // TODO - return FALSE; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq) -{ - // TODO - return FALSE; -} - -bool wxJoystick::ReleaseCapture() -{ - // TODO - return FALSE; -} - diff --git a/src/mac/carbon/listbox.cpp b/src/mac/carbon/listbox.cpp deleted file mode 100644 index 1dad21e12c..0000000000 --- a/src/mac/carbon/listbox.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: wxListBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listbox.h" -#endif - -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/dynarray.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif - -// ============================================================================ -// list box control implementation -// ============================================================================ - -// Listbox item -wxListBox::wxListBox() -{ - m_noItems = 0; - m_selected = 0; -} - -bool wxListBox::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - m_noItems = n; - m_selected = 0; - - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - wxSystemSettings settings; - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - - m_windowId = ( id == -1 ) ? (int)NewControlId() : id; - - // TODO create listbox - - return FALSE; -} - -wxListBox::~wxListBox() -{ -} - -void wxListBox::SetFirstItem(int N) -{ - // TODO -} - -void wxListBox::SetFirstItem(const wxString& s) -{ - // TODO -} - -void wxListBox::Delete(int N) -{ - m_noItems --; - // TODO -} - -void wxListBox::Append(const wxString& item) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Append(const wxString& item, char *Client_data) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Set(int n, const wxString *choices, char** clientData) -{ - m_noItems = n; - - // TODO -} - -int wxListBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxListBox::Clear() -{ - m_noItems = 0; - // TODO -} - -void wxListBox::SetSelection(int N, bool select) -{ - // TODO -} - -bool wxListBox::Selected(int N) const -{ - // TODO - return FALSE; -} - -void wxListBox::Deselect(int N) -{ - // TODO -} - -char *wxListBox::GetClientData(int N) const -{ - // TODO - return (char *)NULL; -} - -void wxListBox::SetClientData(int N, char *Client_data) -{ - // TODO -} - -// Return number of selections and an array of selected integers -int wxListBox::GetSelections(wxArrayInt& aSelections) const -{ - aSelections.Empty(); - -/* TODO - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - { - int no_sel = ?? - for ( int n = 0; n < no_sel; n++ ) - aSelections.Add(??); - - return no_sel; - } - else // single-selection listbox - { - aSelections.Add(??); - - return 1; - } -*/ - return 0; -} - -// Get single selection, for single choice list items -int wxListBox::GetSelection() const -{ - // TODO - return -1; -} - -// Find string for position -wxString wxListBox::GetString(int N) const -{ - // TODO - return wxString(""); -} - -void wxListBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - m_noItems += nItems; - - // TODO -} - -void wxListBox::SetString(int N, const wxString& s) -{ - // TODO -} - -int wxListBox::Number () const -{ - return m_noItems; -} - -// For single selection items only -wxString wxListBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxListBox::SetStringSelection (const wxString& s, bool flag) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel, flag); - return TRUE; - } - else - return FALSE; -} - -void wxListBox::Command (wxCommandEvent & event) -{ - if (event.m_extraLong) - SetSelection (event.m_commandInt); - else - { - Deselect (event.m_commandInt); - return; - } - ProcessCommand (event); -} - diff --git a/src/mac/carbon/listctrl.cpp b/src/mac/carbon/listctrl.cpp deleted file mode 100644 index d1d8445652..0000000000 --- a/src/mac/carbon/listctrl.cpp +++ /dev/null @@ -1,596 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.cpp -// Purpose: wxListCtrl. See also Robert's generic wxListCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listctrl.h" -#endif - -#include "wx/stubs/textctrl.h" -#include "wx/stubs/listctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) - -#endif - -wxListCtrl::wxListCtrl() -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_baseStyle = 0; - m_colCount = 0; -} - -bool wxListCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name) -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_colCount = 0; - - SetValidator(validator); - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - if (parent) parent->AddChild(this); - - // TODO create list control - return TRUE; -} - -wxListCtrl::~wxListCtrl() -{ -} - -// Add or remove a single window style -void wxListCtrl::SetSingleStyle(long style, bool add) -{ - long flag = GetWindowStyleFlag(); - - // Get rid of conflicting styles - if ( add ) - { - if ( style & wxLC_MASK_TYPE) - flag = flag & ~wxLC_MASK_TYPE ; - if ( style & wxLC_MASK_ALIGN ) - flag = flag & ~wxLC_MASK_ALIGN ; - if ( style & wxLC_MASK_SORT ) - flag = flag & ~wxLC_MASK_SORT ; - } - - if ( flag & style ) - { - if ( !add ) - flag -= style; - } - else - { - if ( add ) - { - flag |= style; - } - } - - m_windowStyle = flag; - - /* TODO RecreateWindow(); */ -} - -// Set the whole window style -void wxListCtrl::SetWindowStyleFlag(long flag) -{ - m_windowStyle = flag; - - /* TODO RecreateWindow(); */ -} - - -// Gets information about this column -bool wxListCtrl::GetColumn(int col, wxListItem& item) const -{ - // TODO - return FALSE; -} - -// Sets information about this column -bool wxListCtrl::SetColumn(int col, wxListItem& item) -{ - // TODO - return FALSE; -} - -// Gets the column width -int wxListCtrl::GetColumnWidth(int col) const -{ - // TODO - return 0; -} - -// Sets the column width -bool wxListCtrl::SetColumnWidth(int col, int width) -{ - // TODO - return FALSE; -} - -// 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) -int wxListCtrl::GetCountPerPage() const -{ - // TODO - return 0; -} - -// Gets the edit control for editing labels. -wxTextCtrl* wxListCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -// Gets information about the item -bool wxListCtrl::GetItem(wxListItem& info) const -{ - // TODO - return FALSE; -} - -// Sets information about the item -bool wxListCtrl::SetItem(wxListItem& info) -{ - // TODO - return FALSE; -} - -long wxListCtrl::SetItem(long index, int col, const wxString& label, int imageId) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - info.m_col = col; - if ( imageId > -1 ) - { - info.m_image = imageId; - info.m_mask |= wxLIST_MASK_IMAGE; - } - return SetItem(info); -} - - -// Gets the item state -int wxListCtrl::GetItemState(long item, long stateMask) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -// Sets the item state -bool wxListCtrl::SetItemState(long item, long state, long stateMask) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -// Sets the item image -bool wxListCtrl::SetItemImage(long item, int image, int selImage) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_IMAGE ; - info.m_image = image; - info.m_itemId = item; - - return SetItem(info); -} - -// Gets the item text -wxString wxListCtrl::GetItemText(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -// Sets the item text -void wxListCtrl::SetItemText(long item, const wxString& str) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -// Gets the item data -long wxListCtrl::GetItemData(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -// Sets the item data -bool wxListCtrl::SetItemData(long item, long data) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -// Gets the item rectangle -bool wxListCtrl::GetItemRect(long item, wxRect& rect, int code) const -{ - // TODO - return FALSE; -} - -// Gets the item position -bool wxListCtrl::GetItemPosition(long item, wxPoint& pos) const -{ - // TODO - return FALSE; -} - -// Sets the item position. -bool wxListCtrl::SetItemPosition(long item, const wxPoint& pos) -{ - // TODO - return FALSE; -} - -// Gets the number of items in the list control -int wxListCtrl::GetItemCount() const -{ - // TODO - return FALSE; -} - -// Retrieves the spacing between icons in pixels. -// If small is TRUE, gets the spacing for the small icon -// view, otherwise the large icon view. -int wxListCtrl::GetItemSpacing(bool isSmall) const -{ - // TODO - return FALSE; -} - -// Gets the number of selected items in the list control -int wxListCtrl::GetSelectedItemCount() const -{ - // TODO - return FALSE; -} - -// Gets the text colour of the listview -wxColour wxListCtrl::GetTextColour() const -{ - // TODO - return wxColour(); -} - -// Sets the text colour of the listview -void wxListCtrl::SetTextColour(const wxColour& col) -{ - // TODO -} - -// Gets the index of the topmost visible item when in -// list or report view -long wxListCtrl::GetTopItem() const -{ - // TODO - return 0; -} - -// Searches for an item, starting from 'item'. -// 'geometry' is one of -// wxLIST_NEXT_ABOVE/ALL/BELOW/LEFT/RIGHT. -// 'state' is a state bit flag, one or more of -// wxLIST_STATE_DROPHILITED/FOCUSED/SELECTED/CUT. -// item can be -1 to find the first item that matches the -// specified flags. -// Returns the item or -1 if unsuccessful. -long wxListCtrl::GetNextItem(long item, int geom, int state) const -{ - // TODO - return 0; -} - -wxImageList *wxListCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - return m_imageListSmall; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxListCtrl::SetImageList(wxImageList *imageList, int which) -{ - int flags = 0; - if ( which == wxIMAGE_LIST_NORMAL ) - { - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - m_imageListSmall = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - m_imageListState = imageList; - } - // TODO set image list -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Arranges the items -bool wxListCtrl::Arrange(int flag) -{ - // TODO - return FALSE; -} - -// Deletes an item -bool wxListCtrl::DeleteItem(long item) -{ - // TODO - return FALSE; -} - -// Deletes all items -bool wxListCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Deletes all items -bool wxListCtrl::DeleteAllColumns() -{ - // TODO - return FALSE; -} - -// Deletes a column -bool wxListCtrl::DeleteColumn(int col) -{ - // TODO - return FALSE; -} - -// Clears items, and columns if there are any. -void wxListCtrl::ClearAll() -{ - DeleteAllItems(); - if ( m_colCount > 0 ) - DeleteAllColumns(); -} - -// Edit the label -wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - // TODO - return NULL; -} - -// End label editing, optionally cancelling the edit -bool wxListCtrl::EndEditLabel(bool cancel) -{ - // TODO - return FALSE; -} - -// Ensures this item is visible -bool wxListCtrl::EnsureVisible(long item) -{ - // TODO - return FALSE; -} - -// Find an item whose label matches this string, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxString& str, bool partial) -{ - // TODO - return FALSE; -} - -// Find an item whose data matches this data, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, long data) -{ - // TODO - return 0; -} - -// Find an item nearest this position in the specified direction, starting from -// the item after 'start' or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxPoint& pt, int direction) -{ - // TODO - return 0; -} - -// Determines which item (if any) is at the specified point, -// giving details in 'flags' (see wxLIST_HITTEST_... flags above) -long wxListCtrl::HitTest(const wxPoint& point, int& flags) -{ - // TODO - return 0; -} - -// Inserts an item, returning the index of the new item if successful, -// -1 otherwise. -long wxListCtrl::InsertItem(wxListItem& info) -{ - // TODO - return 0; -} - -long wxListCtrl::InsertItem(long index, const wxString& label) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image item -long wxListCtrl::InsertItem(long index, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_mask = wxLIST_MASK_IMAGE; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image/string item -long wxListCtrl::InsertItem(long index, const wxString& label, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_text = label; - info.m_mask = wxLIST_MASK_IMAGE | wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// For list view mode (only), inserts a column. -long wxListCtrl::InsertColumn(long col, wxListItem& item) -{ - // TODO - return 0; -} - -long wxListCtrl::InsertColumn(long col, const wxString& heading, int format, - int width) -{ - wxListItem item; - item.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_FORMAT; - item.m_text = heading; - if ( width > -1 ) - { - item.m_mask |= wxLIST_MASK_WIDTH; - item.m_width = width; - } - item.m_format = format; - - return InsertColumn(col, item); -} - -// Scrolls the list control. If in icon, small icon or report view mode, -// x specifies the number of pixels to scroll. If in list view mode, x -// specifies the number of columns to scroll. -// If in icon, small icon or list view mode, y specifies the number of pixels -// to scroll. If in report view mode, y specifies the number of lines to scroll. -bool wxListCtrl::ScrollList(int dx, int dy) -{ - // TODO - return FALSE; -} - -// Sort items. - -// fn is a function which takes 3 long arguments: item1, item2, data. -// item1 is the long data associated with a first item (NOT the index). -// item2 is the long data associated with a second item (NOT the index). -// data is the same value as passed to SortItems. -// The return value is a negative number if the first item should precede the second -// item, a positive number of the second item should precede the first, -// or zero if the two items are equivalent. - -// data is arbitrary data to be passed to the sort function. -bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data) -{ - // TODO - return FALSE; -} - -// List item structure -wxListItem::wxListItem() -{ - m_mask = 0; - m_itemId = 0; - m_col = 0; - m_state = 0; - m_stateMask = 0; - m_image = 0; - m_data = 0; - - m_format = wxLIST_FORMAT_CENTRE; - m_width = 0; -} - -// List event -IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxCommandEvent) - -wxListEvent::wxListEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ - m_code = 0; - m_itemIndex = 0; - m_col = 0; - m_cancelled = FALSE; -} - diff --git a/src/mac/carbon/main.cpp b/src/mac/carbon/main.cpp deleted file mode 100644 index 47a9924bae..0000000000 --- a/src/mac/carbon/main.cpp +++ /dev/null @@ -1,18 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Entry point -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/app.h" - -int main(int argc, char* argv[]) -{ - return wxEntry(argc, argv); -} - diff --git a/src/mac/carbon/makefile.nt b/src/mac/carbon/makefile.nt deleted file mode 100644 index 2865fbcec3..0000000000 --- a/src/mac/carbon/makefile.nt +++ /dev/null @@ -1,955 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds wxWindows stubs library wxstubs.lib for VC++ (32-bit) -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# - -!include - -APPVER=3.50 # 4.0 -# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0). -WINVERSION=-DWINVER=0x0400 - -# On Alpha machines, change to CPU=ALPHA -CPU=i386 - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -WINFLAGS=-c -W3 -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 $(WINVERSION) -D__WIN32__ -D__WINDOWS__ -WINLINKFLAGS=/INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER) -WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib\ - comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib # libci.lib # libci.lib required for VC++ 4.2 - -# Change this to your WXWIN directory -WXDIR=$(WXWIN) - -WXSRC=$(WXDIR)\src\stubs -WXINC=$(WXDIR)\include -WXBASESRC=$(WXDIR)\src\common - -WXLIB=$(WXDIR)\lib\wxstubs.lib - -EXTRADLLFLAGS= - -INC=-I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/zlib $(EXTRAINC) -LIBS = $(EXTRALIBS) $(WXLIB) $(WINLIBS) - -!ifndef FINAL -FINAL=0 -DEBUG=1 -!endif - -# Set this to 1 if you don't want to use precompiled headers -NOPCH=1 - -OPTIONS= - -!if "$(FINAL)" == "0" -OPT = /Od /Gy -# ***N.B.*** to save space/time, comment out /FR to avoid browse info (.sbr files) being generated -DEBUG_FLAGS= /Zi # /FR -LINK_DEBUG_FLAGS=-debug:full -debugtype:cv # /PDB:NONE -CRTFLAG=/MD -!else -# /O1 - smallest code -# /O2 - fastest code -OPT = /O1 # /O2 # /Od -DEBUG_FLAGS= -LINK_DEBUG_FLAGS=/RELEASE -CRTFLAG=/MD -!endif - -PCH= -PRECOMP= -MAKEPRECOMP= - -CPPFLAGS=$(WINFLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXSTUBS__ /DDEBUG=1 $(INC) $(OPT) $(CRTFLAG) /GX /D__WXDEBUG__ /DWXDEBUG=1 -# If you don't include wxprec.h, use CPPFLAGS2 -CPPFLAGS2=$(WINFLAGS) $(DEBUG_FLAGS) /D__WXSTUBS__ /DDEBUG=1 $(INC) $(EXTRAFLAGS) $(OPT) $(CRTFLAG) /GX /D__WXDEBUG__ /DWXDEBUG=1 -LINKFLAGS=$(LINK_DEBUG_FLAGS) $(WINLINKFLAGS) -entry:WinMainCRTStartup - -THISDIR=$(WXWIN)\src\stubs - -LIBTARGET=$(WXLIB) - -# Please set these according to the settings in wx_setup.h, so we can include -# the appropriate libraries in wx.lib - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -GENDIR=..\generic -COMMDIR=..\common -STUBSDIR=. - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\colrdlgg.obj \ - $(GENDIR)\fontdlgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\msgdlgg.obj \ - $(GENDIR)\panelg.obj \ - $(GENDIR)\printps.obj \ - $(GENDIR)\prntdlgg.obj \ - $(GENDIR)\scrolwin.obj \ - $(GENDIR)\splitter.obj \ - $(GENDIR)\statusbr.obj \ - $(GENDIR)\tabg.obj \ - $(GENDIR)\textdlgg.obj - -# $(GENDIR)\helpxlp.obj \ - -COMMONOBJS = \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\fileconf.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\postscrp.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\process.obj \ - $(COMMDIR)\fstream.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\zstream.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\wincmn.obj - -# $(COMMDIR)\odbc.obj \ - -STUBSOBJS = \ - $(STUBSDIR)\accel.obj \ - $(STUBSDIR)\app.obj \ - $(STUBSDIR)\bitmap.obj \ - $(STUBSDIR)\bmpbuttn.obj \ - $(STUBSDIR)\brush.obj \ - $(STUBSDIR)\button.obj \ - $(STUBSDIR)\checkbox.obj \ - $(STUBSDIR)\checklst.obj \ - $(STUBSDIR)\choice.obj \ - $(STUBSDIR)\clipbrd.obj \ - $(STUBSDIR)\colordlg.obj \ - $(STUBSDIR)\colour.obj \ - $(STUBSDIR)\combobox.obj \ - $(STUBSDIR)\control.obj \ - $(STUBSDIR)\cursor.obj \ - $(STUBSDIR)\data.obj \ - $(STUBSDIR)\dc.obj \ - $(STUBSDIR)\dcmemory.obj \ - $(STUBSDIR)\dcclient.obj \ - $(STUBSDIR)\dcscreen.obj \ - $(STUBSDIR)\dialog.obj \ - $(STUBSDIR)\dirdlg.obj \ - $(STUBSDIR)\filedlg.obj \ - $(STUBSDIR)\font.obj \ - $(STUBSDIR)\fontdlg.obj \ - $(STUBSDIR)\frame.obj \ - $(STUBSDIR)\gauge.obj \ - $(STUBSDIR)\gdiobj.obj \ - $(STUBSDIR)\helpxxxx.obj \ - $(STUBSDIR)\icon.obj \ - $(STUBSDIR)\imaglist.obj \ - $(STUBSDIR)\joystick.obj \ - $(STUBSDIR)\listbox.obj \ - $(STUBSDIR)\listctrl.obj \ - $(STUBSDIR)\main.obj \ - $(STUBSDIR)\mdi.obj \ - $(STUBSDIR)\menu.obj \ - $(STUBSDIR)\menuitem.obj \ - $(STUBSDIR)\metafile.obj \ - $(STUBSDIR)\minifram.obj \ - $(STUBSDIR)\msgdlg.obj \ - $(STUBSDIR)\notebook.obj \ - $(STUBSDIR)\palette.obj \ - $(STUBSDIR)\pen.obj \ - $(STUBSDIR)\printdlg.obj \ - $(STUBSDIR)\print.obj \ - $(STUBSDIR)\radiobox.obj \ - $(STUBSDIR)\radiobut.obj \ - $(STUBSDIR)\region.obj \ - $(STUBSDIR)\scrolbar.obj \ - $(STUBSDIR)\settings.obj \ - $(STUBSDIR)\slider.obj \ - $(STUBSDIR)\spinbutt.obj \ - $(STUBSDIR)\statbmp.obj \ - $(STUBSDIR)\statbox.obj \ - $(STUBSDIR)\statusbr.obj \ - $(STUBSDIR)\stattext.obj \ - $(STUBSDIR)\tabctrl.obj \ - $(STUBSDIR)\taskbar.obj \ - $(STUBSDIR)\toolbar.obj \ - $(STUBSDIR)\textctrl.obj \ - $(STUBSDIR)\thread.obj \ - $(STUBSDIR)\timer.obj \ - $(STUBSDIR)\treectrl.obj \ - $(STUBSDIR)\utils.obj \ - $(STUBSDIR)\utilsexc.obj \ - $(STUBSDIR)\wave.obj \ - $(STUBSDIR)\window.obj - - -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(STUBSOBJS) - -# Normal, static library -all: $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET) - -$(WXDIR)\lib\wxstubs.lib: $(OBJECTS) $(PERIPH_LIBS) - -erase $(LIBTARGET) - $(implib) @<< --out:$@ --machine:$(CPU) -$(OBJECTS) $(PERIPH_LIBS) -<< - -######################################################## -# Windows-specific objects - -$(STUBSDIR)/accel.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/app.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/bitmap.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/bmpbuttn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/brush.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/button.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/choice.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/checkbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/checklst.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/clipbrd.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/colordlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/colour.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/combobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/control.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/cursor.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/data.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcmemory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcclient.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcprint.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcscreen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dialog.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dirdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/filedlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/font.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/fontdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/frame.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/gauge.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/gdiobj.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/icon.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/imaglist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/joystick.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/listbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(STUBSDIR)/listctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(STUBSDIR)/main.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/mdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/menu.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/menuitem.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/metafile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/minifram.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/msgdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/notebook.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/palette.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/pen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/printdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/print.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/radiobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/radiobut.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/region.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/scrolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/settings.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/slider.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/spinbutt.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statbmp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/stattext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/tabctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/taskbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/toolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/textctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/thread.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/timer.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/treectrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/utils.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/utilsexc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/wave.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/window.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -######################################################## -# Common objects (always compiled) - -$(COMMDIR)/cmndata.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/config.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/db.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/dbtable.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/docview.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/docmdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/dynarray.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/event.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/file.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/fileconf.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/filefn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/framecmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/gdicmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/intl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/ipcbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/helpbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/layout.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/log.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/memory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/module.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/object.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/odbc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/postscrp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/prntbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/resource.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/tbarbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/tbarsmpl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/textfile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/timercmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/utilscmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/validate.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/valtext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/date.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/wxexpr.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/hash.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/list.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/string.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/matrix.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -#$(COMMDIR)/wxstrgnu/wxstrgnu.obj: $*.$(SRCSUFF) -# cl @<< -#$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -#<< - -#$(COMMDIR)/wxstrgnu/wxregex.obj: $*.$(SRCSUFF) -# cl @<< -#$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -#<< - -$(COMMDIR)/time.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\stream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\fstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\mstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\zstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\datstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/extended.obj: $*.c - cl @<< -$(CPPFLAGS2) /c /Tp $*.c /Fo$@ -<< - -$(COMMDIR)/process.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/wincmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/y_tab.obj: $*.c $(COMMDIR)/lex_yy.c - cl @<< -$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ -<< - -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(GENDIR)/choicdgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/colrdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/fontdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/gridg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/helpxlp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/msgdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/panelg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/printps.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/prntdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/scrolwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/splitter.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/tabg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/textdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(OBJECTS): $(WXDIR)/include/wx/stubs/setup.h - -clean: $(PERIPH_CLEAN_TARGET) - -erase *.obj - -erase $(LIBTARGET) - -erase $(WXDIR)\lib\*.pdb - -erase *.pdb - -erase *.sbr - -erase *.pch - cd $(WXDIR)\src\stubs - cd $(GENDIR) - -erase *.pdb - -erase *.sbr - -erase *.obj - cd $(WXDIR)\src\stubs - cd $(COMMDIR) - -erase *.pdb - -erase *.sbr - -erase *.obj - -erase y_tab.c - -erase lex_yy.c - cd $(WXDIR)\src\stubs - -cleanall: clean - diff --git a/src/mac/carbon/makefile.unx b/src/mac/carbon/makefile.unx deleted file mode 100644 index d5d55d86d4..0000000000 --- a/src/mac/carbon/makefile.unx +++ /dev/null @@ -1,201 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for wxStubs library, Unix - -EXTRACFLAGS=-DLEX_SCANNER - -include ../make.env - -LIB_CPP_SRC=\ -\ - ../common/cmndata.cpp \ - ../common/config.cpp \ - ../common/date.cpp \ - ../common/docmdi.cpp \ - ../common/docview.cpp \ - ../common/dynarray.cpp \ - ../common/dynlib.cpp \ - ../common/event.cpp \ - ../common/file.cpp \ - ../common/fileconf.cpp \ - ../common/filefn.cpp \ - ../common/gdicmn.cpp \ - ../common/hash.cpp \ - ../common/helpbase.cpp \ - ../common/intl.cpp \ - ../common/ipcbase.cpp \ - ../common/layout.cpp \ - ../common/list.cpp \ - ../common/log.cpp \ - ../common/matrix.cpp \ - ../common/memory.cpp \ - ../common/module.cpp \ - ../common/object.cpp \ - ../common/odbc.cpp \ - ../common/postscrp.cpp \ - ../common/prntbase.cpp \ - ../common/resource.cpp \ - ../common/serbase.cpp \ - ../common/string.cpp \ - ../common/textfile.cpp \ - ../common/tbarbase.cpp \ - ../common/tbarsmpl.cpp \ - ../common/timercmn.cpp \ - ../common/utilscmn.cpp \ - ../common/wincmn.cpp \ - ../common/framecmn.cpp \ - ../common/stream.cpp \ - ../common/datstrm.cpp \ - ../common/fstream.cpp \ - ../common/mstream.cpp \ - ../common/zstream.cpp \ - ../common/objstrm.cpp \ - ../common/sckstrm.cpp \ - ../common/validate.cpp \ - ../common/valtext.cpp \ - ../common/variant.cpp \ - ../common/wxexpr.cpp \ - ../common/socket.cpp \ - ../common/sckint.cpp \ - ../common/sckaddr.cpp \ - ../common/sckipc.cpp \ - ../common/protocol.cpp \ - ../common/ftp.cpp \ - ../common/http.cpp \ - ../common/url.cpp \ - ../common/tokenzr.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - colordlg.cpp \ - control.cpp \ - combobox.cpp \ - cursor.cpp \ - data.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - fontdlg.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - helpxxxx.cpp \ - icon.cpp \ - listbox.cpp \ - joystick.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - menuitem.cpp \ - metafile.cpp \ - minifram.cpp \ - msgdlg.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - print.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbox.cpp \ - statbmp.cpp \ - stattext.cpp \ - taskbar.cpp \ - textctrl.cpp \ - thread.cpp \ - timer.cpp \ - toolbar.cpp \ - utils.cpp \ - utilsexc.cpp \ - wave.cpp \ - window.cpp \ -\ - ../generic/choicdgg.cpp \ - ../generic/colrdlgg.cpp \ - ../generic/dirdlgg.cpp \ - ../generic/fontdlgg.cpp \ - ../generic/gridg.cpp \ - ../generic/imaglist.cpp \ - ../generic/listctrl.cpp \ - ../generic/laywin.cpp \ - ../generic/msgdlgg.cpp \ - ../generic/panelg.cpp \ - ../generic/printps.cpp \ - ../generic/prntdlgg.cpp \ - ../generic/sashwin.cpp \ - ../generic/scrolwin.cpp \ - ../generic/splitter.cpp \ - ../generic/statusbr.cpp \ - ../generic/tabg.cpp \ - ../generic/textdlgg.cpp \ - ../generic/treectrl.cpp - -# If you're not using the generic ones, you -# may wish to define platform-specific ones -# dirdlg.cpp \ -# treectrl.cpp \ -# listctrl.cpp \ -# imaglist.cpp \ -# statusbr.cpp \ - -LIB_C_SRC=\ -\ - ../common/y_tab.c \ - ../common/extended.c - -all: $(WXLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) $(LIB_C_SRC:.c=.o) - -$(WXLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -../common/y_tab.$(OBJSUFF): ../common/y_tab.c ../common/lex_yy.c - $(CCLEX) -c $(CFLAGS) -o $@ ../common/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -../common/lex_yy.c: ../common/lexer.l - $(LEX) -o../common/lex.yy.c ../common/lexer.l - sed -e "s/BUFSIZ/5000/g" < ../common/lex.yy.c | \ - sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c - /bin/rm -f ../common/lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv y.tab.c ../common/y_tab.c - - -clean: - rm -f $(OBJECTS) $(WXLIB) - diff --git a/src/mac/carbon/mdi.cpp b/src/mac/carbon/mdi.cpp deleted file mode 100644 index 4869697cd7..0000000000 --- a/src/mac/carbon/mdi.cpp +++ /dev/null @@ -1,265 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" -#include "wx/menu.h" -#include "wx/settings.h" - -extern wxList wxModelessWindows; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_SIZE(wxMDIParentFrame::OnSize) - EVT_ACTIVATE(wxMDIParentFrame::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() - -#endif - -// Parent frame - -wxMDIParentFrame::wxMDIParentFrame() -{ -} - -bool wxMDIParentFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - // TODO: create MDI parent frame - - wxModelessWindows.Append(this); - - return TRUE; -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ -} - -// Get size *available for subwindows* i.e. excluding menu bar. -void wxMDIParentFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - - m_frameMenuBar = menu_bar; -} - -void wxMDIParentFrame::OnSize(wxSizeEvent& event) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - int x = 0; - int y = 0; - int width, height; - GetClientSize(&width, &height); - - if ( GetClientWindow() ) - GetClientWindow()->SetSize(x, y, width, height); -} - -void wxMDIParentFrame::OnActivate(wxActivateEvent& event) -{ - // Do nothing -} - -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - // TODO - return NULL; -} - -// Create the client window class (don't Create the window, -// just return a new class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow ; -} - -// Responds to colour changes, and passes event on to children. -void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - // TODO - - // Propagate the event to the non-top-level children - wxFrame::OnSysColourChanged(event); -} - -// MDI operations -void wxMDIParentFrame::Cascade() -{ - // TODO -} - -void wxMDIParentFrame::Tile() -{ - // TODO -} - -void wxMDIParentFrame::ArrangeIcons() -{ - // TODO -} - -void wxMDIParentFrame::ActivateNext() -{ - // TODO -} - -void wxMDIParentFrame::ActivatePrevious() -{ - // TODO -} - -// Child frame - -wxMDIChildFrame::wxMDIChildFrame() -{ -} - -bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - // TODO: create child frame - - wxModelessWindows.Append(this); - return FALSE; -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxMDIChildFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxMDIChildFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxMDIChildFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - m_frameMenuBar = menu_bar; -} - -// MDI operations -void wxMDIChildFrame::Maximize() -{ - // TODO -} - -void wxMDIChildFrame::Restore() -{ - // TODO -} - -void wxMDIChildFrame::Activate() -{ - // TODO -} - -// Client window - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) -{ - // TODO create client window - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - - return FALSE; -} - -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& event) -{ - Default(); // Default processing -} - diff --git a/src/mac/carbon/menu.cpp b/src/mac/carbon/menu.cpp deleted file mode 100644 index 1fc7c4a229..0000000000 --- a/src/mac/carbon/menu.cpp +++ /dev/null @@ -1,571 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: wxMenu, wxMenuBar, wxMenuItem -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -// ============================================================================ -// headers & declarations -// ============================================================================ - -// wxWindows headers -// ----------------- - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/menuitem.h" -#include "wx/log.h" -#include "wx/utils.h" - -// other standard headers -// ---------------------- -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// Menus - -// Construct a menu with optional title (then use append) -wxMenu::wxMenu(const wxString& title, const wxFunction func) -{ - m_title = title; - m_parent = NULL; - m_eventHandler = this; - m_noItems = 0; - m_menuBar = NULL; - m_clientData = (void*) NULL; - if (m_title != "") - { - Append(-2, m_title) ; - AppendSeparator() ; - } - - Callback(func); - - // TODO create menu -} - -// The wxWindow destructor will take care of deleting the submenus. -wxMenu::~wxMenu() -{ - // TODO destroy menu and children - - wxNode *node = m_menuItems.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - - // Delete child menus. - // Beware: they must not be appended to children list!!! - // (because order of delete is significant) - if (item->GetSubMenu()) - item->DeleteSubMenu(); - - wxNode *next = node->Next(); - delete item; - delete node; - node = next; - } -} - -void wxMenu::Break() -{ - // TODO -} - -// function appends a new item or submenu to the menu -void wxMenu::Append(wxMenuItem *pItem) -{ - // TODO - - wxCHECK_RET( pItem != NULL, "can't append NULL item to the menu" ); - - m_menuItems.Append(pItem); - - m_noItems++; -} - -void wxMenu::AppendSeparator() -{ - // TODO - Append(new wxMenuItem(this, ID_SEPARATOR)); -} - -// Pullright item -void wxMenu::Append(int Id, const wxString& label, wxMenu *SubMenu, - const wxString& helpString) -{ - Append(new wxMenuItem(this, Id, label, helpString, FALSE, SubMenu)); -} - -// Ordinary menu item -void wxMenu::Append(int Id, const wxString& label, - const wxString& helpString, bool checkable) -{ - // 'checkable' parameter is useless for Windows. - Append(new wxMenuItem(this, Id, label, helpString, checkable)); -} - -void wxMenu::Delete(int id) -{ - wxNode *node; - wxMenuItem *item; - int pos; - - for (pos = 0, node = m_menuItems.First(); node; node = node->Next(), pos++) { - item = (wxMenuItem *)node->Data(); - if (item->GetId() == id) - break; - } - - if (!node) - return; - - m_menuItems.DeleteNode(node); - delete item; - - // TODO -} - -void wxMenu::Enable(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't enable non-existing menu item" ); - - item->Enable(Flag); -} - -bool wxMenu::Enabled(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't get status of non-existing menu item" ); - - item->Check(Flag); -} - -bool wxMenu::Checked(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsChecked(); -} - -void wxMenu::SetTitle(const wxString& label) -{ - m_title = label ; - // TODO -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id) ; - if (item==NULL) - return; - - if (item->GetSubMenu()==NULL) - { - // TODO - } - else - { - // TODO - } - item->SetName(label); -} - -wxString wxMenu::GetLabel(int Id) const -{ - // TODO - return wxString("") ; -} - -// Finds the item id matching the given string, -1 if not found. -int wxMenu::FindItem (const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)itemString, buf1); - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - if (item->GetSubMenu()) - { - int ans = item->GetSubMenu()->FindItem(itemString); - if (ans > -1) - return ans; - } - if ( !item->IsSeparator() ) - { - wxStripMenuCodes((char *)item->GetName().c_str(), buf2); - if (strcmp(buf1, buf2) == 0) - return item->GetId(); - } - } - - return -1; -} - -wxMenuItem *wxMenu::FindItemForId(int itemId, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - - if (item->GetId() == itemId) - { - if (itemMenu) - *itemMenu = (wxMenu *) this; - return item; - } - - if (item->GetSubMenu()) - { - wxMenuItem *ans = item->GetSubMenu()->FindItemForId (itemId, itemMenu); - if (ans) - return ans; - } - } - - if (itemMenu) - *itemMenu = NULL; - return NULL; -} - -void wxMenu::SetHelpString(int itemId, const wxString& helpString) -{ - wxMenuItem *item = FindItemForId (itemId); - if (item) - item->SetHelp(helpString); -} - -wxString wxMenu::GetHelpString (int itemId) const -{ - wxMenuItem *item = FindItemForId (itemId); - wxString str(""); - return (item == NULL) ? str : item->GetHelp(); -} - -void wxMenu::ProcessCommand(wxCommandEvent & event) -{ - bool processed = FALSE; - - // Try a callback - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - processed = TRUE; - } - - // Try the menu's event handler - if ( !processed && GetEventHandler()) - { - processed = GetEventHandler()->ProcessEvent(event); - } -/* TODO - // Try the window the menu was popped up from (and up - // through the hierarchy) - if ( !processed && GetInvokingWindow()) - processed = GetInvokingWindow()->ProcessEvent(event); -*/ -} - -bool wxWindow::PopupMenu(wxMenu *menu, int x, int y) -{ - // TODO - return FALSE; -} - -// Menu Bar -wxMenuBar::wxMenuBar() -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxString titles[]) -{ - m_eventHandler = this; - m_menuCount = n; - m_menus = menus; - m_titles = new wxString[n]; - int i; - for ( i = 0; i < n; i++ ) - m_titles[i] = titles[i]; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::~wxMenuBar() -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - delete m_menus[i]; - } - delete[] m_menus; - delete[] m_titles; - - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus to enable/disable items -void wxMenuBar::Enable(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - // TODO -} - -void wxMenuBar::EnableTop(int pos, bool flag) -{ - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus -void wxMenuBar::Check(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - if (!item->IsCheckable()) - return ; - - // TODO -} - -bool wxMenuBar::Checked(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE; -} - -bool wxMenuBar::Enabled(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE ; -} - - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return; - - // TODO -} - -wxString wxMenuBar::GetLabel(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return wxString(""); - - // TODO - return wxString("") ; -} - -void wxMenuBar::SetLabelTop(int pos, const wxString& label) -{ - // TODO -} - -wxString wxMenuBar::GetLabelTop(int pos) const -{ - // TODO - return wxString(""); -} - -bool wxMenuBar::OnDelete(wxMenu *a_menu, int pos) -{ - // TODO - return FALSE; -} - -bool wxMenuBar::OnAppend(wxMenu *a_menu, const char *title) -{ - // TODO - return FALSE; -} - -void wxMenuBar::Append (wxMenu * menu, const wxString& title) -{ - if (!OnAppend(menu, title)) - return; - - m_menuCount ++; - wxMenu **new_menus = new wxMenu *[m_menuCount]; - wxString *new_titles = new wxString[m_menuCount]; - int i; - - for (i = 0; i < m_menuCount - 1; i++) - { - new_menus[i] = m_menus[i]; - m_menus[i] = NULL; - new_titles[i] = m_titles[i]; - m_titles[i] = ""; - } - if (m_menus) - { - delete[]m_menus; - delete[]m_titles; - } - m_menus = new_menus; - m_titles = new_titles; - - m_menus[m_menuCount - 1] = (wxMenu *)menu; - m_titles[m_menuCount - 1] = title; - - // TODO -} - -void wxMenuBar::Delete(wxMenu * menu, int i) -{ - int j; - int ii = (int) i; - - if (menu != 0) - { - for (ii = 0; ii < m_menuCount; ii++) - { - if (m_menus[ii] == menu) - break; - } - if (ii >= m_menuCount) - return; - } else - { - if (ii < 0 || ii >= m_menuCount) - return; - menu = m_menus[ii]; - } - - if (!OnDelete(menu, ii)) - return; - - menu->SetParent(NULL); - - -- m_menuCount; - for (j = ii; j < m_menuCount; j++) - { - m_menus[j] = m_menus[j + 1]; - m_titles[j] = m_titles[j + 1]; - } -} - -// Find the menu menuString, item itemString, and return the item id. -// Returns -1 if none found. -int wxMenuBar::FindMenuItem (const wxString& menuString, const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)menuString, buf1); - int i; - for (i = 0; i < m_menuCount; i++) - { - wxStripMenuCodes ((char *)(const char *)m_titles[i], buf2); - if (strcmp (buf1, buf2) == 0) - return m_menus[i]->FindItem (itemString); - } - return -1; -} - -wxMenuItem *wxMenuBar::FindItemForId (int Id, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - int i; - for (i = 0; i < m_menuCount; i++) - if ((item = m_menus[i]->FindItemForId (Id, itemMenu))) - return item; - return NULL; -} - -void wxMenuBar::SetHelpString (int Id, const wxString& helpString) -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - { - m_menus[i]->SetHelpString (Id, helpString); - return; - } - } -} - -wxString wxMenuBar::GetHelpString (int Id) const -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - return wxString(m_menus[i]->GetHelpString (Id)); - } - return wxString(""); -} - - diff --git a/src/mac/carbon/menuitem.cpp b/src/mac/carbon/menuitem.cpp deleted file mode 100644 index bd2f876a38..0000000000 --- a/src/mac/carbon/menuitem.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.cpp -// Purpose: wxMenuItem implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#include "wx/menu.h" -#include "wx/menuitem.h" - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// dynamic classes implementation -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject) -#endif //USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// wxMenuItem -// ---------------------------------------------------------------------------- - -// ctor & dtor -// ----------- - -wxMenuItem::wxMenuItem(wxMenu *pParentMenu, int id, - const wxString& strName, const wxString& strHelp, - bool bCheckable, - wxMenu *pSubMenu) : - m_bCheckable(bCheckable), - m_strName(strName), - m_strHelp(strHelp) -{ - wxASSERT( pParentMenu != NULL ); - - m_pParentMenu = pParentMenu; - m_pSubMenu = pSubMenu; - m_idItem = id; - m_bEnabled = TRUE; -} - -wxMenuItem::~wxMenuItem() -{ -} - -// misc -// ---- - -// delete the sub menu -void wxMenuItem::DeleteSubMenu() -{ - wxASSERT( m_pSubMenu != NULL ); - - delete m_pSubMenu; - m_pSubMenu = NULL; -} - -// change item state -// ----------------- - -void wxMenuItem::Enable(bool bDoEnable) -{ - if ( m_bEnabled != bDoEnable ) { - if ( m_pSubMenu == NULL ) { // normal menu item - // TODO - } - else // submenu - { - // TODO - } - - m_bEnabled = bDoEnable; - } -} - -void wxMenuItem::Check(bool bDoCheck) -{ - wxCHECK_RET( IsCheckable(), "only checkable items may be checked" ); - - if ( m_bChecked != bDoCheck ) { - // TODO - m_bChecked = bDoCheck; - } -} \ No newline at end of file diff --git a/src/mac/carbon/metafile.cpp b/src/mac/carbon/metafile.cpp deleted file mode 100644 index ddbfb8402f..0000000000 --- a/src/mac/carbon/metafile.cpp +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.cpp -// Purpose: wxMetaFile, wxMetaFileDC etc. These classes are optional. -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "metafile.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dc.h" -#include "wx/stubs/metafile.h" -#include "wx/clipbrd.h" - -extern bool wxClipboardIsOpen; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC) -#endif - -wxMetaFile::wxMetaFile(const wxString& file) -{ - // TODO -} - -wxMetaFile::~wxMetaFile() -{ - // TODO -} - -bool wxMetaFile::SetClipboard(int width, int height) -{ - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - if (!wxEmptyClipboard()) return FALSE; - } - bool success = wxSetClipboardData(wxDF_METAFILE,this, width,height); - if (!alreadyOpen) wxCloseClipboard(); - return (bool) success; -} - -bool wxMetaFile::Play(wxDC *dc) -{ - // TODO - return FALSE; -} - -/* - * Metafile device context - * - */ - -// Original constructor that does not takes origin and extent. If you use this, -// *DO* give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file) -{ - // TODO -} - -// New constructor that takes origin and extent. If you use this, don't -// give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg) -{ - // TODO -} - -wxMetaFileDC::~wxMetaFileDC() -{ -} - -void wxMetaFileDC::GetTextExtent(const wxString& string, float *x, float *y, - float *descent, float *externalLeading, wxFont *theFont, bool use16bit) -{ - // TODO -} - -wxMetaFile *wxMetaFileDC::Close() -{ - // TODO - return NULL; -} - -void wxMetaFileDC::SetMapMode(int mode) -{ - // TODO -} - -#if 0 - -#ifdef __WIN32__ -struct RECT32 -{ - short left; - short top; - short right; - short bottom; -}; - -struct mfPLACEABLEHEADER { - DWORD key; - short hmf; - RECT32 bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#else -struct mfPLACEABLEHEADER { - DWORD key; - HANDLE hmf; - RECT bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#endif - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -bool wxMakeMetaFilePlaceable(const wxString& filename, float scale) -{ - return wxMakeMetaFilePlaceable(filename, 0, 0, 0, 0, scale, FALSE); -} - -bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale, bool useOriginAndExtent) -{ - // I'm not sure if this is the correct way of suggesting a scale - // to the client application, but it's the only way I can find. - int unitsPerInch = (int)(576/scale); - - mfPLACEABLEHEADER header; - header.key = 0x9AC6CDD7L; - header.hmf = 0; - header.bbox.left = (int)(x1); - header.bbox.top = (int)(y1); - header.bbox.right = (int)(x2); - header.bbox.bottom = (int)(y2); - header.inch = unitsPerInch; - header.reserved = 0; - - // Calculate checksum - WORD *p; - mfPLACEABLEHEADER *pMFHead = &header; - for (p =(WORD *)pMFHead,pMFHead -> checksum = 0; - p < (WORD *)&pMFHead ->checksum; ++p) - pMFHead ->checksum ^= *p; - - FILE *fd = fopen((char *)(const char *)filename, "rb"); - if (!fd) return FALSE; - - char tempFileBuf[256]; - wxGetTempFileName("mf", tempFileBuf); - FILE *fHandle = fopen(tempFileBuf, "wb"); - if (!fHandle) - return FALSE; - fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle); - - // Calculate origin and extent - int originX = x1; - int originY = y1; - int extentX = x2 - x1; - int extentY = (y2 - y1); - - // Read metafile header and write - METAHEADER metaHeader; - fread((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fd); - - if (useOriginAndExtent) - metaHeader.mtSize += 15; - else - metaHeader.mtSize += 5; - - fwrite((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fHandle); - - // Write SetMapMode, SetWindowOrigin and SetWindowExt records - char modeBuffer[8]; - char originBuffer[10]; - char extentBuffer[10]; - METARECORD *modeRecord = (METARECORD *)&modeBuffer; - - METARECORD *originRecord = (METARECORD *)&originBuffer; - METARECORD *extentRecord = (METARECORD *)&extentBuffer; - - modeRecord->rdSize = 4; - modeRecord->rdFunction = META_SETMAPMODE; - modeRecord->rdParm[0] = wxMM_ANISOTROPIC; - - originRecord->rdSize = 5; - originRecord->rdFunction = META_SETWINDOWORG; - originRecord->rdParm[0] = originY; - originRecord->rdParm[1] = originX; - - extentRecord->rdSize = 5; - extentRecord->rdFunction = META_SETWINDOWEXT; - extentRecord->rdParm[0] = extentY; - extentRecord->rdParm[1] = extentX; - - fwrite((void *)modeBuffer, sizeof(char), 8, fHandle); - - if (useOriginAndExtent) - { - fwrite((void *)originBuffer, sizeof(char), 10, fHandle); - fwrite((void *)extentBuffer, sizeof(char), 10, fHandle); - } - - int ch = -2; - while (ch != EOF) - { - ch = getc(fd); - if (ch != EOF) - { - putc(ch, fHandle); - } - } - fclose(fHandle); - fclose(fd); - wxRemoveFile(filename); - wxCopyFile(tempFileBuf, filename); - wxRemoveFile(tempFileBuf); - return TRUE; -} - -#endif - diff --git a/src/mac/carbon/minifram.cpp b/src/mac/carbon/minifram.cpp deleted file mode 100644 index 4f6f5e5fcb..0000000000 --- a/src/mac/carbon/minifram.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: wxMiniFrame. Optional; identical to wxFrame if not supported. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -#include "wx/minifram.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif - - diff --git a/src/mac/carbon/msgdlg.cpp b/src/mac/carbon/msgdlg.cpp deleted file mode 100644 index 775ac8f064..0000000000 --- a/src/mac/carbon/msgdlg.cpp +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.cpp -// Purpose: wxMessageDialog -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "msgdlg.h" -#endif - -#include "wx/msgdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxMessageDialog, wxDialog) -#endif - -wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption, - long style, const wxPoint& pos) -{ - m_caption = caption; - m_message = message; - m_dialogStyle = style; - m_parent = parent; -} - -int wxMessageDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/mac/carbon/notebook.cpp b/src/mac/carbon/notebook.cpp deleted file mode 100644 index 312dd0f3d3..0000000000 --- a/src/mac/carbon/notebook.cpp +++ /dev/null @@ -1,377 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: implementation of wxNotebook -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -#include -#include -#include -#include - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange) - - EVT_SIZE(wxNotebook::OnSize) - EVT_SET_FOCUS(wxNotebook::OnSetFocus) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNotebook construction -// ---------------------------------------------------------------------------- - -// common part of all ctors -void wxNotebook::Init() -{ - m_pImageList = NULL; - m_nSelection = -1; -} - -// default for dynamic class -wxNotebook::wxNotebook() -{ - Init(); -} - -// the same arguments as for wxControl -wxNotebook::wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - Create(parent, id, pos, size, style, name); -} - -// Create() function -bool wxNotebook::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // base init - SetName(name); - SetParent(parent); - - m_windowId = id == -1 ? NewControlId() : id; - - // style - m_windowStyle = style; - - if ( parent != NULL ) - parent->AddChild(this); - - // TODO - - return FALSE; -} - -// dtor -wxNotebook::~wxNotebook() -{ -} - -// ---------------------------------------------------------------------------- -// wxNotebook accessors -// ---------------------------------------------------------------------------- -int wxNotebook::GetPageCount() const -{ - return m_aPages.Count(); -} - -int wxNotebook::GetRowCount() const -{ - // TODO - return 0; -} - -int wxNotebook::SetSelection(int nPage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - ChangePage(m_nSelection, nPage); - - // TODO - return 0; -} - -void wxNotebook::AdvanceSelection(bool bForward) -{ - int nSel = GetSelection(); - int nMax = GetPageCount() - 1; - if ( bForward ) - SetSelection(nSel == nMax ? 0 : nSel + 1); - else - SetSelection(nSel == 0 ? nMax : nSel - 1); -} - -bool wxNotebook::SetPageText(int nPage, const wxString& strText) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return wxString(""); -} - -int wxNotebook::GetPageImage(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return 0; -} - -bool wxNotebook::SetPageImage(int nPage, int nImage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -void wxNotebook::SetImageList(wxImageList* imageList) -{ - m_pImageList = imageList; - // TODO -} - -// ---------------------------------------------------------------------------- -// wxNotebook operations -// ---------------------------------------------------------------------------- - -// remove one page from the notebook -bool wxNotebook::DeletePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - // TODO: delete native widget page - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove one page from the notebook, without deleting the window -bool wxNotebook::RemovePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove all pages -bool wxNotebook::DeleteAllPages() -{ - // TODO: delete native widget pages - - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - delete m_aPages[nPage]; - - m_aPages.Clear(); - - return TRUE; -} - -// add a page to the notebook -bool wxNotebook::AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - return InsertPage(GetPageCount(), pPage, strText, bSelect, imageId); -} - -// same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); - - // TODO: insert native widget page - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - // some page must be selected: either this one or the first one if there is - // still no selection - if ( bSelect ) - m_nSelection = nPage; - else if ( m_nSelection == -1 ) - m_nSelection = 0; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -// @@@ OnSize() is used for setting the font when it's called for the first -// time because doing it in ::Create() doesn't work (for unknown reasons) -void wxNotebook::OnSize(wxSizeEvent& event) -{ - static bool s_bFirstTime = TRUE; - if ( s_bFirstTime ) { - // TODO: any first-time-size processing. - s_bFirstTime = FALSE; - } - - // TODO: all this may or may not be necessary for your platform - - // emulate page change (it's esp. important to do it first time because - // otherwise our page would stay invisible) - int nSel = m_nSelection; - m_nSelection = -1; - SetSelection(nSel); - - // fit the notebook page to the tab control's display area - int w, h; - GetSize(&w, &h); - - unsigned int nCount = m_aPages.Count(); - for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) { - wxNotebookPage *pPage = m_aPages[nPage]; - pPage->SetSize(0, 0, w, h); - if ( pPage->GetAutoLayout() ) - pPage->Layout(); - } - - // Processing continues to next OnSize - event.Skip(); -} - -void wxNotebook::OnSelChange(wxNotebookEvent& event) -{ - // is it our tab control? - if ( event.GetEventObject() == this ) - ChangePage(event.GetOldSelection(), event.GetSelection()); - - // we want to give others a chance to process this message as well - event.Skip(); -} - -void wxNotebook::OnSetFocus(wxFocusEvent& event) -{ - // set focus to the currently selected page if any - if ( m_nSelection != -1 ) - m_aPages[m_nSelection]->SetFocus(); - - event.Skip(); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if ( event.IsWindowChange() ) { - // change pages - AdvanceSelection(event.GetDirection()); - } - else { - // pass to the parent - if ( GetParent() ) { - event.SetCurrentFocus(this); - GetParent()->ProcessEvent(event); - } - } -} - -// ---------------------------------------------------------------------------- -// wxNotebook base class virtuals -// ---------------------------------------------------------------------------- - -// override these 2 functions to do nothing: everything is done in OnSize - -void wxNotebook::SetConstraintSizes(bool /* recurse */) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase(int /* nPhase */) -{ - return TRUE; -} - -void wxNotebook::Command(wxCommandEvent& event) -{ - wxFAIL_MSG("wxNotebook::Command not implemented"); -} - -// ---------------------------------------------------------------------------- -// wxNotebook helper functions -// ---------------------------------------------------------------------------- - -// hide the currently active panel and show the new one -void wxNotebook::ChangePage(int nOldSel, int nSel) -{ - wxASSERT( nOldSel != nSel ); // impossible - - if ( nOldSel != -1 ) { - m_aPages[nOldSel]->Show(FALSE); - } - - wxNotebookPage *pPage = m_aPages[nSel]; - pPage->Show(TRUE); - pPage->SetFocus(); - - m_nSelection = nSel; -} - diff --git a/src/mac/carbon/palette.cpp b/src/mac/carbon/palette.cpp deleted file mode 100644 index f8db96f8d0..0000000000 --- a/src/mac/carbon/palette.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: wxPalette -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif - -/* - * Palette - * - */ - -wxPaletteRefData::wxPaletteRefData() -{ - // TODO -} - -wxPaletteRefData::~wxPaletteRefData() -{ - // TODO -} - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - Create(n, red, green, blue); -} - -wxPalette::~wxPalette() -{ -} - -bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - UnRef(); - - m_refData = new wxPaletteRefData; - - // TODO - - return FALSE; -} - -int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const -{ - if ( !m_refData ) - return FALSE; - - // TODO - return FALSE; -} - -bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const -{ - if ( !m_refData ) - return FALSE; - - if (index < 0 || index > 255) - return FALSE; - - // TODO - return FALSE; -} - - diff --git a/src/mac/carbon/pen.cpp b/src/mac/carbon/pen.cpp deleted file mode 100644 index 1e3ced2a3a..0000000000 --- a/src/mac/carbon/pen.cpp +++ /dev/null @@ -1,202 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: wxPen -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/pen.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -#endif - -wxPenRefData::wxPenRefData() -{ - m_style = wxSOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::~wxPenRefData() -{ - // TODO: delete data -} - -// Pens - -wxPen::wxPen() -{ - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::~wxPen() -{ - if (wxThePenList) - wxThePenList->RemovePen(this); -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxSTIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(int Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxSTIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(int Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(int Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -bool wxPen::RealizeResource() -{ - // TODO: create actual pen - return FALSE; -} - - diff --git a/src/mac/carbon/print.cpp b/src/mac/carbon/print.cpp deleted file mode 100644 index 61fd6e7e99..0000000000 --- a/src/mac/carbon/print.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: print.cpp -// Purpose: Print framework -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "print.h" -#endif - -#include "wx/stubs/print.h" -#include "wx/stubs/printdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrinter, wxPrinterBase) -IMPLEMENT_CLASS(wxPrintPreview, wxPrintPreviewBase) -#endif - -/* - * Printer - */ - -wxPrinter::wxPrinter(wxPrintData *data): - wxPrinterBase(data) -{ -} - -wxPrinter::~wxPrinter() -{ -} - -bool wxPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) -{ - // TODO. See wxPostScriptPrinter::Print for hints. - return FALSE; -} - -bool wxPrinter::PrintDialog(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printData); - return (dialog.ShowModal() == wxID_OK); -} - -bool wxPrinter::Setup(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printData); - dialog.GetPrintData().SetSetupDialog(TRUE); - return (dialog.ShowModal() == wxID_OK); -} - -/* - * Print preview - */ - -wxPrintPreview::wxPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting, wxPrintData *data): - wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - DetermineScaling(); -} - -wxPrintPreview::~wxPrintPreview() -{ -} - -bool wxPrintPreview::Print(bool interactive) -{ - if (!m_printPrintout) - return FALSE; - wxPrinter printer(&m_printData); - return printer.Print(m_previewFrame, m_printPrintout, interactive); -} - -void wxPrintPreview::DetermineScaling() -{ - // TODO -} - diff --git a/src/mac/carbon/printdlg.cpp b/src/mac/carbon/printdlg.cpp deleted file mode 100644 index eae3b95568..0000000000 --- a/src/mac/carbon/printdlg.cpp +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.cpp -// Purpose: wxPrintDialog, wxPageSetupDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "printdlg.h" -#endif - -#include "wx/object.h" -#include "wx/stubs/printdlg.h" -#include "wx/dcprint.h" - -// Use generic page setup dialog: use your own native one if one exists. -#include "wx/generic/prntdlgg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog) -IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog) -#endif - -wxPrintDialog::wxPrintDialog(): - wxDialog() -{ - m_dialogParent = NULL; - m_printerDC = NULL; -} - -wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data): - wxDialog() -{ - Create(p, data); -} - -bool wxPrintDialog::Create(wxWindow *p, wxPrintData* data) -{ - m_dialogParent = p; - m_printerDC = NULL; - - if ( data ) - m_printData = *data; - - return TRUE; -} - -wxPrintDialog::~wxPrintDialog() -{ - if (m_printerDC) - delete m_printerDC; -} - -int wxPrintDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -wxDC *wxPrintDialog::GetPrintDC() -{ - if (m_printerDC) - { - wxDC* dc = m_printerDC; - m_printerDC = NULL; - return dc; - } - else - return NULL; -} - -/* - * wxPageSetupDialog - */ - -wxPageSetupDialog::wxPageSetupDialog(): - wxDialog() -{ - m_dialogParent = NULL; -} - -wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data): - wxDialog() -{ - Create(p, data); -} - -bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data) -{ - m_dialogParent = p; - - if (data) - m_pageSetupData = (*data); - - return TRUE; -} - -wxPageSetupDialog::~wxPageSetupDialog() -{ -} - -int wxPageSetupDialog::ShowModal() -{ - // Uses generic page setup dialog - wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData); - int ret = genericPageSetupDialog->ShowModal(); - m_pageSetupData = genericPageSetupDialog->GetPageSetupData(); - genericPageSetupDialog->Close(TRUE); - return ret; -} - diff --git a/src/mac/carbon/radiobox.cpp b/src/mac/carbon/radiobox.cpp deleted file mode 100644 index da582d0e52..0000000000 --- a/src/mac/carbon/radiobox.cpp +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: wxRadioBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) -#endif - -// Radio box item -wxRadioBox::wxRadioBox() -{ - m_selectedButton = -1; - m_noItems = 0; - m_noRowsOrCols = 0; - m_majorDim = 0 ; -} - -bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - int majorDim, long style, - const wxValidator& val, const wxString& name) -{ - m_selectedButton = -1; - m_noItems = n; - - SetName(name); - SetValidator(val); - - parent->AddChild(this); - - m_windowStyle = (long&)style; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - m_noRowsOrCols = majorDim; - - if (majorDim==0) - m_majorDim = n ; - else - m_majorDim = majorDim ; - - - // TODO create radiobox - return FALSE; -} - - -wxRadioBox::~wxRadioBox() -{ - // TODO -} - -wxString wxRadioBox::GetLabel(int item) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - // TODO -} - -int wxRadioBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxRadioBox::SetSelection(int n) -{ - if ((n < 0) || (n >= m_noItems)) - return; - // TODO - - m_selectedButton = n; -} - -// Get single selection, for single choice list items -int wxRadioBox::GetSelection() const -{ - return m_selectedButton; -} - -// Find string for position -wxString wxRadioBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxRadioBox::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxRadioBox::GetPosition(int *x, int *y) const -{ - // TODO -} - -wxString wxRadioBox::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioBox::SetFocus() -{ - // TODO -} - -bool wxRadioBox::Show(bool show) -{ - // TODO - return FALSE; -} - -// Enable a specific button -void wxRadioBox::Enable(int item, bool enable) -{ - // TODO -} - -// Enable all controls -void wxRadioBox::Enable(bool enable) -{ - wxControl::Enable(enable); - - // TODO -} - -// Show a specific button -void wxRadioBox::Show(int item, bool show) -{ - // TODO -} - -// For single selection items only -wxString wxRadioBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxRadioBox::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxRadioBox::Command (wxCommandEvent & event) -{ - SetSelection (event.m_commandInt); - ProcessCommand (event); -} - - diff --git a/src/mac/carbon/radiobut.cpp b/src/mac/carbon/radiobut.cpp deleted file mode 100644 index 65baab38b6..0000000000 --- a/src/mac/carbon/radiobut.cpp +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: wxRadioButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -#endif - -bool wxRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style ; - - // TODO create radiobutton - return FALSE; -} - -void wxRadioButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioButton::SetValue(bool value) -{ - // TODO -} - -// Get single selection, for single choice list items -bool wxRadioButton::GetValue() const -{ - // TODO - return FALSE; -} - -void wxRadioButton::Command (wxCommandEvent & event) -{ - SetValue ( (event.m_commandInt != 0) ); - ProcessCommand (event); -} - - diff --git a/src/mac/carbon/region.cpp b/src/mac/carbon/region.cpp deleted file mode 100644 index c71d4c605a..0000000000 --- a/src/mac/carbon/region.cpp +++ /dev/null @@ -1,363 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: region.cpp -// Purpose: Region class -// Author: Markus Holzem/Julian Smart/AUTHOR -// Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Markus Holzem/Julian Smart/AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/region.h" -#include "wx/gdicmn.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject) -#endif - -//----------------------------------------------------------------------------- -// wxRegionRefData implementation -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegionRefData : public wxGDIRefData { -public: - wxRegionRefData() - { - } - - wxRegionRefData(const wxRegionRefData& data) - { - // TODO - } - - ~wxRegionRefData() - { - // TODO - } -}; - - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -/*! - * Create an empty region. - */ -wxRegion::wxRegion() -{ - m_refData = new wxRegionRefData; - // TODO create empty region -} - -wxRegion::wxRegion(long x, long y, long w, long h) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxRect& rect) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -/*! - * Destroy the region. - */ -wxRegion::~wxRegion() -{ - // m_refData unrefed in ~wxObject -} - -//----------------------------------------------------------------------------- -//# Modify region -//----------------------------------------------------------------------------- - -//! Clear current region -void wxRegion::Clear() -{ - UnRef(); -} - -//! Combine rectangle (x, y, w, h) with this. -bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op) -{ - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - // If ref count is 1, that means it's 'ours' anyway so no action. - - // TODO create rect region - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO do combine region - - return FALSE; -} - -//! Union /e region with this. -bool wxRegion::Combine(const wxRegion& region, wxRegionOp op) -{ - if (region.Empty()) - return FALSE; - - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO combine region - - return FALSE; -} - -bool wxRegion::Combine(const wxRect& rect, wxRegionOp op) -{ - return Combine(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight(), op); -} - -//----------------------------------------------------------------------------- -//# Information on region -//----------------------------------------------------------------------------- - -// Outer bounds of region -void wxRegion::GetBox(long& x, long& y, long&w, long &h) const -{ - if (m_refData) { - // TODO get box - } else { - x = y = w = h = 0; - } -} - -wxRect wxRegion::GetBox() const -{ - long x, y, w, h; - GetBox(x, y, w, h); - return wxRect(x, y, w, h); -} - -// Is region empty? -bool wxRegion::Empty() const -{ - // TODO - return FALSE; -} - -//----------------------------------------------------------------------------- -//# Tests -//----------------------------------------------------------------------------- - -// Does the region contain the point (x,y)? -wxRegionContain wxRegion::Contains(long x, long y) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - return wxOutRegion; -} - -// Does the region contain the point pt? -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle (x, y, w, h)? -wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle rect -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - if (!m_refData) - return wxOutRegion; - - long x, y, w, h; - x = rect.x; - y = rect.y; - w = rect.GetWidth(); - h = rect.GetHeight(); - return Contains(x, y, w, h); -} - -/////////////////////////////////////////////////////////////////////////////// -// // -// wxRegionIterator // -// // -/////////////////////////////////////////////////////////////////////////////// - -/*! - * Initialize empty iterator - */ -wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL) -{ -} - -wxRegionIterator::~wxRegionIterator() -{ - if (m_rects) - delete[] m_rects; -} - -/*! - * Initialize iterator for region - */ -wxRegionIterator::wxRegionIterator(const wxRegion& region) -{ - m_rects = NULL; - - Reset(region); -} - -/*! - * Reset iterator for a new /e region. - */ -void wxRegionIterator::Reset(const wxRegion& region) -{ - m_current = 0; - m_region = region; - - if (m_rects) - delete[] m_rects; - - m_rects = NULL; - - if (m_region.Empty()) - m_numRects = 0; - else - { - // TODO create m_rects and fill with rectangles for this region - m_numRects = 0; - } -} - -/*! - * Increment iterator. The rectangle returned is the one after the - * incrementation. - */ -void wxRegionIterator::operator ++ () -{ - if (m_current < m_numRects) - ++m_current; -} - -/*! - * Increment iterator. The rectangle returned is the one before the - * incrementation. - */ -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_numRects) - ++m_current; -} - -long wxRegionIterator::GetX() const -{ - if (m_current < m_numRects) - return m_rects[m_current].x; - return 0; -} - -long wxRegionIterator::GetY() const -{ - if (m_current < m_numRects) - return m_rects[m_current].y; - return 0; -} - -long wxRegionIterator::GetW() const -{ - if (m_current < m_numRects) - return m_rects[m_current].width ; - return 0; -} - -long wxRegionIterator::GetH() const -{ - if (m_current < m_numRects) - return m_rects[m_current].height; - return 0; -} - diff --git a/src/mac/carbon/scrolbar.cpp b/src/mac/carbon/scrolbar.cpp deleted file mode 100644 index a92154acfb..0000000000 --- a/src/mac/carbon/scrolbar.cpp +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: wxScrollBar -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) - -BEGIN_EVENT_TABLE(wxScrollBar, wxControl) -END_EVENT_TABLE() - -#endif - -// Scrollbar -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - if (!parent) - return FALSE; - parent->AddChild(this); - SetName(name); - SetValidator(validator); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO create scrollbar - return TRUE; -} - -wxScrollBar::~wxScrollBar() -{ -} - -void wxScrollBar::SetThumbPosition(int viewStart) -{ - // TODO -} - -int wxScrollBar::GetThumbPosition() const -{ - // TODO - return 0; -} - -void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh) -{ - m_viewSize = pageSize; - m_pageSize = thumbSize; - m_objectSize = range; - - // TODO -} - - -void wxScrollBar::Command(wxCommandEvent& event) -{ - SetThumbPosition(event.m_commandInt); - ProcessCommand(event); -} - diff --git a/src/mac/carbon/settings.cpp b/src/mac/carbon/settings.cpp deleted file mode 100644 index 2beda5c2a6..0000000000 --- a/src/mac/carbon/settings.cpp +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: wxSettings -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" - -wxColour wxSystemSettings::GetSystemColour(int index) -{ - // TODO - return wxColour(); -} - -wxFont wxSystemSettings::GetSystemFont(int index) -{ - // TODO - switch (index) - { - case wxSYS_DEVICE_DEFAULT_FONT: - { - break; - } - case wxSYS_DEFAULT_PALETTE: - { - break; - } - case wxSYS_SYSTEM_FIXED_FONT: - { - break; - } - case wxSYS_SYSTEM_FONT: - { - break; - } - default: - case wxSYS_DEFAULT_GUI_FONT: - { - break; - } - } - - return wxFont(); -} - -// Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) -{ - switch ( index) - { - case wxSYS_MOUSE_BUTTONS: - // TODO - return 0; - case wxSYS_BORDER_X: - // TODO - return 0; - case wxSYS_BORDER_Y: - // TODO - return 0; - case wxSYS_CURSOR_X: - // TODO - return 0; - case wxSYS_CURSOR_Y: - // TODO - return 0; - case wxSYS_DCLICK_X: - // TODO - return 0; - case wxSYS_DCLICK_Y: - // TODO - return 0; - case wxSYS_DRAG_X: - // TODO - return 0; - case wxSYS_DRAG_Y: - // TODO - return 0; - case wxSYS_EDGE_X: - // TODO - return 0; - case wxSYS_EDGE_Y: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_HTHUMB_X: - // TODO - return 0; - case wxSYS_ICON_X: - // TODO - return 0; - case wxSYS_ICON_Y: - // TODO - return 0; - case wxSYS_ICONSPACING_X: - // TODO - return 0; - case wxSYS_ICONSPACING_Y: - // TODO - return 0; - case wxSYS_WINDOWMIN_X: - // TODO - return 0; - case wxSYS_WINDOWMIN_Y: - // TODO - return 0; - case wxSYS_SCREEN_X: - // TODO - return 0; - case wxSYS_SCREEN_Y: - // TODO - return 0; - case wxSYS_FRAMESIZE_X: - // TODO - return 0; - case wxSYS_FRAMESIZE_Y: - // TODO - return 0; - case wxSYS_SMALLICON_X: - // TODO - return 0; - case wxSYS_SMALLICON_Y: - // TODO - return 0; - case wxSYS_HSCROLL_Y: - // TODO - return 0; - case wxSYS_VSCROLL_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_VTHUMB_Y: - // TODO - return 0; - case wxSYS_CAPTION_Y: - // TODO - return 0; - case wxSYS_MENU_Y: - // TODO - return 0; - case wxSYS_NETWORK_PRESENT: - // TODO - return 0; - case wxSYS_PENWINDOWS_PRESENT: - // TODO - return 0; - case wxSYS_SHOW_SOUNDS: - // TODO - return 0; - case wxSYS_SWAP_BUTTONS: - // TODO - return 0; - default: - return 0; - } - return 0; -} - diff --git a/src/mac/carbon/slider.cpp b/src/mac/carbon/slider.cpp deleted file mode 100644 index c9952342a9..0000000000 --- a/src/mac/carbon/slider.cpp +++ /dev/null @@ -1,190 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: wxSlider -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/slider.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - -BEGIN_EVENT_TABLE(wxSlider, wxControl) -END_EVENT_TABLE() -#endif - - - -// Slider -wxSlider::wxSlider() -{ - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_rangeMax = maxValue; - m_rangeMin = minValue; - - m_pageSize = (int)((maxValue-minValue)/10); - - // TODO create slider - - return FALSE; -} - -wxSlider::~wxSlider() -{ -} - -int wxSlider::GetValue() const -{ - // TODO - return 0; -} - -void wxSlider::SetValue(int value) -{ - // TODO -} - -void wxSlider::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxSlider::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxSlider::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxSlider::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - // TODO -} - -// For trackbars only -void wxSlider::SetTickFreq(int n, int pos) -{ - // TODO - m_tickFreq = n; -} - -void wxSlider::SetPageSize(int pageSize) -{ - // TODO - m_pageSize = pageSize; -} - -int wxSlider::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider::ClearSel() -{ - // TODO -} - -void wxSlider::ClearTicks() -{ - // TODO -} - -void wxSlider::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; - // TODO -} - -int wxSlider::GetLineSize() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelEnd() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelStart() const -{ - // TODO - return 0; -} - -void wxSlider::SetSelection(int minPos, int maxPos) -{ - // TODO -} - -void wxSlider::SetThumbLength(int len) -{ - // TODO -} - -int wxSlider::GetThumbLength() const -{ - // TODO - return 0; -} - -void wxSlider::SetTick(int tickPos) -{ - // TODO -} - -void wxSlider::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -bool wxSlider::Show(bool show) -{ - // TODO - return TRUE; -} - diff --git a/src/mac/carbon/spinbutt.cpp b/src/mac/carbon/spinbutt.cpp deleted file mode 100644 index cbea725592..0000000000 --- a/src/mac/carbon/spinbutt.cpp +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "spinbutt.h" -#endif - -#include "wx/spinbutt.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) -#endif - -wxSpinButton::wxSpinButton() -{ - m_min = 0; - m_max = 100; -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_min = 0; - m_max = 100; - - m_windowId = (id == -1) ? NewControlId() : id; - - // TODO create spin button - return FALSE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -int wxSpinButton::GetValue() const -{ - // TODO - return 0; -} - -void wxSpinButton::SetValue(int val) -{ - // TODO -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - m_min = minVal; - m_max = maxVal; - // TODO -} - -// Spin event -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id): - wxScrollEvent(commandType, id) -{ -} - diff --git a/src/mac/carbon/statbmp.cpp b/src/mac/carbon/statbmp.cpp deleted file mode 100644 index a67c558465..0000000000 --- a/src/mac/carbon/statbmp.cpp +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: wxStaticBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) -#endif - -/* - * wxStaticBitmap - */ - -bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_messageBitmap = bitmap; - SetName(name); - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static bitmap control - return FALSE; -} - -void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) -{ - m_messageBitmap = bitmap; - - // TODO: redraw bitmap -} - diff --git a/src/mac/carbon/statbox.cpp b/src/mac/carbon/statbox.cpp deleted file mode 100644 index b239dc738c..0000000000 --- a/src/mac/carbon/statbox.cpp +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: wxStaticBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Static box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static box - return FALSE; -} - -void wxStaticBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxStaticBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - diff --git a/src/mac/carbon/stattext.cpp b/src/mac/carbon/stattext.cpp deleted file mode 100644 index 3b19c7184d..0000000000 --- a/src/mac/carbon/stattext.cpp +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: wxStaticText -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stattext.h" -#endif - -#include "wx/app.h" -#include "wx/stattext.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -#endif - -bool wxStaticText::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - SetFont(parent->GetFont()); - - // TODO - return FALSE; -} - -void wxStaticText::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticText::SetLabel(const wxString& label) -{ - // TODO -} - diff --git a/src/mac/carbon/statusbr.cpp b/src/mac/carbon/statusbr.cpp deleted file mode 100644 index dff1ddec34..0000000000 --- a/src/mac/carbon/statusbr.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: statbar.cpp -// Purpose: native implementation of wxStatusBar (optional) -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statusbr.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/stubs/statusbr.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStatusBarXX, wxStatusBar); - -BEGIN_EVENT_TABLE(wxStatusBarXX, wxStatusBar) - EVT_SIZE(wxStatusBarXX::OnSize) -END_EVENT_TABLE() -#endif //USE_SHARED_LIBRARY - - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxStatusBarXX class -// ---------------------------------------------------------------------------- - -wxStatusBarXX::wxStatusBarXX() -{ - SetParent(NULL); -} - -wxStatusBarXX::wxStatusBarXX(wxWindow *parent, wxWindowID id, long style) -{ - Create(parent, id, style); -} - -bool wxStatusBarXX::Create(wxWindow *parent, wxWindowID id, long style) -{ - SetParent(parent); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create status bar - return FALSE; -} - -void wxStatusBarXX::SetFieldsCount(int nFields, const int widths[]) -{ - wxASSERT( (nFields > 0) && (nFields < 255) ); - - m_nFields = nFields; - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBarXX::SetStatusWidths(int n, const int widths[]) -{ - wxASSERT( n == m_nFields ); - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBarXX::CopyFieldsWidth(const int widths[]) -{ - if (widths && !m_statusWidths) - m_statusWidths = new int[m_nFields]; - - if ( widths != NULL ) { - for ( int i = 0; i < m_nFields; i++ ) - m_statusWidths[i] = widths[i]; - } - else { - delete [] m_statusWidths; - m_statusWidths = NULL; - } -} - -void wxStatusBarXX::SetFieldsWidth() -{ - int *pWidths = new int[m_nFields]; - - int nWindowWidth, y; - GetClientSize(&nWindowWidth, &y); - - if ( m_statusWidths == NULL ) { - // default: all fields have the same width - int nWidth = nWindowWidth / m_nFields; - for ( int i = 0; i < m_nFields; i++ ) - pWidths[i] = (i + 1) * nWidth; - } - else { - // -1 doesn't mean the same thing for wxWindows and Win32, recalc - int nTotalWidth = 0, - nVarCount = 0, - i; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nVarCount++; - else - nTotalWidth += m_statusWidths[i]; - } - - if ( nVarCount == 0 ) { - // wrong! at least one field must be of variable width - wxFAIL; - - nVarCount++; - } - - int nVarWidth = (nWindowWidth - nTotalWidth) / nVarCount; - - // do fill the array - int nCurPos = 0; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nCurPos += nVarWidth; - else - nCurPos += m_statusWidths[i]; - pWidths[i] = nCurPos; - } - } - - // TODO: set widths - - delete [] pWidths; -} - -void wxStatusBarXX::SetStatusText(const wxString& strText, int nField) -{ - // TODO -} - -wxString wxStatusBarXX::GetStatusText(int nField) const -{ - wxASSERT( (nField > -1) && (nField < m_nFields) ); - - // TODO - return wxString(""); -} - -void wxStatusBarXX::OnSize(wxSizeEvent& event) -{ - // adjust fields widths to the new size - SetFieldsWidth(); -} diff --git a/src/mac/carbon/tabctrl.cpp b/src/mac/carbon/tabctrl.cpp deleted file mode 100644 index b3b45a72d1..0000000000 --- a/src/mac/carbon/tabctrl.cpp +++ /dev/null @@ -1,201 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp -// Purpose: wxTabCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - -#include "wx/control.h" -#include "wx/tabctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) -END_EVENT_TABLE() -#endif - -wxTabCtrl::wxTabCtrl() -{ - m_imageList = NULL; -} - -bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_imageList = NULL; - - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id < 0 ? NewControlId() : id); - - if (parent) parent->AddChild(this); - - // TODO: create tab control - return FALSE; -} - -wxTabCtrl::~wxTabCtrl() -{ -} - -void wxTabCtrl::Command(wxCommandEvent& event) -{ -} - -// Delete all items -bool wxTabCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Delete an item -bool wxTabCtrl::DeleteItem(int item) -{ - // TODO - return FALSE; -} - -// Get the selection -int wxTabCtrl::GetSelection() const -{ - // TODO - return 0; -} - -// Get the tab with the current keyboard focus -int wxTabCtrl::GetCurFocus() const -{ - // TODO - return 0; -} - -// Get the associated image list -wxImageList* wxTabCtrl::GetImageList() const -{ - return m_imageList; -} - -// Get the number of items -int wxTabCtrl::GetItemCount() const -{ - // TODO - return 0; -} - -// Get the rect corresponding to the tab -bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const -{ - // TODO - return FALSE; -} - -// Get the number of rows -int wxTabCtrl::GetRowCount() const -{ - // TODO - return 0; -} - -// Get the item text -wxString wxTabCtrl::GetItemText(int item) const -{ - // TODO - return wxString(""); -} - -// Get the item image -int wxTabCtrl::GetItemImage(int item) const -{ - // TODO - return 0; -} - -// Get the item data -void* wxTabCtrl::GetItemData(int item) const -{ - // TODO - return NULL; -} - -// Hit test -int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) -{ - // TODO - return 0; -} - -// Insert an item -bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) -{ - // TODO - return FALSE; -} - -// Set the selection -int wxTabCtrl::SetSelection(int item) -{ - // TODO - return 0; -} - -// Set the image list -void wxTabCtrl::SetImageList(wxImageList* imageList) -{ - // TODO -} - -// Set the text for an item -bool wxTabCtrl::SetItemText(int item, const wxString& text) -{ - // TODO - return FALSE; -} - -// Set the image for an item -bool wxTabCtrl::SetItemImage(int item, int image) -{ - // TODO - return FALSE; -} - -// Set the data for an item -bool wxTabCtrl::SetItemData(int item, void* data) -{ - // TODO - return FALSE; -} - -// Set the size for a fixed-width tab control -void wxTabCtrl::SetItemSize(const wxSize& size) -{ - // TODO -} - -// Set the padding between tabs -void wxTabCtrl::SetPadding(const wxSize& padding) -{ - // TODO -} - -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ -} - diff --git a/src/mac/carbon/taskbar.cpp b/src/mac/carbon/taskbar.cpp deleted file mode 100644 index 5c91250cf0..0000000000 --- a/src/mac/carbon/taskbar.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.cpp -// Purpose: Implements wxTaskBarIcon class for manipulating icons on -// the task bar. Optional. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "taskbar.h" -#endif - -#include - -wxTaskBarIcon::wxTaskBarIcon() -{ - // TODO -} - -wxTaskBarIcon::~wxTaskBarIcon() -{ - // TODO -} - -// Operations -bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip) -{ - // TODO - return FALSE; -} - -bool wxTaskBarIcon::RemoveIcon() -{ - // TODO - return FALSE; -} - -// Overridables -void wxTaskBarIcon::OnMouseMove() -{ -} - -void wxTaskBarIcon::OnLButtonDown() -{ -} - -void wxTaskBarIcon::OnLButtonUp() -{ -} - -void wxTaskBarIcon::OnRButtonDown() -{ -} - -void wxTaskBarIcon::OnRButtonUp() -{ -} - -void wxTaskBarIcon::OnLButtonDClick() -{ -} - -void wxTaskBarIcon::OnRButtonDClick() -{ -} - diff --git a/src/mac/carbon/textctrl.cpp b/src/mac/carbon/textctrl.cpp deleted file mode 100644 index a2b5e7d38e..0000000000 --- a/src/mac/carbon/textctrl.cpp +++ /dev/null @@ -1,452 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: wxTextCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -#ifndef __WXMAC__ -#include -#include -#else -#include -#endif -#include - -#include "wx/textctrl.h" -#include "wx/settings.h" -#include "wx/filefn.h" -#include "wx/utils.h" - -#if defined(__BORLANDC__) && !defined(__WIN32__) -#include -#else -#ifndef __MWERKS__ -#ifndef __GNUWIN32__ -#include -#endif -#endif -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) -END_EVENT_TABLE() -#endif - -// Text item -wxTextCtrl::wxTextCtrl() -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif -{ - m_fileName = ""; -} - -bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_fileName = ""; - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - return TRUE; -} - -wxString wxTextCtrl::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - // TODO -} - -void wxTextCtrl::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -// Clipboard operations -void wxTextCtrl::Copy() -{ - // TODO -} - -void wxTextCtrl::Cut() -{ - // TODO -} - -void wxTextCtrl::Paste() -{ - // TODO -} - -void wxTextCtrl::SetEditable(bool editable) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - long pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxTextCtrl::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxTextCtrl::Remove(long from, long to) -{ - // TODO -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - // TODO -} - -bool wxTextCtrl::LoadFile(const wxString& file) -{ - if (!wxFileExists(file)) - return FALSE; - - m_fileName = file; - - Clear(); - -#ifndef __WXMAC__ - ifstream input((char*) (const char*) file, ios::nocreate | ios::in); -#else - ifstream input((char*) (const char*) file, ios::in); -#endif - if (!input.bad()) - { - struct stat stat_buf; - if (stat(file, &stat_buf) < 0) - return FALSE; - // This may need to be a bigger buffer than the file size suggests, - // if it's a UNIX file. Give it an extra 1000 just in case. - char *tmp_buffer = (char*)malloc((size_t)(stat_buf.st_size+1+1000)); - long no_lines = 0; - long pos = 0; - while (!input.eof() && input.peek() != EOF) - { - input.getline(wxBuffer, 500); - int len = strlen(wxBuffer); - wxBuffer[len] = 13; - wxBuffer[len+1] = 10; - wxBuffer[len+2] = 0; - strcpy(tmp_buffer+pos, wxBuffer); - pos += strlen(wxBuffer); - no_lines++; - } - - // TODO add line - - free(tmp_buffer); - - return TRUE; - } - return FALSE; -} - -// If file is null, try saved file name first -// Returns TRUE if succeeds. -bool wxTextCtrl::SaveFile(const wxString& file) -{ - wxString theFile(file); - if (theFile == "") - theFile = m_fileName; - if (theFile == "") - return FALSE; - m_fileName = theFile; - - ofstream output((char*) (const char*) theFile); - if (output.bad()) - return FALSE; - - // TODO get and save text - - return FALSE; -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - // TODO write text to control -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - // TODO append text to control -} - -void wxTextCtrl::Clear() -{ - // TODO -} - -bool wxTextCtrl::IsModified() const -{ - // TODO - return FALSE; -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - // TODO -} - -int wxTextCtrl::GetNumberOfLines() const -{ - // TODO - return 0; -} - -long wxTextCtrl::XYToPosition(long x, long y) const -{ - // TODO - return 0; -} - -void wxTextCtrl::PositionToXY(long pos, long *x, long *y) const -{ - // TODO -} - -void wxTextCtrl::ShowPosition(long pos) -{ - // TODO -} - -int wxTextCtrl::GetLineLength(long lineNo) const -{ - // TODO - return 0; -} - -wxString wxTextCtrl::GetLineText(long lineNo) const -{ - // TODO - return wxString(""); -} - -/* - * Text item - */ - -void wxTextCtrl::Command(wxCommandEvent & event) -{ - SetValue (event.GetString()); - ProcessCommand (event); -} - -void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event) -{ - // By default, load the first file into the text window. - if (event.GetNumberOfFiles() > 0) - { - LoadFile(event.GetFiles()[0]); - } -} - -// The streambuf code was partly taken from chapter 3 by Jerry Schwarz of -// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers - -//========================================================================= -// Called then the buffer is full (gcc 2.6.3) -// or when "endl" is output (Borland 4.5) -//========================================================================= -// Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in wb_text.h. -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow(int c) -{ - // Make sure there is a holding area - if ( allocate()==EOF ) - { - wxError("Streambuf allocation failed","Internal error"); - return EOF; - } - - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - // Reset get area - setg(0,0,0); - - // Make sure there is a put area - if ( ! pptr() ) - { -/* This doesn't seem to be fatal so comment out error message */ -// wxError("Put area not opened","Internal error"); - setp( base(), base() ); - } - - // Determine how many characters have been inserted but no consumed - int plen = pptr() - pbase(); - - // Now Jerry relies on the fact that the buffer is at least 2 chars - // long, but the holding area "may be as small as 1" ??? - // And we need an additional \0, so let's keep this inefficient but - // safe copy. - - // If c!=EOF, it is a character that must also be comsumed - int xtra = c==EOF? 0 : 1; - - // Write temporary C-string to wxTextWindow - { - char *txt = new char[plen+xtra+1]; - memcpy(txt, pbase(), plen); - txt[plen] = (char)c; // append c - txt[plen+xtra] = '\0'; // append '\0' or overwrite c - // If the put area already contained \0, output will be truncated there - AppendText(txt); - delete[] txt; - } - - // Reset put area - setp(pbase(), epptr()); - -#if defined(__WATCOMC__) - return __NOT_EOF; -#elif defined(zapeof) // HP-UX (all cfront based?) - return zapeof(c); -#else - return c!=EOF ? c : 0; // this should make everybody happy -#endif -} - -//========================================================================= -// called then "endl" is output (gcc) or then explicit sync is done (Borland) -//========================================================================= -int wxTextCtrl::sync() -{ - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - if ( pptr() && pptr() > pbase() ) return overflow(EOF); - - return 0; -/* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -*/ -} - -//========================================================================= -// Should not be called by a "ostream". Used by a "istream" -//========================================================================= -int wxTextCtrl::underflow() -{ - return EOF; -} -#endif - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - wxString str; - str.Printf("%.2f", f); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - wxString str; - str.Printf("%.2f", d); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - wxString str; - str.Printf("%d", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - wxString str; - str.Printf("%ld", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} - diff --git a/src/mac/carbon/thread.cpp b/src/mac/carbon/thread.cpp deleted file mode 100644 index 8dd23bdce9..0000000000 --- a/src/mac/carbon/thread.cpp +++ /dev/null @@ -1,264 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: wxThread Implementation. For Unix ports, see e.g. src/gtk -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include "wx/module.h" -#include "wx/thread.h" -#include "wx/utils.h" - -enum thread_state { - STATE_IDLE = 0, - STATE_RUNNING, - STATE_CANCELED, - STATE_EXITED -}; - -#if wxUSE_THREADS - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -wxMutex *wxMainMutex; // controls access to all GUI functions - -///////////////////////////////////////////////////////////////////////////// -// Windows implementation -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - // TODO: internal mutex handle -}; - -wxMutex::wxMutex() -{ - p_internal = new wxMutexInternal; - // TODO: create internal mutext handle - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxDebugMsg("wxMutex warning: freeing a locked mutex (%d locks)\n", m_locked); - // TODO: free internal mutext handle -} - -wxMutexError wxMutex::Lock() -{ - // TODO - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - // TODO - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked > 0) - m_locked--; - - // TODO - return wxMUTEX_NO_ERROR; -} - -class wxConditionInternal { -public: - // TODO: internal handle - int waiters; -}; - -wxCondition::wxCondition() -{ - p_internal = new wxConditionInternal; - // TODO: create internal handle - p_internal->waiters = 0; -} - -wxCondition::~wxCondition() -{ - // TODO: destroy internal handle -} - -void wxCondition::Wait(wxMutex& mutex) -{ - mutex.Unlock(); - p_internal->waiters++; - // TODO wait here - p_internal->waiters--; - mutex.Lock(); -} - -bool wxCondition::Wait(wxMutex& mutex, unsigned long sec, - unsigned long nsec) -{ - mutex.Unlock(); - p_internal->waiters++; - - // TODO wait here - p_internal->waiters--; - mutex.Lock(); - - return FALSE; -} - -void wxCondition::Signal() -{ - // TODO -} - -void wxCondition::Broadcast() -{ - // TODO -} - -class wxThreadInternal { -public: - // TODO -}; - -wxThreadError wxThread::Create() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -void wxThread::Exit(void *status) -{ - // TODO -} - -void wxThread::SetPriority(int prio) -{ - // TODO -} - -int wxThread::GetPriority() const -{ - // TODO - return 0; -} - -void wxThread::DeferDestroy(bool on) -{ - // TODO -} - -void wxThread::TestDestroy() -{ - // TODO -} - -void *wxThread::Join() -{ - // TODO - return (void*) NULL; -} - -unsigned long wxThread::GetID() const -{ - // TODO - return 0; -} - -/* is this needed somewhere ? -wxThread *wxThread::GetThreadFromID(unsigned long id) -{ - // TODO - return NULL; -} -*/ - -bool wxThread::IsAlive() const -{ - // TODO - return FALSE; -} - -bool wxThread::IsRunning() const -{ - // TODO - return FALSE; -} - -bool wxThread::IsMain() -{ - // TODO - return FALSE; -} - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); - - // TODO -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Automatic initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - virtual bool OnInit() { - /* TODO p_mainid = GetCurrentThread(); */ - wxMainMutex = new wxMutex(); - wxMainMutex->Lock(); - return TRUE; - } - - // Global cleanup - virtual void OnExit() { - wxMainMutex->Unlock(); - delete wxMainMutex; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -#endif diff --git a/src/mac/carbon/timer.cpp b/src/mac/carbon/timer.cpp deleted file mode 100644 index 5262040cf6..0000000000 --- a/src/mac/carbon/timer.cpp +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: wxTimer implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) -#endif - -wxTimer::wxTimer() -{ - m_milli = 0 ; - m_id = 0; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); -} - -bool wxTimer::Start(int milliseconds,bool mode) -{ - m_oneShot = mode ; - if (milliseconds <= 0) - return FALSE; - - m_milli = milliseconds; - - // TODO: set the timer going. - return FALSE; -} - -void wxTimer::Stop() -{ - m_id = 0 ; - m_milli = 0 ; -} - - diff --git a/src/mac/carbon/toolbar.cpp b/src/mac/carbon/toolbar.cpp deleted file mode 100644 index 3cb859e366..0000000000 --- a/src/mac/carbon/toolbar.cpp +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.cpp -// Purpose: wxToolBar -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "toolbar.h" -#endif - -#include "wx/wx.h" -#include "wx/toolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase) - -BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase) -END_EVENT_TABLE() -#endif - -wxToolBar::wxToolBar() -{ - m_maxWidth = -1; - m_maxHeight = -1; - m_defaultWidth = 24; - m_defaultHeight = 22; - // TODO -} - -bool wxToolBar::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_maxWidth = -1; - m_maxHeight = -1; - - m_defaultWidth = 24; - m_defaultHeight = 22; - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - if (parent) parent->AddChild(this); - - // TODO create toolbar - - return FALSE; -} - -wxToolBar::~wxToolBar() -{ - // TODO -} - -bool wxToolBar::CreateTools() -{ - if (m_tools.Number() == 0) - return FALSE; - - // TODO - return FALSE; -} - -void wxToolBar::SetToolBitmapSize(const wxSize& size) -{ - m_defaultWidth = size.x; m_defaultHeight = size.y; - // TODO -} - -wxSize wxToolBar::GetMaxSize() const -{ - // TODO - return wxSize(0, 0); -} - -// The button size is bigger than the bitmap size -wxSize wxToolBar::GetToolSize() const -{ - // TODO - return wxSize(m_defaultWidth + 8, m_defaultHeight + 7); -} - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_enabled = enable; - // TODO enable button - } -} - -void wxToolBar::ToggleTool(int toolIndex, bool toggle) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - { - tool->m_toggleState = toggle; - // TODO: set toggle state - } - } -} - -void wxToolBar::ClearTools() -{ - // TODO - wxToolBarBase::ClearTools(); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. - -wxToolBarTool *wxToolBar::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, const wxString& helpString1, const wxString& helpString2) -{ - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, wxNullBitmap, toggle, xPos, yPos, helpString1, helpString2); - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - tool->SetSize(GetDefaultButtonWidth(), GetDefaultButtonHeight()); - - m_tools.Append((long)index, tool); - return tool; -} - diff --git a/src/mac/carbon/treectrl.cpp b/src/mac/carbon/treectrl.cpp deleted file mode 100644 index 137a885dbf..0000000000 --- a/src/mac/carbon/treectrl.cpp +++ /dev/null @@ -1,418 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: wxTreeCtrl. See also Robert's generic wxTreeCtrl. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "treectrl.h" -#endif - -#include "wx/stubs/textctrl.h" -#include "wx/stubs/treectrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject) - -#endif - -wxTreeCtrl::wxTreeCtrl() -{ - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name) -{ - SetName(name); - SetValidator(validator); - - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - if (parent) parent->AddChild(this); - - // TODO create tree control - - return FALSE; -} - -wxTreeCtrl::~wxTreeCtrl() -{ - if (m_textCtrl) - { - delete m_textCtrl; - } -} - -// Attributes -int wxTreeCtrl::GetCount() const -{ - // TODO - return 0; -} - -int wxTreeCtrl::GetIndent() const -{ - // TODO - return 0; -} - -void wxTreeCtrl::SetIndent(int indent) -{ - // TODO -} - -wxImageList *wxTreeCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - m_imageListState = imageList; - } - // TODO -} - -long wxTreeCtrl::GetNextItem(long item, int code) const -{ - // TODO - return 0; -} - -bool wxTreeCtrl::ItemHasChildren(long item) const -{ - // TODO - return FALSE; -} - -long wxTreeCtrl::GetChild(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetParent(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetFirstVisibleItem() const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetNextVisibleItem(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetSelection() const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetRootItem() const -{ - // TODO - return 0; -} - -bool wxTreeCtrl::GetItem(wxTreeItem& info) const -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::SetItem(wxTreeItem& info) -{ - // TODO - return FALSE; -} - -int wxTreeCtrl::GetItemState(long item, long stateMask) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_IMAGE ; - info.m_image = image; - if ( selImage > -1) - { - info.m_selectedImage = selImage; - info.m_mask |= wxTREE_MASK_SELECTED_IMAGE; - } - info.m_itemId = item; - - return SetItem(info); -} - -wxString wxTreeCtrl::GetItemText(long item) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -void wxTreeCtrl::SetItemText(long item, const wxString& str) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -long wxTreeCtrl::GetItemData(long item) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -bool wxTreeCtrl::SetItemData(long item, long data) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -bool wxTreeCtrl::GetItemRect(long item, wxRect& rect, bool textOnly) const -{ - // TODO - return FALSE; -} - -wxTextCtrl* wxTreeCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -// Operations -bool wxTreeCtrl::DeleteItem(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::ExpandItem(long item, int action) -{ - // TODO - switch ( action ) - { - case wxTREE_EXPAND_EXPAND: - break; - - case wxTREE_EXPAND_COLLAPSE: - break; - - case wxTREE_EXPAND_COLLAPSE_RESET: - break; - - case wxTREE_EXPAND_TOGGLE: - break; - - default: - wxFAIL_MSG("unknown action in wxTreeCtrl::ExpandItem"); - } - - bool bOk = FALSE; // TODO expand item - - // May not send messages, so emulate them - if ( bOk ) { - wxTreeEvent event(wxEVT_NULL, m_windowId); - event.m_item.m_itemId = item; - event.m_item.m_mask = - event.m_item.m_stateMask = 0xffff; // get all - GetItem(event.m_item); - - bool bIsExpanded = (event.m_item.m_state & wxTREE_STATE_EXPANDED) != 0; - - event.m_code = action; - event.SetEventObject(this); - - // @@@ return values of {EXPAND|COLLAPS}ING event handler is discarded - event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDING - : wxEVT_COMMAND_TREE_ITEM_COLLAPSING); - GetEventHandler()->ProcessEvent(event); - - event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDED - : wxEVT_COMMAND_TREE_ITEM_COLLAPSED); - GetEventHandler()->ProcessEvent(event); - } - - return bOk; -} - -long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) -{ - // TODO - return 0; -} - -long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image, int selImage, - long insertAfter) -{ - wxTreeItem info; - info.m_text = label; - info.m_mask = wxTREE_MASK_TEXT; - if ( image > -1 ) - { - info.m_mask |= wxTREE_MASK_IMAGE | wxTREE_MASK_SELECTED_IMAGE; - info.m_image = image; - if ( selImage == -1 ) - info.m_selectedImage = image; - else - info.m_selectedImage = selImage; - } - - return InsertItem(parent, info, insertAfter); -} - -bool wxTreeCtrl::SelectItem(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::ScrollTo(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - // TODO - return NULL; -} - -// End label editing, optionally cancelling the edit -bool wxTreeCtrl::EndEditLabel(bool cancel) -{ - // TODO - return FALSE; -} - -long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) -{ - // TODO - return 0; -} - -bool wxTreeCtrl::SortChildren(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::EnsureVisible(long item) -{ - // TODO - return FALSE; -} - -// Tree item structure -wxTreeItem::wxTreeItem() -{ - m_mask = 0; - m_itemId = 0; - m_state = 0; - m_stateMask = 0; - m_image = -1; - m_selectedImage = -1; - m_children = 0; - m_data = 0; -} - -// Tree event -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent) - -wxTreeEvent::wxTreeEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ - m_code = 0; - m_oldItem = 0; -} - diff --git a/src/mac/carbon/utils.cpp b/src/mac/carbon/utils.cpp deleted file mode 100644 index 940bdc21bc..0000000000 --- a/src/mac/carbon/utils.cpp +++ /dev/null @@ -1,272 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: Various utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// Note: this is done in utilscmn.cpp now. -// #pragma implementation -// #pragma implementation "utils.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" - -#include - -#include -#include -#include -#include - -// Get full hostname (eg. DoDo.BSn-Germany.crg.de) -bool wxGetHostName(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -// Get user ID e.g. jacs -bool wxGetUserId(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -// Get user name e.g. AUTHOR -bool wxGetUserName(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -int wxKill(long pid, int sig) -{ - // TODO - return 0; -} - -// -// Execute a program in an Interactive Shell -// -bool wxShell(const wxString& command) -{ - // TODO - return FALSE; -} - -// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) -long wxGetFreeMemory() -{ - // TODO - return 0; -} - -void wxSleep(int nSecs) -{ - // TODO -} - -// Consume all events until no more left -void wxFlushEvents() -{ -} - -// Output a debug message, in a system dependent fashion. -void wxDebugMsg(const char *fmt ...) -{ - va_list ap; - static char buffer[512]; - - if (!wxTheApp->GetWantDebugOutput()) - return ; - - va_start(ap, fmt); - - // wvsprintf(buffer,fmt,ap) ; - // TODO: output buffer - - va_end(ap); -} - -// Non-fatal error: pop up message box and (possibly) continue -void wxError(const wxString& msg, const wxString& title) -{ - // TODO - wxExit(); -} - -// Fatal error: pop up message box and abort -void wxFatalError(const wxString& msg, const wxString& title) -{ - // TODO -} - -// Emit a beeeeeep -void wxBell() -{ - // TODO -} - -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - // TODO - return 0; -} - -// Reading and writing resources (eg WIN.INI, .Xdefaults) -#if wxUSE_RESOURCES -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file) -{ - // TODO - return FALSE; -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) -{ - // TODO - return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (float)strtod(s, NULL); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (int)strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} -#endif // wxUSE_RESOURCES - -static int wxBusyCursorCount = 0; - -// Set the cursor to the busy cursor for all windows -void wxBeginBusyCursor(wxCursor *cursor) -{ - wxBusyCursorCount ++; - if (wxBusyCursorCount == 1) - { - // TODO - } - else - { - // TODO - } -} - -// Restore cursor to normal -void wxEndBusyCursor() -{ - if (wxBusyCursorCount == 0) - return; - - wxBusyCursorCount --; - if (wxBusyCursorCount == 0) - { - // TODO - } -} - -// TRUE if we're between the above two calls -bool wxIsBusy() -{ - return (wxBusyCursorCount > 0); -} - -char *wxGetUserHome (const wxString& user) -{ - // TODO - return NULL; -} - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -bool wxCheckForInterrupt(wxWindow *wnd) -{ - // TODO - return FALSE; -} - -void wxGetMousePosition( int* x, int* y ) -{ - // TODO -}; - -// Return TRUE if we have a colour display -bool wxColourDisplay() -{ - // TODO - return TRUE; -} - -// Returns depth of screen -int wxDisplayDepth() -{ - // TODO - return 0; -} - -// Get size of display -void wxDisplaySize(int *width, int *height) -{ - // TODO -} - diff --git a/src/mac/carbon/utilsexc.cpp b/src/mac/carbon/utilsexc.cpp deleted file mode 100644 index b842d08e90..0000000000 --- a/src/mac/carbon/utilsexc.cpp +++ /dev/null @@ -1,28 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utilsexec.cpp -// Purpose: Execution-related utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/utils.h" - -#include -#include -#include - -#define wxEXECUTE_WIN_MESSAGE 10000 - -long wxExecute(const wxString& command, bool sync, wxProcess *handler) -{ - // TODO - return 0; -} diff --git a/src/mac/carbon/wave.cpp b/src/mac/carbon/wave.cpp deleted file mode 100644 index c25681858c..0000000000 --- a/src/mac/carbon/wave.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave class implementation: optional -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stubs/wave.h" - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(sFileName, isResource); -} - - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - // TODO - - return FALSE; -} - -bool wxWave::Play(bool async, bool looped) const -{ - if (!IsOk()) - return FALSE; - - // TODO - return FALSE; -} - -bool wxWave::Free() -{ - // TODO - return FALSE; -} - - diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp deleted file mode 100644 index a54fd3331d..0000000000 --- a/src/mac/carbon/window.cpp +++ /dev/null @@ -1,1295 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows.cpp -// Purpose: wxWindow -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "window.h" -#endif - -#include "wx/setup.h" -#include "wx/menu.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/panel.h" -#include "wx/layout.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/frame.h" - -#include "wx/menuitem.h" -#include "wx/log.h" - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#include - -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler) - -BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) - EVT_CHAR(wxWindow::OnChar) - EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindow::OnInitDialog) - EVT_IDLE(wxWindow::OnIdle) -END_EVENT_TABLE() - -#endif - - -// Constructor -wxWindow::wxWindow() -{ - // Generic - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_children = new wxList; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - m_defaultItem = NULL; - m_returnCode = 0; - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_foregroundColour = *wxBLACK; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif -} - -// Destructor -wxWindow::~wxWindow() -{ - // Have to delete constraints/sizer FIRST otherwise - // sizers may try to look at deleted windows as they - // delete themselves. -#if wxUSE_CONSTRAINTS - DeleteRelatedConstraints(); - if (m_constraints) - { - // This removes any dangling pointers to this window - // in other windows' constraintsInvolvedIn lists. - UnsetConstraints(m_constraints); - delete m_constraints; - m_constraints = NULL; - } - if (m_windowSizer) - { - delete m_windowSizer; - m_windowSizer = NULL; - } - // If this is a child of a sizer, remove self from parent - if (m_sizerParent) - m_sizerParent->RemoveChild((wxWindow *)this); -#endif - - if (m_windowParent) - m_windowParent->RemoveChild(this); - - DestroyChildren(); - - // TODO: destroy the window - - delete m_children; - m_children = NULL; - - // Just in case the window has been Closed, but - // we're then deleting immediately: don't leave - // dangling pointers. - wxPendingDelete.DeleteObject(this); - - if ( m_windowValidator ) - delete m_windowValidator; -} - -// Destroy the window (delayed, if a managed window) -bool wxWindow::Destroy() -{ - delete this; - return TRUE; -} - -// Constructor -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // Generic - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif - - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_minSizeX = -1; - m_minSizeY = -1; - m_maxSizeX = -1; - m_maxSizeY = -1; - m_defaultItem = NULL; - m_windowParent = NULL; - if (!parent) - return FALSE; - - if (parent) parent->AddChild(this); - - m_returnCode = 0; - - SetName(name); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - m_foregroundColour = *wxBLACK; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create the window - - return TRUE; -} - -void wxWindow::SetFocus() -{ - // TODO -} - -void wxWindow::Enable(bool enable) -{ - // TODO -} - -void wxWindow::CaptureMouse() -{ - // TODO -} - -void wxWindow::ReleaseMouse() -{ - // TODO -} - -// Push/pop event handler (i.e. allow a chain of event handlers -// be searched) -void wxWindow::PushEventHandler(wxEvtHandler *handler) -{ - handler->SetNextHandler(GetEventHandler()); - SetEventHandler(handler); -} - -wxEvtHandler *wxWindow::PopEventHandler(bool deleteHandler) -{ - if ( GetEventHandler() ) - { - wxEvtHandler *handlerA = GetEventHandler(); - wxEvtHandler *handlerB = handlerA->GetNextHandler(); - handlerA->SetNextHandler(NULL); - SetEventHandler(handlerB); - if ( deleteHandler ) - { - delete handlerA; - return NULL; - } - else - return handlerA; - } - else - return NULL; -} - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget(wxDropTarget *pDropTarget) -{ - if ( m_pDropTarget != 0 ) { - delete m_pDropTarget; - } - - m_pDropTarget = pDropTarget; - if ( m_pDropTarget != 0 ) - { - // TODO - } -} - -#endif - -// Old style file-manager drag&drop -void wxWindow::DragAcceptFiles(bool accept) -{ - // TODO -} - -// Get total size -void wxWindow::GetSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ScreenToClient(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ClientToScreen(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetCursor(const wxCursor& cursor) -{ - m_windowCursor = cursor; - if (m_windowCursor.Ok()) - { - // TODO - } -} - - -// Get size *available for subwindows* i.e. excluding menu bar etc. -void wxWindow::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxWindow::SetClientSize(int width, int height) -{ - // TODO -} - -// For implementation purposes - sometimes decorations make the client area -// smaller -wxPoint wxWindow::GetClientAreaOrigin() const -{ - return wxPoint(0, 0); -} - -// Makes an adjustment to the window position (for example, a frame that has -// a toolbar that it manages itself). -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - x += pt.x; y += pt.y; - } -} - -bool wxWindow::Show(bool show) -{ - // TODO - return FALSE; -} - -bool wxWindow::IsShown() const -{ - // TODO - return FALSE; -} - -int wxWindow::GetCharHeight() const -{ - // TODO - return 0; -} - -int wxWindow::GetCharWidth() const -{ - // TODO - return 0; -} - -void wxWindow::GetTextExtent(const wxString& string, int *x, int *y, - int *descent, int *externalLeading, const wxFont *theFont, bool) const -{ - wxFont *fontToUse = (wxFont *)theFont; - if (!fontToUse) - fontToUse = (wxFont *) & m_windowFont; - - // TODO -} - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - // TODO -} - -// Responds to colour changes: passes event on to children. -void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = (wxWindow *)node->Data(); - if ( win->GetParent() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->Next(); - } -} - -// This can be called by the app (or wxWindows) to do default processing for the current -// event. Save message/event info in wxWindow so they can be used in this function. -long wxWindow::Default() -{ - // TODO - return 0; -} - -void wxWindow::InitDialog() -{ - wxInitDialogEvent event(GetId()); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -// Default init dialog behaviour is to transfer data to window -void wxWindow::OnInitDialog(wxInitDialogEvent& event) -{ - TransferDataToWindow(); -} - -// Caret manipulation -void wxWindow::CreateCaret(int w, int h) -{ - m_caretWidth = w; - m_caretHeight = h; - m_caretEnabled = TRUE; -} - -void wxWindow::CreateCaret(const wxBitmap *WXUNUSED(bitmap)) -{ - // TODO -} - -void wxWindow::ShowCaret(bool show) -{ - // TODO -} - -void wxWindow::DestroyCaret() -{ - // TODO - m_caretEnabled = FALSE; -} - -void wxWindow::SetCaretPos(int x, int y) -{ - // TODO -} - -void wxWindow::GetCaretPos(int *x, int *y) const -{ - // TODO -} - -wxWindow *wxGetActiveWindow() -{ - // TODO - return NULL; -} - -void wxWindow::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW), int WXUNUSED(incH)) -{ - m_minSizeX = minW; - m_minSizeY = minH; - m_maxSizeX = maxW; - m_maxSizeY = maxH; -} - -void wxWindow::Centre(int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *father = (wxWindow *)GetParent(); - if (!father) - return; - - father->GetClientSize(&panel_width, &panel_height); - GetSize(&width, &height); - GetPosition(&x, &y); - - new_x = -1; - new_y = -1; - - if (direction & wxHORIZONTAL) - new_x = (int)((panel_width - width)/2); - - if (direction & wxVERTICAL) - new_y = (int)((panel_height - height)/2); - - SetSize(new_x, new_y, -1, -1); - -} - -// Coordinates relative to the window -void wxWindow::WarpPointer (int x_pos, int y_pos) -{ - // TODO -} - -void wxWindow::OnEraseBackground(wxEraseEvent& event) -{ - // TODO - Default(); -} - -int wxWindow::GetScrollPos(int orient) const -{ - // TODO - return 0; -} - -// This now returns the whole range, not just the number -// of positions that we can scroll. -int wxWindow::GetScrollRange(int orient) const -{ - // TODO - return 0; -} - -int wxWindow::GetScrollThumb(int orient) const -{ - // TODO - return 0; -} - -void wxWindow::SetScrollPos(int orient, int pos, bool refresh) -{ - // TODO - return; -} - -// New function that will replace some of the above. -void wxWindow::SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh) -{ - // TODO -} - -// Does a physical scroll -void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) -{ - // TODO - return; -} - -void wxWindow::SetFont(const wxFont& font) -{ - m_windowFont = font; - - if (!m_windowFont.Ok()) - return; - // TODO -} - -void wxWindow::OnChar(wxKeyEvent& event) -{ - if ( event.KeyCode() == WXK_TAB ) { - // propagate the TABs to the parent - it's up to it to decide what - // to do with it - if ( GetParent() ) { - if ( GetParent()->ProcessEvent(event) ) - return; - } - } -} - -void wxWindow::OnPaint(wxPaintEvent& event) -{ - Default(); -} - -bool wxWindow::IsEnabled() const -{ - // TODO - return FALSE; -} - -// Dialog support: override these and call -// base class members to add functionality -// that can't be done using validators. -// NOTE: these functions assume that controls -// are direct children of this window, not grandchildren -// or other levels of descendant. - -// Transfer values to controls. If returns FALSE, -// it's an application error (pops up a dialog) -bool wxWindow::TransferDataToWindow() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && - !child->GetValidator()->TransferToWindow() ) - { - wxMessageBox("Application Error", "Could not transfer data to window", wxOK|wxICON_EXCLAMATION); - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Transfer values from controls. If returns FALSE, -// validation failed: don't quit -bool wxWindow::TransferDataFromWindow() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && !child->GetValidator()->TransferFromWindow() ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -bool wxWindow::Validate() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && /* child->GetValidator()->Ok() && */ !child->GetValidator()->Validate(this) ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Get the window with the focus -wxWindow *wxWindow::FindFocus() -{ - // TODO - return NULL; -} - -void wxWindow::AddChild(wxWindow *child) -{ - GetChildren().Append(child); - child->m_windowParent = this; -} - -void wxWindow::RemoveChild(wxWindow *child) -{ - GetChildren().DeleteObject(child); - child->m_windowParent = NULL; -} - -void wxWindow::DestroyChildren() -{ - wxNode *node; - while ((node = GetChildren().First()) != (wxNode *)NULL) { - wxWindow *child; - if ((child = (wxWindow *)node->Data()) != (wxWindow *)NULL) { - delete child; - if ( GetChildren().Member(child) ) - delete node; - } - } /* while */ -} - -void wxWindow::MakeModal(bool modal) -{ - // Disable all other windows - if (this->IsKindOf(CLASSINFO(wxDialog)) || this->IsKindOf(CLASSINFO(wxFrame))) - { - wxNode *node = wxTopLevelWindows.First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win != this) - win->Enable(!modal); - - node = node->Next(); - } - } -} - -// If nothing defined for this, try the parent. -// E.g. we may be a button loaded from a resource, with no callback function -// defined. -void wxWindow::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if (GetEventHandler()->ProcessEvent(event) ) - return; - if (m_windowParent) - m_windowParent->GetEventHandler()->OnCommand(win, event); -} - -void wxWindow::SetConstraints(wxLayoutConstraints *c) -{ - if (m_constraints) - { - UnsetConstraints(m_constraints); - delete m_constraints; - } - m_constraints = c; - if (m_constraints) - { - // Make sure other windows know they're part of a 'meaningful relationship' - if (m_constraints->left.GetOtherWindow() && (m_constraints->left.GetOtherWindow() != this)) - m_constraints->left.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->top.GetOtherWindow() && (m_constraints->top.GetOtherWindow() != this)) - m_constraints->top.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->right.GetOtherWindow() && (m_constraints->right.GetOtherWindow() != this)) - m_constraints->right.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->bottom.GetOtherWindow() && (m_constraints->bottom.GetOtherWindow() != this)) - m_constraints->bottom.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->width.GetOtherWindow() && (m_constraints->width.GetOtherWindow() != this)) - m_constraints->width.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->height.GetOtherWindow() && (m_constraints->height.GetOtherWindow() != this)) - m_constraints->height.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreX.GetOtherWindow() && (m_constraints->centreX.GetOtherWindow() != this)) - m_constraints->centreX.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreY.GetOtherWindow() && (m_constraints->centreY.GetOtherWindow() != this)) - m_constraints->centreY.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - } -} - -// This removes any dangling pointers to this window -// in other windows' constraintsInvolvedIn lists. -void wxWindow::UnsetConstraints(wxLayoutConstraints *c) -{ - if (c) - { - if (c->left.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->left.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->top.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->top.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->right.GetOtherWindow() && (c->right.GetOtherWindow() != this)) - c->right.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->bottom.GetOtherWindow() && (c->bottom.GetOtherWindow() != this)) - c->bottom.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->width.GetOtherWindow() && (c->width.GetOtherWindow() != this)) - c->width.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->height.GetOtherWindow() && (c->height.GetOtherWindow() != this)) - c->height.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreX.GetOtherWindow() && (c->centreX.GetOtherWindow() != this)) - c->centreX.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreY.GetOtherWindow() && (c->centreY.GetOtherWindow() != this)) - c->centreY.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - } -} - -// Back-pointer to other windows we're involved with, so if we delete -// this window, we must delete any constraints we're involved with. -void wxWindow::AddConstraintReference(wxWindow *otherWin) -{ - if (!m_constraintsInvolvedIn) - m_constraintsInvolvedIn = new wxList; - if (!m_constraintsInvolvedIn->Member(otherWin)) - m_constraintsInvolvedIn->Append(otherWin); -} - -// REMOVE back-pointer to other windows we're involved with. -void wxWindow::RemoveConstraintReference(wxWindow *otherWin) -{ - if (m_constraintsInvolvedIn) - m_constraintsInvolvedIn->DeleteObject(otherWin); -} - -// Reset any constraints that mention this window -void wxWindow::DeleteRelatedConstraints() -{ - if (m_constraintsInvolvedIn) - { - wxNode *node = m_constraintsInvolvedIn->First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - wxNode *next = node->Next(); - wxLayoutConstraints *constr = win->GetConstraints(); - - // Reset any constraints involving this window - if (constr) - { - constr->left.ResetIfWin((wxWindow *)this); - constr->top.ResetIfWin((wxWindow *)this); - constr->right.ResetIfWin((wxWindow *)this); - constr->bottom.ResetIfWin((wxWindow *)this); - constr->width.ResetIfWin((wxWindow *)this); - constr->height.ResetIfWin((wxWindow *)this); - constr->centreX.ResetIfWin((wxWindow *)this); - constr->centreY.ResetIfWin((wxWindow *)this); - } - delete node; - node = next; - } - delete m_constraintsInvolvedIn; - m_constraintsInvolvedIn = NULL; - } -} - -void wxWindow::SetSizer(wxSizer *sizer) -{ - m_windowSizer = sizer; - if (sizer) - sizer->SetSizerParent((wxWindow *)this); -} - -/* - * New version - */ - -bool wxWindow::Layout() -{ - if (GetConstraints()) - { - int w, h; - GetClientSize(&w, &h); - GetConstraints()->width.SetValue(w); - GetConstraints()->height.SetValue(h); - } - - // If top level (one sizer), evaluate the sizer's constraints. - if (GetSizer()) - { - int noChanges; - GetSizer()->ResetConstraints(); // Mark all constraints as unevaluated - GetSizer()->LayoutPhase1(&noChanges); - GetSizer()->LayoutPhase2(&noChanges); - GetSizer()->SetConstraintSizes(); // Recursively set the real window sizes - return TRUE; - } - else - { - // Otherwise, evaluate child constraints - ResetConstraints(); // Mark all constraints as unevaluated - DoPhase(1); // Just one phase need if no sizers involved - DoPhase(2); - SetConstraintSizes(); // Recursively set the real window sizes - } - return TRUE; -} - - -// Do a phase of evaluating constraints: -// the default behaviour. wxSizers may do a similar -// thing, but also impose their own 'constraints' -// and order the evaluation differently. -bool wxWindow::LayoutPhase1(int *noChanges) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - return constr->SatisfyConstraints((wxWindow *)this, noChanges); - } - else - return TRUE; -} - -bool wxWindow::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - // Layout children - DoPhase(1); - DoPhase(2); - return TRUE; -} - -// Do a phase of evaluating child constraints -bool wxWindow::DoPhase(int phase) -{ - int noIterations = 0; - int maxIterations = 500; - int noChanges = 1; - int noFailures = 0; - wxList succeeded; - while ((noChanges > 0) && (noIterations < maxIterations)) - { - noChanges = 0; - noFailures = 0; - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && !child->IsKindOf(CLASSINFO(wxDialog))) - { - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr) - { - if (succeeded.Member(child)) - { - } - else - { - int tempNoChanges = 0; - bool success = ( (phase == 1) ? child->LayoutPhase1(&tempNoChanges) : child->LayoutPhase2(&tempNoChanges) ) ; - noChanges += tempNoChanges; - if (success) - { - succeeded.Append(child); - } - } - } - } - node = node->Next(); - } - noIterations ++; - } - return TRUE; -} - -void wxWindow::ResetConstraints() -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - constr->left.SetDone(FALSE); - constr->top.SetDone(FALSE); - constr->right.SetDone(FALSE); - constr->bottom.SetDone(FALSE); - constr->width.SetDone(FALSE); - constr->height.SetDone(FALSE); - constr->centreX.SetDone(FALSE); - constr->centreY.SetDone(FALSE); - } - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->ResetConstraints(); - node = node->Next(); - } -} - -// Need to distinguish between setting the 'fake' size for -// windows and sizers, and setting the real values. -void wxWindow::SetConstraintSizes(bool recurse) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr && constr->left.GetDone() && constr->right.GetDone() && - constr->width.GetDone() && constr->height.GetDone()) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - - // If we don't want to resize this window, just move it... - if ((constr->width.GetRelationship() != wxAsIs) || - (constr->height.GetRelationship() != wxAsIs)) - { - // Calls Layout() recursively. AAAGH. How can we stop that. - // Simply take Layout() out of non-top level OnSizes. - SizerSetSize(x, y, w, h); - } - else - { - SizerMove(x, y); - } - } - else if (constr) - { - char *windowClass = this->GetClassInfo()->GetClassName(); - - wxString winName; - if (GetName() == "") - winName = "unnamed"; - else - winName = GetName(); - wxDebugMsg("Constraint(s) not satisfied for window of type %s, name %s:\n", (const char *)windowClass, (const char *)winName); - if (!constr->left.GetDone()) - wxDebugMsg(" unsatisfied 'left' constraint.\n"); - if (!constr->right.GetDone()) - wxDebugMsg(" unsatisfied 'right' constraint.\n"); - if (!constr->width.GetDone()) - wxDebugMsg(" unsatisfied 'width' constraint.\n"); - if (!constr->height.GetDone()) - wxDebugMsg(" unsatisfied 'height' constraint.\n"); - wxDebugMsg("Please check constraints: try adding AsIs() constraints.\n"); - } - - if (recurse) - { - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->SetConstraintSizes(); - node = node->Next(); - } - } -} - -// This assumes that all sizers are 'on' the same -// window, i.e. the parent of this window. -void wxWindow::TransformSizerToActual(int *x, int *y) const -{ - if (!m_sizerParent || m_sizerParent->IsKindOf(CLASSINFO(wxDialog)) || - m_sizerParent->IsKindOf(CLASSINFO(wxFrame)) ) - return; - - int xp, yp; - m_sizerParent->GetPosition(&xp, &yp); - m_sizerParent->TransformSizerToActual(&xp, &yp); - *x += xp; - *y += yp; -} - -void wxWindow::SizerSetSize(int x, int y, int w, int h) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - SetSize(xx, yy, w, h); -} - -void wxWindow::SizerMove(int x, int y) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - Move(xx, yy); -} - -// Only set the size/position of the constraint (if any) -void wxWindow::SetSizeConstraint(int x, int y, int w, int h) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - if (w != -1) - { - constr->width.SetValue(w); - constr->width.SetDone(TRUE); - } - if (h != -1) - { - constr->height.SetValue(h); - constr->height.SetDone(TRUE); - } - } -} - -void wxWindow::MoveConstraint(int x, int y) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - } -} - -void wxWindow::GetSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetSize(w, h); -} - -void wxWindow::GetClientSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetClientSize(w, h); -} - -void wxWindow::GetPositionConstraint(int *x, int *y) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *x = constr->left.GetValue(); - *y = constr->top.GetValue(); - } - else - GetPosition(x, y); -} - -bool wxWindow::Close(bool force) -{ - wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId); - event.SetEventObject(this); -#if WXWIN_COMPATIBILITY - event.SetForce(force); -#endif - event.SetCanVeto(!force); - - return GetEventHandler()->ProcessEvent(event); -} - -wxObject* wxWindow::GetChild(int number) const -{ - // Return a pointer to the Nth object in the window - wxNode *node = GetChildren().First(); - int n = number; - while (node && n--) - node = node->Next() ; - if (node) - { - wxObject *obj = (wxObject *)node->Data(); - return(obj) ; - } - else - return NULL ; -} - -void wxWindow::OnDefaultAction(wxControl *initiatingItem) -{ - // Obsolete function -} - -void wxWindow::Clear() -{ - wxClientDC dc(this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - -// Fits the panel around the items -void wxWindow::Fit() -{ - int maxX = 0; - int maxY = 0; - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *win = (wxWindow *)node->Data(); - int wx, wy, ww, wh; - win->GetPosition(&wx, &wy); - win->GetSize(&ww, &wh); - if ( wx + ww > maxX ) - maxX = wx + ww; - if ( wy + wh > maxY ) - maxY = wy + wh; - - node = node->Next(); - } - SetClientSize(maxX + 5, maxY + 5); -} - -void wxWindow::SetValidator(const wxValidator& validator) -{ - if ( m_windowValidator ) - delete m_windowValidator; - m_windowValidator = validator.Clone(); - - if ( m_windowValidator ) - m_windowValidator->SetWindow(this) ; -} - -void wxWindow::SetAcceleratorTable(const wxAcceleratorTable& accel) -{ - m_acceleratorTable = accel; -} - -// Find a window by id or name -wxWindow *wxWindow::FindWindow(long id) -{ - if ( GetId() == id) - return this; - - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(id); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -wxWindow *wxWindow::FindWindow(const wxString& name) -{ - if ( GetName() == name) - return this; - - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(name); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ -/* TODO: you may need to do something like this - * if your GUI doesn't generate enter/leave events - - // Check if we need to send a LEAVE event - if (m_mouseInWindow) - { - POINT pt; - ::GetCursorPos(&pt); - if (::WindowFromPoint(pt) != (HWND) GetHWND()) - { - // Generate a LEAVE event - m_mouseInWindow = FALSE; - MSWOnMouseLeave(pt.x, pt.y, 0); - } - } -*/ - - // This calls the UI-update mechanism (querying windows for - // menu/toolbar/control state information) - UpdateWindowUI(); -} - -// Raise the window to the top of the Z order -void wxWindow::Raise() -{ - // TODO -} - -// Lower the window to the bottom of the Z order -void wxWindow::Lower() -{ - // TODO -} - -bool wxWindow::AcceptsFocus() const -{ - return IsShown() && IsEnabled(); -} - -// Update region access -wxRegion wxWindow::GetUpdateRegion() const -{ - return m_updateRegion; -} - -bool wxWindow::IsExposed(int x, int y, int w, int h) const -{ - return (m_updateRegion.Contains(x, y, w, h) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxPoint& pt) const -{ - return (m_updateRegion.Contains(pt) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxRect& rect) const -{ - return (m_updateRegion.Contains(rect) != wxOutRegion); -} - -/* - * Allocates control IDs - */ - -int wxWindow::NewControlId() -{ - static int s_controlId = 0; - s_controlId ++; - return s_controlId; -} - - diff --git a/src/mac/checkbox.cpp b/src/mac/checkbox.cpp deleted file mode 100644 index dd2e2abe7a..0000000000 --- a/src/mac/checkbox.cpp +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: wxCheckBox -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create checkbox - - return FALSE; -} - -void wxCheckBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxCheckBox::GetValue() const -{ - // TODO - return FALSE; -} - -void wxCheckBox::Command (wxCommandEvent & event) -{ - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -// Bitmap checkbox -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: Create the bitmap checkbox - - return FALSE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap *bitmap) -{ - // TODO -} - -void wxBitmapCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxBitmapCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxBitmapCheckBox::GetValue() const -{ - // TODOD - return FALSE; -} - - diff --git a/src/mac/checklst.cpp b/src/mac/checklst.cpp deleted file mode 100644 index 2f43152c2a..0000000000 --- a/src/mac/checklst.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: implementation of wxCheckListBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -#include "wx/checklst.h" - -// ============================================================================ -// implementation -// ============================================================================ - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox) -#endif - -// ---------------------------------------------------------------------------- -// implementation of wxCheckListBox class -// ---------------------------------------------------------------------------- - -// define event table -// ------------------ -BEGIN_EVENT_TABLE(wxCheckListBox, wxListBox) -END_EVENT_TABLE() - -// control creation -// ---------------- - -// def ctor: use Create() to really create the control -wxCheckListBox::wxCheckListBox() : wxListBox() -{ -} - -// ctor which creates the associated control -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - int nStrings, const wxString choices[], - long style, const wxValidator& val, - const wxString& name) - : wxListBox() -{ - // TODO: you'll probably need a separate Create instead of using - // the wxListBox one as here. - Create(parent, id, pos, size, nStrings, choices, style|wxLB_OWNERDRAW, val, name); -} - -// check items -// ----------- - -bool wxCheckListBox::IsChecked(size_t uiIndex) const -{ - // TODO - return FALSE; -} - -void wxCheckListBox::Check(size_t uiIndex, bool bCheck) -{ - // TODO -} - - diff --git a/src/mac/choice.cpp b/src/mac/choice.cpp deleted file mode 100644 index a584d5303f..0000000000 --- a/src/mac/choice.cpp +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/choice.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -bool wxChoice::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create choice control - return FALSE; -} - -void wxChoice::Append(const wxString& item) -{ - // TODO - m_noStrings ++; -} - -void wxChoice::Delete(int n) -{ - // TODO - m_noStrings --; -} - -void wxChoice::Clear() -{ - // TODO - m_noStrings = 0; -} - -int wxChoice::GetSelection() const -{ - // TODO - return 0; -} - -void wxChoice::SetSelection(int n) -{ - // TODO -} - -int wxChoice::FindString(const wxString& s) const -{ - // TODO - return 0; -} - -wxString wxChoice::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxChoice::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -wxString wxChoice::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return wxString(this->GetString (sel)); - else - return wxString(""); -} - -bool wxChoice::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxChoice::Command(wxCommandEvent & event) -{ - SetSelection (event.GetInt()); - ProcessCommand (event); -} - diff --git a/src/mac/clipbrd.cpp b/src/mac/clipbrd.cpp deleted file mode 100644 index 3fe9ebfb72..0000000000 --- a/src/mac/clipbrd.cpp +++ /dev/null @@ -1,237 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: Clipboard functionality -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma implementation "clipbrd.h" -#endif - -#include "wx/app.h" -#include "wx/frame.h" -#include "wx/bitmap.h" -#include "wx/utils.h" -#include "wx/metafile.h" -#include "wx/clipbrd.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject) -#endif - -bool wxOpenClipboard() -{ - // TODO - return FALSE; -} - -bool wxCloseClipboard() -{ - // TODO - return FALSE; -} - -bool wxEmptyClipboard() -{ - // TODO - return FALSE; -} - -bool wxClipboardOpen() -{ - // TODO - return FALSE; -} - -bool wxIsClipboardFormatAvailable(int dataFormat) -{ - // TODO - return FALSE; -} - -bool wxSetClipboardData(int dataFormat, wxObject *obj, int width, int height) -{ - // TODO - return FALSE; -} - -wxObject *wxGetClipboardData(int dataFormat, long *len) -{ - // TODO - return NULL; -} - -int wxEnumClipboardFormats(int dataFormat) -{ - // TODO - return 0; -} - -int wxRegisterClipboardFormat(char *formatName) -{ - // TODO - return 0; -} - -bool wxGetClipboardFormatName(int dataFormat, char *formatName, int maxCount) -{ - // TODO - return FALSE; -} - -/* - * Generalized clipboard implementation by Matthew Flatt - */ - -wxClipboard *wxTheClipboard = NULL; - -void wxInitClipboard() -{ - if (!wxTheClipboard) - wxTheClipboard = new wxClipboard; -} - -wxClipboard::wxClipboard() -{ - clipOwner = NULL; - cbString = NULL; -} - -wxClipboard::~wxClipboard() -{ - if (clipOwner) - clipOwner->BeingReplaced(); - if (cbString) - delete[] cbString; -} - -static int FormatStringToID(char *str) -{ - if (!strcmp(str, "TEXT")) - return wxDF_TEXT; - - return wxRegisterClipboardFormat(str); -} - -void wxClipboard::SetClipboardClient(wxClipboardClient *client, long time) -{ - bool got_selection; - - if (clipOwner) - clipOwner->BeingReplaced(); - clipOwner = client; - if (cbString) { - delete[] cbString; - cbString = NULL; - } - - if (wxOpenClipboard()) { - char **formats, *data; - int i; - int ftype; - long size; - - formats = clipOwner->formats.ListToArray(FALSE); - for (i = clipOwner->formats.Number(); i--; ) { - ftype = FormatStringToID(formats[i]); - data = clipOwner->GetData(formats[i], &size); - if (!wxSetClipboardData(ftype, (wxObject *)data, size, 1)) { - got_selection = FALSE; - break; - } - } - - if (i < 0) - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } -} - -wxClipboardClient *wxClipboard::GetClipboardClient() -{ - return clipOwner; -} - -void wxClipboard::SetClipboardString(char *str, long time) -{ - bool got_selection; - - if (clipOwner) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } - if (cbString) - delete[] cbString; - - cbString = str; - - if (wxOpenClipboard()) { - if (!wxSetClipboardData(wxDF_TEXT, (wxObject *)str)) - got_selection = FALSE; - else - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - delete[] cbString; - cbString = NULL; - } -} - -char *wxClipboard::GetClipboardString(long time) -{ - char *str; - long length; - - str = GetClipboardData("TEXT", &length, time); - if (!str) { - str = new char[1]; - *str = 0; - } - - return str; -} - -char *wxClipboard::GetClipboardData(char *format, long *length, long time) -{ - if (clipOwner) { - if (clipOwner->formats.Member(format)) - return clipOwner->GetData(format, length); - else - return NULL; - } else if (cbString) { - if (!strcmp(format, "TEXT")) - return copystring(cbString); - else - return NULL; - } else { - if (wxOpenClipboard()) { - receivedString = (char *)wxGetClipboardData(FormatStringToID(format), - length); - wxCloseClipboard(); - } else - receivedString = NULL; - - return receivedString; - } -} - diff --git a/src/mac/colordlg.cpp b/src/mac/colordlg.cpp deleted file mode 100644 index 2275a9a39d..0000000000 --- a/src/mac/colordlg.cpp +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.cpp -// Purpose: wxColourDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colordlg.h" -#endif - -#include "wx/stubs/colordlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) -#endif - -/* - * wxColourDialog - */ - -wxColourDialog::wxColourDialog() -{ - m_dialogParent = NULL; -} - -wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) -{ - Create(parent, data); -} - -bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) -{ - m_dialogParent = parent; - - if (data) - m_colourData = *data; - return TRUE; -} - -int wxColourDialog::ShowModal() -{ - /* TODO: implement dialog - */ - - return wxID_CANCEL; -} - diff --git a/src/mac/colour.cpp b/src/mac/colour.cpp deleted file mode 100644 index 8d0827ef1d..0000000000 --- a/src/mac/colour.cpp +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/colour.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -#endif - -// Colour - -wxColour::wxColour () -{ - m_isInit = FALSE; - m_red = m_blue = m_green = 0; -/* TODO - m_pixel = 0; -*/ -} - -wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::wxColour (const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ -} - -wxColour& wxColour::operator =(const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ - return *this; -} - -void wxColour::InitFromName(const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::~wxColour () -{ -} - -void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} diff --git a/src/mac/combobox.cpp b/src/mac/combobox.cpp deleted file mode 100644 index 0be841bad4..0000000000 --- a/src/mac/combobox.cpp +++ /dev/null @@ -1,165 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -bool wxComboBox::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create combobox control - - return TRUE; -} - -wxString wxComboBox::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxComboBox::SetValue(const wxString& value) -{ - // TODO -} - -// Clipboard operations -void wxComboBox::Copy() -{ - // TODO -} - -void wxComboBox::Cut() -{ - // TODO -} - -void wxComboBox::Paste() -{ - // TODO -} - -void wxComboBox::SetEditable(bool editable) -{ - // TODO -} - -void wxComboBox::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxComboBox::SetInsertionPointEnd() -{ - // TODO -} - -long wxComboBox::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxComboBox::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxComboBox::Remove(long from, long to) -{ - // TODO -} - -void wxComboBox::SetSelection(long from, long to) -{ - // TODO -} - -void wxComboBox::Append(const wxString& item) -{ - // TODO -} - -void wxComboBox::Delete(int n) -{ - // TODO -} - -void wxComboBox::Clear() -{ - // TODO -} - -int wxComboBox::GetSelection() const -{ - // TODO - return -1; -} - -void wxComboBox::SetSelection(int n) -{ - // TODO -} - -int wxComboBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -wxString wxComboBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -wxString wxComboBox::GetStringSelection() const -{ - // TODO - return wxString(""); -} - -bool wxComboBox::SetStringSelection(const wxString& sel) -{ - // TODO - return FALSE; -} diff --git a/src/mac/control.cpp b/src/mac/control.cpp deleted file mode 100644 index b141a80ff1..0000000000 --- a/src/mac/control.cpp +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -BEGIN_EVENT_TABLE(wxControl, wxWindow) -END_EVENT_TABLE() -#endif - -// Item members -wxControl::wxControl() -{ - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - m_callback = 0; -} - -wxControl::~wxControl() -{ - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem(NULL); - } -} - -void wxControl::SetLabel(const wxString& label) -{ - // TODO -} - -wxString wxControl::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxControl::ProcessCommand (wxCommandEvent & event) -{ - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - } - else - { - GetEventHandler()->OnCommand(*this, event); - } -} - -void wxControl::Centre (int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; - - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); - - new_x = x; - new_y = y; - - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); - - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); - - SetSize (new_x, new_y, width, height); -} - diff --git a/src/mac/corersrc.r b/src/mac/corersrc.r deleted file mode 100644 index 46850cfcc3..0000000000 --- a/src/mac/corersrc.r +++ /dev/null @@ -1,539 +0,0 @@ -#include - -resource 'ALRT' (128, purgeable) { - {70, 50, 198, 470}, - 128, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (129, purgeable) { - {70, 50, 198, 470}, - 129, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (130, purgeable) { - {70, 50, 198, 470}, - 130, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (131, purgeable) { - {70, 50, 198, 470}, - 131, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'ALRT' (132, purgeable) { - {70, 50, 198, 470}, - 132, - { /* array: 4 elements */ - /* [1] */ - OK, visible, sound1, - /* [2] */ - OK, visible, sound1, - /* [3] */ - OK, visible, sound1, - /* [4] */ - OK, visible, sound1 - }, - noAutoCenter -}; - -resource 'DITL' (128, purgeable) { - { /* array DITLarray: 3 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "OK" - }, - /* [2] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [3] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (129, purgeable) { - { /* array DITLarray: 4 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "Yes" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "No" - }, - /* [3] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [4] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (130, purgeable) { - { /* array DITLarray: 5 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "Yes" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "No" - }, - /* [3] */ - {100, 65, 120, 145}, - Button { - enabled, - "Cancel" - }, - /* [4] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [5] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (131, purgeable) { - { /* array DITLarray: 4 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "No" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "Yes" - }, - /* [3] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [4] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DITL' (132, purgeable) { - { /* array DITLarray: 5 elements */ - /* [1] */ - {100, 340, 120, 408}, - Button { - enabled, - "No" - }, - /* [2] */ - {100, 260, 120, 324}, - Button { - enabled, - "Yes" - }, - /* [3] */ - {100, 65, 120, 145}, - Button { - enabled, - "Cancel" - }, - /* [4] */ - {38, 64, 88, 408}, - StaticText { - disabled, - "^1" - }, - /* [5] */ - {10, 64, 30, 412}, - StaticText { - disabled, - "^0" - } - } -}; - -data 'DLGX' (128) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0003 0002 0000 0000 0000 0000 0000 0006" /* ................ */ - $"0000 0000 0000 0000 0000 0006 0000 0000" /* ................ */ - $"0000 0000 0000" /* ...... */ -}; - -data 'DLGX' (129) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0004 0002 0000 0000 0000 0000 0000 0002" /* ................ */ - $"0000 0000 0000 0000 0000 0006 0000 0000" /* ................ */ - $"0000 0000 0000 0006 0000 0000 0000 0000" /* ................ */ - $"0000" /* .. */ -}; - -data 'DLGX' (131) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0004 0002 0000 0000 0000 0000 0000 0002" /* ................ */ - $"0000 0000 0000 0000 0000 0006 0000 0000" /* ................ */ - $"0000 0000 0000 0006 0000 0000 0000 0000" /* ................ */ - $"0000" /* .. */ -}; - -data 'DLGX' (132) { - $"0743 6869 6361 676F 0000 0000 0000 0000" /* .Chicago........ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"000C 0000 0000 0001 0004 0004 0000 0000" /* ................ */ - $"0005 0002 0000 0000 0000 0000 0000 0002" /* ................ */ - $"0000 0000 0000 0000 0000 0002 0000 0000" /* ................ */ - $"0000 0000 0000 0006 0000 0000 0000 0000" /* ................ */ - $"0000 0006 0000 0000 0000 0000 0000" /* .............. */ -}; - -data 'ics#' (200, "¥ New File") { - $"0000 3FE0 2C70 3458 2C78 3408 2C08 3408" /* ..?à,p4X,x4.,.4. */ - $"2C08 3408 2C08 3408 2C0E 340F 3FFE 0000" /* ,.4.,.4.,.4.?þ.. */ - $"0000 3FE0 3FF0 3FF8 3FF8 3FF8 3FF8 3FF8" /* ..?à?ð?ø?ø?ø?ø?ø */ - $"3FF8 3FF8 3FF8 3FF8 3FFE 3FFF 3FFE 0000" /* ?ø?ø?ø?ø?þ?ÿ?þ.. */ -}; - -data 'ics4' (200, "¥ New File") { - $"0000 0000 0000 0000 00FF FFFF FFF0 0000" /* .........ÿÿÿÿð.. */ - $"00F1 FFED EFFF 0000 00FF 1FDE DFCF F000" /* .ñÿíïÿ...ÿ.ÞßÏð. */ - $"00F1 FFED EFFF F000 00FF 1FDE DEEE F000" /* .ñÿíïÿð..ÿ.ÞÞîð. */ - $"00F1 FFED EDED F000 00FF 1FDE DEDE F000" /* .ñÿíííð..ÿ.ÞÞÞð. */ - $"00F1 FFED EDED F000 00FF 1FDE DEDE F000" /* .ñÿíííð..ÿ.ÞÞÞð. */ - $"00F1 FFED EDED F000 00FF 1FDE DEDE F000" /* .ñÿíííð..ÿ.ÞÞÞð. */ - $"00F1 FFED EDED FEE0 00FF 1FDE DEDE FEEE" /* .ñÿíííþà.ÿ.ÞÞÞþî */ - $"00FF FFFF FFFF FEE0 0000 0000 0000 0000" /* .ÿÿÿÿÿþà........ */ -}; - -data 'ics8' (200, "¥ New File") { - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ - $"0000 FFFF FFFF FFFF FFFF FF00 0000 0000" /* ..ÿÿÿÿÿÿÿÿÿ..... */ - $"0000 FF05 FFFF FB7F FBFF FFFF 0000 0000" /* ..ÿ.ÿÿû.ûÿÿÿ.... */ - $"0000 FFFF 0BFF 7FFB 7FFF F6FF FF00 0000" /* ..ÿÿ.ÿ.û.ÿöÿÿ... */ - $"0000 FF05 FFFF FB7F FBFF FFFF FF00 0000" /* ..ÿ.ÿÿû.ûÿÿÿÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB FBFB FF00 0000" /* ..ÿÿ.ÿ.û.ûûûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FF00 0000" /* ..ÿ.ÿÿû.û.û.ÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FF00 0000" /* ..ÿÿ.ÿ.û.û.ûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FF00 0000" /* ..ÿ.ÿÿû.û.û.ÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FF00 0000" /* ..ÿÿ.ÿ.û.û.ûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FF00 0000" /* ..ÿ.ÿÿû.û.û.ÿ... */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FF00 0000" /* ..ÿÿ.ÿ.û.û.ûÿ... */ - $"0000 FF05 FFFF FB7F FB7F FB7F FFFC FC00" /* ..ÿ.ÿÿû.û.û.ÿüü. */ - $"0000 FFFF 0BFF 7FFB 7FFB 7FFB FFFC FCFC" /* ..ÿÿ.ÿ.û.û.ûÿüüü */ - $"0000 FFFF FFFF FFFF FFFF FFFF FFFC FC00" /* ..ÿÿÿÿÿÿÿÿÿÿÿüü. */ - $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */ -}; - -resource 'ldes' ( 128 ) -{ - versionZero - { - 0 , - 1 , - 0 , - 0 , - hasVertScroll , - noHorizScroll , - 0 , - noGrowSpace , - } -} ; - -resource 'CURS' (9, "Hand") { - $"01 80 1A 70 26 48 26 4A 12 4D 12 49 68 09 98 01" - $"88 02 40 02 20 02 20 04 10 04 08 08 04 08 04 08", - $"01 80 1B F0 3F F8 3F FA 1F FF 1F FF 7F FF FF FF" - $"FF FE 7F FE 3F FE 3F FC 1F FC 0F F8 07 F8 07 F8", - {9, 8} -}; - -resource 'CURS' (10, "SizeWE") { - $"0000 0180 0180 0180 0180 1188 318C 7FFE" - $"318C 1188 0180 0180 0180 0180", - $"03C0 03C0 03C0 03C0 1BD8 3BDC 7BFE FFFF" - $"7FFE 3BDC 1BD8 03C0 03C0 03C0 03C0", - {7, 7} -}; - -resource 'CURS' (11, "Size NS") { - $"0000 0080 01C0 03E0 0080 0080 0080 3FFE" - $"3FFE 0080 0080 0080 03E0 01C0 0080", - $"0080 01C0 03E0 07F0 07F0 0180 7FFF 7FFF" - $"7FFF 7FFF 01C0 07F0 07F0 03E0 01C0 0080", - {7, 7} -}; - -// get folder - -resource 'DITL' (250, purgeable) { - { /* array DITLarray: 11 elements */ - /* [1] */ - {157, 253, 177, 333}, - Button { - enabled, - "Open" - }, - /* [2] */ - {126, 253, 146, 333}, - Button { - enabled, - "Cancel" - }, - /* [3] */ - {0, 0, 0, 0}, - HelpItem { - disabled, - HMScanhdlg { - -6043 - } - }, - /* [4] */ - {30, 236, 46, 338}, - UserItem { - enabled - }, - /* [5] */ - {54, 253, 74, 333}, - Button { - enabled, - "Eject" - }, - /* [6] */ - {82, 253, 102, 333}, - Button { - enabled, - "Desktop" - }, - /* [7] */ - {51, 13, 181, 231}, - UserItem { - enabled - }, - /* [8] */ - {28, 13, 47, 231}, - UserItem { - enabled - }, - /* [9] */ - {113, 252, 114, 334}, - Picture { - disabled, - 11 - }, - /* [10] */ - {189, 24, 209, 211}, - Button { - enabled, - "" - }, - /* [11] */ - {6, 15, 23, 300}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DLOG' (250, purgeable) { - {0, 0, 215, 344}, - dBoxProc, - invisible, - noGoAway, - 0x0, - 250, - "" , 0 -}; - -resource 'STR#' (250) { - { /* array StringArray: 3 elements */ - /* [1] */ - "Select \"^0\"", - /* [2] */ - "Desktop", - /* [3] */ - "Select ^0" - } -}; - -// end of get folder - -// get file - -resource 'DITL' (251, purgeable) { - { /* array DITLarray: 11 elements */ - /* [1] */ - {157, 253, 177, 333}, - Button { - enabled, - "Open" - }, - /* [2] */ - {126, 253, 146, 333}, - Button { - enabled, - "Cancel" - }, - /* [3] */ - {0, 0, 0, 0}, - HelpItem { - disabled, - HMScanhdlg { - -6043 - } - }, - /* [4] */ - {30, 236, 46, 338}, - UserItem { - enabled - }, - /* [5] */ - {54, 253, 74, 333}, - Button { - enabled, - "Eject" - }, - /* [6] */ - {82, 253, 102, 333}, - Button { - enabled, - "Desktop" - }, - /* [7] */ - {51, 13, 181, 231}, - UserItem { - enabled - }, - /* [8] */ - {28, 13, 47, 231}, - UserItem { - enabled - }, - /* [9] */ - {113, 252, 114, 334}, - Picture { - disabled, - 11 - }, - /* [10] */ - {6, 15, 23, 300}, - StaticText { - disabled, - "^0" - } - } -}; - -resource 'DLOG' (251, purgeable) { - {0, 0, 195, 344}, - dBoxProc, - invisible, - noGoAway, - 0x0, - 251, - "" , 0 -}; - -resource 'STR#' (251) { - { /* array StringArray: 3 elements */ - /* [1] */ - "Select \"^0\"", - /* [2] */ - "Desktop", - /* [3] */ - "Select ^0" - } -}; - -// end of get file \ No newline at end of file diff --git a/src/mac/cursor.cpp b/src/mac/cursor.cpp deleted file mode 100644 index 4333364c93..0000000000 --- a/src/mac/cursor.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -#endif - -wxCursorRefData::wxCursorRefData() -{ - m_width = 32; m_height = 32; - -/* TODO - m_hCursor = 0 ; -*/ -} - -wxCursorRefData::~wxCursorRefData() -{ - // TODO: destroy cursor -} - -// Cursors -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), const char WXUNUSED(maskBits)[]) -{ -} - -wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) -{ - m_refData = new wxCursorRefData; - - // TODO: create cursor from a file -} - -// Cursors by stock number -wxCursor::wxCursor(int cursor_type) -{ - m_refData = new wxCursorRefData; - -/* TODO - switch (cursor_type) - { - case wxCURSOR_WAIT: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_WAIT); - break; - case wxCURSOR_IBEAM: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_IBEAM); - break; - case wxCURSOR_CROSS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_CROSS); - break; - case wxCURSOR_SIZENWSE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENWSE); - break; - case wxCURSOR_SIZENESW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENESW); - break; - case wxCURSOR_SIZEWE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZEWE); - break; - case wxCURSOR_SIZENS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENS); - break; - case wxCURSOR_CHAR: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_HAND: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_HAND"); - break; - } - case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BULLSEYE"); - break; - } - case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PENCIL"); - break; - } - case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_MAGNIFIER"); - break; - } - case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_NO_ENTRY"); - break; - } - case wxCURSOR_LEFT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_RIGHT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_MIDDLE_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_SIZING: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_SIZING"); - break; - } - case wxCURSOR_WATCH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_WATCH"); - break; - } - case wxCURSOR_SPRAYCAN: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_ROLLER"); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PBRUSH"); - break; - } - case wxCURSOR_POINT_LEFT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PLEFT"); - break; - } - case wxCURSOR_POINT_RIGHT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PRIGHT"); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_QARROW"); - break; - } - case wxCURSOR_BLANK: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BLANK"); - break; - } - default: - case wxCURSOR_ARROW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } -*/ - -} - -wxCursor::~wxCursor() -{ -} - -// Global cursor setting -void wxSetCursor(const wxCursor& cursor) -{ - // TODO (optional on platforms with no global cursor) -} - - diff --git a/src/mac/data.cpp b/src/mac/data.cpp deleted file mode 100644 index 138289a5bf..0000000000 --- a/src/mac/data.cpp +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: Various data -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wx.h" - -#if wxUSE_POSTSCRIPT -#include "wx/generic/dcpsg.h" -#endif - -#define _MAXPATHLEN 500 - -// Useful buffer, initialized in CommonInit -char *wxBuffer = NULL; - -// Windows List -wxList wxTopLevelWindows; - -// List of windows pending deletion -wxList wxPendingDelete; - -int wxPageNumber; - -// GDI Object Lists -wxBrushList *wxTheBrushList = NULL; -wxPenList *wxThePenList = NULL; -wxFontList *wxTheFontList = NULL; -wxBitmapList *wxTheBitmapList = NULL; - -wxColourDatabase *wxTheColourDatabase = NULL; - -// Stock objects -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; -wxPen *wxRED_PEN; - -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = NULL; -wxCursor *wxHOURGLASS_CURSOR = NULL; -wxCursor *wxCROSS_CURSOR = NULL; - -// 'Null' objects -wxAcceleratorTable wxNullAcceleratorTable; -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxPalette wxNullPalette; -wxFont wxNullFont; -wxColour wxNullColour; - -// Default window names -const char *wxButtonNameStr = "button"; -const char *wxCanvasNameStr = "canvas"; -const char *wxCheckBoxNameStr = "check"; -const char *wxChoiceNameStr = "choice"; -const char *wxComboBoxNameStr = "comboBox"; -const char *wxDialogNameStr = "dialog"; -const char *wxFrameNameStr = "frame"; -const char *wxGaugeNameStr = "gauge"; -const char *wxStaticBoxNameStr = "groupBox"; -const char *wxListBoxNameStr = "listBox"; -const char *wxStaticTextNameStr = "message"; -const char *wxStaticBitmapNameStr = "message"; -const char *wxMultiTextNameStr = "multitext"; -const char *wxPanelNameStr = "panel"; -const char *wxRadioBoxNameStr = "radioBox"; -const char *wxRadioButtonNameStr = "radioButton"; -const char *wxBitmapRadioButtonNameStr = "radioButton"; -const char *wxScrollBarNameStr = "scrollBar"; -const char *wxSliderNameStr = "slider"; -const char *wxStaticNameStr = "static"; -const char *wxTextCtrlWindowNameStr = "textWindow"; -const char *wxTextCtrlNameStr = "text"; -const char *wxVirtListBoxNameStr = "virtListBox"; -const char *wxButtonBarNameStr = "buttonbar"; -const char *wxEnhDialogNameStr = "Shell"; -const char *wxToolBarNameStr = "toolbar"; -const char *wxStatusLineNameStr = "status_line"; -const char *wxEmptyString = ""; -const char *wxGetTextFromUserPromptStr = "Input Text"; -const char *wxMessageBoxCaptionStr = "Message"; -const char *wxFileSelectorPromptStr = "Select a file"; -const char *wxFileSelectorDefaultWildcardStr = "*.*"; -const char *wxInternalErrorStr = "wxWindows Internal Error"; -const char *wxFatalErrorStr = "wxWindows Fatal Error"; - -// See wx/utils.h -const char *wxFloatToStringStr = "%.2f"; -const char *wxDoubleToStringStr = "%.2f"; - -#if wxUSE_SHARED_LIBRARY -///// Event tables (also must be in one, statically-linked file for shared libraries) - -// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here -const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } - -const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; -#endif - -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/mac/dc.cpp b/src/mac/dc.cpp deleted file mode 100644 index 2c1c613595..0000000000 --- a/src/mac/dc.cpp +++ /dev/null @@ -1,385 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dc.h" -#endif - -#include "wx/dc.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -#endif - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -wxDC::wxDC(void) -{ - m_ok = FALSE; - m_optimize = FALSE; - m_autoSetting = FALSE; - m_colour = TRUE; - m_clipping = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_logicalOriginX = 0; - m_logicalOriginY = 0; - m_deviceOriginX = 0; - m_deviceOriginY = 0; - m_internalDeviceOriginX = 0; - m_internalDeviceOriginY = 0; - m_externalDeviceOriginX = 0; - m_externalDeviceOriginY = 0; - - m_logicalScaleX = 1.0; - m_logicalScaleY = 1.0; - m_userScaleX = 1.0; - m_userScaleY = 1.0; - m_scaleX = 1.0; - m_scaleY = 1.0; - - m_mappingMode = wxMM_TEXT; - m_needComputeScaleX = FALSE; - m_needComputeScaleY = FALSE; - - m_signX = 1; // default x-axis left to right - m_signY = 1; // default y-axis top down - - m_maxX = m_maxY = -100000; - m_minY = m_minY = 100000; - - m_logicalFunction = wxCOPY; -// m_textAlignment = wxALIGN_TOP_LEFT; - m_backgroundMode = wxTRANSPARENT; - - m_textForegroundColour = *wxBLACK; - m_textBackgroundColour = *wxWHITE; - m_pen = *wxBLACK_PEN; - m_font = *wxNORMAL_FONT; - m_brush = *wxTRANSPARENT_BRUSH; - m_backgroundBrush = *wxWHITE_BRUSH; - -// m_palette = wxAPP_COLOURMAP; -}; - -wxDC::~wxDC(void) -{ -}; - -void wxDC::DrawIcon( const wxIcon &WXUNUSED(icon), long WXUNUSED(x), long WXUNUSED(y), bool WXUNUSED(useMask) ) -{ -}; - -void wxDC::DrawPoint( wxPoint& point ) -{ - DrawPoint( point.x, point.y ); -}; - -void wxDC::DrawPolygon( wxList *list, long xoffset, long yoffset, int fillStyle ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawPolygon( n, points, xoffset, yoffset, fillStyle ); - delete[] points; -}; - -void wxDC::DrawLines( wxList *list, long xoffset, long yoffset ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawLines( n, points, xoffset, yoffset ); - delete []points; -}; - -void wxDC::DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ) -{ - wxList list; - list.Append( (wxObject*)new wxPoint(x1, y1) ); - list.Append( (wxObject*)new wxPoint(x2, y2) ); - list.Append( (wxObject*)new wxPoint(x3, y3) ); - DrawSpline(&list); - wxNode *node = list.First(); - while (node) - { - wxPoint *p = (wxPoint*)node->Data(); - delete p; - node = node->Next(); - }; -}; - -void wxDC::DrawSpline( int n, wxPoint points[] ) -{ - wxList list; - for (int i = 0; i < n; i++) list.Append( (wxObject*)&points[i] ); - DrawSpline( &list ); -}; - -void wxDC::SetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -}; - -void wxDC::DestroyClippingRegion(void) -{ - m_clipping = FALSE; -}; - -void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const -{ - if (m_clipping) - { - if (x) *x = m_clipX1; - if (y) *y = m_clipY1; - if (width) *width = (m_clipX2 - m_clipX1); - if (height) *height = (m_clipY2 - m_clipY1); - } - else - *x = *y = *width = *height = 0; -}; - -void wxDC::GetSize( int* width, int* height ) const -{ - *width = m_maxX-m_minX; - *height = m_maxY-m_minY; -}; - -void wxDC::GetSizeMM( long* width, long* height ) const -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - *width = long( double(w) / (m_scaleX*m_mm_to_pix_x) ); - *height = long( double(h) / (m_scaleY*m_mm_to_pix_y) ); -}; - -void wxDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - m_textForegroundColour = col; -}; - -void wxDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - m_textBackgroundColour = col; -}; - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - }; - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - }; -}; - -void wxDC::SetUserScale( double x, double y ) -{ - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetUserScale( double *x, double *y ) -{ - if (x) *x = m_userScaleX; - if (y) *y = m_userScaleY; -}; - -void wxDC::SetLogicalScale( double x, double y ) -{ - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalScale( double *x, double *y ) -{ - if (x) *x = m_logicalScaleX; - if (y) *y = m_logicalScaleY; -}; - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalOrigin( long *x, long *y ) -{ - if (x) *x = m_logicalOriginX; - if (y) *y = m_logicalOriginY; -}; - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - m_externalDeviceOriginX = x; - m_externalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetDeviceOrigin( long *x, long *y ) -{ -// if (x) *x = m_externalDeviceOriginX; -// if (y) *y = m_externalDeviceOriginY; - if (x) *x = m_deviceOriginX; - if (y) *y = m_deviceOriginY; -}; - -void wxDC::SetInternalDeviceOrigin( long x, long y ) -{ - m_internalDeviceOriginX = x; - m_internalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetInternalDeviceOrigin( long *x, long *y ) -{ - if (x) *x = m_internalDeviceOriginX; - if (y) *y = m_internalDeviceOriginY; -}; - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -}; - -long wxDC::DeviceToLogicalX(long x) const -{ - return XDEV2LOG(x); -}; - -long wxDC::DeviceToLogicalY(long y) const -{ - return YDEV2LOG(y); -}; - -long wxDC::DeviceToLogicalXRel(long x) const -{ - return XDEV2LOGREL(x); -}; - -long wxDC::DeviceToLogicalYRel(long y) const -{ - return YDEV2LOGREL(y); -}; - -long wxDC::LogicalToDeviceX(long x) const -{ - return XLOG2DEV(x); -}; - -long wxDC::LogicalToDeviceY(long y) const -{ - return YLOG2DEV(y); -}; - -long wxDC::LogicalToDeviceXRel(long x) const -{ - return XLOG2DEVREL(x); -}; - -long wxDC::LogicalToDeviceYRel(long y) const -{ - return YLOG2DEVREL(y); -}; - -void wxDC::CalcBoundingBox( long x, long y ) -{ - if (x < m_minX) m_minX = x; - if (y < m_minY) m_minY = y; - if (x > m_maxX) m_maxX = x; - if (y > m_maxY) m_maxY = y; -}; - -void wxDC::ComputeScaleAndOrigin(void) -{ - // CMB: copy scale to see if it changes - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; - - m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX; - m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY; - - // CMB: if scale has changed call SetPen to recalulate the line width - if (m_scaleX != origScaleX || m_scaleY != origScaleY) - { - // this is a bit artificial, but we need to force wxDC to think - // the pen has changed - wxPen* pen = & GetPen(); - wxPen tempPen; - m_pen = tempPen; - SetPen(* pen); - } -}; - diff --git a/src/mac/dcclient.cpp b/src/mac/dcclient.cpp deleted file mode 100644 index 925d9609ee..0000000000 --- a/src/mac/dcclient.cpp +++ /dev/null @@ -1,635 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: wxClientDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/region.h" -#include - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) -#endif - -/* - * wxWindowDC - */ - -wxWindowDC::wxWindowDC(void) -{ -}; - -wxWindowDC::wxWindowDC( wxWindow *window ) -{ -}; - -wxWindowDC::~wxWindowDC(void) -{ -}; - -void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1), - const wxColour& WXUNUSED(col), int WXUNUSED(style) ) -{ -}; - -bool wxWindowDC::GetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - return FALSE; -}; - -void wxWindowDC::DrawLine( long x1, long y1, long x2, long y2 ) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::CrossHair( long x, long y ) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) -{ - if (!Ok()) return; - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV((long)xc); - long yyc = YLOG2DEV((long)yc); - double dx = xx1 - xxc; - double dy = yy1 - yyc; - double radius = sqrt(dx*dx+dy*dy); - long r = (long)radius; - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else - if (radius == 0.0) - { - radius1 = radius2 = 0.0; - } - else - { - radius1 = (xx1 - xxc == 0) ? - (yy1 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy1-yyc), double(xx1-xxc)) * RAD2DEG; - radius2 = (xx2 - xxc == 0) ? - (yy2 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy2-yyc), double(xx2-xxc)) * RAD2DEG; - }; - long alpha1 = long(radius1 * 64.0); - long alpha2 = long((radius2 - radius1) * 64.0); - while (alpha2 <= 0) alpha2 += 360*64; - while (alpha1 > 360*64) alpha1 -= 360*64; - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; - -}; - -void wxWindowDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - long start = long(sa * 64.0); - long end = long(ea * 64.0); - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawPoint( long x, long y ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - for (int i = 0; i < n-1; i++) - { - long x1 = XLOG2DEV(points[i].x + xoffset); - long x2 = XLOG2DEV(points[i+1].x + xoffset); - long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste - long y2 = YLOG2DEV(points[i+1].y + yoffset); - }; -}; - -void wxWindowDC::DrawLines( wxList *points, long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - wxNode *node = points->First(); - while (node->Next()) - { - wxPoint *point = (wxPoint*)node->Data(); - wxPoint *npoint = (wxPoint*)node->Next()->Data(); - long x1 = XLOG2DEV(point->x + xoffset); - long x2 = XLOG2DEV(npoint->x + xoffset); - long y1 = YLOG2DEV(point->y + yoffset); // and again... - long y2 = YLOG2DEV(npoint->y + yoffset); - node = node->Next(); - }; -}; - -void wxWindowDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[], - long WXUNUSED(xoffset), long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxWindowDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset), - long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxWindowDC::DrawRectangle( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - if (!Ok()) return; - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - long rr = XLOG2DEVREL((long)radius); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - // CMB: if radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rr == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - ww--; - hh--; - } - - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - long dd = 2 * rr; - if (dd > ww) dd = ww; - if (dd > hh) dd = hh; - rr = dd / 2; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - }; - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - }; -}; - -void wxWindowDC::DrawEllipse( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -bool wxWindowDC::CanDrawBitmap(void) const -{ - return TRUE; -}; - -void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask ) -{ - if (!Ok()) return; - - if (!icon.Ok()) return; - - int xx = XLOG2DEV(x); - int yy = YLOG2DEV(y); - -}; - -bool wxWindowDC::Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) ) -{ - if (!Ok()) return FALSE; - - // CMB 20/5/98: add blitting of bitmaps - if (source->IsKindOf(CLASSINFO(wxMemoryDC))) - { - wxMemoryDC* srcDC = (wxMemoryDC*)source; - /* - GdkBitmap* bmap = srcDC->m_selected.GetBitmap(); - if (bmap) - { - gdk_draw_bitmap ( - m_window, - m_textGC, - bmap, - source->DeviceToLogicalX(xsrc), source->DeviceToLogicalY(ysrc), - XLOG2DEV(xdest), YLOG2DEV(ydest), - source->DeviceToLogicalXRel(width), source->DeviceToLogicalYRel(height) - ); - return TRUE; - } - */ - } - - return TRUE; -}; - -void wxWindowDC::DrawText( const wxString &text, long x, long y, bool -WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - - - -bool wxWindowDC::CanGetTextExtent(void) const -{ - return TRUE; -}; - -void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height, - long *WXUNUSED(descent), long *WXUNUSED(externalLeading), - wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - -long wxWindowDC::GetCharWidth(void) -{ - if (!Ok()) return 0; - return 0; -}; - -long wxWindowDC::GetCharHeight(void) -{ - if (!Ok()) return 0; - return 0; -}; - -void wxWindowDC::Clear(void) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::SetFont( const wxFont &font ) -{ - if (!Ok()) return; - - m_font = font; -}; - -void wxWindowDC::SetPen( const wxPen &pen ) -{ - if (!Ok()) return; - - if (m_pen == pen) return; - - m_pen = pen; - - if (!m_pen.Ok()) return; -}; - -void wxWindowDC::SetBrush( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_brush == brush) return; - - m_brush = brush; - - if (!m_brush.Ok()) return; - -}; - -void wxWindowDC::SetBackground( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_backgroundBrush == brush) return; - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) return; - -}; - -void wxWindowDC::SetLogicalFunction( int function ) -{ - if (m_logicalFunction == function) return; -}; - -void wxWindowDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textForegroundColour == col) return; - - m_textForegroundColour = col; - if (!m_textForegroundColour.Ok()) return; -}; - -void wxWindowDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textBackgroundColour == col) return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) return; -}; - -void wxWindowDC::SetBackgroundMode( int mode ) -{ - m_backgroundMode = mode; - - if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT) - { - } -}; - -void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) ) -{ -}; - -void wxWindowDC::SetClippingRegion( long x, long y, long width, long height ) -{ - wxDC::SetClippingRegion( x, y, width, height ); - - // TODO - -}; - -void wxWindowDC::SetClippingRegion( const wxRegion& region ) -{ - wxRect box = region.GetBox(); - - wxDC::SetClippingRegion( box.x, box.y, box.width, box.height ); - - // TODO -} - -void wxWindowDC::DestroyClippingRegion(void) -{ - wxDC::DestroyClippingRegion(); - -}; - -// ----------------------------------- spline code ---------------------------------------- - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(void); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); - -wxList wx_spline_point_list; - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point( x1, y1 ); - wx_spline_add_point( xmid, ymid ); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - -/* utilities used by spline drawing routines */ - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack(void) -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint ; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0 ); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -void wxWindowDC::DrawSpline( wxList *points ) -{ - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point( cx1, cy1 ); - wx_spline_add_point( x2, y2 ); - - wx_spline_draw_point_array( this ); -}; diff --git a/src/mac/dcmemory.cpp b/src/mac/dcmemory.cpp deleted file mode 100644 index 7cbd330821..0000000000 --- a/src/mac/dcmemory.cpp +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxPaintDC) - -wxMemoryDC::wxMemoryDC(void) -{ - m_ok = FALSE; -}; - -wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) -{ - m_ok = FALSE; -}; - -wxMemoryDC::~wxMemoryDC(void) -{ -}; - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_selected = bitmap; - if (m_selected.Ok()) - { - } - else - { - m_ok = FALSE; - }; -}; - -void wxMemoryDC::GetSize( int *width, int *height ) const -{ - if (m_selected.Ok()) - { - if (width) (*width) = m_selected.GetWidth(); - if (height) (*height) = m_selected.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - }; -}; - - diff --git a/src/mac/dcscreen.cpp b/src/mac/dcscreen.cpp deleted file mode 100644 index e03bbac0c8..0000000000 --- a/src/mac/dcscreen.cpp +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -#endif - -// Create a DC representing the whole screen -wxScreenDC::wxScreenDC() -{ - // TODO -} - -wxScreenDC::~wxScreenDC() -{ - // TODO -} - diff --git a/src/mac/dialog.cpp b/src/mac/dialog.cpp deleted file mode 100644 index bf3cae5e35..0000000000 --- a/src/mac/dialog.cpp +++ /dev/null @@ -1,286 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/settings.h" - -// Lists to keep track of windows, so we can disable/enable them -// for modal dialogs -wxList wxModalDialogs; -wxList wxModelessWindows; // Frames and modeless dialogs -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - -BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -wxDialog::wxDialog() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -} - -bool wxDialog::Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_windowStyle = style; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - SetName(name); - - if (!parent) - wxTopLevelWindows.Append(this); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create dialog - - return FALSE; -} - -void wxDialog::SetModal(bool flag) -{ - if ( flag ) - m_windowStyle |= wxDIALOG_MODAL ; - else - if ( m_windowStyle & wxDIALOG_MODAL ) - m_windowStyle -= wxDIALOG_MODAL ; - - wxModelessWindows.DeleteObject(this); - if (!flag) - wxModelessWindows.Append(this); -} - -wxDialog::~wxDialog() -{ - // TODO - wxTopLevelWindows.DeleteObject(this); - - if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL ) - wxModelessWindows.DeleteObject(this); - - // If this is the last top-level window, exit. - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO: exit - } - } -} - -// By default, pressing escape cancels the dialog -void wxDialog::OnCharHook(wxKeyEvent& event) -{ - if (event.m_keyCode == WXK_ESCAPE) - { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - - return; - } - // We didn't process this event. - event.Skip(); -} - -void wxDialog::Iconize(bool WXUNUSED(iconize)) -{ - // TODO -} - -bool wxDialog::IsIconized() const -{ - // TODO - return FALSE; -} - -void wxDialog::SetClientSize(int width, int height) -{ - // TODO -} - -void wxDialog::GetPosition(int *x, int *y) const -{ - // TODO -} - -bool wxDialog::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxDialog::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxDialog::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxDialog::Centre(int direction) -{ - int x_offset,y_offset ; - int display_width, display_height; - int width, height, x, y; - wxWindow *parent = GetParent(); - if ((direction & wxCENTER_FRAME) && parent) - { - parent->GetPosition(&x_offset,&y_offset) ; - parent->GetSize(&display_width,&display_height) ; - } - else - { - wxDisplaySize(&display_width, &display_height); - x_offset = 0 ; - y_offset = 0 ; - } - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x+x_offset, y+y_offset, width, height); -} - -// Replacement for Show(TRUE) for modal dialogs - returns return code -int wxDialog::ShowModal() -{ - m_windowStyle |= wxDIALOG_MODAL; - // TODO: modal showing - Show(TRUE); - return GetReturnCode(); -} - -void wxDialog::EndModal(int retCode) -{ - SetReturnCode(retCode); - // TODO modal un-showing - Show(FALSE); -} - -// Standard buttons -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnApply(wxCommandEvent& event) -{ - if (Validate()) - TransferDataFromWindow(); - // TODO probably need to disable the Apply button until things change again -} - -void wxDialog::OnCancel(wxCommandEvent& event) -{ - if ( IsModal() ) - EndModal(wxID_CANCEL); - else - { - SetReturnCode(wxID_CANCEL); - this->Show(FALSE); - } -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList closing; - - if ( closing.Member(this) ) - return; - - closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog - - closing.DeleteObject(this); -} - -// Destroy the window (delayed, if a managed window) -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); -} - -void wxDialog::Fit() -{ -} diff --git a/src/mac/dirdlg.cpp b/src/mac/dirdlg.cpp deleted file mode 100644 index 095621b978..0000000000 --- a/src/mac/dirdlg.cpp +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dirdlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/dirdlg.h" - -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif - -wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, - const wxString& defaultPath, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = defaultPath; -} - -int wxDirDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/mac/dnd.cpp b/src/mac/dnd.cpp deleted file mode 100644 index 32088eef0f..0000000000 --- a/src/mac/dnd.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget, wxDropSource, wxDataObject implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/dnd.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" - -// ---------------------------------------------------------------------------- -// global -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxDropTarget -// ---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ -}; - -wxDropTarget::~wxDropTarget() -{ -}; - -// ---------------------------------------------------------------------------- -// wxTextDropTarget -// ---------------------------------------------------------------------------- - -bool wxTextDropTarget::OnDrop( long x, long y, const void *pData ) -{ - OnDropText( x, y, (const char*)pData ); - return TRUE; -}; - -bool wxTextDropTarget::OnDropText( long x, long y, const char *psz ) -{ - printf( "Got dropped text: %s.\n", psz ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -}; - -size_t wxTextDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxTextDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_TEXT; -} - -// ---------------------------------------------------------------------------- -// wxFileDropTarget -// ---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnDropFiles( long x, long y, size_t nFiles, const char * const WXUNUSED(aszFiles)[] ) -{ - printf( "Got %d dropped files.\n", (int)nFiles ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -} - -bool wxFileDropTarget::OnDrop(long x, long y, const void *WXUNUSED(pData) ) -{ - char *str = "/this/is/a/path.txt"; - - return OnDropFiles(x, y, 1, &str ); -} - -size_t wxFileDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxFileDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_FILENAME; -} - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// drag request - -wxDropSource::wxDropSource( wxWindow *win ) -{ - // TODO - // m_window = win; - m_data = NULL; - - // m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - // m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -wxDropSource::wxDropSource( wxDataObject &data, wxWindow *win ) -{ - // TODO - // m_window = win; - m_data = &data; - - // m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - // m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -void wxDropSource::SetData( wxDataObject &data ) -{ - m_data = &data; -}; - -wxDropSource::~wxDropSource(void) -{ -}; - -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - // TODO - return wxDragError; -}; - diff --git a/src/mac/filedlg.cpp b/src/mac/filedlg.cpp deleted file mode 100644 index b6f5b1912d..0000000000 --- a/src/mac/filedlg.cpp +++ /dev/null @@ -1,143 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: wxFileDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/filedlg.h" -#include "wx/intl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxFileDialog, wxDialog) -#endif - -WXDLLEXPORT wxString wxFileSelector(const char *title, - const char *defaultDir, const char *defaultFileName, - const char *defaultExtension, const char *filter, int flags, - wxWindow *parent, int x, int y) -{ - // If there's a default extension specified but no filter, we create a suitable - // filter. - - wxString filter2(""); - if ( defaultExtension && !filter ) - filter2 = wxString("*.") + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - else - defaultDirString = ""; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - else - defaultFilenameString = ""; - - wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return wxGetEmptyString(); -} - -WXDLLEXPORT wxString wxFileSelectorEx(const char *title, - const char *defaultDir, - const char *defaultFileName, - int* defaultFilterIndex, - const char *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "", - defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return wxGetEmptyString(); -} - -wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = ""; - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_filterIndex = 1; -} - -int wxFileDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -// Generic file load/save dialog -static wxString -wxDefaultFileSelector(bool load, const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - char *ext = (char *)extension; - - char prompt[50]; - wxString str; - if (load) - str = "Load %s file"; - else - str = "Save %s file"; - sprintf(prompt, wxGetTranslation(str), what); - - if (*ext == '.') ext++; - char wild[60]; - sprintf(wild, "*.%s", ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -wxString -wxLoadFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - - -// Generic file save dialog -wxString -wxSaveFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(FALSE, what, extension, default_name, parent); -} - - diff --git a/src/mac/font.cpp b/src/mac/font.cpp deleted file mode 100644 index 493a6a25ba..0000000000 --- a/src/mac/font.cpp +++ /dev/null @@ -1,244 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) -#endif - -wxFontRefData::wxFontRefData() -{ - m_style = 0; - m_pointSize = 0; - m_family = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::wxFontRefData(const wxFontRefData& data) -{ - m_style = data.m_style; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::~wxFontRefData() -{ - // TODO: delete font data -} - -wxFont::wxFont() -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - Create(pointSize, family, style, weight, underlined, faceName); - - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); - - return TRUE; -} - -wxFont::~wxFont() -{ - if (wxTheFontList) - wxTheFontList->DeleteObject(this); -} - -bool wxFont::RealizeResource() -{ - // TODO: create the font (if there is a native font object) - return FALSE; -} - -void wxFont::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; - - RealizeResource(); -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; - - RealizeResource(); -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; - - RealizeResource(); -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; - - RealizeResource(); -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; - - RealizeResource(); -} - -wxString wxFont::GetFamilyString() const -{ - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; -} - -/* New font system */ -wxString wxFont::GetFaceName() const -{ - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString() const -{ - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; -} - -wxString wxFont::GetWeightString() const -{ - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; -} - diff --git a/src/mac/fontdlg.cpp b/src/mac/fontdlg.cpp deleted file mode 100644 index 60e8e9b987..0000000000 --- a/src/mac/fontdlg.cpp +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.cpp -// Purpose: wxFontDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fontdlg.h" -#endif - -#include "wx/stubs/fontdlg.h" -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif - -/* - * wxFontDialog - */ - -wxFontDialog::wxFontDialog() -{ - m_dialogParent = NULL; -} - -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} - -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; - - if (data) - m_fontData = *data; - - // TODO: you may need to do dialog creation here, unless it's - // done in ShowModal. - return TRUE; -} - -int wxFontDialog::ShowModal() -{ - // TODO: show (maybe create) the dialog - return wxID_CANCEL; -} - diff --git a/src/mac/frame.cpp b/src/mac/frame.cpp deleted file mode 100644 index 55f1e3b72c..0000000000 --- a/src/mac/frame.cpp +++ /dev/null @@ -1,565 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: wxFrame -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" -#include "wx/menu.h" -#include "wx/dcclient.h" -#include "wx/dialog.h" -#include "wx/settings.h" -#include "wx/app.h" - -extern wxList wxModelessWindows; -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_ACTIVATE(wxFrame::OnActivate) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) - EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) - EVT_IDLE(wxFrame::OnIdle) - EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) -#endif - -#if wxUSE_NATIVE_STATUSBAR -bool wxFrame::m_useNativeStatusBar = TRUE; -#else -bool wxFrame::m_useNativeStatusBar = FALSE; -#endif - -wxFrame::wxFrame() -{ - m_frameToolBar = NULL ; - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_windowParent = NULL; - m_iconized = FALSE; -} - -bool wxFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - m_frameMenuBar = NULL; - m_frameToolBar = NULL ; - m_frameStatusBar = NULL; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - wxModelessWindows.Append(this); - - // TODO: create frame. - - return FALSE; -} - -wxFrame::~wxFrame() -{ - wxTopLevelWindows.DeleteObject(this); - - if (m_frameStatusBar) - delete m_frameStatusBar; - if (m_frameMenuBar) - delete m_frameMenuBar; - -/* Check if it's the last top-level window */ - - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO signal to the app that we're going to close - } - } - - wxModelessWindows.DeleteObject(this); -} - -// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. -void wxFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxFrame::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxFrame::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -bool wxFrame::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxFrame::Iconize(bool iconize) -{ - // TODO -} - -// Equivalent to maximize/restore in Windows -void wxFrame::Maximize(bool maximize) -{ - // TODO -} - -bool wxFrame::IsIconized() const -{ - // TODO - return FALSE; -} - -// Is the frame maximized? -bool wxFrame::IsMaximized(void) const -{ - // TODO - return FALSE; -} - -void wxFrame::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxFrame::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; - // TODO -} - -wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - wxStatusBar *statusBar = NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(statusBar->GetFont()); - - long x, y; - dc.GetTextExtent("X", &x, &y); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize(-1, -1, 100, height); - - statusBar->SetFieldsCount(number); - return statusBar; -} - -wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - // Calling CreateStatusBar twice is an error. - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, - "recreating status bar in wxFrame" ); - - m_frameStatusBar = OnCreateStatusBar(number, style, id, - name); - if ( m_frameStatusBar ) - { - PositionStatusBar(); - return m_frameStatusBar; - } - else - return NULL; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[]) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); - PositionStatusBar(); -} - -void wxFrame::PositionStatusBar() -{ - int w, h; - GetClientSize(&w, &h); - int sw, sh; - m_frameStatusBar->GetSize(&sw, &sh); - - // Since we wish the status bar to be directly under the client area, - // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); -} - -void wxFrame::SetMenuBar(wxMenuBar *menuBar) -{ - if (!menuBar) - { - m_frameMenuBar = NULL; - return; - } - - m_frameMenuBar = menuBar; - - // TODO -} - -void wxFrame::Fit() -{ - // Work out max. size - wxNode *node = GetChildren().First(); - int max_width = 0; - int max_height = 0; - while (node) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *win = (wxWindow *)node->Data(); - - if (!win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog))) - { - int width, height; - int x, y; - win->GetSize(&width, &height); - win->GetPosition(&x, &y); - - if ((x + width) > max_width) - max_width = x + width; - if ((y + height) > max_height) - max_height = y + height; - } - node = node->Next(); - } - SetClientSize(max_width, max_height); -} - -// Responds to colour changes, and passes event on to children. -void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - if ( m_frameStatusBar ) - { - wxSysColourChangedEvent event2; - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->ProcessEvent(event2); - } - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -// Default resizing behaviour - if only ONE subwindow, -// resize to client rectangle size -void wxFrame::OnSize(wxSizeEvent& event) -{ - // if we're using constraints - do use them - #if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) { - Layout(); - return; - } - #endif - - // do we have _exactly_ one child? - wxWindow *child = NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog)) && - (win != GetStatusBar()) && - (win != GetToolBar()) ) - { - if ( child ) - return; // it's our second subwindow - nothing to do - child = win; - } - } - - if ( child ) { - // we have exactly one child - set it's size to fill the whole frame - int clientW, clientH; - GetClientSize(&clientW, &clientH); - - int x = 0; - int y = 0; - - child->SetSize(x, y, clientW, clientH); - } -} - -// Default activation behaviour - set the focus for the first child -// subwindow found. -void wxFrame::OnActivate(wxActivateEvent& event) -{ - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && - !child->IsKindOf(CLASSINFO(wxDialog))) - { - child->SetFocus(); - return; - } - } -} - -// The default implementation for the close window event. -void wxFrame::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -// Destroy the window (delayed, if a managed window) -bool wxFrame::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -// Default menu selection behaviour - display a help string -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ - if (GetStatusBar()) - { - if (event.GetMenuId() == -1) - SetStatusText(""); - else - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - wxString helpString(menuBar->GetHelpString(event.GetMenuId())); - if (helpString != "") - SetStatusText(helpString); - } - } - } -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::Centre(int direction) -{ - int display_width, display_height, width, height, x, y; - wxDisplaySize(&display_width, &display_height); - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x, y, width, height); -} - -// Call this to simulate a menu command -void wxFrame::Command(int id) -{ - ProcessCommand(id); -} - -void wxFrame::ProcessCommand(int id) -{ - wxCommandEvent commandEvent(wxEVENT_TYPE_MENU_COMMAND, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar() ; - if (!bar) - return; - -/* TODO: check the menu item if required - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } -*/ - - // Process events starting with the window with the focus, if any. - wxWindow* focusWin = wxFindFocusDescendant(this); - - wxEvtHandler* evtHandler = focusWin ? focusWin->GetEventHandler() : GetEventHandler(); - - evtHandler->ProcessEvent(commandEvent); -} - -// Checks if there is a toolbar, and returns the first free client position -wxPoint wxFrame::GetClientAreaOrigin() const -{ - wxPoint pt(0, 0); - if (GetToolBar()) - { - int w, h; - GetToolBar()->GetSize(& w, & h); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - pt.x += w; - } - else - { - pt.y += h; - } - } - return pt; -} - -void wxFrame::ScreenToClient(int *x, int *y) const -{ - wxWindow::ScreenToClient(x, y); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt(GetClientAreaOrigin()); - *x -= pt.x; - *y -= pt.y; -} - -void wxFrame::ClientToScreen(int *x, int *y) const -{ - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt1(GetClientAreaOrigin()); - *x += pt1.x; - *y += pt1.y; - - wxWindow::ClientToScreen(x, y); -} - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -void wxFrame::PositionToolBar() -{ - int cw, ch; - - // TODO: we actually need to use the low-level client size, before - // the toolbar/status bar were added. - // So DEFINITELY replace the line below with something appropriate. - - GetClientSize(& cw, &ch); - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - ch -= statusY; - } - - if (GetToolBar()) - { - int tw, th; - GetToolBar()->GetSize(& tw, & th); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS - // means, pretend we don't have toolbar/status bar, so we - // have the original client size. - GetToolBar()->SetSize(0, 0, tw, ch, wxSIZE_NO_ADJUSTMENTS); - } - else - { - // Use the 'real' position - GetToolBar()->SetSize(0, 0, cw, th, wxSIZE_NO_ADJUSTMENTS); - } - } -} - diff --git a/src/mac/gauge.cpp b/src/mac/gauge.cpp deleted file mode 100644 index a85fbc498f..0000000000 --- a/src/mac/gauge.cpp +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif - -bool wxGauge::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_rangeMax = range; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - - // TODO - return FALSE; -} - -void wxGauge::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxGauge::SetShadowWidth(int w) -{ - // TODO optional -} - -void wxGauge::SetBezelFace(int w) -{ - // TODO optional -} - -void wxGauge::SetRange(int r) -{ - m_rangeMax = r; - // TODO -} - -void wxGauge::SetValue(int pos) -{ - m_gaugePos = pos; - // TODO -} - -int wxGauge::GetShadowWidth() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetBezelFace() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetRange() const -{ - return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - return m_gaugePos; -} - diff --git a/src/mac/gdiobj.cpp b/src/mac/gdiobj.cpp deleted file mode 100644 index 63697c8354..0000000000 --- a/src/mac/gdiobj.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - -// TODO: Nothing to do, unless you want to. diff --git a/src/mac/helpxxxx.cpp b/src/mac/helpxxxx.cpp deleted file mode 100644 index 086762c646..0000000000 --- a/src/mac/helpxxxx.cpp +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.cpp -// Purpose: Help system: native implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpxxxx.h" -#endif - -#include "wx/stubs/helpxxxx.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxXXXXHelpController, wxHelpControllerBase) -#endif - -wxXXXXHelpController::wxXXXXHelpController() -{ - m_helpFile = ""; -} - -wxXXXXHelpController::~wxXXXXHelpController() -{ -} - -bool wxXXXXHelpController::Initialize(const wxString& filename) -{ - m_helpFile = filename; - // TODO any other inits - return TRUE; -} - -bool wxXXXXHelpController::LoadFile(const wxString& file) -{ - m_helpFile = file; - // TODO - return TRUE; -} - -bool wxXXXXHelpController::DisplayContents() -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplaySection(int section) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplayBlock(long block) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::KeywordSearch(const wxString& k) -{ - if (m_helpFile == "") return FALSE; - - // TODO - return FALSE; -} - -// Can't close the help window explicitly in WinHelp -bool wxXXXXHelpController::Quit() -{ - // TODO - return FALSE; -} - -void wxXXXXHelpController::OnQuit() -{ -} - diff --git a/src/mac/icon.cpp b/src/mac/icon.cpp deleted file mode 100644 index 6deee7dbdc..0000000000 --- a/src/mac/icon.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -#endif - -/* - * Icons - */ - - -wxIconRefData::wxIconRefData() -{ - // TODO: init icon handle -} - -wxIconRefData::~wxIconRefData() -{ - // TODO: destroy icon handle -} - -wxIcon::wxIcon() -{ -} - -wxIcon::wxIcon(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height)) -{ -} - -wxIcon::wxIcon(const wxString& icon_file, long flags, - int desiredWidth, int desiredHeight) - -{ - LoadFile(icon_file, flags, desiredWidth, desiredHeight); -} - -wxIcon::~wxIcon() -{ -} - -bool wxIcon::LoadFile(const wxString& filename, long type, - int desiredWidth, int desiredHeight) -{ - UnRef(); - - m_refData = new wxIconRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler ) - return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight); - else - return FALSE; -} - diff --git a/src/mac/imaglist.cpp b/src/mac/imaglist.cpp deleted file mode 100644 index 4cb47b4e69..0000000000 --- a/src/mac/imaglist.cpp +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.cpp -// Purpose: wxImageList. You may wish to use the generic version. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "imaglist.h" -#endif - -#include "wx/stubs/imaglist.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxObject) -#endif - -wxImageList::wxImageList() -{ - // TODO: init image list handle, if any -} - -wxImageList::~wxImageList() -{ - // TODO: destroy image list handle, if any -} - - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -// Returns the number of images in the image list. -int wxImageList::GetImageCount() const -{ - // TODO - return 0; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Creates an image list -bool wxImageList::Create(int width, int height, bool mask, int initial) -{ - // TODO - return FALSE; -} - -// Adds a bitmap, and optionally a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -int wxImageList::Add(const wxBitmap& bitmap, const wxBitmap& mask) -{ - // TODO - return 0; -} - -// Adds a bitmap, using the specified colour to create the mask bitmap -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap'. -int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour) -{ - // TODO - return 0; -} - -// Adds a bitmap and mask from an icon. -int wxImageList::Add(const wxIcon& icon) -{ - // TODO - return 0; -} - -// Replaces a bitmap, optionally passing a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -bool wxImageList::Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask) -{ - // TODO - return 0; -} - -// Replaces a bitmap and mask from an icon. -bool wxImageList::Replace(int index, const wxIcon& icon) -{ - // TODO - return 0; -} - -// Removes the image at the given index. -bool wxImageList::Remove(int index) -{ - // TODO - return FALSE; -} - -// Remove all images -bool wxImageList::RemoveAll() -{ - // TODO - return FALSE; -} - -// Draws the given image on a dc at the specified position. -// If 'solidBackground' is TRUE, Draw sets the image list background -// colour to the background colour of the wxDC, to speed up -// drawing by eliminating masked drawing where possible. -bool wxImageList::Draw(int index, wxDC& dc, int x, int y, - int flags, bool solidBackground) -{ - // TODO - return FALSE; -} - diff --git a/src/mac/joystick.cpp b/src/mac/joystick.cpp deleted file mode 100644 index 6677277f48..0000000000 --- a/src/mac/joystick.cpp +++ /dev/null @@ -1,279 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition() const -{ - // TODO - return wxPoint(0, 0); -} - -int wxJoystick::GetZPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetButtonState() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVCTSPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMovementThreshold() const -{ - // TODO - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ - // TODO -} - -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk() const -{ - // TODO - return FALSE; -} - -int wxJoystick::GetNumberJoysticks() const -{ - // TODO - return 0; -} - -int wxJoystick::GetManufacturerId() const -{ - // TODO - return 0; -} - -int wxJoystick::GetProductId() const -{ - // TODO - return 0; -} - -wxString wxJoystick::GetProductName() const -{ - // TODO - return wxString(""); -} - -int wxJoystick::GetXMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetXMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMax() const -{ - // TODO - return 0; -} - -bool wxJoystick::HasRudder() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasZ() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasU() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV4Dir() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOVCTS() const -{ - // TODO - return FALSE; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq) -{ - // TODO - return FALSE; -} - -bool wxJoystick::ReleaseCapture() -{ - // TODO - return FALSE; -} - diff --git a/src/mac/listbox.cpp b/src/mac/listbox.cpp deleted file mode 100644 index 1dad21e12c..0000000000 --- a/src/mac/listbox.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: wxListBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listbox.h" -#endif - -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/dynarray.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif - -// ============================================================================ -// list box control implementation -// ============================================================================ - -// Listbox item -wxListBox::wxListBox() -{ - m_noItems = 0; - m_selected = 0; -} - -bool wxListBox::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - m_noItems = n; - m_selected = 0; - - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - wxSystemSettings settings; - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - - m_windowId = ( id == -1 ) ? (int)NewControlId() : id; - - // TODO create listbox - - return FALSE; -} - -wxListBox::~wxListBox() -{ -} - -void wxListBox::SetFirstItem(int N) -{ - // TODO -} - -void wxListBox::SetFirstItem(const wxString& s) -{ - // TODO -} - -void wxListBox::Delete(int N) -{ - m_noItems --; - // TODO -} - -void wxListBox::Append(const wxString& item) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Append(const wxString& item, char *Client_data) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Set(int n, const wxString *choices, char** clientData) -{ - m_noItems = n; - - // TODO -} - -int wxListBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxListBox::Clear() -{ - m_noItems = 0; - // TODO -} - -void wxListBox::SetSelection(int N, bool select) -{ - // TODO -} - -bool wxListBox::Selected(int N) const -{ - // TODO - return FALSE; -} - -void wxListBox::Deselect(int N) -{ - // TODO -} - -char *wxListBox::GetClientData(int N) const -{ - // TODO - return (char *)NULL; -} - -void wxListBox::SetClientData(int N, char *Client_data) -{ - // TODO -} - -// Return number of selections and an array of selected integers -int wxListBox::GetSelections(wxArrayInt& aSelections) const -{ - aSelections.Empty(); - -/* TODO - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - { - int no_sel = ?? - for ( int n = 0; n < no_sel; n++ ) - aSelections.Add(??); - - return no_sel; - } - else // single-selection listbox - { - aSelections.Add(??); - - return 1; - } -*/ - return 0; -} - -// Get single selection, for single choice list items -int wxListBox::GetSelection() const -{ - // TODO - return -1; -} - -// Find string for position -wxString wxListBox::GetString(int N) const -{ - // TODO - return wxString(""); -} - -void wxListBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - m_noItems += nItems; - - // TODO -} - -void wxListBox::SetString(int N, const wxString& s) -{ - // TODO -} - -int wxListBox::Number () const -{ - return m_noItems; -} - -// For single selection items only -wxString wxListBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxListBox::SetStringSelection (const wxString& s, bool flag) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel, flag); - return TRUE; - } - else - return FALSE; -} - -void wxListBox::Command (wxCommandEvent & event) -{ - if (event.m_extraLong) - SetSelection (event.m_commandInt); - else - { - Deselect (event.m_commandInt); - return; - } - ProcessCommand (event); -} - diff --git a/src/mac/listctrl.cpp b/src/mac/listctrl.cpp deleted file mode 100644 index d1d8445652..0000000000 --- a/src/mac/listctrl.cpp +++ /dev/null @@ -1,596 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.cpp -// Purpose: wxListCtrl. See also Robert's generic wxListCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listctrl.h" -#endif - -#include "wx/stubs/textctrl.h" -#include "wx/stubs/listctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) - -#endif - -wxListCtrl::wxListCtrl() -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_baseStyle = 0; - m_colCount = 0; -} - -bool wxListCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name) -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_colCount = 0; - - SetValidator(validator); - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - if (parent) parent->AddChild(this); - - // TODO create list control - return TRUE; -} - -wxListCtrl::~wxListCtrl() -{ -} - -// Add or remove a single window style -void wxListCtrl::SetSingleStyle(long style, bool add) -{ - long flag = GetWindowStyleFlag(); - - // Get rid of conflicting styles - if ( add ) - { - if ( style & wxLC_MASK_TYPE) - flag = flag & ~wxLC_MASK_TYPE ; - if ( style & wxLC_MASK_ALIGN ) - flag = flag & ~wxLC_MASK_ALIGN ; - if ( style & wxLC_MASK_SORT ) - flag = flag & ~wxLC_MASK_SORT ; - } - - if ( flag & style ) - { - if ( !add ) - flag -= style; - } - else - { - if ( add ) - { - flag |= style; - } - } - - m_windowStyle = flag; - - /* TODO RecreateWindow(); */ -} - -// Set the whole window style -void wxListCtrl::SetWindowStyleFlag(long flag) -{ - m_windowStyle = flag; - - /* TODO RecreateWindow(); */ -} - - -// Gets information about this column -bool wxListCtrl::GetColumn(int col, wxListItem& item) const -{ - // TODO - return FALSE; -} - -// Sets information about this column -bool wxListCtrl::SetColumn(int col, wxListItem& item) -{ - // TODO - return FALSE; -} - -// Gets the column width -int wxListCtrl::GetColumnWidth(int col) const -{ - // TODO - return 0; -} - -// Sets the column width -bool wxListCtrl::SetColumnWidth(int col, int width) -{ - // TODO - return FALSE; -} - -// 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) -int wxListCtrl::GetCountPerPage() const -{ - // TODO - return 0; -} - -// Gets the edit control for editing labels. -wxTextCtrl* wxListCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -// Gets information about the item -bool wxListCtrl::GetItem(wxListItem& info) const -{ - // TODO - return FALSE; -} - -// Sets information about the item -bool wxListCtrl::SetItem(wxListItem& info) -{ - // TODO - return FALSE; -} - -long wxListCtrl::SetItem(long index, int col, const wxString& label, int imageId) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - info.m_col = col; - if ( imageId > -1 ) - { - info.m_image = imageId; - info.m_mask |= wxLIST_MASK_IMAGE; - } - return SetItem(info); -} - - -// Gets the item state -int wxListCtrl::GetItemState(long item, long stateMask) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -// Sets the item state -bool wxListCtrl::SetItemState(long item, long state, long stateMask) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -// Sets the item image -bool wxListCtrl::SetItemImage(long item, int image, int selImage) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_IMAGE ; - info.m_image = image; - info.m_itemId = item; - - return SetItem(info); -} - -// Gets the item text -wxString wxListCtrl::GetItemText(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -// Sets the item text -void wxListCtrl::SetItemText(long item, const wxString& str) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -// Gets the item data -long wxListCtrl::GetItemData(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -// Sets the item data -bool wxListCtrl::SetItemData(long item, long data) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -// Gets the item rectangle -bool wxListCtrl::GetItemRect(long item, wxRect& rect, int code) const -{ - // TODO - return FALSE; -} - -// Gets the item position -bool wxListCtrl::GetItemPosition(long item, wxPoint& pos) const -{ - // TODO - return FALSE; -} - -// Sets the item position. -bool wxListCtrl::SetItemPosition(long item, const wxPoint& pos) -{ - // TODO - return FALSE; -} - -// Gets the number of items in the list control -int wxListCtrl::GetItemCount() const -{ - // TODO - return FALSE; -} - -// Retrieves the spacing between icons in pixels. -// If small is TRUE, gets the spacing for the small icon -// view, otherwise the large icon view. -int wxListCtrl::GetItemSpacing(bool isSmall) const -{ - // TODO - return FALSE; -} - -// Gets the number of selected items in the list control -int wxListCtrl::GetSelectedItemCount() const -{ - // TODO - return FALSE; -} - -// Gets the text colour of the listview -wxColour wxListCtrl::GetTextColour() const -{ - // TODO - return wxColour(); -} - -// Sets the text colour of the listview -void wxListCtrl::SetTextColour(const wxColour& col) -{ - // TODO -} - -// Gets the index of the topmost visible item when in -// list or report view -long wxListCtrl::GetTopItem() const -{ - // TODO - return 0; -} - -// Searches for an item, starting from 'item'. -// 'geometry' is one of -// wxLIST_NEXT_ABOVE/ALL/BELOW/LEFT/RIGHT. -// 'state' is a state bit flag, one or more of -// wxLIST_STATE_DROPHILITED/FOCUSED/SELECTED/CUT. -// item can be -1 to find the first item that matches the -// specified flags. -// Returns the item or -1 if unsuccessful. -long wxListCtrl::GetNextItem(long item, int geom, int state) const -{ - // TODO - return 0; -} - -wxImageList *wxListCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - return m_imageListSmall; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxListCtrl::SetImageList(wxImageList *imageList, int which) -{ - int flags = 0; - if ( which == wxIMAGE_LIST_NORMAL ) - { - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - m_imageListSmall = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - m_imageListState = imageList; - } - // TODO set image list -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Arranges the items -bool wxListCtrl::Arrange(int flag) -{ - // TODO - return FALSE; -} - -// Deletes an item -bool wxListCtrl::DeleteItem(long item) -{ - // TODO - return FALSE; -} - -// Deletes all items -bool wxListCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Deletes all items -bool wxListCtrl::DeleteAllColumns() -{ - // TODO - return FALSE; -} - -// Deletes a column -bool wxListCtrl::DeleteColumn(int col) -{ - // TODO - return FALSE; -} - -// Clears items, and columns if there are any. -void wxListCtrl::ClearAll() -{ - DeleteAllItems(); - if ( m_colCount > 0 ) - DeleteAllColumns(); -} - -// Edit the label -wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - // TODO - return NULL; -} - -// End label editing, optionally cancelling the edit -bool wxListCtrl::EndEditLabel(bool cancel) -{ - // TODO - return FALSE; -} - -// Ensures this item is visible -bool wxListCtrl::EnsureVisible(long item) -{ - // TODO - return FALSE; -} - -// Find an item whose label matches this string, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxString& str, bool partial) -{ - // TODO - return FALSE; -} - -// Find an item whose data matches this data, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, long data) -{ - // TODO - return 0; -} - -// Find an item nearest this position in the specified direction, starting from -// the item after 'start' or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxPoint& pt, int direction) -{ - // TODO - return 0; -} - -// Determines which item (if any) is at the specified point, -// giving details in 'flags' (see wxLIST_HITTEST_... flags above) -long wxListCtrl::HitTest(const wxPoint& point, int& flags) -{ - // TODO - return 0; -} - -// Inserts an item, returning the index of the new item if successful, -// -1 otherwise. -long wxListCtrl::InsertItem(wxListItem& info) -{ - // TODO - return 0; -} - -long wxListCtrl::InsertItem(long index, const wxString& label) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image item -long wxListCtrl::InsertItem(long index, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_mask = wxLIST_MASK_IMAGE; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image/string item -long wxListCtrl::InsertItem(long index, const wxString& label, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_text = label; - info.m_mask = wxLIST_MASK_IMAGE | wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// For list view mode (only), inserts a column. -long wxListCtrl::InsertColumn(long col, wxListItem& item) -{ - // TODO - return 0; -} - -long wxListCtrl::InsertColumn(long col, const wxString& heading, int format, - int width) -{ - wxListItem item; - item.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_FORMAT; - item.m_text = heading; - if ( width > -1 ) - { - item.m_mask |= wxLIST_MASK_WIDTH; - item.m_width = width; - } - item.m_format = format; - - return InsertColumn(col, item); -} - -// Scrolls the list control. If in icon, small icon or report view mode, -// x specifies the number of pixels to scroll. If in list view mode, x -// specifies the number of columns to scroll. -// If in icon, small icon or list view mode, y specifies the number of pixels -// to scroll. If in report view mode, y specifies the number of lines to scroll. -bool wxListCtrl::ScrollList(int dx, int dy) -{ - // TODO - return FALSE; -} - -// Sort items. - -// fn is a function which takes 3 long arguments: item1, item2, data. -// item1 is the long data associated with a first item (NOT the index). -// item2 is the long data associated with a second item (NOT the index). -// data is the same value as passed to SortItems. -// The return value is a negative number if the first item should precede the second -// item, a positive number of the second item should precede the first, -// or zero if the two items are equivalent. - -// data is arbitrary data to be passed to the sort function. -bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data) -{ - // TODO - return FALSE; -} - -// List item structure -wxListItem::wxListItem() -{ - m_mask = 0; - m_itemId = 0; - m_col = 0; - m_state = 0; - m_stateMask = 0; - m_image = 0; - m_data = 0; - - m_format = wxLIST_FORMAT_CENTRE; - m_width = 0; -} - -// List event -IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxCommandEvent) - -wxListEvent::wxListEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ - m_code = 0; - m_itemIndex = 0; - m_col = 0; - m_cancelled = FALSE; -} - diff --git a/src/mac/macsock/sock_PPC.lib b/src/mac/macsock/sock_PPC.lib deleted file mode 100644 index a85c82aabf..0000000000 --- a/src/mac/macsock/sock_PPC.lib +++ /dev/null @@ -1 +0,0 @@ -(This file must be converted with BinHex 4.0) :!!"08%a'3eG*43!!!!-3A!!!!4ijQ8eA6d*38%-J!*!(!3!![XJ!!#4S!!!!#V# XlYd!!!$N!!!!mJ!!!e`!!#2bXQAFf3!!!5B!!!%f!!!R8!!!Y4ka,F84!!!"E!! !!AJ!!0a`!!!B@,*Pi@S!!!'U!!!"YJ!!p-J!!&Q!XQ-ZeJ!!!HJ!!!(e!!&15!! !GFk[r%YD!!!#+!!!!M3!!F3B!!!RbUj'*kS!!!*Q!!!#G!!"kq3!!"b+XQAX)3! !!UJ!!!+c!!))F!!!CV#`V2#X!!!#j!!!!Zm!!QmJ!!"!3,#pbM)!!!-J!!!$+`! #Vf!!!'$m4e9658*eCQCPFLjMF!"%CACPE'p`E@9ZG$T%CA0VG'p`)%C[E'4PFMT $9dG98dNkFh*M1NG98dP#G@CQCA)ZBh!!4e96584TFh"KG'0S,Q0`!%4PGQ9XEh" YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-k4e96584TFh"KG'0S,Q0`!%G 98dP(E'pL,Q0`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ- k4e9658GXEf)ZBh!!4e9658P1493ZBh!!4'9fC@a[F'ePER3k4'9cDh4[F#"'Efa NCA)k3eG(990*1R0bBcT(990*58j&9#jMF!"(990*6Q9d4%)ZBh!!4'9fC@a[F'e PER3k4'9cDh4[F#"'EfaNCA)k3eG(990*1R0bBcT(990*6Q9d4%)ZBh!!4e9658j eE'`ZBh!!4'9fC@a[F'ePER3k4'9cDh4[F#"'EfaNCA)k3eG(990*1R0bBcT(990 *6R9XE#jMF!"(990*8fpMDf9d,Q0`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9 b1N0A4e9656TcFQ-k4e96590[BfYPG#jMF!"(990*9%03,Q0`!%4PGQ9XEh"YC@j d1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-k4e96594$8#jMF!"(990*9843,Q0 `!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656TcFQ-k4e96599%8#j MF!"(990*4P0`,Q0`!%4PGQ9XEh"YC@jd1N4PFfYdEh!J4QpXC'9b1N0A4e9656T cFQ-k4e9658C6F#jMF!"36eG5!*!'&5!!!"hd!!!!EJ!!&B`!!!KS!!!*m!#3"J' c!!!!$!#33%9R!!"&D3#3"3&&DJ!%!!!!!J!!!(3!!!!J!!!$Zh`)!UDrBIrXN!! "!!L8)Iq`1i-!!$ZN!!!la3!!1qB!!(`Hq%"!J3!i1(`!!$LG!!!i[!!!10m!!%J !!!%lB`!!1(`!!$LG!!!i[J!!10d!!%J!!!&mBpS85!!!#(aqq&#!!3"B1#%!8(` )!kDlBIrX6S!!)%9e!*!&!J!!!$K&G3#3"3)!!!"34@i-"!!!!!F!!!!-J!#3#i! !!(3S!!!!4AF!N!8#!*!%4@X!"!!!!!J!!!#-!!!!I!!!"@am#!+QNq(rr*2"rrL 3!!%!#*3Krm!li`!!1m3!!&5$"$j)!!!"B!!!!*!!I`!!J(m!!&I!"$jm!`)8N!! I!!5!(`!!N!!I!!L!(`!!N!!I!!bch`!31!!!!,!I!")i!!!!X"m!&$J!!!#B(`! @1!!!!*!!(`!B1(m!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!!!!#" &EJ`%!!!!&`!!!!b!!*!,J!!!M"!!!!"&G`#3"3J!N!4&D`!%!!!!'!!!!'`!!!# d!!!'FR`)!UD6iIrmN!!"!!L8)Ir!I(mEHE#"!&j"JJ!m1!!!!CJI!"D!(`!!+!! !!%'#!"#!I`!!5!!!!@!!!!#S!3"H,!!!!%#"!"!iI`!!5!!!!@!!!!!iI`!!J!% !5$JK!%"m#!1QJq(rr%k!!#"&G3#3"4N!!!!d4A8!N!8D!!!!6%9Z$!3!!!!E!!! !$)!!N!Z!!!"X#!!!!%9h!*!&'!#3"%9V!!3!!!!F!!!")!!!!1B!!!DqI!J#TT2 Krrb6`IriNk(rp*1"rr#3!!%!#*3Krl!li`!!1i3!!$J!!!'B!`!@S!-!%LJ!!!" !JJ!FJ"m!!*!!(`!-J"m!!*!!(`!)1!!!!,!I!"5!I`!-J"m!"(r$!&#$[`!-9m- %2U!I!""m!`"!3B!!$+2I!"")!!"-9m-%2U!I!""m!!j`I!-!!%#!!$KA``3qJ"` !!(`$!!"!J!!SXpm!&)!I!!#3!"m!$+"r!"5J(`!3I!-!8,!I!"#Mh`!3Jlm!$)" m!!"A`!3qI!-!!%#"!!aA`!3qN!!F!!!i!!!!Q"m!&S!I!"JS!!!!3B)!&)"r!"b "R`!B5!!!!@!!!!!iI3!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#" &G3#3"4d!!!$d4@i-"!!!!#%!!!!-J!#3#i!!!5!J!!!!4AF!N!8F!*!%4@X!"!! !!#)!!!#i!!!"HJ!!#-Ym#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$[M!!! lK!!!1!!!!CJ$!"DJJ`!8J'-!#)!I!!4m!`"3Im3!8)1r!!KA``3qS"m!%R`$!%" !J3!)Spm!%S"m!!"A`!3qI!-!!%#"!!aA`!3qN!!F!!!i!!!!Q"m!&S!I!"JS!!! !3B)!&)"r!"b"R`!B5!!!!@!!!!!iI3!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIr dJi(rm%k!!#"&G3#3"4d!!!#-4@i-"!!!!#-!!!!-J!#3#i!!!,JJ!!!!4AF!N!8 L!*!%4@X!"!!!!#3!!!#F!!!"lJ!!#J&m#!+QNq(rr*2"rrL3!!%!#*3Krm!li`! !1m3!!$J!!!'B!`!@S!-!%R`!mK5`!`!5S!-!%(`H!&#`!`!3J!-!$(`!mK53!!- !$)"M!!b!(`!%I!-!3%##!!b!(`!!N!!I!!`i!!!!Q"m!&S!I!"JS!!!!3B)!&)" r!"b"R`!B5!!!!@!!!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"4d!!!" m4@i-"!!!!#8!!!!-J!#3#i!!!*`3!!!!4AF!N!8N!*!%4@X!"!!!!#B!!!$B!!! #0J!!#YCm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!1m3!!$J!!!'B!`!@S!-!%(` !mK5`!`!3S!-!%R`H!&#`!`!5J!-!#(`!mK53!!-!#)#$!!LJB`!8J"m!"(`$!&" m"!"!3))!')!I!!#3!"m!#$J!!!#`(`!85!!!,+!I!")S!!!!3))!)+!I!""m!2! !3))!&)!I!!#3!"m!#)!I!!#3!"m!$$J!!!#B(`!@J"m!'#J!!!""JJ!8J(m!()' I!"K)!!!"B!!!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!&(3!!!,K&EJ` %!!!!*`!!!!b!!*!,J!!!f"!!!!"&G`#3"5B!N!4&D`!%!!!!+!!!!*3!!!+1!!! -1A`)!UDrBIrXN!!"!!L8)IqJ1q-!!$Z%!!!lC3!!Jm8!!%J!!$`iI`!!1)%!1%J !!!%iR!!!J+%!1%J!!!&J!!!!1(m!!)#"!$K)!!!"J!%!1(qF!K5!!3!iIm$`8*2 "!$JX(J!!3B)!%+!I!")S!!!!3),rY)!E!!"m(J"3N!!E!!#!!3"S1#%!B(`)!kD lBIrX6S!!)%9e!*!&)J!!!#a&G3#3"5N!!!!i4A8!N!8Q!!!!5%9Z$!3!!!!Y!!! !$)!!N!Z!!!#8+!!!!%9h!*!&+!#3"%9V!!3!!!!Z!!!!R!!!!bi!!!fdI!J#TVp Krqb3!!%!#*3Krk!li`!!1i3!!$YP!!#$a3!!5!!!4$Kr!!!iJ3!i5!!!!6ZM!!! iI!!!1*d!!)#K!$K)!!!"B!!!!$Kr!!#!J3!i5!!!!B!"!$KrR!)8J!%!1(r!m&# 6`3!i,"i!!%'#!"#J(`!3+!!!!%##rkb!'`!!I"i!8*!!'`!!J!%!D$JK!'"m#!1 QZf(rl%k!!#"&G3#3"4`!!!!X4A8!N!8T!!!!3%9e!*!&*!!!!&"&EJ`%!!!!,`! !!!b!!*!,J!!!R#J!!!"&G`#3"5i!N!4&D`!%!!!!-!!!!4!!!!21!!!2Jh`)!UD 6iIrmNm(rq*1Krr53!!%!#*3Krl!li`!!1m3!!$ZP!!#!!J!!N!!$!"56``!3Nk- !$)!$!!`X!!!"3)!!)$J!!!#3!"m!"$J!!!#3!"m!#$J!!!#3!"m!!%J!!*L!(`! -,!!!!8##!##!(J!!N!!I!!5!(J!%N!!I!!Ji!!!!N!!I!!")!!"`1!!!!*!!(`! )5!!!')"r!!L!(J!%I!-#&*!!(`!)1pi!##`G!!!l[Irr3),rj)"r!!K)!!!"B!! !!*!!I`!!J"m!!#J!!!""JJ!JJ(m!!%J!!!&J!!!!J(m!!)!$!!#3!"m!"%J!!!` i!!!!N!!I!!3iI`!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3"$% !!!!N4A8!N!8b!!!!Y%9e!*!&-`!!!0"&EJ`%!!!!2J!!!!b!!*!,J!!"%"J!!!" &G`#3"6!!N!4&D`!%!!!!2`!!!'`!!!4F!!!44(`)!UD6iIrmN!!"!!L8)Ir!I(m EHE#"!&j"JJ!mJ!)!!*!!(`!8J"m!!#J!!!""JJ!3J(m!!%J!!!&J!!!!U!%!AL` !!!"!J3!31(m!!%J!!!&J!!!!1(m!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*! %-3!!!"a&G3#3"8!!!!!d4A8!N!8D!!!!6%9Z$!3!!!""!!!!$)!!N!Z!!!"X#!! !!%9h!*!&2`#3"%9V!!3!!!"#!!!!5!!!")B!!"'*I!J#TT2Krrb3!!%!#*3Krm! li`!!N!#"!&b3!+%!B)#"!&b!S3"J5!!!!B!#!!#3!"m!&$Kr!!#!!3")1#%!3(` )!kD$iIrm6S!!)%9e!*!&-!!!!#4&G!-!N!4$!!!!+%9Z$!3!!!"'!!!!$)!!N!Z !!!")#!!!!%9h!*!&3J#3"%9V!!3!!!"(!!!"#!!!"-3!!"(KI!J#TT2Krrb6`Ir iNk(rp*!!!3!)P#(rX(ar'hQ`J3"Z3B)!b)!#!!#3!"m!&)!I!!`X!!!"3)%!N!# !(`!%+!!!!%'#!)5$[`!%5!!!A)#I!!L!I`!3J!-!"(`%!!"!J!!-Jpm!#%J!!!b !I`!3Jm-!")"r!"#!B`!!1*d!!$Lq!!")!!!"B!!!!(qpmK5!(`!)I"i!8*!!(`! )J(m!%$J$!!L3!"m!%)"r!!`i!rrrN!!I!!`X!`!!3B)!%)!I!!JX!!!!3),rM$K r!!!iJ!!!5!!!!DJ"!'iX!!!!3)%!%$Kr!!")!!!"B!!!!$Kr!!#!!3"B1#%!8(` )!kD$iIrmJm(rq)1Krr41J!!J4A3$!*!%3`!!!#4&G3#3"8J!!!#!4A8!N!8r!!! !c%9e!*!&'J!!!1"&EJ`%!!!!5`!!!!b!!*!,J!!"#"J!!!"&G`#3"8F!N!4&D`! %!!!!6!!!!+!!!!8U!!!5dA`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq`1i- !!$[N!!!lT3!!5!!!!B!#!!#3!"`!&#`G!!&!J3"%J"`!"#J!!!""JJ!iJp`!"%J !!#3iIJ!!J*m!!)#r!!4)!!!"B!!!!)!I!!4rhJ)81rm!##`G!!!l[Irr3),rf$K m!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9e!*!&-!!!!#K&G!- !N!40!!!!,%9e!*!&5!!!!&a&EJd#!!!!6`!!!"D!!*!()!!!B!"J!!S!!)D!!"` !N!T&GJUF!!!!8!!!!"*&EJ`%!!!!83!!!!b!!*!1S!#3"%9h!*!&6!#3"%9h$3# 3"%m!!!!)4@X!"!!!!&)!!!"J!!!&RJ!!%m*m#!+QNq(rr*!!!3!)P#(r`(ar'hQ `J3"H3B)!-)!#!!#3!"m!&$Kr!!!iJ!!!5!!!!DJ"!&iX!!!!3)%!%$Kr!!")!!! "B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"%d!!!!F4A8!N!8r!!! !,%9e!*!&'J!!!%"&EJ`%!!!!8`!!!!b!!*!,J!!!B!J!!!"&G`#3"9)!N!4&D`! %!!!!9!!!!$`!!!A!!!!6hC2Krr`li!!!5!!!&)J$!!!lr`!"I!6jVMKM!!')!`! !I!!(G8'#!!`X(`$r3B$ri*[N!!#$iIrm6S!!)%9Z"3%!!!"A!!!!#Irrrr-!!"2 G4f&dD'9bCA)!!"334@i&!3!!!&J!!!!+rrrrmJ!!%pe6Bf&dG%GKG'J!!!"&EJ8 %!!!!@3!!!!Mrrrra!!!6h3#3#%9f"3#3"&J!N!4&EJ8%!!!!@J!!!!crrrr`!!! 6h3#3$%9f"3#3"&N!N!4&EJ8%!!!!@`!!!!Mrrrr[!!!6h3#3#%9f"3#3"&F!N!4 &GJ8!N!4D!!!!"%9["33!!!"0!!!!$2rrrqi!!"2G!*!-4AB&!*!%@`#3"%9f#J# 3"&`!!!!)4@i&!3!!!&d!!!!+rrrrl3!!%pe6Bf&dG'9bCA)!&""&EJ8%!!!!AJ! !!!crrrrX!!!6h3#3$%9f"3#3"&N!N!4&EJ8%!!!!A`!!!!MrrrrV!!!6h3#3#%9 f"3#3"&d!N!4&GJ8!N!4H!!!!"%9["33!!!"$!!!!$2rrrqS!!"2G!*!-4AB&!*! %A`#3"%9f#J#3"'!!!!!)4@m&"!!!!$%!!!!-rrrrk3!!%pd!N!a&GJ8!N!4C!*! %4AB+!*!%8!!!!!K&E`S%!!!!B3!!!!L!!*!24AB!N!98!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!A!!!!!L!!*!24AB!N!95!*!%4AB2!*!%BJ!!!!4&E`S%!!!!B`!!!!L !!*!24AB!N!9-!*!%4AB2!*!%BJ!!!!4&E`S%!!!!B!!!!!L!!*!24AB!N!9(!*! %4AB2!*!%BJ!!!!4&E`S%!!!!C!!!!!L!!*!24AB!N!9#!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!8!!!!!L!!*!24AB!N!8r!*!%4AB2!*!%BJ!!!!4&E`S%!!!!C3!!!!L !!*!24AB!N!8`!*!%4AB2!*!%BJ!!!!4&E`S%!!!!CJ!!!!L!!*!24AB!N!8Z!*! %4AB2!*!%BJ!!!!4&E`S%!!!!C`!!!!L!!*!24AB!N!8S!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!D!!!!!L!!*!24AB!N!8Q!*!%4AB2!*!%BJ!!!!4&E`S%!!!!D3!!!!L !!*!24AB!N!8N!*!%4AB2!*!%BJ!!!!4&E`S%!!!!DJ!!!!L!!*!24AB!N!8L!*! %4AB2!*!%BJ!!!!4&E`S%!!!!D`!!!!L!!*!24AB!N!8F!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!E!!!!!L!!*!24AB!N!8B!*!%4AB2!*!%BJ!!!!4&E`S%!!!!E3!!!!L !!*!24AB!N!8)!*!%4AB2!*!%BJ!!!!4&E`-%!!!!63!!!!5!!*!,4AB&!*!%63# 3"%9[!`3!!!"$!!!!")!!N!Y&GJ8!N!4$!*!%4@m$"!!!!$%!!!!%J!#3#d9f"3# 3"$%!N!4&E`m%!!!!BJ#3")!!N!G&D!!!8eP05!!!"Ki!!!!A!!!!#!#3%3%!N!B $p3!!!#J!!!3*!!!!A!!!"&RrN!3!!!4T!!3!!!!$!!!!CJ%!N!3F!!!!"!!!!'B "!*!%(3!!!!8!!!"Q!3#3""i!!!!'!!!!CJ%!N!3I!!%!N!B&N`!!!#!!!!@@rj! %!!!'E`!#!!!!#[q3"!%!N!3I!!!!&J!!!!S"!*!%(J!"!*!'"S`!!!!F!!!'M`! !!$!!!!DRrj!%!!!'Z`!"!!!!#[q3"!%!N!3I!!%!N!B'i`!!!$J!!!FY!!!!8!! !"fJ!!!"`!!!(ZJ!!!(J!!!I2!!!!R!!!"rd!!!$!!!!)A`!!!0!!!!Kc!!!!f!! !#+i!!!$m!!!)[2q3"!!!#-J!"!!!!!VrN!3"!*!%(`!!!"lrrrrm!3#3""`!!!! I!!!!CJ#3"4d!!!!J!!!!#J#3"4i!!3#3"JM`!!!!9!!!#B3!!!"B!!!*P3!!!'J !!!QT!!!!F!!!#H3!!!#8!!!*m[q3"!!!#Ii!"!!!!!VrN!3"!*!%(`!!!"lrrrr m!3#3""`!!!!I!!!!CJ#3"4d!!!!J!!!!#J#3"4i!N!J+*3!!!&J!!!UK!!!!B!! !#XJ!!!#%!!!+drq3"!!!#Y-!!J!!!!VrN!3"!*!%(`!!!"i!!!!$!3#3""i!N!J +r!!!!'!!!!Z"!!!!G!!!#kN!!!#-!!!,l3!!!*`!!!`V!!!!`!!!$$ErN!3!!!` f!!)!!!!+rj!%!3#3""m!!!!H!!!!!`%!N!3H!*!)$'B!!!!N!!!0"3!!!$J!!!d G!!!!3!!!$6N!!!"-!!!063!!!&`!!!eE!!!!G!!!$@!!!!#!!!!0XIq3"!!!$E% !"J!!!!VrN!3"!*!%(`!!!!B!!!"Q!3#3""`!!!!Hrrrrr!%!N!3E!!!!+J!!!'B !N!8G!!!!+`!!!!-!N!8H!!!!,!!!!!-!!`!!!$J!N!J0i`!!!#3!!!k%!!!!3!! !$T`!!!")!!!1ZJ!!!&3!!!l2!!!!C!!!$Yi!!!"m!!!1i`!!!)J!!!mirj!%!!! 21!!'!!!!#[q3"!%!N!3I!!!!"3!!!'B"!*!%(!!!!"lrrrrm!3#3""X!!!!U!!! !CJ#3"4d!!!!V!!!!!`#3"4i!!!!X!!!!!`!$!!!!1!!"!*!'$lS!!!"!!!!2k`! !!&`!!"!F!!!!D!!!%$%!!!#%!!!3LJ!!!*!!!!!3U3!!!,!!!"$*!!!!c!!!%2S !!!$B!!!4$3!!!1J!!"%b!!!!m!!!%8(rN!3!!"&"!!-!!!!+rrrrq`%!N!3I!!! !22rrrrN"!*!%(J!!!$d!!!!$!3#3""d!!3#3"K&F!!!!-!!!%@lrN!3!!"''!!% !!!!+rrrrq`%!N!3I!!%!N!B4a2q3"!!!%Gi!!`!!!!Vrrrrh!3#3""m!!!!mrrr rq3%$!!!!A!!!!$B!!!!$!3-!!!"J!!%!N!B4q3!!!$J!!")*!!!!4!!!%LB!!!" -!!!5A3!!!(!!!"+#!!!!T!!!%XcrN!3!!",1!!-!!!!+rrrrp`%!N!3I!!!!53! !!'B!N!8G!!!!5J!!!!-!N!8H!!%!N!B6#J!!!$`!!"-P!!!!5!!!%d)!!!"3!!! 6F`!!!(!!!"1p!!!!I!!!%lrrN!3!!"1r!!3!!!!+rrrrp3%!N!3F!!!!22rrrrN "!*!%(`!!!$B!!!!$!3#3""d!!!"*!!!!CJ#3"4i!!3#3"K2Brj!%!!!6fJ!"!!! !#[rrrr8"!*!%(`#3#"33!!!!"!!!&"m!!!!-!!!8@!!!!$!!!"4G!!!!0!!!&'c rN!3!!"4X!!-!!!"9!!!!CJ%!N!3$!!!!9J!!!'X"!*!%"!!!!"i!!!!$!*!&(`! !rrrrr3!"!!!!DJ!#rrrrrJ!!!!X!!!!J!!S!!!!-!!!!CJ#3"`d!!!"Q!!!!"!! !!!i!!!"Q!!!!#!!!!!m!!!"Q!!!!$!!!!"!!!!!+!!!!%!!!!"%!!!!+!!!!%J! !!")!!!!+!!!!&!!!!"-!!!!'!!!!&J!!!"6rrrrp!!!!'!!!!"8!!!"N!!!!(!! !rj!%!!(rrrrq!!$rrrrm!!%!!!!$!!,rrrri!!!!1!!!!!J!!J!!!$N!!!"Q!*! (1J!!!!-!!!!%!!$rrrrj!!(rrrri!!,rrrrk!!!!0!!!!"J!"J!!!$8!!!"R!*! (+J!!!'3!!!!%!!!!(J!!!!-!!!!)!!!!0J!!!!-!!!!-!!!!0rrrrrN!!!!3!!! !1`!!!'3!!!!8!!$rrrrl!!(rrrrk!!,rrrrf!!!!4!!!!"J!!3!!!%Arrrrk!*! 'rrrrp`!"rrrrpJ!#rrrrp!!!!%i!!!!B!!%!!!"&rrrrqJ#3"[rrrr8!!Irrrr3 !!Irrrr-!!!!*!!!!!3!!!!F!!Irrrr)!!!!+!!!!!3!!!!F!![rrrr(rN!3!!!! )!!!!![rrrr$rN!3!!!!-!!!!![rrrqrrN!3!!!!)!!!!![rrrqlrN!3!!!!-!!! !!Irrrqd!!!!+!!!!!3!!!!F!![rrrqcrN!3!!!!-!!!!![rrrq[rN!3!!!!)!!! !![rrrqVrN!3!!!!-!!!!![rrrqRrN!3!!!!-!!!%U%G98dN!"'`Z8QPZCd4TFh4 IAdC3Be"M8'03B`!&QA0dBA*d!!1RC@jN!!3cCR*[E3!#rA4[!!5F3$Fd13!'9#j IAf0dAema-&*TEQG#G@CQCA*'9A-!"p8Z6Q9h8(4b!!4EG'KTF`!#K&*TEQG#G@C QCA)!"J0LG@CQCA)!"NePEQ4LG@B!"d"MEfjcG@eP!!F`F(*[C(9MC3!%kQCbC@8 !"GCfB@aTC!!&T(0`BA*P!!5VE'pMD`!(('4PCR"bEf-!!cTKFQF!"U"LG@CcDAS !",4!0c8a!!A%,PpIC(4IAc%`8QPZCd*eCQCPFNCf!!-),N4TFh"[Ff93G()!!Nm ZAepNE&pI4P"f!!5l3$Fe1!!#Abj3FQpNG@0PFPpI-6"5D@jR3R9QCQ9b4P*X!!1 8,PpIF(4bAfGXG@8!!maXC@i!!qPbCA-!"R"cG(*PB@X!"2C!0cFc!!)5,N0[ER0 eE@9bAema-&*TEQG#G@CQCA*'8Q`!""9!0cJb!!(L,PCKE'PNBA4PAema-&*TEQG #G@CQCA*'E!!%(%!h1$N!!e8Z5@jfB@aTC'&dC9pI-6"5D@jR3R9QCQ9b4Q`!"$G !1$!`!!--,N0[ER0eE@9IAc%`8QPZCd*eCQCPFNC3Be*X!!)[,N*XEf0V6@pfC3! $RQ*eCJ!%XA*PFh3!"&p`BA*d!!3r3$J`1!!$D#j3FQpNG@0PAema-&*TEQG#G@C QCA*'8'05E!!%A8!i-6B!!m!ZAepMG&pI190MBA4d4f&dD%C33c9TEhCPBfN!!,0 IAhCdAemj8f0KG(4(BA4S!!+(,NjPGdKKEQ4XC3!'L#j)6'pMD`!"aP0MBA4d4f& dD!!((A0MFQ&dBfJ!"39MEh9ZG!!#R'P[!!8cD@pfC@-!!(*TEhCIBQ&cC3!($'P [GPpXC@i!"r0IAhC`G()N!!-*D@pf!!22Bfjd!!5C3$Jc-J!$R#jIAf4dAemj8f0 KG(4(BA4S4RB!"X-Z4'PcF'pcC8KKEQ4XC3!%Rd!i-cJ!!i-ZAepMG&pI190MBA4 dCA*PFNC33c9TEhCPBfN!!%jIAhCdAemj8f0KG(4PFQ9b!!&"8f0KG(4PFQ9b!!) q*&0MBA4d4f&dD!!%Yd!i0$!!!bdZAepNG&pI190MBA4dCA*PFNCf!!GP,QePE@0 `H3!%df*`G()!"#pcC@0d!!6D3$Je-`!#hLjIAf0dAemi4f&dD'9bCA*'8%-eD@p fC@0T!!GTAepfG&pI1%GKG'KPFQ9b!!"-4f&dD'9bCA)!"2T!1$Bc!!*lAepNG&p I190MBA4d4f&dD%Cf!!6l3$Jf0!!#0LjIAf4dAemi4f&dD'9bCA*'GJ!%rd!i0MJ !"#%Z3fp`H8-b8&0dFPpI4P"$Be"9B`!%Af0cG()!"!C`Fh4b!!3G3$Jh0J!%(d! i0cJ!!P0IAe*89%PIAcP6Bf&dG%GKG'J!""j!1$Fh!!'MAep59&4*Aemi4f&dD'9 bCA)!!DjIAf4dAemi4f&dD'9bCA*'GJ!%)%!i0cN!"$K!1$J`!!*ZAep59&4*Aem j8f0KG(4PFQ9b!!)-AepNG&pI190MBA4dCA*PFNCf!!0Q3fp`H8-b8&0dFPpI4P" $Be"9B`!$IP423`!")&pIBh4IAcK(BA4SCA*PFNC33c9TEhCPBfN!!PpIAf0dAem j8f0KG(4PFQ9b4P"$0@P[GQ9MD3!#N9pIBh4IAcP6Bf&dG%GKG'K'8%-eD@pfC@0 T!!,48(*[C(9MC9pI-6"5D@jR3R9QCQ9b4P"M8Q`!!QT$EfjcG@ePAema-&*TEQG #G@CQCA*'8'05E!!#ZNPZGQ&XD@4KG'9IAc%`8QPZCd*eCQCPFNCX!!#&9Q&XD@4 KG'9IAc%`8QPZCd*eCQCPFNCX!!(l3fpZFh9YCA*IAc%`8QPZCd*eCQCPFNC5E!! "I&"bEf4eBf9bAema-&*TEQG#G@CQCA*'8Q`!"1aIAf4dAema-&*TEQG#G@CQCA* 'GJ!&%&pIBh4IAc%`8QPZCd*eCQCPFNC9F`!!45K36eG5!*!'Df`!!*@B!!!#E!! !DpJ!!#R!!!!`D!!!!Ed!!!@a!!!!R!#33%9R!!"&D3#3"3&&E`8%!!!!(3!!!!6 rrrrf!!!$&!#3"%9f#J#3""i!N!4&E`8%!!!!(`!!!!6rrrrf!!!$33#3"%9f#J# 3"#!!N!4&E`8%!!!!)J!!!!3!!!!$!!!$Q!!!!!&&EK!%!!!!*3!!!!3!!!!$!!! $q[q3"%9V!!3!!!!f!!!!'!!!!#!!!!LY,!-!!%'#!!b!JJ!!N!"N!!!iB2rr6S! !)%9d!`#3"$F!!!!)4@X!"!!!!$N!!!!B!!!!8J!!#4-X!`!!3B)!$)##!!#3!'3 !!$KJ!!"1J!!J4A3$!*!%0`!!!!K&EK!"!!!!2!!!!!,rrrrd!!!+%MS!!!"&D`! %!!!!23!!!qJ!!!#%!!!+%R`)!UDr)IrNN!!"!!L8)IqJ1m-!!)0#!!")!!!"B!! !!$XM!!#)'J!!+!!!!%##!"#!BJ!!Xb-!!%J!!"5!BJ!!U'-!!%J!!!&J!!!!2'" (9ML!+!!iBlG*5!!!!@!!!!"mI"Yj3B)!&$Km!!")!!!"B!!!!%J!!!JiB!!!1f- !!#`E!!4"J!!BJ(`!!)!$!!#3!"i!!#J!!!"!JJ!32'"846KM@&53!(i!!#`E!!K "J!!BJ(`!!)!$!!53!"i!"#J!!!"!JJ!32'"08$KM8b#3!(i!"#`E!!P!J!!31!! !!CJH!!K)!!!3J(`!!)J$!!LB(J!),"X!$N#!!"3mB$!a1'-`-T!!IJ!35!!!%)" m!!#!!`!+N!!H!"!X'`!+3)!!3$J!!!#B(J!*1!!!!*JH!!Si!!!!Q"i!#cJ!!!# B(J!-1!!!!*JH!!di!!!!Q"i!$MJ!!!#B(J!25!!"5)"m!!#)!`!*9!-'-$J!!!" mB`"3-!2rrh`!'4#B(J!*J(`!!)J$!!P8!`Cb1!!!!(aM!&!`!rrrI!!C%*JH!!S iJ!!!J"i!%$aJ-$%iBc8`I!!B3%'!!#b!(J!32'!`-6KM1$"m!"K!3B%!')"m!!# )!`!*9!!(18'#!!JiJ!!"Q*i!#cL!!!#!(J!32'!`-6KM1$&m!"K!3B!!')"m!!# )!`!*9!!(18'#!!JiJ!!"Q*i!$cL!!!#!(J!32'!`-6KM0c4m!"K!3B!!')"m!!# )!`!*9!!(Hd'#!!JiJ!!"Q*i!$$L!!!#!(J!32'!`-6KM0c4m!"K!3B!!')"m!!# )!`!*9!!([8'#!!JiJ!!"Q*i!$6L!!!#!(J!32'!`-6KM0c4m!"K!3B!!')"m!!# )!`!*9!!(rd'#!!JiJ!!"Q*i!$S!H!"!mB$!a1'-b-(`!'%""J!!-,"X!%%#!!"! i!!!!X"i!&%J!!"#!I!!!U!-!$V!H!"5S(J!8,!!!!%##!"!i!!!!N!!H!"C)!!# NU"i!&"aJ!!a)!!!"B!!!!*!!IJ!@+!-!!%'#!)JiI!!!5!!!!@!!!!#!IJ!@J*` !!$L%!"#S(J!8(+!!$%J!!!&J!!!!1k!!!%J!!%`li!!!5!!!1)"q!"BF(3!-I!$ k&(`$!+jm!!Gd,!!!)%##!"JiJ!!!J(i!&K`G!!am!2S8I)-"VM[r!!%X(`!%3B$ rb$Zp!!'S(J!8I"d!!%'!rl#)'J!!+!!!!%##!#Ji!!!"Q"S!!)JH!!NS!!!!3)) !)$KL!!")!!!"B!!!!%J!!"!iH3!!5!!!!@!!!!!iI!!!5!!!!@!!!!!iIJ!!J!% !D$JK!'"m#!1QZb(rj%k!!#"&G!-!N!3k!!!!&%9e!*!&2J!!!"K&G!-!N!3l!!! !-%9d!`#3"$X!!!!m4A8!N!8r!!!!4%9e!*!&3!!!!&K&G3#3"8%!!!"X4A8!N!9 #!!!#m%9e!*!&3`!!!`K&G3#3"83!!!-N4A-3!*!%2!!!!kK&G3#3"88!!!1X4A8 !N!8r!!!$[%9e!*!&4J!!!mK&EJ`%!!!!6`!!!!b!!*!,J!!$k$J!!!"&G`#3"6d !N!4&D`!%!!!!8!!!!A`!!!(m!!!4eR`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L 8)IqJ1m-!!$ZN!!#!BJ!!J!-!!#J!!!""JJ!J1(d!!)##!!#"K!!!5!!!!@!!!!" 8B!Br3))"%+Kp!!#!R3!#1,d!"MM"!%")!!!"B!!!!(aJ"c9!JJ$`1(d!"ML!!#j )!!!"B!!!!(am'hP"JJ#N1"d!"RaJi&#)(3!'I!-!8#`!!!4"J3#-1'%!1$LF!!% i(3!'I+$J8)JG!!CmT3"35!!!!@!!!!!li!!!5!!!@)"q!"BF(`!-I'-#&$L"!$J iS!!%5!!!!@!!!!!X!`!!3))!-)#H!"BFI`!-1!-!"(`%!#k3!!%!3)#H!"BFI`! -1!-!#(`%!#k3!!%!4%J!!$!lr`!"U"i!&(`I!!""J2qNJ"i!!*!!!3"!J"i!"*! !!3"%S!%!5&3!"Lb`!3")U(d!!)#G!!)i[3!'1-%!3%J!!!&J!!!!J!%!D$JK!'" m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"&G!-!N!3K!!!!*%9d!`#3"#%!!!!i4A8 !N!94!!!!3%9e!*!&8J!!!'"&G3#3"9-!!!"i4A8!N!98!!!!Z%9e!*!&93!!!0a &G3#3"9B!!!&84@i-"!!!!'N!!!!-J!#3#i!!!A`J!!!!4AF!N!93!*!%4@X!"!! !!'S!!!"B!!!#[!!!&6Gm#!+QN!!"!!L8)Ir!N!"K!&K)!!!"B!!!!)#$!!#!BJ! !1!-!bR`%!%""JJ!8J')!!$KM!-T)!!!"B!!!!$J!!!'!B3"BQ!-!$)!"!%Ji)3" !I!J$TNk!!#"&G3#3"@X!!!!34A3$!*!%E!!!!"a&G!-!N!4X!!!!,%9e!*!&E3! !!$4&EJ`%!!!!EJ!!!!b!!*!,J!!!@!#3"%9h!*!&DJ#3"%9U!!3!!!"[!!!!"!! !![i!!"D96S!!)%9V!!3!!!"`!!!!3!!!!a)!!"JcI!J#TT2Krrb3!!%!#*3Krm! li`!!L!-"!#J!!!""JJ!31!!!!*JI!3")!!!"J!%!5$JK!%"m#!1QJq(rr%k!!#" &G3#3"@m!!!!S4@i-"!!!!(%!!!!-J!#3#i!!!%!)!!!!4AF!N!9`!*!%4@X!"!! !!()!!!!)!!!$6!!!'2diB!"!6S!!)%9V!!3!!!"c!!!!k!!!!f!!!"NVI!J#TT2 Krrb6`IriNk(rp*!!!3!)P#(rX*!!B3"SN!#"!'b3!+%!F)"L!!")!!!"J'%!D%J !!!&J!!!!I(iEH8'#!(!iIJ!!J)%!E)#K!(#"RJ!!JB`!$%J!!!&J!!!!I(mEH8' #!%b!BJ!!1*m!!$LJ!!")!!!"B!!!!$ZM!!!X(Irr3B)!$$Kp!!")!!"%,"m!!%' #!"`iI`!!1)!!!B'I!!+"M!"J5!!!!@!!!!#!BJ!!J!-!!#`!!!"!JJ!31'!!$%J !!!&)!!!)1'$rri!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"&G!-!N!3@!!! !*%9e!*!&F!!!!#K&G3#3"A3!!!!`4A8!N!94!!!!9%9d!`#3""B!!!"N4A8!N!9 e!!!!F%9e!*!&83!!!+4&G!-!N!3h!!!!V%9e!*!&0J!!!-"&EJ`%!!!!I3!!!!b !!*!,J!!!k"J!!!"&G`#3"A-!N!4&D`!%!!!!IJ!!!83!!!33!!!DNA`)!UD6iIr mNm(rq*1Krr53!!%!#*3Krl#3!'%!D*!!J3"XN!#K!(!laJ!!Jq)!!$Kr!!")!!! "J'%!D%J!!!&J!!!!I(dEH8'#!-3iI3!!J)%!E)#K!(!i`3!iJCd!!)'-!"")!!! "B!!!!#`$!!"!JJ#F1(m!!)#"!$JiS!!!5!!!!@!!!!#3!(i!!#`$rrp"JJ!m1(m !!)#"!$`iS!!!5!!!!@!!!!#3!(i!"#`$rrp"JJ!-1'!!!%J!!(3iI`!!J*i!!%J !!!&J!!!!J'%!1#`$!!""JJ!B1)!!!B'$!!+"M!"J5!!!!@!!!!#!B3!m,!-!!%' #!"JiJ!!"JB-!!S'-!'")!!!"B!!!!)"L!!#!!`!!,!!!!%##!"!iB!!-5!!!!8J !!!JiB2rrJ!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3""B!!!!S4A8 !N!9`!!!!-%9e!*!&G!!!!$K&G3#3"9%!!!"J4A8!N!9e!!!!I%9e!*!&G3!!!*a &G3#3"Am!!!$!4A8!N!94!!!!i%9e!*!&83!!!3"&G!-!N!3h!!!"#%9e!*!&0J! !!4a&EJ`%!!!!J3!!!!b!!*!,J!!"4"J!!!"&G`#3"Ai!N!4&D`!%!!!!JJ!!!(J !!!6B!!!FVh`)!UD6iIrmN!!"!!L8)Ir!1q-!!%J!!!&J!!!!1'!!!6L!!!%iS!! !10m!!%J!!!%X!`!!3B)!$$KJrrp)!!!SJ(m!!$L!!!&)!!!"B!!!!)"r!!3iJ!! !5!!!!@!!!!!iB!!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"B-!!!!84A8!N!9 q!!!!,%9e!*!&K!!!!%K&G3#3"B3!!!"B4@i-"!!!!)8!!!!-J!#3#i!!!(J)!!! !4AF!N!@#!*!%4@X!"!!!!)B!!!#)!!!&)J!!(90m#!+QNq(rr*!!!3!)P#(r`*! !B3"BN!#"!&b3!+%!B*!!`3"NN!$K!'L4!3"XN5%!F)"K!&K)!!!"B!!!!(ar'hP "JJ!d1(m!!)#"!&b!S3"JJ-%!C)$K!'L"!3"XJ5%!F)'I!!#"M!!85!!!!@!!!!" )!!!)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!9d!!!!-%9e!*!&83!!!'4 &EJ`%!!!!LJ!!!!b!!*!,J!!!L!J!!!"&G`#3"BB!N!4&D`!%!!!!L`!!!'`!!!@ q!!!H9(`)!UD6iIrmN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JJ')!!)#"!&K)!!! "B!!!!(ar'hP"JJ!N1(m!!)#"!&b!S3"JJCm!!S'-!!K)!!!"B!!!!%J!!!JiB2r rJ!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3@!!!!(%9e!*!&M!!!!#4&G3#3"9% !!!")4@i-"!!!!*)!!!!-J!#3#i!!!'`)!!!!4AF!N!@,!*!%4@X!"!!!!*-!!!" X!!!'%J!!(ZPm#!+QNq(rr*!!!3!)P#(r`*!!B3"BN!#"!&b3!+%!B)"L!!#!J3" B5!!!!@!!!!"mIaYj3B)!*$Kr!!#!J3"FJ+%!B)'I!!+"M!!-5!!!!@!!!!")!!! )1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!%&J!!!"a&G3#3"B`!!!!N4A8 !N!94!!!!5%9Z$!3!!!#@!!!!$)!!N!Z!!!"X#!!!!%9h!*!&N`#3"%9V!!3!!!# A!!!!C!!!"QB!!"q%I!J#TT2Krrb3!!%!#*3Krm#3!'%!@*!!J3"FJ')!!)#"!&K )!!!"B!!!!(ar'hP"JJ!J1(m!!)#"!&b"R`!#JB`!%%J!!!&J!!!!5!!!#$KJrrq !!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3""B!!!!B4A8!N!@-!!!!)%9e!*!&83! !!%"&EJ`%!!!!Q3!!!!b!!*!,J!!!C!J!!!"&G`#3"CF!N!4&D`!%!!!!QJ!!!-! !!!DX!!!Ikh`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#3!)%!A*!!S3"JJ')!!$L H!!")!!!"B!!!!(ar'hP"JJ"`1(m!!)#"!&b!S3"JJCm!!S'-!"4)!!!"B!!!!(a r'hP"JJ"-J')!!$LI!!!iS!!!5!!!!@!!!!!l``!!,"lrrd'#!!`iIJ!!5!!!+#` I!!""JJ!F1(m!!$L!!!'"R`!#JB`!B%J!!!&J!!!!1'$rri!"!%Ji)3"!I!J$TS2 Krrb$`Iri6S!!)%9d!`#3""B!!!!J4A8!N!@-!!!!+%9e!*!&83!!!%a&G!-!N!3 @!!!!A%9e!*!&G3!!!'K&G3#3"9%!!!#F4@i-"!!!!*X!!!!-J!#3#i!!!-!3!!! !4AF!N!@D!*!%4@X!"!!!!*`!!!!i!!!(+!!!)2Ym#!+QN!!"!!L8)Ir!N!"K!&J i!2rrN!!#!!#!BJ!!J)%!@%J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9c%!#3"#8 !!!!84A3$!*!%&J!!!"K&G3#3"Am!!!!J4@i-"!!!!*d!!!!-J!#3#i!!!$J!N!4 &G`#3"C`!N!4&D`!%!!!!RJ!!!33!!!G5!!!MDR`)!UD6iIrmNm(rq*1Krr56JIr `N!!"!!L8)Iq`N!"K!'L3!)%!E*!!S3"`N!$"!(5$iJ!!Jm)!!)1L!!#)(J!)I!! (G8'#!&4)!!!"B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!KmK!GdJCm !!%J!!!&J!!!!,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!!i!!!!N!!"!$L !BJ!!J)%!D%J!!!&J!!!!I(`EH8'#!$!iI!!!J)%!E)#K!(#!`3"d11!!!$N"!$L "R!!#JB`!)%J!!!&J!!!!5!!!#$KJrrq!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5 $JIr`6S!!)%9d!`#3""d!!!!X4A3$!*!%!J!!!$"&G!-!N!3h!!!!0%9e!*!&R`! !!%4&G3#3"9%!!!"`4A8!N!8f!!!!K%9d!`#3""B!!!#F4A8!N!@-!!!!T%9e!*! &83!!!04&EJ`%!!!!S`!!!!b!!*!,J!!""#!!!!"&G`#3"Ci!N!4&D`!%!!!!T!! !!33!!!I5!!!N2R`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq`N!"K!'L3!)% !E*!!S3"`N!$"!(53!1%!H*%"!(b$iJ!!Jm)!!)1L!!#)(J!)I!!(G8'#!&4)!!! "B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!KmK!GdJCm!!%J!!!&J!!! !,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!#!BJ!!J)%!D%J!!!&J!!!!I(` EH8'#!$!iI!!!J)%!E)#K!(#!`3"dJ1%!H)%"!(b"R!!#JB`!)%J!!!&J!!!!5!! !#$KJrrq!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9d!`#3""d!!!! d4A3$!*!%!J!!!$K&G!-!N!3h!!!!2%9e!*!&R`!!!%a&G3#3"9%!!!"i4A8!N!8 f!!!!M%9d!`#3""B!!!#F4A8!N!@-!!!!T%9e!*!&83!!!04&EJ`%!!!!TJ!!!!b !!*!,J!!""#!!!!"&G`#3"D3!N!4&D`!%!!!!T`!!!83!!!KB!!!P*A`)!UDr!Ir JN!!"!!L8)Iq3!*!!B3#)1i3!!*!!S3#3!)2L!!#$`J!!Jk)!!)JH!!Km!!Ge3B) !9%J!!!&J!!!!,!-!!%##!$#!(`!!+!!!!%'#!$!iB!!*L*i!#(b%"h5"R`!!5!! !!@!!!!!X!`!!3B)!%$KJ!!4)!!!"5!!!$$J!!!#3!"d!!)"L!!#!J3#)5!!!!@! !!!"mHaYj3B)!P$KK!$L!R!!)J,`!$%J!!!&J!!!!J!%!2#J!!!""JJ"31(X!!)# "!$b!S3"!J-%!N!#!r!!!14`!")'E!!+"M!!J5!!!!@!!!!!l!`!!N`%!3$YB!!! iB3!i1)$rrdJ!!!&J!!!!1(S!!%J!!#`iB!!-5!!!!6XM!!!iB3!i1)$rrdJ!!!& J!!!!1(N!!%J!!!JiB2rrJ!%!H$JK!("m#!1QZ`(ri%k!!#"&G!-!N!3G!!!!(%9 d!`#3"!)!!!!J4A3$!*!%0`!!!#4&G3#3"Cm!!!!d4A8!N!94!!!!B%9e!*!&0J! !!(4&G!-!N!3@!!!!K%9e!*!&M!!!!)a&G3#3"DJ!!!#S4A8!N!94!!!!h%9e!*! &U3!!!2K&G3#3"6B!!!%-4A8!N!@T!!!"(%9Z$3)!!!#r!!!!')!!N!G!!!$J!1! !%!%3!4!!%!!!JJ!!1!#3"%9f#J`!!!$!!!!!&%9Z$!3!!!$"!!!!$)!!N!d"4!# 3"%9h!*!&T`#3"%9h$3#3",m!!!!)4@S!"!!!!-)!!!#!!!!)iJ!!*Xjm#!+QNq( rr*!!!3!)P#(r`$[M!!!X(rrr3))!8)"L!!#!!`!!,!!!#d'#!%"!J!!3,!!!"%' #!$4)!!!8,!!!*N#!!!`X!!!N3)!!))"L!!#)!`!1+!!!!%'#!"!iB!!05!!!!@! !!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3h!!!!(%9d!`#3"!)!!!" -4A8!N!A$!!!!B%9Z$!3!!!$&!!!!$)!!N!Z!!!#!#!!!!%9h!*!&`J#3"%9V!!3 !!!$'!!!"2!!!#53!!#I0I!J#TVmKrq53!!%!#*3Krj!!N!"K!)L3!)%!M*!!S3# 3!)2L!!#$`J!!Jk)!!)JH!!Km!!Ge3B)!9%J!!!&J!!!!,!-!!%##!$#!(`!!+!! !!%'#!$!iB!!*L*i!#(b%"h5"R`!!5!!!!@!!!!!X!`!!3B)!%$KJ!!4)!!!"5!! !$$J!!!#3!"d!!)"L!!#!J3#)5!!!!@!!!!"mI"Yj3B)!M$KK!$L!J3#-J+%!N!" )!!!"B!!!!)!"!$`S!!!!3B)!5$Km!!#!J3!mJ+%!3)'F!!+"M!!F5!!!!@!!!!! l)`!!Nb%!3%J!!!%lB`!!1'%!1$L!rrp)!!!"B!!!!$Kl!!")!!!X1'!!$%J!!!% l3`!!1'%!1$L!rrp)!!!"B!!!!$Kk!!")!!!)1'$rri!"!(Ji)3"`I!J$TVXKrq4 1J!!J4A3$!*!%(3!!!"a&G!-!N!3#!!!!)%9d!`#3"$F!!!!N4A8!N!@I!!!!0%9 e!*!&83!!!'"&G3#3"6B!!!"d4A3$!*!%&J!!!)4&G3#3"B`!!!#-4A8!N!A(!!! !U%9e!*!&83!!!0"&G3#3"F)!!!$J4A8!N!A)!!!!m%9e!*!&0J!!!34&G3#3"FJ !!!%84@i0!J!!!-`!!!!BJ!#3"cJ!!03!j!!3!3J"#!!3!!##!!!i!*!%4AB+$!! !!-d!!!!84@i-"!!!!-i!!!!-J!#3$3%m!*!%4AF!N!A'!*!%4AF0!*!%c!!!!!K &D`!%!!!!c`!!!3!!!!QZ!!!T#(`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq `N!"K!'L3!)%!E*!!S3"`N!$"!(5$iJ!!Jm)!!)1L!!#)(J!)I!!(G8'#!&4)!!! "B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!KmK!GdJCm!!%J!!!&J!!! !,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!#!BJ!!J)%!D%J!!!&J!!!!I(` EH8'#!$3iI!!!J)%!E)#K!(#!`3"d11!!!$N!!!#"R!!#JB`!*%J!!!&J!!!!5!! !!8J!!!JiB2rrJ!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrdJi(rm%k!!#"&G!-!N!3 G!!!!,%9d!`#3"!)!!!!`4A3$!*!%0`!!!$4&G3#3"Cm!!!"%4A8!N!94!!!!F%9 e!*!&0J!!!)4&G!-!N!3@!!!!P%9e!*!&M!!!!*a&G3#3"9%!!!$-4A8!N!A#!!! !e%9Z$!3!!!$3!!!!$)!!N!Z!!!%!)!!!!%9h!*!&c`#3"%9V!!3!!!$4!!!"#!! !#KJ!!#RHI!J#TT2Krrb6`IriNk(rp*1"rr#3!!%!#*3Krl#3!'%!D*!!J3"XN!# K!(#3!-%!G*!!i3"iN3%!I)2L!!#$`J!!Jk)!!)JH!!Km!!Ge3B)!9%J!!!&J!!! !,!-!!%##!$#!(`!!+!!!!%'#!$!iB!!*L*i!#(b%"h5"R`!!5!!!!@!!!!!X!`! !3B)!%$KJ!!4)!!!"5!!!$$J!!!#3!"d!!)"L!!#!J3"S5!!!!@!!!!"mI"Yj3B) !0$Km!!#!J3"XJ+%!F)$"!(5!i3"iJ3%!I)'F!!+"M!!N5!!!!@!!!!")!!!"5!! !#$KJrrq!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9d!`#3""d!!!! d4A3$!*!%!J!!!$K&G!-!N!3h!!!!2%9e!*!&R`!!!%a&G3#3"9%!!!"i4A8!N!8 f!!!!M%9d!`#3""B!!!#F4A8!N!@-!!!!T%9e!*!&83!!!04&G3#3"F)!!!$F4@i -"!!!!03!!!!-J!#3#i!!!3JJ!!!!4AF!N!A4!*!%4@X!"!!!!08!!!&)!!!+RJ! !+ZKm#!+Q[`(ri*!!!3!)P#(rN!#3!'%!L$Z%!!#3!+%!N!#$iJ!!Jm)!!)1L!!# )(J!)I!!(G8'#!&4)!!!"B!!!!#`$!!"!JJ!`J"m!!#J!!!""JJ!`1'!!#BLH!!K mK!GdJCm!!%J!!!&J!!!!,!-!!%'#!"!iB!!%5!!!!8J!!!`i!!!!N!!G!!#!BJ! !J)%!L%J!!!&J!!!!I(XEH8'#!*JiB3!iJ*`!#)#m!!a)!!!"B!!!!)!"!$`S!!! !3B)!9$Kl!!#!J3!mJ+%!3)$"!*!!J2`!!)%F!!5"Q`!#JB`!*%J!!!&J!!!!1`- !!*-"!%")!!!"1d-!!$KK!$JiJ2rr5!!!!@!!!!!iHJ!!5!!!,$KJ!!a)!!!"1b- !!$KK!$JiJ2rr5!!!!@!!!!!iH3!!5!!!#$KJrrq!!3"i1#%!F(`)!kDl!IrJ6S! !)%9d!`#3""d!!!!F4A3$!*!%!J!!!#"&G!-!N!3h!!!!*%9e!*!&R`!!!$4&G3# 3"9%!!!"J4A8!N!8f!!!!G%9d!`#3""B!!!#%4A8!N!@-!!!!M%9e!*!&a`!!!+K &G3#3"9%!!!$F4A8!N!A#!!!!l%9e!*!&b!!!!2a&G3#3"6B!!!%34A8!N!A)!!! ")%9Z$3)!!!$@!!!!')!!N!G!!!$J!2!!%!%8!43!%!!!JJ!!1!#3"%9f#J`!!!$ 0!!!!&%9Z$!3!!!$A!!!!$)!!N!d"5!#3"%9h!*!&e3#3"%9h$3#3"0B!!!!)4@X !"!!!!0J!!!%)!!!,+!!!,-"m#!+Q[f(rl*!!!3!)P#(rS$YM!!!i!!!!Q!%!1MJ !!!#B!3!j1!!!!*J"!$Jl`!!!1k!!!)"L!!!iQ`!!5!!!!@!!!!!S!`!!3))!%$K J!!P)!!!"5!!!S)"L!!!iQ`!!5!!!!@!!!!!lJ`!!1r`!!+JF!!a8!!Ir3B)!#$[ "!$US(`!-9!!([8'#!!JlS3!j1(`!!$LH!!!i[3!!1-!!!)'F!!+"M!"B5!!!!@! !!!!X!`!!3B)!2)J"!$NS!!!!3B)!&)"r!!BiJ!!#5!!!!@!!!!#)!3!k+!!!!%' #!"5!I`!'1)!!!8J!!!&J!!!!1'!!!)!"!'Ji)3"JI!J$TVYKrqa1J!!J4A3$!*! %&J!!!$4&G3#3"B`!!!!m4A8!N!8f!!!!8%9d!`#3""B!!!"B4A8!N!@-!!!!B%9 e!*!&83!!!+K&G3#3"GN!!!$-4A8!N!AC!!!!k%9Z$!3!!!$j!!!!$)!!N!Z!!!% )+!!!!%9h!*!&f!#3"%9V!!3!!!$k!!!'#!!!$!`!!#pVI!J#TVi"rm#3!!%!#*3 Krf!kJ`!!1b3!!$Y&!!!lCJ!!1JF!!),L!!##SJ!!JX)!!$TJ!!!iB3"31)!!!$L J!!K)!!!"B!!!!$KK!%JiJ!!!1+!!#%J!!!&J!!!!1'%!3$L!!!!iS!!)5!!!!@! !!!!S%!!!3B)!))"`!!3i!%%DI'-$eS!3!!!F!!!mIN-#&%J!!!`q3(Ff1P+8!%J !!!&J!!!!1L-!!$[J!!")!!#B+"N!!%'#!#!iB!!"9q!'rRaJ!$"AiqMkI(NB,R` !'$P!JJ"-+"S!!%'#!#!iB!!"9q!'rRaJ!$"AiqMkI(SB,R`!'$P!JJ!S+"X!!%' #!%3iB!!"9q!'rRaJ!$"AiqMkI(XB,R`!'$P"JJ!S1(8!!$LI!!")!!!"B!!!!#J $!!"!JJ!31'!!#8J!!!&)!!5i1rm!!A`IS!""J2pS1q!!!%J!!23iG3!!1*m!!%J !!!&J!!!!I(JEH8'#!0Ji!!!!+"N!!%'#!#3iB!!"9q3'rRaN)$"AiqMkI(NB,Rb $'$P"JJ!)1!!!!CJ"!$ii!!!!+"S!!%'#!#3iB!!"9q3'rRaN)$"AiqMkI(SB,Rb $'$P"JJ!)1!!!!CJ"!$di!!!!+"X!!%'#!#3iB!!"9q3'rRaN)$"AiqMkI(XB,Rb $'$P"JJ!)1!!!!CJ"!$b)!3!q+!!!!%##!"b)!3!p+!!!!%##!"#)!3!m+!!!!%' #!#3iH!!!L)%!2SLK!$f)`3!mJCJ!!S'-!&4)!!!"B!!!!$[r!!&m(k!!3B$r$$[ J!!")!!')1(8!!$LI!!")!!!"B!!!!(ai'hP"JJ&X1!!!!*J"!$ii!!!!Q!%!26J !!!#B!3!m+"N!!%'#!#Ji!!!"9q-'rR`$'$"Ai1MkI"N!,RaJ!$P"JJ!-1m%!2NJ !!!Jl`!!!+"S!!%'#!#Ji!!!"9q-'rR`$'$"Ai1MkI"S!,RaJ!$P"JJ!-1k%!28J !!!JlS!!!+"X!!%'#!#Ji!!!"9q-'rR`$'$"Ai1MkI"X!,RaJ!$P"JJ!-1i%!2%J !!!JlJ!!!+"i!!%##!"3S(3!!3))!$#JF!!""JJ#X1(J!!$LH!!!i[3!!10`!!)' B!!+"M!"B5!!!!@!!!!"qFaS8L!%!2LJ!!!""JJ!N9q$SqMKK!&"m``!Z1)!!!9I P"[jmK#J`I-3MH(b$!5k)!3!p+!!!!%'#!#4Ai1Mk1'%!5(c$!#iiJ!!"9q8'rRb %+$"ma#0iI)-",SJ"!$`S!!!!3B)!*&IJk2SiB3"!I--!,ML!!!&Aj3EqI)3S-(c %)hKmJ`%Z1rm!!A`IS!""J2ji,"-!!%##!,#!&J!!N!!"!$Ji!!!!N!!@!!")!!! "B!!!!#`$!!"!JJ!XJ"F!!#J!!!""JJ!X1'!!!6L5!!#"P`!!5!!!!@!!!!!X!`! !3B)!%$KJ!!4)!!!"5!!!$$J!!!#3!"B!!)!@!!!X!!!!3B)!)$TJrrq!&J!!,!! !!%##!$L!!3!iN!!@!!")!!!XJ"B!!#`!!!"!JJ!-J!%!1*!!&J!!5!!!!@!!!!" m%4K3I!#3!%""J2fm1q!!!%J!!23iG3!!1*m!!%J!!!&J!!!!I(JEH8'#!0Ji!!! !+"N!!%'#!#3iJ!!"9q-'rRb%'$"AiqMkI(NB,Rb$'$P"JJ!)1!!!!CJ"!$ii!!! !+"S!!%'#!#3iJ!!"9q-'rRb%'$"AiqMkI(SB,Rb$'$P"JJ!)1!!!!CJ"!$di!!! !+"X!!%'#!#3iJ!!"9q-'rRb%'$"AiqMkI(XB,Rb$'$P"JJ!)1!!!!CJ"!$b)!3! q+!!!!%##!"b)!3!p+!!!!%##!"#)!3!m+!!!!%'#!#3iH!!!L)%!2SLK!$f)`3! mJCJ!!S'-!&a)!!!"B!!!!$[r!!&m(k!!3B$r$#`6!!"!J!!31'!!"%J!!!&)!!" 3+"N!!%'#!"5!B3"3J!%!9*!!H3!!N!!C!!3S'J!!3B)!&)"K!%L!!3"-N!"k!!# 3!"S!"#JE!!""JJ!8J'%!3)!"!%53!(X!!*!!'`!%1(-!!)!"!+Ji)3#JI!J$TVS "rm"1J!!J4A3$!*!%(3!!!#4&G!-!N!3@!!!!+%9d!`#3"$F!!!!X4A8!N!Al!!! !3%9e!*!&q`!!!&4&G3#3"IX!!!"S4A8!N!Am!!!!R%9e!*!&M!!!!54&G3#3"6B !!!%i4A8!N!@-!!!"A%9e!*!&83!!!MK&G3#3"B`!!!*F4A8!N!94!!!$4%9e!*! &R`!!!rK&G3#3"9%!!!3J4A8!N!8f!!!%0%9e!*!&r!!!")"&G3#3"B`!!!5N4A8 !N!94!!!&J%9e!*!&0J!!"D"&EJd#!!!"%J!!!"+!!*!(J!!$r!3i!!S!!))!!$J !N!C&GJS-!!!"%`!!!!j&EJ`%!!!"&!!!!!b!!*!0"JJ!N!4&G`#3"IS!N!4&G`d !!!!"%J!!!!K&D`#%!!!"&3!!!'L!!*!(I!J#TT2Krrb3!!%!#*3Krm"mIaYjX)% !AN'#!$L!BJ!!J!-!!#`!!!"!JJ!3J"m!!)"L!!#3!!-!!+J"!&iX!!!!3)%!%$K r!!")!!!"B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"$F!!!!F4A3 $!*!%0`!!!$"&G3#3"!%@!!!!5%9Z$!3!!!%A!!!!$)!!N!Z!!!"S#!!!!%9h!*! %!48!N!4&D`!%!!!"'!!!!'`!!!l3!!!hYA`)!UD6iIrmN!!"!!L8)Ir!N!"K!&L 3!)%!A*!!S3"JJ')!!)#"!&K)!!!"B!!!!(ar'hP"JJ!N1(m!!)#"!&b!S3"JJCm !!S'-!#K)!!!"B!!!!%J!!!JiB2rrJ!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3 @!!!!(%9e!*!&M!!!!#4&G3#3"9%!!!")4@i-"!!!!4N!!!!-J!#3#i!!!'`)!!! !4AF!N!3"'!#3"%9V!!3!!!%D!!!!E!!!$b3!!$K+I!J#TT2Krrb3!!%!#*3Krm# 3!'%!@*!!J3"FN!#K!'#!BJ!!J)%!@%J!!!&J!!!!I(mEH8'#!#3iI`!!J)%!A)# K!'#"R`!#JB`!,%J!!!&J!!!!5!!!#$KJrrq!!3")1#%!3(`)!kD$iIrm6S!!)%9 d!`#3""B!!!!F4A8!N!@-!!!!*%9e!*!&83!!!%K&EJ`%!!!"'`!!!!b!!*!,J!! !E!J!!!"&G`#3"!%D!*!%4@X!"!!!!)3!!!"N!!!2H!!!10pm#!+QNq(rr*!!!3! )P#(r`*!!B3"BN!#"!&b!BJ!!J)%!@%J!!!&J!!!!I(mEH8'#!#!iI`!!J)%!A)' I!!+"M!"35!!!!@!!!!")!!!)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*! %&J!!!"K&G3#3"B`!!!!J4A8!N!94!!!!3%9Z$!3!!!%G!!!!$)!!N!Z!!!"N#!! !!%9h!*!&K!#3"%9V!!3!!!%H!!!!A!!!$li!!$P*I!J#TT2Krrb3!!%!#*3Krm# 3!'%!@)"L!!#!J3"B5!!!!@!!!!"mIaYj3B)!()"L!!!iR`!!1+!!!%J!!!&J!!! !5!!!#$KJrrq!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3""B!!!!84A8!N!@-!!! !(%9d!`#3""B!!!!X4A8!N!9e!!!!1%9Z$!3!!!%I!!!!$)!!N!Z!!!"F#!!!!%9 h!*!%!4i!N!4&D`!%!!!")!!!!*`!!!rf!!!jTR`)!UD6iIrmNm(rq*1Krr53!!% !#*3Krl#3!'%!D$ZN!!#$iJ!!1(m!!)#"!'K)!!!"B!!!!(aq'hP!JJ!-1'$rrdJ !!%!iI`!!1*d!!%J!!!&J!!!!+!-!!%'#!"3iI`!!1*d!!%J!!!&J!!!!1(m!!$L H!!!i[3!!5!!!!@!!!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J4A3$!*! %&J!!!#"&G3#3"B`!!!!X4A8!N!@-!!!!6%9e!*!&I`!!!'4&G3#3"A8!!!"i4@i -"!!!!5)!!!!-J!#3#i!!!*`B!!!!4AF!N!3")!#3"%9V!!3!!!%M!!!!E!!!%&` !!$U-I!J#TT2Krrb3!!%!#*3Krm#3!'%!@*!!J3"FN!#K!'#!BJ!!J)%!@%J!!!& J!!!!I(mEH8##!!`iB2rr5!!!)$Kr!!#!J3"FJ+%!B)'I!!+"M!!m5!!!!@!!!!# !!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3""B!!!!F4A8!N!@-!!!!*%9e!*!&83! !!&"&EJ`%!!!"*J!!!!b!!*!,J!!!E!J!!!"&G`#3"!%M!*!%4@X!"!!!!5F!!!" m!!!3`!!!1bGm#!+QNq(rr*!!!3!)P#(r`*!!B3"BN!#"!&b3!+%!B*!!`3"NN!$ K!'L!BJ!!J)%!@%J!!!&J!!!!I(mEH8'#!#`iI`!!J)%!A)#K!'#!`3"NJ1%!D)' I!!+"M!!`5!!!!@!!!!")!!!)1'$rri!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*! %&J!!!#4&G3#3"B`!!!!X4A8!N!94!!!!@%9Z$!3!!!%X!!!!$)!!N!Z!!!"m#!! !!%9h!*!%!5F!N!4&D`!%!!!",3!!!(`!!"%`!!!lfR`)!UD6iIrmN!!"!!L8)Ir !N!"K!&L3!)%!A*!!S3"JN!$"!'53!1%!D)"L!!#!J3"B5!!!!@!!!!"mIaYj3B) !,$Kr!!#!J3"FJ+%!B)$"!'5!i3"SJCm!!S'-!$4)!!!"B!!!!%J!!!JiB2rrJ!% !5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3@!!!!*%9e!*!&M!!!!#a&G3#3"9%!!!" B4@i-"!!!!5i!!!!-J!#3#i!!!(`)!!!!4AF!N!3",3#3"%9V!!3!!!%[!!!!A!! !%D!!!$bD9'!'2L`!!!*"JJ!m3)!!&#`!!!""JJ!B3)!!)%k!!#!X!!!%6)!!)%J !!#L!SJ!!N!#&!!"1J!!JJ+)!!*!!K3!!6S!!))#L!!#3!)8!!%k!!##!SJ!!N!# &!!"1J!!J4A3$!*!%(3!!!#a&G!-!N!3I!!!!1%9d!`#3"#%!!!"%4A3$!*!%)J! !!&"&D`!%!!!"0`!!!'3!!"(i!!!phP4J"MiX!!!#3B)!2%#!!"3X!!!!3B)!'%# !!#")!!"!,!!!"%#!!$K)!!!SJ))!!)"N!!"1J!!JJ))!!)"N!!"1J!!JJ))!!)" N!!"1J!!JJ))!!)"N!!"1J!!J1'!!!%k!!#"&G!-!N!3G!!!!,%9d!`#3""m!!!! i4A3$!*!%)3!!!%4&G!-!N!3L!!!!8%9V!!3!!!%i!!!!C!!!%N)!!$mFNq(rr*! !BJ!!1!!!!,!#!!!li!!!5!!!1)##!!"ri!Fd9!!31R`%!#iS!!!!3B)!(+LL!!! iJ!!"Iq!(0(b!!$"mS!0iX!)!!$[r!!&ri!Fd,!!!%%'!rm3iB!!!Jq(rr%k!!#" &Fa!!N!3M!!!!"%9c%!#3"#3!!!!-4A-3!*!%)`!!!"K&Fa!!N!3N!!!!-%9c%!# 3"#3!!!"%4@X!"!!!!6X!!!!)!!!5NJ!!2p+!BJ!!6S!!)%9c%!#3"#-!N!4&D`# %!!!!G!!!!'3!!"+Q!!"!e(`)!UD6iIrmN!!"!!L8)Ir!I(mEH8'!!#!X(`!83)! !')"L!!"Ai"!kI!-!,LJ!!!"!JJ!81'!!&NJ!!!%iB!!!5!!!%)"L!!"Ai"!kI'- !,S!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!!!!!6`!!!!J4A8!N!8f!!!!1%9d!`! !!!%m!!!!4%9Z$!3!!!&"!!!!$)!!N!Z!!!"N#!!!!%9h!*!&G!#3"%9V!!3!!!& #!!!!1!!!%Z!!!%'8I!J#TT!!!3!)P#(r`)"L!!#)!`!!+!!!!%'#!"#!BJ!!5!! !!@!!!!#!!3")1#%!3(`)!kC1J!!J4A3$!*!%,J!!!!a&G!-!!!!"23!!!"a&G3# 3"!&$!!!!)%9Z$!3!!!&%!!!!$)!!N!Z!!!!i!*!%4AF!N!3"3J#3"%9V!!3!!!& &!!!!N!!!!"--!!""ih`)!UD6iIrmNm(rq*1Krr53!!%!#*3Krl!l``!!I*dMHB2 L!!#!!J!!N!!$!!""JJ!3J')!!&HJ%$Tr``%ZJ')!!)J$!!!S!!!!3B)!+)!I!!! S!!!!3))!()!I!!3S!!!!3))!%$Kr!!")!!!"B!!!!$Kq!!#!!3"B1#%!8(`)!kD $iIrmJm(rq)1Krr41J!!J4A3$!!!!!6d!!!!J4A3$!!!!!8B!!!!N4A3$!!!!!6` !!!!`4A3$!*!%,J!!!$a&G3#3"!&(!!!!D%9Z$!3!!!&)!!!!$)!!N!Z!!!#3!"J !!!"&G`#3"!&&!*!%4@X!"!!!!8N!!!"8!!!6A!!!3k0m#!+QNq(rr*!!!3!)P#( r`(ar'hQ`J3"H3B)!*)!#!!#3!"m!!+J"!&iX!!!!3)%!%$Kr!!")!!!"B!!!!$K r!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`!!!!&'!!!!(%9e!*!%!4B!!!!d4@i -"!!!!8S!!!!-J!#3#i!!!&3)!!!!4AF!N!3"53#3"%9V!!3!!!&,!!!!+!!!%hi !!%3%I!J#TT!!!3!)P#(r`$KJ!#e)!!!"1'!!!)!"!%Ji)3"!I!J$TNk!!#"&G3# 3"6B!!!!34@i-"!!!!8`!!!!-J!#3#i!!!#J!N!4&G`#3"!&,!*!%4@X!"!!!!8d !!!!N!!!6QJ!!4(0m#!+QN!!"!!L8)Ir!1'!!,8J!!!'!!3")1#%!3(`)!kC1J!! J4A8!N!8f!!!!%%9Z$!3!!!&1!!!!$)!!N!Z!!!!N!*!%4AF!N!3"63#3"%9V!!3 !!!&2!!!!*!!!%lB!!%60I!J#TT!!!3!)P#(r`$KJ!#e)!!!"J!%!5$JK!%"m#!1 Q6S!!)%9e!*!&0J!!!""&EJ`%!!!"8!!!!!b!!*!,J!!!*!#3"%9h!*!%!8m!N!4 &D`!%!!!"83!!!!3!!"25!!"&0%k!!#"&DJ!%!!!"8J!!!#J!!"2Q!!"&S(`)!UD 3!!%!#*3Krm#!BJ!!5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A3$!!!!!9-!!!! -4A8!N!3"9!!!!""&EJ`%!!!"93!!!!b!!*!,J!!!+!#3"%9h!*!%!9)!N!4&D`! %!!!"9J!!!%!!!"3+!!"&cR`)!UD6iIrmN!!"!!L8)Ir!1q-!!)"L!!")!!!"B!! !!$J!!!'B(`%!1(m!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A3$!!!!!9F!!!!84A8 !N!3"@!!!!"K&EJ`%!!!"@3!!!!b!!*!,J!!!3!J!!!"&G`#3"!&@!*!%4@X!"!! !!(8!!!#d!!!80!!!4Kam#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$ZM!!! la!!!I,`VH8'!!!`X(!"!3B!!%$KJ!"C)!!!"5!!!@$[m!!")!!!mIq!(0&3!%$T m(3!Z+!!!!%##!#4ri!Fd9!!31RrG!5kSIJ!!1!-!!E!H!!"ri`Fd5!!!($[r!!& ri!Fd,!!!3%'!rm!iB!!B5!!!!B!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp)1"rr" 1J!!J4A8!N!8f!!!!1%9e!*!&0J!!!*!!4@i-"!!!!9X!!!!-J!#3#i!!!,3J!!! !4AF!N!9e!*!%4@X!"!!!!(m!!!#`!!!8Z!!!4cjm#!+QNq(rr*2"rrL6SIrdN!! "!!L8)Iq`1k-!!$[N!!")!!!","m!!%'!!"`X(`"!3)!!&&IJ%$Trh3!Z+"i!!%# #!"!iB!!*5!!!!8J!!%JiB!!!9q!31Rap!5kSIJ!!1!2rrl!H!!"m!!Fe3))!*#` H!!""JJ!F1(i!!$L!!!'"RJ!#JB`!B%J!!!&J!!!!1'!!!)!"!&Ji)3"3I!J$TS2 Krrb$`IriJk(rp%k!!#"&G3#3"A!!!!!J4A8!N!8f!!!!5%9e!*!&83!!!)K&EJ` %!!!"A!!!!!b!!*!,J!!!X"J!!!"&G`#3"Am!N!4&D`!%!!!!M!!!!(3!!"8Q!!" )*(`)!UD6iIrmNm(rq*1Krr53!!%!#*3Krl!lS`!!1q3!!%J!!!%X(`!!3B!!(#` I!%"!J!!89q!31RrG!#iS(J!!3))!&$KJ!!P)!!!"1'!!!%J!!!JiIJ!!J!%!@$J K!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9e!*!&F!!!!#"&G3#3"6B!!!")4@i-"!! !!9d!!!!-J!#3#i!!!(3B!!!!4AF!N!@-!*!%4@X!"!!!!9i!!!#N!!!9K!!!540 m#!+QNq(rr*2"rrL3!!%!#*3Krm"mIKYjX)%!AN'#!'b!BJ!!5!!!!@!!!!!i!!! !Q"i"!)"L!!")!!!"B!!!!$[J!!")!!!N9q!31R`H!#iS!!!!3B)!%$Kr!!")!!! "B!!!!$[r!!%X(`"!3B$rh+J"!&iX!!!!3)%!%$Kq!!")!!!"B!!!!$Kq!!#!!3" )1#%!3(`)!kD$iIrmJm(rq%k!!#"&G!-!!!!"8`!!!#"&G3#3"!&8!!!!*%9d!`! !!!&I!!!!0%9e!*!%!93!!!!i4A8!N!3"B!!!!&a&G3#3"!%@!!!!J%9Z$!3!!!& K!!!!$)!!N!Z!!!#N%!!!!%9h!*!%!9i!N!4&D`!%!!!!R`!!!&`!!"A8!!",0A` )!UD3!!%!#*3Krm#!!J!!,!!!!%'#!$4)!!!"B!!!!)!#!!"m!`"!3)%!)$J!!!# 3!!)!!$KJ!!j)!!!"B!!!!$KJ!!&)!!!)1'!!!)!"!%Ji)3"!I!J$TNk!!#"&Fa! !!!!"BJ!!!!a&G3#3"I`!!!!B4A-3!!!!!@)!!!!J4A-3!!!!!@)!!!!`4A8!N!A $!!!!1%9Z$!3!!!&M!!!!$)!!N!Z!!!"F!*!%4AF!N!@I!*!%4@X!"!!!!@3!!!# 8!!!@#!!!5m0m#!+QNq(rr*2"rrL3!!%!#*3Krm!l``!!J!)!!#`!!!""JJ!J5!! !!@!!!!#!!J!!I'!B8$J!!$ari`1@5!!!#$[J!!!S(J!!3B)!'%J!!!&J!!!!("i !2(`!'K4)!!!)1!!!!*!!!J!!,"m!!%#!!!`iB!!!5!!!#$Kr!!#!!3")1#%!3(` )!kD$iIrmJm(rq%k!!#"&Fa!!!!!"BJ!!!"K&G3#3"I`!!!!N4A-3!!!!!@)!!!! X4A8!N!Am!!!!6%9c%!!!!!&L!!!!C%9Z$!3!!!&R!!!!$)!!N!Z!!!#8%!!!!%9 h!*!%!@3!N!4&DJ!%!!!"D!!!!0`!!"Bi!!"-P(`)!UD6iIrmNm(rq*1Krr56JIr `N!!"!!L8)Iq`N!"K!'L$`J!!Jk)!!%J!!!&J!!!!J!%!D(rJ'K4)!!!",!-!!%# #!$5!(J!!+!!!!%'#!$4)!!!"B!!!!(b$q&!iB!!)JCi!!%J!!!&J!!!!,!-!!%' #!"!iB!!%5!!!!8J!!"`i!!!!N!!G!!")!!!"B!!!!(`I'%""JIqN5!!!!@!!!!" mIaK31!!!2(q$!jG!J!!-1'!!!%J!!!JiI!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL $SIrdJi(rm%k!!#"&G!-!N!3G!!!!)%9d!`#3"$F!!!!N4A8!N!Am!!!!+%9e!*! &R`!!!$K&G3#3"I`!!!"34A8!N!94!!!!C%9e!*!&0J!!!(K&G3#3"I`!!!#)4A8 !N!Am!!!!Q%9Z$!3!!!&V!!!!$)!!N!Z!!!$F)!!!!%9h!*!%!@J!N!4&D`!%!!! "E!!!!$J!!"D1!!"0LA`)!UD3!!%!#*3Krm#3!'%!@)!"!&JF!!!$2'!!!6KM`e" mB"Z@5!!!!B!"!%Ji)3"!I!J$TNk!!#"&G3#3"!&S!!!!*%9Z$!3!!!&Z!!!!$)! !N!Z!!!!i!*!%4AF!N!3"E!#3"%9U!!3!!!&[!!!"(!!!&X!!!&%(I!J#TVl"rpL 3!!%!#*3Krj!!1q-!!$YJ!!#J!`!!,!!!!d'#!"#J(`!!,!!!"8##!0LJ(`!19!! &ld'#!-b!(`!#9"R'2U!I!!j8!!3XI"V,H$J!!!#3!!%!1$[!!!!iB!!Q5!!!!@! !!!"mI4Yj3))!2$KJ!"C)!!!"B!!!!$L!!#")!!!"B!!!!$V$!!!mB%Y$1*B!!$K M5&*)!!!"B!!!!$[$!!#$S`!!+"d!!%'#!$3iI3!!1*S!!$LK!$K)!!!"B!!!!$Z $!!!S(J!!3B)!'$Kq!!")!!!"B!!!!%J!!!L$R`!#9jJ'2PH!!Kjm&iC`,"J!,N' #!!`X&`!Z3))!#$YJ!!%iH`!!J!%!H$JK!("m#!1QZX(rf%k!!#"&G3#3"!&`!!! !B%9e!*!%!A!!!!"d4A8!N!3"F3!!!)"&G3#3"!&b!!!!Q%9e!*!%!A-!!!#m4A8 !N!9'!!!!e%9Z$!3!!!'&!!!!$)!!N!Z!!!%F8!!!!%9h!*!%!@m!N!4&D`!%!!! "KJ!!!&`!!"IQ!!"@GR`)!UD6iIrmN!!"!!L8)Ir!5!!!!@!!!!#$i`!#5!!!)$K r!!C)!!!"9'!'2d'#!!`iB!!"5!!!&)2r!!!S(`!!3),ri$KJ!!#!!3")1#%!3(` )!kD$iIrm6S!!)%9e!*!%!BF!!!!34A8!N!3"E`!!!#4&EJ`%!!!"N`!!!!b!!*! ,J!!!A!J!!!"&G`#3"!''!*!%4@m&"!!!!C3!!!!%!!!!!`!!9fB!!!!"4@X!"!! !!CJ!!!+i!!!B-!!!9jCm#!+Q[b(rj*!!!3!)P#(rN!!l)`!!1d3!!)1#!!#$`J! !L!)!!(`!"h9!JJ!81!!!!CJ#!!!i!!!"Q!)!!$ZJ!!DS!J!!B"Z%!SJH!!`S!!! !3))!$$Kq!!")!!!"L!)!!#J!!!""JJ"39b!'2LJ!!!P!JJ!-1rS!!%J!!!b!BJ! !Jq-!!)!F!!"m!2S8N!!F!!#!(!!!9!!'rR`!q!"!J!!-1'!!)%J!!!L!I!!!5!! !!@!!!!")!!!"9'!'2d##!G#!BJ!!J!-!!#`!!!"!JJ!`L!)!!#J!!!""JJ!NL"i !$bJ!!!"!JJ!3U!)!!'!E"!")!!!-1'!!!%J!!DaA)!Bq,!!!#%'#!#"!J!!3,!! !!8'#!"4)!!!F,!!!#N#!!"4)!!!-I"VS!%#!!!JlS!!!1(X!!$L"!$Ji[3!!1-! !!%J!!!&J!!!!9'!'2d'#!05J!3!i,!!!$d'#!'a!J!!3,!!!!8'#!"4)!!#i,!! !&d'#!(K)!!#XJ!)!!#J!!!""JJ!8J')!!)!$!!3S!!!!3))!N!#!B3"#1)%!5%J !!!&J!!!!I'!(0#`!!!*!JJ"d1'%!1)#"!%K)!!!"B!!!!%J!!'#!!3!k9!!(rd' #!"!i!!!"Q!)!!%J!!%Ji!!!!Q!)!!%J!!$b!!J!!+!!!!%'#!"5!BJ!!J!-!A#J !!!"!JJ!JJ')!!)J$!!!S!!!!3B)!%$KK!$K)!!!"B!!!!+#"!$Ji!!!!9!!%2MK Jrrpm!#!3I!-"N!#J!3!i+!!!'%#!!%5!!J!!+!!!!%'#!$L!BJ!!S!%!1&3!%$T m!`!Z+!!!!%'#!#!iB3!iJ))!!+!"!$K8!"!kIB3!,NJ!!!&J!!!!1'!!!%J!!"` mB!!"1)!!!$KMrrp)!!!"B!!!!$KJrrq!!3"i1#%!F(`)!kDl)IrN6S!!)%9d!`! !!!'9!!!!'%9d!`#3"!)!!!!F4A-3!!!!!CF!!!!J4A-3!!!!!CB!!!!`4A-3!!! !!CF!!!!i4A-3!*!%*!!!!%"&G3#3"@S!!!"B4A-3!!!!!CB!!!"F4A3$!*!%)J! !!(a&G3#3"!'C!!!!V%9e!*!%!BB!!!#d4A3$!!!!!C3!!!$!4A-3!!!!!CB!!!$ 34A-3!*!%*!!!!1K&G3#3"!'D!!!"3%9c%!#3"#-!!!&i4A-3!*!%)`!!!B4&G3# 3"!'E!!!"R%9e!*!%!C`!!!'i4A-3!!!!!CB!!!(84A-3!!!!!CB!!!(J4A-3!*! %)`!!!HK&Fa!!N!3M!!!"p%9d!`#3"$3!!!)%4A8!N!3"R3!!!KK&Fa!!N!3M!!! #4%9c%!#3"#-!!!*34A-3!*!%)`!!!Qa&G3#3"9%!!!*m4A8!N!3"RJ!!!TK&EJ` %!!!"p!!!!!b!!*!,J!!#Z$J!!!"&G`#3"!'B!*!%4@X!"!!!!I8!!!"d!!!CRJ! !AUGm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!X)%!ATLK!'-mB!!"1)!!!6KMU*p )!!!"B!!!!$[$!!#JB3"HL)%!BdJ!!!&J!!!!I'2`8$!$rrpm!"N3Q"m!!$Kr!!# !!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"!(f!!!!,%9e!*!%!IB!!!"!4@i -"!!!!IN!!!!-J!#3#i!!!(33!!!!4AF!N!3"p3#3"%9V!!3!!!(k!!!!F!!!'H3 !!&mlI!J#TT2Krrb6`IriN!!"!!L8)Iq`1q-!!*!!J3"XN!#K!(!l`!!!J'%!E$L "!$K)!!!"B!!!!(aJ"c9!JJ!BJ'%!1)!"!("m!`!!3B!!#$[!!!'Eh`!!1(m!!)! "!&Ji)3"3I!J$TS2Krrb$`Iri6S!!)%9e!*!%!IX!!!!X4@i-"!!!!Ii!!!!-J!# 3#i!!!(!3!!!!4AF!N!3"qJ#3"%9V!!3!!!(r!!!!I!!!'MJ!!&qXI!J#TT2Krrb 6`IriN!!"!!L8)Iq`1q-!!*!!J3"XN!#K!(#3!-%!G$[!!!#!B3"X1)%!1%J!!!& J!!!!I'!(08##!##!J3"dJ'%!1)!"!("mB!!iI!3!!%##!!Jl`!!"Qpm!!$Kr!!# !!3"B1#%!8(`)!kD$iIrmJm(rq%k!!#"&G3#3"!(l!!!!-%9Z$!3!!!)!N!3-J!# 3#i!!!(`3!!!!4AF!N!3"r`#3"%9V!!3!!!)"!!!!E!!!'TS!!'!aI!J#TT2Krrb 6`IriN!!"!!L8)Ir!1q-!!*!!J3"FN!#K!'!l`!!!J'%!A)J$!!!S!!!!3B)!()' "!'")!!!"B!!!!(aJ"c9!JJ!)1m!!!C[I!!!iI`!!J!%!5$JK!%"m#!1QJq(rr)2 "rrK1J!!J4A8!N!94!!!!1%9Z$!3!!!)%!!!!$)!!N!Z!!!"X%!!!!%9h!*!%!J% !N!4&D`!%!!!#"3!!!%`!!"VB!!"JRA`)!UD6iIrmN!!"!!L8)Ir!1q-!!*!!J3" FJB%!A%J!!!&J!!!!I'!(0(`!!$48!0PqQ"m!!$Kr!!#!!3")1#%!3(`)!kD$iIr m6S!!)%9e!*!&83!!!"a&EJ`%!!!#"J!!!!b!!*!,J!!!6!J!!!"&G`#3"!)&!*! %4@X!"!!!!JF!!!"N!!!E%!!!B0Ym#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!N!# K!'#)"!!!+!!!!%'#!"`i!!!"Q"m!!)'"!'")!!!"B!!!!%J!!!`i!!!!Q"m!!$K r!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"9%!!!!d4@i-"!!!!JJ!!!! -J!#3#i!!!'33!!!!4AF!N!3#"`#3"%9V!!3!!!)*!!!!4!!!'hB!!'&VI!J#TT2 Krrb3!!%!#*3Krm!li`!!N!#"!&`i!!!"Q!-!!)'"!&a)!!!"B!!!!$Kr!!#!!3" )1#%!3(`)!kD$iIrm6S!!)%9e!*!&83!!!#4&EJ`%!!!##J!!!!b!!*!,J!!!4!J !!!"&G`#3"!)*!*!%4@X!"!!!!JX!!!!S!!!EYJ!!BDii`!!!L!3!!#J!!!""JJ! 8L!8!!#J!!!""JJ!)1-!!!CM$!!"1J!!J4@X!"!!!!K)!!!#3!!!!'r`!!')+I!J #TT!!!3!)P#(r`*!!B3"BN!#"!&b)!J!!I!!(G8##!"3i!!!"X!)!!$J!!!'B!J! !U!)!!#`!!!&!JJ!X5!!!!@!!!!#`BJ!!I'!(08##!"JiBJ!!1))!!%J!!!&J!!! !X')!!+J#!!#!B3"BX!-!!+J#!!#!B3"FX!-!!+KL!!#!!3")1#%!3(`)!kC1J!! J4A-3!!!!!K%!!!!84A-3!!!!!K!!!!!N4A-3!!!!!K%!!!!X4A-3!!!!!K!!!!! `4A8!N!3#%`!!!$a&Fa!!!!!#%!!!!%4&Fa!!!!!#$`!!!&"&Fa!!!!!#$J!!!&4 &G3#3"!)8!!!!@%9c%!!!!!)3!!!!B%9c%!!!!!)1!!!!C%9c%!!!!!)2!!!!F%9 c%!!!!!)3!!!!I%9Z$!3!!!)A!!!!$)!!N!Z!!!#3!!#3"%9h!*!%!K)!N!4&D`! %!!!#'!!!!'3!!"a8!!"MMR`)!UD3!!%!#*3Krm#!BJ!!5!!!!@!!!!#!BJ!!5!! !!@!!!!#!BJ!!5!!!!@!!!!#!BJ!!5!!!!@!!!!#!BJ!!5!!!!@!!!!#!BJ!!5!! !!@!!!!#!!3")1#%!3(`)!kC1J!!J4A3$!!!!!KN!!!!-4A8!N!3#'J!!!""&G!- !!!!#'`!!!"K&G3#3"!)D!!!!(%9d!`!!!!)F!!!!*%9e!*!%!KS!!!!S4A3$!!! !!Kd!!!!`4A8!N!3#'J!!!$4&G!-!!!!#(J!!!$a&G3#3"!)D!!!!3%9d!`!!!!) I!!!!5%9e!*!%!KS!!!"-4@i-"!!!!L!!!!!-J!#3#i!!!'3!N!4&G`#3"!)B!*! %4@X!"!!!!KS!!!!X!!!FS!!!C(Pm#!+QN!!"!!L8)Ir!N!"K!&L"J3"B5!!!!@! !!!#!!3")1#%!3(`)!kC1J!!J4A8!N!94!!!!&%9Z$!3!!!)L!!!!$)!!N!Z!!!! X!*!%4AF!N!3#'J#3"%9Z"3%!!!)M!!!!$Irrrl%!!'4j8fpMDf9d4'pYB@PZ!!! $c89Z"33!!!)N!!!!#2rrrl!!!'4j!*!)4AB&!!!!!L-!N!4&E`8%!!!"4J!!!"M rrrq[!!"NH3#3'%9f"3!!!!)N!*!%4AB+!!!!!L8!!!!84AB+!!!!!LB!!!!34AB +!!!!!LF!!!!-4AB+!!!!!LJ!!!!)4@S!"!!!!LN!!!%SJ!#3"h`)!UD3!!%!#*3 Krm#!BJ!!5!!!!B"L!!")!!!"J))!!)#L!!")!!!"B!!!!)"L!!!mJ'Cc1+!!!MM !!!)iK#!J5!!!!B"L!!!mJ'&X1+!!!6M!!!%iK'Pc5!!!!B"L!!!mJ(0d1+!!!6M !!!%iK'4Q5!!!!B"L!!!mJ'pc1+!!#$M!!!JiK#!J5!!!!B"L!!!mJ'0b1+!!!6M !!!%iK'dJ5!!!!B"L!!#!JJ!!J+)!!%J!!!'!BJ!!J))!!)#L!!")!!!"J')!!$b !EQ`iS!!"1-!!!6L%GA")!!!"J')!!)##!!#!SJ!!5!!!!B"L!!!mJ'9f1+!!!6M !!!%iK'jd5!!!!B"L!!!mJ(4Y1+!!!ML%Ch*)!!!"J!%!5$JK!%"m#!1Q6S!!)%9 d!`#3"!)!!!!-4A8!N!8p!!!!%%9d!`#3""B!!!!84A8!N!3"9J!!!"K&G!-!!!! #+J!!!"a&G!-!N!39!!!!)%9e!*!%!LX!!!!N4A3$!*!%+3!!!#a&G3#3"!(r!!! !3%9d!`#3"#`!!!"%4A8!N!3"r`!!!&K&G!-!N!3Y!!!!A%9e!*!%!Im!!!"`4A3 $!*!%,J!!!(4&G3#3"!(r!!!!L%9d!`#3"#m!!!#-4A8!N!3"r`!!!+"&G!-!N!3 `!!!!T%9d!`#3"#m!!!#S4A3$!!!!!L`!!!#X4A8!N!3#!3!!!,"&G!-!N!3a!!! !Y%9d!`#3"$!!!!#i4A3$!!!!!Ld!!!#m4A8!N!3#!3!!!-"&G!-!N!3b!!!!a%9 e!*!%!Im!!!$B4A3$!*!%-`!!!0a&G!-!N!3a!!!!i%9d!`#3"$)!!!$N4A8!N!3 ##`!!!1K&G!-!N!3d!!!!l%9e!*!%!Im!!!%!4A3$!*!%03!!!34&G3#3"!(k!!! "&%9Z$!3!!!)Z!!!!$)!!N!Z!!!%S!*!%4AF!N!3#+3#3"%9X%!%!!!)4!!!!!3! !!!F!!')+4@`3!J!!!K!!!!!#!!!!#`!!BJT&E"!#!!!#$`!!!!)!!!!,!!"L#N9 X%!)!!!)1!!!!!J!!!!X!!')+4@`3!3!!!CF!!!!"!!!!"`!!9jC&E"!"!!!"PJ! !!!%!!!!'!!"APN9Y"33!!!'9!!!!"!!!!!-!!&Gk4@`3"!!!!@)!!!!%!!!!!`! !5aP&E38%!!!"23!!!!Mrrrr+!!"!U%9Y"33!!!%m!!!!82rrrmX!!%"[4@d&!J! !!$X!!!!#!!!!#`!!#I0&E38"!!!!1J!!!!%!!!!'!!!*a%9Y"3%!!!!e!!!!![r rrr8!!!J'4@d&!3!!!$3!!!!#rrrrp3!!"iP&E38"!!!!-`!!!!,rrrre!!!(B89 Y"3%!!!!b!!!!![rrrr8!!!Ef4@d&!3!!!$%!!!!#rrrrp3!!"Xa&E38"!!!!-!! !!!,rrrre!!!'U89Y"3%!!!![!!!!![rrrr8!!!C+4@d&!3!!!#i!!!!#rrrrp3! !"H"&E38"!!!!,3!!!!,rrrre!!!&F%9Y"3%!!!!X!!!!![rrrr8!!!8"4@d&!3! !!#N!!!!#rrrrp3!!"*9&E38"!!!!+!!!!!%!!!!'!!!%Fd9X%!3!!!!R!!!!"!! !!!-!!!3h4@`3"!!!!#B!!!!%!!!!!`!!""P&E"!#!!!!*!!!!!)!!!!,!!!$h%9 X%!3!!!!M!!!!"!!!!'S!!!1b4@d&"!!!!#%!!!!%rrrrpJ!!!fa&E38%!!!!&J! !!3,rrrrk!!!#dN9X"3%!!!!9!!!!$2rrrrX!!!,54@d&"!!!!!)!!!!Drj!%!!! #Jd9[#J3!!!)[!!!!#)!!N!p&GJ#3"!)D!*!%4AB2!!!!!M!!!!!%4@m+"!!!!M% !!!!)J!#3$d9f!*!%!KJ!N!4&GJm!!!!#-!!!!!4&E`S%!!!#-J!!!!L!!*!24AB !N!3#%J#3"%9f$`!!!!)`!!!!"%9[#J3!!!)c!!!!#)!!N!p&GJ#3"!),!*!%4AB 2!!!!!M!!!!!%4@m+"!!!!M3!!!!)J!#3$d9f!*!%!JN!N!4&GJm!!!!#-!!!!!4 &E`S%!!!#03!!!!L!!*!24AB!N!3#"`#3"%9f$`!!!!)`!!!!"%9[#J3!!!)f!!! !#)!!N!p&GJ#3"!)&!*!%4AB2!!!!!M!!!!!%4@m+"!!!!MF!!!!)J!#3$d9f!*! %!J%!N!4&GJm!!!!#-!!!!!4&E`S%!!!#1!!!!!L!!*!24AB!N!3"r`#3"%9f$`! !!!)`!!!!"%9[#J3!!!)j!!!!#)!!N!p&GJ#3"!(k!*!%4AB2!!!!!M!!!!!%4@m +"!!!!MS!!!!)J!#3$d9f!*!%!I8!N!4&GJm!!!!#-!!!!!4&E`S%!!!#1`!!!!L !!*!24AB!N!3"KJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!)m!!!!#)!!N!p&GJ#3"!& X!*!%4AB2!!!!!M!!!!!%4@m+"!!!!Md!!!!)J!#3$d9f!*!%!@3!N!4&GJm!!!! #-!!!!!4&E`S%!!!#2J!!!!L!!*!24AB!N!@I!*!%4AB2!!!!!M!!!!!%4@m+"!! !!LS!!!!)J!#3$d9f!*!%!9i!N!4&GJm!!!!#-!!!!!4&E`S%!!!#2`!!!!L!!*! 24AB!N!@-!*!%4AB2!!!!!M!!!!!%4@m+"!!!!N!!!!!)J!#3$d9f!*!&I`#3"%9 f$`!!!!)`!!!!"%9[#J3!!!*"!!!!#)!!N!p&GJ#3"A8!N!4&GJm!!!!#-!!!!!4 &E`S%!!!#3J!!!!L!!*!24AB!N!3"9J#3"%9f$`!!!!)`!!!!"%9Z#J3!!!&A!!! !#)!!N!p&GJ#3"!&5!*!%4AB2!!!!!M!!!!!%4@m+"!!!!N-!!!!)J!#3$d9f!*! %!9%!N!4&GJm!!!!#-!!!!!4&E`S%!!!#*3!!!!L!!*!24AB!N!3"6`#3"%9f$`! !!!)`!!!!"%9[#J3!!!)Q!!!!#)!!N!p&GJ#3"!&0!*!%4AB2!!!!!M!!!!!%4@m +"!!!!LF!!!!)J!#3$d9f!*!%!8X!N!4&GJm!!!!#-!!!!!4&E`S%!!!#+!!!!!L !!*!24AB!N!3"53#3"%9f$`!!!!)`!!!!"%9[#J3!!!*%!!!!#)!!N!p&GJ#3"!& &!*!%4AB2!!!!!M!!!!!%4@m+"!!!!N8!!!!)J!#3$d9f!*!%!8)!N!4&GJm!!!! #-!!!!!4&E`U%!!!#4J!!!!L!!*!24AB!N!9d!*!%4AB2!!!!!M!!!!!%4@m+"!! !!NF!!!!)J!#3$d9f!*!%!6X!N!4&GJm!!!!#-!!!!!4&E`S%!!!#5!!!!!L!!*! 24AB!N!3"1!#3"%9f$`!!!!)`!!!!"%9[#J3!!!**!!!!#)!!N!p&GJ#3"!%h!*! %4AB2!!!!!M!!!!!%4@m+"!!!!NS!!!!)J!#3$d9f!*!%!5m!N!4&GJm!!!!#-!! !!!4&E`S%!!!#5`!!!!L!!*!24AB!N!3",3#3"%9f$`!!!!)`!!!!"%9[#J3!!!* -!!!!#)!!N!p&GJ#3"!%R!*!%4AB2!!!!!M!!!!!%4@m+"!!!!Nd!!!!)J!#3$d9 f!*!%!5-!N!4&GJm!!!!#-!!!!!4&E`S%!!!#6J!!!!L!!*!24AB!N!3")!#3"%9 f$`!!!!)`!!!!"%9[#J3!!!*2!!!!#)!!N!p&GJ#3"!%H!*!%4AB2!!!!!M!!!!! %4@m+"!!!!P!!!!!)J!#3$d9f!*!&K!#3"%9f$`!!!!)`!!!!"%9[#J3!!!*4!!! !#)!!N!p&GJ#3"!%D!*!%4AB2!!!!!M!!!!!%4@m+"!!!!P)!!!!)J!#3$d9f!*! %!4J!N!4&GJm!!!!#-!!!!!4&E`U%!!!"%`!!!!L!!*!24AB!N!3"&3#3"%9f$`! !!!)`!!!!"%9[#J3!!!*6!!!!#)!!N!p&GJ#3"IS!N!4&GJm!!!!#-!!!!!4&E`S %!!!#9!!!!!L!!*!24AB!N!AB!*!%4AB2!!!!!M!!!!!%4@m+"!!!!P8!!!!)J!# 3$d9f!*!&e3#3"%9f$`!!!!)`!!!!"%9[#J3!!!*@!!!!#)!!N!p&GJ#3"G%!N!4 &GJm!!!!#-!!!!!4&E`S%!!!#9`!!!!L!!*!24AB!N!A2!*!%4AB2!!!!!M!!!!! %4@m+"!!!!PJ!!!!)J!#3$d9f!*!&aJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!*C!!! !#)!!N!p&GJ#3"DF!N!4&GJm!!!!#-!!!!!4&E`S%!!!#@J!!!!L!!*!24AB!N!@ N!*!%4AB2!!!!!M!!!!!%4@m+"!!!!PX!!!!)J!#3$d9f!*!&RJ#3"%9f$`!!!!) `!!!!"%9[#J3!!!*F!!!!#)!!N!p&GJ#3"C`!N!4&GJm!!!!#-!!!!!4&E`S%!!! #A3!!!!L!!*!24AB!N!@D!*!%4AB2!!!!!M!!!!!%4@m+"!!!!Pi!!!!)J!#3$d9 f!*!&P`#3"%9f$`!!!!)`!!!!"%9[#J3!!!*I!!!!#)!!N!p&GJ#3"C-!N!4&GJm !!!!#-!!!!!4&E`S%!!!#B!!!!!L!!*!24AB!N!@,!*!%4AB2!!!!!M!!!!!%4@m +"!!!!Q%!!!!)J!#3$d9f!*!&KJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!*L!!!!#)! !N!p&GJ#3"B)!N!4&GJm!!!!#-!!!!!4&E`S%!!!#B`!!!!L!!*!24AB!N!9q!*! %4AB2!!!!!M!!!!!%4@m+"!!!!Q3!!!!)J!#3$d9f!*!&F`#3"%9f$`!!!!)`!!! !"%9[#J3!!!*P!!!!#)!!N!p&GJ#3"A)!N!4&GJm!!!!#-!!!!!4&E`S%!!!#CJ! !!!L!!*!24AB!N!9`!*!%4AB2!!!!!M!!!!!%4@m+"!!!!QF!!!!)J!#3$d9f!*! &DJ#3"%9f$`!!!!)`!!!!"%9[#J3!!!*S!!!!#)!!N!p&GJ#3"9!!N!4&GJm!!!! #-!!!!!4&E`S%!!!#D3!!!!L!!*!24AB!N!8p!*!%4AB2!!!!!M!!!!!%4@m+"!! !!QS!!!!)J!#3$d9f!*!&13#3"%9f$`!!!!)`!!!!"%9[#J3!!!*V!!!!#)!!N!p &GJ#3"6B!N!4&GJm!!!!#-!!!!!4&E`S%!!!!(J!!!!L!!*!24AB!N!3"Q!#3"%9 f$`!!!!)`!!!!"%9[!`3!!!!e!!!!")!!N!Y&GJ8!N!3e!*!%4@m$"!!!!$-!!!! %J!#3#d9f"3#3"$-!N!4&E`-%!!!!-J!!!!5!!*!,4AB&!*!%-J#3"%9[!`3!!!) Y!!!!")!!N!Y&GJS!!!!#,3#3"%9[!`3!!!!a!!!!")!!N!Y&GJ8!N!3a!*!%4@m $"!!!!L`!!!!%J!#3#d9f#J!!!!)X!*!%4@m$"!!!!$!!!!!%J!#3#d9f"3#3"$! !N!4&E`-%!!!!,`!!!!5!!*!,4AB&!*!%,`#3"%9[!`3!!!!Y!!!!")!!N!Y&GJ8 !N!3Y!*!%4@m$"!!!!#`!!!!%J!#3#d9f"3#3"#`!N!4&E`-%!!!!+3!!!!5!!*! ,4AB&!*!%+3#3"%9Z!`3!!!!9!!!!")!!N!Y&GJ8!N!39!*!%4@m$"!!!!LS!!!! %J!#3#d9f#J!!!!)U!*!%4@m$"!!!!Km!!!!%J!#3#d9f#J!!!!)I!*!%4@m$"!! !!Ki!!!!%J!#3#d9f#J!!!!)H!*!%4@m$"!!!!Kd!!!!%J!#3#d9f#J!!!!)G!*! %4@m$"!!!!K`!!!!%J!#3#d9f#J!!!!)F!*!%4@m$"!!!!KX!!!!%J!#3#d9f#J! !!!)E!*!%4@m$"!!!!KN!!!!%J!#3#d9f#J!!!!)C!*!%4@m$"!!!!$3!!!!%J!# 3#d9f"3#3"$3!N!4&E`-%!!!"P!!!!!5!!*!,4AB&!!!!!C3!N!4&E`-%!!!"P3! !!!5!!*!,4AB&!!!!!C8!N!4&E`-%!!!"A`!!!!5!!*!,4AB+!!!!!9m!N!4&EJ- %!!!"9`!!!!5!!*!,4AB+!!!!!9F!N!4&E`-%!!!"8`!!!!5!!*!,4AB+!!!!!9- !N!4&E`-%!!!"4J!!!!5!!*!,4AB&!!!!!8B!N!4&E`-%!!!"23!!!!5!!*!,4AB &!!!!!6d!N!4&E`-%!!!!,J!!!!5!!*!,4AB&!*!%,J#3"%9[!`3!!!%m!!!!")! !N!Y&GJ8!!!!"2!#3"%9[!`3!!!!L!!!!")!!N!Y&GJ8!N!3L!*!%4@m$"!!!!"m !!!!%J!#3#d9f"3#3""m!N!4&E`-%!!!!(3!!!!5!!*!,4AB&!*!%(3#3"%9[!`3 !!!!#!!!!")!!N!Y&GJ8!N!3#!*!%4@m$"!!!!"B!!!!%J!#3#d9f"3#3""B!N!4 &E`-%!!!!E!!!!!5!!*!,4AB&!*!%E!#3"%9[!`3!!!!K!!!!")!!N!Y&GJ8!N!3 K!*!%4@m$"!!!!$X!!!!%J!#3#d9f"3#3"$X!N!4&E`-%!!!!1J!!!!5!!*!,4AB &!*!%1J#3"%9[!`3!!!!h!!!!")!!N!Y&GJ8!N!3h!*!%4@m2"!!!!M!!N!5!!*! (4@J!!&0C68J!!"c5!!!!83!!!!)!N"%"!*!'#-J!!!!)!!!)d`!!!"!!!!MLrj! %!!!)l3!"!!!!1!!!!!-"!*!%!`!"!*!'#68!!!!)!!!*3!!!!"!!!!P2rj!%!!! *@`!"!!!!1!!!!!-"!*!%!`!"!*!'#MN!!!!B!!!+C!!!!$!!!!UD!!!!2!!!#V- !!!"-!!!+a`!!!)J!!!Y1!!!!R!!!#id!!!#S!!!,T!!!!-3!!![T!!!!d!!!$!- !!!$B!!!-'!!!!13!!!a6!!!!m!!!$(J!!!$i!!!-M3!!!3J!!!bR!!!"&!!!$-F !!!%F!!!-hJ!!!9J!!!fj!!!#R!!!$iX!!!+i!!!2Y!!!!X3!!!r0!!!#d!!!$rB !!!,F!!!3#J!!!ZJ!!"!J!!!$"!!!%&!!!!-3!!!3D3!!!c3!!"$F!!!$2!!!%2- !!!0B!!!4(`!!!iJ!!"&&!!!$P!!!%9N!!!1S!!!4J3!!!lJ!!"'A!!!$a!!!%E) !!!23!!!4drq3"!!!%G-!"J!!!%Irrrrc!3#3""i!!!")!!!!!`#3"4m!!!"*!!! !!`#3"4d!!!"+!!!!!`#3"4X!!!",rrrrmJ#3"4`!!!"1!!!!#`#3"4N!N!J5(!! !!$3!!"*6!!!!8!!!%US!!!"`!!!5m3!!!)J!!"-C!!!!S!!!%fm!!!$)!!!6hJ! !!1`!!"3A!!!"'!!!&)F!!!%S!!!8MJ!!!83!!"6p!!!"A!!!&66rN!3!!"8d!!B !!!"(rrrrm`%!N!3H!!!!9rrrrqm"!*!%(3!!!%N!!!!$!*!&(`!!!&hrrrrX!!- !!!!i!!!!AJ!!!'B!N!8F!!!!ArrrrqX!!`!!!%!!N!J9CJ!!!"!!!"9T!!!!,!! !&Ci!!!!m!!!9YJ!!!%J!!"Adrj!%!!!9p!!"!!!!4rrrrr-"!`!!!&J!N!JB-2q 3"!!!'$!!N!SB8`!!!#!!!"KX!!!!+!!!')3!!!!X!!!BQ2q3"!!!'*J!!3!!!%I rrrrT!3#3""m!!3#3"KN8rj!%!!!C+!!!!!%!N!BC@J!!!#J!!"Q4!!!!,!!!'DX !!!"!!!!Ce3!!!'3!!"S!N!5%!!!D,!!!!)`!!"T$!!!!V!!!'P)!!!#m!!!DB!! !!-J!!"U$rj!%!!!DMJ!'!!!!GJ!!!!-"!`!!!'J!!!"h!!!!!`%$!!!!E!!!!(J !!!!$!3-!!!"`!!!!H3!!!!-!N!8G!!!!H[rrrrJ!N!8I!!!!HrrrrqJ!N!8H!!% !N!BDcJ!!!$!!!"Vm!!!!0!!!'aB!!!")!!!E3!!!!(!!!"Y[!!!!N!!!!"ZK!!! !X!!!'p3!!!#i!!!ElJ!!!-J!!"a$!!!!k!!!(&F!!!%)!!!FF!!!!4J!!"aq!!! "*!!!(+(rN!3!!"bX!!B!!!"f!!!!!`%$!!!!D!!!!(F!!!!$!3-!!!"X!!!!H!! !!!-"!`!!!(!!!!#!rrrrjJ%!N!3H!!!!H[rrrq8!!`!!!$J!!!"lrrrrk!#3"4d !!3#3"Kc#!!!!&!!!(-8!!!!F!!!Fh`!!!$J!!"d1!!!!3!!!(4S!!!"B!!!G,rq 3"!!!(9!!!3!!!(RrrrrQ!3#3""m!!3#3"Kfp!!!!-!!!(GB!!!"!!!!H!*!%F!! !(NErN!3!!"j4!!J!!!"f!!!!!`%$!!!!@!!!!(F!!!!$!3-!!!"F!!!!K`!!!'B "!`!!!'!!!!#)!!!!C!%$!!!!C!!!!%d!!!!$!3-!!!"S!!!!9`!!!'3"!`!!!'` !!!#*rrrrjJ%$!!!!F!!!!([rrrrS!*!&(`!"!*!'(Si!!!!N!!!HNIq3"!!!(ZB !"!!!!)d!!!!$!3-!!!"B!!!!9rrrrq3"!`!!!&`!!!#*!!!!!`%$!!!!B!!!!(V rrrri!*!&(`!"!*!'(bB!!!!N!!!I+Iq3"!!!(i%!"!!!!)d!!!!$!3-!!!"B!!! !P2rrrq3"!`!!!&`!!!#9!!!!!`%$!!!!B!!!!(Vrrrri!*!&(`!"!*!'(k!!!!! J!!!ISrq3"!!!(qJ!!`!!!)d!!!!$!3-!!!"B!!!!Q!!!!!-"!`!!!&`!!!"krrr rq!#3"4m!!3#3"L!L!!!!+!!!)#8!!!!i!!!J6`!!!&`!!#"k!!!!I!!!)+8!!!# %!!!JZ`!!!+3!!#$+rj!%!!!Je3!%!!!!M3!!!!-"!*!%(J!!!*6rrrrN!3-!!!" F!!!!PIrrrqB"!`!!!'!!!!"krrrrq!#3"4m!!3#3"L%5!!!!)!!!)5MrN!3!!#& #!!%!!!#0!!!!!`%$!!!!@!!"!*!')jm!!!"%!!!MSJ!!!*3!!#1q!!!!T!!!)p2 rN!3!!#3l!!B!!!#0!!!!!`%$!!!!D!!!!+!!!!"N!3-!!!"X!!!!S3!!!!-"!`! !!(!!!!"0!!!!!`%$!!!!G!!!!(Vrrrri!*!&(!!!!+)!!!!$!!-!!!!i!!%!N!B NR!!!!%`!!#5I!!!!R!!!*,[rN!3!!#8L!!F!!!#0!!!!!`%$!!!!D!!!!+!!!!" N!3-!!!"X!!!!S3!!!!-"!`!!!(!!!!"0!!!!!`%$!!!!G!!!!+ArrrrN!3-!!!" i!!!!S[rrrqB"!`!!!(`!!!"krrrrq!#3"4`!!3#3"L9A!!!!0!!!*9S!!!#%!!! PGJ!!!*`!!#@L!!!![!!!*I-!!!%)!!!QQ`!!!5`!!#E!rj!%!!!Qb`!&!!!!M3! !!!-"!`!!!)J!!!#Urrrri3%!N!3F!!!!63!!!!-"!`!!!*!!!!!!Y[rrrpd!!`! !!$J!!!"krrrrq!#3"4X!!3#3"LEh!!!!(!!!*`i!!!"-!!!RIJ!!!&`!!#HD!!! !D!!!*l[rN!3!!#I+!!%!!!$%!!!!!`%!N!3I!!%!N!BS!`!!!$3!!#J'!!!!K!! !+#)!!!#F!!!S6J!!!,`!!#Kj!!!"!!!!+08!!!%N!!!Sq[q3"!!!+38!"3!!!)d !!!!$!3-!!!#)!!!!bIrrrpm"!`!!!)`!!!#p!!!!!`%$!!!!N!!!!!$+rrrrf`! $!!!!1!!!!(Vrrrri!*!&(!!"!*!'+8-!!!"%!!!T4J!!!*3!!#PLrj!%!!!Tf`! &!!!!M3!!!!-"!`!!!'J!!!#J!!!!C!%$!!!!E!!!!+%!!!!$!3-!!!"`!!!!63! !!!-"!`!!!(3!!!"krrrrq!#3"4`!!3#3"LT"!!!!6!!!+N3!!!#F!!!UB2q3"!! !+Z8!"`!!!)d!!!!$!3-!!!"S!!!!S!!!!'3"!`!!!'`!!!#K!!!!!`%$!!!!F!! !!%d!!!!$!3-!!!"d!!!!d[rrrq3"!`!!!(J!!!$6!!!!!`%$!!!!I!!!!(Vrrrr i!*!&(!!"!*!'+b!!!!!d!!!V)`!!!)3!!#Xr!!!!R!!!+fX!!!#m!!!VZJ!!!3` !!#aS!!!"-!!!,)hrN!3!!#bB!!8!!!#0!!!!!`%$!!!!L!!!!+VrrrrK!3#3""` !!!"0!!!!!`%$!!!!N!!!!!$+rrrrf`!$!!!!1!!!!(Vrrrri!*!&'`!"!*!',0J !!!!m!!!YD3!!!%`!!#em!!!!@!!!,CN!!!"m!!!Z&3!!!)!!!#ia!!!!M!!!,Pm !!!#3!!!!,R`!!!#i!!!ZY`!!!-3!!#l,!!!!e!!!,`J!!!$J!!!['`!!!2!!!#p Erj!%!!![D!!)!!!!M3!!!!-"!*!%'`!!!0VrrrrD!*!&(`!!!(Vrrrri!*!&(!! !!23!!!"S!*!&(3!!!28!!!"S!*!&(J!!!2B!!!!'!!-!!!!i!!!!p`!!!!B!!`! !!$N!!!$i!!!!"J!$!!!!1J!"!*!',p!!!!"!!!!`Q`!!!&3!!$#U!!!!D!!!-,N !!!"i!!!`c!!!!*3!!$%0!!!!R!!!-@-!!!#`!!!a[J!!!4`!!$)r!!!"0!!!-P3 !!!&-!!!bF3!!!93!!$+3!!!!!@`!!$+X!!!##!!!-bJ!!!)J!!!c23!!!N!!!$0 D!!!#6!!!-fF!!!*8!!!cLJ!!!Q`!!$1R!!!#Y!!!0"!!!!,N!!!d6J!!!a3!!$5 3!!!!!b`!!$5p!!!$A!!!04)!!!0m!!!e'3!!!iJ!!$8c!!!$U!!!06S!!!1d!!! e9!!!!p3!!$9M!!!$i!!!0@F!!!2S!!!eN`!!!rJ!!$@l!!!%4!!!0F!!!!43!!! ed!!!"'J!!$AM!!!%E!!!0H`!!!5!!!!el`!!"*3!!$BK!!!%R!!!0N!!!!5d!!! fA!!!"9!!!$EB!!!&D!!!0Zd!!!@)!!!h#`!!"C3!!$F4!!!&R!!!0b)!!!@S!!! h3!!!"E!!!$G2!!!&`!!!0em!!!A)!!!hE`!!"GJ!!$H!!!!&i!!!0j%!!!A`!!! hT2q3"!!!0l)!&!!!!2d!!!!$!3#3""3!!!$qrrrrd`%!N!3C!!!"!Irrrp-"!*! %'J!!!3,rrrr6!3#3""X!!!%$rrrrd!%!N!33!!!""rrrrmi!!`!!!$J!!!$f!!! !D!#3"4`!!!$h!!!!D!#3"4d!!!$i!!!!D!#3"4i!!!%+!!!!"J!$!!!!2!!!!3X !!!!'!!-!!!!p!!!"$!!!!!B!!`!!!$i!!!%0rrrrdJ!$!!!!3!!!!3lrrrr5!!- !!!")!!!"$rrrrp)!!`!!!&!!!!%3!!!!!`#3"4)!!!%4!!!!!`#3"4%!!!#0!!! !!`#3"4m!!!#p!!!!!`#3"4-!!!"krrrrq!#3"4J!!3#3"MIa!!!!*!!!0r6rN!3 !!$K(!!3!!!#0!!!!!`%$!!!!@!!!!&IrrrrN!3-!!!"F!!!!LIrrrqB"!`!!!'! !!!"krrrrq!#3"4m!!3#3"ML'!!!!*!!!1)RrN!3!!$MF!!3!!!#0!!!!!`%$!!! !@!!!!&IrrrrN!3-!!!"F!!!!LIrrrqB"!`!!!'!!!!"krrrrq!#3"4m!!3#3"MM m!!!!)!!!12q3"3!!188!!`!!!)d!!!!$!3-!!!"B!!!"(!!!!!-"!`!!!&`!!!" krrrrq!#3"4m!!3#3"MPB!!!!(!!!19[rN!3!!$QM!!)!!!#0!!!!!`%$!!!!@!! !!(Vrrrri!*!&(`!"!*!'1Ei!!!!X!!!j`3!!!$`!!$RX!!!!4!!!1IN!!!"F!!! k$!!!!'`!!$SLrj!%!!!k4!!$!!!!M3!!!!-"!`!!!'J!!!%K!!!!!`%!N!3G!!! !H[rrrrJ!N!8H!!%!N!Bka3!!!#3!!$V)!!!!0!!!1[-!!!!m!!!l!Iq3"!!!1b3 !"!!!!)d!!!!$!3-!!!"B!!!"*!!!!!)"!`!!!&`!!!%Prrrrc3%$!!!!B!!!!(V rrrri!*!&(`!"!*!'1h%!!!!X!!!lG2q3"!!!1pF!"J!!!)d!!!!$!3-!!!"B!!! "+!!!!!-"!`!!!&`!!!%T!!!!!`%$!!!!B!!!!5S!!!"N!3-!!!"N!!!"+rrrrqB "!`!!!'J!!!"krrrrq!#3"4m!!3#3"M`S!!!!,!!!2#[rN!3!!$bA!!B!!!#0!!! !!`%$!!!!@!!!!5J!!!!$!3-!!!"F!!!"+3!!!!-"!`!!!'!!!!%U!!!!C!%$!!! !C!!!!5X!!!!$!3-!!!"S!!!!H[rrrrJ!N!8I!*!)20!!!!!X!!!mp`!!!$J!!$d e!!!!4!!!2A3!!!"3!!!pY3!!!&J!!$hErj!%!!!pf`!#!!!"-2rrrm`"!*!%!`! !!6Errrrf!3#3"!3!!3#3"Mi*!!!!,!!!2M!!!!!i!!!qB`!!!%3!!$kA!!!!8!! !2X`!!!"F!!!qrj!&!!!r'3!"!!!"-2rrrm`"!*!%!`!"!*!'2d)!!!!%!!!r8J! !!"J!!$q@!!!!-!!!2ki!!!"B!!!raIq3"!!!2mm!!J!!!6N!!!"U!3#3"!-!!!% k!!!!#`#3"4m!!3#3"Mrkrj!%!!"!$3!!!!%!N!C""!!!!"J!!%%(!!!!0!!!38` !!!"%!!""HIq3"!!!3C%!!3!!!(B!!!!$!3#3""m!N!K"V`!!!!`!!%'b!!!!(!! !3FF!!!!S!!""i2q3"!!!3H!!!!!"!*!'3JS!!!!`!!"$)!!!!$`!!%-l!!!!C!! !3i-!!!"`!!"$S2q3"!!!3k!!!J!!!%IrrrrS!3#3""i!!!"f!!!!!`%!N!3G!!% !N!C$`Iq3"!!!3m-!!3!!!%IrrrrS!3#3""m!!3#3"N3Z!!!!$!!!4$(rN!3!!%4 A!!!!!3#3"N5R!!!!$!!!4+VrN!3!!%6*!!!!!3#3"N82!!!!$!!!44,rN!3!!%8 a!*!+49ArN!3!!%99!*!+4EN!!!!-!!"&[!!!!"J!!%A,rj!%!!"&b`!!!!%!N!C &k3!!!"J!!%AXrj!%!!"''!!"!!!!4rrrrqN"!*!%(`!"!*!'4Nm!!!!X!!"'AJ! !!$3!!%D&!!!!3!!!4U)!!!")!!"'b3!!!&`!!%EJ!!!!I!!!4a`!!!#-!!"()2q 3"!!!4cX!"!!!!%IrrrrT!3#3""d!!!"krrrrq!%!N!3H!!!"@J!!!!-"!*!%(!! !!(N!!!!,!*!&(`!"!*!'4ei!!!!J!!"(FJ!!!#3!!%H$!!!!4!!!4ld!!!"3!!" (f3!!!(!!!%J)!!!!N!!!!%JArj!%!!"))3!$!!!!4rrrrqN"!*!%(3!!!(N!!!! $!3#3""m!!!"krrrrq!#3"4i!!3#3"NK0!!!!)!!!5'%!!!!N!!")F`!!!%3!!%L [!!!!9!!!50[rN!3!!%MS!!-!!!"(rrrrk3%!N!3G!!!!H3!!!!-"!*!%(`!!!(V rrrri!*!&(J!"!*!'55m!!!!J!!"*E`!!!$J!!%T@!!!!5!!!5Ti!!!"B!!"+XIq 3"!!!5VX!!J!!!%IrrrrT!3#3""i!!!"*!!!!!`#3"4m!!3#3"NY+!!!!$!!!5dd !!!!X!!",I!!!!$J!!%Z0!!!!5!!!5lErN!3!!%[!!!!!!3#3"N[Irj!%!!"-N3! #!!!"C3!!!!)"!*!%(J!!!@B!!!!$!*!&(`!"!*!'6,8!!!!S!!"-Z!!!!$J!!%d I!!!!Q!!!656rN!3!!%f'!!-!!!&T!!!!!`%$!!!!D!!!!@B!!!!$!*!&(!!!!@S !!!!$!*!&(`#3#%fP!!!!*!!!6DJ!!!!S!!"0bIq3"!!!6FN!!3!!!@d!!!!#!3- !!!"B!!%!N!C40`!!!#3!!&(`!!!!-!!!8UF!!!!m!!"5dJ!!!'!!!&2U!!!!F!! !9$S!!!#B!!"8P`!!!+J!!&6M!!!!X!!!92B!!!$3!!"91!!!!0`!!&96!!!!i!! !99i!!!$N!!"9J3!!!2J!!&A8!!!"!!!!9JF!!!%%!!"@A2q3"!!!9R-!#`!!!A6 rrrr*!3#3""m!!!&l!!!!CJ#3"4d!!!&m!!!!C`#3"4i!!!&p!!!!!J!$!!!!1!! !!Ai!!!!$!*!&&J!!!Am!!!!$!*!&&`!!!B!!!!!$!*!&'!!!!B%!!!!$!*!&(!! !!B)!!!!$!*!&'3!!!B-!!!!,!*!&'J!!!B3!!!!'!*!&'`!"!*!'9Si!!!!3!!" @T3!!!#!!!&EN!!!!-!!!9aN!!!!i!!"A-!!!!%3!!&G9rj!%!!"AB`!"!!!"L2r rrmF!N!8I!!%!N!CA`J!!!#`!!&I&!!!!2!!!@"-!!!"8!!"BMJ!!!&`!!&LX!!! !D!!!@-)!!!#%!!"C"J!!!,3!!&QL!!!!`!!!@FX!!!$F!!"D(J!!!1J!!&TU!!! !p!!!@TF!!!$m!!"DV3!!!53!!&VI!!!",!!!@eX!!!%`!!"EM!!!!9!!!&Zm!!! "H!!!@q3!!!'8!!"F%`!!!E!!!&a(!!!"`!!!A')!!!(%!!"FHJ!!!G!!!&b5!!! "h!!!A,-!!!(S!!"FlJ!!!J3!!&dM!!!#&!!!A@i!!!)J!!"G[J!!!QJ!!&i(!!! #K!!!AL-!!!+-!!"H1J!!!U!!!&j3rj!%!!"H@`!(!!!!U[rrrm)"!*!%'3!!!DS !!!!$!3#3""S!!!'V!!!!!`#3"4m!!!'X!!!!#`#3"4X!!!'Y!!!!!`#3"4d!!!' Zrrrrb!!$!!!!1!!!!Drrrrr"!!-!!!")!!%!N!CHh`!!!#`!!&lLrj!%!!"I1!! $!!!!4rrrrl-"!*!%(`!!!IF!!!!+!3-!!!"H!!!"q!!!!!F"!`!!!'-!!3#3"Pp P!!!!,!!!AhErN!3!!&qT!!3!!!"(rrrrX`%!N!3I!!!!G`!!!!)"!`!!!'`!!!( m!!!!!`%$!!!!F!!!!Id!!!!$!!-!!!!i!!%!N!CIi3!!!$!!!&rbrj!%!!"J,J! &!!!!4rrrrl-"!*!%(`!!!(F!!!!#!3-!!!"X!!!"V!!!!!-"!`!!!(!!!!(m!!! !!`%$!!!!G!!!!Id!!!!$!!-!!!!i!!%!N!CJGrq3"!!!B*S!!`!!!%Irrrqc!3# 3""m!!!)#rrrrX`%$!!!!A!!!!J2rrrrf!3-!!!"J!!%!N!CJa3!!!"`!!'$)rj! %!!"Jf!!#!!!!4rrrrl-"!*!%(`!!!J2rrrrf!3-!!!"F!!%!N!CK)!!!!#J!!'% j!!!!0!!!B8J!!!!m!!"K83!!!%!!!'&D!!!!5!!!B@MrN!3!!'&S!!-!!!"(rrr rX`%!N!3I!!!#![rrrl-"!*!%(J!!!J2rrrrf!3-!!!"J!!%!N!CKNJ!!!#3!!'' M!!!!,!!!BD[rN!3!!''V!!)!!!"(rrrrX`%!N!3I!!!#!rrrrrB"!`!!!&`!!3# 3"Q(`!!!!*!!!BJIrN!3!!')(!!-!!!"(rrrrX`%!N!3$!!!#$2rrrl-"!*!%"!! !!Jhrrrqc!3#3"!8!!3#3"Q)p!!!!)!!!BQX!!!!`!!"LJ`!!!$`!!'+6!!!!8!! !BUi!!!"N!!"Lf2q3"!!!B`-!!J!!!KArrrqb!3-!!!"B!!!#&[rrrl)"!`!!!&` !N!KMTJ!!!!`!!'1T!!!!'!!!Bmm!!!!N!!"Mp!!!!$!!!'38!!!!2!!!C$3!!!" )!!"N93!!!&3!!'4frj!%!!"NGJ#3#Q5B!!!!&!!!C*X!!!!F!!"NSrq3"!!!C+- !!3!!!L(rrrrf!3-!!!"B!!(rrrrm!!!!"!!!!!%!!!!(!!,rrrrp!!!!%3!!!!` !!`!!!",rrrrm!*!(%`!!!!)!!!!%!!!!&!!!!!)!!!!)!!$rrrrq!!(rrrrp!!, rN!3!!!!$!!!!'J!0!!!!"!!!!!)!N!F&!!!!!J!!!!3!!!!'!!!!"`!!!!J!!!! (!!!!"J!!!!N!!!!)!!!!"J!!!!S!!!!*!!!!"J!!!!X!!!!+!!!!"J!!!!`!!!! ,!!!!"J!!!!d!!!!-!!!!"J!!!!i!!!!0!!!!"J!!!!m!!!!1!!!!!J!!!"!!!!! 2!!!!#`!!!"3!!!!3rrrrrJ!!!"B!!IrrrrX!!!!-!!!!!3!!!!F!![rrrrF!!!! C!!!!"J!#!!!!'J!!!!X!N!FE!!!!C!!!!!)!!2rrrrJ!!IrrrrF!!IrrrrN!!!% !N!3%rrrrq!!#rrrrqJ!!!"F!!!%#!!)!!!!Brrrrq3#3"a`!!!!'!!!"!!!!rrr rpJ!"!!!!DJ!#rrrrp3!!!#S!!!!#!!%!!!!V!!!!"J#3"3(rrrrd!!!!!J!!!!% !!!!(!!$rrrrc!!(rN!3!!Irrrr!!!!!-!!!!$2rrrrd!![rrrr%!!!"-!!!!(!! (!!!!"!!!!!)!N!F&!!!!!J!!!!3!!!!'!!!!"`!!!!J!!!"0!!!!"J!!!!N!!!! 1!!!!!J!!!!S!!!!2!!!!#`!!!!i!!!!3rrrrm!!!!"!!!2rrrr)!![rrrr%!![r rrqd!!!"D!!!!4J!$!!!!@`!!!!X!N!GF!!!!!`!!!!)!!!"A!!!!!3!!!!B!![r rrqi!!!"B!!!!4J!"!!!!@Irrrqd!N!Errrr[!!(rrrrZ!!(rrrrX!!!!"3!!!!% !!!!(!!,rrrrU!!!!C3!!!!3!!J!!!'B!!!!,!*!(C`!!!!X!!!!#!!,rrrrV!!! !B!!!!"!!"3!!!'%!!!!#!*!(BJ!!!!)!!!!%!!!!B`!!!!S!!!!)!!!!C2rrrqS !!!!+!!!!D!!!!!X!!!!1!!$rrrrT!!(rrrrk!!,rrrrR!!!!I!!!!!3!!3!!!"X !!!"N!*!'rrrrk!!"rrrrj`!!rrrrjJ!"!!!!!`!"rrrrj3!!!!J!!!!%rrrrq!! "rrrriJ!!!!i!!!!"!!!!"`!#rrrri`!!!)i!!!!3!!-!!!#2!!!!"J#3"j!!!!! !"J!!!!%!!!#4rrrriJ!!!!)!!2rrrq3!!Irrrq-!![rrrpi!!!#[!!!!#!!#!!! !X!!!!'B!N!Ha!!!!!`!!!!3!!2rrrpm!!Irrrpi!![rrrq!!!!#V!!!!(!!(!!! !V!!!!'B!N!HY!!!!!J!!!!3!!!#Zrrrrh`!!!!J!!!#b!!!!!J!!!!`!!!#c!!! !CJ!!!"!!!!#d!!!!!J!!!"3!!!#e!!!!!`!!!"J!!2rrrq%!!Irrrq!!![rrrp` !!!#j!!!!'!!'!!!!ZJ!!!'F!N!Hl!!!!C!!!!!3!!!#m!!!!!`!!!!J!!!#p!!! !!`!!!!`!!!#qrrrrh`!!!"!!!!!E!!!!C!!!!"3!![rrrpd!!!#h!!!!'!!"!!! !Z2rrrp`!N!8#rrrrf`!!!-X!!!!B!!%!!!#irrrrh!#3"3,rrrr@!!!!l3!!!!3 !!3!!!1i!!!!#!*!&!Irrrp8!!!!)!!!!!3!!!!F!![rrrpF!!!$S!!!!%!!&!!! !k3!!!!B!N!IU!!!!"J!!!!%!!!$V!!!!#J!!!!)!!!$XrrrreJ!!!!3!!!$[rrr re3!!!!J!![rrrpJ!!!$G!!!!3J!0!!!!h[rrrrF!N!II!!!!C!!!!!B!!!$J!!! !#`!!!!S!!!$K!!!!#`!!!!`!!!$L!!!!!J!!!!i!!!$M!!!!"J!!!")!!!$N!!! !"J!!!"-!!!$P!!!!CJ!!!"3!!!$Q!!!!!`!!!"J!!!$Rrrrre`!!!"`!!!$`rrr re`!!!#`!!!$a!!!!"J!!!$`!!!$b!!!!!`!!!$i!!2rrrp3!![rrrpN!![rrrpN !!!$E!!!!4J!#!!!!h2rrrpJ!N!Icrrrre!!!!%)!!2rrrpS!!IrrrpN!!Irrrp% !!!!)!!!!"!!!!!-!![rrrp)!!!$r!!!!#!!"!!!"!2rrrp%!N!Errrr6!!(rrrr 5!!,rrrr2!!!""!!!!!J!!J!!!38!!!!$!*!'!3B!!!!$!!!!"!!!rrrrd!!"rrr rc`!#rrrrcJ!!!3J!!!!%!!%!!!%*!!!!!`#3"[rrrmd!!3!!!!-!!rrrrm`!!!% a!!B!"!!!!6)!N!B"-`!!!!%!!!%d!!!!!J!!!68!!!!$!!(rrrr,!!!!8!!!!!6 rrrrS!!,rrrr+!!!"2J!!!!J!!J!!!6m!!!!#!*!'!8!!!!!#!!!!"!!#rrrrb!! !!A8!!!!3!!8!!!&f!!!!#J#3"J&h!!!!!J!!!!)!!!&i!!!!!J!!!!B!!!&jrrr rkJ!!!!S!!!&k!!!!#J!!!!i!!2rrrmN!!IrrrmJ!!Irrrm-!!!!#!!!!!J!!!!X !![rrrm3!!!',!!!!#!!$!!!"L[rrrm8!N!B"M!!!!!X!!!!%!!!"MIrrrm-!!!! '!!$rrrr&!!(rrrr%!!,rrrr'!!!"L3!!!"B!"`!!!BVrrrr&!*!'!B`!!!!,!!! !"!!!!Bi!!!!+!!!!"J!!!Bm!!!!#!!!!#!!!!C!!!!!!!J!!!!`!!!'4rrrrkJ! !!"!!!!'5!!!!#J!!!"3!!2rrrmF!!IrrrmB!!rrrrm)!!!'I!!B!#J!!!D!!N!B "S3!!!!%!!!'L!!!!!J!!!D-!!!!$!!!"T!!!!!3!!!'P!!!!"3!!!DB!!!!'!!! "T`!!!!F!!!'S!!!!#!!!!DN!!!!*!!,rrrqq!!!"Y`!!!!J!"!!!!EJ!!!!,!*! '!EN!!!!,!!!!!J!!!ES!!!!,!!!!"!!!!EX!!!!,!!!!"J!#rrrr[`!!!E-!!!! 1!!-!!!'d!!!!CJ#3"J'e!!!!#`!!!!3!!!'frrrr[J!!!!B!![rrrl`!!!'q!!! !#J!#!!!"[`!!!!S!N!B"`2rrrli!!!!#!!$rrrqp!!,rrrqm!!(rrrqk!!!!#!! !!!%!!!!'!!,rrrql!!!"``!!!!J!!3!!!F6rrrqk!*!&![rrrl3!!!(L!!!!&!! (!!!"i`!!!!)!N!B"h3!!!!F!!!!%!!!"j!!!!!F!!!!&!!!"j3!!!!S!!!!'!!! "j[rrrrB!!!!)!!!"hJ!!!!)!!!!-!!!"j`!!!!)!!!!3!!(rrrqe!!!!&!!!!"6 rrrqd!!,rrrqf!!!"fJ!!!#!!#!!!!GX!!!!+!*!($J!!!!F!!!!#!!!"h!!!!!B !!!!$!!!"h3!!!!)!!!!%!!!"hJ!!!!B!!!!)!!!"h`!!!!B!!!!*!!!"i!!!!!S !!!!+!!!"iIrrrl8!!!!-!!$rrrqh!!(rrrqf!!,rrrqi!!!"f!!!!$3!$3!!!GR rrrqh!*!'!HMrrrqh!!!!"!!!!HRrrrqh!!!!#!!!!HVrrrqh!!!!$!!!!H[rrrq h!!!!%!!!!Hcrrrqh!!!!&!!!!Hhrrrqh!!!!'!!!!Hlrrrqh!!!!(!!!!Hrrrrq h!!!!)!!!!I$rrrqh!!!!*!!!!I(rrrqh!!!!+!!!!I,rrrqh!!!!,!!!!I2rrrq h!!!!-!!!rrrrZ3!"rrrrZ!!#rrrr`!!!!E!!!!"X!"N!!!'a!!!!#`#3"J'brrr r[`!!!!)!!!'mrrrr[J!!!"!!!!'prrrr[3!!!"J!!!("rrrr[3!!!"`!!!(#rrr rZ`!!!#!!!!(&rrrrZ`!!!#J!!!('rrrrkJ!!!$!!!!((rrrrkJ!!!$3!!!()!!! !#`!!!$J!!!(*rrrrZ`!!!$S!!!(+!!!!#`!!!%)!!!(,!!!!#`!!!%3!!!(-!!! !"J!!!%B!!!(0!!!!#`!!!%J!!!(1!!!!#`!!!%S!!!(2!!!!!`!!!%`!!!(3!!! !!`!!!&!!!!(4!!!!!`!!!&3!!!(5!!!!#`!!!&J!!!(6!!!!#`!!!&S!!!(8!!! !C`!!!&`!!!(9!!!!C`!!!'!!!!(@!!!!C`!!!'3!!!(ArrrrZ3!!!'J!!2rrrm% !!Irrrm!!!2rrrl-!!Irrrr8!!2rrrl)!!3!!!!X!!Irrrl%!!!!0!!!!!3!!!!F !![rrrl$rN!3!!!!)!!!!![rrrkrrN!3!!!!B!!!%U%G98dN!!ZK(990*3fpZCQP R!!'l4e96580[EQCTCh9bBA4TEfi!!mYNC@CKG@ad9(P`C3!'%'4PCQ&eE(4$FQ9 KG'pb!!!ZBA9dEe0`D@i!"a&ZEd0SC'Pb!!%bB@0MGA*6G'&d!!,qD'&c3fpZFfp XC3!'kQj[3A9dEdPZDA4(FQ&Q!!)(FfKKFQ9N6h"PEJ!(9R0TCe"TF'8!"DTZEd& `F'aP4ACPER4c!!G%GQ9bFfP[EJ!$P'jeE90eCQCTBf9c!!#1Fh9QCQPMCA-!!TC (990*8h9QCQPi!!D`Fh9QCQPi!!#,Fh9QCP4jF'8!!r"cG@CQ3h*PBA4[FJ!%B8! j-6B!"l*6Ef0VCA4c!!0&8fpMDf9d9'&LE'8!"kTcEf0VCA4c!!Ej8fpMDf9d!!! FFQ9Q3fpeER3!"r0IAhC`G()N!!5eEQ9PC(0$EfjcEfaP!!"a4e96590`D@i!"eC (990*4'9QBA9XG&0`D@i!!"j(990*4AKPB`!(!%G98dP%C@CKG@ad4AKPB`!"0%G 98dP'9(P`C3!#f'G(990*8h"PC@3!!J&PGR4)B@jNE'9b!!GaCACd6@&cD`!"I'9 bFQpb8fpMD`!"`'9bFQpb9(P`C3!#Tf9bFQpb3fpeER3!!Lp$BA4MD&0dC%P2!!9 kD'&c6@&VC8C68h"PB`!(SdCPBA4eFQ8!",pREfpN!!!,D'&c3@aTBA-!!#&SBA0 1CAG64J!&XfKKFe"bEf0PFh00Ch)!!%jSBA0$8NeI8!!'a'KKFd0563!'q@KKFd0 83J!$%@KKFe0dC%j#8&p3!!&pD'&c8h4N6N*3!!D`D'&c3A"`E'9&GQ9ZG(-!!Ej SBA05CACTFf9N9'PYC8eRFJ!$V5j(990*Af9bFQpb!!AaCA*bEQm!!c9PFR)!"e` Z4e9659pPFR*[FPpZD@`!"S*QDA*cG&4TE@9IAc%h4e96580[EQCTCh9bBA4TEfi !"eahC9pI-6G(990*3fpZCQPRGA*KG'P[EJ!%!d!j0MJ!"#dZAepMG&pI-6G(990 *3fpZCQPRGA*KG'P[ENCf!!-[,N0eFP*PFdCTE'8!!jFZ9A0P8Q9c4QPXC3!&U#j (CA3a8Q9cEh9bBf8!"XSZ4f9d5'&ZC'aP8fPkC3!$,#jIAfjhB9pI4P9X!!D),NK -Ef0V!!GP,QePE@0`H3!'ibjMD'4TFJ!!p5j5C@aPBA0P8Q9cEh9bBf8!"&YdD'P c!!&UDJ!"D@N!!$PMEfjQ8fPkC3!')Q0[EQCTC`!'-NG98dP$EfjQD@G5Fh*M!!8 "CQaKCh-!!Rj[E'45CA0'D@aP!!3%3$Nf13!$6bj6CA4%C@CKG@ad4P4jF'9IAc% h4e96580[EQCTCh9bBA4TEfj$4P*$194'D@aP8h"PB`!$P#jIAh"dFPpRE(9P!!) (,NK(CA4'5@jQE`!#15j36(0dFR*MD()!!'NZFh4bEQ0`H3!!!#jcG(*ZBfe`!!+ N,NK6CA4'5@jQE`!%UfjKE@8!!AY84QPXC90`C@-!"b8N4P06F'9M!!B)4P06F'9 M!!FHGP*PCNjeE3!&bR"KFNP%!!4)Ff9KFQ0SFh9QCQPi!!2cC'pd!!5UD@jQE`! &INC*EQC[!!CQCQ48HA"P!!&VCQ4$FQ9KG'pb!!HmCQ4'E'&RF`!#"QCN6'pMBA4 TEfi!"D43EfPZG!!"GRB!!@KS!!DfCQ4'E'4b!!4$3$Ni0`!(R#j%Ed&eG'p*EQP d4h*KCPpI-6G(990*3fpZCQPRGA*KG'P[EN0'GJ!(q#j-68GPG%0eFR*PER4"03! #NR&N!!'[,NPZDA4(FQ&Q!!4G3$Nj-3!!!5j*EQPd3fpZFfpXC9pI4RB!"D8Z5@j TG%0[ER0[E'9IAc%a8fpMDf9d9'&LE'9'GJ!&HN!a-$!h!!Ea,QGPG'4dB@*XCA0 THQ8!"fBZFfpMDf9d!!(H,N4[E@&TEPpI-6*6Ef0VCA4%EfeKD@j'D3!"Pbj*ER0 dB@aXAema-90[BfYPG&4KBQaP4P!f8fpMDf9dD3!'Gf4[E@&TEJ!%Eh4jF'8!!,9 `FQpdEf0[E!!#-'CN!!3ZFfpMD`!$l'4[E3!%0&0[BfYPG%4[E@&TEJ!&Y%!a-$) a!!0#,R0[BfYPG("KDA)!!-mZ8Q9YEhCPAema-90[BfYPG&4KBQaP4QN!!Z4cGJ! &h%!a-$-j!!@2,R"TF'8!"%%Z4e965AGTG'K9EQPi8fpMDf9dF`!"1#jcD(9dC'p hEJ!&pN!a-$3c!!HI,Q0SEfpcC3!'mh"bEfe`G!!#Y'0[ER0dFQ&TER3!"k*ZB@e PE'9Z!!Ak3$%`0$F!"8BZBQPZC!!'r#jIAhCMAema-90[BfYPG&4KBQaP4QN!!A0 c!!#IFfpMDf&NC()!"YKcB9pXC@i!!GGcB9pQB@eTE(N!"`KcB9pNBA4K!!Am3$% `0$N!!0JZBfpZEQ9MG!!%3'&NC()!"qaKC'4bE'9Z!!883$%`06%!"aSZE'PcG'9 Z!!5&F@aPEJ!&&N!a-$8c!!HA,Q&MBf9`G!!&0d!a-$Bc!!5S,Q0XEh0PFfpMDf9 d!!8j3$%`0M8!"3mZFQ9MGJ!$@Lj(990*3fKPBfY"E'&bE9pI4RB!"J0LG@CQCA) !"[GLG@CXC@i!"f9QFQpYE'9Z!!9@3$%`0c)!!F3ZFQ9MGQCbEfd!"$0QFQpY!!9 G3$%`0cN!!1iZFQ9MGQecC`!$JbjIAf0dAemj8f0KG(4PFQ9b4P"$0@P[GQ9MD3! $,5jIAf4dAemj8f0KG(4PFQ9b4RB!!fYYFfF!"M9YFfGSC()!!"GYFfGIEQ&YC3! $-fecCepZB@ePE'9Z!!GVEA0RAfP[GJ!&-fP[GQ9M!!"bD@pfAf*KFf8!"`aTEhC IE'9Z!!+#EA0RAfP[GQaPEJ!$X'ecCepMEfjdFQpX!!BNEA0RAf0[ER4bEfaXC@i !!AYYFfGICQaKCh-!"A"cBf&dG!!"390MBA4dCA*PFJ!#2L46Bf&dG%GKG'J!!FC 6Bf&dG%GKG'J!"aecBh*KG'0S!!1HBR9Q!!2-E'9Z!!8&BfpeER3!!TaTE`!&Q8! a-$Ne!!)-AepNG&pI190MBA4dCA*PFNCf!!@D3$%`16B!"JiZ5'&ZC'aP9h*TG'9 &FR*[FR0IAdCT!!BB,R*KDA0P!!ERFQ9dGQ&X!!@I3$%a-$J!"dJZGh*TG'9f!!, H,PpIBh4IAcK(BA4SCA*PFNC33c9TEhCPBfN!!MBZAepNG&pI1%GKG'KPFQ9b4RB !!`PTEhB!"!YRBA4S!!"-4f&dD'9bCA)!"GY!-6%b0!!"VPpIC(4IAcK(BA4SCA* PFNCf!!AF3$%a-M8!"H-ZFf9ZC!!&q8!a-6-b!!H0,R0PEQ4dE`!#rA4[!!A(G'p XC@i!"3"!-6%c13!!I5jcC@jNEA0R!!8p3$%a068!"6j!-6%e0J!&E5jeF'4KG'9 cG'&dGA-!"hJZGhK0B@06Ef0VCA4)B@jNE'9b8(*[B`!(ZA4MF(0[BfX!!Ep83e" 6Ef0VCA3!!lXN58j&9&0[BfYPG!!#c%P14946Ef0VCA3!"rBN8fpMDf9d!!$IGhK bC@CMEfi!"b9hH'9fC@jd!!2RGhKPGQ9ZG'eKFfX!"R*cG(*PB@d!"XjcG'&dGA- !!ieZEfjLE'pMDfPZC`!(pR*PBhC#G@B!"CTbC@0fC!!#ch0K!!2NFfpMDf&NC(* ID@i!"`*cD@jIE'9Z!!,!FfPZAfCKE@PXH3!!@R0TEPp`Eh*d!!!$FfPZAf&NC() !"feTEPpKC'4b!!CpFepKC'4b!!#bFfPZAhTPFQm!"1a`C@9b!!DaFh0dBA4P!!$ (BA0jEQ0PFR)!"%*cC@aQ!!%FBf&Z9h*TG'93!!$ABf&Z8Q9KC&!!!B&PH'0PF(4 TEfi!!'CMB@jAFQPdC3!(2'0KEP*PB@3!"AK!-6%h-!!(FLjcC@aPBh3!"cmZE@9 YFf9d!!0,,Na04f9d9'PMDh-!"3phD@4dD!!(a(*PB@4QC(-!"ReQC&pcCA3!!#" QC(0IBQPdF`!!EAGbDA4PCQ4c!!(iCAKMCA"dCQ4c!!G*G'PYC@peG!!(fh4TE@9 fB@`!"UPdGPpcC@-!"a9dGPpeFf9M!!'BFf&fC89bFQj[!!,'4A*bEQp6BACPFJ! $D@C6BACPC%9bFQj[!!&PC3!"GhF!!A*b!!)3C@3!!P*hC!!#XR*N!!"GGf&TG(4 TE@8!!@KcG'&bG(4TE@8!"9a!-6)f-!!%m&pIC(4IAc%`4A*bEQp6BACPFNCf!!9 G3$%b0M%!"BFZAepNG&pI-6"&FR*ZEe0KGQ9b4RB!!NmZAepNE&pI4P"f!!9K3$% b0M8!"+8ZCf9dFfpMDfjKE@8!"@0!-6)f0`!%@bjRCA4`C@9bEQ&YC3!&C8!a-MB j!!-'D'ph!!9p3$%b0c%!"--ZC(9`!!9r3$%b0c-!"DSZC(9`-J!#Rh-a!!@&3$% b0cN!"(%ZD@pMG'acEf0VCA3!"c"bCA&eCA0d!!5hBA*RF!!&Rd!a-MJc!!2[,QG PG(0[BfY[F(3!"@YXCACPE!!(3'p`G'jKE@8!"[e[F(4fB@`!"MG[F(4XC@i!"D& !-6)i03!$DLjcCA4cEf0VEh"d!!@M3$%b1$F!"$JZ4e96590PG%K[EfX!"'"MEf4 P!!4-4e9658K[EfY$Ef4P!!A[4e9659p6F'PZ5'p[D`!&f%G98dPI4AKPBdK[EfX !"J&(990*AdC8HA"P5'p[D`!'"NG98dPI8h"PC@4)EfpV!!4+D'p[D`!%-5j(990 *4f9d5'p[D`!'0bj(990*8f9d4ACPER4c!!92G'&LE'8!!lKPGR3!"NXZ4e9658G PG%9fC@jdF`!(Mf4[E@&TER0IAc%b8fpMDf9d4'pYB@PZ!!HBF(*[Bf9cFepI-6* 6Ef0VCA4%EfeKD@i!!lY3FQpMCA0c8f9bD@&X6R9YBQ9b!!@-D'PRD%a[EQG2CP" 66J!%H@a[Gda[EQG2CP"66J!&a8!a-c%f!!!R,P*PB@4jAema-P0[BfYPG%4[E@& TENCf!!C2,PGKDf99F&"bEf0PFh-!"Gp!-6-b-!!(kbjIAf0dAema-P0[BfYPG%4 [E@&TENCT!!4JAepfG&pI-6*6Ef0VCA4%EfeKD@i!!M%Z4f9d3h9bFQ9ZG&"bEf0 PFh-!"HG!-6-b1!!(i5jIAf4dAema-P0[BfYPG%4[E@&TENCf!!8"3$%c-c)!!KB ZFfpMDf9dAema-P0[BfYPG%4[E@&TENCTF`!&!d!a-c-d!!H',R0[BfYPG("KDA* IAc%b8fpMDf9d4'pYB@PZ4QPc8&!f8fpMDf9d!!8&3$%c-cB!!T8ZBfK[Eh0PAem a-P0[BfYPG%4[E@&TENCT8'03GQP3GP"T!!8(3$%c-cJ!"(BZ4'pZG&0dFQP`Aem a-P0[BfYPG%4[E@&TENCf!!FL,NCXGA0S8h4ND@pIAdCf!!B&CQCXGA0S!!E-,QC hB@aV!!8J3$%c0$%!"Q%ZAepMG&pI-6&6Ef0VCA48B@*XC8Cf!!Eh4QaeFfK6G'4 TEepI4RB!"j8ZBA4PH'Pd!!8L3$%c0$-!"CPcG'&bG!!&48!a-c8e!!9N3$%c0M3 !"B&!-6-h-3!'V5jIAf4dAema-90[BfYPG&4KBQaP4RB!"MPQBfa[Ff8!"LNZBfa [Ff8!"D*!-6-i-J!"0dG98dP"E'&bE3!&U%!a-cJi!!Bi,Q&XBA*Y!!I1Ff9MEfj NF`!"-h*PE@&TEQPZC`!&`%!a-cN`!!6*,N4[8faPCA"IAdCX!!9PG'PMDh-!"Vj hB@YPGA!!"D4!-63`-3!(G#jeFfaPCA!!!"PeFf9MEfjNF`!&TN!a0$!c!!-H,N0 YC&"PFQP[C&pI4P!a-89fC@jd8Q9MEh*N!!&r,NGPG&0MFQP`G%eKEQ&RCA*@BA* TB@*XC3!#9#j(CA46Bh*TF(4@BA*TB@*XC3!%6bj(CA45CA0[GA*MC3!&##j,CAP 8FQ&ZFfaKG'8!!'adD'9&GQ9ZG!!$T89fC@jd8Q9MEh*N!!6CGfKKG!!(5fePFh0 KCf8!"&0hD'9Z!!92GfKPFQ8!!5aYEf4TCQPPFR-!"mK,3dK58(4b!!9dD%Y$5&) !"FTcG'&dC3!'C'YPH80*C!!!3@KTCfK$D'&b!!HqE'ph3fKKFJ!(YfYPH8PZCQm !!ZGfDA*dG@&X5f9j!!GUDf9j3fpNC3!$j@C8D@eP9'p4G@Pd!!AM3$%d-M!!!PF Z4e9658PZG'9bFR9`G&pI4RB!!28Z6%e(CA4&GQ9ZG&&eCA9P!!CZCACPER44!!9 N4AC44@`!"4Ya6'PZD`!&Ie&&E'9Y!!@DF94jF'8!"Bja4'&dB3!!Ff9fG&&AD'& d!!-*CACd88ePFh0KCf8!!-jPGR449fKPEJ!"[f9fG&&AD'9bC3!&%f9fG&&0Ef4 TCQPPFR-!"30!-63c-!!#rP0dB@jN3@a[EQ8!!,9R4e96590`D@j$EfjdFQpX!!% jD@j'Eh*PCh*[G@jN*$%d-c%!"39!-63c-J!!##j(990*4'9QBA9XG&0`D@i!"98 Z8QpdBA4P3h9bFfpb!!BR,PGKDA41CAKd4ACPER3!!`8Z4QPZC>EQ4[G`!%`5j 6HA0dC@e$E'PMD`!%Cbj"49"bEf0PFh0"F("XC89fC@jd!!39,NCXGA0S4ACPER4 c!!!PFh"TEPpYFfF!"d468&p0590$!!'H8e"I8d9-4808!!IP8e"I6N&043!(8e0 3Ad&%4&)!"M"68&p69&*&38eI8N9"4!!(i&03Ae088N9"69pA8NP843!&"903Ad4 (8N&0Ae*&383!"S*68&p%4e*"69pA8NP843!!aP03Ae0-4893!!498e"I39986ep 68%P1!!-kBA*R!!FaBfpZG(*TBJ!%m@eKFfX!!5pcE'9PF&4TE@8!!L*PGJ!$@(G TEJ!!BdGbB@C3Eh*d!!DaC'9fD@0P!!"0F'pbG%*TG(-!"LC#DA40BA!!!,0LBA0 P3@4NFJ!!IR*[Gd*jG'9c!!BVBQpeEQ4c!!4r8Q9MG!!$,h4[F!!%$'aPCR3!"L* LEh4dEfd!"GCbD@GSG!!!*("[FR45C@0d!!B`GQPc8QGZ!!(&6@&M8Q9RD@pZ!!G "FQGZ8fPkC3!(cR*REN*#EhJ!"k4ME'P`8QGZ!!@CBQY3BA3!"kT3BA4dCA*Z!!0 KF'&d!!F8CQPXE&"KG!!&`("Z6'pM!!DVF'j6DATP!!BCF'j0Ef4P!!ArF'j3BA3 !"4G`EPCTF`!'hR4i4QpZG!!'9A4i4Q&MC3!'-A4i6@pNC3!'ih4i8fPkC3!(Zh0 `4AKdFQ%!"epQCd0[E'pb!!FiBQY$Efa[FJ!([@0[E(*#DA3!!XC`BA46G(*PG'0 S!!GdF'PM8f&fC3!(SA*REP0KGQ8!!!a`Efaj8f&fC3!"-QGbB@C3FQpMF`!()e& %8(*[Bh-!!%GdCAKd8(*[B`!"[e*[GA4TEQ9%CA0MFQP`G'pb!!FRCfp0DAKPC%e [C'98FQ&`!!B)FQpeG'PZC84PFf0bDA"dEh*'E'&RF`!"9R*PFf9bGQ9N-3!"9h* PFf9bGQ9N-J!%Gh0PE'9MG'pb5@jQE`!%+R*[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ9 5C@0[FQ4c!!8I8QpeG'PZC9*PBfpbC!!![h"bEf0*EQC[!!23590"!!6lFQpeG'P ZC8CXB@Gc!!D%F(*[Bd4PFf0bDA"dEh)!!0GcC@aPBh4[FJ!!M@aTEQ93FQpM!!# jFQ9MG&"bEf-!!3jb8Q9MG&"bEf-!!*&[GQ&X8(*[B`!()@&bBe"bEf-!!2"`Efa j8(*[B`!(JA*REP"bEf-!!+TLDA4c8(*[B`!$lQ0[E@ePER43FQpM!!)lG(K0C@& c8(*[B`!#j'GPG&"TBe"bEf-!!R&`GA43D@03FQpM!!@N3$%d1$!!",-ZAepMG&p I0dCPBA4eFQ9'9A06B`!!Bbj14f9d9(*KF%&NC(*PFh-!"k0dFQ&`6R9Y!!3UG&4 jF!!&TN!a0$Jb!!1k,PpIBh4IAcG'C@&dGA*P4P9XE!!!-5j(CA0dB@ad!!9BGQ& XG@8!")0KG(4b!!@S3$%d1$3!"--ZAepMG&pI0dCPBA4eFQ9'9@aXE!!&UN!a0$J f!!IU,PpIBh4IAcG'C@&dGA*P4P*$0dCPBA4eFQ934RCIF`!%`h"bC@0[EQ4TG'P [EJ!%$fPZDA3!"Da!-63i1!!&$LjIAf0dAemh4Q9KG(9bC8C34RCIF`!&a%!a0$N `!!IY,PpIBh4IAcG'C@&dGA*P4P*$0dCPBA4eFQ934RCIGJ!&b8!a0$Ne!!84,Pp IBh4IAcG'C@&dGA*P4P"'GPpf!!A,3$%d16F!"1dZAepMG&pI0dCPBA4eFQ9'8N- h4Q9KG(9bC9*$0dCPBA4eFQ8!"@9MEfjN-3!&CQ0[EQ3b!!+rEAPZCA3N-63j13! $0fejEQpNC53a06!`!!!aCA*b*$%e-$%!"DP!-68`-J!"ELj"F("XC94KE'Y*C'9 ZG'PdH9pI4P*c8R-!!)iZ69"36h"PEJ!(kLj(CA41Ef4P3@4NFQ9cF`!$ZQjPG!! %iQj[C'8!"E"!-68`13!"q#j(990*4'9QBA9XG&0PG(9`!!$D4e965AGTG'K"F(" XC94KE'Y6Ef0VCA4c!!+Q,NG98dP6CA4eF!!(#%G98dPhDA4S5@jdCA*ZCA46Ef0 VCA4c!!+)4e965AGTG'K339"6Ef0VCA4c!!,b4e965AGTG'K38%06Ef0VCA4c!!2 r4e965AGTG'K9EQPi8fpMDf9dF`!%#%G98dPhDA4S8dP299K6Ef0VCA4c!!A)3$% e-6%!"&*`FQpM!!A+3$%e-6-!"FY!-68a0!!'r&pI8P4859pI-6*6Ef0VCA4%Efe KD@i!!8PMD'p[Ff9IAc%b8fpMDf9d4'pYB@PZ4QP3Be"fD9"f8'N!"SpcEf0VCA4 `B@PbAema-P0[BfYPG%4[E@&TENCTFe"30P0[BfYPG!!"mA0[BfYPG&pI-6*6Ef0 VCA4%EfeKD@j'DA-!"J0IAf4dAema-P0[BfYPG%4[E@&TENCf!!##,PpIFfPZDA4 I4e96584TFh"KG'0SAf0`!!@UAepNG&pI-6&6Ef0VCA48B@*XC8Cf!!($,PpIFQ9 RDA0dCA*ICfa[BQ&XAfpLDQ9MG!!(F%PZDA4$8Nd!!#9*EQPd3e4#9A4TE'PdD@9 c!!A03$%e-6B!!5P(990*8f9dGA!!!hj86d-!!1C(990*4'9QBA9XG&0PG(9`!!$ $3A"`E'98B@aV5@4PER4TG(PIAdC5Fe*c!!1MAepMG&pI0dCPBA4eFQ9'8N-h4Q9 KG(9bC9*$0dCPBA4eFQ8!"&GIAf0dAemh4Q9KG(9bC8C34RCIGJ!'3epIBh4IAcG 'C@&dGA*P4P*$0dCPBA4eFQ934RCIGJ!%9&pIBh4IAcG'C@&dGA*P4P"'GPpc!!C !AepMG&pI0dCPBA4eFQ9'8N-h4Q9KG(9bC9"'GPpc!!25AepMG&pI0dCPBA4eFQ9 '9@aXE!!#-epIBh4IAcG'C@&dGA*P4P9XE!!$iPpIBh4IAcG'C@&dGA*P4P9c8f- !!3T(990*5@jdCA*bGA"dAep'GJ!'fR9cE'9PF!!&E@&XBA*Y!!*,4e96580SC@0 V3@aKFQeIAdCf!!9fAepfBepI-6&6Ef0VCA48B@*XC8CT!!GT8Q9YEhCPAema-90 [BfYPG&4KBQaP4QN!!-G*ER0dB@aXAema-90[BfYPG&4KBQaP4P!f8fpMDf9dD3! &cPpIBh4IAc%a8fpMDf9d9'&LE'9'GJ!$D84[ER46G(*TF&pI-6*6Ef0VCA4%Efe KD@j'GJ!'69pIBh4IAc%b8fpMDf9d4'pYB@PZ4QN!"lT5C@&NH9pI-6*6Ef0VCA4 %EfeKD@j'GJ!!-%4[E@&TEPpI-6*6Ef0VCA4%EfeKD@j'D3!&e%G98dP(CA4&GQ9 ZG(-!"H"(990*8f9d4ACPER4c!!0M4e9658GPG%K[EfX!!fC(990*8f9d5'p[D`! #qR0PG(0[BfY[F(3!!SCRCA4cEf0VEh"d!!-&D@pMG'acEf0VCA3!"%4NGA!b!!1 3!'4eF!!!RR0SGA4NEhGZ!!1LCf9dF'9PFQjKE@8!!jKRCA4cEf0VEQ&YC3!'jA0 PE'9MG!!%M(9`C'&dCA0dBA4eF`!(+h0PEQ4YFfF!"J0cC@jNG'm!")&cC@jN!!D VGh*TG'9f!!GMFQ9MGQecC`!!6R*PBhCQFQpY!!5aFQ9MGJ!$1Q0XEh0PFfpMDf9 d!!BKB@0MCA"d!!CeE'PcG'9Z!!G,BfpZEQ9MG!!%k'*TEQ3!"K9MD'p[Ff8!"$" `DA"P!!,8FfpMDf9dF'&TFJ!'ZA0[BfYPG!!&2QGPG'4dB@*XCA0THQ8!")T*EQP d3fpZFfpXC9pI-6&6Ef0VCA48B@*XC8Cf!!C-4'p"GA4[5@jTG%GbB@CIAc%h4e9 6580[EQCTCh9bBA4TEfj$4RB!!S46CA4%C@CKG@ad4P4jF'9IAc%h4e96580[EQC TCh9bBA4TEfj$4P*$194'D@aP8h"PB`!$U&pIBh4IAc%h4e96580[EQCTCh9bBA4 TEfj'GJ!'$%G98dPICA*bEh*IEQPX!!+L4e9659pPFR*[FJ!!#3P36eG5!*!'$I! !!"4D!!!!4`!!$P`!!!Aq!!!)1!#3"jm!!!!)!*"!4@F!!%9T!*!&!89U!!3!!!! #!!!!6!!!!#!!!!)MNq(rr$[J!!&)!!!XL!-!!#`!!$T!JJ!F1!!!!*J$!!#)!`! "I!!(G8'#!!Jlr`!"1'-!!BJ$!!"m!!Ge3),rd$Kr!!#$iIrm6S!!)%9U!!3!!!! &!!!!H!!!!)!!!!,[L!-!!(`!"h3X!!!U3B)!4%#!!#JX!2r&3B)!1%#!!"!X!2q f3B)!0%J!!%3X!!!!3B)!0%J!!$JX!!"F3B)!(%#!!#`X!!!r3B)!#%J!!#!iB!! "6S!!))`$!!&m!!Ge3))!$$KJ!!"1J!!J1'-!!8[rrj!!6S!!)%9V!!3!!!!'!!! #B!!!!-)!!!3DI!J#TVmKrq53!!%!#*3Krk!li`!!1i3!!$XP!!#$BJ!!1!!!!*! !!`")1!!!!*!!!`"-L!3!!(`!"h9!JJ!31!$rfl!E!!")!!#%L"`!!#`!!$T"JJ! X1(`!!$L!!$T)!!!"B!!!!#J$!!""JJ!81(m!!%J!!!&J!!!!5!!!8#JC!!""JJ! m1,rrq$LCrrJi!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!LJ"!!-N!" P!!L`"3!-5!!!%$Kr!!")!!!"B!!!!)JF!!!X!!!k3))!+)`F!!&m!!Ge3))!($J !!!#B(`"(1!!!!CJI!%BiI`!!5!!"@$Km!!")!!!"B!!!!$Y$!!#S'`!!I!!!0&3 !fAkB(`"'9!!'2d'#!"`iHJ!"5!!!!@!!!!#3!(m!5#J$!!"!JJ!-1(m!!%J!!4# !I`")1*`!!$Lk!!&)!!!"B!!!!)"r!%K)!!!"1k-!!#`G!(p!J3!81!$rfl!E!!! iI`!!5!!!f"ap!!a)!!!"B!!!!*!!I`"-+!-!!%##!!`iI`!!5!!!Z*Zr!%H$h`" )1k!!!%J!!&3iIJ!!5!!!!94J"Mp"JJ!-1)!!!%J!!!JiJ2rrJ(m!6"`G!!amJ`- ZJ*m!6"ap!!`i!`!)Im3",MKq!!!l[3!"5!!!!@!!!!"r`r)81pi!!BJI!%Gm!!G dI"d!!%'!rk3iI`!!5!!!!@!!!!"8B!Br3B)!%$J!!!#!I`"-X!-!!$Kr!!#!R`" -L,m!4hbP"h3i`!!"5!!!!@!!!!#BI`"'1(m!!)!"!'Ji)3"JI!J$TVXKrq41J!! J4A3$!*!%"`!!!"a&G3#3"3J!!!"F4A8!N!8*!!!!F%9e!*!&#J!!!-"&G3#3"3X !!!$m4A8!N!8-!!!"*%9e!*!&$3!!!8a&G3#3"3)!!!&B4A8!N!8-!!!"I%9e!*! &"3!!!Da&G3#3"3X!!!(S4A8!N!81!!!#$%9e!*!&$`!!!Ma&EJ`%!!!!)J!!!!b !!*!,J!!#B$J!!!"&G`#3"3B!N!4&D`!%!!!!)`!!!)`!!!(L!!!)F(`)!UD6iIr mNm(rq*!!!3!)P#(r`$[M!!#,``"(Ipi(G%J!!%!iI`!!J*m!6"`H!!amK!)8L"m !4h`!"h4m[J"31-!!!%J!!!&J!!!!Q(m!4P4J"Mp"JJ!-1'!!!8J!!"JX(J!!1pl rrd##rl`iB!!!Q(m!4S!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!&$`!!!%4 &EJ`%!!!!*3!!!!b!!*!,J!!!M"!!!!"&G`#3"5-!N!4&DJ!%!!!!*J!!!BJ!!!) U!!!*%R`)!UDr3IrSN!!"!!L8)Iq`1q-!!$ZN!!!la3!!Jd)!!%J!!35)(3!!I!! (G#`!!#T"JJ$83)!!(#`!rm9"JJ$)3)!!1#`!rlC"JJ!J5!!!,#`!!&a"JJ!83)! !)#`!!$p"JJ#!5!!!&)`G!!&m!!Ge3))!#$Zprrq)(`!!I!-(G)JG!!"m!!GdI!- !!%'#!&5,R`!!Ij`(G#`Frrp!JJ!-1'$rrdJ!!!aAJ!BqI(S!VSYp!!"rH`Gd,"[ rrd##!!`i!2rr5!!!$&GJ"Mjm'J#ZI!-!!%'#!!`iB!!!5!!!Q$[r!!%l[3!"5!! !2#`H!!!lh[rr3)!!$$KJ!!")!!"i1rm!!6Kr!!!iR3!"1,i!!8J!!!&8B!Br3B, re$KJ!!&)!!"8,"i!!$[Hrrp!J[li5!!!0)JG!!"m!!Gd,!!!+N'#!"4!J!!B,!$ ra8'#!!K)!!!-1ld!!8J!!!`iB!!!5!!!&)JG!!"m!!Ge3),rb$KJ!!'!!3"B1#% !8(`)!kDl3IrS6S!!)%9d!`#3"#F!!!!F4A8!N!8Q!!!"%%9Z$!3!!!!T!!!!$)! !N!Z!!!')-!!!!%9h!*!&*J#3"%9Z%!%!!!!U!!!!!IrrrrJ!!!`-!*!%4@X!"!! !!!m!!!(N!!!#q!!!$!am#!+Q[f(rl*!!!3!)P#(qN!!li`!!1m3!!(bm+hNlCJ! !Jk)!!%##!$3iI`!!5!!!!@!!!!"8B!Br3))!$$KJ!!")!!'3!$Kr!!")!!!"B!! !!$KJ!!&)!!&mU"i!!#`!rrp!JJ"i9f!'2d##!!`iB!!!5!!"B)"q!!L)!`!!I!! (G8##!"JiB3%31*m!!%J!!!&J!!!!5!!!'$KK!-JiR`!!J,i!#%J!!!&J!!!!U"d !!(`!"c9"JJ!-1'!!!%J!!43iI`!!1*i!$$Lmrrmi`!!"5!!!!8J!!2aAB!Br3B) !4$KK!)!iR`!!1+)!!%J!!!&J!!!!U"d!!#`!!!""JJ!-1'!!!%J!!-`i!!!!X"i !!+JI!!#`(J!#J"m!!T!!(J!%U"i!!V!I!!#!(J!%N!!I!!)iB3!i1*m!!+Lq!!! i"3!"X"i!!(`&"c4)!!!"B!!!!$LrrrJiJ3!`1!!!#(`*!kD%C!!)J!3!"*4P!!L 3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$+JG!!!X!!!!3))!3$Kr!!H!RJ!)L,m !"NJ!!!&8B!Br3B,rI$Kr!!!iRJ!-1,crrcM!!!&)!!!"9'!'2d'#rf!iB!!"5!! !#$KJ!!#!!3&i1#%"F(`)!kDlBIrX6S!!)%9d!`#3"!F!!!!J4A8!N!8V!!!!,%9 e!*!&,!!!!%K&G3#3"5d!!!#-4A8!N!8Z!!!!T%9e!*!&$`!!!0"&Fa!!N!3U!!! !k%9e!*!&,J!!!1a&G3#3"5m!!!&)4A8!N!8Q!!!"R%9e!*!&$`!!!EK&EJ`%!!! !-3!!!!b!!*!,J!!"j#J!!!"&G`#3"3m!N!4&D`!%!!!!-J!!!)!!!!2d!!!29A` )!UD6iIrmNm(rq*!!!3!)P#(r`*!!B3"B1'!!8%J!!!&J!!!!I(mEH8'#!"3iI`! !J)%!@$LJ!!")!!!"1pm!!)"L!!#S!`!!,!!!!%##!!`iIJ!!5!!!&$Kq!!")!!! "B!!!!$KJ!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"6-!!!!F4A8!N!8 '!!!!1%9d!`#3"!F!!!"!4A8!N!8d!!!!A%9Z$3)!!!!f!!!!%S!!N!F3!!!m!$` !#J!!LS!!(`#3"N9f#T`!!!!h!!!!$N9Z$!3!!!!i!!!!$)!!N!k!!*!%4AF!N!8 b!*!%4AF0!*!%0J!!!!K&D`!%!!!!13!!!#J!!!4%!!!2qA`)!UD3!!%!#*3Krm# 3!'%!@)"K!&K)!!!"J!%!5$JK!%"m#!1Q6S!!)%9e!*!&)`!!!"4&EJ`%!!!!1J! !!!b!!*!,J!!!+!#3"%9h!*!&13#3"%9V!!3!!!!l!!!!5!!!"'i!!"!lL!-!4LJ !!!""JJ!i116rq$M$rrJi!!!)I!N$TS5Q!!L!"J!%P+F!#*!!"`!%3J$rm)#Q!!L J"J!-N!#R!!L`"`!-L'-!4Nk!!#"&D`!%!!!!23!!!#`!!!5Z!!!3`h`)!UD3!!% !#*3Krm#3!'%!@)"K!&K)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"63!!!! 84@i-"!!!!$i!!!!-J!#3#i!!!#`!N!4&G`#3"6d!N!4&E`S%!!!!2`!!!!L!!*! 24AB!N!8p!*!%4AB2!*!%3!!!!!4&E`S%!!!!33!!!!L!!*!24AB!N!8l!*!%4AB 2!*!%3!!!!!4&E`S%!!!!3J!!!!L!!*!24AB!N!8j!*!%4AB2!*!%3!!!!!4&E`S %!!!!3`!!!!L!!*!24AB!N!8b!*!%4AB2!*!%3!!!!!4&E`S%!!!!4!!!!!L!!*! 24AB!N!82!*!%4AB2!*!%3!!!!!4&E`S%!!!!43!!!!L!!*!24AB!N!8M!*!%4AB 2!*!%3!!!!!4&E`S%!!!!4J!!!!L!!*!24AB!N!8'!*!%4AB2!*!%3!!!!!4&E`- %!!!!*`!!!!5!!*!,4AB&!*!%*`#3"%9[!`3!!!!(!!!!")!!N!Y&GJ8!N!3(!*! %4@m2"!!!!%!!N!5!!*!(4@J!!&0C68J!!!6J!!!!#3#3&3%!N!B#6!!!!!3!!!* 2!!!!$!!!!S3!!!!B!!!#RJ!!!#`!!!,(!!!!-!!!!Y8!!!"!!!!#frq3"!!!!Z` !!J!!!!-!!!"Q!3#3"!-!!!!%!!!!!`#3"4m!!3#3"J-V!!!!8!!!!fB!!!"B!!! $M`!!!'3!!!22!!!!E!!!!rMrN!3!!!3A!!%!!!!$!!!!CJ%!N!3$!!%!N!B%BJ! !!$`!!!5G!!!!5!!!",8!!!"X!!!%qJ!!!(`!!!8)!!!!K!!!"4J!!!#m!!!&33! !!-J!!!92!!!!e!!!"@J!!!$J!!!&T3!!!2J!!!AJ!!!")!!!"J%!!!%i!!!'2!! !!8!!!!C(!!!"@!!!"Qd!!!&S!!!'VJ!!!AJ!!!E6!!!"N!!!!!Ep!!!"Q!!!"`N !!!'S!!!(J`!!!HJ!!!IK!!!##!!!##!!!!)F!!!)-!!!!LJ!!!K)rj!%!!!)E3! '!!!!%2q3"!%!N!3I!!!!!`!!!'B"!*!%(!!!!"lrrrrj!3#3""N!!!!I!!!!CJ# 3"4i!!!!J!!!!!`#3"4d!!!!K!!!!!`#3"4S!!3#3"JL+!!!!*!!!#,8!!!"B!!! )k3!!!'`!!!Mjrj!%!!!*$`!#!!!!%2q3"!%!N!3I!!!!*!!!!!-!N!8H!!%!N!B *B3!!!#3!!!Pk!!!!D!!!#DS!!!"d!!!*[`!!!(J!!!S1!!!!f!!!#P!!!!$J!!! +J!!!!1`!!!Vd!!!!q!!!#``!!!%!!!!,+`!!!33!!!Y@!!!"(!!!#eX!!!%N!!! ,I3!!!6!!!!Z"!!!"0!!!#j3!!!&8!!!,``!!!9`!!![Q!!!"C!!!#rB!!!&`!!! ,r2q3"!!!$!N!!`!!!"J!!!"Q!3#3""m!!!!$!!!!CJ%!N!3G!!!!+!!!!!-"!*! %(J!"!*!'$&!!!!!S!!!-B`!!!$`!!!ae!!!!4!!!$)8!!!"3!!!-N`!!!&J!!!b Q!!!!C!!!$0%!!!"X!!!-pJ!!!(3!!!d'!!!!K!!!$4m!!!#B!!!0-J!!!+`!!!e 3!!!!f!!!$Bm!!!$J!!!0R3!!!23!!!f[!!!"!!!!$Em!!!%)!!!0dJ!!!5!!!!i X!!!"5!!!$Q8!!!'3!!!!$VB!!!'S!!!1r`!!!F3!!!mQ!!!"c!!!$cRrN!3!!!p (!!3!!!!3rj!%!3#3""m!!!!Errrrq`%!N!3H!!!!*!!!!!-"!*!%(!!!!$!!!!! '!3#3""X!!3#3"Jq$!!!!(!!!$iB!!!"3!!!2bJ!!!&J!!!rD!!!!C!!!$qVrN!3 !!!rf!!)!!!!$!!!!CJ%$!!!!@!!!!$ArN!3!N!8H!!%!N!B3)!!!!"3!!"!Mrj! %!!!31!!"!!!!0Iq3"!%$!!!!@!!"!*!'%(F!!!!-!!!3M!!!!%!!!"#Urj!%!!! 3`!!#!!!!0Iq3"!%!N!3$!!!!22rrrrF"!*!%"!#3#"$U!!!!&!!!%1d!!!!F!!! 3q[q3"!!!%2S!!3!!!$ArN!3"!`!!!&J!![rrrr`!!!!9!!!!4J!$!!!!&J!!!!X !N!FA!!!!!`!!!!)!!!!B!!!!!3!!!!B!![rrrrd!!!!6!!!!4J!"!!!!&2rrrr` !N!8#rrrrqJ!!!"`!!!!-!!3!!!!G!!!!#`#3"aB!!!!,!!!!!J!!!"F!!!!$!!! !"!!!!!-!!!"Q!!!!#!!!rrrrq`!"rrrrqJ!#rrrrrJ!!!"%!!!"3!!8!!!!5rrr rr3#3"aN!!!!'!!!!4J!!!!3!!!!(!!!!4`!!!"S!!!"Q!!!!5!!!!"[rrrrl!!! !6!!!rj!%!!(rrrrq!!$rrrrj!!(rrrrp!!(rrrri!!!!!3!!!!%!!!!(!!$rrrr h!!(rrrrm"+K(990*!!2E,P0XD@0P8f9RE@9ZG(0IAdC3B`!(SR"KG(4PFQi!!!K cC@GYC@jdF`!#Fbj)BA0AD@aN3f&bC(0IAdC3B`!"eLjIAf0dAemj9%CTE'9(E'p L4P"$Be"$194'D@aP8h"PB`!"l'9bFQpbAemj9%CTE'96F'9M!!IG,R0dFQ0SFJ! $H#j5EfpdAemj9%CTE'96F'9M4RB!"Q%Z4'9QBA9XG&pI194'D@aP8h"PBdCf!!H p,R0dFQaPEJ!$,#jIAfjhB9pI4P9X!!GP,QePE@0`H3!&1#j*Fe*[Eh4IAcP84QP XC90`C@0'GJ!%!Lj1CAKdAemj9%CTE'9(E'pL4P"4-MP84QPXC8GXEf)j3Q&MDe4 bB@0VD99M!!4EG'KTF`!"S94'D@aP4fa[BJ!#r5484QPXC90`C@-!!AY84QPXC90 `C@-!"b8N4P06F'9M!!B)4P06F'9M!!FHGP*PCNjeE3!&bR"KFNP%!!5VEQ&YC3! &eRCKE'PN!!DZF'&d3R9Q!!9FG(*KBfX!!F4#B@0V9(*KBfX!"@0TEQ4PH!!!A(0 dBA*d4'Pb!!EaF'&d8f9R!!"#Ff9R3fpeER3!"Re`BA4XC@i!"2T!1$Bc!!0P,Nj PH(4IAcP84QPXC8GXEf*'GJ!&N@4PF(4S!!3C3$Jh-J!%,Lj0BA4MD%jKE@9IAdC 33f033f0T!!-&AepeF("PFPpYBA!!"b&ZB@eP6'9Z!!4"3$N`0J!%Sd!j-cJ!"M- Z4AKTFh4cAemj9%CTE'96F'9M3dCf!!3),N*XCA0cAemj9%CTE'96F'9M4RB!!p3 ZAepYE9pI194'D@aP8h"PBdCf!!Dd,PpIBA"XAemj9%CTE'96F'9M4P"$B`!%)#j IAhCMAemj9%CTE'96F'9M3dCc!!32D@jTG!!%T%!j-cN!",BZ6Q9h4QPXC8GXEf) !!RXZAepZGepI4P9X!!*2,PpIC'aIAdC3GJ!%X@GXEf)!"-"!163e!!&FAepNE&p I4P"f!!6"3$Nd0J!&!Lj1CAKd4QPXC8GXEf)!"-0!163i!!"!,NCTE'9(E'pL-NC 68h"PB`!%Dh0`C@-!!-BZ4'PcF'pcC8CTE'9(E'pL!!6H3$Ne-`!(2d4TFh"[Ff9 'D@aP4fa[BJ!$IP423`!(RNCTE'9(E'pL-NC68h"PB`!%58jPH(4'D@aP4fa[BJ! $@%jPGdCTE'9(E'pL!!0(6Q9iG&pI194'D@aP4fa[BNC386)j9%CTE'9(E'pL18* KBfY8FQ&MDfP9B`!#ZdjPH(4IAcP84QPXC8GXEf*'GJ!!LPpIBh4IAcP84QPXC8G XEf*'8%0M8%-j9%CTE'96F'9M!!"36eG5!*!')J3!!%!%!!!"a!!!)R!!!"f8!!! -q!!!!"i!!!0&!!!!)!#33%9R!!"&D`!%!!!!Z`!!!!3!!!!J!!!'T%k!!#"&D`! %!!!![3!!!!3!!!"#!!!'fdk!!#"&D`!%!!!![J!!!!3!!!"N!!!(&%k!!#"&D`! %!!!!`!!!!!3!!!#'!!!(5dk!!#"&D`!%!!!!`3!!!2`!!!#S!!!)#T2Krrb$iJ! !,!1Q(%'#!*4!J!!d,!1Q&d'#!+"!J!!F,!1Q"d'#!+"!J!#d,!1Q!d'#!+")!!# S,!1Q'8'#!(")!!#F,!1Q)d'#!%"!J!!3,!1Q)8'#!%")!!#%,!-!!%'#!"4!J!" i,!1Q+8#!!(")!!!-1'!!!%J!!(`i!!!'N!!I!!")!!"X1!!!1T!!(`!!5!!!B$J !!$L3!"m!!%J!!&3i!!!jN!!I!!")!!")1!!!2C!!(`!!5!!!2$J!!$#3!"m!!%J !!$!i!!"!N!!I!!")!!!N1!!!3C!!(`!!5!!!'#`$!!"!J3!)5!!!#$KJ!"D3!(m !!$KJrrq$iIrm6S!!)%9d!`#3"-)!!!!%4@X!"!!!!-3!!!#J!!!")J!!$&"m#!+ QNq(rr*!!!3!)P#(r`$[M!!")!!!"B!!!!)!#!!#3!"m!!MKr!"`iJ!!!1+!!%%J !!!&J!!!!1(m!,$L!!!!iS!!35!!!!@!!!!!i!!!#Q"m!(6J!!"#B(`!F1!!!!CJ I!")i!!!!Q"m!%cJ!!!#3!"m!"MJ!!!#`(`!+J')!!%J!!!&J!!!!1(m!!)!"!%J i)3"!I!J$TS2Krra1J!!J4A8!N!A&!!!!&%9d!`#3"-B!!!!F4A8!N!A(!!!!-%9 e!*!&a`!!!%4&G!-!N!3#!!!!I%9e!*!&b!!!!)"&EJd#!!!!bJ!!!"D!!*!(#!! !0!#%!!S!!)D!!"m!N!T&GJS-!!!!b`!!!"*&EJ`%!!!!c!!!!!b!!*!1S!#3"%9 h!*!&a!#3"%9h$3#3"-S!!!!)4@X!"!!!!-d!!!#F!!!"C!!!$S"m#!+QNq(rr*! !!3!)P#(r`$[M!!#3!)%!A%J!!!&J!!!!J!)!!*!!(`!#J!%!A*!!(`!11!!!!TJ I!"di!!!3Q"m!($J!!!+B(`!Y1!!!%*JI!#`i!!!"Q"m!%MJ!!!@B(`!m1!!!!*J I!"-i!!!!N!!I!!Bi!!!!X"m!#S"L!!")!!!"B!!!!$Kr!!#!!3")1#%!3(`)!kD $iIrm6S!!)%9e!*!&a3!!!"K&G!-!N!6'!!!!)%9d!`#3"!)!!!"i4A8!N!A)!!! !I%9Z$3)!!!$1!!!!&S!!N!F)!!#!!)!!#J!!KS!!(`#3#N9f#J`!!!$,!!!!%N9 Z$!3!!!$2!!!!$)!!N!kF!*!%4AF!N!A0!*!%4AF0!*!%cJ!!!!K&D`!%!!!!d!! !!(!!!!'N!!!3*R`)!UD6iIrmN!!"!!L8)Ir!I(mEHE#"!&j"JJ"!J!)!!*!!(`! #J')!!%J!!!&J!!!!1(m!!$L!!!")!!!"B!!!!+J"!&iX!!!!3)%!%$Kr!!")!!! "B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"-B!!!!F4A3$!*!%!J! !!#4&G3#3"G%!!!!S4A8!N!A5!!!!1%9e!*!&d`!!!&"&EJ`%!!!!e!!!!!b!!*! ,J!!!F!J!!!"&G`#3"G!!N!4&D`!%!!!!e3!!!!J!!!(1!!!3B6KJ!!"1J!!J4@X !"!!!!0B!!!$`!!!"iJ!!%*Gm#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$[ M!!"mR#0jNi-!"N'#!+!i!!!!Q!%!1MJ!!!#B!3!j1m!!!$ZJ!!#S(`!-9!!(rd' #!!Jl`3!kU"m!$&3!"le"JJ!)1k%!16Kr!!!iRJ!!1,d!!$M!!!#"R`!#JB`!@%J !!!&J!!!!,!-!!%'#!%L)!3!j+!!!!%'#!"5!I`!'1)!!!NJ!!!&J!!!!L!%!1LJ !!!""JJ!JJ(m!"ML!!!&)!!!"B!!!!%J!!!`i!!!!X"m!$)!"!&Ji)3"3I!J$TS2 Krrb$`IriJk(rp)1"rr"1J!!J4A8!N!AA!!!!I%9e!*!&f!!!!+"&G3#3"GJ!!!# m4@i-"!!!!0i!!!!-J!#3#i!!!2!J!!!!4AF!N!A@!*!%4@X!"!!!!0m!!!"B!!! #UJ!!%`Tm#!+QNq(rr*!!!3!)P#(r`,"K!&U`J3"HN!#K!'#!BJ!!U)%!@NJ!!!& J!!!!1!!!!,!$!!US!3"HX!-!$)#"!'")!!!"J!%!5$JK!%"m#!1QJq(rr%k!!#" &G!-!N!6J!!!!(%9e!*!&i3!!!#4&G3#3"GB!!!"!4@i-"!!!!18!!!!-J!#3#i! !!&J)!!!!4AF!N!AI!*!%4@X!"!!!!1B!!!$X!!!$$J!!&bCm#!+QNq(rr*2"rrL 3!!%!#*3Krm!l``!!N!#"!&b3!+%!B)2K!&b!!3"J,!!!%%#!!"3iB!!@5!!!!@! !!!")!!#BL"m!!5J!!!*"JJ!81'!!,dJ!!!&J!!!!5!!!I+!H!"iS!!!!3B)!&$K J!"C)!!!"B!!!!%J!!'#!(`!%+!!!!%'#!$L!I`!%2!1"!#J!!!&"JJ!S5!!!!@! !!!#!(`!%I!!B3%'#!"3iB!!a5!!!!@!!!!")!!!JJ"m!"*!!(J!JS"m!!V!H!"i i!!!3Q"i!($KJ!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"HF!!!!d4A8 !N!AR!!!!8%9e!*!&j`!!!'a&G3#3"HJ!!!#84A8!N!AR!!!!V%9Z$!3!!!$X!!! !$)!!N!Z!!!$X%!!!!%9h!*!&jJ#3"%9V!!3!!!$Y!!!!J!!!!k)!!"ZlI!J#TT2 Krrb3!!%!#*3Krm#3!'%!@*!!J3"F1q8!!)!&!!!X!!!!3)!!&$KJ!"C)!!!"B!! !!%J!!$L!B3"FJ)%!@$L%!"b!(`!!,!!!%%#!!!b![`!!5!!!#$LJ!"#3!,m!!%J !!!&J!!!!1'!!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!AR!!!!,%9e!*!&lJ! !!'"&EJ`%!!!!l`!!!!b!!*!,J!!!J!J!!!"&G`#3"Hd!N!4&D`!%!!!!m!!!!+! !!!2`!!!H5h`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#3!)%!A$[P!!#!"3!!,!! !!%#!!"3iB!!@5!!!!@!!!!")!!"3L"i!,#J!!!"!JJ!81'!!18J!!!&J!!!!5!! !0)"K!&`iRJ!XJ"m!!#`!!""!J!!-J,m!!%J!!!JiS!!3N!#r!!")!!!"B!!!!$K J!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"HF!!!!`4A8!N!AR!!!!6%9 e!*!&lJ!!!(a&EJ`%!!!!m3!!!!b!!*!,J!!!S"!!!!"&G`#3"I!!N!4&D`!%!!! !mJ!!!*J!!!41!!!JaR`)!UD6iIrmN!!"!!L8)Ir!1q-!!*!!J3"FJ!%!A#`!!!& "JJ!`3)!!%#`!!!"!J!!85!!!3#`!!!0!J!!i5!!!*)JI!"*J!!!#Q"m!%NJ!!$5 )(`!5B!!!"*JI!"*)!!!NL"m!%Q!!!!DB(`!55!!!&$KJ!"C)!!!"B!!!!%J!!!J iB!!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"HF!!!"d4@i-"!!!!23!!!!-J!# 3#i!!!*J)!!!!4AF!N!Ab!*!%4@X!"!!!!28!!!#F!!!%TJ!!*5Pm#!+QNq(rr*! !!3!)P#(r`$[M!!#3!)%!A*!!S3"JJ!%!A#`!!!4"JJ!`3)!!9#`!!!0!J!!)5!! !5)JI!"-S!!!!3B)!$$KJ!!4)!!"!1'!!!%J!!$L!!3"J9!!(Hd'#!"!i!!!"Q"m !%dJ!!!`i!!!!Q"m!%cKJ!!")!!!31'!!,8J!!!&J!!!!J!%!5$JK!%"m#!1QJq( rr%k!!#"&G3#3"HF!!!#!4@i-"!!!!2J!!!!-J!#3#i!!!*`)!!!!4AF!N!Ae!*! %4@X!"!!!!2N!!!$B!!!&*!!!*c"m#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#( rX$Z$!!!lT!!!1q8!!&5HK2j8J!"$3B)!)#`H!!""JJ!B1(m!!$L!!!!i[J!!5!! !!@!!!!#6i3!i2'"!"$KMCRpm(4J!3B)!,%#!!%JmB)!%1'0QIR`G'!""JJ!)5!! !0)!I!!#B(!!61'!!!%J!!$!iI!!!JC`!!S'-!'4)!!!"B!!!!*!!I`!!1'!!!%J !!"!iB!!Y5!!!!@!!!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9 e!*!&a`!!!%K&G3#3"GF!!!#B4A8!N!AR!!!!X%9Z$!3!!!$r!!!!$)!!N!Z!!!$ B)!!!!%9h!*!&q3#3"%9V!!3!!!%!N!3S!!!&VJ!!+MPm#!+QN!!"!!L8)Ir!J') !!%J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9d!`#3"!)!!!!-4A8!N!3"!3!!!"" &EJ`%!!!"!J!!!!b!!*!,J!!!+!#3"%9h!*!%!3#3"89V!!3!!!%$!!!!I!!!"G) !!#U#I!J#TT2Krrb3!!%!#*3Krk!li`!!1)!!!NJ!!!&J!!!!J!)!!*!!(`!!1'% !1%J!!!&J!!!!1!!!!E!I!!3i!!!"X"m!"MJ!!!#`(`!)1!!!!,!I!!Si!!!!X"m !$$J!!!#3!"m!$MKr!!#!!3"S1#%!B(`)!kD$iIrm6S!!)%9e!*!%!33!!!!B4A3 $!!!!!38!!!!J4A8!N!3""J!!!#a&EJd#!!!"'3!!!"D!!*!(#!!!-!!`!!S!!)D !!"m!N!T&GJS-!!!"'J!!!"*&EJ`%!!!"'`!!!!b!!*!1I!#3"%9h!*!%!3-!N!4 &G`d!!!!"'3!!!!K&EJ8"!!!"(!!!!!Arrrr)!!!VP`3Z59"3!!!!4@X!"!!!!4d !!!"m!!!'#J!!+jGm#!+QNq(rr*!!!3!)P#(rF$[M!!#S!`!%,!!!!8##!$3i!!! !N!!"!%5!!J!!N!!"!%Si!!!!Q!%!8cKK!$K)!!!"B!!!!,"r!!5S!3"3X"m!#+J I!!3X!!!!3B)!$$KJ!!")!!!)U(m!#)!"!*Ji)3#3!(`)!kD$iIrm6S!!)%9d!`! !!!%F!!!!+%9e!*!%!4i!!!!m4@i-"!!!!@i!!!!-J!#3#i!!!(`)!!!!4AF!N!3 "(3#3"%9V!!3!!!&[!!!!6!!!"P)!!#cKI!J#TT2Krrb3!!%!#*3Krm!li`!!5!! !!DJI!!BX!!!"3))!&$KJ!!")!!!"B!!!!,"r!!DSI`!'J!%!5$JK!%"m#!1QJq( rr%k!!#"&G3#3"!%G!!!!&%9e!*!%!A!!!!!S4@i-"!!!!A%!!!!-J!#3#i!!!%` )!!!!4AF!N!3"E`#3"%9V!!3!!!&b!!!"D!!!"S`!!$09I!J#TVmKrq53!!%!#*3 Krk#3!'%!H*!!J3"mJq)!!$[!!!#!(`!!N!!"!$Ji!!!!N!!I!!#!B3"i5!!!!Aa J"c9!JJ!`1'!!-NJ!!!&J!!!!1f-!!)!I!!!X!!!!3))!$)!"!$L3!"m!!$Kl!!" )!!$XJ!%!I#`!!!*"JJ!m3)!!B#`!!!&!J!!)5!!!9$KJ!%C)!!!"B!!!!(ap'hP "JJ!31(d!!%J!!!&J!!!!1pd!!%J!!$JiB!"#5!!!!@!!!!"mI"Yj3B)!%$Km!!" )!!!"B!!!!$[F!!")!!!31'!!,%J!!!&J!!!!+"i!!%'#!&#!(`!!,!!!!%'#!%3 X(J!!3B)!($Kq!!!iJ!!"JCi!!S'-!'")!!!"B!!!!$Y!!!#!(`!!,!!!!%##!!b !!3!iN!!I!!!iHJ!!5!!!)$Xq!!#!(`!!,!!!!%##!!b!!3!iN!!I!!!iH3!!J!% !D$JK!'"m#!1QZb(rj%k!!#"&G!-!N!6#!!!!'%9e!*!%!4d!!!!d4A8!N!3"F`! !!%4&G3#3"!&d!!!!M%9e!*!%!A8!!!#J4A8!N!3"G!!!!,4&G3#3"!&f!!!!b%9 e!*!&j`!!!0a&G3#3"GF!!!%34@i0!J!!!AX!!!"#J!#3"cJ!!$J!N!!!+J#N!+3 !)J#i!,J!+J$-!-`!-J$J!43!+J!!#S!!(3#3"))!!$J!N!3+J!!F!*!%JJ!!1!# 3"N9f#J`!!!&m!!!!*N9f#J`!!!&p!!!!,N9f#J`!!!&m!!!!0N9f#J`!!!&p!!! !2N9Z$!3!!!&q!!!!$)!!N!d"D!#3"%9h!*!%!A)!N!4&G`d!!!!"H`!!!!K&D`# %!!!"I`!!!'L!!*!(I!J#TT2Krrb3!!%!#*3Krm"mIaYjX)%!AN'#!$L!BJ!!J!- !!#`!!!"!JJ!3J"m!!)"L!!#3!!-!!+J"!&iX!!!!3)%!%$Kr!!")!!!"B!!!!$K r!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9d!`#3"-)!!!!F4A3$!*!%`J!!!$"&G3# 3"G-!!!")4@i-"!!!!B!!!!!-J!#3#i!!!'J)!!!!4AF!N!3"I`#3"%9V!!3!!!' "!!!!6!!!"c!!!$6qNq(rr+L$!!`i"!!"X!-!$(`!"c3X!!!J3))!$$J!!!#`!`! -J)-!$UJ$!!`F!!"UIq3#&+JI!"!X!!!"3B,rb$Kr!!#$iIrm6S!!)%9V!!3!!!$ )!!!!D!!!"i!!!$@mI!J#TT2Krrb3!!%!#*3Krm!li`!!U'-!#MJ$!!'`(`!+I'! (08##!$!iB!e!5!!!!@!!!!#3!(m!$LJ$!!"!JJ!B1!!!$)"L!!#3!!-!!$J!!!# `(`!+J!%!5$JK!%"m#!1QJq(rr%k!!#"&G3#3"!'$!!!!,%9d!`#3"-)!!!"%4@i -"!!!!B3!!!!-J!#3#i!!!'J)!!!!4AF!N!A)!*!%4@X!"!!!!0%!!!"3!!!(ZJ! !0P4m#!+QNq(rr*!!!3!)P#(r`$[M!!#SB`!+1!2rrl!I!!Tm!!Fe3))!')"r!!j )!!!"B!!!!$J!!!#3!"m!$S!"!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!3"K3!!!#a &EJ`%!!!"KJ!!!!b!!*!,J!!!8!J!!!"&G`#3"G%!N!4&EJ8"!!!"K`!!!"(rrrq j!!!f9%P14946Ef0VCA4%EfeKD@i!N!4&EJ8"!!!"L!!!!!hrrrqi!!!f9&0[BfY PG%4[E@&TEJ!`"2*&EJ8%!!!"L3!!!!Mrrrqh!!!f9!#3#%9f"3!!!!')!*!%4@i &"!!!!BS!!!!-rrrrYJ!!0P3!N!a&GJ8!!!!"L3#3"%9Z"33!!!',!!!!#2rrrl8 !!$C8!*!)4AB&!!!!!BF!N!4&GJ8!!!!"LJ!!!!4&E`8%!!!""3!!!"Mrrrqd!!! f9!#3'%9f"3!!!!',!*!%4AB+!!!!!B`!!!!84AB+!!!!!Bd!!!!34AB+!!!!!Bi !!!!)4AB+!!!!!Bm!!!!-4@X!K!!!!C!!!!!!C)!!N!Gm#!+QNq(rr*!!!3!)P#( r`(ar'hQ`J3"H3B)!0)!#!!#3!"m!!$Kr!!!iJ!!!5!!!!@!!!!#S!3"H,!!!!%# "!"!iI`!!5!!!!@!!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!!!!""3! !!"a&G3#3"!'4!!!!,%9e!*!&d`!!!%4&EJ`%!!!"NJ!!!!b!!*!,J!!!C!J!!!" &G`#3"!'3!!#3"%9Z"3%!!!'6!!!!#rrrrl-!!$C858j&9&0[BfYPG!"J4@i&!3! !!C3!!!!(rrrrXJ!!0P46Ef0VCA3!mN9Z"33!!!'9!!!!#2rrrl%!!$C8!*!)4AB &!!!!!C3!N!4&EJ8%!!!"PJ!!!!crrrq`!!!f9!#3$%9f"3!!!!'9!*!%4@i&"!! !!CF!!!!)rrrrV`!!0P3!N!K&GJ8!!!!"N`#3"%9f"3!!!!'@!!!!"%9["33!!!$ '!!!!D2rrrki!!$C8!*"S4AB&!!!!!CF!N!4&GJS!!!!"Q!!!!&a&GJS!!!!"Q3! !!&K&GJS!!!!"QJ!!!&4&GJS!!!!"Q`!!!%a&GJS!!!!"R!!!!%K&GJS!!!!"R3! !!%4&GJS!!!!"RJ!!!%"&GJS!!!!"R`!!!$4&GJS!!!!"S!!!!$"&GJS!!!!"S3! !!#4&GJS!!!!"SJ!!!#"&GJS!!!!"S`!!!"a&GJS!!!!"T!!!!"K&GJS!!!!"T3! !!"4&GJS!!!!"TJ!!!""&GJS!!!!"T`!!!!a&GJS!!!!"U!!!!&"&GJS!!!!"U3! !!$a&GJS!!!!"UJ!!!$K&GJS!!!!"U`!!!#a&GJS!!!!"V!!!!#K&GJS!!!!"V3! !!!K&GJS!!!!"VJ!!!'4&GJS!!!!"V`!!!'"&DJ!%!!!"X!!!!$5!!*!(I!J#TT! !!3!)P#(r`)"L!!")!!!"J))!!)#L!!")!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#" &G!-!N!3#!!!!$%9e!*!%!3-!!!!34A3$!!!!!Bi!!!!84A3$!*!%!3!!!"K&G3# 3"!'a!!!!(%9Z$!3!!!'b!!!!$)!!N!Z!!!!d!*!%4AF!N!3"X!#3"%9Y"33!!!! #!!!!%[rrrri!!!Bp4@`&!3!!!!%!!!!-rj!%!!!'289[#S3!!!'1!!!!#)!!N!p &GJ#3"!'3!!#3"%9f$`!!!!'c!!!!"%9[#J3!!!'d!!!!#)!!N!p&GJ#3"G%!N!4 &GJm!!!!"X`!!!!4&E`S%!!!"Y3!!!!L!!*!24AB!N!A)!*!%4AB2!!!!!E-!!!! %4@m+"!!!!EB!!!!)J!#3$d9f!*!%!B%!N!4&GJm!!!!"X`!!!!4&E`U%!!!"I3! !!!L!!*!24AB!N!3"I`#3"%9f$`!!!!'c!!!!"%9[#J3!!!'2!!!!#)!!N!p&GJ# 3"!&b!*!%4AB2!!!!!E-!!!!%4@m+"!!!!EF!!!!)J!#3$d9f!*!%!@m!N!4&GJm !!!!"X`!!!!4&E`S%!!!"Z!!!!!L!!*!24AB!N!3"(3#3"%9f$`!!!!'c!!!!"%9 [#J3!!!'j!!!!#)!!N!p&GJ#3"!%$!*!%4AB2!!!!!E-!!!!%4@m+"!!!!ES!!!! )J!#3$d9f!*!%!3#3"89f$`!!!!'c!!!!"%9[#J3!!!'T!!!!#)!!N!p&GJ#3"IN !N!4&GJm!!!!"X`!!!!4&E`S%!!!"UJ!!!!L!!*!24AB!N!Ae!*!%4AB2!!!!!E- !!!!%4@m+"!!!!DJ!!!!)J!#3$d9f!*!&mJ#3"%9f$`!!!!'c!!!!"%9[#J3!!!' V!!!!#)!!N!p&GJ#3"I!!N!4&GJm!!!!"X`!!!!4&E`S%!!!"V!!!!!L!!*!24AB !N!AY!*!%4AB2!!!!!E-!!!!%4@m+"!!!!Dd!!!!)J!#3$d9f!*!&jJ#3"%9f$`! !!!'c!!!!"%9[#J3!!!'l!!!!#)!!N!p&GJ#3"Gm!N!4&GJm!!!!"X`!!!!4&E`S %!!!"[!!!!!L!!*!24AB!N!A@!*!%4AB2!!!!!E-!!!!%4@m+"!!!!Di!!!!)J!# 3$d9f!*!&e3#3"%9f$`!!!!'c!!!!"%9[#J3!!!'[!!!!#)!!N!p&GJ#3"G!!N!4 &GJm!!!!"X`!!!!4&E`S%!!!"[3!!!!L!!*!24AB!N!A0!*!%4AB2!!!!!E-!!!! %4@m+"!!!!Ei!!!!)J!#3$d9f!*!&a!#3"%9f$`!!!!'c!!!!"%9[#J3!!!'r!!! !#)!!N!p&GJ#3"F%!N!4&GJm!!!!"X`!!!!4&E`S%!!!"`!!!!!L!!*!24AB!N!A !!*!%4AB2!!!!!E-!!!!%4@m+"!!!!F%!!!!)J!#3$d9f!*!&[J#3"%9f$`!!!!' c!!!!"%9[#J3!!!(#!!!!#)!!N!p&GJ#3"Ed!N!4&GJm!!!!"X`!!!!4&E`S%!!! "``!!!!L!!*!24AB!N!@l!*!%4AB2!!!!!E-!!!!%4@i$"!!!!!%!!!!%J!#3#d9 f"3#3"!%!N!4&E`-%!!!"MJ!!!!5!!*!,4AB+!!!!!Bi!N!4&EJ-%!!!"(!!!!!5 !!*!,4AB&!!!!!4`!N!4&E`-%!!!""3!!!!5!!*!,4AB&!!!!!38!N!4&E`-%!!! !i!!!!!5!!*!,4AB&!*!%i!#3"%9[!`3!!!!#!!!!")!!N!Y&GJ8!N!3#!*!%4@m $"!!!!-B!!!!%J!#3#d9f"3#3"-B!N!4&E`-%!!!!`J!!!!5!!*!,4AB&!*!%`J# 3"%9[$`3!!!'c!*!%J!#3"d9S!!"6@8e)!!!(p!!!!&)!!!!)!*!4!3#3"JE1rj! %!!!'f!!"!!!![!!!!!)"!*!%!`!"!*!'"`IrN!3!!!F4!!%!!!#m!!!!#J%!N!3 $!!%!N!B(2[q3"!!!"dJ!!3!!!,m!!!!#!3#3"!-!!3#3"JGhrj!%!!!(J3!"!!! ![`!!!!S"!*!%!`!"!*!'##F!!!"d!!!)6!!!!(`!!!Ld!!!!L!!!#4X!!!#8!!! *H3!!!+!!!!R8!!!!V!!!#Mm!!!#i!!!+X`!!!-3!!!X&!!!!d!!!#dN!!!$F!!! ,L`!!!2!!!![krj!%!!!-"3!"!!!!``!!!!-"!*!%!`!"!*!'$'S!!!!`!!!-RJ! !!%3!!!c*!!!!J!!!$D8!!!#)!!!0[rq3"!!!$Em!!3!!!-RrrrrA!3#3""m!!3# 3"JkU!!!!I!!!$md!!!#%!!!3)rq3"!!!%#-!!J!!!-RrrrrA!3#3""m!!!#V!!! !!J%$!!!!A!!"!*!'%%!!!!!S!!!33rq3"!!!%&i!!3!!!-RrrrrA!3#3""m!!3# 3"K#+rj!%!!!3P!#3#K$#!!!!,!!!%2)!!!"3!!!4I3!!!&3!!"'9!!!!B!!!%EB !!!"N!!!4dJ!!!)`!!"))!!!!Q!!!%K`!!!#S!!!56`!!!,3!!"*L!!!!a!!!%TJ !!!$)!!!5T!!!!0!!!"+frj!%!!!5YJ!'!!!!bIrrrpF"!*!%(`!!!0N!!!"N!3# 3""`!!!$D!!!!D!#3"4d!!!$E!!!!D!#3"4i!!!$F!!!!"J!$!!!!13!!!0d!!!! '!!-!!!!k!*!)%dB!!!!N!!!653!!!%!!!"1T!!!!4!!!%m2rN!3!!"2$!!3!!!$ L!!!!#`%$!!!!@J!!!1-!!!!,!3-!!!"H!!!!j!!!!'3"!`!!!'!!!!#Mrrrre`# 3"4m!!3#3"KG9!!!!-!!!&m3!!!"!!!!Ai3!!!%`!!"J%!!!!A!!!'#F!!!"S!!! B8`!!!(J!!"Lp!!!!P!!!'3S!!!#S!!!C2`!!!,J!!"RJrj!%!!!DEJ!%!!!!bIr rrpF"!*!%(J!!!1N!!!"N!3-!!!"F!!!!kJ!!!!-"!`!!!'!!!!$Vrrrrd3#3"4m !!3#3"K[a!!!!+!!!(!J!!!!i!!!F*Iq3"!!!((i!!`!!!-RrrrrA!3-!!!"B!!! !k`!!!'3"!`!!!&`!!!$Urrrrd!%!N!3I!!%!N!BHJ3!!!#`!!"kB!!!!2!!!(V3 !!!")!!!HbJ!!!&J!!"lVrj!%!!!I4J!$!!!!bIrrrpF"!*!%(J!!!1X!!!"N!3- !!!"F!!!!k[rrrp!"!*!%(`!"!*!')1J!!!"!!!!K"J!!!&!!!#%k!!!!B!!!)@i !!!"`!!!KZ!!!!)!!!#(Crj!%!!!Ki`!#!!!!bIrrrpF"!*!%(`!!!2-!!!!$!3- !!!"F!!%!N!BP@J!!!$J!!#AY!!!!4!!!*J%!!!"-!!!Q'`!!!&3!!#DR!!!!B!! !*Vd!!!"X!!!Qf`!!!(3!!#Ee!!!!I!!!*`[rN!3!!#FY!!-!!!$*rrrre`%!N!3 I!!!!pJ!!!!)"!`!!!&`!!!$h!!!!!`%$!!!!B!!"!*!'*fJ!!!!d!!!SMJ!!!$` !!#M(!!!!8!!!+-X!!!"m!!!T)J!!!)`!!#Q*!!!!V!!!+FcrN!3!!#RZ!!8!!!$ *rrrre`%!N!3F!!!!qJ!!!!)"!*!%(3!!!2X!!!"N!3#3""m!!!$m!!!!!`#3"4i !!!$prrrrc`!$!!!!1!#3##TM!!!!$!!!+QB!!!!B!!!UIrq3"!!!+Rm!!!!"!*! '+UJ!!!!X!!!Ua2q3"!!!+j3!!J!!!-Rrrrr0!3#3""m!!!%(rrrrc!!$!!!!1!! "!*!'+lJ!!!!J!!!Vl!!!!$`!!#aQ!!!!8!!!,,RrN!3!!#cH!!)!!!$*rrrrc3% !N!3I!!!!$[rrrmF!!`!!!$J!!3#3"Ld%!!!!&!!!,3F!!!!N!!!Y,!!!!$3!!#e 5rj!%!!!YD!!"!!!!bIrrrmd"!*!%(`!"!*!'-iJ!!!!d!!!c[J!!!%!!!$22!!! !E!!!-rm!!!#)!!!d*!!!!,!!!$4C!!!!f!!!0)B!!!$N!!!dUJ!!!1`!!$5f!!! !q!!!0-B!!!%B!!!df3!!!6J!!$6Zrj!%!!!dq`!%!!!!bIrrrmd"!`!!!(J!!!& h!!!!!`%$!!!!I!!!!AMrrrqk!!-!!!!i!!!!SrrrrpF!N!8H!!%!N!Be*J!!!!3 !!$9)!!!!(!!!0@3!!!!N!!!eG3!!!%!!!$@Vrj!%!!!eZ3!#!!!!bIrrrmd"!*! %!`!!!B,rrrrm!*!&(`#3#$AJ!!!!+!!!0IJ!!!"!!!!f*`!!!&3!!$C4rj!%!!! f83!"!!!!bIrrrmd"!*!%(`#3#$Cj!!!!+!!!0T)!!!!d!!!fU3!!!$`!!$Dkrj! %!!!fZJ!"!!!!bIrrrmd"!*!%(`!"rj!%!!!!$!!!!!%!!!!(!!,rrrrp!!!!"3! !!!3!!3!!!!B!!!"N!*!&!IrrrrJ!!!!-!!!!!3!!!!F!!2rrrr-!!3!!!'S!![r rrr3!!!!G!!!!&!!(!!!!(J!!!!)!N!FB!!!!"`!!!!3!!!!I!!!!"`!!!!8!!!! J!!!!#J!!!!B!!!!Krrrrm`!!!!J!!!!C!!!!!J!!!!`!!!!L!!!!!J!!!"!!!Ir rrr8!!!!8!!!!&2rrrr3!![rrrrB!!!!8!!!!)!!)!!!!&3!!!!S!N!F@!!!!"`! !!!)!!!!A!!!!"J!!!!-!!!!B!!!!!J!!!!3!!!!C!!!!"J!!!!J!!!!D!!!!"J! !!!N!!!!E!!!!#J!!!!S!!!!Frrrrp3!!!!`!!2rrrrF!!IrrrrB!![rrrr%!!!! X!!!!%!!%!!!!,3!!!'B!N!FZ!!!!!J!!!!3!!!![rrrrp`!!!!J!!!!`!!!!CJ! !!!`!!Irrrqm!!!!S!!!!!3!!!!F!![rrrr!!!!!b!!!!3J!3!!!!-`!!!!F!N!F d!!!!"`!!!!%!!!!e!!!!"`!!!!)!!!!f!!!!"`!!!!-!!!!h!!!!!J!!!!3!!!! i!!!!#J!!!!J!!!!j!!!!!J!!!!S!!!!k!!!!#J!!!!i!!!!l!!!!"`!!!"!!!!! m!!!!"`!!!"%!!!!p!!!!"J!!!")!!!!q!!!!"`!!!"-!!!!r!!!!"`!!!"3!!!" !!!!!"`!!!"8!!!""rrrrl`!!!"B!!!!`!!!!CJ!!!$i!![rrrqi!!!"$!!!!&!! +!!!!-`!!!!F!N!Fd!!!!"`!!!!%!!!!e!!!!"`!!!!)!!!"%!!!!"J!!!!-!!!" &!!!!"J!!!!3!!!"'!!!!"`!!!!8!!!"(!!!!CJ!!!!B!!!")!!!!!J!!!!S!!!" *!!!!#J!!!!i!!!!`!!!!CJ!!!"!!![rrrqd!!!",!!!!&J!+!!!!0J!!!!F!N!G -!!!!"J!!!!%!!!"&!!!!"J!!!!)!!!"'!!!!"`!!!!-!!!!Y!!!!CJ!!!!3!!!! Z!!!!#J!!!!J!!!"0!!!!CJ!!!!S!!!"1!!!!#J!!!!i!!!"2!!!!#J!!!"!!!!! `!!!!CJ!!!")!![rrrq`!!!"4!!!!#!!&!!!!-`!!!!F!N!Fd!!!!"`!!!!%!!!! e!!!!"`!!!!)!!!"'!!!!"`!!!!-!!!!`!!!!CJ!!!!3!![rrrqX!!!"6!!!!"!! "!!!!-!!!!'B!N!8#rrrrjJ!!!(!!!!!'!!)!!!"a!!!!#J#3"h)!!!!#!!!!!J! "rrrrj`!!!#S!!!!'rrrrjJ!#rrrrk!!!!'8!!!"@!"!!!!"Q!!!!!J#3"fF!!!! #!!!!"!!!!'J!!!!#!!!!#!!!!'N!!!!#!!!!$!!!!'S!!!!#!!!!%!!!!'X!!!! #!!!!&!!!!'`!!!!#!!!!'!!!!'d!!!!#!!!!(!!!!'i!!!!+!!!!)!!!!'rrrrr R!!!!)J!!!')!!!!+!!!!6!!!!(-!!!!+!!!!6J!!!(3!!!!+!!!!8!!!!(8!!!! +!!!!8J!!!(B!!!!(!!!!9!!!!(F!!!!(!!!!93!!rrrrk3!"rrrrk!!#rrrrkJ! !!&8!!!"'!"N!!!!c!!!!"`#3"c3!!!!(!!!!!3!!!&B!!!!$!!!!!J!!!$F!!!! #!!!!"J!!!$J!!!!+!!!!#J!!!$N!!!!#!!!!$!!!!$S!!!!+!!!!%!!!!$X!!!! (!!!!%J!!!$`!!!!(!!!!%`!!!&F!!!!(!!!!&!!!!%B!!!!(!!!!&3!!!&J!!!! +!!!!&J!!!&N!!!!+!!!!'!!!!&S!!!!+!!!!'J!!!&X!!!!+!!!!(!!!!&`!!!" Q!!!!(J!!!&d!!!!#!!!!)J!!!&i!!!!#!!!!*J!!!&m!!!!#!!!!+J!!!'!!!!! #!!!!,J!!!'%!!!!#!!!!-J!!!')!!!!#!!!!0J!!!'-!!!!#!!!!1J!!!'6rrrr T!!!!2J!!!$!!!!"Q!!!!3J!#rrrri`!!!(X!!!!B!!B!!!"m!!!!!J#3"hd!!!! #!!!!"!!!!(i!!!!#!!!!#!!!!(m!!!!#!!!!$!!!!)!!!!!#!!!!%!!!!)%!!!! #!!!!&!!!rrrrj!!"rrrri`!#rrrri3!!!)-!!!!d!!d!!!#%!!!!!J#3"i8!!!! #!!!!"!!!!)B!!!!#!!!!#!!!!)F!!!!#!!!!$!!!!)J!!!!#!!!!%!!!!)N!!!! #!!!!&!!!!)S!!!!#!!!!'!!!!)X!!!!#!!!!(!!!!)`!!!!#!!!!)!!!!)d!!!! #!!!!*!!!!)i!!!!#!!!!+!!!!)m!!!!#!!!!,!!!!*!!!!!!!J!!!$!!!2rrrq) !!Irrrq%!!2rrrpm!!3!!!!)!!Irrrq!!!!!%!!!!"2rrrpm!![rrrq8!!!"j!!! !%J!&!!!!H[rrrq3!N!H#rrrriJ!!!!3!!!#4rrrri!!!!!J!!!!`!!!!CJ!!!!` !!!#5!!!!#J!!!"!!![rrrr)!!!!U!!!!4J!)!!!!+rrrrr%!N!Farrrrm!#3"d, rrrrZ!*!(5[rrrqd!N!G3rrrrl!#3"e,rrrrV!*!(92rrrqS!N!Girrrrj3#3"3, rrrrj!!!!%3!!!'B!#3!!!",rrrri!*!(%rrrrrF!!!!-!!!!)`!!!!X!!!!3!!! !*!!!!'B!!!!5!!!!*3!!!!X!!!!@!!!!*J!!!!X!!!!B!!!!*`!!!!X!!!!D!!! !+!!!!!)!!!!F!!!!+Irrrr)!!!!J!!(rrrrG!!!!$!!!!!%!!!!(!!,rrrrE!!! !P`!!!"3!"J!!!#d!!!"Q!*!(,J!!!!)!!!!%!!!!,rrrrrF!!!!)!!!!1J!!!!S !!!!-!!!!-!!!!'B!!!!1!!!!Q!!!!!S!!!!5!!,rrrrD!!!!Q3!!!"B!#3!!!*S !!!!+!*!(0`!!!!)!!!!#!!!!1!!!!!S!!!!'!!!!4`!!!'B!!!!)!!!!Q`!!!!B !!!!-!!!!4J!!!!F!!!!0!!!!53!!!!S!!!!1!!!!-!!!!'B!!!!3!!!!1J!!!!S !!!!8!!,rrrrC!!!!R!!!!"S!#3!!!*d!!!!+!*!(0`!!!!)!!!!#!!!!1!!!!!S !!!!'!!!!,3!!!'B!!!!)!!!!,J!!!!S!!!!-!!!!6`!!!!S!!!!1!!!!-!!!!'B !!!!3!!!!RJ!!!!)!!!!8!!!!R`!!!!S!!!!B!!,rrrrB!!!!S3!!!!S!!`!!!+) !!!!+!*!(0`!!!!)!!!!#!!!!-!!!!'B!!!!'!!,rrrrF!!!!PJ!!!"S!"!!!!#[ rrrrE!*!(3[rrrpS!N!G+rrrrf3#3"k$rrrrB!*!&![rrrpi!!!#8!!!!1J!*!!! !%[rrrpd!N!F6rrrrp`!!!!`!!!!M!!!!#`!!!"!!!!!N!!!!CJ!!!")!!!!P!!! !#`!!!"B!!!!Q!!!!#`!!!"J!!!!R!!!!#`!!!"S!!!#9!!!!!J!!!"`!!!!Trrr rh!!!!#!!![rrrrS!!!!2!!!!CJ!#!!!!%2rrrrN!N!H6rrrrhJ#3"3,rrrr9!!! !TJ!!!!B!!J!!!+F!!!!,!*!("J!!!'3!!!!#!!,rrrr6!!!!Y3!!!!3!!3!!!,B !!!!#!*!&!Irrrp)!!!!)!!!!!3!!!!F!![rrrp3!!!#`!!!!%!!&!!!!X3!!!!B !N!Hb!!!!"J!!!!%!!!#c!!!!#J!!!!)!!!#drrrrd`!!!!3!!!#hrrrrdJ!!!!J !![rrrpB!!!#N!!!!3J!0!!!!TIrrrp8!N!HS!!!!C!!!!!B!!!#T!!!!#`!!!!S !!!#U!!!!#`!!!!`!!!#V!!!!!J!!!!i!!!"8!!!!"J!!!")!!!#X!!!!"J!!!"- !!!#Y!!!!CJ!!!"3!!!#Z!!!!!`!!!"J!!!#[rrrre!!!!"`!!!#irrrre!!!!#` !!!#j!!!!"J!!!$`!!!#k!!!!!`!!!$i!!2rrrpF!!IrrrpB!![rrrrX!!!!0!!! !DJ!#!!!!$[rrrrS!N!HMrrrre`!!!'B!!2rrrr`!!IrrrrX!![rrrri!!!!$!!! !%J!(!!!!"2rrrrd!N!F(!!!!#`!!!!3!!!!)!!!!#`!!!!B!!!!*!!!!#`!!!!J !!!!+!!!!#`!!!!S!!!!,!!!!#`!!!!`!!!!-rrrrr!!!!!i!!2rrrp%!!Irrrp3 !!2rrrp!!!3!!!!-!![rrrmi!!!$q!*!)rrrrc`!"rrrrcJ!!rrrrc3!"rrrrrJ! "rrrrb3!!!!3!!!!"!!!!"`!#rrrrbJ!!!48!!!!-!!-!!!%@rrrrb3#3"J%A!!! !!J!!!!3!!!%B!!!!!J!!!!J!!2rrrmX!!IrrrmS!![rrrm`!!!%)!!!!'J!0!!! "#3!!!!)!N!B"#J!!!!)!!!!%!!!"#`!!!!F!!!!)!!!"$!!!!!B!!!!*!!!"$3! !!!B!!!!+!!!"$J!!!!B!!!!,!!!"$`!!!!B!!!!-!!!"%!!!!!B!!!!0!!!"%3! !!!B!!!!1!!!"%J!!!!B!!!!2!!!!&J!!!!)!!!!3!!!"%`!!!!X!!!!8!!!"&2r rrmX!!!!@!!(rrrr)!!!!"3!!!!%!!!!'!!(rrrr$!!!!!J!!!!)!!!!,!!,rrrr %!!!")`!!!!J!!`!!!5,rrrr&!*!'!53!!!!,!!!!"!!!!5Arrrr$!!!!"J!!rrr ra3!"rrrra!!#rrrraJ!!!5%!!!!b!"%!!!%Lrrrra3#3"J%N!!!!#`!!!!3!!!% Q!!!!#`!!!!B!!!%R!!!!CJ!!!!J!!!!6rrrrp`!!!!`!!!!M!!!!#`!!!"!!!!! N!!!!D`!!!")!!!!P!!!!#`!!!"B!!!%S!!!!#`!!!"J!!!%T!!!!"`!!!"S!!!% U!!!!"`!!!"X!!!%V!!!!CJ!!!"`!!!%X!!!!CJ!!!#!!!!%Y!!!!!`!!!#3!!!% Z!!!!!`!!!#J!!!%[!!!!#`!!!#`!!!%`!!!!!`!!!#i!![rrrm!!!!%r!!!!"!! #!!!"3!!!!!X!N!Hm!!!!#`!!!!)!![rrrm%!!!%k!!!!%!!&!!!"1`!!!!)!N!B "2!!!!!)!!!!%!!!"23!!!!S!!!!)!!!"2[rrrm!!!!!+!!!"33!!!!X!!!!1!!, rrrr#!!!"-J!!!&!!'!!!!5,rrrr&!*!'!53!!!!,!!!!"!!!!5B!!!!,!!!!"J! !!5F!!!"Q!!!!#!!!!"2rrrrh!!!!$!!!!#-!!!!,!!!!%!!!!#3!!!"V!!!!%J! !!#8!!!!,!!!!&J!!!6-!!!!,!!!!'!!!!63!!!!(!!!!'J!!!68!!!!(!!!!'`! !!6B!!!!,!!!!(!!!!6F!!!!(!!!!(J!!!6J!!!!(!!!!(`!!!6Rrrrr"!!!!)!! !!8)!!!!#!!!!-!!!!8-!!!!+!!!!0!!!!83!!!!$!!!!0J!!!88!!!!$!!!!1J! !!8B!!!!+!!!!2J!!!8F!!!!$!!!!3!!!!8J!!!!$!!!!4!!!!8N!!!!#!!!!5!! !!8S!!!!#!!!!6!!#rrrr[`!!!8`!!!"!!"B!!!%Lrrrra3#3"J%N!!!!#`!!!!3 !!!%Q!!!!#`!!!!B!!!%R!!!!CJ!!!!J!!!!6rrrrp`!!!!`!!!!M!!!!#`!!!"! !!!!N!!!!D`!!!")!!!!P!!!!#`!!!"B!!!&0!!!!!`!!!"J!!!&1!!!!#`!!!"` !!!&2!!!!!J!!!"i!!!&3!!!!!J!!!#)!!!&4!!!!#J!!!#B!!!&5!!!!#J!!!#J !!!&6!!!!#J!!!#S!!!&8!!!!#`!!!#`!!!&9!!!!#J!!!#i!!!&@!!!!!J!!!$! !!!&A!!!!!J!!!$3!!!&B!!!!#J!!!$J!!!&C!!!!!J!!!$S!!!&D!!!!#J!!!$i !!Irrrld!!!!@!!!!!J!!!!X!![rrrli!!!&F!!!!-J!,!!!")[rrrm8!N!B"*!! !!!X!!!!%!!!"*J!!!!X!!!!'!!!"*`!!!'B!!!!)!!!!%rrrrrF!!!!-!!!!)`! !!!X!!!!3!!!!*!!!!'X!!!!5!!!!*3!!!!X!!!!@!!!!*J!!!!X!!!!B!!!!*`! !!!X!!!!D!!!!+Irrrld!!!!F!!,rrrqm!!!"AJ!!!#3!$`!!!5,rrrr&!*!'!53 !!!!,!!!!"!!!!5B!!!!,!!!!"J!!!5F!!!"Q!!!!#!!!!"2rrrrh!!!!$!!!!#- !!!!,!!!!%!!!!#3!!!"V!!!!%J!!!#8!!!!,!!!!&J!!!9m!!!!,!!!!'!!!!@! !!!!(!!!!'J!!!@%!!!!(!!!!'`!!!@)!!!"Q!!!!(!!!!@-!!!!,!!!!)!!!!@3 !!!!(!!!!)J!!!@8!!!!(!!!!)`!#rrrrZ`!!!@F!!!!Q!!i!!!%Lrrrra3#3"J% N!!!!#`!!!!3!!!%Q!!!!#`!!!!B!!!%R!!!!CJ!!!!J!!!!6rrrrp`!!!!`!!!! M!!!!#`!!!"!!!!!N!!!!D`!!!")!!!!P!!!!#`!!!"B!!!&S!!!!#`!!!"J!!!& T!!!!"`!!!"S!!!&U!!!!"`!!!"X!!!&V!!!!CJ!!!"`!!!&X!!!!#`!!!#!!!!& Y!!!!CJ!!!#)!![rrrmF!!!%I!!!!8!!'!!!")2rrrmB!N!B"-Irrrm)!N!B"5rr rrlm!N!B"@rrrrli!N!B"AIrrrl`!N!B"C[rrrlX!N!8#rrrrZJ!!!AN!!!!%!!% !!!&k!!!!!`#3"3(rrrqj!!!!%3!!!!%!!!!(!!(rrrqi!!!!$3!!!!%!!!!(!!, rrrqhrj!%!!!!#!!!!!,rrrqfrj!%!!!!$!!!!!,rrrqerj!%!!!!#!!!!!,rrrq drj!%!!!!'!!!!!(rrrqc!!!!#`!!!!%!!!!(!!(rrrqb!!!!"`!!!!%!!!!(!!, rrrqarj!%!!!!#!!!!!,rrrq`rj!%!!!!$!!!!!,rrrq[rj!%!!!!#!!!!!,rrrq Zrj!%!!!!D!!!"&p!1$%i!!--58j&9&0[BfYPG(-!!&P*6N988fpMDf9d4'pYB@P Z!!Ab*&0[BfYPG%4[E@&TEJ!%0&0[BfYPG%4[E@&TEJ!(mepIGR"dFL3!!q*NFQP fCA*6G'&dC3!&&(*PFfpXGQ9b8h4KG'8!!YPNFRCb8Q9Q6R9Y!!%1D@jPG%0[G@j d!!CeF'*-BA0d!!D9F'*-DA0d!!-#3@jZEh4KG'9N8%)!!R"`BJ!&b8"ME'&cFb3 h16K(990*58j&9&pMF!!$VR4MF!!(Fe4$8'P[F')!"[*QD@aX-6)!"0YTEd0[EA" XCA4TEfi!!Ep5Eh9dD@jP4'9cBh*TF(4[FJ!(*fG[6@PiC@40Ef4P9(*KF!!(4(C PFR0TEfi!"JKbEh9dD@jP4'9cBh*TF(4[FNCXB@Gc!!&@FQ9cCA*fC@3a!!&AFQ9 cCA*fC@3b!!4hFf9XC@0dEh**EQC[!!3UFQpeG'PZC80[G@jd!!E`FQpeG'PZC9* PBfpbC(-!"4p5Eh9dD@jP8Q9MEh*N!!#rF(*[BdPZCQm!!p"*8d%!"2YbEh9dD@j P4QaKCh-!"S4`FQpM4'9cBh*TF(4[FJ!!eh0PE'9MG'pb!!"rD@p5CA0eE(3!!GC TEdjKE@93G()!!@aTEeC5C@C1G@d!!4CTEd05C@C1G@d!"UTMFd0[C'8!!IpdBh" 6G(*PB@d!"mKMFe"KFQ&Y!!@l3'0XBA0c*$Fi0dG98dP*6N98Af0`!!DCBh*PBA4 P!!1k9%033h*PBA4P8%)!"p"bBhC#G@CQ!!+8FQ0f3R9QCNaPEJ!#h@j[G'PQH9" bEf-!!bTeFf9b4'&dB9"dFJ!%F'p`C@i!!4p83e"2F'9Z8%)!"iaeE("8D@ePEh9 d9Q&XG@8!!(peE("8D@ePEh9d3@0dD@pZ!!@NGQ&XD@4TG(P'E'&RF`!$$@0[E@e KEQ48D@ePEh9d9Q&XG@8!!YTbC@e[G'9)Eh0d!!+qFQ9YEh4P8'pbG!!"cQa[Bf& X5'pcG!!"XQa[Bf&X8'pbG!!!i(4[FdCXB@Gc!!*rF(*PBf9NC@jMC3!!Ff4[ER4 'FQ&R!!)rG'PYC94[6'PfC3!!kA0PBh9bDA4j!!(eEh"dD@pZ3fjd!!FNEh"dD@p ZF`!%JA0PEQ3!!9"83e"6C@jN8%)!!,C`GA0S4QaKC`!#2(9bCf9ZG%CXB@F!"VP QD@aXCA)!"[ahC(03G()!!"*cC@jN4R*PC3!#QR0PEQ4-C@jRG'J!"`PbC@0PDAC P!!4c9%038Q9MC@PfC9"#!!#&E@&bDdCXB@F!"LCbC(03G()!!CabC(0-C@jRG'J !"qYcC@0[EQ48D@eP8h4KEA!!"IeME'pcC3!#ie4$8%0XEh0P8%)!"F0KBQpbG!! #Qe4$8%&LEh*d8%)!"XjcG'&dGA-!!ep83e"6G'&dGA033J!'@R9ZGA0PC!!(Kf0 [EQjPBh4TEfj6G'&dC3!#Sh0PEQ4AD@jNEhF!!3PbBhCAD@jNEhF!"V&KEA49EQ& MDf9N4'&dB3!&D'&YG&9ZFQ9KC%4KG'%!!,jcC@0eFQPdH8aPGQ9X8(4b!!11Ff9 ZC&9ZB@0VC@3!!&0cC@jN6Q9iG!!!KQ0[EQGPFh4TEfjAD@jNEhF!"`TbBhC1CAK d!!5'Fh*dG!!(BfaKFh459&3!"NKcC@jN6@&i8f9R8fPkC3!$H@0[EQj6G'&d8(4 b!!,99%033fpZEQ9MG'P[EP0dBA4c!!4&C'&dB9"VG(05BhCN!!6GC'&dB9"VG(0 6C@jd!!EGC'&dB9"VG(05CA0PER3!!ICLHA4PFe*MGQ3!"+GLHA4PFe*MGQ4%GA! !!i9LHA4PFe*MGQ43BA0d9fPZC'ph!!'+BRPdCA06C@jd!!1JBRPdCA05CA0PER3 !"jaZG@e)DA0dEd*eBfYPG(-!"44cC@jd8fPkC8KTFh4[!!1m5'PcG'p#G@0VCA3 !"9KfB@aeC3!(%Q0[G@jdCA)!"r"dEA*68P48!!-mFR4d9Q&bD@&ZBf8!"KYdEA* 59%m!!FCcC@jN9(*TCA-!!0CcEh9bBfK4G@9ZBfK5BhCN!!,rCfa[BQ&X5@jQE`! (T94$8%GXEf*KE%PZCQp33J!$%R4MF&"KFQ&Y8(4b!!!Q9%038'&bB@d!"j!!G'0 `8R4[33!"$A4MF&*dEdeTEJ!"&R4MF&*dEdeKH!!&qR4MF%eKH&0PCe0THQ8!!Pe dBh"0BAK$EfjZ!!4TG'0`6@&i9fPZC'ph!!2MG'0`8h4KG(03G()!!)K83e"6G'& dF`!(C(4MF%0[EQj"G(4PEA"dF`!&dh4MF%0[EQj2F'9ZC@3!"fPdBh"$EfjZ3@0 MCA"dC@3!"5"dBh"$EfjZ3fa[Ff9N!!BrG'0`3fpZEN&LEh*dC@3!!lCdBh"2Bh4 PG(0*EJ!%3h4MF%pMG'9dFdpeG!!'Kh4MF%pMG'9dFdPZ4(9`!!!cG'0`6f0dCA4 c8Q9dFQ&ZF`!%IA4MF%PZF(9d8'YdF`!&)(4MF%peG("eG&"VG(-!!JpdBh"%GA" 3Dh4c!!EfG'0`8Q9dFQ&ZFe"VG(-!!kCdBh"$4%*8B@*XC3!"G'eKH&4$8%0[EQj PBh4TEfjc!!1bG@4`!!F`9843D@p`BJ!"rR9NF&0dFQ9KE3!&r%"ME'&cFb3h16" (990*58j&9&pMF!!$cP9%8%0bC@&dC9"#!!*3C@jND@jR8'pbG!!"@99%8&0PEQ4 33J!!+A*PFf9bGQ9N!!"!BfKPBfY6G@d!"&a94&"5C@0PDACP8%)!"mPdD@eP6h9 d!!"UC'9cG%K[Fh3!!%jNCA0d8'pbG!!$Q@edG3!!qP9%8%e899"#!!HCEA4e8fP kC3!%,R0[BfX!!Xa*6N988fpMDf9d!!If*&0[BfYPG!!'q90[BfYPG!!!((*PCN0 [G@jd!!$IGhKbC@CMEfi!"b9hH'9fC@jd!!2RGhKPGQ9ZG'eKFfX!"R*cG(*PB@d !!ieZEfjLE'pMDfPZC`!(pR*PBhC#G@B!"CTbC@0fC!!#ch0K!!2NFfpMDf&NC(* ID@i!"`*cD@jIE'9Z!!,!FfPZAfCKE@PXH3!!@R0TEPp`Eh*d!!!$FfPZAf&NC() !"feTEPpKC'4b!!CpFepKC'4b!!#bFfPZAhTPFQm!"1a`C@9b!!DaFh0dBA4P!!$ (BA0jEQ0PFR)!"S3ZD(4[EQ`!!@KS!!D,,QKdEfjc!!DN,QjdEfKX!!&ZEJ!'Ubj ZG'pSF`!'a#j83e"ICA*bEh*IAdCT!!AaCA*bEQm!!B40B@083e"PFR)!"G%ZAep MG&pI-6"*6N988fpMDf9d4RB!!$-ZAepMG&pI0P0[BfYPG%Cf!!+EAepfG&pI-6" *6N988fpMDf9d!!Fr,QePEA0PG!!"$5j2F'9Z8fpMDf9dAema0NP14946Ef0VCA4 %EfeKD@j'GJ!%@h4SDA-!",G!1$3`!!I8AepNG&pI0P0[BfYPG%Cf!!5i3$Jd-3! 'JLjIAf0dAema-%P14946Ef0VCA4'9@`!",T!1$3c!!5l3$Jd0!!&"#jIAf4dAem a-%P14946Ef0VCA4'GJ!#`5j$E'pcC90[BfYPG&pI-6C*6N988fpMDf9d4'pYB@P Z4RB!!%)ZAepNG&pI0P0[BfYPG%Cf!!*2,PpIC'aIAdC3GJ!%[d!i0$J!!Z!Z3AC KD@aKBQaPAema-%P14946Ef0VCA4'GJ!$#bj6CA45C@C$EfjIAc%`58j&9&0[BfY PG%C3GJ!$P#jIAh"dFPpRE(9P!!Gi,RGi6@&M8fpMDf9d5'&ZC'aPFP"bEf-!"MG bC@CMEfi!!4aMB@jAFQPdC9!!!0GMB@j5C@&N8!!!CQ0KEPGbDA4P!!FmBf&Z8Q9 KC!!%qd!i0M3!!EBZ4e96590PG&*PCQ9bC@jMC3!(XP0[BfYPG(-!"[`ZAepfBep I-6&6Ef0VCA48B@*XC8CT!!&cF`!%m@eKFfX!")GNBA4K!!6p3$Jf0J!(R5jLD@j NAema-%P14946Ef0VCA4'8(CT!!1Y,NG98dPICA*bEh)!!PJZCf9dD'pcG'PN!!4 !B@4NFJ!(SQjKE@9XC@i!"+YZB@eP!!3J3$Jh13!(hbjRCA4cEf0VEQ&YC9pI-6" *6N988fpMDf9d4P"f8'N!"f8ZE@9YBh"j!!3l3$Ji-`!(p#jRCA4`C@9bEQ&YC9p I-6"*6N988fpMDf9d4P"f8'N!"%&!1$Jj!!&%,R0SGA4NEhGZAema-%P14946Ef0 VCA4'D3!$"QK[G`!%AN!i16B!!$8ZCQ0ZG'aIAc%`58j&9&0[BfYPG%C9D@N!!jp ME@3!!cTKFQF!"%0!16!i!!'Y,QP[Bh4XAema-%P14946Ef0VCA4'9@P3GJ!(-(* PFA9PFh3!",GKFQG`!!6cFfPkC3!$j'PQFJ!&N@PQFQ9a!!4M3$Na1!!!Tbj(990 *GfPdD%PZG'9bEQ9d8fpMDf9dF`!%GLj%Efjd8h4bDA"IAc%b8fpMDf9d4'pYB@P Z4RB!"(Y!16)`!!-&,PpIBh4IAc%f58j&9&0[BfYPG%4[E@&TENCf!!IV,PpIBh4 IAc%b8fpMDf9d4'pYB@PZ4QN!!*0IAhCdAema0NP14946Ef0VCA4%EfeKD@i!"#d ZAepMG&pI-6G(990*3fpZCQPRGA*KG'P[ENCf!!5MBfpZCJ!"ZdG98dP$EfjQD@G eFQ&dD@pZ!!2,C'9QBA9XG&4jF'8!"K"NC@CKG@ad3h*PBA4[FJ!!,Q&eG'p6F'P Z!!F4EQp$D'4TFJ!"-Q&MBh9b8h4KG!!#rQKKFd0[ER0[E'8!"ZTZEd&eG'p*EQP d4h*KCJ!#"h0SBA*PC%p`C@i!"eCcD@G3DA"P!!@UEQp"F("XC89fC@jdF`!$P'j eE90eCQCTBf9c!!#1Fh9QCQPMCA-!!TC(990*8h9QCQPi!!D`Fh9QCQPi!!#,Fh9 QCP4jF'8!!r"cG@CQ3h*PBA4[FJ!%I8!j-M)!"J0IAf4dAema-P0[BfYPG%4[E@& TENCf!!4q3$Nb-`!%JN!j-MF!"8iZ4(*TGQ9bAema0NP14946Ef0VCA4%EfeKD@j 'GJ!$bbj33Np`C@j6H@jM!!8T8'&bB@e#E'pMDe*PB`!(,@P[8'&bB@d!"iP*6e" KFQ&Y!!8EF8aTEQX!"Ap44@aPE3!&QR&8HA"P!!@1F84KG'%!"M9TEe4bBA!!!G9 TEd0YC%&NC()!!(TTEe*PCNjeE3!"fQP[9Q9bFdjeE3!"bfP[8'9bEA0cEJ!'afP [6@PcB`!!2@P[3R9QCQ9b!!+UD@p5CA&$Eh9ZG!!#C@P[3@0d3fpeER3!!@4TEe" [Fde[C'8!!e*TEe"[FdpQCR0PG!!"0fCTE'93BA*KE3!"edCTE'93BA*KE3!"D'P [4P*PCNjeE3!#-'P[4PCPFR01G@d!"fKQD@aXCA)a!!0BD@p'4'Pb5@jNCAJ!!M" TEdCX3A4dFQPL!!-#D@p'E&CPFR01G@d!"0&TEdCX4QjNFNPZCQm!"Aj'5@jQE`! 'CQCN9(P`C3!"DfCN3h*PBA4[FJ!(['CN4QaKCh-!!JCQC%a[Bf&dD@pZ!!@N8'p TER3!!ACf!!DfCQ4'E'4b!!FND@p'E%jeE3!"$fP[4Qa6G%*XD`!"rfP[4Qa-Cda PEJ!"c'P[4Qa3H8aPEJ!#k@P[4Qa58h4#E'X!!N"TEdCX8NaR6'9Z!!++D@p'E&* 3H8aPEJ!"[@P[4Qa$FN4KG!!"efP[4Qa0C%4KG!!$ZhC[E(9YC9"KFQ&Y!!-j9Qp XG@eP8'&bB@d!"fPQD@aXCA)b!!*MD@p@Efa*EQ4PH!!"`fP[9N0b4'&dC3!",fP [9Nac3QY9F!!([@P[9N&dFQ)!!)9TEeC1E8CXF`!!9'P[9N4TFP0d!!GND@p@3Qa -EJ!$,@P[9NjY3@a#E'Yc!!1JD@p@3@a#E'Y6DAS!!I"TEeC$E("6DAS!!*&TEd& X3Qa6G!!#FfP[9NjiG%C1G@d!!&*TEeC'FN*XD`!#c'0ZG(*X8'&bB@d!!X"$ER4 bE&"KFQ&Y!!5+Ffa[G%4PGP"KFQ&Y!!6D8fa[G%4PGP"KFQ&Y!!%UD@p68Q9Q6R9 Y!!))D@p69Q9bFdjeE3!#Z@P[8e"PFQecFfi!"NPTEe00DAJ!!"eTEe0'E'&RF`! 'JfP[8fa[G!!%hfP[583!"6YYG@adD84PGP"KFQ&Y!!@c6A9XG'P%CAC3BA*KE3! "UfP[69*PCNjeE3!#R@P[69CPFR01G@d!!QPTEde3CA*YFh0Z!!C+D@p06@Pi!!" "D@p04QaKCh-!!PTTEe0&3QaV8(4b!!5$3$Nb1!!(C5j5CA0[E(CPFPpI-6C*6N9 88fpMDf9d4'pYB@PZ4RB!"IBZ6h"PEP*PFfpXGQ9b!!5G3$Nc-J!'%#jcEf0VCA4 IAc%f58j&9&0[BfYPG%4[E@&TENCTF`!(A#j(990*Af9bFQpbAfjTE!!#HbjIAfj hAep'9@`!!h)ZAepMG&pI194$8&0[BfYPG%Cf!!2R,PpIBh4IAcP94&"6Ef0VCA4 'GJ!%Eh4jF'8!!CKcBACP4A*bEQm!!XC&FR*ZEe0KGQ9b!!0TCP0KGQ9N4A*bEQm !"2e!16Bb!!&FAepNE&pI4P"f!!6`AepNG&pI-6"&FR*ZEe0KGQ9b4RB!"2j!16B c!!@(,PpIC(4IAc%`4A*bEQp6BACPFNCf!!3#3$Nf0`!%$Lj(CA433PpI-6C*6N9 88fpMDf9d4'pYB@PZ4RB!"HCMGA*33J!$,#jIAfjhB9pI4P9X!!3m3$Ni-!!$Sbj IAf4XB9pI4P"f!!4!3$Ni0!!%38!j1$8!"%0!16Jh!!EmAep59&4*Aema-P0[BfY PG%4[E@&TEJ!%3N!j1$B!!N0IAe*89%PIAc%f58j&9&0[BfYPG%4[E@&TEJ!"5@0 SEfpcC9pI-6*6Ef0VCA4%EfeKD@j'D9"M8(CT8(C3D3!'Mh0[BfYPG("KDA*IAc% b8fpMDf9d4'pYB@PZ4QPc8&!f8fpMDf9d!!,dAepNG&pI-6C*6N988fpMDf9d4'p YB@PZ4RB!"E9cEf0VCA4IAc%f58j&9&0[BfYPG%4[E@&TENCTF`!$cbjIAf4dAem a0NP14946Ef0VCA4%EfeKD@j'GJ!(i5jIAf4dAema-P0[BfYPG%4[E@&TENCf!!4 G3$Nj-3!%AN!j16)!"'"!16Nd!!IrAep59&4*Aemf8fpMDf9d!!4I3$Nj-`!%"Pp I8P4859pI-6"*6N988fpMDf9d!!0hF'pcG&pcC@aPBh4IAcC6Ef0VCA4'9@09Be9 M!!&)Ff9XC@0dAemf8fpMDf9d4P"9Be"9Be"9B`!#E("bC9pcC@aPBh4IAcC6Ef0 VCA4'9@09Be9M!!&#DA0KG(4jAemf8fpMDf9d4RB!"(eQG(*eEQ0KG'9IAcC6Ef0 VCA4'E!!"B'acC@9VAemf8fpMDf9d4QaT!!8[CR0dBA4IAcC6Ef0VCA4'8$4cG'& d!!&,Ff9dFfpMDfp`G&pI0P0[BfYPG%CTD9"fD3!#b'GPG(0[BfY[F(4IAcC6Ef0 VCA4'D@P3GP"T!!FFFf9ZC(4[Aemf8fpMDf9d4P"fD@P3GQN!!R"bC@0fCR*[E9p I0P0[BfYPG%C3GQPT8(C3D3!#2AGbDA4PAemf8fpMDf9d4P"fD3!"TR*PB@4IAcC 6Ef0VCA4'8(CT!!5@B@0MCA"dAemf8fpMDf9d4P"f8'N!!FKXDA0dC@jIAcC6Ef0 VCA4'D3!%kQ0[EQjPBh4IAcC6Ef0VCA4'8(CT!!#&FfKeG'4[GfjIAc%`58j&9&0 [BfYPG%CT!!$UD@pMG'aIAc%`58j&9&0[BfYPG%C9D9"f!!G4CQ0ZG'aIAc%`58j &9&0[BfYPG%C9D@N!"P9RCA4`C@9bEQ&YC9pI-6"*6N988fpMDf9d4P"f8'N!"Qa RCA4cEf0VEQ&YC9pI-6"*6N988fpMDf9d4P"f8'N!"Q&LD@jNAema-%P14946Ef0 VCA4'8(CT!!%"3ACKD@aKBQaPAema-%P14946Ef0VCA4'GJ!%!PpIC(4IAc%`58j &9&0[BfYPG%Cf!!6L,PpIFfPZDA4I4e9658P1494IBh!!!F-ZAepbC@GTFh4PFPp RE'pLB@aIEf*UC@0d!!4L3$Nj0J!$IP423`!"!%0XEh0P8fpMDf9dAema0NP1494 6Ef0VCA4%EfeKD@j'GJ!!6%p`C@j6Ef0VCA4IAc%f58j&9&0[BfYPG%4[E@&TENC f!!2f4f9d8%*IAc%f58j&9&0[BfYPG%4[E@&TENCf!!CL8Q9cEfafCA*IAc%f58j &9&0[BfYPG%4[E@&TENCf!!3T4(*TGQ9bAema0NP14946Ef0VCA4%EfeKD@j'GJ! #-&pIBh4IAc%f58j&9&0[BfYPG%4[E@&TENCf!!F)4e965AGTG'K*ER4PFQjPG&0 [BfYPG(-!!"a(990*8f9d8Q9QCA*PEQ0P!!,f8f9d8Q9Q3fpZAema-%P14946Ef0 VCA4'8(B!"HTIAf0dAema-%P14946Ef0VCA4'9@`!""4IAf0dAema-%P14946Ef0 VCA4'GJ!&d&4$8&pPFR*[FPpI4QN!"EjZG'pSF`!&YfjdEfKX!!@ID(4[ER-!"CK SG'pZE!!!8%pA8J#3"MES!!"G-J!!!J-!!$G8!!!PhJ!!&I!!!!*f!!!%9J!!!%! !N%"&C`!!4AX!N!8"XJXHZd9T!*!&"%9V!!3!!!!&!!!!C!!!!#!!!!PkI!J#TT2 Krrb3!!%!#*3Krm!mB!!"1)!!!6KMUQj)!!!"B!!!!$[M!!!mB!!"1)!!!6KMU'j )!!!"B!!!!(`$q%"!JJ!-1'!#!%J!!!JiB!3!J!%!5$JK!%"m#!1QJq(rr%k!!#" &G3#3"3B!!!!F4A8!N!8'!!!!0%9Z$!3!!!!(!!!!$)!!N!Z!!!"N#!!!!%9h!*! &"3#3"%9T!*!&"%9V!!3!!!!)!!!!'!!!!%`!!!SX9'!&+8##!!`iB!!!6S!!)$K J!!&1J!!J4@X!"!!!!!S!!!#F!!!!IJ!!#Z9m#!+QNq(rr*2"rrL6SIrdN!!"!!L 8)Iq`1q-!!%J!!!%l``!!Im!(G#`!!!&!JJ!J5!!!!AaM"c4Ar`9qIq!(0(`!'!" "J!!)1q#SRcKr!!!iRJ!!5!!!!@!!!!!lS`!!2'!!!6L!!!%iBkLI5!!!!@!!!!" mBqK3-!2rrhaJ'4#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J4A8!N!8)!!! !(%9e!*!&"3!!!$"&G3#3"3B!!!"84A8!N!8'!!!!E%9Z$!3!!!!-!!!!$)!!N!Z !!!#F'!!!!%9h!*!&#J#3"%9V!!3!!!!0!!!!G!!!!-i!!!`4I!J#TT2Krrb6`Ir iN!!"!!L8)IqJ1m-!!$[N!!!iB!!"1)%!2%J!!!&J!!!!U'%!5MLH!!!i[`!!1-% !1%J!!!&J!!!!I'!(08'#!"3i!!!!X"i!!$J!!!#3!"m!!)!"!'Ji)3"JI!J$TS2 Krrb$`Iri6S!!)%9e!*!&$J!!!#4&G3#3"3m!!!!m4@i-"!!!!"i!!!!-J!#3#i! !!(33!!!!4AF!N!80!*!%4@X!"!!!!"m!!!$!!!!"1J!!$20m#!+QNq(rr*2"rrL 6SIrdN!!"!!L8)Iq`1k-!!$[%!!!li!!!1'#KV8J!!!&8B!Br3B)!*$aJCQmiBfa N1)%!1%J!!!&J!!!!I'!(08##!!Jli!!"9q!'2d##!"3iI3!!1*i!!%J!!!&)!!! m1'#!!$b!Bh3iS!!!10d!!$Mq!!!iK(*X5!!!!@!!!!"mB!Fe3B)!&$J!!!#`(3! !1!!!!*!!(J!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9e!*!&#J!!!#K &G3#3"5!!!!"!4A8!N!80!!!!C%9e!*!&)3!!!)4&EJ`%!!!!*!!!!!b!!*!,J!! !`"J!!!"&G`#3"4m!N!4&D`!%!!!!*3!!!1J!!!(1!!!2)(`)!UDrBIrXN!!"!!L 8)Ii`1f-!!$Z%!!!lT3!!1mB!!$J!!!#3!!%"4$J"!$L3!!%"5V1K!8k6`3&S1!! !!E!"!94)!!"mJ!%"@(`!f%"!JJ"JJ!%"A(`!i%"!JJ"81(d!!$LH!!!iS3!i1-! !!8J!!!&J!!!!1q-!!$aJC'iiJ!!"1'0bF%J!!!&J!!!!+!-!!%##!"3iI`!!5!! !!@!!!!")!!!-1(m!!%J!!#bSB3&81!-!!E!"!956`3&S1'%"1%J!!!&J!!!!I'! (08'#rhJiB2rrJ!%"f$JK!G"m#!1QZf(rl%k!!#"&G3#3"5B!!!"X4A8!N!8R!!! !K%9e!*!&+!!!!*K&G3#3"5N!!!$!4@i-"!!!!3%!!!!-J!#3#i!!!1JS!!!!4AF !N!8P!*!%4@X!"!!!!3)!!!$S!!!#K!!!%[0m#!+QNq(rr*!!!3!)P#(rX$KK!$` iJ3!i5!!!!6aJBf3mJ(TdU+%!2)$"!$JiBf9f1)4MF%J!!!%li`!!Iq!(0#`!rrp "JJ!-1(m!!%J!!)JiB3!m1)%!1%J!!!%mB'0N2)"YG+LK!$b!`3!i1'0PGML%Bh" )!!!"1q-!!(rJ"c3X!2rr3B)!$$Kr!!")!!")1'%!2$L"!$K)!!!"2'"MC$b!EA5 SS3!mJ-%!1$KMCABiK'0`5!!!!6[M!!"ri!Fd,!$rrd'#!!`iI`!!5!!!#$KJrrq !!3"B1#%!8(`)!kD$iIrm6S!!)%9e!*!&(`!!!"K&G3#3"58!!!!d4A8!N!80!!! !@%9e!*!&*3!!!(4&G3#3"4m!!!#B4A8!N!8P!!!!Y%9Z$!3!!!%$!!!!$)!!N!Z !!!$S#!!!!%9h!*!%!3)!N!4&D`!%!!!""!!!!3`!!!-5!!!9J(`)!UD6iIrmNm( rq*!!!3!)P#(r`*!!B3"BJ!)!!#J!!!""JJ!-1'!!!%J!!-a)!!!"1q-!!$aJC'i iJ!!"1'0bF%J!!!&J!!!!N!"L!!#!!J!!+!!!!%##!"")!!!"B!!!!%J!!*5!BJ! !5!!!!@!!!!"ri!Fd,!$rrd'#!"!iI`!!5!!!!@!!!!#!BJ!!5!!!!@!!!!#!BJ! !5!!!!@!!!!#!BJ!!J!-!!*!!!J!!J')!!$L!!q%iS!!"J-%!@%J!!!&J!!!!1m- !!(r!"c9"JJ!NJ')!!%J!!!&J!!!!J')!!%J!!!&J!!!!1!!!!*!!!J!!1(i!!)! "!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9c%!#3"!-!!!!B4A8!N!3"!J!!!#a&G3# 3"5F!!!"!4A-3!*!%!J!!!%K&Fa!!N!3#!!!!6%9e!*!%!38!!!"B4A-3!*!%!J! !!'4&G3#3"!%'!!!!D%9e!*!&+!!!!)"&Fa!!N!3#!!!!L%9e!*!%!3F!!!#-4A- 3!*!%!J!!!*4&G3#3"!%)!!!!Q%9c%!#3"!)!!!#J4A-3!*!%!`!!!+K&Fa!!N!3 $!!!!V%9e!*!%!3N!!!#m4A-3!*!%!J!!!0"&G3#3"!%+!!!!e%9c%!#3"!)!!!$ F4A8!N!3"#`!!!1"&Fa!!N!3$!!!!l%9Z$!3!!!%1!!!!$)!!N!Z!!!%-%!!!!%9 h!*!%!33!N!4&D`!%!!!"$`!!!'J!!!2)!!!D%A`)!UD3!!%!#*3Krm#!!J!!+!! !!%##!!`iB2rN5!!!2)"L!!!iJ!$K1+!!!NJ!!!&J!!!!J')!!%J!!!&J!!!!J') !!%J!!!&J!!!!1!!!!*!!!J!!1'!!!)!"!%Ji)3"!I!J$TNk!!#"&Fa!!N!3$!!! !$%9c%!#3"!-!!!!J4A8!N!3"#3!!!#a&Fa!!N!3#!!!!0%9e!*!%!3S!!!!i4A- 3!*!%!J!!!%"&G3#3"!%,!!!!4%9c%!#3"!-!!!"34@i-"!!!!4!!!!!-J!#3#i! !!'J!N!4&G`#3"!%2!*!%4@X!"!!!!4%!!!"S!!!%$!!!(%&m#!+QN!!"!!L8)Ir !N!"K!&L3!)%!A*!!S3"JN!$"!'5!!J!!+!!!!%##!!`iB2rN5!!!,)"L!!!mJ!! "1+!!!i$"!&L!i3"FJ3%!B)%K!'3iK2rK5!!!!@!!!!#!!3")1#%!3(`)!kC1J!! J4A-3!*!%!`!!!"a&Fa!!N!3$!!!!-%9e!*!%!3N!!!"34@i-"!!!!4X!!!!-J!# 3#i!!!'J!N!4&G`#3"!%4!*!%4@X!"!!!!4`!!!"F!!!%D!!!(JGm#!+QN!!"!!L 8)Ir!N!"K!&L3!)%!A)!#!!!S!!!!3))!$$KJrq4)!!!SJ')!!$L!$q%iS!!%J-% !@)$K!&a)!!!"B!!!!,"K!$JiB!!!J!%!5$JK!%"m#!1Q6S!!)%9c%!#3"!-!!!! 84A-3!*!%!`!!!#K&G3#3"!%*!!!!2%9Z$!3!!!%I!!!!$)!!N!Z!!!"F!*!%4AF !N!3"(!#3"%9V!!3!!!%J!!!!9!!!",B!!"pUI!J#TT!!!3!)P#(r`*!!B3"BN!# "!&b!!J!!+!!!!%##!!`iB2rN5!!!))"L!!!iJ!rK1+!!"B$"!&L!i3"F5!!!!@! !!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"4&Fa!!N!3$!!!!+%9e!*!%!3N !!!!m4@i-"!!!!5%!!!!-J!#3#i!!!&3!N!4&G`#3"!%J!*!%4@X!"!!!!5)!!!" S!!!%pJ!!)0Tm#!+QN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JN!$"!'5!!J!!+!! !!%##!!`iB2rN5!!!,)"L!!!mJ!!"1+!!"S$"!&L!i3"FJ3%!B)%K!'3iK2rK5!! !!@!!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"a&Fa!!N!3$!!!!-%9e!*! %!3N!!!"34@i-"!!!!5-!!!!-J!#3#i!!!'J!N!4&G`#3"!%L!*!%4@X!"!!!!53 !!!"S!!!&8J!!)Tjm#!+QN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JN!$"!'5!!J! !+!!!!%##!!`iB2rN5!!!,)"L!!!mJ!!"1+!!"i$"!&L!i3"FJ3%!B)%K!'3iK2r K5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"a&Fa!!N!3$!!!!-%9 e!*!%!3N!!!"34@i-"!!!!6)!!!!-J!#3#i!!!'J!N!4&G`#3"!%N!*!%4@X!"!! !!6-!!!"S!!!&VJ!!*'"m#!+QN!!"!!L8)Ir!N!"K!&L3!)%!A*!!S3"JN!$"!'5 !!J!!+!!!!%##!!`iB2rN5!!!,)"L!!!mJ!!"1+!!#)$"!&L!i3"FJ3%!B)%K!'3 iK2rK5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A-3!*!%!`!!!"a&Fa!!N!3$!!! !-%9e!*!%!3N!!!"34@i-"!!!!63!!!!-J!#3#i!!!'J!N!4&G`#3"!%c!*!%4AX !N!T&DJ!%!!!"03!!!!`!!!B+!!!&UMJ!!!'B"!!!6S!!)%9["33!!!%h!!!!)2r rrr8!!!B1U[i(!*!,!m!!!3!%!*!-4AB+!!!!!6J!!!!84@i3"!!!!6X!!!!%rrr rc!!!$p8!N!4&EJ8%!!!"23!!!"6rrrr*!!!3-!!!!!3!N!F#!!!!"!#3"%9f"3! !!!%m!!!!%%9f"3!!!!%l!!!!"%9f"3!!!!%k!*!%4@i&!3!!!83!!!!+rrrrb!! !%4*XEf0KE'K[Fh3!8Q4&D`!%!!!"43!!!Y`!!!Bd!!!4%R`)!UDr)IrNN!!"!!L 8)Iq3!$XM!!#$BJ!!Jk)!!)2#!!#$JJ!!J))!!%J!!!&J!!!!,!-!!%##!&")!!! "B!!!!$Y$!!#633!iJ!%!1*!!!3!mJ!%!2#J!!!""JJ!F1'%!2$L!!!3iS!!#5!! !!@!!!!")!!*B1!!!!C!!(!!!1'!!!%J!!NL!BJ!!5!!!!@!!!!"mB!Fe3B)!&$J !!!13!"`!!$KJ!!")!!)N1q!!!%J!!"JiJ!!!9q-31MJ$!34mRJ%Z1rm!!5`I!!4 "J2rS1!!!!*J"!%!iH3!!1*i!!)#L!!!i`3"!5!!!!AaJ"c3X!+Aq3))!A%J!!!& J!!!!,!-!!%##!#b!(3!!+!!!!%'#!$3iB!!#1)!!!)'G!!")!!!"B!!!!#`$!!" "JJ!B1'!!"%J!!!&J!!!!1'!!!%J!!Bb)!3"!+!!!!%'#rkb!(J!!,!#Pr8'#!'a !J!!X,!#PqN'#!*!!3)!!&#`!TIK"JJ#N3)!!N!")!!#X,!#Pr%#!!&4)!!"J,!! !!%'#!+K!J!#8,!#Prd'#!!a!J!#)5!!!&$J!!!'3!"`!!$KJ!!")!!%F1!!!!j! !(!!!1'!!!%J!!3`i!!!$N!!F!!!iB!!!5!!!r$J!!!'3!"`!!$KJ!!")!!$X1!! !!C!!(!!!1'!!!%J!!0`i!!!#N!!F!!!iB!!!5!!!c$J!!!13!"`!!$KJ!!")!!# m1!!!!T!!(!!!1'!!!%J!!+`i!!!$N!!F!!!iB!!!5!!!R)JH!!4m!!Ge3))!&$J !!!'3!"`!!$KJ!!")!!#!1(i!"%J!!!&J!!!!1q2rrcJI!!4m(J#ZI!!(G#`!!#j !JJ!31'!!!$JI!!4mIJ'Z1q!!!%J!!"aAia!k1!-""(aq!K4Ai"!kI(X",M[r!!% X(`!%3)!!'&IM%$Si!`%%I"i!,LJ!!!"!J[r31'!!!&IJ%$TmH`%ZJ')!!)!"!(J i)3"`I!J$TVXKrq41J!!J4A3$!!!!!6`!!!!84A3$!!!!!8B!!!!B4A3$!!!!!6S !!!!F4A3$!!!!!6N!!!!J4A3$!!!!!83!!!!N4A8!N!3"4`!!!#K&G3#3"!&)!!! !1%9e!*!%!8N!!!"S4A3$!!!!!8S!!!#%4A8!N!3"5`!!!)K&G!-!!!!"0`!!!0a &G3#3"!%4!!!!j%9e!*!%!8`!!!$d4A8!N!3"63!!!4a&G3#3"!&1!!!"-%9e!*! %!8m!!!*34A3$!!!!!6d!!!,%4@i-"!!!!93!!!!-J!#3#i!!!Y`i!!!!4AF!N!3 "43#3"%9V!!3!!!&*!!!#8!!!"f!!!"FRI!J#TVmKrq53!!%!#*3Krk!l)`!!Ji) !!)1L!!#$`J!!Jf)!!)"L!!")!!!"B!!!!(aJ"c9"JJ!81!!!!j!!'`!!1'!!!%J !!IJli!!!5!!!'$L!!!"Aia!k1!-""(bH!5ilr`!","m!"%'!rqJi!!!!Q!%!1)" j!!!m!i%!+!!!!8##!"")!!!"B!!!!%J!!!L!H3!!1d-!!$LH!!#!SJ!!1-%!1%J !!!&mB!Fd,!#PrN##!&a)!!!"B!!!!#`$!!"!JJ!XJ"d!!#J!!!""JJ!d1'!!!cL !!!#"R3!!5!!!!@!!!!!X!`!!3B)!'$KJ!!4)!!!"B!!!!$KJ!!")!!&!L!%!1#J !!!""J[qXJ"i!!#`!TIa"JJ"83)!!+#`!TIP"JJ"i3)!!%#`!TIK!J!"m5!!!L#` !TIY!J!"!5!!!6#`!!!""JJ#%3)!!F#`!TIj"JJ!)5!!!C$J!!!13!"X!!$KJ!!" )!!$B1!!!!C!!'`!!1'!!!%J!!-Ji!!!"N!!E!!!iB!!!5!!!Z$J!!!+3!"X!!$K J!!")!!#S1!!!!j!!'`!!1'!!!%J!!*Ji!!!#N!!E!!!iB!!!5!!!L$J!!!13!"X !!$KJ!!")!!"i1(i!"%J!!!&J!!!!1q2rrcJI!!4m(J#ZI!!(G#`!!#j!JJ!31'! !!$JI!!4mIJ'ZJ"i""#J!!!"!JJ!)Nei""$[J!!")!!!F9q-31MJ$!34mIJ)89q! 31Ram!5ilr`!","m!"%'!rq3i!!!!N!!F!"#!BJ!!J!%!D$JK!'"m#!1QZb(rj%k !!#"&G!-!!!!"2!!!!"4&G!-!!!!"4J!!!"K&G!-!!!!"1J!!!"a&G!-!!!!"13! !!#"&G!-!!!!"5J!!!#4&G3#3"!&,!!!!+%9e!*!%!8J!!!#%4A3$!!!!!6F!!!# F4A8!N!3")J!!!+4&G3#3"!&-!!!!Y%9e!*!%!8d!!!$F4A8!N!3"6J!!!2"&G3# 3"!&2!!!"c%9d!`!!!!%p!!!#1%9Z$!3!!!&@!!!!$)!!N!Z!!!*31!!!!%9h!*! %!8N!N!4&D`!%!!!"9`!!!'!!!!KF!!!F&(`)!UD3!!%!#*3Krm#3!'%!@)"L!!" )!!!"B!!!!(aJ"c9"JJ!B1!!!!i"L!!#3!!-!!$KJ!!")!!!FJ'%!@)##!!!iK!! %5!!!!B"L!!!iB`!%J!%!5$JK!%"m#!1Q6S!!)%9d!`!!!!&+!!!!%%9e!*!%!8X !!!!84A3$!!!!!6N!!!!S4A3$!!!!!6S!!!!m4A8!N!3"(!!!!%4&G!-!!!!"1J! !!%K&EJ`%!!!"@3!!!!b!!*!,J!!!B!#3"%9h!*!%!9F!N!4&D`!%!!!"@J!!!23 !!!L@!!!Feh`)!UD6iIrmNm(rq*!!!3!)P#(rS*!!B3"iN!#"!(b$iJ!!J')!!%J !!!&J!!!!I'!(08'#!#Ji!!!$J')!!*!!!`!!1!$rrj!!!3"3J'%!H)!"!!!- !!%J!!)L!B3"m1*m!!$LJ!!!i`!!!5!!!!AaJ"c9"JJ!NJ!%!H*!!!3")1!$rrj! !!3"-J'%!5)!"!%b3!!-!!%J!!%b)(`!%I!!(G8'#!#5!!3"iN!!"!%!i!2rrN!! "!%5!B3"!J!%!4*!!!`!!5!!!))2I!35!!3"iN!!"!$L6`3!mJ'%!1)!"!$b3!!- !!)!"!'Ji)3"JI!J$TS2Krrb$`Iri6S!!)%9d!`!!!!%k!!!!(%9d!`!!!!&+!!! !)%9e!*!%!8X!!!!N4A3$!!!!!6N!!!!i4A8!N!3"%3!!!'K&EJ`%!!!"A!!!!!b !!*!,J!!!p"!!!!"&G`#3"!&D!*!%4@X!"!!!!8J!!!#)!!!)m!!!(Spm#!+QN!! "!!L8)IqJL!)!!(`!"h9!JJ!81!!!!*!!!J!!1!!!!CJ#!!#!!J!!,!!!!%'#!!b !BJ!!5!!!3)"L!!")!!!"B!!!!,"K!&!i!!!2X!%!8MKK!$K)!!!"B!!!!(aJ"c9 "JJ!-1'!!!%J!!!b!B3"8N!"L!!#!!3"S1#%!B(`)!kC1J!!J4A-3!!!!!9i!!!! -4A-3!!!!!9d!!!!F4A-3!!!!!9i!!!!N4A-3!!!!!9d!!!!S4A-3!!!!!9d!!!! d4A3$!!!!!8S!!!!m4A8!N!3"A`!!!%"&G3#3"!&J!!!!@%9c%!!!!!&G!!!!G%9 Z$!3!!!&R!!!!$)!!N!Z!!!#)!*!%4AF!N!3"5!#3"%9Z"3%!!!&U!!!!$2rrrm8 !!#"N*@3Z*@3Z*@3Z*@3!4@X!"!!!!@X!!!&8!!!*5J!!)'4m#!+QNq(rr*2"rrL 6SIrdNi(rm*!!!3!)P#(rX$Z$!!!lT!!!L!)!!(`!"h9!JJ!81!!!!*!!!J!!1!! !!CJ#!!#!!J!!+!!!!%##!-K)!!!"1m-!!*2"!$L!!3!iN!!"!$b!!3!m+!!!!%# #!"3iB!!b5!!!!@!!!!")!!#m1'%!2$L!!!3iS!!#5!!!!Aar'hP!JJ"8,"d!%%# !!"3iB!!@5!!!!@!!!!")!!#-1(`!!)##!!#!!3!m9!9'2S!"!$a8"SBqJ!%!2&3 (aMk!!3!m9!J'2NJ!!!&J!!!!1'!!!%J!!&5!I`!!5!!!!@!!!!!iB`!"5!!!!@! !!!#3!')!!)"L!!#!R`!!5!!!!@!!!!!iI!!!J))!!$Lp!!")!!!"B!!!!$J!!!" mIH)8Q!2rrcKJ!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9c%!! !!!&T!!!!*%9c%!!!!!&S!!!!0%9c%!!!!!&T!!!!2%9c%!!!!!&S!!!!3%9e!*! %!8J!!!"-4A8!N!3"6J!!!("&G3#3"!&*!!!!L%9e!*!%!8i!!!#J4A3$!!!!!@S !!!#`4A8!N!3"E!!!!04&G3#3"!&2!!!!k%9e!*!%!@d!!!$d4A-3!!!!!@J!!!$ m4A-3!!!!!@J!!!%!4A8!N!3"EJ!!!3K&Fa!!!!!"D!!!!44&G3#3"!&[!!!"(%9 Z$!3!!!&c!!!!$)!!N!Z!!!&8)!!!!%9h!*!%!@X!N!4&EJ8"!!!"G!!!!"(rrrr $!!!MqQ9MD'mJ)#!*#5!J0bpeC(!!N!4&EJ8"!!!"G3!!!"2rrrr#!!!MqQ4TFf0 KFQ3J)#!*)#!j,h9NF!#%4@i&!3!!!AB!!!!4rrrr`3!!)rTdD@eP)#!J#3NJ-cF [G@4`!'PZG89Z"3%!!!&h!!!!%[rrrm!!!#2kC'pYB@PZ)#!J#5!e-bpeC(!!!`" &EJ8"!!!"H!!!!",rrrqr!!!MqR0eER*`Bb!J)!Na-6%[G@4`!!E#4@i&!3!!!AN !!!!3rrrr[J!!)rTdCR4`)#!*#5!f15peC(!!4@i&!3!!!AS!!!!4rrrr[3!!)rT LD@CQ)#!J#3Ne-6)[G@4`!-1V#%9Z"3%!!!&l!!!!%2rrrl`!!#2kGfK[)#!J#3N e-6-[G@4`!%9Z"3%!!!&m!!!!%IrrrlX!!#2kG'&XDb!J)!N*06%h,h9NF!"6!!" &EJ8"!!!"I3!!!"2rrrqk!!!MqQCdF#eNBA4K)#!*)$)`,h4MF!#J4@i&!3!!!Ai !!!!2rrrrZ3!!)rTQG(!J)!N*)$)a,h4MF!!!4@i&!3!!!Am!!!!4rrrrZ!!!)rT dC@aZCA3J)!NJ-M-[G'0`!*!%4@i&!3!!!B!!!!!3rrrrY`!!)rTcEA4`)#!*#5! b05pdBh!!4@i&!3!!!B%!!!!3rrrrYJ!!)rTdD@eP)#!*#5!c0bpdBh!!4@i&!3! !!B)!!!!4rrrrY3!!)rThD'pTFb!J#3NJ0$-[G'0`!*!%4@i&!3!!!B-!!!!5rrr rY!!!)rTNEfeKD@iJ#5!*)$8c,h4MF!#Vc%9Z"3%!!!'%!!!!%rrrrl-!!#2kD'p cG'jKE@9c)#!a-$%[G'0`!!"&EJ8"!!!"K3!!!"(rrrqb!!!MqQjZG(!J)#!*#6% a15pdBh!!N!4&EJ8"!!!"KJ!!!"(rrrqa!!!MqQCTEQGPFL!J#5!h15pdBh!!N!4 &EJ8"!!!"K`!!!"$rrrq`!!!MqQjdF#!J)!N*-6)c,h4MF!"&EJ8"!!!"L!!!!"( rrrq[!!!MqR9eBh!J)#!*#68d-#pdBh!!Z+[-4@i&"!!!!BN!!!"BrrrrVJ!!)rS !N&K&GJ8!!!!"L!!!!&"&GJ8!!!!"K`!!!%a&GJ8!!!!"KJ!!!%K&GJ8!!!!"K3! !!%4&GJ8!!!!"K!!!!%"&GJ8!!!!"J`!!!$a&GJ8!!!!"JJ!!!$K&GJ8!!!!"J3! !!$4&GJ8!!!!"J!!!!$"&GJ8!!!!"I`!!!#a&GJ8!!!!"IJ!!!#K&GJ8!!!!"I3! !!#4&GJ8!!!!"I!!!!#"&GJ8!!!!"H`!!!"a&GJ8!!!!"HJ!!!"K&GJ8!!!!"H3! !!"4&GJ8!!!!"H!!!!""&GJ8!!!!"G`!!!!a&GJ8!!!!"GJ!!!!K&GJ8!!!!"G3! !!!4&GJ8!!!!"G!#3"%9V!!3!!!'f!!!!G!!!#Hi!!#D(I!J#TT!!!3!)P#(r`*! !B3"BJ!)!!#J!!!""JJ!JJ')!!$J!rrpm!`"!3B)!%)"L!!")!!!"B!!!!$J!!!# 3!!)!!$KJ!!#!!J!!,!!!!%##!"#!!3"B,!!!!%'#!!JiB!!"N!"L!!#!!3")1#% !3(`)!kC1J!!J4A-3!!!!!C%!!!!34A-3!!!!!C%!!!!F4A-3!!!!!C%!!!!X4A8 !N!3"Y`!!!$"&Fa!!!!!"X`!!!$a&Fa!!!!!"Y3!!!%4&Fa!!!!!"Y3!!!'"&EJ` %!!!"Z3!!!!b!!*!,J!!!G!#3"%9h!*!%!EB!N!4&D`!%!!!"ZJ!!!&3!!!S`!!! R'R`)!UD3!!%!#*3Krm#!!J!!+!!!!%'#!#L!BJ!!1!$rrh`$!%""JJ!BJ')!!%J !!!&J!!!!1!!!!*!!!J!!1!!!!*!!!J!!J!%!5$JK!%"m#!1Q6S!!)%9c%!!!!!' 4!!!!$%9c%!!!!!'4!!!!'%9c%!!!!!'4!!!!+%9e!*!%!EX!!!!X4A-3!!!!!C% !!!!i4A-3!!!!!E8!!!"!4@i-"!!!!E`!!!!-J!#3#i!!!&3!N!4&G`#3"!'k!*! %4@i&!3!!!Ed!!!!1rrrrT!!!*j30,f9dBbpcCA*fD@0PF`!!4@i3!3!!!Ei!!!! #rrrrS`!!*j4b!()!4@i3!3!!!Em!!!!$rrrrSJ!!*j3M$3!!4@i3!3!!!F!!!!! $rrrrS3!!*j3J#3#)4@i3!3!!!F%!!!!$rrrrS!!!*j3[,!!!4@X!"!!!!F)!!!) -!!!+C!!!*j4m#!+Q[f(rl*!!!3!)P#(rB)2#!!#$SJ!!Ji)!!)!#!!!S!!!!3)) !F$KJJ!!mJ("b1+!!!$M"!$Jii3!k1)4PCNJ!!!&J!!!!I'!(08##!$JiB3!qJ)) !!%J!!!&J!!!!1'%!1%J!!!&J!!!!1))!!%J!!!&J!!!!N!"L!!!S!`!!3))!&$J !rrq3!!)!!$J!!!#3!!)!!)"L!!!i!2rrI!-!3%##!%b!BJ!!J!)!!&3!%$Tm!`! Z+!!!!%##!!`iB!!!5!!"1$Km!!#!SJ!!J))!!$J%!!'3!!)!!&5!%$TmK3!Z5!! !!@!!!!")!!!S1(`!!$L!!)#!SJ!!5!!!!@!!!!!S!`!!3))!$$KJ!!")!!$X1(` !!$L#!!")!!!"B!!!!(al'hP"JJ!-1!!!!*JE!!#)(!!!I!!(G8'#re`iI!!!1)) !!%J!!!&J!!!!N!"p!!!S!`!!3B,r3$KJ!!!iJJ!!5!!!!@!!!!"mHaYj3B,r+$K l!!!iJJ!!5!!!!@!!!!#3!(d!$#J$!!""J[m-1)!!!)"p!!`i!`!"N!!G!!bBJ`! !1(X!!%J!!!&J!!!!N!"p!!L6h3!%1q!!!%J!!#JiB!!!1))!!%J!!!&J!!!!9q! 31Raq!5iS!`!!1rm!!8'#!!`X(`!(3B$rf$KJ!!"Ai"!kI(i",MKp!!#!!3#S1#% !S(`)!kDlBIrX6S!!)%9d!`!!!!'d!!!!%%9d!`!!!!',!!!!&%9d!`!!!!'+!!! !'%9c%!!!!!'4!!!!(%9e!*!&)3!!!%"&G!-!!!!"[3!!!&4&G3#3"!($!!!!@%9 e!*!%!F3!!!"N4A-3!!!!!Ei!!!"X4A8!N!3"a3!!!("&Fa!!!!!"N3!!!(K&Fa! !!!!"N3!!!)K&Fa!!!!!"X`!!!*!!4A-3!!!!!C%!!!#84A3$!!!!!BN!!!#N4A- 3!!!!!E-!!!#S4A3$!!!!!BN!!!$)4A-3!!!!!E-!!!$-4A-3!!!!!E-!!!$84A8 !N!3"EJ!!!1"&Fa!!!!!"N3!!!24&G3#3"!('!!!!q%9c%!!!!!'r!!!"&%9e!*! %!FF!!!%B4A-3!!!!!F!!!!&!4A8!N!3"b!!!!84&Fa!!!!!"`!!!!9a&G3#3"!( )!!!"B%9c%!!!!!("!!!"G%9e!*!%!FF!!!&i4A8!N!3"b3!!!D4&Fa!!!!!"`!! !!F"&G3#3"!()!!!"a%9Z$!3!!!(1!!!!$)!!N!Z!!!)-+!!!!%9h!*!%!F)!N!4 &D`!%!!!"c`!!!0`!!!Y+!!!X!A`)!UD6iIrmNm(rq*1Krr56JIr`N!!"!!L8)Iq `1m-!!$Z%!!!iB!!!5!!!!8J!!(!iIJ!!J*d!!%J!!!&J!!!!,!-!!%'#!$L$r3! %5!!!)$Kq!!#!R`!!5!!!!@!!!!!X!`!!3B)!'$[r!!5!(`!!+!!!!%##rpa)!!! N+"`!!%'#!#JiI!!!J*d!$%J!!!&J!!!!,!-!!%'#!"")!!!"I(dEH8##rib!!J! !,!!!!%##!!K)!!!"1(d!!)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp)1"rr"1J!! J4A8!N!3"YJ!!!#K&G3#3"!&(!!!!1%9e!*!%!8F!!!"B4A8!N!3"4`!!!)a&G3# 3"!(#!!!!R%9c%!!!!!'e!!!!U%9e!*!%!ES!!!#d4@i-"!!!!G-!!!!-J!#3#i! !!0`J!!!!4AF!N!3"c`#3"%9V!!3!!!(8!!!!P!!!#rB!!#ffI!J#TT2Krrb6`Ir iNk(rp*!!!3!)P#(rX$ZM!!!la!!!1'!!!%J!!!&)!!!`J"m!#(`G!!"!JJ!N+"i !!%'#!#JiIJ!!J*m!$%J!!!&J!!!!,!-!!%'#!"")!!!"I(mEH8##rmb!!J!!,!! !!%##!!K)!!!"1(m!!)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"&G3#3"!' f!!!!*%9e!*!%!8F!!!")4A8!N!3"`J!!!&K&Fa!!!!!"Y3!!!'4&G3#3"!'k!!! !F%9Z$!3!!!(@!!!!$)!!N!Z!!!#8'!!!!%9h!*!%!G3!N!4&EK!"!!!"e`!!!!6 rrrqG!!!Z`A4MF!"&EK!"!!!"f!!!!!6rrrqF!!!Zh(9NF!"&EK!"!!!"h`!!!!6 rrrqC!!![Ch9NF!"&EK!"!!!"i!!!!!6rrrqB!!![Ch4MF!"&D`!%!!!"i3!!!03 !!!aX!!![Ch`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#!BJ!!J!)!!"`!!!ari`) 81(i!!$L#!!")!!!"B!!!!#`$!!"!JJ!B1!)!!*!!(`!!1!!!%C!!(`!)5!!!4$K q!!!iJJ!!5!!!!@!!!!!X!`!!3))!'$J#!!#3!"m!!$J!!!D3!"m!#%J!!"Ji!!! VJ')!!*!!!`!!1'!!!%J!!#`i!J!!N!!I!!5!BJ!!1)-!!6KJ!!Tm""[@I!!CeR` !)!!)!!$Kr!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G!-!!!!"f3!!!"K &Fa!!!!!"hJ!!!"a&Fa!!!!!"h`!!!#a&G3#3"!&(!!!!-%9c%!!!!!(B!!!!3%9 c%!!!!!(J!!!!@%9e!*!%!8F!!!"F4A-3!!!!!GF!!!"X4A3$!!!!!H)!!!#%4A- 3!!!!!6X!!!#84A-3!!!!!Gi!!!#F4A-3!!!!!Gi!!!#d4@i-"!!!!H3!!!!-J!# 3#i!!!033!!!!4AF!N!3"i3#3"%9V!!3!!!(P!!!!N!!!!!c-!!!a'j2Krrb!JJ! !J!)!!"`!!!arj!)8,!-!%8##!"Ji!J!!N!!I!!!i!!!4N!!I!!K)!!!d,!-!"N# #!"Ji!J!!N!!I!!!i!!!'N!!I!!K)!!!B1!!!+i##!!#3!!3!!$KJ!!")!!!X1!) !!*!!(`!%J))!!$LN!!%iJ!!+I!8MeR`!)GCm!#K3N!!#!!!iI`!!Jq(rr%k!!#" &G!-!!!!"f3!!!!4&Fa!!!!!"hJ!!!!K&Fa!!!!!"f!!!!"a&Fa!!!!!"e`!!!$K &G!-!!!!"iJ!!!&"&Fa!!!!!"1`!!!'"&Fa!!!!!"hJ!!!'K&Fa!!!!!"hJ!!!)" &E"!%!!!"hJ!!!!3!!!!$!!![3d9X"33!!!(C!!!!H2rrrjX!!#m44@`3"!!!!E8 !!!!%!!!!!`!!*QP&E!8%!!!"Y!!!!#$rrrqP!!!Q5N9X%!3!!!'c!!!!"!!!!!- !!#Bb4@`3"!!!!C%!!!!%rrrrU`!!*KG&E!8%!!!"L`!!!"$rrrqX!!!Pqd9X"3% !!!'+!!!!J2rrrkd!!#AF4@`3!3!!!@N!!!!"!!!!"`!!)'4&E"!%!!!"D!!!!!3 !!!"Q!!!JC%9X%!%!!!&H!!!!!3!!!!F!!"k24@`3"!!!!9d!!!!%!!!!!`!!(Sp &E!8%!!!"2!!!!"6rrrr,!!!3"%9X"33!!!%k!!!"&2rrrpF!!!qI4@d&"!!!!6N !!!!%!!!!!`!!"SY&E"!%!!!!!`!!!!6rN!3!!!Hq4@`3"!!!!!)!!!!%!!!!C`! !"jP&E`S%!!!"jJ!!!!L!!*!24AB!N!3"j3#3"%9f$`!!!!(R!!!!"%9[#J3!!!( S!!!!#)!!N!p&GJ#3"!(K!*!%4AB2!!!!!HF!!!!%4@m+"!!!!HN!!!!)J!#3$d9 f!*!%!G3!N!4&GJm!!!!"j`!!!!4&E`S%!!!"kJ!!!!L!!*!24AB!N!3"c`#3"%9 f$`!!!!(R!!!!"%9[#J3!!!(V!!!!#)!!N!p&GJ#3"!(#!*!%4AB2!!!!!HF!!!! %4@m+"!!!!H`!!!!)J!#3$d9f!*!%!ES!N!4&GJm!!!!"j`!!!!4&E`S%!!!"l3! !!!L!!*!24AB!N!3"YJ#3"%9f$`!!!!(R!!!!"%9[#J3!!!(Z!!!!#)!!N!p&GJ# 3"!&V!*!%4AB2!!!!!HF!!!!%4@m+"!!!!Hm!!!!)J!#3$d9f!*!%!8J!N!4&GJm !!!!"j`!!!!4&E`S%!!!"m!!!!!L!!*!24AB!N!3"@J#3"%9f$`!!!!(R!!!!"%9 [#J3!!!(a!!!!#)!!N!p&GJ#3"!&A!*!%4AB2!!!!!HF!!!!%4@m+"!!!!I)!!!! )J!#3$d9f!*!%!8N!N!4&GJm!!!!"j`!!!!4&E`S%!!!"m`!!!!L!!*!24AB!N!3 "43#3"%9f$`!!!!(R!!!!"%9Z#J3!!!%i!!!!#)!!N!p&GJ#3"!%e!*!%4AB2!!! !!HF!!!!%4@m+"!!!!I3!!!!)J!#3$d9f!*!%!6-!N!4&GJm!!!!"j`!!!!4&E`S %!!!"p3!!!!L!!*!24AB!N!3"*!#3"%9f$`!!!!(R!!!!"%9[#J3!!!(f!!!!#)! !N!p&GJ#3"!%L!*!%4AB2!!!!!HF!!!!%4@m+"!!!!IF!!!!)J!#3$d9f!*!%!5! !N!4&GJm!!!!"j`!!!!4&E`S%!!!"q!!!!!L!!*!24AB!N!3"(!#3"%9f$`!!!!( R!!!!"%9[#J3!!!(j!!!!#)!!N!p&GJ#3"!%4!*!%4AB2!!!!!HF!!!!%4@m+"!! !!IS!!!!)J!#3$d9f!*!%!3m!N!4&GJm!!!!"j`!!!!4&E`S%!!!"q`!!!!L!!*! 24AB!N!3""!#3"%9f$`!!!!(R!!!!"%9[#J3!!!(m!!!!#)!!N!p&GJ#3"!%#!*! %4AB2!!!!!HF!!!!%4@m+"!!!!Id!!!!)J!#3$d9f!*!&*3#3"%9f$`!!!!(R!!! !"%9[#J3!!!(q!!!!#)!!N!p&GJ#3"4m!N!4&GJm!!!!"j`!!!!4&E`S%!!!"r`! !!!L!!*!24AB!N!80!*!%4AB2!!!!!HF!!!!%4@m+"!!!!J#3"!L!!*!24AB!N!8 +!*!%4AB2!!!!!HF!!!!%4@m+"!!!!J%!!!!)J!#3$d9f!*!&#!#3"%9f$`!!!!( R!!!!"%9[#J3!!!)#!!!!#)!!N!p&GJ#3"38!N!4&GJm!!!!"j`!!!!4&E`-%!!! "iJ!!!!5!!*!,4AB&!!!!!H)!N!4&EJ-%!!!"f3!!!!5!!*!,4AB&!!!!!GN!N!4 &EJ-%!!!"Y!!!!!5!!*!,4AB&!!!!!E3!N!4&EJ-%!!!"L`!!!!5!!*!,4AB&!!! !!BX!N!4&EJ-%!!!"LJ!!!!5!!*!,4AB&!!!!!BS!N!4&EJ-%!!!"L3!!!!5!!*! ,4AB&!!!!!BN!N!4&EJ-%!!!"[3!!!!5!!*!,4AB&!!!!!Ed!N!4&EJ-%!!!"DJ! !!!5!!*!,4AB&!!!!!@S!N!4&EJ-%!!!"23!!!!5!!*!,4AB&!!!!!6d!N!4&EJ- %!!!"2!!!!!5!!*!,4AB&!!!!!6`!N!4&E`-%!!!"4J!!!!5!!*!,4AB&!!!!!8B !N!4&E`-%!!!"0`!!!!5!!*!,4AB&!!!!!6F!N!4&EJ-%!!!"1J!!!!5!!*!,4AB &!!!!!6S!N!4&E`-%!!!"5J!!!!5!!*!,4AB&!!!!!8S!N!4&E`-%!!!"13!!!!5 !!*!,4AB&!!!!!6N!N!4&EJ-%!!!"4!!!!!5!!*!,4AB&!!!!!83!N!4&E`m%!!! "j`#3")!!N!G&D!!!8eP05!!!$5`!!!"T!*!9!3#3"JQ@!!!!%!!!#CN!!!"%!!! *kJ!!!%`!!!S"rj!%!!!+%!!!!!%!N!B+KJ!!!!J!!!Ui!!!!%!!!#Y$rN!3!!!V L!!%!!!!*!!!!#`%!N!3$!!%!N!B,"`!!!"`!!!XL!!!!-!!!#dF!!!")!!!,PJ! !!%`!!!Zbrj!%!!!-$J!#!!!!#3!!!!X"!*!%(`!!!!X!!!!(!*!&(J#3#!a&!!! !*!!!$'X!!!!m!!!-J`!!!%`!!!c2!!!!A!!!$2$rN!3!!!c`!!3!!!!3rrrrrJ% !N!3H!!!!%Irrrrd"!*!%(`!!!")!!!!$!!-!!!!i!!!!%rrrrr`!!`!!!$`!N!J 0*`!!!#J!!!eD!!!!0!!!$A`!!!"3!!!0X`!!!&3!!!h*!!!!A!!!$H)!!!"S!!! 1"`!!!'`!!!iH!!!!P!!!$S`!!!#N!!!1X[q3"!!!$V)!"!!!!"$rrrrq!3#3""d !!!!4rrrrr3%!N!3H!!!!)J!!!!-!!`!!!$J!!!!M!!!!"J#3"4m!!3#3"Jpk!!! !4!!!%0J!!!"F!!!4GJ!!!)3!!"'d!!!!P!!!%Gm!!!#N!!!5!3!!!+`!!")r!!! ![!!!%U%!!!$3!!!5T2q3"!!!%V!!"`!!!#S!!!!$!3#3""X!!!!V!!!!!`%!N!3 F!!!!,!!!!!X"!*!%(3!!!#d!!!!$!3#3""i!!!!Z!!!!#`#3"4m!!!![!!!!!3! $!!!!1!!!!$$rrrrl!!-!!!%i!!%!N!B6#3!!!"!!!"0X!!!!(!!!%j!!!!!!5!! !%q%!!!"3!!!8*`!!!&`!!"4,!!!!L!!!&*`!!!#3!!!!&1F!!!#F!!!9#`!!!-J !!"9F!!!!d!!!&A$rN!3!!"9l!!-!!!!Y!!!!!`!$!!!!1!!!!#`!!!!,!!-!!!! m!!!!,J!!!!X!N!8I!!%!N!B9S`!!!#3!!"B&!!!!,!!!&T3!!!"!!!!A63!!!&J !!"HY!!!!C!!!&mF!!!"`!!!AjJ!!!(`!!"Iq!!!!L!!!''%!!!#8!!!BH3!!!+! !!"L4!!!![!!!'4`!!!$3!!!CXJ!!!0`!!"R,!!!!k!!!'HS!!!$`!!!D!Iq3"!! !'Jd!!`!!!3`!!!"Q!3-!!!"B!!!"$3!!!!X!N!8H!!!!,J!!!!X!N!8I!!%!N!B D+`!!!!`!!"S`!!!!'!!!'Q`!!!!J!!!E6!!!!$J!!"Yj!!!!3!!!'j%!!!"-!!! EVrq3"!!!'p)!!!!"!*!'(+J!!!!S!!!Fj`!!!$!!!"f6rj!%!!!H!`!%!!!"%J! !!'B"!`!!!&J!!!%6rrrrf!%$!!!!A!!!!4Rrrrrf!3-!!!"J!!!"'J!!!'B"!`! !!'3!!3#3"Kik!!!!)!!!(S8!!!!S!!!I#2q3"!!!(fB!!`!!!4J!!!!#!3-!!!" B!!!"(3!!!'B"!`!!!&`!!!%H!!!!#`!$!!!!1!!"!*!'(k8!!!!J!!!Ij3!!!#J !!#"jrj!%!!!Je!!#!!!"'IrrrrB"!`!!!&J!!!%D!!!!CJ%$!!!!A!!"!*!')8B !!!!S!!!KK3!!!$!!!#)Xrj!%!!!LQJ!%!!!"'!!!!!)"!`!!!&J!!!%6rrrrf!% $!!!!A!!!!4Rrrrrf!3-!!!"J!!!"'J!!!'B"!`!!!'3!!3#3"L-4!!!!+!!!)e! !!!!`!!!Mp2q3"!!!*&`!"!!!!4)!!!"Q!3-!!!"B!!!"*Irrrp8"!`!!!&`!!!% arrrrpJ%$!!!!B!!!!4S!!!"Q!3-!!!"N!!%!N!BNe!!!!#J!!#86!!!!-!!!*EM rN!3!!#BL!!3!!!%5!!!!CJ%$!!!!@!!!!5Arrrr9!3-!!!"F!!!"-IrrrrB"!`! !!'!!!!%D!!!!CJ%$!!!!C!#3#!AV!!!!#!!!"IRrN!3!!!Aj!!%!!!%f!!!!D!% !N!3%!!%!N!B423!!!#J!!"&B!!!!1!!!%Bm!!!"F!!!4e3!!!(3!!")D!!!!K!! !%Nd!!!#B!!!5E3!!!+J!!"+D!!!!X!!!%V`!!!$-!!!5d`!!!13!!",M!!!!p!! !%dm!!!&-!!!68`!!!D!!!"1B!!!"X!!!%p-!!!(!!!!8$3!!!G!!!"4(!!!"i!! !&)-!!!(`!!!8[3!!!J!!!"6b!!!#%!!!&5`!!!)J!!!9A`!!!M!!!"@[!!!#2!! !&Fi!!!*-!!!@1J!!!R!!!"Cq!!!#I!!!&TB!!!+%!!!@cJ!!!VJ!!"Emrj!%!!! A*!!%!!!![J!!!'B"!*!%'3!!!9$rrrr(!!-!!!!m!!!"8`!!!!-!N!8I!!!"0J! !!!B!!`!!!%!!!3#3"KGM!!!!+!!!&i!!!!!i!!!AS!!!!%J!!"I-!!!!8!!!&qi !!!"X!!!B"3!!!+3!!"K)!!!!Y!!!',8!!!%-!!!BZ3!!!9J!!"Mr!!!"D!!!'6N !!!&i!!!CG3!!!BJ!!"Q[!!!"Q!!!'H3!!!'S!!!D(J!!!EJ!!"T4!!!"b!!!'VN !!!(X!!!Dr3!!!IJ!!"YC!!!#"!!!'h%!!!))!!!EM3!!!K!!!"Z[!!!#-!!!'ph rN!3!!"`4!!3!!!&9!!!!CJ%!N!3C!!!"'!!!!!)!N!8D!!!"8`!!!!-!N!8I!!! "0J!!!!B!!`!!!$J!!3#3"K`m!!!!&!!!($m!!!!N!!!FA`!!!$J!!"b-rj!%!!! Fe!!"!!!"@2rrrmF"!`!!!&J!!3#3"Kcr!!!!*!!!(3)!!!!d!!!G)J!!!&J!!"e M!!!!G!!!(CN!!!#8!!!Gj!!!!+!!!"i"!!!!`!!!(L6rN!3!!"j+!!%!!!&E!!! !CJ%$!!!!I!!"!*!'(U!!!!!-!!!HS`!!!#J!!"kp!!!!0!!!(X`!!!!m!!!I!3! !!&J!!"p)!!!!D!!!(fm!!!"`!!!IJIq3"!!!(kJ!!3!!!@(rrrr'!!-!!!!i!!% !N!BJN!!!!!!`!!!JN`!!!%!!!##e!!!!6!!!)2)!!!"X!!!K9J!!!(`!!#&i!!! !P!!!)G`!!!#F!!!L#J!!!+`!!#)T!!!!j!!!)a3!!!%)!!!M3`!!!4!!!#0Urj! %!!!MeJ!%!!!"F!!!!'B"!*!%(!!!!A%!!!!$!3#3""d!!!&brrrra!#3"4m!!!& 3rrrra`!$!!!!2!#3##DP!!!!(!!!*UJ!!!!X!!!Qd`!!!$J!!#ES!!!!C!!!*aI rN!3!!#FA!!%!!!'i!!!!!`%$!!!!@!#3##FX!!!!$!!!*bm!!!!S!!!R@J!!!$` !!#H$!!!!4!!!*j(rN!3!!#H4!!!!!3#3"LHc!!!!+!!!*r`!!!"3!!!SJ`!!!'3 !!#Lp!!!!K!!!+2m!!!#8!!!T-`!!!+3!!#P4!!!![!!!+@`!!!$%!!!TPJ!!!1` !!#R$!!!"#!!!+HX!!!%3!!!U$`!!!5J!!#Sc!!!"-!!!+M`!!!%m!!!UA`!!!9J !!#UI!!!"F!!!+Y!!!!'-!!!V#J!!!D3!!#XK!!!"[!!!+i`!!!(J!!!Va3!!!HJ !!#[2rj!%!!!VrJ!$!!!"Lrrrrjm!!`!!!$J!!!(-!!!!!`#3"4m!!!(0!!!!CJ# 3"4X!!3#3"La(!!!!+!!!,(-!!!!X!!!XK3!!!$!!!#bN!!!!5!!!,0X!!!"3!!! Y!`!!!'J!!#dI!!!!H!!!,6-!!!"m!!!Y53!!!*`!!#f!!!!!U!!!,B8!!!#d!!! YPJ!!!,J!!#fRrj!%!!!YX`!%!!!![J!!!'B"!*!%(J!!!G!!!!"Q!3#3""`!!!( 4!!!!C`#3"4m!!!(5rrrrRJ#3"4d!!3#3"Lhc!!!!*!!!,Jm!!!!S!!!Z)3!!!#` !!#iq!!!!@!!!,SB!!!"N!!!ZN!!!!!"`!!!ZS3!!!(3!!#kbrj!%!!!Z[J!$!!! "e3!!!!-"!*!%(3!!!G!!!!"Q!3#3""i!!!(5rrrrRJ#3"4m!!3#3"LqE!!!!-!! !,pF!!!"!!!![q3!!!&3!!$!`!!!!E!!!-&3!!!#!!!!`M`!!!*3!!$#lrj!%!!! a'!!#!!!![J!!!'B"!*!%(J!!!H2rrrqA!*!&(`!"!*!'-8N!!!!%!!!aB`!!!"` !!$'M!!!!-!!!-GS!!!!i!!!aq3!!!%`!!$)d!!!!B!!!-Q$rN!3!!$+p!!)!!!( 3!!!!!`%!N!3$!!!"irrrrjF!N!8I!!$rN!3!!3!!!'S!!2rrrri!!3!!!!X!!2r rrrd!!3!!!!-!![rrrr`!!!!8!!!!%!!*!!!!&3!!!!X!N!F@!!!!#`!!!!)!!!! A!!!!#`!!!!3!!!!B!!!!#`!!!!B!!!!C!!!!"J!!!!J!!!!D!!!!"J!!!!N!!!! E!!!!#`!!!!S!!!!F!!!!#`!!!!`!!!!G!!!!#`!!!!i!!IrrrrF!!!!#!!!!!J! !!!X!![rrrrJ!!!!e!!!!#!!$!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!hrrrrp`! !!!B!!2rrrrN!!IrrrrJ!![rrrr-!!!"%!!!!&!!(!!!!43!!!!)!N!Fr!!!!"`! !!!3!!!"'!!!!"`!!!!8!!!"(!!!!#J!!!!B!!!")rj!%!!!!#!!!!%!!!!!#!!! !$!!!!%N!!!!#!!!!%!!"rrrrp!!!!"3!!!!8rrrrm`!#rrrrp3!!!$X!!!!J!!J !!!!m!!!!#J#3"cd!!!!(!!!!!J!!!$i!!!!'!!!!!`!!!$m!!!!#!!!!"!!!!%! !!!!'!!!!#!!!!%%!!!!'!!!!#3!!!%)!!!!+!!!!#J!!!%2rrrrd!!!!$!!!rrr rpJ!"rrrrp3!#rrrrqJ!!!$-!!!!b!"%!!!!drrrrq3#3"cB!!!!,!!!!"!!!!$J !!!!,!!!!"J!!!$N!!!"Q!!!!#!!!!$Vrrrrf!!!!$!!!!%S!!!!,!!!!%!!!!%X !!!"V!!!!%J!!!%`!!!!,!!!!&J!!!%d!!!!,!!!!'!!!!%i!!!!(!!!!'J!!!%m !!!!(!!!!'`!!!&!!!!"Q!!!!(!!!!&%!!!"Q!!!!)!!!!&)!!!!$!!!!*!!!!&- !!!!$!!!!+!!!!&3!!!!,!!!!,!!!!&8!!!!$!!!!,J!#rrrrm!!!!'3!!!!%!!) !!!"P!!!!#`#3"fB!!!!,!!!!!J!#rrrrm3!!!&m!!!!3!!8!!!"J!!!!!J#3"f% !!!!#!!!!"!!!!')!!!!+!!!!#!!!!'2rrrr`!!!!#J!!!'F!!!!,!!!!$J!#rrr rmJ!!!&F!!!"3!"J!!!!drrrrq3#3"cB!!!!,!!!!"!!!!$J!!!!,!!!!"J!!!$N !!!"Q!!!!#!!!!$Vrrrrf!!!!$!!!!%S!!!!,!!!!%!!!!%X!!!"V!!!!%J!!!%` !!!!,!!!!&J!!!&J!!!!,!!!!'!!!!&N!!!!(!!!!'J!!!&S!!!!(!!!!'`!!!&X !!!!,!!!!(!!!!&`!!!!(!!!!(J!!!&d!!!!(!!!!(`!!!&lrrrra!!!!)!!!!'J !!!!$!!!!-!!!!'N!!!!+!!!!0!!!!'S!!!!$!!!!0J!!!'X!!!!$!!!!1J!!!'` !!!!+!!!!2J!!!'d!!!!$!!!!3!!!!'i!!!!$!!!!4!!!!'m!!!!#!!!!5!!!!(! !!!!#!!!!6!!"rrrrlJ!!!#!!!!!%!!!!!`!#rrrrl`!!!()!!!"k!#!!!!!drrr rq3#3"cB!!!!,!!!!"!!!!$J!!!!,!!!!"J!!!$N!!!"Q!!!!#!!!!$Vrrrrf!!! !$!!!!%S!!!!,!!!!%!!!!%X!!!"V!!!!%J!!!%`!!!!,!!!!&J!!!(-!!!!$!!! !'!!!!(3!!!!,!!!!(!!!!(8!!!!#!!!!(J!!!(B!!!!#!!!!)J!!!(F!!!!,!!! !*J!!!(J!!!!+!!!!+!!!!(N!!!!+!!!!+J!!!(S!!!!+!!!!,!!!!(X!!!!+!!! !,J!!!(`!!!!#!!!!-!!!!(d!!!!#!!!!0!!!!(i!!!!+!!!!1!!!!(m!!!!#!!! !1J!!!)!!!!!+!!!!2J!!!)%!!!!+!!!!3!!!!))!!!!,!!!!3J!!!)-!!!!,!!! !4!!!!)3!!!!,!!!!4J!!!)8!!!!#!!!!5!!!!)B!!!!,!!!!6!!!!)F!!!!#!!! !6J!!!)J!!!!#!!!!8J!!!)N!!!!#!!!!9J!!!)VrrrrZ!!!!@J!#rrrrl3!!!)` !!!!d!")!!!!drrrrq3#3"cB!!!!,!!!!"!!!!$J!!!!,!!!!"J!!!$N!!!"Q!!! !#!!!!$Vrrrrf!!!!$!!!!%S!!!!,!!!!%!!!!%X!!!"V!!!!%J!!!%`!!!!,!!! !&J!!!)d!!!!,!!!!'!!!!)i!!!!,!!!!'J!!!)m!!!!,!!!!(!!!!*!!!!!!"`! !!"i!!!#4!!!!"`!!!"m!!!#5!!!!!`!!!#!!!!#6!!!!!`!!!#3!!!#8!!!!!`! !!#J!!!#9!!!!!`!!!#`!!!"S!!!!!`!!!$!!![rrrq`!!!#A!!!!*!!-!!!!02r rrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ! !!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!#B!!!!#`! !!"J!!!#C!!!!#`!!!"S!!!#D!!!!D`!!!"`!!!#E!!!!!`!!!#!!![rrrqX!!!# G!!!!0!!3!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ! !!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`! !!"B!!!#H!!!!#`!!!"J!!!#I!!!!#`!!!"S!!!#J!!!!D`!!!"`!!!#K!!!!D`! !!#!!!!#L!!!!!`!!!#3!!!#M!!!!!`!!!#J!!!#N!!!!!`!!!#`!!!"S!!!!!`! !!$!!![rrrqS!!!#Q!!!!0!!4!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`! !!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!!!"!!!!",!!!!D`! !!")!!!"-!!!!#`!!!"B!!!#R!!!!#`!!!"J!!!#S!!!!#`!!!"S!!!#T!!!!!`! !!"`!!!#U!!!!#`!!!#!!!!#V!!!!#`!!!#)!!!#X!!!!!`!!!#3!!!#Y!!!!!`! !!#J!!!#Z!!!!!`!!!#`!!!#[!!!!!`!!!$!!![rrrqN!!!#a!!!!1J!4!!!!02r rrrN!N!Ff!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ! !!!`!!!"+!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!#M!!!!!`! !!"J!!!#b!!!!D`!!!"`!!!#N!!!!!`!!!#!!!!#c!!!!!`!!!#3!!!#d!!!!!`! !!#J!!!#e!!!!!`!!!#`!!!#f!!!!!`!!!$!!!!#h!!!!#`!!!$3!!!#i!!!!!`! !!$B!![rrrqB!!!#m!!!!4J!$!!!!,!!!!!X!N!Hp!!!!!`!!!!)!!!#q!!!!!3! !!!B!!2rrrqF!!IrrrqB!!Irrrq%!!!!'!!!!!J!!!!X!![rrrq)!!!$)!!!!%!! '!!!!b3!!!!X!N!I+rrrri3!!!!)!!!$,!!!!"`!!!!J!!!$-!!!!"`!!!!N!!!$ 0!!!!#`!!!!S!!!$1!!!!!`!!!!`!![rrrq-!!!$&!!!!E!!F!!!!02rrrrN!N!F f!!!!#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!" +!!!!#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!"B!!!!#`!!!"J!!!" C!!!!"`!!!"S!!!"D!!!!"`!!!"X!!!"E!!!!#`!!!"`!!!"F!!!!"`!!!"i!!!# 4!!!!"`!!!"m!!!"Hrrrrm3!!!#!!!!"S!!!!!`!!!$!!!!"T!!!!#J!!!$3!!!" U!!!!!`!!!$B!!!"V!!!!!`!!!$S!!!"X!!!!#J!!!$i!!!"Y!!!!!`!!!%!!!!" Z!!!!!`!!!%3!!!"[!!!!!J!!!%J!!!"`!!!!!J!!!%`!!!$'!!!!!J!!!&!!!!$ (rrrriJ!!!&3!!!$2!!!!!`!!!'3!!!$3!!!!!`!!!'J!![rrrpi!!!$@!!!!#!! %!!!!e`!!!!X!N!IB!!!!#`!!!!)!!!$C!!!!#`!!!!3!!!$D!!!!#`!!!!B!![r rrpm!!!$8!!!!%!!%!!!!eIrrrpi!N!IE!!!!#J!!!!J!!!$Frrrrm!!!!!S!!!$ G!!!!#`!!!!i!!Irrrpd!!!!5!!!!!J!!!!X!![rrrp`!!!$N!!!!%!!'!!!!jIr rrr!!N!IQ!!!!!`!!!!3!!!$R!!!!"`!!!!J!!!$S!!!!"`!!!!N!!!$T!!!!#`! !!!S!!!$U!!!!!`!!!!`!![rrrq!!!!$5!!!!D!!A!!!!02rrrrN!N!Ff!!!!#`! !!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`! !!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!"B!!!!#`!!!"J!!!"C!!!!"`! !!"S!!!"D!!!!"`!!!"X!!!"E!!!!#`!!!"`!!!"F!!!!"`!!!"i!!!#4!!!!"`! !!"m!!!$6rrrrh`!!!#!!!!$H!!!!!`!!!$!!!!$I!!!!#J!!!$3!!!#0rrrrh3! !!$B!!!$J!!!!!J!!!%J!!!$K!!!!!J!!!%`!!!$L!!!!!J!!!&!!!!$Mrrrrh!! !!&3!!!$V!!!!!`!!!'3!![rrrq3!!!$$!!!!E!!#!!!!a2rrrq-!N!I4rrrri!# 3"[rrrq8!!Irrrq3!!IrrrpS!!!!-!!!!!J!!!!X!![rrrpX!!!$[!!!!%!!#!!! !m!!!!!-!N!IarrrrfJ!!!!3!![rrrqJ!!!#k!!!!6!!5!!!!02rrrrN!N!Ff!!! !#`!!!!3!!!!i!!!!#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!! !#`!!!"!!!!",!!!!D`!!!")!!!"-!!!!#`!!!"B!!!#lrrrrj`!!!"J!!!#r!!! !!`!!!"`!!!$!!!!!!`!!!#!!!!$"!!!!!`!!!#3!!!$#rrrrj3!!!#J!!!$Xrrr rj3!!!#`!!!$Y!!!!!`!!!$!!!!$Zrrrrf`!!!$3!!!$b!!!!CJ!!!%3!!!$c!!! !!`!!!%J!![rrrpN!!!$e!!!!4!!6!!!!02rrrrN!N!Ff!!!!#`!!!!3!!!!i!!! !#`!!!!B!!!!j!!!!CJ!!!!J!!!!krrrrpJ!!!!`!!!"+!!!!#`!!!"!!!!",!!! !D`!!!")!!!"-!!!!#`!!!"B!!!$f!!!!!`!!!"J!!!$h!!!!!`!!!"`!!!$i!!! !CJ!!!#!!!!$j!!!!!`!!!#3!!!$k!!!!!`!!!#J!!!$l!!!!!`!!!#`!!!$m!!! !!`!!!$!!!!$p!!!!!`!!!$3!!!$q!!!!!`!!!$J!!!$r!!!!!`!!!$`!!!%!N!3 $!!!!3!!#rrrrq`!!!$%!!!"k!!S!!!!brrrrqJ#3"eErrrrb!*!(FIrrrqm!N!H ,rrrrl3#3"jErrrrX!*!(R2rrrqX!N!HPrrrrkJ#3"l$rrrrT!*!(ZIrrrqJ!N!I drrrrf3#3"3(rrrr@!!!!%!!!!!3!!!!#!!,rrrrA!!!"&!!!!43!"!!!!48!!!! $!*!'!4B!!!!3!!!!"!!!!4F!!!!(!!!"!`!!!4Mrrrr@!!!""!!!rrrrf!!"rrr re`!"rrrrdJ!!!"!!!!!%!!!!!J!"rrrrd!!!!"i!!!!"!!!!"`!"rrrrc`!!!"i !!!!"!!!!"`!#rrrrd3!!!5S!!!!m!!)!!!%Vrrrrd!#3"J%Xrrrrc`!!!"i!!Ir rrmd!!!$r!!!!!3!!!!F!![rrrmi!!!%Z!!!"!J!#!!!",`!!!!S!N!B"-2rrrmd !!!!#!!,rrrr6!!!"+!!!!3)!!`!!!4Mrrrr5!*!'!5Rrrrr4!*!'!5hrrrr1!*! &![rrrp3!!!%Q!!!#"J!%!!!"&3!!!!-!N!B"&J!!!"!!!!!%!!!"&`!!!!F!!!% $!!!"*rrrrp-!!!%%!!$rrrr9!!(rrrr8!!(rrrr-!!!!"!!!!!3!!!"Q!!$rrrr +!!%!!!!#!!(rrrr,!!!!&!!!!!6rrrr+!!,rrrr*!!!"2J!!!"3!"3!!!6m!!!" Q!*!'!8!!!!"R!!!!"!!!!8%!!!!$!!!!#!!!!8)!!!!$!!!!$!!!!8-!!!"R!!! !%!!"rrrrb!!!!!S!!!!"!!!!"`!#rrrra`!!!9%!!!!%!!%!!!&5!!!!!J#3"3, rrrr'!!!"BJ!!!#3!$!!!!$6rrrrj!*!(0J!!!!X!!!!%!!!!1!!!!!X!!!!'!!! !13!!!'B!!!!)!!!!1[rrrrB!!!!-!!!!5J!!!!X!!!!3!!!!5`!!!'X!!!!5!!! !6!!!!!X!!!!@!!!"B`!!!!X!!!!B!!!"C!!!!!X!!!!D!!!"C3!!!!)!!!!F!!! "CJ!!!!-!!!!J!!(rrrr&!!!!$!!!!!%!!!!(!!$rrrr%!!(rrrr*!!(rrrr$!!! !%3!!!!%!!!!(!!(rrrr#!!!!%`!!!!%!!!!(!!(rrrr"!!!!%3!!!!%!!!!(!!( rrrr!!!!!%J!!!!%!!!!(!!(rrrqr!!!!%J!!!!%!!!!(!!(rrrqq!!!!%!!!!!% !!!!(!!(rrrqp!!!!%3!!!!%!!!!(!!(rrrqm!!!!%!!!!!%!!!!(!!(rrrql!!! !%3!!!!%!!!!(!!(rrrqk!!!!%`!!!!%!!!!(!!(rrrqj!!!!$`!!!!%!!!!(!!( rrrqi!!!!%3!!!!%!!!!(!!(rrrqh!!!!%!!!!!%!!!!(!!(rrrqf!!!!%!!!!!% !!!!(!!(rrrqe!!!!%3!!!!%!!!!(!!(rrrqd!!!!%J!!!!%!!!!(!!(rrrqc!!! !%`!!!!%!!!!(!!(rrrqb!!!!%3!!!!%!!!!(!!(rrrqa!!!!%3!!!!%!!!!(!!( rrrq`!!!!%!!!!!%!!!!(!!(rrrq[!!!!%3!!!!%!!!!(!!(rrrqZ!!!!@!!!!!3 !!!"Q!!(rrrqY!!!!J!!!!!%!!!!(!!,rrrqX!!!"M!!!!"!!"!!!!Bd!!!"Q!*! '!Bi!!!"R!!!!"!!!!Bm!!!!$!!!!#!!!!C!!!!!!CJ!!!!`!![rrrkN!!!'9!!! !"!!'!!!"PJ!#(alrN!3!!!'A!!)G'rq3"!!!!CJ!!KSCrj!%!!!"Q3!#'"ErN!3 !!!'D!!)9&2q3"!!!!CX!!K-6rj!%!!,rrrqS!!!"R3!!!!J!"!!!!Ci!!KmGrj! %!!!"R`!#("crN!3!!!'J!!!!"J!!!!3!!!'K!!!!"J!!!!8!!IrrrkF!!!!#!!! !!3!!!!B!!IrrrkB!!!!%!!!!!J!!!!S!![rrrkS!!!'5!!!!6!!8!!!"N`!!!!) !N!B"P2rrrkN!!!!%!!!"R2rrrkJ!!!!)!!!"SJ!!!!B!!!!3!!!"S`!!!!B!!!! 4!!!"T2rrrkF!!!!5!!!"TIrrrkB!!!!8!!!"TJ!!!!)!!!!B!!!"T`!!!'J!!!! F!!!"U!!!!!)!!!!J!!!"U3!!!'J!!!!N!!!"UJ!!!!)!!!!S!!!"U`!!!!)!!!! X!!!"V!!!!!)!!!!`!!!"V3!!!!)!!!!d!!!"V[q3"!!!!$J!!!'[rj!%!!!!2!! !!E$rN!3!!!"!!!!"XIq3"!!!!%3!!!'brj!%!!!!5!!!rrrrU`!"rrrrUJ!"rrr rT3!!!#!!!!!%!!!!CJ!"rrrrT!!!!!i!!!!"!!!!"J!"rrrrS`!!!!)!!!!"!!! !"`!"rrrrSJ!!!!-!!!!"!!!!"`!"rrrrS3!!!!-!!!!"!!!!"`!"rrrrS!!!!!- !!!!"!!!!"`!#rrrrR`!!!FS!!!"'!!%!!!(,rrrrjJ#3"[rrrji!!Irrrk`!!Ir rrjd!!!!%!!!!!3!!!!F!!Irrrj`!!!!%!!!!!3!!!!F!![rrrjS!!!(D!!!!$!! $!!!"f`!!!'B!N!B"h!!!!'F!!!!%!!!"h3!!!!-!!!!)!!(rrrqE!!!!H!!!!!c rrrqD!!(rrrqC!!!!"!!!!!%!!!!(!!(rrrqB!!!!"!!!!!%!!!!(!!$rrrqA!!( rrrqD!I"%CACPE'p`1N0[C'9ABA*bD@pb)&"bEb!d1NePG(*[Gf9bDh-J3fpNC9G KFR*TEh)k6@&M6e-J8h9`F'pbG$T)C@&NCA*c1P0jFh4PE5"&H(4bBA-J5'9KC'9 bFcT0B@083e!J5'9KC'9bFcTNER)ZB`!%9fG%6P*$Ef4P5'jNE!!$6QG%6P*$Ef4 P8(4b!!$Q9A4TE%eKD@i!"*XZ6R9Y9'p[E'*[H&4bBA"cAep'GJ!!Bbj14f9d9(* KF%&NC(*PFh-!"&j!1$%h!!!5,NGPG&4bBA"8HA"PAep'F`!(`(4SC94bBA!!"dN Z9(*KF%9iDA0dFepI4R-!!fYdD'98FQ&`9(P`C3!%I8!i-MB!"ddZ4f9d8hPcG'9 Y4QpXC'9bAep'8(03E!!%)#j6HA0&ERCTFQpZF`!#R5j(CA4A4%PZCQm!!"0f8Q9 Q6R9Y8!!'p@4TFNP%8!!!DRGN8(*[BdP%!!5UD@jQE`!"Ie0jFd9ZGP*PB`!(Hf9 ZGQPbEfjc9Q9bFfP[EJ!$"@eKBfKTEQ98HA"P!!A2FhPcG'9Y9Q9bFfP[EJ!"BA" bEf0PFh0[FJ!'H'KKFdC393!#ifKKFd0[E'pb883!"%9VCAP#Ef&bC&4jF'8!"BC KG%4bGR*@CA*c6R9Y!!)[FhPc9P*PCNjeE3!%Pd!i-c!!"mdZ4f9d3e"KEQ9X4Qp XC'9bAep'8(03E!!!-5j(CA0dB@ad!!1",NCTEQ4'EfaNCA)!"lGQC@&dGA*P!!4 )D'&c4QpXC'9b6@Gb!!5i3$Jd-3!$A5j6C@&bBfK'EfaNCA*'Eh*%6P*3Aep'E'a cE!!&cbj)6h"PEP*PFdCTE'8!"j8Z4f9d5@jN8Q9cEh9bBf8!"9FZ3fa[Ff95CA0 'D@aP!!"b,P"#5%GPG%C*EQC[8hPZB`!#QR4KFQGPG&4jF'8!"9PdBA*RCA4$FQ9 KG'pb!!FHGP*PCNjeE3!&,@4TFNP%!!BrFQ9QER9Y!!#TCQPXC@jKE@8!!M9QD3! 'YNK3BA*KE8*XEf0V8Q9M!!FYD@p3BA*KE3!!5dK*6e"KFQ&Y!!8EF8aTEQX!"Ap 44@aPE3!&QR&8HA"P!!@1F84KG'%!"M9TEe4bBA!!!G9TEd0YC%&NC()!"0YTEd0 [EA"XCA4TEfi!!Ep5Eh9dD@jP4'9cBh*TF(4[FJ!(*fG[6@PiC@40Ef4P9(*KF!! (4(CPFR0TEfi!"JKbEh9dD@jP4'9cBh*TF(4[FNCXB@Gc!!&@FQ9cCA*fC@3a!!& AFQ9cCA*fC@3b!!4hFf9XC@0dEh**EQC[!!3UFQpeG'PZC80[G@jd!!E`FQpeG'P ZC9*PBfpbC(-!"4p5Eh9dD@jP8Q9MEh*N!!#rF(*[BdPZCQm!!p"*8d%!"2YbEh9 dD@jP4QaKCh-!"S4`FQpM4'9cBh*TF(4[FJ!!eh0PE'9MG'pb!!"rD@p5CA0eE(3 !!GCTEdjKE@93G()!!@aTEeC5C@C1G@d!!(TTEe*PCNjeE3!"fQP[9Q9bFdjeE3! "bfP[8'9bEA0cEJ!'afP[6@PcB`!!2@P[3R9QCQ9b!!+UD@p5CA&$Eh9ZG!!#C@P [3@0d3fpeER3!!@4TEe"[Fde[C'8!!e*TEe"[FdpQCR0PG!!"0fCTE'93BA*KE3! ##NK'D@aP8'&bB@d!!@KTEdC5C@C1G@d!!M"TEdC@CA*c6R9Y!!GSCQPXE'9b-3! $@'P[4N4TFNPZC'9i!!)`D@p'E%&dG(*TBJ!$!QP[4Qa@CA*c6R9Y!!64D@p'E%C ZC(**EQC[!!9q4NPZCQm!"QCQC&4jF'8!!@YQC%0bC@&dEh)!"laQC%CXB@Gc!!) 'CQ4-Ef0KG'P[EJ!&T&"[D@jd!!&fGJ!"D'J!"VCQC%CXC()!"mKTEd4TFNP%!!% 2D@p'E&0d3QaV!!(rD@p'E%aR6'9Z!!(-D@p'E&"j6'9Z!!,TD@p'E&*6G%*XD`! #3'P[4Qa56'G-C@i!!STTEdCX8P"j6'9Z!!'pD@p'E%0b4'&d!!(AD@p'E%eN4'& d!!1lGQpXG@eP8'&bB@d!"(C)9QpXG@eP8'&bB@d!"fPQD@aXCA)b!!*MD@p@Efa *EQ4PH!!"`fP[9N0b4'&dC3!!f@P[9Nac6@pN!!HpD@p@3A4bBJ!!K@P[9NjY4Qa c!!'0D@p@3QPd6@&`!!,#D@p"E'a[Be"dFJ!$,@P[9NjY3@a#E'Yc!!1JD@p@3@a #E'Y6DAS!!I"TEeC$E("6DAS!!*&TEd&X3Qa6G!!#BfP[9NjiG%01583!!&*TEeC 'FN*XD`!#k'P[9P0TCeG[FQ3!!NCTEeC%FRC*EQC[!!*LD@p@4&*PCNjeE3!(I'P [9NC6583!"i4TEeC#De9`!!%!D@p@8f9a6R9Y!!"3D@p@9h*$ER3!!IjTEeC'D@a $ER3!!3&TEeC%DA*$ER3!!`pTEeC'EQ4b5@jQE`!$'f&MBf9cFe"KFQ&Y!!1F3@0 MCA0c8'&bB@d!"fTQD@aXCA)c!!1(D@p%C@jj6@pNCA-!"fYQD@aXCA)d!!GXCQP XE'9b03!!e'P[3809Ff9b!!GYCQPXE'9b0J!$[@P[3802GfjPFNP%!!2"D@p"3dG bEh9`583!!NKTEd&$3@0MCA0c!!#rEf*U8'&bB@d!!-"2BQT3BA*KE3!(EQCTE'a PFMF!!C0TEdpLDP4jF'8!"29TEdpLDNjKE@93G()!"h*TEdpLDNP%!!&4Bfp`H9" KFQ&Y!!&b3fp`H9"KFQ&Y!!3KD@p%Fh4@8Q9Q6R9Y!!G[CQPXE'9b1!!"HQP[6Q9 h6Q&YC3!#DQP[3fp`H8jKE@8!!QGTEdjPGd4TFNP%!!""CQPXE'9b-63!!%*QD@a XCA)a03!(ZAGN8'&bB@d!"q4A4&"KFQ&Y!!G`CQPXE'9b13!")'P[9d4*EQ4PH!! #cQP[9d43FQpM583!!b9TEeG%9P*PCNjeE3!!2@CTE'aPFM%`!!!qCQPXE'9b-6% !!$pQD@aXCA)a-J!!3'CTE'aPFM%c!!&cD@pA4%4TFNP%!!!XCQPN8'&bB@d!!,& '5843BA*KE3!&4'P[4'9cG%jKE@93G()!!jTTEd4PFh4%DA**4!!!3fCTE'aPFM% f!!"%CQPXE'9b-6F!!QKTEe0bBd4TFNP%!!"&CQPXE'9b-6J!!!*TEdCTE'9*4!! (b'0c8'&bB@d!"qp$8e"KFQ&Y!!*aD@p0BA4MD&"dFJ!'#%C68h"PB`!&bR"KFNP %!!5VEQ&YC3!(!'P[8Q9a6@&dBfK$Eh9ZG!!(d'P[3@0d6@&dBfK$Eh9ZG!!%kQP [8f9KFQ0S3QPdF`!&b'P[8f9KFQ0S5@jQEc%!!ZK$5@jQEe"#8Q9M!!'ZD%CTE'9 *EQC[!!&05%CTE'9*EQC[!!&*D@p'E%*V4'&d!!9KD@p'E&K'EQ4b5@jQE`!'H%C B5@jQE`!!SfCN5@0[ENP%!!!fCQ49ER9cC@3!!-PQC&0MFQP`G!!!+'CN@%CXB@G c!!'5CQ4$EfeYC@jd!!(9CQ43GA4"Gf&j!!%,D@p'E&"KFNP%!!*4D@p'E%0XF&0 THJ!(H@4TFNPZCQm!"k&%DA**EQC[!!)5D@p%FP9cFPGNF`!&hN4*EQC[!!B#CR* 5C@0d!!4r8Q9MG!!$,h4[F!!%$'aPCR3!"L*LEh4dEfd!"GCbD@GSG!!(CfCb4Qa KCh-!!PKQFNa[Bf&dD@pZ!!C6CR*@D@9h!!(SD@p%FN4TFNP%!!'1D@p%FNjY4Qa c!!(AD@p%FN0b4'&d!!'0D@p%FNeN4'&d!!(MD@p%FN*V4'&d!!6!D@p%FNCZC(* *EQC[!!DN4&K*EQC[!!#fCR*6Bh*[E'`!!maQFNp`C@j$D'&TEJ!!4QCb8f0bDA" d!!#ZCR*B4QaKCh-!!F*QFN0[E@ePER3!!BPQFP"eG%&hBAN!!54TEd4b8'&b583 !"FPTEe0PBA*MD%PZCQmb!!6SD@p6C@&bBfK8D@eP!!A6D@p$BA43Eh0TG'P[EJ! 'CN0KG&"[FfPdD@pZ8Q9M!!)kD@jTG'PKE'PkC3!%TA"bDAB!!`TTEdp`G%*eCQC PFJ!%+@P[6h"d3R9Q8fPkC3!!2@C[FQ9TCfj3FQPf8'&bB@d!!&&'Eh*PD@GZ8(* TGP"KFQ&Y!!+kD@p'D@aXCA)b-3!#ZfP[4QPXE'9b-M)!!hTTEdC[FQ9TCfj3FQP f3R9QCQ9b!!9fD@p'Eh*PD@GZ8(*TGN&MG%0[G@jd!!9hD@p'Eh*PD@GZ8(*TGP* PF80[G@jd!!+mD@p'D@aXCA)b-`!#3@P[4QpbC@PREP"bDAC%DA**4!!#qQP[4Qp bC@PREP"bDAC*EQC[-3!#qfP[4QpbC@PREP"bDAC*EQC[-J!#r'P[4QpbC@PREP" bDAC*EQC[-`!#r@P[4QpbC@PREP"bDAC*EQC[0!!%fN!i06-!"Q8Z6h"PENpeFP* 'Aep'GJ!%q%!i0M%!"IBZ6h"PEP*PFfpXGQ9b!!&Y,P*PFd9bFQpb!!GX,N4PG'& MD&*PFfpeFQ0P!!$`,Ne[GQ9)5'N!"SJZ5%a[BfX!![%Z3f&XE&9ZDACPFR0KE&" bEf-!!'`Z5&9ZE'pMD`!'`bj%DA0`Eh0P5'&ZC'aP!!#jCQPXC8jKE@8!!V&bB`! %'%!i0c%!"KNZ3fa[Ff95CA0[E(CPFJ!%(%!i0c8!!ZJZ8h4b9'p"C'4b!!$UD'p cG%jKE@8!!BPbG'j6G(*eBh3!!1&SEh0d5@jQE`!(2(*dEN0[C'8!"H9MEQ&YC3! 'Z@CTE'aPFJ!%3'&NC()!!TpbCA0eE(4`FQpM!!-UGA0PFN4KG'&3G()!"#"!1$F j!!+e,N&NC(*8Ee0dFJ!(E@&NC(*6G()!!c9PFR)!"$Y!1$Jc!!*C,N9ZG@e$B@0 SC3!%2d!i1$F!!j!!,N&NC(*8EdjKE@8!"&P!1$Na!!CU,NK*EQC[!!5ZFQ9dGA* Z8Q9M8(4b!!(BFQ9dGA*Z8Q9M!!@ZFQ4KG'%!"K0!BfaKFh-N1$!j4e9658jPG%4 #Af0`!!8XD'PZCQm!!%0)5@jQEe*PB`!(J'0`G94jF'8!"QP[Fe4jF'8!!L9YH!! &f8eB8Q9M!!+NF(*PCQ9bC@jMC3!!rQ9iBfKKEQGP!!,[FQ9cG@ad8(*[B`!%A8! i168!"cmZ69K*EQC[!!4K3$Jj13!!CLj%6P*%EfjP!!3LC'pZC3!!m(9%6P*%Efj P!!I94%j54'pZC3!(EQKICA*bEQm!"`*YB@0)Eh0d!!'dB@aTBA03G(*c!!#IB@4 NFP"dFR-!!29eEQPi5'pcG!!(-@K[Fh4PER3!"TCSAfjKE@8!!FGSAf&XD@&cCA- !!VpSAf&NC(*dHA"P!!"eD&pXC@jRG'J!!aPSAf&NC(*IE'PcG!!%`N!j0$F!"L- ZCf9dD'pcG'*jEQ&YC3!!F8G98dP6F'PZ!!Gm,R0dFQ0YF!!#@#jRCA4SEh0dD@3 !"RNZCf9dD'pcG'*jB@4NFJ!$$%P14946Ef0VCA4c!!GP,P*PFfpXGQ9bAema0NP 14946Ef0VCA4%EfeKD@j'GJ!$@Lj(990*3fKPBfY"E'&bE9pI4RB!!j3ZAep`G(* ICfaeC3!$V5j(990*Af9bFQpb!!Hp,R0dFQaPEJ!'HQP`B@4NFJ!(E@PZAf&NC() !"RecAf&NC()!!@PT!!6$3$Nd1!!&@'&NC(*3!!4"3$Ni03!#'5jTEQ9dAfjdEf% !"YTTEQ&NC()!"%9!16Jj!!,q,QPZCA4IB@4NFJ!(Gf&NC(*PFh-!"AK!-6!`03! %-(0)Eh0d583N-6!`0J!&HN!a-$!h!!91,N4bDACPFPpI-6C*6N988fpMDf9d4'p YB@PZ4RB!"PmZ8%*$EfjdFQpX8hPZB`!$J("LFJ!"d%GPG%&NC(*3BA*KE8*XEf0 V!!%@D@p$8Q9Q6R9Y!!DUBh0$Ef4P!!+9Eh9b3@4NFQ9cF`!#@QpeFNjPG%eKFfX !"CK!-6!a03!'FA0)Eh0d6Q&YC53a-$%f!!@D3$%`-6F!"G9!-6!c-J!%cLjRCA4 SEh0dEQ&YC3!!C#jcF(*TER4Q!!-X,PpIERGKAep'9@`!"q8ZFh4bBh"j!!"T,R0 dFQjMF(N!!"eYB@0SEQ&YC3!'pf*eCQaPEJ!#I@K`!!A@3$%`-c-!"GG!-6!c0!! &f%!a-$-e!!AC3$%`-cB!"GT!-6!c0`!&fd!a-$-i!!AF3$%`-cN!"I0!-6!d-!! &p%!a-$3a!!Ae3$%`0$)!"IC!-6!d-`!&pd!a-$3d!!Ai3$%`0$8!"IP!-6!d0J! &qN!a-$3h!!Al3$%`0$J!"Ia!-6!d13!&%d!a-$8`!!883$%`06%!"49!-6!e-J! &&N!a-$8c!!8A3$%`063!!1YcCA*fE'PcG!!!1h0PFRCXD@jP!!36Ff9bGJ!(3(0 PFRCPER3!"JGcAfjKE@8!!30cAf&XD@&cCA-!"[4cAh"[FR3!"i0cAh"bEh4[!!H mFf9bGQCTE!!&E&p'58a&!!BKD'&ZC'aP!!4KE@pNC3!%6&pICQPXC9pYEf4PF`! "['p`C@jIE@pNC3!(P@P[Afe[C'8!!q&LG@CQCA*IE@pNC3!"[QCTE'9IDfPZC!! !GfCTE'9IEh*TC@jdBA4TEfi!!44LD@jKFRPID@m!"FTcG'&dC3!%pepICQPXC9p cG'&dC3!!V'P[Ah0dBA4P!!-5CR*PC9pLG@CQCA)!!mPPEfB!"44PFR*[FJ!$['0 SBA*IBR9QCQ9b!!6GBfKKFPpLG@CQCA*IEhCPFQCXEhF!"84eEQGPG'0IBR9QCQ9 b!!C*G@jRCA4hBepLG@CQCA)!!(C`Eh0TG'P[EJ!'!f*eCQCPFJ!$Ef*eCQCPFPp cDATP!!*qBR9QCQ9bAh"dFJ!#U'*eCQCPFPpXC@i!!2GLG@CQCA*IB@aTCfjYC@j d!!$(Ff&fC@4IBR9QCQ9bAfaPEJ!#hQ*eCQCPFPp`Eh-!"D&`Eh0TG'P[EPp`FQp M!!(aFQ9KC&p`FQpM!!)EGh*TG'9IF(*[B`!#Y'0XEh0PAh"bEf-!!6KTC'aPAh" bEf-!"dYcCA*fF(4b!!'6Ff9bGQ&XD@&c!!!pFf9bGR0dBAN!!cJZFf9dFf9bGQ9 ZG!!(*bjbCAGTEQ3!!(0cG'&jEh"PEJ!&(%!a-$8j!!1L,Q9ZC(0PFRCPER3!"bm ZCQ0XEh0P!!8i3$%`0M3!"Ce!-6!j13!&Pd!a-6!`!!@B3$%a-$%!"CP!-6%`-J! &QN!a-6!c!!2Y,QGPG(0PFRCPER3!!E8Z8%acG(*MF(N!!-mZ4R9XE&"KG'KIAcP 84QPXC90`C@0$4RB!"N)ZCQp`C@i!"YdZCQGPG(-!!(NZFh4bF'*bD`!('bjcG(* dEfX!"6FZBA4[D3!"He4'D@aP8h"PB`!(*54'8e0`C@-!!UKKE'PKFf0[G@jd!!& `F!!&Qd!a-6!d!!D',QGPG(0PFRCLH@jKE@8!"GY`FQpdE`!#Q'&X!!1hC@jd!!A F3$%a-M8!"SXZCf9dFf9bGQ*jF'pbG!!%Q("[FR3!"Ij!-6%c0`!$VR4MF!!$XR9 NF!!"+h"bEh4[C@jdF`!!aA"bEh4[C@jd!!B&F&pZB@eP!!(HF&pKE'PKFf9c!!G "F&p`FQpdE`!'Ih"bEh4[C@jdAf0[G@jd!!8F3$%a0$8!"4e!-6%d0J!(kLjRCA4 `FQpdEf*jEQ&YC3!&m@9bFQj[!!*cF'8!"4j!-6%d0`!"DbjRCA4`FQpdEf*jER9 YBQ9b!!$UCf9dF(*[G'pLH@jeE@*PFJ!$IP423`!'K@GPG("bEh4[BRPZB@eP!!9 kCf9dFf9bGQ*jF'pbG!!&N@GPG(0PFRCLH@jKE@8!!J0RCA4cCA*fC@jd!!)lC@j NFf9bGQ9ZG!!#L(0PG(0PFRCPER3!!b"RCA4SEh0dEQ&YC3!"j@GPG'K[Fh4TC!! "4@PZCA4IB@4NFJ!"A'PZCA4IER4[B3!&XQGPG'K[Fh4LH@&NC()!"@"RCA4SEh0 dBRPZB@eP!!DU69K*EQC[!!8H5%PZCQm!!NC"C'4b9'p1B@eP!!(Q4@jeE80KBfK P!!'V3@4NFP4[8h4b!!'28h4b9'p"C'4b!!AQ3fa[Ff95CA0[E(CPFJ!%f%p`C@j 5CA0[E(CPFJ!&%Np`C@j2GA*54PpI4RB!!Ve6C@&bBfK'EfaNCA*'Eh*%6P*3Aep 'E'acE!!'M%GPG%03B@jPE%C[E'4PFPpI4P"c8'`!"Re(CA46HA0dC@e'EfaNCA* IAdC3Fe"X!!Dc9(*KF%9iDA0dFepI4R-!"kj(CA48FQ&`9(P`C9pI4R-!!lK1G@e 8EfpXBQpi9(*KF(0IAdCf!'0b8%pA8J#3"JbF!!!BV!!!!2!!!!d)!!!,T!!!!U3 !N!B"k!!!!!`!N%"&C`!!4@X!"!!!!!%!!!!m!!!!)!!!!aem#!+QNq(rr*!!!3! )P#(r`$[M!!")!!!"B!!!!)!#!!#3!"m!!MKr!!#!!3")1#%!3(`)!kD$iIrm6S! !)%9e!*!&!J!!!"4&G!-!N!3$!!!!(%9Z$!3!!!!+!!!!$)!!N!Z!!!!m#!!!!%9 h!*!&!3#3"%9V!!3!!!!,!!!!#!!!!%)!!!-l1'!!!%k!!#"&D`!%!!!!$!!!!!J !!!"@!!!$E6KP!!"1J!!J4@X!"!!!!!i!!!"-!!!!H!!!!kD6iIrm1q!!!#J%!!" "JJ!31!!!!CJ%!!!lr`!"+!8!!%'#!"!i!!!"Q!8!!$[r!!%S"J!!3B)!$$J!!!# B"J!!1(m!!)2Krra1J!!J4@X!"!!!!"-!!!"%!!!!r!!!",Tm#!+QNq(rr*!!!3! )P#(r`*!!B3"B1q3!!)"K!&K)!!!"B!!!!$J!)ED`(`!'1'!!!)!"!%Ji)3"!I!J $TS2Krra1J!!J4A8!N!88!!!!(%9Z$!3!!!!N!!!!$)!!N!Z!!!"%#!!!!%9h!*! &%`#3"%9Z"3%!!!!P!!!!#IrrrrS!!!9hC'9f1QjeE'`!-AVi4@X!"!!!!#B!!!# )!!!"0!!!"AGm#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq`1m3!!$[P!!!lS!!!J!3 ![LJ!!!"!JJ!m9q!'2d'#!""Ai!Bq+!!!"N##!#L!IJ#kJ))!!$LJ!!!i`!!"5!! !!@!!!!"8B!Br3B)!#$ZJ!!%iI3!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S! !)%9d!`#3"#8!!!")4A8!N!8R!!!!9%9Z$!3!!!#U!!!!$)!!N!Z!!!#)'!!!!%9 h!*!&*J#3"%9V!!3!!!#V!!!!H!!!!@3!!!CCI!J#TT2Krrb6`IriNk(rp*!!!3! )P#(rX$[M!!#!!`!3+!!!!%##!#3iB!!'5!!!!@!!!!"mIKYj3B)!$$Kq!!")!!! "Npm!%)1r!"#SI3!!1!-!!E!G!!#!I`!3J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIr d6S!!)%9e!*!&V!!!!#a&G3#3"3%!!!"!4@i0!J!!!,!!!!!5J!#3"aJ!!%3!4!! +!!#+J!!H!*!'4AB+R!!!!,%!!!!14@i-"!!!!,)!!!!-J!#3$RJ!N!4&G`#3"DX !N!4&G`d!N!5`!!!!#%9Z"3%!!!#c!!!!%IrrrpJ!!!CC6R9XE&0[BfYPG%4[E@& TEJ#Sj1"&EJ8"!!!!Y!!!!!hrrrrA!!!'@90[BfYPG%4[E@&TEJ#3"%9Z"33!!!# e!!!!#2rrrpB!!!CC!*!)4AB&!*!%Y!#3"%9Z"3%!!!#f!!!!%Irrrp8!!!CC4QP XC90[BfYPG%4[E@&TEJ#DfI"&EJ8%!!!!Y`!!!!crrrr8!!!'@3#3$%9f"3#3",8 !N!4&EJ8%!!!!Z!!!!!Mrrrr6!!!'@3#3#%9f"3#3",B!N!4&GJ8!N!5h!!!!"%9 Z"33!!!#j!!!!&2rrrp)!!!CC!*!84AB&!*!%Z!!!!!K&GJ8!N!5e!*!%4@i&"!! !!,S!!!!)rrrrd3!!"PN!N!K&GJ8!N!5c!*!%4AB&!*!%Z3!!!!4&E`8%!!!!Z`! !!%6rrrr3!!!'@3#34%9f"3#3",S!N!4&GJS!N!5m!!!!%%9f#J#3",d!!!!-4AB +!*!%[J!!!"4&GJS!N!5r!!!!3%9f#J#3"-!!!!!m4AB+!*!%`3!!!$K&GJS!N!6 #!!!!0%9f#J#3"--!!!!`4AB+!*!%a!!!!#a&GJS!N!6&!!!!+%9f#J#3"-B!!!! N4AB+!*!%a`!!!#"&GJS!N!6)!!!!#%9f#J#3"-N!!!!F4AB+!*!%bJ!!!"K&D`# %!!!!b`!!!'5!!*!(I!J#TT2Krrb3!!%!#*3Krm"mIaYjX)%!AN'#!$5!!J!!N!! I!!!iI`!!1)!!!%J!!!&J!!!!U!%!AL`!!!"!J3!31(m!!%J!!!&J!!!!1(m!!)! "!%Ji)3"!I!J$TS2Krra1J!!J4A3$!*!%Z`!!!"a&G3#3"F`!!!!X4A8!N!A0!!! !4%9Z$!3!!!$1!!!!$)!!N!Z!!!"N#!!!!%9h!*!&b`#3"%9Z"3%!!!$2!!!!#rr rrmm!!!CC6R9XE&0[BfYPG!"[4@i&!3!!!0!!!!!(rrrrcJ!!"PP6Ef0VCA3!Ed9 Z"33!!!$4!!!!#2rrrmd!!!CC!*!)4AB&!*!%d!#3"%9Z"33!!!$5!!!!$2rrrm` !!!CC!*!-4AB&!*!%d3#3"%9Z"33!!!$6!!!!#2rrrmX!!!CC!*!)4AB&!*!%c`# 3"%9f"3#3"0)!!!!%4@m&"!!!!!-!!!"NrrrrbJ!!"PN!N'4&GJ8!N!66!*!%4AB +!*!%e!!!!&a&GJS!N!69!!!!9%9f#J#3"0B!!!"34AB+!*!%e`!!!%a&GJS!N!6 B!!!!5%9f#J#3"0N!!!"%4AB+!*!%fJ!!!$a&GJS!N!6E!!!!1%9f#J#3"0`!!!! d4AB+!*!%h3!!!$"&GJS!N!6H!!!!,%9f#J#3"0m!!!!S4AB+!*!%i!!!!#4&GJS !N!6K!!!!)%9f#J#3"1)!!!!84AB+!*!%i`!!!""&GJS!N!6N!!!!$%9f#J#3"18 !!!!)4AB+!*!%jJ!!!'"&GJS!N!6R!!!!3%9f#J#3"1J!!!"B4AB+!*!%k3!!!"a &GJS!N!6U!!!!'%9V!)3!!!$V!!!!C)!!N!Gm#!+QNq(rr*!!!3!)P#(r`(ar'hQ `J3"H3B)!0)!#!!#3!"m!!MKr!!!iJ!!!5!!!!@!!!!#S!3"H,!!!!%#"!"!iI`! !5!!!!@!!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3$!!!!(%9e!*! &l!!!!#a&G3#3"Fd!!!"%4@i-"!!!!1d!!!!-J!#3#i!!!'3)!!!!4AF!N!AV!*! %4@m+K!!!!1B!!!!)J!#3$d9f!*!&k`#3"%9f$`#3"1i!!!!%4@m+K!!!!-J!!!! )J!#3$d9f!*!&b`#3"%9f$`#3"1i!!!!%4@m+"!!!!-N!!!!)J!#3$d9f!*!&U`# 3"%9f$`#3"1i!!!!%4@m+"!!!!-S!!!!)J!#3$d9f!*!&*J#3"%9f$`#3"1i!!!! %4@m+"!!!!1F!!!!)J!#3$d9f!*!&%`#3"%9f$`#3"1i!!!!%4@m+"!!!!1J!!!! )J!#3$d9f!*!&$J#3"%9f$`#3"1i!!!!%4@m+"!!!!1N!!!!)J!#3$d9f!*!&$!# 3"%9f$`#3"1i!!!!%4@m+"!!!!1S!!!!)J!#3$d9f!*!&#`#3"%9f$`#3"1i!!!! %4@m+"!!!!1m!!!!)J!#3$d9f!*!&!3#3"%9f$`#3"1i!!!!%4@m$"!!!!,X!!!! %J!#3#d9f"3#3",X!N!4&EJ-%!!!!*3!!!!5!!*!,4AB&!*!%*3#3"%9[!`3!!!! $!!!!")!!N!Y&GJ8!N!3$!*!%4@m2"!!!!1i!N!5!!*!(4@J!!&0C68J!!!'@!!! !0J!!!!S!N"%"!*!'!cErN!3!!!-i!!%!!!!%rj!%!3#3""m!!3#3"J0Jrj!%!!! $DJ!!!!%!N!B$Prq3"!!!!k-!!3!!!!d!!!!$!3#3"!8!!3#3"J2j!!!!"!!!!r` !!!!3!!!%*!!!!"`!!!4)!!!!*!!!"&S!!!!`!!!%I`!!!$J!!!53!!!!!%!!!!5 Rrj!%!!!%Y`!%!!!!$`!!!'J"!*!%"!!!!"!!!!"S!3#3"!8!!!!4!!!!D!%!N!3 '!!!!%J!!!!-!N!8I!!%!N!B%i`!!!"`!!!6Qrj!%!!!&+`!#!!!!"2q3"!%$!!! !@!!!!"Arrrrm!3#3""m!!3#3"JA6rj!%!!!'9J!#!!!!+2rrrrN"!*!%(J!!!*l rrrrF!3#3""m!!3#3"JD6!!!!+!!!"UJ!!!")!!!'arq3"!!!"ZS!!3!!!!6rrrr E!3#3""m!![rrrrd!!!!(!!!!"J!#!!!!#!!!!!X!N!F*!!!!C!!!!!)!![rrrri !!!!&!!!!"J!"!!!!"[rrrrd!N!ErN!3!!Irrrri!![rrrrX!!!!@!!!!+!!0!!! !&`!!!!X!N!FB!!!!!J!!!!)!!!!C!!!!#J!!!!B!!!!D!!!!#J!!!!J!!!!E!!! !#J!!!!S!!!!F!!!!#J!!!!`!!!!G!!!!#`!!!!i!!!!H!!!!!`!!!"!!!!!I!!! !!J!!!"3!!!!J!!!!!J!!!"J!!!!K!!!!!J!!!"`!!!!L!!!!!`!!!#!!!!!M!!! !!`!!!#3!!2rrrr`!!IrrrrX!!IrrrrS!!!!*!!!!!3!!!!F!![rrrrB!!!![!!! !4J!$!!!!-!!!!!X!N!Fa!!!!!`!!!!)!!!!b!!!!!3!!!!B!![rrrrF!!!!Y!!! !4J!"!!!!,[rrrrB!N!8"rrrrm3!!!!)!!!!#!!!!#`!#rrrrmJ!!!$J!!!!)!!- !!!!hrrrrm`#3"cN!!!!,!!!!"!!!!$Vrrrra!!!!"J!!rrrrm`!"rrrrmJ!!rrr rl!!"!!!!DJ!#rrrrl3!!!%F!!!!8!!F!!!")!!!!!J#3"d)!!!!(!!!!"!!!!%N !!!!(!!!!"3!!!%S!!!!+!!!!"J!!!%[rrrrX!!!!#!!!!%-!!!!#!!!!$!!!!%` !!!!#!!!!%!!"rrrrlJ!!!"3!!!!8rrrrl3!#rrrrl`!!!$i!!!!J!!J!!!!r!!! !#J#3"d!!!!!(!!!!!J!!!%%!!!!'!!!!!`!!!%)!!!!#!!!!"!!!!%-!!!!'!!! !#!!!!%3!!!!'!!!!#3!!!%8!!!!+!!!!#J!!!%ErrrrZ!!!!$!!!rrrrm!!"rrr rl`!#rrrrkJ!!!&`!!!!%!!)!!!"G!!!!#`#3"ei!!!!,!!!!!J!#rrrrk`!!!&F !!!!3!!8!!!"B!!!!!J#3"eN!!!!#!!!!"!!!!&S!!!!+!!!!#!!!!&[rrrrU!!! !#J!!!&m!!!!,!!!!$J!"rrrrk!!!!!B!!!!#!!!!#`!#rrrrk3!!!'X!!!!3!!B !!!"X!!!!#`#3"fhrrrrS!!!!!J!!!'i!!!!(!!!!#!!!!'m!!!!(!!!!#3!!!(! !!!!,!!!!#J!!!(%!!!!$!!!!$!!#rrrrp!!!!$B!!!"X!"`!!!!hrrrrm`#3"cN !!!!,!!!!"!!!!$X!!!!,!!!!"J!!!$`!!!"Q!!!!#!!!!$hrrrr`!!!!$!!!!%d !!!!,!!!!%!!!!%i!!!"V!!!!%J!!!%m!!!!,!!!!&J!!!&!!!!!,!!!!'!!!!&% !!!!(!!!!'J!!!&)!!!!(!!!!'`!!!&-!!!!,!!!!(!!!!&3!!!!(!!!!(J!!!&8 !!!!(!!!!(`!!!&ErrrrV!!!!)!!!!'!!!!!$!!!!-!!!!'%!!!!+!!!!0!!!!') !!!!$!!!!0J!!!'-!!!!$!!!!1J!!!'3!!!!+!!!!2J!!!'8!!!!$!!!!3!!!!'B !!!!$!!!!4!!!!'F!!!!#!!!!5!!!!'J!!!!#!!!!6!!!!'N!!!!#!!!!8!!!!'V rrrrT!!!!9!!!!()!!!!$!!!!C!!!!(-!!!!$!!!!D!!#rrrrj3!!!(N!!!!)!!3 !!!"k!!!!#`#3"hX!!!!,!!!!!J!!!(`!!!!,!!!!"!!!!(d!!!!,!!!!"J!#rrr rjJ!!!(F!!!!3!!3!!!"irrrrj3#3"hi!!!!+!!!!#!!!!(rrrrrU!!!!#J!!!)! !!!!,!!!!$J!"rrrrj!!!!")!!!!#!!!!#`!#rrrri`!!!)J!!!!3!!B!!!#*rrr rkJ#3"iS!!!!$!!!!"!!!!)X!!!!(!!!!#!!!!)`!!!!(!!!!#3!!!)d!!!!,!!! !#J!!!)i!!!!$!!!!$!!#rrrrj`!!!(8!!!"S!"F!!!!hrrrrm`#3"cN!!!!,!!! !"!!!!$X!!!!,!!!!"J!!!$`!!!"Q!!!!#!!!!$hrrrr`!!!!$!!!!%d!!!!,!!! !%!!!!%i!!!"V!!!!%J!!!%m!!!!,!!!!&J!!!&!!!!!,!!!!'!!!!&%!!!!(!!! !'J!!!&)!!!!(!!!!'`!!!&-!!!!,!!!!(!!!!&3!!!!(!!!!(J!!!&8!!!!(!!! !(`!!!(ErrrrQ!!!!)!!!!)%!!!!$!!!!-!!!!))!!!!+!!!!0!!!!)2rrrrN!!! !0J!!!)3!!!!#!!!!5!!!!)8!!!!#!!!!6!!!!)B!!!!#!!!!8!!!!)IrrrrM!!! !9!!!!)m!!!!$!!!!C!!#rrrrp3!!!$3!!!"X!!)!!!!errrrp!#3"h6rrrrR!*! &![rrrq!!!!#6!!!!"!!"!!!!#3!!!'3!N!8#rrrrhJ!!!*F!!!!5!!B!!!!'rrr rr3#3"jMrrrrI!!!!"J!!!*RrrrrI!!!!#J!!!*S!!!!,!!!!$J!!!*X!!!!'!!! !%!!!!*`!!!!'!!!!%3!!rrrrh`!"rrrrhJ!#rrrri3!!!*%!!!!3!!3!!!#5rrr ri!#3"j6rrrrL!!!!"!!!!*ArrrrL!!!!#!!!!*ErrrrI!!!!$!!!rrrriJ!"rrr ri3!!rrrrh3!"rrrrp`!#rrrrq!!!!#N!!!$#!!F!!!!U!!!!#`#3"bX!!!!'!!! !!J!!!#crrrrh!!!!"!!!!$2rrrre!!!!5J!!!*!!rrrriJ!!!,B!!!!b!!!!CJ! !!,S!!!#Grrrrh3!!!,i!!2rrrrN!!IrrrrJ!!rrrrp`!!!#I!!B!#J!!!+!!N!H K!!!!!3!!!+)!!!!#!!!!S`!!!!-!!!#N!!!!"!!!!+8!!!!&!!!!TJ!!!!B!!!# R!!!!"`!!!+J!!!!)!!!!U3!!!!N!!2rrrpN!!Irrrrd!![rrrpS!!!#Y!!!!&!! #!!!!V[rrrq%!N!H[rrrrf3!!!"!!!2rrrpX!!IrrrpS!!IrrrpJ!!!!4!!!!!3! !!!F!!IrrrpF!!!!0!!!!!3!!!!F!![rrrpErN!3!!!!)!!!!!Irrrp8!!!!4!!! !!3!!!!F!![rrrp6rN!3!!!!-!!!!![rrrp2rN!3!!!!)!!!!![rrrp,rN!3!!!! 8!!!!![rrrp(rN!3!!!!)!!!!![rrrp$rN!3!!!"%!!!!!Irrrmm!!!!,!!!!!3! !!!F!!Irrrmi!!!!(!!!!!3!!!!F!![rrrmhrN!3!!!!)!!!!![rrrmcrN!3!!!! -!!!!![rrrm[rN!3!!!!)!!!!![rrrmVrN!3!!!"N!!!&H5jIAf0dAema-%jeE'a 6Ef0VCA4'GJ!!-bjIAf0dAemf8fpMDf9d4RB!!T9IAhCdAema-%jeE'a6Ef0VCA3 !"&YdD'Pc!!+H6R9XE&0[BfYPG!!(pL46Ef0VCA3!"[P6Ef0VCA3!!"abC@C$Eh9 ZG!!(mepIGR"dFL3!"$p!1$!i!!Gp,R*PB@4IAc%`6R9XE&0[BfYPG%C3GQN!!$! ZGh*TG'9IAc%`6R9XE&0[BfYPG%C3GQN!!maXC@i!"jFZFf9XC@0dAema-%jeE'a 6Ef0VCA4'8&9M8&9M8&9M!!FmBf&Z8Q9KC!!!CQ0KEPGbDA4P!!'"CAKMCA"dD@p Z!!HKCfp[C'PPF`!$4bjQFh4KG&pI-6"1G@aX8fpMDf9d4P!dFh4KG!!'`5jQFh4 KG&pI0P0[BfYPG%C30(0dBA3!!jjLG@B!"#YcG'&d!!D5Fh4IC'9f!!E!Fh4ID@j [!!FGFh4IE@pNC3!!dR0dAfjXD@jV!!BNFh4IG@PN!!EXFh4ICfPN!!HTFh4IFQ4 PGJ!(Vh0dAh0THQ8!!(acG&pKG'PYC3!!`(0dAfedD@eP!!#FFh4IBh4TE@8!!Q9 cG&pLE'YcDATP!!(rFh4IBQa[BfYc!!4J3$Ja13!%H%!i-M%!"SNZ@@peFR0IAc% f6R9XE&0[BfYPG%4[E@&TENC53c%a4e9658CTE'95C@C4-M%f4QPXC90[BfYPG%4 [E@&TEMG5CA&eCA0d!!50,Q9aG@&XFh4bD@jR!!2FFQ9Q!!214e9658CTE'95C@B !"44PFR*[FJ!(RQKKFdPZCQm!"+GQD@aP!!&l9%CTE'96F'9M!!FP*%C68h"PB`! '#%C68h"PB`!((RC5C@C1G@d!"FT`BA**4!!%UfjKE@8!"+TTEQC[!!,S3dPZCQp 33P*PB`!"VQK'D@aP5@jQE`!"68K'D@aP5@jQE`!&'h&-D@jV!!9r889XC@d!"CT a9(P`C3!&MR&%BA4K!!BeD@p8FQ&`!!(9D@p$E@4"C'4b!!6ED@p$Efe`E'9dD@p Z!!'r8QpeG'PZC84PFf0bDA"dEh)!"bGREdeTH'9N6@pNC94bBA!!"d4fCA*cD@p Z!!B)FQpeG'PZC84PFf0bDA"dEh*'E'&RF`!"9R*PFf9bGQ9N-3!"9h*PFf9bGQ9 N-J!%Gh0PE'9MG'pb5@jQE`!%+R*[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ95C@0[FQ4 c!!8I8QpeG'PZC9*PBfpbC!!![h"bEf0*EQC[!!23590"!!6lFQpeG'PZC8CXB@G c!!D%F(*[Bd4PFf0bDA"dEh)!!0GcC@aPBh4[FJ!!IfP[8Q9cG@ad!!(@D@p1B@e P8(4b!!&XD@p@8Q9Q6R9Y!!&SD@p'8Q9Q6R9Y!!)`D@p'9Q9bFdjeE3!(D'CTE'a PFM%!!eKTEdC%DA**EQ4PH!!#-'P[4Qa"G(4bD@)!!04TEd&$9A0PFJ!%d@P[4Qa 'EQ4b5@jQE`!&INC*EQC[!!CQCQ48HA"P!!&VCQ4$FQ9KG'pb!!HmCQ4'E'&RF`! #"QCN6'pMBA4TEfi!"D43EfPZG!!"GRB!!@KS!!DfCQ4'E'4b!!I)D@p%DA**4!! "$fP[4Qa6G%*XD`!"rfP[4Qa-CdaPEJ!"c'P[4Qa3H8aPEJ!#k@P[4Qa58h4#E'X !!N"TEdCX8NaR6'9Z!!++D@p'E&*3H8aPEJ!"[@P[4Qa$FN4KG!!"efP[4Qa0C%4 KG!!"5@P[4Qa#Dd4KG!!&B@P[4QaB4QjNFNPZCQm!"RK'@%PZCQm!!+0QC%PMEfj *4!!!0QCN9@jeFf9N!!$*CQ46Bh*TF(3!!#KQC&K'E'&RF`!"NQCN3fpYE@9ZG!! "e@CN8(9d3AGKH3!"#fP[4Qa3BA**4!!#8@P[4Qa$E("6DAS!"hPNDA**EQC[!!H K4'Pb5@jQE`!#%QP[4(*9Fh*AC(-!"Gj%5@jQE`!'!QCb8Q9MG!!%Ie*PBh3!!bp dEh!!"!aXC@Cd!!BLBQpdG'pY!!A@FQPRD(3!"fGQFNCXB@Gc!!*BCR*-Ef0KG'P [EJ!'8fCb9QPPG`!"k'P[4(*%DA**4!!"MQP[4(*1E8CXF`!(DQCTE'aPFM-!!GG TEd4b3h*%BA3!!BeTEd4b6@4%BA3!!H0TEd4b3QY%BA3!"-"TEd4b4QjNFNPZCQm !"U4%@%PZCQm!!,CQFP0MFQpXE!!$c'Cb6h"PEN0SB@PZ!!"'CR*6Bh*TF(3!!+j QFPK'E'&RF`!"`QCb3fpYE@9ZG!!"L@Cb8(9d3AGKH3!"*'P[4(*3BA**4!!'Gf4 [E@&TEJ!!K%CTE'96Ef0VCA4%EfeKD@i!"I)N8fpMDf9d4'pYB@PZ!!3d8fpMDf9 d4'pYB@PZ!!$hEQ9iG%4PGQPMC84[E@&TEJ!'q@jPH(4'D@aP4'pYB@PZ!!9#CQP bFh3!!J9'D@aP8fpMDf9d!!3NF(*PGJ!%5fjPH(3!"`TQ8Q9Q6R9Y!!BSBA"`C@j N!!%NG'9YF'pbBA*j!!4VFh"PB`!(-(*PFA9PFh3!!49'D@aP8fpMDf9d4'pYB@P Z1MT5CA&eCA0d!!"LGfPXE%p`C@i!!JjhD@aX8Q9YEhCP!!*9GfPXE&*PEQ&YC3! (5AGTE'a(CA4'D@aP5@jQE`!(p(GTE'a6CA4'D@aP5@jQE`!$j(GTE'a'3@0MCA0 c!!$HGfPXE&0dBA3!!DahD@aX3fKYEf3!!A"hD@aX994TE@8!!MahD@aX3@0MCA0 c!!4j3$Jb-J!#A#j[F'9ZAema0NjeE'a6Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@a P8Q9QD3!#HbjIAfjhAep'9@`!!1K1G@aX8fpMDf9d4'pYB@PZ!!'9*%CTE'96Ef0 VCA4%EfeKD@i!!BacD@jRE'9dEfi!"*G!1$-`!!&FAepNE&pI4P"f!!5B3$Jc-3! %Q8!i-c)!"*Y!1$-d!!EmAep59&4*Aema-P0[BfYPG%4[E@&TEJ!%R%!i-c8!"*e !1$-f!!**Aep59&4*Aema0NCTE'96Ef0VCA4%EfeKD@i!"*T!1$-c!!)$Aep59&4 *Aema0NjeE'a6Ef0VCA4%EfeKD@i!!#eIAhCdAema0NjeE'a6Ef0VCA4%EfeKD@i !"SpcEf0VCA4`B@PbAema-P0[BfYPG%4[E@&TENCTFe"30P0[BfYPG!!"mA0[BfY PG&pI-6*6Ef0VCA4%EfeKD@j'DA-!"DTMD'p[Ff9IAc%f4QPXC90[BfYPG%4[E@& TENCT8'03GQP3GP"T!!0cB@0MCA0cAema0NCTE'96Ef0VCA4%EfeKD@j'8N-a-8G 98dP'D@aP8Q9QD3!$9(9dD@ePAema0NCTE'96Ef0VCA4%EfeKD@j'8N-a-8G98dP 'D@aP8Q9Q8%-hGA4TE@*eCJ!$,Q0SE@pNAema0NCTE'96Ef0VCA4%EfeKD@j'8N- a-8G98dP'D@aP8Q9Q9A-!"[TcG'&dAema0NCTE'96Ef0VCA4%EfeKD@j'8N-a-8G 98dP'D@aP8Q9Q8$4cG'&d!!H)CQ&MBf9cFepI-6C'D@aP8fpMDf9d4'pYB@PZ4P* $-6&(990*4QPXC9*PCP9T8'`!""PQFf9dCQPXC@PZCQpIAc%f4QPXC90[BfYPG%4 [E@&TENC53c%a4e9658CTE'95C@C9E&9X!!DjCQGPG'CTE'9TEQC[Aema0NCTE'9 6Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@aP8Q9Q8&9X8&9X!!A4FQ9ZB@ePAema0NC TE'96Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@aP8Q9Q8%0M!!*pFQ9YEhCPAema0NC TE'96Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@aP8Q9Q!!)bAepNG&pI-6C1G@aX8fp MDf9d4'pYB@PZ4RB!!B0[F'9ZAema0NjeE'a6Ef0VCA4%EfeKD@j'8N-a-8G98dP 'D@aP8Q9QD3!&qPP[GA*cAema0NjeE'a6Ef0VCA4%EfeKD@j'8N-a-8G98dP'D@a P8Q9Q86)a0NCTE'96Ef0VCA4%EfeKD@ih8Q9aG@9cG!!$r5jIAf4dAema0NjeE'a 6Ef0VCA4%EfeKD@j'GJ!$ZLjIAf4dAema0NCTE'96Ef0VCA4%EfeKD@j'GJ!#6bj IAf4XAep'8(B!",G!1$3`!!5i3$Jd-3!%ZN!i0$-!"rpIAe*89%PIAcC6Ef0VCA3 !",P!1$3b!!6lAep59&4*Aema-%jeE'a6Ef0VCA3!!hG`Eh0dAh0PE'9MG&pI0P0 [BfYPG%C9Be9M9@-!!Qa`FQ9IFf9XC@0dAemf8fpMDf9d4P9M9@09B`!$lR0SGA4 NEhGZAemf8fpMDf9d4QN!!8*TFf&dG(PIAcC6Ef0VCA4'GJ!%I@CdFR9ZBf&dC9p I0P0[BfYPG%CX!!&JE(0PC@YIAcC6Ef0VCA4'E'N!!fpTEf0dE&pI0P0[BfYPG%C 9D9"f!!*(CQ0ZG'aIAcC6Ef0VCA4'9@PT!!&,Ff9dFfpMDfp`G&pI0P0[BfYPG%C TD9"fD3!#b'GPG(0[BfY[F(4IAcC6Ef0VCA4'D@P3GP"T!!&!Cf9dF'9PFQjKE@9 IAcC6Ef0VCA4'8(C3D3!"afGPG(0[BfYZB@ePAemf8fpMDf9d4P"f8'N!"aacC@j NG'pIAcC6Ef0VCA4'8(CTD9"fD3!#F(*PBhCQFQpYAemf8fpMDf9d4P"fD@P3GP" T!!5@B@0MCA"dAemf8fpMDf9d4P"f8'N!!FKXDA0dC@jIAcC6Ef0VCA4'D3!%kQ0 [EQjPBh4IAcC6Ef0VCA4'8(CT!!&-BQPZC&pI0P0[BfYPG%C3GQN!"&4IAf4dAem a-%jeE'a6Ef0VCA4'GJ!#TfCcG'&dAema-%jeE'a6Ef0VCA4'8$4cG'&d!!E$Ff9 XC@0dAema-%jeE'a6Ef0VCA4'8&9M8&9M8&9M!!IdGh*TG'9IAc%`6R9XE&0[BfY PG%C3GQN!"NPbC@&NAema-%jeE'a6Ef0VCA4'8(CT!!9Z,PpIC(4IAc%`6R9XE&0 [BfYPG%Cf!!"#,PpIC(4IAcC6Ef0VCA4'GJ!%[N!i0$F!!hj86d-!"(9IAf0dAem a-%jeE'a6Ef0VCA4'GJ"5C9"29e)!N!B4E!!!&LS!!!"N!!!4f!!!"&)!!!3`!*! '!KF!!!!%!*"!4@F!!%9T!*!&!89V!!3!!!!#!!!!&!!!!#!!!!2GJ!)!!*!!!`! #1!!!!,!$!!"1J!!J4A3$!*!%!`#3"%9V!!3!!!!)!!!!9!!!!%S!!!3#I!J#TT2 Krrb3!!%!#*3Krm"mIaYjX)%!AN'#!#5!!J!!N!!I!!+S!3"H,!!!!%#"!"!iI`! !5!!!!@!!!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3$!!!!(%9e!*! !!!$4&EJ`%!!!!#J!!!!b!!*!,J!!!9!J!!!"&G`#3"3J!N!4&D`!%!!!!#`! !!#J!!!"X!!!%'A`)!UD3!!%!#*3Krm!iB!!Y5!!!!@!!!!#!!3")1#%!3(`)!kC 1J!!J4A8!N!8-!!!!%%9Z$!3!!!!0!!!!$)!!N!Z!!!!S!*!%4AF!N!8,!*!%4@X !"!!!!!i!!!!S!!!!L!!!"&am#!+QN!!"!!L8)Ir!1'!!,8J!!!&J!!!!J!%!5$J K!%"m#!1Q6S!!)%9e!*!&$!!!!""&EJ`%!!!!$`!!!!b!!*!,J!!!+!#3"%9h!*! &$J#3"%9V!!3!!!!3!!!!+!!!!+3!!!5LI!J#TT!!!3!)P#(r`$KJ!#e)!!!"B!! !!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!!!"%!!!!-J!#3#i!!!#J !N!4&G`#3"4!!N!4&D`!%!!!!%J!!!#J!!!$!!!!%hh`)!UD3!!%!#*3Krm!iB!! Y5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!86!!!!%%9Z$!3!!!!8!!!!$)! !N!Z!!!!S!*!%4AF!N!85!*!%4@X!"!!!!"8!!!"B!!!!h!!!"6Tm#!+QN!!"!!L 8)Ir!N!"K!&L3!)%!A*!!S3"J1!!!!*!!!3!iJ'%!@)#"!&b!S3"J1-!!!$MJ!!! j!3!iJB-!!S'-!#")!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"4B!!!"!4@i -"!!!!"S!!!!-J!#3#i!!!&J!N!4&G`#3"48!N!4&D`!%!!!!'`!!!&!!!!%`!!! &Xh`)!UD3!!%!#*3Krm#3!'%!@*!!J3"FN!#K!'#!B3"BJ)%!A)#K!'!i`!!!11! !!$N!!!#"J`!#JB`!*%J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9e!*!&&J!!!$K &EJ`%!!!!(!!!!!b!!*!,J!!!8!#3"%9h!*!&'`#3"%9V!!3!!!!G!!!!+!!!!AB !!!B3I!J#TT!!!3!)P#(r`$KJ!#e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3# 3"3`!!!!34@i-"!!!!"i!!!!-J!#3#i!!!#J!N!4&G`#3"4d!N!4&D`!%!!!!(`! !!#J!!!'5!!!'Dh`)!UD3!!%!#*3Krm!iB!!Y5!!!!@!!!!#!!3")1#%!3(`)!kC 1J!!J4A8!N!8-!!!!%%9Z$!3!!!!J!!!!$)!!N!Z!!!!S!*!%4AF!N!8I!*!%4@X !"!!!!#%!!!!S!!!"VJ!!"X*m#!+QN!!"!!L8)Ir!1'!!,8J!!!&J!!!!J!%!5$J K!%"m#!1Q6S!!)%9e!*!&$!!!!""&EJ`%!!!!)J!!!!b!!*!,J!!!+!#3"%9h!*! &)3#3"%9V!!3!!!!M!!!!+!!!!FS!!!F1I!J#TT!!!3!)P#(r`$KJ!#e)!!!"B!! !!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!!!#3!!!!-J!#3#i!!!#J !N!4&G`#3"5-!N!4&D`!%!!!!*3!!!#J!!!(Q!!!(@R`)!UD3!!%!#*3Krm!iB!! Y5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!8-!!!!%%9Z$!3!!!!Q!!!!$)! !N!Z!!!!S!*!%4AF!N!8P!*!%4@X!"!!!!#F!!!!S!!!#!J!!"kpm#!+QN!!"!!L 8)Ir!1'!!,8J!!!&J!!!!J!%!5$JK!%"m#!1Q6S!!)%9e!*!&$!!!!""&EJ`%!!! !+!!!!!b!!*!,J!!!+!#3"%9h!*!&*`#3"%9V!!3!!!!T!!!!+!!!!Ki!!!J#I!J #TT!!!3!)P#(r`$KJ!#e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!! 34@i-"!!!!#S!!!!-J!#3#i!!!#J!N!4&G`#3"5N!N!4&D`!%!!!!+`!!!#J!!!) k!!!)6(`)!UD3!!%!#*3Krm!iB!!Y5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8 !N!8-!!!!%%9Z$!3!!!!X!!!!$)!!N!Z!!!!S!*!%4AF!N!8V!*!%4@X!"!!!!#d !!!#`!!!#9J!!#*Pm#!+QNq(rr*!!!3!)P#(r`$[N!!!i!!!!X!3!!$J!!!#3!!3 !!MaJ!!%iBm'fX'3!"MJ!!!'`"!!)1!!!!,!%!!Si!!!!X!3!$$J!!!#`"!!11!! !!C!!"!!31'!!!%J!!!&J!!!!N!"r!"3iB!!!5!!!!@!!!!#3!(m!'$KJ!!")!!! "B!!!!*!!I`!F1!!!!*!!(`!J1!!!!C!!(`!N1'!!!)!"!%Ji)3"!I!J$TS2Krra 1J!!J4A8!N!8Z!!!!A%9e!*!&,J!!!'a&G3#3"5i!!!"m4@i-"!!!!$i!!!!-J!# 3#i!!!,!)!!!!4AF!N!8Y!*!%4@X!"!!!!$m!!!!S!!!#N!!!!!S'I!J#TT!!!3! )P#(r`$KJ!"e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!! !!%!!!!!-J!#3#i!!!#J!N!4&G`#3"6m!N!4&D`!%!!!!33!!!#J!!!+X!!!+4A` )!UD3!!%!#*3Krm!iB!!@5!!!!@!!!!#!!3")1#%!3(`)!kC1J!!J4A8!N!8-!!! !%%9Z$!3!!!"#!!!!$)!!N!Z!!!!S!*!%4AF!N!9"!*!%4@X!"!!!!%-!!!!)!!! #b!!!#S)iB!!!6S!!)%9V!!3!!!"%!!!!+!!!!Y`!!!URI!J#TT!!!3!)P#(r`$K J!#e)!!!"B!!!!)!"!%Ji)3"!I!J$TNk!!#"&G3#3"3`!!!!34@i-"!!!!%8!!!! -J!#3#i!!!#J!N!4&G`#3"83!N!4&D`!%!!!!4J!!!!3!!!,i!!!+jNk!!#"&D`! %!!!!4`!!!!J!!!--!!!,(MKJ!!"1J!!J4@X!"!!!!%J!!!!%!!!$)!!!#f*1J!! J4@i&!3!!!%N!!!!(rrrrq`!!#f*6Ef0VCA3!!%9Z"33!!!"+!!!!#2rrrrS!!!Y L!*!)4AB&!*!%53#3"%9["33!!!!$!!!!C2rrrrN!!!YL!*"N4AB&!*!%5J#3"%9 f#J#3"%X!!!"J4AB+!*!%6!!!!&a&GJS!N!40!!!!@%9f#J#3"%i!!!"84AB+!*! %6`!!!&"&GJS!N!43!!!!6%9f#J#3"&%!!!")4AB+!*!%8J!!!%4&GJS!N!46!!! !3%9f#J#3"&3!!!!m4AB+!*!%93!!!$K&GJS!N!4@!!!!0%9f#J#3"&F!!!!`4AB +!*!%@!!!!#a&GJS!N!4C!!!!+%9f#J#3"&S!!!!N4AB+!*!%@`!!!#"&GJS!N!4 F!!!!(%9f#J#3"&d!!!!B4AB+!*!%AJ!!!"4&GJS!N!4I!!!!%%9f#J#3"'!!!!! -4AB+!*!%B3!!!!K&E`S%!!!!6!!!!!L!!*!24AB!N!9)!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!63!!!!L!!*!24AB!N!9(!*!%4AB2!*!%BJ!!!!4&E`S%!!!!6J!!!!L !!*!24AB!N!9'!*!%4AB2!*!%BJ!!!!4&E`S%!!!!6`!!!!L!!*!24AB!N!9%!*! %4AB2!*!%BJ!!!!4&E`S%!!!!8!!!!!L!!*!24AB!N!9$!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!83!!!!L!!*!24AB!N!9"!*!%4AB2!*!%BJ!!!!4&E`S%!!!!8J!!!!L !!*!24AB!N!8r!*!%4AB2!*!%BJ!!!!4&E`S%!!!!8`!!!!L!!*!24AB!N!8Y!*! %4AB2!*!%BJ!!!!4&E`S%!!!!9!!!!!L!!*!24AB!N!8V!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!93!!!!L!!*!24AB!N!8T!*!%4AB2!*!%BJ!!!!4&E`S%!!!!9J!!!!L !!*!24AB!N!8R!*!%4AB2!*!%BJ!!!!4&E`S%!!!!9`!!!!L!!*!24AB!N!8P!*! %4AB2!*!%BJ!!!!4&E`S%!!!!@!!!!!L!!*!24AB!N!8M!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!@3!!!!L!!*!24AB!N!8K!*!%4AB2!*!%BJ!!!!4&E`S%!!!!@J!!!!L !!*!24AB!N!8I!*!%4AB2!*!%BJ!!!!4&E`S%!!!!@`!!!!L!!*!24AB!N!8G!*! %4AB2!*!%BJ!!!!4&E`S%!!!!A!!!!!L!!*!24AB!N!8E!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!A3!!!!L!!*!24AB!N!89!*!%4AB2!*!%BJ!!!!4&E`S%!!!!AJ!!!!L !!*!24AB!N!85!*!%4AB2!*!%BJ!!!!4&E`S%!!!!A`!!!!L!!*!24AB!N!83!*! %4AB2!*!%BJ!!!!4&E`S%!!!!B!!!!!L!!*!24AB!N!81!*!%4AB2!*!%BJ!!!!4 &E`S%!!!!B3!!!!L!!*!24AB!N!8,!*!%4AB2!*!%BJ!!!!4&E`S%!!!!5`!!!!L !!*!24AB!N!8)!*!%4AB2!*!%BJ!!!!4&E`S%!!!!B`!!!!L!!*!24AB!N!8#!*! %4AB2!*!%BJ!!!!4&E`-%!!!!!`!!!!5!!*!,4AB&!*!%!`#3"%9[$`3!!!"L!*! %J!#3"d9S!!"6@8e)!!!$0!!!!!F!!!!#!*!4!3#3"J2Z!!!!%!!!!rq3"3!!!rm !!3!!!!6rN!3"!*!%!`!"!*!'""6rN!3!!!3@!!%!!!!%rj!%!3#3""m!!3#3"J3 h!!!!$!!!"$VrN!3!!!4C!!!!!3#3"J4p!!!!$!!!")$rN!3!!!5I!!!!!3#3"J5 k!!!!$!!!",hrN!3!!!6F!!!!!3#3"J8'!!!!$!!!"3RrN!3!!!8h!!!!!3#3"J9 Q!!!!3!!!"AhrN!3!!!@`!!3!!!!%rj!%!3-!!!"B!!!!&`!!!'3"!`!!!&`!!!! B!!!!!`%$!!!!B!!!!"N!!!!$!!-!!!!i!!%!N!B&i!!!!$J!!!AMrj!%!!!'$3! $!!!!"2q3"!%$!!!!@!!!!"F!!!"N!3-!!!"F!!!!'!!!!!-"!`!!!'!!!3#3"JC '!!!!$!!!"NRrN!3!!!CS!!!!!3#3"JDG!!!!$!!!"U$rN!3!!!Dr!!!!!3#3"JE T!!!!$!!!"ZcrN!3!!!F,!!!!!3#3"JFe!!!!$!!!"cMrN!3!!!GA!!!!!3#3"JH +!!!!$!!!"ihrN!3!!!HX!!!!!3#3"JIG!!!!$!!!"q$rN!3!!!Ir!!!!!3#3"JJ R!!!!$!!!##VrN!3!!!K*!!!!!3#3"JKd!!!!$!!!#(IrN!3!!!L@!!!!!3#3"JL q!!!!A!!!#A%!!!"X!!!*M`!!!(`!!!QYrj!%!!!+!`!"!!!!,rrrrrd"!*!%(`! "!*!'#L3!!!!-!!!+*rq3"!!!#N)!!!!"!*!'#Q%!!!!-!!!+C2q3"!!!#Rm!!!! "!*!'#TVrN!3!!!UN!!!!!3#3"JV"!!!!$!!!#X6rN!3!!!VM!*!+#a[rN!3!!!X E!!!!!3#3"JY9rj!%!!!,A`#3#JZBrj!%!!!,Q!!!!!,rrrrq!!!!"3!!!!B!!J! !!!B!!!!,!*!("`!!!'3!!!!#!!$rN!3!!Irrrri!![rrrr`!!!!`!!!!+!!0!!! !-3!!!!X!N!Fb!!!!!J!!!!)!!!!c!!!!#J!!!!B!!!!d!!!!#J!!!!J!!!!e!!! !#J!!!!S!!!!f!!!!#J!!!!`!!!!h!!!!#`!!!!i!!!!i!!!!!`!!!"!!!!!j!!! !!J!!!"3!!!!k!!!!!J!!!"J!!!!l!!!!!J!!!"`!!!!m!!!!!`!!!#!!!!!p!!! !!`!!!#3!!2rrrrd!!Irrrr`!!IrrrrX!!!!(!!!!!3!!!!F!![rrrrVrN!3!!!! )!!!!![rrrrRrN!3!!!"N!!!%U%G98dN!!$-ZAepMG&pI0P0[BfYPG%Cf!!ALAep fG&pI0P0[BfYPG!!%@h4SDA-!"[P6Ef0VCA3!!"abC@C$Eh9ZG!!(mepIGR"dFL3 !!%)ZAepNG&pI0P0[BfYPG%Cf!!*2,PpIC'aIAdC3GJ!%R%!h0$N!!VFZBQPZC&p I0P0[BfYPG%C3GQN!!kdZ4e9659pPFR*[FJ!%Y%!h06%!"H`ZBfpZEQ9MG&pI0P0 [BfYPG%C3GQN!",C!0c8c!!*#,QaTFh4PEPpI0P0[BfYPG%CT!!5i3$Fe03!&QLj KBf0PF(4IAcC6Ef0VCA4'8(C3D3!(A#j(990*Af9bFQpbAfjTE!!%ZN!h06F!!ZB ZFQ9KC&pI0P0[BfYPG%C3GQN!!j3ZAep`G(*ICfaeC3!'!f*eCQCPFJ!'pf*eCQa PEJ!(C@CbEfeXC@i!",a!0c8j!!18,RGbDA4PAemf8fpMDf9d4P"fD3!%e%!h0M% !!fdZFQ9MGQCbEfeIAcC6Ef0VCA4'8(CTD9"f8'N!"0C!0cBc!!!C,R0PEQ4dEep I0P0[BfYPG%C3GQPT8(CT!!6B3$Ff03!#p#jRCA4cEf0VEQ&YC9pI0P0[BfYPG%C 3GP"T!!6D3$Ff0`!#fLjRCA4`C@9bEQ&YC9pI0P0[BfYPG%C3GP"T!!6F3$Ff13! $abjRCA4cEf0VEh"dAemf8fpMDf9d4QPT8(C3D3!%p%!h0c%!!V%ZFf9dFfpMDfp `G&pI0P0[BfYPG%CTD9"fD3!%pN!h0c-!!pSZCQ0ZG'aIAcC6Ef0VCA4'9@PT!!6 i3$Fh03!%I#jTEf0dE&pI0P0[BfYPG%C9D9"f!!6k3$Fh0`!'`5jQFh4KG&pI0P0 [BfYPG%C30(0dBA3!"93ZG'PYC3!$RQ*eCJ!%+h0dBA3!"T*cG&pNCAB!"X"cG&p TEQm!"aecG&pYEf4P!!$5Fh4IEQaTEQX!"L4cG&peD@3!"ZacG&pRD@3!"kPcG&p bC'9f!!H[Fh4IFfPkC3!!I(0dAf&dD@eP!!$!Fh4IEA4TE@8!!*acG&pMG'PYC3! #CA0dAf*XDh0THQ8!!IpcG&pLE'pMDh-!"2a!0cFj!!)6,QacC@9VAemf8fpMDf9 d4QaT!!383$Fi-3!&"bjQG(*eEQ0KG'9IAcC6Ef0VCA4'E!!%&N!h1$-!!SBZDA0 KG(4jAemf8fpMDf9d4RB!"2mZFfKeG'4[GfjIAcC6Ef0VCA4'D3!%'8!h1$B!!`! ZF(*PAh0PE'9MG&pI0P0[BfYPG%C9Be9M9@-!![SZFf9XC@0dAemf8fpMDf9d4P" 9Be"9Be"9B`!%R5j`Eh0dAh0PE'9MG&pI0P0[BfYPG%C9Be9M9@-!"$4!0cN`!!I rAep59&4*Aemf8fpMDf9d!!I8AepNG&pI0P0[BfYPG%Cf!!0hF'pcG&pcC@aPBh4 IAcC6Ef0VCA4'9@09Be9M!!&)Ff9XC@0dAemf8fpMDf9d4P"9Be"9Be"9B`!#E(" bC9pcC@aPBh4IAcC6Ef0VCA4'9@09Be9M!!2ZFfKeG'4[GfjIAcC6Ef0VCA4'D3! "3QPcBA4dH9pI0P0[BfYPG%Cf!!4pCR4bG@jMBA4PAemf8fpMDf9d4Q`!!@"XFf9 PDepI0P0[BfYPG%CXD3!&,fCcG'&dAemf8fpMDf9d4P!dFh4KG!!$EfP[Bh4XAem f8fpMDf9d4P9T8(B!!NGQBfjdE&pI0P0[BfYPG%C9D@N!!8YcCA4cEf0VEh"dAem f8fpMDf9d4QPT8(CT!!,)Cf9dFfpMDfp`G&pI0P0[BfYPG%CTD9"f8'N!!8"RCA4 `C@9bEQ&YC9pI0P0[BfYPG%C3GP"T!!((Cf9dFfpMDfjKE@9IAcC6Ef0VCA4'8(C 3D3!(((0PEQ4dEepI0P0[BfYPG%C3GQPT8(CT!!*`FQ9MGQCbEfeIAcC6Ef0VCA4 '8(CTD9"f8'N!!MehFQPdC9pI0P0[BfYPG%C3GQN!!DCbC@&NAemf8fpMDf9d4P" fD3!%PQ&MBf9`G&pI0P0[BfYPG%C3GP"T!!()E'PcG'9ZAemf8fpMDf9d4QN!"1T MEfjZC@0dAemf8fpMDf9d4P"fD3!"6'*TEQ4IAcC6Ef0VCA4'8(CT!!0q9%p$!!H %AepMG&pI0P0[BfYPG%Cf!!!*,e"29e)!N!BfS!!!8UJ!!!&G!!!h$!!!'j`!!"h B!*!'!fi!!!!S!*"!4@F!!%9V!!3!!!!"!!!"2!!!!#!!!!C5I!J#TT2Krrb3!!% !#*3Krm#`J3"HN!#K!'#!B3"JJq-!!$J!!!#`(`!+S!%!AL`!!!0"JJ"N3)!!%#` !!!&"JJ!85!!!Z#`!!!9!J!#`5!!!Q+JI!!a8!!Gl3B)!$$J!!!5`(`!+L"m!2#J !!!*"JJ!3L"m!2#J!!!0!JJ!31!!!"jJI!$a)!!"d1!!!"TJI!$a)!!"SU"m!$&3 !"hY"JJ!-1!!!",!I!!U)(`!m+!!!"d'#!%L)(`!m+!!!!N'#!"#)(`!m+!!!!d# #!"!i!!!(Q"m!2%J!!#3i!!!"Q"m!2%J!!"LS(`!-9!!(rd'#!!`i!!!"X"m!#S! I!!BS!!!!3B)!)+JI!!SX!!!!3B)!&)"r!!DSR`!+5!!!!@!!!!")!!!"B!!!!)! "!%Ji)3"!I!J$TS2Krra1J!!J4A8!N!8#!!!"'%9e!*!&!`!!!5"&EJ`%!!!!)`! !!!b!!*!,J!!"2!J!!!"&G`#3"3%!N!4&E`8%!!!!*!!!!#$rrrrh!!!*m+Vq"`# 3#ql!!!%!"!#3$%9f#J#3"$3!!!!84@X!"!!!!$8!!!$%!!!!eJ!!#Rjm#!+QNq( rr*2"rrL6SIrdN!!"!!L8)Iq`1k-!!)2M!'Blh3!!U"d!%*!!(`!q,!!!!%##!$5 !(J!UN!!I!##J(J!ZX"m!(MJ!!"#B(`!XJ"i!**!!(`!`S"i!+,!I!#ii!!!&Q"m !2+JI!!a8!!Eh3B)!$$J!!"#`(`!+J"m!"LJ!!!""JJ!JU"m!#L`!!!""JJ!8J(m !"ULI!!T)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S! !)%9e!*!&!J!!!*K&G3#3"3-!!!#J4@i-"!!!!,X!!!!-J!#3#i!!!-3B!!!!4AF !N!8e!*!%4@m&"!!!!,`!!!!Jrrrrp`!!$05UrJF!N!c"!!%!"!#3$%9f#J#3",d !!!!84@X!"!!!!,i!!!%!!!!"2!!!$B"m#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq `1k-!!)2M!'Blh3!!U"d!%#`!TL&"JJ"B3)!!(#`!TKj"JJ"-3)!!5#`!TKT!J!" !5!!!2#`!!!""JJ!)5!!!-$J!!"#B(`!XJ"i!**!!(`!`S"i!+,!I!#ii!!!$Q"m !2$J!!!#3!"m!2NJ!!"3i!!!(Q"m!2+JH!"#3!"m!2UJI!!a8!!Fj3B)!%$J!!!L `(`!+5!!!$$J!!!#`(`!+J"m!"LJ!!!""JJ!JU"m!#L`!!!""JJ!8J(m!"ULI!!T )!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIrd6S!!)%9e!*! &!J!!!04&G3#3"3-!!!$F4@i-"!!!!,m!!!!-J!#3#i!!!3!B!!!!4AF!N!@q!*! %4@m&"!!!!-!!!!!Jrrrrp`!!%(1UrJF!N!c"!!%!"!#3$%9f#J#3"-%!!!!84@X !"!!!!-)!!!#i!!!"XJ!!%4Ym#!+QNq(rr*2"rrL6SIrdNi(rm*!!!3!)P#(rX$Z $!!#$``"Q1l`!!+JF!"!X!!!!3))!$+2p!#L6rJ!BU"i!$&3!"rp!JJ!3U"i!$&3 !"le"JJ!31!!!),!H!!T)!!!-1!!!!,!H!!U!(J!'+!!!!%'#!##S(J!+,!!!!%' #!"5!IJ!'U*i!#NJ!!!&J!!!!5!!!!@!!!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1 Krr5$JIr`6S!!)%9e!*!&!J!!!)K&G3#3"3-!!!#3!%9Z$!3!!!$%!!!!$)!!N!Z !!!#i)!!!!%9h!*!&`J#3"%9["33!!!$&!!!!)2rrrrF!!"+SU[i(!*!-`3!"!!3 !N!a&GJS!N!6'!!!!&%9V!!3!!!$(!!!"5!!!!Li!!"0)I!J#TT2Krrb6`IriNk( rp*!!!3!)P#(rX$ZM!!#$i`"Q1pd!!+JG!"!X!+BH3B)!P%#!!$3X!+BD3B)!L%# !!"`X!+B)3B)!I%#!!(JX!+B%3B)!A%J!!'`X!+BF3B)!8%J!!'!X!+BM3B)!4%# !!"`X!+BK3B)!6%#!!%JX!+BJ3)!!,%J!!$`X!!!!3B)!#%J!!$!i!!!!J(i!*V! $!!!i!!!!N!!I!$j)!!!S1!!!!CJI!$`i!!!jN!!I!$j)!!!81!!!!CJI!$bS(J! 3N!!I!$kS(`!-9!!(rd##!"#S(`!-9!!([8'#!"!i!!!JX"m!#NJ!!!`i!!!!X"m !#S!I!!BS!!!!3B)!)+JI!!SX!!!!3B)!&)"r!!DSR`!+5!!!!@!!!!")!!!"B!! !!)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp%k!!#"&G3#3"3)!!!%F4A8!N!8$!!! "*%9Z$!3!!!$)!!!!$)!!N!Z!!!&)'!!!!%9h!*!&a`#3"%9["33!!!$*!!!!)2r rrrF!!"CKU[i(!*!-`3!"!!3!N!a&GJS!N!6+!!!!&%9V!!3!!!$,!!!"N!!!!!+ X!!!A5R`)!UD6iIrmN!!"!!L8)Ip31q-!!%J!!!&J!!!!J!)!!*!!(`!#1!!!!CJ I!$`iB!!%5!!!!@!!!!#3!(m!3S"r!%+6i`!!J')!!%J!!!&J!!!!X'%!8$J!!"k `!3"51'"!!%J!!!&J!!!!N!"K!&Ji!%!!N!!"!&b!!J!!N!!"!'#!(`"#N!!"!'5 !!3"B+!!!!%##!"JiB!!h5!!!!@!!!!!iI`!!5!!!h$KK!$K)!!!"B!!!!(aJ"c3 X!+BL3B)!,%#!!"`X!+BI3B)!5%#!!&JX!+BE3B)!+%J!!%`X!!!!3B)!@%J!!%! iB!!h5!!!!@!!!!!iI`!!5!!!L$KJ!$G)!!!"B!!!!$Kr!!")!!"d1'!!'%J!!!& J!!!!1(m!!%J!!'!iB!!b5!!!!@!!!!!iI`!!5!!!6$J!!!+B(`!Y1!!!!*JI!#` i!!!!N!!I!$!i!!!!X"m!,MKr!$3iJ!!!1+!!#%J!!!&J!!!!1!!!!*!!(`!qJ!% !9*!!(`!11(m!!)!"!,Ji)3#`I!J$TS2Krra1J!!J4A8!N!A-!!!!&%9d!`#3"-d !!!!F4A8!N!A1!!!!-%9d!`#3"-m!!!"%4A8!N!A3!!!!5%9e!*!&d3!!!'"&G!- !N!3N!!!!G%9e!*!&dJ!!!*4&G3#3"G-!!!#S4A8!N!A5!!!!k%9e!*!&dJ!!!2a &G3#3"G)!!!%34A8!N!A5!!!"*%9e!*!&e!!!!@"&EJd#!!!!eJ!!!"D!!*!(#!! !0!&N!!S!!)D!!"m!N!T&GJS-!!!!e`!!!"*&EJ`%!!!!f!!!!!b!!*!0!C!!!*! %4AF!N!A,!*!%4AF0!*!%eJ!!!!K&D`!%!!!!f3!!!I!!!!-d!!!E4h`)!UD6iIr mNm(rq*!!!3!)P#(rN!!li`!!N!#"!)b!J3#-5!!!!@!!!!#!!J!!N!!I!!)mB'P Z1'0PG*!!B3"%J!)!!*!!!3"!1'!!"%J!!!&J!!!!N!"r!%+!I`"#Nq-!!$J!!!# 3!"m!2MKK!$K)!!!"B!!!!$aJFfNiJ3"%1+!!"$M"!%JiBfGZ5!!!!@!!!!!mB%P 12)"86MLK!%Ji`2rr11!!!$N"!&JiBd981)4'@8J!!!&J!!!!1'%!@$b!8e3mS'a [1-%!M$MJ!!3iK&*01+9ZCdJ!!!&J!!!!1'%!@$b!39-mS'a[1-%!3$MJ!!3iK&) J1+9ZCdJ!!!&J!!!!1'%!@$b!99-mS'a[10m!3MMJ!!3iK&*31+9ZCdJ!!!&J!!! !1'%!@$b!F(-mS("c1-%!1$MJ!!JiK'iJ1+9Z)%J!!!&J!!!!1'%!@$L"!&!iS!! $1-!!!6MJ!(Jj!!!!15!!!%J!!!&J!!!!1'%!8%J!!!&J!!!!1'%!@%J!!!&J!!! !1'%!5%J!!!&J!!!!1(m!!%J!!!&J!!!!1m-!!$J!!#L`!`!D5!!!!@!!!!#!(J! XN!!I!##J(J!`X"m!(MJ!!"#B(`!XJ"i!*T!!(`!`S"i!+V!I!#iiI`!!J!%!H$J K!("m#!1QJq(rr)2"rrK1J!!J4A8!N!AD!!!!)%9d!`#3"-d!!!!S4A3$!*!%*!! !!$a&G3#3"Fi!!!")4A8!N!AE!!!!D%9e!*!&h!!!!)4&G3#3"Gd!!!#X4A8!N!A H!!!!d%9e!*!&hJ!!!24&G3#3"Gi!!!%B4A8!N!AH!!!"2%9e!*!&h`!!!@"&G3# 3"H!!!!&X4A8!N!AJ!!!"H%9e!*!&i!!!!B4&G3#3"H%!!!'3!%9e!*!&d`!!!D4 &EJd#!!!!lJ!!!"D!!*!(%!!!6!'S!!S!!)D!!"m!N!T&GJS-!!!!e`!!!"*&EJ` %!!!!l`!!!!b!!*!0!I!!N!4&G`#3"GN!N!4&G`d!N!6Z!!!!#%9V!!3!!!$`!!! !k!!!"$B!!##RI!J#TT2Krrb6`IriN!!"!!L8)Ir!1q-!!$[%!!")!!!"B!!!!)! #!!#3!"m!!S!H!!k3!"m!$SJH!"+B(`!5L"i!%jJI!"1!(J!8N!!I!"5!(J!BN!! I!"L!IJ!FJ"i!)*!!I`!FN!!I!##!IJ!NJ"i!+*!!I`!NN!!I!#L!IJ!XJ"i!-*! !I`!XN!!I!$#!IJ!dJ"i!1*!!I`!dN!!I!$L)(J!mQ"m!2$J!!!#3!"m!2S!H!%+ 3!"m!3S"r!%+6i`!!1'!!"%J!!!&J!!!!N!"q!%+!IJ"#Nm-!!$Kr!!#!!3")1#% !3(`)!kD$iIrmJm(rq%k!!#"&G3#3"F`!!!!F4A3$!*!%c3!!!#4&G3#3"Fi!!!# i4@i0!J!!!2%!!!!@J!#3"a!!!,`![!!+!!#'J!!I!*!+4AB+$!!!!0F!!!!54@i -"!!!!2)!!!!-J!#3$ZJ!N!4&G`#3"I!!N!4&G`d!N!6a!!!!#%9V!!3!!!$c!!! $6!!!"'i!!#+5I!J#TVpKrqb3!!%!#*3Kri"mHaYjX)%!RS2L!!#$SJ!!3B)$&)! #!!#3!"X!!S!G!!#3!!%!@$J!!!#3!"d!!$Kl!!")!!!"B!!!!$[$!!!i!!!SX!- !'NJ!!!&J!!!!5!!!!@!!!!!X!`!!3))!,)!I!!!S!!!!3B)!-$KJ!!!iJ!!!JCm !!%J!!!&J!!!!,!-!!%'#!"3iB!!%5!!!!@!!!!")!!!-1!!!!*!!(3!!J"d!!#` !!!"!JJ!3S"i!1LJ!!!"!J[pm1(X!!%J!!!&J!!!!1m-!!$J!!!#3!!-!$$J!!#D `!`!D1!$r`*J$!#)i!!!mQ!-!)$J!!!'B!`!K5!!!!@!!!!")!!!"B!!!!#`$!!" !JJ!XJ"m!!#J!!!""JJ!`1'!!!$L!!!#"R`!!5!!!!@!!!!!X!`!!3B)!&$KJ!!4 )!!!"B!!!!%J!!"Ji!!!!N!!G!!#S(J!3,!!!!8'#rkLS(J!3,!#Q)%'#!&"!J!! J,!#Q(8'#!#a!J!!S,!#Q(%#!!$K)!!!F5!!!'#`!!!""JJ!S3)!!$#`!TL0"JJ! FJ"d!!#`!!!"!JJ&NJ!%!@*!!(3!!5!!"@+JH!"!X!!!!3))!l$Kl!!")!!!"B!! !!$[$!!!lJ!!!5!!!c$J!!!#3!"i!$$J!!#1`(J!D1!!!!CJH!#!i!3!iN!!H!#S i!!!%X"i!,MKq!!")!!!"B!!!!%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'#!$! iB!!!1)!!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!'$J!!!# 3!"d!!+JH!"!X!!!"3B,rU+JH!"!X!!!!3))!1$J!!#5`(J!D1!%!1*!!(J!U1(i !!%J!!!&J!!!!J"d!!#`!!!"!JJ!31j`!!5`F!!K"J2md1!!!+V!H!"SiIJ!!5!! !!@!!!!"mB!Fe3B)!()!G!!!X!!!!3))!2)!"!&L3!"d!!%J!!$#!IJ!J5!!!!@! !!!#!H`"#5!!!!@!!!!#!(3!!,!!!!%##!!b!!3"BN!!G!!!iH`!!1)!!!%J!!!& J!!!!U!%!RL`!!!"!J3!31(X!!%J!!!&J!!!!1(X!!)!"!)Ji)3#!I!J$TVYKrqa 1J!!J4A3$!*!%p!!!!"K&G!-!N!6e!!!!(%9d!`#3"-d!!!!N4A8!N!AK!!!!3%9 e!*!&d`!!!&4&G3#3"IB!!!"F4A8!N!Ah!!!!K%9e!*!&dJ!!!*K&G3#3"H%!!!$ )4A8!N!Ai!!!!r%9e!*!&pJ!!!34&G3#3"IF!!!%X4A8!N!A5!!!"3%9e!*!&i3! !!FK&G3#3"IJ!!!))4A8!N!Af!!!#%%9e!*!&p`!!!MK&G3#3"G)!!!*-4A8!N!A 6!!!#M%9e!*!&d`!!!VK&G3#3"IN!!!,N4A8!N!Ak!!!#m%9e!*!&q`!!!a4&G3# 3"IS!!!-X4@i0!J!!!33!!!!5J!#3"bJ!!%3#p!!+!!##!!"B!*!'4AB+$!!!!38 !!!!14@i-"!!!!3B!!!!-J!#3$30-!*!%4AF!N!Ac!*!%4AF0!!!!!33!!!!)4@X !K!!!!3F!!!"SJ!#3"h`)!UD6iIrmN!!"!!L8)Ir!I(mEHE#"!&j"JJ!iJ')!!)! $!!!X!!!!3))!%)!I!!#!BJ!!N!!$!!#S!3"H,!!!!%#"!"!iI`!!5!!!!@!!!!! iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!6e!!!!(%9d!`#3"28!!!!`4A8 !N!Ak!!!!5%9Z$!3!!!%)!!!!$)!!N!Z!!!"S#!!!!%9h!*!%!3F!N!4&D`!%!!! !i3!!!'!!!!@)!!!T8h`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#!BJ!!5!!!!@! !!!!li`!!J')!!%J!!!&J!!!!X(m!')!H!!k3!"m!(*2I!'BiI`!!J!%!5$JK!%" m#!1QJq(rr)2"rrK1J!!J4A3$!*!%c`!!!"K&G3#3"!%*!!!!(%9d!`#3"-m!!!! S4A8!N!A3!!!!,%9Z$!3!!!%+!!!!$)!!N!Z!!!"J%!!!!%9h!*!&i3#3"%9V!!3 !!!%,!!!!@!!!"FJ!!#SAI!J#TT2Krrb3!!%!#*3Krm#3!'%!@)"K!&K)!!!"1q- !!$J!!#L`!`!D5!!!!@!!!!"mB!Fe3B)!$$KJ!!")!!!)S(m!2)!"!%Ji)3"!I!J $TS2Krra1J!!J4A8!N!AK!!!!'%9e!*!&d`!!!#K&EJ`%!!!"$!!!!!b!!*!,J!! !@!J!!!"&G`#3"!%,!*!%4@X!"!!!!3d!!!+d!!!''!!!,50m#!+Q[Z(rh*!!!3! )P#(rN!!lJ`!!N!#"!)b3!+%!N!#$SJ!!Jq)!!)0K!)b!!3#3!#`!!"""JJ!81'! !&NJ!!!&J!!!!5!!#B)JE!!%S!!!#3B)!&$KJ!#p)!!!"B!!!!%J!!N5)(!!m+!! !"%##!$#!(!!q,!!!!%'#!"3iB!!p5!!!!@!!!!")!!)F1'!!*8J!!!&J!!!!5!! #$)JF!$`S!!!"3B)!&$KJ!$K)!!!"B!!!!%J!!I!i!!!%Q"`!2$Km!!")!!!"1m- !!)!#!!#3!!-!$$J!!##`!`!D1!$r`*J$!#)i!!!mQ!-!)$J!!!'B!`!K1!!!!*J $!#1!H`!%2!1"!#J!!!&!JJ!35!!!!@!!!!")!!!)J(X!"*!!IJ!NS"X!!V!H!#J i!!!!N!!H!#UJ(!!HX"i!,MJ!!!#B(J!b1!!!!*JH!$-i!!!!Q"i!0$J!!!#B(J! e1(i!!%J!!!&J!!!!1d-!!(p!"c9"JJ!F1!!!!CJF!$ar3`Fd5!!!!@!!!!")!!% JL"`!%bJ!!!""JJ!81'!!*%J!!!&J!!!!5!!"")!I!!#3!!%!1$J!!!#3!"m!!%J !!!&J!!!!,!-!!%##!#b!(3!!+!!!!%'#!$!iB!!!1)!!!)'G!!")!!!"B!!!!#` $!!""JJ!81'!!"%J!!!&J!!!!5!!!'$J!!!#3!"m!!+JH!"!X!!!"3B,rU)!I!!! X!!!!3))!%+JH!"!X!!!!3B)!C$J!!!'B(!!mJ"m!!#`!!!""JJ!N1b$rri!I!!! X!!!!3))!$)!"!$L3!"m!!$Kj!!")!!"-U(i!%%J!!!&J!!!!1`-!!)!I!!!X!!! !3))!$)!"!$L3!"m!!$Ki!!")!!!J1Z!!!)!I!!!X!!!!3))!$)!"!$L3!"m!!$K h!!#!!3"i1#%!F(`)!kDkiIrF6S!!)%9d!`#3"23!!!!F4A3$!*!%p3!!!#"&G3# 3"G)!!!!i4A8!N!A5!!!!9%9e!*!&dJ!!!(a&G3#3"G)!!!#-4A8!N!A5!!!!U%9 e!*!&i3!!!-"&G!-!N!5m!!!!b%9e!*!%!3i!!!%)4A8!N!Ai!!!"@%9e!*!%!3m !!!&i4A8!N!A5!!!"P%9e!*!&pJ!!!E"&G3#3"IF!!!(B4A8!N!A5!!!"l%9e!*! %!3m!!!*F4@i0!J!!!43!!!!5J!#3"dJ!!E3#B!!+!!##!!!i!*!'4AB+$!!!!38 !!!!14@i-"!!!!48!!!!-J!#3$3+d!*!%4AF!N!3"$3#3"%9h$3!!!!%8!!!!#%9 V!!3!!!%@!!!"p!!!"dB!!$2hI!J#TVmKrq53!!%!#*3Krk!lJ`!!Jq)!!)2#!!# )!`!m+!!!!8'#!"3iB!!i5!!!!@!!!!")!!'X1!!!!TJF!$`iI!!!5!!!!6ZM!!# !BJ!!5!!!!@!!!!#`I3!BJ!)!!*!!(3!-1!!!(l!G!"Si!2r!Q"d!)MJ!rrqB(3! J1!!!!*JG!#%i!!!!Q"d!)cJ!!!#3!"d!*$J!!!#`(3!S1!!!!*!!(3!US"`!(V! G!#ii!!!!Q"d!-MJ!!!#B(3!c1!!!!*JG!$3i!!!!Q"d!06Kp!!")!!!"B!!!!$Y M!!"rB!Fe3B)!($J!!!'B(!!mIf-(0%J!!!&J!!!!5!!!k)!H!!#3!!%!1$J!!!# 3!"i!!%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'#!$!iB!!!1)!!!)'I!!")!!! "B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!'$J!!!#3!"i!!+!G!#iS!!!!3B, rU)!H!!!X!!!%3B,rR)!H!!!X!!!!3B)!1)!H!!!X!!!%3B)!,$J!!!'B(!!m1d$ rri!H!!!X!!!!3))!$)!"!$L3!"i!!$Kk!!")!!!`J"d!+T!!(!!JS"d!,V!F!"i l)!!!J"i!!#`!!!"!JJ!-J!%!1*!!(J!!1(N!!)!"!'Ji)3"JI!J$TVXKrq41J!! J4A3$!*!%p!!!!"4&G!-!N!6e!!!!'%9e!*!&dJ!!!#a&G3#3"H%!!!"%4A3$!*! %c`!!!%a&G3#3"G!!!!"34A3$!*!%`!!!!&a&G3#3"IJ!!!$34A8!N!3"$`!!!2" &G3#3"IB!!!%-4A8!N!Ah!!!"0%9e!*!&dJ!!!8K&EJd#!!!"&`!!!"+!!*!(1!! "%!&-!!S!!))!!$J!N!C&GJS-!!!""3!!!!j&EJ`%!!!"'!!!!!b!!*!0!I3!N!4 &G`#3"!%@!*!%4AF0!!!!!4F!!!!)4@X!"!!!!4N!!!0`!!!)#J!!194m#!+Q[d( rk*!!!3!)P#(rX$[M!!#3!)%!E$Y&!!#$`J!!L!-!2#J!!!&!JJ!mJ"m!2L`!!!" "JJ!JJ(m!2NJ!!!&J!!!!1!!!!*!!(`!q1'!!!%J!!``iB!!j5!!!!@!!!!")!!, mL"m!2#J!!!*"JJ!XL"m!2#J!!!0"JJ!JL"m!2#J!!!G"JJ!81'!!18J!!!&J!!! !5!!#b)JI!$`S!!!#3))!V)JI!"-S!!!!3B)!&$KJ!!Y)!!!"B!!!!%J!!U")!!! "B!!!!#`$!!"!JJ!XJ"i!!#J!!!""JJ!d1'!!!$L!!!#"RJ!!5!!!!@!!!!!X!`! !3B)!'$KJ!!4)!!!"B!!!!$KJ!!")!!*8L"m!2#J!!!*"J[qXL"m!2#J!!!0"JJ! XL"m!2#J!!!G"JJ!JJ(m!2NJ!!!&J!!!!1!!!!*!!(`!q1'!!!%J!!K5)(`!m+!! !!d##!!`i!!!&5!!!#$J!!!'B(`!m1'!!4NJ!!!&J!!!!I(XEH8'#!"!iH`!!1*m !!%J!!!&rI0Yj3))!C$Kr!!")!!!"1!!!*l!$!"T)!!!"B!!!!$J!!!'B(`!m1(m !!$L!!!@"R`!#JB`!%%J!!!&J!!!!,!-!!%#!!"3i!!!"Q"m!2$KJ!!")!!'!1'! !$%J!!!&J!!!!5!!"F$J!!!'B(`!m1(m!!%J!!!%lS`!!1!!!(V!$!"SiB%!!5!! !!@!!!!#3!(d!)$J!3!#3!"d!*)!#!!#3!"d!+)!I!%+3!"d!,)!G!#!S!!!!3)) !&$KJ!$G)!!!"B!!!!%J!!4!iI3!!5!!!!@!!!!"mB!Fd,!#Q)N'#!#a!J!!F,!# Q(d'#!%"!J!"-,!#Q'd'#!#4)!!"!,!!!!%'#!%K)!!!d1'!!0dJ!!!&J!!!!5!! !`$KJ!$G)!!!"B!!!!%J!!,!iB!!B5!!!!@!!!!")!!#J1'!!-NJ!!!&J!!!!5!! !N!!i!!!#Q"m!,6J!!!#B(`!X1!!!!*!!(`!`1!!!!,!I!#iiI`!d1)!!!$LJ!!K )!!!"B!!!!$J!!!#3!"m!2S!G!"b3!"m!$MKr!!!iJ!!&JCm!!S'-!"")!!!"B!! !!)"K!'`iR!!XJ"S!!#`!!""!J!!-J,S!!%J!!!JiS!!3N!#k!!")!!!"B!!!!$K m!!#!!3"B1#%!8(`)!kDl3IrS6S!!)%9d!`#3"23!!!!F4A8!N!3"$`!!!$a&G3# 3"!%D!!!!@%9e!*!%!4S!!!#-4A8!N!3"'J!!!,4&G3#3"IB!!!$!4A8!N!Ah!!! !k%9e!*!&dJ!!!2a&G3#3"!%2!!!"0%9e!*!&cJ!!!@a&G3#3"I!!!!'%4A8!N!A K!!!"P%9e!*!&d`!!!D"&G3#3"IF!!!(!4A8!N!3"'J!!!H4&G3#3"H%!!!(m4A8 !N!A4!!!#%%9d!`#3"#3!!!)N4A8!N!3"'J!!!N4&G3#3"G-!!!*84A8!N!3"'J! !!T4&G3#3"!%D!!!#T%9e!*!%!4S!!!+d4A8!N!3"'J!!!X4&G3#3"G3!!!,m4A8 !N!Ah!!!$*%9e!*!%!4X!!!034@i0!J!!!4i!!!!5J!#3"c!!!BJ"L!!+!!#+J!! E!*!'4AB+$!!!!4m!!!!14@i-"!!!!5!!!!!-J!#3$30`!*!%4AF!N!3"'3#3"%9 h$3!!!!%H!!!!#%9V!!3!!!%K!!!#r!!!#93!!%M4I!J#TVp"rqL3!!%!#*3Krl! l``!!N!#"!'`lK3!!I2SlHC%"!(b$iJ!!3B)!)$Kq!!!iQJ!!J+%!I)'H!!+"M!! X5!!!!@!!!!#)(J!59!!([8'#!"3iB!!k5!!!!@!!!!")!!+)L"i!2#J!!!4!JJ" dL"i!%bJ!!!""JJ!81'!!#dJ!!!&J!!!!5!!#B%J!!!&J!!!!,!-!!%##!#b!(`! !+!!!!%'#!$!iB!!!1)!!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!! !5!!#')JH!$`S!!!%3B,rX)JH!$`S!!!&3B)!D)JH!$`S!!!'3))!$$KJ!!")!!( XL"i!2#J!!!&!JJ!iJ"i!2L`!!!""JJ!XJ"i!2L`!!!&"JJ!JJ(i!2NJ!!!&J!!! !1!!!!*!!(J!q1'$rrdJ!!D`iB!!j5!!!!@!!!!")!!'F1(i!!)'H!!+"M!"N5!! !!@!!!!!lB`!!L"i!%bJ!!!""JJ!F+"X!!%##!"3iB!!,5!!!!@!!!!")!!&JJ!% !E*!!(J!81!!!!*!!(J!B1!!!!C!!(J!q1(i!!%J!!!%lS`!!J!)!!*!!!`!-1!! !*E!$!"Si!!!!Q!-!))!H!"53!!-!*$aJ!!%iBrrrI"`B!%#!!!`iI!!!5!!!$$a J!!%iBrrrX(d!+$Kp!!")!!!"B!!!!%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%' #!$!iB!!%1*`!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!T+J G!"!X!!!"3B,rX+JG!"!X!+BB3))!$$J!!!#`(3!3U"d!%#`!TKp"JJ"X3)!!,#` !TKY"JJ"J3)!!%#`!TKK"JJ"85!!!8#`!TKe"JJ")3)!!4%J!!$JX!+BM3B)!-%# !!"!X!+BK3B)!,%J!!#JX!!!!3B)!#%J!!"`i!!!!N!!H!$k!IJ!B5!!!')"q!"K )!!!3U(d!%%J!!!&J!!!!J!%!@$JK!&"m#!1QZd(rk%k!!#"&G!-!N!6d!!!!*%9 e!*!&p`!!!%"&G3#3"G)!!!"B4A8!N!A5!!!!J%9e!*!&pJ!!!)a&G3#3"IF!!!# d4A8!N!A5!!!!b%9e!*!%!3m!!!%S4A8!N!A5!!!"4%9e!*!&p`!!!9a&G3#3"G) !!!'!4A8!N!AK!!!"U%9d!`#3"-8!!!'`4A8!N!Ai!!!"q%9e!*!&pJ!!!J"&G3# 3"IF!!!)S4A8!N!A5!!!#2%9e!*!%!3m!!!,J4@i-"!!!!58!!!!-J!#3#i!!![` `!!!!4AF!N!3")3#3"%9V!!3!!!%Q!!!%&!!!#TS!!&A1I!J#TVkKrp53!!%!#*3 Krh!l3`!!1`3!!$[&!!!kTJ!!N!$K!,L#`J!!Jq)!!)J$!"*8!!Gl3B)!&$KJ!$T )!!!"B!!!!%J!!lb!!3#i+!!!!%'#!"3iB!!Y5!!!!@!!!!")!!1JL"S!2#J!!!9 "JJ!JL"S!2#J!!!4"JJ!81'!!18J!!!&J!!!!5!!$H)JD!$`S!!!%3))!G)JD!"- S!!!!3B)!&$KJ!#9)!!!"B!!!!%J!!e")!!!"B!!!!#`$!!"!JJ!XJ"m!!#J!!!" "JJ!`1'!!!$L!!!#"R`!!5!!!!@!!!!!X!`!!3B)!&$KJ!!4)!!!"B!!!!%J!!`L )'J!m+!!!"%'#rl#)'J!m+!!!"8'#!%L)'J!m+!!!!8##!#b!'J!q,!!!!%'#!## !HJ!q5!!!!@!!!!!i!!!!N!!D!$iiB2rr5!!#[$KJ!$P)!!!"B!!!!%J!!U`iHJ! !5!!!!6YM!!!i!!!SX!-!'NJ!!!&J!!!!I'!(08'#!!`ki!!!5!!!'+"l!$UJ'`! fIZ-!88#!!!Jki!!!L"S!%bJ!!!""JJ!S,"F!!%##!"3iB!!,5!!!!@!!!!")!!* )I"I`!%#!!!Jle`!!1[i!!$KK!$JiJ!!!1+!!)%J!!!&J!!!!1k%!1$Z!!!")!!' FJ"S!2L`!!!""JJ!JJ(S!2NJ!!!&J!!!!1!!!!*!!'J!q1'$rrdJ!!I!mB!!"1'2 rrh`H'!"!J!!-1ci!!%J!!)3r)!!"1cRrrdJ!!(KrJ`Fd1!-!!A`F&R"rR!'89j` 31RqF!""rJ!Fe3B)!$$Zp!!K)!!!)1k%!1%J!!!&J!!!!,!-!!%##!#b!(`!!+!! !!%'#!$!iB!!&1*i!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!! "@+!G!!!S!!!!3),rK,-p!!#6(3!#1(S!!%J!!!%lB`!!NX-!$$J!!#+`!`!D1!$ r`*J$!#)i!!!mQ!-!)$J!!!'B!`!K2+!!!9I%$riiTIrrI+2qF(`H+""m!b%8Q"X !)eDJ"rkB'`!NNlX!*MJ!!!#3!"X!+MJ!!!#`'`!Z1(X!!%J!!!&J!!!!5!!!!@! !!!!X!`!!3))!,)!I!!!S!!!!3B)!-$KJ!!8iRJ!!JCm!!%J!!!&J!!!!,!-!!%' #!"3iB!!%5!!!!@!!!!")!!#)IpR`8(mBbK3X(J!!3B(qC%J!!!&J!!!!,!-!!%# #!#b!(`!!+!!!!%'#!$!iB!!&1)!!!)'I!!")!!!"B!!!!#`$!!""JJ!81'!!"%J !!!&J!!!!5!!!-+JE!"!X!!!"3B,rX+JE!"!X!!!!3))!$$Kh!!")!!!3U(X!%%J !!!&J!!!!J!%!Q$JK!*!!I!J$TVUKrp41J!!J4A3$!*!%b3!!!#4&G!-!N!6d!!! !+%9e!*!&dJ!!!$a&G3#3"G)!!!"B4A8!N!A5!!!!J%9e!*!&dJ!!!+K&G3#3"IB !!!#d4A8!N!Ah!!!!h%9e!*!&dJ!!!2"&G3#3"!%2!!!"-%9e!*!&dJ!!!8a&G3# 3"H%!!!&F4A8!N!A6!!!"E%9e!*!&dJ!!!E"&G3#3"G3!!!(B4A8!N!A5!!!"r%9 e!*!&pJ!!!Q4&G3#3"IF!!!+-4A8!N!A5!!!#S%9e!*!&i3!!!X4&G3#3"IJ!!!- X4A8!N!Af!!!$0%9e!*!&p`!!!ea&G3#3"G)!!!0`4A8!N!Af!!!$M%9e!*!&p`! !!l4&G3#3"G)!!!2)4A8!N!3"$`!!!rK&EJ`%!!!"-3!!!!b!!*!,J!!%&&J!!!" &G`#3"!%Q!*!%4@X!"!!!!6)!!!$F!!!-U!!!B3Pm#!+QNq(rr*2"rrL6SIrdNi( rm*!!!3!)P#(rX$ZM!!"mRL0j1i8!!$[J!!""JJ"XL"d!2#J!!!G"J3"JJ')!!&3 !%$TmB`!ZI'N$TNk!"#!i!!!"Q"i!!$[r!!&)!!!m1(d!!)'G!!+"M!"N5!!!!@! !!!!S!`!!3B)!)$J!!!'B(J!!1rm!!8J!!"!i!!!"Q"i!!$[r!!%S(!!!3B)!()J G!$`X!!!%3B)!%$J!!!'B(!!!1rm!!6Kr!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1 Krr5$JIr`6S!!)%9d!`!!!!%c!!!!2%9e!*!&p`!!!'a&EJ8%!!!"-`!!!##!!*! +Q!!!!)`!!!#B!!!!8!!!!*J!!!"J!!!!M!!!!&"&GJ#3"!%b!*!%4AB!N!3"-J! !!!4&GJ#3"!%b!!!!#%9f!*!%!6)!!!!-4AB!N!3"-J!!!""&GJ#3"!%b!!!!&%9 f!*!%!6)!!!!B4AB!N!3"-J!!!"a&EJ`%!!!"0`!!!!b!!*!,J!!!h#!!!!"&G`# 3"!%b!*!%4@i&!3!!!6J!!!!+rrrraJ!!B3P83e"6Ef0VCA3!"2*&EJ8"!!!"13! !!!Irrrr&!!"K#90[BfYPG!$(4@i&"!!!!6S!!!!)rrrra!!!B3N!N!K&GJ8!!!! "13#3"%9Z"3%!!!%l!!!!#rrrrm-!!'%*58j&9&0[BfYPG!!i4@i&"!!!!6`!!!! -rrrr`J!!B3N!N!a&GJ8!!!!"1J#3"%9Z"33!!!%p!!!!#2rrrm%!!'%*!*!)4AB &!!!!!6X!N!4&GJ8!!!!"2!!!!!4&EJ8%!!!"2J!!!"6rrrr!!!"K#3#3&%9f"3! !!!%p!!!!#%9f"3!!!!%k!*!%4@i&"!!!!6m!!!!)rrrr[`!!B3N!N!K&GJ8!!!! "1!#3"%9f"3!!!!%q!!!!"%9["33!!!$0!!!!D2rrrli!!'%*!*"S4AB&!!!!!6m !N!4&GJS!!!!"3!!!!&a&GJS!!!!"33!!!&4&GJS!!!!"3J!!!%a&GJS!!!!"3`! !!%K&GJS!!!!"4!!!!%4&GJS!!!!"43!!!%"&GJS!!!!"4J!!!$4&GJS!!!!"4`! !!$"&GJS!!!!"5!!!!"a&GJS!!!!"53!!!"K&GJS!!!!"5J!!!&"&GJS!!!!"5`! !!$a&GJS!!!!"6!!!!$K&GJS!!!!"63!!!#a&GJS!!!!"6J!!!#K&GJS!!!!"6`! !!!K&GJS!!!!"8!!!!&K&GJS!!!!"83!!!#4&GJS!!!!"8J!!!#"&GJS!!!!"8`! !!"4&GJS!!!!"9!!!!""&GJS!!!!"93!!!!a&GJS!!!!"9J!!!'4&GJS!!!!"9`! !!'"&E`S%!!!"8!!!!!L!!*!24AB!N!3"-J#3"%9f$`!!!!&B!!!!"%9[#J3!!!& 4!!!!#)!!N!p&GJ#3"!%Q!*!%4AB2!!!!!9J!!!!%4@m+"!!!!9)!!!!)J!#3$d9 f!*!%!5%!N!4&GJm!!!!"@!!!!!4&E`S%!!!"8`!!!!L!!*!24AB!N!3"'3#3"%9 f$`!!!!&B!!!!"%9[#J3!!!&8!!!!#)!!N!p&GJ#3"!%@!*!%4AB2!!!!!9J!!!! %4@m+"!!!!98!!!!)J!#3$d9f!*!%!3d!N!4&GJm!!!!"@!!!!!4&E`S%!!!"9J! !!!L!!*!24AB!N!3"#`#3"%9f$`!!!!&B!!!!"%9[#J3!!!&C!!!!#)!!N!p&GJ# 3"H%!N!4&GJm!!!!"@!!!!!4&E`U%!!!""3!!!!L!!*!24AB!N!3""`#3"%9f$`! !!!&B!!!!"%9[#J3!!!&A!!!!#)!!N!p&GJ#3"I-!N!4&GJm!!!!"@!!!!!4&E`S %!!!"@J!!!!L!!*!24AB!N!A`!*!%4AB2!!!!!9J!!!!%4@m+"!!!!9X!!!!)J!# 3$d9f!*!&f3#3"%9f$`!!!!&B!!!!"%9[#J3!!!&F!!!!#)!!N!p&GJ#3"FX!N!4 &GJm!!!!"@!!!!!4&E`S%!!!!bJ!!!!L!!*!24AB!N!A(!*!%4AB2!!!!!9J!!!! %4@m+"!!!!-B!!!!)J!#3$d9f!*!&`J#3"%9f$`!!!!&B!!!!"%9[#J3!!!$"!!! !#)!!N!p&GJ#3"Ei!N!4&GJm!!!!"@!!!!!4&E`S%!!!![3!!!!L!!*!24AB!N!8 e!*!%4AB2!!!!!9J!!!!%4@m+"!!!!$3!!!!)J!#3$d9f!*!&!3#3"%9f$`!!!!& B!!!!"%9Z!`3!!!%c!!!!")!!N!Y&GJ8!!!!"-`#3"%9[!`3!!!$*!!!!")!!N!Y &GJ8!N!6*!*!%4@m$"!!!!-8!!!!%J!#3#d9f"3#3"-8!N!4&E`-%!!!!`!!!!!5 !!*!,4AB&!*!%`!#3"%9[!`3!!!#m!!!!")!!N!Y&GJ8!N!5m!*!%4@m$"!!!!23 !!!!%J!#3#d9f"3#3"23!N!4&E`-%!!!!p3!!!!5!!*!,4AB&!*!%p3#3"%9[!`3 !!!!N!!!!")!!N!Y&GJ8!N!3N!*!%4@m$"!!!!-m!!!!%J!#3#d9f"3#3"-m!N!4 &E`-%!!!!c3!!!!5!!*!,4AB&!*!%c3#3"%9[$`3!!!&B!*!%J!#3"d9S!!"6@8e )!!!00!!!!%)!!!!'!*!B"X8!!!"3!!!(1!!!!&`!!!GH!!!!C!!!"hX!!!"m!!! (cJ!!!)J!!!Ip!!!!P!!!#%!!!!#J!!!)CJ!!!+J!!!L$!!!!Y!!!#,!!!!$-!!! *"!!!!0J!!!Ne!!!!j!!!#Ai!!!$`!!!*T!!!!2J!!!R-!!!"+!!!#G[rN!3!!!R E!!-!!!!%!!!!#J%$!!!!AJ!!!!8!!!"Q!3-!!!"J!!!!"[q3"!#3"4m!N!J+T3! !!$3!!!XI!!!!C!!!$'S!!!"`!!!-NJ!!!(J!!!b`!!!!U!!!$,rrN!3!!!br!!- !!!!frrrrm`%!N!3G!!!!1Irrrp%!N!8H!!!!"[q3"!#3"4m!N!J0TJ!!!&J!!!i F!!!!K!!!$im!!!#8!!!2l!!!!+!!!"!6!!!!V!!!%$F!!!#d!!!36`!!!13!!"" Hrj!%!!!3AJ!$!!!!0[rrrr-"!*!%(3!!!$Rrrrr4!*!&(J!!!!ErN!3!N!8I!*! )%6m!!!!d!!!4[`!!!$`!!")(!!!!9!!!%N`!!!"J!!!5E`!!!'J!!"+%!!!!Q!! !%T2rN!3!!"+6!!3!!!!frrrrm`%!N!3F!!!!``!!!!-!N!8I!!!!1Irrrp%!N!8 G!!!!"[q3"!#3"4i!N!J6E!!!!*3!!"2M!!!!V!!!&,S!!!$!!!!9D3!!!0!!!"A !!!!!k!!!&J8!!!$d!!!@+!!!!2`!!"Bp!!!",!!!&NcrN!3!!"C-!!-!!!!frrr rm`%!N!3G!!!!1Irrrp%!N!8H!!!!"[q3"!#3"4m!!3#3"KGL!!!!-!!!&k8!!!" )!!!Ad`!!!'!!!"JH!!!!N!!!!"NR!!!!T!!!'8d!!!$N!!!C[!!!!2J!!"Rj!!! "$!!!'MB!!!%J!!!DCJ!!!63!!"U+!!!"B!!!'a(rN!3!!"Y%!!)!!!$9rj!%!3# 3""m!!!!frrrrm!!$!!!!1!!"!*!''fm!!!")!!!F+!!!!'J!!"aP!!!!K!!!((m !!!#X!!!Fc`!!!0!!!"dj!!!!p!!!(B`!!!%B!!!Gi3!!!6`!!"i`!!!"B!!!(UF !!!&X!!!Hp!!!!AJ!!"m1!!!"K!!!(bN!!!'3!!!!(eF!!!'N!!!IK2q3"!!!)+3 !#3!!!0ArN!3"!*!%(`!!!"%!!!!#!3-!!!#-!!!!0[rrrp%!N!8H!!!!i[rrrp! !!`!!!$J!!!$Qrrrrp!!$!!!!3!!!!1F!!!!$!!-!!!"%!!!!k2rrrmm!!`!!!%J !!!$Xrrrrc`!$!!!!8!!!!1hrrrr2!!-!!!"B!!%!N!BJcJ!!!,J!!#*Erj!%!!! LM`!#!!!!eIq3"!%!N!3I!!!!"[q3"!%!N!3H!!%!N!BLUJ!!!$`!!#,E!!!!9!! !)``!!!"F!!!M53!!!+`!!#0-!!!!a!!!)iN!!!$m!!!NS!!!!33!!#6a!!!"B!! !*38!!!'J!!!PT`!!!E3!!#@b!!!"Z!!!*Em!!!(%!!!Q*3!!!G`!!#Ca!!!##!! !*h)!!!)3!!!Rb3!!!Q`!!#I5!!!#H!!!*r-!!!+-!!!S9!!!!U!!!#L2!!!#V!! !+,!!!!+i!!!Sc!!!!Y`!!#Ma!!!#i!!!+2X!!!,X!!!T3rq3"!!!+9!!"3!!!0A rN!3"!*!%'`!!!2`!!!!$!*!&(!!!!2hrrrr1!!-!!!!i!!!"!Irrrm`!!`!!!&J !!!!frrrrd3#3"4i!!3#3"LP`!!!!(!!!+A-!!!!X!!!TRIq3"!!!+K3!!J!!!0A rN!3"!*!%(J!!!$Errrrc!*!&(`!"!*!'+M8!!!!B!!!U5!!!!#J!!#Te!!!!1!! !+TS!!!"!!!!UV2q3"!!!+Y8!!J!!!0ArN!3"!`!!!&J!!!!frrrrd3#3"4m!!3# 3"LeA!!!!0!!!,Hd!!!"%!!!Z#J!!!&!!!#iY!!!!B!!!,RS!!!"X!!!ZS3!!!(J !!#kb!!!!L!!!,Yd!!!#B!!!Zq`!!!+3!!#mM!!!!Y!!!,d%!!!$!!!![B`!!!9J !!$)f!!!"E!!!-Q8!!!&i!!!bL!!!!B3!!$+N!!!"N!!!!$+h!!!"S!!!-bB!!!' `!!!c9`!!!J`!!$0E!!!#*!!!-hS!!!)i!!!cVJ!!!PJ!!$2$!!!#K!!!-qVrN!3 !!$2d!!F!!!$9rj!%!3#3""`!!!%3!!!!C!%$!!!!M!!!!4%!!!!$!3-!!!#3!!! !!3(rrrr-!!-!!!!i!!!!0[rrrp%!N!8H!!!"%[rrrmX!N!8E!!!"%`!!!!X!N!8 D!!%!N!Bd%J!!!#J!!$4E!!!!1!!!0(N!!!"%!!!dT!!!!&!!!$5r!!!!d!!!0iJ !!!$N!!!hYJ!!!2!!!$IF!!!!r!!!1!d!!!%-!!!iE3!!!@J!!$K`!!!"G!!!1)i !!!'-!!!iV`!!!D3!!$M9!!!"Y!!!118!!!(8!!!j4rq3"!!!19%!"!!!!0ArN!3 "!*!%(!!!!3(rrrr-!!-!!!!i!!!!0[rrrp%!N!8G!!!"%`!!!!X!N!8E!!%!N!B jL3!!!#`!!$RC!!!!1!!!1H`!!!"8!!!k,J!!!'3!!$TF!!!!L!!!1X3!!!#B!!! kmJ!!!+3!!$XD!!!!X!!!1bi!!!$!!!!l[J!!!4J!!$[Z!!!"-!!!2$F!!!&-!!! p0!!!!@`!!$f2!!!"N!!!!$hN!!!"S!!!2K3!!!(!!!!qM3!!!G!!!$kR!!!"i!! !2[B!!!(`!!!rQ3!!!I`!!$qm!!!#%!!!2rB!!!*!!!""!J!!!P!!!%%[!!!#N!! !!%'G!!!#S!!!3HF!!!+`!!"#-3!!!X!!!%*Y!!!#d!!!3Ti!!!,m!!"$)3!!!b3 !!%1$rj!%!!"%'`!&!!!!eIq3"!%!N!3I!!!"(!!!!'3"!`!!!'`!!!%GrrrrbJ% !N!3D!!!!0[rrrp%!N!8G!!!!"[q3"!#3"4`!!3#3"NNP!!!!,!!!59J!!!")!!" *G3!!!&3!!%QB!!!!C!!!5H8!!!"`!!"+$`!!!(`!!%SM!!!!M!!!5TX!!!$J!!" +`3!!!1`!!%VY!!!!q!!!5a)!!!%!!!",93!!!53!!%ZN!!!"3!!!6!8!!!&3!!" -*`!!!A3!!%a#!!!"I!!!6'-!!!'-!!"-K`!!!DJ!!%c*!!!"q!!!6J!!!!)!!!" 1cJ!!!P3!!%l5!!!#B!!!6[J!!!*S!!"2%!!!!X3!!%mj!!!#e!!!6jJ!!!,F!!" 3CIq3"!!!8)J!"`!!!0ArN!3"!*!%(J!!!5)!!!"N!3-!!!"X!!!")`!!!!-"!*! %(!!!!4`!!!"N!3#3""S!!!%GrrrrbJ%$!!!!I!!!!53!!!!#!*!&'`!!!$Errrr 4!*!&(3!"!*!'9KN!!!!i!!"@V!!!!%J!!&E-!!!!9!!!9ZX!!!"N!!"A#`!!!(` !!&G8!!!!M!!!9k!!!!#B!!"Ab3!!!+3!!&IG!!!!Y!!!@&-!!!%)!!"BH3!!!43 !!&M2!!!",!!!@3X!!!&)!!"CE!!!!9J!!&Q1!!!"E!!!@Ed!!!&m!!"CiJ!!!B3 !!&Rh!!!"P!!!@PF!!!'B!!"DC`!!!D3!!&Tk!!!"V!!!@SN!!!'m!!"DX!!!!F3 !!&V'!!!"b!!!@YF!!!(B!!"E&3!!!H`!!&[K!!!"q!!!@r3!!!)8!!"F0`!!!M3 !!&ad!!!#1!!!A*B!!!*B!!"G"3!!!Q!!!&dF!!!#C!!!A9B!!!+X!!"GDJ!!!VJ !!&f)!!!#a!!!AGX!!!-X!!"IqJ!!!c3!!'"!!!!$I!!!B%3!!!1%!!"JIJ!!!i` !!'#f!!!$i!!!B,S!!!2X!!"Jc`!!!r3!!'$Qrj!%!!"K"J!,!!!!eIq3"!%!N!3 D!!!")J!!!'3"!*!%'!!!!5F!!!!$!3#3""i!!!%S!!!!!`%!N!39!!!"+3!!!'3 "!`!!!,J!!!%Urrrrb3!$!!!!1!!!!$Errrr4!*!&'`!!!5d!!!!,!*!&(!!!!5l rrrr(!*!&(3!!!5m!!!!$!*!&'3!!!6!!!!!$!*!&&`!"!*!'B9%!!!!`!!"KH!! !!&!!!'(&!!!!B!!!BJi!!!"m!!"L*3!!!)`!!'+4!!!!Q!!!BX!!!!#J!!"Ld!! !!,J!!'-qrj!%!!"M6J!%!!!!eIq3"!%!N!3G!!!"0!!!!'J"!*!%(J!!!68!!!" S!3#3""`!!!%f!!!!!`#3"4m!![rrrr`!!!!,!!!!"J!#!!!!$!!!!!X!N!F0!!! !C!!!!!)!![rrrrS!!!!F!!!!"!!"!!!!(3!!!!)!N!8"rrrrq3!!!!J!!!!"!!! !"`!#rrrrq`!!!"F!!!!3!!8!!!!B!!!!"J#3"aN!!!!'!!!!!3!!!"S!!!!+!!! !!J!!!"[rrrrk!!!!"!!!!"lrrrrj!!!!#!!#rrrrr3!!!!N!!!"#!!d!!!!+rrr rr!#3"`i!!!"N!!!!"J!!!!m!!!!,!!!!#J!!!"!!!!!,!!!!$!!!!"%!!!!#!!! !$J!!!")!!!!'!!!!%J!!!"-!!!!'!!!!%`!!!"3!!!"Q!!!!&!!!!"8!!!!$!!! !'!!!!"Errrrl!!!!(!!!!"rrrrrl!!!!,!!!!#!!!!!'!!!!2!!!!#%!!!!$!!! !2J!!rrrrq!!#rrrrrJ!#rrrrrJ!!!!F!!!"'!!)!!!!)rrrrr3#3"b,rrrri!!! !3J!!rj!%!!(rrrrq!!$rrrrd!!%!!!"U!!,rrrre!!!!,J!!!"3!"`!!!#m!!!! #!*!(+3!!!!F!!!!%!!!!-!!!!!F!!!!&!!!!-3!!!!S!!!!'!!!!-[rrrr3!!!! )!!!!+J!!!!)!!!!-!!!!-`!!!!)!!!!3!!(rrrrf!!!!&!!!!"6rrrre!!,rrrr h!!!!*3!!!#!!#!!!!#B!!!!+!*!(*`!!!!F!!!!#!!!!+!!!!!B!!!!$!!!!+3! !!!)!!!!%!!!!+J!!!!B!!!!)!!!!+`!!!!B!!!!*!!!!,!!!!!S!!!!+!!!!,Ir rrrB!!!!-!!(rrrr[!!!!$!!!!!%!!!!(!!$rrrrZ!!(rrrrh!!,rrrrX!!!!4J! !!"!!"!!!!%F!!!"Q!*!(5!!!!!)!!!!%!!!!5Irrrqi!!!!)!!!!"3!!!'B!!!! -!!(rrrrU!!!!+!!!!!%!!!!(!!,rrrrV!!!!5`!!!%)!%!!!!%`!!!!(!*!(63! !!!F!!!!"!!!!6J!!!!F!!!!#!!!!6`!!!!F!!!!$!!!!8!!!!!)!!!!%!!!!83! !!!S!!!!)!!!!8J!!!!)!!!!+!!!!8`!!!!S!!!!1!!!!9!!!!!F!!!!3!!!!93! !!!F!!!!4!!!!9J!!!!B!!!!5!!!!9`!!!!F!!!!6!!!!@!!!!!F!!!!8!!!!@3! !!!F!!!!9!!!!@[rrrqS!!!!@!!!!"3!!!'B!!!!q!!,rrrrT!!!!A!!!!"3!#J! !!%`!!!!(!*!(63!!!!F!!!!"!!!!6J!!!!F!!!!#!!!!A3!!!!B!!!!$!!!!AJ! !!!B!!!!%!!!!A`!!!!F!!!!&!!!!B!!!!'B!!!!'!!!!B3!!!!)!!!!+!!!!BJ! !!!S!!!!1!!!!"3!!!'B!!!!3!!,rrrrS!!!!C!!!!"B!#J!!!%m!!!!(!*!(C3! !!!B!!!!"!!!!AJ!!!!B!!!!#!!!!A`!!!!F!!!!$!!!!4`!!!'B!!!!%!!!!5!! !!!S!!!!)!!!!CJ!!!'B!!!!+!!!!C`!!!!S!!!!1!!!!D!!!!!S!!!!3!!!!"3! !!'B!!!!5!!,rrrrR!!!!DJ!!!!J!"3!!!%`!!!!(!*!(63!!!!F!!!!"!!!!6J! !!!F!!!!#!!!!A`!!!!F!!!!$!!!!"3!!!'B!!!!%!!,rrrrQ!!!!E!!!!!3!!3! !!!8!!!"Q!*!&![rrrq%!!!#)!!!!"J!#!!!!L3!!!!S!N!H+!!!!!J!!!!)!!Ir rrq)!!!!U!!!!"[rrrq%!![rrrq-!!!"p!!!!9J!3!!!!IJ!!!!)!N!Gr!!!!!J! !!!3!!!#!!!!!!J!!!!J!!!#"!!!!!J!!!!`!!!##!!!!!J!!!"!!!!#$!!!!!J! !!"3!!!#%!!!!!J!!!"J!!!#&!!!!!J!!!"`!!!#'!!!!#J!!!#!!!!#(rrrriJ! !!#)!!!"k!!!!#J!!!%`!!!#,!!!!#J!!!%i!!!#-!!!!#J!!!&!!!!#0!!!!#J! !!&)!!!#1!!!!"`!!!&3!!!#2!!!!"`!!!&8!!2rrrq3!!Irrrq-!![rrrq8!!!" Y!!!!4J!C!!!!6!!!!!F!N!G0!!!!"`!!!!%!!!"Z!!!!!`!!!!)!!!"3!!!!!J! !!!B!!!"4!!!!#J!!!!S!!!"5!!!!!J!!!!`!!!"6!!!!#J!!!"!!!!"8!!!!"`! !!")!!!"9!!!!"`!!!"-!!!"[!!!!"`!!!"3!!!"I!!!!"`!!!"8!!!"`!!!!#J! !!"B!!!"a!!!!#J!!!"J!!!"b!!!!#J!!!"S!!!"c!!!!#J!!!"`!!!"d!!!!CJ! !!"i!!!"e!!!!!J!!!#)!!!"f!!!!!J!!!#B!!!"h!!!!!J!!!#S!!!"i!!!!!J! !!#i!!!"j!!!!!J!!!$)!!!"k!!!!!J!!!$B!!!"l!!!!!J!!!$S!!!"mrrrrj!! !!$i!!!!&!!!!CJ!!!%)!![rrrpi!!!#6!!!!'!!'!!!!P!!!!!)!N!H9!!!!!J! !!!3!!!#@!!!!!J!!!!J!!!#A!!!!!J!!!!`!!!#B!!!!!J!!!"!!!!#C!!!!!J! !!"3!!2rrrpm!!Irrrpi!![rrrp`!!!#E!!!!0!!0!!!!R!!!!!)!N!HG!!!!!J! !!!3!!!#H!!!!!J!!!!J!!!#I!!!!!J!!!!`!!!#J!!!!!J!!!"!!!!#K!!!!!J! !!"3!!!#L!!!!!J!!!"J!!!#M!!!!!J!!!"`!!!#N!!!!!J!!!#!!!!#P!!!!!J! !!#3!!!#Q!!!!!J!!!#J!!!#R!!!!!J!!!#`!!!#S!!!!!J!!!$!!!2rrrpd!!Ir rrp`!!2rrrpS!!3!!!!)!!IrrrpX!!!!%!!!!"2rrrpS!![rrrq!!!!#4!!!!%J! &!!!!N[rrrpm!N!HDrrrrh3!!!!3!!!#Trrrrf`!!!!J!!!!&!!!!CJ!!!!`!!!# U!!!!#J!!!"!!![rrrqd!!!"%!!!!4J!)!!!!4Irrrq`!N!G+rrrrk`#3"e[rrrr T!*!(BrrrrqJ!N!GTrrrrj`#3"f[rrrrQ!*!(%[rrrq8!N!H3!2rrrq!!N!8#rrr rm!!!!$S!!!"Q!!N!!!!lrrrrl`#3"ccrrrrZ!!!!$!!!!$d!!!!,!!!!%!!!!$i !!!"Q!!!!%J!!!$m!!!!,!!!!&J!!!%!!!!!,!!!!'!!!!%%!!!!,!!!!'J!!!%) !!!!#!!!!(!!!!%2rrrrY!!!!)!!"rrrrf!!!!!`!!!!"!!!!"`!#rrrreJ!!!+m !!!!8!!B!!!"(!!!!CJ#3"dJ!!!!#!!!!"!!!!%RrrrrZ!!!!#!!!!&-!!!!+!!! !$!!!!!8!!!"Q!!!!$J!!!,!!!!!+!!!!%J!#rrrre3!!!,%!!!!@!!N!!!#b!!! !#J#3"e!!!!!#!!!!!J!!!&%!!!!+!!!!"J!!!'!!!!"Q!!!!#!!!!,-!!!!'!!! !$!!!!&m!!!!(!!!!$3!!!')!!!!+!!!!$J!!!!8!!!"Q!!!!%!!!!&-!!!!+!!! !&!!#rrrre!!!!,3!!!!D!!N!!!#e!!!!#J#3"e!!!!!#!!!!!J!!!&%!!!!+!!! !"J!!!%F!!!"Q!!!!#!!!!%J!!!!+!!!!$!!!!'J!!!!+!!!!$J!!!!8!!!"Q!!! !%!!!!,B!!!!#!!!!&!!!!,F!!!!+!!!!'!!#rrrrd`!!!,N!!!!+!!-!!!#k!!! !#J#3"e!!!!!#!!!!!J!!!!8!!!"Q!!!!"J!#rrrre`!!!+i!!!!D!!3!!!"&rrr reJ#3"e[rrrr9!*!(Brrrrp3!N!Hirrrrd`#3"3,rrrrC!!!!V!!!!$S!#3!!!$[ rrrrB!*!(22rrrqi!!!!-!!!!23!!!!X!!!!3!!!!2J!!!'B!!!!5!!!!2`!!!!X !!!!@!!!!3!!!!!X!!!!B!!!!33!!!!X!!!!D!!!!V3!!!!)!!!!F!!!!3rrrrpF !!!!J!!,rrrra!!!!1!!!!'B!!J!!!$Rrrrr`!*!(UrrrrpN!N!Errrr5!!(rrrr p!!,rrrrb!!!!0`!!!'S!!J!!!$Errrra!*!("[rrrp)!!!"Q!!$rrrrc!!(rrrr b!!$rrrr4!!(rrrr`!!,rrrr3!!!!i`!!!!J!!J!!!13!!!!#!*!(j3!!!!)!!!! %!!,rrrr2!!!!k3!!!!J!!J!!!1S!!!!#!*!(k`!!!'F!!!!%!!,rrrr0!!!!rJ! !!!B!!J!!!2m!!!!+!*!'!3#3"'B!!!!#!!(rrrr1!!!!(J!!!!Errrr0!!,rrrr -!!!"!J!!!!3!!3!!!3-!!!!$!*!'rrrrb`!"rrrrq`!!rrrrbJ!"!!!!!`!#rrr rb!!!!5X!!!!)!!-!!!$r!!!!#J#3"J%!N!4Q!!!!!J!!!5`!!!!,!!!!"J!"rrr rb3!!!#!!!!!)rrrrb!!!rrrra`!"rrrrb!!"rrrraJ!!!!S!!!!"!!!!"`!"rrr ra3!!!!F!!!!"!!!!"`!#rrrra2q3"!!!!!J!!!!"rrrr``!!!!X!!!!"!!!!"`! #rrrr`[q3"!!!!!`!!!!#rrrr`Iq3"!!!!!J!!!!#rrrr`2q3"!!!!"3!!!!#rrr r[rq3"!!!!!J!!!!#rrrr[[q3"!!!!'J!!!1p,R4MF&pZEh4TCRN!"hJZGhK0B@0 6Ef0VCA4)B@jNE'9b8(*[B`!!*bj5C@&NH9pI-6*6Ef0VCA4%EfeKD@j'GJ!"hf9 fC@jd3fpNC3!$+R9cCA*%BA4K8(4b!!3ZFfpMD`!"[e4$8&0[BfYPG!!$Zb4*6N9 88fpMDf9d!!,-58j&9&0[BfYPG!!(pL46Ef0VCA3!"[P6Ef0VCA3!!"abC@C$Eh9 ZG!!(mepIGR"dFL3!!0phH(*PCQ0[EJ!(*AGiCACPER3!!qGhH'9fC@jdE@&cD`! 'FR0dFQ9KE3!'cR0dBA4eF`!$M@j[EQ*XEf0VD@jR!!IfFQ9MGN*eCJ!&QR*PBhC N!!,2Ff%!!q4cEf0VB@4NFPpTEJ!(!R0TEPpXC@i!!X"cD@jICQ&YD@aj!!"DFfP ZAh"[FR3!!!0cD@jIB@4NFJ!(E@PZAf&NC()!"RecAf&NC()!!,*cD@jIHQ9bE`! %l("PCA)!"V&cFh4KG'8!!-GKFhPZBf9bFJ!%3R0PE'B!"(a!1$)e!!40G9pdBh" IEQpdD@Cj!!'r8QpeG'PZC84PFf0bDA"dEh)!"bGREdeTH'9N6@pNC94bBA!!"d4 fCA*cD@pZ!!B)FQpeG'PZC84PFf0bDA"dEh*'E'&RF`!"9R*PFf9bGQ9N-3!"9h* PFf9bGQ9N-J!%Gh0PE'9MG'pb5@jQE`!%+R*[GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ9 5C@0[FQ4c!!8I8QpeG'PZC9*PBfpbC!!![h"bEf0*EQC[!!23590"!!6lFQpeG'P ZC8CXB@Gc!!D%F(*[Bd4PFf0bDA"dEh)!!0GcC@aPBh4[FJ!#FA4MF&pZEh4TCRN !![NZG'0`Af0[EQjPBh4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!*`F')!!`*"EQj [G'&dC@433J!%Md"ME'&cFb3h16K(990*9%03Af0`!!1ZG'0`!!Gc9%03D@p`BJ! 'mQCTE'`a-J!%ffP[3fpYF'aPG'P[EJ!!IfP[8Q9cG@ad!!(@D@p1B@eP8(4b!!& XD@p@8Q9Q6R9Y!!%@D@p$8Q9Q6R9Y!!DUBh0$Ef4P!!(rG'0`8h4bC@&Y!!I)Bh0 3BA*KE3!%8N"ME'&cFb3h1$G(990*9%03Af0`!!DCBh*PBA4P!!1k9%033h*PBA4 P8%)!"p"bBhC#G@CQ!!+8FQ0f3R9QCNaPEJ!#h@j[G'PQH9"bEf-!"("[F'9Z!!% I9%036h"PEP"#!!H-G@a`9'PYC@peG&CKE(9P!!"rG@a`9'PYC@peG%&MG'P[EJ! &T(CKE'PNDA4j4QaKCh-!!`eMEfeYB@jN9'PYC@peG&CKE(9P!!,DFQ9YEh4P5'p cG!!#[R*PE@pdC9"[FR3!!FjXEf0KE%K[Fh3!!E*XEf0KE&"[FR3!!1"dEh0'E'& RF`!#Ih"bC@0PC'9ZBf8!!(0NEfjd4R*KC`!#2h4TE@98EdaTGQ8!!1PcC@0eFQP dH3!"p@p`G'P[EN0ZG!!(*'p`G'P[ER-!")&cC@jN!!&39%038f9ZC&"#!!#fF(9 cD%CXB@F!!MaeFQGPER4'E'&R!!DjCQPXE'9b!!EmGf4c8(4b!!!5Ff9ZC%CbC@8 !!TTcC@jN6'9ZCh4S!!F*FQ9MC@PfC3!%Fe4$8&*PBf9TGQ933J!!K@eKFQY'E'& R!!BQFQ4c8(4b!!'FFQ4c6'9ZCh4S!!IVFf9MEfjN9'PYC90dB@e`!!ApBfa[Ff8 !!Z083e"$E'pcC9"#!!A$B@*[FR3!!TY83e""BQpbG&"#!!0I9%038h4KG(9c8%) !"PTeER9cC@3!"iGMEfjZC@0dD@pZ8h4KG'8!!U0cC@jN9fPZC'ph!!%*FQ0f9fP ZC'ph!!DaB@ed9@jKBfYPC%4KG'%!"@KKEA49ER*PB@4%BA4K!!#qFf9MGA*TG(P -CACPE&"dFJ!$MR0PEQ49EQ&MDf9N!!"6Ff9ZC%jPH(3!!)CMEfjRCA0dD@pZ9fP ZC'ph!!F+FQ0f6Q9iG!!%KR0bG(3!"f0XBA0d8P48!!C)Ff9ZC%eKH&0PCe0THQ8 !!hPMEfjZ8h4KG&"dFJ!#e94$8%0[EQjPBh4TEfj6G'&dF`!%4@4KG'&3Dh4c8Q0 fC!!%h@4KG'&3Dh4c8f9ZG!!'h@4KG'&3Dh4c8Q9cC@jd!!(fBRPdCA05BhCN!!5 RBRPdCA05BhCN4(9`!!1&BRPdCA05BhCN8'&cG>EQ4[G`!"LQ*jG'9c8f9ZG!! $S'*jG'9c8Q9cC@jd!!HFER9Y5'PcG'p#G@0VCA4c!!88Ff9ZG&0THQ9)DA0dE`! $[%KTFh4[3R9MDf9d!!9BGQ&XG@8!"a*MEh9ZG'9b!!I`G'eb8e*89!!$2(*dG&C KFQPKEQ0P!!BEG'eb8P42!!('Ff9ZC&4bD@9c!!$@FfpeFQ0S8A9PEQ0S8Q0fC!! #rfGXEf*KE%PZCQm!"k983e"(E'pLB@a*EQC[8%)!!a*dBh"3BA*KE9"dFJ!!*P4 $8&"KFQ&Y!!H3!(4MF&*dEd%!!3edBh"5G'p0D@i!!4CdBh"5G'p0BAJ!"ITdBh" 0BAK6C@G6DATP!!*GG'0`6@&i3fpZEJ!%DA4MF%eKH>EQ4[G`!$ih4MF&0dBA4 c8(4b!!#)9%038h4KG(-!"f4dBh"$EfjZ3A4dC@e`G(-!"G0dBh"$EfjZ6h"PEQ9 N!!GTG'0`3fpZEN&MBf9`G'9N!!8JG'0`3fpZEN0XEh0PC!!'2h4MF%0[EQj"BQp bG'9N!!1fG'0`6f0dCA4c5@i!"%0dBh"2Bh4PG(02GA3!"SGdBh"2Bh4PG(0*EN4 eF!!!-h4MF%pMG'9dFe*PG(*KER-!"(edBh"*ER"eG&"VG(-!"5"dBh"2GA4`GA4 3Dh4c!!)2G'0`4(9`8'YdF`!'pR4MF&*PG(*KER03Dh4c!!1QG'0`3d4#9'&LE'8 !!A4YBAK83e"$EfjZC@0dD@pZF`!$XR9NF!!(-&9%8'P[F')!!IjeC("6G(*PB@d !"#K!BfaKFh-N0cN`4e96594$8&pMF!!$cP9%8%0bC@&dC9"#!!*3C@jND@jR8'p bG!!"@99%8&0PEQ433J!!+A*PFf9bGQ9N!!"!BfKPBfY6G@d!"&a94&"5C@0PDAC P8%)!"mPdD@eP6h9d!!"UC'9cG%K[Fh3!!%jNCA0d8'pbG!!$Q@edG3!!qP9%8%e 899"#!!HCEA4e8fPkC3!%QN!i-c-!!VPeAh4MF&pMEfjZC@0dAf4[EQ8!!I"dBh" IBfpZEQ9MG&pNEfjPAep'8$%a3@jZEh4KG'9N8%)!!C!!,R4MF&pXDA0dC@jIC'p ZC9pI4P!a-8&ZEQpdBA4PC&"#!!5r3$Jd1!!"i(9IG'0`AfaTFh4PEPpNEfjP!!! MG'0`AfaTFh4PEPpNEfjPAep'8$%a3@jZEh4KG'9N8%)!"d%ZG'0`Ah*PBhCIC'p ZC9pI4P!a-8&ZEQpdBA4PC&"#!!EdFQ9KC'PZ!!6I3$Je1!!('h9IG'0`Ah*PBhC IC'pZC3!'!R4MF&pbC@0fAf4[EQ9IAdC3-6&"EQj[G'&dC@433J!(45jdBh"IFf9 ZC&pNEfjPAep'8$%a3@jZEh4KG'9N8%)!""j!1$Fh!!FlG9pdBh"IFf9ZC&pNEfj P!!DmG'0`Ah0PEQ4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!0b,PpIBh4IAcP83e" 6Ef0VCA4'GJ!&d5jIAf0dAema-%P14946Ef0VCA4'GJ!!dPpIGR4IAcP83e"6Ef0 VCA3!!RXZAepZGepI4P9X!!--58j&9&0[BfYPG(-!"8iZ4(*TGQ9bAema0NP1494 6Ef0VCA4%EfeKD@j'GJ!(e5j1CAG3G()!!kdZ4e9659pPFR*[FJ!'Abj33N0[ER4 bEfa6H@jM!!Fr,QePEA0PG!!%@h4SDA-!"$p!1$Jh!!3#AepNG&pI-6"*6N988fp MDf9d4RB!"%"!1$Ji!!5@,PpIBh4IAcP83e"6Ef0VCA4'9@`!"S)ZAepMG&pI-6" *6N988fpMDf9d4P9X!!)a,NGPG%0eFR*PER43FQpMCA0c!!81,N&&3h*PBA4P4'9 cB`!$cLj"480bC@&dC8&`F'aP4ACPER3!"RXZ3893GA43BA*KE9"dFJ!(`5j"490 PEQ3!"MJZ389%DA0`Eh0P4'9cB`!%Dbj(CA433PpI194$8&0[BfYPG%Cf!!2j8&0 1!!1l8(*[Bf9cFe0PFQPKE%jeE@*PFJ!&M'KTCfK-EfjR6fC38di!"(PXEhG-Efj R6fC38di!"hGdD'93FQpM!!HcG'KP9(P`C3!#UA4SC8&NC(*PFh-!"Pp"484PFf- !"MKNCA0MFQP`G'pb9(P`C3!#3@4KG'&)B@jNE'8!"eGYH9*PF'aj!!"XG'KP4AC PER3!"&K!1$N`!!4C3$Jj-3!&9bjIAf0dAemj9%038fpMDf9d4P!j9%038fpMDf9 d!!4E3$Jj-`!%A%!i163!!kJZAepNG&pI194$8&0[BfYPG%Cf!!"a4e96590`D@i !"I&PFR*ZE`!$@Lj(990*3fKPBfY"E'&bE9pI4RB!!j3ZAep`G(*ICfaeC3!(f#j 33N0[ER4bEfa"FhPZB`!$##j%DA0`Eh0P8(4b!!*2,PpIC'aIAdC3GJ!&"#jIAf4 dAema-%P14946Ef0VCA4'GJ!"e("KFh0MEh9ZG!!!6A*NFf&bFQ&j!!!cFQ4c4@j dFRN!"[CXC@jRG'J!!m*`G()!!CKcBACP4A*bEQm!!XC&FR*ZEe0KGQ9b!!0TCP0 KGQ9N4A*bEQm!"2a!16Ba!!6`AepNG&pI-6"&FR*ZEe0KGQ9b4RB!"2e!16Bb!!@ (,PpIC(4IAc%`4A*bEQp6BACPFNCf!!3"3$Nf0J!%$Lj(CA433PpI-6C*6N988fp MDf9d4'pYB@PZ4RB!"!4!16Bj!!"C,N&fB@PXB@*XC9pI194$8&0[BfYPG%Cf!!3 I3$Nh0!!!R5jMEfjZC@0dAemj9%038fpMDf9d4P"fD3!#@#jRCA4SEh0dD@3!"X3 Z9%03Af9bFQpbAep'D3!(Gf&NC(*PFh-!"qaKC'4bE'9Z!!4!B@4NFJ!$0@9bFJ! &R%!a-$%j!!@c3$%`-M!!"6mZE'PcG'9ZAemj9%038fpMDf9d4QN!"44!-6!e-3! &&8!a-$8b!!!-,Q&MBf9`G&pI194$8&0[BfYPG%C3GP"T!!GF,NG98dPICA*bEh* IEQPX!!GP,QePE@0`H3!%-fCbEfd!"f9QFQpYE'9Z!!@@3$%`16)!!9aIAf4XAep '8(B!"CG!-6!j-`!'05jbC@0fCR*[E9pI194$8&0[BfYPG%C3GQPT8(C3D3!'!f* eCQCPFJ!'pf*eCQaPEJ!"6Q4KG'&KGQ&TE!!&'8!a-63b!!2-,R0PEQ4dEepI194 $8&0[BfYPG%C3GQPT8(CT!!8&BfpeER3!"3&QE'&RF`!#rA4[!!!PGf4cBA*bBAN !"j&YD@jTGf4c!!")G'9bE@PZGA-!"T!!Gf4cER9Y!!H,G'KTFhGNF`!(YA4[Gh* TG'8!"G"LHA4PF`!&fd!a-M)`!!9N,R0PE'9MG&pI194$8&0[BfYPG%C39@039@0 39@-!"3*!-6)c0`!(2'0KEP*PB@3!!'CMB@jAFQPdC3!(S@G[Ef4TCA-!"30!-6) c1!!&"%!a-M-j!!8F3$%b0$%!"rpIAe*89%PIAcC6Ef0VCA3!"4e!-6)d-J!&(N! a-M3c!!3'Aep59&4*Aema-%P14946Ef0VCA3!"4Y!-6)d-!!#APpI8P4859pI194 $8&0[BfYPG!!$Gh"[Fh4IFf9XC@0dAemf8fpMDf9d4P9M9@09B`!#E("bC9pcC@a PBh4IAcC6Ef0VCA4'9@09Be9M!!&#DA0KG(4jAemf8fpMDf9d4RB!"(eQG(*eEQ0 KG'9IAcC6Ef0VCA4'E!!"B'acC@9VAemf8fpMDf9d4QaT!!8[CR0dBA4IAcC6Ef0 VCA4'8$4cG'&d!!&,Ff9dFfpMDfp`G&pI0P0[BfYPG%CTD9"fD3!#b'GPG(0[BfY [F(4IAcC6Ef0VCA4'D@P3GP"T!!)pGh*TG'9IAcC6Ef0VCA4'8(CT!!'QFQ9KC&p I0P0[BfYPG%C3GQN!!)9cD(9dC'phEPpI-6"*6N988fpMDf9d4QN!!1TTEf0dE&p I-6"*6N988fpMDf9d4P9T8(B!"e&QBfjdE&pI-6"*6N988fpMDf9d4P9TD3!'9@G PG("PCA*ZB@ePAema-%P14946Ef0VCA4'8(C3D3!'E'GPG(0[BfYZB@ePAema-%P 14946Ef0VCA4'8(C3D3!'B@*TEQ4IAc%`58j&9&0[BfYPG%C3GQN!"#acC@aPBh4 IAcP83e"6Ef0VCA4'8&9M8&9M8&9M!!*BFf9ZC(4[Aemj9%038fpMDf9d4P"fD@P 3GQN!"8PbC@0fCR*[E9pI194$8&0[BfYPG%C3GQPT8(C3D3!(rQ&MBf9`G&pI194 $8&0[BfYPG%C3GP"T!!6iE'PcG'9ZAemj9%038fpMDf9d4QN!"`TMEfjZC@0dAem j9%038fpMDf9d4P"fD3!(Kd&fB@PXB@*XC9pI194$8&0[BfYPG%Cf!!+$AepNG&p I194$8&0[BfYPG%Cf!!0q9%p$!!1X4f9d8%*IAcP83e"6Ef0VCA4'GJ!%ZepIBh4 IAcP83e"6Ef0VCA4'8$P83e"6Ef0VCA3!!lPIAf0dAemj9%038fpMDf9d4P9X!!+ ,AepMG&pI194$8&0[BfYPG%Cf!!"36eG5!*!''H3!!#kf!!!"+J!!'P!!!"4Q!!! ,*!#3"J*'!!!!&!#33%9R!!"&D`!%!!!!!3!!!-J!!!!J!!!%i(`)!UD6iIrmNm( rq*1Krr53!!%!#*3Krl!lS`!!Jq-!CM[G!!#S(3!3,!!!!%##!"L!(J!SN!!I!"5 J(J!XN!!I!"K)!!!81!!!!*!!(`!81!!!!*!!(`!BU"i!%*!!(`!q1!!!%*JI!#` i!!!#Q"m!,B!H!#+3!"m!-+!H!#D`(`!ZJ"m!"LJ!!!""JJ!JU"m!#L`!!!""JJ! 8J(m!"ULI!!T)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1QJq(rr)2"rrL$SIr d6S!!)%9e!*!&!J!!!*a&G3#3"3-!!!#N4@i-"!!!!,8!!!!-J!#3#i!!!-JB!!! !4AF!N!8"!*!%4@m&"!!!!,B!!!!Jrrrrq3!!"bLUrJF!N!c"!!%!"!#3$%9f#J# 3",F!!!!84@S!"!!!!,J!!!#%!!!!KJ!!"q"m#!+QNq(rr*2"rrL6SIrdN!!"!!L 8)Iq`1k-!!)2M!'DS(3!3J(d!+,!$!!Bi!!!!J(d!+*!!!`!#J"m!"LJ!!!""JJ! JU"m!#L`!!!""JJ!8J(m!"ULI!!T)!!!"B!!!!%J!!!&J!!!!J!%!@$JK!&"m#!1 QJq(rr)2"rrL$SIrd6S!!)%9e!*!&!J!!!&K&G3#3"3-!!!"J4@i-"!!!!,N!!!! -J!#3#i!!!)3B!!!!4AF!N!@i!*!%4@m&"!!!!,S!!!!Jrrrrq3!!#2UUrJF!N!c "!!%!"!#3$%9f#J#3",X!!!!84@X!"!!!!,`!!!"%!!!!e!!!#H*m#!+QNq(rr*! !!3!)P#(r`$[M!!")!!!"B!!!!)!#!!#3!"m!!MJ!!!#B(`!m1(m!!)!"!%Ji)3" !I!J$TS2Krra1J!!J4A8!N!@p!!!!&%9d!`#3",i!!!!F4@i-"!!!!-!!!!!-J!# 3#i!!!%3)!!!!4AF!N!@m!*!%4@X!"!!!!-%!!!$m!!!!pJ!!#Ljm#!+QNq(rr*2 "rrL6SIrdN!!"!!L8)Iq`1q-!!*!!J3"XJ)%!E%J!!!&J!!!!J!)!!*!!(`!#1(m !!%J!!!&J!!!!1m-!!)!#!!#3!!-!$$J!!"@`!`!D1!!!!,!$!#!i!!!!X!-!,NJ !!!&J!!!!1k-!!(qJ"c9"JJ!3Ik-(0%J!!!&J!!!!U"i!%#`!!!"!JJ!BJ"i!+*! !(`!8S"i!,*!!(`!B5!!!&$J!!!#3!"m!&$J!!!#3!"m!'+JH!"#3!"m!2MJ!!"# B(`!X1!!!!TJI!#f!(J!LN!!I!$#J(J!QX"m!,MKr!!#!!3"B1#%!8(`)!kD$iIr mJm(rq)1Krr41J!!J4A8!N!A#!!!!*%9d!`#3",i!!!!X4A8!N!A$!!!!1%9d!`# 3",B!!!"%4A8!N!A%!!!!C%9e!*!&a3!!!(a&EJd#!!!!a`!!!"D!!*!('!!!2!# !!!S!!)D!!"m!N!T&GJS-!!!!b!!!!"*&EJ`%!!!!b3!!!!b!!*!1r!#3"%9h!*! &`3#3"%9h$3#3"-F!!!!)4@X!"!!!!-S!!!#X!!!"HJ!!$A9m#!+QNq(rr*2"rrL 3!!%!#*3Krm"mIaYjX)%!AN'#!(5!!J!!N!!I!!+)(`!m+!!!!%'#!$JiI`!!5!! !!@!!!!!l``!!1!!!',!$!"T)!!!"B!!!!(aJ"c9!JJ!3J(i!)%J!!!&J!!!!1(m !!$L!!!")!!!"B!!!!+J"!&iX!!!!3)%!%$Kr!!")!!!"B!!!!$Kr!!#!!3")1#% !3(`)!kD$iIrmJm(rq%k!!#"&G!-!N!5q!!!!)%9e!*!&``!!!$K&G3#3"F3!!!" -4A8!N!A,!!!!B%9e!*!&c!!!!("&G3#3"Fd!!!#)4@i-"!!!!-i!!!!-J!#3#i! !!+`3!!!!4AF!N!A+!*!%4@X!"!!!!--!!!"J!!!"`J!!$P9m#!+QNq(rr*2"rrL 3!!%!#*3Krm!l``!!J')!!%J!!!&J!!!!1q-!!)"L!!")!!!"B!!!!,"r!"L!(J! 1N!!I!"b6h`"Q1(m!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9d!`#3"-m!!!! B4A8!N!A3!!!!(%9d!`#3"-m!!!!S4A8!N!A4!!!!,%9Z$!3!!!$5!!!!$)!!N!Z !!!"J%!!!!%9h!*!&``#3"%9V!!3!!!$6!!!!(!!!!J)!!!mEJ!-!2L`!!!&!JJ! -1'!!!%k!!##!B`!B6S!!)%9V!!3!!!$8!!!!e!!!!L3!!!pcI!J#TT2Krrb6`Ir iNk(rp*!!!3!)P#(rX$[$!!")!!!"1q-!!$J!!"5`!`!D1'"!!%J!!!&J!!!!N!" r!#!i!%!!N!!I!#3i!!!!N!!I!#LJ(J!HX"m!,$Kr!!")!!!"B!!!!$ZM!!"rS!F e3B)!&(qM"c4)!!!"B!!!!%J!!%#!(`!FN!!H!!kJ(`!XX"i!(MJ!!!'B(J!m1!! !!*!!(J!B1!!!!*!!(J!81!!!!C!!(J!q1(i!!%J!!!&J!!!!J!%!@$JK!&"m#!1 QJq(rr)2"rrL$SIrd6S!!)%9e!*!&``!!!"a&G3#3"G8!!!!`4A8!N!A%!!!!@%9 e!*!&a3!!!("&G3#3"GB!!!#`4@i-"!!!!0F!!!!-J!#3#i!!!03B!!!!4AF!N!A 8!*!%4@X!"!!!!0J!!!#-!!!#NJ!!%E9m#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq `1m-!!%J!!!%i!!!!N!!$!!`i!!!@X!-!'S!H!"53!!-!+$J!!!#3!"i!&$J!!!# 3!"i!'%J!!!&J!!!!1k-!!(qJ"c9"JJ!8Ik-(0%J!!!&J!!!!5!!!#$KJ!!#!!3" B1#%!8(`)!kD$iIrmJm(rq)1Krr41J!!J4A8!N!A$!!!!(%9e!*!&f3!!!%K&G3# 3"F8!!!"J4@i-"!!!!0S!!!!-J!#3#i!!!)`B!!!!4AF!N!AB!*!%4@X!"!!!!0B !!!#3!!!!![!!!"-pI!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rX$[$!!")!!!"J!) !!*!!!`!-1!!!&E!$!"Si!!!!X!-!)$J!!!#`!`!Z1!!!!C!!(J!q5!!!!@!!!!! lS`!!Ik!(08'#!"KrS`FdN!"q!$j)!!!"B!!!!%J!!!JiB!!!J!%!@$JK!&"m#!1 QJq(rr)2"rrL$SIrd6S!!)%9e!*!&``!!!"a&G!-!N!5f!!!!)%9e!*!&f3!!!%K &G3#3"F8!!!"N4@i-"!!!!0X!!!!-J!#3#i!!!*!!'!!!!%9h!*!&eJ#3"%9V!!3 !!!$F!!!!C!!!!di!!"@JI!J#TT2Krrb3!!%!#*3Krm!li`!!N!#"!&b3!+%!B)# "!&b!S3"J5!!!!@!!!!!X!`!!3))!&$Kr!!")!!!",!-!!%'#!!`iB2rr5!!!#$K J!!#!!3")1#%!3(`)!kD$iIrm6S!!)%9e!*!&h3!!!#4&G3#3"G3!!!!i4@i-"!! !!1!!!!!-J!#3#i!!!'3)!!!!4AF!N!AF!*!%4@X!"!!!!1%!!!"S!!!$T!!!&h& m#!+QNq(rr*!!!3!)P#(r`$[M!!#3!)%!A*!!S3"JL!-!2#J!!!"!JJ!F1(m!!%J !!!%X!`!!3B)!$$KJrrp)!!!B1(m!!)#"!&b!S3"J5!!!!@!!!!#!!3")1#%!3(` )!kD$iIrm6S!!)%9e!*!&e!!!!#a&G3#3"H)!!!"-4@i-"!!!!13!!!!-J!#3#i! !!'J)!!!!4AF!N!AK!*!%4@X!"!!!!18!!!$S!!!$qJ!!'aam#!+QNq(rr*2"rrL 3!!%!#*3Krm!li`!!N!#"!&b3!+%!B)2"!&b!!3"J,!!!%%'#!"3iB!!@5!!!!@! !!!")!!#8L"i!!5J!!!*"JJ!81'!!,dJ!!!&J!!!!5!!!H)JI!$`S!!!!3))!($K r!!")!!!",!-!!%'#!$!iB2rr5!!!9)!I!"3S!!!!3B)!($Kr!!")!!!",!-!!%' #!!`iB2rr5!!!-$J!!"#B(`!XJ"i!"*!!(`!`S"i!!V!I!#ii!!!#Q"m!,6J!!!@ B(`!m1'!!!)!"!%Ji)3"!I!J$TS2Krrb$`Iri6S!!)%9e!*!&jJ!!!$4&G3#3"HB !!!"34A8!N!A8!!!!E%9e!*!&f!!!!*!!4@i-"!!!!1N!!!!-J!#3#i!!!1J3!!! !4AF!N!AP!*!%4@X!"!!!!1S!!!&`!!!%PJ!!)ICm#!+Q[f(rl*!!!3!)P#(rX$[ M!!#3!)%!E$ZP!!!lC`!!1iJ!!)2#!!#)!`!m+!!!!%##!"`iI`!!5!!!!5`$!!" "JJ!-1'$rrdJ!!45)(`!6+!!!!%'#!##!(`!q,!!!!8##!"3iB!!,5!!!!@!!!!" )!!$X5!!!!@!!!!!X!`!!3))!,)!H!!!S!!!!3B)!-$KJ!!BiJ!!!JCi!!%J!!!& J!!!!,!-!!%'#!"3iB!!%5!!!!@!!!!")!!#NJ"m!2L`!!!&"J[q`J"m!2L`!!!" "JJ!8J(m!2NJ!!!&J!!!!5!!!I)!I!"Km(3!!3)!!#%J!!!L$[`!BJ(m!&)#"!'` i[3!!5!!!!@!!!!!S'`!!3B)!1)!F!!!X!!!33B!!,)"r!#b!(`!`N!"l!!#3!"X !")"r!$5!(`!iN!"l!!L3!"X!$$J!!"#3!"`!!$Kr!!")!!!"1(m!!%J!!!%iI3! !J!%!@$JK!&"m#!1QZf(rl%k!!#"&G!-!N!6V!!!!*%9e!*!&e!!!!$K&G3#3"HB !!!"S4A8!N!AX!!!!G%9e!*!&l3!!!*a&G3#3"HB!!!#`4A8!N!A&!!!!f%9e!*! &lJ!!!34&G3#3"GJ!!!&-4A8!N!A@!!!"9%9Z$!3!!!$c!!!!$)!!N!Z!!!&`+!! !!%9h!*!&kJ#3"%9V!!3!!!$d!!!"Z!!!"9J!!#STI!J#TVp"rqL3!!%!#*3Krk! lB`!!N!#"!(`la3!!1iF!!)2L!!#)!`!m+!!!!%##!"`iH`!!5!!!!5`$!!""JJ! -1'$rrdJ!!@!mB!!"1'2rih`H'!"!J3!81'!!+%J!!!&J!!!!5!!"3$J!!!#`!3! qXm%!1)!"!(b3!!%!1LJF!!"!JJ!SL"X!,#J!!!""JJ!-1jX!,%J!!"3iB!""5!! !!@!!!!")!!%!1(X!!%J!!!%lS`!!J!)!!*!!!`!-1!!!&l!$!"U!I!!%2!1"!#J !!!&!JJ!35!!!!@!!!!")!!!)J(`!"*!!I3!LS"`!!V!G!#Bi!3!iN!!G!#Ji!!! "Q"d!,$J!!!#`(3!Z1(d!!%J!!!&J!!!!1d-!!(p!"c9"JJ!8Id-(0%J!!!&J!!! !5!!!H%J!!!&J!!!!,!-!!%##!#b!(`!!+!!!!%'#!$!iB!!(1*i!!)'I!!")!!! "B!!!!#`$!!""JJ!81'!!"%J!!!&J!!!!5!!!-)!"!$SS!!!!3),rX+J"!$iX!!! !3)!!&+KK!$j)!!!"B!!!!%J!!!JiIJ!!J!%!D$JK!'"m#!1QZd(rk%k!!#"&G!- !N!6V!!!!)%9e!*!&e!!!!$4&G3#3"HB!!!"F4A8!N!AQ!!!!R%9e!*!&``!!!+a &G!-!N!5k!!!!Y%9e!*!&p3!!!04&G3#3"GN!!!%-4A8!N!A&!!!"*%9e!*!&l!! !!6"&G3#3"Hd!!!&B4A8!N!AQ!!!"E%9e!*!&a3!!!C4&EJ`%!!!!r3!!!!b!!*! ,J!!"Z$!!!!"&G`#3"I3!N!4&D`!%!!!!rJ!!!+3!!!C'!!![$h`)!UD6iIrmNm( rq*1Krr56JIr`N!!"!!L8)Iq`1i-!!(bG)hNla3!!1q!!!%##!!`S(J!!3B)!')J F!$`S!!!!3))!$$Km!!")!!!"+"d!!%'#!"b!(!!q,!!!!8'#!"!i!!!"Q"d!!$[ r!!%S(J!!3B)!%$J!!!'B(J!!1rm!!6Kr!!#!!3"B1#%!8(`)!kD$iIrmJm(rq)1 Krr5$JIr`6S!!)%9e!*!&e!!!!%K&EJ`%!!!"!J!!!!b!!*!,J!!!T#!!!!"&G`# 3"Ii!N!4&EJ8"!!!"!`!!!!Vrrrr1!!![$e9%8&0[BfYPG!$DD%9Z"3%!!!%%!!! !"rrrrmd!!#m28fpMDf9d!!"&EJ8%!!!""3!!!!Mrrrr-!!![$`#3#%9f"3!!!!% %!*!%4@i&!3!!!3B!!!!,rrrrb`!!,`p*6N988fpMDf9d!!"&EJ8%!!!""`!!!!c rrrr+!!![$`#3$%9f"3!!!!%&!*!%4@i&"!!!!3J!!!!)rrrrb3!!,`m!N!K&GJ8 !!!!""J#3"%9f"3!!!!%(!!!!"%9Z"33!!!%*!!!!&2rrrmJ!!#m2!*!84AB&!!! !!3J!!!!)4AB&!!!!!38!N!4&EJ8%!!!"#J!!!!Mrrrr(!!![$`#3#%9f"3!!!!% $!*!%4AB&!!!!!3N!!!!%4@m&"!!!!,i!!!"SrrrraJ!!,`m!N'K&GJ8!!!!"#J# 3"%9f#J!!!!%,!!!!A%9f#J!!!!%-!!!!9%9f#J!!!!%0!!!!6%9f#J!!!!%1!!! !5%9f#J!!!!%2!!!!4%9f#J!!!!%3!!!!3%9f#J!!!!%4!!!!0%9f#J!!!!%5!!! !-%9f#J!!!!%6!!!!(%9f#J!!!!%8!!!!'%9f#J!!!!%9!!!!&%9f#J!!!!%@!!! !%%9f#J!!!!%A!!!!8%9f#J!!!!%B!!!!2%9f#J!!!!%C!!!!1%9f#J!!!!%D!!! !,%9f#J!!!!%E!!!!@%9f#J!!!!%F!!!!*%9f#J!!!!%G!!!!)%9f#J!!!!%H!!! !$%9f#J!!!!%I!!!!+%9f#J!!!!%J!!!!#%9f#J!!!!%K!!!!C%9f#J!!!!%L!!! !B%9[#J3!!!%E!!!!#)!!N!p&GJ#3"Ii!N!4&GJm!!!!")`!!!!4&E`S%!!!"(!! !!!L!!*!24AB!N!Ad!*!%4AB2!!!!!5-!!!!%4@m+"!!!!4d!!!!)J!#3$d9f!*! &kJ#3"%9f$`!!!!%M!!!!"%9[#J3!!!%H!!!!#)!!N!p&GJ#3"H8!N!4&GJm!!!! ")`!!!!4&E`S%!!!"(`!!!!L!!*!24AB!N!AK!*!%4AB2!!!!!5-!!!!%4@m+"!! !!5!!!!!)J!#3$d9f!*!&h!#3"%9f$`!!!!%M!!!!"%9[#J3!!!%N!!!!#)!!N!p &GJ#3"GB!N!4&GJm!!!!")`!!!!4&E`S%!!!"*3!!!!L!!*!24AB!N!AB!*!%4AB 2!!!!!5-!!!!%4@m+"!!!!5B!!!!)J!#3$d9f!*!&e!#3"%9f$`!!!!%M!!!!"%9 [#J3!!!%K!!!!#)!!N!p&GJ#3"G-!N!4&GJm!!!!")`!!!!4&E`S%!!!"*`!!!!L !!*!24AB!N!A$!*!%4AB2!!!!!5-!!!!%4@m+"!!!!5)!!!!)J!#3$d9f!*!&bJ# 3"%9f$`!!!!%M!!!!"%9[#J3!!!%S!!!!#)!!N!p&GJ#3"F%!N!4&GJm!!!!")`! !!!4&E`S%!!!"+3!!!!L!!*!24AB!N!@m!*!%4AB2!!!!!5-!!!!%4@i+"!!!!,X !!!!)J!#3$d9f!*!&Z!#3"%9f$`!!!!%M!!!!"%9[#J3!!!#h!!!!#)!!N!p&GJ# 3"3%!N!4&GJm!!!!")`!!!!4&E`-%!!!!ZJ!!!!5!!*!,4AB&!*!%ZJ#3"%9[!`3 !!!$V!!!!")!!N!Y&GJ8!N!6V!*!%4@m$"!!!!-m!!!!%J!#3#d9f"3#3"-m!N!4 &E`-%!!!!YJ!!!!5!!*!,4AB&!*!%YJ#3"%9[!`3!!!#q!!!!")!!N!Y&GJ8!N!5 q!*!%4@m2"!!!!5-!N!5!!*!(4@J!!&0C68J!!!ED!!!!1J!!!!B!N"J&#J!!!$! !!!9c!!!!4!!!"Gm!!!"8!!!'$!!!!)J!!!F%!!!!V!!!"a2rN!3!!!F6!!-!!!! %rj!%!3#3""d!!!#+rrrre!#3"4i!!!#Drrrrd`#3"4m!N!J)#`!!!%3!!!M@!!! !D!!!#1ArN!3!!!MP!!-!!!!%rj!%!3#3""d!!!#+rrrre!#3"4i!!!#Drrrrd`# 3"4m!!3#3"JRkrj!%!!!++`!"!!!![rrrrp-"!*!%(`!"!*!'#PB!!!!i!!!+M!! !!'3!!![*!!!!H!!!#r3!!!#%!!!-"`!!!*!!!!!-(J!!!+3!!!am!!!!Y!!!$*h rN!3!!!eb!!3!!!#rrrrrd`%!N!3I!!!!S`!!!!)"!`!!!'`!!!!%rrrre!#3"4i !!!$'!!!!#`#3"4d!!3#3"Jf0!!!!0!!!$G)!!!"-!!!1"!!!!&`!!!iUrj!%!!! 18J!#!!!![rrrrp-"!*!%(`!!!!6rrrr8!*!&(J!"!*!'$R)!!!!F!!!1G3!!!#` !!!kIrj!%!!!2'!!#!!!![rrrrp-"!*!%(J!!!!6rN!3!N!8I!!%!N!B23rq3"!! !$h!!!3!!!,rrrrr6!3#3"!-!!3#3"Jq1!!!!(!!!$km!!!!`!!!2j`!!!&J!!"# f!!!!E!!!%1%!!!"m!!!3r!!!!,!!!"'Hrj!%!!!4XJ!$!!!![rrrrp-"!*!%(J! !!!6rrrr8!*!&(`!!!-B!!!!,!*!&(3!"!*!'%G8!!!!F!!!51!!!!%J!!",P!!! !A!!!%a%!!!"X!!!6-2q3"!!!%cS!!`!!!,rrrrr6!3#3""i!!!!%rrrre!#3"4m !!!$'!!!!#`#3"4d!!3#3"K0B!!!!(!!!%hN!!!")!!!8JJ!!!&`!!"5Z!!!!F!! !&02rN!3!!"6G!!-!!!#rrrrrd`%!N!3H!!!!"2rrrp3!N!8I!!!!aJ!!!!X!N!8 G!!%!N!B9cJ!!!#3!!"A4!!!!4!!!&JF!!!"-!!!@'[q3"!!!&L3!!`!!!,rrrrr 6!3#3""m!!!$H!!!!C!%$!!!!A!!!!0m!!!!$!3-!!!"J!!%!N!BATJ!!!#J!!"I 2!!!!1!!!&q-!!!"!!!!Am2q3"!!!'"m!!`!!!,rrrrr6!3#3""m!!!$M!!!!C!% $!!!!A!!!!0rrrrr4!3-!!!"J!!%!N!BE8!!!!$!!!"[&!!!!3!!!'q)!!!"-!!! F"3!!!&`!!"aB!!!!D!!!()!!!!"i!!!FP!!!!)!!!"bR!!!!M!!!(,B!!!#F!!! Fc`!!!+3!!"cdrj!%!!!Ga3!%!!!![rrrrp-"!*!%(`!!!1F!!!"N!3-!!!"F!!! !k!!!!!-"!`!!!'!!!!$Hrrrrd!#3"4i!!3#3"L*+!!!!0!!!)U)!!!"%!!!LYJ! !!%`!!#,Z!!!!C!!!)a)!!!"d!!!M@3!!!-J!!#0G!!!!e!!!)h3!!!$N!!!Mf!! !!2J!!#2f!!!"$!!!*"`!!!%J!!!N@3!!!8J!!#82!!!"9!!!*5,rN!3!!#9"!!8 !!!#rrrrrd`%!N!3I!!!!l`!!!'3"!`!!!'`!!!$`!!!!!`%!N!3G!!!!m3!!!'3 "!*!%'`!!!2,rrrr4!3#3""`!!3#3"LTZ!!!!-!!!+[F!!!"!!!!V#`!!!%J!!#X C!!!!@!!!+c3!!!"S!!!V93!!!)3!!#[a!!!!N!!!!#`'!!!!Q!!!,"`!!!#S!!! X3!!!!3`!!#hE!!!")!!!,JF!!!%`!!!ZY`!!!B3!!#km!!!"N!!!!#l9!!!"S!! !,[lrN!3!!#m-!!F!!!#rrrrrd`%!N!3E!!!!l`!!!'3"!`!!!(`!!!$f!!!!!`% !N!3H!!!!p`!!!'3"!*!%(!!!!!6rrrr8!*!&(3!!!-B!!!!,!*!&'J!!!2Mrrrr 2!!-!!!!i!!%!N!B[9`!!!$!!!#pa!!!!1!!!,i`!!!"%!!![X`!!!%`!!#r'!!! !9!!!,p8!!!"J!!![l3!!!'`!!$!8!!!!G!!!-#B!!!#!!!!`5rq3"!!!-&X!"!! !!,rrrrr6!3#3""`!!!$r!!!!D!%!N!3G!!!"!*!%D!%!N!3H!!!"!3!!!!-!N!8 I!!(rrrrl!!!!$!!!!!%!!!!(!!$rrrrf!!%!!!"U!!,rrrrh!!!!&!!!!"3!"`! !!"8!!!!#!*!($`!!!!F!!!!%!!!!&J!!!!F!!!!&!!!!&`!!!!S!!!!'!!!!'2r rrrB!!!!)!!!!%!!!!!)!!!!-!!!!'3!!!!)!!!!3!!(rrrri!!!!&!!!!"6rrrr h!!,rrrrj!!!!#`!!!#!!#!!!!!`!!!!+!*!($3!!!!F!!!!#!!!!$J!!!!B!!!! $!!!!$`!!!!)!!!!%!!!!%!!!!!B!!!!)!!!!%3!!!!B!!!!*!!!!%J!!!!S!!!! +!!!!%rrrrrJ!!!!-!!$rrrrk!!(rrrrj!!,rrrrd!!!!)`!!!"!!"!!!!#3!!!" Q!*!(*3!!!!)!!!!%!!!!*[rrrrS!!!!)!!!!*`!!!'B!!!!-!!(rrrrb!!!!+!! !!!%!!!!(!!,rrrrc!!!!+3!!!%)!%!!!!#S!!!!(!*!(+`!!!!F!!!!"!!!!,!! !!!F!!!!#!!!!,3!!!!F!!!!$!!!!,J!!!!)!!!!%!!!!,`!!!!S!!!!)!!!!-!! !!!)!!!!+!!!!-3!!!!S!!!!1!!!!-J!!!!F!!!!3!!!!-`!!!!F!!!!4!!!!0!! !!!B!!!!5!!!!03!!!!F!!!!6!!!!0J!!!!F!!!!8!!!!0`!!!!F!!!!9!!!!12r rrr)!!!!@!!!!*`!!!'B!!!!q!!,rrrra!!!!1J!!!"3!#J!!!#S!!!!(!*!(+`! !!!F!!!!"!!!!,!!!!!F!!!!#!!!!1`!!!!B!!!!$!!!!2!!!!!B!!!!%!!!!23! !!!F!!!!&!!!!2J!!!'B!!!!'!!!!2`!!!!)!!!!+!!!!3!!!!!S!!!!1!!!!*`! !!'B!!!!3!!,rrrr`!!!!3J!!!"B!#J!!!#d!!!!(!*!(3`!!!!B!!!!"!!!!2!! !!!B!!!!#!!!!23!!!!F!!!!$!!!!*!!!!'B!!!!%!!!!*3!!!!S!!!!)!!!!4!! !!'B!!!!+!!!!43!!!!S!!!!1!!!!4J!!!!S!!!!3!!!!*`!!!'B!!!!5!!,rrrr [!!!!5!!!!!J!"3!!!#S!!!!(!*!(+`!!!!F!!!!"!!!!,!!!!!F!!!!#!!!!23! !!!F!!!!$!!!!*`!!!'B!!!!%!!,rrrrZ!!!!5J!!!!3!!3!!!#F!!!"Q!*!&![r rrqN!!!"R!!!!"J!#!!!!D!!!!!S!N!GT!!!!!J!!!!)!!IrrrqS!!!!U!!!!"[r rrqN!![rrrqX!!!"F!!!!9J!3!!!!A3!!!!)!N!GH!!!!!J!!!!3!!!"I!!!!!J! !!!J!!!"J!!!!!J!!!!`!!!"K!!!!!J!!!"!!!!"L!!!!!J!!!"3!!!"M!!!!!J! !!"J!!!"N!!!!!J!!!"`!!!"P!!!!#J!!!#!!!!"QrrrrkJ!!!#)!!!"C!!!!#J! !!%`!!!"U!!!!#J!!!%i!!!"V!!!!#J!!!&!!!!"X!!!!#J!!!&)!!!"Y!!!!"`! !!&3!!!"Z!!!!"`!!!&8!!2rrrq`!!IrrrqX!![rrrqd!!!"-!!!!4J!C!!!!+J! !!!F!N!FV!!!!"`!!!!%!!!"0!!!!!`!!!!)!!!!Z!!!!!J!!!!B!!!![!!!!#J! !!!S!!!!`!!!!!J!!!!`!!!!a!!!!#J!!!"!!!!!b!!!!"`!!!")!!!!c!!!!"`! !!"-!!!"1!!!!"`!!!"3!!!!p!!!!"`!!!"8!!!"2!!!!#J!!!"B!!!"3!!!!#J! !!"J!!!"4!!!!#J!!!"S!!!"5!!!!#J!!!"`!!!"6!!!!CJ!!!"i!!!"8!!!!!J! !!#)!!!"9!!!!!J!!!#B!!!"@!!!!!J!!!#S!!!"A!!!!!J!!!#i!!!"B!!!!!J! !!$)!!!"C!!!!!J!!!$B!!!"D!!!!!J!!!$S!!!"Errrrl!!!!$i!!!!R!!!!CJ! !!%)!![rrrqB!!!"b!!!!'!!'!!!!F`!!!!)!N!Gd!!!!!J!!!!3!!!"e!!!!!J! !!!J!!!"f!!!!!J!!!!`!!!"h!!!!!J!!!"!!!!"i!!!!!J!!!"3!!2rrrqF!!Ir rrqB!![rrrq3!!!"k!!!!0!!0!!!!H`!!!!)!N!Gm!!!!!J!!!!3!!!"p!!!!!J! !!!J!!!"q!!!!!J!!!!`!!!"r!!!!!J!!!"!!!!#!!!!!!J!!!"3!!!#"!!!!!J! !!"J!!!##!!!!!J!!!"`!!!#$!!!!!J!!!#!!!!#%!!!!!J!!!#3!!!#&!!!!!J! !!#J!!!#'!!!!!J!!!#`!!!#(!!!!!J!!!$!!!2rrrq8!!Irrrq3!!2rrrq)!!3! !!!)!!Irrrq-!!!!%!!!!"2rrrq)!![rrrqJ!!!"`!!!!%J!&!!!!FIrrrqF!N!G jrrrrj3!!!!3!!!#)rrrri`!!!!J!!!!R!!!!CJ!!!!`!!!#*!!!!#J!!!"!!![r rrr8!!!!K!!!!4J!)!!!!)[rrrr3!N!FSrrrrm`#3"cRrrrra!*!(3Irrrr!!N!G (rrrrl`#3"dRrrrrZ!*!(5rrrrqd!N!G[rrrrk!#3"3,rrrrm!!!!#!!!!'B!#3! !!!Rrrrrl!*!(#[rrrrS!!!!-!!!!'J!!!!X!!!!3!!!!'`!!!'B!!!!5!!!!(!! !!!X!!!!@!!!!(3!!!!X!!!!B!!!!(J!!!!X!!!!D!!!!(`!!!!)!!!!F!!!!)2r rrr8!!!!J!!(rrrrJ!!!!$!!!!!%!!!!(!!,rrrrH!!!!MJ!!!"3!"J!!!#3!!!" Q!*!(*3!!!!)!!!!%!!!!*[rrrrS!!!!)!!!!-3!!!!S!!!!-!!!!*`!!!'B!!!! 1!!!!M`!!!!S!!!!5!!,rrrrG!!!!N!!!!!!@!!N!!!#4!!!!#J#3"bi!!!!#!!! !!J!!!#m!!!!+!!!!"J!!!$i!!!"Q!!!!#!!!!*)!!!!'!!!!$!!!!$d!!!!(!!! !$3!!!%!!!!!+!!!!$J!!!#F!!!"Q!!!!%!!!!$%!!!!+!!!!&!!#rrrrh!!!!*- !!!!D!!N!!!#8!!!!#J#3"bi!!!!#!!!!!J!!!#m!!!!+!!!!"J!!!#3!!!"Q!!! !#!!!!#8!!!!+!!!!$!!!!%B!!!!+!!!!$J!!!#F!!!"Q!!!!%!!!!*8!!!!#!!! !&!!!!*B!!!!+!!!!'!!#rrrrf`!!!*J!!!!+!!-!!!#C!!!!#J#3"bi!!!!#!!! !!J!!!#F!!!"Q!!!!"J!#rrrrh`!!!)d!!!!D!!3!!!!LrrrrhJ#3"cRrrrrG!*! (3Irrrp`!N!HArrrrf`#3"3,rrrrK!!!!L`!!!$S!#3!!!!RrrrrJ!*!(#[rrrrS !!!!-!!!!'J!!!!X!!!!3!!!!'`!!!'B!!!!5!!!!(!!!!!X!!!!@!!!!(3!!!!X !!!!B!!!!(J!!!!X!!!!D!!!!M!!!!!)!!!!F!!!!)2rrrpm!!!!J!!,rrrrp!!! !"J!!!'B!!J!!!!Irrrrm!*!(L[rrrq%!N!8#rrrrf!!!!*d!!!!'!!)!!!#H!!! !#`#3"jm!!!"N!!!!!J!#rrrreJ!!!+d!!!!%!!%!!!#Z!!!!!J#3"3(rrrr9!!! !#!!!!!%!!!!(!!,rrrrA!!!!U!!!!"!!"3!!!+N!!!!'!*!(UJ!!!!B!!!!"!!! !U`!!!!S!!!!#!!!!V2rrrpB!!!!%!!!!Vrrrrp8!!!!)!!,rrrrC!!!!Q`!!!%) !$3!!!*crrrrB!*!(S!!!!'3!!!!'!!!!S3!!!!X!!!!+!!!!SJ!!!!X!!!!-!!! !S`!!!!)!!!!1!!!!5`!!!!B!!!!5!!!!T!!!!!B!!!!6!!!!T3!!!'B!!!!8!!! !TJ!!!!-!!!!B!!!!TrrrrpF!!!!F!!!!X2rrrpF!!!!X!!!!X3!!!!B!!!!m!!! !XJ!!!!-!!!!q!!$rrrrD!!(rrrrC!!,rrrrq!!!!"3!!!'S!!J!!!!6rrrrp!*! (Q[rrrpS!!!"Q!!$rN!3!!Irrrri!!2rrrp3!!Irrrq%!![rrrp)!!!#c!!!!3J! "!!!!Y2rrrpN!N!Errrr6!!(rrrr5!!$rrrr4!!%!!!!$!!$rrrr3!!(rrrrA!!, rrrr2!!!!q3!!!!J!!`!!!2S!!!!+!*!(q`!!!'B!!!!#!!!!r!!!!!X!!!!'!!( rrrr1!!!!#J!!!!%!!!!(!!(rrrr0!!!!"`!!!!%!!!!(!!,rrrr-rj!%!!!!#!! !!!(rrrr,!!!!#`!!!!%!!!!(!!,rrrr+rj!%!!!!$!!!!!,rrrr*rj!%!!!!#!! !!!,rrrr)rj!%!!!!&!!!!!,rrrr(rj!%!!!!#!!!!!,rrrr'rj!%!!!!D!!!"3J ZG@4`Ah*PB@4IB@KPB@4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!Gi,RGi6@&M8fp MDf9d5'&ZC'aPFP"bEf-!!#FZ8Q9KC(PIAc%b8fpMDf9d4'pYB@PZ4RB!!R"`BJ! $!N&ZEQpdBA4PC&"#!!5G3'0XBA0c*$Fj1%G98dP94&"IBh!!!kjdBh!!"h083e" TEh"L!!EbCQPXE$%b!!6ED@p$Efe`E'9dD@pZ!!'r8QpeG'PZC84PFf0bDA"dEh) !"bGREdeTH'9N6@pNC94bBA!!"d4fCA*cD@pZ!!B)FQpeG'PZC84PFf0bDA"dEh* 'E'&RF`!"9R*PFf9bGQ9N-3!"9h*PFf9bGQ9N-J!%Gh0PE'9MG'pb5@jQE`!%+R* [GA4TEQ9$Eh9ZG!!'m(*[GA4TEQ95C@0[FQ4c!!8I8QpeG'PZC9*PBfpbC!!![h" bEf0*EQC[!!23590"!!6lFQpeG'PZC8CXB@Gc!!D%F(*[Bd4PFf0bDA"dEh)!!0G cC@aPBh4[FJ!!IfP[8Q9cG@ad!!(@D@p1B@eP8(4b!!&XD@p@8Q9Q6R9Y!!%@D@p $8Q9Q6R9Y!!DUBh0$Ef4P!!(rG'0`8h4bC@&Y!!I)Bh03BA*KE3!%!8"ME'&cFb3 h1$G(990*9843Af0`!!DCBh*PBA4P!!1k9%033h*PBA4P8%)!"p"bBhC#G@CQ!!+ 8FQ0f3R9QCNaPEJ!#h@j[G'PQH9"bEf-!!bTeFf9b4'&dB9"dFJ!%F'p`C@i!!4p 83e"2F'9Z8%)!"iaeE("8D@ePEh9d9Q&XG@8!!(peE("8D@ePEh9d3@0dD@pZ!!@ NGQ&XD@4TG(P'E'&RF`!$$@0[E@eKEQ48D@ePEh9d9Q&XG@8!!YTbC@e[G'9)Eh0 d!!+qFQ9YEh4P8'pbG!!"cQa[Bf&X5'pcG!!"XQa[Bf&X8'pbG!!!i(4[FdCXB@G c!!*rF(*PBf9NC@jMC3!!Ff4[ER4'FQ&R!!)rG'PYC94[6'PfC3!!kA0PBh9bDA4 j!!(eEh"dD@pZ3fjd!!FNEh"dD@pZF`!%JA0PEQ3!!9"83e"6C@jN8%)!!,C`GA0 S4QaKC`!#2(9bCf9ZG%CXB@F!"VPQD@aXCA)!"[ahC(03G()!!"*cC@jN4R*PC3! #QR0PEQ4-C@jRG'J!"`PbC@0PDACP!!4c9%038Q9MC@PfC9"#!!#&E@&bDdCXB@F !"LCbC(03G()!!CabC(0-C@jRG'J!"qYcC@0[EQ48D@eP8h4KEA!!"IeME'pcC3! #ie4$8%0XEh0P8%)!"F0KBQpbG!!#Qe4$8%&LEh*d8%)!"XjcG'&dGA-!!ep83e" 6G'&dGA033J!'@R9ZGA0PC!!(Kf0[EQjPBh4TEfj6G'&dC3!#Sh0PEQ4AD@jNEhF !!3PbBhCAD@jNEhF!"V&KEA49EQ&MDf9N4'&dB3!&D'&YG&9ZFQ9KC%4KG'%!!,j cC@0eFQPdH8aPGQ9X8(4b!!11Ff9ZC&9ZB@0VC@3!!&0cC@jN6Q9iG!!!KQ0[EQG PFh4TEfjAD@jNEhF!"`TbBhC1CAKd!!5'Fh*dG!!(BfaKFh459&3!"NKcC@jN6@& i8f9R8fPkC3!$H@0[EQj6G'&d8(4b!!,99%033fpZEQ9MG'P[EP0dBA4c!!4&C'& dB9"VG(05BhCN!!6GC'&dB9"VG(06C@jd!!EGC'&dB9"VG(05CA0PER3!!ICLHA4 PFe*MGQ3!"+GLHA4PFe*MGQ4%GA!!!i9LHA4PFe*MGQ43BA0d9fPZC'ph!!'+BRP dCA06C@jd!!1JBRPdCA05CA0PER3!"jaZG@e)DA0dEd*eBfYPG(-!"44cC@jd8fP kC8KTFh4[!!1m5'PcG'p#G@0VCA3!"9KfB@aeC3!(%Q0[G@jdCA)!"r"dEA*68P4 8!!-mFR4d9Q&bD@&ZBf8!"KYdEA*59%m!!FCcC@jN9(*TCA-!!0CcEh9bBfK4G@9 ZBfK5BhCN!!,rCfa[BQ&X5@jQE`!(T94$8%GXEf*KE%PZCQp33J!$%R4MF&"KFQ& Y8(4b!!!Q9%038'&bB@d!"j!!G'0`8R4[33!"$A4MF&*dEdeTEJ!"&R4MF&*dEde KH!!&qR4MF%eKH&0PCe0THQ8!!PedBh"0BAK$EfjZ!!4TG'0`6@&i9fPZC'ph!!2 MG'0`8h4KG(03G()!!)K83e"6G'&dF`!(C(4MF%0[EQj"G(4PEA"dF`!&dh4MF%0 [EQj2F'9ZC@3!"fPdBh"$EfjZ3@0MCA"dC@3!"5"dBh"$EfjZ3fa[Ff9N!!BrG'0 `3fpZEN&LEh*dC@3!!lCdBh"2Bh4PG(0*EJ!%3h4MF%pMG'9dFdpeG!!'Kh4MF%p MG'9dFdPZ4(9`!!!cG'0`6f0dCA4c8Q9dFQ&ZF`!%IA4MF%PZF(9d8'YdF`!&)(4 MF%peG("eG&"VG(-!!JpdBh"%GA"3Dh4c!!EfG'0`8Q9dFQ&ZFe"VG(-!!kCdBh" $4%*8B@*XC3!"G'eKH&4$8%0[EQjPBh4TEfjc!!1bG@4`!!F`9843D@p`BJ!"rR9 NF&0dFQ9KE3!%2N"ME'&cFb3h16"(990*9843Af0`!!2198433h*PBA4P8%)!!P" PEQ4TEQG3Eh*d!!&C98438f9ZC&"#!!!TFQ9cCA*fC@3!!%"MD'9MDe0eE3!%A&9 %8&*PBf9TGQ933J!(bA4TE@92GA3!!'TNCA0d5'pcG!!!6Q4PFh43Eh*d!!1CEA4 e!!$k984369498%)!"jPYG(96DATP!!3ZFfpMD`!#c%P14946Ef0VCA3!"rBN8fp MDf9d!!Ej8fpMDf9d!!!FFQ9Q3fpeER3!"r0IAhC`G()N!!$IGhKbC@CMEfi!"b9 hH'9fC@jd!!2RGhKPGQ9ZG'eKFfX!"R*cG(*PB@d!!ieZEfjLE'pMDfPZC`!(pR* PBhC#G@B!"CTbC@0fC!!#ch0K!!2NFfpMDf&NC(*ID@i!"`*cD@jIE'9Z!!,!FfP ZAfCKE@PXH3!!@R0TEPp`Eh*d!!!$FfPZAf&NC()!"feTEPpKC'4b!!CpFepKC'4 b!!#bFfPZAhTPFQm!"1a`C@9b!!DaFh0dBA4P!!$(BA0jEQ0PFR)!!HK94&"6Ef0 VCA3!!lXN58j&9&0[BfYPG!!%2d!i-$J!"3PeAh9NF&pbC@&NAf&SC@&NAf4[EQ8 !"-KeC("IFQ9KC&pKD'9KC&pNEfjPAep'8$%a3@jZEh4KG'9N8%)!"d3ZG@4`Ah0 PEQ4IC'pZC9pI4P!a-8&ZEQpdBA4PC&"#!!4C3$Ja-J!(VA9IG@4`Ah0PEQ4IC'p ZC3!'eA9NF&pcC@jNAf4[EQ9IAdC3-6&"EQj[G'&dC@433J!$jbjIAf0dAemj984 38fpMDf9d4RB!"G%ZAepMG&pI-6"*6N988fpMDf9d4RB!!+4IAhCdAemj98438fp MDf9d!!4EG'KTF`!%@d!i-63!"%3ZAepMG&pI199%8&0[BfYPG%C9E!!'JLjIAf0 dAema-%P14946Ef0VCA4'9@`!"$mZ4f9d8%*IAcP94&"6Ef0VCA4'GJ!'Abj33N0 [ER4bEfa6H@jM!!E%,P4$8&pPFR*[FPpI4QN!!c9PFR)!"(K!1$)a!!3#AepNG&p I-6"*6N988fpMDf9d4RB!"(P!1$)b!!-%,PpIC(4IAcP94&"6Ef0VCA4'GJ!$##j %DA0`Eh0P8(4b!!8%,PpIC(4IAc%`58j&9&0[BfYPG%Cf!!*2,PpIC'aIAdC3GJ! %Pd!i-c!!!`a*6N988fpMDf9dF`!%$Lj(CA433PpI-6C*6N988fpMDf9d4'pYB@P Z4RB!"8iZ4(*TGQ9bAema0NP14946Ef0VCA4%EfeKD@j'GJ!%QN!i-c-!!2dZ3AC KD@aKBQaPAemj98438fpMDf9d4RB!!0)Z6Q9h8h4bC@&YAemj98438fpMDf9d4RB !"p8Z6Q9h8(4b!!"9,P*PB@4"D'9KC&pI199%8&0[BfYPG%Cf!!5I3$Jc1!!&)5j 'E(9cD&*PB@4"D'9KC&pI199%8&0[BfYPG%Cf!!IB,P"#3fpZG(*[E%&cH@jM!!5 k3$Jd-`!%[N!i0$F!"6XZBQPZC&pI199%8&0[BfYPG%C3GQN!"jdZBQPZC&pI-6" *6N988fpMDf9d4P"fD3!%3'&NC()!"k*ZB@ePE'9Z!!6D3$Je-`!&f#jRCA4cEf0 VEQ&YC9pI199%8&0[BfYPG%C3GP"T!!II,QGPG(0[BfYZB@ePAema-%P14946Ef0 VCA4'8(C3D3!%UfjKE@8!"1"!1$8j!!"S,Q0[EQjPBh4IAcP94&"6Ef0VCA4'8(C T!!1Y,NG98dPICA*bEh)!"hGKC'4bCA0c!!IXB@4NFQaPEJ!%'d!i0c3!"KSZFQ9 MGQCbEfeIAcP94&"6Ef0VCA4'8(CTD9"f8'N!!(&(990*8h"TEJ!$@Lj(990*3fK PBfY"E'&bE9pI4RB!!j3ZAep`G(*ICfaeC3!#,bj#E'pMDde[GQ8!"J0LG@CQCA) !"[GLG@CXC@i!"$0QFQpY!!GPCR*[E@aPEJ!%AN!i16B!!pFZFf9ZC(4[Aemj984 38fpMDf9d4P"fD@P3GQN!!PJZCf9dD'pcG'PN!!8&BfpeER3!![edE`!%MQ&hC(- !"j&YD@jTGf4c!!EfE'9ZCh4S!!2#F(4b!!")G'9bE@PZGA-!"(e!16)b!!@[,R0 PE'9MG&pI199%8&0[BfYPG%C39@039@039@-!"caMB@j5C@&N!!"QBf&Z9h*TG'8 !"k&REfpND@9c!!5J3$Nc03!%S8!j-cB!"+0!16-i!!IrAep59&4*Aemf8fpMDf9 d!!5N3$Nc13!%Zd!j0$!!"!CIAe*89%PIAc%`58j&9&0[BfYPG!!%SN!j-cF!!Qe IAe*89%PIAcP94&"6Ef0VCA3!!hG`Eh0dAh0PE'9MG&pI0P0[BfYPG%C9Be9M9@- !!Qa`FQ9IFf9XC@0dAemf8fpMDf9d4P9M9@09B`!"3QPcBA4dH9pI0P0[BfYPG%C f!!4pCR4bG@jMBA4PAemf8fpMDf9d4Q`!!@"XFf9PDepI0P0[BfYPG%CXD3!&,fC cG'&dAemf8fpMDf9d4P!dFh4KG!!"5h0PG(0[BfY[F(4IAcC6Ef0VCA4'D@P3GQN !!XKRCA4cEf0VEh"dAemf8fpMDf9d4QPT8(C3D3!#2AGbDA4PAemf8fpMDf9d4P" fD3!"TR*PB@4IAcC6Ef0VCA4'8(CT!!5@B@0MCA"dAemf8fpMDf9d4P"f8'N!!FK XDA0dC@jIAcC6Ef0VCA4'D3!!KA0SGA4NEhGZAema-%P14946Ef0VCA4'D3!!kQP [Bh4XAema-%P14946Ef0VCA4'9@P3GJ!(8@CMER4XAema-%P14946Ef0VCA4'9@P T!!C9Cf9dF'9PFQjKE@9IAc%`58j&9&0[BfYPG%C3GP"T!!5aFf9XC@0dAemj984 38fpMDf9d4P"9Be"9Be"9B`!#PR0PEQ4dEepI199%8&0[BfYPG%C3GQPT8(CT!!8 fFQ9MGQCbEfeIAcP94&"6Ef0VCA4'8(CTD9"f8'N!"hTMEfjZC@0dAemj98438fp MDf9d4P"fD3!%[@GPG(0[BfYZB@ePAemj98438fpMDf9d4P"f8'N!",eLD@jNAem j98438fpMDf9d4P"fD3!(cN&fB@PXB@*XC9pI199%8&0[BfYPG%Cf!!,AAepNG&p I199%8&0[BfYPG%Cf!!0q9%p$!!IV8Q9KC%&SC@&NAemj98438fpMDf9d4RB!"2" 'E(9cD&*PB@4"D'9KC&pI199%8&0[BfYPG%Cf!!G[6Q9h8h4bC@&YAemj98438fp MDf9d4RB!!`K(CA433PpI199%8&0[BfYPG%Cf!!0$AepMG&pI199%8&0[BfYPG%C 9E!!#hepIBh4IAcP94&"6Ef0VCA4'GJ!!8%pA8J#3"P(X!!"5@!!!!0J!N!STJ!! !!R8!!!44!!!!+!#33%9R!!"&D3#3"3&&E`8%!!!!"!!!!!5!!*!(rj!%4@i3!3! !!!B!!!!"J!#3#!3%-%9V!!3!!!!(!!!!I)!!N!Gm#!+QN!!"!!L8)Im`N!"K!1J iB3#!J)%!k%J!!!&J!!!!1'%!1$L"!)!iSJ!!5!!!!@!!!!#!BJ!!U!-!!#`!!!" "JJ!3J')!!+KM!!")!!!JU!%!J)"L!!#`!`!!J!%!JS"L!!#3!!-!!$KJ!!#!!3$ B1#%!d(`)!kC1J!!J4A8!N!8)!!!!'%9c%!#3"!B!!!!S4A8!N!8*!!!!,%9d!`# 3"!)!!!!d4A3$!*!%!J!!!%4&G!-!N!3$!!!!9%9d!`#3"!3!!!"J4@i-"!!!!!S !!!!-J!#3#i!!!(`!N!4&G`#3"3F!N!4&DJ!%!!!!#`!!!(#!!*!(I!J#TT2Krrb 3!!%!#*3Krd#3!'%!f*!!J3$F1!%!1*!!!3#+1'%!H%J!!!&J!!!!1q-!!(rJ"c9 "JJ!-1(m!!%J!!##S!3#BJ'%!f,!$!!#!!3#SJ'%!h*!!!`!!1'!!!)!"!-Ji)3$ !I!J$TS2Krra1J!!J4A8!N!8-!!!!*%9Z$!3!!!!0!!!!$)!!N!Z!!!"`#!!!!%9 h!*!&#`#3"%9V!!3!!!!1!!!!G)!!N!Gm#!+QNq(rr*!!!3!)P#(r`$[M!!!i!!! !Q!-!"S"L!!#!!`!!,!$rrd'#!#5!BJ!!U!-!!,!I!!#!BJ!!J!-!!*!!(`!#1'! !!%J!!"JiI`!!1*m!!NJ!!!'!JJ!!X'3!!)!"!%Ji)3"!I!J$TS2Krra1J!!J4A3 $!*!%"!!!!"a&G!-!N!3$!!!!,%9d!`#3"!3!!!!i4A8!N!8,!!!!9%9d!`#3"!) !!!"B4@i-"!!!!!m!!!!-J!#3#i!!!(3)!!!!4AF!N!81!*!%4@X!"!!!!"!!!!# SJ!#3"h`)!UD6iIrmNm(rq*1Krr53!!%!#*3Krf!li`!!1k3!!)2#!!#)!`!'+!! !!%##!!arS!Fe3)%!2$JI!!D3!!%!5V1K!&3iB3!i5!!!!@!!!!#`IJ!!I'!(08' #!!bSIJ!!5!!!,+J"!%k`(`!!5!!!&$J!!!#`(J!!1!!!!,!I!!!i!!!"N!!I!!+ SIJ!!J!%!U$JK!+"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3"!)!!!!J4A8!N!8 4!!!!5%9Z$!3!!!!5!!!!$)!!N!Z!!!#S'!!!!%9h!*!&%!#3"%9V!!3!!!!6!!! !+)!!N!Fi!!+DX!-!!$J!!!#3!!-!!MJ!!!#B!`!'1!!!!)##!!#`"!!!6S!!)%9 d!`#3"!)!!!!F4@X!"!!!!"3!!!!SJ!#3"cL!!!#!!`!#,!!!!%##!"5S!`!!,!! #QN##!!JiJ!!"1'3!!%k!!#"&D`!%!!!!&3!!!%b!!*!(I!J#TT2Krrb3!!%!#*3 Krh!li`!!5!!!!AaJ"c9!JJ!81'%!1$LI!!")!!!"B!!!!)"L!!#SB`!!J!%!Q$J K!*!!I!J$TS2Krra1J!!J4A8!N!81!!!!&%9e!*!&&J!!!#K&G!-!N!3#!!!!-%9 Z$!3!!!!A!!!!$)!!N!Z!!!"-#!!!!%9h!*!&&3#3"%9V!!3!!!!)!!!!I)!!N!G m#!+QNq(rr*2"rrL3!!%!#*3Krm!l``!!1q3!!+J%!!#`!`!!J!3!!T!!!`!#L!3 !"LJ!!%"!J!!B1(i!"MLI!!C)!!!"B!!!!%J!!"JiIJ!'1*m!"MLJ!%")!!!"B!! !!$Kq!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"4J!!!"!4A8!N!8C!!! !@%9Z$!3!!!!D!!!!$)!!N!Z!!!"m%!!!!%9h!*!&#!#3"%9V!!3!!!!E!!!!V)! !N!Gm#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!1m3!!*LK!'1S"!!!X!-!!)!%!!+ 3!!-!!SJ%!!BS!!"!3)!!'$Kr!!BiRJ!'5!!!!@!!!!")!!!B1(m!"MLH!!BiS!" !5!!!!@!!!!#)!3"M+!!!!%##!#5!BJ!!L!-!!#J!!!""JJ!81(m!!$L!!!&)!!! "B!!!!$Kr!!#!!3")1#%!3(`)!kD$iIrmJm(rq%k!!#"&G3#3"4J!!!"%4A8!N!8 C!!!!A%9d!`#3""`!!!"`4A8!N!8G!!!!L%9Z$!3!!!!H!!!!$)!!N!Z!!!#X%!! !!%9h!*!&'`#3"%9V!!3!!!!I!!!"!)!!N!Gm#!+Q[f(rl*!!!3!)P#(rX$[M!!! lC!!!1i8!!$['!!#Bi3"lJ')!!)J$!!!S!!!!3B)!0$Kl!!!iR!!!1,i!!$MI!!" )!!!"B!!!!$ZM!!"rS!Fe3B)!-(qJ"c3X!2r93B)!*,0r!!#6R`!#1(m!"MLH!!# )[J!!1+8!!8J!!!&J!!!!L!%!HbJ!!!"!JJ!NJ')!!)J$!!!S!!!!3B)!&$Kr!!! iJ!!"5!!!!@!!!!!iI`!'1*i!!$LJ!!!i`!!"5!!!!@!!!!"8B!Br3B)!($Kr!!B iRJ!!L,i!!$LP!!&)!!!"B!!!!$Kr!!#!!3"B1#%!8(`)!kDlBIrX6S!!)%9d!`# 3"#!!!!!N4A8!N!8K!!!!4%9e!*!&'3!!!(a&G!-!N!3F!!!!N!"&G3#3"4d!!!# S4A8!N!8L!!!!`%9e!*!&'3!!!1"&EJ`%!!!!)`!!!!b!!*!,J!!"!#J!!!"&G`# 3"4m!N!4&D`!%!!!!*!!!!9b!!*!(I!J#TT2Krrb6`IriNk(rp*1"rr#3!!%!#*3 Kri!li`!!1i3!!$[&!!#B`3#RJ')!!)J$!!!S!!!!3B)!0$Km!!!iJ!!!1,i!!$M I!!")!!!"B!!!!$ZM!!"rS!Fe3B)!H(qJ"c3X!2r93B)!E$J!!!#3!!%!5V1"!%i i!!!!X!%!8MJ!!!#3!!%!9$KK!$K)!!!"B!!!!)##!!#`C!!!I'!(08'#!!`iI`! !5!!!P+J"!&L`(`!!J!%!D*!!(`!#1(m!"MLH!!#)[J!!1+8!!8J!!!&J!!!!L!% !TbJ!!!"!JJ!NJ')!!)J$!!!S!!!!3B)!&$Kr!!!iJ!!"5!!!!@!!!!!iI`!'1*i !!$LJ!!!i`!!"5!!!!@!!!!"8B!Br3B)!($Kr!!BiRJ!!L,i!!$LP!!&)!!!"B!! !!$Kr!!#!!3#)1#%!J(`)!kD$iIrmJm(rq)1Krr5$JIr`6S!!)%9d!`#3"#!!!!! X4A8!N!8K!!!!6%9e!*!&*3!!!)a&G!-!N!3#!!!!P%9e!*!&'3!!!-a&G!-!N!3 F!!!!i%9e!*!&(3!!!2K&G3#3"5)!!!%34A8!N!8C!!!"-%9Z$!3!!!!Q!!!!$)! !N!Z!!!&F)!!!!%9h!*!&*!#3"%9Z"3%!!!!T!!!!#B!!N!F)G'e`-*!'!$&&EJ8 "!!!!+J!!!!D!!*!(*6!eE'3!!!"&D`!%!!!!+`!!!8#!!*!(I!J#TVpKrqb3!!% !#*3Krf!li`!!1k3!!$YP!!!lKJ!!Jm)!!$`GUl-S!&"'3))!'#`F!!""JJ!3Xhm !!*1I!!*)!!"31(X!!$`GUl-S!&"'3))!%$b!G'8iK'e`5!!!#$LG!!!iS!!"10m !!$Mr!!*)!!!"B!!!!)##!!#`C!!!I'!(08'#!!`iI`!!5!!!S$`GUl-S!&"'3)) !I)J#!!"m!!Ge3))!&$J!rrq3!!)!!$J!!!'B!J!!1(m!"S##!!")!!!"B!!!!)" L!!!iJ`!"2'!!!MKMKU"m""[@I!!CeR`!)!!)!!$Kr!!SiRJ!!J+)!!%J!!!& J!!!!1(m!!%J!!!&J!!!!9'!'2d##rla)!!!B1'%!1$LI!!!iS!!"5!!!!@!!!!! iI`!!J!%!U$JK!+"m#!1QZf(rl%k!!#"&G!-!N!3U!!!!)%9e!*!&,!!!!("&G!- !N!3#!!!!H%9c%!#3"#J!!!#F4A-3!*!%*`!!!+a&Fa!!N!3S!!!!Y%9d!`#3"#N !!!#m4A8!N!8B!!!!`%9c%!#3"#F!!!$)4A-3!*!%*`!!!14&Fa!!N!3R!!!!m%9 e!*!&,3!!!24&G3#3"5i!!!%!4A8!N!8[!!!")%9Z$!3!!!!`!!!!$)!!N!Z!!!& !+!!!!%9h!*!&+`#3"%9V!!3!!!!a!!!!I)!!N!Gm#!+QNq(rr*!!!3!)P#(rJ$[ M!!#`J3#H1"m!"T!!!3"+U!%!RV!"!&!i!!!!X!%!9$KK!$K)!!!"B!!!!)##!!# `C!!!I'!(08'#!!`iI`!!5!!!'+J"!'b`(`!!J!%!FT!!(`!#1(m!!)!"!)Ji)3# !I!J$TS2Krra1J!!J4A8!N!8b!!!!0%9d!`#3"!)!!!!m4@i-"!!!!$-!!!!-J!# 3#i!!!(`)!!!!4AF!N!8a!*!%4@X!"!!!!$3!!!$8J!#3"h`)!UD6iIrmN!!"!!L 8)Ip`1q-!!)"L!!#)!`!!+!!!!%'#!*3iS3!`1*rrq$J!!!Km#31QK'3!#)!%!!5 8C3!)N!!&!!4#!2r`J'3!#+!%!!b3!'8!#,!&!!bSB3!iJ)%!1MLK!$iih`!!5!! !!@!!!!#!JJ!!X'3!!$KK!$iiR`!'1+!!!$M!!!&)!!!"B!!!!&4J"Mp"JJ!X1(m !"ML"!$k)S3!q1+8!!8J!!!&J!!!!5!!!%$J!!!#!BJ!!X!-!!)!"!*Ji)3#3!(` )!kD$iIrm6S!!)%9d!`#3"#!!!!!84A8!N!8K!!!!D%9d!`#3"!)!!!"`4A8!N!8 L!!!!L%9e!*!&'3!!!+K&G!-!N!3#!!!!Z%9Z$!3!!!!e!!!!$)!!N!Z!!!$8#!! !!%9h!*!&0!#3"%9U!!3!!!!h!!!!I)!!N!Gm#!+QNq(rr*2"rrL3!!%!#*3Krm! l``!!1q3!!*LK!'1)!3"M+!!!!%'#!"Ji!!!kJ(i!!$KMrrq3!(i!!*J$!!#)I`! !J"i!!(`$!!"i!!)"q!!!iR`!"L,m!!%J!!!&J!!!!J!%!5$JK!%"m#!1QJq( rr)2"rrK1J!!J4A8!N!8i!!!!A%9Z$!3!!!!j!!!!$)!!N!Z!!!"m%!!!!%9h!*! &0`#3"%9Z%!%!!!!k!!!!!B!!N!LY,QP&D`!%!!!!1`!!!1b!!*!(I!J#TT2Krrb 6`IriNk(rp*1"rr#3!!%!#*3Krl!l``!!Jq)!!)1#!!#!BJ!!1!-"rj!!!3!iJk) !!$J!!!#!B3!iQ!-!!$KK!$JiRJ!'J,i!!MJ!!!&m"3"3I!!!0&3&fAj)!!!"Nlm !%S!H!!+3!"m!C%J!!%bS(J!!X"m!&MJ!rrq`(`!FJ"m!C*!!(`!`1(m!!%J!!!& J!!!!X(`!!(aJ"c9"JJ!-1')!!%J!!#3iB3!i1*d!!$LJ!!&)!!!"J"m!C#`!!!& !J[q`J'%!1)!"!&Ji)3"3I!J$TS2Krrb$`IriJk(rp)1"rr"1J!!J4A3$!*!%"3! !!#"&G!-!N!3#!!!!*%9d!`#3"$B!!!!S4A3$!*!%0J!!!$4&G3#3"6F!!!"J4A8 !N!8m!!!!N!"&Fa!!N!3k!!!!T%9e!*!&0`!!!,K&EJ`%!!!!23!!!!b!!*!,J!! !l#!!!!"&G`#3"6X!N!4&D`!%!!!!2J!!!K5!!*!(I!J#TVm"rq#3!!%!#*3Krc! l!`!!Jf)!!)1L!!!i'`(rN!!"!+3lf`!!1!!!!)"K!+5B!`!!1(J!!$L"!$JiS!! !5!!!!@!!!!#`I3!!I'!(08'#!!`iB!!!5!!"U)"L!!#)!`!!+!!!!%'#!#`iB!! !L!%!9P3!"[G!JJ!8S!%!B&3!"#&"JJ!)1'!!!94J"Mp!JJ!81!$r2l!G!!!iB!! !5!!"B%J!!!&J!!!!1b-!!$Ki!!!iJ!!"5!!!!@!!!!!l3`!!Id!(0#`!rrp!JJ! B5!!!!@!!!!#`I3!!1i!!!%J!!%JmB'&X1)!!!$KMDA0)!!!"B!!!!(am'hP"JJ! 81(`!!%J!!!&J!!!!5!!!%%J!!!&J!!!!X(d!!$Kk!!")!!!"B!!!!$Kj!!")!!! "B!!!!#JF!!"!JJ!-1'!!!%J!!-!li!!!5!!!1)JE!!"m!!Ge3B)!6$KK!+3iRJ! !Iq8(0$J!!!"m!!FdI+8!8$!&rrpmS#N35!!!!6[r!!%iI!!!1*m!!$Lq!!")!!! "B!!!!,"p!!"mB!Fe3B,rX+JG!!!X!!!!3))!0$Km!!!iJ2rr1,i!!%J!!!&J!!! !X(d!!(aJ"c9!JJ!81'%!T$LH!!!iS!!"5!!!!6Km!!")!!!"B!!!!+JG!!!X!!! !3B)!$$KJ!!")!!!)J'%!T)!"!0Ji)3$3I!J$TVX"rq"1J!!J4A3$!*!%0J!!!"4 &G!-!N!3#!!!!'%9e!*!&2`!!!%"&G!-!N!3F!!!!A%9e!*!&3!!!!+4&G3#3"8% !!!#i4A8!N!9#!!!!d%9e!*!&3`!!!2"&G3#3"83!!!%%4A8!N!9#!!!"%%9e!*! &43!!!5"&G3#3"8B!!!%X4A8!N!8h!!!"H%9e!*!&4`!!!Ba&G3#3"8F!!!'i4A8 !N!8h!!!"f%9e!*!&5!!!!H"&EJ`%!!!!53!!!!b!!*!,J!!#&%!!!!"&G`#3"6i !N!4&D`!%!!!!5J!!!&b!!*!(I!J#TT2Krrb3!!%!#*3Krl!li`!!1'%!2$L"!$K )!!!"I'!(08'#!"!iI`!!5!!!!8J!!"JiI`!!U)%!2)#K!$K)!!!"B!!!!)!"!&J i)3"3I!J$TS2Krra1J!!J4A8!N!8,!!!!(%9e!*!&1`!!!#a&G3#3"8X!!!"!4@i -"!!!!%`!!!!-J!#3#i!!!&`)!!!!4AF!N!9+!*!%4@X!"!!!!%d!!!#FJ!#3"h` )!UD6iIrmNm(rq*!!!3!)P#(r-$[$!!#3!)%!l)2L!!!iB3#!J)%!l$LJ!!")!!! "U"m!!#`!!!""JJ!31(i!!%J!!!&)!!"!1'%!1$L"!)")!!!"B!!!!+JI!!!X!!! !3B)!%$Kq!!")!!!"5!!!'$Kq!!#SJ3#!J+%!JNJ!!!&J!!!!J!%!f$JK!0"m#!1 QJq(rr)2"rrK1J!!J4A3$!*!%!J!!!"a&G3#3"4X!!!!X4A8!N!8l!!!!3%9e!*! &6J!!!&"&G3#3"6X!!!"S4A8!N!9,!!!!I%9Z$!3!!!"2!!!!$)!!N!Z!!!#F%!! !!%9h!*!&63#3"%9V!!3!!!",!!!#')!!N!Gm#!+Q[b(rj*!!!3!)P#(rS$Z$!!! lC!!!1d8!!)2L!!#$SJ!!Jb)!!)!$!!)X!!!"3))!@+Km!!"rB!FdI!-!!%##!"3 X'J!#3))!$$[G!!")!!!J1(d!!$LF!!H)[!!'5!!!!@!!!!#)(!!'Ipd#&$J!!$U B(J!!1!!!!*JH!!%iI3!!5!!"J*1r!"+cI`!@1!$rrl!I!"b6A`!`1(m!!%J!!!& J!!!!X(N!!(aJ"c9"JJ!-1')!!%J!!8arB`FdU"`!!(`$!!"!JJ"3J(m!C)!F!!* m!`!!3))!3$Kp!!!iR!!'L"d!!(`&"h3iT3!"5!!!!@!!!!!X!`!!3))!($J!!$U B(3!!1!!!!*JG!!%iI3!!5!!!m$J!!!#B(3(rL(`!"MJG!Ipr``"31(i!!$LF!!H )[!!'5!!!!@!!!!#6[`!5J"`!!T!!(`"N1!!!1T`HrrprB`FdU"`!!(`$!!"!JJ! iJ"m!C(`D!!"!JJ!X1(i!!6L!!$T)!!!"B!!!!#J$!!""JJ!-1(i!!%J!!(JiIJ! "5!!!F+JF!!#`(`!@1!$rrl!I!"b!(`"NN!!I!$!iI`!!5!!!!@!!!!#`H3!!I'! (08'#!!`iBJ!!5!!!1)JG!!"m!!GdIm$`8$Kq!!!iR3!"L,d!!(bP"h4)!!!"B!! !!)!I!$!X!!!#3),r8$Kq!!#!!3"S1#%!B(`)!kDl)IrN6S!!)%9d!`#3"!8!!!! F4A3$!*!%0J!!!#"&G!-!N!3#!!!!*%9e!*!&'3!!!'"&G3#3"6`!!!#J4A-3!*! %1J!!!,4&G3#3"9!!!!$`4A8!N!8C!!!"1%9e!*!&83!!!AK&G3#3"6`!!!'d4A- 3!*!%1J!!!FK&G3#3"6J!!!(X4@i-"!!!!&)!!!!-J!#3#i!!!KJi!!!!4AF!N!9 ,!*!%4@i&!3!!!&-!!!!-J!#3"a%P-$4S@#8`1&Jk!%9V!!3!!!"8!!!!G)!!N!G m#!+QNq(rr*2"rrL3!!%!#*3Krm!li`!!Jm)!!$Kq!!#!JJ!!U,m!!)$I!!*)!!! "B!!!!$Kq!!iiR`!(L,m!"NJ!!!&J!!!!1)!!!)JI!!CmB2)8Q)-!$MKq!!#!!3" )1#%!3(`)!kD$iIrmJm(rq%k!!#"&G!-!N!3f!!!!'%9d!`#3"&-!!!!J4A8!N!8 Y!!!!,%9e!*!&'3!!!%"&EJ`%!!!!93!!!!b!!*!,J!!!G"!!!!"&G`#3"93!N!4 &D`!%!!!!2`!!!)L!!*!(I!J#TT2Krrb6`IriN!!"!!L8)Ir!1m-!!$[N!!#BS3" MU!-!!,!%!"D!!`!#N!!%!$!i(J!'N!!%!"+)!3"M+!!!!%'#!!`i!2rr5!!!#$J !!!#`(`!F1!!!!*JI!"miI`!!5!!!!@!!!!#!JJ!!X'3!!)!"!%Ji)3"!I!J$TS2 Krrb$`Iri6S!!)%9e!*!&2!!!!'"&G!-!N!3#!!!!D%9Z$!3!!!"@!!!!$)!!N!Z !!!#)%!!!!%9h!*!&2`#3"%9V!!3!!!!@!!!!I)!!N!Gm#!+QNq(rr*!!!3!)P#( r`*!!B3"B1q3!!)!%!!)X!!!"3))!%$Kr!!")!!!"5!!!-$Kr!!#!JJ!!1+!!!8J !!!'!BJ!!U!-!!#`!!!"!JJ!3J')!!)!$!'53!"m!!S"K!&JiR`!!5!!!!B!"!%J i)3"!I!J$TS2Krra1J!!J4A8!N!86!!!!+%9d!`#3"!8!!!!d4A8!N!8r!!!!2%9 d!`#3"!)!!!"!4A3$!*!%"3!!!&"&G3#3"3J!!!"N4@i-"!!!!&F!!!!-J!#3#i! !!(`)!!!!4AF!N!8@!*!%4@X!"!!!!%i!!!%%J!#3"h`)!UD6iIrmNm(rq*!!!3! )P#(r`*!!B3"B1m3!!)2L!!!iIJ!!5!!!!94J"Mp"JJ!J1!!!!,!H!!!i!!!"N!! H!!)i!!!!Q"i!"NJ!!*JiIJ!!1*m!!$LJ!!")!!!"I'!(08##!)!iB!!!L"m!(P3 !"[G!JJ!8S"m!+&3!"#&"JJ!)1'!!!94J"Mp"JJ!d1(i!!$LI!!")!!!"B!!!!(a J"c9!JJ"!1(i!!$LI!!!iS!!!5!!!!AaJ"c9!JJ!SL"m!(P3!"[G!JJ!81!$XAi" L!!#`!`!!5!!!$)!I!$#3!"i!!S"K!&JiRJ!!5!!!!B!"!%Ji)3"!I!J$TS2Krrb $`Iri6S!!)%9d!`#3"!8!!!!F4A8!N!88!!!!*%9e!*!&2`!!!&K&G3#3"9J!!!# 84A8!N!8r!!!!X%9d!`#3"!)!!!$-4A8!N!8)!!!!k%9Z$!3!!!"C!!!!$)!!N!Z !!!%%%!!!!%9h!*!&6J#3"%9V!!3!!!![!!!!H)!!N!Gm#!+QNq(rr*2"rrL6SIr dN!!"!!L8)Ip`N!"K!+Jla!!!1k8!!)2L!!")!!!F1'%!1$LH!!")!!!"U"m!!#` !!!"!JJ!3,"d!!$Zprrp"JIrJJ'%!U$LH!!")!!!"J!%!Q$JK!*!!I!J$TS2Krrb $`IriJk(rp%k!!#"&G!-!N!3#!!!!*%9e!*!&&J!!!$4&G3#3"3J!!!"B4@i-"!! !!&S!!!!-J!#3#i!!!(JB!!!!4AF!N!8[!*!%4@X!"!!!!&X!!!"%J!#3"h`)!UD 3!!%!#*3Kri#3!'%!Q*!!J3#FN!#K!+!iB3!iJ)%!R%J!!!'!B3#B1)%!1)#K!+" )!!!"J!%!L$JK!)"m#!1Q6S!!)%9e!*!&#!!!!#"&G3#3"5m!!!!`4@i-"!!!!&` !!!!-J!#3#i!!!%3!N!4&G`#3"9X!N!4&D`!%!!!!@!!!!)#!!*!(I!J#TT2Krrb 3!!%!#*3Krl#3!'%!D$[N!!#!BJ!!L!-!!#J!!!""JJ!mL"m!(P3!"[G!JJ!`S"m !+&3!"#&"JJ!NJ'%!D$L!!!%iS3!j1-%!1%J!!!&J!!!!I'-(0%J!!!JiB!!!J)) !!,"N!!#!!3"B1#%!8(`)!kD$iIrm6S!!)%9d!`#3""`!!!!B4A8!N!9G!!!!8%9 d!`#3"!)!!!"N4@i-"!!!!&i!!!!-J!#3#i!!!)!)!!!!4AF!N!9B!*!%4@X!"!! !!"d!!!"mJ!#3"h`)!UD6iIrmNm(rq*!!!3!)P#(r`$[$!!#BJ3"IJq)!!)##!!! iS!!!5!!!!DJI!!!X!!!!3B)!*)J"!&mS!!!!3B)!%$KJ!!#`I`!!5!!!'+Kr!!" )!!!31(i!!)##!!")!!!"J!%!5$JK!%"m#!1QJq(rr)2"rrK1J!!J4A3$!*!%!J! !!"a&G!-!N!3&!!!!)%9e!*!&2`!!!#K&G!-!N!3&!!!!A%9e!*!&@!!!!'"&EJ` %!!!!A`!!!!b!!*!,J!!!I"!!!!"&G`#3"4d!N!4&D`!%!!!!,J!!!&5!!*!(I!J #TT2Krrb3!!%!#*3Krm#3!'%!@)"K!&L!JJ!!1+!!!%J!!!&mB!FdI!!!0&3IfAi i!!!!J')!!,!$!!!iI`!!J!%!5$JK!%"m#!1QJq(rr%k!!#"&G!-!N!3&!!!!'%9 e!*!&2`!!!#"&G!-!N!3#!!!!0%9Z$!3!!!"J!!!!$)!!N!Z!!!"8#!!!!%9h!*! &,J#3"%9V!!3!!!"K!!!!L)!!N!Gm#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Iq`1m- !!$[N!!!lS!!!U'-!!+J%!!"m!`!!3))!1)"q!!+!(`!#I!-!!%##!#JiIJ!'1*m !"MLJ!!!i`!!"5!!!!@!!!!"8B!Br3B)!#$ZJ!!%iI3!!J!%!@$JK!&"m#!1QJq( rr)2"rrL$SIrd6S!!)%9e!*!&)J!!!&4&EJ`%!!!!BJ!!!!b!!*!,J!!!L"J!!!" &G`#3"@%!N!4&D`!%!!!!B`!!!)L!!*!(I!J#TT2Krrb6`IriNk(rp*!!!3!)P#( rX$[$!!!lj!!!1k!!!+KM!!#S"!!!I!-!!%##!$5!IJ!#J"m!!R`$!!"!JJ!N1(i !"MLI!!BiS!!!1-!!!8J!!!&J!!!!9'!'2d##!!JlS!!"1(d!!)!"!&Ji)3"3I!J $TS2Krrb$`IriJk(rp%k!!#"&G3#3"5)!!!"84@i-"!!!!'3!!!!-J!#3#i!!!)J B!!!!4AF!N!9M!*!%4@X!"!!!!'8!!!#3!)!!N!Gm#!+QNq(rr*2"rrL3!!%!#*3 KrZ!l``!!N!#"!6b$iJ!!1'%!J)#"!6`iS!!"5!!!!6KK!-JiJ3#!5!!!!8J!!#` iB3$)1*i!!%J!!!&8B!Br3B)!$$KJ!!&)!!!J1'%!1$L"!-K)!!!"U"m!!#`!!!" "J[r31'!!!)!"!5Ji)3%JI!J$TS2Krrb$`Iri6S!!)%9d!`#3"!)!!!!F4A8!N!9 E!!!!,%9e!*!&#!!!!$K&G3#3"@%!!!")4A8!N!8@!!!!C%9Z$!3!!!"Q!!!!$)! !N!Z!!!#3!"!!!!"&G`#3"@8!N!4&D`!%!!!!C`!!!+b!!*!(I!J#TT2Krrb6`Ir iN!!"!!L8)Ip`N!"K!+Jlj!!!N!#K!,!laJ!!,"i!2d#"!"3i!2rEJ')!!,!$!!" )!!"31'%!1$LI!!")!!!"J')!!+J$!!!X!!!!3))!0$Kr!!H!J3#`Qpm!"PI&"Mj )!!!"B!!!!)!I!!)X!!!"3))!%$Kr!!!iJ2rr5!!!!B"K!+JiR`!!5!!!!B!"!*J i)3#3!(`)!kD$iIrmJm(rq%k!!#"&G!-!N!3#!!!!-%9e!*!&6J!!!%4&G!-!N!3 #!!!!5%9e!*!&'3!!!'K&G3#3"4!!!!#%4A8!N!8)!!!!N!"&EJ`%!!!!D!!!!!b !!*!,J!!!V"!!!!"&G`#3"@F!N!4&D`!%!!!!#3!!!%5!!*!(I!J#TT2Krrb3!!% !#*3Krm#3!'%!@*!!J3"F1q8!!)"K!&L!J3"F1,m!!BMI!!")!!!"J!%!5$JK!%" m#!1QJq(rr%k!!#"&G3#3"@F!!!!X4@i-"!!!!'N!!!!-J!#3#i!!!%3)!!!!4AF !N!8*!*!%4@X!"!!!!'S!!!"%J!#3"h`)!UD3!!%!#*3Kri#3!'%!Q*!!J3#FN!# K!+!iB3!iJ)%!R%J!!!'!B3#B1)%!1)#K!+")!!!"J!%!L$JK!)"m#!1Q6S!!)%9 e!*!&#!!!!#"&G3#3"3N!!!!`4@i-"!!!!'X!!!!-J!#3#i!!!%3!N!4&G`#3"@S !N!4&D`!%!!!!E!!!!&#!!*!(I!J#TT2Krrb3!!%!#*3Krm#3!'%!@*!!J3"F1q8 !!$Kr!!")!!!"B!!!!$M$!!#!B3"BJ)%!A$Lr!!")!!!"J!%!5$JK!%"m#!1QJq( rr%k!!#"&G3#3"@d!!!!J4A8!N!9R!!!!1%9Z$!3!!!"Z!!!!$)!!N!Z!!!"3#!! !!%9h!*!&E!#3"%9V!!3!!!"[!!!!4)!!N!Gm#!+QN!!"!!L8)Iq!N!"K!*L3!)% !R*!!S3#J1'%!1)#"!*a)!!!"J'%!Q$L"!$L!S3#J5!!!!B!"!)Ji)3#!I!J$TNk !!#"&G3#3"3J!!!!J4A8!N!9X!!!!-%9Z$!3!!!"`!!!!$)!!N!Z!!!"%!*!%4AF !N!9[!*!%4@X!"!!!!(%!!!#JJ!#3"h`)!UD6iIrmNm(rq*!!!3!)P#(rF*!!B3# SN!#"!+`la3!!Jq)!!$KK!$L!J3#X5!!!!B!"!$SX!!!"3))!&$KK!$JiRJ!!5!! !!8J!!$5S!3!iX"m!&S!"!$U3!"m!-$J"!$k3!"m!%V2I!"`iI`!!5!!!!@!!!!# !JJ!!X'3!!)"K!+JiJ3!i5!!!!B!"!*Ji)3#3!(`)!kD$iIrmJm(rq%k!!#"&G!- !N!3&!!!!)%9e!*!&#!!!!#a&G3#3"4!!!!"%4A8!N!8m!!!!E%9d!`#3"!)!!!" d4A8!N!8)!!!!K%9Z$!3!!!"b!!!!$)!!N!Z!!!#J%!!!!%9h!*!&F3#3"%9U!!3 !!!"c!!!!d)!!N!Fi!!!!N!!&!!")!!#dJ!8!!&3!)$D3!!8!!)J$!!"m!!Gd,!! !4d#!!#3X!!!k3)!!%#`!!$"!J!!S5!!!H#`!!%&!J!"85!!!E#`!!'G!J!"N,!! !B8#!!#4)!!"BJ18!!)J$!!"m"JGd1!Erd(cJ!hL3!!8!!%J!!%5!j3!!L!-!!(` '"h3i"[qTI1!$H*!!"3!!5!!!+)$P!!#)!`!!I!B(G$J'rmPmi!0iN!!&!!")!!! -1'!!!%k!!#!iB`!",!3!!$L%rrp!J[p)1'!!!8k!!#"&D`!%!!!!G!!!!G#!!*! (I!J#TT2Krrb6`IriNk(rp*!!!3!)P#(rB$[$!!!lj!!!Q+%!`i1L!!#)"!!!,!! !%6[r!!&"JJ!-1'!!!%J!!AJiI`!!1)!!"$LK!)")!!!"9'!'2d'#!9b!!3#!X"i !!$Kr!!3iJ!!)1+%!J%J!!!&8B!Br3B)"2)!"!)#3!"i!!S`I!!`X!!!k3))"+$K r!!%iJ!!k5!!!!@!!!!!S!`!!3))"%)JI!!&m!!Ge3))!'$KK!$JiRJ!!5!!!!6K J!!&)!!$d1(m!!8J!!!&J!!!!Q(m!!)"L!!#)!`!!+!!!!%'#!%#SIJ!!J*i!!ML r!!!ihJ!!5!!!!@!!!!#`I3!!I'!(08'#!$LS(3!!,!$re8##!#`i!!!!X"d!!%J !!#!iIJ!'1*m!!)JI!!"m"3Gd1+8!!8J!!!&J!!!!L!%!`bJ!!!"!JJ!JJ')!!)J $!!!S!!!!3B)!%$Kq!!!iJ!!"5!!!!6Kq!!BiR`!!1+!!!$M!!!&)!!!"B!!!!&4 J"Mp"JJ!J1(i!"MLI!!#)(`!!I!8(G$LP!!&)!!!"B!!!!$J!!$UB(`!!1'!!!8J !!!JiB!!!J!%!U$JK!+"m#!1QJq(rr)2"rrL$SIrd6S!!)%9d!`#3"!)!!!!N4A8 !N!9c!!!!6%9e!*!&F`!!!'a&G3#3"9%!!!#84A8!N!8@!!!!Z%9e!*!&E3!!!-K &G!-!N!3J!!!!e%9e!*!&)3!!!24&G3#3"4N!!!%d4A3$!*!%(!!!!8K&G3#3"4d !!!&J4A8!N!8L!!!"G%9e!*!&'3!!!CK&EJ`%!!!!G3!!!!b!!*!,J!!"d"J!!!" &G`#3"A3!N!4&D`!%!!!!GJ!!!Y5!!*!(I!J#TVmKrq53!!%!#*3Kra!l``!!1q3 !!$XP!!#$3J!!Ji)!!%J!!!&8B!Br3B)!$$Kq!!")!!+-1(m!!%J!!!&J!!!!N!" K!-L$BJ!!J')!!)J$!!!S!!!!3B)!l$Kq!!")!!!"1(m!!$LE!!")!!!"B!!!!+K q!!#!RJ!#1,X!!$MH!!")!!!"B!!!!,"m!!"mB!Fe3B)!*%#!!+`X!2r93B)!#%J !!+!i!!!!X"`!!$Kq!!")!!)-9b!'2d##!"b)'J!!+!!!!%'#!"!iIJ!!1)!!!8J !!!%iI`!!1)!!1NJ!!!&J!!!!I(dEH8'#!!Jlr3!"1(m!!$LE!!")!!!"B!!!!$K q!!BiQ`!!1+!!!$M!!!&)!!!"B!!!!&4J"Mp"JJ!F1(i!"MLE!!#)Z`!!1+8!!8J !!!&J!!!!1(i!!%J!!B#)(`!!,!!!1N'#!"`iI`!!1)!!1NJ!!!&J!!!!I(dEH8# #!#!iIJ!!5!!!!BJI!!!X!!!k3))!D$[r!!&)!!"JI"rS8#`!!$j!J3!81!$rfl! F!!!iIJ!!5!!"*$Kq!!FiR`!!I,rS8$J&!!'B(J!'9!8'2NJ!!!&J!!!!1(i!!$L !rrp)!!!"I'!(08'#!!`iIJ!!5!!!k$[p!!'S(!!!,!!!!%'#!+JiIJ!!5!!!d)J I!!!X!!!k3))!0$Kq!!!iJ!!"5!!!!6KK!)!iRJ!!5!!!!DJF!!!X!!!!1rm!!8' #!'`iIJ!!5!!!P$Kr!!!iJ!!k5!!!!@!!!!"mI4Yj3B)!$$J!!!#B(3!!1'%!1$L H!!!i[`!!5!!!!5JG!!""JJ!-1!!!1TJG!!#S(!!!,!!!!%'#!!`iIJ!!5!!!3#J G!!""JJ!81rd!!BJI!!"m!!Ge3),rA&FJ"Mp!JJ!FL"S!!#J!!!""JJ!31(i!!$L !!!&)!!!"1(i!!)!"!2Ji)3$`I!J$TVXKrq41J!!J4A3$!*!%(!!!!"a&G!-!N!3 #!!!!)%9e!*!&G!!!!#4&G3#3"@d!!!!m4A3$!*!%0J!!!%K&G!-!N!3J!!!!6%9 e!*!&$J!!!'"&G3#3"AF!!!"X4A8!N!8K!!!!K%9e!*!&(3!!!04&G3#3"AJ!!!$ J4A8!N!9h!!!!r%9e!*!&)J!!!44&G3#3"4N!!!%d4A8!N!94!!!"@%9e!*!&&3! !!@a&G3#3"4N!!!'i4A8!N!83!!!"b%9e!*!&(3!!!JK&G3#3"4B!!!)84A8!N!9 4!!!#1%9e!*!&E!!!!Pa&G3#3"4d!!!+i4@i-"!!!!(N!!!!-J!#3#i!!!Y3i!!! !4AF!N!9f!*!%4@X!"!!!!(S!!!!iJ!#3"h`)!UD3!!%!#*3Kri#3!'%!Q$KK!$L !J3#B1+!!!8J!!!%iB3!i5!!!!B!"!)Ji)3#!I!J$TNk!!#"&G3#3"4X!!!!F4A8 !N!8l!!!!*%9Z$!3!!!"l!!!!$)!!N!Z!!!!i!*!%4AF!N!9k!*!%4@X!"!!!!(` !!!!iJ!#3"h`)!UD3!!%!#*3Kri#3!'%!Q$KK!$L!J3#B1+!!!8J!!!%iB3!i5!! !!B!"!)Ji)3#!I!J$TNk!!#"&G3#3"4X!!!!F4A8!N!9+!!!!*%9Z$!3!!!"p!!! !$)!!N!Z!!!!i!*!%4AF!N!9m!*!%4@X!"!!!!(i!!!"!J!#3"h`)!UD3!!%!#*3 Kri#3!'%!Q*!!J3#F1'%!1)#"!*JiS!!"5!!!!6KK!$L!J3#F5!!!!B!"!)Ji)3# !I!J$TNk!!#"&G3#3"4X!!!!J4A8!N!90!!!!,%9Z$!3!!!"r!!!!$)!!N!Z!!!" !!*!%4AF!N!9q!*!%4@X!"!!!!)!!!!!iJ!#3"h`)!UD3!!%!#*3Kri#3!'%!Q$K K!$L!J3#B1+!!!8J!!!%iB3!i5!!!!B!"!)Ji)3#!I!J$TNk!!#"&G3#3"4X!!!! F4A8!N!98!!!!*%9Z$!3!!!#"!!!!$)!!N!Z!!!!i!*!%4AF!N!@!!*!%4@X!"!! !!))!!!"`J!#3"h`)!UD3!!%!#*3Kri#`B3#DN!#"!*`iB3!iU)%!QNJ!!!'!B3# F1+2rq$L"!$!i!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!LJ"!!-N!" P!!L`"3!-J')!!+KM!!#!!3#)1#%!J(`)!kC1J!!J4A8!N!8a!!!!(%9d!`#3"!) !!!"B4@i-"!!!!)-!!!!-J!#3#i!!!(!!N!4&G`#3"B)!N!4&D`!%!!!!K!!!!(b !!*!(I!J#TT!!!3!)P#(rJ,"K!*U3!)%!R*!!S3#J1'%!1+L"!*U!S3#F1-!!!%J !!!'!B3#J1+2rq$L"!$!i!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!L J"!!-N!"P!!L`"3!-J')!!+KM!!#!!3#)1#%!J(`)!kC1J!!J4A8!N!8N!!!!+%9 d!`#3"!)!!!"N4@i-"!!!!)8!!!!-J!#3#i!!!(`!N!4&G`#3"B3!N!4&D`!%!!! !KJ!!!(5!!*!(I!J#TT!!!3!)P#(rJ*!!B3#BN!#"!*`iB3!iJ)%!Q$LJ!!")!!! "J'%!R$LMrrJiJ3!`1!!!#(`*!kD%C!!)J!3!"*4P!!L3!!8!"%)!rr#!C!!)S!3 !$*!!C3!)X!8!$)"L!!#SB`!!J!%!L$JK!)"m#!1Q6S!!)%9e!*!&GJ!!!#"&G!- !N!3#!!!!A%9Z$!3!!!#(!!!!$)!!N!Z!!!"d!*!%4AF!N!@'!*!%4@X!"!!!!)J !!!#!J!#3"h`)!UD3!!%!#*3Kri#3!'%!Q,#"!*k3!+%!S*!!`3#N1'%!1)#"!*L SS3#HJ-%!S%J!!!'!B3#N1+2rq$L"!$!i!!!)I!N$TS4N!!L!"!!%P'8!#*!!"3! %3J$rm)"N!!LJ"!!-N!"P!!L`"3!-J')!!+KM!!#!!3#)1#%!J(`)!kC1J!!J4A8 !N!8V!!!!,%9d!`#3"!)!!!"S4@i-"!!!!)N!!!!-J!#3#i!!!)!!N!4&G`#3"BJ !N!4&D`!%!!!!LJ!!!)#!!*!(I!J#TT2Krrb3!!%!#*3Krc!li`!!1'%!J$LI!!! iS!!!5!!!!6KK!$JiJ3#!5!!!!6LrrrJiJ3!`1!!!#(`*!kD%C!!)J!3!"*4P!!L 3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$)"L!!#SB`!!J!%!f$JK!0"m#!1QJq( rr%k!!#"&G3#3"4X!!!!J4A8!N!8@!!!!,%9d!`#3"!)!!!"N4@i-"!!!!)X!!!! -J!#3#i!!!)!)!!!!4AF!N!@+!*!%4@X!"!!!!)`!!!#)J!#3"h`)!UD6iIrmN!! "!!L8)Im`1q-!!*!!J3$X1'%!J$LI!!!iS!!!5!!!!6KK!$JiJ3#!J+%!l%J!!!% i[rri1)%!-$J!!!Km#31QK'3!#)!%!!58C3!)N!!&!!4#!2r`J'3!#+!%!!b3!'8 !#,!&!!b!BJ!!U'-!!)!"!0Ji)3$3I!J$TS2Krra1J!!J4A8!N!8E!!!!*%9e!*! &DJ!!!$4&G!-!N!3#!!!!E%9Z$!3!!!#0!!!!$)!!N!Z!!!#)#!!!!%9h!*!&M!# 3"%9V!!3!!!#1!!!!I)!!N!Gm#!+QNq(rr*2"rrL6SIrdN!!"!!L8)Ip`1k-!!$[ %!!!iB3!i1*d!!$LJ!!")!!!"1'%!1$LH!!!iS!!!5!!!!6[M!!"ri!Fe3B)!$$K r!!")!!!31"d!"T!!(J!51'!!!)!"!*Ji)3#3!(`)!kD$iIrmJm(rq)1Krr41J!! J4A8!N!8E!!!!,%9e!*!&2`!!!$a&EJ`%!!!!M`!!!!b!!*!,J!!!I"J!!!"&G`# 3"Bi!N!4&D`!%!!!!N!!!!!#)J!#3"h`)!UD6iIrmN!!"!!L8)Im`1q-!!,#"!1i iB3#!1*m!!$LJ!!")!!!"1'%!1$L"!)#SS3$Z5!!!!6LrrrJiJ3!`1!!!#(`*!kD %C!!)J!3!"*4P!!L3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$)"L!!#SB`!!J!% !f$JK!0"m#!1QJq(rr%k!!#"&G3#3"4X!!!!N4A8!N!9a!!!!0%9d!`#3"!)!!!" X4@i-"!!!!*%!!!!-J!#3#i!!!)J)!!!!4AF!N!@3!!#3"%9U!!3!!!#5!!!!B)! !N!Gm#!+QNq(rr*!!!3!)P#(rF*!!B3#S1!!!!*!!!3"+1'%!1%J!!!&J!!!!1q- !!(rJ"c9"JJ!-1(m!!%J!!"5S!3"1J'%!U,!$!!!iB!!!J!%!Q$JK!*!!I!J$TS2 Krra1J!!J4A8!N!@6!!!!)%9Z$!3!!!#8!!!!$)!!N!Z!!!"J#!!!!%9h!*!&NJ# 3"%9V!!3!!!#9!!!&q)!!N!Gm#!+Q[d(rk*!!!3!)P#(lF*!!B35SN!#""+`iB33 SJ)%%U$LJ!!&)!!!"1'%$i)#""+`iS!!"5!!!!6KK!4!iJ32J1+!!!8J!!!%iB31 B1)%"%%J!!!'S!33S,!!!!%##!#!iB33S5!!!!6[M!!"ri!Fe3B)!$$Kr!!")!!9 XU!%$i#`!!!"!JJ!J1'%$i%J!!!%li`!!Iq!(08'#!!`iI`!!5!!&4+KK"#LS!32 JI!-!!%'#!!`iB2VT5!!&,$KK"#iiJ32Q1+!!!$M!!!&)!!!"B!!!!&4J"Mjm!!! d9"lCIS"K"#U!!32LI'-!8$!$rrprS"N31'%$i$L"!RJiS!!!5!!!!AaJ"c4m!!! d9"cCIMKK"#JiJ3,N1+!!!%J!!!%li`!!Iq!(08'#!!`iI`!!5!!%Y)J"!`*8!!E h3B)!)$KK"#JiJ32J5!!!!94J"Mp"JJ!-1'$rKNJ!")`lB!!!L!%$!P3!"[G!JJ! 8L!%$!P3!"rp"JJ!)1f!!!9GJ"Mp"JJ!BU'%%+)#""#SiS33Z5!!!!@!!!!"A`!B r3))!&&HJ"Mp!JJ!-1q!!!%J!!maAJ!Br3B)!f)J"!TC8!!Eh3B)!'+!"!U`S!!! !3B)!$$KJrp&)!!331'%!b$b!9%fSS32JJ-%$iML%8%C)!!!"1+%#+$L$rrJi!!! )I!N$TS4N!!L!"!!%P'8!#*!!"3!%3J$rm)"N!!LJ"!!-N!"P!!L`"3!-1d!!!)J "!TC8!!Eh3))!&)J"!TC8!!Ir3B)!#$Y!!!&A3!Br3B)!'+KK!q#!J32L1+%$jNJ !!!&J!!!!U'%$i)#"!q)iS32Q1-%#0NJ!!!&J!!!!1q-!!(rJ"c9"JJ!-1(m!!%J !!eaAS!Br3))!*+KK"#L!J33U1+%%,MM"!qC)!!!"B!!!!$[M!!")!!*X9m!'2d# #!#LSB33SJ)%%+MLK"#k!`31D11%$RNJ!!!&J!!!!1q-!!%J!!N!iB3#!U)%%+)# K"#Si`32Q11!!!%J!!!%iS30)1)2rq$J!!!Km#31QK'3!#)!%!!58C3!)N!!&!!4 #!2r`J'3!#+!%!!b3!'8!#,!&!!`iB3035!!!!94J"Mp!JJ"XU'%%+)#""#SiS33 Z1-%$jNJ!!!&J!!!!1q-!!(rJ"c9!JJ(!U'%%+)#""#SiS32QJ-%$QMMK!jj)!!! "B!!!!$[M!!"ri!Fe3B)"Q+KK"#L!J33U1+%$jMM""#j)!!!"B!!!!%J!!A`iB3( S2)"86DLK!q#!`32L1)434NJ!!!%iB30@1)%"lSLK!HiiT3!"5!!!!@!!!!")!!" -1'%"S$b!9%fSS3(SJ-%"kML%8%C)!!!"1'%$9ML"!DD)S3'Q1+8!!8J!!!&J!!! !1'%"lML"!DD)S3'Q1+8!!8J!!!&J!!!!1'%$8%J!!!&8B!Br3),rV$KK!HK)!!! "9'!'2d##rjbSB33SJ)%%+MLK"#ii`30@5!!!!@!!!!!li`!!Iq!(08##!,bSB33 SJ)%%+MLK!eD!`31D11%$RNJ!!!&J!!!!1q-!!(rJ"c9"JJ!JU'%%+)#""#SiS30 @1-%%,NJ!!!&J!!!!5!!!H+KK!q#!J32L1+%$9MM"!qC)!!!"B!!!!$[M!!"ri!F e3B)!9$KK!$JiJ33S1+!!!8J!!!%iB3&B1)%!1%J!!!'SB32JJ)%$iMLK!eD!`3& D11%"ANJ!!!&J!!!!U'%%+)#""#SiS30@1-%%,NJ!!!&J!!!!9i!'2d'#!&Kri!F e3B)!2+KK!M#!J3)b1+%#0MM"!qC)!!!"B!!!!&G!"Mp"JJ!`U'%$i)#"!q)iS32 Q5!!!!@!!!!")!!!BU'%#-)#"!M)iS3)f5!!!!@!!!!"ri!Fe3))!+&I!"Mp!JJ! JU'%$i)#"!q)iS32Q1-%$jNJ!!!&J!!!!1q-!!&GJ"Mp"JJ!iIq!(08'#!"bSB33 SJ)%%+MLK"#j)!!!"B!!!!%J!!"LSB32JJ)%$iMLK!qC)!!!"B!!!!$Kr!!#!!35 B1#%%N!"m#!1QZd(rk%k!!#"&G3#3"4X!!!!N4A8!N!8E!!!!0%9e!*!&@`!!!%4 &G3#3"3J!!!"34A8!N!@5!!!!C%9e!*!&NJ!!!)a&G3#3"5)!!!$-4A8!N!8r!!! "!%9e!*!&2`!!!4a&G3#3"@8!!!&)4A8!N!@@!!!"N!"&G3#3"5X!!!(X4A8!N!@ @!!!#@%9e!*!&P`!!!R"&G3#3"CF!!!+N4A8!N!@B!!!#d%9e!*!&(`!!![4&G3# 3"5i!!!-`4A8!N!@A!!!$6%9e!*!&Q!!!!h4&G3#3"CF!!!1B4A8!N!8V!!!$Z%9 e!*!&'3!!!ma&G3#3"5X!!!2X4A8!N!8C!!!%!%9e!*!&'3!!""K&G3#3"5i!!!3 N4A8!N!8Z!!!%0%9e!*!&P`!!"&"&G3#3"CJ!!!4i4A8!N!@A!!!%R%9e!*!&P`! !",K&G3#3"9X!!!6B4A8!N!8)!!!%j%9e!*!&Q!!!"2a&G3#3"CF!!!884A8!N!@ A!!!&2%9e!*!&Q3!!"9K&G3#3"CS!!!9`4A8!N!@A!!!&Q%9e!*!&Q3!!"F"&G3# 3"CN!!!AB4@i-"!!!!*X!!!!-J!#3#i!!"IJ`!!!!4AF!N!@9!*!%4@X!"!!!!*` !!!#3!)!!N!Gm#!+QNq(rr*2"rrL3!!%!#*3Krh!l``!!Jq)!!$KK!$JiRJ!!1+! !!%J!!!'S(`!!,!!!!%'#!!bSI`!!5!!!2$LqrrJiJ3!`1!!!#(`*!kD%C!!)J!3 !"*4P!!L3!!8!"%)!rr#!C!!)S!3!$*!!C3!)X!8!$$KJ!!#!!3#B1#%!N!"m#!1 QJq(rr)2"rrK1J!!J4A3$!*!%!J!!!"K&G3#3"4X!!!!S4@i-"!!!!*d!!!!-J!# 3#i!!!*!!%!!!!%9h!*!&R!#3"%9V!!3!!!#H!!!!I)!!N!Gm#!+QNq(rr*!!!3! )P#(r!*!!B3%B1'%!T)#"!4JiS!!"5!!!!6KK!+3iJ3!i1+!!!8J!!!%li`!!Iq! (08'#!!`iI`!!5!!!*$KK!)4)!!!"B!!!!)!"!*b3!!%!D$KK!$K)!!!"B!!!!)! "!3Ji)3%!I!J$TS2Krra1J!!J4A8!N!8E!!!!)%9e!*!&2`!!!$"&G3#3"Cm!!!" -4A8!N!@J!!!!B%9Z$!3!!!#K!!!!$)!!N!Z!!!"m#!!!!%9h!*!&RJ#3"%9X"3% !!!!f!!!#!)!!N!G&E"!"!!!!+!!!!!'!!*!(4@`3"!!!!#F!!!!%J!#3"d9Y"33 !!!!&!!!!E)!!N!G&E38#!!!!!`!!!!+!!*!(4@d&!J!!!!)!!!!#J!#3"d9[#J3 !!!#L!!!!#)!!N!p&GJ#3"Ci!N!4&GJm!N!5M!!!!"%9[#J3!!!#N!!!!#)!!N!p &GJ#3"C`!N!4&GJm!N!5M!!!!"%9[#J3!!!#P!!!!#)!!N!p&GJ#3"C8!N!4&GJm !N!5M!!!!"%9[#J3!!!#Q!!!!#)!!N!p&GJ#3"C!!!*!%4AB2!*!%S`!!!!4&E`S %!!!!T`!!!!L!!*!24AB!N!@1!*!%4AB2!*!%S`!!!!4&E`S%!!!!U!!!!!L!!*! 24AB!N!@-!*!%4AB2!*!%S`!!!!4&E`S%!!!!U3!!!!L!!*!24AB!N!@+!*!%4AB 2!*!%S`!!!!4&E`S%!!!!UJ!!!!L!!*!24AB!N!@)!*!%4AB2!*!%S`!!!!4&E`S %!!!!U`!!!!L!!*!24AB!N!@'!*!%4AB2!*!%S`!!!!4&E`S%!!!!V!!!!!L!!*! 24AB!N!@%!*!%4AB2!*!%S`!!!!4&E`S%!!!!V3!!!!L!!*!24AB!N!@#!*!%4AB 2!*!%S`!!!!4&E`S%!!!!VJ!!!!L!!*!24AB!N!@!!*!%4AB2!*!%S`!!!!4&E`S %!!!!V`!!!!L!!*!24AB!N!9q!*!%4AB2!*!%S`!!!!4&E`S%!!!!X!!!!!L!!*! 24AB!N!9m!*!%4AB2!*!%S`!!!!4&E`S%!!!!X3!!!!L!!*!24AB!N!9k!*!%4AB 2!*!%S`!!!!4&E`S%!!!!XJ!!!!L!!*!24AB!N!9f!*!%4AB2!*!%S`!!!!4&E`S %!!!!X`!!!!L!!*!24AB!N!9d!*!%4AB2!*!%S`!!!!4&E`S%!!!!Y!!!!!L!!*! 24AB!N!9a!*!%4AB2!*!%S`!!!!4&E`S%!!!!Y3!!!!L!!*!24AB!N!9[!*!%4AB 2!*!%S`!!!!4&E`S%!!!!YJ!!!!L!!*!24AB!N!9X!*!%4AB2!*!%S`!!!!4&E`S %!!!!Y`!!!!L!!*!24AB!N!9U!*!%4AB2!*!%S`!!!!4&E`S%!!!!Z!!!!!L!!*! 24AB!N!8*!*!%4AB2!*!%S`!!!!4&E`S%!!!!Z3!!!!L!!*!24AB!N!9R!*!%4AB 2!*!%S`!!!!4&E`S%!!!!ZJ!!!!L!!*!24AB!N!9P!*!%4AB2!*!%S`!!!!4&E`S %!!!!Z`!!!!L!!*!24AB!N!9M!*!%4AB2!*!%S`!!!!4&E`S%!!!![!!!!!L!!*! 24AB!N!9K!*!%4AB2!*!%S`!!!!4&E`S%!!!![3!!!!L!!*!24AB!N!8Z!*!%4AB 2!*!%S`!!!!4&E`S%!!!![J!!!!L!!*!24AB!N!8G!*!%4AB2!*!%S`!!!!4&E`S %!!!![`!!!!L!!*!24AB!N!9B!*!%4AB2!*!%S`!!!!4&E`S%!!!!`!!!!!L!!*! 24AB!N!9E!*!%4AB2!*!%S`!!!!4&E`S%!!!!`3!!!!L!!*!24AB!N!8[!*!%4AB 2!*!%S`!!!!4&E`S%!!!!`J!!!!L!!*!24AB!N!91!*!%4AB2!*!%S`!!!!4&E`S %!!!!``!!!!L!!*!24AB!N!8@!*!%4AB2!*!%S`!!!!4&E`S%!!!!a!!!!!L!!*! 24AB!N!8r!*!%4AB2!*!%S`!!!!4&E`S%!!!!a3!!!!L!!*!24AB!N!98!*!%4AB 2!*!%S`!!!!4&E`S%!!!!aJ!!!!L!!*!24AB!N!9,!*!%4AB2!*!%S`!!!!4&E`S %!!!!a`!!!!L!!*!24AB!N!90!*!%4AB2!*!%S`!!!!4&E`S%!!!!b!!!!!L!!*! 24AB!N!9+!*!%4AB2!*!%S`!!!!4&E`S%!!!!b3!!!!L!!*!24AB!N!8q!*!%4AB 2!*!%S`!!!!4&E`S%!!!!bJ!!!!L!!*!24AB!N!8l!*!%4AB2!*!%S`!!!!4&E`S %!!!!b`!!!!L!!*!24AB!N!8d!*!%4AB2!*!%S`!!!!4&E`S%!!!!c!!!!!L!!*! 24AB!N!8a!*!%4AB2!*!%S`!!!!4&E`S%!!!!c3!!!!L!!*!24AB!N!8V!*!%4AB 2!*!%S`!!!!4&E`S%!!!!cJ!!!!L!!*!24AB!N!8N!*!%4AB2!*!%S`!!!!4&E`S %!!!!c`!!!!L!!*!24AB!N!8I!*!%4AB2!*!%S`!!!!4&E`S%!!!!d!!!!!L!!*! 24AB!N!8E!*!%4AB2!*!%S`!!!!4&E`S%!!!!d3!!!!L!!*!24AB!N!8)!*!%4AB 2!*!%S`!!!!4&E`S%!!!!dJ!!!!L!!*!24AB!N!89!*!%4AB2!*!%S`!!!!4&E`S %!!!!d`!!!!L!!*!24AB!N!88!*!%4AB2!*!%S`!!!!4&E`S%!!!!e!!!!!L!!*! 24AB!N!86!*!%4AB2!*!%S`!!!!4&E`S%!!!!e3!!!!L!!*!24AB!N!83!*!%4AB 2!*!%S`!!!!4&E`S%!!!!eJ!!!!L!!*!24AB!N!81!*!%4AB2!*!%S`!!!!4&E`S %!!!!e`!!!!L!!*!24AB!N!8(!*!%4AB2!*!%S`!!!!4&EJ-%!!!!8`!!!!5!!*! ,4AB&!*!%8`#3"%9[!`3!!!!&!!!!")!!N!Y&GJ8!N!3&!*!%4@i$"!!!!$B!!!! %J!#3#d9f"3#3"$B!N!4&EJ-%!!!!+J!!!!5!!*!,4AB&!*!%+J#3"%9Z!`3!!!! T!!!!")!!N!Y&GJ8!N!3T!*!%4@m$"!!!!#!!!!!%J!#3#d9f"3#3"#!!N!4&E`- %!!!!(!!!!!5!!*!,4AB&!*!%(!#3"%9[!`3!!!!%!!!!")!!N!Y&GJ8!N!3%!*! %4@m$"!!!!!-!!!!%J!#3#d9f"3#3"!-!N!4&E`-%!!!!!J!!!!5!!*!,4AB&!*! %!J#3"%9[$`3!!!#M!*!%J!#3"d9S!!!%U%G98dN!!HaPFR*[FPpI194'D@aP8h" PB`!#qQ0eFPC[E&pI194'D@aP8h"PB`!#Qf0eFN4TFPpI194'D@aP8h"PB`!%Zfa KFh4*EQC[Aemj9%CTE'96F'9M!!4D3$Ja-`!(k#j$D%4TFPpI194'D@aP8h"PBdC 53cP84QPXC90`C@-!"[!ZAepMG&pI194'D@aP8h"PBdC53cP84QPXC90`C@-!"cF ZAepKF'aIAcP84QPXC90`C@0'8%09B`!%@d!i-63!![NZ3h9bFQ9ZG%4TFPpI4P* c8Q`!"N`Z8%*)4f9d9QpX8hPZB`!%Ad!i-6J!!DBZ4'9QBA9XG%4TFPpI194'D@a P8h"PBdCf!!4k3$Jb-`!'!Lj'D@jN9QpXAemj9%CTE'96F'9M4R-!"i)Z8%*(CA4 @5@jQEe0jEQ-!"*K!1$-a!!0i,P*[Eh4IAcP84QPXC90`C@0'GJ!&1#j*Fe*[Eh4 IAcP84QPXC90`C@0'GJ!'B5j%C@CKG@adAemj9%CTE'96F'9M4RB!!p3ZAepYE9p I194'D@aP8h"PBdCf!!5I3$Jc1!!"Y5j36(0dFQ0`H3!(C5jYC@eMF(N!",T!1$3 c!!@S,PpIBh4IAcP84QPXC90`C@0'8N-f4P06F'9M9@-!!!YSBA0"E'PKF`!(ILj 5CA0[E(CPAemj9%CTE'96F'9M4P9M!!6B3$Je-3!#&#jIAf0dAemj9%CTE'96F'9 M4R0X8%09Be9M!!9kD'&c6@&VC8C68h"PB`!&Cbj'8deKDf9'8e0`C@-!"%`Z4A& eB@a6G(*TEQF!"2P!1$Bb!!'K,PpIBh4IAcP84QPXC90`C@0'Fe"$9@09B`!!P5j 33NGPG&G%5@jQEe0jEQ-!""a!1$Fe!!DKER)N1$Jd!!3p3$Ji03!%A%!i163!"&e !1$Ne!!B(,PpIBh4IAcP84QPXC90`C@0'9@acE!!$J5j'D@jN4QpXC'9b!!"N,R0 `FQPZG'B!"M-Z4AKTFh4cAemj9%CTE'96F'9M3dCf!!3Z,PpIB@eTAemj9%CTE'9 6F'9M4QN!"&j!1$Nf!!-F,PpIBh4IAcP84QPXC90`C@0'F`!"Y#j33NGPG%C$3NP ZCQp6H@jM!!3l3$N`-!!%##j#E'9cFepI194'D@aP8h"PBdCf!!4#3$N`0`!!lfC eE'a3BA4S!!)[,N0[F(P$Efe`EfjPER4IAdC58'033e9M9@-!!0BZE@9YE@pfC3! %A%!j-6%!"(Y!16)`!!$2,NCeE'a3BA4SAemj9%CTE'96F'9M3dCf!!&1,P"#4f9 d3f&d5@jQEe0jEQ-!"(a!16)a!!8h,NCeE'a"E'PKFe"KG'KIAcP84QPXC90`C@0 $4RB!"BmZ3f&d5@jQEepI194'D@aP8h"PBd0'8M%`3dPZCQp33P*PBe9M!!-[,N0 eFP*PFdCTE'8!"qBZ4P0`6h"PEP*PFdCTE'8!!@dZ8Q9c4A*bEh)!"DJZ4f9d-9* PFfpeFQ0P!!GX,N4PG'&MD&*PFfpeFQ0P!!9A,N0XEh0P8Q9c4QPXC3!$Pbj9Ff9 5CA0'D@aP!!9),NGPG%&XD@&c5@jQE`!'`bj%DA0`Eh0P5'&ZC'aP!!6#3$Nd0`! (D#j5C@a3BA4SAemj9%CTE'96F'9M3dCf!!!B,P*PE&"KG'KIAcP84QPXC90`C@0 $4R0X!!6G3$Ne-J!("Lj5C@a3BA4SAemj9%CTE'96F'9M3dC53cC'8e0`C@-!!aB ZAep`F&pI194'D@aP8h"PBdCf!!6l3$Nf-!!(r#jYC@eMEA!!"pdZFh4bBfKb!!3 r3$Ni-`!%38!j1$8!"K3Z4@jMEf4PAemj9%CTE'96F'9M3dCf!!4#3$Ni0J!%4%! j1$J!"'&!16Ne!!0c,P*PFfpXGQ9IAcP84QPXC90`C@0'8N-a-%0*EQC[8%*5C@- !"Aa!-6!`13!&Qd!a-$%i!!6a,PpIE@PIAcP84QPXC90`C@0$4QN!"E0!-6!b-!! "iLj5CA0[E(CP3@aTBA0'D@aP!!@e3$%`-M)!"G0!-6!c-!!&e8!a-$-b!!Hm,Pp ICA&IAcP84QPXC90`C@0$4P*$194'D@aP8h"PB`!&ed!a-$-d!!Ge,PpIEQ9IAcP 84QPXC90`C@0$4P*$194'D@aP8h"PB`!&f8!a-$-f!!9D,NPc8'&bC@jd6fCIAcP 84QPXC90`C@0$4P*$194'D@aP8h"PB`!&qN!a-$3h!!)$,N&NC&"KG'K$Efe`Efj PER4IAcP84QPXC90`C@0'8%0MD3!&'N!a-$8h!!8F3$%`06N!"cSZAep`E&pI194 'D@aP8h"PBd0'8%09B`!&08!a-$Ba!!Dd,PpIBA"XAemj9%CTE'96F'9M4P"$B`! ([5jcG(*XC@i!"6G!-6!f-`!'c#jIAh"XAemj9%CTE'96F'9M3dC33f-!"6P!-6! f03!%)#jIAhCMAemj9%CTE'96F'9M3dCc!!983$%`0c!!!h8Z8Q9KC%j)CAKIAdC 33f0T8&9X!!*p,NPc4@jMEf4PC%C68h"PBepI194'D@aP8h"PBdC33f09B`!&hN! a-6)h!!IF,PpIBh4IAcP84QPXC90`C@0'8%0M9@-!"#%Z3fp`H8-b8&0dFPpI4P" $Be"9B`!!AbjcG(*bBfKb!!@"3$%a0cN!"98Z4P0`-NCeE'a3BA4S!!@C3$%a1$% !"'%Z4P0`-P*PE&"KG'J!"CY!-6%i-`!(F5j'8h!b4'Pb8Q9X8'&dD!!&R8!a-6J e!!A5,NC6F$*&EQ0[C'PZC`!&Rd!a-6Jh!!Gc,NC5C@C1G@db4P06F'9M!!@K3$% a1$N!!UFZ9d3b4P06F'9M!!@j3$%a16%!"&3Z8'&dD$*'8e0`C@-!"EY!-6%j-`! (j#j6F'9MD@&X-NC68h"PB`!&[8!a-6Ne!!B5,NC6F&9`!!A!3$%a16J!!2`Z4P0 `4'phEJ!&R%!a-M!a!!0J,NC6F%0KG%PZCQm!"D"!-6)`03!"@5j'8h"*EQ4PH!! &Sd!a-M!i!!(d,N4PCQ&eE(4@8Q9QAep'8R-!"8`Z8%*(CA4@Efa6H@jM!!@p3$% b-6)!"5SZ4P0`8feKFR40EhCP!!+",NK5Fh4'6'pMD`!!l5j)8Q9ZB@eP!!#J,N0 KG%e[GQ8!!XNZ5&0PG%C-Ef0V!!#a,NK%C@aPG'8!"Ea!-6)j-!!$Fbj'8h"5CA0 [E(CP!!A!3$%b163!"l)Z4P0`9'peBfK'EfaNCA)!")JZ4f9d4'&dC94TE@8!!8B Z8%*6CA4$BA4*EQC[8hPZB`!&a%!a-MNi!!B24P0`9'peBfK'EfaNCA)!!hj86d- !!X*'8h"5CA0[E(CP!!4l4P0`8feKFR40EhCP!!!P4P0`5@jNCAJ!!Se'8h"$BA4 *EQC[!!G94P0`4'phEJ!&D8C6F&9`!!D&8h"PBfPKE$*'8e0`C@-!!eG3BA4S-NC 68h"PB`!"0&G%-NC68h"PB`!'h%C5C@C1G@db4P06F'9M!!3-4P0`-N9ZBfpND@j R!!D+4P0`-N4TFP*PE&"KG'J!!`e'8h!b8Q9X8'&dD!!%qdC6F$*'G@aX8'&dD!! '@epIBh4IAcP84QPXC90`C@0'8%0M9@-!!69*Fd9ZBfpNC@4'8e0`C@0IAcP84QP XC90`C@0'8%0M9@-!!qPIAhCMAemj9%CTE'96F'9M3dCc!!9UAep`E&pI194'D@a P8h"PBd0'8%0M!!@ZAepKF'aIAcP84QPXC90`C@0'8%0M!!EZAep`E&pI194'D@a P8h"PBd0'8%09B`!'GepIBA"XAemj9%CTE'96F'9M4P"$9@-!!A*"C'43BA4S3fp YF'pZC@jdAemj9%CTE'96F'9M4P"$BfN!"#0*Fe"KFQ9ZG%pQAemj9%CTE'96F'9 M3dC53cP84QPXC90`C@-!"[pIAfjPAemj9%CTE'96F'9M3dC53cP84QPXC90`C@- !"N&IAf9aAemj9%CTE'96F'9M3dC53cP84QPXC90`C@-!"Ie&H'PcG(0IAcP84QP XC90`C@0$4RB!"[95CA0[E(CPAemj9%CTE'96F'9M4P9M!!+r8Q9cEfafC9pI194 'D@aP8h"PBdC53c%`3dPZCQp33P*PB`!$29pIE@PIAcP84QPXC90`C@0$4QN!!r" IAf&YD9pI194'D@aP8h"PBdCT!!*iAep`F&pI194'D@aP8h"PBdCf!!+GAepYE9p I194'D@aP8h"PBdCf!!4p3f&d5@jQEepI194'D@aP8h"PBd0'8M%`3dPZCQp33P* PBe9M!!@E4@jMEf4PAemj9%CTE'96F'9M3dCf!!H&8Q9X8'&dD&pI194'D@aP8h" PBd0'Ff`!"Mp5C@a3BA4SAemj9%CTE'96F'9M3dC53cC'8e0`C@-!"XY5C@a3BA4 SAemj9%CTE'96F'9M3dCf!!4A4R9XE%&XD@&c8'&dD&pI194'D@aP8h"PBd0'GJ! (N8CeE'a3BA4SAemj9%CTE'96F'9M3dCf!!0J3QaPFh0IAcP84QPXC90`C@0'GJ! #&&pIBh4IAcP84QPXC90`C@0'F`!&!epIBh4IAcP84QPXC90`C@0'9@acE!!!Rep IBh4IAcP84QPXC90`C@0'Fe"$9@09B`!"e&pIBh4IAcP84QPXC90`C@0'Ffa33e9 M9@-!"'*IAf0dAemj9%CTE'96F'9M4P*$0NC68h"PBe9M!!AdAepMG&pI194'D@a P8h"PBdC53cP84QPXC90`C@-!"G&%C@CKG@adAemj9%CTE'96F'9M4RB!"(0*Fe* [Eh4IAcP84QPXC90`C@0'GJ!#bP*[Eh4IAcP84QPXC90`C@0'GJ!&DdCTEQ4@Efa IAcP84QPXC90`C@0'F`!!i84PCQ&eE(4%DA*IAcP84QPXC90`C@0'GJ!'4%0S4'P bAemj9%CTE'96F'9M4P*$194'D@aP8h"PB`!!QY%!!!%!!!!"!*!)(R4*4&0jE@* [E!Q3"$dJ-M-X$3PV4QpZG%P%6@pLD@aP#C!%25!b0!ep1`d0)fPQ)%p-4&*2994 *6N9138e&8`d0C@jeE5"l$3PZCAGCEh*V#C!'25"V4QpZG%P%6Q9h@@pbDb`0#@G PEQ9fB3Q3"MdJDdC[ER4*4%GPEQ9fB5`0#@e[EQ&ME`Q3"MdJDdC[ER4*4%e[EQ& MEb`0#ACPEQPMC3Q3"MdJDdC[ER4*4&CPEQPMC5`0#@a[EQ4[EJQ3"MdJDdC[ER4 *4%a[EQ4[EL`0#@&dD'9ZF`Q3"Md!!!%!!!!"!*!)(J#3#4`!([rr5aJ: \ No newline at end of file diff --git a/src/mac/main.cpp b/src/mac/main.cpp deleted file mode 100644 index 47a9924bae..0000000000 --- a/src/mac/main.cpp +++ /dev/null @@ -1,18 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Entry point -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/app.h" - -int main(int argc, char* argv[]) -{ - return wxEntry(argc, argv); -} - diff --git a/src/mac/makefile.nt b/src/mac/makefile.nt deleted file mode 100644 index 2865fbcec3..0000000000 --- a/src/mac/makefile.nt +++ /dev/null @@ -1,955 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds wxWindows stubs library wxstubs.lib for VC++ (32-bit) -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# - -!include - -APPVER=3.50 # 4.0 -# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0). -WINVERSION=-DWINVER=0x0400 - -# On Alpha machines, change to CPU=ALPHA -CPU=i386 - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -WINFLAGS=-c -W3 -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 $(WINVERSION) -D__WIN32__ -D__WINDOWS__ -WINLINKFLAGS=/INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER) -WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib\ - comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib # libci.lib # libci.lib required for VC++ 4.2 - -# Change this to your WXWIN directory -WXDIR=$(WXWIN) - -WXSRC=$(WXDIR)\src\stubs -WXINC=$(WXDIR)\include -WXBASESRC=$(WXDIR)\src\common - -WXLIB=$(WXDIR)\lib\wxstubs.lib - -EXTRADLLFLAGS= - -INC=-I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/zlib $(EXTRAINC) -LIBS = $(EXTRALIBS) $(WXLIB) $(WINLIBS) - -!ifndef FINAL -FINAL=0 -DEBUG=1 -!endif - -# Set this to 1 if you don't want to use precompiled headers -NOPCH=1 - -OPTIONS= - -!if "$(FINAL)" == "0" -OPT = /Od /Gy -# ***N.B.*** to save space/time, comment out /FR to avoid browse info (.sbr files) being generated -DEBUG_FLAGS= /Zi # /FR -LINK_DEBUG_FLAGS=-debug:full -debugtype:cv # /PDB:NONE -CRTFLAG=/MD -!else -# /O1 - smallest code -# /O2 - fastest code -OPT = /O1 # /O2 # /Od -DEBUG_FLAGS= -LINK_DEBUG_FLAGS=/RELEASE -CRTFLAG=/MD -!endif - -PCH= -PRECOMP= -MAKEPRECOMP= - -CPPFLAGS=$(WINFLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXSTUBS__ /DDEBUG=1 $(INC) $(OPT) $(CRTFLAG) /GX /D__WXDEBUG__ /DWXDEBUG=1 -# If you don't include wxprec.h, use CPPFLAGS2 -CPPFLAGS2=$(WINFLAGS) $(DEBUG_FLAGS) /D__WXSTUBS__ /DDEBUG=1 $(INC) $(EXTRAFLAGS) $(OPT) $(CRTFLAG) /GX /D__WXDEBUG__ /DWXDEBUG=1 -LINKFLAGS=$(LINK_DEBUG_FLAGS) $(WINLINKFLAGS) -entry:WinMainCRTStartup - -THISDIR=$(WXWIN)\src\stubs - -LIBTARGET=$(WXLIB) - -# Please set these according to the settings in wx_setup.h, so we can include -# the appropriate libraries in wx.lib - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -GENDIR=..\generic -COMMDIR=..\common -STUBSDIR=. - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\colrdlgg.obj \ - $(GENDIR)\fontdlgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\msgdlgg.obj \ - $(GENDIR)\panelg.obj \ - $(GENDIR)\printps.obj \ - $(GENDIR)\prntdlgg.obj \ - $(GENDIR)\scrolwin.obj \ - $(GENDIR)\splitter.obj \ - $(GENDIR)\statusbr.obj \ - $(GENDIR)\tabg.obj \ - $(GENDIR)\textdlgg.obj - -# $(GENDIR)\helpxlp.obj \ - -COMMONOBJS = \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\fileconf.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\postscrp.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\process.obj \ - $(COMMDIR)\fstream.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\zstream.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\wincmn.obj - -# $(COMMDIR)\odbc.obj \ - -STUBSOBJS = \ - $(STUBSDIR)\accel.obj \ - $(STUBSDIR)\app.obj \ - $(STUBSDIR)\bitmap.obj \ - $(STUBSDIR)\bmpbuttn.obj \ - $(STUBSDIR)\brush.obj \ - $(STUBSDIR)\button.obj \ - $(STUBSDIR)\checkbox.obj \ - $(STUBSDIR)\checklst.obj \ - $(STUBSDIR)\choice.obj \ - $(STUBSDIR)\clipbrd.obj \ - $(STUBSDIR)\colordlg.obj \ - $(STUBSDIR)\colour.obj \ - $(STUBSDIR)\combobox.obj \ - $(STUBSDIR)\control.obj \ - $(STUBSDIR)\cursor.obj \ - $(STUBSDIR)\data.obj \ - $(STUBSDIR)\dc.obj \ - $(STUBSDIR)\dcmemory.obj \ - $(STUBSDIR)\dcclient.obj \ - $(STUBSDIR)\dcscreen.obj \ - $(STUBSDIR)\dialog.obj \ - $(STUBSDIR)\dirdlg.obj \ - $(STUBSDIR)\filedlg.obj \ - $(STUBSDIR)\font.obj \ - $(STUBSDIR)\fontdlg.obj \ - $(STUBSDIR)\frame.obj \ - $(STUBSDIR)\gauge.obj \ - $(STUBSDIR)\gdiobj.obj \ - $(STUBSDIR)\helpxxxx.obj \ - $(STUBSDIR)\icon.obj \ - $(STUBSDIR)\imaglist.obj \ - $(STUBSDIR)\joystick.obj \ - $(STUBSDIR)\listbox.obj \ - $(STUBSDIR)\listctrl.obj \ - $(STUBSDIR)\main.obj \ - $(STUBSDIR)\mdi.obj \ - $(STUBSDIR)\menu.obj \ - $(STUBSDIR)\menuitem.obj \ - $(STUBSDIR)\metafile.obj \ - $(STUBSDIR)\minifram.obj \ - $(STUBSDIR)\msgdlg.obj \ - $(STUBSDIR)\notebook.obj \ - $(STUBSDIR)\palette.obj \ - $(STUBSDIR)\pen.obj \ - $(STUBSDIR)\printdlg.obj \ - $(STUBSDIR)\print.obj \ - $(STUBSDIR)\radiobox.obj \ - $(STUBSDIR)\radiobut.obj \ - $(STUBSDIR)\region.obj \ - $(STUBSDIR)\scrolbar.obj \ - $(STUBSDIR)\settings.obj \ - $(STUBSDIR)\slider.obj \ - $(STUBSDIR)\spinbutt.obj \ - $(STUBSDIR)\statbmp.obj \ - $(STUBSDIR)\statbox.obj \ - $(STUBSDIR)\statusbr.obj \ - $(STUBSDIR)\stattext.obj \ - $(STUBSDIR)\tabctrl.obj \ - $(STUBSDIR)\taskbar.obj \ - $(STUBSDIR)\toolbar.obj \ - $(STUBSDIR)\textctrl.obj \ - $(STUBSDIR)\thread.obj \ - $(STUBSDIR)\timer.obj \ - $(STUBSDIR)\treectrl.obj \ - $(STUBSDIR)\utils.obj \ - $(STUBSDIR)\utilsexc.obj \ - $(STUBSDIR)\wave.obj \ - $(STUBSDIR)\window.obj - - -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(STUBSOBJS) - -# Normal, static library -all: $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET) - -$(WXDIR)\lib\wxstubs.lib: $(OBJECTS) $(PERIPH_LIBS) - -erase $(LIBTARGET) - $(implib) @<< --out:$@ --machine:$(CPU) -$(OBJECTS) $(PERIPH_LIBS) -<< - -######################################################## -# Windows-specific objects - -$(STUBSDIR)/accel.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/app.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/bitmap.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/bmpbuttn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/brush.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/button.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/choice.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/checkbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/checklst.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/clipbrd.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/colordlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/colour.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/combobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/control.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/cursor.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/data.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcmemory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcclient.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcprint.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcscreen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dialog.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dirdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/filedlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/font.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/fontdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/frame.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/gauge.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/gdiobj.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/icon.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/imaglist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/joystick.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/listbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(STUBSDIR)/listctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(STUBSDIR)/main.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/mdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/menu.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/menuitem.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/metafile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/minifram.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/msgdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/notebook.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/palette.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/pen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/printdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/print.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/radiobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/radiobut.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/region.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/scrolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/settings.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/slider.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/spinbutt.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statbmp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/stattext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/tabctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/taskbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/toolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/textctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/thread.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/timer.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/treectrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/utils.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/utilsexc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/wave.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/window.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -######################################################## -# Common objects (always compiled) - -$(COMMDIR)/cmndata.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/config.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/db.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/dbtable.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/docview.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/docmdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/dynarray.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/event.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/file.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/fileconf.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/filefn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/framecmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/gdicmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/intl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/ipcbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/helpbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/layout.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/log.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/memory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/module.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/object.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/odbc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/postscrp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/prntbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/resource.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/tbarbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/tbarsmpl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/textfile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/timercmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/utilscmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/validate.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/valtext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/date.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/wxexpr.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/hash.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/list.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/string.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/matrix.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -#$(COMMDIR)/wxstrgnu/wxstrgnu.obj: $*.$(SRCSUFF) -# cl @<< -#$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -#<< - -#$(COMMDIR)/wxstrgnu/wxregex.obj: $*.$(SRCSUFF) -# cl @<< -#$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -#<< - -$(COMMDIR)/time.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\stream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\fstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\mstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\zstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\datstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/extended.obj: $*.c - cl @<< -$(CPPFLAGS2) /c /Tp $*.c /Fo$@ -<< - -$(COMMDIR)/process.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/wincmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/y_tab.obj: $*.c $(COMMDIR)/lex_yy.c - cl @<< -$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ -<< - -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(GENDIR)/choicdgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/colrdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/fontdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/gridg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/helpxlp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/msgdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/panelg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/printps.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/prntdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/scrolwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/splitter.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/tabg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/textdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(OBJECTS): $(WXDIR)/include/wx/stubs/setup.h - -clean: $(PERIPH_CLEAN_TARGET) - -erase *.obj - -erase $(LIBTARGET) - -erase $(WXDIR)\lib\*.pdb - -erase *.pdb - -erase *.sbr - -erase *.pch - cd $(WXDIR)\src\stubs - cd $(GENDIR) - -erase *.pdb - -erase *.sbr - -erase *.obj - cd $(WXDIR)\src\stubs - cd $(COMMDIR) - -erase *.pdb - -erase *.sbr - -erase *.obj - -erase y_tab.c - -erase lex_yy.c - cd $(WXDIR)\src\stubs - -cleanall: clean - diff --git a/src/mac/makefile.unx b/src/mac/makefile.unx deleted file mode 100644 index d5d55d86d4..0000000000 --- a/src/mac/makefile.unx +++ /dev/null @@ -1,201 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for wxStubs library, Unix - -EXTRACFLAGS=-DLEX_SCANNER - -include ../make.env - -LIB_CPP_SRC=\ -\ - ../common/cmndata.cpp \ - ../common/config.cpp \ - ../common/date.cpp \ - ../common/docmdi.cpp \ - ../common/docview.cpp \ - ../common/dynarray.cpp \ - ../common/dynlib.cpp \ - ../common/event.cpp \ - ../common/file.cpp \ - ../common/fileconf.cpp \ - ../common/filefn.cpp \ - ../common/gdicmn.cpp \ - ../common/hash.cpp \ - ../common/helpbase.cpp \ - ../common/intl.cpp \ - ../common/ipcbase.cpp \ - ../common/layout.cpp \ - ../common/list.cpp \ - ../common/log.cpp \ - ../common/matrix.cpp \ - ../common/memory.cpp \ - ../common/module.cpp \ - ../common/object.cpp \ - ../common/odbc.cpp \ - ../common/postscrp.cpp \ - ../common/prntbase.cpp \ - ../common/resource.cpp \ - ../common/serbase.cpp \ - ../common/string.cpp \ - ../common/textfile.cpp \ - ../common/tbarbase.cpp \ - ../common/tbarsmpl.cpp \ - ../common/timercmn.cpp \ - ../common/utilscmn.cpp \ - ../common/wincmn.cpp \ - ../common/framecmn.cpp \ - ../common/stream.cpp \ - ../common/datstrm.cpp \ - ../common/fstream.cpp \ - ../common/mstream.cpp \ - ../common/zstream.cpp \ - ../common/objstrm.cpp \ - ../common/sckstrm.cpp \ - ../common/validate.cpp \ - ../common/valtext.cpp \ - ../common/variant.cpp \ - ../common/wxexpr.cpp \ - ../common/socket.cpp \ - ../common/sckint.cpp \ - ../common/sckaddr.cpp \ - ../common/sckipc.cpp \ - ../common/protocol.cpp \ - ../common/ftp.cpp \ - ../common/http.cpp \ - ../common/url.cpp \ - ../common/tokenzr.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - colordlg.cpp \ - control.cpp \ - combobox.cpp \ - cursor.cpp \ - data.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - fontdlg.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - helpxxxx.cpp \ - icon.cpp \ - listbox.cpp \ - joystick.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - menuitem.cpp \ - metafile.cpp \ - minifram.cpp \ - msgdlg.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - print.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbox.cpp \ - statbmp.cpp \ - stattext.cpp \ - taskbar.cpp \ - textctrl.cpp \ - thread.cpp \ - timer.cpp \ - toolbar.cpp \ - utils.cpp \ - utilsexc.cpp \ - wave.cpp \ - window.cpp \ -\ - ../generic/choicdgg.cpp \ - ../generic/colrdlgg.cpp \ - ../generic/dirdlgg.cpp \ - ../generic/fontdlgg.cpp \ - ../generic/gridg.cpp \ - ../generic/imaglist.cpp \ - ../generic/listctrl.cpp \ - ../generic/laywin.cpp \ - ../generic/msgdlgg.cpp \ - ../generic/panelg.cpp \ - ../generic/printps.cpp \ - ../generic/prntdlgg.cpp \ - ../generic/sashwin.cpp \ - ../generic/scrolwin.cpp \ - ../generic/splitter.cpp \ - ../generic/statusbr.cpp \ - ../generic/tabg.cpp \ - ../generic/textdlgg.cpp \ - ../generic/treectrl.cpp - -# If you're not using the generic ones, you -# may wish to define platform-specific ones -# dirdlg.cpp \ -# treectrl.cpp \ -# listctrl.cpp \ -# imaglist.cpp \ -# statusbr.cpp \ - -LIB_C_SRC=\ -\ - ../common/y_tab.c \ - ../common/extended.c - -all: $(WXLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) $(LIB_C_SRC:.c=.o) - -$(WXLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -../common/y_tab.$(OBJSUFF): ../common/y_tab.c ../common/lex_yy.c - $(CCLEX) -c $(CFLAGS) -o $@ ../common/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -../common/lex_yy.c: ../common/lexer.l - $(LEX) -o../common/lex.yy.c ../common/lexer.l - sed -e "s/BUFSIZ/5000/g" < ../common/lex.yy.c | \ - sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c - /bin/rm -f ../common/lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv y.tab.c ../common/y_tab.c - - -clean: - rm -f $(OBJECTS) $(WXLIB) - diff --git a/src/mac/mdi.cpp b/src/mac/mdi.cpp deleted file mode 100644 index 4869697cd7..0000000000 --- a/src/mac/mdi.cpp +++ /dev/null @@ -1,265 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" -#include "wx/menu.h" -#include "wx/settings.h" - -extern wxList wxModelessWindows; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_SIZE(wxMDIParentFrame::OnSize) - EVT_ACTIVATE(wxMDIParentFrame::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() - -#endif - -// Parent frame - -wxMDIParentFrame::wxMDIParentFrame() -{ -} - -bool wxMDIParentFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - // TODO: create MDI parent frame - - wxModelessWindows.Append(this); - - return TRUE; -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ -} - -// Get size *available for subwindows* i.e. excluding menu bar. -void wxMDIParentFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - - m_frameMenuBar = menu_bar; -} - -void wxMDIParentFrame::OnSize(wxSizeEvent& event) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - int x = 0; - int y = 0; - int width, height; - GetClientSize(&width, &height); - - if ( GetClientWindow() ) - GetClientWindow()->SetSize(x, y, width, height); -} - -void wxMDIParentFrame::OnActivate(wxActivateEvent& event) -{ - // Do nothing -} - -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - // TODO - return NULL; -} - -// Create the client window class (don't Create the window, -// just return a new class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow ; -} - -// Responds to colour changes, and passes event on to children. -void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - // TODO - - // Propagate the event to the non-top-level children - wxFrame::OnSysColourChanged(event); -} - -// MDI operations -void wxMDIParentFrame::Cascade() -{ - // TODO -} - -void wxMDIParentFrame::Tile() -{ - // TODO -} - -void wxMDIParentFrame::ArrangeIcons() -{ - // TODO -} - -void wxMDIParentFrame::ActivateNext() -{ - // TODO -} - -void wxMDIParentFrame::ActivatePrevious() -{ - // TODO -} - -// Child frame - -wxMDIChildFrame::wxMDIChildFrame() -{ -} - -bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - // TODO: create child frame - - wxModelessWindows.Append(this); - return FALSE; -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxMDIChildFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxMDIChildFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxMDIChildFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - m_frameMenuBar = menu_bar; -} - -// MDI operations -void wxMDIChildFrame::Maximize() -{ - // TODO -} - -void wxMDIChildFrame::Restore() -{ - // TODO -} - -void wxMDIChildFrame::Activate() -{ - // TODO -} - -// Client window - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) -{ - // TODO create client window - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - - return FALSE; -} - -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& event) -{ - Default(); // Default processing -} - diff --git a/src/mac/menu.cpp b/src/mac/menu.cpp deleted file mode 100644 index 1fc7c4a229..0000000000 --- a/src/mac/menu.cpp +++ /dev/null @@ -1,571 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: wxMenu, wxMenuBar, wxMenuItem -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -// ============================================================================ -// headers & declarations -// ============================================================================ - -// wxWindows headers -// ----------------- - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/menuitem.h" -#include "wx/log.h" -#include "wx/utils.h" - -// other standard headers -// ---------------------- -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// Menus - -// Construct a menu with optional title (then use append) -wxMenu::wxMenu(const wxString& title, const wxFunction func) -{ - m_title = title; - m_parent = NULL; - m_eventHandler = this; - m_noItems = 0; - m_menuBar = NULL; - m_clientData = (void*) NULL; - if (m_title != "") - { - Append(-2, m_title) ; - AppendSeparator() ; - } - - Callback(func); - - // TODO create menu -} - -// The wxWindow destructor will take care of deleting the submenus. -wxMenu::~wxMenu() -{ - // TODO destroy menu and children - - wxNode *node = m_menuItems.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - - // Delete child menus. - // Beware: they must not be appended to children list!!! - // (because order of delete is significant) - if (item->GetSubMenu()) - item->DeleteSubMenu(); - - wxNode *next = node->Next(); - delete item; - delete node; - node = next; - } -} - -void wxMenu::Break() -{ - // TODO -} - -// function appends a new item or submenu to the menu -void wxMenu::Append(wxMenuItem *pItem) -{ - // TODO - - wxCHECK_RET( pItem != NULL, "can't append NULL item to the menu" ); - - m_menuItems.Append(pItem); - - m_noItems++; -} - -void wxMenu::AppendSeparator() -{ - // TODO - Append(new wxMenuItem(this, ID_SEPARATOR)); -} - -// Pullright item -void wxMenu::Append(int Id, const wxString& label, wxMenu *SubMenu, - const wxString& helpString) -{ - Append(new wxMenuItem(this, Id, label, helpString, FALSE, SubMenu)); -} - -// Ordinary menu item -void wxMenu::Append(int Id, const wxString& label, - const wxString& helpString, bool checkable) -{ - // 'checkable' parameter is useless for Windows. - Append(new wxMenuItem(this, Id, label, helpString, checkable)); -} - -void wxMenu::Delete(int id) -{ - wxNode *node; - wxMenuItem *item; - int pos; - - for (pos = 0, node = m_menuItems.First(); node; node = node->Next(), pos++) { - item = (wxMenuItem *)node->Data(); - if (item->GetId() == id) - break; - } - - if (!node) - return; - - m_menuItems.DeleteNode(node); - delete item; - - // TODO -} - -void wxMenu::Enable(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't enable non-existing menu item" ); - - item->Enable(Flag); -} - -bool wxMenu::Enabled(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't get status of non-existing menu item" ); - - item->Check(Flag); -} - -bool wxMenu::Checked(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsChecked(); -} - -void wxMenu::SetTitle(const wxString& label) -{ - m_title = label ; - // TODO -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id) ; - if (item==NULL) - return; - - if (item->GetSubMenu()==NULL) - { - // TODO - } - else - { - // TODO - } - item->SetName(label); -} - -wxString wxMenu::GetLabel(int Id) const -{ - // TODO - return wxString("") ; -} - -// Finds the item id matching the given string, -1 if not found. -int wxMenu::FindItem (const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)itemString, buf1); - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - if (item->GetSubMenu()) - { - int ans = item->GetSubMenu()->FindItem(itemString); - if (ans > -1) - return ans; - } - if ( !item->IsSeparator() ) - { - wxStripMenuCodes((char *)item->GetName().c_str(), buf2); - if (strcmp(buf1, buf2) == 0) - return item->GetId(); - } - } - - return -1; -} - -wxMenuItem *wxMenu::FindItemForId(int itemId, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - - if (item->GetId() == itemId) - { - if (itemMenu) - *itemMenu = (wxMenu *) this; - return item; - } - - if (item->GetSubMenu()) - { - wxMenuItem *ans = item->GetSubMenu()->FindItemForId (itemId, itemMenu); - if (ans) - return ans; - } - } - - if (itemMenu) - *itemMenu = NULL; - return NULL; -} - -void wxMenu::SetHelpString(int itemId, const wxString& helpString) -{ - wxMenuItem *item = FindItemForId (itemId); - if (item) - item->SetHelp(helpString); -} - -wxString wxMenu::GetHelpString (int itemId) const -{ - wxMenuItem *item = FindItemForId (itemId); - wxString str(""); - return (item == NULL) ? str : item->GetHelp(); -} - -void wxMenu::ProcessCommand(wxCommandEvent & event) -{ - bool processed = FALSE; - - // Try a callback - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - processed = TRUE; - } - - // Try the menu's event handler - if ( !processed && GetEventHandler()) - { - processed = GetEventHandler()->ProcessEvent(event); - } -/* TODO - // Try the window the menu was popped up from (and up - // through the hierarchy) - if ( !processed && GetInvokingWindow()) - processed = GetInvokingWindow()->ProcessEvent(event); -*/ -} - -bool wxWindow::PopupMenu(wxMenu *menu, int x, int y) -{ - // TODO - return FALSE; -} - -// Menu Bar -wxMenuBar::wxMenuBar() -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxString titles[]) -{ - m_eventHandler = this; - m_menuCount = n; - m_menus = menus; - m_titles = new wxString[n]; - int i; - for ( i = 0; i < n; i++ ) - m_titles[i] = titles[i]; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::~wxMenuBar() -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - delete m_menus[i]; - } - delete[] m_menus; - delete[] m_titles; - - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus to enable/disable items -void wxMenuBar::Enable(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - // TODO -} - -void wxMenuBar::EnableTop(int pos, bool flag) -{ - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus -void wxMenuBar::Check(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - if (!item->IsCheckable()) - return ; - - // TODO -} - -bool wxMenuBar::Checked(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE; -} - -bool wxMenuBar::Enabled(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE ; -} - - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return; - - // TODO -} - -wxString wxMenuBar::GetLabel(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return wxString(""); - - // TODO - return wxString("") ; -} - -void wxMenuBar::SetLabelTop(int pos, const wxString& label) -{ - // TODO -} - -wxString wxMenuBar::GetLabelTop(int pos) const -{ - // TODO - return wxString(""); -} - -bool wxMenuBar::OnDelete(wxMenu *a_menu, int pos) -{ - // TODO - return FALSE; -} - -bool wxMenuBar::OnAppend(wxMenu *a_menu, const char *title) -{ - // TODO - return FALSE; -} - -void wxMenuBar::Append (wxMenu * menu, const wxString& title) -{ - if (!OnAppend(menu, title)) - return; - - m_menuCount ++; - wxMenu **new_menus = new wxMenu *[m_menuCount]; - wxString *new_titles = new wxString[m_menuCount]; - int i; - - for (i = 0; i < m_menuCount - 1; i++) - { - new_menus[i] = m_menus[i]; - m_menus[i] = NULL; - new_titles[i] = m_titles[i]; - m_titles[i] = ""; - } - if (m_menus) - { - delete[]m_menus; - delete[]m_titles; - } - m_menus = new_menus; - m_titles = new_titles; - - m_menus[m_menuCount - 1] = (wxMenu *)menu; - m_titles[m_menuCount - 1] = title; - - // TODO -} - -void wxMenuBar::Delete(wxMenu * menu, int i) -{ - int j; - int ii = (int) i; - - if (menu != 0) - { - for (ii = 0; ii < m_menuCount; ii++) - { - if (m_menus[ii] == menu) - break; - } - if (ii >= m_menuCount) - return; - } else - { - if (ii < 0 || ii >= m_menuCount) - return; - menu = m_menus[ii]; - } - - if (!OnDelete(menu, ii)) - return; - - menu->SetParent(NULL); - - -- m_menuCount; - for (j = ii; j < m_menuCount; j++) - { - m_menus[j] = m_menus[j + 1]; - m_titles[j] = m_titles[j + 1]; - } -} - -// Find the menu menuString, item itemString, and return the item id. -// Returns -1 if none found. -int wxMenuBar::FindMenuItem (const wxString& menuString, const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)menuString, buf1); - int i; - for (i = 0; i < m_menuCount; i++) - { - wxStripMenuCodes ((char *)(const char *)m_titles[i], buf2); - if (strcmp (buf1, buf2) == 0) - return m_menus[i]->FindItem (itemString); - } - return -1; -} - -wxMenuItem *wxMenuBar::FindItemForId (int Id, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - int i; - for (i = 0; i < m_menuCount; i++) - if ((item = m_menus[i]->FindItemForId (Id, itemMenu))) - return item; - return NULL; -} - -void wxMenuBar::SetHelpString (int Id, const wxString& helpString) -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - { - m_menus[i]->SetHelpString (Id, helpString); - return; - } - } -} - -wxString wxMenuBar::GetHelpString (int Id) const -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - return wxString(m_menus[i]->GetHelpString (Id)); - } - return wxString(""); -} - - diff --git a/src/mac/menuitem.cpp b/src/mac/menuitem.cpp deleted file mode 100644 index bd2f876a38..0000000000 --- a/src/mac/menuitem.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.cpp -// Purpose: wxMenuItem implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#include "wx/menu.h" -#include "wx/menuitem.h" - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// dynamic classes implementation -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject) -#endif //USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// wxMenuItem -// ---------------------------------------------------------------------------- - -// ctor & dtor -// ----------- - -wxMenuItem::wxMenuItem(wxMenu *pParentMenu, int id, - const wxString& strName, const wxString& strHelp, - bool bCheckable, - wxMenu *pSubMenu) : - m_bCheckable(bCheckable), - m_strName(strName), - m_strHelp(strHelp) -{ - wxASSERT( pParentMenu != NULL ); - - m_pParentMenu = pParentMenu; - m_pSubMenu = pSubMenu; - m_idItem = id; - m_bEnabled = TRUE; -} - -wxMenuItem::~wxMenuItem() -{ -} - -// misc -// ---- - -// delete the sub menu -void wxMenuItem::DeleteSubMenu() -{ - wxASSERT( m_pSubMenu != NULL ); - - delete m_pSubMenu; - m_pSubMenu = NULL; -} - -// change item state -// ----------------- - -void wxMenuItem::Enable(bool bDoEnable) -{ - if ( m_bEnabled != bDoEnable ) { - if ( m_pSubMenu == NULL ) { // normal menu item - // TODO - } - else // submenu - { - // TODO - } - - m_bEnabled = bDoEnable; - } -} - -void wxMenuItem::Check(bool bDoCheck) -{ - wxCHECK_RET( IsCheckable(), "only checkable items may be checked" ); - - if ( m_bChecked != bDoCheck ) { - // TODO - m_bChecked = bDoCheck; - } -} \ No newline at end of file diff --git a/src/mac/metafile.cpp b/src/mac/metafile.cpp deleted file mode 100644 index ddbfb8402f..0000000000 --- a/src/mac/metafile.cpp +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.cpp -// Purpose: wxMetaFile, wxMetaFileDC etc. These classes are optional. -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "metafile.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dc.h" -#include "wx/stubs/metafile.h" -#include "wx/clipbrd.h" - -extern bool wxClipboardIsOpen; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC) -#endif - -wxMetaFile::wxMetaFile(const wxString& file) -{ - // TODO -} - -wxMetaFile::~wxMetaFile() -{ - // TODO -} - -bool wxMetaFile::SetClipboard(int width, int height) -{ - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - if (!wxEmptyClipboard()) return FALSE; - } - bool success = wxSetClipboardData(wxDF_METAFILE,this, width,height); - if (!alreadyOpen) wxCloseClipboard(); - return (bool) success; -} - -bool wxMetaFile::Play(wxDC *dc) -{ - // TODO - return FALSE; -} - -/* - * Metafile device context - * - */ - -// Original constructor that does not takes origin and extent. If you use this, -// *DO* give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file) -{ - // TODO -} - -// New constructor that takes origin and extent. If you use this, don't -// give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg) -{ - // TODO -} - -wxMetaFileDC::~wxMetaFileDC() -{ -} - -void wxMetaFileDC::GetTextExtent(const wxString& string, float *x, float *y, - float *descent, float *externalLeading, wxFont *theFont, bool use16bit) -{ - // TODO -} - -wxMetaFile *wxMetaFileDC::Close() -{ - // TODO - return NULL; -} - -void wxMetaFileDC::SetMapMode(int mode) -{ - // TODO -} - -#if 0 - -#ifdef __WIN32__ -struct RECT32 -{ - short left; - short top; - short right; - short bottom; -}; - -struct mfPLACEABLEHEADER { - DWORD key; - short hmf; - RECT32 bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#else -struct mfPLACEABLEHEADER { - DWORD key; - HANDLE hmf; - RECT bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#endif - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -bool wxMakeMetaFilePlaceable(const wxString& filename, float scale) -{ - return wxMakeMetaFilePlaceable(filename, 0, 0, 0, 0, scale, FALSE); -} - -bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale, bool useOriginAndExtent) -{ - // I'm not sure if this is the correct way of suggesting a scale - // to the client application, but it's the only way I can find. - int unitsPerInch = (int)(576/scale); - - mfPLACEABLEHEADER header; - header.key = 0x9AC6CDD7L; - header.hmf = 0; - header.bbox.left = (int)(x1); - header.bbox.top = (int)(y1); - header.bbox.right = (int)(x2); - header.bbox.bottom = (int)(y2); - header.inch = unitsPerInch; - header.reserved = 0; - - // Calculate checksum - WORD *p; - mfPLACEABLEHEADER *pMFHead = &header; - for (p =(WORD *)pMFHead,pMFHead -> checksum = 0; - p < (WORD *)&pMFHead ->checksum; ++p) - pMFHead ->checksum ^= *p; - - FILE *fd = fopen((char *)(const char *)filename, "rb"); - if (!fd) return FALSE; - - char tempFileBuf[256]; - wxGetTempFileName("mf", tempFileBuf); - FILE *fHandle = fopen(tempFileBuf, "wb"); - if (!fHandle) - return FALSE; - fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle); - - // Calculate origin and extent - int originX = x1; - int originY = y1; - int extentX = x2 - x1; - int extentY = (y2 - y1); - - // Read metafile header and write - METAHEADER metaHeader; - fread((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fd); - - if (useOriginAndExtent) - metaHeader.mtSize += 15; - else - metaHeader.mtSize += 5; - - fwrite((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fHandle); - - // Write SetMapMode, SetWindowOrigin and SetWindowExt records - char modeBuffer[8]; - char originBuffer[10]; - char extentBuffer[10]; - METARECORD *modeRecord = (METARECORD *)&modeBuffer; - - METARECORD *originRecord = (METARECORD *)&originBuffer; - METARECORD *extentRecord = (METARECORD *)&extentBuffer; - - modeRecord->rdSize = 4; - modeRecord->rdFunction = META_SETMAPMODE; - modeRecord->rdParm[0] = wxMM_ANISOTROPIC; - - originRecord->rdSize = 5; - originRecord->rdFunction = META_SETWINDOWORG; - originRecord->rdParm[0] = originY; - originRecord->rdParm[1] = originX; - - extentRecord->rdSize = 5; - extentRecord->rdFunction = META_SETWINDOWEXT; - extentRecord->rdParm[0] = extentY; - extentRecord->rdParm[1] = extentX; - - fwrite((void *)modeBuffer, sizeof(char), 8, fHandle); - - if (useOriginAndExtent) - { - fwrite((void *)originBuffer, sizeof(char), 10, fHandle); - fwrite((void *)extentBuffer, sizeof(char), 10, fHandle); - } - - int ch = -2; - while (ch != EOF) - { - ch = getc(fd); - if (ch != EOF) - { - putc(ch, fHandle); - } - } - fclose(fHandle); - fclose(fd); - wxRemoveFile(filename); - wxCopyFile(tempFileBuf, filename); - wxRemoveFile(tempFileBuf); - return TRUE; -} - -#endif - diff --git a/src/mac/minifram.cpp b/src/mac/minifram.cpp deleted file mode 100644 index 4f6f5e5fcb..0000000000 --- a/src/mac/minifram.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: wxMiniFrame. Optional; identical to wxFrame if not supported. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -#include "wx/minifram.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif - - diff --git a/src/mac/morefile/Director.cpp b/src/mac/morefile/Director.cpp deleted file mode 100644 index f8b0d0a891..0000000000 --- a/src/mac/morefile/Director.cpp +++ /dev/null @@ -1,653 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** DirectoryCopy: A robust, general purpose directory copy routine. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: DirectoryCopy.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreFile.h" -#include "MoreExtr.h" -#include "MoreDesk.h" -#include "FileCopy.h" -#include "Director.h" - -/*****************************************************************************/ - -/* local constants */ - -enum -{ - dirCopyBigCopyBuffSize = 0x00004000, - dirCopyMinCopyBuffSize = 0x00000200 -}; - - -/*****************************************************************************/ - -/* local data structures */ - -/* The EnumerateGlobals structure is used to minimize the amount of -** stack space used when recursively calling CopyLevel and to hold -** global information that might be needed at any time. */ - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif -struct EnumerateGlobals -{ - Ptr copyBuffer; /* pointer to buffer used for file copy operations */ - long bufferSize; /* the size of the copy buffer */ - CopyErrProcPtr errorHandler; /* pointer to error handling function */ - CopyFilterProcPtr copyFilterProc; /* pointer to filter function */ - OSErr error; /* temporary holder of results - saves 2 bytes of stack each level */ - Boolean bailout; /* set to true to by error handling function if fatal error */ - short destinationVRefNum; /* the destination vRefNum */ - Str63 itemName; /* the name of the current item */ - CInfoPBRec myCPB; /* the parameter block used for PBGetCatInfo calls */ -}; -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -typedef struct EnumerateGlobals EnumerateGlobals; -typedef EnumerateGlobals *EnumerateGlobalsPtr; - - -/* The PreflightGlobals structure is used to minimize the amount of -** stack space used when recursively calling GetLevelSize and to hold -** global information that might be needed at any time. */ - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif -struct PreflightGlobals -{ - OSErr result; /* temporary holder of results - saves 2 bytes of stack each level */ - Str63 itemName; /* the name of the current item */ - CInfoPBRec myCPB; /* the parameter block used for PBGetCatInfo calls */ - - unsigned long dstBlksPerAllocBlk; /* the number of 512 byte blocks per allocation block on destination */ - - unsigned long allocBlksNeeded; /* the total number of allocation blocks needed */ - - unsigned long tempBlocks; /* temporary storage for calculations (save some stack space) */ - CopyFilterProcPtr copyFilterProc; /* pointer to filter function */ -}; -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -typedef struct PreflightGlobals PreflightGlobals; -typedef PreflightGlobals *PreflightGlobalsPtr; - -/*****************************************************************************/ - -/* static prototypes */ - -static void GetLevelSize(long currentDirID, - PreflightGlobals *theGlobals); - -static OSErr PreflightDirectoryCopySpace(short srcVRefNum, - long srcDirID, - short dstVRefNum, - CopyFilterProcPtr copyFilterProc, - Boolean *spaceOK); - -static void CopyLevel(long sourceDirID, - long dstDirID, - EnumerateGlobals *theGlobals); - -/*****************************************************************************/ - -static void GetLevelSize(long currentDirID, - PreflightGlobals *theGlobals) -{ - short index = 1; - - do - { - theGlobals->myCPB.dirInfo.ioFDirIndex = index; - theGlobals->myCPB.dirInfo.ioDrDirID = currentDirID; /* we need to do this every time */ - /* through, since GetCatInfo */ - /* returns ioFlNum in this field */ - theGlobals->result = PBGetCatInfoSync(&theGlobals->myCPB); - if ( theGlobals->result == noErr ) - { - if ( (theGlobals->copyFilterProc == NULL) || - CallCopyFilterProc(theGlobals->copyFilterProc, &theGlobals->myCPB) ) /* filter if filter proc was supplied */ - { - /* Either there's no filter proc OR the filter proc says to use this item */ - if ( (theGlobals->myCPB.dirInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* we have a directory */ - - GetLevelSize(theGlobals->myCPB.dirInfo.ioDrDirID, theGlobals); /* recurse */ - theGlobals->result = noErr; /* clear error return on way back */ - } - else - { - /* We have a file - add its allocation blocks to allocBlksNeeded. */ - /* Since space on Mac OS disks is always allocated in allocation blocks, */ - /* this takes into account rounding up to the end of an allocation block. */ - - /* get number of 512-byte blocks needed for data fork */ - if ( ((unsigned long)theGlobals->myCPB.hFileInfo.ioFlLgLen & 0x000001ff) != 0 ) - { - theGlobals->tempBlocks = ((unsigned long)theGlobals->myCPB.hFileInfo.ioFlLgLen >> 9) + 1; - } - else - { - theGlobals->tempBlocks = (unsigned long)theGlobals->myCPB.hFileInfo.ioFlLgLen >> 9; - } - /* now, calculate number of new allocation blocks needed for the data fork and add it to the total */ - if ( theGlobals->tempBlocks % theGlobals->dstBlksPerAllocBlk ) - { - theGlobals->allocBlksNeeded += (theGlobals->tempBlocks / theGlobals->dstBlksPerAllocBlk) + 1; - } - else - { - theGlobals->allocBlksNeeded += theGlobals->tempBlocks / theGlobals->dstBlksPerAllocBlk; - } - - /* get number of 512-byte blocks needed for resource fork */ - if ( ((unsigned long)theGlobals->myCPB.hFileInfo.ioFlRLgLen & 0x000001ff) != 0 ) - { - theGlobals->tempBlocks = ((unsigned long)theGlobals->myCPB.hFileInfo.ioFlRLgLen >> 9) + 1; - } - else - { - theGlobals->tempBlocks = (unsigned long)theGlobals->myCPB.hFileInfo.ioFlRLgLen >> 9; - } - /* now, calculate number of new allocation blocks needed for the resource fork and add it to the total */ - if ( theGlobals->tempBlocks % theGlobals->dstBlksPerAllocBlk ) - { - theGlobals->allocBlksNeeded += (theGlobals->tempBlocks / theGlobals->dstBlksPerAllocBlk) + 1; - } - else - { - theGlobals->allocBlksNeeded += theGlobals->tempBlocks / theGlobals->dstBlksPerAllocBlk; - } - } - } - } - ++index; - } while ( theGlobals->result == noErr ); -} - -/*****************************************************************************/ - -static OSErr PreflightDirectoryCopySpace(short srcVRefNum, - long srcDirID, - short dstVRefNum, - CopyFilterProcPtr copyFilterProc, - Boolean *spaceOK) -{ - XVolumeParam pb; - OSErr error; - unsigned long dstFreeBlocks; - PreflightGlobals theGlobals; - - error = XGetVolumeInfoNoName(NULL, dstVRefNum, &pb); - if ( error == noErr ) - { - /* Convert freeBytes to free disk blocks (512-byte blocks) */ - dstFreeBlocks = (pb.ioVFreeBytes.hi << 23) + (pb.ioVFreeBytes.lo >> 9); - - /* get allocation block size (always multiple of 512) and divide by 512 - to get number of 512-byte blocks per allocation block */ - theGlobals.dstBlksPerAllocBlk = ((unsigned long)pb.ioVAlBlkSiz >> 9); - - theGlobals.allocBlksNeeded = 0; - - theGlobals.myCPB.dirInfo.ioNamePtr = theGlobals.itemName; - theGlobals.myCPB.dirInfo.ioVRefNum = srcVRefNum; - - theGlobals.copyFilterProc = copyFilterProc; - - GetLevelSize(srcDirID, &theGlobals); - - /* Is there enough room on the destination volume for the source file? */ - /* Note: This will work because the largest number of disk blocks supported */ - /* on a 2TB volume is 0xffffffff and (allocBlksNeeded * dstBlksPerAllocBlk) */ - /* will always be less than 0xffffffff. */ - *spaceOK = ((theGlobals.allocBlksNeeded * theGlobals.dstBlksPerAllocBlk) <= dstFreeBlocks); - } - - return ( error ); -} - -/*****************************************************************************/ - -static void CopyLevel(long sourceDirID, - long dstDirID, - EnumerateGlobals *theGlobals) -{ - long currentSrcDirID; - long newDirID; - short index = 1; - - do - { - /* Get next source item at the current directory level */ - - theGlobals->myCPB.dirInfo.ioFDirIndex = index; - theGlobals->myCPB.dirInfo.ioDrDirID = sourceDirID; - theGlobals->error = PBGetCatInfoSync(&theGlobals->myCPB); - - if ( theGlobals->error == noErr ) - { - if ( (theGlobals->copyFilterProc == NULL) || - CallCopyFilterProc(theGlobals->copyFilterProc, &theGlobals->myCPB) ) /* filter if filter proc was supplied */ - { - /* Either there's no filter proc OR the filter proc says to use this item */ - - /* We have an item. Is it a file or directory? */ - if ( (theGlobals->myCPB.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* We have a directory */ - - /* Create a new directory at the destination. No errors allowed! */ - theGlobals->error = DirCreate(theGlobals->destinationVRefNum, dstDirID, theGlobals->itemName, &newDirID); - if ( theGlobals->error == noErr ) - { - /* Save the current source directory ID where we can get it when we come back - ** from recursion land. */ - currentSrcDirID = theGlobals->myCPB.dirInfo.ioDrDirID; - - /* Dive again (copy the directory level we just found below this one) */ - CopyLevel(theGlobals->myCPB.dirInfo.ioDrDirID, newDirID, theGlobals); - - if ( !theGlobals->bailout ) - { - /* Copy comment from old to new directory. */ - /* Ignore the result because we really don't care if it worked or not. */ - (void) DTCopyComment(theGlobals->myCPB.dirInfo.ioVRefNum, currentSrcDirID, NULL, theGlobals->destinationVRefNum, newDirID, NULL); - - /* Copy directory attributes (dates, etc.) to newDirID. */ - /* No errors allowed */ - theGlobals->error = CopyFileMgrAttributes(theGlobals->myCPB.dirInfo.ioVRefNum, currentSrcDirID, NULL, theGlobals->destinationVRefNum, newDirID, NULL, true); - - /* handle any errors from CopyFileMgrAttributes */ - if ( theGlobals->error != noErr ) - { - if ( theGlobals->errorHandler != NULL ) - { - theGlobals->bailout = CallCopyErrProc(theGlobals->errorHandler, theGlobals->error, copyDirFMAttributesOp, - theGlobals->myCPB.dirInfo.ioVRefNum, currentSrcDirID, NULL, - theGlobals->destinationVRefNum, newDirID, NULL); - } - else - { - /* If you don't handle the errors with an error handler, */ - /* then the copy stops here. */ - theGlobals->bailout = true; - } - } - } - } - else /* error handling for DirCreate */ - { - if ( theGlobals->errorHandler != NULL ) - { - theGlobals->bailout = CallCopyErrProc(theGlobals->errorHandler, theGlobals->error, dirCreateOp, - theGlobals->myCPB.dirInfo.ioVRefNum, currentSrcDirID, NULL, - theGlobals->destinationVRefNum, dstDirID, theGlobals->itemName); - } - else - { - /* If you don't handle the errors with an error handler, */ - /* then the copy stops here. */ - theGlobals->bailout = true; - } - } - - if ( !theGlobals->bailout ) - { - /* clear error return on way back if we aren't bailing out */ - theGlobals->error = noErr; - } - } - else - { - /* We have a file, so copy it */ - - theGlobals->error = FileCopy(theGlobals->myCPB.hFileInfo.ioVRefNum, - theGlobals->myCPB.hFileInfo.ioFlParID, - theGlobals->itemName, - theGlobals->destinationVRefNum, - dstDirID, - NULL, - NULL, - theGlobals->copyBuffer, - theGlobals->bufferSize, - false); - - /* handle any errors from FileCopy */ - if ( theGlobals->error != noErr ) - { - if ( theGlobals->errorHandler != NULL ) - { - theGlobals->bailout = CallCopyErrProc(theGlobals->errorHandler, theGlobals->error, fileCopyOp, - theGlobals->myCPB.hFileInfo.ioVRefNum, theGlobals->myCPB.hFileInfo.ioFlParID, theGlobals->itemName, - theGlobals->destinationVRefNum, dstDirID, NULL); - if ( !theGlobals->bailout ) - { - /* If the CopyErrProc handled the problem, clear the error here */ - theGlobals->error = noErr; - } - } - else - { - /* If you don't handle the errors with an error handler, */ - /* then the copy stops here. */ - theGlobals->bailout = true; - } - } - } - } - } - else - { /* error handling for PBGetCatInfo */ - /* it's normal to get a fnfErr when indexing; that only means you've hit the end of the directory */ - if ( theGlobals->error != fnfErr ) - { - if ( theGlobals->errorHandler != NULL ) - { - theGlobals->bailout = CallCopyErrProc(theGlobals->errorHandler, theGlobals->error, getNextItemOp, - theGlobals->myCPB.dirInfo.ioVRefNum, sourceDirID, NULL, 0, 0, NULL); - if ( !theGlobals->bailout ) - { - /* If the CopyErrProc handled the problem, clear the error here */ - theGlobals->error = noErr; - } - } - else - { - /* If you don't handle the errors with an error handler, */ - /* then the copy stops here. */ - theGlobals->bailout = true; - } - } - } - ++index; /* prepare to get next item */ - } while ( (theGlobals->error == noErr) && (!theGlobals->bailout) ); /* time to fall back a level? */ -} - -/*****************************************************************************/ - -pascal OSErr FilteredDirectoryCopy(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler, - CopyFilterProcPtr copyFilterProc) -{ - EnumerateGlobals theGlobals; - Boolean isDirectory; - OSErr error; - Boolean ourCopyBuffer = false; - Str63 srcDirName, oldDiskName; - Boolean spaceOK; - - /* Make sure a copy buffer is allocated. */ - if ( copyBufferPtr == NULL ) - { - /* The caller didn't supply a copy buffer so grab one from the application heap. - ** Try to get a big copy buffer, if we can't, try for a 512-byte buffer. - ** If 512 bytes aren't available, we're in trouble. */ - copyBufferSize = dirCopyBigCopyBuffSize; - copyBufferPtr = NewPtr(copyBufferSize); - if ( copyBufferPtr == NULL ) - { - copyBufferSize = dirCopyMinCopyBuffSize; - copyBufferPtr = NewPtr(copyBufferSize); - if ( copyBufferPtr == NULL ) - { - return ( memFullErr ); - } - } - ourCopyBuffer = true; - } - - /* Get the real dirID where we're copying from and make sure it is a directory. */ - error = GetDirectoryID(srcVRefNum, srcDirID, srcName, &srcDirID, &isDirectory); - if ( error != noErr ) - { - goto ErrorExit; - } - if ( !isDirectory ) - { - error = dirNFErr; - goto ErrorExit; - } - - /* Special case destination if it is the root parent directory. */ - /* Since you can't create the root directory, this is needed if */ - /* you want to copy a directory's content to a disk's root directory. */ - if ( (dstDirID == fsRtParID) && (dstName == NULL) ) - { - dstDirID = fsRtParID; - isDirectory = true; - error = noErr; - } - else - { - /* Get the real dirID where we're going to put the copy and make sure it is a directory. */ - error = GetDirectoryID(dstVRefNum, dstDirID, dstName, &dstDirID, &isDirectory); - if ( error != noErr ) - { - goto ErrorExit; - } - if ( !isDirectory ) - { - error = dirNFErr; - goto ErrorExit; - } - } - - /* Get the real vRefNum of both the source and destination */ - error = DetermineVRefNum(srcName, srcVRefNum, &srcVRefNum); - if ( error != noErr ) - { - goto ErrorExit; - } - error = DetermineVRefNum(dstName, dstVRefNum, &dstVRefNum); - if ( error != noErr ) - { - goto ErrorExit; - } - - if ( preflight ) - { - error = PreflightDirectoryCopySpace(srcVRefNum, srcDirID, dstVRefNum, copyFilterProc, &spaceOK); - if ( error != noErr ) - { - goto ErrorExit; - } - if ( !spaceOK ) - { - error = dskFulErr; /* not enough room on destination */ - goto ErrorExit; - } - } - - /* Create the new directory in the destination directory with the */ - /* same name as the source directory. */ - error = GetDirName(srcVRefNum, srcDirID, srcDirName); - if ( error != noErr ) - { - goto ErrorExit; - } - - /* Again, special case destination if the destination is the */ - /* root parent directory. This time, we'll rename the disk to */ - /* the source directory name. */ - if ( dstDirID == fsRtParID ) - { - /* Get the current name of the destination disk */ - error = GetDirName(dstVRefNum, fsRtDirID, oldDiskName); - if ( error == noErr ) - { - /* Shorten the name if it's too long to be the volume name */ - TruncPString(srcDirName, srcDirName, 27); - - /* Rename the disk */ - error = HRename(dstVRefNum, fsRtParID, oldDiskName, srcDirName); - /* and copy to the root directory */ - dstDirID = fsRtDirID; - } - } - else - { - error = DirCreate(dstVRefNum, dstDirID, srcDirName, &dstDirID); - } - if ( error != noErr ) - { - /* handle any errors from DirCreate */ - if ( copyErrHandler != NULL ) - { - if ( CallCopyErrProc(copyErrHandler, error, dirCreateOp, - srcVRefNum, srcDirID, NULL, - dstVRefNum, dstDirID, srcDirName) ) - { - goto ErrorExit; - } - else - { - /* If the CopyErrProc handled the problem, clear the error here */ - /* and continue */ - error = noErr; - } - } - else - { - /* If you don't handle the errors with an error handler, */ - /* then the copy stops here. */ - goto ErrorExit; - } - } - - /* dstDirID is now the newly created directory! */ - - /* Set up the globals we need to access from the recursive routine. */ - theGlobals.copyBuffer = (Ptr)copyBufferPtr; - theGlobals.bufferSize = copyBufferSize; - theGlobals.destinationVRefNum = dstVRefNum; /* so we can get to it always */ - theGlobals.myCPB.hFileInfo.ioNamePtr = (StringPtr)&theGlobals.itemName; - theGlobals.myCPB.hFileInfo.ioVRefNum = srcVRefNum; - theGlobals.errorHandler = copyErrHandler; - theGlobals.bailout = false; - theGlobals.copyFilterProc = copyFilterProc; - - /* Here we go into recursion land... */ - CopyLevel(srcDirID, dstDirID, &theGlobals); - error = theGlobals.error; /* get the result */ - - if ( !theGlobals.bailout ) - { - /* Copy comment from source to destination directory. */ - /* Ignore the result because we really don't care if it worked or not. */ - (void) DTCopyComment(srcVRefNum, srcDirID, NULL, dstVRefNum, dstDirID, NULL); - - /* Copy the File Manager attributes */ - error = CopyFileMgrAttributes(srcVRefNum, srcDirID, NULL, - dstVRefNum, dstDirID, NULL, true); - - /* handle any errors from CopyFileMgrAttributes */ - if ( (error != noErr) && (copyErrHandler != NULL) ) - { - theGlobals.bailout = CallCopyErrProc(copyErrHandler, error, copyDirFMAttributesOp, - srcVRefNum, srcDirID, NULL, - dstVRefNum, dstDirID, NULL); - } - } - -ErrorExit: - /* Get rid of the copy buffer if we allocated it. */ - if ( ourCopyBuffer ) - { - DisposePtr((Ptr)copyBufferPtr); - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DirectoryCopy(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler) -{ - return ( FilteredDirectoryCopy(srcVRefNum, srcDirID, srcName, - dstVRefNum, dstDirID, dstName, - copyBufferPtr, copyBufferSize, preflight, - copyErrHandler, NULL) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpFilteredDirectoryCopy(const FSSpec *srcSpec, - const FSSpec *dstSpec, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler, - CopyFilterProcPtr copyFilterProc) -{ - return ( FilteredDirectoryCopy(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, dstSpec->name, - copyBufferPtr, copyBufferSize, preflight, - copyErrHandler, copyFilterProc) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpDirectoryCopy(const FSSpec *srcSpec, - const FSSpec *dstSpec, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler) -{ - return ( FilteredDirectoryCopy(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, dstSpec->name, - copyBufferPtr, copyBufferSize, preflight, - copyErrHandler, NULL) ); -} - -/*****************************************************************************/ - diff --git a/src/mac/morefile/Director.h b/src/mac/morefile/Director.h deleted file mode 100644 index a042fd721d..0000000000 --- a/src/mac/morefile/Director.h +++ /dev/null @@ -1,493 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** DirectoryCopy: A robust, general purpose directory copy routine. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: DirectoryCopy.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __DIRECTORYCOPY__ -#define __DIRECTORYCOPY__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -enum -{ - getNextItemOp = 1, /* couldn't access items in this directory - no access privileges */ - copyDirCommentOp = 2, /* couldn't copy directory's Finder comment */ - copyDirAccessPrivsOp = 3, /* couldn't copy directory's AFP access privileges */ - copyDirFMAttributesOp = 4, /* couldn't copy directory's File Manager attributes */ - dirCreateOp = 5, /* couldn't create destination directory */ - fileCopyOp = 6 /* couldn't copy file */ -}; - -/*****************************************************************************/ - -typedef pascal Boolean (*CopyErrProcPtr) (OSErr error, - short failedOperation, - short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName); -/* ¦ Prototype for the CopyErrProc function DirectoryCopy calls. - This is the prototype for the CopyErrProc function DirectoryCopy - calls if an error condition is detected sometime during the copy. If - CopyErrProc returns false, then DirectoryCopy attempts to continue with - the directory copy operation. If CopyErrProc returns true, then - DirectoryCopy stops the directory copy operation. - - error input: The error result code that caused CopyErrProc to - be called. - failedOperation input: The operation that returned an error to - DirectoryCopy. - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Source file or directory name, or nil if - srcDirID specifies the directory. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstName input: Destination file or directory name, or nil if - dstDirID specifies the directory. - - __________ - - Also see: FilteredDirectoryCopy, FSpFilteredDirectoryCopy, DirectoryCopy, FSpDirectoryCopy -*/ - -#define CallCopyErrProc(userRoutine, error, failedOperation, srcVRefNum, srcDirID, srcName, dstVRefNum, dstDirID, dstName) \ - (*(userRoutine))((error), (failedOperation), (srcVRefNum), (srcDirID), (srcName), (dstVRefNum), (dstDirID), (dstName)) - -/*****************************************************************************/ - -typedef pascal Boolean (*CopyFilterProcPtr) (const CInfoPBRec * const cpbPtr); - -/* ¦ Prototype for the CopyFilterProc function. - This is the prototype for the CopyFilterProc function called by - FilteredDirectoryCopy and GetLevelSize. If true is returned, - the file/folder is included in the copy, otherwise it is excluded. - - pb input: Points to the CInfoPBRec for the item under consideration. - - __________ - - Also see: FilteredDirectoryCopy, FSpFilteredDirectoryCopy -*/ - -#define CallCopyFilterProc(userRoutine, cpbPtr) (*(userRoutine))((cpbPtr)) - -/*****************************************************************************/ - -pascal OSErr FilteredDirectoryCopy(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler, - CopyFilterProcPtr copyFilterProc); -/* ¦ Make a copy of a directory structure in a new location with item filtering. - The FilteredDirectoryCopy function makes a copy of a directory - structure in a new location. If copyBufferPtr <> NIL, it points to - a buffer of copyBufferSize that is used to copy files data. The - larger the supplied buffer, the faster the copy. If - copyBufferPtr = NIL, then this routine allocates a buffer in the - application heap. If you pass a copy buffer to this routine, make - its size a multiple of 512 ($200) bytes for optimum performance. - - The optional copyFilterProc parameter lets a routine you define - decide what files or directories are copied to the destination. - - FilteredDirectoryCopy normally creates a new directory *in* the - specified destination directory and copies the source directory's - content into the new directory. However, if root parent directory - (fsRtParID) is passed as the dstDirID parameter and NULL is - passed as the dstName parameter, DirectoryCopy renames the - destination volume to the source directory's name (truncating - if the name is longer than 27 characters) and copies the source - directory's content into the destination volume's root directory. - This special case is supported by FilteredDirectoryCopy, but - not by FSpFilteredDirectoryCopy since with FSpFilteredDirectoryCopy, - the dstName parameter can not be NULL. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Source directory name, or nil if - srcDirID specifies the directory. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstName input: Destination directory name, or nil if - dstDirID specifies the directory. - copyBufferPtr input: Points to a buffer of copyBufferSize that - is used the i/o buffer for the copy or - nil if you want DirectoryCopy to allocate its - own buffer in the application heap. - copyBufferSize input: The size of the buffer pointed to - by copyBufferPtr. - preflight input: If true, DirectoryCopy makes sure there are - enough allocation blocks on the destination - volume to hold the directory's files before - starting the copy. - copyErrHandler input: A pointer to the routine you want called if an - error condition is detected during the copy, or - nil if you don't want to handle error conditions. - If you don't handle error conditions, the first - error will cause the copy to quit and - DirectoryCopy will return the error. - Error handling is recommended... - copyFilterProc input: A pointer to the filter routine you want called - for each item in the source directory, or NULL - if you don't want to filter. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Destination volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 Source file not found, or destination - directory does not exist - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - opWrErr -49 File already open for writing - paramErr -50 No default volume or function not - supported by volume - permErr -54 File is already open and cannot be opened using specified deny modes - memFullErr -108 Copy buffer could not be allocated - dirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory, directory not found - or incomplete pathname - - __________ - - Also see: CopyErrProcPtr, CopyFilterProcPtr, FSpFilteredDirectoryCopy, - DirectoryCopy, FSpDirectoryCopy, FileCopy, FSpFileCopy -*/ - -/*****************************************************************************/ - -pascal OSErr FSpFilteredDirectoryCopy(const FSSpec *srcSpec, - const FSSpec *dstSpec, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler, - CopyFilterProcPtr copyFilterProc); -/* ¦ Make a copy of a directory structure in a new location with item filtering. - The FSpFilteredDirectoryCopy function makes a copy of a directory - structure in a new location. If copyBufferPtr <> NIL, it points to - a buffer of copyBufferSize that is used to copy files data. The - larger the supplied buffer, the faster the copy. If - copyBufferPtr = NIL, then this routine allocates a buffer in the - application heap. If you pass a copy buffer to this routine, make - its size a multiple of 512 ($200) bytes for optimum performance. - - The optional copyFilterProc parameter lets a routine you define - decide what files or directories are copied to the destination. - - srcSpec input: An FSSpec record specifying the directory to copy. - dstSpec input: An FSSpec record specifying destination directory - of the copy. - copyBufferPtr input: Points to a buffer of copyBufferSize that - is used the i/o buffer for the copy or - nil if you want DirectoryCopy to allocate its - own buffer in the application heap. - copyBufferSize input: The size of the buffer pointed to - by copyBufferPtr. - preflight input: If true, FSpDirectoryCopy makes sure there are - enough allocation blocks on the destination - volume to hold the directory's files before - starting the copy. - copyErrHandler input: A pointer to the routine you want called if an - error condition is detected during the copy, or - nil if you don't want to handle error conditions. - If you don't handle error conditions, the first - error will cause the copy to quit and - DirectoryCopy will return the error. - Error handling is recommended... - copyFilterProc input: A pointer to the filter routine you want called - for each item in the source directory, or NULL - if you don't want to filter. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Destination volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 Source file not found, or destination - directory does not exist - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - opWrErr -49 File already open for writing - paramErr -50 No default volume or function not - supported by volume - permErr -54 File is already open and cannot be opened using specified deny modes - memFullErr -108 Copy buffer could not be allocated - dirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory, directory not found - or incomplete pathname - - __________ - - Also see: CopyErrProcPtr, CopyFilterProcPtr, FilteredDirectoryCopy, - DirectoryCopy, FSpDirectoryCopy, FileCopy, FSpFileCopy -*/ - -/*****************************************************************************/ - -pascal OSErr DirectoryCopy(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler); -/* ¦ Make a copy of a directory structure in a new location. - The DirectoryCopy function makes a copy of a directory structure in a - new location. If copyBufferPtr <> NIL, it points to a buffer of - copyBufferSize that is used to copy files data. The larger the - supplied buffer, the faster the copy. If copyBufferPtr = NIL, then this - routine allocates a buffer in the application heap. If you pass a - copy buffer to this routine, make its size a multiple of 512 - ($200) bytes for optimum performance. - - DirectoryCopy normally creates a new directory *in* the specified - destination directory and copies the source directory's content into - the new directory. However, if root parent directory (fsRtParID) - is passed as the dstDirID parameter and NULL is passed as the - dstName parameter, DirectoryCopy renames the destination volume to - the source directory's name (truncating if the name is longer than - 27 characters) and copies the source directory's content into the - destination volume's root directory. This special case is supported - by DirectoryCopy, but not by FSpDirectoryCopy since with - FSpDirectoryCopy, the dstName parameter can not be NULL. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Source directory name, or nil if - srcDirID specifies the directory. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstName input: Destination directory name, or nil if - dstDirID specifies the directory. - copyBufferPtr input: Points to a buffer of copyBufferSize that - is used the i/o buffer for the copy or - nil if you want DirectoryCopy to allocate its - own buffer in the application heap. - copyBufferSize input: The size of the buffer pointed to - by copyBufferPtr. - preflight input: If true, DirectoryCopy makes sure there are - enough allocation blocks on the destination - volume to hold the directory's files before - starting the copy. - copyErrHandler input: A pointer to the routine you want called if an - error condition is detected during the copy, or - nil if you don't want to handle error conditions. - If you don't handle error conditions, the first - error will cause the copy to quit and - DirectoryCopy will return the error. - Error handling is recommended... - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Destination volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 Source file not found, or destination - directory does not exist - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - opWrErr -49 File already open for writing - paramErr -50 No default volume or function not - supported by volume - permErr -54 File is already open and cannot be opened using specified deny modes - memFullErr -108 Copy buffer could not be allocated - dirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory, directory not found - or incomplete pathname - - __________ - - Also see: CopyErrProcPtr, FSpDirectoryCopy, FilteredDirectoryCopy, - FSpFilteredDirectoryCopy, FileCopy, FSpFileCopy -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDirectoryCopy(const FSSpec *srcSpec, - const FSSpec *dstSpec, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight, - CopyErrProcPtr copyErrHandler); -/* ¦ Make a copy of a directory structure in a new location. - The FSpDirectoryCopy function makes a copy of a directory structure in a - new location. If copyBufferPtr <> NIL, it points to a buffer of - copyBufferSize that is used to copy files data. The larger the - supplied buffer, the faster the copy. If copyBufferPtr = NIL, then this - routine allocates a buffer in the application heap. If you pass a - copy buffer to this routine, make its size a multiple of 512 - ($200) bytes for optimum performance. - - srcSpec input: An FSSpec record specifying the directory to copy. - dstSpec input: An FSSpec record specifying destination directory - of the copy. - copyBufferPtr input: Points to a buffer of copyBufferSize that - is used the i/o buffer for the copy or - nil if you want DirectoryCopy to allocate its - own buffer in the application heap. - copyBufferSize input: The size of the buffer pointed to - by copyBufferPtr. - preflight input: If true, FSpDirectoryCopy makes sure there are - enough allocation blocks on the destination - volume to hold the directory's files before - starting the copy. - copyErrHandler input: A pointer to the routine you want called if an - error condition is detected during the copy, or - nil if you don't want to handle error conditions. - If you don't handle error conditions, the first - error will cause the copy to quit and - DirectoryCopy will return the error. - Error handling is recommended... - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Destination volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 Source file not found, or destination - directory does not exist - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - opWrErr -49 File already open for writing - paramErr -50 No default volume or function not - supported by volume - permErr -54 File is already open and cannot be opened using specified deny modes - memFullErr -108 Copy buffer could not be allocated - dirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory, directory not found - or incomplete pathname - - __________ - - Also see: CopyErrProcPtr, DirectoryCopy, FilteredDirectoryCopy, - FSpFilteredDirectoryCopy, FileCopy, FSpFileCopy -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __DIRECTORYCOPY__ */ diff --git a/src/mac/morefile/FSpCompa.cpp b/src/mac/morefile/FSpCompa.cpp deleted file mode 100644 index b35e20eb01..0000000000 --- a/src/mac/morefile/FSpCompa.cpp +++ /dev/null @@ -1,928 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** FSSpec compatibility functions. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: FSpCompat.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -/* -** If building application 68K code, set GENERATENODATA to 0 for faster code. -** If building stand-alone 68K code, set GENERATENODATA to 1 so globals -** (static variables) are not used. -*/ -#ifndef GENERATENODATA -#define GENERATENODATA 0 -#endif - -#include -#include -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreExtr.h" -#include "FSpCompa.h" - -/*****************************************************************************/ - -/* local constants */ - -enum { - gestaltBugFixAttrsTwo = 'bugy', - gestaltFSpExchangeFilesCompatibilityFix = 26, - gestaltBugFixAttrsThree = 'bugx', - gestaltFSpCreateScriptSupportFix = 1 -}; - -/*****************************************************************************/ - -/* static prototypes */ - - -#if !__MACOSSEVENORLATER -static Boolean FSHasFSSpecCalls(void); - -static Boolean QTHasFSSpecCalls(void); -#endif /* !__MACOSSEVENORLATER */ - -#if !__MACOSSEVENFIVEORLATER -static Boolean HasFSpExchangeFilesCompatibilityFix(void); - -static OSErr GenerateUniqueName(short volume, - long *startSeed, - long dir1, - long dir2, - StringPtr uniqueName); -#endif /* !__MACOSSEVENFIVEORLATER */ - -#if !__MACOSSEVENFIVEONEORLATER -static Boolean HasFSpCreateScriptSupportFix(void); -#endif /* !__MACOSSEVENFIVEONEORLATER */ - -/*****************************************************************************/ - -/* FSHasFSSpecCalls returns true if the file system provides FSSpec calls. */ - -#if !__MACOSSEVENORLATER -static Boolean FSHasFSSpecCalls(void) -{ - long response; -#if !GENERATENODATA - static Boolean tested = false; - static Boolean result = false; -#else - Boolean result = false; -#endif - -#if !GENERATENODATA - if ( !tested ) - { - tested = true; -#endif - if ( Gestalt(gestaltFSAttr, &response) == noErr ) - { - result = ((response & (1L << gestaltHasFSSpecCalls)) != 0); - } -#if !GENERATENODATA - } -#endif - return ( result ); -} -#endif /* !__MACOSSEVENORLATER */ - -/*****************************************************************************/ - -/* QTHasFSSpecCalls returns true if QuickTime provides FSSpec calls */ -/* except for FSpExchangeFiles. */ - -#if !__MACOSSEVENORLATER -static Boolean QTHasFSSpecCalls(void) -{ - long response; -#if !GENERATENODATA - static Boolean tested = false; - static Boolean result = false; -#else - Boolean result = false; -#endif - -#if !GENERATENODATA - if ( !tested ) - { - tested = true; -#endif - result = (Gestalt(gestaltQuickTimeVersion, &response) == noErr); -#if !GENERATENODATA - } -#endif - return ( result ); -} -#endif /* !__MACOSSEVENORLATER */ - -/*****************************************************************************/ - -/* HasFSpExchangeFilesCompatibilityFix returns true if FSpExchangeFiles */ -/* compatibility code has been fixed in system software. */ -/* This was fixed by System Update 3.0, so if SystemSevenFiveOrLater */ -/* is true, then we know the fix is in. */ - -#if !__MACOSSEVENFIVEORLATER -static Boolean HasFSpExchangeFilesCompatibilityFix(void) -{ - long response; -#if !GENERATENODATA - static Boolean tested = false; - static Boolean result = false; -#else /* !GENERATENODATA */ - Boolean result = false; -#endif /* !GENERATENODATA */ - -#if !GENERATENODATA - if ( !tested ) - { - tested = true; -#endif /* !GENERATENODATA */ - if ( Gestalt(gestaltBugFixAttrsTwo, &response) == noErr ) - { - result = ((response & (1L << gestaltFSpExchangeFilesCompatibilityFix)) != 0); - } -#if !GENERATENODATA - } -#endif /* !GENERATENODATA */ - return ( result ); -} -#endif /* !__MACOSSEVENFIVEORLATER */ - -/*****************************************************************************/ - -/* HasFSpCreateScriptSupportFix returns true if FSpCreate and */ -/* FSpCreateResFile have been fixed in system software to correctly set */ -/* the scriptCode in the volume's catalog. */ -/* This was fixed by System 7.5 Update 1.0 */ - -#if !__MACOSSEVENFIVEONEORLATER -static Boolean HasFSpCreateScriptSupportFix(void) -{ - long response; -#if !GENERATENODATA - static Boolean tested = false; - static Boolean result = false; -#else - Boolean result = false; -#endif /* !GENERATENODATA */ - -#if !GENERATENODATA - if ( !tested ) - { - tested = true; -#endif /* !GENERATENODATA */ - if ( Gestalt(gestaltBugFixAttrsThree, &response) == noErr ) - { - result = ((response & (1L << gestaltFSpCreateScriptSupportFix)) != 0); - } -#if !GENERATENODATA - } -#endif /* !GENERATENODATA */ - return ( result ); -} -#endif /* !__MACOSSEVENFIVEONEORLATER */ - -/*****************************************************************************/ - -/* -** File Manager FSp calls -*/ - -/*****************************************************************************/ - -pascal OSErr FSMakeFSSpecCompat(short vRefNum, - long dirID, - ConstStr255Param fileName, - FSSpec *spec) -{ - OSErr result; - -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - Boolean isDirectory; - - result = GetObjectLocation(vRefNum, dirID, fileName, - &(spec->vRefNum), &(spec->parID), spec->name, - &isDirectory); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - /* Let the file system create the FSSpec if it can since it does the job */ - /* much more efficiently than I can. */ - result = FSMakeFSSpec(vRefNum, dirID, fileName, spec); - - /* Fix a bug in Macintosh PC Exchange's MakeFSSpec code where 0 is */ - /* returned in the parID field when making an FSSpec to the volume's */ - /* root directory by passing a full pathname in MakeFSSpec's */ - /* fileName parameter. Fixed in Mac OS 8.1 */ - if ( (result == noErr) && (spec->parID == 0) ) - spec->parID = fsRtParID; - } - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr FSpOpenDFCompat(const FSSpec *spec, - char permission, - short *refNum) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - OSErr result; - HParamBlockRec pb; - - pb.ioParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.ioParam.ioNamePtr = (StringPtr) &(spec->name); - pb.ioParam.ioVersNum = 0; - pb.ioParam.ioPermssn = permission; - pb.ioParam.ioMisc = NULL; - result = PBHOpenSync(&pb); /* OpenDF not supported by System 6, so use Open */ - *refNum = pb.ioParam.ioRefNum; - return ( result ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpOpenDF(spec, permission, refNum) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpOpenRFCompat(const FSSpec *spec, - char permission, - short *refNum) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - OSErr result; - HParamBlockRec pb; - - pb.ioParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.ioParam.ioNamePtr = (StringPtr) &(spec->name); - pb.ioParam.ioVersNum = 0; - pb.ioParam.ioPermssn = permission; - pb.ioParam.ioMisc = NULL; - result = PBHOpenRFSync(&pb); - *refNum = pb.ioParam.ioRefNum; - return ( result ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpOpenRF(spec, permission, refNum) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpCreateCompat(const FSSpec *spec, - OSType creator, - OSType fileType, - ScriptCode scriptTag) -{ -#if !__MACOSSEVENFIVEONEORLATER - OSErr result; - UniversalFMPB pb; - - - if ( -#if !__MACOSSEVENORLATER - (!FSHasFSSpecCalls() && !QTHasFSSpecCalls()) || -#endif /* !__MACOSSEVENORLATER */ - !HasFSpCreateScriptSupportFix() ) - { - /* If FSpCreate isn't called, this code will be executed */ - pb.hPB.fileParam.ioVRefNum = spec->vRefNum; - pb.hPB.fileParam.ioDirID = spec->parID; - pb.hPB.fileParam.ioNamePtr = (StringPtr) &(spec->name); - pb.hPB.fileParam.ioFVersNum = 0; - result = PBHCreateSync(&(pb.hPB)); - if ( result == noErr ) - { - /* get info on created item */ - pb.ciPB.hFileInfo.ioFDirIndex = 0; - result = PBGetCatInfoSync(&(pb.ciPB)); - if ( result == noErr ) - { - /* Set fdScript in FXInfo */ - /* The negative script constants (smSystemScript, smCurrentScript, and smAllScripts) */ - /* don't make sense on disk, so only use scriptTag if scriptTag >= smRoman */ - /* (smRoman is 0). fdScript is valid if high bit is set (see IM-6, page 9-38) */ - pb.ciPB.hFileInfo.ioFlXFndrInfo.fdScript = (scriptTag >= smRoman) ? - ((char)scriptTag | (char)0x80) : - (smRoman); - /* Set creator/fileType */ - pb.ciPB.hFileInfo.ioFlFndrInfo.fdCreator = creator; - pb.ciPB.hFileInfo.ioFlFndrInfo.fdType = fileType; - /* Restore ioDirID field in pb which was changed by PBGetCatInfo */ - pb.ciPB.hFileInfo.ioDirID = spec->parID; - result = PBSetCatInfoSync(&(pb.ciPB)); - } - } - return ( result ); - } - else -#endif /* !__MACOSSEVENFIVEONEORLATER */ - { - return ( FSpCreate(spec, creator, fileType, scriptTag) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpDirCreateCompat(const FSSpec *spec, - ScriptCode scriptTag, - long *createdDirID) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - OSErr result; - UniversalFMPB pb; - - pb.hPB.fileParam.ioVRefNum = spec->vRefNum; - pb.hPB.fileParam.ioDirID = spec->parID; - pb.hPB.fileParam.ioNamePtr = (StringPtr) &(spec->name); - result = PBDirCreateSync(&(pb.hPB)); - *createdDirID = pb.hPB.fileParam.ioDirID; - if ( result == noErr ) - { - /* get info on created item */ - pb.ciPB.dirInfo.ioFDirIndex = 0; - pb.ciPB.dirInfo.ioDrDirID = spec->parID; - result = PBGetCatInfoSync(&(pb.ciPB)); - if ( result == noErr ) - { - /* Set frScript in DXInfo */ - /* The negative script constants (smSystemScript, smCurrentScript, and smAllScripts) */ - /* don't make sense on disk, so only use scriptTag if scriptTag >= smRoman */ - /* (smRoman is 0). frScript is valid if high bit is set (see IM-6, page 9-38) */ - pb.ciPB.dirInfo.ioDrFndrInfo.frScript = (scriptTag >= smRoman) ? - ((char)scriptTag | (char)0x80) : - (smRoman); - /* Restore ioDirID field in pb which was changed by PBGetCatInfo */ - pb.ciPB.dirInfo.ioDrDirID = spec->parID; - result = PBSetCatInfoSync(&(pb.ciPB)); - } - } - return ( result ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpDirCreate(spec, scriptTag, createdDirID) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpDeleteCompat(const FSSpec *spec) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - HParamBlockRec pb; - - pb.ioParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.ioParam.ioNamePtr = (StringPtr) &(spec->name); - pb.ioParam.ioVersNum = 0; - return ( PBHDeleteSync(&pb) ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpDelete(spec) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpGetFInfoCompat(const FSSpec *spec, - FInfo *fndrInfo) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - OSErr result; - HParamBlockRec pb; - - pb.fileParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.fileParam.ioNamePtr = (StringPtr) &(spec->name); - pb.fileParam.ioFVersNum = 0; - pb.fileParam.ioFDirIndex = 0; - result = PBHGetFInfoSync(&pb); - *fndrInfo = pb.fileParam.ioFlFndrInfo; - return ( result ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpGetFInfo(spec, fndrInfo) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpSetFInfoCompat(const FSSpec *spec, - const FInfo *fndrInfo) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - OSErr result; - HParamBlockRec pb; - - pb.fileParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.fileParam.ioNamePtr = (StringPtr) &(spec->name); - pb.fileParam.ioFVersNum = 0; - pb.fileParam.ioFDirIndex = 0; - result = PBHGetFInfoSync(&pb); - if ( result == noErr ) - { - pb.fileParam.ioFlFndrInfo = *fndrInfo; - pb.fileParam.ioDirID = spec->parID; - result = PBHSetFInfoSync(&pb); - } - return ( result ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpSetFInfo(spec, fndrInfo) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpSetFLockCompat(const FSSpec *spec) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - HParamBlockRec pb; - - pb.fileParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.fileParam.ioNamePtr = (StringPtr) &(spec->name); - pb.fileParam.ioFVersNum = 0; - return ( PBHSetFLockSync(&pb) ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpSetFLock(spec) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpRstFLockCompat(const FSSpec *spec) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - HParamBlockRec pb; - - pb.fileParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.fileParam.ioNamePtr = (StringPtr) &(spec->name); - pb.fileParam.ioFVersNum = 0; - return ( PBHRstFLockSync(&pb) ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpRstFLock(spec) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpRenameCompat(const FSSpec *spec, - ConstStr255Param newName) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - HParamBlockRec pb; - - pb.ioParam.ioVRefNum = spec->vRefNum; - pb.fileParam.ioDirID = spec->parID; - pb.ioParam.ioNamePtr = (StringPtr) &(spec->name); - pb.ioParam.ioVersNum = 0; - pb.ioParam.ioMisc = (Ptr) newName; - return ( PBHRenameSync(&pb) ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpRename(spec, newName) ); - } -} - -/*****************************************************************************/ - -pascal OSErr FSpCatMoveCompat(const FSSpec *source, - const FSSpec *dest) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - CMovePBRec pb; - - /* source and destination volume must be the same */ - if ( source->vRefNum != dest->vRefNum ) - return ( paramErr ); - - pb.ioNamePtr = (StringPtr) &(source->name); - pb.ioVRefNum = source->vRefNum; - pb.ioDirID = source->parID; - pb.ioNewDirID = dest->parID; - pb.ioNewName = (StringPtr) &(dest->name); - return ( PBCatMoveSync(&pb) ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpCatMove(source, dest) ); - } -} - -/*****************************************************************************/ - -/* GenerateUniqueName generates a name that is unique in both dir1 and dir2 */ -/* on the specified volume. Ripped off from Feldman's code. */ - -#if !__MACOSSEVENFIVEORLATER -static OSErr GenerateUniqueName(short volume, - long *startSeed, - long dir1, - long dir2, - StringPtr uniqueName) -{ - OSErr error = noErr; - long i; - CInfoPBRec cinfo; - unsigned char hexStr[16]; - - for ( i = 0; i < 16; ++i ) - { - if ( i < 10 ) - { - hexStr[i] = 0x30 + i; - } - else - { - hexStr[i] = 0x37 + i; - } - } - - cinfo.hFileInfo.ioVRefNum = volume; - cinfo.hFileInfo.ioFDirIndex = 0; - cinfo.hFileInfo.ioNamePtr = uniqueName; - - while ( error != fnfErr ) - { - (*startSeed)++; - cinfo.hFileInfo.ioNamePtr[0] = 8; - for ( i = 1; i <= 8; i++ ) - { - cinfo.hFileInfo.ioNamePtr[i] = hexStr[((*startSeed >> ((8-i)*4)) & 0xf)]; - } - cinfo.hFileInfo.ioDirID = dir1; - error = fnfErr; - for ( i = 1; i <= 2; i++ ) - { - error = error & PBGetCatInfoSync(&cinfo); - cinfo.hFileInfo.ioDirID = dir2; - if ( (error != fnfErr) && (error != noErr) ) - { - return ( error ); - } - } - } - return ( noErr ); -} -#endif /* !__MACOSSEVENFIVEORLATER */ - -/*****************************************************************************/ - -pascal OSErr FSpExchangeFilesCompat(const FSSpec *source, - const FSSpec *dest) -{ -#if !__MACOSSEVENFIVEORLATER - if ( -#if !__MACOSSEVENORLATER - !FSHasFSSpecCalls() || -#endif /* !__MACOSSEVENORLATER */ - !HasFSpExchangeFilesCompatibilityFix() ) - { - HParamBlockRec pb; - CInfoPBRec catInfoSource, catInfoDest; - OSErr result, result2; - Str31 unique1, unique2; - StringPtr unique1Ptr, unique2Ptr, swapola; - GetVolParmsInfoBuffer volInfo; - long theSeed, temp; - - /* Make sure the source and destination are on the same volume */ - if ( source->vRefNum != dest->vRefNum ) - { - result = diffVolErr; - goto errorExit3; - } - - /* Try PBExchangeFiles first since it preserves the file ID reference */ - pb.fidParam.ioNamePtr = (StringPtr) &(source->name); - pb.fidParam.ioVRefNum = source->vRefNum; - pb.fidParam.ioDestNamePtr = (StringPtr) &(dest->name); - pb.fidParam.ioDestDirID = dest->parID; - pb.fidParam.ioSrcDirID = source->parID; - - result = PBExchangeFilesSync(&pb); - - /* Note: The compatibility case won't work for files with *Btree control blocks. */ - /* Right now the only *Btree files are created by the system. */ - if ( result != noErr ) - { - pb.ioParam.ioNamePtr = NULL; - pb.ioParam.ioBuffer = (Ptr) &volInfo; - pb.ioParam.ioReqCount = sizeof(volInfo); - result2 = PBHGetVolParmsSync(&pb); - - /* continue if volume has no fileID support (or no GetVolParms support) */ - if ( (result2 == noErr) && hasFileIDs(volInfo) ) - { - goto errorExit3; - } - - /* Get the catalog information for each file */ - /* and make sure both files are *really* files */ - catInfoSource.hFileInfo.ioVRefNum = source->vRefNum; - catInfoSource.hFileInfo.ioFDirIndex = 0; - catInfoSource.hFileInfo.ioNamePtr = (StringPtr) &(source->name); - catInfoSource.hFileInfo.ioDirID = source->parID; - catInfoSource.hFileInfo.ioACUser = 0; /* ioACUser used to be filler2 */ - result = PBGetCatInfoSync(&catInfoSource); - if ( result != noErr ) - { - goto errorExit3; - } - if ( (catInfoSource.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - result = notAFileErr; - goto errorExit3; - } - - catInfoDest.hFileInfo.ioVRefNum = dest->vRefNum; - catInfoDest.hFileInfo.ioFDirIndex = 0; - catInfoDest.hFileInfo.ioNamePtr = (StringPtr) &(dest->name); - catInfoDest.hFileInfo.ioDirID = dest->parID; - catInfoDest.hFileInfo.ioACUser = 0; /* ioACUser used to be filler2 */ - result = PBGetCatInfoSync(&catInfoDest); - if ( result != noErr ) - { - goto errorExit3; - } - if ( (catInfoDest.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - result = notAFileErr; - goto errorExit3; - } - - /* generate 2 filenames that are unique in both directories */ - theSeed = 0x64666A6C; /* a fine unlikely filename */ - unique1Ptr = (StringPtr)&unique1; - unique2Ptr = (StringPtr)&unique2; - - result = GenerateUniqueName(source->vRefNum, &theSeed, source->parID, dest->parID, unique1Ptr); - if ( result != noErr ) - { - goto errorExit3; - } - - GenerateUniqueName(source->vRefNum, &theSeed, source->parID, dest->parID, unique2Ptr); - if ( result != noErr ) - { - goto errorExit3; - } - - /* rename source to unique1 */ - pb.fileParam.ioNamePtr = (StringPtr) &(source->name); - pb.ioParam.ioMisc = (Ptr) unique1Ptr; - pb.ioParam.ioVersNum = 0; - result = PBHRenameSync(&pb); - if ( result != noErr ) - { - goto errorExit3; - } - - /* rename dest to unique2 */ - pb.ioParam.ioMisc = (Ptr) unique2Ptr; - pb.ioParam.ioVersNum = 0; - pb.fileParam.ioNamePtr = (StringPtr) &(dest->name); - pb.fileParam.ioDirID = dest->parID; - result = PBHRenameSync(&pb); - if ( result != noErr ) - { - goto errorExit2; /* back out gracefully by renaming unique1 back to source */ - } - - /* If files are not in same directory, swap their locations */ - if ( source->parID != dest->parID ) - { - /* move source file to dest directory */ - pb.copyParam.ioNamePtr = unique1Ptr; - pb.copyParam.ioNewName = NULL; - pb.copyParam.ioNewDirID = dest->parID; - pb.copyParam.ioDirID = source->parID; - result = PBCatMoveSync((CMovePBPtr) &pb); - if ( result != noErr ) - { - goto errorExit1; /* back out gracefully by renaming both files to original names */ - } - - /* move dest file to source directory */ - pb.copyParam.ioNamePtr = unique2Ptr; - pb.copyParam.ioNewDirID = source->parID; - pb.copyParam.ioDirID = dest->parID; - result = PBCatMoveSync((CMovePBPtr) &pb); - if ( result != noErr) - { - /* life is very bad. We'll at least try to move source back */ - pb.copyParam.ioNamePtr = unique1Ptr; - pb.copyParam.ioNewName = NULL; - pb.copyParam.ioNewDirID = source->parID; - pb.copyParam.ioDirID = dest->parID; - (void) PBCatMoveSync((CMovePBPtr) &pb); /* ignore errors */ - goto errorExit1; /* back out gracefully by renaming both files to original names */ - } - } - - /* Make unique1Ptr point to file in source->parID */ - /* and unique2Ptr point to file in dest->parID */ - /* This lets us fall through to the rename code below */ - swapola = unique1Ptr; - unique1Ptr = unique2Ptr; - unique2Ptr = swapola; - - /* At this point, the files are in their new locations (if they were moved) */ - /* Source is named Unique1 (name pointed to by unique2Ptr) and is in dest->parID */ - /* Dest is named Unique2 (name pointed to by unique1Ptr) and is in source->parID */ - /* Need to swap attributes except mod date and swap names */ - - /* swap the catalog info by re-aiming the CInfoPB's */ - catInfoSource.hFileInfo.ioNamePtr = unique1Ptr; - catInfoDest.hFileInfo.ioNamePtr = unique2Ptr; - - catInfoSource.hFileInfo.ioDirID = source->parID; - catInfoDest.hFileInfo.ioDirID = dest->parID; - - /* Swap the original mod dates with each file */ - temp = catInfoSource.hFileInfo.ioFlMdDat; - catInfoSource.hFileInfo.ioFlMdDat = catInfoDest.hFileInfo.ioFlMdDat; - catInfoDest.hFileInfo.ioFlMdDat = temp; - - /* Here's the swap (ignore errors) */ - (void) PBSetCatInfoSync(&catInfoSource); - (void) PBSetCatInfoSync(&catInfoDest); - - /* rename unique2 back to dest */ -errorExit1: - pb.ioParam.ioMisc = (Ptr) &(dest->name); - pb.ioParam.ioVersNum = 0; - pb.fileParam.ioNamePtr = unique2Ptr; - pb.fileParam.ioDirID = dest->parID; - (void) PBHRenameSync(&pb); /* ignore errors */ - - /* rename unique1 back to source */ -errorExit2: - pb.ioParam.ioMisc = (Ptr) &(source->name); - pb.ioParam.ioVersNum = 0; - pb.fileParam.ioNamePtr = unique1Ptr; - pb.fileParam.ioDirID = source->parID; - (void) PBHRenameSync(&pb); /* ignore errors */ - } -errorExit3: { /* null statement */ } - return ( result ); - } - else -#endif /* !__MACOSSEVENFIVEORLATER */ - { - return ( FSpExchangeFiles(source, dest) ); - } -} - -/*****************************************************************************/ - -/* -** Resource Manager FSp calls -*/ - -/*****************************************************************************/ - -pascal short FSpOpenResFileCompat(const FSSpec *spec, - SignedByte permission) -{ -#if !__MACOSSEVENORLATER - if ( !FSHasFSSpecCalls() && !QTHasFSSpecCalls() ) - { - return ( HOpenResFile(spec->vRefNum, spec->parID, spec->name, permission) ); - } - else -#endif /* !__MACOSSEVENORLATER */ - { - return ( FSpOpenResFile(spec, permission) ); - } -} - -/*****************************************************************************/ - -pascal void FSpCreateResFileCompat(const FSSpec *spec, - OSType creator, - OSType fileType, - ScriptCode scriptTag) -{ -#if !__MACOSSEVENFIVEONEORLATER - if ( -#if !__MACOSSEVENORLATER - (!FSHasFSSpecCalls() && !QTHasFSSpecCalls()) || -#endif /* !__MACOSSEVENORLATER */ - !HasFSpCreateScriptSupportFix() ) - { - OSErr result; - CInfoPBRec pb; - - HCreateResFile(spec->vRefNum, spec->parID, spec->name); - if ( ResError() == noErr ) - { - /* get info on created item */ - pb.hFileInfo.ioVRefNum = spec->vRefNum; - pb.hFileInfo.ioDirID = spec->parID; - pb.hFileInfo.ioNamePtr = (StringPtr) &(spec->name); - pb.hFileInfo.ioFDirIndex = 0; - result = PBGetCatInfoSync(&pb); - if ( result == noErr ) - { - /* Set fdScript in FXInfo */ - /* The negative script constants (smSystemScript, smCurrentScript, and smAllScripts) */ - /* don't make sense on disk, so only use scriptTag if scriptTag >= smRoman */ - /* (smRoman is 0). fdScript is valid if high bit is set (see IM-6, page 9-38) */ - pb.hFileInfo.ioFlXFndrInfo.fdScript = (scriptTag >= smRoman) ? - ((char)scriptTag | (char)0x80) : - (smRoman); - /* Set creator/fileType */ - pb.hFileInfo.ioFlFndrInfo.fdCreator = creator; - pb.hFileInfo.ioFlFndrInfo.fdType = fileType; - - /* Restore ioDirID field in pb which was changed by PBGetCatInfo */ - pb.hFileInfo.ioDirID = spec->parID; - result = PBSetCatInfoSync(&pb); - } - /* Set ResErr low memory global to result */ - LMSetResErr(result); - } - return; - } - else -#endif /* !__MACOSSEVENFIVEONEORLATER */ - { - FSpCreateResFile(spec, creator, fileType, scriptTag); - return; - } -} - -/*****************************************************************************/ diff --git a/src/mac/morefile/FSpCompa.h b/src/mac/morefile/FSpCompa.h deleted file mode 100644 index 1dbc11f22b..0000000000 --- a/src/mac/morefile/FSpCompa.h +++ /dev/null @@ -1,488 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** FSSpec compatibility functions. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: FSpCompat.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __FSPCOMPAT__ -#define __FSPCOMPAT__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -pascal OSErr FSMakeFSSpecCompat(short vRefNum, - long dirID, - ConstStr255Param fileName, - FSSpec *spec); -/* ¦ Initialize a FSSpec record. - The FSMakeFSSpecCompat function fills in the fields of an FSSpec record. - If the file system can't create the FSSpec, then the compatibility code - creates a FSSpec that is exactly like an FSSpec except that spec.name - for a file may not have the same capitalization as the file's catalog - entry on the disk volume. That is because fileName is parsed to get the - name instead of getting the name back from the file system. This works - fine with System 6 where FSMakeSpec isn't available. - - vRefNum input: Volume specification. - dirID input: Directory ID. - fileName input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - spec output: A file system specification to be filled in by - FSMakeFSSpecCompat. - - Result Codes - noErr 0 No error - nsvErr -35 Volume doesnÕt exist - fnfErr -43 File or directory does not exist - (FSSpec is still valid) -*/ - -/*****************************************************************************/ - -pascal OSErr FSpOpenDFCompat(const FSSpec *spec, - char permission, - short *refNum); -/* ¦ Open a file's data fork. - The FSpOpenDFCompat function opens the data fork of the file specified - by spec. - Differences from FSpOpenDF: If FSpOpenDF isn't available, - FSpOpenDFCompat uses PHBOpen because System 6 doesn't support PBHOpenDF. - This means FSpOpenDFCompat could accidentally open a driver if the - spec->name begins with a period. - - spec input: An FSSpec record specifying the file whose data - fork is to be opened. - permission input: A constant indicating the desired file access - permissions. - refNum output: A reference number of an access path to the file's - data fork. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 File not found - opWrErr -49 File already open for writing - permErr -54 Attempt to open locked file for writing - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access to - the file - - __________ - - See also: FSpOpenAware -*/ - -/*****************************************************************************/ - -pascal OSErr FSpOpenRFCompat(const FSSpec *spec, - char permission, - short *refNum); -/* ¦ Open a file's resource fork. - The FSpOpenRFCompat function opens the resource fork of the file - specified by spec. - - spec input: An FSSpec record specifying the file whose resource - fork is to be opened. - permission input: A constant indicating the desired file access - permissions. - refNum output: A reference number of an access path to the file's - resource fork. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 File not found - opWrErr -49 File already open for writing - permErr -54 Attempt to open locked file for writing - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access to - the file - - __________ - - See also: FSpOpenRFAware -*/ - - -/*****************************************************************************/ - -pascal OSErr FSpCreateCompat(const FSSpec *spec, - OSType creator, - OSType fileType, - ScriptCode scriptTag); -/* ¦ Create a new file. - The FSpCreateCompat function creates a new file with the specified - type, creator, and script code. - Differences from FSpCreate: FSpCreateCompat correctly sets the - fdScript in the file's FXInfo record to scriptTag if the problem - isn't fixed in the File Manager code. - - spec input: An FSSpec record specifying the file to create. - creator input: The creator of the new file. - fileType input The file type of the new file. - scriptCode input: The code of the script system in which the file - name is to be displayed. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Disk is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 Directory not found or incomplete pathname - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - dupFNErr -48 Duplicate filename and version - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 A directory exists with that name -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDirCreateCompat(const FSSpec *spec, - ScriptCode scriptTag, - long *createdDirID); -/* ¦ Create a new directory. - The FSpDirCreateCompat function creates a new directory and returns the - directory ID of the newDirectory. - - spec input: An FSSpec record specifying the directory to - create. - scriptCode input: The code of the script system in which the - directory name is to be displayed. - createdDirID output: The directory ID of the directory that was - created. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Disk is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 Directory not found or incomplete pathname - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - dupFNErr -48 Duplicate filename and version - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Not an HFS volume - afpAccessDenied -5000 User does not have the correct access -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDeleteCompat(const FSSpec *spec); -/* ¦ Delete a file or directory. - The FSpDeleteCompat function deletes a file or directory. - - spec input: An FSSpec record specifying the file or - directory to delete. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - fBsyErr -47 File busy, directory not empty, or - working directory control block open - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetFInfoCompat(const FSSpec *spec, - FInfo *fndrInfo); -/* ¦ Get the finder information for a file. - The FSpGetFInfoCompat function gets the finder information for a file. - - spec input: An FSSpec record specifying the file. - fndrInfo output: If the object is a file, then its FInfo. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: FSpGetDInfo -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetFInfoCompat(const FSSpec *spec, - const FInfo *fndrInfo); -/* ¦ Set the finder information for a file. - The FSpSetFInfoCompat function sets the finder information for a file. - - spec input: An FSSpec record specifying the file. - fndrInfo input: The FInfo. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Object was a directory - - __________ - - Also see: FSpSetDInfo -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetFLockCompat(const FSSpec *spec); -/* ¦ Lock a file. - The FSpSetFLockCompat function locks a file. - - spec input: An FSSpec record specifying the file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access to - the file - afpObjectTypeErr -5025 Folder locking not supported by volume -*/ - -/*****************************************************************************/ - -pascal OSErr FSpRstFLockCompat(const FSSpec *spec); -/* ¦ Unlock a file. - The FSpRstFLockCompat function unlocks a file. - - spec input: An FSSpec record specifying the file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access to - the file - afpObjectTypeErr -5025 Folder locking not supported by volume -*/ - -/*****************************************************************************/ - -pascal OSErr FSpRenameCompat(const FSSpec *spec, - ConstStr255Param newName); -/* ¦ Rename a file or directory. - The FSpRenameCompat function renames a file or directory. - - spec input: An FSSpec record specifying the file. - newName input: The new name of the file or directory. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - dupFNErr -48 Duplicate filename and version - paramErr -50 No default volume - fsRnErr -59 Problem during rename - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access to - the file -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCatMoveCompat(const FSSpec *source, - const FSSpec *dest); -/* ¦ Move a file or directory to a different location on on the same volume. - The FSpCatMoveCompat function moves a file or directory to a different - location on on the same volume. - - source input: An FSSpec record specifying the file or directory. - dest input: An FSSpec record specifying the name and location - of the directory into which the source file or - directory is to be moved. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename or attempt to move into - a file - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - fLckdErr -45 Target directory is locked - vLckdErr -46 Software volume lock - dupFNErr -48 Duplicate filename and version - paramErr -50 No default volume - badMovErr -122 Attempt to move into offspring - wrgVolTypErr -123 Not an HFS volume - afpAccessDenied -5000 User does not have the correct access to - the file -*/ - -/*****************************************************************************/ - -pascal OSErr FSpExchangeFilesCompat(const FSSpec *source, - const FSSpec *dest); -/* ¦ Exchange the data stored in two files on the same volume. - The FSpExchangeFilesCompat function swaps the data in two files by - changing the information in the volume's catalog and, if the files - are open, in the file control blocks. - Differences from FSpExchangeFiles: Correctly exchanges files on volumes - that don't support PBExchangeFiles. FSpExchangeFiles attempts to support - volumes that don't support PBExchangeFiles, but in System 7, 7.0.1, 7.1, - and 7 Pro, the compatibility code just doesn't work on volumes that - don't support PBExchangeFiles (even though you may get a noErr result). - System Update 3.0 and System 7.5 and later have the problems in - FSpExchangeFiles corrected. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 Function not supported by volume - volOfflinErr -53 Volume is offline - wrgVolTypErr -123 Not an HFS volume - diffVolErr -1303 Files on different volumes - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Object is a directory, not a file - afpSameObjectErr -5038 Source and destination files are the same -*/ - -/*****************************************************************************/ - -pascal short FSpOpenResFileCompat(const FSSpec *spec, - SignedByte permission); -/* ¦ Open a file's resource file. - The FSpOpenResFileCompat function opens the resource file specified - by spec. - - spec input: An FSSpec record specifying the file whose - resource file is to be opened. - permission input: A constant indicating the desired file access - permissions. - function result output: A resource file reference number, or if there's - an error -1. - - Result Codes - noErr 0 No error - nsvErr Ð35 No such volume - ioErr Ð36 I/O error - bdNamErr Ð37 Bad filename or volume name (perhaps zero - length) - eofErr Ð39 End of file - tmfoErr Ð42 Too many files open - fnfErr Ð43 File not found - opWrErr Ð49 File already open with write permission - permErr Ð54 Permissions error (on file open) - extFSErr Ð58 Volume belongs to an external file system - memFullErr Ð108 Not enough room in heap zone - dirNFErr Ð120 Directory not found - mapReadErr Ð199 Map inconsistent with operation -*/ - -/*****************************************************************************/ - -pascal void FSpCreateResFileCompat(const FSSpec *spec, - OSType creator, - OSType fileType, - ScriptCode scriptTag); -/* ¦ Create a resource file. - The FSpCreateResFileCompat function creates a new resource file with - the specified type, creator, and script code. - Differences from FSpCreateResFile: FSpCreateResFileCompat correctly - sets the fdScript in the file's FXInfo record to scriptTag if the - problem isn't fixed in the File Manager code. - - spec input: An FSSpec record specifying the resource file to create. - creator input: The creator of the new file. - fileType input The file type of the new file. - scriptCode input: The code of the script system in which the file - name is to be displayed. - - Result Codes - noErr 0 No error - dirFulErr Ð33 Directory full - dskFulErr Ð34 Disk full - nsvErr Ð35 No such volume - ioErr Ð36 I/O error - bdNamErr Ð37 Bad filename or volume name (perhaps zero - length) - tmfoErr Ð42 Too many files open - wPrErrw Ð44 Disk is write-protected - fLckdErr Ð45 File is locked -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __FSPCOMPAT__ */ - diff --git a/src/mac/morefile/FileCopy.cpp b/src/mac/morefile/FileCopy.cpp deleted file mode 100644 index 8843c9b988..0000000000 --- a/src/mac/morefile/FileCopy.cpp +++ /dev/null @@ -1,593 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** FileCopy: A robust, general purpose file copy routine. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: FileCopy.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreFile.h" -#include "MoreExtr.h" -#include "MoreDesk.h" -#include "FileCopy.h" - -/*****************************************************************************/ - -/* local constants */ - -/* The deny-mode privileges to use when opening the source and destination files. */ - -enum -{ - srcCopyMode = dmRdDenyWr, - dstCopyMode = dmWrDenyRdWr -}; - -/* The largest (16K) and smallest (.5K) copy buffer to use if the caller doesn't supply -** their own copy buffer. */ - -enum -{ - bigCopyBuffSize = 0x00004000, - minCopyBuffSize = 0x00000200 -}; - -/*****************************************************************************/ - -/* static prototypes */ - -static OSErr GetDestinationDirInfo(short vRefNum, - long dirID, - ConstStr255Param name, - long *theDirID, - Boolean *isDirectory, - Boolean *isDropBox); -/* GetDestinationDirInfo tells us if the destination is a directory, it's - directory ID, and if it's an AppleShare drop box (write privileges only -- - no read or search privileges). - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - theDirID output: If the object is a file, then its parent directory - ID. If the object is a directory, then its ID. - isDirectory output: True if object is a directory; false if - object is a file. - isDropBox output: True if directory is an AppleShare drop box. -*/ - -static OSErr CheckForForks(short vRefNum, - long dirID, - ConstStr255Param name, - Boolean *hasDataFork, - Boolean *hasResourceFork); -/* CheckForForks tells us if there is a data or resource fork to copy. - vRefNum input: Volume specification of the file's current - location. - dirID input: Directory ID of the file's current location. - name input: The name of the file. -*/ - -static OSErr PreflightFileCopySpace(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - ConstStr255Param dstVolName, - short dstVRefNum, - Boolean *spaceOK); -/* PreflightFileCopySpace determines if there's enough space on a - volume to copy the specified file to that volume. - Note: The results of this routine are not perfect. For example if the - volume's catalog or extents overflow file grows when the new file is - created, more allocation blocks may be needed beyond those needed for - the file's data and resource forks. - - srcVRefNum input: Volume specification of the file's current - location. - srcDirID input: Directory ID of the file's current location. - srcName input: The name of the file. - dstVolName input: A pointer to the name of the volume where - the file will be copied or NULL. - dstVRefNum input: Volume specification indicating the volume - where the file will be copied. - spaceOK output: true if there's enough space on the volume for - the file's data and resource forks. -*/ - -/*****************************************************************************/ - -static OSErr GetDestinationDirInfo(short vRefNum, - long dirID, - ConstStr255Param name, - long *theDirID, - Boolean *isDirectory, - Boolean *isDropBox) -{ - CInfoPBRec pb; - OSErr error; - - pb.dirInfo.ioACUser = 0; /* ioACUser used to be filler2, clear it before calling GetCatInfo */ - error = GetCatInfoNoName(vRefNum, dirID, name, &pb); - *theDirID = pb.dirInfo.ioDrDirID; - *isDirectory = (pb.dirInfo.ioFlAttrib & ioDirMask) != 0; - /* see if access priviledges are make changes, not see folder, and not see files (drop box) */ - *isDropBox = ((pb.dirInfo.ioACUser & 0x07) == 0x03); - - return ( error ); -} - -/*****************************************************************************/ - -static OSErr CheckForForks(short vRefNum, - long dirID, - ConstStr255Param name, - Boolean *hasDataFork, - Boolean *hasResourceFork) -{ - HParamBlockRec pb; - OSErr error; - - pb.fileParam.ioNamePtr = (StringPtr)name; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioFVersNum = 0; - pb.fileParam.ioDirID = dirID; - pb.fileParam.ioFDirIndex = 0; - error = PBHGetFInfoSync(&pb); - *hasDataFork = (pb.fileParam.ioFlLgLen != 0); - *hasResourceFork = (pb.fileParam.ioFlRLgLen != 0); - - return ( error ); -} - -/*****************************************************************************/ - -static OSErr PreflightFileCopySpace(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - ConstStr255Param dstVolName, - short dstVRefNum, - Boolean *spaceOK) -{ - UniversalFMPB pb; - OSErr error; - unsigned long dstFreeBlocks; - unsigned long dstBlksPerAllocBlk; - unsigned long srcDataBlks; - unsigned long srcResourceBlks; - - error = XGetVolumeInfoNoName(dstVolName, dstVRefNum, &pb.xPB); - if ( error == noErr ) - { - /* get allocation block size (always multiple of 512) and divide by 512 - to get number of 512-byte blocks per allocation block */ - dstBlksPerAllocBlk = ((unsigned long)pb.xPB.ioVAlBlkSiz >> 9); - - /* Convert freeBytes to free disk blocks (512-byte blocks) */ - dstFreeBlocks = (pb.xPB.ioVFreeBytes.hi << 23) + (pb.xPB.ioVFreeBytes.lo >> 9); - - /* Now, get the size of the file's data resource forks */ - pb.hPB.fileParam.ioNamePtr = (StringPtr)srcName; - pb.hPB.fileParam.ioVRefNum = srcVRefNum; - pb.hPB.fileParam.ioFVersNum = 0; - pb.hPB.fileParam.ioDirID = srcDirID; - pb.hPB.fileParam.ioFDirIndex = 0; - error = PBHGetFInfoSync(&pb.hPB); - if ( error == noErr ) - { - /* Since space on Mac OS disks is always allocated in allocation blocks, */ - /* this code takes into account rounding up to the end of an allocation block. */ - - /* get number of 512-byte blocks needed for data fork */ - if ( ((unsigned long)pb.hPB.fileParam.ioFlLgLen & 0x000001ff) != 0 ) - { - srcDataBlks = ((unsigned long)pb.hPB.fileParam.ioFlLgLen >> 9) + 1; - } - else - { - srcDataBlks = (unsigned long)pb.hPB.fileParam.ioFlLgLen >> 9; - } - - /* now, calculate number of new allocation blocks needed */ - if ( srcDataBlks % dstBlksPerAllocBlk ) - { - srcDataBlks = (srcDataBlks / dstBlksPerAllocBlk) + 1; - } - else - { - srcDataBlks /= dstBlksPerAllocBlk; - } - - /* get number of 512-byte blocks needed for resource fork */ - if ( ((unsigned long)pb.hPB.fileParam.ioFlRLgLen & 0x000001ff) != 0 ) - { - srcResourceBlks = ((unsigned long)pb.hPB.fileParam.ioFlRLgLen >> 9) + 1; - } - else - { - srcResourceBlks = (unsigned long)pb.hPB.fileParam.ioFlRLgLen >> 9; - } - - /* now, calculate number of new allocation blocks needed */ - if ( srcResourceBlks % dstBlksPerAllocBlk ) - { - srcResourceBlks = (srcResourceBlks / dstBlksPerAllocBlk) + 1; - } - else - { - srcResourceBlks /= dstBlksPerAllocBlk; - } - - /* Is there enough room on the destination volume for the source file? */ - *spaceOK = ( ((srcDataBlks + srcResourceBlks) * dstBlksPerAllocBlk) <= dstFreeBlocks ); - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FileCopy(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstPathname, - ConstStr255Param copyName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight) -{ - OSErr err; - - short srcRefNum = 0, /* 0 when source data and resource fork are closed */ - dstDataRefNum = 0, /* 0 when destination data fork is closed */ - dstRsrcRefNum = 0; /* 0 when destination resource fork is closed */ - - Str63 dstName; /* The filename of the destination. It might be the - ** source filename, it might be a new name... */ - - GetVolParmsInfoBuffer infoBuffer; /* Where PBGetVolParms dumps its info */ - long srcServerAdr; /* AppleTalk server address of source (if any) */ - - Boolean dstCreated = false, /* true when destination file has been created */ - ourCopyBuffer = false, /* true if we had to allocate the copy buffer */ - isDirectory, /* true if destination is really a directory */ - isDropBox; /* true if destination is an AppleShare drop box */ - - long tempLong; - short tempInt; - - Boolean spaceOK; /* true if there's enough room to copy the file to the destination volume */ - - Boolean hasDataFork; - Boolean hasResourceFork; - - /* Preflight for size */ - if ( preflight ) - { - err = PreflightFileCopySpace(srcVRefNum, srcDirID, srcName, - dstPathname, dstVRefNum, &spaceOK); - if ( err != noErr ) - { - return ( err ); - } - - if ( !spaceOK ) - { - return ( dskFulErr ); - } - } - - /* get the destination's real dirID and make sure it really is a directory */ - err = GetDestinationDirInfo(dstVRefNum, dstDirID, dstPathname, - &dstDirID, &isDirectory, &isDropBox); - if ( err != noErr ) - { - goto ErrorExit; - } - - if ( !isDirectory ) - { - return ( dirNFErr ); - } - - /* get the destination's real vRefNum */ - err = DetermineVRefNum(dstPathname, dstVRefNum, &dstVRefNum); - if ( err != noErr ) - { - goto ErrorExit; - } - - /* See if PBHCopyFile can be used. Using PBHCopyFile saves time by letting the file server - ** copy the file if the source and destination locations are on the same file server. */ - tempLong = sizeof(infoBuffer); - err = HGetVolParms(srcName, srcVRefNum, &infoBuffer, &tempLong); - if ( (err != noErr) && (err != paramErr) ) - { - return ( err ); - } - - if ( (err != paramErr) && hasCopyFile(infoBuffer) ) - { - /* The source volume supports PBHCopyFile. */ - srcServerAdr = infoBuffer.vMServerAdr; - - /* Now, see if the destination volume is on the same file server. */ - tempLong = sizeof(infoBuffer); - err = HGetVolParms(NULL, dstVRefNum, &infoBuffer, &tempLong); - if ( (err != noErr) && (err != paramErr) ) - { - return ( err ); - } - if ( (err != paramErr) && (srcServerAdr == infoBuffer.vMServerAdr) ) - { - /* Source and Dest are on same server and PBHCopyFile is supported. Copy with CopyFile. */ - err = HCopyFile(srcVRefNum, srcDirID, srcName, dstVRefNum, dstDirID, NULL, copyName); - if ( err != noErr ) - { - return ( err ); - } - - /* AppleShare's CopyFile clears the isAlias bit, so I still need to attempt to copy - the File's attributes to attempt to get things right. */ - if ( copyName != NULL ) /* Did caller supply copy file name? */ - { - /* Yes, use the caller supplied copy file name. */ - (void) CopyFileMgrAttributes(srcVRefNum, srcDirID, srcName, - dstVRefNum, dstDirID, copyName, true); - } - else - { - /* They didn't, so get the source file name and use it. */ - if ( GetFilenameFromPathname(srcName, dstName) == noErr ) - { - /* */ - (void) CopyFileMgrAttributes(srcVRefNum, srcDirID, srcName, - dstVRefNum, dstDirID, dstName, true); - } - } - return ( err ); - } - } - - /* If we're here, then PBHCopyFile couldn't be used so we have to copy the file by hand. */ - - /* Make sure a copy buffer is allocated. */ - if ( copyBufferPtr == NULL ) - { - /* The caller didn't supply a copy buffer so grab one from the application heap. - ** Try to get a big copy buffer, if we can't, try for a 512-byte buffer. - ** If 512 bytes aren't available, we're in trouble. */ - copyBufferSize = bigCopyBuffSize; - copyBufferPtr = NewPtr(copyBufferSize); - if ( copyBufferPtr == NULL ) - { - copyBufferSize = minCopyBuffSize; - copyBufferPtr = NewPtr(copyBufferSize); - if ( copyBufferPtr == NULL ) - { - return ( memFullErr ); - } - } - ourCopyBuffer = true; - } - - /* Open the source data fork. */ - err = HOpenAware(srcVRefNum, srcDirID, srcName, srcCopyMode, &srcRefNum); - if ( err != noErr ) - return ( err ); - - /* Once a file is opened, we have to exit via ErrorExit to make sure things are cleaned up */ - - /* See if the copy will be renamed. */ - if ( copyName != NULL ) /* Did caller supply copy file name? */ - BlockMoveData(copyName, dstName, copyName[0] + 1); /* Yes, use the caller supplied copy file name. */ - else - { /* They didn't, so get the source file name and use it. */ - err = GetFileLocation(srcRefNum, &tempInt, &tempLong, dstName); - if ( err != noErr ) - { - goto ErrorExit; - } - } - - /* Create the destination file. */ - err = HCreateMinimum(dstVRefNum, dstDirID, dstName); - if ( err != noErr ) - { - goto ErrorExit; - } - dstCreated = true; /* After creating the destination file, any - ** error conditions should delete the destination file */ - - /* An AppleShare dropbox folder is a folder for which the user has the Make Changes - ** privilege (write access), but not See Files (read access) and See Folders (search access). - ** Copying a file into an AppleShare dropbox presents some special problems. Here are the - ** rules we have to follow to copy a file into a dropbox: - ** ¥ File attributes can be changed only when both forks of a file are empty. - ** ¥ DeskTop Manager comments can be added to a file only when both forks of a file - ** are empty. - ** ¥ A fork can be opened for write access only when both forks of a file are empty. - ** So, with those rules to live with, we'll do those operations now while both forks - ** are empty. */ - - if ( isDropBox ) - { - /* We only set the file attributes now if the file is being copied into a - ** drop box. In all other cases, it is better to set the attributes last - ** so that if FileCopy is modified to give up time to other processes - ** periodicly, the Finder won't try to read any bundle information (because - ** the bundle-bit will still be clear) from a partially copied file. If the - ** copy is into a drop box, we have to set the attributes now, but since the - ** destination forks are opened with write/deny-read/deny-write permissions, - ** any Finder that might see the file in the drop box won't be able to open - ** its resource fork until the resource fork is closed. - ** - ** Note: if you do modify FileCopy to give up time to other processes, don't - ** give up time between the time the destination file is created (above) and - ** the time both forks are opened (below). That way, you stand the best chance - ** of making sure the Finder doesn't read a partially copied resource fork. - */ - /* Copy attributes but don't lock the destination. */ - err = CopyFileMgrAttributes(srcVRefNum, srcDirID, srcName, - dstVRefNum, dstDirID, dstName, false); - if ( err != noErr ) - { - goto ErrorExit; - } - } - - /* Attempt to copy the comments while both forks are empty. - ** Ignore the result because we really don't care if it worked or not. */ - (void) DTCopyComment(srcVRefNum, srcDirID, srcName, dstVRefNum, dstDirID, dstName); - - /* See which forks we need to copy. By doing this, we won't create a data or resource fork - ** for the destination unless it's really needed (some foreign file systems such as - ** the ProDOS File System and Macintosh PC Exchange have to create additional disk - ** structures to support resource forks). */ - err = CheckForForks(srcVRefNum, srcDirID, srcName, &hasDataFork, &hasResourceFork); - if ( err != noErr ) - { - goto ErrorExit; - } - - if ( hasDataFork ) - { - /* Open the destination data fork. */ - err = HOpenAware(dstVRefNum, dstDirID, dstName, dstCopyMode, &dstDataRefNum); - if ( err != noErr ) - { - goto ErrorExit; - } - } - - if ( hasResourceFork ) - { - /* Open the destination resource fork. */ - err = HOpenRFAware(dstVRefNum, dstDirID, dstName, dstCopyMode, &dstRsrcRefNum); - if ( err != noErr ) - { - goto ErrorExit; - } - } - - if ( hasDataFork ) - { - /* Copy the data fork. */ - err = CopyFork(srcRefNum, dstDataRefNum, copyBufferPtr, copyBufferSize); - if ( err != noErr ) - { - goto ErrorExit; - } - - /* Close both data forks and clear reference numbers. */ - (void) FSClose(srcRefNum); - (void) FSClose(dstDataRefNum); - srcRefNum = dstDataRefNum = 0; - } - else - { - /* Close the source data fork since it was opened earlier */ - (void) FSClose(srcRefNum); - srcRefNum = 0; - } - - if ( hasResourceFork ) - { - /* Open the source resource fork. */ - err = HOpenRFAware(srcVRefNum, srcDirID, srcName, srcCopyMode, &srcRefNum); - if ( err != noErr ) - { - goto ErrorExit; - } - - /* Copy the resource fork. */ - err = CopyFork(srcRefNum, dstRsrcRefNum, copyBufferPtr, copyBufferSize); - if ( err != noErr ) - { - goto ErrorExit; - } - - /* Close both resource forks and clear reference numbers. */ - (void) FSClose(srcRefNum); - (void) FSClose(dstRsrcRefNum); - srcRefNum = dstRsrcRefNum = 0; - } - - /* Get rid of the copy buffer if we allocated it. */ - if ( ourCopyBuffer ) - { - DisposePtr((Ptr)copyBufferPtr); - } - - /* Attempt to copy attributes again to set mod date. Copy lock condition this time - ** since we're done with the copy operation. This operation will fail if we're copying - ** into an AppleShare dropbox, so we don't check for error conditions. */ - CopyFileMgrAttributes(srcVRefNum, srcDirID, srcName, - dstVRefNum, dstDirID, dstName, true); - - /* Hey, we did it! */ - return ( noErr ); - -ErrorExit: - if ( srcRefNum != 0 ) - { - (void) FSClose(srcRefNum); /* Close the source file */ - } - if ( dstDataRefNum != 0 ) - { - (void) FSClose(dstDataRefNum); /* Close the destination file data fork */ - } - if ( dstRsrcRefNum != 0 ) - { - (void) FSClose(dstRsrcRefNum); /* Close the destination file resource fork */ - } - if ( dstCreated ) - { - (void) HDelete(dstVRefNum, dstDirID, dstName); /* Delete dest file. This may fail if the file - is in a "drop folder" */ - } - if ( ourCopyBuffer ) /* dispose of any memory we allocated */ - { - DisposePtr((Ptr)copyBufferPtr); - } - - return ( err ); -} - -/*****************************************************************************/ - -pascal OSErr FSpFileCopy(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight) -{ - return ( FileCopy(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, dstSpec->name, - copyName, copyBufferPtr, copyBufferSize, preflight) ); -} - -/*****************************************************************************/ - diff --git a/src/mac/morefile/FileCopy.h b/src/mac/morefile/FileCopy.h deleted file mode 100644 index 5f4c008e25..0000000000 --- a/src/mac/morefile/FileCopy.h +++ /dev/null @@ -1,220 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** FileCopy: A robust, general purpose file copy routine. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: FileCopy.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __FILECOPY__ -#define __FILECOPY__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -pascal OSErr FileCopy(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstPathname, - ConstStr255Param copyName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight); -/* ¦ Duplicate a file and optionally rename it. - The FileCopy function duplicates a file and optionally renames it. - Since the PBHCopyFile routine is only available on some - AFP server volumes under specific conditions, this routine - either uses PBHCopyFile, or does all of the work PBHCopyFile - does. The srcVRefNum, srcDirID and srcName are used to - determine the location of the file to copy. The dstVRefNum - dstDirID and dstPathname are used to determine the location of - the destination directory. If copyName <> NIL, then it points - to the name of the new file. If copyBufferPtr <> NIL, it - points to a buffer of copyBufferSize that is used to copy - the file's data. The larger the supplied buffer, the - faster the copy. If copyBufferPtr = NIL, then this routine - allocates a buffer in the application heap. If you pass a - copy buffer to this routine, make its size a multiple of 512 - ($200) bytes for optimum performance. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Source file name. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstPathname input: Pointer to destination directory name, or - nil when dstDirID specifies a directory. - copyName input: Points to the new file name if the file is - to be renamed or nil if the file isn't to - be renamed. - copyBufferPtr input: Points to a buffer of copyBufferSize that - is used the i/o buffer for the copy or - nil if you want FileCopy to allocate its - own buffer in the application heap. - copyBufferSize input: The size of the buffer pointed to - by copyBufferPtr. - preflight input: If true, FileCopy makes sure there are enough - allocation blocks on the destination volume to - hold both the data and resource forks before - starting the copy. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Destination volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 Source file not found, or destination - directory does not exist - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - opWrErr -49 File already open for writing - paramErr -50 No default volume or function not - supported by volume - permErr -54 File is already open and cannot be opened using specified deny modes - memFullErr -108 Copy buffer could not be allocated - dirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory, directory not found - or incomplete pathname - - __________ - - Also see: FSpFileCopy, DirectoryCopy, FSpDirectoryCopy -*/ - -/*****************************************************************************/ - -pascal OSErr FSpFileCopy(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName, - void *copyBufferPtr, - long copyBufferSize, - Boolean preflight); -/* ¦ Duplicate a file and optionally rename it. - The FSpFileCopy function duplicates a file and optionally renames it. - Since the PBHCopyFile routine is only available on some - AFP server volumes under specific conditions, this routine - either uses PBHCopyFile, or does all of the work PBHCopyFile - does. The srcSpec is used to - determine the location of the file to copy. The dstSpec is - used to determine the location of the - destination directory. If copyName <> NIL, then it points - to the name of the new file. If copyBufferPtr <> NIL, it - points to a buffer of copyBufferSize that is used to copy - the file's data. The larger the supplied buffer, the - faster the copy. If copyBufferPtr = NIL, then this routine - allocates a buffer in the application heap. If you pass a - copy buffer to this routine, make its size a multiple of 512 - ($200) bytes for optimum performance. - - srcSpec input: An FSSpec record specifying the source file. - dstSpec input: An FSSpec record specifying the destination - directory. - copyName input: Points to the new file name if the file is - to be renamed or nil if the file isn't to - be renamed. - copyBufferPtr input: Points to a buffer of copyBufferSize that - is used the i/o buffer for the copy or - nil if you want FileCopy to allocate its - own buffer in the application heap. - copyBufferSize input: The size of the buffer pointed to - by copyBufferPtr. - preflight input: If true, FSpFileCopy makes sure there are - enough allocation blocks on the destination - volume to hold both the data and resource forks - before starting the copy. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Destination volume is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - tmfoErr -42 Too many files open - fnfErr -43 Source file not found, or destination - directory does not exist - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - opWrErr -49 File already open for writing - paramErr -50 No default volume or function not - supported by volume - permErr -54 File is already open and cannot be opened using specified deny modes - memFullErr -108 Copy buffer could not be allocated - dirNFErr -120 Directory not found or incomplete pathname - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory, directory not found - or incomplete pathname - - __________ - - Also see: FileCopy, DirectoryCopy, FSpDirectoryCopy -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __FILECOPY__ */ diff --git a/src/mac/morefile/FullPath.cpp b/src/mac/morefile/FullPath.cpp deleted file mode 100644 index 3ad50b412d..0000000000 --- a/src/mac/morefile/FullPath.cpp +++ /dev/null @@ -1,246 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** Routines for dealing with full pathnames... if you really must. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: FullPath.c -** -** Copyright © 1995-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "FSpCompa.h" -#include "FullPath.h" - -/* - IMPORTANT NOTE: - - The use of full pathnames is strongly discouraged. Full pathnames are - particularly unreliable as a means of identifying files, directories - or volumes within your application, for two primary reasons: - - ¥ The user can change the name of any element in the path at virtually - any time. - ¥ Volume names on the Macintosh are *not* unique. Multiple - mounted volumes can have the same name. For this reason, the use of - a full pathname to identify a specific volume may not produce the - results you expect. If more than one volume has the same name and - a full pathname is used, the File Manager currently uses the first - mounted volume it finds with a matching name in the volume queue. - - In general, you should use a fileÕs name, parent directory ID, and - volume reference number to identify a file you want to open, delete, - or otherwise manipulate. - - If you need to remember the location of a particular file across - subsequent system boots, use the Alias Manager to create an alias record - describing the file. If the Alias Manager is not available, you can save - the fileÕs name, its parent directory ID, and the name of the volume on - which itÕs located. Although none of these methods is foolproof, they are - much more reliable than using full pathnames to identify files. - - Nonetheless, it is sometimes useful to display a fileÕs full pathname to - the user. For example, a backup utility might display a list of full - pathnames of files as it copies them onto the backup medium. Or, a - utility might want to display a dialog box showing the full pathname of - a file when it needs the userÕs confirmation to delete the file. No - matter how unreliable full pathnames may be from a file-specification - viewpoint, users understand them more readily than volume reference - numbers or directory IDs. (Hint: Use the TruncString function from - TextUtils.h with truncMiddle as the truncWhere argument to shorten - full pathnames to a displayable length.) - - The following technique for constructing the full pathname of a file is - intended for display purposes only. Applications that depend on any - particular structure of a full pathname are likely to fail on alternate - foreign file systems or under future system software versions. -*/ - -/*****************************************************************************/ - -pascal OSErr GetFullPath(short vRefNum, - long dirID, - ConstStr255Param name, - short *fullPathLength, - Handle *fullPath) -{ - OSErr result; - FSSpec spec; - - *fullPathLength = 0; - *fullPath = NULL; - - result = FSMakeFSSpecCompat(vRefNum, dirID, name, &spec); - if ( (result == noErr) || (result == fnfErr) ) - { - result = FSpGetFullPath(&spec, fullPathLength, fullPath); - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetFullPath(const FSSpec *spec, - short *fullPathLength, - Handle *fullPath) -{ - OSErr result; - OSErr realResult; - FSSpec tempSpec; - CInfoPBRec pb; - - *fullPathLength = 0; - *fullPath = NULL; - - // Default to noErr - realResult = noErr; - - /* Make a copy of the input FSSpec that can be modified */ - BlockMoveData(spec, &tempSpec, sizeof(FSSpec)); - - if ( tempSpec.parID == fsRtParID ) - { - /* The object is a volume */ - - /* Add a colon to make it a full pathname */ - ++tempSpec.name[0]; - tempSpec.name[tempSpec.name[0]] = ':'; - - /* We're done */ - result = PtrToHand(&tempSpec.name[1], fullPath, tempSpec.name[0]); - } - else - { - /* The object isn't a volume */ - - /* Is the object a file or a directory? */ - pb.dirInfo.ioNamePtr = tempSpec.name; - pb.dirInfo.ioVRefNum = tempSpec.vRefNum; - pb.dirInfo.ioDrDirID = tempSpec.parID; - pb.dirInfo.ioFDirIndex = 0; - result = PBGetCatInfoSync(&pb); - // Allow file/directory name at end of path to not exist. - realResult = result; - if ( (result == noErr) || (result == fnfErr) ) - { - /* if the object is a directory, append a colon so full pathname ends with colon */ - if ( (result == noErr) && (pb.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - ++tempSpec.name[0]; - tempSpec.name[tempSpec.name[0]] = ':'; - } - - /* Put the object name in first */ - result = PtrToHand(&tempSpec.name[1], fullPath, tempSpec.name[0]); - if ( result == noErr ) - { - /* Get the ancestor directory names */ - pb.dirInfo.ioNamePtr = tempSpec.name; - pb.dirInfo.ioVRefNum = tempSpec.vRefNum; - pb.dirInfo.ioDrParID = tempSpec.parID; - do /* loop until we have an error or find the root directory */ - { - pb.dirInfo.ioFDirIndex = -1; - pb.dirInfo.ioDrDirID = pb.dirInfo.ioDrParID; - result = PBGetCatInfoSync(&pb); - if ( result == noErr ) - { - /* Append colon to directory name */ - ++tempSpec.name[0]; - tempSpec.name[tempSpec.name[0]] = ':'; - - /* Add directory name to beginning of fullPath */ - (void) Munger(*fullPath, 0, NULL, 0, &tempSpec.name[1], tempSpec.name[0]); - result = MemError(); - } - } while ( (result == noErr) && (pb.dirInfo.ioDrDirID != fsRtDirID) ); - } - } - } - if ( result == noErr ) - { - /* Return the length */ - *fullPathLength = InlineGetHandleSize(*fullPath); - result = realResult; // return realResult in case it was fnfErr - } - else - { - /* Dispose of the handle and return NULL and zero length */ - if ( *fullPath != NULL ) - { - DisposeHandle(*fullPath); - } - *fullPath = NULL; - *fullPathLength = 0; - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr FSpLocationFromFullPath(short fullPathLength, - const void *fullPath, - FSSpec *spec) -{ - AliasHandle alias; - OSErr result; - Boolean wasChanged; - Str32 nullString; - - /* Create a minimal alias from the full pathname */ - nullString[0] = 0; /* null string to indicate no zone or server name */ - result = NewAliasMinimalFromFullPath(fullPathLength, fullPath, nullString, nullString, &alias); - if ( result == noErr ) - { - /* Let the Alias Manager resolve the alias. */ - result = ResolveAlias(NULL, alias, spec, &wasChanged); - - DisposeHandle((Handle)alias); /* Free up memory used */ - } - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr LocationFromFullPath(short fullPathLength, - const void *fullPath, - short *vRefNum, - long *parID, - Str31 name) -{ - OSErr result; - FSSpec spec; - - result = FSpLocationFromFullPath(fullPathLength, fullPath, &spec); - if ( result == noErr ) - { - *vRefNum = spec.vRefNum; - *parID = spec.parID; - BlockMoveData(&spec.name[0], &name[0], spec.name[0] + 1); - } - return ( result ); -} - -/*****************************************************************************/ - diff --git a/src/mac/morefile/FullPath.h b/src/mac/morefile/FullPath.h deleted file mode 100644 index 5a49e40ac7..0000000000 --- a/src/mac/morefile/FullPath.h +++ /dev/null @@ -1,243 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** Routines for dealing with full pathnames... if you really must. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: FullPath.h -** -** Copyright © 1995-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __FULLPATH__ -#define __FULLPATH__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/* - IMPORTANT NOTE: - - The use of full pathnames is strongly discouraged. Full pathnames are - particularly unreliable as a means of identifying files, directories - or volumes within your application, for two primary reasons: - - ¥ The user can change the name of any element in the path at - virtually any time. - ¥ Volume names on the Macintosh are *not* unique. Multiple - mounted volumes can have the same name. For this reason, the use of - a full pathname to identify a specific volume may not produce the - results you expect. If more than one volume has the same name and - a full pathname is used, the File Manager currently uses the first - mounted volume it finds with a matching name in the volume queue. - - In general, you should use a fileÕs name, parent directory ID, and - volume reference number to identify a file you want to open, delete, - or otherwise manipulate. - - If you need to remember the location of a particular file across - subsequent system boots, use the Alias Manager to create an alias - record describing the file. If the Alias Manager is not available, you - can save the fileÕs name, its parent directory ID, and the name of the - volume on which itÕs located. Although none of these methods is - foolproof, they are much more reliable than using full pathnames to - identify files. - - Nonetheless, it is sometimes useful to display a fileÕs full pathname - to the user. For example, a backup utility might display a list of full - pathnames of files as it copies them onto the backup medium. Or, a - utility might want to display a dialog box showing the full pathname of - a file when it needs the userÕs confirmation to delete the file. No - matter how unreliable full pathnames may be from a file-specification - viewpoint, users understand them more readily than volume reference - numbers or directory IDs. (Hint: Use the TruncString function from - TextUtils.h with truncMiddle as the truncWhere argument to shorten - full pathnames to a displayable length.) - - The following technique for constructing the full pathname of a file is - intended for display purposes only. Applications that depend on any - particular structure of a full pathname are likely to fail on alternate - foreign file systems or under future system software versions. -*/ - -/*****************************************************************************/ - -pascal OSErr GetFullPath(short vRefNum, - long dirID, - ConstStr255Param name, - short *fullPathLength, - Handle *fullPath); -/* ¦ Get a full pathname to a volume, directory or file. - The GetFullPath function builds a full pathname to the specified - object. The full pathname is returned in the newly created handle - fullPath and the length of the full pathname is returned in - fullPathLength. Your program is responsible for disposing of the - fullPath handle. - - Note that a full pathname can be made to a file/directory that does not - yet exist if all directories up to that file/directory exist. In this case, - GetFullPath will return a fnfErr. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - fullPathLength output: The number of characters in the full pathname. - If the function fails to create a full - pathname, it sets fullPathLength to 0. - fullPath output: A handle to the newly created full pathname - buffer. If the function fails to create a - full pathname, it sets fullPath to NULL. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File or directory does not exist (fullPath - and fullPathLength are still valid) - paramErr -50 No default volume - memFullErr -108 Not enough memory - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpGetFullPath -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetFullPath(const FSSpec *spec, - short *fullPathLength, - Handle *fullPath); -/* ¦ Get a full pathname to a volume, directory or file. - The GetFullPath function builds a full pathname to the specified - object. The full pathname is returned in the newly created handle - fullPath and the length of the full pathname is returned in - fullPathLength. Your program is responsible for disposing of the - fullPath handle. - - Note that a full pathname can be made to a file/directory that does not - yet exist if all directories up to that file/directory exist. In this case, - FSpGetFullPath will return a fnfErr. - - spec input: An FSSpec record specifying the object. - fullPathLength output: The number of characters in the full pathname. - If the function fails to create a full pathname, - it sets fullPathLength to 0. - fullPath output: A handle to the newly created full pathname - buffer. If the function fails to create a - full pathname, it sets fullPath to NULL. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File or directory does not exist (fullPath - and fullPathLength are still valid) - paramErr -50 No default volume - memFullErr -108 Not enough memory - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: GetFullPath -*/ - -/*****************************************************************************/ - -pascal OSErr FSpLocationFromFullPath(short fullPathLength, - const void *fullPath, - FSSpec *spec); -/* ¦ Get a FSSpec from a full pathname. - The FSpLocationFromFullPath function returns a FSSpec to the object - specified by full pathname. This function requires the Alias Manager. - - fullPathLength input: The number of characters in the full pathname - of the target. - fullPath input: A pointer to a buffer that contains the full - pathname of the target. The full pathname - starts with the name of the volume, includes - all of the directory names in the path to the - target, and ends with the target name. - spec output: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 The volume is not mounted - fnfErr -43 Target not found, but volume and parent - directory found - paramErr -50 Parameter error - usrCanceledErr -128 The user canceled the operation - - __________ - - See also: LocationFromFullPath -*/ - -/*****************************************************************************/ - -pascal OSErr LocationFromFullPath(short fullPathLength, - const void *fullPath, - short *vRefNum, - long *parID, - Str31 name); -/* ¦ Get an object's location from a full pathname. - The LocationFromFullPath function returns the volume reference number, - parent directory ID and name of the object specified by full pathname. - This function requires the Alias Manager. - - fullPathLength input: The number of characters in the full pathname - of the target. - fullPath input: A pointer to a buffer that contains the full - pathname of the target. The full pathname starts - with the name of the volume, includes all of - the directory names in the path to the target, - and ends with the target name. - vRefNum output: The volume reference number. - parID output: The parent directory ID of the specified object. - name output: The name of the specified object. - - Result Codes - noErr 0 No error - nsvErr -35 The volume is not mounted - fnfErr -43 Target not found, but volume and parent - directory found - paramErr -50 Parameter error - usrCanceledErr -128 The user canceled the operation - - __________ - - See also: FSpLocationFromFullPath -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __FULLPATH__ */ \ No newline at end of file diff --git a/src/mac/morefile/IterateD.cpp b/src/mac/morefile/IterateD.cpp deleted file mode 100644 index 6b7e52a78c..0000000000 --- a/src/mac/morefile/IterateD.cpp +++ /dev/null @@ -1,189 +0,0 @@ -/* -** IterateDirectory: File Manager directory iterator routines. -** -** by Jim Luther -** -** File: IterateDirectory.c -** -** Copyright © 1995-1998 Jim Luther and Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. -** -** IterateDirectory is designed to drop into the MoreFiles sample code -** library I wrote while in Apple Developer Technical Support -*/ - -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreExtr.h" -#include "IterateD.h" - -/* -** Type definitions -*/ - -/* The IterateGlobals structure is used to minimize the amount of -** stack space used when recursively calling IterateDirectoryLevel -** and to hold global information that might be needed at any time. -*/ -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif -struct IterateGlobals -{ - IterateFilterProcPtr iterateFilter; /* pointer to IterateFilterProc */ - CInfoPBRec cPB; /* the parameter block used for PBGetCatInfo calls */ - Str63 itemName; /* the name of the current item */ - OSErr result; /* temporary holder of results - saves 2 bytes of stack each level */ - Boolean quitFlag; /* set to true if filter wants to kill interation */ - unsigned short maxLevels; /* Maximum levels to iterate through */ - unsigned short currentLevel; /* The current level IterateLevel is on */ - void *yourDataPtr; /* A pointer to caller data the filter may need to access */ -}; -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -typedef struct IterateGlobals IterateGlobals; -typedef IterateGlobals *IterateGlobalsPtr; - -/*****************************************************************************/ - -/* Static Prototype */ - -static void IterateDirectoryLevel(long dirID, - IterateGlobals *theGlobals); - -/*****************************************************************************/ - -/* -** Functions -*/ - -static void IterateDirectoryLevel(long dirID, - IterateGlobals *theGlobals) -{ - if ( (theGlobals->maxLevels == 0) || /* if maxLevels is zero, we aren't checking levels */ - (theGlobals->currentLevel < theGlobals->maxLevels) ) /* if currentLevel < maxLevels, look at this level */ - { - short index = 1; - - ++theGlobals->currentLevel; /* go to next level */ - - do - { /* Isn't C great... What I'd give for a "WITH theGlobals DO" about now... */ - - /* Get next source item at the current directory level */ - - theGlobals->cPB.dirInfo.ioFDirIndex = index; - theGlobals->cPB.dirInfo.ioDrDirID = dirID; - theGlobals->result = PBGetCatInfoSync((CInfoPBPtr)&theGlobals->cPB); - - if ( theGlobals->result == noErr ) - { - /* Call the IterateFilterProc */ - CallIterateFilterProc(theGlobals->iterateFilter, &theGlobals->cPB, &theGlobals->quitFlag, theGlobals->yourDataPtr); - - /* Is it a directory? */ - if ( (theGlobals->cPB.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* We have a directory */ - if ( !theGlobals->quitFlag ) - { - /* Dive again if the IterateFilterProc didn't say "quit" */ - IterateDirectoryLevel(theGlobals->cPB.dirInfo.ioDrDirID, theGlobals); - } - } - } - - ++index; /* prepare to get next item */ - } while ( (theGlobals->result == noErr) && (!theGlobals->quitFlag) ); /* time to fall back a level? */ - - if ( (theGlobals->result == fnfErr) || /* fnfErr is OK - it only means we hit the end of this level */ - (theGlobals->result == afpAccessDenied) ) /* afpAccessDenied is OK, too - it only means we cannot see inside a directory */ - { - theGlobals->result = noErr; - } - - --theGlobals->currentLevel; /* return to previous level as we leave */ - } -} - -/*****************************************************************************/ - -pascal OSErr IterateDirectory(short vRefNum, - long dirID, - ConstStr255Param name, - unsigned short maxLevels, - IterateFilterProcPtr iterateFilter, - void *yourDataPtr) -{ - IterateGlobals theGlobals; - OSErr result; - long theDirID; - short theVRefNum; - Boolean isDirectory; - - /* Make sure there is a IterateFilter */ - if ( iterateFilter != NULL ) - { - /* Get the real directory ID and make sure it is a directory */ - result = GetDirectoryID(vRefNum, dirID, name, &theDirID, &isDirectory); - if ( result == noErr ) - { - if ( isDirectory == true ) - { - /* Get the real vRefNum */ - result = DetermineVRefNum(name, vRefNum, &theVRefNum); - if ( result == noErr ) - { - /* Set up the globals we need to access from the recursive routine. */ - theGlobals.iterateFilter = iterateFilter; - theGlobals.cPB.hFileInfo.ioNamePtr = (StringPtr)&theGlobals.itemName; - theGlobals.cPB.hFileInfo.ioVRefNum = theVRefNum; - theGlobals.itemName[0] = 0; - theGlobals.result = noErr; - theGlobals.quitFlag = false; - theGlobals.maxLevels = maxLevels; - theGlobals.currentLevel = 0; /* start at level 0 */ - theGlobals.yourDataPtr = yourDataPtr; - - /* Here we go into recursion land... */ - IterateDirectoryLevel(theDirID, &theGlobals); - - result = theGlobals.result; /* set the result */ - } - } - else - { - result = dirNFErr; /* a file was passed instead of a directory */ - } - } - } - else - { - result = paramErr; /* iterateFilter was NULL */ - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr FSpIterateDirectory(const FSSpec *spec, - unsigned short maxLevels, - IterateFilterProcPtr iterateFilter, - void *yourDataPtr) -{ - return ( IterateDirectory(spec->vRefNum, spec->parID, spec->name, - maxLevels, iterateFilter, yourDataPtr) ); -} - -/*****************************************************************************/ diff --git a/src/mac/morefile/IterateD.h b/src/mac/morefile/IterateD.h deleted file mode 100644 index ec36ee43bf..0000000000 --- a/src/mac/morefile/IterateD.h +++ /dev/null @@ -1,171 +0,0 @@ -/* -** IterateDirectory: File Manager directory iterator routines. -** -** by Jim Luther -** -** File: IterateDirectory.h -** -** Copyright © 1995-1998 Jim Luther and Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. -** -** IterateDirectory is designed to drop into the MoreFiles sample code -** library I wrote while in Apple Developer Technical Support -*/ - -#ifndef __ITERATEDIRECTORY__ -#define __ITERATEDIRECTORY__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -typedef pascal void (*IterateFilterProcPtr) (const CInfoPBRec * const cpbPtr, - Boolean *quitFlag, - void *yourDataPtr); -/* ¦ Prototype for the IterateFilterProc function IterateDirectory calls. - This is the prototype for the IterateFilterProc function which is - called once for each file and directory found by IterateDirectory. The - IterateFilterProc gets a pointer to the CInfoPBRec that IterateDirectory - used to call PBGetCatInfo. The IterateFilterProc can use the read-only - data in the CInfoPBRec for whatever it wants. - - If the IterateFilterProc wants to stop IterateDirectory, it can set - quitFlag to true (quitFlag will be passed to the IterateFilterProc - false). - - The yourDataPtr parameter can point to whatever data structure you might - want to access from within the IterateFilterProc. - - cpbPtr input: A pointer to the CInfoPBRec that IterateDirectory - used to call PBGetCatInfo. The CInfoPBRec and the - data it points to must not be changed by your - IterateFilterProc. - quitFlag output: Your IterateFilterProc can set quitFlag to true - if it wants to stop IterateDirectory. - yourDataPtr input: A pointer to whatever data structure you might - want to access from within the IterateFilterProc. - - __________ - - Also see: IterateDirectory, FSpIterateDirectory -*/ - -#define CallIterateFilterProc(userRoutine, cpbPtr, quitFlag, yourDataPtr) \ - (*(userRoutine))((cpbPtr), (quitFlag), (yourDataPtr)) - -/*****************************************************************************/ - -pascal OSErr IterateDirectory(short vRefNum, - long dirID, - ConstStr255Param name, - unsigned short maxLevels, - IterateFilterProcPtr iterateFilter, - void *yourDataPtr); -/* ¦ Iterate (scan) through a directory's content. - The IterateDirectory function performs a recursive iteration (scan) of - the specified directory and calls your IterateFilterProc function once - for each file and directory found. - - The maxLevels parameter lets you control how deep the recursion goes. - If maxLevels is 1, IterateDirectory only scans the specified directory; - if maxLevels is 2, IterateDirectory scans the specified directory and - one subdirectory below the specified directory; etc. Set maxLevels to - zero to scan all levels. - - The yourDataPtr parameter can point to whatever data structure you might - want to access from within the IterateFilterProc. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - maxLevels input: Maximum number of directory levels to scan or - zero to scan all directory levels. - iterateFilter input: A pointer to the routine you want called once - for each file and directory found by - IterateDirectory. - yourDataPtr input: A pointer to whatever data structure you might - want to access from within the IterateFilterProc. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume or iterateFilter was NULL - dirNFErr -120 Directory not found or incomplete pathname - or a file was passed instead of a directory - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: IterateFilterProcPtr, FSpIterateDirectory -*/ - -/*****************************************************************************/ - -pascal OSErr FSpIterateDirectory(const FSSpec *spec, - unsigned short maxLevels, - IterateFilterProcPtr iterateFilter, - void *yourDataPtr); -/* ¦ Iterate (scan) through a directory's content. - The FSpIterateDirectory function performs a recursive iteration (scan) - of the specified directory and calls your IterateFilterProc function once - for each file and directory found. - - The maxLevels parameter lets you control how deep the recursion goes. - If maxLevels is 1, FSpIterateDirectory only scans the specified directory; - if maxLevels is 2, FSpIterateDirectory scans the specified directory and - one subdirectory below the specified directory; etc. Set maxLevels to - zero to scan all levels. - - The yourDataPtr parameter can point to whatever data structure you might - want to access from within the IterateFilterProc. - - spec input: An FSSpec record specifying the directory to scan. - maxLevels input: Maximum number of directory levels to scan or - zero to scan all directory levels. - iterateFilter input: A pointer to the routine you want called once - for each file and directory found by - FSpIterateDirectory. - yourDataPtr input: A pointer to whatever data structure you might - want to access from within the IterateFilterProc. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume or iterateFilter was NULL - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: IterateFilterProcPtr, IterateDirectory -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __ITERATEDIRECTORY__ */ diff --git a/src/mac/morefile/MoreDesk.cpp b/src/mac/morefile/MoreDesk.cpp deleted file mode 100644 index 74a59fd8d1..0000000000 --- a/src/mac/morefile/MoreDesk.cpp +++ /dev/null @@ -1,1254 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** A collection of useful high-level Desktop Manager routines. -** If the Desktop Manager isn't available, use the Desktop file -** for 'read' operations. -** -** We do more because we can... -** -** by Jim Luther and Nitin Ganatra, Apple Developer Technical Support Emeriti -** -** File: MoreDesktopMgr.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreFile.h" -#include "MoreExtr.h" -#include "Search.h" -#include "MoreDesk.h" - -/*****************************************************************************/ - -/* Desktop file notes: -** -** ¥ The Desktop file is owned by the Finder and is normally open by the -** Finder. That means that we only have read-only access to the Desktop -** file. -** ¥ Since the Resource Manager doesn't support shared access to resource -** files and we're using read-only access, we don't ever leave the -** Desktop file open. We open a path to it, get the data we want out -** of it, and then close the open path. This is the only safe way to -** open a resource file with read-only access since some other program -** could have it open with write access. -** ¥ The bundle related resources in the Desktop file are normally -** purgable, so when we're looking through them, we don't bother to -** release resources we're done looking at - closing the resource file -** (which we always do) will release them. -** ¥ Since we can't assume the Desktop file is named "Desktop" -** (it probably is everywhere but France), we get the Desktop -** file's name by searching the volume's root directory for a file -** with fileType == 'FNDR' and creator == 'ERIK'. The only problem with -** this scheme is that someone could create another file with that type -** and creator in the root directory and we'd find the wrong file. -** The chances of this are very slim. -*/ - -/*****************************************************************************/ - -/* local defines */ - -enum -{ - kBNDLResType = 'BNDL', - kFREFResType = 'FREF', - kIconFamResType = 'ICN#', - kFCMTResType = 'FCMT', - kAPPLResType = 'APPL' -}; - -/*****************************************************************************/ - -/* local data structures */ - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif - -struct IDRec -{ - short localID; - short rsrcID; -}; -typedef struct IDRec IDRec; -typedef IDRec *IDRecPtr; - -struct BundleType -{ - OSType type; /* 'ICN#' or 'FREF' */ - short count; /* number of IDRecs - 1 */ - IDRec idArray[1]; -}; -typedef struct BundleType BundleType; -typedef BundleType *BundleTypePtr; - -struct BNDLRec -{ - OSType signature; /* creator type signature */ - short versionID; /* version - should always be 0 */ - short numTypes; /* number of elements in typeArray - 1 */ - BundleType typeArray[1]; -}; -typedef struct BNDLRec BNDLRec; -typedef BNDLRec **BNDLRecHandle; - -struct FREFRec -{ - OSType fileType; /* file type */ - short iconID; /* icon local ID */ - Str255 fileName; /* file name */ -}; -typedef struct FREFRec FREFRec; -typedef FREFRec **FREFRecHandle; - -struct APPLRec -{ - OSType creator; /* creator type signature */ - long parID; /* parent directory ID */ - Str255 applName; /* application name */ -}; -typedef struct APPLRec APPLRec; -typedef APPLRec *APPLRecPtr; - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -/*****************************************************************************/ - -/* static prototypes */ - -static OSErr GetDesktopFileName(short vRefNum, - Str255 desktopName); - -static OSErr GetAPPLFromDesktopFile(ConstStr255Param volName, - short vRefNum, - OSType creator, - short *applVRefNum, - long *applParID, - Str255 applName); - -static OSErr FindBundleGivenCreator(OSType creator, - BNDLRecHandle *returnBndl); - -static OSErr FindTypeInBundle(OSType typeToFind, - BNDLRecHandle theBndl, - BundleTypePtr *returnBundleType); - -static OSErr GetLocalIDFromFREF(BundleTypePtr theBundleType, - OSType fileType, - short *iconLocalID); - -static OSErr GetIconRsrcIDFromLocalID(BundleTypePtr theBundleType, - short iconLocalID, - short *iconRsrcID); - -static OSType DTIconToResIcon(short iconType); - -static OSErr GetIconFromDesktopFile(ConstStr255Param volName, - short vRefNum, - short iconType, - OSType fileCreator, - OSType fileType, - Handle *iconHandle); - -static OSErr GetCommentID(short vRefNum, - long dirID, - ConstStr255Param name, - short *commentID); - -static OSErr GetCommentFromDesktopFile(short vRefNum, - long dirID, - ConstStr255Param name, - Str255 comment); - -/*****************************************************************************/ - -/* -** GetDesktopFileName -** -** Get the name of the Desktop file. -*/ -static OSErr GetDesktopFileName(short vRefNum, - Str255 desktopName) -{ - OSErr error; - HParamBlockRec pb; - short index; - Boolean found; - - pb.fileParam.ioNamePtr = desktopName; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioFVersNum = 0; - index = 1; - found = false; - do - { - pb.fileParam.ioDirID = fsRtDirID; - pb.fileParam.ioFDirIndex = index; - error = PBHGetFInfoSync(&pb); - if ( error == noErr ) - { - if ( (pb.fileParam.ioFlFndrInfo.fdType == 'FNDR') && - (pb.fileParam.ioFlFndrInfo.fdCreator == 'ERIK') ) - { - found = true; - } - } - ++index; - } while ( (error == noErr) && !found ); - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DTOpen(ConstStr255Param volName, - short vRefNum, - short *dtRefNum, - Boolean *newDTDatabase) -{ - OSErr error; - GetVolParmsInfoBuffer volParmsInfo; - long infoSize; - DTPBRec pb; - - /* Check for volume Desktop Manager support before calling */ - infoSize = sizeof(GetVolParmsInfoBuffer); - error = HGetVolParms(volName, vRefNum, &volParmsInfo, &infoSize); - if ( error == noErr ) - { - if ( hasDesktopMgr(volParmsInfo) ) - { - pb.ioNamePtr = (StringPtr)volName; - pb.ioVRefNum = vRefNum; - error = PBDTOpenInform(&pb); - /* PBDTOpenInform informs us if the desktop was just created */ - /* by leaving the low bit of ioTagInfo clear (0) */ - *newDTDatabase = ((pb.ioTagInfo & 1L) == 0); - if ( error == paramErr ) - { - error = PBDTGetPath(&pb); - /* PBDTGetPath doesn't tell us if the database is new */ - /* so assume it is not new */ - *newDTDatabase = false; - } - *dtRefNum = pb.ioDTRefNum; - } - else - { - error = paramErr; - } - } - return ( error ); -} - -/*****************************************************************************/ - -/* -** GetAPPLFromDesktopFile -** -** Get a application's location from the -** Desktop file's 'APPL' resources. -*/ -static OSErr GetAPPLFromDesktopFile(ConstStr255Param volName, - short vRefNum, - OSType creator, - short *applVRefNum, - long *applParID, - Str255 applName) -{ - OSErr error; - short realVRefNum; - Str255 desktopName; - short savedResFile; - short dfRefNum; - Handle applResHandle; - Boolean foundCreator; - Ptr applPtr; - long applSize; - - error = DetermineVRefNum(volName, vRefNum, &realVRefNum); - if ( error == noErr ) - { - error = GetDesktopFileName(realVRefNum, desktopName); - if ( error == noErr ) - { - savedResFile = CurResFile(); - /* - ** Open the 'Desktop' file in the root directory. (because - ** opening the resource file could preload unwanted resources, - ** bracket the call with SetResLoad(s)) - */ - SetResLoad(false); - dfRefNum = HOpenResFile(realVRefNum, fsRtDirID, desktopName, fsRdPerm); - SetResLoad(true); - - if ( dfRefNum != -1) - { - /* Get 'APPL' resource ID 0 */ - applResHandle = Get1Resource(kAPPLResType, 0); - if ( applResHandle != NULL ) - { - applSize = InlineGetHandleSize((Handle)applResHandle); - if ( applSize != 0 ) /* make sure the APPL resource isn't empty */ - { - foundCreator = false; - applPtr = *applResHandle; - - /* APPL's don't have a count so I have to use the size as the bounds */ - while ( (foundCreator == false) && - (applPtr < (*applResHandle + applSize)) ) - { - if ( ((APPLRecPtr)applPtr)->creator == creator ) - { - foundCreator = true; - } - else - { - /* fun with pointer math... */ - applPtr += sizeof(OSType) + - sizeof(long) + - ((APPLRecPtr)applPtr)->applName[0] + 1; - /* application mappings are word aligned within the resource */ - if ( ((unsigned long)applPtr % 2) != 0 ) - { - applPtr += 1; - } - } - } - if ( foundCreator == true ) - { - *applVRefNum = realVRefNum; - *applParID = ((APPLRecPtr)applPtr)->parID; - BlockMoveData(((APPLRecPtr)applPtr)->applName, - applName, - ((APPLRecPtr)applPtr)->applName[0] + 1); - /* error is already noErr */ - } - else - { - error = afpItemNotFound; /* didn't find a creator match */ - } - } - else - { - error = afpItemNotFound; /* no APPL mapping available */ - } - } - else - { - error = afpItemNotFound; /* no APPL mapping available */ - } - - /* restore the resource chain and close the Desktop file */ - UseResFile(savedResFile); - CloseResFile(dfRefNum); - } - else - { - error = afpItemNotFound; - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DTXGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - Boolean searchCatalog, - short *applVRefNum, - long *applParID, - Str255 applName) -{ - OSErr error; - UniversalFMPB pb; - short dtRefNum; - Boolean newDTDatabase; - short realVRefNum; - short index; - Boolean applFound; - FSSpec spec; - long actMatchCount; - - /* get the real vRefNum */ - error = DetermineVRefNum(volName, vRefNum, &realVRefNum); - if ( error == noErr ) - { - error = DTOpen(volName, vRefNum, &dtRefNum, &newDTDatabase); - if ( error == noErr ) - { - if ( !newDTDatabase ) - { - index = 0; - applFound = false; - do - { - pb.dtPB.ioNamePtr = applName; - pb.dtPB.ioDTRefNum = dtRefNum; - pb.dtPB.ioIndex = index; - pb.dtPB.ioFileCreator = creator; - error = PBDTGetAPPLSync(&pb.dtPB); - if ( error == noErr ) - { - /* got a match - see if it is valid */ - - *applVRefNum = realVRefNum; /* get the vRefNum now */ - *applParID = pb.dtPB.ioAPPLParID; /* get the parent ID now */ - - /* pb.hPB.fileParam.ioNamePtr is already set */ - pb.hPB.fileParam.ioVRefNum = realVRefNum; - pb.hPB.fileParam.ioFVersNum = 0; - pb.hPB.fileParam.ioDirID = *applParID; - pb.hPB.fileParam.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - if ( PBHGetFInfoSync(&pb.hPB) == noErr ) - { - if ( (pb.hPB.fileParam.ioFlFndrInfo.fdCreator == creator) && - (pb.hPB.fileParam.ioFlFndrInfo.fdType == 'APPL') ) - { - applFound = true; - } - } - } - ++index; - } while ( (error == noErr) && !applFound ); - if ( error != noErr ) - { - error = afpItemNotFound; - } - } - else - { - /* Desktop database is empty (new), set error to try CatSearch */ - error = afpItemNotFound; - } - } - /* acceptable errors from Desktop Manager to continue are paramErr or afpItemNotFound */ - if ( error == paramErr ) - { - /* if paramErr, the volume didn't support the Desktop Manager */ - /* try the Desktop file */ - - error = GetAPPLFromDesktopFile(volName, vRefNum, creator, - applVRefNum, applParID, applName); - if ( error == noErr ) - { - /* got a match - see if it is valid */ - - pb.hPB.fileParam.ioNamePtr = applName; - pb.hPB.fileParam.ioVRefNum = *applVRefNum; - pb.hPB.fileParam.ioFVersNum = 0; - pb.hPB.fileParam.ioDirID = *applParID; - pb.hPB.fileParam.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - if ( PBHGetFInfoSync(&pb.hPB) == noErr ) - { - if ( (pb.hPB.fileParam.ioFlFndrInfo.fdCreator != creator) || - (pb.hPB.fileParam.ioFlFndrInfo.fdType != 'APPL') ) - { - error = afpItemNotFound; - } - } - else if ( error == fnfErr ) - { - error = afpItemNotFound; - } - } - } - /* acceptable error from DesktopFile code to continue is afpItemNotFound */ - if ( (error == afpItemNotFound) && searchCatalog) - { - /* Couldn't be found in the Desktop file either, */ - /* try searching with CatSearch if requested */ - - error = CreatorTypeFileSearch(NULL, realVRefNum, creator, kAPPLResType, &spec, 1, - &actMatchCount, true); - if ( (error == noErr) || (error == eofErr) ) - { - if ( actMatchCount > 0 ) - { - *applVRefNum = spec.vRefNum; - *applParID = spec.parID; - BlockMoveData(spec.name, applName, spec.name[0] + 1); - } - else - { - error = afpItemNotFound; - } - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpDTXGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - Boolean searchCatalog, - FSSpec *spec) -{ - return ( DTXGetAPPL(volName, vRefNum, creator, searchCatalog, - &(spec->vRefNum), &(spec->parID), spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr DTGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - short *applVRefNum, - long *applParID, - Str255 applName) -{ - /* Call DTXGetAPPL with the "searchCatalog" parameter true */ - return ( DTXGetAPPL(volName, vRefNum, creator, true, - applVRefNum, applParID, applName) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpDTGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - FSSpec *spec) -{ - /* Call DTXGetAPPL with the "searchCatalog" parameter true */ - return ( DTXGetAPPL(volName, vRefNum, creator, true, - &(spec->vRefNum), &(spec->parID), spec->name) ); -} - -/*****************************************************************************/ - -/* -** FindBundleGivenCreator -** -** Search the current resource file for the 'BNDL' resource with the given -** creator and return a handle to it. -*/ -static OSErr FindBundleGivenCreator(OSType creator, - BNDLRecHandle *returnBndl) -{ - OSErr error; - short numOfBundles; - short index; - BNDLRecHandle theBndl; - - error = afpItemNotFound; /* default to not found */ - - /* Search each BNDL resource until we find the one with a matching creator. */ - - numOfBundles = Count1Resources(kBNDLResType); - index = 1; - *returnBndl = NULL; - - while ( (index <= numOfBundles) && (*returnBndl == NULL) ) - { - theBndl = (BNDLRecHandle)Get1IndResource(kBNDLResType, index); - - if ( theBndl != NULL ) - { - if ( (*theBndl)->signature == creator ) - { - /* numTypes and typeArray->count will always be the actual count minus 1, */ - /* so 0 in both fields is valid. */ - if ( ((*theBndl)->numTypes >= 0) && ((*theBndl)->typeArray->count >= 0) ) - { - /* got it */ - *returnBndl = theBndl; - error = noErr; - } - } - } - - index ++; - } - - return ( error ); -} - -/*****************************************************************************/ - -/* -** FindTypeInBundle -** -** Given a Handle to a BNDL return a pointer to the desired type -** in it. If the type is not found, or if the type's count < 0, -** return afpItemNotFound. -*/ -static OSErr FindTypeInBundle(OSType typeToFind, - BNDLRecHandle theBndl, - BundleTypePtr *returnBundleType) -{ - OSErr error; - short index; - Ptr ptrIterator; /* use a Ptr so we can do ugly pointer math */ - - error = afpItemNotFound; /* default to not found */ - - ptrIterator = (Ptr)((*theBndl)->typeArray); - index = 0; - *returnBundleType = NULL; - - while ( (index < ((*theBndl)->numTypes + 1)) && - (*returnBundleType == NULL) ) - { - if ( (((BundleTypePtr)ptrIterator)->type == typeToFind) && - (((BundleTypePtr)ptrIterator)->count >= 0) ) - { - *returnBundleType = (BundleTypePtr)ptrIterator; - error = noErr; - } - else - { - ptrIterator += ( sizeof(OSType) + - sizeof(short) + - ( sizeof(IDRec) * (((BundleTypePtr)ptrIterator)->count + 1) ) ); - ++index; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -/* -** GetLocalIDFromFREF -** -** Given a pointer to a 'FREF' BundleType record, load each 'FREF' resource -** looking for a matching fileType. If a matching fileType is found, return -** its icon local ID. If no match is found, return afpItemNotFound as the -** function result. -*/ -static OSErr GetLocalIDFromFREF(BundleTypePtr theBundleType, - OSType fileType, - short *iconLocalID) -{ - OSErr error; - short index; - IDRecPtr idIterator; - FREFRecHandle theFref; - - error = afpItemNotFound; /* default to not found */ - - /* For each localID in this type, get the FREF resource looking for fileType */ - index = 0; - idIterator = &theBundleType->idArray[0]; - *iconLocalID = 0; - - while ( (index <= theBundleType->count) && (*iconLocalID == 0) ) - { - theFref = (FREFRecHandle)Get1Resource(kFREFResType, idIterator->rsrcID); - if ( theFref != NULL ) - { - if ( (*theFref)->fileType == fileType ) - { - *iconLocalID = (*theFref)->iconID; - error = noErr; - } - } - - ++idIterator; - ++index; - } - - return ( error ); -} - -/*****************************************************************************/ - -/* -** GetIconRsrcIDFromLocalID -** -** Given a pointer to a 'ICN#' BundleType record, look for the IDRec with -** the localID that matches iconLocalID. If a matching IDRec is found, -** return the IDRec's rsrcID field value. If no match is found, return -** afpItemNotFound as the function result. -*/ -static OSErr GetIconRsrcIDFromLocalID(BundleTypePtr theBundleType, - short iconLocalID, - short *iconRsrcID) -{ - OSErr error; - short index; - IDRecPtr idIterator; - - error = afpItemNotFound; /* default to not found */ - - /* Find the rsrcID of the icon family type, given the localID */ - index = 0; - idIterator = &theBundleType->idArray[0]; - *iconRsrcID = 0; - - while ( (index <= theBundleType->count) && (*iconRsrcID == 0) ) - { - if ( idIterator->localID == iconLocalID ) - { - *iconRsrcID = idIterator->rsrcID; - error = noErr; - } - - idIterator ++; - index ++; - } - - return ( error ); -} - -/*****************************************************************************/ - -/* -** DTIconToResIcon -** -** Map a Desktop Manager icon type to the corresponding resource type. -** Return (OSType)0 if there is no corresponding resource type. -*/ -static OSType DTIconToResIcon(short iconType) -{ - OSType resType; - - switch ( iconType ) - { - case kLargeIcon: - resType = large1BitMask; - break; - case kLarge4BitIcon: - resType = large4BitData; - break; - case kLarge8BitIcon: - resType = large8BitData; - break; - case kSmallIcon: - resType = small1BitMask; - break; - case kSmall4BitIcon: - resType = small4BitData; - break; - case kSmall8BitIcon: - resType = small8BitData; - break; - default: - resType = (OSType)0; - break; - } - - return ( resType ); -} - -/*****************************************************************************/ - -/* -** GetIconFromDesktopFile -** -** INPUT a pointer to a non-existent Handle, because we'll allocate one -** -** search each BNDL resource for the right fileCreator and once we get it -** find the 'FREF' type in BNDL -** for each localID in the type, open the FREF resource -** if the FREF is the desired fileType -** get its icon localID -** get the ICN# type in BNDL -** get the icon resource number from the icon localID -** get the icon resource type from the desktop mgr's iconType -** get the icon of that type and number -*/ -static OSErr GetIconFromDesktopFile(ConstStr255Param volName, - short vRefNum, - short iconType, - OSType fileCreator, - OSType fileType, - Handle *iconHandle) -{ - OSErr error; - short realVRefNum; - Str255 desktopName; - short savedResFile; - short dfRefNum; - BNDLRecHandle theBndl = NULL; - BundleTypePtr theBundleType; - short iconLocalID; - short iconRsrcID; - OSType iconRsrcType; - Handle returnIconHandle; - char bndlState; - - *iconHandle = NULL; - - error = DetermineVRefNum(volName, vRefNum, &realVRefNum); - if ( error == noErr ) - { - error = GetDesktopFileName(realVRefNum, desktopName); - if ( error == noErr ) - { - savedResFile = CurResFile(); - - /* - ** Open the 'Desktop' file in the root directory. (because - ** opening the resource file could preload unwanted resources, - ** bracket the call with SetResLoad(s)) - */ - SetResLoad(false); - dfRefNum = HOpenResFile(realVRefNum, fsRtDirID, desktopName, fsRdPerm); - SetResLoad(true); - - if ( dfRefNum != -1 ) - { - /* - ** Find the BNDL resource with the specified creator. - */ - error = FindBundleGivenCreator(fileCreator, &theBndl); - if ( error == noErr ) - { - /* Lock the BNDL resource so it won't be purged when other resources are loaded */ - bndlState = HGetState((Handle)theBndl); - HLock((Handle)theBndl); - - /* Find the 'FREF' BundleType record in the BNDL resource. */ - error = FindTypeInBundle(kFREFResType, theBndl, &theBundleType); - if ( error == noErr ) - { - /* Find the local ID in the 'FREF' resource with the specified fileType */ - error = GetLocalIDFromFREF(theBundleType, fileType, &iconLocalID); - if ( error == noErr ) - { - /* Find the 'ICN#' BundleType record in the BNDL resource. */ - error = FindTypeInBundle(kIconFamResType, theBndl, &theBundleType); - if ( error == noErr ) - { - /* Find the icon's resource ID in the 'ICN#' BundleType record */ - error = GetIconRsrcIDFromLocalID(theBundleType, iconLocalID, &iconRsrcID); - if ( error == noErr ) - { - /* Map Desktop Manager icon type to resource type */ - iconRsrcType = DTIconToResIcon(iconType); - - if ( iconRsrcType != (OSType)0 ) - { - /* Load the icon */ - returnIconHandle = Get1Resource(iconRsrcType, iconRsrcID); - if ( returnIconHandle != NULL ) - { - /* Copy the resource handle, and return the copy */ - HandToHand(&returnIconHandle); - if ( MemError() == noErr ) - { - *iconHandle = returnIconHandle; - } - else - { - error = afpItemNotFound; - } - } - else - { - error = afpItemNotFound; - } - } - } - } - } - } - /* Restore the state of the BNDL resource */ - HSetState((Handle)theBndl, bndlState); - } - /* Restore the resource chain and close the Desktop file */ - UseResFile(savedResFile); - CloseResFile(dfRefNum); - } - else - { - error = ResError(); /* could not open Desktop file */ - } - } - if ( (error != noErr) && (error != memFullErr) ) - { - error = afpItemNotFound; /* force an error we should return */ - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DTGetIcon(ConstStr255Param volName, - short vRefNum, - short iconType, - OSType fileCreator, - OSType fileType, - Handle *iconHandle) -{ - OSErr error; - DTPBRec pb; - short dtRefNum; - Boolean newDTDatabase; - Size bufferSize; - - *iconHandle = NULL; - error = DTOpen(volName, vRefNum, &dtRefNum, &newDTDatabase); - if ( error == noErr ) - { - /* there was a desktop database and it's now open */ - - if ( !newDTDatabase ) /* don't bother to look in a new (empty) database */ - { - /* get the buffer size for the requested icon type */ - switch ( iconType ) - { - case kLargeIcon: - bufferSize = kLargeIconSize; - break; - case kLarge4BitIcon: - bufferSize = kLarge4BitIconSize; - break; - case kLarge8BitIcon: - bufferSize = kLarge8BitIconSize; - break; - case kSmallIcon: - bufferSize = kSmallIconSize; - break; - case kSmall4BitIcon: - bufferSize = kSmall4BitIconSize; - break; - case kSmall8BitIcon: - bufferSize = kSmall8BitIconSize; - break; - default: - iconType = 0; - bufferSize = 0; - break; - } - if ( bufferSize != 0 ) - { - *iconHandle = NewHandle(bufferSize); - if ( *iconHandle != NULL ) - { - HLock(*iconHandle); - - pb.ioDTRefNum = dtRefNum; - pb.ioTagInfo = 0; - pb.ioDTBuffer = **iconHandle; - pb.ioDTReqCount = bufferSize; - pb.ioIconType = iconType; - pb.ioFileCreator = fileCreator; - pb.ioFileType = fileType; - error = PBDTGetIconSync(&pb); - - HUnlock(*iconHandle); - - if ( error != noErr ) - { - DisposeHandle(*iconHandle); /* dispose of the allocated memory */ - *iconHandle = NULL; - } - } - else - { - error = memFullErr; /* handle could not be allocated */ - } - } - else - { - error = paramErr; /* unknown icon type requested */ - } - } - else - { - error = afpItemNotFound; /* the desktop database was empty - nothing to return */ - } - } - else - { - /* There is no desktop database - try the Desktop file */ - - error = GetIconFromDesktopFile(volName, vRefNum, iconType, - fileCreator, fileType, iconHandle); - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DTSetComment(short vRefNum, - long dirID, - ConstStr255Param name, - ConstStr255Param comment) -{ - DTPBRec pb; - OSErr error; - short dtRefNum; - Boolean newDTDatabase; - - error = DTOpen(name, vRefNum, &dtRefNum, &newDTDatabase); - if ( error == noErr ) - { - pb.ioDTRefNum = dtRefNum; - pb.ioNamePtr = (StringPtr)name; - pb.ioDirID = dirID; - pb.ioDTBuffer = (Ptr)&comment[1]; - /* Truncate the comment to 200 characters just in case */ - /* some file system doesn't range check */ - if ( comment[0] <= 200 ) - { - pb.ioDTReqCount = comment[0]; - } - else - { - pb.ioDTReqCount = 200; - } - error = PBDTSetCommentSync(&pb); - } - return (error); -} - -/*****************************************************************************/ - -pascal OSErr FSpDTSetComment(const FSSpec *spec, - ConstStr255Param comment) -{ - return (DTSetComment(spec->vRefNum, spec->parID, spec->name, comment)); -} - -/*****************************************************************************/ - -/* -** GetCommentID -** -** Get the comment ID number for the Desktop file's 'FCMT' resource ID from -** the file or folders fdComment (frComment) field. -*/ -static OSErr GetCommentID(short vRefNum, - long dirID, - ConstStr255Param name, - short *commentID) -{ - CInfoPBRec pb; - OSErr error; - - error = GetCatInfoNoName(vRefNum, dirID, name, &pb); - *commentID = pb.hFileInfo.ioFlXFndrInfo.fdComment; - return ( error ); -} - -/*****************************************************************************/ - -/* -** GetCommentFromDesktopFile -** -** Get a file or directory's Finder comment field (if any) from the -** Desktop file's 'FCMT' resources. -*/ -static OSErr GetCommentFromDesktopFile(short vRefNum, - long dirID, - ConstStr255Param name, - Str255 comment) -{ - OSErr error; - short commentID; - short realVRefNum; - Str255 desktopName; - short savedResFile; - short dfRefNum; - StringHandle commentHandle; - - /* Get the comment ID number */ - error = GetCommentID(vRefNum, dirID, name, &commentID); - if ( error == noErr ) - { - if ( commentID != 0 ) /* commentID == 0 means there's no comment */ - { - error = DetermineVRefNum(name, vRefNum, &realVRefNum); - if ( error == noErr ) - { - error = GetDesktopFileName(realVRefNum, desktopName); - if ( error == noErr ) - { - savedResFile = CurResFile(); - /* - ** Open the 'Desktop' file in the root directory. (because - ** opening the resource file could preload unwanted resources, - ** bracket the call with SetResLoad(s)) - */ - SetResLoad(false); - dfRefNum = HOpenResFile(realVRefNum, fsRtDirID, desktopName, fsRdPerm); - SetResLoad(true); - - if ( dfRefNum != -1) - { - /* Get the comment resource */ - commentHandle = (StringHandle)Get1Resource(kFCMTResType,commentID); - if ( commentHandle != NULL ) - { - if ( InlineGetHandleSize((Handle)commentHandle) > 0 ) - { - BlockMoveData(*commentHandle, comment, *commentHandle[0] + 1); - } - else - { - error = afpItemNotFound; /* no comment available */ - } - } - else - { - error = afpItemNotFound; /* no comment available */ - } - - /* restore the resource chain and close the Desktop file */ - UseResFile(savedResFile); - CloseResFile(dfRefNum); - } - else - { - error = afpItemNotFound; - } - } - else - { - error = afpItemNotFound; - } - } - } - else - { - error = afpItemNotFound; /* no comment available */ - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DTGetComment(short vRefNum, - long dirID, - ConstStr255Param name, - Str255 comment) -{ - DTPBRec pb; - OSErr error; - short dtRefNum; - Boolean newDTDatabase; - - if (comment != NULL) - { - comment[0] = 0; /* return nothing by default */ - - /* attempt to open the desktop database */ - error = DTOpen(name, vRefNum, &dtRefNum, &newDTDatabase); - if ( error == noErr ) - { - /* There was a desktop database and it's now open */ - - if ( !newDTDatabase ) - { - pb.ioDTRefNum = dtRefNum; - pb.ioNamePtr = (StringPtr)name; - pb.ioDirID = dirID; - pb.ioDTBuffer = (Ptr)&comment[1]; - /* - ** IMPORTANT NOTE #1: Inside Macintosh says that comments - ** are up to 200 characters. While that may be correct for - ** the HFS file system's Desktop Manager, other file - ** systems (such as Apple Photo Access) return up to - ** 255 characters. Make sure the comment buffer is a Str255 - ** or you'll regret it. - ** - ** IMPORTANT NOTE #2: Although Inside Macintosh doesn't - ** mention it, ioDTReqCount is a input field to - ** PBDTGetCommentSync. Some file systems (like HFS) ignore - ** ioDTReqCount and always return the full comment -- - ** others (like AppleShare) respect ioDTReqCount and only - ** return up to ioDTReqCount characters of the comment. - */ - pb.ioDTReqCount = sizeof(Str255) - 1; - error = PBDTGetCommentSync(&pb); - if (error == noErr) - { - comment[0] = (unsigned char)pb.ioDTActCount; - } - } - } - else - { - /* There is no desktop database - try the Desktop file */ - error = GetCommentFromDesktopFile(vRefNum, dirID, name, comment); - if ( error != noErr ) - { - error = afpItemNotFound; /* return an expected error */ - } - } - } - else - { - error = paramErr; - } - - return (error); -} - -/*****************************************************************************/ - -pascal OSErr FSpDTGetComment(const FSSpec *spec, - Str255 comment) -{ - return (DTGetComment(spec->vRefNum, spec->parID, spec->name, comment)); -} - -/*****************************************************************************/ - -pascal OSErr DTCopyComment(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName) -/* The destination volume must support the Desktop Manager for this to work */ -{ - OSErr error; - Str255 comment; - - error = DTGetComment(srcVRefNum, srcDirID, srcName, comment); - if ( (error == noErr) && (comment[0] > 0) ) - { - error = DTSetComment(dstVRefNum, dstDirID, dstName, comment); - } - return (error); -} - -/*****************************************************************************/ - -pascal OSErr FSpDTCopyComment(const FSSpec *srcSpec, - const FSSpec *dstSpec) -/* The destination volume must support the Desktop Manager for this to work */ -{ - return (DTCopyComment(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, dstSpec->name)); -} - -/*****************************************************************************/ diff --git a/src/mac/morefile/MoreDesk.h b/src/mac/morefile/MoreDesk.h deleted file mode 100644 index be2bfd341d..0000000000 --- a/src/mac/morefile/MoreDesk.h +++ /dev/null @@ -1,541 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** A collection of useful high-level Desktop Manager routines. -** If the Desktop Manager isn't available, use the Desktop file -** for 'read' operations. -** -** We do more because we can... -** -** by Jim Luther and Nitin Ganatra, Apple Developer Technical Support Emeriti -** -** File: MoreDesktopMgr.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __MOREDESKTOPMGR__ -#define __MOREDESKTOPMGR__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -pascal OSErr DTOpen(ConstStr255Param volName, - short vRefNum, - short *dtRefNum, - Boolean *newDTDatabase); -/* ¦ Open a volume's desktop database and return the desktop database refNum. - The DTOpen function opens a volume's desktop database. It returns - the reference number of the desktop database and indicates if the - desktop database was created as a result of this call (if it was created, - then it is empty). - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - dtRefNum output: The reference number of Desktop Manager's - desktop database on the specified volume. - newDTDatabase output: true if the desktop database was created as a - result of this call and thus empty. - false if the desktop database was already created, - or if it could not be determined if it was already - created. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - paramErr -50 Volume doesn't support this function - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete -*/ - -/*****************************************************************************/ - -pascal OSErr DTXGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - Boolean searchCatalog, - short *applVRefNum, - long *applParID, - Str255 applName); -/* ¦ Find an application on a volume that can open a file with a given creator. - The DTXGetAPPL function finds an application (file type 'APPL') with - the specified creator on the specified volume. It first tries to get - the application mapping from the desktop database. If that fails, - then it tries to find an application in the Desktop file. If that - fails and searchCatalog is true, then it tries to find an application - with the specified creator using the File Manager's CatSearch routine. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - creator input: The file's creator type. - searchCatalog input: If true, search the catalog for the application - if it isn't found in the desktop database. - applVRefNum output: The volume reference number of the volume the - application is on. - applParID output: The parent directory ID of the application. - applName output: The name of the application. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - paramErr -50 No default volume - rfNumErr -51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: FSpDTGetAPPL -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDTXGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - Boolean searchCatalog, - FSSpec *spec); -/* ¦ Find an application on a volume that can open a file with a given creator. - The FSpDTXGetAPPL function finds an application (file type 'APPL') with - the specified creator on the specified volume. It first tries to get - the application mapping from the desktop database. If that fails, - then it tries to find an application in the Desktop file. If that - fails and searchCatalog is true, then it tries to find an application - with the specified creator using the File Manager's CatSearch routine. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - creator input: The file's creator type. - searchCatalog input: If true, search the catalog for the application - if it isn't found in the desktop database. - spec output: FSSpec record containing the application name and - location. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - paramErr -50 No default volume - rfNumErr -51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: FSpDTGetAPPL -*/ - -/*****************************************************************************/ - -pascal OSErr DTGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - short *applVRefNum, - long *applParID, - Str255 applName); -/* ¦ Find an application on a volume that can open a file with a given creator. - The DTGetAPPL function finds an application (file type 'APPL') with - the specified creator on the specified volume. It first tries to get - the application mapping from the desktop database. If that fails, - then it tries to find an application in the Desktop file. If that - fails, then it tries to find an application with the specified creator - using the File Manager's CatSearch routine. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - creator input: The file's creator type. - applVRefNum output: The volume reference number of the volume the - application is on. - applParID output: The parent directory ID of the application. - applName output: The name of the application. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - paramErr -50 No default volume - rfNumErr -51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: FSpDTGetAPPL -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDTGetAPPL(ConstStr255Param volName, - short vRefNum, - OSType creator, - FSSpec *spec); -/* ¦ Find an application on a volume that can open a file with a given creator. - The FSpDTGetAPPL function finds an application (file type 'APPL') with - the specified creator on the specified volume. It first tries to get - the application mapping from the desktop database. If that fails, - then it tries to find an application in the Desktop file. If that - fails, then it tries to find an application with the specified creator - using the File Manager's CatSearch routine. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - creator input: The file's creator type. - spec output: FSSpec record containing the application name and - location. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - paramErr -50 No default volume - rfNumErr -51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: DTGetAPPL -*/ - -/*****************************************************************************/ - -pascal OSErr DTGetIcon(ConstStr255Param volName, - short vRefNum, - short iconType, - OSType fileCreator, - OSType fileType, - Handle *iconHandle); -/* ¦ Get an icon from the desktop database or Desktop file. - The DTGetIcon function retrieves the specified icon and returns it in - a newly created handle. The icon is retrieves from the Desktop Manager - or if the Desktop Manager is not available, from the Finder's Desktop - file. Your program is responsible for disposing of the handle when it is - done using the icon. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - iconType input: The icon type as defined in Files.h. Valid values are: - kLargeIcon - kLarge4BitIcon - kLarge8BitIcon - kSmallIcon - kSmall4BitIcon - kSmall8BitIcon - fileCreator input: The icon's creator type. - fileType input: The icon's file type. - iconHandle output: A Handle containing the newly created icon. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - paramErr -50 Volume doesn't support this function - rfNumErr -51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call - memFullErr -108 iconHandle could not be allocated - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found -*/ - -/*****************************************************************************/ - -pascal OSErr DTSetComment(short vRefNum, - long dirID, - ConstStr255Param name, - ConstStr255Param comment); -/* ¦ Set a file or directory's Finder comment field. - The DTSetComment function sets a file or directory's Finder comment - field. The volume must support the Desktop Manager because you only - have read access to the Desktop file. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - comment input: The comment to add. Comments are limited to 200 characters; - longer comments are truncated. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr Ð43 File or directory doesnÕt exist - paramErr -50 Volume doesn't support this function - wPrErr Ð44 Volume is locked through hardware - vLckdErr Ð46 Volume is locked through software - rfNumErr Ð51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - - __________ - - Also see: DTCopyComment, FSpDTCopyComment, FSpDTSetComment, DTGetComment, - FSpDTGetComment -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDTSetComment(const FSSpec *spec, - ConstStr255Param comment); -/* ¦ Set a file or directory's Finder comment field. - The FSpDTSetComment function sets a file or directory's Finder comment - field. The volume must support the Desktop Manager because you only - have read access to the Desktop file. - - spec input: An FSSpec record specifying the file or directory. - comment input: The comment to add. Comments are limited to 200 characters; - longer comments are truncated. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr Ð43 File or directory doesnÕt exist - wPrErr Ð44 Volume is locked through hardware - vLckdErr Ð46 Volume is locked through software - rfNumErr Ð51 Reference number invalid - paramErr -50 Volume doesn't support this function - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - - __________ - - Also see: DTCopyComment, FSpDTCopyComment, DTSetComment, DTGetComment, - FSpDTGetComment -*/ - -/*****************************************************************************/ - -pascal OSErr DTGetComment(short vRefNum, - long dirID, - ConstStr255Param name, - Str255 comment); -/* ¦ Get a file or directory's Finder comment field (if any). - The DTGetComment function gets a file or directory's Finder comment - field (if any) from the Desktop Manager or if the Desktop Manager is - not available, from the Finder's Desktop file. - - IMPORTANT NOTE: Inside Macintosh says that comments are up to - 200 characters. While that may be correct for the HFS file system's - Desktop Manager, other file systems (such as Apple Photo Access) return - up to 255 characters. Make sure the comment buffer is a Str255 or you'll - regret it. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - comment output: A Str255 where the comment is to be returned. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - paramErr -50 Volume doesn't support this function - rfNumErr Ð51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: DTCopyComment, FSpDTCopyComment, DTSetComment, FSpDTSetComment, - FSpDTGetComment -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDTGetComment(const FSSpec *spec, - Str255 comment); -/* ¦ Get a file or directory's Finder comment field (if any). - The FSpDTGetComment function gets a file or directory's Finder comment - field (if any) from the Desktop Manager or if the Desktop Manager is - not available, from the Finder's Desktop file. - - IMPORTANT NOTE: Inside Macintosh says that comments are up to - 200 characters. While that may be correct for the HFS file system's - Desktop Manager, other file systems (such as Apple Photo Access) return - up to 255 characters. Make sure the comment buffer is a Str255 or you'll - regret it. - - spec input: An FSSpec record specifying the file or directory. - comment output: A Str255 where the comment is to be returned. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - paramErr -50 Volume doesn't support this function - rfNumErr Ð51 Reference number invalid - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: DTCopyComment, FSpDTCopyComment, DTSetComment, FSpDTSetComment, - DTGetComment -*/ - -/*****************************************************************************/ - -pascal OSErr DTCopyComment(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName); -/* ¦ Copy the file or folder comment from the source to the destination object. - The DTCopyComment function copies the file or folder comment from the - source to the destination object. The destination volume must support - the Desktop Manager because you only have read access to the Desktop file. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Pointer to source object name, or nil when srcDirID - specifies a directory that's the object. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstName input: Pointer to destination object name, or nil when - dstDirID specifies a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr Ð43 File or directory doesnÕt exist - wPrErr Ð44 Volume is locked through hardware - vLckdErr Ð46 Volume is locked through software - paramErr -50 Volume doesn't support this function - rfNumErr Ð51 Reference number invalid - paramErr -50 Volume doesn't support this function - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: FSpDTCopyComment, DTSetComment, FSpDTSetComment, DTGetComment, - FSpDTGetComment -*/ - -/*****************************************************************************/ - -pascal OSErr FSpDTCopyComment(const FSSpec *srcSpec, - const FSSpec *dstSpec); -/* ¦ Copy the desktop database comment from the source to the destination object. - The FSpDTCopyComment function copies the desktop database comment from - the source to the destination object. Both the source and the - destination volumes must support the Desktop Manager. - - srcSpec input: An FSSpec record specifying the source object. - dstSpec input: An FSSpec record specifying the destination object. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr Ð43 File or directory doesnÕt exist - wPrErr Ð44 Volume is locked through hardware - vLckdErr Ð46 Volume is locked through software - paramErr -50 Volume doesn't support this function - rfNumErr Ð51 Reference number invalid - paramErr -50 Volume doesn't support this function - extFSErr -58 External file system error - no file - system claimed this call. - desktopDamagedErr -1305 The desktop database has become corrupted - - the Finder will fix this, but if your - application is not running with the - Finder, use PBDTReset or PBDTDelete - afpItemNotFound -5012 Information not found - - __________ - - Also see: DTCopyComment, DTSetComment, FSpDTSetComment, DTGetComment, - FSpDTGetComment -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __MOREDESKTOPMGR__ */ diff --git a/src/mac/morefile/MoreExtr.cpp b/src/mac/morefile/MoreExtr.cpp deleted file mode 100644 index cc64cd6a15..0000000000 --- a/src/mac/morefile/MoreExtr.cpp +++ /dev/null @@ -1,3228 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** A collection of useful high-level File Manager routines. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: MoreFilesExtras.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreFile.h" -#include "MoreExtr.h" -#include "MoreDesk.h" -#include "FSpCompa.h" - -/*****************************************************************************/ - -/* local data structures */ - -/* The DeleteEnumGlobals structure is used to minimize the amount of -** stack space used when recursively calling DeleteLevel and to hold -** global information that might be needed at any time. */ - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif -struct DeleteEnumGlobals -{ - OSErr error; /* temporary holder of results - saves 2 bytes of stack each level */ - Str63 itemName; /* the name of the current item */ - UniversalFMPB myPB; /* the parameter block used for PBGetCatInfo calls */ -}; -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -typedef struct DeleteEnumGlobals DeleteEnumGlobals; -typedef DeleteEnumGlobals *DeleteEnumGlobalsPtr; - -/*****************************************************************************/ - -pascal void TruncPString(StringPtr destination, - ConstStr255Param source, - short maxLength) -{ - short charType; - - if ( source != NULL && destination != NULL ) /* don't do anything stupid */ - { - if ( source[0] > maxLength ) - { - /* Make sure the string isn't truncated in the middle of */ - /* a multi-byte character. */ - while (maxLength != 0) - { - charType = CharByte((Ptr)&source[1], maxLength); - if ( (charType == smSingleByte) || (charType == smLastByte) ) - break; /* source[maxLength] is now a valid last character */ - --maxLength; - } - } - else - { - maxLength = source[0]; - } - /* Set the destination string length */ - destination[0] = maxLength; - /* and copy maxLength characters (if needed) */ - if ( source != destination ) - { - while ( maxLength != 0 ) - { - destination[maxLength] = source[maxLength]; - --maxLength; - } - } - } -} - -/*****************************************************************************/ - -pascal Ptr GetTempBuffer(long buffReqSize, - long *buffActSize) -{ - enum - { - kSlopMemory = 0x00008000 /* 32K - Amount of free memory to leave when allocating buffers */ - }; - Ptr tempPtr; - - /* Make request a multiple of 1024 bytes */ - buffReqSize = buffReqSize & 0xfffffc00; - - if ( buffReqSize < 0x00000400 ) - { - /* Request was smaller than 1024 bytes - make it 1024 */ - buffReqSize = 0x00000400; - } - - /* Attempt to allocate the memory */ - tempPtr = NewPtr(buffReqSize); - - /* If request failed, go to backup plan */ - if ( (tempPtr == NULL) && (buffReqSize > 0x00000400) ) - { - /* - ** Try to get largest 1024-byte block available - ** leaving some slop for the toolbox if possible - */ - long freeMemory = (FreeMem() - kSlopMemory) & 0xfffffc00; - - buffReqSize = MaxBlock() & 0xfffffc00; - - if ( buffReqSize > freeMemory ) - { - buffReqSize = freeMemory; - } - - if ( buffReqSize == 0 ) - { - buffReqSize = 0x00000400; - } - - tempPtr = NewPtr(buffReqSize); - } - - /* Return bytes allocated */ - if ( tempPtr != NULL ) - { - *buffActSize = buffReqSize; - } - else - { - *buffActSize = 0; - } - - return ( tempPtr ); -} - -/*****************************************************************************/ - -/* -** GetVolumeInfoNoName uses pathname and vRefNum to call PBHGetVInfoSync -** in cases where the returned volume name is not needed by the caller. -** The pathname and vRefNum parameters are not touched, and the pb -** parameter is initialized by PBHGetVInfoSync except that ioNamePtr in -** the parameter block is always returned as NULL (since it might point -** to the local tempPathname). -** -** I noticed using this code in several places, so here it is once. -** This reduces the code size of MoreFiles. -*/ -pascal OSErr GetVolumeInfoNoName(ConstStr255Param pathname, - short vRefNum, - HParmBlkPtr pb) -{ - Str255 tempPathname; - OSErr error; - - /* Make sure pb parameter is not NULL */ - if ( pb != NULL ) - { - pb->volumeParam.ioVRefNum = vRefNum; - if ( pathname == NULL ) - { - pb->volumeParam.ioNamePtr = NULL; - pb->volumeParam.ioVolIndex = 0; /* use ioVRefNum only */ - } - else - { - BlockMoveData(pathname, tempPathname, pathname[0] + 1); /* make a copy of the string and */ - pb->volumeParam.ioNamePtr = (StringPtr)tempPathname; /* use the copy so original isn't trashed */ - pb->volumeParam.ioVolIndex = -1; /* use ioNamePtr/ioVRefNum combination */ - } - error = PBHGetVInfoSync(pb); - pb->volumeParam.ioNamePtr = NULL; /* ioNamePtr may point to local tempPathname, so don't return it */ - } - else - { - error = paramErr; - } - return ( error ); -} - -/*****************************************************************************/ - -/* -** XGetVolumeInfoNoName uses pathname and vRefNum to call PBXGetVolInfoSync -** in cases where the returned volume name is not needed by the caller. -** The pathname and vRefNum parameters are not touched, and the pb -** parameter is initialized by PBXGetVolInfoSync except that ioNamePtr in -** the parameter block is always returned as NULL (since it might point -** to the local tempPathname). -*/ -pascal OSErr XGetVolumeInfoNoName(ConstStr255Param pathname, - short vRefNum, - XVolumeParamPtr pb) -{ - Str255 tempPathname; - long response; - OSErr error; - - /* Make sure pb parameter is not NULL */ - if ( pb != NULL ) - { - pb->ioVRefNum = vRefNum; - pb->ioXVersion = 0; /* this XVolumeParam version (0) */ - if ( pathname == NULL ) - { - pb->ioNamePtr = NULL; - pb->ioVolIndex = 0; /* use ioVRefNum only */ - } - else - { - BlockMoveData(pathname, tempPathname, pathname[0] + 1); /* make a copy of the string and */ - pb->ioNamePtr = (StringPtr)tempPathname; /* use the copy so original isn't trashed */ - pb->ioVolIndex = -1; /* use ioNamePtr/ioVRefNum combination */ - } -#if !__MACOSSEVENFIVEONEORLATER - /* Is PBXGetVolInfo available? */ - if ( ( Gestalt(gestaltFSAttr, &response) != noErr ) || ((response & (1L << gestaltFSSupports2TBVols)) == 0) ) - { - /* No, fall back on PBHGetVInfo */ - error = PBHGetVInfoSync((HParmBlkPtr)pb); - if ( error == noErr ) - { - /* calculate the ioVTotalBytes and ioVFreeBytes fields */ - pb->ioVTotalBytes.hi = 0; - pb->ioVTotalBytes.lo = pb->ioVNmAlBlks * pb->ioVAlBlkSiz; /* calculated total number of bytes on volume */ - pb->ioVFreeBytes.hi = 0; - pb->ioVFreeBytes.lo = pb->ioVFrBlk * pb->ioVAlBlkSiz; /* calculated number of free bytes on volume */ - } - } - else -#endif // !__MACOSSEVENFIVEONEORLATER - { - /* Yes, so use it */ - error = PBXGetVolInfoSync(pb); - } - pb->ioNamePtr = NULL; /* ioNamePtr may point to local tempPathname, so don't return it */ - } - else - { - error = paramErr; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetCatInfoNoName(short vRefNum, - long dirID, - ConstStr255Param name, - CInfoPBPtr pb) -{ - Str31 tempName; - OSErr error; - - /* Protection against File Sharing problem */ - if ( (name == NULL) || (name[0] == 0) ) - { - tempName[0] = 0; - pb->dirInfo.ioNamePtr = tempName; - pb->dirInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb->dirInfo.ioNamePtr = (StringPtr)name; - pb->dirInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - pb->dirInfo.ioVRefNum = vRefNum; - pb->dirInfo.ioDrDirID = dirID; - error = PBGetCatInfoSync(pb); - pb->dirInfo.ioNamePtr = NULL; - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DetermineVRefNum(ConstStr255Param pathname, - short vRefNum, - short *realVRefNum) -{ - HParamBlockRec pb; - OSErr error; - - error = GetVolumeInfoNoName(pathname,vRefNum, &pb); - if ( error == noErr ) - { - *realVRefNum = pb.volumeParam.ioVRefNum; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr HGetVInfo(short volReference, - StringPtr volName, - short *vRefNum, - unsigned long *freeBytes, - unsigned long *totalBytes) -{ - HParamBlockRec pb; - unsigned long allocationBlockSize; - unsigned short numAllocationBlocks; - unsigned short numFreeBlocks; - VCB *theVCB; - Boolean vcbFound; - OSErr result; - - /* Use the File Manager to get the real vRefNum */ - pb.volumeParam.ioVRefNum = volReference; - pb.volumeParam.ioNamePtr = volName; - pb.volumeParam.ioVolIndex = 0; /* use ioVRefNum only, return volume name */ - result = PBHGetVInfoSync(&pb); - - if ( result == noErr ) - { - /* The volume name was returned in volName (if not NULL) and */ - /* we have the volume's vRefNum and allocation block size */ - *vRefNum = pb.volumeParam.ioVRefNum; - allocationBlockSize = (unsigned long)pb.volumeParam.ioVAlBlkSiz; - - /* System 7.5 (and beyond) pins the number of allocation blocks and */ - /* the number of free allocation blocks returned by PBHGetVInfo to */ - /* a value so that when multiplied by the allocation block size, */ - /* the volume will look like it has $7fffffff bytes or less. This */ - /* was done so older applications that use signed math or that use */ - /* the GetVInfo function (which uses signed math) will continue to work. */ - /* However, the unpinned numbers (which we want) are always available */ - /* in the volume's VCB so we'll get those values from the VCB if possible. */ - - /* Find the volume's VCB */ - vcbFound = false; - theVCB = (VCB *)(GetVCBQHdr()->qHead); - while ( (theVCB != NULL) && !vcbFound ) - { - /* Check VCB signature before using VCB. Don't have to check for */ - /* MFS (0xd2d7) because they can't get big enough to be pinned */ - if ( theVCB->vcbSigWord == 0x4244 ) - { - if ( theVCB->vcbVRefNum == *vRefNum ) - { - vcbFound = true; - } - } - - if ( !vcbFound ) - { - theVCB = (VCB *)(theVCB->qLink); - } - } - - if ( theVCB != NULL ) - { - /* Found a VCB we can use. Get the un-pinned number of allocation blocks */ - /* and the number of free blocks from the VCB. */ - numAllocationBlocks = (unsigned short)theVCB->vcbNmAlBlks; - numFreeBlocks = (unsigned short)theVCB->vcbFreeBks; - } - else - { - /* Didn't find a VCB we can use. Return the number of allocation blocks */ - /* and the number of free blocks returned by PBHGetVInfoSync. */ - numAllocationBlocks = (unsigned short)pb.volumeParam.ioVNmAlBlks; - numFreeBlocks = (unsigned short)pb.volumeParam.ioVFrBlk; - } - - /* Now, calculate freeBytes and totalBytes using unsigned values */ - *freeBytes = numFreeBlocks * allocationBlockSize; - *totalBytes = numAllocationBlocks * allocationBlockSize; - } - - return ( result ); -} - -/*****************************************************************************/ - -/* -** PBXGetVolInfoSync is the glue code needed to make PBXGetVolInfoSync -** File Manager requests from CFM-based programs. At some point, Apple -** will get around to adding this to the standard libraries you link with -** and you'll get a duplicate symbol link error. At that time, just delete -** this code (or comment it out). -** -** Non-CFM 68K programs don't needs this glue (and won't get it) because -** they instead use the inline assembly glue found in the Files.h interface -** file. -*/ - -#if __WANTPASCALELIMINATION -#undef pascal -#endif - -#if GENERATINGCFM -pascal OSErr PBXGetVolInfoSync(XVolumeParamPtr paramBlock) -{ - enum - { - kXGetVolInfoSelector = 0x0012, /* Selector for XGetVolInfo */ - - uppFSDispatchProcInfo = kRegisterBased - | REGISTER_RESULT_LOCATION(kRegisterD0) - | RESULT_SIZE(SIZE_CODE(sizeof(OSErr))) - | REGISTER_ROUTINE_PARAMETER(1, kRegisterD1, SIZE_CODE(sizeof(long))) /* trap word */ - | REGISTER_ROUTINE_PARAMETER(2, kRegisterD0, SIZE_CODE(sizeof(long))) /* selector */ - | REGISTER_ROUTINE_PARAMETER(3, kRegisterA0, SIZE_CODE(sizeof(XVolumeParamPtr))) - }; - - return ( CallOSTrapUniversalProc(NGetTrapAddress(_FSDispatch, OSTrap), - uppFSDispatchProcInfo, - _FSDispatch, - kXGetVolInfoSelector, - paramBlock) ); -} -#endif - -#if __WANTPASCALELIMINATION -#define pascal -#endif - -/*****************************************************************************/ - -pascal OSErr XGetVInfo(short volReference, - StringPtr volName, - short *vRefNum, - UnsignedWide *freeBytes, - UnsignedWide *totalBytes) -{ - OSErr result; - long response; - XVolumeParam pb; - - /* See if large volume support is available */ - if ( ( Gestalt(gestaltFSAttr, &response) == noErr ) && ((response & (1L << gestaltFSSupports2TBVols)) != 0) ) - { - /* Large volume support is available */ - pb.ioVRefNum = volReference; - pb.ioNamePtr = volName; - pb.ioXVersion = 0; /* this XVolumeParam version (0) */ - pb.ioVolIndex = 0; /* use ioVRefNum only, return volume name */ - result = PBXGetVolInfoSync(&pb); - if ( result == noErr ) - { - /* The volume name was returned in volName (if not NULL) and */ - /* we have the volume's vRefNum and allocation block size */ - *vRefNum = pb.ioVRefNum; - - /* return the freeBytes and totalBytes */ - *totalBytes = pb.ioVTotalBytes; - *freeBytes = pb.ioVFreeBytes; - } - } - else - { - /* No large volume support */ - - /* Use HGetVInfo to get the results */ - result = HGetVInfo(volReference, volName, vRefNum, &freeBytes->lo, &totalBytes->lo); - if ( result == noErr ) - { - /* zero the high longs of totalBytes and freeBytes */ - totalBytes->hi = 0; - freeBytes->hi = 0; - } - } - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr CheckVolLock(ConstStr255Param pathname, - short vRefNum) -{ - HParamBlockRec pb; - OSErr error; - - error = GetVolumeInfoNoName(pathname,vRefNum, &pb); - if ( error == noErr ) - { - if ( (pb.volumeParam.ioVAtrb & 0x0080) != 0 ) - { - error = wPrErr; /* volume locked by hardware */ - } - else if ( (pb.volumeParam.ioVAtrb & 0x8000) != 0 ) - { - error = vLckdErr; /* volume locked by software */ - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetDriverName(short driverRefNum, - Str255 driverName) -{ - OSErr result; - DCtlHandle theDctl; - DRVRHeaderPtr dHeaderPtr; - - theDctl = GetDCtlEntry(driverRefNum); - if ( theDctl != NULL ) - { - if ( (**theDctl).dCtlFlags & 0x40 ) - { - /* dctlDriver is handle - dereference */ - dHeaderPtr = *((DRVRHeaderHandle)(**theDctl).dCtlDriver); - } - else - { - /* dctlDriver is pointer */ - dHeaderPtr = (DRVRHeaderPtr)(**theDctl).dCtlDriver; - } - BlockMoveData((*dHeaderPtr).drvrName, driverName, (*dHeaderPtr).drvrName[0] + 1); - result = noErr; - } - else - { - driverName[0] = 0; - result = badUnitErr; /* bad reference number */ - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr FindDrive(ConstStr255Param pathname, - short vRefNum, - DrvQElPtr *driveQElementPtr) -{ - OSErr result; - HParamBlockRec hPB; - short driveNumber; - - *driveQElementPtr = NULL; - - /* First, use GetVolumeInfoNoName to determine the volume */ - result = GetVolumeInfoNoName(pathname, vRefNum, &hPB); - if ( result == noErr ) - { - /* - ** The volume can be either online, offline, or ejected. What we find in - ** ioVDrvInfo and ioVDRefNum will tell us which it is. - ** See Inside Macintosh: Files page 2-80 and the Technical Note - ** "FL 34 - VCBs and Drive Numbers : The Real Story" - ** Where we get the drive number depends on the state of the volume. - */ - if ( hPB.volumeParam.ioVDrvInfo != 0 ) - { - /* The volume is online and not ejected */ - /* Get the drive number */ - driveNumber = hPB.volumeParam.ioVDrvInfo; - } - else - { - /* The volume's is either offline or ejected */ - /* in either case, the volume is NOT online */ - - /* Is it ejected or just offline? */ - if ( hPB.volumeParam.ioVDRefNum > 0 ) - { - /* It's ejected, the drive number is ioVDRefNum */ - driveNumber = hPB.volumeParam.ioVDRefNum; - } - else - { - /* It's offline, the drive number is the negative of ioVDRefNum */ - driveNumber = (short)-hPB.volumeParam.ioVDRefNum; - } - } - - /* Get pointer to first element in drive queue */ - *driveQElementPtr = (DrvQElPtr)(GetDrvQHdr()->qHead); - - /* Search for a matching drive number */ - while ( (*driveQElementPtr != NULL) && ((*driveQElementPtr)->dQDrive != driveNumber) ) - { - *driveQElementPtr = (DrvQElPtr)(*driveQElementPtr)->qLink; - } - - if ( *driveQElementPtr == NULL ) - { - /* This should never happen since every volume must have a drive, but... */ - result = nsDrvErr; - } - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr GetDiskBlocks(ConstStr255Param pathname, - short vRefNum, - unsigned long *numBlocks) -{ - /* Various constants for GetDiskBlocks() */ - enum - { - /* return format list status code */ - kFmtLstCode = 6, - - /* reference number of .SONY driver */ - kSonyRefNum = 0xfffb, - - /* values returned by DriveStatus in DrvSts.twoSideFmt */ - kSingleSided = 0, - kDoubleSided = -1, - kSingleSidedSize = 800, /* 400K */ - kDoubleSidedSize = 1600, /* 800K */ - - /* values in DrvQEl.qType */ - kWordDrvSiz = 0, - kLongDrvSiz = 1, - - /* more than enough formatListRecords */ - kMaxFormatListRecs = 16 - }; - - DrvQElPtr driveQElementPtr; - unsigned long blocks; - ParamBlockRec pb; - FormatListRec formatListRecords[kMaxFormatListRecs]; - DrvSts status; - short formatListRecIndex; - OSErr result; - - blocks = 0; - - /* Find the drive queue element for this volume */ - result = FindDrive(pathname, vRefNum, &driveQElementPtr); - - /* - ** Make sure this is a real driver (dQRefNum < 0). - ** AOCE's Mail Enclosures volume uses 0 for dQRefNum which will cause - ** problems if you try to use it as a driver refNum. - */ - if ( (result == noErr) && (driveQElementPtr->dQRefNum >= 0) ) - { - result = paramErr; - } - else - { - /* Attempt to get the drive's format list. */ - /* (see the Technical Note "What Your Sony Drives For You") */ - - pb.cntrlParam.ioVRefNum = driveQElementPtr->dQDrive; - pb.cntrlParam.ioCRefNum = driveQElementPtr->dQRefNum; - pb.cntrlParam.csCode = kFmtLstCode; - pb.cntrlParam.csParam[0] = kMaxFormatListRecs; - *(long *)&pb.cntrlParam.csParam[1] = (long)&formatListRecords[0]; - - result = PBStatusSync(&pb); - - if ( result == noErr ) - { - /* The drive supports ReturnFormatList status call. */ - - /* Get the current disk's size. */ - for( formatListRecIndex = 0; - formatListRecIndex < pb.cntrlParam.csParam[0]; - ++formatListRecIndex ) - { - if ( (formatListRecords[formatListRecIndex].formatFlags & - diCIFmtFlagsCurrentMask) != 0 ) - { - blocks = formatListRecords[formatListRecIndex].volSize; - } - } - if ( blocks == 0 ) - { - /* This should never happen */ - result = paramErr; - } - } - else if ( driveQElementPtr->dQRefNum == (short)kSonyRefNum ) - { - /* The drive is a non-SuperDrive floppy which only supports 400K and 800K disks */ - - result = DriveStatus(driveQElementPtr->dQDrive, &status); - if ( result == noErr ) - { - switch ( status.twoSideFmt ) - { - case kSingleSided: - blocks = kSingleSidedSize; - break; - case kDoubleSided: - blocks = kDoubleSidedSize; - break; - default: - /* This should never happen */ - result = paramErr; - break; - } - } - } - else - { - /* The drive is not a floppy and it doesn't support ReturnFormatList */ - /* so use the dQDrvSz field(s) */ - - result = noErr; /* reset result */ - switch ( driveQElementPtr->qType ) - { - case kWordDrvSiz: - blocks = driveQElementPtr->dQDrvSz; - break; - case kLongDrvSiz: - blocks = ((unsigned long)driveQElementPtr->dQDrvSz2 << 16) + - driveQElementPtr->dQDrvSz; - break; - default: - /* This should never happen */ - result = paramErr; - break; - } - } - } - - if ( result == noErr ) - { - *numBlocks = blocks; - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr GetVolFileSystemID(ConstStr255Param pathname, - short vRefNum, - short *fileSystemID) -{ - HParamBlockRec pb; - OSErr error; - - error = GetVolumeInfoNoName(pathname,vRefNum, &pb); - if ( error == noErr ) - { - *fileSystemID = pb.volumeParam.ioVFSID; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetVolState(ConstStr255Param pathname, - short vRefNum, - Boolean *volumeOnline, - Boolean *volumeEjected, - Boolean *driveEjectable, - Boolean *driverWantsEject) -{ - HParamBlockRec pb; - short driveNumber; - OSErr error; - - error = GetVolumeInfoNoName(pathname,vRefNum, &pb); - if ( error == noErr ) - { - if ( pb.volumeParam.ioVDrvInfo != 0 ) - { - /* the volume is online and not ejected */ - *volumeOnline = true; - *volumeEjected = false; - - /* Get the drive number */ - driveNumber = pb.volumeParam.ioVDrvInfo; - } - else - { - /* the volume's is either offline or ejected */ - /* in either case, the volume is NOT online */ - *volumeOnline = false; - - /* Is it ejected? */ - *volumeEjected = pb.volumeParam.ioVDRefNum > 0; - - if ( *volumeEjected ) - { - /* If ejected, the drive number is ioVDRefNum */ - driveNumber = pb.volumeParam.ioVDRefNum; - } - else - { - /* If offline, the drive number is the negative of ioVDRefNum */ - driveNumber = (short)-pb.volumeParam.ioVDRefNum; - } - } - - { - DrvQElPtr drvQElem; - - /* Find the drive queue element by searching the drive queue */ - drvQElem = (DrvQElPtr)(GetDrvQHdr()->qHead); - while ( (drvQElem != NULL) && (drvQElem->dQDrive != driveNumber) ) - { - drvQElem = (DrvQElPtr)drvQElem->qLink; - } - - if ( drvQElem != NULL ) - { - /* - ** Each drive queue element is preceded by 4 flag bytes. - ** Byte 1 (the second flag byte) has bits that tell us if a - ** drive is ejectable and if its driver wants an eject call. - ** See Inside Macintosh: Files, page 2-85. - */ - { - Ptr flagBytePtr; - - /* point to byte 1 of the flag bytes */ - flagBytePtr = (Ptr)drvQElem; - flagBytePtr -= 3; - - /* - ** The drive is ejectable if flag byte 1 does not contain - ** 0x08 (nonejectable) or 0x48 (nonejectable, but wants eject call). - */ - - *driveEjectable = (*flagBytePtr != 0x08) && (*flagBytePtr != 0x48); - - /* - ** The driver wants an eject call if flag byte 1 does not contain - ** 0x08 (nonejectable). This may seem like a minor point, but some - ** disk drivers use the Eject request to flush their caches to disk - ** and you wouldn't want to skip that step after unmounting a volume. - */ - - *driverWantsEject = (*flagBytePtr != 0x08); - } - } - else - { - /* Didn't find the drive (this should never happen) */ - *driveEjectable = false; - *driverWantsEject = false; - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr UnmountAndEject(ConstStr255Param pathname, - short vRefNum) -{ - HParamBlockRec pb; - short driveNum; - Boolean ejected, wantsEject; - DrvQElPtr drvQElem; - OSErr error; - - error = GetVolumeInfoNoName(pathname, vRefNum, &pb); - if ( error == noErr ) - { - if ( pb.volumeParam.ioVDrvInfo != 0 ) - { - /* the volume is online and not ejected */ - ejected = false; - - /* Get the drive number */ - driveNum = pb.volumeParam.ioVDrvInfo; - } - else - { - /* the volume is ejected or offline */ - - /* Is it ejected? */ - ejected = pb.volumeParam.ioVDRefNum > 0; - - if ( ejected ) - { - /* If ejected, the drive number is ioVDRefNum */ - driveNum = pb.volumeParam.ioVDRefNum; - } - else - { - /* If offline, the drive number is the negative of ioVDRefNum */ - driveNum = (short)-pb.volumeParam.ioVDRefNum; - } - } - - /* find the drive queue element */ - drvQElem = (DrvQElPtr)(GetDrvQHdr()->qHead); - while ( (drvQElem != NULL) && (drvQElem->dQDrive != driveNum) ) - { - drvQElem = (DrvQElPtr)drvQElem->qLink; - } - - if ( drvQElem != NULL ) - { - /* does the drive want an eject call */ - wantsEject = (*((Ptr)((Ptr)drvQElem - 3)) != 8); - } - else - { - /* didn't find the drive!! */ - wantsEject = false; - } - - /* unmount the volume */ - pb.volumeParam.ioNamePtr = NULL; - /* ioVRefNum is already filled in from PBHGetVInfo */ - error = PBUnmountVol((ParmBlkPtr)&pb); - if ( error == noErr ) - { - if ( wantsEject && !ejected ) - { - /* eject the media from the drive if needed */ - pb.volumeParam.ioVRefNum = driveNum; - error = PBEject((ParmBlkPtr)&pb); - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr OnLine(FSSpecPtr volumes, - short reqVolCount, - short *actVolCount, - short *volIndex) -{ - HParamBlockRec pb; - OSErr error = noErr; - FSSpec *endVolArray; - - if ( *volIndex > 0 ) - { - *actVolCount = 0; - for ( endVolArray = volumes + reqVolCount; (volumes < endVolArray) && (error == noErr); ++volumes ) - { - pb.volumeParam.ioNamePtr = (StringPtr) & volumes->name; - pb.volumeParam.ioVolIndex = *volIndex; - error = PBHGetVInfoSync(&pb); - if ( error == noErr ) - { - volumes->parID = fsRtParID; /* the root directory's parent is 1 */ - volumes->vRefNum = pb.volumeParam.ioVRefNum; - ++*volIndex; - ++*actVolCount; - } - } - } - else - { - error = paramErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr SetDefault(short newVRefNum, - long newDirID, - short *oldVRefNum, - long *oldDirID) -{ - OSErr error; - - /* Get the current default volume/directory. */ - error = HGetVol(NULL, oldVRefNum, oldDirID); - if ( error == noErr ) - { - /* Set the new default volume/directory */ - error = HSetVol(NULL, newVRefNum, newDirID); - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr RestoreDefault(short oldVRefNum, - long oldDirID) -{ - OSErr error; - short defaultVRefNum; - long defaultDirID; - long defaultProcID; - - /* Determine if the default volume was a wdRefNum. */ - error = GetWDInfo(oldVRefNum, &defaultVRefNum, &defaultDirID, &defaultProcID); - if ( error == noErr ) - { - /* Restore the old default volume/directory, one way or the other. */ - if ( defaultDirID != fsRtDirID ) - { - /* oldVRefNum was a wdRefNum - use SetVol */ - error = SetVol(NULL, oldVRefNum); - } - else - { - /* oldVRefNum was a real vRefNum - use HSetVol */ - error = HSetVol(NULL, oldVRefNum, oldDirID); - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetDInfo(short vRefNum, - long dirID, - ConstStr255Param name, - DInfo *fndrInfo) -{ - CInfoPBRec pb; - OSErr error; - - error = GetCatInfoNoName(vRefNum, dirID, name, &pb); - if ( error == noErr ) - { - if ( (pb.dirInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* it's a directory, return the DInfo */ - *fndrInfo = pb.dirInfo.ioDrUsrWds; - } - else - { - /* oops, a file was passed */ - error = dirNFErr; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetDInfo(const FSSpec *spec, - DInfo *fndrInfo) -{ - return ( GetDInfo(spec->vRefNum, spec->parID, spec->name, fndrInfo) ); -} - -/*****************************************************************************/ - -pascal OSErr SetDInfo(short vRefNum, - long dirID, - ConstStr255Param name, - const DInfo *fndrInfo) -{ - CInfoPBRec pb; - Str31 tempName; - OSErr error; - - /* Protection against File Sharing problem */ - if ( (name == NULL) || (name[0] == 0) ) - { - tempName[0] = 0; - pb.dirInfo.ioNamePtr = tempName; - pb.dirInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb.dirInfo.ioNamePtr = (StringPtr)name; - pb.dirInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - pb.dirInfo.ioVRefNum = vRefNum; - pb.dirInfo.ioDrDirID = dirID; - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - if ( (pb.dirInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* it's a directory, set the DInfo */ - if ( pb.dirInfo.ioNamePtr == tempName ) - { - pb.dirInfo.ioDrDirID = pb.dirInfo.ioDrParID; - } - else - { - pb.dirInfo.ioDrDirID = dirID; - } - pb.dirInfo.ioDrUsrWds = *fndrInfo; - error = PBSetCatInfoSync(&pb); - } - else - { - /* oops, a file was passed */ - error = dirNFErr; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetDInfo(const FSSpec *spec, - const DInfo *fndrInfo) -{ - return ( SetDInfo(spec->vRefNum, spec->parID, spec->name, fndrInfo) ); -} - -/*****************************************************************************/ - -pascal OSErr GetDirectoryID(short vRefNum, - long dirID, - ConstStr255Param name, - long *theDirID, - Boolean *isDirectory) -{ - CInfoPBRec pb; - OSErr error; - - error = GetCatInfoNoName(vRefNum, dirID, name, &pb); - if ( error == noErr ) - { - *isDirectory = (pb.hFileInfo.ioFlAttrib & ioDirMask) != 0; - if ( *isDirectory ) - { - *theDirID = pb.dirInfo.ioDrDirID; - } - else - { - *theDirID = pb.hFileInfo.ioFlParID; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetDirectoryID(const FSSpec *spec, - long *theDirID, - Boolean *isDirectory) -{ - return ( GetDirectoryID(spec->vRefNum, spec->parID, spec->name, - theDirID, isDirectory) ); -} - -/*****************************************************************************/ - -pascal OSErr GetDirName(short vRefNum, - long dirID, - Str31 name) -{ - CInfoPBRec pb; - OSErr error; - - if ( name != NULL ) - { - pb.dirInfo.ioNamePtr = name; - pb.dirInfo.ioVRefNum = vRefNum; - pb.dirInfo.ioDrDirID = dirID; - pb.dirInfo.ioFDirIndex = -1; /* get information about ioDirID */ - error = PBGetCatInfoSync(&pb); - } - else - { - error = paramErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetIOACUser(short vRefNum, - long dirID, - ConstStr255Param name, - SInt8 *ioACUser) -{ - CInfoPBRec pb; - OSErr error; - - /* Clear ioACUser before calling PBGetCatInfo since some file systems - ** don't bother to set or clear this field. If ioACUser isn't set by the - ** file system, then you'll get the zero value back (full access) which - ** is the access you have on volumes that don't support ioACUser. - */ - pb.dirInfo.ioACUser = 0; /* ioACUser used to be filler2 */ - error = GetCatInfoNoName(vRefNum, dirID, name, &pb); - if ( error == noErr ) - { - if ( (pb.hFileInfo.ioFlAttrib & ioDirMask) == 0 ) - { - /* oops, a file was passed */ - error = dirNFErr; - } - else - { - *ioACUser = pb.dirInfo.ioACUser; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetIOACUser(const FSSpec *spec, - SInt8 *ioACUser) -{ - return ( GetIOACUser(spec->vRefNum, spec->parID, spec->name, ioACUser) ); -} - -/*****************************************************************************/ - -pascal OSErr GetParentID(short vRefNum, - long dirID, - ConstStr255Param name, - long *parID) -{ - CInfoPBRec pb; - Str31 tempName; - OSErr error; - short realVRefNum; - - /* Protection against File Sharing problem */ - if ( (name == NULL) || (name[0] == 0) ) - { - tempName[0] = 0; - pb.hFileInfo.ioNamePtr = tempName; - pb.hFileInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb.hFileInfo.ioNamePtr = (StringPtr)name; - pb.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - pb.hFileInfo.ioVRefNum = vRefNum; - pb.hFileInfo.ioDirID = dirID; - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - /* - ** There's a bug in HFS where the wrong parent dir ID can be - ** returned if multiple separators are used at the end of a - ** pathname. For example, if the pathname: - ** 'volumeName:System Folder:Extensions::' - ** is passed, the directory ID of the Extensions folder is - ** returned in the ioFlParID field instead of fsRtDirID. Since - ** multiple separators at the end of a pathname always specifies - ** a directory, we only need to work-around cases where the - ** object is a directory and there are multiple separators at - ** the end of the name parameter. - */ - if ( (pb.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* Its a directory */ - - /* is there a pathname? */ - if ( pb.hFileInfo.ioNamePtr == name ) - { - /* could it contain multiple separators? */ - if ( name[0] >= 2 ) - { - /* does it contain multiple separators at the end? */ - if ( (name[name[0]] == ':') && (name[name[0] - 1] == ':') ) - { - /* OK, then do the extra stuff to get the correct parID */ - - /* Get the real vRefNum (this should not fail) */ - error = DetermineVRefNum(name, vRefNum, &realVRefNum); - if ( error == noErr ) - { - /* we don't need the parent's name, but add protect against File Sharing problem */ - tempName[0] = 0; - pb.dirInfo.ioNamePtr = tempName; - pb.dirInfo.ioVRefNum = realVRefNum; - /* pb.dirInfo.ioDrDirID already contains the */ - /* dirID of the directory object */ - pb.dirInfo.ioFDirIndex = -1; /* get information about ioDirID */ - error = PBGetCatInfoSync(&pb); - /* now, pb.dirInfo.ioDrParID contains the correct parID */ - } - } - } - } - } - - if ( error == noErr ) - { - /* if no errors, then pb.hFileInfo.ioFlParID (pb.dirInfo.ioDrParID) */ - /* contains the parent ID */ - *parID = pb.hFileInfo.ioFlParID; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetFilenameFromPathname(ConstStr255Param pathname, - Str255 filename) -{ - short index; - short nameEnd; - OSErr error; - - /* default to no filename */ - filename[0] = 0; - - /* check for no pathname */ - if ( pathname != NULL ) - { - /* get string length */ - index = pathname[0]; - - /* check for empty string */ - if ( index != 0 ) - { - /* skip over last trailing colon (if any) */ - if ( pathname[index] == ':' ) - { - --index; - } - - /* save the end of the string */ - nameEnd = index; - - /* if pathname ends with multiple colons, then this pathname refers */ - /* to a directory, not a file */ - if ( pathname[index] != ':' ) - { - /* parse backwards until we find a colon or hit the beginning of the pathname */ - while ( (index != 0) && (pathname[index] != ':') ) - { - --index; - } - - /* if we parsed to the beginning of the pathname and the pathname ended */ - /* with a colon, then pathname is a full pathname to a volume, not a file */ - if ( (index != 0) || (pathname[pathname[0]] != ':') ) - { - /* get the filename and return noErr */ - filename[0] = (char)(nameEnd - index); - BlockMoveData(&pathname[index+1], &filename[1], nameEnd - index); - error = noErr; - } - else - { - /* pathname to a volume, not a file */ - error = notAFileErr; - } - } - else - { - /* directory, not a file */ - error = notAFileErr; - } - } - else - { - /* empty string isn't a file */ - error = notAFileErr; - } - } - else - { - /* NULL pathname isn't a file */ - error = notAFileErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetObjectLocation(short vRefNum, - long dirID, - ConstStr255Param pathname, - short *realVRefNum, - long *realParID, - Str255 realName, - Boolean *isDirectory) -{ - OSErr error; - CInfoPBRec pb; - Str255 tempPathname; - - /* clear results */ - *realVRefNum = 0; - *realParID = 0; - realName[0] = 0; - - /* - ** Get the real vRefNum - */ - error = DetermineVRefNum(pathname, vRefNum, realVRefNum); - if ( error == noErr ) - { - /* - ** Determine if the object already exists and if so, - ** get the real parent directory ID if it's a file - */ - - /* Protection against File Sharing problem */ - if ( (pathname == NULL) || (pathname[0] == 0) ) - { - tempPathname[0] = 0; - pb.hFileInfo.ioNamePtr = tempPathname; - pb.hFileInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb.hFileInfo.ioNamePtr = (StringPtr)pathname; - pb.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - pb.hFileInfo.ioVRefNum = vRefNum; - pb.hFileInfo.ioDirID = dirID; - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - /* - ** The file system object is present and we have the file's real parID - */ - - /* Is it a directory or a file? */ - *isDirectory = (pb.hFileInfo.ioFlAttrib & ioDirMask) != 0; - if ( *isDirectory ) - { - /* - ** It's a directory, get its name and parent dirID, and then we're done - */ - - pb.dirInfo.ioNamePtr = realName; - pb.dirInfo.ioVRefNum = *realVRefNum; - /* pb.dirInfo.ioDrDirID already contains the dirID of the directory object */ - pb.dirInfo.ioFDirIndex = -1; /* get information about ioDirID */ - error = PBGetCatInfoSync(&pb); - - /* get the parent ID here, because the file system can return the */ - /* wrong parent ID from the last call. */ - *realParID = pb.dirInfo.ioDrParID; - } - else - { - /* - ** It's a file - use the parent directory ID from the last call - ** to GetCatInfoparse, get the file name, and then we're done - */ - *realParID = pb.hFileInfo.ioFlParID; - error = GetFilenameFromPathname(pathname, realName); - } - } - else if ( error == fnfErr ) - { - /* - ** The file system object is not present - see if its parent is present - */ - - /* - ** Parse to get the object name from end of pathname - */ - error = GetFilenameFromPathname(pathname, realName); - - /* if we can't get the object name from the end, we can't continue */ - if ( error == noErr ) - { - /* - ** What we want now is the pathname minus the object name - ** for example: - ** if pathname is 'vol:dir:file' tempPathname becomes 'vol:dir:' - ** if pathname is 'vol:dir:file:' tempPathname becomes 'vol:dir:' - ** if pathname is ':dir:file' tempPathname becomes ':dir:' - ** if pathname is ':dir:file:' tempPathname becomes ':dir:' - ** if pathname is ':file' tempPathname becomes ':' - ** if pathname is 'file or file:' tempPathname becomes '' - */ - - /* get a copy of the pathname */ - BlockMoveData(pathname, tempPathname, pathname[0] + 1); - - /* remove the object name */ - tempPathname[0] -= realName[0]; - /* and the trailing colon (if any) */ - if ( pathname[pathname[0]] == ':' ) - { - --tempPathname[0]; - } - - /* OK, now get the parent's directory ID */ - - /* Protection against File Sharing problem */ - pb.hFileInfo.ioNamePtr = (StringPtr)tempPathname; - if ( tempPathname[0] != 0 ) - { - pb.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - else - { - pb.hFileInfo.ioFDirIndex = -1; /* use ioDirID */ - } - pb.hFileInfo.ioVRefNum = vRefNum; - pb.hFileInfo.ioDirID = dirID; - error = PBGetCatInfoSync(&pb); - *realParID = pb.dirInfo.ioDrDirID; - - *isDirectory = false; /* we don't know what the object is really going to be */ - } - - if ( error != noErr ) - { - error = dirNFErr; /* couldn't find parent directory */ - } - else - { - error = fnfErr; /* we found the parent, but not the file */ - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetDirItems(short vRefNum, - long dirID, - ConstStr255Param name, - Boolean getFiles, - Boolean getDirectories, - FSSpecPtr items, - short reqItemCount, - short *actItemCount, - short *itemIndex) /* start with 1, then use what's returned */ -{ - CInfoPBRec pb; - OSErr error; - long theDirID; - Boolean isDirectory; - FSSpec *endItemsArray; - - if ( *itemIndex > 0 ) - { - /* NOTE: If I could be sure that the caller passed a real vRefNum and real directory */ - /* to this routine, I could rip out calls to DetermineVRefNum and GetDirectoryID and this */ - /* routine would be much faster because of the overhead of DetermineVRefNum and */ - /* GetDirectoryID and because GetDirectoryID blows away the directory index hint the Macintosh */ - /* file system keeps for indexed calls. I can't be sure, so for maximum throughput, */ - /* pass a big array of FSSpecs so you can get the directory's contents with few calls */ - /* to this routine. */ - - /* get the real volume reference number */ - error = DetermineVRefNum(name, vRefNum, &pb.hFileInfo.ioVRefNum); - if ( error == noErr ) - { - /* and the real directory ID of this directory (and make sure it IS a directory) */ - error = GetDirectoryID(vRefNum, dirID, name, &theDirID, &isDirectory); - if ( error == noErr ) - { - if ( isDirectory ) - { - *actItemCount = 0; - endItemsArray = items + reqItemCount; - while ( (items < endItemsArray) && (error == noErr) ) - { - pb.hFileInfo.ioNamePtr = (StringPtr) &items->name; - pb.hFileInfo.ioDirID = theDirID; - pb.hFileInfo.ioFDirIndex = *itemIndex; - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - items->parID = pb.hFileInfo.ioFlParID; /* return item's parID */ - items->vRefNum = pb.hFileInfo.ioVRefNum; /* return item's vRefNum */ - ++*itemIndex; /* prepare to get next item in directory */ - - if ( (pb.hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - if ( getDirectories ) - { - ++*actItemCount; /* keep this item */ - ++items; /* point to next item */ - } - } - else - { - if ( getFiles ) - { - ++*actItemCount; /* keep this item */ - ++items; /* point to next item */ - } - } - } - } - } - else - { - /* it wasn't a directory */ - error = dirNFErr; - } - } - } - } - else - { - /* bad itemIndex */ - error = paramErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -static void DeleteLevel(long dirToDelete, - DeleteEnumGlobalsPtr theGlobals) -{ - long savedDir; - - do - { - /* prepare to delete directory */ - theGlobals->myPB.ciPB.dirInfo.ioNamePtr = (StringPtr)&theGlobals->itemName; - theGlobals->myPB.ciPB.dirInfo.ioFDirIndex = 1; /* get first item */ - theGlobals->myPB.ciPB.dirInfo.ioDrDirID = dirToDelete; /* in this directory */ - theGlobals->error = PBGetCatInfoSync(&(theGlobals->myPB.ciPB)); - if ( theGlobals->error == noErr ) - { - savedDir = dirToDelete; - /* We have an item. Is it a file or directory? */ - if ( (theGlobals->myPB.ciPB.dirInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* it's a directory */ - savedDir = theGlobals->myPB.ciPB.dirInfo.ioDrDirID; /* save dirID of directory instead */ - DeleteLevel(theGlobals->myPB.ciPB.dirInfo.ioDrDirID, theGlobals); /* Delete its contents */ - theGlobals->myPB.ciPB.dirInfo.ioNamePtr = NULL; /* prepare to delete directory */ - } - if ( theGlobals->error == noErr ) - { - theGlobals->myPB.ciPB.dirInfo.ioDrDirID = savedDir; /* restore dirID */ - theGlobals->myPB.hPB.fileParam.ioFVersNum = 0; /* just in case it's used on an MFS volume... */ - theGlobals->error = PBHDeleteSync(&(theGlobals->myPB.hPB)); /* delete this item */ - if ( theGlobals->error == fLckdErr ) - { - (void) PBHRstFLockSync(&(theGlobals->myPB.hPB)); /* unlock it */ - theGlobals->error = PBHDeleteSync(&(theGlobals->myPB.hPB)); /* and try again */ - } - } - } - } while ( theGlobals->error == noErr ); - - if ( theGlobals->error == fnfErr ) - { - theGlobals->error = noErr; - } -} - -/*****************************************************************************/ - -pascal OSErr DeleteDirectoryContents(short vRefNum, - long dirID, - ConstStr255Param name) -{ - DeleteEnumGlobals theGlobals; - Boolean isDirectory; - OSErr error; - - /* Get the real dirID and make sure it is a directory. */ - error = GetDirectoryID(vRefNum, dirID, name, &dirID, &isDirectory); - if ( error == noErr ) - { - if ( isDirectory ) - { - /* Get the real vRefNum */ - error = DetermineVRefNum(name, vRefNum, &vRefNum); - if ( error == noErr ) - { - /* Set up the globals we need to access from the recursive routine. */ - theGlobals.myPB.ciPB.dirInfo.ioVRefNum = vRefNum; - - /* Here we go into recursion land... */ - DeleteLevel(dirID, &theGlobals); - error = theGlobals.error; - } - } - else - { - error = dirNFErr; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr DeleteDirectory(short vRefNum, - long dirID, - ConstStr255Param name) -{ - OSErr error; - - /* Make sure a directory was specified and then delete its contents */ - error = DeleteDirectoryContents(vRefNum, dirID, name); - if ( error == noErr ) - { - error = HDelete(vRefNum, dirID, name); - if ( error == fLckdErr ) - { - (void) HRstFLock(vRefNum, dirID, name); /* unlock the directory locked by AppleShare */ - error = HDelete(vRefNum, dirID, name); /* and try again */ - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr CheckObjectLock(short vRefNum, - long dirID, - ConstStr255Param name) -{ - CInfoPBRec pb; - OSErr error; - - error = GetCatInfoNoName(vRefNum, dirID, name, &pb); - if ( error == noErr ) - { - /* check locked bit */ - if ( (pb.hFileInfo.ioFlAttrib & 0x01) != 0 ) - { - error = fLckdErr; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpCheckObjectLock(const FSSpec *spec) -{ - return ( CheckObjectLock(spec->vRefNum, spec->parID, spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr GetFileSize(short vRefNum, - long dirID, - ConstStr255Param fileName, - long *dataSize, - long *rsrcSize) -{ - HParamBlockRec pb; - OSErr error; - - pb.fileParam.ioNamePtr = (StringPtr)fileName; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioFVersNum = 0; - pb.fileParam.ioDirID = dirID; - pb.fileParam.ioFDirIndex = 0; - error = PBHGetFInfoSync(&pb); - if ( error == noErr ) - { - *dataSize = pb.fileParam.ioFlLgLen; - *rsrcSize = pb.fileParam.ioFlRLgLen; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetFileSize(const FSSpec *spec, - long *dataSize, - long *rsrcSize) -{ - return ( GetFileSize(spec->vRefNum, spec->parID, spec->name, dataSize, rsrcSize) ); -} - -/*****************************************************************************/ - -pascal OSErr BumpDate(short vRefNum, - long dirID, - ConstStr255Param name) -/* Given a file or directory, change its modification date to the current date/time. */ -{ - CInfoPBRec pb; - Str31 tempName; - OSErr error; - unsigned long secs; - - /* Protection against File Sharing problem */ - if ( (name == NULL) || (name[0] == 0) ) - { - tempName[0] = 0; - pb.hFileInfo.ioNamePtr = tempName; - pb.hFileInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb.hFileInfo.ioNamePtr = (StringPtr)name; - pb.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - pb.hFileInfo.ioVRefNum = vRefNum; - pb.hFileInfo.ioDirID = dirID; - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - GetDateTime(&secs); - /* set mod date to current date, or one second into the future - if mod date = current date */ - pb.hFileInfo.ioFlMdDat = (secs == pb.hFileInfo.ioFlMdDat) ? (++secs) : (secs); - if ( pb.dirInfo.ioNamePtr == tempName ) - { - pb.hFileInfo.ioDirID = pb.hFileInfo.ioFlParID; - } - else - { - pb.hFileInfo.ioDirID = dirID; - } - error = PBSetCatInfoSync(&pb); - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpBumpDate(const FSSpec *spec) -{ - return ( BumpDate(spec->vRefNum, spec->parID, spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr ChangeCreatorType(short vRefNum, - long dirID, - ConstStr255Param name, - OSType creator, - OSType fileType) -{ - CInfoPBRec pb; - OSErr error; - short realVRefNum; - long parID; - - pb.hFileInfo.ioNamePtr = (StringPtr)name; - pb.hFileInfo.ioVRefNum = vRefNum; - pb.hFileInfo.ioDirID = dirID; - pb.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - if ( (pb.hFileInfo.ioFlAttrib & ioDirMask) == 0 ) /* if file */ - { - parID = pb.hFileInfo.ioFlParID; /* save parent dirID for BumpDate call */ - - /* If creator not 0x00000000, change creator */ - if ( creator != (OSType)0x00000000 ) - { - pb.hFileInfo.ioFlFndrInfo.fdCreator = creator; - } - - /* If fileType not 0x00000000, change fileType */ - if ( fileType != (OSType)0x00000000 ) - { - pb.hFileInfo.ioFlFndrInfo.fdType = fileType; - } - - pb.hFileInfo.ioDirID = dirID; - error = PBSetCatInfoSync(&pb); /* now, save the new information back to disk */ - - if ( (error == noErr) && (parID != fsRtParID) ) /* can't bump fsRtParID */ - { - /* get the real vRefNum in case a full pathname was passed */ - error = DetermineVRefNum(name, vRefNum, &realVRefNum); - if ( error == noErr ) - { - error = BumpDate(realVRefNum, parID, NULL); - /* and bump the parent directory's mod date to wake up the Finder */ - /* to the change we just made */ - } - } - } - else - { - /* it was a directory, not a file */ - error = notAFileErr; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpChangeCreatorType(const FSSpec *spec, - OSType creator, - OSType fileType) -{ - return ( ChangeCreatorType(spec->vRefNum, spec->parID, spec->name, creator, fileType) ); -} - -/*****************************************************************************/ - -pascal OSErr ChangeFDFlags(short vRefNum, - long dirID, - ConstStr255Param name, - Boolean setBits, - unsigned short flagBits) -{ - CInfoPBRec pb; - Str31 tempName; - OSErr error; - short realVRefNum; - long parID; - - /* Protection against File Sharing problem */ - if ( (name == NULL) || (name[0] == 0) ) - { - tempName[0] = 0; - pb.hFileInfo.ioNamePtr = tempName; - pb.hFileInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb.hFileInfo.ioNamePtr = (StringPtr)name; - pb.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - pb.hFileInfo.ioVRefNum = vRefNum; - pb.hFileInfo.ioDirID = dirID; - error = PBGetCatInfoSync(&pb); - if ( error == noErr ) - { - parID = pb.hFileInfo.ioFlParID; /* save parent dirID for BumpDate call */ - - /* set or clear the appropriate bits in the Finder flags */ - if ( setBits ) - { - /* OR in the bits */ - pb.hFileInfo.ioFlFndrInfo.fdFlags |= flagBits; - } - else - { - /* AND out the bits */ - pb.hFileInfo.ioFlFndrInfo.fdFlags &= ~flagBits; - } - - if ( pb.dirInfo.ioNamePtr == tempName ) - { - pb.hFileInfo.ioDirID = pb.hFileInfo.ioFlParID; - } - else - { - pb.hFileInfo.ioDirID = dirID; - } - - error = PBSetCatInfoSync(&pb); /* now, save the new information back to disk */ - - if ( (error == noErr) && (parID != fsRtParID) ) /* can't bump fsRtParID */ - { - /* get the real vRefNum in case a full pathname was passed */ - error = DetermineVRefNum(name, vRefNum, &realVRefNum); - if ( error == noErr ) - { - error = BumpDate(realVRefNum, parID, NULL); - /* and bump the parent directory's mod date to wake up the Finder */ - /* to the change we just made */ - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpChangeFDFlags(const FSSpec *spec, - Boolean setBits, - unsigned short flagBits) -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, setBits, flagBits) ); -} - -/*****************************************************************************/ - -pascal OSErr SetIsInvisible(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file or directory, make it invisible. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, true, kIsInvisible) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetIsInvisible(const FSSpec *spec) - /* Given a file or directory, make it invisible. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, true, kIsInvisible) ); -} - -/*****************************************************************************/ - -pascal OSErr ClearIsInvisible(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file or directory, make it visible. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, false, kIsInvisible) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpClearIsInvisible(const FSSpec *spec) - /* Given a file or directory, make it visible. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, false, kIsInvisible) ); -} - -/*****************************************************************************/ - -pascal OSErr SetNameLocked(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file or directory, lock its name. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, true, kNameLocked) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetNameLocked(const FSSpec *spec) - /* Given a file or directory, lock its name. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, true, kNameLocked) ); -} - -/*****************************************************************************/ - -pascal OSErr ClearNameLocked(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file or directory, unlock its name. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, false, kNameLocked) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpClearNameLocked(const FSSpec *spec) - /* Given a file or directory, unlock its name. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, false, kNameLocked) ); -} - -/*****************************************************************************/ - -pascal OSErr SetIsStationery(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file, make it a stationery pad. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, true, kIsStationery) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetIsStationery(const FSSpec *spec) - /* Given a file, make it a stationery pad. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, true, kIsStationery) ); -} - -/*****************************************************************************/ - -pascal OSErr ClearIsStationery(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file, clear the stationery bit. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, false, kIsStationery) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpClearIsStationery(const FSSpec *spec) - /* Given a file, clear the stationery bit. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, false, kIsStationery) ); -} - -/*****************************************************************************/ - -pascal OSErr SetHasCustomIcon(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file or directory, indicate that it has a custom icon. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, true, kHasCustomIcon) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetHasCustomIcon(const FSSpec *spec) - /* Given a file or directory, indicate that it has a custom icon. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, true, kHasCustomIcon) ); -} - -/*****************************************************************************/ - -pascal OSErr ClearHasCustomIcon(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file or directory, indicate that it does not have a custom icon. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, false, kHasCustomIcon) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpClearHasCustomIcon(const FSSpec *spec) - /* Given a file or directory, indicate that it does not have a custom icon. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, false, kHasCustomIcon) ); -} - -/*****************************************************************************/ - -pascal OSErr ClearHasBeenInited(short vRefNum, - long dirID, - ConstStr255Param name) - /* Given a file, clear its "has been inited" bit. */ -{ - return ( ChangeFDFlags(vRefNum, dirID, name, false, kHasBeenInited) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpClearHasBeenInited(const FSSpec *spec) - /* Given a file, clear its "has been inited" bit. */ -{ - return ( ChangeFDFlags(spec->vRefNum, spec->parID, spec->name, false, kHasBeenInited) ); -} - -/*****************************************************************************/ - -pascal OSErr CopyFileMgrAttributes(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName, - Boolean copyLockBit) -{ - UniversalFMPB pb; - Str31 tempName; - OSErr error; - Boolean objectIsDirectory; - - pb.ciPB.hFileInfo.ioVRefNum = srcVRefNum; - pb.ciPB.hFileInfo.ioDirID = srcDirID; - - /* Protection against File Sharing problem */ - if ( (srcName == NULL) || (srcName[0] == 0) ) - { - tempName[0] = 0; - pb.ciPB.hFileInfo.ioNamePtr = tempName; - pb.ciPB.hFileInfo.ioFDirIndex = -1; /* use ioDirID */ - } - else - { - pb.ciPB.hFileInfo.ioNamePtr = (StringPtr)srcName; - pb.ciPB.hFileInfo.ioFDirIndex = 0; /* use ioNamePtr and ioDirID */ - } - error = PBGetCatInfoSync(&pb.ciPB); - if ( error == noErr ) - { - objectIsDirectory = ( (pb.ciPB.hFileInfo.ioFlAttrib & ioDirMask) != 0 ); - pb.ciPB.hFileInfo.ioVRefNum = dstVRefNum; - pb.ciPB.hFileInfo.ioDirID = dstDirID; - if ( (dstName != NULL) && (dstName[0] == 0) ) - { - pb.ciPB.hFileInfo.ioNamePtr = NULL; - } - else - { - pb.ciPB.hFileInfo.ioNamePtr = (StringPtr)dstName; - } - /* don't copy the hasBeenInited bit */ - pb.ciPB.hFileInfo.ioFlFndrInfo.fdFlags = ( pb.ciPB.hFileInfo.ioFlFndrInfo.fdFlags & 0xfeff ); - error = PBSetCatInfoSync(&pb.ciPB); - if ( (error == noErr) && (copyLockBit) && ((pb.ciPB.hFileInfo.ioFlAttrib & 0x01) != 0) ) - { - pb.hPB.fileParam.ioFVersNum = 0; - error = PBHSetFLockSync(&pb.hPB); - if ( (error != noErr) && (objectIsDirectory) ) - { - error = noErr; /* ignore lock errors if destination is directory */ - } - } - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpCopyFileMgrAttributes(const FSSpec *srcSpec, - const FSSpec *dstSpec, - Boolean copyLockBit) -{ - return ( CopyFileMgrAttributes(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, dstSpec->name, - copyLockBit) ); -} - -/*****************************************************************************/ - -pascal OSErr HOpenAware(short vRefNum, - long dirID, - ConstStr255Param fileName, - short denyModes, - short *refNum) -{ - HParamBlockRec pb; - OSErr error; - GetVolParmsInfoBuffer volParmsInfo; - long infoSize = sizeof(GetVolParmsInfoBuffer); - - pb.ioParam.ioMisc = NULL; - pb.fileParam.ioFVersNum = 0; - pb.fileParam.ioNamePtr = (StringPtr)fileName; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioDirID = dirID; - - /* get volume attributes */ - /* this preflighting is needed because Foreign File Access based file systems don't */ - /* return the correct error result to the OpenDeny call */ - error = HGetVolParms(fileName, vRefNum, &volParmsInfo, &infoSize); - if ( (error == noErr) && hasOpenDeny(volParmsInfo) ) - { - /* if volume supports OpenDeny, use it and return */ - pb.accessParam.ioDenyModes = denyModes; - error = PBHOpenDenySync(&pb); - *refNum = pb.ioParam.ioRefNum; - } - else if ( (error == noErr) || (error == paramErr) ) /* paramErr is OK, it just means this volume doesn't support GetVolParms */ - { - /* OpenDeny isn't supported, so try File Manager Open functions */ - - /* If request includes write permission, then see if the volume is */ - /* locked by hardware or software. The HFS file system doesn't check */ - /* for this when a file is opened - you only find out later when you */ - /* try to write and the write fails with a wPrErr or a vLckdErr. */ - - if ( (denyModes & dmWr) != 0 ) - { - error = CheckVolLock(fileName, vRefNum); - } - else - { - error = noErr; - } - - if ( error == noErr ) - { - /* Set File Manager permissions to closest thing possible */ - if ( (denyModes == dmWr) || (denyModes == dmRdWr) ) - { - pb.ioParam.ioPermssn = fsRdWrShPerm; - } - else - { - pb.ioParam.ioPermssn = denyModes % 4; - } - - error = PBHOpenDFSync(&pb); /* Try OpenDF */ - if ( error == paramErr ) - { - error = PBHOpenSync(&pb); /* OpenDF not supported, so try Open */ - } - *refNum = pb.ioParam.ioRefNum; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpOpenAware(const FSSpec *spec, - short denyModes, - short *refNum) -{ - return ( HOpenAware(spec->vRefNum, spec->parID, spec->name, denyModes, refNum) ); -} - -/*****************************************************************************/ - -pascal OSErr HOpenRFAware(short vRefNum, - long dirID, - ConstStr255Param fileName, - short denyModes, - short *refNum) -{ - HParamBlockRec pb; - OSErr error; - GetVolParmsInfoBuffer volParmsInfo; - long infoSize = sizeof(GetVolParmsInfoBuffer); - - pb.ioParam.ioMisc = NULL; - pb.fileParam.ioFVersNum = 0; - pb.fileParam.ioNamePtr = (StringPtr)fileName; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioDirID = dirID; - - /* get volume attributes */ - /* this preflighting is needed because Foreign File Access based file systems don't */ - /* return the correct error result to the OpenRFDeny call */ - error = HGetVolParms(fileName, vRefNum, &volParmsInfo, &infoSize); - if ( (error == noErr) && hasOpenDeny(volParmsInfo) ) - { - /* if volume supports OpenRFDeny, use it and return */ - if ( hasOpenDeny(volParmsInfo) ) - { - pb.accessParam.ioDenyModes = denyModes; - error = PBHOpenRFDenySync(&pb); - *refNum = pb.ioParam.ioRefNum; - } - } - else if ( (error == noErr) || (error == paramErr) ) /* paramErr is OK, it just means this volume doesn't support GetVolParms */ - { - /* OpenRFDeny isn't supported, so try File Manager OpenRF function */ - - /* If request includes write permission, then see if the volume is */ - /* locked by hardware or software. The HFS file system doesn't check */ - /* for this when a file is opened - you only find out later when you */ - /* try to write and the write fails with a wPrErr or a vLckdErr. */ - - if ( (denyModes & dmWr) != 0 ) - { - error = CheckVolLock(fileName, vRefNum); - } - else - { - error = noErr; - } - - if ( error == noErr ) - { - /* Set File Manager permissions to closest thing possible */ - if ( (denyModes == dmWr) || (denyModes == dmRdWr) ) - { - pb.ioParam.ioPermssn = fsRdWrShPerm; - } - else - { - pb.ioParam.ioPermssn = denyModes % 4; - } - - error = PBHOpenRFSync(&pb); - *refNum = pb.ioParam.ioRefNum; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpOpenRFAware(const FSSpec *spec, - short denyModes, - short *refNum) -{ - return ( HOpenRFAware(spec->vRefNum, spec->parID, spec->name, denyModes, refNum) ); -} - -/*****************************************************************************/ - -pascal OSErr FSReadNoCache(short refNum, - long *count, - void *buffPtr) -{ - ParamBlockRec pb; - OSErr error; - - pb.ioParam.ioRefNum = refNum; - pb.ioParam.ioBuffer = (Ptr)buffPtr; - pb.ioParam.ioReqCount = *count; - pb.ioParam.ioPosMode = fsAtMark + 0x0020; /* fsAtMark + noCacheBit */ - pb.ioParam.ioPosOffset = 0; - error = PBReadSync(&pb); - *count = pb.ioParam.ioActCount; /* always return count */ - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSWriteNoCache(short refNum, - long *count, - const void *buffPtr) -{ - ParamBlockRec pb; - OSErr error; - - pb.ioParam.ioRefNum = refNum; - pb.ioParam.ioBuffer = (Ptr)buffPtr; - pb.ioParam.ioReqCount = *count; - pb.ioParam.ioPosMode = fsAtMark + 0x0020; /* fsAtMark + noCacheBit */ - pb.ioParam.ioPosOffset = 0; - error = PBWriteSync(&pb); - *count = pb.ioParam.ioActCount; /* always return count */ - return ( error ); -} - -/*****************************************************************************/ - -/* -** See if numBytes bytes of buffer1 are equal to buffer2. -*/ -static Boolean EqualMemory(const void *buffer1, const void *buffer2, unsigned long numBytes) -{ - register unsigned char *b1 = (unsigned char *)buffer1; - register unsigned char *b2 = (unsigned char *)buffer2; - - if ( b1 != b2 ) /* if buffer pointers are same, then they are equal */ - { - while ( numBytes > 0 ) - { - /* compare the bytes and then increment the pointers */ - if ( (*b1++ - *b2++) != 0 ) - { - return ( false ); - } - --numBytes; - } - } - - return ( true ); -} - -/*****************************************************************************/ - -/* -** Read any number of bytes from an open file using read-verify mode. -** The FSReadVerify function reads any number of bytes from an open file -** and verifies them against the data in the buffer pointed to by buffPtr. -** -** Because of a bug in the HFS file system, only non-block aligned parts of -** the read are verified against the buffer data and the rest is *copied* -** into the buffer. Thus, you shouldn't verify against your original data; -** instead, you should verify against a copy of the original data and then -** compare the read-verified copy against the original data after calling -** FSReadVerify. That's why this function isn't exported - it needs the -** wrapper provided by FSWriteVerify. -*/ -static OSErr FSReadVerify(short refNum, - long *count, - void *buffPtr) -{ - ParamBlockRec pb; - OSErr result; - - pb.ioParam.ioRefNum = refNum; - pb.ioParam.ioBuffer = (Ptr)buffPtr; - pb.ioParam.ioReqCount = *count; - pb.ioParam.ioPosMode = fsAtMark + rdVerify; - pb.ioParam.ioPosOffset = 0; - result = PBReadSync(&pb); - *count = pb.ioParam.ioActCount; /* always return count */ - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr FSWriteVerify(short refNum, - long *count, - const void *buffPtr) -{ - Ptr verifyBuffer; - long position; - long bufferSize; - long byteCount; - long bytesVerified; - Ptr startVerify; - OSErr result; - - /* - ** Allocate the verify buffer - ** Try to get get a large enough buffer to verify in one pass. - ** If that fails, use GetTempBuffer to get a buffer. - */ - bufferSize = *count; - verifyBuffer = NewPtr(bufferSize); - if ( verifyBuffer == NULL ) - { - verifyBuffer = GetTempBuffer(bufferSize, &bufferSize); - } - if ( verifyBuffer != NULL ) - { - /* Save the current position */ - result = GetFPos(refNum, &position); - if ( result == noErr ) - { - /* Write the data */ - result = FSWrite(refNum, count, buffPtr); - if ( result == noErr ) - { - /* Restore the original position */ - result = SetFPos(refNum, fsFromStart, position); - if ( result == noErr ) - { - /* - ** *count = total number of bytes to verify - ** bufferSize = the size of the verify buffer - ** bytesVerified = number of bytes verified - ** byteCount = number of bytes to verify this pass - ** startVerify = position in buffPtr - */ - bytesVerified = 0; - startVerify = (Ptr)buffPtr; - while ( (bytesVerified < *count) && ( result == noErr ) ) - { - if ( (*count - bytesVerified) > bufferSize ) - { - byteCount = bufferSize; - } - else - { - byteCount = *count - bytesVerified; - } - /* - ** Copy the write buffer into the verify buffer. - ** This step is needed because the File Manager - ** compares the data in any non-block aligned - ** data at the beginning and end of the read-verify - ** request back into the file system's cache - ** to the data in verify Buffer. However, the - ** File Manager does not compare any full blocks - ** and instead copies them into the verify buffer - ** so we still have to compare the buffers again - ** after the read-verify request completes. - */ - BlockMoveData(startVerify, verifyBuffer, byteCount); - - /* Read-verify the data back into the verify buffer */ - result = FSReadVerify(refNum, &byteCount, verifyBuffer); - if ( result == noErr ) - { - /* See if the buffers are the same */ - if ( !EqualMemory(verifyBuffer, startVerify, byteCount) ) - { - result = ioErr; - } - startVerify += byteCount; - bytesVerified += byteCount; - } - } - } - } - } - DisposePtr(verifyBuffer); - } - else - { - result = memFullErr; - } - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr CopyFork(short srcRefNum, - short dstRefNum, - void *copyBufferPtr, - long copyBufferSize) -{ - ParamBlockRec srcPB; - ParamBlockRec dstPB; - OSErr srcError; - OSErr dstError; - - if ( (copyBufferPtr == NULL) || (copyBufferSize == 0) ) - return ( paramErr ); - - srcPB.ioParam.ioRefNum = srcRefNum; - dstPB.ioParam.ioRefNum = dstRefNum; - - /* preallocate the destination fork and */ - /* ensure the destination fork's EOF is correct after the copy */ - srcError = PBGetEOFSync(&srcPB); - if ( srcError != noErr ) - return ( srcError ); - dstPB.ioParam.ioMisc = srcPB.ioParam.ioMisc; - dstError = PBSetEOFSync(&dstPB); - if ( dstError != noErr ) - return ( dstError ); - - /* reset source fork's mark */ - srcPB.ioParam.ioPosMode = fsFromStart; - srcPB.ioParam.ioPosOffset = 0; - srcError = PBSetFPosSync(&srcPB); - if ( srcError != noErr ) - return ( srcError ); - - /* reset destination fork's mark */ - dstPB.ioParam.ioPosMode = fsFromStart; - dstPB.ioParam.ioPosOffset = 0; - dstError = PBSetFPosSync(&dstPB); - if ( dstError != noErr ) - return ( dstError ); - - /* set up fields that won't change in the loop */ - srcPB.ioParam.ioBuffer = (Ptr)copyBufferPtr; - srcPB.ioParam.ioPosMode = fsAtMark + 0x0020;/* fsAtMark + noCacheBit */ - /* If copyBufferSize is greater than 512 bytes, make it a multiple of 512 bytes */ - /* This will make writes on local volumes faster */ - if ( (copyBufferSize >= 512) && ((copyBufferSize & 0x1ff) != 0) ) - { - srcPB.ioParam.ioReqCount = copyBufferSize & 0xfffffe00; - } - else - { - srcPB.ioParam.ioReqCount = copyBufferSize; - } - dstPB.ioParam.ioBuffer = (Ptr)copyBufferPtr; - dstPB.ioParam.ioPosMode = fsAtMark + 0x0020;/* fsAtMark + noCacheBit */ - - while ( (srcError == noErr) && (dstError == noErr) ) - { - srcError = PBReadSync(&srcPB); - dstPB.ioParam.ioReqCount = srcPB.ioParam.ioActCount; - dstError = PBWriteSync(&dstPB); - } - - /* make sure there were no errors at the destination */ - if ( dstError != noErr ) - return ( dstError ); - - /* make sure the only error at the source was eofErr */ - if ( srcError != eofErr ) - return ( srcError ); - - return ( noErr ); -} - -/*****************************************************************************/ - -pascal OSErr GetFileLocation(short refNum, - short *vRefNum, - long *dirID, - StringPtr fileName) -{ - FCBPBRec pb; - OSErr error; - - pb.ioNamePtr = fileName; - pb.ioVRefNum = 0; - pb.ioRefNum = refNum; - pb.ioFCBIndx = 0; - error = PBGetFCBInfoSync(&pb); - if ( error == noErr ) - { - *vRefNum = pb.ioFCBVRefNum; - *dirID = pb.ioFCBParID; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetFileLocation(short refNum, - FSSpec *spec) -{ - return ( GetFileLocation(refNum, &(spec->vRefNum), &(spec->parID), spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr CopyDirectoryAccess(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName) -{ - OSErr error; - GetVolParmsInfoBuffer infoBuffer; /* Where PBGetVolParms dumps its info */ - long dstServerAdr; /* AppleTalk server address of destination (if any) */ - long ownerID, groupID, accessRights; - long tempLong; - - /* See if destination supports directory access control */ - tempLong = sizeof(infoBuffer); - error = HGetVolParms(dstName, dstVRefNum, &infoBuffer, &tempLong); - if ( (error == noErr) && hasAccessCntl(infoBuffer) ) - { - if ( hasAccessCntl(infoBuffer) ) - { - dstServerAdr = infoBuffer.vMServerAdr; - - /* See if source supports directory access control and is on same server */ - tempLong = sizeof(infoBuffer); - error = HGetVolParms(srcName, srcVRefNum, &infoBuffer, &tempLong); - if ( error == noErr ) - { - if ( hasAccessCntl(infoBuffer) && (dstServerAdr == infoBuffer.vMServerAdr) ) - { - /* both volumes support directory access control and they are */ - /* on same server, so copy the access information */ - error = HGetDirAccess(srcVRefNum, srcDirID, srcName, &ownerID, &groupID, &accessRights); - if ( error == noErr ) - { - error = HSetDirAccess(dstVRefNum, dstDirID, dstName, ownerID, groupID, accessRights); - } - } - else - { - /* destination doesn't support directory access control or */ - /* they volumes aren't on the same server */ - error = paramErr; - } - } - } - else - { - /* destination doesn't support directory access control */ - error = paramErr; - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpCopyDirectoryAccess(const FSSpec *srcSpec, - const FSSpec *dstSpec) -{ - return ( CopyDirectoryAccess(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, dstSpec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr HMoveRenameCompat(short vRefNum, - long srcDirID, - ConstStr255Param srcName, - long dstDirID, - ConstStr255Param dstpathName, - ConstStr255Param copyName) -{ - OSErr error; - GetVolParmsInfoBuffer volParmsInfo; - long infoSize; - short realVRefNum; - long realParID; - Str31 realName; - Boolean isDirectory; - long tempItemsDirID; - long uniqueTempDirID; - Str31 uniqueTempDirName; - unsigned short uniqueNameoverflow; - - /* Get volume attributes */ - infoSize = sizeof(GetVolParmsInfoBuffer); - error = HGetVolParms((StringPtr)srcName, vRefNum, &volParmsInfo, &infoSize); - if ( (error == noErr) && hasMoveRename(volParmsInfo) ) - { - /* If volume supports move and rename, so use it and return */ - error = HMoveRename(vRefNum, srcDirID, srcName, dstDirID, dstpathName, copyName); - } - else if ( (error == noErr) || (error == paramErr) ) /* paramErr is OK, it just means this volume doesn't support GetVolParms */ - { - /* MoveRename isn't supported by this volume, so do it by hand */ - - /* If copyName isn't supplied, we can simply CatMove and return */ - if ( copyName == NULL ) - { - error = CatMove(vRefNum, srcDirID, srcName, dstDirID, dstpathName); - } - else - { - /* Renaming is required, so we have some work to do... */ - - /* Get the object's real name, real parent ID and real vRefNum */ - error = GetObjectLocation(vRefNum, srcDirID, (StringPtr)srcName, - &realVRefNum, &realParID, realName, &isDirectory); - if ( error == noErr ) - { - /* Find the Temporary Items Folder on that volume */ - error = FindFolder(realVRefNum, kTemporaryFolderType, kCreateFolder, - &realVRefNum, &tempItemsDirID); - if ( error == noErr ) - { - /* Create a new uniquely named folder in the temporary items folder. */ - /* This is done to avoid the case where 'realName' or 'copyName' already */ - /* exists in the temporary items folder. */ - - /* Start with current tick count as uniqueTempDirName */ - NumToString(TickCount(), uniqueTempDirName); - uniqueNameoverflow = 0; - do - { - error = DirCreate(realVRefNum, tempItemsDirID, uniqueTempDirName, &uniqueTempDirID); - if ( error == dupFNErr ) - { - /* Duplicate name - change the first character to the next ASCII character */ - ++uniqueTempDirName[1]; - /* Make sure it isn't a colon! */ - if ( uniqueTempDirName[1] == ':' ) - { - ++uniqueTempDirName[1]; - } - /* Don't go too far... */ - ++uniqueNameoverflow; - } - } while ( (error == dupFNErr) && (uniqueNameoverflow <= 64) ); /* 64 new files per 1/60th second - not likely! */ - if ( error == noErr ) - { - /* Move the object to the folder with uniqueTempDirID for renaming */ - error = CatMove(realVRefNum, realParID, realName, uniqueTempDirID, NULL); - if ( error == noErr ) - { - /* Rename the object */ - error = HRename(realVRefNum, uniqueTempDirID, realName, copyName); - if ( error == noErr ) - { - /* Move object to its new home */ - error = CatMove(realVRefNum, uniqueTempDirID, copyName, dstDirID, dstpathName); - if ( error != noErr ) - { - /* Error handling: rename object back to original name - ignore errors */ - (void) HRename(realVRefNum, uniqueTempDirID, copyName, realName); - } - } - if ( error != noErr ) - { - /* Error handling: move object back to original location - ignore errors */ - (void) CatMove(realVRefNum, uniqueTempDirID, realName, realParID, NULL); - } - } - /* Done with ourTempDir, so delete it - ignore errors */ - (void) HDelete(realVRefNum, uniqueTempDirID, NULL); - } - } - } - } - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpMoveRenameCompat(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName) -{ - /* make sure the FSSpecs refer to the same volume */ - if (srcSpec->vRefNum != dstSpec->vRefNum) - return (diffVolErr); - return ( HMoveRenameCompat(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->parID, dstSpec->name, copyName) ); -} - -/*****************************************************************************/ - -pascal OSErr BuildAFPVolMountInfo(short flags, - char nbpInterval, - char nbpCount, - short uamType, - Str32 zoneName, - Str32 serverName, - Str27 volName, - Str31 userName, - Str8 userPassword, - Str8 volPassword, - AFPVolMountInfoPtr *afpInfoPtr) -{ - MyAFPVolMountInfoPtr infoPtr; - OSErr error; - - /* Allocate the AFPXVolMountInfo record */ - infoPtr = (MyAFPVolMountInfoPtr)NewPtrClear(sizeof(MyAFPVolMountInfo)); - if ( infoPtr != NULL ) - { - /* Fill in an AFPVolMountInfo record that can be passed to VolumeMount */ - infoPtr->length = sizeof(MyAFPVolMountInfo); - infoPtr->media = AppleShareMediaType; - infoPtr->flags = flags; - infoPtr->nbpInterval = nbpInterval; - infoPtr->nbpCount = nbpCount; - infoPtr->uamType = uamType; - - infoPtr->zoneNameOffset = offsetof(MyAFPVolMountInfo, zoneName); - infoPtr->serverNameOffset = offsetof(MyAFPVolMountInfo, serverName); - infoPtr->volNameOffset = offsetof(MyAFPVolMountInfo, volName); - infoPtr->userNameOffset = offsetof(MyAFPVolMountInfo, userName); - infoPtr->userPasswordOffset = offsetof(MyAFPVolMountInfo, userPassword); - infoPtr->volPasswordOffset = offsetof(MyAFPVolMountInfo, volPassword); - - BlockMoveData(zoneName, infoPtr->zoneName, sizeof(Str32)); - BlockMoveData(serverName, infoPtr->serverName, sizeof(Str32)); - BlockMoveData(volName, infoPtr->volName, sizeof(Str27)); - BlockMoveData(userName, infoPtr->userName, sizeof(Str31)); - BlockMoveData(userPassword, infoPtr->userPassword, sizeof(Str8)); - BlockMoveData(volPassword, infoPtr->volPassword, sizeof(Str8)); - - *afpInfoPtr = (AFPVolMountInfoPtr)infoPtr; - error = noErr; - } - else - { - error = memFullErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr RetrieveAFPVolMountInfo(AFPVolMountInfoPtr afpInfoPtr, - short *flags, - short *uamType, - StringPtr zoneName, - StringPtr serverName, - StringPtr volName, - StringPtr userName) -{ - StringPtr tempPtr; - OSErr error; - - /* Retrieve the AFP mounting information from an AFPVolMountInfo record. */ - if ( afpInfoPtr->media == AppleShareMediaType ) - { - *flags = afpInfoPtr->flags; - *uamType = afpInfoPtr->uamType; - - if ( afpInfoPtr->zoneNameOffset != 0) - { - tempPtr = (StringPtr)((long)afpInfoPtr + afpInfoPtr->zoneNameOffset); - BlockMoveData(tempPtr, zoneName, tempPtr[0] + 1); - } - - if ( afpInfoPtr->serverNameOffset != 0) - { - tempPtr = (StringPtr)((long)afpInfoPtr + afpInfoPtr->serverNameOffset); - BlockMoveData(tempPtr, serverName, tempPtr[0] + 1); - } - - if ( afpInfoPtr->volNameOffset != 0) - { - tempPtr = (StringPtr)((long)afpInfoPtr + afpInfoPtr->volNameOffset); - BlockMoveData(tempPtr, volName, tempPtr[0] + 1); - } - - if ( afpInfoPtr->userNameOffset != 0) - { - tempPtr = (StringPtr)((long)afpInfoPtr + afpInfoPtr->userNameOffset); - BlockMoveData(tempPtr, userName, tempPtr[0] + 1); - } - - error = noErr; - } - else - { - error = paramErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr BuildAFPXVolMountInfo(short flags, - char nbpInterval, - char nbpCount, - short uamType, - Str32 zoneName, - Str32 serverName, - Str27 volName, - Str31 userName, - Str8 userPassword, - Str8 volPassword, - Str32 uamName, - unsigned long alternateAddressLength, - void *alternateAddress, - AFPXVolMountInfoPtr *afpXInfoPtr) -{ - Size infoSize; - MyAFPXVolMountInfoPtr infoPtr; - OSErr error; - - /* Calculate the size of the AFPXVolMountInfo record */ - infoSize = sizeof(MyAFPXVolMountInfo) + alternateAddressLength - 1; - - /* Allocate the AFPXVolMountInfo record */ - infoPtr = (MyAFPXVolMountInfoPtr)NewPtrClear(infoSize); - if ( infoPtr != NULL ) - { - /* Fill in an AFPXVolMountInfo record that can be passed to VolumeMount */ - infoPtr->length = infoSize; - infoPtr->media = AppleShareMediaType; - infoPtr->flags = flags; - if ( alternateAddressLength != 0 ) - { - /* make sure the volMountExtendedFlagsBit is set if there's extended address info */ - infoPtr->flags |= volMountExtendedFlagsMask; - /* and set the only extendedFlags bit we know about */ - infoPtr->extendedFlags = kAFPExtendedFlagsAlternateAddressMask; - } - else - { - /* make sure the volMountExtendedFlagsBit is clear if there's no extended address info */ - infoPtr->flags &= ~volMountExtendedFlagsMask; - /* and clear the extendedFlags */ - infoPtr->extendedFlags = 0; - } - infoPtr->nbpInterval = nbpInterval; - infoPtr->nbpCount = nbpCount; - infoPtr->uamType = uamType; - - infoPtr->zoneNameOffset = offsetof(MyAFPXVolMountInfo, zoneName); - infoPtr->serverNameOffset = offsetof(MyAFPXVolMountInfo, serverName); - infoPtr->volNameOffset = offsetof(MyAFPXVolMountInfo, volName); - infoPtr->userNameOffset = offsetof(MyAFPXVolMountInfo, userName); - infoPtr->userPasswordOffset = offsetof(MyAFPXVolMountInfo, userPassword); - infoPtr->volPasswordOffset = offsetof(MyAFPXVolMountInfo, volPassword); - infoPtr->uamNameOffset = offsetof(MyAFPXVolMountInfo, uamName); - infoPtr->alternateAddressOffset = offsetof(MyAFPXVolMountInfo, alternateAddress); - - BlockMoveData(zoneName, infoPtr->zoneName, sizeof(Str32)); - BlockMoveData(serverName, infoPtr->serverName, sizeof(Str32)); - BlockMoveData(volName, infoPtr->volName, sizeof(Str27)); - BlockMoveData(userName, infoPtr->userName, sizeof(Str31)); - BlockMoveData(userPassword, infoPtr->userPassword, sizeof(Str8)); - BlockMoveData(volPassword, infoPtr->volPassword, sizeof(Str8)); - BlockMoveData(uamName, infoPtr->uamName, sizeof(Str32)); - BlockMoveData(alternateAddress, infoPtr->alternateAddress, alternateAddressLength); - - *afpXInfoPtr = (AFPXVolMountInfoPtr)infoPtr; - error = noErr; - } - else - { - error = memFullErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr RetrieveAFPXVolMountInfo(AFPXVolMountInfoPtr afpXInfoPtr, - short *flags, - short *uamType, - StringPtr zoneName, - StringPtr serverName, - StringPtr volName, - StringPtr userName, - StringPtr uamName, - unsigned long *alternateAddressLength, - AFPAlternateAddress **alternateAddress) -{ - StringPtr tempPtr; - Ptr alternateAddressStart; - Ptr alternateAddressEnd; - Size alternateAddressDataSize; - OSErr error; - UInt8 addressCount; - - /* Retrieve the AFP mounting information from an AFPVolMountInfo record. */ - if ( afpXInfoPtr->media == AppleShareMediaType ) - { - /* default to noErr */ - error = noErr; - - /* Is this an extended record? */ - if ( (afpXInfoPtr->flags & volMountExtendedFlagsMask) != 0 ) - { - if ( ((afpXInfoPtr->extendedFlags & kAFPExtendedFlagsAlternateAddressMask) != 0) && - (afpXInfoPtr->alternateAddressOffset != 0) ) - { - - alternateAddressStart = (Ptr)((long)afpXInfoPtr + afpXInfoPtr->alternateAddressOffset); - alternateAddressEnd = alternateAddressStart + 1; /* skip over alternate address version byte */ - addressCount = *(UInt8*)alternateAddressEnd; /* get the address count */ - ++alternateAddressEnd; /* skip over alternate address count byte */ - /* alternateAddressEnd now equals &AFPAlternateAddress.fAddressList[0] */ - while ( addressCount != 0 ) - { - /* parse the address list to find the end */ - alternateAddressEnd += *(UInt8*)alternateAddressEnd; /* add length of each AFPTagData record */ - --addressCount; - } - /* get the size of the alternateAddressData */ - alternateAddressDataSize = alternateAddressEnd - alternateAddressStart; - /* allocate memory for it */ - *alternateAddress = (AFPAlternateAddress *)NewPtr(alternateAddressDataSize); - if ( *alternateAddress != NULL ) - { - /* and return the data */ - BlockMoveData(alternateAddressStart, *alternateAddress, alternateAddressDataSize); - *alternateAddressLength = alternateAddressDataSize; - } - else - { - /* no memory - fail now */ - error = memFullErr; - } - } - - if ( error == noErr ) /* fill in more output parameters if everything is OK */ - { - if ( afpXInfoPtr->uamNameOffset != 0 ) - { - tempPtr = (StringPtr)((long)afpXInfoPtr + afpXInfoPtr->uamNameOffset); - BlockMoveData(tempPtr, uamName, tempPtr[0] + 1); - } - } - } - - if ( error == noErr ) /* fill in more output parameters if everything is OK */ - { - *flags = afpXInfoPtr->flags; - *uamType = afpXInfoPtr->uamType; - - if ( afpXInfoPtr->zoneNameOffset != 0 ) - { - tempPtr = (StringPtr)((long)afpXInfoPtr + afpXInfoPtr->zoneNameOffset); - BlockMoveData(tempPtr, zoneName, tempPtr[0] + 1); - } - - if ( afpXInfoPtr->serverNameOffset != 0 ) - { - tempPtr = (StringPtr)((long)afpXInfoPtr + afpXInfoPtr->serverNameOffset); - BlockMoveData(tempPtr, serverName, tempPtr[0] + 1); - } - - if ( afpXInfoPtr->volNameOffset != 0 ) - { - tempPtr = (StringPtr)((long)afpXInfoPtr + afpXInfoPtr->volNameOffset); - BlockMoveData(tempPtr, volName, tempPtr[0] + 1); - } - - if ( afpXInfoPtr->userNameOffset != 0 ) - { - tempPtr = (StringPtr)((long)afpXInfoPtr + afpXInfoPtr->userNameOffset); - BlockMoveData(tempPtr, userName, tempPtr[0] + 1); - } - } - } - else - { - error = paramErr; - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetUGEntries(short objType, - UGEntryPtr entries, - long reqEntryCount, - long *actEntryCount, - long *objID) -{ - HParamBlockRec pb; - OSErr error = noErr; - UGEntry *endEntryArray; - - pb.objParam.ioObjType = objType; - *actEntryCount = 0; - for ( endEntryArray = entries + reqEntryCount; (entries < endEntryArray) && (error == noErr); ++entries ) - { - pb.objParam.ioObjNamePtr = (StringPtr)entries->name; - pb.objParam.ioObjID = *objID; - /* Files.h in the universal interfaces, PBGetUGEntrySync takes a CMovePBPtr */ - /* as the parameter. Inside Macintosh and the original glue used HParmBlkPtr. */ - /* A CMovePBPtr works OK, but this will be changed in the future back to */ - /* HParmBlkPtr, so I'm just casting it here. */ - error = PBGetUGEntrySync(&pb); - if ( error == noErr ) - { - entries->objID = *objID = pb.objParam.ioObjID; - entries->objType = objType; - ++*actEntryCount; - } - } - - return ( error ); -} - -/*****************************************************************************/ - diff --git a/src/mac/morefile/MoreExtr.h b/src/mac/morefile/MoreExtr.h deleted file mode 100644 index 927a824d98..0000000000 --- a/src/mac/morefile/MoreExtr.h +++ /dev/null @@ -1,3141 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** A collection of useful high-level File Manager routines. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: MoreFilesExtras.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __MOREFILESEXTRAS__ -#define __MOREFILESEXTRAS__ - -#include -#include - -#ifndef true -#define true 1 -#define false 0 -#endif - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -/* Constants and types from Universal Interfaces 3.0.1 Files.h */ - -#if UNIVERSAL_INTERFACES_VERSION < 0x0301 - -enum { - volMountNoLoginMsgFlagBit = 0, /* Input to VolumeMount: If set, the file system */ - volMountNoLoginMsgFlagMask = 0x0001, /* should suppresss any log-in message/greeting dialog */ - volMountExtendedFlagsBit = 7, /* Input to VolumeMount: If set, the mount info is a */ - volMountExtendedFlagsMask = 0x0080 /* AFPXVolMountInfo record for 3.7 AppleShare Client */ -}; - -/* AFPXVolMountInfo is the new AFP volume mount info record, requires the 3.7 AppleShare Client */ - -struct AFPXVolMountInfo { - short length; /* length of location data (including self) */ - VolumeType media; /* type of media */ - short flags; /* bits for no messages, no reconnect */ - SInt8 nbpInterval; /* NBP Interval parameter (IM2, p.322) */ - SInt8 nbpCount; /* NBP Interval parameter (IM2, p.322) */ - short uamType; /* User Authentication Method type */ - short zoneNameOffset; /* short positive offset from start of struct to Zone Name */ - short serverNameOffset; /* offset to pascal Server Name string */ - short volNameOffset; /* offset to pascal Volume Name string */ - short userNameOffset; /* offset to pascal User Name string */ - short userPasswordOffset; /* offset to pascal User Password string */ - short volPasswordOffset; /* offset to pascal Volume Password string */ - short extendedFlags; /* extended flags word */ - short uamNameOffset; /* offset to a pascal UAM name string */ - short alternateAddressOffset; /* offset to Alternate Addresses in tagged format */ - char AFPData[176]; /* variable length data may follow */ -}; -typedef struct AFPXVolMountInfo AFPXVolMountInfo; -typedef AFPXVolMountInfo * AFPXVolMountInfoPtr; - -enum { - kAFPExtendedFlagsAlternateAddressMask = 1 /* bit in AFPXVolMountInfo.extendedFlags that means alternateAddressOffset is used*/ -}; - -enum { - /* constants for use in AFPTagData.fType field*/ - kAFPTagTypeIP = 0x01, - kAFPTagTypeIPPort = 0x02, - kAFPTagTypeDDP = 0x03 /* Currently unused*/ -}; - -enum { - /* constants for use in AFPTagData.fLength field*/ - kAFPTagLengthIP = 0x06, - kAFPTagLengthIPPort = 0x08, - kAFPTagLengthDDP = 0x06 -}; - -struct AFPTagData { - UInt8 fLength; /* length of this data tag including the fLength field */ - UInt8 fType; - UInt8 fData[1]; /* variable length data */ -}; -typedef struct AFPTagData AFPTagData; - -struct AFPAlternateAddress { - UInt8 fAddressCount; - UInt8 fAddressList[1]; /* actually variable length packed set of AFPTagData */ -}; -typedef struct AFPAlternateAddress AFPAlternateAddress; - -#endif - -/*****************************************************************************/ - -/* -** Macros to get information out of GetVolParmsInfoBuffer -*/ - -#define isNetworkVolume(volParms) ((volParms).vMServerAdr != 0) -#define hasLimitFCBs(volParms) (((volParms).vMAttrib & (1L << bLimitFCBs)) != 0) -#define hasLocalWList(volParms) (((volParms).vMAttrib & (1L << bLocalWList)) != 0) -#define hasNoMiniFndr(volParms) (((volParms).vMAttrib & (1L << bNoMiniFndr)) != 0) -#define hasNoVNEdit(volParms) (((volParms).vMAttrib & (1L << bNoVNEdit)) != 0) -#define hasNoLclSync(volParms) (((volParms).vMAttrib & (1L << bNoLclSync)) != 0) -#define hasTrshOffLine(volParms) (((volParms).vMAttrib & (1L << bTrshOffLine)) != 0) -#define hasNoSwitchTo(volParms) (((volParms).vMAttrib & (1L << bNoSwitchTo)) != 0) -#define hasNoDeskItems(volParms) (((volParms).vMAttrib & (1L << bNoDeskItems)) != 0) -#define hasNoBootBlks(volParms) (((volParms).vMAttrib & (1L << bNoBootBlks)) != 0) -#define hasAccessCntl(volParms) (((volParms).vMAttrib & (1L << bAccessCntl)) != 0) -#define hasNoSysDir(volParms) (((volParms).vMAttrib & (1L << bNoSysDir)) != 0) -#define hasExtFSVol(volParms) (((volParms).vMAttrib & (1L << bHasExtFSVol)) != 0) -#define hasOpenDeny(volParms) (((volParms).vMAttrib & (1L << bHasOpenDeny)) != 0) -#define hasCopyFile(volParms) (((volParms).vMAttrib & (1L << bHasCopyFile)) != 0) -#define hasMoveRename(volParms) (((volParms).vMAttrib & (1L << bHasMoveRename)) != 0) -#define hasDesktopMgr(volParms) (((volParms).vMAttrib & (1L << bHasDesktopMgr)) != 0) -#define hasShortName(volParms) (((volParms).vMAttrib & (1L << bHasShortName)) != 0) -#define hasFolderLock(volParms) (((volParms).vMAttrib & (1L << bHasFolderLock)) != 0) -#define hasPersonalAccessPrivileges(volParms) \ - (((volParms).vMAttrib & (1L << bHasPersonalAccessPrivileges)) != 0) -#define hasUserGroupList(volParms) (((volParms).vMAttrib & (1L << bHasUserGroupList)) != 0) -#define hasCatSearch(volParms) (((volParms).vMAttrib & (1L << bHasCatSearch)) != 0) -#define hasFileIDs(volParms) (((volParms).vMAttrib & (1L << bHasFileIDs)) != 0) -#define hasBTreeMgr(volParms) (((volParms).vMAttrib & (1L << bHasBTreeMgr)) != 0) -#define hasBlankAccessPrivileges(volParms) \ - (((volParms).vMAttrib & (1L << bHasBlankAccessPrivileges)) != 0) - -/*****************************************************************************/ - - -/* -** Bit masks and macros to get common information out of ioACUser returned -** by PBGetCatInfo (remember to clear ioACUser before calling PBGetCatInfo -** since some file systems don't bother to set this field). -** -** Use the GetDirAccessRestrictions or FSpGetDirAccessRestrictions -** functions to retrieve the ioACUser access restrictions byte for -** a folder. -** -** Note: The access restriction byte returned by PBGetCatInfo is the -** 2's complement of the user's privileges byte returned in -** ioACAccess by PBHGetDirAccess. -*/ - -enum -{ - /* bits defined in ioACUser */ - acUserNoSeeFoldersMask = 0x01, - acUserNoSeeFilesMask = 0x02, - acUserNoMakeChangesMask = 0x04, - acUserNotOwnerMask = 0x80, - - /* mask for just the access restriction bits */ - acUserAccessMask = 0x07, - - /* common access privilege settings */ - acUserFull = 0x00, /* no access restiction bits on */ - acUserNone = acUserAccessMask, /* all access restiction bits on */ - acUserDropBox = acUserNoSeeFoldersMask + acUserNoSeeFilesMask, /* make changes, but not see files or folders */ - acUserBulletinBoard = acUserNoMakeChangesMask /* see files and folders, but not make changes */ -}; - -/* Macros for testing ioACUser bits */ -#define userIsOwner(ioACUser) \ - (((ioACUser) & acUserNotOwnerMask) == 0) -#define userHasFullAccess(ioACUser) \ - (((ioACUser) & (acUserAccessMask)) == acUserFull) -#define userHasDropBoxAccess(ioACUser) \ - (((ioACUser) & acUserAccessMask) == acUserDropBox) -#define userHasBulletinBoard(ioACUser) \ - (((ioACUser) & acUserAccessMask) == acUserBulletinBoard) -#define userHasNoAccess(ioACUser) \ - (((ioACUser) & acUserAccessMask) == acUserNone) - -/*****************************************************************************/ - -/* -** Deny mode permissions for use with the HOpenAware, HOpenRFAware, -** FSpOpenAware, and FSpOpenRFAware functions. -*/ - -enum -{ - dmNone = 0x0000, - dmNoneDenyRd = 0x0010, - dmNoneDenyWr = 0x0020, - dmNoneDenyRdWr = 0x0030, - dmRd = 0x0001, /* Single writer, multiple readers; the readers */ - dmRdDenyRd = 0x0011, - dmRdDenyWr = 0x0021, /* Browsing - equivalent to fsRdPerm */ - dmRdDenyRdWr = 0x0031, - dmWr = 0x0002, - dmWrDenyRd = 0x0012, - dmWrDenyWr = 0x0022, - dmWrDenyRdWr = 0x0032, - dmRdWr = 0x0003, /* Shared access - equivalent to fsRdWrShPerm */ - dmRdWrDenyRd = 0x0013, - dmRdWrDenyWr = 0x0023, /* Single writer, multiple readers; the writer */ - dmRdWrDenyRdWr = 0x0033 /* Exclusive access - equivalent to fsRdWrPerm */ -}; - -/*****************************************************************************/ - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif - -/* -** For those times where you need to use more than one kind of File Manager parameter -** block but don't feel like wasting stack space, here's a parameter block you can reuse. -*/ - -union UniversalFMPB -{ - ParamBlockRec PB; - CInfoPBRec ciPB; - DTPBRec dtPB; - HParamBlockRec hPB; - CMovePBRec cmPB; - WDPBRec wdPB; - FCBPBRec fcbPB; - XVolumeParam xPB; -}; -typedef union UniversalFMPB UniversalFMPB; -typedef UniversalFMPB *UniversalFMPBPtr, **UniversalFMPBHandle; - - -/* -** Used by GetUGEntries to return user or group lists -*/ - -struct UGEntry -{ - short objType; /* object type: -1 = group; 0 = user */ - long objID; /* the user or group ID */ - Str31 name; /* the user or group name */ -}; -typedef struct UGEntry UGEntry; -typedef UGEntry *UGEntryPtr, **UGEntryHandle; - - -typedef unsigned char Str8[9]; - - -/* -** I use the following records instead of the AFPVolMountInfo and AFPXVolMountInfo structures in Files.h -*/ - -struct MyAFPVolMountInfo -{ - short length; /* length of this record */ - VolumeType media; /* type of media, always AppleShareMediaType */ - short flags; /* 0 = normal mount; set bit 0 to inhibit greeting messages */ - char nbpInterval; /* NBP interval parameter; 7 is a good choice */ - char nbpCount; /* NBP count parameter; 5 is a good choice */ - short uamType; /* User Authentication Method */ - short zoneNameOffset; /* offset from start of record to zoneName */ - short serverNameOffset; /* offset from start of record to serverName */ - short volNameOffset; /* offset from start of record to volName */ - short userNameOffset; /* offset from start of record to userName */ - short userPasswordOffset; /* offset from start of record to userPassword */ - short volPasswordOffset; /* offset from start of record to volPassword */ - Str32 zoneName; /* server's AppleTalk zone name */ - char filler1; /* to word align volPassword */ - Str32 serverName; /* server name */ - char filler2; /* to word align volPassword */ - Str27 volName; /* volume name */ - Str31 userName; /* user name (zero length Pascal string for guest) */ - Str8 userPassword; /* user password (zero length Pascal string if no user password) */ - char filler3; /* to word align volPassword */ - Str8 volPassword; /* volume password (zero length Pascal string if no volume password) */ - char filler4; /* to end record on word boundry */ -}; -typedef struct MyAFPVolMountInfo MyAFPVolMountInfo; -typedef MyAFPVolMountInfo *MyAFPVolMountInfoPtr, **MyAFPVolMountInfoHandle; - -struct MyAFPXVolMountInfo -{ - short length; /* length of this record */ - VolumeType media; /* type of media, always AppleShareMediaType */ - short flags; /* bits for no messages, no reconnect, etc */ - char nbpInterval; /* NBP interval parameter; 7 is a good choice */ - char nbpCount; /* NBP count parameter; 5 is a good choice */ - short uamType; /* User Authentication Method */ - short zoneNameOffset; /* offset from start of record to zoneName */ - short serverNameOffset; /* offset from start of record to serverName */ - short volNameOffset; /* offset from start of record to volName */ - short userNameOffset; /* offset from start of record to userName */ - short userPasswordOffset; /* offset from start of record to userPassword */ - short volPasswordOffset; /* offset from start of record to volPassword */ - short extendedFlags; /* extended flags word */ - short uamNameOffset; /* offset to a pascal UAM name string */ - short alternateAddressOffset; /* offset to Alternate Addresses in tagged format */ - Str32 zoneName; /* server's AppleTalk zone name */ - char filler1; /* to word align volPassword */ - Str32 serverName; /* server name */ - char filler2; /* to word align volPassword */ - Str27 volName; /* volume name */ - Str31 userName; /* user name (zero length Pascal string for guest) */ - Str8 userPassword; /* user password (zero length Pascal string if no user password) */ - char filler3; /* to word align volPassword */ - Str8 volPassword; /* volume password (zero length Pascal string if no volume password) */ - char filler4; /* to word align uamNameOffset */ - Str32 uamName; /* UAM name */ - char filler5; /* to word align alternateAddress */ - char alternateAddress[kVariableLengthArray]; /* AFPAlternateAddress */ -}; -typedef struct MyAFPXVolMountInfo MyAFPXVolMountInfo; -typedef MyAFPXVolMountInfo *MyAFPXVolMountInfoPtr, **MyAFPXVolMountInfoHandle; - -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif - -/*****************************************************************************/ - -pascal void TruncPString(StringPtr destination, - ConstStr255Param source, - short maxLength); -/* ¦ International friendly string truncate routine. - The TruncPString function copies up to maxLength characters from - the source Pascal string to the destination Pascal string. TruncPString - ensures that the truncated string ends on a single-byte character, or on - the last byte of a multi-byte character. - - destination output: destination Pascal string. - source input: source Pascal string. - maxLength output: The maximum allowable length of the destination - string. -*/ - -/*****************************************************************************/ - -pascal Ptr GetTempBuffer(long buffReqSize, - long *buffActSize); -/* ¦ Allocate a temporary copy or search buffer. - The GetTempBuffer function allocates a temporary buffer for file system - operations which is at least 1024 bytes (1K) and a multiple of - 1024 bytes. - - buffReqSize input: Size you'd like the buffer to be. - buffActSize output: Size of buffer allocated. - function result output: Pointer to memory allocated or nil if no memory - was available. The caller is responsible for - disposing of this buffer with DisposePtr. -*/ - -/*****************************************************************************/ - -pascal OSErr GetVolumeInfoNoName(ConstStr255Param pathname, - short vRefNum, - HParmBlkPtr pb); -/* ¦ Call PBHGetVInfoSync ignoring returned name. - GetVolumeInfoNoName uses pathname and vRefNum to call PBHGetVInfoSync - in cases where the returned volume name is not needed by the caller. - The pathname and vRefNum parameters are not touched, and the pb - parameter is initialized by PBHGetVInfoSync except that ioNamePtr in - the parameter block is always returned as NULL (since it might point - to GetVolumeInfoNoName's local variable tempPathname). - - I noticed using this code in several places, so here it is once. - This reduces the code size of MoreFiles. - - pathName input: Pointer to a full pathname or nil. If you pass in a - partial pathname, it is ignored. A full pathname to a - volume must end with a colon character (:). - vRefNum input: Volume specification (volume reference number, working - directory number, drive number, or 0). - pb input: A pointer to HParamBlockRec. - output: The parameter block as filled in by PBHGetVInfoSync - except that ioNamePtr will always be NULL. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume, or pb was NULL -*/ - -/*****************************************************************************/ - -pascal OSErr XGetVolumeInfoNoName(ConstStr255Param pathname, - short vRefNum, - XVolumeParamPtr pb); -/* ¦ Call PBXGetVolInfoSync ignoring returned name. - XGetVolumeInfoNoName uses pathname and vRefNum to call PBXGetVolInfoSync - in cases where the returned volume name is not needed by the caller. - The pathname and vRefNum parameters are not touched, and the pb - parameter is initialized by PBXGetVolInfoSync except that ioNamePtr in - the parameter block is always returned as NULL (since it might point - to XGetVolumeInfoNoName's local variable tempPathname). - - pathName input: Pointer to a full pathname or nil. If you pass in a - partial pathname, it is ignored. A full pathname to a - volume must end with a colon character (:). - vRefNum input: Volume specification (volume reference number, working - directory number, drive number, or 0). - pb input: A pointer to HParamBlockRec. - output: The parameter block as filled in by PBXGetVolInfoSync - except that ioNamePtr will always be NULL. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume, or pb was NULL -*/ - -/*****************************************************************************/ - -pascal OSErr GetCatInfoNoName(short vRefNum, - long dirID, - ConstStr255Param name, - CInfoPBPtr pb); -/* ¦ Call PBGetCatInfoSync ignoring returned name. - GetCatInfoNoName uses vRefNum, dirID and name to call PBGetCatInfoSync - in cases where the returned object is not needed by the caller. - The vRefNum, dirID and name parameters are not touched, and the pb - parameter is initialized by PBGetCatInfoSync except that ioNamePtr in - the parameter block is always returned as NULL (since it might point - to GetCatInfoNoName's local variable tempName). - - I noticed using this code in several places, so here it is once. - This reduces the code size of MoreFiles. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - pb input: A pointer to CInfoPBRec. - output: The parameter block as filled in by - PBGetCatInfoSync except that ioNamePtr will - always be NULL. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - -*/ - -/*****************************************************************************/ - -pascal OSErr DetermineVRefNum(ConstStr255Param pathname, - short vRefNum, - short *realVRefNum); -/* ¦ Determine the real volume reference number. - The DetermineVRefNum function determines the volume reference number of - a volume from a pathname, a volume specification, or a combination - of the two. - WARNING: Volume names on the Macintosh are *not* unique -- Multiple - mounted volumes can have the same name. For this reason, the use of a - volume name or full pathname to identify a specific volume may not - produce the results you expect. If more than one volume has the same - name and a volume name or full pathname is used, the File Manager - currently uses the first volume it finds with a matching name in the - volume queue. - - pathName input: Pointer to a full pathname or nil. If you pass in a - partial pathname, it is ignored. A full pathname to a - volume must end with a colon character (:). - vRefNum input: Volume specification (volume reference number, working - directory number, drive number, or 0). - realVRefNum output: The real volume reference number. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume -*/ - -/*****************************************************************************/ - -pascal OSErr HGetVInfo(short volReference, - StringPtr volName, - short *vRefNum, - unsigned long *freeBytes, - unsigned long *totalBytes); -/* ¦ Get information about a mounted volume. - The HGetVInfo function returns the name, volume reference number, - available space (in bytes), and total space (in bytes) for the - specified volume. You can specify the volume by providing its drive - number, volume reference number, or 0 for the default volume. - This routine is compatible with volumes up to 4 gigabytes. - - volReference input: The drive number, volume reference number, - or 0 for the default volume. - volName input: A pointer to a buffer (minimum Str27) where - the volume name is to be returned or must - be nil. - output: The volume name. - vRefNum output: The volume reference number. - freeBytes output: The number of free bytes on the volume. - freeBytes is an unsigned long value. - totalBytes output: The total number of bytes on the volume. - totalBytes is an unsigned long value. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume - - __________ - - Also see: XGetVInfo -*/ - -/*****************************************************************************/ - -pascal OSErr XGetVInfo(short volReference, - StringPtr volName, - short *vRefNum, - UnsignedWide *freeBytes, - UnsignedWide *totalBytes); -/* ¦ Get extended information about a mounted volume. - The XGetVInfo function returns the name, volume reference number, - available space (in bytes), and total space (in bytes) for the - specified volume. You can specify the volume by providing its drive - number, volume reference number, or 0 for the default volume. - This routine is compatible with volumes up to 2 terabytes. - - volReference input: The drive number, volume reference number, - or 0 for the default volume. - volName input: A pointer to a buffer (minimum Str27) where - the volume name is to be returned or must - be nil. - output: The volume name. - vRefNum output: The volume reference number. - freeBytes output: The number of free bytes on the volume. - freeBytes is an UnsignedWide value. - totalBytes output: The total number of bytes on the volume. - totalBytes is an UnsignedWide value. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume - - __________ - - Also see: HGetVInfo -*/ - -/*****************************************************************************/ - -pascal OSErr CheckVolLock(ConstStr255Param pathname, - short vRefNum); -/* ¦ Determine if a volume is locked. - The CheckVolLock function determines if a volume is locked - either by - hardware or by software. If CheckVolLock returns noErr, then the volume - is not locked. - - pathName input: Pointer to a full pathname or nil. If you pass in a - partial pathname, it is ignored. A full pathname to a - volume must end with a colon character (:). - vRefNum input: Volume specification (volume reference number, working - directory number, drive number, or 0). - - Result Codes - noErr 0 No error - volume not locked - nsvErr -35 No such volume - wPrErr -44 Volume locked by hardware - vLckdErr -46 Volume locked by software - paramErr -50 No default volume -*/ - -/*****************************************************************************/ - -pascal OSErr GetDriverName(short driverRefNum, - Str255 driverName); -/* ¦ Get a device driver's name. - The GetDriverName function returns a device driver's name. - - driverRefNum input: The driver reference number. - driverName output: The driver's name. - - Result Codes - noErr 0 No error - badUnitErr -21 Bad driver reference number -*/ - -/*****************************************************************************/ - -pascal OSErr FindDrive(ConstStr255Param pathname, - short vRefNum, - DrvQElPtr *driveQElementPtr); -/* ¦ Find a volume's drive queue element in the drive queue. - The FindDrive function returns a pointer to a mounted volume's - drive queue element. - - pathName input: Pointer to a full pathname or nil. If you - pass in a partial pathname, it is ignored. - A full pathname to a volume must end with - a colon character (:). - vRefNum input: Volume specification (volume reference - number, working directory number, drive - number, or 0). - driveQElementPtr output: Pointer to a volume's drive queue element - in the drive queue. DO NOT change the - DrvQEl. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume - nsDrvErr -56 No such drive -*/ - -/*****************************************************************************/ - -pascal OSErr GetDiskBlocks(ConstStr255Param pathname, - short vRefNum, - unsigned long *numBlocks); -/* ¦ Return the number of physical disk blocks on a disk drive. - The GetDiskBlocks function returns the number of physical disk - blocks on a disk drive. NOTE: This is not the same as volume - allocation blocks! - - pathName input: Pointer to a full pathname or nil. If you - pass in a partial pathname, it is ignored. - A full pathname to a volume must end with - a colon character (:). - vRefNum input: Volume specification (volume reference - number, working directory number, drive - number, or 0). - numBlocks output: The number of physical disk blocks on the disk drive. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume, driver reference - number is zero, ReturnFormatList - returned zero blocks, DriveStatus - returned an unknown value, or - driveQElementPtr->qType is unknown - nsDrvErr -56 No such drive - statusErr Ð18 Driver does not respond to this - status request - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies - a nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open -*/ - -/*****************************************************************************/ - -pascal OSErr GetVolFileSystemID(ConstStr255Param pathname, - short vRefNum, - short *fileSystemID); -/* ¦ Get a volume's file system ID. - The GetVolFileSystemID function returned the file system ID of - a mounted volume. The file system ID identifies the file system - that handles requests to a particular volume. Here's a partial list - of file system ID numbers (only Apple's file systems are listed): - FSID File System - ----- ----------------------------------------------------- - $0000 Macintosh HFS or MFS - $0100 ProDOS File System - $0101 PowerTalk Mail Enclosures - $4147 ISO 9660 File Access (through Foreign File Access) - $4242 High Sierra File Access (through Foreign File Access) - $464D QuickTake File System (through Foreign File Access) - $4953 Macintosh PC Exchange (MS-DOS) - $4A48 Audio CD Access (through Foreign File Access) - $4D4B Apple Photo Access (through Foreign File Access) - - See the Technical Note "FL 35 - Determining Which File System - Is Active" and the "Guide to the File System Manager" for more - information. - - pathName input: Pointer to a full pathname or nil. If you pass - in a partial pathname, it is ignored. A full - pathname to a volume must contain at least - one colon character (:) and must not start with - a colon character. - vRefNum input: Volume specification (volume reference number, - working directory number, drive number, or 0). - fileSystemID output: The volume's file system ID. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume, or pb was NULL -*/ - -/*****************************************************************************/ - -pascal OSErr GetVolState(ConstStr255Param pathname, - short vRefNum, - Boolean *volumeOnline, - Boolean *volumeEjected, - Boolean *driveEjectable, - Boolean *driverWantsEject); -/* ¦ Returns a volume's online and eject information. - The GetVolState function determines if a volume is online or offline, - if an offline volume is ejected, and if the volume's driver is - ejectable or wants eject calls. - - pathName input: Pointer to a full pathname or nil. - vRefNum input: Volume specification (volume reference number, - working directory number, drive number, or 0). - volumeOnline output: True if the volume is online; - False if the volume is offline. - volumeEjected output: True if the volume is ejected (ejected - volumes are always offline); False if the - volume is not ejected. - driveEjectable output: True if the volume's drive is ejectable; - False if the volume's drive is not ejectable. - driverWantsEject output: True if the volume's driver wants an Eject - request after unmount (even if the drive - is not ejectable); False if the volume's - driver does not need an eject request. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - paramErr -50 No default volume, or pb was NULL -*/ - -/*****************************************************************************/ - -pascal OSErr UnmountAndEject(ConstStr255Param pathname, - short vRefNum); -/* ¦ Unmount and eject a volume. - The UnmountAndEject function unmounts and ejects a volume. The volume - is ejected only if it is ejectable and not already ejected. - - pathName input: Pointer to a full pathname or nil. If you pass in a - partial pathname, it is ignored. A full pathname to a - volume must end with a colon character (:). - vRefNum input: Volume specification (volume reference number, working - directory number, drive number, or 0). - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad volume name - fBsyErr -47 One or more files are open - paramErr -50 No default volume - nsDrvErr -56 No such drive - extFSErr -58 External file system error - no file - system claimed this call. -*/ - -/*****************************************************************************/ - -pascal OSErr OnLine(FSSpecPtr volumes, - short reqVolCount, - short *actVolCount, - short *volIndex); -/* ¦ Return the list of volumes currently mounted. - The OnLine function returns the list of volumes currently mounted in - an array of FSSpec records. - - A noErr result indicates that the volumes array was filled - (actVolCount == reqVolCount) and there may be additional volumes - mounted. A nsvErr result indicates that the end of the volume list - was found and actVolCount volumes were actually found this time. - - volumes input: Pointer to array of FSSpec where the volume list - is returned. - reqVolCount input: Maximum number of volumes to return (the number of - elements in the volumes array). - actVolCount output: The number of volumes actually returned. - volIndex input: The current volume index position. Set to 1 to - start with the first volume. - output: The volume index position to get the next volume. - Pass this value the next time you call OnLine to - start where you left off. - - Result Codes - noErr 0 No error, but there are more volumes - to list - nsvErr -35 No more volumes to be listed - paramErr -50 volIndex was <= 0 -*/ - -/*****************************************************************************/ - -pascal OSErr SetDefault(short newVRefNum, - long newDirID, - short *oldVRefNum, - long *oldDirID); -/* ¦ Set the default volume before making Standard I/O requests. - The SetDefault function sets the default volume and directory to the - volume specified by newVRefNum and the directory specified by newDirID. - The current default volume reference number and directory ID are - returned in oldVRefNum and oldDir and must be used to restore the - default volume and directory to their previous state *as soon as - possible* with the RestoreDefault function. These two functions are - designed to be used as a wrapper around Standard I/O routines where - the location of the file is implied to be the default volume and - directory. In other words, this is how you should use these functions: - - error = SetDefault(newVRefNum, newDirID, &oldVRefNum, &oldDirID); - if ( error == noErr ) - { - // call the Stdio functions like remove, rename, tmpfile, - // fopen, freopen, etc. or non-ANSI extensions like - // fdopen,fsetfileinfo, -- create, open, unlink, etc. here! - - error = RestoreDefault(oldVRefNum, oldDirID); - } - - By using these functions as a wrapper, you won't need to open a working - directory (because SetDefault and RestoreDefault use HSetVol) and you - won't have to worry about the effects of using HSetVol (documented in - Technical Note "FL 11 - PBHSetVol is Dangerous" and in the - Inside Macintosh: Files book in the description of the HSetVol and - PBHSetVol functions) because the default volume/directory is restored - before giving up control to code that might be affected by HSetVol. - - newVRefNum input: Volume specification (volume reference number, - working directory number, drive number, or 0) of - the new default volume. - newDirID input: Directory ID of the new default directory. - oldVRefNum output: The volume specification to save for use with - RestoreDefault. - oldDirID output: The directory ID to save for use with - RestoreDefault. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - bdNamErr -37 Bad volume name - fnfErr -43 Directory not found - paramErr -50 No default volume - afpAccessDenied -5000 User does not have access to the directory - - __________ - - Also see: RestoreDefault -*/ - -/*****************************************************************************/ - -pascal OSErr RestoreDefault(short oldVRefNum, - long oldDirID); -/* ¦ Restore the default volume after making Standard C I/O requests. - The RestoreDefault function restores the default volume and directory - to the volume specified by oldVRefNum and the directory specified by - oldDirID. The oldVRefNum and oldDirID parameters were previously - obtained from the SetDefault function. These two functions are designed - to be used as a wrapper around Standard C I/O routines where the - location of the file is implied to be the default volume and directory. - In other words, this is how you should use these functions: - - error = SetDefault(newVRefNum, newDirID, &oldVRefNum, &oldDirID); - if ( error == noErr ) - { - // call the Stdio functions like remove, rename, tmpfile, - // fopen, freopen, etc. or non-ANSI extensions like - // fdopen,fsetfileinfo, -- create, open, unlink, etc. here! - - error = RestoreDefault(oldVRefNum, oldDirID); - } - - By using these functions as a wrapper, you won't need to open a working - directory (because SetDefault and RestoreDefault use HSetVol) and you - won't have to worry about the effects of using HSetVol (documented in - Technical Note "FL 11 - PBHSetVol is Dangerous" and in the - Inside Macintosh: Files book in the description of the HSetVol and - PBHSetVol functions) because the default volume/directory is restored - before giving up control to code that might be affected by HSetVol. - - oldVRefNum input: The volume specification to restore. - oldDirID input: The directory ID to restore. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - bdNamErr -37 Bad volume name - fnfErr -43 Directory not found - paramErr -50 No default volume - rfNumErr -51 Bad working directory reference number - afpAccessDenied -5000 User does not have access to the directory - - __________ - - Also see: SetDefault -*/ - -/*****************************************************************************/ - -pascal OSErr GetDInfo(short vRefNum, - long dirID, - ConstStr255Param name, - DInfo *fndrInfo); -/* ¦ Get the finder information for a directory. - The GetDInfo function gets the finder information for a directory. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - fndrInfo output: If the object is a directory, then its DInfo. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: FSpGetDInfo, FSpGetFInfoCompat -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetDInfo(const FSSpec *spec, - DInfo *fndrInfo); -/* ¦ Get the finder information for a directory. - The FSpGetDInfo function gets the finder information for a directory. - - spec input: An FSSpec record specifying the directory. - fndrInfo output: If the object is a directory, then its DInfo. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: FSpGetFInfoCompat, GetDInfo -*/ - -/*****************************************************************************/ - -pascal OSErr SetDInfo(short vRefNum, - long dirID, - ConstStr255Param name, - const DInfo *fndrInfo); -/* ¦ Set the finder information for a directory. - The SetDInfo function sets the finder information for a directory. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - fndrInfo input: The DInfo. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: FSpSetDInfo, FSpSetFInfoCompat -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetDInfo(const FSSpec *spec, - const DInfo *fndrInfo); -/* ¦ Set the finder information for a directory. - The FSpSetDInfo function sets the finder information for a directory. - - spec input: An FSSpec record specifying the directory. - fndrInfo input: The DInfo. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: FSpSetFInfoCompat, SetDInfo -*/ - -/*****************************************************************************/ - -#if OLDROUTINENAMES -#define GetDirID(vRefNum, dirID, name, theDirID, isDirectory) \ - GetDirectoryID(vRefNum, dirID, name, theDirID, isDirectory) -#endif - -pascal OSErr GetDirectoryID(short vRefNum, - long dirID, - ConstStr255Param name, - long *theDirID, - Boolean *isDirectory); -/* ¦ Get the directory ID number of the directory specified. - The GetDirectoryID function gets the directory ID number of the - directory specified. If a file is specified, then the parent - directory of the file is returned and isDirectory is false. If - a directory is specified, then that directory's ID number is - returned and isDirectory is true. - WARNING: Volume names on the Macintosh are *not* unique -- Multiple - mounted volumes can have the same name. For this reason, the use of a - volume name or full pathname to identify a specific volume may not - produce the results you expect. If more than one volume has the same - name and a volume name or full pathname is used, the File Manager - currently uses the first volume it finds with a matching name in the - volume queue. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - theDirID output: If the object is a file, then its parent directory - ID. If the object is a directory, then its ID. - isDirectory output: True if object is a directory; false if - object is a file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -#if OLDROUTINENAMES -#define DirIDFromFSSpec(spec, theDirID, isDirectory) \ - FSpGetDirectoryID(spec, theDirID, isDirectory) -#endif - -pascal OSErr FSpGetDirectoryID(const FSSpec *spec, - long *theDirID, - Boolean *isDirectory); -/* ¦ Get the directory ID number of a directory. - The FSpGetDirectoryID function gets the directory ID number of the - directory specified by spec. If spec is to a file, then the parent - directory of the file is returned and isDirectory is false. If - spec is to a directory, then that directory's ID number is - returned and isDirectory is true. - - spec input: An FSSpec record specifying the directory. - theDirID output: The directory ID. - isDirectory output: True if object is a directory; false if - object is a file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -pascal OSErr GetDirName(short vRefNum, - long dirID, - Str31 name); -/* ¦ Get the name of a directory from its directory ID. - The GetDirName function gets the name of a directory from its - directory ID. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name output: Points to a Str31 where the directory name is to be - returned. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume or - name parameter was NULL - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -pascal OSErr GetIOACUser(short vRefNum, - long dirID, - ConstStr255Param name, - SInt8 *ioACUser); -/* ¦ Get a directory's access restrictions byte. - GetIOACUser returns a directory's access restrictions byte. - Use the masks and macro defined in MoreFilesExtras to check for - specific access priviledges. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - ioACUser output: The access restriction byte - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetIOACUser(const FSSpec *spec, - SInt8 *ioACUser); -/* ¦ Get a directory's access restrictions byte. - FSpGetIOACUser returns a directory's access restrictions byte. - Use the masks and macro defined in MoreFilesExtras to check for - specific access priviledges. - - spec input: An FSSpec record specifying the directory. - ioACUser output: The access restriction byte - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -pascal OSErr GetParentID(short vRefNum, - long dirID, - ConstStr255Param name, - long *parID); -/* ¦ Get the parent directory ID number of the specified object. - The GetParentID function gets the parent directory ID number of the - specified object. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - parID output: The parent directory ID of the specified object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -pascal OSErr GetFilenameFromPathname(ConstStr255Param pathname, - Str255 filename); -/* ¦ Get the object name from the end of a full or partial pathname. - The GetFilenameFromPathname function gets the file (or directory) name - from the end of a full or partial pathname. Returns notAFileErr if the - pathname is nil, the pathname is empty, or the pathname cannot refer to - a filename (with a noErr result, the pathname could still refer to a - directory). - - pathname input: A full or partial pathname. - filename output: The file (or directory) name. - - Result Codes - noErr 0 No error - notAFileErr -1302 The pathname is nil, the pathname - is empty, or the pathname cannot refer - to a filename - - __________ - - See also: GetObjectLocation. -*/ - -/*****************************************************************************/ - -pascal OSErr GetObjectLocation(short vRefNum, - long dirID, - ConstStr255Param pathname, - short *realVRefNum, - long *realParID, - Str255 realName, - Boolean *isDirectory); -/* ¦ Get a file system object's location. - The GetObjectLocation function gets a file system object's location - - that is, its real volume reference number, real parent directory ID, - and name. While we're at it, determine if the object is a file or directory. - If GetObjectLocation returns fnfErr, then the location information - returned is valid, but it describes an object that doesn't exist. - You can use the location information for another operation, such as - creating a file or directory. - - vRefNum input: Volume specification. - dirID input: Directory ID. - pathname input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - realVRefNum output: The real volume reference number. - realParID output: The parent directory ID of the specified object. - realName output: The name of the specified object (the case of the - object name may not be the same as the object's - catalog entry on disk - since the Macintosh file - system is not case sensitive, it shouldn't matter). - isDirectory output: True if object is a directory; false if object - is a file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - notAFileErr -1302 The pathname is nil, the pathname - is empty, or the pathname cannot refer - to a filename - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSMakeFSSpecCompat -*/ - -/*****************************************************************************/ - -pascal OSErr GetDirItems(short vRefNum, - long dirID, - ConstStr255Param name, - Boolean getFiles, - Boolean getDirectories, - FSSpecPtr items, - short reqItemCount, - short *actItemCount, - short *itemIndex); -/* ¦ Return a list of items in a directory. - The GetDirItems function returns a list of items in the specified - directory in an array of FSSpec records. File, subdirectories, or - both can be returned in the list. - - A noErr result indicates that the items array was filled - (actItemCount == reqItemCount) and there may be additional items - left in the directory. A fnfErr result indicates that the end of - the directory list was found and actItemCount items were actually - found this time. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - getFiles input: Pass true to have files added to the items list. - getDirectories input: Pass true to have directories added to the - items list. - items input: Pointer to array of FSSpec where the item list - is returned. - reqItemCount input: Maximum number of items to return (the number - of elements in the items array). - actItemCount output: The number of items actually returned. - itemIndex input: The current item index position. Set to 1 to - start with the first item in the directory. - output: The item index position to get the next item. - Pass this value the next time you call - GetDirItems to start where you left off. - - Result Codes - noErr 0 No error, but there are more items - to list - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found, there are no more items - to be listed. - paramErr -50 No default volume or itemIndex was <= 0 - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname -*/ - -/*****************************************************************************/ - -pascal OSErr DeleteDirectoryContents(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Delete the contents of a directory. - The DeleteDirectoryContents function deletes the contents of a directory. - All files and subdirectories in the specified directory are deleted. - If a locked file or directory is encountered, it is unlocked and then - deleted. If any unexpected errors are encountered, - DeleteDirectoryContents quits and returns to the caller. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to directory name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - fBsyErr -47 File busy, directory not empty, or working directory control block open - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: DeleteDirectory -*/ - -/*****************************************************************************/ - -pascal OSErr DeleteDirectory(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Delete a directory and its contents. - The DeleteDirectory function deletes a directory and its contents. - All files and subdirectories in the specified directory are deleted. - If a locked file or directory is encountered, it is unlocked and then - deleted. After deleting the directories contents, the directory is - deleted. If any unexpected errors are encountered, DeleteDirectory - quits and returns to the caller. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to directory name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - fBsyErr -47 File busy, directory not empty, or working directory control block open - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: DeleteDirectoryContents -*/ - -/*****************************************************************************/ - -pascal OSErr CheckObjectLock(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Determine if a file or directory is locked. - The CheckObjectLock function determines if a file or directory is locked. - If CheckObjectLock returns noErr, then the file or directory - is not locked. If CheckObjectLock returns fLckdErr, the it is locked. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: FSpCheckObjectLock -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCheckObjectLock(const FSSpec *spec); -/* ¦ Determine if a file or directory is locked. - The FSpCheckObjectLock function determines if a file or directory is locked. - If FSpCheckObjectLock returns noErr, then the file or directory - is not locked. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - Also see: CheckObjectLock -*/ - -/*****************************************************************************/ - -pascal OSErr GetFileSize(short vRefNum, - long dirID, - ConstStr255Param fileName, - long *dataSize, - long *rsrcSize); -/* ¦ Get the logical sizes of a file's forks. - The GetFileSize function returns the logical size of a file's - data and resource fork. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: The name of the file. - dataSize output: The number of bytes in the file's data fork. - rsrcSize output: The number of bytes in the file's resource fork. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpGetFileSize -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetFileSize(const FSSpec *spec, - long *dataSize, - long *rsrcSize); -/* ¦ Get the logical sizes of a file's forks. - The FSpGetFileSize function returns the logical size of a file's - data and resource fork. - - spec input: An FSSpec record specifying the file. - dataSize output: The number of bytes in the file's data fork. - rsrcSize output: The number of bytes in the file's resource fork. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - paramErr -50 No default volume - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: GetFileSize -*/ - -/*****************************************************************************/ - -pascal OSErr BumpDate(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Update the modification date of a file or directory. - The BumpDate function changes the modification date of a file or - directory to the current date/time. If the modification date is already - equal to the current date/time, then add one second to the - modification date. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpBumpDate -*/ - -/*****************************************************************************/ - -pascal OSErr FSpBumpDate(const FSSpec *spec); -/* ¦ Update the modification date of a file or directory. - The FSpBumpDate function changes the modification date of a file or - directory to the current date/time. If the modification date is already - equal to the current date/time, then add one second to the - modification date. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: BumpDate -*/ - -/*****************************************************************************/ - -pascal OSErr ChangeCreatorType(short vRefNum, - long dirID, - ConstStr255Param name, - OSType creator, - OSType fileType); -/* ¦ Change the creator or file type of a file. - The ChangeCreatorType function changes the creator or file type of a file. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: The name of the file. - creator input: The new creator type or 0x00000000 to leave - the creator type alone. - fileType input: The new file type or 0x00000000 to leave the - file type alone. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - notAFileErr -1302 Name was not a file - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpChangeCreatorType -*/ - -/*****************************************************************************/ - -pascal OSErr FSpChangeCreatorType(const FSSpec *spec, - OSType creator, - OSType fileType); -/* ¦ Change the creator or file type of a file. - The FSpChangeCreatorType function changes the creator or file type of a file. - - spec input: An FSSpec record specifying the file. - creator input: The new creator type or 0x00000000 to leave - the creator type alone. - fileType input: The new file type or 0x00000000 to leave the - file type alone. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - notAFileErr -1302 Name was not a file - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: ChangeCreatorType -*/ - -/*****************************************************************************/ - -pascal OSErr ChangeFDFlags(short vRefNum, - long dirID, - ConstStr255Param name, - Boolean setBits, - unsigned short flagBits); -/* ¦ Set or clear Finder Flag bits. - The ChangeFDFlags function sets or clears Finder Flag bits in the - fdFlags field of a file or directory's FInfo record. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - setBits input: If true, then set the bits specified in flagBits. - If false, then clear the bits specified in flagBits. - flagBits input: The flagBits parameter specifies which Finder Flag - bits to set or clear. If a bit in flagBits is set, - then the same bit in fdFlags is either set or - cleared depending on the state of the setBits - parameter. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpChangeFDFlags -*/ - -/*****************************************************************************/ - -pascal OSErr FSpChangeFDFlags(const FSSpec *spec, - Boolean setBits, - unsigned short flagBits); -/* ¦ Set or clear Finder Flag bits. - The FSpChangeFDFlags function sets or clears Finder Flag bits in the - fdFlags field of a file or directory's FInfo record. - - spec input: An FSSpec record specifying the object. - setBits input: If true, then set the bits specified in flagBits. - If false, then clear the bits specified in flagBits. - flagBits input: The flagBits parameter specifies which Finder Flag - bits to set or clear. If a bit in flagBits is set, - then the same bit in fdFlags is either set or - cleared depending on the state of the setBits - parameter. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: ChangeFDFlags -*/ - -/*****************************************************************************/ - -pascal OSErr SetIsInvisible(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Set the invisible Finder Flag bit. - The SetIsInvisible function sets the invisible bit in the fdFlags - word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpSetIsInvisible, ClearIsInvisible, FSpClearIsInvisible -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetIsInvisible(const FSSpec *spec); -/* ¦ Set the invisible Finder Flag bit. - The FSpSetIsInvisible function sets the invisible bit in the fdFlags - word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetIsInvisible, ClearIsInvisible, FSpClearIsInvisible -*/ - -/*****************************************************************************/ - -pascal OSErr ClearIsInvisible(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Clear the invisible Finder Flag bit. - The ClearIsInvisible function clears the invisible bit in the fdFlags - word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetIsInvisible, FSpSetIsInvisible, FSpClearIsInvisible -*/ - -/*****************************************************************************/ - -pascal OSErr FSpClearIsInvisible(const FSSpec *spec); -/* ¦ Clear the invisible Finder Flag bit. - The FSpClearIsInvisible function clears the invisible bit in the fdFlags - word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetIsInvisible, FSpSetIsInvisible, ClearIsInvisible -*/ - -/*****************************************************************************/ - -pascal OSErr SetNameLocked(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Set the nameLocked Finder Flag bit. - The SetNameLocked function sets the nameLocked bit in the fdFlags word - of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpSetNameLocked, ClearNameLocked, FSpClearNameLocked -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetNameLocked(const FSSpec *spec); -/* ¦ Set the nameLocked Finder Flag bit. - The FSpSetNameLocked function sets the nameLocked bit in the fdFlags word - of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetNameLocked, ClearNameLocked, FSpClearNameLocked -*/ - -/*****************************************************************************/ - -pascal OSErr ClearNameLocked(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Clear the nameLocked Finder Flag bit. - The ClearNameLocked function clears the nameLocked bit in the fdFlags - word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetNameLocked, FSpSetNameLocked, FSpClearNameLocked -*/ - -/*****************************************************************************/ - -pascal OSErr FSpClearNameLocked(const FSSpec *spec); -/* ¦ Clear the nameLocked Finder Flag bit. - The FSpClearNameLocked function clears the nameLocked bit in the fdFlags - word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetNameLocked, FSpSetNameLocked, ClearNameLocked -*/ - -/*****************************************************************************/ - -pascal OSErr SetIsStationery(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Set the isStationery Finder Flag bit. - The SetIsStationery function sets the isStationery bit in the - fdFlags word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpSetIsStationery, ClearIsStationery, FSpClearIsStationery -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetIsStationery(const FSSpec *spec); -/* ¦ Set the isStationery Finder Flag bit. - The FSpSetIsStationery function sets the isStationery bit in the - fdFlags word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetIsStationery, ClearIsStationery, FSpClearIsStationery -*/ - -/*****************************************************************************/ - -pascal OSErr ClearIsStationery(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Clear the isStationery Finder Flag bit. - The ClearIsStationery function clears the isStationery bit in the - fdFlags word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetIsStationery, FSpSetIsStationery, FSpClearIsStationery -*/ - -/*****************************************************************************/ - -pascal OSErr FSpClearIsStationery(const FSSpec *spec); -/* ¦ Clear the isStationery Finder Flag bit. - The FSpClearIsStationery function clears the isStationery bit in the - fdFlags word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetIsStationery, FSpSetIsStationery, ClearIsStationery -*/ - -/*****************************************************************************/ - -pascal OSErr SetHasCustomIcon(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Set the hasCustomIcon Finder Flag bit. - The SetHasCustomIcon function sets the hasCustomIcon bit in the - fdFlags word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpSetHasCustomIcon, ClearHasCustomIcon, FSpClearHasCustomIcon -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetHasCustomIcon(const FSSpec *spec); -/* ¦ Set the hasCustomIcon Finder Flag bit. - The FSpSetHasCustomIcon function sets the hasCustomIcon bit in the - fdFlags word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetHasCustomIcon, ClearHasCustomIcon, FSpClearHasCustomIcon -*/ - -/*****************************************************************************/ - -pascal OSErr ClearHasCustomIcon(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Clear the hasCustomIcon Finder Flag bit. - The ClearHasCustomIcon function clears the hasCustomIcon bit in the - fdFlags word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetHasCustomIcon, FSpSetHasCustomIcon, FSpClearHasCustomIcon -*/ - -/*****************************************************************************/ - -pascal OSErr FSpClearHasCustomIcon(const FSSpec *spec); -/* ¦ Clear the hasCustomIcon Finder Flag bit. - The FSpClearHasCustomIcon function clears the hasCustomIcon bit in the - fdFlags word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: SetHasCustomIcon, FSpSetHasCustomIcon, ClearHasCustomIcon -*/ - -/*****************************************************************************/ - -pascal OSErr ClearHasBeenInited(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Clear the hasBeenInited Finder Flag bit. - The ClearHasBeenInited function clears the hasBeenInited bit in the - fdFlags word of the specified file or directory's finder information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID specifies - a directory that's the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpClearHasBeenInited -*/ - -/*****************************************************************************/ - -pascal OSErr FSpClearHasBeenInited(const FSSpec *spec); -/* ¦ Clear the hasBeenInited Finder Flag bit. - The FSpClearHasBeenInited function clears the hasBeenInited bit in the - fdFlags word of the specified file or directory's finder information. - - spec input: An FSSpec record specifying the object. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: ClearHasBeenInited -*/ - -/*****************************************************************************/ - -pascal OSErr CopyFileMgrAttributes(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName, - Boolean copyLockBit); -/* ¦ Copy all File Manager attributes from the source to the destination. - The CopyFileMgrAttributes function copies all File Manager attributes - from the source file or directory to the destination file or directory. - If copyLockBit is true, then set the locked state of the destination - to match the source. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Pointer to source object name, or nil when - srcDirID specifies a directory that's the object. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstName input: Pointer to destination object name, or nil when - dstDirID specifies a directory that's the object. - copyLockBit input: If true, set the locked state of the destination - to match the source. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: FSpCopyFileMgrAttributes -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCopyFileMgrAttributes(const FSSpec *srcSpec, - const FSSpec *dstSpec, - Boolean copyLockBit); -/* ¦ Copy all File Manager attributes from the source to the destination. - The FSpCopyFileMgrAttributes function copies all File Manager attributes - from the source file or directory to the destination file or directory. - If copyLockBit is true, then set the locked state of the destination - to match the source. - - srcSpec input: An FSSpec record specifying the source object. - dstSpec input: An FSSpec record specifying the destination object. - copyLockBit input: If true, set the locked state of the destination - to match the source. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 No default volume - dirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Directory not found or incomplete pathname - - __________ - - See also: CopyFileMgrAttributes -*/ - -/*****************************************************************************/ - -pascal OSErr HOpenAware(short vRefNum, - long dirID, - ConstStr255Param fileName, - short denyModes, - short *refNum); -/* ¦ Open the data fork of a file using deny mode permissions. - The HOpenAware function opens the data fork of a file using deny mode - permissions instead the normal File Manager permissions. If OpenDeny - is not available, then HOpenAware translates the deny modes to the - closest File Manager permissions and tries to open the file with - OpenDF first, and then Open if OpenDF isn't available. By using - HOpenAware with deny mode permissions, a program can be "AppleShare - aware" and fall back on the standard File Manager open calls - automatically. - - vRefNum input: Volume specification. - dirID input: Directory ID. - fileName input: The name of the file. - denyModes input: The deny modes access under which to open the file. - refNum output: The file reference number of the opened file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - tmfoErr -42 Too many files open - fnfErr -43 File not found - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - opWrErr -49 File already open for writing - paramErr -50 No default volume - permErr -54 File is already open and cannot be opened using specified deny modes - afpAccessDenied -5000 User does not have the correct access to the file - afpDenyConflict -5006 Requested access permission not possible - - __________ - - See also: FSpOpenAware, HOpenRFAware, FSpOpenRFAware -*/ - -/*****************************************************************************/ - -pascal OSErr FSpOpenAware(const FSSpec *spec, - short denyModes, - short *refNum); -/* ¦ Open the data fork of a file using deny mode permissions. - The FSpOpenAware function opens the data fork of a file using deny mode - permissions instead the normal File Manager permissions. If OpenDeny - is not available, then FSpOpenAware translates the deny modes to the - closest File Manager permissions and tries to open the file with - OpenDF first, and then Open if OpenDF isn't available. By using - FSpOpenAware with deny mode permissions, a program can be "AppleShare - aware" and fall back on the standard File Manager open calls - automatically. - - spec input: An FSSpec record specifying the file. - denyModes input: The deny modes access under which to open the file. - refNum output: The file reference number of the opened file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - tmfoErr -42 Too many files open - fnfErr -43 File not found - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - opWrErr -49 File already open for writing - paramErr -50 No default volume - permErr -54 File is already open and cannot be opened using specified deny modes - afpAccessDenied -5000 User does not have the correct access to the file - afpDenyConflict -5006 Requested access permission not possible - - __________ - - See also: HOpenAware, HOpenRFAware, FSpOpenRFAware -*/ - -/*****************************************************************************/ - -pascal OSErr HOpenRFAware(short vRefNum, - long dirID, - ConstStr255Param fileName, - short denyModes, - short *refNum); -/* ¦ Open the resource fork of a file using deny mode permissions. - The HOpenRFAware function opens the resource fork of a file using deny - mode permissions instead the normal File Manager permissions. If - OpenRFDeny is not available, then HOpenRFAware translates the deny - modes to the closest File Manager permissions and tries to open the - file with OpenRF. By using HOpenRFAware with deny mode permissions, - a program can be "AppleShare aware" and fall back on the standard - File Manager open calls automatically. - - vRefNum input: Volume specification. - dirID input: Directory ID. - fileName input: The name of the file. - denyModes input: The deny modes access under which to open the file. - refNum output: The file reference number of the opened file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - tmfoErr -42 Too many files open - fnfErr -43 File not found - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - opWrErr -49 File already open for writing - paramErr -50 No default volume - permErr -54 File is already open and cannot be opened using specified deny modes - afpAccessDenied -5000 User does not have the correct access to the file - afpDenyConflict -5006 Requested access permission not possible - - __________ - - See also: HOpenAware, FSpOpenAware, FSpOpenRFAware -*/ - -/*****************************************************************************/ - -pascal OSErr FSpOpenRFAware(const FSSpec *spec, - short denyModes, - short *refNum); -/* ¦ Open the resource fork of a file using deny mode permissions. - The FSpOpenRFAware function opens the resource fork of a file using deny - mode permissions instead the normal File Manager permissions. If - OpenRFDeny is not available, then FSpOpenRFAware translates the deny - modes to the closest File Manager permissions and tries to open the - file with OpenRF. By using FSpOpenRFAware with deny mode permissions, - a program can be "AppleShare aware" and fall back on the standard - File Manager open calls automatically. - - spec input: An FSSpec record specifying the file. - denyModes input: The deny modes access under which to open the file. - refNum output: The file reference number of the opened file. - - Result Codes - noErr 0 No error - nsvErr -35 No such volume - tmfoErr -42 Too many files open - fnfErr -43 File not found - wPrErr -44 Volume locked by hardware - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - opWrErr -49 File already open for writing - paramErr -50 No default volume - permErr -54 File is already open and cannot be opened using specified deny modes - afpAccessDenied -5000 User does not have the correct access to the file - afpDenyConflict -5006 Requested access permission not possible - - __________ - - See also: HOpenAware, FSpOpenAware, HOpenRFAware -*/ - -/*****************************************************************************/ - -pascal OSErr FSReadNoCache(short refNum, - long *count, - void *buffPtr); -/* ¦ Read any number of bytes from an open file requesting no caching. - The FSReadNoCache function reads any number of bytes from an open file - while asking the file system to bypass its cache mechanism. - - refNum input: The file reference number of an open file. - count input: The number of bytes to read. - output: The number of bytes actually read. - buffPtr input: A pointer to the data buffer into which the bytes are - to be read. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - ioErr Ð36 Data does not match in read-verify mode - fnOpnErr -38 File not open - rfNumErr -51 Bad reference number - afpAccessDenied -5000 User does not have the correct access to - the file - - __________ - - See also: FSWriteNoCache -*/ - -/*****************************************************************************/ - -pascal OSErr FSWriteNoCache(short refNum, - long *count, - const void *buffPtr); -/* ¦ Write any number of bytes to an open file requesting no caching. - The FSReadNoCache function writes any number of bytes to an open file - while asking the file system to bypass its cache mechanism. - - refNum input: The file reference number of an open file. - count input: The number of bytes to write to the file. - output: The number of bytes actually written. - buffPtr input: A pointer to the data buffer from which the bytes are - to be written. - - Result Codes - noErr 0 No error - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Disk full - ioErr Ð36 Data does not match in read-verify mode - fnOpnErr -38 File not open - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - rfNumErr -51 Bad reference number - wrPermErr -61 Read/write permission doesnÕt - allow writing - afpAccessDenied -5000 User does not have the correct access to - the file - - __________ - - See also: FSReadNoCache -*/ - -/*****************************************************************************/ - -pascal OSErr FSWriteVerify(short refNum, - long *count, - const void *buffPtr); -/* ¦ Write any number of bytes to an open file and then verify the data was written. - The FSWriteVerify function writes any number of bytes to an open file - and then verifies that the data was actually written to the device. - - refNum input: The file reference number of an open file. - count input: The number of bytes to write to the file. - output: The number of bytes actually written and verified. - buffPtr input: A pointer to the data buffer from which the bytes are - to be written. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Disk full - ioErr Ð36 Data does not match in read-verify mode - fnOpnErr -38 File not open - eofErr -39 Logical end-of-file reached - posErr -40 Attempt to position mark before start - of file - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - rfNumErr -51 Bad reference number - gfpErr -52 Error during GetFPos - wrPermErr -61 Read/write permission doesnÕt - allow writing - memFullErr -108 Not enough room in heap zone to allocate - verify buffer - afpAccessDenied -5000 User does not have the correct access to - the file -*/ - -/*****************************************************************************/ - -pascal OSErr CopyFork(short srcRefNum, - short dstRefNum, - void *copyBufferPtr, - long copyBufferSize); -/* ¦ Copy all data from the source fork to the destination fork of open file forks. - The CopyFork function copies all data from the source fork to the - destination fork of open file forks and makes sure the destination EOF - is equal to the source EOF. - - srcRefNum input: The source file reference number. - dstRefNum input: The destination file reference number. - copyBufferPtr input: Pointer to buffer to use during copy. The - buffer should be at least 512-bytes minimum. - The larger the buffer, the faster the copy. - copyBufferSize input: The size of the copy buffer. - - Result Codes - noErr 0 No error - readErr Ð19 Driver does not respond to read requests - writErr Ð20 Driver does not respond to write requests - badUnitErr Ð21 Driver reference number does not - match unit table - unitEmptyErr Ð22 Driver reference number specifies a - nil handle in unit table - abortErr Ð27 Request aborted by KillIO - notOpenErr Ð28 Driver not open - dskFulErr -34 Disk full - ioErr Ð36 Data does not match in read-verify mode - fnOpnErr -38 File not open - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Software volume lock - rfNumErr -51 Bad reference number - wrPermErr -61 Read/write permission doesnÕt - allow writing - afpAccessDenied -5000 User does not have the correct access to - the file -*/ - -/*****************************************************************************/ - -pascal OSErr GetFileLocation(short refNum, - short *vRefNum, - long *dirID, - StringPtr fileName); -/* ¦ Get the location of an open file. - The GetFileLocation function gets the location (volume reference number, - directory ID, and fileName) of an open file. - - refNum input: The file reference number of an open file. - vRefNum output: The volume reference number. - dirID output: The parent directory ID. - fileName input: Points to a buffer (minimum Str63) where the - filename is to be returned or must be nil. - output: The filename. - - Result Codes - noErr 0 No error - nsvErr -35 Specified volume doesnÕt exist - fnOpnErr -38 File not open - rfNumErr -51 Reference number specifies nonexistent - access path - - __________ - - See also: FSpGetFileLocation -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetFileLocation(short refNum, - FSSpec *spec); -/* ¦ Get the location of an open file in an FSSpec record. - The FSpGetFileLocation function gets the location of an open file in - an FSSpec record. - - refNum input: The file reference number of an open file. - spec output: FSSpec record containing the file name and location. - - Result Codes - noErr 0 No error - nsvErr -35 Specified volume doesnÕt exist - fnOpnErr -38 File not open - rfNumErr -51 Reference number specifies nonexistent - access path - - __________ - - See also: GetFileLocation -*/ - -/*****************************************************************************/ - -pascal OSErr CopyDirectoryAccess(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstName); -/* ¦ Copy the AFP directory access privileges. - The CopyDirectoryAccess function copies the AFP directory access - privileges from one directory to another. Both directories must be on - the same file server, but not necessarily on the same server volume. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Pointer to source directory name, or nil when - srcDirID specifies the directory. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstName input: Pointer to destination directory name, or nil when - dstDirID specifies the directory. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - fnfErr -43 Directory not found - vLckdErr -46 Volume is locked or read-only - paramErr -50 Volume doesn't support this function - afpAccessDenied -5000 User does not have the correct access - to the directory - afpObjectTypeErr -5025 Object is a file, not a directory - - __________ - - See also: FSpCopyDirectoryAccess -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCopyDirectoryAccess(const FSSpec *srcSpec, - const FSSpec *dstSpec); -/* ¦ Copy the AFP directory access privileges. - The FSpCopyDirectoryAccess function copies the AFP directory access - privileges from one directory to another. Both directories must be on - the same file server, but not necessarily on the same server volume. - - srcSpec input: An FSSpec record specifying the source directory. - dstSpec input: An FSSpec record specifying the destination directory. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - fnfErr -43 Directory not found - vLckdErr -46 Volume is locked or read-only - paramErr -50 Volume doesn't support this function - afpAccessDenied -5000 User does not have the correct access - to the directory - afpObjectTypeErr -5025 Object is a file, not a directory - - __________ - - See also: CopyDirectoryAccess -*/ - -/*****************************************************************************/ - -pascal OSErr HMoveRenameCompat(short vRefNum, - long srcDirID, - ConstStr255Param srcName, - long dstDirID, - ConstStr255Param dstpathName, - ConstStr255Param copyName); -/* ¦ Move a file or directory and optionally rename it. - The HMoveRenameCompat function moves a file or directory and optionally - renames it. The source and destination locations must be on the same - volume. This routine works even if the volume doesn't support MoveRename. - - vRefNum input: Volume specification. - srcDirID input: Source directory ID. - srcName input: The source object name. - dstDirID input: Destination directory ID. - dstName input: Pointer to destination directory name, or - nil when dstDirID specifies a directory. - copyName input: Points to the new name if the object is to be - renamed or nil if the object isn't to be renamed. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Disk is full - nsvErr -35 Volume not found - ioErr -36 I/O error - bdNamErr -37 Bad filename or attempt to move into - a file - fnfErr -43 Source file or directory not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 File busy, directory not empty, or - working directory control block open - dupFNErr -48 Destination already exists - paramErr -50 Volume doesn't support this function, - no default volume, or source and - volOfflinErr -53 Volume is offline - fsRnErr -59 Problem during rename - dirNFErr -120 Directory not found or incomplete pathname - badMovErr -122 Attempted to move directory into - offspring - wrgVolTypErr -123 Not an HFS volume (it's a MFS volume) - notAFileErr -1302 The pathname is nil, the pathname - is empty, or the pathname cannot refer - to a filename - diffVolErr -1303 Files on different volumes - afpAccessDenied -5000 The user does not have the right to - move the file or directory - afpObjectTypeErr -5025 Directory not found or incomplete pathname - afpSameObjectErr -5038 Source and destination files are the same - - __________ - - See also: FSpMoveRenameCompat -*/ - -/*****************************************************************************/ - -pascal OSErr FSpMoveRenameCompat(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName); -/* ¦ Move a file or directory and optionally rename it. - The FSpMoveRenameCompat function moves a file or directory and optionally - renames it. The source and destination locations must be on the same - volume. This routine works even if the volume doesn't support MoveRename. - - srcSpec input: An FSSpec record specifying the source object. - dstSpec input: An FSSpec record specifying the destination - directory. - copyName input: Points to the new name if the object is to be - renamed or nil if the object isn't to be renamed. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Disk is full - nsvErr -35 Volume not found - ioErr -36 I/O error - bdNamErr -37 Bad filename or attempt to move into - a file - fnfErr -43 Source file or directory not found - wPrErr -44 Hardware volume lock - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - fBsyErr -47 File busy, directory not empty, or - working directory control block open - dupFNErr -48 Destination already exists - paramErr -50 Volume doesn't support this function, - no default volume, or source and - volOfflinErr -53 Volume is offline - fsRnErr -59 Problem during rename - dirNFErr -120 Directory not found or incomplete pathname - badMovErr -122 Attempted to move directory into - offspring - wrgVolTypErr -123 Not an HFS volume (it's a MFS volume) - notAFileErr -1302 The pathname is nil, the pathname - is empty, or the pathname cannot refer - to a filename - diffVolErr -1303 Files on different volumes - afpAccessDenied -5000 The user does not have the right to - move the file or directory - afpObjectTypeErr -5025 Directory not found or incomplete pathname - afpSameObjectErr -5038 Source and destination files are the same - - __________ - - See also: HMoveRenameCompat -*/ - -/*****************************************************************************/ - -pascal OSErr BuildAFPVolMountInfo(short flags, - char nbpInterval, - char nbpCount, - short uamType, - Str32 zoneName, - Str31 serverName, - Str27 volName, - Str31 userName, - Str8 userPassword, - Str8 volPassword, - AFPVolMountInfoPtr *afpInfoPtr); -/* ¦ Allocate and initializes the fields of an AFPVolMountInfo record. - The BuildAFPVolMountInfo function allocates and initializes the fields - of an AFPVolMountInfo record before using that record to call - the VolumeMount function. - - flags input: The AFP mounting flags. 0 = normal mount; - set bit 0 to inhibit greeting messages. - nbpInterval input: The interval used for VolumeMount's - NBP Lookup call. 7 is a good choice. - nbpCount input: The retry count used for VolumeMount's - NBP Lookup call. 5 is a good choice. - uamType input: The user authentication method to use. - zoneName input: The AppleTalk zone name of the server. - serverName input: The AFP server name. - volName input: The AFP volume name. - userName input: The user name (zero length Pascal string for - guest). - userPassWord input: The user password (zero length Pascal string - if no user password) - volPassWord input: The volume password (zero length Pascal string - if no volume password) - afpInfoPtr output: A pointer to the newly created and initialized - AFPVolMountInfo record. If the function fails to - create an AFPVolMountInfo record, it sets - afpInfoPtr to NULL and the function result is - memFullErr. Your program is responsible - for disposing of this pointer when it is finished - with it. - - Result Codes - noErr 0 No error - memFullErr -108 memory full error - - __________ - - Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount, - RetrieveAFPVolMountInfo, BuildAFPXVolMountInfo, - RetrieveAFPXVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr RetrieveAFPVolMountInfo(AFPVolMountInfoPtr afpInfoPtr, - short *flags, - short *uamType, - StringPtr zoneName, - StringPtr serverName, - StringPtr volName, - StringPtr userName); -/* ¦ Retrieve the AFP mounting information from an AFPVolMountInfo record. - The RetrieveAFPVolMountInfo function retrieves the AFP mounting - information returned in an AFPVolMountInfo record by the - GetVolMountInfo function. - - afpInfoPtr input: Pointer to AFPVolMountInfo record that contains - the AFP mounting information. - flags output: The AFP mounting flags. - uamType output: The user authentication method used. - zoneName output: The AppleTalk zone name of the server. - serverName output: The AFP server name. - volName output: The AFP volume name. - userName output: The user name (zero length Pascal string for - guest). - - Result Codes - noErr 0 No error - paramErr -50 media field in AFP mounting information - was not AppleShareMediaType - - __________ - - Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount, - BuildAFPVolMountInfo, BuildAFPXVolMountInfo, - RetrieveAFPXVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr BuildAFPXVolMountInfo(short flags, - char nbpInterval, - char nbpCount, - short uamType, - Str32 zoneName, - Str31 serverName, - Str27 volName, - Str31 userName, - Str8 userPassword, - Str8 volPassword, - Str32 uamName, - unsigned long alternateAddressLength, - void *alternateAddress, - AFPXVolMountInfoPtr *afpXInfoPtr); -/* ¦ Allocate and initializes the fields of an AFPXVolMountInfo record. - The BuildAFPXVolMountInfo function allocates and initializes the fields - of an AFPXVolMountInfo record before using that record to call - the VolumeMount function. - - flags input: The AFP mounting flags. - nbpInterval input: The interval used for VolumeMount's - NBP Lookup call. 7 is a good choice. - nbpCount input: The retry count used for VolumeMount's - NBP Lookup call. 5 is a good choice. - uamType input: The user authentication method to use. - zoneName input: The AppleTalk zone name of the server. - serverName input: The AFP server name. - volName input: The AFP volume name. - userName input: The user name (zero length Pascal string - for guest). - userPassWord input: The user password (zero length Pascal - string if no user password) - volPassWord input: The volume password (zero length Pascal - string if no volume password) - uamName input: The User Authentication Method name. - alternateAddressLength input: Length of alternateAddress data. - alternateAddress input The AFPAlternateAddress (variable length) - afpXInfoPtr output: A pointer to the newly created and - initialized AFPVolMountInfo record. - If the function fails to create an - AFPVolMountInfo record, it sets - afpInfoPtr to NULL and the function - result is memFullErr. Your program is - responsible for disposing of this pointer - when it is finished with it. - - Result Codes - noErr 0 No error - memFullErr -108 memory full error - - __________ - - Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount, - BuildAFPVolMountInfo, RetrieveAFPVolMountInfo, - RetrieveAFPXVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr RetrieveAFPXVolMountInfo(AFPXVolMountInfoPtr afpXInfoPtr, - short *flags, - short *uamType, - StringPtr zoneName, - StringPtr serverName, - StringPtr volName, - StringPtr userName, - StringPtr uamName, - unsigned long *alternateAddressLength, - AFPAlternateAddress **alternateAddress); -/* ¦ Retrieve the AFP mounting information from an AFPXVolMountInfo record. - The RetrieveAFPXVolMountInfo function retrieves the AFP mounting - information returned in an AFPXVolMountInfo record by the - GetVolMountInfo function. - - afpXInfoPtr input: Pointer to AFPXVolMountInfo record that - contains the AFP mounting information. - flags output: The AFP mounting flags. - uamType output: The user authentication method used. - zoneName output: The AppleTalk zone name of the server. - serverName output: The AFP server name. - volName output: The AFP volume name. - userName output: The user name (zero length Pascal - string for guest). - uamName output: The User Authentication Method name. - alternateAddressLength output: Length of alternateAddress data returned. - alternateAddress: output: A pointer to the newly created and - AFPAlternateAddress record (a variable - length record). If the function fails to - create an AFPAlternateAddress record, - it sets alternateAddress to NULL and the - function result is memFullErr. Your - program is responsible for disposing of - this pointer when it is finished with it. - - Result Codes - noErr 0 No error - paramErr -50 media field in AFP mounting information - was not AppleShareMediaType - memFullErr -108 memory full error - - __________ - - Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount, - BuildAFPVolMountInfo, RetrieveAFXVolMountInfo, - BuildAFPXVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr GetUGEntries(short objType, - UGEntryPtr entries, - long reqEntryCount, - long *actEntryCount, - long *objID); -/* ¦ Retrieve a list of user or group entries from the local file server. - The GetUGEntries functions retrieves a list of user or group entries - from the local file server. - - objType input: The object type: -1 = group; 0 = user - UGEntries input: Pointer to array of UGEntry records where the list - is returned. - reqEntryCount input: The number of elements in the UGEntries array. - actEntryCount output: The number of entries returned. - objID input: The current index position. Set to 0 to start with - the first entry. - output: The index position to get the next entry. Pass this - value the next time you call GetUGEntries to start - where you left off. - - Result Codes - noErr 0 No error - fnfErr -43 No more users or groups - paramErr -50 Function not supported; or, ioObjID is - negative - - __________ - - Also see: GetUGEntry -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __MOREFILESEXTRAS__ */ diff --git a/src/mac/morefile/MoreFile.cpp b/src/mac/morefile/MoreFile.cpp deleted file mode 100644 index 16795680b6..0000000000 --- a/src/mac/morefile/MoreFile.cpp +++ /dev/null @@ -1,628 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** The long lost high-level and FSSpec File Manager functions. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: MoreFiles.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreFile.h" -#include "MoreExtr.h" - -/*****************************************************************************/ - -pascal OSErr HGetVolParms(ConstStr255Param volName, - short vRefNum, - GetVolParmsInfoBuffer *volParmsInfo, - long *infoSize) -{ - HParamBlockRec pb; - OSErr error; - - pb.ioParam.ioNamePtr = (StringPtr)volName; - pb.ioParam.ioVRefNum = vRefNum; - pb.ioParam.ioBuffer = (Ptr)volParmsInfo; - pb.ioParam.ioReqCount = *infoSize; - error = PBHGetVolParmsSync(&pb); - if ( error == noErr ) - { - *infoSize = pb.ioParam.ioActCount; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr HCreateMinimum(short vRefNum, - long dirID, - ConstStr255Param fileName) -{ - HParamBlockRec pb; - - pb.fileParam.ioNamePtr = (StringPtr)fileName; - pb.fileParam.ioVRefNum = vRefNum; - pb.ioParam.ioVersNum = 0; - pb.fileParam.ioDirID = dirID; - return ( PBHCreateSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpCreateMinimum(const FSSpec *spec) -{ - return ( HCreateMinimum(spec->vRefNum, spec->parID, spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr ExchangeFiles(short vRefNum, - long srcDirID, - ConstStr255Param srcName, - long dstDirID, - ConstStr255Param dstName) -{ - HParamBlockRec pb; - - pb.fidParam.ioVRefNum = vRefNum; - pb.fidParam.ioSrcDirID = srcDirID; - pb.fidParam.ioNamePtr = (StringPtr)srcName; - pb.fidParam.ioDestDirID = dstDirID; - pb.fidParam.ioDestNamePtr = (StringPtr)dstName; - return ( PBExchangeFilesSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr ResolveFileIDRef(ConstStr255Param volName, - short vRefNum, - long fileID, - long *parID, - StringPtr fileName) -{ - HParamBlockRec pb; - OSErr error; - Str255 tempStr; - - tempStr[0] = 0; - if ( volName != NULL ) - { - BlockMoveData(volName, tempStr, volName[0] + 1); - } - pb.fidParam.ioNamePtr = (StringPtr)tempStr; - pb.fidParam.ioVRefNum = vRefNum; - pb.fidParam.ioFileID = fileID; - error = PBResolveFileIDRefSync(&pb); - if ( error == noErr ) - { - *parID = pb.fidParam.ioSrcDirID; - if ( fileName != NULL ) - { - BlockMoveData(tempStr, fileName, tempStr[0] + 1); - } - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpResolveFileIDRef(ConstStr255Param volName, - short vRefNum, - long fileID, - FSSpec *spec) -{ - OSErr error; - - error = DetermineVRefNum(volName, vRefNum, &(spec->vRefNum)); - if ( error == noErr ) - { - error = ResolveFileIDRef(volName, vRefNum, fileID, &(spec->parID), spec->name); - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr CreateFileIDRef(short vRefNum, - long parID, - ConstStr255Param fileName, - long *fileID) -{ - HParamBlockRec pb; - OSErr error; - - pb.fidParam.ioNamePtr = (StringPtr)fileName; - pb.fidParam.ioVRefNum = vRefNum; - pb.fidParam.ioSrcDirID = parID; - error = PBCreateFileIDRefSync(&pb); - if ( error == noErr ) - { - *fileID = pb.fidParam.ioFileID; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpCreateFileIDRef(const FSSpec *spec, - long *fileID) -{ - return ( CreateFileIDRef(spec->vRefNum, spec->parID, spec->name, fileID) ); -} - -/*****************************************************************************/ - -pascal OSErr DeleteFileIDRef(ConstStr255Param volName, - short vRefNum, - long fileID) -{ - HParamBlockRec pb; - - pb.fidParam.ioNamePtr = (StringPtr)volName; - pb.fidParam.ioVRefNum = vRefNum; - pb.fidParam.ioFileID = fileID; - return ( PBDeleteFileIDRefSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FlushFile(short refNum) -{ - ParamBlockRec pb; - - pb.ioParam.ioRefNum = refNum; - return ( PBFlushFileSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr LockRange(short refNum, - long rangeLength, - long rangeStart) -{ - ParamBlockRec pb; - - pb.ioParam.ioRefNum = refNum; - pb.ioParam.ioReqCount = rangeLength; - pb.ioParam.ioPosMode = fsFromStart; - pb.ioParam.ioPosOffset = rangeStart; - return ( PBLockRangeSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr UnlockRange(short refNum, - long rangeLength, - long rangeStart) -{ - ParamBlockRec pb; - - pb.ioParam.ioRefNum = refNum; - pb.ioParam.ioReqCount = rangeLength; - pb.ioParam.ioPosMode = fsFromStart; - pb.ioParam.ioPosOffset = rangeStart; - return ( PBUnlockRangeSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr GetForeignPrivs(short vRefNum, - long dirID, - ConstStr255Param name, - void *foreignPrivBuffer, - long *foreignPrivSize, - long *foreignPrivInfo1, - long *foreignPrivInfo2, - long *foreignPrivInfo3, - long *foreignPrivInfo4) -{ - HParamBlockRec pb; - OSErr error; - - pb.foreignPrivParam.ioNamePtr = (StringPtr)name; - pb.foreignPrivParam.ioVRefNum = vRefNum; - pb.foreignPrivParam.ioForeignPrivDirID = dirID; - pb.foreignPrivParam.ioForeignPrivBuffer = (Ptr)foreignPrivBuffer; - pb.foreignPrivParam.ioForeignPrivReqCount = *foreignPrivSize; - error = PBGetForeignPrivsSync(&pb); - *foreignPrivSize = pb.foreignPrivParam.ioForeignPrivActCount; - *foreignPrivInfo1 = pb.foreignPrivParam.ioForeignPrivInfo1; - *foreignPrivInfo2 = pb.foreignPrivParam.ioForeignPrivInfo2; - *foreignPrivInfo3 = pb.foreignPrivParam.ioForeignPrivInfo3; - *foreignPrivInfo4 = pb.foreignPrivParam.ioForeignPrivInfo4; - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetForeignPrivs(const FSSpec *spec, - void *foreignPrivBuffer, - long *foreignPrivSize, - long *foreignPrivInfo1, - long *foreignPrivInfo2, - long *foreignPrivInfo3, - long *foreignPrivInfo4) -{ - return ( GetForeignPrivs(spec->vRefNum, spec->parID, spec->name, - foreignPrivBuffer, foreignPrivSize, - foreignPrivInfo1, foreignPrivInfo2, - foreignPrivInfo3, foreignPrivInfo4) ); -} - -/*****************************************************************************/ - -pascal OSErr SetForeignPrivs(short vRefNum, - long dirID, - ConstStr255Param name, - const void *foreignPrivBuffer, - long *foreignPrivSize, - long foreignPrivInfo1, - long foreignPrivInfo2, - long foreignPrivInfo3, - long foreignPrivInfo4) -{ - HParamBlockRec pb; - OSErr error; - - pb.foreignPrivParam.ioNamePtr = (StringPtr)name; - pb.foreignPrivParam.ioVRefNum = vRefNum; - pb.foreignPrivParam.ioForeignPrivDirID = dirID; - pb.foreignPrivParam.ioForeignPrivBuffer = (Ptr)foreignPrivBuffer; - pb.foreignPrivParam.ioForeignPrivReqCount = *foreignPrivSize; - pb.foreignPrivParam.ioForeignPrivInfo1 = foreignPrivInfo1; - pb.foreignPrivParam.ioForeignPrivInfo2 = foreignPrivInfo2; - pb.foreignPrivParam.ioForeignPrivInfo3 = foreignPrivInfo3; - pb.foreignPrivParam.ioForeignPrivInfo4 = foreignPrivInfo4; - error = PBSetForeignPrivsSync(&pb); - if ( error == noErr ) - { - *foreignPrivSize = pb.foreignPrivParam.ioForeignPrivActCount; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetForeignPrivs(const FSSpec *spec, - const void *foreignPrivBuffer, - long *foreignPrivSize, - long foreignPrivInfo1, - long foreignPrivInfo2, - long foreignPrivInfo3, - long foreignPrivInfo4) -{ - return ( SetForeignPrivs(spec->vRefNum, spec->parID, spec->name, - foreignPrivBuffer, foreignPrivSize, - foreignPrivInfo1, foreignPrivInfo2, - foreignPrivInfo3, foreignPrivInfo4) ); -} - -/*****************************************************************************/ - -pascal OSErr HGetLogInInfo(ConstStr255Param volName, - short vRefNum, - short *loginMethod, - StringPtr userName) -{ - HParamBlockRec pb; - OSErr error; - - pb.objParam.ioNamePtr = (StringPtr)volName; - pb.objParam.ioVRefNum = vRefNum; - pb.objParam.ioObjNamePtr = userName; - error = PBHGetLogInInfoSync(&pb); - if ( error == noErr ) - { - *loginMethod = pb.objParam.ioObjType; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr HGetDirAccess(short vRefNum, - long dirID, - ConstStr255Param name, - long *ownerID, - long *groupID, - long *accessRights) -{ - HParamBlockRec pb; - OSErr error; - - pb.accessParam.ioNamePtr = (StringPtr)name; - pb.accessParam.ioVRefNum = vRefNum; - pb.fileParam.ioDirID = dirID; - error = PBHGetDirAccessSync(&pb); - if ( error == noErr ) - { - *ownerID = pb.accessParam.ioACOwnerID; - *groupID = pb.accessParam.ioACGroupID; - *accessRights = pb.accessParam.ioACAccess; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr FSpGetDirAccess(const FSSpec *spec, - long *ownerID, - long *groupID, - long *accessRights) -{ - return ( HGetDirAccess(spec->vRefNum, spec->parID, spec->name, - ownerID, groupID, accessRights) ); -} - -/*****************************************************************************/ - -pascal OSErr HSetDirAccess(short vRefNum, - long dirID, - ConstStr255Param name, - long ownerID, - long groupID, - long accessRights) -{ - HParamBlockRec pb; - - pb.accessParam.ioNamePtr = (StringPtr)name; - pb.accessParam.ioVRefNum = vRefNum; - pb.fileParam.ioDirID = dirID; - pb.accessParam.ioACOwnerID = ownerID; - pb.accessParam.ioACGroupID = groupID; - pb.accessParam.ioACAccess = accessRights; - return ( PBHSetDirAccessSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpSetDirAccess(const FSSpec *spec, - long ownerID, - long groupID, - long accessRights) -{ - return ( HSetDirAccess(spec->vRefNum, spec->parID, spec->name, - ownerID, groupID, accessRights) ); -} - -/*****************************************************************************/ - -pascal OSErr HMapID(ConstStr255Param volName, - short vRefNum, - long ugID, - short objType, - StringPtr name) -{ - HParamBlockRec pb; - - pb.objParam.ioNamePtr = (StringPtr)volName; - pb.objParam.ioVRefNum = vRefNum; - pb.objParam.ioObjType = objType; - pb.objParam.ioObjNamePtr = name; - pb.objParam.ioObjID = ugID; - return ( PBHMapIDSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr HMapName(ConstStr255Param volName, - short vRefNum, - ConstStr255Param name, - short objType, - long *ugID) -{ - HParamBlockRec pb; - OSErr error; - - pb.objParam.ioNamePtr = (StringPtr)volName; - pb.objParam.ioVRefNum = vRefNum; - pb.objParam.ioObjType = objType; - pb.objParam.ioObjNamePtr = (StringPtr)name; - error = PBHMapNameSync(&pb); - if ( error == noErr ) - { - *ugID = pb.objParam.ioObjID; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr HCopyFile(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstPathname, - ConstStr255Param copyName) -{ - HParamBlockRec pb; - - pb.copyParam.ioVRefNum = srcVRefNum; - pb.copyParam.ioDirID = srcDirID; - pb.copyParam.ioNamePtr = (StringPtr)srcName; - pb.copyParam.ioDstVRefNum = dstVRefNum; - pb.copyParam.ioNewDirID = dstDirID; - pb.copyParam.ioNewName = (StringPtr)dstPathname; - pb.copyParam.ioCopyName = (StringPtr)copyName; - return ( PBHCopyFileSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpCopyFile(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName) -{ - return ( HCopyFile(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->vRefNum, dstSpec->parID, - dstSpec->name, copyName) ); -} - -/*****************************************************************************/ - -pascal OSErr HMoveRename(short vRefNum, - long srcDirID, - ConstStr255Param srcName, - long dstDirID, - ConstStr255Param dstpathName, - ConstStr255Param copyName) -{ - HParamBlockRec pb; - - pb.copyParam.ioVRefNum = vRefNum; - pb.copyParam.ioDirID = srcDirID; - pb.copyParam.ioNamePtr = (StringPtr)srcName; - pb.copyParam.ioNewDirID = dstDirID; - pb.copyParam.ioNewName = (StringPtr)dstpathName; - pb.copyParam.ioCopyName = (StringPtr)copyName; - return ( PBHMoveRenameSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpMoveRename(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName) -{ - OSErr error; - - /* make sure the FSSpecs refer to the same volume */ - if ( srcSpec->vRefNum != dstSpec->vRefNum ) - { - error = diffVolErr; - } - else - { - error = HMoveRename(srcSpec->vRefNum, srcSpec->parID, srcSpec->name, - dstSpec->parID, dstSpec->name, copyName); - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr GetVolMountInfoSize(ConstStr255Param volName, - short vRefNum, - short *size) -{ - ParamBlockRec pb; - - pb.ioParam.ioNamePtr = (StringPtr)volName; - pb.ioParam.ioVRefNum = vRefNum; - pb.ioParam.ioBuffer = (Ptr)size; - return ( PBGetVolMountInfoSize(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr GetVolMountInfo(ConstStr255Param volName, - short vRefNum, - void *volMountInfo) -{ - ParamBlockRec pb; - - pb.ioParam.ioNamePtr = (StringPtr)volName; - pb.ioParam.ioVRefNum = vRefNum; - pb.ioParam.ioBuffer = (Ptr)volMountInfo; - return ( PBGetVolMountInfo(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr VolumeMount(const void *volMountInfo, - short *vRefNum) -{ - ParamBlockRec pb; - OSErr error; - - pb.ioParam.ioBuffer = (Ptr)volMountInfo; - error = PBVolumeMount(&pb); - if ( error == noErr ) - { - *vRefNum = pb.ioParam.ioVRefNum; - } - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr Share(short vRefNum, - long dirID, - ConstStr255Param name) -{ - HParamBlockRec pb; - - pb.fileParam.ioNamePtr = (StringPtr)name; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioDirID = dirID; - return ( PBShareSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpShare(const FSSpec *spec) -{ - return ( Share(spec->vRefNum, spec->parID, spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr Unshare(short vRefNum, - long dirID, - ConstStr255Param name) -{ - HParamBlockRec pb; - - pb.fileParam.ioNamePtr = (StringPtr)name; - pb.fileParam.ioVRefNum = vRefNum; - pb.fileParam.ioDirID = dirID; - return ( PBUnshareSync(&pb) ); -} - -/*****************************************************************************/ - -pascal OSErr FSpUnshare(const FSSpec *spec) -{ - return ( Unshare(spec->vRefNum, spec->parID, spec->name) ); -} - -/*****************************************************************************/ - -pascal OSErr GetUGEntry(short objType, - StringPtr objName, - long *objID) -{ - HParamBlockRec pb; - OSErr error; - - pb.objParam.ioObjType = objType; - pb.objParam.ioObjNamePtr = objName; - pb.objParam.ioObjID = *objID; - error = PBGetUGEntrySync(&pb); - if ( error == noErr ) - { - *objID = pb.objParam.ioObjID; - } - return ( error ); -} - -/*****************************************************************************/ diff --git a/src/mac/morefile/MoreFile.h b/src/mac/morefile/MoreFile.h deleted file mode 100644 index e4d4bb8a7f..0000000000 --- a/src/mac/morefile/MoreFile.h +++ /dev/null @@ -1,1244 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** The long lost high-level and FSSpec File Manager functions. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: MoreFiles.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __MOREFILES__ -#define __MOREFILES__ - -#include -#include - -#ifndef true -#define true 1 -#define false 0 -#endif - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -pascal OSErr HGetVolParms(ConstStr255Param volName, - short vRefNum, - GetVolParmsInfoBuffer *volParmsInfo, - long *infoSize); -/* ¦ Determine the characteristics of a volume. - The HGetVolParms function returns information about the characteristics - of a volume. A result of paramErr usually just means the volume doesn't - support PBHGetVolParms and the feature you were going to check - for isn't available. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - volParmsInfo input: Pointer to GetVolParmsInfoBuffer where the - volume attributes information is returned. - output: Atributes information. - infoSize input: Size of buffer pointed to by volParmsInfo. - output: Size of data actually returned. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Volume doesn't support this function - - __________ - - Also see the macros for checking attribute bits in MoreFilesExtras.h -*/ - -/*****************************************************************************/ - -pascal OSErr HCreateMinimum(short vRefNum, - long dirID, - ConstStr255Param fileName); -/* ¦ Create a new file with no creator or file type. - The HCreateMinimum function creates a new file without attempting to set - the creator and file type of the new file. This function is needed to - create a file in an AppleShare "drop box" where the user can make - changes, but cannot see folder or files. - - vRefNum input: Volume specification. - dirID input: Directory ID. - fileName input: The name of the new file. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Disk is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 Directory not found or incomplete pathname - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - dupFNErr -48 Duplicate filename and version - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 A directory exists with that name - - __________ - - Also see: FSpCreateMinimum -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCreateMinimum(const FSSpec *spec); -/* ¦ Create a new file with no creator or file type. - The FSpCreateMinimum function creates a new file without attempting to set - the the creator and file type of the new file. This function is needed to - create a file in an AppleShare "dropbox" where the user can make - changes, but cannot see folder or files. - - spec input: An FSSpec record specifying the file to create. - - Result Codes - noErr 0 No error - dirFulErr -33 File directory full - dskFulErr -34 Disk is full - nsvErr -35 No such volume - ioErr -36 I/O error - bdNamErr -37 Bad filename - fnfErr -43 Directory not found or incomplete pathname - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - dupFNErr -48 Duplicate filename and version - dirNFErrdirNFErr -120 Directory not found or incomplete pathname - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 A directory exists with that name - - __________ - - Also see: HCreateMinimum -*/ - -/*****************************************************************************/ - -pascal OSErr ExchangeFiles(short vRefNum, - long srcDirID, - ConstStr255Param srcName, - long dstDirID, - ConstStr255Param dstName); -/* ¦ Exchange the data stored in two files on the same volume. - The ExchangeFiles function swaps the data in two files on the same - volume by changing some of the information in the volume catalog and, - if the files are open, in the file control blocks. - - vRefNum input: Volume specification. - srcDirID input: Source directory ID. - srcName input: Source file name. - dstDirID input: Destination directory ID. - dstName input: Destination file name. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - fLckdErr -45 File is locked - vLckdErr -46 Volume is locked or read-only - paramErr -50 Function not supported by volume - volOfflinErr -53 Volume is offline - wrgVolTypErr -123 Not an HFS volume - diffVolErr -1303 Files on different volumes - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Object is a directory, not a file - afpSameObjectErr -5038 Source and destination are the same - - __________ - - Also see: FSpExchangeFilesCompat -*/ - -/*****************************************************************************/ - -pascal OSErr ResolveFileIDRef(ConstStr255Param volName, - short vRefNum, - long fileID, - long *parID, - StringPtr fileName); -/* ¦ Retrieve the location of the file with the specified file ID reference. - The ResolveFileIDRef function returns the filename and parent directory ID - of the file with the specified file ID reference. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - fileID input: The file ID reference. - parID output: The parent directory ID of the file. - name input: Points to a buffer (minimum Str63) where the filename - is to be returned or must be nil. - output: The filename. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - paramErr -50 Function not supported by volume - volOfflinErr -53 Volume is offline - extFSErr -58 External file system error - no file - system claimed this call. - wrgVolTypErr -123 Not an HFS volume - fidNotFoundErr -1300 File ID reference not found - notAFileErr -1302 Specified file is a directory - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Specified file is a directory - afpIDNotFound -5034 File ID reference not found - afpBadIDErr -5039 File ID reference not found - - __________ - - Also see: FSpResolveFileIDRef, CreateFileIDRef, FSpCreateFileIDRef, - DeleteFileIDRef -*/ - -/*****************************************************************************/ - -pascal OSErr FSpResolveFileIDRef(ConstStr255Param volName, - short vRefNum, - long fileID, - FSSpecPtr spec); -/* ¦ Retrieve the location of the file with the specified file ID reference. - The FSpResolveFileIDRef function fills in an FSSpec with the location - of the file with the specified file ID reference. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - fileID input: The file ID reference. - spec input: A pointer to a FSSpec record. - output: A file system specification to be filled in by - FSpResolveFileIDRef. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - paramErr -50 Function not supported by volume or - no default volume - volOfflinErr -53 Volume is offline - extFSErr -58 External file system error - no file - system claimed this call. - wrgVolTypErr -123 Not an HFS volume - fidNotFoundErr -1300 File ID reference not found - notAFileErr -1302 Specified file is a directory - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Specified file is a directory - afpIDNotFound -5034 File ID reference not found - afpBadIDErr -5039 File ID reference not found - - __________ - - Also see: ResolveFileIDRef, CreateFileIDRef, FSpCreateFileIDRef, - DeleteFileIDRef -*/ - -/*****************************************************************************/ - -pascal OSErr CreateFileIDRef(short vRefNum, - long parID, - ConstStr255Param fileName, - long *fileID); -/* ¦ Establish a file ID reference for a file. - The CreateFileIDRef function creates a file ID reference for the - specified file, or if a file ID reference already exists, supplies - the file ID reference and returns the result code fidExists. - - vRefNum input: Volume specification. - parID input: Directory ID. - fileName input: The name of the file. - fileID output: The file ID reference. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - paramErr -50 Function not supported by volume - volOfflinErr -53 Volume is offline - extFSErr -58 External file system error - no file - system claimed this call. - wrgVolTypErr -123 Not an HFS volume - fidExists -1301 File ID reference already exists - notAFileErrn -1302 Specified file is a directory - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Specified file is a directory - afpIDExists -5035 File ID reference already exists - - __________ - - Also see: FSpResolveFileIDRef, ResolveFileIDRef, FSpCreateFileIDRef, - DeleteFileIDRef -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCreateFileIDRef(const FSSpec *spec, - long *fileID); -/* ¦ Establish a file ID reference for a file. - The FSpCreateFileIDRef function creates a file ID reference for the - specified file, or if a file ID reference already exists, supplies - the file ID reference and returns the result code fidExists. - - spec input: An FSSpec record specifying the file. - fileID output: The file ID reference. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - paramErr -50 Function not supported by volume - volOfflinErr -53 Volume is offline - extFSErr -58 External file system error - no file - system claimed this call. - wrgVolTypErr -123 Not an HFS volume - fidExists -1301 File ID reference already exists - notAFileErrn -1302 Specified file is a directory - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Specified file is a directory - afpIDExists -5035 File ID reference already exists - - __________ - - Also see: FSpResolveFileIDRef, ResolveFileIDRef, CreateFileIDRef, - DeleteFileIDRef -*/ - -/*****************************************************************************/ - -pascal OSErr DeleteFileIDRef(ConstStr255Param volName, - short vRefNum, - long fileID); -/* ¦ Delete a file ID reference. - The DeleteFileIDRef function deletes a file ID reference. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - fileID input: The file ID reference. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnfErr -43 File not found - wPrErr -44 Hardware volume lock - vLckdErr -46 Software volume lock - paramErr -50 Function not supported by volume - volOfflinErr -53 Volume is offline - extFSErr -58 External file system error - no file - system claimed this call. - wrgVolTypErr -123 Function is not supported by volume - fidNotFoundErr -1300 File ID reference not found - afpAccessDenied -5000 User does not have the correct access - afpObjectTypeErr -5025 Specified file is a directory - afpIDNotFound -5034 File ID reference not found - - __________ - - Also see: FSpResolveFileIDRef, ResolveFileIDRef, CreateFileIDRef, - FSpCreateFileIDRef -*/ - -/*****************************************************************************/ - -pascal OSErr FlushFile(short refNum); -/* ¦ Write the contents of a file's access path buffer (the fork data). - The FlushFile function writes the contents of a file's access path - buffer (the fork data) to the volume. Note: some of the file's catalog - information stored on the volume may not be correct until FlushVol - is called. - - refNum input: The file reference number of an open file. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - fnOpnErr -38 File not open - fnfErr -43 File not found - rfNumErr -51 Bad reference number - extFSErr -58 External file system error - no file - system claimed this call. -*/ - -/*****************************************************************************/ - -pascal OSErr LockRange(short refNum, - long rangeLength, - long rangeStart); -/* ¦ Lock a portion of a file. - The LockRange function locks (denies access to) a portion of a file - that was opened with shared read/write permission. - - refNum input: The file reference number of an open file. - rangeLength input: The number of bytes in the range. - rangeStart input: The starting byte in the range to lock. - - Result Codes - noErr 0 No error - ioErr -36 I/O error - fnOpnErr -38 File not open - eofErr -39 Logical end-of-file reached - fLckdErr -45 File is locked by another user - paramErr -50 Negative ioReqCount - rfNumErr -51 Bad reference number - extFSErr -58 External file system error - no file - system claimed this call. - volGoneErr -124 Server volume has been disconnected - afpNoMoreLocks -5015 No more ranges can be locked - afpRangeOverlap -5021 Part of range is already locked - - __________ - - Also see: UnlockRange -*/ - -/*****************************************************************************/ - -pascal OSErr UnlockRange(short refNum, - long rangeLength, - long rangeStart); -/* ¦ Unlock a previously locked range. - The UnlockRange function unlocks (allows access to) a previously locked - portion of a file that was opened with shared read/write permission. - - refNum input: The file reference number of an open file. - rangeLength input: The number of bytes in the range. - rangeStart input: The starting byte in the range to unlock. - - Result Codes - noErr 0 No error - ioErr -36 I/O error - fnOpnErr -38 File not open - eofErr -39 Logical end-of-file reached - paramErr -50 Negative ioReqCount - rfNumErr -51 Bad reference number - extFSErr -58 External file system error - no file - system claimed this call. - volGoneErr -124 Server volume has been disconnected - afpRangeNotLocked -5020 Specified range was not locked - - __________ - - Also see: LockRange -*/ - -/*****************************************************************************/ - -pascal OSErr GetForeignPrivs(short vRefNum, - long dirID, - ConstStr255Param name, - void *foreignPrivBuffer, - long *foreignPrivSize, - long *foreignPrivInfo1, - long *foreignPrivInfo2, - long *foreignPrivInfo3, - long *foreignPrivInfo4); -/* ¦ Retrieve the native access-control information. - The GetForeignPrivs function retrieves the native access-control - information for a file or directory stored on a volume managed by - a foreign file system. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - foreignPrivBuffer input: Pointer to buffer where the privilege - information is returned. - output: Privilege information. - foreignPrivSize input: Size of buffer pointed to by - foreignPrivBuffer. - output: Amount of buffer actually used. - foreignPrivInfo1 output: Information specific to privilege model. - foreignPrivInfo2 output: Information specific to privilege model. - foreignPrivInfo3 output: Information specific to privilege model. - foreignPrivInfo4 output: Information specific to privilege model. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Volume is HFS or MFS (that is, it has - no foreign privilege model), or foreign - volume does not support these calls - - __________ - - Also see: FSpGetForeignPrivs, SetForeignPrivs, FSpSetForeignPrivs -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetForeignPrivs(const FSSpec *spec, - void *foreignPrivBuffer, - long *foreignPrivSize, - long *foreignPrivInfo1, - long *foreignPrivInfo2, - long *foreignPrivInfo3, - long *foreignPrivInfo4); -/* ¦ Retrieve the native access-control information. - The FSpGetForeignPrivs function retrieves the native access-control - information for a file or directory stored on a volume managed by - a foreign file system. - - spec input: An FSSpec record specifying the object. - foreignPrivBuffer input: Pointer to buffer where the privilege - information is returned. - output: Privilege information. - foreignPrivSize input: Size of buffer pointed to by - foreignPrivBuffer. - output: Amount of buffer actually used. - foreignPrivInfo1 output: Information specific to privilege model. - foreignPrivInfo2 output: Information specific to privilege model. - foreignPrivInfo3 output: Information specific to privilege model. - foreignPrivInfo4 output: Information specific to privilege model. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Volume is HFS or MFS (that is, it has - no foreign privilege model), or foreign - volume does not support these calls - - __________ - - Also see: GetForeignPrivs, SetForeignPrivs, FSpSetForeignPrivs -*/ - -/*****************************************************************************/ - -pascal OSErr SetForeignPrivs(short vRefNum, - long dirID, - ConstStr255Param name, - const void *foreignPrivBuffer, - long *foreignPrivSize, - long foreignPrivInfo1, - long foreignPrivInfo2, - long foreignPrivInfo3, - long foreignPrivInfo4); -/* ¦ Change the native access-control information. - The SetForeignPrivs function changes the native access-control - information for a file or directory stored on a volume managed by - a foreign file system. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to object name, or nil when dirID - specifies a directory that's the object. - foreignPrivBuffer input: Pointer to privilege information buffer. - foreignPrivSize input: Size of buffer pointed to by - foreignPrivBuffer. - output: Amount of buffer actually used. - foreignPrivInfo1 input: Information specific to privilege model. - foreignPrivInfo2 input: Information specific to privilege model. - foreignPrivInfo3 input: Information specific to privilege model. - foreignPrivInfo4 input: Information specific to privilege model. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Volume is HFS or MFS (that is, it has - no foreign privilege model), or foreign - volume does not support these calls - - __________ - - Also see: GetForeignPrivs, FSpGetForeignPrivs, FSpSetForeignPrivs -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetForeignPrivs(const FSSpec *spec, - const void *foreignPrivBuffer, - long *foreignPrivSize, - long foreignPrivInfo1, - long foreignPrivInfo2, - long foreignPrivInfo3, - long foreignPrivInfo4); -/* ¦ Change the native access-control information. - The FSpSetForeignPrivs function changes the native access-control - information for a file or directory stored on a volume managed by - a foreign file system. - - spec input: An FSSpec record specifying the object. - foreignPrivBuffer input: Pointer to privilege information buffer. - foreignPrivSize input: Size of buffer pointed to by - foreignPrivBuffer. - output: Amount of buffer actually used. - foreignPrivInfo1 input: Information specific to privilege model. - foreignPrivInfo2 input: Information specific to privilege model. - foreignPrivInfo3 input: Information specific to privilege model. - foreignPrivInfo4 input: Information specific to privilege model. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Volume is HFS or MFS (that is, it has - no foreign privilege model), or foreign - volume does not support these calls - - __________ - - Also see: GetForeignPrivs, FSpGetForeignPrivs, SetForeignPrivs -*/ - -/*****************************************************************************/ - -pascal OSErr HGetLogInInfo(ConstStr255Param volName, - short vRefNum, - short *loginMethod, - StringPtr userName); -/* ¦ Get the login method and user name used to log on to a shared volume. - The HGetLogInInfo function retrieves the login method and user name - used to log on to a particular shared volume. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: The volume reference number. - loginMethod output: The login method used (kNoUserAuthentication, - kPassword, kEncryptPassword, or - kTwoWayEncryptPassword). - userName input: Points to a buffer (minimum Str31) where the user - name is to be returned or must be nil. - output: The user name. - - Result Codes - noErr 0 No error - nsvErr -35 Specified volume doesnÕt exist - paramErr -50 Function not supported by volume - - __________ - - Also see: HGetDirAccess, FSpGetDirAccess, HSetDirAccess, - FSpSetDirAccess, HMapName, HMapID -*/ - -/*****************************************************************************/ - -pascal OSErr HGetDirAccess(short vRefNum, - long dirID, - ConstStr255Param name, - long *ownerID, - long *groupID, - long *accessRights); -/* ¦ Get a directory's access control information on a shared volume. - The HGetDirAccess function retrieves the directory access control - information for a directory on a shared volume. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to directory name, or nil if dirID - specifies the directory. - ownerID output: The directory's owner ID. - groupID output: The directory's group ID or - 0 if no group affiliation. - accessRights output: The directory's access rights. - - Result Codes - noErr 0 No error - fnfErr -43 Directory not found - paramErr -50 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - to the directory - - __________ - - Also see: HGetLogInInfo, FSpGetDirAccess, HSetDirAccess, - FSpSetDirAccess, HMapName, HMapID -*/ - -/*****************************************************************************/ - -pascal OSErr FSpGetDirAccess(const FSSpec *spec, - long *ownerID, - long *groupID, - long *accessRights); -/* ¦ Get a directory's access control information on a shared volume. - The FSpGetDirAccess function retrieves the directory access control - information for a directory on a shared volume. - - spec input: An FSSpec record specifying the directory. - ownerID output: The directory's owner ID. - groupID output: The directory's group ID or - 0 if no group affiliation. - accessRights output: The directory's access rights. - - Result Codes - noErr 0 No error - fnfErr -43 Directory not found - paramErr -50 Function not supported by volume - afpAccessDenied -5000 User does not have the correct access - to the directory - - __________ - - Also see: HGetLogInInfo, HGetDirAccess, HSetDirAccess, - FSpSetDirAccess, HMapName, HMapID -*/ - -/*****************************************************************************/ - -pascal OSErr HSetDirAccess(short vRefNum, - long dirID, - ConstStr255Param name, - long ownerID, - long groupID, - long accessRights); -/* ¦ Set a directory's access control information on a shared volume. - The HSetDirAccess function changes the directory access control - information for a directory on a shared volume. You must own a directory - to change its access control information. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to directory name, or nil if dirID - specifies the directory. - ownerID input: The directory's owner ID. - groupID input: The directory's group ID or - 0 if no group affiliation. - accessRights input: The directory's access rights. - - Result Codes - noErr 0 No error - fnfErr -43 Directory not found - vLckdErr -46 Volume is locked or read-only - paramErr -50 Parameter error - afpAccessDenied -5000 User does not have the correct access - to the directory - afpObjectTypeErr -5025 Object is a file, not a directory - - __________ - - Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, - FSpSetDirAccess, HMapName, HMapID -*/ - -/*****************************************************************************/ - -pascal OSErr FSpSetDirAccess(const FSSpec *spec, - long ownerID, - long groupID, - long accessRights); -/* ¦ Set a directory's access control information on a shared volume. - The FSpSetDirAccess function changes the directory access control - information for a directory on a shared volume. You must own a directory - to change its access control information. - - spec input: An FSSpec record specifying the directory. - ownerID input: The directory's owner ID. - groupID input: The directory's group ID or - 0 if no group affiliation. - accessRights input: The directory's access rights. - - Result Codes - noErr 0 No error - fnfErr -43 Directory not found - vLckdErr -46 Volume is locked or read-only - paramErr -50 Parameter error - afpAccessDenied -5000 User does not have the correct access - to the directory - afpObjectTypeErr -5025 Object is a file, not a directory - - __________ - - Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, HSetDirAccess, - HMapName, HMapID -*/ - -/*****************************************************************************/ - -pascal OSErr HMapID(ConstStr255Param volName, - short vRefNum, - long ugID, - short objType, - StringPtr name); -/* ¦ Map a user or group ID to a user or group name. - The HMapID function determines the name of a user or group if you know - the user or group ID. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - objType input: The mapping function code: 1 if you're mapping a - user ID to a user name or 2 if you're mapping a - group ID to a group name. - name input: Points to a buffer (minimum Str31) where the user - or group name is to be returned or must be nil. - output: The user or group name. - - Result Codes - noErr 0 No error - fnfErr -43 Unrecognizable owner or group name - paramErr -50 Function not supported by volume - - __________ - - Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, HSetDirAccess, - FSpSetDirAccess, HMapName -*/ - -/*****************************************************************************/ - -pascal OSErr HMapName(ConstStr255Param volName, - short vRefNum, - ConstStr255Param name, - short objType, - long *ugID); -/* ¦ Map a user or group name to a user or group ID. - The HMapName function determines the user or group ID if you know the - user or group name. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - name input: The user or group name. - objType input: The mapping function code: 3 if you're mapping a - user name to a user ID or 4 if you're mapping a - group name to a group ID. - ugID output: The user or group ID. - - Result Codes - noErr 0 No error - fnfErr -43 Unrecognizable owner or group name - paramErr -50 Function not supported by volume - - __________ - - Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, HSetDirAccess, - FSpSetDirAccess, HMapID -*/ - -/*****************************************************************************/ - -pascal OSErr HCopyFile(short srcVRefNum, - long srcDirID, - ConstStr255Param srcName, - short dstVRefNum, - long dstDirID, - ConstStr255Param dstPathname, - ConstStr255Param copyName); -/* ¦ Duplicate a file on a file server and optionally to rename it. - The HCopyFile function duplicates a file and optionally to renames it. - The source and destination volumes must be on the same file server. - This function instructs the server to copy the file. - - srcVRefNum input: Source volume specification. - srcDirID input: Source directory ID. - srcName input: Source file name. - dstVRefNum input: Destination volume specification. - dstDirID input: Destination directory ID. - dstPathname input: Pointer to destination directory name, or - nil when dstDirID specifies a directory. - copyName input: Points to the new file name if the file is to be - renamed or nil if the file isn't to be renamed. - - Result Codes - noErr 0 No error - dskFulErr -34 Destination volume is full - fnfErr -43 Source file not found, or destination - directory does not exist - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - paramErr -50 Function not supported by volume - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 The user does not have the right to - read the source or write to the - destination - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory - - __________ - - Also see: FSpCopyFile, FileCopy, FSpFileCopy -*/ - -/*****************************************************************************/ - -pascal OSErr FSpCopyFile(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName); -/* ¦ Duplicate a file on a file server and optionally to rename it. - The FSpCopyFile function duplicates a file and optionally to renames it. - The source and destination volumes must be on the same file server. - This function instructs the server to copy the file. - - srcSpec input: An FSSpec record specifying the source file. - dstSpec input: An FSSpec record specifying the destination - directory. - copyName input: Points to the new file name if the file is to be - renamed or nil if the file isn't to be renamed. - - Result Codes - noErr 0 No error - dskFulErr -34 Destination volume is full - fnfErr -43 Source file not found, or destination - directory does not exist - vLckdErr -46 Destination volume is read-only - fBsyErr -47 The source or destination file could - not be opened with the correct access - modes - dupFNErr -48 Destination file already exists - paramErr -50 Function not supported by volume - wrgVolTypErr -123 Function not supported by volume - afpAccessDenied -5000 The user does not have the right to - read the source or write to the - destination - afpDenyConflict -5006 The source or destination file could - not be opened with the correct access - modes - afpObjectTypeErr -5025 Source is a directory - - __________ - - Also see: HCopyFile, FileCopy, FSpFileCopy -*/ - -/*****************************************************************************/ - -pascal OSErr HMoveRename(short vRefNum, - long srcDirID, - ConstStr255Param srcName, - long dstDirID, - ConstStr255Param dstpathName, - ConstStr255Param copyName); -/* ¦ Move a file or directory on a file server and optionally to rename it. - The HMoveRename function moves a file or directory and optionally - renames it. The source and destination locations must be on the same - shared volume. - - vRefNum input: Volume specification. - srcDirID input: Source directory ID. - srcName input: The source object name. - dstDirID input: Destination directory ID. - dstName input: Pointer to destination directory name, or - nil when dstDirID specifies a directory. - copyName input: Points to the new name if the object is to be - renamed or nil if the object isn't to be renamed. - - Result Codes - noErr 0 No error - fnfErr -43 Source file or directory not found - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - dupFNErr -48 Destination already exists - paramErr -50 Function not supported by volume - badMovErr -122 Attempted to move directory into - offspring - afpAccessDenied -5000 The user does not have the right to - move the file or directory - - __________ - - Also see: FSpMoveRename, HMoveRenameCompat, FSpMoveRenameCompat -*/ - -/*****************************************************************************/ - -pascal OSErr FSpMoveRename(const FSSpec *srcSpec, - const FSSpec *dstSpec, - ConstStr255Param copyName); -/* ¦ Move a file or directory on a file server and optionally to rename it. - The FSpMoveRename function moves a file or directory and optionally - renames it. The source and destination locations must be on the same - shared volume. - - srcSpec input: An FSSpec record specifying the source object. - dstSpec input: An FSSpec record specifying the destination - directory. - copyName input: Points to the new name if the object is to be - renamed or nil if the object isn't to be renamed. - - Result Codes - noErr 0 No error - fnfErr -43 Source file or directory not found - fLckdErr -45 File is locked - vLckdErr -46 Destination volume is read-only - dupFNErr -48 Destination already exists - paramErr -50 Function not supported by volume - badMovErr -122 Attempted to move directory into - offspring - afpAccessDenied -5000 The user does not have the right to - move the file or directory - - __________ - - Also see: HMoveRename, HMoveRenameCompat, FSpMoveRenameCompat -*/ - -/*****************************************************************************/ - -pascal OSErr GetVolMountInfoSize(ConstStr255Param volName, - short vRefNum, - short *size); -/* ¦ Get the size of a volume mounting information record. - The GetVolMountInfoSize function determines the how much space the - program needs to allocate for a volume mounting information record. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - size output: The space needed (in bytes) of the volume mounting - information record. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Parameter error - extFSErr -58 External file system error - no file - system claimed this call. - - __________ - - Also see: GetVolMountInfo, VolumeMount BuildAFPVolMountInfo, - RetrieveAFPVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr GetVolMountInfo(ConstStr255Param volName, - short vRefNum, - void *volMountInfo); -/* ¦ Retrieve a volume mounting information record. - The GetVolMountInfo function retrieves a volume mounting information - record containing all the information needed to mount the volume, - except for passwords. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - volMountInfo output: Points to a volume mounting information - record where the mounting information is to - be returned. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - paramErr -50 Parameter error - extFSErr -58 External file system error - no file - system claimed this call. - - __________ - - Also see: GetVolMountInfoSize, VolumeMount, BuildAFPVolMountInfo, - RetrieveAFPVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr VolumeMount(const void *volMountInfo, - short *vRefNum); -/* ¦ Mount a volume using a volume mounting information record. - The VolumeMount function mounts a volume using a volume mounting - information record. - - volMountInfo input: Points to a volume mounting information record. - vRefNum output: A volume reference number. - - Result Codes - noErr 0 No error - notOpenErr -28 AppleTalk is not open - nsvErr -35 Volume not found - paramErr -50 Parameter error; typically, zone, server, - and volume name combination is not valid - or not complete, or the user name is not - recognized - extFSErr -58 External file system error - no file - system claimed this call. - memFullErr -108 Not enough memory to create a new volume - control block for mounting the volume - afpBadUAM -5002 User authentication method is unknown - afpBadVersNum -5003 Workstation is using an AFP version that - the server doesnÕt recognize - afpNoServer -5016 Server is not responding - afpUserNotAuth -5023 User authentication failed (usually, - password is not correct) - afpPwdExpired -5042 Password has expired on server - afpBadDirIDType -5060 Not a fixed directory ID volume - afpCantMountMoreSrvrs -5061 Maximum number of volumes has been - mounted - afpAlreadyMounted -5062 Volume already mounted - afpSameNodeErr -5063 Attempt to log on to a server running - on the same machine - - __________ - - Also see: GetVolMountInfoSize, GetVolMountInfo, BuildAFPVolMountInfo, - RetrieveAFPVolMountInfo -*/ - -/*****************************************************************************/ - -pascal OSErr Share(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Establish a local volume or directory as a share point. - The Share function establishes a local volume or directory as a - share point. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to directory name, or nil if dirID - specifies the directory. - - Result Codes - noErr 0 No error - tmfoErr -42 Too many share points - fnfErr -43 File not found - dupFNErr -48 Already a share point with this name - paramErr -50 Function not supported by volume - dirNFErrdirNFErr -120 Directory not found - afpAccessDenied -5000 This directory cannot be shared - afpObjectTypeErr -5025 Object was a file, not a directory - afpContainsSharedErr -5033 The directory contains a share point - afpInsideSharedErr -5043 The directory is inside a shared directory - - __________ - - Also see: FSpShare, Unshare, FSpUnshare -*/ - -/*****************************************************************************/ - -pascal OSErr FSpShare(const FSSpec *spec); -/* ¦ Establish a local volume or directory as a share point. - The FSpShare function establishes a local volume or directory as a - share point. - - spec input: An FSSpec record specifying the share point. - - Result Codes - noErr 0 No error - tmfoErr -42 Too many share points - fnfErr -43 File not found - dupFNErr -48 Already a share point with this name - paramErr -50 Function not supported by volume - dirNFErrdirNFErr -120 Directory not found - afpAccessDenied -5000 This directory cannot be shared - afpObjectTypeErr -5025 Object was a file, not a directory - afpContainsSharedErr -5033 The directory contains a share point - afpInsideSharedErr -5043 The directory is inside a shared directory - - __________ - - Also see: Share, Unshare, FSpUnshare -*/ - -/*****************************************************************************/ - -pascal OSErr Unshare(short vRefNum, - long dirID, - ConstStr255Param name); -/* ¦ Remove a share point. - The Unshare function removes a share point. - - vRefNum input: Volume specification. - dirID input: Directory ID. - name input: Pointer to directory name, or nil if dirID - specifies the directory. - - Result Codes - noErr 0 No error - fnfErr -43 File not found - paramErr -50 Function not supported by volume - dirNFErrdirNFErr -120 Directory not found - afpObjectTypeErr -5025 Object was a file, not a directory; or, - this directory is not a share point - - __________ - - Also see: Share, FSpShare, FSpUnshare -*/ - -/*****************************************************************************/ - -pascal OSErr FSpUnshare(const FSSpec *spec); -/* ¦ Remove a share point. - The FSpUnshare function removes a share point. - - spec input: An FSSpec record specifying the share point. - - Result Codes - noErr 0 No error - fnfErr -43 File not found - paramErr -50 Function not supported by volume - dirNFErrdirNFErr -120 Directory not found - afpObjectTypeErr -5025 Object was a file, not a directory; or, - this directory is not a share point - - __________ - - Also see: Share, FSpShare, Unshare -*/ - -/*****************************************************************************/ - -pascal OSErr GetUGEntry(short objType, - StringPtr objName, - long *objID); -/* ¦ Retrieve a user or group entry from the local file server. - The GetUGEntry function retrieves user or group entries from the - local file server. - - objType input: The object type: -1 = group; 0 = user - objName input: Points to a buffer (minimum Str31) where the user - or group name is to be returned or must be nil. - output: The user or group name. - objID input: O to get the first user or group. If the entry objID - last returned by GetUGEntry is passed, then user or - group whose alphabetically next in the list of entries - is returned. - output: The user or group ID. - - Result Codes - noErr 0 No error - fnfErr -43 No more users or groups - paramErr -50 Function not supported; or, ioObjID is - negative - - __________ - - Also see: GetUGEntries -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __MOREFILES__ */ diff --git a/src/mac/morefile/Optim.h b/src/mac/morefile/Optim.h deleted file mode 100644 index d09caf71c0..0000000000 --- a/src/mac/morefile/Optim.h +++ /dev/null @@ -1,91 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** DirectoryCopy: #defines that let you make MoreFiles code more efficient. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: Optimization.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -** -** The Optimization changes to MoreFiles source and header files, along with -** this file and OptimizationEnd.h, let you optimize the code produced -** by MoreFiles in several ways. -** -** 1 -- MoreFiles contains extra code so that many routines can run under -** Mac OS systems back to System 6. If your program requires a specific -** version of Mac OS and your program checks for that version before -** calling MoreFiles routines, then you can remove a lot of compatibility -** code by defining one of the following to 1: -** -** __MACOSSEVENFIVEONEORLATER // assume Mac OS 7.5.1 or later -** __MACOSSEVENFIVEORLATER // assume Mac OS 7.5 or later -** __MACOSSEVENORLATER // assume Mac OS 7.0 or later -** -** By default, all compatibility code is ON. -** -** 2 -- You may disable Pascal calling conventions in all MoreFiles routines -** except for system callbacks that require Pascal calling conventions. -** This will make C programs both smaller and faster. -** Just define __WANTPASCALELIMINATION to be 1 to turn this optimization on -** when building MoreFiles for use from C programs (you'll need to keep -** Pascal calling conventions when linking MoreFiles routines with Pascal -** programs). -** -** 3 -- If Metrowerks compiler is used, "#pragma internal on" may help produce -** better code. However, this option can also cause problems if you're -** trying to build MoreFiles as a shared library, so it is by default not used. -** Just define __USEPRAGMAINTERNAL to be 1 to turn this optimization on. -** -** Original changes supplied by Fabrizio Oddone -** -** File: Optimization.h -*/ - - -#ifndef __MACOSSEVENFIVEONEORLATER - #define __MACOSSEVENFIVEONEORLATER 0 -#endif - -#ifndef __MACOSSEVENFIVEORLATER - #define __MACOSSEVENFIVEORLATER __MACOSSEVENFIVEONEORLATER -#endif - -#ifndef __MACOSSEVENORLATER - #if GENERATINGCFM - #define __MACOSSEVENORLATER 1 - #else - #define __MACOSSEVENORLATER __MACOSSEVENFIVEORLATER - #endif -#endif - - -#ifndef __WANTPASCALELIMINATION - #define __WANTPASCALELIMINATION 0 -#endif - -#if __WANTPASCALELIMINATION - #define pascal -#endif - - -#ifndef __USEPRAGMAINTERNAL - #define __USEPRAGMAINTERNAL 0 -#endif - -#if __USEPRAGMAINTERNAL - #if defined(__MWERKS__) - #pragma internal on - #endif -#endif - diff --git a/src/mac/morefile/OptimEnd.h b/src/mac/morefile/OptimEnd.h deleted file mode 100644 index 5cab00a593..0000000000 --- a/src/mac/morefile/OptimEnd.h +++ /dev/null @@ -1,40 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** DirectoryCopy: #defines that let you make MoreFiles code more efficient. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: OptimizationEnd.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -** -** The Optimization changes to MoreFiles source and header files, along with -** this file and Optimization.h, let you optimize the code produced by MoreFiles -** in several ways. -** -** Original changes supplied by Fabrizio Oddone -*/ - - -#if __USEPRAGMAINTERNAL - #if defined(__MWERKS__) - #pragma internal reset - #endif -#endif - - -#if __WANTPASCALELIMINATION - #ifndef __COMPILINGMOREFILES - #undef pascal - #endif -#endif diff --git a/src/mac/morefile/Search.cpp b/src/mac/morefile/Search.cpp deleted file mode 100644 index bdcfd9ff1a..0000000000 --- a/src/mac/morefile/Search.cpp +++ /dev/null @@ -1,1275 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** IndexedSearch and the PBCatSearch compatibility function. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: Search.c -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#include -#include -#include -#include -#include -#include -#include - -#define __COMPILINGMOREFILES - -#include "MoreFile.h" -#include "MoreExtr.h" -#include "Search.h" - -/*****************************************************************************/ - -enum -{ - /* Number of LevelRecs to add each time the searchStack is grown */ - /* 20 levels is probably more than reasonable for most volumes. */ - /* If more are needed, they are allocated 20 levels at a time. */ - kAdditionalLevelRecs = 20 -}; - -/*****************************************************************************/ - -/* -** LevelRecs are used to store the directory ID and index whenever -** IndexedSearch needs to either scan a sub-directory, or return control -** to the caller because the call has timed out or the number of -** matches requested has been found. LevelRecs are stored in an array -** used as a stack. -*/ -struct LevelRec -{ - long dirModDate; /* for detecting most (but not all) catalog changes */ - long dirID; - short index; -}; -typedef struct LevelRec LevelRec; -typedef LevelRec *LevelRecPtr, **LevelRecHandle; - - -/* -** SearchPositionRec is my version of a CatPositionRec. It holds the -** information I need to resuming searching. -*/ -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif -struct SearchPositionRec -{ - long initialize; /* Goofy checksum of volume information used to make */ - /* sure we're resuming a search on the same volume. */ - unsigned short stackDepth; /* Current depth on searchStack. */ - short priv[11]; /* For future use... */ -}; -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif -typedef struct SearchPositionRec SearchPositionRec; -typedef SearchPositionRec *SearchPositionRecPtr; - - -/* -** ExtendedTMTask is a TMTask record extended to hold the timer flag. -*/ -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=mac68k -#endif -struct ExtendedTMTask -{ - TMTask theTask; - Boolean stopSearch; /* the Time Mgr task will set stopSearch to */ - /* true when the timer expires */ -}; -#if PRAGMA_ALIGN_SUPPORTED -#pragma options align=reset -#endif -typedef struct ExtendedTMTask ExtendedTMTask; -typedef ExtendedTMTask *ExtendedTMTaskPtr; - -/*****************************************************************************/ - -static OSErr CheckVol(ConstStr255Param pathname, - short vRefNum, - short *realVRefNum, - long *volID); - -static OSErr CheckStack(unsigned short stackDepth, - LevelRecHandle searchStack, - Size *searchStackSize); - -static OSErr VerifyUserPB(CSParamPtr userPB, - Boolean *includeFiles, - Boolean *includeDirs, - Boolean *includeNames); - -static Boolean IsSubString(ConstStr255Param aStringPtr, - ConstStr255Param subStringPtr); - -static Boolean CompareMasked(const long *data1, - const long *data2, - const long *mask, - short longsToCompare); - -static void CheckForMatches(CInfoPBPtr cPB, - CSParamPtr userPB, - const Str63 matchName, - Boolean includeFiles, - Boolean includeDirs); - -#if __WANTPASCALELIMINATION -#undef pascal -#endif - -#if GENERATINGCFM - -static pascal void TimeOutTask(TMTaskPtr tmTaskPtr); - -#else - -static pascal TMTaskPtr GetTMTaskPtr(void); - -static void TimeOutTask(void); - -#endif - -#if __WANTPASCALELIMINATION -#define pascal -#endif - -static long GetDirModDate(short vRefNum, - long dirID); - -/*****************************************************************************/ - -/* -** CheckVol gets the volume's real vRefNum and builds a volID. The volID -** is used to help insure that calls to resume searching with IndexedSearch -** are to the same volume as the last call to IndexedSearch. -*/ -static OSErr CheckVol(ConstStr255Param pathname, - short vRefNum, - short *realVRefNum, - long *volID) -{ - HParamBlockRec pb; - OSErr error; - - error = GetVolumeInfoNoName(pathname, vRefNum, &pb); - if ( error == noErr ) - { - /* Return the real vRefNum */ - *realVRefNum = pb.volumeParam.ioVRefNum; - - /* Add together a bunch of things that aren't supposed to change on */ - /* a mounted volume that's being searched and that should come up with */ - /* a fairly unique number */ - *volID = pb.volumeParam.ioVCrDate + - pb.volumeParam.ioVRefNum + - pb.volumeParam.ioVNmAlBlks + - pb.volumeParam.ioVAlBlkSiz + - pb.volumeParam.ioVFSID; - } - return ( error ); -} - -/*****************************************************************************/ - -/* -** CheckStack checks the size of the search stack (array) to see if there's -** room to push another LevelRec. If not, CheckStack grows the stack by -** another kAdditionalLevelRecs elements. -*/ -static OSErr CheckStack(unsigned short stackDepth, - LevelRecHandle searchStack, - Size *searchStackSize) -{ - OSErr result; - - if ( (*searchStackSize / sizeof(LevelRec)) == (stackDepth + 1) ) - { - /* Time to grow stack */ - SetHandleSize((Handle)searchStack, *searchStackSize + (kAdditionalLevelRecs * sizeof(LevelRec))); - result = MemError(); /* should be noErr */ - *searchStackSize = InlineGetHandleSize((Handle)searchStack); - } - else - { - result = noErr; - } - - return ( result ); -} - -/*****************************************************************************/ - -/* -** VerifyUserPB makes sure the parameter block passed to IndexedSearch has -** valid parameters. By making this check once, we don't have to worry about -** things like NULL pointers, strings being too long, etc. -** VerifyUserPB also determines if the search includes files and/or -** directories, and determines if a full or partial name search was requested. -*/ -static OSErr VerifyUserPB(CSParamPtr userPB, - Boolean *includeFiles, - Boolean *includeDirs, - Boolean *includeNames) -{ - CInfoPBPtr searchInfo1; - CInfoPBPtr searchInfo2; - - searchInfo1 = userPB->ioSearchInfo1; - searchInfo2 = userPB->ioSearchInfo2; - - /* ioMatchPtr cannot be NULL */ - if ( userPB->ioMatchPtr == NULL ) - { - goto ParamErrExit; - } - - /* ioSearchInfo1 cannot be NULL */ - if ( searchInfo1 == NULL ) - { - goto ParamErrExit; - } - - /* If any bits except partialName, fullName, or negate are set, then */ - /* ioSearchInfo2 cannot be NULL because information in ioSearchInfo2 is required */ - if ( ((userPB->ioSearchBits & ~(fsSBPartialName | fsSBFullName | fsSBNegate)) != 0) && - ( searchInfo2 == NULL )) - { - goto ParamErrExit; - } - - *includeFiles = false; - *includeDirs = false; - *includeNames = false; - - if ( (userPB->ioSearchBits & (fsSBPartialName | fsSBFullName)) != 0 ) - { - /* If any kind of name matching is requested, then ioNamePtr in */ - /* ioSearchInfo1 cannot be NULL or a zero-length string */ - if ( (searchInfo1->hFileInfo.ioNamePtr == NULL) || - (searchInfo1->hFileInfo.ioNamePtr[0] == 0) || - (searchInfo1->hFileInfo.ioNamePtr[0] > (sizeof(Str63) - 1)) ) - { - goto ParamErrExit; - } - - *includeNames = true; - } - - if ( (userPB->ioSearchBits & fsSBFlAttrib) != 0 ) - { - /* The only attributes you can search on are the directory flag */ - /* and the locked flag. */ - if ( (searchInfo2->hFileInfo.ioFlAttrib & ~(ioDirMask | 0x01)) != 0 ) - { - goto ParamErrExit; - } - - /* interested in the directory bit? */ - if ( (searchInfo2->hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* yes, so do they want just directories or just files? */ - if ( (searchInfo1->hFileInfo.ioFlAttrib & ioDirMask) != 0 ) - { - *includeDirs = true; - } - else - { - *includeFiles = true; - } - } - else - { - /* no interest in directory bit - get both files and directories */ - *includeDirs = true; - *includeFiles = true; - } - } - else - { - /* no attribute checking - get both files and directories */ - *includeDirs = true; - *includeFiles = true; - } - - /* If directories are included in the search, */ - /* then the locked attribute cannot be requested. */ - if ( *includeDirs && - ((userPB->ioSearchBits & fsSBFlAttrib) != 0) && - ((searchInfo2->hFileInfo.ioFlAttrib & 0x01) != 0) ) - { - goto ParamErrExit; - } - - /* If files are included in the search, then there cannot be */ - /* a search on the number of files. */ - if ( *includeFiles && - ((userPB->ioSearchBits & fsSBDrNmFls) != 0) ) - { - goto ParamErrExit; - } - - /* If directories are included in the search, then there cannot */ - /* be a search on file lengths. */ - if ( *includeDirs && - ((userPB->ioSearchBits & (fsSBFlLgLen | fsSBFlPyLen | fsSBFlRLgLen | fsSBFlRPyLen)) != 0) ) - { - goto ParamErrExit; - } - - return ( noErr ); - -ParamErrExit: - return ( paramErr ); -} - -/*****************************************************************************/ - -/* -** IsSubString checks to see if a string is a substring of another string. -** Both input strings have already been converted to all uppercase using -** UprString (the same non-international call the File Manager uses). -*/ -static Boolean IsSubString(ConstStr255Param aStringPtr, - ConstStr255Param subStringPtr) -{ - short strLength; /* length of string */ - short subStrLength; /* length of subString */ - Boolean found; /* result of test */ - short index; /* current index into string */ - - found = false; - strLength = aStringPtr[0]; - subStrLength = subStringPtr[0]; - - if ( subStrLength <= strLength) - { - register short count; /* search counter */ - register short strIndex; /* running index into string */ - register short subStrIndex; /* running index into subString */ - - /* start looking at first character */ - index = 1; - - /* continue looking until remaining string is shorter than substring */ - count = strLength - subStrLength + 1; - - do - { - strIndex = index; /* start string index at index */ - subStrIndex = 1; /* start subString index at 1 */ - - while ( !found && (aStringPtr[strIndex] == subStringPtr[subStrIndex]) ) - { - if ( subStrIndex == subStrLength ) - { - /* all characters in subString were found */ - found = true; - } - else - { - /* check next character of substring against next character of string */ - ++subStrIndex; - ++strIndex; - } - } - - if ( !found ) - { - /* start substring search again at next string character */ - ++index; - --count; - } - } while ( count != 0 && (!found) ); - } - - return ( found ); -} - -/*****************************************************************************/ - -/* -** CompareMasked does a bitwise comparison with mask on 1 or more longs. -** data1 and data2 are first exclusive-ORed together resulting with bits set -** where they are different. That value is then ANDed with the mask resulting -** with bits set if the test fails. true is returned if the tests pass. -*/ -static Boolean CompareMasked(const long *data1, - const long *data2, - const long *mask, - short longsToCompare) -{ - Boolean result = true; - - while ( (longsToCompare != 0) && (result == true) ) - { - /* (*data1 ^ *data2) = bits that are different, so... */ - /* ((*data1 ^ *data2) & *mask) = bits that are different that we're interested in */ - - if ( ((*data1 ^ *data2) & *mask) != 0 ) - result = false; - - ++data1; - ++data2; - ++mask; - --longsToCompare; - } - - return ( result ); -} - -/*****************************************************************************/ - -/* -** Check for matches compares the search criteria in userPB to the file -** system object in cPB. If there's a match, then the information in cPB is -** is added to the match array and the actual match count is incremented. -*/ -static void CheckForMatches(CInfoPBPtr cPB, - CSParamPtr userPB, - const Str63 matchName, - Boolean includeFiles, - Boolean includeDirs) -{ - long searchBits; - CInfoPBPtr searchInfo1; - CInfoPBPtr searchInfo2; - Str63 itemName; /* copy of object's name for partial name matching */ - Boolean foundMatch; - - foundMatch = false; /* default to no match */ - - searchBits = userPB->ioSearchBits; - searchInfo1 = userPB->ioSearchInfo1; - searchInfo2 = userPB->ioSearchInfo2; - - /* Into the if statements that go on forever... */ - - if ( (cPB->hFileInfo.ioFlAttrib & ioDirMask) == 0 ) - { - if (!includeFiles) - { - goto Failed; - } - } - else - { - if (!includeDirs) - { - goto Failed; - } - } - - if ( (searchBits & fsSBPartialName) != 0 ) - { - if ( (cPB->hFileInfo.ioNamePtr[0] > 0) && - (cPB->hFileInfo.ioNamePtr[0] <= (sizeof(Str63) - 1)) ) - { - /* Make uppercase copy of object name */ - BlockMoveData(cPB->hFileInfo.ioNamePtr, - itemName, - cPB->hFileInfo.ioNamePtr[0] + 1); - /* Use the same non-international call the File Manager uses */ - UpperString(itemName, true); - } - else - { - goto Failed; - } - - { - if ( !IsSubString(itemName, matchName) ) - { - goto Failed; - } - else if ( searchBits == fsSBPartialName ) - { - /* optimize for name matching only since it is most common way to search */ - goto Hit; - } - } - } - - if ( (searchBits & fsSBFullName) != 0 ) - { - /* Use the same non-international call the File Manager uses */ - if ( !EqualString(cPB->hFileInfo.ioNamePtr, matchName, false, true) ) - { - goto Failed; - } - else if ( searchBits == fsSBFullName ) - { - /* optimize for name matching only since it is most common way to search */ - goto Hit; - } - } - - if ( (searchBits & fsSBFlParID) != 0 ) - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlParID) < (unsigned long)(searchInfo1->hFileInfo.ioFlParID)) || - ((unsigned long)(cPB->hFileInfo.ioFlParID) > (unsigned long)(searchInfo2->hFileInfo.ioFlParID)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlAttrib) != 0 ) - { - if ( ((cPB->hFileInfo.ioFlAttrib ^ searchInfo1->hFileInfo.ioFlAttrib) & - searchInfo2->hFileInfo.ioFlAttrib) != 0 ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBDrNmFls) != 0 ) - { - if ( ((unsigned long)(cPB->dirInfo.ioDrNmFls) < (unsigned long)(searchInfo1->dirInfo.ioDrNmFls)) || - ((unsigned long)(cPB->dirInfo.ioDrNmFls) > (unsigned long)(searchInfo2->dirInfo.ioDrNmFls)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlFndrInfo) != 0 ) /* fsSBFlFndrInfo is same as fsSBDrUsrWds */ - { - if ( !CompareMasked((long *)&(cPB->hFileInfo.ioFlFndrInfo), - (long *)&(searchInfo1->hFileInfo.ioFlFndrInfo), - (long *)&(searchInfo2->hFileInfo.ioFlFndrInfo), - sizeof(FInfo) / sizeof(long)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlXFndrInfo) != 0 ) /* fsSBFlXFndrInfo is same as fsSBDrFndrInfo */ - { - if ( !CompareMasked((long *)&(cPB->hFileInfo.ioFlXFndrInfo), - (long *)&(searchInfo1->hFileInfo.ioFlXFndrInfo), - (long *)&(searchInfo2->hFileInfo.ioFlXFndrInfo), - sizeof(FXInfo) / sizeof(long)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlLgLen) != 0 ) - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlLgLen) < (unsigned long)(searchInfo1->hFileInfo.ioFlLgLen)) || - ((unsigned long)(cPB->hFileInfo.ioFlLgLen) > (unsigned long)(searchInfo2->hFileInfo.ioFlLgLen)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlPyLen) != 0 ) - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlPyLen) < (unsigned long)(searchInfo1->hFileInfo.ioFlPyLen)) || - ((unsigned long)(cPB->hFileInfo.ioFlPyLen) > (unsigned long)(searchInfo2->hFileInfo.ioFlPyLen)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlRLgLen) != 0 ) - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlRLgLen) < (unsigned long)(searchInfo1->hFileInfo.ioFlRLgLen)) || - ((unsigned long)(cPB->hFileInfo.ioFlRLgLen) > (unsigned long)(searchInfo2->hFileInfo.ioFlRLgLen)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlRPyLen) != 0 ) - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlRPyLen) < (unsigned long)(searchInfo1->hFileInfo.ioFlRPyLen)) || - ((unsigned long)(cPB->hFileInfo.ioFlRPyLen) > (unsigned long)(searchInfo2->hFileInfo.ioFlRPyLen)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlCrDat) != 0 ) /* fsSBFlCrDat is same as fsSBDrCrDat */ - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlCrDat) < (unsigned long)(searchInfo1->hFileInfo.ioFlCrDat)) || - ((unsigned long)(cPB->hFileInfo.ioFlCrDat) > (unsigned long)(searchInfo2->hFileInfo.ioFlCrDat)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlMdDat) != 0 ) /* fsSBFlMdDat is same as fsSBDrMdDat */ - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlMdDat) < (unsigned long)(searchInfo1->hFileInfo.ioFlMdDat)) || - ((unsigned long)(cPB->hFileInfo.ioFlMdDat) > (unsigned long)(searchInfo2->hFileInfo.ioFlMdDat)) ) - { - goto Failed; - } - } - - if ( (searchBits & fsSBFlBkDat) != 0 ) /* fsSBFlBkDat is same as fsSBDrBkDat */ - { - if ( ((unsigned long)(cPB->hFileInfo.ioFlBkDat) < (unsigned long)(searchInfo1->hFileInfo.ioFlBkDat)) || - ((unsigned long)(cPB->hFileInfo.ioFlBkDat) > (unsigned long)(searchInfo2->hFileInfo.ioFlBkDat)) ) - { - goto Failed; - } - } - - /* Hey, we passed all of the tests! */ - -Hit: - foundMatch = true; - -/* foundMatch is false if code jumps to Failed */ -Failed: - /* Do we reverse our findings? */ - if ( (searchBits & fsSBNegate) != 0 ) - { - foundMatch = !foundMatch; /* matches are not, not matches are */ - } - - if ( foundMatch ) - { - - /* Move the match into the match buffer */ - userPB->ioMatchPtr[userPB->ioActMatchCount].vRefNum = cPB->hFileInfo.ioVRefNum; - userPB->ioMatchPtr[userPB->ioActMatchCount].parID = cPB->hFileInfo.ioFlParID; - if ( cPB->hFileInfo.ioNamePtr[0] > 63 ) - { - cPB->hFileInfo.ioNamePtr[0] = 63; - } - BlockMoveData(cPB->hFileInfo.ioNamePtr, - userPB->ioMatchPtr[userPB->ioActMatchCount].name, - cPB->hFileInfo.ioNamePtr[0] + 1); - - /* increment the actual count */ - ++(userPB->ioActMatchCount); - } -} - -/*****************************************************************************/ - -/* -** TimeOutTask is executed when the timer goes off. It simply sets the -** stopSearch field to true. After each object is found and possibly added -** to the matches buffer, stopSearch is checked to see if the search should -** continue. -*/ - -#if __WANTPASCALELIMINATION -#undef pascal -#endif - -#if GENERATINGCFM - -static pascal void TimeOutTask(TMTaskPtr tmTaskPtr) -{ - ((ExtendedTMTaskPtr)tmTaskPtr)->stopSearch = true; -} - -#else - -static pascal TMTaskPtr GetTMTaskPtr(void) - ONEWORDINLINE(0x2e89); /* MOVE.L A1,(SP) */ - -static void TimeOutTask(void) -{ - ((ExtendedTMTaskPtr)GetTMTaskPtr())->stopSearch = true; -} - -#endif - -#if __WANTPASCALELIMINATION -#define pascal -#endif - -/*****************************************************************************/ - -/* -** GetDirModDate returns the modification date of a directory. If there is -** an error getting the modification date, -1 is returned to indicate -** something went wrong. -*/ -static long GetDirModDate(short vRefNum, - long dirID) -{ - CInfoPBRec pb; - Str31 tempName; - long modDate; - - /* Protection against File Sharing problem */ - tempName[0] = 0; - pb.dirInfo.ioNamePtr = tempName; - pb.dirInfo.ioVRefNum = vRefNum; - pb.dirInfo.ioDrDirID = dirID; - pb.dirInfo.ioFDirIndex = -1; /* use ioDrDirID */ - - if ( PBGetCatInfoSync(&pb) == noErr ) - { - modDate = pb.dirInfo.ioDrMdDat; - } - else - { - modDate = -1; - } - - return ( modDate ); -} - -/*****************************************************************************/ - -pascal OSErr IndexedSearch(CSParamPtr pb, - long dirID) -{ - static LevelRecHandle searchStack = NULL; /* static handle to LevelRec stack */ - static Size searchStackSize = 0; /* size of static handle */ - SearchPositionRecPtr catPosition; - long modDate; - short index; - ExtendedTMTask timerTask; - OSErr result; - short realVRefNum; - Str63 itemName; - CInfoPBRec cPB; - long tempLong; - Boolean includeFiles; - Boolean includeDirs; - Boolean includeNames; - Str63 upperName; - - timerTask.stopSearch = false; /* don't stop yet! */ - - /* If request has a timeout, install a Time Manager task. */ - if ( pb->ioSearchTime != 0 ) - { - /* Start timer */ - timerTask.theTask.tmAddr = NewTimerProc(TimeOutTask); - InsTime((QElemPtr)&(timerTask.theTask)); - PrimeTime((QElemPtr)&(timerTask.theTask), pb->ioSearchTime); - } - - /* Check the parameter block passed for things that we don't want to assume */ - /* are OK later in the code. For example, make sure pointers to data structures */ - /* and buffers are not NULL. And while we're in there, see if the request */ - /* specified searching for files, directories, or both, and see if the search */ - /* was by full or partial name. */ - result = VerifyUserPB(pb, &includeFiles, &includeDirs, &includeNames); - if ( result == noErr ) - { - pb->ioActMatchCount = 0; /* no matches yet */ - - if ( includeNames ) - { - /* The search includes seach by full or partial name. */ - /* Make an upper case copy of the match string to pass to */ - /* CheckForMatches. */ - BlockMoveData(pb->ioSearchInfo1->hFileInfo.ioNamePtr, - upperName, - pb->ioSearchInfo1->hFileInfo.ioNamePtr[0] + 1); - /* Use the same non-international call the File Manager uses */ - UpperString(upperName, true); - } - - /* Prevent casting to my type throughout code */ - catPosition = (SearchPositionRecPtr)&pb->ioCatPosition; - - /* Create searchStack first time called */ - if ( searchStack == NULL ) - { - searchStack = (LevelRecHandle)NewHandle(kAdditionalLevelRecs * sizeof(LevelRec)); - } - - /* Make sure searchStack really exists */ - if ( searchStack != NULL ) - { - searchStackSize = InlineGetHandleSize((Handle)searchStack); - - /* See if the search is a new search or a resumed search. */ - if ( catPosition->initialize == 0 ) - { - /* New search. */ - - /* Get the real vRefNum and fill in catPosition->initialize. */ - result = CheckVol(pb->ioNamePtr, pb->ioVRefNum, &realVRefNum, &catPosition->initialize); - if ( result == noErr ) - { - /* clear searchStack */ - catPosition->stackDepth = 0; - - /* use dirID parameter passed and... */ - index = -1; /* start with the passed directory itself! */ - } - } - else - { - /* We're resuming a search. */ - - /* Get the real vRefNum and make sure catPosition->initialize is valid. */ - result = CheckVol(pb->ioNamePtr, pb->ioVRefNum, &realVRefNum, &tempLong); - if ( result == noErr ) - { - /* Make sure the resumed search is to the same volume! */ - if ( catPosition->initialize == tempLong ) - { - /* For resume, catPosition->stackDepth > 0 */ - if ( catPosition->stackDepth > 0 ) - { - /* Position catPosition->stackDepth to access last saved level */ - --(catPosition->stackDepth); - - /* Get the dirID and index for the next item */ - dirID = (*searchStack)[catPosition->stackDepth].dirID; - index = (*searchStack)[catPosition->stackDepth].index; - - /* Check the dir's mod date against the saved mode date on our "stack" */ - modDate = GetDirModDate(realVRefNum, dirID); - if ( modDate != (*searchStack)[catPosition->stackDepth].dirModDate ) - { - result = catChangedErr; - } - } - else - { - /* Invalid catPosition record was passed */ - result = paramErr; - } - } - else - { - /* The volume is not the same */ - result = catChangedErr; - } - } - } - - if ( result == noErr ) - { - /* ioNamePtr and ioVRefNum only need to be set up once. */ - cPB.hFileInfo.ioNamePtr = itemName; - cPB.hFileInfo.ioVRefNum = realVRefNum; - - /* - ** Here's the loop that: - ** Finds the next item on the volume. - ** If noErr, calls the code to check for matches and add matches - ** to the match buffer. - ** Sets up dirID and index for to find the next item on the volume. - ** - ** The looping ends when: - ** (a) an unexpected error is returned by PBGetCatInfo. All that - ** is expected is noErr and fnfErr (after the last item in a - ** directory is found). - ** (b) the caller specified a timeout and our Time Manager task - ** has fired. - ** (c) the number of matches requested by the caller has been found. - ** (d) the last item on the volume was found. - */ - do - { - /* get the next item */ - cPB.hFileInfo.ioFDirIndex = index; - cPB.hFileInfo.ioDirID = dirID; - result = PBGetCatInfoSync(&cPB); - if ( index != -1 ) - { - if ( result == noErr ) - { - /* We found something */ - - CheckForMatches(&cPB, pb, upperName, includeFiles, includeDirs); - - ++index; - if ( (cPB.dirInfo.ioFlAttrib & ioDirMask) != 0 ) - { - /* It's a directory */ - - result = CheckStack(catPosition->stackDepth, searchStack, &searchStackSize); - if ( result == noErr ) - { - /* Save the current state on the searchStack */ - /* when we come back, this is where we'll start */ - (*searchStack)[catPosition->stackDepth].dirID = dirID; - (*searchStack)[catPosition->stackDepth].index = index; - (*searchStack)[catPosition->stackDepth].dirModDate = GetDirModDate(realVRefNum, dirID); - - /* position catPosition->stackDepth for next saved level */ - ++(catPosition->stackDepth); - - /* The next item to get is the 1st item in the child directory */ - dirID = cPB.dirInfo.ioDrDirID; - index = 1; - } - } - /* else do nothing for files */ - } - else - { - /* End of directory found (or we had some error and that */ - /* means we have to drop out of this directory). */ - /* Restore last thing put on stack and */ - /* see if we need to continue or quit. */ - if ( catPosition->stackDepth > 0 ) - { - /* position catPosition->stackDepth to access last saved level */ - --(catPosition->stackDepth); - - dirID = (*searchStack)[catPosition->stackDepth].dirID; - index = (*searchStack)[catPosition->stackDepth].index; - - /* Check the dir's mod date against the saved mode date on our "stack" */ - modDate = GetDirModDate(realVRefNum, dirID); - if ( modDate != (*searchStack)[catPosition->stackDepth].dirModDate ) - { - result = catChangedErr; - } - else - { - /* Going back to ancestor directory. */ - /* Clear error so we can continue. */ - result = noErr; - } - } - else - { - /* We hit the bottom of the stack, so we'll let the */ - /* the eofErr drop us out of the loop. */ - result = eofErr; - } - } - } - else - { - /* Special case for index == -1; that means that we're starting */ - /* a new search and so the first item to check is the directory */ - /* passed to us. */ - if ( result == noErr ) - { - /* We found something */ - - CheckForMatches(&cPB, pb, upperName, includeFiles, includeDirs); - - /* Now, set the index to 1 and then we're ready to look inside */ - /* the passed directory. */ - index = 1; - } - } - } while ( (!timerTask.stopSearch) && /* timer hasn't fired */ - (result == noErr) && /* no unexpected errors */ - (pb->ioReqMatchCount > pb->ioActMatchCount) ); /* we haven't found our limit */ - - /* Did we drop out of the loop because of timeout or */ - /* ioReqMatchCount was found? */ - if ( result == noErr ) - { - result = CheckStack(catPosition->stackDepth, searchStack, &searchStackSize); - if ( result == noErr ) - { - /* Either there was a timeout or ioReqMatchCount was reached. */ - /* Save the dirID and index for the next time we're called. */ - - (*searchStack)[catPosition->stackDepth].dirID = dirID; - (*searchStack)[catPosition->stackDepth].index = index; - (*searchStack)[catPosition->stackDepth].dirModDate = GetDirModDate(realVRefNum, dirID); - - /* position catPosition->stackDepth for next saved level */ - - ++(catPosition->stackDepth); - } - } - } - } - else - { - /* searchStack Handle could not be allocated */ - result = memFullErr; - } - } - - if ( pb->ioSearchTime != 0 ) - { - /* Stop Time Manager task here if it was installed */ - RmvTime((QElemPtr)&(timerTask.theTask)); - DisposeRoutineDescriptor(timerTask.theTask.tmAddr); - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr PBCatSearchSyncCompat(CSParamPtr paramBlock) -{ - static Boolean fullExtFSDispatchingtested = false; - static Boolean hasFullExtFSDispatching = false; - OSErr result; - Boolean supportsCatSearch; - long response; - GetVolParmsInfoBuffer volParmsInfo; - long infoSize; - - result = noErr; - - /* See if File Manager will pass CatSearch requests to external file systems */ - /* we'll store the results in a static variable so we don't have to call Gestalt */ - /* everytime we're called. */ - if ( !fullExtFSDispatchingtested ) - { - fullExtFSDispatchingtested = true; - if ( Gestalt(gestaltFSAttr, &response) == noErr ) - { - hasFullExtFSDispatching = ((response & (1L << gestaltFullExtFSDispatching)) != 0); - } - } - - /* CatSearch is a per volume attribute, so we have to check each time we're */ - /* called to see if it is available on the volume specified. */ - supportsCatSearch = false; - if ( hasFullExtFSDispatching ) - { - infoSize = sizeof(GetVolParmsInfoBuffer); - result = HGetVolParms(paramBlock->ioNamePtr, paramBlock->ioVRefNum, - &volParmsInfo, &infoSize); - if ( result == noErr ) - { - supportsCatSearch = hasCatSearch(volParmsInfo); - } - } - - /* noErr or paramErr is OK here. */ - /* paramErr just means that GetVolParms isn't supported by this volume */ - if ( (result == noErr) || (result == paramErr) ) - { - if ( supportsCatSearch ) - { - /* Volume supports CatSearch so use it. */ - /* CatSearch is faster than an indexed search. */ - result = PBCatSearchSync(paramBlock); - } - else - { - /* Volume doesn't support CatSearch so */ - /* search using IndexedSearch from root directory. */ - result = IndexedSearch(paramBlock, fsRtDirID); - } - } - - return ( result ); -} - -/*****************************************************************************/ - -pascal OSErr NameFileSearch(ConstStr255Param volName, - short vRefNum, - ConstStr255Param fileName, - FSSpecPtr matches, - long reqMatchCount, - long *actMatchCount, - Boolean newSearch, - Boolean partial) -{ - CInfoPBRec searchInfo1, searchInfo2; - HParamBlockRec pb; - OSErr error; - static CatPositionRec catPosition; - static short lastVRefNum = 0; - - /* get the real volume reference number */ - error = DetermineVRefNum(volName, vRefNum, &vRefNum); - if ( error != noErr ) - return ( error ); - - pb.csParam.ioNamePtr = NULL; - pb.csParam.ioVRefNum = vRefNum; - pb.csParam.ioMatchPtr = matches; - pb.csParam.ioReqMatchCount = reqMatchCount; - if ( partial ) /* tell CatSearch what we're looking for: */ - { - pb.csParam.ioSearchBits = fsSBPartialName + fsSBFlAttrib; /* partial name file matches or */ - } - else - { - pb.csParam.ioSearchBits = fsSBFullName + fsSBFlAttrib; /* full name file matches */ - } - pb.csParam.ioSearchInfo1 = &searchInfo1; - pb.csParam.ioSearchInfo2 = &searchInfo2; - pb.csParam.ioSearchTime = 0; - if ( (newSearch) || /* If caller specified new search */ - (lastVRefNum != vRefNum) ) /* or if last search was to another volume, */ - { - catPosition.initialize = 0; /* then search from beginning of catalog */ - } - pb.csParam.ioCatPosition = catPosition; - pb.csParam.ioOptBuffer = GetTempBuffer(0x00004000, &pb.csParam.ioOptBufSize); - - /* search for fileName */ - searchInfo1.hFileInfo.ioNamePtr = (StringPtr)fileName; - searchInfo2.hFileInfo.ioNamePtr = NULL; - - /* only match files (not directories) */ - searchInfo1.hFileInfo.ioFlAttrib = 0x00; - searchInfo2.hFileInfo.ioFlAttrib = ioDirMask; - - error = PBCatSearchSyncCompat((CSParamPtr)&pb); - - if ( (error == noErr) || /* If no errors or the end of catalog was */ - (error == eofErr) ) /* found, then the call was successful so */ - { - *actMatchCount = pb.csParam.ioActMatchCount; /* return the match count */ - } - else - { - *actMatchCount = 0; /* else no matches found */ - } - - if ( (error == noErr) || /* If no errors */ - (error == catChangedErr) ) /* or there was a change in the catalog */ - { - catPosition = pb.csParam.ioCatPosition; - lastVRefNum = vRefNum; - /* we can probably start the next search where we stopped this time */ - } - else - { - catPosition.initialize = 0; - /* start the next search from beginning of catalog */ - } - - if ( pb.csParam.ioOptBuffer != NULL ) - { - DisposePtr(pb.csParam.ioOptBuffer); - } - - return ( error ); -} - -/*****************************************************************************/ - -pascal OSErr CreatorTypeFileSearch(ConstStr255Param volName, - short vRefNum, - OSType creator, - OSType fileType, - FSSpecPtr matches, - long reqMatchCount, - long *actMatchCount, - Boolean newSearch) -{ - CInfoPBRec searchInfo1, searchInfo2; - HParamBlockRec pb; - OSErr error; - static CatPositionRec catPosition; - static short lastVRefNum = 0; - - /* get the real volume reference number */ - error = DetermineVRefNum(volName, vRefNum, &vRefNum); - if ( error != noErr ) - return ( error ); - - pb.csParam.ioNamePtr = NULL; - pb.csParam.ioVRefNum = vRefNum; - pb.csParam.ioMatchPtr = matches; - pb.csParam.ioReqMatchCount = reqMatchCount; - pb.csParam.ioSearchBits = fsSBFlAttrib + fsSBFlFndrInfo; /* Looking for finder info file matches */ - pb.csParam.ioSearchInfo1 = &searchInfo1; - pb.csParam.ioSearchInfo2 = &searchInfo2; - pb.csParam.ioSearchTime = 0; - if ( (newSearch) || /* If caller specified new search */ - (lastVRefNum != vRefNum) ) /* or if last search was to another volume, */ - { - catPosition.initialize = 0; /* then search from beginning of catalog */ - } - pb.csParam.ioCatPosition = catPosition; - pb.csParam.ioOptBuffer = GetTempBuffer(0x00004000, &pb.csParam.ioOptBufSize); - - /* no fileName */ - searchInfo1.hFileInfo.ioNamePtr = NULL; - searchInfo2.hFileInfo.ioNamePtr = NULL; - - /* only match files (not directories) */ - searchInfo1.hFileInfo.ioFlAttrib = 0x00; - searchInfo2.hFileInfo.ioFlAttrib = ioDirMask; - - /* search for creator; if creator = 0x00000000, ignore creator */ - searchInfo1.hFileInfo.ioFlFndrInfo.fdCreator = creator; - if ( creator == (OSType)0x00000000 ) - { - searchInfo2.hFileInfo.ioFlFndrInfo.fdCreator = (OSType)0x00000000; - } - else - { - searchInfo2.hFileInfo.ioFlFndrInfo.fdCreator = (OSType)0xffffffff; - } - - /* search for fileType; if fileType = 0x00000000, ignore fileType */ - searchInfo1.hFileInfo.ioFlFndrInfo.fdType = fileType; - if ( fileType == (OSType)0x00000000 ) - { - searchInfo2.hFileInfo.ioFlFndrInfo.fdType = (OSType)0x00000000; - } - else - { - searchInfo2.hFileInfo.ioFlFndrInfo.fdType = (OSType)0xffffffff; - } - - /* zero all other FInfo fields */ - searchInfo1.hFileInfo.ioFlFndrInfo.fdFlags = 0; - searchInfo1.hFileInfo.ioFlFndrInfo.fdLocation.v = 0; - searchInfo1.hFileInfo.ioFlFndrInfo.fdLocation.h = 0; - searchInfo1.hFileInfo.ioFlFndrInfo.fdFldr = 0; - - searchInfo2.hFileInfo.ioFlFndrInfo.fdFlags = 0; - searchInfo2.hFileInfo.ioFlFndrInfo.fdLocation.v = 0; - searchInfo2.hFileInfo.ioFlFndrInfo.fdLocation.h = 0; - searchInfo2.hFileInfo.ioFlFndrInfo.fdFldr = 0; - - error = PBCatSearchSyncCompat((CSParamPtr)&pb); - - if ( (error == noErr) || /* If no errors or the end of catalog was */ - (error == eofErr) ) /* found, then the call was successful so */ - { - *actMatchCount = pb.csParam.ioActMatchCount; /* return the match count */ - } - else - { - *actMatchCount = 0; /* else no matches found */ - } - - if ( (error == noErr) || /* If no errors */ - (error == catChangedErr) ) /* or there was a change in the catalog */ - { - catPosition = pb.csParam.ioCatPosition; - lastVRefNum = vRefNum; - /* we can probably start the next search where we stopped this time */ - } - else - { - catPosition.initialize = 0; - /* start the next search from beginning of catalog */ - } - - if ( pb.csParam.ioOptBuffer != NULL ) - { - DisposePtr(pb.csParam.ioOptBuffer); - } - - return ( error ); -} - -/*****************************************************************************/ diff --git a/src/mac/morefile/Search.h b/src/mac/morefile/Search.h deleted file mode 100644 index fe79c120fd..0000000000 --- a/src/mac/morefile/Search.h +++ /dev/null @@ -1,246 +0,0 @@ -/* -** Apple Macintosh Developer Technical Support -** -** IndexedSearch and the PBCatSearch compatibility function. -** -** by Jim Luther, Apple Developer Technical Support Emeritus -** -** File: Search.h -** -** Copyright © 1992-1998 Apple Computer, Inc. -** All rights reserved. -** -** You may incorporate this sample code into your applications without -** restriction, though the sample code has been provided "AS IS" and the -** responsibility for its operation is 100% yours. However, what you are -** not permitted to do is to redistribute the source as "DSC Sample Code" -** after having made changes. If you're going to re-distribute the source, -** we require that you make it clear in the source that the code was -** descended from Apple Sample Code, but that you've made changes. -*/ - -#ifndef __SEARCH__ -#define __SEARCH__ - -#include -#include - -#include "Optim.h" - -#ifdef __cplusplus -extern "C" { -#endif - -/*****************************************************************************/ - -pascal OSErr IndexedSearch(CSParamPtr pb, - long dirID); -/* ¦ Search in and below a directory. - The IndexedSearch function performs an indexed search in and below the - specified directory using the same parameters (in pb) as is passed to - PBCatSearch. See Inside Macintosh: Files for a description of the - parameter block. - - pb input: A CSParamPtr record specifying the volume to search - and the search criteria. - output: Fields in the parameter block are returned indicating - the number of matches found, the matches, and if the - search ended with noErr, the CatPosition record that - lets you resume a search where the last search left - off. - dirID input: The directory to search. If fsRtDirID is passed, - the entire volume is searched. - - Note: If you use a high-level debugger and use ioSearchTime to limit - the length of time to run the search, you'll want to step over - calls to IndexedSearch because it installs a Time Manager task. - Most high-level debuggers don't deal gracefully with interrupt - driven code. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - eofErr -39 End of catalog found (this is normal!) - paramErr -50 Parameter block has invalid parameters - (see source for VerifyUserPB) or - invalid catPosition record was passed - extFSErr -58 External file system error - no file - system claimed this call. - memFullErr -108 Memory could not be allocated in heap - catChangedErr -1304 Catalog has changed and catalog position - record may be invalid - - __________ - - See also: PBCatSearch, PBCatSearchSyncCompat -*/ - -/*****************************************************************************/ - -pascal OSErr PBCatSearchSyncCompat(CSParamPtr paramBlock); -/* ¦ Search a volume using PBCatSearch or IndexedSearch. - The PBCatSearchSyncCompat function uses PBCatSearch (if available) or - IndexedSearch (if PBCatSearch is not available) to search a volume - using a set of search criteria that you specify. It builds a list of all - files or directories that meet your specifications. - - pb input: A CSParamPtr record specifying the volume to search - and the search criteria. - output: Fields in the parameter block are returned indicating - the number of matches found, the matches, and if the - search ended with noErr, the CatPosition record that - lets you resume a search where the last search left - off. - - Note: If you use a high-level debugger and use ioSearchTime to limit - the length of time to run the search, you'll want to step over - calls to PBCatSearchSyncCompat because it calls IndexedSearch - which installs a Time Manager task. Most high-level debuggers - don't deal gracefully with interrupt driven code. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - eofErr -39 End of catalog found (this is normal!) - paramErr -50 Parameter block has invalid parameters - (see source for VerifyUserPB) or - invalid catPosition record was passed - extFSErr -58 External file system error - no file - system claimed this call. - memFullErr -108 Memory could not be allocated in heap - catChangedErr -1304 Catalog has changed and catalog position - record may be invalid - afpCatalogChanged -5037 Catalog has changed and search cannot - be resumed - - __________ - - See also: PBCatSearch, IndexedSearch -*/ - -/*****************************************************************************/ - -pascal OSErr NameFileSearch(ConstStr255Param volName, - short vRefNum, - ConstStr255Param fileName, - FSSpecPtr matches, - long reqMatchCount, - long *actMatchCount, - Boolean newSearch, - Boolean partial); -/* ¦ Search for files by file name with PBCatSearch. - The NameFileSearch function searches for files with a specific file - name on a volume that supports PBCatSearch. - Note: A result of catChangedErr means the catalog has changed between - searches, but the search can be continued with the possiblity that you - may miss some matches or get duplicate matches. For all other results - (except for noErr), the search cannot be continued. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - fileName input: The name of the file to search for. - matches input: Pointer to array of FSSpec where the match list is - returned. - reqMatchCount input: Maximum number of matches to return (the number of - elements in the matches array). - actMatchCount output: The number of matches actually returned. - newSearch input: If true, start a new search. If false and if - vRefNum is the same as the last call to - NameFileSearch, then start searching at the - position where the last search left off. - partial input: If the partial parameter is false, then only files - that exactly match fileName will be found. If the - partial parameter is true, then all file names that - contain fileName will be found. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - eofErr -39 End of catalog found (this is normal!) - paramErr -50 Parameter block has invalid parameters - (see source for VerifyUserPB) or - invalid catPosition record was passed - extFSErr -58 External file system error - no file - system claimed this call. - memFullErr -108 Memory could not be allocated in heap - catChangedErr -1304 Catalog has changed and catalog position - record may be invalid - afpCatalogChanged -5037 Catalog has changed and search cannot - be resumed - - __________ - - Also see: CreatorTypeFileSearch -*/ - -/*****************************************************************************/ - -pascal OSErr CreatorTypeFileSearch(ConstStr255Param volName, - short vRefNum, - OSType creator, - OSType fileType, - FSSpecPtr matches, - long reqMatchCount, - long *actMatchCount, - Boolean newSearch); -/* ¦ Search for files by creator/fileType with PBCatSearch. - The CreatorTypeFileSearch function searches for files with a specific - creator or fileType on a volume that supports PBCatSearch. - Note: A result of catChangedErr means the catalog has changed between - searches, but the search can be continued with the possiblity that you - may miss some matches or get duplicate matches. For all other results - (except for noErr), the search cannot be continued. - - volName input: A pointer to the name of a mounted volume - or nil. - vRefNum input: Volume specification. - creator input: The creator type of the file to search for. - To ignore the creator type, pass 0x00000000 in - this field. - fileType input: The file type of the file to search for. - To ignore the file type, pass 0x00000000 in - this field. - matches input: Pointer to array of FSSpec where the match list is - returned. - reqMatchCount input: Maximum number of matches to return (the number of - elements in the matches array). - actMatchCount output: The number of matches actually returned. - newSearch input: If true, start a new search. If false and if - vRefNum is the same as the last call to - CreatorTypeFileSearch, then start searching at the - position where the last search left off. - - Result Codes - noErr 0 No error - nsvErr -35 Volume not found - ioErr -36 I/O error - eofErr -39 End of catalog found (this is normal!) - paramErr -50 Parameter block has invalid parameters - (see source for VerifyUserPB) or - invalid catPosition record was passed - extFSErr -58 External file system error - no file - system claimed this call. - memFullErr -108 Memory could not be allocated in heap - catChangedErr -1304 Catalog has changed and catalog position - record may be invalid - afpCatalogChanged -5037 Catalog has changed and search cannot - be resumed - - __________ - - Also see: NameFileSearch -*/ - -/*****************************************************************************/ - -#ifdef __cplusplus -} -#endif - -#include "OptimEnd.h" - -#endif /* __SEARCH__ */ diff --git a/src/mac/msgdlg.cpp b/src/mac/msgdlg.cpp deleted file mode 100644 index 775ac8f064..0000000000 --- a/src/mac/msgdlg.cpp +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.cpp -// Purpose: wxMessageDialog -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "msgdlg.h" -#endif - -#include "wx/msgdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxMessageDialog, wxDialog) -#endif - -wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption, - long style, const wxPoint& pos) -{ - m_caption = caption; - m_message = message; - m_dialogStyle = style; - m_parent = parent; -} - -int wxMessageDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/mac/notebook.cpp b/src/mac/notebook.cpp deleted file mode 100644 index 312dd0f3d3..0000000000 --- a/src/mac/notebook.cpp +++ /dev/null @@ -1,377 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: implementation of wxNotebook -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -#include -#include -#include -#include - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange) - - EVT_SIZE(wxNotebook::OnSize) - EVT_SET_FOCUS(wxNotebook::OnSetFocus) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNotebook construction -// ---------------------------------------------------------------------------- - -// common part of all ctors -void wxNotebook::Init() -{ - m_pImageList = NULL; - m_nSelection = -1; -} - -// default for dynamic class -wxNotebook::wxNotebook() -{ - Init(); -} - -// the same arguments as for wxControl -wxNotebook::wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - Create(parent, id, pos, size, style, name); -} - -// Create() function -bool wxNotebook::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // base init - SetName(name); - SetParent(parent); - - m_windowId = id == -1 ? NewControlId() : id; - - // style - m_windowStyle = style; - - if ( parent != NULL ) - parent->AddChild(this); - - // TODO - - return FALSE; -} - -// dtor -wxNotebook::~wxNotebook() -{ -} - -// ---------------------------------------------------------------------------- -// wxNotebook accessors -// ---------------------------------------------------------------------------- -int wxNotebook::GetPageCount() const -{ - return m_aPages.Count(); -} - -int wxNotebook::GetRowCount() const -{ - // TODO - return 0; -} - -int wxNotebook::SetSelection(int nPage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - ChangePage(m_nSelection, nPage); - - // TODO - return 0; -} - -void wxNotebook::AdvanceSelection(bool bForward) -{ - int nSel = GetSelection(); - int nMax = GetPageCount() - 1; - if ( bForward ) - SetSelection(nSel == nMax ? 0 : nSel + 1); - else - SetSelection(nSel == 0 ? nMax : nSel - 1); -} - -bool wxNotebook::SetPageText(int nPage, const wxString& strText) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return wxString(""); -} - -int wxNotebook::GetPageImage(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return 0; -} - -bool wxNotebook::SetPageImage(int nPage, int nImage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -void wxNotebook::SetImageList(wxImageList* imageList) -{ - m_pImageList = imageList; - // TODO -} - -// ---------------------------------------------------------------------------- -// wxNotebook operations -// ---------------------------------------------------------------------------- - -// remove one page from the notebook -bool wxNotebook::DeletePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - // TODO: delete native widget page - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove one page from the notebook, without deleting the window -bool wxNotebook::RemovePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove all pages -bool wxNotebook::DeleteAllPages() -{ - // TODO: delete native widget pages - - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - delete m_aPages[nPage]; - - m_aPages.Clear(); - - return TRUE; -} - -// add a page to the notebook -bool wxNotebook::AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - return InsertPage(GetPageCount(), pPage, strText, bSelect, imageId); -} - -// same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); - - // TODO: insert native widget page - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - // some page must be selected: either this one or the first one if there is - // still no selection - if ( bSelect ) - m_nSelection = nPage; - else if ( m_nSelection == -1 ) - m_nSelection = 0; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -// @@@ OnSize() is used for setting the font when it's called for the first -// time because doing it in ::Create() doesn't work (for unknown reasons) -void wxNotebook::OnSize(wxSizeEvent& event) -{ - static bool s_bFirstTime = TRUE; - if ( s_bFirstTime ) { - // TODO: any first-time-size processing. - s_bFirstTime = FALSE; - } - - // TODO: all this may or may not be necessary for your platform - - // emulate page change (it's esp. important to do it first time because - // otherwise our page would stay invisible) - int nSel = m_nSelection; - m_nSelection = -1; - SetSelection(nSel); - - // fit the notebook page to the tab control's display area - int w, h; - GetSize(&w, &h); - - unsigned int nCount = m_aPages.Count(); - for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) { - wxNotebookPage *pPage = m_aPages[nPage]; - pPage->SetSize(0, 0, w, h); - if ( pPage->GetAutoLayout() ) - pPage->Layout(); - } - - // Processing continues to next OnSize - event.Skip(); -} - -void wxNotebook::OnSelChange(wxNotebookEvent& event) -{ - // is it our tab control? - if ( event.GetEventObject() == this ) - ChangePage(event.GetOldSelection(), event.GetSelection()); - - // we want to give others a chance to process this message as well - event.Skip(); -} - -void wxNotebook::OnSetFocus(wxFocusEvent& event) -{ - // set focus to the currently selected page if any - if ( m_nSelection != -1 ) - m_aPages[m_nSelection]->SetFocus(); - - event.Skip(); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if ( event.IsWindowChange() ) { - // change pages - AdvanceSelection(event.GetDirection()); - } - else { - // pass to the parent - if ( GetParent() ) { - event.SetCurrentFocus(this); - GetParent()->ProcessEvent(event); - } - } -} - -// ---------------------------------------------------------------------------- -// wxNotebook base class virtuals -// ---------------------------------------------------------------------------- - -// override these 2 functions to do nothing: everything is done in OnSize - -void wxNotebook::SetConstraintSizes(bool /* recurse */) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase(int /* nPhase */) -{ - return TRUE; -} - -void wxNotebook::Command(wxCommandEvent& event) -{ - wxFAIL_MSG("wxNotebook::Command not implemented"); -} - -// ---------------------------------------------------------------------------- -// wxNotebook helper functions -// ---------------------------------------------------------------------------- - -// hide the currently active panel and show the new one -void wxNotebook::ChangePage(int nOldSel, int nSel) -{ - wxASSERT( nOldSel != nSel ); // impossible - - if ( nOldSel != -1 ) { - m_aPages[nOldSel]->Show(FALSE); - } - - wxNotebookPage *pPage = m_aPages[nSel]; - pPage->Show(TRUE); - pPage->SetFocus(); - - m_nSelection = nSel; -} - diff --git a/src/mac/palette.cpp b/src/mac/palette.cpp deleted file mode 100644 index f8db96f8d0..0000000000 --- a/src/mac/palette.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: wxPalette -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif - -/* - * Palette - * - */ - -wxPaletteRefData::wxPaletteRefData() -{ - // TODO -} - -wxPaletteRefData::~wxPaletteRefData() -{ - // TODO -} - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - Create(n, red, green, blue); -} - -wxPalette::~wxPalette() -{ -} - -bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - UnRef(); - - m_refData = new wxPaletteRefData; - - // TODO - - return FALSE; -} - -int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const -{ - if ( !m_refData ) - return FALSE; - - // TODO - return FALSE; -} - -bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const -{ - if ( !m_refData ) - return FALSE; - - if (index < 0 || index > 255) - return FALSE; - - // TODO - return FALSE; -} - - diff --git a/src/mac/pen.cpp b/src/mac/pen.cpp deleted file mode 100644 index 1e3ced2a3a..0000000000 --- a/src/mac/pen.cpp +++ /dev/null @@ -1,202 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: wxPen -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/pen.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -#endif - -wxPenRefData::wxPenRefData() -{ - m_style = wxSOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::~wxPenRefData() -{ - // TODO: delete data -} - -// Pens - -wxPen::wxPen() -{ - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::~wxPen() -{ - if (wxThePenList) - wxThePenList->RemovePen(this); -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxSTIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(int Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxSTIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(int Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(int Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -bool wxPen::RealizeResource() -{ - // TODO: create actual pen - return FALSE; -} - - diff --git a/src/mac/print.cpp b/src/mac/print.cpp deleted file mode 100644 index 61fd6e7e99..0000000000 --- a/src/mac/print.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: print.cpp -// Purpose: Print framework -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "print.h" -#endif - -#include "wx/stubs/print.h" -#include "wx/stubs/printdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrinter, wxPrinterBase) -IMPLEMENT_CLASS(wxPrintPreview, wxPrintPreviewBase) -#endif - -/* - * Printer - */ - -wxPrinter::wxPrinter(wxPrintData *data): - wxPrinterBase(data) -{ -} - -wxPrinter::~wxPrinter() -{ -} - -bool wxPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) -{ - // TODO. See wxPostScriptPrinter::Print for hints. - return FALSE; -} - -bool wxPrinter::PrintDialog(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printData); - return (dialog.ShowModal() == wxID_OK); -} - -bool wxPrinter::Setup(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printData); - dialog.GetPrintData().SetSetupDialog(TRUE); - return (dialog.ShowModal() == wxID_OK); -} - -/* - * Print preview - */ - -wxPrintPreview::wxPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting, wxPrintData *data): - wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - DetermineScaling(); -} - -wxPrintPreview::~wxPrintPreview() -{ -} - -bool wxPrintPreview::Print(bool interactive) -{ - if (!m_printPrintout) - return FALSE; - wxPrinter printer(&m_printData); - return printer.Print(m_previewFrame, m_printPrintout, interactive); -} - -void wxPrintPreview::DetermineScaling() -{ - // TODO -} - diff --git a/src/mac/printdlg.cpp b/src/mac/printdlg.cpp deleted file mode 100644 index eae3b95568..0000000000 --- a/src/mac/printdlg.cpp +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.cpp -// Purpose: wxPrintDialog, wxPageSetupDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "printdlg.h" -#endif - -#include "wx/object.h" -#include "wx/stubs/printdlg.h" -#include "wx/dcprint.h" - -// Use generic page setup dialog: use your own native one if one exists. -#include "wx/generic/prntdlgg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog) -IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog) -#endif - -wxPrintDialog::wxPrintDialog(): - wxDialog() -{ - m_dialogParent = NULL; - m_printerDC = NULL; -} - -wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data): - wxDialog() -{ - Create(p, data); -} - -bool wxPrintDialog::Create(wxWindow *p, wxPrintData* data) -{ - m_dialogParent = p; - m_printerDC = NULL; - - if ( data ) - m_printData = *data; - - return TRUE; -} - -wxPrintDialog::~wxPrintDialog() -{ - if (m_printerDC) - delete m_printerDC; -} - -int wxPrintDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -wxDC *wxPrintDialog::GetPrintDC() -{ - if (m_printerDC) - { - wxDC* dc = m_printerDC; - m_printerDC = NULL; - return dc; - } - else - return NULL; -} - -/* - * wxPageSetupDialog - */ - -wxPageSetupDialog::wxPageSetupDialog(): - wxDialog() -{ - m_dialogParent = NULL; -} - -wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data): - wxDialog() -{ - Create(p, data); -} - -bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data) -{ - m_dialogParent = p; - - if (data) - m_pageSetupData = (*data); - - return TRUE; -} - -wxPageSetupDialog::~wxPageSetupDialog() -{ -} - -int wxPageSetupDialog::ShowModal() -{ - // Uses generic page setup dialog - wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData); - int ret = genericPageSetupDialog->ShowModal(); - m_pageSetupData = genericPageSetupDialog->GetPageSetupData(); - genericPageSetupDialog->Close(TRUE); - return ret; -} - diff --git a/src/mac/radiobox.cpp b/src/mac/radiobox.cpp deleted file mode 100644 index da582d0e52..0000000000 --- a/src/mac/radiobox.cpp +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: wxRadioBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) -#endif - -// Radio box item -wxRadioBox::wxRadioBox() -{ - m_selectedButton = -1; - m_noItems = 0; - m_noRowsOrCols = 0; - m_majorDim = 0 ; -} - -bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - int majorDim, long style, - const wxValidator& val, const wxString& name) -{ - m_selectedButton = -1; - m_noItems = n; - - SetName(name); - SetValidator(val); - - parent->AddChild(this); - - m_windowStyle = (long&)style; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - m_noRowsOrCols = majorDim; - - if (majorDim==0) - m_majorDim = n ; - else - m_majorDim = majorDim ; - - - // TODO create radiobox - return FALSE; -} - - -wxRadioBox::~wxRadioBox() -{ - // TODO -} - -wxString wxRadioBox::GetLabel(int item) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - // TODO -} - -int wxRadioBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxRadioBox::SetSelection(int n) -{ - if ((n < 0) || (n >= m_noItems)) - return; - // TODO - - m_selectedButton = n; -} - -// Get single selection, for single choice list items -int wxRadioBox::GetSelection() const -{ - return m_selectedButton; -} - -// Find string for position -wxString wxRadioBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxRadioBox::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxRadioBox::GetPosition(int *x, int *y) const -{ - // TODO -} - -wxString wxRadioBox::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioBox::SetFocus() -{ - // TODO -} - -bool wxRadioBox::Show(bool show) -{ - // TODO - return FALSE; -} - -// Enable a specific button -void wxRadioBox::Enable(int item, bool enable) -{ - // TODO -} - -// Enable all controls -void wxRadioBox::Enable(bool enable) -{ - wxControl::Enable(enable); - - // TODO -} - -// Show a specific button -void wxRadioBox::Show(int item, bool show) -{ - // TODO -} - -// For single selection items only -wxString wxRadioBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxRadioBox::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxRadioBox::Command (wxCommandEvent & event) -{ - SetSelection (event.m_commandInt); - ProcessCommand (event); -} - - diff --git a/src/mac/radiobut.cpp b/src/mac/radiobut.cpp deleted file mode 100644 index 65baab38b6..0000000000 --- a/src/mac/radiobut.cpp +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: wxRadioButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -#endif - -bool wxRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style ; - - // TODO create radiobutton - return FALSE; -} - -void wxRadioButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioButton::SetValue(bool value) -{ - // TODO -} - -// Get single selection, for single choice list items -bool wxRadioButton::GetValue() const -{ - // TODO - return FALSE; -} - -void wxRadioButton::Command (wxCommandEvent & event) -{ - SetValue ( (event.m_commandInt != 0) ); - ProcessCommand (event); -} - - diff --git a/src/mac/region.cpp b/src/mac/region.cpp deleted file mode 100644 index c71d4c605a..0000000000 --- a/src/mac/region.cpp +++ /dev/null @@ -1,363 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: region.cpp -// Purpose: Region class -// Author: Markus Holzem/Julian Smart/AUTHOR -// Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Markus Holzem/Julian Smart/AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/region.h" -#include "wx/gdicmn.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject) -#endif - -//----------------------------------------------------------------------------- -// wxRegionRefData implementation -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegionRefData : public wxGDIRefData { -public: - wxRegionRefData() - { - } - - wxRegionRefData(const wxRegionRefData& data) - { - // TODO - } - - ~wxRegionRefData() - { - // TODO - } -}; - - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -/*! - * Create an empty region. - */ -wxRegion::wxRegion() -{ - m_refData = new wxRegionRefData; - // TODO create empty region -} - -wxRegion::wxRegion(long x, long y, long w, long h) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxRect& rect) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -/*! - * Destroy the region. - */ -wxRegion::~wxRegion() -{ - // m_refData unrefed in ~wxObject -} - -//----------------------------------------------------------------------------- -//# Modify region -//----------------------------------------------------------------------------- - -//! Clear current region -void wxRegion::Clear() -{ - UnRef(); -} - -//! Combine rectangle (x, y, w, h) with this. -bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op) -{ - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - // If ref count is 1, that means it's 'ours' anyway so no action. - - // TODO create rect region - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO do combine region - - return FALSE; -} - -//! Union /e region with this. -bool wxRegion::Combine(const wxRegion& region, wxRegionOp op) -{ - if (region.Empty()) - return FALSE; - - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO combine region - - return FALSE; -} - -bool wxRegion::Combine(const wxRect& rect, wxRegionOp op) -{ - return Combine(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight(), op); -} - -//----------------------------------------------------------------------------- -//# Information on region -//----------------------------------------------------------------------------- - -// Outer bounds of region -void wxRegion::GetBox(long& x, long& y, long&w, long &h) const -{ - if (m_refData) { - // TODO get box - } else { - x = y = w = h = 0; - } -} - -wxRect wxRegion::GetBox() const -{ - long x, y, w, h; - GetBox(x, y, w, h); - return wxRect(x, y, w, h); -} - -// Is region empty? -bool wxRegion::Empty() const -{ - // TODO - return FALSE; -} - -//----------------------------------------------------------------------------- -//# Tests -//----------------------------------------------------------------------------- - -// Does the region contain the point (x,y)? -wxRegionContain wxRegion::Contains(long x, long y) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - return wxOutRegion; -} - -// Does the region contain the point pt? -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle (x, y, w, h)? -wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle rect -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - if (!m_refData) - return wxOutRegion; - - long x, y, w, h; - x = rect.x; - y = rect.y; - w = rect.GetWidth(); - h = rect.GetHeight(); - return Contains(x, y, w, h); -} - -/////////////////////////////////////////////////////////////////////////////// -// // -// wxRegionIterator // -// // -/////////////////////////////////////////////////////////////////////////////// - -/*! - * Initialize empty iterator - */ -wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL) -{ -} - -wxRegionIterator::~wxRegionIterator() -{ - if (m_rects) - delete[] m_rects; -} - -/*! - * Initialize iterator for region - */ -wxRegionIterator::wxRegionIterator(const wxRegion& region) -{ - m_rects = NULL; - - Reset(region); -} - -/*! - * Reset iterator for a new /e region. - */ -void wxRegionIterator::Reset(const wxRegion& region) -{ - m_current = 0; - m_region = region; - - if (m_rects) - delete[] m_rects; - - m_rects = NULL; - - if (m_region.Empty()) - m_numRects = 0; - else - { - // TODO create m_rects and fill with rectangles for this region - m_numRects = 0; - } -} - -/*! - * Increment iterator. The rectangle returned is the one after the - * incrementation. - */ -void wxRegionIterator::operator ++ () -{ - if (m_current < m_numRects) - ++m_current; -} - -/*! - * Increment iterator. The rectangle returned is the one before the - * incrementation. - */ -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_numRects) - ++m_current; -} - -long wxRegionIterator::GetX() const -{ - if (m_current < m_numRects) - return m_rects[m_current].x; - return 0; -} - -long wxRegionIterator::GetY() const -{ - if (m_current < m_numRects) - return m_rects[m_current].y; - return 0; -} - -long wxRegionIterator::GetW() const -{ - if (m_current < m_numRects) - return m_rects[m_current].width ; - return 0; -} - -long wxRegionIterator::GetH() const -{ - if (m_current < m_numRects) - return m_rects[m_current].height; - return 0; -} - diff --git a/src/mac/scrolbar.cpp b/src/mac/scrolbar.cpp deleted file mode 100644 index a92154acfb..0000000000 --- a/src/mac/scrolbar.cpp +++ /dev/null @@ -1,81 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: wxScrollBar -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) - -BEGIN_EVENT_TABLE(wxScrollBar, wxControl) -END_EVENT_TABLE() - -#endif - -// Scrollbar -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - if (!parent) - return FALSE; - parent->AddChild(this); - SetName(name); - SetValidator(validator); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO create scrollbar - return TRUE; -} - -wxScrollBar::~wxScrollBar() -{ -} - -void wxScrollBar::SetThumbPosition(int viewStart) -{ - // TODO -} - -int wxScrollBar::GetThumbPosition() const -{ - // TODO - return 0; -} - -void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh) -{ - m_viewSize = pageSize; - m_pageSize = thumbSize; - m_objectSize = range; - - // TODO -} - - -void wxScrollBar::Command(wxCommandEvent& event) -{ - SetThumbPosition(event.m_commandInt); - ProcessCommand(event); -} - diff --git a/src/mac/settings.cpp b/src/mac/settings.cpp deleted file mode 100644 index 2beda5c2a6..0000000000 --- a/src/mac/settings.cpp +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: wxSettings -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" - -wxColour wxSystemSettings::GetSystemColour(int index) -{ - // TODO - return wxColour(); -} - -wxFont wxSystemSettings::GetSystemFont(int index) -{ - // TODO - switch (index) - { - case wxSYS_DEVICE_DEFAULT_FONT: - { - break; - } - case wxSYS_DEFAULT_PALETTE: - { - break; - } - case wxSYS_SYSTEM_FIXED_FONT: - { - break; - } - case wxSYS_SYSTEM_FONT: - { - break; - } - default: - case wxSYS_DEFAULT_GUI_FONT: - { - break; - } - } - - return wxFont(); -} - -// Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) -{ - switch ( index) - { - case wxSYS_MOUSE_BUTTONS: - // TODO - return 0; - case wxSYS_BORDER_X: - // TODO - return 0; - case wxSYS_BORDER_Y: - // TODO - return 0; - case wxSYS_CURSOR_X: - // TODO - return 0; - case wxSYS_CURSOR_Y: - // TODO - return 0; - case wxSYS_DCLICK_X: - // TODO - return 0; - case wxSYS_DCLICK_Y: - // TODO - return 0; - case wxSYS_DRAG_X: - // TODO - return 0; - case wxSYS_DRAG_Y: - // TODO - return 0; - case wxSYS_EDGE_X: - // TODO - return 0; - case wxSYS_EDGE_Y: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_HTHUMB_X: - // TODO - return 0; - case wxSYS_ICON_X: - // TODO - return 0; - case wxSYS_ICON_Y: - // TODO - return 0; - case wxSYS_ICONSPACING_X: - // TODO - return 0; - case wxSYS_ICONSPACING_Y: - // TODO - return 0; - case wxSYS_WINDOWMIN_X: - // TODO - return 0; - case wxSYS_WINDOWMIN_Y: - // TODO - return 0; - case wxSYS_SCREEN_X: - // TODO - return 0; - case wxSYS_SCREEN_Y: - // TODO - return 0; - case wxSYS_FRAMESIZE_X: - // TODO - return 0; - case wxSYS_FRAMESIZE_Y: - // TODO - return 0; - case wxSYS_SMALLICON_X: - // TODO - return 0; - case wxSYS_SMALLICON_Y: - // TODO - return 0; - case wxSYS_HSCROLL_Y: - // TODO - return 0; - case wxSYS_VSCROLL_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_VTHUMB_Y: - // TODO - return 0; - case wxSYS_CAPTION_Y: - // TODO - return 0; - case wxSYS_MENU_Y: - // TODO - return 0; - case wxSYS_NETWORK_PRESENT: - // TODO - return 0; - case wxSYS_PENWINDOWS_PRESENT: - // TODO - return 0; - case wxSYS_SHOW_SOUNDS: - // TODO - return 0; - case wxSYS_SWAP_BUTTONS: - // TODO - return 0; - default: - return 0; - } - return 0; -} - diff --git a/src/mac/slider.cpp b/src/mac/slider.cpp deleted file mode 100644 index c9952342a9..0000000000 --- a/src/mac/slider.cpp +++ /dev/null @@ -1,190 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: wxSlider -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/slider.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - -BEGIN_EVENT_TABLE(wxSlider, wxControl) -END_EVENT_TABLE() -#endif - - - -// Slider -wxSlider::wxSlider() -{ - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_rangeMax = maxValue; - m_rangeMin = minValue; - - m_pageSize = (int)((maxValue-minValue)/10); - - // TODO create slider - - return FALSE; -} - -wxSlider::~wxSlider() -{ -} - -int wxSlider::GetValue() const -{ - // TODO - return 0; -} - -void wxSlider::SetValue(int value) -{ - // TODO -} - -void wxSlider::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxSlider::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxSlider::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxSlider::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - // TODO -} - -// For trackbars only -void wxSlider::SetTickFreq(int n, int pos) -{ - // TODO - m_tickFreq = n; -} - -void wxSlider::SetPageSize(int pageSize) -{ - // TODO - m_pageSize = pageSize; -} - -int wxSlider::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider::ClearSel() -{ - // TODO -} - -void wxSlider::ClearTicks() -{ - // TODO -} - -void wxSlider::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; - // TODO -} - -int wxSlider::GetLineSize() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelEnd() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelStart() const -{ - // TODO - return 0; -} - -void wxSlider::SetSelection(int minPos, int maxPos) -{ - // TODO -} - -void wxSlider::SetThumbLength(int len) -{ - // TODO -} - -int wxSlider::GetThumbLength() const -{ - // TODO - return 0; -} - -void wxSlider::SetTick(int tickPos) -{ - // TODO -} - -void wxSlider::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -bool wxSlider::Show(bool show) -{ - // TODO - return TRUE; -} - diff --git a/src/mac/spinbutt.cpp b/src/mac/spinbutt.cpp deleted file mode 100644 index cbea725592..0000000000 --- a/src/mac/spinbutt.cpp +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "spinbutt.h" -#endif - -#include "wx/spinbutt.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) -#endif - -wxSpinButton::wxSpinButton() -{ - m_min = 0; - m_max = 100; -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_min = 0; - m_max = 100; - - m_windowId = (id == -1) ? NewControlId() : id; - - // TODO create spin button - return FALSE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -int wxSpinButton::GetValue() const -{ - // TODO - return 0; -} - -void wxSpinButton::SetValue(int val) -{ - // TODO -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - m_min = minVal; - m_max = maxVal; - // TODO -} - -// Spin event -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id): - wxScrollEvent(commandType, id) -{ -} - diff --git a/src/mac/statbmp.cpp b/src/mac/statbmp.cpp deleted file mode 100644 index a67c558465..0000000000 --- a/src/mac/statbmp.cpp +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: wxStaticBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) -#endif - -/* - * wxStaticBitmap - */ - -bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_messageBitmap = bitmap; - SetName(name); - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static bitmap control - return FALSE; -} - -void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) -{ - m_messageBitmap = bitmap; - - // TODO: redraw bitmap -} - diff --git a/src/mac/statbox.cpp b/src/mac/statbox.cpp deleted file mode 100644 index b239dc738c..0000000000 --- a/src/mac/statbox.cpp +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: wxStaticBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Static box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static box - return FALSE; -} - -void wxStaticBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxStaticBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - diff --git a/src/mac/stattext.cpp b/src/mac/stattext.cpp deleted file mode 100644 index 3b19c7184d..0000000000 --- a/src/mac/stattext.cpp +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: wxStaticText -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stattext.h" -#endif - -#include "wx/app.h" -#include "wx/stattext.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -#endif - -bool wxStaticText::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - SetFont(parent->GetFont()); - - // TODO - return FALSE; -} - -void wxStaticText::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticText::SetLabel(const wxString& label) -{ - // TODO -} - diff --git a/src/mac/statusbr.cpp b/src/mac/statusbr.cpp deleted file mode 100644 index dff1ddec34..0000000000 --- a/src/mac/statusbr.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: statbar.cpp -// Purpose: native implementation of wxStatusBar (optional) -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statusbr.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/stubs/statusbr.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStatusBarXX, wxStatusBar); - -BEGIN_EVENT_TABLE(wxStatusBarXX, wxStatusBar) - EVT_SIZE(wxStatusBarXX::OnSize) -END_EVENT_TABLE() -#endif //USE_SHARED_LIBRARY - - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxStatusBarXX class -// ---------------------------------------------------------------------------- - -wxStatusBarXX::wxStatusBarXX() -{ - SetParent(NULL); -} - -wxStatusBarXX::wxStatusBarXX(wxWindow *parent, wxWindowID id, long style) -{ - Create(parent, id, style); -} - -bool wxStatusBarXX::Create(wxWindow *parent, wxWindowID id, long style) -{ - SetParent(parent); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create status bar - return FALSE; -} - -void wxStatusBarXX::SetFieldsCount(int nFields, const int widths[]) -{ - wxASSERT( (nFields > 0) && (nFields < 255) ); - - m_nFields = nFields; - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBarXX::SetStatusWidths(int n, const int widths[]) -{ - wxASSERT( n == m_nFields ); - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBarXX::CopyFieldsWidth(const int widths[]) -{ - if (widths && !m_statusWidths) - m_statusWidths = new int[m_nFields]; - - if ( widths != NULL ) { - for ( int i = 0; i < m_nFields; i++ ) - m_statusWidths[i] = widths[i]; - } - else { - delete [] m_statusWidths; - m_statusWidths = NULL; - } -} - -void wxStatusBarXX::SetFieldsWidth() -{ - int *pWidths = new int[m_nFields]; - - int nWindowWidth, y; - GetClientSize(&nWindowWidth, &y); - - if ( m_statusWidths == NULL ) { - // default: all fields have the same width - int nWidth = nWindowWidth / m_nFields; - for ( int i = 0; i < m_nFields; i++ ) - pWidths[i] = (i + 1) * nWidth; - } - else { - // -1 doesn't mean the same thing for wxWindows and Win32, recalc - int nTotalWidth = 0, - nVarCount = 0, - i; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nVarCount++; - else - nTotalWidth += m_statusWidths[i]; - } - - if ( nVarCount == 0 ) { - // wrong! at least one field must be of variable width - wxFAIL; - - nVarCount++; - } - - int nVarWidth = (nWindowWidth - nTotalWidth) / nVarCount; - - // do fill the array - int nCurPos = 0; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nCurPos += nVarWidth; - else - nCurPos += m_statusWidths[i]; - pWidths[i] = nCurPos; - } - } - - // TODO: set widths - - delete [] pWidths; -} - -void wxStatusBarXX::SetStatusText(const wxString& strText, int nField) -{ - // TODO -} - -wxString wxStatusBarXX::GetStatusText(int nField) const -{ - wxASSERT( (nField > -1) && (nField < m_nFields) ); - - // TODO - return wxString(""); -} - -void wxStatusBarXX::OnSize(wxSizeEvent& event) -{ - // adjust fields widths to the new size - SetFieldsWidth(); -} diff --git a/src/mac/tabctrl.cpp b/src/mac/tabctrl.cpp deleted file mode 100644 index b3b45a72d1..0000000000 --- a/src/mac/tabctrl.cpp +++ /dev/null @@ -1,201 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp -// Purpose: wxTabCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - -#include "wx/control.h" -#include "wx/tabctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) -END_EVENT_TABLE() -#endif - -wxTabCtrl::wxTabCtrl() -{ - m_imageList = NULL; -} - -bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_imageList = NULL; - - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id < 0 ? NewControlId() : id); - - if (parent) parent->AddChild(this); - - // TODO: create tab control - return FALSE; -} - -wxTabCtrl::~wxTabCtrl() -{ -} - -void wxTabCtrl::Command(wxCommandEvent& event) -{ -} - -// Delete all items -bool wxTabCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Delete an item -bool wxTabCtrl::DeleteItem(int item) -{ - // TODO - return FALSE; -} - -// Get the selection -int wxTabCtrl::GetSelection() const -{ - // TODO - return 0; -} - -// Get the tab with the current keyboard focus -int wxTabCtrl::GetCurFocus() const -{ - // TODO - return 0; -} - -// Get the associated image list -wxImageList* wxTabCtrl::GetImageList() const -{ - return m_imageList; -} - -// Get the number of items -int wxTabCtrl::GetItemCount() const -{ - // TODO - return 0; -} - -// Get the rect corresponding to the tab -bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const -{ - // TODO - return FALSE; -} - -// Get the number of rows -int wxTabCtrl::GetRowCount() const -{ - // TODO - return 0; -} - -// Get the item text -wxString wxTabCtrl::GetItemText(int item) const -{ - // TODO - return wxString(""); -} - -// Get the item image -int wxTabCtrl::GetItemImage(int item) const -{ - // TODO - return 0; -} - -// Get the item data -void* wxTabCtrl::GetItemData(int item) const -{ - // TODO - return NULL; -} - -// Hit test -int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) -{ - // TODO - return 0; -} - -// Insert an item -bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) -{ - // TODO - return FALSE; -} - -// Set the selection -int wxTabCtrl::SetSelection(int item) -{ - // TODO - return 0; -} - -// Set the image list -void wxTabCtrl::SetImageList(wxImageList* imageList) -{ - // TODO -} - -// Set the text for an item -bool wxTabCtrl::SetItemText(int item, const wxString& text) -{ - // TODO - return FALSE; -} - -// Set the image for an item -bool wxTabCtrl::SetItemImage(int item, int image) -{ - // TODO - return FALSE; -} - -// Set the data for an item -bool wxTabCtrl::SetItemData(int item, void* data) -{ - // TODO - return FALSE; -} - -// Set the size for a fixed-width tab control -void wxTabCtrl::SetItemSize(const wxSize& size) -{ - // TODO -} - -// Set the padding between tabs -void wxTabCtrl::SetPadding(const wxSize& padding) -{ - // TODO -} - -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ -} - diff --git a/src/mac/taskbar.cpp b/src/mac/taskbar.cpp deleted file mode 100644 index 5c91250cf0..0000000000 --- a/src/mac/taskbar.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.cpp -// Purpose: Implements wxTaskBarIcon class for manipulating icons on -// the task bar. Optional. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "taskbar.h" -#endif - -#include - -wxTaskBarIcon::wxTaskBarIcon() -{ - // TODO -} - -wxTaskBarIcon::~wxTaskBarIcon() -{ - // TODO -} - -// Operations -bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip) -{ - // TODO - return FALSE; -} - -bool wxTaskBarIcon::RemoveIcon() -{ - // TODO - return FALSE; -} - -// Overridables -void wxTaskBarIcon::OnMouseMove() -{ -} - -void wxTaskBarIcon::OnLButtonDown() -{ -} - -void wxTaskBarIcon::OnLButtonUp() -{ -} - -void wxTaskBarIcon::OnRButtonDown() -{ -} - -void wxTaskBarIcon::OnRButtonUp() -{ -} - -void wxTaskBarIcon::OnLButtonDClick() -{ -} - -void wxTaskBarIcon::OnRButtonDClick() -{ -} - diff --git a/src/mac/textctrl.cpp b/src/mac/textctrl.cpp deleted file mode 100644 index a2b5e7d38e..0000000000 --- a/src/mac/textctrl.cpp +++ /dev/null @@ -1,452 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: wxTextCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -#ifndef __WXMAC__ -#include -#include -#else -#include -#endif -#include - -#include "wx/textctrl.h" -#include "wx/settings.h" -#include "wx/filefn.h" -#include "wx/utils.h" - -#if defined(__BORLANDC__) && !defined(__WIN32__) -#include -#else -#ifndef __MWERKS__ -#ifndef __GNUWIN32__ -#include -#endif -#endif -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) -END_EVENT_TABLE() -#endif - -// Text item -wxTextCtrl::wxTextCtrl() -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif -{ - m_fileName = ""; -} - -bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_fileName = ""; - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - return TRUE; -} - -wxString wxTextCtrl::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - // TODO -} - -void wxTextCtrl::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -// Clipboard operations -void wxTextCtrl::Copy() -{ - // TODO -} - -void wxTextCtrl::Cut() -{ - // TODO -} - -void wxTextCtrl::Paste() -{ - // TODO -} - -void wxTextCtrl::SetEditable(bool editable) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - long pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxTextCtrl::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxTextCtrl::Remove(long from, long to) -{ - // TODO -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - // TODO -} - -bool wxTextCtrl::LoadFile(const wxString& file) -{ - if (!wxFileExists(file)) - return FALSE; - - m_fileName = file; - - Clear(); - -#ifndef __WXMAC__ - ifstream input((char*) (const char*) file, ios::nocreate | ios::in); -#else - ifstream input((char*) (const char*) file, ios::in); -#endif - if (!input.bad()) - { - struct stat stat_buf; - if (stat(file, &stat_buf) < 0) - return FALSE; - // This may need to be a bigger buffer than the file size suggests, - // if it's a UNIX file. Give it an extra 1000 just in case. - char *tmp_buffer = (char*)malloc((size_t)(stat_buf.st_size+1+1000)); - long no_lines = 0; - long pos = 0; - while (!input.eof() && input.peek() != EOF) - { - input.getline(wxBuffer, 500); - int len = strlen(wxBuffer); - wxBuffer[len] = 13; - wxBuffer[len+1] = 10; - wxBuffer[len+2] = 0; - strcpy(tmp_buffer+pos, wxBuffer); - pos += strlen(wxBuffer); - no_lines++; - } - - // TODO add line - - free(tmp_buffer); - - return TRUE; - } - return FALSE; -} - -// If file is null, try saved file name first -// Returns TRUE if succeeds. -bool wxTextCtrl::SaveFile(const wxString& file) -{ - wxString theFile(file); - if (theFile == "") - theFile = m_fileName; - if (theFile == "") - return FALSE; - m_fileName = theFile; - - ofstream output((char*) (const char*) theFile); - if (output.bad()) - return FALSE; - - // TODO get and save text - - return FALSE; -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - // TODO write text to control -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - // TODO append text to control -} - -void wxTextCtrl::Clear() -{ - // TODO -} - -bool wxTextCtrl::IsModified() const -{ - // TODO - return FALSE; -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - // TODO -} - -int wxTextCtrl::GetNumberOfLines() const -{ - // TODO - return 0; -} - -long wxTextCtrl::XYToPosition(long x, long y) const -{ - // TODO - return 0; -} - -void wxTextCtrl::PositionToXY(long pos, long *x, long *y) const -{ - // TODO -} - -void wxTextCtrl::ShowPosition(long pos) -{ - // TODO -} - -int wxTextCtrl::GetLineLength(long lineNo) const -{ - // TODO - return 0; -} - -wxString wxTextCtrl::GetLineText(long lineNo) const -{ - // TODO - return wxString(""); -} - -/* - * Text item - */ - -void wxTextCtrl::Command(wxCommandEvent & event) -{ - SetValue (event.GetString()); - ProcessCommand (event); -} - -void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event) -{ - // By default, load the first file into the text window. - if (event.GetNumberOfFiles() > 0) - { - LoadFile(event.GetFiles()[0]); - } -} - -// The streambuf code was partly taken from chapter 3 by Jerry Schwarz of -// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers - -//========================================================================= -// Called then the buffer is full (gcc 2.6.3) -// or when "endl" is output (Borland 4.5) -//========================================================================= -// Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in wb_text.h. -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow(int c) -{ - // Make sure there is a holding area - if ( allocate()==EOF ) - { - wxError("Streambuf allocation failed","Internal error"); - return EOF; - } - - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - // Reset get area - setg(0,0,0); - - // Make sure there is a put area - if ( ! pptr() ) - { -/* This doesn't seem to be fatal so comment out error message */ -// wxError("Put area not opened","Internal error"); - setp( base(), base() ); - } - - // Determine how many characters have been inserted but no consumed - int plen = pptr() - pbase(); - - // Now Jerry relies on the fact that the buffer is at least 2 chars - // long, but the holding area "may be as small as 1" ??? - // And we need an additional \0, so let's keep this inefficient but - // safe copy. - - // If c!=EOF, it is a character that must also be comsumed - int xtra = c==EOF? 0 : 1; - - // Write temporary C-string to wxTextWindow - { - char *txt = new char[plen+xtra+1]; - memcpy(txt, pbase(), plen); - txt[plen] = (char)c; // append c - txt[plen+xtra] = '\0'; // append '\0' or overwrite c - // If the put area already contained \0, output will be truncated there - AppendText(txt); - delete[] txt; - } - - // Reset put area - setp(pbase(), epptr()); - -#if defined(__WATCOMC__) - return __NOT_EOF; -#elif defined(zapeof) // HP-UX (all cfront based?) - return zapeof(c); -#else - return c!=EOF ? c : 0; // this should make everybody happy -#endif -} - -//========================================================================= -// called then "endl" is output (gcc) or then explicit sync is done (Borland) -//========================================================================= -int wxTextCtrl::sync() -{ - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - if ( pptr() && pptr() > pbase() ) return overflow(EOF); - - return 0; -/* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -*/ -} - -//========================================================================= -// Should not be called by a "ostream". Used by a "istream" -//========================================================================= -int wxTextCtrl::underflow() -{ - return EOF; -} -#endif - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - wxString str; - str.Printf("%.2f", f); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - wxString str; - str.Printf("%.2f", d); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - wxString str; - str.Printf("%d", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - wxString str; - str.Printf("%ld", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} - diff --git a/src/mac/thread.cpp b/src/mac/thread.cpp deleted file mode 100644 index 8dd23bdce9..0000000000 --- a/src/mac/thread.cpp +++ /dev/null @@ -1,264 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: wxThread Implementation. For Unix ports, see e.g. src/gtk -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include "wx/module.h" -#include "wx/thread.h" -#include "wx/utils.h" - -enum thread_state { - STATE_IDLE = 0, - STATE_RUNNING, - STATE_CANCELED, - STATE_EXITED -}; - -#if wxUSE_THREADS - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -wxMutex *wxMainMutex; // controls access to all GUI functions - -///////////////////////////////////////////////////////////////////////////// -// Windows implementation -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - // TODO: internal mutex handle -}; - -wxMutex::wxMutex() -{ - p_internal = new wxMutexInternal; - // TODO: create internal mutext handle - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxDebugMsg("wxMutex warning: freeing a locked mutex (%d locks)\n", m_locked); - // TODO: free internal mutext handle -} - -wxMutexError wxMutex::Lock() -{ - // TODO - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - // TODO - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked > 0) - m_locked--; - - // TODO - return wxMUTEX_NO_ERROR; -} - -class wxConditionInternal { -public: - // TODO: internal handle - int waiters; -}; - -wxCondition::wxCondition() -{ - p_internal = new wxConditionInternal; - // TODO: create internal handle - p_internal->waiters = 0; -} - -wxCondition::~wxCondition() -{ - // TODO: destroy internal handle -} - -void wxCondition::Wait(wxMutex& mutex) -{ - mutex.Unlock(); - p_internal->waiters++; - // TODO wait here - p_internal->waiters--; - mutex.Lock(); -} - -bool wxCondition::Wait(wxMutex& mutex, unsigned long sec, - unsigned long nsec) -{ - mutex.Unlock(); - p_internal->waiters++; - - // TODO wait here - p_internal->waiters--; - mutex.Lock(); - - return FALSE; -} - -void wxCondition::Signal() -{ - // TODO -} - -void wxCondition::Broadcast() -{ - // TODO -} - -class wxThreadInternal { -public: - // TODO -}; - -wxThreadError wxThread::Create() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -void wxThread::Exit(void *status) -{ - // TODO -} - -void wxThread::SetPriority(int prio) -{ - // TODO -} - -int wxThread::GetPriority() const -{ - // TODO - return 0; -} - -void wxThread::DeferDestroy(bool on) -{ - // TODO -} - -void wxThread::TestDestroy() -{ - // TODO -} - -void *wxThread::Join() -{ - // TODO - return (void*) NULL; -} - -unsigned long wxThread::GetID() const -{ - // TODO - return 0; -} - -/* is this needed somewhere ? -wxThread *wxThread::GetThreadFromID(unsigned long id) -{ - // TODO - return NULL; -} -*/ - -bool wxThread::IsAlive() const -{ - // TODO - return FALSE; -} - -bool wxThread::IsRunning() const -{ - // TODO - return FALSE; -} - -bool wxThread::IsMain() -{ - // TODO - return FALSE; -} - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); - - // TODO -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Automatic initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - virtual bool OnInit() { - /* TODO p_mainid = GetCurrentThread(); */ - wxMainMutex = new wxMutex(); - wxMainMutex->Lock(); - return TRUE; - } - - // Global cleanup - virtual void OnExit() { - wxMainMutex->Unlock(); - delete wxMainMutex; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -#endif diff --git a/src/mac/timer.cpp b/src/mac/timer.cpp deleted file mode 100644 index 5262040cf6..0000000000 --- a/src/mac/timer.cpp +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: wxTimer implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) -#endif - -wxTimer::wxTimer() -{ - m_milli = 0 ; - m_id = 0; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); -} - -bool wxTimer::Start(int milliseconds,bool mode) -{ - m_oneShot = mode ; - if (milliseconds <= 0) - return FALSE; - - m_milli = milliseconds; - - // TODO: set the timer going. - return FALSE; -} - -void wxTimer::Stop() -{ - m_id = 0 ; - m_milli = 0 ; -} - - diff --git a/src/mac/toolbar.cpp b/src/mac/toolbar.cpp deleted file mode 100644 index 3cb859e366..0000000000 --- a/src/mac/toolbar.cpp +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.cpp -// Purpose: wxToolBar -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "toolbar.h" -#endif - -#include "wx/wx.h" -#include "wx/toolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase) - -BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase) -END_EVENT_TABLE() -#endif - -wxToolBar::wxToolBar() -{ - m_maxWidth = -1; - m_maxHeight = -1; - m_defaultWidth = 24; - m_defaultHeight = 22; - // TODO -} - -bool wxToolBar::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_maxWidth = -1; - m_maxHeight = -1; - - m_defaultWidth = 24; - m_defaultHeight = 22; - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - if (parent) parent->AddChild(this); - - // TODO create toolbar - - return FALSE; -} - -wxToolBar::~wxToolBar() -{ - // TODO -} - -bool wxToolBar::CreateTools() -{ - if (m_tools.Number() == 0) - return FALSE; - - // TODO - return FALSE; -} - -void wxToolBar::SetToolBitmapSize(const wxSize& size) -{ - m_defaultWidth = size.x; m_defaultHeight = size.y; - // TODO -} - -wxSize wxToolBar::GetMaxSize() const -{ - // TODO - return wxSize(0, 0); -} - -// The button size is bigger than the bitmap size -wxSize wxToolBar::GetToolSize() const -{ - // TODO - return wxSize(m_defaultWidth + 8, m_defaultHeight + 7); -} - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_enabled = enable; - // TODO enable button - } -} - -void wxToolBar::ToggleTool(int toolIndex, bool toggle) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - { - tool->m_toggleState = toggle; - // TODO: set toggle state - } - } -} - -void wxToolBar::ClearTools() -{ - // TODO - wxToolBarBase::ClearTools(); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. - -wxToolBarTool *wxToolBar::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, const wxString& helpString1, const wxString& helpString2) -{ - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, wxNullBitmap, toggle, xPos, yPos, helpString1, helpString2); - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - tool->SetSize(GetDefaultButtonWidth(), GetDefaultButtonHeight()); - - m_tools.Append((long)index, tool); - return tool; -} - diff --git a/src/mac/treectrl.cpp b/src/mac/treectrl.cpp deleted file mode 100644 index 137a885dbf..0000000000 --- a/src/mac/treectrl.cpp +++ /dev/null @@ -1,418 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: wxTreeCtrl. See also Robert's generic wxTreeCtrl. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "treectrl.h" -#endif - -#include "wx/stubs/textctrl.h" -#include "wx/stubs/treectrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject) - -#endif - -wxTreeCtrl::wxTreeCtrl() -{ - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name) -{ - SetName(name); - SetValidator(validator); - - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - if (parent) parent->AddChild(this); - - // TODO create tree control - - return FALSE; -} - -wxTreeCtrl::~wxTreeCtrl() -{ - if (m_textCtrl) - { - delete m_textCtrl; - } -} - -// Attributes -int wxTreeCtrl::GetCount() const -{ - // TODO - return 0; -} - -int wxTreeCtrl::GetIndent() const -{ - // TODO - return 0; -} - -void wxTreeCtrl::SetIndent(int indent) -{ - // TODO -} - -wxImageList *wxTreeCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - m_imageListState = imageList; - } - // TODO -} - -long wxTreeCtrl::GetNextItem(long item, int code) const -{ - // TODO - return 0; -} - -bool wxTreeCtrl::ItemHasChildren(long item) const -{ - // TODO - return FALSE; -} - -long wxTreeCtrl::GetChild(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetParent(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetFirstVisibleItem() const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetNextVisibleItem(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetSelection() const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetRootItem() const -{ - // TODO - return 0; -} - -bool wxTreeCtrl::GetItem(wxTreeItem& info) const -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::SetItem(wxTreeItem& info) -{ - // TODO - return FALSE; -} - -int wxTreeCtrl::GetItemState(long item, long stateMask) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_IMAGE ; - info.m_image = image; - if ( selImage > -1) - { - info.m_selectedImage = selImage; - info.m_mask |= wxTREE_MASK_SELECTED_IMAGE; - } - info.m_itemId = item; - - return SetItem(info); -} - -wxString wxTreeCtrl::GetItemText(long item) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -void wxTreeCtrl::SetItemText(long item, const wxString& str) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -long wxTreeCtrl::GetItemData(long item) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -bool wxTreeCtrl::SetItemData(long item, long data) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -bool wxTreeCtrl::GetItemRect(long item, wxRect& rect, bool textOnly) const -{ - // TODO - return FALSE; -} - -wxTextCtrl* wxTreeCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -// Operations -bool wxTreeCtrl::DeleteItem(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::ExpandItem(long item, int action) -{ - // TODO - switch ( action ) - { - case wxTREE_EXPAND_EXPAND: - break; - - case wxTREE_EXPAND_COLLAPSE: - break; - - case wxTREE_EXPAND_COLLAPSE_RESET: - break; - - case wxTREE_EXPAND_TOGGLE: - break; - - default: - wxFAIL_MSG("unknown action in wxTreeCtrl::ExpandItem"); - } - - bool bOk = FALSE; // TODO expand item - - // May not send messages, so emulate them - if ( bOk ) { - wxTreeEvent event(wxEVT_NULL, m_windowId); - event.m_item.m_itemId = item; - event.m_item.m_mask = - event.m_item.m_stateMask = 0xffff; // get all - GetItem(event.m_item); - - bool bIsExpanded = (event.m_item.m_state & wxTREE_STATE_EXPANDED) != 0; - - event.m_code = action; - event.SetEventObject(this); - - // @@@ return values of {EXPAND|COLLAPS}ING event handler is discarded - event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDING - : wxEVT_COMMAND_TREE_ITEM_COLLAPSING); - GetEventHandler()->ProcessEvent(event); - - event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDED - : wxEVT_COMMAND_TREE_ITEM_COLLAPSED); - GetEventHandler()->ProcessEvent(event); - } - - return bOk; -} - -long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) -{ - // TODO - return 0; -} - -long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image, int selImage, - long insertAfter) -{ - wxTreeItem info; - info.m_text = label; - info.m_mask = wxTREE_MASK_TEXT; - if ( image > -1 ) - { - info.m_mask |= wxTREE_MASK_IMAGE | wxTREE_MASK_SELECTED_IMAGE; - info.m_image = image; - if ( selImage == -1 ) - info.m_selectedImage = image; - else - info.m_selectedImage = selImage; - } - - return InsertItem(parent, info, insertAfter); -} - -bool wxTreeCtrl::SelectItem(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::ScrollTo(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - // TODO - return NULL; -} - -// End label editing, optionally cancelling the edit -bool wxTreeCtrl::EndEditLabel(bool cancel) -{ - // TODO - return FALSE; -} - -long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) -{ - // TODO - return 0; -} - -bool wxTreeCtrl::SortChildren(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::EnsureVisible(long item) -{ - // TODO - return FALSE; -} - -// Tree item structure -wxTreeItem::wxTreeItem() -{ - m_mask = 0; - m_itemId = 0; - m_state = 0; - m_stateMask = 0; - m_image = -1; - m_selectedImage = -1; - m_children = 0; - m_data = 0; -} - -// Tree event -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent) - -wxTreeEvent::wxTreeEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ - m_code = 0; - m_oldItem = 0; -} - diff --git a/src/mac/utils.cpp b/src/mac/utils.cpp deleted file mode 100644 index 940bdc21bc..0000000000 --- a/src/mac/utils.cpp +++ /dev/null @@ -1,272 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: Various utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// Note: this is done in utilscmn.cpp now. -// #pragma implementation -// #pragma implementation "utils.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" - -#include - -#include -#include -#include -#include - -// Get full hostname (eg. DoDo.BSn-Germany.crg.de) -bool wxGetHostName(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -// Get user ID e.g. jacs -bool wxGetUserId(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -// Get user name e.g. AUTHOR -bool wxGetUserName(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -int wxKill(long pid, int sig) -{ - // TODO - return 0; -} - -// -// Execute a program in an Interactive Shell -// -bool wxShell(const wxString& command) -{ - // TODO - return FALSE; -} - -// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) -long wxGetFreeMemory() -{ - // TODO - return 0; -} - -void wxSleep(int nSecs) -{ - // TODO -} - -// Consume all events until no more left -void wxFlushEvents() -{ -} - -// Output a debug message, in a system dependent fashion. -void wxDebugMsg(const char *fmt ...) -{ - va_list ap; - static char buffer[512]; - - if (!wxTheApp->GetWantDebugOutput()) - return ; - - va_start(ap, fmt); - - // wvsprintf(buffer,fmt,ap) ; - // TODO: output buffer - - va_end(ap); -} - -// Non-fatal error: pop up message box and (possibly) continue -void wxError(const wxString& msg, const wxString& title) -{ - // TODO - wxExit(); -} - -// Fatal error: pop up message box and abort -void wxFatalError(const wxString& msg, const wxString& title) -{ - // TODO -} - -// Emit a beeeeeep -void wxBell() -{ - // TODO -} - -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - // TODO - return 0; -} - -// Reading and writing resources (eg WIN.INI, .Xdefaults) -#if wxUSE_RESOURCES -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file) -{ - // TODO - return FALSE; -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) -{ - // TODO - return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (float)strtod(s, NULL); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (int)strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} -#endif // wxUSE_RESOURCES - -static int wxBusyCursorCount = 0; - -// Set the cursor to the busy cursor for all windows -void wxBeginBusyCursor(wxCursor *cursor) -{ - wxBusyCursorCount ++; - if (wxBusyCursorCount == 1) - { - // TODO - } - else - { - // TODO - } -} - -// Restore cursor to normal -void wxEndBusyCursor() -{ - if (wxBusyCursorCount == 0) - return; - - wxBusyCursorCount --; - if (wxBusyCursorCount == 0) - { - // TODO - } -} - -// TRUE if we're between the above two calls -bool wxIsBusy() -{ - return (wxBusyCursorCount > 0); -} - -char *wxGetUserHome (const wxString& user) -{ - // TODO - return NULL; -} - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -bool wxCheckForInterrupt(wxWindow *wnd) -{ - // TODO - return FALSE; -} - -void wxGetMousePosition( int* x, int* y ) -{ - // TODO -}; - -// Return TRUE if we have a colour display -bool wxColourDisplay() -{ - // TODO - return TRUE; -} - -// Returns depth of screen -int wxDisplayDepth() -{ - // TODO - return 0; -} - -// Get size of display -void wxDisplaySize(int *width, int *height) -{ - // TODO -} - diff --git a/src/mac/utilsexc.cpp b/src/mac/utilsexc.cpp deleted file mode 100644 index b842d08e90..0000000000 --- a/src/mac/utilsexc.cpp +++ /dev/null @@ -1,28 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utilsexec.cpp -// Purpose: Execution-related utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/utils.h" - -#include -#include -#include - -#define wxEXECUTE_WIN_MESSAGE 10000 - -long wxExecute(const wxString& command, bool sync, wxProcess *handler) -{ - // TODO - return 0; -} diff --git a/src/mac/wave.cpp b/src/mac/wave.cpp deleted file mode 100644 index c25681858c..0000000000 --- a/src/mac/wave.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave class implementation: optional -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stubs/wave.h" - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(sFileName, isResource); -} - - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - // TODO - - return FALSE; -} - -bool wxWave::Play(bool async, bool looped) const -{ - if (!IsOk()) - return FALSE; - - // TODO - return FALSE; -} - -bool wxWave::Free() -{ - // TODO - return FALSE; -} - - diff --git a/src/mac/window.cpp b/src/mac/window.cpp deleted file mode 100644 index a54fd3331d..0000000000 --- a/src/mac/window.cpp +++ /dev/null @@ -1,1295 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows.cpp -// Purpose: wxWindow -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "window.h" -#endif - -#include "wx/setup.h" -#include "wx/menu.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/panel.h" -#include "wx/layout.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/frame.h" - -#include "wx/menuitem.h" -#include "wx/log.h" - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#include - -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler) - -BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) - EVT_CHAR(wxWindow::OnChar) - EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindow::OnInitDialog) - EVT_IDLE(wxWindow::OnIdle) -END_EVENT_TABLE() - -#endif - - -// Constructor -wxWindow::wxWindow() -{ - // Generic - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_children = new wxList; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - m_defaultItem = NULL; - m_returnCode = 0; - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_foregroundColour = *wxBLACK; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif -} - -// Destructor -wxWindow::~wxWindow() -{ - // Have to delete constraints/sizer FIRST otherwise - // sizers may try to look at deleted windows as they - // delete themselves. -#if wxUSE_CONSTRAINTS - DeleteRelatedConstraints(); - if (m_constraints) - { - // This removes any dangling pointers to this window - // in other windows' constraintsInvolvedIn lists. - UnsetConstraints(m_constraints); - delete m_constraints; - m_constraints = NULL; - } - if (m_windowSizer) - { - delete m_windowSizer; - m_windowSizer = NULL; - } - // If this is a child of a sizer, remove self from parent - if (m_sizerParent) - m_sizerParent->RemoveChild((wxWindow *)this); -#endif - - if (m_windowParent) - m_windowParent->RemoveChild(this); - - DestroyChildren(); - - // TODO: destroy the window - - delete m_children; - m_children = NULL; - - // Just in case the window has been Closed, but - // we're then deleting immediately: don't leave - // dangling pointers. - wxPendingDelete.DeleteObject(this); - - if ( m_windowValidator ) - delete m_windowValidator; -} - -// Destroy the window (delayed, if a managed window) -bool wxWindow::Destroy() -{ - delete this; - return TRUE; -} - -// Constructor -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // Generic - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif - - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_minSizeX = -1; - m_minSizeY = -1; - m_maxSizeX = -1; - m_maxSizeY = -1; - m_defaultItem = NULL; - m_windowParent = NULL; - if (!parent) - return FALSE; - - if (parent) parent->AddChild(this); - - m_returnCode = 0; - - SetName(name); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - m_foregroundColour = *wxBLACK; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create the window - - return TRUE; -} - -void wxWindow::SetFocus() -{ - // TODO -} - -void wxWindow::Enable(bool enable) -{ - // TODO -} - -void wxWindow::CaptureMouse() -{ - // TODO -} - -void wxWindow::ReleaseMouse() -{ - // TODO -} - -// Push/pop event handler (i.e. allow a chain of event handlers -// be searched) -void wxWindow::PushEventHandler(wxEvtHandler *handler) -{ - handler->SetNextHandler(GetEventHandler()); - SetEventHandler(handler); -} - -wxEvtHandler *wxWindow::PopEventHandler(bool deleteHandler) -{ - if ( GetEventHandler() ) - { - wxEvtHandler *handlerA = GetEventHandler(); - wxEvtHandler *handlerB = handlerA->GetNextHandler(); - handlerA->SetNextHandler(NULL); - SetEventHandler(handlerB); - if ( deleteHandler ) - { - delete handlerA; - return NULL; - } - else - return handlerA; - } - else - return NULL; -} - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget(wxDropTarget *pDropTarget) -{ - if ( m_pDropTarget != 0 ) { - delete m_pDropTarget; - } - - m_pDropTarget = pDropTarget; - if ( m_pDropTarget != 0 ) - { - // TODO - } -} - -#endif - -// Old style file-manager drag&drop -void wxWindow::DragAcceptFiles(bool accept) -{ - // TODO -} - -// Get total size -void wxWindow::GetSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ScreenToClient(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ClientToScreen(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetCursor(const wxCursor& cursor) -{ - m_windowCursor = cursor; - if (m_windowCursor.Ok()) - { - // TODO - } -} - - -// Get size *available for subwindows* i.e. excluding menu bar etc. -void wxWindow::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxWindow::SetClientSize(int width, int height) -{ - // TODO -} - -// For implementation purposes - sometimes decorations make the client area -// smaller -wxPoint wxWindow::GetClientAreaOrigin() const -{ - return wxPoint(0, 0); -} - -// Makes an adjustment to the window position (for example, a frame that has -// a toolbar that it manages itself). -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - x += pt.x; y += pt.y; - } -} - -bool wxWindow::Show(bool show) -{ - // TODO - return FALSE; -} - -bool wxWindow::IsShown() const -{ - // TODO - return FALSE; -} - -int wxWindow::GetCharHeight() const -{ - // TODO - return 0; -} - -int wxWindow::GetCharWidth() const -{ - // TODO - return 0; -} - -void wxWindow::GetTextExtent(const wxString& string, int *x, int *y, - int *descent, int *externalLeading, const wxFont *theFont, bool) const -{ - wxFont *fontToUse = (wxFont *)theFont; - if (!fontToUse) - fontToUse = (wxFont *) & m_windowFont; - - // TODO -} - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - // TODO -} - -// Responds to colour changes: passes event on to children. -void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = (wxWindow *)node->Data(); - if ( win->GetParent() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->Next(); - } -} - -// This can be called by the app (or wxWindows) to do default processing for the current -// event. Save message/event info in wxWindow so they can be used in this function. -long wxWindow::Default() -{ - // TODO - return 0; -} - -void wxWindow::InitDialog() -{ - wxInitDialogEvent event(GetId()); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -// Default init dialog behaviour is to transfer data to window -void wxWindow::OnInitDialog(wxInitDialogEvent& event) -{ - TransferDataToWindow(); -} - -// Caret manipulation -void wxWindow::CreateCaret(int w, int h) -{ - m_caretWidth = w; - m_caretHeight = h; - m_caretEnabled = TRUE; -} - -void wxWindow::CreateCaret(const wxBitmap *WXUNUSED(bitmap)) -{ - // TODO -} - -void wxWindow::ShowCaret(bool show) -{ - // TODO -} - -void wxWindow::DestroyCaret() -{ - // TODO - m_caretEnabled = FALSE; -} - -void wxWindow::SetCaretPos(int x, int y) -{ - // TODO -} - -void wxWindow::GetCaretPos(int *x, int *y) const -{ - // TODO -} - -wxWindow *wxGetActiveWindow() -{ - // TODO - return NULL; -} - -void wxWindow::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW), int WXUNUSED(incH)) -{ - m_minSizeX = minW; - m_minSizeY = minH; - m_maxSizeX = maxW; - m_maxSizeY = maxH; -} - -void wxWindow::Centre(int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *father = (wxWindow *)GetParent(); - if (!father) - return; - - father->GetClientSize(&panel_width, &panel_height); - GetSize(&width, &height); - GetPosition(&x, &y); - - new_x = -1; - new_y = -1; - - if (direction & wxHORIZONTAL) - new_x = (int)((panel_width - width)/2); - - if (direction & wxVERTICAL) - new_y = (int)((panel_height - height)/2); - - SetSize(new_x, new_y, -1, -1); - -} - -// Coordinates relative to the window -void wxWindow::WarpPointer (int x_pos, int y_pos) -{ - // TODO -} - -void wxWindow::OnEraseBackground(wxEraseEvent& event) -{ - // TODO - Default(); -} - -int wxWindow::GetScrollPos(int orient) const -{ - // TODO - return 0; -} - -// This now returns the whole range, not just the number -// of positions that we can scroll. -int wxWindow::GetScrollRange(int orient) const -{ - // TODO - return 0; -} - -int wxWindow::GetScrollThumb(int orient) const -{ - // TODO - return 0; -} - -void wxWindow::SetScrollPos(int orient, int pos, bool refresh) -{ - // TODO - return; -} - -// New function that will replace some of the above. -void wxWindow::SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh) -{ - // TODO -} - -// Does a physical scroll -void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) -{ - // TODO - return; -} - -void wxWindow::SetFont(const wxFont& font) -{ - m_windowFont = font; - - if (!m_windowFont.Ok()) - return; - // TODO -} - -void wxWindow::OnChar(wxKeyEvent& event) -{ - if ( event.KeyCode() == WXK_TAB ) { - // propagate the TABs to the parent - it's up to it to decide what - // to do with it - if ( GetParent() ) { - if ( GetParent()->ProcessEvent(event) ) - return; - } - } -} - -void wxWindow::OnPaint(wxPaintEvent& event) -{ - Default(); -} - -bool wxWindow::IsEnabled() const -{ - // TODO - return FALSE; -} - -// Dialog support: override these and call -// base class members to add functionality -// that can't be done using validators. -// NOTE: these functions assume that controls -// are direct children of this window, not grandchildren -// or other levels of descendant. - -// Transfer values to controls. If returns FALSE, -// it's an application error (pops up a dialog) -bool wxWindow::TransferDataToWindow() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && - !child->GetValidator()->TransferToWindow() ) - { - wxMessageBox("Application Error", "Could not transfer data to window", wxOK|wxICON_EXCLAMATION); - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Transfer values from controls. If returns FALSE, -// validation failed: don't quit -bool wxWindow::TransferDataFromWindow() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && !child->GetValidator()->TransferFromWindow() ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -bool wxWindow::Validate() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && /* child->GetValidator()->Ok() && */ !child->GetValidator()->Validate(this) ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Get the window with the focus -wxWindow *wxWindow::FindFocus() -{ - // TODO - return NULL; -} - -void wxWindow::AddChild(wxWindow *child) -{ - GetChildren().Append(child); - child->m_windowParent = this; -} - -void wxWindow::RemoveChild(wxWindow *child) -{ - GetChildren().DeleteObject(child); - child->m_windowParent = NULL; -} - -void wxWindow::DestroyChildren() -{ - wxNode *node; - while ((node = GetChildren().First()) != (wxNode *)NULL) { - wxWindow *child; - if ((child = (wxWindow *)node->Data()) != (wxWindow *)NULL) { - delete child; - if ( GetChildren().Member(child) ) - delete node; - } - } /* while */ -} - -void wxWindow::MakeModal(bool modal) -{ - // Disable all other windows - if (this->IsKindOf(CLASSINFO(wxDialog)) || this->IsKindOf(CLASSINFO(wxFrame))) - { - wxNode *node = wxTopLevelWindows.First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win != this) - win->Enable(!modal); - - node = node->Next(); - } - } -} - -// If nothing defined for this, try the parent. -// E.g. we may be a button loaded from a resource, with no callback function -// defined. -void wxWindow::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if (GetEventHandler()->ProcessEvent(event) ) - return; - if (m_windowParent) - m_windowParent->GetEventHandler()->OnCommand(win, event); -} - -void wxWindow::SetConstraints(wxLayoutConstraints *c) -{ - if (m_constraints) - { - UnsetConstraints(m_constraints); - delete m_constraints; - } - m_constraints = c; - if (m_constraints) - { - // Make sure other windows know they're part of a 'meaningful relationship' - if (m_constraints->left.GetOtherWindow() && (m_constraints->left.GetOtherWindow() != this)) - m_constraints->left.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->top.GetOtherWindow() && (m_constraints->top.GetOtherWindow() != this)) - m_constraints->top.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->right.GetOtherWindow() && (m_constraints->right.GetOtherWindow() != this)) - m_constraints->right.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->bottom.GetOtherWindow() && (m_constraints->bottom.GetOtherWindow() != this)) - m_constraints->bottom.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->width.GetOtherWindow() && (m_constraints->width.GetOtherWindow() != this)) - m_constraints->width.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->height.GetOtherWindow() && (m_constraints->height.GetOtherWindow() != this)) - m_constraints->height.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreX.GetOtherWindow() && (m_constraints->centreX.GetOtherWindow() != this)) - m_constraints->centreX.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreY.GetOtherWindow() && (m_constraints->centreY.GetOtherWindow() != this)) - m_constraints->centreY.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - } -} - -// This removes any dangling pointers to this window -// in other windows' constraintsInvolvedIn lists. -void wxWindow::UnsetConstraints(wxLayoutConstraints *c) -{ - if (c) - { - if (c->left.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->left.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->top.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->top.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->right.GetOtherWindow() && (c->right.GetOtherWindow() != this)) - c->right.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->bottom.GetOtherWindow() && (c->bottom.GetOtherWindow() != this)) - c->bottom.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->width.GetOtherWindow() && (c->width.GetOtherWindow() != this)) - c->width.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->height.GetOtherWindow() && (c->height.GetOtherWindow() != this)) - c->height.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreX.GetOtherWindow() && (c->centreX.GetOtherWindow() != this)) - c->centreX.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreY.GetOtherWindow() && (c->centreY.GetOtherWindow() != this)) - c->centreY.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - } -} - -// Back-pointer to other windows we're involved with, so if we delete -// this window, we must delete any constraints we're involved with. -void wxWindow::AddConstraintReference(wxWindow *otherWin) -{ - if (!m_constraintsInvolvedIn) - m_constraintsInvolvedIn = new wxList; - if (!m_constraintsInvolvedIn->Member(otherWin)) - m_constraintsInvolvedIn->Append(otherWin); -} - -// REMOVE back-pointer to other windows we're involved with. -void wxWindow::RemoveConstraintReference(wxWindow *otherWin) -{ - if (m_constraintsInvolvedIn) - m_constraintsInvolvedIn->DeleteObject(otherWin); -} - -// Reset any constraints that mention this window -void wxWindow::DeleteRelatedConstraints() -{ - if (m_constraintsInvolvedIn) - { - wxNode *node = m_constraintsInvolvedIn->First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - wxNode *next = node->Next(); - wxLayoutConstraints *constr = win->GetConstraints(); - - // Reset any constraints involving this window - if (constr) - { - constr->left.ResetIfWin((wxWindow *)this); - constr->top.ResetIfWin((wxWindow *)this); - constr->right.ResetIfWin((wxWindow *)this); - constr->bottom.ResetIfWin((wxWindow *)this); - constr->width.ResetIfWin((wxWindow *)this); - constr->height.ResetIfWin((wxWindow *)this); - constr->centreX.ResetIfWin((wxWindow *)this); - constr->centreY.ResetIfWin((wxWindow *)this); - } - delete node; - node = next; - } - delete m_constraintsInvolvedIn; - m_constraintsInvolvedIn = NULL; - } -} - -void wxWindow::SetSizer(wxSizer *sizer) -{ - m_windowSizer = sizer; - if (sizer) - sizer->SetSizerParent((wxWindow *)this); -} - -/* - * New version - */ - -bool wxWindow::Layout() -{ - if (GetConstraints()) - { - int w, h; - GetClientSize(&w, &h); - GetConstraints()->width.SetValue(w); - GetConstraints()->height.SetValue(h); - } - - // If top level (one sizer), evaluate the sizer's constraints. - if (GetSizer()) - { - int noChanges; - GetSizer()->ResetConstraints(); // Mark all constraints as unevaluated - GetSizer()->LayoutPhase1(&noChanges); - GetSizer()->LayoutPhase2(&noChanges); - GetSizer()->SetConstraintSizes(); // Recursively set the real window sizes - return TRUE; - } - else - { - // Otherwise, evaluate child constraints - ResetConstraints(); // Mark all constraints as unevaluated - DoPhase(1); // Just one phase need if no sizers involved - DoPhase(2); - SetConstraintSizes(); // Recursively set the real window sizes - } - return TRUE; -} - - -// Do a phase of evaluating constraints: -// the default behaviour. wxSizers may do a similar -// thing, but also impose their own 'constraints' -// and order the evaluation differently. -bool wxWindow::LayoutPhase1(int *noChanges) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - return constr->SatisfyConstraints((wxWindow *)this, noChanges); - } - else - return TRUE; -} - -bool wxWindow::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - // Layout children - DoPhase(1); - DoPhase(2); - return TRUE; -} - -// Do a phase of evaluating child constraints -bool wxWindow::DoPhase(int phase) -{ - int noIterations = 0; - int maxIterations = 500; - int noChanges = 1; - int noFailures = 0; - wxList succeeded; - while ((noChanges > 0) && (noIterations < maxIterations)) - { - noChanges = 0; - noFailures = 0; - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && !child->IsKindOf(CLASSINFO(wxDialog))) - { - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr) - { - if (succeeded.Member(child)) - { - } - else - { - int tempNoChanges = 0; - bool success = ( (phase == 1) ? child->LayoutPhase1(&tempNoChanges) : child->LayoutPhase2(&tempNoChanges) ) ; - noChanges += tempNoChanges; - if (success) - { - succeeded.Append(child); - } - } - } - } - node = node->Next(); - } - noIterations ++; - } - return TRUE; -} - -void wxWindow::ResetConstraints() -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - constr->left.SetDone(FALSE); - constr->top.SetDone(FALSE); - constr->right.SetDone(FALSE); - constr->bottom.SetDone(FALSE); - constr->width.SetDone(FALSE); - constr->height.SetDone(FALSE); - constr->centreX.SetDone(FALSE); - constr->centreY.SetDone(FALSE); - } - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->ResetConstraints(); - node = node->Next(); - } -} - -// Need to distinguish between setting the 'fake' size for -// windows and sizers, and setting the real values. -void wxWindow::SetConstraintSizes(bool recurse) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr && constr->left.GetDone() && constr->right.GetDone() && - constr->width.GetDone() && constr->height.GetDone()) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - - // If we don't want to resize this window, just move it... - if ((constr->width.GetRelationship() != wxAsIs) || - (constr->height.GetRelationship() != wxAsIs)) - { - // Calls Layout() recursively. AAAGH. How can we stop that. - // Simply take Layout() out of non-top level OnSizes. - SizerSetSize(x, y, w, h); - } - else - { - SizerMove(x, y); - } - } - else if (constr) - { - char *windowClass = this->GetClassInfo()->GetClassName(); - - wxString winName; - if (GetName() == "") - winName = "unnamed"; - else - winName = GetName(); - wxDebugMsg("Constraint(s) not satisfied for window of type %s, name %s:\n", (const char *)windowClass, (const char *)winName); - if (!constr->left.GetDone()) - wxDebugMsg(" unsatisfied 'left' constraint.\n"); - if (!constr->right.GetDone()) - wxDebugMsg(" unsatisfied 'right' constraint.\n"); - if (!constr->width.GetDone()) - wxDebugMsg(" unsatisfied 'width' constraint.\n"); - if (!constr->height.GetDone()) - wxDebugMsg(" unsatisfied 'height' constraint.\n"); - wxDebugMsg("Please check constraints: try adding AsIs() constraints.\n"); - } - - if (recurse) - { - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->SetConstraintSizes(); - node = node->Next(); - } - } -} - -// This assumes that all sizers are 'on' the same -// window, i.e. the parent of this window. -void wxWindow::TransformSizerToActual(int *x, int *y) const -{ - if (!m_sizerParent || m_sizerParent->IsKindOf(CLASSINFO(wxDialog)) || - m_sizerParent->IsKindOf(CLASSINFO(wxFrame)) ) - return; - - int xp, yp; - m_sizerParent->GetPosition(&xp, &yp); - m_sizerParent->TransformSizerToActual(&xp, &yp); - *x += xp; - *y += yp; -} - -void wxWindow::SizerSetSize(int x, int y, int w, int h) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - SetSize(xx, yy, w, h); -} - -void wxWindow::SizerMove(int x, int y) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - Move(xx, yy); -} - -// Only set the size/position of the constraint (if any) -void wxWindow::SetSizeConstraint(int x, int y, int w, int h) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - if (w != -1) - { - constr->width.SetValue(w); - constr->width.SetDone(TRUE); - } - if (h != -1) - { - constr->height.SetValue(h); - constr->height.SetDone(TRUE); - } - } -} - -void wxWindow::MoveConstraint(int x, int y) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - } -} - -void wxWindow::GetSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetSize(w, h); -} - -void wxWindow::GetClientSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetClientSize(w, h); -} - -void wxWindow::GetPositionConstraint(int *x, int *y) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *x = constr->left.GetValue(); - *y = constr->top.GetValue(); - } - else - GetPosition(x, y); -} - -bool wxWindow::Close(bool force) -{ - wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId); - event.SetEventObject(this); -#if WXWIN_COMPATIBILITY - event.SetForce(force); -#endif - event.SetCanVeto(!force); - - return GetEventHandler()->ProcessEvent(event); -} - -wxObject* wxWindow::GetChild(int number) const -{ - // Return a pointer to the Nth object in the window - wxNode *node = GetChildren().First(); - int n = number; - while (node && n--) - node = node->Next() ; - if (node) - { - wxObject *obj = (wxObject *)node->Data(); - return(obj) ; - } - else - return NULL ; -} - -void wxWindow::OnDefaultAction(wxControl *initiatingItem) -{ - // Obsolete function -} - -void wxWindow::Clear() -{ - wxClientDC dc(this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - -// Fits the panel around the items -void wxWindow::Fit() -{ - int maxX = 0; - int maxY = 0; - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *win = (wxWindow *)node->Data(); - int wx, wy, ww, wh; - win->GetPosition(&wx, &wy); - win->GetSize(&ww, &wh); - if ( wx + ww > maxX ) - maxX = wx + ww; - if ( wy + wh > maxY ) - maxY = wy + wh; - - node = node->Next(); - } - SetClientSize(maxX + 5, maxY + 5); -} - -void wxWindow::SetValidator(const wxValidator& validator) -{ - if ( m_windowValidator ) - delete m_windowValidator; - m_windowValidator = validator.Clone(); - - if ( m_windowValidator ) - m_windowValidator->SetWindow(this) ; -} - -void wxWindow::SetAcceleratorTable(const wxAcceleratorTable& accel) -{ - m_acceleratorTable = accel; -} - -// Find a window by id or name -wxWindow *wxWindow::FindWindow(long id) -{ - if ( GetId() == id) - return this; - - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(id); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -wxWindow *wxWindow::FindWindow(const wxString& name) -{ - if ( GetName() == name) - return this; - - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(name); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ -/* TODO: you may need to do something like this - * if your GUI doesn't generate enter/leave events - - // Check if we need to send a LEAVE event - if (m_mouseInWindow) - { - POINT pt; - ::GetCursorPos(&pt); - if (::WindowFromPoint(pt) != (HWND) GetHWND()) - { - // Generate a LEAVE event - m_mouseInWindow = FALSE; - MSWOnMouseLeave(pt.x, pt.y, 0); - } - } -*/ - - // This calls the UI-update mechanism (querying windows for - // menu/toolbar/control state information) - UpdateWindowUI(); -} - -// Raise the window to the top of the Z order -void wxWindow::Raise() -{ - // TODO -} - -// Lower the window to the bottom of the Z order -void wxWindow::Lower() -{ - // TODO -} - -bool wxWindow::AcceptsFocus() const -{ - return IsShown() && IsEnabled(); -} - -// Update region access -wxRegion wxWindow::GetUpdateRegion() const -{ - return m_updateRegion; -} - -bool wxWindow::IsExposed(int x, int y, int w, int h) const -{ - return (m_updateRegion.Contains(x, y, w, h) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxPoint& pt) const -{ - return (m_updateRegion.Contains(pt) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxRect& rect) const -{ - return (m_updateRegion.Contains(rect) != wxOutRegion); -} - -/* - * Allocates control IDs - */ - -int wxWindow::NewControlId() -{ - static int s_controlId = 0; - s_controlId ++; - return s_controlId; -} - - diff --git a/src/make.env b/src/make.env deleted file mode 100644 index 7df2eca3cf..0000000000 --- a/src/make.env +++ /dev/null @@ -1,122 +0,0 @@ -# generic.env -# Linux/generic -# -# Common makefile settings for wxWindows programs -# This file is included by all the other makefiles, thus changes -# made here take effect everywhere (except where overriden). -# RCS-ID: $Id$ -# -########################### Programs ################################# - -# Replace this with your own path if necessary -WXDIR = $(WXWIN) - -# C++ compiler -CC = g++ - -# C compiler -CCC = gcc - -# Compiler for lex/yacc .c programs -CCLEX = $(CCC) - -LEX = lex -YACC = yacc -# Note: if using bison, use -y option for yacc compatibility -# YACC = bison -y -MAKE = make -AROPTIONS = ruv -RANLIB = ranlib - -############################ Switches ################################# - -# Debug/trace mode. 1 or more for debugging. -DEBUG = 1 -GUI = -D__WXSTUBS__ -D__UNIX__ -GUISUFFIX = _stubs - -########################## Compiler flags ############################# - -# Misc options -OPTIONS = -D__LINUX__ -D__WXDEBUG__ -COPTIONS = -DEBUGFLAGS = -ggdb -INCLUDE = -WARN = -Wall -Wno-unused # -w -CWARN = -Wall -Wno-unused # -w -OPT = # -O2 - -############################ Includes ################################# - -# Compiler or system-specific include paths -COMPPATHS = -XINCLUDE = -I/usr/openwin/include -I/usr/include/X11 -I/usr/include/Xm \ - -I/usr/include/X11/Xm -I/usr/include -XLIB = -L/usr/local/X11/lib -L/usr/openwin/lib -L/usr/X11/lib -L/usr/X11R6/lib - -############################ Libraries ################################ - -COMPLIBS = -lstdc++ -GUILDLIBS = -lwx_stubs $(COMPLIBS) -lXm -lXmu -lXt -lXpm -lX11 -lm - -############################# Suffixes ################################ - -# Change cpp to c if you want to use main.c instead of main.cpp. -# Edit wx_setup.h accordingly (USE_C_MAIN=1) - -OBJSUFF =o -SRCSUFF =cpp -MAINSUFF =cpp - -####################### No changes below this line #################### - -WXINC = $(WXDIR)/include -WXLIB = $(WXDIR)/lib/libwx$(GUISUFFIX).a -INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/zlib $(COMPPATHS) - -# Directory for object files -OBJDIR = objects$(GUISUFFIX) - -CPPFLAGS = $(EXTRACPPFLAGS) $(INC) $(XINCLUDE) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) -CFLAGS = $(EXTRACFLAGS) $(INC) $(XINCLUDE) $(COPTIONS) $(GUI) $(DEBUGFLAGS) $(CWARN) $(OPT) -LDFLAGS = $(EXTRALDFLAGS) $(XLIB) -L$(WXDIR)/lib -LDLIBS = $(EXTRALDLIBS) $(GUILDLIBS) - -# Clears all default suffixes -.SUFFIXES: .o .cpp .c - -.c.o : - $(CCC) -c $(CFLAGS) -o $@ $< - -.cpp.o : - $(CC) -c $(CPPFLAGS) -o $@ $< - -.C.o : - $(CC) -c $(CPPFLAGS) -o $@ $< - -####################### Targets to allow multiple GUIs #################### - -dummy: - echo Use a target: one of motif, stubs - -stubs: - make -f makefile.unx all GUI='-D__WXSTUBS__ -D__UNIX__' GUISUFFIX='_stubs' GUILDLIBS='-lwx_stubs $(COMPLIBS) -lXm -lXmu -lXt -lX11 -lm' - -motif: - make -f makefile.unx all GUI='-D__WXMOTIF__ -D__UNIX__' GUISUFFIX='_motif' GUILDLIBS='-lwx_motif $(COMPLIBS) -lpng -lzlib -lXm -lXmu -lXt -lXpm -lX11 -lm' - -gtk: - make -f makefile.unx all GUI='-D__WXGTK__ -D__UNIX__' GUISUFFIX='_gtk' GUILDLIBS='-lwx_gtk2 $(COMPLIBS) -ldl -lgtk -lgdk -lglib -lpng -lzlib -lX11 -lm -pthread' - -cleanstubs: - make -f makefile.unx clean GUI='-D__WXSTUBS__ -D__UNIX__' GUISUFFIX='_stubs' GUILDLIBS='-lwx_stubs $(COMPLIBS) -lXm -lXmu -lXt -lX11 -lm' - -cleanmotif: - make -f makefile.unx clean GUI='-D__WXMOTIF__ -D__UNIX__' GUISUFFIX='_motif' GUILDLIBS='-lwx_motif $(COMPLIBS) -lXm -lXmu -lXt -lX11 -lm' - -cleangtk: - make -f makefile.unx clean GUI='-D__WXGTK__ -D__UNIX__' GUISUFFIX='_gtk' - -$(OBJDIR): - mkdir $(OBJDIR) - diff --git a/src/make_cw.mcp b/src/make_cw.mcp deleted file mode 100644 index ee0e7052f6eb9fc77f4553951d1bce552979b9e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 265246 zcmeF42VfIN*2i~kj18ujBoK-z0YWjMgCU8HZMwl=5=aGE7GSU~N0Mo2q_;~h*K?OE zxy$u_xqg@Aay7m8-h1yoe7`pu$+EGeXK?Znv;)6=PpiL2JF{b3{lQ?J<2c!l zIJ1SJ6}&tO>00g+jH#P(fuVxG~_5#JLb2oY>gqWCWNxAJCybN3V%n`v=Re+K{3@o@t%Jtcyepo&+u6DE>vQGX#FUr# z!Sge<226}~qV$~{_h4HI%^TroUn^PsWP!vcWPvM|kFtn;;bmsYzGJLJ_o+LXv+FdM z@8yfcP5BIXQdflx&k_0ub3e9@9S>C2c{nuLXRmXYak zvJ-;erzk^?EoJg$$cS%tH(Z+oC1FLd8IK{L5>vWRWP94P$WQkJg!7l+GRGM|-f<3L z+4vj?`69v49RCJiXna99Qd3mqA8NOn0u)(nD}%6YCoghLy>wyU;VTR_?Lo`va8gNS zRT0qvhv4{?z7n(44DRNm3UHyNH&@rsj%j z;icaGS{=z+{H6CHb80{i@?J7EU^XyXsXZ6@Hv3BJeBp2)T)5E}YF#}?FRU!6Sao!z z{i9rIA4xLJt*9HDrrrjlD*0JC{z@*=MwUZ=XP{9bO=yR`pE(!I$94lb()WO#&a!Dtu*a!xT8IDd6G_&XDT z^H^shNK0T6Ook~i6{f*-m;p0k78Jp3m;;BxVIT*YFciZUD1o_93T03Z^eZ^?VF7#_ zmV&fRrS6x*3aEmWa0DC)t6()81xLd%a4Z}L$HN*}3qGg@Kh!_~*1>v^6NOsX2%De| z>Y)LG&A4M#7tVw8;R5&q zTnHDz7vW;~5_}oH0$+u%!Pns%a0z@9z6F=Uci_A5J-7_M4?lp*;fL@e_%ZwhehQ0V zAuNU^Pys))R_eYjnB9)lBYGT*ZYy1ns9ads7z(Vbm5OU4xn|xj=Us_PB$Ao*J7q&B z$brtlxuKH>`OpozLl5W)y`VSrfxgfW`on&(KO6u9U?3a_gJ3WWfuT?U!(cd!fRQi? zM#C5w3*%rsOn^d|2#3HVm<&^3DolgvFau`7EGUB6Fb58W!=M;SU@nwG8O(zPum~2z zQdkC+upCxE63H^I$t3)~8~!R>Gd+zEHV-Ea@w3-`hO@Blmr z55dFm2s{dp!Q=1*JPA+1Gw>`t2hYO`@FKhfFT*SFD!c}-!yE7>yajK=JMb>N2k*lN z@F9EzAHyfGGa4+?qLjW!mzZ#g3742~i3yjOaPy!GbcK8%He6!E?EyWZ7xacc&=-ge zm$-0=3zxWXi3^vwaES|d5DbPPKwP*70de3G2ksa+7{i7zhW#AQ%ioU?>#8Fc=OaU?hx!(J%%M23fXo zFdimAAxwlrU=mD*DKHhL!E~4bGhr4K!EBfVhr(fSI21z(%!N`YgL0S$^I-ujg2k`| zDqtxrgGyKqE1=3@)y7l&h?_7si*K{|r%Pm+q~|I2_oH z{&&}c52~RQ{7?e{;2gkR4{{D5=NZy2mNxLu;TP~r_yI`U`B(63_zip?q#Z5oX=z*k z7Jdg;!0+J?@JIL){2BfNe}%un-{DHQ3a*BKz%}qs_!nFb|Azm-f8l>{EnElh!Taz5 zdYT4kKVB41~dO5R8J+FaU2L;|31`9Ca1NXc=fU}~2`+#yz=d!Td=V~oXomr1ZE>DWy_j=x z${au6roPO1Idx>t)v1HD=ikL>N?xW>=LMerLYWcgWKT_ zxD)Pz8{lTR8}5O7;d;0gZh@QNKDZwqfCu3rco-gmN8vGe9G-wD;VF0;o`GlKId~pk zfE(dOcnMyHSKw864OYWZa5NkP$HEFY0*-^@VGS&YRd6J%gtg#?`U`eoiIWz60>qT*Hy~c(eFMar=|dpCOuxdp z*z@3gxB$KY7s5sGMYtHg1Yd@)z*pgG@OAhGTms*OZvpWey_kvp4ty8B2bV!E zBjF$z1*2h4QkvtFiK({Y@ETbtmN5{}?zJ#sbTwj)%9=j)w_Q2ooU| zBZuHmg2^xirouFk*qIKo_}PFjF*E~a!aHy&d>dwg#8WL4!ED$F5?`C(U6=zBYlnht zLzlr}a5#J)ib1xk68Hf$z+AW-O5ul420wxy!%yI+P|ms`w#@NpICdl)2!nvQljD{- zW)X+xxI~gH^I$N1FymB@CLj|-H*XO2Lb5E=bkVMKL_@Qfxvo|V}-OM z%zkD7_5gSq_5&B5fNb~(dclLtJ{ZPA7N0v|yJ9=T$IuOO;S=Z%J>Vti4a87l7*av`Q+F-Iw z1uzVT!w4A3cbE=J)JQw8h4AC~+;&s%^B0D~Az8caPAjU)%gow7dPsvW7LO z1FKK-bDqYlfzN3T^p_2kWOjb$d|&o#(G&md;^?`*oP2pHgKI!SWG4wDz4Kl?WN<7< z(PQyYEUvW1yku&?>`H0Trn?z1-mmPqJE%f%ifNW#gZ*@qn{Zp8S=eMhCkFv9?OFq$ zmzB$Ix*JXStuv={>wH~p^{yppd(N(RiYA7MTy{7Aqq~537U?=*j8M+P1evU=ZJ08- zfTb%~Qroa8AScOQ@@gPsYGBJ&w#kB3Yy;+zmW(NPyrAqwii)TM@5~}zC7I@!14|aS zc*!Bf6uzQrVR@$2f>+*_HLxKPX)KyJaU(Zx7lxY}3jM+QiH)IPO_M(op184Q)5J-I zlP1;#{o#qe#@dN3|8}4FBpt$%I^yBS_ILe8e>>W|lg?H-xg!_TO)p*Q(twk51G>xO zml36lJ=V1@-QUtJFWueJCEge4?%%D;g~Rzf+a2EGQsEfp)8!w(OeWp$(k)*I5)p^M zB$y0SU@A<5=`aIk!Yq(u&uo|jhr(fSI21z(%!N`Y1KBUlgZZ!k7Q!NsOFT=U0_0N8 zGN^>*uma@r%}R(}l95X=a{1*bI2xjtTN2yY%=D6116~byHIQ*Nz(dn}T;?ouyxQYz z$iQ3@;ZXPK-b5N}{C30=dwG0*Yd~6C`bQrUwi8CJ=my>S>q@qt=)cczJ#@&D_ZwZh ztgL)=!RWG*l_i+Ug{3P;cSz2klT7xVThlrBh<6ZtPAdP?Sxip3(p^_d_rrtO@b!baExbx;ot5QIiJ0p!M$2sD8_ zIU!F(Y=iA^BAf&#!zpko?10nYbT|XfgtOpmI0w#!^Wc2A0KNbh!bR{!xEQ_!Uxu&1 zSK({$b@&Ec0^fvh!KLsW_%3`8E`#sG58!h6A^Zq_3_pRNf?Sf2OB0EgC4R=|*yRbS z|JE?89jQ~hpC-s6cYVi3bWyU~u|)g0)RpqZ&rMo1r&`{Qm6KQztR{IBI193&6XZZ= z$b~$}hi=dvdO%O;1-+pU^o4%VANGU&;Q$x_1K~gz1cPA+421$12E$+=hMX(r_!ZN6Y z<*)*(;7Yg(u7>}@|KM7<4z7nA;6}I!ZiZXnR=5prhdba-xC`!vd*EKU5AKHt;6Zo@ z9)?HYQFsgW;mC-sS& zgy&~e4ai}qRgy@P*>ZGYW5}4B8l(jzH#SJ?rx;3LE|fwUl*2rb7R#RB%+PjA%}?Gn z5CCbVNefL{XR(%9>sFbxEE8L1(!!M1S+bVdX?%A&oB?OTS-G(9=e!#Xlz*T?Hu;u6`rPO3GvXC z(_y!$A`l4$w**3)!Ua_kUqg*ARKsJL)gfPKTTw;Tl7iAAGa^u$Y`w2Pr!^3ZhvH~A zy(S(cD$FCiMGIr6rYWMQ4fW@=sxo4+6XGFTw|^Kn&O4s$yP=T~51mXrm@R*TJiK4k z)YupdMT!;#d^Lek*gH<_yHU_wvV?fZNfHmy)t=!<~DY+?D04R~A;wvzp1% zTwh&XFxXJAAW)ZNU(FEMlFx=n{hq8e+1Zov`4;-?d|`QPcECgsG#|m+x99dSEVgi<&t1^+kdT} zyB29j?7<};vxn-aJ-9r?pCS?Qr4viXjZ41P?eh4?jZ2Y@Y&pt&QZJA`pOhPNJC-Ne z*-Esu>g5S+O}#*=D$jmr)_dv$ciM8v9?ImCW@#u_r7!IF)umYR(R_R{s;3$3i)DbO`wfsy+v`8eM@P@jy z`_;t*oZR7MkAxLvNTzncgWrr8SQNIQnWS; z?zFSbn>?QmYV+=u5uav{8b2l{t(|tZG1KOgdV%!Ile!Vrj(k#Pq|WEFZeu2?=U!|o z?Q3Hu$ta$WwvCxCA7vXeNj5v;%cE>#rp-s&#%w#I`0{kX5hdEjq<|?BOHmS*A$L=x z)uqeQ_5p|{-l}W6XwK)nt(v4%w0YatR!y3Ztb)&~t*TjHW_k9awrbk9k@q$cpZY-1 zd^XLK(aC~7nop{8PIDF?25D z&+R`lB`=s+o<{AFDP2CwBU6%Wb`YG=r;%u23Ll zFOy^v2-}W=WE(2;J8X~1qY5d0#!2YqZo7i)9~TCzWx&*=X<7BgSno&je7u)pg9$y|+omt0?2&CfWRMJYM-gwe&MXsLNa3qg&5@=DqN|B7*ykBpqOe zR_9d__8F~#)*fiy6EAsiXCrB_8HSzLNAMZ|Nki@57g#&Y<~!W}{RnGE+P^!<>Yj|w z=dA`NUsuLSCb=^HrP$nPK5kxgdEG8nC*$8qdMaw&aYpaGZ_-o>LwBUR`PArAOcHNS z{hYpUk^uUYUjXe5k&+^UGUF?6h?LA&&!0glqX)Fl;D@}Q*h_1G*DCGtl4aQj)*feM z-dyH2s7yWbta?wmGr3gmhYf@aH~MzD7IXB%%7ThjM^_qsY&FKLG!$Z+_x||VMkTH1 z*vo-=sTzK?ZOu#4@H<=0LM&tFm~6JrHlitFHaT>wEl6}1FbJNoy%DZ$(5Hn4mPgio`;pXBf0X@#i7P^+@E0! ztp69R{5Hw`50l}>b=>>0Bdq@lcBJ*+#~u{*vt&Jtvc4?uXzR=OW2`?3d$9FqW5-&5 z0oL9lnI+LM-p-eD$vP%w)iNnGu9LMHEA>Lk+QH-y@$fHTBELb(k}^&=f(& z7CY7YS7N7G|9@C}B_m7L-3&YbG3-q1OW9{x|6Qyd*fCpTQ_4fimUxl%M9P+Ra;R~g zY^jICtS`$euc#trOCH7I;m>DMVq7P?3Om>OQV*rpUxzKTzHCwD);|S1&-(HTC&`PH z{S78kzohKTnJhG}lP&eI$ohZ7F1G%4ScxrC_B~80jO%1SiCt>_*Rjj2zY|*-^*eRL zF1P*w>f~p#+PF@q6R<~F|5WVJ*1r&Y zjP<3w$68<3yVM=2(-lmPH?Gs^@7OigzaG2R`uAde)_)3HZG9=PEC;ERl()vXPEI~H zVEz5EvTjH@vVE*Ku9G9>-C+G7jNjqBu`hHbFE zls9PoORDd#;VTa4>; z?u^}P{a)B@)|Y+BcI(UbdZP7bU{A7sG4^EZOH4_Ok~+(Jll4dHEcLfTJbYPpDJQA3 ze1E!eoz7C;Gpzqj?3vd8G4?F$OL@<>{x#ThtbYskT=&(Hh`reQvfY2l`sLU!TYowBE7q5?f7SXD7hki! ztdp->U&{Us>&x$7V*PJnrTnDaA2N~8q}<;zkvJgbUdiO!#&vQfw!dTjd$HfO{*&16 zS^qWcW!C=y`~9e&my7*@_4{KlxBhUf{5C01*87i)>*P(t%K9MX9nRz@#&z;4uo9P~ zyknUB%(zaTYzIHLzQo`!tS{^Nm)4iM{FU`(d4Fwv`TjT7|0DLd)|WV!x*+ArdY5gU zl=l#m-y7G-lQ@@HA>~P&%ioi_NSy!4xK0;Y*MGMDQ0!l(9pi&H4+mf4BZB ztgHi4mjIKijO%m>W3RUU4(vayFYEUj>&rTnGLX7RJ^jnLP8V6Oe_LPdf2=Rt@_(%_ zW&EG@rHt2F{~hdgQNOE;z25rWus2wLAofPXg*Al!^Q{sjHOt zHsd;7>#?_6|19hs)|VK()A~}ccUfPS>u&4ckG;qGvi$d2|3mD3Q9r*sR&=EN1DQNv zTql1R_Cf29!Af0_@@Fx5*tkx9Irb6jABla``m*1B%=(+Lk6T~%Jx^HwJnWO!{|fdg z>tBX_+WHc|&sbk#>RIbwgMH5WQs2*8U+P23Ny?YydeOK}zSx(nFZN~Yzm9z+>hq3T zUXE-1{jjnPle&#&B05sH$xPlbuG8&s?3>nKf_=;S$6(*KzSP4z)|Y+JyVgGyE87XF z+l5TtH?Gs|60GbmNZo$OMAj3jn{0m{8Q1A1vH!94C8j>HzO2KY)~B8%EG2cLeDWZ# z@%i4(iu&Dq;AdNZD87`R)O{R&j`io@%Qj5vz8pW-`p4quS-%Fqi}f4vyITKb{Cw-P zuHA0d|2DqF9I5-S@mUVzv)#Krt^XhVUe;$jFzt9gb|;S9K6XCq#O)jPd$5ddKkE<1 z?{EF7__8iZJr?5cZ~f!(53qh1e}MJR$CvGv)Z_d3vOS3ZC;UOyzZsw3kko@%c86G> zb?Z`(l6q1HZUGLd=P-OQ{&f7|)?bW2!ur+tBdxy;{~+sMgg?sqm*Gn+l6w9eU$#l{ z*)Dhqa@7A9{#fhZg3r2?)bla?@y2y}62I;Q>k~U}VbtG8r~A%G9&XY##8!N&+46Ut z#?R7|{&9wWv3GTG$=*6~{pK=2srhebU&>ngw(N+x962)HI}=@XS&3^f@iJ?4KD+F+ zHzy|M;Q3w+>|-^sWh?j36|9;vnE{XM0={ryA1hzl;&{Uyr>&xWU0{wb#KFE^POp55 z8t|e(QAzu_gj06!-mKV#NH>4tmaY6>Ib(J}7E>GeqhF!QkO4^x!T;ne0ehVo;QBiG!zpkk!P$U_7DHCg8Cy8>) zgKKV4eRzu(3Yi!M(K5@P!p1{%|FAyL5D3-!y_m?%m`I3+T(f`h2kYyD4PH28W;mD@ zkKI4W1I}*IcCL_m(U76h5be{p@zBM@Lu12wFB~#991`~rGQfdbR1t`Tf?EQiP2qy7 zh_9i>7ph_G)#{Khw5_P3YDqz9QSAAU%&oM2xa6_+Lov^QDdRz+!rXXPv@mvRnj(7I zQ18Rl`MEDzLOf*a;$hr4?|AaLU+qZ?kPr`@Ogxw^e*%NZ6;w4bOlK%kv>@QC353Gl zaUy9Y?n7TB#6wP!c!;(hY6D(G>_h84Sy2+=p>vXWi0vPuH>+2bE%uHV$!hcSKR+QJ za^r(XeEy5&m0&k(z#F}4H!IHjv(`0`{yJ>yzwkcqTQ%SfP`z)h&pj?p#t%@v?>q#} zJu>N@T1Xr*mMa@O2%lm`JGut@=_Xfx+5UtyaNADY(9^yl+{h}PTbD(1gG~)JyotB% z%*_(WzzGb_AlGwt?p(ESX<0*4U0vIHZ?0DZ8C3&vlc4JjijZWTdjs~zD<YT4kKVBjDpcH2FAiT7!MPm z5GKMQFbO8Z6qpLrU^>iznJ^2AU^dKwL*Xzeh7y!fWt4ya8{*Tktl#1Mk9n@IHJ1AHqlQF?<3$<#t&h z9$ezVB_3Sj!6hDC;=v^z+&t(4T_GQc3zxWXdqOYh1H^($EV#sh%er?5!w?us_VLzR za|C)`#??TMliiKI7jIZxQzQGYHYz|`?~>a1>eHQ-c;;efpAn69e{ zF%52J8qYILe%{yna1A6r8fl8@HMIA9ZSNJMuXxW;$5*6@X?i~7+<~5tq~{LtKS*?T z>G?2wVEr@AHZN9(EXL^Q6V@^YY1>;GI@!aIQRrk1AFR;HHa=FN<5b=mr_jk$)8iF7 z8R&X~LdSI$r%<7jfv_hjbTUZxWQ9)7(xxbMGPw3sg-!rwWa9_U2k+V6gnBq zd!|As1AWg@=wuM^B85%{2%oLc$>8C06gnAL{7{8X1|2_4p_2j04_D|0qAOPDWFYer zg-!-JpR3Tx0O+L(oeYj%rqB&VSFX?%pqr=A4MR6yp&O2FfkHO|-9m+KB)UZkoeb)} zM4^)b-zyZlG3b^mbTUxf@D@gf4}ScPr|y5khOndpvJ=w_i? zqtMCC-)j}R+30)<-5hk)3f-aT{0iM+=xP)?>B|i$bj9e_DRd?1)>|D<@+WPF%|*9C zp({mKtI(C9+o;f$quZp=%|lnG(9K6zuh1<(*PzfXLf5F!@p2C51ch!1x{yLwfiA4j zEkzem=$4^tQs^qtZC2=bxr?(!p<97&t3p?WZd(WHR+8U#MSfb{5#)EG&5sdMl5R&w zqB}{UTZQgqg>E&vQxv+R(4DH#9gS{>LU#t@e$Ilx!1w#Ctm%JLtm>P(_%R=Jcj8L61<&GEBjCRNMbMNuMc$H+D zV~*ClJL+S66h?crk;;o*Rr2nCjE7Rj-~X8QT4k$ikgm&H2zh~FmeYA@uptny$hI7} zqM~w-TQ0@qEboF(*%0beQdueID0`Y*9yzGn(@gk#cmBe8>k8M`u1l5IqLLK_3+rXn zh_>5z#r*N2%JTVz8ynZ}X+9OJO6A;kPm{Z%YK5Fj?`d*Zmakq}SiK=-K68C_b-`dm z!Gb_tV=|%1XG5fZPga_A_M3b*5@yMMi1`((3M3FyC~Q9UDOY>SzmI)smM6`&vm&rP zCQoW>g8rtYU+TYbL*bBLFHfp8hqOXp>P6CQ7xD{*{yJZn*P13vn)M}r+Y#HT$!B9@ zAk~JdF4y+jr137lldfD6&(ZV8=`$B6+iec*h&|?7eyJn&n37LL#S-bwOPLr<#qKc+ zC|cXnipnL@>y|R9^67v*=316w+1y11DHnz>D=Jr|Em!4|V0F5D(tW=cK}YPtC7%x6 zgQwZI5b>oGOUI2%zSiyX_{YhWnxsjePwEBI=aX_nmMvLXu4GR_MvJP>C$Kg30wt}v z<}ad0+~&`1dFhr%_E09DG)qH1mA427mspoLY101DKpE{yNvX-Ceh!%S5IUH%~ zkbGDqr;th#ySu5<{$XJ-bq<>2j^t3t*mh|Pm*S_^+V2YYaHUB;(Uwg`AhbTo$!G4~ z*0R|vkGLJMN7%!aX<|awsAdZ^;xv=A*Gz`&ZIRK=HZR@bZC61%+q}v1>7X|6UK#Oe z_Neh=a?;vqXB#tZKB*T-zdWfMQSHblWk%|JKI=ASl6vmNrqaGPW|EBJ`Doji>GDyw zF_UDoBfdP!HfGvH|S@F98`z3EN81 zd{UirnzP_&Z$sLAQZG>aNRT$4ln0b{luOzBk#2cv0(;ysZ|XT^A3^$hZvT-fdBM!` zG-{7b>GDw?nUZ9)gTRa~kMhWrHXrSgsqKv7%ai8P1@X*=n)5U`dgG&F8LcChU~> z{ef_p--&DpJ1c$Ma48iLiPSc%4^uC7fr1JKKQ*7`Hr3YE6qIj`gt!!07N~AozdjHu zi2hCU=M_y2k=puz6TJ#u8mw<5laT$m$`@)dc~$!A>Zuxjw;@pH*iy#D_H$e^rFFMP0u42R8u^2D zRBLpuc(RbqpVl>4Kjf)Zt@o|B zGiw_nb#`W>zgb)7+r|bH{i3cm9P@&<(&~MYP%Y(^%B&C62Sc`y^}(8^SQ+Z6%z)2U zCzmQ&Gtoc5Z?5NHO*NGz`7{Q@k+45x7qKza5NTeV#!ygV+6qI#NYEd&i_OK|U{lC% zixc*5^3~LYqC!42S1BKA8|_cwH!ndr5NiIRaL~UgV3#v-`SA(zXtpd@!e7XzaDAg) znn+-4r1>{xtFeEB7mBZ;NN`i2VY^+*rjY&HrbumFIIh|3tE+8}O+HE1(abjcLbbkF z0Bu>9xSU&R8{#=^*~%?__D8lSiu@abwf>s*wm8&eh|!Ggr**-GNb{%lq1qbzg~U>P z3FO1px`b#-h!Nj579zT!GS?r8m9IX$zB%Vc*{W^Ujnr+VF}`*a7a&Y5$Fn0kf_2TG z8tZB!Jc1kjsc^&>X$n`{Pi(U`Z>hEBUnL?5!`K3`od#^(vqOyLQ(YUW_r?7B#_Fa> z#1^JH)D+vUWNy&T_HPLIH&qAi#$Z0x#kLny(KZ77b+wJvA-41A4ycY@b*%iX0YW(T zO?`E+IXl({Wwu{6g=+o5xE~JMKWW~t)!6v1@$+l(T}+KXaTBfao9d2cQ{$&j0|8r< zni{*THMPFF*rr|++iBsL2(^D%+r0cWP4)G$y_~o;b#{qmONf_JA}jj0Hpc7+*`Y<< z^}eR{fmzcMK5*sPeyXWuw-NOv_~KDOjo78HZ4lq?GB*adg(J28P0_!QIE>e6y)PD? z@qIaMgr=xcyxK^>?zQRz5nuDxT+c78V`;6@M03<{@I`7j#|zpJj0CEKLHpamEe(NC zO~{s`(O1Wj*p|03R`EFT0yQ?Q-{5Poabi|gJY(}IE)4mkPGW%<{S@0}hXU)H>w*s) zNTW+CKDz?Dw#){_{ww-j*tQYuCw4!9P;704`4oz;jWDeT*#@kVO|QD%ZZonS#uv(b zXwHMLns;JsqRm@k#24NaUk=%$#(r1)_|M88C;ZI@4llNzWJhaDkr1QC4Q#a=#TMUY zTklk1P0+58En5ra_A*)v)l()%U4Nu*N)0zXZ1xu!w{Qb3hSu{qmhU=u^JMet6sz9i zi%gk0J^F#XIlxDAX*Hj?c8Y>^fg)cM&A8a!MrO!{9gli5BNS}pf$nIv$7V#<+w~wb zAfW8`=Zxi%<5&Ys{IXhhz2QJTZJ&@MGj?fw$xM5Dq`0xh zSLwV8K05POR@#=Ev_PZ`&H{Fw43vj`fZi$70LY z0zd7>f>40=Lv4hX2t{P&6i8z{6sQZ({Atl3jIJRXhyE>vjodgV?Zl|dU6|1ijAGsV zP4olbwI152s3x|Rn*COErI-Wb)~)tvkg%tf4Ja0(kzlYc9_^;By36T_+`1b-1+gD& z6Iwoj+)Ta8y|oFaCFYM>k4DDK_*xdf#afmbyR2oIY1gv2{DAy;d~M^iAa+f+IKao+ z;3({<;LQ~nTQ7-KANL)Gk0^+k)0S}anj;&t=AxOz0s#Sy&w%Wsi{|kfQ90+4%{4xA zAq@l?_+`M#bzgJ&3RBcL6|txE^Xp0`Jr-7@!F^ZGrP66ED+w*B2THQ z(qLn}jc+Sl@-^C)<%+8l^EJy#rnIx<@w38^pQ^tOr% zx7!uZ{b|z9o&T114|pjfYryT!j-hp2^uFTR3%c*z`K{|SvP!%{Qv+@<8lSD=!g=Y6 zr+>ubGvAiSN4=DhHQ@Hi+a)gC@mD-}UiQwNuYNfrtHdj`Y$y(Tr%|jli9>mZBp* zB>mca;f=uUjlkVjgh&%Tdd(@};&yAHHv+eL_d)WZeLLcv1#78wZv<||I}}n6`P6(5 zf!vdkB$+*?Hv)I+`uVI!M@+K5+CK(Wl8lH2v)&uEV^F2bM>z&nl5BRwmq$4URoZ;C zV^Fo7QG9tiY;;6#1ny*epmvUG*!Bt|ek66+7+u~7+|dec_jE0P(NXUf*(=8*?tndl zHv)IN!z$qqB*MHAxDzU*l`Hkrp}hp!HYWFIwpx_<$9A3}1OsppiVoI0_a#;Jwm$s2)N-s>nY@NT<~+Syi3nvdlES+!Mnc}k$|qU}|0i&@qB zA?Mc1?2W)J?^WZe=hhVy`)rSJx+7D%e7q63lU8)}2&X(UC8_5fth87@sm6kjw7%=qdQok zlZ(`26*_K$bjB%k+!W`GSLoyp{Rs*kH_bSO3SBK>xZsLq3e%swnDcbx;YBn{^$->=ng=4m_j!I z-Qfz|Ky<|l-GS&z6uLp^<|=f9(UmH6L(r8ebVJdVD|7|u<|%Z;(9KuqhND}c(2YR1 zP@x-%ZjnMa3f&TgZZx_Ig>DSGr3&3xbd?I7yz6$kLN^}W3WaV0x+;aP5Zy|JZX&uP z6uLvu9jVYwLbpnxn~ZL?LN^87Q3~BubVn<6)6gBG&`DeSScOiW3^-1qn~Cmtg>DwQ zH40r3y0r@3Y;-<_ZVtL?h3-&veueHZbTtZHF}igMT?xANR>w&6N!v|x(QQ!Z8xltaW7}mxVjqMiwfPf=-#y1@J5xS`CW(ZErm{=Fgelc zcq2#B{BA&Zl0tVQx|0>Uo6w!2(A|vgRE6#qbUPHfThX1S(A|dabcODAbZ01Zcc42{ zp}P~^Sqj}<=+0K??nZZxLU#|ka}~OK(VeHz-G}ach3?! z2k3sT(0z#R7Yf}+=zgiteT?o`3f(8@eyz~S8{U4CUT4}Dzg6f&_&bG8`Z2Fi=%gR> z_X?f#WBx&*lYY!UDs_zo%DBJ ztI$b*=XDC5^mlGo=%l~%dWBBF>Nnp*slOT?(D_ zC*G~lNq^!!3f&lV_bPM;qq|R`8;kCKg>D>=k4!q+CMO#5+jMn= zT~*gYu~c=ZEN4L_FZe=v-W*!Kd|;gYd^B~V{1RLc4ySOjH258ozjL`*$A*^Bfy%C0Bbe^tl0>#W+T9wjR0#l z0<75xux2B`nvDQ!HUg~K2(Tvju_pMjCit-?_^~h8a+~1ivk88z34W{zeyj<8tOKvu*JGAp6;DBYZa72-a*PSeo*Z7*{F|wc;hO2D}v zY??T!aMHw@pg%m(*H}AoAFYb`aiq(lxxuD}8Xo3tyQGJc9O;{-t;T_fv})nfvIbtm z(6-*2>(xL;)qoskVuzQED!5lzuList@M@q%4S4N}7S-W>@M>T;YarUL$cdl2?q)Xo z#GlDtr6a}*-X|)AIQ_)8J;Nj@*~&rHrnDvUy8Z_N)l-GWIQj(57&~BD#p%TOkV@co}U& zAW~4iwUO7q^Il~yWnc|N@4w8zf_p`_HIU_0ntoxgZ`kQKx^!7t`RIbtWhE<1FqI2S zSITYF8Ix#Ru@ENl}otTuw(T#yPZw^56yMG*ry}hi`_0+C&oTTt-GV; z=RN+!S$vm@KxloSU|CaS_i~HZg7l7bDqAvtwSQA>O=T#!aa9$g`DHm--FVG7!#UZv z(JOzY&GM)DTNWUiyep`&n((Yw1G`ZJ(Vk9u4$w=c2F$J{$I0%>zKp>|3+rmDYpdI+ z8`&F5YU8U*%5$f?PI;O#zT=E7qgnr^ndG&VVs+x#XbniP$hnm49pnjM z9)EG<$z6FWmphV7uZ=t@D^J176Rz^~syvx0Po2tLOY*d+JP9gKdCC)~-#I0}x2W8hdg4vvR4;Dc)LLk+Bh4X_b5K|RQG zP(f&f6F|BumI-6 zLRbp{SP$~pz$tJpTm)Z)i{VS~W%vqw6}|>vhi||o@J;v@T-uo(6J$X)bb=h{47rd8 z`OppIz0f_NC-j2e&RZ6U@VM- z@h|}jVImv?lVCDTfvGSJro#-F3A3OGX2Tpf6b^%8D1o_93T3bW7Q<3l29>ZJRzMY8 z30J|@a6Q}rH^NPDGu#5V!fkLn+yQsOU2r$t1NXvxa6dc%55hz6FgyZ}!ej6_JONL_ zQ}8rA1JA;9@I1T#FTzXkGQ0w>!fWt4ya8{*Tktl#1Mk9n@IHJ1AHqlQF?<3$c?6K1 zi%T51#DPm3xWs`=9Js`ROB}ewf!hVTLOu`=@}6+F2lRyA&k24UpI7VM-V5!?&zi{^6PW-4@j(alom`k^aQ==!6ZtgtQ0PXWTd2^D zM7Kzx8-;F(LN^*+g+ez5-BN{4`U}#IAkO|}9J=L-{Klh8JAyd*O+Z(r$gdFHN`-DB zx+4_2L(mI2!-Bff(D|FM)9iz}qM|Z43Hv`>q3f)X}$18NR z(5+GEiqNf9=%i1|r_f2iRkcDVeOrEoPWr!U6uM$`>lC^YbnC4y=?LO%A9K-dQ0Pk0 z)hcvl=r$^J^U&2PbPLcmD0I>vn05ql%DWid35xudqKhbW%g{9`bd~5fD|E}zZBgh} zpxdg@RiWFa&|Qh{1*=Qd&b|s=+7ZO5=d01B9YGx3f6={ee>dp};^_W|?hS?RT68B` zUDA=@$nQFICn)D0FwBJ6EB*8{K&d-96~eSLp6Vmv#hk;_p6mUr^+CKe`JQ zx(Co*q|iNxF6{{7EZ;-u(vBdG?qPIaQvB{C=)SDbJ&G>v2;%(iW9YuB$nSAJ_?I(0yN_dllUe6uQ^YU9Ql*jxOy8;>772=zgfk?@e?+Qs~}7_hW_bZFE0T z=-xs1Q-$tbbU#z*-b43uh3DOFM!%%l8So zv?GY4+llUX>3`SsZ(gC$i7@R5;ygYm{i1(RKlebD_!p_Bg8|0#6Re|oJ#C;g|_DRk0*x?Q1@{?qFfI_W>XL7|iW)3hUq zvmHtQ=}n6K2BEuIp&N|u7KKjw9q&@;Mxwi0p*slOJqq0@boVNBqtV@`(2YTNze0B~ zmzvU!AkO;G=9f`A>ex&Bat#pp`*QKTvUxS&)qqz6UJWF#flqZD0?zI#eEwxs1w8pt zu%xzOllKUD@-^XovoF@bmaRPTWa2**s0;YQfqk)%smjE2P(?-5fn2HgQbyK*Imz(O zG%|ACwkvQ@@0@={_A?D`b{u5+YMJo=PrcCp+kEqmI;JUl<+YCv|f zGOj&_@gux=$hZJ#Rp3}W6w96>hyHT!DBPk7a;XvXKl(&UwD!DS(NyE}5I&Hyqspg-&jgUZ~K?P11`L zI=T6Ii9#ngKUXMpauf1Wg>EdmWP>v#*7G=Y%N6;JN4G+un}9Ca;0%esTZnF@BEN~~ zj!@_hL3gA=HwoP;g>Evs)e7AdbVn(4Q_&r*&`m>kj6ydZ-LVSY40OjSbTiQ%uh7jx zw??6ptC4FJy4mP_3f&xZ)e7CA===)ZVd!cUx?*(e6uJ_0>#eT!;0%dzKNsBwg{~A` ztwL9ZZlglC09}JZw;0_C3f)q45ru9Ux+aBAnxmT)y5;D$D0C~(ZB^*1&}~!bu0;2O z)un0|UxhB&Uk55OGxn# zFvX?pAcCDRj4?J6)l>9o-oU-5u!8ROs$R zX9iO!PQ5|fTMFHi=q^?0 zoJ>T}B;f}NoeYw2xkC3MIx}cMaq75w3EdAB z`Mr$J3>uIozgN)xSdrhW=zgNmy@u|m3f=4Iex}g9f$rxD-J9rssnETJ?$-+4+vv7=+$2;iWSLF9DI`i;;n*82F_XkCO@1y&pLiYi>KPz+}qWh~t_Yu0kDRdvB`#_=l z1f6*}zBqL~%k5}ar_awcJSZ9P`k78eJB;e<^-f`X~Rb&`JN~{}ejupS)I~ zlm5x;6gugj{7|9GL$_U_lR*-$SLkGrgc}sPe01ia_u`as;7WhzO^W>J?{xFi4SG&P zxF@=Piu`(^>#xxDLASp`N57*xK%t}G(H*GJ(VyrJQt0T{a|;x@!RUr3(Xk4miTWFY zZbTAY!g+v8f1Nv0p`+i-EljuGoIG;sY+itpUo0;;kxQXPwGIBdrka5C7jMpeP_5q!hl~sba{TLPg?;ex7& zuc5{ls^QM->X0wAt*D}ENkOTZGFC-VWm9!st-oMl^n4`j?N#=LFpBLTh=+V-JeW5~ z?h9r2%CKtRAV9Wx?8^^ds?RXzDpa!Dj7>5Gk zU{lB+2xmZvTNP0*D|+J?x2lv3{Mh=~kbza;71^r+MGfrIY2=+ODQeA=cr}o$2BIfR zIZk%hEnC;{PL)D#gRHG?LoMA7lG^y{)1Bphs=wM1r-`3#`Mun|8t`hss{yYDKBXG? zR7d9Z&h0*>we~s6mWN|=e1*ZL$nGz*w1G-0E0@r-y<_z?yPr?&FI%*!c6|>FGIvKz z+d)1ve&IDsuq^F{RiIMOsRnlkw|0F#EBajdABg!)KJJXs}mbT!I~z2Bs_6r&8CTy z3MWmh3HrkmeT}sfGo@DAQO;=ZhIgQ8N0oWf46cD#|GIZ1%HSYqtLPbjB$5G+yp+*3 zP&RML%AN_2^~nnn+FKzD8zO;FLm*O6zO}I~81i0T-`)z`H}o=$oR>1W2E6NznY{MB zvU@e))j)>Vz^8fLap%rgzntOKo4LjJ`a3gs-FqeXYQU?3XbogJoy}XZQ`LuCQBfI6 zCD43Vj7WNeQoee-PxSr`O@1jgE>8w`#G}6M{Dt$@6|S#cm+IFRm8>XOST92swcS-! z%pWhRET3Pvv2p#L=2Nk%R9-u^r^#JWwW4%SGvV*umF25f7FKUanbllgI~@!*6f6kT zC3#$%_t8l{8zS|4veM*vZQk=v6u;2?mB}Z~wzDFzz4;H4 zcwE44O7c~EX1k$q$lsnnNTM~Zr$S%qMbc~+l7FFJ-k6)@mzb?tUnZXp*iKD88yf?u zHdJ-Fw$~<&cln)k<&t=gKL0#@=Hg_#&7mE!$6U)Vb;KT1@~Nm;G8dCFF$SpJV-`@f zwxt!7OXjuxP4iq;J{_>fT+2@`o4cr>`Ip=FDk@i{Em!4|U|Wxlw4Gs+xoer<5qogS z$LygxY7d@f-$KNfPAnZaF8Nxw%i|w6jzvqF^!cP-Abmb5H)Pq8mE}q{U`e#7>U;uQ zQ!h}`nrr^TtoPIh?zH8SJ(S5O&C*b=N?+LTt4p!sqxtw!90$xEQ<;xHWy#Xj^Nx7A z{2Nk5qCTI-l!wZ6^%Gy74roc3dJd;Nz)|}2sUun>Yx$XuXpu-h;SF_Z_p6oV^V060 z!;z*A$%jR93aKQqyPGQQ9~K5v=b$<6NDhSzteUoPDSm3L{jP8iSDNILII@e)wx!A4 z+gdhzl;YvHqMt7_JlS)RS9t-7kVVanu!tuv=5YmxLe5uf@% z(0n#cMpDAIQZ%1b=bYv&INIBgHlNfB6h9KA%_rpnr5)u`_I{*Wo|?cOcg&l5PT5D0 zzMk8EWJ+EzvpkL3BU8G3lt-o{+3X-NqsyZ_GNsK&dt_=mqxkZqxpYB1v!SNGu4T%_ zaEfhhd$DMISiLd+M{PLEsyD`ZKa%Ft znQMCd>FDTlxx6sgI<2!qm&Lp>3SBn3gB3b?_I<2EC$IS)r_iy8&Ul4RUh_Rcq02*8 zsL;u4xhE-f-Ox=|=y)x+Gex26fo`fo$LqVDX$qa}-li*bz0u83==z|WsnGRBH%p=8 zb>L2sLf0SNY=v$=baNCsUK{Qls?Z&P?l6UJ0J_5!x`F756*^v5?vyBWgV4=Y=yxJMT63pNq2smYPPsx?fNq{bHw@i;g>E>y1q$5=bPE-_k?0mFbfeHMQRqgat5E31 zpj)cYjYU_f(8-mybd%7nQs^e5TdmMd zL3flwHx=E{3f(kx$0&4i4sonPHv`>q3f)X}$18NR(5+GElC^YbnC5-*Qc9XWSG@5(I}bAoDB+HDY{yPPVNWWsL(Ay*PzfX zMt6cjw-jAOp<9NoNujGmw^^ZEj&6%Ww*uW(g{}(SHihm=bT3$4s&?^J=$_7su6_op zNg4-NqkB=IyB^(%l1;I^RyTQmH=sL7p}P^?$qL;~=uT1SZbo;iLU#+g9SYs8=uT7U zZbNsvLU%j5GZeZz(4DE!-HGljh3+nNXDf7fqdP~Ty9eF53f;Zv&R6K}LwA8fcR#u> zD0B~?yHKHf5Zy%z-9zXuR_Go^_hp6d5p-Wu=pIG)jzaesx=R$g$I*RLp?d<|w-mZ3 z(Os(0J%#RFh3;u|-&N?ILHC|Q_bj^06uRfo)hl$*qx*qE_X4`h6}lJE1r@rN(EU)M zdl}u26uMW?{aB%U72Qu1y4TSCRH1tv-Om)dH_-iDp?eeEFBQ7C(EVDWdmG(v6uNiN zy|2){i|z`A?mcvWQ0U%A_eX{919X2@=sraESB35)bbnLmK1TO}LiY)}s}#DO=&nw$ zGwqsxD0CwHr$U#7?q3R>^e6sXp_Bf^|0#6RpLnf8C;f@nDRk1G_@P24{fXNZIvG{x zdWEhlx*HU_d~`P|bkaY0lR`)Tq?@0l9czMwe550}2f7|fbRsbcT~Bm96}sN&`YD#L z54!#e9sP;!{t6xagzf-^j($RSph8FgpF2pQ8;q_%p`(Az9j?$7pc|pk4MR6lp`$;{ zo#3(+7duY(WalZelD%s%@~oI#PL|qeBgMCxHoo&_c{SkGfL8;VPy_4-yO>vh7A)J{ zapB`*!pi}yQ`wUFtNoj5Ybry*jjO7-3s>5HT=0&KCv7U#6)Cis>Ey~>(e7dT{~wH8 z+SytB)1~yfTt`~ulA0^0*^7SDdK&wlwoiOXCgR6(lD=wbze`#JW<6n>K-%GwE&^$5 zOZq8Dds>q8zs5$Ql)f-&7fX`!OlkX)T=`zww?WkOq2l6yRp zUdDCY6R@;BCAnWqRr;W z^_a6Ump9C4F-R z;^Du_WSDWCY^m4b)|b3TSbqwZ_MD__Sr-Qx*U4Uo9cBG9v7@bj33iP2e}z5R`Zr_8 zT3`BS#zp;3vQEZZU;b`_^~DMCPLv6HR;99EW_lp}F8 z)woWM)WJ0CABMH9uAJlWXW01>>`d!RT+OonZ?Q$zzXdzn`qEc2C+c_Zfj!jvQa1?4mYmTxgJ|={R^-q*8c@|uJv!kmRkQ=Y+2OL&BIE)kaDG-<{8(?U4Wf${k2&6 zOv*ip$wK2gx!=Stvi_g2vP`60iOD6#b#h;uC%_aqa&;@+oR+~%9D6lW!&iIy4w2tV~?`F#L>~#FUB5YeX++{ zzYZ(wlGNoCCdV7s>GBoq8teZQyVm-$jrgqpUu?DYAIAEvFLhEA^}FU{B^F6t2Q!gv zfYepualLV!uCh)xSYLj>*7{Oc8?ApXc9ZqLi^AHF z6}#Q~w_)XPNcm4OkvJpef5_xy<2v1XVPzeVx{YLVs&Soev#~p@Uxhu*`cjvtTVMX} z4C_lQooW4FV$ZVvKd@(8Ut;(i>%WMV`XzOHpUHW~b-K%b=6vgqz+PZ|+19^ceOaCh ztuM=Sk@cnAU$p+0uoqkZ=UDkn>MqOkW#c;C@4`Y&U@8ufdK`I_|)z)D?{dQ4^V z4dXgJ=3y_f{t?)3T3=#H>Vnim>ibgTIz41rzHR*$mN7k3$k>4Zryo!m$3aRH~OnxdJhsjP%er8;! zm(;n`7pd2LCciMQ(@Wx7)+?!()cvoF>-3U&zqbA@*xy+HHSBMres5W)zq9^m>=o8u zg8jYq>#={ZzO08oT3^2ZllAY!{@MEPVE+>J`y7asdL;Fk!{l$qb^5Hq{@wZ#vsYSQ z>Qd^0)aSoUt~RdIM`A$YgVZ;l$u;8Pk7Dvq<2rrIvH!Au0Q+z2pN0L8^`(v_UsB)y zF%d|8Utw~sah-m$9<)|WcD$@)?sH(UQ6tkgTH-`h-XHLlZN z_Q|(dzX*G~^;cu>u>OfysZ&yaiK)Ac>-3j8kXR)3f0&8<2C4riOzt(Vv)@qceb%3e zz2EvPu@6{(EA~O_UxIze`cmJLFKIuS_lR+w{XWD#8uj-djD5`dCD_NU@54S}{WGvn zTK`Abr>rmQN*Eb#J3*~T!^1#HJk9Wt$!ZA>_^+Gz3_2A}4{Xxug^Q=Dxzl-(f z;dizEI(*pg;PD5b|~hSfBOo4z&ItBK|@l7iD6Fz@qeD)bGv0{AU)IB8X z50mGf9Z^19K z{#WqJtuNaGF)eAt|M2Hq{|WpB)@Pe@7e@V&`{T?0f;5u)a2H!&*7XwW*Wp)K|4jU) z*8d(pF(+x{-|#D~e>47a>pzLldX;n#+q7F{{R8n=TAw;|`8`Po@x6Pb_2qY0S^r%8 z)z<$p{!!My2LEX5KZJjb_20ukHtLV+h0nT|G>SMf=j!594tI^2?TiZGueJU*e4q8d zgkNp_pX2+j|8M*n>pz0e-%A=L+v&QfKU(T`z4eJ5cZ2n1JFT@o-@6;Fe-1wTI7y>_ zh)?;A{~!E%>&tp#rP*!pE_{amL!ci89!|OAK*u+4%p$Kim4x;!~%R#%1BNOvWFGf1dT( z*4^{1FR^!l^{GqKcf-eVU&O!A&i@7eMb^I!pYJ4%dmI1as6W0JK5_FoObcS5WgM8=)-Ju8cgkI1a`aoak z2mN6`*dGpn0Wc5_gh4PEhQLrLfMGBkM!-lI1*2gMNaw~l7!MPm5GKMQFbO8Z6qpLr zU^>iznJ^2AU^dKwL*Xzeh7y!fWt4ya8{*Tktl#1Mk9n@IHJ1AHqlQF?<3$bJ!^W@!%2xf=}toR+Ddt3$R&&lbu+5gnO~uCCgstkgq<&)DgA#87{8(Q(g^tHQ?2NR|6ea1D|qViubO+ zp+SakwKPpH%N%(C4Ea?Y`}D#h1t4*W0>0vCo>8gjrwS zyZ+j)XezRu?@vjZkF1jpdmDhg=R3BZTU+m4f30ie|Ju72Fe!>_T|GO)@sZ;%`uI`z=?8ir7>iepz=0B&;RGm8Ycg;+9js3a`m9F|1 z<9+g<&$@sS3jg(IN6Y`GqzEhg*I&5j$UpL$vn2A8EXwd}Wn*I(t}!G2*-Ex2-!*1V zJJE|?XN{24PE)uOA?bvjNJDws+1qQ(5dU<3jTvIdj>EkFQ7M<5JlB{ZX4;(gDE!x7lz-g+r8W;3&h6w{HPj9@V{ffh3;*>OvCAW0 zDf7KDh3^)r?Bsc6%4sL^g5qA8a@&bCQ%0tx-ibIwBFm*5AFtwZFaCLr4m4_?4Bh>jvsPag4-bkhQ z7US3pM!qlI?oDrtJz%&jW;@vXMYb3FzOY_Tb^Z=na$o4gLh^gyaJ<|<$DHn~}eWOy}j7dgP~8 z(As}JP}pH){~g=C+_TtTe!s%o?PDIec-7gp4dF`eeI|3s#f{BNTZAK+ zUQ?54X~A75t;;>=8S)vq)PhWFYi+|ak6>19T_#n58?F6t*~;3wrKy>#TAOiSier05 zX35HB%QDR=HfIpbU)g|1^D?dkcL}7@jY~7LGYx)lMr})VOG~DHNgW>JbKZf}XV*3Q zAM*1_%WE4}=x5lE_c@B`D+bw(vT*pR7n zp}Ex;Rg=Z~>V~ECn4zbSQdC~uuxw@ZG99j{u9>&M;CFcr{>Y&TPqsO4E5Sf#2%XVb zlL`pfHvcDt*4oPIx_aCbqjy5xixhN>5(GViZ_b0`N1%E9ND@ANB-O`{u*#XUTqj6C zJ+J9_1|WVj(Yr%E4E6;xWIi=oAAEd;6zmFtGgsAQ@I+~215F#>pp!JbJ0#V+Lzp{I zb+t=UXHS}#T1pegFlYU8ZR+}k!5QqA>l4{8)#kHb7@XE2a(8z775tMtDAQsks9^AM zP|0z1P!#HMod^7<2IxQ&+pOS+z2xAR$oZ>rgh9hY6$WX5F$_8maTsJ_z6jEY|6~)J z_%(D=(WNalcsAQJ?~HN}#b|O6fqSJ0$|8e^NF!$uky1zyNz#!l6nx__hiaVUKT)G5 zzc9d1elc-Km?ubP;H#j4oZj%USMYqh*Q!iOekreQq01Gt&16;@q_9#Wag`eAsx(Ma zrABIUQ6C|d253kk!MKsI**{X`jS&ghzEC|kkV>hEN=lt&1vyNkjnWXZVBAj;jG2gm zC0;sU#NT4$)GrO0@TG=n4$LsQZPY)dOKC3o!dD`OVIakjVIYxj7zp5H0{K$Da@Gh6 z@h%Vu3QoaN)5MeeM)=zsKFOqVNSpNuC3W3_XwI~>8fJ}zwP_=<;JlHrK5-}6dQ=qsF%+)^%17git7z5mgKh-&6&DP zbxX#;ow|lbow_*4oVtcioVr}&Ou^?*wU5H(+8(T}LO$pj_w35DgDS z1~hyOX_Dp$wGe(ZSqcp`mmN)~g}YhfM*U=s8g+4i8Fd9eF`A?XUNouYF%^BRXtLq= z0(op{#8 zChBufH4>jk?4>;y)=AHmgi)TRp%I=YHPW4?<0Csw7Ul~x(YYsw(VVMcA~~h?mq)0PT4<<|&`*Kh286pA=b32GJ~@O4 zZE+|S+6rbe^hzV>(5se*e~gsqwPAa~yEU|a6OC8qBSNo0r$DdFPkvsBkM_I*o$!n@ zo9etmFUje+FXnV%z?-^)iZdNHdeBc}-cvLJ^NEh*{`bo$y@zak%<`9oh=Aj%N4;^?T&FE(v2HvI?UDf0yADwtl@DYhu zpizidPn(o{7cSRp^yZ-+_Y;e5RU?;x*t<4z-_Ru){e&RV z7&RQSF-kSUG3xkML~hIE`-k~LCm-E#kbrazKM4h;ej*ByJ7g4)dkD!Siwq(oF`2A{ z1d&Zprc=Tk>LV)sL?2n{LXEI=v6r+=vH)?JlyXif4}qD^w|l*h-MU<8PQe2O5A3N2 zVxq8XdAJV?yOxLhh9reu%cK3nyMNFVrx6JYga|2%mNwSVv#NWVtghIh5RI^?A>*o} zn>2U&{M4!SO^wa1cx1+qrYUS(O<~t^gL~w|;k*>54>oGKsw)nkURg;`Rqs)%!r5K5 zw`V7Ja75S4O|Pgdr>DmwQ#pQT;Rs8G+bQf?9_qs?NaX%RdwWO8(9u%u$#>tboOWnq zfbit(laO%ued$nm61|7p-~s$%v0$(z$!6hI*%yYs{Q>q8sF_ z>2lhMTpD(wUrmvQ@@~)GUSo#%r}Jyf5JQ-9yjIP3jhV|%o_oWFm}zs`Q`oiK%!b(h zEj=&icL4e9g54G0o>ifdUGeQ1*~#ZhiTkhY?>0grsIY4}Tp60Glw{l<4jS3Pue8{7 z#q%?%vh5W8C9_0d2wVn-A?Hl3!giweiuU|}MNT`>4RWpoIqgJVP&(1CJg-c-+Ox0i zTE2YG#>=_FE#EW$ICi3ki^fZR8x!v6&Rr>U*~#-t8DgdlbA;QI=an+2ox(2a8turJ zl?oh(yN*qA8}oeY9^z@%97nsZMx=R5F0ij~IqWQ<{aiy+UUs@$7Ix*0!$_}bwEwOp ztkTljhMKySOEa{)Z6O_y9{2v9O(7f($WV|!YO8oCmhn)7-5DDj z3gK{IhJ!aA=pPZR($%;y7NX$*jRwByMe#!q84pbj%L?Iez=ngDA9~7osIM-p9S+=Z zaN=Pa{oh9n*NciwYjfkpndTKOsRgar=DE6=c6wgYT#fz2Di)Nd((;I(yGkopE~%@n zNuA1{M_LN3vOk0o-6ToZ3&caOJmW$B!O8y6_d*|n9`M9NEWdadJ-WaIK|k&x1XS!4%&&gCT%{1eBK!1ExNc*=3Jn_&Q@lbd!Cw#aI&*g;sh9rgOa-#ji zzbAFU-LzeCX911Z9{xye_m(K6@LW!==Z#j^M*c#I-$&^QdE2Lfl743`JeL!2iwE%h zLKu2~bVV24qd2c@Zp!o4#%ezIM^~0NM*iw)G^~MDc>N!J&t&Lmb@HCcoObfOGbN{; z$cgOUnUdR1q#@@{nOt`E_C1p!?IDKZJ0`RM)n2-Hf`k}y?BsjTWG*{--U$+7rp;+j zo_B)ew3F|hAZ9~Od%9pHA;+umT#nh%827?+IdDQqs#17Y-0R3I8~G=I=65UJ*Pg!E zC$G3&zzALOnSdfApSz9CL+wX7GH^3;;kg{YW8^E(nm6=*?XFt$?voK8y`*#3VxivY z} zxyHh$+c>z9kRZ+o*~cY zIV#y6{5rKKUzAjl5u~nItLA(z=U^G}(H8=j!6WWMXFGfLoCo!q?L;@oxiaN!Po7t% z+;$=j<=vir?YW%DUU_#V33rejucmyz{m5k}&nr`inKnCqn)19d<+PLUmC0<#X-{*` zc$V9oqWPgo`Wf5ThAKcnMlvnxk&y_+E@MpG?i=wo!n5KxJ4l^8uCWWAUnyF#QHb%P zzNOW_4k+qVCq%LhI7)9CI!B0Zgg1CmVO{#Z5dD>%qMfen=}kiPBOG?T_z37E2!|aH zZf(6sh{LX}Z*8LYmA^Z&t$ujl*!#d~EWP+ByiV1(wrKhm;Riv#)~{c3BkbH;-&#jc z5qa!bC*bucv>#$&^CVzn81L2--6>}M zPfiCmmhoOsqW#@jf8~e3#xZ_K40xRJHJ1WAj`8AyQTAs$zeFDq95NM;MA4J+9X~;R zg2L%MZs+vl7N9;+;ncRiY=7B0)F(0C6YObqW4vSyu*r-U--dE3<8|FpKVIQP0&Hj6 z>%&l2&$tfm20O2@{<Nbo^QKhsq?Litl>JL(1*cWVn+QT$1QwSAebq3?b`qMYu3E*TxVGeyPD&h8Q z*aBdxgvF5UD3`GPXJ?>(io|1gr(maw^~KG=rb%3s(EFUg_!Z>m>5Lcu5@jF8Z+Zyz zGKIf^lE-oS1hSu2_^Bw>I6m=X)JcZa>mnS~IBr;l`bZpYyyvT^R}v~jd@>IG>#-BReCZsvP=9ySS4+NfP+`4}dDi{0%5wY> z{q%+3hTwD-4)yX?k#mAIb|+%X<~?z@U5uBE~POv?i{!2 z%I=@S}(!7inB;Bdu1>8q)YG$)bPBhD57q))s7!1p99 z7Tyj!%s=V-sO{gExHVw8!#`yo`~}z#SpVd=P%{6N{RTP$<3#Bv@U7yXv_)wvqp79UVY3z}1*@gr2Px?Np z)3pcb;bQoW`6vDT_W?Xcs1Uc(STp~mH(!N1;*3%S^_Tf4eLRgj%?G4MhCBRI_U;M* zPe@qIdmbh8Pr9`?>Q5@1`e?`Jf1{2#pi~*dLCvoxo+fjdpP$6!kF=GBnZ=|+AODOo6=AXUJiA#tMu^|`>XT9X&;>3 z9-JnK7m#+4KJ!L)Gq_j0OepM7yV%bA$qedr4$>cx6>nr;qjpjpAie#X!yDN}#{i&M zNBR?DPw__fangkzrN8!v9p;VfSIPnWM#9#gKjrX7_QG0VuS;A!eIZKbjqGW6p#EEl zTRjnziZ`-b$v?!cWE$h8)-Bl$7$fn9#KkU*yW)-P5AQ*JyTq-3APyC8WEasm{$Aoj zjvezx_K}{z-emk-vd6rU9dRb=Z!x}$<~`4^Y#r5iFur9pN;Qu4UqPK5iL{HxQ;lQx zQq||1E_P$Q6mMjwUxE5x6h026>eoUVlXoR<4H$w_&99M|JK{Zw zi`^8@s$bW2NByr7w+^LqnK!b}QG0eVKC}TP^G0^~0@Qa)Ty&@LvUwxH7>=>UYcPMS z)aNW07w4kAu_m?N@ZgDJoMrQdi(5nC&sd#WZ@9RK&w;+|m({+p7wUgQhHC2{;D!fj zePwmTC?@F|0Dn$tvU$U5&#VISzQkiM{LAJIt9{2~z;HdI^eCU5n$ir;{PobOiqAGe^6c2nA#!kf$WhSgCy2*AGyg+9fwkX^@L--B*QAqvw*4n&bbu4-s zc#QEe3sIN6VYR<|KI%n`XK%E5!)o6S8&+K6Vj=j1dBbYov=KOuvGp;=mwChL5YvEn zV>>%jHg8z%_hNoo6gNmeISL24-mu!AN6cFk(-@KyXx!!J9jl`!-plGCaj|$UO352m z`-Z!L6L%oR-^M}mhSmO4jHyMjg%qbaQsa0f#>%33h?Gd-pvLitF9YvGDDdZS;BoAj zh_+ZX21qY&!a?!|{D4@sXuX1BQSos z_2vrT0~s%-xv%X1Ydr8nByN4}M<^w4SnV$i0*;Jijiq)<-muzV!8OXlyrMMlO&o0A z=q4dL#NLHp9p3QZ{a%I8<_#AY+m_)hn>SoMRx$_rHgCANc;y=CGats!ItA@PtRNLV zvexDe5g+^l@IxgYoBE>78=~lM-vCZr0R5jMmelto@d=LrKTP7*-+zZXuQ%c?pFw?? z#AEb5fLd?FkKGJ>IO8*32hQJ<#2+X7DT#~f%TY3)$9vGV_;AJ(FQb(4CgMN)D)14E zZ>vBl$3?`)tpk39!ihuVd>8SNR{;lqA;r4gg*tyuiQhFJ^^p>{4u1(HuQ%c^>;!(4 z#KpFYQ7StRq<|ylkYd-hqb_+v6n#kXJc{w_8{s5g55$Y613!lG8^3PzhKOJBP2k5e z-s>6EdA$+87@TJjC&K=%--4Y=`FT11{6gR~A5aXKjH9x@;T-^DB_8`R#$By9;v*4b z);Pu=x*v8*q@AL_-UIwN#*4p=l0T=!OUXWB8Y%YE4K{D!qxlKICrI2Xy9_0-H{zqV z00&o6+O`GMp+R`Ms} z3@O(C2RKUJ5b;}{0{&^nXKhDa@`fmS=R2sQtw^!nuj0t-jd;IHfuAUGYwY(>O5PCh zVVLVysl=v;!~|R;f3~@VmfioPbwka8%>+E@IXKXG#1*9C^Mc&b%3T zIpYspjk@BEj}XHa@eb^K_9GmbHxi$LuPlmt;EO39m7PtPqt-mezq1Z?=8eR9_{6GY zd~@94jl_vtfuAn%qHbt|`ka!u_m9Bmv;KoiQD@#r9Fj$yu1|R1?yDT$NDSKs{0zny zlV25Y{QEB8XG**%gZA3I@hkYmI*avxg!!jy{ZzRT(-xjid#af3q z5`&)sPW+4ZJk*LK^G2c?V`430d@M63V$eU%ID&*GgQ>!*xfD z!0#_jC_VFf0Adfn6Y=js-C388MYrS7ruf8zk9Y>S%_kl_PW`p{#EXvs-d%lu@!$!< zxxXd9c?|8m0I!k8U>p^nl)MAZvsOqr_N5IDpCrfk1YRfcqOWcQpX`+VO>TM(c)i3$ z_Zg@&pCpfhj@7{U%xh?Ju>O>nfj2TD6(;N&Ny1kD#7uVnQDz=;=-5){82 zhsnjy0&kYENYFU*cqNz6JZe!m*<&6^-gYZ+nh!`lz&DCdO5STjeWip&;&PPCC&?#% z1sw58DX|3yWoPJI;J7wWsyqvI=945{tF2WMj@@w=#**iIN%jihmoWb9`>>__@XSrX zS4&)spMyH{Nis1WbzD1tZK5=42oB6A$+hr-)kdf&I(mx3C&|h80RMu-#VC4z=9Asrr>h>{;s>pGXDIuVlXt;5RZp`%#ptU&Z$Ur*_^1pH>wxwin.cfg -!elif "$(BOR_VER)" == "4" - echo -Ff=512 >>wxwin.cfg - echo -dc >>wxwin.cfg -!endif - - -# -O was: -Oxt - diff --git a/src/makefile.dos b/src/makefile.dos deleted file mode 100644 index 4e5afd4ce7..0000000000 --- a/src/makefile.dos +++ /dev/null @@ -1,51 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for Windows 3.1 -# You can invoke the makefile in this directory, wx/src, or -# equally from wx/src/msw. This makefile was created to be -# consistent with other makefiles which were appearing this -# directory. - -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# DEBUG=1 argument to nmake to build DEBUG version (memory checking, tracing) -# -# Set WXDIR to the wxWindows directory if env. variable WXWIN not set. -# -WXDIR = $(WXWIN) -THISDIR = $(WXDIR)\src\msw -WXLIB = $(WXDIR)\lib -WXINC = $(WXDIR)\include\msw -WXBASESRC = $(WXDIR)\src\base -WXBASEINC = $(WXDIR)\include\base - -!ifndef FINAL -FINAL=0 -!endif - -!ifndef WXDEBUG -WXDEBUG=0 -!endif - -all: - cd $(WXDIR)\src\msw - nmake -f makefile.dos FINAL=$(FINAL) WXDEBUG=$(WXDEBUG) - cd $(THISDIR) - -clean: - cd $(WXDIR)\src\msw - nmake -f makefile.dos clean - cd $(THISDIR) - -cleanall: - cd $(WXDIR)\src\msw - nmake -f makefile.dos cleanall - cd $(THISDIR) diff --git a/src/makefile.vc b/src/makefile.vc deleted file mode 100644 index ca8985bf2e..0000000000 --- a/src/makefile.vc +++ /dev/null @@ -1,35 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for VC++ (32-bit) -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# dll builds a library (wxdll.lib) suitable for creating DLLs -# * Note that the dll target is experimental - see docs/dll.txt. -# -!include - -THISDIR=$(WXWIN)\src - -all: - cd msw - nmake -f makefile.vc - cd $(THISDIR) - -clean: - cd msw - nmake -f makefile.vc clean - cd $(THISDIR) - -cleanall: - cd msw - nmake -f makefile.vc cleanall - cd $(THISDIR) - diff --git a/src/makeg95.env b/src/makeg95.env deleted file mode 100644 index 8af9e36408..0000000000 --- a/src/makeg95.env +++ /dev/null @@ -1,170 +0,0 @@ -# makeg95.env -# Common makefile settings for wxWindows programs -# This file is included by all the other makefiles, thus changes -# made here take effect everywhere (except where overriden). -# -# An alternative to editing this file is to create a shell script -# to export specific variables, and call make with the -e switch -# to override makefile variables. See wx/install/install.txt. -# And you can override specific variables on the make command line, e.g. -# -# make -f makefile.unix WXDEBUG='' -# -# You may prefer to use the GNU configure script than raw makefiles - -# see contrib/wxshlib. -# - -########################## Compiler ################################## - -# C++ compiler -# For AIX/CSet++: use CC = xlC -# For IRIX: use CC = CC -# CC = gcc-2.6.2 -CC = gcc - -# C compiler for pure C programs -# Typical: CC=g++ , CCC=gcc -# CC=cl386 /Tp, CCC=cl386 -# -# (Used only for XView, file sb_scrol.c) -# -CCC = $(CC) - -# Compiler used for LEX generated C -CCLEX=gcc - -MAKE=make - -# LEX -LEX=flex # -t -L - -# YACC. yacc or bison -# YACC=yacc -YACC=bison - -# Settings for Cyginw/Mingw32 -RESCOMP=windres.exe -RCINPUTSWITCH=-i -RCOUTPUTSWITCH=-o -RCINCSWITCH=--include-dir -RCDEFSWITCH=--define - -RESFLAGS=$(RCINCSWITCH) $(WXDIR)/include $(RCDEFSWITCH) __WIN32__ $(RCDEFSWITCH) __WIN95__ $(RCDEFSWITCH) __GNUWIN32__ - -########################## Compiler flags ############################# - -# Miscellaneous compiler options -OPTIONS= -D__EGCS__ -DSTRICT # -D__MINGW32__ - -# Debugging information -# AIX: comment out. -# IRIX: -g3 -DEBUGFLAGS = -ggdb -D__WXDEBUG__ - -WIN95=1 - -ifeq ($(WIN95),0) -# With 3.50, Win95 will use your existing icons to show smaller ones. -# With 4.0, you'll have to follow Win95 procedures for icons or you'll get the -# default Windows icon. -APPVER=3.50 -WINVERSION=-DWINVER=0x0350 -D__GNUWIN32__ -D__WIN32__ # Generic WIN32 -else -APPVER=3.50 # 4.0 -# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0). -WINVERSION=-DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -endif - -CPU=i386 - -# Suffixes -OBJSUFF=o -SRCSUFF=cpp -LIBPREFIX=lib -LIBSUFF=a -EXESUFF=.exe -RESSUFF=res -RSCSUFF=rsc - -# Warnings -WARN = -Wall - -# Which GUI, -Dwx_xview or -Dwx_motif (don't change this) -GUI = -D__WXMSW__ -D__WINDOWS__ - -# Optimization -# OPT = -O - -# according to Guillermo Rodriguez Garcia this flag is needed -# to make the standard div() functio work - otherwise it returns absolutely -# incorrect results and completely breaks the wxImage class (where it's used -# extensively) -OPT = -fno-pcc-struct-return - -# Options for ar archiver -# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4). -AROPTIONS = ruv -RANLIB = ranlib - -# Compiler libraries: defaults to GCC libraries -#COMPLIBS=-lg++ -#for win95 -#COMPLIBS=-lgcc - -# Compiler or system-specific include paths -COMPPATHS= - -########################## Directories ############################### - - -WINLIBS=-lstdc++ -lgcc \ - -lwinspool -lwinmm -lshell32 \ - -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 # -loldnames - -# Shouldn't need to change these... -WXSRC=$(WXDIR)/src/msw -WXINC=$(WXDIR)/include -WXBASESRC=$(WXDIR)/src/common -WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx.$(LIBSUFF) -INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/jpeg -I$(WXDIR)/include/wx/msw/gnuwin32 -I$(WXDIR)/src/zlib $(EXTRAINC) $(COMPPATHS) -RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED -I$(WXWIN)\include" - -#LIBS = -lctl3d32 $(WXLIB) $(WINLIBS) $(COMPLIBS) -LIBS = $(WXLIB) $(WINLIBS) $(COMPLIBS) $(EXTRALIBS) - -WINFLAGS=-D_X86_=1 -DWIN32 -D_WIN32 $(WINVERSION) - -#for windows 95 -XINCLUDE=$(WINFLAGS) -XLIB=$(LIBS) -LDLIBS = $(LIBS) - -# Directory for object files (don't change) -# OBJDIR = objects$(GUISUFFIX) - -# You shouldn't need to change these... -CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACPPFLAGS) -CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) $(EXTRACFLAGS) -WINDOWSLDFLAGS=-Wl,--subsystem,windows -mwindows -LDFLAGS = $(WINDOWSLDFLAGS) -L$(WXDIR)/lib $(EXTRALDFLAGS) - -.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .c - -# Set these in a batch file instead e.g. install/cygnus.bat -# RCINCLUDE="$(WXDIR)/include/msw;$(WXDIR)/contrib/fafa;$(WXDIR)/contrib/itsybits"; \ -# CPLUS_INCLUDE_PATH=/usr/H-i386-cygwin32/i386-cygwin32/include:/usr/H-i386-cygwin32/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-961023/include:$(WXDIR)/include/common:$(WXDIR)/include/msw:$(WXDIR)/contrib/fafa:$(WXDIR)/contrib/itsybits; \ -# export CPLUS_INCLUDE_PATH RCINCLUDE; \ - -#.rc.$(RESSUFF): $< $(WXDIR)/include/msw/wx.rc -# $(RC) $(RESFLAGS1) $< $(RESFLAGS2) $*.$(RESSUFF) $(RCLFLAGS) - -#.$(RESSUFF).$(RSCSUFF): $< -# $(CVTRES) $< $*.$(RSCSUFF) - -.$(SRCSUFF).$(OBJSUFF): - $(CC) -c $(CPPFLAGS) -o $@ $*.$(SRCSUFF) - -.c.o: - $(CC) -c $(CPPFLAGS) -o $@ $*.c - - diff --git a/src/makelib.b32 b/src/makelib.b32 deleted file mode 100644 index 75b13ead1b..0000000000 --- a/src/makelib.b32 +++ /dev/null @@ -1,33 +0,0 @@ -# -# File: makelib.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Include file for libraries. Set LIBTARGET and OBJECTS -# before including this file. - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makeb32.env - -lib: $(LIBTARGET) - -$(LIBTARGET): $(OBJECTS) - -erase $(LIBTARGET) - tlib $(LIBTARGET) /P512 @&&! -+$(OBJECTS:.obj =.obj +) -! - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws - -erase $(LIBTARGET) - - diff --git a/src/makelib.bcc b/src/makelib.bcc deleted file mode 100644 index 73705fb5be..0000000000 --- a/src/makelib.bcc +++ /dev/null @@ -1,37 +0,0 @@ -# -# File: makelib.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Include file for libraries. Set LIBTARGET and OBJECTS -# before including this file. - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makebcc.env - -$(LIBTARGET): $(OBJECTS) - erase $(LIBTARGET) - tlib $(LIBTARGET) /P1024 @&&! --+$(OBJECTS:.obj =.obj -+) -! - -.$(SRCSUFF).obj: - bcc $(CPPFLAGS) -c {$< } - -.c.obj: - bcc $(CPPFLAGS) -P- -c {$< } - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws - -erase $(LIBTARGET) - - diff --git a/src/makelib.env b/src/makelib.env deleted file mode 100644 index 9b320bcd8b..0000000000 --- a/src/makelib.env +++ /dev/null @@ -1,14 +0,0 @@ -# Makes a library in Unix (Motif) - -# Replace this with your own path if necessary -WXDIR = $(WXWIN) -include $(WXDIR)/src/make.env - -all: $(LIBTARGET)$(GUISUFFIX).a - -$(LIBTARGET)$(GUISUFFIX).a : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(LIBTARGET)$(GUISUFFIX).a core diff --git a/src/makelib.g95 b/src/makelib.g95 deleted file mode 100644 index de3e8c583c..0000000000 --- a/src/makelib.g95 +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: makelib.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Include file for Cygwin/Mingw32 libraries - -WXDIR = $(WXWIN) - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/makeg95.env - -all: $(LIBTARGET) $(EXTRATARGETS) - -$(LIBTARGET): $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(LIBTARGET) core *.rsc *.res diff --git a/src/makelib.vc b/src/makelib.vc deleted file mode 100644 index 8b5b459d80..0000000000 --- a/src/makelib.vc +++ /dev/null @@ -1,42 +0,0 @@ -# -# File: makelib.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds a library for a utility -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makevc.env - -all: $(LIBTARGET) - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc FINAL=$(FINAL) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.vc clean - -$(LIBTARGET): $(OBJECTS) - -erase $(LIBTARGET) - $(implib) @<< --out:$(LIBTARGET) --machine:$(CPU) -$(OBJECTS) -<< - -clean: - -erase $(LIBTARGET) - -erase $(OBJECTS) - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb diff --git a/src/makelib.wat b/src/makelib.wat deleted file mode 100644 index 74cc16dc7b..0000000000 --- a/src/makelib.wat +++ /dev/null @@ -1,26 +0,0 @@ -WXDIR = $(%WXWIN) - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib -LNK = tmp.lbc - -all: $(LIBTARGET) - -$(LIBTARGET) : $(OBJECTS) - %create tmp.lbc - @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i - wlib /b /c /n /p=512 $^@ @tmp.lbc - -clean: .SYMBOLIC - -erase *.obj - -erase *.bak - -erase *.err - -erase *.pch - -erase *.lib - -erase *.lbc - -erase *.res - -erase *.exe - -erase *.lbc - -erase $(LIBTARGET) - diff --git a/src/makemsc.env b/src/makemsc.env deleted file mode 100644 index f21ae55fec..0000000000 --- a/src/makemsc.env +++ /dev/null @@ -1,71 +0,0 @@ -# -# File: makemsc.env -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Include file for MS VC++ makefiles -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# DLL=1 builds a library (wxdll.lib) suitable for creating DLLs. -# -# Set WXDIR to the wxWindows directory if env. variable WXWIN not set. -# From your specific makefile, set EXTRAFLAGS to add flags to CPPFLAGS, -# such as extra include directories or defines. - -WXDIR = $(WXWIN) -WXINC = $(WXDIR)\include - -WXLIB=$(WXDIR)\lib\wx1.lib $(WXDIR)\lib\wx2.lib $(WXDIR)\lib\wx3.lib - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -INC=/I$(WXDIR)\include - -# Set this to nothing if using MS C++ 7 -ZOPTION=/Z7 - -!ifndef FINAL -FINAL=0 -!endif - -!ifndef DLL -DLL=0 -!endif - -OPTIONS= - -!if "$(FINAL)" == "0" -OPT = /Od /Gy -DEBUG_FLAGS= /Zi $(ZOPTION) -LINK_DEBUG_FLAGS=/CO -!else -OPT = /Od /Gy # Note: /Ox or /Os crash the compiler or samples -DEBUG_FLAGS= -LINK_DEBUG_FLAGS= -!endif - -LIBS=$(WXLIB) $(EXTRALIBS) oldnames libw llibcew commdlg ddeml shell mmsystem ole2 $(WXDIR)\src\msw\ctl3d\msvc\ctl3dv2.lib - -!if "$(DLL)" == "0" -PCH=WX.PCH -PRECOMP=/YuWX/WXPREC.H /Fp$(WXDIR)\src\msw\$(PCH) -CPPFLAGS= $(DEBUG_FLAGS) $(OPTIONS) $(INC) $(EXTRAFLAGS) /DWXDEBUG=1 /D__WXDEBUG__ /AL /Gt4 /Gx- /W4 /G2sw $(OPT) /D__WXMSW__ /D__WINDOWS__ $(PRECOMP) -CPPFLAGS2= $(DEBUG_FLAGS) $(OPTIONS) $(INC) $(EXTRAFLAGS) /DWXDEBUG=1 /D__WXDEBUG__ /AL /Gt4 /Gx- /W4 /G2sw $(OPT) /D__WXMSW__ /D__WINDOWS__ -LINKFLAGS=$(LINK_DEBUG_FLAGS) /NOD /SEG:512 /ONERROR:NOEXE -DUMMY=dummy -!else -PCH=WX.PCH -PRECOMP=/YuWX/WXPREC.H /Fp$(WXDIR)\src\msw\$(PCH) -CPPFLAGS= $(DEBUG_FLAGS) $(OPTIONS) $(INC) $(EXTRAFLAGS) /AL /Gt4 /Gx- /W4 /G2s /GD $(OPT) /D__WXMSW__ /D__WINDOWS__$(PRECOMP) -CPPFLAGS2= $(DEBUG_FLAGS) $(OPTIONS) $(INC) $(EXTRAFLAGS) /AL /Gt4 /Gx- /W4 /G2s /GD $(OPT) /D__WXMSW__ /D__WINDOWS__ -LINKFLAGS=$(LINK_DEBUG_FLAGS) /NOD /SEG:512 /ONERROR:NOEXE -DUMMY=dummydll -!endif - diff --git a/src/makeprog.b32 b/src/makeprog.b32 deleted file mode 100644 index 5f879ff864..0000000000 --- a/src/makeprog.b32 +++ /dev/null @@ -1,57 +0,0 @@ -# -# File: makeprog.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Include file for samples and utilities. Set TARGET and OBJECTS -# before including this file. - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makeb32.env - -LIBS=$(WXLIB) $(EXTRALIBS) cw32mt import32 ole2w32 winpng zlib jpeg - -!if "$(FINAL)" == "0" -LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib $(EXTRALINKFLAGS) -OPT = -Od -DEBUG_FLAGS= -v -!else -LINKFLAGS=/Tpe /L$(WXLIBDIR);$(BCCDIR)\lib $(EXTRALINKFLAGS) -OPT = -Od -DEBUG_FLAGS = -!endif - -CPPFLAGS=$(DEBUG_FLAGS) $(EXTRACPPFLAGS) $(OPT) @$(CFG) - -all: $(TARGET).exe $(EXTRATARGETS) - -$(TARGET).exe: $(OBJECTS) $(TARGET).res - tlink32 $(LINKFLAGS) @&&! -c0w32.obj $(OBJECTS) -$(TARGET) -nul -$(LIBS) - -$(TARGET).res -! - -.$(SRCSUFF).obj: - bcc32 $(CPPFLAGS) -c {$< } - -.c.obj: - bcc32 $(CPPFLAGS) -P- -c {$< } - -$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - brc32 -r /i$(BCCDIR)\include /i$(WXDIR)\include $(TARGET) - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws - diff --git a/src/makeprog.bcc b/src/makeprog.bcc deleted file mode 100644 index e5e43c5b17..0000000000 --- a/src/makeprog.bcc +++ /dev/null @@ -1,35 +0,0 @@ -# makeprog.bcc -# Incude file for samples - -!include $(WXDIR)\src\makebcc.env - -WXLIB = $(WXDIR)\lib\wx.lib -LIBS=$(WXLIB) $(EXTRALIBS) mathwl cwl import ole2w16 winpng zlib - -all: $(TARGET).exe $(EXTRATARGETS) - -$(TARGET).exe: $(WXLIB) $(OBJECTS) $(TARGET).def $(TARGET).res - tlink $(LINKFLAGS) @&&! -c0wl.obj $(OBJECTS) -$(TARGET) -nul -$(LIBS) -$(TARGET).def -! - brc -K $(TARGET).res - -.$(SRCSUFF).obj: - bcc $(CPPFLAGS) -c {$< } - -.c.obj: - bcc $(CPPFLAGS) -P- -c {$< } - -$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - brc -r /i$(BCCDIR)\include /i$(WXDIR)\include $(TARGET) - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws diff --git a/src/makeprog.env b/src/makeprog.env deleted file mode 100644 index d0d653795e..0000000000 --- a/src/makeprog.env +++ /dev/null @@ -1,13 +0,0 @@ -# Make environment for making samples on Unix -# Replace this with your own path if necessary -WXDIR = $(WXWIN) -#WXDIR = /home/jacs/wx2 -include $(WXDIR)/src/make.env - -all: $(PROGRAM)$(GUISUFFIX) $(EXTRATARGETS) - -$(PROGRAM)$(GUISUFFIX): $(OBJECTS) $(WXLIB) - $(CC) $(LDFLAGS) -o $(PROGRAM)$(GUISUFFIX) $(OBJECTS) $(LDLIBS) - -clean: - rm -f $(OBJECTS) $(PROGRAM)$(GUISUFFIX) core diff --git a/src/makeprog.g95 b/src/makeprog.g95 deleted file mode 100644 index 391881439c..0000000000 --- a/src/makeprog.g95 +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: makeprog.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Include file for Cygwin/Mingw32 samples - -WXDIR = $(WXWIN) - -include $(WXDIR)/src/makeg95.env - -all: $(TARGET)$(GUISUFFIX)$(EXESUFF) $(TARGET)_resources.$(OBJSUFF) $(EXTRATARGETS) - -$(TARGET)$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(TARGET)_resources.$(OBJSUFF) $(WXLIB) - $(CC) $(LDFLAGS) -o $(TARGET)$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(TARGET)_resources.$(OBJSUFF) $(LDLIBS) - -$(TARGET)_resources.o: $(TARGET).rc - $(RESCOMP) $(RCINPUTSWITCH) $(TARGET).rc $(RCOUTPUTSWITCH) $(TARGET)_resources.o $(RESFLAGS) - -clean: - rm -f $(OBJECTS) $(TARGET)_resources.o $(TARGET).exe core *.rsc *.res diff --git a/src/makeprog.msc b/src/makeprog.msc deleted file mode 100644 index 298f229981..0000000000 --- a/src/makeprog.msc +++ /dev/null @@ -1,58 +0,0 @@ -# -# File: makeprog.msc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# "%W% %G%" -# -# Include file for 16-bit samples -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makemsc.env - -!ifndef FINAL -FINAL=0 -!endif - -.cpp.obj: - cl @<< -$(CPPFLAGS) /c /Tp $*.cpp -<< - -all: $(TARGET).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.dos FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.dos clean - cd $(THISDIR) - -$(TARGET).exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) $(OBJECTS) $(TARGET).def $(TARGET).res - link $(LINKFLAGS) /NOE @<< -$(OBJECTS) $(WXDIR)\src\msw\dummy.obj, -$(TARGET), -NUL, -$(LIBS), -$(TARGET).def -; -<< - rc -K $(TARGET).res - -$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - rc -r /i$(WXDIR)\include $(TARGET) - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb diff --git a/src/makeprog.sl b/src/makeprog.sl deleted file mode 100644 index 2f3532e736..0000000000 --- a/src/makeprog.sl +++ /dev/null @@ -1,28 +0,0 @@ -# -# File: makeprog.sl -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Include file for wxWindows samples, Salford C++/WIN32 - -include ..\..\src\makesl.env - -TARGET = $(PROGRAM).exe - -ALLOBJECTS = $(OBJECTS) $(PROGRAM)_resources.obj - -$(TARGET) : $(ALLOBJECTS) - echo slink $(ALLOBJECTS) $(WXDIR)\src\msw\main.obj $(WXLIB)\wx.lib -subsystem:windows -file:$(TARGET) - slink $(ALLOBJECTS) $(WXDIR)\src\msw\main.obj $(WXLIB)\wx.lib -subsystem:windows -file:$(TARGET) - -$(PROGRAM)_resources.obj: $(PROGRAM).rc - src /ERROR_NUMBERS /DELETE_OBJ_ON_ERROR /DEFINE __SALFORDC__ /DEFINE __WXMSW__ /DEFINE __WIN32__ /DEFINE __WIN95__ /DEFINE WXINCDIR=$(RESOURCEDIR) /INCLUDE $(WXDIR)\include /INCLUDE $(WXDIR)\include\wx\msw $(PROGRAM).rc /BINARY $(PROGRAM)_resources.obj - -clean: - -erase *.obj - -erase $(TARGET) - -erase *.res - -cleanall: clean - - diff --git a/src/makeprog.vc b/src/makeprog.vc deleted file mode 100644 index b3eb9138b2..0000000000 --- a/src/makeprog.vc +++ /dev/null @@ -1,49 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile environment for building samples. Include this from -# your own makefile. -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -WXUSINGDLL=0 - -!include $(WXDIR)\src\makevc.env - -all: $(PROGRAM).exe $(EXTRATARGETS) - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc FINAL=$(FINAL) -# cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.vc clean -# cd $(THISDIR) - -$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROGRAM).res - $(link) @<< --out:$(PROGRAM).exe -$(LINKFLAGS) -$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res -$(LIBS) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - -clean: - -erase $(OBJECTS) - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb diff --git a/src/makeprog.wat b/src/makeprog.wat deleted file mode 100644 index 431ecc5d3f..0000000000 --- a/src/makeprog.wat +++ /dev/null @@ -1,39 +0,0 @@ -WXDIR = $(%WXWIN) - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib -LNK = $(PROGRAM).lnk - -all: $(PROGRAM).exe $(EXTRATARGETS) - -$(PROGRAM).exe : $(OBJECTS) $(PROGRAM).res $(LNK) $(WXLIB)\wx.lib - wlink @$(LNK) - $(BINDCOMMAND) $(PROGRAM).res - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(RC) $(RESFLAGS1) $(PROGRAM).rc - -$(LNK) : makefile.wat - %create $(LNK) - @%append $(LNK) debug all - @%append $(LNK) system $(LINKOPTION) - @%append $(LNK) $(STACK) - @%append $(LNK) name $(PROGRAM).exe - @for %i in ($(LIBS)) do @%append $(LNK) file %i - @for %i in ($(EXTRALIBS)) do @%append $(LNK) file %i - @for %i in ($(OBJECTS)) do @%append $(LNK) file %i -# @%append $(LNK) $(MINDATA) -# @%append $(LNK) $(MAXDATA) - -clean: .SYMBOLIC - -erase *.obj - -erase *.bak - -erase *.err - -erase *.pch - -erase *.lib - -erase $(LNK) - -erase *.res - -erase *.exe - -erase *.lbc - diff --git a/src/makesc.env b/src/makesc.env deleted file mode 100644 index 064e1cbf02..0000000000 --- a/src/makesc.env +++ /dev/null @@ -1,41 +0,0 @@ -# Common settings for Symantec - -WXDIR = $(WXWIN) -INCDIR = $(WXDIR)\include -LIBDIR = $(WXDIR)\lib -WXLIB = $(LIBDIR)\wx.lib - -SRCSUFF = cpp -OBJSUFF = obj - -INCLUDE=$(INCDIR) - -# default values - -CC=sc -RC=rc - -# WIN16 settings -#CFLAGS = -Jm -ml -W -D__WXMSW__ -D__SC__ -D__WXDEBUG__ -D__WINDOWS__ -D__WIN16__ $(EXTRACPPFLAGS) -#LINKER = link -#LDFLAGS = -ml -W -L$(LINKER).exe $(EXTRALDFLAGS) -#LIBS=$(WXLIB) $(EXTRALIBS) libw.lib commdlg.lib ddeml.lib shell.lib # $(LIB)\ctl3dv2.lib -#DEFFILE=sc16.def - -# WIN32 settings -CFLAGS = -o -mn -W -D__NT__ -DWIN32 -D__WIN32__ -D__WINDOWS__ -D__WXMSW__ -D__SC__ -D__WXDEBUG__ $(EXTRACPPFLAGS) -LINKER = link386 -LDFLAGS = -L$(LINKER).exe $(EXTRALDFLAGS) -LIBS=$(WXLIB) $(EXTRALIBS) ctl3d32.lib shell32.lib comdlg32.lib user32.lib gdi32.lib kernel32.lib winmm.lib -DEFFILE=sc32.def - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $(OPTIONS) $< -o$@ - -# -Jm: relaxed type checking -.c.obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $(OPTIONS) -DUSE_DEFINE -Jm $< -o$@ - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - diff --git a/src/makesl.env b/src/makesl.env deleted file mode 100644 index e97c61c655..0000000000 --- a/src/makesl.env +++ /dev/null @@ -1,53 +0,0 @@ -# File: makesl.env -# Purpose: Salford C++ environment for wxWindows makefiles. -# Author: Julian Smart -# -# The main things to change are: -# -# SALFORDDIR: set to where the wxWindows is installed -# RESOURCEDIR: set to Unix form of include path, for wx.rc processing. -# (necessary for some reason as the resource compiler can't -# resolve paths otherwise). - -SALFORDDIR=i:\salfordc -RESOURCEDIR="/wx2/wxWind~1/include/" - -FINAL=0 -.SUFFIXES: -.SUFFIXES: .exe .obj .c .cc .cpp .res .rc .def .lib - -WXDIR = $(WXWIN) -WXINC = $(WXDIR)\include -WXLIB = $(WXDIR)\lib - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -DEBUGFLAGS = /DEFINE __WXDEBUG__ /DEBUG - -RC = src - -CCC = scc -CC = scc -STACK = - -# EXTRALIBS = $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\png.lib $(WXDIR)\lib\xpm.lib & -# $(WATLIBDIR)\odbc32.lib $(WATLIBDIR)\comctl32.lib $(WATLIBDIR)\comdlg32.lib & -# $(WATLIBDIR)\ole32.lib $(WATLIBDIR)\oleaut32.lib $(WATLIBDIR)\uuid.lib - -IFLAGS = /INCLUDE $(WXINC) /INCLUDE $(SALFORDDIR)\include /INCLUDE $(SALFORDDIR)\include\win32 - -#RESFLAGS1 = -r -bt=nt /i$(WXDIR)\include -#RESFLAGS2 = -R $(name) /i$(WXDIR)\include - -OPTFLAGS= - -CPPFLAGS = /WINDOWS /ERROR_NUMBERS /DELETE_OBJ_ON_ERROR /DEFINE WIN32 /DEFINE __WIN32__ /DEFINE __WIN95__ /DEFINE __WINDOWS__ /DEFINE __WXMSW__ /DEFINE __SALFORDC__ $(OPTFLAGS) $(DEBUGFLAGS) $(EXTRACPPFLAGS) - -.cpp.obj: - $(CCC) $(CPPFLAGS) $(IFLAGS) $< - -.c.obj: - $(CC) $(CPPFLAGS) $(IFLAGS) $< - diff --git a/src/maketwin.env b/src/maketwin.env deleted file mode 100644 index 54af0962d2..0000000000 --- a/src/maketwin.env +++ /dev/null @@ -1,160 +0,0 @@ -# makeg95.env -# Common makefile settings for wxWindows programs -# This file is included by all the other makefiles, thus changes -# made here take effect everywhere (except where overriden). -# -# An alternative to editing this file is to create a shell script -# to export specific variables, and call make with the -e switch -# to override makefile variables. See wx/install/install.txt. -# And you can override specific variables on the make command line, e.g. -# -# make -f makefile.unix WXDEBUG='' -# -# You may prefer to use the GNU configure script than raw makefiles - -# see contrib/wxshlib. -# - -########################## Compiler ################################## - -# C++ compiler -# For AIX/CSet++: use CC = xlC -# For IRIX: use CC = CC -# CC = gcc-2.6.2 -CC = gcc - -# C compiler for pure C programs -# Typical: CC=g++ , CCC=gcc -# CC=cl386 /Tp, CCC=cl386 -# -# (Used only for XView, file sb_scrol.c) -# -CCC = $(CC) - -# Compiler used for LEX generated C -CCLEX=gcc - -MAKE=make - -# LEX -LEX=flex -t -L - -# YACC. yacc or bison -YACC=yacc - -# Settings for TWIN32 -RESCOMP=rc -RCINPUTSWITCH= -RCOUTPUTSWITCH=-o -RCINCSWITCH=-I -RCDEFSWITCH=-D - -RESFLAGS=$(RCINCSWITCH) $(WXDIR)/include $(RCDEFSWITCH) __WIN32__ $(RCDEFSWITCH) __WIN95__ $(RCDEFSWITCH) __GNUWIN32__ - -########################## Compiler flags ############################# - -# Miscellaneous compiler options -OPTIONS= # -D__MINGW32__ # -D__EGCS__ - -# Debugging information -# AIX: comment out. -# IRIX: -g3 -DEBUGFLAGS = -ggdb -D__WXDEBUG__ - -WIN95=1 - -ifeq ($(WIN95),0) -# With 3.50, Win95 will use your existing icons to show smaller ones. -# With 4.0, you'll have to follow Win95 procedures for icons or you'll get the -# default Windows icon. -APPVER=3.50 -WINVERSION=-DWINVER=0x0350 -D__GNUWIN32__ -D__WIN32__ # Generic WIN32 -else -APPVER=3.50 # 4.0 -# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0). -WINVERSION=-DWINVER=0x0400 -D__WIN95__ -D__GNUWIN32__ -D__WIN32__ -endif - -CPU=i386 - -# Suffixes -OBJSUFF=o -SRCSUFF=cpp -LIBPREFIX=lib -LIBSUFF=a -EXESUFF=.exe -RESSUFF=res -RSCSUFF=rsc - -# Warnings -WARN = -Wall - -# Which GUI, -Dwx_xview or -Dwx_motif (don't change this) -GUI = -D__WXMSW__ -D__WINDOWS__ - -# Optimization -# OPT = -O -OPT = - -# Options for ar archiver -# AROPTIONS = crs # For IRIX and Solaris (both SYSVR4). -AROPTIONS = ruv -RANLIB = ranlib - -# Compiler libraries: defaults to GCC libraries -#COMPLIBS=-lg++ -#for win95 -#COMPLIBS=-lgcc - -# Compiler or system-specific include paths -COMPPATHS=-I$(TWINDIR)/include - -########################## Directories ############################### - - -WINLIBS=-lstdc++ -lgcc -lm -ldl -ltwin32 -lcomctl32 -lcommdlg -lddeml -lmmsystem -lshell -lXpm -lX11 -lm - -# -lwinspool -lwinmm -lshell32 -loldnames \ -# -lcomctl32 -lctl3d32 -lodbc32 -ladvapi32 - -# Shouldn't need to change these... -WXSRC=$(WXDIR)/src/msw -WXINC=$(WXDIR)/include -WXBASESRC=$(WXDIR)/src/common -WXLIB=$(WXDIR)/lib/$(LIBPREFIX)wx.$(LIBSUFF) -INC = -I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/include/wx/msw/gnuwin32 -I$(WXDIR)/src/zlib $(EXTRAINC)$(COMPPATHS) -RCLFLAGS=-cpp "cpp -lang-c++ -DWIN32 -D_WIN32 -DRCL_INVOKED -I$(WXWIN)\include" - -#LIBS = -lctl3d32 $(WXLIB) $(WINLIBS) $(COMPLIBS) -LIBS = $(WXLIB) $(WINLIBS) $(COMPLIBS) - -WINFLAGS=-DX386 -DWIN32 -D_WIN32 $(WINVERSION) -DTWIN32 -D__TWIN32__ - -#for windows 95 -XINCLUDE=$(WINFLAGS) -XLIB=$(LIBS) -LDLIBS = $(LIBS) - -# Directory for object files (don't change) -OBJDIR = objects$(GUISUFFIX) - -# You shouldn't need to change these... -CPPFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) -CFLAGS = $(XINCLUDE) $(INC) $(OPTIONS) $(GUI) $(DEBUGFLAGS) $(WARN) $(OPT) -WINDOWSLDFLAGS= -LDFLAGS = $(WINDOWSLDFLAGS) -L$(WXDIR)/lib -L/usr/X11R6/lib -L$(TWINDIR)/win - -.SUFFIXES: .rc .$(RESSUFF) .$(RSCSUFF) .cpp .c - -.rc.$(RESSUFF): $< $(WXDIR)/include/msw/wx.rc - $(RC) $(RESFLAGS1) $< $(RESFLAGS2) $*.$(RESSUFF) $(RCLFLAGS) - -.$(RESSUFF).$(RSCSUFF): $< - $(CVTRES) $< $*.$(RSCSUFF) - -.$(SRCSUFF).$(OBJSUFF): - $(CC) -c $(CPPFLAGS) -o $@ $*.$(SRCSUFF) - -.c.o: - $(CC) -c $(CPPFLAGS) -o $@ $*.c - - diff --git a/src/makevc.env b/src/makevc.env deleted file mode 100644 index d73db5b206..0000000000 --- a/src/makevc.env +++ /dev/null @@ -1,206 +0,0 @@ -# -# File: ntwxwin.env -# Author: Ulrich Leodolter -# Created: Wed May 17 08:36:42 1995 -# Updated: -# -# MSVC++ 32-bit makefile include file -# -!include - -WIN95=1 - -!if "$(WIN95)" == "0" -# With 3.50, Win95 will use your existing icons to show smaller ones. -# With 4.0, you'll have to follow Win95 procedures for icons or you'll get the -# default Windows icon. -APPVER=3.50 -WINVERSION=-DWINVER=0x0350 # Generic WIN32 -!else -APPVER=3.50 # 4.0 -# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0). -WINVERSION=-DWINVER=0x0400 /D__WIN95__ -!endif - -# On Alpha machines, change to CPU=ALPHA -CPU=i386 - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -WAITFLAG=/w - -# If you set wxUSE_IOSTREAMH to 0, remove -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally -#WINFLAGS=-c -W3 -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 -DWIN32 -D__WIN32__ $(WINVERSION) -WINFLAGS=-c -W3 -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 -DWIN32 -D__WIN32__ $(WINVERSION) -#WINLINKFLAGS=/NODEFAULTLIB /INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER) -WINLINKFLAGS=/INCREMENTAL:NO /NOLOGO -machine:$(CPU) -subsystem:windows,$(APPVER) -#WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib libc.lib oldnames.lib\ -# comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib # libci.lib # libci.lib required for VC++ 4.2 -WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib\ - comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib # libci.lib # libci.lib required for VC++ 4.2 - -# Change this to your WXWIN directory -WXDIR=$(WXWIN) - -WXSRC=$(WXDIR)\src\msw -WXINC=$(WXDIR)\include -WXBASESRC=$(WXDIR)\src\common - -##################################################################### -# These are the possible DLL/non-DLL usages: -# -# Type _DLL/_WINDLL WXUSINGDLL WXMAKINGDLL Library -#-------------------------------------------------------------------- -# Normal application - - - wx.lib -# -# wxWin as DLL Defined - Defined wx200.lib -# -# App using wxWin DLL - Defined - wx200.lib -# -# App built as one DLL Defined - - wx.lib -# -###################################################################### -# -# Compiling your app: -#-------------------- -# when compiling an app to use the DLL version of wxWindows -# (but not to be a DLL itself), set WXUSINGDLL to 1 in your -# makefile just before including ntwxwin.mak. -# To compile wxWin _and_ app itself as a DLL, set DLL to 1 -# in ntwxwin.mak, and do not set WXUSINGDLL. -# -# Compiling wxWindows: -#--------------------- -# Use the dll target to compile wxWindows as DLL; then make 'pch' -# to generate a precompiled header for your apps to use. BUG: must compile without -# wxExpr (USE_WX_RESOURCES = 0) for this to link properly. Don't know why yet. -# Use the dllapp target to compile wxWindows for making a DLL app (not implemented yet) - -#DLL=0 - -!if "$(WXUSINGDLL)" == "1" -EXTRADLLFLAGS=/DWXUSINGDLL=1 -!endif - -!if "$(WXMAKINGDLL)" == "1" -EXTRADLLFLAGS=/DWXMAKINGDLL=1 -!endif - -!if "$(WXMAKINGDLL)" == "0" && "$(DLL)" == "1" -EXTRADLLFLAGS= -!endif - -!if "$(NOMAIN)" == "1" -EXTRADLLFLAGS=$(EXTRADLLFLAGS) /DNOMAIN -!endif - -!ifndef FINAL -FINAL=0 -DEBUG=1 -!endif - -!ifndef DLL -DLL=0 -!endif - -# Set this to 1 if you don't want to use precompiled headers -!ifndef NOPCH -NOPCH=0 -!endif - -# This sets 'D' to a suitable directory name -# for this kind of build, and WXLIBNAME to one of wx (static release), wx_d (static debug), -# wx200 (DLL release), wx200_d (DLL debug) - -!if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1" -WXLIBNAME=wx200 -!else -WXLIBNAME=wx -!endif - -!if "$(NEW_WXLIBNAME)" != "" -WXLIBNAME=$(NEW_WXLIBNAME) -!endif - -!if "$(FINAL)" == "1" -D=Release -!else -D=Debug -WXLIBNAME=$(WXLIBNAME)_d -!endif - -!if "$(WXMAKINGDLL)" == "1" || "$(WXUSINGDLL)" == "1" -D=$(D)DLL -!endif - -WXLIB=$(WXDIR)\lib\$(WXLIBNAME).lib - -INC=-I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/zlib -I$(WXDIR)/src/jpeg $(EXTRAINC) -LIBS = $(EXTRALIBS) $(WXLIB) $(WINLIBS) $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\jpeg.lib $(WXDIR)\lib\xpm.lib - -MAKEPRECOMP=/YcWX/WXPREC.H -OPTIONS= - -!if "$(FINAL)" == "0" -OPT = /Od /Gy -# ***N.B.*** to save space/time, comment out /FR to avoid browse info (.sbr files) being generated -DEBUG_FLAGS= /Zi /D__WXDEBUG__ # /DDEBUG=1 # /FR -LINK_DEBUG_FLAGS=-debug:full -debugtype:cv # /PDB:NONE -CRTFLAG=/MD -!else -# /O1 - smallest code -# /O2 - fastest code -OPT = /O1 # /O2 # /Od -DEBUG_FLAGS= -LINK_DEBUG_FLAGS=/RELEASE -CRTFLAG=/MD -!endif - -!if "$(DLL)" == "0" - -!if "$(NOPCH)" == "1" -PCH= -PRECOMP= -MAKEPRECOMP= -!else -PCH=$(WXLIBNAME).pch -PRECOMP=/YuWX/WXPREC.H /Fp$(WXDIR)\src\msw\$(PCH) /Fd$(WXDIR)\lib\$(WXLIBNAME).pdb -MAKEPRECOMP=/YcWX/WXPREC.H -!endif - -CPPFLAGS=$(WINFLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXMSW__ $(INC) $(OPT) $(EXTRADLLFLAGS) $(CRTFLAG) /D__WINDOWS__ /GX /DSTRICT $(OVERRIDEFLAGS) -# If you don't include wxprec.h, use CPPFLAGS2 -CPPFLAGS2=$(WINFLAGS) $(DEBUG_FLAGS) /D__WXMSW__ $(INC) $(EXTRAFLAGS) $(OPT) $(EXTRADLLFLAGS) $(CRTFLAG) /D__WINDOWS__ /GX /DSTRICT $(OVERRIDEFLAGS) -LINKFLAGS=$(LINK_DEBUG_FLAGS) $(WINLINKFLAGS) -entry:WinMainCRTStartup -DUMMY=dummy - -!else - -!if "$(WXMAKINGDLL)" == "1" -PCH=$(WXLIBNAME).pch -DUMMY=dummydll -!else -PCH=$(WXLIBNAME).pch -DUMMY=dummy -!endif - -PRECOMP=/YuWX/WXPREC.H /Fp$(WXDIR)\src\msw\$(PCH) /Fd$(WXDIR)\lib\$(WXLIBNAME).pdb -CPPFLAGS=$(WINFLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXMSW__ $(INC) $(OPT) /D_DLL $(CRTFLAG) $(EXTRADLLFLAGS) /D_WINDOWS /D__WINDOWS__ /D_WINDLL -CPPFLAGS2=$(WINFLAGS) $(DEBUG_FLAGS) /D__WXMSW__ $(INC) $(EXTRAFLAGS) $(OPT) /D_DLL $(CRTFLAG) $(EXTRADLLFLAGS) /D_WINDOWS /D__WINDOWS__ /D_WINDLL -LINKFLAGS=$(LINK_DEBUG_FLAGS) -machine:i386 -subsystem:windows,$(APPVER) -dll # -entry:_DllMainCRTStartup$(DLLENTRY) -!endif - -DUMMYOBJ=$(WXDIR)\src\msw\$D\$(DUMMY).obj - -.c.obj: - cl @<< -$(CPPFLAGS2) /Fo$@ /c $< -<< - -.cpp.obj: - cl @<< -$(CPPFLAGS2) /Fo$@ /c $< -<< - diff --git a/src/makewat.env b/src/makewat.env deleted file mode 100644 index 6435eb28b3..0000000000 --- a/src/makewat.env +++ /dev/null @@ -1,91 +0,0 @@ -# File: makewat.env -# Purpose: Watcom environments for wxWindows makefiles. -# Author: Julian Smart and others -# -# The main things to change are: -# -# WATCOM: set to where the compiler is installed -# WXDIR: set to where the wxWindows is installed -# MODE: set to windows [16 bit windows], nt [win32s], or win386 [32-bit non-WIN32] - -FINAL=0 -WATCOMDIR=$(%WATCOM) - -.EXTENSIONS: -.EXTENSIONS: .exe .obj .c .cc .cpp .res .rc .def - -#WXDIR = d:\wx2\wxwind~1 -WXDIR = $(%WXWIN) -WXINC = $(WXDIR)\include - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -WXDEBUG=0 - -!ifneq NOPRECOMP 1 -PRECOMP = /fh=$(WXDIR)\src\msw\watcom.pch -!endif - -!ifeq WXDEBUG 1 -DEBUGFLAGS = /D__WXDEBUG__ -DEBUGINFO = debug all -!else -DEBUGFLAGS = -DEBUGINFO = -!endif - -RC = wrc - -LEVEL = 386 -CCC = wpp$(LEVEL) -CC = wcc$(LEVEL) -OS_TARGET = nt_win -MODEL = -# If you use win95, assumptions will be made about Win95 icon format etc. -# so nt_win is probably better for simultaneous Win32s/Win95/NT operation. -LINKOPTION = nt_win # win95 -BINDCOMMAND = wrc -WATLIBDIR = $(WATCOMDIR)\lib386\nt -MINDATA = -MAXDATA = -STACK = option stack=64k -LIBS = $(WXDIR)\lib\wx.lib $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\png.lib $(WXDIR)\lib\xpm.lib & - $(WATLIBDIR)\comctl32.lib $(WATLIBDIR)\comdlg32.lib & - $(WATLIBDIR)\ole32.lib $(WATLIBDIR)\oleaut32.lib & - $(WATLIBDIR)\uuid.lib # $(WATLIBDIR)\odbc32.lib -IFLAGS = -i=$(WXINC) -i=$(%watcom)\h;$(%watcom)\h\nt # -i=$(WXDIR)\include\wx\msw\gnuwin32 -RESFLAGS1 = -r -bt=nt /i$(WXDIR)\include -RESFLAGS2 = -R $(name) /i$(WXDIR)\include - -# Here are some possible optimization flags: -# /5r Pentium timings -# /fp5 /fpi87 Inline 80x87 instructions optimized for Pentium: coprocessor must be present -# /ox Standard optimizations -# /or Reordering for Pentium timings (included in /ox) -# The Watcom-recommended flags for optimum Pentium speed are: -# /oneatx /zp4 /5 /fpi87 /fp5 - -OPTFLAGS=/ox /5r - -# /d1 for line numbers only: anything else produces an enormous wx32.lib -CPPFLAGS = /bt=nt /w1 /DWIN32 /D__WIN32__ /D__WIN95__ /D__WINDOWS__ /zq $(OPTFLAGS) $(MODEL) $(PRECOMP) /d1 $(DEBUGFLAGS) /d__WXMSW__ $(EXTRACPPFLAGS) # /d__WATCOMC__ - -.cpp.obj: # $< # .AUTODEPEND - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -.c.obj: # $< # .AUTODEPEND - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -# This doesn't work for wcc -# %create tmp.lbc -# @%append tmp.lbc $(CPPFLAGS) $(IFLAGS) $< -# echo $< -# $(CC) @tmp.lbc - -dummy: .SYMBOLIC - @echo Please give a target for wxWin makefiles: the usual one is 'all'. - -erasepch: .SYMBOLIC - -erase $(WXDIR)\src\msw\watcom.pch diff --git a/src/mingegcs.bat b/src/mingegcs.bat deleted file mode 100644 index cae95b56e0..0000000000 --- a/src/mingegcs.bat +++ /dev/null @@ -1,17 +0,0 @@ -REM -REM replace k:\mingw32 with whatever your installation root may be. -REM -path C:\WINDOWS;C:\WINDOWS\COMMAND;k:\mingw32\bin;c:\bin - -SET GCC_EXEC_PREFIX=k:\mingw32\lib\gcc-lib\ -set BISON_SIMPLE=k:\mingw32\share\bison.simple -set BISON_HAIRY=k:\mingw32\share\bison.hairy -set C_INCLUDE_PATH=k:\MINGW32\include -set CPLUS_INCLUDE_PATH=k:\MINGW32\include\g++;g:\MINGW32\include -set LIBRARY_PATH=k:\MINGW32\lib -set GCC_EXEC_PREFIX=k:\MINGW32\lib\gcc-lib\ - -rem 4DOS users only... -unalias make -alias makeming make -f makefile.g95 - diff --git a/src/mingw32.bat b/src/mingw32.bat deleted file mode 100644 index 6e3bea5c20..0000000000 --- a/src/mingw32.bat +++ /dev/null @@ -1,16 +0,0 @@ -rem Mingw32 environment variables -rem -set WXWIN=d:\wx2 -path C:\WINDOWS;C:\WINDOWS\COMMAND;e:\mingw32\bin;e:\mingw32\lib\gcc-lib\i386-mingw32\2.8.1;c:\bin -rem set GCC_EXEC_PREFIX=G:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\ -set RCINCLUDE=%WXWIN\include -rem set CPLUS_INCLUDE_PATH=/g/gnuwin32/b18/h-i386-cygwin32/i386-cygwin32/include:/g/gnuwin32/b18/include/g++:/g/gnuwin32/b18/H-i386-cygwin32/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-970404/include:/d/wx2/include:/g/gnuwin32/b18/include/g++ -set CPLUS_INCLUDE_PATH=e:\mingw32\include;e:\mingw32\lib\gcc-lib\i386-mingw32\2.8.1\include;e:\mingw32\include\g++ -set C_INCLUDE_PATH=e:\mingw32\include;e:\mingw32\lib\gcc-lib\i386-mingw32\2.8.1\include;e:\mingw32\include\g++ -set LIBRARY_PATH=e:\mingw32\lib;e:\mingw32\lib\gcc-lib\i386-mingw32\2.8.1 -set BISON_SIMPLE=e:\mingw32\share\bison.simple -set BISON_HAIRY=e:\mingw32\share\bison.hairy - -rem 4DOS users only... -unalias make -alias makeming make -f makefile.g95 diff --git a/src/motif/Makefile.am b/src/motif/Makefile.am deleted file mode 100644 index b9ea7d1782..0000000000 --- a/src/motif/Makefile.am +++ /dev/null @@ -1,210 +0,0 @@ -## Purpose: The automake makefile for wxWindows (src/motif subdirectory) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUFFIXES = .cpp .c - -DEFS = $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) -LIBS = $(GUILIBS) - -VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${EXTRA_VPATH} - -EXTRA_DIST = "${srcdir}/../common ${srcdir}/../generic ${srcdir}" - -lib_LTLIBRARIES = @WX_LIBRARY_NAME@ -EXTRA_LTLIBRARIES = libwx_gtk.la libwx_motif.la - -# these are the common files which always make part of the library -libwx_motif_la_SOURCES = \ -\ - extended.c \ - parser.c \ -\ - cmndata.cpp \ - dynarray.cpp \ - filefn.cpp \ - hash.cpp \ - list.cpp \ - matrix.cpp \ - memory.cpp \ - module.cpp \ - object.cpp \ - string.cpp \ - timercmn.cpp \ - utilscmn.cpp \ - tokenzr.cpp \ - variant.cpp \ - wxchar.cpp \ -\ - config.cpp \ - date.cpp \ - datstrm.cpp \ - db.cpp \ - dbtable.cpp \ - dcbase.cpp \ - docmdi.cpp \ - docview.cpp \ - dynlib.cpp \ - event.cpp \ - file.cpp \ - fileconf.cpp \ - framecmn.cpp \ - ftp.cpp \ - gdicmn.cpp \ - helpbase.cpp \ - http.cpp \ - image.cpp \ - imaggif.cpp \ - imagjpeg.cpp \ - imagpng.cpp \ - intl.cpp \ - ipcbase.cpp \ - layout.cpp \ - log.cpp \ - longlong.cpp \ - mimetype.cpp \ - mstream.cpp \ - objstrm.cpp \ - odbc.cpp \ - paper.cpp \ - prntbase.cpp \ - process.cpp \ - protocol.cpp \ - resource.cpp \ - sckaddr.cpp \ - sckfile.cpp \ - sckint.cpp \ - sckipc.cpp \ - sckstrm.cpp \ - serbase.cpp \ - socket.cpp \ - stream.cpp \ - tbarbase.cpp \ - tbarsmpl.cpp \ - textfile.cpp \ - time.cpp \ - url.cpp \ - valgen.cpp \ - validate.cpp \ - valtext.cpp \ - wfstream.cpp \ - wincmn.cpp \ - wxexpr.cpp \ - zstream.cpp \ -\ - caret.cpp \ - choicdgg.cpp \ - colrdlgg.cpp \ - dcpsg.cpp \ - dirdlgg.cpp \ - fontdlgg.cpp \ - gridg.cpp \ - helpext.cpp \ - helphtml.cpp \ - imaglist.cpp \ - laywin.cpp \ - listctrl.cpp \ - msgdlgg.cpp \ - panelg.cpp \ - printps.cpp \ - prntdlgg.cpp \ - progdlgg.cpp \ - prop.cpp \ - propform.cpp \ - proplist.cpp \ - sashwin.cpp \ - scrolwin.cpp \ - splitter.cpp \ - statusbr.cpp \ - tabg.cpp \ - textdlgg.cpp \ - treectrl.cpp \ -\ - threadpsx.cpp \ - utilsunx.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - checklst.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - combobox.cpp \ - control.cpp \ - cursor.cpp \ - data.cpp \ - dataobj.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - icon.cpp \ - listbox.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - minifram.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbmp.cpp \ - statbox.cpp \ - statline.cpp \ - stattext.cpp \ - textctrl.cpp \ - timer.cpp \ - tooltip.cpp \ - utilsres.cpp \ - wave.cpp \ - window.cpp - -# these are the sources which we build by our own rules -# -# TODO: parser.y can be included into SOURCES, but for the sake of my life I -# don't know where to put lexer.l - if I put it in the sources too, -# automake tries to build lexer.lo... and fails, of course. (VZ) -BUILT_SOURCES = parser.c lexer.c -parser.c: $(srcdir)/../common/parser.y lexer.c - $(YACC) $(srcdir)/../common/parser.y - @sed -e "s;$(srcdir)/../common/y.tab.c;parser.y;g" < y.tab.c | \ - sed -e "s/BUFSIZ/5000/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > parser.c - @$(RM) y.tab.c - -lexer.c: $(srcdir)/../common/lexer.l - $(LEX) $(srcdir)/../common/lexer.l - @sed -e "s;$(srcdir)/../common/lex.yy.c;lexer.l;g" < lex.yy.c | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > lexer.c - @$(RM) lex.yy.c - -libwx_motif_la_LDFLAGS = -rpath @libdir@ \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -libwx_motif_la_LIBADD = $(LTLIBOBJS) -libwx_motif_la_DEPENDENCIES = $(libwx_motif_la_LIBADD) lexer.l parser.y diff --git a/src/motif/accel.cpp b/src/motif/accel.cpp deleted file mode 100644 index 4c87676c43..0000000000 --- a/src/motif/accel.cpp +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: wxAcceleratorTable -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -#include "wx/setup.h" -#include "wx/accel.h" -#include "wx/string.h" -#include "wx/utils.h" -#include - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject) -#endif - -class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData -{ - friend class WXDLLEXPORT wxAcceleratorTable; -public: - wxAcceleratorRefData(); - ~wxAcceleratorRefData(); - -public: - int m_count; - wxAcceleratorEntry* m_entries; -}; - -#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData) - -wxAcceleratorRefData::wxAcceleratorRefData() -{ - m_count = 0; - m_entries = (wxAcceleratorEntry*) NULL; -} - -wxAcceleratorRefData::~wxAcceleratorRefData() -{ - delete[] m_entries; - m_entries = (wxAcceleratorEntry*) NULL; - m_count = 0; -} - -wxAcceleratorTable::wxAcceleratorTable() -{ - m_refData = (wxAcceleratorRefData*) NULL; -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ - // Data deleted in ~wxObject -} - -// Load from .rc resource -wxAcceleratorTable::wxAcceleratorTable(const wxString& resource) -{ - m_refData = new wxAcceleratorRefData; -} - -// Create from an array -wxAcceleratorTable::wxAcceleratorTable(int n, wxAcceleratorEntry entries[]) -{ - wxAcceleratorRefData* data = new wxAcceleratorRefData; - m_refData = data; - - data->m_count = n; - data->m_entries = new wxAcceleratorEntry[n]; - int i; - for (i = 0; i < n; i++) - data->m_entries[i] = entries[i]; - -} - -bool wxAcceleratorTable::Ok() const -{ - return (m_refData != (wxAcceleratorRefData*) NULL); -} - -int wxAcceleratorTable::GetCount() const -{ - return M_ACCELDATA->m_count; -} - -wxAcceleratorEntry* wxAcceleratorTable::GetEntries() const -{ - return M_ACCELDATA->m_entries; -} - -// Implementation use only -bool wxAcceleratorEntry::MatchesEvent(const wxKeyEvent& event) const -{ - bool eventAltDown = event.AltDown(); - bool eventCtrlDown = event.ControlDown(); - bool eventShiftDown = event.ShiftDown(); - int eventKeyCode = event.KeyCode(); - - bool accAltDown = ((GetFlags() & wxACCEL_ALT) == wxACCEL_ALT); - bool accCtrlDown = ((GetFlags() & wxACCEL_CTRL) == wxACCEL_CTRL); - bool accShiftDown = ((GetFlags() & wxACCEL_SHIFT) == wxACCEL_SHIFT); - int accKeyCode = GetKeyCode(); - int accKeyCode2 = GetKeyCode(); - if (isascii(accKeyCode2)) - accKeyCode2 = tolower(accKeyCode2); - - return ((eventAltDown == accAltDown) && (eventCtrlDown == accCtrlDown) && - (eventShiftDown == accShiftDown) && - ((eventKeyCode == accKeyCode || eventKeyCode == accKeyCode2))) ; -} - diff --git a/src/motif/app.cpp b/src/motif/app.cpp deleted file mode 100644 index b70716f889..0000000000 --- a/src/motif/app.cpp +++ /dev/null @@ -1,659 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: wxApp -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "app.h" -#endif - -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/utils.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/palette.h" -#include "wx/dc.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/log.h" -#include "wx/module.h" -#include "wx/memory.h" - -#if wxUSE_THREADS -#include "wx/thread.h" -#endif - -#if wxUSE_WX_RESOURCES - #include "wx/resource.h" -#endif - -#include -#include -#include -#include -#include - -#include "wx/motif/private.h" - -#include - -extern char *wxBuffer; -extern wxList wxPendingDelete; - -#if wxUSE_THREADS -extern wxList *wxPendingEvents; -extern wxCriticalSection *wxPendingEventsLocker; -#endif // wxUSE_THREADS - -wxApp *wxTheApp = NULL; - -wxHashTable *wxWidgetHashTable = NULL; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) - -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() -#endif - -long wxApp::sm_lastMessageTime = 0; - -bool wxApp::Initialize() -{ - wxBuffer = new char[BUFSIZ + 512]; - - wxClassInfo::InitializeClasses(); - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - wxPendingEvents = new wxList(); - wxPendingEventsLocker = new wxCriticalSection(); -#endif - - wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - // For PostScript printing -#if wxUSE_POSTSCRIPT - /* Done using wxModule now - wxInitializePrintSetupData(); - wxThePrintPaperDatabase = new wxPrintPaperDatabase; - wxThePrintPaperDatabase->CreateDatabase(); - */ -#endif - - wxBitmap::InitStandardHandlers(); - - wxWidgetHashTable = new wxHashTable(wxKEY_INTEGER); - - wxModule::RegisterModules(); - if (!wxModule::InitializeModules()) return FALSE; - - return TRUE; -} - -void wxApp::CleanUp() -{ - delete wxWidgetHashTable; - wxWidgetHashTable = NULL; - - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - - wxDeleteStockObjects() ; - - // Destroy all GDI lists, etc. - - delete wxTheBrushList; - wxTheBrushList = NULL; - - delete wxThePenList; - wxThePenList = NULL; - - delete wxTheFontList; - wxTheFontList = NULL; - - delete wxTheBitmapList; - wxTheBitmapList = NULL; - - delete wxTheColourDatabase; - wxTheColourDatabase = NULL; - -#if wxUSE_POSTSCRIPT - /* Done using wxModule now - wxInitializePrintSetupData(FALSE); - delete wxThePrintPaperDatabase; - wxThePrintPaperDatabase = NULL; - */ -#endif - - wxBitmap::CleanUpHandlers(); - - delete[] wxBuffer; - wxBuffer = NULL; - - wxClassInfo::CleanUpClasses(); - - delete wxTheApp; - wxTheApp = NULL; - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - delete wxPendingEvents; - delete wxPendingEventsLocker; -#endif - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // At this point we want to check if there are any memory - // blocks that aren't part of the wxDebugContext itself, - // as a special case. Then when dumping we need to ignore - // wxDebugContext, too. - if (wxDebugContext::CountObjectsLeft(TRUE) > 0) - { - wxLogDebug("There were memory leaks.\n"); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } -#endif - - // do it as the very last thing because everything else can log messages - wxLog::DontCreateOnDemand(); - // do it as the very last thing because everything else can log messages - delete wxLog::SetActiveTarget(NULL); -} - -int wxEntry( int argc, char *argv[] ) -{ -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // This seems to be necessary since there are 'rogue' - // objects present at this point (perhaps global objects?) - // Setting a checkpoint will ignore them as far as the - // memory checking facility is concerned. - // Of course you may argue that memory allocated in globals should be - // checked, but this is a reasonable compromise. - wxDebugContext::SetCheckpoint(); -#endif - - if (!wxApp::Initialize()) - return FALSE; - - if (!wxTheApp) - { - if (!wxApp::GetInitializerFunction()) - { - printf( "wxWindows error: No initializer - use IMPLEMENT_APP macro.\n" ); - return 0; - }; - - wxTheApp = (wxApp*) (* wxApp::GetInitializerFunction()) (); - }; - - if (!wxTheApp) - { - printf( "wxWindows error: wxTheApp == NULL\n" ); - return 0; - }; - - wxTheApp->SetClassName(wxFileNameFromPath(argv[0])); - wxTheApp->SetAppName(wxFileNameFromPath(argv[0])); - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - // GUI-specific initialization, such as creating an app context. - wxTheApp->OnInitGui(); - - // Here frames insert themselves automatically into wxTopLevelWindows by - // getting created in OnInit(). - - int retValue = 0; - if (wxTheApp->OnInit()) - { - if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun(); - } - - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); - - delete wxLog::SetActiveTarget(new wxLogStderr); // So dialog boxes aren't used - // for further messages - - if (wxTheApp->GetTopWindow()) - { - delete wxTheApp->GetTopWindow(); - wxTheApp->SetTopWindow(NULL); - } - - wxTheApp->DeletePendingObjects(); - - wxTheApp->OnExit(); - - wxApp::CleanUp(); - - return retValue; -}; - -// Static member initialization -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_className = ""; - m_wantDebugOutput = TRUE ; - m_appName = ""; - argc = 0; - argv = NULL; - m_printMode = wxPRINT_POSTSCRIPT; - m_exitOnFrameDelete = TRUE; - m_auto3D = TRUE; - - m_mainColormap = (WXColormap) NULL; - m_appContext = (WXAppContext) NULL; - m_topLevelWidget = (WXWidget) NULL; - m_maxRequestSize = 0; - m_initialDisplay = (WXDisplay*) 0; -} - -bool wxApp::Initialized() -{ - if (GetTopWindow()) - return TRUE; - else - return FALSE; -} - -int wxApp::MainLoop() -{ - m_keepGoing = TRUE; - - /* - * Sit around forever waiting to process X-events. Property Change - * event are handled special, because they have to refer to - * the root window rather than to a widget. therefore we can't - * use an Xt-eventhandler. - */ - - XSelectInput(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), - XDefaultRootWindow(XtDisplay((Widget) wxTheApp->GetTopLevelWidget())), - PropertyChangeMask); - - XEvent event; - - // Use this flag to allow breaking the loop via wxApp::ExitMainLoop() - while (m_keepGoing) - { - XtAppNextEvent( (XtAppContext) wxTheApp->GetAppContext(), &event); - - ProcessXEvent((WXEvent*) & event); - - if (XtAppPending( (XtAppContext) wxTheApp->GetAppContext() ) == 0) - { - if (!ProcessIdle()) - { -#if wxUSE_THREADS - // leave the main loop to give other threads a chance to - // perform their GUI work - wxMutexGuiLeave(); - wxUsleep(20); - wxMutexGuiEnter(); -#endif - } - } - - } - - return 0; -} - -// Processes an X event. -void wxApp::ProcessXEvent(WXEvent* _event) -{ - XEvent* event = (XEvent*) _event; - - if ((event->type == KeyPress) && CheckForAccelerator(_event)) - { - // Do nothing! We intercepted and processed the event as an accelerator. - return; - } - else if (event->type == PropertyNotify) - { - HandlePropertyChange(_event); - return; - } - else if (event->type == ResizeRequest) - { - /* Terry Gitnick - 1/21/98 - * If resize event, don't resize until the last resize event for this - * window is recieved. Prevents flicker as windows are resized. - */ - - Display *disp = XtDisplay((Widget) wxTheApp->GetTopLevelWidget()); - Window win = event->xany.window; - XEvent report; - - // to avoid flicker - report = * event; - while( XCheckTypedWindowEvent (disp, win, ResizeRequest, &report)); - - // TODO: when implementing refresh optimization, we can use - // XtAddExposureToRegion to expand the window's paint region. - - XtDispatchEvent(event); - } - else - { - XtDispatchEvent(event); - } -} - -// Returns TRUE if more time is needed. -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -void wxApp::ExitMainLoop() -{ - m_keepGoing = FALSE; -} - -// Is a message/event pending? -bool wxApp::Pending() -{ - XFlush(XtDisplay( (Widget) wxTheApp->GetTopLevelWidget() )); - - // Fix by Doug from STI, to prevent a stall if non-X event - // is found. - return ((XtAppPending( (XtAppContext) GetAppContext() ) & XtIMXEvent) != 0) ; -} - -// Dispatch a message. -void wxApp::Dispatch() -{ - // XtAppProcessEvent( (XtAppContext) wxTheApp->GetAppContext(), XtIMAll); - - XEvent event; - XtAppNextEvent((XtAppContext) GetAppContext(), &event); - ProcessXEvent((WXEvent*) & event); -} - -// This should be redefined in a derived class for -// handling property change events for XAtom IPC. -void wxApp::HandlePropertyChange(WXEvent *event) -{ - // by default do nothing special - XtDispatchEvent((XEvent*) event); /* let Motif do the work */ -} - -void wxApp::OnIdle(wxIdleEvent& event) -{ - static bool inOnIdle = FALSE; - - // Avoid recursion (via ProcessEvent default case) - if (inOnIdle) - return; - - inOnIdle = TRUE; - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - -#if wxUSE_THREADS - // Flush pending events. - ProcessPendingEvents(); -#endif - - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); - - // Send OnIdle events to all windows - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -// Send idle event to all top-level windows -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - - wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow* win = node->GetData(); - if (SendIdleEvents(win)) - needMore = TRUE; - node = node->GetNext(); - } - - return needMore; -} - -// Send idle event to window and all subwindows -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Member(obj)) - delete node; - - // Deleting one object may have deleted other pending - // objects, so start from beginning of list again. - node = wxPendingDelete.First(); - } -} - -#if wxUSE_THREADS -void wxApp::ProcessPendingEvents() -{ - wxNode *node = wxPendingEvents->First(); - wxCriticalSectionLocker locker(*wxPendingEventsLocker); - - while (node) - { - wxEvtHandler *handler = (wxEvtHandler *)node->Data(); - - handler->ProcessPendingEvents(); - - delete node; - node = wxPendingEvents->First(); - } -} -#endif // wxUSE_THREADS - -wxLog* wxApp::CreateLogTarget() -{ - return new wxLogGui; -} - -wxWindow* wxApp::GetTopWindow() const -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.GetCount() > 0) - return wxTopLevelWindows.GetFirst()->GetData(); - else - return NULL; -} - -// Create an application context -bool wxApp::OnInitGui() -{ - XtToolkitInitialize() ; - wxTheApp->m_appContext = (WXAppContext) XtCreateApplicationContext() ; - Display *dpy = XtOpenDisplay((XtAppContext) wxTheApp->m_appContext,(String)NULL,NULL, - (const char*) wxTheApp->GetClassName(), NULL, 0, -# if XtSpecificationRelease < 5 - (Cardinal*) &argc, -# else - &argc, -# endif - argv); - - if (!dpy) { - wxString className(wxTheApp->GetClassName()); - wxLogError(_("wxWindows could not open display for '%s': exiting."), - (const char*) className); - exit(-1); - } - m_initialDisplay = (WXDisplay*) dpy; - - wxTheApp->m_topLevelWidget = (WXWidget) XtAppCreateShell((String)NULL, (const char*) wxTheApp->GetClassName(), - applicationShellWidgetClass,dpy, - NULL,0) ; - - // Add general resize proc - XtActionsRec rec; - rec.string = "resize"; - rec.proc = (XtActionProc)wxWidgetResizeProc; - XtAppAddActions((XtAppContext) wxTheApp->m_appContext, &rec, 1); - - GetMainColormap(dpy); - m_maxRequestSize = XMaxRequestSize((Display*) dpy); - - return TRUE; -} - -WXColormap wxApp::GetMainColormap(WXDisplay* display) -{ - if (!display) /* Must be called first with non-NULL display */ - return m_mainColormap; - - int defaultScreen = DefaultScreen((Display*) display); - Screen* screen = XScreenOfDisplay((Display*) display, defaultScreen); - - Colormap c = DefaultColormapOfScreen(screen); - - if (!m_mainColormap) - m_mainColormap = (WXColormap) c; - - return (WXColormap) c; -} - -// Returns TRUE if an accelerator has been processed -bool wxApp::CheckForAccelerator(WXEvent* event) -{ - XEvent* xEvent = (XEvent*) event; - if (xEvent->xany.type == KeyPress) - { - // Find a wxWindow for this window - // TODO: should get display for the window, not the current display - Widget widget = XtWindowToWidget((Display*) wxGetDisplay(), xEvent->xany.window); - wxWindow* win = NULL; - - // Find the first wxWindow that corresponds to this event window - while (widget && !(win = wxGetWindowFromTable(widget))) - widget = XtParent(widget); - - if (!widget || !win) - return FALSE; - - wxKeyEvent keyEvent(wxEVT_CHAR); - wxTranslateKeyEvent(keyEvent, win, (Widget) 0, xEvent); - - // Now we have a wxKeyEvent and we have a wxWindow. - // Go up the hierarchy until we find a matching accelerator, - // or we get to the top. - while (win) - { - if (win->ProcessAccelerator(keyEvent)) - return TRUE; - win = win->GetParent(); - } - return FALSE; - } - return FALSE; -} - -void wxExit() -{ - int retValue = 0; - if (wxTheApp) - retValue = wxTheApp->OnExit(); - - wxApp::CleanUp(); - /* - * Exit in some platform-specific way. Not recommended that the app calls this: - * only for emergencies. - */ - exit(retValue); -} - -// Yield to other processes -bool wxYield() -{ - while (wxTheApp && wxTheApp->Pending()) - wxTheApp->Dispatch(); - - // VZ: is it the same as this (taken from old wxExecute)? -#if 0 - XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll); -#endif - - return TRUE; -} - diff --git a/src/motif/bdiag.xbm b/src/motif/bdiag.xbm deleted file mode 100644 index 9ff0a1822f..0000000000 --- a/src/motif/bdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define bdiag_width 16 -#define bdiag_height 16 -static char bdiag_bits[] = { - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, - 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01}; diff --git a/src/motif/bitmap.cpp b/src/motif/bitmap.cpp deleted file mode 100644 index 0f6bb1a7a5..0000000000 --- a/src/motif/bitmap.cpp +++ /dev/null @@ -1,1030 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: wxBitmap -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/palette.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/log.h" -#include "wx/control.h" -#include "wx/dcmemory.h" - -#include - -#include "wx/motif/private.h" - -#if wxUSE_XPM -#include -#endif - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -wxBitmapRefData::wxBitmapRefData() -{ - m_ok = FALSE; - m_width = 0; - m_height = 0; - m_depth = 0; - m_quality = 0; - m_numColors = 0; - m_bitmapMask = NULL; - - m_pixmap = (WXPixmap) 0; - m_display = (WXDisplay*) 0; - - m_freePixmap = TRUE; //TODO: necessary? - m_freeColors = (unsigned long*) 0; - m_freeColorsCount = 0; - - // These 5 variables are for wxControl - m_insensPixmap = (WXPixmap) 0; - m_labelPixmap = (WXPixmap) 0; - m_armPixmap = (WXPixmap) 0; - m_image = (WXImage*) 0; - m_insensImage = (WXImage*) 0; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - if (m_labelPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay ((Display*) m_display), (Pixmap) m_labelPixmap); - - if (m_armPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay ((Display*) m_display), (Pixmap) m_armPixmap); - - if (m_insensPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay ((Display*) m_display), (Pixmap) m_insensPixmap); - - if (m_image) - { - XmUninstallImage ((XImage*) m_image); - XtFree ((char *) (XImage*) m_image); - } - - if (m_insensImage) - { - XmUninstallImage ((XImage*) m_insensImage); - delete[] ((XImage*) m_insensImage)->data; - XtFree ((char *) (XImage*) m_insensImage); - } - if (m_pixmap && m_freePixmap) - XFreePixmap ((Display*) m_display, (Pixmap) m_pixmap); - - if (m_freeColors) - { - int screen = DefaultScreen((Display*) m_display); - Colormap cmp = DefaultColormap((Display*) m_display,screen); - long llp; - for(llp = 0;llp < m_freeColorsCount;llp++) - XFreeColors((Display*) m_display, cmp, &m_freeColors[llp], 1, 0L); - delete m_freeColors; - }; - - if (m_bitmapMask) - delete m_bitmapMask; - m_bitmapMask = NULL; -} - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap() -{ - m_refData = NULL; - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -wxBitmap::wxBitmap(const char bits[], int width, int height, int depth) -{ - m_refData = new wxBitmapRefData; - - (void) Create((void*) bits, wxBITMAP_TYPE_XBM_DATA, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(int w, int h, int d) -{ - (void)Create(w, h, d); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth) -{ - (void) Create(data, type, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxString& filename, long type) -{ - LoadFile(filename, (int)type); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -// Create from XPM data -static wxControl* sg_Control = NULL; -wxBitmap::wxBitmap(char **data, wxControl* control) -{ - // Pass the control to the Create function using a global - sg_Control = control; - - (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); - - sg_Control = (wxControl*) NULL; -} - -bool wxBitmap::Create(int w, int h, int d) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - if (d < 1) - d = wxDisplayDepth(); - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = d; - M_BITMAPDATA->m_freePixmap = TRUE; - - Display *dpy = (Display*) wxGetDisplay(); - - M_BITMAPDATA->m_display = dpy; /* MATTHEW: [4] Remember the display */ - - M_BITMAPDATA->m_pixmap = (WXPixmap) XCreatePixmap (dpy, RootWindow (dpy, DefaultScreen (dpy)), - w, h, d); - - M_BITMAPDATA->m_ok = (M_BITMAPDATA->m_pixmap != (WXPixmap) 0) ; - return M_BITMAPDATA->m_ok; -} - -bool wxBitmap::LoadFile(const wxString& filename, long type) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("%s: no bitmap handler for type %d defined.", (const char*) filename, type); - - return FALSE; - } - - return handler->LoadFile(this, filename, type, -1, -1); -} - -bool wxBitmap::Create(void *data, long type, int width, int height, int depth) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no data bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->Create(this, data, type, width, height, depth); -} - -bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *palette) -{ - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->SaveFile(this, filename, type, palette); -} - -void wxBitmap::SetWidth(int w) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; -} - -void wxBitmap::SetHeight(int h) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_height = h; -} - -void wxBitmap::SetDepth(int d) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_depth = d; -} - -void wxBitmap::SetQuality(int q) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_quality = q; -} - -void wxBitmap::SetOk(bool isOk) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_ok = isOk; -} - -void wxBitmap::SetPalette(const wxPalette& palette) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapPalette = palette ; -} - -void wxBitmap::SetMask(wxMask *mask) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapMask = mask ; -} - -void wxBitmap::AddHandler(wxBitmapHandler *handler) -{ - sm_handlers.Append(handler); -} - -void wxBitmap::InsertHandler(wxBitmapHandler *handler) -{ - sm_handlers.Insert(handler); -} - -bool wxBitmap::RemoveHandler(const wxString& name) -{ - wxBitmapHandler *handler = FindHandler(name); - if ( handler ) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& name) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetName() == name ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& extension, long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetExtension() == extension && - (bitmapType == -1 || handler->GetType() == bitmapType) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if (handler->GetType() == bitmapType) - return handler; - node = node->Next(); - } - return NULL; -} - -/* -* wxMask -*/ - -wxMask::wxMask() -{ - m_pixmap = (WXPixmap) 0; -} - -// Construct a mask from a bitmap and a colour indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour) -{ - m_pixmap = (WXPixmap) 0; - - Create(bitmap, colour); -} - -// Construct a mask from a bitmap and a palette index indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex) -{ - m_pixmap = (WXPixmap) 0; - - Create(bitmap, paletteIndex); -} - -// Construct a mask from a mono bitmap (copies the bitmap). -wxMask::wxMask(const wxBitmap& bitmap) -{ - m_pixmap = (WXPixmap) 0; - - Create(bitmap); -} - -wxMask::~wxMask() -{ - // TODO: this may be the wrong display - if ( m_pixmap ) - XFreePixmap ((Display*) wxGetDisplay(), (Pixmap) m_pixmap); -} - -// Create a mask from a mono bitmap (copies the bitmap). -bool wxMask::Create(const wxBitmap& WXUNUSED(bitmap)) -{ - // TODO - return FALSE; -} - -// Create a mask from a bitmap and a palette index indicating -// the transparent area -bool wxMask::Create(const wxBitmap& WXUNUSED(bitmap), int WXUNUSED(paletteIndex)) -{ - // TODO - return FALSE; -} - -// Create a mask from a bitmap and a colour indicating -// the transparent area -bool wxMask::Create(const wxBitmap& WXUNUSED(bitmap), const wxColour& WXUNUSED(colour)) -{ - // TODO - return FALSE; -} - -/* -* wxBitmapHandler -*/ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) - -bool wxBitmapHandler::Create(wxBitmap *WXUNUSED(bitmap), void *WXUNUSED(data), long WXUNUSED(type), - int WXUNUSED(width), int WXUNUSED(height), int WXUNUSED(depth)) -{ - return FALSE; -} - -bool wxBitmapHandler::LoadFile(wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name), long WXUNUSED(type), - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight)) -{ - return FALSE; -} - -bool wxBitmapHandler::SaveFile(wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name), int WXUNUSED(type), - const wxPalette *WXUNUSED(palette)) -{ - return FALSE; -} - -/* -* Standard handlers -*/ - -class WXDLLEXPORT wxXBMFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxXBMFileHandler) -public: - inline wxXBMFileHandler() - { - m_name = "XBM file"; - m_extension = "xbm"; - m_type = wxBITMAP_TYPE_XBM; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); -}; -IMPLEMENT_DYNAMIC_CLASS(wxXBMFileHandler, wxBitmapHandler) - -bool wxXBMFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long WXUNUSED(flags), - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight)) -{ - M_BITMAPHANDLERDATA->m_freePixmap = TRUE; - - int hotX, hotY; - unsigned int w, h; - Pixmap pixmap; - - Display *dpy = (Display*) wxGetDisplay(); - M_BITMAPDATA->m_display = (WXDisplay*) dpy; - - int value = XReadBitmapFile (dpy, RootWindow (dpy, DefaultScreen (dpy)), - (char*) (const char*) name, &w, &h, &pixmap, &hotX, &hotY); - M_BITMAPHANDLERDATA->m_width = w; - M_BITMAPHANDLERDATA->m_height = h; - M_BITMAPHANDLERDATA->m_depth = 1; - M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) pixmap; - - if ((value == BitmapFileInvalid) || - (value == BitmapOpenFailed) || - (value == BitmapNoMemory)) - { - M_BITMAPHANDLERDATA->m_ok = FALSE; - M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) 0; - } - else - M_BITMAPHANDLERDATA->m_ok = TRUE; - - return M_BITMAPHANDLERDATA->m_ok ; -} - -class WXDLLEXPORT wxXBMDataHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxXBMDataHandler) -public: - inline wxXBMDataHandler() - { - m_name = "XBM data"; - m_extension = "xbm"; - m_type = wxBITMAP_TYPE_XBM_DATA; - }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); -}; -IMPLEMENT_DYNAMIC_CLASS(wxXBMDataHandler, wxBitmapHandler) - -bool wxXBMDataHandler::Create( wxBitmap *bitmap, void *data, long WXUNUSED(flags), - int width, int height, int WXUNUSED(depth)) -{ - M_BITMAPHANDLERDATA->m_width = width; - M_BITMAPHANDLERDATA->m_height = height; - M_BITMAPHANDLERDATA->m_depth = 1; - M_BITMAPHANDLERDATA->m_freePixmap = TRUE; - - Display *dpy = (Display*) wxGetDisplay(); - M_BITMAPHANDLERDATA->m_display = (WXDisplay*) dpy; - - M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) XCreateBitmapFromData (dpy, RootWindow (dpy, DefaultScreen (dpy)), (char*) data, width, height); - M_BITMAPHANDLERDATA->m_ok = (M_BITMAPHANDLERDATA->m_pixmap != (WXPixmap) 0) ; - - // code for wxControl. TODO: can we avoid doing this until we need it? - // E.g. have CreateButtonPixmaps which is called on demand. - XImage* image = (XImage *) XtMalloc (sizeof (XImage)); - image->width = width; - image->height = height; - image->data = (char*) data; - image->depth = 1; - image->xoffset = 0; - image->format = XYBitmap; - image->byte_order = LSBFirst; - image->bitmap_unit = 8; - image->bitmap_bit_order = LSBFirst; - image->bitmap_pad = 8; - image->bytes_per_line = (width + 7) >> 3; - - char tmp[128]; - sprintf (tmp, "Im%x", (unsigned int) image); - XmInstallImage (image, tmp); - - // Build our manually stipped pixmap. - - int bpl = (width + 7) / 8; - char *data1 = new char[height * bpl]; - char* bits = (char*) data; - int i; - for (i = 0; i < height; i++) - { - int mask = i % 2 ? 0x55 : 0xaa; - int j; - for (j = 0; j < bpl; j++) - data1[i * bpl + j] = bits[i * bpl + j] & mask; - } - XImage* insensImage = (XImage *) XtMalloc (sizeof (XImage)); - insensImage->width = width; - insensImage->height = height; - insensImage->data = data1; - insensImage->depth = 1; - insensImage->xoffset = 0; - insensImage->format = XYBitmap; - insensImage->byte_order = LSBFirst; - insensImage->bitmap_unit = 8; - insensImage->bitmap_bit_order = LSBFirst; - insensImage->bitmap_pad = 8; - insensImage->bytes_per_line = bpl; - - sprintf (tmp, "Not%x", (unsigned int)insensImage); - XmInstallImage (insensImage, tmp); - - M_BITMAPHANDLERDATA->m_image = (WXImage*) image; - M_BITMAPHANDLERDATA->m_insensImage = (WXImage*) insensImage; - - return TRUE; -} - -#if wxUSE_XPM -class WXDLLEXPORT wxXPMFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxXPMFileHandler) -public: - inline wxXPMFileHandler() - { - m_name = "XPM file"; - m_extension = "xpm"; - m_type = wxBITMAP_TYPE_XPM; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); -}; - -IMPLEMENT_DYNAMIC_CLASS(wxXPMFileHandler, wxBitmapHandler) - -bool wxXPMFileHandler::LoadFile( wxBitmap *bitmap, const wxString& name, long WXUNUSED(flags), - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight) ) -{ - Display *dpy = (Display*) wxGetDisplay(); - M_BITMAPHANDLERDATA->m_display = (WXDisplay*) dpy; - - XpmAttributes xpmAttr; - Pixmap pixmap; - Pixmap mask = 0; - - M_BITMAPHANDLERDATA->m_ok = FALSE; - xpmAttr.valuemask = XpmReturnInfos | XpmCloseness; - xpmAttr.closeness = 40000; - int errorStatus = XpmReadFileToPixmap(dpy, - RootWindow(dpy, DefaultScreen(dpy)), (char*) (const char*) name, - &pixmap, &mask, &xpmAttr); - - if (errorStatus == XpmSuccess) - { - M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) pixmap; - if ( mask ) - { - M_BITMAPHANDLERDATA->m_bitmapMask = new wxMask; - M_BITMAPHANDLERDATA->m_bitmapMask->SetPixmap((WXPixmap) mask); - } - - unsigned int depthRet; - int xRet, yRet; - unsigned int widthRet, heightRet, borderWidthRet; - Window rootWindowRet; - XGetGeometry(dpy, pixmap, &rootWindowRet, &xRet, &yRet, - &widthRet, &heightRet, &borderWidthRet, &depthRet); - - M_BITMAPHANDLERDATA->m_width = xpmAttr.width; - M_BITMAPHANDLERDATA->m_height = xpmAttr.height; - - /* - if ( xpmAttr.npixels > 2 ) - { - M_BITMAPHANDLERDATA->m_depth = 8; // TODO: next time not just a guess :-) ... - } else - { - M_BITMAPHANDLERDATA->m_depth = 1; // mono - } - */ - - M_BITMAPHANDLERDATA->m_depth = depthRet; - - M_BITMAPHANDLERDATA->m_numColors = xpmAttr.npixels; - - XpmFreeAttributes(&xpmAttr); - - M_BITMAPHANDLERDATA->m_ok = TRUE; - return TRUE; - } else - { - // XpmDebugError(errorStatus, name); - M_BITMAPHANDLERDATA->m_ok = FALSE; - return FALSE; - } -} - -bool wxXPMFileHandler::SaveFile( wxBitmap *bitmap, const wxString& name, int WXUNUSED(type), - const wxPalette *WXUNUSED(palette)) -{ - if (M_BITMAPHANDLERDATA->m_ok && M_BITMAPHANDLERDATA->m_pixmap) - { - Display *dpy = (Display*) M_BITMAPHANDLERDATA->m_display; - int errorStatus = XpmWriteFileFromPixmap(dpy, (char*) (const char*) name, - (Pixmap) M_BITMAPHANDLERDATA->m_pixmap, - (M_BITMAPHANDLERDATA->m_bitmapMask ? (Pixmap) M_BITMAPHANDLERDATA->m_bitmapMask->GetPixmap() : (Pixmap) 0), - (XpmAttributes *) NULL); - if (errorStatus == XpmSuccess) - return TRUE; - else - return FALSE; - } - else - return FALSE; -} - -class WXDLLEXPORT wxXPMDataHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxXPMDataHandler) -public: - inline wxXPMDataHandler() - { - m_name = "XPM data"; - m_extension = "xpm"; - m_type = wxBITMAP_TYPE_XPM_DATA; - }; - - virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1); -}; -IMPLEMENT_DYNAMIC_CLASS(wxXPMDataHandler, wxBitmapHandler) - -bool wxXPMDataHandler::Create( wxBitmap *bitmap, void *data, long WXUNUSED(flags), - int width, int height, int WXUNUSED(depth)) -{ - M_BITMAPHANDLERDATA->m_width = width; - M_BITMAPHANDLERDATA->m_height = height; - M_BITMAPHANDLERDATA->m_depth = 1; - M_BITMAPHANDLERDATA->m_freePixmap = TRUE; - - Display *dpy = (Display*) wxGetDisplay(); - M_BITMAPHANDLERDATA->m_display = (WXDisplay*) dpy; - - XpmAttributes xpmAttr; - - xpmAttr.valuemask = XpmReturnInfos; /* nothing yet, but get infos back */ - - XpmColorSymbol symbolicColors[4]; - if (sg_Control && sg_Control->GetMainWidget()) - { - symbolicColors[0].name = "foreground"; - symbolicColors[0].value = NULL; - symbolicColors[1].name = "background"; - symbolicColors[1].value = NULL; - XtVaGetValues((Widget) sg_Control->GetMainWidget(), - XmNforeground, &symbolicColors[0].pixel, - XmNbackground, &symbolicColors[1].pixel,NULL); - xpmAttr.numsymbols = 2; - xpmAttr.colorsymbols = symbolicColors; - xpmAttr.valuemask |= XpmColorSymbols; // add flag - } - - Pixmap pixmap; - Pixmap mask = 0; - int ErrorStatus = XpmCreatePixmapFromData(dpy, RootWindow(dpy, DefaultScreen(dpy)), - (char**) data, &pixmap, &mask, &xpmAttr); - if (ErrorStatus == XpmSuccess) - { - // Set attributes - M_BITMAPHANDLERDATA->m_width = xpmAttr.width; - M_BITMAPHANDLERDATA->m_height = xpmAttr.height; - - unsigned int depthRet; - int xRet, yRet; - unsigned int widthRet, heightRet, borderWidthRet; - Window rootWindowRet; - XGetGeometry(dpy, pixmap, &rootWindowRet, &xRet, &yRet, - &widthRet, &heightRet, &borderWidthRet, &depthRet); - - /* - if ( xpmAttr.npixels > 2 ) - { - M_BITMAPHANDLERDATA->m_depth = 8; // next time not just a guess :-) ... - } else - { - M_BITMAPHANDLERDATA->m_depth = 1; // mono - } - */ - - M_BITMAPHANDLERDATA->m_depth = depthRet; - - M_BITMAPHANDLERDATA->m_numColors = xpmAttr.npixels; - XpmFreeAttributes(&xpmAttr); - M_BITMAPHANDLERDATA->m_ok = TRUE; - M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) pixmap; - if ( mask ) - { - M_BITMAPHANDLERDATA->m_bitmapMask = new wxMask; - M_BITMAPHANDLERDATA->m_bitmapMask->SetPixmap((WXPixmap) mask); - } - } - else - { - // XpmDebugError(ErrorStatus, NULL); - M_BITMAPHANDLERDATA->m_ok = FALSE; - } - return M_BITMAPHANDLERDATA->m_ok ; -} - -#endif - -void wxBitmap::CleanUpHandlers() -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -void wxBitmap::InitStandardHandlers() -{ - // Initialize all standard bitmap or derived class handlers here. - AddHandler(new wxXBMFileHandler); - AddHandler(new wxXBMDataHandler); - - // XPM is considered standard for Motif, although it can be omitted if absolutely - // necessary. -#if wxUSE_XPM - AddHandler(new wxXPMFileHandler); - AddHandler(new wxXPMDataHandler); -#endif -} - -WXPixmap wxBitmap::GetLabelPixmap (WXWidget w) -{ - if (M_BITMAPDATA->m_image == (WXPixmap) 0) - return M_BITMAPDATA->m_pixmap; - - Display *dpy = (Display*) M_BITMAPDATA->m_display; - -#ifdef FOO - /* - If we do: - if (labelPixmap) return labelPixmap; - things can be wrong, because colors can have been changed. - - If we do: - if (labelPixmap) - XmDestroyPixmap(DefaultScreenOfDisplay(dpy),labelPixmap) ; - we got BadDrawable if the pixmap is referenced by multiples widgets - - this is a catch22!! - - So, before doing thing really clean, I just do nothing; if the pixmap is - referenced by many widgets, Motif performs caching functions. - And if pixmap is referenced with multiples colors, we just have some - memory leaks... I hope we can deal with them... - */ - // Must be destroyed, because colours can have been changed! - if (M_BITMAPDATA->m_labelPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay (dpy), M_BITMAPDATA->m_labelPixmap); -#endif - - char tmp[128]; - sprintf (tmp, "Im%x", (unsigned int) M_BITMAPDATA->m_image); - - Pixel fg, bg; - Widget widget = (Widget) w; - - while (XmIsGadget ( widget )) - widget = XtParent (widget); - XtVaGetValues (widget, XmNbackground, &bg, XmNforeground, &fg, NULL); - - M_BITMAPDATA->m_labelPixmap = (WXPixmap) XmGetPixmap (DefaultScreenOfDisplay (dpy), tmp, fg, bg); - - return M_BITMAPDATA->m_labelPixmap; -} - -WXPixmap wxBitmap::GetArmPixmap (WXWidget w) -{ - if (M_BITMAPDATA->m_image == (WXPixmap) 0) - return M_BITMAPDATA->m_pixmap; - - Display *dpy = (Display*) M_BITMAPDATA->m_display; -#ifdef FOO - See GetLabelPixmap () comment - // Must be destroyed, because colours can have been changed! - if (M_BITMAPDATA->m_armPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay (dpy), M_BITMAPDATA->m_armPixmap); -#endif - - char tmp[128]; - sprintf (tmp, "Im%x", (unsigned int) M_BITMAPDATA->m_image); - - Pixel fg, bg; - Widget widget = (Widget) w; - - XtVaGetValues (widget, XmNarmColor, &bg, NULL); - while (XmIsGadget (widget)) - widget = XtParent (widget); - XtVaGetValues (widget, XmNforeground, &fg, NULL); - - M_BITMAPDATA->m_armPixmap = (WXPixmap) XmGetPixmap (DefaultScreenOfDisplay (dpy), tmp, fg, bg); - - return M_BITMAPDATA->m_armPixmap; -} - -WXPixmap wxBitmap::GetInsensPixmap (WXWidget w) -{ - Display *dpy = (Display*) M_BITMAPDATA->m_display; - - if (M_BITMAPDATA->m_insensPixmap) - return M_BITMAPDATA->m_insensPixmap; - - if (!w) - { - M_BITMAPDATA->m_insensPixmap = (WXPixmap) XCreateInsensitivePixmap(dpy, (Pixmap) M_BITMAPDATA->m_pixmap); - if (M_BITMAPDATA->m_insensPixmap) - return M_BITMAPDATA->m_insensPixmap; - else - return M_BITMAPDATA->m_pixmap; - } - - if (M_BITMAPDATA->m_insensImage == (WXPixmap) 0) - return M_BITMAPDATA->m_pixmap; - -#ifdef FOO - See GetLabelPixmap () comment - // Must be destroyed, because colours can have been changed! - if (M_BITMAPDATA->m_insensPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay (dpy), (Pixmap) M_BITMAPDATA->m_insensPixmap); -#endif - - char tmp[128]; - sprintf (tmp, "Not%x", (unsigned int) M_BITMAPDATA->m_insensImage); - - Pixel fg, bg; - Widget widget = (Widget) w; - - while (XmIsGadget (widget)) - widget = XtParent (widget); - XtVaGetValues (widget, XmNbackground, &bg, XmNforeground, &fg, NULL); - - M_BITMAPDATA->m_insensPixmap = (WXPixmap) XmGetPixmap (DefaultScreenOfDisplay (dpy), tmp, fg, bg); - - return M_BITMAPDATA->m_insensPixmap; -} - -// We may need this sometime... - -/**************************************************************************** - - NAME - XCreateInsensitivePixmap - create a grayed-out copy of a pixmap - - SYNOPSIS - Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap ) - - DESCRIPTION - This function creates a grayed-out copy of the argument pixmap, suitable - for use as a XmLabel's XmNlabelInsensitivePixmap resource. - - RETURN VALUES - The return value is the new Pixmap id or zero on error. Errors include - a NULL display argument or an invalid Pixmap argument. - - ERRORS - If one of the XLib functions fail, it will produce a X error. The - default X error handler prints a diagnostic and calls exit(). - - SEE ALSO - XCopyArea(3), XCreateBitmapFromData(3), XCreateGC(3), XCreatePixmap(3), - XFillRectangle(3), exit(2) - - AUTHOR - John R Veregge - john@puente.jpl.nasa.gov - Advanced Engineering and Prototyping Group (AEG) - Information Systems Technology Section (395) - Jet Propulsion Lab - Calif Institute of Technology - -*****************************************************************************/ - -Pixmap -XCreateInsensitivePixmap( Display *display, Pixmap pixmap ) - -{ - static - char stipple_data[] = - { - 0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA, - 0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA, - 0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA, - 0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA - }; - GC gc; - Pixmap ipixmap, stipple; - unsigned width, height, depth; - - Window window; /* These return values */ - unsigned border; /* from XGetGeometry() */ - int x, y; /* are not needed. */ - - ipixmap = 0; - - if ( NULL == display || 0 == pixmap ) - return ipixmap; - - if ( 0 == XGetGeometry( display, pixmap, &window, &x, &y, - &width, &height, &border, &depth ) - ) - return ipixmap; /* BadDrawable: probably an invalid pixmap */ - - /* Get the stipple pixmap to be used to 'gray-out' the argument pixmap. - */ - stipple = XCreateBitmapFromData( display, pixmap, stipple_data, 16, 16 ); - if ( 0 != stipple ) - { - gc = XCreateGC( display, pixmap, (XtGCMask)0, (XGCValues*)NULL ); - if ( NULL != gc ) - { - /* Create an identical copy of the argument pixmap. - */ - ipixmap = XCreatePixmap( display, pixmap, width, height, depth ); - if ( 0 != ipixmap ) - { - /* Copy the argument pixmap into the new pixmap. - */ - XCopyArea( display, pixmap, ipixmap, - gc, 0, 0, width, height, 0, 0 ); - - /* Refill the new pixmap using the stipple algorithm/pixmap. - */ - XSetStipple( display, gc, stipple ); - XSetFillStyle( display, gc, FillStippled ); - XFillRectangle( display, ipixmap, gc, 0, 0, width, height ); - } - XFreeGC( display, gc ); - } - XFreePixmap( display, stipple ); - } - return ipixmap; -} - -// Creates a bitmap with transparent areas drawn in -// the given colour. -wxBitmap wxCreateMaskedBitmap(wxBitmap& bitmap, wxColour& colour) -{ - wxBitmap newBitmap(bitmap.GetWidth(), - bitmap.GetHeight(), - bitmap.GetDepth()); - wxMemoryDC destDC; - wxMemoryDC srcDC; - srcDC.SelectObject(bitmap); - destDC.SelectObject(newBitmap); - - wxBrush brush(colour, wxSOLID); - destDC.SetOptimization(FALSE); - destDC.SetBackground(brush); - destDC.Clear(); - destDC.Blit(0, 0, bitmap.GetWidth(), bitmap.GetHeight(), & srcDC, 0, 0, wxCOPY, TRUE); - - return newBitmap; -} diff --git a/src/motif/bmpbuttn.cpp b/src/motif/bmpbuttn.cpp deleted file mode 100644 index f5e7767b14..0000000000 --- a/src/motif/bmpbuttn.cpp +++ /dev/null @@ -1,254 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: wxBitmapButton -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#include -#include - -#include "wx/motif/private.h" - -// Implemented in button.cpp -void wxButtonCallback (Widget w, XtPointer clientData, XtPointer ptr); - -Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap ); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) -#endif - -wxBitmapButton::wxBitmapButton() -{ - m_marginX = wxDEFAULT_BUTTON_MARGIN; m_marginY = wxDEFAULT_BUTTON_MARGIN; - m_insensPixmap = (WXPixmap) 0; -} - -bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_buttonBitmap = bitmap; - m_buttonBitmapOriginal = bitmap; - m_buttonBitmapSelected = bitmap; - m_buttonBitmapSelectedOriginal = bitmap; - - SetName(name); - SetValidator(validator); - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - m_windowStyle = style; - m_marginX = 0; - m_marginY = 0; - - /* - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - */ - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - /* - * Patch Note (important) - * There is no major reason to put a defaultButtonThickness here. - * Not requesting it give the ability to put wxButton with a spacing - * as small as requested. However, if some button become a DefaultButton, - * other buttons are no more aligned -- This is why we set - * defaultButtonThickness of ALL buttons belonging to the same wxPanel, - * in the ::SetDefaultButton method. - */ - Widget buttonWidget = XtVaCreateManagedWidget ("button", - - // Gadget causes problems for default button operation. -#if wxUSE_GADGETS - xmPushButtonGadgetClass, parentWidget, -#else - xmPushButtonWidgetClass, parentWidget, -#endif - // XmNdefaultButtonShadowThickness, 1, // See comment for wxButton::SetDefault - NULL); - - m_mainWidget = (WXWidget) buttonWidget; - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - ChangeBackgroundColour (); - - DoSetBitmap(); - - XtAddCallback (buttonWidget, XmNactivateCallback, (XtCallbackProc) wxButtonCallback, - (XtPointer) this); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - return TRUE; -} - -wxBitmapButton::~wxBitmapButton() -{ - SetBitmapLabel(wxNullBitmap); - - if (m_insensPixmap) - XmDestroyPixmap (DefaultScreenOfDisplay ((Display*) GetXDisplay()), (Pixmap) m_insensPixmap); -} - -void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) -{ - m_buttonBitmapOriginal = bitmap; - m_buttonBitmap = bitmap; - - DoSetBitmap(); -} - -void wxBitmapButton::SetBitmapSelected(const wxBitmap& sel) -{ - m_buttonBitmapSelected = sel; - m_buttonBitmapSelectedOriginal = sel; - - DoSetBitmap(); -}; - -void wxBitmapButton::SetBitmapFocus(const wxBitmap& focus) -{ - m_buttonBitmapFocus = focus; - // Not used in Motif -}; - -void wxBitmapButton::SetBitmapDisabled(const wxBitmap& disabled) -{ - m_buttonBitmapDisabled = disabled; - m_buttonBitmapDisabledOriginal = disabled; - - DoSetBitmap(); -}; - -void wxBitmapButton::DoSetBitmap() -{ - if (m_buttonBitmapOriginal.Ok()) - { - Pixmap pixmap = 0; - Pixmap insensPixmap = 0; - Pixmap armPixmap = 0; - - // Must re-make the bitmap to have its transparent areas drawn - // in the current widget background colour. - if (m_buttonBitmapOriginal.GetMask()) - { - int backgroundPixel; - XtVaGetValues((Widget) m_mainWidget, XmNbackground, &backgroundPixel, - NULL); - - wxColour col; - col.SetPixel(backgroundPixel); - - wxBitmap newBitmap = wxCreateMaskedBitmap(m_buttonBitmapOriginal, col); - m_buttonBitmap = newBitmap; - - pixmap = (Pixmap) m_buttonBitmap.GetPixmap(); - } - else - pixmap = (Pixmap) m_buttonBitmap.GetLabelPixmap(m_mainWidget); - - if (m_buttonBitmapDisabledOriginal.Ok()) - { - if (m_buttonBitmapDisabledOriginal.GetMask()) - { - int backgroundPixel; - XtVaGetValues((Widget) m_mainWidget, XmNbackground, &backgroundPixel, - NULL); - - wxColour col; - col.SetPixel(backgroundPixel); - - wxBitmap newBitmap = wxCreateMaskedBitmap(m_buttonBitmapDisabledOriginal, col); - m_buttonBitmapDisabled = newBitmap; - - insensPixmap = (Pixmap) m_buttonBitmapDisabled.GetPixmap(); - } - else - insensPixmap = (Pixmap) m_buttonBitmap.GetInsensPixmap(m_mainWidget); - } - else - insensPixmap = (Pixmap) m_buttonBitmap.GetInsensPixmap(m_mainWidget); - - // Now make the bitmap representing the armed state - if (m_buttonBitmapSelectedOriginal.Ok()) - { - if (m_buttonBitmapSelectedOriginal.GetMask()) - { - int backgroundPixel; - XtVaGetValues((Widget) m_mainWidget, XmNarmColor, &backgroundPixel, - NULL); - - wxColour col; - col.SetPixel(backgroundPixel); - - wxBitmap newBitmap = wxCreateMaskedBitmap(m_buttonBitmapSelectedOriginal, col); - m_buttonBitmapSelected = newBitmap; - - armPixmap = (Pixmap) m_buttonBitmapSelected.GetPixmap(); - } - else - armPixmap = (Pixmap) m_buttonBitmap.GetArmPixmap(m_mainWidget); - } - else - armPixmap = (Pixmap) m_buttonBitmap.GetArmPixmap(m_mainWidget); - - if (insensPixmap == pixmap) // <- the Get...Pixmap()-functions return the same pixmap! - { - insensPixmap = - XCreateInsensitivePixmap(DisplayOfScreen(XtScreen((Widget) m_mainWidget)), pixmap); - m_insensPixmap = (WXPixmap) insensPixmap; - } - - XtVaSetValues ((Widget) m_mainWidget, - XmNlabelPixmap, pixmap, - XmNlabelInsensitivePixmap, insensPixmap, - XmNarmPixmap, armPixmap, - XmNlabelType, XmPIXMAP, - NULL); - } - else - { - // Null bitmap: must not use current pixmap - // since it is no longer valid. - XtVaSetValues ((Widget) m_mainWidget, - XmNlabelType, XmSTRING, - XmNlabelPixmap, XmUNSPECIFIED_PIXMAP, - XmNlabelInsensitivePixmap, XmUNSPECIFIED_PIXMAP, - XmNarmPixmap, XmUNSPECIFIED_PIXMAP, - NULL); - } -} - -void wxBitmapButton::ChangeBackgroundColour() -{ - DoChangeBackgroundColour(m_mainWidget, m_backgroundColour, TRUE); - - // Must reset the bitmaps since the colours have changed. - DoSetBitmap(); -} diff --git a/src/motif/brush.cpp b/src/motif/brush.cpp deleted file mode 100644 index 1b8069646b..0000000000 --- a/src/motif/brush.cpp +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: wxBrush -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/brush.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif - -wxBrushRefData::wxBrushRefData() -{ - m_style = wxSOLID; -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -} - -wxBrushRefData::~wxBrushRefData() -{ -} - -// Brushes -wxBrush::wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::~wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->RemoveBrush(this); -} - -wxBrush::wxBrush(const wxColour& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_stipple = stipple; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -void wxBrush::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxBrush::SetColour(const wxColour& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_BRUSHDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxBrush::SetStyle(int Style) -{ - Unshare(); - - M_BRUSHDATA->m_style = Style; - - RealizeResource(); -} - -void wxBrush::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_BRUSHDATA->m_stipple = Stipple; - - RealizeResource(); -} - -bool wxBrush::RealizeResource() -{ - // Nothing more to do - return TRUE; -} - diff --git a/src/motif/button.cpp b/src/motif/button.cpp deleted file mode 100644 index 209c03de98..0000000000 --- a/src/motif/button.cpp +++ /dev/null @@ -1,154 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: wxButton -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" -#include "wx/utils.h" - -#include -#include - -#include "wx/motif/private.h" - -void wxButtonCallback (Widget w, XtPointer clientData, XtPointer ptr); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -// Button - -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - m_windowFont = parent->GetFont(); - - parent->AddChild((wxButton *)this); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - wxString label1(wxStripMenuCodes(label)); - - XmString text = XmStringCreateSimple ((char*) (const char*) label1); - Widget parentWidget = (Widget) parent->GetClientWidget(); - - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget)); - - /* - * Patch Note (important) - * There is no major reason to put a defaultButtonThickness here. - * Not requesting it give the ability to put wxButton with a spacing - * as small as requested. However, if some button become a DefaultButton, - * other buttons are no more aligned -- This is why we set - * defaultButtonThickness of ALL buttons belonging to the same wxPanel, - * in the ::SetDefaultButton method. - */ - m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("button", - xmPushButtonWidgetClass, - parentWidget, - XmNfontList, fontList, - XmNlabelString, text, - // XmNdefaultButtonShadowThickness, 1, // See comment for wxButton::SetDefault - NULL); - - XmStringFree (text); - - XtAddCallback ((Widget) m_mainWidget, XmNactivateCallback, (XtCallbackProc) wxButtonCallback, - (XtPointer) this); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -void wxButton::SetDefault() -{ - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - parent->SetDefaultItem(this); - - // We initially do not set XmNdefaultShadowThickness, to have small buttons. - // Unfortunately, buttons are now mis-aligned. We try to correct this - // now -- setting this ressource to 1 for each button in the same row. - // Because it's very hard to find wxButton in the same row, - // correction is straighforward: we set resource for all wxButton - // in this parent (but not sub panels) - for (wxNode * node = parent->GetChildren().First (); node; node = node->Next ()) - { - wxButton *item = (wxButton *) node->Data (); - if (item->IsKindOf(CLASSINFO(wxButton))) - { - bool managed = XtIsManaged((Widget) item->GetMainWidget()); - if (managed) - XtUnmanageChild ((Widget) item->GetMainWidget()); - - XtVaSetValues ((Widget) item->GetMainWidget(), - XmNdefaultButtonShadowThickness, 1, - NULL); - - if (managed) - XtManageChild ((Widget) item->GetMainWidget()); - } - } // while - - // XtVaSetValues((Widget)handle, XmNshowAsDefault, 1, NULL); - XtVaSetValues ((Widget) parent->GetMainWidget(), XmNdefaultButton, (Widget) GetMainWidget(), NULL); -} - -void wxButton::Command (wxCommandEvent & event) -{ - ProcessCommand (event); -} - -void wxButtonCallback (Widget w, XtPointer clientData, XtPointer WXUNUSED(ptr)) -{ - if (!wxGetWindowFromTable(w)) - // Widget has been deleted! - return; - - wxButton *item = (wxButton *) clientData; - wxCommandEvent event (wxEVT_COMMAND_BUTTON_CLICKED, item->GetId()); - event.SetEventObject(item); - item->ProcessCommand (event); -} - -void wxButton::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxButton::ChangeBackgroundColour() -{ - DoChangeBackgroundColour(m_mainWidget, m_backgroundColour, TRUE); -} - -void wxButton::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - diff --git a/src/motif/cdiag.xbm b/src/motif/cdiag.xbm deleted file mode 100644 index 15dc7ba86d..0000000000 --- a/src/motif/cdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cdiag_width 16 -#define cdiag_height 16 -static char cdiag_bits[] = { - 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x18, 0x24, 0x24, - 0x42, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, - 0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x81, 0x81}; diff --git a/src/motif/checkbox.cpp b/src/motif/checkbox.cpp deleted file mode 100644 index 0a5027d046..0000000000 --- a/src/motif/checkbox.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: wxCheckBox -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" -#include "wx/utils.h" - -#include -#include -#include -#include - -#include "wx/motif/private.h" - -void wxCheckBoxCallback (Widget w, XtPointer clientData, - XtPointer ptr); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - m_windowFont = parent->GetFont(); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - char* label1 = (label.IsNull() ? "" : (char*) (const char*) label); - - XmString text = XmStringCreateSimple (label1); - Widget parentWidget = (Widget) parent->GetClientWidget(); - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget)); - - m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("toggle", - xmToggleButtonWidgetClass, parentWidget, - XmNfontList, fontList, - XmNlabelString, text, - NULL); - XmStringFree (text); - - XtAddCallback ((Widget) m_mainWidget, XmNvalueChangedCallback, (XtCallbackProc) wxCheckBoxCallback, - (XtPointer) this); - - XmToggleButtonSetState ((Widget) m_mainWidget, FALSE, TRUE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - return TRUE; -} - -void wxCheckBox::SetValue(bool val) -{ - m_inSetValue = TRUE; - XmToggleButtonSetState ((Widget) m_mainWidget, (Boolean) val, TRUE); - m_inSetValue = FALSE; -} - -bool wxCheckBox::GetValue() const -{ - return (XmToggleButtonGetState ((Widget) m_mainWidget) != 0); -} - -void wxCheckBox::Command (wxCommandEvent & event) -{ - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -// Bitmap checkbox -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: Create the bitmap checkbox - - return FALSE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap& bitmap) -{ - // TODO -} - -void wxBitmapCheckBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxBitmapCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxBitmapCheckBox::GetValue() const -{ - // TODOD - return FALSE; -} - -void wxCheckBoxCallback (Widget w, XtPointer clientData, - XtPointer ptr) -{ - wxCheckBox *item = (wxCheckBox *) clientData; - - if (item->InSetValue()) - return; - - wxCommandEvent event (wxEVT_COMMAND_CHECKBOX_CLICKED, item->GetId()); - event.SetInt((int) item->GetValue ()); - event.SetEventObject(item); - item->ProcessCommand (event); -} - -void wxCheckBox::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxCheckBox::ChangeBackgroundColour() -{ - wxComputeColours (XtDisplay((Widget) m_mainWidget), & m_backgroundColour, - (wxColour*) NULL); - - XtVaSetValues ((Widget) m_mainWidget, - XmNbackground, g_itemColors[wxBACK_INDEX].pixel, - XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel, - XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel, - XmNforeground, g_itemColors[wxFORE_INDEX].pixel, - NULL); - - int selectPixel = wxBLACK->AllocColour(wxGetDisplay()); - - // Better to have the checkbox selection in black, or it's - // hard to determine what state it is in. - XtVaSetValues ((Widget) m_mainWidget, - // XmNselectColor, g_itemColors[wxSELE_INDEX].pixel, - XmNselectColor, selectPixel, - NULL); -} - -void wxCheckBox::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} diff --git a/src/motif/checklst.cpp b/src/motif/checklst.cpp deleted file mode 100644 index bbd6915e8e..0000000000 --- a/src/motif/checklst.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: implementation of wxCheckListBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -#include "wx/checklst.h" - -// ============================================================================ -// implementation -// ============================================================================ - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox) -#endif - -// ---------------------------------------------------------------------------- -// implementation of wxCheckListBox class -// ---------------------------------------------------------------------------- - -// define event table -// ------------------ -BEGIN_EVENT_TABLE(wxCheckListBox, wxListBox) -END_EVENT_TABLE() - -// control creation -// ---------------- - -// def ctor: use Create() to really create the control -wxCheckListBox::wxCheckListBox() : wxListBox() -{ -} - -// ctor which creates the associated control -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - int nStrings, const wxString choices[], - long style, const wxValidator& val, - const wxString& name) - : wxListBox() -{ - // TODO: you'll probably need a separate Create instead of using - // the wxListBox one as here. - Create(parent, id, pos, size, nStrings, choices, style|wxLB_OWNERDRAW, val, name); -} - -// check items -// ----------- - -bool wxCheckListBox::IsChecked(size_t uiIndex) const -{ - // TODO - return FALSE; -} - -void wxCheckListBox::Check(size_t uiIndex, bool bCheck) -{ - // TODO -} - - diff --git a/src/motif/choice.cpp b/src/motif/choice.cpp deleted file mode 100644 index b950c67ef4..0000000000 --- a/src/motif/choice.cpp +++ /dev/null @@ -1,479 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/choice.h" -#include "wx/utils.h" - -#include -#include -#include -#include - -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -void wxChoiceCallback (Widget w, XtPointer clientData, - XtPointer ptr); - -wxChoice::wxChoice() -{ - m_noStrings = 0; - m_buttonWidget = (WXWidget) 0; - m_menuWidget = (WXWidget) 0; - m_widgetList = (WXWidget*) 0; - m_formWidget = (WXWidget) 0; -} - -bool wxChoice::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = 0; // Starts off with none, incremented in Append - m_windowStyle = style; - m_buttonWidget = (WXWidget) 0; - m_menuWidget = (WXWidget) 0; - m_widgetList = (WXWidget*) 0; - m_formWidget = (WXWidget) 0; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - m_windowFont = parent->GetFont(); - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - m_formWidget = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) name, - xmRowColumnWidgetClass, parentWidget, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - XmNpacking, XmPACK_TIGHT, - XmNorientation, XmHORIZONTAL, - NULL); - - XtVaSetValues ((Widget) m_formWidget, XmNspacing, 0, NULL); - - /* - * Create the popup menu - */ - m_menuWidget = (WXWidget) XmCreatePulldownMenu ((Widget) m_formWidget, "choiceMenu", NULL, 0); - - // int i; - if (n > 0) - { - int i; - for (i = 0; i < n; i++) - Append (choices[i]); - } - - /* - * Create button - */ - Arg args[10]; - Cardinal argcnt = 0; - - XtSetArg (args[argcnt], XmNsubMenuId, (Widget) m_menuWidget); - argcnt++; - XtSetArg (args[argcnt], XmNmarginWidth, 0); - argcnt++; - XtSetArg (args[argcnt], XmNmarginHeight, 0); - argcnt++; - XtSetArg (args[argcnt], XmNpacking, XmPACK_TIGHT); - argcnt++; - m_buttonWidget = (WXWidget) XmCreateOptionMenu ((Widget) m_formWidget, "choiceButton", args, argcnt); - - m_mainWidget = m_buttonWidget; - - XtManageChild ((Widget) m_buttonWidget); - - // New code from Roland Haenel (roland_haenel@ac.cybercity.de) - // Some time ago, I reported a problem with wxChoice-items under - // Linux and Motif 2.0 (they caused sporadic GPFs). Now it seems - // that I have found the code responsible for this behaviour. -#if XmVersion >= 1002 -#if XmVersion < 2000 - Widget optionLabel = XmOptionLabelGadget ((Widget) m_buttonWidget); - // JACS, 24/1/99: this seems to cause a malloc crash later on, e.g. - // in controls sample. - // XtUnmanageChild (optionLabel); -#endif -#endif - - XtVaSetValues((Widget) m_formWidget, XmNresizePolicy, XmRESIZE_NONE, NULL); - - ChangeFont(FALSE); - - AttachWidget (parent, m_buttonWidget, m_formWidget, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -wxChoice::~wxChoice() -{ - // For some reason destroying the menuWidget - // can cause crashes on some machines. It will - // be deleted implicitly by deleting the parent form - // anyway. - // XtDestroyWidget (menuWidget); - if (m_widgetList) - delete[] m_widgetList; - - if (GetMainWidget()) - { - DetachWidget(GetMainWidget()); // Removes event handlers - DetachWidget(m_formWidget); - - XtDestroyWidget((Widget) m_formWidget); - m_formWidget = (WXWidget) 0; - - // Presumably the other widgets have been deleted now, via the form - m_mainWidget = (WXWidget) 0; - m_buttonWidget = (WXWidget) 0; - } -} - -void wxChoice::Append(const wxString& item) -{ - wxStripMenuCodes ((char *)(const char *)item, wxBuffer); - Widget w = XtVaCreateManagedWidget (wxBuffer, -#if USE_GADGETS - xmPushButtonGadgetClass, (Widget) m_menuWidget, -#else - xmPushButtonWidgetClass, (Widget) m_menuWidget, -#endif - NULL); - - DoChangeBackgroundColour((WXWidget) w, m_backgroundColour); - - if (m_windowFont.Ok()) - XtVaSetValues (w, - XmNfontList, (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay((Widget) m_formWidget)), - NULL); - - WXWidget *new_widgetList = new WXWidget[m_noStrings + 1]; - int i; - if (m_widgetList) - for (i = 0; i < m_noStrings; i++) - new_widgetList[i] = m_widgetList[i]; - - new_widgetList[m_noStrings] = (WXWidget) w; - - if (m_widgetList) - delete[] m_widgetList; - m_widgetList = new_widgetList; - - char mnem = wxFindMnemonic ((char*) (const char*) item); - if (mnem != 0) - XtVaSetValues (w, XmNmnemonic, mnem, NULL); - - XtAddCallback (w, XmNactivateCallback, (XtCallbackProc) wxChoiceCallback, (XtPointer) this); - - if (m_noStrings == 0 && m_buttonWidget) - { - XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, w, NULL); - Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget); - XmString text = XmStringCreateSimple ((char*) (const char*) item); - XtVaSetValues (label, - XmNlabelString, text, - NULL); - XmStringFree (text); - } - wxNode *node = m_stringList.Add (item); - XtVaSetValues (w, XmNuserData, node->Data (), NULL); - - m_noStrings ++; -} - -void wxChoice::Delete(int WXUNUSED(n)) -{ - wxFAIL_MSG( "Sorry, wxChoice::Delete isn't implemented yet. Maybe you'd like to volunteer? :-)" ); - - // What should we do -- remove the callback for this button widget, - // delete the m_stringList entry, delete the button widget, construct a new widget list - // (see Append) - - // TODO - m_noStrings --; -} - -void wxChoice::Clear() -{ - m_stringList.Clear (); - int i; - for (i = 0; i < m_noStrings; i++) - { - XtUnmanageChild ((Widget) m_widgetList[i]); - XtDestroyWidget ((Widget) m_widgetList[i]); - } - if (m_noStrings) - delete[] m_widgetList; - m_widgetList = (WXWidget*) NULL; - if (m_buttonWidget) - XtVaSetValues ((Widget) m_buttonWidget, XmNmenuHistory, (Widget) NULL, NULL); - m_noStrings = 0; -} - -int wxChoice::GetSelection() const -{ - XmString text; - char *s; - Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget); - XtVaGetValues (label, - XmNlabelString, &text, - NULL); - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - int i = 0; - for (wxNode * node = m_stringList.First (); node; node = node->Next ()) - { - char *s1 = (char *) node->Data (); - if (s1 == s || strcmp (s1, s) == 0) - { - XmStringFree(text) ; - XtFree (s); - return i; - } - else - i++; - } // for() - - XmStringFree(text) ; - XtFree (s); - return -1; - } - XmStringFree(text) ; - return -1; -} - -void wxChoice::SetSelection(int n) -{ - m_inSetValue = TRUE; - - wxNode *node = m_stringList.Nth (n); - if (node) - { - Dimension selectionWidth, selectionHeight; - - char *s = (char *) node->Data (); - XmString text = XmStringCreateSimple (s); - XtVaGetValues ((Widget) m_widgetList[n], XmNwidth, &selectionWidth, XmNheight, &selectionHeight, NULL); - Widget label = XmOptionButtonGadget ((Widget) m_buttonWidget); - XtVaSetValues (label, - XmNlabelString, text, - NULL); - XmStringFree (text); - XtVaSetValues ((Widget) m_buttonWidget, - XmNwidth, selectionWidth, XmNheight, selectionHeight, - XmNmenuHistory, (Widget) m_widgetList[n], NULL); - } - m_inSetValue = FALSE; -} - -int wxChoice::FindString(const wxString& s) const -{ - int i = 0; - for (wxNode * node = m_stringList.First (); node; node = node->Next ()) - { - char *s1 = (char *) node->Data (); - if (s == s1) - { - return i; - } - else - i++; - } - return -1; -} - -wxString wxChoice::GetString(int n) const -{ - wxNode *node = m_stringList.Nth (n); - if (node) - return wxString((char *) node->Data ()); - else - return wxEmptyString; -} - -void wxChoice::SetColumns(int n) -{ - if (n<1) n = 1 ; - - short numColumns = n ; - Arg args[3]; - - XtSetArg(args[0], XmNnumColumns, numColumns); - XtSetArg(args[1], XmNpacking, XmPACK_COLUMN); - XtSetValues((Widget) m_menuWidget,args,2) ; -} - -int wxChoice::GetColumns(void) const -{ - short numColumns ; - - XtVaGetValues((Widget) m_menuWidget,XmNnumColumns,&numColumns,NULL) ; - return numColumns ; -} - -void wxChoice::SetFocus() -{ - XmProcessTraversal(XtParent((Widget)m_mainWidget), XmTRAVERSE_CURRENT); -} - -void wxChoice::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - XtVaSetValues((Widget) m_formWidget, XmNresizePolicy, XmRESIZE_ANY, NULL); - bool managed = XtIsManaged((Widget) m_formWidget); - - if (managed) - XtUnmanageChild ((Widget) m_formWidget); - - int actualWidth = width, actualHeight = height; - - if (width > -1) - { - int i; - for (i = 0; i < m_noStrings; i++) - XtVaSetValues ((Widget) m_widgetList[i], XmNwidth, actualWidth, NULL); - XtVaSetValues ((Widget) m_buttonWidget, XmNwidth, actualWidth, - NULL); - } - if (height > -1) - { - int i; - for (i = 0; i < m_noStrings; i++) - XtVaSetValues ((Widget) m_widgetList[i], XmNheight, actualHeight, NULL); - XtVaSetValues ((Widget) m_buttonWidget, XmNheight, actualHeight, - NULL); - } - - if (managed) - XtManageChild ((Widget) m_formWidget); - XtVaSetValues((Widget) m_formWidget, XmNresizePolicy, XmRESIZE_NONE, NULL); - - wxControl::DoSetSize (x, y, width, height, sizeFlags); -} - -wxString wxChoice::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return wxString(this->GetString (sel)); - else - return wxEmptyString; -} - -bool wxChoice::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxChoice::Command(wxCommandEvent & event) -{ - SetSelection (event.GetInt()); - ProcessCommand (event); -} - -void wxChoiceCallback (Widget w, XtPointer clientData, XtPointer WXUNUSED(ptr)) -{ - wxChoice *item = (wxChoice *) clientData; - if (item) - { - if (item->InSetValue()) - return; - - char *s = NULL; - XtVaGetValues (w, XmNuserData, &s, NULL); - if (s) - { - wxCommandEvent event (wxEVT_COMMAND_CHOICE_SELECTED, item->GetId()); - event.SetEventObject(item); - event.m_commandInt = item->FindString (s); - // event.m_commandString = s; - item->ProcessCommand (event); - } - } -} - -void wxChoice::ChangeFont(bool keepOriginalSize) -{ - // Note that this causes the widget to be resized back - // to its original size! We therefore have to set the size - // back again. TODO: a better way in Motif? - if (m_windowFont.Ok()) - { - int width, height, width1, height1; - GetSize(& width, & height); - - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay((Widget) m_mainWidget)); - XtVaSetValues ((Widget) m_mainWidget, XmNfontList, fontList, NULL); - XtVaSetValues ((Widget) m_buttonWidget, XmNfontList, fontList, NULL); - - /* TODO: why does this cause a crash in XtWidgetToApplicationContext? - int i; - for (i = 0; i < m_noStrings; i++) - XtVaSetValues ((Widget) m_widgetList[i], XmNfontList, fontList, NULL); - */ - GetSize(& width1, & height1); - if (keepOriginalSize && (width != width1 || height != height1)) - { - SetSize(-1, -1, width, height); - } - } -} - -void wxChoice::ChangeBackgroundColour() -{ - DoChangeBackgroundColour(m_formWidget, m_backgroundColour); - DoChangeBackgroundColour(m_buttonWidget, m_backgroundColour); - DoChangeBackgroundColour(m_menuWidget, m_backgroundColour); - int i; - for (i = 0; i < m_noStrings; i++) - DoChangeBackgroundColour(m_widgetList[i], m_backgroundColour); -} - -void wxChoice::ChangeForegroundColour() -{ - DoChangeForegroundColour(m_formWidget, m_foregroundColour); - DoChangeForegroundColour(m_buttonWidget, m_foregroundColour); - DoChangeForegroundColour(m_menuWidget, m_foregroundColour); - int i; - for (i = 0; i < m_noStrings; i++) - DoChangeForegroundColour(m_widgetList[i], m_foregroundColour); -} diff --git a/src/motif/clipbrd.cpp b/src/motif/clipbrd.cpp deleted file mode 100644 index 21df675bf2..0000000000 --- a/src/motif/clipbrd.cpp +++ /dev/null @@ -1,527 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: Clipboard functionality -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma implementation "clipbrd.h" -#endif - -#include "wx/app.h" -#include "wx/frame.h" -#include "wx/bitmap.h" -#include "wx/utils.h" -#include "wx/metafile.h" -#include "wx/clipbrd.h" -#include "wx/dataobj.h" - -#include -#include - -#include - -#if !USE_SHARED_LIBRARY -// IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) -// IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject) -#endif - -static bool gs_clipboardIsOpen = FALSE; - -bool wxOpenClipboard() -{ - if (!gs_clipboardIsOpen) - { - gs_clipboardIsOpen = TRUE; - return TRUE; - } - else - return FALSE; -} - -bool wxCloseClipboard() -{ - if (gs_clipboardIsOpen) - { - gs_clipboardIsOpen = FALSE; - return TRUE; - } - else - return FALSE; -} - -bool wxEmptyClipboard() -{ - // No equivalent in Motif - return TRUE; -} - -bool wxClipboardOpen() -{ - return gs_clipboardIsOpen; -} - -bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat) -{ - // Only text is supported. - if (dataFormat != wxDF_TEXT) - return FALSE; - - unsigned long numBytes = 0; - long privateId = 0; - - Window window = (Window) 0; - if (wxTheApp->GetTopWindow()) - window = XtWindow( (Widget) wxTheApp->GetTopWindow()->GetTopWidget() ); - - int success = XmClipboardRetrieve((Display*) wxGetDisplay(), - window, "TEXT", (XtPointer) 0, 0, & numBytes, & privateId) ; - - // Assume only text is supported. If we have anything at all, - // or the clipboard is locked so we're not sure, we say we support it. - if (success == ClipboardNoData) - return FALSE; - else - return TRUE; -} - -bool wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int width, int height) -{ - if (dataFormat != wxDF_TEXT) - return FALSE; - - char* data = (char*) obj; - - XmString text = XmStringCreateSimple ("CLIPBOARD"); - Window window = (Window) 0; - if (wxTheApp->GetTopWindow()) - window = XtWindow( (Widget) wxTheApp->GetTopWindow()->GetTopWidget() ); - - long itemId = 0; - int result = 0; - - while ((result = - XmClipboardStartCopy((Display*) wxGetDisplay(), - window, - text, - XtLastTimestampProcessed((Display*) wxGetDisplay()), - (Widget) 0, - (XmCutPasteProc) 0, - & itemId)) != ClipboardSuccess) - - ; - - XmStringFree (text); - - long dataId = 0; - while ((result = - XmClipboardCopy((Display*) wxGetDisplay(), - window, - itemId, - "TEXT", - (XtPointer) data, - strlen(data) + 1, - 0, - & dataId)) != ClipboardSuccess) - - ; - - while (( result = - XmClipboardEndCopy((Display*) wxGetDisplay(), - window, itemId) ) != ClipboardSuccess) - - ; - - return TRUE; -} - -wxObject *wxGetClipboardData(wxDataFormat dataFormat, long *len) -{ - if (dataFormat != wxDF_TEXT) - return (wxObject*) NULL; - - bool done = FALSE; - long id = 0; - unsigned long numBytes = 0; - int result = 0; - Window window = (Window) 0; - if (wxTheApp->GetTopWindow()) - window = XtWindow( (Widget) wxTheApp->GetTopWindow()->GetTopWidget() ); - - int currentDataSize = 256; - char* data = new char[currentDataSize]; - - while (!done) - { - if (result == ClipboardTruncate) - { - delete[] data; - currentDataSize = 2*currentDataSize; - data = new char[currentDataSize]; - } - result = XmClipboardRetrieve((Display*) wxGetDisplay(), - window, - "TEXT", - (XtPointer) data, - currentDataSize, - &numBytes, - &id); - - switch (result) - { - case ClipboardSuccess: - { - if (len) - *len = strlen(data) + 1; - return (wxObject*) data; - break; - } - case ClipboardTruncate: - case ClipboardLocked: - { - break; - } - default: - case ClipboardNoData: - { - return (wxObject*) NULL; - break; - } - } - - } - - return NULL; -} - -wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat) -{ - // Only wxDF_TEXT supported - if (dataFormat == (wxDataFormat) 0) - return wxDF_TEXT; - else - return (wxDataFormat) 0; -} - -wxDataFormat wxRegisterClipboardFormat(char *formatName) -{ - // Not supported - return (wxDataFormat) 0; -} - -bool wxGetClipboardFormatName(wxDataFormat dataFormat, char *formatName, int maxCount) -{ - // Only wxDF_TEXT supported - if (dataFormat == wxDF_TEXT) - { - strcpy(formatName, "TEXT"); - return TRUE; - } - else - return FALSE; -} - -//----------------------------------------------------------------------------- -// wxClipboard -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboard,wxObject) - -wxClipboard* wxTheClipboard = (wxClipboard*) NULL; - -wxClipboard::wxClipboard() -{ - m_open = FALSE; -} - -wxClipboard::~wxClipboard() -{ - Clear(); -} - -void wxClipboard::Clear() -{ - wxNode* node = m_data.First(); - while (node) - { - wxDataObject* data = (wxDataObject*) node->Data(); - delete data; - node = node->Next(); - } - m_data.Clear(); -} - -bool wxClipboard::Open() -{ - wxCHECK_MSG( !m_open, FALSE, "clipboard already open" ); - - m_open = TRUE; - - return wxOpenClipboard(); -} - -bool wxClipboard::SetData( wxDataObject *data ) -{ - wxCHECK_MSG( data, FALSE, "data is invalid" ); - wxCHECK_MSG( m_open, FALSE, "clipboard not open" ); - - switch (data->GetFormat()) - { - case wxDF_TEXT: - case wxDF_OEMTEXT: - { - wxTextDataObject* textDataObject = (wxTextDataObject*) data; - wxString str(textDataObject->GetText()); - return wxSetClipboardData(data->GetFormat(), (wxObject*) (const char*) str); - break; - } - case wxDF_BITMAP: - case wxDF_DIB: - { - wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data; - wxBitmap bitmap(bitmapDataObject->GetBitmap()); - return wxSetClipboardData(data->GetFormat(), & bitmap); - break; - } - default: - { - return FALSE; - } - } - - return FALSE; -} - -void wxClipboard::Close() -{ - wxCHECK_RET( m_open, "clipboard not open" ); - - m_open = FALSE; - wxCloseClipboard(); -} - -bool wxClipboard::IsSupported( wxDataFormat format) -{ - return wxIsClipboardFormatAvailable(format); -} - -bool wxClipboard::GetData( wxDataObject *data ) -{ - wxCHECK_MSG( m_open, FALSE, "clipboard not open" ); - - switch (data->GetFormat()) - { - case wxDF_TEXT: - case wxDF_OEMTEXT: - { - wxTextDataObject* textDataObject = (wxTextDataObject*) data; - char* s = (char*) wxGetClipboardData(data->GetFormat()); - if (s) - { - textDataObject->SetText(s); - delete[] s; - return TRUE; - } - else - return FALSE; - break; - } - case wxDF_BITMAP: - case wxDF_DIB: - { - wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data; - wxBitmap* bitmap = (wxBitmap*) wxGetClipboardData(data->GetFormat()); - if (bitmap) - { - bitmapDataObject->SetBitmap(* bitmap); - delete bitmap; - return TRUE; - } - else - return FALSE; - break; - } - default: - { - return FALSE; - } - } - return FALSE; -} - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule) - -bool wxClipboardModule::OnInit() -{ - wxTheClipboard = new wxClipboard(); - - return TRUE; -} - -void wxClipboardModule::OnExit() -{ - if (wxTheClipboard) delete wxTheClipboard; - wxTheClipboard = (wxClipboard*) NULL; -} - - -#if 0 - -/* -* Old clipboard implementation by Matthew Flatt -*/ - -wxClipboard *wxTheClipboard = NULL; - -void wxInitClipboard() -{ - if (!wxTheClipboard) - wxTheClipboard = new wxClipboard; -} - -wxClipboard::wxClipboard() -{ - clipOwner = NULL; - cbString = NULL; -} - -wxClipboard::~wxClipboard() -{ - if (clipOwner) - clipOwner->BeingReplaced(); - if (cbString) - delete[] cbString; -} - -static int FormatStringToID(char *str) -{ - if (!strcmp(str, "TEXT")) - return wxDF_TEXT; - - return wxRegisterClipboardFormat(str); -} - -void wxClipboard::SetClipboardClient(wxClipboardClient *client, long time) -{ - bool got_selection; - - if (clipOwner) - clipOwner->BeingReplaced(); - clipOwner = client; - if (cbString) { - delete[] cbString; - cbString = NULL; - } - - if (wxOpenClipboard()) { - char **formats, *data; - int i; - int ftype; - long size; - - formats = clipOwner->formats.ListToArray(FALSE); - for (i = clipOwner->formats.Number(); i--; ) { - ftype = FormatStringToID(formats[i]); - data = clipOwner->GetData(formats[i], &size); - if (!wxSetClipboardData(ftype, (wxObject *)data, size, 1)) { - got_selection = FALSE; - break; - } - } - - if (i < 0) - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } -} - -wxClipboardClient *wxClipboard::GetClipboardClient() -{ - return clipOwner; -} - -void wxClipboard::SetClipboardString(char *str, long time) -{ - bool got_selection; - - if (clipOwner) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } - if (cbString) - delete[] cbString; - - cbString = str; - - if (wxOpenClipboard()) { - if (!wxSetClipboardData(wxDF_TEXT, (wxObject *)str)) - got_selection = FALSE; - else - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - delete[] cbString; - cbString = NULL; - } -} - -char *wxClipboard::GetClipboardString(long time) -{ - char *str; - long length; - - str = GetClipboardData("TEXT", &length, time); - if (!str) { - str = new char[1]; - *str = 0; - } - - return str; -} - -char *wxClipboard::GetClipboardData(char *format, long *length, long time) -{ - if (clipOwner) { - if (clipOwner->formats.Member(format)) - return clipOwner->GetData(format, length); - else - return NULL; - } else if (cbString) { - if (!strcmp(format, "TEXT")) - return copystring(cbString); - else - return NULL; - } else { - if (wxOpenClipboard()) { - receivedString = (char *)wxGetClipboardData(FormatStringToID(format), - length); - wxCloseClipboard(); - } else - receivedString = NULL; - - return receivedString; - } -} -#endif - diff --git a/src/motif/colordlg.cpp b/src/motif/colordlg.cpp deleted file mode 100644 index 9326ffd42b..0000000000 --- a/src/motif/colordlg.cpp +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.cpp -// Purpose: wxColourDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colordlg.h" -#endif - -#include "wx/motif/colordlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) -#endif - -/* - * wxColourDialog - */ - -wxColourDialog::wxColourDialog() -{ - m_dialogParent = NULL; -} - -wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) -{ - Create(parent, data); -} - -bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) -{ - m_dialogParent = parent; - - if (data) - m_colourData = *data; - return TRUE; -} - -int wxColourDialog::ShowModal() -{ - /* TODO: implement dialog - */ - - return wxID_CANCEL; -} - diff --git a/src/motif/colour.cpp b/src/motif/colour.cpp deleted file mode 100644 index cf9f93c796..0000000000 --- a/src/motif/colour.cpp +++ /dev/null @@ -1,210 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: wxColour class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -//// TODO: make wxColour a ref-counted object, -//// so pixel values get shared. - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/colour.h" -#include "wx/app.h" - -#include - -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -#endif - -// Colour - -wxColour::wxColour () -{ - m_isInit = FALSE; - m_red = m_blue = m_green = 0; - m_pixel = -1; -} - -wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; - m_pixel = -1; -} - -wxColour::wxColour (const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; - m_pixel = col.m_pixel; -} - -wxColour& wxColour::operator =(const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; - m_pixel = col.m_pixel; - return *this; -} - -void wxColour::InitFromName(const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_pixel = the_colour->m_pixel; - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } -} - -wxColour::~wxColour () -{ -} - -void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; - m_pixel = -1; -} - -// Allocate a colour, or nearest colour, using the given display. -// If realloc is TRUE, ignore the existing pixel, otherwise just return -// the existing one. -// Returns the old or allocated pixel. - -// TODO: can this handle mono displays? If not, we should have an extra -// flag to specify whether this should be black or white by default. - -int wxColour::AllocColour(WXDisplay* display, bool realloc) -{ - if ((m_pixel != -1) && !realloc) - return m_pixel; - - XColor color; - color.red = (unsigned short) Red (); - color.red |= color.red << 8; - color.green = (unsigned short) Green (); - color.green |= color.green << 8; - color.blue = (unsigned short) Blue (); - color.blue |= color.blue << 8; - - color.flags = DoRed | DoGreen | DoBlue; - - WXColormap cmap = wxTheApp->GetMainColormap(display); - - if (!XAllocColor ((Display*) display, (Colormap) cmap, &color)) - { - m_pixel = wxGetBestMatchingPixel((Display*) display, &color,(Colormap) cmap); - return m_pixel; - } - else - { - m_pixel = (int) color.pixel; - return m_pixel; - } -} - -/*------------------------------------------- -Markus Emmenegger -Find the pixel value with an assigned color closest to the desired color -Used if color cell allocation fails -As the returned pixel value may be in use by another application, -the color might change anytime. -But in many cases, that is still better than always using black. --- -Chris Breeze -Improvements: -1) More efficient calculation of RGB distance of colour cell from -the desired colour. There is no need to take the sqrt of 'dist', and -since we are only interested in the top 8-bits of R, G and B we -can perform integer arithmetic. -2) Attempt to allocate a read-only colour when a close match is found. -A read-only colour will not change. -3) Fall back to the closest match if no read-only colours are available. - - Possible further improvements: - 1) Scan the lookup table and sort the colour cells in order of - increasing - distance from the desired colour. Then attempt to allocate a - read-only - colour starting from the nearest match. - 2) Linear RGB distance is not a particularly good method of colour - matching - (though it is quick). Converting the colour to HLS and then comparing - may give better matching. --------------------------------------------*/ - -int wxGetBestMatchingPixel(Display *display, XColor *desiredColor, Colormap cmap) -{ - if (cmap == (Colormap) NULL) - cmap = (Colormap) wxTheApp->GetMainColormap(display); - - int numPixVals = XDisplayCells(display, DefaultScreen (display)); - int mindist = 256 * 256 * 3; - int bestpixel = (int) BlackPixel (display, DefaultScreen (display)); - int red = desiredColor->red >> 8; - int green = desiredColor->green >> 8; - int blue = desiredColor->blue >> 8; - const int threshold = 2 * 2 * 3; // allow an error of up to 2 in R,G & B - - for (int pixelcount = 0; pixelcount < numPixVals; pixelcount++) - { - XColor matching_color; - matching_color.pixel = pixelcount; - XQueryColor(display,cmap,&matching_color); - - int delta_red = red - (matching_color.red >> 8); - int delta_green = green - (matching_color.green >> 8); - int delta_blue = blue - (matching_color.blue >> 8); - - int dist = delta_red * delta_red + - delta_green * delta_green + - delta_blue * delta_blue; - - if (dist <= threshold) - { - // try to allocate a read-only colour... - if (XAllocColor (display, cmap, &matching_color)) - { - return matching_color.pixel; - } - } - if (dist < mindist) - { - bestpixel = pixelcount; - mindist = dist; - } - } - return bestpixel; -} diff --git a/src/motif/combobox.cpp b/src/motif/combobox.cpp deleted file mode 100644 index 41a12151e5..0000000000 --- a/src/motif/combobox.cpp +++ /dev/null @@ -1,334 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: wxComboBox class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" - -#if wxUSE_COMBOBOX - -#include -#include "xmcombo/xmcombo.h" - -void wxComboBoxCallback (Widget w, XtPointer clientData, - XmComboBoxSelectionCallbackStruct * cbs); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -bool wxComboBox::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - // m_backgroundColour = parent->GetBackgroundColour(); - m_backgroundColour = * wxWHITE; - m_foregroundColour = parent->GetForegroundColour(); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - Widget buttonWidget = XtVaCreateManagedWidget((char*) (const char*) name, - xmComboBoxWidgetClass, parentWidget, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - XmNshowLabel, False, - XmNeditable, ((style & wxCB_READONLY) != wxCB_READONLY), - XmNsorted, ((style & wxCB_SORT) == wxCB_SORT), - XmNstaticList, ((style & wxCB_SIMPLE) == wxCB_SIMPLE), - NULL); - - XtAddCallback (buttonWidget, XmNselectionCallback, (XtCallbackProc) wxComboBoxCallback, - (XtPointer) this); - XtAddCallback (buttonWidget, XmNvalueChangedCallback, (XtCallbackProc) wxComboBoxCallback, - (XtPointer) this); - - int i; - for (i = 0; i < n; i++) - { - XmString str = XmStringCreateLtoR((char*) (const char*) choices[i], XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(buttonWidget, str, 0); - XmStringFree(str); - m_stringList.Add(choices[i]); - } - m_noStrings = n; - - m_mainWidget = (Widget) buttonWidget; - - XtManageChild (buttonWidget); - - SetValue(value); - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -wxComboBox::~wxComboBox() -{ - DetachWidget((Widget) m_mainWidget); // Removes event handlers - XtDestroyWidget((Widget) m_mainWidget); - m_mainWidget = (WXWidget) 0; -} - -void wxComboBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - // Necessary so it doesn't call wxChoice::SetSize - wxWindow::DoSetSize(x, y, width, height, sizeFlags); -} - -wxString wxComboBox::GetValue() const -{ - char *s = XmComboBoxGetString ((Widget) m_mainWidget); - if (s) - { - wxString str(s); - XtFree (s); - return str; - } - else - return wxEmptyString; -} - -void wxComboBox::SetValue(const wxString& value) -{ - m_inSetValue = TRUE; - if (!value.IsNull()) - XmComboBoxSetString ((Widget) m_mainWidget, (char*) (const char*) value); - m_inSetValue = FALSE; -} - -void wxComboBox::Append(const wxString& item) -{ - XmString str = XmStringCreateLtoR((char*) (const char*) item, XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem((Widget) m_mainWidget, str, 0); - m_stringList.Add(item); - XmStringFree(str); - m_noStrings ++; -} - -void wxComboBox::Delete(int n) -{ - XmComboBoxDeletePos((Widget) m_mainWidget, n-1); - wxNode *node = m_stringList.Nth(n); - if (node) - { - delete[] (char *)node->Data(); - delete node; - } - m_noStrings--; -} - -void wxComboBox::Clear() -{ - XmComboBoxDeleteAllItems((Widget) m_mainWidget); - m_stringList.Clear(); -} - -void wxComboBox::SetSelection (int n) -{ - XmComboBoxSelectPos((Widget) m_mainWidget, n+1, False); -} - -int wxComboBox::GetSelection (void) const -{ - int sel = XmComboBoxGetSelectedPos((Widget) m_mainWidget); - if (sel == 0) - return -1; - else - return sel - 1; -} - -wxString wxComboBox::GetString(int n) const -{ - wxNode *node = m_stringList.Nth (n); - if (node) - return wxString((char *) node->Data ()); - else - return wxEmptyString; -} - -wxString wxComboBox::GetStringSelection() const -{ - int sel = GetSelection(); - if (sel == -1) - return wxEmptyString; - else - return GetString(sel); -} - -bool wxComboBox::SetStringSelection(const wxString& sel) -{ - int n = FindString(sel); - if (n == -1) - return FALSE; - else - { - SetSelection(n); - return TRUE; - } -} - -int wxComboBox::FindString(const wxString& s) const -{ - int *pos_list = NULL; - int count = 0; - XmString text = XmStringCreateSimple ((char*) (const char*) s); - bool found = (XmComboBoxGetMatchPos((Widget) m_mainWidget, - text, &pos_list, &count) != 0); - - XmStringFree(text); - - if (found && count > 0) - { - int pos = pos_list[0] - 1; - free(pos_list); - return pos; - } - - return -1; -} - -// Clipboard operations -void wxComboBox::Copy() -{ - XmComboBoxCopy((Widget) m_mainWidget, CurrentTime); -} - -void wxComboBox::Cut() -{ - XmComboBoxCut((Widget) m_mainWidget, CurrentTime); -} - -void wxComboBox::Paste() -{ - XmComboBoxPaste((Widget) m_mainWidget); -} - -void wxComboBox::SetEditable(bool WXUNUSED(editable)) -{ - // TODO -} - -void wxComboBox::SetInsertionPoint(long pos) -{ - XmComboBoxSetInsertionPosition ((Widget) m_mainWidget, (XmTextPosition) pos); -} - -void wxComboBox::SetInsertionPointEnd() -{ - XmTextPosition pos = XmComboBoxGetLastPosition ((Widget) m_mainWidget); - XmComboBoxSetInsertionPosition ((Widget) m_mainWidget, (XmTextPosition) (pos + 1)); -} - -long wxComboBox::GetInsertionPoint() const -{ - return (long) XmComboBoxGetInsertionPosition ((Widget) m_mainWidget); -} - -long wxComboBox::GetLastPosition() const -{ - return (long) XmComboBoxGetLastPosition ((Widget) m_mainWidget); -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ - XmComboBoxReplace ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (char*) (const char*) value); -} - -void wxComboBox::Remove(long from, long to) -{ - XmComboBoxSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); - XmComboBoxRemove ((Widget) m_mainWidget); -} - -void wxComboBox::SetSelection(long from, long to) -{ - XmComboBoxSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); -} - -void wxComboBoxCallback (Widget WXUNUSED(w), XtPointer clientData, - XmComboBoxSelectionCallbackStruct * cbs) -{ - wxComboBox *item = (wxComboBox *) clientData; - - switch (cbs->reason) - { - case XmCR_SINGLE_SELECT: - case XmCR_BROWSE_SELECT: - { - wxCommandEvent event (wxEVT_COMMAND_COMBOBOX_SELECTED, item->GetId()); - event.m_commandInt = cbs->index - 1; - // event.m_commandString = item->GetString (event.m_commandInt); - event.m_extraLong = TRUE; - event.SetEventObject(item); - item->ProcessCommand (event); - break; - } - case XmCR_VALUE_CHANGED: - { - wxCommandEvent event (wxEVT_COMMAND_TEXT_UPDATED, item->GetId()); - event.m_commandInt = -1; - // event.m_commandString = item->GetValue(); - event.m_extraLong = TRUE; - event.SetEventObject(item); - item->ProcessCommand (event); - break; - } - default: - break; - } -} - -void wxComboBox::ChangeFont(bool keepOriginalSize) -{ - // Don't use the base class wxChoice's ChangeFont - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxComboBox::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxComboBox::ChangeForegroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -#endif - diff --git a/src/motif/control.cpp b/src/motif/control.cpp deleted file mode 100644 index 090eae88f8..0000000000 --- a/src/motif/control.cpp +++ /dev/null @@ -1,130 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: wxControl class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" -#include "wx/utils.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -BEGIN_EVENT_TABLE(wxControl, wxWindow) -END_EVENT_TABLE() -#endif - -// Item members -wxControl::wxControl() -{ - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - m_callback = 0; - m_inSetValue = FALSE; -} - -wxControl::~wxControl() -{ - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem((wxButton*) NULL); - } -} - -void wxControl::SetLabel(const wxString& label) -{ - Widget widget = (Widget) GetLabelWidget() ; - if (!widget) - return; - - wxStripMenuCodes((char*) (const char*) label, wxBuffer); - - XmString text = XmStringCreateSimple (wxBuffer); - XtVaSetValues (widget, - XmNlabelString, text, - XmNlabelType, XmSTRING, - NULL); - XmStringFree (text); -} - -wxString wxControl::GetLabel() const -{ - Widget widget = (Widget) GetLabelWidget() ; - if (!widget) - return wxEmptyString; - - XmString text; - char *s; - XtVaGetValues (widget, - XmNlabelString, &text, - NULL); - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - wxString str(s); - XtFree (s); - XmStringFree(text); - return str; - } - else - { - // XmStringFree(text); - return wxEmptyString; - } -} - -void wxControl::ProcessCommand (wxCommandEvent & event) -{ - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - } - else - { - GetEventHandler()->OnCommand(*this, event); - } -} - -void wxControl::Centre (int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; - - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); - - new_x = x; - new_y = y; - - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); - - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); - - SetSize (new_x, new_y, width, height); -} - diff --git a/src/motif/cross.xbm b/src/motif/cross.xbm deleted file mode 100644 index b07cbe7fcd..0000000000 --- a/src/motif/cross.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cross_width 15 -#define cross_height 15 -static char cross_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/motif/cursor.cpp b/src/motif/cursor.cpp deleted file mode 100644 index c1027a775e..0000000000 --- a/src/motif/cursor.cpp +++ /dev/null @@ -1,436 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: wxCursor class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" -#include "wx/gdicmn.h" -#include "wx/icon.h" -#include "wx/app.h" -#include "wx/utils.h" - -#include -#include - -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -IMPLEMENT_DYNAMIC_CLASS(wxXCursor, wxObject) -#endif - -wxCursorRefData::wxCursorRefData() -{ - m_width = 32; m_height = 32; - m_cursorId = wxCURSOR_NONE; -} - -wxCursorRefData::~wxCursorRefData() -{ - wxNode* node = m_cursors.First(); - while (node) - { - wxXCursor* c = (wxXCursor*) node->Data(); - // TODO: how to delete cursor? - // XDestroyCursor((Display*) c->m_display, (Cursor) c->m_cursor); // ?? - delete c; - node = node->Next(); - } -} - -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor(const char bits[], int width, int height, - int hotSpotX, int hotSpotY, const char maskBits[]) -{ - m_refData = new wxCursorRefData; - - Display *dpy = (Display*) wxGetDisplay(); - int screen_num = DefaultScreen (dpy); - - Pixmap pixmap = XCreatePixmapFromBitmapData (dpy, - RootWindow (dpy, DefaultScreen(dpy)), - (char*) bits, width, height, - 1 , 0 , 1); - - Pixmap mask_pixmap = None; - if (maskBits != NULL) - { - mask_pixmap = XCreatePixmapFromBitmapData (dpy, - RootWindow (dpy, DefaultScreen(dpy)), - (char*) maskBits, width, height, - 1 , 0 , 1); - } - - XColor foreground_color; - XColor background_color; - foreground_color.pixel = BlackPixel(dpy, screen_num); - background_color.pixel = WhitePixel(dpy, screen_num); - Colormap cmap = (Colormap) wxTheApp->GetMainColormap((WXDisplay*) dpy); - XQueryColor(dpy, cmap, &foreground_color); - XQueryColor(dpy, cmap, &background_color); - - Cursor cursor = XCreatePixmapCursor (dpy, - pixmap, - mask_pixmap, - &foreground_color, - &background_color, - hotSpotX , - hotSpotY); - - XFreePixmap( dpy, pixmap ); - if (mask_pixmap != None) - { - XFreePixmap( dpy, mask_pixmap ); - } - - if (cursor) - { - wxXCursor *c = new wxXCursor; - - c->m_cursor = (WXCursor) cursor; - c->m_display = (WXDisplay*) dpy; - M_CURSORDATA->m_cursors.Append(c); - M_CURSORDATA->m_ok = TRUE; - } - else - { - M_CURSORDATA->m_ok = TRUE; - } -} - -wxCursor::wxCursor(const wxString& name, long flags, int hotSpotX, int hotSpotY) -{ - // Must be an XBM file - if (flags != wxBITMAP_TYPE_XBM) - return; - - m_refData = new wxCursorRefData; - - int hotX = -1, hotY = -1; - unsigned int w, h; - Pixmap pixmap; - - Display *dpy = (Display*) wxGetDisplay(); - int screen_num = DefaultScreen (dpy); - - int value = XReadBitmapFile (dpy, RootWindow (dpy, DefaultScreen (dpy)), - (char*) (const char*) name, &w, &h, &pixmap, &hotX, &hotY); - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = 1; - - if ((value == BitmapFileInvalid) || - (value == BitmapOpenFailed) || - (value == BitmapNoMemory)) - { - } - else - { - XColor foreground_color; - XColor background_color; - foreground_color.pixel = BlackPixel(dpy, screen_num); - background_color.pixel = WhitePixel(dpy, screen_num); - Colormap cmap = (Colormap) wxTheApp->GetMainColormap((WXDisplay*) dpy); - XQueryColor(dpy, cmap, &foreground_color); - XQueryColor(dpy, cmap, &background_color); - - // TODO: how do we determine whether hotX, hotY were read correctly? - if (hotX < 0 || hotY < 0) - { - hotX = hotSpotX; - hotY = hotSpotY; - } - if (hotX < 0 || hotY < 0) - { - hotX = 0; - hotY = 0; - } - - Pixmap mask_pixmap = None; - Cursor cursor = XCreatePixmapCursor (dpy, - pixmap, - mask_pixmap, - &foreground_color, - &background_color, - hotX, - hotY); - - XFreePixmap( dpy, pixmap ); - if (cursor) - { - wxXCursor *c = new wxXCursor; - - c->m_cursor = (WXCursor) cursor; - c->m_display = (WXDisplay*) dpy; - M_CURSORDATA->m_cursors.Append(c); - M_CURSORDATA->m_ok = TRUE; - } - } - -} - -// Cursors by stock number -wxCursor::wxCursor(wxStockCursor id) -{ - m_refData = new wxCursorRefData; - M_CURSORDATA->m_cursorId = id; - M_CURSORDATA->m_ok = TRUE; - - WXDisplay* display = wxGetDisplay(); - if (!display) - return; - - WXCursor cursor = GetXCursor(display); - if (cursor) - { - wxXCursor* c = new wxXCursor; - c->m_cursor = cursor; - c->m_display = wxGetDisplay(); - M_CURSORDATA->m_cursors.Append(c); - M_CURSORDATA->m_ok = TRUE; - } -} - -wxCursor::~wxCursor() -{ -} - -// Motif-specific: create/get a cursor for the current display -WXCursor wxCursor::GetXCursor(WXDisplay* display) -{ - if (!M_CURSORDATA) - return (WXCursor) 0; - wxNode* node = M_CURSORDATA->m_cursors.First(); - while (node) - { - wxXCursor* c = (wxXCursor*) node->Data(); - if (c->m_display == display) - return c->m_cursor; - node = node->Next(); - } - - // No cursor for this display, so let's see if we're an id-type cursor. - - if (M_CURSORDATA->m_cursorId != wxCURSOR_NONE) - { - WXCursor cursor = MakeCursor(display, M_CURSORDATA->m_cursorId); - if (cursor) - { - wxXCursor* c = new wxXCursor; - c->m_cursor = cursor; - c->m_display = display; - M_CURSORDATA->m_cursors.Append(c); - return cursor; - } - else - return (WXCursor) 0; - } - - // Not an id-type cursor, so we don't know how to create it. - return (WXCursor) 0; -} - -// Make a cursor from standard id -WXCursor wxCursor::MakeCursor(WXDisplay* display, wxStockCursor id) -{ - Display* dpy = (Display*) display; - Cursor cursor = (Cursor) 0; - - switch (id) - { - case wxCURSOR_WAIT: - { - cursor = XCreateFontCursor (dpy, XC_watch); - break; - } - case wxCURSOR_CROSS: - { - cursor = XCreateFontCursor (dpy, XC_crosshair); - break; - } - case wxCURSOR_CHAR: - { - // Nothing - break; - } - case wxCURSOR_HAND: - { - cursor = XCreateFontCursor (dpy, XC_hand1); - break; - } - case wxCURSOR_BULLSEYE: - { - cursor = XCreateFontCursor (dpy, XC_target); - break; - } - case wxCURSOR_PENCIL: - { - cursor = XCreateFontCursor (dpy, XC_pencil); - break; - } - case wxCURSOR_MAGNIFIER: - { - cursor = XCreateFontCursor (dpy, XC_sizing); - break; - } - case wxCURSOR_IBEAM: - { - cursor = XCreateFontCursor (dpy, XC_xterm); - break; - } - case wxCURSOR_NO_ENTRY: - { - cursor = XCreateFontCursor (dpy, XC_pirate); - break; - } - case wxCURSOR_LEFT_BUTTON: - { - cursor = XCreateFontCursor (dpy, XC_leftbutton); - break; - } - case wxCURSOR_RIGHT_BUTTON: - { - cursor = XCreateFontCursor (dpy, XC_rightbutton); - break; - } - case wxCURSOR_MIDDLE_BUTTON: - { - cursor = XCreateFontCursor (dpy, XC_middlebutton); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - cursor = XCreateFontCursor (dpy, XC_question_arrow); - break; - } - case wxCURSOR_SIZING: - { - cursor = XCreateFontCursor (dpy, XC_sizing); - break; - } - case wxCURSOR_WATCH: - { - cursor = XCreateFontCursor (dpy, XC_watch); - break; - } - case wxCURSOR_SPRAYCAN: - { - cursor = XCreateFontCursor (dpy, XC_spraycan); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - cursor = XCreateFontCursor (dpy, XC_spraycan); - break; - } - case wxCURSOR_SIZENWSE: - case wxCURSOR_SIZENESW: - { - // Not available in X - cursor = XCreateFontCursor (dpy, XC_crosshair); - break; - } - case wxCURSOR_SIZEWE: - { - cursor = XCreateFontCursor (dpy, XC_sb_h_double_arrow); - break; - } - case wxCURSOR_SIZENS: - { - cursor = XCreateFontCursor (dpy, XC_sb_v_double_arrow); - break; - } - case wxCURSOR_POINT_LEFT: - { - cursor = XCreateFontCursor (dpy, XC_sb_left_arrow); - break; - } - case wxCURSOR_POINT_RIGHT: - { - cursor = XCreateFontCursor (dpy, XC_sb_right_arrow); - break; - } - // (JD Huggins) added more stock cursors for X - // X-only cursors BEGIN - case wxCURSOR_CROSS_REVERSE: - { - cursor = XCreateFontCursor(dpy, XC_cross_reverse); - break; - } - case wxCURSOR_DOUBLE_ARROW: - { - cursor = XCreateFontCursor(dpy, XC_double_arrow); - break; - } - case wxCURSOR_BASED_ARROW_UP: - { - cursor = XCreateFontCursor(dpy, XC_based_arrow_up); - break; - } - case wxCURSOR_BASED_ARROW_DOWN: - { - cursor = XCreateFontCursor(dpy, XC_based_arrow_down); - break; - } - default: - case wxCURSOR_ARROW: - { - cursor = XCreateFontCursor (dpy, XC_top_left_arrow); - break; - } - case wxCURSOR_BLANK: - { - GC gc; - XGCValues gcv; - Pixmap empty_pixmap; - XColor blank_color; - - empty_pixmap = XCreatePixmap (dpy, RootWindow (dpy, DefaultScreen (dpy)), - 16, 16, 1); - gcv.function = GXxor; - gc = XCreateGC (dpy, - empty_pixmap, - GCFunction, - &gcv); - XCopyArea (dpy, - empty_pixmap, - empty_pixmap, - gc, - 0, 0, - 16, 16, - 0, 0); - XFreeGC (dpy, gc); - cursor = XCreatePixmapCursor (dpy, - empty_pixmap, - empty_pixmap, - &blank_color, - &blank_color, - 8, 8); - - break; - } - } - return (WXCursor) cursor; -} - -// Global cursor setting -void wxSetCursor(const wxCursor& WXUNUSED(cursor)) -{ - // Nothing to do for Motif (no global cursor) -} - - diff --git a/src/motif/data.cpp b/src/motif/data.cpp deleted file mode 100644 index 52afe1decb..0000000000 --- a/src/motif/data.cpp +++ /dev/null @@ -1,150 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: Various data -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wx.h" -#include "wx/dcps.h" - -#define _MAXPATHLEN 500 - -// Useful buffer, initialized in CommonInit -char *wxBuffer = NULL; - -// Windows List -wxWindowList wxTopLevelWindows; - -// List of windows pending deletion -wxList wxPendingDelete; - -#if wxUSE_THREADS -// List of events pending propagation -wxList *wxPendingEvents = NULL; -wxCriticalSection *wxPendingEventsLocker = NULL; -#endif - -int wxPageNumber; - -// GDI Object Lists -wxBrushList *wxTheBrushList = NULL; -wxPenList *wxThePenList = NULL; -wxFontList *wxTheFontList = NULL; -wxBitmapList *wxTheBitmapList = NULL; - -wxColourDatabase *wxTheColourDatabase = NULL; - -// Stock objects -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; -wxPen *wxRED_PEN; - -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = NULL; -wxCursor *wxHOURGLASS_CURSOR = NULL; -wxCursor *wxCROSS_CURSOR = NULL; - -// 'Null' objects -wxAcceleratorTable wxNullAcceleratorTable; -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxPalette wxNullPalette; -wxFont wxNullFont; -wxColour wxNullColour; - -// Default window names -const char *wxButtonNameStr = "button"; -const char *wxCanvasNameStr = "canvas"; -const char *wxCheckBoxNameStr = "check"; -const char *wxChoiceNameStr = "choice"; -const char *wxComboBoxNameStr = "comboBox"; -const char *wxDialogNameStr = "dialog"; -const char *wxFrameNameStr = "frame"; -const char *wxGaugeNameStr = "gauge"; -const char *wxStaticBoxNameStr = "groupBox"; -const char *wxListBoxNameStr = "listBox"; -const char *wxStaticTextNameStr = "message"; -const char *wxStaticBitmapNameStr = "message"; -const char *wxMultiTextNameStr = "multitext"; -const char *wxPanelNameStr = "panel"; -const char *wxRadioBoxNameStr = "radioBox"; -const char *wxRadioButtonNameStr = "radioButton"; -const char *wxBitmapRadioButtonNameStr = "radioButton"; -const char *wxScrollBarNameStr = "scrollBar"; -const char *wxSliderNameStr = "slider"; -const char *wxStaticNameStr = "static"; -const char *wxTextCtrlWindowNameStr = "textWindow"; -const char *wxTextCtrlNameStr = "text"; -const char *wxVirtListBoxNameStr = "virtListBox"; -const char *wxButtonBarNameStr = "buttonbar"; -const char *wxEnhDialogNameStr = "Shell"; -const char *wxToolBarNameStr = "toolbar"; -const char *wxStatusLineNameStr = "status_line"; -const char *wxEmptyString = ""; -const char *wxGetTextFromUserPromptStr = "Input Text"; -const char *wxMessageBoxCaptionStr = "Message"; -const char *wxFileSelectorPromptStr = "Select a file"; -const char *wxFileSelectorDefaultWildcardStr = "*.*"; -const char *wxInternalErrorStr = "wxWindows Internal Error"; -const char *wxFatalErrorStr = "wxWindows Fatal Error"; - -// See wx/utils.h -const char *wxFloatToStringStr = "%.2f"; -const char *wxDoubleToStringStr = "%.2f"; - -#if wxUSE_SHARED_LIBRARY -///// Event tables (also must be in one, statically-linked file for shared libraries) - -// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here -const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } - -const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; -#endif - -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/motif/dataobj.cpp b/src/motif/dataobj.cpp deleted file mode 100644 index 465bc56741..0000000000 --- a/src/motif/dataobj.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dataobj.cpp -// Purpose: wxDataObject class -// Author: Julian Smart -// Id: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dataobj.h" -#endif - -#include "wx/dataobj.h" -#include "wx/app.h" - -//------------------------------------------------------------------------- -// wxDataObject -//------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS( wxDataObject, wxObject ) - -// ---------------------------------------------------------------------------- -// wxTextDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxTextDataObject, wxDataObject ) - -// ---------------------------------------------------------------------------- -// wxFileDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxFileDataObject, wxDataObject ) - -// ---------------------------------------------------------------------------- -// wxBitmapDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxBitmapDataObject, wxDataObject ) - -// ---------------------------------------------------------------------------- -// wxPrivateDataObject -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS( wxPrivateDataObject, wxDataObject ) - -wxPrivateDataObject::wxPrivateDataObject() -{ - m_size = 0; - m_data = (char*) NULL; - m_id = wxTheApp->GetAppName(); -} - -wxPrivateDataObject::~wxPrivateDataObject() -{ - if (m_data) delete[] m_data; -} - -void wxPrivateDataObject::SetData( const char *data, size_t size ) -{ - m_size = size; - - if (m_data) delete[] m_data; - - m_data = new char[size]; - - memcpy( m_data, data, size ); -} - diff --git a/src/motif/dc.cpp b/src/motif/dc.cpp deleted file mode 100644 index ef06e450a4..0000000000 --- a/src/motif/dc.cpp +++ /dev/null @@ -1,259 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: wxDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "dc.h" -#endif - -#include "wx/dc.h" -#include "wx/dcmemory.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -#endif - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -wxDC::wxDC() -{ - m_ok = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_backgroundMode = wxTRANSPARENT; - - m_isInteractive = FALSE; -} - -void wxDC::DoDrawIcon( const wxIcon &icon, long x, long y) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - wxCHECK_RET( icon.Ok(), "invalid icon" ); - - DoDrawBitmap(icon, x, y, TRUE); -} - -void wxDC::DoDrawBitmap( const wxBitmap& bitmap, long x, long y, bool useMask ) -{ - wxCHECK_RET( bitmap.Ok(), "invalid bitmap" ); - - wxMemoryDC memDC; - memDC.SelectObject(bitmap); - -#if 0 - // Not sure if we need this. The mask should leave the masked areas as per - // the original background of this DC. - if (useMask) - { - // There might be transparent areas, so make these the same colour as this - // DC - memDC.SetBackground(* GetBackground()); - memDC.Clear(); - } -#endif // 0 - - Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), &memDC, 0, 0, wxCOPY, useMask); - - memDC.SelectObject(wxNullBitmap); -} - -void wxDC::DoSetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -} - -void wxDC::DestroyClippingRegion() -{ - m_clipping = FALSE; -} - -void wxDC::DoGetSize( int* width, int* height ) const -{ - if ( width ) - *width = m_maxX - m_minX; - if ( height ) - *height = m_maxY - m_minY; -} - -void wxDC::DoGetSizeMM( int* width, int* height ) const -{ - int w, h; - GetSize( &w, &h ); - - if ( width ) - *width = int( double(w) / (m_scaleX*m_mm_to_pix_x) ); - if ( height ) - *height = int( double(h) / (m_scaleY*m_mm_to_pix_y) ); -} - -// Resolution in pixels per logical inch -wxSize wxDC::GetPPI() const -{ - // TODO (should probably be pure virtual) - return wxSize(0, 0); -} - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - } - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - } -} - -void wxDC::SetUserScale( double x, double y ) -{ - wxDCBase::SetUserScale(x, y); - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalScale( double x, double y ) -{ - wxDCBase::SetLogicalScale(x, y); - ComputeScaleAndOrigin(); -} - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -} - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - m_externalDeviceOriginX = x; - m_externalDeviceOriginY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::SetInternalDeviceOrigin( long x, long y ) -{ - m_internalDeviceOriginX = x; - m_internalDeviceOriginY = y; - ComputeScaleAndOrigin(); -} - -void wxDC::GetInternalDeviceOrigin( long *x, long *y ) -{ - if (x) *x = m_internalDeviceOriginX; - if (y) *y = m_internalDeviceOriginY; -} - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - m_signX = xLeftRight ? 1 : -1; - m_signY = yBottomUp ? -1 : 1; - ComputeScaleAndOrigin(); -} - -long wxDCBase::DeviceToLogicalX(long x) const -{ - return ((wxDC *)this)->XDEV2LOG(x); -} - -long wxDCBase::DeviceToLogicalY(long y) const -{ - return ((wxDC *)this)->YDEV2LOG(y); -} - -long wxDCBase::DeviceToLogicalXRel(long x) const -{ - return ((wxDC *)this)->XDEV2LOGREL(x); -} - -long wxDCBase::DeviceToLogicalYRel(long y) const -{ - return ((wxDC *)this)->YDEV2LOGREL(y); -} - -long wxDCBase::LogicalToDeviceX(long x) const -{ - return ((wxDC *)this)->XLOG2DEV(x); -} - -long wxDCBase::LogicalToDeviceY(long y) const -{ - return ((wxDC *)this)->YLOG2DEV(y); -} - -long wxDCBase::LogicalToDeviceXRel(long x) const -{ - return ((wxDC *)this)->XLOG2DEVREL(x); -} - -long wxDCBase::LogicalToDeviceYRel(long y) const -{ - return ((wxDC *)this)->YLOG2DEVREL(y); -} - -void wxDC::ComputeScaleAndOrigin() -{ - // CMB: copy scale to see if it changes - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; - - m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX; - m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY; - - // CMB: if scale has changed call SetPen to recalulate the line width - if (m_scaleX != origScaleX || m_scaleY != origScaleY) - { - // this is a bit artificial, but we need to force wxDC to think - // the pen has changed - wxPen* pen = & GetPen(); - wxPen tempPen; - m_pen = tempPen; - SetPen(* pen); - } -} - diff --git a/src/motif/dcclient.cpp b/src/motif/dcclient.cpp deleted file mode 100644 index 8336c61a64..0000000000 --- a/src/motif/dcclient.cpp +++ /dev/null @@ -1,2223 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: wxClientDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - About pens, brushes, and the autoSetting flag: - - Under X, pens and brushes control some of the same X drawing parameters. - Therefore, it is impossible to independently maintain the current pen and the - current brush. Also, some settings depend on the current logical function. The - m_currentFill, etc. instance variables remember state across the brush and - pen. - - Since pens are used more than brushes, the autoSetting flag is used to - indicate that a brush was recently used, and SetPen must be called to - reinstall the current pen's parameters. If autoSetting includes 0x2, then the - pens color may need to be set based on XOR. - - There is, unfortunately, some confusion between setting the current pen/brush - and actually installing the brush/pen parameters. Both functionalies are - perform by SetPen and SetBrush. C'est la vie. -*/ - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/image.h" - -#include - -#include - -#include "wx/motif/private.h" - -#include "bdiag.xbm" -#include "fdiag.xbm" -#include "cdiag.xbm" -#include "horiz.xbm" -#include "verti.xbm" -#include "cross.xbm" - -static Pixmap bdiag, cdiag, fdiag, cross, horiz, verti; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -// Fudge factor (VZ: what??) -#define WX_GC_CF 1 - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) - IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) - IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -#endif - -// ---------------------------------------------------------------------------- -// prototypes -// ---------------------------------------------------------------------------- - -static void XCopyRemote(Display *src_display, Display *dest_display, - Drawable src, Drawable dest, - GC destgc, - int srcx, int srcy, - unsigned int w, unsigned int h, - int destx, int desty, - bool more, XImage **cache); - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxWindowDC -// ---------------------------------------------------------------------------- - -wxWindowDC::wxWindowDC() -{ - m_gc = (WXGC) 0; - m_gcBacking = (WXGC) 0; - m_window = NULL; - m_backgroundPixel = -1; - m_currentPenWidth = 1; - m_currentPenJoin = -1; - m_currentPenDashCount = -1; - m_currentPenDash = (char*) NULL; - m_currentStyle = -1; - m_currentFill = -1; - // m_currentBkMode = wxTRANSPARENT; - m_colour = wxColourDisplay(); - m_display = (WXDisplay*) NULL; - m_currentRegion = (WXRegion) 0; - m_userRegion = (WXRegion) 0; - m_pixmap = (WXPixmap) 0; - m_autoSetting = 0; - m_oldFont = (WXFont) 0; -} - -wxWindowDC::wxWindowDC( wxWindow *window ) -{ - wxASSERT_MSG( (window != (wxWindow*) NULL), "You must pass a valid wxWindow to wxWindowDC/wxClientDC/wxPaintDC constructor." ); - - m_window = window; - m_gc = (WXGC) 0; - m_gcBacking = (WXGC) 0; - m_backgroundPixel = -1; - m_currentPenWidth = 1; - m_currentPenJoin = -1; - m_currentPenDashCount = -1; - m_currentPenDash = (char*) NULL; - m_currentStyle = -1; - m_currentFill = -1; - // m_currentBkMode = wxTRANSPARENT; - m_colour = wxColourDisplay(); - m_currentRegion = (WXRegion) 0; - m_userRegion = (WXRegion) 0; - m_ok = TRUE; - m_autoSetting = 0; - - m_display = window->GetXDisplay(); - m_pixmap = window->GetXWindow(); - Display* display = (Display*) m_display; - - XSetWindowColormap (display, (Pixmap) m_pixmap, (Colormap) wxTheApp->GetMainColormap(m_display)); - - XGCValues gcvalues; - gcvalues.foreground = BlackPixel (display, DefaultScreen (display)); - gcvalues.background = WhitePixel (display, DefaultScreen (display)); - gcvalues.graphics_exposures = False; - gcvalues.line_width = 1; - m_gc = (WXGC) XCreateGC (display, RootWindow (display, DefaultScreen (display)), - GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth, - &gcvalues); - - if (m_window->GetBackingPixmap()) - { - m_gcBacking = (WXGC) XCreateGC (display, RootWindow (display, - DefaultScreen (display)), - GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth, - &gcvalues); - } - - m_backgroundPixel = (int) gcvalues.background; - - // Get the current Font so we can set it back later - XGCValues valReturn; - XGetGCValues((Display*) m_display, (GC) m_gc, GCFont, &valReturn); - m_oldFont = (WXFont) valReturn.font; - - SetBackground(wxBrush(m_window->GetBackgroundColour(), wxSOLID)); -} - -wxWindowDC::~wxWindowDC() -{ - if (m_gc && (m_oldFont != (WXFont) 0) && ((long) m_oldFont != -1)) - { - XSetFont ((Display*) m_display, (GC) m_gc, (Font) m_oldFont); - - if (m_window && m_window->GetBackingPixmap()) - XSetFont ((Display*) m_display,(GC) m_gcBacking, (Font) m_oldFont); - } - - if (m_gc) - XFreeGC ((Display*) m_display, (GC) m_gc); - m_gc = (WXGC) 0; - - if (m_gcBacking) - XFreeGC ((Display*) m_display, (GC) m_gcBacking); - m_gcBacking = (WXGC) 0; - - if (m_currentRegion) - XDestroyRegion ((Region) m_currentRegion); - m_currentRegion = (WXRegion) 0; - - if (m_userRegion) - XDestroyRegion ((Region) m_userRegion); - m_userRegion = (WXRegion) 0; -} - -void wxWindowDC::DoFloodFill( long WXUNUSED(x1), long WXUNUSED(y1), - const wxColour& WXUNUSED(col), int WXUNUSED(style) ) -{ - wxFAIL_MSG("not implemented"); -} - -bool wxWindowDC::DoGetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -void wxWindowDC::DoDrawLine( long x1, long y1, long x2, long y2 ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - int x1d, y1d, x2d, y2d; - - // FreeGetPixelCache(); - - x1d = XLOG2DEV(x1); - y1d = YLOG2DEV(y1); - x2d = XLOG2DEV(x2); - y2d = YLOG2DEV(y2); - - if (m_autoSetting) - SetPen (m_pen); - - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, x1d, y1d, x2d, y2d); - - if (m_window && m_window->GetBackingPixmap()) - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - XLOG2DEV_2(x1), YLOG2DEV_2(y1), - XLOG2DEV_2(x2), YLOG2DEV_2(y2)); - - CalcBoundingBox(x1, y1); - CalcBoundingBox(x2, y2); -} - -void wxWindowDC::DoCrossHair( long x, long y ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - if (m_autoSetting) - SetPen (m_pen); - - int xx = XLOG2DEV (x); - int yy = YLOG2DEV (y); - int ww, hh; - wxDisplaySize (&ww, &hh); - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, 0, yy, - ww, yy); - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xx, 0, - xx, hh); - - if (m_window && m_window->GetBackingPixmap()) - { - xx = XLOG2DEV_2 (x); - yy = YLOG2DEV_2 (y); - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - 0, yy, - ww, yy); - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - xx, 0, - xx, hh); - } -} - -void wxWindowDC::DoDrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // FreeGetPixelCache(); - - int xx1 = XLOG2DEV (x1); - int yy1 = YLOG2DEV (y1); - int xx2 = XLOG2DEV (x2); - int yy2 = YLOG2DEV (y2); - int xxc = XLOG2DEV (xc); - int yyc = YLOG2DEV (yc); - int xxc_2 = XLOG2DEV_2 (xc); - int yyc_2 = YLOG2DEV_2 (yc); - - long dx = xx1 - xxc; - long dy = yy1 - yyc; - double radius = sqrt (dx * dx + dy * dy); - long r = (long) radius; - - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else if (radius == 0.0) - radius1 = radius2 = 0.0; - else - { - if (xx1 - xxc == 0) - if (yy1 - yyc < 0) - radius1 = 90.0; - else - radius1 = -90.0; - else - radius1 = -atan2 ((double) (yy1 - yyc), (double) (xx1 - xxc)) * 360.0 / (2 * M_PI); - - if (xx2 - xxc == 0) - if (yy2 - yyc < 0) - radius2 = 90.0; - else - radius2 = -90.0; - else - radius2 = -atan2 ((double) (yy2 - yyc), (double) (xx2 - xxc)) * 360.0 / (2 * M_PI); - } - radius1 *= 64.0; - radius2 *= 64.0; - int alpha1 = (int) radius1; - int alpha2 = (int) (radius2 - radius1); - while (alpha2 <= 0) - alpha2 += 360 * 64; - while (alpha2 > 360 * 64) - alpha2 -= 360 * 64; - - if (m_brush.Ok() && m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush (m_brush); - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) (GC) m_gc, - xxc - r, yyc - r, 2 * r, 2 * r, alpha1, alpha2); - - if (m_window && m_window->GetBackingPixmap()) - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - xxc_2 - r, yyc_2 - r, 2 * r, 2 * r, alpha1, alpha2); - - } - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - if (m_autoSetting) - SetPen (m_pen); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, - xxc - r, yyc - r, 2 * r, 2 * r, alpha1, alpha2); - - if (m_window && m_window->GetBackingPixmap()) - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - xxc_2 - r, yyc_2 - r, 2 * r, 2 * r, alpha1, alpha2); - } - CalcBoundingBox (x1, y1); - CalcBoundingBox (x2, y2); -} - -void wxWindowDC::DoDrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - int xd, yd, wd, hd; - - xd = XLOG2DEV(x); - yd = YLOG2DEV(y); - wd = XLOG2DEVREL(width); - hd = YLOG2DEVREL(height); - - if (sa>=360 || sa<=-360) sa=sa-int(sa/360)*360; - if (ea>=360 || ea<=-360) ea=ea-int(ea/360)*360; - int start = int(sa*64); - int end = int(ea*64); - if (start<0) start+=360*64; - if (end <0) end +=360*64; - if (end>start) end-=start; - else end+=360*64-start; - - if (m_brush.Ok() && m_brush.GetStyle () != wxTRANSPARENT) - { - m_autoSetting = TRUE; // must be reset - - SetBrush (m_brush); - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, wd, hd, start, end); - - if (m_window && m_window->GetBackingPixmap()) - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y),wd,hd,start,end); - } - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - if (m_autoSetting) - SetPen (m_pen); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, wd, hd, start,end); - if (m_window && m_window->GetBackingPixmap()) - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y),wd,hd,start,end); - } - CalcBoundingBox (x, y); - CalcBoundingBox (x + width, y + height); -} - -void wxWindowDC::DoDrawPoint( long x, long y ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // FreeGetPixelCache(); - - if (m_pen.Ok() && m_autoSetting) - SetPen (m_pen); - - XDrawPoint ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, XLOG2DEV (x), YLOG2DEV (y)); - if (m_window && m_window->GetBackingPixmap()) - XDrawPoint ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, XLOG2DEV_2 (x), YLOG2DEV_2 (y)); - - CalcBoundingBox (x, y); -} - -void wxWindowDC::DoDrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // FreeGetPixelCache(); - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - if (m_autoSetting) - SetPen (m_pen); - - XPoint *xpoints = new XPoint[n]; - int i; - - for (i = 0; i < n; i++) - { - xpoints[i].x = XLOG2DEV (points[i].x + xoffset); - xpoints[i].y = YLOG2DEV (points[i].y + yoffset); - } - XDrawLines ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xpoints, n, 0); - - if (m_window && m_window->GetBackingPixmap()) - { - for (i = 0; i < n; i++) - { - xpoints[i].x = XLOG2DEV_2 (points[i].x + xoffset); - xpoints[i].y = YLOG2DEV_2 (points[i].y + yoffset); - } - XDrawLines ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, xpoints, n, 0); - } - delete[]xpoints; - } -} - -void wxWindowDC::DoDrawPolygon( int n, wxPoint points[], - long xoffset, long yoffset, int fillStyle ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // FreeGetPixelCache(); - - XPoint *xpoints1 = new XPoint[n + 1]; - XPoint *xpoints2 = new XPoint[n + 1]; - int i; - for (i = 0; i < n; i++) - { - xpoints1[i].x = XLOG2DEV (points[i].x + xoffset); - xpoints1[i].y = YLOG2DEV (points[i].y + yoffset); - xpoints2[i].x = XLOG2DEV_2 (points[i].x + xoffset); - xpoints2[i].y = YLOG2DEV_2 (points[i].y + yoffset); - CalcBoundingBox (points[i].x + xoffset, points[i].y + yoffset); - } - - // Close figure for XDrawLines (not needed for XFillPolygon) - xpoints1[i].x = xpoints1[0].x; - xpoints1[i].y = xpoints1[0].y; - xpoints2[i].x = xpoints2[0].x; - xpoints2[i].y = xpoints2[0].y; - - if (m_brush.Ok() && m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush (m_brush); - XSetFillRule ((Display*) m_display, (GC) m_gc, fillStyle == wxODDEVEN_RULE ? EvenOddRule : WindingRule); - XFillPolygon ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xpoints1, n, Complex, 0); - XSetFillRule ((Display*) m_display, (GC) m_gc, EvenOddRule); // default mode - if (m_window && m_window->GetBackingPixmap()) - { - XSetFillRule ((Display*) m_display,(GC) m_gcBacking, - fillStyle == wxODDEVEN_RULE ? EvenOddRule : WindingRule); - XFillPolygon ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, xpoints2, n, Complex, 0); - XSetFillRule ((Display*) m_display,(GC) m_gcBacking, EvenOddRule); // default mode - } - } - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - if (m_autoSetting) - SetPen (m_pen); - XDrawLines ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xpoints1, n + 1, 0); - - if (m_window && m_window->GetBackingPixmap()) - XDrawLines ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, xpoints2, n + 1, 0); - } - - delete[]xpoints1; - delete[]xpoints2; -} - -void wxWindowDC::DoDrawRectangle( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // FreeGetPixelCache(); - - int xd, yd, wfd, hfd, wd, hd; - - xd = XLOG2DEV(x); - yd = YLOG2DEV(y); - wfd = XLOG2DEVREL(width); - wd = wfd - WX_GC_CF; - hfd = YLOG2DEVREL(height); - hd = hfd - WX_GC_CF; - - if (wfd == 0 || hfd == 0) return; - if (wd < 0) { wd = - wd; xd = xd - wd; } - if (hd < 0) { hd = - hd; yd = yd - hd; } - - if (m_brush.Ok() && m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush (m_brush); - XFillRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, wfd, hfd); - - if (m_window && m_window->GetBackingPixmap()) - XFillRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y), - wfd, hfd); - } - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - if (m_autoSetting) - SetPen (m_pen); - XDrawRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, wd, hd); - - if (m_window && m_window->GetBackingPixmap()) - XDrawRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y), - wd, hd); - } - CalcBoundingBox (x, y); - CalcBoundingBox (x + width, y + height); -} - -void wxWindowDC::DoDrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // FreeGetPixelCache(); - - // If radius is negative, it's a proportion of the smaller dimension. - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - int xd = XLOG2DEV (x); - int yd = YLOG2DEV (y); - int rd = XLOG2DEVREL ((long) radius); - int wd = XLOG2DEVREL (width) - WX_GC_CF; - int hd = YLOG2DEVREL (height) - WX_GC_CF; - - int rw_d = rd * 2; - int rh_d = rw_d; - - // If radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rd == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // Draw nothing if transformed w or h is 0 - if (wd == 0 || hd == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - wd--; - hd--; - } - - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - if (rw_d > wd) rw_d = wd; - if (rw_d > hd) rw_d = hd; - rd = rw_d / 2; - - // For backing pixmap - int xd2 = XLOG2DEV_2 (x); - int yd2 = YLOG2DEV_2 (y); - int rd2 = XLOG2DEVREL ((long) radius); - int wd2 = XLOG2DEVREL (width) ; - int hd2 = YLOG2DEVREL (height) ; - - int rw_d2 = rd2 * 2; - int rh_d2 = rw_d2; - - if (m_brush.Ok() && m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush (m_brush); - - XFillRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + rd, yd, - wd - rw_d, hd); - XFillRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd + rd, - wd, hd - rh_d); - - // Arcs start from 3 o'clock, positive angles anticlockwise - // Top-left - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, - rw_d, rh_d, 90 * 64, 90 * 64); - // Top-right - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + wd - rw_d, yd, - // rw_d, rh_d, 0, 90 * 64); - rw_d, rh_d, 0, 91 * 64); - // Bottom-right - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + wd - rw_d, - yd + hd - rh_d, - // rw_d, rh_d, 270 * 64, 90 * 64); - rw_d, rh_d, 269 * 64, 92 * 64); - // Bottom-left - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd + hd - rh_d, - rw_d, rh_d, 180 * 64, 90 * 64); - - if (m_window && m_window->GetBackingPixmap()) - { - XFillRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + rd2, yd2, wd2 - rw_d2, hd2); - XFillRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2, yd2 + rd2, wd2, hd2 - rh_d2); - - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2, yd2, rw_d2, rh_d2, 90 * 64, 90 * 64); - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + wd2 - rw_d2, yd2, - // rw_d2, rh_d2, 0, 90 * 64); - rw_d2, rh_d2, 0, 91 * 64); - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + wd2 - rw_d2, - yd2 + hd2 - rh_d2, - // rw_d2, rh_d2, 270 * 64, 90 * 64); - rw_d2, rh_d2, 269 * 64, 92 * 64); - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2, yd2 + hd2 - rh_d2, - rw_d2, rh_d2, 180 * 64, 90 * 64); - } - } - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - SetPen (m_pen); - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + rd, yd, - xd + wd - rd + 1, yd); - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + rd, yd + hd, - xd + wd - rd, yd + hd); - - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd + rd, - xd, yd + hd - rd); - XDrawLine ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + wd, yd + rd, - xd + wd, yd + hd - rd + 1); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, - rw_d, rh_d, 90 * 64, 90 * 64); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + wd - rw_d, yd, - // rw_d, rh_d, 0, 90 * 64); - rw_d, rh_d, 0, 91 * 64); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd + wd - rw_d, - yd + hd - rh_d, - rw_d, rh_d, 269 * 64, 92 * 64); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd + hd - rh_d, - rw_d, rh_d, 180 * 64, 90 * 64); - - if (m_window && m_window->GetBackingPixmap()) - { - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + rd2, yd2, - xd2 + wd2 - rd2 + 1, yd2); - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + rd2, yd2 + hd2, - xd2 + wd2 - rd2, yd2 + hd2); - - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2, yd2 + rd2, - xd2, yd2 + hd2 - rd2); - XDrawLine ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + wd2, yd2 + rd2, - xd2 + wd2, yd2 + hd2 - rd2 + 1); - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2, yd2, - rw_d2, rh_d2, 90 * 64, 90 * 64); - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + wd2 - rw_d2, yd2, - // rw_d2, rh_d2, 0, 90 * 64); - rw_d2, rh_d2, 0, 91 * 64); - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2 + wd2 - rw_d2, - yd2 + hd2 - rh_d2, - rw_d2, rh_d2, 269 * 64, 92 * 64); - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - xd2, yd2 + hd2 - rh_d2, - rw_d2, rh_d2, 180 * 64, 90 * 64); - } - } - CalcBoundingBox (x, y); - CalcBoundingBox (x + width, y + height); - - -} - -void wxWindowDC::DoDrawEllipse( long x, long y, long width, long height ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // Check for negative width and height - if (height < 0) - { - y = y + height; - height = - height ; - } - - if (width < 0) - { - x = x + width; - width = - width ; - } - - // FreeGetPixelCache(); - - static const int angle = 23040; - - int xd, yd, wd, hd; - - xd = XLOG2DEV(x); - yd = YLOG2DEV(y); - wd = XLOG2DEVREL(width) ; - hd = YLOG2DEVREL(height) ; - - if (m_brush.Ok() && m_brush.GetStyle () != wxTRANSPARENT) - { - SetBrush (m_brush); - XFillArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, wd, hd, 0, angle); - if (m_window && m_window->GetBackingPixmap()) - XFillArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y), - XLOG2DEVREL (width) - WX_GC_CF, - YLOG2DEVREL (height) - WX_GC_CF, 0, angle); - } - - if (m_pen.Ok() && m_pen.GetStyle () != wxTRANSPARENT) - { - if (m_autoSetting) - SetPen (m_pen); - XDrawArc ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, xd, yd, wd, hd, 0, angle); - if (m_window && m_window->GetBackingPixmap()) - XDrawArc ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y), - XLOG2DEVREL (width) - WX_GC_CF, - YLOG2DEVREL (height) - WX_GC_CF, 0, angle); - } - CalcBoundingBox (x, y); - CalcBoundingBox (x + width, y + height); - -} - -bool wxWindowDC::CanDrawBitmap() const -{ - wxCHECK_MSG( Ok(), FALSE, "invalid dc" ); - - return TRUE; -} - -#if 0 -void wxWindowDC::DoDrawIcon( const wxIcon &icon, long x, long y) -{ - // FreeGetPixelCache(); - - // Be sure that foreground pixels (1) of - // the Icon will be painted with pen colour. [m_pen.SetColour()] - // Background pixels (0) will be painted with - // last selected background color. [::SetBackground] - if (m_pen.Ok() && m_autoSetting) - SetPen (m_pen); - - int width, height; - Pixmap iconPixmap = (Pixmap) icon.GetPixmap(); - width = icon.GetWidth(); - height = icon.GetHeight(); - if (icon.GetDisplay() == m_display) - { - if (icon.GetDepth() <= 1) - { - XCopyPlane ((Display*) m_display, iconPixmap, (Pixmap) m_pixmap, (GC) m_gc, - 0, 0, width, height, - (int) XLOG2DEV (x), (int) YLOG2DEV (y), 1); - } - else - { - XCopyArea ((Display*) m_display, iconPixmap, (Pixmap) m_pixmap, (GC) m_gc, - 0, 0, width, height, - (int) XLOG2DEV (x), (int) YLOG2DEV (y)); - } - - - if (m_window && m_window->GetBackingPixmap()) - { - if (icon.GetDepth() <= 1) - { - XCopyPlane ((Display*) m_display, iconPixmap, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - 0, 0, width, height, (int) XLOG2DEV_2 (x), (int) YLOG2DEV_2 (y), 1); - } - else - { - XCopyArea ((Display*) m_display, iconPixmap, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - 0, 0, width, height, - (int) XLOG2DEV_2 (x), (int) YLOG2DEV_2 (y)); - } - } - } else { /* Remote copy (different (Display*) m_displays) */ - XImage *cache = NULL; - if (m_window && m_window->GetBackingPixmap()) - XCopyRemote((Display*) icon.GetDisplay(), (Display*) m_display, iconPixmap, (Pixmap) m_window->GetBackingPixmap(), - (GC) m_gcBacking, 0, 0, width, height, - (int) XLOG2DEV_2 (x), (int) YLOG2DEV_2 (y), TRUE, &cache); - XCopyRemote((Display*) icon.GetDisplay(), (Display*) m_display, iconPixmap, (Pixmap) m_pixmap, (GC) m_gc, - 0, 0, width, height, - (int) XLOG2DEV (x), (int) YLOG2DEV (y), FALSE, &cache); - } - CalcBoundingBox (x, y); -} -#endif // 0 - -// TODO: use scaled Blit e.g. as per John Price's implementation in Contrib/Utilities -bool wxWindowDC::DoBlit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int rop, bool useMask ) -{ - wxCHECK_MSG( Ok(), FALSE, "invalid dc" ); - - wxWindowDC* sourceDC = wxDynamicCast(source, wxWindowDC); - - wxASSERT_MSG( sourceDC, "Blit source DC must be wxWindowDC or derived class." ); - - // FreeGetPixelCache(); - - // Be sure that foreground pixels (1) of the Icon will be painted with pen - // colour. [m_pen.SetColour()] Background pixels (0) will be painted with - // last selected background color. [::SetBackground] - if (m_pen.Ok() && m_autoSetting) - SetPen (m_pen); - - // Do bitmap scaling if necessary - - wxBitmap *scaledBitmap = (wxBitmap*) NULL; - Pixmap sourcePixmap = (Pixmap) NULL; - double scaleX, scaleY; - GetUserScale(& scaleX, & scaleY); - - // Sorry, can't scale masks just yet - if (!useMask && (scaleX != 1.0 || scaleY != 1.0) && sourceDC->IsKindOf(CLASSINFO(wxMemoryDC))) - { - wxMemoryDC* memDC = (wxMemoryDC*) sourceDC; - wxBitmap& bitmap = memDC->GetBitmap(); - - wxASSERT_MSG( (bitmap.Ok()), "Bad source bitmap in wxWindowDC::Blit"); - - wxImage image(bitmap); - if (!image.Ok()) - { - sourcePixmap = (Pixmap) bitmap.GetPixmap(); - } - else - { - int scaledW = (int) (bitmap.GetWidth() * scaleX); - int scaledH = (int) (bitmap.GetHeight() * scaleY); - - image = image.Scale(scaledW, scaledH); - scaledBitmap = new wxBitmap(image.ConvertToBitmap()); - sourcePixmap = (Pixmap) scaledBitmap->GetPixmap(); - } - } - else - sourcePixmap = (Pixmap) sourceDC->m_pixmap; - - if (m_pixmap && sourcePixmap) - { - /* MATTHEW: [9] */ - int orig = m_logicalFunction; - - SetLogicalFunction (rop); - - if (m_display != sourceDC->m_display) - { - XImage *cache = NULL; - - if (m_window && m_window->GetBackingPixmap()) - XCopyRemote((Display*) sourceDC->m_display, (Display*) m_display, - (Pixmap) sourcePixmap, (Pixmap) m_window->GetBackingPixmap(), - (GC) m_gcBacking, - source->LogicalToDeviceX (xsrc), - source->LogicalToDeviceY (ysrc), - source->LogicalToDeviceXRel(width), - source->LogicalToDeviceYRel(height), - XLOG2DEV_2 (xdest), YLOG2DEV_2 (ydest), - TRUE, &cache); - - if ( useMask && source->IsKindOf(CLASSINFO(wxMemoryDC)) ) - { - wxMemoryDC *memDC = (wxMemoryDC *)source; - wxBitmap& sel = memDC->GetBitmap(); - if ( sel.Ok() && sel.GetMask() && sel.GetMask()->GetPixmap() ) - { - XSetClipMask ((Display*) m_display, (GC) m_gc, (Pixmap) sel.GetMask()->GetPixmap()); - XSetClipOrigin ((Display*) m_display, (GC) m_gc, XLOG2DEV (xdest), YLOG2DEV (ydest)); - } - } - - XCopyRemote((Display*) sourceDC->m_display, (Display*) m_display, (Pixmap) sourcePixmap, (Pixmap) m_pixmap, (GC) m_gc, - source->LogicalToDeviceX (xsrc), - source->LogicalToDeviceY (ysrc), - source->LogicalToDeviceXRel(width), - source->LogicalToDeviceYRel(height), - XLOG2DEV (xdest), YLOG2DEV (ydest), - FALSE, &cache); - - if ( useMask ) - { - XSetClipMask ((Display*) m_display, (GC) m_gc, None); - XSetClipOrigin ((Display*) m_display, (GC) m_gc, 0, 0); - } - - } else - { - if (m_window && m_window->GetBackingPixmap()) - { - // +++ MARKUS (mho@comnets.rwth-aachen): error on blitting bitmaps with depth 1 - if (source->IsKindOf(CLASSINFO(wxMemoryDC)) && ((wxMemoryDC*) source)->GetBitmap().GetDepth() == 1) - { - XCopyPlane ((Display*) m_display, (Pixmap) sourcePixmap, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - source->LogicalToDeviceX (xsrc), - source->LogicalToDeviceY (ysrc), - source->LogicalToDeviceXRel(width), - source->LogicalToDeviceYRel(height), - XLOG2DEV_2 (xdest), YLOG2DEV_2 (ydest), 1); - } - else - { - XCopyArea ((Display*) m_display, (Pixmap) sourcePixmap, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - source->LogicalToDeviceX (xsrc), - source->LogicalToDeviceY (ysrc), - source->LogicalToDeviceXRel(width), - source->LogicalToDeviceYRel(height), - XLOG2DEV_2 (xdest), YLOG2DEV_2 (ydest)); - } - } - if ( useMask && source->IsKindOf(CLASSINFO(wxMemoryDC)) ) - { - wxMemoryDC *memDC = (wxMemoryDC *)source; - wxBitmap& sel = memDC->GetBitmap(); - if ( sel.Ok() && sel.GetMask() && sel.GetMask()->GetPixmap() ) - { - XSetClipMask ((Display*) m_display, (GC) m_gc, (Pixmap) sel.GetMask()->GetPixmap()); - XSetClipOrigin ((Display*) m_display, (GC) m_gc, XLOG2DEV (xdest), YLOG2DEV (ydest)); - } - } - - // Check if we're copying from a mono bitmap - if (source->IsKindOf(CLASSINFO(wxMemoryDC)) && - ((wxMemoryDC*)source)->GetBitmap().Ok() && (((wxMemoryDC*)source)->GetBitmap().GetDepth () == 1)) - { - XCopyPlane ((Display*) m_display, (Pixmap) sourcePixmap, (Pixmap) m_pixmap, (GC) m_gc, - source->LogicalToDeviceX (xsrc), - source->LogicalToDeviceY (ysrc), - source->LogicalToDeviceXRel(width), - source->LogicalToDeviceYRel(height), - XLOG2DEV (xdest), YLOG2DEV (ydest), 1); - } - else - { - XCopyArea ((Display*) m_display, (Pixmap) sourcePixmap, (Pixmap) m_pixmap, (GC) m_gc, - source->LogicalToDeviceX (xsrc), - source->LogicalToDeviceY (ysrc), - source->LogicalToDeviceXRel(width), - source->LogicalToDeviceYRel(height), - XLOG2DEV (xdest), YLOG2DEV (ydest)); - - } - if ( useMask ) - { - XSetClipMask ((Display*) m_display, (GC) m_gc, None); - XSetClipOrigin ((Display*) m_display, (GC) m_gc, 0, 0); - } - - } /* Remote/local (Display*) m_display */ - CalcBoundingBox (xdest, ydest); - CalcBoundingBox (xdest + width, ydest + height); - - SetLogicalFunction(orig); - - if (scaledBitmap) delete scaledBitmap; - - return TRUE; - } - if (scaledBitmap) delete scaledBitmap; - - return FALSE; -} - -void wxWindowDC::DoDrawText( const wxString &text, long x, long y ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - // Since X draws from the baseline of the text, must add the text height - int cx = 0; - int cy = 0; - int ascent = 0; - int slen; - - slen = strlen(text); - - if (m_font.Ok()) - { - WXFontStructPtr pFontStruct = m_font.GetFontStruct(m_userScaleY*m_logicalScaleY, m_display); - int direction, descent; - XCharStruct overall_return; -#if 0 - if (use16) - (void)XTextExtents16((XFontStruct*) pFontStruct, (XChar2b *)(const char*) text, slen, &direction, - &ascent, &descent, &overall_return); - else -#endif // 0 - (void)XTextExtents((XFontStruct*) pFontStruct, (char*) (const char*) text, slen, &direction, - &ascent, &descent, &overall_return); - - cx = overall_return.width; - cy = ascent + descent; - } - - // First draw a rectangle representing the text background, if a text - // background is specified - if (m_textBackgroundColour.Ok () && (m_backgroundMode != wxTRANSPARENT)) - { - wxColour oldPenColour = m_currentColour; - m_currentColour = m_textBackgroundColour; - bool sameColour = (oldPenColour.Ok () && m_textBackgroundColour.Ok () && - (oldPenColour.Red () == m_textBackgroundColour.Red ()) && - (oldPenColour.Blue () == m_textBackgroundColour.Blue ()) && - (oldPenColour.Green () == m_textBackgroundColour.Green ())); - - // This separation of the big && test required for gcc2.7/HP UX 9.02 - // or pixel value can be corrupted! - sameColour = (sameColour && - (oldPenColour.GetPixel() == m_textBackgroundColour.GetPixel())); - - if (!sameColour || !GetOptimization()) - { - int pixel = m_textBackgroundColour.AllocColour(m_display); - m_currentColour = m_textBackgroundColour; - - // Set the GC to the required colour - if (pixel > -1) - { - XSetForeground ((Display*) m_display, (GC) m_gc, pixel); - if (m_window && m_window->GetBackingPixmap()) - XSetForeground ((Display*) m_display,(GC) m_gcBacking, pixel); - } - } - else - m_textBackgroundColour = oldPenColour ; - - XFillRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, XLOG2DEV (x), YLOG2DEV (y), cx, cy); - if (m_window && m_window->GetBackingPixmap()) - XFillRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y), cx, cy); - } - - // Now set the text foreground and draw the text - if (m_textForegroundColour.Ok ()) - { - wxColour oldPenColour = m_currentColour; - m_currentColour = m_textForegroundColour; - bool sameColour = (oldPenColour.Ok () && m_currentColour.Ok () && - (oldPenColour.Red () == m_currentColour.Red ()) && - (oldPenColour.Blue () == m_currentColour.Blue ()) && - (oldPenColour.Green () == m_currentColour.Green ()) && - (oldPenColour.GetPixel() == m_currentColour.GetPixel())); - - if (!sameColour || !GetOptimization()) - { - int pixel = -1; - if (!m_colour) // Mono display - { - // Unless foreground is really white, draw it in black - unsigned char red = m_textForegroundColour.Red (); - unsigned char blue = m_textForegroundColour.Blue (); - unsigned char green = m_textForegroundColour.Green (); - if (red == (unsigned char) 255 && blue == (unsigned char) 255 - && green == (unsigned char) 255) - { - m_currentColour = *wxWHITE; - pixel = (int) WhitePixel ((Display*) m_display, DefaultScreen ((Display*) m_display)); - m_currentColour.SetPixel(pixel); - m_textForegroundColour.SetPixel(pixel); - } - else - { - m_currentColour = *wxBLACK; - pixel = (int) BlackPixel ((Display*) m_display, DefaultScreen ((Display*) m_display)); - m_currentColour.SetPixel(pixel); - m_textForegroundColour.SetPixel(pixel); - } - } - else - { - pixel = m_textForegroundColour.AllocColour((Display*) m_display); - m_currentColour.SetPixel(pixel); - } - - // Set the GC to the required colour - if (pixel > -1) - { - XSetForeground ((Display*) m_display, (GC) m_gc, pixel); - if (m_window && m_window->GetBackingPixmap()) - XSetForeground ((Display*) m_display,(GC) m_gcBacking, pixel); - } - } - else - m_textForegroundColour = oldPenColour; - } - - // We need to add the ascent, not the whole height, since X draws at the - // point above the descender. -#if 0 - if (use16) - XDrawString16((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, XLOG2DEV (x), YLOG2DEV (y) + ascent, - (XChar2b *)(char*) (const char*) text, slen); - else -#endif // 0 - XDrawString((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, XLOG2DEV (x), YLOG2DEV (y) + ascent, text, slen); - - if (m_window && m_window->GetBackingPixmap()) { -#if 0 - if (use16) - XDrawString16((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y) + ascent, - (XChar2b *)(char*) (const char*) text, slen); - else -#endif // 0 - XDrawString((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(), (GC) m_gcBacking, - XLOG2DEV_2 (x), YLOG2DEV_2 (y) + ascent, (char*) (const char*) text, slen); - } - - long w, h; - GetTextExtent (text, &w, &h); - CalcBoundingBox (x + w, y + h); - CalcBoundingBox (x, y); -} - -bool wxWindowDC::CanGetTextExtent() const -{ - return TRUE; -} - -void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height, - long *descent, long *externalLeading, - wxFont *font ) const -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - wxFont* theFont = font; - if (!theFont) - theFont = (wxFont *)&m_font; // const_cast - - if (!theFont->Ok()) - { - // TODO: this should be an error log function - wxFAIL_MSG("set a valid font before calling GetTextExtent!"); - - *width = -1; - *height = -1; - return; - } - - WXFontStructPtr pFontStruct = theFont->GetFontStruct(m_userScaleY*m_logicalScaleY, m_display); - - int direction, ascent, descent2; - XCharStruct overall; - int slen; - -#if 0 - if (use16) - slen = str16len(string); - else -#endif // 0 - slen = strlen(string); - -#if 0 - if (use16) - XTextExtents16((XFontStruct*) pFontStruct, (XChar2b *) (char*) (const char*) string, slen, &direction, - &ascent, &descent2, &overall); - else -#endif // 0 - XTextExtents((XFontStruct*) pFontStruct, (char*) (const char*) string, slen, &direction, - &ascent, &descent2, &overall); - - *width = XDEV2LOGREL (overall.width); - *height = YDEV2LOGREL (ascent + descent2); - if (descent) - *descent = descent2; - if (externalLeading) - *externalLeading = 0; -} - -long wxWindowDC::GetCharWidth() const -{ - wxCHECK_MSG( Ok(), 0, "invalid dc" ); - wxCHECK_MSG( m_font.Ok(), 0, "invalid font" ); - - WXFontStructPtr pFontStruct = m_font.GetFontStruct(m_userScaleY * m_logicalScaleY, m_display); - - int direction, ascent, descent; - XCharStruct overall; - XTextExtents ((XFontStruct*) pFontStruct, "x", 1, &direction, &ascent, - &descent, &overall); - return XDEV2LOGREL(overall.width); -} - -long wxWindowDC::GetCharHeight() const -{ - wxCHECK_MSG( Ok(), 0, "invalid dc" ); - wxCHECK_MSG( m_font.Ok(), 0, "invalid font" ); - - WXFontStructPtr pFontStruct = m_font.GetFontStruct(m_userScaleY*m_logicalScaleY, m_display); - - int direction, ascent, descent; - XCharStruct overall; - XTextExtents ((XFontStruct*) pFontStruct, "x", 1, &direction, &ascent, - &descent, &overall); - // return XDEV2LOGREL(overall.ascent + overall.descent); - return XDEV2LOGREL(ascent + descent); -} - -void wxWindowDC::Clear() -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - int w, h; - if (m_window) - { - m_window->GetSize(&w, &h); - - if (m_window && m_window->GetBackingPixmap()) - { - w = m_window->GetPixmapWidth(); - h = m_window->GetPixmapHeight(); - } - } - else - { - if (this->IsKindOf(CLASSINFO(wxMemoryDC))) - { - wxMemoryDC* memDC = (wxMemoryDC*) this; - w = memDC->GetBitmap().GetWidth(); - h = memDC->GetBitmap().GetHeight(); - } - else - return; - } - - wxBrush saveBrush = m_brush; - SetBrush (m_backgroundBrush); - - XFillRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, 0, 0, w, h); - - if (m_window && m_window->GetBackingPixmap()) - XFillRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, 0, 0, w, h); - - m_brush = saveBrush; -} - -void wxWindowDC::Clear(const wxRect& rect) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - int x = rect.x; int y = rect.y; - int w = rect.width; int h = rect.height; - - wxBrush saveBrush = m_brush; - SetBrush (m_backgroundBrush); - - XFillRectangle ((Display*) m_display, (Pixmap) m_pixmap, (GC) m_gc, x, y, w, h); - - if (m_window && m_window->GetBackingPixmap()) - XFillRectangle ((Display*) m_display, (Pixmap) m_window->GetBackingPixmap(),(GC) m_gcBacking, x, y, w, h); - - m_brush = saveBrush; -} - -void wxWindowDC::SetFont( const wxFont &font ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - m_font = font; - - if (!m_font.Ok()) - { - if ((m_oldFont != (WXFont) 0) && ((long) m_oldFont != -1)) - { - XSetFont ((Display*) m_display, (GC) m_gc, (Font) m_oldFont); - - if (m_window && m_window->GetBackingPixmap()) - XSetFont ((Display*) m_display,(GC) m_gcBacking, (Font) m_oldFont); - } - return; - } - - WXFontStructPtr pFontStruct = m_font.GetFontStruct(m_userScaleY*m_logicalScaleY, m_display); - - Font fontId = ((XFontStruct*)pFontStruct)->fid; - XSetFont ((Display*) m_display, (GC) m_gc, fontId); - - if (m_window && m_window->GetBackingPixmap()) - XSetFont ((Display*) m_display,(GC) m_gcBacking, fontId); -} - -void wxWindowDC::SetPen( const wxPen &pen ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - m_pen = pen; - if (!m_pen.Ok()) - return; - - wxBitmap oldStipple = m_currentStipple; - int oldStyle = m_currentStyle; - int oldFill = m_currentFill; - int old_pen_width = m_currentPenWidth; - int old_pen_join = m_currentPenJoin; - int old_pen_cap = m_currentPenCap; - int old_pen_nb_dash = m_currentPenDashCount; - char *old_pen_dash = m_currentPenDash; - - wxColour oldPenColour = m_currentColour; - m_currentColour = m_pen.GetColour (); - m_currentStyle = m_pen.GetStyle (); - m_currentFill = m_pen.GetStyle (); // TODO? - m_currentPenWidth = m_pen.GetWidth (); - m_currentPenJoin = m_pen.GetJoin (); - m_currentPenCap = m_pen.GetCap (); - m_currentPenDashCount = m_pen.GetDashCount(); - m_currentPenDash = m_pen.GetDash(); - - if (m_currentStyle == wxSTIPPLE) - m_currentStipple = * m_pen.GetStipple (); - - bool sameStyle = (oldStyle == m_currentStyle && - oldFill == m_currentFill && - old_pen_join == m_currentPenJoin && - old_pen_cap == m_currentPenCap && - old_pen_nb_dash == m_currentPenDashCount && - old_pen_dash == m_currentPenDash && - old_pen_width == m_currentPenWidth); - - bool sameColour = (oldPenColour.Ok () && - (oldPenColour.Red () == m_currentColour.Red ()) && - (oldPenColour.Blue () == m_currentColour.Blue ()) && - (oldPenColour.Green () == m_currentColour.Green ()) && - (oldPenColour.GetPixel() == m_currentColour.GetPixel())); - - if (!sameStyle || !GetOptimization()) - { - int scaled_width = (int) XLOG2DEVREL (m_pen.GetWidth ()); - if (scaled_width < 0) - scaled_width = 0; - - int style; - int join; - int cap; - const static char dotted[] = {2, 5}; - const static char short_dashed[] = {4, 4}; - const static char long_dashed[] = {4, 8}; - const static char dotted_dashed[] = {6, 6, 2, 6}; - - // We express dash pattern in pen width unit, so we are - // independent of zoom factor and so on... - int req_nb_dash; - const char *req_dash; - - switch (m_pen.GetStyle ()) - { - case wxUSER_DASH: - req_nb_dash = m_currentPenDashCount; - req_dash = m_currentPenDash; - style = LineOnOffDash; - break; - case wxDOT: - req_nb_dash = 2; - req_dash = dotted; - style = LineOnOffDash; - break; - case wxSHORT_DASH: - req_nb_dash = 2; - req_dash = short_dashed; - style = LineOnOffDash; - break; - case wxLONG_DASH: - req_nb_dash = 2; - req_dash = long_dashed; - style = LineOnOffDash; - break; - case wxDOT_DASH: - req_nb_dash = 4; - req_dash = dotted_dashed; - style = LineOnOffDash; - break; - case wxSTIPPLE: - case wxSOLID: - case wxTRANSPARENT: - default: - style = LineSolid; - req_dash = NULL; - req_nb_dash = 0; - } - - if (req_dash && req_nb_dash) - { - char *real_req_dash = new char[req_nb_dash]; - if (real_req_dash) - { - int factor = scaled_width == 0 ? 1 : scaled_width; - for (int i = 0; i < req_nb_dash; i++) - real_req_dash[i] = req_dash[i] * factor; - XSetDashes ((Display*) m_display, (GC) m_gc, 0, real_req_dash, req_nb_dash); - - if (m_window && m_window->GetBackingPixmap()) - XSetDashes ((Display*) m_display,(GC) m_gcBacking, 0, real_req_dash, req_nb_dash); - delete[]real_req_dash; - } - else - { - // No Memory. We use non-scaled dash pattern... - XSetDashes ((Display*) m_display, (GC) m_gc, 0, req_dash, req_nb_dash); - - if (m_window && m_window->GetBackingPixmap()) - XSetDashes ((Display*) m_display,(GC) m_gcBacking, 0, req_dash, req_nb_dash); - } - } - - switch (m_pen.GetCap ()) - { - case wxCAP_PROJECTING: - cap = CapProjecting; - break; - case wxCAP_BUTT: - cap = CapButt; - break; - case wxCAP_ROUND: - default: - cap = (scaled_width <= 1) ? CapNotLast : CapRound; - break; - } - - switch (m_pen.GetJoin ()) - { - case wxJOIN_BEVEL: - join = JoinBevel; - break; - case wxJOIN_MITER: - join = JoinMiter; - break; - case wxJOIN_ROUND: - default: - join = JoinRound; - break; - } - - XSetLineAttributes ((Display*) m_display, (GC) m_gc, scaled_width, style, cap, join); - - if (m_window && m_window->GetBackingPixmap()) - XSetLineAttributes ((Display*) m_display,(GC) m_gcBacking, scaled_width, style, cap, join); - } - - if (IS_HATCH(m_currentFill) && ((m_currentFill != oldFill) || !GetOptimization())) - { - Pixmap myStipple; - - oldStipple = wxNullBitmap; // For later reset!! - - switch (m_currentFill) - { - case wxBDIAGONAL_HATCH: - if (bdiag == (Pixmap) 0) - bdiag = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - bdiag_bits, bdiag_width, bdiag_height); - myStipple = bdiag; - break; - case wxFDIAGONAL_HATCH: - if (fdiag == (Pixmap) 0) - fdiag = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - fdiag_bits, fdiag_width, fdiag_height); - myStipple = fdiag; - break; - case wxCROSS_HATCH: - if (cross == (Pixmap) 0) - cross = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - cross_bits, cross_width, cross_height); - myStipple = cross; - break; - case wxHORIZONTAL_HATCH: - if (horiz == (Pixmap) 0) - horiz = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - horiz_bits, horiz_width, horiz_height); - myStipple = horiz; - break; - case wxVERTICAL_HATCH: - if (verti == (Pixmap) 0) - verti = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - verti_bits, verti_width, verti_height); - myStipple = verti; - break; - case wxCROSSDIAG_HATCH: - default: - if (cdiag == (Pixmap) 0) - cdiag = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - cdiag_bits, cdiag_width, cdiag_height); - myStipple = cdiag; - break; - } - XSetStipple ((Display*) m_display, (GC) m_gc, myStipple); - - if (m_window && m_window->GetBackingPixmap()) - XSetStipple ((Display*) m_display,(GC) m_gcBacking, myStipple); - } - else if (m_currentStipple.Ok() - && ((m_currentStipple != oldStipple) || !GetOptimization())) - { - XSetStipple ((Display*) m_display, (GC) m_gc, (Pixmap) m_currentStipple.GetPixmap()); - - if (m_window && m_window->GetBackingPixmap()) - XSetStipple ((Display*) m_display,(GC) m_gcBacking, (Pixmap) m_currentStipple.GetPixmap()); - } - - if ((m_currentFill != oldFill) || !GetOptimization()) - { - int fill_style; - - if (m_currentFill == wxSTIPPLE) - fill_style = FillStippled; - else if (IS_HATCH (m_currentFill)) - fill_style = FillStippled; - else - fill_style = FillSolid; - XSetFillStyle ((Display*) m_display, (GC) m_gc, fill_style); - if (m_window && m_window->GetBackingPixmap()) - XSetFillStyle ((Display*) m_display,(GC) m_gcBacking, fill_style); - } - - // must test m_logicalFunction, because it involves background! - if (!sameColour || !GetOptimization() - || ((m_logicalFunction == wxXOR) || (m_autoSetting & 0x2))) - { - int pixel = -1; - if (m_pen.GetStyle () == wxTRANSPARENT) - pixel = m_backgroundPixel; - else if (!m_colour) - { - unsigned char red = m_pen.GetColour ().Red (); - unsigned char blue = m_pen.GetColour ().Blue (); - unsigned char green = m_pen.GetColour ().Green (); - if (red == (unsigned char) 255 && blue == (unsigned char) 255 - && green == (unsigned char) 255) - { - pixel = (int) WhitePixel ((Display*) m_display, DefaultScreen ((Display*) m_display)); - m_currentColour = *wxWHITE; - m_pen.GetColour().SetPixel(pixel); - m_currentColour.SetPixel(pixel); - } - else - { - pixel = (int) BlackPixel ((Display*) m_display, DefaultScreen ((Display*) m_display)); - m_currentColour = *wxBLACK; - m_pen.GetColour().SetPixel(pixel); - } - } - else - { - pixel = m_pen.GetColour ().AllocColour(m_display); - m_currentColour.SetPixel(pixel); - } - - // Finally, set the GC to the required colour - if (pixel > -1) - { - if (m_logicalFunction == wxXOR) - { - XGCValues values; - XGetGCValues ((Display*) m_display, (GC) m_gc, GCBackground, &values); - XSetForeground ((Display*) m_display, (GC) m_gc, pixel ^ values.background); - if (m_window && m_window->GetBackingPixmap()) - XSetForeground ((Display*) m_display,(GC) m_gcBacking, pixel ^ values.background); - } - else - { - XSetForeground ((Display*) m_display, (GC) m_gc, pixel); - if (m_window && m_window->GetBackingPixmap()) - XSetForeground ((Display*) m_display,(GC) m_gcBacking, pixel); - } - } - } - else - m_pen.GetColour().SetPixel(oldPenColour.GetPixel()); - - m_autoSetting = 0; -} - -void wxWindowDC::SetBrush( const wxBrush &brush ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - m_brush = brush; - - if (!m_brush.Ok() || m_brush.GetStyle () == wxTRANSPARENT) - return; - - int oldFill = m_currentFill; - wxBitmap oldStipple = m_currentStipple; - - m_autoSetting |= 0x1; - - m_currentFill = m_brush.GetStyle (); - if (m_currentFill == wxSTIPPLE) - m_currentStipple = * m_brush.GetStipple (); - - wxColour oldBrushColour(m_currentColour); - m_currentColour = m_brush.GetColour (); - - bool sameColour = (oldBrushColour.Ok () && - (oldBrushColour.Red () == m_currentColour.Red ()) && - (oldBrushColour.Blue () == m_currentColour.Blue ()) && - (oldBrushColour.Green () == m_currentColour.Green ()) && - (oldBrushColour.GetPixel() == m_currentColour.GetPixel())); - - if ((oldFill != m_brush.GetStyle ()) || !GetOptimization()) - { - switch (brush.GetStyle ()) - { - case wxTRANSPARENT: - break; - case wxBDIAGONAL_HATCH: - case wxCROSSDIAG_HATCH: - case wxFDIAGONAL_HATCH: - case wxCROSS_HATCH: - case wxHORIZONTAL_HATCH: - case wxVERTICAL_HATCH: - case wxSTIPPLE: - { - // Chris Breeze 23/07/97: use background mode to determine whether - // fill style should be solid or transparent - int style = (m_backgroundMode == wxSOLID ? FillOpaqueStippled : FillStippled); - XSetFillStyle ((Display*) m_display, (GC) m_gc, style); - if (m_window && m_window->GetBackingPixmap()) - XSetFillStyle ((Display*) m_display,(GC) m_gcBacking, style); - } - break; - case wxSOLID: - default: - XSetFillStyle ((Display*) m_display, (GC) m_gc, FillSolid); - if (m_window && m_window->GetBackingPixmap()) - XSetFillStyle ((Display*) m_display,(GC) m_gcBacking, FillSolid); - } - } - - if (IS_HATCH(m_currentFill) && ((m_currentFill != oldFill) || !GetOptimization())) - { - Pixmap myStipple; - - switch (m_currentFill) - { - case wxBDIAGONAL_HATCH: - if (bdiag == (Pixmap) 0) - bdiag = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - bdiag_bits, bdiag_width, bdiag_height); - myStipple = bdiag; - break; - case wxFDIAGONAL_HATCH: - if (fdiag == (Pixmap) 0) - fdiag = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - fdiag_bits, fdiag_width, fdiag_height); - myStipple = fdiag; - break; - case wxCROSS_HATCH: - if (cross == (Pixmap) 0) - cross = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - cross_bits, cross_width, cross_height); - myStipple = cross; - break; - case wxHORIZONTAL_HATCH: - if (horiz == (Pixmap) 0) - horiz = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - horiz_bits, horiz_width, horiz_height); - myStipple = horiz; - break; - case wxVERTICAL_HATCH: - if (verti == (Pixmap) 0) - verti = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - verti_bits, verti_width, verti_height); - myStipple = verti; - break; - case wxCROSSDIAG_HATCH: - default: - if (cdiag == (Pixmap) 0) - cdiag = XCreateBitmapFromData ((Display*) m_display, - RootWindow ((Display*) m_display, DefaultScreen ((Display*) m_display)), - cdiag_bits, cdiag_width, cdiag_height); - myStipple = cdiag; - break; - } - XSetStipple ((Display*) m_display, (GC) m_gc, myStipple); - - if (m_window && m_window->GetBackingPixmap()) - XSetStipple ((Display*) m_display,(GC) m_gcBacking, myStipple); - } - // X can forget the stipple value when resizing a window (apparently) - // so always set the stipple. - else if (m_currentStipple.Ok()) // && m_currentStipple != oldStipple) - { - XSetStipple ((Display*) m_display, (GC) m_gc, (Pixmap) m_currentStipple.GetPixmap()); - if (m_window && m_window->GetBackingPixmap()) - XSetStipple ((Display*) m_display,(GC) m_gcBacking, (Pixmap) m_currentStipple.GetPixmap()); - } - - // must test m_logicalFunction, because it involves background! - if (!sameColour || !GetOptimization() || m_logicalFunction == wxXOR) - { - int pixel = -1; - if (!m_colour) - { - // Policy - on a monochrome screen, all brushes are white, - // except when they're REALLY black!!! - unsigned char red = m_brush.GetColour ().Red (); - unsigned char blue = m_brush.GetColour ().Blue (); - unsigned char green = m_brush.GetColour ().Green (); - - if (red == (unsigned char) 0 && blue == (unsigned char) 0 - && green == (unsigned char) 0) - { - pixel = (int) BlackPixel ((Display*) m_display, DefaultScreen ((Display*) m_display)); - m_currentColour = *wxBLACK; - m_brush.GetColour().SetPixel(pixel); - m_currentColour.SetPixel(pixel); - } - else - { - pixel = (int) WhitePixel ((Display*) m_display, DefaultScreen ((Display*) m_display)); - m_currentColour = *wxWHITE; - m_brush.GetColour().SetPixel(pixel); - m_currentColour.SetPixel(pixel); - } - - // N.B. comment out the above line and uncomment the following lines - // if you want non-white colours to be black on a monochrome display. - /* - if (red == (unsigned char )255 && blue == (unsigned char)255 - && green == (unsigned char)255) - pixel = (int)WhitePixel((Display*) m_display, DefaultScreen((Display*) m_display)); - else - pixel = (int)BlackPixel((Display*) m_display, DefaultScreen((Display*) m_display)); - */ - } - else if (m_brush.GetStyle () != wxTRANSPARENT) - { - pixel = m_brush.GetColour().AllocColour(m_display); - m_currentColour.SetPixel(pixel); - } - if (pixel > -1) - { - // Finally, set the GC to the required colour - if (m_logicalFunction == wxXOR) - { - XGCValues values; - XGetGCValues ((Display*) m_display, (GC) m_gc, GCBackground, &values); - XSetForeground ((Display*) m_display, (GC) m_gc, pixel ^ values.background); - if (m_window && m_window->GetBackingPixmap()) - XSetForeground ((Display*) m_display,(GC) m_gcBacking, pixel ^ values.background); - } - else - { - XSetForeground ((Display*) m_display, (GC) m_gc, pixel); - if (m_window && m_window->GetBackingPixmap()) - XSetForeground ((Display*) m_display,(GC) m_gcBacking, pixel); - } - } - } - else - m_brush.GetColour().SetPixel(oldBrushColour.GetPixel()); -} - -void wxWindowDC::SetBackground( const wxBrush &brush ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) - return; - - int pixel = m_backgroundBrush.GetColour().AllocColour(m_display); - - // New behaviour, 10/2/99: setting the background brush of a DC - // doesn't affect the window background colour. -/* - // XSetWindowBackground doesn't work for non-Window pixmaps - if (!this->IsKindOf(CLASSINFO(wxMemoryDC))) - XSetWindowBackground ((Display*) m_display, (Pixmap) m_pixmap, pixel); -*/ - - // Necessary for ::DrawIcon, which use fg/bg pixel or the GC. - // And Blit,... (Any fct that use XCopyPlane, in fact.) - XSetBackground ((Display*) m_display, (GC) m_gc, pixel); - if (m_window && m_window->GetBackingPixmap()) - XSetBackground ((Display*) m_display,(GC) m_gcBacking, pixel); -} - -void wxWindowDC::SetLogicalFunction( int function ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - int x_function; - - /* MATTHEW: [9] */ - if (m_logicalFunction == function) - return; - - switch (function) - { - case wxCLEAR: - x_function = GXclear; - break; - case wxXOR: - x_function = GXxor; - break; - case wxINVERT: - x_function = GXinvert; - break; - case wxOR_REVERSE: - x_function = GXorReverse; - break; - case wxAND_REVERSE: - x_function = GXandReverse; - break; - case wxAND: - x_function = GXand; - break; - case wxOR: - x_function = GXor; - break; - case wxAND_INVERT: - x_function = GXandInverted; - break; - case wxNO_OP: - x_function = GXnoop; - break; - case wxNOR: - x_function = GXnor; - break; - case wxEQUIV: - x_function = GXequiv; - break; - case wxSRC_INVERT: - x_function = GXcopyInverted; - break; - case wxOR_INVERT: - x_function = GXorInverted; - break; - case wxNAND: - x_function = GXnand; - break; - case wxSET: - x_function = GXset; - break; - case wxCOPY: - default: - x_function = GXcopy; - break; - } - - XSetFunction((Display*) m_display, (GC) m_gc, x_function); - if (m_window && m_window->GetBackingPixmap()) - XSetFunction((Display*) m_display, (GC) m_gcBacking, x_function); - - if ((m_logicalFunction == wxXOR) != (function == wxXOR)) - /* MATTHEW: [9] Need to redo pen simply */ - m_autoSetting |= 0x2; - - m_logicalFunction = function; - -} - -void wxWindowDC::SetTextForeground( const wxColour &col ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - if (m_textForegroundColour == col) - return; - - m_textForegroundColour = col; - -} - -void wxWindowDC::SetTextBackground( const wxColour &col ) -{ - wxCHECK_RET( Ok(), "invalid dc" ); - - if (m_textBackgroundColour == col) - return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) - return; -} - -void wxWindowDC::SetBackgroundMode( int mode ) -{ - m_backgroundMode = mode; -} - -void wxWindowDC::SetPalette( const wxPalette& palette ) -{ - if (m_window) - { - if (palette.Ok()) - /* Use GetXColormap */ - XSetWindowColormap ((Display*) m_display, (Window) m_window->GetXWindow(), - (Colormap) palette.GetXColormap()); - else - /* Use wxGetMainColormap */ - XSetWindowColormap ((Display*) m_display, (Window) m_window->GetXWindow(), - (Colormap) wxTheApp->GetMainColormap(m_display)); - } -} - -// Helper function -void wxWindowDC::SetDCClipping() -{ - // m_userRegion is the region set by calling SetClippingRegion - - if (m_currentRegion) - XDestroyRegion ((Region) m_currentRegion); - - // We need to take into account - // clipping imposed on a window by a repaint. - // We'll combine it with the user region. But for now, - // just use the currently-defined user clipping region. - if (m_userRegion || (m_window && m_window->GetUpdateRegion().Ok()) ) - m_currentRegion = (WXRegion) XCreateRegion (); - else - m_currentRegion = (WXRegion) NULL; - - if ((m_window && m_window->GetUpdateRegion().Ok()) && m_userRegion) - XIntersectRegion ((Region) m_window->GetUpdateRegion().GetXRegion(), (Region) m_userRegion, (Region) m_currentRegion); - else if (m_userRegion) - XIntersectRegion ((Region) m_userRegion, (Region) m_userRegion, (Region) m_currentRegion); - else if (m_window && m_window->GetUpdateRegion().Ok()) - XIntersectRegion ((Region) m_window->GetUpdateRegion().GetXRegion(), (Region) m_window->GetUpdateRegion().GetXRegion(), - (Region) m_currentRegion); - - if (m_currentRegion) - { - XSetRegion ((Display*) m_display, (GC) m_gc, (Region) m_currentRegion); - } - else - { - XSetClipMask ((Display*) m_display, (GC) m_gc, None); - } - -} - -void wxWindowDC::DoSetClippingRegion( long x, long y, long width, long height ) -{ - wxDC::SetClippingRegion( x, y, width, height ); - - if (m_userRegion) - XDestroyRegion ((Region) m_userRegion); - m_userRegion = (WXRegion) XCreateRegion (); - XRectangle r; - r.x = XLOG2DEV (x); - r.y = YLOG2DEV (y); - r.width = XLOG2DEVREL(width); - r.height = YLOG2DEVREL(height); - XUnionRectWithRegion (&r, (Region) m_userRegion, (Region) m_userRegion); - - SetDCClipping (); - - // Needs to work differently for Pixmap: without this, - // there's a nasty (Display*) m_display bug. 8/12/94 - if (m_window && m_window->GetBackingPixmap()) - { - XRectangle rects[1]; - rects[0].x = XLOG2DEV_2(x); - rects[0].y = YLOG2DEV_2(y); - rects[0].width = XLOG2DEVREL(width); - rects[0].height = YLOG2DEVREL(height); - XSetClipRectangles((Display*) m_display, (GC) m_gcBacking, 0, 0, rects, 1, Unsorted); - } -} - -void wxWindowDC::DoSetClippingRegionAsRegion( const wxRegion& region ) -{ - wxRect box = region.GetBox(); - - wxDC::SetClippingRegion( box.x, box.y, box.width, box.height ); - - if (m_userRegion) - XDestroyRegion ((Region) m_userRegion); - m_userRegion = (WXRegion) XCreateRegion (); - - XUnionRegion((Region) m_userRegion, (Region) region.GetXRegion(), (Region) m_userRegion); - - SetDCClipping (); - - // Needs to work differently for Pixmap: without this, - // there's a nasty (Display*) m_display bug. 8/12/94 - if (m_window && m_window->GetBackingPixmap()) - { - XRectangle rects[1]; - rects[0].x = XLOG2DEV_2(box.x); - rects[0].y = YLOG2DEV_2(box.y); - rects[0].width = XLOG2DEVREL(box.width); - rects[0].height = YLOG2DEVREL(box.height); - XSetClipRectangles((Display*) m_display, (GC) m_gcBacking, 0, 0, rects, 1, Unsorted); - } -} - - -void wxWindowDC::DestroyClippingRegion() -{ - wxDC::DestroyClippingRegion(); - - if (m_userRegion) - XDestroyRegion ((Region) m_userRegion); - m_userRegion = NULL; - - SetDCClipping (); - - XGCValues gc_val; - gc_val.clip_mask = None; - if (m_window && m_window->GetBackingPixmap()) - XChangeGC((Display*) m_display, (GC) m_gcBacking, GCClipMask, &gc_val); -} - -// Resolution in pixels per logical inch -wxSize wxWindowDC::GetPPI() const -{ - return wxSize(100, 100); -} - -int wxWindowDC::GetDepth() const -{ - // TODO - return 24; -} - -// ---------------------------------------------------------------------------- -// wxPaintDC -// ---------------------------------------------------------------------------- - -wxPaintDC::wxPaintDC(wxWindow* win) : wxWindowDC(win) -{ - wxRegion* region = NULL; - - // Combine all the update rects into a region - const wxRectList& updateRects(win->GetUpdateRects()); - if ( updateRects.GetCount() != 0 ) - { - for ( wxRectList::Node *node = updateRects.GetFirst(); - node; - node = node->GetNext() ) - { - wxRect* rect = node->GetData(); - - if (!region) - region = new wxRegion(*rect); - else - // TODO: is this correct? In SetDCClipping above, - // XIntersectRegion is used to combine paint and user - // regions. XIntersectRegion appears to work in that case... - region->Union(*rect); - } - } - else - { - int cw, ch; - win->GetClientSize(&cw, &ch); - region = new wxRegion(wxRect(0, 0, cw, ch)); - } - - win->SetUpdateRegion(*region); - - // Set the clipping region. Any user-defined region will be combined with this - // one in SetDCClipping. - XSetRegion ((Display*) m_display, (GC) m_gc, (Region) region->GetXRegion()); - - delete region; -} - -wxPaintDC::~wxPaintDC() -{ - XSetClipMask ((Display*) m_display, (GC) m_gc, None); - if (m_window) - m_window->ClearUpdateRegion(); -} - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -/* - Used when copying between drawables on different (Display*) m_displays. Not - very fast, but better than giving up. -*/ - -static void XCopyRemote(Display *src_display, Display *dest_display, - Drawable src, Drawable dest, - GC destgc, - int srcx, int srcy, - unsigned int w, unsigned int h, - int destx, int desty, - bool more, XImage **cache) -{ - XImage *image, *destimage; - Colormap destcm, srccm; - static const int CACHE_SIZE = 256; - - unsigned int i, j; - unsigned long cachesrc[CACHE_SIZE], cachedest[CACHE_SIZE]; - int k, cache_pos, all_cache; - - if (!cache || !*cache) - image = XGetImage(src_display, src, srcx, srcy, w, h, AllPlanes, ZPixmap); - else - image = *cache; - - destimage = XGetImage(dest_display, dest, destx, desty, w, h, AllPlanes, ZPixmap); - - srccm = (Colormap) wxTheApp->GetMainColormap((WXDisplay*) src_display); - destcm = (Colormap) wxTheApp->GetMainColormap((WXDisplay*) dest_display); - - cache_pos = 0; - all_cache = FALSE; - - for (i = 0; i < w; i++) - for (j = 0; j < h; j++) { - unsigned long pixel; - XColor xcol; - - pixel = XGetPixel(image, i, j); - for (k = cache_pos; k--; ) - if (cachesrc[k] == pixel) { - pixel = cachedest[k]; - goto install; - } - if (all_cache) - for (k = CACHE_SIZE; k-- > cache_pos; ) - if (cachesrc[k] == pixel) { - pixel = cachedest[k]; - goto install; - } - - cachesrc[cache_pos] = xcol.pixel = pixel; - XQueryColor(src_display, srccm, &xcol); - if (!XAllocColor(dest_display, destcm, &xcol)) - xcol.pixel = 0; - cachedest[cache_pos] = pixel = xcol.pixel; - - if (++cache_pos >= CACHE_SIZE) { - cache_pos = 0; - all_cache = TRUE; - } - -install: - XPutPixel(destimage, i, j, pixel); - } - - XPutImage(dest_display, dest, destgc, destimage, 0, 0, destx, desty, w, h); - XDestroyImage(destimage); - - if (more) - *cache = image; - else - XDestroyImage(image); -} - -#if 0 - -/* Helper function for 16-bit fonts */ -static int str16len(const char *s) -{ - int count = 0; - - while (s[0] && s[1]) { - count++; - s += 2; - } - - return count; -} - -#endif // 0 diff --git a/src/motif/dcmemory.cpp b/src/motif/dcmemory.cpp deleted file mode 100644 index 85291b7c62..0000000000 --- a/src/motif/dcmemory.cpp +++ /dev/null @@ -1,148 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: wxMemoryDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" -#include "wx/utils.h" - -#include - -#include "wx/motif/private.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxWindowDC) - -wxMemoryDC::wxMemoryDC(void) -{ - m_ok = TRUE; - m_display = wxGetDisplay(); - - Display* display = (Display*) m_display; - - XGCValues gcvalues; - gcvalues.foreground = BlackPixel (display, DefaultScreen (display)); - gcvalues.background = WhitePixel (display, DefaultScreen (display)); - gcvalues.graphics_exposures = False; - gcvalues.line_width = 1; - m_gc = (WXGC) XCreateGC (display, RootWindow (display, DefaultScreen (display)), - GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth, - &gcvalues); - - m_backgroundPixel = (int) gcvalues.background; - - // Get the current Font so we can set it back later - XGCValues valReturn; - XGetGCValues((Display*) m_display, (GC) m_gc, GCFont, &valReturn); - m_oldFont = (WXFont) valReturn.font; - SetBrush (* wxWHITE_BRUSH); - SetPen (* wxBLACK_PEN); -}; - -wxMemoryDC::wxMemoryDC( wxDC* dc ) -{ - m_ok = TRUE; - if (dc && dc->IsKindOf(CLASSINFO(wxWindowDC))) - m_display = ((wxWindowDC*)dc)->GetDisplay(); - else - m_display = wxGetDisplay(); - - Display* display = (Display*) m_display; - - XGCValues gcvalues; - gcvalues.foreground = BlackPixel (display, DefaultScreen (display)); - gcvalues.background = WhitePixel (display, DefaultScreen (display)); - gcvalues.graphics_exposures = False; - gcvalues.line_width = 1; - m_gc = (WXGC) XCreateGC (display, RootWindow (display, DefaultScreen (display)), - GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth, - &gcvalues); - - m_backgroundPixel = (int) gcvalues.background; - - // Get the current Font so we can set it back later - XGCValues valReturn; - XGetGCValues((Display*) m_display, (GC) m_gc, GCFont, &valReturn); - m_oldFont = (WXFont) valReturn.font; - SetBrush (* wxWHITE_BRUSH); - SetPen (* wxBLACK_PEN); -}; - -wxMemoryDC::~wxMemoryDC(void) -{ -}; - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_bitmap = bitmap; - - if (m_gc) - XFreeGC((Display*) m_display, (GC) m_gc); - m_gc = (WXGC) NULL; - - if (m_bitmap.Ok() && (bitmap.GetDisplay() == m_display)) - { - m_pixmap = m_bitmap.GetPixmap(); - Display* display = (Display*) m_display; - - XGCValues gcvalues; - gcvalues.foreground = BlackPixel (display, DefaultScreen (display)); - gcvalues.background = WhitePixel (display, DefaultScreen (display)); - gcvalues.graphics_exposures = False; - gcvalues.line_width = 1; - m_gc = (WXGC) XCreateGC (display, RootWindow (display, DefaultScreen (display)), - GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth, - &gcvalues); - - m_backgroundPixel = (int) gcvalues.background; - - // Get the current Font so we can set it back later - XGCValues valReturn; - XGetGCValues((Display*) m_display, (GC) m_gc, GCFont, &valReturn); - m_oldFont = (WXFont) valReturn.font; - - bool oldOpt = GetOptimization(); - SetOptimization(FALSE); - - SetBrush (* wxWHITE_BRUSH); - SetPen (* wxBLACK_PEN); - - SetOptimization(oldOpt); - - m_ok = TRUE; - } - else - { - m_ok = FALSE; - m_pixmap = (WXPixmap) 0; - }; -}; - -void wxMemoryDC::GetSize( int *width, int *height ) const -{ - if (m_bitmap.Ok()) - { - if (width) (*width) = m_bitmap.GetWidth(); - if (height) (*height) = m_bitmap.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - }; -}; - - diff --git a/src/motif/dcscreen.cpp b/src/motif/dcscreen.cpp deleted file mode 100644 index 04c409033f..0000000000 --- a/src/motif/dcscreen.cpp +++ /dev/null @@ -1,127 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: wxScreenDC class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" -#include "wx/utils.h" - -#include - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -#endif - -WXWindow wxScreenDC::sm_overlayWindow = 0; -int wxScreenDC::sm_overlayWindowX = 0; -int wxScreenDC::sm_overlayWindowY = 0; - -// Create a DC representing the whole screen -wxScreenDC::wxScreenDC() -{ - m_display = wxGetDisplay(); - Display* display = (Display*) m_display; - - if (sm_overlayWindow) - { - m_pixmap = sm_overlayWindow; - m_deviceOriginX = - sm_overlayWindowX; - m_deviceOriginY = - sm_overlayWindowY; - } - else - m_pixmap = (WXPixmap) RootWindow(display, DefaultScreen(display)); - - XGCValues gcvalues; - gcvalues.foreground = BlackPixel (display, DefaultScreen (display)); - gcvalues.background = WhitePixel (display, DefaultScreen (display)); - gcvalues.graphics_exposures = False; - gcvalues.subwindow_mode = IncludeInferiors; - gcvalues.line_width = 1; - m_gc = XCreateGC (display, RootWindow (display, DefaultScreen (display)), - GCForeground | GCBackground | GCGraphicsExposures | GCLineWidth | GCSubwindowMode, - &gcvalues); - - m_backgroundPixel = (int) gcvalues.background; - m_ok = TRUE; -} - -wxScreenDC::~wxScreenDC() -{ -} - -bool wxScreenDC::StartDrawingOnTop(wxWindow* window) -{ - wxRect rect; - int x, y, width, height; - window->GetPosition(& x, & y); - if (window->GetParent()) - window->GetParent()->ClientToScreen(& x, & y); - window->GetSize(& width, & height); - rect.x = x; rect.y = y; - rect.width = width; rect.height = height; - - return StartDrawingOnTop(& rect); -} - -bool wxScreenDC::StartDrawingOnTop(wxRect* rect) -{ - if (sm_overlayWindow) - return FALSE; - - Display *dpy = (Display*) wxGetDisplay(); - Pixmap screenPixmap = RootWindow(dpy, DefaultScreen(dpy)); - - int x = 0; - int y = 0; - int width, height; - wxDisplaySize(&width, &height); - - if (rect) - { - x = rect->x; y = rect->y; - width = rect->width; height = rect->height; - } - sm_overlayWindowX = x; - sm_overlayWindowY = y; - - XSetWindowAttributes attributes; - attributes.override_redirect = True; - unsigned long valueMask = CWOverrideRedirect; - - sm_overlayWindow = (WXWindow) XCreateWindow(dpy, screenPixmap, x, y, width, height, 0, - wxDisplayDepth(), InputOutput, - DefaultVisual(dpy, 0), valueMask, - & attributes); - - if (sm_overlayWindow) - { - XMapWindow(dpy, (Window) sm_overlayWindow); - return TRUE; - } - else - return FALSE; -} - -bool wxScreenDC::EndDrawingOnTop() -{ - if (sm_overlayWindow) - { - XDestroyWindow((Display*) wxGetDisplay(), (Window) sm_overlayWindow); - sm_overlayWindow = 0; - return TRUE; - } - else - return FALSE; -} diff --git a/src/motif/dialog.cpp b/src/motif/dialog.cpp deleted file mode 100644 index 41d930d7f1..0000000000 --- a/src/motif/dialog.cpp +++ /dev/null @@ -1,696 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: wxDialog class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/settings.h" - -#include - -#include -#if XmVersion >= 1002 -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if XmVersion > 1000 -#include -#endif - -#include "wx/motif/private.h" - -static void wxCloseDialogCallback(Widget widget, XtPointer client_data, XmAnyCallbackStruct *cbs); -static void wxDialogBoxEventHandler (Widget wid, - XtPointer client_data, - XEvent* event, - Boolean *continueToDispatch); - -static void wxUnmapBulletinBoard(Widget dialog, wxDialog *client,XtPointer call); - -// A stack of modal_showing flags, since we can't rely -// on accessing wxDialog::m_modalShowing within -// wxDialog::Show in case a callback has deleted the wxDialog. -static wxList wxModalShowingStack; - -// Lists to keep track of windows, so we can disable/enable them -// for modal dialogs -wxList wxModalDialogs; -wxList wxModelessWindows; // Frames and modeless dialogs -extern wxList wxPendingDelete; - -#define wxUSE_INVISIBLE_RESIZE 1 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - -BEGIN_EVENT_TABLE(wxDialog, wxPanel) -EVT_BUTTON(wxID_OK, wxDialog::OnOK) -EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) -EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) -EVT_CHAR_HOOK(wxDialog::OnCharHook) -EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) -EVT_CLOSE(wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -wxDialog::wxDialog() -{ - m_modalShowing = FALSE; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); -} - -bool wxDialog::Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_windowStyle = style; - m_modalShowing = FALSE; - m_dialogTitle = title; - - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - m_foregroundColour = *wxBLACK; - - SetName(name); - - if (!parent) - wxTopLevelWindows.Append(this); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - Widget parentWidget = (Widget) 0; - if (parent) - parentWidget = (Widget) parent->GetTopWidget(); - if (!parent) - parentWidget = (Widget) wxTheApp->GetTopLevelWidget(); - - wxASSERT_MSG( (parentWidget != (Widget) 0), "Could not find a suitable parent shell for dialog." ); - - Arg args[2]; - XtSetArg (args[0], XmNdefaultPosition, False); - XtSetArg (args[1], XmNautoUnmanage, False); - Widget dialogShell = XmCreateBulletinBoardDialog(parentWidget, (char*) (const char*) name, args, 2); - m_mainWidget = (WXWidget) dialogShell; - - // We don't want margins, since there is enough elsewhere. - XtVaSetValues(dialogShell, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - XmNresizePolicy, XmRESIZE_NONE, - NULL) ; - - Widget shell = XtParent(dialogShell) ; - if (!title.IsNull()) - { - XmString str = XmStringCreateSimple((char*) (const char*)title); - XtVaSetValues(dialogShell, - XmNdialogTitle, str, - NULL); - XmStringFree(str); - } - - m_windowFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - ChangeFont(FALSE); - - wxAddWindowToTable(dialogShell, this); - - // Intercept CLOSE messages from the window manager - Atom WM_DELETE_WINDOW = XmInternAtom(XtDisplay(shell), "WM_DELETE_WINDOW", False); - - /* Remove and add WM_DELETE_WINDOW so ours is only handler */ - /* Why do we have to do this for wxDialog, but not wxFrame? */ - XmRemoveWMProtocols(shell, &WM_DELETE_WINDOW, 1); - XmAddWMProtocols(shell, &WM_DELETE_WINDOW, 1); - XmActivateWMProtocol(shell, WM_DELETE_WINDOW); - - // Modified Steve Hammes for Motif 2.0 -#if (XmREVISION > 1 || XmVERSION > 1) - XmAddWMProtocolCallback(shell, WM_DELETE_WINDOW, (XtCallbackProc) wxCloseDialogCallback, (XtPointer)this); -#elif XmREVISION == 1 - XmAddWMProtocolCallback(shell, WM_DELETE_WINDOW, (XtCallbackProc) wxCloseDialogCallback, (caddr_t)this); -#else - XmAddWMProtocolCallback(shell, WM_DELETE_WINDOW, (void (*)())wxCloseDialogCallback, (caddr_t)this); -#endif - - XtTranslations ptr ; - XtOverrideTranslations(dialogShell, - ptr = XtParseTranslationTable(": resize()")); - XtFree((char *)ptr); - - // Can't remember what this was about... but I think it's necessary. - - if (wxUSE_INVISIBLE_RESIZE) - { - if (pos.x > -1) - XtVaSetValues(dialogShell, XmNx, pos.x, - NULL); - if (pos.y > -1) - XtVaSetValues(dialogShell, XmNy, pos.y, - NULL); - - if (size.x > -1) - XtVaSetValues(dialogShell, XmNwidth, size.x, NULL); - if (size.y > -1) - XtVaSetValues(dialogShell, XmNheight, size.y, NULL); - } - - // This patch come from Torsten Liermann lier@lier1.muc.de - if (XmIsMotifWMRunning(shell)) - { - int decor = 0 ; - if (m_windowStyle & wxRESIZE_BORDER) - decor |= MWM_DECOR_RESIZEH ; - if (m_windowStyle & wxSYSTEM_MENU) - decor |= MWM_DECOR_MENU; - if ((m_windowStyle & wxCAPTION) || - (m_windowStyle & wxTINY_CAPTION_HORIZ) || - (m_windowStyle & wxTINY_CAPTION_VERT)) - decor |= MWM_DECOR_TITLE; - if (m_windowStyle & wxTHICK_FRAME) - decor |= MWM_DECOR_BORDER; - if (m_windowStyle & wxMINIMIZE_BOX) - decor |= MWM_DECOR_MINIMIZE; - if (m_windowStyle & wxMAXIMIZE_BOX) - decor |= MWM_DECOR_MAXIMIZE; - - XtVaSetValues(shell,XmNmwmDecorations,decor,NULL) ; - } - // This allows non-Motif window managers to support at least the - // no-decorations case. - else - { - if ((m_windowStyle & wxCAPTION) != wxCAPTION) - XtVaSetValues((Widget) shell,XmNoverrideRedirect,TRUE,NULL); - } - - XtRealizeWidget(dialogShell); - - XtAddCallback(dialogShell,XmNunmapCallback, - (XtCallbackProc)wxUnmapBulletinBoard,this) ; - - // Positioning of the dialog doesn't work properly unless the dialog - // is managed, so we manage without mapping to the screen. - // To show, we map the shell (actually it's parent). - if (!wxUSE_INVISIBLE_RESIZE) - XtVaSetValues(shell, XmNmappedWhenManaged, FALSE, NULL); - - if (!wxUSE_INVISIBLE_RESIZE) - { - XtManageChild(dialogShell); - SetSize(pos.x, pos.y, size.x, size.y); - } - XtAddEventHandler(dialogShell,ExposureMask,FALSE, - wxUniversalRepaintProc, (XtPointer) this); - - XtAddEventHandler(dialogShell, - ButtonPressMask | ButtonReleaseMask | PointerMotionMask | KeyPressMask, - FALSE, - wxDialogBoxEventHandler, - (XtPointer)this); - - ChangeBackgroundColour(); - - return TRUE; -} - -void wxDialog::SetModal(bool flag) -{ - if ( flag ) - m_windowStyle |= wxDIALOG_MODAL ; - else - if ( m_windowStyle & wxDIALOG_MODAL ) - m_windowStyle -= wxDIALOG_MODAL ; - - wxModelessWindows.DeleteObject(this); - if (!flag) - wxModelessWindows.Append(this); -} - -wxDialog::~wxDialog() -{ - if (m_mainWidget) - XtRemoveEventHandler((Widget) m_mainWidget, ExposureMask, FALSE, - wxUniversalRepaintProc, (XtPointer) this); - - m_modalShowing = FALSE; - if (!wxUSE_INVISIBLE_RESIZE && m_mainWidget) - { - XtUnmapWidget((Widget) m_mainWidget); - } - - wxTopLevelWindows.DeleteObject(this); - - if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL ) - wxModelessWindows.DeleteObject(this); - - // If this is the last top-level window, exit. - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - wxTheApp->ExitMainLoop(); - } - } - - // This event-flushing code used to be in wxWindow::PostDestroyChildren (wx_dialog.cpp) - // but I think this should work, if we destroy the children first. - // Note that this might need to be done for wxFrame also. - DestroyChildren(); - - // The idea about doing it here is that if you have to remove the - // XtDestroyWidget from ~wxWindow, at least top-level windows - // will still be deleted (and destroy children implicitly). - if (GetMainWidget()) - { - DetachWidget(GetMainWidget()); // Removes event handlers - XtDestroyWidget((Widget) GetMainWidget()); - SetMainWidget((WXWidget) NULL); - } -} - -// By default, pressing escape cancels the dialog -void wxDialog::OnCharHook(wxKeyEvent& event) -{ - if (event.m_keyCode == WXK_ESCAPE) - { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - - return; - } - // We didn't process this event. - event.Skip(); -} - -void wxDialog::Iconize(bool WXUNUSED(iconize)) -{ - // Can't iconize a dialog in Motif, apparently - // TODO: try using the parent of m_mainShell. - // XtVaSetValues((Widget) m_mainWidget, XmNiconic, iconize, NULL); -} - -bool wxDialog::IsIconized() const -{ -/* -Boolean iconic; -XtVaGetValues((Widget) m_mainWidget, XmNiconic, &iconic, NULL); - - return iconic; - */ - return FALSE; -} - -void wxDialog::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - XtVaSetValues((Widget) m_mainWidget, XmNresizePolicy, XmRESIZE_ANY, NULL); - wxWindow::DoSetSize(x, y, width, height, sizeFlags); - XtVaSetValues((Widget) m_mainWidget, XmNresizePolicy, XmRESIZE_NONE, NULL); -} - -void wxDialog::DoSetClientSize(int width, int height) -{ - wxWindow::SetSize(-1, -1, width, height); -} - -void wxDialog::SetTitle(const wxString& title) -{ - m_dialogTitle = title; - if (!title.IsNull()) - { - XmString str = XmStringCreateSimple((char*) (const char*) title); - XtVaSetValues((Widget) m_mainWidget, - XmNtitle, (char*) (const char*) title, - XmNdialogTitle, str, // Roberto Cocchi - XmNiconName, (char*) (const char*) title, - NULL); - XmStringFree(str); - } -} - -wxString wxDialog::GetTitle() const -{ - return m_dialogTitle; -} - -void wxDialog::Centre(int direction) -{ - int x_offset,y_offset ; - int display_width, display_height; - int width, height, x, y; - wxWindow *parent = GetParent(); - if ((direction & wxCENTER_FRAME) && parent) - { - parent->GetPosition(&x_offset,&y_offset) ; - parent->GetSize(&display_width,&display_height) ; - } - else - { - wxDisplaySize(&display_width, &display_height); - x_offset = 0 ; - y_offset = 0 ; - } - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x+x_offset, y+y_offset, width, height); -} - -void wxDialog::Raise() -{ - Window parent_window = XtWindow((Widget) m_mainWidget), - next_parent = XtWindow((Widget) m_mainWidget), - root = RootWindowOfScreen(XtScreen((Widget) m_mainWidget)); - // search for the parent that is child of ROOT, because the WM may - // reparent twice and notify only the next parent (like FVWM) - while (next_parent != root) { - Window *theChildren; unsigned int n; - parent_window = next_parent; - XQueryTree(XtDisplay((Widget) m_mainWidget), parent_window, &root, - &next_parent, &theChildren, &n); - XFree(theChildren); // not needed - } - XRaiseWindow(XtDisplay((Widget) m_mainWidget), parent_window); -} - -void wxDialog::Lower() -{ - Window parent_window = XtWindow((Widget) m_mainWidget), - next_parent = XtWindow((Widget) m_mainWidget), - root = RootWindowOfScreen(XtScreen((Widget) m_mainWidget)); - // search for the parent that is child of ROOT, because the WM may - // reparent twice and notify only the next parent (like FVWM) - while (next_parent != root) { - Window *theChildren; unsigned int n; - parent_window = next_parent; - XQueryTree(XtDisplay((Widget) m_mainWidget), parent_window, &root, - &next_parent, &theChildren, &n); - XFree(theChildren); // not needed - } - XLowerWindow(XtDisplay((Widget) m_mainWidget), parent_window); -} - -bool wxDialog::Show(bool show) -{ - m_isShown = show; - - if (show) - { - if (!wxUSE_INVISIBLE_RESIZE) - XtMapWidget(XtParent((Widget) m_mainWidget)); - else - XtManageChild((Widget) m_mainWidget) ; - - XRaiseWindow(XtDisplay((Widget) m_mainWidget), XtWindow((Widget) m_mainWidget)); - - } - else - { - if (!wxUSE_INVISIBLE_RESIZE) - XtUnmapWidget(XtParent((Widget) m_mainWidget)); - else - XtUnmanageChild((Widget) m_mainWidget) ; - - XFlush(XtDisplay((Widget) wxTheApp->GetTopLevelWidget())); - XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE); - } - - return TRUE; -} - -// Shows a dialog modally, returning a return code -int wxDialog::ShowModal() -{ - m_windowStyle |= wxDIALOG_MODAL; - - Show(TRUE); - - if (m_modalShowing) - return 0; - - wxModalShowingStack.Insert((wxObject *)TRUE); - - m_modalShowing = TRUE; - XtAddGrab((Widget) m_mainWidget, TRUE, FALSE); - - XEvent event; - - // Loop until we signal that the dialog should be closed - while ((wxModalShowingStack.Number() > 0) && ((int)(wxModalShowingStack.First()->Data()) != 0)) - { - // XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll); - - XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event); - wxTheApp->ProcessXEvent((WXEvent*) &event); - } - - // Remove modal dialog flag from stack - wxNode *node = wxModalShowingStack.First(); - if (node) - delete node; - - // Now process all events in case they get sent to a destroyed dialog - XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE); - while (XtAppPending((XtAppContext) wxTheApp->GetAppContext())) - { - XFlush(XtDisplay((Widget) wxTheApp->GetTopLevelWidget())); - XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event); - - wxTheApp->ProcessXEvent((WXEvent*) &event); - } - - // TODO: is it safe to call this, if the dialog may have been deleted - // by now? Probably only if we're using delayed deletion of dialogs. - return GetReturnCode(); -} - -void wxDialog::EndModal(int retCode) -{ - if (!m_modalShowing) - return; - - SetReturnCode(retCode); - - // Strangely, we don't seem to need this now. - // XtRemoveGrab((Widget) m_mainWidget); - - Show(FALSE); - - m_modalShowing = FALSE; - - wxNode *node = wxModalShowingStack.First(); - if (node) - node->SetData((wxObject *)FALSE); -} - -// Standard buttons -void wxDialog::OnOK(wxCommandEvent& WXUNUSED(event)) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnApply(wxCommandEvent& WXUNUSED(event)) -{ - if (Validate()) - TransferDataFromWindow(); - // TODO probably need to disable the Apply button until things change again -} - -void wxDialog::OnCancel(wxCommandEvent& WXUNUSED(event)) -{ - if ( IsModal() ) - EndModal(wxID_CANCEL); - else - { - SetReturnCode(wxID_CANCEL); - this->Show(FALSE); - } -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList closing; - - if ( closing.Member(this) ) - return; - - closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog - - closing.DeleteObject(this); -} - -// Destroy the window (delayed, if a managed window) -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& WXUNUSED(event)) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); -} - -void wxDialog::Fit() -{ - wxWindow::Fit(); -} - -// Handle a close event from the window manager -static void wxCloseDialogCallback( Widget WXUNUSED(widget), XtPointer client_data, - XmAnyCallbackStruct *WXUNUSED(cbs)) -{ - wxDialog *dialog = (wxDialog *)client_data; - wxCloseEvent closeEvent(wxEVT_CLOSE_WINDOW, dialog->GetId()); - closeEvent.SetEventObject(dialog); - - // May delete the dialog (with delayed deletion) - dialog->GetEventHandler()->ProcessEvent(closeEvent); -} - -void wxDialogBoxEventHandler (Widget wid, - XtPointer WXUNUSED(client_data), - XEvent* event, - Boolean *continueToDispatch) -{ - wxDialog *dialog = (wxDialog *)wxWidgetHashTable->Get((long)wid); - if (dialog) - { - wxMouseEvent wxevent(wxEVT_NULL); - if (wxTranslateMouseEvent(wxevent, dialog, wid, event)) - { - wxevent.SetEventObject(dialog); - wxevent.SetId(dialog->GetId()); - dialog->GetEventHandler()->ProcessEvent(wxevent); - } - else - { - // An attempt to implement OnCharHook by calling OnCharHook first; - // if this returns TRUE, set continueToDispatch to False - // (don't continue processing). - // Otherwise set it to True and call OnChar. - wxKeyEvent keyEvent(wxEVT_CHAR); - if (wxTranslateKeyEvent(keyEvent, dialog, wid, event)) - { - keyEvent.SetEventObject(dialog); - keyEvent.SetId(dialog->GetId()); - keyEvent.SetEventType(wxEVT_CHAR_HOOK); - if (dialog->GetEventHandler()->ProcessEvent(keyEvent)) - { - *continueToDispatch = False; - return; - } - else - { - // For simplicity, OnKeyDown is the same as OnChar - // TODO: filter modifier key presses from OnChar - keyEvent.SetEventType(wxEVT_KEY_DOWN); - - // Only process OnChar if OnKeyDown didn't swallow it - if (!dialog->GetEventHandler()->ProcessEvent (keyEvent)) - { - keyEvent.SetEventType(wxEVT_CHAR); - dialog->GetEventHandler()->ProcessEvent(keyEvent); - } - } - } - } - } - *continueToDispatch = True; -} - -static void wxUnmapBulletinBoard(Widget WXUNUSED(dialog), wxDialog *WXUNUSED(client), XtPointer WXUNUSED(call) ) -{ -/* This gets called when the dialog is being shown, which -* defeats modal showing. -client->m_modalShowing = FALSE ; -client->m_isShown = FALSE; - */ -} - -void wxDialog::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxDialog::ChangeBackgroundColour() -{ - if (GetMainWidget()) - DoChangeBackgroundColour(GetMainWidget(), m_backgroundColour); -} - -void wxDialog::ChangeForegroundColour() -{ - if (GetMainWidget()) - DoChangeForegroundColour(GetMainWidget(), m_foregroundColour); -} - diff --git a/src/motif/dirdlg.cpp b/src/motif/dirdlg.cpp deleted file mode 100644 index 56828d883f..0000000000 --- a/src/motif/dirdlg.cpp +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dirdlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/dirdlg.h" - -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif - -wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, - const wxString& defaultPath, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = defaultPath; -} - -int wxDirDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/motif/dnd.cpp b/src/motif/dnd.cpp deleted file mode 100644 index e9e57e42f8..0000000000 --- a/src/motif/dnd.cpp +++ /dev/null @@ -1,238 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget, wxDropSource classes -// Author: Julian Smart -// Id: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/setup.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/dnd.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" -#include "wx/intl.h" -#include "wx/utils.h" -#include "wx/log.h" - -#include - -// ---------------------------------------------------------------------------- -// global -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxDropTarget -// ---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ -} - -wxDropTarget::~wxDropTarget() -{ -} - -// ---------------------------------------------------------------------------- -// wxTextDropTarget -// ---------------------------------------------------------------------------- - -bool wxTextDropTarget::OnDrop( long x, long y, const void *data, size_t WXUNUSED(size) ) -{ - OnDropText( x, y, (const char*)data ); - return TRUE; -} - -bool wxTextDropTarget::OnDropText( long x, long y, const char *psz ) -{ - wxLogDebug( "Got dropped text: %s.", psz ); - wxLogDebug( "At x: %d, y: %d.", (int)x, (int)y ); - return TRUE; -} - -size_t wxTextDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxTextDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_TEXT; -} - -// ---------------------------------------------------------------------------- -// wxFileDropTarget -// ---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnDropFiles( long x, long y, size_t nFiles, const char * const aszFiles[] ) -{ - wxLogDebug( "Got %d dropped files.", (int)nFiles ); - wxLogDebug( "At x: %d, y: %d.", (int)x, (int)y ); - size_t i; - for (i = 0; i < nFiles; i++) - { - wxLogDebug( aszFiles[i] ); - } - return TRUE; -} - -bool wxFileDropTarget::OnDrop(long x, long y, const void *data, size_t size ) -{ - size_t number = 0; - char *text = (char*) data; - size_t i; - for (i = 0; i < size; i++) - if (text[i] == 0) number++; - - if (number == 0) return TRUE; - - char **files = new char*[number]; - - text = (char*) data; - for ( i = 0; i < number; i++) - { - files[i] = text; - int len = strlen( text ); - text += len+1; - } - - bool ret = OnDropFiles( x, y, 1, files ); - - free( files ); - - return ret; -} - -size_t wxFileDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxFileDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_FILENAME; -} - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -wxDropSource::wxDropSource( wxWindow *win ) -{ -#if 0 - m_window = win; - m_data = (wxDataObject *) NULL; - m_retValue = wxDragCancel; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -#endif -} - -wxDropSource::wxDropSource( wxDataObject &data, wxWindow *win ) -{ -#if 0 - g_blockEventsOnDrag = TRUE; - - m_window = win; - m_widget = win->m_widget; - if (win->m_wxwindow) m_widget = win->m_wxwindow; - m_retValue = wxDragCancel; - - m_data = &data; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -#endif -} - -void wxDropSource::SetData( wxDataObject &data ) -{ -// m_data = &data; -} - -wxDropSource::~wxDropSource(void) -{ -// if (m_data) delete m_data; -} - -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - // wxASSERT_MSG( m_data, "wxDragSource: no data" ); - - return wxDragNone; -#if 0 - if (!m_data) return (wxDragResult) wxDragNone; - if (m_data->GetDataSize() == 0) return (wxDragResult) wxDragNone; - - RegisterWindow(); - - // TODO - - UnregisterWindow(); - - g_blockEventsOnDrag = FALSE; - - return m_retValue; -#endif -} - -#if 0 -void wxDropSource::RegisterWindow(void) -{ - if (!m_data) return; - - wxString formats; - - wxDataFormat df = m_data->GetPreferredFormat(); - - switch (df) - { - case wxDF_TEXT: - formats += "text/plain"; - break; - case wxDF_FILENAME: - formats += "file:ALL"; - break; - default: - break; - } - - char *str = WXSTRINGCAST formats; - - // TODO -} - -void wxDropSource::UnregisterWindow(void) -{ - if (!m_widget) return; - - // TODO -} -#endif - -wxPrivateDropTarget::wxPrivateDropTarget() -{ - m_id = wxTheApp->GetAppName(); -} - -size_t wxPrivateDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxPrivateDropTarget::GetFormat(size_t n) const -{ - return wxDF_INVALID; -} - -#endif - // wxUSE_DRAG_AND_DROP diff --git a/src/motif/fdiag.xbm b/src/motif/fdiag.xbm deleted file mode 100644 index 67d3b4732a..0000000000 --- a/src/motif/fdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define fdiag_width 16 -#define fdiag_height 16 -static char fdiag_bits[] = { - 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, - 0x40, 0x40, 0x80, 0x80, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, - 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80}; diff --git a/src/motif/filedlg.cpp b/src/motif/filedlg.cpp deleted file mode 100644 index ed6a27f875..0000000000 --- a/src/motif/filedlg.cpp +++ /dev/null @@ -1,360 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: wxFileDialog -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/filedlg.h" -#include "wx/intl.h" -#include "wx/app.h" -#include "wx/settings.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxFileDialog, wxDialog) -#endif - -#define DEFAULT_FILE_SELECTOR_SIZE 0 -// Let Motif defines the size of File -// Selector Box (if 1), or fix it to -// wxFSB_WIDTH x wxFSB_HEIGHT (if 0) -#define wxFSB_WIDTH 600 -#define wxFSB_HEIGHT 500 - - -wxString wxFileSelector(const char *title, - const char *defaultDir, const char *defaultFileName, - const char *defaultExtension, const char *filter, int flags, - wxWindow *parent, int x, int y) -{ - // If there's a default extension specified but no filter, we create a suitable - // filter. - - wxString filter2(""); - if ( defaultExtension && !filter ) - filter2 = wxString("*.") + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - else - defaultDirString = ""; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - else - defaultFilenameString = ""; - - wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - return fileDialog.GetPath(); - } - else - return wxEmptyString; -} - -wxString wxFileSelectorEx(const char *title, - const char *defaultDir, - const char *defaultFileName, - int* defaultFilterIndex, - const char *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "", - defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - return fileDialog.GetPath(); - } - else - return wxEmptyString; -} - -wxString wxFileDialog::m_fileSelectorAnswer = ""; -bool wxFileDialog::m_fileSelectorReturned = FALSE; - -void wxFileSelCancel( Widget WXUNUSED(fs), XtPointer WXUNUSED(client_data), - XmFileSelectionBoxCallbackStruct *WXUNUSED(cbs) ) -{ - wxFileDialog::m_fileSelectorAnswer = ""; - wxFileDialog::m_fileSelectorReturned = TRUE; -} - -void wxFileSelOk(Widget WXUNUSED(fs), XtPointer WXUNUSED(client_data), XmFileSelectionBoxCallbackStruct *cbs) -{ - char *filename = NULL; - if (!XmStringGetLtoR(cbs->value, XmSTRING_DEFAULT_CHARSET, &filename)) { - wxFileDialog::m_fileSelectorAnswer = ""; - wxFileDialog::m_fileSelectorReturned = TRUE; - } else { - if (filename) { - wxFileDialog::m_fileSelectorAnswer = filename; - XtFree(filename); - } - wxFileDialog::m_fileSelectorReturned = TRUE; - } -} - -wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = ""; - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_filterIndex = 1; - m_pos = pos; -} - -static void wxChangeListBoxColours(wxWindow* win, Widget widget) -{ - win->DoChangeBackgroundColour((WXWidget) widget, *wxWHITE); - - // Change colour of the scrolled areas of the listboxes - Widget listParent = XtParent (widget); - win->DoChangeBackgroundColour((WXWidget) listParent, *wxWHITE, TRUE); - - Widget hsb = (Widget) 0; - Widget vsb = (Widget) 0; - XtVaGetValues (listParent, - XmNhorizontalScrollBar, &hsb, - XmNverticalScrollBar, &vsb, - NULL); - - /* TODO: should scrollbars be affected? Should probably have separate - * function to change them (by default, taken from wxSystemSettings) - */ - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - win->DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE); - win->DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE); - - if (hsb) - XtVaSetValues (hsb, - XmNtroughColor, backgroundColour.AllocColour(XtDisplay(hsb)), - NULL); - if (vsb) - XtVaSetValues (vsb, - XmNtroughColor, backgroundColour.AllocColour(XtDisplay(vsb)), - NULL); -} - -int wxFileDialog::ShowModal() -{ - wxBeginBusyCursor(); - - // static char fileBuf[512]; - Widget parentWidget = (Widget) 0; - if (m_parent) - { - parentWidget = (Widget) m_parent->GetTopWidget(); - } - else - parentWidget = (Widget) wxTheApp->GetTopLevelWidget(); - - Widget fileSel = XmCreateFileSelectionDialog(parentWidget, "file_selector", NULL, 0); - XtUnmanageChild(XmFileSelectionBoxGetChild(fileSel, XmDIALOG_HELP_BUTTON)); - - Widget filterWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_FILTER_TEXT); - Widget selectionWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_TEXT); - Widget dirListWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_DIR_LIST); - Widget fileListWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_LIST); - Widget okWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_OK_BUTTON); - Widget applyWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_APPLY_BUTTON); - Widget cancelWidget = XmFileSelectionBoxGetChild(fileSel, XmDIALOG_CANCEL_BUTTON); - - - Widget shell = XtParent(fileSel); - - if (!m_message.IsNull()) - XtVaSetValues(shell, XmNtitle, (char*) (const char*) m_message, NULL); - - wxString entirePath(""); - - if ((m_dir != "") && (m_fileName != "")) - { - entirePath = m_dir + wxString("/") + m_fileName; - } - else if ((m_dir != "") && (m_fileName == "")) - { - entirePath = m_dir + wxString("/"); - } - else if ((m_dir == "") && (m_fileName != "")) - { - entirePath = m_fileName; - } - - if (entirePath != "") - { - XmTextSetString(selectionWidget, (char*) (const char*) entirePath); - } - - if (m_wildCard != "") - { - wxString filter(""); - if (m_dir != "") - filter = m_dir + wxString("/") + m_wildCard; - else - filter = m_wildCard; - - XmTextSetString(filterWidget, (char*) (const char*) filter); - XmFileSelectionDoSearch(fileSel, NULL); - } - - // Suggested by Terry Gitnick, 16/9/97, because of change in Motif - // file selector on Solaris 1.5.1. - if ( m_dir != "" ) - { - XmString thePath = XmStringCreateLtoR ((char*) (const char*) m_dir, - XmSTRING_DEFAULT_CHARSET); - - XtVaSetValues (fileSel, - XmNdirectory, thePath, - NULL); - - XmStringFree(thePath); - } - - XtAddCallback(fileSel, XmNcancelCallback, (XtCallbackProc)wxFileSelCancel, (XtPointer)NULL); - XtAddCallback(fileSel, XmNokCallback, (XtCallbackProc)wxFileSelOk, (XtPointer)NULL); - - //#if XmVersion > 1000 - // I'm not sure about what you mean with XmVersion. - // If this is for Motif1.1/Motif1.2, then check XmVersion>=1200 - // (Motif1.1.4 ==> XmVersion 1100 ) - // Nevertheless, I put here a #define, so anyone can choose in (I)makefile... - // -#if !DEFAULT_FILE_SELECTOR_SIZE - int width = wxFSB_WIDTH; - int height = wxFSB_HEIGHT; - XtVaSetValues(fileSel, - XmNwidth, width, - XmNheight, height, - XmNresizePolicy, XmRESIZE_NONE, - NULL); -#endif - DoChangeBackgroundColour((WXWidget) fileSel, m_backgroundColour); - DoChangeBackgroundColour((WXWidget) filterWidget, *wxWHITE); - DoChangeBackgroundColour((WXWidget) selectionWidget, *wxWHITE); - - /* For some reason this crashes - DoChangeBackgroundColour((WXWidget) okWidget, m_backgroundColour, TRUE); - DoChangeBackgroundColour((WXWidget) cancelWidget, m_backgroundColour, TRUE); - DoChangeBackgroundColour((WXWidget) applyWidget, m_backgroundColour, TRUE); - */ - - wxChangeListBoxColours(this, dirListWidget); - wxChangeListBoxColours(this, fileListWidget); - - XtManageChild(fileSel); - - m_fileSelectorAnswer = ""; - m_fileSelectorReturned = FALSE; - - wxEndBusyCursor(); - - XtAddGrab(XtParent(fileSel), TRUE, FALSE); - XEvent event; - while (!m_fileSelectorReturned) - { - XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMAll); - } - XtRemoveGrab(XtParent(fileSel)); - - XmUpdateDisplay((Widget) wxTheApp->GetTopLevelWidget()); // Experimental - - // XtDestroyWidget(fileSel); - XtUnmapWidget(XtParent(fileSel)); - XtDestroyWidget(XtParent(fileSel)); - - // Now process all events, because otherwise - // this might remain on the screen - XSync(XtDisplay((Widget) wxTheApp->GetTopLevelWidget()), FALSE); - while (XtAppPending((XtAppContext) wxTheApp->GetAppContext())) - { - XFlush(XtDisplay((Widget) wxTheApp->GetTopLevelWidget())); - XtAppNextEvent((XtAppContext) wxTheApp->GetAppContext(), &event); - XtDispatchEvent(&event); - } - - m_path = m_fileSelectorAnswer; - m_fileName = wxFileNameFromPath(m_fileSelectorAnswer); - m_dir = wxPathOnly(m_path); - - if (m_fileName == "") - return wxID_CANCEL; - else - return wxID_OK; -} - -// Generic file load/save dialog -static wxString -wxDefaultFileSelector(bool load, const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - char *ext = (char *)extension; - - char prompt[50]; - wxString str; - if (load) - str = "Load %s file"; - else - str = "Save %s file"; - sprintf(prompt, wxGetTranslation(str), what); - - if (*ext == '.') ext++; - char wild[60]; - sprintf(wild, "*.%s", ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -wxString wxLoadFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - - -// Generic file save dialog -wxString wxSaveFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(FALSE, what, extension, default_name, parent); -} - - diff --git a/src/motif/font.cpp b/src/motif/font.cpp deleted file mode 100644 index 106415a5b3..0000000000 --- a/src/motif/font.cpp +++ /dev/null @@ -1,379 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: wxFont class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/font.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" - -#include - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) -#endif - -wxXFont::wxXFont() -{ - m_fontStruct = (WXFontStructPtr) 0; - m_fontList = (WXFontList) 0; - m_display = (WXDisplay*) 0; - m_scale = 100; -} - -wxXFont::~wxXFont() -{ - XFontStruct* fontStruct = (XFontStruct*) m_fontStruct; - XmFontList fontList = (XmFontList) m_fontList; - - XmFontListFree (fontList); - - // TODO: why does freeing the font produce a segv??? - // Note that XFreeFont wasn't called in wxWin 1.68 either. - // XFreeFont((Display*) m_display, fontStruct); -} - -wxFontRefData::wxFontRefData() -{ - m_style = 0; - m_pointSize = 0; - m_family = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; -} - -wxFontRefData::wxFontRefData(const wxFontRefData& data) -{ - m_style = data.m_style; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; - - // Don't have to copy actual fonts, because they'll be created - // on demand. -} - -wxFontRefData::~wxFontRefData() -{ - wxNode* node = m_fonts.First(); - while (node) - { - wxXFont* f = (wxXFont*) node->Data(); - delete f; - node = node->Next(); - } - m_fonts.Clear(); -} - -wxFont::wxFont() -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - Create(pointSize, family, style, weight, underlined, faceName); - - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); - - return TRUE; -} - -wxFont::~wxFont() -{ - if (wxTheFontList) - wxTheFontList->DeleteObject(this); -} - -bool wxFont::RealizeResource() -{ - // TODO: create the font (if there is a native font object) - return FALSE; -} - -void wxFont::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; - - RealizeResource(); -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; - - RealizeResource(); -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; - - RealizeResource(); -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; - - RealizeResource(); -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; - - RealizeResource(); -} - -wxString wxFont::GetFamilyString() const -{ - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; -} - -/* New font system */ -wxString wxFont::GetFaceName() const -{ - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString() const -{ - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; -} - -wxString wxFont::GetWeightString() const -{ - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; -} - -// Find an existing, or create a new, XFontStruct -// based on this wxFont and the given scale. Append the -// font to list in the private data for future reference. -wxXFont* wxFont::GetInternalFont(double scale, WXDisplay* display) const -{ - if (!Ok()) - return (wxXFont*) NULL; - - long intScale = long(scale * 100.0 + 0.5); // key for wxXFont - int pointSize = (M_FONTDATA->m_pointSize * 10 * intScale) / 100; - - wxNode* node = M_FONTDATA->m_fonts.First(); - while (node) - { - wxXFont* f = (wxXFont*) node->Data(); - if ((!display || (f->m_display == display)) && (f->m_scale == intScale)) - return f; - node = node->Next(); - } - - WXFontStructPtr font = LoadQueryFont(pointSize, M_FONTDATA->m_family, - M_FONTDATA->m_style, M_FONTDATA->m_weight, M_FONTDATA->m_underlined); - - if (!font) - { - // search up and down by stepsize 10 - int max_size = pointSize + 20 * (1 + (pointSize/180)); - int min_size = pointSize - 20 * (1 + (pointSize/180)); - int i; - - // Search for smaller size (approx.) - for (i=pointSize-10; !font && i >= 10 && i >= min_size; i -= 10) - font = LoadQueryFont(i, M_FONTDATA->m_family, M_FONTDATA->m_style, M_FONTDATA->m_weight, M_FONTDATA->m_underlined); - // Search for larger size (approx.) - for (i=pointSize+10; !font && i <= max_size; i += 10) - font = LoadQueryFont(i, M_FONTDATA->m_family, M_FONTDATA->m_style, M_FONTDATA->m_weight, M_FONTDATA->m_underlined); - // Try default family - if (!font && M_FONTDATA->m_family != wxDEFAULT) - font = LoadQueryFont(pointSize, wxDEFAULT, M_FONTDATA->m_style, - M_FONTDATA->m_weight, M_FONTDATA->m_underlined); - // Bogus font - if (!font) - font = LoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL, - M_FONTDATA->m_underlined); - wxASSERT_MSG( (font != (XFontStruct*) NULL), "Could not allocate even a default font -- something is wrong." ); - } - if (font) - { - wxXFont* f = new wxXFont; - f->m_fontStruct = font; - f->m_display = ( display ? display : wxGetDisplay() ); - f->m_scale = intScale; - f->m_fontList = XmFontListCreate ((XFontStruct*) font, XmSTRING_DEFAULT_CHARSET); - M_FONTDATA->m_fonts.Append(f); - return f; - } - return (wxXFont*) NULL; -} - -WXFontStructPtr wxFont::LoadQueryFont(int pointSize, int family, int style, - int weight, bool underlined) const -{ - char *xfamily; - char *xstyle; - char *xweight; - switch (family) - { - case wxDECORATIVE: xfamily = "lucida"; - break; - case wxROMAN: xfamily = "times"; - break; - case wxMODERN: xfamily = "courier"; - break; - case wxSWISS: xfamily = "lucida"; - break; - case wxDEFAULT: - default: xfamily = "*"; - } - switch (style) - { - case wxITALIC: xstyle = "i"; - break; - case wxSLANT: xstyle = "o"; - break; - case wxNORMAL: xstyle = "r"; - break; - default: xstyle = "*"; - break; - } - switch (weight) - { - case wxBOLD: xweight = "bold"; - break; - case wxLIGHT: - case wxNORMAL: xweight = "medium"; - break; - default: xweight = "*"; - break; - } - - sprintf(wxBuffer, "-*-%s-%s-%s-normal-*-*-%d-*-*-*-*-*-*", - xfamily, xweight, xstyle, pointSize); - - Display *dpy = (Display*) wxGetDisplay(); - XFontStruct* font = XLoadQueryFont(dpy, wxBuffer); - - return (WXFontStructPtr) font; -} diff --git a/src/motif/fontdlg.cpp b/src/motif/fontdlg.cpp deleted file mode 100644 index f7ebeed956..0000000000 --- a/src/motif/fontdlg.cpp +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.cpp -// Purpose: wxFontDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fontdlg.h" -#endif - -#include "wx/motif/fontdlg.h" -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif - -/* - * wxFontDialog - */ - -wxFontDialog::wxFontDialog() -{ - m_dialogParent = NULL; -} - -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} - -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; - - if (data) - m_fontData = *data; - - // TODO: you may need to do dialog creation here, unless it's - // done in ShowModal. - return TRUE; -} - -int wxFontDialog::ShowModal() -{ - // TODO: show (maybe create) the dialog - return wxID_CANCEL; -} - diff --git a/src/motif/frame.cpp b/src/motif/frame.cpp deleted file mode 100644 index 98682e8b99..0000000000 --- a/src/motif/frame.cpp +++ /dev/null @@ -1,1117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: wxFrame -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" -#include "wx/menu.h" -#include "wx/dcclient.h" -#include "wx/dialog.h" -#include "wx/settings.h" -#include "wx/app.h" -#include "wx/utils.h" - -#if defined(__ultrix) || defined(__sgi) -#include -#endif - -#include -#include -#if XmVersion >= 1002 -#include -#else -#include -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#if XmVersion > 1000 -#include -#endif - -#include "wx/motif/private.h" - -void wxCloseFrameCallback(Widget, XtPointer, XmAnyCallbackStruct *cbs); -void wxFrameFocusProc(Widget workArea, XtPointer clientData, - XmAnyCallbackStruct *cbs); -static void wxFrameMapProc(Widget frameShell, XtPointer clientData, - XCrossingEvent * event); - -extern wxList wxModelessWindows; -extern wxList wxPendingDelete; - -// TODO: this should be tidied so that any frame can be the -// top frame -static bool wxTopLevelUsed = FALSE; - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxFrame, wxWindow) -EVT_SIZE(wxFrame::OnSize) -EVT_ACTIVATE(wxFrame::OnActivate) -EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) -EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) -EVT_IDLE(wxFrame::OnIdle) -EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) -#endif - -#if wxUSE_NATIVE_STATUSBAR -bool wxFrame::m_useNativeStatusBar = TRUE; -#else -bool wxFrame::m_useNativeStatusBar = FALSE; -#endif - -wxFrame::wxFrame() -{ -#if wxUSE_TOOLBAR - m_frameToolBar = NULL ; -#endif // wxUSE_TOOLBAR - - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_windowParent = NULL; - m_iconized = FALSE; - - //// Motif-specific - m_frameShell = (WXWidget) NULL; - m_frameWidget = (WXWidget) NULL;; - m_workArea = (WXWidget) NULL;; - m_clientArea = (WXWidget) NULL;; - m_visibleStatus = TRUE; - m_title = ""; -} - -bool wxFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - - m_windowStyle = style; - m_frameMenuBar = NULL; -#if wxUSE_TOOLBAR - m_frameToolBar = NULL ; -#endif // wxUSE_TOOLBAR - m_frameStatusBar = NULL; - - //// Motif-specific - m_frameShell = (WXWidget) NULL; - m_frameWidget = (WXWidget) NULL;; - m_workArea = (WXWidget) NULL;; - m_clientArea = (WXWidget) NULL;; - m_visibleStatus = TRUE; - m_title = ""; - - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - m_foregroundColour = *wxBLACK; - m_windowFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - wxModelessWindows.Append(this); - - int x = pos.x; int y = pos.y; - int width = size.x; int height = size.y; - - if (wxTopLevelUsed) - // Change suggested by Matthew Flatt - m_frameShell = (WXWidget) XtAppCreateShell(name, wxTheApp->GetClassName(), topLevelShellWidgetClass, (Display*) wxGetDisplay(), NULL, 0); - else - { - m_frameShell = wxTheApp->GetTopLevelWidget(); - wxTopLevelUsed = TRUE; - } - - XtVaSetValues((Widget) m_frameShell, - // Allows menu to resize - XmNallowShellResize, True, - XmNdeleteResponse, XmDO_NOTHING, - XmNmappedWhenManaged, False, - XmNiconic, (style & wxICONIZE) ? TRUE : FALSE, - NULL); - - if (!title.IsNull()) - XtVaSetValues((Widget) m_frameShell, - XmNtitle, (const char*) title, - NULL); - - m_frameWidget = (WXWidget) XtVaCreateManagedWidget("main_window", - xmMainWindowWidgetClass, (Widget) m_frameShell, - XmNresizePolicy, XmRESIZE_NONE, - NULL); - - m_workArea = (WXWidget) XtVaCreateWidget("form", - xmFormWidgetClass, (Widget) m_frameWidget, - XmNresizePolicy, XmRESIZE_NONE, - NULL); - - m_clientArea = (WXWidget) XtVaCreateWidget("client", - xmBulletinBoardWidgetClass, (Widget) m_workArea, - XmNmarginWidth, 0, - XmNmarginHeight, 0, - XmNrightAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - // XmNresizePolicy, XmRESIZE_ANY, - NULL); - - XtAddEventHandler((Widget) m_clientArea, ExposureMask,FALSE, - wxUniversalRepaintProc, (XtPointer) this); - - XtVaSetValues((Widget) m_frameWidget, - XmNworkWindow, (Widget) m_workArea, - NULL); - - XtManageChild((Widget) m_clientArea); - XtManageChild((Widget) m_workArea); - - wxASSERT_MSG ((wxWidgetHashTable->Get((long)m_workArea) == (wxObject*) NULL), "Widget table clash in frame.cpp") ; - - wxAddWindowToTable((Widget) m_workArea, this); - - XtTranslations ptr ; - - XtOverrideTranslations((Widget) m_workArea, - ptr = XtParseTranslationTable(": resize()")); - - XtFree((char *)ptr); - - XtAddCallback((Widget) m_workArea, XmNfocusCallback, - (XtCallbackProc)wxFrameFocusProc, (XtPointer)this); - - /* Part of show-&-hide fix */ - XtAddEventHandler((Widget) m_frameShell, StructureNotifyMask, - False, (XtEventHandler)wxFrameMapProc, - (XtPointer)m_workArea); - - if (x > -1) - XtVaSetValues((Widget) m_frameShell, XmNx, x, NULL); - if (y > -1) - XtVaSetValues((Widget) m_frameShell, XmNy, y, NULL); - if (width > -1) - XtVaSetValues((Widget) m_frameShell, XmNwidth, width, NULL); - if (height > -1) - XtVaSetValues((Widget) m_frameShell, XmNheight, height, NULL); - - m_mainWidget = m_frameWidget; - - ChangeFont(FALSE); - - // This patch comes from Torsten Liermann lier@lier1.muc.de - if (XmIsMotifWMRunning( (Widget) m_frameShell )) - { - int decor = 0 ; - if (style & wxRESIZE_BORDER) - decor |= MWM_DECOR_RESIZEH ; - if (style & wxSYSTEM_MENU) - decor |= MWM_DECOR_MENU; - if ((style & wxCAPTION) || - (style & wxTINY_CAPTION_HORIZ) || - (style & wxTINY_CAPTION_VERT)) - decor |= MWM_DECOR_TITLE; - if (style & wxTHICK_FRAME) - decor |= MWM_DECOR_BORDER; - if (style & wxTHICK_FRAME) - decor |= MWM_DECOR_BORDER; - if (style & wxMINIMIZE_BOX) - decor |= MWM_DECOR_MINIMIZE; - if (style & wxMAXIMIZE_BOX) - decor |= MWM_DECOR_MAXIMIZE; - XtVaSetValues((Widget) m_frameShell,XmNmwmDecorations,decor,NULL) ; - } - // This allows non-Motif window managers to support at least the - // no-decorations case. - else - { - if (style == 0) - XtVaSetValues((Widget) m_frameShell,XmNoverrideRedirect,TRUE,NULL); - } - XtRealizeWidget((Widget) m_frameShell); - - // Intercept CLOSE messages from the window manager - Atom WM_DELETE_WINDOW = XmInternAtom(XtDisplay((Widget) m_frameShell), "WM_DELETE_WINDOW", False); -#if (XmREVISION > 1 || XmVERSION > 1) - XmAddWMProtocolCallback((Widget) m_frameShell, WM_DELETE_WINDOW, (XtCallbackProc) wxCloseFrameCallback, (XtPointer)this); -#else -#if XmREVISION == 1 - XmAddWMProtocolCallback((Widget) m_frameShell, WM_DELETE_WINDOW, (XtCallbackProc) wxCloseFrameCallback, (caddr_t)this); -#else - XmAddWMProtocolCallback((Widget) m_frameShell, WM_DELETE_WINDOW, (void (*)())wxCloseFrameCallback, (caddr_t)this); -#endif -#endif - - ChangeBackgroundColour(); - - PreResize(); - - wxSizeEvent sizeEvent(wxSize(width, height), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); - - return TRUE; -} - -wxFrame::~wxFrame() -{ - if (m_clientArea) - XtRemoveEventHandler((Widget) m_clientArea, ExposureMask, FALSE, - wxUniversalRepaintProc, (XtPointer) this); - - if (GetMainWidget()) - Show(FALSE); - - if (m_frameMenuBar) - { - m_frameMenuBar->DestroyMenuBar(); - - // Hack to stop core dump on Ultrix, OSF, for some strange reason. -#if MOTIF_MENUBAR_DELETE_FIX - GetMenuBar()->SetMainWidget((WXWidget) NULL); -#endif - delete m_frameMenuBar; - m_frameMenuBar = NULL; - } - - wxTopLevelWindows.DeleteObject(this); - wxModelessWindows.DeleteObject(this); - - if (m_frameStatusBar) - delete m_frameStatusBar; - - DestroyChildren(); - - /* - int i; - for (i = 0; i < wxMAX_STATUS; i++) - if (statusTextWidget[i]) - XtDestroyWidget (statusTextWidget[i]); - - if (statusLineForm) - XtDestroyWidget (statusLineForm); - - if (statusLineWidget) - XtDestroyWidget (statusLineWidget); - */ - - if (m_workArea) - { - wxDeleteWindowFromTable((Widget) m_workArea); - - XtDestroyWidget ((Widget) m_workArea); - } - - if (m_frameWidget) - { - wxDeleteWindowFromTable((Widget) m_frameWidget); - XtDestroyWidget ((Widget) m_frameWidget); - } - - if (m_frameShell) - XtDestroyWidget ((Widget) m_frameShell); - - SetMainWidget((WXWidget) NULL); - - /* Check if it's the last top-level window */ - - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // Signal to the app that we're going to close - wxTheApp->ExitMainLoop(); - } - } - -} - -// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. -void wxFrame::GetClientSize(int *x, int *y) const -{ - Dimension xx, yy; - XtVaGetValues((Widget) m_workArea, XmNwidth, &xx, XmNheight, &yy, NULL); - - if (m_frameStatusBar) - { - int sbw, sbh; - m_frameStatusBar->GetSize(& sbw, & sbh); - yy -= sbh; - } -#if wxUSE_TOOLBAR - if (m_frameToolBar) - { - int tbw, tbh; - m_frameToolBar->GetSize(& tbw, & tbh); - if (m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL) - xx -= tbw; - else - yy -= tbh; - } -#endif // wxUSE_TOOLBAR - /* - if (GetMenuBar() != (wxMenuBar*) NULL) - { - // it seems that if a frame holds a panel, the menu bar size - // gets automatically taken care of --- grano@cs.helsinki.fi 4.4.95 - bool hasSubPanel = FALSE; - for(wxNode* node = GetChildren().First(); node; node = node->Next()) - { - wxWindow *win = (wxWindow *)node->Data(); - hasSubPanel = (win->IsKindOf(CLASSINFO(wxPanel)) && !win->IsKindOf(CLASSINFO(wxDialog))); - - if (hasSubPanel) - break; - } - if (! hasSubPanel) { - Dimension ys; - XtVaGetValues((Widget) GetMenuBarWidget(), XmNheight, &ys, NULL); - yy -= ys; - } - } - */ - - *x = xx; *y = yy; -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxFrame::DoSetClientSize(int width, int height) -{ - // Calculate how large the new main window should be - // by finding the difference between the client area and the - // main window area, and adding on to the new client area - if (width > -1) - XtVaSetValues((Widget) m_workArea, XmNwidth, width, NULL); - - if (height > -1) - { - if (m_frameStatusBar) - { - int sbw, sbh; - m_frameStatusBar->GetSize(& sbw, & sbh); - height += sbh; - } -#if wxUSE_TOOLBAR - if (m_frameToolBar) - { - int tbw, tbh; - m_frameToolBar->GetSize(& tbw, & tbh); - if (m_frameToolBar->GetWindowStyleFlag() & wxTB_VERTICAL) - width += tbw; - else - height += tbh; - } -#endif // wxUSE_TOOLBAR - - XtVaSetValues((Widget) m_workArea, XmNheight, height, NULL); - } - PreResize(); - - wxSizeEvent sizeEvent(wxSize(width, height), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); - -} - -void wxFrame::GetSize(int *width, int *height) const -{ - Dimension xx, yy; - XtVaGetValues((Widget) m_frameShell, XmNwidth, &xx, XmNheight, &yy, NULL); - *width = xx; *height = yy; -} - -void wxFrame::GetPosition(int *x, int *y) const -{ - Window parent_window = XtWindow((Widget) m_frameShell), - next_parent = XtWindow((Widget) m_frameShell), - root = RootWindowOfScreen(XtScreen((Widget) m_frameShell)); - - // search for the parent that is child of ROOT, because the WM may - // reparent twice and notify only the next parent (like FVWM) - while (next_parent != root) { - Window *theChildren; unsigned int n; - parent_window = next_parent; - XQueryTree(XtDisplay((Widget) m_frameShell), parent_window, &root, - &next_parent, &theChildren, &n); - XFree(theChildren); // not needed - } - int xx, yy; unsigned int dummy; - XGetGeometry(XtDisplay((Widget) m_frameShell), parent_window, &root, - &xx, &yy, &dummy, &dummy, &dummy, &dummy); - if (x) *x = xx; - if (y) *y = yy; -} - -void wxFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - if (x > -1) - XtVaSetValues((Widget) m_frameShell, XmNx, x, NULL); - if (y > -1) - XtVaSetValues((Widget) m_frameShell, XmNy, y, NULL); - if (width > -1) - XtVaSetValues((Widget) m_frameWidget, XmNwidth, width, NULL); - if (height > -1) - XtVaSetValues((Widget) m_frameWidget, XmNheight, height, NULL); - - if (!(height == -1 && width == -1)) - { - PreResize(); - - wxSizeEvent sizeEvent(wxSize(width, height), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); - } -} - -bool wxFrame::Show(bool show) -{ - if (!m_frameShell) - return wxWindow::Show(show); - - m_visibleStatus = show; /* show-&-hide fix */ - - m_isShown = show; - if (show) { - XtMapWidget((Widget) m_frameShell); - XRaiseWindow(XtDisplay((Widget) m_frameShell), XtWindow((Widget) m_frameShell)); - } else { - XtUnmapWidget((Widget) m_frameShell); - // XmUpdateDisplay(wxTheApp->topLevel); // Experimental: may be responsible for crashes - } - return TRUE; -} - -void wxFrame::Iconize(bool iconize) -{ - if (!iconize) - Show(TRUE); - - if (m_frameShell) - XtVaSetValues((Widget) m_frameShell, XmNiconic, (Boolean)iconize, NULL); -} - -// Equivalent to maximize/restore in Windows -void wxFrame::Maximize(bool maximize) -{ - Show(TRUE); - - if (maximize && m_frameShell) - XtVaSetValues((Widget) m_frameShell, XmNiconic, FALSE, NULL); -} - -bool wxFrame::IsIconized() const -{ - if (!m_frameShell) - return FALSE; - - Boolean iconic; - XtVaGetValues((Widget) m_frameShell, XmNiconic, &iconic, NULL); - return iconic; -} - -// Is it maximized? -bool wxFrame::IsMaximized(void) const -{ - // No maximizing in Motif (?) - return FALSE; -} - -void wxFrame::SetTitle(const wxString& title) -{ - if (title == m_title) - return; - - m_title = title; - - if (!title.IsNull()) - XtVaSetValues((Widget) m_frameShell, - XmNtitle, (const char*) title, - XmNiconName, (const char*) title, - NULL); -} - -void wxFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; - - if (!m_frameShell) - return; - - if (!icon.Ok() || !icon.GetPixmap()) - return; - - XtVaSetValues((Widget) m_frameShell, XtNiconPixmap, icon.GetPixmap(), NULL); -} - -wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - wxStatusBar *statusBar = NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(statusBar->GetFont()); - - long x, y; - dc.GetTextExtent("X", &x, &y); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize(-1, -1, 100, height); - - statusBar->SetFieldsCount(number); - return statusBar; -} - -wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - // Calling CreateStatusBar twice is an error. - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, - "recreating status bar in wxFrame" ); - - m_frameStatusBar = OnCreateStatusBar(number, style, id, - name); - if ( m_frameStatusBar ) - { - PositionStatusBar(); - return m_frameStatusBar; - } - else - return NULL; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[]) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); - PositionStatusBar(); -} - -void wxFrame::PositionStatusBar() -{ - if (!m_frameStatusBar) - return; - - int w, h; - GetClientSize(&w, &h); - int sw, sh; - m_frameStatusBar->GetSize(&sw, &sh); - - // Since we wish the status bar to be directly under the client area, - // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); -} - -WXWidget wxFrame::GetMenuBarWidget() const -{ - if (GetMenuBar()) - return GetMenuBar()->GetMainWidget(); - else - return (WXWidget) NULL; -} - -void wxFrame::SetMenuBar(wxMenuBar *menuBar) -{ - if (!menuBar) - { - m_frameMenuBar = NULL; - return; - } - - // Currently can't set it twice - // wxASSERT_MSG( (m_frameMenuBar == (wxMenuBar*) NULL), "Cannot set the menubar more than once"); - - if (m_frameMenuBar) - { - m_frameMenuBar->DestroyMenuBar(); - delete m_frameMenuBar; - } - - m_frameMenuBar = menuBar; - m_frameMenuBar->CreateMenuBar(this); -} - -void wxFrame::Fit() -{ - // Work out max. size - wxNode *node = GetChildren().First(); - int max_width = 0; - int max_height = 0; - while (node) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *win = (wxWindow *)node->Data(); - - if (!win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog))) - { - int width, height; - int x, y; - win->GetSize(&width, &height); - win->GetPosition(&x, &y); - - if ((x + width) > max_width) - max_width = x + width; - if ((y + height) > max_height) - max_height = y + height; - } - node = node->Next(); - } - SetClientSize(max_width, max_height); -} - -// Responds to colour changes, and passes event on to children. -void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - if ( m_frameStatusBar ) - { - wxSysColourChangedEvent event2; - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->ProcessEvent(event2); - } - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -// Default resizing behaviour - if only ONE subwindow, -// resize to client rectangle size -void wxFrame::OnSize(wxSizeEvent& event) -{ - // if we're using constraints - do use them -#if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) { - Layout(); - return; - } -#endif - - // do we have _exactly_ one child? - wxWindow *child = NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog)) && - (win != GetStatusBar()) -#if wxUSE_TOOLBAR - && (win != GetToolBar()) -#endif // wxUSE_TOOLBAR - ) - { - if ( child ) - return; // it's our second subwindow - nothing to do - child = win; - } - } - - if ( child ) { - // we have exactly one child - set it's size to fill the whole frame - int clientW, clientH; - GetClientSize(&clientW, &clientH); - - int x = 0; - int y = 0; - - child->SetSize(x, y, clientW, clientH); - } -} - -// Default activation behaviour - set the focus for the first child -// subwindow found. -void wxFrame::OnActivate(wxActivateEvent& event) -{ - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && - !child->IsKindOf(CLASSINFO(wxDialog))) - { - child->SetFocus(); - return; - } - } -} - -// The default implementation for the close window event. -// OnClose for backward compatibility. - -void wxFrame::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -// Destroy the window (delayed, if a managed window) -bool wxFrame::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -// Default menu selection behaviour - display a help string -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ - if (GetStatusBar()) - { - if (event.GetMenuId() == -1) - SetStatusText(""); - else - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - wxString helpString(menuBar->GetHelpString(event.GetMenuId())); - if (helpString != "") - SetStatusText(helpString); - } - } - } -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::Centre(int direction) -{ - int display_width, display_height, width, height, x, y; - wxDisplaySize(&display_width, &display_height); - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x, y, width, height); -} - -// Call this to simulate a menu command -void wxFrame::Command(int id) -{ - ProcessCommand(id); -} - -void wxFrame::ProcessCommand(int id) -{ - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar() ; - if (!bar) - return; - -/* TODO: check the menu item if required - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } -*/ - - wxEvtHandler* evtHandler = GetEventHandler(); - - evtHandler->ProcessEvent(commandEvent); -} - -// Checks if there is a toolbar, and returns the first free client position -wxPoint wxFrame::GetClientAreaOrigin() const -{ - wxPoint pt(0, 0); -#if wxUSE_TOOLBAR - if (GetToolBar()) - { - int w, h; - GetToolBar()->GetSize(& w, & h); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - pt.x += w; - } - else - { - pt.y += h; - } - } -#endif // wxUSE_TOOLBAR - - return pt; -} - -void wxFrame::ScreenToClient(int *x, int *y) const -{ - wxWindow::ScreenToClient(x, y); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt(GetClientAreaOrigin()); - *x -= pt.x; - *y -= pt.y; -} - -void wxFrame::ClientToScreen(int *x, int *y) const -{ - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt1(GetClientAreaOrigin()); - *x += pt1.x; - *y += pt1.y; - - wxWindow::ClientToScreen(x, y); -} - -#if wxUSE_TOOLBAR -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxPoint(0, 0), wxSize(100, 24), style, name); -} - -void wxFrame::SetToolBar(wxToolBar *toolbar) -{ - m_frameToolBar = toolbar; -} - -wxToolBar *wxFrame::GetToolBar() const -{ - return m_frameToolBar; -} - -void wxFrame::PositionToolBar() -{ - int cw, ch; - - GetClientSize(& cw, &ch); - - if (GetToolBar()) - { - int tw, th; - GetToolBar()->GetSize(& tw, & th); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS - // means, pretend we don't have toolbar/status bar, so we - // have the original client size. - GetToolBar()->SetSize(0, 0, tw, ch + th, wxSIZE_NO_ADJUSTMENTS); - } - else - { - // Use the 'real' position - GetToolBar()->SetSize(0, 0, cw, th, wxSIZE_NO_ADJUSTMENTS); - } - } -} -#endif // wxUSE_TOOLBAR - -void wxFrame::CaptureMouse() -{ - if (m_winCaptured) - return; - - if (GetMainWidget()) - XtAddGrab((Widget) m_frameShell, TRUE, FALSE); - m_winCaptured = TRUE; -} - -void wxFrame::ReleaseMouse() -{ - if (!m_winCaptured) - return; - - if (GetMainWidget()) - XtRemoveGrab((Widget) m_frameShell); - m_winCaptured = FALSE; -} - -void wxFrame::Raise(void) -{ - Window parent_window = XtWindow((Widget) m_frameShell), - next_parent = XtWindow((Widget) m_frameShell), - root = RootWindowOfScreen(XtScreen((Widget) m_frameShell)); - // search for the parent that is child of ROOT, because the WM may - // reparent twice and notify only the next parent (like FVWM) - while (next_parent != root) { - Window *theChildren; unsigned int n; - parent_window = next_parent; - XQueryTree(XtDisplay((Widget) m_frameShell), parent_window, &root, - &next_parent, &theChildren, &n); - XFree(theChildren); // not needed - } - XRaiseWindow(XtDisplay((Widget) m_frameShell), parent_window); -} - -void wxFrame::Lower(void) -{ - Window parent_window = XtWindow((Widget) m_frameShell), - next_parent = XtWindow((Widget) m_frameShell), - root = RootWindowOfScreen(XtScreen((Widget) m_frameShell)); - // search for the parent that is child of ROOT, because the WM may - // reparent twice and notify only the next parent (like FVWM) - while (next_parent != root) { - Window *theChildren; unsigned int n; - parent_window = next_parent; - XQueryTree(XtDisplay((Widget) m_frameShell), parent_window, &root, - &next_parent, &theChildren, &n); - XFree(theChildren); // not needed - } - XLowerWindow(XtDisplay((Widget) m_frameShell), parent_window); -} - -void wxFrameFocusProc(Widget workArea, XtPointer clientData, - XmAnyCallbackStruct *cbs) -{ - wxFrame *frame = (wxFrame *)clientData; - - // wxDebugMsg("focus proc from frame %ld\n",(long)frame); - // TODO - // frame->GetEventHandler()->OnSetFocus(); -} - -/* MATTEW: Used to insure that hide-&-show within an event cycle works */ -static void wxFrameMapProc(Widget frameShell, XtPointer clientData, - XCrossingEvent * event) -{ - wxFrame *frame = (wxFrame *)wxWidgetHashTable->Get((long)clientData); - - if (frame) { - XEvent *e = (XEvent *)event; - - if (e->xany.type == MapNotify) - { - // Iconize fix - XtVaSetValues(frameShell, XmNiconic, (Boolean)False, NULL); - if (!frame->GetVisibleStatus()) - { - /* We really wanted this to be hidden! */ - XtUnmapWidget((Widget) frame->GetShellWidget()); - } - } - else if (e->xany.type == UnmapNotify) - // Iconize fix - XtVaSetValues(frameShell, XmNiconic, (Boolean)True, NULL); - } -} - -//// Motif-specific -bool wxFrame::PreResize() -{ -#if wxUSE_TOOLBAR - PositionToolBar(); -#endif // wxUSE_TOOLBAR - PositionStatusBar(); - return TRUE; -} - -WXWidget wxFrame::GetClientWidget() const -{ - return m_clientArea; -} - -void wxFrame::ChangeFont(bool keepOriginalSize) -{ - // TODO -} - -void wxFrame::ChangeBackgroundColour() -{ - if (GetClientWidget()) - DoChangeBackgroundColour(GetClientWidget(), m_backgroundColour); -} - -void wxFrame::ChangeForegroundColour() -{ - if (GetClientWidget()) - DoChangeForegroundColour(GetClientWidget(), m_foregroundColour); -} - -void wxCloseFrameCallback(Widget widget, XtPointer client_data, XmAnyCallbackStruct *cbs) -{ - wxFrame *frame = (wxFrame *)client_data; - - wxCloseEvent closeEvent(wxEVT_CLOSE_WINDOW, frame->GetId()); - closeEvent.SetEventObject(frame); - - // May delete the frame (with delayed deletion) - frame->GetEventHandler()->ProcessEvent(closeEvent); -} - diff --git a/src/motif/gauge.cpp b/src/motif/gauge.cpp deleted file mode 100644 index 5804f0b9b4..0000000000 --- a/src/motif/gauge.cpp +++ /dev/null @@ -1,773 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: wxGauge class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" - -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif - -// XmGauge copyright notice: - -/* -* Copyright 1994 GROUPE BULL -* -* Permission to use, copy, modify, and distribute this software and its -* documentation for any purpose and without fee is hereby granted, 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 GROUPE BULL not be used in advertising -* or publicity pertaining to distribution of the software without specific, -* written prior permission. GROUPE BULL makes no representations about the -* suitability of this software for any purpose. It is provided "as is" -* without express or implied warranty. -* -* GROUPE BULL disclaims all warranties with regard to this software, -* including all implied warranties of merchantability and fitness, -* in no event shall GROUPE BULL be liable for any special, -* indirect or consequential damages or any damages -* whatsoever resulting from loss of use, data or profits, -* whether in an action of contract, negligence or other tortious -* action, arising out of or in connection with the use -* or performance of this software. -* -*/ - -//// PUBLIC XMGAUGE DECLARATIONS -typedef struct _XmGaugeClassRec* XmGaugeWidgetClass; -typedef struct _XmGaugeRec* XmGaugeWidget; - -#ifdef __cplusplus -extern "C" WidgetClass xmGaugeWidgetClass; -#else -extern WidgetClass xmGaugeWidgetClass; -#endif - -typedef struct _XmGaugeCallbackStruct{ - int reason; - XEvent *event; - int value; -} XmGaugeCallbackStruct; - - -void -XmGaugeSetValue(Widget w, int value); - -int -XmGaugeGetValue(Widget w); - - - -bool wxGauge::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_rangeMax = range; - m_windowStyle = style; - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - Arg args[4]; - int count = 4; - if (style & wxHORIZONTAL) - { - XtSetArg (args[0], XmNorientation, XmHORIZONTAL); - XtSetArg (args[1], XmNprocessingDirection, XmMAX_ON_RIGHT); - } - else - { - XtSetArg (args[0], XmNorientation, XmVERTICAL); - XtSetArg (args[1], XmNprocessingDirection, XmMAX_ON_TOP); - } - XtSetArg(args[2], XmNminimum, 0); - XtSetArg(args[3], XmNmaximum, range); - Widget gaugeWidget = XtCreateManagedWidget("gauge", xmGaugeWidgetClass, parentWidget, args, count); - m_mainWidget = (WXWidget) gaugeWidget ; - - XtManageChild (gaugeWidget); - - int x = pos.x; int y = pos.y; - int width = size.x; int height = size.y; - if (width == -1) - width = 150; - if (height == -1) - height = 80; - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, x, y, width, height); - - ChangeBackgroundColour(); - - return TRUE; -} - -void wxGauge::SetShadowWidth(int w) -{ - if (w == 0) - w = 1; - XtVaSetValues((Widget) m_mainWidget, XmNshadowThickness, w, NULL); -} - -void wxGauge::SetBezelFace(int w) -{ -} - -void wxGauge::SetRange(int r) -{ - m_rangeMax = r; - XtVaSetValues((Widget) m_mainWidget, XmNmaximum, r, NULL); -} - -void wxGauge::SetValue(int pos) -{ - m_gaugePos = pos; - XtVaSetValues((Widget) m_mainWidget, XmNvalue, pos, NULL); -} - -int wxGauge::GetShadowWidth() const -{ - Dimension w; - XtVaGetValues((Widget) m_mainWidget, XmNshadowThickness, &w, NULL); - return (int)w; -} - -int wxGauge::GetBezelFace() const -{ - return 0; -} - -int wxGauge::GetRange() const -{ - int r; - XtVaGetValues((Widget) m_mainWidget, XmNmaximum, &r, NULL); - return (int)r; - // return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - int pos; - XtVaGetValues((Widget) m_mainWidget, XmNvalue, &pos, NULL); - return pos; - // return m_gaugePos; -} - -void wxGauge::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxGauge::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxGauge::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - -//// PRIVATE DECLARATIONS FOR XMGAUGE - -#include -#include - -typedef struct { - int empty; -} XmGaugeClassPart; - -typedef struct _XmGaugeClassRec { - CoreClassPart core_class; - XmPrimitiveClassPart primitive_class; - XmGaugeClassPart gauge_class; -} XmGaugeClassRec; - - -typedef struct _XmGaugePart{ - int value; - int minimum; - int maximum; - unsigned char orientation; - unsigned char processingDirection; - - XtCallbackList dragCallback; - XtCallbackList valueChangedCallback; - - /* private fields */ - Boolean dragging; /* drag in progress ? */ - int oldx, oldy; - GC gc; -} XmGaugePart; - - -typedef struct _XmGaugeRec { - CorePart core; - XmPrimitivePart primitive; - XmGaugePart gauge; -} XmGaugeRec; - -extern XmGaugeClassRec xmGaugeClassRec; - -/* Copyright 1994 GROUPE BULL -- See license conditions in file COPYRIGHT */ - -//// XMGAUGE IMPLEMENTATION - -void -GaugePick(Widget w, XEvent *e, String *args, Cardinal *num_args); -void -GaugeDrag(Widget w, XEvent *e, String *args, Cardinal *num_args); -void -GaugeDrop(Widget w, XEvent *e, String *args, Cardinal *num_args); - - - -static char translations[] = -": GaugePick()\n\ - : GaugeDrag()\n\ - : GaugeDrop()\n\ - "; - - - -static XtActionsRec actions[] = { - {"GaugePick", GaugePick}, - {"GaugeDrag", GaugeDrag}, - {"GaugeDrop", GaugeDrop}, -}; - -static void -DrawSlider(XmGaugeWidget gw, Boolean clear) -{ -#define THIS gw->gauge - int size, sht; - float ratio; - /***chubraev - char string[20]; - int len; - unsigned long backgr,foregr; - XRectangle rects[1]; - ***/ - - sht = gw->primitive.shadow_thickness; - - ratio = (float)THIS.value/ - (float)(THIS.maximum - THIS.minimum); - /***chubraev - sprintf(string,"%-d%%",(int)(ratio*100)); - len=strlen(string); - XtVaGetValues(gw,XmNbackground,&backgr,XmNforeground,&foregr,NULL); - ***/ - - if(clear) { - XClearArea(XtDisplay(gw), XtWindow(gw), sht, sht, - gw->core.width - 2 * sht, gw->core.height - 2 * sht, False); - } - switch(THIS.orientation) { - case XmHORIZONTAL: - size = (int) ((gw->core.width - 2 * sht)*ratio); - /***chubraev - XDrawString(XtDisplay(gw), XtWindow(gw), THIS.gc, sht+gw->core.width/2, - gw->core.height - 2 * sht, string, len); - ***/ - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - sht, sht, size, gw->core.height - 2 * sht); - - /***chubraev - rects[0].x = sht; rects[0].y = sht; - rects[0].width = size; rects[0].height = gw->core.height - 2 * sht; - ***/ - break; - case XmMAX_ON_LEFT: - case XmMAX_ON_TOP: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - gw->core.width - size - sht, sht, - size, gw->core.height - 2 * sht); - - /***chubraev - rects[0].x = gw->core.width - size - sht; rects[0].y = sht; - rects[0].width = size; rects[0].height = gw->core.height - 2 * sht; - ***/ - break; - } - /***chubraev - XSetClipRectangles(XtDisplay(gw), THIS.gc, 0, 0, rects, 1, Unsorted); - XSetForeground(XtDisplay(gw), THIS.gc, backgr); - XDrawString(XtDisplay(gw), XtWindow(gw), THIS.gc, sht+gw->core.width/2, - gw->core.height - 2 * sht, string, len); - ***/ - - break; - case XmVERTICAL: - size = (int) ((gw->core.height - 2 * sht)*ratio); - /***chubraev - XDrawString(XtDisplay(gw), XtWindow(gw), THIS.gc, sht, - sht+gw->core.height/2, string,len); - ***/ - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - sht, sht, gw->core.width - 2 * sht, size); - - /***chubraev - rects[0].x = sht; rects[0].y = sht; - rects[0].width = gw->core.width - 2 * sht; rects[0].height = size; - ***/ - break; - case XmMAX_ON_LEFT: - case XmMAX_ON_TOP: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - sht, gw->core.height - size - sht, - gw->core.width - 2 * sht, size); - - /***chubraev - rects[0].x = sht; rects[0].y = gw->core.height - size - sht; - rects[0].width = gw->core.width - 2 * sht; rects[0].height = size; - ***/ - } - /***chubraev - XSetClipRectangles(XtDisplay(gw), THIS.gc, 0, 0, rects, 1, Unsorted); - XSetForeground(XtDisplay(gw), THIS.gc, backgr); - XDrawString(XtDisplay(gw), XtWindow(gw), THIS.gc, sht, - sht+gw->core.height/2, string,len); - ***/ - break; - } - /***chubraev - XSetClipMask(XtDisplay(gw), THIS.gc, None); - XSetForeground(XtDisplay(gw), THIS.gc, foregr); - ***/ -#undef THIS -} - -/* Old code -*/ -#if 0 -static void -DrawSlider(XmGaugeWidget gw, Boolean clear) -{ -#define THIS gw->gauge - int size, sht; - /* float ratio; */ - - sht = gw->primitive.shadow_thickness; - /* See fix comment below: can cause divide by zero error. - ratio = (float)((float)THIS.maximum - - (float)THIS.minimum) / (float)THIS.value; - */ - if(clear) { - XClearArea(XtDisplay(gw), XtWindow(gw), sht, sht, - gw->core.width - 2 * sht, gw->core.height - 2 * sht, False); - } - switch(THIS.orientation) { - case XmHORIZONTAL: - /* size = (gw->core.width - 2 * sht) / ratio; */ - /* A fix suggested by Dmitri Chubraev */ - size = (gw->core.width - 2 * sht) /((float)THIS.maximum-(float)THIS.minimum)*(float)THIS.value; - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - sht, sht, size, gw->core.height - 2 * sht); - break; - case XmMAX_ON_LEFT: - case XmMAX_ON_TOP: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - gw->core.width - size - sht, sht, - size, gw->core.height - 2 * sht); - break; - } - break; - case XmVERTICAL: - size = (gw->core.height - 2 * sht) /((float)THIS.maximum-(float)THIS.minimum)*(float)THIS.value; - /* size = (gw->core.height - 2 * sht)/ ratio; */ - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - sht, sht, gw->core.width - 2 * sht, size); - break; - case XmMAX_ON_LEFT: - case XmMAX_ON_TOP: - XFillRectangle(XtDisplay(gw), XtWindow(gw), THIS.gc, - sht, gw->core.height - size - sht, - gw->core.width - 2 * sht, size); - } - break; - } -#undef THIS -} -#endif - -static void -Initialize(Widget req, Widget new_w, ArgList args, Cardinal *num_args ) -{ - XmGaugeWidget gw = (XmGaugeWidget)new_w; -#define THIS gw->gauge - XGCValues values; - - values.foreground = gw->primitive.foreground; - THIS.gc = XtGetGC(new_w, GCForeground, &values); - -#undef THIS - -} - - - -static void -Destroy(Widget w) -{ - XmGaugeWidget gw = (XmGaugeWidget)w; -#define THIS gw->gauge - XtReleaseGC(w, THIS.gc); -#undef THIS -} - - - - -static Boolean -SetValues( - Widget cw, - Widget rw, - Widget nw, - ArgList args, - Cardinal *num_args ) -{ - XmGaugeWidget cgw = (XmGaugeWidget)cw; - XmGaugeWidget ngw = (XmGaugeWidget)nw; - - Boolean redraw = False; - if(cgw->primitive.foreground != ngw->primitive.foreground) { - XGCValues values; - - redraw = True; - XtReleaseGC(nw, ngw->gauge.gc); - values.foreground = ngw->primitive.foreground; - ngw->gauge.gc = XtGetGC(nw, GCForeground, &values); - } - if(cgw->gauge.value != ngw->gauge.value) { - redraw = True; - } - return redraw; -} - - - - -static void -ExposeProc(Widget w, XEvent *event, Region r) -{ - XmGaugeWidget gw = (XmGaugeWidget)w; -#define THIS gw->gauge - int sht; - - sht = gw->primitive.shadow_thickness; - _XmDrawShadows(XtDisplay(w), XtWindow(w), - gw->primitive.top_shadow_GC, - gw->primitive.bottom_shadow_GC, - 0, 0, w->core.width, w->core.height, - sht, XmSHADOW_IN); - DrawSlider(gw, False); -#undef THIS -} - - - - - -static XtResource -resources[] = { -#define offset(field) XtOffset(XmGaugeWidget, gauge.field) - {XmNvalue, XmCValue, XtRInt, sizeof(int), - offset(value), XtRImmediate, (caddr_t)10}, - - {XmNminimum, XmCValue, XtRInt, sizeof(int), - offset(minimum), XtRImmediate, (caddr_t)0}, - - {XmNmaximum, XmCValue, XtRInt, sizeof(int), - offset(maximum), XtRImmediate, (caddr_t)100}, - - {XmNorientation, XmCOrientation, XmROrientation, sizeof(unsigned char), - offset(orientation), XtRImmediate, (caddr_t)XmVERTICAL}, - - {XmNprocessingDirection, XmCProcessingDirection, - XmRProcessingDirection, sizeof(unsigned char), - offset(processingDirection), XtRImmediate, (caddr_t)XmMAX_ON_RIGHT}, - - {XmNdragCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), - offset(dragCallback), XtRImmediate, (caddr_t)NULL}, - - {XmNvalueChangedCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList), - offset(valueChangedCallback), XtRImmediate, (caddr_t)NULL}, - - -#undef offset -}; - - -XmGaugeClassRec xmGaugeClassRec = { - { /* core fields */ - (WidgetClass) &xmPrimitiveClassRec, /* superclass */ - "XmGauge", /* class_name */ - sizeof(XmGaugeRec), /* widget_size */ - NULL, /* class_initialize */ - NULL, /* class_part_initialize */ - FALSE, /* class_inited */ - Initialize, /* initialize */ - NULL, /* initialize_hook */ - XtInheritRealize, /* realize */ - actions, /* actions */ - XtNumber(actions), /* num_actions */ - resources, /* resources */ - XtNumber(resources), /* num_resources */ - NULLQUARK, /* xrm_class */ - TRUE, /* compress_motion */ - TRUE, /* compress_exposure */ - TRUE, /* compress_enterleave */ - FALSE, /* visible_interest */ - Destroy, /* destroy */ - NULL, /* resize */ - ExposeProc, /* expose */ - SetValues, /* set_values */ - NULL, /* set_values_hook */ - XtInheritSetValuesAlmost, /* set_values_almost */ - NULL, /* get_values_hook */ - NULL, /* accept_focus */ - XtVersion, /* version */ - NULL, /* callback_private */ - translations, /* tm_table */ - NULL, /* query_geometry */ - NULL, /* display_accelerator */ - NULL /* extension */ - }, - /* primitive_class fields */ - { - NULL, /* border_highlight */ - NULL, /* border_unhighlight */ - NULL, /* translations */ - NULL, /* arm_and_activate */ - NULL, /* syn_resources */ - 0, /* num_syn_resources */ - NULL /* extension */ - }, - { /* gauge fields */ - 0 /* empty */ - } -}; - -WidgetClass xmGaugeWidgetClass = (WidgetClass)&xmGaugeClassRec; - - - - -void -GaugePick(Widget w, XEvent *e, String *args, Cardinal *num_args) -{ - /* Commented out for a read-only gauge in wxWindows */ -#if 0 - XmGaugeWidget gw = (XmGaugeWidget)w; -#define THIS gw->gauge - int size, sht; - float ratio; - Boolean dragging = False; - XButtonEvent *event = (XButtonEvent *)e; - int x, y; - - x = event->x; - y = event->y; - sht = gw->primitive.shadow_thickness; - _XmDrawShadows(XtDisplay(w), XtWindow(w), - gw->primitive.top_shadow_GC, - gw->primitive.bottom_shadow_GC, - 0, 0, w->core.width, w->core.height, - sht, XmSHADOW_IN); - - - ratio = (float)((float)THIS.maximum - - (float)THIS.minimum) / (float)THIS.value; - switch(THIS.orientation) { - case XmHORIZONTAL: - size = (w->core.width - 2 * sht) / ratio; - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - dragging = (x > sht) && (y > sht) && - (x < sht + size) && (y < w->core.height - sht); - break; - case XmMAX_ON_LEFT: - case XmMAX_ON_TOP: - dragging = (x > w->core.width - size - sht) && (y > sht) && - (x < w->core.width - sht) && (y < w->core.height + sht); - break; - } - break; - case XmVERTICAL: - size = (w->core.height - 2 * sht) / ratio; - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - dragging = (x > sht) && (y > sht) && - (x < w->core.width - sht) && - (y < w->core.width - 2 * sht + size); - break; - case XmMAX_ON_LEFT: - case XmMAX_ON_TOP: - dragging = (x > sht) && (y > w->core.height - size - sht) && - (x < w->core.width - sht) && (y < w->core.height - sht); - } - break; - } - THIS.dragging = dragging; - THIS.oldx = x; - THIS.oldy = y; -#undef THIS -#endif -} - -#define round(x) ( (x) > 0 ? ((x) + 0.5) : -(-(x) + 0.5) ) - -void -GaugeDrag(Widget w, XEvent *e, String *args, Cardinal *num_args) -{ - /* Commented out for a read-only gauge in wxWindows */ -#if 0 - XmGaugeWidget gw = (XmGaugeWidget)w; -#define THIS gw->gauge - int sht, x, y, max, value; - float ratio, nratio, size, nsize, fvalue, delta; - XMotionEvent *event = (XMotionEvent *)e; - - if( ! THIS.dragging) return; - - x = event->x; - y = event->y; - sht = gw->primitive.shadow_thickness; - - ratio = (float)THIS.value / (float)((float)THIS.maximum - - (float)THIS.minimum); - switch(THIS.orientation) { - case XmHORIZONTAL: - max = (w->core.width - 2 * sht); - size = (float)max * ratio; - delta = (float)x - (float)THIS.oldx; - break; - case XmVERTICAL: - max = (w->core.height - 2 * sht); - size = (float) max * ratio; - delta = (float)y - (float)THIS.oldy; - break; - } - switch(THIS.processingDirection) { - case XmMAX_ON_RIGHT: - case XmMAX_ON_BOTTOM: - nsize = size + delta; - break; - default: - nsize = size - delta; - } - if(nsize > (float)max) nsize = (float)max; - if(nsize < (float)0 ) nsize = (float)0; - nratio = nsize / (float)max; - - fvalue = (int)((float)THIS.maximum - - (float)THIS.minimum) * (float)nsize / (float)max; - value = round(fvalue); - - THIS.value = value; - THIS.oldx = x; - THIS.oldy = y; - - /* clear old slider only if it was larger */ - DrawSlider(gw, (nsize < size)); - - { - XmGaugeCallbackStruct call; - - if(NULL != THIS.dragCallback) { - call.reason = XmCR_DRAG; - call.event = e; - call.value = THIS.value; - XtCallCallbacks(w, XmNdragCallback, &call); - } - } -#undef THIS -#endif -} - - -void -GaugeDrop(Widget w, XEvent *e, String *args, Cardinal *num_args) -{ - /* Commented out for a read-only gauge in wxWindows */ -#if 0 - XmGaugeWidget gw = (XmGaugeWidget)w; -#define THIS gw->gauge - if( ! THIS.dragging) return; - - if(NULL != THIS.valueChangedCallback) { - XmGaugeCallbackStruct call; - call.reason = XmCR_VALUE_CHANGED; - call.event = e; - call.value = THIS.value; - XtCallCallbacks(w, XmNvalueChangedCallback, &call); - } - THIS.dragging = False; -#undef THIS -#endif -} - -void -XmGaugeSetValue(Widget w, int value) -{ - XmGaugeWidget gw = (XmGaugeWidget)w; - - gw->gauge.value = value; - DrawSlider(gw, True); - XFlush(XtDisplay(w)); -} - -int -XmGaugeGetValue(Widget w) -{ - XmGaugeWidget gw = (XmGaugeWidget)w; - - return gw->gauge.value; -} diff --git a/src/motif/gdiobj.cpp b/src/motif/gdiobj.cpp deleted file mode 100644 index adda2bcab1..0000000000 --- a/src/motif/gdiobj.cpp +++ /dev/null @@ -1,20 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif diff --git a/src/motif/helpxxxx.cpp b/src/motif/helpxxxx.cpp deleted file mode 100644 index 439c9acde3..0000000000 --- a/src/motif/helpxxxx.cpp +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.cpp -// Purpose: Help system: native implementation -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpxxxx.h" -#endif - -#include "wx/motif/helpxxxx.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxXXXXHelpController, wxHelpControllerBase) -#endif - -wxXXXXHelpController::wxXXXXHelpController() -{ - m_helpFile = ""; -} - -wxXXXXHelpController::~wxXXXXHelpController() -{ -} - -bool wxXXXXHelpController::Initialize(const wxString& filename) -{ - m_helpFile = filename; - // TODO any other inits - return TRUE; -} - -bool wxXXXXHelpController::LoadFile(const wxString& file) -{ - m_helpFile = file; - // TODO - return TRUE; -} - -bool wxXXXXHelpController::DisplayContents() -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplaySection(int section) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplayBlock(long block) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::KeywordSearch(const wxString& k) -{ - if (m_helpFile == "") return FALSE; - - // TODO - return FALSE; -} - -// Can't close the help window explicitly in WinHelp -bool wxXXXXHelpController::Quit() -{ - // TODO - return FALSE; -} - -void wxXXXXHelpController::OnQuit() -{ -} - diff --git a/src/motif/horiz.xbm b/src/motif/horiz.xbm deleted file mode 100644 index ff3309bcc4..0000000000 --- a/src/motif/horiz.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define horiz_width 15 -#define horiz_height 15 -static char horiz_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00}; diff --git a/src/motif/icon.cpp b/src/motif/icon.cpp deleted file mode 100644 index 55d70fdd9a..0000000000 --- a/src/motif/icon.cpp +++ /dev/null @@ -1,73 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: wxIcon class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" -#include "wx/window.h" - -#include -#include - -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -#endif - -/* -* Icons -*/ - -wxIcon::wxIcon() -{ -} - -// Create from XBM data -wxIcon::wxIcon(const char bits[], int width, int height) -{ - (void) Create((void*) bits, wxBITMAP_TYPE_XBM_DATA, width, height, 1); -} - -// Create from XPM data -wxIcon::wxIcon(char **data) -{ - (void) Create((void*) data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); -} - -wxIcon::wxIcon(const wxString& icon_file, long flags, - int desiredWidth, int desiredHeight) - -{ - LoadFile(icon_file, flags, desiredWidth, desiredHeight); -} - -wxIcon::~wxIcon() -{ -} - -bool wxIcon::LoadFile(const wxString& filename, long type, - int desiredWidth, int desiredHeight) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler ) - return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight); - else - return FALSE; -} - diff --git a/src/motif/joystick.cpp b/src/motif/joystick.cpp deleted file mode 100644 index d6fc022e8d..0000000000 --- a/src/motif/joystick.cpp +++ /dev/null @@ -1,279 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition() const -{ - // TODO - return wxPoint(0, 0); -} - -int wxJoystick::GetZPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetButtonState() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVCTSPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMovementThreshold() const -{ - // TODO - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ - // TODO -} - -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk() const -{ - // TODO - return FALSE; -} - -int wxJoystick::GetNumberJoysticks() const -{ - // TODO - return 0; -} - -int wxJoystick::GetManufacturerId() const -{ - // TODO - return 0; -} - -int wxJoystick::GetProductId() const -{ - // TODO - return 0; -} - -wxString wxJoystick::GetProductName() const -{ - // TODO - return wxString(""); -} - -int wxJoystick::GetXMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetXMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMax() const -{ - // TODO - return 0; -} - -bool wxJoystick::HasRudder() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasZ() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasU() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV4Dir() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOVCTS() const -{ - // TODO - return FALSE; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq) -{ - // TODO - return FALSE; -} - -bool wxJoystick::ReleaseCapture() -{ - // TODO - return FALSE; -} - diff --git a/src/motif/listbox.cpp b/src/motif/listbox.cpp deleted file mode 100644 index dab3cd4846..0000000000 --- a/src/motif/listbox.cpp +++ /dev/null @@ -1,789 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: wxListBox -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "listbox.h" -#endif - -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/dynarray.h" -#include "wx/log.h" -#include "wx/utils.h" - -#include -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif - -static void wxListBoxCallback(Widget w, - XtPointer clientData, - XmListCallbackStruct * cbs); - -static void wxListBoxDefaultActionProc(Widget list_w, - XtPointer client_data, - XmListCallbackStruct * cbs); - -// ============================================================================ -// list box control implementation -// ============================================================================ - -// Listbox item -wxListBox::wxListBox() : m_clientDataList(wxKEY_INTEGER) -{ - m_noItems = 0; - m_selected = 0; -} - -bool wxListBox::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - m_windowStyle = style; - m_noItems = n; - m_selected = 0; - // m_backgroundColour = parent->GetBackgroundColour(); - m_backgroundColour = * wxWHITE; - m_foregroundColour = parent->GetForegroundColour(); - - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - m_windowId = ( id == -1 ) ? (int)NewControlId() : id; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - Arg args[3]; - int count; - XtSetArg (args[0], XmNlistSizePolicy, XmCONSTANT); - if (m_windowStyle & wxLB_MULTIPLE) - XtSetArg (args[1], XmNselectionPolicy, XmMULTIPLE_SELECT); - else if (m_windowStyle & wxLB_EXTENDED) - XtSetArg (args[1], XmNselectionPolicy, XmEXTENDED_SELECT); - else - XtSetArg (args[1], XmNselectionPolicy, XmBROWSE_SELECT); - if (m_windowStyle & wxLB_ALWAYS_SB) - { - XtSetArg (args[2], XmNscrollBarDisplayPolicy, XmSTATIC); - count = 3; - } - else - count = 2; - - Widget listWidget = XmCreateScrolledList (parentWidget, (char*) (const char*) name, args, count); - - m_mainWidget = (WXWidget) listWidget; - - Set(n, choices); - - XtManageChild (listWidget); - - long width = size.x; - long height = size.y; - if (width == -1) - width = 150; - if (height == -1) - height = 80; - - XtAddCallback (listWidget, XmNbrowseSelectionCallback, (XtCallbackProc) wxListBoxCallback, - (XtPointer) this); - XtAddCallback (listWidget, XmNextendedSelectionCallback, (XtCallbackProc) wxListBoxCallback, - (XtPointer) this); - XtAddCallback (listWidget, XmNmultipleSelectionCallback, (XtCallbackProc) wxListBoxCallback, - (XtPointer) this); - - XtAddCallback (listWidget, XmNdefaultActionCallback, (XtCallbackProc) wxListBoxDefaultActionProc, - (XtPointer) this); - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, width, height); - - ChangeBackgroundColour(); - - return TRUE; -} - -wxListBox::~wxListBox() -{ -} - -void wxListBox::SetFirstItem(int N) -{ - int count, length; - - if (N < 0) - return; - XtVaGetValues ((Widget) m_mainWidget, - XmNvisibleItemCount, &count, - XmNitemCount, &length, - NULL); - if ((N + count) >= length) - N = length - count; - XmListSetPos ((Widget) m_mainWidget, N + 1); -} - -void wxListBox::SetFirstItem(const wxString& s) -{ - int N = FindString (s); - - if (N >= 0) - SetFirstItem (N); -} - -void wxListBox::Delete(int N) -{ - int width1, height1; - int width2, height2; - Widget listBox = (Widget) m_mainWidget; - GetSize (&width1, &height1); - - bool managed = XtIsManaged(listBox); - - if (managed) - XtUnmanageChild (listBox); - - XmListDeletePos (listBox, N + 1); - - if (managed) - XtManageChild (listBox); - - GetSize (&width2, &height2); - // Correct for randomly resized listbox - bad boy, Motif! - if (width1 != width2 || height1 != height2) - SetSize (-1, -1, width1, height1); - - // (JDH) need to add code here to take care of clientDataList - wxNode *node = m_clientDataList.Find((long)N); // get item from list - if (node) m_clientDataList.DeleteNode(node); // if existed then delete from list - node = m_clientDataList.First(); // we now have to adjust all keys that - while (node) // are >=N+1 - { - if (node->GetKeyInteger() >= (long)(N+1)) - node->SetKeyInteger(node->GetKeyInteger() - 1); - node = node->Next(); - } - - m_noItems --; -} - -void wxListBox::Append(const wxString& item) -{ - int width1, height1; - int width2, height2; - - Widget listBox = (Widget) m_mainWidget; - GetSize (&width1, &height1); - - bool managed = XtIsManaged(listBox); - - if (managed) - XtUnmanageChild (listBox); - int n; - XtVaGetValues (listBox, XmNitemCount, &n, NULL); - XmString text = XmStringCreateSimple ((char*) (const char*) item); - // XmListAddItem(listBox, text, n + 1); - XmListAddItemUnselected (listBox, text, 0); - XmStringFree (text); - - // It seems that if the list is cleared, we must re-ask for - // selection policy!! - Arg args[3]; - XtSetArg (args[0], XmNlistSizePolicy, XmCONSTANT); - if (m_windowStyle & wxLB_MULTIPLE) - XtSetArg (args[1], XmNselectionPolicy, XmMULTIPLE_SELECT); - else if (m_windowStyle & wxLB_EXTENDED) - XtSetArg (args[1], XmNselectionPolicy, XmEXTENDED_SELECT); - else - XtSetArg (args[1], XmNselectionPolicy, XmBROWSE_SELECT); - XtSetValues (listBox, args, 2); - - if (managed) - XtManageChild (listBox); - - GetSize (&width2, &height2); - // Correct for randomly resized listbox - bad boy, Motif! - if (width1 != width2 || height1 != height2) - SetSize (-1, -1, width1, height1); - m_noItems ++; -} - -void wxListBox::Append(const wxString& item, char *clientData) -{ - int width1, height1; - int width2, height2; - - Widget listBox = (Widget) m_mainWidget; - - GetSize (&width1, &height1); - Bool managed = XtIsManaged(listBox); - - if (managed) - XtUnmanageChild (listBox); - - int n; - XtVaGetValues (listBox, XmNitemCount, &n, NULL); - XmString text = XmStringCreateSimple ((char*) (const char*) item); - // XmListAddItem(listBox, text, n + 1); - XmListAddItemUnselected (listBox, text, 0); - XmStringFree (text); - - // It seems that if the list is cleared, we must re-ask for - // selection policy!! - Arg args[3]; - XtSetArg (args[0], XmNlistSizePolicy, XmCONSTANT); - if (m_windowStyle & wxLB_MULTIPLE) - XtSetArg (args[1], XmNselectionPolicy, XmMULTIPLE_SELECT); - else if (m_windowStyle & wxLB_EXTENDED) - XtSetArg (args[1], XmNselectionPolicy, XmEXTENDED_SELECT); - else - XtSetArg (args[1], XmNselectionPolicy, XmBROWSE_SELECT); - XtSetValues (listBox, args, 2); - - m_clientDataList.Append ((long) n, (wxObject *) clientData); - - if (managed) - XtManageChild (listBox); - - GetSize (&width2, &height2); - - // Correct for randomly resized listbox - bad boy, Motif! - if (width1 != width2 || height1 != height2) - SetSize (-1, -1, width1, height1); - - m_noItems ++; -} - -void wxListBox::Set(int n, const wxString *choices, char** clientData) -{ - m_clientDataList.Clear(); - int width1, height1; - int width2, height2; - - Widget listBox = (Widget) m_mainWidget; - GetSize (&width1, &height1); - - bool managed = XtIsManaged(listBox); - - if (managed) - XtUnmanageChild (listBox); - /*** - for (int i=0; iData (); - else - return NULL; -} - -void wxListBox::SetClientData(int N, char *Client_data) -{ - wxNode *node = m_clientDataList.Find ((long) N); - if (node) - node->SetData ((wxObject *)Client_data); - else - node = m_clientDataList.Append((long) N, (wxObject*) Client_data); -} - -// Return number of selections and an array of selected integers -int wxListBox::GetSelections(wxArrayInt& aSelections) const -{ - aSelections.Empty(); - - Widget listBox = (Widget) m_mainWidget; - int *posList = NULL; - int posCnt = 0; - bool flag = XmListGetSelectedPos (listBox, &posList, &posCnt); - if (flag) - { - if (posCnt > 0) - { - aSelections.Alloc(posCnt); - - int i; - for (i = 0; i < posCnt; i++) - aSelections.Add(posList[i] - 1); - - XtFree ((char *) posList); - return posCnt; - } - else - return 0; - } - else - return 0; -} - -// Get single selection, for single choice list items -int wxListBox::GetSelection() const -{ - Widget listBox = (Widget) m_mainWidget; - int *posList = NULL; - int posCnt = 0; - bool flag = XmListGetSelectedPos (listBox, &posList, &posCnt); - if (flag) - { - int id = -1; - if (posCnt > 0) - id = posList[0] - 1; - XtFree ((char *) posList); - return id; - } - else - return -1; -} - -// Find string for position -wxString wxListBox::GetString(int N) const -{ - Widget listBox = (Widget) m_mainWidget; - XmString *strlist; - int n; - XtVaGetValues (listBox, XmNitemCount, &n, XmNitems, &strlist, NULL); - if (N <= n && N >= 0) - { - char *txt; - if (XmStringGetLtoR (strlist[N], XmSTRING_DEFAULT_CHARSET, &txt)) - { - wxString str(txt); - XtFree (txt); - return str; - } - else - return wxEmptyString; - } - else - return wxEmptyString; -} - -void wxListBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); - - // Check resulting size is correct - int tempW, tempH; - GetSize (&tempW, &tempH); - - /* - if (tempW != width || tempH != height) - { - cout << "wxListBox::SetSize sizes not set correctly."); - } - */ -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - int width1, height1; - int width2, height2; - - Widget listBox = (Widget) m_mainWidget; - - GetSize(&width1, &height1); - - bool managed = XtIsManaged(listBox); - - if (managed) - XtUnmanageChild(listBox); - - XmString *text = new XmString[nItems]; - int i; - // Steve Hammes: Motif 1.1 compatibility - // #if XmVersion > 1100 - // Corrected by Sergey Krasnov from Steve Hammes' code -#if XmVersion > 1001 - for (i = 0; i < nItems; i++) - text[i] = XmStringCreateSimple((char*) (const char*) items[i]); - XmListAddItemsUnselected(listBox, text, nItems, pos+1); -#else - for (i = 0; i < nItems; i++) - { - text[i] = XmStringCreateSimple((char*) (const char*) items[i]); - // XmListAddItemUnselected(listBox, text[i], i); - XmListAddItemUnselected(listBox, text[i], pos+i+1); // Another Sergey correction - } -#endif - for (i = 0; i < nItems; i++) - XmStringFree(text[i]); - - delete[] text; - - // It seems that if the list is cleared, we must re-ask for - // selection policy!! - Arg args[3]; - XtSetArg(args[0], XmNlistSizePolicy, XmCONSTANT); - if (m_windowStyle & wxLB_MULTIPLE) - XtSetArg(args[1], XmNselectionPolicy, XmMULTIPLE_SELECT); - else if (m_windowStyle & wxLB_EXTENDED) - XtSetArg(args[1], XmNselectionPolicy, XmEXTENDED_SELECT); - else XtSetArg(args[1], XmNselectionPolicy, XmBROWSE_SELECT); - XtSetValues(listBox,args,2) ; - - if (managed) - XtManageChild(listBox); - - GetSize(&width2, &height2); - // Correct for randomly resized listbox - bad boy, Motif! - if (width1 != width2 /*|| height1 != height2*/) - SetSize(-1, -1, width1, height1); - - m_noItems += nItems; -} - -void wxListBox::SetString(int N, const wxString& s) -{ - int width1, height1; - int width2, height2; - - Widget listBox = (Widget) m_mainWidget; - GetSize (&width1, &height1); - - XmString text = XmStringCreateSimple ((char*) (const char*) s); - - // delete the item and add it again. - // FIXME isn't there a way to change it in place? - XmListDeletePos (listBox, N+1); - XmListAddItem (listBox, text, N+1); - - XmStringFree(text); - - GetSize (&width2, &height2); - // Correct for randomly resized listbox - bad boy, Motif! - if (width1 != width2 || height1 != height2) - SetSize (-1, -1, width1, height1); -} - -int wxListBox::Number () const -{ - return m_noItems; -} - -// For single selection items only -wxString wxListBox::GetStringSelection () const -{ - wxString res; - int sel = GetSelection(); - if (sel > -1) - res = GetString(sel); - - return res; -} - -bool wxListBox::SetStringSelection (const wxString& s, bool flag) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel, flag); - return TRUE; - } - else - return FALSE; -} - -void wxListBox::Command (wxCommandEvent & event) -{ - if (event.m_extraLong) - SetSelection (event.m_commandInt); - else - { - Deselect (event.m_commandInt); - return; - } - ProcessCommand (event); -} - -void wxListBoxCallback (Widget w, XtPointer clientData, - XmListCallbackStruct * cbs) -{ - /* - if (cbs->reason == XmCR_EXTENDED_SELECT) - cout << "*** Extend select\n"; - else if (cbs->reason == XmCR_SINGLE_SELECT) - cout << "*** Single select\n"; - else if (cbs->reason == XmCR_MULTIPLE_SELECT) - cout << "*** Multiple select\n"; - else if (cbs->reason == XmCR_BROWSE_SELECT) - cout << "*** Browse select\n"; - - if (cbs->selection_type == XmMODIFICATION) - cout << "*** Modification\n"; - else if (cbs->selection_type == XmINITIAL) - cout << "*** Initial\n"; - else if (cbs->selection_type == XmADDITION) - cout << "*** Addition\n"; - */ - - wxListBox *item = (wxListBox *) clientData; - - if (item->InSetValue()) - return; - - wxCommandEvent event (wxEVT_COMMAND_LISTBOX_SELECTED, item->GetId()); - switch (cbs->reason) - { - case XmCR_MULTIPLE_SELECT: - case XmCR_BROWSE_SELECT: - { - event.m_clientData = item->GetClientData (cbs->item_position - 1); - event.m_commandInt = cbs->item_position - 1; - event.m_extraLong = TRUE; - event.SetEventObject(item); - item->ProcessCommand (event); - break; - } - case XmCR_EXTENDED_SELECT: - { - switch (cbs->selection_type) - { - case XmINITIAL: - case XmADDITION: - case XmMODIFICATION: - { - event.m_clientData = item->GetClientData (cbs->item_position - 1); - event.m_commandInt = cbs->item_position - 1; - event.m_extraLong = TRUE; - event.SetEventObject(item); - item->ProcessCommand (event); - break; - } - } - break; - } - } -} - -/* Respond by getting the -* designated "default button" in the action area and activate it -* as if the user had selected it. -*/ -void wxListBoxDefaultActionProc (Widget list_w, XtPointer client_data, XmListCallbackStruct * cbs) -{ - wxListBox *lbox = (wxListBox *) client_data; - - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, lbox->GetId()); - event.SetEventObject( lbox ); - lbox->GetEventHandler()->ProcessEvent(event) ; -} - -WXWidget wxListBox::GetTopWidget() const -{ - return (WXWidget) XtParent( (Widget) m_mainWidget ); -} - -void wxListBox::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxListBox::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); - - Widget parent = XtParent ((Widget) m_mainWidget); - Widget hsb, vsb; - - XtVaGetValues (parent, - XmNhorizontalScrollBar, &hsb, - XmNverticalScrollBar, &vsb, - NULL); - - /* TODO: should scrollbars be affected? Should probably have separate - * function to change them (by default, taken from wxSystemSettings) - */ - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE); - DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE); - - XtVaSetValues (hsb, - XmNtroughColor, backgroundColour.AllocColour(XtDisplay(hsb)), - NULL); - XtVaSetValues (vsb, - XmNtroughColor, backgroundColour.AllocColour(XtDisplay(vsb)), - NULL); - - DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE); -} - -void wxListBox::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); - - Widget parent = XtParent ((Widget) m_mainWidget); - Widget hsb, vsb; - - XtVaGetValues(parent, - XmNhorizontalScrollBar, &hsb, - XmNverticalScrollBar, &vsb, - NULL); - - /* TODO: should scrollbars be affected? Should probably have separate - function to change them (by default, taken from wxSystemSettings) - - DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour); - DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour); - DoChangeForegroundColour((WXWidget) parent, m_foregroundColour); - */ -} - - diff --git a/src/motif/main.cpp b/src/motif/main.cpp deleted file mode 100644 index e2eea40e29..0000000000 --- a/src/motif/main.cpp +++ /dev/null @@ -1,18 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Entry point -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/app.h" - -int main(int argc, char* argv[]) -{ - return wxEntry(argc, argv); -} - diff --git a/src/motif/makefile.unx b/src/motif/makefile.unx deleted file mode 100644 index 55b61ca7da..0000000000 --- a/src/motif/makefile.unx +++ /dev/null @@ -1,250 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for wxMotif library, Unix - -EXTRACFLAGS=-DLEX_SCANNER - -include ../make.env - -LIB_CPP_SRC=\ -\ - ../common/cmndata.cpp \ - ../common/config.cpp \ - ../common/dcbase.cpp \ - ../common/date.cpp \ - ../common/docmdi.cpp \ - ../common/docview.cpp \ - ../common/dynarray.cpp \ - ../common/dynlib.cpp \ - ../common/event.cpp \ - ../common/file.cpp \ - ../common/fileconf.cpp \ - ../common/filefn.cpp \ - ../common/gdicmn.cpp \ - ../common/hash.cpp \ - ../common/helpbase.cpp \ - ../common/intl.cpp \ - ../common/ipcbase.cpp \ - ../common/image.cpp \ - ../common/imagjpeg.cpp \ - ../common/imagpng.cpp \ - ../common/imaggif.cpp \ - ../common/layout.cpp \ - ../common/list.cpp \ - ../common/log.cpp \ - ../common/matrix.cpp \ - ../common/memory.cpp \ - ../common/module.cpp \ - ../common/object.cpp \ - ../common/odbc.cpp \ - ../common/prntbase.cpp \ - ../common/resource.cpp \ - ../common/serbase.cpp \ - ../common/paper.cpp \ - ../common/string.cpp \ - ../common/textfile.cpp \ - ../common/tbarbase.cpp \ - ../common/tbarsmpl.cpp \ - ../common/time.cpp \ - ../common/timercmn.cpp \ - ../common/utilscmn.cpp \ - ../common/wincmn.cpp \ - ../common/framecmn.cpp \ - ../common/stream.cpp \ - ../common/datstrm.cpp \ - ../common/wfstream.cpp \ - ../common/mstream.cpp \ - ../common/zstream.cpp \ - ../common/objstrm.cpp \ - ../common/sckstrm.cpp \ - ../common/validate.cpp \ - ../common/valgen.cpp \ - ../common/valtext.cpp \ - ../common/variant.cpp \ - ../common/wxexpr.cpp \ - ../common/wxchar.cpp \ - ../common/socket.cpp \ - ../common/sckaddr.cpp \ - ../common/sckint.cpp \ - ../common/sckipc.cpp \ - ../common/protocol.cpp \ - ../common/ftp.cpp \ - ../common/http.cpp \ - ../common/url.cpp \ - ../common/tokenzr.cpp \ -\ - ../unix/threadpsx.cpp \ - ../unix/utilsunx.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - control.cpp \ - combobox.cpp \ - cursor.cpp \ - data.cpp \ - dataobj.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - icon.cpp \ - listbox.cpp \ - joystick.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - menuitem.cpp \ - minifram.cpp \ - msgdlg.cpp \ - palette.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbox.cpp \ - statbmp.cpp \ - stattext.cpp \ - taskbar.cpp \ - textctrl.cpp \ - timer.cpp \ - toolbar.cpp \ - utils.cpp \ - wave.cpp \ - window.cpp \ -\ - ../generic/choicdgg.cpp \ - ../generic/colrdlgg.cpp \ - ../generic/dirdlgg.cpp \ - ../generic/dcpsg.cpp \ - ../generic/fontdlgg.cpp \ - ../generic/gridg.cpp \ - ../generic/helphtml.cpp \ - ../generic/helpext.cpp \ - ../generic/imaglist.cpp \ - ../generic/listctrl.cpp \ - ../generic/laywin.cpp \ - ../generic/msgdlgg.cpp \ - ../generic/notebook.cpp \ - ../generic/panelg.cpp \ - ../generic/printps.cpp \ - ../generic/prntdlgg.cpp \ - ../generic/prop.cpp \ - ../generic/propform.cpp \ - ../generic/proplist.cpp \ - ../generic/sashwin.cpp \ - ../generic/scrolwin.cpp \ - ../generic/splitter.cpp \ - ../generic/statusbr.cpp \ - ../generic/tabg.cpp \ - ../generic/textdlgg.cpp \ - ../generic/treectrl.cpp - -ZLIB_SRC=\ - ../zlib/adler32.c ../zlib/deflate.c ../zlib/infblock.c\ - ../zlib/inflate.c ../zlib/zutil.c ../zlib/compress.c \ - ../zlib/infcodes.c ../zlib/inftrees.c ../zlib/trees.c \ - ../zlib/crc32.c ../zlib/gzio.c ../zlib/inffast.c\ - ../zlib/infutil.c ../zlib/uncompr.c - -LIB_C_SRC=\ -\ - ../common/y_tab.c \ - ../common/extended.c - -# Only need to compile zlib files if we don't -# already have a zlib library installed on our system -# (or we wish to statically link them for some reason) -EXTRA_C_SRC=\ - xmcombo/xmcombo.c - -EXTRA_CPP_SRC= - -# mdi/lib/XsComponent.C\ -# mdi/lib/XsMDICanvas.C\ -# mdi/lib/XsMDIWindow.C\ -# mdi/lib/XsMotifWindow.C\ -# mdi/lib/XsMoveOutline.C\ -# mdi/lib/XsOutline.C\ -# mdi/lib/XsResizeOutline.C - -all: $(WXLIB) png zlib - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) $(LIB_C_SRC:.c=.o) $(EXTRA_C_SRC:.c=.o) $(EXTRA_CPP_SRC:.C=.o) - -$(WXLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -../common/y_tab.$(OBJSUFF): ../common/y_tab.c ../common/lex_yy.c - $(CCLEX) -c $(CFLAGS) -DNO_CONFIGURE -o $@ ../common/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -../common/lex_yy.c: ../common/lexer.l - $(LEX) ../common/lexer.l - sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \ - sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c - /bin/rm -f lex.yy.c - -# The above should work with both lex and flex, but just in case not, -# here are alternative syntaxes. -# -# Flex-style syntax: -# $(LEX) -olex.yy.c ../common/lexer.l - -# Lex-style syntax: -# $(LEX) ../common/lexer.l - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv y.tab.c ../common/y_tab.c - -combobox/combobox.o: combobox/combobox.c - $(CCC) -c $(CFLAGS) -o $@ combobox/combobox.c - -zlib: - cd ../zlib; make -f makefile.unx motif - -png: - cd ../png; make -f makefile.unx motif - -clean: cleanzlib cleanpng - rm -f $(OBJECTS) $(WXLIB) - -cleanzlib: - cd ../zlib; make -f makefile.unx cleanmotif - -cleanpng: - cd ../png; make -f makefile.unx cleanmotif - diff --git a/src/motif/mdi.cpp b/src/motif/mdi.cpp deleted file mode 100644 index bace16b9f9..0000000000 --- a/src/motif/mdi.cpp +++ /dev/null @@ -1,665 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" -#include "wx/menu.h" -#include "wx/settings.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "wx/motif/private.h" - -extern wxList wxModelessWindows; - -// Implemented in frame.cpp -extern void wxFrameFocusProc(Widget workArea, XtPointer clientData, - XmAnyCallbackStruct *cbs); - -#define wxID_NOTEBOOK_CLIENT_AREA wxID_HIGHEST + 100 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxNotebook) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_SIZE(wxMDIParentFrame::OnSize) - EVT_ACTIVATE(wxMDIParentFrame::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxNotebook) - EVT_SCROLL(wxMDIClientWindow::OnScroll) - EVT_NOTEBOOK_PAGE_CHANGED(wxID_NOTEBOOK_CLIENT_AREA, wxMDIClientWindow::OnPageChanged) -END_EVENT_TABLE() - -#endif // USE_SHARED_LIBRARY - -// Parent frame - -wxMDIParentFrame::wxMDIParentFrame() -{ - m_clientWindow = (wxMDIClientWindow*) NULL; - m_activeChild = (wxMDIChildFrame*) NULL; - m_activeMenuBar = (wxMenuBar*) NULL; -} - -bool wxMDIParentFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_clientWindow = (wxMDIClientWindow*) NULL; - m_activeChild = (wxMDIChildFrame*) NULL; - m_activeMenuBar = (wxMenuBar*) NULL; - - bool success = wxFrame::Create(parent, id, title, pos, size, style, name); - if (success) - { - // TODO: app cannot override OnCreateClient since - // wxMDIParentFrame::OnCreateClient will still be called - // (we're in the constructor). How to resolve? - - m_clientWindow = OnCreateClient(); - - // Uses own style for client style - m_clientWindow->CreateClient(this, GetWindowStyleFlag()); - - int w, h; - GetClientSize(& w, & h); - m_clientWindow->SetSize(0, 0, w, h); - return TRUE; - } - else - return FALSE; -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ - // Make sure we delete the client window last of all - RemoveChild(m_clientWindow); - - DestroyChildren(); - - delete m_clientWindow; - m_clientWindow = NULL; -} - -void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - m_frameMenuBar = menu_bar; - - SetChildMenuBar((wxMDIChildFrame*) NULL); -} - -void wxMDIParentFrame::OnSize(wxSizeEvent& event) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - int x = 0; - int y = 0; - int width, height; - GetClientSize(&width, &height); - - if ( GetClientWindow() ) - GetClientWindow()->SetSize(x, y, width, height); -} - -void wxMDIParentFrame::GetClientSize(int *width, int *height) const -{ - wxFrame::GetClientSize(width, height); -} - -void wxMDIParentFrame::OnActivate(wxActivateEvent& event) -{ - // Do nothing -} - -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - return m_activeChild; -} - -// Create the client window class (don't Create the window, -// just return a new class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow ; -} - -// Set the child's menu into the parent frame -void wxMDIParentFrame::SetChildMenuBar(wxMDIChildFrame* child) -{ - wxMenuBar* oldMenuBar = m_activeMenuBar; - - if (child == (wxMDIChildFrame*) NULL) // No child: use parent frame - { - if (GetMenuBar() && (GetMenuBar() != m_activeMenuBar)) - { - // if (m_activeMenuBar) - // m_activeMenuBar->DestroyMenuBar(); - - m_activeMenuBar = GetMenuBar(); - m_activeMenuBar->CreateMenuBar(this); - /* - if (oldMenuBar && XtIsManaged((Widget) oldMenuBar->GetMainWidget())) - XtUnmanageChild((Widget) oldMenuBar->GetMainWidget()); - */ - if (oldMenuBar && oldMenuBar->GetMainWidget()) - XtUnmapWidget((Widget) oldMenuBar->GetMainWidget()); - - } - } - else if (child->GetMenuBar() == (wxMenuBar*) NULL) // No child menu bar: use parent frame - { - if (GetMenuBar() && (GetMenuBar() != m_activeMenuBar)) - { - // if (m_activeMenuBar) - // m_activeMenuBar->DestroyMenuBar(); - m_activeMenuBar = GetMenuBar(); - m_activeMenuBar->CreateMenuBar(this); - /* - if (oldMenuBar && XtIsManaged((Widget) oldMenuBar->GetMainWidget())) - XtUnmanageChild((Widget) oldMenuBar->GetMainWidget()); - */ - if (oldMenuBar && oldMenuBar->GetMainWidget()) - XtUnmapWidget((Widget) oldMenuBar->GetMainWidget()); - } - } - else // The child has a menubar - { - if (child->GetMenuBar() != m_activeMenuBar) - { - // if (m_activeMenuBar) - // m_activeMenuBar->DestroyMenuBar(); - - m_activeMenuBar = child->GetMenuBar(); - m_activeMenuBar->CreateMenuBar(this); - /* - if (oldMenuBar && XtIsManaged((Widget) oldMenuBar->GetMainWidget())) - XtUnmanageChild((Widget) oldMenuBar->GetMainWidget()); - */ - if (oldMenuBar && oldMenuBar->GetMainWidget()) - XtUnmapWidget((Widget) oldMenuBar->GetMainWidget()); - } - } -} - -// Redirect events to active child first -bool wxMDIParentFrame::ProcessEvent(wxEvent& event) -{ - // Stops the same event being processed repeatedly - static wxEventType inEvent = wxEVT_NULL; - if (inEvent == event.GetEventType()) - return FALSE; - - inEvent = event.GetEventType(); - - bool res = FALSE; - if (m_activeChild && event.IsKindOf(CLASSINFO(wxCommandEvent))) - { - res = m_activeChild->GetEventHandler()->ProcessEvent(event); - } - - if (!res) - res = GetEventHandler()->wxEvtHandler::ProcessEvent(event); - - inEvent = wxEVT_NULL; - - return res; -} - -void wxMDIParentFrame::DoSetSize(int x, int y, - int width, int height, - int sizeFlags) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); -} - -void wxMDIParentFrame::DoSetClientSize(int width, int height) -{ - wxWindow::DoSetClientSize(width, height); -} - -// Responds to colour changes, and passes event on to children. -void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - // TODO - - // Propagate the event to the non-top-level children - wxFrame::OnSysColourChanged(event); -} - -// MDI operations -void wxMDIParentFrame::Cascade() -{ - // TODO -} - -void wxMDIParentFrame::Tile() -{ - // TODO -} - -void wxMDIParentFrame::ArrangeIcons() -{ - // TODO -} - -void wxMDIParentFrame::ActivateNext() -{ - // TODO -} - -void wxMDIParentFrame::ActivatePrevious() -{ - // TODO -} - -// Child frame - -wxMDIChildFrame::wxMDIChildFrame() -{ - m_mdiParentFrame = (wxMDIParentFrame*) NULL; -} - -bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - m_foregroundColour = *wxBLACK; - m_windowFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - wxMDIClientWindow* clientWindow = parent->GetClientWindow(); - - wxASSERT_MSG( (clientWindow != (wxWindow*) NULL), "Missing MDI client window."); - - if (clientWindow) clientWindow->AddChild(this); - - SetMDIParentFrame(parent); - - int x = pos.x; int y = pos.y; - int width = size.x; int height = size.y; - if (width == -1) - width = 200; // TODO: give reasonable default - if (height == -1) - height = 200; // TODO: give reasonable default - - // We're deactivating the old child - wxMDIChildFrame* oldActiveChild = parent->GetActiveChild(); - if (oldActiveChild) - { - wxActivateEvent event(wxEVT_ACTIVATE, FALSE, oldActiveChild->GetId()); - event.SetEventObject( oldActiveChild ); - oldActiveChild->GetEventHandler()->ProcessEvent(event); - } - - // This is the currently active child - parent->SetActiveChild((wxMDIChildFrame*) this); - - // This time we'll try a bog-standard bulletin board for - // the 'frame'. A main window doesn't seem to work. - - m_mainWidget = (WXWidget) XtVaCreateWidget("client", - xmBulletinBoardWidgetClass, (Widget) clientWindow->GetTopWidget(), - XmNmarginWidth, 0, - XmNmarginHeight, 0, - /* - XmNrightAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, - */ - XmNresizePolicy, XmRESIZE_NONE, - NULL); - - XtAddEventHandler((Widget) m_mainWidget, ExposureMask,FALSE, - wxUniversalRepaintProc, (XtPointer) this); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - XtManageChild((Widget) m_mainWidget); - - SetTitle(title); - - clientWindow->AddPage(this, title, TRUE); - clientWindow->Refresh(); - - // Positions the toolbar and status bar -- but we don't have any. - // PreResize(); - - wxModelessWindows.Append(this); - return TRUE; -} - - -wxMDIChildFrame::~wxMDIChildFrame() -{ - if (m_mainWidget) - XtRemoveEventHandler((Widget) m_mainWidget, ExposureMask,FALSE, - wxUniversalRepaintProc, (XtPointer) this); - - if (GetMDIParentFrame()) - { - wxMDIParentFrame* parentFrame = GetMDIParentFrame(); - - if (parentFrame->GetActiveChild() == this) - parentFrame->SetActiveChild((wxMDIChildFrame*) NULL); - wxMDIClientWindow* clientWindow = parentFrame->GetClientWindow(); - - // Remove page if still there - if (clientWindow->RemovePage(this)) - clientWindow->Refresh(); - - // Set the selection to the first remaining page - if (clientWindow->GetPageCount() > 0) - { - wxMDIChildFrame* child = (wxMDIChildFrame*) clientWindow->GetPage(0); - parentFrame->SetActiveChild(child); - parentFrame->SetChildMenuBar(child); - } - else - { - parentFrame->SetActiveChild((wxMDIChildFrame*) NULL); - parentFrame->SetChildMenuBar((wxMDIChildFrame*) NULL); - } - } -} - -#if 0 -// Implementation: intercept and act upon raise and lower commands. -void wxMDIChildFrame::OnRaise() -{ - wxMDIParentFrame* parentFrame = (wxMDIParentFrame*) GetParent() ; - wxMDIChildFrame* oldActiveChild = parentFrame->GetActiveChild(); - parentFrame->SetActiveChild(this); - - if (oldActiveChild) - { - wxActivateEvent event(wxEVT_ACTIVATE, FALSE, oldActiveChild->GetId()); - event.SetEventObject( oldActiveChild ); - oldActiveChild->GetEventHandler()->ProcessEvent(event); - } - - wxActivateEvent event(wxEVT_ACTIVATE, TRUE, this->GetId()); - event.SetEventObject( this ); - this->GetEventHandler()->ProcessEvent(event); -} - -void wxMDIChildFrame::OnLower() -{ - wxMDIParentFrame* parentFrame = (wxMDIParentFrame*) GetParent() ; - wxMDIChildFrame* oldActiveChild = parentFrame->GetActiveChild(); - - if (oldActiveChild == this) - { - wxActivateEvent event(wxEVT_ACTIVATE, FALSE, oldActiveChild->GetId()); - event.SetEventObject( oldActiveChild ); - oldActiveChild->GetEventHandler()->ProcessEvent(event); - } - // TODO: unfortunately we don't now know which is the top-most child, - // so make the active child NULL. - parentFrame->SetActiveChild((wxMDIChildFrame*) NULL); -} -#endif - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxMDIChildFrame::DoSetClientSize(int width, int height) -{ - wxWindow::DoSetClientSize(width, height); -} - -void wxMDIChildFrame::GetClientSize(int* width, int* height) const -{ - wxWindow::GetSize(width, height); -} - -void wxMDIChildFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); -} - -void wxMDIChildFrame::GetSize(int* width, int* height) const -{ - wxWindow::GetSize(width, height); -} - -void wxMDIChildFrame::GetPosition(int *x, int *y) const -{ - wxWindow::GetPosition(x, y); -} - -bool wxMDIChildFrame::Show(bool show) -{ - m_visibleStatus = show; /* show-&-hide fix */ - return wxWindow::Show(show); -} - -void wxMDIChildFrame::SetMenuBar(wxMenuBar *menuBar) -{ - // Don't create the underlying menubar yet; need to recreate - // it every time the child is activated. - m_frameMenuBar = menuBar; - - // We make the assumption that if you're setting the menubar, - // this is the currently active child. - GetMDIParentFrame()->SetChildMenuBar(this); -} - -// Set icon -void wxMDIChildFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; - if (m_icon.Ok()) - { - // Not appropriate since there are no icons in - // a tabbed window - } -} - -void wxMDIChildFrame::SetTitle(const wxString& title) -{ - m_title = title; - wxMDIClientWindow* clientWindow = GetMDIParentFrame()->GetClientWindow(); - int pageNo = clientWindow->FindPagePosition(this); - if (pageNo > -1) - clientWindow->SetPageText(pageNo, title); -} - -// MDI operations -void wxMDIChildFrame::Maximize() -{ - // TODO -} - -void wxMDIChildFrame::Iconize(bool iconize) -{ - // TODO -} - -bool wxMDIChildFrame::IsIconized() const -{ - return FALSE; -} - -// Is it maximized? Always maximized under Motif, using the -// tabbed MDI implementation. -bool wxMDIChildFrame::IsMaximized(void) const -{ - return TRUE; -} - -void wxMDIChildFrame::Restore() -{ - // TODO -} - -void wxMDIChildFrame::Activate() -{ - // TODO -} - -void wxMDIChildFrame::CaptureMouse() -{ - wxWindow::CaptureMouse(); -} - -void wxMDIChildFrame::ReleaseMouse() -{ - wxWindow::ReleaseMouse(); -} - -void wxMDIChildFrame::Raise() -{ - wxWindow::Raise(); -} - -void wxMDIChildFrame::Lower(void) -{ - wxWindow::Raise(); -} - -void wxMDIChildFrame::SetSizeHints(int WXUNUSED(minW), int WXUNUSED(minH), int WXUNUSED(maxW), int WXUNUSED(maxH), int WXUNUSED(incW), int WXUNUSED(incH)) -{ -} - -// Client window - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ - // By the time this destructor is called, the child frames will have been - // deleted and removed from the notebook/client window. - DestroyChildren(); - - m_mainWidget = (WXWidget) 0; -} - -bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) -{ - // m_windowParent = parent; - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - - bool success = wxNotebook::Create(parent, wxID_NOTEBOOK_CLIENT_AREA, wxPoint(0, 0), wxSize(100, 100), 0); - if (success) - { - wxFont font(10, wxSWISS, wxNORMAL, wxNORMAL); - wxFont selFont(10, wxSWISS, wxNORMAL, wxBOLD); - GetTabView()->SetTabFont(font); - GetTabView()->SetSelectedTabFont(selFont); - GetTabView()->SetTabSize(120, 18); - GetTabView()->SetTabSelectionHeight(20); - return TRUE; - } - else - return FALSE; -} - -void wxMDIClientWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxWindow::DoSetSize(x, y, width, height, sizeFlags); -} - -void wxMDIClientWindow::DoSetClientSize(int width, int height) -{ - wxWindow::DoSetClientSize(width, height); -} - -void wxMDIClientWindow::GetClientSize(int *width, int *height) const -{ - wxWindow::GetClientSize(width, height); -} - -void wxMDIClientWindow::GetSize(int *width, int *height) const -{ - wxWindow::GetSize(width, height); -} - -void wxMDIClientWindow::GetPosition(int *x, int *y) const -{ - wxWindow::GetPosition(x, y); -} - -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& event) -{ - Default(); // Default processing -} - -void wxMDIClientWindow::OnPageChanged(wxNotebookEvent& event) -{ - // Notify child that it has been activated - if (event.GetOldSelection() != -1) - { - wxMDIChildFrame* oldChild = (wxMDIChildFrame*) GetPage(event.GetOldSelection()); - if (oldChild) - { - wxActivateEvent event(wxEVT_ACTIVATE, FALSE, oldChild->GetId()); - event.SetEventObject( oldChild ); - oldChild->GetEventHandler()->ProcessEvent(event); - } - } - if (event.GetSelection() != -1) - { - wxMDIChildFrame* activeChild = (wxMDIChildFrame*) GetPage(event.GetSelection()); - if (activeChild) - { - wxActivateEvent event(wxEVT_ACTIVATE, TRUE, activeChild->GetId()); - event.SetEventObject( activeChild ); - activeChild->GetEventHandler()->ProcessEvent(event); - - if (activeChild->GetMDIParentFrame()) - { - activeChild->GetMDIParentFrame()->SetActiveChild(activeChild); - activeChild->GetMDIParentFrame()->SetChildMenuBar(activeChild); - } - } - } - event.Skip(); -} diff --git a/src/motif/mdi/COPYRIGHT b/src/motif/mdi/COPYRIGHT deleted file mode 100644 index 0b8bc73586..0000000000 --- a/src/motif/mdi/COPYRIGHT +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 1996, 1998 Scott W. Sadler -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to use, -copy, modify, and distribute, copies of the Software, and to permit persons to -whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -SCOTT W. SADLER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of Scott W. Sadler shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization. - -Scott W. Sadler -Cisco Systems -7025 Kit Creek Road -P.O. Box 14987 -Research Triangle Park NC, 27709 -ssadler@cisco.com diff --git a/src/motif/mdi/Imakefile b/src/motif/mdi/Imakefile deleted file mode 100644 index a2c6b73e42..0000000000 --- a/src/motif/mdi/Imakefile +++ /dev/null @@ -1,9 +0,0 @@ -#include "config/MDI.tmpl" - -#define IHaveSubdirs -#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)' - -SUBDIRS = lib test - -MakeSubdirs($(SUBDIRS)) -DependSubdirs($(SUBDIRS)) diff --git a/src/motif/mdi/README b/src/motif/mdi/README deleted file mode 100644 index 354b88ddb6..0000000000 --- a/src/motif/mdi/README +++ /dev/null @@ -1,221 +0,0 @@ -Motif Multi-Document Interface Version 1.0 ------------------------------------------- - -INTRODUCTION -============ - -The Motif Multi-Document Interface (MDI) is a collection of C++ classes -that emulates the behavior of the Multi-Document Interface in Microsoft -Windows. The MDI framework allows a user to view multiple documents (windows) -constrained to a single parent window. - - -REQUIREMENTS -============ - -The following are required to build MDI: - - C++ compiler - X11R5/X11R6 - Motif1.2 - - -PLATFORMS -========= - -The MDI package is known to compile on the following platforms: - - SGI IRIX 5.2 - SunOS 4.1.3 - Sun Solaris 5.4 - HP-UX 9.05 - AIX 4.1 - Alpha/OSF1 v3.2 - Linux 1.1.90 (gcc version 2.5.8) - - -INSTALLATION -============ - -MDI is written in C++. It does not use any language extensions like -exceptions or templates, so it should compile with most C++ compilers. - -To build MDI, you need to set the name of your C++ compiler in the file -"config/MDI.tmpl". An attempt is made to pick a logical default for your -machine, but if it fails, you will need to edit this file. - -After setting your compiler, just type: - - xmkmf - make Makefiles - make - -If successful, the MDI library (libXsw.a) will be created in the "lib" -directory. Additionally, a short test program (MDItest) will be created -in the "test" directory. - -If you are not successful, see the "Possible Problems" section below. I -have had no luck with imake as it seems to only work on about 1/2 of the -platforms I have tried. If imake does not work, don't despair. The MDI -library is really simple to build by hand. Just follow the following steps -and it will work just fine. I have given detailed instructions in the -"Possible Problems" section below where I had problems using imake. If -anyone sees a problem with my Imakefile (I assume there are many), please -let me know. - -In order to build the MDI package by hand, do the following: - - 1. "cd" into the "lib" directory (cd lib) - 2. Compile all of the source code (CC -g -c *.C). Your compiler - name will vary. Some common compilers are: - CC: SGI, Sun, Solaris, HP-UX - xlC: AIX RS/6000 - cxx: Alpha/OSF1 - g++: Linux - gcc: Most other platforms - - 3. Create the library "libXsw.a" (ar rlv libXsw.a *.o) - 4. Run "ranlib" (not necessary on all machines) - 5. "cd" into the "test" directory (cd ../test) - 6. Compile the source code (see step #2 above) - 7. Link the test program (CC *.o -o MDItest ../lib/libXsw.a \ - -lXm -lXt -lX11). Again, the compiler name will vary - -If you still can't get it to work after all of that, email me and I'll give -you a hand. - - -POSSIBLE PROBLEMS -================= - -SunOS 4.1.3 - Kept getting this message when trying to make: - - make: Fatal error: Don't know how to make target `XsComponent.o' - - I ended up building the library and test case with the following: - - cd lib - CC -g -c *.C - ar rlv libXsw.a *.o - ranlib libXsw.a - cd ../test - CC -g -c *.C -I../lib - CC -g *.o -o MDItest ../lib/libXsw.a -L/usr/lib -lXm -lXt -lX11 - - -Solaris 5.4 - The generated Makefile had some unsupported options being passed to - the linker. I don't know what they were for, so I just removed them. - All worked fine after that. - - -HP-UX 9.05 - I did not have "xmkmf" on this platform. To build the library and test - case, I did the following (paths may vary): - - cd lib - CC -g -c *.C -I/usr/include/Motif1.2 -I/usr/include/X11R5 - ar rlv libXsw.a *.o - cd ../test - CC -g -c *.C -I../lib -I/usr/include/Motif1.2 -I/usr/include/X11R5 - CC -g *.o -o MDItest ../lib/libXsw.a -L/usr/lib/Motif1.2 \ - -L/usr/lib/X11R5 -lXm -lXt -lX11 - - -AIX 4.1 - Running xmkmf on the top Makefile did not work. Got the following: - - "./Imakefile", line 8.1: 1506-215 (E) Too many arguments - specified for macro NamedTargetSubdirs. - - In order to build the library, I cd'd into both the "lib" and "test" - directory and did the following there: - - xmkmf - make - - -Alpha/OSF1 v3.2 - Kept getting this message when trying to make: - - Make: Don't know how to make XsComponent.o. Stop. - - I ended up building the library and test case with the following: - - cd lib - cxx -g -c *.C - ar rlv libXsw.a *.o - cd ../test - cxx -g -c *.C -I../lib - cxx -g *.o -o MDItest ../lib/libXsw.a -lXm -lXt -lX11 - - -Linux - "make Makefiles" did not work correctly. Just cd'd into both the - "lib" and "test" directories and type: - - xmkmf - make - - Also, if you don't have the C++ library (libC.a), you will get some - undefined symbols like when linking: - - ../lib/libXsw.a(XsComponent.o): Undefined symbol _cout - referenced from text segment - ../lib/libXsw.a(XsComponent.o): Undefined symbol - ostream::operator<<(char const *) referenced from text segment - - To get rid of these errors, you will need to recompile the library - (specifically XsComponent.C) with -DNDEBUG. This will remove the calls - to the library and will eliminate the need to link with the - C++ library - - -DOCUMENTATION -============= - -All documentation is written in HTML and can be found in the "doc" directory. -The top-most documentation file is "mdi.html" - - -AVAILABILITY -=============== - -The latest version of MDI is available at: - - ftp://itimail.iti-oh.com/pub/project/sws/MDI-.tar.gz - ftp://itimail.iti-oh.com/pub/project/sws/MDI-.tar.Z - -The MDI WWW page is located at: - - http://www.iti-oh.com/~sws/mdi.html - - -COPYRIGHT -========= - -Copyright (c) 1996 Scott W. Sadler -All rights reserved. - -See license conditions in the COPYRIGHT file of the MDI distribution - - -BUG REPORTS -=========== - -Please report any bugs, suggestions or criticisms directly to me at the -address below. I want to make this as quality a software package as -possible: stable, efficient and portable. It is the feedback from the X -community that makes writing the software worthwhile. - -Scott W. Sadler -sws@iti-oh.com -http://www.iti-oh.com/~sws - - -HISTORY -======= - -03-Mar-96 Version 1.0 Released - diff --git a/src/motif/mdi/config/C++.rules b/src/motif/mdi/config/C++.rules deleted file mode 100644 index 3cb56a69df..0000000000 --- a/src/motif/mdi/config/C++.rules +++ /dev/null @@ -1,9 +0,0 @@ -#define CxxRules() @@\ - @@\ -CxxSuffixRules() - -#define CxxSuffixRules() @@\ -.SUFFIX: .C .o @@\ -.C.o: @@\ - $(CXX) $(CFLAGS) $(EXTRA_FLAGS) -c $< - diff --git a/src/motif/mdi/config/MDI.tmpl b/src/motif/mdi/config/MDI.tmpl deleted file mode 100644 index 380e94e0b4..0000000000 --- a/src/motif/mdi/config/MDI.tmpl +++ /dev/null @@ -1,52 +0,0 @@ -#undef FOUND_COMPILER - -#ifdef SGIArchitecture -CXX = CC -CC = $(CXX) -#define FOUND_COMPILER -#endif - -#ifdef SparcArchitecture -CXX = CC -CC = $(CXX) -#define FOUND_COMPILER -#endif - -#ifdef HPArchitecture -CXX = CC -CC = $(CXX) -#define FOUND_COMPILER -#endif - -#ifdef AIXArchitecture -CXX = xlC -CC = $(CXX) -EXTRA_FLAGS = -U__STR__ -D_POSIX_SOURCE -#define FOUND_COMPILER -#endif - -#ifdef OSF1Architecture -CXX = cxx -CC = $(CXX) -#define FOUND_COMPILER -#endif - -#ifdef LinuxArchitecture -CXX = gcc -CC = $(CXX) -#define FOUND_COMPILER -#endif - -#ifdef i386SVR4Architecture -CXX = CC -CC = $(CXX) -CCOPTIONS= -#define COMPILER_FOUND -#endif - -#ifndef FOUND_COMPILER -CXX = gcc -CC = $(CXX) -#endif - -#include "C++.rules" diff --git a/src/motif/mdi/doc/canvas.html b/src/motif/mdi/doc/canvas.html deleted file mode 100644 index d18faaf226..0000000000 --- a/src/motif/mdi/doc/canvas.html +++ /dev/null @@ -1,140 +0,0 @@ - - - -XsMDICanvas Class - - - -

-The XsMDICanvas Class -

- -

-This section describes how to build and manipulate an MDI using the -XsMDICanvas class. Minimally, you must perform the following actions -to build and display an MDI canvas: - -

    -
  1. Create the XsMDICanvas object.
  2. -
  3. Create the documents as instances of subclasses of XsMDIWindow.
  4. -
  5. Add the documents to the canvas
  6. -
  7. Show the canvas
  8. -
- -

-Constructor and Destructor: - -

-The XsMDICanvas accepts two arguments: - -

-
XsMDICanvas (const char *name, Widget parent)
-
- -

-The name parameter specifies the name of the canvas and is used -as the widget name for the underlying implementation. The parent -parameter specifies the widget that is to be used as the parent of the -canvas. - -

-The XsMDICanvas destructor destroys the canvas, but it does not -destroy any of the underlying documents. It is up to the application to -destroy these. - -

-Adding and removing documents: - -

-After the documents are created, they must be added to the canvas. The -XsMDICanvas::add() member-function adds documents to the canvas: - -

-
virtual void add (XsMDIWindow *window)
-
- -

-The behavior of adding the same document to the canvas more than once -is undefined. Documents can be removed from the canvas by using: - -

-
virtual void remove (XsMDIWindow *window)
-
- -

-Additionally, all documents can be removed from the canvas with: - -

-
void removeAll ( )
-
- -

-The number of documents currently installed in the canvas can be -retrieved with: - -

-
int numWindows ( ) const
-
- -

-Showing the canvas: - -

-In order to show (manage) the canvas call the show member function: - -

-
virtual void show ( )
-
- -This member-function is responsible for cycling all of the installed documents -and calling their respective XsMDIWindow::_buildClientArea() -member-functions. After each document has been created, show will then -manage each document and, finally, itself. - -

-Window Placement: - -

-The current implementation of XsMDICanvas uses a very simple algorithm -to place the documents on the canvas. In order to implement a more specific -placement algorithm, derive a class from XsMDICanvas and override -the member-function: - -

-
virtual void _placeWindow (XsMDIWindow *win)
-
- -

-This member-function is called for each document in the canvas to compute -the location of the document. Please refer to the code (XsMDICanvas.C) -for more details. - -

-Canvas Behavior: - -

-The XsMDICanvas is implemented as an XmScrolledWindow with an -XmDrawingArea work-window. The instance name for the work-window -is canvas. Internal callbacks in the canvas class force the work-window -to be at-least the size of the clip-window. This prevents documents from -being clipped as they are moved around. - -

-By default, the XmDrawingArea work-window has its XmNresizePolicy -set to XmRESIZE_GROW. This will allow the work-area to grow to -whatever size necessary, but it will not automatically shrink as windows -are manipulated. If different behavior is desired, the XmNresizePolicy -resource on the work-area can be set to XmRESIZE_ANY. This will -force the work-window to recompute its size as windows are manipulated, and -it will grow and shrink as necessary. However, the XsMDICanvas will -still force the work-area to be at-least the size of the clip-window. - -

To change the default behavior, add the following resource: - -

-
<XsMDICanvas name>*canvas.resizePolicy: XmRESIZE_ANY
-
- - - - diff --git a/src/motif/mdi/doc/mdi.html b/src/motif/mdi/doc/mdi.html deleted file mode 100644 index 0052c2da90..0000000000 --- a/src/motif/mdi/doc/mdi.html +++ /dev/null @@ -1,182 +0,0 @@ - - - -Motif Multi-Document Interface (MDI) - - - -
-[Class Structure] -

- -The Motif Multi-Document Interface - -

-
- -

-The Motif Multi-Document Interface (MDI) is a collection of C++ classes -that emulates the behavior of the Multi-Document Interface in Microsoft -Windows. The MDI framework allows a user to view multiple documents (windows) -constrained to a single parent window. - -

-


- -

- -CLASS -STRUCTURE: - - -

-[Class Structure] - -
-Figure 1. Inheritance Graph for MDI classes - -

-The XsMDICanvas is a self-contained component used to display and manage -any number of child document windows. All documents windows are derived from -the abstract base-class XsMDIWindow. To get the Motif-like functionality, -document windows should be derived from the XsMotifWindow class. - -

-


- -

- -EXAMPLE: - - -

-The process of building and displaying a Multi-Document Interface using MDI -consists of the following steps: - -

    -
  1. Creating the application document(s)
  2. -
  3. Creating the MDI canvas
  4. -
  5. Adding the document(s) to the canvas
  6. -
- -
-
-#include "XsMDICanvas.h"
-#include "XsMotifWindow.h"
-
-// Application document (derived from XsMotifWindow)
-
-class MyDocument : public XsMotifWindow {
-   public:
-      MyDocument (const char *name);
-      virtual ~MyDocument ( );
-   protected:
-      virtual void _buildClientArea (Widget parent);
-};
-      
-void createCanvas (Widget parent) {
-
-// Create documents
-
-   MyDocument *doc1 = new MyDocument ("doc1");
-   MyDocument *doc2 = new MyDocument ("doc2");
-   
-// Create the canvas
-
-   XsMDICanvas *canvas = new XsMDICanvas ("canvas", parent);
-   
-// Add documents to canvas
-
-   canvas->add (doc1);
-   canvas->add (doc2);
-
-// Show the canvas
-
-   canvas->show ( );
-}
-   
-
- -

-In this example, the application document MyDocument is derived -from XsMotifWindow. This provides a Motif-like window suitable for -use with the XsMDICanvas. - -

-Next, two MyDocument objects are created along with the XsMDICanvas. -The two documents are then added to the canvas using the add -member-function of the canvas. Lastly, the canvas is shown (managed) -using the show member-function. - -

-Creating the document MyDocument does not automatically create any -widgets. Rather, it only initializes internal variables. The widgets are -not created until the document is added to the canvas. The XsMDICanvas -is responsible for calling XsMotifWindow::_buildClientArea() at an -appropriate time. In this member-function, the application can create the -actual contents of the document. - -

-The member-function _buildClientArea is passed a widget to be used as -the parent of the document contents. This parent widget is an unmanaged -XmForm widget. The application is free to create whatever contents -it needs as a child of the XmForm parent. - -

-


- -

- -CLASS -REFERENCES: - - -

-Of the classes in the MDI package, only the following should be of -interest to MDI library users: - -

- -

-


- -

- -EXPLORING -RESOURCES: - - -

-The MDI classes support a number of different X-resources (please refer -the the class manual pages for complete details). In order to get a feel -for the customization capabilities of the MDI library, try running the -test program (MDItest) with the following command-line options: - -

-
MDItest -xrm "*showBorder:false"
-
MDItest -xrm "*showTitle:false" -xrm "*showResize:false"
-
MDItest -xrm "*showMenu:false" -xrm "*showMaximize:false"
-
MDItest -xrm "*borderSize:4" -xrm "*buttonSize:14"
-
MDItest -xrm "*lowerOnIconify:true" -xrm "*title:Hello World"
-
- -

-


- -

- -ADDITIONAL -IINFORMATION: - - -

-The test program MDItest.C gives a complete example of an MDI -application. It should serve as a good reference/example of the MDI library. - - - - - diff --git a/src/motif/mdi/doc/mwindow.html b/src/motif/mdi/doc/mwindow.html deleted file mode 100644 index 8ea6cd8c81..0000000000 --- a/src/motif/mdi/doc/mwindow.html +++ /dev/null @@ -1,277 +0,0 @@ - - - -XsMotifWindow Class - - - -

-The XsMotifWindow Class -

- -

-The XsMDICanvas requires that all documents be a subclass of -XsMDIWindow or a subclass of a class derived from it. By itself -XsMDIWindow does not define any appearance or behavior for the -documents. However, XsMotifWindow, derived from XsMDIWindow, -defines a MWM-like look-and-feel to a document. - -

-Documents in your application should be derived from XsMotifWindow. -This class provides the look-and-feel of Motif window and supports the -interaction with the XsMDICanvas. It is up to the application to -define the contents of each document. - -

-Constructor and Destructor: - -

-The XsMotifWindow constructor accepts one argument: - -

-
XsMotifWindow (const char *name)
-
- -

-The name parameter specifies the name of the document and is used -as the widget name for the underlying implementation. The name parameter -is also used as the default title and icon-name for the document. - -

-Note: The XsMotifWindow constructor does not create any -widgets. Rather it only initializes internal variables. The widgets are -not created until the document is added to the canvas. The XsMDICanvas -calls the member-function XsMotifWindow::_buildClientArea() when it needs -to create the document widgets. - -

-The XsMotifWindow destructor destroys the document widgets (if they have -been created) and frees its internal storage. It is up to the application -to free all documents. The XsMDICanvas will not destroy the -documents for you. - -

-Document Utilities: - -

-Although rarely called from the application, the XsMotifWindow supports -a number of utility functions to manipulate the document. - -

-
virtual void raise ( )
-
virtual void lower ( )
-
virtual void minimize ( )
-
virtual void maximize ( )
-
virtual void restore ( )
-
virtual void close ( )
-
- -

-The close member-function does not destroy the document, it simply -hides it from view. You can restore a closed document with -XsMotifWindow::show(). - -

-The following member-functions are used to change/query the appearance of -the document: - -

-
void setTitle (const char *name)
-
const char *title ( ) const
-
void setIconName (const char *name)
-
const char *iconName ( ) const
-
void setPixmap (Pixmap pixmap)
-
Pixmap pixmap ( ) const
-
Widget icon ( ) const
-
Boolean minimized ( ) const
-
Boolean maximized ( ) const
-
virtual void setPosition (Position x, Position y)
-
virtual void setSize (Dimension width, Dimension height)
-
- -

-The setPixmap member-function accepts a pixmap which the document then -uses as the decoration on the icon. Because the document does not make a copy -of the pixmap, it is important that the application not free the pixmap until -all documents that reference it are deleted. The document does, however, make -a local copy of the title or icon-name string passed to it, so the application -is free to do whatever it wants to the passed-in string. The icon -member-function returns the widget that is used to implement the icon. - - -

-Creating Window Subclasses: - -

-The application must derive its documents from XsMotifWindow in order to -define the contents of the document. The XsMDICanvas calls the -protected member-function _buildClientArea when it creates the -document. Each class derived from XsMotifWindow must override -this pure-virtual member-function. - -

-The member-function _buildClientArea is called with a single argument: - -

-
virtual void _buildClientArea (Widget parent)
-
- -The parent argument should be used as the parent of the contents of -the document. This widget is an unmanaged XmForm widget, and all of -the standard resources and constrains apply to it. The XsMDICanvas -is responsible for managing the parent widget at the appropriate time. - -

-As an example, consider the following: - -

-// _buildClientArea (called to create document contents)
-
-void MyDocument::_buildClientArea (Widget parent)
-{
-   assert (parent != 0);
-   
-// Create a main window with some dummy menus
-
-   Widget mainW = XtVaCreateWidget ("mainWin", xmMainWindowWidgetClass, parent,
-      XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM,
-      XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM,
-      NULL);
-   ...
-   
-   XtManageChild (mainW);
-}
-
- -

-In this case, an XmMainWindow is created as the child of the parent -widget. The XmMainWindow is then attached to the 4 sides of the parent -form. Note also that the main window is managed before returning from the -function. - -

-Resources: - -

-The XsMotifWindow supports the following resources: - -

-   Name              Class             Type           Default
-------------------------------------------------------------------------------
-   borderSize        BorderSize        Dimension      6
-   buttonSize        ButtonSize        Dimension      23
-   title             Title             String         dynamic
-   titleFont         TitleFont         String         -*-helvetica-bold-o-normal-*-14-*-*-*-*-*-iso8859-1
-   iconSize          IconSize          Dimension      70
-   iconName          IconName          String         dynamic
-   iconFont          IconFont          String         *-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-1
-   XmNiconX          XmCIconX          Position       dynamic
-   XmNiconY          XmCIconY          Position       dynamic
-   saveUnder         SaveUnder         Boolean        True
-   restoreString     RestoreString     String         "Restore"
-   moveString        MoveString        String         "Move"
-   sizeString        SizeString        String         "Size"
-   minimizeString    MinimizeString    String         "Minimize"
-   maximizeString    MaximizeString    String         "Maximize"
-   raiseString       RaiseString       String         "Raise"
-   lowerString       LowerString       String         "Lower"
-   closeString       CloseString       String         "Close"
-   menuFont          MenuFont          String         -*-helvetica-bold-o-normal-*-14-*-*-*-*-*-iso8859-1
-   showBorder        ShowBorder        Boolean        True
-   showResize        ShowResize        Boolean        True
-   showTitle         ShowTitle         Boolean        True
-   showMenu          ShowMenu          Boolean        True
-   showMinimize      ShowMinimize      Boolean        True   
-   showMaximize      ShowMaximize      Boolean        True
-   lowerOnIconify    LowerOnIconify    Boolean        False
-   XmNminWidth       XmCMinWidth       Dimension      dynamic
-   XmNmaxWidth       XmCMaxWidth       Dimension      dynamic
-   XmNminHeight      XmCMinHeight      Dimension      dynamic
-   XmNmaxHeight      XmCMaxHeight      Dimension      dynamic
-
- -
-
-
-
borderSize
-
Size of the window border.
-
buttonSize
-
Size of the window buttons.
-
title
-
Title of the window. The default is the name of the window instance.
-
titleFont
-
Font used to draw the window title.
-
iconSize
-
Size of the icon representation.
-
iconName
-
String used on the title. If unspecified, the window title is used.
-
iconFont
-
Font used to draw the icon-name.
-
XmNiconX
-
X-position of the icon. The default location is the top-left -corner of the window when it is iconified.
-
XmNiconY
-
Y-position of the icon. The default location is the top-left -corner of the window when it is iconified.
-
saveUnder
-
Enables/Disables save-unders for the menu.
-
restoreString
-
String used as the "restore" menu item.
-
moveString
-
String used as the "move" menu item.
-
sizeString
-
String used as the "size" menu item.
-
minimizeString
-
String used as the "minimize" menu item.
-
maximizeString
-
String used as the "maximize" menu item.
-
raiseString
-
String used as the "raise" menu item.
-
lowerString
-
String used as the the "lower" menu item.
-
closeString
-
String used as the "close" menu item.
-
menuFont
-
Font used to draw the menu strings.
-
showBorder
-
Enables/Disables the window border. If the border is disabled, -the resize-handles are automatically disabled.
-
showResize
-
Enables/Disables the window resize handles.
-
showTitle
-
Enables/Disables the window title. If the title is disabled, -all of the window buttons are automatically disabled.
-
showMenu
-
Enables/Disables the window menu button.
-
showMinimize
-
Enables/Disables the window minimize button.
-
showMaximize
-
Enables/Disables the window maximize button.
-
lowerOnIconify
-
Automatically lower windows when iconified.
-
XmNminWidth
-
Minimium window width. The default is about four times the size of -the window button.
-
XmNmaxWidth
-
Maximum window width. The default is not to constrain the maximum size.
-
XmNminHeight
-
Minimum window height. The default is about four times the size of -the window button.
-
XmNmaxHeight
-
Maximum window height. The default is not to constrain the maximum size.
-
-
-
- -

-XsMotifWindow Implementation: - -

-As a convenience to those who wish to modify the XsMotifWindow code, -here is a diagram of the internal class structure: - -

"; - else if (m_isLink) s += " "; - else - { - s += LongToString( m_size ); - s += " bytes "; - }; - s += IntToString( m_day ); - s += "."; - s += IntToString( m_month ); - s += "."; - s += IntToString( m_year ); - s += " "; - s += IntToString( m_hour ); - s += ":"; - s += IntToString( m_minute ); - s += " "; - s += m_permissions; - return s; -}; - -wxString wxFileData::GetEntry( const int num ) -{ - wxString s; - switch (num) - { - case 0: - s = m_name; - break; - case 1: - if (m_isDir) s = ""; - else if (m_isLink) s = ""; - else s = LongToString( m_size ); - break; - case 2: - if (m_day < 10) s = "0"; else s = ""; - s += IntToString( m_day ); - s += "."; - if (m_month < 10) s += "0"; - s += IntToString( m_month ); - s += "."; - if (m_year < 10) s += "0"; // this should happen real soon... - s += IntToString( m_year ); - break; - case 3: - if (m_hour < 10) s = "0"; else s = ""; - s += IntToString( m_hour ); - s += ":"; - if (m_minute < 10) s += "0"; - s += IntToString( m_minute ); - break; - case 4: - s = m_permissions; - break; - default: - s = "No entry"; - break; - }; - return s; -}; - -bool wxFileData::IsDir( void ) -{ - return m_isDir; -}; - -bool wxFileData::IsExe( void ) -{ - return m_isExe; -}; - -bool wxFileData::IsLink( void ) -{ - return m_isLink; -}; - -long wxFileData::GetSize( void ) -{ - return m_size; -}; - -bool wxFileData::NewNameIsLegal( const wxString &s ) -{ - wxString fileName = wxPathOnly( m_fileName ); - fileName += "/"; - fileName += s; - return (!wxFileExists( fileName )); -}; - -bool wxFileData::Rename( const wxString &s ) -{ - wxString fileName = wxPathOnly( m_fileName ); - fileName += "/"; - fileName += s; - bool ret = wxRenameFile( m_fileName, fileName ); - if (ret) - { - m_fileName = fileName; - m_name = s; - }; - return ret; -}; - -void wxFileData::MakeItem( wxListItem &item ) -{ - item.m_text = m_name; - item.m_colour = wxBLACK; - if (IsExe()) item.m_colour = wxRED; - if (IsDir()) item.m_colour = wxBLUE; - if (IsLink()) - { - wxColour *dg = wxTheColourDatabase->FindColour( "MEDIUM GREY" ); - item.m_colour = dg; - }; - item.m_data = (long)this; -}; - -//----------------------------------------------------------------------------- -// wxFileCtrl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFileCtrl,wxListCtrl); - -BEGIN_EVENT_TABLE(wxFileCtrl,wxListCtrl) - EVT_SET_FOCUS (wxFileCtrl::OnSetFocus) -END_EVENT_TABLE() - -wxFileCtrl *wxFileCtrl::m_lastFocus = (wxFileCtrl *) NULL; - -wxFileCtrl::wxFileCtrl( void ) -{ - m_dirName = "/"; - m_showHidden = FALSE; -}; - -wxFileCtrl::wxFileCtrl( wxWindow *win, const wxWindowID id, const wxString &dirName, - const wxPoint &pos, const wxSize &size, - const long style, const wxString &name ) : - wxListCtrl( win, id, pos, size, style, name ) -{ - SetItemSpacing( 40 ); - wxImageList *imageList = new wxImageList( 30, 30 ); - imageList->Add( wxBitmap( folder_xpm ) ); - imageList->Add( wxBitmap( txt_xpm ) ); - imageList->Add( wxBitmap( list_xpm ) ); - imageList->Add( wxBitmap( find_xpm ) ); - - SetImageList( imageList, wxIMAGE_LIST_NORMAL ); - - m_dirName = dirName; - m_showHidden = FALSE; - Update(); - - m_lastFocus = this; - - m_dragStartX = 0; - m_dragStartY = 0; - m_dragCount = 0; - -// SetDropTarget( new wxFileDropTarget() ); -}; - -void wxFileCtrl::ChangeToListMode() -{ - SetSingleStyle( wxLC_LIST ); - Update(); -}; - -void wxFileCtrl::ChangeToReportMode() -{ - SetSingleStyle( wxLC_REPORT ); - Update(); -}; - -void wxFileCtrl::ChangeToIconMode() -{ - SetSingleStyle( wxLC_ICON ); - Update(); -}; - -void wxFileCtrl::ShowHidden( bool show ) -{ - m_showHidden = show; - Update(); -}; - -int ListCompare( const long data1, const long data2, const long WXUNUSED(data) ) -{ - wxFileData *fd1 = (wxFileData*)data1 ; - wxFileData *fd2 = (wxFileData*)data2 ; - if (fd1->IsDir() && !fd2->IsDir()) return -1; - if (fd2->IsDir() && !fd1->IsDir()) return 1; - return strcmp( fd1->GetName(), fd2->GetName() ); -}; - -void wxFileCtrl::Update( void ) -{ - DeleteAllItems(); - for (int i = 0; i < 5; i++) DeleteColumn( 0 ); - long my_style = GetWindowStyleFlag(); - if (my_style & wxLC_REPORT) - { - InsertColumn( 0, "Name", wxLIST_FORMAT_LEFT, 110 ); - InsertColumn( 1, "Size", wxLIST_FORMAT_LEFT, 60 ); - InsertColumn( 2, "Date", wxLIST_FORMAT_LEFT, 55 ); - InsertColumn( 3, "Time", wxLIST_FORMAT_LEFT, 50 ); - InsertColumn( 4, "Permissions", wxLIST_FORMAT_LEFT, 120 ); - }; - wxFileData *fd = (wxFileData *) NULL; - wxListItem item; - item.m_mask = wxLIST_MASK_TEXT + wxLIST_MASK_DATA; - if (my_style & wxLC_ICON) item.m_mask += wxLIST_MASK_IMAGE; - item.m_itemId = 0; - item.m_col = 0; - wxString s; - wxString res = m_dirName + "/*"; - char *f = wxFindFirstFile( res.GetData(), 0 ); - while (f) - { - res = wxFileNameFromPath( f ); - fd = new wxFileData( res, f ); - s = fd->GetName(); - if (m_showHidden || (s[0] != '.')) - { - fd->MakeItem( item ); - if (my_style & wxLC_REPORT) - { - InsertItem( item ); - for (int i = 1; i < 5; i++) SetItem( item.m_itemId, i, fd->GetEntry( i) ); - } - else if (my_style & wxLC_LIST) - { - InsertItem( item ); - } - else if (my_style & wxLC_ICON) - { - if (fd->IsDir()) item.m_image = 0; else item.m_image = 1; - InsertItem( item ); - }; - item.m_itemId++; - }; - f = wxFindNextFile(); - }; - SortItems( ListCompare, 0 ); -}; - - -int wxFileCtrl::FillList( wxStringList &list ) -{ - long index = -1; - int count = 0; - wxString s; - for (;;) - { - index = GetNextItem( index, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED ); - if (index == -1) break; - wxListItem item; - item.m_itemId = index; - GetItem( item ); - wxFileData *fd = (wxFileData*)item.m_data; - list.Add( fd->GetFullName() ); - index++; - count++; - }; - if (count == 0) - { - index = GetNextItem( -1, wxLIST_NEXT_ALL, wxLIST_STATE_FOCUSED ); - if (index == -1) return 0; - wxListItem item; - item.m_itemId = index; - GetItem( item ); - wxFileData *fd = (wxFileData*)item.m_data; - list.Add( fd->GetFullName() ); - count = 1; - }; - return count; -}; - -void wxFileCtrl::DeleteFiles(void) -{ -/* - wxStringList list; - int count = FillList( list ); - if (count > 0) - { - wxString s = "Delete "; - s += wxIntToString( count ); - s += " selected file"; - if (count > 1) s += "s"; - s += " or director"; - if (count > 1) s += "ies?"; else s+= "y?"; - if (wxYES == wxMessageBox( s, "Delete", wxYES_NO )) - wxDeleteStatusDia( NULL, &list ); - }; -*/ -}; - -void wxFileCtrl::CopyFiles( char *WXUNUSED(dest) ) -{ -/* - wxStringList list; - int count = FillList( list ); - wxString s = dest; - int ret = 0; // 0 = nix, 1 = copy, 2 = move - wxCopyMoveDia( (wxFrame*)GetParent(), count, &ret, &s ); - if (ret == 1) - wxCopyStatusDia( NULL, s, &list ); -*/ -}; - -void wxFileCtrl::MoveFiles( char *WXUNUSED(dest) ) -{ -}; - -void wxFileCtrl::RenameFile(void) -{ -}; - -void wxFileCtrl::MakeDir(void) -{ -/* - wxString s = wxGetTextFromUser( "Enter new directory name:", "Make directory" ); - if (s.IsNull()) return; - if (s == "") return; - if ((s == ".") || (s == "..")) - { - wxMessageBox( "This was obviously an invalid directory name.", "Go away." ); - return; - }; - wxString dir; - GetDir( dir ); - dir += "/"; - dir += s; - if (wxFileExists( dir )) - { - wxMessageBox( "Filename exists already. Cannot create directoy.", "Make directory" ); - return; - }; - wxMkdir( dir ); - Update(); -*/ -}; - -void wxFileCtrl::GoToParentDir(void) -{ - wxString s = m_dirName; - int pos = s.Last( '/' ); - if ((pos >= 0) && (s != "/")) - { - s.Remove( pos, s.Length()-pos ); - if (s.Length() == 0) s = "/"; - m_dirName = s; - Update(); - }; -}; - -void wxFileCtrl::GoToHomeDir(void) -{ - wxString s = wxGetUserHome( wxString() ); - m_dirName = s; - Update(); -}; - -void wxFileCtrl::GoToDir( const wxString &dir ) -{ - m_dirName = dir; - Update(); -}; - -void wxFileCtrl::GetDir( wxString &dir ) -{ - dir = m_dirName; -}; - -/* -void wxFileCtrl::OnDropFiles( int WXUNUSED(n), char **WXUNUSED(data), int WXUNUSED(x), int WXUNUSED(y) ) -{ - wxString destDir; - wxPoint pt( x, y ); - int flag = wxLIST_HITTEST_ONITEM; - long hit = HitTest( pt, flag ); - if (hit > -1) - { - wxListItem li; - li.m_itemId = hit; - GetItem( li ); - wxFileData *fd = (wxFileData*)li.m_data; - if (fd->IsDir()) fd->GetFullName( destDir ); - }; - if (destDir.IsNull()) destDir = m_dirName; - int ret = 0; // 0 = nix, 1 = copy, 2 = move - wxCopyMoveDia( (wxFrame*)GetParent(), n, &ret, &destDir ); - if (ret == 1) - { - wxStringList slist; - for (int i = 0; i < n; i++) slist.Add( data[i] ); - wxCopyStatusDia( NULL, destDir.GetData(), &slist ); - Update(); - }; -}; -*/ - -void wxFileCtrl::OnListDeleteItem( wxListEvent &event ) -{ - wxFileData *fd = (wxFileData*)event.m_item.m_data; - delete fd; -}; - -void wxFileCtrl::OnListKeyDown( wxListEvent &event ) -{ - wxFileData *fd = (wxFileData*)event.m_item.m_data; - if (fd->IsDir()) - { - m_dirName = fd->GetFullName(); - Update(); - Refresh(); - return; - }; - if (fd->IsExe()) - { - wxExecute( fd->GetFullName() ); - return; - }; -}; - -void wxFileCtrl::OnListEndLabelEdit( wxListEvent &event ) -{ - wxFileData *fd = (wxFileData*)event.m_item.m_data; - wxString newName = event.m_item.m_text; - if (fd->NewNameIsLegal( newName )) - { - if (fd->Rename( newName )) - { - Update(); - } - else - { - wxString s = "Could not rename file to "; - s += newName; - s += "."; - wxMessageBox( s, "FileMaker", wxOK ); - }; - } - else - { - wxString s = "File name "; - s += newName; - s += " exists already or is invalid.\n"; - s += "Could not rename file."; - wxMessageBox( s, "FileMaker", wxOK ); - }; - return; -}; - -void wxFileCtrl::OnSetFocus( wxFocusEvent &event ) -{ - m_lastFocus = this; - event.Skip(); -}; - diff --git a/user/wxFile/filectrl.h b/user/wxFile/filectrl.h deleted file mode 100644 index f2e202433b..0000000000 --- a/user/wxFile/filectrl.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Author: Robert Roebling - * - * Copyright: (C) 1997,1998 Robert Roebling - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the wxWindows Licence, which - * you have received with this library (see Licence.htm). - * - */ - -#ifndef FileList_h -#define FileList_h - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/wx.h" -#include "wx/listctrl.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class wxFileData; -class wxFileCtrl; - -//----------------------------------------------------------------------------- -// wxFileData -//----------------------------------------------------------------------------- - -class wxFileData : public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxFileData); - - private: - wxString m_name; - wxString m_fileName; - long m_size; - int m_hour; - int m_minute; - int m_year; - int m_month; - int m_day; - wxString m_permissions; - bool m_isDir; - bool m_isLink; - bool m_isExe; - - public: - wxFileData( void ) {}; - wxFileData( const wxString &name, const wxString &fname ); - wxString GetName(void) const; - wxString GetFullName(void) const; - wxString GetHint(void) const; - wxString GetEntry( const int num ); - bool IsDir( void ); - bool IsLink( void ); - bool IsExe( void ); - long GetSize( void ); - bool NewNameIsLegal( const wxString &s ); - bool Rename( const wxString &s ); - void MakeItem( wxListItem &item ); -}; - -//----------------------------------------------------------------------------- -// wxFileCtrl -//----------------------------------------------------------------------------- - -class wxFileCtrl : public wxListCtrl -{ - DECLARE_DYNAMIC_CLASS(wxFileCtrl); - - public: - - static wxFileCtrl* m_lastFocus; - - private: - wxString m_dirName; - bool m_showHidden; - int m_dragStartX; - int m_dragStartY; - int m_dragCount; - - public: - wxFileCtrl( void ); - wxFileCtrl( wxWindow *win, const wxWindowID id, const wxString &dirName, - const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, - const long style = wxLC_LIST, const wxString &name = "filelist" ); - void ChangeToListMode(); - void ChangeToReportMode(); - void ChangeToIconMode(); - void ShowHidden( bool show = TRUE ); - void Update( void ); - virtual void StatusbarText( char *WXUNUSED(text) ) {}; - int FillList( wxStringList &list ); - void DeleteFiles(void); - void CopyFiles( char *dest ); - void MoveFiles( char *dest ); - void RenameFile(void); - void MakeDir(void); - void GoToParentDir(void); - void GoToHomeDir(void); - void GoToDir( const wxString &dir ); - void GetDir( wxString &dir ); - void OnListDeleteItem( wxListEvent &event ); - void OnListKeyDown( wxListEvent &event ); - void OnListEndLabelEdit( wxListEvent &event ); - void OnSetFocus( wxFocusEvent &event ); - - DECLARE_EVENT_TABLE() -}; - -#endif // FileList_h diff --git a/user/wxFile/fileopen.xpm b/user/wxFile/fileopen.xpm deleted file mode 100644 index dd384cadaf..0000000000 --- a/user/wxFile/fileopen.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * fileopen_xpm[] = { -"22 22 5 1", -" c None", -". c #000000000000", -"X c #D75CD75CD75C", -"o c #FFFFFFFFFFFF", -"O c #6DB66DB66DB6", -" ", -" ", -" .... ", -" .. . ", -" ... ", -" ... ", -" .... ", -" .... ", -" .XoX....... ", -" .oXoXoXoXo. ", -" .XoXoXoXoX. ", -" .oXoXo .......... ", -" .XoXo . O O O OO. ", -" .oXo . O O OOOO. ", -" .Xo .OO OOOOOO. ", -" .o . O OOOOOO. ", -" ... O OOOOOO. ", -" ..OOOOOOOOO. ", -" ........... ", -" ", -" ", -" "}; diff --git a/user/wxFile/find.xpm b/user/wxFile/find.xpm deleted file mode 100644 index 82e5ccbf61..0000000000 --- a/user/wxFile/find.xpm +++ /dev/null @@ -1,99 +0,0 @@ -/* XPM */ -static char * find_xpm[] = { -"32 32 64 1", -" s background c None", -". c black", -"X c #FFFFFBEEFFFF", -"o c #AEBAAAAAAEBA", -"O c #4924618579E7", -"+ c #AEBA8A286185", -"@ c #BEFB8A2871C6", -"# c #71C682078617", -"$ c #4924410330C2", -"% c #492451446185", -"& c #49243CF338E3", -"* c #EFBEAAAA8E38", -"= c #AEBA71C66185", -"- c #9E79820769A6", -"; c #5144410338E3", -": c #514434D338E3", -"> c #D75CA28971C6", -", c #514430C230C2", -"< c #618541034103", -"1 c #BEFB8A286185", -"2 c #B6DA7DF75965", -"3 c #410338E330C2", -"4 c #514441034103", -"5 c #AEBA9A696185", -"6 c #9E7971C65144", -"7 c #9E7971C66185", -"8 c #DF7DAEBA9E79", -"9 c #38E338E330C2", -"0 c #410330C22081", -"q c #A69961855144", -"w c #618549244924", -"e c #30C230C22081", -"r c #38E32CB230C2", -"t c #8E3851445144", -"y c #28A228A230C2", -"u c #79E759654924", -"i c #A69969A65965", -"p c #8E3861855144", -"a c #71C661854103", -"s c #208120812081", -"d c #596538E330C2", -"f c #8E3871C65144", -"g c #71C651445144", -"h c #186118611861", -"j c #8E3861854103", -"k c #71C651444103", -"l c #71C641034103", -"z c #514451445144", -"x c #5144514430C2", -"c c #104010401040", -"v c #410330C230C2", -"b c #30C220812081", -"n c #618551444103", -"m c #79E779E779E7", -"M c #6185410330C2", -"N c #38E330C22081", -"B c #6185514430C2", -"V c #38E324922081", -"C c #514400000000", -"Z c #E79DD34CD75C", -"A c #C71BC71BBEFB", -"S c #8E387DF769A6", -"D c #208128A228A2", -"F c #30C238E34103", -" ........ XXXo ", -" ..O......O..Xoo+@ ", -" .#..$.###%..&.@+*X=- ", -" ...;;;.%$:;;;...XX>XXXo ", -" ...$$,$+XXX.##<#..o111@2 ", -" .&.34&+XXoo5.XX#%.$.@@5*X=6 ", -" ..3378X+@@++@@++@@..XX>XXoo+2 ", -".9.0qXXX2++12+XXX.X.w.XXo11@@1 ", -"..erX66==66=11111.o1..1111*XX>>t", -"..yuXi76678X+@2++@@+..:+XXX>+ppa", -"..sdXpppXX=++@=++=8X..w+fqppupge", -"..h=76.....pganknwBMz ", -"XM.w.h..Xb0,*6..v..CC.kklkB<<;m ", -"ZMzX#..;......9..N.rC...lBM c #8E3886178617", -", c #410341038E38", -" ", -" .X ", -" Xoo. ", -" O.Xo ", -" ++ +X@O#o ", -" +$$++ +$$%%#o ", -" +$$$$$+$$$@%#o& ", -" +$$$$$+$$$$O%#o$&& ", -" +$$$$$+$$$$$@##o$$$&+ ", -" +$$**$+$$$$$$%O#o$$$$$& ", -" +$$$$$+$$**$$+@%#o$$$$$$=", -" +$$**$+$$$$$*&$O%-o$$$$$-+", -" +$$$$$+$$**$$+$$@%o;+$$$*+;", -" +$$**$+$$$$$*+$$$O##o$+$*+;+", -" +$$$$$+$$**$$+$$$$@#oo$$++;+ ", -" +$$**$+$$$$$*+$$$$$%%#;$$$$++ ", -" +$$$$$+$$**$$+$$*-$$%#oo$$$$$$*", -"+$$$$$+$$$$$*+$$$$$*-O##;$$$$$-+", -"*:X$$+oo+$$$+$$**$$$$%%;o$$$$*+;", -"+;-:X$$+oo:&$$$$$**$$ooo;$$$*+;+", -" +;*:X$$*+$$**$$$$*-X%o$$$*+;+ ", -" +;**++$$$$$**$$$$.#o$$*+;+ ", -" +*+$$=:$$$$*-$$$##$>Xo+ ", -" +$$$$$:*$$$$-*$;X-+-+ ", -" *+$$$$$$$:*$$$$$;,+;& ", -" +*:+$$$$$$$*:$$$=+;+ ", -" +;o:+$$$$$$$$$*+;+ ", -" +;o:+$$$$$$*+;+ ", -" +;o:+$$$*+;+ ", -" +;o:+*+;+ ", -" +;-+;+ ", -" +;+ "}; diff --git a/user/wxFile/wxFile.cpp b/user/wxFile/wxFile.cpp deleted file mode 100644 index 5c93b977df..0000000000 --- a/user/wxFile/wxFile.cpp +++ /dev/null @@ -1,355 +0,0 @@ -/* - * Program: wxFile - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifdef __GNUG__ -#pragma implementation "wxFile.h" -#endif - -#include "wxFile.h" -#include "wx/dnd.h" - -#include "delete.xpm" -#include "home.xpm" -#include "prev.xpm" -#include "fileopen.xpm" -#include "exit.xpm" -#include "listview.xpm" -#include "iconview.xpm" -#include "reportview.xpm" -#include "treeview.xpm" -#include "commanderview.xpm" -#include "singleview.xpm" -#include "save.xpm" -#include "search.xpm" -#include "help.xpm" - -//----------------------------------------------------------------------------- -// main program -//----------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -const int ID_FILECTRL = 1000; -const int ID_DIRCTRL = 1001; -const int ID_TOOLBAR = 1002; - -const int ID_QUIT = 100; -const int ID_ABOUT = 101; - -const int ID_LIST = 200; -const int ID_REPORT = 201; -const int ID_ICON = 202; - -const int ID_SINGLE = 203; -const int ID_TREE = 204; -const int ID_COMMANDER = 205; - -const int ID_HOME = 400; -const int ID_PARENT = 401; -const int ID_MOUNT = 402; -const int ID_SEARCH = 403; - -const int ID_DELETE = 501; -const int ID_MD = 502; - - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - -BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU (ID_ABOUT, MyFrame::OnAbout) - EVT_MENU (ID_QUIT, MyFrame::OnCommand) - EVT_MENU (ID_HOME, MyFrame::OnCommand) - EVT_MENU (ID_PARENT, MyFrame::OnCommand) - EVT_MENU (ID_LIST, MyFrame::OnView) - EVT_MENU (ID_REPORT, MyFrame::OnView) - EVT_MENU (ID_ICON, MyFrame::OnView) - EVT_MENU (ID_TREE, MyFrame::OnView) - EVT_MENU (ID_SINGLE, MyFrame::OnView) - EVT_MENU (ID_COMMANDER, MyFrame::OnView) - EVT_LIST_KEY_DOWN (ID_FILECTRL, MyFrame::OnListKeyDown) - EVT_LIST_DELETE_ITEM (ID_FILECTRL, MyFrame::OnListDeleteItem) - EVT_LIST_END_LABEL_EDIT (ID_FILECTRL, MyFrame::OnListEndLabelEdit) - EVT_LIST_BEGIN_DRAG (ID_FILECTRL, MyFrame::OnListDrag) - EVT_TREE_KEY_DOWN (ID_DIRCTRL, MyFrame::OnTreeKeyDown) - EVT_TREE_SEL_CHANGED (ID_DIRCTRL, MyFrame::OnTreeSelected) -END_EVENT_TABLE() - -MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, (char *) "wxFile", wxPoint(20,20), wxSize(470,360) ) -{ - wxMenu *file_menu = new wxMenu( "Menu 1" ); - file_menu->Append( ID_ABOUT, "About.."); - file_menu->Append( ID_QUIT, "Exit"); - - wxMenu *view_menu = new wxMenu( "Menu 2" ); - view_menu->Append( ID_LIST, "List mode"); - view_menu->Append( ID_REPORT, "Report mode"); - view_menu->Append( ID_ICON, "Icon mode"); - - wxMenuBar *menu_bar = new wxMenuBar(); - menu_bar->Append(file_menu, "File" ); - menu_bar->Append(view_menu, "View" ); - menu_bar->Show( TRUE ); - - SetMenuBar( menu_bar ); - - CreateStatusBar( 2 ); - - SetStatusText( "Welcome", 0 ); - SetStatusText( "wxFile v0.2 by Robert Roebling.", 1 ); - - wxToolBar *m_tb = CreateToolBar(); - m_tb->SetMargins( 2, 2 ); - - m_tb->AddSeparator(); - m_tb->AddTool( ID_QUIT, wxBitmap( exit_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Exit wxFile" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_PARENT, wxBitmap( prev_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Go to parent directory" ); - m_tb->AddTool( ID_HOME, wxBitmap( home_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Go to home directory" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_DELETE, wxBitmap( delete_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Delete file" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_MD, wxBitmap( fileopen_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Create directory" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_LIST, wxBitmap( listview_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "List view" ); - m_tb->AddTool( ID_REPORT, wxBitmap( reportview_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Report view" ); - m_tb->AddTool( ID_ICON, wxBitmap( iconview_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Icon view" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_TREE, wxBitmap( treeview_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Tree view" ); - m_tb->AddTool( ID_COMMANDER, wxBitmap( commanderview_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Commander view" ); - m_tb->AddTool( ID_SINGLE, wxBitmap( singleview_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Single view" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_MOUNT, wxBitmap( search_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Mount devices" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_SEARCH, wxBitmap( save_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "Find file(s)" ); - m_tb->AddSeparator(); - m_tb->AddTool( ID_ABOUT, wxBitmap( help_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "About wxFile" ); - - m_tb->Realize(); - - m_splitter = new wxSplitterWindow( this, -1, wxPoint(0,0), wxSize(400,300), wxSP_3D ); - - m_leftFile = (wxFileCtrl *) NULL; - m_dir = new wxDirCtrl( m_splitter, ID_DIRCTRL, "/", wxPoint(10,45), wxSize(200,330) ); - - wxString homepath; - wxGetHomeDir( &homepath ); - - m_rightFile = new wxFileCtrl( m_splitter, ID_FILECTRL, homepath, wxPoint(220,5), wxSize(200,330) ); - - m_leftFile = new wxFileCtrl( m_splitter, ID_FILECTRL, homepath, wxPoint(0,5), wxSize(200,330) ); - m_leftFile->Show( FALSE ); - - m_leftFile->m_lastFocus = m_rightFile; - - int x = 0; - GetClientSize( &x, (int *) NULL ); - - m_splitter->SplitVertically( m_dir, m_rightFile, x / 3 ); - m_splitter->SetMinimumPaneSize( 10 ); -}; - -void MyFrame::OnView( wxCommandEvent &event ) -{ - int x = 0; - GetClientSize( &x, (int *) NULL ); - switch (event.GetId()) - { - case ID_LIST: - m_rightFile->ChangeToListMode(); - if (m_splitter->IsSplit() && (m_splitter->GetWindow1() == m_leftFile)) - m_leftFile->ChangeToListMode(); - break; - case ID_REPORT: - m_rightFile->ChangeToReportMode(); - if (m_splitter->IsSplit() && (m_splitter->GetWindow1() == m_leftFile)) - m_leftFile->ChangeToReportMode(); - break; - case ID_ICON: - m_rightFile->ChangeToIconMode(); - if (m_splitter->IsSplit() && (m_splitter->GetWindow1() == m_leftFile)) - m_leftFile->ChangeToIconMode(); - break; - case ID_TREE: - if (m_splitter->IsSplit()) - { - if (m_splitter->GetWindow1() != m_dir) - { - m_splitter->Unsplit( m_leftFile ); - m_dir->Show(TRUE); - m_splitter->SplitVertically( m_dir, m_rightFile, x/3 ); - }; - } - else - { - m_dir->Show(TRUE); - m_splitter->SplitVertically( m_dir, m_rightFile, x/3 ); - }; - break; - case ID_SINGLE: - if (m_splitter->IsSplit()) m_splitter->Unsplit( m_splitter->GetWindow1() ); - break; - case ID_COMMANDER: - if (m_splitter->IsSplit()) - { - if (m_splitter->GetWindow1() != m_leftFile) - { - m_splitter->Unsplit( m_dir ); - m_leftFile->ChangeToListMode(); - m_rightFile->ChangeToListMode(); - m_leftFile->Show(TRUE); - m_splitter->SplitVertically( m_leftFile, m_rightFile, x/2 ); - }; - } - else - { - m_leftFile->ChangeToListMode(); - m_rightFile->ChangeToListMode(); - m_leftFile->Show(TRUE); - m_splitter->SplitVertically( m_leftFile, m_rightFile, x/2 ); - }; - break; - default: - break; - }; -}; - -void MyFrame::OnCommand( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_QUIT: - Close( TRUE ); - break; - case ID_HOME: - m_leftFile->m_lastFocus->GoToHomeDir(); - break; - case ID_PARENT: - m_leftFile->m_lastFocus->GoToParentDir(); - break; - default: - break; - }; -}; - -void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) -{ - wxDialog dialog( this, -1, "About wxFile", wxPoint(100,100), wxSize(540,350), wxDIALOG_MODAL ); - - int w = 0; - int h = 0; - dialog.GetSize( &w, &h ); - - int x = 30; - int y = 20; - int step = 20; - - (void)new wxStaticBox( &dialog, -1, (const char*)NULL, wxPoint(10,10), wxSize(w-20,h-80) ); - - (void)new wxStaticText( &dialog, -1, "wxFile v0.1", wxPoint(240,y) ); - y += 2*step-10; - - (void)new wxStaticText( &dialog, -1, "Written by Robert Roebling, 1998.", wxPoint(x,y) ); - y += 2*step; - - (void)new wxStaticText( &dialog, -1, - "wxFile uses wxGTK, the GTK port of the wxWindows GUI-library.", wxPoint(x,y) ); - y += step; - (void)new wxStaticText( &dialog, -1, "http://www.freiburg.linux.de/~wxxt", wxPoint(x+50,y) ); - y += step; - (void)new wxStaticText( &dialog, -1, "http://web.ukonline.co.uk/julian.smart/wxwin", wxPoint(x+50,y) ); - y += 2*step; - - (void)new wxStaticText( &dialog, -1, "wxFile Copyright: GPL.", wxPoint(x,y) ); - y += 2*step; - (void)new wxStaticText( &dialog, -1, "For questions concerning wxGTK, you may mail to:", wxPoint(x,y) ); - y += step; - (void)new wxStaticText( &dialog, -1, "roebling@ruf.uni-freiburg.de", wxPoint(x+50,y) ); - - (void) new wxButton( &dialog, wxID_OK, "Return", wxPoint(w/2-40,h-50), wxSize(80,30) ); - - dialog.Fit(); - - dialog.ShowModal(); -}; - -void MyFrame::OnListKeyDown( wxListEvent &event ) -{ - m_rightFile->m_lastFocus->OnListKeyDown( event ); -}; - -void MyFrame::OnListDeleteItem( wxListEvent &event ) -{ - m_rightFile->m_lastFocus->OnListDeleteItem( event ); -}; - -void MyFrame::OnListEndLabelEdit( wxListEvent &event ) -{ - m_rightFile->m_lastFocus->OnListEndLabelEdit( event ); -}; - -void MyFrame::OnListDrag( wxListEvent &event ) -{ - wxFileDataObject data; - data.AddFile( "/home/karl/test.txt" ); - - wxDropSource drag( data, m_leftFile->m_lastFocus ); - drag.DoDragDrop(); -}; - -void MyFrame::OnTreeSelected( wxTreeEvent &event ) -{ - wxDirInfo *info = (wxDirInfo*) event.m_item.m_data; - if (info) SetStatusText( info->GetPath() ); -}; - -void MyFrame::OnTreeKeyDown( wxTreeEvent &event ) -{ - wxDirInfo *info = (wxDirInfo*) event.m_item.m_data; - if (info) m_rightFile->GoToDir( info->GetPath() ); -}; - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -MyApp::MyApp(void) : - wxApp( ) -{ -}; - -bool MyApp::OnInit(void) -{ - wxFrame *frame = new MyFrame(); - frame->Show( TRUE ); - - return TRUE; -}; - - - - - diff --git a/user/wxFile/wxFile.h b/user/wxFile/wxFile.h deleted file mode 100644 index 9337c77db1..0000000000 --- a/user/wxFile/wxFile.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Program: wxFile - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __WXFILEH__ -#define __WXFILEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/wx.h" -#include "wx/dcscreen.h" -#include "wx/splitter.h" -#include "wx/toolbar.h" -#include "filectrl.h" -#include "dirctrl.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class MyFrame; -class MyApp; - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -class MyFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(MyFrame) - - public: - - MyFrame(void); - void OnCommand( wxCommandEvent &event ); - void OnAbout( wxCommandEvent &event ); - void OnView( wxCommandEvent &event ); - void OnListKeyDown( wxListEvent &event ); - void OnListDeleteItem( wxListEvent &event ); - void OnListEndLabelEdit( wxListEvent &event ); - void OnListDrag( wxListEvent &event ); - void OnTreeSelected( wxTreeEvent &event ); - void OnTreeKeyDown( wxTreeEvent &event ); - - wxSplitterWindow *m_splitter; - wxFileCtrl *m_rightFile; - wxFileCtrl *m_leftFile; - wxDirCtrl *m_dir; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -class MyApp: public wxApp -{ - public: - - MyApp(void); - virtual bool OnInit(void); -}; - -#endif // __WXFILEH__ diff --git a/user/wxTest/.cvsignore b/user/wxTest/.cvsignore deleted file mode 100644 index 4daa84b813..0000000000 --- a/user/wxTest/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Linux -linux-gnu diff --git a/user/wxTest/folder.xpm b/user/wxTest/folder.xpm deleted file mode 100644 index 7a36fa27f1..0000000000 --- a/user/wxTest/folder.xpm +++ /dev/null @@ -1,48 +0,0 @@ -/* XPM */ -static char * folder_xpm[] = { -"33 33 12 1", -" c None", -". c #D75CA69979E7", -"X c #208120812081", -"o c #FFFFFFFFFFFF", -"O c #B6DA79E74924", -"+ c #596559655965", -"@ c #410341034103", -"# c #514451445144", -"$ c #000000000820", -"% c #8E38596530C2", -"& c #8E3886178617", -"* c #492479E769A6", -" ", -" .. XXX ", -" .o.. X.XXX ", -" .ooo..OOOXXX ", -" .ooooo..OOOXXX ++ ", -"XXX .ooooooo..OOOXXX @#++@ ", -"XOX@X.ooooooooo...OOO@XX+X#+++ ", -"X...@@$.oooooooooo...OOXXX@X@+ ", -"O.....@XXOooooooooooo..OOOX@@X ", -"XO......@%X.ooooooooooo..%%OX@ ", -".O........@XX.oooooooooo.X%XX ", -" %O.........@@$.oooooooo.XX%X ", -" %O...........@@$.oooooo.X%X# ", -" %O.............@@X.oooo.XX%& ", -" .@...............@XX.oo.@XX ", -" %.................@X.o.XXX ", -" OO................O%X..XX@ ", -" +OO.......O..OOOOOOO@..@X& ", -" .%O....OOOOOOOOOOOOOX.+XX ", -" XOOOOOOOOOOOOOOOOOOX+*XX ", -" @OOOOO.OOOOOOOOOOOOX*+XX ", -" .%OOOOOOOOOOOOOOO%OXX#XX ", -" XOOOOOOOOOOO%O%O%%OX++& ", -" @O%O%OO%O%%O%%%%%%%XXX ", -" XXXO%%%%%%%%%%%%%%XXX ", -" OXXX%%%%%%%%%%%%@XX# ", -" OX@X%%%%%%%%%%%XXX ", -" OXXX%%%O%%%%%XXX ", -" OXXX%%%%%%%XX* ", -" OX@X%%%%X%X& ", -" OXXX%%%XX ", -" OXXX%%@ ", -" OXXX "}; diff --git a/user/wxTest/horse.png b/user/wxTest/horse.png deleted file mode 100644 index 326b7c786787f25de36e3ac26f20ae09817e1437..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68850 zcmXtf2Qb_J|9>bIsUun=HA;M})E=!}q(-G^rL|I9ZDNa6Ge*s}X6;e5W{c38RYXyH z#0s@b?7jW-z5o5*x!n8Sxx6oz_q|@v=VLwJKG)R*v4H>p07&bJ8j^he{l7Pm5&)pk zSE4m1U);2Ms;LHO{@=?1KK7aX39Z``V^8w={~y^_{E`3wH$Y2G^`-BWc7t&hZ?_+x zecATb{I@RRc3-okP!jIL!tjSDIKj7$dKJc>LRT!=(vR={aZR5qP;Ko8P_o^IBL4Gw z%9M7$+9<{NF;hdYH$P{UDh=cLiel;Cm1;vyVtd}m6HfK+=p05;uff>PblGJz1zDI%RZM_ zTr)kS8}Oi!-RD)bXHXM{qdtJwU_wk@WB`QwE|U9b`f`cY-0kD$43|Xydph&W^#c17 z|7I^_>Dw5q5*Eei8!kox?@*LrYiIe!sn@Z*Q$J*ooMEoG?^lFIl8ESe$~(wh&3qlmT9@0*yTFgr1h$~tgJEj@}i`Y{WgBWZKr?k z`roqSSlqC#05R7j_~E}!nfg1hpPiE{##4=oxf}5pr87%2l*x@Poe<^V<2O$813_o| z)jc;avqxm?uo6dSIMm#HwVL4%`@LsjUk~?c2Dlyt8tt3VK5FhAP5Fn@sQAQcZT)4- zI{?`0EJElMvR=*$eqJ-V+x+I2+_jkUm6+BCalAO5UZr>0L-OMjSWz-Kbj_=wW@P&q z`PhPk`mWHg-`}2pb-WvqU09`jIr&W4+N6Kg^B3gtl&UW-yN)T&k)2*|OMgT4Jzx4Lz`Uh=%*ZNBn?b%{hA!`l%RV;YddStEEfz2sY zqPR3;*#i{n>Eo|&$U#vrEHjP*_?gXu&J?(Ub`H6D3y08EGAeNr{k0$RDm%QYg>Ugk zENiDxzp5C|^6dB0ujx+VsKr!Iy*4gN?jht6{BzQ3YU-=nx$hk$tnR~tt}l<3&o`t1 zDycSE`^64eFdhP>!ixgfpdCMw|0Iv?Wmh$O`X8+r6-9mM&P~Nz3Bk;(FF)^AB^ANP`G1Ev?oOm4itRIc!7w ze+)BY!PaqL4|@OwH2@G27YcwN+(&@L&h4eGm#x9_^8T_p{VXFJ8;36?*&>L7&KL~` z$Tl|~f`vdSg`uO4BfgK|KrozJ8lQe>o6kh(S@Fhkq}A-s811f!1xLPT`QVrHYRr$R zKKQWAe7?QCebP%E7V)I%{9=BDHC%IhV}PICi37k4#aav;a#rAQ;M?goBlDj}9E%b( zd#fu;<$+=7M&;bT-Pu_)W0p$Nf#y{J7v}~S-QM2Ov+ILrX2E{+jI}JUZcxC<|6Mr$ zbN7TMSIcK=^D3G0Z(ytO&xYn%>@K@*vZEj#WXnD-fQIJT)o$zMV(ukFuz!&E?yTm( zY)kWdx|iN>fx{sA%EAXnO6h85deWW6LkKpC7~!Wp_5E@SSuYH)w~ikrpk~K5r`yBN zvk$lv{Br~MBEBWx- zNIU~ZrkwXU@6)%*}0-wDp|hS;@$%SWZI%VboUf5tq*$N0$^&*hbZ(^UmFFw1M_nxY}=! zl_iJ~ZuGn5wBlIY9>u7Be2<=EeK?8vYZiPeD(A{QlJ&clVEJGm_h^ z%GX(*v-i9%DidK;`IQlPdjEhcjmH3BXYj$CQg03JoxMcgO3i~bkm}a6tF?n8N%H}M zLX@d?p)8u&FQ>Rd0|EWG+Soqi_G4yaTL}wfT(FG8F#?V1=cb9}vbEnVx+l}t$$PQB z@v@3FLhjPT`>MFbS0S@6b$sg3zmM%Lcv2Y>-(?LO>>GP2v~#qN;~wIenKjKo78XRXIBA#hkx7J=o#pF&H~R% z`9iuGyjeJBKH&Ew6(OHF$^WW6raV1fppyMh>Y}ia(U{k5WwF%oA#PntxK`O1kL>HF zcede{f8>%H^5}VTuNNvJY*KAh!4@~lC1N{&c@sOWY%3n%lWkxrn7|p=;_zXjk<**GIp>Fv_RP#_Vz_T}4>KTS z=hIl|??{OcNcwXH_XQzZSyvN6SA{`IDH~#@x*S)hKk3FVQGmGX^Z<`VmXzLoZgFk4 zx`G}?Z$h!A8I=z)$yOG6e+4Q&NoCH>8%#;!A=Vki6aZK z_DOGQ-CF?(8rUzVmmR^>FN&GBqAJn3t-drgssMnSX}ut*%RNql+-(41^jNTJv^Y;P zrOFi1$92@UeBQ*&lvs-zBA(#A-#=_hxtXaGStvM+dgUay3e0yIrUn>24#9z;79t%n z+zlpT30!f-N$OKnyb+LsA_Dx_9w!Ne!iDp} zdaSo6HjjK5auj{9{*L4ZH^|7BlFrum`XPW27lsCuf-F!GNc)w^dc$8Z;W6wk9tZ`! zr~b)Jl{^Gt?Eew5zP=u7aJ%334whHNB1wcM{2uqxVVbLZBT;pb`ng}|Y4&!@@jPL> zitrT1QN&wh1ay#wGr@szH)F>n=`8CBmFuM`b#KJ9KXe>ZidcSRmDRe9a0d@x@07H@ zxgN?>rdwbtsW`HIfrO`Ef%DuTXe|H`vld&D*jvm3U-ILl&d^>#gr()SqDv&Ud>UJ} zgN~0M4L>nAi)SBtJ}{{~J2|OzwbyqybZeh=V2gi|bzm-2yM$>`r_Oh^doi$G?Z2J^ zz|B7;Qk415O!w#%8qc$7w&`R#&z6?*!8|*6`u}9gELN9GQ1&j%>Q1e$u0j~$4rSTS z)twgaC;<}uaF2fD4;@IynJwPtt(}Dh(O&NyLyXM+nryC);iaC3hih=4LMVVOk75w= z82FyFFn6{R;2@ASqrKP1W|XAH=xsUx+Q9^0U$)WvUEws{GlN#^bDOW{+Y6H({mevH zH5<*wYdEyPBC3;-P8HuI9Zq}4oTb?+Se`~9qdtURHuG-2+3kFKv0HEcoWWL|r4#CO z(%0wv&4_W`!1!oqert^si!oRH-rS8F&(_tc z?(x;%!g<|khM9)@sb!sct?fT7;zPzGgTT}-UFt;DDu??(k;u|%7ffTtC+7PWQ`yPj z+mV(p3_`c>EJR1b;w1PjFm~_o_o`KMga+2M1wO967ff*A#&M3Oc4}@o zaNgUpF|I?o#EpUPp2!66%U}-834O1{A;j4~p%GyC+%dHi3u)N>f|z}|SoojFcihF^ zy4R!JnqSl!atU|%ugC|JoHA~zTE*=yOt^DYoH{l;*H7!~|5d);SI)I)qc%UOA0Gvf z0-1|K)86SSBa8nXPW$CJjRan_)kNB0SUr2)zfoMDFtn!YezbQss|;x0vamZ?>Ky5` zwPwVIH0Y+=nRtwD9eiF?RU1Z!1wI!V7ms{fCM{fgvEac$#aZMI=6`lC*hO|C?KbF3 zxHuN_m+NXL3MaR3x*D5ihnEkX>wZ`;^CY#fo;9h!0{?D*M1f8r^Fg@~<`E84?^O7Y zl;)~gsALVh6CIWE#vRF|XC zXbpuoMWp@x7jR(MOVBHWyI((jv1zw+dZ6Mvu9j^zfw&jRe$Lf z-;sE?xVvdFC`LlL6Tiy4V8%&&{NlhszDzr1G$B@ zM%?tu!D9QaL93hq9lJqRgUA-culIGI46pmO)C7wMo*!-YZTeNsp(?tjq^m2HT#1bIVy6{jWInErM-A~2ucgO?Pj9HqEOyA?2ZpVA z@n8o*luyMYy@?&}w<9D}0>wAJ-@D4*4tgn#W8H8Yrz<$J$H+`Gkq*x`4w{tziLjDN ztt=rw(Dl=svnF#o{7JItLz?Cdul!_C*w1`$@cHyy(CMj|1l-$rFLF21;R`q<%)N*S z`dU7_(m)7`1s7C0#cAm!W5GpCVWajWzkB%K$Jv+RrqJ~OhT|~7y*I7GX@vSTa3sMH z(>$BA_^#6fHD=RDw2ha(c_TKKXIgopjSAvI6FzTWo3z^5-!D3!CBtW3Iw1*%c64`l zml;+q$mZy-5YhFOMybrN+yQXN38Nhn7z&=+D?Kc=cYMU5D1W|}5owholJG3D19K@0 z*`$l{U=&d0IDg>ugnCPPB6lDyO0%n1eMJ`goGDVZe)XdPJ74gLjC0dT{OoL;0df2A@4=BWc811qSFf53$FT$cQQ ztR21rT8IC$HLZK~81cBDy+37}Ps5L?giOEh(%l?cdkM4_$r&){U3Qe1Gs=Tn!96Z! z1Gby}4-r6BU>ih=3@8vVGD4Ca*cW+>1*5CH`?$Hs0Zt-R09Cq>2l)GMlO?lcAdN}8 zR<)jP3U@K`m)u^QG_C%J!~0FemPqo=+v?+Rgi^)Jb~fOlBkre~e%}WqcacV%1gvO0 z!?R`5S#e+*IW9sPL%CMr(>F^k=_r1J;ZAwU1_+_=@8M4iQ;>*)hFTkqt7S4;IoKf@ z47Vue&dmP#1aO}adg%X1B>8s2Ekn|pm7JNYEk3$wqIUSZ@KZhtYY_B|xm*MYBd_*p z7}TD7 zxxdqBZG3_3Ay1`P|p~V0Uyir zg~wF1q1flv0I0MU3jPEjjRnA+MO1(Qd%!3d1z^rkf2t}zHqHa5sJ3ZKt3PzR{v;j$ zQrMA3-Au&JuYOwYjVFpZPCkL@?BwK$Ly+6|7pd%TA%~ZfJY3HRCnqPq4>KP}Gkya4 z1OF>3S_~8SFdYcGIAjgpYv0aozNF-dcpnayU_;V8wl9Bxhjh6Yy@R}n4Uu4h@?r;3 zY}TJxFpG_Yn&mLGSe5+dLw+~hM~wfFv&811zdJ{6PEIAEOj>78al5#kIN!E5?FnOk zBr9uFVE}A^=wU^Q2KVPNLFbp3?ftFi#A8O02$YY1fAB?(^1Z~atfvF}w4ngUFj_1C z01Pc;&a3QA=VrPAD32J2Ye(BpoUA0M>$zA`gO9zNkAG;M zR3=lVx6jqeuM(#1jg2M0gm0Zx*!OodzK`6>RZ@Ofccd56y6?D*_Su?OroV&!! zm|q-iUyPriD{&NqsK?+>_;lF>#!z6sZevOEbHrmH#V?3O+L=3(P@(J#^-e0ok+nZ; znjlY%jOXXv)fDi!`>#M#yUaiPf>eOx^EcM&f1?sgFh_;Q%0U-xGP#z7PTuD1IKt#Q zan)Sm$FM9wrqPh zGM_01K9fvGQSiMyMsg>R%DJWAx1F`-F6A(E>C9?It8r&-qy#Uh{g$v1<;itg-mmwA)z=FyBO1@P{!H|9J#8TotrL#`4APOk&1O>o? zlC$e=!M~;1&yK08PtL*>DWxr@fR zs|ojt2gCVWCureh6VcW24DOv|7RU`?C=PGr{>F1?vnX4a9Ud;xSN*F{mm{+G^x~hz z^}!(tonZw?+|Jb&C~KT{Xv|*V20l7Du`DYr>bE7WwGHj8uYmY_Zqfbh9Kmdhr6$$h z$BO_oIjY zcFz{1S0YH2uGJQ<4&)L|%rL0#*;(`pnes1FmzAS2TF_*KLiVhM@0$QaG#jkLeq#PX z7chVBye;CH&X z?`Bmv1Gt-+r!_Ow=zc^6ZtisUj+0C49LAL3&Vg{qD9$YR-P@UW4vd0EQ*u$u$;8Gh9W-vJ6q@1c_E-ON-!}1y8objJ@G7Q_9 zZQRzz%Ve9KbPFiY&H4GeKhlpm4PBH?;Cfzk;x?LXM?%{{)b*J7Fc_H}*84>pUAr!?zE=8vP)jp(&9u7XKibLr_DzgdOHZ{PUB%=awHuNF@00={xz~sJFp8 zc3f2kcQpp{DX5G<3LIPNdJQHOfI6a2CUU{T-+j04w-e&aUwKdy?^~d16Pmvs1I|BI zK67h9Q3BG+{7OcQtJ0#PXsTK+Oa#Z*4&tOWghbcTt=TD_A|R@cThY{0lyV&2m?IjN zCkDy+�YDVs?Wsa)Wx^IfT65bz})aQ&#l|6lQ+`ptH-_HB!Agf9ie~l8sONpuMly zU9kE3@6y56HqxZjd{bU2z_Wz;bh0(@Xk(rr+V4uAxCJ`D5ku?#Z?^y4_hg~@ zAF3RDmdRN&0Y4$HTy05*)xxEPh5wBU0@s`y9@gmk<-@_nYLk>O-7G_rnjF`5ZE7P8>n<;dYh(sPdOe&y@}oM zYRT7~U_TJ;uZ$Z)_Q)oDep=o1m4&S^oZF4V!}t3(O(m(p#+ZTTJp78D%B#j$-Ca6Y z1fy|o2?4f^lTyGO!K46z#>RlbpTdh^dG9a$i|Pt%k5vfjF4EPhsUN>Qz0bDMxY_-> z*~}Gq5GR>_`_{Zy-3I8Uj>zKgC;(ew*x;*5nRA+e6Fu3&=%T*%y3Fs4V)XxXN5`tCEksdoiT;g-Svm?-X-2&=HqBvF>KWe?6SJqR_J z?aPGKH~ac&?@p@v`uaQlazzuAE^)BljQvQ7@ok0%;=QS9B@ONk?_;W{Mg1#ibJ@aQ+xReuF}j~?tzZC@vI|j$>8BlpBmvgqTIjHx7)Z6-viv;ALb@9 z*1>_QovCklwJ4z-$2s?G*uQ4oGFX(ohbIfsvoaZ|r!27?6z6LKxf|PCB5C^#!eA=Y zdZeMg0mSLM?ai=5tLE;W#lq}{?$W>-V=k3;}z4?wHE3@~PsS7`YUOUxw>7j_`z@=gqN~+wNEY&h$vN`M4Sd2Npi4SyxJ5hzTs1-3~Ii;4|hsXxqYAJcy=8M~RO45p_1j7o^ zVtObOb92Wvvf}M2Lmi9nyK&gH^I@s2H#Esv2|8Q^V#7!~R z_;bimsAi9q)D&l`jTR@9-_@i?mWdLP znuUc83s{4&QF!44V5X#S5O#`5~`-3LMAd$_^TRV%;NXyc+EyV z@a-F3Q@R%+^7LMTFAc^lCNzx^gFi7PkQK^#F|0jXfX+HYKu6o%C@kQtL_8Ii_$iekdC&JQzBTe#F2p-USFpb&AFt}IVHq-fMV z%=yJ%8is@($s{=ZmaH`d8be#g4gkQPI5m5VxbVq3RUk_%o#4^i=XfK;%>3sn90%R> z=uplx$DGH`i?UhTVw?iP9>yucF;=jYVM@xZVi)Z5_cG(Zbm}_Nr9lA~C+<0};&{m7 zkUf^+7?asBnF`Y}eP#WD_oHq}G8mYT^QoD1Zq`7+tm&+?z`x|A@J3GHo5}Ksp2fxR z>BcgKM}cQM-QN~Z5bM2VFS_DC{g3avXR!*2vVHM=Aywg4GSavI>+nhI+&8?@Et>Gq zWCZXn7~hW09E-2^nZBz5)I+58^5N4xMX{et9j8UdQFq{VEXAewVMQpR=nx!>wKU|Q z$ML_{kFpbM6a}!g3VQ7%acxEoygh*i{}6Z=p(S(|t18Wr;By?A)JMtIo(z%D<5mJSwo7Nv6ViGY%TRZwHDraImHe)JE(jMk6h+II$f+tifVz#wy27f3zP5rMf%fXAq$K%n9)A_kMW_9!27@)5@Y$ zIXc!wqs3Tb-zIaEY}UQ=VDFu7IW&ln!h_*GWG$8wP)9Rn&{;dqvt(o~-UjB0lh7E2 z$4gZ7Gzq4;FDU!&hzs4vXM~3b=(M;0UMvWG2Zk3t@9iv|zT2eK7!q>7sJFV|yJ8o_ z^yqY8%h=S=;(tuU^i~^Hr0MJDX3g~OXDqn=Fril6crKsYM{1D78|4|0cH8DF zSN&vTcwl^Z-&;=+r|jmOMPAbf*F8!hV8BlZKv-hR$Vo6CXa%6ax=nWrP`$cEQQadw z^-G-Y(aGP-+>52$Ph@onkLsmPTuk2Or@K+ag#AgW4s*=t*=GzXAlCqish~@PZ+uv1 z{gKVY>Eue>I4XGAxW?z44sKtzgT5v%)QuxTlhrUXPKAMdE*VEbS2fS53BX}qbO2g5 zTNoll@w|6z<7lhL-Mt-T&FtOsYY<((y|p!XR5bmwdVC>Rs*Y0Xgz)W+iqKckgTnX7 zpQv)?nFT3?lSqZSKJ3$|fPjF_5D-l^=i7~hUNhltvRea2y-oddYE1fz27&qFbX|)d z{{mD65{5S$0uP6#J4)(&os~2TW_mw5ko2DhKhz_hF)F4c;;jKJ9UbvD!fV0q`QS z1dmx{2mE!LFvPQ{;w$(z z07x}KNjqey0}bPJ3MHNO*aI2yPY_yyVPHv^0cowU>$t`Dw9Kb$vmx}QB;ul=2ju{Q zdU0qXBsh+ec<&_&WY@}UY?jxQ3nFILygnrZ8N*Bg@wgB2;x6ZNXGdKC!}BO&Q&y+D zQA+&c$%n^IB5FQQrRz#6$3u_=csv-1KqBIAf-Ped4e%x9xn)eo13x+Q?7G4E16cZ8|0b+#XeUNbmM??o?OvvqXs)fc$ohu zvAh0g(L!!$_FZ2EUsMr8NvH2_6ZRG3zLCxlsDb^uF`6Q;OtVA7b}J@;x*|? z?)}VPd8e7Oge=wq>n87V+Get;GEg4x?b$ZpzZp(}1=piQy4(Tc$sf2s5rY&VK0S^t zH8q|Xh5o$OYKIN$i@i)=#?tEz8E- zO(6J_lh@Bwn`;8LFRYqi4*?68h2-`t7lID{?y1nSJbVz@-b)e+;fVP>?qi4HPWg)z z$1m6mje1mous|bK&Qaaz@lv0X#w;-uJ@-+IetxcS+a64!l6DvuWa_jF!Fx#j*{7iq?V^ju< z=v|(<1t)kXCMM3dC~1Ok0H7+-=|1(Q4{T-}$Mh-6Q^Ic8e@Y%VigU}tlCinx&G+7d zE^Pc*6(A1)0PWasielKVA3h^?e_J< zG-m0p0NK}75SB!ypueNumm8BcGOn{=_|TI*L>oKJ7C|{djGhk(Vt6i+d zZ{7uQvZ|_Joy93yxG;^x4{tN4%c^@!3DiEXh$w){ZA`65uVkW?vQ|Mu_kKBDxC-de z-8n5$|LiTtX7L_MR{7EP^g5Kp>@*ks&E__XlfC8DOdT_WjTKufI#_R0Wv?uKZ`iHM z;o8UI4kg*O*}fEK&h9;%*JT{<~Hab-cB${N`vd#9!R8im)GW%n+XvBUO=%jFf0GsS0jy zs{dp?{n6BQ1vqKIrmvp>zS^C;yb&pT5YD~BiJ;X07W_Px-_$irt?4c<6$+EMYUjF0 zc$kQ>YcdHfET|9o~S>D2bem+xUM+vhEFWZANW+j+^8O8Zb0cI8zE*ZAHnKa>gBhv5L)o8PIONhFxSN}AXk-N&w>M5*G31djd zel`6ESq|1JB}AeI&#EGj(mF2uJr{qkzS#pfE%du%edF;KaeA6l2fd9(S1t%{cokL) zlf%N1%;V230_U`Pb-L9U)rabYY431ZZ=44ir!G#Hk;A!O+t}x&U&)-vKnS*6r{q%M zQa^1;F7b78(jY7C?$-~+Vq%_JCP%PYJ`wbgh>s{haQK2+ui^} z|Du2qU=P#QFFzzc-@lJXkon3J*xg79jd$D}5tgO~Kq%obP2X#@t@${6-nMJ+kjJl1GcbMAr;#l{sTs%darrCVF@j5Q$oso5?#}D4< z=h_jYcsSgigSP}%sheS@ zXze0ZBy)+hKa}(=%El-ST+28HFkiiastO7US^KB2rC!ZO>J5rZ6EXNk&s2fm?`(KGv$T68wZWO%Q0ldItK~5;Vcb?d-B8F%5g~dxP11-`L6@M zIHNy-bDGg#HPrN&A}#fj)%Elc&`>bE-x%z#x&(qQeCLZ0HAq>MMfM2BWE2}$7)(C~ zTz8sZMEoq#TcXYva^y?dz4*NkuY6D-9(_Z3PyB)Ux4I|HV;Uc)+`nxH0OtoiTRj#i zGAr1|xJCYXHT@Fjruy%XN$&Ore`wks{&ayr26ow?sQ;Y2+j|5xSRP;&_nT1hN5@La zCTPiZKP>_8rk}ft`E+7zZM@Ra1S`oL`x{EiS=x5``rj)Xy#sl)xqnrXgsjtVg9Ozi zeugwmxN{OP42k5OiKJae-q;BI*1ZS6Z!KJHpoe%fCqO0DU#(+o7?0FozXhgSjJ_2r z?(=5gP%(sC4{`eKPM3?an|gg6Sn$U8mt_T5@EtgTgk%5N_H`Tlx^^#cRQDW}U)HO2 zI(9bEJU=L~dpiB9u;Td#kyzeYxv9q0C>6j*cO}CIc&y2gjel;`#Ab%1;ytUFj%pZmjo+n)@KB?ndjp z_HB4F7SVfZH72cJKdm#}?eT*t>`oC=+5P^^2H1P)Y_t0L53~-_af@F|Gv+OxIetrL z{UA|DPN5iD5Oo89!!FSpdbMU%Z`LaesoV0o-r0OnzFa1erq`O!qs{}OlBQ4l#xlSQ zvSi(=czWxwQ6#Kj%<5xW6(_+nE03g+!$r`h3R2{t=Uk{{b%OS|Sp9-%hSv92Uwxfp zKQfqvyWQ!^U-i>t>a(rcd>9I}FC^Ee54>6*$mGl-uEzNWAoZ6=CCuHl%bkP4dPX|y z8%QOSm$B{MSBUB`3CGAY$zMO?C7*3Tik5izF|H_C^>2IYSy^i-v9*Lg6&ab#V$nr|2r#{s> zr&;?3!{kNo*OE{FZOW)GfVgy8)79A3yt_1hi&)SD`a0672((`C1tnQ7Sp)OOAV^pQ znZYnqn+@w0AxVn2tg6NwX`ujsx*0ieBVKFpSmo#lbGM8FkaNvU9!P<@J$wb;sGBDK zbk)24Jwa^jx@$CG^GWI_zo6p21kPn1#g`f}J%1ea^odHu8BXC;h-l~!NXQLJD&WTK zZdl^4sPw3LPFLTyNk*a+afHZ+d>QHWCfPyC%;=@I90zSwiRSBjo;A;|uI3~bWsOR# z59C~x?j@$N4y5)n+W-M>0RimRSn=1}lir-P(3zPTats{)Rp)4FiC5Lb|ERp&ZZ2@& zbPi_Mws}dktTz`))sdp1uy;x%QY>nSm)^YY3wjLf4806)WI+BY*V6GuS1ePD#X`b7 zA4UL@w77ZbIyU<(*RM|x=gDcz$-YCKCpqHlB6U-?tg97A>+5x!I`JWG9PJ zR;ZVhc5A&GSmUTWT7U%c)7Of<5=4#4lj*j z$}NYI7aCyHHneSrwlen(lRpeExXEgd@M6D?!_#lOAu=1!w_^)@@28Xi@2JeSHNc7; z*8OebtVcZ!Bz2L9*iNg~XCu;H#84zXv|LD@{snOUtFlM`GhN*V>sBIqx~?<$ygoSK z>b8_Yo7%G}JALm`<~QHD=xG$4P=5uj0&*w@J&LYwLk> z3Z6H?e{5^ijjO4`yr)nuwdf3w8oz%D&3|#8ZGy4fb^T@CM(pMBh|D^r^NYcY}7us+(8T12kZ31mY;xR=}=%bS~9 zTKfC!tm!TqThAMfE;DNejoYEeYUgq2^61*(cL zBHbK(9n?CRT4a**CtE73y8Oq-K3my>2H5fW=J8zcwtkNYJN6xoHNv4KtD;{Q!jDD1 z{5oWB99dU^yGv@w>(&{;x-~T^R+0PzWa$fUS0CZowx{Z#91QK^be#NoE>E$c$Cah8 z5#6X(R0Tw&DKSewbJImXHg?|*_?|p3L7bhDAdd>+9am>$j~@LqZUg{CR?6Ht$n??q z;Rq@>MNY!5hekb zG6oMH&Cfr(-V0!QQLjK3wK%rC-&?a!^pAqxJ9B4C)-%{y*fQ7>ioQ+azOW4wp8%dh_~pyo^^DfNw8-i<){Q{ioZB0j`3NRBF3%Mk# z1kJ~B-z*`YlKX!g`ine$ZwX%I*d+&S=ldsj#9A*2%T4I%hq3-127bZ8xnc^pcDc@T zz_dNw*zH(h%jYXJ=&JW!3hWx^DZtZvMbv|ft1+E}f^ zG=@t&)&~3}D=_11sy-god02Mq^#+^T33TEt>C!SYKrHV4#z~Mpt!0Hb!Q0#P7Bu?! z>S}~@HH-3Scd?63L}!Ew`X@fq`G-fQKSx&+QkOl4Il(KFoYOk8}| zOX$CatG-KQr-?bJZk(zvb{vU`IkXP&T;-){c z%Kx7=`oLPlQaj6Yb!ON15Ao3Xs%Ahh**m!#Nsq6CWFOzA5g*4egIz?$(A$(LIja-5*dkuX3$X`Z%x( zSzO!&0@4RoI|6c>4mAP*zIxB$SvVM-pn>N*4301s$bD z;)JC?57s`zwsmf9j@&5c`qIi8qC)i@|ctC4|CcUdVd6bOYC*{n(RJcbQeQeBmi;gjq2h330q z=>#aBlM6a|rObbUJQvt5{`$LQ(d&vnm3-v=!W_R4L(xymH$Er-g525reAvzQ&mlw7 z`vbD4IbYj65*#-K2&w)cAnb= zt^zdqb$3sUhwAHY35tH06NnsNRZe(eDg#wpRfGa9znh5eSL4&y8(<)ZitafpGYZ6- zb>{DYIj#VFdi^YRzDw}sN}&hnw_N?Cvjpu0S#)T=I|_@LSvE z(GlLL-w!BJbaDfw7EkXepKNpYKf&*D^v=ftF%jNZXST%ns8cw?SOd_2egd?z|6%d8 zzt%^letTtq+1a3os^USc&qLkDpb6d5E=Uhj`^=(ZwU)13=}pitzaekVRmCEv0+eW) zL_-v=AmN`y?KtEGY&j@+Da$;|+(z;a)Jv8l`uGw5zrX`1MRc{T*f#LN$7*5fv~k}G znr$oK{J--Ju51ttZWoU1Ie*9VhwHbn+72yX$#k^GO6@W5v2y3q{?;uhU}xe%@0w_l zkyAE62k_>6>r(aza1(neeq2^l$|O>l_Zh+J1z>zJ3A((z6tUyuZ&D~_@|}LD@v2CB zr^9$bq}lf>@P|pz#Yy+jcX`tUYr>(EEZCY(txq}0OKfXGv z)%PkAIm1BYx;}}jBu&+27t>xZn_n$+U0>i5yZspe2ah_^;n6S(Cr)b5>Mt0Bu^8=sgACJS1rxk4oF+1=2nl3}E0sVO*nvssVl`TgY&n zS*nr0D%mmm8gI#+K8oWwgHk-#-#gC?=zj`ui&p(Q`7CIU5ARho+xc&0KjNFgPME}x z=_8mGm637(y?f(P?cap?3L`L<5DoI6W_nG*{mj32sFH`XYLAEhgLcTwU7Vh8EAv}` zx)~`Y)b`Y-Y;rbfs3cZCElCK3?a=b|ezMbJngran&T$?b(e?As7RkdMy%e%Ry4!?|@Y7F6IHLOt=B_Q5c!%Pc^Y4`JU!Mr#}Q)8A#_4)t%>Gb{T?C zO!Xh+Hj`oUPl$pmffN7$kmavP?gYj^b^;@xAGHLN6>33{U7NU|XnOLPY-uHFPycn) z#6u9{>IGISk4|ibY>0}-C8jQG8ItQUp0BmvN3;-=$a*8hQ#9>!uED(4!|M(v+geGf z2VinX!-z+QJnu2 zrZ-tsFTVOcM=Vbw03i*c5!lAdLv(AKY@e+ZSM4|(K&=`V)Zs|+`)N4YMsn}3$?a)e zqcH;5ZtutnGyVD#u4wc7V^DAF{Sk6Z0~mDB%awMpdjkvy|GeY(FRL9wna-^Z;lYZB zQBf9@cwIWY7?`@m)H9r)kJKbhmMbZ}y6CJ5YBsA1KAsMiyO#)rw%vk9*R&+-@9bVS zGMEzlxX2s=)7Tf(nmA;rkDGICtQ7hb-R+WVDu`)j&#G!90qpnBIfN9hflF`ARyLo%-rB-K;+1WkS8`J_Nv6buF zbh5_!e9Q7C4xwH!6$sm~csf6P73Zeyz@dr9J_rRPa!%H`sz&e3WdA>!&O92*|9#^_ zLt{A^Qic>mmXR=a*~b!N%h+WfOUS;LElr3CY3w7Bq3qfBC5(L}A$)A1$xcYN{GRV0 zKj-+<;f&|G-|zdnU)Oc>C@@CN*eLuStlVe2_?uh2|M#GQH(B3+L8W>Mih`Mh(~8oB zO51_7L2POgG&qL@26bWHLclxr;c#5_e7r+g@!xONvti4?5LIGDMVVn-cd$Y5d_K@O z0PfL=kcIZB#)XdXV=Ktga^Dfr9N~yoi1~GLa&P0oTh$A|#^fcNGxx{Og9)x#iY)dd zTHw>?r=bzE^nSpH#=OX;%2XCq{`c zpvOy>z;FU)_~bc^9|c0OIDXC~XLhhKJEB27Ah^B~!)2TLVg}#nAK?ng$jIiVx8mrS zU4Ormf3wM0AL{_ACX)6P^#-$wE*$LPGQ*-h?unJ7q0MX5*@<{fUtjS1|x`}(z@ zo3+>Mc8D^S8@{`=+_JnB8XRn%w(6u{FZPfcQ`7fmmG0ke- zTYDR&r$=)wvpF{?0&XtjwGpbpeJ>qUl1{320&I0W=cEnb38!&4Ku(IK01JOf;(E2b zvf|Z(|9DPd1KuILsyHUr&P;|if&-qFpZmQL1Ft6ZHbMZz4+^t?$K&+8&+-}akF>fV z3HP8rI{7J6Czwqip;Td7p22O=$sWEZT6>eemcp65AdmEhhRbtNnARnem z2j^b&EnIvQ9#{{gNiAQWfsJR;Jg~vME!MZQvwH!!LUt-TE^yFC*+p+$98YbX^Yob_3xeu;CT*t70e4k@1#g&aGtl@LMTX5EKNuO%wv&NOcsl zS4e~20X<-5mc}+bhlA3RQ=kQh9ZXVhgZV)6|IiWldvZQTr|YVHnMg(M(O7tWrY zae)?X`m5_fWWZ#N;{mFqFJ56QXq%;D{!J(r#veol3oiQUIkKs|6Q%wpYpM*^CFpM zq+;=E1o<}#J(oc-IGSjv0RE~bLqU|>J{*i^015XJ_&VbqG->+{>0RR9Ofi8{Oh`5= zJF8>j%xw)dW;0b1o!7!j*xqTxo^872DLuA}*m)iztLczC#}jOA;5BRc zp6rK%_P|O@Dh6j1itDb71yE*!=|Kg!fdWz7x4~$zhECkFBTSIov$nP-{Sh!p`w<7L z`7}3=F2fUw-tMp{`kXsPfkB@EWxeCy$wp-Wg8nvb)It0}@d}h4qCU9jWF>yxz;HWW7mDPa}s06(Uns;vA9c?Fwsr`vXlLAJ(F1Jc$Ir*YY_M1;Zk zGmxUu2%x@aQ4Tn$ro8G^a=c`Zg1Y?KZwq_iTeX&??!EaQcYRuY5HS#WHgb9)lpEOSe~>;*Pr z=A^Q?$ghKw6PqXFb4Lpc2j{;czRr|SwJhgnRCC4pH7tbfumXO==8wA*6BA3m{rBF$ zY=c(-#_}1I{mnON|Mo`|3Wu4&pSe2G>EF)5PwHoOj`CC@G64ikj3`$+-o*0r{L}}3 zGhJv4NSUEfGCIyyEk^Jmwj8v(^KhL=UqKaZ0$V(dub42&`UW)|4RQj(A7>Yd>X9w+ z4AJb^zs8HPAWdF%W=O9Ry?jyvG8vN&nEx; z{Q0kH2YwsXpNUD|tKVW%|7^v2sfwQY`Ha^QLJNNt70r~5`J9oFp-_r~I1USw5WOf# z{Q|<~X1IdAG_-Gg{~Fnud&GZl^Sc3{kZzxxi1k>qlfG(0j*pG(6{#FUB-z1ZsEK8+ zSo_JUk1G7jtPDZb6c`;?K|+!ae3wSs;kimEi#*n zBe5AUsXzI1wsLm%jlRuEQt%OeEiP9UyI^1gLNj&bLQ#aJnwo3yzabr`xfqd4duRl? z2Y7CQPDySd(j(_;X3t5e#7y%01SBTG1ca|5Jn~i1teI7P$Dc4js|Ers%SRrsW&oGv z<7MDP0o+-xbL_b4)L0GWj+m6a=kRF zAOvfQ}$8Hd85E@ zR?KUN`rFOpZz0c8)8DoZFWBjQ3}Tw z&87xn(~+2%ancWPz54z#?;vVLobxth4BMdKx$o~Xs1S!Z$ybv_TNw|k$6yAxo`ihg z#(b7g_hh63z3W>dF>u^8orGDR_34NxQS_&<@~K|=@^-yq|M+Zm=nnP1mo|^-9D9w` zbKlRfr#?b5!>&>?AB+|j)Z)d&#A?l3<_ysa1}0{DlrS?hYtJ38w{5oUT1ki7J5%_C zqO6_Zhh!bAYr9*s4WN(B6&FKM$EBmH7vVM2D=jk;+NbT}8y;cJ);@CNOh4|*%F5hV zLvN-_EiBL>%f2bql4OJTlhzuL(h}=(^O|Wu7~KAoQ!N_S1&W8{tDY^{zeuUHYx|s8 zGVtF*MaSuh;``?fxA?asnBk0YO@Z8ihy}OXAW+Ju=QeYcB;iW4KX?~}#ItVS6aiJ` zoQ{*tUXQw-+b^<`LqjSKI zoK6)2Mvh9Gmpx;Uf>wXt?q#-wLG$q48Hf!m$I}T_-8^qa!{VpIBIWocFO0iqN)=c--Ed2IVZr@F}JV~ zyBO;TlszE!DSZG*>0fuYn{u%on($bCE~9Ks_U_5%Qa_%x1T?4-Q&IOMTjpufy3jV134SNUtdT@L0#)d6$Q9fDvbdADkWU zPgUB7V8vZHFTqZbBIZUIxRutd&dn81 z7sN_@dv&&X$b?!x90?h^+9dzl?CwONTpkq%gL!<9IxLn(fx9W5^Q~AL_)y zMfU|0P1y077hXbpJg6_~q&Q0Wb|rZ0^tsIX*^fY^ed9Zr#(Z%~42y~pE9E`=@6_|E zVt+|ZkPZVFkBv|A^FQ8ft?=aWnmQ6|Y_9N8nR`4r%iS_(x6qS0SpAj!NSOgHPemg< z4Yr5kpeOA^>^2KWEIFq`Ly7Hq^*Oo8s-_1Lg7c>u4Sg_2KJRUnyBT^M`r3y`GH`?@ zAd{9Y*?YIPwu+7NB*PCYrU zC9h0I8Pe zAo%H4+r{6xi%THUgo4|J?|}HUdoL0T{tj4(b8?7jS`C)G)#$;8abF$_vNdMMe|@t$ zFyOydW-H2pUR%zW6V!j-m3cTP&;0%fsnu^~Y_avYzB4n;MUnaByv2z3g>DeBtC`J5 zHEOBNBd2L>_vZ;*iy6d4{{m_wmO-eRvm>!sTWwmds;Z6SW4$1Ca6G&YbF8WWTRy_YwK~;0&{g z+O5KG0D$^w18D77cSKRU(>424i_x8(ZB|@nz`tV-Hx~iq%Nb^rFG+A`j>G=!Y>Vns zC|V}d{XLH;8sXdh1?Zds#UmgamLg1o9k_}Rlz|7++Zouk30|{3QiF33O zGurWP06BQhg||xpg@~9}iCaYVgWm*|xQh%vfV>Sr1J^d%XfPZaBR3+d73b^B?ug&` zpO?lOi#Ht5fG`dWRlg(DdhvtvMqD#fGE)P*Tc#~NOG{EQ=`IR6Bfs^t=Daf$G62I_ z4?+O_lEuzbhM8aBn>Eu$^FN;pY7|Afo2nWnKnf2H?N`->4BUpmd#qdLyjf8h92P(i z_QZDTF2@gdL%lzHnE z1IKC2-May(sfUM$t~Jk~r2~cF+DQl;r?U&hK@d`)!%gj8R7?WwTp}3IAg$b8@zYyC zQ4{501Nhsc5S89u|Bu?a7jwmvZm~zg8i~Cq&$ihuwE3;%r}3TP^X6vHk&%t|Oz?f> z#z+Im{8oMU7iA?SXQs5Ve$kVmB!mWEwP?66@3TZ;Y&Ri7mzS7>U#u2}!N$g%>wgG3X874^RBNh>u{j%@0B;@E z`Y9qnGDT-8C{S%w^}*vD78X=Dx6`fb@Jy#~)^%P|2g=$IY!9afG0SwpXq}rsr zRJ>*c5Ck-fio6(X+0=9YHn(f)g9Pe6{hPvXJ@P+edVUG>mh!|G=Z(0-pX72S~9cm}l9PewF+ zww^U6{TekUXign+C17Vm^^-&3p<#ZkI5+8PLaD1Oa(m~xWsI1oc2YQGP(e@nihq2E`sTv71_grg%C z@VGk$lMbZ397lr9%*@mD5ww}G_Zb{i$g`G~*^xhv82;#&0ceOI7{wlNfhe{g2mF}uJ?>NV338Z!cNJSF?YW8ty1-Fc$uyJ#1 zqvsPya#0rRFht8s%1u9%r+)S_i5Y8y=8UKk6W%Bb86&|=0$DY6SYJql?J#Jifb?lt zEp-eT7)_#-Zq+4ECosWt88PO4SdQ=*s8d&wuBQuNtNQGaU8Gcygn3*p$j$`USvabG zgze002gF+E%<)rL_%QuO=q7fMZB+yZ60I9x=>{Qhobq>V9`92t?K@s{db*SyBDx%5 zv5q(!h^?hoEzu#Cvic(&W|aR3$SDfJRXOLVG!!4AEQdzT39LR~lg_(}0r z;^%rV#RIY;6y=Ox?K*-!AqCDsK;inaewqxQ#QY44Kk^Utq75P&6mcK)bhBM$Ju_xU zBDoo3`{lnhKJrNpl%R*RI4lS^PR zEV}5W_lYV3^bGG{Y_trYd5uO2=+F{{>@mrd?=hcv-!ZVFVvu?aTSvCc$pjRnVx`ty z50#H30|R^=gpQSZ{KsA#?~d}vjp>u6r{&>r1#PhU=MS2XoY|qD36hZ41;QE-Vg^N^ zw8)Q}CYq4n>(p+YOL47n=PIkKuD}dtL$2}{778b1AnXehhK>XIe# zV<~K!(UXI8Ojn(LEVyM&1Tn(@+X{w(YveNoSMjY-5d8a=92_Sq z|Fp4VcIOCo6~Zt05|aRZDY44?MryD7oeT$Y>dkty_xY}x0uzI?zQpMFVX*Ji5t2ON zL8^OO^bB*dK2cia9y}XI_$q%B&KIO`iT4RltvTy`PZ`ilKR%K(9mczAUcyFyoWLiR z!1wHaNn=S9QVo*Y8_-I?fhb6-e0HZqezh~~Bh-;`{#OiAlKH*tRZ^hrL;Bfg&{q?L z@xt@H?+>p+`GCQ)Xzx2=y3eFUdhEu0yVZvZ${)8gvmh9(9E0I;vF1UMLoCH(mB_?E$0O>Ji5V7nJK_;Bwam^*15h0QRhOWm$Ki;7vZhukSz$bNeEjz}mAkBS~5PDh+ocv%tx22Jhwy|cf z8|1Zcl^e0=pB6yuoLG3TwM+WCIjh;d?$UG9ffW($&~-Jc_zVi*U?Eui$CW;!Z@ z8VC~p>5gN9`9riNW0$b~wM1_@t}O;ZsC9f_0m#gZzHi5yWg&9kF5$=KW+1HDPl=5S zKt|g-40wl)%*6zw`_G&yxLvrx4EL#F5Wjv3>(AVs<_d3DVq*8F(E!V&zV~(4QMVHl zpg)Pp5&{HXdbk$((^0TWUYg4i@o?T`5I+&u{jQGkm?>HvVwVmivFQ6IK(W~vMwOr0 zhZ4-k-mFcZ)PAE~%wyoppp;a1Phk>NV8;tm{{a@uOV40#J;#aW|9s5yGD{ zebXh7jdOE{=eJG9q@_s7O@tDH^;@EyQj7GAN#w!2bt#+{Nsc?r z_9HsnW)JK}YNsGkWCcwe=9Wf`1Q%Ab3x?He=eng1*1}6o_DE4=TAoC z<}j?ByQebWqXkA455n(96a92$RD-}<>R+U*-CbEi`jourOg0PP+@@&{#*Hs4TM3C? zZ&k5E$NwkYc^+9@=US_Bi+tGqug1cn_u*cg&%fiEyw=Y)?WfyU57d0CAKi%g<@mjb zoyp2rQzjaU(q}+_ba#D|MGVlgO0CZ-ayK7ssaS4RgWx`3F_ZTojHh9?DTmoK8FI13Vs8=jke!ahzg@{7TIq4HSaZ!p*es>( zlX;7%?XYcXc$@)Z_1$KfEd=hm^|{G6B*YD$RWy*DQb~txwVd2P{tq^Hq)dL`xmA{} zeLr3e>c*UmHBGOZG z1?GWFDtNoCH;00j`#QY%5W+0+rY7t65t110bTXVH@!ouW|a0a!8E9T zk2*#KAg=PPn^Yre~sF*C!Ub8DJ}Andr5 zzB>682nHwxcAYM!BHMQav70B3i4XiKX)f;Nz0r3$s1l#%wtp%2Wb#~jF2hTA;u{6I z<%A~&A+)sD{M(6nqI~f|CTytWxO^T{{g;x0g`yGl%-cM#<*=&)sta4 z$lIW=SJgSN!g^s(nytk+P`jBZ%6jg;^+vO|+m^1$XknS~642)vSeZ9jPY2y6;i1*g zYWEw!1b^nK9P=fV#KyEv0^~MI_md4fd&=plOws4Cc!`*o3=~9#+C4R1r(J|*!Y7u< zh8w|sk&~v0y{+EY8TIQj6`z+)Ld?Jn=noC!=UcT8RReRcAPf4j@65aBg3ktW{C_1; zpgYRZe%uouCTQPpMRv?db;;wRnNY|ON)e$K`!2=5L(#*{f;#jc&5U;g*o3?$F9LF! z6U!Po?bet{tBZwL2# zuV%V*fGH8^qx&6-!t=krziJO*`DawL&eYeruK1d zA1A!J7euW58E-W^e@x)y&n`C+fk&@u$PB1gen5zTPsi~C%37g;@*NXK5N`_PeQzQM z$E3mzGaO(#q>`YUZ6iNI#1f02GAc#=Qz|x}Y!p&y&XuXLT5fw=#Ng;F&s~jY!QznH zr?=pIp@aF+!jJHN4N>y9l0%NJl40tt3p?d?)hqL-(~s%ln@=6e?)Uj|Z3m&&SNH+U)$iuu@%PLy#JI#vL=?M*zm80&3yDr*rK)PniLo zO(AD|uBalM8LmyL3))_rWC*go_M(4_83&~XV!DG{1|)Zi+;1Vmb&v(~eeM{FHVUH2 zJ1Tq|3^0W5U-dKaz{qQqZVd2k@v;AWLPwGgwXx8nm7&s_R1ib}*K5hh6C;FIc5FZr z4Ka4ilFlJ@6}3ZN%&Gydy(pOAFLe=T4F;;Iua&hY9c%St1tAS8lrLHyW4fH%GBFNB)4Cq$Gu)Lpbsa>)VAwb?R)K3LOFW*H z)a;nMIhm8g9Zn5?yzpvL8wBMDt(j*XM%?x1PlZ~W(@pv|%=V=4{jrfiTh7)4N0I5| zOs~^YSw~CDbLeD{!CU30MRmcl4n3|0iAXcDXIcV=Sn+m^p@JugkWf^ikU!?A%t$V1 znLU)?N)aZtdb!~w2q|OjAKhH6F8d(0XF^H$5s$3W8>Skx)J<@d^|GY-$5&_ygN*|W z8Q#NciQ)5IqW195XYEnJ`94MQ~bs7Nnll6(bIMqd@rMcsgs9uSKhy^D2 zdNV!9wRRdtCEhH)g|bN}L9g}ttK`|+y#3SdR}%*7i_9)!{d0ArfD6ZZsvEV=@)}b18Lv0ZD2J`b}ru7Yw+H8GsF?DvUd4mN% zh%)t3R8@USfdPW-{Fdyv^ld0ZuLAdtSQWj)eYJ}2rNuT5l+yYFK@u4QtD0a8TeE3w znl~7P?Zg<(KljUYVgyB7&GCXrk2LsdGVb>L2lFhKA@3ZW&OLbrT7VpC^tH<3X3j zEFnn&_n0+|37iUp%OhoV-4dn%6E?bk#_ojQXc^#w(6n`!A>ZXsAskm7#0)bgK9@c! zugeB8uddTfF)CfjOyuhVv#C&l<;` z%QM&YHAdC|TQ@QIYF-eME+ndb*+HK6GCp{oAP{x@+r=#YbmTe;$Ry2T*Jmg&m2;t0 z-+)W$!ZlI8Q#T2>IMaYF7u*C)iK5}m`f>O?Wo7A0#L?W-ay;Q0Rf#OYY=T#zu}Bw) zMwDKX5(I?j-qnwU>argBq`##XyKhcU?GVtbuab)5O>RR|>aA)IiN>FZmFv}6qt}T{ zAYM09_W=38zH_AIMs7<}yUMLA#X_a^?qy>ds%ICE+on>Tb^QfCkhj=63}al)UCk}t zkEvaHPNQw^{L^vZRAq}r{2%Dfeia|=K)QacFclo&|Iu&m^5JfRH*cY4i3lIRu`zUTN^hamx^2e_~$K!UWe)>p% za_;{8W%A!AZN`|R2z!9YK80e@_y7k{D!4P{k3-`iLW4%9ABx!xBHi%J&BN+gKctUg zvXdK;Hlj;SMSD2ju?6BBJl^|@kzt;qR8i8|Qg>h8`6dT*kNn@tygY)r840FA&M%Rn zcETjhPsU9p+oLY>*|h~qCldl>4TLC;4YRdg$|K!NjSXopk^MP2JQ%bskifeVs-!?A z`zhrbn)4`7k&XEw=-DuTO{PU6l~9%%$wlMfSXLoY9<-3$ErE<3SNfT$hoI45L`Wrc z5U-NCos#+)LB5@Y>S5tVkL+02+U`BV5C4nE9FI?g=oAtG^@y@Mx22fhyD13eRgg2E zojHhLO}*-DJ>BenmkNDDwK@A~f06a9w+v9N|E`@&MBFIWpjhcxO+3j?ANS*qdu(t? zm?VLjfd!b=5HN$cSf2%9kgQ-odHJP{@n7u`r@=vOx`}0hLgkUir}4FU)A6uciB3PYGns`c2&f3X7=!@OW` za*J5F^F}2i%5C#x@7Ucc{mF!B?p@LfTe+;ZuE2LmBO3`47=9J0!1LR+#+z_w0>xohWztQ_2_)e(hALLV__Dg#N6ff&^;9~ z@7?fwZwaA&w%4bsq+HotGNPbJeKZjQqhD`&=-5(@lO`)$RS^ac% zhE|=n_JhY>YHqp16*TWFaci>2q+y(x;W+O$S@M^K#Q1TgLUzs?j6XGfz@Vsla`JX| zr$UNaLHWv)w%;mj4||@5DBU_;`bE?bHhnGPUQy|DB!2ZeG?mj)=WD`;lH1(DO1E+Y zX6Le-{ouIpNTqLP)Srz;eP2n5&9H%j6p=0~KAa8I|7T~}gaDPmW(+Yw2ifK=EWuvl zG+WtrA_Vs?EL_?AUcD52lJ5Fa$1-8k`i4un_VBp0FDqwvi6nkm{?NJfu0W-SvJy{t zCSf%(2M3+$FLIx$e>u>y+_-K{35)Vqh%1?#L?cL;qLStkSxXq-!^$b<19?hZw;n!g z#WCL3fVF0J3kOZi`C!Kc?{~3DhntnC+{*Jmu$?ltvN5~H`Esnw_A}1hgafSmHKI`a z=t(2T-7et90|aGl1RaP3wlog znb-c9TrX*pO$!$L`pzDRx61yB6ySKH-jkV5#7zz#H@S0RYwPL>D^3s4R2$hGF}LvW z&|MWpIXQzgOmqL>Sm}Ez&x`|`ao0S=Tq`d%&U@1!$c+FFcN^AuiK^*eY(l4?_Bv!WCKf&I;>f<=(l z?}vTM##xPRb`gJf9izBk3lx0zELU)w^VkpnzEe?ID?79q=Xmed(~s}i54wD0a|v82 zmqdvHn(xef(HxrV+_8JJQ++Ob3fMVQO*Q_q^NA}d4PJWAPZD69G5ho4L$^sigbaCi zIMRgzTj7%zk9YJN&SZPztUCQ=Oj*sM%O(GXiU!x+1A!-zx~>Udd3x7cozV}8dW?sX z#d`8rBgA?oMgtIGe*eDnuC!03;0K1RjM?+8yKBPjxtb*nZaq$_bI_`TDejtd~L_tS!EDmRU-IFeja65Nv8 z!^Y{nle>6rZlRD-yURa)AT5;-Sf)W??RsP&j(=<5F{t}FdR`-SjgQslL}Z}B#F9h+ zDey{=X^wkqU%mY`;SmJ9h&&tG6IxGps4gWQ8r)+pRwv`TXTKZQy$y@)N@M6?SI1Xo zUEAhs6L0(sb5a`ju{4{QNGrHD0gZW>T4(P0&}?Mr-wnR6kJIFjZWp2M>nmi~J++;h zv|i)rgXzIzKDjNun3{?sNwDR;W`hQxQIK@K_?LBeZwj*7CC(ZCx1iV8O5{Mqq_C-#V_*zX1N}OHk|j(E<;hKs?^g@7ovLW@^FMfS16x+!7sf>%_XrZe zS*F`TCW7v&`BD66FlaE?93z4}#tc@2-{%n5)F&er6gki@4Q9)yZmwCMR6+95>IGrI zLJsgFf#bk?FONdxV)hp!3=thy*2K1xO*Oc%{**vQR=4;ogq{qs)Yk;|wU%G+US3n% ziJQDf(y_ct7lt@iO1>I%osNL9n7ZLPBJro|sUU{D_+0T&V}XUe3CL7e7wM9}im^1| zFBr?VeiZ!}NRD;y#v4z1V5VOKKL3pAONt%bfU4(Ec0I3FbNob7 zZHk~*IRsq%^IIQ9=WZBL+})nHXIZKQCI#7w51|Bvdxx|Z)2PBSbwq~Q3Hb7btkf1R*PR&(knMFy%ywPDj?RCY%-eVKAVkP`tNh}?BEK9 zQIIOcxYYX!^nJ_3wy@e)@xhjp&sktLagH7Lp z1g3PEoDF z{TQe=fTap7vpwU`1YdapcN&O(@p>_TEan;1hAz+lGqI|QE&OY?6jVUNFw==O5!{}Ul^0L@O`Vlo=49VE-{GMLmNxSbegYlKt=*7|?q1sdt zMOAtZoGfW^Xn*NndsBP!Ycx*cp^1rA?VNY3y}T59#yf~f*zS)J@*Q9t5+Lm^Cy(wc z1=+UD*_5~R-c{d7kjf{_JVx72#dR<3?R^5mXDjmT->ytcWV}^badWnNJCOCQGS^T@ zgzzChe>?l#Y+~k3m(s-0>m=WM90}uzHiN6T8XtApuEgsh#7~!{^IDTt*g2ryGl%Ga zTC+Qauf;@PtP+o>Dvc1=D1=Yt$ZOYCM!QaRMSiA--=hS1nUBcCt?sgAd)T70imr0r z>mx}2&N#p1^}3MI5gAciBwJ+dnjtkm2V8~{n21F$lO~#`t?x=z6VPZ*);ebeEJa60 z!QJt0VqOt~EJ{j3N(%PB&-!hIesLBLyBhzZHjT+i7>pLXLCQ%!svh2>r2QwlJQgW?SBB|2D5fxkHJN zDu0>kN>O(e1w8;Ur9(dp+!@a?s-wTg$W9wL{`$`yvqBE4)5%x5$4$~NGfv(H(BW5c zoYk^y(KJ<ae~($qTJuPE zLoucra}5PZ*yaZ4uBLZ|6V`pd=2BVnKL)uRD~(3|J*N@_@J$u8wta}M$POWyfm9mH zle5+P*_I=ZdV<=0cPm2IWJSh2}Y#DhTyTq9n(E{~e^ixtlRpoUs#y9sl|08E0s zs`VkcM2L&WI8no3RIC5sH<#GhQN42eFE(4zDRJ%TjOTzgNak1Sl=#G&!1%S!9>(ir z1q<4e8NQ-+9;Zg&!t;7#0#nieC~mKU-O)qUpp818y0=V zB-p$wnGqO1|G2On9M|pmmby_|3Y_)R5(lT}dWf)WLF)CLHp~ft-|s6WFZ1F4dmJ3? z&wUx#WYy+JVWI?x6)z9m70b{sw=^@W{~Fgl^l_n>ea5WK%13up&#nT+$Qk1zeA%SN zU)P!4JOiE3qbH7v_K6r?140uxvAlXeE#)1Sew@La9M#ymUR+ZH6?WmTU!&p+4Y-4Bo1vE3uB&Yqf3^}UW{a#WCM5-fTSiWI=1H4TXJ@CtCq@G9&GAg29`=)^mGrW@ z_O>=NH0K?_MX-@w{pv_>kQJU5gBzTz8|l4vfEcYW3HZ}DK7Y3>)4FVGL$9?p4PW@C z88;!oGnNNW9iVGIL5R&S?p5yj{{!>!UdPqgH4uLAguWw#YdbrHlz9F zTXm7wVhq1t9njh={;_z5q`(+A7q=RKz??;aP}bM-H$l-_Jr4*!(J$HaRYwe_T3d-d z@<@7wh3eVv`JV4R?kkk0#bs~Lv~ONDPi&8}czE6>_3>YCx2r66m(Mjcb7`*NXRm!& z`6%mfeI2cnuBX|LaWAjK#H{em*3+fLoe!M8X*DX>_H4t9DDhk-5J_!7Nvj7VS+wlf+|&^ka)J0%WgRqY+ozy< z>nX_F>*nVG$jjir{aUGO6#kQSUiMkN*4(1 z&jck2a72HOMh-`}vcILF!8y6@89H=nB=F)+w#P&M>ny2(gmHBb4FNl9+Eux)fL?g~ zEUGAWw@zQN@l^pNZ3HQ$RhDeNzP9F=E!ZPWqDgNKQpS%|i=uV0T$(`b@7Y;z7VFPt ziniYHsPSH%<@h73+o3EUzQ4!gLQ+M1xmfW~9HJYS`;n(TVl+X{>7WHk@i7icxQT(W z)Vr?(m2LqWc6lr|o`funJ-wxoB@}XxF+w$+HfXNiKrZRckvd~JI|Ju$OhQPPf?N_{ zO2dC@_BKJsoqu$ezZo|b{EC<`vi41?2s@1O_4M>ycV{Mb8g*=tR6_4~8Z!JFRhdWG z`mB~Nyq(Ltxz}+K`tWt@`G&t?Qy~#6#tP@-G(S8)zpQ2@iRC4IE1j^`jkw1+-#6kK5^{7UT3qkHol_W6 z!1AZk!N1T+$TfK!$a8y&XdrOB@GQX8DCwZ#2s}q`%CH+B5r8WL@6KaiZ)eV*BVRxuEVa_-Rm7 zl>OAn(vp^^r+)83eJFlu!*$zel+`5=ejWk$->p-AAl9TLh;@vP7$ldBoKbQ%Jg3%W~Bb>cD@i2>Q6x$`XobJd4(8bG0Rv;L&pg_F8>a+1viPb<#}!msYRi@S5_ zUsJ*!$BasNi=};Ar93$u79qum3vdXGLijK{zfFvfWf$zdF((S9xqMZ$WfBxi$M}>0 zXB$3RUU31}E=k_*&%hd}Lc&}sMqTbF`*5=T+q4&@EvMdde=e{@4e6m_HPawl5Y4f7 zh?m!vP3RM)Cp@oMF`1FvCQAN5CY6-AjDghXKCpdv$u}NpT1UV5h6f|6pJ0jB=}fz2 zbU*(UuzLtW*ORIT{Vi&LrBh)*=aR1&r%s8`%fwFD<;7^)B~cfFG*G7v8#dY!#z_yN z%&qEALcOim{u(o%|ZtH{Nj<@N2Bvi8PtsClG@jaId#Tz4O4P*Q}ti*E|gCt zcY44n)UZKOpZbR%zwHH{o%{{w66Eox5uDtRnSKDj?nke*_CO~%N6ny1KBXDyv}BWF z!)A*l2Jm&-NN|!V6H1?4pi6ag`Lesr#;q}=RVPba{9mC+r8CSPECdqymY^iDoYRrtT@`+o$d&k1sAi$Nw4M|-vncFHPI z5r0n5t3lL`u{Sf5x*EEf%VcH-L|K?Iu0b&(OO`N@&~?T%)dK-WF#MUHIq7KQ<6qIi2=0Xr0x96!e{I%w z3;ORXepXb zdpkRFq(1U85Ayw^+4N{%dK9`hGrZ2}0ctmfAzy;bc?TsSmViM)%q4VR0RDxRo%y-> zIf+;}aDw3Y1gQFBz0v)g5Qi6gpD#=m^1j@F-{$QaK{57b^{bVszYYjfHt^7kO4U6W zprH;)mQP)K9s_F+KgXg!$(BP!+{)HPGJ3!s{DkW&`o;f*(;m;n{^`Rb_m%u88VA;; zhffXxMy+BasqZSEY5jb#h1Z;NctmzO$^9WuD~q}v#656TiXQmCa^?mkWe!B^x{Ki) zxLN&LX4{{J04pxzSa>Ek4gv4Cs=+=S*YgInxMKLMU%oHZSVw(ixcBs>O8nD6#KMA; zV#d%BD#7GLNsbAaPMHk%E$>Zr{5w2NKC*34ch-EIiW&cJ_gc>CBfrP?Qcuq3ZWZ zWI>8PZHl&CS$dJuKPvqFg@j*hg!~H;qEY&OrpB{cj~j@dwa`$KL4Qy~*y;^=a&+y8 z{MDd|lpQqXg%oQzF+<_6Z$LnIlRS4)-|_(L>C>ki!(#_m|DOeLNI*nS)MmnaudI%q#U(cQ0tYW zCq~z{kG3k8zAkC3U{C84SIH42novnZ;zEPVp9i`Ru@3dxF|k&GE^+-AACrmXTN%vE z-^tAhp4~beF+)5u&=UIq|4S%7i<(n2k)TmO9{{ff3*eYV29X&pRc@0O;u-bjJ(+XSJGnV%7GP$$E%CEzZC+OrC*OOCd5Sw z(tn*!F=qt!&B(^Cw2oWzBp16_rGFBw$tzw9l^=dHK4?CPW>B5BZ|nN_s6OKb6vKd^ zt2)?Qjynxeq!tI8dDYtv@64o~H$*)o`+dvPjPH#*J~iU`_nV`mI_-D|V9t}rjZ0l? z^2=v&zV%0-6;i7@(H_Z%@m?ervn|x7P$hvFXmHeim^q^ZBA%prg*Y+8HE=D6pSa(> zRApV4<^`d%Ocx+?hg)BtlCCqaV^3FS?qcjtJOVN-qf?#W@YIdcBQrCWr|V=947-mb`_Npq&VMLLsu zlnSTn>y{H_(ev{*_B-`KWqRleDVl0Via z`}pu`s#|tuIq?)B<*QRR?Q<}nbQHAk#m3JlYIAt}!I`@szJ&Q}P`7q~(cHgZYk{W| z^`fHjF)>Bq)Z*js)VR~xu;SCd^C#a=PV!NDyXL=us*(Ewldpy08K{(`u7|*u3S_{{ zX_oQhlAZwKJ?6`RkdP6G$4Fl29iCfA{MLh5ecIf7l?`xgfrLFlioKr;7M#ww{!!5N zlr_0)#v%*#@_b~i!NL0M6S#YKd;14z!XdDA_`1ImSh+tIH}3^y1MwO@l+?WC*k7Yu ziJ1k0mbz}xHsmXqy7>EZn_{o>nZX~u!4Ih^D5)eqL%HWZuZ++^rTKmE z9QBaWYYi^-(35Airn0QiWE<@HcQO-rN95Eoks4WO$nM}ZBmI$`*BN@ETvdy} zU-jf~lnO^T;O$`T*v|A7eXmx*WF3N-XW$J~qy_$>Z65=6U&F=n=)B#Nf=>CupH~8Xb08^&7dn}!_ zlXI~d zgNuX;Cj9i)$Qb~Eu79ccn#fy}0{W^t4AA+?;0~V*hZL9rZkpwUdbc9zSD7p!LCN3@ zTIw8Ix;s^MJ&Zp0sCGcO*l>sq)b)^Pp_lS5uPYH&)n1dE3&UYATwKDAPGCJm|32B} z^I*UGLpiI~+bfre6`JejL7YYpd!qtAa8tdz*#zH!LgY_U%i>Q@j^|XfDyN_V$p3Zq zn7+l`e~k+F4Z#yS#Wmx-v$T1!tnSuS0nqS=nx9rOD9t~vow1jCmH5AHgex6d$EU&0 zSA!GsQ!=6ScNquY>H6o#;!pm04*7(IF?2zIXh^NM)T(N*`5ezP@h*F&FEeO(BYD6! zU&0K)Q=RF}k94W*DZ1KYXp0T7hogHRb{*SN>X@uL2RYctW58%Wg6P6>e_C1Z&P>As~ttx36XYD-quogaVyrlG7J zvEWUhW40b7U%i-)IhTlH%Ogzup1@{Jc1|!SjR?$o++b2?IW&s@2y`B_aXa~rgj@2E*vv{HLZFZ&cwYpXE^_ilI{E6tZ2@c3J zcM<$_5Bq%VKtQX1QB>#rpvrg(R_R3!4x7+$XZ|$kG{94aMOL>nhUIFduM%)I5$hvYTamI{5{#-8+@teKcR{hYPA@>!*%SdS7P-bKgsQng1(pb>ckoQd6F;{Z-mN$r6d4ge!PPhFdZMYo zyLewQxC``MF3Ri_Vt+K{$3KC6eg|p_&Ao7i@7J$iiX2asyoF=IzaMKh?}5SXk&%&6 zCxBxFvl#4ZHeIJNp&Fc0u_9vhzBc7zNnN-GTBjGF1?4ojo=lBClj#=hhG?F}B`ayM z_OY_}EAx3?XXtuDaBzy6K|c&E@ecO#C8(OgtNIQ%zSWWBv$TFQO}s(3kq~q6ch!e0 z`J9Ax8hPeUnI4mYG_Ixw@Vx_v370A>jycb*_`FDXa54Y}(DRR&)4U81Pp_H_u$}^g z`qz2xw~Lb@-> z7>2Pn#m zO9T{$JzQs9Wln8q{kH>P9~T$DA4v1h(){b|>Spqs@ecSsRj^^>(Gj(;el)RmqWana znzOwQ>A$3znahn^LYrpVRQ)#Ybr^w-OnEo)Bns6oXTd&U;6|*0iBYLXkb8{UQA2`ig-B3hy!ST1I6wIaM|1$VqNt9mNWEVZ(ShC ziDD}>4AaroJw8}8@51@ohB=P%o^A_0lA0Cq7;>2A&fyL@4bifcgj#*o4U^#O+_oG@ zt~I_DuBn&0VCYm=*Fv5I_Q|`7>F8&1fCW%AMm8^H2B0O#F9YvyN1p{u&2+%pcc)t# z=M;fNhRyE>xCjElJ#q>XOJ0A{Jt<)buSG?3px*xrkoGK5`lFK7S)zA(V12BvvxKZC z4IM5T-EO@+?O~{}IRs&5tH@WRs3mHDi{5!OC$_a!Pa{RsvD5%oeibMA`H2$6G9M!-Eq_J)a78X{j%SSTsz2O3Q24W5D^Xo(*>DQpLcEF!?te za7hBI1Sdpqs#lYJy>0DcL;T~%<1@x|wne3zz26(TP%iRTYo8_@@wV`Rjs6r^Wp2o` zD-V?|n+|F_Ps)8a_x6g;^EH0{V1d%-I4icYiNG|S{vKo;{pNmoT`yAGxUSA*n zkrLn>c8SV$#4RAtEeO=xNvkjT%kPi4H`x<{GMejDpTmtBx2WN z=s5i8({~H!y?cQ?u7aYmZ+ne?Ahn*mq)}_Vrsu-Td#IZe;oA~<7nKG)Cgw63e?zJ^fP`Y57O*~1;ml=GM zD)@psjT}O7z~x@l$K~9bF>-d|n0C1SLD=eAtt_N6F{cEn+c;icoQ@)|!-~VKO5-dCTIz1o$zd7~&{udsRaayx;uE46^ z^7#T7Crr~UaZJ2tjA6qsSHriaKR z4kD-$uWb^4H43UA)Fmn~7^BF3EYM2d4v`Ra6bxAyTzVkmyM@`T3)5?Vf3WJUajy@! zMfT$e4)?&vhdVwX#hZl9cE`=$E(`~(;bU2Iql7VTS9Lg6U-7EouVeGTcPG<*WoN~} zx$Pc^DYEU$I`fdhMopP%kC5IF=;q+y6D25)&uQ7|ty6pYi2V9=?nf}hBR@wC4DFIF zXuQ~1T~nR=U*!D%_kWr|(iuob! z_9k?5*&lYNzna>8tGosT33V&5+)psd()#2+NvYBq|B&ZRF7tmOBN43(pxazKZ}Eo3 zP3fk=nJ>-C>A|?X+_WbN>9P8JyJm~W$0ghwCnvVPzqeFRcNfIOx6@RK^jVTjWy*HdLWkbU*S(7eX}UA2O_ zT=RPaZ$H*llv`c{0q^H{P72^gY#+^^X6w*FFY@hiPEcG?N_gYw%O!dhUC_zvLE1OG zdL9C9)4lfg0ZPjXo!-}E$Ll8o*854i}2LN2ZOumz*gzd8upN&MbHoN8V9k;vBn|9AGCP*n6 zaDJfHNu851?IF2VMoQy`1|O!k5j&X@Qi1PbQ3Ahzc&`j{bL;2NP_3Bbzio9$=9Gs! zWhh$MWmw~0>>YDDeenE;g&6yPC(D!gVrit@9E}S?w5eJoG?>9oj zL;mU@ehKvB`OJfEvxj|`;89AsDffU65d_=={kcvBEE2tuMXTvw2=9D_LE@|_ldc{6 z1E!G4NQUoVpM&;j(>p(evU*0ap7Z_wFz5NXxqB+vaEJ-oUC<0loy#l`&OIrvoDOK6 zjCqkcT6ja~lg{X*s1`l<5!3SbpqWSNN(XN)y(1{CRQmP?)3(&Z@X2?nn^B}`NoA?w zxOhINkIJG67su9wvoDyfV9!ZBIS`+`r%ms0&Gn`s6Fl&BGEWN#YRylUNOzQ4`~d{! zNMU*<#tT+rRl)HHkDD*N;KlwuNb`l-=QUMR&joT^c`=@yDAGl^G~VNCloGJAR0+BY zY8ykayPq@XfL+Ule-`xM0DTc0*@5J}Z^?nHtgQID)VKaP1&qgb4x)U9ni{&gx?>)K z9%GUhYZt(z2z!QVZ%EdSg#@IO_kx064Hp3_*@JzbE#gKTZey$6qS7vSuJkd!cuOm1c1TF2VmMq9qjj~n8&*IPt zcKi*3d2rPIib+FhBtN9i7VH~97s&#gq(I+Fkx25=)O5|CPSwQQ7CYs0dqdUUSEvd& z-R^&fuMZ4|wg+ji89{M~w**{v8nx*Lw^1t=LP=FD6!DL#&**o9vmCZ#1b_!v}C~P$<2_rM|Z22Xh5q`VEU4 z59|0^$x9-)>oswLFZ&YHB@EpGRgt+2M~Hm+x)$Ec;t7fzh9}G5q*({{VJ)bJRe$hGRY=P6HJd@Nds=?XPO+2rpdgboN%&%8-%l$1|$KJ4@V6xd>v7QP5x`$fzhfq$?y7ov0+gRG1xSTLDt-oour; zv-e;1f^*&CEc_po!P54=jfSA-JAaSY#OLQETB!IdrWDvM%f>MSHc_<{fjK^qx20Ti zX?~$93vh3}cF})$giT=jQQ$;F^xl;*SOLFxVg>~JKiid{M=kyx`=g^?E`anO2;R7D z&cSp3xdfvH4`dMLn=7T*yYOwM7ZkhKK zSB`-V*(aKJWABKv0qVlYQs(KRoXH?(HPx63grD)1hDGdX4p*gj?|rG-g+axk9X_)g zBUh?v;JSwb4#-%bR1FK8m~5Llt(=yrBvzlm@HBWbe-XL6H#w&Jvb%V3L9R}{3I7kdCU&qhLm3lqpG0bbK+i9nFap?|T@BSlSJRBjG<+nAX511S570@NQRZ8}_r zO)+Iip7^m16qNFxAn&VHJ2|Pb$0okzxy(<}l^!Ic+;VP9HIog4CHT4%r~81Fi&Sqe znD2q%$(7{FihE{bGb^<>t%63zuFK#|tCREUg`^%cm;f{$d8QISLhS~U%pa!QI#c!; zb?x{nPKuD#mI8_1eEt^GczHnVqD?ddv!2@Xt+llk zI5-8*AXzz{6IhHZ{)-byWlF`W1QfD|)U{pw?{(ViS2amVuWo(@1AclTBhxm(o@6GE z{#g)>sRQ4Boh6}+T8F&8UNd~qAI!Q}!JdRyTO%yZL`x}`x_NoCwhry5q77o-a@uS> zK^I`5Rny8ljj|&w35rN4VGmJWn3xptv?d??x@0;i5tvY7(f|HX8Te1_PAkzLo$bbc zke+u{L$ozACsa$B+)61&#~(emNVNvFq@}4Jk?iLTKC$rrmKWk~s6*BRq8FrVzSkUB zrL6LIXldeNm^0!#AQu>o{|kIfjq6kNBLIy_!u$nr=zlh;8hN@xl%i(|U(V`tYbCoN zM_{A-k7UjfmOJ*^mtz+Vw0S1m>uZa1zi4KzYa!P!Uq3M56oH3|rYIfPpMHz*E-CKy z)v+XcX>Kn2rpfhm_!nnnr%E{FHXek&#ZBc;y9WgXWnZqVEu%-e1YqF%?y8DfHy?O} zC5%|68!r{;3O#GC1uMVDRndqmw4;D4#b0avD7_rB4Qf9x`zcUcOv+NYby4iBUn_2} z&s{`dcO;CvS6bzY%bs%x?!ul7DvosTSS^>?Iet4KaE!`R+a`=DvbVm$=6KZWq?k9rYo7ieZy>miK=fZrRy_cPs4DfV|PzZKFU5H9yekK zZZNcKXPk=LR^Of{h7APRvNpADIew(3HXi;NTiSJD?1yx^TAKkl%D_Mcz??@PEsH;9 zoDRS!is5l-TH+DXX!@T@KL!j{cToJUpR~lWsStzuEsu;?kQojicI*kt@v3 zPA0y-Y_FyIQo`_oE#&5`-E1_Y#*!7ds=+MYw*cd+Qt$WW2kLU&if@1JMIodKayXl+ zOm-V>?JGYDV%Y2Qy}h_zH8>^-^(n!44o{BheMft7t~N?3U6G*{RCV4q!NM=q2J0j; zt!TH7+TtSLn__ZTS<#B$!(s$Bs6BF+3s1j&)LeI6OP_;RS=_^Vja0WkRk~fK|9fX= zN8&;1*tH#zk1iN2N-naL?qzQi4v)& z9ksk0Y;>Y7|Ip94`V!?`u|JsVOW$edzGpg?^8WPT;P7qX&!&f|J4D$h(1+0s@Nkn* z6+&^nT~OwyNZF{hS$XY!wl@m@rv>0{=PW|`;w5>n+p;~qRc?eQJp%UIn#v5Bw}gwv zyImt7tBHbM=^1h(xn<9Vn1-k&kmaX}N(3dNZ_SE+{XsTA3krV>?tgccGc4-Tos324 zch1|5e`ahUKjAU|1%n+&lM)h^U>~xDjDD4VKuU5m^NhJPsvEN2S$Z_Vb(_D&(5tUo zF@<|%O^yOL>mRf=KQB?C#A)rDsk%(| zVS>z2^x=C2XompOem;^R^LqTojqH0BHLq)ALh0uW3Z4}@B`W?3O*8JVR~*g3@qXd% zHe$OI6=<+ffbA1}Ih7p!l*3@Pupq^`XI%5-_2x%d{Jvu$eq1aC;2KqFDt9Zg{(Shv zE&jx_x%?(l;|noFEIUGe1X`Uk+XmgzZNx`C3 z@HAH(CW=I2L5DLL0Yep?4Pdi2}=@kqUT%GF#ak+-wocNwXC|p zgg@(H)ol$sBFxI!%AS$|UFPX>SGQ@D3&>K3<&L%GkmHl%#gMj#3cv=Xsqc3b>4K*j zPzK(#WTQJVcJ@MQnU|cmX=R-qNsnsgLW&umqO>w-M?n0dhPe>?qhK#*)QEjlEV=Qz zBdPmcjsEFLgwHjlGYmtdhsy}aL!)~@nfM+mwOw}!^H>9u?0wl8<9Vr!g*Vc};Im@V zchzKxXS*n%ML!CJ_&fVtHw>w}Uz^GfvUISY0g}AQ4$$HJ-)MB(g?ko{BEOcV$`ci9 zP&X=;oc!7Xk-ty;JQ6b#QSvxdY^Bk{ocNS#hJ1>r&>iCyf5PT#FbHdO^bP$r`gy-6 z8(li-MWqt1f*lf4%r7Lef2++QqTqZ6Vx(d``YayII@zDkQ`nzekRm~@*@eRd#}ClUh)L>RpzWKG{9iYvHB_GT<6# z+ns`jnGx|Qx=4dq%JkcMjzYK&ciky&10$9}*4Yp*9RAx-wrQ7P9Op!Q^kR%|Pl zYw9ip4lA3T;pyX^DA*?Y0F3acVGO~ z%p6OVpHedj9WqAyYW66mFG726vj$M6J~aZoQSqP=+?24BPDu*j+U`9Jj6cq%n7v)? z=b0=*;+<7LPptjh{;OX3Bz9Hr1s8hg(`+%shoKWrfSVE)G zzO5aPlrb1|%v!5{>`~U~K^A!?YahT`>F0ZSjygZMj@w=F&@6Giqu@gim(0c1I;So0 zszfthF-dX-vrBB~?2-NOQk*qlj+zhh_T_I(k{39=oQ$q>gjhU%t`v8;y&M{K?}^tm z_t?>y2f%QESvM(>vi$e%PSzQ}W*6=~35|z-@gDAH?i#XRElorJk$hDNYt-5H^jvY% z5m{N~wU!9U(i@xp+N_sb`RKEcbi)%_@8Ji>i|zvtp7V3M`81}f^R9VQx)HE$Vd21chUd$!%PygLOC~#AEfjs&&+I-2jvf}+*s0PfS$@!)yh|=#E@Nt zc>Ux{LTa*uoY~U5HuZ$w^yZ31cSko^D26Fm%hFmnk%UI`uVhHWD8_&GSng7a@@H+D z)Rekz-L;t>c8bxA9Oe4(fcFO5RZcXYp}!7v++`sX~H)SNt7| zKOr3LHpRi9?$yHU-+MPK?YfB-aI?1i>!E^m_rH}X?2FCM1Cok|2p-)Ai>mv|3j6+T zLt+%_5q*!kyg7)W>siLOWVqnRR2yTa+SE-g-jYQ17rztjIKZP>5- zapQQjtgNi{NYPjBoU`Ni>s!+j zkx+IqO?KI`Y64SVFCk@&Z5?a}h(oHDF7v3sAZL%T=Ftp-99KJcn)K_*@ym># zBbi3O`rF(}yhjehoznyQ0n2+5H{=vNLmT!dcB?lq-WRfN0wSr4y2)+Uc-DTq&W5!L=gjO1R40#Le%DDhWy4_&UwWsz3Dnr|A0@hD*0hmPzK( z)+VeVlJ9LCq2-+phc2r|rlbTe5HV^PoaeS%nza$=utyv8H%Yj!PN0DfOWrO+8q6DOI!~$P%M!c&ai#Xl<6!XUdG z9ymthUBccL`*tb4%F6sF4O;lNJRDg3t~Or=r;aeWq|S@nNsujBi9X__e37*FYo02? zc->%F3-Tyw(y@cfGsOH^(99S4OdfPppyL+a=7(9r$Zy3fqJ;g-0m%5#_kwmx%et0| zr^p+W`&`RWtn)TGI{xU7vL!%yZuvul>@J5u+jtwAeEYZ5Yyom`R5YNUh>gDSIr3v+ z78ug1IV?zK^nj4bm|uT(}CSJySktY_*7drFvnz7v@|aIEKAUxsrq zsj$UWzgRR$_5*kqXzlaeFbzw(q)q+$F#9bTw_GdG&7gd6;Ev9n3DwM}`=x^Dw{p*S z#z6MsoDwA?_1%g~WcpDEX;yFfjDZpdx>D(1V3Rh6KmBvXP~KPjIaItT`R zJzRJiDbf16b$p95T`B`gNTWt=UiK8cT;;Ha6>5to7Y4I*E-06CX=01u%pk1hyLZEAvZ-~1_ zaR~s+j@J)V2MhvB69L2pUFrW=HGHvq`r z#X&E~Mtg9Wy0M6;B(3XSxVOH1Fl{tDllcLaIej~Iwlxe-Q=ld1lDTuh_aiC>UJ7a7 zhr$Q8`YcL9M%1MqcpItUExG5y)iOg zGcM>j5Bi3{v1sPf9M=iEG`56-?0(-TVLcs)mBRN$T8b}kneg-tWiFO~{%;7p7f$qd zwCx{f%4XuZ>tM~Ss&`3R<3FleAT_ z@3xn!O!UZMNSoZ?9Pg$2fz|QUrk~|VH_uuJq&QgOMZ}qVWCz4fyLYXE+$7-5*1n^+ zF~!d#?vYMA$$^8|P1|M7G3|Bho8c;49?#=(d@mKavvV#%RHCm|y@pZzkBlD}X8q^A zS(L&prg$7IlDo_~x%h^7O zbe?RAQ>#C5ehbZEFkYT-YnIJfvpQM*3a!v4X~TGfy1~klx-f0i=bmoR?2oJ+=eL0ttXbDe?R$+VJqq3> z{BhU`DT`((ah3|+6H6EteOnM*RLRZ!CWX6ZcYW{g;i2y*8{;eQ1DmJ48vdje%3a-~ znLI@tUuCBjW z_J!ISNV_&6=!@q$Y^4P6nq?MVW{&u#HsWA?OUu%S@n(_R(}5C093g~;1c+Frh*feM zKPUl=Zx#G^{lFyibwpHgYsZiyBlC}8v7=`;+Sr0KN;37WDHG}Wq9$7zccJh8Hj4J# zv|kAEEJk2g38+wXTwDF+9UH=#-fpagP(a-@ReJd7`f>i9s$iWgUv&N&==0>ZNbf=_ z1=GsyRP;%a1MkNGYF!r$JR3_hihTeHpx$*f`&CWmH^D-$$+l!st9sX=g2DRhGPcOyxN(N{Mp!<9{~@l&(PqR zwhd(>L|1ahu*<)#VWkv14$Ao)EwnFh#!>wQyyq_|UkcMHtz2+YoSm{(3{G;;Qqi^| z|AsWD2G)vj*)mFO(7*Tg)B<<*qDU0&*NQ6l_+Rn( zvK9pwxdHT|ra+=ts=Gxn$C&+-u(r5I)R4~kR(~YEz^-^F=C0@;%H**0o2m(bGnJLa zMQv&AaF3iW&3FoG9=+}f{lK|3 zVD!8xK5oU`qIX3!1=y_OTgtc*_9n(fG7#}%P4Plaacu!lK~D=Jl5byvWHGVs8?_fu z!`2!}q6L&uu0zsPc~NVmXinpR_rE?pstsCKza-bkx*rpm$pTX^1JaTJo(HF9KM@*pFKQ{(=Q0&(rOw z@C|FNjP8C|r|eEv*(nek+)Bj}Zb^+u&+w=vIln*be-)BColXh-_5!bZsigmNdy4zx z$Vk}GYJ^B_Zi_!#D9bAvLW_GWns_KEk_xB;Kh6i5`(6gM*Vy-?LFLu=6439fik=VK z0*NFyM>%;eS4Z$X1I?;t(su+x$|IPhtPPsFKl)RTJ$W7<$eqJK?@zeclgIM#E ze}{2A{x~`r9CU6BMz27;H27K`&2V(y>}7m?T@^V0u}5&QeUFCem>OqSWyQd^X$r_2 zpQ&Lk`OC}8JuTJslv-0H{@X3!7O|LC*5grP@- zqA5(i-=qG)XJ7PBPJ%lX2-2(aAc2_NI^)YqtunY>a!06--)O1QhQH9(Qwe&-r>40B zrb`!?a#$+h)DC=WTaT(1-6N=NX(q%UsFi@Lxuky@m|xTf)>loOyW8SltHxpg-h5xH z*m7-rp}*Ck1-Jhn3CSK@&|8;-+KSW`)gH9Rh4I`7RJooz`@If)#g>6Jx|c9@NX)u% zt~k^)tEys62W#btl)_jN0&%jDx7ouN8N*lFXV=#cH#djF!}IQXA;%q&8@f%GIzS0I zlAmk`=*x5J$}TRnC;u-H6V!2 zMh7mpnRq!~kBN>hw(4iU58{5QU2>MlurfXwjjwBY(7(hT>5O==BUnJ(ABz_27Chc^ zF};}4(Rz;3l5Z<@Gl^C>r^=b~>GEyNU6WV00}%$zEgf^M4#@sm2?j*jwQh$_2$T{B zhP^3`Bs|MhUPef;t{Tw#&*ZfOU{@4-c7gp-i{l&UULC<3A!~v? z!d5nADJ9*dcu_At+L#rkys$6dry-{g??@y8fi4GRhw8R{hwE>(zHX5;q74^q1=W8u zPXENm9&T?gFN677@v{LtSq#R!zTVbOGJA~p)w3Y{6g*_4M^^ZS;?*k_Lqi+S9#RK9 ztHwxJSJ#nx{B3-gOC5xH0rbZc{FcC^X(K`) ziNCxL9;GWKJ;*aIv;%!6RZqhLaJdWC)S?Vm*}<)U;MDND>1^Q!+C-%wYSk_$G;lqp z6N5#v!(||b>)FnlC8Yg{HL3P*=Jk%*GtW$mn#ZI3xf~4;Q)&1f&U60JjeNY9{2@2F zw>O?o(nN!@-J`zTHK&g0nB;MylQ@}Dayf3!oRu{RnYKZo?$C`*hEzAFPuYhGh&4brWvZkm1QwO=u>Uy?p1_AlC|9U^^xaDijB~ zwoQjKT;kuDKM?G?B6r4l?AY3VqsjCv83yUy ze6EpoL+pYUefIPus}nowBXHa}i}4Q_RspMMhl3J0jo2kLO;%&|Zxco8VOJ+UrV75) z4h?Z}btO(>fouQhWU-#=VB;&|0>?((V!K?mi_t%gM$i5YY0IB6MIZ;IH0+jwo8CsC z!ej~LB7eQ%~!Yu+sC{y`hisx2wg&9?K@zMUKV{&X5liv}^Ss8^wD54QuJ-P0b9}sxNJ7!8zg=ik__D)$X}_Ke+JK%TfCQuAmYnym%<31T2v;R5iL2lILe!P=NTa z*WXy9)^U>=h1iIsfuS$r_}Kx`l_#M^m6C9WbO!uY#FweF;d;rd*5HJb@Y+q=kP(=G zF}WOat|q*nw7z$;e=ijdBwyH4$$xDJ&VXKUSwB|Qvq)PUgyjyw=(fajUj@xQ1XE`6 z;Vll92{XEpUp&~yxc`JX>j!EiII_EAbJX@A-mRQN0fJ|)K~4|WxgfWeR;b&@NArlI z!S%IWc8RlQ!ETM@auIJrpG;nu)acoD^!?u9?Pf7F`ACOhKmDn{VJa|ECdthxgxD9| z_6MDtWl|d#lLh-v=u=q5!eXw@rK7hkMnORTt_=bW3m zuaCD#%BsjYX6@OCU$-g#N*L80q)3W^F`+f`<2=QryiYKe9nWuU68fjam{``Wi97of z{5pfXR|y!7zS*-{ZC@fAm$MXUyl%E_pQI7N!VL$%)Hf~tOAbP#fD8lY8J*F=MxGFc z8io*-&lh#fSdr4pTPS-I1<$-?O8y%=$PU zl++!Xe!lsv`Njs1@5b=A*+p?2cQ(5ou}X~FOW|1aL+bE39@yE7Du#yPx~whc&W`Gd zulCc?#xETCeb?2W_vZdkyz-iox&cZtHNIlPFXOh8Y2+4i*Rf7c?1Gvvn(OgU^e9MK zp%?j8^)vUUH66{Y!HxjOYI~+XC203w>YhS<4g0^o!ZSa+E&A+uU4zhdAfyf~96VtY zQb$-~%x7?4C)r&W!GF>gb(7RA9677c@y>=YNjkCuIIP!@X_T-q$ZG_}pC%2g^s?kI z)Me)T=}z7pHInl}2@mYLw)Q)Pzlw&4+}V)#!>d6nCvIi!L==RGegA3D!qIdadRcxp zUh|>euZW|Gl&81)?ji~4F<&rxVt>0wztAdTxf!I*NwM+EcYN(gKJ@-*Ov+=ezIxy~ zQMg9$S+!nonf5;qEZco8S`Kfsc5}-?SrQ~4c!#k63W?IqvQAS<`&oKyykQ|o9~+Mv z!M8XKRL*2@D~)Otf1aAjAf_!8;?4u+mBV<;oXcaj9|yV@!1%W5NVIR+MP8%yv4h$j zppIW5|7q+>d?~X}BbXuqzCWh1qoYIcotsjekMP+R3t_|e9Pj&tdDif6ZN|tow{Ly* z#cr*;xJ`46U8P+m?>kk9weCo_mA=HFS?Rd2JL%}p7U*%}y-yKzx6eKl-)Ob#HL^9A z>0D)*i@#m*%Wl0wN|c`ql6=ozmGpD6r!{wa$1hn+T%i9KteXF%5LVm?1p(Qj-3fvx9bOLE^-RHUa*9r8Nx@n5}-EAsG;IQWkIi!@>E zD2(D%5ynlhzl0_`;KF>5--ZnxL^;|X?Z>h^Y&`2aL!|vya%%eOXLO0kI=a~T##kE+ zJrc}E#7{qJN$rjM`Sy2K#(?CdlkecvZzf{lX$J={A0@9z_!yG*qyE8faZL$GKrX!` zko~A2Db~`MG$lo%7nMwq9}NF6D`x!IF__=?vl95WMu~>I*TetQ0x+)gWK=0sj$UUX0x zjfKB2+W4^W$L&&OkX{*Me>B#)%JvA#>q4N<-mUViY@?RFd+N+y$Fh^ynJ=IL zE<)jgNLV#~Du>N2S_galHtN}1LO@Klq|!8j>0bh8|6P_+KBp}?!~7WX0K%A6ip0=v0Y@I)a5O`WOm{WTKa5R51r$|IM2ZIh%ObI|yu$dSFb#h;DH3Nr z)0%)@-P@b`v~wI6U%GIa?Y9Kc!*2VFzP5n_%H8{}37anos(3+J1hkl)CmSd7;!Q?l zmbAycuFPb%a=|y`6l3t+=+=b&Yf^8f*fB0=uZ3})YeM1<_agNZN7MC<-ejSHTZ!23at|N~& zTk8W|uZpdOigwVY0&%(WM}h9%tjug{-)iz_8T)(cu1w;T8DbQM-3T-H^bG-yZ2fS- zb62l2*YFo4jN0O4TZ?O-B)!@g7B%^4=nRi)%DiRFez|E=B7}YS#oh3WW1D`_7?IlO zE9ANDL^QydBy8xd?8K})J0hzlo)gqY5kSS6>+CqFYJ&cvlBp@h^vi=<$NecBrbC?d@;p^Wm}rg0i9ij>>g?=HsuZoi`s%?&xV^3DunG zt%7iH`6qYVZB>WOxvTRvQ#~IAAf&9V?nN%#A0sZrs!r6BuLL5(;^M2gV=*FUx8Qxj zpi1|GkV6*ThWUpXoZl(jiCFTPkC@6{ABX4uorXqq zq2u*iB~j>nVQl0qny!ADg-^fS{%CkhL!aA@i0X6$_g$FQe=Jq<3}5LVSe9udpU)SjjG zsy$1M*r7&Z)BdOxMVm^HqN=E(O6*Y2{eSTUue|YzE7yHp=lMO4Beo8g{pIH$a$ZpY z8svyA6Sj18ZHnY@E31KCufQO}w(JlN6K(%#Osb*2tJ;X_%y`>~(J2(Jj@I z3glq1pcc>`+0polWp?7`HG6tp)E4QBd9dM}1Uy945?-kFZyP^gW6_im92{s)l^);j ziD$0yR4#XLNmE!kJ&#z%?u14D?N8diF+cR|^!OM5v7v`S^mlWej#N&=L{fl+|9h?J z>6A4!N-z)4{H9V6cP8t8(({Dh3CwA6PVC3hjcV^NZad#P`REiL!HZvA3HigzuTV0# zV2>l+RbLvS!m38$qP)-}zx!$Cl5#RL_629%_dj7bdD6OH^d8ofaV0y=W0%6Y6KUe- zu{(yH->*7zX z6WVxo+4C@keg`N3&4$%|nY+L?{5o~K^&G1t$?r5??I=;kpEpm{#Gkz$#Jzp_Cv!0_ zfl?Zp>Gm^3eRLt`W85l0-_u!JVfXt5YN+3zmu?%}rfSR)xXQ{B_z^Loc5U}d@jzc1 zl<{*dTY>~GOse~-+vI}ccwesYz!4U$1ddYvNS6CE^R`ZIM|gAcDJ7THk@U_y8y?8=(FvsPr zMU#ohA^dbYL4)Rcv2GP}iLXn^puhkAd1h4++_YRFZQg69ptd{`$Q&liIb&Z-h+=yR z@_09qRSWthUAUwTtz6Tw)MW|zUUj8l>t%@Qovux$t?W_hu&M2bi1W3^x0LVBVy72m z7ZUcCv=c(CMzD9P;C z_#^VMr%L(shljgW40dW8goU=Kg#kX+r00!R*M5RwXmr~uhf3H@Q(Xj_3tq|qm*`o; zVI}l3c@nIU(@F*3bhIC5*lA=hC|C$OmrTa)%kUWXg-=6KPKAA$3=iYJP1gdHDJf3| zbRMGJdpi$q-kX)Zewt7A%KUY2SUrU0VQU|gF)zO{nas9UNSYhu=i1>Eyr4Q#Px-Tv zyh|>~X!5!>Bz1z9)>b))ET5-mdP7iexPJ|ZHfwe8>#mSLv?YI%>Xm-@AG_!1vx%N# zv^YI(Nl8yY_+~7PlgU^K7K8@CRQNt=8l5z&qjhg7-fZeU$i@ zU#3tV4#&B?Jk8NZdy2#KL1E`htKR1_ztw)9xi?Ja#J_kK#-d@t{5;xND||Mv?`;zG zwn$v-lGlz-+3SMtt`OT-8FNkN3s`V}l0uA;I4%X}?~s2AOnL4`7qL;9X1%|AxkD=O z4C`K$Bw?9bH^#og=3zeINY0DXgQNX@;QLE2ABX3ZAa z&-Km2n+il5Tvo8P`9cOu$S2;S-Q&jNrtC~H{~R5xB7KIhC#@8ixh@CIR9wFqVz5EK z`Mq3Rjlc8qG@qZg>ETk-H2ogerAh`dYcZ-mB_kw=ZI`}kogpew|I|f|f$98BRA>$) z?A3_-Hu!fGv?)yN{FiZHu*lxn7Ya5nGjrOTWP1{+Y%D#}hfXQ}ak|ynvikQ&BCg8X z2jX~B;uS~$=YKzDL;>w!KRC>3v88rnl3v6tBQ#E8O?l(7(+3~JG#ZG_=YDZlJFm38 zE#h)vkqEQqt}7|1I1YV(gfrO|>D=_irDY2A+vP5p#l>Ta#+lyy&efOZES~&!C1%M* z^7Hh5Os#B@1H}Zd9oV_C{H|#RZyyaVA;_T2cb06Y;{WSIhH}Q&503xVhI!}a$f1$V z>1BfeB#ob8Nu9qb^5=Q!VU*GZ#95Sa@U?f+qb$DZ!W0mh@3+d%3xN#=Q1}*UAI8!)}or^u{D+5 z=UKPKWY4O7w{l^r&5h!IyU771_q|c z=Kuh&z;4=)`yU|7yIhls=K5cZcM$k2o}Vtht}TpZXFAf)+<(8Hv1nv*aen^JR)KMd zC>1SZOmMaSL!P}}IgY&jW6i(YRuUzC<;`yRMkY?=?4jW^mf4D3o4l0L;dgUb)B%X+pUN)%^5P>|(i8S5pfkS+}4uuKkJ3b9G{8G z_e+d81tlZ<^E=e%L%{mQhTtrJ?YR=mZk+w9j*8K(!h82C!Gh9%?%rVOV7HaKv3Kur zjtTN_Xn$1Hz_pcoj2i`>oY~~30|J--d@phNQ1kDr7kKC7tBb|2Q|o1u9x>ME#%f>< zzLoq$pP&3AUu-0LJ48~BD2l@EU;7t*)T5g@-a8+RGJHrFJ=%o|WhKy}F$l8D)tJc{ z*^Rztv^*K<>c#e_4zCjhpkr>UHfFTDr$=@6{9F8eoGb#hl5M|zo3@Mz5R9qsgj z3-NsaSB=r=*6X*|wP6#~yHfX0JVeXKIistqYv)cU6Qka{fWn5`qm`2$4xeqn?aCf5 zf&`4^s#Y6~xg0LLAs||M*t(()tueo)*--~6n{cu+TORGY(<)*za#{7_ii0hn=K ziQo$-l4j-H8Lt%8m*>! z>C$z^u7A0@Q)IUxwYbKQ`5It)@(@QoIItf;8~Ls)$c+|4AOLEZjMv-BdEc1B(blHU zj6$7+p5UR=wfKKP&-qP_CvOfDZ>%x2b*OY}bo3!|Cqj+CtQc^`b-aAcb5!WSW#WD~ z(>nO{TLt;_{47lEB#qt-Xo@$r&$>^`+CGR_BFh;9KVTqrzSD?$+WQ3hksu!Q2n|fv zEtQnV2!K0;Yf6#G@uZ(+($%-ktvVu_i^@{>+^N1*u|0^vI~Yx7(eIew^7tL_ z{ZvThJl0-qwe%A4is}W3daVj^e`+moxu?fZ2DNz9&!y=)d#%)0Ds8ZWJ= zG_KBI55U>)CK%(BcC-uiP|`(7Ny#N0OMy}qxir6Y8RW!m;X&2$(U3SzYtLe zOTNTI|L%y3BMvPuZ-8VR)O%=8B_4mu>GF4cW?{+IPUgWCy3JcuHlH98LT6R?1WZaa z>yi|*;9HW1R|J+wH%JC{Y@!b=9@+htPFGdzT9XFDYSo zA*Hre+nI}PmaHsmo|#3q#4i^Wtz4fXFN3*Cq&@3!ZdETECM2-!-P25&jCUHKA3Wrk z#o0tOR_~NFwk1>t;@W(`m+%PGV|ir;%=R|o zeqI3DHb4?5)Bk2LGJNr3b6On;8t)&F=0nE9RNn=t_pVSNCM17z666QYvk?vd@T(ON2`qNMmB&395o#-_(7Qo)U<7c z!-fK>teOj~XH2QIFv3W03G4cv$Xo;x9Vf3#J<_2GX~Hzs^h_!76wlo78!!A(igayW zAGm*Z&)gUAo|T^2cl=SEQP9}>cM#EKr9R{M?{mkrjrP%K<)H(A{h<%_0MIf0^Y724 z&4H3ldLMnFFEAvw=N;sz)AUH(A+u976*eW)-lLjw#VVeeK~x(W2o;(#E3MHDs*zE1 zNR*9@3Jco|&IE-hzo{!r*vcM0eNrJWcrv4KfnTjHR|Aehp`S{(Wfpfg3NZRmjBSJzd3Uc#XX|LcuDC#&110(y%?vy=X+v*!(e%8Qs#2LsOD0hJxBbyhDSTBsPRqAkN# z`yvS_TttnbgZc({uAAQ!d5On6PbQn$237%HD#0$s&s3YkMag|(y*5aew?9?Po_;C7 zy(1Yq>snsh$Q^O|x7qGDg>AuitNN+*-d}}UmeIqIAxyzil%lXkEf3^HEajoCzuRXn=dX~50QY8OTW=6pkOU6lC zADrgJEl$TCb&HrS2pjWN&)##_-;2Lglf<|alHRg0TYdt6WbmYu;#G9~@V%FTZa1tecmW?tn+in#K+}3{q_G;wSpYDbyNKl`RdW-6qaEG z>2J8eZ+?z;{zma=&MUiMPEhvw^G00;51oMvy&84UQ;;yV4k+7GLsr16Z*NUd+Z5(W z>qu)=uL61}Zm{Nzrc%%gj}I!V4dI^5BR{@~T0ZXYWI_bjl^*&L`JF}U=E8|VFY6fb zRB@KH^wqOz==0sDF1|=Y_n)2Lm z0W$l^rVW^*mA?@ICX!$Jub#fSO6)jeHGm=-vECho-neD)MyfgB=Km07QY17*bjqkl z-01KdQgmpE`_~yw=^VV+@jZUM-q2Rbu=POl4*s!uQX@R*fgb-)OMa{*zm+73*kU9< zAszRA6~Tp0x74f9W8Nv!GiLyU*uCP5E22DBIxjJT48h#yCoZ?6=^vsQdcPaPXqxNo z-gbOv+k!rA&YRsy#hAAqI`ro3Tq;sm1qjmmrrAxG+?lu3k(o4V9GSa52Vm7D7AvB| zLQipn=eQyKZ9&_FEnpDXugo7d+>~2Z5SrY|riBWMynGiOaeD9#YX=Q1+aRCHT-Qd+ zrL_~9y*~=J-3Y6ZSK9!mJ$^fUX=fA9ZEB3~_jM zc=?W+%?xapGJFeGVqv>Sk%P;LSPAyDK!W_j2|T2D^_~&Fbn?h48dPpFZV~UFtpA~F zG)L_jLP6Y#l& zro=|YL^fopmaF8TyAi|6naX7qXWL+*d=e-_N0VPSAuy{rfw+R?;;f zIb&z7VL?fJb4&oRe_*jvmxCP}x-0AHKfTjhA4u^|mIjPJO$T}gyG(Y$xuB-iJ(=li z=isE7AT2{l7?k#nne{rAU#>!*cQ4>6lw`n3jf8aDzPjEco=WH;RI-Vp{F4g|vMbSm ze%t$I@yykqLEW~-wPd*z%a{$%WNG5WNLSRxU^@>?pBf@-4v|UW61`? zxGmMLXupX?LkwhFFmT_RQwD#A>C=;9kar^ip*yC^W zbx)Ht&|}i)+v~fp=^f)qh7*jzaD^iHp?5Ovu@NFWVEFOm56C3uclaN0juwhpE|#P0 z;CD0rEyUs_n7g<=#^S&5^`4V^yL=E+!I9!*=9-q}4%6M;-Ki4z4;A~~@BO;F+#9@= zd@VqRzFyi34FFvmBZVq2obG~Nat3}y^y8I2#lDlmTOqv>EpN8Yf?Uidgll(uo43+F z|F@>4ThY282l4#6pr&$!YZJ$HB(L~SNwcHa1d0&w@fTZJk~#Nor_dq{R%~uqs&4~@ zhpV8a??sgHYby`t>X@lCSD8AQp4tD@VsR68K#ftG&a z(yxb>dv-fIU6+-aPgX`9j#bbYv!`bopArd12RUIA&@*2hZM%o@7x5VGp3&F@qF_L|FFwoCli^*aAXM9B%ZTl3=n zz0JkVZ&QgP%+VekgS!>Gp$Eb3IR2YWCGo>Yw-oTQp!YEO0zckQrs2MkF8mIB!QRJR z>K-x0t16Oy`r~!Q+TQ0XnRa-AU!fTUk>%sZa>lsAb#mw($Sy$OWZk*bum%^YQIa!4 z>VFq>Yjs0;SBaABQMnksZEct0|H)wVMc4-~|9R)wComsT06ZuG!TU+hQ0IolR6VHH zRbMAJzfT+|C*h~B^u+Cj!s|i5rD)rwaY0nC84C1BQs=V|j-QnX{`uvM@Mv-5#K!lj zZ%W9N&_qLs4Q+C5OreGNeVaF*G{R}zE={hl(6mXZe2!LBJs+}s<}&uo0sAJKDQ=9O zFhkG!Lv?L`fO76P-33c=N$Xxm1c>{UwnP_4pPu8U|Eq6sr8ln?1j16&Rh?JB1*5fu zVEJ0Oh@y92L4&%X87!5+JzMit7qt@BpN2n-Py^Suc$Z+kO}1?63YQ3}0IpLjaUfAH zS#!lLaM*V3lLMM$bJv>lhfxl^$5s+}eiAj|&^$OoJ1ukq-zL63rLNObO8wd%v&5&P zE7JWL1Tyyxc>TlXWHJ3_{HqwSZxshM$d}jr2ld-m*MXr`g|YC3W1zbHa2Uu=0!)h4 zO^Mp@sJRKt3Q@IpzyG+F+?X{bj3 zf2k?E8I9B$o15vUlK%}HU#%ojj#e!);sc--RiEqg$$@2~U5rDAoXYNKFrj`Rm3%Mb zwy7uS9g@;#@|o7L!|jUDpGZRc?I91-R+%~p&cp?g#F{v_;u`YdGxSc65tl^s9ZY_% zPRcK|e0DMd>0Nv!?=P<1>X(8cnLMqIyEd-mAXz{@6{XwVSieczzg2o{U)g1}b4qlG zW~Ya_4D(d}JuEh}0DroOJGsqnwzvdiRwhTbX6ew_R_J%%cTMa!+P+`IC@L|*D<_6vbw4&Fy!uP9d$9=^IqB^d(Bl+=`Q37+ks}^!b{P`_jK`ZF_y17 z#aN@Qs1|7&_>&kfUtg8*9YT8(J1c1A2c<{AWvfG2zkDJCKcf?{J$(Xdr zm~R9pHCRpn+TK1UL-K`a;YO&nGoEe37K+I&hG!oOk2H07lHSZQT>w~*l8|IHvK??gs?!SY~#f4^PJllNyE zmpeIy|7@kS(=6N=y7xda;M~WkCLI%06XvF@ue_3~I=Z7Ns z>L?fPlvztOki3W863z2ML(v)R`4~&=@-4zq%*jbq^P%0G`Jba}Am$Fse6Q@7t0?p3 z-QYz&4LeEgaUI$Zok8xMCSJQ2KFbD@cUY#)QSz8gEIIu%mcMEL2^tTpczWL}POz&PxmH6u+!-3O_l$~ms5y0RYvc1bEU1W` za2EgkVkExbV;)xFSC~1v_59X`(ll^u;`(fbM1$Xpj&K*qe|>R#<(c=V{>$-17XNnl zMWeY}ecf8|{=&3n1VnoUWw%@Y#OCEC!*15MH;+YxcrlN*4X8}shOjFydf2YsqtSpu zQHq~#q8yLkMTg8?9^l+7dJK#>Z@@nH9KRDmRd*garO$o+9a^^bmc|1Fq)zkBB6{c6T))L|v8**$3VnW>YVJ^xb+?Ygatr~b z#hH7tEGXL`O}NnVj`P=FK-sg@m>tx+3Pn0%UcJ|_{`O=7e)^whTCW`sw>#t8SUB9i z(gNXX2ROrCG7>1+6Dm`6dD4hy_RlyD&Uch$?M zyvIFG5M?ClTj5q;Siq8vfdDb@!@V(&^C}>m{PwMXJe~qeHmV1`_CN*-xS+ue-c9o} zV@xQXuQlb}^vPEKp08{w<(AUo1lCZV-vGYKzXM}+{_D2{0Jrc>2mJ3DPBhCqW%tqm z$`D`yDF6=6K&oZEw3(Rm?rp7SSmXsj+*+-Qj+&1?JGd5mwq`u-5FLGShzG(i4$Dg! zLMleRK`IG3AA}DBOO`tx5gR)0*{j zTgWzLU<;vh%Z2wY6*RxJ{ikv=zMZfT+F4BUdHm{A^pOwM{)*$vY#&~R*On|)G6J3G z%Y)NXspwNY4tGPFE5V>XRiQ8X?}b{&8zIr8NfQG@yqv0<+W9$odhmST3|0C?#&Br! z#XyF;c{fRQ`|S0^A#Qh^lLlO_jwx5WaDWVlUj&^4W%z%GTga4nC#ddXbWaLmg*7f}X|1*>zH90rrWzE$7$ouc^h)^grNW2CuXf3(o$ z)xqS?X=;3hS?kceHCREoK(l%7#XANsE-3+WbULUI1o`Ikh)1fU!4*)v<4XgH&@nT# zIM2x1dIsZI;*e&9FYV#n*&#n|<1xc0eqEVhJcpoHH*FrZH#1A`8zjjwt-%~-?OYs? zQ5VzAdKb0%_jyQ!a_RI2P+y1xvh&qLi@Vf9dOV=t-liR9Gud(Pi9H|1;xbLnUN!OoVy&Z!l zApSfI-KoUd$YwgF*1ao9<(4e~A776n{ko0$$#44Mx0`M67nwW@n8fOXJZLQ)*K184 zHxaW!G1*u*KqH>ugvdv+$q;Z3nbP1VR_kikGqSWsAs)Dt&Sd0$=~z*K-L?ev2^koDsfEFjX{Nj(yNk94P(8jMOad~Hl(!UY z;uVnPga`_hDsG>Y@`X9}+J_dKJ1$9L8h-Yh@gkq5<_g^^^OM#?ji7c@+9~l@seXm1 z4DdVXMpd&NP!<7i2~AVRp+RZx6=ar(VSs3S%}2t2(uCTLBZtewXgR}&I+t6~7iXm9 z!GA}`zIZl+gpzsgf@iy9iFq$US6>%y2Ti^DmflFs{2EY4gg(8zL!D6^8%?|1WrUGsNlj zEeMMRI;*?78kFJz@p+x6_f@Ek+M*tD>+w4TvR=jf#~NGmnAI#6trOe=+NA&QzePTi zCgIe&rVc&xJ7Qqeyr_3t(2}BW(=2hXl2Hy=Fv$Q?%bw5NcUmoC%M+!ZQmn2)@ z@1IgZU_J1ZW4`q7q0U+?Yx)LHPNve-E|(xR^J zYjG-dALD8;REp|})xHXg{x2Ymqe8Jf?t{ZV32|6kVZ6nZW!-9KM-`hl!OEO~no2hM zt14~}T!A4#{HM5LO7H*hG4Z_e)tjWMs;;84ooQw|e;xbEJRSKZ1 zOJy2srF9VOB@0$J6(#VhS9M#WTl%T_+6mhQE`TxvQEm0q8@S>oy1ecsaxaTH2cL_fy%5H(amH zF6@SXW>0a}+Q;U>4e?>CPt#>LO5vJMU7k&CO=-8eE9lQx_?l6RN^fLySeeY)#N3pn zk-427nqlTcn!%#Gg9U)W5ZXjhIoJ?d(A7;uD6iPdg0aGTXl3S!sITwP-U&8*TTpwZ z!n0@5r*=lpkbH2U!f58iTVquR5;eKz+jSfRb+?U?E9dTv;JY4XUWCcP`>u z2LFYr@Hs5&>1+p0+Yyy`evTSI!FYcahkz-JKfa@Y3`p5NSRYJq6BU=wj0gKB@iK-6 zFkMb_jER%iAH3v~P`VqReL8JSI~OyGfFXBOmz(4fhp1Sh9&MO+@6CYWn$6t*vWZLo zaYsM-M^qL{l}3SbnSItApIAQu1TvfJtg;U_3TMJW&RS)oraFD*UK5)Y%LYLahVm{7 z9(AljGj&AM6y_MYw_}%eY*g`tw2>0YCp7*QkL%$p|D|YFST-T}70l9j&64$lG>N$6 zqL*SaL|eBqx2w~TNhO*u5-$1$=K0X#bZ)`h9i?jCCOpDM<_s35V=x+sHLdSs64ux_ zvK`;#;_*#g{bJK$aWE-Dw~{xHl}bYLl=TJ}FHd~d56z32QLgP+I$R3B{QGz2c(JFZ z&g5FBHzoSK{1V_uofiDhDRjBhxs3grjc~57yau@{%P|v;s1f=IZ-l#+*2*(I287`i zJ21`-Txg24sRgV`Aus8gMP0`gip*QBs^Qdu+_vGmfT>!%sg`vI`S|y9fVQwp`JeeU zap+~z(sJhLs`N-*-eMDt8n>*pfS9mwT`OxtgS=Oj$%7qn2pr+8zp*j_E-uybqb{!1 z!nuOp1{S1Eh%BDG4$!OVm`wU5zAoB%;f3tdd<5v>$2g0!^5l(7xXhovnMFt$7q-b|n!zJ7Fcv>6G`gU!=>P`>x4*FU-|Mnp>syBg{gkX1gpqo8tzQ+b^J!dH51 zuY3;S40t}34~)v~juLT)cc{RX$~QSer{+CsbH6McL{?$!;^IcvPJ%u!@Le}1$f0JQ z-=b;*R}q~ngjkw@cs13$c`)pvG+Wsy@sRLO�i8}up@fJ$4Bkv$zt5tF?Z zkM#MK-y-iJXT;_$z)V2ok@k7F#7ZjtpA9A76>Qka1s3qyRgKLayQ#CZ%LJTYx;Xar z9W+1T_W`h=%=Odqf13pW?1`T*%&#y>y3A;Fm0|+Rl6YnLG~L||#TZ)yR{Efl=La+w zOdpNEm46-3Z%jKv@Rj{Pe=qaL4 zX5R)RpwsG?=XhgvPc#7YItC8YK+egRLbzNv_jYF1`MMxN_t@mB^CXOG7k&IG0qNl# z?|s*BvP~Ry=k%RvYXnF3U*S>JktB$Guh5i%nGo1b$qD}Vl{2^2m}{15=baw!cVk#^ z&azeG+OOT<-tZ9D2NCxNqXKV#CL*?qQRFw;iOc+S*5eP{%gdv}P7e;w&zZR&>JV1~ zixRQm#M;Qe_D*+9K6KVKS-s3$<#l)mQq(-n3tK`AHw7hH}OnYzSO@<5X%f1veFE{%gQWUQ^Fp7dGq8>|>?)y`M zPuF?e(xrhX&nCyqVSa_k-kMeZ%jX}{8?!f}I!Tehi16uYH=r~r9smx4-L}odt##*p z&7}*bXu-ubP+?0T{Iy6gK0bLcxFFAz?`S5-0V)RXx7WVCDZdw1_qW`+m3@)4CM= zzJbGVmf2KNNV1iq!;&BHo44))HFB8Y26^q`P$eTEC24H**sti446p&YwV3@gzRAcG zj@djOK33=|xhmAEYmWMf5Z;LGqw_CfHHAK6SI|x=ZQnbqc`wM4EQ0BRs8Wj~48Y-h#KD9e^uWxWL)%%|4jNY6k?W5SkQhGWg_8Hu2zZJw`KtpYVPY%H+aaD6Umg-m>THn2-6<0AR= z*iNI|H0*ywbXStGp4za~w>vyf1KW8}xvb0EME{2O$)X3h3~25a6~mzJ+BcNZi|I~H zrT7s}s!1@5zG?pxB6F5j`3+zpKnF9me^cJ%o{`r`++W?6b)VbC>m>@*>`Sl1!OcaR zrpR&dQI;9*See}|OW*JcByRh-fKFTSrgMMz;SVQ9Sq46II7RxGEp3S{L1!&oL7 zRak=4UZ%_{`3-ED!Tjv~r-X#Bm~+3hl+E-k*1 z&f}7VI}8J$v|AFL`))U=EugMV&f|$wn@4X`1#^C8G{7sLgZ-y~31>88HReyRWkYPp z_SmhLNw8?+VUo)8YSPKS+-17Q6K$p4DXsnA;sjq|=L79(G4>pOOzrT$Ewx)~{zVNT zTDOhNnWmg*lj-zjL$}>6~KF%PaR!aujc&W`W$^{=Noc(?TD=f zG7mP!3)RHefwD2+JZ}=v{9RD+h(m~lrca7n@(&9&IZ^LiQlc*($VdgW5o&Uw1*?FN zJFtv?{{7rrA&<6Ub7z>-p^yahP1Km0=vF9o2dq;q38bDcBGv6}BbYJ{gGtUbZ&eGn z6QWwIoZoAiV+h8^nbD^>K=fhX)7*PH-8=xRvuZOVym~GP`F{6jDVg`Cn`E1#RHO8} zrfXgR)Va2{_9AL@a#c|h_my_5RNI`)Ti}{yE*t73lQrIdu1cA1DMfrfS>~ObIn|Sk zQL{qNZoUYMj&^n9pTv_Zc8{T`P{eX>ZVL635Q;Qt;e3&Z{pAjV2=E; z!{x%8pt*hYbhi;BUWjR$^f_@@^w8@>VE#Q+&SyFZP0n|0#>q(eagPR|oYUHjc7u!! zR{^Hb&`{j5B~NaT*j)i3anx715U0upKwf9w?P=bnxMuu!J6nd~w|{C%9gs z+S3xITmndRc^MCqKgpx)BgZ5zH1Dsqe&!Bk z;Hn*TO}TV=dAWrsMurVH+BVtUT|toVahMk+gKoa3o1w%QlJsNJ6ej4`X!!W3S%!t& zKkC?S{dm@h8Rom`cBJ+dwmi_k-g0PvB$4s&ScN3 z*T3K1RfWxS1t@6UMPfRVOEMmnIk{M}on^XN=;Q|6O6+EH<`CTlf2z)1z~-U-j6wm7 z*~&~Z->=Qnznf$;kAuJvDS015kEu|5w<1M_)OEXMnswZvcM9$vBhinU!h-akNEYDCm_hk<^KvH!06@YKh4b_mCmm*);f{g* z*YWoZP%p47J?kpdN-O~^Ejd=H9kl+peRubR-u*G$i2jO-eC_q6U+Cl$8JtvZOz}Dv$ktut@Kjy=cs$+kZ7~?e9kjgh-!Y59#o6KMRZ?y~o^-E6pL{WnNNaM_} znHM^SQ(OWlf4Ap5&ECb$mIVd|Yx?VOcN$ryp*q9Oppnq83I0V%hIr*IWx=Bx#zF;7 zeUp1{q!kSDhYed_SwodGYRU8SGuQ{aXeJ|MKPjG>QKS1h;EH2u^(@A=*Y#<}*X7j+ zTe*}%d5SsH{+zZ^@tNOU)p^7Pg)oktJrnryv41n(Tjd zLP%C}4Gw-@%wNJL&U;BaW##H0g$Da?0og3H>uc7WeF)>aC$}~OoSY^g zXFN@>!&hsNw%YfWi2}s-0Nt7)Il>}kf#A8w{24g9Mtbn`Q3|GwLC;nAic;a{f9HHB zFR|drWrO=c|H~Y&p32Cf!@@k9$O$Zv3BD>q2rocavuz=UW}tHII*p;XGFu98rl9`W z2YEl_gir?fIiI^Mb@k**0~n4JwgS@c2u7Gr%= zbMhvMJ^vf=i?kH3V+Hj^c{!ig4=)I|(6O}9=3Q$y@c?D`Xa5oUuEqEn!L#}%AfYI@ z-yyzzhE;4s-ceFM-fd%C0bQUrNJ#OBAdbKv|E=&2n0jkD#?Cg8)4G@MqaYYxv0e(i zU%P`_@O&(?X;vClQsQNu@5=4lI`h85+c~WkudgSY+-LtopzRLo``(@(@fej$UXz(7 z!aay|?hlY9!q2_DVD-5oBA1GG0m*{28y1r7qUL~|S|T1U`r-aaEK~7S6ZZPziqE*F z8hwSb>f8!i@dWiFs4cl5I-(_Q;*m`5Irr z_~macIKzERbIeahyMhW}_sdY4?Yy6?eH&yl!i_R(W_+9O`pUck>zKsAmPs~&N$Umo zE`_oOC_7{>Km_g)%n5$xZ^c7*fuJ+5?dw_3V%jJ}X!4D3hH%S{w#ePSV{;4GQweD( zM8p+kJ{`cpFj(Ye^pxs5SIG z>jH~vEM{HPUKo)6SV!H1Ao72yp1_73n@ES@r_|_KVO3{0FpQ@*H+z22n=~UAAJTUn z-U0d^#$9wdb!X+MQ5I7%`j+hdSbq@Upz^-WwMHVT6Wvq~} zNfKgivoKy&*dbo>j_wGcxq>(#@J&nkfV9t*dV(3|)&KrN4Fh_fP zrcn8e)lrDcthDR_3?es9nVNXwsEbgYK3B{8_#&&VZA$-eUGbhUxn}P z^>)zeeM|z!6tejEQ&s-33z_5RW1?WM#yrLdyu0!W_Gr6wM+-lujr1tI*tzLt`U?`fw8?%(?jm1zU&%;ZXkob{n+V?#fIA~RA~4_`ipAQZasCC z14H~IdH>%(HAAyf2n)J-y!GdI(qeN9#x_xQjWu@bn-R$f%8r;(@QrOKUKLi(sW7+C zvyJ~@R|L<_cbH+bt|*^=;xa7CDOK>nN(fwpux9)KhhZdj+_b;kpL>G*l-9N?H=^kK zlRn9>XTYw5AOz$IhJ|Q(xU1yvSDbE=Q>E7d(emBO@8|%@THOjX-4D1KwIl8+yvff# z39m98^DPj26+QcIlC8j>OV8An#ni6-aQLNc(tjaw%C22m2JTyk>RQcVc#hn0(%4%< z$ThHcFW>_|2YP}&owu8REDAKbrcc~Q6RhBTE!rfkr2)vfKX~t3c9t#{^M)N-cd;U% zav-F~#km$*c-sca^R+Qd6S*3D&HI-Y%rj+ArD-c-KGm$@OPwdW*0YOCJ0WseRXsXe z>0sBO3|~28wPsma4swQ#D;HrnHlaLKTF;ZjZ5}IW19gd|-htiDpD#U2n-nyfOzAdq zlDCI&`1Wh|$VlZk0P1CV*_hl{W}w-SCat6Y>n6q$RXFB>PV<9bV)?A6TE8j@zq$6& z$~kQ{@SPDoGFLYpvE9pt0A^n+c8cwG3xwWGKioi6#SucwZdYPCUP{vf1^zs`F_w~a zcza;8_o8Ak^EWv|=UiUdzaY@H7=0a0b2@`bSRCBM-};Any;u9f08MP*f)xr}$vX9l zmhXv6-WR=_H1EeO3Om5_oUZRVU5aZqk9!w=0I^pHYw8OvT3zY@5xMsh4{G^4Ojv2n zbHpGUysJ&w*LNGE@_mD0p#L6@zr~YGf>o> zPBh_n(@n5H6y@1R{-88|3!~Qy6eUbfQc~cs5s}0?6C%REI@cdofmx5^YIwKf6`%LI z$x=60t6(4ggSxH|ZFwiN`TeUl5QkdY!N(-)vFkc0Hs%<%JS;5S_aj*E_robAy=_W{ z-{KJ~xh7vosxS_1 z9vJDsH1Y8;wVI*|#NB;MHoS(CWUSjb#CCmUN7ufEh<3=bG*2Me+CPq9vNn9@Lp;*H1Sq)Gf+3R#?Ynts{{8JzM z1(PdU%c~)Q^Y3ng?Me9j3cpShvrWUoo>I|ZZzm;gMW@RyEDF}#+)d`gwJ{C}BxQm6 zrj#ln8m4$yN`@tD%{E=yj(D{WdzGjExVxF_u}8=8l2u6nhjcnG+x*$M^a87&;_>E#?`V_%+T6xD@(#j{!F9{R#Z{QnOzQUK6UV&Q(<7d#p#Rde@e$ zVEf>7X$Csb*H0hIuXC*p+<|})q`z>*MZ$T6U$2Y(C6Gy%x3`i61 zcM^>e9bjDEhzjb?MdkLcx{l9c3ClP~h-@wiqF_*gKsK+fhptyUhq|~TO{Iv}AZqIB zVxLeWwj5ci6_q|WlNjEO$f43uxw&`+daAFXT(nc=>-wHP#Ur7M3GXq~S)CcM*#)fO zR)6Qz;wkATqBE1KLjis}FBbT(-|+OG!e}uxZxsjnKb73Cu(Xn|!^jAVu0DGwED0=G z!=(0aB~!Xc9^_8X#HY_zi@U)XOC(*E7HuO&Xad$Az*)+at~t!yXBh3-b-}yIpafkQsV&Rb8y#F{0Jd2%e zy(Bsrvc(xaufPFyb6z&Eh2TaCo%o98yWg^LLBc}ja6jS5TMrTWA!?0&|E2SG&i`Vl z4S(=2mccjnMQAK)M8KIC7`dG4kZbjy6>`|t;z3z+O0~H^F+h;ay0##c zb2MPWz({_h>pHRV$z!^=;U)Tj3j5W-t_$Ml6r{OMV}HcVXi5p4hY@zS@G9EScl|Ue z|D+;9pQdBBdnYW5TQ~$54WRDv@&EfN%6-QJ=xIFgrF$TODmA*ha+9lSp;-_@t82~( zbS>mEs=g7DOpsionlEn3^!nJ$spmg*f{c+nTnonQAnMH`4M^7?5T;=tqP*cX^SE}) zmfjchOk=Mg<#n^Ls&S=Jw$57(=Xb0N6A+S^@BI%Emr}F>xv#F}hj7hHFaNqis{wmS z5b5@6E4&R!K-5DZty*ijS0HW;jQYr-6c{w7$xxnl_-UFOhv|)qhP=uX$~U&3kJA{z z>`E;q+^+`1ZCu_Fl2VZW7gz$Eh*a<7(}mBy4~(7{;Ib5o^atk>Eo&7$QL zzlm+t2tZ1Mu?iKJn23rdBZH80w(DAHZ0_>g>~7bE;Dx4^v*@{LiyYtl!`1~ul7D4& z@?mCUWYYk(<`^rYwpIgJStS`MgE9*o4hO;05_ zthrRZx@Cf@#u(EYLTMq@bIo>EtIVr6^^Nr?<9k<+TKG+Mrcdp2&?wcu#PrK^tRsyCwv&V4Q2Mvi?#iZ}++ijYH7P5aV1*3BfhNK0iM{KJ80p zY4~c*r4$B21tA0(jJ&s^F3CBHmy1&1oM{?=%UNDen1t=FJVGwO%AnR7y%qoCGSA~Y z|6rXTf>SD#Qe-~eW^K84w(Z>dUWFhBtCW&UGREw7ZP#@Sd77r-I@Mae7qS!FOhGg> zt+&?7)MlNQR&=Wh(!zg;J-P?tq)KfyO#X_@ZVZ;elnh3zhyLOD`MK75Ih|M4o?eY5 zq+}wZSmxi@s{{(NZ(Qmj5fm-Q{xm`t|EL zj;mXj)>09r2a=BGo``&JK=mOM0|07G0P5x_QAJpbh{P%7Ii_fg2~Fp{XLhBO81-$p zy+=e*6_4W(m$EhWvI$;sf33zeFUvv-AZQ{GVQtf_J7Xe{fSRo8t!G$ww}`Qn!mPAr zMANoy-^svV$MG7|vK_3=2niJ!rEj?`eDj|s21Zo;-9c`(QX(b>0_1x;AbIAk^Uk@( zhm9__`sb`OM;0Bu1nkHXMO>Lh?dP0DY^^nN&^2lKbhPnJ(>Q0uv|>AUqJj~;eZSwY zHb%ynEf7|)N(4i+y4Vz(X8@(Z7+I1O;wZ9qahP?^T5Ch_lF~s$udh*XI5FR0 zt~tA$J<~c)ZyROdEuvH62FnaN7cn%;IeQ-jfs+SRKtd6edZ(<_02|koYOU7zrfHf+ zAkDO7sU3?zL^`3LfV8euNfKO5Y1_7K+tw&81E6eH zq;74CosC-{&wQ=*d_KxpCgaWux#U$9kz>jcfDl{jR*Xq#IVF?)Ljpnk|KlI3QcE7y z9RL6TIdnx>bW?9;ba!ELWdJ}ZBPmI3VP|DcVP|P$YalZ&I4&|EIX5pbGcPeUAY*cA zb98w?WOZ^`a&K)Q oM^ZsVK~zakP9SM*VP|DJAZK!6c}+yRm;e9(07*qoM6N<$g7p#~%K!iX diff --git a/user/wxTest/list.xpm b/user/wxTest/list.xpm deleted file mode 100644 index b0162e2b07..0000000000 --- a/user/wxTest/list.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -static char * list_xpm[] = { -"32 32 10 1", -" c #DF7DDF7DDF7D", -". c #9E799E79A699", -"X c #AEBAAEBAAEBA", -"o c #FFFFFFFFFFFF", -"O c #514451445144", -"+ c #410341034103", -"@ c #596559655965", -"# c #000000000000", -"$ c #BEFBBEFBBEFB", -"% c #208120812081", -" ", -" . ", -" Xo.. ", -" Xoooo.X ", -" Xooooooo.X ", -" XooooO+ooooXX ", -" XoooooooO+ooo.. ", -" XooooOOoooo@@ooo.. ", -" XoooooooOOooooooooo.X ", -" Xoooo@Ooooo+@oooO+oooo.X", -" Xooooooo@OoooooooooO+oooo", -" XooooooooooO@oooOOoooo@@oo", -" XooooO+ooooooooooooOOoooooo", -" XoooooooO+oooooo@Ooooo+@oooX", -" XooooOOoooo@@oooooo@OooooooOX", -" XoooooooOOooooooooooooO@oooOX#", -" Xoooo@Ooooo+@oooO+oooooooooOX#X", -"Xooooooo@OoooooooooO+ooooooOX#XX", -"O@$oooooooO@oooOOoooo@@oooOX#XX ", -"X#+@$ooooooooooooOOooooooOX#XX ", -" XX#O@ooooooo@Ooooo+@oooOX#XX ", -" XX#OXooooooo@OooooooOX#X ", -" XXO@XoooooooO@oooOX#X ", -" XX#%@XoooooooooOX#X ", -" XX#%@XooooooOX#X ", -" XX#%@XoooOX#X ", -" XX#%@XOX#X ", -" XX#+X#X ", -" XXXX ", -" ", -" ", -" "}; diff --git a/user/wxTest/test.xpm b/user/wxTest/test.xpm deleted file mode 100644 index 7964a4ca21..0000000000 --- a/user/wxTest/test.xpm +++ /dev/null @@ -1,11638 +0,0 @@ -/* XPM */ -static char *test_xpm[] = { -/* columns rows colors chars-per-pixel */ -"200 200 11432 3", -" c #010101010101", -". c #020202020202", -"X c Gray1", -"o c #040404040404", -"O c Gray2", -"+ c #060606060606", -"@ c #070707070707", -"# c Gray3", -"$ c #090909090909", -"% c Gray4", -"& c #0b0b0b0b0b0b", -"* c #0c0c0c0c0c0c", -"= c Gray5", -"- c #0e0e0e0e0e0e", -"; c Gray6", -": c #0f0f0e0e1313", -"> c #0f0f10100b0b", -", c #10100f0f1414", -"< c #121213130b0b", -"1 c #101011110c0c", -"2 c #111112120d0d", -"3 c #121213130d0d", -"4 c #121213130e0e", -"5 c #131315150a0a", -"6 c #131314140c0c", -"7 c #131314140e0e", -"8 c #131314140f0f", -"9 c #141416160b0b", -"0 c #141415150d0d", -"q c #141415150f0f", -"w c #151516160e0e", -"e c #161617170f0f", -"r c #101010101010", -"t c #111111111111", -"y c #111111111313", -"u c #121212121010", -"i c #131313131111", -"p c Gray7", -"a c #131313131313", -"s c #111110101515", -"d c #121211111616", -"f c #121212121414", -"g c #131313131515", -"h c #131312121717", -"j c #141415151010", -"k c #141414141212", -"l c #151515151313", -"z c #151516161010", -"x c #151516161111", -"c c #161617171111", -"v c #161617171212", -"b c Gray8", -"n c #151515151515", -"m c #141414141616", -"M c #151515151717", -"N c #161616161414", -"B c #171717171515", -"V c #161616161616", -"C c Gray9", -"Z c #141413131818", -"A c #141413131919", -"S c #151514141919", -"D c #151514141a1a", -"F c #161615151a1a", -"G c #161615151b1b", -"H c #161616161818", -"J c #171717171919", -"K c #171716161b1b", -"L c #161615151d1d", -"P c #171716161c1c", -"I c #171716161e1e", -"U c #171718181010", -"Y c #171718181212", -"T c #171718181313", -"R c #181817171c1c", -"E c #181817171d1d", -"W c #181817171f1f", -"Q c #181819191414", -"! c #181818181616", -"~ c #191919191717", -"^ c #19191a1a1414", -"/ c #19191a1a1515", -"( c #1a1a1b1b1515", -") c #1a1a1b1b1616", -"_ c #1b1b1c1c1616", -"` c #1b1b1c1c1717", -"' c #1c1c1d1d1515", -"] c #1c1c1d1d1717", -"[ c #1d1d1e1e1616", -"{ c #1e1e1f1f1717", -"} c #181818181818", -"| c #191919191919", -" . c #181818181a1a", -"... c #191919191b1b", -"X.. c #1a1a1a1a1818", -"o.. c #1b1b1b1b1919", -"O.. c Gray10", -"+.. c #1b1b1b1b1b1b", -"@.. c #191918181d1d", -"#.. c #191918181e1e", -"$.. c #1a1a19191e1e", -"%.. c #1a1a19191f1f", -"&.. c #1a1a1a1a1c1c", -"*.. c #1b1b1b1b1d1d", -"=.. c #1b1b1a1a1f1f", -"-.. c #19191d1d1c1c", -";.. c #1b1b1f1f1e1e", -":.. c #1c1c1d1d1818", -">.. c #1c1c1c1c1a1a", -",.. c #1d1d1d1d1b1b", -"<.. c #1d1d1e1e1818", -"1.. c #1d1d1e1e1919", -"2.. c #1e1e1f1f1919", -"3.. c #1e1e1f1f1a1a", -"4.. c Gray11", -"5.. c #1d1d1d1d1d1d", -"6.. c #1c1c1c1c1e1e", -"7.. c #1d1d1d1d1f1f", -"8.. c #1e1e1e1e1c1c", -"9.. c #1f1f1f1f1d1d", -"0.. c #1e1e1e1e1e1e", -"q.. c Gray12", -"w.. c #191918182020", -"e.. c #1a1a19192121", -"r.. c #1b1b1a1a2020", -"t.. c #1b1b1a1a2222", -"y.. c #1c1c1b1b2020", -"u.. c #1c1c1b1b2121", -"i.. c #1c1c1b1b2323", -"p.. c #1d1d1c1c2121", -"a.. c #1d1d1c1c2222", -"s.. c #1e1e1d1d2222", -"d.. c #1e1e1d1d2323", -"f.. c #1e1e1e1e2020", -"g.. c #1f1f1f1f2121", -"h.. c #1f1f1e1e2323", -"j.. c #1d1d1c1c2424", -"k.. c #1f1f1e1e2424", -"l.. c #1f1f1e1e2626", -"z.. c #1e1e20201313", -"x.. c #1e1e20201515", -"c.. c #1f1f21211616", -"v.. c #1f1f20201818", -"b.. c #1f1f20201a1a", -"n.. c #1f1f20201b1b", -"m.. c #1c1c20201f1f", -"M.. c #1e1e20201d1d", -"N.. c #1f1f24241d1d", -"B.. c #1f1f24241e1e", -"V.. c #1d1d21212020", -"C.. c #1f1f20202222", -"Z.. c #1e1e22222121", -"A.. c #1f1f23232222", -"S.. c #1f1f23232424", -"D.. c #1f1f24242020", -"F.. c #20201f1f2424", -"G.. c #20201f1f2525", -"H.. c #202022221515", -"J.. c #202022221717", -"K.. c #222224241616", -"L.. c #202021211919", -"P.. c #202021211b1b", -"I.. c #212123231818", -"U.. c #212122221a1a", -"Y.. c #222223231b1b", -"T.. c #202021211c1c", -"R.. c #202020201e1e", -"E.. c #212121211f1f", -"W.. c #212122221c1c", -"Q.. c #212122221d1d", -"!.. c #202022221f1f", -"~.. c #212123231e1e", -"^.. c #222223231d1d", -"/.. c #222223231e1e", -"(.. c #212124241b1b", -").. c #222224241919", -"_.. c #232325251818", -"`.. c #232325251a1a", -"'.. c #202025251e1e", -"].. c #202025251f1f", -"[.. c #212126261f1f", -"{.. c #222225251c1c", -"}.. c #232324241c1c", -"|.. c #232324241e1e", -" X. c #232324241f1f", -".X. c #232326261f1f", -"XXX c #242426261818", -"oXX c #242426261919", -"OXX c #242426261b1b", -"+XX c #252527271a1a", -"@XX c #242425251d1d", -"#XX c #242425251f1f", -"$XX c #252527271c1c", -"%XX c #252526261e1e", -"&XX c #262627271f1f", -"*XX c #252528281717", -"=XX c #232329291f1f", -"-XX c #262628281a1a", -";XX c #262628281b1b", -":XX c #272729291b1b", -">XX c #252528281f1f", -",XX c #272729291c1c", -"oo c #25252a2a2323", -",oo c #272728282020", -"OO c #2b2b2b2b2929", -",OO c #2a2a2a2a2a2a", -"++ c #2d2d33332929", -",++ c #2c2c33332b2b", -"<++ c #2d2d32322b2b", -"1++ c #2e2e31312828", -"2++ c #2f2f30302828", -"3++ c #2e2e30302b2b", -"4++ c #2e2e31312a2a", -"5++ c #2f2f30302a2a", -"6++ c #2f2f30302b2b", -"7++ c #2f2f32322929", -"8++ c #2c2c31312d2d", -"9++ c #2c2c30302f2f", -"0++ c #2c2c33332c2c", -"q++ c #2d2d32322c2c", -"w++ c #2c2c32322e2e", -"e++ c #2d2d32322e2e", -"r++ c #2e2e33332c2c", -"t++ c #2e2e33332d2d", -"y++ c #2e2e33332f2f", -"u++ c #2e2e34342828", -"i++ c #2f2f35352929", -"p++ c #2e2e34342a2a", -"a++ c #2f2f35352b2b", -"s++ c #2e2e36362929", -"d++ c #2f2f37372828", -"f++ c #2e2e36362b2b", -"g++ c #2d2d34342d2d", -"h++ c #2e2e35352d2d", -"j++ c #2f2f34342d2d", -"k++ c #2e2e35352e2e", -"l++ c #2f2f34342e2e", -"z++ c #2f2f37372c2c", -"x++ c #2f2f36362e2e", -"c++ c #2f2f38382727", -"v++ c #2a2a30303030", -"b++ c #2c2c30303131", -"n++ c #2d2d31313030", -"m++ c #2d2d31313232", -"M++ c #2c2c32323030", -"N++ c #2d2d33333131", -"B++ c #2e2e32323131", -"V++ c #2e2e32323333", -"C++ c #2f2f33333232", -"Z++ c #2f2f34343030", -"A++ c #2f2f35353131", -"S++ c #2e2e34343232", -"D++ c #30302b2b2727", -"F++ c #30302b2b2828", -"G++ c #31312c2c2828", -"H++ c #30302c2c2b2b", -"J++ c #31312e2e2929", -"K++ c #32322d2d2929", -"L++ c #32322d2d2a2a", -"P++ c #32322f2f2a2a", -"I++ c #33332e2e2a2a", -"U++ c #31312d2d2c2c", -"Y++ c #32322e2e2d2d", -"T++ c #33332f2f2e2e", -"R++ c #34342f2f2b2b", -"E++ c #34342f2f2c2c", -"W++ c #303033332222", -"Q++ c #303032322525", -"!++ c #303032322727", -"~++ c #313133332626", -"^++ c #313134342121", -"/++ c #303034342323", -"(++ c #323235352222", -")++ c #333336362323", -"_++ c #303034342525", -"`++ c #303037372525", -"'++ c #303037372727", -"]++ c #323235352424", -"[++ c #323234342626", -"{++ c #323234342727", -"}++ c #333335352727", -"|++ c #323236362525", -" @+ c #333336362525", -".@+ c #323236362727", -"X@+ c #343437372424", -"o@+ c #343437372626", -"O@+ c #303031312929", -"+@+ c #303031312b2b", -"@@@ c #303033332828", -"#@@ c #313133332828", -"$@@ c #303033332a2a", -"%@@ c #313132322a2a", -"&@@ c #333330302b2b", -"*@@ c #323233332b2b", -"=@@ c #303031312c2c", -"-@@ c #303030302e2e", -";@@ c #313131312f2f", -":@@ c #313132322c2c", -">@@ c #313132322d2d", -",@@ c #323233332d2d", -"<@@ c #323233332e2e", -"1@@ c #313134342929", -"2@@ c #313134342b2b", -"3@@ c #303036362828", -"4@@ c #313137372929", -"5@@ c #303036362a2a", -"6@@ c #313137372b2b", -"7@@ c #323234342929", -"8@@ c #333335352828", -"9@@ c #323235352a2a", -"0@@ c #333335352a2a", -"q@@ c #323236362828", -"w@@ c #333337372828", -"e@@ c #333337372929", -"r@@ c #333336362b2b", -"t@@ c #313134342d2d", -"y@@ c #303035352e2e", -"u@@ c #303035352f2f", -"i@@ c #303036362c2c", -"p@@ c #313137372d2d", -"a@@ c #303037372f2f", -"s@@ c #313136362f2f", -"d@@ c #323235352c2c", -"f@@ c #333334342c2c", -"g@@ c #323235352e2e", -"h@@ c #333334342e2e", -"j@@ c #333334342f2f", -"k@@ c #333336362d2d", -"l@@ c #353530302d2d", -"z@@ c #343430302f2f", -"x@@ c #353532322d2d", -"c@@ c #363631312d2d", -"v@@ c #363631312e2e", -"b@@ c #363633332e2e", -"n@@ c #343436362828", -"m@@ c #353537372929", -"M@@ c #343436362b2b", -"N@@ c #353537372a2a", -"B@@ c #343435352d2d", -"V@@ c #343435352f2f", -"C@@ c #343437372c2c", -"Z@@ c #353537372c2c", -"A@@ c #343437372e2e", -"S@@ c #353536362e2e", -"D@@ c #373734342f2f", -"F@@ c #363637372f2f", -"G@@ c #313138382626", -"H@@ c #323239392727", -"J@@ c #33333b3b2626", -"K@@ c #353538382525", -"L@@ c #343438382727", -"P@@ c #353538382727", -"I@@ c #35353a3a2626", -"U@@ c #363639392626", -"Y@@ c #303038382929", -"T@@ c #313138382828", -"R@@ c #323239392929", -"E@@ c #323238382a2a", -"W@@ c #333339392b2b", -"Q@@ c #33333a3a2828", -"!@@ c #32323a3a2b2b", -"~@@ c #32323b3b2a2a", -"^@@ c #33333a3a2a2a", -"/@@ c #313139392c2c", -"(@@ c #313139392e2e", -")@@ c #323238382c2c", -"_@@ c #333339392d2d", -"`@@ c #323238382e2e", -"'@@ c #333339392f2f", -"]@@ c #33333b3b2c2c", -"[@@ c #32323a3a2f2f", -"{@@ c #33333b3b2e2e", -"}@@ c #353539392a2a", -"|@@ c #34343b3b2929", -" #@ c #34343b3b2b2b", -".#@ c #363638382a2a", -"X#@ c #363638382b2b", -"o#@ c #373739392b2b", -"O#@ c #37373a3a2929", -"+#@ c #353538382f2f", -"@#@ c #34343a3a2c2c", -"### c #35353b3b2d2d", -"$## c #34343a3a2e2e", -"%## c #35353b3b2f2f", -"&## c #363638382d2d", -"*## c #373739392c2c", -"=## c #363639392e2e", -"-## c #373739392e2e", -";## c #36363a3a2c2c", -":## c #37373b3b2d2d", -">## c #35353d3d2828", -",## c #35353c3c2a2a", -"<## c #36363d3d2b2b", -"1## c #36363e3e2929", -"2## c #34343d3d2c2c", -"3## c #35353c3c2c2c", -"4## c #34343c3c2f2f", -"5## c #35353d3d2e2e", -"6## c #35353e3e2d2d", -"7## c #36363d3d2d2d", -"8## c #36363c3c2e2e", -"9## c #37373d3d2f2f", -"0## c #37373e3e2c2c", -"q## c #36363e3e2f2f", -"w## c #36363f3f2e2e", -"e## c #37373e3e2e2e", -"r## c #383833332f2f", -"t## c #39393c3c2727", -"y## c #39393d3d2626", -"u## c #3a3a3e3e2727", -"i## c #38383b3b2828", -"p## c #38383b3b2a2a", -"a## c #38383a3a2c2c", -"s## c #38383a3a2d2d", -"d## c #39393b3b2d2d", -"f## c #38383a3a2f2f", -"g## c #39393b3b2e2e", -"h## c #3a3a3a3a2e2e", -"j## c #3b3b3b3b2f2f", -"k## c #38383c3c2b2b", -"l## c #39393c3c2b2b", -"z## c #39393e3e2828", -"x## c #3a3a3d3d2828", -"c## c #3a3a3d3d2a2a", -"v## c #3b3b3e3e2929", -"b## c #3a3a3f3f2b2b", -"n## c #3b3b3e3e2b2b", -"m## c #39393d3d2c2c", -"M## c #38383c3c2e2e", -"N## c #39393d3d2f2f", -"B## c #38383f3f2f2f", -"V## c #3a3a3d3d2c2c", -"C## c #3a3a3c3c2e2e", -"Z## c #3a3a3c3c2f2f", -"A## c #3b3b3d3d2f2f", -"S## c #3a3a3e3e2d2d", -"D## c #3b3b3e3e2d2d", -"F## c #3c3c3f3f2a2a", -"G## c #3c3c3f3f2c2c", -"H## c #3c3c3f3f2e2e", -"J## c #3e3e3f3f2f2f", -"K## c Gray19", -"L## c #313131313131", -"P## c #313131313333", -"I## c #323232323030", -"U## c #333333333131", -"Y## c #323232323232", -"T## c Gray20", -"R## c #313130303535", -"E## c #303035353131", -"W## c #303034343333", -"Q## c #303037373030", -"!## c #313136363030", -"~## c #303036363232", -"^## c #313136363232", -"/## c #323237373030", -"(## c #323237373131", -")## c #323237373333", -"_## c #313135353434", -"`## c #323236363535", -"'## c #333337373636", -"]## c #343435353030", -"[## c #343434343232", -"{## c #343436363131", -"}## c #343437373030", -"|## c #353536363030", -" $# c #353536363131", -".$# c #343436363333", -"X$# c #353537373232", -"o$# c #363637373131", -"O$# c #373736363131", -"+$# c #363637373232", -"@$# c #343434343434", -"#$# c #353535353535", -"$$$ c #353535353737", -"%$$ c #353537373434", -"&$$ c #363636363434", -"*$$ c #373737373535", -"=$$ c Gray21", -"-$$ c #373737373737", -";$$ c #363635353a3a", -":$$ c #373737373939", -">$$ c #313138383030", -",$$ c #313138383131", -"<$$ c #323239393131", -"1$$ c #333338383131", -"2$$ c #323239393232", -"3$$ c #333338383232", -"4$$ c #33333b3b3030", -"5$$ c #33333a3a3232", -"6$$ c #333338383434", -"7$$ c #353538383131", -"8$$ c #343439393232", -"9$$ c #343439393333", -"0$$ c #34343a3a3030", -"q$$ c #35353b3b3131", -"w$$ c #34343b3b3333", -"e$$ c #35353a3a3333", -"r$$ c #363639393030", -"t$$ c #373738383030", -"y$$ c #363638383333", -"u$$ c #363639393232", -"i$$ c #373738383232", -"p$$ c #373738383333", -"a$$ c #37373a3a3131", -"s$$ c #37373a3a3333", -"d$$ c #343439393535", -"f$$ c #343438383737", -"g$$ c #35353a3a3434", -"h$$ c #35353a3a3636", -"j$$ c #363638383535", -"k$$ c #373739393434", -"l$$ c #373739393636", -"z$$ c #36363b3b3434", -"x$$ c #36363b3b3535", -"c$$ c #36363b3b3737", -"v$$ c #35353d3d3232", -"b$$ c #36363c3c3030", -"n$$ c #37373d3d3131", -"m$$ c #36363c3c3232", -"M$$ c #37373d3d3333", -"N$$ c #36363e3e3131", -"B$$ c #37373f3f3030", -"V$$ c #36363e3e3333", -"C$$ c #37373f3f3232", -"Z$$ c #36363d3d3535", -"A$$ c #37373c3c3535", -"S$$ c #37373c3c3636", -"D$$ c #37373f3f3434", -"F$$ c #353539393838", -"G$$ c #36363a3a3939", -"H$$ c #37373b3b3a3a", -"J$$ c #383835353030", -"K$$ c #393934343030", -"L$$ c #383837373232", -"P$$ c #3a3a35353131", -"I$$ c #3a3a37373232", -"U$$ c #3c3c37373333", -"Y$$ c #383839393131", -"T$$ c #383839393333", -"R$$ c #38383b3b3030", -"E$$ c #39393b3b3030", -"W$$ c #38383b3b3232", -"Q$$ c #39393a3a3232", -"!$$ c #3b3b38383333", -"~$$ c #3b3b3b3b3131", -"^$$ c #3a3a3a3a3232", -"/$$ c #3a3a3b3b3333", -"($$ c #3b3b3b3b3333", -")$$ c #383839393434", -"_$$ c #393939393737", -"`$$ c #38383a3a3535", -"'$$ c #38383b3b3434", -"]$$ c #39393a3a3434", -"[$$ c #39393a3a3535", -"{$$ c #38383a3a3737", -"}$$ c #39393b3b3636", -"|$$ c #3a3a3b3b3535", -" %$ c #3b3b3a3a3535", -".%$ c #3a3a3b3b3636", -"X%$ c #39393c3c3333", -"o%$ c #38383e3e3030", -"O%$ c #39393f3f3131", -"+%$ c #38383e3e3232", -"@%$ c #39393f3f3333", -"#%$ c #3a3a3c3c3131", -"$%$ c #3b3b3d3d3030", -"%%% c #3a3a3d3d3232", -"&%% c #3b3b3d3d3232", -"*%% c #3a3a3e3e3030", -"=%% c #3b3b3e3e3333", -"-%% c #39393c3c3535", -";%% c #38383d3d3636", -":%% c #38383e3e3434", -">%% c #39393f3f3535", -",%% c #39393e3e3737", -"<%% c #3a3a3d3d3434", -"1%% c #3b3b3c3c3434", -"2%% c #3a3a3c3c3737", -"3%% c #3a3a3d3d3636", -"4%% c #3b3b3c3c3636", -"5%% c #3b3b3c3c3737", -"6%% c #3b3b3e3e3535", -"7%% c #3b3b3e3e3737", -"8%% c #3c3c39393434", -"9%% c #3d3d3a3a3535", -"0%% c #3e3e3b3b3434", -"q%% c #3e3e3b3b3636", -"w%% c #3c3c3c3c3030", -"e%% c #3c3c3e3e3030", -"r%% c #3c3c3e3e3131", -"t%% c #3d3d3e3e3030", -"y%% c #3d3d3f3f3131", -"u%% c #3c3c3e3e3333", -"i%% c #3d3d3f3f3232", -"p%% c #3f3f3f3f3333", -"a%% c #3c3c3c3c3434", -"s%% c #3c3c3d3d3535", -"d%% c #3d3d3d3d3535", -"f%% c #3c3c3d3d3737", -"g%% c #3d3d3c3c3737", -"h%% c #3d3d3f3f3434", -"j%% c #3c3c3f3f3636", -"k%% c #3d3d3e3e3636", -"l%% c #3f3f3c3c3535", -"z%% c #3f3f3c3c3737", -"x%% c #3f3f3f3f3535", -"c%% c #3e3e3e3e3636", -"v%% c #3e3e3f3f3737", -"b%% c #3f3f3f3f3737", -"n%% c Gray22", -"m%% c #393939393939", -"M%% c #39393b3b3838", -"N%% c #3a3a3a3a3838", -"B%% c #3b3b3b3b3939", -"V%% c #3a3a3a3a3a3a", -"C%% c Gray23", -"Z%% c #3a3a39393e3e", -"A%% c #3b3b3b3b3d3d", -"S%% c #38383c3c3b3b", -"D%% c #38383f3f3838", -"F%% c #39393e3e3838", -"G%% c #39393e3e3a3a", -"H%% c #3a3a3c3c3939", -"J%% c #3b3b3d3d3838", -"K%% c #3b3b3d3d3a3a", -"L%% c #3a3a3f3f3838", -"P%% c #3a3a3f3f3939", -"I%% c #3a3a3f3f3b3b", -"U%% c #39393d3d3c3c", -"Y%% c #39393d3d3e3e", -"T%% c #3a3a3e3e3d3d", -"R%% c #3b3b3f3f3e3e", -"E%% c #3c3c3d3d3838", -"W%% c #3c3c3c3c3a3a", -"Q%% c #3d3d3d3d3b3b", -"!%% c #3c3c3e3e3939", -"~%% c #3c3c3f3f3838", -"^%% c #3d3d3e3e3838", -"/%% c #3d3d3e3e3939", -"(%% c #3d3d3f3f3a3a", -")%% c #3e3e3d3d3838", -"_%% c #3e3e3f3f3939", -"`%% c #3e3e3f3f3a3a", -"'%% c #3c3c3c3c3c3c", -"]%% c Gray24", -"[%% c #3c3c3c3c3e3e", -"{%% c #3d3d3d3d3f3f", -"}%% c #3e3e3e3e3e3e", -"|%% c #3f3f3f3f3f3f", -" &% c #3d3d3c3c4141", -".&% c #3f3f3e3e4343", -"X&% c #373740402b2b", -"o&% c #373743432f2f", -"O&% c #3a3a43432626", -"+&% c #3a3a45452727", -"@&% c #383840402b2b", -"#&% c #3a3a42422b2b", -"$&% c #393941412c2c", -"%&% c #383841412e2e", -"&&& c #393940402e2e", -"*&& c #393942422f2f", -"=&& c #3b3b40402c2c", -"-&& c #3a3a41412f2f", -";&& c #3a3a42422d2d", -":&& c #3b3b43432e2e", -">&& c #3b3b44442929", -",&& c #3b3b46462828", -"<&& c #3d3d41412a2a", -"1&& c #3e3e42422b2b", -"2&& c #3c3c41412d2d", -"3&& c #3d3d40402f2f", -"4&& c #3d3d42422e2e", -"5&& c #3e3e41412e2e", -"6&& c #3f3f42422d2d", -"7&& c #3f3f43432c2c", -"8&& c #3d3d46462b2b", -"9&& c #3e3e47472a2a", -"0&& c #3c3c44442d2d", -"q&& c #3c3c44442f2f", -"w&& c #3d3d45452e2e", -"e&& c #3d3d47472c2c", -"r&& c #3d3d47472e2e", -"t&& c #3f3f47472f2f", -"y&& c #3f3f49492e2e", -"u&& c #363641413131", -"i&& c #383841413030", -"p&& c #393940403030", -"a&& c #383840403333", -"s&& c #393941413232", -"d&& c #393942423131", -"f&& c #3a3a41413131", -"g&& c #3a3a40403232", -"h&& c #3b3b41413333", -"j&& c #3a3a43433030", -"k&& c #3b3b42423030", -"l&& c #3a3a42423333", -"z&& c #3b3b42423232", -"x&& c #383840403535", -"c&& c #393941413434", -"v&& c #393941413636", -"b&& c #3a3a40403434", -"n&& c #3b3b41413535", -"m&& c #3a3a40403636", -"M&& c #3b3b41413737", -"N&& c #3a3a42423535", -"B&& c #3b3b43433434", -"V&& c #3a3a42423737", -"C&& c #3b3b43433636", -"Z&& c #3b3b44443131", -"A&& c #3b3b44443333", -"S&& c #3a3a46463232", -"D&& c #393944443434", -"F&& c #3c3c40403131", -"G&& c #3d3d41413232", -"H&& c #3d3d41413333", -"J&& c #3c3c43433131", -"K&& c #3c3c43433333", -"L&& c #3e3e41413030", -"P&& c #3f3f40403030", -"I&& c #3e3e40403232", -"U&& c #3e3e40403333", -"Y&& c #3f3f40403232", -"T&& c #3f3f41413333", -"R&& c #3e3e42423131", -"E&& c #3f3f42423131", -"W&& c #3e3e42423333", -"Q&& c #3f3f43433232", -"!&& c #3d3d40403535", -"~&& c #3d3d40403737", -"^&& c #3c3c42423434", -"/&& c #3d3d43433535", -"(&& c #3c3c42423636", -")&& c #3d3d43433737", -"_&& c #3e3e40403535", -"`&& c #3f3f41413434", -"'&& c #3e3e41413636", -"]&& c #3f3f41413636", -"[&& c #3e3e42423434", -"{&& c #3f3f43433434", -"}&& c #3f3f43433535", -"|&& c #3f3f42423737", -" *& c #3d3d44443232", -".*& c #3f3f44443030", -"X*& c #3e3e45453333", -"o*& c #3e3e46463131", -"O*& c #3f3f47473232", -"+*& c #3c3c44443535", -"@*& c #3c3c45453434", -"#*& c #3d3d44443434", -"$*& c #3c3c44443737", -"%*& c #3d3d45453636", -"&*& c #3c3c47473636", -"*** c #3e3e45453535", -"=** c #3e3e44443636", -"-** c #3f3f45453737", -";** c #3e3e47473434", -":** c #3f3f46463434", -">** c #3e3e46463737", -",** c #3e3e47473636", -"<** c #3f3f46463636", -"1** c #393940403838", -"2** c #3b3b40403939", -"3** c #3a3a41413a3a", -"4** c #3b3b40403a3a", -"5** c #3b3b43433838", -"6** c #3b3b42423b3b", -"7** c #3d3d40403939", -"8** c #3c3c41413a3a", -"9** c #3c3c41413b3b", -"0** c #3c3c42423838", -"q** c #3d3d43433939", -"w** c #3d3d42423b3b", -"e** c #3e3e41413838", -"r** c #3f3f40403838", -"t** c #3e3e40403b3b", -"y** c #3e3e41413a3a", -"u** c #3f3f40403a3a", -"i** c #3f3f40403b3b", -"p** c #3f3f42423939", -"a** c #3f3f42423b3b", -"s** c #3c3c41413d3d", -"d** c #3c3c40403f3f", -"f** c #3c3c43433c3c", -"g** c #3d3d42423c3c", -"h** c #3d3d42423e3e", -"j** c #3f3f41413c3c", -"k** c #3e3e43433c3c", -"l** c #3e3e43433d3d", -"z** c #3e3e43433f3f", -"x** c #3c3c44443939", -"c** c #3d3d45453838", -"v** c #3d3d45453a3a", -"b** c #3e3e44443838", -"n** c #3f3f45453939", -"m** c #3e3e44443a3a", -"M** c #3f3f45453b3b", -"N** c #3f3f47473838", -"B** c #3f3f47473a3a", -"V** c #3d3d44443d3d", -"C** c #3f3f44443d3d", -"Z** c #3e3e45453e3e", -"A** c #3f3f44443e3e", -"S** c #3f3f46463f3f", -"D** c #3c3c48483030", -"F** c #3d3d49493333", -"G** c #3d3d4a4a3030", -"H** c #3f3f48483333", -"J** c #3f3f4b4b3333", -"K** c #3f3f48483535", -"L** c #3a3a40404040", -"P** c #3f3f43434242", -"I** c #3f3f44444040", -"U** c #40403d3d3636", -"Y** c #41413e3e3737", -"T** c #40403c3c3939", -"R** c #40403d3d3838", -"E** c #41413e3e3939", -"W** c #42423f3f3838", -"Q** c #42423f3f3a3a", -"!** c #414141412929", -"~** c #404044442d2d", -"^** c #414144442f2f", -"/** c #414145452e2e", -"(** c #404046462c2c", -")** c #414147472d2d", -"_** c #424246462d2d", -"`** c #434347472e2e", -"'** c #454545452b2b", -"]** c #464646462e2e", -"[** c #40404a4a2727", -"{** c #43434f4f2727", -"}** c #404049492c2c", -"|** c #404049492e2e", -" =* c #41414a4a2f2f", -".=* c #444448482f2f", -"X=* c #44444a4a2e2e", -"o=* c #45454c4c2d2d", -"O=* c #44444e4e2c2c", -"+=* c #46464d4d2e2e", -"@=* c #47474c4c2e2e", -"#=* c #47474e4e2f2f", -"$=* c #48484d4d2f2f", -"%=* c #404041413131", -"&=* c #404041413333", -"*=* c #404043433232", -"=== c #414142423232", -"-== c #404040403434", -";== c #404040403636", -":== c #404042423434", -">== c #414142423434", -",== c #414143433535", -"<== c #404042423737", -"1== c #414143433636", -"2== c #434341413535", -"3== c #404045453131", -"4== c #414144443131", -"5== c #404044443333", -"6== c #414144443333", -"7== c #424245453030", -"8== c #424245453232", -"9== c #424247473131", -"0== c #434346463131", -"q== c #424247473333", -"w== c #404044443535", -"e== c #404044443636", -"r== c #404047473535", -"t== c #404047473737", -"y== c #424245453434", -"u== c #424244443636", -"i== c #424244443737", -"p== c #434345453737", -"a== c #424246463535", -"s== c #434346463535", -"d== c #434347473636", -"f== c #464643433434", -"g== c #474743433737", -"h== c #444447473232", -"j== c #464645453131", -"k== c #474744443333", -"l== c #444447473434", -"z== c #444447473636", -"x== c #464644443737", -"c== c #404040403838", -"v== c #404041413939", -"b== c #404041413b3b", -"n== c #414140403b3b", -"m== c #404043433838", -"M== c #414143433838", -"N== c #404043433a3a", -"B== c #414142423a3a", -"V== c #434340403939", -"C== c #434340403b3b", -"Z== c #424242423838", -"A== c #434343433939", -"S== c #424242423a3a", -"D== c #424243433b3b", -"F== c #404041413c3c", -"G== c #404040403e3e", -"H== c #404042423d3d", -"J== c #404043433c3c", -"K== c #414142423c3c", -"L== c #414142423d3d", -"P== c #414143433e3e", -"I== c #424241413c3c", -"U== c #424241413d3d", -"Y== c #424243433d3d", -"T== c #434342423d3d", -"R== c #424243433e3e", -"E== c #414144443939", -"W== c #404046463838", -"Q== c #414147473939", -"!== c #404046463a3a", -"~== c #414147473b3b", -"^== c #424244443939", -"/== c #434345453838", -"(== c #424245453a3a", -")== c #434345453a3a", -"_== c #434347473838", -"`== c #434347473939", -"'== c #414144443d3d", -"]== c #404045453f3f", -"[== c #404046463c3c", -"{== c #414146463f3f", -"}== c #424245453c3c", -"|== c #434344443c3c", -" -= c #424244443f3f", -".-= c #434344443e3e", -"X-= c #434344443f3f", -"o-= c #434346463d3d", -"O-= c #444441413838", -"+-= c #444441413c3c", -"@-= c #444443433e3e", -"#-= c #444443433f3f", -"$-= c #464643433c3c", -"%-= c #474742423c3c", -"&-= c #444444443838", -"*-= c #454545453939", -"=-= c #444444443a3a", -"--- c #454545453b3b", -";-- c #444446463838", -":-- c #444446463939", -">-- c #454547473939", -",-- c #444446463b3b", -"<-- c #454547473a3a", -"1-- c #464644443838", -"2-- c #464646463a3a", -"3-- c #444445453d3d", -"4-- c #444445453f3f", -"5-- c #454544443f3f", -"6-- c #454547473c3c", -"7-- c #444447473e3e", -"8-- c #454546463e3e", -"9-- c #474744443d3d", -"0-- c #464646463c3c", -"q-- c #474747473d3d", -"w-- c #464646463e3e", -"e-- c #464647473f3f", -"r-- c #404048483131", -"t-- c #404048483333", -"y-- c #414149493232", -"u-- c #40404a4a3232", -"i-- c #434348483232", -"p-- c #42424b4b3030", -"a-- c #42424a4a3333", -"s-- c #43434b4b3333", -"d-- c #414149493434", -"f-- c #404049493636", -"g-- c #414148483636", -"h-- c #41414a4a3737", -"j-- c #434348483434", -"k-- c #424249493737", -"l-- c #42424a4a3535", -"z-- c #43434b4b3434", -"x-- c #43434b4b3636", -"c-- c #43434d4d3535", -"v-- c #444448483131", -"b-- c #454548483333", -"n-- c #454549493232", -"m-- c #45454b4b3131", -"M-- c #45454a4a3333", -"N-- c #46464a4a3131", -"B-- c #454548483535", -"V-- c #454548483737", -"C-- c #45454a4a3636", -"Z-- c #464649493434", -"A-- c #464649493636", -"S-- c #46464b4b3535", -"D-- c #47474b4b3434", -"F-- c #44444d4d3030", -"G-- c #44444f4f3131", -"H-- c #44444e4e3333", -"J-- c #45454e4e3333", -"K-- c #47474d4d3131", -"L-- c #46464c4c3232", -"P-- c #46464f4f3232", -"I-- c #44444c4c3434", -"U-- c #45454d4d3535", -"Y-- c #44444c4c3737", -"T-- c #45454d4d3636", -"R-- c #47474c4c3636", -"E-- c #46464f4f3434", -"W-- c #46464e4e3636", -"Q-- c #46464e4e3737", -"!-- c #47474f4f3737", -"~-- c #404049493838", -"^-- c #414148483838", -"/-- c #404048483b3b", -"(-- c #414149493a3a", -")-- c #424249493939", -"_-- c #424248483a3a", -"`-- c #434349493b3b", -"'-- c #43434a4a3838", -"]-- c #43434a4a3a3a", -"[-- c #414149493c3c", -"{-- c #414149493e3e", -"}-- c #424248483c3c", -"|-- c #434349493d3d", -" ;- c #424248483e3e", -".;- c #434349493f3f", -"X;- c #42424a4a3d3d", -"o;- c #42424a4a3f3f", -"O;- c #43434c4c3b3b", -"+;- c #42424e4e3838", -"@;- c #42424d4d3c3c", -"#;- c #444448483939", -"$;- c #454549493838", -"%;- c #444448483a3a", -"&;- c #454549493b3b", -"*;- c #44444b4b3939", -"=;- c #44444b4b3b3b", -"-;- c #464649493838", -";;; c #464648483a3a", -":;; c #464648483b3b", -">;; c #474749493b3b", -",;; c #46464a4a3939", -"<;; c #47474a4a3939", -"1;; c #47474b4b3a3a", -"2;; c #454548483d3d", -"3;; c #44444a4a3c3c", -"4;; c #45454b4b3d3d", -"5;; c #44444a4a3e3e", -"6;; c #45454b4b3f3f", -"7;; c #464648483d3d", -"8;; c #464649493e3e", -"9;; c #474749493e3e", -"0;; c #46464a4a3c3c", -"q;; c #47474b4b3c3c", -"w;; c #47474b4b3d3d", -"e;; c #47474a4a3f3f", -"r;; c #44444d4d3838", -"t;; c #45454d4d3838", -"y;; c #44444d4d3a3a", -"u;; c #45454c4c3a3a", -"i;; c #45454e4e3b3b", -"p;; c #46464d4d3b3b", -"a;; c #46464e4e3939", -"s;; c #47474f4f3838", -"d;; c #44444c4c3d3d", -"f;; c #45454c4c3c3c", -"g;; c #44444c4c3f3f", -"h;; c #45454d4d3e3e", -"j;; c #46464d4d3d3d", -"k;; c #46464c4c3e3e", -"l;; c #47474d4d3f3f", -"z;; c #46464f4f3c3c", -"x;; c #47474e4e3c3c", -"c;; c #46464e4e3f3f", -"v;; c #46464f4f3e3e", -"b;; c #47474e4e3e3e", -"n;; c #484847473535", -"m;; c #484843433d3d", -"M;; c #484844443939", -"N;; c #484846463939", -"B;; c #494947473838", -"V;; c #494947473a3a", -"C;; c #4a4a46463a3a", -"Z;; c #484845453c3c", -"A;; c #494945453c3c", -"S;; c #494944443e3e", -"D;; c #4a4a46463d3d", -"F;; c #4b4b47473c3c", -"G;; c #494948483333", -"H;; c #48484b4b3636", -"J;; c #4a4a49493737", -"K;; c #48484c4c3333", -"L;; c #49494d4d3232", -"P;; c #48484f4f3030", -"I;; c #49494e4e3030", -"U;; c #4a4a4f4f3131", -"Y;; c #48484c4c3535", -"T;; c #49494d4d3434", -"R;; c #48484d4d3737", -"E;; c #49494c4c3737", -"W;; c #4a4a4e4e3535", -"Q;; c #4b4b4f4f3434", -"!;; c #4a4a4e4e3737", -"~;; c #4b4b4f4f3636", -"^;; c #4d4d4d4d3333", -"/;; c #4f4f4f4f3535", -"(;; c #48484b4b3838", -");; c #48484b4b3a3a", -"_;; c #4b4b48483939", -"`;; c #4b4b49493a3a", -"';; c #484848483c3c", -"];; c #494949493d3d", -"[;; c #484848483e3e", -"{;; c #494949493f3f", -"};; c #48484a4a3c3c", -"|;; c #48484a4a3d3d", -" :; c #49494a4a3c3c", -".:; c #49494b4b3d3d", -"X:; c #48484a4a3f3f", -"o:; c #49494b4b3e3e", -"O:; c #4a4a48483c3c", -"+:; c #4a4a4a4a3e3e", -"@:; c #4b4b4b4b3f3f", -"#:; c #48484d4d3939", -"$:; c #49494c4c3939", -"%:; c #48484c4c3b3b", -"&:; c #49494c4c3b3b", -"*:; c #49494e4e3a3a", -"=:; c #4a4a4d4d3838", -"-:; c #4a4a4d4d3a3a", -";:; c #4b4b4e4e3939", -"::: c #4b4b4f4f3838", -">:: c #4a4a4f4f3b3b", -",:: c #4b4b4e4e3b3b", -"<:: c #48484c4c3d3d", -"1:: c #49494d4d3c3c", -"2:: c #48484c4c3e3e", -"3:: c #49494d4d3e3e", -"4:: c #49494d4d3f3f", -"5:: c #48484f4f3d3d", -"6:: c #48484f4f3f3f", -"7:: c #4a4a4d4d3c3c", -"8:: c #4a4a4c4c3e3e", -"9:: c #4a4a4c4c3f3f", -"0:: c #4b4b4c4c3e3e", -"q:: c #4b4b4d4d3f3f", -"w:: c #4b4b4e4e3d3d", -"e:: c #4a4a4e4e3f3f", -"r:: c #4b4b4f4f3e3e", -"t:: c #4d4d4a4a3b3b", -"y:: c #4c4c4a4a3d3d", -"u:: c #4d4d4b4b3c3c", -"i:: c #4c4c4a4a3e3e", -"p:: c #4d4d4b4b3e3e", -"a:: c #4c4c4f4f3a3a", -"s:: c #4f4f4d4d3838", -"d:: c #4f4f4c4c3b3b", -"f:: c #4f4f4e4e3939", -"g:: c #4f4f4e4e3a3a", -"h:: c #4c4c4d4d3d3d", -"j:: c #4c4c4d4d3f3f", -"k:: c #4c4c4f4f3c3c", -"l:: c #4c4c4f4f3e3e", -"z:: c #4d4d4e4e3e3e", -"x:: c #4e4e4c4c3f3f", -"c:: c #4e4e4f4f3f3f", -"v:: c #464650502d2d", -"b:: c #4a4a50502e2e", -"n:: c #4b4b51512f2f", -"m:: c #4a4a52522d2d", -"M:: c #494954542c2c", -"N:: c #4a4a57572c2c", -"B:: c #4d4d53532f2f", -"V:: c #4d4d54542b2b", -"C:: c #4e4e55552c2c", -"Z:: c #4e4e54542e2e", -"A:: c #4f4f55552f2f", -"S:: c #414150503333", -"D:: c #434352523535", -"F:: c #464651513333", -"G:: c #444453533636", -"H:: c #474750503535", -"J:: c #454552523838", -"K:: c #474751513838", -"L:: c #474753533b3b", -"P:: c #454551513d3d", -"I:: c #474750503f3f", -"U:: c #494950503131", -"Y:: c #484851513232", -"T:: c #4b4b50503030", -"R:: c #4a4a51513232", -"E:: c #4b4b50503232", -"W:: c #4b4b52523030", -"Q:: c #4b4b52523131", -"!:: c #4b4b52523333", -"~:: c #4a4a53533636", -"^:: c #4b4b55553030", -"/:: c #4a4a54543232", -"(:: c #4b4b55553232", -"):: c #4b4b55553333", -"_:: c #4b4b54543535", -"`:: c #4b4b54543737", -"':: c #4b4b56563434", -"]:: c #4c4c51513131", -"[:: c #4c4c51513333", -"{:: c #4c4c52523030", -"}:: c #4d4d53533131", -"|:: c #4e4e53533333", -" >: c #4c4c50503535", -".>: c #4c4c50503737", -"X>: c #4d4d51513636", -"o>: c #4c4c53533434", -"O>: c #4d4d52523434", -"+>: c #4c4c52523636", -"@>: c #4e4e53533535", -"#>: c #4d4d54543232", -"$>: c #4c4c56563131", -"%>: c #4c4c56563333", -"&>: c #4d4d57573232", -"*>: c #4e4e54543232", -"=>: c #4f4f55553333", -"->: c #4d4d54543535", -";>: c #4c4c56563434", -":>: c #4d4d57573535", -">>> c #4d4d56563737", -",>> c #4e4e55553434", -"<>> c #4f4f54543434", -"1>> c #4e4e55553636", -"2>> c #4f4f54543636", -"3>> c #4f4f56563434", -"4>> c #4f4f56563737", -"5>> c #494951513a3a", -"6>> c #494953533838", -"7>> c #484852523a3a", -"8>> c #4b4b50503a3a", -"9>> c #4a4a53533838", -"0>> c #4a4a52523a3a", -"q>> c #4a4a52523b3b", -"w>> c #4b4b53533b3b", -"e>> c #484851513c3c", -"r>> c #484851513e3e", -"t>> c #494950503e3e", -"y>> c #4b4b50503c3c", -"u>> c #4a4a51513f3f", -"i>> c #4a4a52523d3d", -"p>> c #4b4b53533e3e", -"a>> c #4b4b55553c3c", -"s>> c #4b4b55553d3d", -"d>> c #4c4c50503939", -"f>> c #4d4d51513838", -"g>> c #4d4d50503b3b", -"h>> c #4d4d51513a3a", -"j>> c #4d4d53533939", -"k>> c #4e4e52523939", -"l>> c #4f4f53533838", -"z>> c #4f4f53533a3a", -"x>> c #4c4c51513d3d", -"c>> c #4d4d50503d3d", -"v>> c #4c4c50503f3f", -"b>> c #4d4d50503f3f", -"n>> c #4d4d52523e3e", -"m>> c #4e4e51513c3c", -"M>> c #4e4e51513e3e", -"N>> c #4e4e53533c3c", -"B>> c #4e4e53533d3d", -"V>> c #4f4f52523d3d", -"C>> c #4f4f53533c3c", -"Z>> c #4e4e53533f3f", -"A>> c #4f4f52523f3f", -"S>> c #4c4c55553838", -"D>> c #4c4c55553a3a", -"F>> c #4d4d56563939", -"G>> c #4c4c56563b3b", -"H>> c #4e4e57573838", -"J>> c #4e4e57573a3a", -"K>> c #4c4c54543c3c", -"L>> c #4c4c54543d3d", -"P>> c #4d4d55553d3d", -"I>> c #4c4c54543f3f", -"U>> c #4d4d55553e3e", -"Y>> c #4f4f54543e3e", -"T>> c #4e4e57573c3c", -"R>> c #4e4e56563e3e", -"E>> c #4e4e56563f3f", -"W>> c #4f4f57573f3f", -"Q>> c #4c4c58583030", -"!>> c #4d4d59593333", -"~>> c #4f4f5b5b3333", -"^>> c #4e4e58583636", -"/>> c #4e4e59593737", -"(>> c #4f4f59593636", -")>> c #4f4f59593737", -"_>> c #4e4e59593939", -"`>> c #4f4f58583939", -"'>> c #4f4f58583b3b", -"]>> c #4f4f5a5a3838", -"[>> c #4c4c59593d3d", -"{>> c #4e4e58583d3d", -"}>> c #4f4f59593e3e", -"|>> c #4e4e5d5d3e3e", -" ,> c #51514c4c3838", -".,> c #50504d4d3a3a", -"X,> c #50504f4f3d3d", -"o,> c #50504e4e3f3f", -"O,> c #52524f4f3e3e", -"+,> c #505058582929", -"@,> c #515158582f2f", -"#,> c #51515f5f2c2c", -"$,> c #54545b5b2f2f", -"%,> c #55555d5d2a2a", -"&,> c #58585e5e2e2e", -"*,> c #515151513737", -"=,> c #525250503737", -"-,> c #505055553535", -";,> c #515154543535", -":,> c #505055553737", -">,> c #505056563434", -",,, c #505057573535", -"<,, c #515157573535", -"1,, c #515156563636", -"2,, c #535357573434", -"3,, c #525257573737", -"4,, c #535357573636", -"5,, c #555556563434", -"6,, c #555556563636", -"7,, c #565657573535", -"8,, c #525250503b3b", -"9,, c #535353533b3b", -"0,, c #515150503c3c", -"q,, c #505051513f3f", -"w,, c #505053533e3e", -"e,, c #535352523d3d", -"r,, c #505054543b3b", -"t,, c #515155553a3a", -"y,, c #505057573838", -"u,, c #515156563838", -"i,, c #525255553838", -"p,, c #525257573939", -"a,, c #525256563b3b", -"s,, c #505054543d3d", -"d,, c #515155553c3c", -"f,, c #505055553e3e", -"g,, c #515154543f3f", -"h,, c #515155553e3e", -"j,, c #515157573d3d", -"k,, c #515156563f3f", -"l,, c #525254543c3c", -"z,, c #525254543e3e", -"x,, c #525254543f3f", -"c,, c #525256563d3d", -"v,, c #535357573c3c", -"b,, c #525256563f3f", -"n,, c #535357573e3e", -"m,, c #565651513b3b", -"M,, c #555550503c3c", -"N,, c #545451513e3e", -"B,, c #545453533e3e", -"V,, c #545453533f3f", -"C,, c #555552523f3f", -"Z,, c #575752523e3e", -"A,, c #545454543a3a", -"S,, c #545457573a3a", -"D,, c #565655553939", -"F,, c #545454543c3c", -"G,, c #555554543f3f", -"H,, c #545456563e3e", -"J,, c #555557573f3f", -"K,, c #565656563c3c", -"L,, c #525259593030", -"P,, c #515158583737", -"I,, c #50505a5a3535", -"U,, c #50505a5a3737", -"Y,, c #51515b5b3636", -"T,, c #525258583434", -"R,, c #535359593535", -"E,, c #525258583636", -"W,, c #525259593737", -"Q,, c #535359593737", -"!,, c #53535b5b3636", -"~,, c #50505c5c3636", -"^,, c #52525d5d3535", -"/,, c #52525c5c3737", -"(,, c #52525f5f3434", -"),, c #53535e5e3636", -"_,, c #54545b5b3232", -"`,, c #54545a5a3434", -"',, c #55555b5b3535", -"],, c #57575b5b3636", -"[,, c #55555c5c3333", -"{,, c #54545c5c3737", -"},, c #54545f5f3737", -"|,, c #56565d5d3434", -" <, c #56565c5c3636", -".<, c #57575e5e3535", -"X<, c #515158583939", -"o<, c #505059593a3a", -"O<, c #50505a5a3838", -"+<, c #50505b5b3939", -"@<, c #51515b5b3838", -"#<, c #51515b5b3939", -"$<, c #50505b5b3b3b", -"%<, c #51515a5a3b3b", -"&<, c #525259593838", -"*<, c #535358583838", -"=<, c #525259593a3a", -"-<, c #535358583a3a", -";<, c #53535a5a3838", -":<, c #53535a5a3939", -"><, c #53535a5a3b3b", -",<, c #505059593c3c", -"<<< c #505059593e3e", -"1<< c #51515a5a3d3d", -"2<< c #51515a5a3f3f", -"3<< c #525258583c3c", -"4<< c #535359593d3d", -"5<< c #52525b5b3c3c", -"6<< c #52525b5b3e3e", -"7<< c #50505c5c3838", -"8<< c #51515c5c3a3a", -"9<< c #52525c5c3939", -"0<< c #53535d5d3838", -"q<< c #52525c5c3a3a", -"w<< c #52525d5d3b3b", -"e<< c #53535d5d3a3a", -"r<< c #53535d5d3b3b", -"t<< c #53535f5f3939", -"y<< c #52525e5e3a3a", -"u<< c #53535f5f3b3b", -"i<< c #51515c5c3c3c", -"p<< c #51515c5c3e3e", -"a<< c #53535c5c3d3d", -"s<< c #53535c5c3f3f", -"d<< c #53535e5e3c3c", -"f<< c #53535e5e3e3e", -"g<< c #545459593939", -"h<< c #545459593b3b", -"j<< c #555558583b3b", -"k<< c #54545a5a3838", -"l<< c #54545b5b3939", -"z<< c #55555b5b3939", -"x<< c #55555a5a3a3a", -"c<< c #575758583939", -"v<< c #57575b5b3838", -"b<< c #56565b5b3b3b", -"n<< c #57575b5b3a3a", -"m<< c #545458583d3d", -"M<< c #555558583d3d", -"N<< c #545458583f3f", -"B<< c #555559593e3e", -"V<< c #54545b5b3c3c", -"C<< c #55555a5a3c3c", -"Z<< c #55555b5b3f3f", -"A<< c #56565b5b3d3d", -"S<< c #57575a5a3d3d", -"D<< c #56565a5a3f3f", -"F<< c #55555c5c3a3a", -"G<< c #55555c5c3b3b", -"H<< c #54545e5e3939", -"J<< c #54545e5e3b3b", -"K<< c #55555f5f3a3a", -"L<< c #56565c5c3838", -"P<< c #57575d5d3939", -"I<< c #56565c5c3a3a", -"U<< c #56565d5d3b3b", -"Y<< c #57575d5d3b3b", -"T<< c #57575f5f3838", -"R<< c #57575f5f3a3a", -"E<< c #55555c5c3d3d", -"W<< c #54545d5d3e3e", -"Q<< c #54545e5e3c3c", -"!<< c #54545f5f3d3d", -"~<< c #55555f5f3c3c", -"^<< c #55555f5f3d3d", -"/<< c #55555e5e3f3f", -"(<< c #56565d5d3c3c", -")<< c #57575c5c3c3c", -"_<< c #56565d5d3e3e", -"`<< c #57575c5c3e3e", -"'<< c #57575e5e3c3c", -"]<< c #57575e5e3d3d", -"[<< c #57575e5e3f3f", -"{<< c #585857573b3b", -"}<< c #5a5a55553f3f", -"|<< c #58585a5a3535", -" 1< c #59595b5b3636", -".1< c #58585f5f3535", -"X1< c #58585f5f3636", -"o1< c #5a5a5c5c3535", -"O1< c #5a5a5f5f3737", -"+1< c #5c5c5f5f3434", -"@1< c #5c5c5e5e3737", -"#1< c #59595a5a3a3a", -"$1< c #595959593d3d", -"%1< c #58585b5b3c3c", -"&1< c #58585b5b3e3e", -"*1< c #5a5a5a5a3e3e", -"=1< c #58585c5c3b3b", -"-1< c #59595f5f3939", -";1< c #58585e5e3a3a", -":1< c #59595f5f3b3b", -">1< c #5a5a5e5e3939", -",1< c #58585d5d3d3d", -"<1< c #59595d5d3c3c", -"111 c #58585d5d3f3f", -"211 c #58585e5e3c3c", -"311 c #58585f5f3d3d", -"411 c #59595f5f3d3d", -"511 c #58585f5f3e3e", -"611 c #59595e5e3e3e", -"711 c #5a5a5d5d3e3e", -"811 c #5a5a5f5f3f3f", -"911 c #5b5b5e5e3f3f", -"011 c #5e5e5a5a3f3f", -"q11 c #5c5c5d5d3b3b", -"w11 c #545462622f2f", -"e11 c #555564642d2d", -"r11 c #5b5b62622e2e", -"t11 c #535367673434", -"y11 c #545461613636", -"u11 c #555562623737", -"i11 c #565661613737", -"p11 c #575763633535", -"a11 c #545460603838", -"s11 c #555560603838", -"d11 c #565661613939", -"f11 c #565660603b3b", -"g11 c #575762623a3a", -"h11 c #545460603c3c", -"j11 c #555560603e3e", -"k11 c #565660603d3d", -"l11 c #575761613c3c", -"z11 c #565660603e3e", -"x11 c #565661613f3f", -"c11 c #575761613e3e", -"v11 c #575761613f3f", -"b11 c #565662623c3c", -"n11 c #575763633d3d", -"m11 c #565662623e3e", -"M11 c #575763633f3f", -"N11 c #565665653c3c", -"B11 c #555569693636", -"V11 c #565668683636", -"C11 c #57576b6b3a3a", -"Z11 c #595960603737", -"A11 c #5a5a61613737", -"S11 c #585866663131", -"D11 c #585864643636", -"F11 c #5c5c62623232", -"G11 c #5d5d66663131", -"H11 c #5e5e65653131", -"J11 c #5e5e67673030", -"K11 c #5f5f65653535", -"L11 c #585863633838", -"P11 c #585863633b3b", -"I11 c #5a5a60603a3a", -"U11 c #5b5b61613b3b", -"Y11 c #595960603e3e", -"T11 c #595960603f3f", -"R11 c #585862623d3d", -"E11 c #585862623f3f", -"W11 c #595963633e3e", -"Q11 c #5a5a60603c3c", -"!11 c #5b5b61613d3d", -"~11 c #5a5a60603e3e", -"^11 c #5a5a61613f3f", -"/11 c #5b5b61613f3f", -"(11 c #595966663a3a", -")11 c #5b5b67673939", -"_11 c #585864643c3c", -"`11 c #595964643c3c", -"'11 c #595965653d3d", -"]11 c #585864643e3e", -"[11 c #595965653f3f", -"{11 c #585867673c3c", -"}11 c #5a5a65653d3d", -"|11 c #5a5a64643f3f", -" 21 c #5b5b66663c3c", -".21 c #5a5a66663e3e", -"X21 c #5b5b66663e3e", -"o21 c #5b5b67673f3f", -"O21 c #5c5c63633939", -"+21 c #5c5c63633a3a", -"@21 c #5d5d62623a3a", -"#21 c #5f5f61613939", -"$21 c #5e5e63633a3a", -"%21 c #5c5c60603d3d", -"&21 c #5c5c60603f3f", -"*21 c #5d5d61613e3e", -"=21 c #5c5c62623c3c", -"-21 c #5d5d63633d3d", -";21 c #5c5c62623e3e", -":21 c #5d5d63633f3f", -">21 c #5e5e62623f3f", -",21 c #5f5f63633e3e", -"<21 c #5d5d64643838", -"121 c #5d5d64643a3a", -"222 c #5d5d64643b3b", -"322 c #5e5e65653b3b", -"422 c #5f5f67673838", -"522 c #5c5c64643f3f", -"622 c #5d5d65653e3e", -"722 c #5c5c67673f3f", -"822 c #5e5e65653c3c", -"922 c #5f5f64643c3c", -"022 c #5e5e64643e3e", -"q22 c #5f5f65653f3f", -"w22 c #5f5f66663c3c", -"e22 c #5f5f66663d3d", -"r22 c #5e5e66663f3f", -"t22 c #5f5f67673e3e", -"y22 c #58586c6c3737", -"u22 c #59596b6b3b3b", -"i22 c #595968683d3d", -"p22 c #5b5b6b6b3e3e", -"a22 c #58586c6c3939", -"s22 c #5c5c68683a3a", -"d22 c #5d5d69693b3b", -"f22 c #5c5c6a6a3939", -"g22 c #5f5f6b6b3b3b", -"h22 c #5d5d68683d3d", -"j22 c #5c5c69693e3e", -"k22 c #5d5d68683e3e", -"l22 c #5d5d6a6a3f3f", -"z22 c #5e5e69693e3e", -"x22 c #5e5e69693f3f", -"c22 c #5f5f6b6b3d3d", -"v22 c #5f5f6a6a3f3f", -"b22 c #5d5d6d6d3e3e", -"n22 c #5d5d6f6f3d3d", -"m22 c #5c5c6e6e3e3e", -"M22 c #5d5d71713c3c", -"N22 c #5e5e70703e3e", -"B22 c #5f5f73733e3e", -"V22 c #616165653232", -"C22 c #606066663636", -"Z22 c #626266663434", -"A22 c #606066663a3a", -"S22 c #616167673b3b", -"D22 c #606065653d3d", -"F22 c #606067673d3d", -"G22 c #616166663d3d", -"H22 c #606067673e3e", -"J22 c #616166663e3e", -"K22 c #646467673a3a", -"L22 c #606068683535", -"P22 c #62626a6a3737", -"I22 c #616169693838", -"U22 c #62626a6a3939", -"Y22 c #63636b6b3838", -"T22 c #63636b6b3a3a", -"R22 c #616168683c3c", -"E22 c #616168683e3e", -"W22 c #616168683f3f", -"Q22 c #626268683c3c", -"!22 c #626269693f3f", -"~22 c #636368683f3f", -"^22 c #60606d6d3f3f", -"/22 c #61616d6d3f3f", -"(22 c #61616f6f3e3e", -")22 c #63636f6f3d3d", -"_22 c #66666a6a3838", -"`22 c #64646a6a3c3c", -"'22 c #64646a6a3e3e", -"]22 c #65656b6b3f3f", -"[22 c #666669693c3c", -"{22 c #64646d6d3838", -"}22 c #64646c6c3b3b", -"|22 c #65656d6d3a3a", -" 32 c #64646e6e3c3c", -".32 c #67676d6d3f3f", -"X32 c #68686d6d3737", -"o32 c #676770703b3b", -"O32 c #696970703d3d", -"+32 c #686870703f3f", -"@32 c #6a6a73733c3c", -"#32 c #6a6a73733e3e", -"$32 c #6e6e73733939", -"%32 c #6c6c74743b3b", -"&32 c #6d6d76763d3d", -"*32 c #6e6e76763d3d", -"=32 c #6f6f79793030", -"-32 c #71717b7b3434", -";32 c #72727c7c3535", -":32 c #74747f7f3333", -">32 c #717179793e3e", -",32 c #727278783c3c", -"<32 c Gray25", -"132 c #414141414141", -"232 c #414143434040", -"333 c #424242424040", -"433 c Gray26", -"533 c #434343434343", -"633 c #424241414646", -"733 c #424242424444", -"833 c #404045454141", -"933 c #404044444343", -"033 c #404047474040", -"q33 c #414146464040", -"w33 c #424244444141", -"e33 c #434345454040", -"r33 c #434345454242", -"t33 c #424247474040", -"y33 c #424247474141", -"u33 c #424247474343", -"i33 c #404044444545", -"p33 c #414145454444", -"a33 c #404044444747", -"s33 c #404046464444", -"d33 c #434347474646", -"f33 c #444445454040", -"g33 c #454544444040", -"h33 c #454544444242", -"j33 c #454545454343", -"k33 c #444446464141", -"l33 c #454546464040", -"z33 c #454546464141", -"x33 c #444446464343", -"c33 c #454547474242", -"v33 c #464647474141", -"b33 c #464647474242", -"n33 c #474746464242", -"m33 c #444444444444", -"M33 c Gray27", -"N33 c #464646464646", -"B33 c Gray28", -"V33 c #464646464848", -"C33 c #414148484141", -"Z33 c #424249494242", -"A33 c #434348484242", -"S33 c #43434a4a4343", -"D33 c #43434d4d4545", -"F33 c #444449494242", -"G33 c #444449494343", -"H33 c #45454b4b4141", -"J33 c #474748484040", -"K33 c #474748484242", -"L33 c #474748484343", -"P33 c #444449494545", -"I33 c #44444b4b4444", -"U33 c #45454a4a4444", -"Y33 c #45454a4a4646", -"T33 c #464648484545", -"R33 c #474749494444", -"E33 c #464648484747", -"W33 c #46464b4b4545", -"Q33 c #45454d4d4242", -"!33 c #46464c4c4040", -"~33 c #47474d4d4141", -"^33 c #46464c4c4242", -"/33 c #46464e4e4141", -"(33 c #47474f4f4040", -")33 c #47474f4f4242", -"_33 c #45454c4c4545", -"`33 c #47474c4c4545", -"'33 c #46464d4d4646", -"]33 c #47474c4c4646", -"[33 c #47474f4f4444", -"{33 c #47474e4e4646", -"}33 c #47474e4e4747", -"|33 c #43434c4c4949", -" 43 c #454549494848", -".43 c #474749494848", -"X43 c #46464a4a4949", -"o43 c #46464a4a4b4b", -"O43 c #47474b4b4a4a", -"+43 c #46464f4f4a4a", -"@43 c #44444d4d4c4c", -"#43 c #46464c4c4c4c", -"$43 c #47474c4c4f4f", -"%43 c #46464f4f4c4c", -"&43 c #484847474343", -"*43 c #484847474c4c", -"=43 c #484849494141", -"-43 c #484849494343", -";43 c #48484b4b4040", -":43 c #49494b4b4040", -">43 c #4a4a4a4a4040", -",43 c #4b4b4b4b4141", -"<43 c #4a4a4b4b4343", -"143 c #4b4b4b4b4343", -"243 c #484849494444", -"343 c #484848484646", -"444 c #494949494747", -"544 c #48484a4a4545", -"644 c #49494a4a4444", -"744 c #49494a4a4545", -"844 c #49494b4b4646", -"944 c #4a4a49494444", -"044 c #4a4a4b4b4545", -"q44 c #4b4b4a4a4545", -"w44 c #4a4a4b4b4646", -"e44 c #49494c4c4141", -"r44 c #48484e4e4242", -"t44 c #49494f4f4343", -"y44 c #4a4a4c4c4141", -"u44 c #4b4b4d4d4040", -"i44 c #4b4b4d4d4242", -"p44 c #4a4a4e4e4040", -"a44 c #4b4b4f4f4040", -"s44 c #4b4b4f4f4141", -"d44 c #4b4b4e4e4343", -"f44 c #48484d4d4747", -"g44 c #4b4b4c4c4444", -"h44 c #4a4a4c4c4747", -"j44 c #4b4b4c4c4646", -"k44 c #4b4b4c4c4747", -"l44 c #4e4e4b4b4242", -"z44 c #4c4c4c4c4242", -"x44 c #4d4d4d4d4343", -"c44 c #4c4c4e4e4040", -"v44 c #4c4c4e4e4141", -"b44 c #4d4d4e4e4040", -"n44 c #4d4d4f4f4141", -"m44 c #4c4c4e4e4343", -"M44 c #4d4d4f4f4242", -"N44 c #4e4e4c4c4040", -"B44 c #4f4f4c4c4343", -"V44 c #4e4e4e4e4242", -"C44 c #4c4c4d4d4545", -"Z44 c #4d4d4d4d4545", -"A44 c #4c4c4d4d4747", -"S44 c #4d4d4c4c4747", -"D44 c #4c4c4f4f4444", -"F44 c #4d4d4f4f4444", -"G44 c #4d4d4e4e4646", -"H44 c #4e4e4f4f4747", -"J44 c #484848484848", -"K44 c #494949494949", -"L44 c #484848484a4a", -"P44 c #494949494b4b", -"I44 c #48484a4a4949", -"U44 c #49494b4b4a4a", -"Y44 c Gray29", -"T44 c #4b4b4b4b4b4b", -"R44 c #4a4a4a4a4c4c", -"E44 c #4b4b4b4b4d4d", -"W44 c #48484c4c4b4b", -"Q44 c #48484f4f4848", -"!44 c #49494e4e4848", -"~44 c #49494e4e4a4a", -"^44 c #4a4a4c4c4949", -"/44 c #4b4b4d4d4848", -"(44 c #4a4a4c4c4b4b", -")44 c #4a4a4f4f4949", -"_44 c #49494d4d4c4c", -"`44 c #48484c4c4f4f", -"'44 c #4b4b4d4d4c4c", -"]44 c #4a4a4e4e4f4f", -"[44 c #4b4b4f4f4e4e", -"{44 c #4c4c4d4d4848", -"}44 c #4c4c4e4e4949", -"|44 c #4c4c4f4f4848", -" 54 c #4d4d4e4e4848", -".54 c #4d4d4e4e4949", -"X54 c #4d4d4f4f4a4a", -"o54 c #4e4e4f4f4949", -"O54 c #4e4e4f4f4a4a", -"+54 c #4c4c4c4c4c4c", -"@54 c Gray30", -"#54 c #4c4c4e4e4d4d", -"$54 c #4e4e4e4e4c4c", -"%54 c #4e4e4e4e4e4e", -"&54 c Gray31", -"*54 c #49494d4d5050", -"=54 c #4a4a4e4e5151", -"-54 c #4b4b4f4f5050", -";54 c #4c4c4b4b5050", -":54 c #4e4e4d4d5252", -">54 c #4e4e4e4e5050", -",54 c #474750504d4d", -"<54 c #474750504f4f", -"154 c #484850504141", -"254 c #484851514040", -"354 c #494950504040", -"454 c #494951514242", -"555 c #494952524141", -"655 c #4a4a51514141", -"755 c #4a4a50504242", -"855 c #4b4b51514343", -"955 c #4b4b52524040", -"055 c #4a4a52524343", -"q55 c #4a4a53534242", -"w55 c #4b4b52524242", -"e55 c #484850504545", -"r55 c #494951514444", -"t55 c #4a4a50504444", -"y55 c #4b4b51514545", -"u55 c #4b4b53534444", -"i55 c #4b4b53534646", -"p55 c #494955554141", -"a55 c #4b4b54544343", -"s55 c #4d4d51514040", -"d55 c #4c4c50504242", -"f55 c #4d4d51514242", -"g55 c #4c4c53534343", -"h55 c #4e4e51514040", -"j55 c #4f4f50504040", -"k55 c #4e4e50504242", -"l55 c #4e4e50504343", -"z55 c #4f4f51514343", -"x55 c #4e4e52524141", -"c55 c #4f4f52524141", -"v55 c #4e4e52524343", -"b55 c #4d4d50504545", -"n55 c #4c4c52524444", -"m55 c #4c4c52524646", -"M55 c #4e4e50504545", -"N55 c #4f4f51514444", -"B55 c #4e4e51514646", -"V55 c #4f4f51514646", -"C55 c #4e4e52524444", -"Z55 c #4f4f53534444", -"A55 c #4f4f53534545", -"S55 c #4d4d55554040", -"D55 c #4c4c55554242", -"F55 c #4d4d54544242", -"G55 c #4d4d56564343", -"H55 c #4f4f54544040", -"J55 c #4e4e55554343", -"K55 c #4e4e56564141", -"L55 c #4f4f57574040", -"P55 c #4e4e57574242", -"I55 c #4f4f57574242", -"U55 c #4c4c54544545", -"Y55 c #4c4c55554444", -"T55 c #4d4d54544444", -"R55 c #4e4e55554545", -"E55 c #4e4e54544646", -"W55 c #4f4f55554747", -"Q55 c #4e4e57574444", -"!55 c #4f4f56564444", -"~55 c #4e4e56564747", -"^55 c #4e4e57574646", -"/55 c #494950504949", -"(55 c #4b4b50504949", -")55 c #4a4a51514a4a", -"_55 c #4b4b50504a4a", -"`55 c #4b4b52524b4b", -"'55 c #4b4b50504c4c", -"]55 c #4b4b55554d4d", -"[55 c #4c4c51514b4b", -"{55 c #4e4e51514848", -"}55 c #4e4e50504b4b", -"|55 c #4f4f50504a4a", -" 65 c #4f4f50504b4b", -".65 c #4f4f52524b4b", -"X65 c #4c4c51514d4d", -"o65 c #4c4c50504f4f", -"O65 c #4c4c53534c4c", -"+65 c #4d4d52524c4c", -"@65 c #4d4d52524e4e", -"#65 c #4f4f51514c4c", -"$65 c #4e4e53534c4c", -"%65 c #4e4e53534d4d", -"&65 c #4e4e53534f4f", -"*65 c #4d4d55554a4a", -"=65 c #4f4f55554949", -"-65 c #4e4e56564949", -";65 c #4f4f57574848", -":65 c #4e4e56564b4b", -">65 c #4d4d54544d4d", -",65 c #4d4d57574f4f", -"<65 c #4f4f54544d4d", -"165 c #4e4e55554e4e", -"265 c #4f4f56564f4f", -"365 c #4f4f59594040", -"465 c #4f4f59594141", -"565 c #4f4f5b5b4343", -"666 c #4e4e5a5a4646", -"766 c #4b4b50505454", -"866 c #4b4b53535555", -"966 c #4c4c50505151", -"066 c #4d4d51515050", -"q66 c #4f4f51515050", -"w66 c #4f4f53535252", -"e66 c #4f4f53535454", -"r66 c #4d4d56565151", -"t66 c #4d4d52525858", -"y66 c #4f4f54545858", -"u66 c #4f4f5a5a5454", -"i66 c #50504e4e4141", -"p66 c #50504e4e4242", -"a66 c #50504f4f5454", -"s66 c #505051514141", -"d66 c #505051514343", -"f66 c #505053534040", -"g66 c #505053534242", -"h66 c #515152524242", -"j66 c #535350504141", -"k66 c #525250504343", -"l66 c #535351514242", -"z66 c #525253534141", -"x66 c #525253534343", -"c66 c #505052524444", -"v66 c #505052524545", -"b66 c #515152524444", -"n66 c #515153534545", -"m66 c #515153534646", -"M66 c #505055554141", -"N66 c #505054544343", -"B66 c #515154544343", -"V66 c #515156564040", -"C66 c #525255554040", -"Z66 c #525255554242", -"A66 c #525257574040", -"S66 c #525257574141", -"D66 c #535356564141", -"F66 c #535357574040", -"G66 c #525257574343", -"H66 c #535356564343", -"J66 c #515155554646", -"K66 c #515155554747", -"L66 c #505057574545", -"P66 c #505057574747", -"I66 c #525255554444", -"U66 c #525254544646", -"Y66 c #525254544747", -"T66 c #535355554747", -"R66 c #525256564545", -"E66 c #535356564545", -"W66 c #525256564747", -"Q66 c #535357574646", -"!66 c #545453534141", -"~66 c #545456564141", -"^66 c #555557574141", -"/66 c #545457574242", -"(66 c #545457574444", -")66 c #545457574646", -"_66 c #555556564646", -"`66 c #565657574545", -"'66 c #505051514949", -"]66 c #505051514b4b", -"[66 c #505053534848", -"{66 c #515153534848", -"}66 c #525253534b4b", -"|66 c #505051514c4c", -" 76 c #505052524d4d", -".76 c #515152524c4c", -"X76 c #515152524d4d", -"o76 c #525253534d4d", -"O76 c #525253534e4e", -"+76 c #515154544b4b", -"@76 c #515157574949", -"#76 c #505056564a4a", -"$76 c #525254544949", -"%76 c #535355554848", -"&76 c #535355554a4a", -"*76 c #525256564848", -"=76 c #535357574848", -"-76 c #515154544d4d", -";76 c #505055554f4f", -":76 c #505056564c4c", -">76 c #515156564f4f", -",76 c #525255554c4c", -"<76 c #535354544c4c", -"176 c #525254544f4f", -"276 c #535354544e4e", -"376 c #535354544f4f", -"476 c #535356564f4f", -"576 c #545456564848", -"676 c #545456564949", -"777 c #555557574949", -"877 c #545456564b4b", -"977 c #555557574a4a", -"077 c #545455554d4d", -"q77 c #555557574c4c", -"w77 c #545457574e4e", -"e77 c #555556564e4e", -"r77 c #505058584040", -"t77 c #505058584141", -"y77 c #515159594141", -"u77 c #505058584343", -"i77 c #515159594242", -"p77 c #51515b5b4242", -"a77 c #52525b5b4040", -"s77 c #52525a5a4242", -"d77 c #52525a5a4343", -"f77 c #53535b5b4343", -"g77 c #505059594444", -"h77 c #515159594444", -"j77 c #505059594646", -"k77 c #515158584646", -"l77 c #51515a5a4747", -"z77 c #535358584444", -"x77 c #525259594747", -"c77 c #53535b5b4444", -"v77 c #53535b5b4646", -"b77 c #53535c5c4141", -"n77 c #53535d5d4242", -"m77 c #53535c5c4747", -"M77 c #545458584141", -"N77 c #555559594040", -"B77 c #545459594242", -"V77 c #545459594343", -"C77 c #555558584343", -"Z77 c #54545a5a4040", -"A77 c #55555b5b4141", -"S77 c #55555a5a4343", -"D77 c #565658584040", -"F77 c #575759594141", -"G77 c #565658584343", -"H77 c #575759594343", -"J77 c #56565a5a4141", -"K77 c #57575b5b4040", -"L77 c #56565a5a4343", -"P77 c #57575b5b4242", -"I77 c #545458584747", -"U77 c #555558584747", -"Y77 c #55555a5a4444", -"T77 c #55555a5a4646", -"R77 c #565659594444", -"E77 c #565659594646", -"W77 c #575758584646", -"Q77 c #56565b5b4444", -"!77 c #56565b5b4545", -"~77 c #57575a5a4545", -"^77 c #57575b5b4444", -"/77 c #56565b5b4747", -"(77 c #57575a5a4747", -")77 c #54545d5d4040", -"_77 c #54545d5d4242", -"`77 c #55555e5e4141", -"'77 c #54545e5e4343", -"]77 c #55555e5e4343", -"[77 c #56565f5f4040", -"{77 c #56565f5f4242", -"}77 c #54545c5c4444", -"|77 c #54545c5c4545", -" 87 c #55555d5d4545", -".87 c #54545c5c4747", -"X87 c #55555d5d4646", -"o87 c #55555f5f4747", -"O87 c #57575c5c4545", -"+87 c #56565f5f4444", -"@87 c #56565e5e4646", -"#87 c #57575f5f4747", -"$87 c #505058584949", -"%87 c #505059594848", -"&87 c #515158584848", -"*87 c #505058584b4b", -"=87 c #51515a5a4949", -"-87 c #525259594949", -";87 c #535359594b4b", -":87 c #52525b5b4848", -">87 c #53535a5a4848", -",87 c #52525a5a4b4b", -"<87 c #53535a5a4a4a", -"187 c #515159594c4c", -"287 c #535359594f4f", -"387 c #53535c5c4b4b", -"487 c #545458584949", -"587 c #555559594848", -"687 c #545458584a4a", -"787 c #54545b5b4949", -"888 c #54545b5b4b4b", -"988 c #565659594848", -"088 c #565658584a4a", -"q88 c #575759594b4b", -"w88 c #57575a5a4949", -"e88 c #56565a5a4b4b", -"r88 c #54545a5a4c4c", -"t88 c #565658584d4d", -"y88 c #575759594c4c", -"u88 c #57575b5b4d4d", -"i88 c #55555d5d4848", -"p88 c #54545d5d4a4a", -"a88 c #55555c5c4a4a", -"s88 c #55555e5e4949", -"d88 c #55555e5e4b4b", -"f88 c #57575c5c4848", -"g88 c #56565d5d4b4b", -"h88 c #56565e5e4949", -"j88 c #57575f5f4848", -"k88 c #56565f5f4a4a", -"l88 c #57575f5f4a4a", -"z88 c #54545c5c4d4d", -"x88 c #54545d5d4c4c", -"c88 c #55555c5c4c4c", -"v88 c #56565f5f4c4c", -"b88 c #57575e5e4c4c", -"n88 c #56565e5e4f4f", -"m88 c #56565f5f4e4e", -"M88 c #57575e5e4e4e", -"N88 c #585859594747", -"B88 c #58585a5a4545", -"V88 c #59595b5b4545", -"C88 c #58585c5c4141", -"Z88 c #58585c5c4343", -"A88 c #59595d5d4242", -"S88 c #58585f5f4040", -"D88 c #59595e5e4040", -"F88 c #59595f5f4343", -"G88 c #5a5a5d5d4040", -"H88 c #5a5a5d5d4242", -"J88 c #5a5a5f5f4141", -"K88 c #5a5a5e5e4343", -"L88 c #5b5b5e5e4343", -"P88 c #58585c5c4545", -"I88 c #59595d5d4444", -"U88 c #58585d5d4747", -"Y88 c #59595c5c4747", -"T88 c #59595d5d4646", -"R88 c #59595e5e4747", -"E88 c #5b5b5d5d4545", -"W88 c #5a5a5e5e4545", -"Q88 c #5a5a5e5e4747", -"!88 c #5b5b5f5f4646", -"~88 c #5f5f5b5b4242", -"^88 c #5d5d5d5d4141", -"/88 c #5c5c5f5f4242", -"(88 c #5c5c5f5f4444", -")88 c #5c5c5e5e4646", -"_88 c #58585b5b4848", -"`88 c #59595a5a4848", -"'88 c #58585b5b4a4a", -"]88 c #5a5a5b5b4b4b", -"[88 c #58585a5a4c4c", -"{88 c #58585a5a4d4d", -"}88 c #59595a5a4c4c", -"|88 c #59595b5b4d4d", -" 98 c #59595b5b4e4e", -".98 c #58585d5d4949", -"X98 c #59595c5c4949", -"o98 c #58585c5c4b4b", -"O98 c #59595c5c4b4b", -"+98 c #59595e5e4848", -"@98 c #59595e5e4a4a", -"#98 c #5a5a5d5d4848", -"$98 c #5a5a5d5d4a4a", -"%98 c #5b5b5c5c4a4a", -"&98 c #5a5a5f5f4949", -"*98 c #5b5b5f5f4848", -"=98 c #5b5b5e5e4b4b", -"-98 c #58585c5c4d4d", -";98 c #59595d5d4c4c", -":98 c #58585c5c4e4e", -">98 c #58585f5f4d4d", -",98 c #58585f5f4f4f", -"<98 c #5a5a5d5d4c4c", -"198 c #5a5a5c5c4e4e", -"298 c #5a5a5c5c4f4f", -"398 c #5b5b5d5d4f4f", -"498 c #5a5a5e5e4d4d", -"598 c #5b5b5e5e4d4d", -"698 c #5a5a5e5e4f4f", -"798 c #5d5d5f5f4a4a", -"898 c #5c5c5f5f4c4c", -"999 c #5c5c5f5f4e4e", -"099 c #505050505050", -"q99 c #515151515151", -"w99 c #505050505252", -"e99 c #505052525151", -"r99 c Gray32", -"t99 c #535353535353", -"y99 c #505054545353", -"u99 c #505057575050", -"i99 c #515156565050", -"p99 c #535355555050", -"a99 c #525254545353", -"s99 c #525257575151", -"d99 c #505054545555", -"f99 c #515155555454", -"g99 c #505054545757", -"h99 c #525256565555", -"j99 c #525256565757", -"k99 c #535357575656", -"l99 c #545455555050", -"z99 c #545454545252", -"x99 c #555556565050", -"c99 c #555556565151", -"v99 c #555557575252", -"b99 c #565657575151", -"n99 c #565657575252", -"m99 c Gray33", -"M99 c #555555555555", -"N99 c #565656565656", -"B99 c Gray34", -"V99 c #505055555959", -"C99 c #515158585050", -"Z99 c #515158585151", -"A99 c #525259595252", -"S99 c #535358585252", -"D99 c #53535a5a5252", -"F99 c #53535a5a5353", -"G99 c #535358585454", -"H99 c #52525d5d5555", -"J99 c #555558585151", -"K99 c #545459595353", -"L99 c #54545a5a5050", -"P99 c #565659595050", -"I99 c #575758585050", -"U99 c #565658585353", -"Y99 c #565659595252", -"T99 c #575758585353", -"R99 c #57575a5a5353", -"E99 c #545459595555", -"W99 c #545458585757", -"Q99 c #54545b5b5454", -"!99 c #55555a5a5454", -"~99 c #575759595454", -"^99 c #56565b5b5454", -"/99 c #56565b5b5555", -"(99 c #56565b5b5757", -")99 c #56565c5c5050", -"_99 c #57575d5d5151", -"`99 c #56565c5c5252", -"'99 c #55555c5c5454", -"]99 c #55555c5c5555", -"[99 c #54545e5e5656", -"{99 c #57575c5c5555", -"}99 c #56565d5d5656", -"|99 c #57575c5c5656", -" 09 c #57575e5e5757", -".09 c #535359595959", -"X09 c #535358585b5b", -"o09 c #535358585c5c", -"O09 c #535358585e5e", -"+09 c #56565a5a5959", -"@09 c #545459595f5f", -"#09 c #57575c5c5858", -"$09 c #54545d5d5c5c", -"%09 c #55555d5d5f5f", -"&09 c #59595b5b5050", -"*09 c #5a5a5b5b5353", -"=09 c #585859595454", -"-09 c #58585a5a5555", -";09 c #59595a5a5454", -":09 c #59595a5a5555", -">09 c #5a5a5b5b5555", -",09 c #5a5a5b5b5656", -"<09 c #59595c5c5151", -"109 c #59595c5c5353", -"209 c #58585e5e5050", -"309 c #5a5a5c5c5151", -"409 c #5b5b5d5d5050", -"509 c #5b5b5d5d5252", -"609 c #5b5b5f5f5151", -"709 c #58585d5d5757", -"809 c #59595e5e5757", -"909 c #5a5a5c5c5757", -"000 c #5b5b5c5c5656", -"q00 c #5b5b5c5c5757", -"w00 c #5b5b5e5e5555", -"e00 c #5c5c5e5e5050", -"r00 c #5c5c5e5e5151", -"t00 c #5d5d5f5f5151", -"y00 c #5c5c5e5e5353", -"u00 c #5d5d5f5f5252", -"i00 c #5c5c5d5d5555", -"p00 c #5c5c5d5d5757", -"a00 c #5d5d5f5f5454", -"s00 c #585858585858", -"d00 c Gray35", -"f00 c #59595b5b5858", -"g00 c #5a5a5a5a5a5a", -"h00 c #5b5b5b5b5b5b", -"j00 c #58585c5c5b5b", -"k00 c #58585f5f5858", -"l00 c #59595e5e5858", -"z00 c #5b5b5d5d5858", -"x00 c #5a5a5f5f5959", -"c00 c #5a5a5e5e5d5d", -"v00 c #5b5b5f5f5e5e", -"b00 c #5c5c5d5d5858", -"n00 c #5c5c5e5e5959", -"m00 c #5c5c5f5f5858", -"M00 c #5d5d5e5e5959", -"N00 c #5d5d5f5f5a5a", -"B00 c #5e5e5f5f5959", -"V00 c #5e5e5f5f5a5a", -"C00 c Gray36", -"Z00 c #5d5d5d5d5d5d", -"A00 c Gray37", -"S00 c #5f5f5f5f5f5f", -"D00 c #56565b5b6161", -"F00 c #535360604242", -"G00 c #535360604444", -"H00 c #555560604040", -"J00 c #555560604242", -"K00 c #565661614141", -"L00 c #575760604141", -"P00 c #565661614343", -"I00 c #575760604343", -"U00 c #575762624040", -"Y00 c #565660604545", -"T00 c #575760604545", -"R00 c #565660604747", -"E00 c #575762624444", -"W00 c #565660604848", -"Q00 c #575761614848", -"!00 c #575760604b4b", -"~00 c #575763634b4b", -"^00 c #575760604d4d", -"/00 c #575760604f4f", -"(00 c #595960604141", -")00 c #585861614242", -"_00 c #585862624040", -"`00 c #585863634141", -"'00 c #595963634040", -"]00 c #595963634141", -"[00 c #595962624343", -"{00 c #5a5a61614040", -"}00 c #5b5b60604040", -"|00 c #5a5a61614242", -" q0 c #5b5b60604242", -".q0 c #5b5b62624040", -"Xq0 c #5b5b62624141", -"oq0 c #5b5b62624343", -"Oq0 c #585861614444", -"+q0 c #585861614646", -"@q0 c #585863634545", -"#q0 c #595962624545", -"$q0 c #595962624747", -"%q0 c #5a5a60604444", -"&q0 c #5b5b61614545", -"*q0 c #5b5b61614747", -"=q0 c #5a5a63634444", -"-q0 c #5a5a63634646", -";q0 c #585864644040", -":q0 c #595964644242", -">q0 c #5a5a64644141", -",q0 c #5b5b65654040", -"wq c #5c5c61614a4a", -",wq c #5c5c61614b4b", -"ew c #5f5f6e6e4545", -",ew c #5d5d68684848", -"re c #5f5f69695151", -",re c #5f5f68685555", -"tr c #62626e6e4040", -",tr c #63636f6f4141", -"

-[Class Structure] - - - diff --git a/src/motif/mdi/doc/pics/classes.gif b/src/motif/mdi/doc/pics/classes.gif deleted file mode 100644 index 9f5deb2c008436725d5bc654ac7a17f563f40557..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4051 zcmV;^4=nIUNk%v~VQK-YS={||`wHb_{g5r~+mxX9S(X9yW7sSr2$ zQfZl~$%eU^(&-s0>IFJFQfiv23Wd7b(drs2D+D`xQEQv4OM|-`(d!#5Yyv#IP;8v6 zjDfri(Ci#7O&Ku#0BxPUjGfG_{T=K*EDl~iOCDZrzAlaK>&_nU39m~pe=liotB>D5 z$S(_^zkzB5x-v*GAsK|K7%F^7N*z0g5G!V(I0~c1{*6<_wd#cn(;aHZ<}lI7F{Kla zrQ}?bSkizX1T9AwsAX`tGl&m>2HCrwk{mB)C7aA4>9ay>Frx*pKdwH?T>3pY z1AmI~)ZKCmB4-D86xu{!cLff37*)$D24RVp^rs<-?~Qojb-txY4P=6a_uqj5o@Qc> zD@Yhmb2{e7<3uR_NF;s~_?XX-MJ_2pkn14HWKhXXc_5X=S@~9#T3)$jmRx@6Wtif1 zIp!fsHV6)sQC5j%nPRet6r2jSDJPwA-Z>|kbyD}snenCR=bEPkI*y-Cnxm$me|~dl zpYkLsD5Qim`r4y}D!L}6j9!W#yBB&Vk`C+jY+ zz8CAPF0{&tp}tzGYYV)taVv~M28;eIpOyAlYqI(k>&&pu_5L9b&p5W~n+Aa#}wc|#m?m6Hd*=|7buKOXP?@r)IzWVOVufFt(%3r?%4@_{u|8`pL z!3q;Q@4^nplJLXPM7+?w68}i?80TJG8cVPSmhp)egv_xpEN$4|OdWB$ami8EnAuQN z*haF;mbR60Ts1ptCL%V|tC@!C^?4_Ne~nn(aZtf&;ESU9{PVhm#pvN{i4lgiXHJVJ z;MHDp&2_{6i5;~{FEIFKyEeWlip&uw4iqQghq+k7`^apnLI?U!)> zK@NEAp_NWL=PK;1x~dz7UYyXp8|`-OzhgLf;Vj^u`@}Mb&3IyA!<}}9ov(ePaiQP+ zaq^MsjPrU(Cp~;$-#gzT)21IU>z-h`$-eq;;%R4|>$~4R{A8jp|NHsZzd!x{+dn@5 z>aR^XK;Gw?a4z-4Z-IIeApaN`!2UV#f7=;U1R*%U21;;)7<`}x7l=K>%`AjFO5L)K z^$8M&Vps-@*%K0|!g;8$g<4=?40m-ya+&aexk@3hTt-9f32{F;9HJ3TQ^X@G5rIiu zVmF$Yq{CsZhbRal{uXTbLwHFMg;j)NB(Ny1DWWcmIwT_wtmv2>x-g7gG^51O=)^dd z0FH93BM9hd$2{^zk2=BQ%C?9vFG2z(encV<3K<0$x{(BkWQ8Edwn!e1k&R`f)QT$gXuNFrDT!5-@GHm2L)wU7~XfJ?jNXG3YZ!{9LE8x~aHd zN(m4>>s?^}3K}2F*=dg@EZFxRYM^mK^n?eUsF@T>HHLn)K^BscI*nJo-vy6LbMhzk ztY*<5@dcBNW7G7GRymp$ZlzgjX@On}QWDKnL};s8M}I04mCgt;PLrPTtT?siQI2ZU zqukV91eT-%C~Ms->DSPyOT8Txr@NsY^(w<2&jAm1Yu#oW?N(IxsD`a=oljab3OVTM z^>lpIo>&1&R?3|8tk^*ijYjuR!9l~CPs?UtB_p}L3Qw`0S!t>;fe%h4rXE~3^$>tJn1TF;smu{FX= zQWyT)PPY#AwSn#(f6502|b}RggVe_2&5~LzC!E_Og8w%yD1HI?H6$ zy3M7lPlzJk_>%WS=C$r-Ggn;Df+@28bZAD0d%fW`4XV`DZ?(EyB_&%sGjY@2=YXr-;2~Vee+wp4X!=ZKHW%ZDyFIQ{o<) zv|{7;(YMCxwOx#hmnWb0c*PK2Nph*^#3D11oy!!Wl23AEd)4vDOJJ-eSB&K>YkA9D z?y{G^{4gpj!OEvpqL_EW>v_+7PFIuf82)F5 zO*zm7iE=sEoDf7O#n6Bn^aLNxK~}EPm6L{L>QnEp&$O;ckPn~u2qkWD z^kO{YORhM_9l7z3kD1}$5_!ZuZgMDxJmrgCIm;LB@|V+s7IG$w(yV$FICZLuSSL17(*5$NM@%qNM|79QD@7`wC z7S($G-5OS{sz9Iud8r|i4~oxTcf@-oP>}hJQ!Q&?+kSoWO2w;my{`F|!_~3p1by}h zTlN|6^zmtVV;J)`B;PC5kk3s>61h*MVba zf=L#3we*9iM`va>gaUPb1}ID;NP-ENb58hHB^ZTLh=3Vbg;vN&OQ<}97IVmy4()(> zG0=bL^Mza(ElD^+7iE9r6nq$%g-{5CB4{o27j-!!SlG9N*ad`fXbd7ISjhodEyjRY zK~(!ShS`FKb;yVzRUH)uHp($ofW=jmSBV(2h})uu6zBdsAp#tgH-NZRdyw^srI>lo z0fz5Dat7CLbEg@vSYXUWfjhQTHc}+1Xe+D8iWcRHkpYVx)mtN$75t}DFGz=SsDQ`# zhlc2j%{W$|11nc`Sc0e`J=ceG=x1pdh#k_5i{o0Ubz6Z2U9^LRF-V2j*o0~5RV1bs zLRKNWM~Wsfc*aL|L0FC;vy1ttkIJV!SeI9T<5FhfT8CJHB@!_Eh>!^xa9X&947oZE z8DS790zK#hxG0fxr;PP@krefWb|^|J;w=`rk*5e~Y3GLYxFRQYNkur4KFEi*xM1+q zNE9h^Or?==2UZoyk1crwdS{aaC3x*9ig1BLx&FtKEjLsu>0Osdc$Zf$H0f?cC=8<@*mq74-kN9*x#X1uR9&C66P?>Vs z!G=;-mth%Q34@v37McZ=iH(VqUHF!!X@T|_m#XX?kdlMmTN5`I=bxcx2d{wi%qsR))#QoX*IY$GMu(ws-O)kM#w3 z^;1@p=q8q#IL|4Akq3EWq6bN1J}EMf{@qEQ&tjfJNIaECS)pa012vAOc$%mL!A z=6I$nnx?S1rZxJK9{Q$iN~dBtr*(>v*?6aMil^GRr+mtUa{8xmx|o_csD;{}jX0VxsZ!dhAF8N-8mb53s7&Xng)*vQ zYNw!zhEDgA8iA6_LaV82b+L+dZHlSzQh+k4lz`T%IQlVZ0Si&uSTISXIrN*?RxLlN zeL(4!dHRfSc&FOplk-$lowH*a6nHw?ov(#5oQJDzSDK}DQ-(L56SjZFd7w;*pX+$4 z4!JQ?DK}MGR}5AQ1ZZFu3aI}ooArvJ;YqN~$9~)gjdeAC{neqnxd?}YmM@A}-eeQ| zs+NffO|=@R4yy>uw|EmsnOo&!+xKAM=$Yh*jFuXkjd!dF(p{%@6y1d`ni-JPm$22S zvcy`VrMICD_MJBpeTc!?uZlUT&8lu!_fG8kUB8-?z!!i(3yzhEte2Xz{YkUs<6?Bl zJuR!Xv`2iONv>7vs;DWp_o%03yRv?YwrN|cYs;%Q>bA(~hjF{HuS&OXE2wu{w`8lg z)S9<_i>RLpxB%O>fNQi7Qm!v|xH7P~=hnE_Ik>%=Op!~thDy1T8-|xlwSr5zkDE)E z>$%3+xrxh(qib|38@j})xzAIkty^%b>$ph!wQIY#i@Uk2ySvM~z3aQb>zV}s F06U_@5YYet diff --git a/src/motif/mdi/doc/pics/mdi.gif b/src/motif/mdi/doc/pics/mdi.gif deleted file mode 100644 index c43414bc62266d5cb5f524b85f7a2b7016acf30f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13227 zcmV;cGgQn+Nk%v~VFUsk0`mX>0001vsg=;%)8*l$PF+&2q`9f8z2Dp8VO(gRma*O4 zM)j$~<`XsWJk>%OHR z&vb3yLO|er@BhG{a7Zi~kI1BQ$!t2G&?rzB4M=2xoHonddb?c04*M;G&FHf_&0f3P z@V7ippWEyByFSm~`}=@@f`No!Vl#tk1Xo-Ej*pO$l96MRmY0~Bnwy-Ro}ZwhqNAjx zrl+W>s;jJ&Sf~V60I#q)t+%+jy1Tr+zQ4f1nLDeCvtc^PvCGQM%+Joz(9_b@)YsP8 z*xTCO+~3~e;N#-ufOt?EZMDGwPK2;!)si*G6j43n`yv+P>%abo=my& z)wWJwDYisd2jZoUn%doLDKaS2mQ$-<&H5DMPna8NA}mI1XqaJXfqFg3v2RDdA3q8X zoOtWw$df0J-BmNE&P|ot_Dp&cb4;jBYZty)NhHrn?EQG1!R~BOAsN;?ZlDJ@f5Jm>%ibNJ! zq=f?Hc!`Dp7G~pmGII8wB-wFi<$OaLspXdV?FZX`vjzB}jZseGC6zxuSe%0ka_Q!q z-dSi}U>iC~7nEa73Fn@Cx_KsfU=Aaubaa)OVT*kxs_2Sx&PHdGwcRP8p3hOb=%tu~ z_h+Rs)=40tFBwV+qM4Rz>T!(@6Bv)Iiov0zA6hz_tf$s$t6rO0N9$mpkvSHrw+1V0 zTB!~OtfNm(`rbN?JOYXVormOC{ z?6&LfyYR*<@4WQZYwx}I=Buxg^qTvwSj$MTqbwQ~Z1BMdC#>+o3^!cCJUP~bg%}7_ zZ1KeyXRPtY9Cz&T#~_C+^2j8YZ1Tw{r>yeIEVu0P%P_|*^TjUFAh9wt=dAP2JooJL z&p-z)^w30Od_Yn&3`j8o2{i5W(@;k(_0&{XZS~byXRY*t@N5dKu0Trt)_uO>XZTH=H=dJhNeD|$2+r4@OH`9I>ZusGdC$9M7j5l62;BMng zxZ{*pZu#Z@m}jmz-H?wdc-)(ZF8b)Cmu|Y=kblL|;HS6l`s=XAUV7)CGR3;=xaY3> z?!2d+`eCbs-uv*x7jOLTw1?Hp$JDv!V;SBgeXj*3N5(76;coZ0AL{F z1h~8iT5W)r%1&rQgMS; z%%c7lx5&jVdhv^345JvwNX9an@r-4}A{wK3#3U-QZJv{#^&|+zH5NdPcFdz5_sGXS z`tgrv#3LHp=tjgXF?~*?8V>U)NI*LBk&uj}Bp=yGGZM0phNI!<=6J(8-mz$)45cVX zNlK9&K#G^dq~8u%y{#>hjVUbR5NAotTH5lK7?dRmbvZ&jrc#xB)1(|->B&lh(U_A= zrZShwOfe$Ui_h$$FJTDG!m)CHiJaOi?|8~IcC(q_45v838BH#hbBohNVl{&a$J(JM zn^N26Ikh;?aoY2q_#9(Bt*FLc!V;C#Tqiq|g-uRA@tgasA~G$IPcT-Xp%8^+LjJGV z&2LKcpKJ`MKvCCD7=oI^TOpJa~og2m5 zH6dtFMHZ8!#{_BtTsl;grj)2fRVhrDx<;9zvZ6KRCO~nTQ@aV%cJPdvJcSBPpd!_! z6qsUITWZv#Ce@@95Nle=T2!MxG>b@Os$9e9RE%;}p*H zvh=WSEh}PCnpVUXcCC)p;#%iQ*`NwGig&$YUNyScx?T01J=Nw<`5SH$9SB&Bmo7loIp6Q0U%Ufu6*uw%QC{K$k)e@_9tUo3! zklUJK1_SxQ%!O`@uUpq1&-jiv#xdGJyfhv+xyeh;@=~u{R zSk|(dA|(oY)4b*ytIIrM7MA+i(4HgZZvP!NyLvy4TIJDK6mM@Q$~<;qB&(QajvN^K_&|i%@j4 z``-W$xW+6x?}Eo$0rdtmzP+|=D`#}!>-1y+-fe)2TU-GOu=vFh?q`KVd~5nHcLL7+ z$&Uk5;uP1o0Ti$Rm9L!R;5K>I8m{ermt5wBM0v|Kj`9AKZ#?0F#<|o&&g@Wc`{qKI zq0Uv_^PT^^<3UgQ(`cSGl8apG<6HX1EAI1`10BFvhZ@lxj`XniPwN%OIM`kLO)~sH1xQh?%YPY!0G5+;?V}0y3=WyBWPCvY7T<=cjyW9OPb-B~g=2s{D^|YRM zji+4kF_(M-0AKZ^M_%*Kqx|75zjMs*8uX6uB;@N3`pFZ#<&{@C#Z7PT)^GmWO#C$K zNACIE%T0m64?abf9(&TaJ@b-J{Xqr)d9>j$hrGn4^rugK6uNr>O*iS0&Dq?zw~wf=2$ka_lYqS5Yhro;U7-iLdLw0m?X zei9c*`KNz-rgIqAfDZV8@Ar0aCx84#e+HO<{DgrDsAdcZfe?s&|5tmh_kE9Nfrlec z0+)g+xG^2re~1@>jF)s2XkM##flq}(<(GasxP!K|exuia+ZTe}mwW;UY@JtwCwOM4 zwt-C8f-YzPLD+Y;H-lz|goYz(OUQ%@=!7m9g^M?ZMOa`*Xo6R$gd?SeTljj#Cwm|$ zg(Em_HAH~nmxPn%V^vgPcJyE_hKAp!hCk?XUWj~zM}n$HhJ}NLXJ|!uxJG)&V0_3& zTnL11_=Rs6IKvcp`!#rdgNSq`REvm4{zz6`j|ho=_=He6iGpZ%gt&Z}*nDThiI#PT zu{Bv})mpT;T8kxHv-pXl*hP^Dh^PpFL}-b1hKW$7iF^Z#y){^5wPGx$VztDi);vkV5no+HioTOe`!Nv{`6(=MPC!R6-3WeG zc!*}$iT(JGLfK;Qm5%I4lVfE5lc$K20Z5FXMRq7jHppvAliXNn4~dL>GnLY$fm|t9N~w@x*_8Eoi6)7U;OKlm8H;PFXKe|VL&%V0se4da zm#=u2%b1r7=#`Sll*1U8#W6nS!a0yIGvY z*_)L3oBHFBw7HpLGkzMxgVH&j)QLepXo_yxm$B)TAtr~Yxrskjo#Hv3>35w8$(JJ8 zc(R$9%{iPY8J?_(hRFVziW5kZa>u=JVy8DsOg zklP8I-5Hn$%1sEGpcb~EZ@HMuxsxSWpb>eX6q<(S`IWF)pWInx!Wp40^r8A^q1s8J zn7MB>n4jPoQh9a(d-z8-DvRu;qNEj~i3y4YPv@@YKufkp@T|~ z89JL}il{~UWd3QoSa1r8f6AmwI+>OFn}r&jMB1SeilsW*V1SgSqROK^Dn&tvo#+Xs zBl(w8dYV;wmW#?oo$9E51gj9HrFmJZaCxc^dZMbDqKvwy&uFaAs)&j8jIxTX80uHd znW=QSsb3VV)Wt_RN@N##t^O&GKuV9wI;7nCn0R`ovKnpJdYPBXp6yzjd9zg$8n2Z# zuMN7cyJ~dbX{C9}ug~VME?Tbv>uPgorXG5v7@$lVV6gCbt{~}~$?8tanyL=FsuW9V z2wR#`DslzbtVa5=dTFsYnXaa)vFv)N-DdZ5PHv+8EExhkX! zYi>HL{+}V`vq)QPK&zfO>z%!7o5i#*QaiO&TeViJE=wDwB|5acH?Y2nP*)qaVmr2E z3oltKpd;(FcWSh#YQOCPj36R5fZmDSEn($wlmtc7^1iL!M7%7 zngaW@`5Lu@OSs`-xF6@YR0_BRE4YrEACL=ih|92E3$i4nY(b3%d3?8wU!&Y z_A$Enwz)*xxr_U`s=K->yOb;omkOJ+u!}c%3%av=9IP8|uG_VW%e##GyWkPL)mFNR zd%B*Ry2z^>%A0J%Te2OC0C^j|$T7XV#=M+cym!;P+AF=ao1IXKwp**a;A=PHJHFfg zTfVnCr+u5Y5ZbKS>%ObOy{cBdMH{$mbieqU8v4s=-ut@iTQ}_+!1)WmBPz1#tG1eI zzrL%$k}<%JR=~vTys-edq)7A!+WvAQdYwnY`n57#5#P!7@NYsCWdvJsGLc{O57Jj zjAKR|!PgtaRlF8g>|s6Jzm@yKU2MfnoSYf!QTNHh_=?0FT*i3u#Q_$^BFw&2499VN z#`NjHLaV+sA;;jA#WB0ZFzm=y0m=TsMaMQg zH#ls`XMxF`CCM%9zd&5co;($xyjPmM$OwGLr(71PTvejn#(@0BuY47;oKvf;#XpR_ zrhLo7kjoo2%XSMkoea!XA&Lw8!lg{kmu${0%E!42!OhIhzUrBe`Y%0Px(G*?LEbut=%dGz_(LI!d;^S4N!>^?)Y8o*mpzUrn~@Io-{r_+8#$>wicGpiV+kkTb4}h7Y~Fi4k@JmSBo&a43aju9 zjph2?%bi=9n1Kl%;k-RH(B0spolzf-PP1B+5!PPRs@|^^s)1VI9Da-*4&f;7+$HVQ z)=c7-ecqpxU=p6*E*6a|ew4)u<3t|cLX}|%ZsYVs-%YL6PmSLWPTH6)Qm{3Y>kX(E ze&I1L+B2O!Q?imC_@?P)NXXy3)?dv|-8(i71UQ82|XfX8a%2YAbUe?Bb z=Hi^@$`0_d-cSQi@RMZl3ohx_-sil|Mgfm#5ijwPMDfE;*7JPdq3-AOF7U|h@pc6A ztgY{?_|WZM=~@Es51&sRukwz>^0$ugBp?3sqJBpkf28Y}@~KVqIB!Y#9_7W}^LTyG z84vWFT2f|Y^i3tKjV`H@MfDkV@FNfEK5z0t53DOiMp{2ej;i4aiuI1wV=q?gi1&(>_d`GSdtdfI|6-c0_CiiqZBOi7pX+h&?o#dW-zxQZ-%^mz z_j@n-lFwL_k7jQAsWhwh+1+5Hs`KgY@&pR=i!bv=Li3E;_mQ9ZcR2Z$@A|OcTaX3# zX@A^uUi;>B_#*Gk_6qJiKKH0p_lkJ;eP3IcAN#Ri`BIs+Ngdo6vyexHi8INwsl`PmS?)QZ`#xf)!Q=VAWEE%pe0>?{{z~otE=Z8aeJPficm&kU@pw7^%|WNux=X zN@E$&B^;O_(6Lj|>(0%KwB+&R>2c^+urP`){fCt7S(M?_s@10OToYC^;c&nK~W zTse9T+ZXIuwAaiACR`YmTc~g!R*n0sE}@)x_0r?(*K$a}h7XI=+}Sf0#I+R9TxU}< ziO3cwZ>)UTb-v7>K@FB&yLM=EF&$Ekn9lL(5vf=2y{qi?@n?6V*`5uc&2#9{rBA0` z-THOx*|l%y-rYO?cUrlnIwU>UoodK;w+=^E94K=5k76@V==}SA{Q33o=ifhi_^3XZ zY8R`1L$4n7bYc%D_u_NVk@@Ij1Ar7NwD3X-~HPBk@5RMUKGRo)l{=0Mb3 zgmzXqWh53?<@~_{mNkHdku zjbFRbv|oSM8i?F{3tk4@L)9%c-F5}sjlg%Gg>{nk?5(y|gZ0gp3w}Eem)CDgA~<7` zaX^<uwfi+`iai{q?YOcXt7iGtcUY6zZUY3;tNS(eHb^Rs95 ze0NB2&z%QhnSVUYFgpZ3zzPP0Na^G)h+TGC510P-(4W_$@$rX6*wAAe&Yrv!FYmtd z@4=^^?ev>3-+a)b&)?kM)j@y*B%rb=$1=dVZhmQ#-SYldqy6zO3g~;_p8{Aw0utbQ zYl4^AjF-8L%nwQqtY9Q)u^b8ZuY~0a;0#i*LDp?Aa0{#-_(-@yD@8Dcy2GLR{-}34 z7rfAbt0P){NXmpckJkxDI;fe_tC0qrqHfk>Pk4=TpF8%mJ{PZV7g z#rPm9#=we46JE=R_qs0Pg^Sb*;~AYNFl!jbjAsPY4_&CiAqMY#i<;pa!xutBMyift z#9iDtRhT{U5jkmu!5aP6M#~*>Vu-Y#_wXml7vzc?Sqn@gK{+ZvRuPa_oInKL2FsdN!Y1mpc}Z>>^Hp==WGBb|*+eqd&5>)_ z6F_{q&SIrfjqfC88xy#sSSquV$)p`XS3pK-o|7#9bZAi8c@-EIkxlVRXg%$B&mKyU0?epR}e| z=>yiVI%BNEtg1m>3QL&QaF%TSrCXT;*SIocu2dBy7U8#14`wx-YCGx*{c0P)1{M;7 zEvsP(iB)=nQ-m;TYzZHGo1IEFpgvV)Wm|dJ4$3dDYTYVdYx(|J*+f>fji78Gv1i$C zVm7S`wI^5k2;0xdcD9SCEh{A;ld~32v722`XDbNYEroWtAt~-QaeGj_E_a!n^{pLm zxkKSj*9O&vCvN4b+{_lWx2|>OcT*T%@zQ|21?47o4WwP8c9)Uvl^}fMD}(vg)vSnB zEq>Q4zI8q`msVS_7t%SQ|Be=rKeer5?Axf-^7f)l~j{q0; zw8P_QhCRAO_R`eDkGxuNO?={Jr1-Wg&h1MLyx|yk)x%0D4M@IgHOCe}ZQq>)DcP+_S2Mc!D=}@?@ndO#Z^|__zSf@Gnfuhth zx59kqE_+MQB`z~apj^4+!VztH1*3H8)K~uUt5m%er~D zFWxH#FmUMCCOT($#u}GN9nFA{dD4vdvqn>^$u~2XJ#zjZ&R%h9TswM{IW>u@S8cL0 zXYnH#im{E+3dc~3nwAu&*Gi{#2VCF-CwRf3+nFZ!xz)uC zbVt8^VA=^u;uEJhh7PWogqL~Yc5QQZW1Z|-{=28*BPaQfF0RLF*LwyVAMmS(`f+ei zihapSSix<6bDR_KjsoXL{2IzH`E4+{r9AZ^MtR zULebyeFID#5Yq?sQuf^EFQ7V)FDx;mXPtJ28ldF7K0dJPNbF;OGSJB?bcS>L<=)0R zjJ2+GqIKP|Gk%`baa?vx_t@inuX3E-19&tiZ15-4)(&|{cSj(e*r=6qxBLBYwg05; zQa#epY4`iu z2i1MSo1XFx9x3#Va{m9OU-8!$e)cU^eD=YR@2j;e`xgV;Gmp_FRgkx<*%SPWFa0|& zK|3VSYd@q*ItxjdlG{L%qccs|vM_@;Eg3B*kJG%+=Bn`7b1X!1( zGl10LKpdnv4+IAh1DHm8wuqv!A9z6Via@LTF&Pvhr&~fMyg6IbgqvzWNPD+u+b2Ad zG!!H*6-+Y=BRUL2LfS)tCLBXD47evOvLH;dDg?sjBf{x2LcI&VCW*l?EC5ftLp;nw zJahv+>_b2NLqH5fK^(+CJj4D3EVU2(!4UM7FL1-*(mxk;xY_%+RCo%@3xjr3L`4)q zlENuI%R()zw5ifI&U+(C9KQeaiBqt|OZfl;XS&8L*PR%?31%+CwZJldaOr#yhnV@M}6GKwa~rAQAg2&#BY2- zhN{4YI!J`v33OBnfRrqDG{vh!#e|$licF$V7)Hx$$iNcFj^n>yG{}k!Ns**LN+8Bw z%f=gc$QA>`k!(qdT>i+U(8##rNbCDT_H#*`L`aytKV%#`m0Z7Y%t@itNq_vRp7c4I zd?k;Z7djkDr?j&9Gs(+C$(7qeUUZ|Cyve8BN_%;xNGrdXJW7>IN@HV5t~^U-ib{^z zndiess+2FQ?8d5#LuPzOaYReJlsy!J8@9Buw}eYw6gIguyMa7K|I16nq>L;psRqm= zUiwOEkjb$6$terU#Jo(s@W4lNw;;p@$%HDh^d_yuOwuH(z1)^7#1cl^Om+H80E(9AJB&{Ob+GwlOcInEU-8Z6z)u(uPJYAA0gX_&DayB^PHVGH zcZ5(0-OwSR(7&?KUvp4jWXg!XGolzRCQ5!|kom2_n zL@5mYPns#w8x2w+9a17KQX>u09Ca!XT{RJ1${z(M6Rp89Q2+%n04lvwEX`6a-BK>? zQZM~dFbz{N9aAzbQ!PzWYGP2bgH7w=F$pxxC{4O6T>vXJQ#-v=Jk3)*-BT|`Q;}KH zNo!L6o5a32H54q3QYw{FMO{=zZB$2nR7j0fNi_gJolZ4%fgY_(4J}kM!O}57)GD1+ zQ5{uMEmc!x)Ji=HKvg(4Eic0C$U*HtPW4nW0o7BzRb0(gU6s;QEr=bhs7xiuoQP9e zJri5qRb)+8Wu4SswVPGdxK^dF>uOKMGSOlklw)01ZQWLGJ(Fe~m}i~3Xce%zTt;C{ z5NkcrnakF0ZC7{ARR#OUa6P5Tr& zd7Zv`RkM42(}*kpPBqpPt<#dtS(4REPqfb^Q_xS;SdKkcC#hL%RaYuKQl(v5rfpgp z<=M^DHAKvYUv;Qph0~8+SBZ66uI*Z{Rod{3+Ft<}1_avC(b&~XzJzU4_Jq}r)mJ`^ zTe+QEx~*F-4O?e}Lh)41))d;8jWUR=R=XWs!Yy3G?NYogH3bwx#vPZIMZdq*H>J#1 z5(Os?z1&QsLg>`QzBSmZo!QIfP?5r;NCPvKZCuAi+q8YVwRP3Dt;x5oT;}A%@2p+h zz1{8n*84=;&;6!V#K_Rq4Bh<{)g4-g``zHBkKygyOYPmvLf+)Hjpe1<$NtT~$Q?Sj zJ=bVF0CVhK@BQBEm|oAUUI@J2yffDY0$=rAU-sn>@f8g6Ekg5sy~&N;;NVC6&0qc9 zU;gc1|J7d)g{=5}!})DF|J2mmOkg?+V9+Yw0-o0Fg+~RR;Pg7pR;*fpa$XAFVD3^& zsl?!QGTyu7U=ju)=mFmM8sJBKU^hL&5`JN>$R~3$TX1z?guOe3?L{YrVIJl?3r5X7 zLpdAX#!+0)n04VEPT~qi;b=15s8iu}WZ~DXUxHNP9)?=JJzXt^%+%#wDL!JltYRyM zVJwDDpDj@s{O8VU588&2=&Ex9XkgJTuKc?l&eBWKJWDOdUSYBA5 z6lN!=;<|}64*h1uu%;s^sVj!%o4)BgwAZ12(5ZgpWy5NYPH8EsrY{$)0S=u58N=5i$5{ zKYnbnj_k|+Y|svE(GC&;$ZVlrWVz;S%mlz1G?T=BZPhgz6WI=K;U4aD18xCo?a~f|#-8Tg9_HRo7SsM|>&xi60rKtS1_R9&>A-GoqO29R z6Ck&fZp(Q0v1meyCb=B1aPihw2UY(Iv;p9zPQSjB+V|gs!XdW4ZEkR&V~^ z@>KM046G0h9Bnv{b2%@OLveGszV0u`ZvIVH^P%kW00izi4|G8v^b4u;+QxG)Snhu2 z^FD`g;(l~UkMyQ9b3of~MsIW}k#tSpbWTqa$Zk%qTJqq&US6zc5dfh|2X!Xw)U6gc5*Lwb3b?W)pf@f_mG5WcYk+yk9T>W zcY2?9z@24w&v$*V$gdvJegAiW=bYTu@qjOQgO8Mc-{FH_c!uYRfmi5;k9dhUhJ;u0 ziNAP^4=PK~c#iM*^loX75BZFL{&)@-d6PHzim&#QU-^6|c{!~2dba?Ww|ACj`IKjp zs$TW&G>4qm`R26On#XvT*VLZ(dF5Q4qBnZv%<#DtS5W5S9(HpiL^(1x*tTlcl)CQ*_r}xFse?A5zg$LXF!YBPXZhcUAea=69iC=unFZOvX1>1jo*`NK? z#6(_$ecZqJ${#emcSU*rtbOP+euldI1*3iDPl($;ez^bq3|)QU=i;`se&Anz=BNI( zY{cuwe!owBkK}&7B!9kSoY5D5`g8y92Y>WNe}LD0<=+6o@BI-&V+cT}6of!Z;LO@7 z7>Wf@n&p_1fZ9rwg=I5c+c%!;JKy_1Fen@ni^d}|N#pM(-bY3mh z>GY+b#v^Ym!-aj!ps>kYc7xCtB|fj;^ZWikU?2?>mDSbM)76z0&6)?D2;3YP3nUxN zod(CHC7I;dB%Pg%V5#XTYO3n$5Mg4}RMk}$!q(G)XJbjhn|E8Q(_c~*(}!VW)M2;xAiUDxPFWtYVzt@MNU35vTfT@On%ozW-f&$4H~?JC7F zOvsmU?fzv!FdysF`B3~u_m?*EOv#k*8^t};B0hcnH4XQk;Jt1IvBy`k-wvr6yY zHavUrPQkCA$0+7v?C#DO7`kE5hN~UNAAywo2i0*P$~a>Z4c_-)UhHMK zk$rH>YR`6ir8-sR+&YLY3X3qTHNr~40-6)v z{^@6)9SS-rh;lY*sELYl1L>K1W=dhAF1D$nq?DSPAfdTos^gHMw#umpjox{TnRNhq zDz4vIN*aXar3or_u-eMqldT3jDxFArHP#FMdz3ZT zT}KR*)M2-C^tUpbeKy($pp`b;ZKG_G*l|PCpdzY<+_ck`G5u@a{=h9a;LAXiR0&uZ zj`VJQZ??ALdjB0bUNxd5?TdUqShb{@*!J-V7V z>z{`{dmr&wu5-dSsn&Ds7rudB=lsMfJMG2eLH4RQ4fbAYy8A|%X3h5`UG&%jJ=pTm zzeha@(9f~GZ|F?|wejU2k8@);VxBbi!~xGe{J>BDzWd6z{5$^fkEDP0{jVi|9f)VX z0m36+_+b*Sa-_Wa%};m@^dJ44H$2}hFns&l2>&u@!TyDSd<6Vp0Z0CXyX3WRgAByq z1LIc~`Sp%{-!tI`QOH0Q{!fA(6d(w5_$33@1%V(_Ux8N%>_ zLj)krbSOm~Pz`lPUywwso?zo$h=mJmV?PdD63<_Pi%P^XX0pweeE={3k#ID$s!vw4eq(C_?w? z!`rA&G}3%1L?bHEiBhzp7QHA&Gpf;za5V;S36lf_cDvX;FpW;3hV&2qN0o^>l0 zAnRB}BxNF|EiGzKE7vBeHnpy8Eo@&a+t|`}wzjP;Zf~pG-12s}zU?h=e=FSJ5_h=9 zEiQ78tK8yVF1e$WcC)M9?Q*xf-u*6k!z9>Ix1S~cWQ|0s9MSTX$lvs(D>>aYDyPDd|``hXp3|uSxdT3&| zJIq{6d}|E-oEuF&{YNR=maT2YP4eBn5-x5=UjB3rqK*!Z+;093pDsVbKEGa%zt7+A z{|_*rz<~q{8a#+Fp~8g>8v?xNPzFQ}6C(<;D5WAs{uUZDbd30MV~>y`lj#dVl3~h{ zI99Smc{1P22QFvYyoocX&Ye7a`uqtrsL-KAi+-qSlmSu*OAR(n8Yd=H3{M+W9e8yr zRjFDlWSzyekh3pcLZxpeE=y^GiGTA_RQ?(<6*@Xx+sMGBT1 z@|(JIA4ern#)fdz1&dEM7WKH3j>B;iXOl$Pa#&i}7AezA?}B8CpDR0nNZQwF&@Bt+ zbIND0h$Sg zdtWcVJc)Pb8)9cB&Fz?>KJ+1z-+tbGBxa8OEHQfTA9a;nBpDLok!%APg)7(kw{i|E(OqWws@T#AP|9bjWzvCzp7B321%+zWF7X77$qH zoHb&HW}#Si>ExV)BC6-1h0VAVqwN8?Vp@_)nr5j97I$f&r;7Tgpsap}=w*x2DN}18 zx;kpBrt%r5p;%@L>!yt&Mr)Fl_ILhjuB)y}sfCvM%B-ubrV8zyyv~ZPSHljPsExRO z%Wbo8npbU}i7tz(oY-*$AGx#uGVP?Q9-FML*Jes>xukM?uP57n+NQhMz*}#)^P*d@ zzM7J&u8}S5NoJb|$Eqf1THYIR#Rmf$Z?xn5>#)2X-?}Tt$q}+ErhvK$vYdcfyz<57 z4)|M?G>39=#w|Liv5?a8*>bNN+UnxWK!4)#ia19}v9}F>%I><&1i0+ZBg`+~EfeepBHJ`u?Z}B#c&%ZSK>jE`x z`LBQY8=wITh`{|FP=N^qAi{cQyZ=>#ffRJ$H7qE>3r^5WRwG~qCx}50hH!xvl-~#& z2*MOL)(J7H}TBKbW>6gSJc2Ps83u6~dxW+ZL z@r>PoV;mWF$Dz1!DtpXh82XqyI{L94fCQc(2U(6np5>5{VeF;v#NC+wSe7SonapPtOWNC1L(GNFPooNApP4SQuZczrm?%5fMOC2AXeu-(q4Os~ z6Q-eWX)T4#9sy`)_S-GU9t>AO39-X9&i1t#WEoc*DWzT=AbPSj9 z)Q>3@pWd+gjJB=qY7}i1sQ80ewSJSW<}{;M_sLjHM%E&I)yZBJ@-n-=q_R$3YiB=p z(~WSJa2aLEXti-#n_QN2zI-fKCo5UyX)=qRoh;-4OUkzP4rh&}S8ZG?N7!z3IB?Bv zZ_EBBF`l*4x6%Zzabc^=X*#Mm)@0Z*yDHq_+P1VbEGadq`_<)^=y<7(MR_;N-MA@f znE=9%h#<6w`{crY2^HOWO`Be9trxE~nrqDD=`G&)*S`oV-F?N9-|iahqYP%+#*ih` zDrpy^6y_!wvpeA!JQPy?38}cqK{7)9%x?!K!fNA~)O$|GR$7WF#2(yHssc-?igPYg zg_~lXR=8V7h3U^`>ZgQtthpBcYGk7uPV~GB5km%YT78@^=+0Jk2_|Q=*lX1f!?jCj zW$upcJLS8an5Gu8Db%t#9e-K5ypJ4oP+8cs)l$LmGX;cH*Q7;_F2NyQe-l zHdZ1H5@^rEdC3N}R->rsYFqnZ(q3n_yS?pNeuVAF^>VMts;Kxf`u>jdEM39M=#waLCQ8a3jH5bEmVc-H|qY zMQUSOj_8QHEaceE*#?9!ys>hy;qojVU5#fjlg#y|lR_5imTz5-9eUWJx%kJO4{EN0 zrLZsWy7cf)aX+67)YYF|q`EiXzGPK$+7pZGSDmVdC)Ow9|M+Z=pF-t@@2?~7{;aKc zvTPtvRq8wc<!oyYcb|H1MXvanpZW6s-`Q(y3N&-LzyAB% zSm*f9KU;F>^Q9X|E=Mw{}U-cXa~vfH((%85n`8 zV1XCNS9M2soz#B_)^R47P9=y13TR{`$AIF%f-fk8hBtdNXoEC}c`A5=I~a95m_0hk zep{@=tKV|g!tuyMhJydXoX9cgI5T09LR+exN;g8VmwfU zTBsXccxzzTfnTU&LDz(2$bcXBNp0wcp|pgFHixiugz$EU!&HY(xQB!Ghk;0WjI?v+ zqg$r)a|b1eQ*>KKXNWzRbZn<${4$1%=mgOPiQ_VLM`!*sIwg9RxIIy*V4CQ4F}6=- z1x;5`iJ*9HeRz2L6>IwQcaq3s%*RZ(LVxllhpe~+7w1wn^-u%0cWbw29o8Ls_afx6 zioAFNAD4NGXN)DIWt3AI5WiYiRTDu>F5shl6&AHV(y4F@K}vQmW}inHG@ceBcpua$dBvtk81OKyC{%y zhi{itS0fdU327%lV~rDujSl&cLU3&0XJ&$RGvpU2j>99~g(ETpVjS6#K=6_M7!4vB zBvHm@hDDC>_kNGqk_?xJrni%n#gac6XO)J4LjDHWw#nhA#_mo2z zm035HQdpG~*OMTZm0H=AUpaPQxsyyOma`vz2%mnBG>Gy%v;(xs7q@hl&Y4lORnH#tamzi*&DUg6EnqZWerRi~}iJIX6vHPnVR{W%0@$!$(hp6_X&18S8DdXxvspr-kt23Vkm8KK#6m;vXY=sBT;l%eFgp?+1N78;`K z*N8fqVZe7+c4ZwSYM=ypk>+_EY{GW}1!LGViNv*BE=Od77k1U9ldfTZE_b7LLpWQc3hLDYF494 zVk+|}dw6JdiI|K(qK`54KpcYpsh~2bY{-pmUz@zU?0`3 zb%CVt3Q+;Yc#E2N8RMRX>QuOxXMGA!WoA!Kqa%V^tpF;5Ah|O+NsR$}uHht%P#UGh z#bw|~H3HURn!2W9wy-c6SQ$B!R|T?y1*U$+q6gQeJejfsm#{7Sn|9NyFzZ<7HnTL# zPdHn6ADT!ntDHRhm^%L3i-W0_LaQD`E1pJsv`UM0o65AP<+D#ql~QYNKpUD=I|Nn> zwOE_ANV}d~>ycjTpJ3~fQA@V-dA5M&v}uc-Y&(=MuF!lpb2DN0(2qmzwPvhOc#arLwk5 ztD#py4SWWtBq@G>s-~aIsi8|?#3+dY)^@r&qk(FfTA{j`%Q5NqdIh7q(nYMG8dCJ? zxaf$uf2)f^wyx!pqU^JClIpGTGrR{_ywj^|(4sQ{$!F#SSg^aS(L=cewI%upjm#U3 z4S6yi`@KBEcmD56s?-s@>N>ukce_kSxisRZcx9{*c1#j>u!&f^d=$Om##;sCc;1?& z@e8oaF~5ws~@f*#CmD=U>QJdiS6fhJ7DL3_hVn8Qk#pJ=e$1GdBjA# z#3*LNO$=vH+-OfM#chkXjakJgJ9LaZ@yQN$NWATiI zvU%Dnf4O>%L8{2Gyu|?Hsi`-w=DLvc(~uO)%f{@*wtBCYD$E&sO|fUj$Bd_o+{wLn zd}F0H<#>}}D$QYAkjP7}FD8vrTCSMf%_16BSa!>{?9ABA##qa+n`?e$I*!OVlG}XF z4eWmN=QgA2U~J=F_?*vw>`em=R>W!0iUq`=Lrv60ZPZ7N)Jd(>OU=|x?bHic0029GzBB^> diff --git a/src/motif/mdi/lib/Imakefile b/src/motif/mdi/lib/Imakefile deleted file mode 100644 index 2dd64024c3..0000000000 --- a/src/motif/mdi/lib/Imakefile +++ /dev/null @@ -1,21 +0,0 @@ -#include "../config/MDI.tmpl" - -SRCS = XsComponent.C XsMDICanvas.C XsMDIWindow.C XsMotifWindow.C \ - XsMoveOutline.C XsOutline.C XsResizeOutline.C - -HEADERS = XsComponent.h XsMDICanvas.h XsMDIWindow.h XsMotifWindow.h \ - sMoveOutline.h XsOutline.h XsResizeOutline.h - -OBJS = XsComponent.o XsMDICanvas.o XsMDIWindow.o XsMotifWindow.o \ - XsMoveOutline.o XsOutline.o XsResizeOutline.o - -STD_INCLUDES = -I/usr/include - -INCLUDES = -I. - -LIBXSW = Xsw - -NormalLibraryObjectRule() -NormalLibraryTarget($(LIBXSW),$(OBJS)) -DependTarget() -CxxRules() diff --git a/src/motif/mdi/lib/XsComponent.C b/src/motif/mdi/lib/XsComponent.C deleted file mode 100644 index 7ec41d7312..0000000000 --- a/src/motif/mdi/lib/XsComponent.C +++ /dev/null @@ -1,201 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsComponent.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#ifndef NDEBUG -#include -#endif - -#include -#include -#include -#include -#include "XsComponent.h" - -// Constructor - -XsComponent::XsComponent (const char *name) -{ - assert (name != 0); - -// Initialize - - _base = 0; - -// Copy component name - - int len = strlen (name); - _name = new char [len + 1]; - strcpy (_name, name); -} - -// Destructor - -XsComponent::~XsComponent ( ) -{ - -// Destroy the widget - - if (_base != 0) - { - _removeDestroyHandler ( ); - XtDestroyWidget (_base); - } - - delete [] _name; -} - -// show - -void XsComponent::show ( ) -{ - -#ifndef NDEBUG - // if (XtIsManaged (_base)) - // cout << "Re-managing a widget:" << _name << endl; -#endif - -// Make sure the _destroyHandler was installed - - assert (XtHasCallbacks (_base, XmNdestroyCallback) == XtCallbackHasSome); - - assert (_base != 0); - XtManageChild (_base); -} - -// hide - -void XsComponent::hide ( ) -{ - -#ifndef NDEBUG - // if (!XtIsManaged (_base)) - // cout << "Re-unmanaging a widget:" << _name << endl; -#endif - - assert (_base != 0); - XtUnmanageChild (_base); -} - -// Conversion operator - -XsComponent::operator Widget ( ) const -{ - assert (_base != 0); - return (_base); -} - -// operator == - -Boolean XsComponent::operator == (const XsComponent& rval) -{ - return (_base == rval._base); -} - -// className - -const char* XsComponent::className ( ) const -{ - return ("XsComponent"); -} - -// _installDestroyHandler - -void XsComponent::_installDestroyHandler ( ) -{ - assert (_base != 0); - -// Install the destroy handler - - XtAddCallback (_base, XmNdestroyCallback, _componentDestroyedCallback, (XtPointer)this); -} - -// _removeDestroyHandler - -void XsComponent::_removeDestroyHandler ( ) -{ - assert (_base != 0); - -// Remove the destroy handler - - XtRemoveCallback (_base, XmNdestroyCallback, _componentDestroyedCallback, (XtPointer)this); -} - -// _componentDestroyed - -void XsComponent::_componentDestroyed ( ) -{ - _base = 0; -} - -// _componentDestroyedCallback - -void XsComponent::_componentDestroyedCallback (Widget, XtPointer clientData, XtPointer) -{ - XsComponent *obj = (XsComponent*)clientData; - obj->_componentDestroyed ( ); -} - -// _setResources - -void XsComponent::_setResources (Widget w, const String *resources) -{ - assert (w != 0); - - XrmDatabase rdb = 0; - const int bufSize = 200; - char buffer[bufSize]; - int loop; - -// Create an empty resource database - - rdb = XrmGetStringDatabase (""); - -// Add the component resources - - loop = 0; - while (resources[loop] != 0) - { - sprintf (buffer, "*%s%s\n", _name, resources[loop++]); - assert (strlen (buffer) < bufSize); - XrmPutLineResource (&rdb, buffer); - } - -// Merge these resources into the database - - if (rdb != 0) - { - XrmDatabase db = XtDatabase (XtDisplay (w)); - XrmCombineDatabase (rdb, &db, FALSE); - } -} - -// _getResources - -void XsComponent::_getResources (const XtResourceList resources, int num) -{ - assert (_base != 0); - assert (resources != 0); - -// Validate input - - if (num <= 0) - return; - -// Get the subresources - - XtGetSubresources (XtParent (_base), (XtPointer)this, _name, - className ( ), resources, num, 0, 0); -} - diff --git a/src/motif/mdi/lib/XsComponent.h b/src/motif/mdi/lib/XsComponent.h deleted file mode 100644 index e67f07fc37..0000000000 --- a/src/motif/mdi/lib/XsComponent.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsComponent.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSCOMPONENT_H -#define XSCOMPONENT_H - -// Includes - -#include - -// XsComponent class - -class XsComponent { - - public: - -// Destructor - - virtual ~XsComponent ( ); - -// Component manipulation - - virtual void show ( ); // Show the component - virtual void hide ( ); // Hide the component - -// Component name - - const char *name ( ) const; - -// Utilities - - Widget base ( ) const; - virtual operator Widget ( ) const; - -// Operators - - Boolean operator == (const XsComponent&); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Protected constructor - - XsComponent (const char *name); - -// Component life-cycle - - virtual void _componentDestroyed ( ); - void _installDestroyHandler ( ); - void _removeDestroyHandler ( ); - -// Resource manager - - void _setResources (Widget w, const String *); - void _getResources (const XtResourceList, int); - -// Implementation - - char *_name; // Component name - Widget _base; // Base widget - - private: - -// Callbacks - - static void _componentDestroyedCallback (Widget, XtPointer, XtPointer); -}; - -// Inline member functions - -inline Widget XsComponent::base ( ) const -{ - return (_base); -} - -inline const char* XsComponent::name ( ) const -{ - return (_name); -} - -#endif - diff --git a/src/motif/mdi/lib/XsMDICanvas.C b/src/motif/mdi/lib/XsMDICanvas.C deleted file mode 100644 index 66a4047aa4..0000000000 --- a/src/motif/mdi/lib/XsMDICanvas.C +++ /dev/null @@ -1,298 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMDICanvas.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#include -#include -#include -#include "XsMDICanvas.h" -#include "XsMDIWindow.h" - -// Static definitions - -String XsMDICanvas::_resources[] = { - "*canvas.resizePolicy: XmRESIZE_GROW", - NULL -}; - -// Constructor - -XsMDICanvas::XsMDICanvas (const char *name, Widget parent) : XsComponent (name) -{ - assert (parent != 0); - -// Initialize - - _list = 0; - _num = 0; - _max = 0; - _place = 0; - -// Install resources - - _setResources (parent, _resources); - -// Create the scrolled window - - const int nargs = 10; - Arg args[nargs]; - int n = 0; - - XtSetArg (args[n], XmNscrollingPolicy, XmAUTOMATIC); n++; - XtSetArg (args[n], XmNscrolledWindowMarginHeight, (Dimension)0); n++; - XtSetArg (args[n], XmNscrolledWindowMarginWidth, (Dimension)0); n++; - XtSetArg (args[n], XmNmarginHeight, (Dimension)5); n++; - XtSetArg (args[n], XmNmarginWidth, (Dimension)5); n++; - - assert (n <= nargs); - - _base = XmCreateScrolledWindow (parent, _name, args, n); - -// Install the destroy handler - - _installDestroyHandler ( ); - -// Create the drawing area (canvas) - - _drawArea = XtVaCreateWidget ("canvas", xmDrawingAreaWidgetClass, - _base, XmNmarginHeight, (Dimension)0, XmNmarginWidth, (Dimension)0, - NULL); - -// Set resize callback on drawing area - - XtAddCallback (_drawArea, XmNresizeCallback, _canvasResizeCallback, (XtPointer)this); - -// Set resize callback on clip window - - XtVaGetValues (_base, XmNclipWindow, &_clipWin, NULL); - XtAddCallback (_clipWin, XmNresizeCallback, _clipResizeCallback, (XtPointer)this); -} - -// Destructor - -XsMDICanvas::~XsMDICanvas ( ) -{ - -/* - Remove callbacks to prevent calls to destroyed class-part of XsMDICanvas - while children are being destroyed. -*/ - - if (_drawArea) - XtRemoveCallback (_drawArea, XmNresizeCallback, _canvasResizeCallback, (XtPointer)this); - - if (_clipWin) - XtRemoveCallback (_clipWin, XmNresizeCallback, _clipResizeCallback, (XtPointer)this); - -// Remove all windows - - removeAll ( ); -} - -// add - -void XsMDICanvas::add (XsMDIWindow *win) -{ - assert (win != 0); - - const int increment = 10; - -// Check if we need to allocate more space - - if (_num >= _max) - { - XsMDIWindow **newList = new XsMDIWindow*[_max + increment]; - - for (int loop = 0; loop < _num; loop++) - newList[loop] = _list[loop]; - _max += increment; - - delete [] _list; - _list = newList; - } - -// Add the new window - - _list[_num++] = win; - -// Install the parent canvas - - win->_setWindowParent (_drawArea); - -// If the canvas is shown, place the window - - if (XtIsManaged (_base)) - _placeWindow (win); -} - -// remove - -void XsMDICanvas::remove (XsMDIWindow *win) -{ - assert (win != 0); - -// Remove the window - - int i, j; - - for (i = 0; i < _num; i++) - { - if (_list[i] == win) - { - win->hide ( ); - win->_setWindowParent (0); - - for (j = i; j < _num - 1; j++) - _list[j] = _list[j + 1]; - _num--; - - return; - } - } - - assert (0); // Couldn't find window -} - -// removeAll - -void XsMDICanvas::removeAll ( ) -{ - -// Delete and reset the list - - delete [] _list; - - _list = 0; - _num = 0; - _max = 0; -} - -// show - -void XsMDICanvas::show ( ) -{ - assert (_drawArea != 0); - -// Place all of the child windows - - for (int loop = 0; loop < _num; loop++) - _placeWindow (_list[loop]); - -// Manage the drawing area and canvas - - XtManageChild (_drawArea); - -// Call base class - - XsComponent::show ( ); -} - -// className - -const char* XsMDICanvas::className ( ) const -{ - return ("XsMDICanvas"); -} - -// _componentDestroyed - -void XsMDICanvas::_componentDestroyed ( ) -{ - -// Remove the callbacks - - XtRemoveCallback (_drawArea, XmNresizeCallback, _canvasResizeCallback, (XtPointer)this); - XtRemoveCallback (_clipWin, XmNresizeCallback, _clipResizeCallback, (XtPointer)this); - - _drawArea = 0; - _clipWin = 0; -} - -// _placeWindow - -void XsMDICanvas::_placeWindow (XsMDIWindow *win) -{ - assert (win != 0); - -// Compute window placement - - Position x, y; - - const int maxWin = 10; - const Position offset = 20; - const Position minOffset = 10; - - x = (_place * offset) + minOffset; - y = (_place * offset) + minOffset; - - if (++_place == maxWin) - _place = 0; - -// Set the window placement - - win->setPosition (x, y); - -// Show the window - - win->show ( ); -} - -// _resize - -void XsMDICanvas::_resize (XtPointer) -{ - Dimension clipHeight; - Dimension clipWidth; - Dimension canvasHeight; - Dimension canvasWidth; - -// Check if clip window and canvas are managed - - if (!XtIsManaged (_clipWin) || !XtIsManaged (_drawArea)) - return; - -// Get the clip window size - - XtVaGetValues (_clipWin, XmNwidth, &clipWidth, XmNheight, &clipHeight, NULL); - -// Get the canvas size - - XtVaGetValues (_drawArea, XmNwidth, &canvasWidth, XmNheight, &canvasHeight, NULL); - -// Force the canvas to be at least as big as the clip window - - if (canvasWidth < clipWidth) - canvasWidth = clipWidth; - if (canvasHeight < clipHeight) - canvasHeight = clipHeight; - - XtVaSetValues (_drawArea, XmNwidth, canvasWidth, XmNheight, canvasHeight, NULL); -} - -// _clipResizeCallback - -void XsMDICanvas::_clipResizeCallback (Widget, XtPointer clientData, XtPointer callData) -{ - XsMDICanvas *obj = (XsMDICanvas*)clientData; - obj->_resize (callData); -} - -// _canvasResizeCallback - -void XsMDICanvas::_canvasResizeCallback (Widget, XtPointer clientData, XtPointer callData) -{ - XsMDICanvas *obj = (XsMDICanvas*)clientData; - obj->_resize (callData); -} - diff --git a/src/motif/mdi/lib/XsMDICanvas.h b/src/motif/mdi/lib/XsMDICanvas.h deleted file mode 100644 index 99ca57fad5..0000000000 --- a/src/motif/mdi/lib/XsMDICanvas.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMDICanvas.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSMDICANVAS_H -#define XSMDICANVAS_H - -// Includes - -#include "XsComponent.h" - -// Forward declarations - -class XsMDIWindow; - -// XsMDICanvas class - -class XsMDICanvas : public XsComponent { - - public: - -// Constructor/Destructor - - XsMDICanvas (const char *name, Widget parent); - virtual ~XsMDICanvas ( ); - -// MDI Window manipulation - - virtual void add (XsMDIWindow *win); // Add an MDI window - virtual void remove (XsMDIWindow *win); // Remove an MDI window - void removeAll ( ); // Remove all MDI windows - -// Utilities - - int numWindows ( ) const; // Number of MDI windows - Widget GetDrawingArea() const { return _drawArea; } - -// Component methods - - virtual void show ( ); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Component life-cycle - - virtual void _componentDestroyed ( ); - -// Geometry management - - virtual void _placeWindow (XsMDIWindow *win); - -// Canvas resize handler - - virtual void _resize (XtPointer); - -// Implementation - - Widget _clipWin; - Widget _drawArea; - - XsMDIWindow **_list; - int _num; - int _max; - int _place; - - private: - -// Callbacks - - static void _clipResizeCallback (Widget, XtPointer, XtPointer); - static void _canvasResizeCallback (Widget, XtPointer, XtPointer); - -// Resources - - static String _resources[]; -}; - -// Inline member functions - -inline XsMDICanvas::numWindows ( ) const -{ - return (_num); -} - -#endif diff --git a/src/motif/mdi/lib/XsMDIWindow.C b/src/motif/mdi/lib/XsMDIWindow.C deleted file mode 100644 index cbc61cc5b0..0000000000 --- a/src/motif/mdi/lib/XsMDIWindow.C +++ /dev/null @@ -1,156 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMDIWindow.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#include -#include -#include "XsMDIWindow.h" - -// Constructor - -XsMDIWindow::XsMDIWindow (const char *name) : XsComponent (name) -{ - -// Initialize - - _clientArea = 0; - _parent = 0; - -// Initial size and placement - - _initX = (Position)-1; - _initY = (Position)-1; - _initH = (Dimension)-1; - _initW = (Dimension)-1; - _placed = False; -} - -// Destructor - -XsMDIWindow::~XsMDIWindow ( ) -{ - // Empty -} - -// raise - -void XsMDIWindow::raise ( ) -{ - assert (_base != 0); - XRaiseWindow (XtDisplay (_base), XtWindow (_base)); -} - -// lower - -void XsMDIWindow::lower ( ) -{ - assert (_base != 0); - XLowerWindow (XtDisplay (_base), XtWindow (_base)); -} - -// show - -void XsMDIWindow::show ( ) -{ - -// Create the window (if necessary) - - if (_base == 0) - { - assert (_parent != 0); - _createWindow (_parent); - } - -// Manage the client area - - XtManageChild (_clientArea); - -// Configure the window position and size - - if (_placed == False) - { - const int nargs = 4; - Arg args[nargs]; - int n = 0; - - if (_initX != (Position)-1) - { - XtSetArg (args[n], XmNx, _initX); n++; - } - if (_initY != (Position)-1) - { - XtSetArg (args[n], XmNy, _initY); n++; - } - if (_initW != (Dimension)-1) - { - XtSetArg (args[n], XmNwidth, _initW); n++; - } - if (_initH != (Dimension)-1) - { - XtSetArg (args[n], XmNheight, _initH); n++; - } - - assert (n <= nargs); - XtSetValues (_base, args, n); - - _placed = True; - } - -// Call the base class - - XsComponent::show ( ); -} - -// setPosition - -void XsMDIWindow::setPosition (Position x, Position y) -{ - if (_base != 0) - XtVaSetValues (_base, XmNx, x, XmNy, y, NULL); - else - { - _initX = x; - _initY = y; - } -} - -// setSize - -void XsMDIWindow::setSize (Dimension w, Dimension h) -{ - if (_base != 0) - XtVaSetValues (_base, XmNwidth, w, XmNheight, h, NULL); - else - { - _initW = w; - _initH = h; - } -} - -// className - -const char* XsMDIWindow::className ( ) const -{ - return ("XsMDIWindow"); -} - -// _setWindowParent - -void XsMDIWindow::_setWindowParent (Widget p) -{ - -// This is called by the canvas to tell us who our parent is - - _parent = p; -} diff --git a/src/motif/mdi/lib/XsMDIWindow.h b/src/motif/mdi/lib/XsMDIWindow.h deleted file mode 100644 index 9bc9c9580d..0000000000 --- a/src/motif/mdi/lib/XsMDIWindow.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMDIWindow.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSMDIWINDOW_H -#define XSMDIWINDOW_H - -// Includes - -#include "XsComponent.h" - -// XsMDIWindow class - -class XsMDIWindow : public XsComponent { - - friend class XsMDICanvas; - - public: - -// Constructor/Destructor - - XsMDIWindow (const char *name); - virtual ~XsMDIWindow ( ); - -// Window manipulation - - virtual void raise ( ); - virtual void lower ( ); - -// Utilities - - Widget clientArea ( ) const; - -// Position and size - - virtual void setPosition (Position x, Position y); - virtual void setSize (Dimension w, Dimension h); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Only the friendly canvas can show a window - - virtual void show ( ); - -// Window creation functions - - virtual void _buildClientArea (Widget parent) = 0; - virtual void _createWindow (Widget parent) = 0; - -// Implementation - - Widget _clientArea; // Client work area - -// Initial window size and placement - - Position _initX, _initY; - Dimension _initW, _initH; - Boolean _placed; - - private: - -// Window parent installation - - void _setWindowParent (Widget); - Widget _parent; -}; - -// Inline member functions - -inline Widget XsMDIWindow::clientArea ( ) const -{ - return (_clientArea); -} - -#endif - diff --git a/src/motif/mdi/lib/XsMotifWindow.C b/src/motif/mdi/lib/XsMotifWindow.C deleted file mode 100644 index 7f9e45a4a0..0000000000 --- a/src/motif/mdi/lib/XsMotifWindow.C +++ /dev/null @@ -1,3386 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMotifWindow.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#include -#include -#include -#include -#include -#include -#include -#include "XsMotifWindow.h" -#include "XsResizeOutline.h" -#include "XsMoveOutline.h" -#include "xs_motif_icon.xbm" - -// Constants - -const int BorderSize_ = 6; -const int ButtonSize_ = 23; -const int IconSize_ = 70; - -/* - ---------------------------------------------------------------------------- - _XsMotifBase -*/ - -// Constructor - -_XsMotifBase::_XsMotifBase (const char *name, XsMotifWindow *win) : - XsComponent (name) -{ - assert (win != 0); - -// Initialize - - _win = win; - _topShadowGC = 0; - _bottomShadowGC = 0; -} - -// Destructor - -_XsMotifBase::~_XsMotifBase ( ) -{ - if (_topShadowGC) - XtReleaseGC (_base, _topShadowGC); - - if (_bottomShadowGC) - XtReleaseGC (_base, _bottomShadowGC); -} - -// show - -void _XsMotifBase::show ( ) -{ - assert (_base != 0); - -// Install event handler - - XtAddEventHandler (_base, StructureNotifyMask, False, _mapEventHandler, (XtPointer)this); - -// Call the base-class - - XsComponent::show ( ); -} - -// className - -const char* _XsMotifBase::className ( ) const -{ - return ("_XsMotifBase"); -} - -// _componentDestroyed ( ) - -void _XsMotifBase::_componentDestroyed ( ) -{ - -// Clean up the GCs - - if (_topShadowGC) - XtReleaseGC (_base, _topShadowGC); - - if (_bottomShadowGC) - XtReleaseGC (_base, _bottomShadowGC); - - _topShadowGC = 0; - _bottomShadowGC = 0; - -// Call the base-class - - XsComponent::_componentDestroyed ( ); -} - -// _drawShadows - -void _XsMotifBase::_drawShadows (Position x, Position y, Dimension width, - Dimension height, Dimension thick, Boolean reverse) -{ - assert (_base != 0); - assert (thick > 0); - - const int nsegs = 2; - XSegment segs[nsegs]; - GC topShadowGC; - GC bottomShadowGC; - -// Work out the graphics contexts - - topShadowGC = (reverse == False) ? _topShadowGC : _bottomShadowGC; - bottomShadowGC = (reverse == False) ? _bottomShadowGC : _topShadowGC; - - for (int loop = 0; loop < thick; loop++) - { - -/* - TOP SHADOW DRAWING -*/ - -// Across the top - - segs[0].x1 = x + loop; - segs[0].y1 = y + loop; - segs[0].x2 = x + width - loop - 2; - segs[0].y2 = y + loop; - -// Down the left side - - segs[1].x1 = x + loop; - segs[1].y1 = y + loop + 1; - segs[1].x2 = x + loop; - segs[1].y2 = y + height - loop - 2; - - XDrawSegments (XtDisplay (_base), XtWindow (_base), topShadowGC, segs, nsegs); - -/* - BOTTOM SHADOW DRAWING -*/ - -// Across the bottom - - segs[0].x1 = x + loop; - segs[0].y1 = y + height - loop - 1; - segs[0].x2 = x + width - loop - 1; - segs[0].y2 = y + height - loop - 1; - -// Down the right side - - segs[1].x1 = x + width - loop - 1; - segs[1].y1 = y + loop; - segs[1].x2 = x + width - loop - 1; - segs[1].y2 = y + height - loop - 1; - - XDrawSegments (XtDisplay (_base), XtWindow (_base), bottomShadowGC, segs, nsegs); - } -} - -// _drawLine - -void _XsMotifBase::_drawLine (Position x1, Position y1, Position x2, Position y2, GC &gc) -{ - assert (_base != 0); - XDrawLine (XtDisplay (_base), XtWindow (_base), gc, x1, y1, x2, y2); -} - -// _map - -void _XsMotifBase::_map ( ) -{ - -// Create the graphics contexts - - unsigned long valuemask; - XGCValues values; - Pixel topShadow; - Pixel bottomShadow; - - XtVaGetValues (_win->base ( ), XmNtopShadowColor, &topShadow, XmNbottomShadowColor, - &bottomShadow, NULL); - -// Create the graphics contexts - - valuemask = GCForeground | GCLineWidth | GCGraphicsExposures; - values.line_width = 0; - values.graphics_exposures = False; - - values.foreground = topShadow; - _topShadowGC = XtGetGC (_base, valuemask, &values); - - values.foreground = bottomShadow; - _bottomShadowGC = XtGetGC (_base, valuemask, &values); -} - -// _mapEventHandler - -void _XsMotifBase::_mapEventHandler (Widget, XtPointer clientData, XEvent *event, Boolean*) -{ - if (event->type == MapNotify) - { - _XsMotifBase *obj = (_XsMotifBase*)clientData; - obj->_map ( ); - -// Remove the event handler - - XtRemoveEventHandler (obj->_base, StructureNotifyMask, False, obj->_mapEventHandler, clientData); - } -} - -/* - ---------------------------------------------------------------------------- - _XsMotifComponent -*/ - -Cursor _XsMotifComponent::_cursors[_XsMotifComponent::NumCursors]; - -int _XsMotifComponent::_mutex = 0; - -XtResource _XsMotifComponent::_resourceList[] = { - { - "borderSize", - "BorderSize", - XmRDimension, - sizeof (Dimension), - XtOffset (_XsMotifComponent*, _borderSize), - XmRImmediate, - (XtPointer)BorderSize_ - }, - { - "buttonSize", - "ButtonSize", - XmRDimension, - sizeof (Dimension), - XtOffset (_XsMotifComponent*, _buttonSize), - XmRImmediate, - (XtPointer)ButtonSize_ - } -}; - -// Constructor - -_XsMotifComponent::_XsMotifComponent (const char *name, XsMotifWindow *win, - Widget parent) : _XsMotifBase (name, win) -{ - -// Create cursors (if necessary) - - if (_mutex == 0) - { - - Display *dpy = XtDisplay (win->base ( )); - - _cursors[TopCursor] = XCreateFontCursor (dpy, XC_top_side); - _cursors[BottomCursor] = XCreateFontCursor (dpy, XC_bottom_side); - _cursors[LeftCursor] = XCreateFontCursor (dpy, XC_left_side); - _cursors[RightCursor] = XCreateFontCursor (dpy, XC_right_side); - _cursors[TopLeftCursor] = XCreateFontCursor (dpy, XC_top_left_corner); - _cursors[TopRightCursor] = XCreateFontCursor (dpy, XC_top_right_corner); - _cursors[BottomLeftCursor] = XCreateFontCursor (dpy, XC_bottom_left_corner); - _cursors[BottomRightCursor] = XCreateFontCursor (dpy, XC_bottom_right_corner); - - _mutex = 1; - } - -// Create the component - - _base = XtVaCreateWidget (name, widgetClass, (parent != 0) ? parent : _win->base ( ), NULL); - -// Install destroy handler - - _installDestroyHandler ( ); - -// Get resources - - _getResources (_resourceList, XtNumber (_resourceList)); - -// Compute the corner size - - _cornerSize = _buttonSize + _borderSize; - -// Install event handlers - - XtAddEventHandler (_base, ExposureMask, False, _exposeEventHandler, (XtPointer)this); - XtAddEventHandler (_base, ButtonPressMask | ButtonReleaseMask | Button1MotionMask | Button2MotionMask, False, _inputEventHandler, (XtPointer)this); -} - -// Destructor - -_XsMotifComponent::~_XsMotifComponent ( ) -{ - // Empty -} - -// className - -const char* _XsMotifComponent::className ( ) const -{ - return ("_XsMotifComponent"); -} - -// _input - -void _XsMotifComponent::_input (XEvent*) -{ - // Empty -} - -// _exposeEventHandler - -void _XsMotifComponent::_exposeEventHandler (Widget, XtPointer clientData, XEvent *event, Boolean*) -{ - _XsMotifComponent *obj = (_XsMotifComponent*)clientData; - - if (event->xexpose.count == 0) - obj->_expose (event); -} - -// _inputEventHandler - -void _XsMotifComponent::_inputEventHandler (Widget, XtPointer clientData, XEvent *event, Boolean*) -{ - _XsMotifComponent *obj = (_XsMotifComponent*)clientData; - obj->_input (event); -} - -/* - ---------------------------------------------------------------------------- - _XsMotifCorner -*/ - -// Constructor - -_XsMotifCorner::_XsMotifCorner (const char *name, XsMotifWindow *win, Corner corner) - : _XsMotifComponent (name, win) -{ - -// Initialize - - _corner = corner; - -// Configure component - - XtVaSetValues (_base, XmNwidth, _cornerSize, XmNheight, _cornerSize, - XmNborderWidth, (Dimension)0, NULL); -} - -// Destructor - -_XsMotifCorner::~_XsMotifCorner ( ) -{ - // Empty -} - -// className - -const char *_XsMotifCorner::className ( ) const -{ - return ("_XsMotifCorner"); -} - -// _expose - -void _XsMotifCorner::_expose (XEvent*) -{ - Dimension w, h; - - if (_topShadowGC == 0) // JACS - return; - -// Get the size of the corner - - XtVaGetValues (_base, XmNwidth, &w, XmNheight, &h, NULL); - -// Draw the shadow - - _drawShadows (0, 0, w, h, 1); - -// Draw the extra lines and relief - - switch (_corner) - { - case TopLeft: - { - _drawLine (1, 1, w - 2, 1, _topShadowGC); - _drawLine (1, 1, 1, h - 2, _topShadowGC); - -// Relief - - _drawLine (_borderSize - 1, _borderSize - 1, _borderSize + - _buttonSize - 2, _borderSize - 1, _bottomShadowGC); - - _drawLine (_borderSize - 1, _borderSize - 1, _borderSize - 1, - _borderSize + _buttonSize - 2, _bottomShadowGC); - - break; - } - case TopRight: - { - _drawLine (1, 1, w - 2, 1, _topShadowGC); - _drawLine (w - 2, 1, w - 2, h - 2, _bottomShadowGC); - -// Relief - - _drawLine (0, _borderSize - 1, _buttonSize - 1, _borderSize - 1, - _bottomShadowGC); - - _drawLine (w - _borderSize, _borderSize - 1, w - _borderSize, - _borderSize + _buttonSize - 2, _topShadowGC); - - break; - } - case BottomLeft: - { - _drawLine (1, 1, 1, h - 2, _topShadowGC); - _drawLine (1, h - 2, w - 2, h - 2, _bottomShadowGC); - -// Relief - - _drawLine (_borderSize - 1, h - _borderSize, _borderSize + - _buttonSize - 2, h - _borderSize, _topShadowGC); - - _drawLine (_borderSize - 1, 1, _borderSize - 1, - _buttonSize - 1, _bottomShadowGC); - - break; - } - case BottomRight: - { - _drawLine (1, h - 2, w - 2, h - 2, _bottomShadowGC); - _drawLine (w - 2, 1, w - 2, h - 2, _bottomShadowGC); - -// Relief - - _drawLine (1, h - _borderSize, _buttonSize, h - _borderSize, - _topShadowGC); - - _drawLine (w - _borderSize, 1, w - _borderSize, - _buttonSize - 1, _topShadowGC); - - break; - } - default: - assert (0); - } -} - -// _input - -void _XsMotifCorner::_input (XEvent *event) -{ - switch (event->type) - { - case ButtonPress: - { - if (event->xbutton.button == 2) - { - XsMoveOutline move (_win->base ( )); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - } - } - else if (event->xbutton.button == 3) - _win->popupMenu ( ); - - break; - } - case ButtonRelease: - { - switch (event->xbutton.button) - { - case 1: - case 2: - { - _win->raise ( ); // Raise the window - break; - } - } - break; - } - case MotionNotify: - { - -// Figure kind of resize we are doing - - int dir; - - if (_corner == TopLeft) - dir = XsResizeOutline::Up | XsResizeOutline::Left; - else if (_corner == TopRight) - dir = XsResizeOutline::Up | XsResizeOutline::Right; - else if (_corner == BottomLeft) - dir = XsResizeOutline::Down | XsResizeOutline::Left; - else if (_corner == BottomRight) - dir = XsResizeOutline::Down | XsResizeOutline::Right; - else - assert (0); - - XsResizeOutline resize (_win->base ( ), dir); - resize.setMinSize (_win->minWidth ( ), _win->minHeight ( )); - -// Start the resize - - if (resize.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (resize.x ( ), resize.y ( )); - _win->setSize (resize.width ( ), resize.height ( )); - } - break; - } - } -} - -// _map - -void _XsMotifCorner::_map ( ) -{ - -// Call the base-class - - _XsMotifComponent::_map ( ); - -// Install the cursor - - if (_corner == TopLeft) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[TopLeftCursor]); - else if (_corner == TopRight) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[TopRightCursor]); - else if (_corner == BottomLeft) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[BottomLeftCursor]); - else if (_corner == BottomRight) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[BottomRightCursor]); - else - assert (0); -} - -/* - ---------------------------------------------------------------------------- - _XsMotifSide -*/ - -// Constructor - -_XsMotifSide::_XsMotifSide (const char *name, XsMotifWindow *win, Side side) : - _XsMotifComponent (name, win) -{ - -// Initialize - - _side = side; - _lastW = _lastH = -1; - -// Configure component - - switch (_side) - { - case Top: - case Bottom: - { - XtVaSetValues (_base, XmNheight, _borderSize, XmNborderWidth, - (Dimension)0, NULL); - break; - } - case Left: - case Right: - { - XtVaSetValues (_base, XmNwidth, _borderSize, XmNborderWidth, - (Dimension)0, NULL); - break; - } - default: - assert (0); - } - -// Install event handler - - XtAddEventHandler (_base, StructureNotifyMask, False, _configureEventHandler, (XtPointer)this); -} - -// Destructor - -_XsMotifSide::~_XsMotifSide ( ) -{ - // Empty -} - -// className - -const char *_XsMotifSide::className ( ) const -{ - return ("_XsMotifSide"); -} - -// _expose - -void _XsMotifSide::_expose (XEvent *event) -{ - if (_topShadowGC == 0) // JACS - return; - -// Clear out the window first - - if (event != 0) - XClearWindow (XtDisplay (_base), XtWindow (_base)); - - Dimension w, h; - -// Get the size of the side - - XtVaGetValues (_base, XmNwidth, &w, XmNheight, &h, NULL); - -// Draw the shadow - - _drawShadows (0, 0, w, h, 1); - -// Draw the extra lines - - switch (_side) - { - case Top: - { - _drawLine (1, 1, w - 2, 1, _topShadowGC); - break; - } - case Bottom: - { - _drawLine (1, h - 2, w - 2, h - 2, _bottomShadowGC); - break; - } - case Left: - { - _drawLine (1, 1, 1, h - 2, _topShadowGC); - break; - } - case Right: - { - _drawLine (w - 2, 1, w - 2, h - 2, _bottomShadowGC); - break; - } - default: - assert (0); - } -} - -// _input - -void _XsMotifSide::_input (XEvent *event) -{ - switch (event->type) - { - case ButtonPress: - { - if (event->xbutton.button == 2) - { - XsMoveOutline move (_win->base ( )); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - } - } - else if (event->xbutton.button == 3) - _win->popupMenu ( ); - - break; - } - case ButtonRelease: - { - switch (event->xbutton.button) - { - case 1: - case 2: - { - _win->raise ( ); // Raise the window - break; - } - } - break; - } - case MotionNotify: - { - -// Figure kind of resize we are doing - - int dir; - - if (_side == Top) - dir = XsResizeOutline::Up; - else if (_side == Bottom) - dir = XsResizeOutline::Down; - else if (_side == Left) - dir = XsResizeOutline::Left; - else if (_side == Right) - dir = XsResizeOutline::Right; - else - assert (0); - - XsResizeOutline resize (_win->base ( ), dir); - resize.setMinSize (_win->minWidth ( ), _win->minHeight ( )); - -// Start the resize - - if (resize.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (resize.x ( ), resize.y ( )); - _win->setSize (resize.width ( ), resize.height ( )); - } - break; - } - } -} - -// _map - -void _XsMotifSide::_map ( ) -{ - -// Call the base-class - - _XsMotifComponent::_map ( ); - -// Install the cursor - - if (_side == Top) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[TopCursor]); - else if (_side == Bottom) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[BottomCursor]); - else if (_side == Left) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[LeftCursor]); - else if (_side == Right) - XDefineCursor (XtDisplay (_base), XtWindow (_base), _cursors[RightCursor]); - else - assert (0); -} - -// _configure - -void _XsMotifSide::_configure (XEvent *event) -{ - XConfigureEvent *ce = (XConfigureEvent*)event; - -/* - Check if window has been resized. If so, generate an expose event - to redraw its contents. -*/ - - if ((_lastW != ce->width) || (_lastH != ce->height)) - { - if ((_base != 0) && XtIsManaged (_base)) - XClearArea (XtDisplay (_base), XtWindow (_base), 0, 0, 0, 0, True); - - _lastW = ce->width; - _lastH = ce->height; - } -} - -// _configureEventHandler - -void _XsMotifSide::_configureEventHandler (Widget, XtPointer clientData, XEvent *event, Boolean*) -{ - if (event->type == ConfigureNotify) - { - _XsMotifSide *obj = (_XsMotifSide*)clientData; - obj->_configure (event); - } -} - -/* - ---------------------------------------------------------------------------- - _XsMotifButton -*/ - -// Constructor - -_XsMotifButton::_XsMotifButton (const char *name, XsMotifWindow *win, Button button) : - _XsMotifComponent (name, win) -{ - -// Initialize - - _pressed = False; - _button = button; - -// Configure the component - - XtVaSetValues (_base, XmNheight, _buttonSize, XmNwidth, _buttonSize, - XmNborderWidth, (Dimension)0, NULL); -} - -// Destructor - -_XsMotifButton::~_XsMotifButton ( ) -{ - // Empty -} - -// redraw - -void _XsMotifButton::redraw ( ) -{ - -// Make sure component is viewable - - if (!XtIsRealized (_base)) - return; - -// Check if window is viewable - - XWindowAttributes attrs; - XGetWindowAttributes (XtDisplay (_base), XtWindow (_base), &attrs); - - if (attrs.map_state == IsViewable) - _expose (0); // Just pretend we got an expose event -} - -// className - -const char *_XsMotifButton::className ( ) const -{ - return ("_XsMotifButton"); -} - -// _expose - -void _XsMotifButton::_expose (XEvent *event) -{ - if (_topShadowGC == 0) // JACS - return; - - Dimension w, h; - -// Get the size of the button - - XtVaGetValues (_base, XmNwidth, &w, XmNheight, &h, NULL); - -// Draw the shadow - - _drawShadows (0, 0, w, h, 1, _pressed); - -// Draw the extra line - - _drawLine (1, h - 2, w - 2, h - 2, (_pressed) ? _topShadowGC : _bottomShadowGC); - -// Check if we need to draw the decal - - if ((_button != Maximize) && (event == 0)) - return; - -// Compute the decal size - - Dimension dw, dh; - Boolean reverse = False; - - switch (_button) - { - case Menu: - { - dw = _buttonSize - 6; - dh = 4; - break; - } - case Minimize: - { - dw = dh = 4; - break; - } - case Maximize: - { - dw = _buttonSize - 6; - dh = dw - 1; - - if (_win->maximized ( )) - reverse = True; - - break; - } - default: - assert (0); - } - -// Draw the decal - - _drawShadows ((w / 2) - (dw / 2), (h / 2) - (dh / 2), dw, dh, 1, reverse); -} - -// _input - -void _XsMotifButton::_input (XEvent *event) -{ - static Time lastTime = (Time)0; - - switch (event->type) - { - case ButtonPress: - { - if (event->xbutton.button == 1) - { - _pressed = True; - - if (_button == Menu) - { - -// Get double-click time - - int multiClick = XtGetMultiClickTime (XtDisplay (_base)); - -// Check for double-click - - if ((event->xbutton.time - lastTime) <= multiClick) - { - _win->close ( ); - return; - } - else - lastTime = event->xbutton.time; - -// Redraw the button (pushed-in) - - redraw ( ); - -// Popup the menu - - _win->popupMenu (False); - -// The menu will consume the ButtonRelease, so fake one - - _pressed = False; - redraw ( ); - - } - else if ((_button == Minimize) || (_button == Maximize)) - { - redraw ( ); - } - } - else if (event->xbutton.button == 2) - { - XsMoveOutline move (_win->base ( )); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - } - } - else if (event->xbutton.button == 3) - _win->popupMenu ( ); - - break; - } - case ButtonRelease: - { - if (event->xbutton.button == 1) - { - _pressed = False; - -// Check if pointer is really in the window - - XButtonEvent *b = &event->xbutton; - Dimension width, height; - Boolean inWindow = False; - - XtVaGetValues (_base, XmNwidth, &width, XmNheight, &height, NULL); - if ((b->x >= 0) && (b->y >= 0) && (b->x < width) && (b->y < height)) - inWindow = True; - - if (_button == Minimize) - { - if (inWindow) - { - if (_win->minimized ( )) - _win->restore ( ); - else - _win->minimize ( ); - } - else - redraw ( ); - } - else if (_button == Maximize) - { - if (inWindow) - { - if (_win->maximized ( )) - _win->restore ( ); - else - _win->maximize ( ); - } - else - redraw ( ); - } - } - break; - } - } -} - -// _map - -void _XsMotifButton::_map ( ) -{ - -// Call the base-class - - _XsMotifComponent::_map ( ); - -// Raise ourself - - XRaiseWindow (XtDisplay (_base), XtWindow (_base)); -} - -/* - ---------------------------------------------------------------------------- - _XsMotifTitle -*/ - -XtResource _XsMotifTitle::_resourceList[] = { - { - "title", - "Title", - XmRString, - sizeof (String), - XtOffset (_XsMotifTitle*, _titleString), - XmRImmediate, - NULL - }, - { - "titleFont", - "TitleFont", - XmRFontStruct, - sizeof (XFontStruct*), - XtOffset (_XsMotifTitle*, _titleFont), - XmRString, - "-*-helvetica-bold-o-normal-*-14-*-*-*-*-*-iso8859-1" - } -}; - -// Constructor - -_XsMotifTitle::_XsMotifTitle (const char *name, XsMotifWindow *win) : - _XsMotifComponent (name, win) -{ - -// Initialize - - _pressed = False; - _titleString = 0; - _titleFont = 0; - _fontGC = 0; - _lastW = _lastH = -1; - -// Get resources - - _getResources (_resourceList, XtNumber (_resourceList)); - -// Copy title string to local memory - - if (_titleString != 0) - { - char *tmp = new char[strlen (_titleString) + 1]; - strcpy (tmp, _titleString); - _titleString = tmp; - } - -// Configure the title - - XtVaSetValues (_base, XmNheight, _buttonSize, XmNborderWidth, - (Dimension)0, NULL); - -// Install event handler - - XtAddEventHandler (_base, StructureNotifyMask, False, _configureEventHandler, (XtPointer)this); -} - -// Destructor - -_XsMotifTitle::~_XsMotifTitle ( ) -{ - if (_fontGC) - XtReleaseGC (_base, _fontGC); - - delete [] _titleString; -} - -// setTitle - -void _XsMotifTitle::setTitle (const char *title) -{ - assert (title != 0); - - delete [] _titleString; - - _titleString = new char[strlen (title) + 1]; - strcpy (_titleString, title); -} - -// className - -const char *_XsMotifTitle::className ( ) const -{ - return ("_XsMotifTitle"); -} - -// _componentDestroyed - -void _XsMotifTitle::_componentDestroyed ( ) -{ - -// Clean up the GCs - - if (_fontGC) - XtReleaseGC (_base, _fontGC); - - _fontGC = 0; - -// Call base-class - - _XsMotifComponent::_componentDestroyed ( ); -} - -// _redraw - -void _XsMotifTitle::_redraw ( ) -{ - _expose (0); // Just pretend we got an expose event -} - -// _expose - -void _XsMotifTitle::_expose (XEvent *event) -{ - if (_topShadowGC == 0) // JACS - return; - -// Clear out the window first - - if (event != 0) - XClearWindow (XtDisplay (_base), XtWindow (_base)); - - Dimension w, h; - -// Get the size of the button - - XtVaGetValues (_base, XmNwidth, &w, XmNheight, &h, NULL); - -// Draw the shadow - - _drawShadows (0, 0, w, h, 1, _pressed); - -// Draw the extra line - - _drawLine (1, h - 2, w - 2, h - 2, (_pressed) ? _topShadowGC : _bottomShadowGC); - -// If this is an artificial event, no need continuing - - if (event == 0) - return; - -// Draw the text string - - const int LeftOffset = 5; - const int TopOffset = 2; - -// Figure out the title - - const char *title = (_titleString != 0) ? _titleString : _win->name ( ); - - if ((title != 0) && (title[0] != '\0')) - { - int len = strlen (title); - - XDrawString (XtDisplay (_base), XtWindow (_base), _fontGC, - LeftOffset, TopOffset + _titleFont->ascent, title, len); - } -} - -// _input - -void _XsMotifTitle::_input (XEvent *event) -{ - switch (event->type) - { - case ButtonPress: - { - switch (event->xbutton.button) - { - case 1: - { - _pressed = True; - _redraw ( ); - break; - } - case 2: - { - XsMoveOutline move (_win->base ( )); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - } - break; - } - case 3: - { - _win->popupMenu ( ); - break; - } - } - break; - } - case ButtonRelease: - { - switch (event->xbutton.button) - { - case 1: - case 2: - { - _pressed = False; - _redraw ( ); - - _win->raise ( ); - break; - } - } - break; - } - case MotionNotify: - { - XsMoveOutline move (_win->base ( )); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - -// Redraw the title bar - - _pressed = False; - _redraw ( ); - } - break; - } - } -} - -// _map - -void _XsMotifTitle::_map ( ) -{ - -// Call the base-class - - _XsMotifComponent::_map ( ); - -// Raise ourself - - XRaiseWindow (XtDisplay (_base), XtWindow (_base)); - - unsigned long valuemask; - XGCValues values; - Pixel foreground; - Pixel background; - -// Get the pixels - - XtVaGetValues (_win->base ( ), XmNforeground, &foreground, XmNbackground, &background, NULL); - -// Create the font graphics context - - valuemask = GCForeground | GCBackground | GCGraphicsExposures | GCFont; - - values.foreground = foreground; - values.background = background; - values.font = _titleFont->fid; - values.graphics_exposures = False; - - _fontGC = XtGetGC (_base, valuemask, &values); -} - -// _configure - -void _XsMotifTitle::_configure (XEvent *event) -{ - XConfigureEvent *ce = (XConfigureEvent*)event; - -/* - Check if window has been resized. If so, generate an expose event - to redraw its contents. -*/ - - if ((_lastW != ce->width) || (_lastH != ce->height)) - { - if ((_base != 0) && XtIsManaged (_base)) - XClearArea (XtDisplay (_base), XtWindow (_base), 0, 0, 0, 0, True); - - _lastW = ce->width; - _lastH = ce->height; - } -} - -// _configureEventHandler - -void _XsMotifTitle::_configureEventHandler (Widget, XtPointer clientData, XEvent *event, Boolean*) -{ - if (event->type == ConfigureNotify) - { - _XsMotifTitle *obj = (_XsMotifTitle*)clientData; - obj->_configure (event); - } -} - -/* - ---------------------------------------------------------------------------- - _XsMotifIcon -*/ - -XtResource _XsMotifIcon::_resourceList[] = { - { - "iconSize", - "IconSize", - XmRDimension, - sizeof (Dimension), - XtOffset (_XsMotifIcon*, _iconSize), - XmRImmediate, - (XtPointer)IconSize_ - }, - { - "iconName", - "IconName", - XmRString, - sizeof (String), - XtOffset (_XsMotifIcon*, _iconName), - XmRImmediate, - NULL - }, - { - "iconFont", - "IconFont", - XmRFontStruct, - sizeof (XFontStruct*), - XtOffset (_XsMotifIcon*, _iconFont), - XmRString, - "-*-helvetica-bold-r-normal-*-12-*-*-*-*-*-iso8859-1" - }, - { - XmNiconX, - XmCIconX, - XmRPosition, - sizeof (Position), - XtOffset (_XsMotifIcon*, _iconX), - XmRImmediate, - (XtPointer)-1 - }, - { - XmNiconY, - XmCIconY, - XmRPosition, - sizeof (Position), - XtOffset (_XsMotifIcon*, _iconY), - XmRImmediate, - (XtPointer)-1 - } -}; - -// Constructor - -_XsMotifIcon::_XsMotifIcon (const char *name, XsMotifWindow *win, Widget parent) : - _XsMotifComponent (name, win, parent) -{ - -// Initialize - - _pixmapGC = 0; - _fontGC = 0; - - _iconName = 0; - _pixmap = 0; - _freePixmap = False; - - _width = _height = 0; - _placed = 0; - -// Get resources - - _getResources (_resourceList, XtNumber (_resourceList)); - -// Copy icon name to local memory - - if (_iconName != 0) - { - char *tmp = new char[strlen (_iconName) + 1]; - strcpy (tmp, _iconName); - _iconName = tmp; - } - -// Configure the icon - - XtVaSetValues (_base, XmNwidth, _iconSize, XmNheight, _iconSize, NULL); -} - -// Destructor - -_XsMotifIcon::~_XsMotifIcon ( ) -{ - if (_fontGC) - XtReleaseGC (_base, _fontGC); - - if (_pixmapGC) - XtReleaseGC (_base, _pixmapGC); - - if (_freePixmap) - XFreePixmap (XtDisplay (_base), _pixmap); - - delete [] _iconName; -} - -// show - -void _XsMotifIcon::show ( ) -{ - -/* - Configure the icon position. Either use the position specified - in the resource, or place the icon at the top-left corner of the - window. -*/ - - if (_placed == False) - { - Position x, y; - - if (_iconX == -1) - { - XtVaGetValues (_win->base ( ), XmNx, &x, NULL); - if (x < 0) x = 0; - _iconX = x; - } - else - x = _iconX; - - if (_iconY == -1) - { - XtVaGetValues (_win->base ( ), XmNy, &y, NULL); - if (y < 0) y = 0; - _iconY = y; - } - else - y = _iconY; - - XtVaSetValues (_base, XmNx, x, XmNy, y, NULL); - - _placed = True; - } - -// Call the base class - - _XsMotifComponent::show ( ); -} - -// setIconName - -void _XsMotifIcon::setIconName (const char *iconName) -{ - assert (iconName != 0); - - delete [] _iconName; - - _iconName = new char[strlen (iconName) + 1]; - strcpy (_iconName, iconName); -} - -// setPixmap - -void _XsMotifIcon::setPixmap (Pixmap pixmap) -{ - assert (pixmap != 0); - -// Free the existing pixmap (if necessary) - - if (_freePixmap) - { - XFreePixmap (XtDisplay (_base), _pixmap); - _freePixmap = False; - } - -// Save the new pixmap - - _pixmap = pixmap; - -// Get the pixmap width and height - - Window dummy; - int xd, yd; - unsigned int uw, uh, ub, ud; - - XGetGeometry (XtDisplay (_base), _pixmap, &dummy, &xd, &yd, &uw, &uh, &ub, &ud); - - _width = uw; - _height = uh; -} - -// className - -const char *_XsMotifIcon::className ( ) const -{ - return ("_XsMotifIcon"); -} - -// _componentDestroyed - -void _XsMotifIcon::_componentDestroyed ( ) -{ - -// Clear up the GCs - - if (_fontGC) - XtReleaseGC (_base, _fontGC); - - if (_pixmapGC) - XtReleaseGC (_base, _pixmapGC); - - if (_freePixmap) - XFreePixmap (XtDisplay (_base), _pixmap); - - _fontGC = 0; - _pixmapGC = 0; - _freePixmap = 0; - -// Call the base-class - - _XsMotifComponent::_componentDestroyed ( ); -} - -// _input - -void _XsMotifIcon::_input (XEvent *event) -{ - static Time lastTime = (Time)0; - - switch (event->type) - { - case ButtonPress: - { - switch (event->xbutton.button) - { - case 1: - break; - - case 2: - { - XsMoveOutline move (_base); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - } - break; - } - case 3: - { - _win->popupMenu ( ); - break; - } - } - break; - } - case ButtonRelease: - { - switch (event->xbutton.button) - { - case 1: - { - -// Get double-click time - - int multiClick = XtGetMultiClickTime (XtDisplay (_base)); - -// Check for double-click - - if ((event->xbutton.time - lastTime) <= multiClick) - _win->restore ( ); - else - { - lastTime = event->xbutton.time; - _win->raise ( ); - } - break; - } - } - break; - } - case MotionNotify: - { - XsMoveOutline move (_base); - -// Start the move - - if (move.go ( ) != False) - { - -// Relocate the icon - - _win->setPosition (move.x ( ), move.y ( )); - } - break; - } - } -} - -// _expose - -void _XsMotifIcon::_expose (XEvent *) -{ - if (_topShadowGC == 0) // JACS - return; - - Dimension iconHeight; - Dimension iconWidth; - -// Compute icon size - - XtVaGetValues (_base, XmNwidth, &iconWidth, XmNheight, &iconHeight, NULL); - -// Draw the shadow - - _drawShadows (0, 0, iconWidth, iconHeight, 2); - -// Figure out the icon string - - const char *iconName = (_iconName != 0) ? _iconName : (_win->title ( ) != 0) ? - _win->title ( ) : _win->name ( ); - - const int fontX = 3; - const int fontY = 3; - - if ((iconName != 0) && (iconName[0] != '\0')) - { - int textWidth; - int len = strlen (iconName); - -// Compute the text size - - textWidth = XTextWidth (_iconFont, iconName, len); - -// Center the text in the bottom of the icon (or left-justify it) - - int x, y; - - if (textWidth <= (iconWidth - (fontX * 2))) - x = (iconWidth - (int)textWidth) / 2; - else - x = fontX; - - y = (int)iconHeight - _iconFont->descent - fontY; - -// Draw the string - - XDrawString (XtDisplay (_base), XtWindow (_base), _fontGC, - x, y, iconName, len); - } - -// Compute label size - - int labelHeight = _iconFont->descent + _iconFont->ascent + (fontY * 2); - - if (labelHeight >= (iconHeight - 6)) - return; - -// Draw the separator - - int sepY = (iconHeight) - labelHeight; - - _drawLine (1, sepY, iconWidth - 2, sepY, _bottomShadowGC); - _drawLine (1, sepY + 1, iconWidth - 2, sepY + 1, _topShadowGC); - -// Draw the pixmap frame - - const int frameX = 4; - const int frameY = 4; - - if ((frameX + 6) >= sepY) - return; - - int frameWidth = iconWidth - (frameX * 2); - int frameHeight = sepY - frameY - 2; - - _drawShadows (frameX, frameY, frameWidth, frameHeight, 1, True); - - frameWidth -= 2; - frameHeight -= 2; - - _drawShadows (frameX + 1, frameY + 1, frameWidth, frameHeight, 1); - - frameWidth -= 2; - frameHeight -= 2; - -// Blit the pixmap - - if (_pixmap != 0) - { - if ((frameWidth > 0) && (frameHeight > 0)) - { - int origX, origY; - int drawW, drawH; - -// Center the pixmap or top-left orient it - - if (frameWidth > _width) - { - origX = (frameWidth - _width) / 2; - origX += frameX + 2; - drawW = _width; - } - else - { - origX = frameX + 2; - drawW = frameWidth; - } - - if (frameHeight > _height) - { - origY = (frameHeight - _height) / 2; - origY += frameY + 2; - drawH = _height; - } - else - { - origY = frameY + 2; - drawH = frameHeight; - } - - XCopyArea (XtDisplay (_base), _pixmap, XtWindow (_base), _pixmapGC, - 0, 0, drawW, drawH, origX, origY); - } - } -} - -// _map - -void _XsMotifIcon::_map ( ) -{ - unsigned long valuemask; - XGCValues values; - Pixel fg; - Pixel bg; - int depth; - -// Call the base-class - - _XsMotifComponent::_map ( ); - -// Get the icon pixels - - XtVaGetValues (_win->base ( ), XmNdepth, &depth, XmNbackground, &bg, - XmNforeground, &fg, NULL); - -// Create the default icon pixmap - - if (_pixmap == 0) - { - _pixmap = XCreatePixmapFromBitmapData (XtDisplay (_base), XtWindow (_base), - xs_motif_icon_bits, xs_motif_icon_width, xs_motif_icon_height, - fg, bg, depth); - -// Set this pixmap - - setPixmap (_pixmap); - - _freePixmap = True; - -// Create the icon pixmap graphics context - - valuemask = GCGraphicsExposures | GCForeground | GCBackground; - - values.graphics_exposures = False; - values.foreground = fg; - values.background = bg; - - _pixmapGC = XtGetGC (_base, valuemask, &values); - } - -// Create the font graphics context - - valuemask = GCForeground | GCBackground | GCGraphicsExposures | GCFont; - - values.foreground = fg; - values.background = bg; - values.font = _iconFont->fid; - values.graphics_exposures = False; - - _fontGC = XtGetGC (_base, valuemask, &values); -} - -/* - ---------------------------------------------------------------------------- - _XsMotifMenu -*/ - -// Static definitions - -int _XsMotifMenu::_count = 0; -Cursor _XsMotifMenu::_cursor = None; -Pixmap _XsMotifMenu::_stipple = None; -Display *_XsMotifMenu::_dpy = 0; - -// Resources - -XtResource _XsMotifMenu::_resourceList[] = { - { - "saveUnder", - "SaveUnder", - XmRBoolean, - sizeof (Boolean), - XtOffset (_XsMotifMenu*, _saveUnder), - XmRImmediate, - (XtPointer)True - }, - { - "restoreString", - "RestoreString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Restore]), - XmRString, - "Restore" - }, - { - "moveString", - "MoveString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Move]), - XmRString, - "Move" - }, - { - "sizeString", - "SizeString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Size]), - XmRString, - "Size" - }, - { - "minimizeString", - "MinimizeString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Minimize]), - XmRString, - "Minimize" - }, - { - "maximizeString", - "MaximizeString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Maximize]), - XmRString, - "Maximize" - }, - { - "raiseString", - "RaiseString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Raise]), - XmRString, - "Raise" - }, - { - "lowerString", - "LowerString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Lower]), - XmRString, - "Lower" - }, - { - "closeString", - "CloseString", - XmRString, - sizeof (String), - XtOffset (_XsMotifMenu*, _strings[Close]), - XmRString, - "Close" - }, - { - "menuFont", - "menuFont", - XmRFontStruct, - sizeof (XFontStruct*), - XtOffset (_XsMotifMenu*, _menuFont), - XmRString, - "-*-helvetica-bold-o-normal-*-14-*-*-*-*-*-iso8859-1" - } -}; - -// Constructor - -_XsMotifMenu::_XsMotifMenu (const char *name, XsMotifWindow *win) : - _XsMotifBase (name, win) -{ - -// Create the cursor (if necessary) - - if (_count++ == 0) - { - -// Create the menu cursor - - _cursor = XCreateFontCursor (XtDisplay (win->base ( )), XC_arrow); - -// Create a stippled pixmap - - Widget parent = _win->base ( ); - Pixel foreground; - Pixel background; - int depth; - - XtVaGetValues (parent, XmNforeground, &foreground, XmNbackground, - &background, XmNdepth, &depth, NULL); - - const int pixmapWidth = 2; - const int pixmapHeight = 2; - static unsigned char pixmapBits[] = { 0x02, 0x01 }; - - _dpy = XtDisplay (parent); - _stipple = XCreatePixmapFromBitmapData (_dpy, DefaultRootWindow (_dpy), - (char*)pixmapBits, pixmapWidth, pixmapHeight, foreground, background, - depth); - } - -// Initialize - - _fontGC = 0; - _grayGC = 0; - _backgroundGC = 0; - -// Create the component (why doesn't overrideShell work?) - - _base = XtVaCreatePopupShell (_name, topLevelShellWidgetClass, - XtParent (_win->base ( )), XmNoverrideRedirect, True, - XmNborderWidth, 1, NULL); - -// Install destroy handler - - _installDestroyHandler ( ); - -// Install event handler ('cause we never call _XsMotifBase::show) - - XtAddEventHandler (_base, StructureNotifyMask, False, _mapEventHandler, (XtPointer)this); - -// Get resources - - _getResources (_resourceList, XtNumber (_resourceList)); - -// Get the background color - - Pixel bg; - - XtVaGetValues (_win->base ( ), XmNbackground, &bg, NULL); - -// Compute the size of the (largest) menu item - - int textHeight = _menuFont->ascent + _menuFont->descent; - int textWidth = 0; - int tmp; - - for (int loop = 0; loop < Num; loop++) - { - tmp = XTextWidth (_menuFont, _strings[loop], strlen (_strings[loop])); - - if (tmp > textWidth) - textWidth = tmp; - } - -// Put a border around the buttons - - textWidth += (2 * HorizTextOffset); - textHeight += (2 * VertTextOffset); - -/* - The menu height is the menu-shadow (1 pixel on top and bottom) + the - items themselves. -*/ - - int menuHeight = (2 * ShadowThickness) + // Top and bottom shadow - (textHeight * Num); // The menu items - -/* - The menu width is the menu-shadow (1 pixel on the left and right) + - the largest menu text (calculated above) -*/ - - int menuWidth = (2 * ShadowThickness) + // Left and right shadow - textWidth; // Largest text item - -// Configure the popup - - XtVaSetValues (_base, XmNsaveUnder, _saveUnder, XmNwidth, menuWidth, - XmNheight, menuHeight, NULL); -} - -// Destructor - -_XsMotifMenu::~_XsMotifMenu ( ) -{ - if (_fontGC) - XtReleaseGC (_base, _fontGC); - - if (_grayGC) - XtReleaseGC (_base, _grayGC); - - if (_backgroundGC) - XtReleaseGC (_base, _backgroundGC); - -// Free the pixmap (if necessary) - - if (--_count == 0) - XFreePixmap (_dpy, _stipple); -} - -// popup - -void _XsMotifMenu::popup (Boolean atPointer) -{ - assert (_base != 0); - - Position x, y; - -// Compute the location of the menu. - - if (atPointer) - { - unsigned int mask; - Window win; - int winX, winY; - int rootX, rootY; - -// Menu at pointer location - - XQueryPointer (XtDisplay (_base), XtWindow (XtParent (_base)), - &win, &win, &rootX, &rootY, &winX, &winY, &mask); - - x = (Position)rootX; - y = (Position)rootY; - } - else - { - -// Menu at top-left corner of client area - - XtTranslateCoords (_win->clientArea ( ), 0, 0, &x, &y); - } - -// Move the menu - - XtVaSetValues (_base, XmNx, x, XmNy, y, NULL); - -// Initialize the item - - _curItem = NoItem; - -// Pop it up - - XtPopup (_base, XtGrabNone); - -// Grab the pointer - - if (_grabPointer ( ) == FALSE) - return; - -// Update the menu - - _processEvents ( ); - -// Pop the menu down - - XtPopdown (_base); - -// Ungrab the pointer - - _ungrabPointer ( ); - - if (_curItem != NoItem) - { - -/* - Post a work-proc to process this item. This will allow everything - to get caught up before we process the menu item -*/ - - XtAppContext appContext = XtWidgetToApplicationContext (_base); - XtAppAddWorkProc (appContext, _workProc, (XtPointer)this); - } -} - -// className - -const char *_XsMotifMenu::className ( ) const -{ - return ("_XsMotifMenu"); -} - -// _componentDestroyed - -void _XsMotifMenu::_componentDestroyed ( ) -{ - -// Clean up the GCs - - if (_fontGC) - XtReleaseGC (_base, _fontGC); - - if (_grayGC) - XtReleaseGC (_base, _grayGC); - - if (_backgroundGC) - XtReleaseGC (_base, _backgroundGC); - - _fontGC = 0; - _grayGC = 0; - _backgroundGC = 0; - -// Call the base-class - - _XsMotifBase::_componentDestroyed ( ); -} - -// _processEvents - -void _XsMotifMenu::_processEvents ( ) -{ - assert (_base != 0); - - XtAppContext appContext = XtWidgetToApplicationContext (_base); - XEvent event; - Display *dpy = XtDisplay (_base); - int done = 0; - - while (!done) - { - XtAppNextEvent (appContext, &event); - -// Process this event - - switch (event.type) - { - case ButtonRelease: - { - done = 1; - break; - } - case Expose: - { - _redrawMenu ( ); - break; - } - case MotionNotify: - { - XEvent next; - -// Process only the last motion event - - while (XPending (dpy) > 0) - { - XPeekEvent (dpy, &next); - if (next.type != MotionNotify) - break; - XtAppNextEvent (appContext, &event); - } - -// Track the mouse and toggle the menu items - - Item item = _trackPointer ((XMotionEvent*)&event); - -// Unselect the current item (if the item is different) - - if (item != _curItem) - { - _toggleItem (_curItem, False); - -// Select the new item - - _toggleItem ((_curItem = item), True); - } - - break; - } - default: - { - XtDispatchEvent (&event); - break; - } - } - } -} - -// _processItem - -void _XsMotifMenu::_processItem (Item item) -{ - if (item == NoItem) - return; - - switch (item) - { - case Restore: - { - _win->restore ( ); - break; - } - case Move: - { - Widget base = (_win->minimized ( )) ? _win->icon ( ) : _win->base ( ); - -// Warp the pointer to the center of the window - - Dimension width, height; - XtVaGetValues (base, XmNwidth, &width, XmNheight, &height, NULL); - - XWarpPointer (XtDisplay (_base), None, XtWindow (base), 0, 0, 0, 0, - (width / 2), (height / 2)); - -// Move the window - - XsMoveOutline move (base); - -// Start the move - - if (move.go (True) != False) - { - -// Relocate the window - - _win->setPosition (move.x ( ), move.y ( )); - } - break; - } - case Size: - { - Widget base = (_win->minimized ( )) ? _win->icon ( ) : _win->base ( ); - -// Warp the pointer to the center of the window - - Dimension width, height; - XtVaGetValues (base, XmNwidth, &width, XmNheight, &height, NULL); - - XWarpPointer (XtDisplay (_base), None, XtWindow (base), 0, 0, 0, 0, - (width / 2), (height / 2)); - -// Resize the window - - XsResizeOutline resize (_win->base ( ), XsResizeOutline::Undetermined); - resize.setMinSize (_win->minWidth ( ), _win->minHeight ( )); - -// Start the resize - - if (resize.go (True) != False) - { - -// Relocate the window - - _win->setPosition (resize.x ( ), resize.y ( )); - _win->setSize (resize.width ( ), resize.height ( )); - } - break; - } - case Minimize: - { - _win->minimize ( ); - break; - } - case Maximize: - { - _win->maximize ( ); - break; - } - case Raise: - { - _win->raise ( ); - break; - } - case Lower: - { - _win->lower ( ); - break; - } - case Close: - { - _win->close ( ); - break; - } - default: - assert (0); - } -} - -// _redrawMenu - -void _XsMotifMenu::_redrawMenu ( ) -{ - Dimension w, h; - -// Get the size of the menu - - XtVaGetValues (_base, XmNwidth, &w, XmNheight, &h, NULL); - -// Draw a shadow around the menu - - _drawShadows (0, 0, w, h, ShadowThickness); - -// Cycle and draw all of the elements - - for (int loop = 0; loop < Num; loop++) - _redrawItem ((Item)loop); -} - -// _redrawItem - -void _XsMotifMenu::_redrawItem (Item item) -{ - if (item == NoItem) - return; - - int x = ShadowThickness + HorizTextOffset; - int y; - -/* - Compute the y-position of the element. This will be the size of the - top-shadow + the items before it + the offset of the item itself -*/ - - y = ShadowThickness + // Top shadow - (item * ((VertTextOffset * 2) + (_menuFont->descent + _menuFont->ascent))) + - (VertTextOffset + _menuFont->ascent); // The item iteself - -// Figure out the graphics-context - - GC gc; - - if (_win->minimized ( )) - gc = ((item == Size) || (item == Minimize)) ? _grayGC : _fontGC; - else if (_win->maximized ( )) - gc = (item == Maximize) ? _grayGC : _fontGC; - else - gc = (item == Restore) ? _grayGC : _fontGC; - -// Draw the string - - XDrawString (XtDisplay (_base), XtWindow (_base), gc, x, y, - _strings[item], strlen (_strings[item])); -} - -// _toggleItem - -void _XsMotifMenu::_toggleItem (Item item, Boolean active) -{ - if (item == NoItem) - return; - -/* - Either draw the background of the specified item in the active color - or the standard background color -*/ - - GC gc = (active) ? _topShadowGC : _backgroundGC; - -// Get the width of the menu - - Dimension menuWidth; - XtVaGetValues (_base, XmNwidth, &menuWidth, NULL); - -// Compute the location and size of the rectangle - - int x, y; - unsigned int width, height; - - x = ShadowThickness; - height = ((VertTextOffset * 2) + (_menuFont->descent + _menuFont->ascent)); - y = ShadowThickness + (item * height); - width = menuWidth - (2 * ShadowThickness); - -// Draw the filled rectangle - - XFillRectangle (XtDisplay (_base), XtWindow (_base), gc, x, y, width, height); - -// Redraw the text - - _redrawItem (item); -} - -// _trackPointer - -_XsMotifMenu::Item _XsMotifMenu::_trackPointer (XMotionEvent *event) -{ - assert (_base != 0); - - Dimension menuWidth; - Dimension menuHeight; - Position x, y; - -// Get the menu size and position - - XtVaGetValues (_base, XmNwidth, &menuWidth, XmNheight, &menuHeight, - XmNx, &x, XmNy, &y, NULL); - -// Make sure the pointer is in the menu - - if ((event->x_root < x) || (event->x_root > (x + menuWidth))) - return (NoItem); - - if ((event->y_root < y) || (event->y_root > (y + menuHeight))) - return (NoItem); - -// Make sure the pointer is on the confines of the shadow - - if ((event->x < ShadowThickness) || (event->x > (menuWidth - (2 * ShadowThickness)))) - return (NoItem); - - if ((event->y < ShadowThickness) || (event->y > (menuHeight - (2 * ShadowThickness)))) - return (NoItem); - -/* - Now we are just concerned with the y-position. Subtract off the - shadow thickness to normalize the location -*/ - - int yPos = event->y - ShadowThickness; - -// Compute which item the mouse is in - - int itemHeight = (VertTextOffset * 2) + (_menuFont->descent + _menuFont->ascent); - - Item item = (Item)(yPos / itemHeight); - -// Validate that the item is not grayed-out - - if (_win->minimized ( )) - { - if ((item == Size) || (item == Minimize)) - item = NoItem; - } - else if (_win->maximized ( )) - { - if (item == Maximize) - item = NoItem; - } - else if (item == Restore) - item = NoItem; - - return (item); -} - -// _grabPointer - -Boolean _XsMotifMenu::_grabPointer ( ) -{ - -// Sync everything up before being grabby - - XSync (XtDisplay (_base), False); - -// Grab the pointer - - if (XGrabPointer (XtDisplay (_base), XtWindow (_base), False, - (unsigned int)(ButtonPressMask | ButtonReleaseMask | PointerMotionMask | - EnterWindowMask | LeaveWindowMask), GrabModeAsync, - GrabModeAsync, None, _cursor, CurrentTime) != GrabSuccess) - { - XBell (XtDisplay (_base), 100); - return (False); - } - - return (True); -} - -// _ungrabPointer - -void _XsMotifMenu::_ungrabPointer ( ) -{ - -// Ungrab the pointer - - XUngrabPointer (XtDisplay (_base), CurrentTime); - -// Sync everything back up - - XSync (XtDisplay (_base), False); -} - -// _map - -void _XsMotifMenu::_map ( ) -{ - -// Call the base-class - - _XsMotifBase::_map ( ); - - unsigned long valuemask; - XGCValues values; - Pixel foreground; - Pixel background; - -// Get the pixels - - XtVaGetValues (XtParent (_base), XmNforeground, &foreground, NULL); - XtVaGetValues (_base, XmNbackground, &background, NULL); - -// Create the font graphics context - - valuemask = GCForeground | GCBackground | GCGraphicsExposures | GCFont; - - values.foreground = foreground; - values.background = background; - values.font = _menuFont->fid; - values.graphics_exposures = False; - - _fontGC = XtGetGC (_base, valuemask, &values); - -// Create the insensitive font graphics context - - valuemask |= (GCFillStyle | GCTile); - - values.fill_style = FillTiled; - values.tile = _stipple; - - _grayGC = XtGetGC (_base, valuemask, &values); - -// Create the background contexts - - valuemask = GCForeground | GCLineWidth | GCGraphicsExposures; - values.line_width = 0; - values.graphics_exposures = False; - values.foreground = background; - - _backgroundGC = XtGetGC (_base, valuemask, &values); -} - -// _workProc - -Boolean _XsMotifMenu::_workProc (XtPointer clientData) -{ - _XsMotifMenu *obj = (_XsMotifMenu*)clientData; - if (obj->_curItem != NoItem) - obj->_processItem (obj->_curItem); - - return (True); -} - -/* - ---------------------------------------------------------------------------- - XsMotifWindow -*/ - -// Static definitions - -XtResource XsMotifWindow::_resourceList[] = { - { - "showBorder", - "ShowBorder", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _showBorder), - XmRImmediate, - (XtPointer)True - }, - { - "showResize", - "ShowResize", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _showResize), - XmRImmediate, - (XtPointer)True - }, - { - "showTitle", - "ShowTitle", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _showTitle), - XmRImmediate, - (XtPointer)True - }, - { - "showMenu", - "ShowMenu", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _showMenu), - XmRImmediate, - (XtPointer)True - }, - { - "showMinimize", - "ShowMinimize", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _showMinimize), - XmRImmediate, - (XtPointer)True - }, - { - "showMaximize", - "ShowMaximize", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _showMaximize), - XmRImmediate, - (XtPointer)True - }, - { - "lowerOnIconify", - "LowerOnIconify", - XmRBoolean, - sizeof (Boolean), - XtOffset (XsMotifWindow*, _lowerOnIconify), - XmRImmediate, - (XtPointer)False - }, - { - XmNminWidth, - XmCMinWidth, - XmRDimension, - sizeof (Dimension), - XtOffset (XsMotifWindow*, _minW), - XmRImmediate, - (XtPointer)((BorderSize_ + ButtonSize_) * 3) - }, - { - XmNmaxWidth, - XmCMaxWidth, - XmRDimension, - sizeof (Dimension), - XtOffset (XsMotifWindow*, _maxW), - XmRImmediate, - (XtPointer)-1 - }, - { - XmNminHeight, - XmCMinHeight, - XmRDimension, - sizeof (Dimension), - XtOffset (XsMotifWindow*, _minH), - XmRImmediate, - (XtPointer)((BorderSize_ + ButtonSize_) * 3) - }, - { - XmNmaxHeight, - XmCMaxHeight, - XmRDimension, - sizeof (Dimension), - XtOffset (XsMotifWindow*, _maxH), - XmRImmediate, - (XtPointer)-1 - } -}; - -// Constructor - -XsMotifWindow::XsMotifWindow (const char *name) : XsMDIWindow (name) -{ - int loop; - -// Initialize - - for (loop = 0; loop < _XsMotifSide::Max; loop++) - { - _corners[loop] = 0; - _sides[loop] = 0; - } - - for (loop = 0; loop < _XsMotifButton::Max; loop++) - _buttons[loop] = 0; - - _title = 0; - _icon = 0; - _menu = 0; - - _maximized = False; - _minimized = False; -} - -// Destructor - -XsMotifWindow::~XsMotifWindow ( ) -{ - int loop; - - for (loop = 0; loop < _XsMotifSide::Max; loop++) - { - delete _corners[loop]; - delete _sides[loop]; - } - - for (loop = 0; loop < _XsMotifButton::Max; loop++) - delete _buttons[loop]; - - delete _title; - delete _icon; - delete _menu; -} - -// raise - -void XsMotifWindow::raise ( ) -{ - Widget w = (_minimized == True) ? _icon->base ( ) : _base; - assert (w != 0); - XRaiseWindow (XtDisplay (w), XtWindow (w)); -} - -// lower - -void XsMotifWindow::lower ( ) -{ - Widget w = (_minimized == True) ? _icon->base ( ) : _base; - assert (w != 0); - XLowerWindow (XtDisplay (w), XtWindow (w)); -} - -// minimize - -void XsMotifWindow::minimize ( ) -{ - assert (_base != 0); - -// Check if we are already minimized - - if (_minimized == True) - return; - -// Minimize the window - - hide ( ); - - _minimized = True; - -// Lower (if necessary) - - if (_lowerOnIconify) - lower ( ); - - _icon->show ( ); -} - -// maximize - -void XsMotifWindow::maximize ( ) -{ - assert (_base != 0); - -// Check if we are already in this state - - if (_maximized == True) - return; - -// Restore (if necessary) - - if (_minimized) - restore ( ); - -// Save current dimensions - - XtVaGetValues (_base, XmNx, &_savedX, XmNy, &_savedY, XmNwidth, - &_savedWidth, XmNheight, &_savedHeight, NULL); - -/* - Constrain the new window size. The size of the maximized window - is equal to the size of the current clip-window of the canvas. -*/ - - const Dimension offset = 5; // Border around max'd window - - Widget clipWindow = XtParent (XtParent (_base)); - assert (clipWindow != 0); - Dimension clipW, clipH; - Window child; - int newX, newY; - - XtVaGetValues (clipWindow, XmNheight, &clipH, XmNwidth, &clipW, NULL); - -// Add in offset - - if (clipW > (offset * 2)) - clipW -= (offset * 2); - - if (clipH > (offset * 2)) - clipH -= (offset * 2); - -// Compute the new window position (map clip-window to work-area) - - XTranslateCoordinates (XtDisplay (_base), XtWindow (clipWindow), - XtWindow (XtParent (_base)), (int)offset, (int)offset, - &newX, &newY, &child); - -// Set new maximum dimensions - - setPosition ((Position)newX, (Position)newY); - setSize (clipW, clipH); - - _maximized = True; - -// Redraw the maximize button - - _buttons[_XsMotifButton::Maximize]->redraw ( ); -} - -// restore - -void XsMotifWindow::restore ( ) -{ - assert (_base != 0); - -// Check if we are already restored - - if ((_maximized == False) && (_minimized == False)) - return; - -// Either un-minimize or un-maximize - - if (_minimized) - { - -// Restore the window - - _icon->hide ( ); - _minimized = False; - -// If maximized, restore again - - if (_maximized) - restore ( ); - -// Show the window - - show ( ); - } - else - { - -// Restore saved dimensions - - setPosition (_savedX, _savedY); - setSize (_savedWidth, _savedHeight); - } -} - -// close - -void XsMotifWindow::close ( ) -{ - -/* - Don't delete the window (because its not ours to delete). - Just hide it. -*/ - - if (_minimized) - _icon->hide ( ); - else - hide ( ); -} - -// setTitle - -void XsMotifWindow::setTitle (const char *title) -{ - if (_title != 0) - _title->setTitle (title); -} - -// setIconName - -void XsMotifWindow::setIconName (const char *iconName) -{ - if (_icon != 0) - _icon->setIconName (iconName); -} - -// setPixmap - -void XsMotifWindow::setPixmap (Pixmap pixmap) -{ - if (_icon != 0) - _icon->setPixmap (pixmap); -} - -// popupMenu - -void XsMotifWindow::popupMenu (Boolean b) -{ - if (_menu != 0) - _menu->popup (b); -} - -// setPosition - -void XsMotifWindow::setPosition (Position x, Position y) -{ - if (_base != 0) - { - Widget w = (_minimized == True) ? _icon->base ( ) : _base; - assert (w != 0); - XtVaSetValues (w, XmNx, x, XmNy, y, NULL); - } - else - XsMDIWindow::setPosition (x, y); // Cache the points -} - -// setSize - -void XsMotifWindow::setSize (Dimension w, Dimension h) -{ - -// Set the window size - - if (_base != 0) - { - if (w < _minW) - w = _minW; - else if ((_maxW != (Dimension)-1) && (w > _maxW)) - w = _maxW; - - if (h < _minH) - h = _minH; - else if ((_maxH != (Dimension)-1) && (h > _maxH)) - h = _maxH; - - if (_minimized == False) - XtVaSetValues (_base, XmNwidth, w, XmNheight, h, NULL); - -// If window was maximized, change the window state back to normal - - if (_maximized == True) - { - _maximized = False; - -// Redraw the maximize button - - _buttons[_XsMotifButton::Maximize]->redraw ( ); - } - } - else - XsMDIWindow::setSize (w, h); // Cache the points -} - -// className - -const char* XsMotifWindow::className ( ) const -{ - return ("XsMotifWindow"); -} - -// _createWindow - -void XsMotifWindow::_createWindow (Widget parent) -{ - assert (parent != 0); - -// Create the window frame - - _base = XtVaCreateWidget (_name, xmFormWidgetClass, parent, - XmNborderWidth, (Dimension)1, NULL); - -// Install destroy handler - - _installDestroyHandler ( ); - -// Get resources - - _getResources (_resourceList, XtNumber (_resourceList)); - -/* - Fix configuration inter-dependencies. Here are the rules: - - 1) If there is no border, then there are no resize handles - 2) If there is no title, then there are no buttons (would look stupid) -*/ - - if (_showBorder == False) - _showResize = False; - - if (_showTitle == False) - { - _showMenu = False; - _showMinimize = False; - _showMaximize = False; - } - -/* - Corners -*/ - - if (_showResize) - { - -// Top-Left - - _corners[_XsMotifCorner::TopLeft] = new _XsMotifCorner ("topLeft", this, _XsMotifCorner::TopLeft); - - XtVaSetValues (_corners[_XsMotifCorner::TopLeft]->base ( ), XmNtopAttachment, - XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, XmNleftAttachment, - XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, NULL); - -// Top-Right - - _corners[_XsMotifCorner::TopRight] = new _XsMotifCorner ("topRight", this, _XsMotifCorner::TopRight); - - XtVaSetValues (_corners[_XsMotifCorner::TopRight]->base ( ), XmNtopAttachment, - XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, XmNleftAttachment, - XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); - -// Bottom-Left - - _corners[_XsMotifCorner::BottomLeft] = new _XsMotifCorner ("bottomLeft", this, _XsMotifCorner::BottomLeft); - - XtVaSetValues (_corners[_XsMotifCorner::BottomLeft]->base ( ), XmNtopAttachment, - XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, XmNleftAttachment, - XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, NULL); - -// Bottom-Right - - _corners[_XsMotifCorner::BottomRight] = new _XsMotifCorner ("bottomRight", this, _XsMotifCorner::BottomRight); - - XtVaSetValues (_corners[_XsMotifCorner::BottomRight]->base ( ), XmNtopAttachment, - XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, XmNleftAttachment, - XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); - } - -/* - Sides -*/ - - if (_showBorder) - { - -// Top - - _sides[_XsMotifSide::Top] = new _XsMotifSide ("top", this, _XsMotifSide::Top); - - XtVaSetValues (_sides[_XsMotifSide::Top]->base ( ), XmNtopAttachment, - XmATTACH_FORM, XmNbottomAttachment, XmATTACH_NONE, NULL); - - if (_showResize) - { - XtVaSetValues (_sides[_XsMotifSide::Top]->base ( ), XmNleftAttachment, - XmATTACH_WIDGET, XmNleftWidget, _corners[_XsMotifCorner::TopLeft]->base ( ), - XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, - _corners[_XsMotifCorner::TopRight]->base ( ), NULL); - } - else - { - XtVaSetValues (_sides[_XsMotifSide::Top]->base ( ), XmNleftAttachment, - XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); - } - -// Bottom - - _sides[_XsMotifSide::Bottom] = new _XsMotifSide ("bottom", this, _XsMotifSide::Bottom); - - XtVaSetValues (_sides[_XsMotifSide::Bottom]->base ( ), XmNtopAttachment, - XmATTACH_NONE, XmNbottomAttachment, XmATTACH_FORM, NULL); - - if (_showResize) - { - XtVaSetValues (_sides[_XsMotifSide::Bottom]->base ( ), XmNleftAttachment, - XmATTACH_WIDGET, XmNleftWidget, _corners[_XsMotifCorner::BottomLeft]->base ( ), - XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, - _corners[_XsMotifCorner::BottomRight]->base ( ), NULL); - } - else - { - XtVaSetValues (_sides[_XsMotifSide::Bottom]->base ( ), XmNleftAttachment, - XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); - } - -// Left side - - _sides[_XsMotifSide::Left] = new _XsMotifSide ("left", this, _XsMotifSide::Left); - - XtVaSetValues (_sides[_XsMotifSide::Left]->base ( ), XmNleftAttachment, - XmATTACH_FORM, XmNrightAttachment, XmATTACH_NONE, NULL); - - if (_showResize) - { - XtVaSetValues (_sides[_XsMotifSide::Left]->base ( ), XmNtopAttachment, - XmATTACH_WIDGET, XmNtopWidget, _corners[_XsMotifCorner::TopLeft]->base ( ), - XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, - _corners[_XsMotifCorner::BottomLeft]->base ( ), NULL); - } - else - { - XtVaSetValues (_sides[_XsMotifSide::Left]->base ( ), XmNtopAttachment, - XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, NULL); - } - -// Right side - - _sides[_XsMotifSide::Right] = new _XsMotifSide ("right", this, _XsMotifSide::Right); - - XtVaSetValues (_sides[_XsMotifSide::Right]->base ( ), XmNleftAttachment, - XmATTACH_NONE, XmNrightAttachment, XmATTACH_FORM, NULL); - - if (_showResize) - { - XtVaSetValues (_sides[_XsMotifSide::Right]->base ( ), XmNtopAttachment, - XmATTACH_WIDGET, XmNtopWidget, _corners[_XsMotifCorner::TopRight]->base ( ), - XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, - _corners[_XsMotifCorner::BottomRight]->base ( ), NULL); - } - else - { - XtVaSetValues (_sides[_XsMotifSide::Right]->base ( ), XmNtopAttachment, - XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, NULL); - } - } - -// Menu button - - if (_showMenu) - { - _buttons[_XsMotifButton::Menu] = new _XsMotifButton ("menu", this, _XsMotifButton::Menu); - - XtVaSetValues (_buttons[_XsMotifButton::Menu]->base ( ), XmNbottomAttachment, - XmATTACH_NONE, XmNrightAttachment, XmATTACH_NONE, NULL); - - if (_showBorder) - { - XtVaSetValues (_buttons[_XsMotifButton::Menu]->base ( ), XmNleftAttachment, - XmATTACH_WIDGET, XmNleftWidget, _sides[_XsMotifSide::Left]->base ( ), - XmNtopAttachment, XmATTACH_WIDGET, XmNtopWidget, _sides[_XsMotifSide::Top]->base ( ), - NULL); - } - else - { - XtVaSetValues (_buttons[_XsMotifButton::Menu]->base ( ), XmNleftAttachment, - XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM, NULL); - } - } - -// Maximize button - - if (_showMaximize) - { - _buttons[_XsMotifButton::Maximize] = new _XsMotifButton ("maximize", this, _XsMotifButton::Maximize); - - XtVaSetValues (_buttons[_XsMotifButton::Maximize]->base ( ), XmNbottomAttachment, - XmATTACH_NONE, XmNleftAttachment, XmATTACH_NONE, NULL); - - if (_showBorder) - { - XtVaSetValues (_buttons[_XsMotifButton::Maximize]->base ( ), XmNtopAttachment, - XmATTACH_WIDGET, XmNtopWidget, _sides[_XsMotifSide::Top]->base ( ), - XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, _sides[_XsMotifSide::Right]->base ( ), - NULL); - } - else - { - XtVaSetValues (_buttons[_XsMotifButton::Maximize]->base ( ), XmNtopAttachment, - XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, NULL); - } - } - -// Minimize button - - if (_showMinimize) - { - _buttons[_XsMotifButton::Minimize] = new _XsMotifButton ("minimize", this, _XsMotifButton::Minimize); - - XtVaSetValues (_buttons[_XsMotifButton::Minimize]->base ( ), - XmNbottomAttachment, XmATTACH_NONE, XmNleftAttachment, XmATTACH_NONE, - NULL); - - if (_showBorder) - { - XtVaSetValues (_buttons[_XsMotifButton::Minimize]->base ( ), XmNtopAttachment, - XmATTACH_WIDGET, XmNtopWidget, _sides[_XsMotifSide::Top]->base ( ), - XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, - _sides[_XsMotifSide::Right]->base ( ), NULL); - } - else - { - XtVaSetValues (_buttons[_XsMotifButton::Minimize]->base ( ), - XmNtopAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, - NULL); - } - - if (_showMaximize) - { - XtVaSetValues (_buttons[_XsMotifButton::Minimize]->base ( ), - XmNrightAttachment, XmATTACH_WIDGET, XmNrightWidget, - _buttons[_XsMotifButton::Maximize]->base ( ), NULL); - } - } - -/* - Titlebar -*/ - - if (_showTitle) - { - _title = new _XsMotifTitle ("title", this); - - XtVaSetValues (_title->base ( ), XmNbottomAttachment, XmATTACH_NONE, - NULL); - - if (_showBorder) - { - XtVaSetValues (_title->base ( ), XmNtopAttachment, XmATTACH_WIDGET, - XmNtopWidget, _sides[_XsMotifSide::Top]->base ( ), - XmNleftAttachment, XmATTACH_WIDGET, XmNleftWidget, - _sides[_XsMotifSide::Left]->base ( ), XmNrightAttachment, - XmATTACH_WIDGET, XmNrightWidget, _sides[_XsMotifSide::Right]->base ( ), - NULL); - } - else - { - XtVaSetValues (_title->base ( ), XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, - NULL); - } - - if (_showMenu) - { - XtVaSetValues (_title->base ( ), XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, _buttons[_XsMotifButton::Menu]->base ( ), NULL); - } - - Widget ba = (_buttons[_XsMotifButton::Minimize] != 0) ? - _buttons[_XsMotifButton::Minimize]->base ( ) : - (_buttons[_XsMotifButton::Maximize] != 0) ? - _buttons[_XsMotifButton::Maximize]->base ( ) : 0; - - if (ba) - { - XtVaSetValues (_title->base ( ), XmNrightAttachment, XmATTACH_WIDGET, - XmNrightWidget, ba, NULL); - } - } - -/* - Icon -*/ - - _icon = new _XsMotifIcon ("icon", this, parent); - -/* - Menu -*/ - - _menu = new _XsMotifMenu ("menu", this); - -/* - Client Area -*/ - - _clientArea = XtVaCreateWidget ("clientArea", xmFormWidgetClass, _base, NULL); - - if (_showBorder) - { - XtVaSetValues (_clientArea, XmNleftAttachment, XmATTACH_WIDGET, - XmNleftWidget, _sides[_XsMotifSide::Left]->base ( ), XmNrightAttachment, - XmATTACH_WIDGET, XmNrightWidget, _sides[_XsMotifSide::Right]->base ( ), - XmNbottomAttachment, XmATTACH_WIDGET, XmNbottomWidget, - _sides[_XsMotifSide::Bottom]->base ( ), NULL); - } - else - { - XtVaSetValues (_clientArea, XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, - NULL); - } - - Widget topW = (_showTitle) ? _title->base ( ) : - (_showBorder) ? _sides[_XsMotifSide::Top]->base ( ) : 0; - - if (topW) - { - XtVaSetValues (_clientArea, XmNtopAttachment, XmATTACH_WIDGET, - XmNtopWidget, topW, NULL); - } - else - XtVaSetValues (_clientArea, XmNtopAttachment, XmATTACH_FORM, NULL); - -// Call the class function to create the contents of the window - - _buildClientArea (_clientArea); - -// Add an event handler to be called when this window is mapped - - XtAddEventHandler (_base, StructureNotifyMask, False, _mapEventHandler, (XtPointer)this); - -// Show everything - - int loop; - - for (loop = 0; loop < _XsMotifSide::Max; loop++) - { - if (_corners[loop] != 0) - _corners[loop]->show ( ); - if (_sides[loop] != 0) - _sides[loop]->show ( ); - } - - for (loop = 0; loop < _XsMotifButton::Max; loop++) - { - if (_buttons[loop] != 0) - _buttons[loop]->show ( ); - } - - if (_title != 0) - _title->show ( ); -} - -// _mapEvent - -void XsMotifWindow::_mapEvent ( ) -{ - -// Raise the client-area - - XRaiseWindow (XtDisplay (_clientArea), XtWindow (_clientArea)); -} - -// _mapEventHandler - -void XsMotifWindow::_mapEventHandler (Widget, XtPointer clientData, XEvent *event, Boolean*) -{ - if (event->type == MapNotify) - { - XsMotifWindow *obj = (XsMotifWindow*)clientData; - obj->_mapEvent ( ); - XtRemoveEventHandler (obj->_base, StructureNotifyMask, False, obj->_mapEventHandler, clientData); - } -} diff --git a/src/motif/mdi/lib/XsMotifWindow.h b/src/motif/mdi/lib/XsMotifWindow.h deleted file mode 100644 index 4580cb4438..0000000000 --- a/src/motif/mdi/lib/XsMotifWindow.h +++ /dev/null @@ -1,665 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMotifWindow.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSMOTIFWINDOW_H -#define XSMOTIFWINDOW_H - -// Includes - -#include -#include "XsMDIWindow.h" - -// Forward declarations - -class XsMotifWindow; - -/* - ---------------------------------------------------------------------------- - _XsMotifBase class -*/ - -class _XsMotifBase : public XsComponent { - - public: - -// Destructor - - virtual ~_XsMotifBase ( ); - -// Window actions - - virtual void show ( ); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Protected constructor - - _XsMotifBase (const char *name, XsMotifWindow *win); - -// Component life-cycle - - virtual void _componentDestroyed ( ); - -// Utilities - - void _drawShadows (Position x, Position y, Dimension width, - Dimension height, Dimension thick, Boolean reverse = False); - - void _drawLine (Position x1, Position y1, Position x2, Position y2, GC &gc); - -// Implementation - - XsMotifWindow *_win; - - GC _topShadowGC; - GC _bottomShadowGC; - -// Event handlers - - virtual void _map ( ); - -// Internal Event handlers - - static void _mapEventHandler (Widget, XtPointer, XEvent*, Boolean*); -}; - -/* - ---------------------------------------------------------------------------- - _XsMotifComponent class -*/ - -class _XsMotifComponent : public _XsMotifBase { - - public: - -// Destructor - - virtual ~_XsMotifComponent ( ); - -// Enumerations - - enum Cursors { - TopCursor = 0, BottomCursor, LeftCursor, RightCursor, - TopLeftCursor, TopRightCursor, BottomLeftCursor, - BottomRightCursor, NumCursors }; - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Protected constructor - - _XsMotifComponent (const char *name, XsMotifWindow *win, Widget parent = 0); - -// Cursors - - static Cursor _cursors[NumCursors]; - -// Component parameters - - Dimension _borderSize; - Dimension _buttonSize; - Dimension _cornerSize; - -// Event handlers - - virtual void _expose (XEvent*) = 0; - virtual void _input (XEvent*); - - private: - -// Internal Event handlers - - static void _exposeEventHandler (Widget, XtPointer, XEvent*, Boolean*); - static void _inputEventHandler (Widget, XtPointer, XEvent*, Boolean*); - -// Resources - - static XtResource _resourceList[]; - - static int _mutex; -}; - -/* - ---------------------------------------------------------------------------- - _XsMotifCorner class -*/ - -class _XsMotifCorner : public _XsMotifComponent { - - public: - -// Enumerations - - enum Corner { TopLeft = 0, TopRight, BottomLeft, BottomRight, Max }; - -// Constructor/Destructor - - _XsMotifCorner (const char *name, XsMotifWindow *win, Corner corner); - virtual ~_XsMotifCorner ( ); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Implementation - - Corner _corner; - -// Event handlers - - virtual void _expose (XEvent*); - virtual void _input (XEvent*); - virtual void _map ( ); -}; - -/* - ---------------------------------------------------------------------------- - _XsMotifSide class -*/ - -class _XsMotifSide : public _XsMotifComponent { - - public: - -// Enumerations - - enum Side { Top = 0, Bottom, Left, Right, Max }; - -// Constructor/Destructor - - _XsMotifSide (const char *name, XsMotifWindow *win, Side side); - virtual ~_XsMotifSide ( ); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Implementation - - Side _side; - - int _lastW; - int _lastH; - -// Event handlers - - virtual void _expose (XEvent*); - virtual void _input (XEvent*); - virtual void _map ( ); - virtual void _configure (XEvent *); - - private: - -// Callbacks - - static void _configureEventHandler (Widget, XtPointer, XEvent*, Boolean*); -}; - -/* - ---------------------------------------------------------------------------- - _XsMotifButton class -*/ - -class _XsMotifButton : public _XsMotifComponent { - - public: - -// Enumerations - - enum Button { Menu = 0, Minimize, Maximize, Max }; - -// Constructor/Destructor - - _XsMotifButton (const char *name, XsMotifWindow *win, Button button); - virtual ~_XsMotifButton ( ); - -// Utilities - - virtual void redraw ( ); - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Implementation - - Boolean _pressed; - Button _button; - -// Event handlers - - virtual void _expose (XEvent*); - virtual void _input (XEvent*); - virtual void _map ( ); -}; - -/* - ---------------------------------------------------------------------------- - _XsMotifTitle class -*/ - -class _XsMotifTitle : public _XsMotifComponent { - - public: - -// Constructor/Destructor - - _XsMotifTitle (const char *name, XsMotifWindow *win); - virtual ~_XsMotifTitle ( ); - -// Title string - - void setTitle (const char *name); - const char *title ( ) const; - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Implementation - - Boolean _pressed; - String _titleString; - GC _fontGC; - - XFontStruct *_titleFont; - - int _lastW; - int _lastH; - -// Component life-cycle - - virtual void _componentDestroyed ( ); - -// Utilities - - virtual void _redraw ( ); - -// Event handlers - - virtual void _expose (XEvent*); - virtual void _input (XEvent*); - virtual void _map ( ); - virtual void _configure (XEvent*); - - private: - -// Callbacks - - static void _configureEventHandler (Widget, XtPointer, XEvent*, Boolean*); - -// Resources - - static XtResource _resourceList[]; -}; - -// Inline member functions - -inline const char *_XsMotifTitle::title ( ) const -{ - return (_titleString); -} - -/* - ---------------------------------------------------------------------------- - _XsMotifIcon class -*/ - -class _XsMotifIcon : public _XsMotifComponent { - - public: - -// Constructor/Destructor - - _XsMotifIcon (const char *name, XsMotifWindow *win, Widget parent); - virtual ~_XsMotifIcon ( ); - -// Window operations - - virtual void show ( ); - -// Icon name/pixmap - - void setIconName (const char *name); - const char *iconName ( ) const; - - void setPixmap (Pixmap pm); - Pixmap pixmap ( ) const; - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Implementation - - GC _fontGC; - GC _pixmapGC; - - Dimension _iconSize; - String _iconName; - XFontStruct *_iconFont; - Pixmap _pixmap; - Boolean _freePixmap; - - Dimension _width, _height; - Position _iconX, _iconY; - Boolean _placed; - -// Component life-cycle - - virtual void _componentDestroyed ( ); - -// Event handlers - - virtual void _expose (XEvent*); - virtual void _input (XEvent*); - virtual void _map ( ); - - private: - -// Resources - - static XtResource _resourceList[]; -}; - -// Inline member-functions - -inline const char *_XsMotifIcon::iconName ( ) const -{ - return (_iconName); -} - -inline Pixmap _XsMotifIcon::pixmap ( ) const -{ - return (_pixmap); -} - -/* - ---------------------------------------------------------------------------- - _XsMotifMenu class -*/ - -class _XsMotifMenu : public _XsMotifBase { - - public: - -// Constructor/Destructor - - _XsMotifMenu (const char *name, XsMotifWindow *win); - virtual ~_XsMotifMenu ( ); - -// Utilities - - virtual void popup (Boolean atPointer = True); - -// Enumerations - - enum Item { - NoItem = -1, Restore, Move, Size, Minimize, - Maximize, Raise, Lower, Close, Num - }; - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Dimensions - - enum { ShadowThickness = 1 }; - enum { VertTextOffset = 3 }; - enum { HorizTextOffset = 10 }; - -// Implementation - - static Cursor _cursor; - static Pixmap _stipple; - static Display *_dpy; - - Boolean _saveUnder; - - String _strings[Num]; - XFontStruct *_menuFont; - - GC _fontGC; - GC _grayGC; - GC _backgroundGC; - - Item _curItem; - -// Component life-cycle - - virtual void _componentDestroyed ( ); - -// Menu event processing - - virtual void _processEvents ( ); - -// Utilities - - virtual void _processItem (Item item); - virtual void _redrawMenu ( ); - - void _redrawItem (Item); - void _toggleItem (Item, Boolean active = False); - Item _trackPointer (XMotionEvent *event); - -// Pointer grabs - - Boolean _grabPointer ( ); - void _ungrabPointer ( ); - -// Event handlers - - virtual void _map ( ); - - private: - -// Work procedure - - static Boolean _workProc (XtPointer); - -// Resources - - static XtResource _resourceList[]; - static int _count; -}; - - -/* - ---------------------------------------------------------------------------- - XsMotifWindow class -*/ - -class XsMotifWindow : public XsMDIWindow { - - public: - -// Constructor/Destructor - - XsMotifWindow (const char *name); - virtual ~XsMotifWindow ( ); - -// Window manipulation - - virtual void raise ( ); - virtual void lower ( ); - - virtual void minimize ( ); - virtual void maximize ( ); - virtual void restore ( ); - - virtual void close ( ); - -// Window and icon strings - - void setTitle (const char *name); - const char *title ( ) const; - - void setIconName (const char *name); - const char *iconName ( ) const; - - void setPixmap (Pixmap pm); - Pixmap pixmap ( ) const; - -// Window icon handle - - Widget icon ( ) const; - -// Menu settings - - void popupMenu (Boolean atPointer = True); - -// Utilities - - Boolean maximized ( ) const; - Boolean minimized ( ) const; - -// Position and size - - virtual void setPosition (Position, Position); - virtual void setSize (Dimension, Dimension); - - Dimension minWidth ( ) const; - Dimension minHeight ( ) const; - -// Class name - - virtual const char *className ( ) const; - - protected: - -// Window creation functions - - virtual void _buildClientArea (Widget parent) = 0; - virtual void _createWindow (Widget parent); - -// Window components - - _XsMotifCorner *_corners[_XsMotifCorner::Max]; - _XsMotifSide *_sides[_XsMotifSide::Max]; - _XsMotifButton *_buttons[_XsMotifButton::Max]; - _XsMotifTitle *_title; - _XsMotifIcon *_icon; - _XsMotifMenu *_menu; - -// Window dimensions - - Dimension _savedWidth, _savedHeight; - Position _savedX, _savedY; - Dimension _minW, _maxW; - Dimension _minH, _maxH; - -// Window parameters - - Boolean _showBorder; - Boolean _showResize; - Boolean _showTitle; - Boolean _showMenu; - Boolean _showMinimize; - Boolean _showMaximize; - Boolean _lowerOnIconify; - -// Window state - - Boolean _maximized; - Boolean _minimized; - -// Callbacks - - virtual void _mapEvent ( ); - - private: - -// Internal event handlers - - static void _mapEventHandler (Widget, XtPointer, XEvent*, Boolean*); - -// Resources - - static XtResource _resourceList[]; -}; - -// Inline member functions - -inline Boolean XsMotifWindow::maximized ( ) const -{ - return (_maximized); -} - -inline Boolean XsMotifWindow::minimized ( ) const -{ - return (_minimized); -} - -inline const char *XsMotifWindow::title ( ) const -{ - if (_title != 0) - return (_title->title ( )); - else - return (0); -} - -inline const char *XsMotifWindow::iconName ( ) const -{ - if (_icon != 0) - return (_icon->iconName ( )); - else - return (0); -} - -inline Pixmap XsMotifWindow::pixmap ( ) const -{ - if (_icon != 0) - return (_icon->pixmap ( )); - else - return (None); -} - -inline Widget XsMotifWindow::icon ( ) const -{ - if (_icon != 0) - return (_icon->base ( )); - else - return (0); -} - -inline Dimension XsMotifWindow::minWidth ( ) const -{ - return (_minW); -} - -inline Dimension XsMotifWindow::minHeight ( ) const -{ - return (_minH); -} - -#endif diff --git a/src/motif/mdi/lib/XsMoveOutline.C b/src/motif/mdi/lib/XsMoveOutline.C deleted file mode 100644 index eacd376f40..0000000000 --- a/src/motif/mdi/lib/XsMoveOutline.C +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMoveOutline.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#include -#include "XsMoveOutline.h" -#include - -// Static definitions - -Cursor XsMoveOutline::_fleur = None; - -// Constructor - -XsMoveOutline::XsMoveOutline (Widget w) : XsOutline (w) -{ - unsigned int mask; // Not used - Window root; - int xy; - -// Create the cursor (if necessary) - - if (_fleur == None) - _fleur = XCreateFontCursor (XtDisplay (_w), XC_fleur); - -// Get the current mouse root coordinates - - XQueryPointer (XtDisplay (_w), XtWindow (_w), &root, &root, &_rootX, - &_rootY, &xy, &xy, &mask); -} - -// Destructor - -XsMoveOutline::~XsMoveOutline ( ) -{ - // Empty -} - -// _motionHandler - -void XsMoveOutline::_motionHandler (XEvent *event) -{ - int curX, curY; - -// Get current mouse position - - curX = event->xbutton.x_root; - curY = event->xbutton.y_root; - -// Compute the new window position - - _x += (curX - _rootX); - _y += (curY - _rootY); - -// Move the window - - _drawOutline (False); - -// Save the new root position - - _rootX = curX; - _rootY = curY; -} - -// _getCursor - -Cursor XsMoveOutline::_getCursor ( ) const -{ - return (_fleur); -} - diff --git a/src/motif/mdi/lib/XsMoveOutline.h b/src/motif/mdi/lib/XsMoveOutline.h deleted file mode 100644 index 01e24087c4..0000000000 --- a/src/motif/mdi/lib/XsMoveOutline.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsMoveOutline.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSMOVEOUTLINE_H -#define XSMOVEOUTLINE_H - -// Includes - -#include "XsOutline.h" - -// XsMoveOutline class - -class XsMoveOutline : public XsOutline { - - public: - -// Constructor/Destructor - - XsMoveOutline (Widget w); - virtual ~XsMoveOutline ( ); - - protected: - -// Motion handler - - virtual void _motionHandler (XEvent*); - -// Moving cursor - - virtual Cursor _getCursor ( ) const; - - private: - -// Implementation - - int _rootX; - int _rootY; - - static Cursor _fleur; -}; - -#endif diff --git a/src/motif/mdi/lib/XsOutline.C b/src/motif/mdi/lib/XsOutline.C deleted file mode 100644 index 3301065180..0000000000 --- a/src/motif/mdi/lib/XsOutline.C +++ /dev/null @@ -1,241 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsOutline.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#include -#include -#include "XsOutline.h" - -// Constructor - -XsOutline::XsOutline (Widget w) -{ - assert (w != 0); - -// Initialize - - _w = w; - -// Get window dimensions - - unsigned int moreJunk; - unsigned int uw, uh; - Window junk; - - XGetGeometry (XtDisplay (_w), XtWindow (_w), &junk, &_x, &_y, &uw, &uh, &moreJunk, &moreJunk); - - _width = uw; - _height = uh; - -// Get initial settings - - _savedX = _x; - _savedY = _y; - _savedH = _savedW = 0; - -// Create the graphics context - - XGCValues values; - unsigned long valuemask; - - Display *dpy = XtDisplay (_w); - - valuemask = GCFunction | GCLineWidth | GCSubwindowMode; - values.function = GXinvert; - values.line_width = 0; - values.subwindow_mode = IncludeInferiors; - - _gc = XCreateGC (dpy, XtWindow (_w), valuemask, &values); -} - -// Destructor - -XsOutline::~XsOutline ( ) -{ - XFreeGC (XtDisplay (_w), _gc); -} - -// go - -Boolean XsOutline::go (Boolean drawInitial) -{ - XtAppContext appContext = XtWidgetToApplicationContext (_w); - XEvent event; - int done = 0; - -// Grab the pointer - - if (_grabPointer ( ) == False) - return (False); - -// Draw the initial box (if requested) - - if (drawInitial) - _drawOutline (False); - -// Process the events locally - - while (!done) - { - XtAppNextEvent (appContext, &event); - - switch (event.type) - { - case ButtonRelease: - { - -// Clear the outline and break - - _drawOutline (True); - done = 1; - break; - } - case MotionNotify: - { - XEvent next; - -// Process only the last motion event - - while (XPending (XtDisplay (_w)) > 0) - { - XPeekEvent (XtDisplay (_w), &next); - if (next.type != MotionNotify) - break; - XtAppNextEvent (appContext, &event); - } - -// Send this event - - _motionHandler (&event); - - break; - } - default: - { - XtDispatchEvent (&event); - break; - } - } - } - -// Ungrab the pointer - - _ungrabPointer ( ); - - return (True); -} - -// _drawOutline - -void XsOutline::_drawOutline (Boolean clear) -{ - -// Clear the current outline - - if (_savedH || _savedW) - _drawIt (_savedX, _savedY, _savedW, _savedH); - -// Save current values - - _savedX = _x; _savedY = _y; - _savedW = _width; _savedH = _height; - -// Draw the new outline (unless flagged to just clear) - - if (!clear) - _drawIt (_x, _y, _width, _height); -} - -// _getCursor - -Cursor XsOutline::_getCursor ( ) const -{ - return (None); -} - -// _grabPointer - -Boolean XsOutline::_grabPointer ( ) -{ - -// Sync everything up before being grabby - - XSync (XtDisplay (_w), False); - -// Grab the pointer - - if (XGrabPointer (XtDisplay (_w), XtWindow (_w), False, GrabEventMask, - GrabModeAsync, GrabModeAsync, XtWindow (XtParent (_w)), _getCursor ( ), - CurrentTime) != GrabSuccess) - { - XBell (XtDisplay (_w), 100); - return (False); - } - - return (True); -} - -// _ungrabPointer - -void XsOutline::_ungrabPointer ( ) -{ - -// Ungrab the pointer - - XUngrabPointer (XtDisplay (_w), CurrentTime); -} - -// _drawIt - -void XsOutline::_drawIt (int x, int y, int w, int h) -{ - const int nsegs = 8; - XSegment segs[nsegs]; - -// Across the top - - segs[0].x1 = x; segs[0].y1 = y; - segs[0].x2 = x + w - 1; segs[0].y2 = y; - - segs[1].x1 = x + BorderSize; segs[1].y1 = y + BorderSize; - segs[1].x2 = x + w - BorderSize - 1; segs[1].y2 = y + BorderSize; - -// Down the left - - segs[2].x1 = x + w - 1; segs[2].y1 = y + 1; - segs[2].x2 = x + w - 1; segs[2].y2 = y + h - 1; - - segs[3].x1 = x + w - BorderSize - 1; segs[3].y1 = y + BorderSize + 1; - segs[3].x2 = x + w - BorderSize - 1; segs[3].y2 = y + h - BorderSize - 1; - -// Across the bottom - - segs[4].x1 = x + 1; segs[4].y1 = y + h - 1; - segs[4].x2 = x + w - 2; segs[4].y2 = y + h - 1; - - segs[5].x1 = x + BorderSize + 1; segs[5].y1 = y + h - BorderSize - 1; - segs[5].x2 = x + w - BorderSize - 2; segs[5].y2 = y + h - BorderSize - 1; - -// Up the left - - segs[6].x1 = x; segs[6].y1 = y + h - 1; - segs[6].x2 = x; segs[6].y2 = y + 1; - - segs[7].x1 = x + BorderSize; segs[7].y1 = y + h - BorderSize - 1; - segs[7].x2 = x + BorderSize; segs[7].y2 = y + BorderSize + 1; - -// Draw the segments - - XDrawSegments (XtDisplay (_w), XtWindow (XtParent (_w)), _gc, segs, nsegs); -} diff --git a/src/motif/mdi/lib/XsOutline.h b/src/motif/mdi/lib/XsOutline.h deleted file mode 100644 index 2bfc4b73f9..0000000000 --- a/src/motif/mdi/lib/XsOutline.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsOutline.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSOUTLINE_H -#define XSOUTLINE_H - -// Includes - -#include - -// XsOutline class - -class XsOutline { - - public: - -// Constructor/Destructor - - XsOutline (Widget w); - virtual ~XsOutline ( ); - -// Event handler - - Boolean go (Boolean drawInitial = False); - -// Utilities - - int width ( ) const; - int height ( ) const; - int x ( ) const; - int y ( ) const; - - protected: - -// Enumerations - - enum { BorderSize = 6 }; - enum { GrabEventMask = (unsigned int)(ButtonPressMask | ButtonReleaseMask | PointerMotionMask) }; - -// Components - - Widget _w; - -// Graphics context - - GC _gc; - -// Current dimensions - - int _x, _y; - int _width; - int _height; - -// Outline utilities - - virtual void _motionHandler (XEvent*) = 0; - virtual Cursor _getCursor ( ) const; - void _drawOutline (Boolean); - - private: - -// Pointer grabs - - Boolean _grabPointer ( ); - void _ungrabPointer ( ); - -// Save dimensions - - int _savedX, _savedY; - int _savedW, _savedH; - -// Drawing - - void _drawIt (int, int, int, int); -}; - -// Inline member functions - -inline int XsOutline::width ( ) const -{ - return (_width); -} - -inline int XsOutline::height ( ) const -{ - return (_height); -} - -inline int XsOutline::x ( ) const -{ - return (_x); -} - -inline int XsOutline::y ( ) const -{ - return (_y); -} - -#endif diff --git a/src/motif/mdi/lib/XsResizeOutline.C b/src/motif/mdi/lib/XsResizeOutline.C deleted file mode 100644 index 6ccbcf9d86..0000000000 --- a/src/motif/mdi/lib/XsResizeOutline.C +++ /dev/null @@ -1,231 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsResizeOutline.C - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -// Includes - -#include -#include -#include "XsResizeOutline.h" - -// Static definitions - -Cursor XsResizeOutline::_cursors[XsResizeOutline::NumCursors]; -int XsResizeOutline::_mutex = 0; - -// Constructor - -XsResizeOutline::XsResizeOutline (Widget w, int direction) : XsOutline (w) -{ - -// Initialize - - _minWidth = 5; - _minHeight = 5; - _direction = direction; - -// Translate current window location to root coordinates - - Position xpos, ypos; - - XtTranslateCoords (XtParent (_w), (Position)_x, (Position)_y, &xpos, &ypos); - - _rootX = (int)xpos; - _rootY = (int)ypos; - -// Save the original window position and size - - _origX = _x; - _origY = _y; - _origW = _width; - _origH = _height; - - _origRootX = _rootX; - _origRootY = _rootY; - -// Create the cursors (if necessary) - - if (_mutex == 0) - { - Display *dpy = XtDisplay (_w); - -// Create cursors - - _cursors[TopCursor] = XCreateFontCursor (dpy, XC_top_side); - _cursors[BottomCursor] = XCreateFontCursor (dpy, XC_bottom_side); - _cursors[LeftCursor] = XCreateFontCursor (dpy, XC_left_side); - _cursors[RightCursor] = XCreateFontCursor (dpy, XC_right_side); - _cursors[TopLeftCursor] = XCreateFontCursor (dpy, XC_top_left_corner); - _cursors[TopRightCursor] = XCreateFontCursor (dpy, XC_top_right_corner); - _cursors[BottomLeftCursor] = XCreateFontCursor (dpy, XC_bottom_left_corner); - _cursors[BottomRightCursor] = XCreateFontCursor (dpy, XC_bottom_right_corner); - _cursors[Fleur] = XCreateFontCursor (dpy, XC_fleur); - _mutex = 1; - } -} - -// Destructor - -XsResizeOutline::~XsResizeOutline ( ) -{ - // Empty -} - -// setMinSize - -void XsResizeOutline::setMinSize (int minWidth, int minHeight) -{ - assert (minWidth > 0); - assert (minHeight > 0); - - _minWidth = minWidth; - _minHeight = minHeight; -} - -// _motionHandler - -void XsResizeOutline::_motionHandler (XEvent *event) -{ - int curX, curY; - int diff; - int x, y, w, h; - -// Get current mouse position - - curX = event->xbutton.x_root; - curY = event->xbutton.y_root; - - if (_direction & Undetermined) - { - -/* - Just let the mouse roam around until it crosses the outline. - When it does so, lock in the direction, change the cursor, and let - it rip. -*/ - - if (((curX <= _origRootX) || (curX >= (_origRootX + _origW))) - || ((curY <= _origRootY) || (curY >= (_origRootY + _origH)))) - { - - const int CornerOffset = 30; - -// Crossed box. Figure out where and set direction - - _direction = 0; - - if (curY <= (_origRootY + CornerOffset)) - _direction |= Up; - else if (curY >= (_origRootY + _origH - CornerOffset)) - _direction |= Down; - - if (curX <= (_origRootX + CornerOffset)) - _direction |= Left; - else if (curX >= (_origRootX + _origW - CornerOffset)) - _direction |= Right; - -// Get the new cursor - - XChangeActivePointerGrab (XtDisplay (_w), GrabEventMask, - _getCursor ( ), CurrentTime); - } - else - return; - } - -// Get the current values - - x = _x; y = _y; w = _width; h = _height; - -// Process the motion - - if (_direction & Up) - { - if (curY < (_origRootY + _origH - 1 - _minHeight)) - { - diff = _rootY - curY; - _rootY = curY; - _y -= diff; - _height = _origRootY + _origH - curY; - } - else - { - _rootY = _origRootY + _origH - 1 - _minHeight; - _y = _origY + _origH - 1 - _minHeight; - _height = _minHeight; - } - } - else if (_direction & Down) - { - if (curY > (_origRootY + _minHeight)) - _height = curY - _origRootY - 1; - else - _height = _minHeight; - } - - if (_direction & Left) - { - if (curX < (_origRootX + _origW - 1 - _minWidth)) - { - diff = _rootX - curX; - _rootX = curX; - _x -= diff; - _width = _origRootX + _origW - curX; - } - else - { - _rootX = _origRootX + _origW - 1 - _minWidth; - _x = _origX + _origW - 1 - _minWidth; - _width = _minWidth; - } - } - else if (_direction & Right) - { - if (curX > (_origRootX + _minWidth)) - _width = curX - _origRootX - 1; - else - _width = _minWidth; - } - -// Check if the values have "really" changed - - if ((w != _width) || (h != _height) || (x != _x) || (y != _y)) - _drawOutline (False); -} - -// _getCursor - -Cursor XsResizeOutline::_getCursor ( ) const -{ - if (_direction == Up) - return (_cursors[TopCursor]); - if (_direction == Down) - return (_cursors[BottomCursor]); - if (_direction == Left) - return (_cursors[LeftCursor]); - if (_direction == Right) - return (_cursors[RightCursor]); - if (_direction == (Up | Left)) - return (_cursors[TopLeftCursor]); - if (_direction == (Up | Right)) - return (_cursors[TopRightCursor]); - if (_direction == (Down | Left)) - return (_cursors[BottomLeftCursor]); - if (_direction == (Down | Right)) - return (_cursors[BottomRightCursor]); - if (_direction == Undetermined) - return (_cursors[Fleur]); - - assert (0); - return (None); -} - diff --git a/src/motif/mdi/lib/XsResizeOutline.h b/src/motif/mdi/lib/XsResizeOutline.h deleted file mode 100644 index 009035a6db..0000000000 --- a/src/motif/mdi/lib/XsResizeOutline.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - XsResizeOutline.h - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#ifndef XSRESIZEOUTLINE_H -#define XSRESIZEOUTLINE_H - -// Includes - -#include "XsOutline.h" - -class XsResizeOutline : public XsOutline { - - public: - -// Enumerations - - enum { Up = 0x0001, Right = 0x0002, Down = 0x0004, Left = 0x0008, - Undetermined = 0x0010 }; - - enum Cursors { - TopCursor = 0, BottomCursor, LeftCursor, RightCursor, TopLeftCursor, - TopRightCursor, BottomLeftCursor, BottomRightCursor, Fleur, - NumCursors }; - -// Constructor/Destructor - - XsResizeOutline (Widget w, int direction); - virtual ~XsResizeOutline ( ); - - void setMinSize (int minWidth, int minHeight); - - protected: - -// Motion handler - - virtual void _motionHandler (XEvent*); - -// Resize cursor - - virtual Cursor _getCursor ( ) const; - - private: - -// Implementation - - int _rootX, _rootY; // Root coordinates - int _origRootX, _origRootY; - - int _origX, _origY; // Window coordinates - int _origW, _origH; - - int _minWidth, _minHeight; - - int _direction; - - static Cursor _cursors[NumCursors]; - static int _mutex; -}; - -#endif diff --git a/src/motif/mdi/lib/xs_motif_icon.xbm b/src/motif/mdi/lib/xs_motif_icon.xbm deleted file mode 100644 index 2f7c75ef25..0000000000 --- a/src/motif/mdi/lib/xs_motif_icon.xbm +++ /dev/null @@ -1,27 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - xs_motif_icon.xbm - - History - 03-Mar-96 1.0; Scott W. Sadler (ssadler@cisco.com) - Created -*/ - -#define xs_motif_icon_width 32 -#define xs_motif_icon_height 32 -static char xs_motif_icon_bits[] = { - 0xff, 0x00, 0x00, 0xc0, 0xfe, 0x01, 0x00, 0xc0, 0xfc, 0x03, 0x00, 0x60, - 0xf8, 0x07, 0x00, 0x30, 0xf8, 0x07, 0x00, 0x18, 0xf0, 0x0f, 0x00, 0x0c, - 0xe0, 0x1f, 0x00, 0x06, 0xc0, 0x3f, 0x00, 0x06, 0xc0, 0x3f, 0x00, 0x03, - 0x80, 0x7f, 0x80, 0x01, 0x00, 0xff, 0xc0, 0x00, 0x00, 0xfe, 0x61, 0x00, - 0x00, 0xfe, 0x31, 0x00, 0x00, 0xfc, 0x33, 0x00, 0x00, 0xf8, 0x1b, 0x00, - 0x00, 0xf0, 0x0d, 0x00, 0x00, 0xf0, 0x0e, 0x00, 0x00, 0x60, 0x1f, 0x00, - 0x00, 0xb0, 0x3f, 0x00, 0x00, 0x98, 0x7f, 0x00, 0x00, 0x98, 0x7f, 0x00, - 0x00, 0x0c, 0xff, 0x00, 0x00, 0x06, 0xfe, 0x01, 0x00, 0x03, 0xfc, 0x03, - 0x80, 0x01, 0xfc, 0x03, 0xc0, 0x00, 0xf8, 0x07, 0xc0, 0x00, 0xf0, 0x0f, - 0x60, 0x00, 0xe0, 0x1f, 0x30, 0x00, 0xe0, 0x1f, 0x18, 0x00, 0xc0, 0x3f, - 0x0c, 0x00, 0x80, 0x7f, 0x06, 0x00, 0x00, 0xff}; diff --git a/src/motif/mdi/test/Imakefile b/src/motif/mdi/test/Imakefile deleted file mode 100644 index a9af9f4b85..0000000000 --- a/src/motif/mdi/test/Imakefile +++ /dev/null @@ -1,25 +0,0 @@ -#include "../config/MDI.tmpl" - -SRCS = MDItest.C - -OBJS = MDItest.o - -STD_INCLUDES = -I/usr/include - -INCLUDES = -I../lib - -DEPLIBS = ../lib/libXsw.a - -#if defined(SunArchitecture) - SYSLIBS = -lgen -#endif - -LOCAL_LIBRARIES = ../lib/libXsw.a -SYSTEM_LIBRARIES = -lXm -lXt -lX11 $(SYSLIBS) - -PROGRAM = MDItest - -AllTarget($(PROGRAM)) -NormalProgramTarget($(PROGRAM),$(OBJS),$(DEPLIBS),$(LOCAL_LIBRARIES),$(SYSTEM_LIBRARIES)) -DependTarget() -CxxRules() diff --git a/src/motif/mdi/test/MDItest.C b/src/motif/mdi/test/MDItest.C deleted file mode 100644 index e615970d24..0000000000 --- a/src/motif/mdi/test/MDItest.C +++ /dev/null @@ -1,391 +0,0 @@ -/* - Copyright (C) 1996 Scott W. Sadler - All rights reserved. -*/ - -/* - MDItest.c - - History - 03-Mar-96 1.0; Scott W. Sadler (sws@iti-oh.com) - Created -*/ - -// Includes - -#include -#include -#include -#include -#include -#include -#include -#include -#include "XsMDICanvas.h" -#include "XsMotifWindow.h" - -// Fallback resources - -static char *fallbacks[] = { - "*MDItest.height: 500", - "*MDItest.width: 500", - "*MDIinner.width: 300", - "*MDIinner.height: 300", - - "*fileMenu.labelString: File", - "*fileMenu.mnemonic: F", - "*openMenuItem.labelString: Open...", - "*openMenuItem.mnemonic: O", - "*newMenuItem.labelString: New...", - "*newMenuItem.mnemonic: N", - "*editMenu.labelString: Edit", - "*editMenu.mnemonic: E", - "*cutMenuItem.labelString: Cut", - "*cutMenuItem.mnemonic: t", - "*copyMenuItem.labelString: Copy", - "*copyMenuItem.mnemonic: C", - "*pasteMenuItem.labelString: Paste", - "*pasteMenuItem.mnemonic: P", - "*helpMenu.labelString: Help", - "*helpMenu.mnemonic: H", - "*aboutMenuItem.labelString: About", - "*aboutMenuItem.mnemonic: A", - "*scrolledText.rows: 10", - "*scrolledText.columns: 30", - - "*background: grey", - "*fontList: -*-helvetica-medium-r-normal-*-14-*-*-*-*-*-iso8859-1", - - NULL -}; - -/* - ---------------------------------------------------------------------------- - MyDocument class -*/ - -class MyDocument : public XsMotifWindow { - - public: - -// Constructor/Destructor - - MyDocument (const char *name, XsMDICanvas *canvas); - virtual ~MyDocument ( ); - - protected: - -// This member function is called to create the document contents - - virtual void _buildClientArea (Widget); - -// Implementation - - XsMDICanvas *_canvas; - -// Callbacks - - void _newWindow ( ); - void _doNothing ( ); - - private: - -// Callbacks - - static void _newWindowCallback (Widget, XtPointer, XtPointer); - static void _doNothingCallback (Widget, XtPointer, XtPointer); -}; - -// Constructor - -MyDocument::MyDocument (const char *name, XsMDICanvas *canvas) : - XsMotifWindow (name) -{ - assert (canvas != 0); - -// Initialize - - _canvas = canvas; -} - -// Destructor - -MyDocument::~MyDocument ( ) -{ - // Empty -} - -// _buildClientArea (called to create document contents) - -void MyDocument::_buildClientArea (Widget parent) -{ - assert (parent != 0); - - Widget pulldown; - Widget cascade; - Widget button; - -// Create a main window with some dummy menus - - Widget mainW = XtVaCreateWidget ("mainWin", xmMainWindowWidgetClass, parent, - XmNtopAttachment, XmATTACH_FORM, XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, XmNrightAttachment, XmATTACH_FORM, - NULL); - -// Create a menubar - - Widget menuBar = XmCreateMenuBar (mainW, "menuBar", NULL, 0); - -// Create the "file" menu - - pulldown = XmCreatePulldownMenu (menuBar, "pulldown", NULL, 0); - cascade = XtVaCreateManagedWidget ("fileMenu", xmCascadeButtonGadgetClass, - menuBar, XmNsubMenuId, pulldown, NULL); - - button = XtVaCreateManagedWidget ("openMenuItem", xmPushButtonGadgetClass, - pulldown, NULL); - XtAddCallback (button, XmNactivateCallback, _doNothingCallback, (XtPointer)this); - - button = XtVaCreateManagedWidget ("newMenuItem", xmPushButtonGadgetClass, - pulldown, NULL); - XtAddCallback (button, XmNactivateCallback, _newWindowCallback, (XtPointer)this); - -// Create the "edit" menu - - pulldown = XmCreatePulldownMenu (menuBar, "pulldown", NULL, 0); - cascade = XtVaCreateManagedWidget ("editMenu", xmCascadeButtonGadgetClass, - menuBar, XmNsubMenuId, pulldown, NULL); - - button = XtVaCreateManagedWidget ("cutMenuItem", xmPushButtonGadgetClass, - pulldown, NULL); - XtAddCallback (button, XmNactivateCallback, _doNothingCallback, (XtPointer)this); - - button = XtVaCreateManagedWidget ("copyMenuItem", xmPushButtonGadgetClass, - pulldown, NULL); - XtAddCallback (button, XmNactivateCallback, _doNothingCallback, (XtPointer)this); - - button = XtVaCreateManagedWidget ("pasteMenuItem", xmPushButtonGadgetClass, - pulldown, NULL); - XtAddCallback (button, XmNactivateCallback, _doNothingCallback, (XtPointer)this); - -// Create the help menu - - pulldown = XmCreatePulldownMenu (menuBar, "pulldown", NULL, 0); - cascade = XtVaCreateManagedWidget ("helpMenu", xmCascadeButtonGadgetClass, - menuBar, XmNsubMenuId, pulldown, NULL); - - button = XtVaCreateManagedWidget ("aboutMenuItem", xmPushButtonGadgetClass, - pulldown, NULL); - XtAddCallback (button, XmNactivateCallback, _doNothingCallback, (XtPointer)this); - - XtVaSetValues (menuBar, XmNmenuHelpWidget, cascade, NULL); - -// Manage the menubar - - XtManageChild (menuBar); - -// Create the work area - - const int nargs = 8; - Arg args[nargs]; - int n; - - n = 0; - XtSetArg (args[n], XmNscrollingPolicy, XmAUTOMATIC); n++; - XtSetArg (args[n], XmNhighlightThickness, (Dimension)0); n++; - XtSetArg (args[n], XmNeditMode, XmMULTI_LINE_EDIT); n++; - XtSetArg (args[n], XmNeditable, True); n++; - XtSetArg (args[n], XmNwordWrap, False); n++; - XtSetArg (args[n], XmNcursorPositionVisible, True); n++; - XtSetArg (args[n], XmNverifyBell, True); n++; - - assert (n <= nargs); - - Widget scrolledText = XmCreateScrolledText (mainW, "scrolledText", args, n); - XtManageChild (scrolledText); - -// Set the main window area - - XtVaSetValues (mainW, XmNmenuBar, menuBar, XmNworkWindow, - XtParent (scrolledText), NULL); - - XtManageChild (mainW); -} - -// _newWindow - -void MyDocument::_newWindow ( ) -{ - -// Create a new document (this will leak, but who cares?) - - MyDocument *newDoc = new MyDocument ("Document", _canvas); - -// Add it to the canvas - - _canvas->add (newDoc); -} - -// _newWindowCallback - -void MyDocument::_newWindowCallback (Widget, XtPointer clientData, XtPointer) -{ - MyDocument *obj = (MyDocument*)clientData; - obj->_newWindow ( ); -} - -// _doNothingCallback - -void MyDocument::_doNothingCallback (Widget w, XtPointer, XtPointer) -{ - XBell (XtDisplayOfObject (w), 100); -} - -/* - ---------------------------------------------------------------------------- - MyDocument2 class -*/ - -class MyDocument2 : public XsMotifWindow { - - public: - -// Constructor/Destructor - - MyDocument2 (const char *name); - virtual ~MyDocument2 ( ); - - protected: - -// This member function is called to create the document contents - - virtual void _buildClientArea (Widget); - -// Implementation - - XsMDICanvas *_canvas; - MyDocument *_win1; -}; - -// Constructor - -MyDocument2::MyDocument2 (const char *name) : XsMotifWindow (name) -{ - _canvas = 0; - _win1 = 0; -} - -// Destructor - -MyDocument2::~MyDocument2 ( ) -{ - delete _canvas; - delete _win1; -} - -// _buildClientArea - -void MyDocument2::_buildClientArea (Widget parent) -{ - assert (parent != 0); - -// Create a nested MDI canvas - - _canvas = new XsMDICanvas ("MDIinner", parent); - -// Attach it up - - XtVaSetValues (_canvas->base ( ), XmNtopAttachment, XmATTACH_FORM, - XmNbottomAttachment, XmATTACH_FORM, XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, NULL); - -// Create a document - - _win1 = new MyDocument ("InnerWin", _canvas); - -// Add the document to the canvas - - _canvas->add (_win1); - -// Show the canvas - - _canvas->show ( ); -} - -/* - ---------------------------------------------------------------------------- - main -*/ - -static void _destroyCallback (Widget, XtPointer clientData, XtPointer) -{ - Boolean *quit = (Boolean*)clientData; - *quit = True; -} - -int main (int argc, char **argv) -{ - XtAppContext appContext; - Widget topLevel; - Boolean quit = False; - -// Initialize toolkit - - topLevel = XtVaAppInitialize (&appContext, "MDI", NULL, 0, &argc, argv, - fallbacks, XmNdeleteResponse, XmDO_NOTHING, NULL); - - Display *dpy = XtDisplay (topLevel); - -// Add protocols - - Atom WM_DELETE_WINDOW = XmInternAtom (dpy, "WM_DELETE_WINDOW", False); - - XmAddWMProtocolCallback (topLevel, WM_DELETE_WINDOW, _destroyCallback, - &quit); - -// Create the MDI canvas - - XsMDICanvas *canvas = new XsMDICanvas ("MDItest", topLevel); - -// Create the MDI documents - - MyDocument *win1 = new MyDocument ("Document", canvas); - MyDocument2 *win2 = new MyDocument2 ("Document 2"); - -// Add documents to MDI canvas - - canvas->add (win1); - canvas->add (win2); - -// Show the canvas - - canvas->show ( ); - -// Realize everything - - XtRealizeWidget (topLevel); - -// Let 'er rip - - XEvent event; - - while (!quit) - { - XtAppNextEvent (appContext, &event); - XtDispatchEvent (&event); - } - -// Cleanup - - delete win1; - delete win2; - delete canvas; - -// Close the X connection - - XtDestroyWidget (topLevel); - XtCloseDisplay (dpy); - XtDestroyApplicationContext (appContext); - - return (0); -} diff --git a/src/motif/menu.cpp b/src/motif/menu.cpp deleted file mode 100644 index b940cce133..0000000000 --- a/src/motif/menu.cpp +++ /dev/null @@ -1,1187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: wxMenu, wxMenuBar, wxMenuItem -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -// ============================================================================ -// headers & declarations -// ============================================================================ - -// wxWindows headers -// ----------------- - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/menuitem.h" -#include "wx/log.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/frame.h" -#include "wx/settings.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "wx/motif/private.h" - -// other standard headers -// ---------------------- -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// Menus - -// Construct a menu with optional title (then use append) -wxMenu::wxMenu(const wxString& title, const wxFunction func) -{ - m_title = title; - m_parent = (wxEvtHandler*) NULL; - m_eventHandler = this; - m_noItems = 0; - m_menuBar = NULL; - m_pInvokingWindow = NULL; - - //// Motif-specific members - m_numColumns = 1; - m_menuWidget = (WXWidget) NULL; - m_popupShell = (WXWidget) NULL; - m_buttonWidget = (WXWidget) NULL; - m_menuId = 0; - m_topLevelMenu = (wxMenu*) NULL; - m_ownedByMenuBar = FALSE; - m_menuParent = (wxMenu*) NULL; - m_clientData = (void*) NULL; - - if (m_title != "") - { - Append(ID_SEPARATOR, m_title) ; - AppendSeparator() ; - } - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENU); - m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENUTEXT); - m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); - - Callback(func); -} - -// The wxWindow destructor will take care of deleting the submenus. -wxMenu::~wxMenu() -{ - if (m_menuWidget) - { - if (m_menuParent) - DestroyMenu(TRUE); - else - DestroyMenu(FALSE); - } - - // Not sure if this is right - if (m_menuParent && m_menuBar) - { - m_menuParent = NULL; - // m_menuBar = NULL; - } - - wxNode *node = m_menuItems.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - - /* - if (item->GetSubMenu()) - item->DeleteSubMenu(); - */ - - wxNode *next = node->Next(); - delete item; - delete node; - node = next; - } -} - -void wxMenu::Break() -{ - m_numColumns ++; -} - -// function appends a new item or submenu to the menu -void wxMenu::Append(wxMenuItem *pItem) -{ - wxCHECK_RET( pItem != NULL, "can't append NULL item to the menu" ); - - m_menuItems.Append(pItem); - - if (m_menuWidget) - pItem->CreateItem (m_menuWidget, m_menuBar, m_topLevelMenu); // this is a dynamic Append - - m_noItems++; -} - -void wxMenu::AppendSeparator() -{ - Append(new wxMenuItem(this, ID_SEPARATOR)); -} - -// Pullright item -// N.B.: difference between old and new code. -// Old code stores subMenu in 'children' for later deletion, -// as well as in m_menuItems, whereas we only store it in -// m_menuItems here. What implications does this have? - -void wxMenu::Append(int id, const wxString& label, wxMenu *subMenu, - const wxString& helpString) -{ - Append(new wxMenuItem(this, id, label, helpString, FALSE, subMenu)); - - subMenu->m_topLevelMenu = m_topLevelMenu; -} - -// Ordinary menu item -void wxMenu::Append(int id, const wxString& label, - const wxString& helpString, bool checkable) -{ - // 'checkable' parameter is useless for Windows. - Append(new wxMenuItem(this, id, label, helpString, checkable)); -} - -void wxMenu::Delete(int id) -{ - wxNode *node; - wxMenuItem *item; - int pos; - - for (pos = 0, node = m_menuItems.First(); node; node = node->Next(), pos++) - { - item = (wxMenuItem *)node->Data(); - if (item->GetId() == id) - break; - } - - if (!node) - return; - - item->DestroyItem(TRUE); - - // See also old code - don't know if this is needed (seems redundant). - /* - if (item->GetSubMenu()) { - item->subMenu->top_level_menu = item->GetSubMenu(); - item->subMenu->window_parent = NULL; - children->DeleteObject(item->GetSubMenu()); - } - */ - - m_menuItems.DeleteNode(node); - delete item; -} - -void wxMenu::Enable(int id, bool flag) -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_RET( item != NULL, "can't enable non-existing menu item" ); - - item->Enable(flag); -} - -bool wxMenu::Enabled(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't get status of non-existing menu item" ); - - item->Check(Flag); -} - -bool wxMenu::Checked(int id) const -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK( item != NULL, FALSE ); - - return item->IsChecked(); -} - -void wxMenu::SetTitle(const wxString& label) -{ - m_title = label ; - - wxNode *node = m_menuItems.First (); - if (!node) - return; - - wxMenuItem *item = (wxMenuItem *) node->Data (); - Widget widget = (Widget) item->GetButtonWidget(); - if (!widget) - return; - - XmString title_str = XmStringCreateSimple ((char*) (const char*) label); - XtVaSetValues (widget, - XmNlabelString, title_str, - NULL); - // TODO: should we delete title_str now? -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id); - if (item == (wxMenuItem*) NULL) - return; - - item->SetLabel(label); -} - -wxString wxMenu::GetLabel(int id) const -{ - wxMenuItem *it = NULL; - WXWidget w = FindMenuItem (id, &it); - if (w) - { - XmString text; - char *s; - XtVaGetValues ((Widget) w, - XmNlabelString, &text, - NULL); - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - wxString str(s); - XtFree (s); - return str; - } - else - { - XmStringFree (text); - return wxEmptyString; - } - } - else - return wxEmptyString; -} - -// Finds the item id matching the given string, -1 if not found. -int wxMenu::FindItem (const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)itemString, buf1); - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - if (item->GetSubMenu()) - { - int ans = item->GetSubMenu()->FindItem(itemString); - if (ans > -1) - return ans; - } - if ( !item->IsSeparator() ) - { - wxStripMenuCodes((char *)item->GetName().c_str(), buf2); - if (strcmp(buf1, buf2) == 0) - return item->GetId(); - } - } - - return -1; -} - -wxMenuItem *wxMenu::FindItemForId(int itemId, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - - if (item->GetId() == itemId) - { - if (itemMenu) - *itemMenu = (wxMenu *) this; - return item; - } - - if (item->GetSubMenu()) - { - wxMenuItem *ans = item->GetSubMenu()->FindItemForId (itemId, itemMenu); - if (ans) - return ans; - } - } - - if (itemMenu) - *itemMenu = NULL; - return NULL; -} - -void wxMenu::SetHelpString(int itemId, const wxString& helpString) -{ - wxMenuItem *item = FindItemForId (itemId); - if (item) - item->SetHelp(helpString); -} - -wxString wxMenu::GetHelpString (int itemId) const -{ - wxMenuItem *item = FindItemForId (itemId); - wxString str(""); - return (item == NULL) ? str : item->GetHelp(); -} - -void wxMenu::ProcessCommand(wxCommandEvent & event) -{ - bool processed = FALSE; - - // Try a callback - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - processed = TRUE; - } - - // Try the menu's event handler - if ( !processed && GetEventHandler()) - { - processed = GetEventHandler()->ProcessEvent(event); - } - // Try the window the menu was popped up from (and up - // through the hierarchy) - if ( !processed && GetInvokingWindow()) - processed = GetInvokingWindow()->ProcessEvent(event); -} - -// Update a menu and all submenus recursively. -// source is the object that has the update event handlers -// defined for it. If NULL, the menu or associated window -// will be used. -void wxMenu::UpdateUI(wxEvtHandler* source) -{ - if (!source && GetInvokingWindow()) - source = GetInvokingWindow()->GetEventHandler(); - if (!source) - source = GetEventHandler(); - if (!source) - source = this; - - wxNode* node = GetItems().First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if ( !item->IsSeparator() ) - { - wxWindowID id = item->GetId(); - wxUpdateUIEvent event(id); - event.SetEventObject( source ); - - if (source->ProcessEvent(event)) - { - if (event.GetSetText()) - SetLabel(id, event.GetText()); - if (event.GetSetChecked()) - Check(id, event.GetChecked()); - if (event.GetSetEnabled()) - Enable(id, event.GetEnabled()); - } - - if (item->GetSubMenu()) - item->GetSubMenu()->UpdateUI(source); - } - node = node->Next(); - } -} - -bool wxWindow::PopupMenu(wxMenu *menu, int x, int y) -{ - Widget widget = (Widget) GetMainWidget(); - - /* The menuId field seems to be usused, so we'll use it to - indicate whether a menu is popped up or not: - 0: Not currently created as a popup - -1: Created as a popup, but not active - 1: Active popup. - */ - - if (menu->GetParent() && (menu->GetId() != -1)) - return FALSE; - - if (menu->GetMainWidget()) { - menu->DestroyMenu(TRUE); - } - - wxWindow *parent = this; - - menu->SetId(1); /* Mark as popped-up */ - menu->CreateMenu(NULL, widget, menu); - menu->SetInvokingWindow(this); - - menu->UpdateUI(); - - // menu->SetParent(parent); - // parent->children->Append(menu); // Store menu for later deletion - - Widget menuWidget = (Widget) menu->GetMainWidget(); - - int rootX = 0; - int rootY = 0; - - int deviceX = x; - int deviceY = y; - /* - if (this->IsKindOf(CLASSINFO(wxCanvas))) - { - wxCanvas *canvas = (wxCanvas *) this; - deviceX = canvas->GetDC ()->LogicalToDeviceX (x); - deviceY = canvas->GetDC ()->LogicalToDeviceY (y); - } - */ - - Display *display = XtDisplay (widget); - Window rootWindow = RootWindowOfScreen (XtScreen((Widget)widget)); - Window thisWindow = XtWindow (widget); - Window childWindow; - XTranslateCoordinates (display, thisWindow, rootWindow, (int) deviceX, (int) deviceY, - &rootX, &rootY, &childWindow); - - XButtonPressedEvent event; - event.type = ButtonPress; - event.button = 1; - - event.x = deviceX; - event.y = deviceY; - - event.x_root = rootX; - event.y_root = rootY; - - XmMenuPosition (menuWidget, &event); - XtManageChild (menuWidget); - - return TRUE; -} - -// Menu Bar -wxMenuBar::wxMenuBar() -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - m_mainWidget = (WXWidget) NULL; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENU); - m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENUTEXT); - m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); -} - -wxMenuBar::wxMenuBar(long WXUNUSED(style)) -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - m_mainWidget = (WXWidget) NULL; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENU); - m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENUTEXT); - m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); -} - -wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxString titles[]) -{ - m_eventHandler = this; - m_menuCount = n; - m_menus = menus; - m_titles = new wxString[n]; - int i; - for ( i = 0; i < n; i++ ) - m_titles[i] = titles[i]; - m_menuBarFrame = NULL; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENU); - m_foregroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_MENUTEXT); - m_font = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); -} - -wxMenuBar::~wxMenuBar() -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - delete m_menus[i]; - } - delete[] m_menus; - delete[] m_titles; -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus to enable/disable items -void wxMenuBar::Enable(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - item->Enable(flag); -} - -void wxMenuBar::EnableTop(int pos, bool flag) -{ - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus -void wxMenuBar::Check(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - if (!item->IsCheckable()) - return ; - - item->Check(flag); -} - -bool wxMenuBar::Checked(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - return item->IsChecked(); -} - -bool wxMenuBar::Enabled(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - return item->IsEnabled(); -} - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return; - - item->SetLabel(label); -} - -wxString wxMenuBar::GetLabel(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return wxString(""); - - return item->GetLabel(); -} - -void wxMenuBar::SetLabelTop(int pos, const wxString& label) -{ - wxASSERT( (pos < m_menuCount) ); - - Widget w = (Widget) m_menus[pos]->GetButtonWidget(); - if (w) - { - XmString label_str = XmStringCreateSimple ((char*) (const char*) label); - XtVaSetValues (w, - XmNlabelString, label_str, - NULL); - XmStringFree (label_str); - } -} - -wxString wxMenuBar::GetLabelTop(int pos) const -{ - wxASSERT( (pos < m_menuCount) ); - - Widget w = (Widget) m_menus[pos]->GetButtonWidget(); - if (w) - { - XmString text; - char *s; - XtVaGetValues (w, - XmNlabelString, &text, - NULL); - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - wxString str(s); - XtFree (s); - return str; - } - else - { - return wxEmptyString; - } - } - else - return wxEmptyString; - -} - -bool wxMenuBar::OnDelete(wxMenu *menu, int pos) -{ - // Only applies to dynamic deletion (when set in frame) - if (!m_menuBarFrame) - return TRUE; - - menu->DestroyMenu(TRUE); - return TRUE; -} - -bool wxMenuBar::OnAppend(wxMenu *menu, const char *title) -{ - // Only applies to dynamic append (when set in frame) - if (!m_menuBarFrame) - return TRUE; - - // Probably should be an assert here - if (menu->GetParent()) - return FALSE; - - // Has already been appended - if (menu->GetButtonWidget()) - return FALSE; - - WXWidget w = menu->CreateMenu(this, GetMainWidget(), menu, title, TRUE); - menu->SetButtonWidget(w); - - return TRUE; -} - -void wxMenuBar::Append (wxMenu * menu, const wxString& title) -{ - if (!OnAppend(menu, title)) - return; - - m_menuCount ++; - wxMenu **new_menus = new wxMenu *[m_menuCount]; - wxString *new_titles = new wxString[m_menuCount]; - int i; - - for (i = 0; i < m_menuCount - 1; i++) - { - new_menus[i] = m_menus[i]; - m_menus[i] = NULL; - new_titles[i] = m_titles[i]; - m_titles[i] = ""; - } - if (m_menus) - { - delete[]m_menus; - delete[]m_titles; - } - m_menus = new_menus; - m_titles = new_titles; - - m_menus[m_menuCount - 1] = (wxMenu *)menu; - m_titles[m_menuCount - 1] = title; - - menu->SetMenuBar(this); - menu->SetParent(this); -} - -void wxMenuBar::Delete(wxMenu * menu, int i) -{ - int j; - int ii = (int) i; - - if (menu != 0) - { - for (ii = 0; ii < m_menuCount; ii++) - { - if (m_menus[ii] == menu) - break; - } - if (ii >= m_menuCount) - return; - } else - { - if (ii < 0 || ii >= m_menuCount) - return; - menu = m_menus[ii]; - } - - if (!OnDelete(menu, ii)) - return; - - menu->SetParent((wxEvtHandler*) NULL); - - -- m_menuCount; - for (j = ii; j < m_menuCount; j++) - { - m_menus[j] = m_menus[j + 1]; - m_titles[j] = m_titles[j + 1]; - } -} - -// Find the menu menuString, item itemString, and return the item id. -// Returns -1 if none found. -int wxMenuBar::FindMenuItem (const wxString& menuString, const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)menuString, buf1); - int i; - for (i = 0; i < m_menuCount; i++) - { - wxStripMenuCodes ((char *)(const char *)m_titles[i], buf2); - if (strcmp (buf1, buf2) == 0) - return m_menus[i]->FindItem (itemString); - } - return -1; -} - -wxMenuItem *wxMenuBar::FindItemForId (int id, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - int i; - for (i = 0; i < m_menuCount; i++) - if ((item = m_menus[i]->FindItemForId (id, itemMenu))) - return item; - return NULL; -} - -void wxMenuBar::SetHelpString (int id, const wxString& helpString) -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (id)) - { - m_menus[i]->SetHelpString (id, helpString); - return; - } - } -} - -wxString wxMenuBar::GetHelpString (int id) const -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (id)) - return wxString(m_menus[i]->GetHelpString (id)); - } - return wxString(""); -} - -// Create menubar -bool wxMenuBar::CreateMenuBar(wxFrame* parent) -{ - if (m_mainWidget) - { - XtVaSetValues((Widget) parent->GetMainWindowWidget(), XmNmenuBar, (Widget) m_mainWidget, NULL); - /* - if (!XtIsManaged((Widget) m_mainWidget)) - XtManageChild((Widget) m_mainWidget); - */ - XtMapWidget((Widget) m_mainWidget); - return TRUE; - } - - Widget menuBarW = XmCreateMenuBar ((Widget) parent->GetMainWindowWidget(), "MenuBar", NULL, 0); - m_mainWidget = (WXWidget) menuBarW; - - int i; - for (i = 0; i < GetMenuCount(); i++) - { - wxMenu *menu = GetMenu(i); - wxString title(m_titles[i]); - menu->SetButtonWidget(menu->CreateMenu (this, menuBarW, menu, title, TRUE)); - - /* - * COMMENT THIS OUT IF YOU DON'T LIKE A RIGHT-JUSTIFIED HELP MENU - */ - wxStripMenuCodes ((char*) (const char*) title, wxBuffer); - - if (strcmp (wxBuffer, "Help") == 0) - XtVaSetValues ((Widget) menuBarW, XmNmenuHelpWidget, (Widget) menu->GetButtonWidget(), NULL); - } - - SetBackgroundColour(m_backgroundColour); - SetForegroundColour(m_foregroundColour); - SetFont(m_font); - - XtVaSetValues((Widget) parent->GetMainWindowWidget(), XmNmenuBar, (Widget) m_mainWidget, NULL); - XtRealizeWidget ((Widget) menuBarW); - XtManageChild ((Widget) menuBarW); - SetMenuBarFrame(parent); - - return TRUE; -} - -// Destroy menubar, but keep data structures intact so we can recreate it. -bool wxMenuBar::DestroyMenuBar() -{ - if (!m_mainWidget) - { - SetMenuBarFrame((wxFrame*) NULL); - return FALSE; - } - - XtUnmanageChild ((Widget) m_mainWidget); - XtUnrealizeWidget ((Widget) m_mainWidget); - - int i; - for (i = 0; i < GetMenuCount(); i++) - { - wxMenu *menu = GetMenu(i); - menu->DestroyMenu(TRUE); - - } - XtDestroyWidget((Widget) m_mainWidget); - m_mainWidget = (WXWidget) 0; - - SetMenuBarFrame((wxFrame*) NULL); - - return TRUE; -} - -//// Motif-specific - -extern wxApp *wxTheApp; -static XtWorkProcId WorkProcMenuId; - -/* Since PopupMenu under Motif stills grab right mouse button events -* after it was closed, we need to delete the associated widgets to -* allow next PopUpMenu to appear... -*/ - -int PostDeletionOfMenu( XtPointer* clientData ) -{ - XtRemoveWorkProc(WorkProcMenuId); - wxMenu *menu = (wxMenu *)clientData; - - if (menu->GetMainWidget()) { - if (menu->GetParent()) - { - wxList& list = menu->GetParent()->GetItems(); - list.DeleteObject(menu); - } - menu->DestroyMenu(TRUE); - } - /* Mark as no longer popped up */ - menu->m_menuId = -1; - return TRUE; -} - -void -wxMenuPopdownCallback(Widget w, XtPointer clientData, - XtPointer ptr) -{ - wxMenu *menu = (wxMenu *)clientData; - - // Added by JOREL Jean-Charles - /* Since Callbacks of MenuItems are not yet processed, we put a - * background job which will be done when system will be idle. - * What awful hack!! :( - */ - - WorkProcMenuId = XtAppAddWorkProc( - (XtAppContext) wxTheApp->GetAppContext(), - (XtWorkProc) PostDeletionOfMenu, - (XtPointer) menu ); - // Apparently not found in Motif headers - // XtVaSetValues( w, XmNpopupEnabled, XmPOPUP_DISABLED, NULL ); -} - -/* -* Create a popup or pulldown menu. -* Submenus of a popup will be pulldown. -* -*/ - -WXWidget wxMenu::CreateMenu (wxMenuBar * menuBar, WXWidget parent, wxMenu * topMenu, const wxString& title, bool pullDown) -{ - Widget menu = (Widget) 0; - Widget buttonWidget = (Widget) 0; - Arg args[5]; - XtSetArg (args[0], XmNnumColumns, m_numColumns); - XtSetArg (args[1], XmNpacking, XmPACK_COLUMN); - - if (!pullDown) - { - menu = XmCreatePopupMenu ((Widget) parent, "popup", args, 2); - XtAddCallback(menu, - XmNunmapCallback, - (XtCallbackProc)wxMenuPopdownCallback, - (XtPointer)this); - } - else - { - char mnem = wxFindMnemonic (title); - wxStripMenuCodes ((char*) (const char*) title, wxBuffer); - - menu = XmCreatePulldownMenu ((Widget) parent, "pulldown", args, 2); - - XmString label_str = XmStringCreateSimple (wxBuffer); - buttonWidget = XtVaCreateManagedWidget (wxBuffer, -#if wxUSE_GADGETS - xmCascadeButtonGadgetClass, (Widget) parent, -#else - xmCascadeButtonWidgetClass, (Widget) parent, -#endif - XmNlabelString, label_str, - XmNsubMenuId, menu, - NULL); - - if (mnem != 0) - XtVaSetValues (buttonWidget, XmNmnemonic, mnem, NULL); - - XmStringFree (label_str); - } - - m_menuWidget = (WXWidget) menu; - - m_menuBar = menuBar; - m_topLevelMenu = topMenu; - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - item->CreateItem (menu, menuBar, topMenu); - } - - SetBackgroundColour(m_backgroundColour); - SetForegroundColour(m_foregroundColour); - SetFont(m_font); - - return buttonWidget; -} - -// Destroys the Motif implementation of the menu, -// but maintains the wxWindows data structures so we can -// do a CreateMenu again. -void wxMenu::DestroyMenu (bool full) -{ - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - item->SetMenuBar((wxMenuBar*) NULL); - - item->DestroyItem(full); - } // for() - - if (m_buttonWidget) - { - if (full) - { - XtVaSetValues((Widget) m_buttonWidget, XmNsubMenuId, NULL, NULL); - XtDestroyWidget ((Widget) m_buttonWidget); - m_buttonWidget = (WXWidget) 0; - } - } - if (m_menuWidget && full) - { - XtDestroyWidget((Widget) m_menuWidget); - m_menuWidget = (WXWidget) NULL; - } -} - -WXWidget wxMenu::FindMenuItem (int id, wxMenuItem ** it) const -{ - if (id == m_menuId) - { - if (it) - *it = (wxMenuItem*) NULL; - return m_buttonWidget; - } - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - if (item->GetId() == id) - { - if (it) - *it = item; - return item->GetButtonWidget(); - } - - if (item->GetSubMenu()) - { - WXWidget w = item->GetSubMenu()->FindMenuItem (id, it); - if (w) - { - return w; - } - } - } // for() - - if (it) - *it = (wxMenuItem*) NULL; - return (WXWidget) NULL; -} - -void wxMenu::SetBackgroundColour(const wxColour& col) -{ - m_backgroundColour = col; - if (m_menuWidget) - wxDoChangeBackgroundColour(m_menuWidget, (wxColour&) col); - if (m_buttonWidget) - wxDoChangeBackgroundColour(m_buttonWidget, (wxColour&) col, TRUE); - - wxNode* node = m_menuItems.First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if (item->GetButtonWidget()) - { - // This crashes because it uses gadgets - // wxDoChangeBackgroundColour(item->GetButtonWidget(), (wxColour&) col, TRUE); - } - if (item->GetSubMenu()) - item->GetSubMenu()->SetBackgroundColour((wxColour&) col); - node = node->Next(); - } -} - -void wxMenu::SetForegroundColour(const wxColour& col) -{ - m_foregroundColour = col; - if (m_menuWidget) - wxDoChangeForegroundColour(m_menuWidget, (wxColour&) col); - if (m_buttonWidget) - wxDoChangeForegroundColour(m_buttonWidget, (wxColour&) col); - - wxNode* node = m_menuItems.First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if (item->GetButtonWidget()) - { - // This crashes because it uses gadgets - // wxDoChangeForegroundColour(item->GetButtonWidget(), (wxColour&) col); - } - if (item->GetSubMenu()) - item->GetSubMenu()->SetForegroundColour((wxColour&) col); - node = node->Next(); - } -} - -void wxMenu::ChangeFont(bool keepOriginalSize) -{ - // lesstif 0.87 hangs when setting XmNfontList -#ifndef LESSTIF_VERSION - if (!m_font.Ok() || !m_menuWidget) - return; - - XmFontList fontList = (XmFontList) m_font.GetFontList(1.0, XtDisplay((Widget) m_menuWidget)); - - XtVaSetValues ((Widget) m_menuWidget, - XmNfontList, fontList, - NULL); - if (m_buttonWidget) - { - XtVaSetValues ((Widget) m_buttonWidget, - XmNfontList, fontList, - NULL); - } - wxNode* node = m_menuItems.First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if (m_menuWidget && item->GetButtonWidget() && m_font.Ok()) - { - XtVaSetValues ((Widget) item->GetButtonWidget(), - XmNfontList, fontList, - NULL); - } - if (item->GetSubMenu()) - item->GetSubMenu()->ChangeFont(keepOriginalSize); - node = node->Next(); - } -#endif -} - -void wxMenu::SetFont(const wxFont& font) -{ - m_font = font; - ChangeFont(); -} - -void wxMenuBar::SetBackgroundColour(const wxColour& col) -{ - - m_backgroundColour = col; - if (m_mainWidget) - wxDoChangeBackgroundColour(m_mainWidget, (wxColour&) col); - int i; - for (i = 0; i < m_menuCount; i++) - m_menus[i]->SetBackgroundColour((wxColour&) col); -} - -void wxMenuBar::SetForegroundColour(const wxColour& col) -{ - m_foregroundColour = col; - if (m_mainWidget) - wxDoChangeForegroundColour(m_mainWidget, (wxColour&) col); - - int i; - for (i = 0; i < m_menuCount; i++) - m_menus[i]->SetForegroundColour((wxColour&) col); -} - -void wxMenuBar::ChangeFont(bool keepOriginalSize) -{ - // Nothing to do for menubar, fonts are kept in wxMenus -} - -void wxMenuBar::SetFont(const wxFont& font) -{ - m_font = font; - ChangeFont(); - - int i; - for (i = 0; i < m_menuCount; i++) - m_menus[i]->SetFont(font); -} - diff --git a/src/motif/menuitem.cpp b/src/motif/menuitem.cpp deleted file mode 100644 index 800ebb8df2..0000000000 --- a/src/motif/menuitem.cpp +++ /dev/null @@ -1,363 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.cpp -// Purpose: wxMenuItem implementation -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#include "wx/menu.h" -#include "wx/menuitem.h" -#include "wx/utils.h" -#include "wx/frame.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "wx/motif/private.h" - -void wxMenuItemCallback (Widget w, XtPointer clientData, - XtPointer ptr); -void wxMenuItemArmCallback (Widget w, XtPointer clientData, - XtPointer ptr); -void wxMenuItemDisarmCallback (Widget w, XtPointer clientData, - XtPointer ptr); - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// dynamic classes implementation -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject) -#endif //USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// wxMenuItem -// ---------------------------------------------------------------------------- - -// ctor & dtor -// ----------- - -wxMenuItem::wxMenuItem(wxMenu *pParentMenu, int id, - const wxString& strName, const wxString& strHelp, - bool bCheckable, - wxMenu *pSubMenu) : -m_strHelp(strHelp), -m_bCheckable(bCheckable), -m_strName(strName) -{ - wxASSERT( pParentMenu != NULL ); - - m_pParentMenu = pParentMenu; - m_pSubMenu = pSubMenu; - m_idItem = id; - m_bEnabled = TRUE; - m_bChecked = FALSE; - - //// Motif-specific - m_menuBar = NULL; - m_buttonWidget = (WXWidget) NULL; - m_topMenu = NULL; -} - -wxMenuItem::~wxMenuItem() -{ -} - -// misc -// ---- - -// delete the sub menu -void wxMenuItem::DeleteSubMenu() -{ - wxASSERT( m_pSubMenu != NULL ); - - delete m_pSubMenu; - m_pSubMenu = NULL; -} - -// change item state -// ----------------- - -void wxMenuItem::Enable(bool bDoEnable) -{ - if ( m_bEnabled != bDoEnable ) - { - if ( m_pSubMenu == NULL ) - { // normal menu item - if (m_buttonWidget) - XtSetSensitive( (Widget) m_buttonWidget, (Boolean) bDoEnable); - } - else // submenu - { - // Maybe we should apply this to all items in the submenu? - // Or perhaps it works anyway. - if (m_buttonWidget) - XtSetSensitive( (Widget) m_buttonWidget, (Boolean) bDoEnable); - } - - m_bEnabled = bDoEnable; - } -} - -void wxMenuItem::Check(bool bDoCheck) -{ - wxCHECK_RET( IsCheckable(), "only checkable items may be checked" ); - - if ( m_bChecked != bDoCheck ) - { - if (m_buttonWidget && XtIsSubclass ((Widget) m_buttonWidget, xmToggleButtonGadgetClass)) - { - XtVaSetValues ( (Widget) m_buttonWidget, XmNset, (Boolean) bDoCheck, NULL); - } - m_bChecked = bDoCheck; - } -} - -//// Motif-specific - -void wxMenuItem::CreateItem (WXWidget menu, wxMenuBar * menuBar, wxMenu * topMenu) -{ - m_menuBar = menuBar; - m_topMenu = topMenu; - - if (GetId() == -2) - { - // Id=-2 identifies a Title item. - wxStripMenuCodes ((char*) (const char*) m_strName, wxBuffer); - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget (wxBuffer, - xmLabelGadgetClass, (Widget) menu, NULL); - } - else if ((!m_strName.IsNull() && m_strName != "") && (!m_pSubMenu)) - { - wxStripMenuCodes ((char*) (const char*) m_strName, wxBuffer); - if (IsCheckable()) - { - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget (wxBuffer, - xmToggleButtonGadgetClass, (Widget) menu, - NULL); - XtVaSetValues ((Widget) m_buttonWidget, XmNset, (Boolean) IsChecked(), NULL); - } - else - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget (wxBuffer, - xmPushButtonGadgetClass, (Widget) menu, - NULL); - char mnem = wxFindMnemonic (m_strName); - if (mnem != 0) - XtVaSetValues ((Widget) m_buttonWidget, XmNmnemonic, mnem, NULL); - - //// TODO: proper accelerator treatment. What does wxFindAccelerator - //// look for? - strcpy(wxBuffer, (char*) (const char*) m_strName); - char *accel = wxFindAccelerator (wxBuffer); - if (accel) - XtVaSetValues ((Widget) m_buttonWidget, XmNaccelerator, accel, NULL); - - // TODO: What does this do? - strcpy(wxBuffer, (char*) (const char*) m_strName); - XmString accel_str = wxFindAcceleratorText (wxBuffer); - if (accel_str) - { - XtVaSetValues ((Widget) m_buttonWidget, XmNacceleratorText, accel_str, NULL); - XmStringFree (accel_str); - } - - if (IsCheckable()) - XtAddCallback ((Widget) m_buttonWidget, - XmNvalueChangedCallback, - (XtCallbackProc) wxMenuItemCallback, - (XtPointer) this); - else - XtAddCallback ((Widget) m_buttonWidget, - XmNactivateCallback, - (XtCallbackProc) wxMenuItemCallback, - (XtPointer) this); - XtAddCallback ((Widget) m_buttonWidget, - XmNarmCallback, - (XtCallbackProc) wxMenuItemArmCallback, - (XtPointer) this); - XtAddCallback ((Widget) m_buttonWidget, - XmNdisarmCallback, - (XtCallbackProc) wxMenuItemDisarmCallback, - (XtPointer) this); - } - else if (GetId() == -1) - { - m_buttonWidget = (WXWidget) XtVaCreateManagedWidget ("separator", - xmSeparatorGadgetClass, (Widget) menu, NULL); - } - else if (m_pSubMenu) - { - m_buttonWidget = m_pSubMenu->CreateMenu (menuBar, menu, topMenu, m_strName, TRUE); - m_pSubMenu->SetButtonWidget(m_buttonWidget); - XtAddCallback ((Widget) m_buttonWidget, - XmNcascadingCallback, - (XtCallbackProc) wxMenuItemArmCallback, - (XtPointer) this); - } - if (m_buttonWidget) - XtSetSensitive ((Widget) m_buttonWidget, (Boolean) IsEnabled()); -} - -void wxMenuItem::DestroyItem(bool full) -{ - if (GetId() == -2) - { - ; // Nothing - - } - else if ((!m_strName.IsNull() && (m_strName != "")) && !m_pSubMenu) - { - if (m_buttonWidget) - { - if (IsCheckable()) - XtRemoveCallback ((Widget) m_buttonWidget, XmNvalueChangedCallback, - wxMenuItemCallback, (XtPointer) this); - else - XtRemoveCallback ((Widget) m_buttonWidget, XmNactivateCallback, - wxMenuItemCallback, (XtPointer) this); - XtRemoveCallback ((Widget) m_buttonWidget, XmNarmCallback, - wxMenuItemArmCallback, (XtPointer) this); - XtRemoveCallback ((Widget) m_buttonWidget, XmNdisarmCallback, - wxMenuItemDisarmCallback, (XtPointer) this); - } - } - else if (GetId() == -1) - { - ; // Nothing - - } - else if (GetSubMenu()) - { - if (m_buttonWidget) - { - XtRemoveCallback ((Widget) m_buttonWidget, XmNcascadingCallback, - wxMenuItemArmCallback, (XtPointer) this); - } - m_pSubMenu->DestroyMenu(full); - if (full) - m_buttonWidget = NULL; - } - - if (m_buttonWidget && full) - { - XtDestroyWidget ((Widget) m_buttonWidget); - m_buttonWidget = (WXWidget) 0; - } -} - -void wxMenuItem::SetLabel(const wxString& label) -{ - char mnem = wxFindMnemonic (label); - wxStripMenuCodes ((char*) (const char*) label, wxBuffer); - - m_strName = label; - - if (m_buttonWidget) - { - XmString label_str = XmStringCreateSimple (wxBuffer); - XtVaSetValues ((Widget) m_buttonWidget, - XmNlabelString, label_str, - NULL); - XmStringFree (label_str); - if (mnem != 0) - XtVaSetValues ((Widget) m_buttonWidget, XmNmnemonic, mnem, NULL); - strcpy(wxBuffer, (char*) (const char*) label); - char *accel = wxFindAccelerator (wxBuffer); - if (accel) - XtVaSetValues ((Widget) m_buttonWidget, XmNaccelerator, accel, NULL); - - strcpy(wxBuffer, (char*) (const char*) label); - XmString accel_str = wxFindAcceleratorText (wxBuffer); - if (accel_str) - { - XtVaSetValues ((Widget) m_buttonWidget, XmNacceleratorText, accel_str, NULL); - XmStringFree (accel_str); - } - } -} - -void wxMenuItemCallback (Widget w, XtPointer clientData, - XtPointer ptr) -{ - wxMenuItem *item = (wxMenuItem *) clientData; - if (item) - { - if (item->IsCheckable()) - { - Boolean isChecked = FALSE; - XtVaGetValues ((Widget) item->GetButtonWidget(), XmNset, & isChecked, NULL); - item->SetChecked(isChecked); - } - if (item->GetMenuBar() && item->GetMenuBar()->GetMenuBarFrame()) - { - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, item->GetId()); - commandEvent.SetEventObject(item->GetMenuBar()->GetMenuBarFrame()); - commandEvent.SetInt( item->GetId() ); - - item->GetMenuBar()->GetMenuBarFrame()->GetEventHandler()->ProcessEvent(commandEvent); - } - else if (item->GetTopMenu()) - { - wxCommandEvent event (wxEVT_COMMAND_MENU_SELECTED, item->GetId()); - event.SetEventObject(item->GetTopMenu()); - event.SetInt( item->GetId() ); - - item->GetTopMenu()->ProcessCommand (event); - } - } -} - -void wxMenuItemArmCallback (Widget w, XtPointer clientData, - XtPointer ptr) -{ - wxMenuItem *item = (wxMenuItem *) clientData; - if (item) - { - if (item->GetMenuBar() && item->GetMenuBar()->GetMenuBarFrame()) - { - wxMenuEvent menuEvent(wxEVT_MENU_HIGHLIGHT, item->GetId()); - menuEvent.SetEventObject(item->GetMenuBar()->GetMenuBarFrame()); - - item->GetMenuBar()->GetMenuBarFrame()->GetEventHandler()->ProcessEvent(menuEvent); - } - } -} - -void -wxMenuItemDisarmCallback (Widget w, XtPointer clientData, - XtPointer ptr) -{ - wxMenuItem *item = (wxMenuItem *) clientData; - if (item) - { - if (item->GetMenuBar() && item->GetMenuBar()->GetMenuBarFrame()) - { - // TODO: not sure this is correct, since -1 means something - // special to event system - wxMenuEvent menuEvent(wxEVT_MENU_HIGHLIGHT, -1); - menuEvent.SetEventObject(item->GetMenuBar()->GetMenuBarFrame()); - - item->GetMenuBar()->GetMenuBarFrame()->GetEventHandler()->ProcessEvent(menuEvent); - } - } -} - diff --git a/src/motif/metafile.cpp b/src/motif/metafile.cpp deleted file mode 100644 index e8c45e00e3..0000000000 --- a/src/motif/metafile.cpp +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.cpp -// Purpose: wxMetaFile, wxMetaFileDC etc. These classes are optional. -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "metafile.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dc.h" -#include "wx/motif/metafile.h" -#include "wx/clipbrd.h" - -extern bool wxClipboardIsOpen; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC) -#endif - -wxMetaFile::wxMetaFile(const wxString& file) -{ - // TODO -} - -wxMetaFile::~wxMetaFile() -{ - // TODO -} - -bool wxMetaFile::SetClipboard(int width, int height) -{ - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - if (!wxEmptyClipboard()) return FALSE; - } - bool success = wxSetClipboardData(wxDF_METAFILE,this, width,height); - if (!alreadyOpen) wxCloseClipboard(); - return (bool) success; -} - -bool wxMetaFile::Play(wxDC *dc) -{ - // TODO - return FALSE; -} - -/* - * Metafile device context - * - */ - -// Original constructor that does not takes origin and extent. If you use this, -// *DO* give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file) -{ - // TODO -} - -// New constructor that takes origin and extent. If you use this, don't -// give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg) -{ - // TODO -} - -wxMetaFileDC::~wxMetaFileDC() -{ -} - -void wxMetaFileDC::GetTextExtent(const wxString& string, float *x, float *y, - float *descent, float *externalLeading, wxFont *theFont, bool use16bit) -{ - // TODO -} - -wxMetaFile *wxMetaFileDC::Close() -{ - // TODO - return NULL; -} - -void wxMetaFileDC::SetMapMode(int mode) -{ - // TODO -} - -#if 0 - -#ifdef __WIN32__ -struct RECT32 -{ - short left; - short top; - short right; - short bottom; -}; - -struct mfPLACEABLEHEADER { - DWORD key; - short hmf; - RECT32 bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#else -struct mfPLACEABLEHEADER { - DWORD key; - HANDLE hmf; - RECT bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#endif - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -bool wxMakeMetaFilePlaceable(const wxString& filename, float scale) -{ - return wxMakeMetaFilePlaceable(filename, 0, 0, 0, 0, scale, FALSE); -} - -bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale, bool useOriginAndExtent) -{ - // I'm not sure if this is the correct way of suggesting a scale - // to the client application, but it's the only way I can find. - int unitsPerInch = (int)(576/scale); - - mfPLACEABLEHEADER header; - header.key = 0x9AC6CDD7L; - header.hmf = 0; - header.bbox.left = (int)(x1); - header.bbox.top = (int)(y1); - header.bbox.right = (int)(x2); - header.bbox.bottom = (int)(y2); - header.inch = unitsPerInch; - header.reserved = 0; - - // Calculate checksum - WORD *p; - mfPLACEABLEHEADER *pMFHead = &header; - for (p =(WORD *)pMFHead,pMFHead -> checksum = 0; - p < (WORD *)&pMFHead ->checksum; ++p) - pMFHead ->checksum ^= *p; - - FILE *fd = fopen((char *)(const char *)filename, "rb"); - if (!fd) return FALSE; - - char tempFileBuf[256]; - wxGetTempFileName("mf", tempFileBuf); - FILE *fHandle = fopen(tempFileBuf, "wb"); - if (!fHandle) - return FALSE; - fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle); - - // Calculate origin and extent - int originX = x1; - int originY = y1; - int extentX = x2 - x1; - int extentY = (y2 - y1); - - // Read metafile header and write - METAHEADER metaHeader; - fread((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fd); - - if (useOriginAndExtent) - metaHeader.mtSize += 15; - else - metaHeader.mtSize += 5; - - fwrite((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fHandle); - - // Write SetMapMode, SetWindowOrigin and SetWindowExt records - char modeBuffer[8]; - char originBuffer[10]; - char extentBuffer[10]; - METARECORD *modeRecord = (METARECORD *)&modeBuffer; - - METARECORD *originRecord = (METARECORD *)&originBuffer; - METARECORD *extentRecord = (METARECORD *)&extentBuffer; - - modeRecord->rdSize = 4; - modeRecord->rdFunction = META_SETMAPMODE; - modeRecord->rdParm[0] = wxMM_ANISOTROPIC; - - originRecord->rdSize = 5; - originRecord->rdFunction = META_SETWINDOWORG; - originRecord->rdParm[0] = originY; - originRecord->rdParm[1] = originX; - - extentRecord->rdSize = 5; - extentRecord->rdFunction = META_SETWINDOWEXT; - extentRecord->rdParm[0] = extentY; - extentRecord->rdParm[1] = extentX; - - fwrite((void *)modeBuffer, sizeof(char), 8, fHandle); - - if (useOriginAndExtent) - { - fwrite((void *)originBuffer, sizeof(char), 10, fHandle); - fwrite((void *)extentBuffer, sizeof(char), 10, fHandle); - } - - int ch = -2; - while (ch != EOF) - { - ch = getc(fd); - if (ch != EOF) - { - putc(ch, fHandle); - } - } - fclose(fHandle); - fclose(fd); - wxRemoveFile(filename); - wxCopyFile(tempFileBuf, filename); - wxRemoveFile(tempFileBuf); - return TRUE; -} - -#endif - diff --git a/src/motif/minifram.cpp b/src/motif/minifram.cpp deleted file mode 100644 index bf6c50b350..0000000000 --- a/src/motif/minifram.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: wxMiniFrame. Optional; identical to wxFrame if not supported. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -#include "wx/minifram.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif - - diff --git a/src/motif/msgdlg.cpp b/src/motif/msgdlg.cpp deleted file mode 100644 index 2c4a2369e1..0000000000 --- a/src/motif/msgdlg.cpp +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.cpp -// Purpose: wxMessageDialog -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "msgdlg.h" -#endif - -#include "wx/motif/msgdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxMessageDialog, wxDialog) -#endif - -wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption, - long style, const wxPoint& pos) -{ - m_caption = caption; - m_message = message; - m_dialogStyle = style; - m_parent = parent; -} - -int wxMessageDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/motif/palette.cpp b/src/motif/palette.cpp deleted file mode 100644 index 450c691097..0000000000 --- a/src/motif/palette.cpp +++ /dev/null @@ -1,353 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: wxPalette -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - * Colour map - * - * When constructed with the default constructor, we start from - * the wxApp::GetMainColormap, allocating additional read-only cells - * in Create(). The cells are freed on the next call to Create() - * or when the destructor is called. - */ - -/* Wolfram Gloger -I have implemented basic colormap support for the X11 versions of -wxWindows, notably wxPalette::Create(). The way I did it is to -allocate additional read-only color cells in the default colormap. In -general you will get arbitrary pixel values assigned to these new -cells and therefore I added a method wxColourMap::TransferBitmap() -which maps the pixel values 0..n to the real ones obtained with -Create(). This is only implemented for the popular case of 8-bit -depth. - -Allocating read-write color cells would involve installing a private -X11 colormap for a particular window, and AFAIK this is not -recommended; only the window manager should do this... Also, it is -not the functionality that wxPalette::Create() aims to provide. - */ - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/utils.h" - -#include -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxXPalette, wxObject) -#endif - -/* -* Palette -* -*/ - -wxXPalette::wxXPalette() -{ - m_cmap = (WXColormap) 0; - m_pix_array_n = 0; - m_pix_array = (unsigned long*) 0; - m_display = (WXDisplay*) 0; - m_destroyable = FALSE; -} - -wxPaletteRefData::wxPaletteRefData() -{ -} - -wxPaletteRefData::~wxPaletteRefData() -{ - XColor xcol; - Display *display = (Display*) NULL; - - wxNode *node, *next; - - for (node = m_palettes.First(); node; node = next) { - wxXPalette *c = (wxXPalette *)node->Data(); - unsigned long *pix_array = c->m_pix_array; - Colormap cmap = (Colormap) c->m_cmap; - bool destroyable = c->m_destroyable; - int pix_array_n = c->m_pix_array_n; - display = (Display*) c->m_display; - - if (pix_array_n > 0) - { - // XFreeColors(display, cmap, pix_array, pix_array_n, 0); - // Be careful not to free '0' pixels... - int i, j; - for(i=j=0; i i) XFreeColors(display, cmap, &pix_array[i], j-i, 0); - while(jNext(); - m_palettes.DeleteNode(node); - delete c; - } -} - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - Create(n, red, green, blue); -} - -wxPalette::~wxPalette() -{ -} - -bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - UnRef(); - - if (!n) { - return FALSE; - } - - m_refData = new wxPaletteRefData; - - XColor xcol; - Display* display = (Display*) wxGetDisplay(); - - unsigned long *pix_array; - Colormap cmap; - int pix_array_n; - - cmap = (Colormap) wxTheApp->GetMainColormap(display); - - pix_array = new unsigned long[n]; - if (!pix_array) - return FALSE; - - pix_array_n = n; - xcol.flags = DoRed | DoGreen | DoBlue; - for(int i = 0; i < n; i++) { - xcol.red = (unsigned short)red[i] << 8; - xcol.green = (unsigned short)green[i] << 8; - xcol.blue = (unsigned short)blue[i] << 8; - pix_array[i] = (XAllocColor(display, cmap, &xcol) == 0) ? 0 : xcol.pixel; - } - - wxXPalette *c = new wxXPalette; - - c->m_pix_array_n = pix_array_n; - c->m_pix_array = pix_array; - c->m_cmap = (WXColormap) cmap; - c->m_display = (WXDisplay*) display; - c->m_destroyable = FALSE; - M_PALETTEDATA->m_palettes.Append(c); - - return TRUE; -} - -int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const -{ - if ( !m_refData ) - return FALSE; - - // TODO - return FALSE; -} - -bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const -{ - if ( !m_refData ) - return FALSE; - - if (index < 0 || index > 255) - return FALSE; - - // TODO - return FALSE; -} - -WXColormap wxPalette::GetXColormap(WXDisplay* display) const -{ - if (!M_PALETTEDATA || (M_PALETTEDATA->m_palettes.Number() == 0)) - return wxTheApp->GetMainColormap(display); - - wxNode* node = M_PALETTEDATA->m_palettes.First(); - if (!display && node) - { - wxXPalette* p = (wxXPalette*) node->Data(); - return p->m_cmap; - } - while (node) - { - wxXPalette* p = (wxXPalette*) node->Data(); - if (p->m_display == display) - return p->m_cmap; - - node = node->Next(); - } - - /* Make a new one: */ - wxXPalette *c = new wxXPalette; - wxXPalette *first = (wxXPalette *)M_PALETTEDATA->m_palettes.First()->Data(); - XColor xcol; - int pix_array_n = first->m_pix_array_n; - - c->m_pix_array_n = pix_array_n; - c->m_pix_array = new unsigned long[pix_array_n]; - c->m_display = display; - c->m_cmap = wxTheApp->GetMainColormap(display); - c->m_destroyable = FALSE; - - xcol.flags = DoRed | DoGreen | DoBlue; - int i; - for (i = 0; i < pix_array_n; i++) - { - xcol.pixel = first->m_pix_array[i]; - XQueryColor((Display*) first->m_display, (Colormap) first->m_cmap, &xcol); - c->m_pix_array[i] = - (XAllocColor((Display*) display, (Colormap) c->m_cmap, &xcol) == 0) ? 0 : xcol.pixel; - } - - // wxPalette* nonConstThis = (wxPalette*) this; - - M_PALETTEDATA->m_palettes.Append(c); - - return c->m_cmap; -} - -bool wxPalette::TransferBitmap(void *data, int depth, int size) -{ - switch(depth) { - case 8: - { - unsigned char *uptr = (unsigned char *)data; - int pix_array_n; - unsigned long *pix_array = GetXPixArray((Display*) wxGetDisplay(), &pix_array_n); - while(size-- > 0) - { - if((int)*uptr < pix_array_n) - *uptr = (unsigned char)pix_array[*uptr]; - uptr++; - } - - return TRUE; - } - default: - return FALSE; - } -} - -bool wxPalette::TransferBitmap8(unsigned char *data, unsigned long sz, - void *dest, unsigned int bpp) -{ - int pix_array_n; - unsigned long *pix_array = GetXPixArray((Display*) wxGetDisplay(), &pix_array_n); - switch(bpp) { - case 8: { - unsigned char *dptr = (unsigned char *)dest; - while(sz-- > 0) { - if((int)*data < pix_array_n) - *dptr = (unsigned char)pix_array[*data]; - data++; - dptr++; - } - break; - } - case 16: { - unsigned short *dptr = (unsigned short *)dest; - while(sz-- > 0) { - if((int)*data < pix_array_n) - *dptr = (unsigned short)pix_array[*data]; - data++; - dptr++; - } - break; - } - case 24: { - struct rgb24 { unsigned char r, g, b; } *dptr = (struct rgb24 *)dest; - while(sz-- > 0) { - if((int)*data < pix_array_n) { - dptr->r = pix_array[*data] & 0xFF; - dptr->g = (pix_array[*data] >> 8) & 0xFF; - dptr->b = (pix_array[*data] >> 16) & 0xFF; - } - data++; - dptr++; - } - break; - } - case 32: { - unsigned long *dptr = (unsigned long *)dest; - while(sz-- > 0) { - if((int)*data < pix_array_n) - *dptr = pix_array[*data]; - data++; - dptr++; - } - break; - } - default: - return FALSE; - } - return TRUE; -} - -unsigned long *wxPalette::GetXPixArray(WXDisplay *display, int *n) -{ - if (!M_PALETTEDATA) - return (unsigned long*) 0; - wxNode *node; - - for (node = M_PALETTEDATA->m_palettes.First(); node; node = node->Next()) - { - wxXPalette *c = (wxXPalette *)node->Data(); - if (c->m_display == display) - { - if (n) - *n = c->m_pix_array_n; - return c->m_pix_array; - } - } - - /* Not found; call GetXColormap, which will create it, then this again */ - if (GetXColormap(display)) - return GetXPixArray(display, n); - else - return (unsigned long*) 0; -} - -void wxPalette::PutXColormap(WXDisplay* display, WXColormap cm, bool dp) -{ - UnRef(); - - m_refData = new wxPaletteRefData; - - wxXPalette *c = new wxXPalette; - - c->m_pix_array_n = 0; - c->m_pix_array = (unsigned long*) NULL; - c->m_display = display; - c->m_cmap = cm; - c->m_destroyable = dp; - - M_PALETTEDATA->m_palettes.Append(c); -} - diff --git a/src/motif/pen.cpp b/src/motif/pen.cpp deleted file mode 100644 index ab5fa85049..0000000000 --- a/src/motif/pen.cpp +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: wxPen -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/pen.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -#endif - -wxPenRefData::wxPenRefData() -{ - m_style = wxSOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; -} - -wxPenRefData::~wxPenRefData() -{ -} - -// Pens - -wxPen::wxPen() -{ - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::~wxPen() -{ - if (wxThePenList) - wxThePenList->RemovePen(this); -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxSTIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(int Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxSTIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(int Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(int Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -bool wxPen::RealizeResource() -{ - // Nothing more to do - return TRUE; -} - diff --git a/src/motif/printdlg.cpp b/src/motif/printdlg.cpp deleted file mode 100644 index 7136ec67a7..0000000000 --- a/src/motif/printdlg.cpp +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.cpp -// Purpose: wxPrintDialog, wxPageSetupDialog -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "printdlg.h" -#endif - -#include "wx/object.h" -#include "wx/motif/printdlg.h" -#include "wx/dcprint.h" - -// Use generic page setup dialog: use your own native one if one exists. -#include "wx/generic/prntdlgg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog) -IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog) -#endif - -wxPrintDialog::wxPrintDialog(): - wxDialog() -{ - m_dialogParent = NULL; - m_printerDC = NULL; -} - -wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data): - wxDialog() -{ - Create(p, data); -} - -bool wxPrintDialog::Create(wxWindow *p, wxPrintData* data) -{ - m_dialogParent = p; - m_printerDC = NULL; - - if ( data ) - m_printData = *data; - - return TRUE; -} - -wxPrintDialog::~wxPrintDialog() -{ - if (m_printerDC) - delete m_printerDC; -} - -int wxPrintDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -wxDC *wxPrintDialog::GetPrintDC() -{ - if (m_printerDC) - { - wxDC* dc = m_printerDC; - m_printerDC = NULL; - return dc; - } - else - return NULL; -} - -/* - * wxPageSetupDialog - */ - -wxPageSetupDialog::wxPageSetupDialog(): - wxDialog() -{ - m_dialogParent = NULL; -} - -wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data): - wxDialog() -{ - Create(p, data); -} - -bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data) -{ - m_dialogParent = p; - - if (data) - m_pageSetupData = (*data); - - return TRUE; -} - -wxPageSetupDialog::~wxPageSetupDialog() -{ -} - -int wxPageSetupDialog::ShowModal() -{ - // Uses generic page setup dialog - wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData); - int ret = genericPageSetupDialog->ShowModal(); - m_pageSetupData = genericPageSetupDialog->GetPageSetupData(); - genericPageSetupDialog->Close(TRUE); - return ret; -} - diff --git a/src/motif/radiobox.cpp b/src/motif/radiobox.cpp deleted file mode 100644 index ea9ef07f6b..0000000000 --- a/src/motif/radiobox.cpp +++ /dev/null @@ -1,497 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: wxRadioBox -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" -#include "wx/utils.h" - -#include -#include -#include -#include -#include -#include -#include - -#include - -void wxRadioBoxCallback (Widget w, XtPointer clientData, - XmToggleButtonCallbackStruct * cbs); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) -#endif - -// Radio box item -wxRadioBox::wxRadioBox() -{ - m_selectedButton = -1; - m_noItems = 0; - m_noRowsOrCols = 0; - m_majorDim = 0 ; - - m_formWidget = (WXWidget) 0; - m_frameWidget = (WXWidget) 0; - m_labelWidget = (WXWidget) 0; - m_radioButtons = (WXWidget*) NULL; - m_radioButtonLabels = (wxString*) NULL; -} - -bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - int majorDim, long style, - const wxValidator& val, const wxString& name) -{ - m_selectedButton = -1; - m_noItems = n; - m_formWidget = (WXWidget) 0; - m_frameWidget = (WXWidget) 0; - m_labelWidget = (WXWidget) 0; - m_radioButtons = (WXWidget*) NULL; - m_radioButtonLabels = (wxString*) NULL; - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - m_windowFont = parent->GetFont(); - - SetName(name); - SetValidator(val); - - parent->AddChild(this); - - m_windowStyle = (long&)style; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - m_noRowsOrCols = majorDim; - - if (majorDim==0) - m_majorDim = n ; - else - m_majorDim = majorDim ; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - wxString label1(wxStripMenuCodes(title)); - - XmString text = XmStringCreateSimple ((char*) (const char*) label1); - - Widget formWidget = XtVaCreateManagedWidget ((char*) (const char*) name, - xmFormWidgetClass, parentWidget, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - NULL); - - m_formWidget = (WXWidget) formWidget; - - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget)); - if (label1 != "") - { - text = XmStringCreateSimple ((char*) (const char*) label1); - Widget labelWidget = XtVaCreateManagedWidget ((char*) (const char*) label1, -#if wxUSE_GADGETS - style & wxCOLOURED ? - xmLabelWidgetClass : xmLabelGadgetClass, - formWidget, -#else - xmLabelWidgetClass, formWidget, -#endif - XmNfontList, fontList, - XmNlabelString, text, - NULL); - - XmStringFree (text); - } - - Widget frameWidget = XtVaCreateManagedWidget ("frame", - xmFrameWidgetClass, formWidget, - XmNshadowType, XmSHADOW_IN, -// XmNmarginHeight, 0, -// XmNmarginWidth, 0, - NULL); - - m_frameWidget = (WXWidget) frameWidget; - - Arg args[3]; - - majorDim = (n + majorDim - 1) / majorDim; - - XtSetArg (args[0], XmNorientation, ((style & wxHORIZONTAL) == wxHORIZONTAL ? - XmHORIZONTAL : XmVERTICAL)); - XtSetArg (args[1], XmNnumColumns, majorDim); - - Widget radioBoxWidget = XmCreateRadioBox (frameWidget, "radioBoxWidget", args, 2); - m_mainWidget = (WXWidget) radioBoxWidget; - - - if (m_labelWidget) - XtVaSetValues ((Widget) m_labelWidget, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNalignment, XmALIGNMENT_BEGINNING, - NULL); - - XtVaSetValues (radioBoxWidget, - XmNtopAttachment, m_labelWidget ? XmATTACH_WIDGET : XmATTACH_FORM, - XmNtopWidget, m_labelWidget ? (Widget) m_labelWidget : formWidget, - XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - NULL); - - // if (style & wxFLAT) - // XtVaSetValues (radioBoxWidget, XmNborderWidth, 1, NULL); - - m_radioButtons = new WXWidget[n]; - m_radioButtonLabels = new wxString[n]; - int i; - for (i = 0; i < n; i++) - { - wxString str(wxStripMenuCodes(choices[i])); - m_radioButtonLabels[i] = str; - m_radioButtons[i] = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) str, -#if wxUSE_GADGETS - xmToggleButtonGadgetClass, radioBoxWidget, -#else - xmToggleButtonWidgetClass, radioBoxWidget, -#endif - XmNfontList, fontList, - NULL); - XtAddCallback ((Widget) m_radioButtons[i], XmNvalueChangedCallback, (XtCallbackProc) wxRadioBoxCallback, - (XtCallbackProc) this); - - } - SetSelection (0); - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - // XtManageChild((Widget) m_formWidget); - XtManageChild (radioBoxWidget); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, m_formWidget, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - - -wxRadioBox::~wxRadioBox() -{ - delete[] m_radioButtonLabels; - delete[] m_radioButtons; - - DetachWidget(m_formWidget); - DetachWidget(m_mainWidget); - - if (m_labelWidget) - XtDestroyWidget((Widget) m_labelWidget); - XtDestroyWidget((Widget) m_mainWidget); - XtDestroyWidget((Widget) m_formWidget); - - m_mainWidget = (WXWidget) 0; - m_formWidget = (WXWidget) 0; - m_labelWidget = (WXWidget) 0; -} - -wxString wxRadioBox::GetLabel(int item) const -{ - if (item < 0 || item >= m_noItems) - return wxEmptyString; - - Widget widget = (Widget) m_radioButtons[item]; - XmString text; - char *s; - XtVaGetValues (widget, - XmNlabelString, &text, - NULL); - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - // Should we free 'text'??? - XmStringFree(text); - wxString str(s); - XtFree (s); - return str; - } - else - { - XmStringFree(text); - return wxEmptyString; - } -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - if (item < 0 || item >= m_noItems) - return; - - Widget widget = (Widget) m_radioButtons[item]; - if (label != "") - { - wxString label1(wxStripMenuCodes(label)); - XmString text = XmStringCreateSimple ((char*) (const char*) label1); - XtVaSetValues (widget, - XmNlabelString, text, - XmNlabelType, XmSTRING, - NULL); - XmStringFree (text); - } -} - -int wxRadioBox::FindString(const wxString& s) const -{ - int i; - for (i = 0; i < m_noItems; i++) - if (s == m_radioButtonLabels[i]) - return i; - return -1; -} - -void wxRadioBox::SetSelection(int n) -{ - if ((n < 0) || (n >= m_noItems)) - return; - - m_selectedButton = n; - - m_inSetValue = TRUE; - - XmToggleButtonSetState ((Widget) m_radioButtons[n], TRUE, FALSE); - - int i; - for (i = 0; i < m_noItems; i++) - if (i != n) - XmToggleButtonSetState ((Widget) m_radioButtons[i], FALSE, FALSE); - - m_inSetValue = FALSE; -} - -// Get single selection, for single choice list items -int wxRadioBox::GetSelection() const -{ - return m_selectedButton; -} - -// Find string for position -wxString wxRadioBox::GetString(int n) const -{ - if ((n < 0) || (n >= m_noItems)) - return wxEmptyString; - return m_radioButtonLabels[n]; -} - -void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - bool managed = XtIsManaged((Widget) m_formWidget); - - if (managed) - XtUnmanageChild ((Widget) m_formWidget); - - int xx = x; int yy = y; - AdjustForParentClientOrigin(xx, yy, sizeFlags); - - if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues ((Widget) m_formWidget, XmNleftAttachment, XmATTACH_SELF, - XmNx, xx, NULL); - if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues ((Widget) m_formWidget, XmNtopAttachment, XmATTACH_SELF, - XmNy, yy, NULL); - - // Must set the actual RadioBox to be desired size MINUS label size - Dimension labelWidth = 0, labelHeight = 0, actualWidth = 0, actualHeight = 0; - - if (m_labelWidget) - XtVaGetValues ((Widget) m_labelWidget, XmNwidth, &labelWidth, XmNheight, &labelHeight, NULL); - - actualWidth = width; - actualHeight = height - labelHeight; - - if (width > -1) - { - XtVaSetValues ((Widget) m_mainWidget, XmNwidth, actualWidth, NULL); - } - if (height > -1) - { - XtVaSetValues ((Widget) m_mainWidget, XmNheight, actualHeight, NULL); - } - if (managed) - XtManageChild ((Widget) m_formWidget); -} - -// Enable a specific button -void wxRadioBox::Enable(int n, bool enable) -{ - if ((n < 0) || (n >= m_noItems)) - return; - - XtSetSensitive ((Widget) m_radioButtons[n], (Boolean) enable); -} - -// Enable all controls -bool wxRadioBox::Enable(bool enable) -{ - if ( !wxControl::Enable(enable) ) - return FALSE; - - int i; - for (i = 0; i < m_noItems; i++) - XtSetSensitive ((Widget) m_radioButtons[i], (Boolean) enable); - - return TRUE; -} - -bool wxRadioBox::Show(bool show) -{ - // TODO: show/hide all children - return wxControl::Show(show); -} - -// Show a specific button -void wxRadioBox::Show(int n, bool show) -{ - // This method isn't complete, and we try do do our best... - // It's main purpose isn't for allowing Show/Unshow dynamically, - // but rather to provide a way to design wxRadioBox such: - // - // o Val1 o Val2 o Val3 - // o Val4 o Val6 - // o Val7 o Val8 o Val9 - // - // In my case, this is a 'direction' box, and the Show(5,False) is - // coupled with an Enable(5,False) - // - if ((n < 0) || (n >= m_noItems)) - return; - - XtVaSetValues ((Widget) m_radioButtons[n], - XmNindicatorOn, (unsigned char) show, - NULL); - - // Please note that this is all we can do: removing the label - // if switching to unshow state. However, when switching - // to the on state, it's the prog. resp. to call SetLabel(item,...) - // after this call!! - if (!show) - wxRadioBox::SetLabel (n, " "); -} - -// For single selection items only -wxString wxRadioBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxRadioBox::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxRadioBox::Command (wxCommandEvent & event) -{ - SetSelection (event.m_commandInt); - ProcessCommand (event); -} - -void wxRadioBox::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); - - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay((Widget) GetTopWidget())); - - int i; - for (i = 0; i < m_noItems; i++) - { - WXWidget radioButton = m_radioButtons[i]; - - XtVaSetValues ((Widget) radioButton, - XmNfontList, fontList, - XmNtopAttachment, XmATTACH_FORM, - NULL); - } -} - -void wxRadioBox::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); - - DoChangeBackgroundColour((Widget) m_frameWidget, m_backgroundColour); - - int selectPixel = wxBLACK->AllocColour(wxGetDisplay()); - - int i; - for (i = 0; i < m_noItems; i++) - { - WXWidget radioButton = m_radioButtons[i]; - - DoChangeBackgroundColour(radioButton, m_backgroundColour, TRUE); - - XtVaSetValues ((Widget) radioButton, - XmNselectColor, selectPixel, - NULL); - } -} - -void wxRadioBox::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); - - int i; - for (i = 0; i < m_noItems; i++) - { - WXWidget radioButton = m_radioButtons[i]; - - DoChangeForegroundColour(radioButton, m_foregroundColour); - } -} - -void wxRadioBoxCallback (Widget w, XtPointer clientData, - XmToggleButtonCallbackStruct * cbs) -{ - if (!cbs->set) - return; - - wxRadioBox *item = (wxRadioBox *) clientData; - int sel = -1; - int i; - for (i = 0; i < item->Number(); i++) - if (item->GetRadioButtons() && ((Widget) (item->GetRadioButtons()[i]) == w)) - sel = i; - item->SetSel(sel); - - if (item->InSetValue()) - return; - - wxCommandEvent event (wxEVT_COMMAND_RADIOBOX_SELECTED, item->GetId()); - event.m_commandInt = sel; - event.SetEventObject(item); - item->ProcessCommand (event); -} - diff --git a/src/motif/radiobut.cpp b/src/motif/radiobut.cpp deleted file mode 100644 index 7fe7f99d31..0000000000 --- a/src/motif/radiobut.cpp +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: wxRadioButton -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" -#include "wx/utils.h" - -#include -#include -#include -#include -#include -#include - -#include - -void wxRadioButtonCallback (Widget w, XtPointer clientData, - XmToggleButtonCallbackStruct * cbs); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -#endif - -wxRadioButton::wxRadioButton() -{ -} - -bool wxRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - m_windowFont = parent->GetFont(); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style ; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - wxString label1(wxStripMenuCodes(label)); - - XmString text = XmStringCreateSimple ((char*) (const char*) label1); - - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget)); - - Widget radioButtonWidget = XtVaCreateManagedWidget ("toggle", -#if wxUSE_GADGETS - xmToggleButtonGadgetClass, parentWidget, -#else - xmToggleButtonWidgetClass, parentWidget, -#endif - XmNfontList, fontList, - XmNlabelString, text, - XmNfillOnSelect, True, - XmNindicatorType, XmONE_OF_MANY, // diamond-shape - NULL); - XmStringFree (text); - - XtAddCallback (radioButtonWidget, XmNvalueChangedCallback, (XtCallbackProc) wxRadioButtonCallback, - (XtCallbackProc) this); - - m_mainWidget = (WXWidget) radioButtonWidget; - - XtManageChild (radioButtonWidget); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -void wxRadioButton::SetValue(bool value) -{ - m_inSetValue = TRUE; - XmToggleButtonSetState ((Widget) m_mainWidget, (Boolean) value, FALSE); - m_inSetValue = FALSE; -} - -// Get single selection, for single choice list items -bool wxRadioButton::GetValue() const -{ - return (XmToggleButtonGetState ((Widget) m_mainWidget) != 0); -} - -void wxRadioButton::Command (wxCommandEvent & event) -{ - SetValue ( (event.m_commandInt != 0) ); - ProcessCommand (event); -} - -void wxRadioButton::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxRadioButton::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); - - // What colour should this be? - int selectPixel = wxBLACK->AllocColour(wxGetDisplay()); - - XtVaSetValues ((Widget) GetMainWidget(), - XmNselectColor, selectPixel, - NULL); -} - -void wxRadioButton::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - -void wxRadioButtonCallback (Widget w, XtPointer clientData, - XmToggleButtonCallbackStruct * cbs) -{ - if (!cbs->set) - return; - - wxRadioButton *item = (wxRadioButton *) clientData; - if (item->InSetValue()) - return; - - wxCommandEvent event (wxEVT_COMMAND_RADIOBUTTON_SELECTED, item->GetId()); - event.SetEventObject(item); - - item->ProcessCommand (event); -} - diff --git a/src/motif/region.cpp b/src/motif/region.cpp deleted file mode 100644 index d4ced6405d..0000000000 --- a/src/motif/region.cpp +++ /dev/null @@ -1,399 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: region.cpp -// Purpose: Region class -// Author: Markus Holzem/Julian Smart -// Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Markus Holzem/Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/region.h" -#include "wx/gdicmn.h" - -#include -// #include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject) -#endif - -//----------------------------------------------------------------------------- -// wxRegionRefData implementation -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegionRefData : public wxGDIRefData { -public: - wxRegionRefData() - { - m_region = XCreateRegion(); - } - - wxRegionRefData(const wxRegionRefData& data) - { - m_region = XCreateRegion(); - XUnionRegion(m_region, data.m_region, m_region); - } - - ~wxRegionRefData() - { - XDestroyRegion(m_region); - } - Region m_region; -}; - -#define M_REGION (((wxRegionRefData*)m_refData)->m_region) - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -/*! - * Create an empty region. - */ -wxRegion::wxRegion() -{ -} - -wxRegion::wxRegion(long x, long y, long w, long h) -{ - m_refData = new wxRegionRefData; - - XRectangle rect; - rect.x = x; - rect.y = y; - rect.width = w; - rect.height = h; - XUnionRectWithRegion(&rect, M_REGION, M_REGION); -} - -wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - m_refData = new wxRegionRefData; - - XRectangle rect; - rect.x = topLeft.x; - rect.y = topLeft.y; - rect.width = bottomRight.x - topLeft.x; - rect.height = bottomRight.y - topLeft.y; - XUnionRectWithRegion(&rect, M_REGION, M_REGION); -} - -wxRegion::wxRegion(const wxRect& rect) -{ - m_refData = new wxRegionRefData; - - XRectangle rect1; - rect1.x = rect.x; - rect1.y = rect.y; - rect1.width = rect.width; - rect1.height = rect.height; - XUnionRectWithRegion(&rect1, M_REGION, M_REGION); -} - -/*! - * Destroy the region. - */ -wxRegion::~wxRegion() -{ - // m_refData unrefed in ~wxObject -} - -// Get the internal region handle -WXRegion wxRegion::GetXRegion() const -{ - wxASSERT( m_refData !=NULL ); - - return (WXRegion) ((wxRegionRefData*)m_refData)->m_region; -} - -//----------------------------------------------------------------------------- -//# Modify region -//----------------------------------------------------------------------------- - -//! Clear current region -void wxRegion::Clear() -{ - UnRef(); -} - -//! Combine rectangle (x, y, w, h) with this. -bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op) -{ - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - // If ref count is 1, that means it's 'ours' anyway so no action. - - Region rectRegion = XCreateRegion(); - - XRectangle rect; - rect.x = x; - rect.y = y; - rect.width = width; - rect.height = height; - XUnionRectWithRegion(&rect, rectRegion, rectRegion); - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - XIntersectRegion(M_REGION, rectRegion, M_REGION); - break ; - case wxRGN_OR: - XUnionRegion(M_REGION, rectRegion, M_REGION); - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: // Don't have to do this one - default: - // TODO - break ; - } - - return FALSE; -} - -//! Union /e region with this. -bool wxRegion::Combine(const wxRegion& region, wxRegionOp op) -{ - if (region.Empty()) - return FALSE; - - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - XIntersectRegion(M_REGION, ((wxRegionRefData*)region.m_refData)->m_region, - M_REGION); - break ; - case wxRGN_OR: - XUnionRegion(M_REGION, ((wxRegionRefData*)region.m_refData)->m_region, - M_REGION); - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: // Don't have to do this one - default: - // TODO - break ; - } - - return FALSE; -} - -bool wxRegion::Combine(const wxRect& rect, wxRegionOp op) -{ - return Combine(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight(), op); -} - -//----------------------------------------------------------------------------- -//# Information on region -//----------------------------------------------------------------------------- - -// Outer bounds of region -void wxRegion::GetBox(long& x, long& y, long&w, long &h) const -{ - if (m_refData) { - XRectangle rect; - XClipBox(M_REGION, &rect); - x = rect.x; - y = rect.y; - w = rect.width; - h = rect.height; - } else { - x = y = w = h = 0; - } -} - -wxRect wxRegion::GetBox() const -{ - long x, y, w, h; - GetBox(x, y, w, h); - return wxRect(x, y, w, h); -} - -// Is region empty? -bool wxRegion::Empty() const -{ - return m_refData ? XEmptyRegion(M_REGION) : TRUE; -} - -//----------------------------------------------------------------------------- -//# Tests -//----------------------------------------------------------------------------- - -// Does the region contain the point (x,y)? -wxRegionContain wxRegion::Contains(long x, long y) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - return wxOutRegion; -} - -// Does the region contain the point pt? -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - if (!m_refData) - return wxOutRegion; - - return XPointInRegion(M_REGION, pt.x, pt.y) ? wxInRegion : wxOutRegion; -} - -// Does the region contain the rectangle (x, y, w, h)? -wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const -{ - if (!m_refData) - return wxOutRegion; - - switch (XRectInRegion(M_REGION, x, y, w, h)) { - case RectangleIn: return wxInRegion; - case RectanglePart: return wxPartRegion; - } - return wxOutRegion; -} - -// Does the region contain the rectangle rect -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - if (!m_refData) - return wxOutRegion; - - long x, y, w, h; - x = rect.x; - y = rect.y; - w = rect.GetWidth(); - h = rect.GetHeight(); - return Contains(x, y, w, h); -} - -/////////////////////////////////////////////////////////////////////////////// -// // -// wxRegionIterator // -// // -/////////////////////////////////////////////////////////////////////////////// - -/*! - * Initialize empty iterator - */ -wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL) -{ -} - -wxRegionIterator::~wxRegionIterator() -{ - if (m_rects) - delete[] m_rects; -} - -/*! - * Initialize iterator for region - */ -wxRegionIterator::wxRegionIterator(const wxRegion& region) -{ - m_rects = NULL; - - Reset(region); -} - -/*! - * Reset iterator for a new /e region. - */ -void wxRegionIterator::Reset(const wxRegion& region) -{ - m_current = 0; - m_region = region; - - if (m_rects) - delete[] m_rects; - - m_rects = NULL; - - if (m_region.Empty()) - m_numRects = 0; - else - { - // TODO create m_rects and fill with rectangles for this region - m_numRects = 0; - } -} - -/*! - * Increment iterator. The rectangle returned is the one after the - * incrementation. - */ -void wxRegionIterator::operator ++ () -{ - if (m_current < m_numRects) - ++m_current; -} - -/*! - * Increment iterator. The rectangle returned is the one before the - * incrementation. - */ -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_numRects) - ++m_current; -} - -long wxRegionIterator::GetX() const -{ - if (m_current < m_numRects) - return m_rects[m_current].x; - return 0; -} - -long wxRegionIterator::GetY() const -{ - if (m_current < m_numRects) - return m_rects[m_current].y; - return 0; -} - -long wxRegionIterator::GetW() const -{ - if (m_current < m_numRects) - return m_rects[m_current].width ; - return 0; -} - -long wxRegionIterator::GetH() const -{ - if (m_current < m_numRects) - return m_rects[m_current].height; - return 0; -} - diff --git a/src/motif/scrolbar.cpp b/src/motif/scrolbar.cpp deleted file mode 100644 index 5bd38a4ee5..0000000000 --- a/src/motif/scrolbar.cpp +++ /dev/null @@ -1,242 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: wxScrollBar -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" - -#include -#include -#include -#include - -#include - -static void wxScrollBarCallback(Widget widget, XtPointer clientData, - XmScaleCallbackStruct *cbs); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) -#endif - -// Scrollbar -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - if (!parent) - return FALSE; - parent->AddChild(this); - SetName(name); - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - SetValidator(validator); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (width == -1) - { - if (style & wxHORIZONTAL) - width = 140; - else - width = 12; - } - if (height == -1) - { - if (style & wxVERTICAL) - height = 140; - else - height = 12; - } - - Widget parentWidget = (Widget) parent->GetClientWidget(); - int direction = (style & wxHORIZONTAL) ? XmHORIZONTAL: XmVERTICAL; - - Widget scrollBarWidget = XtVaCreateManagedWidget("scrollBarWidget", - xmScrollBarWidgetClass, parentWidget, - XmNorientation, direction, - NULL); - - m_mainWidget = (Widget) scrollBarWidget; - - // This will duplicate other events - // XtAddCallback(scrollBarWidget, XmNvalueChangedCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNdragCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNdecrementCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNincrementCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNpageDecrementCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNpageIncrementCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNtoTopCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - XtAddCallback(scrollBarWidget, XmNtoBottomCallback, (XtCallbackProc)wxScrollBarCallback, (XtPointer)this); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, x, y, width, height); - ChangeBackgroundColour(); - - return TRUE; -} - -wxScrollBar::~wxScrollBar() -{ -} - -void wxScrollBar::SetThumbPosition(int pos) -{ - if (m_mainWidget) - { - XtVaSetValues ((Widget) m_mainWidget, - XmNvalue, pos, - NULL); - } -} - -int wxScrollBar::GetThumbPosition() const -{ - if (m_mainWidget) - { - int pos; - XtVaGetValues((Widget) m_mainWidget, - XmNvalue, &pos, NULL); - return pos; - } - else - return 0; -} - -void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh) -{ - m_viewSize = pageSize; - m_pageSize = thumbSize; - m_objectSize = range; - - if (range == 0) - range = 1; - if (thumbSize == 0) - thumbSize = 1; - - XtVaSetValues((Widget) m_mainWidget, - XmNvalue, position, - XmNminimum, 0, - XmNmaximum, range, - XmNsliderSize, thumbSize, - XmNpageIncrement, pageSize, - NULL); -} - -void wxScrollBar::Command(wxCommandEvent& event) -{ - SetThumbPosition(event.m_commandInt); - ProcessCommand(event); -} - -void wxScrollBar::ChangeFont(bool keepOriginalSize) -{ - // TODO - // Do anything for a scrollbar? A font will never be seen. -} - -void wxScrollBar::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); - - XtVaSetValues ((Widget) GetMainWidget(), - XmNtroughColor, m_backgroundColour.AllocColour(XtDisplay((Widget) GetMainWidget())), - NULL); -} - -void wxScrollBar::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - -static void wxScrollBarCallback(Widget widget, XtPointer clientData, - XmScaleCallbackStruct *cbs) -{ - wxScrollBar *scrollBar = (wxScrollBar *)clientData; - - wxEventType eventType = wxEVT_NULL; - switch (cbs->reason) - { - case XmCR_INCREMENT: - { - eventType = wxEVT_SCROLL_LINEDOWN; - break; - } - case XmCR_DECREMENT: - { - eventType = wxEVT_SCROLL_LINEUP; - break; - } - case XmCR_DRAG: - { - eventType = wxEVT_SCROLL_THUMBTRACK; - break; - } - case XmCR_VALUE_CHANGED: - { - // TODO: Should this be intercepted too, or will it cause - // duplicate events? - eventType = wxEVT_SCROLL_THUMBTRACK; - break; - } - case XmCR_PAGE_INCREMENT: - { - eventType = wxEVT_SCROLL_PAGEDOWN; - break; - } - case XmCR_PAGE_DECREMENT: - { - eventType = wxEVT_SCROLL_PAGEUP; - break; - } - case XmCR_TO_TOP: - { - eventType = wxEVT_SCROLL_TOP; - break; - } - case XmCR_TO_BOTTOM: - { - eventType = wxEVT_SCROLL_BOTTOM; - break; - } - default: - { - // Should never get here - wxFAIL_MSG("Unknown scroll event."); - break; - } - } - - wxScrollEvent event(eventType, scrollBar->GetId()); - event.SetEventObject(scrollBar); - event.SetPosition(cbs->value); - scrollBar->GetEventHandler()->ProcessEvent(event); -/* - if (!scrollBar->inSetValue) - scrollBar->ProcessCommand(event); -*/ -} - diff --git a/src/motif/settings.cpp b/src/motif/settings.cpp deleted file mode 100644 index 7a473fb234..0000000000 --- a/src/motif/settings.cpp +++ /dev/null @@ -1,227 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: wxSettings -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// TODO: these settings should probably be configurable from some central or -// per-user file, which can be edited using a Windows-control-panel clone. -// Also they should be documented better. Some are very MS Windows-ish. - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" -#include "wx/gdicmn.h" - -wxColour wxSystemSettings::GetSystemColour(int index) -{ - switch (index) - { - case wxSYS_COLOUR_SCROLLBAR: - // case wxSYS_COLOUR_DESKTOP: // Same as wxSYS_COLOUR_BACKGROUND - case wxSYS_COLOUR_BACKGROUND: - case wxSYS_COLOUR_ACTIVECAPTION: - case wxSYS_COLOUR_INACTIVECAPTION: - case wxSYS_COLOUR_MENU: - case wxSYS_COLOUR_WINDOW: - case wxSYS_COLOUR_WINDOWFRAME: - case wxSYS_COLOUR_ACTIVEBORDER: - case wxSYS_COLOUR_INACTIVEBORDER: - case wxSYS_COLOUR_BTNFACE: - // case wxSYS_COLOUR_3DFACE: // Same as wxSYS_COLOUR_BTNFACE - case wxSYS_COLOUR_GRAYTEXT: - { - return wxColour("LIGHT GREY"); - } - case wxSYS_COLOUR_BTNSHADOW: - // case wxSYS_COLOUR_3DSHADOW: // Same as wxSYS_COLOUR_BTNSHADOW - { - return wxColour("GREY"); - } - case wxSYS_COLOUR_3DDKSHADOW: - { - return *wxBLACK; - } - case wxSYS_COLOUR_HIGHLIGHT: - case wxSYS_COLOUR_BTNHIGHLIGHT: - // case wxSYS_COLOUR_3DHIGHLIGHT: // Same as wxSYS_COLOUR_BTNHIGHLIGHT - { - return *wxWHITE; - } - case wxSYS_COLOUR_3DLIGHT: - { - return wxColour("LIGHT GREY"); - } - case wxSYS_COLOUR_MENUTEXT: - case wxSYS_COLOUR_WINDOWTEXT: - case wxSYS_COLOUR_CAPTIONTEXT: - case wxSYS_COLOUR_INACTIVECAPTIONTEXT: - case wxSYS_COLOUR_INFOTEXT: - { - return *wxBLACK; - } - case wxSYS_COLOUR_HIGHLIGHTTEXT: - { - return *wxBLUE; - } - case wxSYS_COLOUR_INFOBK: - case wxSYS_COLOUR_APPWORKSPACE: - { - return wxColour("LIGHT GREY"); - // return *wxWHITE; - } - } - return *wxWHITE; -} - -wxFont wxSystemSettings::GetSystemFont(int index) -{ - switch (index) - { - case wxSYS_SYSTEM_FIXED_FONT: - { - return wxFont(12, wxMODERN, wxNORMAL, wxNORMAL, FALSE); - break; - } - case wxSYS_DEVICE_DEFAULT_FONT: - case wxSYS_SYSTEM_FONT: - case wxSYS_DEFAULT_GUI_FONT: - default: - { - return wxFont(12, wxSWISS, wxNORMAL, wxNORMAL, FALSE); - break; - } - } - - return wxFont(); -} - -// Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) -{ - switch ( index) - { - case wxSYS_MOUSE_BUTTONS: - // TODO - return 0; - case wxSYS_BORDER_X: - // TODO - return 0; - case wxSYS_BORDER_Y: - // TODO - return 0; - case wxSYS_CURSOR_X: - // TODO - return 0; - case wxSYS_CURSOR_Y: - // TODO - return 0; - case wxSYS_DCLICK_X: - // TODO - return 0; - case wxSYS_DCLICK_Y: - // TODO - return 0; - case wxSYS_DRAG_X: - // TODO - return 0; - case wxSYS_DRAG_Y: - // TODO - return 0; - case wxSYS_EDGE_X: - // TODO - return 0; - case wxSYS_EDGE_Y: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_HTHUMB_X: - // TODO - return 0; - case wxSYS_ICON_X: - // TODO - return 0; - case wxSYS_ICON_Y: - // TODO - return 0; - case wxSYS_ICONSPACING_X: - // TODO - return 0; - case wxSYS_ICONSPACING_Y: - // TODO - return 0; - case wxSYS_WINDOWMIN_X: - // TODO - return 0; - case wxSYS_WINDOWMIN_Y: - // TODO - return 0; - case wxSYS_SCREEN_X: - // TODO - return 0; - case wxSYS_SCREEN_Y: - // TODO - return 0; - case wxSYS_FRAMESIZE_X: - // TODO - return 0; - case wxSYS_FRAMESIZE_Y: - // TODO - return 0; - case wxSYS_SMALLICON_X: - // TODO - return 0; - case wxSYS_SMALLICON_Y: - // TODO - return 0; - case wxSYS_HSCROLL_Y: - // TODO - return 0; - case wxSYS_VSCROLL_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_VTHUMB_Y: - // TODO - return 0; - case wxSYS_CAPTION_Y: - // TODO - return 0; - case wxSYS_MENU_Y: - // TODO - return 0; - case wxSYS_NETWORK_PRESENT: - // TODO - return 0; - case wxSYS_PENWINDOWS_PRESENT: - // TODO - return 0; - case wxSYS_SHOW_SOUNDS: - // TODO - return 0; - case wxSYS_SWAP_BUTTONS: - // TODO - return 0; - default: - return 0; - } - return 0; -} - diff --git a/src/motif/slider.cpp b/src/motif/slider.cpp deleted file mode 100644 index ab2b4f6e4a..0000000000 --- a/src/motif/slider.cpp +++ /dev/null @@ -1,293 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: wxSlider -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/slider.h" -#include "wx/utils.h" - -#include -#include -#include -#include -#include - -#include - -void wxSliderCallback (Widget widget, XtPointer clientData, XmScaleCallbackStruct * cbs); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - -BEGIN_EVENT_TABLE(wxSlider, wxControl) -END_EVENT_TABLE() -#endif - - - -// Slider -wxSlider::wxSlider() -{ - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - - if (parent) parent->AddChild(this); - - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_rangeMax = maxValue; - m_rangeMin = minValue; - - // Not used in Motif, I think - m_pageSize = (int)((maxValue-minValue)/10); - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - Widget sliderWidget = XtVaCreateManagedWidget ("sliderWidget", - xmScaleWidgetClass, parentWidget, - XmNorientation, - (((m_windowStyle & wxSL_VERTICAL) == wxSL_VERTICAL) ? XmVERTICAL : XmHORIZONTAL), - XmNprocessingDirection, - (((m_windowStyle & wxSL_VERTICAL) == wxSL_VERTICAL) ? XmMAX_ON_TOP : XmMAX_ON_RIGHT), - XmNmaximum, maxValue, - XmNminimum, minValue, - XmNvalue, value, - XmNshowValue, True, - NULL); - - m_mainWidget = (WXWidget) sliderWidget; - - if(style & wxSL_NOTIFY_DRAG) - XtAddCallback (sliderWidget, XmNdragCallback, - (XtCallbackProc) wxSliderCallback, (XtPointer) this); - else - XtAddCallback (sliderWidget, XmNvalueChangedCallback, - (XtCallbackProc) wxSliderCallback, (XtPointer) this); - - XtAddCallback (sliderWidget, XmNdragCallback, (XtCallbackProc) wxSliderCallback, (XtPointer) this); - - m_windowFont = parent->GetFont(); - - ChangeFont(FALSE); - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -wxSlider::~wxSlider() -{ -} - -int wxSlider::GetValue() const -{ - int val; - XtVaGetValues ((Widget) m_mainWidget, XmNvalue, &val, NULL); - return val; -} - -void wxSlider::SetValue(int value) -{ - XtVaSetValues ((Widget) m_mainWidget, XmNvalue, value, NULL); -} - -void wxSlider::GetSize(int *width, int *height) const -{ - wxControl::GetSize(width, height); -} - -void wxSlider::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - Widget widget = (Widget) m_mainWidget; - - bool managed = XtIsManaged(widget); - - if (managed) - XtUnmanageChild (widget); - - if (((m_windowStyle & wxHORIZONTAL) == wxHORIZONTAL) && (width > -1)) - { - XtVaSetValues (widget, XmNscaleWidth, wxMax (width, 10), NULL); - } - - if (((m_windowStyle & wxVERTICAL) == wxVERTICAL) && (height > -1)) - { - XtVaSetValues (widget, XmNscaleHeight, wxMax (height, 10), NULL); - } - - int xx = x; int yy = y; - AdjustForParentClientOrigin(xx, yy, sizeFlags); - - if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues (widget, XmNx, xx, NULL); - if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues (widget, XmNy, yy, NULL); - - if (managed) - XtManageChild (widget); -} - -void wxSlider::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - XtVaSetValues ((Widget) m_mainWidget, XmNminimum, minValue, XmNmaximum, maxValue, NULL); -} - -// For trackbars only -void wxSlider::SetTickFreq(int n, int pos) -{ - // Not implemented in Motif - m_tickFreq = n; -} - -void wxSlider::SetPageSize(int pageSize) -{ - // Not implemented in Motif - m_pageSize = pageSize; -} - -int wxSlider::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider::ClearSel() -{ - // Not implemented in Motif -} - -void wxSlider::ClearTicks() -{ - // Not implemented in Motif -} - -void wxSlider::SetLineSize(int lineSize) -{ - // Not implemented in Motif - m_lineSize = lineSize; -} - -int wxSlider::GetLineSize() const -{ - // Not implemented in Motif - return m_lineSize; -} - -int wxSlider::GetSelEnd() const -{ - // Not implemented in Motif - return 0; -} - -int wxSlider::GetSelStart() const -{ - // Not implemented in Motif - return 0; -} - -void wxSlider::SetSelection(int WXUNUSED(minPos), int WXUNUSED(maxPos)) -{ - // Not implemented in Motif -} - -void wxSlider::SetThumbLength(int WXUNUSED(len)) -{ - // Not implemented in Motif (?) -} - -int wxSlider::GetThumbLength() const -{ - // Not implemented in Motif (?) - return 0; -} - -void wxSlider::SetTick(int WXUNUSED(tickPos)) -{ - // Not implemented in Motif -} - -void wxSlider::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -void wxSlider::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxSlider::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxSlider::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - -void wxSliderCallback (Widget widget, XtPointer clientData, XmScaleCallbackStruct * cbs) -{ - wxSlider *slider = (wxSlider *) clientData; - switch (cbs->reason) - { - case XmCR_VALUE_CHANGED: - case XmCR_DRAG: - default: - { - // TODO: the XmCR_VALUE_CHANGED case should be handled - // differently (it's not sent continually as the slider moves). - // In which case we need a similar behaviour for other platforms. - - wxScrollEvent event(wxEVT_SCROLL_THUMBTRACK, slider->GetId()); - XtVaGetValues (widget, XmNvalue, &event.m_commandInt, NULL); - event.SetEventObject(slider); - slider->ProcessCommand(event); - - // Also send a wxCommandEvent for compatibility. - wxCommandEvent event2(wxEVT_COMMAND_SLIDER_UPDATED, slider->GetId()); - event2.SetEventObject(slider); - slider->ProcessCommand(event2); - break; - } - } -} - diff --git a/src/motif/spinbutt.cpp b/src/motif/spinbutt.cpp deleted file mode 100644 index 73cedd396d..0000000000 --- a/src/motif/spinbutt.cpp +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "spinbutt.h" -#endif - -#include "wx/spinbutt.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) -#endif - -wxSpinButton::wxSpinButton() -{ - m_min = 0; - m_max = 100; -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - SetName(name); - - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - m_min = 0; - m_max = 100; - - m_windowId = (id == -1) ? NewControlId() : id; - - // TODO create spin button - return FALSE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -int wxSpinButton::GetValue() const -{ - // TODO - return 0; -} - -void wxSpinButton::SetValue(int val) -{ - // TODO -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - m_min = minVal; - m_max = maxVal; - // TODO -} - -void wxSpinButton::ChangeFont(bool keepOriginalSize) -{ - // TODO -} - -void wxSpinButton::ChangeBackgroundColour() -{ - // TODO -} - -void wxSpinButton::ChangeForegroundColour() -{ - // TODO -} - -// Spin event -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id): - wxScrollEvent(commandType, id) -{ -} - diff --git a/src/motif/statbmp.cpp b/src/motif/statbmp.cpp deleted file mode 100644 index ba3ae76b29..0000000000 --- a/src/motif/statbmp.cpp +++ /dev/null @@ -1,132 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: wxStaticBitmap -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#include -#include -#include -#include - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) -#endif - -/* - * wxStaticBitmap - */ - -bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_messageBitmap = bitmap; - SetName(name); - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - m_mainWidget = (WXWidget) XtVaCreateManagedWidget ("staticBitmap", -#if USE_GADGETS - xmLabelGadgetClass, parentWidget, -#else - xmLabelWidgetClass, parentWidget, -#endif - XmNalignment, XmALIGNMENT_BEGINNING, - NULL); - - XtVaSetValues ((Widget) m_mainWidget, - XmNlabelPixmap, (Pixmap) ((wxBitmap&)bitmap).GetLabelPixmap (m_mainWidget), - XmNlabelType, XmPIXMAP, - NULL); - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour (); - - return TRUE; -} - -wxStaticBitmap::~wxStaticBitmap() -{ - SetBitmap(wxNullBitmap); -} - -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) -{ - m_messageBitmap = bitmap; - - Widget widget = (Widget) m_mainWidget; - int x, y, w1, h1, w2, h2; - - GetPosition(&x, &y); - - if (bitmap.Ok()) - { - w2 = bitmap.GetWidth(); - h2 = bitmap.GetHeight(); - XtVaSetValues (widget, - XmNlabelPixmap, ((wxBitmap&)bitmap).GetLabelPixmap (widget), - XmNlabelType, XmPIXMAP, - NULL); - GetSize(&w1, &h1); - - if (! (w1 == w2) && (h1 == h2)) - SetSize(x, y, w2, h2); - } - else - { - // Null bitmap: must not use current pixmap - // since it is no longer valid. - XtVaSetValues (widget, - XmNlabelType, XmSTRING, - XmNlabelPixmap, XmUNSPECIFIED_PIXMAP, - NULL); - } -} - -void wxStaticBitmap::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxStaticBitmap::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxStaticBitmap::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - diff --git a/src/motif/statbox.cpp b/src/motif/statbox.cpp deleted file mode 100644 index c3cda9c6d5..0000000000 --- a/src/motif/statbox.cpp +++ /dev/null @@ -1,221 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: wxStaticBox -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" -#include "wx/utils.h" - -#include -#include -#include -#include - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Static box - */ - -wxStaticBox::wxStaticBox() -{ - m_formWidget = (WXWidget) 0; - m_labelWidget = (WXWidget) 0; -} - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_formWidget = (WXWidget) 0; - m_labelWidget = (WXWidget) 0; - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - m_windowFont = parent->GetFont(); - - SetName(name); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - bool hasLabel = (!label.IsNull() && !label.IsEmpty()) ; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - Widget formWidget = XtVaCreateManagedWidget ((char*) (const char*) name, - xmFormWidgetClass, parentWidget, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - NULL); - - - if (hasLabel) - { - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget)); - - wxString label1(wxStripMenuCodes(label)); - XmString text = XmStringCreateSimple ((char*) (const char*) label1); - m_labelWidget = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) label1, - xmLabelWidgetClass, formWidget, - XmNfontList, fontList, - XmNlabelString, text, - NULL); - XmStringFree (text); - } - - Widget frameWidget = XtVaCreateManagedWidget ("frame", - xmFrameWidgetClass, formWidget, - XmNshadowType, XmSHADOW_IN, -// XmNmarginHeight, 0, -// XmNmarginWidth, 0, - NULL); - - if (hasLabel) - XtVaSetValues ((Widget) m_labelWidget, - XmNtopAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNalignment, XmALIGNMENT_BEGINNING, - NULL); - - XtVaSetValues (frameWidget, - XmNtopAttachment, hasLabel ? XmATTACH_WIDGET : XmATTACH_FORM, - XmNtopWidget, hasLabel ? (Widget) m_labelWidget : formWidget, - XmNbottomAttachment, XmATTACH_FORM, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - NULL); - - m_mainWidget = (WXWidget) frameWidget; - m_formWidget = (WXWidget) formWidget; - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, (WXWidget) frameWidget, (WXWidget) formWidget, pos.x, pos.y, size.x, size.y); - ChangeBackgroundColour(); - - return TRUE; -} - -wxStaticBox::~wxStaticBox() -{ - DetachWidget(m_formWidget); - DetachWidget(m_mainWidget); - XtDestroyWidget((Widget) m_mainWidget); - if (m_labelWidget) - XtDestroyWidget((Widget) m_labelWidget); - XtDestroyWidget((Widget) m_formWidget); - - m_mainWidget = (WXWidget) 0; - m_labelWidget = (WXWidget) 0; - m_formWidget = (WXWidget) 0; -} - -void wxStaticBox::SetLabel(const wxString& label) -{ - if (!m_labelWidget) - return; - - if (!label.IsNull()) - { - wxString label1(wxStripMenuCodes(label)); - - XmString text = XmStringCreateSimple ((char*) (const char*) label1); - XtVaSetValues ((Widget) m_labelWidget, - XmNlabelString, text, - XmNlabelType, XmSTRING, - NULL); - XmStringFree (text); - } -} - -wxString wxStaticBox::GetLabel() const -{ - if (!m_labelWidget) - return wxEmptyString; - - XmString text = 0; - char *s; - XtVaGetValues ((Widget) m_labelWidget, - XmNlabelString, &text, - NULL); - - if (!text) - return wxEmptyString; - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - wxString str(s); - XtFree (s); - return str; - } - else - { - return wxEmptyString; - } -} - -void wxStaticBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - wxControl::DoSetSize (x, y, width, height, sizeFlags); - - if (m_labelWidget) - { - Dimension xx, yy; - XtVaGetValues ((Widget) m_labelWidget, XmNwidth, &xx, XmNheight, &yy, NULL); - - if (width > -1) - XtVaSetValues ((Widget) m_mainWidget, XmNwidth, width, - NULL); - if (height > -1) - XtVaSetValues ((Widget) m_mainWidget, XmNheight, height - yy, - NULL); - } -} - -void wxStaticBox::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxStaticBox::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); - if (m_labelWidget) - DoChangeBackgroundColour(m_labelWidget, m_backgroundColour); -} - -void wxStaticBox::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); - if (m_labelWidget) - DoChangeForegroundColour(m_labelWidget, m_foregroundColour); -} - diff --git a/src/motif/stattext.cpp b/src/motif/stattext.cpp deleted file mode 100644 index 996cf9315e..0000000000 --- a/src/motif/stattext.cpp +++ /dev/null @@ -1,96 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: wxStaticText -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stattext.h" -#endif - -#include "wx/app.h" -#include "wx/stattext.h" - -#include - -#include -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -#endif - -bool wxStaticText::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - if (parent) parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - m_windowFont = parent->GetFont(); - - char* label1 = (label.IsNull() ? "" : (char*) (const char*) label); - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - // Use XmStringCreateLtoR(), since XmStringCreateSimple - // doesn't obey separators. -// XmString text = XmStringCreateSimple (label1); - XmString text = XmStringCreateLtoR (label1, XmSTRING_DEFAULT_CHARSET); - - XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget)); - - m_mainWidget = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) name, - xmLabelWidgetClass, - parentWidget, - XmNfontList, fontList, - XmNlabelString, text, - XmNalignment, - ((style & wxALIGN_RIGHT) ? XmALIGNMENT_END : - ((style & wxALIGN_CENTRE) ? XmALIGNMENT_CENTER : - XmALIGNMENT_BEGINNING)), - NULL); - - XmStringFree (text); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour (); - - return TRUE; -} - -void wxStaticText::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxStaticText::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); -} - -void wxStaticText::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); -} - diff --git a/src/motif/tabctrl.cpp b/src/motif/tabctrl.cpp deleted file mode 100644 index 07216d262a..0000000000 --- a/src/motif/tabctrl.cpp +++ /dev/null @@ -1,201 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp -// Purpose: wxTabCtrl -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - -#include "wx/control.h" -#include "wx/tabctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) -END_EVENT_TABLE() -#endif - -wxTabCtrl::wxTabCtrl() -{ - m_imageList = NULL; -} - -bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_imageList = NULL; - - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id < 0 ? NewControlId() : id); - - if (parent) parent->AddChild(this); - - // TODO: create tab control - return FALSE; -} - -wxTabCtrl::~wxTabCtrl() -{ -} - -void wxTabCtrl::Command(wxCommandEvent& event) -{ -} - -// Delete all items -bool wxTabCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Delete an item -bool wxTabCtrl::DeleteItem(int item) -{ - // TODO - return FALSE; -} - -// Get the selection -int wxTabCtrl::GetSelection() const -{ - // TODO - return 0; -} - -// Get the tab with the current keyboard focus -int wxTabCtrl::GetCurFocus() const -{ - // TODO - return 0; -} - -// Get the associated image list -wxImageList* wxTabCtrl::GetImageList() const -{ - return m_imageList; -} - -// Get the number of items -int wxTabCtrl::GetItemCount() const -{ - // TODO - return 0; -} - -// Get the rect corresponding to the tab -bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const -{ - // TODO - return FALSE; -} - -// Get the number of rows -int wxTabCtrl::GetRowCount() const -{ - // TODO - return 0; -} - -// Get the item text -wxString wxTabCtrl::GetItemText(int item) const -{ - // TODO - return wxString(""); -} - -// Get the item image -int wxTabCtrl::GetItemImage(int item) const -{ - // TODO - return 0; -} - -// Get the item data -void* wxTabCtrl::GetItemData(int item) const -{ - // TODO - return NULL; -} - -// Hit test -int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) -{ - // TODO - return 0; -} - -// Insert an item -bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) -{ - // TODO - return FALSE; -} - -// Set the selection -int wxTabCtrl::SetSelection(int item) -{ - // TODO - return 0; -} - -// Set the image list -void wxTabCtrl::SetImageList(wxImageList* imageList) -{ - // TODO -} - -// Set the text for an item -bool wxTabCtrl::SetItemText(int item, const wxString& text) -{ - // TODO - return FALSE; -} - -// Set the image for an item -bool wxTabCtrl::SetItemImage(int item, int image) -{ - // TODO - return FALSE; -} - -// Set the data for an item -bool wxTabCtrl::SetItemData(int item, void* data) -{ - // TODO - return FALSE; -} - -// Set the size for a fixed-width tab control -void wxTabCtrl::SetItemSize(const wxSize& size) -{ - // TODO -} - -// Set the padding between tabs -void wxTabCtrl::SetPadding(const wxSize& padding) -{ - // TODO -} - -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ -} - diff --git a/src/motif/taskbar.cpp b/src/motif/taskbar.cpp deleted file mode 100644 index 75f12c0d58..0000000000 --- a/src/motif/taskbar.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.cpp -// Purpose: Implements wxTaskBarIcon class for manipulating icons on -// the task bar. Optional. -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "taskbar.h" -#endif - -#include - -wxTaskBarIcon::wxTaskBarIcon() -{ - // TODO -} - -wxTaskBarIcon::~wxTaskBarIcon() -{ - // TODO -} - -// Operations -bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip) -{ - // TODO - return FALSE; -} - -bool wxTaskBarIcon::RemoveIcon() -{ - // TODO - return FALSE; -} - -// Overridables -void wxTaskBarIcon::OnMouseMove() -{ -} - -void wxTaskBarIcon::OnLButtonDown() -{ -} - -void wxTaskBarIcon::OnLButtonUp() -{ -} - -void wxTaskBarIcon::OnRButtonDown() -{ -} - -void wxTaskBarIcon::OnRButtonUp() -{ -} - -void wxTaskBarIcon::OnLButtonDClick() -{ -} - -void wxTaskBarIcon::OnRButtonDClick() -{ -} - diff --git a/src/motif/textctrl.cpp b/src/motif/textctrl.cpp deleted file mode 100644 index 5a8950d25d..0000000000 --- a/src/motif/textctrl.cpp +++ /dev/null @@ -1,1058 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: wxTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "textctrl.h" -#endif - -#include -#include -#include -#include - -#include "wx/textctrl.h" -#include "wx/settings.h" -#include "wx/filefn.h" -#include "wx/utils.h" - -#include - -#include "wx/motif/private.h" - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -// helper: inserts the new text in the value of the text ctrl and returns the -// result in place -static void MergeChangesIntoString(wxString& value, - XmTextVerifyCallbackStruct *textStruct); - -// callbacks -static void wxTextWindowChangedProc(Widget w, XtPointer clientData, XtPointer ptr); -static void wxTextWindowModifyProc(Widget w, XtPointer clientData, XmTextVerifyCallbackStruct *cbs); -static void wxTextWindowGainFocusProc(Widget w, XtPointer clientData, XmAnyCallbackStruct *cbs); -static void wxTextWindowLoseFocusProc(Widget w, XtPointer clientData, XmAnyCallbackStruct *cbs); -static void wxTextWindowActivateProc(Widget w, XtPointer clientData, XmAnyCallbackStruct *ptr); - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - - BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) - EVT_CHAR(wxTextCtrl::OnChar) - - EVT_MENU(wxID_CUT, wxTextCtrl::OnCut) - EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy) - EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste) - EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo) - EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo) - - EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut) - EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy) - EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste) - EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo) - EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo) - - END_EVENT_TABLE() -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxTextCtrl -// ---------------------------------------------------------------------------- - -// Text item -wxTextCtrl::wxTextCtrl() -#ifndef NO_TEXT_WINDOW_STREAM - : streambuf() -#endif -{ - m_tempCallbackStruct = (void*) NULL; - m_modified = FALSE; - m_processedDefault = FALSE; -} - -bool wxTextCtrl::Create(wxWindow *parent, - wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - m_tempCallbackStruct = (void*) NULL; - m_modified = FALSE; - m_processedDefault = FALSE; - // m_backgroundColour = parent->GetBackgroundColour(); - m_backgroundColour = * wxWHITE; - m_foregroundColour = parent->GetForegroundColour(); - - SetName(name); - SetValidator(validator); - if (parent) - parent->AddChild(this); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - bool wantHorizScrolling = ((m_windowStyle & wxHSCROLL) != 0); - - // If we don't have horizontal scrollbars, we want word wrap. - bool wantWordWrap = !wantHorizScrolling; - - if (m_windowStyle & wxTE_MULTILINE) - { - Arg args[2]; - XtSetArg (args[0], XmNscrollHorizontal, wantHorizScrolling ? True : False); - XtSetArg (args[1], XmNwordWrap, wantWordWrap ? True : False); - - m_mainWidget = (WXWidget) XmCreateScrolledText(parentWidget, - (char*)name.c_str(), - args, 2); - - XtVaSetValues ((Widget) m_mainWidget, - XmNeditable, ((style & wxTE_READONLY) ? False : True), - XmNeditMode, XmMULTI_LINE_EDIT, - NULL); - XtManageChild ((Widget) m_mainWidget); - } - else - { - m_mainWidget = (WXWidget)XtVaCreateManagedWidget - ( - (char*)name.c_str(), - xmTextWidgetClass, - parentWidget, - NULL - ); - - // TODO: Is this relevant? What does it do? - int noCols = 2; - if (!value.IsNull() && (value.Length() > (unsigned int) noCols)) - noCols = value.Length(); - XtVaSetValues((Widget) m_mainWidget, - XmNcolumns, noCols, - NULL); - } - - // remove border if asked for - if ( style & wxNO_BORDER ) - { - XtVaSetValues((Widget)m_mainWidget, - XmNshadowThickness, 0, - NULL); - } - - if ( !!value ) - XmTextSetString ((Widget) m_mainWidget, (char*)value.c_str()); - - // install callbacks - XtAddCallback((Widget) m_mainWidget, XmNvalueChangedCallback, (XtCallbackProc)wxTextWindowChangedProc, (XtPointer)this); - - XtAddCallback((Widget) m_mainWidget, XmNmodifyVerifyCallback, (XtCallbackProc)wxTextWindowModifyProc, (XtPointer)this); - - XtAddCallback((Widget) m_mainWidget, XmNactivateCallback, (XtCallbackProc)wxTextWindowActivateProc, (XtPointer)this); - - XtAddCallback((Widget) m_mainWidget, XmNfocusCallback, (XtCallbackProc)wxTextWindowGainFocusProc, (XtPointer)this); - - XtAddCallback((Widget) m_mainWidget, XmNlosingFocusCallback, (XtCallbackProc)wxTextWindowLoseFocusProc, (XtPointer)this); - - // font - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -WXWidget wxTextCtrl::GetTopWidget() const -{ - return ((m_windowStyle & wxTE_MULTILINE) ? (WXWidget) XtParent((Widget) m_mainWidget) : m_mainWidget); -} - -wxString wxTextCtrl::GetValue() const -{ - wxString str; // result - - if (m_windowStyle & wxTE_PASSWORD) - { - // the value is stored always in m_value because it can't be retrieved - // from the text control - str = m_value; - } - else - { - // just get the string from Motif - char *s = XmTextGetString ((Widget) m_mainWidget); - if ( s ) - { - str = s; - XtFree (s); - } - //else: return empty string - - if ( m_tempCallbackStruct ) - { - // the string in the control isn't yet updated, can't use it as is - MergeChangesIntoString(str, (XmTextVerifyCallbackStruct *) - m_tempCallbackStruct); - } - } - - return str; -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - m_inSetValue = TRUE; - - XmTextSetString ((Widget) m_mainWidget, (char*)value.c_str()); - - m_inSetValue = FALSE; -} - -// Clipboard operations -void wxTextCtrl::Copy() -{ - XmTextCopy((Widget) m_mainWidget, CurrentTime); -} - -void wxTextCtrl::Cut() -{ - XmTextCut((Widget) m_mainWidget, CurrentTime); -} - -void wxTextCtrl::Paste() -{ - XmTextPaste((Widget) m_mainWidget); -} - -bool wxTextCtrl::CanCopy() const -{ - // Can copy if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanCut() const -{ - // Can cut if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanPaste() const -{ - return IsEditable() ; -} - -// Undo/redo -void wxTextCtrl::Undo() -{ - // Not possible in Motif -} - -void wxTextCtrl::Redo() -{ - // Not possible in Motif -} - -bool wxTextCtrl::CanUndo() const -{ - // No Undo in Motif - return FALSE; -} - -bool wxTextCtrl::CanRedo() const -{ - // No Redo in Motif - return FALSE; -} - -// If the return values from and to are the same, there is no -// selection. -void wxTextCtrl::GetSelection(long* from, long* to) const -{ - XmTextPosition left, right; - - XmTextGetSelectionPosition((Widget) m_mainWidget, & left, & right); - - *from = (long) left; - *to = (long) right; -} - -bool wxTextCtrl::IsEditable() const -{ - return (XmTextGetEditable((Widget) m_mainWidget) != 0); -} - -void wxTextCtrl::SetEditable(bool editable) -{ - XmTextSetEditable((Widget) m_mainWidget, (Boolean) editable); -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - XmTextSetInsertionPosition ((Widget) m_mainWidget, (XmTextPosition) pos); -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - long pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - return (long) XmTextGetInsertionPosition ((Widget) m_mainWidget); -} - -long wxTextCtrl::GetLastPosition() const -{ - return (long) XmTextGetLastPosition ((Widget) m_mainWidget); -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ - XmTextReplace ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (char*) (const char*) value); -} - -void wxTextCtrl::Remove(long from, long to) -{ - XmTextSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); - XmTextRemove ((Widget) m_mainWidget); -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - XmTextSetSelection ((Widget) m_mainWidget, (XmTextPosition) from, (XmTextPosition) to, - (Time) 0); -} - -bool wxTextCtrl::LoadFile(const wxString& file) -{ - if (!wxFileExists(file)) - return FALSE; - - m_fileName = file; - - Clear(); - - Widget textWidget = (Widget) m_mainWidget; - FILE *fp; - - struct stat statb; - if ((stat ((char*) (const char*) file, &statb) == -1) || (statb.st_mode & S_IFMT) != S_IFREG || - !(fp = fopen ((char*) (const char*) file, "r"))) - { - return FALSE; - } - else - { - long len = statb.st_size; - char *text; - if (!(text = XtMalloc ((unsigned) (len + 1)))) - { - fclose (fp); - return FALSE; - } - if (fread (text, sizeof (char), len, fp) != (size_t) len) - { - } - fclose (fp); - - text[len] = 0; - XmTextSetString (textWidget, text); - // m_textPosition = len; - XtFree (text); - m_modified = FALSE; - return TRUE; - } -} - -// If file is null, try saved file name first -// Returns TRUE if succeeds. -bool wxTextCtrl::SaveFile(const wxString& file) -{ - wxString theFile(file); - if (theFile == "") - theFile = m_fileName; - if (theFile == "") - return FALSE; - m_fileName = theFile; - - Widget textWidget = (Widget) m_mainWidget; - FILE *fp; - - if (!(fp = fopen ((char*) (const char*) theFile, "w"))) - { - return FALSE; - } - else - { - char *text = XmTextGetString (textWidget); - long len = XmTextGetLastPosition (textWidget); - - if (fwrite (text, sizeof (char), len, fp) != (size_t) len) - { - // Did not write whole file - } - // Make sure newline terminates the file - if (text[len - 1] != '\n') - fputc ('\n', fp); - - fclose (fp); - XtFree (text); - m_modified = FALSE; - return TRUE; - } -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - long textPosition = GetInsertionPoint() + strlen (text); - XmTextInsert ((Widget) m_mainWidget, GetInsertionPoint(), (char*) (const char*) text); - XtVaSetValues ((Widget) m_mainWidget, XmNcursorPosition, textPosition, NULL); - SetInsertionPoint(textPosition); - XmTextShowPosition ((Widget) m_mainWidget, textPosition); - m_modified = TRUE; -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - long textPosition = GetLastPosition() + strlen(text); - XmTextInsert ((Widget) m_mainWidget, GetLastPosition(), (char*) (const char*) text); - XtVaSetValues ((Widget) m_mainWidget, XmNcursorPosition, textPosition, NULL); - SetInsertionPoint(textPosition); - XmTextShowPosition ((Widget) m_mainWidget, textPosition); - m_modified = TRUE; -} - -void wxTextCtrl::Clear() -{ - XmTextSetString ((Widget) m_mainWidget, ""); - m_modified = FALSE; -} - -bool wxTextCtrl::IsModified() const -{ - return m_modified; -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - m_modified = FALSE; -} - -int wxTextCtrl::GetNumberOfLines() const -{ - // HIDEOUSLY inefficient, but we have no choice. - char *s = XmTextGetString ((Widget) m_mainWidget); - if (s) - { - long i = 0; - int currentLine = 0; - bool finished = FALSE; - while (!finished) - { - int ch = s[i]; - if (ch == '\n') - { - currentLine++; - i++; - } - else if (ch == 0) - { - finished = TRUE; - } - else - i++; - } - - XtFree (s); - return currentLine; - } - return 0; -} - -long wxTextCtrl::XYToPosition(long x, long y) const -{ -/* It seems, that there is a bug in some versions of the Motif library, - so the original wxWin-Code doesn't work. */ - /* - Widget textWidget = (Widget) handle; - return (long) XmTextXYToPos (textWidget, (Position) x, (Position) y); - */ - /* Now a little workaround: */ - long r=0; - for (int i=0; i 0) - { - LoadFile(event.GetFiles()[0]); - } -} - -// The streambuf code was partly taken from chapter 3 by Jerry Schwarz of -// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers - -//========================================================================= -// Called then the buffer is full (gcc 2.6.3) -// or when "endl" is output (Borland 4.5) -//========================================================================= -// Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in wb_text.h. -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow(int c) -{ - // Make sure there is a holding area - if ( allocate()==EOF ) - { - wxError("Streambuf allocation failed","Internal error"); - return EOF; - } - - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("wxTextCtrl::overflow: Who's trespassing my get area?","Internal error"); - return EOF; - } - - // Reset get area - setg(0,0,0); - - // Make sure there is a put area - if ( ! pptr() ) - { - /* This doesn't seem to be fatal so comment out error message */ - // wxError("Put area not opened","Internal error"); - setp( base(), base() ); - } - - // Determine how many characters have been inserted but no consumed - int plen = pptr() - pbase(); - - // Now Jerry relies on the fact that the buffer is at least 2 chars - // long, but the holding area "may be as small as 1" ??? - // And we need an additional \0, so let's keep this inefficient but - // safe copy. - - // If c!=EOF, it is a character that must also be comsumed - int xtra = c==EOF? 0 : 1; - - // Write temporary C-string to wxTextWindow - { - char *txt = new char[plen+xtra+1]; - memcpy(txt, pbase(), plen); - txt[plen] = (char)c; // append c - txt[plen+xtra] = '\0'; // append '\0' or overwrite c - // If the put area already contained \0, output will be truncated there - WriteText(txt); - delete[] txt; - } - - // Reset put area - setp(pbase(), epptr()); - -#if defined(__WATCOMC__) - return __NOT_EOF; -#elif defined(zapeof) // HP-UX (all cfront based?) - return zapeof(c); -#else - return c!=EOF ? c : 0; // this should make everybody happy -#endif -} - -//========================================================================= -// called then "endl" is output (gcc) or then explicit sync is done (Borland) -//========================================================================= -int wxTextCtrl::sync() -{ - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - if ( pptr() && pptr() > pbase() ) return overflow(EOF); - - return 0; - /* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; - */ -} - -//========================================================================= -// Should not be called by a "ostream". Used by a "istream" -//========================================================================= -int wxTextCtrl::underflow() -{ - return EOF; -} -#endif - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - wxString str; - str.Printf("%.2f", f); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - wxString str; - str.Printf("%.2f", d); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - wxString str; - str.Printf("%d", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - wxString str; - str.Printf("%ld", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} - -void wxTextCtrl::OnChar(wxKeyEvent& event) -{ - // Indicates that we should generate a normal command, because - // we're letting default behaviour happen (otherwise it's vetoed - // by virtue of overriding OnChar) - m_processedDefault = TRUE; - - if (m_tempCallbackStruct) - { - XmTextVerifyCallbackStruct *textStruct = - (XmTextVerifyCallbackStruct *) m_tempCallbackStruct; - textStruct->doit = True; - if (isascii(event.m_keyCode) && (textStruct->text->length == 1)) - { - textStruct->text->ptr[0] = ((event.m_keyCode == WXK_RETURN) ? 10 : event.m_keyCode); - } - } -} - -void wxTextCtrl::ChangeFont(bool keepOriginalSize) -{ - wxWindow::ChangeFont(keepOriginalSize); -} - -void wxTextCtrl::ChangeBackgroundColour() -{ - wxWindow::ChangeBackgroundColour(); - - /* TODO: should scrollbars be affected? Should probably have separate - * function to change them (by default, taken from wxSystemSettings) - */ - if (m_windowStyle & wxTE_MULTILINE) - { - Widget parent = XtParent ((Widget) m_mainWidget); - Widget hsb, vsb; - - XtVaGetValues (parent, - XmNhorizontalScrollBar, &hsb, - XmNverticalScrollBar, &vsb, - NULL); - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - if (hsb) - DoChangeBackgroundColour((WXWidget) hsb, backgroundColour, TRUE); - if (vsb) - DoChangeBackgroundColour((WXWidget) vsb, backgroundColour, TRUE); - - DoChangeBackgroundColour((WXWidget) parent, m_backgroundColour, TRUE); - } -} - -void wxTextCtrl::ChangeForegroundColour() -{ - wxWindow::ChangeForegroundColour(); - - if (m_windowStyle & wxTE_MULTILINE) - { - Widget parent = XtParent ((Widget) m_mainWidget); - Widget hsb, vsb; - - XtVaGetValues (parent, - XmNhorizontalScrollBar, &hsb, - XmNverticalScrollBar, &vsb, - NULL); - - /* TODO: should scrollbars be affected? Should probably have separate - * function to change them (by default, taken from wxSystemSettings) - if (hsb) - DoChangeForegroundColour((WXWidget) hsb, m_foregroundColour); - if (vsb) - DoChangeForegroundColour((WXWidget) vsb, m_foregroundColour); - */ - DoChangeForegroundColour((WXWidget) parent, m_foregroundColour); - } -} - -void wxTextCtrl::DoSendEvents(void *wxcbs, long keycode) -{ - // we're in process of updating the text control - m_tempCallbackStruct = wxcbs; - - XmTextVerifyCallbackStruct *cbs = (XmTextVerifyCallbackStruct *)wxcbs; - - wxKeyEvent event (wxEVT_CHAR); - event.SetId(GetId()); - event.m_keyCode = keycode; - event.SetEventObject(this); - - // Only if wxTextCtrl::OnChar is called will this be set to True (and - // the character passed through) - cbs->doit = False; - - GetEventHandler()->ProcessEvent(event); - - if ( !InSetValue() && m_processedDefault ) - { - // Can generate a command - wxCommandEvent commandEvent(wxEVT_COMMAND_TEXT_UPDATED, GetId()); - commandEvent.SetEventObject(this); - ProcessCommand(commandEvent); - } - - // do it after the (user) event handlers processed the events because - // otherwise GetValue() would return incorrect (not yet updated value) - m_tempCallbackStruct = NULL; -} - -// ---------------------------------------------------------------------------- -// helpers and Motif callbacks -// ---------------------------------------------------------------------------- - -static void MergeChangesIntoString(wxString& value, - XmTextVerifyCallbackStruct *cbs) -{ - /* _sm_ - * At least on my system (SunOS 4.1.3 + Motif 1.2), you need to think of - * every event as a replace event. cbs->text->ptr gives the replacement - * text, cbs->startPos gives the index of the first char affected by the - * replace, and cbs->endPos gives the index one more than the last char - * affected by the replace (startPos == endPos implies an empty range). - * Hence, a deletion is represented by replacing all input text with a - * blank string ("", *not* NULL!). A simple insertion that does not - * overwrite any text has startPos == endPos. - */ - - if ( !value ) - { - // easy case: the ol value was empty - value = cbs->text->ptr; - } - else - { - // merge the changes into the value - const char * const passwd = value; - int len = value.length(); - - len += strlen(cbs->text->ptr) + 1; // + new text (if any) + NUL - len -= cbs->endPos - cbs->startPos; // - text from affected region. - - char * newS = new char [len]; - char * dest = newS, - * insert = cbs->text->ptr; - - // Copy (old) text from passwd, up to the start posn of the change. - int i; - const char * p = passwd; - for (i = 0; i < cbs->startPos; ++i) - *dest++ = *p++; - - // Copy the text to be inserted). - while (*insert) - *dest++ = *insert++; - - // Finally, copy into newS any remaining text from passwd[endPos] on. - for (p = passwd + cbs->endPos; *p; ) - *dest++ = *p++; - *dest = 0; - - value = newS; - - delete[] newS; - } -} - -static void -wxTextWindowChangedProc (Widget w, XtPointer clientData, XtPointer ptr) -{ - if (!wxGetWindowFromTable(w)) - // Widget has been deleted! - return; - - wxTextCtrl *tw = (wxTextCtrl *) clientData; - tw->SetModified(TRUE); -} - -static void -wxTextWindowModifyProc (Widget w, XtPointer clientData, XmTextVerifyCallbackStruct *cbs) -{ - wxTextCtrl *tw = (wxTextCtrl *) clientData; - tw->m_processedDefault = FALSE; - - // First, do some stuff if it's a password control: in this case, we need - // to store the string inside the class because GetValue() can't retrieve - // it from the text ctrl. We do *not* do it in other circumstances because - // it would double the amount of memory needed. - - if ( tw->GetWindowStyleFlag() & wxTE_PASSWORD ) - { - MergeChangesIntoString(tw->m_value, cbs); - - if ( cbs->text->length > 0 ) - { - int i; - for (i = 0; i < cbs->text->length; ++i) - cbs->text->ptr[i] = '*'; - cbs->text->ptr[i] = '\0'; - } - } - - // If we're already within an OnChar, return: probably a programmatic - // insertion. - if (tw->m_tempCallbackStruct) - return; - - // Check for a backspace - if (cbs->startPos == (cbs->currInsert - 1)) - { - tw->DoSendEvents((void *)cbs, WXK_DELETE); - - return; - } - - // Pasting operation: let it through without calling OnChar - if (cbs->text->length > 1) - return; - - // Something other than text - if (cbs->text->ptr == NULL) - return; - - // normal key press - char ch = cbs->text->ptr[0]; - tw->DoSendEvents((void *)cbs, ch == '\n' ? '\r' : ch); -} - -static void -wxTextWindowGainFocusProc (Widget w, XtPointer clientData, XmAnyCallbackStruct *cbs) -{ - if (!wxGetWindowFromTable(w)) - return; - - wxTextCtrl *tw = (wxTextCtrl *) clientData; - wxFocusEvent event(wxEVT_SET_FOCUS, tw->GetId()); - event.SetEventObject(tw); - tw->GetEventHandler()->ProcessEvent(event); -} - -static void -wxTextWindowLoseFocusProc (Widget w, XtPointer clientData, XmAnyCallbackStruct *cbs) -{ - if (!wxGetWindowFromTable(w)) - return; - - wxTextCtrl *tw = (wxTextCtrl *) clientData; - wxFocusEvent event(wxEVT_KILL_FOCUS, tw->GetId()); - event.SetEventObject(tw); - tw->GetEventHandler()->ProcessEvent(event); -} - -static void wxTextWindowActivateProc(Widget w, XtPointer clientData, - XmAnyCallbackStruct *ptr) -{ - if (!wxGetWindowFromTable(w)) - return; - - wxTextCtrl *tw = (wxTextCtrl *) clientData; - - if (tw->InSetValue()) - return; - - wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER); - event.SetId(tw->GetId()); - event.SetEventObject(tw); - tw->ProcessCommand(event); -} - -void wxTextCtrl::OnCut(wxCommandEvent& WXUNUSED(event)) -{ - Cut(); -} - -void wxTextCtrl::OnCopy(wxCommandEvent& WXUNUSED(event)) -{ - Copy(); -} - -void wxTextCtrl::OnPaste(wxCommandEvent& WXUNUSED(event)) -{ - Paste(); -} - -void wxTextCtrl::OnUndo(wxCommandEvent& WXUNUSED(event)) -{ - Undo(); -} - -void wxTextCtrl::OnRedo(wxCommandEvent& WXUNUSED(event)) -{ - Redo(); -} - -void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event) -{ - event.Enable( CanCut() ); -} - -void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event) -{ - event.Enable( CanCopy() ); -} - -void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event) -{ - event.Enable( CanPaste() ); -} - -void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event) -{ - event.Enable( CanUndo() ); -} - -void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event) -{ - event.Enable( CanRedo() ); -} diff --git a/src/motif/timer.cpp b/src/motif/timer.cpp deleted file mode 100644 index 69b4917557..0000000000 --- a/src/motif/timer.cpp +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: wxTimer implementation -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" -#include "wx/app.h" -#include "wx/list.h" - -#include - -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) -#endif - -static wxList wxTimerList(wxKEY_INTEGER); - -void wxTimerCallback (wxTimer * timer) -{ - // Check to see if it's still on - if (!wxTimerList.Find((long)timer)) - return; - - if (timer->m_id == 0) - return; // Avoid to process spurious timer events - - if (!timer->m_oneShot) - timer->m_id = XtAppAddTimeOut ((XtAppContext) wxTheApp->GetAppContext(), timer->m_milli, - (XtTimerCallbackProc) wxTimerCallback, (XtPointer) timer); - else - timer->m_id = 0; - timer->Notify (); -} - -wxTimer::wxTimer() -{ - m_id = 0; - m_milli = 0 ; - m_id = 0; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); - wxTimerList.DeleteObject(this); -} - -bool wxTimer::Start(int milliseconds, bool mode) -{ - Stop(); - - m_oneShot = mode; - if (milliseconds < 0) - milliseconds = m_lastMilli; - - if (milliseconds <= 0) - return FALSE; - - m_lastMilli = m_milli = milliseconds; - - if (!wxTimerList.Find((long)this)) - wxTimerList.Append((long)this, this); - - m_id = XtAppAddTimeOut ((XtAppContext) wxTheApp->GetAppContext(), milliseconds, - (XtTimerCallbackProc) wxTimerCallback, (XtPointer) this); - return TRUE; -} - -void wxTimer::Stop() -{ - if (m_id > 0) - { - XtRemoveTimeOut (m_id); - m_id = 0; - } - m_milli = 0 ; -} - - diff --git a/src/motif/toolbar.cpp b/src/motif/toolbar.cpp deleted file mode 100644 index 319e564d81..0000000000 --- a/src/motif/toolbar.cpp +++ /dev/null @@ -1,606 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.cpp -// Purpose: wxToolBar -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "toolbar.h" -#endif - -#include "wx/wx.h" -#include "wx/app.h" -#include "wx/timer.h" -#include "wx/toolbar.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "wx/motif/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase) - -BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase) -END_EVENT_TABLE() -#endif - -static void wxToolButtonCallback (Widget w, XtPointer clientData, - XtPointer ptr); -static void wxToolButtonPopupCallback (Widget w, XtPointer client_data, - XEvent *event, Boolean *continue_to_dispatch); - -class wxToolBarTimer: public wxTimer -{ -public: - wxToolBarTimer() { } - virtual void Notify(); - - static Widget help_popup; - static Widget buttonWidget; - static wxString helpString; -}; - -static wxToolBarTimer* wxTheToolBarTimer = (wxToolBarTimer*) NULL; - -Widget wxToolBarTimer::help_popup = (Widget) 0; -Widget wxToolBarTimer::buttonWidget = (Widget) 0; -wxString wxToolBarTimer::helpString = ""; - -wxToolBar::wxToolBar(): - m_widgets(wxKEY_INTEGER) -{ - m_maxWidth = -1; - m_maxHeight = -1; - m_defaultWidth = 24; - m_defaultHeight = 22; -} - -bool wxToolBar::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_maxWidth = -1; - m_maxHeight = -1; - - m_defaultWidth = 24; - m_defaultHeight = 22; - SetName(name); - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - m_foregroundColour = parent->GetForegroundColour(); - m_windowStyle = style; - - SetParent(parent); - - if (parent) parent->AddChild(this); - - Widget parentWidget = (Widget) parent->GetClientWidget(); - - Widget toolbar = XtVaCreateManagedWidget("toolbar", - xmBulletinBoardWidgetClass, (Widget) parentWidget, - XmNmarginWidth, 0, - XmNmarginHeight, 0, - XmNresizePolicy, XmRESIZE_NONE, - NULL); -/* - Widget toolbar = XtVaCreateManagedWidget("toolbar", - xmFormWidgetClass, (Widget) m_clientWidget, - XmNtraversalOn, False, - XmNhorizontalSpacing, 0, - XmNverticalSpacing, 0, - XmNleftOffset, 0, - XmNrightOffset, 0, - XmNmarginWidth, 0, - XmNmarginHeight, 0, - NULL); -*/ - - m_mainWidget = (WXWidget) toolbar; - - m_windowFont = parent->GetFont(); - ChangeFont(FALSE); - - SetCanAddEventHandler(TRUE); - AttachWidget (parent, m_mainWidget, (WXWidget) NULL, pos.x, pos.y, size.x, size.y); - - ChangeBackgroundColour(); - - return TRUE; -} - -wxToolBar::~wxToolBar() -{ - delete wxTheToolBarTimer; - wxTheToolBarTimer = NULL; - ClearTools(); - DestroyPixmaps(); -} - -bool wxToolBar::CreateTools() -{ - if (m_tools.Number() == 0) - return FALSE; - - // Separator spacing - const int separatorSize = GetToolSeparation(); // 8; - wxSize margins = GetToolMargins(); - int marginX = margins.x; - int marginY = margins.y; - - int currentX = marginX; - int currentY = marginY; - - int buttonHeight = 0; - - int currentSpacing = 0; - - m_widgets.Clear(); - Widget prevButton = (Widget) 0; - wxNode* node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - - if (tool->m_toolStyle == wxTOOL_STYLE_SEPARATOR) - currentX += separatorSize; - else if (tool->m_bitmap1.Ok()) - { - Widget button = (Widget) 0; - - if (tool->m_isToggle) - { - button = XtVaCreateWidget("toggleButton", - xmToggleButtonWidgetClass, (Widget) m_mainWidget, - XmNx, currentX, XmNy, currentY, - // XmNpushButtonEnabled, True, - XmNmultiClick, XmMULTICLICK_KEEP, - XmNlabelType, XmPIXMAP, - NULL); - XtAddCallback ((Widget) button, XmNvalueChangedCallback, (XtCallbackProc) wxToolButtonCallback, - (XtPointer) this); - - XtVaSetValues ((Widget) button, - XmNselectColor, m_backgroundColour.AllocColour(XtDisplay((Widget) button)), - NULL); - } - else - { - button = XtVaCreateWidget("button", - xmPushButtonWidgetClass, (Widget) m_mainWidget, - XmNx, currentX, XmNy, currentY, - XmNpushButtonEnabled, True, - XmNmultiClick, XmMULTICLICK_KEEP, - XmNlabelType, XmPIXMAP, - NULL); - XtAddCallback (button, - XmNactivateCallback, (XtCallbackProc) wxToolButtonCallback, - (XtPointer) this); - } - - DoChangeBackgroundColour((WXWidget) button, m_backgroundColour, TRUE); - - // For each button, if there is a mask, we must create - // a new wxBitmap that has the correct background colour - // for the button. Otherwise the background will just be - // e.g. black if a transparent XPM has been loaded. - wxBitmap originalBitmap = tool->m_bitmap1; - - if (tool->m_bitmap1.GetMask()) - { - int backgroundPixel; - XtVaGetValues(button, XmNbackground, &backgroundPixel, - NULL); - - - wxColour col; - col.SetPixel(backgroundPixel); - - wxBitmap newBitmap = wxCreateMaskedBitmap(tool->m_bitmap1, col); - - tool->m_bitmap1 = newBitmap; - } - - // Create a selected/toggled bitmap. If there isn't a m_bitmap2, - // we need to create it (with a darker, selected background) - int backgroundPixel; - if (tool->m_isToggle) - XtVaGetValues(button, XmNselectColor, &backgroundPixel, - NULL); - else - XtVaGetValues(button, XmNarmColor, &backgroundPixel, - NULL); - - wxColour col; - col.SetPixel(backgroundPixel); - - if (tool->m_bitmap2.Ok() && tool->m_bitmap2.GetMask()) - { - // Use what's there - wxBitmap newBitmap = wxCreateMaskedBitmap(tool->m_bitmap2, col); - tool->m_bitmap2 = newBitmap; - } - else - { - // Use unselected bitmap - if (originalBitmap.GetMask()) - { - wxBitmap newBitmap = wxCreateMaskedBitmap(originalBitmap, col); - tool->m_bitmap2 = newBitmap; - } - else - tool->m_bitmap2 = tool->m_bitmap1; - } - - Pixmap pixmap = (Pixmap) tool->m_bitmap1.GetPixmap(); - Pixmap insensPixmap = (Pixmap) tool->m_bitmap1.GetInsensPixmap(); - - if (tool->m_isToggle) - { - // Toggle button - Pixmap pixmap2 = (Pixmap) 0; - Pixmap insensPixmap2 = (Pixmap) 0; - - // If there's a bitmap for the toggled state, use it, - // otherwise generate one. - if (tool->m_bitmap2.Ok()) - { - pixmap2 = (Pixmap) tool->m_bitmap2.GetPixmap(); - insensPixmap2 = (Pixmap) tool->m_bitmap2.GetInsensPixmap(); - } - else - { - pixmap2 = (Pixmap) tool->m_bitmap1.GetArmPixmap(button); - insensPixmap2 = XCreateInsensitivePixmap((Display*) wxGetDisplay(), pixmap2); - m_pixmaps.Append((wxObject*) insensPixmap2); // Store for later deletion - } - XtVaSetValues (button, - XmNindicatorOn, False, - XmNshadowThickness, 2, - // XmNborderWidth, 0, - // XmNspacing, 0, - XmNmarginWidth, 0, - XmNmarginHeight, 0, - XmNfillOnSelect, True, - XmNlabelPixmap, pixmap, - XmNselectPixmap, pixmap2, - XmNlabelInsensitivePixmap, insensPixmap, - XmNselectInsensitivePixmap, insensPixmap2, - XmNlabelType, XmPIXMAP, - NULL); - } - else - { - Pixmap pixmap2 = (Pixmap) 0; - - // If there's a bitmap for the armed state, use it, - // otherwise generate one. - if (tool->m_bitmap2.Ok()) - { - pixmap2 = (Pixmap) tool->m_bitmap2.GetPixmap(); - } - else - { - pixmap2 = (Pixmap) tool->m_bitmap1.GetArmPixmap(button); - - } - // Normal button - XtVaSetValues(button, - XmNlabelPixmap, pixmap, - XmNlabelInsensitivePixmap, insensPixmap, - XmNarmPixmap, pixmap2, - NULL); - } - XtManageChild(button); - - Dimension width, height; - XtVaGetValues(button, XmNwidth, & width, XmNheight, & height, - NULL); - currentX += width + marginX; - buttonHeight = wxMax(buttonHeight, height); - - XtAddEventHandler (button, EnterWindowMask | LeaveWindowMask, - False, wxToolButtonPopupCallback, (XtPointer) this); - m_widgets.Append(tool->m_index, (wxObject*) button); - - prevButton = button; - currentSpacing = 0; - } - node = node->Next(); - } - - SetSize(-1, -1, currentX, buttonHeight + 2*marginY); - - return TRUE; -} - -void wxToolBar::SetToolBitmapSize(const wxSize& size) -{ - // TODO not necessary? - m_defaultWidth = size.x; m_defaultHeight = size.y; -} - -wxSize wxToolBar::GetMaxSize() const -{ - int w, h; - GetSize(& w, & h); - - return wxSize(w, h); -} - -// The button size is bigger than the bitmap size -wxSize wxToolBar::GetToolSize() const -{ - // TODO not necessary? - return wxSize(m_defaultWidth + 8, m_defaultHeight + 7); -} - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_enabled = enable; - - WXWidget widget = FindWidgetForIndex(tool->m_index); - if (widget == (WXWidget) 0) - return; - - XtSetSensitive((Widget) widget, (Boolean) enable); - } -} - -void wxToolBar::ToggleTool(int toolIndex, bool toggle) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - { - tool->m_toggleState = toggle; - - WXWidget widget = FindWidgetForIndex(tool->m_index); - if (widget == (WXWidget) 0) - return; - - XmToggleButtonSetState((Widget) widget, (Boolean) toggle, False); - } - } -} - -void wxToolBar::ClearTools() -{ - wxNode* node = m_widgets.First(); - while (node) - { - Widget button = (Widget) node->Data(); - XtDestroyWidget(button); - node = node->Next(); - } - m_widgets.Clear(); - DestroyPixmaps(); - - wxToolBarBase::ClearTools(); -} - -void wxToolBar::DestroyPixmaps() -{ - wxNode* node = m_pixmaps.First(); - while (node) - { - Pixmap pixmap = (Pixmap) node->Data(); - XmDestroyPixmap (DefaultScreenOfDisplay ((Display*) GetXDisplay()), pixmap); - node = node->Next(); - } - m_pixmaps.Clear(); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. - -wxToolBarTool *wxToolBar::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, const wxString& helpString1, const wxString& helpString2) -{ - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, wxNullBitmap, toggle, xPos, yPos, helpString1, helpString2); - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - wxSize size = GetToolSize(); - tool->SetSize(size.x, size.y); - - m_tools.Append((long)index, tool); - return tool; -} - -int wxToolBar::FindIndexForWidget(WXWidget w) -{ - wxNode* node = m_widgets.First(); - while (node) - { - WXWidget widget = (WXWidget) node->Data(); - if (widget == w) - return (int) node->GetKeyInteger(); - node = node->Next(); - } - return -1; -} - -WXWidget wxToolBar::FindWidgetForIndex(int index) -{ - wxNode* node = m_widgets.Find((long) index); - if (!node) - return (WXWidget) 0; - else - return (WXWidget) node->Data(); -} - -WXWidget wxToolBar::GetTopWidget() const -{ - return m_mainWidget; -} - -WXWidget wxToolBar::GetClientWidget() const -{ - return m_mainWidget; -} - -WXWidget wxToolBar::GetMainWidget() const -{ - return m_mainWidget; -} - - -void wxToolButtonCallback (Widget w, XtPointer clientData, - XtPointer ptr) -{ - wxToolBar *toolBar = (wxToolBar *) clientData; - int index = toolBar->FindIndexForWidget((WXWidget) w); - - if (index != -1) - { - wxNode *node = toolBar->GetTools().Find((long)index); - if (!node) - return; - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - tool->m_toggleState = !tool->m_toggleState; - - (void) toolBar->OnLeftClick(index, tool->m_toggleState); - } - -} - - -static void wxToolButtonPopupCallback (Widget w, XtPointer client_data, - XEvent *event, Boolean *continue_to_dispatch) -{ - // TODO: retrieve delay before popping up tooltip from wxSystemSettings. - int delayMilli = 800; - wxToolBar* toolBar = (wxToolBar*) client_data; - - int index = toolBar->FindIndexForWidget((WXWidget) w); - - if (index != -1) - { - wxNode *node = toolBar->GetTools().Find((long)index); - if (!node) - return; - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - wxString str(toolBar->GetToolShortHelp(index)); - if (str.IsNull() || str == "") - return; - - if (!wxTheToolBarTimer) - wxTheToolBarTimer = new wxToolBarTimer; - - wxToolBarTimer::buttonWidget = w; - wxToolBarTimer::helpString = str; - - - /************************************************************/ - /* Popup help label */ - /************************************************************/ - if (event->type == EnterNotify) - { - if (wxToolBarTimer::help_popup != (Widget) 0) - { - XtDestroyWidget (wxToolBarTimer::help_popup); - XtPopdown (wxToolBarTimer::help_popup); - } - wxToolBarTimer::help_popup = (Widget) 0; - - // One shot - wxTheToolBarTimer->Start(delayMilli, TRUE); - - } - /************************************************************/ - /* Popdown help label */ - /************************************************************/ - else if (event->type == LeaveNotify) - { - if (wxTheToolBarTimer) - wxTheToolBarTimer->Stop(); - if (wxToolBarTimer::help_popup != (Widget) 0) - { - XtDestroyWidget (wxToolBarTimer::help_popup); - XtPopdown (wxToolBarTimer::help_popup); - } - wxToolBarTimer::help_popup = (Widget) 0; - } - } -} - -void wxToolBarTimer::Notify() -{ - Position x, y; - - /************************************************************/ - /* Create shell without window decorations */ - /************************************************************/ - help_popup = XtVaCreatePopupShell ("shell", - overrideShellWidgetClass, (Widget) wxTheApp->GetTopLevelWidget(), - NULL); - - /************************************************************/ - /* Get absolute position on display of toolbar button */ - /************************************************************/ - XtTranslateCoords (buttonWidget, - (Position) 0, - (Position) 0, - &x, &y); - - // Move the tooltip more or less above the button - int yOffset = 20; // TODO: What should be really? - y -= yOffset; - if (y < yOffset) y = 0; - - /************************************************************/ - /* Set the position of the help popup */ - /************************************************************/ - XtVaSetValues (help_popup, - XmNx, (Position) x, - XmNy, (Position) y, - NULL); - - /************************************************************/ - /* Create help label */ - /************************************************************/ - XmString text = XmStringCreateSimple ((char*) (const char*) helpString); - XtVaCreateManagedWidget ("help_label", - xmLabelWidgetClass, help_popup, - XmNlabelString, text, - XtVaTypedArg, - XmNforeground, XtRString, "black", - strlen("black")+1, - XtVaTypedArg, - XmNbackground, XtRString, "LightGoldenrod", - strlen("LightGoldenrod")+1, - NULL); - XmStringFree (text); - - /************************************************************/ - /* Popup help label */ - /************************************************************/ - XtPopup (help_popup, XtGrabNone); -} - diff --git a/src/motif/utils.cpp b/src/motif/utils.cpp deleted file mode 100644 index 47e93405ef..0000000000 --- a/src/motif/utils.cpp +++ /dev/null @@ -1,1184 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: Various utilities -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/msgdlg.h" -#include "wx/cursor.h" -#include "wx/window.h" // for wxTopLevelWindows - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if (defined(__SUNCC__) || defined(__CLCC__)) - #include -#endif - -#include - -#include "wx/unix/execute.h" - -#include "wx/motif/private.h" - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -// Yuck this is really BOTH site and platform dependent -// so we should use some other strategy! -#ifdef sun - #define DEFAULT_XRESOURCE_DIR "/usr/openwin/lib/app-defaults" -#else - #define DEFAULT_XRESOURCE_DIR "/usr/lib/X11/app-defaults" -#endif - -static char *GetIniFile (char *dest, const char *filename); - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// async event processing -// ---------------------------------------------------------------------------- - -// Consume all events until no more left -void wxFlushEvents() -{ - Display *display = (Display*) wxGetDisplay(); - - XSync (display, FALSE); - XEvent event; - // XtAppPending returns availability of events AND timers/inputs, which - // are processed via callbacks, so XtAppNextEvent will not return if - // there are no events. So added '& XtIMXEvent' - Sergey. - while (XtAppPending ((XtAppContext) wxTheApp->GetAppContext()) & XtIMXEvent) - { - XFlush (XtDisplay ((Widget) wxTheApp->GetTopLevelWidget())); - // Jan Lessner: works better when events are non-X events - XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMXEvent); - } -} - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -bool wxCheckForInterrupt(wxWindow *wnd) -{ - wxCHECK_MSG( wnd, FALSE, "NULL window in wxCheckForInterrupt" ); - - Display *dpy=(Display*) wnd->GetXDisplay(); - Window win=(Window) wnd->GetXWindow(); - XEvent event; - XFlush(dpy); - if (wnd->GetMainWidget()) - { - XmUpdateDisplay((Widget)(wnd->GetMainWidget())); - } - - bool hadEvents = FALSE; - while( XCheckMaskEvent(dpy, - ButtonPressMask|ButtonReleaseMask|ButtonMotionMask| - PointerMotionMask|KeyPressMask|KeyReleaseMask, - &event) ) - { - if ( event.xany.window == win ) - { - hadEvents = TRUE; - - XtDispatchEvent(&event); - } - } - - return hadEvents; -} - -// ---------------------------------------------------------------------------- -// wxExecute stuff -// ---------------------------------------------------------------------------- - -static void xt_notify_end_process(XtPointer data, int *fid, - XtInputId *id) -{ - wxEndProcessData *proc_data = (wxEndProcessData *)data; - - wxHandleProcessTermination(proc_data); - - // VZ: I think they should be the same... - wxASSERT( (int)*id == proc_data->tag ); - - XtRemoveInput(*id); -} - -int wxAddProcessCallback(wxEndProcessData *proc_data, int fd) -{ - XtInputId id = XtAppAddInput((XtAppContext) wxTheApp->GetAppContext(), - fd, - (XtPointer *) XtInputReadMask, - (XtInputCallbackProc) xt_notify_end_process, - (XtPointer) proc_data); - - return (int)id; -} - -// ---------------------------------------------------------------------------- -// misc -// ---------------------------------------------------------------------------- - -// Emit a beeeeeep -void wxBell() -{ - // Use current setting for the bell - XBell ((Display*) wxGetDisplay(), 0); -} - -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - // FIXME TODO - // This code is WRONG!! Does NOT return the - // Motif version of the libs but the X protocol - // version! - Display *display = XtDisplay ((Widget) wxTheApp->GetTopLevelWidget()); - if (majorVsn) - *majorVsn = ProtocolVersion (display); - if (minorVsn) - *minorVsn = ProtocolRevision (display); - - return wxMOTIF_X; -} - -// ---------------------------------------------------------------------------- -// Reading and writing resources (eg WIN.INI, .Xdefaults) -// ---------------------------------------------------------------------------- - -// Read $HOME for what it says is home, if not -// read $USER or $LOGNAME for user name else determine -// the Real User, then determine the Real home dir. -static char * GetIniFile (char *dest, const char *filename) -{ - char *home = NULL; - if (filename && wxIsAbsolutePath(filename)) - { - strcpy(dest, filename); - } - else if ((home = wxGetUserHome("")) != NULL) - { - strcpy(dest, home); - if (dest[strlen(dest) - 1] != '/') - strcat (dest, "/"); - if (filename == NULL) - { - if ((filename = getenv ("XENVIRONMENT")) == NULL) - filename = ".Xdefaults"; - } - else if (*filename != '.') - strcat (dest, "."); - strcat (dest, filename); - } else - { - dest[0] = '\0'; - } - return dest; -} - -#if wxUSE_RESOURCES - -static char *GetResourcePath(char *buf, const char *name, bool create = FALSE) -{ - if (create && wxFileExists (name) ) { - strcpy(buf, name); - return buf; // Exists so ... - } - - if (*name == '/') - strcpy(buf, name); - else { - // Put in standard place for resource files if not absolute - strcpy (buf, DEFAULT_XRESOURCE_DIR); - strcat (buf, "/"); - strcat (buf, (const char*) wxFileNameFromPath (name)); - } - - if (create) { - // Touch the file to create it - FILE *fd = fopen (buf, "w"); - if (fd) fclose (fd); - } - return buf; -} - -/* -* We have a cache for writing different resource files, -* which will only get flushed when we call wxFlushResources(). -* Build up a list of resource databases waiting to be written. -* -*/ - -wxList wxResourceCache (wxKEY_STRING); - -void -wxFlushResources (void) -{ - char nameBuffer[512]; - - wxNode *node = wxResourceCache.First (); - while (node) - { - const char *file = node->GetKeyString(); - // If file doesn't exist, create it first. - (void)GetResourcePath(nameBuffer, file, TRUE); - - XrmDatabase database = (XrmDatabase) node->Data (); - XrmPutFileDatabase (database, nameBuffer); - XrmDestroyDatabase (database); - wxNode *next = node->Next (); - delete node; - node = next; - } -} - -static XrmDatabase wxResourceDatabase = 0; - -void wxXMergeDatabases (wxApp * theApp, Display * display); - -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file) -{ - char buffer[500]; - - (void) GetIniFile (buffer, file); - - XrmDatabase database; - wxNode *node = wxResourceCache.Find (buffer); - if (node) - database = (XrmDatabase) node->Data (); - else - { - database = XrmGetFileDatabase (buffer); - wxResourceCache.Append (buffer, (wxObject *) database); - } - - char resName[300]; - strcpy (resName, (const char*) section); - strcat (resName, "."); - strcat (resName, (const char*) entry); - - XrmPutStringResource (&database, resName, value); - return TRUE; -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) -{ - if (!wxResourceDatabase) - { - Display *display = (Display*) wxGetDisplay(); - wxXMergeDatabases (wxTheApp, display); - } - - XrmDatabase database; - - if (file != "") - { - char buffer[500]; - - // Is this right? Trying to get it to look in the user's - // home directory instead of current directory -- JACS - (void) GetIniFile (buffer, file); - - wxNode *node = wxResourceCache.Find (buffer); - if (node) - database = (XrmDatabase) node->Data (); - else - { - database = XrmGetFileDatabase (buffer); - wxResourceCache.Append (buffer, (wxObject *) database); - } - } - else - database = wxResourceDatabase; - - XrmValue xvalue; - char *str_type[20]; - char buf[150]; - strcpy (buf, section); - strcat (buf, "."); - strcat (buf, entry); - - Bool success = XrmGetResource (database, buf, "*", str_type, - &xvalue); - // Try different combinations of upper/lower case, just in case... - if (!success) - { - buf[0] = (isupper (buf[0]) ? tolower (buf[0]) : toupper (buf[0])); - success = XrmGetResource (database, buf, "*", str_type, - &xvalue); - } - if (success) - { - if (*value) - delete[] *value; - - *value = new char[xvalue.size + 1]; - strncpy (*value, xvalue.addr, (int) xvalue.size); - return TRUE; - } - return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (float)strtod(s, NULL); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - // Handle True, False here - // True, Yes, Enables, Set or Activated - if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A') - *value = TRUE; - // False, No, Disabled, Reset, Cleared, Deactivated - else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C') - *value = FALSE; - // Handle as Integer - else - *value = (int) strtol (s, NULL, 10); - delete[] s; - return TRUE; - } - else - return FALSE; -} - -void wxXMergeDatabases (wxApp * theApp, Display * display) -{ - XrmDatabase homeDB, serverDB, applicationDB; - char filenamebuf[1024]; - - char *filename = &filenamebuf[0]; - char *environment; - wxString classname = theApp->GetClassName(); - char name[256]; - (void) strcpy (name, "/usr/lib/X11/app-defaults/"); - (void) strcat (name, (const char*) classname); - - /* Get application defaults file, if any */ - applicationDB = XrmGetFileDatabase (name); - (void) XrmMergeDatabases (applicationDB, &wxResourceDatabase); - - /* Merge server defaults, created by xrdb, loaded as a property of the root - * window when the server initializes and loaded into the display - * structure on XOpenDisplay; - * if not defined, use .Xdefaults - */ - - if (XResourceManagerString (display) != NULL) - { - serverDB = XrmGetStringDatabase (XResourceManagerString (display)); - } - else - { - (void) GetIniFile (filename, NULL); - serverDB = XrmGetFileDatabase (filename); - } - XrmMergeDatabases (serverDB, &wxResourceDatabase); - - /* Open XENVIRONMENT file, or if not defined, the .Xdefaults, - * and merge into existing database - */ - - if ((environment = getenv ("XENVIRONMENT")) == NULL) - { - size_t len; - environment = GetIniFile (filename, NULL); - len = strlen (environment); - wxString hostname = wxGetHostName(); - if ( !!hostname ) - strncat(environment, hostname, 1024 - len); - } - homeDB = XrmGetFileDatabase (environment); - XrmMergeDatabases (homeDB, &wxResourceDatabase); -} - -#if 0 - -/* -* Not yet used but may be useful. -* -*/ -void -wxSetDefaultResources (const Widget w, const char **resourceSpec, const char *name) -{ - int i; - Display *dpy = XtDisplay (w); // Retrieve the display pointer - - XrmDatabase rdb = NULL; // A resource data base - - // Create an empty resource database - rdb = XrmGetStringDatabase (""); - - // Add the Component resources, prepending the name of the component - - i = 0; - while (resourceSpec[i] != NULL) - { - char buf[1000]; - - sprintf (buf, "*%s%s", name, resourceSpec[i++]); - XrmPutLineResource (&rdb, buf); - } - - // Merge them into the Xt database, with lowest precendence - - if (rdb) - { -#if (XlibSpecificationRelease>=5) - XrmDatabase db = XtDatabase (dpy); - XrmCombineDatabase (rdb, &db, FALSE); -#else - XrmMergeDatabases (dpy->db, &rdb); - dpy->db = rdb; -#endif - } -} -#endif -// 0 - -#endif // wxUSE_RESOURCES - -// ---------------------------------------------------------------------------- -// busy cursor stuff -// ---------------------------------------------------------------------------- - -static int wxBusyCursorCount = 0; - -// Helper function -static void -wxXSetBusyCursor (wxWindow * win, wxCursor * cursor) -{ - Display *display = (Display*) win->GetXDisplay(); - - Window xwin = (Window) win->GetXWindow(); - if (!xwin) - return; - - XSetWindowAttributes attrs; - - if (cursor) - { - attrs.cursor = (Cursor) cursor->GetXCursor(display); - } - else - { - // Restore old cursor - if (win->GetCursor()->Ok()) - attrs.cursor = (Cursor) win->GetCursor()->GetXCursor(display); - else - attrs.cursor = None; - } - if (xwin) - XChangeWindowAttributes (display, xwin, CWCursor, &attrs); - - XFlush (display); - - for(wxNode *node = win->GetChildren().First (); node; node = node->Next()) - { - wxWindow *child = (wxWindow *) node->Data (); - wxXSetBusyCursor (child, cursor); - } -} - -// Set the cursor to the busy cursor for all windows -void wxBeginBusyCursor(wxCursor *cursor) -{ - wxBusyCursorCount++; - if (wxBusyCursorCount == 1) - { - for(wxNode *node = wxTopLevelWindows.First (); node; node = node->Next()) - { - wxWindow *win = (wxWindow *) node->Data (); - wxXSetBusyCursor (win, cursor); - } - } -} - -// Restore cursor to normal -void wxEndBusyCursor() -{ - if (wxBusyCursorCount == 0) - return; - - wxBusyCursorCount--; - if (wxBusyCursorCount == 0) - { - for(wxNode *node = wxTopLevelWindows.First (); node; node = node->Next()) - { - wxWindow *win = (wxWindow *) node->Data (); - wxXSetBusyCursor (win, NULL); - } - } -} - -// TRUE if we're between the above two calls -bool wxIsBusy() -{ - return (wxBusyCursorCount > 0); -} - -// ---------------------------------------------------------------------------- -// display info -// ---------------------------------------------------------------------------- - -void wxGetMousePosition( int* x, int* y ) -{ - XMotionEvent xev; - Window root, child; - XQueryPointer((Display*) wxGetDisplay(), - DefaultRootWindow((Display*) wxGetDisplay()), - &root, &child, - &(xev.x_root), &(xev.y_root), - &(xev.x), &(xev.y), - &(xev.state)); - *x = xev.x_root; - *y = xev.y_root; -}; - -// Return TRUE if we have a colour display -bool wxColourDisplay() -{ - return wxDisplayDepth() > 1; -} - -// Returns depth of screen -int wxDisplayDepth() -{ - Display *dpy = (Display*) wxGetDisplay(); - - return DefaultDepth (dpy, DefaultScreen (dpy)); -} - -// Get size of display -void wxDisplaySize(int *width, int *height) -{ - Display *dpy = (Display*) wxGetDisplay(); - - if ( width ) - *width = DisplayWidth (dpy, DefaultScreen (dpy)); - if ( height ) - *height = DisplayHeight (dpy, DefaultScreen (dpy)); -} - -// Configurable display in Motif -static WXDisplay *gs_currentDisplay = NULL; -static wxString gs_displayName; - -WXDisplay *wxGetDisplay() -{ - if (gs_currentDisplay) - return gs_currentDisplay; - - if (wxTheApp && wxTheApp->GetTopLevelWidget()) - return XtDisplay ((Widget) wxTheApp->GetTopLevelWidget()); - else if (wxTheApp) - return wxTheApp->GetInitialDisplay(); - else - return (WXDisplay*) NULL; -} - -bool wxSetDisplay(const wxString& display_name) -{ - gs_displayName = display_name; - - if ( !display_name ) - { - gs_currentDisplay = NULL; - - return TRUE; - } - else - { - Cardinal argc = 0; - - Display *display = XtOpenDisplay((XtAppContext) wxTheApp->GetAppContext(), - (const char*) display_name, - (const char*) wxTheApp->GetAppName(), - (const char*) wxTheApp->GetClassName(), - NULL, -#if XtSpecificationRelease < 5 - 0, &argc, -#else - 0, (int *)&argc, -#endif - NULL); - - if (display) - { - gs_currentDisplay = (WXDisplay*) display; - return TRUE; - } - else - return FALSE; - } - - return FALSE; -} - -wxString wxGetDisplayName() -{ - return gs_displayName; -} - -// ---------------------------------------------------------------------------- -// accelerators -// ---------------------------------------------------------------------------- - -// Find the letter corresponding to the mnemonic, for Motif -char wxFindMnemonic (const char *s) -{ - char mnem = 0; - int len = strlen (s); - int i; - for (i = 0; i < len; i++) - { - if (s[i] == '&') - { - // Carefully handle && - if ((i + 1) <= len && s[i + 1] == '&') - i++; - else - { - mnem = s[i + 1]; - break; - } - } - } - return mnem; -} - -char * wxFindAccelerator (char *s) -{ - // The accelerator text is after the \t char. - while (*s && *s != '\t') - s++; - if (*s == '\0') - return (NULL); - s++; - /* - Now we need to format it as X standard: - - input output - - F7 --> F7 - Ctrl+N --> CtrlN - Alt+k --> Metak - Ctrl+Shift+A --> Ctrl ShiftA - - */ - - wxBuffer[0] = '\0'; - char *tmp = copystring (s); - s = tmp; - char *p = s; - - while (1) - { - while (*p && *p != '+') - p++; - if (*p) - { - *p = '\0'; - if (wxBuffer[0]) - strcat (wxBuffer, " "); - if (strcmp (s, "Alt")) - strcat (wxBuffer, s); - else - strcat (wxBuffer, "Meta"); - s = p + 1; - p = s; - } - else - { - strcat (wxBuffer, ""); - strcat (wxBuffer, s); - break; - } - } - delete[]tmp; - return wxBuffer; -} - -XmString wxFindAcceleratorText (char *s) -{ - // The accelerator text is after the \t char. - while (*s && *s != '\t') - s++; - if (*s == '\0') - return (NULL); - s++; - XmString text = XmStringCreateSimple (s); - return text; -} - -// ---------------------------------------------------------------------------- -// keycode translations -// ---------------------------------------------------------------------------- - -#include - -// FIXME what about tables?? - -int wxCharCodeXToWX(KeySym keySym) -{ - int id; - switch (keySym) - { - case XK_Shift_L: - case XK_Shift_R: - id = WXK_SHIFT; break; - case XK_Control_L: - case XK_Control_R: - id = WXK_CONTROL; break; - case XK_BackSpace: - id = WXK_BACK; break; - case XK_Delete: - id = WXK_DELETE; break; - case XK_Clear: - id = WXK_CLEAR; break; - case XK_Tab: - id = WXK_TAB; break; - case XK_numbersign: - id = '#'; break; - case XK_Return: - id = WXK_RETURN; break; - case XK_Escape: - id = WXK_ESCAPE; break; - case XK_Pause: - case XK_Break: - id = WXK_PAUSE; break; - case XK_Num_Lock: - id = WXK_NUMLOCK; break; - case XK_Scroll_Lock: - id = WXK_SCROLL; break; - - case XK_Home: - id = WXK_HOME; break; - case XK_End: - id = WXK_END; break; - case XK_Left: - id = WXK_LEFT; break; - case XK_Right: - id = WXK_RIGHT; break; - case XK_Up: - id = WXK_UP; break; - case XK_Down: - id = WXK_DOWN; break; - case XK_Next: - id = WXK_NEXT; break; - case XK_Prior: - id = WXK_PRIOR; break; - case XK_Menu: - id = WXK_MENU; break; - case XK_Select: - id = WXK_SELECT; break; - case XK_Cancel: - id = WXK_CANCEL; break; - case XK_Print: - id = WXK_PRINT; break; - case XK_Execute: - id = WXK_EXECUTE; break; - case XK_Insert: - id = WXK_INSERT; break; - case XK_Help: - id = WXK_HELP; break; - - case XK_KP_Multiply: - id = WXK_MULTIPLY; break; - case XK_KP_Add: - id = WXK_ADD; break; - case XK_KP_Subtract: - id = WXK_SUBTRACT; break; - case XK_KP_Divide: - id = WXK_DIVIDE; break; - case XK_KP_Decimal: - id = WXK_DECIMAL; break; - case XK_KP_Equal: - id = '='; break; - case XK_KP_Space: - id = ' '; break; - case XK_KP_Tab: - id = WXK_TAB; break; - case XK_KP_Enter: - id = WXK_RETURN; break; - case XK_KP_0: - id = WXK_NUMPAD0; break; - case XK_KP_1: - id = WXK_NUMPAD1; break; - case XK_KP_2: - id = WXK_NUMPAD2; break; - case XK_KP_3: - id = WXK_NUMPAD3; break; - case XK_KP_4: - id = WXK_NUMPAD4; break; - case XK_KP_5: - id = WXK_NUMPAD5; break; - case XK_KP_6: - id = WXK_NUMPAD6; break; - case XK_KP_7: - id = WXK_NUMPAD7; break; - case XK_KP_8: - id = WXK_NUMPAD8; break; - case XK_KP_9: - id = WXK_NUMPAD9; break; - case XK_F1: - id = WXK_F1; break; - case XK_F2: - id = WXK_F2; break; - case XK_F3: - id = WXK_F3; break; - case XK_F4: - id = WXK_F4; break; - case XK_F5: - id = WXK_F5; break; - case XK_F6: - id = WXK_F6; break; - case XK_F7: - id = WXK_F7; break; - case XK_F8: - id = WXK_F8; break; - case XK_F9: - id = WXK_F9; break; - case XK_F10: - id = WXK_F10; break; - case XK_F11: - id = WXK_F11; break; - case XK_F12: - id = WXK_F12; break; - case XK_F13: - id = WXK_F13; break; - case XK_F14: - id = WXK_F14; break; - case XK_F15: - id = WXK_F15; break; - case XK_F16: - id = WXK_F16; break; - case XK_F17: - id = WXK_F17; break; - case XK_F18: - id = WXK_F18; break; - case XK_F19: - id = WXK_F19; break; - case XK_F20: - id = WXK_F20; break; - case XK_F21: - id = WXK_F21; break; - case XK_F22: - id = WXK_F22; break; - case XK_F23: - id = WXK_F23; break; - case XK_F24: - id = WXK_F24; break; - default: - id = (keySym <= 255) ? (int)keySym : -1; - } - - return id; -} - -KeySym wxCharCodeWXToX(int id) -{ - KeySym keySym; - - switch (id) - { - case WXK_CANCEL: keySym = XK_Cancel; break; - case WXK_BACK: keySym = XK_BackSpace; break; - case WXK_TAB: keySym = XK_Tab; break; - case WXK_CLEAR: keySym = XK_Clear; break; - case WXK_RETURN: keySym = XK_Return; break; - case WXK_SHIFT: keySym = XK_Shift_L; break; - case WXK_CONTROL: keySym = XK_Control_L; break; - case WXK_MENU : keySym = XK_Menu; break; - case WXK_PAUSE: keySym = XK_Pause; break; - case WXK_ESCAPE: keySym = XK_Escape; break; - case WXK_SPACE: keySym = ' '; break; - case WXK_PRIOR: keySym = XK_Prior; break; - case WXK_NEXT : keySym = XK_Next; break; - case WXK_END: keySym = XK_End; break; - case WXK_HOME : keySym = XK_Home; break; - case WXK_LEFT : keySym = XK_Left; break; - case WXK_UP: keySym = XK_Up; break; - case WXK_RIGHT: keySym = XK_Right; break; - case WXK_DOWN : keySym = XK_Down; break; - case WXK_SELECT: keySym = XK_Select; break; - case WXK_PRINT: keySym = XK_Print; break; - case WXK_EXECUTE: keySym = XK_Execute; break; - case WXK_INSERT: keySym = XK_Insert; break; - case WXK_DELETE: keySym = XK_Delete; break; - case WXK_HELP : keySym = XK_Help; break; - case WXK_NUMPAD0: keySym = XK_KP_0; break; - case WXK_NUMPAD1: keySym = XK_KP_1; break; - case WXK_NUMPAD2: keySym = XK_KP_2; break; - case WXK_NUMPAD3: keySym = XK_KP_3; break; - case WXK_NUMPAD4: keySym = XK_KP_4; break; - case WXK_NUMPAD5: keySym = XK_KP_5; break; - case WXK_NUMPAD6: keySym = XK_KP_6; break; - case WXK_NUMPAD7: keySym = XK_KP_7; break; - case WXK_NUMPAD8: keySym = XK_KP_8; break; - case WXK_NUMPAD9: keySym = XK_KP_9; break; - case WXK_MULTIPLY: keySym = XK_KP_Multiply; break; - case WXK_ADD: keySym = XK_KP_Add; break; - case WXK_SUBTRACT: keySym = XK_KP_Subtract; break; - case WXK_DECIMAL: keySym = XK_KP_Decimal; break; - case WXK_DIVIDE: keySym = XK_KP_Divide; break; - case WXK_F1: keySym = XK_F1; break; - case WXK_F2: keySym = XK_F2; break; - case WXK_F3: keySym = XK_F3; break; - case WXK_F4: keySym = XK_F4; break; - case WXK_F5: keySym = XK_F5; break; - case WXK_F6: keySym = XK_F6; break; - case WXK_F7: keySym = XK_F7; break; - case WXK_F8: keySym = XK_F8; break; - case WXK_F9: keySym = XK_F9; break; - case WXK_F10: keySym = XK_F10; break; - case WXK_F11: keySym = XK_F11; break; - case WXK_F12: keySym = XK_F12; break; - case WXK_F13: keySym = XK_F13; break; - case WXK_F14: keySym = XK_F14; break; - case WXK_F15: keySym = XK_F15; break; - case WXK_F16: keySym = XK_F16; break; - case WXK_F17: keySym = XK_F17; break; - case WXK_F18: keySym = XK_F18; break; - case WXK_F19: keySym = XK_F19; break; - case WXK_F20: keySym = XK_F20; break; - case WXK_F21: keySym = XK_F21; break; - case WXK_F22: keySym = XK_F22; break; - case WXK_F23: keySym = XK_F23; break; - case WXK_F24: keySym = XK_F24; break; - case WXK_NUMLOCK: keySym = XK_Num_Lock; break; - case WXK_SCROLL: keySym = XK_Scroll_Lock; break; - default: keySym = id <= 255 ? (KeySym)id : 0; - } - - return keySym; -} - -// ---------------------------------------------------------------------------- -// Some colour manipulation routines -// ---------------------------------------------------------------------------- - -void wxHSVToXColor(wxHSV *hsv,XColor *rgb) -{ - int h = hsv->h; - int s = hsv->s; - int v = hsv->v; - int r, g, b; - int i, f; - int p, q, t; - s = (s * wxMAX_RGB) / wxMAX_SV; - v = (v * wxMAX_RGB) / wxMAX_SV; - if (h == 360) h = 0; - if (s == 0) { h = 0; r = g = b = v; } - i = h / 60; - f = h % 60; - p = v * (wxMAX_RGB - s) / wxMAX_RGB; - q = v * (wxMAX_RGB - s * f / 60) / wxMAX_RGB; - t = v * (wxMAX_RGB - s * (60 - f) / 60) / wxMAX_RGB; - switch (i) - { - case 0: r = v, g = t, b = p; break; - case 1: r = q, g = v, b = p; break; - case 2: r = p, g = v, b = t; break; - case 3: r = p, g = q, b = v; break; - case 4: r = t, g = p, b = v; break; - case 5: r = v, g = p, b = q; break; - } - rgb->red = r << 8; - rgb->green = g << 8; - rgb->blue = b << 8; -} - -void wxXColorToHSV(wxHSV *hsv,XColor *rgb) -{ - int r = rgb->red >> 8; - int g = rgb->green >> 8; - int b = rgb->blue >> 8; - int maxv = wxMax3(r, g, b); - int minv = wxMin3(r, g, b); - int h, s, v; - v = maxv; - if (maxv) s = (maxv - minv) * wxMAX_RGB / maxv; - else s = 0; - if (s == 0) h = 0; - else - { - int rc, gc, bc, hex; - rc = (maxv - r) * wxMAX_RGB / (maxv - minv); - gc = (maxv - g) * wxMAX_RGB / (maxv - minv); - bc = (maxv - b) * wxMAX_RGB / (maxv - minv); - if (r == maxv) { h = bc - gc, hex = 0; } - else if (g == maxv) { h = rc - bc, hex = 2; } - else if (b == maxv) { h = gc - rc, hex = 4; } - h = hex * 60 + (h * 60 / wxMAX_RGB); - if (h < 0) h += 360; - } - hsv->h = h; - hsv->s = (s * wxMAX_SV) / wxMAX_RGB; - hsv->v = (v * wxMAX_SV) / wxMAX_RGB; -} - -void wxAllocNearestColor(Display *d,Colormap cmp,XColor *xc) -{ - int llp; - - int screen = DefaultScreen(d); - int num_colors = DisplayCells(d,screen); - - XColor *color_defs = new XColor[num_colors]; - for(llp = 0;llp < num_colors;llp++) color_defs[llp].pixel = llp; - XQueryColors(d,cmp,color_defs,num_colors); - - wxHSV hsv_defs, hsv; - wxXColorToHSV(&hsv,xc); - - int diff, min_diff, pixel = 0; - - for(llp = 0;llp < num_colors;llp++) - { - wxXColorToHSV(&hsv_defs,&color_defs[llp]); - diff = wxSIGN(wxH_WEIGHT * (hsv.h - hsv_defs.h)) + - wxSIGN(wxS_WEIGHT * (hsv.s - hsv_defs.s)) + - wxSIGN(wxV_WEIGHT * (hsv.v - hsv_defs.v)); - if (llp == 0) min_diff = diff; - if (min_diff > diff) { min_diff = diff; pixel = llp; } - if (min_diff == 0) break; - } - - xc -> red = color_defs[pixel].red; - xc -> green = color_defs[pixel].green; - xc -> blue = color_defs[pixel].blue; - xc -> flags = DoRed | DoGreen | DoBlue; - if (!XAllocColor(d,cmp,xc)) - cout << "wxAllocNearestColor : Warning : Cannot find nearest color !\n"; - - delete[] color_defs; -} - -void wxAllocColor(Display *d,Colormap cmp,XColor *xc) -{ - if (!XAllocColor(d,cmp,xc)) - { - // cout << "wxAllocColor : Warning : Can not allocate color, attempt find nearest !\n"; - wxAllocNearestColor(d,cmp,xc); - } -} - - -// These functions duplicate those in wxWindow, but are needed -// for use outside of wxWindow (e.g. wxMenu, wxMenuBar). - -// Change a widget's foreground and background colours. - -void wxDoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour) -{ - // When should we specify the foreground, if it's calculated - // by wxComputeColours? - // Solution: say we start with the default (computed) foreground colour. - // If we call SetForegroundColour explicitly for a control or window, - // then the foreground is changed. - // Therefore SetBackgroundColour computes the foreground colour, and - // SetForegroundColour changes the foreground colour. The ordering is - // important. - - XtVaSetValues ((Widget) widget, - XmNforeground, foregroundColour.AllocColour(XtDisplay((Widget) widget)), - NULL); -} - -void wxDoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour) -{ - wxComputeColours (XtDisplay((Widget) widget), & backgroundColour, - (wxColour*) NULL); - - XtVaSetValues ((Widget) widget, - XmNbackground, g_itemColors[wxBACK_INDEX].pixel, - XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel, - XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel, - XmNforeground, g_itemColors[wxFORE_INDEX].pixel, - NULL); - - if (changeArmColour) - XtVaSetValues ((Widget) widget, - XmNarmColor, g_itemColors[wxSELE_INDEX].pixel, - NULL); -} - diff --git a/src/motif/verti.xbm b/src/motif/verti.xbm deleted file mode 100644 index 2dd9dc4c05..0000000000 --- a/src/motif/verti.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define verti_width 15 -#define verti_height 15 -static char verti_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/motif/wave.cpp b/src/motif/wave.cpp deleted file mode 100644 index 5368adbdd0..0000000000 --- a/src/motif/wave.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave class implementation: optional -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/motif/wave.h" - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(sFileName, isResource); -} - - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - // TODO - - return FALSE; -} - -bool wxWave::Play(bool async, bool looped) const -{ - if (!IsOk()) - return FALSE; - - // TODO - return FALSE; -} - -bool wxWave::Free() -{ - // TODO - return FALSE; -} - - diff --git a/src/motif/window.cpp b/src/motif/window.cpp deleted file mode 100644 index 0cae0d05d1..0000000000 --- a/src/motif/window.cpp +++ /dev/null @@ -1,2799 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows.cpp -// Purpose: wxWindow -// Author: Julian Smart -// Modified by: -// Created: 17/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "window.h" -#endif - -#include "wx/setup.h" -#include "wx/menu.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/panel.h" -#include "wx/layout.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/frame.h" -#include "wx/scrolwin.h" - -#include "wx/menuitem.h" -#include "wx/log.h" - -#include "wx/listimpl.cpp" - -#if wxUSE_DRAG_AND_DROP - #include "wx/dnd.h" -#endif - -#include - -#include -#include -#include -#include -#include - -#include "wx/motif/private.h" - -#include - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -static const int SCROLL_MARGIN = 4; - -// ---------------------------------------------------------------------------- -// global variables for this module -// ---------------------------------------------------------------------------- - -static wxHashTable *gs_wxWidgetHashTable; - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -static void wxCanvasRepaintProc(Widget, XtPointer, XmDrawingAreaCallbackStruct * cbs); -static void wxCanvasInputEvent(Widget drawingArea, XtPointer data, XmDrawingAreaCallbackStruct * cbs); -static void wxCanvasMotionEvent(Widget, XButtonEvent * event); -static void wxCanvasEnterLeave(Widget drawingArea, XtPointer clientData, XCrossingEvent * event); -static void wxScrollBarCallback(Widget widget, XtPointer clientData, - XmScaleCallbackStruct *cbs); -static void wxPanelItemEventHandler(Widget wid, - XtPointer client_data, - XEvent* event, - Boolean *continueToDispatch); - -// unused for now -#if 0 - -// Helper function for 16-bit fonts -static int str16len(const char *s) -{ - int count = 0; - - while (s[0] && s[1]) { - count++; - s += 2; - } - - return count; -} - -#endif // 0 - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#define event_left_is_down(x) ((x)->xbutton.state & Button1Mask) -#define event_middle_is_down(x) ((x)->xbutton.state & Button2Mask) -#define event_right_is_down(x) ((x)->xbutton.state & Button3Mask) - -// ---------------------------------------------------------------------------- -// event tables -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler) - - BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_IDLE(wxWindow::OnIdle) - END_EVENT_TABLE() -#endif // USE_SHARED_LIBRARY - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// list types -// ---------------------------------------------------------------------------- - -WX_DEFINE_LIST(wxRectList); - -// ---------------------------------------------------------------------------- -// helper functions -// ---------------------------------------------------------------------------- - -void wxWindow::UnmanageAndDestroy(WXWidget widget) -{ - Widget w = (Widget)widget; - if ( w ) - { - XtUnmanageChild(w); - XtDestroyWidget(w); - } -} - -bool wxWindow::MapOrUnmap(WXWidget widget, bool map) -{ - Widget w = (Widget)widget; - if ( !w ) - return FALSE; - - if ( map ) - XtMapWidget(w); - else - XtUnmapWidget(w); - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// constructors -// ---------------------------------------------------------------------------- - -void wxWindow::Init() -{ - // generic initializations first - InitBase(); - - // Motif-specific - m_needsRefresh = TRUE; - m_mainWidget = (WXWidget) 0; - - m_button1Pressed = - m_button2Pressed = - m_button3Pressed = FALSE; - - m_winCaptured = FALSE; - - m_isShown = TRUE; - - m_hScrollBar = - m_vScrollBar = - m_borderWidget = - m_scrolledWindow = - m_drawingArea = (WXWidget) 0; - - m_hScroll = - m_vScroll = FALSE; - - m_scrollPosX = - m_scrollPosY = 0; - - m_backingPixmap = (WXPixmap) 0; - m_pixmapWidth = - m_pixmapHeight = 0; - - m_pixmapOffsetX = - m_pixmapOffsetY = 0; - - m_lastTS = 0; - m_lastButton = 0; - m_canAddEventHandler = FALSE; -} - -// real construction (Init() must have been called before!) -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - wxCHECK_MSG( parent, FALSE, "can't create wxWindow without parent" ); - - CreateBase(parent, id, pos, size, style, name); - - parent->AddChild(this); - - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - m_foregroundColour = *wxBLACK; - - //// TODO: we should probably optimize by only creating a - //// a drawing area if we have one or more scrollbars (wxVSCROLL/wxHSCROLL). - //// But for now, let's simplify things by always creating the - //// drawing area, since otherwise the translations are different. - - // New translations for getting mouse motion feedback - static const String translations = -": wxCanvasMotionEvent() DrawingAreaInput() ManagerGadgetButtonMotion()\n\ -: wxCanvasMotionEvent() DrawingAreaInput() ManagerGadgetButtonMotion()\n\ -: wxCanvasMotionEvent() DrawingAreaInput() ManagerGadgetButtonMotion()\n\ -: wxCanvasMotionEvent() DrawingAreaInput() ManagerGadgetButtonMotion()\n\ -: DrawingAreaInput() ManagerGadgetArm()\n\ -: DrawingAreaInput() ManagerGadgetArm()\n\ -: DrawingAreaInput() ManagerGadgetArm()\n\ -: DrawingAreaInput() ManagerGadgetActivate()\n\ -: DrawingAreaInput() ManagerGadgetActivate()\n\ -: DrawingAreaInput() ManagerGadgetActivate()\n\ -: wxCanvasMotionEvent() DrawingAreaInput()\n\ -: wxCanvasMotionEvent() DrawingAreaInput()\n\ -: wxCanvasMotionEvent() DrawingAreaInput()\n\ -: DrawingAreaInput()"; - - XtActionsRec actions[1]; - actions[0].string = "wxCanvasMotionEvent"; - actions[0].proc = (XtActionProc) wxCanvasMotionEvent; - XtAppAddActions ((XtAppContext) wxTheApp->GetAppContext(), actions, 1); - - Widget parentWidget = (Widget) parent->GetClientWidget(); - if (style & wxBORDER) - { - m_borderWidget = (WXWidget)XtVaCreateManagedWidget - ( - "canvasBorder", - xmFrameWidgetClass, parentWidget, - XmNshadowType, XmSHADOW_IN, - NULL - ); - } - - m_scrolledWindow = (WXWidget)XtVaCreateManagedWidget - ( - "scrolledWindow", - xmScrolledWindowWidgetClass, - m_borderWidget ? (Widget) m_borderWidget - : parentWidget, - XmNresizePolicy, XmRESIZE_NONE, - XmNspacing, 0, - XmNscrollingPolicy, XmAPPLICATION_DEFINED, - //XmNscrollBarDisplayPolicy, XmAS_NEEDED, - NULL - ); - - XtTranslations ptr = XtParseTranslationTable(translations); - m_drawingArea = (WXWidget)XtVaCreateWidget - ( - name, - xmDrawingAreaWidgetClass, (Widget) m_scrolledWindow, - XmNunitType, XmPIXELS, - // XmNresizePolicy, XmRESIZE_ANY, - XmNresizePolicy, XmRESIZE_NONE, - XmNmarginHeight, 0, - XmNmarginWidth, 0, - XmNtranslations, ptr, - NULL - ); - XtFree((char *) ptr); - -#if 0 - if (GetWindowStyleFlag() & wxOVERRIDE_KEY_TRANSLATIONS) - { - ptr = XtParseTranslationTable (": DrawingAreaInput()"); - XtOverrideTranslations ((Widget) m_drawingArea, ptr); - XtFree ((char *) ptr); - } -#endif // 0 - - wxAddWindowToTable((Widget) m_drawingArea, this); - wxAddWindowToTable((Widget) m_scrolledWindow, this); - - // This order is very important in Motif 1.2.1 - XtRealizeWidget ((Widget) m_scrolledWindow); - XtRealizeWidget ((Widget) m_drawingArea); - XtManageChild ((Widget) m_drawingArea); - - ptr = XtParseTranslationTable(": resize()"); - XtOverrideTranslations((Widget) m_drawingArea, ptr); - XtFree ((char *) ptr); - - XtAddCallback ((Widget) m_drawingArea, XmNexposeCallback, (XtCallbackProc) wxCanvasRepaintProc, (XtPointer) this); - XtAddCallback ((Widget) m_drawingArea, XmNinputCallback, (XtCallbackProc) wxCanvasInputEvent, (XtPointer) this); - - // TODO? -#if 0 - display = XtDisplay (scrolledWindow); - xwindow = XtWindow (drawingArea); -#endif // 0 - - XtAddEventHandler( - (Widget)m_drawingArea, - PointerMotionHintMask | EnterWindowMask | - LeaveWindowMask | FocusChangeMask, - False, - (XtEventHandler) wxCanvasEnterLeave, - (XtPointer) this - ); - - // Scrolled widget needs to have its colour changed or we get a little blue - // square where the scrollbars abutt - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - DoChangeBackgroundColour(m_scrolledWindow, backgroundColour, TRUE); - DoChangeBackgroundColour(m_drawingArea, backgroundColour, TRUE); - - XmScrolledWindowSetAreas( - (Widget)m_scrolledWindow, - (Widget) 0, (Widget) 0, - (Widget) m_drawingArea); - -#if 0 - if (m_hScrollBar) - XtRealizeWidget ((Widget) m_hScrollBar); - if (m_vScrollBar) - XtRealizeWidget ((Widget) m_vScrollBar); -#endif // 0 - - // Without this, the cursor may not be restored properly (e.g. in splitter - // sample). - SetCursor(*wxSTANDARD_CURSOR); - SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - SetSize(pos.x, pos.y, size.x, size.y); - - return TRUE; -} - -// Destructor -wxWindow::~wxWindow() -{ - // Motif-specific actions first - WXWidget wMain = GetMainWidget(); - if ( wMain ) - { - // Removes event handlers - DetachWidget(wMain); - } - - ClearUpdateRects(); - - // If m_drawingArea, we're a fully-fledged window with drawing area, - // scrollbars etc. (what wxCanvas used to be) - if ( m_drawingArea ) - { - // Destroy children before destroying self - DestroyChildren(); - - if (m_backingPixmap) - XFreePixmap (XtDisplay ((Widget) GetMainWidget()), (Pixmap) m_backingPixmap); - - Widget w = (Widget) m_drawingArea; - wxDeleteWindowFromTable(w); - - if (w) - { - XtDestroyWidget(w); - } - - m_mainWidget = (WXWidget) 0; - - // Only if we're _really_ a canvas (not a dialog box/panel) - if (m_scrolledWindow) - { - wxDeleteWindowFromTable((Widget) m_scrolledWindow); - } - - UnmanageAndDestroy(m_hScrollBar); - UnmanageAndDestroy(m_vScrollBar); - UnmanageAndDestroy(m_scrolledWindow); - - if (m_borderWidget) - { - XtDestroyWidget ((Widget) m_borderWidget); - m_borderWidget = (WXWidget) 0; - } - } - - // Destroy the window - if (GetMainWidget()) - { - // If this line (XtDestroyWidget) causes a crash, you may comment it out. - // Child widgets will get destroyed automatically when a frame - // or dialog is destroyed, but before that you may get some memory - // leaks and potential layout problems if you delete and then add - // child windows. - XtDestroyWidget((Widget) GetMainWidget()); - SetMainWidget((WXWidget) NULL); - } -} - -// ---------------------------------------------------------------------------- -// scrollbar management -// ---------------------------------------------------------------------------- - -// Helper function -void wxWindow::CreateScrollbar(wxOrientation orientation) -{ - wxCHECK_RET( m_drawingArea, "this window can't have scrollbars" ); - - XtVaSetValues((Widget) m_scrolledWindow, XmNresizePolicy, XmRESIZE_NONE, NULL); - - // Add scrollbars if required - if (orientation == wxHORIZONTAL) - { - Widget hScrollBar = XtVaCreateManagedWidget ("hsb", - xmScrollBarWidgetClass, (Widget) m_scrolledWindow, - XmNorientation, XmHORIZONTAL, - NULL); - // XtAddCallback (hScrollBar, XmNvalueChangedCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNdragCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNincrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNdecrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNpageIncrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNpageDecrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNtoTopCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - XtAddCallback (hScrollBar, XmNtoBottomCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmHORIZONTAL); - - XtVaSetValues (hScrollBar, - XmNincrement, 1, - XmNvalue, 0, - NULL); - - m_hScrollBar = (WXWidget) hScrollBar; - - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - DoChangeBackgroundColour(m_hScrollBar, backgroundColour, TRUE); - - XtRealizeWidget(hScrollBar); - - XtVaSetValues((Widget) m_scrolledWindow, - XmNhorizontalScrollBar, (Widget) m_hScrollBar, - NULL); - - m_hScroll = TRUE; - } - - if (orientation == wxVERTICAL) - { - Widget vScrollBar = XtVaCreateManagedWidget ("vsb", - xmScrollBarWidgetClass, (Widget) m_scrolledWindow, - XmNorientation, XmVERTICAL, - NULL); - // XtAddCallback (vScrollBar, XmNvalueChangedCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNdragCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNincrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNdecrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNpageIncrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNpageDecrementCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNtoTopCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - XtAddCallback (vScrollBar, XmNtoBottomCallback, (XtCallbackProc) wxScrollBarCallback, (XtPointer) XmVERTICAL); - - XtVaSetValues (vScrollBar, - XmNincrement, 1, - XmNvalue, 0, - NULL); - - m_vScrollBar = (WXWidget) vScrollBar; - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - DoChangeBackgroundColour(m_vScrollBar, backgroundColour, TRUE); - - XtRealizeWidget(vScrollBar); - - XtVaSetValues((Widget) m_scrolledWindow, - XmNverticalScrollBar, (Widget) m_vScrollBar, - NULL); - - m_vScroll = TRUE; - } - - XtVaSetValues((Widget) m_scrolledWindow, XmNresizePolicy, XmRESIZE_ANY, NULL); -} - -void wxWindow::DestroyScrollbar(wxOrientation orientation) -{ - wxCHECK_RET( m_drawingArea, "this window can't have scrollbars" ); - - XtVaSetValues((Widget) m_scrolledWindow, XmNresizePolicy, XmRESIZE_NONE, NULL); - // Add scrollbars if required - if (orientation == wxHORIZONTAL) - { - if (m_hScrollBar) - { - XtDestroyWidget((Widget) m_hScrollBar); - } - m_hScrollBar = (WXWidget) 0; - m_hScroll = FALSE; - - XtVaSetValues((Widget) m_scrolledWindow, - XmNhorizontalScrollBar, (Widget) 0, - NULL); - - } - - if (orientation == wxVERTICAL) - { - if (m_vScrollBar) - { - XtDestroyWidget((Widget) m_vScrollBar); - } - m_vScrollBar = (WXWidget) 0; - m_vScroll = TRUE; - - XtVaSetValues((Widget) m_scrolledWindow, - XmNverticalScrollBar, (Widget) 0, - NULL); - - } - XtVaSetValues((Widget) m_scrolledWindow, XmNresizePolicy, XmRESIZE_ANY, NULL); -} - -// --------------------------------------------------------------------------- -// basic operations -// --------------------------------------------------------------------------- - -void wxWindow::SetFocus() -{ - Widget wMain = (Widget) GetMainWidget(); - XmProcessTraversal(wMain, XmTRAVERSE_CURRENT); - XmProcessTraversal((Widget) GetMainWidget(), XmTRAVERSE_CURRENT); -} - -// Get the window with the focus -wxWindow *wxWindowBase::FindFocus() -{ - // TODO Problems: - // (1) Can there be multiple focussed widgets in an application? - // In which case we need to find the top-level window that's - // currently active. - // (2) The widget with the focus may not be in the widget table - // depending on which widgets I put in the table - wxWindow *winFocus = (wxWindow *)NULL; - for ( wxWindowList::Node *node = wxTopLevelWindows.GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - - Widget w = XmGetFocusWidget ((Widget) win->GetTopWidget()); - - if (w != (Widget) NULL) - { - winFocus = wxGetWindowFromTable(w); - if ( winFocus ) - break; - } - } - - return winFocus; -} - -bool wxWindow::Enable(bool enable) -{ - if ( !wxWindowBase::Enable(enable) ) - return FALSE; - - Widget wMain = (Widget)GetMainWidget(); - if ( wMain ) - { - XtSetSensitive(wMain, enable); - XmUpdateDisplay(wMain); - } - - return TRUE; -} - -bool wxWindow::Show(bool show) -{ - if ( !wxWindowBase::Show(show) ) - return FALSE; - - if (m_borderWidget || m_scrolledWindow) - { - MapOrUnmap(m_drawingArea, show); - MapOrUnmap(m_borderWidget ? m_borderWidget : m_scrolledWindow, show); - } - else - { - if ( !MapOrUnmap(GetTopWidget(), show) ) - MapOrUnmap(GetMainWidget(), show); - } - -#if 0 - Window xwin = (Window) GetXWindow(); - Display *xdisp = (Display*) GetXDisplay(); - if (show) - XMapWindow(xdisp, xwin); - else - XUnmapWindow(xdisp, xwin); -#endif - - return TRUE; -} - -// Raise the window to the top of the Z order -void wxWindow::Raise() -{ - Widget wTop = (Widget) GetTopWidget(); - Window window = XtWindow(wTop); - XRaiseWindow(XtDisplay(wTop), window); -} - -// Lower the window to the bottom of the Z order -void wxWindow::Lower() -{ - Widget wTop = (Widget) GetTopWidget(); - Window window = XtWindow(wTop); - XLowerWindow(XtDisplay(wTop), window); -} - -void wxWindow::SetTitle(const wxString& title) -{ - XtVaSetValues((Widget)GetMainWidget(), XmNtitle, title.c_str(), NULL); -} - -wxString wxWindow::GetTitle() const -{ - char *title; - XtVaGetValues((Widget)GetMainWidget(), XmNtitle, &title, NULL); - - return wxString(title); -} - -void wxWindow::CaptureMouse() -{ - if ( m_winCaptured ) - return; - - Widget wMain = (Widget)GetMainWidget(); - if ( wMain ) - XtAddGrab(wMain, TRUE, FALSE); - - m_winCaptured = TRUE; -} - -void wxWindow::ReleaseMouse() -{ - if ( !m_winCaptured ) - return; - - Widget wMain = (Widget)GetMainWidget(); - if ( wMain ) - XtRemoveGrab(wMain); - - m_winCaptured = FALSE; -} - -bool wxWindow::SetFont(const wxFont& font) -{ - if ( !wxWindowBase::SetFont(font) ) - { - // nothing to do - return FALSE; - } - - ChangeFont(); - - return TRUE; -} - -bool wxWindow::SetCursor(const wxCursor& cursor) -{ - if ( !wxWindowBase::SetCursor(cursor) ) - { - // no change - return FALSE; - } - - wxASSERT_MSG( m_cursor.Ok(), - _T("cursor must be valid after call to the base version")); - - WXDisplay *dpy = GetXDisplay(); - WXCursor x_cursor = m_cursor.GetXCursor(dpy); - - Widget w = (Widget) GetMainWidget(); - Window win = XtWindow(w); - XDefineCursor((Display*) dpy, win, (Cursor) x_cursor); - - return TRUE; -} - -// Coordinates relative to the window -void wxWindow::WarpPointer (int x, int y) -{ - Widget wClient = (Widget)GetClientWidget(); - - XWarpPointer(XtDisplay(wClient), None, XtWindow(wClient), 0, 0, 0, 0, x, y); -} - -// --------------------------------------------------------------------------- -// scrolling stuff -// --------------------------------------------------------------------------- - -int wxWindow::GetScrollPos(int orient) const -{ - if (orient == wxHORIZONTAL) - return m_scrollPosX; - else - return m_scrollPosY; - -#if 0 - Widget scrollBar = (Widget) ((orient == wxHORIZONTAL) ? m_hScrollBar : m_vScrollBar); - if (scrollBar) - { - int pos; - XtVaGetValues(scrollBar, XmNvalue, &pos, NULL); - return pos; - } - else - return 0; -#endif // 0 -} - -// This now returns the whole range, not just the number of positions that we -// can scroll. -int wxWindow::GetScrollRange(int orient) const -{ - Widget scrollBar = (Widget)GetScrollbar((wxOrientation)orient); - wxCHECK_MSG( scrollBar, 0, "no such scrollbar" ); - - int range; - XtVaGetValues(scrollBar, XmNmaximum, &range, NULL); - return range; -} - -int wxWindow::GetScrollThumb(int orient) const -{ - Widget scrollBar = (Widget)GetScrollbar((wxOrientation)orient); - wxCHECK_MSG( scrollBar, 0, "no such scrollbar" ); - - int thumb; - XtVaGetValues(scrollBar, XmNsliderSize, &thumb, NULL); - return thumb; -} - -void wxWindow::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh)) -{ - Widget scrollBar = (Widget)GetScrollbar((wxOrientation)orient); - - if ( scrollBar ) - { - XtVaSetValues (scrollBar, XmNvalue, pos, NULL); - } - - SetInternalScrollPos((wxOrientation)orient, pos); -} - -// New function that will replace some of the above. -void wxWindow::SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool WXUNUSED(refresh)) -{ - int oldW, oldH; - GetSize(& oldW, & oldH); - - if (range == 0) - range = 1; - if (thumbVisible == 0) - thumbVisible = 1; - - if (thumbVisible > range) - thumbVisible = range; - - // Save the old state to see if it changed - WXWidget oldScrollBar = GetScrollbar((wxOrientation)orient); - - if (orient == wxHORIZONTAL) - { - if (thumbVisible == range) - { - if (m_hScrollBar) - DestroyScrollbar(wxHORIZONTAL); - } - else - { - if (!m_hScrollBar) - CreateScrollbar(wxHORIZONTAL); - } - } - if (orient == wxVERTICAL) - { - if (thumbVisible == range) - { - if (m_vScrollBar) - DestroyScrollbar(wxVERTICAL); - } - else - { - if (!m_vScrollBar) - CreateScrollbar(wxVERTICAL); - } - } - WXWidget newScrollBar = GetScrollbar((wxOrientation)orient); - - if (oldScrollBar != newScrollBar) - { - // This is important! Without it, scrollbars misbehave badly. - XtUnrealizeWidget((Widget) m_scrolledWindow); - XmScrolledWindowSetAreas ((Widget) m_scrolledWindow, (Widget) m_hScrollBar, (Widget) m_vScrollBar, (Widget) m_drawingArea); - XtRealizeWidget((Widget) m_scrolledWindow); - XtManageChild((Widget) m_scrolledWindow); - } - - if (newScrollBar) - { - XtVaSetValues((Widget) newScrollBar, - XmNvalue, pos, - XmNminimum, 0, - XmNmaximum, range, - XmNsliderSize, thumbVisible, - NULL); - } - - SetInternalScrollPos((wxOrientation)orient, pos); - - int newW, newH; - GetSize(& newW, & newH); - - // Adjusting scrollbars can resize the canvas accidentally - if (newW != oldW || newH != oldH) - SetSize(-1, -1, oldW, oldH); -} - -// Does a physical scroll -void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) -{ - int x, y, w, h; - if (rect) - { - // Use specified rectangle - x = rect->x; y = rect->y; w = rect->width; h = rect->height; - } - else - { - // Use whole client area - x = 0; y = 0; - GetClientSize(& w, & h); - } - - int x1 = (dx >= 0) ? x : x - dx; - int y1 = (dy >= 0) ? y : y - dy; - int w1 = w - abs(dx); - int h1 = h - abs(dy); - int x2 = (dx >= 0) ? x + dx : x; - int y2 = (dy >= 0) ? y + dy : y; - - wxClientDC dc(this); - - dc.SetLogicalFunction (wxCOPY); - - Widget widget = (Widget) GetMainWidget(); - Window window = XtWindow(widget); - Display* display = XtDisplay(widget); - - XCopyArea(display, window, window, (GC) dc.GetGC(), - x1, y1, w1, h1, x2, y2); - - dc.SetAutoSetting(TRUE); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBrush(brush); // FIXME: needed? - - // We'll add rectangles to the list of update rectangles according to which - // bits we've exposed. - wxList updateRects; - - if (dx > 0) - { - wxRect *rect = new wxRect; - rect->x = x; - rect->y = y; - rect->width = dx; - rect->height = h; - - XFillRectangle(display, window, - (GC) dc.GetGC(), rect->x, rect->y, rect->width, rect->height); - - rect->x = rect->x; - rect->y = rect->y; - rect->width = rect->width; - rect->height = rect->height; - - updateRects.Append((wxObject*) rect); - } - else if (dx < 0) - { - wxRect *rect = new wxRect; - - rect->x = x + w + dx; - rect->y = y; - rect->width = -dx; - rect->height = h; - - XFillRectangle(display, window, - (GC) dc.GetGC(), rect->x, rect->y, rect->width, - rect->height); - - rect->x = rect->x; - rect->y = rect->y; - rect->width = rect->width; - rect->height = rect->height; - - updateRects.Append((wxObject*) rect); - } - if (dy > 0) - { - wxRect *rect = new wxRect; - - rect->x = x; - rect->y = y; - rect->width = w; - rect->height = dy; - - XFillRectangle(display, window, - (GC) dc.GetGC(), rect->x, rect->y, rect->width, rect->height); - - rect->x = rect->x; - rect->y = rect->y; - rect->width = rect->width; - rect->height = rect->height; - - updateRects.Append((wxObject*) rect); - } - else if (dy < 0) - { - wxRect *rect = new wxRect; - - rect->x = x; - rect->y = y + h + dy; - rect->width = w; - rect->height = -dy; - - XFillRectangle(display, window, - (GC) dc.GetGC(), rect->x, rect->y, rect->width, rect->height); - - rect->x = rect->x; - rect->y = rect->y; - rect->width = rect->width; - rect->height = rect->height; - - updateRects.Append((wxObject*) rect); - } - dc.SetBrush(wxNullBrush); - - // Now send expose events - - wxNode* node = updateRects.First(); - while (node) - { - wxRect* rect = (wxRect*) node->Data(); - XExposeEvent event; - - event.type = Expose; - event.display = display; - event.send_event = True; - event.window = window; - - event.x = rect->x; - event.y = rect->y; - event.width = rect->width; - event.height = rect->height; - - event.count = 0; - - XSendEvent(display, window, False, ExposureMask, (XEvent *)&event); - - node = node->Next(); - - } - - // Delete the update rects - node = updateRects.First(); - while (node) - { - wxRect* rect = (wxRect*) node->Data(); - delete rect; - node = node->Next(); - } - - XmUpdateDisplay((Widget) GetMainWidget()); -} - -// --------------------------------------------------------------------------- -// drag and drop -// --------------------------------------------------------------------------- - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget(wxDropTarget * WXUNUSED(pDropTarget)) -{ - // TODO -} - -#endif - -// Old style file-manager drag&drop -void wxWindow::DragAcceptFiles(bool WXUNUSED(accept)) -{ - // TODO -} - -// ---------------------------------------------------------------------------- -// tooltips -// ---------------------------------------------------------------------------- - -#if wxUSE_TOOLTIPS - -void wxWindow::DoSetToolTip(wxToolTip * WXUNUSED(tooltip)) -{ - // TODO -} - -#endif // wxUSE_TOOLTIPS - -// --------------------------------------------------------------------------- -// moving and resizing -// --------------------------------------------------------------------------- - -bool wxWindow::PreResize() -{ - return TRUE; -} - -// Get total size -void wxWindow::DoGetSize(int *x, int *y) const -{ - if (m_drawingArea) - { - CanvasGetSize(x, y); - return; - } - - Widget widget = (Widget) GetTopWidget(); - Dimension xx, yy; - XtVaGetValues(widget, XmNwidth, &xx, XmNheight, &yy, NULL); - *x = xx; *y = yy; -} - -void wxWindow::DoGetPosition(int *x, int *y) const -{ - if (m_drawingArea) - { - CanvasGetPosition(x, y); - return; - } - Widget widget = (Widget) GetTopWidget(); - Position xx, yy; - XtVaGetValues(widget, XmNx, &xx, XmNy, &yy, NULL); - - // We may be faking the client origin. So a window that's really at (0, 30) - // may appear (to wxWin apps) to be at (0, 0). - if (GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - xx -= pt.x; - yy -= pt.y; - } - - *x = xx; *y = yy; -} - -void wxWindow::DoScreenToClient(int *x, int *y) const -{ - Widget widget = (Widget) GetClientWidget(); - Display *display = XtDisplay((Widget) GetMainWidget()); - Window rootWindow = RootWindowOfScreen(XtScreen(widget)); - Window thisWindow = XtWindow(widget); - - Window childWindow; - int xx = *x; - int yy = *y; - XTranslateCoordinates(display, rootWindow, thisWindow, xx, yy, x, y, &childWindow); -} - -void wxWindow::DoClientToScreen(int *x, int *y) const -{ - Widget widget = (Widget) GetClientWidget(); - Display *display = XtDisplay(widget); - Window rootWindow = RootWindowOfScreen(XtScreen(widget)); - Window thisWindow = XtWindow(widget); - - Window childWindow; - int xx = *x; - int yy = *y; - XTranslateCoordinates(display, thisWindow, rootWindow, xx, yy, x, y, &childWindow); -} - - -// Get size *available for subwindows* i.e. excluding menu bar etc. -void wxWindow::DoGetClientSize(int *x, int *y) const -{ - Widget widget = (Widget) GetClientWidget(); - Dimension xx, yy; - XtVaGetValues(widget, XmNwidth, &xx, XmNheight, &yy, NULL); - *x = xx; *y = yy; -} - -void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - // A bit of optimization to help sort out the flickers. - int oldX, oldY, oldW, oldH; - GetSize(& oldW, & oldH); - GetPosition(& oldX, & oldY); - - bool useOldPos = FALSE; - bool useOldSize = FALSE; - - if ((x == -1) && (x == -1) && ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0)) - useOldPos = TRUE; - else if (x == oldX && y == oldY) - useOldPos = TRUE; - - if ((width == -1) && (height == -1)) - useOldSize = TRUE; - else if (width == oldW && height == oldH) - useOldSize = TRUE; - - if (!wxNoOptimize::CanOptimize()) - { - useOldSize = FALSE; useOldPos = FALSE; - } - - if (useOldPos && useOldSize) - return; - - if (m_drawingArea) - { - CanvasSetSize(x, y, width, height, sizeFlags); - return; - } - Widget widget = (Widget) GetTopWidget(); - if (!widget) - return; - - bool managed = XtIsManaged( widget ); - if (managed) - XtUnmanageChild(widget); - - int xx = x; int yy = y; - AdjustForParentClientOrigin(xx, yy, sizeFlags); - - if (!useOldPos) - { - if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues(widget, XmNx, xx, NULL); - if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - XtVaSetValues(widget, XmNy, yy, NULL); - } - if (!useOldSize) - { - if (width > -1) - XtVaSetValues(widget, XmNwidth, width, NULL); - if (height > -1) - XtVaSetValues(widget, XmNheight, height, NULL); - } - - if (managed) - XtManageChild(widget); - - // How about this bit. Maybe we don't need to generate size events - // all the time -- they'll be generated when the window is sized anyway. -#if 0 - wxSizeEvent sizeEvent(wxSize(width, height), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); -#endif // 0 -} - -void wxWindow::DoSetClientSize(int width, int height) -{ - if (m_drawingArea) - { - CanvasSetClientSize(width, height); - return; - } - - Widget widget = (Widget) GetTopWidget(); - - if (width > -1) - XtVaSetValues(widget, XmNwidth, width, NULL); - if (height > -1) - XtVaSetValues(widget, XmNheight, height, NULL); - - wxSizeEvent sizeEvent(wxSize(width, height), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); -} - -// For implementation purposes - sometimes decorations make the client area -// smaller -wxPoint wxWindow::GetClientAreaOrigin() const -{ - return wxPoint(0, 0); -} - -// Makes an adjustment to the window position (for example, a frame that has -// a toolbar that it manages itself). -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - x += pt.x; y += pt.y; - } -} - -void wxWindow::SetSizeHints(int minW, int minH, int maxW, int maxH, int incW, int incH) -{ - m_minWidth = minW; - m_minHeight = minH; - m_maxWidth = maxW; - m_maxHeight = maxH; - - wxFrame *frame = wxDynamicCast(this, wxFrame); - if ( !frame ) - { - // TODO what about dialogs? - return; - } - - Widget widget = (Widget) frame->GetShellWidget(); - - if (minW > -1) - XtVaSetValues(widget, XmNminWidth, minW, NULL); - if (minH > -1) - XtVaSetValues(widget, XmNminHeight, minH, NULL); - if (maxW > -1) - XtVaSetValues(widget, XmNmaxWidth, maxW, NULL); - if (maxH > -1) - XtVaSetValues(widget, XmNmaxHeight, maxH, NULL); - if (incW > -1) - XtVaSetValues(widget, XmNwidthInc, incW, NULL); - if (incH > -1) - XtVaSetValues(widget, XmNheightInc, incH, NULL); -} - -// --------------------------------------------------------------------------- -// text metrics -// --------------------------------------------------------------------------- - -int wxWindow::GetCharHeight() const -{ - wxCHECK_MSG( m_font.Ok(), 0, "valid window font needed" ); - - WXFontStructPtr pFontStruct = m_font.GetFontStruct(1.0, GetXDisplay()); - - int direction, ascent, descent; - XCharStruct overall; - XTextExtents ((XFontStruct*) pFontStruct, "x", 1, &direction, &ascent, - &descent, &overall); - - // return (overall.ascent + overall.descent); - return (ascent + descent); -} - -int wxWindow::GetCharWidth() const -{ - wxCHECK_MSG( m_font.Ok(), 0, "valid window font needed" ); - - WXFontStructPtr pFontStruct = m_font.GetFontStruct(1.0, GetXDisplay()); - - int direction, ascent, descent; - XCharStruct overall; - XTextExtents ((XFontStruct*) pFontStruct, "x", 1, &direction, &ascent, - &descent, &overall); - - return overall.width; -} - -void wxWindow::GetTextExtent(const wxString& string, - int *x, int *y, - int *descent, int *externalLeading, - const wxFont *theFont) const -{ - wxFont *fontToUse = (wxFont *)theFont; - if (!fontToUse) - fontToUse = (wxFont *) & m_font; - - wxCHECK_RET( fontToUse->Ok(), "valid window font needed" ); - - WXFontStructPtr pFontStruct = theFont->GetFontStruct(1.0, GetXDisplay()); - - int direction, ascent, descent2; - XCharStruct overall; - int slen; - -#if 0 - if (use16) - XTextExtents16((XFontStruct*) pFontStruct, (XChar2b *) (char*) (const char*) string, slen, &direction, - &ascent, &descent2, &overall); -#endif - - XTextExtents((XFontStruct*) pFontStruct, string, slen, - &direction, &ascent, &descent2, &overall); - - if ( x ) - *x = (overall.width); - if ( y ) - *y = (ascent + descent2); - if (descent) - *descent = descent2; - if (externalLeading) - *externalLeading = 0; -} - -// ---------------------------------------------------------------------------- -// painting -// ---------------------------------------------------------------------------- - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - m_needsRefresh = TRUE; - Display *display = XtDisplay((Widget) GetMainWidget()); - Window thisWindow = XtWindow((Widget) GetMainWidget()); - - XExposeEvent dummyEvent; - int width, height; - GetSize(&width, &height); - - dummyEvent.type = Expose; - dummyEvent.display = display; - dummyEvent.send_event = True; - dummyEvent.window = thisWindow; - if (rect) - { - dummyEvent.x = rect->x; - dummyEvent.y = rect->y; - dummyEvent.width = rect->width; - dummyEvent.height = rect->height; - } - else - { - dummyEvent.x = 0; - dummyEvent.y = 0; - dummyEvent.width = width; - dummyEvent.height = height; - } - dummyEvent.count = 0; - - if (eraseBack) - { - wxClientDC dc(this); - wxBrush backgroundBrush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(backgroundBrush); - if (rect) - dc.Clear(*rect); - else - dc.Clear(); - } - - XSendEvent(display, thisWindow, False, ExposureMask, (XEvent *)&dummyEvent); -} - -void wxWindow::Clear() -{ - wxClientDC dc(this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - -void wxWindow::ClearUpdateRects() -{ - wxRectList::Node* node = m_updateRects.GetFirst(); - while (node) - { - wxRect* rect = node->GetData(); - delete rect; - node = node->GetNext(); - } - - m_updateRects.Clear(); -} - -void wxWindow::DoPaint() -{ - //TODO : make a temporary gc so we can do the XCopyArea below - if (m_backingPixmap && !m_needsRefresh) - { - wxPaintDC dc(this); - - GC tempGC = (GC) dc.GetBackingGC(); - - Widget widget = (Widget) GetMainWidget(); - - int scrollPosX = 0; - int scrollPosY = 0; - - // We have to test whether it's a wxScrolledWindow (hack!) because - // otherwise we don't know how many pixels have been scrolled. We might - // solve this in the future by defining virtual wxWindow functions to get - // the scroll position in pixels. Or, each kind of scrolled window has to - // implement backing stores itself, using generic wxWindows code. - wxScrolledWindow* scrolledWindow = wxDynamicCast(this, wxScrolledWindow); - if ( scrolledWindow ) - { - int x, y; - scrolledWindow->CalcScrolledPosition(0, 0, &x, &y); - - scrollPosX = - x; - scrollPosY = - y; - } - - // TODO: This could be optimized further by only copying the areas in the - // current update region. - - // Only blit the part visible in the client area. The backing pixmap - // always starts at 0, 0 but we may be looking at only a portion of it. - wxSize clientArea = GetClientSize(); - int toBlitX = m_pixmapWidth - scrollPosX; - int toBlitY = m_pixmapHeight - scrollPosY; - - // Copy whichever is samller, the amount of pixmap we have to copy, - // or the size of the client area. - toBlitX = wxMin(toBlitX, clientArea.x); - toBlitY = wxMin(toBlitY, clientArea.y); - - // Make sure we're not negative - toBlitX = wxMax(0, toBlitX); - toBlitY = wxMax(0, toBlitY); - - XCopyArea - ( - XtDisplay(widget), - (Pixmap) m_backingPixmap, - XtWindow (widget), - tempGC, - scrollPosX, scrollPosY, // Start at the scroll position - toBlitX, toBlitY, // How much of the pixmap to copy - 0, 0 // Destination - ); - } - else - { - // Set an erase event first - wxEraseEvent eraseEvent(GetId()); - eraseEvent.SetEventObject(this); - GetEventHandler()->ProcessEvent(eraseEvent); - - wxPaintEvent event(GetId()); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); - - m_needsRefresh = FALSE; - } -} - -// ---------------------------------------------------------------------------- -// event handlers -// ---------------------------------------------------------------------------- - -// Responds to colour changes: passes event on to children. -void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxWindowList::Node *node = GetChildren().GetFirst(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = node->GetData(); - if ( win->GetParent() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->GetNext(); - } -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ - // This calls the UI-update mechanism (querying windows for - // menu/toolbar/control state information) - UpdateWindowUI(); -} - -// ---------------------------------------------------------------------------- -// accelerators -// ---------------------------------------------------------------------------- - -bool wxWindow::ProcessAccelerator(wxKeyEvent& event) -{ - if (!m_acceleratorTable.Ok()) - return FALSE; - - int count = m_acceleratorTable.GetCount(); - wxAcceleratorEntry* entries = m_acceleratorTable.GetEntries(); - int i; - for (i = 0; i < count; i++) - { - wxAcceleratorEntry* entry = & (entries[i]); - if (entry->MatchesEvent(event)) - { - // Bingo, we have a match. Now find a control that matches the entry - // command id. - - // Need to go up to the top of the window hierarchy, since it might - // be e.g. a menu item - wxWindow* parent = this; - while ( parent && !parent->IsTopLevel() ) - parent = parent->GetParent(); - - if (!parent) - return FALSE; - - wxFrame* frame = wxDynamicCast(parent, wxFrame); - if ( frame ) - { - // Try for a menu command - if (frame->GetMenuBar()) - { - wxMenuItem* item = frame->GetMenuBar()->FindItemForId(entry->GetCommand()); - if (item) - { - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, entry->GetCommand()); - commandEvent.SetEventObject(frame); - - // If ProcessEvent returns TRUE (it was handled), then - // the calling code will skip the event handling. - return frame->GetEventHandler()->ProcessEvent(commandEvent); - } - } - } - - // Find a child matching the command id - wxWindow* child = parent->FindWindow(entry->GetCommand()); - - // No such child - if (!child) - return FALSE; - - // Now we process those kinds of windows that we can. - // For now, only buttons. - if ( wxDynamicCast(child, wxButton) ) - { - wxCommandEvent commandEvent (wxEVT_COMMAND_BUTTON_CLICKED, child->GetId()); - commandEvent.SetEventObject(child); - return child->GetEventHandler()->ProcessEvent(commandEvent); - } - - return FALSE; - } // matches event - }// for - - // We didn't match the key event against an accelerator. - return FALSE; -} - -// ============================================================================ -// Motif-specific stuff from here on -// ============================================================================ - -// ---------------------------------------------------------------------------- -// function which maintain the global hash table mapping Widgets to wxWindows -// ---------------------------------------------------------------------------- - -bool wxAddWindowToTable(Widget w, wxWindow *win) -{ - wxWindow *oldItem = NULL; - if ((oldItem = (wxWindow *)gs_wxWidgetHashTable->Get ((long) w))) - { - wxLogDebug("Widget table clash: new widget is %ld, %s", - (long)w, win->GetClassInfo()->GetClassName()); - return FALSE; - } - - gs_wxWidgetHashTable->Put((long) w, win); - - return TRUE; -} - -wxWindow *wxGetWindowFromTable(Widget w) -{ - return (wxWindow *)gs_wxWidgetHashTable->Get((long) w); -} - -void wxDeleteWindowFromTable(Widget w) -{ - gs_wxWidgetHashTable->Delete((long)w); -} - -// ---------------------------------------------------------------------------- -// add/remove window from the table -// ---------------------------------------------------------------------------- - -// Add to hash table, add event handler -bool wxWindow::AttachWidget (wxWindow* parent, WXWidget mainWidget, - WXWidget formWidget, int x, int y, int width, int height) -{ - wxAddWindowToTable((Widget) mainWidget, this); - if (CanAddEventHandler()) - { - XtAddEventHandler((Widget) mainWidget, - ButtonPressMask | ButtonReleaseMask | PointerMotionMask, // | KeyPressMask, - False, - wxPanelItemEventHandler, - (XtPointer) this); - } - - if (!formWidget) - { - XtTranslations ptr; - XtOverrideTranslations ((Widget) mainWidget, - ptr = XtParseTranslationTable (": resize()")); - XtFree ((char *) ptr); - } - - // Some widgets have a parent form widget, e.g. wxRadioBox - if (formWidget) - { - if (!wxAddWindowToTable((Widget) formWidget, this)) - return FALSE; - - XtTranslations ptr; - XtOverrideTranslations ((Widget) formWidget, - ptr = XtParseTranslationTable (": resize()")); - XtFree ((char *) ptr); - } - - if (x == -1) - x = 0; - if (y == -1) - y = 0; - SetSize (x, y, width, height); - - return TRUE; -} - -// Remove event handler, remove from hash table -bool wxWindow::DetachWidget(WXWidget widget) -{ - if (CanAddEventHandler()) - { - XtRemoveEventHandler((Widget) widget, - ButtonPressMask | ButtonReleaseMask | PointerMotionMask, // | KeyPressMask, - False, - wxPanelItemEventHandler, - (XtPointer)this); - } - - wxDeleteWindowFromTable((Widget) widget); - return TRUE; -} - -// ---------------------------------------------------------------------------- -// Motif-specific accessors -// ---------------------------------------------------------------------------- - -// Get the underlying X window -WXWindow wxWindow::GetXWindow() const -{ - Widget wMain = (Widget)GetMainWidget(); - if ( wMain ) - return (WXWindow) XtWindow(wMain); - else - return (WXWindow) 0; -} - -// Get the underlying X display -WXDisplay *wxWindow::GetXDisplay() const -{ - Widget wMain = (Widget)GetMainWidget(); - if ( wMain ) - return (WXDisplay*) XtDisplay(wMain); - else - return (WXDisplay*) NULL; -} - -WXWidget wxWindow::GetMainWidget() const -{ - if (m_drawingArea) - return m_drawingArea; - else - return m_mainWidget; -} - -WXWidget wxWindow::GetClientWidget() const -{ - if (m_drawingArea != (WXWidget) 0) - return m_drawingArea; - else - return GetMainWidget(); -} - -WXWidget wxWindow::GetTopWidget() const -{ - return GetMainWidget(); -} - -WXWidget wxWindow::GetLabelWidget() const -{ - return GetMainWidget(); -} - -// ---------------------------------------------------------------------------- -// Motif callbacks -// ---------------------------------------------------------------------------- - -// All widgets should have this as their resize proc. -// OnSize sent to wxWindow via client data. -void wxWidgetResizeProc(Widget w, XConfigureEvent *event, String args[], int *num_args) -{ - wxWindow *win = wxGetWindowFromTable(w); - if (!win) - return; - - if (win->PreResize()) - { - int width, height; - win->GetSize(&width, &height); - wxSizeEvent sizeEvent(wxSize(width, height), win->GetId()); - sizeEvent.SetEventObject(win); - win->GetEventHandler()->ProcessEvent(sizeEvent); - } -} - -static void wxCanvasRepaintProc(Widget drawingArea, - XtPointer clientData, - XmDrawingAreaCallbackStruct * cbs) -{ - if (!wxGetWindowFromTable(drawingArea)) - return; - - XEvent * event = cbs->event; - wxWindow * win = (wxWindow *) clientData; - - switch (event->type) - { - case Expose: - { - if (event -> xexpose.count == 0) - { -#if 0 - wxPaintEvent event(win->GetId()); - event.SetEventObject(win); - win->GetEventHandler()->ProcessEvent(event); -#endif // 0 - - win->DoPaint(); - win->ClearUpdateRects(); - } - else - { - win->AddUpdateRect(event->xexpose.x, event->xexpose.y, - event->xexpose.width, event->xexpose.height); - } - break; - } - } -} - -// Unable to deal with Enter/Leave without a separate EventHandler (Motif 1.1.4) -static void wxCanvasEnterLeave(Widget drawingArea, - XtPointer clientData, - XCrossingEvent * event) -{ - XmDrawingAreaCallbackStruct cbs; - XEvent ev; - - ((XCrossingEvent &) ev) = *event; - - cbs.reason = XmCR_INPUT; - cbs.event = &ev; - - wxCanvasInputEvent(drawingArea, (XtPointer) NULL, &cbs); -} - -// Fix to make it work under Motif 1.0 (!) -static void wxCanvasMotionEvent (Widget drawingArea, XButtonEvent * event) -{ -#if XmVersion <= 1000 - XmDrawingAreaCallbackStruct cbs; - XEvent ev; - - ev = *((XEvent *) event); - cbs.reason = XmCR_INPUT; - cbs.event = &ev; - - wxCanvasInputEvent (drawingArea, (XtPointer) NULL, &cbs); -#endif // XmVersion <= 1000 -} - -static void wxCanvasInputEvent(Widget drawingArea, - XtPointer data, - XmDrawingAreaCallbackStruct * cbs) -{ - wxWindow *canvas = wxGetWindowFromTable(drawingArea); - XEvent local_event; - - if (canvas==NULL) - return; - - if (cbs->reason != XmCR_INPUT) - return; - - local_event = *(cbs->event); // We must keep a copy! - - switch (local_event.xany.type) - { - case EnterNotify: - case LeaveNotify: - case ButtonPress: - case ButtonRelease: - case MotionNotify: - { - wxEventType eventType = wxEVT_NULL; - - if (local_event.xany.type == EnterNotify) - { - //if (local_event.xcrossing.mode!=NotifyNormal) - // return ; // Ignore grab events - eventType = wxEVT_ENTER_WINDOW; - // canvas->GetEventHandler()->OnSetFocus(); - } - else if (local_event.xany.type == LeaveNotify) - { - //if (local_event.xcrossing.mode!=NotifyNormal) - // return ; // Ignore grab events - eventType = wxEVT_LEAVE_WINDOW; - // canvas->GetEventHandler()->OnKillFocus(); - } - else if (local_event.xany.type == MotionNotify) - { - eventType = wxEVT_MOTION; - if (local_event.xmotion.is_hint == NotifyHint) - { - Window root, child; - Display *dpy = XtDisplay (drawingArea); - - XQueryPointer (dpy, XtWindow (drawingArea), - &root, &child, - &local_event.xmotion.x_root, - &local_event.xmotion.y_root, - &local_event.xmotion.x, - &local_event.xmotion.y, - &local_event.xmotion.state); - } - else - { - } - } - - else if (local_event.xany.type == ButtonPress) - { - if (local_event.xbutton.button == Button1) - { - eventType = wxEVT_LEFT_DOWN; - canvas->SetButton1(TRUE); - } - else if (local_event.xbutton.button == Button2) - { - eventType = wxEVT_MIDDLE_DOWN; - canvas->SetButton2(TRUE); - } - else if (local_event.xbutton.button == Button3) - { - eventType = wxEVT_RIGHT_DOWN; - canvas->SetButton3(TRUE); - } - } - else if (local_event.xany.type == ButtonRelease) - { - if (local_event.xbutton.button == Button1) - { - eventType = wxEVT_LEFT_UP; - canvas->SetButton1(FALSE); - } - else if (local_event.xbutton.button == Button2) - { - eventType = wxEVT_MIDDLE_UP; - canvas->SetButton2(FALSE); - } - else if (local_event.xbutton.button == Button3) - { - eventType = wxEVT_RIGHT_UP; - canvas->SetButton3(FALSE); - } - } - - wxMouseEvent wxevent (eventType); - - wxevent.m_leftDown = ((eventType == wxEVT_LEFT_DOWN) - || (event_left_is_down (&local_event) - && (eventType != wxEVT_LEFT_UP))); - wxevent.m_middleDown = ((eventType == wxEVT_MIDDLE_DOWN) - || (event_middle_is_down (&local_event) - && (eventType != wxEVT_MIDDLE_UP))); - wxevent.m_rightDown = ((eventType == wxEVT_RIGHT_DOWN) - || (event_right_is_down (&local_event) - && (eventType != wxEVT_RIGHT_UP))); - - wxevent.m_shiftDown = local_event.xbutton.state & ShiftMask; - wxevent.m_controlDown = local_event.xbutton.state & ControlMask; - wxevent.m_altDown = local_event.xbutton.state & Mod3Mask; - wxevent.m_metaDown = local_event.xbutton.state & Mod1Mask; - wxevent.SetTimestamp(local_event.xbutton.time); - - // Now check if we need to translate this event into a double click - if (TRUE) // canvas->doubleClickAllowed) - { - if (wxevent.ButtonDown()) - { - long dclickTime = XtGetMultiClickTime((Display*) wxGetDisplay()); - - // get button and time-stamp - int button = 0; - if (wxevent.LeftDown()) - button = 1; - else if (wxevent.MiddleDown()) - button = 2; - else if (wxevent.RightDown()) - button = 3; - long ts = wxevent.GetTimestamp(); - - // check, if single or double click - int buttonLast = canvas->GetLastClickedButton(); - long lastTS = canvas->GetLastClickTime(); - if ( buttonLast && buttonLast == button && (ts - lastTS) < dclickTime ) - { - // I have a dclick - canvas->SetLastClick(0, ts); - switch ( eventType ) - { - case wxEVT_LEFT_DOWN: - wxevent.SetEventType(wxEVT_LEFT_DCLICK); - break; - case wxEVT_MIDDLE_DOWN: - wxevent.SetEventType(wxEVT_MIDDLE_DCLICK); - break; - case wxEVT_RIGHT_DOWN: - wxevent.SetEventType(wxEVT_RIGHT_DCLICK); - break; - - default : - break; - } - - } - else - { - // not fast enough or different button - canvas->SetLastClick(button, ts); - } - } - } - - wxevent.SetId(canvas->GetId()); - wxevent.SetEventObject(canvas); - wxevent.m_x = local_event.xbutton.x; - wxevent.m_y = local_event.xbutton.y; - canvas->GetEventHandler()->ProcessEvent (wxevent); -#if 0 - if (eventType == wxEVT_ENTER_WINDOW || - eventType == wxEVT_LEAVE_WINDOW || - eventType == wxEVT_MOTION - ) - return; -#endif // 0 - break; - } - case KeyPress: - { - KeySym keySym; -#if 0 - XComposeStatus compose; - (void) XLookupString ((XKeyEvent *) & local_event, wxBuffer, 20, &keySym, &compose); -#endif // 0 - - (void) XLookupString ((XKeyEvent *) & local_event, wxBuffer, 20, &keySym, NULL); - int id = wxCharCodeXToWX (keySym); - - wxEventType eventType = wxEVT_CHAR; - - wxKeyEvent event (eventType); - - if (local_event.xkey.state & ShiftMask) - event.m_shiftDown = TRUE; - if (local_event.xkey.state & ControlMask) - event.m_controlDown = TRUE; - if (local_event.xkey.state & Mod3Mask) - event.m_altDown = TRUE; - if (local_event.xkey.state & Mod1Mask) - event.m_metaDown = TRUE; - event.SetEventObject(canvas); - event.m_keyCode = id; - event.SetTimestamp(local_event.xkey.time); - - if (id > -1) - { - // Implement wxFrame::OnCharHook by checking ancestor. - wxWindow *parent = canvas->GetParent(); - while (parent && !parent->IsKindOf(CLASSINFO(wxFrame))) - parent = parent->GetParent(); - - if (parent) - { - event.SetEventType(wxEVT_CHAR_HOOK); - if (parent->GetEventHandler()->ProcessEvent(event)) - return; - } - - // For simplicity, OnKeyDown is the same as OnChar - // TODO: filter modifier key presses from OnChar - event.SetEventType(wxEVT_KEY_DOWN); - - // Only process OnChar if OnKeyDown didn't swallow it - if (!canvas->GetEventHandler()->ProcessEvent (event)) - { - event.SetEventType(wxEVT_CHAR); - canvas->GetEventHandler()->ProcessEvent (event); - } - } - break; - } - case KeyRelease: - { - KeySym keySym; - (void) XLookupString ((XKeyEvent *) & local_event, wxBuffer, 20, &keySym, NULL); - int id = wxCharCodeXToWX (keySym); - - wxKeyEvent event (wxEVT_KEY_UP); - - if (local_event.xkey.state & ShiftMask) - event.m_shiftDown = TRUE; - if (local_event.xkey.state & ControlMask) - event.m_controlDown = TRUE; - if (local_event.xkey.state & Mod3Mask) - event.m_altDown = TRUE; - if (local_event.xkey.state & Mod1Mask) - event.m_metaDown = TRUE; - event.SetEventObject(canvas); - event.m_keyCode = id; - event.SetTimestamp(local_event.xkey.time); - - if (id > -1) - { - canvas->GetEventHandler()->ProcessEvent (event); - } - break; - } - case FocusIn: - { - if (local_event.xfocus.detail != NotifyPointer) - { - wxFocusEvent event(wxEVT_SET_FOCUS, canvas->GetId()); - event.SetEventObject(canvas); - canvas->GetEventHandler()->ProcessEvent(event); - } - break; - } - case FocusOut: - { - if (local_event.xfocus.detail != NotifyPointer) - { - wxFocusEvent event(wxEVT_KILL_FOCUS, canvas->GetId()); - event.SetEventObject(canvas); - canvas->GetEventHandler()->ProcessEvent(event); - } - break; - } - default: - break; - } -} - -static void wxPanelItemEventHandler(Widget wid, - XtPointer client_data, - XEvent* event, - Boolean *continueToDispatch) -{ - // Widget can be a label or the actual widget. - - wxWindow *window = wxGetWindowFromTable(wid); - if (window) - { - wxMouseEvent wxevent(0); - if (wxTranslateMouseEvent(wxevent, window, wid, event)) - { - window->GetEventHandler()->ProcessEvent(wxevent); - } - } - - // TODO: probably the key to allowing default behaviour to happen. Say we - // set a m_doDefault flag to FALSE at the start of this function. Then in - // e.g. wxWindow::OnMouseEvent we can call Default() which sets this flag to - // TRUE, indicating that default processing can happen. Thus, behaviour can - // appear to be overridden just by adding an event handler and not calling - // wxWindow::OnWhatever. ALSO, maybe we can use this instead of the current - // way of handling drawing area events, to simplify things. - *continueToDispatch = True; -} - -static void wxScrollBarCallback(Widget scrollbar, - XtPointer clientData, - XmScaleCallbackStruct *cbs) -{ - wxWindow *win = wxGetWindowFromTable(scrollbar); - int orientation = (int) clientData; - - wxEventType eventType = wxEVT_NULL; - switch (cbs->reason) - { - case XmCR_INCREMENT: - { - eventType = wxEVT_SCROLL_LINEDOWN; - break; - } - case XmCR_DECREMENT: - { - eventType = wxEVT_SCROLL_LINEUP; - break; - } - case XmCR_DRAG: - { - eventType = wxEVT_SCROLL_THUMBTRACK; - break; - } - case XmCR_VALUE_CHANGED: - { - // TODO: Should this be intercepted too, or will it cause - // duplicate events? - eventType = wxEVT_SCROLL_THUMBTRACK; - break; - } - case XmCR_PAGE_INCREMENT: - { - eventType = wxEVT_SCROLL_PAGEDOWN; - break; - } - case XmCR_PAGE_DECREMENT: - { - eventType = wxEVT_SCROLL_PAGEUP; - break; - } - case XmCR_TO_TOP: - { - eventType = wxEVT_SCROLL_TOP; - break; - } - case XmCR_TO_BOTTOM: - { - eventType = wxEVT_SCROLL_BOTTOM; - break; - } - default: - { - // Should never get here - wxFAIL_MSG("Unknown scroll event."); - break; - } - } - - wxScrollEvent event(eventType, win->GetId()); - event.SetEventObject(win); - event.SetPosition(cbs->value); - event.SetOrientation( (orientation == XmHORIZONTAL) ? wxHORIZONTAL : wxVERTICAL ); - - win->GetEventHandler()->ProcessEvent(event); -} - -// For repainting arbitrary windows -void wxUniversalRepaintProc(Widget w, XtPointer WXUNUSED(c_data), XEvent *event, char *) -{ - Window window; - Display *display; - - wxWindow* win = wxGetWindowFromTable(w); - if (!win) - return; - - switch(event -> type) - { - case Expose: - { - window = (Window) win -> GetXWindow(); - display = (Display *) win -> GetXDisplay(); - - if (event -> xexpose.count == 0) - { - win->DoPaint(); - - win->ClearUpdateRects(); - } - else - { - win->AddUpdateRect(event->xexpose.x, event->xexpose.y, - event->xexpose.width, event->xexpose.height); - } - - break; - } - } -} - -// ---------------------------------------------------------------------------- -// CanvaseXXXSize() functions -// ---------------------------------------------------------------------------- - -// SetSize, but as per old wxCanvas (with drawing widget etc.) -void wxWindow::CanvasSetSize (int x, int y, int w, int h, int sizeFlags) -{ - // A bit of optimization to help sort out the flickers. - int oldX, oldY, oldW, oldH; - GetSize(& oldW, & oldH); - GetPosition(& oldX, & oldY); - - bool useOldPos = FALSE; - bool useOldSize = FALSE; - - if ((x == -1) && (x == -1) && ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0)) - useOldPos = TRUE; - else if (x == oldX && y == oldY) - useOldPos = TRUE; - - if ((w == -1) && (h == -1)) - useOldSize = TRUE; - else if (w == oldW && h == oldH) - useOldSize = TRUE; - - if (!wxNoOptimize::CanOptimize()) - { - useOldSize = FALSE; useOldPos = FALSE; - } - - if (useOldPos && useOldSize) - return; - - Widget drawingArea = (Widget) m_drawingArea; - bool managed = XtIsManaged(m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow); - - if (managed) - XtUnmanageChild (m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow); - XtVaSetValues(drawingArea, XmNresizePolicy, XmRESIZE_ANY, NULL); - - int xx = x; int yy = y; - AdjustForParentClientOrigin(xx, yy, sizeFlags); - - if (!useOldPos) - { - if (x > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - { - XtVaSetValues (m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow, - XmNx, xx, NULL); - } - - if (y > -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - { - XtVaSetValues (m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow, - XmNy, yy, NULL); - } - } - - if (!useOldSize) - { - - if (w > -1) - { - if (m_borderWidget) - { - XtVaSetValues ((Widget) m_borderWidget, XmNwidth, w, NULL); - short thick, margin; - XtVaGetValues ((Widget) m_borderWidget, - XmNshadowThickness, &thick, - XmNmarginWidth, &margin, - NULL); - w -= 2 * (thick + margin); - } - - XtVaSetValues ((Widget) m_scrolledWindow, XmNwidth, w, NULL); - - Dimension spacing; - Widget sbar; - XtVaGetValues ((Widget) m_scrolledWindow, - XmNspacing, &spacing, - XmNverticalScrollBar, &sbar, - NULL); - Dimension wsbar; - if (sbar) - XtVaGetValues (sbar, XmNwidth, &wsbar, NULL); - else - wsbar = 0; - - w -= (spacing + wsbar); - -#if 0 - XtVaSetValues(drawingArea, XmNwidth, w, NULL); -#endif // 0 - } - if (h > -1) - { - if (m_borderWidget) - { - XtVaSetValues ((Widget) m_borderWidget, XmNheight, h, NULL); - short thick, margin; - XtVaGetValues ((Widget) m_borderWidget, - XmNshadowThickness, &thick, - XmNmarginHeight, &margin, - NULL); - h -= 2 * (thick + margin); - } - - XtVaSetValues ((Widget) m_scrolledWindow, XmNheight, h, NULL); - - Dimension spacing; - Widget sbar; - XtVaGetValues ((Widget) m_scrolledWindow, - XmNspacing, &spacing, - XmNhorizontalScrollBar, &sbar, - NULL); - Dimension wsbar; - if (sbar) - XtVaGetValues (sbar, XmNheight, &wsbar, NULL); - else - wsbar = 0; - - h -= (spacing + wsbar); - -#if 0 - XtVaSetValues(drawingArea, XmNheight, h, NULL); -#endif // 0 - } - } - - if (managed) - XtManageChild (m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow); - XtVaSetValues(drawingArea, XmNresizePolicy, XmRESIZE_NONE, NULL); - -#if 0 - int ww, hh; - GetClientSize (&ww, &hh); - wxSizeEvent sizeEvent(wxSize(ww, hh), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); -#endif // 0 -} - -void wxWindow::CanvasSetClientSize (int w, int h) -{ - Widget drawingArea = (Widget) m_drawingArea; - - XtVaSetValues(drawingArea, XmNresizePolicy, XmRESIZE_ANY, NULL); - - if (w > -1) - XtVaSetValues(drawingArea, XmNwidth, w, NULL); - if (h > -1) - XtVaSetValues(drawingArea, XmNheight, h, NULL); - -#if 0 - // TODO: is this necessary? - allowRepainting = FALSE; - - XSync (XtDisplay (drawingArea), FALSE); - XEvent event; - while (XtAppPending (wxTheApp->appContext)) - { - XFlush (XtDisplay (drawingArea)); - XtAppNextEvent (wxTheApp->appContext, &event); - XtDispatchEvent (&event); - } -#endif // 0 - - XtVaSetValues(drawingArea, XmNresizePolicy, XmRESIZE_NONE, NULL); - -#if 0 - allowRepainting = TRUE; - DoRefresh (); - - wxSizeEvent sizeEvent(wxSize(w, h), GetId()); - sizeEvent.SetEventObject(this); - - GetEventHandler()->ProcessEvent(sizeEvent); -#endif // 0 -} - -void wxWindow::CanvasGetClientSize (int *w, int *h) const -{ - // Must return the same thing that was set via SetClientSize - Dimension xx, yy; - XtVaGetValues ((Widget) m_drawingArea, XmNwidth, &xx, XmNheight, &yy, NULL); - *w = xx; - *h = yy; -} - -void wxWindow::CanvasGetSize (int *w, int *h) const -{ - Dimension xx, yy; - if ((Widget) m_borderWidget) - XtVaGetValues ((Widget) m_borderWidget, XmNwidth, &xx, XmNheight, &yy, NULL); - else if ((Widget) m_scrolledWindow) - XtVaGetValues ((Widget) m_scrolledWindow, XmNwidth, &xx, XmNheight, &yy, NULL); - else - XtVaGetValues ((Widget) m_drawingArea, XmNwidth, &xx, XmNheight, &yy, NULL); - - *w = xx; - *h = yy; -} - -void wxWindow::CanvasGetPosition (int *x, int *y) const -{ - Position xx, yy; - XtVaGetValues (m_borderWidget ? (Widget) m_borderWidget : (Widget) m_scrolledWindow, XmNx, &xx, XmNy, &yy, NULL); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - if (GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - xx -= pt.x; - yy -= pt.y; - } - - *x = xx; - *y = yy; -} - -// ---------------------------------------------------------------------------- -// TranslateXXXEvent() functions -// ---------------------------------------------------------------------------- - -bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Widget widget, XEvent *xevent) -{ - switch (xevent->xany.type) - { - case EnterNotify: - case LeaveNotify: - case ButtonPress: - case ButtonRelease: - case MotionNotify: - { - wxEventType eventType = wxEVT_NULL; - - if (xevent->xany.type == LeaveNotify) - { - win->SetButton1(FALSE); - win->SetButton2(FALSE); - win->SetButton3(FALSE); - return FALSE; - } - else if (xevent->xany.type == MotionNotify) - { - eventType = wxEVT_MOTION; - } - else if (xevent->xany.type == ButtonPress) - { - if (xevent->xbutton.button == Button1) - { - eventType = wxEVT_LEFT_DOWN; - win->SetButton1(TRUE); - } - else if (xevent->xbutton.button == Button2) - { - eventType = wxEVT_MIDDLE_DOWN; - win->SetButton2(TRUE); - } - else if (xevent->xbutton.button == Button3) - { - eventType = wxEVT_RIGHT_DOWN; - win->SetButton3(TRUE); - } - } - else if (xevent->xany.type == ButtonRelease) - { - if (xevent->xbutton.button == Button1) - { - eventType = wxEVT_LEFT_UP; - win->SetButton1(FALSE); - } - else if (xevent->xbutton.button == Button2) - { - eventType = wxEVT_MIDDLE_UP; - win->SetButton2(FALSE); - } - else if (xevent->xbutton.button == Button3) - { - eventType = wxEVT_RIGHT_UP; - win->SetButton3(FALSE); - } - else return FALSE; - } - else - { - return FALSE; - } - - wxevent.SetEventType(eventType); - - Position x1, y1; - XtVaGetValues(widget, XmNx, &x1, XmNy, &y1, NULL); - - int x2, y2; - win->GetPosition(&x2, &y2); - - // The button x/y must be translated to wxWindows - // window space - the widget might be a label or button, - // within a form. - int dx = 0; - int dy = 0; - if (widget != (Widget)win->GetMainWidget()) - { - dx = x1; - dy = y1; - } - - wxevent.m_x = xevent->xbutton.x + dx; - wxevent.m_y = xevent->xbutton.y + dy; - - wxevent.m_leftDown = ((eventType == wxEVT_LEFT_DOWN) - || (event_left_is_down (xevent) - && (eventType != wxEVT_LEFT_UP))); - wxevent.m_middleDown = ((eventType == wxEVT_MIDDLE_DOWN) - || (event_middle_is_down (xevent) - && (eventType != wxEVT_MIDDLE_UP))); - wxevent.m_rightDown = ((eventType == wxEVT_RIGHT_DOWN) - || (event_right_is_down (xevent) - && (eventType != wxEVT_RIGHT_UP))); - - wxevent.m_shiftDown = xevent->xbutton.state & ShiftMask; - wxevent.m_controlDown = xevent->xbutton.state & ControlMask; - return TRUE; - } - } - return FALSE; -} - -bool wxTranslateKeyEvent(wxKeyEvent& wxevent, wxWindow *win, Widget widget, XEvent *xevent) -{ - switch (xevent->xany.type) - { - case KeyPress: - { - char buf[20]; - - KeySym keySym; -#if 0 - XComposeStatus compose; - (void) XLookupString ((XKeyEvent *) xevent, buf, 20, &keySym, &compose); -#endif // 0 - (void) XLookupString ((XKeyEvent *) xevent, buf, 20, &keySym, NULL); - int id = wxCharCodeXToWX (keySym); - - if (xevent->xkey.state & ShiftMask) - wxevent.m_shiftDown = TRUE; - if (xevent->xkey.state & ControlMask) - wxevent.m_controlDown = TRUE; - if (xevent->xkey.state & Mod3Mask) - wxevent.m_altDown = TRUE; - if (xevent->xkey.state & Mod1Mask) - wxevent.m_metaDown = TRUE; - wxevent.SetEventObject(win); - wxevent.m_keyCode = id; - wxevent.SetTimestamp(xevent->xkey.time); - - wxevent.m_x = xevent->xbutton.x; - wxevent.m_y = xevent->xbutton.y; - - if (id > -1) - return TRUE; - else - return FALSE; - break; - } - default: - break; - } - return FALSE; -} - -// ---------------------------------------------------------------------------- -// Colour stuff -// ---------------------------------------------------------------------------- - -#define YAllocColor XAllocColor -XColor g_itemColors[5]; -int wxComputeColours (Display *display, wxColour * back, wxColour * fore) -{ - int result; - static XmColorProc colorProc; - - result = wxNO_COLORS; - - if (back) - { - g_itemColors[0].red = (((long) back->Red ()) << 8); - g_itemColors[0].green = (((long) back->Green ()) << 8); - g_itemColors[0].blue = (((long) back->Blue ()) << 8); - g_itemColors[0].flags = DoRed | DoGreen | DoBlue; - if (colorProc == (XmColorProc) NULL) - { - // Get a ptr to the actual function - colorProc = XmSetColorCalculation ((XmColorProc) NULL); - // And set it back to motif. - XmSetColorCalculation (colorProc); - } - (*colorProc) (&g_itemColors[wxBACK_INDEX], - &g_itemColors[wxFORE_INDEX], - &g_itemColors[wxSELE_INDEX], - &g_itemColors[wxTOPS_INDEX], - &g_itemColors[wxBOTS_INDEX]); - result = wxBACK_COLORS; - } - if (fore) - { - g_itemColors[wxFORE_INDEX].red = (((long) fore->Red ()) << 8); - g_itemColors[wxFORE_INDEX].green = (((long) fore->Green ()) << 8); - g_itemColors[wxFORE_INDEX].blue = (((long) fore->Blue ()) << 8); - g_itemColors[wxFORE_INDEX].flags = DoRed | DoGreen | DoBlue; - if (result == wxNO_COLORS) - result = wxFORE_COLORS; - } - - Display *dpy = display; - Colormap cmap = (Colormap) wxTheApp->GetMainColormap((WXDisplay*) dpy); - - if (back) - { - /* 5 Colours to allocate */ - for (int i = 0; i < 5; i++) - if (!YAllocColor (dpy, cmap, &g_itemColors[i])) - result = wxNO_COLORS; - } - else if (fore) - { - /* Only 1 colour to allocate */ - if (!YAllocColor (dpy, cmap, &g_itemColors[wxFORE_INDEX])) - result = wxNO_COLORS; - } - - return (result); - -} - -// Changes the foreground and background colours to be derived from the current -// background colour. To change the foreground colour, you must call -// SetForegroundColour explicitly. -void wxWindow::ChangeBackgroundColour() -{ - WXWidget mainWidget = GetMainWidget(); - if ( mainWidget ) - DoChangeBackgroundColour(mainWidget, m_backgroundColour); - - // This not necessary -#if 0 - - if (m_scrolledWindow && (GetMainWidget() != m_scrolledWindow)) - { - DoChangeBackgroundColour(m_scrolledWindow, m_backgroundColour); - // Have to set the scrollbar colours back since - // the scrolled window seemed to change them - wxColour backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE); - - if (m_hScrollBar) - DoChangeBackgroundColour(m_hScrollBar, backgroundColour); - if (m_vScrollBar) - DoChangeBackgroundColour(m_vScrollBar, backgroundColour); - } -#endif -} - -void wxWindow::ChangeForegroundColour() -{ - WXWidget mainWidget = GetMainWidget(); - if ( mainWidget ) - DoChangeForegroundColour(mainWidget, m_foregroundColour); - if ( m_scrolledWindow && mainWidget != m_scrolledWindow ) - DoChangeForegroundColour(m_scrolledWindow, m_foregroundColour); -} - -// Change a widget's foreground and background colours. -void wxWindow::DoChangeForegroundColour(WXWidget widget, wxColour& foregroundColour) -{ - // When should we specify the foreground, if it's calculated - // by wxComputeColours? - // Solution: say we start with the default (computed) foreground colour. - // If we call SetForegroundColour explicitly for a control or window, - // then the foreground is changed. - // Therefore SetBackgroundColour computes the foreground colour, and - // SetForegroundColour changes the foreground colour. The ordering is - // important. - - Widget w = (Widget)widget; - XtVaSetValues( - w, - XmNforeground, foregroundColour.AllocColour(XtDisplay(w)), - NULL - ); -} - -void wxWindow::DoChangeBackgroundColour(WXWidget widget, wxColour& backgroundColour, bool changeArmColour) -{ - wxComputeColours (XtDisplay((Widget) widget), & backgroundColour, - (wxColour*) NULL); - - XtVaSetValues ((Widget) widget, - XmNbackground, g_itemColors[wxBACK_INDEX].pixel, - XmNtopShadowColor, g_itemColors[wxTOPS_INDEX].pixel, - XmNbottomShadowColor, g_itemColors[wxBOTS_INDEX].pixel, - XmNforeground, g_itemColors[wxFORE_INDEX].pixel, - NULL); - - if (changeArmColour) - XtVaSetValues ((Widget) widget, - XmNarmColor, g_itemColors[wxSELE_INDEX].pixel, - NULL); -} - -bool wxWindow::SetBackgroundColour(const wxColour& col) -{ - if ( !wxWindowBase::SetBackgroundColour(col) ) - return FALSE; - - ChangeBackgroundColour(); - - return TRUE; -} - -bool wxWindow::SetForegroundColour(const wxColour& col) -{ - if ( !wxWindowBase::SetForegroundColour(col) ) - return FALSE; - - ChangeForegroundColour(); - - return TRUE; -} - -void wxWindow::ChangeFont(bool keepOriginalSize) -{ - // Note that this causes the widget to be resized back - // to its original size! We therefore have to set the size - // back again. TODO: a better way in Motif? - Widget w = (Widget) GetLabelWidget(); // Usually the main widget - if (w && m_font.Ok()) - { - int width, height, width1, height1; - GetSize(& width, & height); - - // lesstif 0.87 hangs here -#ifndef LESSTIF_VERSION - XtVaSetValues (w, - XmNfontList, (XmFontList) m_font.GetFontList(1.0, XtDisplay(w)), - NULL); -#endif - - GetSize(& width1, & height1); - if (keepOriginalSize && (width != width1 || height != height1)) - { - SetSize(-1, -1, width, height); - } - } -} - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -wxWindow *wxGetActiveWindow() -{ - // TODO - return NULL; -} - -// ---------------------------------------------------------------------------- -// wxNoOptimize: switch off size optimization -// ---------------------------------------------------------------------------- - -int wxNoOptimize::ms_count = 0; diff --git a/src/motif/wxwin.xbm b/src/motif/wxwin.xbm deleted file mode 100644 index 9c70498190..0000000000 --- a/src/motif/wxwin.xbm +++ /dev/null @@ -1,46 +0,0 @@ -#define wxwin.xbm_width 64 -#define wxwin.xbm_height 64 -static char wxwin.xbm_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, - 0xff, 0xff, 0x1f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x80, 0xc7, 0x19, - 0x8e, 0x01, 0x50, 0x00, 0x40, 0x00, 0xc7, 0x39, 0xcf, 0x01, 0x70, 0x00, - 0x40, 0x00, 0xc7, 0x31, 0x3c, 0x00, 0x50, 0x00, 0x40, 0x00, 0xc7, 0x21, - 0x1c, 0x00, 0x70, 0x00, 0x40, 0x80, 0xe3, 0x20, 0x38, 0x00, 0x50, 0x00, - 0x40, 0x80, 0xe3, 0x30, 0x3c, 0x00, 0x70, 0x00, 0x40, 0x80, 0xe3, 0x78, - 0x76, 0x01, 0x50, 0x00, 0x40, 0x00, 0xdf, 0xff, 0xf3, 0x20, 0x70, 0x00, - 0x40, 0x00, 0x8e, 0xff, 0x61, 0x70, 0x50, 0x00, 0x40, 0x00, 0x00, 0xfc, - 0x01, 0xf8, 0x70, 0x00, 0x40, 0x00, 0x00, 0xfc, 0x01, 0xfc, 0x51, 0x00, - 0x40, 0x00, 0x00, 0xfe, 0x03, 0xfc, 0x73, 0x00, 0x40, 0x00, 0x00, 0xff, - 0x03, 0xf8, 0x51, 0x00, 0x40, 0x00, 0x00, 0xff, 0x07, 0xf0, 0x70, 0x00, - 0x40, 0x00, 0x80, 0xff, 0x07, 0x60, 0x50, 0x00, 0x40, 0x00, 0x80, 0xff, - 0x0f, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xc0, 0xff, 0x1f, 0xfc, 0x50, 0x00, - 0x40, 0x00, 0xe0, 0xff, 0x1f, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xf0, 0x0f, - 0x00, 0xfc, 0x50, 0x00, 0x40, 0x00, 0xf0, 0x07, 0x00, 0xfc, 0x70, 0x00, - 0x40, 0x00, 0xf8, 0x07, 0x00, 0xfc, 0x50, 0x00, 0x40, 0x00, 0xfc, 0x03, - 0x00, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xfc, 0x01, 0x00, 0xfc, 0x50, 0x00, - 0x40, 0x00, 0xfe, 0x00, 0x00, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xfe, 0x00, - 0x00, 0xfc, 0x50, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x70, 0x00, - 0x40, 0x80, 0x7f, 0x00, 0x00, 0xfc, 0x50, 0x00, 0x40, 0x80, 0x3f, 0x00, - 0x00, 0xfc, 0x70, 0x00, 0x40, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, - 0x40, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x40, 0xe0, 0xff, 0xff, - 0xff, 0xff, 0x50, 0x00, 0x40, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, - 0x40, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x40, 0xf0, 0xff, 0xff, - 0xff, 0xff, 0x70, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x50, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, - 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x80, 0xaa, 0xaa, 0xaa, - 0xaa, 0xaa, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/src/motif/xmcombo/combobox.doc b/src/motif/xmcombo/combobox.doc deleted file mode 100644 index 41ec4ac5e1..0000000000 --- a/src/motif/xmcombo/combobox.doc +++ /dev/null @@ -1,220 +0,0 @@ -Welcome to the ComboBox widget for Motif 1.1 or 1.2 (maybe even 2.0...)! -This is now version 1.32. -THERE ARE A LOT OF NEW RESOURCES AVAILABLE SO PLEASE READ THE -DOCUMENTATION (in ComboBox_eng.dvi)!!! - -If you're in doubt, the primary source of this widget is - ftp.informatik.rwth-aachen.de (137.226.112.172) - The source is in: /pub/packages/ComboBox/ComboBox.tar.gz -This is our campus server in Aachen, Germany. From outside Europe -please also contact: - ftp.x.org (198.112.44.100) - There you'll find the source in: - /contrib/widgets/motif/ComboBox/ComboBox.tar.gz -There are many local ftp servers that mirror the /contrib directory. Thus -with a delay of one or two days you'll also find the source on many other -ftp sites. - -PLEASE READ THIS INFORMATION CAREFULLY. IT ALWAYS CONTAINS THE MOST -RECENT INFORMATION. - -Whats new? (changes since the last version are marked with an asterisk) - * Some minor changes concerning the drop down list layout have been made in - order to correct some minor quirks. - * Updated files for VMS users (hellooooo -- where are you?!!) - - A real man page for use with troff/groff. It's in ComboBox.groff. - - Some applications like GUI development tools or TclMotif were unable to - get notice of these special resources because they were implemented - through the core's setValues method. Thus they don't appeared in the - resource list because there aren't any instance variables connected to - them. These mirror resources instead belong to child widgets. With 1.23 - the resource list (which can be queried by XtGetResourceList()) contains - entries for all mirror resources although the initial value setting is - always zero. But this should'nt matter. You can switch off these entries - by setting -DDONT_LOOK_IN_THE_MIRROR when compiling ComboBox.c. - - The selection policies XmSINGLE_SELECT and XmBROWSE_SELECT are now - supported. - - A new resource called XmNstaticList has been added, which switches the combo - box into a new mode with the drop down list statically displayed. - - Support of XmNautomaticSelection (like the resource known from XmList). - - New callbacks XmNunselectionCallback, XmNdefaultActionCallback, - XmNmodifyVerifyCallback, XmNmotionVerifyCallback and XmNvalueChangedCallback - added (don't know whether I forgot to mention one...). - - New convenience function XmComboBoxClearItemSelection() for deselecting - any selection in the combo box (if XmNselectionPolicy is XmSINGLE_SELECT). - - New demo app called FontSel. It shows how to realize a full blown - font selection dialog (even for scalable fonts) using combo boxes. - - Some additional casting has been added to the source, so it seems - now really to be ANSI compliant. - - can be compiled with Motif 1.2. (Tested on Sun & HP yet) - - many new resources & a callback that is called whenever the drop down - list gets dropped down or hidden. - - corrected a few minor typos in the header files (mis-spelled function - prototypes) and some minor quirks in the source. - - A FULL-BLOWN ENGLISH DOCUMENTATION (dvi file) - If you can't process dvi files you can download a post script variant - from ftp.informatik.rwth-aachen.de (137.226.112.172) as - /pub/packages/ComboBox/ComboBox_eng.ps.gz - - The XmNitems and XmNitemCount resources can now be set at any time (not - only when creating the ComboBox widget). - - Corrected some minor memory leaks in the source as well as some typos and - errors in the documentation. - - Drag'n'Drop is now supported with Motif 1.2. - - fvwm's handling of FocusOut events supported. - - -Well - if you never heard of ComboBoxes you'll have to figure out -yourself what these strange widgets really are. The following text -will only explain how to include it into your own code. (Just as a little -hint: combo boxes are well known from M$ Windoze. A combo box consists -of a text input field with an arrow button besides it. When you click -on the arrow button the combo box pops up a list just below its input -area. You can now browse in it or pop it down by pressing the arrow button -again.) - -The source code is now in (wide public) use for nearly a year. -(before this time it was tested for half a year in the Institut fuer -Geometrie und Praktische Mathematik, where I'm working). So you get a well -tested piece of widget magic. Please feel free to report any trouble you -have using the ComboBox widget. But be patient - I'm just a student. In the -meantime I've received a couple of reports and hopefully the widget now can -be used on many well known systems as well as with Motif 1.1 and 1.2. I've -heard of people using the ComboBox widget with Motif 2.0, because they need -the many features... But there seems to be problems with the subclassing -mechanism, so the sanity check CheckComboBox() fails. This check is now -disabled if the source detects a Motif 2.0 release. - -BTW - I'm collecting picture postcards...if you have one with a nice picture of -the place you're living in, don't hesitate... 8-) - -1. To compile you will need at least Motif :-) - (or :-( depending on your point of view...) - and an *ANSI* c compiler (the code is completely ANSI - - no more mess with the old K&R style)! - To compile, try something like - $ cc -DFUNCPROTO -c ComboBox.c - this should do it's work. -DFUNCPROTO is needed because the function - prototypes would be K&R style without it. In addition you often need - to specify to the compiler that the source is ANSI. (-ansi with gcc) - -2. Place a - #include "ComboBox.h" - at the top of your source file and create the widget just like any - other ordinary widget. The class is xmComboBoxWidgetClass. There is - no convenience function since it's hardly ever needed with this - widget. - - To compile the short demo: - $ cc -DFUNCPROTO ComboBoxDemo.c -o ComboBoxDemo ComboBox.o \ - -lXm -lXt -lX11 - On some machines you'll need to link additional libs (like network - and socket libs). - Or use the makefile (first edit it accordingly to your needs): - $ make demo - Run the demo with: - $ ./ComboBoxDemo - - I don't provide a makefile for every system/compiler combination - because this widget is intended to be placed seamless into the - existing Motif widget set. Thus, compile it and if all is ok, then - copy the includes to the Xm directory and the object file to a - suitable place in your file system -- but don't even think of - /dev/null as a good destination ;-) - - To compile the FontSel demo: - Edit the makefile (if you haven't already done so), then do a: - $ make FontSel - And run the Font Selector demo: - $ ./FontSel - - If you also have the ButtonFace Library you may want to do a - $ make FontSelX - instead. This will use my pictural push buttons for okay, cancel and help. - -3. The ComboBox consists primarily of a XmManager descendant - the - widget you'll get from XtCreateWidget(). This widget contains several - more widgets as its childs: a XmTextField and some other widgets. - You *must* not modify any resources of the TextField directly - this - leads sooner or later to trouble. Instead all the necessary instance - variables of the TextField are accessible through the main widget - (the one XtCreateWidget() returned). - There are many (convenience) functions like the ones for XmTextFields - and XmLists to set the TextField's text, add items to the drop down - list and and and... please see ComboBox.h for details (you know: - the documentation is under work...) - -4. There is one special resource called "persistentDropDown". It - defaults to "False". Its purpose it not easy to explain since that - has to do with the way your window manager is set up. If you're - using the explicit focus methode (that is: you move the keyboard - focus from application to application by clicking on the top level - window) you're lucky - don't ever think of this resource. For all - those other people (like me): if the window manager is set up to - give the keyboard focus to the top level window the mouse cursor - is over you'll notice one annoying "feature". (It's really *not* - a bug ;-) ) If you drop down the ComboBox's list (by clicking on - the arrow right beside the text field) and move the mouse cursor - out of the window the ComboBox resides in the list immediatly - disappears. That happens because the ComboBox looses the keyboard - focus. You can try to bypass that behavior by setting - "persistentDropDown" to "True" if you like. In the application's - resource file a line like - *YourApp*ComboBox.persistentDropDown: True - should do the job. But remember: whether this will work depends - on the window manager you're using. I have testet this with - Silicon Graphics' 4dwm (a mwm clone). - -5. On some window managers the drop down list gets hidden as soon as - the user moves the mouse cursor into the list. If this happens try - to set the resource "twmHandlingOn" to "True". You can do this - on the command line: - ComboBoxDemo -xrm "*.twmHandlingOn: True" - This should do it's job with twm as well as fvwm. With olwm you shouldn't - need to set one of the special resources. - -6. The combo box has been reported to run sucessfully on: - Silicon Graphics, Sun, HP, IBM RS6000, PC, even VMS! - Linux, of course...! - Attention VMS folks! You'll find two files called "motif11.opt" or - "motif12.opt" and "vmsmake.com" in this packages. They are provided by - Vincent Li. You'll hopefully know what to do with these two - files. They are provided "as is" with no warranty. Please read the file - "readme.vms". - -42. Known bugs: you will need a german dictionary to understand all the - jokes in the source and in the german documentation. - -That's it! Enjoy using this ComboBox widget. -(More than 160 downloads yet within the first 3 weeks -- seems that I've -filled in a real gap in Motif. Thanks to all who encouraged me to do -further work on the ComboBox widget -- especially Chris Marotz!) - -You may also want to visit my "Motif Programming Cornor" at - file://ftp.igpm.rwth-aachen.de/arc/pub/unix/html/motifcorner.html -with tips & tricks about Motif. - -I really don't understand why the folks at OSF didn't implemented -something like the M$ Windoze ComboBox in Motif. Maybe they have -had their moti"f"es... (Rumor has spread it that the mysterious -Motif 2.0 will have one - whow! after many years, the OSF folk got it!) - -P.S.: This software is Free Software. Please refer to the file - COPYING, which you should have received together this - file and the source code of the combo box widget. - However if you find this widget to be usefull, you are encouraged - to donate a reasonable amount to a charitable institution -- - there are enough people out there who need help! Sometimes I got - the strong impression that programmers tend to get lost in their - own "virtual reality" - sitting in front of their screen, hacking - new algorithms and forget about everything around them. So please - don't forget about people who need help. - -(c) 1993, 1994 Harald Albrecht -Institut fuer Geometrie und Praktische Mathematik -Rheinisch-Westfaelische Technische Universitaet Aachen, -D-52056 Aachen, Germany -albrecht@igpm.rwth-aachen.de - -Bad Aachen -- Die Stadt der Printe. Warum Aachen ein Kurbad ist? --- Wieso Kurbad? "Bad" heisst doch nur, dass es hier staendig regnet (wenn -es eben 'mal nicht schneit...) diff --git a/src/motif/xmcombo/combobox.man b/src/motif/xmcombo/combobox.man deleted file mode 100644 index 026f0a31f1..0000000000 --- a/src/motif/xmcombo/combobox.man +++ /dev/null @@ -1,1386 +0,0 @@ - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - -NNAAMMEE - XmComboBox - The Combo Box widget class - -SSYYNNOOPPSSIISS - ##iinncclluuddee <> - - Depending on your system's configuration the place of this - include file may vary. In doubt, contact your local system - administrator. Or run in circles and shout. - - -DDEESSCCRRIIPPTTIIOONN - The ComboBox widget allows the user to select elements - from a list of choices, and enter their own values in a - text widget. To conserve screen space, the list of choices - is shown only when the user selects the down arrow button. - The choices may then be selected from this list. The list - will automatically by removed when the user selects an - item in the list. When the list is removed, the item that - was selected will be placed in the text widget. Typing the - escape key when the list is up, cancels the list popup. - - CCllaasssseess - ComboBox inherits behaviour and resources from CCoorree and - CCoommppoossiittee, CCoonnssttrraaiinntt and XXmmMMaannaaggeerr classes. - - The class pointer is xxmmCCoommbbooBBooxxWWiiddggeettCCllaassss. - - The class name is XXmmCCoommbbooBBooxx. - - NNeeww RReessoouurrcceess - The following table defines a set of widget resources used - by the programmer to specify data. The programmer can also - set the resource values for the inherited classes to set - attributes for this widget. To reference a resource by - name or by class in a .Xdefaults file, remove the XXmmNN or - XXmmCC prefix and use the remaining letters. To specify one - of the defined values for a resource in a .Xdefaults file, - remove the XXmm prefix and use the remaining letters (in - either lowercase or uppercase, but include any underscores - between words). The codes in the access column indicate if - the given resource can be set at creation time (C), set by - using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), - or is not applicable (N/A). - - XXmmCCoommbbooBBooxx RReessoouurrccee SSeett - ----------------------------------------------------------------- - NNaammee DDeeffaauulltt AAcccceessss - CCllaassss TTyyppee - ----------------------------------------------------------------- - XmNactivateCallback NULL C - XmCCallback XtCallbackList - ----------------------------------------------------------------- - - - - -Version 1.31 20 March 1995 1 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XmNalignment XmALIGNMENT_CENTER CSG - XmCAlignment unsigned char - ----------------------------------------------------------------- - XmNarrowSpacingOn False CSG - XmNCArrowSpacingOn Boolean - ----------------------------------------------------------------- - XmNautomaticSelection False CSG - XmCAutomaticSelection Boolean - ----------------------------------------------------------------- - XmNblinkRate 500 CSG - XmCBlinkRate int - ----------------------------------------------------------------- - XmNcolumns dynamic CSG - XmCColumns short - ----------------------------------------------------------------- - XmNcursorPosition 0 CSG - XmCCursorPosition XmTextPosition - ----------------------------------------------------------------- - XmNcursorPositionVisible True CSG - XmCCursorPositionVisible Boolean - ----------------------------------------------------------------- - XmNdefaultActionCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - XmNdropDownCallback NULL CSG - XmCDropDownCallback XtCallbackList - ----------------------------------------------------------------- - XmNdropDownCursor center_ptr CSG - XmCDropDownCursor Cursor - ----------------------------------------------------------------- - XmNdropDownOffset dynamic CSG - XmCDropDownOffset Position - ----------------------------------------------------------------- - XmNeditable False CG - XmCEditable Boolean - ----------------------------------------------------------------- - XmNfontList dynamic CSG - XmCFontList XmFontList - ----------------------------------------------------------------- - XmNitemCount 0 CSG - XmCItemCount int - ----------------------------------------------------------------- - XmNitems NULL CSG - XmCItems XmStringTable - ----------------------------------------------------------------- - XmNlabelFontList dynamic CSG - XmCLabelFontList XmFontList - ----------------------------------------------------------------- - XmNlabelInsensitivePixmap XmUNSPECIFIED_PIXMAP CSG - XmCLabelInsensitivePixmap Pixmap - ----------------------------------------------------------------- - XmNlabelMarginBottom 0 CSG - - - - - -Version 1.31 20 March 1995 2 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XmCLabelMarginBottom Dimension - ----------------------------------------------------------------- - XmNlabelMarginHeight 2 CSG - XmCLabelMarginHeight Dimension - ----------------------------------------------------------------- - XmNlabelMarginLeft 0 CSG - XmCLabelMarginLeft Dimension - ----------------------------------------------------------------- - XmNlabelMarginRight 0 CSG - XmCLabelMarginRight Dimension - ----------------------------------------------------------------- - XmNlabelMarginTop 0 CSG - XmCLabelMarginTop Dimension - ----------------------------------------------------------------- - XmNlabelMarginWidth 0 CSG - XmCLabelMarginWidth Dimension - ----------------------------------------------------------------- - XmNlabelPixmap XmUNSPECIFIED_PIXMAP CSG - XmCLabelPixmap Pixmap - ----------------------------------------------------------------- - XmNlabelString dynamic CSG - XmCXmString XmString - ----------------------------------------------------------------- - XmNlabelType XmSTRING CSG - XmCLabelType unsigned char - ----------------------------------------------------------------- - XmNlistMarginHeight 0 CSG - XmCListMarginHeight Dimension - ----------------------------------------------------------------- - XmNlistMarginWidth 0 CSG - XmCListMarginWidth Dimension - ----------------------------------------------------------------- - XmNlistSizePolicy XmVARIABLE CG - XmCListSizePolicy unsigned char - ----------------------------------------------------------------- - XmNlistSpacing 0 CSG - XmCListSpacing Dimension - ----------------------------------------------------------------- - XmNmarginHeight 5 CSG - XmCMarginHeight Dimension - ----------------------------------------------------------------- - XmNmarginWidth 5 CSG - XmCMarginWidth Dimension - ----------------------------------------------------------------- - XmNmaxLength largest integer CSG - XmCMaxLength int - ----------------------------------------------------------------- - XmNmodifyVerifyCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - XmNmotionVerifyCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - - - - -Version 1.31 20 March 1995 3 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XmNpersistentDropDown False CSG - XmCPersistentDropDown Boolean - ----------------------------------------------------------------- - XmNscrollBarDisplayPolicy XmAS_NEEDED CSG - XmCScrollBarDisplayPolicy unsigned char - ----------------------------------------------------------------- - XmNselectionCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - XmNselectionPolicy XmBROWSE_SELECT CG - XmCSelectionPolicy unsigned char - ----------------------------------------------------------------- - XmNselectThreshold 5 CSG - XmCSelectThreshold int - ----------------------------------------------------------------- - XmNshowLabel False CG - XmCShowLabel Boolean - ----------------------------------------------------------------- - XmNsorted False CSG - XmCSorted Boolean - ----------------------------------------------------------------- - XmNsortingCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - XmNsquareArrow False CSG - XmCSquareArrow Boolean - ----------------------------------------------------------------- - XmNstaticList False CSG - XmCStaticList Boolean - ----------------------------------------------------------------- - XmNstringDirection dynamic CSG - XmCStringDirection XmStringDirection - ----------------------------------------------------------------- - XmNtwmHandlingOn False CSG - XmCTwmHandlingOn Boolean - ----------------------------------------------------------------- - XmNtopItemPostion 1 G - XmCTopItemPostion int - ----------------------------------------------------------------- - XmNunselectionCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - XmNvalue "" CSG - XmCValue String - ----------------------------------------------------------------- - XmNvalueChangedCallback NULL CSG - XmCCallback XtCallbackList - ----------------------------------------------------------------- - XmNvisibleItemCount 8 CSG - XmCVisibleItemCount Int - ----------------------------------------------------------------- - - XXmmNNaaccttiivvaatteeCCaallllbbaacckk - Specifies a list of callbacks to be called when the - - - -Version 1.31 20 March 1995 4 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - user presses either the key "Enter" or "Activate". - The type of the structure passed to this callback - is XXmmAAnnyyCCaallllbbaacckkSSttrruucctt and the reason is - XXmmCCRR__AACCTTIIVVAATTEE. - - XXmmNNaalliiggnnmmeenntt - The alignment (left to right) for the label's text - or pixmap. Possible values are XXmmAALLIIGGNN-- - MMEENNTT__BBEEGGIINNNNIINNGG, XXmmAALLIIGGNNMMEENNTT__CCEENNTTEERR, and XXmmAALLIIGGNN-- - MMEENNTT__EENNDD. - - XXmmNNaauuttoommaattiiccSSeelleeccttiioonn - Indicates whether the XXmmNNsseelleeccttiioonnCCaallllbbaacckk is - invoked each time the user moves into a new item if - XXmmNNaauuttoommaattiiccSSeelleeccttiioonn is TTrruuee and the selection - mode is XXmmBBRROOWWSSEE__SSEELLEECCTT. If set to FFaallssee the XXmmNNss-- - eelleeccttiioonnCCaallllbbaacckk is not invoked until the user - releases the mouse button. - - XXmmNNaarrrroowwSSppaacciinnggOOnn - Indicates whether a gap is displayed between the - arrow button and the text input field if this - resource is set to TTrruuee and XXmmNNeeddiittaabbllee is also set - to TTrruuee. If this resource is set to FFaallssee the - combo box widget will never display a gab between - the arrow button and the text area, irrespective of - the setting of XXmmNNeeddiittaabbllee. Note that setting - XXmmNNaarrrroowwSSppaacciinnggOOnn to FFaallssee doesn not conform to - common GUI styles. And it prevents the user from - easily recognizing whether the combo box is - editable or not. - - XXmmNNbblliinnkkRRaattee - The time in milliseconds that the cursor spends - being visible or invisible. A value of 0 prevents - the cursor from blinking. - - XXmmNNbboorrddeerrWWiiddtthh - That's no new resource but is already introduced in - the core class. This class overrides the default - value and sets it to zero. You can however override - it again if you're dissatisfied with the new - default setting. - - XXmmNNccoolluummnnss - Specifies the initial width of the input field mea- - sured in character spaces. The default value - depends on the value of the width of the combo box. - - XXmmNNccuurrssoorrPPoossiittiioonn - Indicates the position in the text where the insert - cursor is to be located. Its position is the offset - of characters and it starts with offset 0 at the - beginning of the text. - - - -Version 1.31 20 March 1995 5 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXmmNNccuurrssoorrPPoossiittiioonnVViissiibbllee - Flags whether the insert cursor position is marked - by a blinking cursor. - - XXmmNNddeeffaauullttAAccttiioonnCCaallllbbaacckk - Specifies a list of callbacks that is called every - time an item is double clicked. The reason is - XXmmCCRR__DDEEFFAAUULLTT__AACCTTIIOONN. Please remember that you - can't use this callback if XXmmNNssttaattiiccLLiisstt is FFaallssee - because the list is immediatly hidden after the - user selected an item from the list. Thus the user - can't double click on any item within the list. - - XXmmNNddrrooppDDoowwnnCCaallllbbaacckk - This is a list of callbacks to be called when the - list is about to be shown or hidden. The reasons - are XXmmCCRR__SSHHOOWW__LLIISSTT or XXmmCCRR__HHIIDDEE__LLIISSTT. - - XXmmNNddrrooppDDoowwnnCCuurrssoorr - Specifies the cursor to be used whenever the mouse - cursor is within the drop down list. - - XXmmNNddrrooppDDoowwnnOOffffsseett - Specifies the distance between the left border of - the list and the left border of the input field. - The default value is set to the width of the arrow - button. Only positive values are allowed for XXmmNN-- - ddrrooppDDoowwnnOOffffsseett, negative ones will be ignored. - - XXmmNNeeddiittaabbllee - Specifies the type of combo box. If set to True, - the combo box contains an editable input field. - Therefore, the user is free to select entries out - of the list and to enter new text or modify it. In - the other case, with XmNeditable set to False the - user can solely browse in and select entries out of - the list. - - XXmmNNffoonnttLLiisstt - Indicates the font list to be used for the input - field and the list. If the value is NULL at ini- - tialization, it is initialized by looking up the - parent hierarchy of the widget for an ancestor that - is a subclass of XXmmBBuulllleettiinnBBooaarrdd, XXmmVVeennddoorrSShheellll or - XXmmMMeennuuSShheellll. If such an ancestor is found, it's - font list will be taken by the combo box widget. - - XXmmNNiitteemmCCoouunntt - Specifies the total number of items in the list. - - XXmmNNiitteemmss - Points to an array of compound strings representing - the items to be displayed in the list. By means of - this a program can find out what items the list - - - -Version 1.31 20 March 1995 6 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - contains. It is also possible to set the contents - of the list box in one step by setting this - resource to a new array of compound strings. Please - remember: always set XXmmNNiitteemmss and XXmmNNiitteemmCCoouunntt - together in the same call to XXttSSeettVVaalluueess or - XXttVVaaSSeettVVaalluueess. If you ignore this rule the combo - box will ignore you and your attempt to set these - resources. - - XXmmNNllaabbeellIInnsseennssiittiivveePPiixxmmaapp - Specifies a pixmap used as the button face if XXmmNN-- - llaabbeellTTyyppee is set to XXmmPPIIXXMMAAPP and the combo box wid- - get is insensitive. - - XXmmNNllaabbeellPPiixxmmaapp - Specifies a pixmap to be displayed to the left of - the input field if XXmmNNllaabbeellTTyyppee is XXmmPPIIXXMMAAPP and - XXmmNNsshhoowwLLaabbeell is True (of course). - - XXmmNNllaabbeellSSttrriinngg - Specifies the the compound string to be displayed - if XXmmNNllaabbeellTTyyppee is set to XXmmSSTTRRIINNGG and XXmmNNsshhoowwLLaabbeell - is True. - - XXmmNNllaabbeellTTyyppee - The type of label (either string or pixmap). Possi- - ble values are XXmmPPIIXXMMAAPP and XXmmSSTTRRIINNGG. - - XXmmNNllaabbeellMMaarrggiinnTToopp,, XXmmNNllaabbeellMMaarrggiinnBBoottttoomm - XXmmNNllaabbeellMMaarrggiinnLLeefftt,, XXmmNNllaabbeellMMaarrggiinnRRiigghhtt - The amount of space between one side of the label - and the nearest margin. - - XXmmNNllaabbeellMMaarrggiinnHHeeiigghhtt,, XXmmNNllaabbeellMMaarrggiinnWWiiddtthh - The spacing between one side of the label and the - nearest edge of a shadow. - - XXmmNNlliissttMMaarrggiinnHHeeiigghhtt,, XXmmNNlliissttMMaarrggiinnWWiiddtthh - The height or width of the margin between the bor- - der of the list and the items in the list. - - XXmmNNlliissttSSiizzeePPoolliiccyy - Controls the reaction of the list when an item - grows horizontally beyond the current width of the - list and XXmmNNssttaattiiccLLiisstt is set to TTrruuee. If set to - XXmmCCOONNSSTTAANNTT, the list does not grow, and a horizon- - tal scroll bar is shown. If this resource is set to - XXmmVVAARRIIAABBLLEE, the list instead trys to grow such that - it match the size of the longest item, thus no hor- - izontal scroll bar will appear. When XXmmNNlliisstt-- - SSiizzeePPoolliiccyy is the list will again try to grow but - in case the width of the longest item in the list - is wider than the viewing area of the list a hori- - zontal scroll bar appears. - - - -Version 1.31 20 March 1995 7 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXmmNNlliissttSSppaacciinngg - The spacing between items in the list. - - XXmmNNmmaarrggiinnHHeeiigghhtt - Specifies the distance between the top and the bot- - tom of the widget window and the text displayed in - the input field. - - XXmmNNmmaarrggiinnWWiiddtthh - Like XmNmarginHeight this resource specifies the - distance between the left and the right border of - the widget window and the text. - - XXmmNNmmaaxxLLeennggtthh - Specifies the maximum length of the text string - that can be entered from the keyboard into the - input field of the combo box. Strings that are put - into the input field using XXmmCCoommbbooBBooxxSSeettSSttrriinngg - ignore this resource. - - XXmmNNmmooddiiffyyVVeerriiffyyCCaallllbbaacckk - Contains a list of callbacks called before text is - deleted from or inserted into the text area of the - combo box widget. The callbacks are called only if - XXmmNNeeddiittaabbllee is set to TTrruuee. The reason is - XXmmCCRR__MMOODDIIFFYYIINNGG__TTEEXXTT__VVAALLUUEE and the type of the - structure passed to this callback is XXmmCCoommbbooBBooxx-- - TTeexxttVVeerriiffyyCCaallllbbaacckkSSttrruucctt. - - XXmmNNmmoottiioonnVVeerriiffyyCCaallllbbaacckk - Specifies the list of callbacks that is called - before the insert cursor gets moved to another - position. The reason is XXmmCCRR__MMOOVVIINNGG__IINNSSEERRTT__CCUURRSSOORR - and the type of the structure whose address is - passed to the callback is XXmmCCoommbbooBBooxxTTeexxttVVeerriiffyyCCaallll-- - bbaacckk--SSttrruucctt. - - XXmmNNssccrroollllBBaarrDDiissppllaayyPPoolliiccyy - Controls the display of the vertical scroll bar in - the list when XXmmNNssttaattiiccLLiisstt is set to TTrruuee..When - XXmmNNssccrroollllBBaarrDDiissppllaayyPPoolliiccyy is set to XXmmAASS__NNEEEEDDEEDD, - the vertical scroll bar is displayed only when the - list contains more items than can be currently dis- - played. If set to XXmmSSTTAATTIICC the vertical scroll bar - is always displayed. - - XXmmNNppeerrssiisstteennttDDrrooppDDoowwnn - Welcome to the sad section in the life of X11 - applications. This resource and the inherent prob- - lems are due to the focus policy of the window man- - ager you're using. See the further details in the - later sections. - - - - - -Version 1.31 20 March 1995 8 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXmmNNsseelleeccttiioonnCCaallllbbaacckk - Specifies a list of callbacks that is called when - an item is selected. The reason is - XXmmCCRR__SSIINNGGLLEE__SSEELLEECCTT. The callbacks are NOT called - when the user browses through the items in the - list. - - XXmmNNsseelleeccttiioonnPPoolliiccyy - This resource controls whether the user can dese- - lect the currently selected item within a combo - box. The default value is XXmmBBRROOWWSSEE__SSEELLEECCTT, so - always one item gets selected if the combo box is - editable. In the case of XXmmSSIINNGGLLEE__SSEELLEECCTT the user - may deselect the current item either by clicking on - it in the drop down list or pressing the key - "Delete". Other values for XXmmNNsseelleeccttiioonnPPoolliiccyy are - currently not allowed. (Multiple selections will be - probably availabe with the next release.) - - XXmmNNsseelleeccttTThhrreesshhoolldd - Specifies the amount of pixels the mouse must move - until the selection of text is recognized in click - and drag mode. - - XXmmNNsshhoowwLLaabbeell - Specifies, whether a label containing text or a - pixmap should be displayed on the left side of the - combo box. This resource can only be specified dur- - ing the creation of the combo box, afterwards it - will have no effect. - - XXmmNNssoorrtteedd - Specifies whether the items in the list are sorted - or not In an unsorted list, the items are shown in - the order in which they're put into the list. When - adding an item to a sorted list, this item will be - put at the right place (alphabetically sorted). - - XXmmNNssoorrttiinnggCCaallllbbaacckk - Contains a list of callbacks that is called when- - ever a new item is added to the combo box widget - and XXmmNNssoorrtteedd is TTrruuee. The reason is XXmmCCRR__SSOORRTTIINNGG - and the type of the structure whose address is - passed to the callback is XXmmCCoommbbooBBooxxSSoorrttiinnggCCaallll-- - bbaacckk--SSttrruucctt. For detailed information see the fol- - lowing sections. - - XXmmNNssqquuaarreeAArrrrooww - Controls the width of the arrow button in respect - to its height. If this resource is TTrruuee the arrow - button is always layed out square. Otherwise the - arrow button's width will be approximatly 4/5th of - its height. - - - - -Version 1.31 20 March 1995 9 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXmmNNssttaattiiccLLiisstt - Controls whether the list is always statically dis- - played right below the text input area of the combo - box if set to TTrruuee. If you use a combo box with - XXmmNNssttaattiiccLLiisstt set to TTrruuee and XXmmNNeeddiittaabbllee set to - FFaallssee you should consider using a simple list wid- - get instead. - - XXmmNNssttrriinnggDDiirreeccttiioonn - Specifies the initial direction to draw the string - (from the left to the right or in the opposite - direction). The whole story seems to be incompre- - hensible... therefore this resource is provided for - completeness only. - - XXmmNNttwwmmHHaannddlliinnggOOnn - If you have trouble with the list then this - resource may help you. Set it to True, if the list - gets hidden at the moment the mouse cursor enters - the list. - - XXmmNNttooppIItteemmPPoossiittiioonn - This resource is intended as an informal hint. It - specifies the index of the item which is displayed - at the visible top of the list. - - XXmmNNvvaalluuee - Contains the text of the input field. This also - concerns combo boxes which are not editable ( - XXmmNNeeddiittaabbllee set to False). - - XXmmNNuunnsseelleeccttiioonnCCaallllbbaacckk - Specifies a list of callbacks that is called when- - ever the currently selected item is deselected and - no other item gets selected. This callback is acti- - vated only when XXmmNNsseelleeccttiioonnPPoolliiccyy is XXmmSSIINN-- - GGLLEE__SSEELLEECCTT. The reason is XXmmCCRR__UUNNSSEELLEECCTT. The type - of the structure whose address is passed to this - callback is XXmmAAnnyyCCaallllbbaacckkSSttrruucctt. - - XXmmNNvvaalluuee - Contains the text of the input field. This also - concerns combo boxes which are not editable ( - XXmmNNeeddiittaabbllee set to FFaallssee). - - XXmmNNvvaalluueeCChhaannggeeddCCaallllbbaacckk - Specifies a list of callbacks to be called after - text is deleted from or inserted into the text area - of the combo box widget. The reason is - XXmmCCRR__VVAALLUUEE__CCHHAANNGGEEDD. The type of the structure - whose address is passed to this callback is XXmmAAnnyy-- - CCaallllbbaacckkSSttrruucctt. - - - - - -Version 1.31 20 March 1995 10 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXmmNNvviissiibblleeIItteemmCCoouunntt - Specifies the number of items that can fit in the - visible space of the list. The combo box uses this - value to determine the height of its list. - - IInnhheerriitteedd RReessoouurrcceess - XmComboBox inherits behaviour and resources from the fol- - lowing superclasses. For a complete description of each - resource, refer to the man page for that superclass. - - CCaallllbbaacckk IInnffoorrmmaattiioonn - A pointer to the following structure is passed to the - XXmmNNddrrooppDDoowwnnCCaallllbbaacckk callback: - - ttyyppeeddeeff ssttrruucctt {{ - iinntt _r_e_a_s_o_n;; - XXEEvveenntt **_e_v_e_n_t;; - }} XXmmCCoommbbooBBooxxDDrrooppDDoowwnnCCaallllbbaacckkSSttrruucctt;; - - _r_e_a_s_o_n Within this structure, _r_e_a_s_o_n indicates the - reason why the callback was activated. This - can be XXmmCCRR__SSHHOOWW__LLIISSTT as well as - XXmmCCRR__HHIIDDEE__LLIISSTT. A callback is called with - the reason XXmmCCRR__SSHHOOWW__LLIISSTT just before the - list is dropped down, whereas the callback - is called with XXmmCCRR__HHIIDDEE__LLIISSTT after the - list is hidden. - - - _e_v_e_n_t Points to the XXEEvveenntt, which triggered the - callback. May be NNUULLLL if the callback is - triggered by a call to XXmmCCoommbbooBBooxxSShhoowwLLiisstt - or XXmmCCoommbbooBBooxxHHiiddeeLLiisstt. - - A pointer to the following structure is passed to the - XXmmNNaaccttiivvaatteeCCaallllbbaacckk callback: - - ttyyppeeddeeff ssttrruucctt {{ - iinntt _r_e_a_s_o_n;; - XXEEvveenntt **_e_v_e_n_t;; - }} XXmmAAnnyyCCaallllbbaacckkSSttrruucctt;; - - _r_e_a_s_o_n Indicates why the callback was invoked. - This is XXmmCCRR__AACCTTIIVVAATTEE for XXmmNNaaccttiivvaatteeCCaallll-- - bbaacckk. - - _e_v_e_n_t Points to the XXEEvveenntt, which triggered the - callback. - - A pointer to the following structure is passed to the - XXmmNNsseelleeccttiioonnCCaallllbbaacckk and XXmmNNddeeffaauullttAAccttiioonnCCaallllbbaacckk: - - ttyyppeeddeeff ssttrruucctt {{ - iinntt _r_e_a_s_o_n;; - - - -Version 1.31 20 March 1995 11 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXEEvveenntt **_e_v_e_n_t;; - XXmmSSttrriinngg _v_a_l_u_e;; - iinntt _i_n_d_e_x;; - }} XXmmCCoommbbooBBooxxSSeelleeccttiioonnCCaallllbbaacckkSSttrruucctt,, XXmmCCoommbbooBBooxxDDeeffaauullttAAcc-- - ttiioonnCCaallllbbaacckkSSttrruucctt;; - - _r_e_a_s_o_n Within this structure, _r_e_a_s_o_n indicates the - reason why the callback was activated. At - this time, the reason can be either - XXmmCCRR__SSIINNGGLLEE__SSEELLEECCTT or XXmmCCRR__BBRROOWWSSEE__SSEELLEECCTT - depending on the setting of XXmmNNsseelleeccttiioonn-- - PPoolliiccyy. It indicates that the user - selected a (potentially new) item in the - list. Whether this callback is activated - every time the user moves into a new item - of the list or only when the user releases - the mouse button is controlled through the - setting of XXmmNNaauuttoommaattiiccSSeelleeccttiioonn. - - _e_v_e_n_t Points to the XXEEvveenntt, which triggered the - callback. - - _v_a_l_u_e Points to a XXmmSSttrriinngg, which contains the - text of the current selected item. This - XXmmSSttrriinngg must never be freed or changed by - the called program code! - - _i_n_d_e_x Index (starting from 1) of the currently - selected item in the list. - - A pointer to the following structure is passed to the - XXmmNNuunnsseelleeccttiioonnCCaallllbbaacckk callback: - - ttyyppeeddeeff ssttrruucctt {{ - iinntt _r_e_a_s_o_n;; - XXEEvveenntt **_e_v_e_n_t;; - }} XXmmCCoommbbooBBooxxUUnnsseelleeccttiioonnCCaallllbbaacckkSSttrruucctt;; - - _r_e_a_s_o_n Indicates why the callback was invoked. - This is XXmmCCRR__UUNNSSEELLEECCTT. - - _e_v_e_n_t Points to the XXEEvveenntt, which triggered the - callback. - - A pointer to the following structure is passed to the - XXmmNNmmooddiiffyyVVeerriiffyyCCaallllbbaacckk and XXmmNNmmoottiioonnVVeerriiffyyCCaallllbbaacckk call- - backs: - - ttyyppeeddeeff ssttrruucctt {{ - iinntt _r_e_a_s_o_n;; - XXEEvveenntt **_e_v_e_n_t;; - BBoooolleeaann _d_o_i_t;; - PPoossiittiioonn _c_u_r_r_I_n_s_e_r_t_, _n_e_w_I_n_s_e_r_t;; - PPoossiittiioonn _s_t_a_r_t_P_o_s_, _e_n_d_P_o_s;; - - - -Version 1.31 20 March 1995 12 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XXmmTTeexxttBBlloocckk _t_e_x_t;; - }} XXmmCCoommbbooBBooxxTTeexxttVVeerriiffyyCCaallllbbaacckkSSttrruucctt,, **XXmmCCoommbbooBBooxxTTeexxttVVeerrii-- - ffyyPPttrr;; - - _r_e_a_s_o_n Indicates the reason why the callback was - activated. This can be either - XXmmCCRR__MMOODDIIFFYYIINNGG__TTEEXXTT__VVAALLUUEE or - XXmmCCRR__MMOOVVIINNGG__IINNSSEERRTT__CCUURRSSOORR. - - _e_v_e_n_t Points to the XXEEvveenntt, which triggered the - callback. - - _d_o_i_t Indicates whether the offending action - should be performed. Setting this field of - the callback structure to FFaallssee denies the - action. - - _c_u_r_r_I_n_s_e_r_t Specifies the current position of the - insert cursor. - - Indicates the position at which the user - attempts to position the cursor. - - _s_t_a_r_t_P_o_s Indicates the starting position of the text - to modify. If the reason is - XXmmCCRR__MMOOVVIINNGG__IINNSSEERRTT__CCUURRSSOORR this value is the - same as ccuurrrrIInnsseerrtt. - - _e_n_d_P_o_s Specifies the ending position of the text - to modify. If no text is replaced or - deleted, then the value will be the same as - ssttaarrttPPooss. If the reason is - XXmmCCRR__MMOODDIIFFYYIINNGG__TTEEXXTT__VVAALLUUEE this value is the - same as _c_u_r_r_I_n_s_e_r_t. - - _t_e_x_t Holds the address of a structure of type - XXmmTTeexxttBBlloocckkRReecc which holds the textual - information to be inserted. - - The following table describes the reasons why the individ- - ual verification callback structure fields are valid. - - RReeaassoonn VVaalliidd FFiieellddss - ----------------------------------------------------- - XXmmCCRR__MMOODDIIFFYYIINNGG__TTEEXXTT__VVAALLUUEE _r_e_a_s_o_n, _e_v_e_n_t, _d_o_i_t, - _s_t_a_r_t_P_o_s, _e_n_d_P_o_s, _t_e_x_t - - XXmmCCRR__MMOOVVIINNGG__IINNSSEERRTT__CCUURRSSOORR _r_e_a_s_o_n, _e_v_e_n_t, _d_o_i_t, - _c_u_r_r_I_n_s_e_r_t, _n_e_w_I_n_s_e_r_t, - - A pointer to the following structure is passed to the XXmmNN-- - ssoorrttiinnggCCaallllbbaacckk callback: ttyyppeeddeeff ssttrruucctt {{ - iinntt _r_e_a_s_o_n;; - XXEEvveenntt **_e_v_e_n_t;; - - - -Version 1.31 20 March 1995 13 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - iinntt _o_p_e_r_a_t_i_o_n;; - vvooiidd **_i_t_e_m___i_n_t_e_r_n_a_l;; - XXmmSSttrriinngg _i_t_e_m;; - iinntt _r_e_s_u_l_t;; - }} XXmmCCoommbbooBBooxxSSoorrttiinnggCCaallllbbaacckkSSttrruucctt,, **XXmmCCoommbbooBBooxxSSoorrttiinnggPPttrr;; - - _r_e_a_s_o_n Indicates the reason why the callback was - activated. This is XXmmCCRR__SSOORRTTIINNGG. - - _e_v_e_n_t Contains always NNUULLLL and is just there for - compatibility reasons. - - _o_p_e_r_a_t_i_o_n Indicates the operation to carry out and - can be either XXmmOOPP__IINNIITT,XXmmOOPP__DDOONNEE or - XXmmOOPP__CCOOMMPPAARREE. - - _i_t_e_m___i_n_t_e_r_n_a_l Must be set during the XXmmOOPP__IINNIITT operation - to a suitable representation of the new - item which is to be added to the list. In - all subsequent calls to this callback with - XXmmOOPP__CCOOMMPPAARREEorXXmmOOPP__DDOONNEE this field will - contain whatever you've put into it during - XXmmOOPP__IINNIITT. For detailed information refer - to the documentation "_T_h_e _C_o_m_b_o_B_o_x _W_i_d_g_e_t". - - _i_t_e_m During XXmmOOPP__IINNIITT this field points to the - item to be added to the list. When sorting - the list ( XXmmOOPP__CCOOMMPPAARREE) the field contains - the address of an item in the list which - should be compared against the new item (as - remembered in _i_t_e_m___i_n_t_e_r_n_a_l). - - _r_e_s_u_l_t When comparing an item (out of the list) in - _i_t_e_m with the new item (as remembered in - _i_t_e_m___i_n_t_e_r_n_a_l) the result has to be stored - into this structure's field. - - The following table describes which individual callback - structure fields are valid during which operations. - - RReeaassoonn VVaalliidd FFiieellddss - --------------------------------------------- - XXmmOOPP__IINNIITT _r_e_a_s_o_n, _e_v_e_n_t, _o_p_e_r_a_t_i_o_n, - _i_t_e_m, _i_t_e_m___i_n_t_e_r_n_a_l - XXmmOOPP__DDOONNEE _r_e_a_s_o_n, _e_v_e_n_t, _o_p_e_r_a_t_i_o_n, - _i_t_e_m___i_n_t_e_r_n_a_l - XXmmOOPP__CCOOMMPPAARREE _r_e_a_s_o_n, _e_v_e_n_t, _o_p_e_r_a_t_i_o_n, - _i_t_e_m, _i_t_e_m___i_n_t_e_r_n_a_l, _r_e_s_u_l_t - - For more information about controlling the sorting order - see the acompanying documentation "_T_h_e _C_o_m_b_o_B_o_x _W_i_d_g_e_t". - - CCoonnvveenniieennccee rroouuttiinneess - ComboBox has a number of convenience routines to control - - - -Version 1.31 20 March 1995 14 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - the behavior and contents of its children. - - vvooiidd XXmmCCoommbbooBBooxxAAddddIItteemm((WWiiddggeett ww,, XXmmSSttrriinngg iitteemm,, iinntt ppooss)) - Add a new item to the list's contents. If XXmmNNssoorrtteedd - is set to True, the new item is inserted alphabeti- - cally. If the list is unsorted, the same assump- - tions can be applied as with XXmmLLiissttAAddddIItteemm. - - - vvooiidd XXmmCCoommbbooBBooxxAAddddIItteemmss((WWiiddggeett ww,, XXmmSSttrriinngg **iitteemmss,, - iinntt iitteemm__ccoouunntt,, iinntt ppooss)) - Similar to XXmmCCoommbbooBBooxxAAddddIItteemm. Also see XXmmLLiissttAAdd-- - ddIItteemmss. - - - vvooiidd XXmmCCoommbbooBBooxxAAddddIItteemmUUnnsseelleecctteedd((WWiiddggeett ww,, XXmmSSttrriinngg - iitteemm,, iinntt ppooss)) - See XXmmLLiissttAAddddIItteemmUUnnsseelleecctteedd. - - - vvooiidd XXmmCCoommbbooBBooxxCClleeaarrIItteemmSSeelleeccttiioonn((WWiiddggeett ww)) - Deselects all currently selected items when - XXmmNNsseelleeccttiioonnPPoolliiccyy is XXmmSSIINNGGLLEE__SSEELLEECCTT. - - - vvooiidd XXmmCCoommbbooBBooxxDDeelleetteeIItteemm((WWiiddggeett ww,, XXmmSSttrriinngg iitteemm)) - See XXmmLLiissttDDeelleetteeIItteemm. - - - vvooiidd XXmmCCoommbbooBBooxxDDeelleetteeIItteemmss((WWiiddggeett ww,, XXmmSSttrriinngg - **iitteemmss,, iinntt iitteemm__ccoouunntt)) - See XXmmLLiissttDDeelleetteeIItteemmss. - - - vvooiidd XXmmCCoommbbooBBooxxDDeelleetteePPooss((WWiiddggeett ww,, iinntt ppooss)) - See XXmmLLiissttDDeelleetteePPooss. - - - vvooiidd XXmmCCoommbbooBBooxxDDeelleetteeIItteemmssPPooss((WWiiddggeett ww,, iinntt iitteemm__ccoouunntt,, - iinntt ppooss)) - See XXmmLLiissttDDeelleetteeIItteemmssPPooss. - - - vvooiidd XXmmCCoommbbooBBooxxDDeelleetteeAAllllIItteemmss((WWiiddggeett ww)) - See XXmmLLiissttDDeelleetteeAAllllIItteemmss. - - - vvooiidd XXmmCCoommbbooBBooxxRReeppllaacceeIItteemmss((WWiiddggeett ww,, XXmmSSttrriinngg - **oolldd__iitteemmss,, iinntt iitteemm__ccoouunntt,, XXmmSSttrriinngg **nneeww__iitteemmss)) - See XXmmLLiissttRReeppllaacceeIItteemmss. - - - vvooiidd XXmmCCoommbbooBBooxxRReeppllaacceeIItteemmssPPooss((WWiiddggeett ww,, XXmmSSttrriinngg - **nneeww__iitteemmss,, iinntt iitteemm__ccoouunntt,, iinntt ppoossiittiioonn)) - - - -Version 1.31 20 March 1995 15 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - See XXmmLLiissttRReeppllaacceeIItteemmssPPooss. - - - BBoooolleeaann XXmmCCoommbbooBBooxxIItteemmEExxiissttss((WWiiddggeett ww,, XXmmSSttrriinngg iitteemm)) - See XXmmLLiissttIItteemmEExxiissttss. - - - iinntt XXmmCCoommbbooBBooxxIItteemmPPooss((WWiiddggeett ww,, XXmmSSttrriinngg iitteemm)) - See XXmmLLiissttIItteemmPPooss. - - - BBoooolleeaann XXmmCCoommbbooBBooxxGGeettMMaattcchhPPooss((WWiiddggeett ww,, XXmmSSttrriinngg - iitteemm,, iinntt ****ppooss__lliisstt,, iinntt **ppooss__ccoouunntt)) - See XXmmLLiissttGGeettMMaattcchhPPooss. - - - vvooiidd XXmmCCoommbbooBBooxxSSeelleeccttPPooss((WWiiddggeett ww,, iinntt ppooss,, BBoooolleeaann - nnoottiiffyy)) - See XXmmLLiissttSSeelleeccttPPooss. - - - vvooiidd XXmmCCoommbbooBBooxxSSeelleeccttIItteemm((WWiiddggeett ww,, XXmmSSttrriinngg iitteemm,, - BBoooolleeaann nnoottiiffyy)) - See XXmmLLiissttSSeelleeccttIItteemm. - - - iinntt XXmmCCoommbbooBBooxxGGeettSSeelleecctteeddPPooss((WWiiddggeett ww)) - This function differs from XXmmLLiissttGGeettSSeelleecctteeddPPooss. - The list in a combo box can contain only one - selected item. Therefore this function returns the - index of the selected item in the list or zero, if - none is currently selected. - - - vvooiidd XXmmCCoommbbooBBooxxCClleeaarrSSeelleeccttiioonn((WWiiddggeett ww,, TTiimmee ttiimmee)) - See XXmmTTeexxttFFiieellddCClleeaarrSSeelleeccttiioonn. - - - BBoooolleeaann XXmmCCoommbbooBBooxxCCooppyy((WWiiddggeett ww,, TTiimmee ttiimmee)) - See XXmmTTeexxttFFiieellddCCooppyy. - - - BBoooolleeaann XXmmCCoommbbooBBooxxCCuutt((WWiiddggeett ww,, TTiimmee ttiimmee)) - See XXmmTTeexxttFFiieellddCCuutt. - - - XXmmTTeexxttPPoossiittiioonn XXmmCCoommbbooBBooxxGGeettIInnsseerrttiioonnPPoossiittiioonn((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddGGeettIInnsseerrttiioonnPPoossiittiioonn. - - - XXmmTTeexxttPPoossiittiioonn XXmmCCoommbbooBBooxxGGeettLLaassttPPoossiittiioonn((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddGGeettLLaassttPPoossiittiioonn. - - - - - -Version 1.31 20 March 1995 16 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - iinntt XXmmCCoommbbooBBooxxGGeettMMaaxxLLeennggtthh((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddGGeettMMaaxxLLeennggtthh. - - - cchhaarr **XXmmCCoommbbooBBooxxGGeettSSeelleeccttiioonn((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddGGeettSSeelleeccttiioonn. - - - BBoooolleeaann XXmmCCoommbbooBBooxxGGeettSSeelleeccttiioonnPPoossiittiioonn((WWiiddggeett ww,, - XXmmTTeexxttPPoossiittiioonn **lleefftt,, XXmmTTeexxttPPoossiittiioonn **rriigghhtt)) - See XXmmTTeexxttFFiieellddGGeettSSeelleeccttiioonnPPoossiittiioonn. - - - cchhaarr **XXmmCCoommbbooBBooxxGGeettSSttrriinngg((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddGGeettSSttrriinngg. - - - vvooiidd XXmmCCoommbbooBBooxxIInnsseerrtt((WWiiddggeett ww,, XXmmTTeexxttPPoossiittiioonn - ppoossiittiioonn,, cchhaarr **vvaalluuee)) - See XXmmTTeexxttFFiieellddIInnsseerrtt. - - - BBoooolleeaann XXmmCCoommbbooBBooxxPPaassttee((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddPPaassttee. - - - BBoooolleeaann XXmmCCoommbbooBBooxxRReemmoovvee((WWiiddggeett ww)) - See XXmmTTeexxttFFiieellddRReemmoovvee. - - - vvooiidd XXmmCCoommbbooBBooxxRReeppllaaccee((WWiiddggeett ww,, XXmmTTeexxttPPoossiittiioonn - ffrroomm__ppooss,, XXmmTTeexxttPPoossiittiioonn ttoo__ppooss,, cchhaarr **vvaalluuee)) - See XXmmTTeexxttFFiieellddRReeppllaaccee. - - - vvooiidd XXmmCCoommbbooBBooxxSSeettAAddddMMooddee((WWiiddggeett ww,, BBoooolleeaann ssttaattee)) - See XXmmTTeexxttFFiieellddSSeettAAddddMMooddee. - - - vvooiidd XXmmCCoommbbooBBooxxSSeettHHiigghhlliigghhtt((WWiiddggeett ww,, XXmmTTeexxttPPoossiittiioonn - lleefftt,, XXmmTTeexxttPPoossiittiioonn rriigghhtt,, XXmmHHiigghhlliigghhttMMooddee mmooddee)) - See XXmmTTeexxttFFiieellddSSeettHHiigghhlliigghhtt. - - - vvooiidd XXmmCCoommbbooBBooxxSSeettIInnsseerrttiioonnPPoossiittiioonn((WWiiddggeett ww,, - XXmmTTeexxttPPoossiittiioonn ppoossiittiioonn)) - See XXmmTTeexxttFFiieellddSSeettIInnsseerrttiioonnPPoossiittiioonn. - - - vvooiidd XXmmCCoommbbooBBooxxSSeettMMaaxxLLeennggtthh((WWiiddggeett ww,, iinntt mmaaxx__lleennggtthh)) - See XXmmTTeexxttFFiieellddSSeettMMaaxxLLeennggtthh. - - - - - - -Version 1.31 20 March 1995 17 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - vvooiidd XXmmCCoommbbooBBooxxSSeettSSeelleeccttiioonn((WWiiddggeett ww,, XXmmTTeexxttPPoossiittiioonn - ffiirrsstt,, XXmmTTeexxttPPoossiittiioonn llaasstt,, TTiimmee ttiimmee)) - See XXmmTTeexxttFFiieellddSSeettSSeelleeccttiioonn. - - - vvooiidd XXmmCCoommbbooBBooxxSSeettSSttrriinngg((WWiiddggeett ww,, cchhaarr **vvaalluuee)) - At least Motif 1.1 contains a very anoying bug. If - you try to set the contents of an XmTextField to an - empty string (""), you'll get garbage, when asking - the XmTextField for its contents afterwards. This - interface function provides a work around. Also see - XXmmTTeexxttFFiieellddSSeettSSttrriinngg. - - - vvooiidd XXmmCCoommbbooBBooxxSShhoowwPPoossiittiioonn((WWiiddggeett ww,, XXmmTTeexxttPPoossiittiioonn ppoossii-- - ttiioonn)) - See XXmmTTeexxttFFiieellddSShhoowwPPoossiittiioonn. - - - TThhee DDiisslliikkeedd KKeeyybbooaarrdd FFooccuuss - Now I'll annotate a somewhat tricky subject. If the - resource XXmmNNppeerrssiisstteennttDDrrooppDDoowwnn defaults to its initial - value of FFaallssee, one can observe the following effect (this - may be annoying). - - When the user drops down the list and then moves the mouse - cursor out of the window where the combo box resides in, - the list will be hidden. This is because the widget lost - the keyboard focus. Some users are irritated because they - didn't expect that behavior, because they just moved the - mouse to get it out of the way. If your window manager's - focus policy is "pointer focus", i.e. if you move the - pointer into another window, that window will automati- - cally get the keyboard focus. On the other hand, if your - window manager's focus policy is "explicit", you have to - move the pointer into another window and click a mouse - button to give that window the keyboard focus. This is - often referred to as the "click-to-type" method. In - "explicit" mode, you will never see the list's annoying - behavior. - - To bypass this behavior on some window managers a really - dirty hack was used. The user can activate that hack, if - he sets XXmmNNppeerrssiisstteennttDDrrooppDDoowwnn to TTrruuee in the application's - resources. Sorry, on some window managers this will not - fix the annoying behavior. - - Try it if you like - but don't complain at me if it - doesn't work as expected. But at least it worked on the - author's machine: a cute little SGI Indigo running 4dwm as - the window manager. - - On some other window managers like twm you will face - another problem: the list gets hidden as soon as the mouse - - - -Version 1.31 20 March 1995 18 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - cursor enters the list. Try to set XXmmNNttwwmmHHaannddlliinnggOOnn to - TTrruuee. This resource will also work with other window man- - agers. - - - CCrreeaattiinngg aa CCoommbbooBBooxx - Using the combo box in your own programs is easy. Just - create the widget with one of the innumerable X toolkit - functions (like XXttCCrreeaatteeMMaannaaggeeddWWiiddggeett or XXttVVaaCCrreeaatteeMMaann-- - aaggeeddWWiiddggeett). - - - Specify as the widget class xmComboBoxWidgetClass - that's - all. There is also a so-called creation convenience func- - tion called XXmmCCrreeaatteeCCoommbbooBBooxx, but it isn't really needed. - - WWiiddggeett XXmmCCrreeaatteeCCoommbbooBBooxx((_p_a_r_e_n_t_, _n_a_m_e_, _a_r_g_l_i_s_t_, _a_r_g_c_o_u_n_t)) - WWiiddggeett _p_a_r_e_n_t; - SSttrriinngg _n_a_m_e; - AArrggLLiisstt _a_r_g_l_i_s_t; - CCaarrddiinnaall _a_r_g_c_o_u_n_t; - - Somewhere in your program you'll need something like the - following code fragment: - - - Widget ComboBox; - - ComboBox = XtVaCreateManagedWidget("combobox", - xmComboBoxWidgetClass, Parent, - XmNeditable, True or False, - other Resources... - NULL); - - - Setting the resource XXmmNNeeddiittaabbllee is not absolutely neces- - sary, but it's better to do so. - - After creation, items can be added to the combo box's list - by means of interface functions like XXmmCCoommbbooBBooxxAAdd-- - ddIItteemm((......)). Which item the user selected can be deter- - mined by calling XXmmCCoommbbooBBooxxGGeettSSttrriinngg((......)). - - - If you want to preselect an item (that is setting a - default item to the input field of the combo box) you can - use several convenience functions. On a combo box with a - non editable input field there are two ways to select an - item: - - - XmComboBoxSelectPos(ComboBox, item #, False); - - or: - - - -Version 1.31 20 March 1995 19 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - XmComboBoxSelectItem(ComboBox, itemString, False); - - The third parameter in these two function calls indicates - whether the XXmmNNsseelleeccttiioonnCCaallllbbaacckk should be called. The - only difference between these functions is the first one - is expecting an item number whereas the second one expects - a XmString. The list is then searched for this string and - if it is found the input field will be updated. - - On a combo box with XXmmNNeeddiittaabbllee set to TTrruuee use another - function: - - XmComboBoxSetString(ComboBox, string); - - This sets the contents of the text input field to string. - - - -BBUUGGSS - Not more than currently available in Motif 1.2.3 or Motif - 1.2.4, but less than in the upcomming Motif 2.0. Report - bugs to albrecht@igpm.rwth-aachen.de. Include a thoroughly - description, and say which version of the ComboBox widget - you are using. - - - -CCOOPPYYRRIIGGHHTT - Copyright 1993, 1994 Harald Albrecht. - - The ComboBox widget is free software; you can redistribute - it and/or modify it under the terms of the GNU General - Public License as published by the Free Software Founda- - tion; either version 2, or (at your option) any later ver- - sion. - - - -AAVVAAIILLAABBIILLIITTYY - The most recent released version of the ComboBox widget is - always available for anonymous ftp from either - - ftp.x.org (198.112.44.100) - /contrib/widgets/motif/ComboBox - - or from - - ftp.informatik.rwth-aachen.de (137.226.112.172) - /pub/packages/ComboBox - - - -AAUUTTHHOORR - Author of Software & Documentation: - - - -Version 1.31 20 March 1995 20 - - - - - -XmComboBox(3Xm) Harry's Motif Tools XmComboBox(3Xm) - - - Harald Albrecht - Institut fuer Geometrie und Praktische Mathematik - RWTH Aachen, Bundesrepublik Deutschland - e-mail: albrecht@igpm.rwth-aachen.de - - English Documentation: - Chris Marotz - Sterling Software ITD - e-mail: marotz@itd.sterling.com - - - -RREELLAATTEEDD IINNFFOORRMMAATTIIOONN - "_T_h_e _C_o_m_b_o_B_o_x _W_i_d_g_e_t" documentation - CCoorree((33XX)), XXmmCCoommppoossiittee((33XX)), XXmmLLiisstt((33XX)), XXmmTTeexxttFFiieelldd((33XX)) - _D_o_u_g_l_a_s _A_d_a_m_s_: _T_h_e _H_i_t_c_h_h_i_k_e_r_'_s _G_u_i_d_e _t_o _t_h_e _G_a_l_a_x_y_. - ffiillee::////113344..113300..116611..3300//aarrcc//ppuubb//uunniixx//hhttmmll//mmoottiiffccoorrnneerr..hhttmmll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Version 1.31 20 March 1995 21 - - diff --git a/src/motif/xmcombo/combop.h b/src/motif/xmcombo/combop.h deleted file mode 100644 index 3e1c8591f8..0000000000 --- a/src/motif/xmcombo/combop.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * ComboBoxP.h - Das schon lange schmerzlich vermisste Combo-Box- - * Widget -- nun endlich auf fuer Motif! - * Wahlweise Motif 1.1 oder 1.2. - * - * Letzte Modifikation: 04.10.1995 Revisionsstand: 1.32a - * - * (c) 1993, 1994 Harald Albrecht - * Institut fuer Geometrie und Praktische Mathematik - * RWTH Aachen, Germany - * albrecht@igpm.rwth-aachen.de - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING for more details); - * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, - * Cambridge, MA 02139, USA. - * - */ -#ifndef __ComboBoxWidgetP_h -#define __ComboBoxWidgetP_h - -#include "xmcombo.h" -#include -#if (XmVersion > 1001) /* sounds like tales from 1000 and 1 night.... */ -#include -#endif - -/********************************************************************* - * Klassendefinition - *********************************************************************/ -/* Neue Datenfelder fuer den Klassenrecord der Center-Widgetklasse */ -typedef struct _XmComboBoxClassPart { - int Just_to_keep_the_compiler_happy; /* Der Name ist Programm */ -} XmComboBoxClassPart; -/* - * Nun folgt die vollstaendige Klassenstruktur, mit all' den Felder, - * die bereits von den Vorfahren geerbt wurden. - */ -typedef struct _XmComboBoxClassRec { - CoreClassPart core_class; - CompositeClassPart composite_class; - ConstraintClassPart constraint_class; - XmManagerClassPart manager_class; - XmComboBoxClassPart combobox_class; -} XmComboBoxClassRec; -extern XmComboBoxClassRec xmComboBoxClassRec; - -/********************************************************************* - *Instanzdefinition - *********************************************************************/ -typedef struct _XmComboBoxPart { -/* Resourcen ... hierauf darf von aussen zugegriffen werden! */ - Boolean Editable; /* Editierbare Eingabezeile ? */ - Boolean StaticList; /* Liste immer dargestellt? */ - unsigned char SelectionPolicy; /* Was geht hier ab?! */ - unsigned char ScrollBarDisplayPolicy; - unsigned char ListSizePolicy; /* Rollbalken! */ - Boolean AutomaticSelection; /* Wann Callbacks aufrufen? */ - Boolean Sorted; /* Liste sortiert */ - XtCallbackList SortingCBL; /* Wie wird extern sortiert? */ - int VisibleItemCount; /* Anz dargstellte Eintraege */ - XmFontList Font; /* verwendete Fonts */ - XtCallbackList SelectionCBL; /* Auswahl aus Liste */ - XtCallbackList UnselectionCBL; /* Auswahl zurueckgenommen */ - XtCallbackList DefaultActionCBL; /* bei Doppelklick */ - XtCallbackList DropDownCBL; /* Liste angezeigt/versteckt */ - XtCallbackList ModifyVerifyCBL; /* Vor Aenderung im Textfeld */ - XtCallbackList ValueChangedCBL; /* Danach... */ - XtCallbackList MotionVerifyCBL; /* Der Cursor bewegt sich doch*/ - XtCallbackList ActivateCBL; /* Eingabe beendet? */ - Boolean SquareArrow; /* Quadratischer Pfeil? */ - Boolean ArrowSpacingOn; /* Abstand zw. Pfeil und Text */ - Boolean Persistent; /* Liste & Focus-Out */ - Boolean TwmHandlingOn; /* dto. */ - Boolean ShowLabel; /* Label anzeigen? */ - Position DropDownOffset; /* delta Ecke Eingabefeld, - Liste */ - -/* Ab hier wird's privat! */ - Widget EditCtrl; /* Editorzeile */ - Widget ArrowCtrl; /* Pfeil nach unten */ - Widget LabelCtrl; /* Text links neben dem Eingabefeld */ - - Widget PopupShell; /* Shell, in der die Liste liegt */ - Widget ListCtrl; /* Listenfeld */ - - Widget MyNextShell; - - Cursor ArrowCursor; - Boolean InInit; - - int LastSelection; - - Boolean ListVisible; - Boolean IgnoreFocusOut; - Boolean PendingFocusOut; - Boolean PendingOverrideInOut; - XtWorkProcId WorkProcID; - XEvent xevent; - - Boolean PassVerification; - Boolean ConvertBitmapToPixmap, - ConvertBitmapToPixmapInsensitive; - Pixmap LabelPixmap, LabelInsensitivePixmap; - - XtPointer Dummy; -} XmComboBoxPart; - -/* - * vollstaengige Instanzenstruktur - */ -typedef struct _XmComboBoxRec { - CorePart core; - CompositePart composite; - ConstraintPart constraint; - XmManagerPart manager; - XmComboBoxPart combobox; -} XmComboBoxRec; - -#endif -/* Ende von ComboBoxP.h */ diff --git a/src/motif/xmcombo/copying.txt b/src/motif/xmcombo/copying.txt deleted file mode 100644 index e77696ae8d..0000000000 --- a/src/motif/xmcombo/copying.txt +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 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. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, 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 software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, 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 redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -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 give any other recipients of the Program a copy of this License -along with the Program. - -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 Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -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 Program, 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 Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) 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; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, 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 executable. 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. - -If distribution of executable or 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 counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program 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. - - 5. 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 Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program 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. - - 7. 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 Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program 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 Program. - -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. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program 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. - - 9. The Free Software Foundation may publish revised and/or new versions -of the 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 Program -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 Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, 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. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "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 PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. 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 PROGRAM 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 PROGRAM (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 PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. 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. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/src/motif/xmcombo/demo.c b/src/motif/xmcombo/demo.c deleted file mode 100644 index 797f62bb64..0000000000 --- a/src/motif/xmcombo/demo.c +++ /dev/null @@ -1,214 +0,0 @@ -/* - * demo.c -- Example how to use a ComboBox - * - * compile and link with: - * $ cc -DFUNCPROTO ComboBoxDemo.c ComboBox.o -o ComboBoxDemo \ - * -lXm -lXt -lX11 - * then run: - * $ ./ComboBoxDemo - * - * (c) 1993, 1994 Harald Albrecht - * Institut fuer Geometrie und Praktische Mathematik - * RWTH Aachen, Germany - * albrecht@igpm.rwth-aachen.de - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING for more details); - * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, - * Cambridge, MA 02139, USA. - * - */ -#include -#include -#include -#include -#include -#include -#include "combobox.h" - -Widget TopLevel, Form, Button, Text, Sepp, ComboBox1, ComboBox2, ComboBox3, Label; - -void QuitCB(Widget w, caddr_t pClientData, caddr_t pCallData) -{ - char *text; - - text = XmComboBoxGetString(ComboBox1); - fprintf(stderr, "You choosed \"%s\" out of the first ComboBox\n", text); - XtFree(text); - text = XmComboBoxGetString(ComboBox2); - fprintf(stderr, "You entered \"%s\" into the second ComboBox\n", text); - XtFree(text); - fprintf(stderr, "Bye! ... have fun with XmComboBox!\n"); - exit(0); -} /* QuitCB */ - -int main(int argc, String argv[]) -{ - XmString str; - Boolean Trav; - XtAppContext AppContext; - -#if (XmREVISION > 1) - XtSetLanguageProc(NULL,NULL,NULL); -#endif - TopLevel = XtAppInitialize(&AppContext, "XFontSelDemo", NULL, 0, -#if (XmREVISION > 1) - &argc, -#else - (Cardinal *) &argc, -#endif - argv, NULL, NULL, 0); - - Form = XtVaCreateManagedWidget("form", xmFormWidgetClass, TopLevel, NULL); - str = XmStringCreateLtoR("Click to quit", XmSTRING_DEFAULT_CHARSET); - Button = XtVaCreateManagedWidget("quit", xmPushButtonWidgetClass, Form, - XmNlabelString, str, - XmNleftAttachment, XmATTACH_FORM, - XmNleftOffset, 8, - XmNtopAttachment, XmATTACH_FORM, - XmNtopOffset, 8, - NULL); - XmStringFree(str); - XtAddCallback(Button, XmNactivateCallback, (XtCallbackProc) QuitCB, NULL); - - Sepp = XtVaCreateManagedWidget("separator1", xmSeparatorWidgetClass, Form, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopOffset, 8, - XmNtopWidget, Button, - NULL); - - str = XmStringCreateLtoR("Choose one:", XmSTRING_DEFAULT_CHARSET); - ComboBox1 = XtVaCreateManagedWidget("combobox1", xmComboBoxWidgetClass, Form, - XmNeditable, False, - XmNsorted, True, - XmNleftAttachment, XmATTACH_FORM, - XmNleftOffset, 8, - XmNrightAttachment, XmATTACH_FORM, - XmNrightOffset, 8, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopOffset, 8, - XmNtopWidget, Sepp, - XmNshowLabel, True, - XmNlabelString, str, - NULL); - XmStringFree(str); - /* Put string unordered into the combo box! They'll get sorted - * by the box. - */ - str = XmStringCreateLtoR("William the conquerior", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Karl der Gro\337e", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Henry VIII & his chicken band", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Louis XIV", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Louis de Funes", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Helmut Kohl", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("James Major", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("James Bond", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Billy Boy (M$ Windoze)", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Francois Mitterand", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox1, str, 0); - XmComboBoxSelectItem(ComboBox1, str, False); - XmStringFree(str); - - str = XmStringCreateLtoR("Choose/edit:", XmSTRING_DEFAULT_CHARSET); - ComboBox2 = XtVaCreateManagedWidget("combobox2", xmComboBoxWidgetClass, Form, - XmNeditable, True, - XmNsorted, True, - XmNleftAttachment, XmATTACH_FORM, - XmNleftOffset, 8, - XmNrightAttachment, XmATTACH_FORM, - XmNrightOffset, 8, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopOffset, 8, - XmNtopWidget, ComboBox1, - XmNshowLabel, True, - XmNlabelString, str, - NULL); - str = XmStringCreateLtoR("item can be edited after choosing it", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox2, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("just to fill the list", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox2, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("so it contains more entries", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox2, str, 0); XmStringFree(str); - - str = XmStringCreateLtoR("Static ComboBox:", XmSTRING_DEFAULT_CHARSET); - ComboBox3 = XtVaCreateManagedWidget("combobox3", xmComboBoxWidgetClass, Form, - XmNeditable, True, - XmNstaticList, True, - XmNsorted, False, - XmNcolumns, 30, - XmNleftAttachment, XmATTACH_FORM, - XmNleftOffset, 8, - XmNrightAttachment, XmATTACH_FORM, - XmNrightOffset, 8, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopOffset, 8, - XmNtopWidget, ComboBox2, - XmNshowLabel, True, - XmNlabelString, str, - NULL); - XmStringFree(str); - str = XmStringCreateLtoR("ComboBox (noneditable)", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox3, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("ComboBox (editable)", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox3, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("ComboBox (editable & static List)", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox3, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("Center widget", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox3, str, 0); XmStringFree(str); - str = XmStringCreateLtoR("The ButtonFace Library", XmSTRING_DEFAULT_CHARSET); - XmComboBoxAddItem(ComboBox3, str, 0); XmStringFree(str); - - Sepp = XtVaCreateManagedWidget("separator", xmSeparatorWidgetClass, Form, - XmNleftAttachment, XmATTACH_FORM, - XmNrightAttachment, XmATTACH_FORM, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopOffset, 8, - XmNtopWidget, ComboBox3, - NULL); - - str = XmStringCreateLtoR( -"xmComboBoxWidgetClass Demo\n\nby Harald Albrecht\n\n\ -albrecht@igpm.rwth-aachen.de", XmSTRING_DEFAULT_CHARSET); - Label = XtVaCreateManagedWidget("label", xmLabelWidgetClass, Form, - XmNlabelString, str, - XmNleftAttachment, XmATTACH_FORM, - XmNleftOffset, 80, - XmNrightAttachment, XmATTACH_FORM, - XmNrightOffset, 80, - XmNbottomAttachment, XmATTACH_FORM, - XmNbottomOffset, 24, - XmNtopAttachment, XmATTACH_WIDGET, - XmNtopWidget, Sepp, - XmNtopOffset, 24, - NULL); - XmStringFree(str); - - XtRealizeWidget(TopLevel); - - XtAppMainLoop(AppContext); - return 0; /* Never will reach this */ -} /* main */ - - -/* End of ComboBoxDemo.c */ diff --git a/src/motif/xmcombo/xmcombo.c b/src/motif/xmcombo/xmcombo.c deleted file mode 100644 index f612df4e95..0000000000 --- a/src/motif/xmcombo/xmcombo.c +++ /dev/null @@ -1,3543 +0,0 @@ -/* - * ComboBox.c - Das schon lange schmerzlich vermisste Combo-Box- - * Widget -- nun endlich auf fuer Motif! - * - * Version 1.32a -- 04.10.95 - * - * Letzte Modifikation: - * 04.10.1995 Layoutfehler behoben, der bei angezeigter horizontaler Liste - * dazu fuehrt, dass das Listenfeld schrumpft. Daneben wird - * jetzt auch der Fall beruecksichtigt, dass das Listenfeld am - * unteren Bildschirmrand abgeschnitten wuerde. In diesem Fall - * erscheint das Listenfeld oberhalb des Eingabefeldes. - * 20.03.1995 XmNscrollbarDisplayPolicy,... koennen nun immer vom Pro- - * grammierer gesetzt werden, statische Liste hin und her. - * 21.10.1994 Fehler in SetValues behoben, der auftritt, wenn man versucht, - * XmNitems und XmNitemCount zu setzen. - * 01.10.1994 Externe Sortierung wird nun unterstuetzt sowie seitenweises - * Rollen in der Liste mittels PgUp und PgDn. - * 25.09.1994 Unterstuetzung fuer XmNautomaticSelection implementiert. - * Damit wird die Sache noch ein bischen runder in der Bedienung. - * Des weiteren sind etliche Callbacks neu hinzugekommen. - * 04.09.1994 Erweiterungen fuer XmSINGLE_SELECT eingebaut. Ausserdem - * kann die Liste jetzt auch statisch unterhalb des Eingabe- - * felds erscheinen. Damit sind wir nun noch kompatibler ge- - * worden -- fragt sich nur, zu was?! - * 29.08.1994 Alle Mirror-Ressourcen tauchen nun auch in der Ressourcen- - * liste der ComboBox-Klasse auf. Allerdings stehen keine - * sinnvollen Werte fuer die Initialisierung 'drin. Weiterhin - * den GeometryManager so veraendert, dass ab sofort das - * Label in der Breite wachsen oder schrumpfen darf. - * 07.06.1994 XmNmnemonic und XmNmnemonicCharSet implementiert. - * 29.05.1994 XmNsensitive angepasst. XmNcursorPositionVisible ist nun - * False, falls die ComboBox nicht editierbar ist. - * 07.05.1994 Drag'n'Drop funktioniert endlich!!! Zudem Anpassung an - * den fvwm ausgefuehrt ('st vom Focus-Verhalten ja ein halber - * twm). Hach', so'ne Linux-Box mit Motif 1.2 macht doch - * einfach Spass... vor allem geht hier so richtig die Post ab. - * Das kann man ja von M$ Windoze (Windoze for Mondays) nicht - * behaupten! - * 14.04.1994 Ein paar Speicherlecks korrigiert. - * 21.02.1994 Die Resourcen XmNitems und XmNitemCount lassen sich nun - * auch von einer Resourcendatei aus initialisieren. ACHTUNG: - * diese beiden Resourcen mussen immer beide beim Aufruf von - * XtSetValues zugleich angegeben werden, ansonsten werden - * diese Angaben ignoriert. - * 03.02.1994 Convenience-Funktionen auf Vordermann gebracht und noch - * einen Callback eingebaut, der immer dann aufgerufen wird, - * wenn die List angezeigt oder wieder versteckt wird. - * 01.02.1994 Motif 1.2-fest!!! Das wird aber heute abend gefeiert!! - * Endlich EIN Alptraum weniger! Naja, Drag'n'Drop bleibt - * noch zu loesen. Spaeter... - * 31.01.1994 VAX-fest (mit Hilfe von Vincenct Li) - * owlm sollte man abschaffen! Aber es scheint so, als ob - * ich jetzt doch noch das FocusOut-Problem geknackt habe. - * Ebenso die OSF...mit viel Arbeit habe ich nun auch noch - * eine anstaendige Initialisierung der Fontliste des Label- - * Kinds erreicht. - * 12.01.1994 Revisionsstand: 1.10a - * nun wirklich voll ANSI-faehiger C-Code - * Pixmaps werden ggf. aufgeraeumt; Druckrichtung - * wird vom Vater erfragt und an das Label weiter- - * gegeben. - * ESC-Behandlung implementiert. - * Spiegel-Ressourcen-Initialisierung aus Ressourcen-Daten- - * bank implementiert. - * Weitergabe von neu gesetzten Farben an die Kinder - * implementiert. - * Combo-Box kann jetzt wahlweise auch links neben dem - * Eingabefeld ein Label anzeigen. - * 09.12.1993 Revisionsstand: 1.00 - * erste oeffentlich zugaengliche Version der Combo-Box - * - * (c) 1993, 1994, 1995 Harald Albrecht - * Institut fuer Geometrie und Praktische Mathematik - * RWTH Aachen, Germany - * albrecht@igpm.rwth-aachen.de - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING for more details); - * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, - * Cambridge, MA 02139, USA. - * - */ - -#include -#include -#include -#include -#ifdef VMS /* Huch, wo gibt's denn noch sowas ... ?! */ - /* Bitte keine Mail bzgl. dieser Bemerkung schicken... - * Ich weiss, das ist ein Vorurteil...aber es gibt - * ja auch wahre Vorurteile.... - */ -#include -#else -#include -#endif -#include -#include -#include -#include -#include -#include /* define toupper */ -#include "combop.h" - -#include - -/* --- Systemspezifische Definitionen */ -#ifdef VMS -#define strcasecmp(s1, s2) strcmp(s1, s2) -#endif - -/* --- sonstiger Quark */ -/* #ifdef DEBUG */ -#if 0 -#define LOG(p1) fprintf(stderr, p1); -#define LOG2(p1, p2) fprintf(stderr, p1, p2); -#define LOG3(p1, p2, p3) fprintf(stderr, p1, p2, p3); -#else -#define LOG(p1) -#define LOG2(p1, p2) -#define LOG3(p1, p2, p3) -#endif - -/* --------------------------------------------------------------------------- - * Resourcen-Liste... - * Hier werden diejenigen Resourcen definiert, die von "aussen" - also fuer - * den Programmierer oder Anwender - benutzbar und veraenderbar sind. - * - * Der Aufbau der einzelnen Eintraege ist immer wieder gleich: - * Resourcen-Name XmN... oder XtN - * Resourcen-Klasse XmC... oder XtC - * Resourcen-Type XmR... oder XtR (Datentyp der Variable in der - * struct der jeweiligen Widgetinstanz) - * Resourcen-Groesse aktuelle Groesse dieses Datentyps - * Resourcen-Offset Lage der Variable innerhalb der struct der - * Widgetinstanz - * Defaultwert-Type Typ des Defaultwertes - * Defaultwert (normalerweise) Zeiger auf den Defaultwert - */ -#define offset(field) XtOffsetOf(XmComboBoxRec, field) -static XtResource resources[] = { - { /* Eingabefeld kann veraendert werden, oder aber es sind nur - * die Vorgaben aus der Liste auswaehlbar. - */ - XmNeditable, XmCEditable, XmRBoolean, sizeof(Boolean), - offset(combobox.Editable), XmRString, "False" - }, - { /* Liste wird automatisch sortiert -- wie konnten die bei - * der OSF denn SOETWAS nur vergessen ?? - */ - XmNsorted, XmCSorted, XmRBoolean, sizeof(Boolean), - offset(combobox.Sorted), XmRString, "False" - }, - { /* externe Sortierreihenfolge */ - XmNsortingCallback, XmCSortingCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.SortingCBL), XmRCallback, NULL - }, - { /* Anzahl auf einmal sichtbarer Eintraege in der Liste (ent- - * spricht damit der Listenhoehe. - */ - XmNvisibleItemCount, XmCVisibleItemCount, XmRInt, sizeof(int), - offset(combobox.VisibleItemCount), XmRImmediate, (caddr_t) 8 - }, - { /* Fuer das Eingabefeld sowie die Liste verwandte Fonts */ - XmNfontList, XmCFontList, XmRFontList, sizeof(XmFontList), - offset(combobox.Font), XmRImmediate, NULL - }, - { /* Rueckruf bei Anwahl */ - XmNselectionCallback, XmCSelectionCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.SelectionCBL), XmRCallback, NULL - }, - { /* Gegenteil zum vorherigen Callback! */ - XmNunselectionCallback, XmCUnselectionCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.UnselectionCBL), XmRCallback, NULL - }, - { /* Doppelklick in der Liste */ - XmNdefaultActionCallback, XmCCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.DefaultActionCBL), XmRCallback, NULL - }, - { /* Rueckruf bei Liste ausklappen/verstecken */ - XmNdropDownCallback, XmCDropDownCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.DropDownCBL), XmRCallback, NULL - }, - { /* Eingabe abchecken... */ - XmNmodifyVerifyCallback, XmCCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.ModifyVerifyCBL), XmRCallback, NULL - }, - { - XmNvalueChangedCallback, XmCCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.ValueChangedCBL), XmRCallback, NULL - }, - { - XmNactivateCallback, XmCCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.ActivateCBL), XmRCallback, NULL - }, - { - XmNmotionVerifyCallback, XmCCallback, XmRCallback, - sizeof(XtCallbackList), - offset(combobox.MotionVerifyCBL), XmRCallback, NULL - }, - { /* Verhalten der ausgeklappten Liste bei Focus-Out */ - XmNpersistentDropDown, XmCPersistentDropDown, XmRBoolean, - sizeof(Boolean), - offset(combobox.Persistent), XmRString, "False" - }, - { /* Wie verhaelt sich der Window-Manager? */ - XmNtwmHandlingOn, XmCTwmHandlingOn, XmRBoolean, sizeof(Boolean), - offset(combobox.TwmHandlingOn), XmRString, "False" - }, - { /* Label anzeigen oder nicht? */ - XmNshowLabel, XmCShowLabel, XmRBoolean, sizeof(Boolean), - offset(combobox.ShowLabel), XmRString, "False" - }, - { /* Abstand zw. linkem Rand Eingabefeld und linkem Rand Liste */ - XmNdropDownOffset, XmCDropDownOffset, XmRPosition, - sizeof(Position), offset(combobox.DropDownOffset), - XmRImmediate, (caddr_t) -1 - }, - { /* Neue Voreinstellung bzgl. des Randes */ - XmNborderWidth, XmCBorderWidth, XmRDimension, sizeof(Dimension), - offset(core.border_width), XmRImmediate, (caddr_t) 0 - }, - { /* welcher Cursor soll in der Dropdown-Liste benutzt werden? */ - XmNdropDownCursor, XmCDropDownCursor, XmRCursor, sizeof(Cursor), - offset(combobox.ArrowCursor), XmRString, "center_ptr" - }, - { /* wie lassen sich Eintraege auswaehlen? */ - XmNselectionPolicy, XmCSelectionPolicy, XmRSelectionPolicy, sizeof(unsigned char), - offset(combobox.SelectionPolicy), XmRImmediate, (caddr_t) XmBROWSE_SELECT - }, - { /* Wann werden die Callbacks aufgerufen? */ - XmNautomaticSelection, XmCAutomaticSelection, XmRBoolean, sizeof(Boolean), - offset(combobox.AutomaticSelection), XmRString, "False" - }, - { /* erscheint die Liste staendig? */ - XmNstaticList, XmCStaticList, XmRBoolean, sizeof(Boolean), - offset(combobox.StaticList), XmRString, "False" - }, - { - XmNscrollBarDisplayPolicy, XmCScrollBarDisplayPolicy, XmRScrollBarDisplayPolicy, sizeof(unsigned char), - offset(combobox.ScrollBarDisplayPolicy), XmRImmediate, (caddr_t) XmAS_NEEDED - }, - { - XmNlistSizePolicy, XmCListSizePolicy, XmRListSizePolicy, sizeof(unsigned char), - offset(combobox.ListSizePolicy), XmRImmediate, (caddr_t) XmVARIABLE - }, - { - XmNsquareArrow, XmCSquareArrow, XmRBoolean, sizeof(Boolean), - offset(combobox.SquareArrow), XmRString, "False" - }, - { - XmNarrowSpacingOn, XmCArrowSpacingOn, XmRBoolean, sizeof(Boolean), - offset(combobox.ArrowSpacingOn), XmRString, "True" - }, -#ifndef DONT_LOOK_IN_THE_MIRROR - /* Mirror-Ressourcen, Adressen sind ungueltig!!!! */ - { - XmNalignment, XmCAlignment, XmRAlignment, sizeof(unsigned char), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNblinkRate, XmCBlinkRate, XmRInt, sizeof(int), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNcolumns, XmCColumns, XmRShort, sizeof(short), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNcursorPosition, XmCCursorPosition, XmRTextPosition, sizeof(XmTextPosition), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNitemCount, XmCItemCount, XmRInt, sizeof(int), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNitems, XmCItems, XmRXmStringTable, sizeof(XmStringTable), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelFontList, XmCLabelFontList, XmRFontList, sizeof(XmFontList), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelInsensitivePixmap, XmCLabelInsensitivePixmap, XmRPixmap, sizeof(Pixmap), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelMarginBottom, XmCLabelMarginBottom, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelMarginHeight, XmCLabelMarginHeight, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelMarginLeft, XmCLabelMarginLeft, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelMarginRight, XmCLabelMarginRight, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelMarginTop, XmCLabelMarginTop, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelMarginWidth, XmCLabelMarginWidth, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelPixmap, XmCLabelPixmap, XmRPixmap, sizeof(Pixmap), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelString, XmCLabelString, XmRString, sizeof(XmString), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlabelType, XmCLabelType, XmRLabelType, sizeof(unsigned char), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlistMarginHeight, XmCListMarginHeight, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlistMarginWidth, XmCListMarginWidth, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNlistSpacing, XmCListSpacing, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNmarginHeight, XmCMarginHeight, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNmarginWidth, XmCMarginWidth, XmRDimension, sizeof(Dimension), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNmaxLength, XmCMaxLength, XmRInt, sizeof(int), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNselectThreshold, XmCSelectThreshold, XmRInt, sizeof(int), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNstringDirection, XmCStringDirection, XmRStringDirection, sizeof(XmStringDirection), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNtopItemPosition, XmCTopItemPosition, XmRInt, sizeof(int), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNvalue, XmCValue, XmRString, sizeof(String), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, - { - XmNvalue, XmCValue, XmRInt, sizeof(int), - offset(combobox.Dummy), XmRImmediate, (caddr_t) 0 - }, -#endif -}; /* resources[] */ - -/* --------------------------------------------------------------------------- - * Funktions-Prototypen fuer die 'Methoden' des ComboBox-Widgets. Diese - * 'Methoden' werden vom Xt-Toolkit aufgerufen und sorgen dafuer, dass eine - * ComboBox sich wie ein anstaendiges Widget verhaelt. - */ -static void Initialize (Widget, XmComboBoxWidget, ArgList, - Cardinal *); -static void Destroy (XmComboBoxWidget); -static void Resize (XmComboBoxWidget); -static Boolean SetValues (XmComboBoxWidget, XmComboBoxWidget, - XmComboBoxWidget, ArgList, Cardinal *); -static void GetValuesAlmost(XmComboBoxWidget, ArgList, Cardinal *); -static XtGeometryResult QueryGeometry (XmComboBoxWidget, XtWidgetGeometry *, - XtWidgetGeometry *); -static XtGeometryResult GeometryManager(Widget, XtWidgetGeometry *, - XtWidgetGeometry *); -static void ClassInit (); -static void Realize (XmComboBoxWidget, Mask *, - XSetWindowAttributes *); -/* --------------------------------------------------------------------------- - * diverse restliche Prototypen... naja, hier halt etwas mager! Hierbei - */ -static void ShowHideDropDownList (XmComboBoxWidget w, XEvent *event, - Boolean Show); -static void ShellCallback (Widget w, XtPointer cbw, - XEvent *event, Boolean *ContDispatch); -static void DoLayout (XmComboBoxWidget w); -/* -------------------------------------------------------------------- - * Klassen-Definition - */ -XmComboBoxClassRec xmComboBoxClassRec = { - { /*** core-Klasse ***/ - /* superclass */ (WidgetClass) &xmManagerClassRec, - /* class_name */ "XmComboBox", - /* widget_size */ sizeof(XmComboBoxRec), - /* class_initialize */ (XtProc) ClassInit, - /* class_part_initialize */ NULL, - /* class_inited */ False, /* IMMER mit FALSE initialisieren !! */ - /* initialize */ (XtInitProc) Initialize, - /* initialize_hook */ NULL, - /* realize */ (XtRealizeProc) Realize, - /* actions */ NULL, - /* num_actions */ 0, - /* resources */ resources, - /* num_resources */ XtNumber(resources), - /* xrm_class */ NULLQUARK, - /* compress_motion */ True, - /* compress_exposure */ XtExposeCompressMultiple, - /* compress_enterleave */ True, - /* visible_interest */ False, - /* destroy */ (XtWidgetProc) Destroy, - /* resize */ (XtWidgetProc) Resize, - /* expose */ NULL, - /* set_values */ (XtSetValuesFunc) SetValues, - /* set_values_hook */ NULL, - /* set_values_almost */ XtInheritSetValuesAlmost, - /* get_values_hook */ (XtArgsProc) GetValuesAlmost, - /* accept_focus */ NULL, - /* version */ XtVersion, - /* callback_private */ NULL, - /* tm_table */ NULL, - /* query_geometry */ (XtGeometryHandler) QueryGeometry, - /* display_accelerator */ XtInheritDisplayAccelerator, - /* extension */ NULL - }, - { /*** composite-Klasse ***/ - /* geometry_manager */ (XtGeometryHandler) GeometryManager, - /* change_managed */ XtInheritChangeManaged, - /* insert_child */ XtInheritInsertChild, - /* delete_child */ XtInheritDeleteChild, - /* extension */ NULL - }, - { /*** constraint-Klasse ***/ - /* resources */ NULL, - /* num_resources */ 0, - /* constraint_size */ sizeof(XmManagerConstraintPart), - /* initialize */ NULL, - /* destroy */ NULL, - /* set_values */ NULL, - /* extension */ NULL - }, - { /*** xmManager-Klasse ***/ - /* translations */ XtInheritTranslations, - /* syn_resources */ NULL, - /* num_syn_resources */ 0, - /* syn_constraint_resources */ NULL, - /* num_syn_constraint_resources */ 0, - /* parent_process */ XmInheritParentProcess, - /* extension */ NULL - }, - { /*** combobox-Klasse ***/ - /* */ 0 - } -}; /* xmComboBoxClassRec */ -WidgetClass xmComboBoxWidgetClass = (WidgetClass) &xmComboBoxClassRec; - -/* -------------------------------------------------------------------- - * -------------------------------------------------------------------- - * Translation-Tabelle (hier allerdings fuer das Eingabefeld!) - * Tjaja....mit der Reihenfolge von Translations ist das schon so eine - * ziemlich boese Sache! - */ -static char newEditTranslations[] = - "AltosfDown: ComboBox-Manager(show-hide-list) \n\ - MetaosfDown: ComboBox-Manager(show-hide-list) \n\ - AltosfUp: ComboBox-Manager(hide-list) \n\ - MetaosfUp: ComboBox-Manager(hide-list) \n\ - osfUp: ComboBox-Manager(up) \n\ - osfDown: ComboBox-Manager(down) \n\ - osfPageUp: ComboBox-Manager(page-up) \n\ - osfPageDown: ComboBox-Manager(page-down) \n\ - osfCancel: ComboBox-Manager(cancel) \n\ - Return: ComboBox-Manager(activate) activate()" - ; -/* speziell bei der nicht editierbaren Combo-Box sind noch einige - * andere Tasten belegt, die sonst dem Eingabefeld alleine gehoeren. - * Die dazugehoerigen neuen Translations befinden sich in dieser - * zusaetzlichen Tabelle, das Anhaengsel ...NE ist dabei die Ab- - * kuerzung fuer "non editable". - */ -static char newEditTranslationsNE[] = - "osfDelete: ComboBox-Manager(wipe-out) \n\ - osfBeginLine: ComboBox-Manager(top) \n\ - osfEndLine: ComboBox-Manager(bottom) " - ; -/* Momentan gibt es noch Aerger mit dem Drag'n'Drop-Mechanismus - * von Motif 1.2. Legen wir ihn deshalb erst einmal still, solange - * bis ich weiss, warum, und eine Loesung parat habe. NEU: Nur wenn - * Sie mit einer libXm geschlagen sind, die partout nicht funktionieren - * will, muessen Sie Drag'n'Drop stillegen, ansonsten klappts doch! - */ -#ifdef NODRAGNDROP -static char newListTranslations[] = - ": ComboBox-Manager(no-operation) "; -#endif -static char newListTranslationsE[] = - "osfPageUp: ComboBox-Manager(page-up) \n\ - osfPageDown: ComboBox-Manager(page-down) "; - -/* --------------------------------------------------------------------------- - * --------------------------------------------------------------------------- - * Aktionen-Tabelle: Hierdurch werden den einzelnen Translations die dazuge- - * hoerigen C-Routinen zugeordnet. Da wir hier ein anstaendiges ANSI-C be- - * nutzen, werden hier zuerst einmal die Prototypen faellig... Ach ja, noch - * ein Hinweis in eigener Sache... der ComboBox-Manager muss applikationsweit - * registriert werden, da er auch von Translationen in den Kindern der Combo- - * Box aktiviert wird. Bei diesem Namen der 'Aktion' steht aber nicht zu be- - * fuerchten, dass er anderweitig bereits in Anwendung ist. - */ -static void CBoxManager(Widget w, XEvent *event, String *params, - Cardinal *num_params); - -static XtActionsRec actions[] = { - { "ComboBox-Manager", CBoxManager }, - { NULL, NULL } -}; /* actions */ - - -/* -------------------------------------------------------------------- - * Eine Instanz dieser Widget-Klasse wird erstmalig in Betrieb ge- - * nommen, daher sind noch Vorbereitungen notwendig, die nun hier - * durchgefuehrt werden. - */ -static XtTranslations NewEditTranslations, NewEditTranslationsNE, - NewListTranslations, NewListTranslationsE; - -static XtConvertArgRec ConverterScreenConvertArg[] = { - { XtBaseOffset, (XtPointer) XtOffset(Widget, core.screen), - sizeof(Screen *) } -}; - -static void ClassInit() -{ - NewEditTranslations = - XtParseTranslationTable(newEditTranslations); - NewEditTranslationsNE = - XtParseTranslationTable(newEditTranslationsNE); -#ifdef NODRAGNDROP - NewListTranslations = - XtParseTranslationTable(newListTranslations); -#endif - NewListTranslationsE = - XtParseTranslationTable(newListTranslationsE); - XtAddConverter(XtRString, XtRBitmap, - XmuCvtStringToBitmap, - ConverterScreenConvertArg, - XtNumber(ConverterScreenConvertArg)); -} /* ClassInit */ - -/* --------------------------------------------------------------------------- - * Weil es sich bei diesem Widget um ein etwas komplizierteres zusammengesetz- - * tes Widget handelt, muessen wir hier - wo eigentlich nur das die Combobox - * bildende Fenster auf dem X-Server erzeugt wird - noch einmal das Layout - * auf Vordermann bringen. Den Aerger loest dabei das Listenfeld der OSF aus, - * das einfach keine Geometrie-Nachfragen verschickt, solange es nicht - * 'realized' ist!!! Nicht, dass ich mich ueber so einen Sauhaufen aufregen - * wuerde...ich doch nicht! ABER MACHT IHR DENN NUR SO'N MIST...? WARUM KOENNT - * IHR DENN NICHT EINMAL DIESES ****(BIEP)**** MOTIF TOOLKIT ANSTAENDIG - * DOKUMENTIEREN! Ich glaub', ich kann mich nach dem Chaos eigentlich nur noch - * hemmungslos besaufen... Die Suche nach der Ursache (bzw. Urheber = OSF) hat - * mich doch einige Tage gekostet (jaja...die Mannstunden!). - */ -static void Realize(XmComboBoxWidget w, Mask *ValueMask, - XSetWindowAttributes *Attributes) -{ - /* - * Also: wenn die Liste staendig sichtbar ist, dann zuerst noch einmal - * das Layout berechnen. Sonst wird vorne und hinten 'was abgeschnitten. - */ - if ( w->combobox.StaticList ) - DoLayout(w); - (*w->core.widget_class->core_class.superclass->core_class.realize) - ((Widget) w, ValueMask, Attributes); -} /* Realize */ - -/* --------------------------------------------------------------------------- - * Suche dasjenige Fenster, in dem unsere Shell liegt, in der wiederum die - * Combo-Box steckt. Diese Information wird benoetigt, um die Drop-Down-Liste - * innerhalb des Fensterstacks immer direkt oberhalb der Shell mit der Combo- - * Box zu halten. Jajaja -- ich muss halt davon ausgehen, dass der Fenster- - * manager ein sog. "reparenting wm" ist; also die Dekorationen in einem - * Fenster dargestellt werden und unsere Shell in dieses Fenster hineingepackt - * ist. Die Dekoration ist damit ein Kind des 'root window' - wie die Shell, - * in der die Drop-Down-Liste steckt. Und da nur Geschwisterfenster (sibling - * windows) im gleichen Stapel stecken, reicht das Shellfenster nicht aus. - * Alle gaengigen Fenstermanager sind solche "reparenting wm's", so dass ich - * hier zu diesem Trick greifen kann, um die Drop-Down-Liste immer ueber der - * ComboBox zu halten. - * - * Parameter: - * w Diejenige Combo-Box, fuer die wir dasjenige - * Fenster des Window-Managers ermitteln sollen, - * dass direkt unterhalb des Root-Fensters liegt. - * Ergebnis: - * besagtes zu suchendes Fenster, dass die Dekoration enthaelt (hoffentlich - * nur echte Bruesseler Spitze!) - */ -static Window GetDecorationWindow(XmComboBoxWidget w) -{ - Window Root, Parent, AWindow; - Window *Children; - unsigned int NumChildren; - - Parent = XtWindow((Widget) w); - /* Suche nach dem Dekorationsfenster des Window-Managers */ - do { - AWindow = Parent; - XQueryTree(XtDisplay((Widget) w), AWindow, - &Root, &Parent, &Children, &NumChildren); - XFree((char *) Children); - } while ( Parent != Root ); - return AWindow; -} /* GetDecorationWindow */ - -/* -------------------------------------------------------------------- - * Eine Combo-Box aus dem Wege raeumen... - * Momentan muessen wir hier nur den Cursor wieder los werden sowie - * eventuell reservierte Pixmaps. - * Ups -- natuerlich muss auch wieder der Callback entfernt werden, - * der noch an der Shell haengt. - */ -static void Destroy(XmComboBoxWidget w) -{ -/* fprintf(stderr, "Destroy: %08X\n", w->core.window);*/ - if ( w->combobox.ConvertBitmapToPixmap ) - XFreePixmap(XtDisplay((Widget) w), - w->combobox.LabelPixmap); - if ( w->combobox.ConvertBitmapToPixmapInsensitive ) - XFreePixmap(XtDisplay((Widget) w), - w->combobox.LabelInsensitivePixmap); - if ( w->combobox.PendingFocusOut ) - XtRemoveWorkProc(w->combobox.WorkProcID); - XtRemoveEventHandler(w->combobox.MyNextShell, - StructureNotifyMask | FocusChangeMask, - True, (XtEventHandler) ShellCallback, - (XtPointer) w); -} /* Destroy */ - -/* --------------------------------------------------------------------------- - * Ueberpruefe, ob fuer die Ressource "DropDownOffset" ein gueltiger Wert vom - * Benutzer angegeben wurde. Diese Ressource gibt an, wie weit die Drop-Down- - * Liste nach rechts gegenueber dem Eingabefeld eingerueckt sein soll. Wenn - * hierfuer ein negativer Wert angegeben ist, so berechne statt dessen einen - * Standardwert: dieser entspricht der Breite der Pfeilschaltflaeche, was - * optisch ganz gut wirkt (jedenfall nach meinem Dafuerhalten). - */ -static void CheckDropDownOffset(XmComboBoxWidget w) -{ - if ( w->combobox.DropDownOffset < 0 ) { - XtWidgetGeometry ArrowGeom; - - XtQueryGeometry(w->combobox.ArrowCtrl, NULL, &ArrowGeom); - w->combobox.DropDownOffset = ArrowGeom.width; - } -} /* CheckDropDownOffset */ - -/* -------------------------------------------------------------------- - * Berechne die voreinzustellende Groesse, die diese Combo-Box be- - * sitzen muss, um ausreichenden Raum fuer das Eingabefeld und den - * Pfeil rechts daneben zur Verfuegung zu stellen. Bei einer - * editierbaren Combo-Box ist zwischen dem Eingabefeld und dem Pfeil - * noch ein Angst-Rasen von der halben Breite eines Pfeiles vorhanden. - * Wird das Listenfeld staendig dargestellt, so entfallen sowohl Pfeil - * als auch der Angstrasen, dafuer muss aber die Hoehe des Listenfelds - * beruecksichtigt werden. - */ -static void DefaultGeometry(XmComboBoxWidget w, - Dimension *TotalWidth, - Dimension *TotalHeight, - Dimension *EditCtrlWidth, - Dimension *LabelCtrlWidth) -{ - XtWidgetGeometry EditGeom, ArrowGeom, LabelGeom, ListGeom; - - XtQueryGeometry(w->combobox.EditCtrl, NULL, &EditGeom); - XtQueryGeometry(w->combobox.ArrowCtrl, NULL, &ArrowGeom); - XtQueryGeometry(w->combobox.LabelCtrl, NULL, &LabelGeom); - - /* - * Soll die Pfeilschaltflaeche quadratisch, praktisch, gut sein? - */ - if ( w->combobox.SquareArrow ) - ArrowGeom.width = ArrowGeom.height; - else - ArrowGeom.width = (ArrowGeom.height * 4) / 5; - - /* - * Zuerst einmal ein paar einfache Werte ermitteln und zurueckgeben... - */ - *TotalHeight = EditGeom.height; - *EditCtrlWidth = EditGeom.width; - *LabelCtrlWidth = LabelGeom.width; - - /* - * Ermittele nun die Breite, welche die Combobox benoetigt. Je nach- - * dem, ob das Eingabefeld oder die Liste breiter sind, wird der - * entsprechende Wert genommen. Diese Auswahl zwischen der Breite von - * Eingabefeld und Liste findet aber nur statt, wenn die Liste auch - * wirklich staendig sichtbar ist. Waehrend der Initialisierung hat - * allerdings XmNcolumns, so dass in diesem Moment die List nicht - * mehr die Breite kontrollieren kann! - */ - if ( w->combobox.StaticList ) { - /* - * Beachte: Frage nicht die Listbox, sondern das ScrolledWindow, - * in welchem die Liste eingebettet ist. - */ - CheckDropDownOffset(w); - XtQueryGeometry(XtParent(w->combobox.ListCtrl), NULL, &ListGeom); - if ( w->combobox.InInit ) { - *TotalWidth = EditGeom.width; - } else { - if ( EditGeom.width < (Dimension) - (ListGeom.width + w->combobox.DropDownOffset) ) - *TotalWidth = ListGeom.width + w->combobox.DropDownOffset; - else - *TotalWidth = EditGeom.width; - } - *TotalHeight += ListGeom.height; - } else { - /* - * Das Listenfeld interessiert uns hier nicht. Degegen sollte noch - * die Breite fuer den Pfeil und ein evtl. Angstrasen beachtet - * werden. - */ - *TotalWidth = EditGeom.width + ArrowGeom.width; - if ( w->combobox.Editable && w->combobox.ArrowSpacingOn ) - *TotalWidth += ArrowGeom.width/2; - } - - /* - * Vergiss nicht, auch noch ein evtl. sichtbares Schriftfeld zu berueck- - * sichtigen! - */ - if ( w->combobox.ShowLabel ) - *TotalWidth += LabelGeom.width; - -} /* DefaultGeometry */ - -/* -------------------------------------------------------------------- - * Anhand eines Widgets ermittele darueber die Screennummer desjenigen - * Screens, auf dem das Widget erscheint. - * Parameter: - * w betroffenes Widget. - * Ergebnis: - * Nummer desjenigen Screens, auf dem das Widget angezeigt wird. - */ -static int WidgetToScreen(Widget w) -{ - Screen *screen; - Display *display; - int NumScreens, i; - - screen = XtScreen(w); NumScreens = ScreenCount(XtDisplay(w)); - display = DisplayOfScreen(screen); - for ( i = 0; i < NumScreens; ++i ) - if ( ScreenOfDisplay(display, i) == screen ) - return i; - XtError("WidgetToScreen: data structures are destroyed."); -} /* WidgetToScreen */ - -/* -------------------------------------------------------------------- - * Positioniere die DropDown-Liste (soweit sie natuerlich auch momentan - * sichtbar ist) so auf dem Bildschirm, dass sie sich unterhalb des - * Eingabefeldes anschliesst. - */ -static void DoDropDownLayout(XmComboBoxWidget w) -{ - Position abs_x, abs_y; - Dimension ArrowWidth, ListWidth, ListHeight; - Dimension ScreenHeight, LabelWidth; - Window Decoration; - XWindowChanges WindowChanges; - - /* - * etwa nicht sichtbar ?!! Oder etwa immer sichtbar ?!! - * Dann sind wir jetzt sofort fertig. - */ - if ( !w->combobox.ListVisible || w->combobox.StaticList ) return; - /* - * Finde zuerst einmal heraus, wo wir uns denn auf dem Bildschirm be- - * finden sollen... Beachte dabei auch, dass eventuell die Liste zu schmal - * werden koennte und gib' ihr dann ggf. eine Mindestbreite, damit es - * keinen core-Dump gibt. - */ - XtVaGetValues(w->combobox.ArrowCtrl, XmNwidth, &ArrowWidth, NULL); - XtTranslateCoords((Widget) w, 0, w->core.height, &abs_x, &abs_y); - CheckDropDownOffset(w); - ListWidth = w->core.width - w->combobox.DropDownOffset - 2; - abs_x += w->combobox.DropDownOffset; - if ( w->combobox.ShowLabel ) { - XtVaGetValues(w->combobox.LabelCtrl, XmNwidth, &LabelWidth, NULL); - ListWidth -= LabelWidth; - abs_x += LabelWidth; - } - if ( ListWidth < 20 ) ListWidth = 20; - XtVaGetValues(XtParent(w->combobox.ListCtrl), XmNheight, &ListHeight, NULL); - /* - * Hier ueberpruefen wir noch, ob die Liste unten aus dem Bildschirm - * herausfallen wuerde. In dem Fall klappen wir die Liste oberhalb des - * Eingabefeldes auf. - */ - ScreenHeight = DisplayHeight(XtDisplay((Widget) w), - WidgetToScreen((Widget) w)); - if ( abs_y + ListHeight + 2 > ScreenHeight ) { - int y; - - y = ((int) abs_y) - ListHeight - w->core.height - 1; - if ( y < 0 ) y = 0; - abs_y = (Position) y; - } - XtConfigureWidget(w->combobox.PopupShell, - abs_x, abs_y, ListWidth, ListHeight, 1); - /* - * So...das hier dient der Kosmetik: hier sorgen wir dafuer, dass die - * Liste auch wirklich immer direkt ueber der ComboBox innerhalb des - * Fensterstapels schwebt. Siehe dazu auch die Erlaeuterungen und An- - * merkungen in GetDecorationWindow(). - */ - if ( XtIsRealized((Widget) w) ) { - WindowChanges.sibling = GetDecorationWindow(w); - WindowChanges.stack_mode = Above; - XReconfigureWMWindow(XtDisplay((Widget) w), - XtWindow(w->combobox.PopupShell), - WidgetToScreen(w->combobox.PopupShell), - CWSibling | CWStackMode, &WindowChanges); - } -} /* DoDropDownLayout */ - -/* -------------------------------------------------------------------- - * Naja... diese Routine scheint ja bereits zu einer Institution beim - * Schreiben von Composite-Widgets geworden zu sein. - * - * Hier beim ComboBox-Widget ist die Aufgabe ziemlich einfach: es - * genuegt, die Eingabezeile und den Pfeil-Button entsprechend inner- - * halb des ComboBox-Widgets zu plazieren. Seit allerdings noch das - * Textlabel hinzukommt, wird's langsam aufwendiger. Nun ja - da sich - * das Listenfeld wahlweise auch statisch einblenden laesst, ist nun - * noch mehr zu beruecksichtigen, wenn die Kinder-Widgets an ihre - * Plaetze geschoben werden. - */ -static void DoLayout(XmComboBoxWidget w) -{ - Dimension EditCtrlWidth, ArrowCtrlWidth, LabelCtrlWidth; - Dimension ComboBoxHeight; - Dimension BorderWidth; - Dimension HighlightThickness; - Position EditX; - - XtVaGetValues(w->combobox.ArrowCtrl, - XmNheight, &ArrowCtrlWidth, NULL); - if ( !w->combobox.SquareArrow ) - ArrowCtrlWidth = (ArrowCtrlWidth * 4) / 5; - XtVaGetValues(w->combobox.LabelCtrl, - XmNwidth, &LabelCtrlWidth, NULL); - - /* - * In Abhaengigkeit davon, ob die ComboBox editierbar ist und ob das - * Listenfeld staendig sichtbar sein soll, hier die Breite einzelner - * Widgets bestimmen. - */ - if ( w->combobox.StaticList ) { - ComboBoxHeight = w->combobox.EditCtrl->core.height; - EditCtrlWidth = w->core.width; - } else { - ComboBoxHeight = w->core.height; - EditCtrlWidth = w->core.width - ArrowCtrlWidth; - if ( w->combobox.Editable && w->combobox.ArrowSpacingOn ) - EditCtrlWidth -= ArrowCtrlWidth/2; - } - /* Beruecksichtige noch ein evtl. ebenfalls anzuzeigendes Schriftfeld - * neben dem Eingabefeld. - */ - if ( w->combobox.ShowLabel ) { - EditX = LabelCtrlWidth; - EditCtrlWidth -= LabelCtrlWidth; - } else - EditX = 0; - if ( EditCtrlWidth < 20 ) EditCtrlWidth = 20; -/* Plaziere nun das Eingabefeld... */ - XtVaGetValues(w->combobox.EditCtrl, - XmNborderWidth, &BorderWidth, - XmNhighlightThickness, &HighlightThickness, - NULL); - XtConfigureWidget(w->combobox.EditCtrl, - EditX, 0, - EditCtrlWidth, ComboBoxHeight, BorderWidth); -/* ...und nun den Pfeil... */ - XtVaGetValues(w->combobox.ArrowCtrl, - XtNborderWidth, &BorderWidth, NULL); - XtConfigureWidget(w->combobox.ArrowCtrl, - w->core.width-ArrowCtrlWidth, HighlightThickness, - ArrowCtrlWidth, - ComboBoxHeight - 2 * HighlightThickness, - BorderWidth); -/* ...und ggf. das Textlabel. */ - if ( w->combobox.ShowLabel ) { - XtVaGetValues(w->combobox.LabelCtrl, - XmNborderWidth, &BorderWidth, - NULL); - XtConfigureWidget(w->combobox.LabelCtrl, - 0, 0, - LabelCtrlWidth, ComboBoxHeight, - BorderWidth); - } -/* Falls da noch die Liste herumgurkt... */ - if ( w->combobox.StaticList ) { - Dimension Width, Height; - - if ( w->core.height > ComboBoxHeight ) - Height = w->core.height - ComboBoxHeight; - else - Height = 10; - - if ( w->core.width > (Dimension)(ArrowCtrlWidth + EditX) ) - Width = w->core.width - ArrowCtrlWidth - EditX; - else - Width = 10; - - XtConfigureWidget(XtParent(w->combobox.ListCtrl), - EditX + ArrowCtrlWidth, ComboBoxHeight, Width, Height, 0); - } else if ( w->combobox.ListVisible ) - DoDropDownLayout(w); -} /* DoLayout */ - -/* -------------------------------------------------------------------- - * Pappi fragt nach, wie gross wir denn sein wollen. - * Die hier benutzte Vorgehensweise zur Ermittlung der Groesse: - * Sobald der Vater uns eine Breite (oder aber Hoehe) vorschlaegt, - * die fuer uns eigentlich zu klein ist, meckern wir und schlagen - * die von uns benoetigte Breite (Hoehe) vor. - * Soweit also zur Theorie... leider sieht es beispielsweise das - * Motif Form-Widget ueberhaupt nicht ein, uns auch nur ein einziges - * Mal nach unseren Wuenschen zu fragen! Damit es bei derart unum- - * gaenglichen Widgets dann doch noch geht, muss ChangedManaged die - * Kohlen wieder aus dem Feuer holen mit einer Sondertour. - * Parameter: - * *Request Vom Vater vorgeschlagene Geometrie - * Ergebnis: - * *Reply Unsere Antwort auf die vorgeschlagene Geometrie - * sowie XtGeometryYes oder XtGeometryAlmost, je nachdem, wie gut - * uns Pappis Vorschlag in den Kram passt. - */ -static XtGeometryResult QueryGeometry(XmComboBoxWidget w, - XtWidgetGeometry *Request, - XtWidgetGeometry *Reply) -{ - XtGeometryResult result = XtGeometryYes; - Dimension minW, minH, editW, labelW; - -/* Elternteil will nichts weiter aendern, also ist uns das - * recht so. - */ - Request->request_mode &= CWWidth | CWHeight; - if ( Request->request_mode == 0 ) return result; - - DefaultGeometry(w, &minW, &minH, &editW, &labelW); - -/* Ueberpruefe, ob uns das in der Breite passt, was Pappi moechte... */ - if ( Request->request_mode & CWWidth ) { - if ( Request->width < minW ) { -/* Wenn Pappi uns etwas vorschlaegt, was im wahrsten Sinne des Wortes - * vorn und hinten nicht reicht, dann versuchen wir ihn entsprechend - * zu korrigieren. ("Versuchen" deshalb, weil er diesen Vorschlag auch - * voellig ignorieren kann.) - */ - result = XtGeometryAlmost; - Reply->width = minW; - Reply->request_mode |= CWWidth; - } - } -/* Die ganze Chose nun noch vertikal */ - if ( Request->request_mode & CWHeight ) { - if ( Request->height < minH ) { - result = XtGeometryAlmost; - Reply->height = minH; - Reply->request_mode |= CWHeight; - } - } - return result; -} /* QueryGeometry */ - -/* -------------------------------------------------------------------- - * Die Groesse des ComboBox-Widgets hat sich veraendert und deshalb - * mussen alle Kinder neu positioniert werden. - * Letzten Endes laeuft hier alles auf ein ordinaeres DoLayout() - * hinaus, um die Kinder umher zu schieben. - * Parameter: - * w Die bereits hinlaenglich bekannte Instanz dieses - * Widgets - */ -static void Resize(XmComboBoxWidget w) -{ - DoLayout(w); -} /* Resize */ - -/* -------------------------------------------------------------------- - * Dieses Widget hat sich in irgendeiner Form bewegt (und das nicht - * nur relativ zum Vater, sondern moeglicherweise auch der Vater - * selbst!) bzw. die Shell, in der sich irgendwo unsere Combo-Box - * befindet, hat soeben den Fokus verschusselt und kann ihn nicht - * mehr wiederfinden. Daneben kann es auch sein, dass die Shell - * ikonisiert wurde. (Welch' Vielfalt! Dieses ist hier halt eine - * multifunktionale Routine.) - * - * Parameter: - * w Die naechste Shell in Reichweite ueber unserer - * Combo-Box. - * cbw Diese Combo-Box. - * event ^ auf den Event, enthaelt genauerere Informationen - * (naja... sieht so aus, als ob Motif hier auch - * schon 'mal Schrott 'reinpackt...) - * ContDispatch Auf True setzen, damit dieser Event noch weiter- - * gereicht wird an all' die anderen, die auch noch - * mithoeren. - */ -static void ShellCallback(Widget w, XtPointer pClientData, - XEvent *event, Boolean *ContDispatch) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; - - switch ( event->type ) { - case ConfigureNotify: - case CirculateNotify: - DoDropDownLayout((XmComboBoxWidget) cbw); - break; - case FocusOut: - LOG3("ShellCallback: FocusOut, mode: %i, detail: %i\n", - (int)event->xfocus.mode, (int)event->xfocus.detail); - if ( cbw->combobox.Persistent ) - cbw->combobox.IgnoreFocusOut = True; - else if ( (event->xfocus.mode == NotifyGrab) && - cbw->combobox.ListVisible ) - cbw->combobox.IgnoreFocusOut = True; - break; - case UnmapNotify: - ShowHideDropDownList((XmComboBoxWidget) cbw, - event, False); - break; - } - *ContDispatch = True; -} /* ShellCallback */ - -/* -------------------------------------------------------------------- - * Diese Routine sorgt dafuer, dass die Liste nicht irrtuemlich bei - * manchen Window Managern vom Bildschirm genommen wird, bloss weil - * diese der OverrideShell den Tastaturfocus schenken bzw. diesen - * dem Combo-Box-Widget wegnehmen, sobald der Mauszeiger in die Liste - * bewegt wird. - */ -static void OverrideShellCallback(Widget w, XtPointer pClientData, - XEvent *event, Boolean *ContDispatch) - -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; - switch ( event->type ) { - case EnterNotify: - LOG2("OverrideShellCallback: EnterNotify, PendingFO: %s\n", - cbw->combobox.PendingFocusOut ? "True" : "False"); - if ( cbw->combobox.PendingFocusOut ) - cbw->combobox.IgnoreFocusOut = True; - if ( cbw->combobox.TwmHandlingOn ) - cbw->combobox.PendingOverrideInOut = True; - break; - case LeaveNotify: - LOG("OverrideShellCallback: LeaveNotify\n"); - if ( cbw->combobox.TwmHandlingOn ) - cbw->combobox.PendingOverrideInOut = True; - break; - } -} /* OverrideShellCallback */ - -/* -------------------------------------------------------------------- - * Ha! Anscheinend kann man das Problem mit der einklappenden Liste, - * sobald man den Arrow-Button anklickt, doch loesen! Allerdings geht - * das auch nur von hinten durch die Brust in's Auge. Hier war die - * Reihenfolge der Events bislang das Problem: Klickt man den Arrow- - * Button an, so verliert das Eingabefeld den Focus, dann wird leider - * schon die WorkProc aktiviert und laesst die Liste verschwinden. - * Danach erst kommt der Arrow-Button-Callback an die Reihe. Um dieses - * Dilemma doch noch zu loesen, wird hier darauf gelauert, wann und - * welcher LeaveNotify kommt. Klickt der Benutzer den Pfeil an, so - * kommt hier noch rechtzeitig ein LeaveNotify vorbei, der aber durch - * einen Grab ausgeloest wurde. Und das ist eben nur beim Anklicken - * der Fall. Damit wissen wir, das der FocusOut getrost ignoriert - * werden darf. - * Puhhh -- ist das ein kompliziertes Chaos. - * Uebrigends...auch wenn manche Befehle zuerst ueberfluessig er- - * scheinen...sie sind erforderlich, damit die ComboBox auch mit unter- - * schiedlichen Window Managern zurechtkommt! - */ -static void ArrowCrossingCallback(Widget w, XtPointer pClientData, - XEvent *event, Boolean *ContDispatch) - -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; - switch ( event->type ) { - case LeaveNotify: - LOG2("ArrowCrossingCallback: LeaveNotify, mode: %i\n", - event->xcrossing.mode); - if ( event->xcrossing.mode == NotifyGrab ) - cbw->combobox.IgnoreFocusOut = True; - else - cbw->combobox.IgnoreFocusOut = False; - break; - } -} /* ArrowCrossingCallback */ - -/* -------------------------------------------------------------------- - * Alle Hilfeaufrufe innerhalb der Kinder gehen an das eigentliche - * Combo-Box-Widget weiter, so dass auch hier nach aussen hin die - * Kinder-Widgets nicht in Erscheinung treten. - */ -static void HelpCallback(Widget w, XtPointer cbw, XtPointer CallData) -{ - XtCallCallbacks((Widget) cbw, XmNhelpCallback, CallData); -} /* HelpCallback */ - -/* -------------------------------------------------------------------- - * Wenn der Benutzer im Eingabefeld osfActivate drueckt, dann dieses - * Ereignis offiziell bekanntgeben. - */ -static void ActivateCallback(Widget w, XtPointer cbw, XtPointer CallData) -{ - XtCallCallbacks((Widget) cbw, XmNactivateCallback, CallData); -} /* ActivateCallback */ - -/* -------------------------------------------------------------------- - * Ein Kind moechte sein Groesse veraendern und fragt deshalb hier bei - * uns an. - * Parameter: - * w Naja... - * *Request Vorschlag des Kindes - * Ergebnis: - * *Reply Unsere Antwort darauf - * XtGeometryNo, da es uns bislang grundsaetzlich nie passt, es sei - * denn, es ist das Label... Naja, jetzt darf auch schon einmal das - * Listenfeld quengeln (aber nur, wenn es staendig sichtbar ist, - * ansonsten wird es nicht beruecksichtigt!). - */ -static XtGeometryResult GeometryManager(Widget w, - XtWidgetGeometry *Request, - XtWidgetGeometry *Reply) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) XtParent(w); - XtGeometryResult Result = XtGeometryNo; - - /* - * Falls das Listenfeld statisch dargestellt wird, muessen wir seine - * Wuensche doch beruecksichtigen. Was fuer ein Aufwand... - */ - if ( (w == XtParent(cbw->combobox.ListCtrl)) && cbw->combobox.StaticList ) { - Dimension TotalWidth, TotalHeight, EditWidth, LabelWidth; - XtWidgetGeometry MyRequest, YourReply, EditGeom; - - XtQueryGeometry(cbw->combobox.EditCtrl, NULL, &EditGeom); - DefaultGeometry(cbw, &TotalWidth, &TotalHeight, - &EditWidth, &LabelWidth); - CheckDropDownOffset(cbw); - - if ( Request->request_mode && CWWidth ) - if ( (Dimension)(LabelWidth + cbw->combobox.DropDownOffset + - Request->width) > TotalWidth ) - TotalWidth = LabelWidth + cbw->combobox.DropDownOffset + - Request->width; - - if ( Request->request_mode && CWHeight ) - TotalHeight = EditGeom.height + Request->height; - /* - * Bastele nun eine Anfrage an Pappi zusammen und geh' ihm damit auf den - * Keks. Wenn er zustimmt, ist sofort alles gut, wir muessen dann nur - * noch das Layout aufpolieren, damit das Listenfeld die neue Groesse - * bekommt. Wenn Pappi nur halb zustimmt, akzeptieren wir das und fragen - * ihn damit noch einmal.... - */ - MyRequest.request_mode = CWWidth | CWHeight; - MyRequest.width = TotalWidth; - MyRequest.height = TotalHeight; - Result = XtMakeGeometryRequest((Widget) cbw, &MyRequest, &YourReply); - if ( Result == XtGeometryAlmost ) { - MyRequest.width = YourReply.width; - MyRequest.height = YourReply.height; - Result = XtMakeGeometryRequest((Widget) cbw, &MyRequest, &YourReply); - } - if ( Result == XtGeometryYes ) - DoLayout(cbw); - } else - /* - * Ansonsten darf nur noch das Schriftfeld Ansprueche anmelden. - */ - if ( w != cbw->combobox.LabelCtrl ) - return XtGeometryNo; /* Was ICH hier vorgegeben habe, gilt! */ - else if ( cbw->combobox.ShowLabel ) { /* Naja, 'mal schauen! */ - Dimension TotalWidth, TotalHeight, EditWidth, LabelWidth; - XtWidgetGeometry MyRequest; - - if ( Request->request_mode & CWWidth ) { - DefaultGeometry(cbw, &TotalWidth, &TotalHeight, - &EditWidth, &LabelWidth); - TotalWidth = TotalWidth - LabelWidth + - Request->width; - - MyRequest.request_mode = CWWidth; - MyRequest.width = TotalWidth; - Result = XtMakeGeometryRequest((Widget) cbw, &MyRequest, NULL); - - if ( Result == XtGeometryYes ) - DoLayout(cbw); - } - } - return Result; -} /* GeometryManager */ - -/* -------------------------------------------------------------------- - * Hier werden auf Wunsch diejenigen Farben, die bei der Combo-Box neu - * gesetzt wurden, an alle Kinder weitergegeben. - */ -#define BOTTOMSHADOWCOLOR 0x0001 -#define TOPSHADOWCOLOR 0x0002 -#define FOREGROUND 0x0004 -#define BACKGROUND 0x0008 - -static struct { String Resource; int Flag; } - ColorResources[] = { - { XmNbottomShadowColor, BOTTOMSHADOWCOLOR }, - { XmNtopShadowColor, TOPSHADOWCOLOR }, - { XmNforeground, FOREGROUND }, - { XmNbackground, BACKGROUND } - }; - -static UpdateColors(XmComboBoxWidget w, int flags) -{ - Pixel Color; - int i, size = XtNumber(ColorResources); - Widget ScrolledWin, ScrollBar; - - ScrolledWin = XtParent(w->combobox.ListCtrl); - XtVaGetValues(ScrolledWin, XmNverticalScrollBar, &ScrollBar, NULL); - for ( i=0; icombobox.ListCtrl, - ColorResources[i].Resource, Color, NULL); - XtVaSetValues(ScrolledWin, - ColorResources[i].Resource, Color, NULL); - XtVaSetValues(ScrollBar, - ColorResources[i].Resource, Color, NULL); - XtVaSetValues(w->combobox.EditCtrl, - ColorResources[i].Resource, Color, NULL); - XtVaSetValues(w->combobox.LabelCtrl, - ColorResources[i].Resource, Color, NULL); - XtVaSetValues(w->combobox.ArrowCtrl, - ColorResources[i].Resource, Color, NULL); - if ( ColorResources[i].Flag & BACKGROUND ) - XtVaSetValues(ScrollBar, XmNtroughColor, Color, NULL); - } - - return 1; -} /* UpdateColors */ - -/* -------------------------------------------------------------------- - * Liste aller vorgespiegelten Resourcen, die automatisch verarbeitet - * werden koennen, ohne weiter darueber nachdenken zu muessen... - */ -typedef enum { EDITCTRL, LISTCTRL, LABELCTRL } CHILDCTRL; -typedef enum { RO, RW, RWS, RWL, RWI, RWIGNORE } aUniqueName; -typedef struct { - String rsc; - CHILDCTRL ctrl; -/* enum { RO, RW, RWS, RWL, RWI, RWIGNORE } dir; */ - aUniqueName dir; - /* nur lesen, lesen&schreiben, lesen&schreiben spezial, - lesen&schreiben label, lesen&schreiben items */ -} MIRROR; - -/* Alle mit !!! gekennzeichneten Eintraege werden auf die richtigen - * Namen des entsprechenden Widgets umgesetzt. - */ -static MIRROR MirroredResources[] = { - { XmNitems, LISTCTRL, RWI }, /* Urgs! */ - { XmNitemCount, LISTCTRL, RWIGNORE }, /* dto. */ - { XmNlistMarginHeight, LISTCTRL, RW }, - { XmNlistMarginWidth, LISTCTRL, RW }, - { XmNlistSpacing, LISTCTRL, RW }, - { XmNstringDirection, LISTCTRL, RO }, /* Naja? */ - { XmNtopItemPosition, LISTCTRL, RO }, - - { XmNblinkRate, EDITCTRL, RW }, - { XmNcolumns, EDITCTRL, RW }, - { XmNcursorPosition, EDITCTRL, RW }, - { XmNcursorPositionVisible, EDITCTRL, RW }, - { XmNmarginHeight, EDITCTRL, RW }, - { XmNmarginWidth, EDITCTRL, RW }, - { XmNmaxLength, EDITCTRL, RW }, - { XmNselectThreshold, EDITCTRL, RW }, - { XmNvalue, EDITCTRL, RWS }, - - { XmNalignment, LABELCTRL, RW }, - { XmNmnemonic, LABELCTRL, RW }, - { XmNmnemonicCharSet, LABELCTRL, RW }, - { XmNlabelPixmap, LABELCTRL, RW }, - { XmNlabelInsensitivePixmap, LABELCTRL, RW }, - { XmNlabelString, LABELCTRL, RW }, - { XmNlabelType, LABELCTRL, RW }, - { XmNlabelMarginBottom, LABELCTRL, RWL }, /* !!! */ - { XmNlabelMarginHeight, LABELCTRL, RWL }, /* !!! */ - { XmNlabelMarginLeft, LABELCTRL, RWL }, /* !!! */ - { XmNlabelMarginRight, LABELCTRL, RWL }, /* !!! */ - { XmNlabelMarginTop, LABELCTRL, RWL }, /* !!! */ - { XmNlabelMarginWidth, LABELCTRL, RWL }, /* !!! */ - { XmNlabelFontList, LABELCTRL, RWL }, /* !!! */ -}; - -typedef struct { - char *from, *to; -} TRANSFORMATION; -static TRANSFORMATION Transformations[] = { - { XmNlabelMarginBottom, XmNmarginBottom }, - { XmNlabelMarginHeight, XmNmarginHeight }, - { XmNlabelMarginLeft, XmNmarginLeft }, - { XmNlabelMarginRight, XmNmarginRight }, - { XmNlabelMarginTop, XmNmarginTop }, - { XmNlabelMarginWidth, XmNmarginWidth }, - { XmNlabelFontList, XmNfontList }, -}; - -/* -------------------------------------------------------------------- - * Sobald irgendeine Resource veraendert wird, erfolgt der Aufruf - * hierin als Benachrichtigung, einmal nach dem rechten zu sehen. - * Parameter: - * current Kopie der Widget-Instanz, bevor irgendwelche - * Resourcen veraendert oder set_values()-Methoden - * aufgerufen wurden. - * req Kopie der Widget-Instanz, aber bereits mit den - * durch XtSetValues veraenderten Werten - * new aktuellster Zustand der Widget-Instanz mit - * veraenderten Werten (entweder durch XtSetValues - * oder set_values()-Methoden der Superklasse) - * args Argumentenliste beim Aufruf von XtSetValues() - * NumArgs Anzahl der Argumente in der Liste - * Ergebnis: - * True, falls Widget neu gezeichnet werden soll. - */ -static Boolean SetValues(XmComboBoxWidget current, XmComboBoxWidget req, - XmComboBoxWidget newW, - ArgList args, Cardinal *NumArgs) -{ - Boolean Update = False; - int i, j, MirrorSize = XtNumber(MirroredResources); - int k, TransformationSize = XtNumber(Transformations); - Arg arg; - int Flags; - -/* - * Alle Resourcen, die nicht mehr nach dem Erstellen der Widget-Instanz - * veraendert werden koennen. - */ - newW->combobox.Editable = current->combobox.Editable; - newW->combobox.ListCtrl = current->combobox.ListCtrl; - newW->combobox.EditCtrl = current->combobox.EditCtrl; - newW->combobox.LabelCtrl = current->combobox.LabelCtrl; - newW->combobox.SelectionPolicy = current->combobox.SelectionPolicy; - newW->combobox.ListSizePolicy = current->combobox.ListSizePolicy; - newW->combobox.StaticList = current->combobox.StaticList; - -/* - * Kontrolliere nun alle Resourcen, die sich veraendert haben koennten - * und gebe die neuen Einstellungen entsprechend weiter... - * - * Hat sich der Sensitive-Zustand veraendert? Dann muessen wir hier dafuer - * sorgen, dass alle Kinder ebenfalls den neuen Zustand annehmen. - */ - if ( current->core.sensitive != newW->core.sensitive ) { - XtSetSensitive(newW->combobox.ListCtrl, newW->core.sensitive); - XtSetSensitive(newW->combobox.EditCtrl, newW->core.sensitive); - XtSetSensitive(newW->combobox.ArrowCtrl, newW->core.sensitive); - XtSetSensitive(newW->combobox.ListCtrl, newW->core.sensitive); - if ( !newW->core.sensitive ) - ShowHideDropDownList(newW, NULL, False); - } -/* - * Die ScrollBarPolicy kann nur dann geaendert werden, wenn das Listenfeld - * dauerhaft dargestellt wird. - */ - if ( newW->combobox.ScrollBarDisplayPolicy != - current->combobox.ScrollBarDisplayPolicy ) - if ( newW->combobox.StaticList ) - XtVaSetValues(newW->combobox.ListCtrl, - XmNscrollBarDisplayPolicy, newW->combobox.ScrollBarDisplayPolicy, - NULL); - else - XtWarning( -"XmComboBox: ScrollBarDisplayPolicy can not be changed when StaticList == False." - ); -/* Anzahl der in der Liste gleichzeitig darstellbaren Eintraege */ - if ( current->combobox.VisibleItemCount != - newW->combobox.VisibleItemCount ) { - XtVaSetValues(newW->combobox.ListCtrl, - XmNvisibleItemCount, newW->combobox.VisibleItemCount, - NULL); - Update = True; - } - if ( current->combobox.AutomaticSelection != - newW->combobox.AutomaticSelection ) - XtVaSetValues(newW->combobox.ListCtrl, - XmNautomaticSelection, newW->combobox.AutomaticSelection, - NULL); - -/* - * benutzter Font: hier erhalten Liste und Eingabefeld jeweils die - * gleiche Fontliste, wohingegen das Label getrennt behandelt wird. - * Das macht auch Sinn, denn Liste und Eingabefeld beinhalten gleich- - * artigen Text, so dass hier auch tunlichst der gleiche Font zu - * benutzen ist. - */ - if ( current->combobox.Font != newW->combobox.Font ) { - XtVaSetValues(newW->combobox.ListCtrl, - XmNfontList, newW->combobox.Font, NULL); - XtVaSetValues(newW->combobox.EditCtrl, - XmNfontList, newW->combobox.Font, NULL); - Update = True; - } - - Flags = 0; - if ( newW->manager.top_shadow_color != - current->manager.top_shadow_color ) Flags |= TOPSHADOWCOLOR; - if ( newW->manager.bottom_shadow_color != - current->manager.bottom_shadow_color ) Flags |= BOTTOMSHADOWCOLOR; - if ( newW->manager.foreground != - current->manager.foreground ) Flags |= FOREGROUND; - if ( newW->core.background_pixel != - current->core.background_pixel ) Flags |= BACKGROUND; - if ( Flags ) { UpdateColors(newW, Flags); Update = True; } - - - if ( newW->combobox.ArrowCursor != current->combobox.ArrowCursor ) { - if ( newW->combobox.ListVisible ) - XDefineCursor(XtDisplay(newW->combobox.PopupShell), - XtWindow(newW->combobox.PopupShell), - newW->combobox.ArrowCursor); - } -/* Hier werden die vorgespiegelten Resourcen verwaltet, die in - * Wirklichkeit zu einem unserer Kinder gehoeren. - */ - for ( i = 0; i < *NumArgs; i++ ) { -/* Ist es eine vorgespiegelte Resource ? Wenn ja, dann leite die - * Anfrage an das entsprechende Kind-Widget weiter. - */ - for ( j = 0; j < MirrorSize; j++ ) { - if ( (strcmp(args[i].name, MirroredResources[j].rsc) == 0) ) { - switch ( MirroredResources[j].dir ) { - case RW: /* schreibender Zugriff erlaubt */ - XtSetValues(MirroredResources[j].ctrl == LISTCTRL ? - newW->combobox.ListCtrl : - (MirroredResources[j].ctrl == EDITCTRL ? - newW->combobox.EditCtrl : - newW->combobox.LabelCtrl), - &(args[i]), 1); - break; - case RWS: /* schreibender Zugriff unter Kontrolle */ - if ( strcmp(args[i].name, XmNvalue) == 0 ) { - if ( newW->combobox.Editable ) - XtSetValues(newW->combobox.EditCtrl, - &(args[i]), 1); - } - break; - case RWL: /* Transformation in andere Resource beim - Label-Widget */ - for ( k = 0; k < TransformationSize; k++ ) - if ( strcmp(args[i].name, Transformations[k].from) == 0 ) { - arg.value = args[i].value; - arg.name = Transformations[k].to; - XtSetValues(newW->combobox.LabelCtrl, - &arg, 1); - break; - } - break; - case RWIGNORE: /* Zugriff auf XmNitemCount */ - /* Wird von XmNitems erledigt! */ - break; - case RWI: /* Zugriff auf XmNitems */ - for ( k = 0; k < *NumArgs; k++ ) - if ( strcmp(args[k].name, XmNitemCount) == 0 ) { - Arg MyArgs[2]; - - MyArgs[0].name = XmNitems; - MyArgs[0].value = args[i].value; - MyArgs[1].name = XmNitemCount; - MyArgs[1].value = args[k].value; - XtSetValues(newW->combobox.ListCtrl, - args, 2); - /*XtVaSetValues(newW->combobox.ListCtrl, - XmNitems, args[i].value, - XmNitemCount, args[k].value, - NULL);*/ - break; - } - break; - case RO: - break; - } /* case write mode */ - goto ScanForNextResource; - } /* if entry found */ - } /* for every mirrored entry */ - ScanForNextResource: ; - } /* for every Arg */ - - if ( (newW->combobox.SquareArrow != current->combobox.SquareArrow) || - (newW->combobox.ArrowSpacingOn != current->combobox.ArrowSpacingOn) ) { - Update = False; - DoLayout(newW); - } - - return Update; -} /* SetValues */ - -/* -------------------------------------------------------------------- - * Werden irgendwelche Resourcen abgefragt, so muessen wir hier erst - * noch vor der Rueckkehr zum Frager klaeren, ob davon eine Resource - * betroffen ist, die nur vorgespiegelt ist, da sie eigentlich einem - * der Widgets gehoert, die von uns hier verwaltet werden, um daraus - * eine ordentliche Combo-Box zu machen. - * Parameter: - * w Widget-Instanz - * args Abgefragte Resourcen - * NumArgs Anzahl der abgefragten Resourcen - */ -static void GetValuesAlmost(XmComboBoxWidget w, ArgList args, - Cardinal *NumArgs) -{ - int i, j, MirrorSize = XtNumber(MirroredResources); - int k, TransformationSize = XtNumber(Transformations); - Arg arg; - - for ( i = 0; i < *NumArgs; i++ ) { -/* Ist es eine vorgespiegelte Resource ? Wenn ja, dann leite die - * Anfrage an das entsprechende Kind-Widget weiter. - */ - for ( j = 0; j < MirrorSize; j++ ) { - if ( strcmp(args[i].name, MirroredResources[j].rsc) == 0 ) { - switch ( MirroredResources[j].dir ) { - case RO: - case RW: - case RWS: - case RWI: - XtGetValues(MirroredResources[j].ctrl == LISTCTRL ? - w->combobox.ListCtrl : - MirroredResources[j].ctrl == EDITCTRL ? - w->combobox.EditCtrl : - w->combobox.LabelCtrl, - &(args[i]), 1); - break; - case RWL: /* Umzuleitende Resource bei Label-Widget */ - for ( k = 0; k < TransformationSize; k++ ) - if ( strcmp(args[i].name, Transformations[k].from) == 0 ) { - arg.value = args[i].value; - arg.name = Transformations[k].to; - XtGetValues(w->combobox.LabelCtrl, - (ArgList) &arg, 1); - break; - } - break; - } /* case read mode */ - } /* if entry found */ - } /* for every mirrored entry */ - } /* for every Arg */ -} /* GetValuesAlmost */ - -/* -------------------------------------------------------------------- - * Zeige beziehungsweise verstecke die Drop-Down-Liste der Combo-Box. - * Falls die Liste bereits den entsprechenden Zustand hat, geht's - * sofort zum Aufrufer zurueck. - * Parameter: - * w Her Royal Majesty ComboBox - * Show True, falls anzuzeigen, andernfalls False - */ -static void ShowHideDropDownList(XmComboBoxWidget w, XEvent *event, - Boolean Show) -{ - XmComboBoxDropDownCallbackStruct info; - - if ( w->combobox.StaticList || - (Show == w->combobox.ListVisible) ) return; - w->combobox.ListVisible = Show; - if ( Show ) { /* Klapp' die Liste aus! */ - DoDropDownLayout(w); - info.reason = XmCR_SHOW_LIST; - info.event = event; - XtCallCallbacks((Widget) w, XmNdropDownCallback, - (XtPointer) &info); - XDefineCursor(XtDisplay(w->combobox.PopupShell), - XtWindow(w->combobox.PopupShell), - w->combobox.ArrowCursor); - XtPopup(w->combobox.PopupShell, XtGrabNone); - XtVaSetValues(w->combobox.ArrowCtrl, - XmNarrowDirection, XmARROW_UP, NULL); - } else { /* Klapp' die Liste wieder ein... */ - XtPopdown(w->combobox.PopupShell); - XtVaSetValues(w->combobox.ArrowCtrl, - XmNarrowDirection, XmARROW_DOWN, NULL); - info.reason = XmCR_HIDE_LIST; - info.event = event; - XtCallCallbacks((Widget) w, XmNdropDownCallback, - (XtPointer) &info); - } -} /* ShowHideDropDownList */ - -/* -------------------------------------------------------------------- - * Hier laeuft die Nachricht auf, dass der Pfeil ausgeloest wurde... - * (Daraufhin sollte die Liste aus- oder eingeklappt werden) - * ...oder dass der Benutzer da draussen auf der anderen Seite der - * Mattscheibe den Pfeil bereits anklickte ohne aber bereits losge- - * gelassen zu haben. Bereits hier bekommt das Eingabefeld den Fokus - * vor den Latz geknallt, denn sonst kann es passieren, dass zwar die - * Liste ausgeklappt ist, aber das Eingabefeld noch keinen Tastatur- - * fokus erhalten hat. Das sollte aber nicht so sein, denn es ist dann - * keine konsequente Tastaturbedienung. - */ -static void ArrowCallback(Widget w, XtPointer pClientData, - XmAnyCallbackStruct *info) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) XtParent(w); - - switch ( info->reason ) { - case XmCR_ARM: - LOG("ArrowCallback: XmCR_ARM\n"); - XmProcessTraversal(cbw->combobox.EditCtrl, XmTRAVERSE_CURRENT); - if ( cbw->combobox.TwmHandlingOn && cbw->combobox.ListVisible ) - cbw->combobox.IgnoreFocusOut = True; - break; - case XmCR_ACTIVATE: - XmProcessTraversal(cbw->combobox.EditCtrl, XmTRAVERSE_CURRENT); - ShowHideDropDownList(cbw, info->event, - (Boolean)(!cbw->combobox.ListVisible)); - break; - } -} /* ArrowCallback */ - -/* -------------------------------------------------------------------- - * Diese Benachrichtigung moechte uns nur mitteilen, dass wir soeben - * den Fokus verloren haben (Ohhhh!) Sollte allerdings der Fokus nur - * aus dem Grunde perdue sein, dass der Anwender den Mauszeiger ausser- - * halb des Applikationsfensters plaziert hat, so koennen wir diese - * Nachricht uebergehen. Erst wenn der Fokus an ein anderes Widget in - * unserer Applikation verlorenging, muessen wir auf diese Information - * reagieren. - * Und jetzt zu noch einem total beknackten Problem - alles nur wegen - * Motif und den diversen Window-Managern (bspw. olwm)... Leider kommt - * beim FocusOut kein richtiger Hinweis auf den tatsaechlichen Event, - * der dieses Callback ausloeste -- warum liefert denn dann Motif ueber- - * haupt noch den Event???? Und ueberhauupt, die Geschichte mit dem - * Fokus ist schon der reinste Horror. Aktueller Ausweg: wenn wir die - * Benachrichtigung ueber den Focusabgang bekommen, registrieren wir - * eine Work-Prozedur, die, sobald der Rechner wieder Luft hat, auf- - * gerufen wird. Sie kann dann nachschauen, ob nicht inzwischen die - * OverrideShell den Focus bekahm. Wenn ja, koennen wir den FocusOut - * uebergehen, ansonsten muessen wir ihn beruecksichtigen. - * -- Ist das eine ^@#$^*(#$^&! (Meine gute Erziehung hindert mich - * daran, diesen Begriff hier zu nennen.) - */ -static Boolean DelayedFocusOutWorkProc(XtPointer pClientData) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; - LOG2("DelayedFocusOutWorkProc: IgnoreFocusOut: %s\n", - cbw->combobox.IgnoreFocusOut ? "True" : "False"); - if ( !cbw->combobox.IgnoreFocusOut ) - ShowHideDropDownList(cbw, &(cbw->combobox.xevent), False); - cbw->combobox.IgnoreFocusOut = False; - cbw->combobox.PendingFocusOut = False; - return True; /* diese Routine wird nicht mehr benoetigt. */ -} /* DelayedFocusOutWorkProc */ - -static void EditFocusCallback(Widget w, XtPointer pClientData, - XmAnyCallbackStruct *info) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) XtParent(w); - - if ( cbw->combobox.StaticList ) return; - - if ( info->reason == XmCR_LOSING_FOCUS ) { - LOG2("EditFocusCallback: PendingFocusOut: %s, ", - cbw->combobox.PendingFocusOut ? "True" : "False"); - LOG3("mode: %i, detail: %i, ", (int)info->event->xcrossing.mode, - (int)info->event->xcrossing.detail); - LOG2("PendingOverrideInOut: %s\n", - cbw->combobox.PendingOverrideInOut ? "True" : "False"); - if ( !cbw->combobox.PendingFocusOut && - !cbw->combobox.PendingOverrideInOut ) { - /* Normalerweise duerfen aber keine NULL-Events hier - * vorbeikommen...aber man weiss ja nie so genau und - * sicher ist sicher. Defensiv programmieren! - */ - if ( info->event ) - cbw->combobox.xevent = *info->event; - cbw->combobox.WorkProcID = XtAppAddWorkProc( - XtWidgetToApplicationContext((Widget) cbw), - (XtWorkProc) DelayedFocusOutWorkProc, - (XtPointer) cbw); - cbw->combobox.PendingFocusOut = True; - } - cbw->combobox.PendingOverrideInOut = False; - } -} /* EditFocusCallback */ - -/* -------------------------------------------------------------------- - * Hier wird der angegebene Eintrag in der Listbox der Combo-Box - * markiert und zudem in den sichtbaren Bereich gerollt, sollte er - * sich ausserhalb des dargestellten Bereichs der Liste befinden. - * Parameter: - * w Die Combo-Box (ueblicher Parameter) - * Index Index des neu zu markierenden Eintrages. - * Notify Schickt Mitteilung via Callback - * Ergebnis: - * Index des markierten Eintrages oder 0, falls die Listbox leer - * war und deshalb auch kein Eintrag markiert werden konnte. - */ -static int SetSelectionPos(XmComboBoxWidget w, int Index, Boolean Notify) -{ - Widget ListBox = w->combobox.ListCtrl; - int ItemCount; /* Anzahl Eintraege in Listbox */ - int TopItem, VisibleItems; - - XtVaGetValues(ListBox, XmNitemCount, &ItemCount, - XmNtopItemPosition, &TopItem, - XmNvisibleItemCount, &VisibleItems, - NULL); - if ( Index < 1 ) Index = 1; - if ( Index > ItemCount ) Index = ItemCount; - if ( Index != 0 && ItemCount != 0 ) { - if ( Index < TopItem ) - XmListSetPos(ListBox, Index); - if ( Index >= TopItem + VisibleItems ) - XmListSetBottomPos(ListBox, Index); - XmListSelectPos(ListBox, Index, Notify); - return Index; - } else - return 0; -} /* SetSelectionPos */ - -/* -------------------------------------------------------------------- - * Diese Routine kuemmert sich darum, denjenigen Eintrag aus der List- - * box mit der angegebenen Nummer herauszufischen und an die Eingabe- - * zeile zu uebergeben. Dabei wird der Index auf den Eintrag auto- - * matisch auf den zulaessigen Bereich begrenzt. Zugleich wird auch - * noch der angegebene Eintrag in der Listbox markiert. - */ -static void TransferToEditCtrl(XmComboBoxWidget w, int SelectionIndex, - Boolean MayWipeOut) -{ - Widget ListBox = w->combobox.ListCtrl; - XmStringTable Items; - char *pItemText; - - XtVaGetValues(ListBox, XmNitems, &Items, NULL); - - if ( MayWipeOut && - (SelectionIndex == w->combobox.LastSelection) && - (w->combobox.SelectionPolicy == XmSINGLE_SELECT) ) { - SelectionIndex = 0; - } - - if ( (SelectionIndex == 0) && - (w->combobox.SelectionPolicy == XmSINGLE_SELECT) ) { - XmListDeselectAllItems(w->combobox.ListCtrl); - w->combobox.PassVerification = True; - XmTextFieldSetString(w->combobox.EditCtrl, ""); - } else { - SelectionIndex = SetSelectionPos(w, SelectionIndex, False); - if ( SelectionIndex > 0 ) { - XmStringGetLtoR(Items[SelectionIndex-1], - XmSTRING_DEFAULT_CHARSET, &pItemText); - w->combobox.PassVerification = True; - XmTextFieldSetString(w->combobox.EditCtrl, pItemText); - XtFree(pItemText); - } - } - w->combobox.LastSelection = SelectionIndex; -} /* TransferToEditCtrl */ - -/* -------------------------------------------------------------------- - * Alle registrierten Callbacks bei Anwahl eines neuen Eintrages in - * der Listbox aktivieren. - */ -static void CallSelectionCBL(XmComboBoxWidget w, XEvent *Event) -{ - int index; - - index = XmComboBoxGetSelectedPos((Widget) w); - /* - * Wenn momentan KEIN Eintrag selektiert ist, dann rufe den neuen - * XmNunselectionCallback auf! - */ - if ( index == 0 ) { - XmComboBoxUnselectionCallbackStruct info; - - info.reason = XmCR_UNSELECT; - info.event = Event; - XtCallCallbacks((Widget) w, XmNunselectionCallback, (XtPointer) &info); - } else { - /* - * Ansonsten den ueblichen SelectionCallback! - */ - XmComboBoxSelectionCallbackStruct info; - XmStringTable Items; - - info.reason = w->combobox.SelectionPolicy == XmSINGLE_SELECT ? - XmCR_SINGLE_SELECT : XmCR_BROWSE_SELECT; - info.event = Event; - info.index = index; - XtVaGetValues(w->combobox.ListCtrl, XmNitems, &Items, NULL); - info.value = Items[info.index-1]; - XtCallCallbacks((Widget) w, XmNselectionCallback, (XtPointer) &info); - } -} /* CallSelectionCBL */ - -/* -------------------------------------------------------------------- - * Hier laeuft das Tastatur-Management fuer die ComboBox zusammen. - * ACHTUNG: Der 'w'-Parameter wird nur benoetigt, um das eigentliche - * ComboBox-Widget zu ermitteln. Er muss daher die ID eines direkten - * Kinds der ComboBox enthalten! - */ -static void CBoxManager(Widget w, XEvent *Event, String *params, - Cardinal *num_params) -{ - XmComboBoxWidget cbw; - Widget ListBox; - int *SelectionList; - int SelectionCount; - int SelectionIndex; /* Wer denn nun markiert wird... */ - int ItemCount; /* Anzahl Eintraege in Listbox */ - int VisibleItems; /* Hoehe der Liste in Eintraegen */ - char opt; - - /* - * Nur wenn eine der Translationen page-up und page-down direkt im - * Listenfeld ausgeloest wurden, wird auch als "w" die Liste ueber- - * geben. Bei allen anderen Faellen ist dieses zumeist das TextField. - */ - if ( XtClass(w) == xmListWidgetClass ) - cbw = (XmComboBoxWidget) XtParent(XtParent(w)); - else - cbw = (XmComboBoxWidget) XtParent(w); - ListBox = cbw->combobox.ListCtrl; - - switch ( *(params[0]) ) { -/* -------------------------------------------------------------------- - * Klappe die Liste auf Wunsch des Benutzers aus oder wieder ein. - */ - case 's': /* show-hide-list */ - ShowHideDropDownList(cbw, Event, - (Boolean)(!cbw->combobox.ListVisible)); - break; - case 'h': /* hide-list */ - ShowHideDropDownList(cbw, Event, False); - break; -/* -------------------------------------------------------------------- - * Hier werden die Bewegungen in der Listbox behandelt. - */ - case 'u': /* up */ - case 'd': /* down */ - case 't': /* top */ - case 'b': /* bottom */ - case 'p': /* page-up/page-down */ - opt = *(params[0]); - XtVaGetValues(ListBox, XmNitemCount, &ItemCount, - XmNvisibleItemCount, &VisibleItems, NULL); - if ( XmListGetSelectedPos(ListBox, - &SelectionList, &SelectionCount) ) { - SelectionIndex = *SelectionList; - XtFree((char *)SelectionList); - switch ( opt ) { - case 'u': SelectionIndex--; break; - case 'd': SelectionIndex++; break; - case 't': SelectionIndex = 1; break; - case 'b': SelectionIndex = ItemCount; break; - case 'p': if ( *(params[0]+5) == 'u' ) - SelectionIndex -= VisibleItems; - else - SelectionIndex += VisibleItems; - break; - } - } else { /* momentan noch kein Eintrag in der Liste ausgewaehlt */ - if ( opt == 'b' ) SelectionIndex = ItemCount; - else SelectionIndex = 1; /* nun ersten Eintrag nehmen */ - } - TransferToEditCtrl(cbw, SelectionIndex, False); - CallSelectionCBL(cbw, Event); - break; -/* -------------------------------------------------------------------- - * Der Benutzer hat die Eingabetaste gedrueckt oder einen Eintrag in - * der Listbox angeklickt. - */ - case 'a': /* Return = activate */ - case 'S': /* Selection */ - if ( !cbw->combobox.StaticList && !cbw->combobox.ListVisible ) break; - XtVaGetValues(ListBox, XmNitemCount, &ItemCount, NULL); - if ( ItemCount == 0 ) break; - if ( XmListGetSelectedPos(ListBox, - &SelectionList, &SelectionCount) ) { - SelectionIndex = *SelectionList; - XtFree((char *)SelectionList); - } else { - if ( cbw->combobox.SelectionPolicy != XmSINGLE_SELECT ) - SelectionIndex = 1; - else - SelectionIndex = 0; - } - - TransferToEditCtrl(cbw, SelectionIndex, - *(params[0]) == 'S'); - CallSelectionCBL(cbw, Event); - ShowHideDropDownList(cbw, Event, (Boolean) - (*(params[0]) == 'S' ? True : False)); - break; -/* -------------------------------------------------------------------- - * Der Benutzer hat die ESC-Taste gedrueckt. Ist die Liste zu diesem - * Zeitpunkt noch ausgeklappt, so wird sie einfach nur eingeklappt und - * weiter passiert nichts. Ist die Liste jedoch eingeklappt, so wird - * das ESC an die normale Action-Routine des Eingabefeldes weiter- - * gegeben, damit damit bspw. Dialog u.a. abgebrochen werden koennen. - */ - case 'c': /* Cancel */ - if ( cbw->combobox.ListVisible ) - ShowHideDropDownList(cbw, Event, False); - else - XtCallActionProc(cbw->combobox.EditCtrl, - "process-cancel", Event, NULL, 0); - break; -/* -------------------------------------------------------------------- - * Wenn es erlaubt ist, dass auch einmal kein Eintrag in einer ComboBox - * mit nicht editierbarem Eingabefeld ausgewaehlt ist, dann darf der - * Anwender mittels osfDelete den aktuellen Eintrag deselektieren. - */ - case 'w': /* wipe */ - if ( cbw->combobox.SelectionPolicy == XmSINGLE_SELECT ) { - TransferToEditCtrl(cbw, 0, True); - CallSelectionCBL(cbw, Event); - } - break; -/* -------------------------------------------------------------------- - * Dummy-Operation - */ - case 'n': /* no-operation */ - break; - } -} /* CBoxManager */ - -/* -------------------------------------------------------------------- - * Der Benutzer hat einen Eintrag in der Listbox angeklickt. Der Ein- - * fachkeit halber wird einfach nur ein Druecken der Eingabetaste - * simuliert. - */ -static void ListSelectionCallback(Widget w, XtPointer pClientData, - XmAnyCallbackStruct *info) -{ - String paramsMouse[1] = { "a" }, paramsKeyboard[1] = { "S" }; - Cardinal NumParams = 1; - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; -/* - * Wurde der Event durch die Tastatur oder einen Mausklick - * ausgeloest? Wenn es ein Mausklick auf das Listenfeld war und es - * sich um ein staendig angezeigtes Listenfeld einer nicht editierbaren - * ComboBox handelt, dann gib' dem Eingabefeld den Tastaturfokus. - */ - if ( info->event == NULL ) - CBoxManager(cbw->combobox.EditCtrl, info->event, - paramsKeyboard, &NumParams); - else { - CBoxManager(cbw->combobox.EditCtrl, info->event, - paramsMouse, &NumParams); - if ( !cbw->combobox.StaticList || - (cbw->combobox.StaticList && !cbw->combobox.Editable) ) - XmProcessTraversal(cbw->combobox.EditCtrl, - XmTRAVERSE_CURRENT); - } -} /* ListSelectionCallback */ - -/* -------------------------------------------------------------------- - * Nach einem Doppelklick innerhalb des Listenfelds wird diese Routine - * aufgerufen. Zunaechst einmal wird ganz normal wie bei einem ein- - * fachen Anklicken vorgegangen, danach aber noch der ein spezieller - * Callback aufgerufen. - */ -static void ListDefaultActionCallback(Widget w, XtPointer pClientData, - XmAnyCallbackStruct *OldInfo) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; - XmComboBoxDefaultActionCallbackStruct info; - XmStringTable Items; - - ListSelectionCallback(w, pClientData, OldInfo); - info.reason = XmCR_DEFAULT_ACTION; - info.event = OldInfo->event; - info.index = XmComboBoxGetSelectedPos((Widget) cbw); - XtVaGetValues(cbw->combobox.ListCtrl, XmNitems, &Items, NULL); - info.value = Items[info.index-1]; - XtCallCallbacks((Widget) cbw, XmNdefaultActionCallback, (XtPointer) &info); -} /* ListDefaultActionCallback */ - - -/* -------------------------------------------------------------------- - * Ohweh!! Diese Routine wurde erforderlich, um XmNautomaticSelection - * zu unterstuetzen. Denn wenn der Benutzer in der Liste herumsucht und - * automaticSelection 'True' ist, kommt kein Callback-Aufruf mehr, wenn - * die Maustaste losgelassen wird. Und damit wuessten wir sonst nicht, - * wann die Liste einzuklappen ist! Irgendwie wird das alles mit der - * Zeit immer konfuser und aufwendiger. Wenn das Chaos gequantelt - * sein sollte, dann muss das Chaos-Quant (sog. 'Chaotonen') aber jede - * Menge Chaos transportieren!!! - */ -static void Button1UpInList(Widget w, XtPointer pClientData, - XEvent *Event, Boolean *ContDispatch) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) pClientData; - - if ( Event->xbutton.button == Button1 ) { - if ( cbw->combobox.AutomaticSelection ) - ShowHideDropDownList(cbw, Event, False); - } -} /* Button1UpInList */ - -/* -------------------------------------------------------------------- - * Sobald sich irgendetwas im Eingabefeld veraenderte, kommt das - * TextField-Widget zuerst zu uns gelaufen, um sich unser Okay zu - * holen. Bei einer nicht editierbaren Combo-Box wird hierueber die - * Schnellsuche realisiert. - */ -static void EditVerifyCallback(Widget w, XtPointer pClientData, - XmTextVerifyCallbackStruct *info) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) XtParent(w); - -/* - * Sollte gerade dem Eingabefeld Text aus der Listbox einverleibt - * werden, so duerfen wir hier darueber natuerlich nicht meckern, - * sondern unser <> dazu geben. (D.h. in diesem Fall haben wir - * kein Recht, zu intervenieren.) - */ - if ( cbw->combobox.PassVerification ) { - cbw->combobox.PassVerification = False; - info->doit = True; - return; - } -/* - * Ist es eine Combo-Box, in die kein Text vom Benutzer eingegeben - * werden kann, so wird bei der Eingabe von Zeichen die Schnellsuche - * ausgeloest. - */ - if ( !cbw->combobox.Editable ) { - Widget ListBox = cbw->combobox.ListCtrl; - char WarpCharLow, WarpCharHigh; - XmString Item; - XmStringTable Items; - int *SelectionList; - int SelectionCount; - int i, ItemCount, Start, End; - char *pItem; - Boolean Ignore; - - info->doit = False; - if ( (info->text == NULL ) || - (info->text->length == 0 ) ) return; /* Hoppala! */ -/* - * Nun aus dem Zeichen einen String (Motif-like) basteln und - * in der Listbox danach auf die Suche gehen. - */ - if ( info->text->length > 1 ) { - /* Das ist nun endweder ein normaler Paste, oder aber - * das Ergebnis einer Drag'n'Drop-Operation. - */ - Item = XmStringCreateSimple(info->text->ptr); - XmComboBoxSelectItem((Widget) cbw, Item, True); - XmStringFree(Item); - } else { - /* Ansonsten soll nur eine Schnellsuche ausgefuehrt - * werden, der entsprechende Buchstabe ist das einzige - * Zeichen im dem Callback uebergebenen Text. - */ - WarpCharLow = tolower(*(info->text->ptr)); - WarpCharHigh = toupper(WarpCharLow); - - XtVaGetValues(ListBox, XmNitemCount, &ItemCount, - XmNitems, &Items, - NULL); - if ( ItemCount < 1 ) return; - /* Ermittele, wo's los geht mit der Suche... */ - if ( XmListGetSelectedPos(ListBox, - &SelectionList, &SelectionCount) ) { - Start = *SelectionList; i = Start + 1; - XtFree((char *)SelectionList); - } else i = Start = 1; - - if ( i > ItemCount ) i = 1; - Ignore = True; - while ( i != Start || Ignore ) { - Ignore = False; - XmStringGetLtoR(Items[i-1], XmSTRING_DEFAULT_CHARSET, - &pItem); - if ( (strchr(pItem, WarpCharLow ) == pItem) || - (strchr(pItem, WarpCharHigh) == pItem) ) { - XtFree(pItem); - TransferToEditCtrl(cbw, i, False); - CallSelectionCBL(cbw, info->event); - break; - } - XtFree(pItem); - if ( ++i > ItemCount ) i = 1; - } - } - } else { -/* - * Wenn das Eingabefeld editierbar ist, dann fragen wir ueber die Callbacks - * nach, ob es genehm ist, den neuen Text einzufuegen. - */ - XtCallCallbacks((Widget) cbw, XmNmodifyVerifyCallback, - (XtPointer) info); - } -} /* EditVerifyCallback */ - -/* -------------------------------------------------------------------- - * Dieser Callback wird immer dann aufgerufen, wenn in einer ComboBox - * mit einem veraenderlichem Eingabefeld der Eingabetext veraendert - * wurde. In diesem Fall suchen wir hier nach einem passenden gleich- - * lautenden Eintrag. Wenn wir einen finden, heben wir ihn in der Liste - * sogleich hervor, ansonsten ist kein Eintrag hervorgehoben. - */ -static void EditChangedCallback(Widget w, XtPointer pClientDate, - XmAnyCallbackStruct *info) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) XtParent(w); - XmStringTable Items; - int ItemCount, i; - XmString EditStr; - String EditLine; - - /* - * Zuerst nach einem passenden Eintrag zum Eingabefeld in der Liste - * suchen... - */ - XtVaGetValues(cbw->combobox.EditCtrl, XmNvalue, &EditLine, NULL); - XtVaGetValues(cbw->combobox.ListCtrl, - XmNitemCount, &ItemCount, - XmNitems, &Items, - NULL); - EditStr = XmStringCreateSimple(EditLine); - XtVaSetValues(cbw->combobox.ListCtrl, XmNselectedItemCount, 0, NULL); - if ( ItemCount < 1 ) return; - for ( i = 0; i < ItemCount; i++ ) - if ( XmStringCompare(Items[i], EditStr) ) { - SetSelectionPos(cbw, i+1, False); - break; - } - XmStringFree(EditStr); - /* - * Zum Abschluss noch den Callback aufrufen... - */ - XtCallCallbacks((Widget) cbw, XmNvalueChangedCallback, (XtPointer) info); -} /* EditChangedCallback */ - -/* -------------------------------------------------------------------- - * Dieser Callback wird immer dann aufgerufen, wenn in einer ComboBox - * mit einem veraenderlichem Eingabefeld der Cursor bewegt wurde. - * Dieser Callback ist nur fuer echte Fans von Callbacks da... - */ -static void MotionVerifyCallback(Widget w, XtPointer pClientDate, - XmTextVerifyCallbackStruct *info) -{ - XmComboBoxWidget cbw = (XmComboBoxWidget) XtParent(w); - - XtCallCallbacks((Widget) cbw, XmNmotionVerifyCallback, (XtPointer) info); -} /* MotionVerifyCallback */ - -/* -------------------------------------------------------------------- - * Bastele einen vollstaendigen Namens- und Klassenbezeichner anhand - * des angegebenen Widgets zusammen. - */ -static void MakeNameAndClass(Widget w, char *NameBuff, char *ClassBuff) -{ - Widget Parent = XtParent(w); - - if ( Parent ) MakeNameAndClass(Parent, NameBuff, ClassBuff); - if ( XtIsSubclass(w, applicationShellWidgetClass) ) { - /* Wenn wir ganz oben angekommen sind, holen wir uns den - * Namen und die Klasse der Applikation selbst und nicht die - * des Widgets. - */ - String AppName, AppClass; - XtGetApplicationNameAndClass( - XtDisplayOfObject(w), &AppName, &AppClass); - strcpy(NameBuff, AppName); - strcpy(ClassBuff, AppClass); - } else { - /* Ansonsten sind wir noch mitten irgendwo in der Hierarchie - * und besorgen uns den Namen und die Klasse dieses Widgets - */ - strcat(NameBuff, "."); - strcat(NameBuff, XtName(w)); - strcat(ClassBuff, "."); - strcat(ClassBuff, ((CoreClassRec *) XtClass(w))->core_class.class_name); - } -} /* MakeNameAndClass */ - -/* -------------------------------------------------------------------- - * Eine einzelne Resource aus der Datenbank herausholen. Diese Resource - * kommt im Allgemeinen immer als String zurueck und muss daher erst - * noch in das gewuenschte Zielformat konvertiert werden. - */ -static Boolean FetchResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - XrmValue *RscValue, - String *RepresentationType) -{ - Boolean ok; - char *EndOfName = FullName + strlen(FullName); - char *EndOfClass = FullClass + strlen(FullClass); - - strcat(FullName, "."); strcat(FullName, RscName); - strcat(FullClass, "."); strcat(FullClass, RscClass); - ok = XrmGetResource( - XtDatabase(XtDisplayOfObject(w)), - FullName, FullClass, RepresentationType, RscValue); - /* Wieder den alten Namens- und Klassenrumpf herstellen */ - *EndOfName = 0; *EndOfClass = 0; - return ok; -} /* FetchResource */ - -/* -------------------------------------------------------------------- - * Nun folgen diejenigen Routinen, mit denen die Konvertierung in das - * gewuenschte Zielformat einer Resource moeglich ist. - * Verfuegbar: - * String --> Int - * String --> Short - * String XmPIXMAP / XmSTRING --> unsigned char - * String --> Dimension - * String --> XmString - * String --> XmStringTable - * String --> XmFontList - * String --> Pixmap (genauer: Bitmap) - * String --> String - * String --> KeySym - */ -static Boolean FetchIntResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - int *pInt) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - RscDest.size = sizeof(int); - RscDest.addr = (caddr_t) pInt; - if ( XtConvertAndStore(w, RepresentationType, &RscValue, - XtRInt, &RscDest) ) - return True; - } - return False; -} /* FetchIntResource */ - -static Boolean FetchShortResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - short *pShort) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - RscDest.size = sizeof(short); - RscDest.addr = (caddr_t) pShort; - if ( XtConvertAndStore(w, RepresentationType, &RscValue, - XtRShort, &RscDest) ) - return True; - } - return False; -} /* FetchShortResource */ - -static Boolean FetchLabelTypeResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - unsigned char *pUChar) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - int AInt; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - if ( strcasecmp((char *) RscValue.addr, "XmPIXMAP") == 0 ) - *pUChar = XmPIXMAP; - else - *pUChar = XmSTRING; - return True; - } - return False; -} /* FetchLabelTypeResource */ - -static Boolean FetchDimensionResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - Dimension *pDimension) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - RscDest.size = sizeof(Dimension); - RscDest.addr = (caddr_t) pDimension; - if ( XtConvertAndStore(w, RepresentationType, &RscValue, - XtRDimension, &RscDest) ) - return True; - } - return False; -} /* FetchDimensionResource */ - -static Boolean FetchStringResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - String *pString) -{ - XrmValue RscValue; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - *pString = (char *) RscValue.addr; - return True; - } - return False; -} /* FetchStringResource */ - -static Boolean FetchKeySymResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - KeySym *pKeySym) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - RscDest.size = sizeof(KeySym); - RscDest.addr = (caddr_t) pKeySym; - if ( XtConvertAndStore(w, RepresentationType, &RscValue, - XmRKeySym, &RscDest) ) - return True; - } - return False; -} /* FetchKeySymResource */ - -static Boolean FetchXmStringResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - XmString *pString) -{ - XrmValue RscValue; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - *pString = XmCvtCTToXmString((char *) RscValue.addr); - return True; - } - return False; -} /* FetchXmStringResource */ - -static Boolean FetchXmStringTableResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - XmStringTable *pStringTable, - int *pTableSize) -{ - XrmValue RscValue; - String RepresentationType; - String TmpList, p, pStart; - int Entries, Entry; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - /* - * Zuerst eine Kopie erzeugen und dann daraus die Liste - * zusammenbasteln. - */ - TmpList = XtNewString((String)RscValue.addr); - if ( TmpList == NULL ) return False; - if ( *TmpList == 0 ) { XtFree(TmpList); return False; } - /* Ermittele, wieviele Eintrage in der Liste sind und - * erstelle dann daraus die Liste. - */ - Entries = 1; p = TmpList; - while ( *p ) - if ( *p++ == ',' ) ++Entries; - *pStringTable = (XmStringTable) - XtMalloc(Entries * sizeof(XmString)); - - p = TmpList; - for ( Entry = 0; Entry < Entries; ++Entry ) { - pStart = p; - while ( (*p != 0) && (*p != ',') ) ++p; - *p++ = 0; - (*pStringTable)[Entry] = (XmString) - XmStringCreateSimple(pStart); - } - /* Hier geht ausnahmsweise einmal Rueckgabe vor - * Entschaedigung... hey, das war doch nur ein - * (wenn auch ziemlich miserabler) Scherz - */ - XtFree(TmpList); - *pTableSize = Entries; - return True; - } - return False; -} /* FetchXmStringTableResource */ - -static Boolean FetchXmFontListResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - XmFontList *pFontList) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - RscDest.size = sizeof(XmFontList); - RscDest.addr = (caddr_t) pFontList; - if ( XtConvertAndStore(w, RepresentationType, &RscValue, - XmRFontList, &RscDest) ) - return True; - } - return False; -} /* FetchXmFontListResource */ - -static Boolean FetchPixmapResource(Widget w, - char *FullName, char *FullClass, - char *RscName, char *RscClass, - Pixmap *pPixmap) -{ - XrmValue RscValue, RscDest; - String RepresentationType; - - if ( FetchResource(w, FullName, FullClass, - RscName, RscClass, - &RscValue, &RepresentationType) ) { - RscDest.size = sizeof(Pixmap); - RscDest.addr = (caddr_t) pPixmap; - if ( XtConvertAndStore(w, RepresentationType, &RscValue, - XtRBitmap, &RscDest) ) - return True; - } - return False; -} /* FetchPixmapResource */ - -/* -------------------------------------------------------------------- - * Waehrend der Initialisierung alle gespiegelten Resourcen, fuer die - * Eintraege in der Resourcen-Datenbank existieren an die passenden - * Kinder-Widgets weiterleiten. Der Trick an der Sache: wir setzen - * die betroffenen Resourcen vie XtSetValues mit uns selbst als Ziel. - * Dadurch bekommt SetValues die Arbeit aufgehalst, die Resourcen den - * richtigen Kindern zuzuordnen... - */ - -#define RInt 0 -#define RShort 1 -#define RLType 2 -#define RDimension 3 -#define RXmString 4 -#define RPixmap 5 -#define RXmFontList 6 -#define RKeySym 7 -#define RString 8 -#define RXmStringTable 9 -#define RXmItemCount 10 - - -typedef struct -{ - String Name, Class; - - int Converter; - -} RESOURCEMIRROR; - -static RESOURCEMIRROR ResourceMirror[] = { - { XmNblinkRate, XmCBlinkRate, RInt, }, - { XmNcolumns, XmCColumns, RShort, }, - { XmNmaxLength, XmCMaxLength, RInt, }, - { XmNmarginHeight, XmCMarginHeight, RDimension }, - { XmNmarginWidth, XmCMarginWidth, RDimension }, - { XmNselectThreshold, XmCSelectThreshold, RInt }, - - { XmNlistMarginHeight, XmCListMarginHeight, RDimension }, - { XmNlistMarginWidth, XmCListMarginWidth, RDimension }, - { XmNlistSpacing, XmCListSpacing, RDimension }, - { XmNitems, XmCItems, RXmStringTable }, - { XmNitemCount, XmCItemCount, RXmItemCount }, - - { XmNmnemonic, XmCMnemonic, RKeySym }, - { XmNmnemonicCharSet, XmCMnemonicCharSet, RString }, - { XmNlabelString, XmCLabelString, RXmString }, - { XmNlabelMarginBottom, XmCLabelMarginBottom, RDimension }, - { XmNlabelMarginHeight, XmCLabelMarginHeight, RDimension }, - { XmNlabelMarginLeft, XmCLabelMarginLeft, RDimension }, - { XmNlabelMarginRight, XmCLabelMarginRight, RDimension }, - { XmNlabelMarginTop, XmCLabelMarginTop, RDimension }, - { XmNlabelMarginWidth, XmCLabelMarginWidth, RDimension }, - { XmNlabelPixmap, XmCLabelPixmap, RPixmap }, - { XmNlabelInsensitivePixmap, XmCLabelInsensitivePixmap, RPixmap }, - { XmNlabelType, XmCLabelType, RLType }, - { XmNlabelFontList, XmCLabelFontList, RXmFontList }, -}; - -static void InitMirrorResources(XmComboBoxWidget w) -{ - char FullName[1024], FullClass[1024]; - int AInt, TableSize; - short AShort; - unsigned char AUChar; - Dimension ADimension; - XmString AXmString; - XmStringTable AStringTable; - Pixmap APixmap; - XmFontList AFontList; - XrmValue RscValue; - String AString; - KeySym AKeySym; - int i, size = XtNumber(ResourceMirror); - - FullName[0] = 0; FullClass[0] = 0; - MakeNameAndClass((Widget) w, FullName, FullClass); - - for ( i=0; i < size; i++ ) { - switch ( ResourceMirror[i].Converter ) { - case RInt: - if ( FetchIntResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AInt) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AInt, NULL); - break; - case RXmItemCount: - if ( FetchIntResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AInt) && ( AInt != 0) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AInt, NULL); - break; - case RShort: - if ( FetchShortResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AShort) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AShort, NULL); - break; - case RLType: - if ( FetchLabelTypeResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AUChar) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AUChar, NULL); - break; - case RDimension: - if ( FetchDimensionResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &ADimension) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - ADimension, NULL); - break; - case RXmString: - if ( FetchXmStringResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AXmString) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AXmString, NULL); - break; - case RXmStringTable: - if ( FetchXmStringTableResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AStringTable, &TableSize) ) { - XtVaSetValues((Widget) w, - XmNitems, (XtPointer) AStringTable, - XmNitemCount, TableSize, NULL); - } - break; - case RKeySym: - if ( FetchKeySymResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AKeySym) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AKeySym, NULL); - break; - case RString: - if ( FetchStringResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AString) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AString, NULL); - break; - case RPixmap: - if ( FetchPixmapResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &APixmap) ) { - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - APixmap, NULL); - if ( strcmp(ResourceMirror[i].Name, XmNlabelPixmap) == 0 ) - w->combobox.ConvertBitmapToPixmap = True; - else - w->combobox.ConvertBitmapToPixmapInsensitive = True; - } - break; - case RXmFontList: - if ( FetchXmFontListResource((Widget) w, - FullName, FullClass, - ResourceMirror[i].Name, ResourceMirror[i].Class, - &AFontList) ) - XtVaSetValues((Widget) w, ResourceMirror[i].Name, - AFontList, NULL); - break; - } - } -} /* InitMirrorResources */ - -/* -------------------------------------------------------------------- - * Wandelt ein 1-Bit tiefes Bitmap in ein n-Bit tiefes Pixmap um, dass - * die gleiche Tiefe besitzt, wie der Bildschirm, auf dem das Pixmap - * spaeter erscheinen soll. - */ -static Pixmap BitmapToPixmap(XmComboBoxWidget w, - String Resource, GC ColorGC) -{ - Pixmap LabelPixmap, LabelBitmap; - Display *display = XtDisplay(w); - Window root; - int PixX, PixY; - unsigned int PixW, PixH, PixBW, PixDepth; - - XtVaGetValues(w->combobox.LabelCtrl, Resource, &LabelBitmap, NULL); - XGetGeometry(display, LabelBitmap, &root, - &PixX, &PixY, &PixW, &PixH, &PixBW, &PixDepth); - LabelPixmap = XCreatePixmap( - display, RootWindowOfScreen(XtScreen(w)), - PixW, PixH, - (w->combobox.LabelCtrl)->core.depth); - XCopyPlane(display, LabelBitmap, LabelPixmap, - ColorGC, 0, 0, PixW, PixH, 0, 0, 1); - XtVaSetValues(w->combobox.LabelCtrl, Resource, LabelPixmap, NULL); - XFreePixmap(display, LabelBitmap); - return LabelPixmap; -} /* BitmapToPixmap */ - -/* -------------------------------------------------------------------- - * Alles initialisieren, sobald das Widget eingerichtet wird. Das sagt - * sich hier so einfach, ist es aber *definitiv* nicht!!!! - */ -static void Initialize(Widget request, XmComboBoxWidget newW, - ArgList wargs, Cardinal *ArgCount) -{ - Dimension width, height, dummy; - Widget w; - Arg args[10]; - int n = 0; - XmString xmstr; - Pixel BackgroundColor; - -/* - * Da zu allem Ueberfluss die einzelnen Instanzen einer XmComboBox - * auf verschiedenen Displays auftauchen koennen, wird hier: - * 1. pro Widget ein eigener Cursor erzeugt (benoetigt fuer die Liste) - * 2. pro Widget (hier = pro Applikation) die benoetigte Action-Routine - * registiert. Doppelte Registrierung macht dem Toolkit nichts aus, da es - * dann eine evtl. aeltere Definition loescht. - */ - XtAppAddActions(XtWidgetToApplicationContext((Widget) newW), - actions, XtNumber(actions)); - -/* Allgemeine Initialisierungen... */ - newW->combobox.ConvertBitmapToPixmap = False; - newW->combobox.ConvertBitmapToPixmapInsensitive = False; - - newW->combobox.LastSelection = 0; - - newW->combobox.InInit = True; - -/* - * Das folgende Problem mit der Kontrolle, ob sich das Widget absolut auf - * dem Bildschirm verschoben hat, trifft uns nur, wenn die Liste nicht - * dauernd auf dem Bildschirm erscheint: - * Lass' dich benachrichtigen, sobald dieses Widget in irgendeiner - * Form bewegt wird -- und sei es nur, dass das gesamte Applikations- - * fenster umhergeschoben wurde. Um die Benachrichtigung ueberhaupt - * zu erreichen, ist es erforderlich, sich benachrichtigen zu lassen, - * sobald die naechste Shell (oder ein Nachkomme) im Widget-Instanzen- - * Baum verschoben wurde. - */ - if ( !newW->combobox.StaticList ) { - w = (Widget) newW; - while ( !XtIsSubclass(w, shellWidgetClass) ) - w = XtParent(w); - newW->combobox.MyNextShell = w; - XtAddEventHandler(w, - StructureNotifyMask | FocusChangeMask, - False, (XtEventHandler) ShellCallback, - (XtPointer) newW); - } - -/* Richte nun alle zu diesem Widget gehoerenden Kinder ein, als da - * waeren: - * 1 x editierbares Eingabefeld - * 1 x ein Pfeil nach unten - * 1 x ein Schriftfeld - */ - newW->combobox.EditCtrl = XtVaCreateManagedWidget( - "edit", xmTextFieldWidgetClass, (Widget) newW, - XmNverifyBell, False, - NULL); - XtAddCallback(newW->combobox.EditCtrl, - XmNlosingFocusCallback, - (XtCallbackProc) EditFocusCallback, NULL); - XtAddCallback(newW->combobox.EditCtrl, - XmNmodifyVerifyCallback, - (XtCallbackProc) EditVerifyCallback, NULL); - XtAddCallback(newW->combobox.EditCtrl, - XmNvalueChangedCallback, - (XtCallbackProc) EditChangedCallback, NULL); - XtAddCallback(newW->combobox.EditCtrl, - XmNhelpCallback, - (XtCallbackProc) HelpCallback, - (XtPointer) newW); - XtAddCallback(newW->combobox.EditCtrl, - XmNactivateCallback, - (XtCallbackProc) ActivateCallback, - (XtPointer) newW); - if ( newW->combobox.Editable ) - XtAddCallback(newW->combobox.EditCtrl, - XmNmotionVerifyCallback, - (XtCallbackProc) MotionVerifyCallback, - (XtPointer) newW); -/* Neue Translations fuer das Eingabefeld aufnehmen */ - XtOverrideTranslations(newW->combobox.EditCtrl, - NewEditTranslations); - if ( !newW->combobox.Editable ) { - XtOverrideTranslations(newW->combobox.EditCtrl, - NewEditTranslationsNE); - XtVaSetValues(newW->combobox.EditCtrl, - XmNcursorPositionVisible, False, NULL); - } -#ifdef NODRAGNDROP - XtOverrideTranslations(newW->combobox.EditCtrl, - NewListTranslations); /* Btn2Dwn aus! */ -#endif - -/* --- */ - newW->combobox.ArrowCtrl = XtVaCreateManagedWidget( - "arrow", xmArrowButtonWidgetClass, (Widget) newW, - XmNarrowDirection, XmARROW_DOWN, - XmNtraversalOn, False, - XmNnavigationType, XmNONE, - XmNborderWidth, 0, - XmNhighlightThickness, 0, - NULL); - XmRemoveTabGroup(newW->combobox.ArrowCtrl); - if ( newW->combobox.StaticList ) { - XtVaSetValues(newW->combobox.ArrowCtrl, - XmNmappedWhenManaged, False, NULL); - } else { - XtAddEventHandler(newW->combobox.ArrowCtrl, - EnterWindowMask | LeaveWindowMask, - False, (XtEventHandler) ArrowCrossingCallback, - (XtPointer) newW); - XtAddCallback(newW->combobox.ArrowCtrl, - XmNactivateCallback, - (XtCallbackProc) ArrowCallback, NULL); - XtAddCallback(newW->combobox.ArrowCtrl, - XmNarmCallback, - (XtCallbackProc) ArrowCallback, NULL); - XtAddCallback(newW->combobox.ArrowCtrl, - XmNhelpCallback, - (XtCallbackProc) HelpCallback, - (XtPointer) newW); - } - -/* --- */ - newW->combobox.LabelCtrl = XtVaCreateWidget( - "label", xmLabelWidgetClass, (Widget) newW, - XmNstringDirection, newW->manager.string_direction, - NULL); - if ( newW->combobox.ShowLabel ) { - XtManageChild((Widget) newW->combobox.LabelCtrl); - XtAddCallback(newW->combobox.LabelCtrl, - XmNhelpCallback, - (XtCallbackProc) HelpCallback, - (XtPointer) newW); - } - -/* - * Zuerst noch die Shell erzeugen, die so einfach mir nichts dir nichts - * frei auf dem Bildschirm herumschweben kann und damit das Ausklappen - * der Liste erst ermoeglicht -- und uns allerhand Scherereien bereitet! - * War das ein bloeder Fehler in Motif 1.2! Diese Version vertraegt ab- - * solut keine ShellWidgetClass noch overrideShellWidgetClass!!!! Naja, - * mit einer vendorShellWidgetClass laesst sich aber exakt der gleiche - * Effekt erreichen. NEU: vor allem funktioniert dann endlich auch - * Drag'n'Drop!!! - * Noch neuer: Wenn die Liste dauerhaft angezeigt werden muss, entfaellt - * diese Shell zwangslaeufig. Dann ist das Listenfeld ein direktes Kind - * der ComboBox. - */ - if ( !newW->combobox.StaticList ) { - newW->combobox.PopupShell = XtVaCreateWidget( - "combobox_shell", vendorShellWidgetClass, (Widget) newW, - XmNoverrideRedirect, True, - XmNsaveUnder, False, - XmNallowShellResize, True, - NULL); - XtAddEventHandler(newW->combobox.PopupShell, - EnterWindowMask | LeaveWindowMask, - False, (XtEventHandler) OverrideShellCallback, - (XtPointer) newW); - } else { - /* - * Sieht ja pervers nach einer Rekursion aus...daher: OBACHT! - */ - newW->combobox.PopupShell = (Widget) newW; - } - -/* - * Nun kommt die Drop-Down-Liste an die Reihe. Die Liste muss dabei - * mit einer Convenience-Funktion erstellt werden, damit ein Rollbalken - * 'dran ist und das Ganze wird dann in eine Override-Shell gepackt. - * Nicht zu vergessen ist der XtManageChild-Aufruf, damit die Liste - * sofort nach dem Aufklappen der Shell sichtbar wird. - */ - XtSetArg(args[n], XmNselectionPolicy, newW->combobox.SelectionPolicy); n++; - - if ( !newW->combobox.StaticList ) { - /* - * Es gibt halt so eine ganze Reihe von Einstellungen, die koennen nicht - * veraendert werden, wenn das Listenfeld nur bei Bedarf ausgeklappt wird. - */ - XtSetArg(args[n], XmNhighlightThickness, 0); n++; - } - XtSetArg(args[n], XmNlistSizePolicy, - newW->combobox.ListSizePolicy); n++; - XtSetArg(args[n], XmNscrollBarDisplayPolicy, - newW->combobox.ScrollBarDisplayPolicy); n++; - - XtSetArg(args[n], XmNautomaticSelection, - newW->combobox.AutomaticSelection); n++; - XtSetArg(args[n], XmNvisibleItemCount, - newW->combobox.VisibleItemCount); n++; - newW->combobox.ListCtrl = XmCreateScrolledList( - newW->combobox.PopupShell, "list", - args, n); - -/* - * Fuer den Fall, dass die Liste in einer eigenen Shell steckt und daher frei - * auf dem Bildschirm herumschweben kann, sollten wir sicherheitshalber die - * Tastaturbedienung (Fokus) abschalten, um Probleme zu vermeiden (jedenfalls - * hoffentlich...!) - */ - if ( !newW->combobox.StaticList ) { - XtVaSetValues(newW->combobox.ListCtrl, - XmNtraversalOn, False, NULL); - XtVaSetValues(XtParent(newW->combobox.ListCtrl), - XmNtraversalOn, False, NULL); - } else { - if ( !newW->combobox.Editable ) { - XtVaSetValues(XtParent(newW->combobox.ListCtrl), - XmNtraversalOn, False, NULL); - XmRemoveTabGroup(newW->combobox.ListCtrl); - } - } - - XtManageChild(newW->combobox.ListCtrl); - XtAddCallback(newW->combobox.ListCtrl, - XmNsingleSelectionCallback, - (XtCallbackProc) ListSelectionCallback, - (XtPointer) newW); - XtAddCallback(newW->combobox.ListCtrl, - XmNbrowseSelectionCallback, - (XtCallbackProc) ListSelectionCallback, - (XtPointer) newW); - XtAddCallback(newW->combobox.ListCtrl, - XmNdefaultActionCallback, - (XtCallbackProc) ListDefaultActionCallback, - (XtPointer) newW); - XtAddCallback(newW->combobox.ListCtrl, - XmNhelpCallback, - (XtCallbackProc) HelpCallback, - (XtPointer) newW); - - XtAddEventHandler(newW->combobox.ListCtrl, - ButtonReleaseMask, - False, (XtEventHandler) Button1UpInList, - (XtPointer) newW); - -#ifdef NODRAGNDROP - XtOverrideTranslations(newW->combobox.ListCtrl, - NewListTranslations); -#endif - if ( newW->combobox.StaticList && newW->combobox.Editable ) - XtOverrideTranslations(newW->combobox.ListCtrl, - NewListTranslationsE); - -/* Jetzt wird es dann erst richtig spannend... Zuerst alle evtl. - * in der Resource-Datenbank abgelegten Resourcen an die Kinder - * weitergeben. Danach die uebergebenen Parameter ebenfalls an - * die Kinder weiterreichen und schliesslich das Layout ermitteln. - */ - InitMirrorResources(newW); - UpdateColors(newW, -1); - SetValues(newW, newW, newW, wargs, ArgCount); - - if ( newW->combobox.ConvertBitmapToPixmap ) - newW->combobox.LabelPixmap = - BitmapToPixmap(newW, XmNlabelPixmap, - ((XmLabelRec *) newW->combobox.LabelCtrl)-> - label.normal_GC); - if ( newW->combobox.ConvertBitmapToPixmapInsensitive ) - newW->combobox.LabelInsensitivePixmap = - BitmapToPixmap(newW, XmNlabelInsensitivePixmap, - ((XmLabelRec *) newW->combobox.LabelCtrl)-> - label.insensitive_GC); - - DefaultGeometry(newW, &width, &height, &dummy, &dummy); - if ( newW->core.width == 0 ) - newW->core.width = width; - if ( newW->core.height == 0 ) - newW->core.height = height; - -/* - * Falls wir keine Fontliste besitzen, dann nehmen wir die von - * dem Eingabefeld... - */ - if ( newW->combobox.Font == NULL ) { - XtVaGetValues(newW->combobox.EditCtrl, - XmNfontList, &newW->combobox.Font, NULL); - XtVaSetValues(newW->combobox.ListCtrl, - XmNfontList, newW->combobox.Font, NULL); - } else { - XtVaSetValues(newW->combobox.ListCtrl, - XmNfontList, newW->combobox.Font, NULL); - XtVaSetValues(newW->combobox.EditCtrl, - XmNfontList, newW->combobox.Font, NULL); - } - -/* - * Initialisiere alle Statusflaggen, die mit diesem unseligen Focus- - * problem zu tun haben... - */ - newW->combobox.ListVisible = False; - newW->combobox.IgnoreFocusOut = False; - newW->combobox.PendingFocusOut = False; - newW->combobox.PendingOverrideInOut = False; - - newW->combobox.PassVerification = False; - -/* - * Jooa... bei der OSF pennen die wohl komplett?! Zusammen mit Form- - * Widgets gibt das wohl immer Aerger...daher hier ein DoLayout() - * aufrufen, damit Eingabefeld und Pfeil sowie das Listenfeld an der - * richtigen Stelle sitzen! - */ - DoLayout(newW); -/* - * Endlich fertig mit der Initialisierung. Das hier ist aber auch - * wirklich viel Arbeit fuer so ein Widget! - */ - newW->combobox.InInit = False; -} /* Initialize */ - -/* -------------------------------------------------------------------- - * Diese Funktionen bitte nur im aeussersten Notfall benutzen, da sie - * die Abstraktion dieser neuen Klasse umgehen und Informationen ueber - * den internen Aufbau voraussetzen. - */ -Widget XmComboBoxGetEditWidget(Widget w) -{ - return ((XmComboBoxWidget) w)->combobox.EditCtrl; -} /* XmComboBoxGetEditWidget */ - -Widget XmComboBoxGetListWidget(Widget w) -{ - return ((XmComboBoxWidget) w)->combobox.ListCtrl; -} /* XmComboBoxGetListWidget */ - -Widget XmComboBoxGetLabelWidget(Widget w) -{ - return ((XmComboBoxWidget) w)->combobox.LabelCtrl; -} /* XmComboBoxGetLabelWidget */ - - -/* -------------------------------------------------------------------- - * Sobald sich im Listenfeld Eintraege veraenderten, sei es, dass sie - * geloescht wurden, sei es, dass sie veraendert wurden, so muss hier - * gegebenenfalls auch der Text im Eingabefeld angepasst werden. - * Letzteres betrifft aber nur Combo-Boxen mit nicht editierbarem - * Eingabefeld. In jedem Fall wird aber bei jeder Combo-Box-Type in - * dem Fall, dass ein Eintrag geloescht wird, der darauffolgende - * Eintrag markiert. Eigentlich ist dieses nur eine nette Geste - * gegenueber dem Benutzer... - * - * Parameter: - * w Combo-Box-Widget - * Index Index auf denjenigen Eintrag der sich geaendert - * hat, oder der geloescht wurde. - * Deleted Zeigt an, ob der Eintrag geloescht wurde (True) - * oder sich nur veraenderte (False) - */ -static UpdateComboBox(XmComboBoxWidget w, int Index, Boolean Deleted) -{ - int OldIndex, ItemCount; - - OldIndex = XmComboBoxGetSelectedPos((Widget) w); - if ( OldIndex == Index ) { -/* Es betrifft den Eintrag, der auch momentan ausgewaehlt ist. - * Sollte er geloescht werden, so nimm' (soweit vorhanden) den - * naechsten Eintrag, wurde er ausgetauscht, so lass ihn ausge- - * waehlt. - */ - if ( Deleted ) { - XtVaGetValues(w->combobox.ListCtrl, - XmNitemCount, &ItemCount, NULL); - if ( ItemCount != 0 ) { - if ( Index >= ItemCount ) Index = ItemCount; - /* Markieren des Eintrags, ohne jedoch jetzt schon - * den Eintrag in die Eingabezeile zu kopieren. - */ - SetSelectionPos(w, Index, False); - } - } - } -/* Das Problem betrifft uns nur bei nicht editierbaren Combo-Boxen - * im vollen Umfang. Denn dann muss auch der Text im Eingabefeld - * veraendert werden. - */ - if ( !w->combobox.Editable ) { - TransferToEditCtrl(w, Index, False); - } - - return 1; -} /* UpdateComboBox */ - - -/* -------------------------------------------------------------------- - * Die Eintragsposition finden, an der der Eintrag sortiert stehen - * muesste. Naja, es wurde ja 'mal langsam Zeit, diese Routine etwas - * aufzupolieren, damit sie schneller wird. - */ -static int FindSortedItemPos(XmComboBoxWidget w, XmString item) -{ - Widget ListBox = w->combobox.ListCtrl; - XmStringTable Items; - int ItemCount, index, Left, Right, Result; - char *pItemText, *pCompareText; - Boolean ExternSort; - XmComboBoxSortingCallbackStruct data; - - XtVaGetValues(ListBox, XmNitems, &Items, - XmNitemCount, &ItemCount, NULL); - if ( ItemCount == 0 ) return 1; - - /* - * Moechte das Programm die Kontrolle ueber den Sortiervorgang - * uebernehmen? Dann bereite alles vor... - */ - ExternSort = XtHasCallbacks((Widget) w, XmNsortingCallback) == - XtCallbackHasSome; - if ( ExternSort ) { - data.reason = XmCR_SORTING; - data.event = NULL; - data.operation = XmOP_INIT; - data.item = item; - XtCallCallbacks((Widget) w, XmNsortingCallback, (XtPointer) &data); - } else - XmStringGetLtoR(item, XmSTRING_DEFAULT_CHARSET, &pCompareText); - - Left = 0; Right = ItemCount - 1; - do { - index = (Left + Right) / 2; - if ( ExternSort ) { - data.operation = XmOP_COMPARE; - data.item = Items[index]; - data.result = 1; - XtCallCallbacks((Widget) w, XmNsortingCallback, (XtPointer) &data); - Result = data.result; - } else { - XmStringGetLtoR(Items[index], XmSTRING_DEFAULT_CHARSET, &pItemText); - Result = strcmp(pCompareText, pItemText); - XtFree(pItemText); - } - if ( Result < 0 ) Right = index - 1; - else if ( Result > 0 ) Left = index + 1; - } while ( (Result != 0) && (Left <= Right) ); - - /* - * Nach Gebrauch wieder alles aufraeumen (bei einer externen Sortierung - * muss das das Programm uebernehmen!) - */ - if ( ExternSort ) { - data.operation = XmOP_DONE; - XtCallCallbacks((Widget) w, XmNsortingCallback, (XtPointer) &data); - } else - XtFree(pCompareText); - - if ( Result < 0 ) - return index + 1; /* Beachte, dass Indizes mit 1 beginnen! */ - else - return index + 2; /* Beachte, dass Indizes mit 1 beginnen! */ -} /* FindSortedItemPos */ - -/* -------------------------------------------------------------------- - * Kontrolliere, ob es sich ueberhaupt um eine Combo-Box (bzw. einen - * hypothetischen Nachkommen) handelt -- ansonsten mecker kraeftig - * herum! - * Ergebnis: - * True, falls wir hier ein falsches Widget untergejubelt bekommen! - */ -static Boolean CheckComboBox(Widget w, char *pFuncName) -{ - char buff[256]; - char *pWName; - -#if (XmVersion >= 2000) - return False; /* temporary workaround */ -#else - if ( XmIsComboBox(w) ) return False; - pWName = XrmQuarkToString(w->core.xrm_name); - sprintf(buff, -"Warning: %s called on widget named %s beeing \ -not a descendant of class XmComboBox!", - pFuncName, pWName); - XtWarning(buff); - return True; -#endif -} /* CheckComboBox */ - -/* -------------------------------------------------------------------- - * Saemtliche Interface-Routinen zur Combo-Box - */ -/* Zunaechst alles fuer die Listbox */ -#define ListBox (((XmComboBoxWidget) w)->combobox.ListCtrl) -#define EditBox (((XmComboBoxWidget) w)->combobox.EditCtrl) -#define ComboBox ((XmComboBoxWidget) w) - -/* !!! - * So angepasst, dass bei doppelt auftretenden Eintraegen, der - * alte Eintrag weiterhin markiert bleibt. Diese Massnahme soll - * eigentlich nur verhindern, dass zufaellig zwei Eintraege - * markiert sind, falls nach der Anwahl eines Eintrages ein zweiter - * gleichlautender Eintrag hinzugefuegt wurde. - * Was hier die reine Lehre (oder war das die Leere?) anbetrifft: - * in einer Combo-Box sollten sich sowieso nie gleichlautende - * Eintraege befinden, da sie dort unsinnig sind und den Benutzer - * nur verwirren... - */ -void XmComboBoxAddItem(Widget w, XmString item, int pos) -{ - int OldIndex = XmComboBoxGetSelectedPos(w); - - if ( CheckComboBox(w, "XmComboBoxAddItem") ) return; - if ( ComboBox->combobox.Sorted ) - pos = FindSortedItemPos(ComboBox, item); - XmListAddItem(ListBox, item, pos); - if ( OldIndex != XmComboBoxGetSelectedPos(w) ) - /* Hier SetSelectionPos() statt XmComboBoxSelectPos(), - * da der Text nicht in das Eingabefeld uebertragen werden - * soll! - */ - SetSelectionPos(ComboBox, OldIndex, False); -} /* XmComboBoxAddItem */ -/* !!! - * Hier gilt das bereits oben gesagte (siehe XmComboBoxAddItem). - * Bei sortierten Listboxen wird die Sortierung beim Gebrauch dieser - * Funktion zerstoert! - */ -void XmComboBoxAddItems(Widget w, XmString *items, int item_count, int pos) -{ - int OldIndex = XmComboBoxGetSelectedPos(w); - - if ( CheckComboBox(w, "XmComboBoxAddItems") ) return; - XmListAddItems(ListBox, items, item_count, pos); - if ( OldIndex != XmComboBoxGetSelectedPos(w) ) - /* Siehe Anmerkung in XmComboBoxAddItem */ - SetSelectionPos(ComboBox, OldIndex, False); -} /* XmComboBoxAddItems */ - -void XmComboBoxAddItemUnselected(Widget w, XmString item, int pos) -{ XmListAddItemUnselected(ListBox, item, pos); } - -/* !!! - * Da bei den folgenden Routinen jeweils ein oder mehrere Eintraege - * geloescht oder veraendert werden, muss gegebenefalls das Eingabe- - * feld bei nicht editierbaren Combo-Boxen auf Vordermann gebracht - * werden. - */ -void XmComboBoxDeleteItem(Widget w, XmString item) -{ - int Index = XmListItemPos(ListBox, item); - - if ( CheckComboBox(w, "XmComboBoxDeleteItem") ) return; - if ( Index ) XmComboBoxDeletePos(w, Index); -} /* XmComboBoxDeleteItem */ - -void XmComboBoxDeleteItems(Widget w, XmString *items, int item_count) -{ - int i; - - if ( CheckComboBox(w, "XmComboBoxDeleteItems") ) return; - for ( i = 0; i < item_count; i++ ) - XmListDeleteItem(w, items[i]); -} /* XmComboBoxDeleteItems */ - -void XmComboBoxDeletePos(Widget w, int pos) -{ - int OldIndex = XmComboBoxGetSelectedPos(w); - - if ( CheckComboBox(w, "XmComboBoxDeletePos") ) return; - XmListDeletePos(ListBox, pos); - if ( pos == OldIndex ) UpdateComboBox(ComboBox, pos, True); -} /* XmComboBoxDeletePos */ - -void XmComboBoxDeleteItemsPos(Widget w, int item_count, int pos) -{ - int i; - - if ( CheckComboBox(w, "XmComboBoxDeleteItemsPos") ) return; - for ( i = 0; i < item_count; i++ ) - XmComboBoxDeletePos(w, pos++); -} /* XmComboBoxDeleteItemsPos */ - -void XmComboBoxDeleteAllItems(Widget w) -{ - if ( CheckComboBox(w, "XmComboBoxAllDeleteItems") ) return; - XmListDeleteAllItems(ListBox); - UpdateComboBox(ComboBox, 0, True); -} /* XmComboBoxDeleteAllItems */ - -/* !!! - * Werden Eintraege ausgetauscht, so heisst es fuer uns, auch hierbei - * auf der Hut zu sein. - */ -void XmComboBoxReplaceItems(Widget w, XmString *old_items, int item_count, XmString *new_items) -{ - if ( CheckComboBox(w, "XmComboBoxReplaceItems") ) return; - XmListReplaceItems(ListBox, old_items, item_count, new_items); - UpdateComboBox(ComboBox, XmComboBoxGetSelectedPos(w), False); -} /* XmComboBoxReplaceItems */ - -void XmComboBoxReplaceItemsPos(Widget w, XmString *new_items, int item_count, int position) -{ - int OldIndex = XmComboBoxGetSelectedPos(w); - - if ( CheckComboBox(w, "XmComboBoxReplaceItemsPos") ) return; - XmListReplaceItemsPos(ListBox, new_items, item_count, position); - if ( (OldIndex >= position) && (OldIndex < position + item_count) ) - UpdateComboBox(ComboBox, OldIndex, False); -} /* XmComboBoxReplaceItemsPos */ - -Boolean XmComboBoxItemExists(Widget w, XmString item) -{ - if ( CheckComboBox(w, "XmComboBoxItemExists") ) return False; - return XmListItemExists(ListBox, item); -} /* XmComboBoxItemExists */ - -int XmComboBoxItemPos(Widget w, XmString item) -{ - if ( CheckComboBox(w, "XmComboBoxItemPos") ) return 0; - return XmListItemPos(ListBox, item); -} /* XmComboBoxItemPos */ - -Boolean XmComboBoxGetMatchPos(Widget w, XmString item, int **pos_list, int *pos_count) -{ - if ( CheckComboBox(w, "XmComboBoxGetMatchPos") ) return False; - return XmListGetMatchPos(ListBox, item, pos_list, pos_count); -} /* XmComboBoxGetMatchPos */ - -/* !!! - * Sobald ein anderer Eintrag in der Listbox ausgewaehlt werden soll, - * muessen wir hier helfend eingreifen. - */ -void XmComboBoxSelectPos(Widget w, int pos, Boolean notify) -{ - int index; - - if ( CheckComboBox(w, "XmComboBoxSelectPos") ) return; - index = SetSelectionPos(ComboBox, pos, notify); - if ( index ) TransferToEditCtrl(ComboBox, index, False); -} /* XmComboBoxSelectPos */ - -/* !!! - * dto. analog zu XmComboBoxSelectPos, nur statt des Index wird der - * Eintragstext angegeben, um einen Eintrag in der Listbox zu - * markieren. - */ -void XmComboBoxSelectItem(Widget w, XmString item, Boolean notify) -{ - int index; - - if ( CheckComboBox(w, "XmComboBoxSelectItem") ) return; - XmListSelectItem(ListBox, item, notify); - index = SetSelectionPos(ComboBox, XmComboBoxGetSelectedPos(w), False); - if ( index ) TransferToEditCtrl(ComboBox, index, False); -} /* XmComboBoxSelectItem */ - -/* !!! - * Geaendert gegenueber dem ListBox-Pendant! Da in einer Combo-Box die - * Liste nur maximal einen ausgewaehlten Eintrag besitzt, macht die - * 'alte' Funktionalitaet von XmListGetSelectedPos ziemlich wenig Sinn. - * Die neue Routine liefert statt dessen direkt den Index des aus- - * gewaehlten Eintrages oder 0 zurueck. - */ -int XmComboBoxGetSelectedPos(Widget w) -{ - int *SelectionList, SelectionCount, SelectionIndex; - - if ( CheckComboBox(w, "XmComboBoxGetSelectedPos") ) return 0; - if ( XmListGetSelectedPos(ListBox, - &SelectionList, &SelectionCount) ) { - SelectionIndex = *SelectionList; - XtFree((char *)SelectionList); - } else SelectionIndex = 0; - return SelectionIndex; -} /* XmComboBoxGetSelectedPos */ - - - -void XmComboBoxClearSelection(Widget w, Time time) -{ - XmTextFieldClearSelection(EditBox, time); -} /* XmComboBoxClearSelection */ - -Boolean XmComboBoxCopy(Widget w, Time time) -{ - return XmTextFieldCopy(EditBox, time); -} /* XmComboBoxCopy */ - -Boolean XmComboBoxCut(Widget w, Time time) -{ - return XmTextFieldCut(EditBox, time); -} /* XmComboBoxCut */ - -XmTextPosition XmComboBoxGetInsertionPosition(Widget w) -{ - return XmTextFieldGetInsertionPosition(EditBox); -} /* XmComboBoxGetInsertionPosition */ - -XmTextPosition XmComboBoxGetLastPosition(Widget w) -{ - return XmTextFieldGetLastPosition(EditBox); -} /* XmComboBoxGetLastPosition */ - -int XmComboBoxGetMaxLength(Widget w) -{ - return XmTextFieldGetMaxLength(EditBox); -} /* XmComboBoxGetMaxLength */ - -char * XmComboBoxGetSelection(Widget w) -{ - return XmTextFieldGetSelection(EditBox); -} /* XmComboBoxGetSelection */ - -Boolean XmComboBoxGetSelectionPosition(Widget w, XmTextPosition *left, - XmTextPosition *right) -{ - return XmTextFieldGetSelectionPosition(EditBox, left, right); -} /* XmComboBoxGetSelectionPosition */ - -char * XmComboBoxGetString(Widget w) -{ - return XmTextFieldGetString(EditBox); -} /* XmComboBoxGetString */ - -void XmComboBoxInsert(Widget w, XmTextPosition position, char *value) -{ - XmTextFieldInsert(EditBox, position, value); -} /* XmComboBoxInsert */ - -Boolean XmComboBoxPaste(Widget w) -{ - return XmTextFieldPaste(EditBox); -} /* XmComboBoxPaste */ - -Boolean XmComboBoxRemove(Widget w) -{ - return XmTextFieldRemove(EditBox); -} /* XmComboBoxRemove */ - -void XmComboBoxReplace(Widget w, XmTextPosition from_pos, - XmTextPosition to_pos, char *value) -{ - XmTextFieldReplace(EditBox, from_pos, to_pos, value); -} /* XmComboBoxReplace */ - -void XmComboBoxSetAddMode(Widget w, Boolean state) -{ - XmTextFieldSetAddMode(EditBox, state); -} /* XmComboBoxSetAddMode */ - -void XmComboBoxSetHighlight(Widget w, XmTextPosition left, - XmTextPosition right, XmHighlightMode mode) -{ - XmTextFieldSetHighlight(EditBox, left, right, mode); -} /* XmComboBoxSetHighlight */ - -void XmComboBoxSetInsertionPosition(Widget w, XmTextPosition position) -{ - XmTextFieldSetInsertionPosition(EditBox, position); -} /* XmComboBoxSetInsertionPosition */ - -void XmComboBoxSetMaxLength(Widget w, int max_length) -{ - XmTextFieldSetMaxLength(EditBox, max_length); -} /* XmComboBoxSetMaxLength */ - -void XmComboBoxSetSelection(Widget w, XmTextPosition first, - XmTextPosition last, Time time) -{ - XmTextFieldSetSelection(EditBox, first, last, time); -} /* XmComboBoxSetSelection */ - -void XmComboBoxSetString(Widget w, char *value) -{ -/* Liebe OSF...ihr ^&*#%$*&)*(@$(*^(*&%# habt doch einen ziemlich gemeinen - * Fehler in XmTextFieldSetString() drin... wenn man einen leeren String - * (also "") angiebt, gibt's nur noch Aerger, wenn man spaeter wieder an - * den Inhalt des Eingabefeldes heranwill. - */ - if ( (value == NULL) || (*value == 0) ) - XtVaSetValues(w, XmNvalue, "", NULL); - else - XmTextFieldSetString(EditBox, value); -} /* XmComboBoxSetString */ - -void XmComboBoxShowPosition(Widget w, XmTextPosition position) -{ - XmTextFieldShowPosition(EditBox, position); -} /* XmComboBoxShowPosition */ - -/* - * Loescht einen evtl. noch ausgewaehlten Eintrag in einer Combo Box, - * wenn diese eine SelectionPolicy von XmSINGLE_SELECT hat. - */ -void XmComboBoxClearItemSelection(Widget w) -{ - int index; - - if ( CheckComboBox(w, "XmComboBoxClearItemSelection") ) return; - - /* - * Wenn bereits kein Eintrag markiert ist, dann loeschen wir nur noch - * eben das Eingabefeld. - */ - index = XmComboBoxGetSelectedPos(w); - if ( index == 0 ) { - XmComboBoxSetString(w, ""); - } else { - /* - * Ansonsten aktuellen Eintrag entsorgen (wie bei der Methode wipe-out) - */ - TransferToEditCtrl(ComboBox, 0, True); - CallSelectionCBL(ComboBox, NULL); - } -} /* XmComboBoxClearItemSelection */ - -/* Die Drop-Down-Liste ein oder ausklappen */ -void XmComboBoxShowList(Widget w) -{ - if ( CheckComboBox(w, "XmComboBoxShowList") ) return; - ShowHideDropDownList((XmComboBoxWidget) w, NULL, False); -} /* XmComboBoxShowList */ - -void XmComboBoxHideList(Widget w) -{ - if ( CheckComboBox(w, "XmComboBoxHideList") ) return; - ShowHideDropDownList((XmComboBoxWidget) w, NULL, True); -} /* XmComboBoxShowList */ - -/* - * Naja, ich komm' ja doch nicht um diese olle Funktion herum... - */ -Widget XmCreateComboBox(Widget parent, String name, ArgList arglist, - Cardinal argcount) -{ - return XtCreateWidget(name, xmComboBoxWidgetClass, parent, - arglist, argcount); -} /* XmCreateComboBox */ - -/* Ende von ComboBox.c */ diff --git a/src/motif/xmcombo/xmcombo.h b/src/motif/xmcombo/xmcombo.h deleted file mode 100644 index 3a7a10a447..0000000000 --- a/src/motif/xmcombo/xmcombo.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * ComboBox.h - Das schon lange schmerzlich vermisste Combo-Box- - * Widget -- nun endlich auf fuer Motif! - * - * Letzte Modifikation: 04.10.1995 Revisionsstand: 1.32a - * - * (c) 1993, 1994 Harald Albrecht - * Institut fuer Geometrie und Praktische Mathematik - * RWTH Aachen, Germany - * albrecht@igpm.rwth-aachen.de - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING for more details); - * if not, write to the Free Software Foundation, Inc., 675 Mass Ave, - * Cambridge, MA 02139, USA. - * - */ -#ifndef __ComboBoxWidget_h -#define __ComboBoxWidget_h - -#include - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif - -#define XmNselectionCallback "selectionCallback" -#define XmCSelectionCallback "SelectionCallback" -#define XmNunselectionCallback "unselectionCallback" -#define XmCUnselectionCallback "UnselectionCallback" -#define XmNdropDownCallback "dropDownCallback" -#define XmCDropDownCallback "DropDownCallback" - -#define XmNdropDownCursor "dropDownCursor" -#define XmCDropDownCursor "DropDownCursor" - -/* ICH GLAUB' ES JA EINFACH NICHT! DIESE @#$!%^ BEI DER OSF HABEN - * DOCH TATSAECHLICH VERGESSEN, DASS DIE EINTRAEGE IN DER LISTBOX - * VIELLEICHT AUCH SORTIERT SEIN SOLLEN -- MUSS MAN DENN ALLES - * SELBST MACHEN?! - */ -#define XmNsorted "sorted" -#define XmCSorted "Sorted" -#define XmNsortingCallback "sortingCallback" -#define XmCSortingCallback "SortingCallback" - -#define XmNstaticList "staticList" -#define XmCStaticList "StaticList" - -#define XmNsquareArrow "squareArrow" -#define XmCSquareArrow "SquareArrow" -#define XmNarrowSpacingOn "arrowSpacingOn" -#define XmCArrowSpacingOn "ArrowSpacingOn" - -/* - * Wie verhaeltsich die Liste, wenn der Focus verloren geht, sobald - * der Mauszeiger aus dem Dialog herausbewegt wird? - */ -#define XmNpersistentDropDown "persistentDropDown" -#define XmCPersistentDropDown "PersistentDropDown" -#define XmNtwmHandlingOn "twmHandlingOn" -#define XmCTwmHandlingOn "TwmHandlingOn" -/* - * alles fuer das Label... - */ -#define XmNshowLabel "showLabel" -#define XmCShowLabel "ShowLabel" -#define XmNdropDownOffset "dropDownOffset" -#define XmCDropDownOffset "DropDownOffset" - -#define XmNlabelMarginBottom "labelMarginBottom" -#define XmCLabelMarginBottom "LabelMarginBottom" -#define XmNlabelMarginHeight "labelMarginHeight" -#define XmCLabelMarginHeight "LabelMarginHeight" -#define XmNlabelMarginLeft "labelMarginLeft" -#define XmCLabelMarginLeft "LabelMarginLeft" -#define XmNlabelMarginRight "labelMarginRight" -#define XmCLabelMarginRight "LabelMarginRight" -#define XmNlabelMarginTop "labelMarginTop" -#define XmCLabelMarginTop "LabelMarginTop" -#define XmNlabelMarginWidth "labelMarginWidth" -#define XmCLabelMarginWidth "LabelMarginWidth" - -/* Callback reasons: (part. predefined) - * - * XmCR_SINGLE_SELECT user selected item in the list - */ - -typedef struct { - int reason; /* Grund */ - XEvent *event; /* Ausloesender Event */ - XmString value; /* Ausgewaehlter Eintrag */ - int index; /* Index dieses Eintrages */ -} XmComboBoxSelectionCallbackStruct,XmComboBoxDefaultActionCallbackStruct; - -typedef struct { - int reason; - XEvent *event; - Boolean doit; - Position currInsert, newInsert; - Position startPos, endPos; - XmTextBlock text; -} XmComboBoxTextVerifyCallbackStruct, *XmComboBoxTextVerifyPtr; - -/* Callback reasons: new - * - * XmCR_SHOW_LIST list is dropping down - * XmCR_HIDE_LIST list is getting hidden - * - * XmCR_UNSELECT unselecting item from list or osfDelete - */ -#define XmCR_SHOW_LIST 4200 /* ten times "42", that should */ -#define XmCR_HIDE_LIST 4201 /* explain everything of live... */ -#define XmCR_UNSELECT 4202 -typedef struct { - int reason; /* Grund */ - XEvent *event; /* Ausloesender Event */ -} XmComboBoxDropDownCallbackStruct, XmComboBoxUnselectionCallbackStruct; - -#define XmCR_SORTING 4203 -#define XmOP_INIT 1 -#define XmOP_DONE 2 -#define XmOP_COMPARE 3 -typedef struct { - int reason; - XEvent *event; /* IMMER NULL!! */ - int operation; - void *item_internal; - XmString item; - int result; -} XmComboBoxSortingCallbackStruct, *XmComboBoxSortingPtr; - -/* Alle Funktionen, um auf die Liste der Combo-Box zuzugreifen. - * Bitte immer diese Funktionen dazu benutzen und nicht direkt - * auf das entsprechende Widget in der Combo-Box zugreifen! - * Aus diesem Grunde sind auch nicht alle Funktionen einer Listbox - * verfuegbar, da sich einige Funktionen mit der Verwaltung der - * Combo-Box beissen wuerden. - */ -extern void XmComboBoxAddItem(Widget w, XmString item, int pos); -extern void XmComboBoxAddItems(Widget w, XmString *items, int item_count, int pos); -extern void XmComboBoxAddItemUnselected(Widget w, XmString item, int pos); -extern void XmComboBoxDeleteItem(Widget w, XmString item); -extern void XmComboBoxDeleteItems(Widget w, XmString *items, int item_count); -extern void XmComboBoxDeletePos(Widget w, int pos); -extern void XmComboBoxDeleteItemsPos(Widget w, int item_count, int pos); -extern void XmComboBoxDeleteAllItems(Widget w); -extern void XmComboBoxReplaceItems(Widget w, XmString *old_items, int item_count, XmString *new_items); -extern void XmComboBoxReplaceItemsPos(Widget w, XmString *new_items, int item_count, int position); -extern Boolean XmComboBoxItemExists(Widget w, XmString item); -extern int XmComboBoxItemPos(Widget w, XmString item); -extern Boolean XmComboBoxGetMatchPos(Widget w, XmString item, int **pos_list, int *pos_count); -extern void XmComboBoxSelectPos(Widget w, int pos, Boolean notify); -extern void XmComboBoxSelectItem(Widget w, XmString item, Boolean notify); -/* Etwas anders als bei der Listbox, da es sowieso nur einen ausge- - * waehlten Eintrag in der Listbox geben kann! - * Liefert Index des ausgewaehlten Eintrages oder 0. - */ -extern int XmComboBoxGetSelectedPos(Widget w); -extern void XmComboBoxClearItemSelection(Widget w); -/* - * Nun alle Funktionen, die auf das Eingabefeld zugreifen... - * Auch hier gilt wieder, es gibt 'was auf die Finger, wenn jemand - * versucht, direkt auf das Eingabefeld direkt zuzugreifen! - */ -extern void XmComboBoxClearSelection(Widget w, Time time); -extern Boolean XmComboBoxCopy(Widget w, Time time); -extern Boolean XmComboBoxCut(Widget w, Time time); -extern XmTextPosition XmComboBoxGetInsertionPosition(Widget w); -extern XmTextPosition XmComboBoxGetLastPosition(Widget w); -extern int XmComboBoxGetMaxLength(Widget w); -extern char * XmComboBoxGetSelection(Widget w); -extern Boolean XmComboBoxGetSelectionPosition(Widget w, XmTextPosition *left, - XmTextPosition *right); -extern char * XmComboBoxGetString(Widget w); -extern void XmComboBoxInsert(Widget w, XmTextPosition position, char *value); -extern Boolean XmComboBoxPaste(Widget w); -extern Boolean XmComboBoxRemove(Widget w); -extern void XmComboBoxReplace(Widget w, XmTextPosition from_pos, - XmTextPosition to_pos, char *value); -extern void XmComboBoxSetAddMode(Widget w, Boolean state); -extern void XmComboBoxSetHighlight(Widget w, XmTextPosition left, - XmTextPosition right, XmHighlightMode mode); -extern void XmComboBoxSetInsertionPosition(Widget w, XmTextPosition position); -extern void XmComboBoxSetMaxLength(Widget w, int max_length); -extern void XmComboBoxSetSelection(Widget w, XmTextPosition first, - XmTextPosition last, Time time); -extern void XmComboBoxSetString(Widget w, char *value); -extern void XmComboBoxShowPosition(Widget w, XmTextPosition position); - -extern WidgetClass xmComboBoxWidgetClass; /* Die Klasse hoechstselbst */ - -#ifndef XmIsComboBox -#define XmIsComboBox(w) XtIsSubclass(w, xmComboBoxWidgetClass) -#endif /* XmIsComboBox */ - -typedef struct _XmComboBoxClassRec *XmComboBoxWidgetClass; -typedef struct _XmComboBoxRec *XmComboBoxWidget; - -extern Widget XmCreateComboBox(Widget parent, String name, ArgList arglist, - Cardinal argcount); - -/* PLEASE do not use this functions if you really not need to do so !!! */ -extern Widget XmComboBoxGetEditWidget(Widget w); -extern Widget XmComboBoxGetListWidget(Widget w); -extern Widget XmComboBoxGetLabelWidget(Widget w); - -#if defined(__cplusplus) || defined(c_plusplus) -} -#endif - -#endif /* __ComboBoxWidget_h */ -/* Ende von ComboBox.h */ diff --git a/src/msw/Makefile.am b/src/msw/Makefile.am deleted file mode 100644 index 9a155b7aa0..0000000000 --- a/src/msw/Makefile.am +++ /dev/null @@ -1,203 +0,0 @@ -## Purpose: The automake makefile for wxWindows (src/msw subdirectory) -## Author: Phil Blecker, Vadim Zeitlin -## Version: $Id$ -## -## Process this file with automake to produce Makefile.in - -SUFFIXES = .cpp .c - -DEFS = $(TOOLKIT_DEF) $(WXDEBUG_DEFINE) -LIBS = $(GUILIBS) - -VPATH = .:${srcdir}:${srcdir}/../common:${srcdir}/../generic:${EXTRA_VPATH} - -EXTRA_DIST = "${srcdir}/../common ${srcdir}/../generic ${srcdir}" - -lib_LTLIBRARIES = @WX_LIBRARY_NAME@ -EXTRA_LTLIBRARIES = libwx_gtk.la libwx_motif.la libwx_msw.la - -# these are the common files which always make part of the library -libwx_msw_la_SOURCES = \ -\ - winestub.c \ - extended.c \ - parser.c \ -\ - cmndata.cpp \ - dynarray.cpp \ - filefn.cpp \ - hash.cpp \ - list.cpp \ - matrix.cpp \ - memory.cpp \ - module.cpp \ - object.cpp \ - string.cpp \ - timercmn.cpp \ - utilscmn.cpp \ - tokenzr.cpp \ - variant.cpp \ - wxchar.cpp \ -\ - config.cpp \ - date.cpp \ - datstrm.cpp \ - dcbase.cpp \ - docmdi.cpp \ - docview.cpp \ - dynlib.cpp \ - event.cpp \ - file.cpp \ - fileconf.cpp \ - framecmn.cpp \ - ftp.cpp \ - gdicmn.cpp \ - helpbase.cpp \ - http.cpp \ - image.cpp \ - imaggif.cpp \ - imagjpeg.cpp \ - imagpng.cpp \ - intl.cpp \ - ipcbase.cpp \ - layout.cpp \ - log.cpp \ - longlong.cpp \ - mimetype.cpp \ - mstream.cpp \ - objstrm.cpp \ - paper.cpp \ - prntbase.cpp \ - process.cpp \ - protocol.cpp \ - resource.cpp \ - sckaddr.cpp \ - sckfile.cpp \ - sckint.cpp \ - sckipc.cpp \ - sckstrm.cpp \ - serbase.cpp \ - socket.cpp \ - stream.cpp \ - tbarbase.cpp \ - tbarsmpl.cpp \ - textfile.cpp \ - time.cpp \ - url.cpp \ - validate.cpp \ - valtext.cpp \ - wfstream.cpp \ - wincmn.cpp \ - wxexpr.cpp \ - zstream.cpp \ -\ - choicdgg.cpp \ - gridg.cpp \ - laywin.cpp \ - panelg.cpp \ - progdlgg.cpp \ - prop.cpp \ - propform.cpp \ - proplist.cpp \ - sashwin.cpp \ - scrolwin.cpp \ - splitter.cpp \ - statusbr.cpp \ - tabg.cpp \ - textdlgg.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - caret.cpp \ - checkbox.cpp \ - choice.cpp \ - clipbrd.cpp \ - colordlg.cpp \ - colour.cpp \ - combobox.cpp \ - control.cpp \ - cursor.cpp \ - data.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dcprint.cpp \ - dialog.cpp \ - filedlg.cpp \ - font.cpp \ - fontdlg.cpp \ - frame.cpp \ - gauge95.cpp \ - gdiobj.cpp \ - icon.cpp \ - imaglist.cpp \ - listbox.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - menuitem.cpp \ - minifram.cpp \ - msgdlg.cpp \ - notebook.cpp \ - ownerdrw.cpp \ - palette.cpp \ - printdlg.cpp \ - printwin.cpp \ - pen.cpp \ - radiobox.cpp \ - radiobut.cpp \ - regconf.cpp \ - region.cpp \ - registry.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider95.cpp \ - spinbutt.cpp \ - statbmp.cpp \ - statbox.cpp \ - stattext.cpp \ - tbar95.cpp \ - textctrl.cpp \ - thread.cpp \ - timer.cpp \ - tooltip.cpp \ - utils.cpp \ - utilsexc.cpp \ - wave.cpp \ - window.cpp \ - nativdlg.cpp - -# these are the sources which we build by our own rules -# -# TODO: parser.y can be included into SOURCES, but for the sake of my life I -# don't know where to put lexer.l - if I put it in the sources too, -# automake tries to build lexer.lo... and fails, of course. (VZ) -BUILT_SOURCES = parser.c lexer.c -parser.c: $(srcdir)/../common/parser.y lexer.c - $(YACC) $(srcdir)/../common/parser.y - @sed -e "s;$(srcdir)/../common/y.tab.c;parser.y;g" < y.tab.c | \ - sed -e "s/BUFSIZ/5000/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > parser.c - @$(RM) y.tab.c - -lexer.c: $(srcdir)/../common/lexer.l - $(LEX) $(srcdir)/../common/lexer.l - @sed -e "s;$(srcdir)/../common/lex.yy.c;lexer.l;g" < lex.yy.c | \ - sed -e "s/yy/PROIO_yy/g" | \ - sed -e "s/input/PROIO_input/g" | \ - sed -e "s/unput/PROIO_unput/g" > lexer.c - @$(RM) lex.yy.c - -libwx_msw_la_LDFLAGS = -rpath @libdir@ \ - -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ - -release $(LT_RELEASE) -libwx_msw_la_LIBADD = $(LTLIBOBJS) -libwx_msw_la_DEPENDENCIES = $(libwx_msw_la_LIBADD) lexer.l parser.y diff --git a/src/msw/accel.cpp b/src/msw/accel.cpp deleted file mode 100644 index f82e7b7d10..0000000000 --- a/src/msw/accel.cpp +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: wxAcceleratorTable -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/window.h" -#endif - -#include "wx/msw/accel.h" - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject) -#endif - -class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData -{ - friend class WXDLLEXPORT wxAcceleratorTable; -public: - wxAcceleratorRefData(void); - ~wxAcceleratorRefData(void); - - inline HACCEL GetHACCEL() const { return m_hAccel; } -protected: - HACCEL m_hAccel; - bool m_ok; -}; - -#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData) - -wxAcceleratorRefData::wxAcceleratorRefData() -{ - m_ok = FALSE; - m_hAccel = 0; -} - -wxAcceleratorRefData::~wxAcceleratorRefData() -{ - if (m_hAccel) - { - // This function not available in WIN16 -#if !defined(__WIN16__) && !defined(__TWIN32__) - DestroyAcceleratorTable((HACCEL) m_hAccel); -#endif - } - m_hAccel = 0 ; -} - -wxAcceleratorTable::wxAcceleratorTable() -{ - m_refData = NULL; -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ -} - -// Load from .rc resource -wxAcceleratorTable::wxAcceleratorTable(const wxString& resource) -{ - m_refData = new wxAcceleratorRefData; - - HACCEL hAccel = -#if defined(__WIN32__) && !defined(__TWIN32__) -#ifdef UNICODE - ::LoadAcceleratorsW(wxGetInstance(), (const char *)resource); -#else - ::LoadAcceleratorsA(wxGetInstance(), (const char *)resource); -#endif -#else - ::LoadAccelerators(wxGetInstance(), (const char *)resource); -#endif - M_ACCELDATA->m_hAccel = hAccel; - M_ACCELDATA->m_ok = (hAccel != 0); -} - -extern int wxCharCodeWXToMSW(int id, bool *isVirtual); - -// Create from an array -#if !defined(__WIN16__) && !defined(__TWIN32__) && !defined(__WXWINE__) -wxAcceleratorTable::wxAcceleratorTable(int n, const wxAcceleratorEntry entries[]) -{ - // Not available in WIN16 - m_refData = new wxAcceleratorRefData; - - ACCEL* arr = new ACCEL[n]; - int i; - for (i = 0; i < n; i++) - { - BYTE fVirt = 0; - if (entries[i].m_flags & wxACCEL_ALT) - fVirt |= FALT; - if (entries[i].m_flags & wxACCEL_SHIFT) - fVirt |= FSHIFT; - if (entries[i].m_flags & wxACCEL_CTRL) - fVirt |= FCONTROL; - - bool isVirtual; - WORD key = wxCharCodeWXToMSW(entries[i].m_keyCode, & isVirtual); - fVirt |= FVIRTKEY; - - WORD cmd = entries[i].m_command; - - arr[i].fVirt = fVirt; - arr[i].key = key; - arr[i].cmd = cmd; - } - - M_ACCELDATA->m_hAccel = ::CreateAcceleratorTable(arr, n); - delete[] arr; - - M_ACCELDATA->m_ok = (M_ACCELDATA->m_hAccel != 0); -} -#else -wxAcceleratorTable::wxAcceleratorTable(int WXUNUSED(n), const wxAcceleratorEntry WXUNUSED(entries)[]) -{ -} -#endif - -bool wxAcceleratorTable::Ok(void) const -{ - return (M_ACCELDATA && (M_ACCELDATA->m_ok)); -} - -void wxAcceleratorTable::SetHACCEL(WXHACCEL hAccel) -{ - if (!M_ACCELDATA) - m_refData = new wxAcceleratorRefData; - - M_ACCELDATA->m_hAccel = (HACCEL) hAccel; -} - -WXHACCEL wxAcceleratorTable::GetHACCEL() const -{ - if (!M_ACCELDATA) - return 0; - return (WXHACCEL) M_ACCELDATA->m_hAccel; -} - diff --git a/src/msw/app.cpp b/src/msw/app.cpp deleted file mode 100644 index 0c339a6a79..0000000000 --- a/src/msw/app.cpp +++ /dev/null @@ -1,1158 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: wxApp -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "app.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/frame.h" - #include "wx/app.h" - #include "wx/utils.h" - #include "wx/gdicmn.h" - #include "wx/pen.h" - #include "wx/brush.h" - #include "wx/cursor.h" - #include "wx/icon.h" - #include "wx/palette.h" - #include "wx/dc.h" - #include "wx/dialog.h" - #include "wx/msgdlg.h" - #include "wx/intl.h" - #include "wx/dynarray.h" - #include "wx/wxchar.h" -#endif - -#include "wx/log.h" -#include "wx/module.h" - -#include "wx/msw/private.h" - -#if wxUSE_THREADS - #include "wx/thread.h" - - // define the array of MSG strutures - WX_DECLARE_OBJARRAY(MSG, wxMsgArray); - - #include "wx/arrimpl.cpp" - - WX_DEFINE_OBJARRAY(wxMsgArray); -#endif // wxUSE_THREADS - -#if wxUSE_WX_RESOURCES - #include "wx/resource.h" -#endif - -// OLE is used for drag-and-drop, clipboard, OLE Automation... -#if defined(__GNUWIN32__) || defined(__SC__) || defined(__SALFORDC__) - #undef wxUSE_OLE - - #define wxUSE_OLE 0 -#endif // broken compilers - -#if wxUSE_OLE - #include -#endif - -#include -#include - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) - #include -#endif - -#include "wx/msw/msvcrt.h" - - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -extern char *wxBuffer; -extern char *wxOsVersion; -extern wxList *wxWinHandleList; -extern wxList WXDLLEXPORT wxPendingDelete; -#if wxUSE_THREADS -extern wxList *wxPendingEvents; -extern wxCriticalSection *wxPendingEventsLocker; -#endif -extern void wxSetKeyboardHook(bool doIt); -extern wxCursor *g_globalCursor; - -HINSTANCE wxhInstance = 0; -MSG s_currentMsg; -wxApp *wxTheApp = NULL; - -// FIXME why not const? and not static? -char wxFrameClassName[] = "wxFrameClass"; -char wxMDIFrameClassName[] = "wxMDIFrameClass"; -char wxMDIChildFrameClassName[] = "wxMDIChildFrameClass"; -char wxPanelClassName[] = "wxPanelClass"; -char wxCanvasClassName[] = "wxCanvasClass"; - -HICON wxSTD_FRAME_ICON = (HICON) NULL; -HICON wxSTD_MDICHILDFRAME_ICON = (HICON) NULL; -HICON wxSTD_MDIPARENTFRAME_ICON = (HICON) NULL; - -HICON wxDEFAULT_FRAME_ICON = (HICON) NULL; -HICON wxDEFAULT_MDICHILDFRAME_ICON = (HICON) NULL; -HICON wxDEFAULT_MDIPARENTFRAME_ICON = (HICON) NULL; - -HBRUSH wxDisableButtonBrush = (HBRUSH) 0; - -LRESULT APIENTRY wxWndProc(HWND, UINT, WPARAM, LPARAM); - -#if defined(__WIN95__) && !defined(__TWIN32__) - #define wxUSE_RICHEDIT 1 -#else - #define wxUSE_RICHEDIT 0 -#endif - -#if wxUSE_RICHEDIT - static HINSTANCE gs_hRichEdit = (HINSTANCE) NULL; -#endif - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxApp -// --------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) - - BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) - EVT_END_SESSION(wxApp::OnEndSession) - EVT_QUERY_END_SESSION(wxApp::OnQueryEndSession) - END_EVENT_TABLE() -#endif - -//// Initialize -bool wxApp::Initialize() -{ - // Some people may wish to use this, but - // probably it shouldn't be here by default. -#ifdef __WXDEBUG__ - // wxRedirectIOToConsole(); -#endif - - wxBuffer = new char[1500]; // FIXME - - wxClassInfo::InitializeClasses(); - -#if wxUSE_RESOURCES - wxGetResource("wxWindows", "OsVersion", &wxOsVersion); -#endif - - // I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - wxPendingEvents = new wxList(); - wxPendingEventsLocker = new wxCriticalSection(); -#endif - - wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - wxBitmap::InitStandardHandlers(); - -#if defined(__WIN95__) - InitCommonControls(); - -#if wxUSE_RICHEDIT - gs_hRichEdit = LoadLibrary("RICHED32.DLL"); - - if (gs_hRichEdit == (HINSTANCE) NULL) - { - wxLogError(_("Could not initialise Rich Edit DLL")); - } -#endif // wxUSE_RICHEDIT - -#endif // __WIN95__ - - // for OLE, enlarge message queue to be as large as possible - int iMsg = 96; - while (!SetMessageQueue(iMsg) && (iMsg -= 8)); - -#if wxUSE_OLE - // we need to initialize OLE library - if ( FAILED(::OleInitialize(NULL)) ) - wxLogError(_("Cannot initialize OLE")); -#endif - -#if wxUSE_CTL3D - if (!Ctl3dRegister(wxhInstance)) - wxLogError("Cannot register CTL3D"); - - Ctl3dAutoSubclass(wxhInstance); -#endif - - g_globalCursor = new wxCursor; - - wxSTD_FRAME_ICON = LoadIcon(wxhInstance, "wxSTD_FRAME"); - wxSTD_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, "wxSTD_MDIPARENTFRAME"); - wxSTD_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, "wxSTD_MDICHILDFRAME"); - - wxDEFAULT_FRAME_ICON = LoadIcon(wxhInstance, "wxDEFAULT_FRAME"); - wxDEFAULT_MDIPARENTFRAME_ICON = LoadIcon(wxhInstance, "wxDEFAULT_MDIPARENTFRAME"); - wxDEFAULT_MDICHILDFRAME_ICON = LoadIcon(wxhInstance, "wxDEFAULT_MDICHILDFRAME"); - - RegisterWindowClasses(); - - // Create the brush for disabling bitmap buttons - - LOGBRUSH lb; - lb.lbStyle = BS_PATTERN; - lb.lbHatch = (int)LoadBitmap( wxhInstance, "wxDISABLE_BUTTON_BITMAP" ); - if ( lb.lbHatch ) - { - wxDisableButtonBrush = ::CreateBrushIndirect( & lb ); - ::DeleteObject( (HGDIOBJ)lb.lbHatch ); - } - //else: wxWindows resources are probably not linked in - -#if wxUSE_PENWINDOWS - wxRegisterPenWin(); -#endif - - wxWinHandleList = new wxList(wxKEY_INTEGER); - - // This is to foil optimizations in Visual C++ that throw out dummy.obj. - // PLEASE DO NOT ALTER THIS. -#if defined(__VISUALC__) && !defined(WXMAKINGDLL) - extern char wxDummyChar; - if (wxDummyChar) wxDummyChar++; -#endif - - wxSetKeyboardHook(TRUE); - - wxModule::RegisterModules(); - if (!wxModule::InitializeModules()) - return FALSE; - return TRUE; -} - -// --------------------------------------------------------------------------- -// RegisterWindowClasses -// --------------------------------------------------------------------------- - -bool wxApp::RegisterWindowClasses() -{ - WNDCLASS wndclass; - - // the fields which are common to all classes - wndclass.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = (WNDPROC)wxWndProc; - wndclass.cbClsExtra = 0; - wndclass.cbWndExtra = sizeof( DWORD ); // what is this DWORD used for? - wndclass.hInstance = wxhInstance; - wndclass.hIcon = (HICON) NULL; - wndclass.hCursor = ::LoadCursor((HINSTANCE)NULL, IDC_ARROW); - wndclass.lpszMenuName = NULL; - - // Register the frame window class. - wndclass.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE + 1); -#ifdef _MULTIPLE_INSTANCES - sprintf( wxFrameClassName,"wxFrameClass%d", wxhInstance ); -#endif - wndclass.lpszClassName = wxFrameClassName; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(frame)"); - - return FALSE; - } - - // Register the MDI frame window class. - wndclass.hbrBackground = (HBRUSH)NULL; // paint MDI frame ourselves - wndclass.lpszClassName = wxMDIFrameClassName; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(MDI parent)"); - - return FALSE; - } - - // Register the MDI child frame window class. - wndclass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wndclass.lpszClassName = wxMDIChildFrameClassName; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(MDI child)"); - - return FALSE; - } - - // Register the panel window class. - wndclass.hbrBackground = (HBRUSH) GetStockObject( LTGRAY_BRUSH ); - wndclass.lpszClassName = wxPanelClassName; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(panel)"); - - return FALSE; - } - - // Register the canvas and textsubwindow class name - wndclass.hbrBackground = (HBRUSH)NULL; - wndclass.lpszClassName = wxCanvasClassName; - - if ( !RegisterClass(&wndclass) ) - { - wxLogLastError("RegisterClass(canvas)"); - - return FALSE; - } - - return TRUE; -} - -// --------------------------------------------------------------------------- -// Convert Windows to argc, argv style -// --------------------------------------------------------------------------- - -void wxApp::ConvertToStandardCommandArgs(char* lpCmdLine) -{ - wxStringList args; - - wxString cmdLine(lpCmdLine); - int count = 0; - - // Get application name - char name[260]; // 260 is MAX_PATH value from windef.h - ::GetModuleFileName(wxhInstance, name, WXSIZEOF(name)); - - args.Add(name); - count++; - - strcpy(name, wxFileNameFromPath(name)); - wxStripExtension(name); - wxTheApp->SetAppName(name); - - // Break up string - // Treat strings enclosed in double-quotes as single arguments - int i = 0; - int len = cmdLine.Length(); - while (i < len) - { - // Skip whitespace - while ((i < len) && isspace(cmdLine.GetChar(i))) - i ++; - - if (i < len) - { - if (cmdLine.GetChar(i) == '"') // We found the start of a string - { - i ++; - int first = i; - while ((i < len) && (cmdLine.GetChar(i) != '"')) - i ++; - - wxString arg(cmdLine.Mid(first, (i - first))); - - args.Add(arg); - count ++; - - if (i < len) - i ++; // Skip past 2nd quote - } - else // Unquoted argument - { - int first = i; - while ((i < len) && !isspace(cmdLine.GetChar(i))) - i ++; - - wxString arg(cmdLine.Mid(first, (i - first))); - - args.Add(arg); - count ++; - } - } - } - - wxTheApp->argv = new char*[count + 1]; - for (i = 0; i < count; i++) - { - wxString arg(args[i]); - wxTheApp->argv[i] = copystring((const char*)arg); - } - wxTheApp->argv[count] = NULL; // argv[] is a NULL-terminated list - wxTheApp->argc = count; -} - -//// Cleans up any wxWindows internal structures left lying around - -void wxApp::CleanUp() -{ - //// COMMON CLEANUP - -#if wxUSE_LOG - // flush the logged messages if any and install a 'safer' log target: the - // default one (wxLogGui) can't be used after the resources are freed just - // below and the user suppliedo ne might be even more unsafe (using any - // wxWindows GUI function is unsafe starting from now) - wxLog::DontCreateOnDemand(); - - // this will flush the old messages if any - delete wxLog::SetActiveTarget(new wxLogStderr); -#endif // wxUSE_LOG - - // One last chance for pending objects to be cleaned up - wxTheApp->DeletePendingObjects(); - - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); - - // wxDefaultResourceTable->ClearTable(); -#endif - - // Indicate that the cursor can be freed, so that cursor won't be deleted - // by deleting the bitmap list before g_globalCursor goes out of scope - // (double deletion of the cursor). - wxSetCursor(wxNullCursor); - delete g_globalCursor; - g_globalCursor = NULL; - - wxDeleteStockObjects(); - - // Destroy all GDI lists, etc. - wxDeleteStockLists(); - - delete wxTheColourDatabase; - wxTheColourDatabase = NULL; - - wxBitmap::CleanUpHandlers(); - - delete[] wxBuffer; - wxBuffer = NULL; - - //// WINDOWS-SPECIFIC CLEANUP - - wxSetKeyboardHook(FALSE); - -#ifdef __WIN95__ - -#if wxUSE_RICHEDIT - if (gs_hRichEdit != (HINSTANCE) NULL) - FreeLibrary(gs_hRichEdit); -#endif - -#endif - -#if wxUSE_PENWINDOWS - wxCleanUpPenWin(); -#endif - - if (wxSTD_FRAME_ICON) - DestroyIcon(wxSTD_FRAME_ICON); - if (wxSTD_MDICHILDFRAME_ICON) - DestroyIcon(wxSTD_MDICHILDFRAME_ICON); - if (wxSTD_MDIPARENTFRAME_ICON) - DestroyIcon(wxSTD_MDIPARENTFRAME_ICON); - - if (wxDEFAULT_FRAME_ICON) - DestroyIcon(wxDEFAULT_FRAME_ICON); - if (wxDEFAULT_MDICHILDFRAME_ICON) - DestroyIcon(wxDEFAULT_MDICHILDFRAME_ICON); - if (wxDEFAULT_MDIPARENTFRAME_ICON) - DestroyIcon(wxDEFAULT_MDIPARENTFRAME_ICON); - - if ( wxDisableButtonBrush ) - ::DeleteObject( wxDisableButtonBrush ); - -#if wxUSE_OLE - ::OleUninitialize(); -#endif - -#if wxUSE_CTL3D - Ctl3dUnregister(wxhInstance); -#endif - - if (wxWinHandleList) - delete wxWinHandleList; - - // GL: I'm annoyed ... I don't know where to put this and I don't want to - // create a module for that as it's part of the core. -#if wxUSE_THREADS - delete wxPendingEvents; - delete wxPendingEventsLocker; - // If we don't do the following, we get an apparent memory leak. - ((wxEvtHandler&) wxDefaultValidator).ClearEventLocker(); -#endif - - wxClassInfo::CleanUpClasses(); - - delete wxTheApp; - wxTheApp = NULL; - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // At this point we want to check if there are any memory - // blocks that aren't part of the wxDebugContext itself, - // as a special case. Then when dumping we need to ignore - // wxDebugContext, too. - if (wxDebugContext::CountObjectsLeft(TRUE) > 0) - { - wxLogDebug("There were memory leaks."); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } - // wxDebugContext::SetStream(NULL, NULL); -#endif - -#if wxUSE_LOG - // do it as the very last thing because everything else can log messages - delete wxLog::SetActiveTarget(NULL); -#endif // wxUSE_LOG -} - -#if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL)) - -// temporarily disable this warning which would be generated in release builds -// because of __try -#ifdef __VISUALC__ - #pragma warning(disable: 4715) // not all control paths return a value -#endif // Visual C++ - -//// Main wxWindows entry point -int wxEntry(WXHINSTANCE hInstance, - WXHINSTANCE WXUNUSED(hPrevInstance), - char *lpCmdLine, - int nCmdShow, - bool enterLoop) -{ - // do check for memory leaks on program exit - // (another useful flag is _CRTDBG_DELAY_FREE_MEM_DF which doesn't free - // deallocated memory which may be used to simulate low-memory condition) - wxCrtSetDbgFlag(_CRTDBG_LEAK_CHECK_DF); - - // take everything into a try-except block in release build - // FIXME other compilers must support Win32 SEH (structured exception - // handling) too, just find the appropriate keyword in their docs! - // Please note that it's _not_ the same as C++ exceptions! -#if !defined(__WXDEBUG__) && defined(__VISUALC__) - #define CATCH_PROGRAM_EXCEPTIONS - - __try { -#else - #undef CATCH_PROGRAM_EXCEPTIONS -#endif - - wxhInstance = (HINSTANCE) hInstance; - - if (!wxApp::Initialize()) - return 0; - - // create the application object or ensure that one already exists - if (!wxTheApp) - { - // The app may have declared a global application object, but we recommend - // the IMPLEMENT_APP macro is used instead, which sets an initializer - // function for delayed, dynamic app object construction. - wxCHECK_MSG( wxApp::GetInitializerFunction(), 0, - "No initializer - use IMPLEMENT_APP macro." ); - - wxTheApp = (*wxApp::GetInitializerFunction()) (); - } - - wxCHECK_MSG( wxTheApp, 0, "You have to define an instance of wxApp!" ); - - // save the WinMain() parameters - wxTheApp->ConvertToStandardCommandArgs(lpCmdLine); - wxTheApp->m_nCmdShow = nCmdShow; - - // GUI-specific initialisation. In fact on Windows we don't have any, - // but this call is provided for compatibility across platforms. - wxTheApp->OnInitGui(); - - int retValue = 0; - - if ( wxTheApp->OnInit() ) - { - if ( enterLoop ) - { - retValue = wxTheApp->OnRun(); - } - else - // We want to initialize, but not run or exit immediately. - return 1; - } - //else: app initialization failed, so we skipped OnRun() - - wxWindow *topWindow = wxTheApp->GetTopWindow(); - if ( topWindow ) - { - // Forcibly delete the window. - if ( topWindow->IsKindOf(CLASSINFO(wxFrame)) || - topWindow->IsKindOf(CLASSINFO(wxDialog)) ) - { - topWindow->Close(TRUE); - wxTheApp->DeletePendingObjects(); - } - else - { - delete topWindow; - wxTheApp->SetTopWindow(NULL); - } - } - - wxTheApp->OnExit(); - - wxApp::CleanUp(); - - return retValue; - -#ifdef CATCH_PROGRAM_EXCEPTIONS - } - __except ( EXCEPTION_EXECUTE_HANDLER ) { - /* - if ( wxTheApp ) - wxTheApp->OnFatalException(); - */ - - // using wxLog would be unsafe here - ::MessageBox(NULL, - _("Unrecoverable program error detected: " - " the application will terminate."), - _("Fatal Error"), - MB_APPLMODAL | MB_ICONSTOP | MB_OK); - - ::ExitProcess(3); // the same exit code as abort() - - // NOTREACHED - } -#endif // CATCH_PROGRAM_EXCEPTIONS -} - -// restore warning state -#ifdef __VISUALC__ - #pragma warning(default: 4715) // not all control paths return a value -#endif // Visual C++ - -#else /* _WINDLL */ - -//// Entry point for DLLs - -int wxEntry(WXHINSTANCE hInstance) -{ - wxhInstance = (HINSTANCE) hInstance; - wxApp::Initialize(); - - // The app may have declared a global application object, but we recommend - // the IMPLEMENT_APP macro is used instead, which sets an initializer function - // for delayed, dynamic app object construction. - if (!wxTheApp) - { - wxCHECK_MSG( wxApp::GetInitializerFunction(), 0, - "No initializer - use IMPLEMENT_APP macro." ); - - wxTheApp = (* wxApp::GetInitializerFunction()) (); - } - - wxCHECK_MSG( wxTheApp, 0, "You have to define an instance of wxApp!" ); - - wxTheApp->argc = 0; - wxTheApp->argv = NULL; - - wxTheApp->OnInitGui(); - - wxTheApp->OnInit(); - - wxWindow *topWindow = wxTheApp->GetTopWindow(); - if ( topWindow && topWindow->GetHWND()) - { - topWindow->Show(TRUE); - } - - return 1; -} -#endif // _WINDLL - -//// Static member initialization - -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_wantDebugOutput = TRUE; - - argc = 0; - argv = NULL; - m_printMode = wxPRINT_WINDOWS; - m_exitOnFrameDelete = TRUE; - m_auto3D = TRUE; -} - -wxApp::~wxApp() -{ - // Delete command-line args - int i; - for (i = 0; i < argc; i++) - { - delete[] argv[i]; - } - delete[] argv; -} - -bool wxApp::Initialized() -{ -#ifndef _WINDLL - if (GetTopWindow()) - return TRUE; - else - return FALSE; -#endif -#ifdef _WINDLL // Assume initialized if DLL (no way of telling) - return TRUE; -#endif -} - -/* - * Get and process a message, returning FALSE if WM_QUIT - * received (and also set the flag telling the app to exit the main loop) - * - */ -bool wxApp::DoMessage() -{ - BOOL rc = ::GetMessage(&s_currentMsg, (HWND) NULL, 0, 0); - if ( rc == 0 ) - { - // got WM_QUIT - m_keepGoing = FALSE; - - return FALSE; - } - else if ( rc == -1 ) - { - // should never happen, but let's test for it nevertheless - wxLogLastError("GetMessage"); - } - else - { -#if wxUSE_THREADS - wxASSERT_MSG( wxThread::IsMain(), - "only the main thread can process Windows messages" ); - - static bool s_hadGuiLock = TRUE; - static wxMsgArray s_aSavedMessages; - - // if a secondary thread owns is doing GUI calls, save all messages for - // later processing - we can't process them right now because it will - // lead to recursive library calls (and we're not reentrant) - if ( !wxGuiOwnedByMainThread() ) - { - s_hadGuiLock = FALSE; - - // leave out WM_COMMAND messages: too dangerous, sometimes - // the message will be processed twice - if ( !wxIsWaitingForThread() || - s_currentMsg.message != WM_COMMAND ) - { - s_aSavedMessages.Add(s_currentMsg); - } - - return TRUE; - } - else - { - // have we just regained the GUI lock? if so, post all of the saved - // messages - // - // FIXME of course, it's not _exactly_ the same as processing the - // messages normally - expect some things to break... - if ( !s_hadGuiLock ) - { - s_hadGuiLock = TRUE; - - size_t count = s_aSavedMessages.Count(); - for ( size_t n = 0; n < count; n++ ) - { - MSG& msg = s_aSavedMessages[n]; - - if ( !ProcessMessage((WXMSG *)&msg) ) - { - ::TranslateMessage(&msg); - ::DispatchMessage(&msg); - } - } - - s_aSavedMessages.Empty(); - } - } -#endif // wxUSE_THREADS - - // Process the message - if ( !ProcessMessage((WXMSG *)&s_currentMsg) ) - { - ::TranslateMessage(&s_currentMsg); - ::DispatchMessage(&s_currentMsg); - } - } - - return TRUE; -} - -/* - * Keep trying to process messages until WM_QUIT - * received. - * - * If there are messages to be processed, they will all be - * processed and OnIdle will not be called. - * When there are no more messages, OnIdle is called. - * If OnIdle requests more time, - * it will be repeatedly called so long as there are no pending messages. - * A 'feature' of this is that once OnIdle has decided that no more processing - * is required, then it won't get processing time until further messages - * are processed (it'll sit in DoMessage). - */ - -int wxApp::MainLoop() -{ - m_keepGoing = TRUE; - - while ( m_keepGoing ) - { -#if wxUSE_THREADS - wxMutexGuiLeaveOrEnter(); -#endif // wxUSE_THREADS - - while ( !::PeekMessage(&s_currentMsg, 0, 0, 0, PM_NOREMOVE) && - ProcessIdle() ) - { - } - - - DoMessage(); - } - - return s_currentMsg.wParam; -} - -// Returns TRUE if more time is needed. -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -#if wxUSE_THREADS -void wxApp::ProcessPendingEvents() -{ - wxNode *node = wxPendingEvents->First(); - wxCriticalSectionLocker locker(*wxPendingEventsLocker); - - while (node) - { - wxEvtHandler *handler = (wxEvtHandler *)node->Data(); - - handler->ProcessPendingEvents(); - - delete node; - node = wxPendingEvents->First(); - } -} -#endif - - -void wxApp::ExitMainLoop() -{ - m_keepGoing = FALSE; -} - -bool wxApp::Pending() -{ - return (::PeekMessage(&s_currentMsg, 0, 0, 0, PM_NOREMOVE) != 0); -} - -void wxApp::Dispatch() -{ - DoMessage(); -} - -/* - * Give all windows a chance to preprocess - * the message. Some may have accelerator tables, or have - * MDI complications. - */ - -bool wxApp::ProcessMessage(WXMSG *wxmsg) -{ - MSG *msg = (MSG *)wxmsg; - HWND hWnd = msg->hwnd; - wxWindow *wndThis = wxFindWinFromHandle((WXHWND)hWnd), *wnd; - - // Try translations first; find the youngest window with - // a translation table. - for ( wnd = wndThis; wnd; wnd = wnd->GetParent() ) - { - if ( wnd->MSWTranslateMessage(wxmsg) ) - return TRUE; - } - - // Anyone for a non-translation message? Try youngest descendants first. - for ( wnd = wndThis; wnd; wnd = wnd->GetParent() ) - { - if ( wnd->MSWProcessMessage(wxmsg) ) - return TRUE; - } - - return FALSE; -} - -void wxApp::OnIdle(wxIdleEvent& event) -{ - static bool s_inOnIdle = FALSE; - - // Avoid recursion (via ProcessEvent default case) - if ( s_inOnIdle ) - return; - - s_inOnIdle = TRUE; - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - -#if wxUSE_LOG - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); -#endif // wxUSE_LOG - - // Send OnIdle events to all windows - if ( SendIdleEvents() ) - { - // SendIdleEvents() returns TRUE if at least one window requested more - // idle events - event.RequestMore(TRUE); - } - - // If they are pending events, we must process them. -#if wxUSE_THREADS - ProcessPendingEvents(); -#endif - s_inOnIdle = FALSE; -} - -// Send idle event to all top-level windows -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - - wxWindowList::Node* node = wxTopLevelWindows.GetFirst(); - while (node) - { - wxWindow* win = node->GetData(); - if (SendIdleEvents(win)) - needMore = TRUE; - node = node->GetNext(); - } - - return needMore; -} - -// Send idle event to window and all subwindows -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - win->GetEventHandler()->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore; -} - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Member(obj)) - delete node; - - // Deleting one object may have deleted other pending - // objects, so start from beginning of list again. - node = wxPendingDelete.First(); - } -} - -void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event)) -{ - if (GetTopWindow()) - GetTopWindow()->Close(TRUE); -} - -// Default behaviour: close the application with prompts. The -// user can veto the close, and therefore the end session. -void wxApp::OnQueryEndSession(wxCloseEvent& event) -{ - if (GetTopWindow()) - { - if (!GetTopWindow()->Close(!event.CanVeto())) - event.Veto(TRUE); - } -} - -wxLog* wxApp::CreateLogTarget() -{ - return new wxLogGui; -} - -wxWindow* wxApp::GetTopWindow() const -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.GetCount() > 0) - return wxTopLevelWindows.GetFirst()->GetData(); - else - return NULL; -} - -int wxApp::GetComCtl32Version() const -{ - // have we loaded COMCTL32 yet? - HMODULE theModule = ::GetModuleHandle("COMCTL32"); - int version = 0; - - // if so, then we can check for the version - if (theModule) - { - // InitCommonControlsEx is unique to 4.7 and later - FARPROC theProc = ::GetProcAddress(theModule, "InitCommonControlsEx"); - - if (! theProc) - { // not found, must be 4.00 - version = 400; - } - else - { - // The following symbol are unique to 4.71 - // DllInstall - // FlatSB_EnableScrollBar FlatSB_GetScrollInfo FlatSB_GetScrollPos - // FlatSB_GetScrollProp FlatSB_GetScrollRange FlatSB_SetScrollInfo - // FlatSB_SetScrollPos FlatSB_SetScrollProp FlatSB_SetScrollRange - // FlatSB_ShowScrollBar - // _DrawIndirectImageList _DuplicateImageList - // InitializeFlatSB - // UninitializeFlatSB - // we could check for any of these - I chose DllInstall - FARPROC theProc = ::GetProcAddress(theModule, "DllInstall"); - if (! theProc) - { - // not found, must be 4.70 - version = 470; - } - else - { // found, must be 4.71 - version = 471; - } - } - } - return version; -} - -void wxExit() -{ - wxLogError(_("Fatal error: exiting")); - - wxApp::CleanUp(); -} - -// Yield to incoming messages -bool wxYield() -{ - MSG msg; - // We want to go back to the main message loop - // if we see a WM_QUIT. (?) -#ifdef __WXWINE__ - while (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_NOREMOVE) && msg.message != WM_QUIT) -#else - while (PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) && msg.message != WM_QUIT) -#endif - { - if ( !wxTheApp->DoMessage() ) - break; - } - // If they are pending events, we must process them. -#if wxUSE_THREADS - wxTheApp->ProcessPendingEvents(); -#endif - - return TRUE; -} - -HINSTANCE wxGetInstance() -{ - return wxhInstance; -} - -void wxSetInstance(HINSTANCE hInst) -{ - wxhInstance = hInst; -} - -// For some reason, with MSVC++ 1.5, WinMain isn't linked in properly -// if in a separate file. So include it here to ensure it's linked. -#if (defined(__VISUALC__) && !defined(__WIN32__)) || (defined(__GNUWIN32__) && !defined(__TWIN32__)) -#include "main.cpp" -#endif diff --git a/src/msw/bitmap.cpp b/src/msw/bitmap.cpp deleted file mode 100644 index 581eadde0a..0000000000 --- a/src/msw/bitmap.cpp +++ /dev/null @@ -1,787 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: wxBitmap -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/palette.h" -#include "wx/dcmemory.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#endif - -#include "wx/msw/private.h" -#include "wx/log.h" - -#include "assert.h" - -#include "wx/msw/dib.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -wxBitmapRefData::wxBitmapRefData(void) -{ - m_ok = FALSE; - m_width = 0; - m_height = 0; - m_depth = 0; - m_quality = 0; - m_hBitmap = 0 ; - m_selectedInto = NULL; - m_numColors = 0; - m_bitmapMask = NULL; -} - -wxBitmapRefData::~wxBitmapRefData(void) -{ - if (m_selectedInto) - { - char buf[200]; - sprintf(buf, "Bitmap was deleted without selecting out of wxMemoryDC %X.", (unsigned int) m_selectedInto); - wxFatalError(buf); - } - if (m_hBitmap) - { - DeleteObject((HBITMAP) m_hBitmap); - } - m_hBitmap = 0 ; - - if (m_bitmapMask) - delete m_bitmapMask; - m_bitmapMask = NULL; - -} - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap(void) -{ - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap(void) -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -bool wxBitmap::FreeResource(bool WXUNUSED(force)) -{ - if ( !M_BITMAPDATA ) - return FALSE; - - if (M_BITMAPDATA->m_selectedInto) - { - char buf[200]; - sprintf(buf, "Bitmap %X was deleted without selecting out of wxMemoryDC %X.", (unsigned int) this, (unsigned int) M_BITMAPDATA->m_selectedInto); - wxFatalError(buf); - } - if (M_BITMAPDATA->m_hBitmap) - { - DeleteObject((HBITMAP) M_BITMAPDATA->m_hBitmap); - } - M_BITMAPDATA->m_hBitmap = 0 ; - -/* - if (M_BITMAPDATA->m_bitmapPalette) - delete M_BITMAPDATA->m_bitmapPalette; - - M_BITMAPDATA->m_bitmapPalette = NULL ; -*/ - - return TRUE; -} - - -wxBitmap::wxBitmap(const char bits[], int the_width, int the_height, int no_bits) -{ - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = the_width ; - M_BITMAPDATA->m_height = the_height ; - M_BITMAPDATA->m_depth = no_bits ; - M_BITMAPDATA->m_numColors = 0; - - M_BITMAPDATA->m_hBitmap = (WXHBITMAP) CreateBitmap(the_width, the_height, 1, no_bits, bits); - - if (M_BITMAPDATA->m_hBitmap) - M_BITMAPDATA->m_ok = TRUE; - else - M_BITMAPDATA->m_ok = FALSE; - - M_BITMAPDATA->m_selectedInto = NULL; - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -// Create from XPM data -wxBitmap::wxBitmap(char **data, wxControl *WXUNUSED(anItem)) -{ - (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); -} - -wxBitmap::wxBitmap(int w, int h, int d) -{ - (void)Create(w, h, d); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth) -{ - (void) Create(data, type, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxString& filename, long type) -{ - LoadFile(filename, (int)type); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -bool wxBitmap::Create(int w, int h, int d) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = d; - - if (d > 0) - { - M_BITMAPDATA->m_hBitmap = (WXHBITMAP) CreateBitmap(w, h, 1, d, NULL); - } - else - { - HDC dc = GetDC((HWND) NULL); - M_BITMAPDATA->m_hBitmap = (WXHBITMAP) CreateCompatibleBitmap(dc, w, h); - ReleaseDC((HWND) NULL, dc); - M_BITMAPDATA->m_depth = wxDisplayDepth(); - } - if (M_BITMAPDATA->m_hBitmap) - M_BITMAPDATA->m_ok = TRUE; - else - M_BITMAPDATA->m_ok = FALSE; - return M_BITMAPDATA->m_ok; -} - -bool wxBitmap::LoadFile(const wxString& filename, long type) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->LoadFile(this, filename, type, -1, -1); -} - -bool wxBitmap::Create(void *data, long type, int width, int height, int depth) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->Create(this, data, type, width, height, depth); -} - -bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *palette) -{ - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->SaveFile(this, filename, type, palette); -} - -void wxBitmap::SetWidth(int w) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; -} - -void wxBitmap::SetHeight(int h) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_height = h; -} - -void wxBitmap::SetDepth(int d) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_depth = d; -} - -void wxBitmap::SetQuality(int q) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_quality = q; -} - -void wxBitmap::SetOk(bool isOk) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_ok = isOk; -} - -void wxBitmap::SetPalette(const wxPalette& palette) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapPalette = palette ; -} - -void wxBitmap::SetMask(wxMask *mask) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapMask = mask ; -} - -void wxBitmap::SetHBITMAP(WXHBITMAP bmp) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_hBitmap = bmp; -} - -void wxBitmap::AddHandler(wxBitmapHandler *handler) -{ - sm_handlers.Append(handler); -} - -void wxBitmap::InsertHandler(wxBitmapHandler *handler) -{ - sm_handlers.Insert(handler); -} - -bool wxBitmap::RemoveHandler(const wxString& name) -{ - wxBitmapHandler *handler = FindHandler(name); - if ( handler ) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& name) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( (handler->GetName().Cmp(name) == 0) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& extension, long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( (handler->GetExtension().Cmp(extension) == 0) && - (bitmapType == -1 || (handler->GetType() == bitmapType)) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if (handler->GetType() == bitmapType) - return handler; - node = node->Next(); - } - return NULL; -} - -// New Create/FreeDIB functions since ones in dibutils.cpp are confusing -static long createDIB(long xSize, long ySize, long bitsPerPixel, - HPALETTE hPal, LPBITMAPINFO* lpDIBHeader); -static long freeDIB(LPBITMAPINFO lpDIBHeader); - -// Creates a bitmap that matches the device context, from -// an arbitray bitmap. At present, the original bitmap must have an -// associated palette. TODO: use a default palette if no palette exists. -// Contributed by Frederic Villeneuve -wxBitmap wxBitmap::GetBitmapForDC(wxDC& dc) const -{ - wxMemoryDC memDC; - wxBitmap tmpBitmap(this->GetWidth(), this->GetHeight(), dc.GetDepth()); - HPALETTE hPal = (HPALETTE) NULL; - LPBITMAPINFO lpDib; - void *lpBits = (void*) NULL; - -/* - wxASSERT( this->GetPalette() && this->GetPalette()->Ok() && (this->GetPalette()->GetHPALETTE() != 0) ); - - tmpBitmap.SetPalette(this->GetPalette()); - memDC.SelectObject(tmpBitmap); - memDC.SetPalette(this->GetPalette()); - - hPal = (HPALETTE) this->GetPalette()->GetHPALETTE(); -*/ - if( this->GetPalette() && this->GetPalette()->Ok() && (this->GetPalette()->GetHPALETTE() != 0) ) - { - tmpBitmap.SetPalette(* this->GetPalette()); - memDC.SelectObject(tmpBitmap); - memDC.SetPalette(* this->GetPalette()); - hPal = (HPALETTE) this->GetPalette()->GetHPALETTE(); - } - else - { - hPal = (HPALETTE) ::GetStockObject(DEFAULT_PALETTE); - wxPalette palette; - palette.SetHPALETTE( (WXHPALETTE)hPal ); - tmpBitmap.SetPalette( palette ); - memDC.SelectObject(tmpBitmap); - memDC.SetPalette( palette ); - } - - // set the height negative because in a DIB the order of the lines is reversed - createDIB(this->GetWidth(), -this->GetHeight(), this->GetDepth(), hPal, &lpDib); - - lpBits = malloc(lpDib->bmiHeader.biSizeImage); - - ::GetBitmapBits((HBITMAP)GetHBITMAP(), lpDib->bmiHeader.biSizeImage, lpBits); - - ::SetDIBitsToDevice((HDC) memDC.GetHDC(), 0, 0, this->GetWidth(), this->GetHeight(), - 0, 0, 0, this->GetHeight(), lpBits, lpDib, DIB_RGB_COLORS); - - free(lpBits); - - freeDIB(lpDib); - return (tmpBitmap); -} - -/* - * wxMask - */ - -wxMask::wxMask(void) -{ - m_maskBitmap = 0; -} - -// Construct a mask from a bitmap and a colour indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour) -{ - m_maskBitmap = 0; - Create(bitmap, colour); -} - -// Construct a mask from a bitmap and a palette index indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex) -{ - m_maskBitmap = 0; - Create(bitmap, paletteIndex); -} - -// Construct a mask from a mono bitmap (copies the bitmap). -wxMask::wxMask(const wxBitmap& bitmap) -{ - m_maskBitmap = 0; - Create(bitmap); -} - -wxMask::~wxMask(void) -{ - if ( m_maskBitmap ) - ::DeleteObject((HBITMAP) m_maskBitmap); -} - -// Create a mask from a mono bitmap (copies the bitmap). -bool wxMask::Create(const wxBitmap& bitmap) -{ - if ( m_maskBitmap ) - { - ::DeleteObject((HBITMAP) m_maskBitmap); - m_maskBitmap = 0; - } - if (!bitmap.Ok() || bitmap.GetDepth() != 1) - { - return FALSE; - } - m_maskBitmap = (WXHBITMAP) CreateBitmap( - bitmap.GetWidth(), - bitmap.GetHeight(), - 1, 1, 0 - ); - HDC srcDC = CreateCompatibleDC(0); - SelectObject(srcDC, (HBITMAP) bitmap.GetHBITMAP()); - HDC destDC = CreateCompatibleDC(0); - SelectObject(destDC, (HBITMAP) m_maskBitmap); - BitBlt(destDC, 0, 0, bitmap.GetWidth(), bitmap.GetHeight(), srcDC, 0, 0, SRCCOPY); - SelectObject(srcDC, 0); - DeleteDC(srcDC); - SelectObject(destDC, 0); - DeleteDC(destDC); - return TRUE; -} - -// Create a mask from a bitmap and a palette index indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex) -{ - if ( m_maskBitmap ) - { - ::DeleteObject((HBITMAP) m_maskBitmap); - m_maskBitmap = 0; - } - if (bitmap.Ok() && bitmap.GetPalette()->Ok()) - { - unsigned char red, green, blue; - if (bitmap.GetPalette()->GetRGB(paletteIndex, &red, &green, &blue)) - { - wxColour transparentColour(red, green, blue); - return Create(bitmap, transparentColour); - } - } - return FALSE; -} - -// Create a mask from a bitmap and a colour indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) -{ - if ( m_maskBitmap ) - { - ::DeleteObject((HBITMAP) m_maskBitmap); - m_maskBitmap = 0; - } - if (!bitmap.Ok()) - { - return FALSE; - } - - // scan the bitmap for the transparent colour and set - // the corresponding pixels in the mask to BLACK and - // the rest to WHITE - COLORREF maskColour = RGB(colour.Red(), colour.Green(), colour.Blue()); - m_maskBitmap = (WXHBITMAP) ::CreateBitmap( - bitmap.GetWidth(), - bitmap.GetHeight(), - 1, 1, 0 - ); - HDC srcDC = ::CreateCompatibleDC(0); - ::SelectObject(srcDC, (HBITMAP) bitmap.GetHBITMAP()); - HDC destDC = ::CreateCompatibleDC(0); - ::SelectObject(destDC, (HBITMAP) m_maskBitmap); - - // this is not very efficient, but I can't think - // of a better way of doing it - for (int w = 0; w < bitmap.GetWidth(); w++) - { - for (int h = 0; h < bitmap.GetHeight(); h++) - { - COLORREF col = GetPixel(srcDC, w, h); - if (col == maskColour) - { - ::SetPixel(destDC, w, h, RGB(0, 0, 0)); - } - else - { - ::SetPixel(destDC, w, h, RGB(255, 255, 255)); - } - } - } - ::SelectObject(srcDC, 0); - ::DeleteDC(srcDC); - ::SelectObject(destDC, 0); - ::DeleteDC(destDC); - return TRUE; -} - -/* - * wxBitmapHandler - */ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) - -bool wxBitmapHandler::Create(wxBitmap *WXUNUSED(bitmap), void *WXUNUSED(data), long WXUNUSED(type), int WXUNUSED(width), int WXUNUSED(height), int WXUNUSED(depth)) -{ - return FALSE; -} - -bool wxBitmapHandler::LoadFile(wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name), long WXUNUSED(type), - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight)) -{ - return FALSE; -} - -bool wxBitmapHandler::SaveFile(wxBitmap *WXUNUSED(bitmap), const wxString& WXUNUSED(name), int WXUNUSED(type), const wxPalette *WXUNUSED(palette)) -{ - return FALSE; -} - -/* - * Standard handlers - */ - -class WXDLLEXPORT wxBMPResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPResourceHandler) -public: - inline wxBMPResourceHandler(void) - { - m_name = "Windows bitmap resource"; - m_extension = ""; - m_type = wxBITMAP_TYPE_BMP_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); -}; -IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler) - -bool wxBMPResourceHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long WXUNUSED(flags), - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight)) -{ - // TODO: load colourmap. - M_BITMAPHANDLERDATA->m_hBitmap = (WXHBITMAP) ::LoadBitmap(wxGetInstance(), name); - if (M_BITMAPHANDLERDATA->m_hBitmap) - { - M_BITMAPHANDLERDATA->m_ok = TRUE; - BITMAP bm; - GetObject((HBITMAP) M_BITMAPHANDLERDATA->m_hBitmap, sizeof(BITMAP), (LPSTR) &bm); - M_BITMAPHANDLERDATA->m_width = bm.bmWidth; - M_BITMAPHANDLERDATA->m_height = bm.bmHeight; - M_BITMAPHANDLERDATA->m_depth = bm.bmBitsPixel; - - if ( bitmap->IsKindOf(CLASSINFO(wxIcon)) ) - { - } - - return TRUE; - } - - // it's probably not found - wxLogError("Can't load bitmap '%s' from resources! Check .rc file.", name.c_str()); - - return FALSE; -} - -class WXDLLEXPORT wxBMPFileHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPFileHandler) -public: - inline wxBMPFileHandler(void) - { - m_name = "Windows bitmap file"; - m_extension = "bmp"; - m_type = wxBITMAP_TYPE_BMP; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); - virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL); -}; -IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler) - -bool wxBMPFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long WXUNUSED(flags), - int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight)) -{ -#if wxUSE_IMAGE_LOADING_IN_MSW - wxPalette *palette = NULL; - bool success = FALSE; -/* - if (type & wxBITMAP_DISCARD_COLOURMAP) - success = wxLoadIntoBitmap(WXSTRINGCAST name, bitmap); - else -*/ - success = (wxLoadIntoBitmap(WXSTRINGCAST name, bitmap, &palette) != 0); - if (!success && palette) - { - delete palette; - palette = NULL; - } - if (palette) - { - M_BITMAPHANDLERDATA->m_bitmapPalette = *palette; - delete palette; - } - return success; -#else - return FALSE; -#endif -} - -bool wxBMPFileHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int WXUNUSED(type), const wxPalette *pal) -{ -#if wxUSE_IMAGE_LOADING_IN_MSW - wxPalette *actualPalette = (wxPalette *)pal; - if (!actualPalette && (!M_BITMAPHANDLERDATA->m_bitmapPalette.IsNull())) - actualPalette = & (M_BITMAPHANDLERDATA->m_bitmapPalette); - return (wxSaveBitmap(WXSTRINGCAST name, bitmap, actualPalette) != 0); -#else - return FALSE; -#endif -} - -void wxBitmap::CleanUpHandlers(void) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -void wxBitmap::InitStandardHandlers(void) -{ - AddHandler(new wxBMPResourceHandler); - AddHandler(new wxBMPFileHandler); - - // Not added by default: include xpmhand.h in your app - // and call these in your wxApp::OnInit. -// AddHandler(new wxXPMFileHandler); -// AddHandler(new wxXPMDataHandler); - - AddHandler(new wxICOResourceHandler); - AddHandler(new wxICOFileHandler); -} - -static long createDIB(long xSize, long ySize, long bitsPerPixel, - HPALETTE hPal, LPBITMAPINFO* lpDIBHeader) -{ - unsigned long i, headerSize; - LPBITMAPINFO lpDIBheader = NULL; - LPPALETTEENTRY lpPe = NULL; - - - // Allocate space for a DIB header - headerSize = (sizeof(BITMAPINFOHEADER) + (256 * sizeof(PALETTEENTRY))); - lpDIBheader = (BITMAPINFO *) malloc(headerSize); - lpPe = (PALETTEENTRY *)((BYTE*)lpDIBheader + sizeof(BITMAPINFOHEADER)); - - GetPaletteEntries(hPal, 0, 256, lpPe); - - - memset(lpDIBheader, 0x00, sizeof(BITMAPINFOHEADER)); - - - // Fill in the static parts of the DIB header - lpDIBheader->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - lpDIBheader->bmiHeader.biWidth = xSize; - lpDIBheader->bmiHeader.biHeight = ySize; - lpDIBheader->bmiHeader.biPlanes = 1; - - // this value must be 1, 4, 8 or 24 so PixelDepth can only be - lpDIBheader->bmiHeader.biBitCount = (WORD)(bitsPerPixel); - lpDIBheader->bmiHeader.biCompression = BI_RGB; - lpDIBheader->bmiHeader.biSizeImage = xSize * abs(ySize) * bitsPerPixel >> -3; - lpDIBheader->bmiHeader.biClrUsed = 256; - - - // Initialize the DIB palette - for (i = 0; i < 256; i++) { - lpDIBheader->bmiColors[i].rgbReserved = lpPe[i].peFlags; - lpDIBheader->bmiColors[i].rgbRed = lpPe[i].peRed; - lpDIBheader->bmiColors[i].rgbGreen = lpPe[i].peGreen; - lpDIBheader->bmiColors[i].rgbBlue = lpPe[i].peBlue; - } - - *lpDIBHeader = lpDIBheader; - - - return (0); - -} - - - -static long freeDIB(LPBITMAPINFO lpDIBHeader) -{ - - if (lpDIBHeader != NULL) { - free(lpDIBHeader); - } - - return (0); -} - - diff --git a/src/msw/bmpbuttn.cpp b/src/msw/bmpbuttn.cpp deleted file mode 100644 index 9404785a6f..0000000000 --- a/src/msw/bmpbuttn.cpp +++ /dev/null @@ -1,271 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: wxBitmapButton -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/bmpbuttn.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) -#endif - -#define BUTTON_HEIGHT_FACTOR (EDIT_CONTROL_FACTOR * 1.1) - -bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_buttonBitmap = bitmap; - SetName(name); - SetValidator(validator); - - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - m_windowStyle = style; - m_marginX = 0; - m_marginY = 0; - - if ( style & wxBU_AUTODRAW ) - { - m_marginX = wxDEFAULT_BUTTON_MARGIN; - m_marginY = wxDEFAULT_BUTTON_MARGIN; - } - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - if ( width == -1 && bitmap.Ok()) - width = bitmap.GetWidth() + 2*m_marginX; - - if ( height == -1 && bitmap.Ok()) - height = bitmap.GetHeight() + 2*m_marginY; - - m_hWnd = (WXHWND)CreateWindowEx - ( - 0, - "BUTTON", - "", - WS_VISIBLE | WS_TABSTOP | WS_CHILD | BS_OWNERDRAW , - 0, 0, 0, 0, - GetWinHwnd(parent), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - - // Subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - SetFont(parent->GetFont()) ; - - SetSize(x, y, width, height); - - return TRUE; -} - -void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) -{ - m_buttonBitmap = bitmap; -} - -bool wxBitmapButton::MSWOnDraw(WXDRAWITEMSTRUCT *item) -{ -#if defined(__WIN95__) - long style = GetWindowLong((HWND) GetHWND(), GWL_STYLE); - if (style & BS_BITMAP) - { - // Let default procedure draw the bitmap, which is defined - // in the Windows resource. - return FALSE; - } -#endif - - LPDRAWITEMSTRUCT lpDIS = (LPDRAWITEMSTRUCT) item; - - wxBitmap* bitmap = &m_buttonBitmap; - - UINT state = lpDIS->itemState; - if ((state & ODS_SELECTED) && m_buttonBitmapSelected.Ok()) - bitmap = &m_buttonBitmapSelected; - else if ((state & ODS_FOCUS) && m_buttonBitmapFocus.Ok()) - bitmap = &m_buttonBitmapFocus; - else if ((state & ODS_DISABLED) && m_buttonBitmapDisabled.Ok()) - bitmap = &m_buttonBitmapDisabled; - - if ( !bitmap->Ok() ) - return FALSE; - - HDC hDC = lpDIS->hDC; - HDC memDC = ::CreateCompatibleDC(hDC); - - HBITMAP old = (HBITMAP) ::SelectObject(memDC, (HBITMAP) bitmap->GetHBITMAP()); - - if (!old) - return FALSE; - - int x = lpDIS->rcItem.left; - int y = lpDIS->rcItem.top; - int width = lpDIS->rcItem.right - x; - int height = lpDIS->rcItem.bottom - y; - - // Draw the face, if auto-drawing - if ( GetWindowStyleFlag() & wxBU_AUTODRAW ) - DrawFace((WXHDC) hDC, lpDIS->rcItem.left, lpDIS->rcItem.top, lpDIS->rcItem.right, lpDIS->rcItem.bottom, - ((state & ODS_SELECTED) == ODS_SELECTED)); - - // Centre the bitmap in the control area - int x1 = (int) (x + ((width - bitmap->GetWidth()) / 2)); - int y1 = (int) (y + ((height - bitmap->GetHeight()) / 2)); - - if ( (state & ODS_SELECTED) && (GetWindowStyleFlag() & wxBU_AUTODRAW) ) - { - x1 ++; - y1 ++; - } - - ::BitBlt(hDC, x1, y1, bitmap->GetWidth(), bitmap->GetHeight(), memDC, 0, 0, SRCCOPY); - - if ( (state & ODS_DISABLED) && (GetWindowStyleFlag() & wxBU_AUTODRAW) ) - DrawButtonDisable( (WXHDC) hDC, lpDIS->rcItem.left, lpDIS->rcItem.top, lpDIS->rcItem.right, lpDIS->rcItem.bottom, TRUE ) ; - else if ( (state & ODS_FOCUS) && (GetWindowStyleFlag() & wxBU_AUTODRAW) ) - DrawButtonFocus( (WXHDC) hDC, lpDIS->rcItem.left, lpDIS->rcItem.top, lpDIS->rcItem.right, lpDIS->rcItem.bottom, ((state & ODS_SELECTED) == ODS_SELECTED)); - - ::SelectObject(memDC, old); - - ::DeleteDC(memDC); - - return TRUE; -} - -void wxBitmapButton::DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel ) -{ - HPEN oldp; - HBRUSH oldb ; - - HPEN penBorder; - HPEN penLight; - HPEN penShadow; - HBRUSH brushFace; - COLORREF ms_color; - - ms_color = GetSysColor(COLOR_WINDOWFRAME) ; - penBorder = CreatePen(PS_SOLID,0,ms_color) ; - - ms_color = GetSysColor(COLOR_BTNSHADOW) ; - penShadow = CreatePen(PS_SOLID,0,ms_color) ; - - ms_color = GetSysColor(COLOR_BTNHIGHLIGHT) ; - penLight = CreatePen(PS_SOLID,0,ms_color) ; - - ms_color = GetSysColor(COLOR_BTNFACE) ; - brushFace = CreateSolidBrush(ms_color) ; - - oldp = (HPEN) SelectObject( (HDC) dc, GetStockObject( NULL_PEN ) ) ; - oldb = (HBRUSH) SelectObject( (HDC) dc, brushFace ) ; - Rectangle( (HDC) dc, left, top, right, bottom ) ; - SelectObject( (HDC) dc, penBorder) ; - MoveToEx((HDC) dc,left+1,top,NULL);LineTo((HDC) dc,right-1,top); - MoveToEx((HDC) dc,left,top+1,NULL);LineTo((HDC) dc,left,bottom-1); - MoveToEx((HDC) dc,left+1,bottom-1,NULL);LineTo((HDC) dc,right-1,bottom-1); - MoveToEx((HDC) dc,right-1,top+1,NULL);LineTo((HDC) dc,right-1,bottom-1); - - SelectObject( (HDC) dc, penShadow) ; - if (sel) - { - MoveToEx((HDC) dc,left+1 ,bottom-2 ,NULL) ; - LineTo((HDC) dc, left+1 ,top+1) ; - LineTo((HDC) dc, right-2 ,top+1) ; - } - else - { - MoveToEx((HDC) dc,left+1 ,bottom-2 ,NULL) ; - LineTo((HDC) dc, right-2 ,bottom-2) ; - LineTo((HDC) dc, right-2 ,top) ; - MoveToEx((HDC) dc,left+2 ,bottom-3 ,NULL) ; - LineTo((HDC) dc, right-3 ,bottom-3) ; - LineTo((HDC) dc, right-3 ,top+1) ; - - SelectObject( (HDC) dc, penLight) ; - - MoveToEx((HDC) dc,left+1 ,bottom-2 ,NULL) ; - LineTo((HDC) dc, left+1 ,top+1) ; - LineTo((HDC) dc, right-2 ,top+1) ; - } - SelectObject((HDC) dc,oldp) ; - SelectObject((HDC) dc,oldb) ; - - DeleteObject(penBorder); - DeleteObject(penLight); - DeleteObject(penShadow); - DeleteObject(brushFace); -} - -#define FOCUS_MARGIN 6 - -void wxBitmapButton::DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel ) -{ - RECT rect; - rect.left = left; - rect.top = top; - rect.right = right; - rect.bottom = bottom; - InflateRect( &rect, - FOCUS_MARGIN, - FOCUS_MARGIN ) ; - if ( sel ) - OffsetRect( &rect, 1, 1 ) ; - DrawFocusRect( (HDC) dc, &rect ) ; -} - -extern HBRUSH wxDisableButtonBrush; -void wxBitmapButton::DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg ) -{ - HBRUSH old = (HBRUSH) SelectObject( (HDC) dc, wxDisableButtonBrush ) ; - - if ( with_marg ) - ::PatBlt( (HDC) dc, left + m_marginX, top + m_marginY, - right - 2 * m_marginX, bottom - 2 * m_marginY, -#ifdef __SALFORDC__ - 0xfa0089L ) ; -#else - 0xfa0089UL ) ; -#endif - else ::PatBlt( (HDC) dc, left, top, right, bottom, -#ifdef __SALFORDC__ - 0xfa0089L ) ; -#else - 0xfa0089UL ) ; -#endif - ::SelectObject( (HDC) dc, old ) ; -} - diff --git a/src/msw/brush.cpp b/src/msw/brush.cpp deleted file mode 100644 index 486caf5827..0000000000 --- a/src/msw/brush.cpp +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: wxBrush -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/brush.h" -#endif - -#include "wx/msw/private.h" - -#include "assert.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif - -wxBrushRefData::wxBrushRefData(void) -{ - m_style = wxSOLID; - m_hBrush = 0; -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; - m_hBrush = 0; -} - -wxBrushRefData::~wxBrushRefData(void) -{ - if ( m_hBrush ) - ::DeleteObject((HBRUSH) m_hBrush); -} - -// Brushes -wxBrush::wxBrush(void) -{ - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::~wxBrush() -{ - if (wxTheBrushList) - wxTheBrushList->RemoveBrush(this); -} - -wxBrush::wxBrush(const wxColour& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - M_BRUSHDATA->m_hBrush = 0; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_stipple = stipple; - M_BRUSHDATA->m_hBrush = 0; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -bool wxBrush::RealizeResource(void) -{ - if (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush == 0)) - { - if (M_BRUSHDATA->m_style==wxTRANSPARENT) - { - M_BRUSHDATA->m_hBrush = (WXHBRUSH) ::GetStockObject(NULL_BRUSH); - return TRUE; - } - COLORREF ms_colour = 0 ; - - ms_colour = M_BRUSHDATA->m_colour.GetPixel() ; - - switch (M_BRUSHDATA->m_style) - { -/**** - // Don't reset cbrush, wxTRANSPARENT is handled by wxBrush::SelectBrush() - // this could save (many) time if frequently switching from - // wxSOLID to wxTRANSPARENT, because Create... is not always called!! - // - // NB August 95: now create and select a Null brush instead. - // This could be optimized as above. - case wxTRANSPARENT: - M_BRUSHDATA->m_hBrush = NULL; // Must always select a suitable background brush - // - could choose white always for a quick solution - break; -***/ - case wxBDIAGONAL_HATCH: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_BDIAGONAL,ms_colour) ; - break ; - case wxCROSSDIAG_HATCH: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_DIAGCROSS,ms_colour) ; - break ; - case wxFDIAGONAL_HATCH: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_FDIAGONAL,ms_colour) ; - break ; - case wxCROSS_HATCH: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_CROSS,ms_colour) ; - break ; - case wxHORIZONTAL_HATCH: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_HORIZONTAL,ms_colour) ; - break ; - case wxVERTICAL_HATCH: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateHatchBrush(HS_VERTICAL,ms_colour) ; - break ; - case wxSTIPPLE: - if (M_BRUSHDATA->m_stipple.Ok()) - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreatePatternBrush((HBITMAP) M_BRUSHDATA->m_stipple.GetHBITMAP()) ; - else - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateSolidBrush(ms_colour) ; - break ; - case wxSOLID: - default: - M_BRUSHDATA->m_hBrush = (WXHBRUSH) CreateSolidBrush(ms_colour) ; - break; - } -#ifdef WXDEBUG_CREATE - if (M_BRUSHDATA->m_hBrush==NULL) wxError("Cannot create brush","Internal error") ; -#endif - return TRUE; - } - else - return FALSE; -} - -WXHANDLE wxBrush::GetResourceHandle(void) -{ - return (WXHANDLE) M_BRUSHDATA->m_hBrush; -} - -bool wxBrush::FreeResource(bool WXUNUSED(force)) -{ - if (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush != 0)) - { - DeleteObject((HBRUSH) M_BRUSHDATA->m_hBrush); - M_BRUSHDATA->m_hBrush = 0; - return TRUE; - } - else return FALSE; -} - -bool wxBrush::IsFree() const -{ - return (M_BRUSHDATA && (M_BRUSHDATA->m_hBrush == 0)); -} - -void wxBrush::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - - -void wxBrush::SetColour(const wxColour& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_BRUSHDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxBrush::SetStyle(int Style) -{ - Unshare(); - - M_BRUSHDATA->m_style = Style; - - RealizeResource(); -} - -void wxBrush::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_BRUSHDATA->m_stipple = Stipple; - - RealizeResource(); -} - - diff --git a/src/msw/button.cpp b/src/msw/button.cpp deleted file mode 100644 index 80e8318503..0000000000 --- a/src/msw/button.cpp +++ /dev/null @@ -1,200 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: wxButton -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/button.h" -#include "wx/brush.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -#define BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cy) (11*EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)/10) - -// Buttons - -bool wxButton::MSWCommand(WXUINT param, WXWORD id) -{ - if (param == BN_CLICKED || (param == 1)) // 1 for accelerator - { - wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, id); - event.SetEventObject(this); - ProcessCommand(event); - return TRUE; - } - else return FALSE; -} - -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - parent->AddChild((wxButton *)this); - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - m_windowStyle = (long&)style; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - m_hWnd = (WXHWND)CreateWindowEx - ( - MakeExtendedStyle(m_windowStyle), - "BUTTON", - label, - WS_VISIBLE | WS_TABSTOP | WS_CHILD, - 0, 0, 0, 0, - GetWinHwnd(parent), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - - // Subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - SetFont(parent->GetFont()); - - SetSize(x, y, width, height); - - return TRUE; -} - -void wxButton::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - int actualWidth = width; - int actualHeight = height; - int ww, hh; - GetSize(&ww, &hh); - - int current_width; - int cyf; - char buf[300]; - GetWindowText((HWND) GetHWND(), buf, 300); - GetTextExtent(buf, ¤t_width, &cyf,NULL,NULL, - & this->GetFont()); - - // If we're prepared to use the existing width, then... - if (width == -1 && ((sizeFlags & wxSIZE_AUTO_WIDTH) != wxSIZE_AUTO_WIDTH)) - actualWidth = ww; - else if (width == -1) - { - int cx; - int cy; - wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); - actualWidth = (int)(current_width + 3*cx) ; - } - - // If we're prepared to use the existing height, then... - if (height == -1 && ((sizeFlags & wxSIZE_AUTO_HEIGHT) != wxSIZE_AUTO_HEIGHT)) - actualHeight = hh; - else if (height == -1) - { - actualHeight = BUTTON_HEIGHT_FROM_CHAR_HEIGHT(cyf); - } - - MoveWindow((HWND) GetHWND(), x1, y1, actualWidth, actualHeight, TRUE); -} - -void wxButton::SetDefault(void) -{ - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - parent->SetDefaultItem(this); - - if (parent) - { - SendMessage((HWND)parent->GetHWND(), DM_SETDEFID, m_windowId, 0L); - } - - SendMessage((HWND)GetHWND(), BM_SETSTYLE, BS_DEFPUSHBUTTON, 1L); -} - -wxString wxButton::GetLabel(void) const -{ - GetWindowText((HWND) GetHWND(), wxBuffer, 300); - return wxString(wxBuffer); -} - -void wxButton::SetLabel(const wxString& label) -{ - SetWindowText((HWND) GetHWND(), (const char *) label); -} - -WXHBRUSH wxButton::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -/* - WXHBRUSH hBrush = (WXHBRUSH) MSWDefWindowProc(message, wParam, lParam); -// ::SetTextColor((HDC) pDC, GetSysColor(COLOR_BTNTEXT)); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), - GetForegroundColour().Blue())); - - return hBrush; -*/ - // This doesn't in fact seem to make any difference at all - buttons are always - // the same colour. - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. - // NOT NOW; CHANGED. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -void wxButton::Command (wxCommandEvent & event) -{ - ProcessCommand (event); -} - - diff --git a/src/msw/caret.cpp b/src/msw/caret.cpp deleted file mode 100644 index 17ef55cb21..0000000000 --- a/src/msw/caret.cpp +++ /dev/null @@ -1,192 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/caret.cpp -// Purpose: MSW implementation of wxCaret -// Author: Vadim Zeitlin -// Modified by: -// Created: 23.05.99 -// RCS-ID: $Id$ -// Copyright: (c) wxWindows team -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "caret.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/window.h" - #include "wx/log.h" -#endif // WX_PRECOMP - -#include "wx/caret.h" - -#include "wx/msw/private.h" - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// blink time -// --------------------------------------------------------------------------- - -//static -int wxCaretBase::GetBlinkTime() -{ - int blinkTime = ::GetCaretBlinkTime(); - if ( !blinkTime ) - { - wxLogLastError("GetCaretBlinkTime"); - } - - return blinkTime; -} - -//static -void wxCaretBase::SetBlinkTime(int milliseconds) -{ -#ifdef __WIN16__ - ::SetCaretBlinkTime(milliseconds) ; -#else - if ( !::SetCaretBlinkTime(milliseconds) ) - { - wxLogLastError("SetCaretBlinkTime"); - } -#endif -} - -// --------------------------------------------------------------------------- -// creating/destroying the caret -// --------------------------------------------------------------------------- - -bool wxCaret::MSWCreateCaret() -{ - wxASSERT_MSG( GetWindow(), "caret without window cannot be created" ); - wxASSERT_MSG( IsOk(), "caret of zero size cannot be created" ); - - if ( !m_hasCaret ) - { -#ifdef __WIN16__ - ::CreateCaret(GetWinHwnd(GetWindow()), 0, m_width, m_height) ; - m_hasCaret = TRUE; -#else - if ( !::CreateCaret(GetWinHwnd(GetWindow()), 0, m_width, m_height) ) - { - wxLogLastError("CreateCaret"); - } - else - { - m_hasCaret = TRUE; - } -#endif - } - - return m_hasCaret; -} - -void wxCaret::OnSetFocus() -{ - if ( m_countVisible > 0 ) - { - if ( MSWCreateCaret() ) - { - // the caret was recreated but it doesn't remember its position and - // it's not shown - - DoMove(); - DoShow(); - } - } - //else: caret is invisible, don't waste time creating it -} - -void wxCaret::OnKillFocus() -{ - if ( m_hasCaret ) - { - m_hasCaret = FALSE; - -#ifdef __WIN16__ - ::DestroyCaret() ; -#else - if ( !::DestroyCaret() ) - { - wxLogLastError("DestroyCaret"); - } -#endif - } -} - -// --------------------------------------------------------------------------- -// showing/hiding the caret -// --------------------------------------------------------------------------- - -void wxCaret::DoShow() -{ - wxASSERT_MSG( GetWindow(), "caret without window cannot be shown" ); - wxASSERT_MSG( IsOk(), "caret of zero size cannot be shown" ); - - if ( !m_hasCaret ) - { - (void)MSWCreateCaret(); - } - -#ifdef __WIN16__ - ::ShowCaret(GetWinHwnd(GetWindow())) ; -#else - if ( !::ShowCaret(GetWinHwnd(GetWindow())) ) - { - wxLogLastError("ShowCaret"); - } -#endif -} - -void wxCaret::DoHide() -{ - if ( m_hasCaret ) - { -#ifdef __WIN16__ - ::HideCaret(GetWinHwnd(GetWindow())) ; -#else - if ( !::HideCaret(GetWinHwnd(GetWindow())) ) - { - wxLogLastError("HideCaret"); - } -#endif - } -} - -// --------------------------------------------------------------------------- -// moving the caret -// --------------------------------------------------------------------------- - -void wxCaret::DoMove() -{ - if ( m_hasCaret ) - { -#ifdef __WIN16__ - ::SetCaretPos(m_x, m_y) ; -#else - if ( !::SetCaretPos(m_x, m_y) ) - { - wxLogLastError("SetCaretPos"); - } -#endif - } - //else: we don't have caret right now, nothing to do (this does happen) -} diff --git a/src/msw/checkbox.cpp b/src/msw/checkbox.cpp deleted file mode 100644 index 436706ad41..0000000000 --- a/src/msw/checkbox.cpp +++ /dev/null @@ -1,315 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: wxCheckBox -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/checkbox.h" -#include "wx/brush.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -bool wxCheckBox::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id)) -{ - wxCommandEvent event(wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId); - event.SetInt(GetValue()); - event.SetEventObject(this); - ProcessCommand(event); - return TRUE; -} - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - m_windowStyle = style; - - wxString Label = label; - if (Label == "") - Label = " "; // Apparently needed or checkbox won't show - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msStyle = BS_AUTOCHECKBOX | WS_TABSTOP | WS_CHILD | WS_VISIBLE; - if ( style & wxALIGN_RIGHT ) - msStyle |= BS_LEFTTEXT; - - // We perhaps have different concepts of 3D here - a 3D border, - // versus a 3D button. - // So we only wish to give a border if this is specified - // in the style. - bool want3D; - WXDWORD exStyle = Determine3DEffects(0, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. -/* - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - msStyle |= WS_BORDER; -*/ - - m_hWnd = (WXHWND)CreateWindowEx(exStyle, "BUTTON", Label, - msStyle, - 0, 0, 0, 0, - (HWND)parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl((HWND)m_hWnd); - m_useCtl3D = TRUE; - } -#endif - - // Subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - SetFont(parent->GetFont()); - - SetSize(x, y, width, height); - - return TRUE; -} - -void wxCheckBox::SetLabel(const wxString& label) -{ - SetWindowText((HWND)GetHWND(), label); -} - -void wxCheckBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - int current_width, cyf; - HWND button = (HWND) GetHWND(); - - int nLen = GetWindowTextLength(button); - wxString str; - GetWindowText(button, str.GetWriteBuf(nLen), nLen); - str.UngetWriteBuf(); - - if ( !str.IsEmpty() ) - { - GetTextExtent(str, ¤t_width, &cyf, NULL, NULL, & this->GetFont()); - if (w1 < 0) - w1 = (int)(current_width + RADIO_SIZE); - if (h1 < 0) - { - h1 = (int)(cyf); - if (h1 < RADIO_SIZE) - h1 = RADIO_SIZE; - } - } - else - { - if (w1 < 0) - w1 = RADIO_SIZE; - if (h1 < 0) - h1 = RADIO_SIZE; - } - - MoveWindow(button, x1, y1, w1, h1, TRUE); -} - -void wxCheckBox::SetValue(bool val) -{ - SendMessage((HWND) GetHWND(), BM_SETCHECK, val, 0); -} - -#ifndef BST_CHECKED -#define BST_CHECKED 0x0001 -#endif - -bool wxCheckBox::GetValue() const -{ -#ifdef __WIN32__ - return (SendMessage((HWND) GetHWND(), BM_GETCHECK, 0, 0) == BST_CHECKED); -#else - return ((0x003 & SendMessage((HWND) GetHWND(), BM_GETCHECK, 0, 0)) == 0x003); -#endif -} - -WXHBRUSH wxCheckBox::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - - return (WXHBRUSH) hbrush; - } -#endif - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -void wxCheckBox::Command (wxCommandEvent & event) -{ - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - checkWidth = -1 ; - checkHeight = -1 ; - long msStyle = CHECK_FLAGS; - - HWND wx_button = CreateWindowEx(MakeExtendedStyle(m_windowStyle), CHECK_CLASS, "toggle", - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - -#if wxUSE_CTL3D - if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS)) - { - Ctl3dSubclassCtl(wx_button); - m_useCtl3D = TRUE; - } -#endif - - m_hWnd = (WXHWND)wx_button; - - // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND)wx_button); - -// SetFont(parent->GetFont()); - - SetSize(x, y, width, height); - - ShowWindow(wx_button, SW_SHOW); - return TRUE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap& bitmap) -{ -} - -void wxBitmapCheckBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - HWND button = (HWND) GetHWND(); -/* - if (w1<0) - w1 = checkWidth + FB_MARGIN ; - if (h1<0) - h1 = checkHeight + FB_MARGIN ; -*/ - MoveWindow(button, x1, y1, w1, h1, TRUE); -} - -void wxBitmapCheckBox::SetValue(bool val) -{ - SendMessage((HWND) GetHWND(), BM_SETCHECK, val, 0); -} - -bool wxBitmapCheckBox::GetValue() const -{ - return ((0x003 & SendMessage((HWND) GetHWND(), BM_GETCHECK, 0, 0)) == 0x003); -} - - diff --git a/src/msw/checklst.cpp b/src/msw/checklst.cpp deleted file mode 100644 index d0b312fb84..0000000000 --- a/src/msw/checklst.cpp +++ /dev/null @@ -1,405 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/checklst.cpp -// Purpose: implementation of wxCheckListBox class -// Author: Vadim Zeitlin -// Modified by: -// Created: 16.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if wxUSE_OWNER_DRAWN - -#include "wx/object.h" -#include "wx/colour.h" -#include "wx/font.h" -#include "wx/bitmap.h" -#include "wx/window.h" -#include "wx/listbox.h" -#include "wx/ownerdrw.h" -#include "wx/settings.h" -#include "wx/dcmemory.h" -#include "wx/msw/checklst.h" -#include "wx/log.h" - -#include -#include - -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -// get item (converted to right type) -#define GetItem(n) ((wxCheckListBoxItem *)(GetItem(n))) - -// ============================================================================ -// implementation -// ============================================================================ - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox) -#endif - -// ---------------------------------------------------------------------------- -// declaration and implementation of wxCheckListBoxItem class -// ---------------------------------------------------------------------------- - -class wxCheckListBoxItem : public wxOwnerDrawn -{ -friend class wxCheckListBox; -public: - // ctor - wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex); - - // drawing functions - virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat); - - // simple accessors - bool IsChecked() const { return m_bChecked; } - void Check(bool bCheck); - void Toggle() { Check(!IsChecked()); } - -private: - bool m_bChecked; - wxCheckListBox *m_pParent; - size_t m_nIndex; -}; - -wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex) - : wxOwnerDrawn("", TRUE) // checkable -{ - m_bChecked = FALSE; - m_pParent = pParent; - m_nIndex = nIndex; - - // we don't initialize m_nCheckHeight/Width vars because it's - // done in OnMeasure while they are used only in OnDraw and we - // know that there will always be OnMeasure before OnDraw - - // fix appearance - SetMarginWidth(GetDefaultMarginWidth()); -} - -/* - * JACS - I've got the owner-draw stuff partially working with WIN16, - * with a really horrible-looking cross for wxCheckListBox instead of a - * check - could use a bitmap check-mark instead, defined in wx.rc. - * Also there's a refresh problem whereby it doesn't always draw the - * check until you click to the right of it, which is OK for WIN32. - */ - -bool wxCheckListBoxItem::OnDrawItem(wxDC& dc, const wxRect& rc, - wxODAction act, wxODStatus stat) -{ - if ( IsChecked() ) - stat = (wxOwnerDrawn::wxODStatus)(stat | wxOwnerDrawn::wxODChecked); - - if ( wxOwnerDrawn::OnDrawItem(dc, rc, act, stat) ) { - // ## using native API for performance and precision - size_t nCheckWidth = GetDefaultMarginWidth(), - nCheckHeight = m_pParent->GetItemHeight(); - - int x = rc.GetX(), - y = rc.GetY(); - - HDC hdc = (HDC)dc.GetHDC(); - - // create pens - HPEN hpenBack = CreatePen(PS_SOLID, 0, GetSysColor(COLOR_WINDOW)), - hpenGray = CreatePen(PS_SOLID, 0, RGB(128, 128, 128)), - hpenPrev = (HPEN)SelectObject(hdc, hpenBack); - - // we erase the 1-pixel border - Rectangle(hdc, x, y, x + nCheckWidth, y + nCheckHeight); - - // shift check mark 1 pixel to the right (it looks better like this) - x++; - - if ( IsChecked() ) { - // first create a monochrome bitmap in a memory DC - HDC hdcMem = CreateCompatibleDC(hdc); - HBITMAP hbmpCheck = CreateBitmap(nCheckWidth, nCheckHeight, 1, 1, 0); - HBITMAP hbmpOld = (HBITMAP)SelectObject(hdcMem, hbmpCheck); - - // then draw a check mark into it - RECT rect = { 0, 0, nCheckWidth, nCheckHeight }; - -#ifdef __WIN32__ -#ifndef __SC__ - DrawFrameControl(hdcMem, &rect, DFC_MENU, DFCS_MENUCHECK); -#endif -#else - // In WIN16, draw a cross - HPEN blackPen = CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); - HPEN whiteBrush = GetStockObject(WHITE_BRUSH); - HPEN hPenOld = ::SelectObject(hdcMem, blackPen); - HPEN hBrushOld = ::SelectObject(hdcMem, whiteBrush); - ::SetROP2(hdcMem, R2_COPYPEN); - Rectangle(hdcMem, 0, 0, nCheckWidth, nCheckHeight); - MoveTo(hdcMem, 0, 0); - LineTo(hdcMem, nCheckWidth, nCheckHeight); - MoveTo(hdcMem, nCheckWidth, 0); - LineTo(hdcMem, 0, nCheckHeight); - ::SelectObject(hdcMem, hPenOld); - ::SelectObject(hdcMem, hBrushOld); - ::DeleteObject(blackPen); -#endif - - // finally copy it to screen DC and clean up - BitBlt(hdc, x, y, nCheckWidth - 1, nCheckHeight, - hdcMem, 0, 0, SRCCOPY); - - SelectObject(hdcMem, hbmpOld); - DeleteObject(hbmpCheck); - DeleteDC(hdcMem); - } - - // now we draw the smaller rectangle - y++; - nCheckWidth -= 2; - nCheckHeight -= 2; - - // draw hollow gray rectangle - (void)SelectObject(hdc, hpenGray); - HBRUSH hbrPrev = (HBRUSH)SelectObject(hdc, GetStockObject(NULL_BRUSH)); - Rectangle(hdc, x, y, x + nCheckWidth, y + nCheckHeight); - - // clean up - (void)SelectObject(hdc, hpenPrev); - (void)SelectObject(hdc, hbrPrev); - - DeleteObject(hpenBack); - DeleteObject(hpenGray); - - /* - dc.DrawRectangle(x, y, nCheckWidth, nCheckHeight); - - if ( IsChecked() ) { - dc.DrawLine(x, y, x + nCheckWidth, y + nCheckHeight); - dc.DrawLine(x, y + nCheckHeight, x + nCheckWidth, y); - } - */ - - return TRUE; - } - - return FALSE; -} - -// change the state of the item and redraw it -void wxCheckListBoxItem::Check(bool check) -{ - m_bChecked = check; - - // index may be chanegd because new items were added/deleted - if ( m_pParent->GetItemIndex(this) != (int)m_nIndex ) - { - // update it - int index = m_pParent->GetItemIndex(this); - - wxASSERT_MSG( index != wxNOT_FOUND, "what does this item do here?" ); - - m_nIndex = (size_t)index; - } - - HWND hwndListbox = (HWND)m_pParent->GetHWND(); - - #ifdef __WIN32__ - RECT rcUpdate; - - if ( ::SendMessage(hwndListbox, LB_GETITEMRECT, - m_nIndex, (LPARAM)&rcUpdate) == LB_ERR ) - { - wxLogDebug("LB_GETITEMRECT failed"); - } - #else // Win16 - // FIXME this doesn't work if the listbox is scrolled! - size_t nHeight = m_pParent->GetItemHeight(); - size_t y = m_nIndex * nHeight; - RECT rcUpdate = { 0, y, GetDefaultMarginWidth(), y + nHeight}; - #endif // Win32/16 - - InvalidateRect(hwndListbox, &rcUpdate, FALSE); - - wxCommandEvent event(wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, m_pParent->GetId()); - event.SetInt(m_nIndex); - event.SetEventObject(m_pParent); - m_pParent->ProcessCommand(event); -} - -// ---------------------------------------------------------------------------- -// implementation of wxCheckListBox class -// ---------------------------------------------------------------------------- - -// define event table -// ------------------ -BEGIN_EVENT_TABLE(wxCheckListBox, wxListBox) - EVT_CHAR(wxCheckListBox::OnChar) - EVT_LEFT_DOWN(wxCheckListBox::OnLeftClick) -END_EVENT_TABLE() - -// control creation -// ---------------- - -// def ctor: use Create() to really create the control -wxCheckListBox::wxCheckListBox() : wxListBox() -{ -} - -// ctor which creates the associated control -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - int nStrings, const wxString choices[], - long style, const wxValidator& val, - const wxString& name) - : wxListBox() -{ - Create(parent, id, pos, size, nStrings, choices, - style | wxLB_OWNERDRAW, val, name); -} - -void wxCheckListBox::Delete(int N) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::Delete" ); - - wxListBox::Delete(N); - - // free memory - delete m_aItems[N]; - - m_aItems.Remove(N); -} - -void wxCheckListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - wxCHECK_RET( pos >= 0 && pos <= m_noItems, - "invalid index in wxCheckListBox::InsertItems" ); - - wxListBox::InsertItems(nItems, items, pos); - - int i; - for ( i = 0; i < nItems; i++ ) { - wxOwnerDrawn *pNewItem = CreateItem((size_t)(pos + i)); - pNewItem->SetName(items[i]); - m_aItems.Insert(pNewItem, (size_t)(pos + i)); - ListBox_SetItemData((HWND)GetHWND(), i + pos, pNewItem); - } -} - - -bool wxCheckListBox::SetFont( const wxFont &font ) -{ - size_t i; - for (i=0; i < m_aItems.GetCount(); i++) - m_aItems[i]->SetFont(font); - wxListBox::SetFont(font); - return TRUE; -} - -// create/retrieve item -// -------------------- - -// create a check list box item -wxOwnerDrawn *wxCheckListBox::CreateItem(size_t nIndex) -{ - wxCheckListBoxItem *pItem = new wxCheckListBoxItem(this, nIndex); - return pItem; -} - -// return item size -// ---------------- -bool wxCheckListBox::MSWOnMeasure(WXMEASUREITEMSTRUCT *item) -{ - if ( wxListBox::MSWOnMeasure(item) ) { - MEASUREITEMSTRUCT *pStruct = (MEASUREITEMSTRUCT *)item; - - // save item height - m_nItemHeight = pStruct->itemHeight; - - // add place for the check mark - pStruct->itemWidth += wxOwnerDrawn::GetDefaultMarginWidth(); - - return TRUE; - } - - return FALSE; -} - -// check items -// ----------- - -bool wxCheckListBox::IsChecked(size_t uiIndex) const -{ - return GetItem(uiIndex)->IsChecked(); -} - -void wxCheckListBox::Check(size_t uiIndex, bool bCheck) -{ - GetItem(uiIndex)->Check(bCheck); -} - -// process events -// -------------- - -void wxCheckListBox::OnChar(wxKeyEvent& event) -{ - if ( event.KeyCode() == WXK_SPACE ) - GetItem(GetSelection())->Toggle(); - else - event.Skip(); -} - -void wxCheckListBox::OnLeftClick(wxMouseEvent& event) -{ - // clicking on the item selects it, clicking on the checkmark toggles - if ( event.GetX() <= wxOwnerDrawn::GetDefaultMarginWidth() ) { - #ifdef __WIN32__ - size_t nItem = (size_t)::SendMessage - ( - (HWND)GetHWND(), - LB_ITEMFROMPOINT, - 0, - MAKELPARAM(event.GetX(), event.GetY()) - ); - #else // Win16 - // FIXME this doesn't work when the listbox is scrolled! - size_t nItem = ((size_t)event.GetY()) / m_nItemHeight; - #endif // Win32/16 - - if ( nItem < (size_t)m_noItems ) - GetItem(nItem)->Toggle(); - //else: it's not an error, just click outside of client zone - } - else { - // implement default behaviour: clicking on the item selects it - event.Skip(); - } -} - -#endif - diff --git a/src/msw/choice.cpp b/src/msw/choice.cpp deleted file mode 100644 index cf0aec140e..0000000000 --- a/src/msw/choice.cpp +++ /dev/null @@ -1,352 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/choice.h" -#include "wx/utils.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -bool wxChoice::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) -{ - if (param == CBN_SELCHANGE) - { - wxCommandEvent event(wxEVT_COMMAND_CHOICE_SELECTED, m_windowId); - event.SetInt(GetSelection()); - event.SetEventObject(this); - event.SetString(GetStringSelection()); - ProcessCommand(event); - - return TRUE; - } - else - return FALSE; -} - -bool wxChoice::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - m_noStrings = 0; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msStyle = WS_CHILD | CBS_DROPDOWNLIST | WS_HSCROLL | WS_VSCROLL - | WS_TABSTOP | WS_VISIBLE; - if (m_windowStyle & wxCB_SORT) - msStyle |= CBS_SORT; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - msStyle |= WS_BORDER; - - m_hWnd = (WXHWND)::CreateWindowEx(exStyle, "COMBOBOX", NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create combobox" ); - -/* -#if wxUSE_CTL3D - if (want3D) - { - m_useCtl3D = TRUE; - Ctl3dSubclassCtl(wx_combo); // Does CTL3D affect the combobox? I think not. - } -#endif -*/ - - // Subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - SetFont(parent->GetFont()); - - int i; - for (i = 0; i < n; i++) - { - Append(choices[i]); - } - SetSelection(n); - - SetSize(x, y, width, height); - - return TRUE; -} - -void wxChoice::Append(const wxString& item) -{ - SendMessage((HWND) GetHWND(), CB_ADDSTRING, 0, (LONG)(const char *)item); - - m_noStrings ++; -} - -void wxChoice::Delete(int n) -{ - m_noStrings = (int)SendMessage((HWND) GetHWND(), CB_DELETESTRING, n, 0); -} - -void wxChoice::Clear(void) -{ - SendMessage((HWND) GetHWND(), CB_RESETCONTENT, 0, 0); - - m_noStrings = 0; -} - - -int wxChoice::GetSelection(void) const -{ - return (int)SendMessage((HWND) GetHWND(), CB_GETCURSEL, 0, 0); -} - -void wxChoice::SetSelection(int n) -{ - SendMessage((HWND) GetHWND(), CB_SETCURSEL, n, 0); -} - -int wxChoice::FindString(const wxString& s) const -{ -#if defined(__WATCOMC__) && defined(__WIN386__) - // For some reason, Watcom in WIN386 mode crashes in the CB_FINDSTRINGEXACT message. - // Do it the long way instead. - char buf[512]; - for (int i = 0; i < Number(); i++) - { - int len = (int)SendMessage((HWND) GetHWND(), CB_GETLBTEXT, i, (LPARAM)(LPSTR)buf); - buf[len] = 0; - if (strcmp(buf, (const char *)s) == 0) - return i; - } - return -1; -#else - int pos = (int)SendMessage((HWND) GetHWND(), CB_FINDSTRINGEXACT, (WPARAM)-1, (LPARAM)(LPSTR)(const char *)s); - if (pos == LB_ERR) - return -1; - else - return pos; -#endif -} - -wxString wxChoice::GetString(int n) const -{ - int len = (int)SendMessage((HWND) GetHWND(), CB_GETLBTEXT, n, (long)wxBuffer); - wxBuffer[len] = 0; - return wxString(wxBuffer); -} - -void wxChoice::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - - int cx; // button font dimensions - int cy; - wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); - - int control_width, control_height; - - // Ignore height parameter because height doesn't - // mean 'initially displayed' height, it refers to the - // drop-down menu as well. The wxWindows interpretation - // is different; also, getting the size returns the - // _displayed_ size (NOT the drop down menu size) - // so setting-getting-setting size would not work. - h1 = -1; - - // Deal with default size (using -1 values) - if (width <= 0) - { - // Find the longest string - if (m_noStrings == 0) - { - control_width = 100; - } - else - { - int len, ht; - int longest = 0; - int i; - for (i = 0; i < m_noStrings; i++) - { - wxString str(GetString(i)); - GetTextExtent(str, &len, &ht, NULL, NULL, & this->GetFont()); - if ( len > longest) - longest = len; - } - - control_width = longest + cx*5; - } - } - else - { - // If non-default width... - control_width = w1; - } - - - // Choice drop-down list depends on number of items (limited to 10) - if (h1 <= 0) - { - if (m_noStrings == 0) - h1 = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)*10; - else - h1 = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy)*(wxMin(10, m_noStrings) + 1); - } - - control_height = h1; - - // Calculations may have made text size too small - if (control_height <= 0) - control_height = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy); - - if (control_width <= 0) - control_width = 100; - - MoveWindow((HWND)GetHWND(), x1, y1, - control_width, control_height, TRUE); -} - -WXHBRUSH wxChoice::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - return 0; -} - -long wxChoice::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - switch (nMsg) - { -/* - case WM_GETDLGCODE: - { - if (GetWindowStyleFlag() & wxPROCESS_ENTER) - return DLGC_WANTALLKEYS; - break; - } -*/ -/* - case WM_CHAR: // Always an ASCII character - { - if (wParam == VK_RETURN) - { - wxCommandEvent event(wxEVENT_TYPE_TEXT_ENTER_COMMAND); - event.commandString = ((wxTextCtrl *)item)->GetValue(); - event.eventObject = item; - item->ProcessCommand(event); - return FALSE; - } - break; - } -*/ - case WM_LBUTTONUP: - { - int x = (int)LOWORD(lParam); - int y = (int)HIWORD(lParam); - - // Ok, this is truly weird, but if a panel with a wxChoice loses the - // focus, then you get a *fake* WM_LBUTTONUP message - // with x = 65535 and y = 65535. - // Filter out this nonsense. - if (x == 65535 && y == 65535) - return 0; - break; - } - } - - return wxWindow::MSWWindowProc(nMsg, wParam, lParam); -} - -wxString wxChoice::GetStringSelection (void) const -{ - int sel = GetSelection (); - if (sel > -1) - return wxString(this->GetString (sel)); - else - return wxString(""); -} - -bool wxChoice::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxChoice::Command(wxCommandEvent & event) -{ - SetSelection (event.GetInt()); - ProcessCommand (event); -} - - - diff --git a/src/msw/clipbrd.cpp b/src/msw/clipbrd.cpp deleted file mode 100644 index 36aa9b6b05..0000000000 --- a/src/msw/clipbrd.cpp +++ /dev/null @@ -1,623 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: Clipboard functionality -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "clipbrd.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/setup.h" -#endif - -#if wxUSE_CLIPBOARD - -#ifndef WX_PRECOMP - #include "wx/object.h" - #include "wx/event.h" - #include "wx/app.h" - #include "wx/frame.h" - #include "wx/bitmap.h" - #include "wx/utils.h" - #include "wx/intl.h" -#endif - -#if wxUSE_METAFILE - #include "wx/metafile.h" -#endif - -#include "wx/log.h" -#include "wx/clipbrd.h" - -#include -#include - -#include "wx/msw/private.h" -#include "wx/msw/dib.h" - -// wxDataObject is tied to OLE/drag and drop implementation, -// therefore so is wxClipboard :-( -#if wxUSE_DRAG_AND_DROP - #include "wx/dataobj.h" - - static bool wxSetClipboardData(wxDataObject *data); -#endif - -#ifdef __WIN16__ - #define memcpy hmemcpy -#endif - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// old-style clipboard functions using Windows API -// --------------------------------------------------------------------------- - -static bool gs_wxClipboardIsOpen = FALSE; - -bool wxOpenClipboard() -{ - wxCHECK_MSG( !gs_wxClipboardIsOpen, TRUE, "clipboard already opened." ); - - wxWindow *win = wxTheApp->GetTopWindow(); - if ( win ) - { - gs_wxClipboardIsOpen = ::OpenClipboard((HWND)win->GetHWND()) != 0; - - if ( !gs_wxClipboardIsOpen ) - wxLogSysError(_("Failed to open the clipboard.")); - - return gs_wxClipboardIsOpen; - } - else - { - wxLogDebug("Can not open clipboard without a main window,"); - - return FALSE; - } -} - -bool wxCloseClipboard() -{ - wxCHECK_MSG( gs_wxClipboardIsOpen, FALSE, "clipboard is not opened" ); - - gs_wxClipboardIsOpen = FALSE; - - if ( ::CloseClipboard() == 0 ) - { - wxLogSysError(_("Failed to close the clipboard.")); - - return FALSE; - } - - return TRUE; -} - -bool wxEmptyClipboard() -{ - if ( ::EmptyClipboard() == 0 ) - { - wxLogSysError(_("Failed to empty the clipboard.")); - - return FALSE; - } - - return TRUE; -} - -bool wxIsClipboardOpened() -{ - return gs_wxClipboardIsOpen; -} - -bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat) -{ - return ::IsClipboardFormatAvailable(dataFormat) != 0; -} - -#if wxUSE_DRAG_AND_DROP -static bool wxSetClipboardData(wxDataObject *data) -{ - size_t size = data->GetDataSize(); - HANDLE hGlobal = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, size); - if ( !hGlobal ) - { - wxLogSysError(_("Failed to allocate %dKb of memory for clipboard " - "transfer."), size / 1024); - - return FALSE; - } - - LPVOID lpGlobalMemory = ::GlobalLock(hGlobal); - - data->GetDataHere(lpGlobalMemory); - - GlobalUnlock(hGlobal); - - wxDataFormat format = data->GetPreferredFormat(); - if ( !::SetClipboardData(format, hGlobal) ) - { - wxLogSysError(_("Failed to set clipboard data in format %s"), - wxDataObject::GetFormatName(format)); - - return FALSE; - } - - return TRUE; -} -#endif // wxUSE_DRAG_AND_DROP - -bool wxSetClipboardData(wxDataFormat dataFormat, - const void *data, - int width, int height) -{ - HANDLE handle = 0; // return value of SetClipboardData - - switch (dataFormat) - { - case wxDF_BITMAP: - { - wxBitmap *bitmap = (wxBitmap *)data; - - HDC hdcMem = CreateCompatibleDC((HDC) NULL); - HDC hdcSrc = CreateCompatibleDC((HDC) NULL); - HBITMAP old = (HBITMAP) - ::SelectObject(hdcSrc, (HBITMAP)bitmap->GetHBITMAP()); - HBITMAP hBitmap = CreateCompatibleBitmap(hdcSrc, - bitmap->GetWidth(), - bitmap->GetHeight()); - if (!hBitmap) - { - SelectObject(hdcSrc, old); - DeleteDC(hdcMem); - DeleteDC(hdcSrc); - return FALSE; - } - - HBITMAP old1 = (HBITMAP) SelectObject(hdcMem, hBitmap); - BitBlt(hdcMem, 0, 0, bitmap->GetWidth(), bitmap->GetHeight(), - hdcSrc, 0, 0, SRCCOPY); - - // Select new bitmap out of memory DC - SelectObject(hdcMem, old1); - - // Set the data - handle = ::SetClipboardData(CF_BITMAP, hBitmap); - - // Clean up - SelectObject(hdcSrc, old); - DeleteDC(hdcSrc); - DeleteDC(hdcMem); - break; - } - - case wxDF_DIB: - { -#if wxUSE_IMAGE_LOADING_IN_MSW - wxBitmap *bitmap = (wxBitmap *)data; - HBITMAP hBitmap = (HBITMAP)bitmap->GetHBITMAP(); - // NULL palette means to use the system one - HANDLE hDIB = BitmapToDIB(hBitmap, (HPALETTE)NULL); - handle = SetClipboardData(CF_DIB, hDIB); -#endif - break; - } - -#if wxUSE_METAFILE - case wxDF_METAFILE: - { - wxMetafile *wxMF = (wxMetafile *)data; - HANDLE data = GlobalAlloc(GHND, sizeof(METAFILEPICT) + 1); - METAFILEPICT *mf = (METAFILEPICT *)GlobalLock(data); - - mf->mm = wxMF->GetWindowsMappingMode(); - mf->xExt = width; - mf->yExt = height; - mf->hMF = (HMETAFILE) wxMF->GetHMETAFILE(); - GlobalUnlock(data); - wxMF->SetHMETAFILE((WXHANDLE) NULL); - - handle = SetClipboardData(CF_METAFILEPICT, data); - break; - } -#endif - case CF_SYLK: - case CF_DIF: - case CF_TIFF: - case CF_PALETTE: - default: - { - wxLogError(_("Unsupported clipboard format.")); - return FALSE; - } - - case wxDF_OEMTEXT: - dataFormat = wxDF_TEXT; - // fall through - - case wxDF_TEXT: - { - char *s = (char *)data; - - width = strlen(s) + 1; - height = 1; - DWORD l = (width * height); - HANDLE hGlobalMemory = GlobalAlloc(GHND, l); - if ( hGlobalMemory ) - { - LPSTR lpGlobalMemory = (LPSTR)GlobalLock(hGlobalMemory); - - memcpy(lpGlobalMemory, s, l); - - GlobalUnlock(hGlobalMemory); - } - - handle = SetClipboardData(dataFormat, hGlobalMemory); - break; - } - } - - if ( handle == 0 ) - { - wxLogSysError(_("Failed to set clipboard data.")); - - return FALSE; - } - - return TRUE; -} - -void *wxGetClipboardData(wxDataFormat dataFormat, long *len) -{ - void *retval = NULL; - - switch ( dataFormat ) - { - case wxDF_BITMAP: - { - BITMAP bm; - HBITMAP hBitmap = (HBITMAP) GetClipboardData(CF_BITMAP); - if (!hBitmap) - break; - - HDC hdcMem = CreateCompatibleDC((HDC) NULL); - HDC hdcSrc = CreateCompatibleDC((HDC) NULL); - - HBITMAP old = (HBITMAP) ::SelectObject(hdcSrc, hBitmap); - GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&bm); - - HBITMAP hNewBitmap = CreateBitmapIndirect(&bm); - - if (!hNewBitmap) - { - SelectObject(hdcSrc, old); - DeleteDC(hdcMem); - DeleteDC(hdcSrc); - break; - } - - HBITMAP old1 = (HBITMAP) SelectObject(hdcMem, hNewBitmap); - BitBlt(hdcMem, 0, 0, bm.bmWidth, bm.bmHeight, - hdcSrc, 0, 0, SRCCOPY); - - // Select new bitmap out of memory DC - SelectObject(hdcMem, old1); - - // Clean up - SelectObject(hdcSrc, old); - DeleteDC(hdcSrc); - DeleteDC(hdcMem); - - // Create and return a new wxBitmap - wxBitmap *wxBM = new wxBitmap; - wxBM->SetHBITMAP((WXHBITMAP) hNewBitmap); - wxBM->SetWidth(bm.bmWidth); - wxBM->SetHeight(bm.bmHeight); - wxBM->SetDepth(bm.bmPlanes); - wxBM->SetOk(TRUE); - retval = wxBM; - break; - } - - case wxDF_METAFILE: - case CF_SYLK: - case CF_DIF: - case CF_TIFF: - case CF_PALETTE: - case wxDF_DIB: - { - wxLogError(_("Unsupported clipboard format.")); - return FALSE; - } - - case wxDF_OEMTEXT: - dataFormat = wxDF_TEXT; - // fall through - - case wxDF_TEXT: - { - HANDLE hGlobalMemory = ::GetClipboardData(dataFormat); - if (!hGlobalMemory) - break; - - DWORD hsize = ::GlobalSize(hGlobalMemory); - if (len) - *len = hsize; - - char *s = new char[hsize]; - if (!s) - break; - - LPSTR lpGlobalMemory = (LPSTR)::GlobalLock(hGlobalMemory); - - memcpy(s, lpGlobalMemory, hsize); - - ::GlobalUnlock(hGlobalMemory); - - retval = s; - break; - } - - default: - { - HANDLE hGlobalMemory = ::GetClipboardData(dataFormat); - if ( !hGlobalMemory ) - break; - - DWORD size = ::GlobalSize(hGlobalMemory); - if ( len ) - *len = size; - - void *buf = malloc(size); - if ( !buf ) - break; - - LPSTR lpGlobalMemory = (LPSTR)::GlobalLock(hGlobalMemory); - - memcpy(buf, lpGlobalMemory, size); - - ::GlobalUnlock(hGlobalMemory); - - retval = buf; - break; - } - } - - if ( !retval ) - { - wxLogSysError(_("Failed to retrieve data from the clipboard.")); - } - - return retval; -} - -wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat) -{ - return ::EnumClipboardFormats(dataFormat); -} - -int wxRegisterClipboardFormat(char *formatName) -{ - return ::RegisterClipboardFormat(formatName); -} - -bool wxGetClipboardFormatName(wxDataFormat dataFormat, - char *formatName, - int maxCount) -{ - return ::GetClipboardFormatName((int)dataFormat, formatName, maxCount) > 0; -} - -// --------------------------------------------------------------------------- -// wxClipboard -// --------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) - -wxClipboard* wxTheClipboard = (wxClipboard *)NULL; - -wxClipboard::wxClipboard() -{ -} - -wxClipboard::~wxClipboard() -{ - Clear(); -} - -void wxClipboard::Clear() -{ -} - -bool wxClipboard::Open() -{ - return wxOpenClipboard(); -} - -bool wxClipboard::SetData( wxDataObject *data ) -{ - (void)wxEmptyClipboard(); - - if ( data ) - return AddData(data); - else - return TRUE; -} - -bool wxClipboard::AddData( wxDataObject *data ) -{ - wxCHECK_MSG( data, FALSE, "data is invalid" ); - -#if wxUSE_DRAG_AND_DROP - wxCHECK_MSG( wxIsClipboardOpened(), FALSE, "clipboard not open" ); - - wxDataFormat format = data->GetFormat(); - - switch ( format ) - { - case wxDF_TEXT: - case wxDF_OEMTEXT: - { - wxTextDataObject* textDataObject = (wxTextDataObject*) data; - wxString str(textDataObject->GetText()); - return wxSetClipboardData(format, str.c_str()); - } - - case wxDF_BITMAP: - case wxDF_DIB: - { - wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject*) data; - wxBitmap bitmap(bitmapDataObject->GetBitmap()); - return wxSetClipboardData(data->GetFormat(), &bitmap); - } - -#if wxUSE_METAFILE - case wxDF_METAFILE: - { - wxMetafileDataObject* metaFileDataObject = - (wxMetafileDataObject*) data; - wxMetafile metaFile = metaFileDataObject->GetMetafile(); - return wxSetClipboardData(wxDF_METAFILE, &metaFile, - metaFileDataObject->GetWidth(), - metaFileDataObject->GetHeight()); - } -#endif // wxUSE_METAFILE - - default: - return wxSetClipboardData(data); - } -#else // !wxUSE_DRAG_AND_DROP - return FALSE; -#endif // wxUSE_DRAG_AND_DROP/!wxUSE_DRAG_AND_DROP -} - -void wxClipboard::Close() -{ - wxCloseClipboard(); -} - -bool wxClipboard::IsSupported( wxDataFormat format ) -{ - return wxIsClipboardFormatAvailable(format); -} - -bool wxClipboard::GetData( wxDataObject *data ) -{ - wxCHECK_MSG( wxIsClipboardOpened(), FALSE, "clipboard not open" ); - -#if wxUSE_DRAG_AND_DROP - wxDataFormat format = data->GetFormat(); - switch ( format ) - { - case wxDF_TEXT: - case wxDF_OEMTEXT: - { - wxTextDataObject* textDataObject = (wxTextDataObject*) data; - char* s = (char*) wxGetClipboardData(format); - if ( s ) - { - textDataObject->SetText(s); - delete[] s; - return TRUE; - } - else - return FALSE; - } - - case wxDF_BITMAP: - case wxDF_DIB: - { - wxBitmapDataObject* bitmapDataObject = (wxBitmapDataObject *)data; - wxBitmap* bitmap = (wxBitmap *)wxGetClipboardData(data->GetFormat()); - if (bitmap) - { - bitmapDataObject->SetBitmap(* bitmap); - delete bitmap; - return TRUE; - } - else - return FALSE; - } -#if wxUSE_METAFILE - case wxDF_METAFILE: - { - wxMetafileDataObject* metaFileDataObject = (wxMetafileDataObject *)data; - wxMetafile* metaFile = (wxMetafile *)wxGetClipboardData(wxDF_METAFILE); - if (metaFile) - { - metaFileDataObject->SetMetafile(*metaFile); - delete metaFile; - return TRUE; - } - else - return FALSE; - } -#endif - default: - { - long len; - void *buf = wxGetClipboardData(format, &len); - if ( buf ) - { - // FIXME this is for testing only!! - ((wxPrivateDataObject *)data)->SetData(buf, len); - free(buf); - - return TRUE; - } - } - - return FALSE; - } -#else - return FALSE; -#endif -} - -//----------------------------------------------------------------------------- -// wxClipboardModule -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxClipboardModule,wxModule) - -bool wxClipboardModule::OnInit() -{ - wxTheClipboard = new wxClipboard(); - - return TRUE; -} - -void wxClipboardModule::OnExit() -{ - if (wxTheClipboard) delete wxTheClipboard; - wxTheClipboard = (wxClipboard*) NULL; -} - -#else - #error "Please turn wxUSE_CLIPBOARD on to compile this file." -#endif // wxUSE_CLIPBOARD - diff --git a/src/msw/colordlg.cpp b/src/msw/colordlg.cpp deleted file mode 100644 index c79f438df9..0000000000 --- a/src/msw/colordlg.cpp +++ /dev/null @@ -1,126 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.cpp -// Purpose: wxColourDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colordlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/defs.h" -#include "wx/bitmap.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/colour.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#endif - -#include - -#if !defined(__WIN32__) || defined(__SALFORDC__) || defined(__WXWINE__) -#include -#endif - -#include "wx/msw/private.h" -#include "wx/colordlg.h" -#include "wx/cmndata.h" - -#include -#include -#include - -#define wxDIALOG_DEFAULT_X 300 -#define wxDIALOG_DEFAULT_Y 300 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) -#endif - -/* - * wxColourDialog - */ - -wxColourDialog::wxColourDialog(void) -{ - m_dialogParent = NULL; -} - -wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) -{ - Create(parent, data); -} - -bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) -{ - m_dialogParent = parent; - - if (data) - m_colourData = *data; - return TRUE; -} - -int wxColourDialog::ShowModal(void) -{ - CHOOSECOLOR chooseColorStruct; - COLORREF custColours[16]; - memset(&chooseColorStruct, 0, sizeof(CHOOSECOLOR)); - - int i; - for (i = 0; i < 16; i++) - custColours[i] = RGB(m_colourData.custColours[i].Red(), m_colourData.custColours[i].Green(), m_colourData.custColours[i].Blue()); - - chooseColorStruct.lStructSize = sizeof(CHOOSECOLOR); - chooseColorStruct.hwndOwner = (HWND) (m_dialogParent ? (HWND) m_dialogParent->GetHWND() : (HWND) NULL); - chooseColorStruct.rgbResult = RGB(m_colourData.dataColour.Red(), m_colourData.dataColour.Green(), m_colourData.dataColour.Blue()); - chooseColorStruct.lpCustColors = custColours; - - chooseColorStruct.Flags = CC_RGBINIT; - - if (!m_colourData.GetChooseFull()) - chooseColorStruct.Flags |= CC_PREVENTFULLOPEN; - - // Do the modal dialog - bool success = (ChooseColor(&(chooseColorStruct)) != 0); - - // Try to highlight the correct window (the parent) - HWND hWndParent = 0; - if (GetParent()) - { - hWndParent = (HWND) GetParent()->GetHWND(); - if (hWndParent) - ::BringWindowToTop(hWndParent); - } - - - // Restore values - for (i = 0; i < 16; i++) - { - m_colourData.custColours[i].Set(GetRValue(custColours[i]), GetGValue(custColours[i]), - GetBValue(custColours[i])); - } - - m_colourData.dataColour.Set(GetRValue(chooseColorStruct.rgbResult), GetGValue(chooseColorStruct.rgbResult), - GetBValue(chooseColorStruct.rgbResult)); - - return success ? wxID_OK : wxID_CANCEL; -} - diff --git a/src/msw/colour.cpp b/src/msw/colour.cpp deleted file mode 100644 index ed446cbaba..0000000000 --- a/src/msw/colour.cpp +++ /dev/null @@ -1,111 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: wxColour class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/gdicmn.h" - -#include -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -#endif - -// Colour - -wxColour::wxColour () -{ - m_isInit = FALSE; - m_pixel = 0; - m_red = m_blue = m_green = 0; -} - -wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; - m_pixel = PALETTERGB (m_red, m_green, m_blue); -} - -wxColour::wxColour (const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; - m_pixel = col.m_pixel; -} - -wxColour& wxColour::operator =(const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; - m_pixel = col.m_pixel; - return *this; -} - -void wxColour::InitFromName(const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } - m_pixel = PALETTERGB (m_red, m_green, m_blue); -} - -wxColour::~wxColour() -{ -} - -void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; - m_pixel = PALETTERGB (m_red, m_green, m_blue); -} - -// Obsolete -#if WXWIN_COMPATIBILITY -void wxColour::Get (unsigned char *r, unsigned char *g, unsigned char *b) const -{ - *r = m_red; - *g = m_green; - *b = m_blue; -} -#endif - diff --git a/src/msw/combobox.cpp b/src/msw/combobox.cpp deleted file mode 100644 index 7f2f67ad41..0000000000 --- a/src/msw/combobox.cpp +++ /dev/null @@ -1,328 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: wxComboBox class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#endif - -#if wxUSE_COMBOBOX - -#include "wx/combobox.h" -#include "wx/clipbrd.h" -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -bool wxComboBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) -{ - if (param == CBN_SELCHANGE) - { - wxCommandEvent event(wxEVT_COMMAND_COMBOBOX_SELECTED, m_windowId); - event.SetInt(GetSelection()); - event.SetEventObject(this); - event.SetString(GetStringSelection()); - ProcessCommand(event); - - return TRUE; - } - else if (param == CBN_EDITCHANGE) - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, m_windowId); - event.SetString(GetValue()); - event.SetEventObject(this); - ProcessCommand(event); - - return TRUE; - } - else - return FALSE; -} - -bool wxComboBox::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - m_noStrings = 0; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msStyle = WS_CHILD | WS_HSCROLL | WS_VSCROLL | - WS_TABSTOP | WS_VISIBLE | CBS_NOINTEGRALHEIGHT; - - if (m_windowStyle & wxCB_READONLY) - msStyle |= CBS_DROPDOWNLIST; - else if (m_windowStyle & wxCB_SIMPLE) - msStyle |= CBS_SIMPLE; // A list (shown always) and edit control - else - msStyle |= CBS_DROPDOWN; - - if (m_windowStyle & wxCB_SORT) - msStyle |= CBS_SORT; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - msStyle |= WS_BORDER; - - m_hWnd = (WXHWND)::CreateWindowEx(exStyle, "COMBOBOX", NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create combobox" ); - -/* -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl(wx_combo); - m_useCtl3D = TRUE; - } -#endif -*/ - - // Subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - SetFont(parent->GetFont()); - int i; - for (i = 0; i < n; i++) - { - Append(choices[i]); - } - - SetSelection(i); - - SetSize(x, y, width, height); - if ( !value.IsEmpty() ) - { - SetValue(value); - } - - return TRUE; -} - -wxString wxComboBox::GetValue() const -{ - return wxGetWindowText(GetHWND()); -} - -void wxComboBox::SetValue(const wxString& value) -{ - // If newlines are denoted by just 10, must stick 13 in front. - int singletons = 0; - int len = value.Length(); - int i; - for (i = 0; i < len; i ++) - { - if ((i > 0) && (value[i] == 10) && (value[i-1] != 13)) - singletons ++; - } - if (singletons > 0) - { - char *tmp = new char[len + singletons + 1]; - int j = 0; - for (i = 0; i < len; i ++) - { - if ((i > 0) && (value[i] == 10) && (value[i-1] != 13)) - { - tmp[j] = 13; - j ++; - } - tmp[j] = value[i]; - j ++; - } - tmp[j] = 0; - SetWindowText((HWND) GetHWND(), tmp); - delete[] tmp; - } - else - SetWindowText((HWND) GetHWND(), (const char *)value); -} - -// Clipboard operations -void wxComboBox::Copy() -{ - HWND hWnd = (HWND) GetHWND(); - SendMessage(hWnd, WM_COPY, 0, 0L); -} - -void wxComboBox::Cut() -{ - HWND hWnd = (HWND) GetHWND(); - SendMessage(hWnd, WM_CUT, 0, 0L); -} - -void wxComboBox::Paste() -{ - HWND hWnd = (HWND) GetHWND(); - SendMessage(hWnd, WM_PASTE, 0, 0L); -} - -void wxComboBox::SetEditable(bool editable) -{ - // Can't implement in MSW? -// HWND hWnd = (HWND) GetHWND(); -// SendMessage(hWnd, EM_SETREADONLY, (WPARAM)!editable, (LPARAM)0L); -} - -void wxComboBox::SetInsertionPoint(long pos) -{ -/* - HWND hWnd = (HWND) GetHWND(); -#ifdef __WIN32__ - SendMessage(hWnd, EM_SETSEL, pos, pos); - SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); -#else - SendMessage(hWnd, EM_SETSEL, 0, MAKELPARAM(pos, pos)); -#endif - char *nothing = ""; - SendMessage(hWnd, EM_REPLACESEL, 0, (LPARAM)nothing); -*/ -} - -void wxComboBox::SetInsertionPointEnd() -{ -/* - long pos = GetLastPosition(); - SetInsertionPoint(pos); -*/ -} - -long wxComboBox::GetInsertionPoint() const -{ -/* - DWORD Pos=(DWORD)SendMessage((HWND) GetHWND(), EM_GETSEL, 0, 0L); - return Pos&0xFFFF; -*/ - return 0; -} - -long wxComboBox::GetLastPosition() const -{ -/* - HWND hWnd = (HWND) GetHWND(); - - // Will always return a number > 0 (according to docs) - int noLines = (int)SendMessage(hWnd, EM_GETLINECOUNT, (WPARAM)0, (LPARAM)0L); - - // This gets the char index for the _beginning_ of the last line - int charIndex = (int)SendMessage(hWnd, EM_LINEINDEX, (WPARAM)(noLines-1), (LPARAM)0L); - - // Get number of characters in the last line. We'll add this to the character - // index for the last line, 1st position. - int lineLength = (int)SendMessage(hWnd, EM_LINELENGTH, (WPARAM)charIndex, (LPARAM)0L); - - return (long)(charIndex + lineLength); -*/ - return 0; -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ -#if wxUSE_CLIPBOARD - HWND hWnd = (HWND) GetHWND(); - long fromChar = from; - long toChar = to; - - // Set selection and remove it -#ifdef __WIN32__ - SendMessage(hWnd, CB_SETEDITSEL, fromChar, toChar); -#else - SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)); -#endif - SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0); - - // Now replace with 'value', by pasting. - wxSetClipboardData(wxDF_TEXT, (wxObject *)(const char *)value, 0, 0); - - // Paste into edit control - SendMessage(hWnd, WM_PASTE, (WPARAM)0, (LPARAM)0L); -#endif -} - -void wxComboBox::Remove(long from, long to) -{ - HWND hWnd = (HWND) GetHWND(); - long fromChar = from; - long toChar = to; - - // Cut all selected text -#ifdef __WIN32__ - SendMessage(hWnd, CB_SETEDITSEL, fromChar, toChar); -#else - SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)); -#endif - SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0); -} - -void wxComboBox::SetSelection(long from, long to) -{ - HWND hWnd = (HWND) GetHWND(); - long fromChar = from; - long toChar = to; - // if from and to are both -1, it means - // (in wxWindows) that all text should be selected. - // This translates into Windows convention - if ((from == -1) && (to == -1)) - { - fromChar = 0; - toChar = -1; - } - -#ifdef __WIN32__ - SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)fromChar, (LPARAM)toChar); -// SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); -#else - // WPARAM is 0: selection is scrolled into view - SendMessage(hWnd, CB_SETEDITSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)); -#endif -} - -#endif - // wxUSE_COMBOBOX - diff --git a/src/msw/control.cpp b/src/msw/control.cpp deleted file mode 100644 index 6788e0ceb7..0000000000 --- a/src/msw/control.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: wxControl class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/event.h" -#include "wx/app.h" -#include "wx/dcclient.h" -#endif - -#include "wx/control.h" - -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -BEGIN_EVENT_TABLE(wxControl, wxWindow) - EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground) -END_EVENT_TABLE() -#endif - -// Item members -wxControl::wxControl() -{ - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - -#if WXWIN_COMPATIBILITY - m_callback = 0; -#endif // WXWIN_COMPATIBILITY -} - -wxControl::~wxControl() -{ - m_isBeingDeleted = TRUE; - - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem(NULL); - } -} - -bool wxControl::ProcessCommand(wxCommandEvent& event) -{ -#if WXWIN_COMPATIBILITY - if ( m_callback ) - { - (void)(*m_callback)(this, event); - - return TRUE; - } - else -#endif // WXWIN_COMPATIBILITY - - return GetEventHandler()->ProcessEvent(event); -} - -#ifdef __WIN95__ -bool wxControl::MSWOnNotify(int idCtrl, - WXLPARAM lParam, - WXLPARAM* result) -{ - wxCommandEvent event(wxEVT_NULL, m_windowId); - wxEventType eventType = wxEVT_NULL; - NMHDR *hdr1 = (NMHDR*) lParam; - switch ( hdr1->code ) - { - case NM_CLICK: - eventType = wxEVT_COMMAND_LEFT_CLICK; - break; - - case NM_DBLCLK: - eventType = wxEVT_COMMAND_LEFT_DCLICK; - break; - - case NM_RCLICK: - eventType = wxEVT_COMMAND_RIGHT_CLICK; - break; - - case NM_RDBLCLK: - eventType = wxEVT_COMMAND_RIGHT_DCLICK; - break; - - case NM_SETFOCUS: - eventType = wxEVT_COMMAND_SET_FOCUS; - break; - - case NM_KILLFOCUS: - eventType = wxEVT_COMMAND_KILL_FOCUS; - break; - - case NM_RETURN: - eventType = wxEVT_COMMAND_ENTER; - break; - - default: - return wxWindow::MSWOnNotify(idCtrl, lParam, result); - } - - event.SetEventType(eventType); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} -#endif // Win95 - -void wxControl::OnEraseBackground(wxEraseEvent& event) -{ - // In general, you don't want to erase the background of a control, - // or you'll get a flicker. - // TODO: move this 'null' function into each control that - // might flicker. - - RECT rect; - ::GetClientRect((HWND) GetHWND(), &rect); - - HBRUSH hBrush = ::CreateSolidBrush(PALETTERGB(GetBackgroundColour().Red(), - GetBackgroundColour().Green(), - GetBackgroundColour().Blue())); - int mode = ::SetMapMode((HDC) event.GetDC()->GetHDC(), MM_TEXT); - - ::FillRect ((HDC) event.GetDC()->GetHDC(), &rect, hBrush); - ::DeleteObject(hBrush); - ::SetMapMode((HDC) event.GetDC()->GetHDC(), mode); -} - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -// Call this repeatedly for several wnds to find the overall size -// of the widget. -// Call it initially with -1 for all values in rect. -// Keep calling for other widgets, and rect will be modified -// to calculate largest bounding rectangle. -void wxFindMaxSize(WXHWND wnd, RECT *rect) -{ - int left = rect->left; - int right = rect->right; - int top = rect->top; - int bottom = rect->bottom; - - GetWindowRect((HWND) wnd, rect); - - if (left < 0) - return; - - if (left < rect->left) - rect->left = left; - - if (right > rect->right) - rect->right = right; - - if (top < rect->top) - rect->top = top; - - if (bottom > rect->bottom) - rect->bottom = bottom; -} - diff --git a/src/msw/ctl3d/borland/makefile.b32 b/src/msw/ctl3d/borland/makefile.b32 deleted file mode 100644 index 1783689b82..0000000000 --- a/src/msw/ctl3d/borland/makefile.b32 +++ /dev/null @@ -1,25 +0,0 @@ -# -# File: makefile.b32 -# Author: Andre Beltman -# Created: 1995 -# Updated: -# Copyright: (c) 1995, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Imports 32bit ctl3d library for Windows 95 -# and Borland C++ 4.x - -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib - -LIBTARGET= $(WXLIB)\ctl3d32.lib - -all: $(LIBTARGET) - -$(LIBTARGET): - erase $(LIBTARGET) - implib $(LIBTARGET) ..\ctl3d32.dll - -clean: - -erase $(LIBTARGET) diff --git a/src/msw/ctl3d/borland/makefile.bcc b/src/msw/ctl3d/borland/makefile.bcc deleted file mode 100644 index 6a0bcdb158..0000000000 --- a/src/msw/ctl3d/borland/makefile.bcc +++ /dev/null @@ -1,25 +0,0 @@ -# -# File: makefile.b32 -# Author: Andre Beltman -# Created: 1995 -# Updated: -# Copyright: (c) 1995, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Imports ctl3d library -# and Borland C++ 4.x - -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib - -LIBTARGET= $(WXLIB)\ctl3dv2.lib - -all: $(LIBTARGET) - -$(LIBTARGET): - erase $(LIBTARGET) - implib $(LIBTARGET) ..\ctl3dv2.dll - -clean: - -erase $(LIBTARGET) diff --git a/src/msw/ctl3d/ctl3d.dll b/src/msw/ctl3d/ctl3d.dll deleted file mode 100644 index 8e1b74c3a8a1d96c0803d4f427bd2e67d81ddf72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 255 zcmeZ`l4N9JU|?VY;{X2{75$ z>!tvXoOGDih;HJKX=7SLL1KbwOsYiLy2@?Rv}geVr9T9lRuI|_l8$V!HPwLI=lkv) zUt7vF@$WA2-Fx5n{eIu~_xs*`>)w6L!x;18XPS&1!jrC~xPSSrfaTgnzpZ5l=f1l5 zkgN06#XY&LyJ9=@JGSIEJrsLj)AsEth^4-5Pk}NjP;4Jn=uzAZnj8BFIGZ;kSe&a zj0;5g-@nKj+7QOhGxjPWyw2D@3D0T9HqNEhD=!x_e1N^kSoF%JuP|SsZQiYce#I)> zAfM3Hmb=0>29Z|WziSuGTe@&lXms^efO%HrAKavEVoV}~KvtoA5>LmKgi}{oXzcHV zSH_QQum(TJl_Y*!Ekt3P*Rklwuib%!VUqARTX@2j=K&-g?!wP;C28OMuKWXl2^&vi zK>SE2$CVU%Y~Hp5h&?s503pdYy)>>~$*Ux;uKj=Xzgd8{%if`~?unO2p(TRzPbcSnkAZ@&5nr3m#%V&m6y#Yj_;!KS$@kH!t);H-N_9l7T@h3-E zUnXA8jt~L~?7N+kcUbj`}8`H)-OA+YYT}U)TdZsOds8f&uu-I_BEU6(9ej1SB zPFcz!P5M%1Bq=bUdQ4G2#rh|hD-KzOwtX9lVQ(g{6q;EKr<`IbmN_Cl$ zKY|6H;eIawt#<|V?~RBhGjbja*@1)tc%LUH(kdVgf)O!><6Yce zBr_uo;HGeYCs0$ljdiR~^_r1$017@%b%{RQErJF{G>&{`n&2k$9y!K)I>e&(_zF@G;YT}@W3e&>)V%cM?Aua60aF5YkqKf;SCr>REkQBrH^Q!o{iVy zxOd?50wDRR96gM~misH{Lf>?5G0H#R>E$8b5m@#bPfDp}#~?RU=z=j{#4Z&A=odf? zFQJnXdfvkWLp|Wj`(-(mF(Ze8%BP{~QiM*3dw92(e@800_}V}zsIQF5RThNw(DM%O{EnFWzJ8m( z2~P`r-Q>c;rG=WWaA}e52c8yG%(IgwV*dxX+k+oj68NuFib1JOXekcC4vZqNq6I03oHD2_A(&lN{hoAY*PM8{Z^JQ( z6%(X4(<^fXT&Vb(>*6@|Mw+Mimrosf4qwKX{S zJeG?`!^u@*p?@kf(uox%7rF%%)Mr&t9D0LK0FOtAn7n-SJ$GsEkI5EX*yrfG?$Y5B z@vP1VOJv3oA~|~AePXac1}D`kpwhv@{#lArVi4n!|1sQ6A&adK1%3wLW^d+cf{r?h2HaDDyP*bSYWsDGNv+B-R0R5v`TYs@Vbo3#Vs1ifT4-c9B+lpq*qgyEX(#Gb0igpv_ zX%io+Xq? z8~Z-7mD1@vk0ROYp#sF)V(}9Prgzk7X=;t(pZkYlSuPxYS~xtB zg#IHcWF0v60={19g8Unyw{0?N6!lu# z&+7czj)f7NkzUI(S1cfk!*pJu`w3GTe+2&lnF1UyJIg7})8=VN8pbhu9+>>(z`F&O z3=LeOdvIt1uqE^bgD+T$W@|YOk@x8vFI@an@iW(r<>az+W`v!Bv1hPJluX|Pt`zr> zK6W$SO4J}$V(Ofmd*nvd4Urlk5yNvSJ(Y|RM8cvOYeY>^P1Qturho+?Q8h?idMaZ~ zA-=9g;ePTdwcTTIFxDGj9qRF;JXEUViWe^fT#z&R&jj&9w7?#McNzX*&@3`{j55^=m=E>^ATR&p;K#cq)h_C#rzSLl~(R|W?^ zfeL0s0`Qj@74#N0l-m!)oP?W-rQKLM;S(KcRa@%RL@RJ))vo)Ig%rY3`h-R5nYZ=A77?|9NhdDtQtf=v`e zFj@<5CUd21N~qB0#0uM3j`gU+JQc0_VZ#rWP-6hqc7leVQv=<+`7PuHH417i&d}hm zXGDQ6n%;-q@iOXHVjEBokP*zYi49OxkAT71L;)wC?ys5$2c8u_b`c5={sFIlxt-XR zH_PB*p2;3)0h=r}+RxJ3daMzYK2izj69moKQ2L;h+h|RS37WC&0s4Xz9GrwZ1i^dc z7sV!^t|`}1A)pxusC5bsK2st184+kU0e#&NY_7+?>MiEkr|GTH_!>Tys4k-)x}w07 zv=;&S9W^jVI?>ngM2@UiGn}3(dElNTTh7ZuUx(}WQ*O3Rwx?=hirs##L7M+c+FNQkLqeCQIv4v?hC!iqYF4v3i zf%!>8|C?!MiwUwk)9S46eY`nU|X+HT~d<nc+60149Bs55r}Kn+!@ocglbr%EaNsz`_Pp#O%VL$l$=E$l$>+$2CB9j_WCw pYXSkX*96|N8nG5~8L_f3Ff}lOO><+5XE5M7{v5;+fQl_;0|0hWEt>!U diff --git a/src/msw/ctl3d/msvc/ctl3d.h b/src/msw/ctl3d/msvc/ctl3d.h deleted file mode 100644 index de7e67aa50..0000000000 --- a/src/msw/ctl3d/msvc/ctl3d.h +++ /dev/null @@ -1,61 +0,0 @@ -/*----------------------------------------------------------------------- -| CTL3D.DLL -| -| Adds 3d effects to Windows controls -| -| See ctl3d.doc for info -| ------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" { -#endif - - -BOOL WINAPI Ctl3dSubclassDlg(HWND, WORD); -BOOL WINAPI Ctl3dSubclassDlgEx(HWND, DWORD); -WORD WINAPI Ctl3dGetVer(void); -BOOL WINAPI Ctl3dEnabled(void); -HBRUSH WINAPI Ctl3dCtlColor(HDC, LONG); // ARCHAIC, use Ctl3dCtlColorEx -HBRUSH WINAPI Ctl3dCtlColorEx(UINT wm, WPARAM wParam, LPARAM lParam); -BOOL WINAPI Ctl3dColorChange(void); -BOOL WINAPI Ctl3dSubclassCtl(HWND); -LONG WINAPI Ctl3dDlgFramePaint(HWND, UINT, WPARAM, LPARAM); - -BOOL WINAPI Ctl3dAutoSubclass(HANDLE); - -BOOL WINAPI Ctl3dRegister(HANDLE); -BOOL WINAPI Ctl3dUnregister(HANDLE); - -//begin DBCS: far east short cut key support -VOID WINAPI Ctl3dWinIniChange(void); -//end DBCS - - -/* Ctl3dSubclassDlg3d flags */ -#define CTL3D_BUTTONS 0x0001 -#define CTL3D_LISTBOXES 0x0002 -#define CTL3D_EDITS 0x0004 -#define CTL3D_COMBOS 0x0008 -#define CTL3D_STATICTEXTS 0x0010 -#define CTL3D_STATICFRAMES 0x0020 - -#define CTL3D_NODLGWINDOW 0x00010000 -#define CTL3D_ALL 0xffff - -#define WM_DLGBORDER (WM_USER+3567) -/* WM_DLGBORDER *(int FAR *)lParam return codes */ -#define CTL3D_NOBORDER 0 -#define CTL3D_BORDER 1 - -#define WM_DLGSUBCLASS (WM_USER+3568) -/* WM_DLGSUBCLASS *(int FAR *)lParam return codes */ -#define CTL3D_NOSUBCLASS 0 -#define CTL3D_SUBCLASS 1 - -/* Resource ID for 3dcheck.bmp (for .lib version of ctl3d) */ -#define CTL3D_3DCHECK 26567 - - -#ifdef __cplusplus -} -#endif diff --git a/src/msw/ctl3d/msvc/ctl3d.lib b/src/msw/ctl3d/msvc/ctl3d.lib deleted file mode 100644 index 3fe7168589c1e16df4725f4413b2b29f5b3e2ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 338 zcmeys#lXPEz`(=+1r4kW%;By93>|_D3=0?;L2Op%k{sid7t9P@a8)qX3=9oi4BTLO z_tcWG)FOrsNw7X-F^GOf2JHHU7zDujgG-Z=a}tY-U2@VHI^@8HU`Rkr0=fd>k_L4B zK*O->2TDNnGo$F|XW#ckOo_hDhkobf~*q~1`T`+JYfBQq_hbf65Vy#_zosMo=bfLrz3wm zEx5M}()`o^o7*{jm5DZp)@bnr1B{B^2|zdIicU28VGamN&%3S=n&5?6srf~=omtNk2+Kd=0|RF?ew z)AC)PJ2;Z$X%)`(#Q8gcph6|_w>@j%+9L`N#hw!3E@a(Aas86K^=x@#J6*pDfWr%m z`{(@E#_M~d&eR`XCi%4p-)7>A_s9LWM~+c|MgJ)kgsm(gVE=zH6f~B_V;LyxsB)q>-|H8x1_z%45R$w zfAXd=VUa(hgTXfr+hc!&YVzIH-1xWy6rM>3%MmcDV8rK-?@e?9(&uj>!c~I{+gJ5- z5pvSnFBIzf6CISgro{8>+NNt>T|T^eeo*1%f0d+nnO~FY(m$7aJGCZu$8tPF;kgW8 zMF^y3mh{_G03K$^+^8kZONGGO`-6x5^d0Zsb8tcResl!1ebBz&lUe`YH=d3>yq@U! E0n3p@*Z=?k diff --git a/src/msw/ctl3d/readme.txt b/src/msw/ctl3d/readme.txt deleted file mode 100644 index 58c656ba7d..0000000000 --- a/src/msw/ctl3d/readme.txt +++ /dev/null @@ -1,31 +0,0 @@ - -CTL3D ------ - -CTL3D gives 3D controls to 16-bit Windows 3.1 applications. -Its use in wxWindows is controlled by the CTL3D symbol -in include/base/wx_setup.h. - -If using a 16-bit compiler, copy ctl3dv2.lib to your compiler -library directory, and remember to distribute ctl3dv2.dll -with your applications. The DLL should be copied to -windows/system and DELETED from the application installation -directory. - -If using Watcom C++ in 386 mode, things are slightly more complex: you need -to link with Patrick Halke's ctl3d32.obj which provides an interface -from 32-bits to the 16-bit CTL3DV2 library. Link your application -with ctl3d32.obj file instead of ctl3dv2.lib, distributing -ctl3dv2.dll as above. - -ctl3d.dll ; Version 1 of the CTL3D library DLL: obsolete -ctl3dv2.dll ; Version 2 of the CTL3D library DLL -readme.txt ; This file - -msvc/ctl3d.h ; Header file for either version of CTL3D -msvc/ctl3d.lib ; Import library for 16-bit compilers -watcom/import32.zip ; Import libraries for Watcom WIN32 compilation -wat386/ ; Source & objects for Watcom 386 object file to - ; interface 16<->32 bit modes -borland/ ; Makefiles for making import libraries for Borland - diff --git a/src/msw/ctl3d/wat32/import32.zip b/src/msw/ctl3d/wat32/import32.zip deleted file mode 100644 index ca983075203df5c36a6ee46516b5bbe0f9466d26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 567 zcmV-70?7SPO9KQH000080PlQ3AN)@cRG9++03Znf015yA08&LkL`_95R9IB)Rl#oD zHW0lF&_B$r3ZlqsZ;c}E#p${&HZWqKUUVwR!gD8=pMO zvp<4`t8#S;&NIlfcTGeOgxMLPt+ofKbfhISg0rxp_5Kn46N0E*A7_5BE<)%#PLM)g z6rk-~L+ffRU<-}5!Vu(v<1jLGR0v)lRLryJg**nRMuHzL!tZ?uXbcR>K`UzFp5OxP zwf*f}n6b>W9YI-?7y|t#@(_J5qjq-EtQAMDODxIH@r^c^XN{*70eAQJFrY`MdeXY) z3OK>Ur_gliG<@HoSE38^cAm|MwUd2|HVP(%=v+ZKk?NMNH?{qa$w(U=%U5i~PHBP& zL>o{#+VE&l1O(SGEWJGUzMypqh`J@xK}Q8o=)+b)HexDS{MnbtTLAF(yVC&ALwi z7%M7ARW-exZ5fo7Dp4D4kLdGk=|Ivxby@+s#BvTyiEg21Wh}HKh^{kQCb>(1Z3Cn0 zQ?7Z|TaUq+CuCV0veZh}j}NqB1dFs09bm1w3Kz{G;>W2aLY@gJov*b$P^BW-BRz_U FFSWXz1{DAR diff --git a/src/msw/ctl3d/wat386/ctl3d.h b/src/msw/ctl3d/wat386/ctl3d.h deleted file mode 100644 index de7e67aa50..0000000000 --- a/src/msw/ctl3d/wat386/ctl3d.h +++ /dev/null @@ -1,61 +0,0 @@ -/*----------------------------------------------------------------------- -| CTL3D.DLL -| -| Adds 3d effects to Windows controls -| -| See ctl3d.doc for info -| ------------------------------------------------------------------------*/ -#ifdef __cplusplus -extern "C" { -#endif - - -BOOL WINAPI Ctl3dSubclassDlg(HWND, WORD); -BOOL WINAPI Ctl3dSubclassDlgEx(HWND, DWORD); -WORD WINAPI Ctl3dGetVer(void); -BOOL WINAPI Ctl3dEnabled(void); -HBRUSH WINAPI Ctl3dCtlColor(HDC, LONG); // ARCHAIC, use Ctl3dCtlColorEx -HBRUSH WINAPI Ctl3dCtlColorEx(UINT wm, WPARAM wParam, LPARAM lParam); -BOOL WINAPI Ctl3dColorChange(void); -BOOL WINAPI Ctl3dSubclassCtl(HWND); -LONG WINAPI Ctl3dDlgFramePaint(HWND, UINT, WPARAM, LPARAM); - -BOOL WINAPI Ctl3dAutoSubclass(HANDLE); - -BOOL WINAPI Ctl3dRegister(HANDLE); -BOOL WINAPI Ctl3dUnregister(HANDLE); - -//begin DBCS: far east short cut key support -VOID WINAPI Ctl3dWinIniChange(void); -//end DBCS - - -/* Ctl3dSubclassDlg3d flags */ -#define CTL3D_BUTTONS 0x0001 -#define CTL3D_LISTBOXES 0x0002 -#define CTL3D_EDITS 0x0004 -#define CTL3D_COMBOS 0x0008 -#define CTL3D_STATICTEXTS 0x0010 -#define CTL3D_STATICFRAMES 0x0020 - -#define CTL3D_NODLGWINDOW 0x00010000 -#define CTL3D_ALL 0xffff - -#define WM_DLGBORDER (WM_USER+3567) -/* WM_DLGBORDER *(int FAR *)lParam return codes */ -#define CTL3D_NOBORDER 0 -#define CTL3D_BORDER 1 - -#define WM_DLGSUBCLASS (WM_USER+3568) -/* WM_DLGSUBCLASS *(int FAR *)lParam return codes */ -#define CTL3D_NOSUBCLASS 0 -#define CTL3D_SUBCLASS 1 - -/* Resource ID for 3dcheck.bmp (for .lib version of ctl3d) */ -#define CTL3D_3DCHECK 26567 - - -#ifdef __cplusplus -} -#endif diff --git a/src/msw/ctl3d/wat386/ctl3d32.c b/src/msw/ctl3d/wat386/ctl3d32.c deleted file mode 100644 index 67f845071e..0000000000 --- a/src/msw/ctl3d/wat386/ctl3d32.c +++ /dev/null @@ -1,285 +0,0 @@ -/* - * File: ctl3d32.c - * Purpose: 32bit interface to CTL3D functions for Watcom C/C++ - * Author: Patrick Halke - * Created: 1995 - * Updated: - * Copyright: (c) 1995 - */ - -#include - -#include - -#include "ctl3d.h" - -#if defined(__WINDOWS_386__) - -#ifdef __cplusplus -extern "C" { -#endif - -#undef FAR -#define FAR - -#define INDIR_INT INDIR_WORD -#define INDIR_UINT INDIR_WORD -#define INDIR_WPARAM INDIR_UINT -#define INDIR_LPARAM INDIR_DWORD -#define INDIR_LONG INDIR_DWORD -#define INDIR_ULONG INDIR_DWORD - -#ifdef STRICT -#define INDIR_HANDLE INDIR_PTR -#define INDIR_HWND INDIR_PTR -#define INDIR_HDC INDIR_PTR -#else -#define INDIR_HANDLE INDIR_UINT -#define INDIR_HWND INDIR_UINT -#define INDIR_HDC INDIR_UINT -#endif - -typedef struct tagCTL3DFUNCTIONS { - HINSTANCE dll; - /* Function Handles */ - HINDIR _Ctl3dSubclassDlg; - HINDIR _Ctl3dSubclassDlgEx; - HINDIR _Ctl3dGetVer; - HINDIR _Ctl3dEnabled; - HINDIR _Ctl3dCtlColor; - HINDIR _Ctl3dCtlColorEx; - HINDIR _Ctl3dColorChange; - HINDIR _Ctl3dSubclassCtl; - HINDIR _Ctl3dDlgFramePaint; - HINDIR _Ctl3dAutoSubclass; - HINDIR _Ctl3dRegister; - HINDIR _Ctl3dUnregister; - HINDIR _Ctl3dWinIniChange; -} CTL3DFUNCTIONS; - -static CTL3DFUNCTIONS Ctl3dFunc = { 0 }; - -static BOOL load_functions( CTL3DFUNCTIONS* functions ) -{ - FARPROC proc; - HINSTANCE dll; - - dll = LoadLibrary( "CTL3D.DLL" ); - if( dll < HINSTANCE_ERROR ) { - return( FALSE ); - } - - /* Function thunks */ - - proc = GetProcAddress(dll, "Ctl3dSubclassDlg"); - functions->_Ctl3dSubclassDlg = GetIndirectFunctionHandle( proc, - INDIR_HWND, - INDIR_WORD, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dSubclassDlgEx" ); - functions->_Ctl3dSubclassDlgEx = GetIndirectFunctionHandle( proc, - INDIR_HWND, - INDIR_DWORD, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dGetVer" ); - functions->_Ctl3dGetVer = GetIndirectFunctionHandle( proc, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dEnabled" ); - functions->_Ctl3dEnabled = GetIndirectFunctionHandle( proc, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dCtlColor" ); - functions->_Ctl3dCtlColor = GetIndirectFunctionHandle( proc, - INDIR_HDC, - INDIR_LONG, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dCtlColorEx" ); - functions->_Ctl3dCtlColorEx = GetIndirectFunctionHandle( proc, - INDIR_UINT, - INDIR_WPARAM, - INDIR_LPARAM, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dColorChange" ); - functions->_Ctl3dColorChange = GetIndirectFunctionHandle( proc, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dSubclassCtl" ); - functions->_Ctl3dSubclassCtl = GetIndirectFunctionHandle( proc, - INDIR_HWND, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dDlgFramePaint" ); - functions->_Ctl3dDlgFramePaint = GetIndirectFunctionHandle( proc, - INDIR_HWND, - INDIR_UINT, - INDIR_WPARAM, - INDIR_LPARAM, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dAutoSubclass" ); - functions->_Ctl3dAutoSubclass = GetIndirectFunctionHandle( proc, - INDIR_HANDLE, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dRegister" ); - functions->_Ctl3dRegister = GetIndirectFunctionHandle( proc, - INDIR_HANDLE, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dUnregister" ); - functions->_Ctl3dUnregister = GetIndirectFunctionHandle( proc, - INDIR_HANDLE, - INDIR_ENDLIST ); - - proc = GetProcAddress( dll, "Ctl3dWinIniChange" ); - functions->_Ctl3dWinIniChange = GetIndirectFunctionHandle( proc, - INDIR_ENDLIST ); - - functions->dll = dll; - return( TRUE ); -} - -static void unload_functions( CTL3DFUNCTIONS * functions ) -{ - FreeLibrary( functions->dll ); - functions->dll = 0; -} - -/* Function Definitions */ - -BOOL WINAPI Ctl3dSubclassDlg(HWND hwnd, WORD w) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dSubclassDlg, - hwnd, w); -} - -BOOL WINAPI Ctl3dSubclassDlgEx(HWND hwnd, DWORD dw) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dSubclassDlgEx, - hwnd, dw); -} - -WORD WINAPI Ctl3dGetVer(void) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (WORD)InvokeIndirectFunction(Ctl3dFunc._Ctl3dGetVer); -} - -BOOL WINAPI Ctl3dEnabled(void) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dEnabled); -} - -HBRUSH WINAPI Ctl3dCtlColor(HDC hdc, LONG l) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (HBRUSH)InvokeIndirectFunction(Ctl3dFunc._Ctl3dCtlColor, - hdc, l); -} - -HBRUSH WINAPI Ctl3dCtlColorEx(UINT ui, WPARAM wp, LPARAM lp) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (HBRUSH)InvokeIndirectFunction(Ctl3dFunc._Ctl3dCtlColorEx, - ui, wp, lp); -} - -BOOL WINAPI Ctl3dColorChange(void) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dColorChange); -} - -BOOL WINAPI Ctl3dSubclassCtl(HWND hwnd) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dSubclassCtl, - hwnd); -} - -LONG WINAPI Ctl3dDlgFramePaint(HWND hwnd, UINT ui, WPARAM wp, LPARAM lp) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (LONG)InvokeIndirectFunction(Ctl3dFunc._Ctl3dDlgFramePaint, - hwnd, ui, wp, lp); -} - -BOOL WINAPI Ctl3dAutoSubclass(HANDLE hnd) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dAutoSubclass, - hnd); -} - -BOOL WINAPI Ctl3dRegister(HANDLE hnd) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dRegister, - hnd); -} - -BOOL WINAPI Ctl3dUnregister(HANDLE hnd) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return FALSE; - - return (BOOL)InvokeIndirectFunction(Ctl3dFunc._Ctl3dUnregister, - hnd); -} - -VOID WINAPI Ctl3dWinIniChange(void) -{ - if (!Ctl3dFunc.dll) - if (!load_functions(&Ctl3dFunc)) - return; - - InvokeIndirectFunction(Ctl3dFunc._Ctl3dWinIniChange); -} - -#ifdef __cplusplus -} -#endif - -#endif // __WINDOWS_386__ diff --git a/src/msw/ctl3d/wat386/ctl3d32.lnk b/src/msw/ctl3d/wat386/ctl3d32.lnk deleted file mode 100644 index 2ada8d2a55..0000000000 --- a/src/msw/ctl3d/wat386/ctl3d32.lnk +++ /dev/null @@ -1 +0,0 @@ -+-ctl3d32.obj diff --git a/src/msw/ctl3d/wat386/ctl3d32.obj b/src/msw/ctl3d/wat386/ctl3d32.obj deleted file mode 100644 index 11c666054f2b054089a53163be2bc7226d7e579d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1597 zcma)6O^@4D6n%~pJIRbDo}^3~&8UPnh%b?LCZdoL8-KWkg=r*9QAs9sq-ioF zP6x4?W%vV;TG&Jgsjx(dvZDM3B-9m1EQ&Z}=*)scR{|N^wQ=+u?DgQ`sxGf1D)I*%!py+q))BM0ECXrAtnpvgoPC z@oF%66`lRM>;G`+fAsogvJGP7Jlx5(_x;g{f77NuXwwl(CAjL|ea2S>gfbgk?5BHa zB%H_2`SbXB0^f_le!Wc`I4yCyeB;c(mz#m#ZQH|PtSNB!~b4GE2UxB5q&Vmr7w zlq6}~U&)gaHwp&Ba8rVs1s(x{#P|APM#?>dAx&mcf^}Km(^-@n^*%gmg=<+Po-(Qx z0+>7rhn-%x+X_YL+MPkK!`CvIERtMZ#)j-VE>R!OzDDAg%rvY;Aq2CYN|Wkv7Y~W6 zNh_m|2mM>AEP7631QRqYo5Gy@p(DF;U6gpH0HA;)0NfO?t9uPhc_R%4JB~+P=&)n6 z05FK3$Mbj%>R!N(8WA}lt~ksGZ{&b@5ib$}y1eAT*eA2EkoX>l5N`+|eg!j-H!eW@ zn#24-427@bMN$Cbs)LDL$&RBvu~03-Q2jr08_)!8ziz8nhGQH zW=*q*au9`zMeDK?xpQBv~8bUws@4=jLND#65cbz?P#Wf?W- ztlNz`v&Y3SkGk*o;^U~2Yj@7W0i=!)paVf^TK+J ry0NSQ%8(V}Qr0taerRjaO6nkq0t>!IaNxjH8?Hy( -#include - -#if defined(__MWERKS__) -#include -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#include "wx/msw/curicop.h" -#include "wx/msw/curico.h" - -//***************************************************************************** -//* Function : ReadIconFile() * -//* Purpose : Reads an icon resource file and creates an icon based on that * -//* information. * -//* Parameters : char *szFileName - The icon resource file. * -//* Returns : A handle to an icon. The handle will be NULL if an icon cannot * -//* be created for any reason. * -//***************************************************************************** - -HICON ReadIconFile( char *szFileName, HINSTANCE hInst, int *W, int *H) -{ HICON hIcon; - HANDLE hDIB; - - if( (hDIB = ReadIcon(szFileName, W, H)) == (HANDLE) NULL) - // read the icon DIB from file - return (HICON) NULL; - hIcon = MakeIcon( hDIB, hInst); // create an icon from DIB - GlobalFree( hDIB); - return hIcon; -} - -//***************************************************************************** -//* Function : CursorToIcon() * -//* Purpose : Reads a cursor resource file and creates an icon based on that * -//* information. * -//* Parameters : char *szFileName - The cursor resource file. * -//* Returns : A handle to an icon. The handle will be NULL if an icon cannot * -//* be created for any reason. * -//* Comments : A cursor is monochrome. So, the resulting icon will also be * -//* monochrome. * -//***************************************************************************** - -HICON CursorToIcon( char *szFileName, HINSTANCE hInst, int *W, int *H) -{ HANDLE hDIB; // Handle to DIB memory - HICON hIcon; // Handle to Icon - - if( (hDIB = ReadCur( szFileName, NULL, W, H)) == (HANDLE) NULL) - // Read cursor DIB - return (HICON) NULL; - hIcon = MakeIcon( hDIB, hInst); // make icon from cursor DIB - GlobalFree( hDIB); - return hIcon; -} - -//***************************************************************************** -//* Function : ReadIcon() * -//* Purpose : Reads an icon resource file and extracts the DIB information. * -//* Parameters : char *szFileName - The icon resource file. * -//* Returns : A handle to a DIB. The handle will be NULL if the resource file* -//* is corrupt or if memory cannot be allocated for the DIB info. * -//***************************************************************************** - -HANDLE ReadIcon( char *szFileName, int *W, int *H) -{ ICONFILEHEADER iconFileHead; // ICON file header structure - ICONFILERES iconFileRes; // ICON file resource - WORD cbHead, - cbRes, - cbBits; // Used for reading in file - int hFile; // File handle - LPBITMAPINFO lpDIB; // Pointer to DIB memory - HANDLE hDIB; - int nWidth = GetSystemMetrics( SM_CXICON), - nHeight = GetSystemMetrics( SM_CYICON), - nDirEntries = 0; - - // Open and read the .ICO file header and the first ICONFILERES - hFile = _lopen( szFileName, OF_READ); - cbHead = _lread( hFile, (LPSTR)&iconFileHead, sizeof(ICONFILEHEADER)); - cbRes = _lread( hFile, (LPSTR)&iconFileRes, sizeof(ICONFILERES)); - ++nDirEntries; - - if((cbHead != sizeof( ICONFILEHEADER)) || (cbRes != sizeof( ICONFILERES))) - return (HANDLE) NULL; - // Verify that it's an .ICON file - if( iconFileHead.wResourceType != 1) - return (HANDLE) NULL; - - // inserted by P.S. - while( (nDirEntries < iconFileHead.wResourceCount) && - ((iconFileRes.bWidth != nWidth) || (iconFileRes.bHeight != nHeight))) - { - cbRes = _lread( hFile, (LPSTR )&iconFileRes, sizeof( ICONFILERES)); - if(cbRes != sizeof( ICONFILERES)) - return (HANDLE) NULL; - else - ++nDirEntries; - } - - if(W != 0) - *W = iconFileRes.bWidth; - if(H != 0) - *H = iconFileRes.bHeight; - - // Allocate and lock memory to read in the DIB - hDIB = GlobalAlloc(GHND, iconFileRes.dwDIBSize); - if(hDIB == (HANDLE) NULL) - return (HANDLE) NULL; - -#ifdef __WINDOWS_386__ - lpDIB = (LPBITMAPINFO)MK_FP32(GlobalLock(hDIB)); -#else - lpDIB = (LPBITMAPINFO)GlobalLock(hDIB); -#endif - - // Now read the DIB portion of the file, which follows the - // end of icon resource table - _llseek( hFile, iconFileRes.dwDIBOffset, 0); - cbBits = _lread( hFile, (LPSTR )lpDIB, (WORD )iconFileRes.dwDIBSize); - - // Done reading file - _lclose(hFile); - - GlobalUnlock( hDIB); - - if( (DWORD )cbBits != iconFileRes.dwDIBSize) - { - GlobalFree( hDIB); - return (HANDLE) NULL; - } - return hDIB; -} - -//***************************************************************************** -//* Function : MakeIcon() * -//* Purpose : Creates an icon based on the DIB info. returned by ReadIcon. * -//* Parameters : HANDLE hDIB - A handle to the icon's DIB information. * -//* Returns : A handle to an Icon. NULL is returned if an icon cannot be * -//* successfully created. * -//* Comments : The steps involved in making an icon from a DIB are very * -//* similar to those involved in making a cursor from a DIB. * -//* Steps : 1) Obtain a pointer to the Icon's DIB bits. * -//* 2) Divide the DIB'd height with 2 to account for the fact that the* -//* DIB stores both the XOR and the AND masks, one after the other.* -//* 3) Determine the offset to the XOR bits. * -//* 4) Determine the offset to the AND bits. * -//* 5) Create a device dependent bitmap with the XOR bits. * -//* 6) Obtain the device dependent XOR bitmask and save in memory. * -//* The AND bitmask is monochrome. Monochrome bits are identical * -//* in both the device dependent bitmaps and device independent * -//* bitmaps. So, no need to convert the AND bitmask. * -//* 7) Since a DIB is stored upside down, flip the monochrome AND bits* -//* by scanlines. * -//* 8) Use the XOR and AND bits and create an icon with CreateIcon. * -//***************************************************************************** - -HICON MakeIcon( HANDLE hDIB, HINSTANCE hInst) -{ LPSTR lpXORbits, - lpANDbits; // Pointer to XOR and AND bits - HBITMAP hbmXor; // handle to XOR bitmap - BITMAP bmpXor; // Used to manipulate XOR bitmap - DWORD dwBmpSize; // Size of XOR bitmap - HANDLE hXorDDB; - LPSTR lpXorDDB; - LONG szFlip[32]; - int j, - k; - HDC hDC; - HICON hIcon; - LPBITMAPINFO lpDIB; - - // 1) Obtain a pointer to the Icon's DIB bits. -#ifdef __WINDOWS_386__ - lpDIB = (LPBITMAPINFO )MK_FP32(GlobalLock( hDIB)); -#else - lpDIB = (LPBITMAPINFO )GlobalLock( hDIB); -#endif - - // 2) Divide the DIB'd height with 2 to account for the fact that the - // DIB stores both the XOR and the AND masks, one after the other. - lpDIB->bmiHeader.biHeight /= 2; - - // 3) Determine the offset to the XOR bits. - // To obtain this value, we have to skip the header, and color table - lpXORbits = (LPSTR )lpDIB + (int )lpDIB->bmiHeader.biSize + - (DIBNumColors( (LPSTR )lpDIB) * sizeof( RGBQUAD)); - - // 4) Determine the offset to the AND bits. - // To obtain this value, skip the XOR bits - lpANDbits = lpXORbits + (int )(lpDIB->bmiHeader.biHeight * - (WIDTHBYTES ( lpDIB->bmiHeader.biWidth * - lpDIB->bmiHeader.biBitCount))); - - // Get a hDC so we can create a bitmap compatible with it - hDC = CreateDC( "DISPLAY", NULL, NULL, NULL); - - // 5) Create a device dependent bitmap with the XOR bits. - hbmXor = CreateDIBitmap( hDC, (LPBITMAPINFOHEADER)&(lpDIB->bmiHeader), - CBM_INIT, lpXORbits, lpDIB, DIB_RGB_COLORS); - - GetObject( hbmXor, sizeof(BITMAP), (LPSTR)&bmpXor); - - dwBmpSize = (DWORD )(bmpXor.bmWidthBytes * bmpXor.bmHeight * bmpXor.bmPlanes); - hXorDDB = GlobalAlloc( GHND, dwBmpSize); - if(hXorDDB == (HANDLE) NULL) - { - // clean up before quitting - DeleteObject( hbmXor); - DeleteDC( hDC); - GlobalUnlock( hDIB); - return (HICON) NULL; - } - -#ifdef __WINDOWS_386__ - lpXorDDB = (LPSTR)MK_FP32(GlobalLock( hXorDDB)); -#else - lpXorDDB = (LPSTR)GlobalLock( hXorDDB); -#endif - - // 6) Obtain the device dependent XOR bitmask and save in memory. - // The AND bitmask is monochrome. Monochrome bits are identical - // in both the device dependent bitmaps and device independent - // bitmaps. So, no need to convert the AND bitmask. - GetBitmapBits( hbmXor, dwBmpSize, lpXorDDB); - - // 7) Since a DIB is stored upside down, flip the monochrome AND bits by scanlines. - k = (int )lpDIB->bmiHeader.biHeight; - for( j = 0 ; j < k ; j++, lpANDbits += sizeof(DWORD)) - szFlip[(k - 1) - j] = *(DWORD FAR *)lpANDbits; - - // 8) Use the XOR and AND bits and create an icon with CreateIcon. - hIcon = CreateIcon( hInst, bmpXor.bmWidth, bmpXor.bmHeight, bmpXor.bmPlanes, - bmpXor.bmBitsPixel, (const BYTE *)szFlip, (const BYTE *)lpXorDDB); - - // Clean up before exiting. - DeleteObject( hbmXor); - GlobalUnlock( hXorDDB); - GlobalFree( hXorDDB); - DeleteDC( hDC); - GlobalUnlock( hDIB); - - return hIcon; -} - -// ************************************************************************** - -//***************************************************************************** -//* Function : ReadCursorFile() * -//* Purpose : Reads a cursor resource file and creates a cursor based on that* -//* information. * -//* Parameters : char *szFileName - The cursor resource file. * -//* Returns : A handle to a cursor. The handle will be NULL if a cursor can't* -//* be created for any reason. * -//***************************************************************************** - -HCURSOR ReadCursorFile( char *szFileName, HINSTANCE hInst, int *W, int *H, - int *XHot, int *YHot) -{ HANDLE hDIB; // Handle to DIB memory - HCURSOR hCursor; - POINT ptHotSpot; - - // read cur DIB from file - if( (hDIB = ReadCur( szFileName, (LPPOINT )&ptHotSpot, W, H)) == (HANDLE) NULL) - return (HCURSOR) NULL; - hCursor = MakeCursor( hDIB, (LPPOINT )&ptHotSpot, hInst);//create cur from DIB - if(XHot != 0) - *XHot = ptHotSpot.x; - if(YHot != 0) - *YHot = ptHotSpot.y; - GlobalFree( hDIB); - return ( hCursor); -} - -//***************************************************************************** -//* Function : IconToCursor() * -//* Purpose : Reads an icon resource file and creates a cursor based on that * -//* information. * -//* Parameters : char *szFileName - The icon resource file. * -//* Returns : A handle to a cursor. The handle will be NULL if a cursor can't* -//* be created for any reason. * -//* Comments : An icon may be in color. So, the DIB has to be forced to be * -//* monochrome. * -//***************************************************************************** - -HCURSOR IconToCursor( char *szFileName, HINSTANCE hInst, int XHot, int YHot, - int *W, int *H) -{ HCURSOR hCursor; - HANDLE hDIB; - POINT ptHotSpot; - - if( (hDIB = ReadIcon( szFileName, W, H)) == (HANDLE) NULL) - //read icon file to get icon DIB - return (HCURSOR) NULL; - // Set the hot spot of the cursor - ptHotSpot.x = XHot; - ptHotSpot.y = YHot; - hCursor = MakeCursor( hDIB, (LPPOINT )&ptHotSpot, hInst); - //create cursor from DIB - GlobalFree( hDIB); - return hCursor; -} - -//***************************************************************************** -//* Function : ReadCur() * -//* Purpose : Reads a cursor resource file and extracts the DIB information. * -//* Parameters : LPSTR szFileName - The cursor resource file. * -//* Returns : A handle to a DIB. The handle will be NULL if the resource file* -//* is corrupt or if memory cannot be allocated for the DIB info. * -//***************************************************************************** - -HANDLE ReadCur( char *szFileName, LPPOINT lpptHotSpot, int *W, int *H) -{ CURFILEHEADER curFileHead; // CURSOR file header structure - CURFILERES curFileRes; // CURSOR file resource - WORD cbHead, - cbRes, - cbBits; // Used for reading in file - LPBITMAPINFO lpDIB; // Pointer to DIB memory - int hFile; // Handle to File - HANDLE hDIB; - int nWidth = GetSystemMetrics( SM_CXCURSOR), - nHeight = GetSystemMetrics( SM_CYCURSOR), - nDirEntries = 0; - - // Open and read the .ICO file header and the first ICONFILERES - hFile = _lopen( szFileName, OF_READ); - cbHead = _lread( hFile, (LPSTR )&curFileHead, sizeof( CURFILEHEADER)); - cbRes = _lread( hFile, (LPSTR )&curFileRes, sizeof( CURFILERES)); - ++nDirEntries; - - if((cbHead != sizeof( CURFILEHEADER)) || (cbRes != sizeof( CURFILERES))) - return (HANDLE) NULL; - - // Verify that it's an .CUR file - if ((curFileRes.bReserved1 != 0) || (curFileHead.wResourceType != 2)) - return (HANDLE) NULL; - - // following added by P.S. - while( (nDirEntries < curFileHead.wResourceCount) && - ((curFileRes.bWidth != nWidth) || (curFileRes.bHeight != nHeight))) - { - cbRes = _lread( hFile, (LPSTR )&curFileRes, sizeof( CURFILERES)); - if(cbRes != sizeof( CURFILERES)) - return (HANDLE) NULL; - else - ++nDirEntries; - } - if(W != 0) - *W = curFileRes.bWidth; - if(H != 0) - *H = curFileRes.bHeight; - - - // Allocate & lock memory to read in the DIB - hDIB = GlobalAlloc(GHND, curFileRes.dwDIBSize); - if(hDIB == (HANDLE) NULL) - return (HANDLE) NULL; - -#ifdef __WINDOWS_386__ - lpDIB = (LPBITMAPINFO )MK_FP32(GlobalLock(hDIB)); -#else - lpDIB = (LPBITMAPINFO )GlobalLock(hDIB); -#endif - - // Now read the DIB portion of the file, which follows the - // end of icon resource table - _llseek( hFile, curFileRes.dwDIBOffset, 0); - cbBits = _lread( hFile, (LPSTR )lpDIB, (WORD )curFileRes.dwDIBSize); - - // Done reading file - _lclose(hFile); - - if((DWORD)cbBits != curFileRes.dwDIBSize) - { - GlobalUnlock( hDIB); - GlobalFree( hDIB); - return (HANDLE) NULL; - } - if(lpptHotSpot != (LPPOINT) NULL) // If it is necessary to know the hot spot - { - lpptHotSpot->x = (int )curFileRes.wXHotspot; - lpptHotSpot->y = (int )curFileRes.wYHotspot; - } - GlobalUnlock( hDIB); - return( hDIB); -} - -//***************************************************************************** -//* Function : ColorDDBToMonoDDB() * -//* Purpose : Converts a color bitmap to a monochrome bitmap. * -//* Parameters : HBITMAP hbm - The color bitmap. * -//* Returns : A handle to a monochrome bitmap. * -//***************************************************************************** -HBITMAP ColorDDBToMonoDDB ( HBITMAP hbm) -{ BITMAP bm; - BITMAPINFOHEADER bi; - LPBITMAPINFOHEADER lpbi; - DWORD dwLen; - HANDLE hdib; - HANDLE h; - HDC hdc; - HBITMAP hbmMono; - - GetObject( hbm, sizeof( bm), (LPSTR )&bm); - - bi.biSize = sizeof( BITMAPINFOHEADER); // size of this structure - bi.biWidth = bm.bmWidth; // bitmap width in pixels - bi.biHeight = bm.bmHeight; // bitmap height in pixels - bi.biPlanes = 1; // # of planes always 1 for DIBs - bi.biBitCount = bm.bmPlanes * bm.bmBitsPixel; // color bits per pixel - bi.biCompression = BI_RGB; // no compression - bi.biSizeImage = 0; // 0 means default size - bi.biXPelsPerMeter = 0; // not used - bi.biYPelsPerMeter = 0; // not used - bi.biClrUsed = 0; // 0 means default colors - bi.biClrImportant = 0; // 0 means defaults - - dwLen = bi.biSize + PaletteSize((LPSTR)&bi); - - hdc = GetDC( (HWND) NULL); - - hdib = GlobalAlloc( GHND, dwLen); - if (hdib == (HANDLE) NULL) - { - ReleaseDC( (HWND) NULL, hdc); - return (HBITMAP) NULL; - } - -#ifdef __WINDOWS_386__ - lpbi = (LPBITMAPINFOHEADER )MK_FP32(GlobalLock( hdib)); -#else - lpbi = (LPBITMAPINFOHEADER )GlobalLock( hdib); -#endif - - *lpbi = bi; - - // Call GetDIBits with a NULL lpBits parameter; it will calculate - // the biSizeImage field. - GetDIBits( hdc, hbm, 0, (WORD)bi.biHeight, - NULL, (LPBITMAPINFO)lpbi, DIB_RGB_COLORS); - - bi = *lpbi; - GlobalUnlock( hdib); - - // If the driver did not fill in the biSizeImage field, make one up. - if(bi.biSizeImage == 0) - bi.biSizeImage = WIDTHBYTES( (DWORD )bm.bmWidth * bi.biBitCount) * bm.bmHeight; - - // Reallocate the buffer big enough to hold all the bits. - dwLen = bi.biSize + PaletteSize((LPSTR)&bi) + bi.biSizeImage; - if( (h = GlobalReAlloc( hdib, dwLen, 0)) != 0) - hdib = h; - else - { - GlobalFree( hdib); - ReleaseDC( (HWND) NULL, hdc); - return (HBITMAP) NULL; - } - - // Call GetDIBits with a NON-NULL lpBits parameter, to actually - // get the bits this time. - -#ifdef __WINDOWS_386__ - lpbi = (LPBITMAPINFOHEADER )MK_FP32(GlobalLock( hdib)); -#else - lpbi = (LPBITMAPINFOHEADER )GlobalLock( hdib); -#endif - - if( GetDIBits( hdc, hbm, 0, (WORD)bi.biHeight, - (LPSTR)lpbi + (WORD)lpbi->biSize + PaletteSize((LPSTR)lpbi), - (LPBITMAPINFO)lpbi, DIB_RGB_COLORS) == 0) - { - GlobalUnlock( hdib); - hdib = (HANDLE) NULL; - ReleaseDC( (HWND) NULL, hdc); - return (HBITMAP) NULL; - } - - // Finally, create a monochrome DDB, and put the DIB into - // it. SetDIBits does smart color conversion. - hbmMono = CreateBitmap((WORD)lpbi->biWidth, (WORD)lpbi->biHeight, 1, 1, NULL); - SetDIBits( hdc, hbmMono, (WORD)0, (WORD)lpbi->biHeight, - (LPSTR)lpbi + (int )lpbi->biSize + PaletteSize((LPSTR)lpbi), - (LPBITMAPINFO)lpbi, DIB_RGB_COLORS); - - bi = *lpbi; - GlobalUnlock( hdib); - GlobalFree( hdib); - - ReleaseDC((HWND) NULL, hdc); - return hbmMono; -} - -//***************************************************************************** -//* Function : MakeCursor() * -//* Purpose : Creates a cursor based on the DIB info. returned by ReadCursor.* -//* Parameters : HANDLE hDIB - A handle to the cursor's DIB information. * -//* LPPOINT lppt - A pointer to a point struct. indicating the * -//* location of the Cursor's hot spot. * -//* Returns : A handle to a cursor. NULL is returned if a cursor cannot be * -//* successfully created. * -//* Comments : The steps involved in making a cursor from a DIB are very * -//* similar to those involved in making an icon from a DIB. * -//* Steps : 1) Obtain a pointer to the Cursor's DIB bits. * -//* 2) Divide the DIB's height with 2 to account for the fact that the* -//* DIB stores both the XOR and the AND masks, one after the other.* -//* 3) Determine the offset to the XOR bits. * -//* 4) Determine the offset to the AND bits. * -//* 5) Create a device dependent bitmap with the XOR bits. * -//* 6) Obtain the device dependent XOR bitmask and save in memory. * -//* The AND bitmask is monochrome. Monochrome bits are identical * -//* in both the device dependent bitmaps and device independent * -//* bitmaps. So, no need to convert the AND bitmask. * -//* 7) Since a DIB is stored upside down, flip the monochrome AND bits* -//* by scanlines. * -//* 8) Use the XOR and AND bits and create a cursor with CreateCursor.* -//***************************************************************************** - -HCURSOR MakeCursor( HANDLE hDIB, LPPOINT lpptHotSpot, HINSTANCE hInst) -{ LPSTR lpXORbits, - lpANDbits; // Pointer to XOR and AND bits - HBITMAP hbmXor; // handle to XOR bitmap - BITMAP bmpXor; // Used to manipulate XOR bitmap - DWORD dwBmpSize; // Size of XOR bitmap - HCURSOR hCursor; - HANDLE hXorDDB; - LPSTR lpXorDDB; - LONG szFlip[32]; - int j, - k; - HDC hDC; - LPBITMAPINFO lpDIB; - - // 1) Obtain a pointer to the Cursor's DIB bits. -#ifdef __WINDOWS_386__ - lpDIB = (LPBITMAPINFO )MK_FP32(GlobalLock( hDIB)); -#else - lpDIB = (LPBITMAPINFO )GlobalLock( hDIB); -#endif - - // 2) Divide the DIB's height with 2 to account for the fact that the - // DIB stores both the XOR and the AND masks, one after the other. - lpDIB->bmiHeader.biHeight /= 2; - - // 3) Determine the offset to the XOR bits. - // To obtain this value, we have to skip the header, and color table - lpXORbits = (LPSTR )lpDIB + (int )lpDIB->bmiHeader.biSize + - (DIBNumColors((LPSTR)lpDIB) * sizeof(RGBQUAD)); - - // 4) Determine the offset to the AND bits - // To obtain this value, skip the XOR bits - lpANDbits = lpXORbits + (int )( lpDIB->bmiHeader.biHeight * - (WIDTHBYTES( lpDIB->bmiHeader.biWidth * - lpDIB->bmiHeader.biBitCount))); - - // Get a hDC so we can create a bitmap compatible with it - hDC = CreateDC( "DISPLAY", NULL, NULL, NULL); - - // 5) Create a device dependent bitmap with the XOR bits. - hbmXor = CreateBitmap( (int )lpDIB->bmiHeader.biWidth, - (int )lpDIB->bmiHeader.biHeight, 1, 1, NULL); - SetDIBits( hDC, hbmXor, 0, (WORD)lpDIB->bmiHeader.biHeight, lpXORbits, - lpDIB, DIB_RGB_COLORS); - GetObject( hbmXor, sizeof( BITMAP), (LPSTR )&bmpXor); - - dwBmpSize = (DWORD )(bmpXor.bmWidthBytes * bmpXor.bmHeight * bmpXor.bmPlanes); - hXorDDB = GlobalAlloc( GHND, dwBmpSize); - if(hXorDDB == (HANDLE) NULL) - { // clean up before quitting - DeleteObject( hbmXor); - DeleteDC( hDC); - GlobalUnlock( hDIB); - return (HCURSOR) NULL; - } -#ifdef __WINDOWS_386__ - lpXorDDB = (LPSTR)MK_FP32(GlobalLock( hXorDDB)); -#else - lpXorDDB = (LPSTR)GlobalLock( hXorDDB); -#endif - - // 6) Obtain the device dependent XOR bitmask and save in memory. - // The AND bitmask is monochrome. Monochrome bits are identical - // in both the device dependent bitmaps and device independent - // bitmaps. So, no need to convert the AND bitmask. - GetBitmapBits( hbmXor, dwBmpSize, lpXorDDB); - - // 7) Since a DIB is stored upside down, flip the monochrome AND bits by scanlines. - k = (int)lpDIB->bmiHeader.biHeight; - for( j = 0 ; j < k; j++, lpANDbits += sizeof( DWORD)) - szFlip[(k - 1) - j] = *(DWORD FAR *)lpANDbits; - - // 8) Use the XOR and AND bits and create a cursor with CreateCursor. - hCursor = CreateCursor( hInst, lpptHotSpot->x, lpptHotSpot->y, - bmpXor.bmWidth, bmpXor.bmHeight, (LPSTR)szFlip, lpXorDDB); - - // Clean up before exiting. - DeleteObject( hbmXor); - GlobalUnlock( hXorDDB); - GlobalFree( hXorDDB); - DeleteDC( hDC); - GlobalUnlock( hDIB); - - return hCursor; -} - -//***************************************************************************** -//* Function : PaletteSize() * -//* Purpose : Calculates the palette size in bytes. If the info. block is of * -//* the BITMAPCOREHEADER type, the number of colors is multiplied * -//* by sizeof(RGBTRIPLE) to give the palette size, otherwise the * -//* number of colors is multiplied by sizeof(RGBQUAD). * -//* Parameters : LPSTR pv - pointer to the BITMAPINFOHEADER * -//* Returns : The size of the palette. * -//***************************************************************************** - -WORD PaletteSize( LPSTR pv) -{ LPBITMAPINFOHEADER lpbi; - WORD NumColors; - - lpbi = (LPBITMAPINFOHEADER )pv; - NumColors = DIBNumColors((LPSTR )lpbi); - - if(lpbi->biSize == sizeof( BITMAPCOREHEADER)) // OS/2 style DIBs - return NumColors * sizeof( RGBTRIPLE); - else - return NumColors * sizeof( RGBQUAD); -} - -//***************************************************************************** -//* Function : DIBNumColors() * -//* Purpose : This function calculates the number of colors in the DIB's * -//* color table by finding the bits per pixel for the DIB (whether * -//* Win3.0 or OS/2-style DIB). If bits per pixel is 1: colors=2, * -//* if 4: colors=16, if 8: colors=256, if 24, no colors in color * -//* table. * -//* Parameters : LPSTR lpbi - pointer to packed-DIB memory block. * -//* Returns : The number of colors in the color table. * -//***************************************************************************** - -WORD DIBNumColors ( LPSTR pv) -{ int bits; - BITMAPINFOHEADER *lpbi; - BITMAPCOREHEADER *lpbc; - - lpbi = ((BITMAPINFOHEADER* )pv); // assume win 3.0 style DIBs - lpbc = ((BITMAPCOREHEADER* )pv); // assume OS/2 style DIBs - - // With the BITMAPINFO format headers, the size of the palette - // is in biClrUsed, whereas in the BITMAPCORE - style headers, it - // is dependent on the bits per pixel ( = 2 raised to the power of - // bits/pixel). - - if(lpbi->biSize != sizeof( BITMAPCOREHEADER)) - { - if(lpbi->biClrUsed != 0) - return (WORD)lpbi->biClrUsed; - bits = lpbi->biBitCount; - } - else - bits = lpbc->bcBitCount; - - switch( bits) - { - case 1: - return 2; - case 4: - return 16; - case 8: - return 256; - default: - // A 24 bitcount DIB has no color table - return 0; - } -} - -#if 0 -// ****************************************************************** -BOOL fGetXPixmap( BOOL fIsIcon, char *szFileName, HINSTANCE hInst, - char cData[], int &width, int &height) -{ HDC hdc, - hdcMemory; - HBITMAP hbmp, - holdbmp; - int i, - j, - w, - h; - BYTE *s, - cByte, - cMask; - COLORREF rgb; - HCURSOR hIconOrCursor = fIsIcon ? - IconToCursor( szFileName, hInst, 0, 0, &w, &h) - : ReadCursorFile( szFileName, hInst, &w, &h, 0, 0); - int sum; - - if(hIconOrCursor == 0) - return FALSE; - - hdc = GetDC( GetDesktopWindow()); - hdcMemory = CreateCompatibleDC( hdc); - hbmp = CreateCompatibleBitmap( hdc, w, h); - holdbmp = SelectObject( hdcMemory, hbmp); - PatBlt( hdcMemory, 0, 0, w, h, BLACKNESS); // or use WHITENESS?? - DrawIcon( hdcMemory, 0, 0, hIconOrCursor); //using HCURSOR with DrawIcon is OK - - // the data retrieval follows: - width = w; - height = h; - for( j = 0, s = (BYTE *)cData ; j < h ; ++j) - for( i = 0 ; i < w ; ++i, cMask >>= 1) - { - if( (i % 8) == 0) - { - cByte = 0; - cMask = 0x80; - } - rgb = GetPixel( hdcMemory, i, j); - sum = (int )(rgb & 0xFFL); - sum += (int )((rgb & 0xFF00L) >> 8); - sum += (int )((rgb & 0xFF0000L) >> 16); - if(sum > 381) - cByte = cByte | cMask; - if( (i % 8) == 7) - { - *s = cByte; - ++s; - } - } - SelectObject( hdcMemory, holdbmp); - DeleteDC( hdcMemory); - ReleaseDC( GetDesktopWindow(), hdc); - DestroyCursor( hIconOrCursor); - DeleteObject( hbmp); - return TRUE; -} -#endif - -// Added from scavenged internet code, JACS 23/6/95 -HCURSOR MakeCursorFromBitmap(HINSTANCE hInst, HBITMAP hBitmap, POINT *pPoint) -{ - HDC hDCColor, hDCMono; - HDC hDC; - HBITMAP hBmpOld; - HBITMAP hAndBmp; - HBITMAP hXorBmp; - HCURSOR hNewCursor; - BITMAP bm; - DWORD dwBytes; - NPSTR andBits; - NPSTR xorBits; - - hDC = GetDC((HWND) NULL); - hDCColor = CreateCompatibleDC(hDC); - hDCMono = CreateCompatibleDC(hDC); - hAndBmp = CreateCompatibleBitmap(hDCMono, 32, 32); - hXorBmp = CreateCompatibleBitmap(hDCMono, 32, 32); - - hBmpOld = (HBITMAP) SelectObject(hDCColor, hBitmap); - SelectObject(hDCMono, hAndBmp); - SetBkColor(hDCColor, RGB(191, 191, 191)); - - BitBlt(hDCMono, 0, 0, 32, 32, hDCColor, 0, 0, SRCCOPY); - - // Now we have the AND Mask - - GetObject(hAndBmp, sizeof(BITMAP), (LPSTR) &bm); - dwBytes = (bm.bmWidthBytes * bm.bmHeight); - andBits = (NPSTR) LocalAlloc(LPTR, dwBytes); - GetBitmapBits(hAndBmp, dwBytes, andBits); - - SelectObject(hDCMono, hXorBmp); - SetBkColor(hDCColor, RGB(0, 0, 0)); - - BitBlt(hDCMono, 0, 0, 32, 32, hDCColor, 0, 0, SRCCOPY); - - // Now we have the XOR Mask - - GetObject(hXorBmp, sizeof(BITMAP), (LPSTR) &bm); - dwBytes = (bm.bmWidthBytes * bm.bmHeight); - xorBits = (NPSTR) LocalAlloc(LPTR, dwBytes); - GetBitmapBits(hXorBmp, dwBytes, xorBits); - - if (pPoint->x > 32) - pPoint->x = 32; - if (pPoint->y > 32) - pPoint->y = 32; - - hNewCursor = CreateCursor(hInst, - pPoint->x, pPoint->y, 32, 32, andBits, xorBits); - - SelectObject(hDCColor, hBmpOld); - SelectObject(hDCMono, hBmpOld); - DeleteDC(hDCColor); - DeleteDC(hDCMono); - DeleteObject(hAndBmp); - DeleteObject(hXorBmp); - ReleaseDC(NULL, hDC); -#ifndef __WIN32__ - LocalUnlock(LocalHandle((WORD) andBits)); - LocalUnlock(LocalHandle((WORD) xorBits)); - LocalFree(LocalHandle((WORD) andBits)); - LocalFree(LocalHandle((WORD) xorBits)); -#else - LocalUnlock(LocalHandle((LPCVOID) andBits)); - LocalUnlock(LocalHandle((LPCVOID) xorBits)); - LocalFree(LocalHandle((LPCVOID) andBits)); - LocalFree(LocalHandle((LPCVOID) xorBits)); -#endif - return hNewCursor; -} - -/* - * This doesn't work: just gives us a grey square. Ideas, anyone? - */ - -HICON MakeIconFromBitmap(HINSTANCE hInst, HBITMAP hBitmap) -{ - HDC hDCColor, hDCMono; - HDC hDC; - HBITMAP hBmpOld; - HBITMAP hAndBmp; - HBITMAP hXorBmp; - HICON hNewIcon; - BITMAP bm; - DWORD dwBytes; - NPSTR andBits; - NPSTR xorBits; - - hDC = GetDC((HWND) NULL); - hDCColor = CreateCompatibleDC(hDC); - hDCMono = CreateCompatibleDC(hDC); - hAndBmp = CreateCompatibleBitmap(hDCMono, 32, 32); - hXorBmp = CreateCompatibleBitmap(hDCMono, 32, 32); - - hBmpOld = (HBITMAP) SelectObject(hDCColor, hBitmap); - SelectObject(hDCMono, hAndBmp); - SetBkColor(hDCColor, RGB(191, 191, 191)); - - BitBlt(hDCMono, 0, 0, 32, 32, hDCColor, 0, 0, SRCCOPY); - - // Now we have the AND Mask - - GetObject(hAndBmp, sizeof(BITMAP), (LPSTR) &bm); - dwBytes = (bm.bmWidthBytes * bm.bmHeight); - andBits = (NPSTR) LocalAlloc(LPTR, dwBytes); - GetBitmapBits(hAndBmp, dwBytes, andBits); - - SelectObject(hDCMono, hXorBmp); - SetBkColor(hDCColor, RGB(0, 0, 0)); - - BitBlt(hDCMono, 0, 0, 32, 32, hDCColor, 0, 0, SRCCOPY); - - // Now we have the XOR Mask - - GetObject(hXorBmp, sizeof(BITMAP), (LPSTR) &bm); - dwBytes = (bm.bmWidthBytes * bm.bmHeight); - xorBits = (NPSTR) LocalAlloc(LPTR, dwBytes); - GetBitmapBits(hXorBmp, dwBytes, xorBits); - - hNewIcon = CreateIcon(hInst, 1, 4, 32, 32, (unsigned char *)andBits, (unsigned char *)xorBits); - - SelectObject(hDCColor, hBmpOld); - SelectObject(hDCMono, hBmpOld); - DeleteDC(hDCColor); - DeleteDC(hDCMono); - DeleteObject(hAndBmp); - DeleteObject(hXorBmp); - ReleaseDC((HWND) NULL, hDC); -#ifndef __WIN32__ - LocalUnlock(LocalHandle((WORD) andBits)); - LocalUnlock(LocalHandle((WORD) xorBits)); - LocalFree(LocalHandle((WORD) andBits)); - LocalFree(LocalHandle((WORD) xorBits)); -#else - LocalUnlock(LocalHandle((LPCVOID) andBits)); - LocalUnlock(LocalHandle((LPCVOID) xorBits)); - LocalFree(LocalHandle((LPCVOID) andBits)); - LocalFree(LocalHandle((LPCVOID) xorBits)); -#endif - return hNewIcon; -} - diff --git a/src/msw/cursor.cpp b/src/msw/cursor.cpp deleted file mode 100644 index d3e67418a9..0000000000 --- a/src/msw/cursor.cpp +++ /dev/null @@ -1,282 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: wxCursor class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#endif - -#include "wx/msw/private.h" -#include "wx/msw/dib.h" - -#include "assert.h" - -#if wxUSE_RESOURCE_LOADING_IN_MSW -#include "wx/msw/curico.h" -#include "wx/msw/curicop.h" -#endif - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -#endif - -wxCursorRefData::wxCursorRefData(void) -{ - m_width = 32; m_height = 32; - m_hCursor = 0 ; - m_destroyCursor = FALSE; -} - -wxCursorRefData::~wxCursorRefData(void) -{ - if ( m_hCursor && m_destroyCursor) -#ifdef __WXWINE__ - ::DestroyCursor((HCURSOR) m_hCursor); -#else - ::DestroyCursor((HICON) m_hCursor); -#endif -} - -// Cursors -wxCursor::wxCursor(void) -{ -} - -wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), const char WXUNUSED(maskBits)[]) -{ -} - -wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) -{ - m_refData = new wxIconRefData; - - M_CURSORDATA->m_destroyCursor = FALSE; - M_CURSORDATA->m_hCursor = 0; - M_CURSORDATA->m_ok = FALSE; - if (flags & wxBITMAP_TYPE_CUR_RESOURCE) - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), cursor_file); - if (M_CURSORDATA->m_hCursor) - M_CURSORDATA->m_ok = TRUE; - else - M_CURSORDATA->m_ok = FALSE; - } - else if (flags & wxBITMAP_TYPE_CUR) - { -#if wxUSE_RESOURCE_LOADING_IN_MSW - M_CURSORDATA->m_hCursor = (WXHCURSOR) ReadCursorFile((char *)(const char *)cursor_file, wxGetInstance(), &M_CURSORDATA->m_width, &M_CURSORDATA->m_height); - M_CURSORDATA->m_destroyCursor = TRUE; -#endif - } - else if (flags & wxBITMAP_TYPE_ICO) - { -#if wxUSE_RESOURCE_LOADING_IN_MSW - M_CURSORDATA->m_hCursor = (WXHCURSOR) IconToCursor((char *)(const char *)cursor_file, wxGetInstance(), hotSpotX, hotSpotY, &M_CURSORDATA->m_width, &M_CURSORDATA->m_height); - M_CURSORDATA->m_destroyCursor = TRUE; -#endif - } - else if (flags & wxBITMAP_TYPE_BMP) - { -#if wxUSE_RESOURCE_LOADING_IN_MSW - HBITMAP hBitmap = 0; - HPALETTE hPalette = 0; - bool success = ReadDIB((char *)(const char *)cursor_file, &hBitmap, &hPalette) != 0; - if (!success) - return; - if (hPalette) - DeleteObject(hPalette); - POINT pnt; - pnt.x = hotSpotX; - pnt.y = hotSpotY; - M_CURSORDATA->m_hCursor = (WXHCURSOR) MakeCursorFromBitmap(wxGetInstance(), hBitmap, &pnt); - M_CURSORDATA->m_destroyCursor = TRUE; - DeleteObject(hBitmap); - if (M_CURSORDATA->m_hCursor) - M_CURSORDATA->m_ok = TRUE; -#endif - } -} - -// Cursors by stock number -wxCursor::wxCursor(int cursor_type) -{ - m_refData = new wxIconRefData; - - switch (cursor_type) - { - case wxCURSOR_WAIT: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_WAIT); - break; - case wxCURSOR_IBEAM: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_IBEAM); - break; - case wxCURSOR_CROSS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_CROSS); - break; - case wxCURSOR_SIZENWSE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZENWSE); - break; - case wxCURSOR_SIZENESW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZENESW); - break; - case wxCURSOR_SIZEWE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZEWE); - break; - case wxCURSOR_SIZENS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_SIZENS); - break; - case wxCURSOR_CHAR: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW); - break; - } - case wxCURSOR_HAND: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_HAND"); - break; - } - case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BULLSEYE"); - break; - } - case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PENCIL"); - break; - } - case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_MAGNIFIER"); - break; - } - case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_NO_ENTRY"); - break; - } - case wxCURSOR_LEFT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW); - break; - } - case wxCURSOR_RIGHT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW); - break; - } - case wxCURSOR_MIDDLE_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW); - break; - } - case wxCURSOR_SIZING: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_SIZING"); - break; - } - case wxCURSOR_WATCH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_WATCH"); - break; - } - case wxCURSOR_SPRAYCAN: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_ROLLER"); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PBRUSH"); - break; - } - case wxCURSOR_POINT_LEFT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PLEFT"); - break; - } - case wxCURSOR_POINT_RIGHT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PRIGHT"); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_QARROW"); - break; - } - case wxCURSOR_BLANK: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BLANK"); - break; - } - default: - case wxCURSOR_ARROW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor((HINSTANCE) NULL, IDC_ARROW); - break; - } -} - -wxCursor::~wxCursor(void) -{ -// FreeResource(TRUE); -} - -bool wxCursor::FreeResource(bool WXUNUSED(force)) -{ - if (M_CURSORDATA && M_CURSORDATA->m_hCursor && M_CURSORDATA->m_destroyCursor) - { - DestroyCursor((HCURSOR) M_CURSORDATA->m_hCursor); - M_CURSORDATA->m_hCursor = 0; - } - return TRUE; -} - -void wxCursor::SetHCURSOR(WXHCURSOR cursor) -{ - if ( !M_CURSORDATA ) - m_refData = new wxCursorRefData; - - M_CURSORDATA->m_hCursor = cursor; -} - -// Global cursor setting -void wxSetCursor(const wxCursor& cursor) -{ - extern wxCursor *g_globalCursor; - - if ( cursor.Ok() && cursor.GetHCURSOR() ) - { - ::SetCursor((HCURSOR) cursor.GetHCURSOR()); - - if ( g_globalCursor ) - (*g_globalCursor) = cursor; - } -} - - diff --git a/src/msw/data.cpp b/src/msw/data.cpp deleted file mode 100644 index dc3a9aa018..0000000000 --- a/src/msw/data.cpp +++ /dev/null @@ -1,788 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: Various data -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "data.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/prntbase.h" - -#define _MAXPATHLEN 500 - -// Useful buffer, initialized in wxCommonInit -char *wxBuffer = NULL; - -// Windows List -wxWindowList wxTopLevelWindows; - -// List of windows pending deletion -wxList WXDLLEXPORT wxPendingDelete; - -// List of events pending processing -#if wxUSE_THREADS -wxList *wxPendingEvents = NULL; -wxCriticalSection *wxPendingEventsLocker = NULL; -#endif - -// Current cursor, in order to hang on to -// cursor handle when setting the cursor globally -wxCursor *g_globalCursor = NULL; - -// Message Strings for Internationalization -char **wx_msg_str = (char**)NULL; - -// Custom OS version, as optionally placed in wx.ini/.wxrc -// Currently this can be Win95, Windows, Win32s, WinNT. -// For some systems, you can't tell until run-time what services you -// have. See wxGetOsVersion, which uses this string if present. -char *wxOsVersion = NULL; - -int wxPageNumber; - -// GDI Object Lists -wxBrushList *wxTheBrushList = NULL; -wxPenList *wxThePenList = NULL; -wxFontList *wxTheFontList = NULL; -wxBitmapList *wxTheBitmapList = NULL; - -wxColourDatabase *wxTheColourDatabase = NULL; - -// Stock objects -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; -wxPen *wxRED_PEN; - -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = NULL; -wxCursor *wxHOURGLASS_CURSOR = NULL; -wxCursor *wxCROSS_CURSOR = NULL; - -// 'Null' objects -wxAcceleratorTable wxNullAcceleratorTable; -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxPalette wxNullPalette; -wxFont wxNullFont; -wxColour wxNullColour; - -// Default window names -const char *wxButtonNameStr = "button"; -const char *wxCanvasNameStr = "canvas"; -const char *wxCheckBoxNameStr = "check"; -const char *wxChoiceNameStr = "choice"; -const char *wxComboBoxNameStr = "comboBox"; -const char *wxDialogNameStr = "dialog"; -const char *wxFrameNameStr = "frame"; -const char *wxGaugeNameStr = "gauge"; -const char *wxStaticBoxNameStr = "groupBox"; -const char *wxListBoxNameStr = "listBox"; -const char *wxStaticTextNameStr = "message"; -const char *wxStaticBitmapNameStr = "message"; -const char *wxMultiTextNameStr = "multitext"; -const char *wxPanelNameStr = "panel"; -const char *wxRadioBoxNameStr = "radioBox"; -const char *wxRadioButtonNameStr = "radioButton"; -const char *wxBitmapRadioButtonNameStr = "radioButton"; -const char *wxScrollBarNameStr = "scrollBar"; -const char *wxSliderNameStr = "slider"; -const char *wxStaticNameStr = "static"; -const char *wxTextCtrlWindowNameStr = "textWindow"; -const char *wxTextCtrlNameStr = "text"; -const char *wxVirtListBoxNameStr = "virtListBox"; -const char *wxButtonBarNameStr = "buttonbar"; -const char *wxEnhDialogNameStr = "Shell"; -const char *wxToolBarNameStr = "toolbar"; -const char *wxStatusLineNameStr = "status_line"; -const char *wxEmptyString = ""; -const char *wxGetTextFromUserPromptStr = "Input Text"; -const char *wxMessageBoxCaptionStr = "Message"; -const char *wxFileSelectorPromptStr = "Select a file"; -const char *wxFileSelectorDefaultWildcardStr = "*.*"; -const char *wxInternalErrorStr = "wxWindows Internal Error"; -const char *wxFatalErrorStr = "wxWindows Fatal Error"; -const char *wxTreeCtrlNameStr = "treeCtrl"; - -// See wx/utils.h -const char *wxFloatToStringStr = "%.2f"; -const char *wxDoubleToStringStr = "%.2f"; - -#ifdef __WXMSW__ -const char *wxUserResourceStr = "TEXT"; -#endif - -#if wxUSE_SHARED_LIBRARY -/* - * For wxWindows to be made into a dynamic library (e.g. Sun), - * all IMPLEMENT_... macros must be in one place. - * But normally, the definitions are in the appropriate places. - */ - -// Hand-coded IMPLEMENT... macro for wxObject (define static data) -wxClassInfo wxObject::classwxObject("wxObject", NULL, NULL, sizeof(wxObject), NULL); -wxClassInfo *wxClassInfo::first = NULL; -wxClassInfo wxClassInfo::classTable(wxKEY_STRING); - -#include "wx/button.h" -#include "wx/bmpbuttn.h" -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) - -#include "wx/checkbox.h" -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) - -#include "wx/choice.h" -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) - -#if wxUSE_CLIPBOARD -#include "wx/clipbrd.h" -IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject) -#endif - -#if wxUSE_COMBOBOX -#include "wx/combobox.h" -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -#include "wx/dc.h" -#include "wx/dcmemory.h" -#include "wx/dcclient.h" -#include "wx/dcscreen.h" -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) -IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC) - -#if defined(__WXMSW__) -#include "wx/dcprint.h" -IMPLEMENT_CLASS(wxPrinterDC, wxDC) -#endif - -#include "wx/dialog.h" -IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxWindow) - -#include "wx/frame.h" -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) - -#include "wx/mdi.h" -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) - -#include "wx/cmndata.h" -IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxFontData, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject) - -#include "wx/colordlg.h" -#include "wx/fontdlg.h" - -#if !defined(__WXMSW__) || wxUSE_GENERIC_DIALOGS_IN_MSW -#include "wx/generic/colordlg.h" -#include "wx/generic/fontdlg.h" -IMPLEMENT_DYNAMIC_CLASS(wxGenericColourDialog, wxDialog) -IMPLEMENT_DYNAMIC_CLASS(wxGenericFontDialog, wxDialog) -#endif - -// X defines wxColourDialog to be wxGenericColourDialog -#ifndef __X__ -IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif - -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/font.h" -#include "wx/palette.h" -#include "wx/icon.h" -#include "wx/cursor.h" - -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -IMPLEMENT_CLASS(wxColourDatabase, wxList) -IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList) -IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList) -IMPLEMENT_DYNAMIC_CLASS(wxBrushList, wxList) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapList, wxList) - -/* -#if (!USE_TYPEDEFS) -IMPLEMENT_DYNAMIC_CLASS(wxPoint, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxRealPoint, wxObject) -#endif -*/ - -#include "wx/hash.h" -IMPLEMENT_DYNAMIC_CLASS(wxHashTable, wxObject) - -#include "wx/helpbase.h" -IMPLEMENT_CLASS(wxHelpControllerBase, wxObject) - -#if wxUSE_HELP - -#ifdef __WXMSW__ -#include "wx/msw/helpwin.h" -IMPLEMENT_DYNAMIC_CLASS(wxWinHelpController, wxHelpControllerBase) -#endif - -// Generic wxHelp controller -IMPLEMENT_CLASS(wxXLPHelpController, wxHelpControllerBase) - -#ifdef __WXMSW__ -IMPLEMENT_CLASS(wxXLPHelpClient, wxDDEClient) -IMPLEMENT_CLASS(wxXLPHelpConnection, wxDDEConnection) -#else -IMPLEMENT_CLASS(wxXLPHelpClient, wxTCPClient) -IMPLEMENT_CLASS(wxXLPHelpConnection, wxTCPConnection) -#endif - -#endif - -IMPLEMENT_DYNAMIC_CLASS(wxString, wxObject) - -#include "wx/list.h" -IMPLEMENT_DYNAMIC_CLASS(wxNode, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxList, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxStringList, wxList) - -#if wxUSE_PRINTING_ARCHITECTURE -#include "wx/print.h" -IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog) -IMPLEMENT_DYNAMIC_CLASS(wxPrinterBase, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxPostScriptPrinter, wxPrinterBase) -IMPLEMENT_DYNAMIC_CLASS(wxWindowsPrinter, wxPrinterBase) -IMPLEMENT_ABSTRACT_CLASS(wxPrintout, wxObject) -IMPLEMENT_CLASS(wxPreviewCanvas, wxWindow) -IMPLEMENT_CLASS(wxPreviewControlBar, wxWindow) -IMPLEMENT_CLASS(wxPreviewFrame, wxFrame) -IMPLEMENT_CLASS(wxPrintPreviewBase, wxObject) -IMPLEMENT_CLASS(wxPostScriptPrintPreview, wxPrintPreviewBase) -IMPLEMENT_CLASS(wxWindowsPrintPreview, wxPrintPreviewBase) -IMPLEMENT_CLASS(wxGenericPrintDialog, wxDialog) -IMPLEMENT_CLASS(wxGenericPrintSetupDialog, wxDialog) -#endif - -#if wxUSE_POSTSCRIPT -#include "wx/dcps.h" -IMPLEMENT_DYNAMIC_CLASS(wxPostScriptDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxPrintSetupData, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxPageSetupData, wxObject) -#endif - -IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperType, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxPrintPaperDatabase, wxList) - -#if wxUSE_WX_RESOURCES -#include "wx/resource.h" -IMPLEMENT_DYNAMIC_CLASS(wxItemResource, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxResourceTable, wxHashTable) -#endif - -#include "wx/event.h" -IMPLEMENT_DYNAMIC_CLASS(wxEvtHandler, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxEvent, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxCommandEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxNotifyEvent, wxCommandEvent) -IMPLEMENT_DYNAMIC_CLASS(wxScrollEvent, wxCommandEvent) -IMPLEMENT_DYNAMIC_CLASS(wxMouseEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxKeyEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxSizeEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxPaintEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxEraseEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxMoveEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxFocusEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxCloseEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxShowEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxMaximizeEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxIconizeEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxMenuEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxJoystickEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxDropFilesEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxActivateEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxInitDialogEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxSysColourChangedEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxIdleEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxUpdateUIEvent, wxEvent) -IMPLEMENT_DYNAMIC_CLASS(wxProcessEvent, wxEvent) - -#include "wx/utils.h" -IMPLEMENT_DYNAMIC_CLASS(wxPathList, wxList) - -// IMPLEMENT_DYNAMIC_CLASS(wxRect, wxObject) - -#include "wx/process.h" -IMPLEMENT_DYNAMIC_CLASS(wxProcess, wxEvtHandler) - -#if wxUSE_TIMEDATE -#include "wx/date.h" -IMPLEMENT_DYNAMIC_CLASS(wxDate, wxObject) -#endif - -#if wxUSE_DOC_VIEW_ARCHITECTURE -#include "wx/docview.h" -//IMPLEMENT_ABSTRACT_CLASS(wxDocItem, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxDocument, wxEvtHandler) -IMPLEMENT_ABSTRACT_CLASS(wxView, wxEvtHandler) -IMPLEMENT_ABSTRACT_CLASS(wxDocTemplate, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxDocManager, wxEvtHandler) -IMPLEMENT_CLASS(wxDocChildFrame, wxFrame) -IMPLEMENT_CLASS(wxDocParentFrame, wxFrame) -#if wxUSE_PRINTING_ARCHITECTURE -IMPLEMENT_DYNAMIC_CLASS(wxDocPrintout, wxPrintout) -#endif -IMPLEMENT_CLASS(wxCommand, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxCommandProcessor, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxFileHistory, wxObject) -#endif - -#if wxUSE_CONSTRAINTS -#include "wx/layout.h" -IMPLEMENT_DYNAMIC_CLASS(wxIndividualLayoutConstraint, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxLayoutConstraints, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxSizer, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxRowColSizer, wxSizer) -#endif - -#if wxUSE_TOOLBAR -#include "wx/tbarbase.h" -IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxToolBarBase, wxControl) - -#include "wx/tbarsmpl.h" -IMPLEMENT_DYNAMIC_CLASS(wxToolBarSimple, wxToolBarBase) - -#ifdef __WXMSW__ -#include "wx/tbarmsw.h" -IMPLEMENT_DYNAMIC_CLASS(wxToolBarMSW, wxToolBarBase) - -#include "wx/tbar95.h" -IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase) -#endif - -#endif - -#if wxUSE_SOCKETS - -#include "wx/sckaddr.h" - -IMPLEMENT_DYNAMIC_CLASS(wxIPV4address, wxSockAddress) -#ifdef ENABLE_IPV6 -IMPLEMENT_DYNAMIC_CLASS(wxIPV6address, wxSockAddress) -#endif -#ifndef __UNIX__ -IMPLEMENT_DYNAMIC_CLASS(wxUNIXaddress, wxSockAddress) -#endif - -#include "wx/socket.h" - -IMPLEMENT_CLASS(wxSocketBase, wxEvtHandler) -IMPLEMENT_CLASS(wxSocketClient, wxSocketBase) -IMPLEMENT_CLASS(wxSocketServer, wxSocketBase) -IMPLEMENT_CLASS(wxSocketHandler, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxSocketEvent, wxEvent) - -#include "wx/url.h" - -IMPLEMENT_CLASS(wxProtoInfo, wxObject) -IMPLEMENT_CLASS(wxURL, wxObject) - -#include "wx/protocol/http.h" - -IMPLEMENT_DYNAMIC_CLASS(wxHTTP, wxProtocol) -IMPLEMENT_PROTOCOL(wxHTTP, "http", "80", TRUE) - -#include "wx/protocol/ftp.h" - -IMPLEMENT_DYNAMIC_CLASS(wxFTP, wxProtocol) -IMPLEMENT_PROTOCOL(wxFTP, "ftp", "21", TRUE) - -#include "wx/protocol/sckfile.h" - -IMPLEMENT_DYNAMIC_CLASS(wxFileProto, wxProtocol) -IMPLEMENT_PROTOCOL(wxFileProto, "file", NULL, FALSE) - -#include "wx/sckipc.h" - -IMPLEMENT_DYNAMIC_CLASS(wxTCPServer, wxServerBase) -IMPLEMENT_DYNAMIC_CLASS(wxTCPClient, wxClientBase) -IMPLEMENT_DYNAMIC_CLASS(wxTCPConnection, wxConnectionBase) - -#endif - -#include "wx/statusbr.h" - -IMPLEMENT_DYNAMIC_CLASS(wxStatusBar, wxWindow) - -BEGIN_EVENT_TABLE(wxStatusBar, wxWindow) - EVT_PAINT(wxStatusBar::OnPaint) - EVT_SYS_COLOUR_CHANGED(wxStatusBar::OnSysColourChanged) -END_EVENT_TABLE() - -#if wxUSE_TIMEDATE -#include "wx/time.h" -IMPLEMENT_DYNAMIC_CLASS(wxTime, wxObject) -#endif - -#if !USE_GNU_WXSTRING -#include "wx/string.h" -IMPLEMENT_DYNAMIC_CLASS(wxString, wxObject) -#endif - -#ifdef __WXMOTIF__ -IMPLEMENT_DYNAMIC_CLASS(wxXColormap, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxXFont, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxXCursor, wxObject) -#endif -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) - -// This will presumably be implemented on other platforms too -#ifdef __WXMSW__ -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler) -IMPLEMENT_DYNAMIC_CLASS(wxBMPFileHandler, wxBitmapHandler) -IMPLEMENT_DYNAMIC_CLASS(wxXPMFileHandler, wxBitmapHandler) -IMPLEMENT_DYNAMIC_CLASS(wxXPMDataHandler, wxBitmapHandler) -IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxBitmapHandler) -IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxBitmapHandler) -#endif - -#include "wx/statbox.h" -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -#if wxUSE_IPC -#include "wx/dde.h" -IMPLEMENT_CLASS(wxServerBase, wxObject) -IMPLEMENT_CLASS(wxClientBase, wxObject) -IMPLEMENT_CLASS(wxConnectionBase, wxObject) - -IMPLEMENT_DYNAMIC_CLASS(wxDDEServer, wxServerBase) -IMPLEMENT_DYNAMIC_CLASS(wxDDEClient, wxClientBase) -IMPLEMENT_CLASS(wxDDEConnection, wxConnectionBase) -#endif - -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -#include "wx/listbox.h" -IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) - -#include "wx/checklst.h" -IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox) - -IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) - -#include "wx/menu.h" -IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) - -#include "wx/stattext.h" -#include "wx/statbmp.h" -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) - -#if wxUSE_METAFILE -#include "wx/metafile.h" -IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC) -#endif - -#include "wx/radiobox.h" -#include "wx/radiobut.h" -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) - -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -// IMPLEMENT_DYNAMIC_CLASS(wxBitmapRadioButton, wxRadioButton) - -#include "wx/scrolbar.h" -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) - -#if WXWIN_COMPATIBILITY -BEGIN_EVENT_TABLE(wxScrollBar, wxControl) - EVT_SCROLL(wxScrollBar::OnScroll) -END_EVENT_TABLE() -#endif - -#include "wx/slider.h" -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - -#if WXWIN_COMPATIBILITY -BEGIN_EVENT_TABLE(wxSlider, wxControl) - EVT_SCROLL(wxSlider::OnScroll) -END_EVENT_TABLE() -#endif - -#include "wx/timer.h" -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) - -#include "wx/textctrl.h" -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - -#include "wx/window.h" -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler) - -#include "wx/scrolwin.h" -IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindow, wxWindow) - -#include "wx/panel.h" -IMPLEMENT_DYNAMIC_CLASS(wxPanel, wxWindow) - -#include "wx/msgbxdlg.h" -#include "wx/textdlg.h" -#include "wx/filedlg.h" -#include "wx/dirdlg.h" -#include "wx/choicdlg.h" - -#if !defined(__WXMSW__) || wxUSE_GENERIC_DIALOGS_IN_MSW -#include "wx/generic/msgdlgg.h" -IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog) -#endif - -IMPLEMENT_CLASS(wxTextEntryDialog, wxDialog) -IMPLEMENT_CLASS(wxSingleChoiceDialog, wxDialog) -IMPLEMENT_CLASS(wxFileDialog, wxDialog) -IMPLEMENT_CLASS(wxDirDialog, wxDialog) - -#ifdef __WXMSW__ -IMPLEMENT_CLASS(wxMessageDialog) -#endif - -#if wxUSE_GAUGE -#ifdef __WXMOTIF__ -#include "../../contrib/xmgauge/gauge.h" -#endif -#include "wx_gauge.h" -IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif - -#include "wx/grid.h" -IMPLEMENT_DYNAMIC_CLASS(wxGenericGrid, wxPanel) - -///// Event tables (also must be in one, statically-linked file for shared libraries) - -// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here -const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } - -const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; - -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_ACTIVATE(wxFrame::OnActivate) - EVT_SIZE(wxFrame::OnSize) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) - EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) - EVT_IDLE(wxFrame::OnIdle) - EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) - EVT_CHAR(wxWindow::OnChar) - EVT_SIZE(wxWindow::Size) - EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindow::OnInitDialog) - EVT_IDLE(wxWindow::OnIdle) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxScrolledWindow, wxWindow) - EVT_SCROLL(wxScrolledWindow::OnScroll) - EVT_SIZE(wxScrolledWindow::OnSize) - EVT_PAINT(wxScrolledWindow::OnPaint) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxPanel, wxWindow) - EVT_SYS_COLOUR_CHANGED(wxPanel::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_CHAR(wxTextCtrl::OnChar) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) -END_EVENT_TABLE() - -#ifdef __WXMSW__ -BEGIN_EVENT_TABLE(wxMDIParentWindow, wxFrame) - EVT_SIZE(wxMDIParentWindow::OnSize) - EVT_ACTIVATE(wxMDIParentWindow::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentWindow::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() -#endif - -BEGIN_EVENT_TABLE(wxToolBarBase, wxControl) - EVT_SCROLL(wxToolBarBase::OnScroll) - EVT_SIZE(wxToolBarBase::OnSize) - EVT_IDLE(wxToolBarBase::OnIdle) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxToolBarSimple, wxToolBarBase) - EVT_SIZE(wxToolBarSimple::OnSize) - EVT_PAINT(wxToolBarSimple::OnPaint) - EVT_KILL_FOCUS(wxToolBarSimple::OnKillFocus) - EVT_MOUSE_EVENTS(wxToolBarSimple::OnMouseEvent) -END_EVENT_TABLE() - -#ifdef __WXMSW__ -BEGIN_EVENT_TABLE(wxToolBarMSW, wxToolBarBase) - EVT_SIZE(wxToolBarMSW::OnSize) - EVT_PAINT(wxToolBarMSW::OnPaint) - EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase) - EVT_SIZE(wxToolBar95::OnSize) - EVT_PAINT(wxToolBar95::OnPaint) - EVT_KILL_FOCUS(wxToolBar95::OnKillFocus) - EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent) - EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged) -END_EVENT_TABLE() -#endif - -BEGIN_EVENT_TABLE(wxGenericGrid, wxPanel) - EVT_SIZE(wxGenericGrid::OnSize) - EVT_PAINT(wxGenericGrid::OnPaint) - EVT_MOUSE_EVENTS(wxGenericGrid::OnMouseEvent) - EVT_TEXT(wxGRID_TEXT_CTRL, wxGenericGrid::OnText) - EVT_COMMAND_SCROLL(wxGRID_HSCROLL, wxGenericGrid::OnGridScroll) - EVT_COMMAND_SCROLL(wxGRID_VSCROLL, wxGenericGrid::OnGridScroll) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxControl, wxWindow) - EVT_ERASE_BACKGROUND(wxControl::OnEraseBackground) -END_EVENT_TABLE() - -#if !defined(__WXMSW__) || wxUSE_GENERIC_DIALOGS_IN_MSW -BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog) - EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes) - EVT_BUTTON(wxID_NO, wxGenericMessageDialog::OnNo) - EVT_BUTTON(wxID_CANCEL, wxGenericMessageDialog::OnCancel) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxGenericColourDialog, wxDialog) - EVT_BUTTON(wxID_ADD_CUSTOM, wxGenericColourDialog::OnAddCustom) - EVT_SLIDER(wxID_RED_SLIDER, wxGenericColourDialog::OnRedSlider) - EVT_SLIDER(wxID_GREEN_SLIDER, wxGenericColourDialog::OnGreenSlider) - EVT_SLIDER(wxID_BLUE_SLIDER, wxGenericColourDialog::OnBlueSlider) - EVT_PAINT(wxGenericColourDialog::OnPaint) - EVT_MOUSE_EVENTS(wxGenericColourDialog::OnMouseEvent) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxGenericFontDialog, wxDialog) - EVT_CHECKBOX(wxID_FONT_UNDERLINE, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_STYLE, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_WEIGHT, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_FAMILY, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_COLOUR, wxGenericFontDialog::OnChangeFont) - EVT_CHOICE(wxID_FONT_SIZE, wxGenericFontDialog::OnChangeFont) - EVT_PAINT(wxGenericFontDialog::OnPaint) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxGenericPrintDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxGenericPrintDialog::OnOK) - EVT_BUTTON(wxPRINTID_SETUP, wxGenericPrintDialog::OnSetup) - EVT_RADIOBOX(wxPRINTID_RANGE, wxGenericPrintDialog::OnRange) -END_EVENT_TABLE() - -#endif - -BEGIN_EVENT_TABLE(wxTextEntryDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxTextEntryDialog::OnOK) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxSingleChoiceDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxSingleChoiceDialog::OnOK) -END_EVENT_TABLE() - -#include "wx/prntbase.h" - -BEGIN_EVENT_TABLE(wxPrintAbortDialog, wxDialog) - EVT_BUTTON(wxID_CANCEL, wxPrintAbortDialog::OnCancel) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxPreviewControlBar, wxWindow) - EVT_BUTTON(wxID_PREVIEW_CLOSE, wxPreviewControlBar::OnClose) - EVT_BUTTON(wxID_PREVIEW_PRINT, wxPreviewControlBar::OnPrint) - EVT_BUTTON(wxID_PREVIEW_PREVIOUS, wxPreviewControlBar::OnPrevious) - EVT_BUTTON(wxID_PREVIEW_NEXT, wxPreviewControlBar::OnNext) - EVT_CHOICE(wxID_PREVIEW_ZOOM, wxPreviewControlBar::OnZoom) -END_EVENT_TABLE() - -#endif - - -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp deleted file mode 100644 index a7b088cb0e..0000000000 --- a/src/msw/dc.cpp +++ /dev/null @@ -1,1575 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: wxDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "dc.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/window.h" - #include "wx/dc.h" - #include "wx/utils.h" - #include "wx/dialog.h" - #include "wx/app.h" - #include "wx/bitmap.h" - #include "wx/dcmemory.h" - #include "wx/log.h" - #include "wx/icon.h" -#endif - -#include "wx/dcprint.h" - -#include -#include - -#if wxUSE_COMMON_DIALOGS - #include -#endif - -#ifndef __WIN32__ - #include -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -#endif - -// --------------------------------------------------------------------------- -// constants -// --------------------------------------------------------------------------- - -static const int VIEWPORT_EXTENT = 1000; - -static const int MM_POINTS = 9; -static const int MM_METRIC = 10; - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -// Logical to device -// Absolute -#define XLOG2DEV(x) (x) -#define YLOG2DEV(y) (y) - -// Relative -#define XLOG2DEVREL(x) (x) -#define YLOG2DEVREL(y) (y) - -// Device to logical -// Absolute -#define XDEV2LOG(x) (x) - -#define YDEV2LOG(y) (y) - -// Relative -#define XDEV2LOGREL(x) (x) -#define YDEV2LOGREL(y) (y) - -/* - * Have the same macros as for XView but not for every operation: - * just for calculating window/viewport extent (a better way of scaling). - */ - -// Logical to device -// Absolute -#define MS_XLOG2DEV(x) LogicalToDevice(x) - -#define MS_YLOG2DEV(y) LogicalToDevice(y) - -// Relative -#define MS_XLOG2DEVREL(x) LogicalToDeviceXRel(x) -#define MS_YLOG2DEVREL(y) LogicalToDeviceYRel(y) - -// Device to logical -// Absolute -#define MS_XDEV2LOG(x) DeviceToLogicalX(x) - -#define MS_YDEV2LOG(y) DeviceToLogicalY(y) - -// Relative -#define MS_XDEV2LOGREL(x) DeviceToLogicalXRel(x) -#define MS_YDEV2LOGREL(y) DeviceToLogicalYRel(y) - -#define YSCALE(y) (yorigin - (y)) - -#define wx_round(a) (int)((a)+.5) - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxDC -// --------------------------------------------------------------------------- - -// Default constructor -wxDC::wxDC() -{ - m_canvas = NULL; - - m_oldBitmap = 0; - m_oldPen = 0; - m_oldBrush = 0; - m_oldFont = 0; - m_oldPalette = 0; - - m_bOwnsDC = FALSE; - m_hDC = 0; - - m_windowExtX = VIEWPORT_EXTENT; - m_windowExtY = VIEWPORT_EXTENT; - - m_hDCCount = 0; -} - - -wxDC::~wxDC() -{ - if ( m_hDC != 0 ) { - SelectOldObjects(m_hDC); - if ( m_bOwnsDC ) { - if ( m_canvas == NULL ) - ::DeleteDC(GetHdc()); - else - ::ReleaseDC((HWND)m_canvas->GetHWND(), GetHdc()); - } - } - -} - -// This will select current objects out of the DC, -// which is what you have to do before deleting the -// DC. -void wxDC::SelectOldObjects(WXHDC dc) -{ - if (dc) - { - if (m_oldBitmap) - { - ::SelectObject((HDC) dc, (HBITMAP) m_oldBitmap); - if (m_selectedBitmap.Ok()) - { - m_selectedBitmap.SetSelectedInto(NULL); - } - } - m_oldBitmap = 0; - if (m_oldPen) - { - ::SelectObject((HDC) dc, (HPEN) m_oldPen); - } - m_oldPen = 0; - if (m_oldBrush) - { - ::SelectObject((HDC) dc, (HBRUSH) m_oldBrush); - } - m_oldBrush = 0; - if (m_oldFont) - { - ::SelectObject((HDC) dc, (HFONT) m_oldFont); - } - m_oldFont = 0; - if (m_oldPalette) - { - ::SelectPalette((HDC) dc, (HPALETTE) m_oldPalette, TRUE); - } - m_oldPalette = 0; - } - - m_brush = wxNullBrush; - m_pen = wxNullPen; - m_palette = wxNullPalette; - m_font = wxNullFont; - m_backgroundBrush = wxNullBrush; - m_selectedBitmap = wxNullBitmap; -} - -// --------------------------------------------------------------------------- -// clipping -// --------------------------------------------------------------------------- - -void wxDC::DoSetClippingRegion(long cx, long cy, long cw, long ch) -{ - m_clipping = TRUE; - m_clipX1 = (int)cx; - m_clipY1 = (int)cy; - m_clipX2 = (int)(cx + cw); - m_clipY2 = (int)(cy + ch); - - DoClipping((WXHDC) m_hDC); -} - -void wxDC::DoSetClippingRegionAsRegion(const wxRegion& region) -{ - wxCHECK_RET( region.GetHRGN(), _T("invalid clipping region") ); - - wxRect box = region.GetBox(); - - m_clipping = TRUE; - m_clipX1 = box.x; - m_clipY1 = box.y; - m_clipX2 = box.x + box.width; - m_clipY2 = box.y + box.height; - -#ifdef __WIN16__ - SelectClipRgn(GetHdc(), (HRGN) region.GetHRGN()); -#else - ExtSelectClipRgn(GetHdc(), (HRGN) region.GetHRGN(), RGN_AND); -#endif -} - -void wxDC::DoClipping(WXHDC dc) -{ - if (m_clipping && dc) - { - IntersectClipRect((HDC) dc, XLOG2DEV(m_clipX1), YLOG2DEV(m_clipY1), - XLOG2DEV(m_clipX2), YLOG2DEV(m_clipY2)); - } -} - -void wxDC::DestroyClippingRegion() -{ - if (m_clipping && m_hDC) - { - // TODO: this should restore the previous clipping region, - // so that OnPaint processing works correctly, and the update clipping region - // doesn't get destroyed after the first DestroyClippingRegion. - HRGN rgn = CreateRectRgn(0, 0, 32000, 32000); - SelectClipRgn(GetHdc(), rgn); - DeleteObject(rgn); - } - m_clipping = FALSE; -} - -// --------------------------------------------------------------------------- -// query capabilities -// --------------------------------------------------------------------------- - -bool wxDC::CanDrawBitmap() const -{ - return TRUE; -} - -bool wxDC::CanGetTextExtent() const -{ - // What sort of display is it? - int technology = ::GetDeviceCaps(GetHdc(), TECHNOLOGY); - - return (technology == DT_RASDISPLAY) || (technology == DT_RASPRINTER); -} - -int wxDC::GetDepth() const -{ - return (int)::GetDeviceCaps(GetHdc(), BITSPIXEL); -} - -// --------------------------------------------------------------------------- -// drawing -// --------------------------------------------------------------------------- - -void wxDC::Clear() -{ - RECT rect; - if (m_canvas) - GetClientRect((HWND) m_canvas->GetHWND(), &rect); - else if (m_selectedBitmap.Ok()) - { - rect.left = 0; rect.top = 0; - rect.right = m_selectedBitmap.GetWidth(); - rect.bottom = m_selectedBitmap.GetHeight(); - } - (void) ::SetMapMode(GetHdc(), MM_TEXT); - - DWORD colour = GetBkColor(GetHdc()); - HBRUSH brush = CreateSolidBrush(colour); - FillRect(GetHdc(), &rect, brush); - DeleteObject(brush); - - ::SetMapMode(GetHdc(), MM_ANISOTROPIC); - ::SetViewportExtEx(GetHdc(), VIEWPORT_EXTENT, VIEWPORT_EXTENT, NULL); - ::SetWindowExtEx(GetHdc(), m_windowExtX, m_windowExtY, NULL); - ::SetViewportOrgEx(GetHdc(), (int)m_deviceOriginX, (int)m_deviceOriginY, NULL); - ::SetWindowOrgEx(GetHdc(), (int)m_logicalOriginX, (int)m_logicalOriginY, NULL); -} - -void wxDC::DoFloodFill(long x, long y, const wxColour& col, int style) -{ - (void)ExtFloodFill(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), - col.GetPixel(), - style == wxFLOOD_SURFACE ? FLOODFILLSURFACE - : FLOODFILLBORDER); - - CalcBoundingBox(x, y); -} - -bool wxDC::DoGetPixel(long x, long y, wxColour *col) const -{ - // added by steve 29.12.94 (copied from DrawPoint) - // returns TRUE for pixels in the color of the current pen - // and FALSE for all other pixels colors - // if col is non-NULL return the color of the pixel - - // get the color of the pixel - COLORREF pixelcolor = ::GetPixel(GetHdc(), XLOG2DEV(x), YLOG2DEV(y)); - // get the color of the pen - COLORREF pencolor = 0x00ffffff; - if (m_pen.Ok()) - { - pencolor = m_pen.GetColour().GetPixel(); - } - - // return the color of the pixel - if(col) - col->Set(GetRValue(pixelcolor),GetGValue(pixelcolor),GetBValue(pixelcolor)); - - // check, if color of the pixels is the same as the color - // of the current pen - return(pixelcolor==pencolor); -} - -void wxDC::DoCrossHair(long x, long y) -{ - long x1 = x-VIEWPORT_EXTENT; - long y1 = y-VIEWPORT_EXTENT; - long x2 = x+VIEWPORT_EXTENT; - long y2 = y+VIEWPORT_EXTENT; - - (void)MoveToEx(GetHdc(), XLOG2DEV(x1), YLOG2DEV(y), NULL); - (void)LineTo(GetHdc(), XLOG2DEV(x2), YLOG2DEV(y)); - - (void)MoveToEx(GetHdc(), XLOG2DEV(x), YLOG2DEV(y1), NULL); - (void)LineTo(GetHdc(), XLOG2DEV(x), YLOG2DEV(y2)); - - CalcBoundingBox(x1, y1); - CalcBoundingBox(x2, y2); -} - -void wxDC::DoDrawLine(long x1, long y1, long x2, long y2) -{ - (void)MoveToEx(GetHdc(), XLOG2DEV(x1), YLOG2DEV(y1), NULL); - (void)LineTo(GetHdc(), XLOG2DEV(x2), YLOG2DEV(y2)); - - /* MATTHEW: [6] New normalization */ -#if WX_STANDARD_GRAPHICS - (void)LineTo(GetHdc(), XLOG2DEV(x2) + 1, YLOG2DEV(y2)); -#endif - - CalcBoundingBox(x1, y1); - CalcBoundingBox(x2, y2); -} - -void wxDC::DoDrawArc(long x1,long y1,long x2,long y2, long xc, long yc) -{ - double dx = xc-x1; - double dy = yc-y1; - double radius = (double)sqrt(dx*dx+dy*dy) ;; - if (x1==x2 && x2==y2) - { - DrawEllipse(xc,yc,(long)(radius*2.0),(long)(radius*2.0)); - return; - } - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV(xc); - long yyc = YLOG2DEV(yc); - long ray = (long) sqrt(double((xxc-xx1)*(xxc-xx1)+(yyc-yy1)*(yyc-yy1))); - - (void)MoveToEx(GetHdc(), (int) xx1, (int) yy1, NULL); - long xxx1 = (long) (xxc-ray); - long yyy1 = (long) (yyc-ray); - long xxx2 = (long) (xxc+ray); - long yyy2 = (long) (yyc+ray); - if (m_brush.Ok() && m_brush.GetStyle() !=wxTRANSPARENT) - { - // Have to add 1 to bottom-right corner of rectangle - // to make semi-circles look right (crooked line otherwise). - // Unfortunately this is not a reliable method, depends - // on the size of shape. - // TODO: figure out why this happens! - Pie(GetHdc(),xxx1,yyy1,xxx2+1,yyy2+1, - xx1,yy1,xx2,yy2); - } - else - Arc(GetHdc(),xxx1,yyy1,xxx2,yyy2, - xx1,yy1,xx2,yy2); - - CalcBoundingBox((xc-radius), (yc-radius)); - CalcBoundingBox((xc+radius), (yc+radius)); -} - -void wxDC::DoDrawPoint(long x, long y) -{ - COLORREF color = 0x00ffffff; - if (m_pen.Ok()) - { - color = m_pen.GetColour().GetPixel(); - } - - SetPixel(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), color); - - CalcBoundingBox(x, y); -} - -void wxDC::DoDrawPolygon(int n, wxPoint points[], long xoffset, long yoffset,int fillStyle) -{ - // Do things less efficiently if we have offsets - if (xoffset != 0 || yoffset != 0) - { - POINT *cpoints = new POINT[n]; - int i; - for (i = 0; i < n; i++) - { - cpoints[i].x = (int)(points[i].x + xoffset); - cpoints[i].y = (int)(points[i].y + yoffset); - - CalcBoundingBox(cpoints[i].x, cpoints[i].y); - } - int prev = SetPolyFillMode(GetHdc(),fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING); - (void)Polygon(GetHdc(), cpoints, n); - SetPolyFillMode(GetHdc(),prev); - delete[] cpoints; - } - else - { - int i; - for (i = 0; i < n; i++) - CalcBoundingBox(points[i].x, points[i].y); - - int prev = SetPolyFillMode(GetHdc(),fillStyle==wxODDEVEN_RULE?ALTERNATE:WINDING); - (void)Polygon(GetHdc(), (POINT*) points, n); - SetPolyFillMode(GetHdc(),prev); - } -} - -void wxDC::DoDrawLines(int n, wxPoint points[], long xoffset, long yoffset) -{ - // Do things less efficiently if we have offsets - if (xoffset != 0 || yoffset != 0) - { - POINT *cpoints = new POINT[n]; - int i; - for (i = 0; i < n; i++) - { - cpoints[i].x = (int)(points[i].x + xoffset); - cpoints[i].y = (int)(points[i].y + yoffset); - - CalcBoundingBox(cpoints[i].x, cpoints[i].y); - } - (void)Polyline(GetHdc(), cpoints, n); - delete[] cpoints; - } - else - { - int i; - for (i = 0; i < n; i++) - CalcBoundingBox(points[i].x, points[i].y); - - (void)Polyline(GetHdc(), (POINT*) points, n); - } -} - -void wxDC::DoDrawRectangle(long x, long y, long width, long height) -{ - long x2 = x + width; - long y2 = y + height; - - /* MATTHEW: [6] new normalization */ -#if WX_STANDARD_GRAPHICS - bool do_brush, do_pen; - - do_brush = m_brush.Ok() && m_brush.GetStyle() != wxTRANSPARENT; - do_pen = m_pen.Ok() && m_pen.GetStyle() != wxTRANSPARENT; - - if (do_brush) { - HPEN orig_pen = NULL; - - if (do_pen || !m_pen.Ok()) - orig_pen = (HPEN) ::SelectObject(GetHdc(), (HPEN) ::GetStockObject(NULL_PEN)); - - (void)Rectangle(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), - XLOG2DEV(x2) + 1, YLOG2DEV(y2) + 1); - - if (do_pen || !m_pen.Ok()) - ::SelectObject(GetHdc() , orig_pen); - } - if (do_pen) { - HBRUSH orig_brush = NULL; - - if (do_brush || !m_brush.Ok()) - orig_brush = (HBRUSH) ::SelectObject(GetHdc(), (HBRUSH) ::GetStockObject(NULL_BRUSH)); - - (void)Rectangle(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), - XLOG2DEV(x2), YLOG2DEV(y2)); - - if (do_brush || !m_brush.Ok()) - ::SelectObject(GetHdc(), orig_brush); - } -#else - (void)Rectangle(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), XLOG2DEV(x2), YLOG2DEV(y2)); -#endif - - CalcBoundingBox(x, y); - CalcBoundingBox(x2, y2); -} - -void wxDC::DoDrawRoundedRectangle(long x, long y, long width, long height, double radius) -{ - // Now, a negative radius value is interpreted to mean - // 'the proportion of the smallest X or Y dimension' - - if (radius < 0.0) - { - double smallest = 0.0; - if (width < height) - smallest = width; - else - smallest = height; - radius = (- radius * smallest); - } - - long x2 = (x+width); - long y2 = (y+height); - - (void)RoundRect(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), XLOG2DEV(x2), - YLOG2DEV(y2), (int) (2*XLOG2DEV(radius)), (int)( 2*YLOG2DEV(radius))); - - CalcBoundingBox(x, y); - CalcBoundingBox(x2, y2); -} - -void wxDC::DoDrawEllipse(long x, long y, long width, long height) -{ - long x2 = (x+width); - long y2 = (y+height); - - (void)Ellipse(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), XLOG2DEV(x2), YLOG2DEV(y2)); - - CalcBoundingBox(x, y); - CalcBoundingBox(x2, y2); -} - -// Chris Breeze 20/5/98: first implementation of DrawEllipticArc on Windows -void wxDC::DoDrawEllipticArc(long x,long y,long w,long h,double sa,double ea) -{ - long x2 = (x+w); - long y2 = (y+h); - - const double deg2rad = 3.14159265359 / 180.0; - int rx1 = XLOG2DEV(x+w/2); - int ry1 = YLOG2DEV(y+h/2); - int rx2 = rx1; - int ry2 = ry1; - rx1 += (int)(100.0 * abs(w) * cos(sa * deg2rad)); - ry1 -= (int)(100.0 * abs(h) * m_signY * sin(sa * deg2rad)); - rx2 += (int)(100.0 * abs(w) * cos(ea * deg2rad)); - ry2 -= (int)(100.0 * abs(h) * m_signY * sin(ea * deg2rad)); - - // draw pie with NULL_PEN first and then outline otherwise a line is - // drawn from the start and end points to the centre - HPEN orig_pen = (HPEN) ::SelectObject(GetHdc(), (HPEN) ::GetStockObject(NULL_PEN)); - if (m_signY > 0) - { - (void)Pie(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), XLOG2DEV(x2)+1, YLOG2DEV(y2)+1, - rx1, ry1, rx2, ry2); - } - else - { - (void)Pie(GetHdc(), XLOG2DEV(x), YLOG2DEV(y)-1, XLOG2DEV(x2)+1, YLOG2DEV(y2), - rx1, ry1-1, rx2, ry2-1); - } - ::SelectObject(GetHdc(), orig_pen); - (void)Arc(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), XLOG2DEV(x2), YLOG2DEV(y2), - rx1, ry1, rx2, ry2); - - CalcBoundingBox(x, y); - CalcBoundingBox(x2, y2); -} - -void wxDC::DoDrawIcon(const wxIcon& icon, long x, long y) -{ -#if defined(__WIN32__) && !defined(__SC__) && !defined(__TWIN32__) - ::DrawIconEx(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON(), - icon.GetWidth(), icon.GetHeight(), 0, 0, DI_NORMAL); -#else - ::DrawIcon(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON()); -#endif - - CalcBoundingBox(x, y); - CalcBoundingBox(x+icon.GetWidth(), y+icon.GetHeight()); -} - -void wxDC::DoDrawBitmap( const wxBitmap &bmp, long x, long y, bool useMask ) -{ - if (!bmp.Ok()) - return; - - // If we're not drawing transparently, and not drawing to a printer, - // optimize this function to use Windows functions. - if (!useMask && !IsKindOf(CLASSINFO(wxPrinterDC))) - { - HDC cdc = GetHdc(); - HDC memdc = ::CreateCompatibleDC( cdc ); - HBITMAP hbitmap = (HBITMAP) bmp.GetHBITMAP( ); - ::SelectObject( memdc, hbitmap ); - ::BitBlt( cdc, x, y, bmp.GetWidth(), bmp.GetHeight(), memdc, 0, 0, SRCCOPY); - ::DeleteDC( memdc ); - } - else - { - // Rather than reproduce wxDC::Blit, let's do it at the wxWin API level - wxMemoryDC memDC; - memDC.SelectObject(bmp); - - /* Not sure if we need this. The mask should leave the - * masked areas as per the original background of this DC. - */ - /* - // There might be transparent areas, so make these - // the same colour as this DC - memDC.SetBackground(* GetBackground()); - memDC.Clear(); - */ - - Blit(x, y, bmp.GetWidth(), bmp.GetHeight(), & memDC, 0, 0, wxCOPY, useMask); - - memDC.SelectObject(wxNullBitmap); - } -} - -void wxDC::DoDrawText(const wxString& text, long x, long y) -{ - if (m_textForegroundColour.Ok()) - SetTextColor(GetHdc(), m_textForegroundColour.GetPixel() ); - - DWORD old_background = 0; - if (m_textBackgroundColour.Ok()) - { - old_background = SetBkColor(GetHdc(), m_textBackgroundColour.GetPixel() ); - } - - if (m_backgroundMode == wxTRANSPARENT) - SetBkMode(GetHdc(), TRANSPARENT); - else - SetBkMode(GetHdc(), OPAQUE); - - (void)TextOut(GetHdc(), XLOG2DEV(x), YLOG2DEV(y), (char *) (const char *)text, strlen((const char *)text)); - - if (m_textBackgroundColour.Ok()) - (void)SetBkColor(GetHdc(), old_background); - - CalcBoundingBox(x, y); - - long w, h; - GetTextExtent(text, &w, &h); - CalcBoundingBox((x + w), (y + h)); -} - -// --------------------------------------------------------------------------- -// set GDI objects -// --------------------------------------------------------------------------- - -void wxDC::SetPalette(const wxPalette& palette) -{ - // Set the old object temporarily, in case the assignment deletes an object - // that's not yet selected out. - if (m_oldPalette) - { - ::SelectPalette(GetHdc(), (HPALETTE) m_oldPalette, TRUE); - m_oldPalette = 0; - } - - m_palette = palette; - - if (!m_palette.Ok()) - { - // Setting a NULL colourmap is a way of restoring - // the original colourmap - if (m_oldPalette) - { - ::SelectPalette(GetHdc(), (HPALETTE) m_oldPalette, TRUE); - m_oldPalette = 0; - } - - return; - } - - if (m_palette.Ok() && m_palette.GetHPALETTE()) - { - HPALETTE oldPal = ::SelectPalette(GetHdc(), (HPALETTE) m_palette.GetHPALETTE(), TRUE); - if (!m_oldPalette) - m_oldPalette = (WXHPALETTE) oldPal; - - ::RealizePalette(GetHdc()); - } -} - -void wxDC::SetFont(const wxFont& the_font) -{ - // Set the old object temporarily, in case the assignment deletes an object - // that's not yet selected out. - if (m_oldFont) - { - ::SelectObject(GetHdc(), (HFONT) m_oldFont); - m_oldFont = 0; - } - - m_font = the_font; - - if (!the_font.Ok()) - { - if (m_oldFont) - ::SelectObject(GetHdc(), (HFONT) m_oldFont); - m_oldFont = 0; - } - - if (m_font.Ok() && m_font.GetResourceHandle()) - { - HFONT f = (HFONT) ::SelectObject(GetHdc(), (HFONT) m_font.GetResourceHandle()); - if (f == (HFONT) NULL) - { - wxLogDebug("::SelectObject failed in wxDC::SetFont."); - } - if (!m_oldFont) - m_oldFont = (WXHFONT) f; - } -} - -void wxDC::SetPen(const wxPen& pen) -{ - // Set the old object temporarily, in case the assignment deletes an object - // that's not yet selected out. - if (m_oldPen) - { - ::SelectObject(GetHdc(), (HPEN) m_oldPen); - m_oldPen = 0; - } - - m_pen = pen; - - if (!m_pen.Ok()) - { - if (m_oldPen) - ::SelectObject(GetHdc(), (HPEN) m_oldPen); - m_oldPen = 0; - } - - if (m_pen.Ok()) - { - if (m_pen.GetResourceHandle()) - { - HPEN p = (HPEN) ::SelectObject(GetHdc(), (HPEN)m_pen.GetResourceHandle()); - if (!m_oldPen) - m_oldPen = (WXHPEN) p; - } - } -} - -void wxDC::SetBrush(const wxBrush& brush) -{ - // Set the old object temporarily, in case the assignment deletes an object - // that's not yet selected out. - if (m_oldBrush) - { - ::SelectObject(GetHdc(), (HBRUSH) m_oldBrush); - m_oldBrush = 0; - } - - m_brush = brush; - - if (!m_brush.Ok()) - { - if (m_oldBrush) - ::SelectObject(GetHdc(), (HBRUSH) m_oldBrush); - m_oldBrush = 0; - } - - if (m_brush.Ok()) - { - if (m_brush.GetResourceHandle()) - { - HBRUSH b = 0; - b = (HBRUSH) ::SelectObject(GetHdc(), (HBRUSH)m_brush.GetResourceHandle()); - if (!m_oldBrush) - m_oldBrush = (WXHBRUSH) b; - } - } -} - -void wxDC::SetBackground(const wxBrush& brush) -{ - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) - return; - - if (m_canvas) - { - bool customColours = TRUE; - // If we haven't specified wxUSER_COLOURS, don't allow the panel/dialog box to - // change background colours from the control-panel specified colours. - if (m_canvas->IsKindOf(CLASSINFO(wxWindow)) && ((m_canvas->GetWindowStyleFlag() & wxUSER_COLOURS) != wxUSER_COLOURS)) - customColours = FALSE; - - if (customColours) - { - if (m_backgroundBrush.GetStyle()==wxTRANSPARENT) - { - m_canvas->SetTransparent(TRUE); - } - else - { - // New behaviour, 10/2/99: setting the background brush of a DC - // doesn't affect the window background colour. However, - // I'm leaving in the transparency setting because it's needed by - // various controls (e.g. wxStaticText) to determine whether to draw - // transparently or not. TODO: maybe this should be a new function - // wxWindow::SetTransparency(). Should that apply to the child itself, or the - // parent? - // m_canvas->SetBackgroundColour(m_backgroundBrush.GetColour()); - m_canvas->SetTransparent(FALSE); - } - } - } - COLORREF new_color = m_backgroundBrush.GetColour().GetPixel(); - { - (void)SetBkColor(GetHdc(), new_color); - } -} - -void wxDC::SetBackgroundMode(int mode) -{ - m_backgroundMode = mode; - - if (m_backgroundMode == wxTRANSPARENT) - ::SetBkMode(GetHdc(), TRANSPARENT); - else - ::SetBkMode(GetHdc(), OPAQUE); -} - -void wxDC::SetLogicalFunction(int function) -{ - m_logicalFunction = function; - - SetRop((WXHDC) m_hDC); -} - -void wxDC::SetRop(WXHDC dc) -{ - if (!dc || m_logicalFunction < 0) - return; - - int c_rop; - // These may be wrong - switch (m_logicalFunction) - { - // case wxXOR: c_rop = R2_XORPEN; break; - case wxXOR: c_rop = R2_NOTXORPEN; break; - case wxINVERT: c_rop = R2_NOT; break; - case wxOR_REVERSE: c_rop = R2_MERGEPENNOT; break; - case wxAND_REVERSE: c_rop = R2_MASKPENNOT; break; - case wxCLEAR: c_rop = R2_WHITE; break; - case wxSET: c_rop = R2_BLACK; break; - case wxSRC_INVERT: c_rop = R2_NOTCOPYPEN; break; - case wxOR_INVERT: c_rop = R2_MERGENOTPEN; break; - case wxAND: c_rop = R2_MASKPEN; break; - case wxOR: c_rop = R2_MERGEPEN; break; - case wxAND_INVERT: c_rop = R2_MASKNOTPEN; break; - case wxEQUIV: - case wxNAND: - case wxCOPY: - default: - c_rop = R2_COPYPEN; break; - } - SetROP2((HDC) dc, c_rop); -} - -bool wxDC::StartDoc(const wxString& message) -{ - // We might be previewing, so return TRUE to let it continue. - return TRUE; -} - -void wxDC::EndDoc() -{ -} - -void wxDC::StartPage() -{ -} - -void wxDC::EndPage() -{ -} - -// --------------------------------------------------------------------------- -// text metrics -// --------------------------------------------------------------------------- - -long wxDC::GetCharHeight() const -{ - TEXTMETRIC lpTextMetric; - - GetTextMetrics(GetHdc(), &lpTextMetric); - - return YDEV2LOGREL(lpTextMetric.tmHeight); -} - -long wxDC::GetCharWidth() const -{ - TEXTMETRIC lpTextMetric; - - GetTextMetrics(GetHdc(), &lpTextMetric); - - return XDEV2LOGREL(lpTextMetric.tmAveCharWidth); -} - -void wxDC::GetTextExtent(const wxString& string, long *x, long *y, - long *descent, long *externalLeading, - wxFont *theFont) const -{ - wxFont *fontToUse = (wxFont*) theFont; - if (!fontToUse) - fontToUse = (wxFont*) &m_font; - - SIZE sizeRect; - TEXTMETRIC tm; - - GetTextExtentPoint(GetHdc(), (char *)(const char *) string, strlen((char *)(const char *) string), &sizeRect); - GetTextMetrics(GetHdc(), &tm); - - if (x) *x = XDEV2LOGREL(sizeRect.cx); - if (y) *y = YDEV2LOGREL(sizeRect.cy); - if (descent) *descent = tm.tmDescent; - if (externalLeading) *externalLeading = tm.tmExternalLeading; -} - -void wxDC::SetMapMode(int mode) -{ - m_mappingMode = mode; - - int pixel_width = 0; - int pixel_height = 0; - int mm_width = 0; - int mm_height = 0; - - pixel_width = GetDeviceCaps(GetHdc(), HORZRES); - pixel_height = GetDeviceCaps(GetHdc(), VERTRES); - mm_width = GetDeviceCaps(GetHdc(), HORZSIZE); - mm_height = GetDeviceCaps(GetHdc(), VERTSIZE); - - if ((pixel_width == 0) || (pixel_height == 0) || (mm_width == 0) || (mm_height == 0)) - { - return; - } - - double mm2pixelsX = pixel_width/mm_width; - double mm2pixelsY = pixel_height/mm_height; - - switch (mode) - { - case wxMM_TWIPS: - { - m_logicalScaleX = (twips2mm * mm2pixelsX); - m_logicalScaleY = (twips2mm * mm2pixelsY); - break; - } - case wxMM_POINTS: - { - m_logicalScaleX = (pt2mm * mm2pixelsX); - m_logicalScaleY = (pt2mm * mm2pixelsY); - break; - } - case wxMM_METRIC: - { - m_logicalScaleX = mm2pixelsX; - m_logicalScaleY = mm2pixelsY; - break; - } - case wxMM_LOMETRIC: - { - m_logicalScaleX = (mm2pixelsX/10.0); - m_logicalScaleY = (mm2pixelsY/10.0); - break; - } - default: - case wxMM_TEXT: - { - m_logicalScaleX = 1.0; - m_logicalScaleY = 1.0; - break; - } - } - - if (::GetMapMode(GetHdc()) != MM_ANISOTROPIC) - ::SetMapMode(GetHdc(), MM_ANISOTROPIC); - - SetViewportExtEx(GetHdc(), VIEWPORT_EXTENT, VIEWPORT_EXTENT, NULL); - m_windowExtX = (int)MS_XDEV2LOGREL(VIEWPORT_EXTENT); - m_windowExtY = (int)MS_YDEV2LOGREL(VIEWPORT_EXTENT); - ::SetWindowExtEx(GetHdc(), m_windowExtX, m_windowExtY, NULL); - ::SetViewportOrgEx(GetHdc(), (int)m_deviceOriginX, (int)m_deviceOriginY, NULL); - ::SetWindowOrgEx(GetHdc(), (int)m_logicalOriginX, (int)m_logicalOriginY, NULL); -} - -void wxDC::SetUserScale(double x, double y) -{ - m_userScaleX = x; - m_userScaleY = y; - - SetMapMode(m_mappingMode); -} - -void wxDC::SetAxisOrientation(bool xLeftRight, bool yBottomUp) -{ - m_signX = xLeftRight ? 1 : -1; - m_signY = yBottomUp ? -1 : 1; - - SetMapMode(m_mappingMode); -} - -void wxDC::SetSystemScale(double x, double y) -{ - m_scaleX = x; - m_scaleY = y; - - SetMapMode(m_mappingMode); -} - -void wxDC::SetLogicalOrigin(long x, long y) -{ - m_logicalOriginX = x; - m_logicalOriginY = y; - - ::SetWindowOrgEx(GetHdc(), (int)m_logicalOriginX, (int)m_logicalOriginY, NULL); -} - -void wxDC::SetDeviceOrigin(long x, long y) -{ - m_deviceOriginX = x; - m_deviceOriginY = y; - - ::SetViewportOrgEx(GetHdc(), (int)m_deviceOriginX, (int)m_deviceOriginY, NULL); -} - -// --------------------------------------------------------------------------- -// coordinates transformations -// --------------------------------------------------------------------------- - -long wxDCBase::DeviceToLogicalX(long x) const -{ - return (long) (((x) - m_deviceOriginX)/(m_logicalScaleX*m_userScaleX*m_signX*m_scaleX) - m_logicalOriginX); -} - -long wxDCBase::DeviceToLogicalXRel(long x) const -{ - return (long) ((x)/(m_logicalScaleX*m_userScaleX*m_signX*m_scaleX)); -} - -long wxDCBase::DeviceToLogicalY(long y) const -{ - return (long) (((y) - m_deviceOriginY)/(m_logicalScaleY*m_userScaleY*m_signY*m_scaleY) - m_logicalOriginY); -} - -long wxDCBase::DeviceToLogicalYRel(long y) const -{ - return (long) ((y)/(m_logicalScaleY*m_userScaleY*m_signY*m_scaleY)); -} - -long wxDCBase::LogicalToDeviceX(long x) const -{ - return (long) ((x - m_logicalOriginX)*m_logicalScaleX*m_userScaleX*m_signX*m_scaleX + m_deviceOriginX); -} - -long wxDCBase::LogicalToDeviceXRel(long x) const -{ - return (long) (x*m_logicalScaleX*m_userScaleX*m_signX*m_scaleX); -} - -long wxDCBase::LogicalToDeviceY(long y) const -{ - return (long) ((y - m_logicalOriginY)*m_logicalScaleY*m_userScaleY*m_signY*m_scaleY + m_deviceOriginY); -} - -long wxDCBase::LogicalToDeviceYRel(long y) const -{ - return (long) (y*m_logicalScaleY*m_userScaleY*m_signY*m_scaleY); -} - -// --------------------------------------------------------------------------- -// bit blit -// --------------------------------------------------------------------------- -bool wxDC::DoBlit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int rop, bool useMask) -{ - long xdest1 = xdest; - long ydest1 = ydest; - long xsrc1 = xsrc; - long ysrc1 = ysrc; - - // Chris Breeze 18/5/98: use text foreground/background colours - // when blitting from 1-bit bitmaps - COLORREF old_textground = ::GetTextColor(GetHdc()); - COLORREF old_background = ::GetBkColor(GetHdc()); - if (m_textForegroundColour.Ok()) - { - ::SetTextColor(GetHdc(), m_textForegroundColour.GetPixel() ); - } - if (m_textBackgroundColour.Ok()) - { - ::SetBkColor(GetHdc(), m_textBackgroundColour.GetPixel() ); - } - - DWORD dwRop = rop == wxCOPY ? SRCCOPY : - rop == wxCLEAR ? WHITENESS : - rop == wxSET ? BLACKNESS : - rop == wxINVERT ? DSTINVERT : - rop == wxAND ? MERGECOPY : - rop == wxOR ? MERGEPAINT : - rop == wxSRC_INVERT ? NOTSRCCOPY : - rop == wxXOR ? SRCINVERT : - rop == wxOR_REVERSE ? MERGEPAINT : - rop == wxAND_REVERSE ? SRCERASE : - rop == wxSRC_OR ? SRCPAINT : - rop == wxSRC_AND ? SRCAND : - SRCCOPY; - - bool success = TRUE; - if (useMask && source->m_selectedBitmap.Ok() && source->m_selectedBitmap.GetMask()) - { - -#if 0 // __WIN32__ - // Not implemented under Win95 (or maybe a specific device?) - if (MaskBlt(GetHdc(), xdest1, ydest1, (int)width, (int)height, - (HDC) source->m_hDC, xsrc1, ysrc1, (HBITMAP) source->m_selectedBitmap.GetMask()->GetMaskBitmap(), - 0, 0, 0xAACC0020)) - { - // Success - } - else -#endif - { - // Old code -#if 0 - HDC dc_mask = CreateCompatibleDC((HDC) source->m_hDC); - ::SelectObject(dc_mask, (HBITMAP) source->m_selectedBitmap.GetMask()->GetMaskBitmap()); - success = (BitBlt(GetHdc(), xdest1, ydest1, (int)width, (int)height, - dc_mask, xsrc1, ysrc1, 0x00220326 /* NOTSRCAND */) != 0); - success = (BitBlt(GetHdc(), xdest1, ydest1, (int)width, (int)height, - (HDC) source->m_hDC, xsrc1, ysrc1, SRCPAINT) != 0); - ::SelectObject(dc_mask, 0); - ::DeleteDC(dc_mask); -#endif - // New code from Chris Breeze, 15/7/98 - // Blit bitmap with mask - - if (IsKindOf(CLASSINFO(wxPrinterDC))) - { - // If we are printing source colours are screen colours - // not printer colours and so we need copy the bitmap - // pixel by pixel. - RECT rect; - HDC dc_mask = ::CreateCompatibleDC((HDC) source->m_hDC); - HDC dc_src = (HDC) source->m_hDC; - - ::SelectObject(dc_mask, (HBITMAP) source->m_selectedBitmap.GetMask()->GetMaskBitmap()); - for (int x = 0; x < width; x++) - { - for (int y = 0; y < height; y++) - { - COLORREF cref = ::GetPixel(dc_mask, x, y); - if (cref) - { - HBRUSH brush = ::CreateSolidBrush(::GetPixel(dc_src, x, y)); - rect.left = xdest1 + x; rect.right = rect.left + 1; - rect.top = ydest1 + y; rect.bottom = rect.top + 1; - ::FillRect(GetHdc(), &rect, brush); - ::DeleteObject(brush); - } - } - } - ::SelectObject(dc_mask, 0); - ::DeleteDC(dc_mask); - } - else - { - // create a temp buffer bitmap and DCs to access it and the mask - HDC dc_mask = ::CreateCompatibleDC((HDC) source->m_hDC); - HDC dc_buffer = ::CreateCompatibleDC(GetHdc()); - HBITMAP buffer_bmap = ::CreateCompatibleBitmap(GetHdc(), width, height); - ::SelectObject(dc_mask, (HBITMAP) source->m_selectedBitmap.GetMask()->GetMaskBitmap()); - ::SelectObject(dc_buffer, buffer_bmap); - - // copy dest to buffer - ::BitBlt(dc_buffer, 0, 0, (int)width, (int)height, - GetHdc(), xdest1, ydest1, SRCCOPY); - - // copy src to buffer using selected raster op - ::BitBlt(dc_buffer, 0, 0, (int)width, (int)height, - (HDC) source->m_hDC, xsrc1, ysrc1, dwRop); - - // set masked area in buffer to BLACK (pixel value 0) - COLORREF prevBkCol = ::SetBkColor(GetHdc(), RGB(255, 255, 255)); - COLORREF prevCol = ::SetTextColor(GetHdc(), RGB(0, 0, 0)); - ::BitBlt(dc_buffer, 0, 0, (int)width, (int)height, - dc_mask, xsrc1, ysrc1, SRCAND); - - // set unmasked area in dest to BLACK - ::SetBkColor(GetHdc(), RGB(0, 0, 0)); - ::SetTextColor(GetHdc(), RGB(255, 255, 255)); - ::BitBlt(GetHdc(), xdest1, ydest1, (int)width, (int)height, - dc_mask, xsrc1, ysrc1, SRCAND); - ::SetBkColor(GetHdc(), prevBkCol); // restore colours to original values - ::SetTextColor(GetHdc(), prevCol); - - // OR buffer to dest - success = (::BitBlt(GetHdc(), xdest1, ydest1, (int)width, (int)height, - dc_buffer, 0, 0, SRCPAINT) != 0); - - // tidy up temporary DCs and bitmap - ::SelectObject(dc_mask, 0); - ::DeleteDC(dc_mask); - ::SelectObject(dc_buffer, 0); - ::DeleteDC(dc_buffer); - ::DeleteObject(buffer_bmap); - } - } - } - else - { - if (IsKindOf(CLASSINFO(wxPrinterDC))) - { - // If we are printing, source colours are screen colours - // not printer colours and so we need copy the bitmap - // pixel by pixel. - HDC dc_src = (HDC) source->m_hDC; - RECT rect; - for (int x = 0; x < width; x++) - { - for (int y = 0; y < height; y++) - { - HBRUSH brush = ::CreateSolidBrush(::GetPixel(dc_src, x, y)); - rect.left = xdest1 + x; rect.right = rect.left + 1; - rect.top = ydest1 + y; rect.bottom = rect.top + 1; - ::FillRect(GetHdc(), &rect, brush); - ::DeleteObject(brush); - } - } - } - else - { - success = (BitBlt(GetHdc(), xdest1, ydest1, (int)width, (int)height, (HDC) source->m_hDC, - xsrc1, ysrc1, dwRop) != 0); - } - } - ::SetTextColor(GetHdc(), old_textground); - ::SetBkColor(GetHdc(), old_background); - - return success; -} - -void wxDC::DoGetSize(int *w, int *h) const -{ - if ( w ) *w = ::GetDeviceCaps(GetHdc(), HORZRES); - if ( h ) *h = ::GetDeviceCaps(GetHdc(), VERTRES); -} - -void wxDC::DoGetSizeMM(int *w, int *h) const -{ - if ( w ) *w = ::GetDeviceCaps(GetHdc(), HORZSIZE); - if ( h ) *h = ::GetDeviceCaps(GetHdc(), VERTSIZE); -} - -wxSize wxDC::GetPPI() const -{ - int x = ::GetDeviceCaps(GetHdc(), LOGPIXELSX); - int y = ::GetDeviceCaps(GetHdc(), LOGPIXELSY); - - return wxSize(x, y); -} - -// For use by wxWindows only, unless custom units are required. -void wxDC::SetLogicalScale(double x, double y) -{ - m_logicalScaleX = x; - m_logicalScaleY = y; -} - -#if WXWIN_COMPATIBILITY -void wxDC::DoGetTextExtent(const wxString& string, float *x, float *y, - float *descent, float *externalLeading, - wxFont *theFont, bool use16bit) const -{ - long x1, y1, descent1, externalLeading1; - GetTextExtent(string, & x1, & y1, & descent1, & externalLeading1, theFont, use16bit); - *x = x1; *y = y1; - if (descent) - *descent = descent1; - if (externalLeading) - *externalLeading = externalLeading1; -} -#endif - -// --------------------------------------------------------------------------- -// spline drawing code -// --------------------------------------------------------------------------- - -#if wxUSE_SPLINES - -class wxSpline: public wxObject -{ -public: - int type; - wxList *points; - - wxSpline(wxList *list); - void DeletePoints(); - - // Doesn't delete points - ~wxSpline(); -}; - -void wx_draw_open_spline(wxDC *dc, wxSpline *spline); - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); -wxSpline *wx_make_spline(int x1, int y1, int x2, int y2, int x3, int y3); - -void wxDC::DoDrawSpline(wxList *list) -{ - wxSpline spline(list); - - wx_draw_open_spline(this, &spline); -} - -wxList wx_spline_point_list; - -void wx_draw_open_spline(wxDC *dc, wxSpline *spline) -{ - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = spline->points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point((double)wx_round(cx1), (double)wx_round(cy1)); - wx_spline_add_point(x2, y2); - - wx_spline_draw_point_array(dc); - -} - -/********************* CURVES FOR SPLINES ***************************** - - The following spline drawing routine is from - - "An Algorithm for High-Speed Curve Generation" - by George Merrill Chaikin, - Computer Graphics and Image Processing, 3, Academic Press, - 1974, 346-349. - - and - - "On Chaikin's Algorithm" by R. F. Riesenfeld, - Computer Graphics and Image Processing, 4, Academic Press, - 1975, 304-310. - -***********************************************************************/ - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point((double)wx_round(x1), (double)wx_round(y1)); - wx_spline_add_point((double)wx_round(xmid), (double)wx_round(ymid)); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - - -/* utilities used by spline drawing routines */ - - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} -Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack() -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -wxSpline::wxSpline(wxList *list) -{ - points = list; -} - -wxSpline::~wxSpline() -{ -} - -void wxSpline::DeletePoints() -{ - for(wxNode *node = points->First(); node; node = points->First()) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - } - delete points; -} - - -#endif // wxUSE_SPLINES - diff --git a/src/msw/dcclient.cpp b/src/msw/dcclient.cpp deleted file mode 100644 index 75fe09b4c1..0000000000 --- a/src/msw/dcclient.cpp +++ /dev/null @@ -1,242 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: wxClientDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "dcclient.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/string.h" -#include "wx/log.h" -#include "wx/window.h" - -#include "wx/msw/private.h" - -#include "wx/dcclient.h" - -// ---------------------------------------------------------------------------- -// array/list types -// ---------------------------------------------------------------------------- - -struct WXDLLEXPORT wxPaintDCInfo -{ - wxPaintDCInfo(wxWindow *win, wxDC *dc) - { - hwnd = win->GetHWND(); - hdc = dc->GetHDC(); - count = 1; - } - - WXHWND hwnd; // window for this DC - WXHDC hdc; // the DC handle - size_t count; // usage count -}; - -#include "wx/arrimpl.cpp" - -WX_DEFINE_OBJARRAY(wxArrayDCInfo); - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) - IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) - IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) -#endif - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -static PAINTSTRUCT g_paintStruct; - -#ifdef __WXDEBUG__ - // a global variable which we check to verify that wxPaintDC are only - // created in resopnse to WM_PAINT message - doing this from elsewhere is a - // common programming error among wxWindows programmers and might lead to - // very subtle and difficult to debug refresh/repaint bugs. - bool g_isPainting = FALSE; -#endif // __WXDEBUG__ - -// =========================================================================== -// implementation -// =========================================================================== - -// ---------------------------------------------------------------------------- -// wxWindowDC -// ---------------------------------------------------------------------------- - -wxWindowDC::wxWindowDC() -{ - m_canvas = NULL; -} - -wxWindowDC::wxWindowDC(wxWindow *the_canvas) -{ - m_canvas = the_canvas; - m_hDC = (WXHDC) ::GetWindowDC(GetWinHwnd(the_canvas) ); - m_hDCCount++; - - SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); -} - -wxWindowDC::~wxWindowDC() -{ - if (m_canvas && m_hDC) - { - SelectOldObjects(m_hDC); - - ::ReleaseDC(GetWinHwnd(m_canvas), GetHdc()); - m_hDC = 0; - } - - m_hDCCount--; -} - -// ---------------------------------------------------------------------------- -// wxClientDC -// ---------------------------------------------------------------------------- - -wxClientDC::wxClientDC() -{ - m_canvas = NULL; -} - -wxClientDC::wxClientDC(wxWindow *the_canvas) -{ - m_canvas = the_canvas; - m_hDC = (WXHDC) ::GetDC(GetWinHwnd(the_canvas)); - - SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); -} - -wxClientDC::~wxClientDC() -{ - if ( m_canvas && GetHdc() ) - { - SelectOldObjects(m_hDC); - - ::ReleaseDC(GetWinHwnd(m_canvas), GetHdc()); - m_hDC = 0; - } -} - -// ---------------------------------------------------------------------------- -// wxPaintDC -// ---------------------------------------------------------------------------- - -// VZ: initial implementation (by JACS) only remembered the last wxPaintDC -// created and tried to reuse - this was supposed to take care of a -// situation when a derived class OnPaint() calls base class OnPaint() -// because in this case ::BeginPaint() shouldn't be called second time. -// -// I'm not sure how useful this is, however we must remember the HWND -// associated with the last HDC as well - otherwise we may (and will!) try -// to reuse the HDC for another HWND which is a nice recipe for disaster. -// -// So we store a list of windows for which we already have the DC and not -// just one single hDC. This seems to work, but I'm really not sure about -// the usefullness of the whole idea - IMHO it's much better to not call -// base class OnPaint() at all, or, if we really want to allow it, add a -// "wxPaintDC *" parameter to wxPaintEvent which should be used if it's -// !NULL instead of creating a new DC. - -wxArrayDCInfo wxPaintDC::ms_cache; - -wxPaintDC::wxPaintDC() -{ - m_canvas = NULL; - m_hDC = 0; -} - -wxPaintDC::wxPaintDC(wxWindow *canvas) -{ - wxCHECK_RET( canvas, "NULL canvas in wxPaintDC ctor" ); - -#ifdef __WXDEBUG__ - if ( !g_isPainting ) - { - wxFAIL_MSG( _T("wxPaintDC may be created only in EVT_PAINT handler!") ); - - return; - } -#endif // __WXDEBUG__ - - m_canvas = canvas; - - // do we have a DC for this window in the cache? - wxPaintDCInfo *info = FindInCache(); - if ( info ) - { - m_hDC = info->hdc; - info->count++; - } - else // not in cache, create a new one - { - m_hDC = (WXHDC)::BeginPaint(GetWinHwnd(m_canvas), &g_paintStruct); - ms_cache.Add(new wxPaintDCInfo(m_canvas, this)); - } - - SetBackground(wxBrush(m_canvas->GetBackgroundColour(), wxSOLID)); -} - -wxPaintDC::~wxPaintDC() -{ - if ( m_hDC ) - { - size_t index; - wxPaintDCInfo *info = FindInCache(&index); - - wxCHECK_RET( info, _T("existing DC should have a cache entry") ); - - if ( !--info->count ) - { - ::EndPaint(GetWinHwnd(m_canvas), &g_paintStruct); - - ms_cache.Remove(index); - } - //else: cached DC entry is still in use - } -} - -wxPaintDCInfo *wxPaintDC::FindInCache(size_t *index) const -{ - wxPaintDCInfo *info = NULL; - size_t nCache = ms_cache.GetCount(); - for ( size_t n = 0; n < nCache; n++ ) - { - info = &ms_cache[n]; - if ( info->hwnd == m_canvas->GetHWND() ) - { - if ( index ) - *index = n; - break; - } - } - - return info; -} diff --git a/src/msw/dcmemory.cpp b/src/msw/dcmemory.cpp deleted file mode 100644 index 7e171ac46c..0000000000 --- a/src/msw/dcmemory.cpp +++ /dev/null @@ -1,130 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: wxMemoryDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#endif - -#include "wx/dcmemory.h" - -#include -#include "wx/msw/winundef.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC) -#endif - -/* - * Memory DC - * - */ - -wxMemoryDC::wxMemoryDC(void) -{ - m_hDC = (WXHDC) ::CreateCompatibleDC((HDC) NULL); - m_ok = (m_hDC != 0); - m_bOwnsDC = TRUE; - - SetBrush(*wxWHITE_BRUSH); - SetPen(*wxBLACK_PEN); -} - -wxMemoryDC::wxMemoryDC(wxDC *old_dc) -{ - old_dc->BeginDrawing(); - - m_hDC = (WXHDC) ::CreateCompatibleDC((HDC) old_dc->GetHDC()); - m_ok = (m_hDC != 0); - - old_dc->EndDrawing(); - - SetBrush(*wxWHITE_BRUSH); - SetPen(*wxBLACK_PEN); -} - -wxMemoryDC::~wxMemoryDC(void) -{ -} - -void wxMemoryDC::SelectObject(const wxBitmap& bitmap) -{ - // Select old bitmap out of the device context - if (m_oldBitmap) - { - ::SelectObject((HDC) m_hDC, (HBITMAP) m_oldBitmap); - if (m_selectedBitmap.Ok()) - { - m_selectedBitmap.SetSelectedInto(NULL); - m_selectedBitmap = wxNullBitmap; - } - } - - // Do own check for whether the bitmap is already selected into - // a device context - if (bitmap.GetSelectedInto() && (bitmap.GetSelectedInto() != this)) - { - wxFatalError("Error in wxMemoryDC::SelectObject\nBitmap is selected in another wxMemoryDC.\nDelete the first wxMemoryDC or use SelectObject(NULL)"); - return; - } - - // Check if the bitmap has the correct depth for this device context -// if (bitmap.Ok() && (bitmap.GetDepth() != GetDepth())) - // JACS 11/12/98: disabling this since the Forty Thieves sample - // shows this not working properly. In fact, if loading from a resource, - // the depth should become the screen depth, so why was it being called? -// if (0) -// { -// // Make a new bitmap that has the correct depth. -// wxBitmap newBitmap = bitmap.GetBitmapForDC(* this); -// -// m_selectedBitmap = newBitmap ; -// } -// else -// { - m_selectedBitmap = bitmap; -// } - - if (!m_selectedBitmap.Ok()) - return; - - m_selectedBitmap.SetSelectedInto(this); - HBITMAP bm = (HBITMAP) ::SelectObject((HDC) m_hDC, (HBITMAP) m_selectedBitmap.GetHBITMAP()); - - if (bm == ERROR) - { - wxFatalError("Error in wxMemoryDC::SelectObject\nBitmap may not be loaded, or may be selected in another wxMemoryDC.\nDelete the first wxMemoryDC to deselect bitmap."); - } - else if (!m_oldBitmap) - m_oldBitmap = (WXHBITMAP) bm; -} - -void wxMemoryDC::DoGetSize(int *width, int *height) const -{ - if (!m_selectedBitmap.Ok()) - { - *width = 0; *height = 0; - return; - } - *width = m_selectedBitmap.GetWidth(); - *height = m_selectedBitmap.GetHeight(); -} - diff --git a/src/msw/dcprint.cpp b/src/msw/dcprint.cpp deleted file mode 100644 index 0f402ccffb..0000000000 --- a/src/msw/dcprint.cpp +++ /dev/null @@ -1,391 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcprint.cpp -// Purpose: wxPrinterDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcprint.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#endif - -#include "wx/string.h" -#include "wx/log.h" -#include "wx/window.h" -#include "wx/msw/private.h" -#include "wx/dcprint.h" -#include "math.h" - -#if wxUSE_COMMON_DIALOGS || defined(__WXWINE__) -#include -#endif - -#ifndef __WIN32__ -#include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxPrinterDC, wxDC) -#endif - -// This form is deprecated -wxPrinterDC::wxPrinterDC(const wxString& driver_name, const wxString& device_name, const wxString& file, bool interactive, int orientation) -{ - m_isInteractive = interactive; - - if (!file.IsNull() && file != "") - m_printData.SetFilename(file); - -#if wxUSE_COMMON_DIALOGS - if (interactive) - { - PRINTDLG pd; - - pd.lStructSize = sizeof( PRINTDLG ); - pd.hwndOwner=(HWND) NULL; - pd.hDevMode=(HANDLE)NULL; - pd.hDevNames=(HANDLE)NULL; - pd.Flags=PD_RETURNDC | PD_NOSELECTION | PD_NOPAGENUMS; - pd.nFromPage=0; - pd.nToPage=0; - pd.nMinPage=0; - pd.nMaxPage=0; - pd.nCopies=1; - pd.hInstance=(HINSTANCE)NULL; - - if ( PrintDlg( &pd ) != 0 ) - { - m_hDC = (WXHDC) pd.hDC; - m_ok = TRUE; - } - else - { - m_ok = FALSE; - return; - } - - // m_dontDelete = TRUE; - } - else -#endif - if ((!driver_name.IsNull() && driver_name != "") && - (!device_name.IsNull() && device_name != "") && - (!file.IsNull() && file != "")) - { - m_hDC = (WXHDC) CreateDC((char *) (const char *) driver_name, (char *) (const char *) device_name, (char *) (const char *) file, NULL); - m_ok = m_hDC ? TRUE: FALSE; - } - else - { - wxPrintData printData; - printData.SetOrientation(orientation); - m_hDC = wxGetPrinterDC(printData); - m_ok = m_hDC ? TRUE: FALSE; - } - - if (m_hDC) - { - // int width = GetDeviceCaps(m_hDC, VERTRES); - // int height = GetDeviceCaps(m_hDC, HORZRES); - SetMapMode(wxMM_TEXT); - } - SetBrush(*wxBLACK_BRUSH); - SetPen(*wxBLACK_PEN); -} - -wxPrinterDC::wxPrinterDC(const wxPrintData& printData) -{ - m_printData = printData; - - m_isInteractive = FALSE; - - m_hDC = wxGetPrinterDC(printData); - m_ok = (m_hDC != 0); - - if (m_hDC) - SetMapMode(wxMM_TEXT); - - SetBrush(*wxBLACK_BRUSH); - SetPen(*wxBLACK_PEN); -} - - -wxPrinterDC::wxPrinterDC(WXHDC theDC) -{ - m_isInteractive = FALSE; - - m_hDC = theDC; - m_ok = TRUE; - if (m_hDC) - { - // int width = GetDeviceCaps(m_hDC, VERTRES); - // int height = GetDeviceCaps(m_hDC, HORZRES); - SetMapMode(wxMM_TEXT); - } - SetBrush(*wxBLACK_BRUSH); - SetPen(*wxBLACK_PEN); -} - -wxPrinterDC::~wxPrinterDC(void) -{ -} - -bool wxPrinterDC::StartDoc(const wxString& message) -{ - DOCINFO docinfo; - docinfo.cbSize = sizeof(DOCINFO); - docinfo.lpszDocName = (const char *)message; - - wxString filename(m_printData.GetFilename()); - - if (filename.IsEmpty()) - docinfo.lpszOutput = NULL; - else - docinfo.lpszOutput = (const char *) filename; - -#if defined(__WIN95__) - docinfo.lpszDatatype = NULL; - docinfo.fwType = 0; -#endif - - if (!m_hDC) - return FALSE; - - int ret = -#ifndef __WIN32__ - ::StartDoc((HDC) m_hDC, &docinfo); -#else -#ifdef UNICODE - ::StartDocW((HDC) m_hDC, &docinfo); -#else -#ifdef __TWIN32__ - ::StartDoc((HDC) m_hDC, &docinfo); -#else - ::StartDocA((HDC) m_hDC, &docinfo); -#endif -#endif -#endif - -#ifndef __WIN16__ - if (ret <= 0) - { - DWORD lastError = GetLastError(); - wxLogDebug("wxDC::StartDoc failed with error: %d\n", lastError); - } -#endif - - return (ret > 0); -} - -void wxPrinterDC::EndDoc(void) -{ - if (m_hDC) ::EndDoc((HDC) m_hDC); -} - -void wxPrinterDC::StartPage(void) -{ - if (m_hDC) - ::StartPage((HDC) m_hDC); -} - -void wxPrinterDC::EndPage(void) -{ - if (m_hDC) - ::EndPage((HDC) m_hDC); -} - -// Returns default device and port names -static bool wxGetDefaultDeviceName(wxString& deviceName, wxString& portName) -{ - deviceName = ""; - - LPDEVNAMES lpDevNames; - LPSTR lpszDriverName; - LPSTR lpszDeviceName; - LPSTR lpszPortName; - - PRINTDLG pd; - - // Cygwin has trouble believing PRINTDLG is 66 bytes - thinks it is 68 -#ifdef __GNUWIN32__ - pd.lStructSize = 66; // sizeof(PRINTDLG); -#else - pd.lStructSize = sizeof(PRINTDLG); -#endif - - pd.hwndOwner = (HWND)NULL; - pd.hDevMode = NULL; // Will be created by PrintDlg - pd.hDevNames = NULL; // Ditto - pd.Flags = PD_RETURNDEFAULT; - pd.nCopies = 1; - - if (!PrintDlg((LPPRINTDLG)&pd)) - { - if ( pd.hDevMode ) - GlobalFree(pd.hDevMode); - if (pd.hDevNames) - GlobalFree(pd.hDevNames); - - return FALSE; - } - - if (pd.hDevNames) - { - lpDevNames = (LPDEVNAMES)GlobalLock(pd.hDevNames); - lpszDriverName = (LPSTR)lpDevNames + lpDevNames->wDriverOffset; - lpszDeviceName = (LPSTR)lpDevNames + lpDevNames->wDeviceOffset; - lpszPortName = (LPSTR)lpDevNames + lpDevNames->wOutputOffset; - GlobalUnlock(pd.hDevNames); - GlobalFree(pd.hDevNames); - pd.hDevNames=NULL; - - deviceName = lpszDeviceName; - portName = lpszPortName; - } - - if (pd.hDevMode) - { - GlobalFree(pd.hDevMode); - pd.hDevMode=NULL; - } - return ( deviceName != "" ); -} - -#if 0 -// This uses defaults, except for orientation, so we should eliminate this function -// and use the 2nd form (passing wxPrintData) instead. -WXHDC wxGetPrinterDC(int orientation) -{ - HDC hDC; - LPDEVMODE lpDevMode = NULL; - LPDEVNAMES lpDevNames; - LPSTR lpszDriverName; - LPSTR lpszDeviceName; - LPSTR lpszPortName; - - PRINTDLG pd; - // __GNUWIN32__ has trouble believing PRINTDLG is 66 bytes - thinks it is 68 -#ifdef __GNUWIN32__ - pd.lStructSize = 66; // sizeof(PRINTDLG); -#else - pd.lStructSize = sizeof(PRINTDLG); -#endif - pd.hwndOwner = (HWND)NULL; - pd.hDevMode = NULL; // Will be created by PrintDlg - pd.hDevNames = NULL; // Ditto - pd.Flags = PD_RETURNDEFAULT; - pd.nCopies = 1; - - if (!PrintDlg((LPPRINTDLG)&pd)) - { - if ( pd.hDevMode ) - GlobalFree(pd.hDevMode); - if (pd.hDevNames) - GlobalFree(pd.hDevNames); - - return(0); - } - - if (!pd.hDevNames) - { - if ( pd.hDevMode ) - GlobalFree(pd.hDevMode); - } - - lpDevNames = (LPDEVNAMES)GlobalLock(pd.hDevNames); - lpszDriverName = (LPSTR)lpDevNames + lpDevNames->wDriverOffset; - lpszDeviceName = (LPSTR)lpDevNames + lpDevNames->wDeviceOffset; - lpszPortName = (LPSTR)lpDevNames + lpDevNames->wOutputOffset; - GlobalUnlock(pd.hDevNames); - - if ( pd.hDevMode ) - { - lpDevMode = (DEVMODE*) GlobalLock(pd.hDevMode); - lpDevMode->dmOrientation = orientation; - lpDevMode->dmFields |= DM_ORIENTATION; - } - -#ifdef __WIN32__ - hDC = CreateDC(lpszDriverName, lpszDeviceName, lpszPortName, (DEVMODE *)lpDevMode); -#else - hDC = CreateDC(lpszDriverName, lpszDeviceName, lpszPortName, (LPSTR)lpDevMode); -#endif - - if (pd.hDevMode && lpDevMode) - GlobalUnlock(pd.hDevMode); - - if (pd.hDevNames) - { - GlobalFree(pd.hDevNames); - pd.hDevNames=NULL; - } - if (pd.hDevMode) - { - GlobalFree(pd.hDevMode); - pd.hDevMode=NULL; - } - return (WXHDC) hDC; -} -#endif - -// Gets an HDC for the specified printer configuration -WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& printDataConst) -{ - wxPrintData printData = printDataConst; - printData.ConvertToNative(); - - char* driverName = (char*) NULL; - - wxString devNameStr = printData.GetPrinterName(); - char* deviceName; - char* portName = (char*) NULL; // Obsolete in WIN32 - - if (devNameStr == "") - deviceName = (char*) NULL; - else - deviceName = (char*) (const char*) devNameStr; - - LPDEVMODE lpDevMode = (LPDEVMODE) NULL; - - HGLOBAL hDevMode = (HGLOBAL) printData.GetNativeData(); - - if ( hDevMode ) - lpDevMode = (DEVMODE*) GlobalLock(hDevMode); - - if (devNameStr == "") - { - // Retrieve the default device name - wxString portName; - bool ret = wxGetDefaultDeviceName(devNameStr, portName); - - wxASSERT_MSG( ret, "Could not get default device name." ); - - deviceName = (char*) (const char*) devNameStr; - } - -#ifdef __WIN32__ - HDC hDC = CreateDC(driverName, deviceName, portName, (DEVMODE *) lpDevMode); -#else - HDC hDC = CreateDC(driverName, deviceName, portName, (LPSTR) lpDevMode); -#endif - - if (hDevMode && lpDevMode) - GlobalUnlock(hDevMode); - - return (WXHDC) hDC; -} - diff --git a/src/msw/dcscreen.cpp b/src/msw/dcscreen.cpp deleted file mode 100644 index 64c6908cfd..0000000000 --- a/src/msw/dcscreen.cpp +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: wxScreenDC class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/string.h" - #include "wx/window.h" - #include "wx/msw/private.h" -#endif - -#include "wx/dcscreen.h" - - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -#endif - -// Create a DC representing the whole screen -wxScreenDC::wxScreenDC(void) -{ - m_hDC = (WXHDC) ::GetDC((HWND) NULL); - m_hDCCount ++; -} - -wxScreenDC::~wxScreenDC(void) -{ - SelectOldObjects(m_hDC); - ::ReleaseDC((HWND) NULL, (HDC) m_hDC); - m_hDC = 0; - m_hDCCount --; -} - diff --git a/src/msw/dde.cpp b/src/msw/dde.cpp deleted file mode 100644 index d8fe4dfa5a..0000000000 --- a/src/msw/dde.cpp +++ /dev/null @@ -1,804 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dde.cpp -// Purpose: DDE classes -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dde.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#if wxUSE_IPC - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/app.h" -#endif - -#include "wx/module.h" -#include "wx/dde.h" - -#include "wx/msw/private.h" -#include -#include - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#include - -#ifdef __WIN32__ -#define _EXPORT /**/ -#else -#define _EXPORT _export -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDDEServer, wxServerBase) -IMPLEMENT_DYNAMIC_CLASS(wxDDEClient, wxClientBase) -IMPLEMENT_CLASS(wxDDEConnection, wxConnectionBase) -#endif - -static wxDDEConnection *DDEFindConnection(HCONV hConv); -static void DDEDeleteConnection(HCONV hConv); -static wxDDEServer *DDEFindServer(const wxString& s); - -extern "C" HDDEDATA EXPENTRY _EXPORT _DDECallback( -WORD wType, -WORD wFmt, -HCONV hConv, -HSZ hsz1, -HSZ hsz2, -HDDEDATA hData, -DWORD lData1, -DWORD lData2); - -// Add topic name to atom table before using in conversations -static HSZ DDEAddAtom(const wxString& string); -static HSZ DDEGetAtom(const wxString& string); -static void DDEPrintError(void); - -static DWORD DDEIdInst = 0L; -static wxDDEConnection *DDECurrentlyConnecting = NULL; - -static wxList wxAtomTable(wxKEY_STRING); -static wxList wxDDEClientObjects; -static wxList wxDDEServerObjects; - -char *DDEDefaultIPCBuffer = NULL; -int DDEDefaultIPCBufferSize = 0; - -/* - * Initialization - * - */ - -static bool DDEInitialized = FALSE; - -void wxDDEInitialize() -{ - if (DDEInitialized) - return; - DDEInitialized = TRUE; - - // Should insert filter flags - DdeInitialize(&DDEIdInst, (PFNCALLBACK)MakeProcInstance( - (FARPROC)_DDECallback, wxGetInstance()), - APPCLASS_STANDARD, - 0L); -} - -/* - * CleanUp - */ - -void wxDDECleanUp() -{ - if (DDEIdInst != 0) - { - DdeUninitialize(DDEIdInst); - DDEIdInst = 0; - } - if (DDEDefaultIPCBuffer) - delete [] DDEDefaultIPCBuffer ; -} - -// A module to allow DDE initialization/cleanup -// without calling these functions from app.cpp or from -// the user's application. - -class wxDDEModule: public wxModule -{ -DECLARE_DYNAMIC_CLASS(wxDDEModule) -public: - wxDDEModule() {} - bool OnInit() { wxDDEInitialize(); return TRUE; }; - void OnExit() { wxDDECleanUp(); }; -}; - -IMPLEMENT_DYNAMIC_CLASS(wxDDEModule, wxModule) - -// Global find connection -static wxDDEConnection *DDEFindConnection(HCONV hConv) -{ - wxNode *node = wxDDEServerObjects.First(); - wxDDEConnection *found = NULL; - while (node && !found) - { - wxDDEServer *object = (wxDDEServer *)node->Data(); - found = object->FindConnection((WXHCONV) hConv); - node = node->Next(); - } - if (found) - return found; - - node = wxDDEClientObjects.First(); - while (node && !found) - { - wxDDEClient *object = (wxDDEClient *)node->Data(); - found = object->FindConnection((WXHCONV) hConv); - node = node->Next(); - } - return found; -} - -// Global delete connection -static void DDEDeleteConnection(HCONV hConv) -{ - wxNode *node = wxDDEServerObjects.First(); - bool found = FALSE; - while (node && !found) - { - wxDDEServer *object = (wxDDEServer *)node->Data(); - found = object->DeleteConnection((WXHCONV) hConv); - node = node->Next(); - } - if (found) - return; - - node = wxDDEServerObjects.First(); - while (node && !found) - { - wxDDEClient *object = (wxDDEClient *)node->Data(); - found = object->DeleteConnection((WXHCONV) hConv); - node = node->Next(); - } -} - -// Find a server from a service name -static wxDDEServer *DDEFindServer(const wxString& s) -{ - wxNode *node = wxDDEServerObjects.First(); - wxDDEServer *found = NULL; - while (node && !found) - { - wxDDEServer *object = (wxDDEServer *)node->Data(); - - if (object->GetServiceName() == s) - found = object; - else node = node->Next(); - } - return found; -} - -/* - * Server - * - */ - -wxDDEServer::wxDDEServer(void) -{ - m_serviceName = ""; - wxDDEServerObjects.Append(this); -} - -bool wxDDEServer::Create(const wxString& server_name) -{ - m_serviceName = server_name; - HSZ serviceName = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)server_name, CP_WINANSI); - - if (DdeNameService(DDEIdInst, serviceName, (HSZ) NULL, DNS_REGISTER) == 0) - { - DDEPrintError(); - return FALSE; - } - return TRUE; -} - -wxDDEServer::~wxDDEServer(void) -{ - if (m_serviceName != "") - { - HSZ serviceName = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)m_serviceName, CP_WINANSI); - if (DdeNameService(DDEIdInst, serviceName, NULL, DNS_UNREGISTER) == 0) - { - DDEPrintError(); - } - } - wxDDEServerObjects.DeleteObject(this); - - wxNode *node = m_connections.First(); - while (node) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - wxNode *next = node->Next(); - connection->OnDisconnect(); // May delete the node implicitly - node = next; - } - - // If any left after this, delete them - node = m_connections.First(); - while (node) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - wxNode *next = node->Next(); - delete connection; - node = next; - } -} - -wxConnectionBase *wxDDEServer::OnAcceptConnection(const wxString& /* topic */) -{ - return new wxDDEConnection; -} - -wxDDEConnection *wxDDEServer::FindConnection(WXHCONV conv) -{ - wxNode *node = m_connections.First(); - wxDDEConnection *found = NULL; - while (node && !found) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - if (connection->m_hConv == conv) - found = connection; - else node = node->Next(); - } - return found; -} - -// Only delete the entry in the map, not the actual connection -bool wxDDEServer::DeleteConnection(WXHCONV conv) -{ - wxNode *node = m_connections.First(); - bool found = FALSE; - while (node && !found) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - if (connection->m_hConv == conv) - { - found = TRUE; - delete node; - } - else node = node->Next(); - } - return found; -} - - -/* - * Client - * - */ - - -wxDDEClient::wxDDEClient(void) -{ - wxDDEClientObjects.Append(this); -} - -wxDDEClient::~wxDDEClient(void) -{ - wxDDEClientObjects.DeleteObject(this); - wxNode *node = m_connections.First(); - while (node) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - delete connection; // Deletes the node implicitly (see ~wxDDEConnection) - node = m_connections.First(); - } -} - -bool wxDDEClient::ValidHost(const wxString& /* host */) -{ - return TRUE; -} - -wxConnectionBase *wxDDEClient::MakeConnection(const wxString& /* host */, const wxString& server_name, const wxString& topic) -{ - HSZ serviceName = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)server_name, CP_WINANSI); - HSZ topic_atom = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)topic, CP_WINANSI); - - HCONV hConv = DdeConnect(DDEIdInst, serviceName, topic_atom, (PCONVCONTEXT)NULL); - if (hConv == (HCONV) NULL) - return (wxConnectionBase*) NULL; - else - { - wxDDEConnection *connection = (wxDDEConnection*) OnMakeConnection(); - if (connection) - { - connection->m_hConv = (WXHCONV) hConv; - connection->m_topicName = topic; - connection->m_client = this; - m_connections.Append(connection); - return connection; - } - else return (wxConnectionBase*) NULL; - } -} - -wxConnectionBase *wxDDEClient::OnMakeConnection(void) -{ - return new wxDDEConnection; -} - -wxDDEConnection *wxDDEClient::FindConnection(WXHCONV conv) -{ - wxNode *node = m_connections.First(); - wxDDEConnection *found = NULL; - while (node && !found) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - if (connection->m_hConv == conv) - found = connection; - else node = node->Next(); - } - return found; -} - -// Only delete the entry in the map, not the actual connection -bool wxDDEClient::DeleteConnection(WXHCONV conv) -{ - wxNode *node = m_connections.First(); - bool found = FALSE; - while (node && !found) - { - wxDDEConnection *connection = (wxDDEConnection *)node->Data(); - if (connection->m_hConv == conv) - { - found = TRUE; - delete node; - } - else node = node->Next(); - } - return found; -} - -/* - * Connection - */ - -wxDDEConnection::wxDDEConnection(char *buffer, int size) -{ - if (buffer == NULL) - { - if (DDEDefaultIPCBuffer == NULL) - DDEDefaultIPCBuffer = new char[DDEDefaultIPCBufferSize]; - m_bufPtr = DDEDefaultIPCBuffer; - m_bufSize = DDEDefaultIPCBufferSize; - } - else - { - m_bufPtr = buffer; - m_bufSize = size; - } - - m_topicName = ""; - - m_client = NULL; - m_server = NULL; - - m_hConv = 0; - m_sendingData = NULL; -} - -wxDDEConnection::wxDDEConnection(void) -{ - m_hConv = 0; - m_sendingData = NULL; - m_server = NULL; - m_client = NULL; - if (DDEDefaultIPCBuffer == NULL) - DDEDefaultIPCBuffer = new char[DDEDefaultIPCBufferSize]; - - m_bufPtr = DDEDefaultIPCBuffer; - m_bufSize = DDEDefaultIPCBufferSize; - m_topicName = ""; -} - -wxDDEConnection::~wxDDEConnection(void) -{ - if (m_server) - m_server->GetConnections().DeleteObject(this); - else - m_client->GetConnections().DeleteObject(this); -} - -// Calls that CLIENT can make -bool wxDDEConnection::Disconnect(void) -{ - DDEDeleteConnection((HCONV) m_hConv); - return (DdeDisconnect((HCONV) m_hConv) != 0); -} - -bool wxDDEConnection::Execute(char *data, int size, wxIPCFormat format) -{ - DWORD result; - if (size < 0) - size = strlen(data); - - size ++; - - return (DdeClientTransaction((LPBYTE)data, size, (HCONV) m_hConv, - NULL, format, XTYP_EXECUTE, 5000, &result) ? TRUE : FALSE); -} - -char *wxDDEConnection::Request(const wxString& item, int *size, wxIPCFormat format) -{ - DWORD result; - HSZ atom = DDEGetAtom(item); - - HDDEDATA returned_data = DdeClientTransaction(NULL, 0, (HCONV) m_hConv, - atom, format, XTYP_REQUEST, 5000, &result); - - DWORD len = DdeGetData(returned_data, (LPBYTE)(m_bufPtr), m_bufSize, 0); - - DdeFreeDataHandle(returned_data); - - if (size) *size = (int)len; - if (len > 0) - { - return m_bufPtr; - } - else return NULL; -} - -bool wxDDEConnection::Poke(const wxString& item, char *data, int size, wxIPCFormat format) -{ - DWORD result; - if (size < 0) - size = strlen(data); - - size ++; - - HSZ item_atom = DDEGetAtom(item); - return (DdeClientTransaction((LPBYTE)data, size, (HCONV) m_hConv, - item_atom, format, XTYP_POKE, 5000, &result) ? TRUE : FALSE); -} - -bool wxDDEConnection::StartAdvise(const wxString& item) -{ - DWORD result; - HSZ atom = DDEGetAtom(item); - - return (DdeClientTransaction(NULL, 0, (HCONV) m_hConv, - atom, CF_TEXT, XTYP_ADVSTART, 5000, &result) ? TRUE : FALSE); -} - -bool wxDDEConnection::StopAdvise(const wxString& item) -{ - DWORD result; - HSZ atom = DDEGetAtom(item); - - return (DdeClientTransaction(NULL, 0, (HCONV) m_hConv, - atom, CF_TEXT, XTYP_ADVSTOP, 5000, &result) ? TRUE : FALSE); -} - -// Calls that SERVER can make -bool wxDDEConnection::Advise(const wxString& item, char *data, int size, wxIPCFormat format) -{ - if (size < 0) - size = strlen(data); - - size ++; - - HSZ item_atom = DDEGetAtom(item); - HSZ topic_atom = DDEGetAtom(m_topicName); - m_sendingData = data; - m_dataSize = size; - m_dataType = format; - return (DdePostAdvise(DDEIdInst, topic_atom, item_atom) != 0); -} - -bool wxDDEConnection::OnDisconnect(void) -{ - delete this; - return TRUE; -} - - -#define DDERETURN HDDEDATA - -HDDEDATA EXPENTRY _EXPORT _DDECallback( -WORD wType, -WORD wFmt, -HCONV hConv, -HSZ hsz1, -HSZ hsz2, -HDDEDATA hData, -DWORD /* lData1 */, -DWORD /* lData2 */) -{ - switch (wType) - { - case XTYP_CONNECT: - { - char topic_buf[100]; - char server_buf[100]; - DdeQueryString(DDEIdInst, hsz1, (LPSTR)topic_buf, sizeof(topic_buf), - CP_WINANSI); - DdeQueryString(DDEIdInst, hsz2, (LPSTR)server_buf, sizeof(topic_buf), - CP_WINANSI); - wxDDEServer *server = DDEFindServer(server_buf); - if (server) - { - wxDDEConnection *connection = - (wxDDEConnection*) server->OnAcceptConnection(wxString(topic_buf)); - if (connection) - { - connection->m_server = server; - server->GetConnections().Append(connection); - connection->m_hConv = 0; - connection->m_topicName = topic_buf; - DDECurrentlyConnecting = connection; - return (DDERETURN)TRUE; - } - } - else return (DDERETURN)0; - break; - } - - case XTYP_CONNECT_CONFIRM: - { - if (DDECurrentlyConnecting) - { - DDECurrentlyConnecting->m_hConv = (WXHCONV) hConv; - DDECurrentlyConnecting = NULL; - return (DDERETURN)TRUE; - } - else return 0; - break; - } - - case XTYP_DISCONNECT: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - if (connection && connection->OnDisconnect()) - { - DDEDeleteConnection(hConv); // Delete mapping: hConv => connection - return (DDERETURN)TRUE; - } - else return (DDERETURN)0; - break; - } - - case XTYP_EXECUTE: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection) - { - DWORD len = DdeGetData(hData, (LPBYTE)(connection->m_bufPtr), connection->m_bufSize, 0); - DdeFreeDataHandle(hData); - if (connection->OnExecute(connection->m_topicName, connection->m_bufPtr, (int)len, (wxIPCFormat) wFmt)) - return (DDERETURN)DDE_FACK; - else - return (DDERETURN)DDE_FNOTPROCESSED; - } else return (DDERETURN)DDE_FNOTPROCESSED; - break; - } - - case XTYP_REQUEST: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection) - { - char item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPSTR)item_name, sizeof(item_name), - CP_WINANSI); - - int user_size = -1; - char *data = connection->OnRequest(connection->m_topicName, wxString(item_name), &user_size, (wxIPCFormat) wFmt); - if (data) - { - if (user_size < 0) user_size = strlen(data); - - HDDEDATA handle = DdeCreateDataHandle(DDEIdInst, - (LPBYTE)data, user_size + 1, 0, hsz2, wFmt, 0); - return (DDERETURN)handle; - } else return (DDERETURN)0; - } else return (DDERETURN)0; - break; - } - - case XTYP_POKE: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection) - { - char item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPSTR)item_name, sizeof(item_name), - CP_WINANSI); - DWORD len = DdeGetData(hData, (LPBYTE)(connection->m_bufPtr), connection->m_bufSize, 0); - DdeFreeDataHandle(hData); - connection->OnPoke(connection->m_topicName, wxString(item_name), connection->m_bufPtr, (int)len, (wxIPCFormat) wFmt); - return (DDERETURN)DDE_FACK; - } else return (DDERETURN)DDE_FNOTPROCESSED; - break; - } - - case XTYP_ADVSTART: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection) - { - char item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPSTR)item_name, sizeof(item_name), - CP_WINANSI); - - return (DDERETURN)connection->OnStartAdvise(connection->m_topicName, wxString(item_name)); - } else return (DDERETURN)0; - break; - } - - case XTYP_ADVSTOP: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection) - { - char item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPSTR)item_name, sizeof(item_name), - CP_WINANSI); - return (DDERETURN)connection->OnStopAdvise(connection->m_topicName, wxString(item_name)); - } else return (DDERETURN)0; - break; - } - - case XTYP_ADVREQ: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection && connection->m_sendingData) - { - HDDEDATA data = DdeCreateDataHandle(DDEIdInst, - (LPBYTE)connection->m_sendingData, - connection->m_dataSize, 0, hsz2, connection->m_dataType, 0); - connection->m_sendingData = NULL; - return (DDERETURN)data; - } else return (DDERETURN)NULL; - break; - } - - case XTYP_ADVDATA: - { - wxDDEConnection *connection = DDEFindConnection(hConv); - - if (connection) - { - char item_name[200]; - DdeQueryString(DDEIdInst, hsz2, (LPSTR)item_name, sizeof(item_name), - CP_WINANSI); - - DWORD len = DdeGetData(hData, (LPBYTE)(connection->m_bufPtr), connection->m_bufSize, 0); - DdeFreeDataHandle(hData); - if (connection->OnAdvise(connection->m_topicName, wxString(item_name), connection->m_bufPtr, (int)len, (wxIPCFormat) wFmt)) - return (DDERETURN)DDE_FACK; - else - return (DDERETURN)DDE_FNOTPROCESSED; - } else return (DDERETURN)DDE_FNOTPROCESSED; - break; - } - } - return 0; -} - -// Atom table stuff -static HSZ DDEAddAtom(const wxString& string) -{ - HSZ atom = DdeCreateStringHandle(DDEIdInst, (char*) (const char *)string, CP_WINANSI); - wxAtomTable.Append(string, (wxObject *)atom); - return atom; -} - -static HSZ DDEGetAtom(const wxString& string) -{ - wxNode *node = wxAtomTable.Find(string); - if (node) - return (HSZ)node->Data(); - else - { - DDEAddAtom(string); - return (HSZ)(wxAtomTable.Find(string)->Data()); - } -} - -void DDEPrintError(void) -{ - char *err = NULL; - switch (DdeGetLastError(DDEIdInst)) - { - case DMLERR_ADVACKTIMEOUT: - err = "A request for a synchronous advise transaction has timed out."; - break; - case DMLERR_BUSY: - err = "The response to the transaction caused the DDE_FBUSY bit to be set."; - break; - case DMLERR_DATAACKTIMEOUT: - err = "A request for a synchronous data transaction has timed out."; - break; - case DMLERR_DLL_NOT_INITIALIZED: - err = "A DDEML function was called without first calling the DdeInitialize function,\n\ror an invalid instance identifier\n\rwas passed to a DDEML function."; - break; - case DMLERR_DLL_USAGE: - err = "An application initialized as APPCLASS_MONITOR has\n\rattempted to perform a DDE transaction,\n\ror an application initialized as APPCMD_CLIENTONLY has \n\rattempted to perform server transactions."; - break; - case DMLERR_EXECACKTIMEOUT: - err = "A request for a synchronous execute transaction has timed out."; - break; - case DMLERR_INVALIDPARAMETER: - err = "A parameter failed to be validated by the DDEML."; - break; - case DMLERR_LOW_MEMORY: - err = "A DDEML application has created a prolonged race condition."; - break; - case DMLERR_MEMORY_ERROR: - err = "A memory allocation failed."; - break; - case DMLERR_NO_CONV_ESTABLISHED: - err = "A client's attempt to establish a conversation has failed."; - break; - case DMLERR_NOTPROCESSED: - err = "A transaction failed."; - break; - case DMLERR_POKEACKTIMEOUT: - err = "A request for a synchronous poke transaction has timed out."; - break; - case DMLERR_POSTMSG_FAILED: - err = "An internal call to the PostMessage function has failed. "; - break; - case DMLERR_REENTRANCY: - err = "Reentrancy problem."; - break; - case DMLERR_SERVER_DIED: - err = "A server-side transaction was attempted on a conversation\n\rthat was terminated by the client, or the server\n\rterminated before completing a transaction."; - break; - case DMLERR_SYS_ERROR: - err = "An internal error has occurred in the DDEML."; - break; - case DMLERR_UNADVACKTIMEOUT: - err = "A request to end an advise transaction has timed out."; - break; - case DMLERR_UNFOUND_QUEUE_ID: - err = "An invalid transaction identifier was passed to a DDEML function.\n\rOnce the application has returned from an XTYP_XACT_COMPLETE callback,\n\rthe transaction identifier for that callback is no longer valid."; - break; - default: - err = "Unrecognised error type."; - break; - } - MessageBox((HWND) NULL, (LPCSTR)err, "DDE Error", MB_OK | MB_ICONINFORMATION); -} - -#endif - // wxUSE_IPC diff --git a/src/msw/dialog.cpp b/src/msw/dialog.cpp deleted file mode 100644 index e73db1485f..0000000000 --- a/src/msw/dialog.cpp +++ /dev/null @@ -1,661 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: wxDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/dialog.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/settings.h" -#include "wx/intl.h" -#include "wx/log.h" -#endif - -#include "wx/msw/private.h" -#include "wx/log.h" - -#if wxUSE_COMMON_DIALOGS -#include -#endif - -#define wxDIALOG_DEFAULT_X 300 -#define wxDIALOG_DEFAULT_Y 300 - -// Lists to keep track of windows, so we can disable/enable them -// for modal dialogs -wxWindowList wxModalDialogs; -wxWindowList wxModelessWindows; // Frames and modeless dialogs -extern wxList WXDLLEXPORT wxPendingDelete; - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - - BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_SIZE(wxDialog::OnSize) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) - END_EVENT_TABLE() -#endif - -wxDialog::wxDialog() -{ - m_isShown = FALSE; - m_modalShowing = FALSE; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -} - -bool wxDialog::Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ -#if wxUSE_TOOLTIPS - m_hwndToolTip = 0; -#endif - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - SetName(name); - - if (!parent) - wxTopLevelWindows.Append(this); - - // windowFont = wxTheFontList->FindOrCreateFont(11, wxSWISS, wxNORMAL, wxNORMAL); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (x < 0) x = wxDIALOG_DEFAULT_X; - if (y < 0) y = wxDIALOG_DEFAULT_Y; - - m_windowStyle = style; - - m_isShown = FALSE; - m_modalShowing = FALSE; - - if (width < 0) - width = 500; - if (height < 0) - height = 500; - - // All dialogs should really have this style - m_windowStyle |= wxTAB_TRAVERSAL; - - WXDWORD extendedStyle = MakeExtendedStyle(m_windowStyle); - if (m_windowStyle & wxSTAY_ON_TOP) - extendedStyle |= WS_EX_TOPMOST; - - // Allows creation of dialogs with & without captions under MSWindows, - // resizeable or not (but a resizeable dialog always has caption - - // otherwise it would look too strange) - const char *dlg; - if ( style & wxTHICK_FRAME ) - dlg = "wxResizeableDialog"; - else if ( style & wxCAPTION ) - dlg = "wxCaptionDialog"; - else - dlg = "wxNoCaptionDialog"; - MSWCreate(m_windowId, parent, NULL, this, NULL, - x, y, width, height, - 0, // style is not used if we have dlg template - dlg, - extendedStyle); - - HWND hwnd = (HWND)GetHWND(); - - if ( !hwnd ) - { - wxLogError(_("Failed to create dialog.")); - - return FALSE; - } - - SubclassWin(GetHWND()); - - SetWindowText(hwnd, title); - SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - - return TRUE; -} - -void wxDialog::SetModal(bool flag) -{ - if ( flag ) - m_windowStyle |= wxDIALOG_MODAL ; - else - if ( m_windowStyle & wxDIALOG_MODAL ) - m_windowStyle -= wxDIALOG_MODAL ; - - wxModelessWindows.DeleteObject(this); - if (!flag) - wxModelessWindows.Append(this); -} - -wxDialog::~wxDialog() -{ - m_isBeingDeleted = TRUE; - - wxTopLevelWindows.DeleteObject(this); - - if (m_modalShowing) - { - Show(FALSE); - // For some reason, wxWindows can activate another task altogether - // when a frame is destroyed after a modal dialog has been invoked. - // Try to bring the parent to the top. - // dfgg: I moved this following line from end of function - - // must not call if another window is on top!! - // This can often happen with Close() and delayed deleting - if (GetParent() && GetParent()->GetHWND()) - ::BringWindowToTop((HWND) GetParent()->GetHWND()); - } - - m_modalShowing = FALSE; - if ( GetHWND() ) - ShowWindow((HWND) GetHWND(), SW_HIDE); - - if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL ) - wxModelessWindows.DeleteObject(this); - - UnsubclassWin(); - - // If this is the last top-level window, exit. - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - PostQuitMessage(0); - } - } -} - -// By default, pressing escape cancels the dialog -void wxDialog::OnCharHook(wxKeyEvent& event) -{ - if (GetHWND()) - { - if (event.m_keyCode == WXK_ESCAPE) - { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - - return; - } - } - // We didn't process this event. - event.Skip(); -} - -void wxDialog::OnPaint(wxPaintEvent& event) -{ - // No: if you call the default procedure, it makes - // the following painting code not work. -// wxWindow::OnPaint(event); -} - -void wxDialog::Fit() -{ - wxWindow::Fit(); -} - -void wxDialog::Iconize(bool WXUNUSED(iconize)) -{ - // Windows dialog boxes can't be iconized -} - -bool wxDialog::IsIconized() const -{ - return FALSE; -} - -void wxDialog::DoSetClientSize(int width, int height) -{ - HWND hWnd = (HWND) GetHWND(); - RECT rect; - ::GetClientRect(hWnd, &rect); - - RECT rect2; - GetWindowRect(hWnd, &rect2); - - // Find the difference between the entire window (title bar and all) - // and the client area; add this to the new client size to move the - // window - int actual_width = rect2.right - rect2.left - rect.right + width; - int actual_height = rect2.bottom - rect2.top - rect.bottom + height; - - MoveWindow(hWnd, rect2.left, rect2.top, actual_width, actual_height, TRUE); - - wxSizeEvent event(wxSize(actual_width, actual_height), m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -void wxDialog::GetPosition(int *x, int *y) const -{ - HWND hWnd = (HWND) GetHWND(); - RECT rect; - GetWindowRect(hWnd, &rect); - - *x = rect.left; - *y = rect.top; -} - -bool wxDialog::IsShown() const -{ - return m_isShown; -} - -bool wxDialog::Show(bool show) -{ - m_isShown = show; - - if (show) - InitDialog(); - - bool modal = ((GetWindowStyleFlag() & wxDIALOG_MODAL) == wxDIALOG_MODAL) ; - -#if WXGARBAGE_COLLECTION_ON /* MATTHEW: GC */ - if (!modal) { - if (show) { - if (!wxModelessWindows.Find(this)) - wxModelessWindows.Append(this); - } else - wxModelessWindows.DeleteObject(this); - } - if (show) { - if (!wxTopLevelWindows.Find(this)) - wxTopLevelWindows.Append(this); - } else - wxTopLevelWindows.DeleteObject(this); -#endif - - if (modal) - { - if (show) - { - // find the top level window which had focus before - we will restore - // focus to it later - m_hwndOldFocus = 0; - for ( HWND hwnd = ::GetFocus(); hwnd; hwnd = ::GetParent(hwnd) ) - { - m_hwndOldFocus = (WXHWND)hwnd; - } - - if (m_modalShowing) - { - BringWindowToTop((HWND) GetHWND()); - return TRUE; - } - - m_modalShowing = TRUE; - wxNode *node = wxModalDialogs.First(); - while (node) - { - wxDialog *box = (wxDialog *)node->Data(); - if (box != this) - ::EnableWindow((HWND) box->GetHWND(), FALSE); - node = node->Next(); - } - - // if we don't do it, some window might be deleted while we have pointers - // to them in our disabledWindows list and the program will crash when it - // will try to reenable them after the modal dialog end - wxTheApp->DeletePendingObjects(); - wxList disabledWindows; - - node = wxModelessWindows.First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (::IsWindowEnabled((HWND) win->GetHWND())) - { - ::EnableWindow((HWND) win->GetHWND(), FALSE); - disabledWindows.Append(win); - } - node = node->Next(); - } - - ShowWindow((HWND) GetHWND(), SW_SHOW); - EnableWindow((HWND) GetHWND(), TRUE); - BringWindowToTop((HWND) GetHWND()); - - if ( !wxModalDialogs.Find(this) ) - wxModalDialogs.Append(this); - - MSG msg; - // Must test whether this dialog still exists: we may not process - // a message before the deletion. - while (wxModalDialogs.Find(this) && m_modalShowing && GetMessage(&msg, NULL, 0, 0)) - { - if ( m_acceleratorTable.Ok() && - ::TranslateAccelerator((HWND)GetHWND(), - (HACCEL)m_acceleratorTable.GetHACCEL(), - &msg) ) - { - // Have processed the message - } - else if ( !wxTheApp->ProcessMessage((WXMSG *)&msg) ) - { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - // If we get crashes (as per George Tasker's message) with nested modal dialogs, - // we should try removing the m_modalShowing test - - if (m_modalShowing && !::PeekMessage(&msg, 0, 0, 0, PM_NOREMOVE)) - // dfgg: NB MUST test m_modalShowing again as the message loop could have triggered - // a Show(FALSE) in the mean time!!! - // Without the test, we might delete the dialog before the end of modal showing. - { - while (wxTheApp->ProcessIdle() && m_modalShowing) - { - // Keep going until we decide we've done enough - } - } - } - // dfgg: now must specifically re-enable all other app windows that we disabled earlier - node=disabledWindows.First(); - while(node) { - wxWindow* win = (wxWindow*) node->Data(); - if (wxModalDialogs.Find(win) || wxModelessWindows.Find(win)) - { - HWND hWnd = (HWND) win->GetHWND(); - if (::IsWindow(hWnd)) - ::EnableWindow(hWnd,TRUE); - } - node=node->Next(); - } - } - else // !show - { - ::SetFocus((HWND)m_hwndOldFocus); - - wxModalDialogs.DeleteObject(this); - - wxNode *last = wxModalDialogs.Last(); - - // If there's still a modal dialog active, we - // enable it, else we enable all modeless windows - if (last) - { - // VZ: I don't understand what this is supposed to do, so I'll leave - // it out for now and look for horrible consequences - wxDialog *box = (wxDialog *)last->Data(); - HWND hwnd = (HWND) box->GetHWND(); -#if 0 - if (box->IsUserEnabled()) -#endif // 0 - EnableWindow(hwnd, TRUE); - BringWindowToTop(hwnd); - } - else - { - wxNode *node = wxModelessWindows.First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - HWND hwnd = (HWND) win->GetHWND(); - // Only enable again if not user-disabled. -#if 0 - if (win->IsUserEnabled()) -#endif // 0 - EnableWindow(hwnd, TRUE); - node = node->Next(); - } - } - // Try to highlight the correct window (the parent) - HWND hWndParent = 0; - if (GetParent()) - { - hWndParent = (HWND) GetParent()->GetHWND(); - if (hWndParent) - ::BringWindowToTop(hWndParent); - } - ShowWindow((HWND) GetHWND(), SW_HIDE); - m_modalShowing = FALSE; - } - } - else // !modal - { - if (show) - { - ShowWindow((HWND) GetHWND(), SW_SHOW); - BringWindowToTop((HWND) GetHWND()); - } - else - { - // Try to highlight the correct window (the parent) - HWND hWndParent = 0; - if (GetParent()) - { - hWndParent = (HWND) GetParent()->GetHWND(); - if (hWndParent) - ::BringWindowToTop(hWndParent); - } - ShowWindow((HWND) GetHWND(), SW_HIDE); - } - } - return TRUE; -} - -void wxDialog::SetTitle(const wxString& title) -{ - SetWindowText((HWND) GetHWND(), (const char *)title); -} - -wxString wxDialog::GetTitle() const -{ - GetWindowText((HWND) GetHWND(), wxBuffer, 1000); - return wxString(wxBuffer); -} - -void wxDialog::Centre(int direction) -{ - int x_offset,y_offset ; - int display_width, display_height; - int width, height, x, y; - wxWindow *parent = GetParent(); - if ((direction & wxCENTER_FRAME) && parent) - { - parent->GetPosition(&x_offset,&y_offset) ; - parent->GetSize(&display_width,&display_height) ; - } - else - { - wxDisplaySize(&display_width, &display_height); - x_offset = 0 ; - y_offset = 0 ; - } - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x+x_offset, y+y_offset, width, height); -} - -// Replacement for Show(TRUE) for modal dialogs - returns return code -int wxDialog::ShowModal() -{ - m_windowStyle |= wxDIALOG_MODAL; - Show(TRUE); - return GetReturnCode(); -} - -void wxDialog::EndModal(int retCode) -{ - SetReturnCode(retCode); - Show(FALSE); -} - -// Define for each class of dialog and control -WXHBRUSH wxDialog::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; -#else - return 0; -#endif -} - -// Standard buttons -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnApply(wxCommandEvent& event) -{ - if (Validate()) - TransferDataFromWindow(); - // TODO probably need to disable the Apply button until things change again -} - -void wxDialog::OnCancel(wxCommandEvent& event) -{ - if ( IsModal() ) - EndModal(wxID_CANCEL); - else - { - SetReturnCode(wxID_CANCEL); - this->Show(FALSE); - } -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList closing; - - if ( closing.Member(this) ) - return; - - closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog - - closing.DeleteObject(this); -} - -// Destroy the window (delayed, if a managed window) -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -void wxDialog::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - // if we're using constraints - do use them - #if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) - { - Layout(); - } - #endif -} - -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) -{ -#if wxUSE_CTL3D - Ctl3dColorChange(); -#else - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); -#endif -} - -// --------------------------------------------------------------------------- -// dialog window proc -// --------------------------------------------------------------------------- - -long wxDialog::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - long rc = 0; - bool processed = FALSE; - - switch ( message ) - { - case WM_CLOSE: - // if we can't close, tell the system that we processed the - // message - otherwise it would close us - processed = !Close(); - break; - } - - if ( !processed ) - rc = wxWindow::MSWWindowProc(message, wParam, lParam); - - return rc; -} diff --git a/src/msw/dib.cpp b/src/msw/dib.cpp deleted file mode 100644 index 73c68707c8..0000000000 --- a/src/msw/dib.cpp +++ /dev/null @@ -1,945 +0,0 @@ -/******************************************************************************* - * * - * MODULE : DIB.CC * - * * - * DESCRIPTION : Routines for dealing with Device Independent Bitmaps. * - * * - * FUNCTIONS : * - * * - * ReadDIB() - Reads a DIB * - * * - * WriteDIB() - Writes a global handle in CF_DIB format* - * to a file. * - * * - * PaletteSize() - Calculates the palette size in bytes * - * of given DIB * - * * - * DibNumColors() - Determines the number of colors in DIB * - * * - * DibFromBitmap() - Creates a DIB repr. the DDB passed in. * - * * - * * - * lread() - Private routine to read more than 64k * - * * - * lwrite() - Private routine to write more than 64k * - * * - *******************************************************************************/ - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/defs.h" -#include "wx/bitmap.h" -#endif - -#include -#include -#include - -#if !defined(__MWERKS__) && !defined(__SALFORDC__) -#include -#endif - -#include "wx/msw/dib.h" - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#ifndef SEEK_CUR -/* flags for _lseek */ -#define SEEK_CUR 1 -#define SEEK_END 2 -#define SEEK_SET 0 -#endif - -#define MAXREAD 32768 /* Number of bytes to be read during */ - /* each read operation. */ - -/* Header signatutes for various resources */ -#define BFT_ICON 0x4349 /* 'IC' */ -#define BFT_BITMAP 0x4d42 /* 'BM' */ -#define BFT_CURSOR 0x5450 /* 'PT' */ - -/* macro to determine if resource is a DIB */ -#define ISDIB(bft) ((bft) == BFT_BITMAP) - -/* Macro to align given value to the closest DWORD (unsigned long ) */ -#define ALIGNULONG(i) ((i+3)/4*4) - -/* Macro to determine to round off the given value to the closest byte */ -#define WIDTHBYTES(i) ((i+31)/32*4) - -#define PALVERSION 0x300 -#define MAXPALETTE 256 /* max. # supported palette entries */ - -DWORD PASCAL lread(int fh, VOID FAR *pv, DWORD ul); -DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul); - -BOOL WriteDIB (LPSTR szFile,HANDLE hdib); -WORD PaletteSize (VOID FAR * pv); -WORD DibNumColors (VOID FAR * pv); -// HANDLE DibFromBitmap (HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal); -BOOL PASCAL MakeBitmapAndPalette(HDC,HANDLE,HPALETTE *,HBITMAP *); -HPALETTE MakeDIBPalette(LPBITMAPINFOHEADER); -BOOL ReadDIB(LPSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette); - -/**************************************************************************** - * * - * FUNCTION : WriteDIB(LPSTR szFile,HANDLE hdib) * - * * - * PURPOSE : Write a global handle in CF_DIB format to a file. * - * * - * RETURNS : TRUE - if successful. * - * FALSE - otherwise * - * * - ****************************************************************************/ - -BOOL WriteDIB(LPSTR szFile, HANDLE hdib) -{ - BITMAPFILEHEADER hdr; - LPBITMAPINFOHEADER lpbi; - int fh; - OFSTRUCT of; - - if (!hdib) - return FALSE; - - fh = OpenFile(szFile, &of, OF_CREATE | OF_READWRITE); - if (fh == -1) - return FALSE; - -#ifdef __WINDOWS_386__ - lpbi = (LPBITMAPINFOHEADER) MK_FP32(GlobalLock(hdib)); -#else - lpbi = (LPBITMAPINFOHEADER) GlobalLock(hdib); -#endif - /* Fill in the fields of the file header */ - hdr.bfType = BFT_BITMAP; - hdr.bfSize = GlobalSize(hdib) + sizeof(BITMAPFILEHEADER); - hdr.bfReserved1 = 0; - hdr.bfReserved2 = 0; - hdr.bfOffBits = (DWORD) sizeof(BITMAPFILEHEADER) + lpbi->biSize + - PaletteSize(lpbi); - - /* Write the file header */ - _lwrite(fh, (LPSTR) &hdr, sizeof(BITMAPFILEHEADER)); - - /* Write the DIB header and the bits */ - lwrite(fh, (LPSTR) lpbi, GlobalSize(hdib)); - - GlobalUnlock(hdib); - _lclose(fh); - return TRUE; -} - -/**************************************************************************** - * * - * FUNCTION : PaletteSize(VOID FAR * pv) * - * * - * PURPOSE : Calculates the palette size in bytes. If the info. block * - * is of the BITMAPCOREHEADER type, the number of colors is * - * multiplied by 3 to give the palette size, otherwise the * - * number of colors is multiplied by 4. * - * * - * RETURNS : Palette size in number of bytes. * - * * - ****************************************************************************/ - -WORD PaletteSize(VOID FAR * pv) -{ - LPBITMAPINFOHEADER lpbi; - WORD NumColors; - - lpbi = (LPBITMAPINFOHEADER) pv; - NumColors = DibNumColors(lpbi); - - if (lpbi->biSize == sizeof(BITMAPCOREHEADER)) - return NumColors * sizeof(RGBTRIPLE); - else - return NumColors * sizeof(RGBQUAD); -} - -/**************************************************************************** - * * - * FUNCTION : DibNumColors(VOID FAR * pv) * - * * - * PURPOSE : Determines the number of colors in the DIB by looking at * - * the BitCount filed in the info block. * - * * - * RETURNS : The number of colors in the DIB. * - * * - ****************************************************************************/ - -WORD DibNumColors(VOID FAR *pv) -{ - int bits; - BITMAPINFOHEADER *lpbi; - BITMAPCOREHEADER *lpbc; - - lpbi = ((BITMAPINFOHEADER*) pv); - lpbc = ((BITMAPCOREHEADER*) pv); - - /* With the BITMAPINFO format headers, the size of the palette - * is in biClrUsed, whereas in the BITMAPCORE - style headers, it - * is dependent on the bits per pixel ( = 2 raised to the power of - * bits/pixel). - */ - if (lpbi->biSize != sizeof(BITMAPCOREHEADER)) { - if (lpbi->biClrUsed != 0) - return (WORD) lpbi->biClrUsed; - bits = lpbi->biBitCount; - } - else - bits = lpbc->bcBitCount; - - switch (bits) { - case 1: - return 2; - case 4: - return 16; - case 8: - return 256; - default: - /* A 24 bitcount DIB has no color table */ - return 0; - } -} - -/**************************************************************************** - * * - * FUNCTION : DibFromBitmap() * - * * - * PURPOSE : Will create a global memory block in DIB format that * - * represents the Device-dependent bitmap (DDB) passed in. * - * * - * RETURNS : A handle to the DIB * - * * - ****************************************************************************/ - -#if NOTHING -HANDLE DibFromBitmap(HBITMAP hbm, DWORD biStyle, WORD biBits, HPALETTE hpal) -{ - BITMAP bm; - BITMAPINFOHEADER bi; - BITMAPINFOHEADER FAR *lpbi; - DWORD dwLen; - HANDLE hdib; - HANDLE h; - HDC hdc; - - if (!hbm) - return NULL; - - if (hpal == NULL) - hpal = GetStockObject(DEFAULT_PALETTE); - - GetObject(hbm, sizeof (bm), (LPSTR) &bm); - - if (biBits == 0) - biBits = bm.bmPlanes * bm.bmBitsPixel; - - bi.biSize = sizeof(BITMAPINFOHEADER); - bi.biWidth = bm.bmWidth; - bi.biHeight = bm.bmHeight; - bi.biPlanes = 1; - bi.biBitCount = biBits; - bi.biCompression = biStyle; - bi.biSizeImage = 0; - bi.biXPelsPerMeter = 0; - bi.biYPelsPerMeter = 0; - bi.biClrUsed = 0; - bi.biClrImportant = 0; - - dwLen = bi.biSize + PaletteSize(&bi); - - hdc = GetDC((HWND) NULL); - hpal = SelectPalette(hdc, hpal, FALSE); - RealizePalette(hdc); - - hdib = GlobalAlloc(GHND, dwLen); - - if (!hdib) { - SelectPalette(hdc, hpal, FALSE); - ReleaseDC(NULL, hdc); - return NULL; - } - -#ifdef __WINDOWS_386__ - lpbi = (BITMAPINFOHEADER FAR *) MK_FP32(GlobalLock(hdib)); -#else - lpbi = (BITMAPINFOHEADER FAR *) GlobalLock(hdib); -#endif - - *lpbi = bi; - - /* call GetDIBits with a NULL lpBits param, so it will calculate the - * biSizeImage field for us - */ - GetDIBits(hdc, hbm, 0, (WORD) bi.biHeight, - NULL, (LPBITMAPINFO) lpbi, DIB_RGB_COLORS); - - bi = *lpbi; - GlobalUnlock(hdib); - - /* If the driver did not fill in the biSizeImage field, make one up */ - if (bi.biSizeImage == 0) { - bi.biSizeImage = WIDTHBYTES((DWORD)bm.bmWidth * biBits) * bm.bmHeight; - - if (biStyle != BI_RGB) - bi.biSizeImage = (bi.biSizeImage * 3) / 2; - } - - /* realloc the buffer big enough to hold all the bits */ - dwLen = bi.biSize + PaletteSize(&bi) + bi.biSizeImage; - if (h = GlobalReAlloc(hdib, dwLen, 0)) - hdib = h; - else { - GlobalFree(hdib); - hdib = NULL; - - SelectPalette(hdc, hpal, FALSE); - ReleaseDC(NULL, hdc); - return hdib; - } - - /* call GetDIBits with a NON-NULL lpBits param, and actualy get the - * bits this time - */ -#ifdef __WINDOWS_386__ - lpbi = (BITMAPINFOHEADER FAR *) MK_FP32(GlobalLock(hdib)); -#else - lpbi = (BITMAPINFOHEADER FAR *) GlobalLock(hdib); -#endif - - if (GetDIBits(hdc, - hbm, - 0, - (WORD) bi.biHeight, - (LPSTR) lpbi + (WORD) lpbi->biSize + PaletteSize(lpbi), - (LPBITMAPINFO) lpbi, DIB_RGB_COLORS) == 0) { - GlobalUnlock(hdib); - hdib = NULL; - SelectPalette(hdc, hpal, FALSE); - ReleaseDC((HWND) NULL, hdc); - return NULL; - } - - bi = *lpbi; - GlobalUnlock(hdib); - - SelectPalette(hdc, hpal, FALSE); - ReleaseDC(NULL, hdc); - return hdib; -} -#endif - - /************* PRIVATE ROUTINES TO READ/WRITE MORE THAN 64K ***************/ -/**************************************************************************** - * * - * FUNCTION : lread(int fh, VOID FAR *pv, DWORD ul) * - * * - * PURPOSE : Reads data in steps of 32k till all the data has been read.* - * * - * RETURNS : 0 - If read did not proceed correctly. * - * number of bytes read otherwise. * - * * - ****************************************************************************/ - -DWORD PASCAL lread(int fh, void far *pv, DWORD ul) -{ - DWORD ulT = ul; -#if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__) || defined(__WXWINE__) - BYTE *hp = (BYTE *) pv; -#else - BYTE huge *hp = (BYTE huge *) pv; -#endif - while (ul > (DWORD) MAXREAD) { - if (_lread(fh, (LPSTR) hp, (WORD) MAXREAD) != MAXREAD) - return 0; - ul -= MAXREAD; - hp += MAXREAD; - } - if (_lread(fh, (LPSTR) hp, (WORD) ul) != (WORD) ul) - return 0; - return ulT; -} - -/**************************************************************************** - * * - * FUNCTION : lwrite(int fh, VOID FAR *pv, DWORD ul) * - * * - * PURPOSE : Writes data in steps of 32k till all the data is written. * - * * - * RETURNS : 0 - If write did not proceed correctly. * - * number of bytes written otherwise. * - * * - ****************************************************************************/ - -DWORD PASCAL lwrite(int fh, VOID FAR *pv, DWORD ul) -{ - DWORD ulT = ul; -#if defined(WINNT) || defined(__WIN32__) || defined(__WIN32__) || defined(__WXWINE__) - BYTE *hp = (BYTE *) pv; -#else - BYTE huge *hp = (BYTE huge *) pv; -#endif - while (ul > MAXREAD) { - if (_lwrite(fh, (LPSTR) hp, (WORD) MAXREAD) != MAXREAD) - return 0; - ul -= MAXREAD; - hp += MAXREAD; - } - if (_lwrite(fh, (LPSTR) hp, (WORD) ul) != (WORD) ul) - return 0; - return ulT; -} - -/**************************************************************************** - * - * FUNCTION : ReadDIB(hWnd) - * - * PURPOSE : Reads a DIB from a file, obtains a handle to its - * BITMAPINFO struct. and loads the DIB. Once the DIB - * is loaded, the function also creates a bitmap and - * palette out of the DIB for a device-dependent form. - * - * RETURNS : TRUE - DIB loaded and bitmap/palette created - * The DIBINIT structure pointed to by pInfo is - * filled with the appropriate handles. - * FALSE - otherwise - * - ****************************************************************************/ -BOOL ReadDIB(LPSTR lpFileName, HBITMAP *bitmap, HPALETTE *palette) -{ - int fh; - LPBITMAPINFOHEADER lpbi; - OFSTRUCT of; - BITMAPFILEHEADER bf; - WORD nNumColors; - BOOL result = FALSE; - char str[128]; - WORD offBits; - HDC hDC; - BOOL bCoreHead = FALSE; - HANDLE hDIB = 0; - - /* Open the file and get a handle to it's BITMAPINFO */ - - fh = OpenFile (lpFileName, &of, OF_READ); - if (fh == -1) { - wsprintf(str,"Can't open file '%s'", lpFileName); - MessageBox(NULL, str, "Error", MB_ICONSTOP | MB_OK); - return (0); - } - - hDIB = GlobalAlloc(GHND, (DWORD)(sizeof(BITMAPINFOHEADER) + - 256 * sizeof(RGBQUAD))); - if (!hDIB) - return(0); - -#ifdef __WINDOWS_386__ - lpbi = (LPBITMAPINFOHEADER)MK_FP32(GlobalLock(hDIB)); -#else - lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB); -#endif - - /* read the BITMAPFILEHEADER */ - if (sizeof (bf) != _lread (fh, (LPSTR)&bf, sizeof (bf))) - goto ErrExit; - - if (bf.bfType != 0x4d42) /* 'BM' */ - goto ErrExit; - - if (sizeof(BITMAPCOREHEADER) != _lread (fh, (LPSTR)lpbi, sizeof(BITMAPCOREHEADER))) - goto ErrExit; - - if (lpbi->biSize == sizeof(BITMAPCOREHEADER)) - { - lpbi->biSize = sizeof(BITMAPINFOHEADER); - lpbi->biBitCount = ((LPBITMAPCOREHEADER)lpbi)->bcBitCount; - lpbi->biPlanes = ((LPBITMAPCOREHEADER)lpbi)->bcPlanes; - lpbi->biHeight = ((LPBITMAPCOREHEADER)lpbi)->bcHeight; - lpbi->biWidth = ((LPBITMAPCOREHEADER)lpbi)->bcWidth; - bCoreHead = TRUE; - } - else - { - // get to the start of the header and read INFOHEADER - _llseek(fh,sizeof(BITMAPFILEHEADER),SEEK_SET); - if (sizeof(BITMAPINFOHEADER) != _lread (fh, (LPSTR)lpbi, sizeof(BITMAPINFOHEADER))) - goto ErrExit; - } - - nNumColors = (WORD)lpbi->biClrUsed; - if ( nNumColors == 0 ) - { - /* no color table for 24-bit, default size otherwise */ - if (lpbi->biBitCount != 24) - nNumColors = 1 << lpbi->biBitCount; /* standard size table */ - } - - /* fill in some default values if they are zero */ - if (lpbi->biClrUsed == 0) - lpbi->biClrUsed = nNumColors; - - if (lpbi->biSizeImage == 0) - { - lpbi->biSizeImage = ((((lpbi->biWidth * (DWORD)lpbi->biBitCount) + 31) & ~31) >> 3) - * lpbi->biHeight; - } - - /* get a proper-sized buffer for header, color table and bits */ - GlobalUnlock(hDIB); - hDIB = GlobalReAlloc(hDIB, lpbi->biSize + - nNumColors * sizeof(RGBQUAD) + - lpbi->biSizeImage, 0); - if (!hDIB) /* can't resize buffer for loading */ - goto ErrExit2; - -#ifdef __WINDOWS_386__ - lpbi = (LPBITMAPINFOHEADER)MK_FP32(GlobalLock(hDIB)); -#else - lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB); -#endif - - /* read the color table */ - if (!bCoreHead) - _lread(fh, (LPSTR)(lpbi) + lpbi->biSize, nNumColors * sizeof(RGBQUAD)); - else - { - signed int i; - RGBQUAD FAR *pQuad; - RGBTRIPLE FAR *pTriple; - - _lread(fh, (LPSTR)(lpbi) + lpbi->biSize, nNumColors * sizeof(RGBTRIPLE)); - - pQuad = (RGBQUAD FAR *)((LPSTR)lpbi + lpbi->biSize); - pTriple = (RGBTRIPLE FAR *) pQuad; - for (i = nNumColors - 1; i >= 0; i--) - { - pQuad[i].rgbRed = pTriple[i].rgbtRed; - pQuad[i].rgbBlue = pTriple[i].rgbtBlue; - pQuad[i].rgbGreen = pTriple[i].rgbtGreen; - pQuad[i].rgbReserved = 0; - } - } - - /* offset to the bits from start of DIB header */ - offBits = (WORD)lpbi->biSize + nNumColors * sizeof(RGBQUAD); - - if (bf.bfOffBits != 0L) - { - _llseek(fh,bf.bfOffBits,SEEK_SET); - } - - if (lpbi->biSizeImage == lread(fh, (LPSTR)lpbi + offBits, lpbi->biSizeImage)) - { - GlobalUnlock(hDIB); - - hDC = GetDC(NULL); - if (!MakeBitmapAndPalette(hDC, hDIB, palette, - bitmap)) - { - ReleaseDC(NULL,hDC); - goto ErrExit2; - } - else - { - ReleaseDC(NULL,hDC); - GlobalFree(hDIB); - result = TRUE; - } - } - else - { -ErrExit: - GlobalUnlock(hDIB); -ErrExit2: - GlobalFree(hDIB); - } - - _lclose(fh); - return(result); -} - -/**************************************************************************** - * - * FUNCTION : MakeBitmapAndPalette - * - * PURPOSE : Given a DIB, creates a bitmap and corresponding palette - * to be used for a device-dependent representation of - * of the image. - * - * RETURNS : TRUE --> success. phPal and phBitmap are filled with - * appropriate handles. Caller is responsible - * for freeing objects. - * FALSE --> unable to create objects. both pointer are - * not valid - * - ****************************************************************************/ -BOOL PASCAL MakeBitmapAndPalette(HDC hDC, HANDLE hDIB, - HPALETTE * phPal, HBITMAP * phBitmap) -{ - LPBITMAPINFOHEADER lpInfo; - BOOL result = FALSE; - HBITMAP hBitmap; - HPALETTE hPalette, hOldPal; - LPSTR lpBits; - -#ifdef __WINDOWS_386__ - lpInfo = (LPBITMAPINFOHEADER) MK_FP32(GlobalLock(hDIB)); -#else - lpInfo = (LPBITMAPINFOHEADER) GlobalLock(hDIB); -#endif - - hPalette = MakeDIBPalette(lpInfo); - if ( hPalette ) - { - // Need to realize palette for converting DIB to bitmap. - hOldPal = SelectPalette(hDC, hPalette, TRUE); - RealizePalette(hDC); - - lpBits = (LPSTR)lpInfo + (WORD)lpInfo->biSize + - (WORD)lpInfo->biClrUsed * sizeof(RGBQUAD); - hBitmap = CreateDIBitmap(hDC, lpInfo, CBM_INIT, lpBits, - (LPBITMAPINFO)lpInfo, DIB_RGB_COLORS); - - SelectPalette(hDC, hOldPal, TRUE); - RealizePalette(hDC); - - if (!hBitmap) - DeleteObject(hPalette); - else - { - *phBitmap = hBitmap; - *phPal = hPalette; - result = TRUE; - } - } - return(result); -} - -/**************************************************************************** - * * - * FUNCTION : MakeDIBPalette(lpInfo) * - * * - * PURPOSE : Given a BITMAPINFOHEADER, create a palette based on - * the color table. - * - * * - * RETURNS : non-zero - handle of a corresponding palette - * zero - unable to create palette - * * - ****************************************************************************/ -HPALETTE MakeDIBPalette(LPBITMAPINFOHEADER lpInfo) -{ -#ifdef __WXWINE__ - return (FALSE); -#else - NPLOGPALETTE npPal; - RGBQUAD far *lpRGB; - HPALETTE hLogPal; - WORD i; - - /* since biClrUsed field was filled during the loading of the DIB, - ** we know it contains the number of colors in the color table. - */ - if (lpInfo->biClrUsed) - { -/* - npPal = (NPLOGPALETTE)LocalAlloc(LMEM_FIXED, sizeof(LOGPALETTE) + - (WORD)lpInfo->biClrUsed * sizeof(PALETTEENTRY)); -*/ - npPal = (NPLOGPALETTE)malloc(sizeof(LOGPALETTE) + - (WORD)lpInfo->biClrUsed * sizeof(PALETTEENTRY)); - if (!npPal) - return(FALSE); - - npPal->palVersion = 0x300; - npPal->palNumEntries = (WORD)lpInfo->biClrUsed; - - /* get pointer to the color table */ - lpRGB = (RGBQUAD FAR *)((LPSTR)lpInfo + lpInfo->biSize); - - /* copy colors from the color table to the LogPalette structure */ - for (i = 0; i < lpInfo->biClrUsed; i++, lpRGB++) - { - npPal->palPalEntry[i].peRed = lpRGB->rgbRed; - npPal->palPalEntry[i].peGreen = lpRGB->rgbGreen; - npPal->palPalEntry[i].peBlue = lpRGB->rgbBlue; - npPal->palPalEntry[i].peFlags = 0; - } - - hLogPal = CreatePalette((LPLOGPALETTE)npPal); -// LocalFree((HANDLE)npPal); - free(npPal); - - return(hLogPal); - } - - /* 24-bit DIB with no color table. return default palette. Another - ** option would be to create a 256 color "rainbow" palette to provide - ** some good color choices. - */ - else - return((HPALETTE) GetStockObject(DEFAULT_PALETTE)); -#endif - -} - -bool wxLoadIntoBitmap(char *filename, wxBitmap *bitmap, wxPalette **pal) -{ - HBITMAP hBitmap; - HPALETTE hPalette; - - bool success = (ReadDIB(filename, &hBitmap, &hPalette) != 0); - - if (!success) - { - DeleteObject(hPalette); - return FALSE; - } - - if (hPalette) - { - if (pal) - { - *pal = new wxPalette; - (*pal)->SetHPALETTE((WXHPALETTE) hPalette); - } - else - DeleteObject(hPalette); - } - else if (pal) - *pal = NULL; - - if (hBitmap) - { - BITMAP bm; - GetObject(hBitmap, sizeof(bm), (LPSTR)&bm); - - bitmap->SetHBITMAP((WXHBITMAP) hBitmap); - bitmap->SetWidth(bm.bmWidth); - bitmap->SetHeight(bm.bmHeight); - bitmap->SetDepth(bm.bmPlanes * bm.bmBitsPixel); - bitmap->SetOk(TRUE); - return TRUE; - } - else return FALSE; -} - -wxBitmap *wxLoadBitmap(char *filename, wxPalette **pal) -{ - wxBitmap *bitmap = new wxBitmap; - if (wxLoadIntoBitmap(filename, bitmap, pal)) - return bitmap; - else - { - delete bitmap; - return NULL; - } -} - -//--------------------------------------------------------------------- -// -// Function: InitBitmapInfoHeader -// -// Purpose: Does a "standard" initialization of a BITMAPINFOHEADER, -// given the Width, Height, and Bits per Pixel for the -// DIB. -// -// By standard, I mean that all the relevant fields are set -// to the specified values. biSizeImage is computed, the -// biCompression field is set to "no compression," and all -// other fields are 0. -// -// Note that DIBs only allow BitsPixel values of 1, 4, 8, or -// 24. This routine makes sure that one of these values is -// used (whichever is most appropriate for the specified -// nBPP). -// -// Parms: lpBmInfoHdr == Far pointer to a BITMAPINFOHEADER structure -// to be filled in. -// dwWidth == Width of DIB (not in Win 3.0 & 3.1, high -// word MUST be 0). -// dwHeight == Height of DIB (not in Win 3.0 & 3.1, high -// word MUST be 0). -// nBPP == Bits per Pixel for the DIB. -// -// History: Date Reason -// 11/07/91 Created -// -//--------------------------------------------------------------------- - -void InitBitmapInfoHeader (LPBITMAPINFOHEADER lpBmInfoHdr, - DWORD dwWidth, - DWORD dwHeight, - int nBPP) -{ -// _fmemset (lpBmInfoHdr, 0, sizeof (BITMAPINFOHEADER)); - memset (lpBmInfoHdr, 0, sizeof (BITMAPINFOHEADER)); - - lpBmInfoHdr->biSize = sizeof (BITMAPINFOHEADER); - lpBmInfoHdr->biWidth = dwWidth; - lpBmInfoHdr->biHeight = dwHeight; - lpBmInfoHdr->biPlanes = 1; - - if (nBPP <= 1) - nBPP = 1; - else if (nBPP <= 4) - nBPP = 4; - else if (nBPP <= 8) - nBPP = 8; -/* Doesn't work - else if (nBPP <= 16) - nBPP = 16; -*/ - else - nBPP = 24; - - lpBmInfoHdr->biBitCount = nBPP; - lpBmInfoHdr->biSizeImage = WIDTHBYTES (dwWidth * nBPP) * dwHeight; -} - - - - -LPSTR FindDIBBits (LPSTR lpbi) -{ - return (lpbi + *(LPDWORD)lpbi + PaletteSize (lpbi)); -} - -//--------------------------------------------------------------------- -// -// Function: BitmapToDIB -// -// Purpose: Given a device dependent bitmap and a palette, returns -// a handle to global memory with a DIB spec in it. The -// DIB is rendered using the colors of the palette passed in. -// -// Stolen almost verbatim from ShowDIB. -// -// Parms: hBitmap == Handle to device dependent bitmap compatible -// with default screen display device. -// hPal == Palette to render the DDB with. If it's NULL, -// use the default palette. -// -// History: Date Reason -// 6/01/91 Created -// -//--------------------------------------------------------------------- - -HANDLE BitmapToDIB (HBITMAP hBitmap, HPALETTE hPal) -{ - BITMAP Bitmap; - BITMAPINFOHEADER bmInfoHdr; - LPBITMAPINFOHEADER lpbmInfoHdr; - LPSTR lpBits; - HDC hMemDC; - HANDLE hDIB; - HPALETTE hOldPal = NULL; - - // Do some setup -- make sure the Bitmap passed in is valid, - // get info on the bitmap (like its height, width, etc.), - // then setup a BITMAPINFOHEADER. - - if (!hBitmap) - return NULL; - - if (!GetObject (hBitmap, sizeof (Bitmap), (LPSTR) &Bitmap)) - return NULL; - - InitBitmapInfoHeader (&bmInfoHdr, - Bitmap.bmWidth, - Bitmap.bmHeight, - Bitmap.bmPlanes * Bitmap.bmBitsPixel); - - - // Now allocate memory for the DIB. Then, set the BITMAPINFOHEADER - // into this memory, and find out where the bitmap bits go. - - hDIB = GlobalAlloc (GHND, sizeof (BITMAPINFOHEADER) + - PaletteSize ((LPSTR) &bmInfoHdr) + bmInfoHdr.biSizeImage); - - if (!hDIB) - return NULL; - -#ifdef __WINDOWS_386__ - lpbmInfoHdr = (LPBITMAPINFOHEADER) MK_FP32(GlobalLock (hDIB)); -#else - lpbmInfoHdr = (LPBITMAPINFOHEADER) GlobalLock (hDIB); -#endif - - *lpbmInfoHdr = bmInfoHdr; - lpBits = FindDIBBits ((LPSTR) lpbmInfoHdr); - - - // Now, we need a DC to hold our bitmap. If the app passed us - // a palette, it should be selected into the DC. - - hMemDC = GetDC (NULL); - - if (hPal) - { - hOldPal = SelectPalette (hMemDC, hPal, FALSE); - RealizePalette (hMemDC); - } - - - - // We're finally ready to get the DIB. Call the driver and let - // it party on our bitmap. It will fill in the color table, - // and bitmap bits of our global memory block. - - if (!GetDIBits (hMemDC, - hBitmap, - 0, - Bitmap.bmHeight, - lpBits, - (LPBITMAPINFO) lpbmInfoHdr, - DIB_RGB_COLORS)) - { - GlobalUnlock (hDIB); - GlobalFree (hDIB); - hDIB = NULL; - } - else - GlobalUnlock (hDIB); - - - // Finally, clean up and return. - - if (hOldPal) - SelectPalette (hMemDC, hOldPal, FALSE); - - ReleaseDC (NULL, hMemDC); - - return hDIB; -} - -bool wxSaveBitmap(char *filename, wxBitmap *bitmap, wxPalette *colourmap) -{ - HPALETTE hPalette = 0; - if (colourmap) - hPalette = (HPALETTE) colourmap->GetHPALETTE(); - - HANDLE dibHandle = BitmapToDIB((HBITMAP) bitmap->GetHBITMAP(), hPalette); - if (dibHandle) - { - bool success = (WriteDIB(filename, dibHandle) != 0); - GlobalFree(dibHandle); - return success; - } - else return FALSE; -} - - diff --git a/src/msw/dibutils.cpp b/src/msw/dibutils.cpp deleted file mode 100644 index 3acbd1fbea..0000000000 --- a/src/msw/dibutils.cpp +++ /dev/null @@ -1,709 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dibutils.cpp -// Purpose: Utilities for DIBs -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Microsoft, Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dibutils.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/defs.h" -#endif - -#include -#include -#include - -#include "wx/msw/dibutils.h" - -#ifdef __WXWINE__ - #include -#endif - -#if defined(__WIN32__) -#if !defined(__MWERKS__) && !defined(__SALFORDC__) - #include // for _fmemcpy() -#endif - #define _huge -#ifndef hmemcpy - #define hmemcpy memcpy -#endif -#endif - -#define BFT_ICON 0x4349 /* 'IC' */ -#define BFT_BITMAP 0x4d42 /* 'BM' */ -#define BFT_CURSOR 0x5450 /* 'PT' */ - -/* flags for _lseek */ -#define SEEK_CUR 1 -#define SEEK_END 2 -#define SEEK_SET 0 - - -/* - * Clear the System Palette so that we can ensure an identity palette - * mapping for fast performance. - */ - -void ClearSystemPalette(void) -{ - //*** A dummy palette setup - struct - { - WORD Version; - WORD NumberOfEntries; - PALETTEENTRY aEntries[256]; - } Palette = - { - 0x300, - 256 - }; - - HPALETTE ScreenPalette = 0; - HDC ScreenDC; - int Counter; - UINT nMapped = 0; - BOOL bOK = FALSE; - int nOK = 0; - - // *** Reset everything in the system palette to black - for(Counter = 0; Counter < 256; Counter++) - { - Palette.aEntries[Counter].peRed = 0; - Palette.aEntries[Counter].peGreen = 0; - Palette.aEntries[Counter].peBlue = 0; - Palette.aEntries[Counter].peFlags = PC_NOCOLLAPSE; - } - - // *** Create, select, realize, deselect, and delete the palette -#ifdef __WXWINE__ - ScreenDC = GetDC((HWND)NULL); -#else - ScreenDC = GetDC(NULL); -#endif - ScreenPalette = CreatePalette((LOGPALETTE *)&Palette); - - if (ScreenPalette) - { - ScreenPalette = SelectPalette(ScreenDC,ScreenPalette,FALSE); - nMapped = RealizePalette(ScreenDC); - ScreenPalette = SelectPalette(ScreenDC,ScreenPalette,FALSE); - bOK = DeleteObject(ScreenPalette); - } - -#ifdef __WXWINE__ - nOK = ReleaseDC((HWND)NULL, ScreenDC); -#else - nOK = ReleaseDC(NULL, ScreenDC); -#endif - - return; -} - - -/* - * Open a DIB file and return a MEMORY DIB, a memory handle containing.. - * - * BITMAP INFO bi - * palette data - * bits.... - */ - -int DibWriteFile(LPSTR szFile, LPBITMAPINFOHEADER lpbi) -{ - HFILE fh; - OFSTRUCT of; - - fh = OpenFile(szFile, &of, OF_WRITE | OF_CREATE); - - if (!fh) { -// printf("la regamos0"); - return 0; - } - - long size = DibSize(lpbi); - - // write file header - BITMAPFILEHEADER bmf; - bmf.bfType = 'BM'; - bmf.bfSize = sizeof(bmf) + size; - bmf.bfReserved1 = 0; - bmf.bfReserved2 = 0; - bmf.bfOffBits = sizeof(bmf) + (char far*)(DibPtr(lpbi)) - (char far*)lpbi; -#if defined( __WATCOMC__) || defined(__VISUALC__) || defined(__SC__) || defined(__SALFORDC__) || defined(__MWERKS__) - if (_hwrite(fh, (LPCSTR)(&bmf), sizeof(bmf))<0 || - _hwrite(fh, (LPCSTR)lpbi, size)<0) { - _lclose(fh); -// printf("la regamos1"); - return 0; - } -#else - if (_hwrite(fh, (LPBYTE)(&bmf), sizeof(bmf))<0 || - _hwrite(fh, (LPBYTE)lpbi, size)<0) { - _lclose(fh); -// printf("la regamos1"); - return 0; - } -#endif - - _lclose(fh); - return 1; -} - -PDIB DibOpenFile(LPSTR szFile) -{ - HFILE fh; - DWORD dwLen; - DWORD dwBits; - PDIB pdib; - LPVOID p; - OFSTRUCT of; - -#if defined(WIN32) || defined(_WIN32) - #define GetCurrentInstance() GetModuleHandle(NULL) -#else - #define GetCurrentInstance() (HINSTANCE)SELECTOROF((LPVOID)&of) -#endif - - fh = OpenFile(szFile, &of, OF_READ); - - if (fh == -1) - { - HRSRC h; - - // TODO: Unicode version -#ifdef __WIN16__ - h = FindResource(GetCurrentInstance(), szFile, RT_BITMAP); -#else - h = FindResourceA(GetCurrentInstance(), szFile, RT_BITMAP); -#endif - -#if defined(__WIN32__) - //!!! can we call GlobalFree() on this? is it the right format. - //!!! can we write to this resource? - if (h) - return (PDIB)LockResource(LoadResource(GetCurrentInstance(), h)); -#else - if (h) - fh = AccessResource(GetCurrentInstance(), h); -#endif - } - - if (fh == -1) - return NULL; - - pdib = DibReadBitmapInfo(fh); - - if (!pdib) - return NULL; - - /* How much memory do we need to hold the DIB */ - - dwBits = pdib->biSizeImage; - dwLen = pdib->biSize + DibPaletteSize(pdib) + dwBits; - - /* Can we get more memory? */ - - p = GlobalReAllocPtr(pdib,dwLen,0); - - if (!p) - { - GlobalFreePtr(pdib); - pdib = NULL; - } - else - { - pdib = (PDIB)p; - } - - if (pdib) - { - /* read in the bits */ - _hread(fh, (LPBYTE)pdib + (UINT)pdib->biSize + DibPaletteSize(pdib), dwBits); - } - - _lclose(fh); - - return pdib; -} - - -/* - * ReadDibBitmapInfo() - * - * Will read a file in DIB format and return a global HANDLE to its - * BITMAPINFO. This function will work with both "old" and "new" - * bitmap formats, but will always return a "new" BITMAPINFO. - */ - -PDIB DibReadBitmapInfo(HFILE fh) -{ - DWORD off; - int size; - int i; - int nNumColors; - - RGBQUAD FAR *pRgb; - BITMAPINFOHEADER bi; - BITMAPCOREHEADER bc; - BITMAPFILEHEADER bf; - PDIB pdib; - - if (fh == -1) - return NULL; - - off = _llseek(fh,0L,SEEK_CUR); - - if (sizeof(bf) != _lread(fh,(LPSTR)&bf,sizeof(bf))) - return FALSE; - - /* - * do we have a RC HEADER? - */ - if (bf.bfType != BFT_BITMAP) - { - bf.bfOffBits = 0L; - _llseek(fh,off,SEEK_SET); - } - - if (sizeof(bi) != _lread(fh,(LPSTR)&bi,sizeof(bi))) - return FALSE; - - /* - * what type of bitmap info is this? - */ - switch (size = (int)bi.biSize) - { - default: - case sizeof(BITMAPINFOHEADER): - break; - - case sizeof(BITMAPCOREHEADER): - bc = *(BITMAPCOREHEADER*)&bi; - bi.biSize = sizeof(BITMAPINFOHEADER); - bi.biWidth = (DWORD)bc.bcWidth; - bi.biHeight = (DWORD)bc.bcHeight; - bi.biPlanes = (UINT)bc.bcPlanes; - bi.biBitCount = (UINT)bc.bcBitCount; - bi.biCompression = BI_RGB; - bi.biSizeImage = 0; - bi.biXPelsPerMeter = 0; - bi.biYPelsPerMeter = 0; - bi.biClrUsed = 0; - bi.biClrImportant = 0; - - _llseek(fh,(LONG)sizeof(BITMAPCOREHEADER)-sizeof(BITMAPINFOHEADER),SEEK_CUR); - - break; - } - - nNumColors = DibNumColors(&bi); - -#if 0 - if (bi.biSizeImage == 0) - bi.biSizeImage = DibSizeImage(&bi); - - if (bi.biClrUsed == 0) - bi.biClrUsed = DibNumColors(&bi); -#else - FixBitmapInfo(&bi); -#endif - - pdib = (PDIB)GlobalAllocPtr(GMEM_MOVEABLE,(LONG)bi.biSize + nNumColors * sizeof(RGBQUAD)); - - if (!pdib) - return NULL; - - *pdib = bi; - - pRgb = DibColors(pdib); - - if (nNumColors) - { - if (size == sizeof(BITMAPCOREHEADER)) - { - /* - * convert a old color table (3 byte entries) to a new - * color table (4 byte entries) - */ - _lread(fh,(LPVOID)pRgb,nNumColors * sizeof(RGBTRIPLE)); - - for (i=nNumColors-1; i>=0; i--) - { - RGBQUAD rgb; - - rgb.rgbRed = ((RGBTRIPLE FAR *)pRgb)[i].rgbtRed; - rgb.rgbBlue = ((RGBTRIPLE FAR *)pRgb)[i].rgbtBlue; - rgb.rgbGreen = ((RGBTRIPLE FAR *)pRgb)[i].rgbtGreen; - rgb.rgbReserved = (BYTE)0; - - pRgb[i] = rgb; - } - } - else - { - _lread(fh,(LPVOID)pRgb,nNumColors * sizeof(RGBQUAD)); - } - } - - if (bf.bfOffBits != 0L) - _llseek(fh,off + bf.bfOffBits,SEEK_SET); - - return pdib; -} - -/* - * DibSetUsage(hdib,hpal,wUsage) - * - * Modifies the color table of the passed DIB for use with the wUsage - * parameter specifed. - * - * if wUsage is DIB_PAL_COLORS the DIB color table is set to 0-256 - * if wUsage is DIB_RGB_COLORS the DIB color table is set to the RGB values - * in the passed palette - */ - -BOOL DibSetUsage(PDIB pdib, HPALETTE hpal,UINT wUsage) -{ - PALETTEENTRY ape[256]; - RGBQUAD FAR * pRgb; - WORD FAR * pw; - int nColors; - int n; - - if (hpal == NULL) - hpal = (HPALETTE)GetStockObject(DEFAULT_PALETTE); - - if (!pdib) - return FALSE; - - nColors = DibNumColors(pdib); - - if (nColors == 3 && DibCompression(pdib) == BI_BITFIELDS) - nColors = 0; - - if (nColors > 0) - { - pRgb = DibColors(pdib); - - switch (wUsage) - { - // - // Set the DIB color table to palette indexes - // - case DIB_PAL_COLORS: - for (pw = (WORD FAR*)pRgb,n=0; nbiSize = sizeof(BITMAPINFOHEADER) ; - lpbi->biWidth = dx; - lpbi->biHeight = dy; - lpbi->biPlanes = 1; - lpbi->biBitCount = bits ; - lpbi->biCompression = BI_RGB ; - lpbi->biSizeImage = dwSizeImage; - lpbi->biXPelsPerMeter = 0 ; - lpbi->biYPelsPerMeter = 0 ; - lpbi->biClrUsed = 0 ; - lpbi->biClrImportant = 0 ; - - if (bits == 4) - lpbi->biClrUsed = 16; - - else if (bits == 8) - lpbi->biClrUsed = 256; - - pdw = (DWORD FAR *)((LPBYTE)lpbi+(int)lpbi->biSize); - - for (i=0; i<(int)lpbi->biClrUsed/16; i++) - { - *pdw++ = 0x00000000; // 0000 black - *pdw++ = 0x00800000; // 0001 dark red - *pdw++ = 0x00008000; // 0010 dark green - *pdw++ = 0x00808000; // 0011 mustard - *pdw++ = 0x00000080; // 0100 dark blue - *pdw++ = 0x00800080; // 0101 purple - *pdw++ = 0x00008080; // 0110 dark turquoise - *pdw++ = 0x00C0C0C0; // 1000 gray - *pdw++ = 0x00808080; // 0111 dark gray - *pdw++ = 0x00FF0000; // 1001 red - *pdw++ = 0x0000FF00; // 1010 green - *pdw++ = 0x00FFFF00; // 1011 yellow - *pdw++ = 0x000000FF; // 1100 blue - *pdw++ = 0x00FF00FF; // 1101 pink (magenta) - *pdw++ = 0x0000FFFF; // 1110 cyan - *pdw++ = 0x00FFFFFF; // 1111 white - } - - return (PDIB)lpbi; -} - -static void xlatClut8(BYTE FAR *pb, DWORD dwSize, BYTE FAR *xlat) -{ - DWORD dw; - -#ifdef __cplusplus - for (dw = 0; dw < dwSize; dw++, ((BYTE _huge *&)pb)++) -#else - for (dw = 0; dw < dwSize; dw++, ((BYTE _huge *)pb)++) -#endif - *pb = xlat[*pb]; -} - -static void xlatClut4(BYTE FAR *pb, DWORD dwSize, BYTE FAR *xlat) -{ - DWORD dw; - -#ifdef __cplusplus - for (dw = 0; dw < dwSize; dw++, ((BYTE _huge *&)pb)++) -#else - for (dw = 0; dw < dwSize; dw++, ((BYTE _huge *)pb)++) -#endif - *pb = (BYTE)(xlat[*pb & 0x0F] | (xlat[(*pb >> 4) & 0x0F] << 4)); -} - -#define RLE_ESCAPE 0 -#define RLE_EOL 0 -#define RLE_EOF 1 -#define RLE_JMP 2 - -static void xlatRle8(BYTE FAR *pb, DWORD dwSize, BYTE FAR *xlat) -{ - BYTE cnt; - BYTE b; - BYTE _huge *prle = pb; - - for(;;) - { - cnt = *prle++; - b = *prle; - - if (cnt == RLE_ESCAPE) - { - prle++; - - switch (b) - { - case RLE_EOF: - return; - - case RLE_EOL: - break; - - case RLE_JMP: - prle++; // skip dX - prle++; // skip dY - break; - - default: - cnt = b; - for (b=0; bbiSizeImage) == 0) - SizeImage = DibSizeImage(lpbi); - - // - // build a xlat table. from the current DIB colors to the given - // palette. - // - for (n=0; nbiClrUsed = nPalColors; - - // - // re-size the DIB - // - if (nPalColors > nDibColors) - { - GlobalReAllocPtr(lpbi, lpbi->biSize + nPalColors*sizeof(RGBQUAD) + SizeImage, 0); - hmemmove((BYTE _huge *)DibPtr(lpbi), (BYTE _huge *)lpBits, SizeImage); - lpBits = (LPBYTE)DibPtr(lpbi); - } - else if (nPalColors < nDibColors) - { - hmemcpy(DibPtr(lpbi), lpBits, SizeImage); - GlobalReAllocPtr(lpbi, lpbi->biSize + nPalColors*sizeof(RGBQUAD) + SizeImage, 0); - lpBits = (LPBYTE)DibPtr(lpbi); - } - - // - // translate the DIB bits - // - switch (lpbi->biCompression) - { - case BI_RLE8: - xlatRle8(lpBits, SizeImage, xlat); - break; - - case BI_RLE4: - xlatRle4(lpBits, SizeImage, xlat); - break; - - case BI_RGB: - if (lpbi->biBitCount == 8) - xlatClut8(lpBits, SizeImage, xlat); - else - xlatClut4(lpBits, SizeImage, xlat); - break; - } - - // - // Now copy the RGBs in the logical palette to the dib color table - // - for (n=0; nbmiColors; - - WORD nColors = Info->bmiHeader.biClrUsed; - if (nColors) { - LOGPALETTE* logPal = (LOGPALETTE*) - new BYTE[sizeof(LOGPALETTE) + (nColors-1)*sizeof(PALETTEENTRY)]; - - logPal->palVersion = 0x300; // Windows 3.0 version - logPal->palNumEntries = nColors; - for (short n = 0; n < nColors; n++) { - logPal->palPalEntry[n].peRed = rgb[n].rgbRed; - logPal->palPalEntry[n].peGreen = rgb[n].rgbGreen; - logPal->palPalEntry[n].peBlue = rgb[n].rgbBlue; - logPal->palPalEntry[n].peFlags = (BYTE)flags; - } - hPalette = ::CreatePalette(logPal); - delete logPal; - } else - hPalette = 0; - - return hPalette; -} - diff --git a/src/msw/dirdlg.cpp b/src/msw/dirdlg.cpp deleted file mode 100644 index ecfac092c5..0000000000 --- a/src/msw/dirdlg.cpp +++ /dev/null @@ -1,131 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dirdlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/dirdlg.h" -#endif - -#if defined(__WIN95__) && !defined(__GNUWIN32__) -#include "shlobj.h" // Win95 shell -#endif - -#include "wx/msw/private.h" -#include "wx/cmndata.h" - -#include -#include -#include - -#define wxDIALOG_DEFAULT_X 300 -#define wxDIALOG_DEFAULT_Y 300 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif - -wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, -// const wxString& caption, - const wxString& defaultPath, - long style, const wxPoint& pos) -{ - m_message = message; -// m_caption = caption; - m_dialogStyle = style; - m_parent = parent; - m_path = defaultPath; -} - -int wxDirDialog::ShowModal(void) -{ - // Unfortunately Gnu-Win32 doesn't yet have COM support -#if defined(__WIN95__) && !defined(__GNUWIN32__) - HWND hWnd = 0; - if (m_parent) hWnd = (HWND) m_parent->GetHWND(); - - BROWSEINFO bi; - LPSTR lpBuffer; -// LPITEMIDLIST pidlPrograms; // PIDL for Programs folder - LPITEMIDLIST pidlBrowse; // PIDL selected by user - LPMALLOC pMalloc = NULL; - - HRESULT result = ::SHGetMalloc(&pMalloc); - - if (result != NOERROR) - return wxID_CANCEL; - - // Allocate a buffer to receive browse information. - if ((lpBuffer = (LPSTR) pMalloc->Alloc(MAX_PATH)) == NULL) - { - pMalloc->Release(); - return wxID_CANCEL; - } - -/* - // Get the PIDL for the Programs folder. - if (!SUCCEEDED(SHGetSpecialFolderLocation( - parent->GetSafeHwnd(), CSIDL_PROGRAMS, &pidlPrograms))) { - pMalloc->Free(lpBuffer); - pMalloc->Release(); - return wxID_CANCEL; - } -*/ - - // Fill in the BROWSEINFO structure. - bi.hwndOwner = hWnd; - bi.pidlRoot = NULL; // pidlPrograms; - bi.pszDisplayName = lpBuffer; - bi.lpszTitle = (LPCTSTR) (const char *) m_message; - bi.ulFlags = 0; - bi.lpfn = NULL; - bi.lParam = 0; - - // Browse for a folder and return its PIDL. - pidlBrowse = SHBrowseForFolder(&bi); - - int id = wxID_OK; - if (pidlBrowse != NULL) { - - // Show the display name, title, and file system path. - if (SHGetPathFromIDList(pidlBrowse, lpBuffer)) - m_path = lpBuffer; - - // Free the PIDL returned by SHBrowseForFolder. - pMalloc->Free(pidlBrowse); - } - else - id = wxID_CANCEL; - - // Clean up. -// pMalloc->Free(pidlPrograms); - pMalloc->Free(lpBuffer); - pMalloc->Release(); - - return id; -#else - return wxID_CANCEL; -#endif -} - diff --git a/src/msw/dragimag.cpp b/src/msw/dragimag.cpp deleted file mode 100644 index 8588617c27..0000000000 --- a/src/msw/dragimag.cpp +++ /dev/null @@ -1,253 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dragimag.cpp -// Purpose: wxDragImage -// Author: Julian Smart -// Modified by: -// Created: 08/04/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dragimag.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if defined(__WIN95__) - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/window.h" -#include "wx/dcclient.h" -#endif - -#include "wx/log.h" -#include "wx/intl.h" - -#include "wx/msw/dragimag.h" -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDragImage, wxObject) -#endif - -wxDragImage::wxDragImage() -{ - m_hImageList = 0; -} - -wxDragImage::~wxDragImage() -{ - if ( m_hImageList ) - ImageList_Destroy((HIMAGELIST) m_hImageList); - m_hImageList = 0; -} - - -// Attributes -//////////////////////////////////////////////////////////////////////////// - - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Create a drag image from a bitmap and optional cursor -bool wxDragImage::Create(const wxBitmap& image, const wxCursor& cursor, const wxPoint& hotspot) -{ - if ( m_hImageList ) - ImageList_Destroy((HIMAGELIST) m_hImageList); - m_hImageList = 0; - - UINT flags = 0; - bool mask = TRUE; // ? - if ( mask ) - flags |= ILC_MASK; - - m_hImageList = (WXHIMAGELIST) ImageList_Create(image.GetWidth(), image.GetHeight(), flags, 1, 1); - - HBITMAP hBitmap1 = (HBITMAP) image.GetHBITMAP(); - HBITMAP hBitmap2 = 0; - if ( image.GetMask() ) - hBitmap2 = (HBITMAP) image.GetMask()->GetMaskBitmap(); - - int index = ImageList_Add((HIMAGELIST) m_hImageList, hBitmap1, hBitmap2); - if ( index == -1 ) - { - wxLogError(_("Couldn't add an image to the image list.")); - } - - m_cursor = cursor; // Can only combine with drag image after calling BeginDrag. - m_hotspot = hotspot; - - return (index != -1) ; -} - -// Create a drag image from an icon and optional cursor -bool wxDragImage::Create(const wxIcon& image, const wxCursor& cursor, const wxPoint& hotspot) -{ - if ( m_hImageList ) - ImageList_Destroy((HIMAGELIST) m_hImageList); - m_hImageList = 0; - - UINT flags = 0; - bool mask = TRUE; // ? - if ( mask ) - flags |= ILC_MASK; - - m_hImageList = (WXHIMAGELIST) ImageList_Create(image.GetWidth(), image.GetHeight(), flags, 1, 1); - - HICON hIcon = (HICON) image.GetHICON(); - - int index = ImageList_AddIcon((HIMAGELIST) m_hImageList, hIcon); - if ( index == -1 ) - { - wxLogError(_("Couldn't add an image to the image list.")); - } - - m_cursor = cursor; // Can only combine with drag image after calling BeginDrag. - m_hotspot = hotspot; - - return (index != -1) ; -} - -// Create a drag image from a string and optional cursor -bool wxDragImage::Create(const wxString& str, const wxCursor& cursor, const wxPoint& hotspot) -{ - wxFont font(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - - long w, h; - wxScreenDC dc; - dc.SetFont(font); - dc.GetTextExtent(str, & w, & h); - - wxMemoryDC dc2; - dc2.SetFont(font); - wxBitmap bitmap((int) w, (int) h); - dc2.SelectObject(bitmap); - - dc2.SetBackground(* wxWHITE_BRUSH); - dc2.Clear(); - dc2.DrawText(str, 0, 0); - - dc2.SelectObject(wxNullBitmap); - - return Create(bitmap, cursor, hotspot); -} - -// Create a drag image for the given tree control item -bool wxDragImage::Create(const wxTreeCtrl& treeCtrl, wxTreeItemId& id) -{ - if ( m_hImageList ) - ImageList_Destroy((HIMAGELIST) m_hImageList); - m_hImageList = (WXHIMAGELIST) TreeView_CreateDragImage((HWND) treeCtrl.GetHWND(), (HTREEITEM) (WXHTREEITEM) id); - return TRUE; -} - -// Create a drag image for the given list control item -bool wxDragImage::Create(const wxListCtrl& listCtrl, long id) -{ - if ( m_hImageList ) - ImageList_Destroy((HIMAGELIST) m_hImageList); - POINT pt; - pt.x = 0; pt.y = 0; - m_hImageList = (WXHIMAGELIST) ListView_CreateDragImage((HWND) listCtrl.GetHWND(), id, & pt); - return TRUE; -} - -// Begin drag -bool wxDragImage::BeginDrag(const wxPoint& hotspot, wxWindow* WXUNUSED(window)) -{ - wxASSERT_MSG( (m_hImageList != 0), "Image list must not be null in BeginDrag."); - - bool ret = (ImageList_BeginDrag((HIMAGELIST) m_hImageList, 0, hotspot.x, hotspot.y) != 0); - - wxASSERT_MSG( (ret), "BeginDrag failed."); - - if (!ret) - return FALSE; - - if (m_cursor.Ok()) - { - // First add the cursor to the image list - int cursorIndex = ImageList_AddIcon((HIMAGELIST) m_hImageList, (HICON) m_cursor.GetHCURSOR()); - - wxASSERT_MSG( (cursorIndex != -1), "ImageList_AddIcon failed in BeginDrag."); - - if (cursorIndex != -1) - { - ImageList_SetDragCursorImage((HIMAGELIST) m_hImageList, cursorIndex, m_hotspot.x, m_hotspot.y); - } - } - - ::ShowCursor(FALSE); - - return TRUE; -} - -// End drag -bool wxDragImage::EndDrag(wxWindow* WXUNUSED(window)) -{ - wxASSERT_MSG( (m_hImageList != 0), "Image list must not be null in EndDrag."); - - ImageList_EndDrag(); - - ::ShowCursor(TRUE); - - return TRUE; -} - -// Move the image: call from OnMouseMove. Pt is in window client coordinates if window -// is non-NULL, or in screen coordinates if NULL. -bool wxDragImage::Move(const wxPoint& pt, wxWindow* window) -{ - wxASSERT_MSG( (m_hImageList != 0), "Image list must not be null in Move."); - - // TODO: what coordinates are these in: window, client, or screen? - bool ret = (ImageList_DragMove( pt.x, pt.y ) != 0); - - m_position = pt; - - return ret; -} - -bool wxDragImage::Show(wxWindow* window) -{ - wxASSERT_MSG( (m_hImageList != 0), "Image list must not be null in Show."); - - HWND hWnd = 0; - if (window) - hWnd = (HWND) window->GetHWND(); - - bool ret = (ImageList_DragEnter( hWnd, m_position.x, m_position.y ) != 0); - - return ret; -} - -bool wxDragImage::Hide(wxWindow* window) -{ - wxASSERT_MSG( (m_hImageList != 0), "Image list must not be null in Hide."); - - HWND hWnd = 0; - if (window) - hWnd = (HWND) window->GetHWND(); - - bool ret = (ImageList_DragLeave( hWnd ) != 0); - - return ret; -} - -#endif - // __WIN95__ - diff --git a/src/msw/dummy.cpp b/src/msw/dummy.cpp deleted file mode 100644 index c21e7df120..0000000000 --- a/src/msw/dummy.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * File: dummy.cc - * Purpose: See below - * Author: Julian Smart - * Created: 1993 - * Updated: - * Copyright: (c) 1993, AIAI, University of Edinburgh - */ - -/* A dummy file to include wx.h. If precompiling wx.h, I - * always start by compiling this and producing the PCH file. - * Then subsequent source files use the PCH file. - * - * If precompiling wx.h for wxWindows and derived apps, - * link dummy.obj with your program (the MSC 7 linker complains otherwise). - * - * This is the only convenient way I found to use precompiled headers - * under MSC 7. - * - * This will produce a big PCH file. - */ - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include - -#include "wx/msw/msvcrt.h" - -// Foils optimizations in Visual C++ (see also app.cpp). Without it, -// dummy.obj isn't linked and we get a linker error. -#if defined(__VISUALC__) - char wxDummyChar = 0; -#endif - diff --git a/src/msw/dummydll.cpp b/src/msw/dummydll.cpp deleted file mode 100644 index f1a29bcf1e..0000000000 --- a/src/msw/dummydll.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/* - * File: dummydll.cc - * Purpose: - * Author: Julian Smart - * Created: 1993 - * Updated: - * Copyright: (c) 1993, AIAI, University of Edinburgh - */ - -/* static const char sccsid[] = "@(#)dummydll.cc 1.2 5/9/94"; */ - -/* - * A dummy file to include wx.h. If precompiling wx.h, I - * always start by compiling this and producing the PCH file. - * Then subsequent source files use the PCH file. - */ - -#include "wx/wxprec.h" - -// Foils optimizations in Visual C++ (see also app.cpp). Without it, -// dummy.obj isn't linked and we get a linker error. -#if defined(__VISUALC__) - char wxDummyChar=0; -#endif - diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp deleted file mode 100644 index 1aeb326354..0000000000 --- a/src/msw/filedlg.cpp +++ /dev/null @@ -1,389 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: wxFileDialog -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "filedlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include - #include "wx/defs.h" - #include "wx/utils.h" - #include "wx/msgdlg.h" - #include "wx/dialog.h" - #include "wx/filedlg.h" - #include "wx/intl.h" -#endif - -#include - -#if !defined(__WIN32__) || defined(__SALFORDC__) || defined(__WXWINE__) - #include -#endif - -#include "wx/msw/private.h" - -#include -#include -#include - -#if !USE_SHARED_LIBRARY - IMPLEMENT_CLASS(wxFileDialog, wxDialog) -#endif - -wxString wxFileSelector(const char *title, - const char *defaultDir, - const char *defaultFileName, - const char *defaultExtension, - const char *filter, - int flags, - wxWindow *parent, - int x, int y) -{ - // In the original implementation, defaultExtension is passed to the - // lpstrDefExt member of OPENFILENAME. This extension, if non-NULL, is - // appended to the filename if the user fails to type an extension. The new - // implementation (taken from wxFileSelectorEx) appends the extension - // automatically, by looking at the filter specification. In fact this - // should be better than the native Microsoft implementation because - // Windows only allows *one* default extension, whereas here we do the - // right thing depending on the filter the user has chosen. - - // If there's a default extension specified but no filter, we create a - // suitable filter. - - wxString filter2; - if ( defaultExtension && !filter ) - filter2 = wxString("*.") + defaultExtension; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - - wxFileDialog fileDialog(parent, title, defaultDirString, - defaultFilenameString, filter2, - flags, wxPoint(x, y)); - if( Strlen(defaultExtension) != 0 ) - { - int filterFind = 1, - filterIndex = 0; - - for( unsigned int i = 0; i < filter2.Len(); i++ ) - { - if( filter2.GetChar(i) == '|' ) - { - // save the start index of the new filter - unsigned int is = i++; - filterIndex++; - - // find the end of the filter - for( ; i < filter2.Len(); i++ ) - { - if(filter2[i] == '|') - break; - } - - if( i-is-1 > 0 && is+1 < filter2.Len() ) - { - if( filter2.Mid(is+1,i-is-1).Contains(defaultExtension) ) -// if( filter2.Mid(is+1,i-is-1) == defaultExtension ) - { - filterFind = filterIndex; - break; - } - } - } - } - - fileDialog.SetFilterIndex(filterFind); - } - - if ( fileDialog.ShowModal() == wxID_OK ) - { - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return wxGetEmptyString(); -} - -# if __BORLANDC__ -# include // for MAXPATH etc. ( Borland 3.1 ) -# endif - -# ifndef MAXPATH -# define MAXPATH 400 -# endif - -# ifndef MAXDRIVE -# define MAXDRIVE 3 -# endif - -# ifndef MAXFILE -# define MAXFILE 9 -# endif - -# ifndef MAXEXT -# define MAXEXT 5 -# endif - - -wxString wxFileSelectorEx(const char *title, - const char *defaultDir, - const char *defaultFileName, - int* defaultFilterIndex, - const char *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "", - defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return wxGetEmptyString(); -} - -wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = ""; - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_filterIndex = 1; -} - -int wxFileDialog::ShowModal(void) -{ - HWND hWnd = 0; - if (m_parent) hWnd = (HWND) m_parent->GetHWND(); - - static char fileNameBuffer [ MAXPATH ]; // the file-name - char titleBuffer [ MAXFILE+1+MAXEXT ]; // the file-name, without path - - *fileNameBuffer = '\0'; - *titleBuffer = '\0'; - - long msw_flags = 0; - if ( (m_dialogStyle & wxHIDE_READONLY) || (m_dialogStyle & wxSAVE) ) - msw_flags |= OFN_HIDEREADONLY; - if ( m_dialogStyle & wxFILE_MUST_EXIST ) - msw_flags |= OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; - - OPENFILENAME of; - memset(&of, 0, sizeof(OPENFILENAME)); - - of.lpstrCustomFilter = NULL; // system should not save custom filter - of.nMaxCustFilter = 0L; - - of.nFileOffset = 0; // 0-based pointer to filname in lpstFile - of.nFileExtension = 0; // 0-based pointer to extension in lpstrFile - of.lpstrDefExt = NULL; // no default extension - - of.lStructSize = sizeof(OPENFILENAME); - of.hwndOwner = hWnd; - of.lpstrTitle = (char *)(const char *)m_message; - - - of.lpstrFileTitle = titleBuffer; - of.nMaxFileTitle = MAXFILE + 1 + MAXEXT; // Windows 3.0 and 3.1 - - // Convert forward slashes to backslashes (file selector doesn't like - // forward slashes) - size_t i = 0; - size_t len = m_dir.Length(); - for (i = 0; i < len; i++) - if (m_dir[i] == '/') - m_dir[i] = '\\'; - - of.lpstrInitialDir = (const char *) m_dir; - - of.Flags = msw_flags; - - - //=== Like Alejandro Sierra's wildcard modification >>=================== - /* - In wxFileSelector you can put, instead of a single wild_card, - pairs of strings separated by '|'. - The first string is a description, and the - second is the wild card. You can put any number of pairs. - - eg. "description1 (*.ex1)|*.ex1|description2 (*.ex2)|*.ex2" - - If you put a single wild card, it works as before the modification. - */ - //======================================================================= - - wxString theFilter; - if ( Strlen(m_wildCard) == 0 ) - theFilter = wxString("*.*"); - else - theFilter = m_wildCard ; - wxString filterBuffer; - - if ( !strchr( theFilter, '|' ) ) { // only one filter ==> default text - filterBuffer.Printf(_("Files (%s)|%s"), - theFilter.c_str(), theFilter.c_str()); - } - else { // more then one filter - filterBuffer = theFilter; - - } - - filterBuffer += "|"; - // Replace | with \0 - for (i = 0; i < filterBuffer.Len(); i++ ) { - if ( filterBuffer.GetChar(i) == '|' ) { - filterBuffer[i] = '\0'; - } - } - - of.lpstrFilter = (LPSTR)(const char *)filterBuffer; - of.nFilterIndex = m_filterIndex; - - //=== Setting defaultFileName >>========================================= - - strncpy( fileNameBuffer, (const char *)m_fileName, MAXPATH-1 ); - fileNameBuffer[ MAXPATH-1 ] = '\0'; - - of.lpstrFile = fileNameBuffer; // holds returned filename - of.nMaxFile = MAXPATH; - - //== Execute FileDialog >>================================================= - - bool success = (m_dialogStyle & wxSAVE) ? (GetSaveFileName(&of) != 0) - : (GetOpenFileName(&of) != 0); - - if ( success ) - { - const char* extension = NULL; - - //=== Adding the correct extension >>================================= - - m_filterIndex = (int)of.nFilterIndex; - - if ( of.nFileExtension && fileNameBuffer[ of.nFileExtension-1] != '.' ) - { // user has typed an filename - // without an extension: - - int maxFilter = (int)(of.nFilterIndex*2L-1L); - extension = filterBuffer; - - for( int i = 0; i < maxFilter; i++ ) { // get extension - extension = extension + strlen( extension ) +1; - } - - extension = strrchr( extension, '.' ); - if ( extension // != "blabla" - && !strrchr( extension, '*' ) // != "blabla.*" - && !strrchr( extension, '?' ) // != "blabla.?" - && extension[1] // != "blabla." - && extension[1] != ' ' ) // != "blabla. " - { - // now concat extension to the fileName: - m_fileName = wxString(fileNameBuffer) + extension; - - int len = strlen( fileNameBuffer ); - strncpy( fileNameBuffer + len, extension, MAXPATH - len ); - fileNameBuffer[ MAXPATH -1 ] = '\0'; - } - } - - m_path = fileNameBuffer; - m_fileName = wxFileNameFromPath(fileNameBuffer); - - - //=== Simulating the wxOVERWRITE_PROMPT >>============================ - - if ( (m_dialogStyle & wxOVERWRITE_PROMPT) && - ::wxFileExists( fileNameBuffer ) ) - { - wxString messageText; - messageText.Printf(_("Replace file '%s'?"), fileNameBuffer); - - if ( wxMessageBox(messageText, m_message, wxYES_NO ) != wxYES ) - { - success = FALSE; - } - } - - } // END: if ( success ) - - return (success ? wxID_OK : wxID_CANCEL) ; - -} - -// Generic file load/save dialog (for internal use only) -static -wxString wxDefaultFileSelector(bool load, - const char *what, - const char *extension, - const char *default_name, - wxWindow *parent) -{ - wxString prompt; - wxString str = load ? _("Load %s file") : _("Save %s file"); - prompt.Printf(str, what); - - const char *ext = extension; - if (*ext == '.') - ext++; - - wxString wild; - wild.Printf("*.%s", ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -WXDLLEXPORT wxString wxLoadFileSelector(const char *what, - const char *extension, - const char *default_name, - wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - -// Generic file save dialog -WXDLLEXPORT wxString wxSaveFileSelector(const char *what, - const char *extension, - const char *default_name, - wxWindow *parent) -{ - return wxDefaultFileSelector(FALSE, what, extension, default_name, parent); -} - diff --git a/src/msw/font.cpp b/src/msw/font.cpp deleted file mode 100644 index d6c84ee3b6..0000000000 --- a/src/msw/font.cpp +++ /dev/null @@ -1,382 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: wxFont class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/font.h" -#endif - -#include "wx/msw/private.h" -#include - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) - -#if wxUSE_PORTABLE_FONTS_IN_MSW -IMPLEMENT_DYNAMIC_CLASS(wxFontNameDirectory, wxObject) -#endif - -#endif - -wxFontRefData::wxFontRefData(void) -{ - m_style = 0; - m_temporary = FALSE; - m_pointSize = 0; - m_family = 0; - m_fontId = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; - m_hFont = 0; -} - -wxFontRefData::wxFontRefData(const wxFontRefData& data) -{ - m_style = data.m_style; - m_temporary = FALSE; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_fontId = data.m_fontId; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; - m_hFont = 0; -} - -wxFontRefData::~wxFontRefData(void) -{ - if ( m_hFont ) - ::DeleteObject((HFONT) m_hFont); -} - -wxFont::wxFont(void) -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -/* Constructor for a font. Note that the real construction is done - * in wxDC::SetFont, when information is available about scaling etc. - */ -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - Create(pointSize, family, style, weight, underlined, faceName); - - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); - - return TRUE; -} - -wxFont::~wxFont() -{ - if (wxTheFontList) - wxTheFontList->DeleteObject(this); -} - -bool wxFont::RealizeResource(void) -{ - if (M_FONTDATA && !M_FONTDATA->m_hFont) - { - BYTE ff_italic; - int ff_weight = 0; - int ff_family = 0; - wxString ff_face(""); - - switch (M_FONTDATA->m_family) - { - case wxSCRIPT: ff_family = FF_SCRIPT ; - ff_face = "Script" ; - break ; - case wxDECORATIVE: ff_family = FF_DECORATIVE; - break; - case wxROMAN: ff_family = FF_ROMAN; - ff_face = "Times New Roman" ; - break; - case wxTELETYPE: - case wxMODERN: ff_family = FF_MODERN; - ff_face = "Courier New" ; - break; - case wxSWISS: ff_family = FF_SWISS; - ff_face = "Arial"; - break; - case wxDEFAULT: - default: ff_family = FF_SWISS; - ff_face = "Arial" ; - } - - if (M_FONTDATA->m_style == wxITALIC || M_FONTDATA->m_style == wxSLANT) - ff_italic = 1; - else - ff_italic = 0; - - if (M_FONTDATA->m_weight == wxNORMAL) - ff_weight = FW_NORMAL; - else if (M_FONTDATA->m_weight == wxLIGHT) - ff_weight = FW_LIGHT; - else if (M_FONTDATA->m_weight == wxBOLD) - ff_weight = FW_BOLD; - - const char* pzFace = (const char*) ff_face; - if (!M_FONTDATA->m_faceName.IsNull()) - pzFace = (const char*) M_FONTDATA->m_faceName ; - -/* Always calculate fonts using the screen DC (is this the best strategy?) - * There may be confusion if a font is selected into a printer - * DC (say), because the height will be calculated very differently. - // What sort of display is it? - int technology = ::GetDeviceCaps(dc, TECHNOLOGY); - - int nHeight; - - if (technology != DT_RASDISPLAY && technology != DT_RASPRINTER) - { - // Have to get screen DC Caps, because a metafile will return 0. - HDC dc2 = ::GetDC(NULL); - nHeight = M_FONTDATA->m_pointSize*GetDeviceCaps(dc2, LOGPIXELSY)/72; - ::ReleaseDC(NULL, dc2); - } - else - { - nHeight = M_FONTDATA->m_pointSize*GetDeviceCaps(dc, LOGPIXELSY)/72; - } -*/ - // Have to get screen DC Caps, because a metafile will return 0. - HDC dc2 = ::GetDC(NULL); - int ppInch = ::GetDeviceCaps(dc2, LOGPIXELSY); - ::ReleaseDC(NULL, dc2); - - // New behaviour: apparently ppInch varies according to - // Large/Small Fonts setting in Windows. This messes - // up fonts. So, set ppInch to a constant 96 dpi. - ppInch = 96; - -#if wxFONT_SIZE_COMPATIBILITY - // Incorrect, but compatible with old wxWindows behaviour - int nHeight = (M_FONTDATA->m_pointSize*ppInch/72); -#else - // Correct for Windows compatibility - int nHeight = - (M_FONTDATA->m_pointSize*ppInch/72); -#endif - - bool ff_underline = M_FONTDATA->m_underlined; - - M_FONTDATA->m_hFont = (WXHFONT) CreateFont(nHeight, 0, 0, 0,ff_weight,ff_italic,(BYTE)ff_underline, - 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, - PROOF_QUALITY, DEFAULT_PITCH | ff_family, pzFace); -#ifdef WXDEBUG_CREATE - if (m_hFont==NULL) wxError("Cannot create font","Internal Error") ; -#endif - return (M_FONTDATA->m_hFont != (WXHFONT) NULL); - } - return FALSE; -} - -bool wxFont::FreeResource(bool force) -{ - if (M_FONTDATA && M_FONTDATA->m_hFont) - { - ::DeleteObject((HFONT) M_FONTDATA->m_hFont); - M_FONTDATA->m_hFont = 0; - return TRUE; - } - return FALSE; -} - -WXHANDLE wxFont::GetResourceHandle() -{ - if ( !M_FONTDATA ) - return 0; - else - return (WXHANDLE)M_FONTDATA->m_hFont ; -} - -bool wxFont::IsFree() const -{ - return (M_FONTDATA && (M_FONTDATA->m_hFont == 0)); -} - -void wxFont::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; - - RealizeResource(); -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; - - RealizeResource(); -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; - - RealizeResource(); -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; - - RealizeResource(); -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; - - RealizeResource(); -} - -wxString wxFont::GetFamilyString(void) const -{ - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; -} - -wxString wxFont::GetFaceName(void) const -{ - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString(void) const -{ - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; -} - -wxString wxFont::GetWeightString(void) const -{ - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; -} - diff --git a/src/msw/fontdlg.cpp b/src/msw/fontdlg.cpp deleted file mode 100644 index 90886ed197..0000000000 --- a/src/msw/fontdlg.cpp +++ /dev/null @@ -1,281 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.cpp -// Purpose: wxFontDialog class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fontdlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#endif - -#include "wx/fontdlg.h" - -#include - -#if !defined(__WIN32__) || defined(__SALFORDC__) || defined(__WXWINE__) -#include -#endif - -#include "wx/msw/private.h" -#include "wx/cmndata.h" - -#include -#include -#include - -#define wxDIALOG_DEFAULT_X 300 -#define wxDIALOG_DEFAULT_Y 300 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif - -/* - * wxFontDialog - */ - - -wxFontDialog::wxFontDialog(void) -{ - m_dialogParent = NULL; -} - -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} - -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; - - if (data) - m_fontData = *data; - return TRUE; -} - -int wxFontDialog::ShowModal(void) -{ - CHOOSEFONT chooseFontStruct; - LOGFONT logFont; - - DWORD flags = CF_TTONLY | CF_SCREENFONTS | CF_NOSIMULATIONS; - - memset(&chooseFontStruct, 0, sizeof(CHOOSEFONT)); - - chooseFontStruct.lStructSize = sizeof(CHOOSEFONT); - chooseFontStruct.hwndOwner = (HWND) (m_dialogParent ? (HWND) m_dialogParent->GetHWND() : NULL); - chooseFontStruct.lpLogFont = &logFont; - - if (m_fontData.initialFont.Ok()) - { - flags |= CF_INITTOLOGFONTSTRUCT; - wxFillLogFont(&logFont, & m_fontData.initialFont); - } - - chooseFontStruct.iPointSize = 0; - chooseFontStruct.rgbColors = RGB((BYTE)m_fontData.fontColour.Red(), (BYTE)m_fontData.fontColour.Green(), (BYTE)m_fontData.fontColour.Blue()); - - if (!m_fontData.GetAllowSymbols()) - flags |= CF_ANSIONLY; - if (m_fontData.GetEnableEffects()) - flags |= CF_EFFECTS; - if (m_fontData.GetShowHelp()) - flags |= CF_SHOWHELP; - if (!(m_fontData.minSize == 0 && m_fontData.maxSize == 0)) - { - chooseFontStruct.nSizeMin = m_fontData.minSize; - chooseFontStruct.nSizeMax = m_fontData.maxSize; - flags |= CF_LIMITSIZE; - } - - chooseFontStruct.Flags = flags; - chooseFontStruct.nFontType = SCREEN_FONTTYPE; - bool success = (ChooseFont(&(chooseFontStruct)) != 0); - - // Restore values - if (success) - { - m_fontData.fontColour.Set(GetRValue(chooseFontStruct.rgbColors), GetGValue(chooseFontStruct.rgbColors), - GetBValue(chooseFontStruct.rgbColors)); - m_fontData.chosenFont = wxCreateFontFromLogFont(&logFont); - } - - return success ? wxID_OK : wxID_CANCEL; -} - -void wxFillLogFont(LOGFONT *logFont, wxFont *font) -{ - BYTE ff_italic; - int ff_weight = 0; - int ff_family = 0; - wxString ff_face(""); - - switch (font->GetFamily()) - { - case wxSCRIPT: ff_family = FF_SCRIPT ; - ff_face = "Script" ; - break ; - case wxDECORATIVE: ff_family = FF_DECORATIVE; - break; - case wxROMAN: ff_family = FF_ROMAN; - ff_face = "Times New Roman" ; - break; - case wxTELETYPE: - case wxMODERN: ff_family = FF_MODERN; - ff_face = "Courier New" ; - break; - case wxSWISS: ff_family = FF_SWISS; - ff_face = "Arial"; - break; - case wxDEFAULT: - default: ff_family = FF_SWISS; - ff_face = "MS Sans Serif" ; - } - - if (font->GetStyle() == wxITALIC || font->GetStyle() == wxSLANT) - ff_italic = 1; - else - ff_italic = 0; - - if (font->GetWeight() == wxNORMAL) - ff_weight = FW_NORMAL; - else if (font->GetWeight() == wxLIGHT) - ff_weight = FW_LIGHT; - else if (font->GetWeight() == wxBOLD) - ff_weight = FW_BOLD; - - // Have to get screen DC Caps, because a metafile will return 0. - HDC dc2 = ::GetDC(NULL); - int ppInch = ::GetDeviceCaps(dc2, LOGPIXELSY); - ::ReleaseDC(NULL, dc2); - - // New behaviour: apparently ppInch varies according to - // Large/Small Fonts setting in Windows. This messes - // up fonts. So, set ppInch to a constant 96 dpi. - ppInch = 96; - -#if wxFONT_SIZE_COMPATIBILITY - // Incorrect, but compatible with old wxWindows behaviour - int nHeight = (font->GetPointSize()*ppInch/72); -#else - // Correct for Windows compatibility - int nHeight = - (font->GetPointSize()*ppInch/72); -#endif - - bool ff_underline = font->GetUnderlined(); - - ff_face = font->GetFaceName(); - - logFont->lfHeight = nHeight; - logFont->lfWidth = 0; - logFont->lfEscapement = 0; - logFont->lfOrientation = 0; - logFont->lfWeight = ff_weight; - logFont->lfItalic = ff_italic; - logFont->lfUnderline = (BYTE)ff_underline; - logFont->lfStrikeOut = 0; - logFont->lfCharSet = ANSI_CHARSET; - logFont->lfOutPrecision = OUT_DEFAULT_PRECIS; - logFont->lfClipPrecision = CLIP_DEFAULT_PRECIS; - logFont->lfQuality = PROOF_QUALITY; - logFont->lfPitchAndFamily = DEFAULT_PITCH | ff_family; - strcpy(logFont->lfFaceName, ff_face); -} - -wxFont wxCreateFontFromLogFont(LOGFONT *logFont) // , bool createNew) -{ - int fontFamily = wxSWISS; - int fontStyle = wxNORMAL; - int fontWeight = wxNORMAL; - int fontPoints = 10; - bool fontUnderline = FALSE; - char *fontFace = NULL; - -// int lfFamily = logFont->lfPitchAndFamily & 0xF0; - int lfFamily = logFont->lfPitchAndFamily; - if (lfFamily & FIXED_PITCH) - lfFamily -= FIXED_PITCH; - if (lfFamily & VARIABLE_PITCH) - lfFamily -= VARIABLE_PITCH; - - switch (lfFamily) - { - case FF_ROMAN: - fontFamily = wxROMAN; - break; - case FF_SWISS: - fontFamily = wxSWISS; - break; - case FF_SCRIPT: - fontFamily = wxSCRIPT; - break; - case FF_MODERN: - fontFamily = wxMODERN; - break; - case FF_DECORATIVE: - fontFamily = wxDECORATIVE; - break; - default: - fontFamily = wxSWISS; - break; - } - switch (logFont->lfWeight) - { - case FW_LIGHT: - fontWeight = wxLIGHT; - break; - case FW_NORMAL: - fontWeight = wxNORMAL; - break; - case FW_BOLD: - fontWeight = wxBOLD; - break; - default: - fontWeight = wxNORMAL; - break; - } - if (logFont->lfItalic) - fontStyle = wxITALIC; - else - fontStyle = wxNORMAL; - - if (logFont->lfUnderline) - fontUnderline = TRUE; - - if (logFont->lfFaceName) - fontFace = logFont->lfFaceName; - - HDC dc2 = ::GetDC(NULL); - - if ( logFont->lfHeight < 0 ) - logFont->lfHeight = - logFont->lfHeight; - fontPoints = abs(72*logFont->lfHeight/GetDeviceCaps(dc2, LOGPIXELSY)); - ::ReleaseDC(NULL, dc2); - -// if ( createNew ) - return wxFont(fontPoints, fontFamily, fontStyle, fontWeight, fontUnderline, fontFace); -// else -// return wxTheFontList->FindOrCreateFont(fontPoints, fontFamily, fontStyle, fontWeight, fontUnderline, fontFace); -} - - diff --git a/src/msw/frame.cpp b/src/msw/frame.cpp deleted file mode 100644 index 2c459e4c3a..0000000000 --- a/src/msw/frame.cpp +++ /dev/null @@ -1,1056 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: wxFrame -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frame.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/frame.h" - #include "wx/menu.h" - #include "wx/app.h" - #include "wx/utils.h" - #include "wx/dialog.h" - #include "wx/settings.h" - #include "wx/dcclient.h" -#endif // WX_PRECOMP - -#include "wx/msw/private.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" -#include "wx/log.h" - -#if wxUSE_NATIVE_STATUSBAR - #include -#endif - -extern wxWindowList wxModelessWindows; -extern wxList WXDLLEXPORT wxPendingDelete; -extern char wxFrameClassName[]; -extern wxMenu *wxCurrentPopupMenu; - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_ACTIVATE(wxFrame::OnActivate) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) - EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) - EVT_IDLE(wxFrame::OnIdle) - EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) -#endif - -#if wxUSE_NATIVE_STATUSBAR - bool wxFrame::m_useNativeStatusBar = TRUE; -#else - bool wxFrame::m_useNativeStatusBar = FALSE; -#endif - -wxFrame::wxFrame() -{ - m_frameToolBar = NULL ; - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_iconized = FALSE; -} - -bool wxFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ -#if wxUSE_TOOLTIPS - m_hwndToolTip = 0; -#endif - - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - m_frameMenuBar = NULL; - m_frameToolBar = NULL ; - m_frameStatusBar = NULL; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - -// m_icon = NULL; - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_iconized = FALSE; - - // we pass NULL as parent to MSWCreate because frames with parents behave - // very strangely under Win95 shell - // Alteration by JACS: keep normal Windows behaviour (float on top of parent) - // with this style. - if ((m_windowStyle & wxFRAME_FLOAT_ON_PARENT) == 0) - parent = NULL; - - MSWCreate(m_windowId, parent, wxFrameClassName, this, title, - x, y, width, height, style); - - wxModelessWindows.Append(this); - return TRUE; -} - -wxFrame::~wxFrame() -{ - m_isBeingDeleted = TRUE; - wxTopLevelWindows.DeleteObject(this); - - if (m_frameStatusBar) - delete m_frameStatusBar; - if (m_frameMenuBar) - delete m_frameMenuBar; - -/* New behaviour March 1998: check if it's the last top-level window */ -// if (wxTheApp && (this == wxTheApp->GetTopWindow())) - - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - PostQuitMessage(0); - } - } - - wxModelessWindows.DeleteObject(this); - - // For some reason, wxWindows can activate another task altogether - // when a frame is destroyed after a modal dialog has been invoked. - // Try to bring the parent to the top. - if (GetParent() && GetParent()->GetHWND()) - ::BringWindowToTop((HWND) GetParent()->GetHWND()); -} - -// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. -void wxFrame::DoGetClientSize(int *x, int *y) const -{ - RECT rect; - ::GetClientRect(GetHwnd(), &rect); - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - rect.bottom -= statusY; - } - - wxPoint pt(GetClientAreaOrigin()); - rect.bottom -= pt.y; - rect.right -= pt.x; - - *x = rect.right; - *y = rect.bottom; -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxFrame::DoSetClientSize(int width, int height) -{ - HWND hWnd = GetHwnd(); - - RECT rect; - ::GetClientRect(hWnd, &rect); - - RECT rect2; - GetWindowRect(hWnd, &rect2); - - // Find the difference between the entire window (title bar and all) - // and the client area; add this to the new client size to move the - // window - int actual_width = rect2.right - rect2.left - rect.right + width; - int actual_height = rect2.bottom - rect2.top - rect.bottom + height; - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - actual_height += statusY; - } - - wxPoint pt(GetClientAreaOrigin()); - actual_width += pt.y; - actual_height += pt.x; - - POINT point; - point.x = rect2.left; - point.y = rect2.top; - - MoveWindow(hWnd, point.x, point.y, actual_width, actual_height, (BOOL)TRUE); - - wxSizeEvent event(wxSize(width, height), m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -void wxFrame::DoGetSize(int *width, int *height) const -{ - RECT rect; - GetWindowRect(GetHwnd(), &rect); - *width = rect.right - rect.left; - *height = rect.bottom - rect.top; -} - -void wxFrame::DoGetPosition(int *x, int *y) const -{ - RECT rect; - GetWindowRect(GetHwnd(), &rect); - POINT point; - point.x = rect.left; - point.y = rect.top; - - *x = point.x; - *y = point.y; -} - -void wxFrame::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - GetPosition(¤tX, ¤tY); - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - int ww,hh ; - GetSize(&ww,&hh) ; - if (width == -1) w1 = ww ; - if (height==-1) h1 = hh ; - - MoveWindow(GetHwnd(), x1, y1, w1, h1, (BOOL)TRUE); - - wxSizeEvent event(wxSize(width, height), m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -bool wxFrame::Show(bool show) -{ - int cshow; - if (show) - cshow = SW_SHOW; - else - cshow = SW_HIDE; - - if (!show) - { - // Try to highlight the correct window (the parent) - HWND hWndParent = 0; - if (GetParent()) - { - hWndParent = (HWND) GetParent()->GetHWND(); - if (hWndParent) - ::BringWindowToTop(hWndParent); - } - } - - ShowWindow(GetHwnd(), (BOOL)cshow); - if (show) - { - BringWindowToTop(GetHwnd()); - - wxActivateEvent event(wxEVT_ACTIVATE, TRUE, m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - } - return TRUE; -} - -void wxFrame::Iconize(bool iconize) -{ - if (!iconize) - Show(TRUE); - - int cshow; - if (iconize) - cshow = SW_MINIMIZE; - else - cshow = SW_RESTORE; - ShowWindow(GetHwnd(), (BOOL)cshow); - m_iconized = iconize; -} - -// Equivalent to maximize/restore in Windows -void wxFrame::Maximize(bool maximize) -{ - Show(TRUE); - int cshow; - if (maximize) - cshow = SW_MAXIMIZE; - else - cshow = SW_RESTORE; - ShowWindow(GetHwnd(), cshow); - m_iconized = FALSE; -} - -bool wxFrame::IsIconized() const -{ - ((wxFrame *)this)->m_iconized = (::IsIconic(GetHwnd()) != 0); - return m_iconized; -} - -// Is it maximized? -bool wxFrame::IsMaximized() const -{ - return (::IsZoomed(GetHwnd()) != 0) ; -} - -void wxFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; -#if defined(__WIN95__) - if ( m_icon.Ok() ) - SendMessage(GetHwnd(), WM_SETICON, - (WPARAM)TRUE, (LPARAM)(HICON) m_icon.GetHICON()); -#endif -} - -wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - wxStatusBar *statusBar = NULL; - -#if wxUSE_NATIVE_STATUSBAR - if (UsesNativeStatusBar()) - { - statusBar = new wxStatusBar95(this, id, style); - } - else -#endif - { - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(statusBar->GetFont()); - - long x, y; - dc.GetTextExtent("X", &x, &y); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize(-1, -1, 100, height); - } - - statusBar->SetFieldsCount(number); - return statusBar; -} - -wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - // VZ: calling CreateStatusBar twice is an error - why anyone would do it? - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, - "recreating status bar in wxFrame" ); - - m_frameStatusBar = OnCreateStatusBar(number, style, id, - name); - if ( m_frameStatusBar ) - { - PositionStatusBar(); - return m_frameStatusBar; - } - else - return NULL; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[]) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); - PositionStatusBar(); -} - -void wxFrame::PositionStatusBar() -{ - // native status bar positions itself - if (m_frameStatusBar -#if wxUSE_NATIVE_STATUSBAR - && !m_frameStatusBar->IsKindOf(CLASSINFO(wxStatusBar95)) -#endif - ) - { - int w, h; - GetClientSize(&w, &h); - int sw, sh; - m_frameStatusBar->GetSize(&sw, &sh); - - // Since we wish the status bar to be directly under the client area, - // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); - } -} - -void wxFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - wxCHECK_RET( !menu_bar->GetFrame(), "this menubar is already attached" ); - - if (m_frameMenuBar) - delete m_frameMenuBar; - - m_hMenu = menu_bar->Create(); - - if ( !m_hMenu ) - return; - - InternalSetMenuBar(); - - m_frameMenuBar = menu_bar; - menu_bar->Attach(this); -} - -void wxFrame::InternalSetMenuBar() -{ - if ( !::SetMenu(GetHwnd(), (HMENU)m_hMenu) ) - { - wxLogLastError("SetMenu"); - } -} - -// Responds to colour changes, and passes event on to children. -void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - if ( m_frameStatusBar ) - { - wxSysColourChangedEvent event2; - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->GetEventHandler()->ProcessEvent(event2); - } - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -/* - * Frame window - * - */ - -bool wxFrame::MSWCreate(int id, wxWindow *parent, const char *wclass, wxWindow *wx_win, const char *title, - int x, int y, int width, int height, long style) - -{ - m_defaultIcon = (WXHICON) (wxSTD_FRAME_ICON ? wxSTD_FRAME_ICON : wxDEFAULT_FRAME_ICON); - - // If child windows aren't properly drawn initially, WS_CLIPCHILDREN - // could be the culprit. But without it, you can get a lot of flicker. - - DWORD msflags = 0; - if ((style & wxCAPTION) == wxCAPTION) - msflags = WS_OVERLAPPED; - else - msflags = WS_POPUP; - - if (style & wxMINIMIZE_BOX) - msflags |= WS_MINIMIZEBOX; - if (style & wxMAXIMIZE_BOX) - msflags |= WS_MAXIMIZEBOX; - if (style & wxTHICK_FRAME) - msflags |= WS_THICKFRAME; - if (style & wxSYSTEM_MENU) - msflags |= WS_SYSMENU; - if ((style & wxMINIMIZE) || (style & wxICONIZE)) - msflags |= WS_MINIMIZE; - if (style & wxMAXIMIZE) - msflags |= WS_MAXIMIZE; - if (style & wxCAPTION) - msflags |= WS_CAPTION; - if (style & wxCLIP_CHILDREN) - msflags |= WS_CLIPCHILDREN; - - // Keep this in wxFrame because it saves recoding this function - // in wxTinyFrame -#if wxUSE_ITSY_BITSY - if (style & wxTINY_CAPTION_VERT) - msflags |= IBS_VERTCAPTION; - if (style & wxTINY_CAPTION_HORIZ) - msflags |= IBS_HORZCAPTION; -#else - if (style & wxTINY_CAPTION_VERT) - msflags |= WS_CAPTION; - if (style & wxTINY_CAPTION_HORIZ) - msflags |= WS_CAPTION; -#endif - if ((style & wxTHICK_FRAME) == 0) - msflags |= WS_BORDER; - - WXDWORD extendedStyle = MakeExtendedStyle(style); - -#if !defined(__WIN16__) && !defined(__SC__) - if (style & wxFRAME_TOOL_WINDOW) - extendedStyle |= WS_EX_TOOLWINDOW; -#endif - - if (style & wxSTAY_ON_TOP) - extendedStyle |= WS_EX_TOPMOST; - - m_iconized = FALSE; - if ( !wxWindow::MSWCreate(id, parent, wclass, wx_win, title, x, y, width, height, - msflags, NULL, extendedStyle) ) - return FALSE; - - // Seems to be necessary if we use WS_POPUP - // style instead of WS_OVERLAPPED - if (width > -1 && height > -1) - ::PostMessage(GetHwnd(), WM_SIZE, SIZE_RESTORED, MAKELPARAM(width, height)); - - return TRUE; -} - -// Default resizing behaviour - if only ONE subwindow, resize to client -// rectangle size -void wxFrame::OnSize(wxSizeEvent& event) -{ - // if we're using constraints - do use them -#if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) - { - Layout(); - return; - } -#endif - - // do we have _exactly_ one child? - wxWindow *child = NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog)) && - (win != GetStatusBar()) && - (win != GetToolBar()) ) - { - if ( child ) - return; // it's our second subwindow - nothing to do - child = win; - } - } - - if ( child ) { - // we have exactly one child - set it's size to fill the whole frame - int clientW, clientH; - GetClientSize(&clientW, &clientH); - - int x = 0; - int y = 0; - - child->SetSize(x, y, clientW, clientH); - } -} - -// Default activation behaviour - set the focus for the first child -// subwindow found. -void wxFrame::OnActivate(wxActivateEvent& event) -{ - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && - !child->IsKindOf(CLASSINFO(wxDialog))) - { - child->SetFocus(); - return; - } - } -} - -// The default implementation for the close window event. -void wxFrame::OnCloseWindow(wxCloseEvent& event) -{ - Destroy(); -} - -// Destroy the window (delayed, if a managed window) -bool wxFrame::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -// Default menu selection behaviour - display a help string -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ - if (GetStatusBar()) - { - int menuId = event.GetMenuId(); - if ( menuId != -1 ) - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar && menuBar->FindItem(menuId)) - { - // set status text even if the string is empty - this will at - // least remove the string from the item which was previously - // selected - SetStatusText(menuBar->GetHelpString(menuId)); - } - } - } -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -bool wxFrame::ProcessCommand(int id) -{ - wxMenuBar *bar = GetMenuBar() ; - if ( !bar ) - return FALSE; - - wxMenuItem *item = bar->FindItemForId(id); - if ( !item ) - return FALSE; - - if ( item->IsCheckable() ) - { - bar->Check(id, !bar->IsChecked(id)) ; - } - - wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - return GetEventHandler()->ProcessEvent(commandEvent); -} - -// Checks if there is a toolbar, and returns the first free client position -wxPoint wxFrame::GetClientAreaOrigin() const -{ - wxPoint pt(0, 0); - if (GetToolBar()) - { - int w, h; - GetToolBar()->GetSize(& w, & h); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - pt.x += w; - } - else - { - pt.y += h; - } - } - return pt; -} - -void wxFrame::ScreenToClient(int *x, int *y) const -{ - wxWindow::ScreenToClient(x, y); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt(GetClientAreaOrigin()); - *x -= pt.x; - *y -= pt.y; -} - -void wxFrame::ClientToScreen(int *x, int *y) const -{ - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt1(GetClientAreaOrigin()); - *x += pt1.x; - *y += pt1.y; - - wxWindow::ClientToScreen(x, y); -} - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -void wxFrame::PositionToolBar() -{ - RECT rect; - ::GetClientRect(GetHwnd(), &rect); - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - rect.bottom -= statusY; - } - - if (GetToolBar()) - { - int tw, th; - GetToolBar()->GetSize(& tw, & th); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - // Use the 'real' MSW position - GetToolBar()->SetSize(0, 0, tw, rect.bottom, wxSIZE_NO_ADJUSTMENTS); - } - else - { - // Use the 'real' MSW position - GetToolBar()->SetSize(0, 0, rect.right, th, wxSIZE_NO_ADJUSTMENTS); - } - } -} - -// propagate our state change to all child frames: this allows us to emulate X -// Windows behaviour where child frames float independently of the parent one -// on the desktop, but are iconized/restored with it -void wxFrame::IconizeChildFrames(bool bIconize) -{ - for ( wxWindowList::Node *node = GetChildren().GetFirst(); - node; - node = node->GetNext() ) - { - wxWindow *win = node->GetData(); - - if ( win->IsKindOf(CLASSINFO(wxFrame)) ) - { - ((wxFrame *)win)->Iconize(bIconize); - } - } -} - - -// make the window modal (all other windows unresponsive) -void wxFrame::MakeModal(bool modal) -{ - if (modal) { - wxEnableTopLevelWindows(FALSE); - Enable(TRUE); // keep this window enabled - } - else { - wxEnableTopLevelWindows(TRUE); - } -} - - -// =========================================================================== -// message processing -// =========================================================================== - -// --------------------------------------------------------------------------- -// preprocessing -// --------------------------------------------------------------------------- - -bool wxFrame::MSWTranslateMessage(WXMSG* pMsg) -{ - if ( wxWindow::MSWTranslateMessage(pMsg) ) - return TRUE; - - // try the menu bar accels - wxMenuBar *menuBar = GetMenuBar(); - if ( !menuBar ) - return FALSE; - - const wxAcceleratorTable& acceleratorTable = menuBar->GetAccelTable(); - return acceleratorTable.Ok() && - ::TranslateAccelerator(GetHwnd(), - GetTableHaccel(acceleratorTable), - (MSG *)pMsg); -} - -// --------------------------------------------------------------------------- -// our private (non virtual) message handlers -// --------------------------------------------------------------------------- - -bool wxFrame::HandlePaint() -{ - RECT rect; - if ( GetUpdateRect(GetHwnd(), &rect, FALSE) ) - { - if ( m_iconized ) - { - HICON hIcon = m_icon.Ok() ? GetIconHicon(m_icon) - : (HICON)m_defaultIcon; - - // Hold a pointer to the dc so long as the OnPaint() message - // is being processed - PAINTSTRUCT ps; - HDC hdc = ::BeginPaint(GetHwnd(), &ps); - - // Erase background before painting or we get white background - MSWDefWindowProc(WM_ICONERASEBKGND, (WORD)(LONG)ps.hdc, 0L); - - if ( hIcon ) - { - RECT rect; - ::GetClientRect(GetHwnd(), &rect); - - // FIXME: why hardcoded? - static const int icon_width = 32; - static const int icon_height = 32; - - int icon_x = (int)((rect.right - icon_width)/2); - int icon_y = (int)((rect.bottom - icon_height)/2); - - ::DrawIcon(hdc, icon_x, icon_y, hIcon); - } - - ::EndPaint(GetHwnd(), &ps); - - return TRUE; - } - else - { - wxPaintEvent event(m_windowId); - event.m_eventObject = this; - - return GetEventHandler()->ProcessEvent(event); - } - } - else - { - // nothing to paint - processed - return TRUE; - } -} - -bool wxFrame::HandleSize(int x, int y, WXUINT id) -{ - bool processed = FALSE; - - switch ( id ) - { - case SIZENORMAL: - // only do it it if we were iconized before, otherwise resizing the - // parent frame has a curious side effect of bringing it under it's - // children - if ( !m_iconized ) - break; - - // restore all child frames too - IconizeChildFrames(FALSE); - - // fall through - - case SIZEFULLSCREEN: - m_iconized = FALSE; - break; - - case SIZEICONIC: - // iconize all child frames too - IconizeChildFrames(TRUE); - - m_iconized = TRUE; - break; - } - - if ( !m_iconized ) - { - // forward WM_SIZE to status bar control -#if wxUSE_NATIVE_STATUSBAR - if (m_frameStatusBar && m_frameStatusBar->IsKindOf(CLASSINFO(wxStatusBar95))) - { - wxSizeEvent event(wxSize(x, y), m_frameStatusBar->GetId()); - event.SetEventObject( m_frameStatusBar ); - - ((wxStatusBar95 *)m_frameStatusBar)->OnSize(event); - } -#endif // wxUSE_NATIVE_STATUSBAR - - PositionStatusBar(); - PositionToolBar(); - - wxSizeEvent event(wxSize(x, y), m_windowId); - event.SetEventObject( this ); - processed = GetEventHandler()->ProcessEvent(event); - } - - return processed; -} - -bool wxFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control) -{ - if ( control ) - { - // In case it's e.g. a toolbar. - wxWindow *win = wxFindWinFromHandle(control); - if ( win ) - return win->MSWCommand(cmd, id); - } - - // handle here commands from menus and accelerators - if ( cmd == 0 || cmd == 1 ) - { - if ( wxCurrentPopupMenu ) - { - wxMenu *popupMenu = wxCurrentPopupMenu; - wxCurrentPopupMenu = NULL; - - return popupMenu->MSWCommand(cmd, id); - } - - if ( ProcessCommand(id) ) - { - return TRUE; - } - } - - return FALSE; -} - -bool wxFrame::HandleMenuSelect(WXWORD nItem, WXWORD nFlags, WXHMENU hMenu) -{ - int item; - if ( nFlags == 0xFFFF && hMenu == 0 ) - { - // FIXME: what does this do? does it ever happen? - item = -1; - } - else if ((nFlags != MF_SEPARATOR) && (nItem != 0) && (nItem != 65535)) - { - item = nItem; - } - else - { - return FALSE; - } - - wxMenuEvent event(wxEVT_MENU_HIGHLIGHT, item); - event.SetEventObject( this ); - - return GetEventHandler()->ProcessEvent(event); -} - -// --------------------------------------------------------------------------- -// the window proc for wxFrame -// --------------------------------------------------------------------------- - -long wxFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - long rc = 0; - bool processed = FALSE; - - switch ( message ) - { - case WM_CLOSE: - // if we can't close, tell the system that we processed the - // message - otherwise it would close us - processed = !Close(); - break; - - case WM_COMMAND: - { - WORD id, cmd; - WXHWND hwnd; - UnpackCommand((WXWPARAM)wParam, (WXLPARAM)lParam, - &id, &hwnd, &cmd); - - processed = HandleCommand(id, cmd, (WXHWND)hwnd); - } - break; - - case WM_MENUSELECT: - { - WXWORD item, flags; - WXHMENU hmenu; - UnpackMenuSelect(wParam, lParam, &item, &flags, &hmenu); - - processed = HandleMenuSelect(item, flags, hmenu); - } - break; - - case WM_PAINT: - processed = HandlePaint(); - break; - - case WM_QUERYDRAGICON: - { - HICON hIcon = m_icon.Ok() ? GetIconHicon(m_icon) - : (HICON)(m_defaultIcon); - rc = (long)hIcon; - processed = rc != 0; - } - break; - - case WM_SIZE: - processed = HandleSize(LOWORD(lParam), HIWORD(lParam), wParam); - break; - } - - if ( !processed ) - rc = wxWindow::MSWWindowProc(message, wParam, lParam); - - return rc; -} diff --git a/src/msw/gauge95.cpp b/src/msw/gauge95.cpp deleted file mode 100644 index e5c09362e2..0000000000 --- a/src/msw/gauge95.cpp +++ /dev/null @@ -1,205 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge95.cpp -// Purpose: wxGauge95 class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge95.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#if wxUSE_GAUGE && defined(__WIN95__) - -#include "wx/msw/gauge95.h" -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGauge95, wxControl) -#endif - -bool wxGauge95::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - m_rangeMax = range; - m_gaugePos = 0; - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msFlags = WS_CHILD | WS_VISIBLE | WS_TABSTOP; - -#ifndef PBS_VERTICAL -#define PBS_VERTICAL 0x04 -#endif - - if (m_windowStyle & wxGA_VERTICAL) - msFlags |= PBS_VERTICAL; - -#ifndef PBS_SMOOTH -#define PBS_SMOOTH 0x01 -#endif - - if (m_windowStyle & wxGA_SMOOTH) - msFlags |= PBS_SMOOTH; - - HWND wx_button = - CreateWindowEx(MakeExtendedStyle(m_windowStyle), PROGRESS_CLASS, NULL, msFlags, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - m_hWnd = (WXHWND)wx_button; - - // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND) wx_button); - - SendMessage((HWND) GetHWND(), PBM_SETRANGE, 0, MAKELPARAM(0, range)); - - SetFont(parent->GetFont()); - - if (width == -1) - width = 50; - if (height == -1) - height = 28; - SetSize(x, y, width, height); - - ShowWindow((HWND) GetHWND(), SW_SHOW); - - return TRUE; -} - -void wxGauge95::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - - // Deal with default size (using -1 values) - if (w1<=0) - w1 = DEFAULT_ITEM_WIDTH; - - if (h1<=0) - h1 = DEFAULT_ITEM_HEIGHT; - - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); -} - -void wxGauge95::SetShadowWidth(int w) -{ -} - -void wxGauge95::SetBezelFace(int w) -{ -} - -void wxGauge95::SetRange(int r) -{ - m_rangeMax = r; - - SendMessage((HWND) GetHWND(), PBM_SETRANGE, 0, MAKELPARAM(0, r)); -} - -void wxGauge95::SetValue(int pos) -{ - m_gaugePos = pos; - - SendMessage((HWND) GetHWND(), PBM_SETPOS, pos, 0); -} - -int wxGauge95::GetShadowWidth(void) const -{ - return 0; -} - -int wxGauge95::GetBezelFace(void) const -{ - return 0; -} - -int wxGauge95::GetRange(void) const -{ - return m_rangeMax; -} - -int wxGauge95::GetValue(void) const -{ - return m_gaugePos; -} - -bool wxGauge95::SetForegroundColour(const wxColour& col) -{ - if ( !wxControl::SetForegroundColour(col) ) - return FALSE; - - m_foregroundColour = col ; - - return TRUE; -} - -bool wxGauge95::SetBackgroundColour(const wxColour& col) -{ - if ( !wxControl::SetBackgroundColour(col) ) - return FALSE; - - m_backgroundColour = col ; - - return TRUE; -} - -#endif // wxUSE_GAUGE diff --git a/src/msw/gaugemsw.cpp b/src/msw/gaugemsw.cpp deleted file mode 100644 index 97fc9b7cfb..0000000000 --- a/src/msw/gaugemsw.cpp +++ /dev/null @@ -1,1183 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gaugemsw.cpp -// Purpose: wxGaugeMSW class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/utils.h" -#endif - -#if wxUSE_GAUGE - -#include "wx/msw/gaugemsw.h" -#include "wx/msw/private.h" - -/* gas gauge graph control messages--class "zYzGauge" */ -#define ZYZG_SETRANGE (WM_USER + 0) -#define ZYZG_GETRANGE (WM_USER + 1) -#define ZYZG_SETPOSITION (WM_USER + 2) -#define ZYZG_GETPOSITION (WM_USER + 3) -#define ZYZG_SETORIENTATION (WM_USER + 4) -#define ZYZG_GETORIENTATION (WM_USER + 5) -#define ZYZG_SETFGCOLOR (WM_USER + 6) -#define ZYZG_GETFGCOLOR (WM_USER + 7) -#define ZYZG_SETBKCOLOR (WM_USER + 8) -#define ZYZG_GETBKCOLOR (WM_USER + 9) -#define ZYZG_SETWIDTH3D (WM_USER + 10) -#define ZYZG_GETWIDTH3D (WM_USER + 11) -#define ZYZG_SETBEZELFACE (WM_USER + 12) -#define ZYZG_GETBEZELFACE (WM_USER + 13) -#define ZYZG_SETDELTAPOS (WM_USER + 14) - - -/* orientations for ZYZG_WW_ORIENTATION */ -#define ZYZG_ORIENT_LEFTTORIGHT 0 -#define ZYZG_ORIENT_RIGHTTOLEFT 1 -#define ZYZG_ORIENT_BOTTOMTOTOP 2 -#define ZYZG_ORIENT_TOPTOBOTTOM 3 - -/* gauge styles */ -#define ZYZGS_3D 0x8000L /* control will be 3D */ - -/* public function prototypes */ -BOOL FAR PASCAL gaugeInit(HINSTANCE hInstance); - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGaugeMSW, wxControl) -#endif - -bool wxGaugeMSW::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - static bool wxGaugeMSWInitialised = FALSE; - - if ( !wxGaugeMSWInitialised ) - { - if (!gaugeInit((HINSTANCE) wxGetInstance())) - wxFatalError("Cannot initalize Gauge library"); - wxGaugeMSWInitialised = TRUE; - } - - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - m_rangeMax = range; - m_gaugePos = 0; - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msFlags = WS_CHILD | WS_VISIBLE | WS_TABSTOP; - msFlags |= ZYZGS_3D; - - HWND wx_button = - CreateWindowEx(MakeExtendedStyle(m_windowStyle), "zYzGauge", NULL, msFlags, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - m_hWnd = (WXHWND)wx_button; - - // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND)wx_button); - - int wOrient = 0; - - if (m_windowStyle & wxGA_HORIZONTAL) - wOrient = ZYZG_ORIENT_LEFTTORIGHT; - else - wOrient = ZYZG_ORIENT_BOTTOMTOTOP; - - SendMessage(wx_button, ZYZG_SETORIENTATION, wOrient, 0); - SendMessage(wx_button, ZYZG_SETRANGE, range, 0); - - SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - - SetFont(parent->GetFont()); - - if (width == -1) - width = 50; - if (height == -1) - height = 50; - SetSize(x, y, width, height); - - ShowWindow((HWND) GetHWND(), SW_SHOW); - - return TRUE; -} - -void wxGaugeMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - - // Deal with default size (using -1 values) - if (w1<=0) - w1 = DEFAULT_ITEM_WIDTH; - - if (h1<=0) - h1 = DEFAULT_ITEM_HEIGHT; - - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); -} - -void wxGaugeMSW::SetShadowWidth(int w) -{ - SendMessage((HWND) GetHWND(), ZYZG_SETWIDTH3D, w, 0); -} - -void wxGaugeMSW::SetBezelFace(int w) -{ - SendMessage((HWND) GetHWND(), ZYZG_SETBEZELFACE, w, 0); -} - -void wxGaugeMSW::SetRange(int r) -{ - m_rangeMax = r; - - SendMessage((HWND) GetHWND(), ZYZG_SETRANGE, r, 0); -} - -void wxGaugeMSW::SetValue(int pos) -{ - m_gaugePos = pos; - - SendMessage((HWND) GetHWND(), ZYZG_SETPOSITION, pos, 0); -} - -int wxGaugeMSW::GetShadowWidth(void) const -{ - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETWIDTH3D, 0, 0); -} - -int wxGaugeMSW::GetBezelFace(void) const -{ - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETBEZELFACE, 0, 0); -} - -int wxGaugeMSW::GetRange(void) const -{ - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETRANGE, 0, 0); -} - -int wxGaugeMSW::GetValue(void) const -{ - return (int) SendMessage((HWND) GetHWND(), ZYZG_GETPOSITION, 0, 0); -} - -bool wxGaugeMSW::SetForegroundColour(const wxColour& col) -{ - if ( !wxControl::SetForegroundColour(col) ) - return FALSE; - - SendMessage((HWND) GetHWND(), ZYZG_SETFGCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); - - return TRUE; -} - -bool wxGaugeMSW::SetBackgroundColour(const wxColour& col) -{ - if ( !wxControl::SetBackgroundColour(col) ) - return FALSE; - - SendMessage((HWND) GetHWND(), ZYZG_SETBKCOLOR, 0, RGB(col.Red(), col.Green(), col.Blue())); - - return TRUE; -} - - -/** zyz3d.c - * - * DESCRIPTION: - * This module contains functions for creating nifty 3D borders - * around controls like zYzGauge. - * - * HISTORY: - * 3/14/91 cjp put in this comment - * 6/19/92 cjp touched it a bit - * - ** cjp */ -// COPYRIGHT: -// -// (C) Copyright Microsoft Corp. 1992. All rights reserved. -// -// You have a royalty-free right to use, modify, reproduce and -// distribute the Sample Files (and/or any modified version) in -// any way you find useful, provided that you agree that -// Microsoft has no warranty obligations or liability for any -// Sample Application Files which are modified. -// - - -/* get the includes we need */ -#include - -/* misc. control flag defines */ -#define DRAW3D_IN 0x0001 -#define DRAW3D_OUT 0x0002 - -#define DRAW3D_TOPLINE 0x0004 -#define DRAW3D_BOTTOMLINE 0x0008 -#define DRAW3D_LEFTLINE 0x0010 -#define DRAW3D_RIGHTLINE 0x0020 - - -/* public function prototypes */ -void FAR PASCAL Draw3DFaceFrame(HDC, LPRECT, WORD); -void FAR PASCAL Draw3DRect(HDC, LPRECT, WORD, WORD); -void FAR PASCAL Draw3DLine(HDC, WORD, WORD, WORD, WORD, WORD); - - -/** void FAR PASCAL Draw3DFaceFrame(HDC hdc, LPRECT rc, WORD wWidth) - * - * DESCRIPTION: - * This function draws a flat frame with the current button-face - * color. - * - * ARGUMENTS: - * HDC hdc : The DC to draw into. - * - * LPRECT rc : The containing rect for the new frame. - * - * WORD wWidth : The width of the frame to draw. - * - * RETURN (void FAR PASCAL): - * The frame will have been drawn into the DC. - * - * NOTES: - * - ** cjp */ - -void FAR PASCAL Draw3DFaceFrame(HDC hdc, LPRECT rc, WORD wWidth) -{ - RECT rc1; - DWORD rgbOld; - - /* don't go through a bunch of work if we don't have to */ - if (!wWidth) - return; - - /* set up color to be button-face color--so it may not be gray */ - rgbOld = SetBkColor(hdc, GetSysColor(COLOR_BTNFACE)); - - /* perform CopyRect w/o bloody windows style overhead */ - rc1 = *rc; - - /* top */ - rc1.top = rc->top; - rc1.left = rc->left; - rc1.bottom = rc->top + wWidth; - rc1.right = rc->right; - - /* blast it out */ - ExtTextOut(hdc, rc1.left, rc1.top, ETO_OPAQUE, &rc1, NULL, 0, NULL); - - /* right */ - rc1.left = rc->right - wWidth; - rc1.bottom = rc->bottom; - - /* blast this part now */ - ExtTextOut(hdc, rc1.left, rc1.top, ETO_OPAQUE, &rc1, NULL, 0, NULL); - - /* left */ - rc1.left = rc->left; - rc1.right = rc->left + wWidth; - - /* and another part */ - ExtTextOut(hdc, rc1.left, rc1.top, ETO_OPAQUE, &rc1, NULL, 0, NULL); - - /* bottom */ - rc1.right = rc->right; - rc1.top = rc->bottom - wWidth; - - /* finish it off */ - ExtTextOut(hdc, rc1.left, rc1.top, ETO_OPAQUE, &rc1, NULL, 0, NULL); - - /* restore the old bk color */ - SetBkColor(hdc, rgbOld); -} /* Draw3DFaceFrame() */ - - -/** void FAR PASCAL Draw3DRect(HDC, LPRECT, WORD, WORD) - * - * DESCRIPTION: - * Draws a 3D rectangle that is shaded. wFlags can be used to - * control how the rectangle looks. - * - * ARGUMENTS: - * HDC hdc : Handle to the device context that will be - * used to display the rectangle. - * - * RECT rect : A rectangle describing the dimensions of - * the rectangle in device coordinates. - * - * WORD wShadowWidth : Width of the shadow in device coordinates. - * - * WORD wFlags : The following flags may be passed to describe - * the style of the rectangle: - * - * DRAW3D_IN : The shadow is drawn such that - * the box appears to be sunk in to the screen. - * This is default if 0 is passed. - * - * DRAW3D_OUT : The shadow is drawn such that - * the box appears to be sticking out of the - * screen. - * - * RETURN (void FAR PASCAL): - * The 3D looking rectangle will have been drawn into the DC. - * - * NOTES: - * - ** cjp */ - -void FAR PASCAL Draw3DRect(HDC hdc, LPRECT lpRect, - WORD wShadowWidth, WORD wFlags) -{ - /* sanity check--don't work if you don't have to! */ - if (!wShadowWidth || !RectVisible(hdc, lpRect)) - return; - - /* draw the top line */ - Draw3DLine(hdc, lpRect->left, lpRect->top, - lpRect->right - lpRect->left, - wShadowWidth, DRAW3D_TOPLINE | wFlags); - - /* right line */ - Draw3DLine(hdc, lpRect->right, lpRect->top, - lpRect->bottom - lpRect->top, - wShadowWidth, DRAW3D_RIGHTLINE | wFlags); - - /* bottom line */ - Draw3DLine(hdc, lpRect->left, lpRect->bottom, - lpRect->right - lpRect->left, - wShadowWidth, DRAW3D_BOTTOMLINE | wFlags); - - /* left line */ - Draw3DLine(hdc, lpRect->left, lpRect->top, - lpRect->bottom - lpRect->top, - wShadowWidth, DRAW3D_LEFTLINE | wFlags); -} /* Draw3DRect() */ - - -/** void FAR PASCAL Draw3DLine(HDC hdc, WORD x, WORD y, WORD nLen, - * - * DESCRIPTION: - * Draws a 3D line that can be used to make a 3D box. - * - * ARGUMENTS: - * HDC hdc : Handle to the device context that will be - * used to display the 3D line. - * - * WORD x, y : Coordinates of the beginning of the line. - * These coordinates are in device units and - * represent the _outside_ most point. Horiz- - * ontal lines are drawn from left to right and - * vertical lines are drawn from top to bottom. - * - * WORD wShadowWidth : Width of the shadow in device coordinates. - * - * WORD wFlags : The following flags may be passed to - * describe the style of the 3D line: - * - * DRAW3D_IN : The shadow is drawn such that - * the box appears to be sunk in to the screen. - * This is default if 0 is passed. - * - * DRAW3D_OUT : The shadow is drawn such that - * the box appears to be sticking out of the - * screen. - * - * DRAW3D_TOPLINE, _BOTTOMLINE, _LEFTLINE, and - * _RIGHTLINE : Specifies that a "top", - * "Bottom", "Left", or"Right" line is to be - * drawn. - * - * RETURN (void FAR PASCAL): - * The line will have been drawn into the DC. - * - * NOTES: - * - ** cjp */ - -void FAR PASCAL Draw3DLine(HDC hdc, WORD x, WORD y, WORD nLen, - WORD wShadowWidth, WORD wFlags) -{ - HBRUSH hOldBrush; - HPEN hOldPen; - BOOL fDark; - POINT Point[ 4 ]; /* define a polgon with 4 points */ - - /* if width is zero, don't do nothin'! */ - if (!wShadowWidth) - return; - - /* define shape of polygon--origin is always the same */ - Point[0].x = x; - Point[0].y = y; - - /* To do this we'll simply draw a polygon with four sides, using - * the appropriate brush. I dare you to ask me why this isn't a - * switch/case! - */ - if (wFlags & DRAW3D_TOPLINE) - { - /* across to right */ - Point[1].x = x + nLen - (wShadowWidth == 1 ? 1 : 0); - Point[1].y = y; - - /* down/left */ - Point[2].x = x + nLen - wShadowWidth; - Point[2].y = y + wShadowWidth; - - /* accross to left */ - Point[3].x = x + wShadowWidth; - Point[3].y = y + wShadowWidth; - - /* select 'dark' brush if 'in'--'light' for 'out' */ - fDark = (wFlags & DRAW3D_IN) ? TRUE : FALSE; - } - - /* possibly the bottom? */ - else if (wFlags & DRAW3D_BOTTOMLINE) - { - /* across to right */ - Point[1].x = x + nLen; - Point[1].y = y; - - /* up/left */ - Point[2].x = x + nLen - wShadowWidth; - Point[2].y = y - wShadowWidth; - - /* accross to left */ - Point[3].x = x + wShadowWidth; - Point[3].y = y - wShadowWidth; - - /* select 'light' brush if 'in' */ - fDark = (wFlags & DRAW3D_IN) ? FALSE : TRUE; - } - - /* ok, it's gotta be left? */ - else if (wFlags & DRAW3D_LEFTLINE) - { - /* down */ - Point[1].x = x; - Point[1].y = y + nLen - (wShadowWidth == 1 ? 1 : 0); - - /* up/right */ - Point[2].x = x + wShadowWidth; - Point[2].y = y + nLen - wShadowWidth; - - /* down */ - Point[3].x = x + wShadowWidth; - Point[3].y = y + wShadowWidth; - - /* select 'dark' brush if 'in'--'light' for 'out' */ - fDark = (wFlags & DRAW3D_IN) ? TRUE : FALSE; - } - - /* well maybe it's for the right side? */ - else if (wFlags & DRAW3D_RIGHTLINE) - { - /* down */ - Point[1].x = x; - Point[1].y = y + nLen; - - /* up/left */ - Point[2].x = x - wShadowWidth; - Point[2].y = y + nLen - wShadowWidth; - - /* up */ - Point[3].x = x - wShadowWidth; - Point[3].y = y + wShadowWidth; - - /* select 'light' brush if 'in' */ - fDark = (wFlags & DRAW3D_IN) ? FALSE : TRUE; - } - - /* bad drugs? */ - else return; - - /* select NULL_PEN for no borders */ - hOldPen = (HPEN) SelectObject(hdc, GetStockObject(NULL_PEN)); - - /* select the appropriate color for the fill */ - if (fDark) - hOldBrush = (HBRUSH) SelectObject(hdc, GetStockObject(GRAY_BRUSH)); - else - hOldBrush = (HBRUSH) SelectObject(hdc, GetStockObject(WHITE_BRUSH)); - - /* finally, draw the dern thing */ - Polygon(hdc, (LPPOINT)&Point, 4); - - /* restore what we killed */ - SelectObject(hdc, hOldBrush); - SelectObject(hdc, hOldPen); -} /* Draw3DLine() */ - -/** EOF: zyz3d.c **/ - -/** zyzgauge.c - * - * DESCRIPTION: - * Yet another 'Gas Gauge Custom Control.' This control gives you - * a 'progress bar' class (named zYzGauge) for use in your applications. - * You can set the range, position, font, color, orientation, and 3d - * effect of the gauge by sending messages to the control. - * - * Before you can use this control, you MUST first export the window - * procedure for the control (or define it with the _export keyword): - * - * EXPORTS gaugeWndProc - * - * You then need initialize the class before you use it: - * - * if (!gaugeInit(hInstance)) - * die a horrible death - * else - * you are good to go - * - * The colors used by the control default to black and white if you - * are running on a mono-display. They default to blue and white - * if you are on a color display. You enable the 3D effect by setting - * the ZYZGS_3D style flag in the styles field of the control (like - * any other control). - * - * To select your own colors, you can send the ZYZG_SETFGCOLOR and - * ZYZG_SETBKCOLOR messages to set the foreground (percent done) and - * background (percent not done) colors. The lParam is the RGB() - * value--wParam is ignored. - * - * In all of the following ZYZG_??? messages, the arguments are - * WORDS. If you are setting parameters, the value is sent as - * the wParam (lParam is ignored). If you are getting parameters, - * the value is returned as a LONG and should be cast to a *signed* - * integer. - * - * To set the depth of the 3D effect (if enabled), you can send the - * ZYZG_SETBEZELFACE and ZYZG_SETWIDTH3D messages. The bezel face - * is the flat top on the 3D border--its color will be that of the - * button-face. The 3D width is the width of the bezel itself; inside - * and outside. The light color is white, the dark color is gray. - * Both widths *can* be zero--both default to 2 which looks to me. - * - * The range of the control can be set by sending the ZYZG_SETRANGE - * message to the control. It can be any integer from 1 to 32767. - * What this specifies is the number of pieces that create a whole. - * The default is 100. You can get the current range setting by - * sending the ZYZG_GETRANGE message to the control. - * - * The position (number of pieces out of the whole have been used) is - * set with the ZYZG_SETPOSITION message. It can be any integer from - * 0 to the current range setting of the control--it will be clipped - * if the position is out of bounds. The default position is 0. You - * can get the current position at any time with the ZYZG_GETPOSITION - * message. - * - * You can also set the range using a delta from the current range. - * This is done by sending the ZYZG_SETDELTAPOS message with wParam - * set to a _signed_ integer value within the range of the control. - * - * The font used for the percentage text can be set using the standard - * WM_SETFONT message. You can get the current font at any time with - * the WM_GETFONT message. - * - * The orientation can be left to right, right to left, bottom to top, - * or top to bottom. Whatever suits your needs. You set this by - * sending the ZYZG_ORIENTATION message to the control with one of - * the following values (default is ZYZG_ORIENT_LEFTTORIGHT): - * - * ZYZG_ORIENT_LEFTTORIGHT (0) - * ZYZG_ORIENT_RIGHTTOLEFT (1) - * ZYZG_ORIENT_BOTTOMTOTOP (2) - * ZYZG_ORIENT_TOPTOBOTTOM (3) - * - * HISTORY: - * 3/12/91 cjp put in this comment - * 6/19/92 cjp touched it a bit - * - ** cjp */ -// COPYRIGHT: -// -// (C) Copyright Microsoft Corp. 1992. All rights reserved. -// -// You have a royalty-free right to use, modify, reproduce and -// distribute the Sample Files (and/or any modified version) in -// any way you find useful, provided that you agree that -// Microsoft has no warranty obligations or liability for any -// Sample Application Files which are modified. -// - - -/* get the includes we need */ -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) -#include -#endif -#include -#include -#include -// #include "zyz3d.h" -// #include "zyzgauge.h" - - -/* static global variables */ -static char gszzYzGaugeClass[] = "zYzGauge"; - - -/* window word position definitions */ -#define ZYZG_WW_PZYZGAUGE 0 -/* #define ZYZG_WW_EXTRABYTES 2 */ -#define ZYZG_WW_EXTRABYTES 4 - - -/* control block structure typedef */ -typedef struct tZYZGAUGE -{ - WORD wRange; - WORD wPosition; - WORD wOrientation; - WORD wWidth3D; - WORD wWidthBezelFace; - HFONT hFont; - DWORD rgbTextColor; - DWORD rgbBkColor; - -} ZYZGAUGE, *PZYZGAUGE, FAR *LPZYZGAUGE; - - -/* some default values for the control */ -#define ZYZG_DEF_RANGE 100 -#define ZYZG_DEF_POSITION 0 -#define ZYZG_DEF_ORIENTATION ZYZG_ORIENT_LEFTTORIGHT -#define ZYZG_DEF_WIDTH3D 2 -#define ZYZG_DEF_BEZELFACE 2 - - - -/* the default settings for drawing colors--display dependent */ -static DWORD rgbDefTextColor; -static DWORD rgbDefBkColor; -static BOOL fSupport3D; - -#if !defined(APIENTRY) // NT defines APIENTRY, 3.x not -#define APIENTRY FAR PASCAL -#endif - -#ifdef __WIN32__ -#define _EXPORT /**/ -#else -#define _EXPORT _export -typedef signed short int SHORT ; -#endif - -/* internal function prototypes */ -static void PASCAL gaugePaint(HWND, HDC); -/* LRESULT FAR PASCAL */ -LRESULT APIENTRY _EXPORT gaugeWndProc(HWND, UINT, WPARAM, LPARAM); - - - -/** BOOL FAR PASCAL gaugeInit(HINSTANCE hInstance) - * - * DESCRIPTION: - * Registers the window class for the zYzGauge control. Performs - * other initialization for the zYzGauge text control. This must - * be done before the zYzGauge control is used--or it will fail - * and your dialog box will not open! - * - * ARGUMENTS: - * HINSTANCE hInstance : Instance handle to register class with. - * - * RETURN (BOOL FAR): - * The return value is TRUE if the zYzGauge class was successfully - * registered. It is FALSE if the initialization fails. - * - * NOTES: - * - ** cjp */ - -//#pragma alloc_text(init, gaugeInit) - -BOOL FAR PASCAL gaugeInit(HINSTANCE hInstance) -{ - static BOOL fRegistered = FALSE; - WNDCLASS wc; - HDC hdc; - - /* assume already registered if not first instance */ - if (fRegistered) - return (TRUE); - - /* fill in the class structure for the zyzgauge control */ - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hIcon = NULL; - wc.lpszMenuName = NULL; - wc.lpszClassName = gszzYzGaugeClass; - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wc.hInstance = hInstance; - -#ifdef ZYZGAUGE_DLL - wc.style = CS_GLOBALCLASS | CS_HREDRAW | CS_VREDRAW; -#else - wc.style = CS_HREDRAW | CS_VREDRAW; -#endif - - wc.lpfnWndProc = gaugeWndProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = ZYZG_WW_EXTRABYTES; - - /* attempt to register it--return FALSE if fail */ - if (!RegisterClass(&wc)) - return (FALSE); - - /* Get a DC to determine whether device is mono or not, and set - * default foreground/background colors as appropriate. - */ - if ((hdc = CreateIC("DISPLAY", NULL, NULL, 0L))) - { - /* check for mono-display */ - if ((GetDeviceCaps(hdc, BITSPIXEL) == 1) && - (GetDeviceCaps(hdc, PLANES) == 1)) - { - /* using a mono DC--white foreground, black background */ - rgbDefTextColor = RGB(255, 255, 255); - rgbDefBkColor = RGB(0, 0, 0); - } - - /* good! we have color: blue foreground, white background */ - else - { - rgbDefTextColor = RGB(0, 0, 255); - rgbDefBkColor = RGB(255, 255, 255); - } - - /* need at _least_ 8 for two shades of gray (>=VGA) */ - fSupport3D = (GetDeviceCaps(hdc, NUMCOLORS) >= 8) ? TRUE : FALSE; - - /* get rid of the DC (IC) */ - DeleteDC(hdc); - } - - /* uh-oh... can't get DC (IC)... fail */ - else - { - /* unregister the class */ - UnregisterClass(gszzYzGaugeClass, hInstance); - return (FALSE); - } - - /* return success */ - return (fRegistered = TRUE); -} /* gaugeInit() */ - - -/** static void PASCAL gaugePaint(HWND hwnd, HDC hdc) - * - * DESCRIPTION: - * This function is responsible for painting the zYzGauge control. - * - * ARGUMENTS: - * HWND hwnd : The window handle for the gauge. - * - * HDC hdc : The DC for the gauge's window. - * - * RETURN (void): - * The control will have been painted. - * - * NOTES: - * - ** cjp */ - -static void PASCAL gaugePaint(HWND hwnd, HDC hdc) -{ - PZYZGAUGE pgauge; - WORD iRange, iPos; - WORD Offset = 1; - DWORD dwExtent; - RECT rc1, rc2; - HFONT hFont; - char ach[ 6 ]; - WORD dx, dy, wGomerX, wGomerY; -/* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead, - * which needs a SIZE* parameter */ -#if defined(__WIN32__) - SIZE size; -#endif - - /* get pointer to the control's control block */ -// pgauge = (PZYZGAUGE)GetWindowWord(hwnd, ZYZG_WW_PZYZGAUGE); - pgauge = (PZYZGAUGE)GetWindowLong(hwnd, ZYZG_WW_PZYZGAUGE); - - /* set the colors into for the gauge into the control */ - SetTextColor(hdc, pgauge->rgbTextColor); - SetBkColor(hdc, pgauge->rgbBkColor); - - /* draw black rectangle for gauge */ - GetClientRect(hwnd, &rc1); - - /* draw a black border on the _outside_ */ - FrameRect(hdc, &rc1, (HBRUSH) GetStockObject(BLACK_BRUSH)); - - /* we want to draw _just inside_ the black border */ - InflateRect(&rc1, -1, -1); - - /* one line thick so far... */ -// Offset = (WORD) 1; - - /* for 3D stuff, we need to have at least two shades of gray */ - if ((GetWindowLong(hwnd, GWL_STYLE) & ZYZGS_3D) && fSupport3D) - { - Draw3DRect(hdc, &rc1, pgauge->wWidth3D, DRAW3D_OUT); - InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D)); - - Draw3DFaceFrame(hdc, &rc1, pgauge->wWidthBezelFace); - InflateRect(&rc1, ~(pgauge->wWidthBezelFace), ~(pgauge->wWidthBezelFace)); - - Draw3DRect(hdc, &rc1, pgauge->wWidth3D, DRAW3D_IN); - InflateRect(&rc1, ~(pgauge->wWidth3D), ~(pgauge->wWidth3D)); - - /* draw a black border on the _inside_ */ - FrameRect(hdc, &rc1, (HBRUSH) GetStockObject(BLACK_BRUSH)); - - /* we want to draw _just inside_ the black border */ - InflateRect(&rc1, -1, -1); - - /* add all the other pixels into the border width */ - Offset += (2 * pgauge->wWidth3D) + pgauge->wWidthBezelFace + 1; - } - - /* dup--one rc for 'how much filled', one rc for 'how much empty' */ - rc2 = rc1; - - /* get the range--make sure it's a valid range */ - if ((iRange = pgauge->wRange) <= 0) - iRange = 1; - - /* get the position--greater than 100% would be bad */ - if ((iPos = pgauge->wPosition) > iRange) - iPos = iRange; - - /* compute the actual size of the gauge */ - dx = rc1.right - rc1.left; - dy = rc1.bottom - rc1.top; - wGomerX = (WORD)((DWORD)iPos * dx / iRange); - wGomerY = (WORD)((DWORD)iPos * dy / iRange); - - /* get the orientation and munge rects accordingly */ - switch (pgauge->wOrientation) - { - case ZYZG_ORIENT_RIGHTTOLEFT: - rc1.left = rc2.right = rc1.right - wGomerX; - break; - - case ZYZG_ORIENT_BOTTOMTOTOP: - rc1.top = rc2.bottom = rc1.bottom - wGomerY; - break; - - case ZYZG_ORIENT_TOPTOBOTTOM: - rc1.bottom = rc2.top += wGomerY; - break; - - default: - rc1.right = rc2.left += wGomerX; - break; - } /* switch () */ - - /* select the correct font */ - hFont = (HFONT) SelectObject(hdc, pgauge->hFont); - - /* build up a string to blit out--ie the meaning of life: "42%" */ - wsprintf(ach, "%3d%%", (WORD)((DWORD)iPos * 100 / iRange)); -/* Win32s has no GetTextExtent(); let's try GetTextExtentPoint() instead */ -#if defined(__WIN32__) - GetTextExtentPoint(hdc, ach, wGomerX = lstrlen(ach), &size); - dwExtent = size.cx; -#else - dwExtent = GetTextExtent(hdc, ach, wGomerX = lstrlen(ach)); -#endif - - - /* Draw the finished (ie the percent done) side of box. If - * ZYZG_WW_POSITION is 42, (in range of 0 to 100) this ExtTextOut - * draws the meaning of life (42%) bar. - */ - ExtTextOut(hdc, (dx - LOWORD(dwExtent)) / 2 + Offset, - (dy - HIWORD(dwExtent)) / 2 + Offset, - ETO_OPAQUE | ETO_CLIPPED, &rc2, ach, wGomerX, NULL); - - /* Reverse fore and back colors for drawing the undone (ie the non- - * finished) side of the box. - */ - SetBkColor(hdc, pgauge->rgbTextColor); - SetTextColor(hdc, pgauge->rgbBkColor); - - ExtTextOut(hdc, (dx - LOWORD(dwExtent)) / 2 + Offset, - (dy - HIWORD(dwExtent)) / 2 + Offset, - ETO_OPAQUE | ETO_CLIPPED, &rc1, ach, wGomerX, NULL); - - /* unselect the font */ - SelectObject(hdc, hFont); -} /* gaugePaint() */ - - -/** LRESULT FAR PASCAL gaugeWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) - * - * DESCRIPTION: - * This is the control's window procedure. Its purpose is to handle - * special messages for this custom control. - * - * The special control messages for the gauge control are: - * - * ZYZG_SETRANGE : Sets the range of the gauge. In other - * words, the number of parts that make a - * whole. - * - * ZYZG_GETRANGE : Returns the current range of the gauge. - * - * ZYZG_SETORIENTATION : Sets the orientation of the gauge. This - * can be one of the ZYZG_ORIENT_?? msgs. - * - * ZYZG_GETORIENTATION : Gets the current orientation of the - * gauge. - * - * ZYZG_SETPOSITION : Sets the current position of the gauge. - * In other words, how many pieces of the - * whole have been used. - * - * ZYZG_GETPOSITION : Gets the current position of the gauge. - * - * ZYZG_SETDELTAPOS : Sets the position of the gauge +/- the - * specified amount. - * - * ZYZG_SETFGCOLOR : Sets the foreground (percent done) color. - * - * ZYZG_GETFGCOLOR : Gets the foreground (percent done) color. - * - * ZYZG_SETBKCOLOR : Sets the background (percent not done) - * color. - * - * ZYZG_GETBKCOLOR : Gets the background (percent not done) - * color. - * - * WM_SETFONT : Sets the font to use for the percentage - * text of the gauge. - * - * WM_GETFONT : Gets the current font in use by the - * gauge. - * - * NOTES: - * - ** cjp */ - -/* LRESULT FAR PASCAL */ - -LRESULT APIENTRY _EXPORT gaugeWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) -{ - HFONT hFont; - PAINTSTRUCT ps; - PZYZGAUGE pgauge; - RECT rc; - -// pgauge = (PZYZGAUGE)GetWindowWord(hwnd, ZYZG_WW_PZYZGAUGE); - pgauge = (PZYZGAUGE)GetWindowLong(hwnd, ZYZG_WW_PZYZGAUGE); - - /* break to get DefWindowProc() */ - switch (uMsg) - { - case WM_CREATE: - /* need to allocate a control block */ -// pgauge = (PZYZGAUGE)LocalAlloc(LPTR, sizeof(ZYZGAUGE)); - pgauge = (PZYZGAUGE)malloc(sizeof(ZYZGAUGE)); - if (!pgauge) - return (0L); - - /* hang on to this control block */ -// SetWindowWord(hwnd, ZYZG_WW_PZYZGAUGE, (WORD)pgauge); - SetWindowLong(hwnd, ZYZG_WW_PZYZGAUGE, (LONG)pgauge); - - /* fill control block with defaults */ - pgauge->wRange = ZYZG_DEF_RANGE; - pgauge->wPosition = ZYZG_DEF_POSITION; - pgauge->wOrientation = ZYZG_DEF_ORIENTATION; - pgauge->wWidth3D = ZYZG_DEF_WIDTH3D; - pgauge->wWidthBezelFace = ZYZG_DEF_BEZELFACE; - pgauge->rgbTextColor = rgbDefTextColor; - pgauge->rgbBkColor = rgbDefBkColor; - - /* use system font */ - SendMessage(hwnd, WM_SETFONT, (WPARAM)NULL, 0L); - - /* go to DefWindowProc() to finish the job */ - break; - - case WM_DESTROY: - /* get rid of the control's memory */ - if (pgauge) -// LocalFree((HANDLE)pgauge); - free(pgauge); - break; - - case ZYZG_GETPOSITION: - return (pgauge->wPosition); - - case ZYZG_GETRANGE: - return (pgauge->wRange); - - case ZYZG_GETORIENTATION: - return (pgauge->wOrientation); - - case ZYZG_GETWIDTH3D: - return (pgauge->wWidth3D); - - case ZYZG_GETBEZELFACE: - return (pgauge->wWidthBezelFace); - - case ZYZG_GETBKCOLOR: - return (pgauge->rgbTextColor); - - case ZYZG_GETFGCOLOR: - return (pgauge->rgbBkColor); - - case ZYZG_SETBKCOLOR: - pgauge->rgbBkColor = lParam; - return (0L); - - case ZYZG_SETFGCOLOR: - pgauge->rgbTextColor = lParam; - return (0L); - - - case ZYZG_SETPOSITION: - pgauge->wPosition = wParam; - -zyzgForceRepaint: - GetClientRect(hwnd, &rc); - if ((GetWindowLong(hwnd, GWL_STYLE) & ZYZGS_3D) && fSupport3D) - { - wParam = (2 * pgauge->wWidth3D) + - pgauge->wWidthBezelFace + 2; - } - - else - wParam = 1; - - InflateRect(&rc, ~(wParam), ~(wParam)); - InvalidateRect(hwnd, &rc, FALSE); - UpdateWindow(hwnd); - return (0L); - - case ZYZG_SETRANGE: - pgauge->wRange = wParam; - goto zyzgForceRepaint; - - case ZYZG_SETORIENTATION: - pgauge->wOrientation = wParam; - goto zyzgForceRepaint; - - case ZYZG_SETWIDTH3D: - pgauge->wWidth3D = wParam; - -zyzgForceRepaint3D: - InvalidateRect(hwnd, NULL, FALSE); - UpdateWindow(hwnd); - return (0L); - - case ZYZG_SETBEZELFACE: - pgauge->wWidthBezelFace = wParam; - goto zyzgForceRepaint3D; - - case ZYZG_SETDELTAPOS: -/* Watcom doesn't like the following line so removing typecasts */ -/* (int)pgauge->wPosition += (int)wParam; */ - pgauge->wPosition += wParam; - goto zyzgForceRepaint; - - case WM_PAINT: - BeginPaint(hwnd, &ps); - gaugePaint(hwnd, ps.hdc); - EndPaint(hwnd, &ps); - return (0L); - - case WM_GETFONT: - hFont = pgauge->hFont; - - /* if system font, then return NULL handle */ - return (long)((hFont == GetStockObject(SYSTEM_FONT)) ? NULL : hFont); - - case WM_SETFONT: - /* if NULL hFont, use system font */ - if (!(hFont = (HFONT)wParam)) - hFont = (HFONT) GetStockObject(SYSTEM_FONT); - - pgauge->hFont = hFont; - - /* redraw if indicated in message */ - if ((BOOL)lParam) - { - InvalidateRect(hwnd, NULL, TRUE); - UpdateWindow(hwnd); - } - return (0L); - } /* switch () */ - - /* let the dialog mangler take care of this message */ - return (DefWindowProc(hwnd, uMsg, wParam, lParam)); -} /* gaugeWndProc() */ - - -/** EOF: zyzgauge.c **/ - -#endif // wxUSE_GAUGE diff --git a/src/msw/gdiobj.cpp b/src/msw/gdiobj.cpp deleted file mode 100644 index 3a10a3fefe..0000000000 --- a/src/msw/gdiobj.cpp +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: Julian Smart -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#endif - -#include "wx/gdiobj.h" -#include "wx/msw/private.h" -#include "assert.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - -/* -void wxGDIObject::IncrementResourceUsage(void) -{ - if ( !M_GDIDATA ) - return; - -// wxDebugMsg("Object %ld about to be incremented: %d\n", (long)this, m_usageCount); - M_GDIDATA->m_usageCount ++; -}; - -void wxGDIObject::DecrementResourceUsage(void) -{ - if ( !M_GDIDATA ) - return; - - M_GDIDATA->m_usageCount --; - if (wxTheApp) - wxTheApp->SetPendingCleanup(TRUE); -// wxDebugMsg("Object %ld decremented: %d\n", (long)this, M_GDIDATA->m_usageCount); - if (M_GDIDATA->m_usageCount < 0) - { - char buf[80]; - sprintf(buf, "Object %ld usage count is %d\n", (long)this, M_GDIDATA->m_usageCount); - wxDebugMsg(buf); - } -// assert(M_GDIDATA->m_usageCount >= 0); -}; - -*/ - diff --git a/src/msw/helpwin.cpp b/src/msw/helpwin.cpp deleted file mode 100644 index eb74f4960c..0000000000 --- a/src/msw/helpwin.cpp +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpwin.cpp -// Purpose: Help system: WinHelp implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpwin.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#endif - -#include "wx/msw/helpwin.h" - -#if wxUSE_HELP -#include - -#ifdef __WXMSW__ -#include -#endif - -#include - -// MAX path length -#define _MAXPATHLEN 500 - -// MAX length of Help descriptor -#define _MAX_HELP_LEN 500 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWinHelpController, wxHelpControllerBase) -#endif - -wxWinHelpController::wxWinHelpController(void) -{ - m_helpFile = ""; -} - -wxWinHelpController::~wxWinHelpController(void) -{ -} - -bool wxWinHelpController::Initialize(const wxString& filename) -{ - m_helpFile = filename; - return TRUE; -} - -bool wxWinHelpController::LoadFile(const wxString& file) -{ - m_helpFile = file; - return TRUE; -} - -bool wxWinHelpController::DisplayContents(void) -{ - if (m_helpFile == "") return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.')) - str += ".hlp"; - - if (wxTheApp->GetTopWindow()) - { -#if defined(__WIN95__) - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_FINDER, 0L); -#else - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_CONTENTS, 0L); -#endif - return TRUE; - } - return FALSE; -} - -bool wxWinHelpController::DisplaySection(int section) -{ - // Use context number - if (m_helpFile == "") return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.')) - str += ".hlp"; - - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_CONTEXT, (DWORD)section); - return TRUE; - } - return FALSE; -} - -bool wxWinHelpController::DisplayBlock(long block) -{ - // Use context number -- a very rough equivalent to block id! - if (m_helpFile == "") return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.')) - str += ".hlp"; - - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_CONTEXT, (DWORD)block); - return TRUE; - } - return FALSE; -} - -bool wxWinHelpController::KeywordSearch(const wxString& k) -{ - if (m_helpFile == "") return FALSE; - - wxString str = m_helpFile; - size_t len = str.Length(); - if (!(str[(size_t)(len-1)] == 'p' && str[(size_t)(len-2)] == 'l' && str[(size_t)(len-3)] == 'h' && str[(size_t)(len-4)] == '.')) - str += ".hlp"; - - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), (const char*) str, HELP_PARTIALKEY, (DWORD)(const char*) k); - return TRUE; - } - return FALSE; -} - -// Can't close the help window explicitly in WinHelp -bool wxWinHelpController::Quit(void) -{ - if (wxTheApp->GetTopWindow()) - { - WinHelp((HWND) wxTheApp->GetTopWindow()->GetHWND(), 0, HELP_QUIT, 0L); - return TRUE; - } - else - return FALSE; -} - -// Don't get notified of WinHelp quitting -void wxWinHelpController::OnQuit(void) -{ -} - -#endif // wxUSE_HELP diff --git a/src/msw/icon.cpp b/src/msw/icon.cpp deleted file mode 100644 index 36ce690043..0000000000 --- a/src/msw/icon.cpp +++ /dev/null @@ -1,189 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: wxIcon class -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/icon.h" -#endif - -#include "wx/msw/private.h" -#include "assert.h" - -#if wxUSE_RESOURCE_LOADING_IN_MSW -#include "wx/msw/curico.h" -#include "wx/msw/curicop.h" -#endif - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -IMPLEMENT_DYNAMIC_CLASS(wxICOFileHandler, wxBitmapHandler) -IMPLEMENT_DYNAMIC_CLASS(wxICOResourceHandler, wxBitmapHandler) -#endif - -/* - * Icons - */ - - -wxIconRefData::wxIconRefData(void) -{ - m_hIcon = (WXHICON) NULL ; -} - -wxIconRefData::~wxIconRefData(void) -{ - if ( m_hIcon ) - ::DestroyIcon((HICON) m_hIcon); -} - -wxIcon::wxIcon(void) -{ -} - -wxIcon::wxIcon(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height)) -{ -} - -wxIcon::wxIcon(const wxString& icon_file, long flags, - int desiredWidth, int desiredHeight) - -{ - LoadFile(icon_file, flags, desiredWidth, desiredHeight); -} - -wxIcon::~wxIcon(void) -{ -} - -bool wxIcon::FreeResource(bool force) -{ - if (M_ICONDATA && M_ICONDATA->m_hIcon) - { - DestroyIcon((HICON) M_ICONDATA->m_hIcon); - M_ICONDATA->m_hIcon = (WXHICON) NULL; - } - return TRUE; -} - -bool wxIcon::LoadFile(const wxString& filename, long type, - int desiredWidth, int desiredHeight) -{ - UnRef(); - - m_refData = new wxIconRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler ) - return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight); - else - return FALSE; -} - -void wxIcon::SetHICON(WXHICON ico) -{ - if ( !M_ICONDATA ) - m_refData = new wxIconRefData; - - M_ICONDATA->m_hIcon = ico; -} - -bool wxICOFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight) -{ -#if wxUSE_RESOURCE_LOADING_IN_MSW - if ( bitmap->IsKindOf(CLASSINFO(wxIcon)) ) - { - wxIcon *icon = (wxIcon *)bitmap; - wxIconRefData *data = (wxIconRefData *)icon->GetRefData(); - data->m_hIcon = (WXHICON)ReadIconFile((char *)name.c_str(), wxGetInstance(), - &data->m_width, &data->m_height); - - data->m_ok = data->m_hIcon != 0; - return data->m_ok; - } - else - return FALSE; -#else - return FALSE; -#endif -} - -bool wxICOResourceHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight) -{ - if ( bitmap->IsKindOf(CLASSINFO(wxIcon)) ) - { -#if defined(__WIN32__) && !defined(__SC__) - if (desiredWidth > -1 && desiredHeight > -1) - { - M_ICONHANDLERDATA->m_hIcon = (WXHICON) ::LoadImage(wxGetInstance(), name, IMAGE_ICON, desiredWidth, desiredHeight, LR_DEFAULTCOLOR); - } - else -#endif - { - M_ICONHANDLERDATA->m_hIcon = (WXHICON) ::LoadIcon(wxGetInstance(), name); - } - -#ifdef __WIN32__ - // Win32s doesn't have GetIconInfo function... - if (M_ICONHANDLERDATA->m_hIcon && wxGetOsVersion()!=wxWIN32S) - { - ICONINFO info ; - if (::GetIconInfo((HICON) M_ICONHANDLERDATA->m_hIcon, &info)) - { - HBITMAP ms_bitmap = info.hbmMask ; - if (ms_bitmap) - { - BITMAP bm; - ::GetObject(ms_bitmap, sizeof(BITMAP), (LPSTR) &bm); - M_ICONHANDLERDATA->m_width = bm.bmWidth; - M_ICONHANDLERDATA->m_height = bm.bmHeight; - } - if (info.hbmMask) - ::DeleteObject(info.hbmMask) ; - if (info.hbmColor) - ::DeleteObject(info.hbmColor) ; - } - } -#else - M_ICONHANDLERDATA->m_width = 32; - M_ICONHANDLERDATA->m_height = 32; -#endif - // Override the found values with desired values - if (desiredWidth > -1 && desiredHeight > -1) - { - M_ICONHANDLERDATA->m_width = desiredWidth; - M_ICONHANDLERDATA->m_height = desiredHeight; - } - - M_ICONHANDLERDATA->m_ok = (M_ICONHANDLERDATA->m_hIcon != 0); - return M_ICONHANDLERDATA->m_ok; - } - else - return FALSE; -} - diff --git a/src/msw/imaglist.cpp b/src/msw/imaglist.cpp deleted file mode 100644 index a4e2fe629d..0000000000 --- a/src/msw/imaglist.cpp +++ /dev/null @@ -1,232 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.cpp -// Purpose: wxImageList -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "imaglist.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#if defined(__WIN95__) - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/window.h" -#include "wx/icon.h" -#include "wx/dc.h" -#include "wx/string.h" -#endif - -#include "wx/log.h" -#include "wx/intl.h" - -#include "wx/msw/imaglist.h" -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxObject) -#endif - -wxImageList::wxImageList(void) -{ - m_hImageList = 0; -} - -wxImageList::~wxImageList(void) -{ - if ( m_hImageList ) - ImageList_Destroy((HIMAGELIST) m_hImageList); - m_hImageList = 0; -} - - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -// Returns the number of images in the image list. -int wxImageList::GetImageCount(void) const -{ - return ImageList_GetImageCount((HIMAGELIST) m_hImageList); -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Creates an image list -bool wxImageList::Create(int width, int height, bool mask, int initial) -{ - UINT flags = 0; - if ( mask ) - flags |= ILC_MASK; - - // Grow by 1, I guess this is reasonable behaviour most of the time - m_hImageList = (WXHIMAGELIST) ImageList_Create(width, height, flags, initial, 1); - return (m_hImageList != 0); -} - -// Adds a bitmap, and optionally a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -int wxImageList::Add(const wxBitmap& bitmap, const wxBitmap& mask) -{ - HBITMAP hBitmap1 = (HBITMAP) bitmap.GetHBITMAP(); - HBITMAP hBitmap2 = 0; - if ( mask.Ok() ) - hBitmap2 = (HBITMAP) mask.GetHBITMAP(); - - int index = ImageList_Add((HIMAGELIST) GetHIMAGELIST(), hBitmap1, hBitmap2); - if ( index == -1 ) - { - wxLogError(_("Couldn't add an image to the image list.")); - } - - return index; -} - -// Adds a bitmap, using the specified colour to create the mask bitmap -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap'. -int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour) -{ -#ifdef __TWIN32__ - wxFAIL_MSG("ImageList_AddMasked not implemented in TWIN32"); - return -1; -#else - HBITMAP hBitmap1 = (HBITMAP) bitmap.GetHBITMAP(); - COLORREF colorRef = PALETTERGB(maskColour.Red(), maskColour.Green(), maskColour.Blue()); - return ImageList_AddMasked((HIMAGELIST) GetHIMAGELIST(), hBitmap1, colorRef); -#endif -} - -// Adds a bitmap and mask from an icon. -int wxImageList::Add(const wxIcon& icon) -{ - HICON hIcon = (HICON) icon.GetHICON(); - return ImageList_AddIcon((HIMAGELIST) GetHIMAGELIST(), hIcon); -} - -// Replaces a bitmap, optionally passing a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -bool wxImageList::Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask) -{ -#ifdef __TWIN32__ - wxFAIL_MSG("ImageList_Replace not implemented in TWIN32"); - return FALSE; -#else - HBITMAP hBitmap1 = (HBITMAP) bitmap.GetHBITMAP(); - HBITMAP hBitmap2 = 0; - if ( mask.Ok() ) - hBitmap2 = (HBITMAP) mask.GetHBITMAP(); - return (ImageList_Replace((HIMAGELIST) GetHIMAGELIST(), index, hBitmap1, hBitmap2) != 0); -#endif -} - -/* Not supported by Win95 -// Replacing a bitmap, using the specified colour to create the mask bitmap -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap'. -bool wxImageList::Replace(int index, const wxBitmap& bitmap, const wxColour& maskColour) -{ - HBITMAP hBitmap1 = (HBITMAP) bitmap.GetHBITMAP(); - COLORREF colorRef = PALETTERGB(maskColour.Red(), maskColour.Green(), maskColour.Blue()); - return (bool) ImageList_ReplaceMasked((HIMAGELIST) GetHIMAGELIST(), index, hBitmap1, colorRef); -} -*/ - -// Replaces a bitmap and mask from an icon. -bool wxImageList::Replace(int index, const wxIcon& icon) -{ - HICON hIcon = (HICON) icon.GetHICON(); - return (ImageList_ReplaceIcon((HIMAGELIST) GetHIMAGELIST(), index, hIcon) != 0); -} - -// Removes the image at the given index. -bool wxImageList::Remove(int index) -{ -#ifdef __TWIN32__ - wxFAIL_MSG("ImageList_Replace not implemented in TWIN32"); - return FALSE; -#else - return (ImageList_Remove((HIMAGELIST) GetHIMAGELIST(), index) != 0); -#endif -} - -// Remove all images -bool wxImageList::RemoveAll(void) -{ - // TODO: Is this correct? - while ( GetImageCount() > 0 ) - { - Remove(0); - } - return TRUE; -} - -// Draws the given image on a dc at the specified position. -// If 'solidBackground' is TRUE, Draw sets the image list background -// colour to the background colour of the wxDC, to speed up -// drawing by eliminating masked drawing where possible. -bool wxImageList::Draw(int index, wxDC& dc, int x, int y, - int flags, bool solidBackground) -{ -#ifdef __TWIN32__ - wxFAIL_MSG("ImageList_Replace not implemented in TWIN32"); - return FALSE; -#else - HDC hDC = (HDC) dc.GetHDC(); - if ( !hDC ) - return FALSE; - - if ( solidBackground ) - { - wxBrush *brush = & dc.GetBackground(); - if ( brush && brush->Ok()) - { - wxColour col(brush->GetColour()); - ImageList_SetBkColor((HIMAGELIST) GetHIMAGELIST(), - PALETTERGB(col.Red(), col.Green(), col.Blue())); - } - else - ImageList_SetBkColor((HIMAGELIST) GetHIMAGELIST(), - CLR_NONE); - } - else - ImageList_SetBkColor((HIMAGELIST) GetHIMAGELIST(), - CLR_NONE); - - UINT style = 0; - if ( flags & wxIMAGELIST_DRAW_NORMAL ) - style |= ILD_NORMAL; - if ( flags & wxIMAGELIST_DRAW_TRANSPARENT ) - style |= ILD_TRANSPARENT; - if ( flags & wxIMAGELIST_DRAW_SELECTED ) - style |= ILD_SELECTED; - if ( flags & wxIMAGELIST_DRAW_FOCUSED ) - style |= ILD_FOCUS; - - return (ImageList_Draw((HIMAGELIST) GetHIMAGELIST(), index, hDC, - x, y, style) != 0); -#endif -} - -#endif - diff --git a/src/msw/iniconf.cpp b/src/msw/iniconf.cpp deleted file mode 100644 index 22199a3f39..0000000000 --- a/src/msw/iniconf.cpp +++ /dev/null @@ -1,470 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: src/msw/iniconf.cpp -// Purpose: implementation of wxIniConfig class -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.07.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "iniconf.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include - #include - #include - #include - #include -#endif //WX_PRECOMP - -#include -#include -#include - -#include - -// _WINDOWS_ is defined when windows.h is included, -// __WXMSW__ is defined for MS Windows compilation -#if defined(__WXMSW__) && !defined(_WINDOWS_) - #include -#endif //windows.h - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// we replace all path separators with this character -#define PATH_SEP_REPLACE '_' - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// ctor & dtor -// ---------------------------------------------------------------------------- - -wxIniConfig::wxIniConfig(const wxString& strAppName, - const wxString& strVendor, - const wxString& localFilename, - const wxString& globalFilename, - long style) - : wxConfigBase(!strAppName && wxTheApp ? wxTheApp->GetAppName() - : strAppName, - !strVendor ? (wxTheApp ? wxTheApp->GetVendorName() - : strAppName) - : strVendor, - localFilename, globalFilename, style) -{ - m_strLocalFilename = localFilename; - if (m_strLocalFilename.IsEmpty()) - { - m_strLocalFilename = GetAppName() + ".ini"; - } - - // append the extension if none given and it's not an absolute file name - // (otherwise we assume that they know what they're doing) - if ( !wxIsPathSeparator(m_strLocalFilename[0u]) && - m_strLocalFilename.Find('.') == wxNOT_FOUND ) - { - m_strLocalFilename << ".ini"; - } - - // set root path - SetPath(""); -} - -wxIniConfig::~wxIniConfig() -{ -} - -// ---------------------------------------------------------------------------- -// path management -// ---------------------------------------------------------------------------- - -void wxIniConfig::SetPath(const wxString& strPath) -{ - wxArrayString aParts; - - if ( strPath.IsEmpty() ) { - // nothing - } - else if ( strPath[0u] == wxCONFIG_PATH_SEPARATOR ) { - // absolute path - wxSplitPath(aParts, strPath); - } - else { - // relative path, combine with current one - wxString strFullPath = GetPath(); - strFullPath << wxCONFIG_PATH_SEPARATOR << strPath; - wxSplitPath(aParts, strFullPath); - } - - size_t nPartsCount = aParts.Count(); - m_strPath.Empty(); - if ( nPartsCount == 0 ) { - // go to the root - m_strGroup = PATH_SEP_REPLACE; - } - else { - // translate - m_strGroup = aParts[0u]; - for ( size_t nPart = 1; nPart < nPartsCount; nPart++ ) { - if ( nPart > 1 ) - m_strPath << PATH_SEP_REPLACE; - m_strPath << aParts[nPart]; - } - } - - // other functions assume that all this is true, i.e. there are no trailing - // underscores at the end except if the group is the root one - wxASSERT( (m_strPath.IsEmpty() || m_strPath.Last() != PATH_SEP_REPLACE) && - (m_strGroup == wxString(PATH_SEP_REPLACE) || - m_strGroup.Last() != PATH_SEP_REPLACE) ); -} - -const wxString& wxIniConfig::GetPath() const -{ - static wxString s_str; - - // always return abs path - s_str = wxCONFIG_PATH_SEPARATOR; - - if ( m_strGroup == wxString(PATH_SEP_REPLACE) ) { - // we're at the root level, nothing to do - } - else { - s_str << m_strGroup; - if ( !m_strPath.IsEmpty() ) - s_str << wxCONFIG_PATH_SEPARATOR; - for ( const char *p = m_strPath; *p != '\0'; p++ ) { - s_str << (*p == PATH_SEP_REPLACE ? wxCONFIG_PATH_SEPARATOR : *p); - } - } - - return s_str; -} - -wxString wxIniConfig::GetPrivateKeyName(const wxString& szKey) const -{ - wxString strKey; - - if ( !m_strPath.IsEmpty() ) - strKey << m_strPath << PATH_SEP_REPLACE; - - strKey << szKey; - - return strKey; -} - -wxString wxIniConfig::GetKeyName(const wxString& szKey) const -{ - wxString strKey; - - if ( m_strGroup != wxString(PATH_SEP_REPLACE) ) - strKey << m_strGroup << PATH_SEP_REPLACE; - if ( !m_strPath.IsEmpty() ) - strKey << m_strPath << PATH_SEP_REPLACE; - - strKey << szKey; - - return strKey; -} - -// ---------------------------------------------------------------------------- -// enumeration -// ---------------------------------------------------------------------------- - -// not implemented -bool wxIniConfig::GetFirstGroup(wxString& str, long& lIndex) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -bool wxIniConfig::GetNextGroup (wxString& str, long& lIndex) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -bool wxIniConfig::GetFirstEntry(wxString& str, long& lIndex) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -bool wxIniConfig::GetNextEntry (wxString& str, long& lIndex) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// misc info -// ---------------------------------------------------------------------------- - -// not implemented -size_t wxIniConfig::GetNumberOfEntries(bool bRecursive) const -{ - wxFAIL_MSG("not implemented"); - - return (size_t)-1; -} - -size_t wxIniConfig::GetNumberOfGroups(bool bRecursive) const -{ - wxFAIL_MSG("not implemented"); - - return (size_t)-1; -} - -bool wxIniConfig::HasGroup(const wxString& strName) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -bool wxIniConfig::HasEntry(const wxString& strName) const -{ - wxFAIL_MSG("not implemented"); - - return FALSE; -} - -// is current group empty? -bool wxIniConfig::IsEmpty() const -{ - char szBuf[1024]; - - GetPrivateProfileString(m_strGroup, NULL, "", - szBuf, WXSIZEOF(szBuf), m_strLocalFilename); - if ( !::IsEmpty(szBuf) ) - return FALSE; - - GetProfileString(m_strGroup, NULL, "", szBuf, WXSIZEOF(szBuf)); - if ( !::IsEmpty(szBuf) ) - return FALSE; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// read/write -// ---------------------------------------------------------------------------- - -bool wxIniConfig::Read(const wxString& szKey, wxString *pstr) const -{ - wxConfigPathChanger path(this, szKey); - wxString strKey = GetPrivateKeyName(path.Name()); - - char szBuf[1024]; // @@ should dynamically allocate memory... - - // first look in the private INI file - - // NB: the lpDefault param to GetPrivateProfileString can't be NULL - GetPrivateProfileString(m_strGroup, strKey, "", - szBuf, WXSIZEOF(szBuf), m_strLocalFilename); - if ( ::IsEmpty(szBuf) ) { - // now look in win.ini - wxString strKey = GetKeyName(path.Name()); - GetProfileString(m_strGroup, strKey, "", szBuf, WXSIZEOF(szBuf)); - } - - if ( ::IsEmpty(szBuf) ) { - return FALSE; - } - else { - *pstr = szBuf ; - return TRUE; - } -} - -bool wxIniConfig::Read(const wxString& szKey, wxString *pstr, - const wxString& szDefault) const -{ - wxConfigPathChanger path(this, szKey); - wxString strKey = GetPrivateKeyName(path.Name()); - - char szBuf[1024]; // @@ should dynamically allocate memory... - - // first look in the private INI file - - // NB: the lpDefault param to GetPrivateProfileString can't be NULL - GetPrivateProfileString(m_strGroup, strKey, "", - szBuf, WXSIZEOF(szBuf), m_strLocalFilename); - if ( ::IsEmpty(szBuf) ) { - // now look in win.ini - wxString strKey = GetKeyName(path.Name()); - GetProfileString(m_strGroup, strKey, "", szBuf, WXSIZEOF(szBuf)); - } - - if ( ::IsEmpty(szBuf) ) { - *pstr = szDefault; - return FALSE; - } - else { - *pstr = szBuf ; - return TRUE; - } -} - -bool wxIniConfig::Read(const wxString& szKey, long *pl) const -{ - wxConfigPathChanger path(this, szKey); - wxString strKey = GetPrivateKeyName(path.Name()); - - // hack: we have no mean to know if it really found the default value or - // didn't find anything, so we call it twice - - static const int nMagic = 17; // 17 is some "rare" number - static const int nMagic2 = 28; // arbitrary number != nMagic - long lVal = GetPrivateProfileInt(m_strGroup, strKey, nMagic, m_strLocalFilename); - if ( lVal != nMagic ) { - // the value was read from the file - *pl = lVal; - return TRUE; - } - - // is it really nMagic? - lVal = GetPrivateProfileInt(m_strGroup, strKey, nMagic2, m_strLocalFilename); - if ( lVal == nMagic2 ) { - // the nMagic it returned was indeed read from the file - *pl = lVal; - return TRUE; - } - - // no, it was just returning the default value, so now look in win.ini - *pl = GetProfileInt(GetVendorName(), GetKeyName(szKey), *pl); - - return TRUE; -} - -bool wxIniConfig::Write(const wxString& szKey, const wxString& szValue) -{ - wxConfigPathChanger path(this, szKey); - wxString strKey = GetPrivateKeyName(path.Name()); - - bool bOk = WritePrivateProfileString(m_strGroup, strKey, - szValue, m_strLocalFilename) != 0; - - if ( !bOk ) - wxLogLastError("WritePrivateProfileString"); - - return bOk; -} - -bool wxIniConfig::Write(const wxString& szKey, long lValue) -{ - // ltoa() is not ANSI :-( - char szBuf[40]; // should be good for sizeof(long) <= 16 (128 bits) - sprintf(szBuf, "%ld", lValue); - - return Write(szKey, szBuf); -} - -bool wxIniConfig::Flush(bool /* bCurrentOnly */) -{ - // this is just the way it works - return WritePrivateProfileString(NULL, NULL, NULL, m_strLocalFilename) != 0; -} - -// ---------------------------------------------------------------------------- -// delete -// ---------------------------------------------------------------------------- - -bool wxIniConfig::DeleteEntry(const wxString& szKey, bool bGroupIfEmptyAlso) -{ - // passing NULL as value to WritePrivateProfileString deletes the key -// if ( !Write(szKey, (const char *)NULL) ) -// return FALSE; - wxConfigPathChanger path(this, szKey); - wxString strKey = GetPrivateKeyName(path.Name()); - - if (WritePrivateProfileString(m_strGroup, szKey, - (const char*) NULL, m_strLocalFilename) == 0) - return FALSE; - - if ( !bGroupIfEmptyAlso || !IsEmpty() ) - return TRUE; - - // delete the current group too - bool bOk = WritePrivateProfileString(m_strGroup, NULL, - NULL, m_strLocalFilename) != 0; - - if ( !bOk ) - wxLogLastError("WritePrivateProfileString"); - - return bOk; -} - -bool wxIniConfig::DeleteGroup(const wxString& szKey) -{ - wxConfigPathChanger path(this, szKey); - - // passing NULL as section name to WritePrivateProfileString deletes the - // whole section according to the docs - bool bOk = WritePrivateProfileString(path.Name(), NULL, - NULL, m_strLocalFilename) != 0; - - if ( !bOk ) - wxLogLastError("WritePrivateProfileString"); - - return bOk; -} - -#ifndef MAX_PATH -#define MAX_PATH 256 -#endif - -bool wxIniConfig::DeleteAll() -{ - // first delete our group in win.ini - WriteProfileString(GetVendorName(), NULL, NULL); - - // then delete our own ini file - char szBuf[MAX_PATH]; - size_t nRc = GetWindowsDirectory(szBuf, WXSIZEOF(szBuf)); - if ( nRc == 0 ) - wxLogLastError("GetWindowsDirectory"); - else if ( nRc > WXSIZEOF(szBuf) ) - wxFAIL_MSG("buffer is too small for Windows directory."); - - wxString strFile = szBuf; - strFile << '\\' << m_strLocalFilename; - - if ( !wxRemoveFile(strFile) ) { - wxLogSysError(_("Can't delete the INI file '%s'"), strFile.c_str()); - return FALSE; - } - - return TRUE; -} - -bool wxIniConfig::RenameEntry(const wxString& oldName, const wxString& newName) -{ - // Not implemented - return FALSE; -} - -bool wxIniConfig::RenameGroup(const wxString& oldName, const wxString& newName) -{ - // Not implemented - return FALSE; -} diff --git a/src/msw/joystick.cpp b/src/msw/joystick.cpp deleted file mode 100644 index 407e704130..0000000000 --- a/src/msw/joystick.cpp +++ /dev/null @@ -1,546 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/string.h" -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef __GNUWIN32__ -#include -#endif - -#if !defined(__WIN32__) && !defined(_MMRESULT_) -typedef UINT MMRESULT; -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include -#endif -#endif - -// Why doesn't BC++ have joyGetPosEx? -#if !defined(__WIN32__) || defined(__BORLANDC__) || defined(__TWIN32__) -#define NO_JOYGETPOSEX -#endif - -#include -#include - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition(void) const -{ - JOYINFO joyInfo; - MMRESULT res = joyGetPos(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - return wxPoint(joyInfo.wXpos, joyInfo.wYpos); - else - return wxPoint(0, 0); -} - -int wxJoystick::GetZPosition(void) const -{ - JOYINFO joyInfo; - MMRESULT res = joyGetPos(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - return joyInfo.wZpos; - else - return 0; -} - -int wxJoystick::GetButtonState(void) const -{ - JOYINFO joyInfo; - MMRESULT res = joyGetPos(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - { - int buttons = 0; - - if (joyInfo.wButtons & JOY_BUTTON1) - buttons |= wxJOY_BUTTON1; - if (joyInfo.wButtons & JOY_BUTTON2) - buttons |= wxJOY_BUTTON2; - if (joyInfo.wButtons & JOY_BUTTON3) - buttons |= wxJOY_BUTTON3; - if (joyInfo.wButtons & JOY_BUTTON4) - buttons |= wxJOY_BUTTON4; - return buttons; - } - else - return 0; -} - -int wxJoystick::GetPOVPosition(void) const -{ -#ifndef NO_JOYGETPOSEX - JOYINFOEX joyInfo; - joyInfo.dwFlags = JOY_RETURNPOV; - MMRESULT res = joyGetPosEx(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - { - return joyInfo.dwPOV; - } - else - return 0; -#else - return 0; -#endif -} - -int wxJoystick::GetPOVCTSPosition(void) const -{ -#ifndef NO_JOYGETPOSEX - JOYINFOEX joyInfo; - joyInfo.dwFlags = JOY_RETURNPOVCTS; - MMRESULT res = joyGetPosEx(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - { - return joyInfo.dwPOV; - } - else - return 0; -#else - return 0; -#endif -} - -int wxJoystick::GetRudderPosition(void) const -{ -#ifndef NO_JOYGETPOSEX - JOYINFOEX joyInfo; - joyInfo.dwFlags = JOY_RETURNR; - MMRESULT res = joyGetPosEx(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - { - return joyInfo.dwRpos; - } - else - return 0; -#else - return 0; -#endif -} - -int wxJoystick::GetUPosition(void) const -{ -#ifndef NO_JOYGETPOSEX - JOYINFOEX joyInfo; - joyInfo.dwFlags = JOY_RETURNU; - MMRESULT res = joyGetPosEx(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - { - return joyInfo.dwUpos; - } - else - return 0; -#else - return 0; -#endif -} - -int wxJoystick::GetVPosition(void) const -{ -#ifndef NO_JOYGETPOSEX - JOYINFOEX joyInfo; - joyInfo.dwFlags = JOY_RETURNV; - MMRESULT res = joyGetPosEx(m_joystick, & joyInfo); - if (res == JOYERR_NOERROR ) - { - return joyInfo.dwVpos; - } - else - return 0; -#else - return 0; -#endif -} - -int wxJoystick::GetMovementThreshold(void) const -{ - UINT thresh = 0; - MMRESULT res = joyGetThreshold(m_joystick, & thresh); - if (res == JOYERR_NOERROR ) - { - return thresh; - } - else - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ - UINT thresh = threshold; - joySetThreshold(m_joystick, thresh); -} - -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk(void) const -{ - JOYINFO joyInfo; - MMRESULT res = joyGetPos(m_joystick, & joyInfo); - return ((joyGetNumDevs() > 0) || (res == JOYERR_NOERROR)); -} - -int wxJoystick::GetNumberJoysticks(void) const -{ - return joyGetNumDevs(); -} - -int wxJoystick::GetManufacturerId(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wMid; -} - -int wxJoystick::GetProductId(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wPid; -} - -wxString wxJoystick::GetProductName(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return wxString(""); - else - return wxString(joyCaps.szPname); -} - -int wxJoystick::GetXMin(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wXmin; -} - -int wxJoystick::GetYMin(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wYmin; -} - -int wxJoystick::GetZMin(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wZmin; -} - -int wxJoystick::GetXMax(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wXmax; -} - -int wxJoystick::GetYMax(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wYmax; -} - -int wxJoystick::GetZMax(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wZmax; -} - -int wxJoystick::GetNumberButtons(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wNumButtons; -} - -int wxJoystick::GetNumberAxes(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wNumAxes; -#else - return 0; -#endif -} - -int wxJoystick::GetMaxButtons(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wMaxButtons; -#else - return 0; -#endif -} - -int wxJoystick::GetMaxAxes(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wMaxAxes; -#else - return 0; -#endif -} - -int wxJoystick::GetPollingMin(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wPeriodMin; -} - -int wxJoystick::GetPollingMax(void) const -{ - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wPeriodMax; -} - -int wxJoystick::GetRudderMin(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wRmin; -#else - return 0; -#endif -} - -int wxJoystick::GetRudderMax(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wRmax; -#else - return 0; -#endif -} - -int wxJoystick::GetUMin(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wUmin; -#else - return 0; -#endif -} - -int wxJoystick::GetUMax(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wUmax; -#else - return 0; -#endif -} - -int wxJoystick::GetVMin(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wVmin; -#else - return 0; -#endif -} - -int wxJoystick::GetVMax(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return 0; - else - return joyCaps.wVmax; -#else - return 0; -#endif -} - - -bool wxJoystick::HasRudder(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_HASR) == JOYCAPS_HASR); -#else - return FALSE; -#endif -} - -bool wxJoystick::HasZ(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_HASZ) == JOYCAPS_HASZ); -#else - return FALSE; -#endif -} - -bool wxJoystick::HasU(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_HASU) == JOYCAPS_HASU); -#else - return FALSE; -#endif -} - -bool wxJoystick::HasV(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_HASV) == JOYCAPS_HASV); -#else - return FALSE; -#endif -} - -bool wxJoystick::HasPOV(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_HASPOV) == JOYCAPS_HASPOV); -#else - return FALSE; -#endif -} - -bool wxJoystick::HasPOV4Dir(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_POV4DIR) == JOYCAPS_POV4DIR); -#else - return FALSE; -#endif -} - -bool wxJoystick::HasPOVCTS(void) const -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - JOYCAPS joyCaps; - if (joyGetDevCaps(m_joystick, & joyCaps, sizeof(JOYCAPS)) != JOYERR_NOERROR) - return FALSE; - else - return ((joyCaps.wCaps & JOYCAPS_POVCTS) == JOYCAPS_POVCTS); -#else - return FALSE; -#endif -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq) -{ - BOOL changed = (pollingFreq == 0); - MMRESULT res = joySetCapture((HWND) win->GetHWND(), m_joystick, pollingFreq, changed); - return (res == JOYERR_NOERROR); -} - -bool wxJoystick::ReleaseCapture(void) -{ - MMRESULT res = joyReleaseCapture(m_joystick); - return (res == JOYERR_NOERROR); -} - diff --git a/src/msw/listbox.cpp b/src/msw/listbox.cpp deleted file mode 100644 index 869a9116b5..0000000000 --- a/src/msw/listbox.cpp +++ /dev/null @@ -1,816 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: wxListBox -// Author: Julian Smart -// Modified by: Vadim Zeitlin (owner drawn stuff) -// Created: -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "listbox.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef WX_PRECOMP -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/brush.h" -#include "wx/font.h" -#include "wx/dc.h" -#endif - -#include - -#ifdef __WXWINE__ - #if defined(GetWindowStyle) - #undef GetWindowStyle - #endif -#endif - -#include "wx/dynarray.h" -#include "wx/log.h" - -#if wxUSE_OWNER_DRAWN - #include "wx/ownerdrw.h" -#endif - -#ifndef __TWIN32__ - #if defined(__GNUWIN32__) - #include - #endif -#endif - -#ifdef __WXWINE__ - #ifndef ListBox_SetItemData - #define ListBox_SetItemData(hwndCtl, index, data) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_SETITEMDATA, (WPARAM)(int)(index), (LPARAM)(data))) - #endif - #ifndef ListBox_GetHorizontalExtent - #define ListBox_GetHorizontalExtent(hwndCtl) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETHORIZONTALEXTENT, 0L, 0L)) - #endif - #ifndef ListBox_GetSelCount - #define ListBox_GetSelCount(hwndCtl) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETSELCOUNT, 0L, 0L)) - #endif - #ifndef ListBox_GetSelItems - #define ListBox_GetSelItems(hwndCtl, cItems, lpItems) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETSELITEMS, (WPARAM)(int)(cItems), (LPARAM)(int *)(lpItems))) - #endif - #ifndef ListBox_GetTextLen - #define ListBox_GetTextLen(hwndCtl, index) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETTEXTLEN, (WPARAM)(int)(index), 0L)) - #endif - #ifndef ListBox_GetText - #define ListBox_GetText(hwndCtl, index, lpszBuffer) \ - ((int)(DWORD)SendMessage((hwndCtl), LB_GETTEXT, (WPARAM)(int)(index), (LPARAM)(LPCTSTR)(lpszBuffer))) - #endif -#endif - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif - -// ============================================================================ -// list box item declaration and implementation -// ============================================================================ - -#if wxUSE_OWNER_DRAWN - -class wxListBoxItem : public wxOwnerDrawn -{ -public: - wxListBoxItem(const wxString& str = ""); -}; - -wxListBoxItem::wxListBoxItem(const wxString& str) : wxOwnerDrawn(str, FALSE) -{ - // no bitmaps/checkmarks - SetMarginWidth(0); -} - -wxOwnerDrawn *wxListBox::CreateItem(size_t n) -{ - return new wxListBoxItem(); -} - -#endif //USE_OWNER_DRAWN - -// ============================================================================ -// list box control implementation -// ============================================================================ - -bool wxListBox::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) -{ - /* - if (param == LBN_SELCANCEL) - { - event.extraLong = FALSE; - } - */ - if (param == LBN_SELCHANGE) - { - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_SELECTED, m_windowId); - wxArrayInt aSelections; - int count = GetSelections(aSelections); - if ( count > 0 ) - { - event.m_commandInt = aSelections[0] ; - event.m_clientData = GetClientData(event.m_commandInt); - wxString str(GetString(event.m_commandInt)); - if (str != "") - { - event.m_commandString = str; - } - } - else - { - event.m_commandInt = -1 ; - event.m_commandString.Empty(); - } - - event.SetEventObject( this ); - ProcessCommand(event); - return TRUE; - } - else if (param == LBN_DBLCLK) - { - wxCommandEvent event(wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event) ; - return TRUE; - } - - return FALSE; -} - - // Listbox item -wxListBox::wxListBox() -{ - m_noItems = 0; - m_selected = 0; -} - -bool wxListBox::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - m_noItems = 0; - m_hWnd = 0; - m_selected = 0; - - SetName(name); - SetValidator(validator); - - if (parent) - parent->AddChild(this); - - wxSystemSettings settings; - SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_WINDOW)); - SetForegroundColour(parent->GetForegroundColour()); - - m_windowId = ( id == -1 ) ? (int)NewControlId() : id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - m_windowStyle = style; - - DWORD wstyle = WS_VISIBLE | WS_VSCROLL | WS_TABSTOP | - LBS_NOTIFY | LBS_HASSTRINGS; - if (m_windowStyle & wxLB_MULTIPLE) - wstyle |= LBS_MULTIPLESEL; - else if (m_windowStyle & wxLB_EXTENDED) - wstyle |= LBS_EXTENDEDSEL; - - if (m_windowStyle & wxLB_ALWAYS_SB) - wstyle |= LBS_DISABLENOSCROLL ; - if (m_windowStyle & wxLB_HSCROLL) - wstyle |= WS_HSCROLL; - if (m_windowStyle & wxLB_SORT) - wstyle |= LBS_SORT; - -#if wxUSE_OWNER_DRAWN - if ( m_windowStyle & wxLB_OWNERDRAW ) { - // we don't support LBS_OWNERDRAWVARIABLE yet - wstyle |= LBS_OWNERDRAWFIXED; - } -#endif - - // Without this style, you get unexpected heights, so e.g. constraint layout - // doesn't work properly - wstyle |= LBS_NOINTEGRALHEIGHT; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - { - wstyle |= WS_BORDER; - } - - m_hWnd = (WXHWND)::CreateWindowEx(exStyle, "LISTBOX", NULL, - wstyle | WS_CHILD, - 0, 0, 0, 0, - (HWND)parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create listbox" ); - -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl(GetHwnd()); - m_useCtl3D = TRUE; - } -#endif - - // Subclass again to catch messages - SubclassWin(m_hWnd); - - size_t ui; - for (ui = 0; ui < (size_t)n; ui++) { - Append(choices[ui]); - } - - if ( (m_windowStyle & wxLB_MULTIPLE) == 0 ) - SendMessage(GetHwnd(), LB_SETCURSEL, 0, 0); - - SetFont(parent->GetFont()); - - SetSize(x, y, width, height); - - Show(TRUE); - - return TRUE; -} - -wxListBox::~wxListBox() -{ -#if wxUSE_OWNER_DRAWN - size_t uiCount = m_aItems.Count(); - while ( uiCount-- != 0 ) { - delete m_aItems[uiCount]; - } -#endif // wxUSE_OWNER_DRAWN -} - -void wxListBox::SetupColours() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - SetForegroundColour(GetParent()->GetForegroundColour()); -} - -void wxListBox::SetFirstItem(int N) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::SetFirstItem" ); - - SendMessage(GetHwnd(),LB_SETTOPINDEX,(WPARAM)N,(LPARAM)0) ; -} - -void wxListBox::SetFirstItem(const wxString& s) -{ - int N = FindString(s) ; - - if ( N >= 0 ) - SetFirstItem(N) ; -} - -void wxListBox::Delete(int N) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::Delete" ); - - SendMessage(GetHwnd(), LB_DELETESTRING, N, 0); - m_noItems--; - - SetHorizontalExtent(""); -} - -void wxListBox::Append(const wxString& item) -{ - int index = ListBox_AddString(GetHwnd(), item); - m_noItems ++; - -#if wxUSE_OWNER_DRAWN - if ( m_windowStyle & wxLB_OWNERDRAW ) { - wxOwnerDrawn *pNewItem = CreateItem(index); // dummy argument - pNewItem->SetName(item); - m_aItems.Add(pNewItem); - ListBox_SetItemData(GetHwnd(), index, pNewItem); - } -#endif - - SetHorizontalExtent(item); -} - -void wxListBox::Append(const wxString& item, void *Client_data) -{ - int index = ListBox_AddString(GetHwnd(), item); - m_noItems ++; - -#if wxUSE_OWNER_DRAWN - if ( m_windowStyle & wxLB_OWNERDRAW ) { - // client data must be pointer to wxOwnerDrawn, otherwise we would crash - // in OnMeasure/OnDraw. - wxFAIL_MSG("Can't use client data with owner-drawn listboxes"); - } - else -#endif - - ListBox_SetItemData(GetHwnd(), index, Client_data); - - SetHorizontalExtent(item); -} - -void wxListBox::Set(int n, const wxString *choices, void** clientData) -{ - ShowWindow(GetHwnd(), SW_HIDE); - ListBox_ResetContent(GetHwnd()); - int i; - for (i = 0; i < n; i++) - { - ListBox_AddString(GetHwnd(), choices[i]); - if ( clientData ) - ListBox_SetItemData(GetHwnd(), i, clientData[i]); - } - m_noItems = n; - -#if wxUSE_OWNER_DRAWN - if ( m_windowStyle & wxLB_OWNERDRAW ) { - // first delete old items - size_t ui = m_aItems.Count(); - while ( ui-- != 0 ) { - delete m_aItems[ui]; - } - m_aItems.Empty(); - - // then create new ones - for (ui = 0; ui < (size_t)n; ui++) { - wxOwnerDrawn *pNewItem = CreateItem(ui); - pNewItem->SetName(choices[ui]); - m_aItems.Add(pNewItem); - ListBox_SetItemData(GetHwnd(), ui, pNewItem); - - wxASSERT_MSG(clientData[ui] == NULL, - "Can't use client data with owner-drawn listboxes"); - } - } -#endif - - SetHorizontalExtent(""); - ShowWindow(GetHwnd(), SW_SHOW); -} - -int wxListBox::FindString(const wxString& s) const -{ - int pos = ListBox_FindStringExact(GetHwnd(), (WPARAM)-1, s); - if (pos == LB_ERR) - return -1; - else - return pos; -} - -void wxListBox::Clear() -{ - ListBox_ResetContent(GetHwnd()); - -#if wxUSE_OWNER_DRAWN - size_t uiCount = m_aItems.Count(); - while ( uiCount-- != 0 ) { - delete m_aItems[uiCount]; - } - - m_aItems.Clear(); -#endif // wxUSE_OWNER_DRAWN - - m_noItems = 0; - ListBox_GetHorizontalExtent(GetHwnd()); -} - -void wxListBox::SetSelection(int N, bool select) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::SetSelection" ); - - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - SendMessage(GetHwnd(), LB_SETSEL, select, N); - else - { - int N1 = N; - if (!select) - N1 = -1; - SendMessage(GetHwnd(), LB_SETCURSEL, N1, 0); - } -} - -bool wxListBox::Selected(int N) const -{ - wxCHECK_MSG( N >= 0 && N < m_noItems, FALSE, - "invalid index in wxListBox::Selected" ); - - return SendMessage(GetHwnd(), LB_GETSEL, N, 0) == 0 ? FALSE : TRUE; -} - -void wxListBox::Deselect(int N) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::Deselect" ); - - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - SendMessage(GetHwnd(), LB_SETSEL, FALSE, N); -} - -void *wxListBox::GetClientData(int N) const -{ - wxCHECK_MSG( N >= 0 && N < m_noItems, NULL, - "invalid index in wxListBox::GetClientData" ); - - return (char *)SendMessage(GetHwnd(), LB_GETITEMDATA, N, 0); -} - -void wxListBox::SetClientData(int N, void *Client_data) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::SetClientData" ); - - if ( ListBox_SetItemData(GetHwnd(), N, Client_data) == LB_ERR ) - wxLogDebug("LB_SETITEMDATA failed"); -} - -// Return number of selections and an array of selected integers -int wxListBox::GetSelections(wxArrayInt& aSelections) const -{ - aSelections.Empty(); - - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - { - int no_sel = ListBox_GetSelCount(GetHwnd()); - if (no_sel != 0) { - int *selections = new int[no_sel]; - if ( ListBox_GetSelItems(GetHwnd(), no_sel, selections) == LB_ERR ) { - wxFAIL_MSG("This listbox can't have single-selection style!"); - } - - aSelections.Alloc(no_sel); - for ( int n = 0; n < no_sel; n++ ) - aSelections.Add(selections[n]); - - delete [] selections; - } - - return no_sel; - } - else // single-selection listbox - { - aSelections.Add(ListBox_GetCurSel(GetHwnd())); - - return 1; - } -} - -// Get single selection, for single choice list items -int wxListBox::GetSelection() const -{ - wxCHECK_MSG( !(m_windowStyle & wxLB_MULTIPLE) && - !(m_windowStyle & wxLB_EXTENDED), - -1, - "GetSelection() can't be used with multiple-selection " - "listboxes, use GetSelections() instead." ); - - return ListBox_GetCurSel(GetHwnd()); -} - -// Find string for position -wxString wxListBox::GetString(int N) const -{ - wxCHECK_MSG( N >= 0 && N < m_noItems, "", - "invalid index in wxListBox::GetClientData" ); - - int len = ListBox_GetTextLen(GetHwnd(), N); - - // +1 for terminating NUL - wxString result; - ListBox_GetText(GetHwnd(), N, result.GetWriteBuf(len + 1)); - result.UngetWriteBuf(); - - return result; -} - -void wxListBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - - int cx; // button font dimensions - int cy; - - wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); - - float control_width, control_height, control_x, control_y; - - // Deal with default size (using -1 values) - if (w1<=0) - w1 = DEFAULT_ITEM_WIDTH; - - if (h1<=0) - h1 = DEFAULT_ITEM_HEIGHT; - - control_x = (float)x1; - control_y = (float)y1; - control_width = (float)w1; - control_height = (float)h1; - - // Calculations may have made size too small - if (control_height <= 0) - control_height = (float)DEFAULT_ITEM_HEIGHT; - - if (control_width <= 0) - control_width = (float)DEFAULT_ITEM_WIDTH; - - MoveWindow(GetHwnd(), - (int)control_x, (int)control_y, - (int)control_width, (int)control_height, - TRUE); - -} - -// Windows-specific code to set the horizontal extent of -// the listbox, if necessary. If s is non-NULL, it's -// used to calculate the horizontal extent. -// Otherwise, all strings are used. -void wxListBox::SetHorizontalExtent(const wxString& s) -{ - // Only necessary if we want a horizontal scrollbar - if (!(m_windowStyle & wxHSCROLL)) - return; - TEXTMETRIC lpTextMetric; - - if (s != "") - { - int existingExtent = (int)SendMessage(GetHwnd(), LB_GETHORIZONTALEXTENT, 0, 0L); - HDC dc = GetWindowDC(GetHwnd()); - HFONT oldFont = 0; - if (GetFont().Ok() && GetFont().GetResourceHandle()) - oldFont = (HFONT) ::SelectObject(dc, (HFONT) GetFont().GetResourceHandle()); - - GetTextMetrics(dc, &lpTextMetric); - SIZE extentXY; - ::GetTextExtentPoint(dc, (LPSTR) (const char *)s, s.Length(), &extentXY); - int extentX = (int)(extentXY.cx + lpTextMetric.tmAveCharWidth); - - if (oldFont) - ::SelectObject(dc, oldFont); - - ReleaseDC(GetHwnd(), dc); - if (extentX > existingExtent) - SendMessage(GetHwnd(), LB_SETHORIZONTALEXTENT, LOWORD(extentX), 0L); - return; - } - else - { - int largestExtent = 0; - HDC dc = GetWindowDC(GetHwnd()); - HFONT oldFont = 0; - if (GetFont().Ok() && GetFont().GetResourceHandle()) - oldFont = (HFONT) ::SelectObject(dc, (HFONT) GetFont().GetResourceHandle()); - - GetTextMetrics(dc, &lpTextMetric); - int i; - for (i = 0; i < m_noItems; i++) - { - int len = (int)SendMessage(GetHwnd(), LB_GETTEXT, i, (LONG)wxBuffer); - wxBuffer[len] = 0; - SIZE extentXY; - ::GetTextExtentPoint(dc, (LPSTR)wxBuffer, len, &extentXY); - int extentX = (int)(extentXY.cx + lpTextMetric.tmAveCharWidth); - if (extentX > largestExtent) - largestExtent = extentX; - } - if (oldFont) - ::SelectObject(dc, oldFont); - - ReleaseDC(GetHwnd(), dc); - SendMessage(GetHwnd(), LB_SETHORIZONTALEXTENT, LOWORD(largestExtent), 0L); - } -} - -void -wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - wxCHECK_RET( pos >= 0 && pos <= m_noItems, - "invalid index in wxListBox::InsertItems" ); - - int i; - for (i = 0; i < nItems; i++) - ListBox_InsertString(GetHwnd(), i + pos, items[i]); - m_noItems += nItems; - - SetHorizontalExtent(""); -} - -void wxListBox::SetString(int N, const wxString& s) -{ - wxCHECK_RET( N >= 0 && N < m_noItems, - "invalid index in wxListBox::SetString" ); - - int sel = -1; - if (!(m_windowStyle & wxLB_MULTIPLE) && !(m_windowStyle & wxLB_EXTENDED)) - sel = GetSelection(); - - void *oldData = wxListBox::GetClientData(N); - - SendMessage(GetHwnd(), LB_DELETESTRING, N, 0); - - int newN = N; - if (N == (m_noItems - 1)) - newN = -1; - - SendMessage(GetHwnd(), LB_INSERTSTRING, newN, (LPARAM) (const char *)s); - if (oldData) - wxListBox::SetClientData(N, oldData); - - // Selection may have changed - if (sel >= 0) - SetSelection(sel); - -#if wxUSE_OWNER_DRAWN - if ( m_windowStyle & wxLB_OWNERDRAW ) - // update item's text - m_aItems[N]->SetName(s); -#endif //USE_OWNER_DRAWN -} - -int wxListBox::Number () const -{ - return m_noItems; -} - -// For single selection items only -wxString wxListBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxListBox::SetStringSelection (const wxString& s, bool flag) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel, flag); - return TRUE; - } - else - return FALSE; -} - -// Is this the right thing? Won't setselection generate a command -// event too? No! It'll just generate a setselection event. -// But we still can't have this being called whenever a real command -// is generated, because it sets the selection, which will already -// have been done! (Unless we have an optional argument for calling -// by the actual window system, or a separate function, ProcessCommand) -void wxListBox::Command (wxCommandEvent & event) -{ - if (event.m_extraLong) - SetSelection (event.m_commandInt); - else - { - Deselect (event.m_commandInt); - return; - } - ProcessCommand (event); -} - -WXHBRUSH wxListBox::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; - } -#endif - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. - backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -long wxListBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - return wxControl::MSWWindowProc(nMsg, wParam, lParam); -} - -#if wxUSE_OWNER_DRAWN - -// drawing -// ------- - -// space beneath/above each row in pixels -// "standard" checklistbox use 1 here, some might prefer 2. 0 is ugly. -#define OWNER_DRAWN_LISTBOX_EXTRA_SPACE (1) - -// the height is the same for all items -// TODO should be changed for LBS_OWNERDRAWVARIABLE style listboxes - -// NB: can't forward this to wxListBoxItem because LB_SETITEMDATA -// message is not yet sent when we get here! -bool wxListBox::MSWOnMeasure(WXMEASUREITEMSTRUCT *item) -{ - // only owner-drawn control should receive this message - wxCHECK( ((m_windowStyle & wxLB_OWNERDRAW) == wxLB_OWNERDRAW), FALSE ); - - MEASUREITEMSTRUCT *pStruct = (MEASUREITEMSTRUCT *)item; - - wxDC dc; - dc.SetHDC((WXHDC)CreateIC("DISPLAY", NULL, NULL, 0)); - dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_ANSI_VAR_FONT)); - - pStruct->itemHeight = dc.GetCharHeight() + 2*OWNER_DRAWN_LISTBOX_EXTRA_SPACE; - pStruct->itemWidth = dc.GetCharWidth(); - - return TRUE; -} - -// forward the message to the appropriate item -bool wxListBox::MSWOnDraw(WXDRAWITEMSTRUCT *item) -{ - // only owner-drawn control should receive this message - wxCHECK( ((m_windowStyle & wxLB_OWNERDRAW) == wxLB_OWNERDRAW), FALSE ); - - DRAWITEMSTRUCT *pStruct = (DRAWITEMSTRUCT *)item; - - long data = ListBox_GetItemData(GetHwnd(), pStruct->itemID); - - wxCHECK( data && (data != LB_ERR), FALSE ); - - wxListBoxItem *pItem = (wxListBoxItem *)data; - - wxDC dc; - dc.SetHDC((WXHDC)pStruct->hDC, FALSE); - wxRect rect(wxPoint(pStruct->rcItem.left, pStruct->rcItem.top), - wxPoint(pStruct->rcItem.right, pStruct->rcItem.bottom)); - - return pItem->OnDrawItem(dc, rect, - (wxOwnerDrawn::wxODAction)pStruct->itemAction, - (wxOwnerDrawn::wxODStatus)pStruct->itemState); -} - -#endif - // wxUSE_OWNER_DRAWN diff --git a/src/msw/listctrl.cpp b/src/msw/listctrl.cpp deleted file mode 100644 index 242f9dfab9..0000000000 --- a/src/msw/listctrl.cpp +++ /dev/null @@ -1,1496 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.cpp -// Purpose: wxListCtrl -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "listctrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#if defined(__WIN95__) - -#include "wx/listctrl.h" -#include "wx/log.h" - -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) - #include -#endif - -#ifndef __TWIN32__ - #ifdef __GNUWIN32__ - #include "wx/msw/gnuwin32/extra.h" - #endif -#endif - -static void wxConvertToMSWListItem(const wxListCtrl *ctrl, wxListItem& info, LV_ITEM& tvItem); -static void wxConvertFromMSWListItem(const wxListCtrl *ctrl, wxListItem& info, LV_ITEM& tvItem, HWND getFullInfo = 0); - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) - IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) -#endif // USE_SHARED_LIBRARY - -wxListCtrl::wxListCtrl() -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_baseStyle = 0; - m_colCount = 0; - m_textCtrl = NULL; -} - -bool wxListCtrl::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; - m_colCount = 0; - - SetValidator(validator); - SetName(name); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - SetParent(parent); - - if (width <= 0) - width = 100; - if (height <= 0) - height = 30; - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - m_windowId = (id == -1) ? NewControlId() : id; - - DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - wstyle |= WS_BORDER; - - wstyle |= LVS_SHAREIMAGELISTS | LVS_SHOWSELALWAYS ; - m_baseStyle = wstyle; - - long oldStyle = 0; // Dummy - wstyle |= ConvertToMSWStyle(oldStyle, m_windowStyle); - - // Create the ListView control. - m_hWnd = (WXHWND)CreateWindowEx(exStyle, - WC_LISTVIEW, - "", - wstyle, - x, y, width, height, - (HWND) parent->GetHWND(), - (HMENU)m_windowId, - wxGetInstance(), - NULL); - - if ( !m_hWnd ) { - wxLogError("Can't create list control window."); - - return FALSE; - } - - // for comctl32.dll v 4.70+ we want to have this attribute because it's - // prettier (and also because wxGTK does it like this) -#ifdef ListView_SetExtendedListViewStyle - if ( wstyle & LVS_REPORT ) - { - ListView_SetExtendedListViewStyle((HWND)GetHWND(), - LVS_EX_FULLROWSELECT); - } -#endif // ListView_SetExtendedListViewStyle - - wxSystemSettings settings; - SetBackgroundColour(settings.GetSystemColour(wxSYS_COLOUR_WINDOW)); - SetForegroundColour(parent->GetForegroundColour()); - - if (parent) parent->AddChild(this); - - SubclassWin((WXHWND) m_hWnd); - - return TRUE; -} - -wxListCtrl::~wxListCtrl() -{ - if (m_textCtrl) - { - m_textCtrl->UnsubclassWin(); - m_textCtrl->SetHWND(0); - delete m_textCtrl; - m_textCtrl = NULL; - } -} - -// Add or remove a single window style -void wxListCtrl::SetSingleStyle(long style, bool add) -{ - long flag = GetWindowStyleFlag(); - - // Get rid of conflicting styles - if ( add ) - { - if ( style & wxLC_MASK_TYPE) - flag = flag & ~wxLC_MASK_TYPE ; - if ( style & wxLC_MASK_ALIGN ) - flag = flag & ~wxLC_MASK_ALIGN ; - if ( style & wxLC_MASK_SORT ) - flag = flag & ~wxLC_MASK_SORT ; - } - - if ( flag & style ) - { - if ( !add ) - flag -= style; - } - else - { - if ( add ) - { - flag |= style; - } - } - - m_windowStyle = flag; - - RecreateWindow(); -} - -// Set the whole window style -void wxListCtrl::SetWindowStyleFlag(long flag) -{ - m_windowStyle = flag; - - RecreateWindow(); -} - -void wxListCtrl::RecreateWindow() -{ - if ( GetHWND() ) - { - long oldStyle = 0; - long style = ConvertToMSWStyle(oldStyle, m_windowStyle); - style |= m_baseStyle; - // ::SetWindowLong((HWND) GetHWND(), GWL_STYLE, style); - - // The following recreation of the window appears to be necessary - // because SetWindowLong doesn't seem to do it. - - int x, y, width, height; - GetPosition(&x, &y); - GetSize(&width, &height); - - UnsubclassWin(); - ::DestroyWindow((HWND) GetHWND()); - - // Experimental - // Recreate the ListView control: unfortunately I can't - // make it work by using SetWindowLong. - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - HWND hWndListControl = CreateWindowEx(exStyle, - WC_LISTVIEW, - "", - style, - x, y, width, height, - (HWND) GetParent()->GetHWND(), - (HMENU)m_windowId, - wxGetInstance(), - NULL ); - - m_hWnd = (WXHWND) hWndListControl; - SubclassWin((WXHWND) m_hWnd); - -#ifdef ListView_SetExtendedListViewStyle - if ( style & LVS_REPORT ) - { - ListView_SetExtendedListViewStyle((HWND)GetHWND(), - LVS_EX_FULLROWSELECT); - } -#endif // ListView_SetExtendedListViewStyle - - if ( m_imageListNormal ) - SetImageList(m_imageListNormal, wxIMAGE_LIST_NORMAL); - if ( m_imageListSmall ) - SetImageList(m_imageListSmall, wxIMAGE_LIST_SMALL); - if ( m_imageListState ) - SetImageList(m_imageListState, wxIMAGE_LIST_STATE); - } -} - -// Can be just a single style, or a bitlist -long wxListCtrl::ConvertToMSWStyle(long& oldStyle, long style) const -{ - long wstyle = 0; - if ( style & wxLC_ICON ) - { - if ( (oldStyle & LVS_TYPEMASK) == LVS_SMALLICON ) - oldStyle -= LVS_SMALLICON; - if ( (oldStyle & LVS_TYPEMASK) == LVS_REPORT ) - oldStyle -= LVS_REPORT; - if ( (oldStyle & LVS_TYPEMASK) == LVS_LIST ) - oldStyle -= LVS_LIST; - wstyle |= LVS_ICON; - } - - if ( style & wxLC_SMALL_ICON ) - { - if ( (oldStyle & LVS_TYPEMASK) == LVS_ICON ) - oldStyle -= LVS_ICON; - if ( (oldStyle & LVS_TYPEMASK) == LVS_REPORT ) - oldStyle -= LVS_REPORT; - if ( (oldStyle & LVS_TYPEMASK) == LVS_LIST ) - oldStyle -= LVS_LIST; - wstyle |= LVS_SMALLICON; - } - - if ( style & wxLC_LIST ) - { - if ( (oldStyle & LVS_TYPEMASK) == LVS_ICON ) - oldStyle -= LVS_ICON; - if ( (oldStyle & LVS_TYPEMASK) == LVS_REPORT ) - oldStyle -= LVS_REPORT; - if ( (oldStyle & LVS_TYPEMASK) == LVS_SMALLICON ) - oldStyle -= LVS_SMALLICON; - wstyle |= LVS_LIST; - } - - if ( style & wxLC_REPORT ) - { - if ( (oldStyle & LVS_TYPEMASK) == LVS_ICON ) - oldStyle -= LVS_ICON; - if ( (oldStyle & LVS_TYPEMASK) == LVS_LIST ) - oldStyle -= LVS_LIST; - if ( (oldStyle & LVS_TYPEMASK) == LVS_SMALLICON ) - oldStyle -= LVS_SMALLICON; - - wstyle |= LVS_REPORT; - } - - if ( style & wxLC_ALIGN_LEFT ) - { - if ( oldStyle & LVS_ALIGNTOP ) - oldStyle -= LVS_ALIGNTOP; - wstyle |= LVS_ALIGNLEFT; - } - - if ( style & wxLC_ALIGN_TOP ) - { - if ( oldStyle & LVS_ALIGNLEFT ) - oldStyle -= LVS_ALIGNLEFT; - wstyle |= LVS_ALIGNTOP; - } - - if ( style & wxLC_AUTOARRANGE ) - wstyle |= LVS_AUTOARRANGE; - - // Apparently, no such style (documentation wrong?) - /* - if ( style & wxLC_BUTTON ) - wstyle |= LVS_BUTTON; - */ - - if ( style & wxLC_NO_SORT_HEADER ) - wstyle |= LVS_NOSORTHEADER; - - if ( style & wxLC_NO_HEADER ) - wstyle |= LVS_NOCOLUMNHEADER; - - if ( style & wxLC_EDIT_LABELS ) - wstyle |= LVS_EDITLABELS; - - if ( style & wxLC_SINGLE_SEL ) - wstyle |= LVS_SINGLESEL; - - if ( style & wxLC_SORT_ASCENDING ) - { - if ( oldStyle & LVS_SORTDESCENDING ) - oldStyle -= LVS_SORTDESCENDING; - wstyle |= LVS_SORTASCENDING; - } - - if ( style & wxLC_SORT_DESCENDING ) - { - if ( oldStyle & LVS_SORTASCENDING ) - oldStyle -= LVS_SORTASCENDING; - wstyle |= LVS_SORTDESCENDING; - } - - return wstyle; -} - -// Sets the background colour (GetBackgroundColour already implicit in -// wxWindow class) -bool wxListCtrl::SetBackgroundColour(const wxColour& col) -{ - if ( !wxWindow::SetBackgroundColour(col) ) - return FALSE; - - ListView_SetBkColor((HWND) GetHWND(), PALETTERGB(col.Red(), col.Green(), col.Blue())); - - return TRUE; -} - -// Gets information about this column -bool wxListCtrl::GetColumn(int col, wxListItem& item) const -{ - LV_COLUMN lvCol; - lvCol.mask = 0; - lvCol.fmt = 0; - lvCol.pszText = NULL; - - if ( item.m_mask & wxLIST_MASK_TEXT ) - { - lvCol.mask |= LVCF_TEXT; - lvCol.pszText = new char[513]; - lvCol.cchTextMax = 512; - } - - bool success = (ListView_GetColumn((HWND) GetHWND(), col, & lvCol) != 0); - - // item.m_subItem = lvCol.iSubItem; - item.m_width = lvCol.cx; - - if ( (item.m_mask & wxLIST_MASK_TEXT) && lvCol.pszText ) - { - item.m_text = lvCol.pszText; - delete[] lvCol.pszText; - } - - if ( item.m_mask & wxLIST_MASK_FORMAT ) - { - if (lvCol.fmt == LVCFMT_LEFT) - item.m_format = wxLIST_FORMAT_LEFT; - else if (lvCol.fmt == LVCFMT_RIGHT) - item.m_format = wxLIST_FORMAT_RIGHT; - else if (lvCol.fmt == LVCFMT_CENTER) - item.m_format = wxLIST_FORMAT_CENTRE; - } - - return success; -} - -// Sets information about this column -bool wxListCtrl::SetColumn(int col, wxListItem& item) -{ - LV_COLUMN lvCol; - lvCol.mask = 0; - lvCol.fmt = 0; - lvCol.pszText = NULL; - - if ( item.m_mask & wxLIST_MASK_TEXT ) - { - lvCol.mask |= LVCF_TEXT; - lvCol.pszText = WXSTRINGCAST item.m_text; - lvCol.cchTextMax = 0; // Ignored - } - if ( item.m_mask & wxLIST_MASK_FORMAT ) - { - lvCol.mask |= LVCF_FMT; - - if ( item.m_format == wxLIST_FORMAT_LEFT ) - lvCol.fmt = LVCFMT_LEFT; - if ( item.m_format == wxLIST_FORMAT_RIGHT ) - lvCol.fmt = LVCFMT_RIGHT; - if ( item.m_format == wxLIST_FORMAT_CENTRE ) - lvCol.fmt = LVCFMT_CENTER; - } - - if ( item.m_mask & wxLIST_MASK_WIDTH ) - { - lvCol.mask |= LVCF_WIDTH; - lvCol.cx = item.m_width; - - if ( lvCol.cx == wxLIST_AUTOSIZE) - lvCol.cx = LVSCW_AUTOSIZE; - else if ( lvCol.cx == wxLIST_AUTOSIZE_USEHEADER) - lvCol.cx = LVSCW_AUTOSIZE_USEHEADER; - } - lvCol.mask |= LVCF_SUBITEM; - lvCol.iSubItem = col; - return (ListView_SetColumn((HWND) GetHWND(), col, & lvCol) != 0); -} - -// Gets the column width -int wxListCtrl::GetColumnWidth(int col) const -{ - return ListView_GetColumnWidth((HWND) GetHWND(), col); -} - -// Sets the column width -bool wxListCtrl::SetColumnWidth(int col, int width) -{ - int col2 = col; - if ( m_windowStyle & wxLC_LIST ) - col2 = -1; - - int width2 = width; - if ( width2 == wxLIST_AUTOSIZE) - width2 = LVSCW_AUTOSIZE; - else if ( width2 == wxLIST_AUTOSIZE_USEHEADER) - width2 = LVSCW_AUTOSIZE_USEHEADER; - - return (ListView_SetColumnWidth((HWND) GetHWND(), col2, width2) != 0); -} - -// 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) -int wxListCtrl::GetCountPerPage(void) const -{ - return ListView_GetCountPerPage((HWND) GetHWND()); -} - -// Gets the edit control for editing labels. -wxTextCtrl* wxListCtrl::GetEditControl(void) const -{ - return m_textCtrl; -} - -// Gets information about the item -bool wxListCtrl::GetItem(wxListItem& info) const -{ - LV_ITEM lvItem; -#ifdef __GNUWIN32__ - memset(&lvItem, 0, sizeof(lvItem)); -#else - ZeroMemory(&lvItem, sizeof(lvItem)); // must set all fields to 0 -#endif - - lvItem.iItem = info.m_itemId; - lvItem.iSubItem = info.m_col; - - if ( info.m_mask & wxLIST_MASK_TEXT ) - { - lvItem.mask |= LVIF_TEXT; - lvItem.pszText = new char[513]; - lvItem.cchTextMax = 512; - } - else - { - lvItem.pszText = NULL; - } - - if (info.m_mask & wxLIST_MASK_DATA) - lvItem.mask |= LVIF_PARAM ; - - if ( info.m_mask & wxLIST_MASK_STATE ) - { - lvItem.mask |= LVIF_STATE; - // the other bits are hardly interesting anyhow - lvItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED; - } - - bool success = ListView_GetItem((HWND)GetHWND(), &lvItem) != 0; - if ( !success ) - { - wxLogError(_("Couldn't retrieve information about list control item %d."), - lvItem.iItem); - } - else - { - wxConvertFromMSWListItem(this, info, lvItem); - } - - if (lvItem.pszText) - delete[] lvItem.pszText; - - return success; -} - -// Sets information about the item -bool wxListCtrl::SetItem(wxListItem& info) -{ - LV_ITEM item; - wxConvertToMSWListItem(this, info, item); - item.cchTextMax = 0; - return (ListView_SetItem((HWND) GetHWND(), &item) != 0); -} - -long wxListCtrl::SetItem(long index, int col, const wxString& label, int imageId) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - info.m_col = col; - if ( imageId > -1 ) - { - info.m_image = imageId; - info.m_mask |= wxLIST_MASK_IMAGE; - } - return SetItem(info); -} - - -// Gets the item state -int wxListCtrl::GetItemState(long item, long stateMask) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -// Sets the item state -bool wxListCtrl::SetItemState(long item, long state, long stateMask) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -// Sets the item image -bool wxListCtrl::SetItemImage(long item, int image, int selImage) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_IMAGE ; - info.m_image = image; - info.m_itemId = item; - - return SetItem(info); -} - -// Gets the item text -wxString wxListCtrl::GetItemText(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -// Sets the item text -void wxListCtrl::SetItemText(long item, const wxString& str) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -// Gets the item data -long wxListCtrl::GetItemData(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -// Sets the item data -bool wxListCtrl::SetItemData(long item, long data) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -// Gets the item rectangle -bool wxListCtrl::GetItemRect(long item, wxRect& rect, int code) const -{ - RECT rect2; - - int code2 = LVIR_BOUNDS; - if ( code == wxLIST_RECT_BOUNDS ) - code2 = LVIR_BOUNDS; - else if ( code == wxLIST_RECT_ICON ) - code2 = LVIR_ICON; - else if ( code == wxLIST_RECT_LABEL ) - code2 = LVIR_LABEL; - -#ifdef __WXWINE__ - bool success = (ListView_GetItemRect((HWND) GetHWND(), (int) item, &rect2 ) != 0); -#else - bool success = (ListView_GetItemRect((HWND) GetHWND(), (int) item, &rect2, code2) != 0); -#endif - - rect.x = rect2.left; - rect.y = rect2.top; - rect.width = rect2.right - rect2.left; - rect.height = rect2.bottom - rect2.left; - return success; -} - -// Gets the item position -bool wxListCtrl::GetItemPosition(long item, wxPoint& pos) const -{ - POINT pt; - - bool success = (ListView_GetItemPosition((HWND) GetHWND(), (int) item, &pt) != 0); - - pos.x = pt.x; pos.y = pt.y; - return success; -} - -// Sets the item position. -bool wxListCtrl::SetItemPosition(long item, const wxPoint& pos) -{ - return (ListView_SetItemPosition((HWND) GetHWND(), (int) item, pos.x, pos.y) != 0); -} - -// Gets the number of items in the list control -int wxListCtrl::GetItemCount(void) const -{ - return ListView_GetItemCount((HWND) GetHWND()); -} - -// Retrieves the spacing between icons in pixels. -// If small is TRUE, gets the spacing for the small icon -// view, otherwise the large icon view. -int wxListCtrl::GetItemSpacing(bool isSmall) const -{ - return ListView_GetItemSpacing((HWND) GetHWND(), (BOOL) isSmall); -} - -// Gets the number of selected items in the list control -int wxListCtrl::GetSelectedItemCount(void) const -{ - return ListView_GetSelectedCount((HWND) GetHWND()); -} - -// Gets the text colour of the listview -wxColour wxListCtrl::GetTextColour(void) const -{ - COLORREF ref = ListView_GetTextColor((HWND) GetHWND()); - wxColour col(GetRValue(ref), GetGValue(ref), GetBValue(ref)); - return col; -} - -// Sets the text colour of the listview -void wxListCtrl::SetTextColour(const wxColour& col) -{ - ListView_SetTextColor((HWND) GetHWND(), PALETTERGB(col.Red(), col.Blue(), col.Green())); -} - -// Gets the index of the topmost visible item when in -// list or report view -long wxListCtrl::GetTopItem(void) const -{ - return (long) ListView_GetTopIndex((HWND) GetHWND()); -} - -// Searches for an item, starting from 'item'. -// 'geometry' is one of -// wxLIST_NEXT_ABOVE/ALL/BELOW/LEFT/RIGHT. -// 'state' is a state bit flag, one or more of -// wxLIST_STATE_DROPHILITED/FOCUSED/SELECTED/CUT. -// item can be -1 to find the first item that matches the -// specified flags. -// Returns the item or -1 if unsuccessful. -long wxListCtrl::GetNextItem(long item, int geom, int state) const -{ - long flags = 0; - - if ( geom == wxLIST_NEXT_ABOVE ) - flags |= LVNI_ABOVE; - if ( geom == wxLIST_NEXT_ALL ) - flags |= LVNI_ALL; - if ( geom == wxLIST_NEXT_BELOW ) - flags |= LVNI_BELOW; - if ( geom == wxLIST_NEXT_LEFT ) - flags |= LVNI_TOLEFT; - if ( geom == wxLIST_NEXT_RIGHT ) - flags |= LVNI_TORIGHT; - - if ( state & wxLIST_STATE_CUT ) - flags |= LVNI_CUT; - if ( state & wxLIST_STATE_DROPHILITED ) - flags |= LVNI_DROPHILITED; - if ( state & wxLIST_STATE_FOCUSED ) - flags |= LVNI_FOCUSED; - if ( state & wxLIST_STATE_SELECTED ) - flags |= LVNI_SELECTED; - - return (long) ListView_GetNextItem((HWND) GetHWND(), item, flags); -} - - -wxImageList *wxListCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - return m_imageListSmall; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxListCtrl::SetImageList(wxImageList *imageList, int which) -{ - int flags = 0; - if ( which == wxIMAGE_LIST_NORMAL ) - { - flags = LVSIL_NORMAL; - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - flags = LVSIL_SMALL; - m_imageListSmall = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - flags = LVSIL_STATE; - m_imageListState = imageList; - } - ListView_SetImageList((HWND) GetHWND(), (HIMAGELIST) imageList ? imageList->GetHIMAGELIST() : 0, flags); -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Arranges the items -bool wxListCtrl::Arrange(int flag) -{ - UINT code = 0; - if ( flag == wxLIST_ALIGN_LEFT ) - code = LVA_ALIGNLEFT; - else if ( flag == wxLIST_ALIGN_TOP ) - code = LVA_ALIGNTOP; - else if ( flag == wxLIST_ALIGN_DEFAULT ) - code = LVA_DEFAULT; - else if ( flag == wxLIST_ALIGN_SNAP_TO_GRID ) - code = LVA_SNAPTOGRID; - - return (ListView_Arrange((HWND) GetHWND(), code) != 0); -} - -// Deletes an item -bool wxListCtrl::DeleteItem(long item) -{ - return (ListView_DeleteItem((HWND) GetHWND(), (int) item) != 0); -} - -// Deletes all items -bool wxListCtrl::DeleteAllItems() -{ - return (ListView_DeleteAllItems((HWND) GetHWND()) != 0); -} - -// Deletes all items -bool wxListCtrl::DeleteAllColumns() -{ - int i; - for ( i = 0; i < m_colCount; i++) - { - if (ListView_DeleteColumn((HWND) GetHWND(), 0) != 0) - m_colCount --; - } - return (m_colCount == 0); -} - -// Deletes a column -bool wxListCtrl::DeleteColumn(int col) -{ - bool success = (ListView_DeleteColumn((HWND) GetHWND(), col) != 0); - - if ( success && (m_colCount > 0) ) - m_colCount --; - return success; -} - -// Clears items, and columns if there are any. -void wxListCtrl::ClearAll() -{ - DeleteAllItems(); - if ( m_colCount > 0 ) - DeleteAllColumns(); -} - -wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - wxASSERT( (textControlClass->IsKindOf(CLASSINFO(wxTextCtrl))) ); - - HWND hWnd = (HWND) ListView_EditLabel((HWND) GetHWND(), item); - - if (m_textCtrl) - { - m_textCtrl->UnsubclassWin(); - m_textCtrl->SetHWND(0); - delete m_textCtrl; - m_textCtrl = NULL; - } - - m_textCtrl = (wxTextCtrl*) textControlClass->CreateObject(); - m_textCtrl->SetHWND((WXHWND) hWnd); - m_textCtrl->SubclassWin((WXHWND) hWnd); - - return m_textCtrl; -} - -// End label editing, optionally cancelling the edit -bool wxListCtrl::EndEditLabel(bool cancel) -{ - wxFAIL; - - /* I don't know how to implement this: there's no such macro as ListView_EndEditLabelNow. - * ??? - bool success = (ListView_EndEditLabelNow((HWND) GetHWND(), cancel) != 0); - - if (m_textCtrl) - { - m_textCtrl->UnsubclassWin(); - m_textCtrl->SetHWND(0); - delete m_textCtrl; - m_textCtrl = NULL; - } - return success; - */ - return FALSE; -} - - -// Ensures this item is visible -bool wxListCtrl::EnsureVisible(long item) -{ - return (ListView_EnsureVisible((HWND) GetHWND(), (int) item, FALSE) != 0); -} - -// Find an item whose label matches this string, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxString& str, bool partial) -{ - LV_FINDINFO findInfo; - - findInfo.flags = LVFI_STRING; - if ( partial ) - findInfo.flags |= LVFI_STRING; - findInfo.psz = WXSTRINGCAST str; - - return ListView_FindItem((HWND) GetHWND(), (int) start, & findInfo); -} - -// Find an item whose data matches this data, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, long data) -{ - LV_FINDINFO findInfo; - - findInfo.flags = LVFI_PARAM; - findInfo.lParam = data; - - return ListView_FindItem((HWND) GetHWND(), (int) start, & findInfo); -} - -// Find an item nearest this position in the specified direction, starting from -// the item after 'start' or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxPoint& pt, int direction) -{ - LV_FINDINFO findInfo; - - findInfo.flags = LVFI_NEARESTXY; - findInfo.pt.x = pt.x; - findInfo.pt.y = pt.y; - findInfo.vkDirection = VK_RIGHT; - - if ( direction == wxLIST_FIND_UP ) - findInfo.vkDirection = VK_UP; - else if ( direction == wxLIST_FIND_DOWN ) - findInfo.vkDirection = VK_DOWN; - else if ( direction == wxLIST_FIND_LEFT ) - findInfo.vkDirection = VK_LEFT; - else if ( direction == wxLIST_FIND_RIGHT ) - findInfo.vkDirection = VK_RIGHT; - - return ListView_FindItem((HWND) GetHWND(), (int) start, & findInfo); -} - -// Determines which item (if any) is at the specified point, -// giving details in 'flags' (see wxLIST_HITTEST_... flags above) -long wxListCtrl::HitTest(const wxPoint& point, int& flags) -{ - LV_HITTESTINFO hitTestInfo; - hitTestInfo.pt.x = (int) point.x; - hitTestInfo.pt.y = (int) point.y; - - ListView_HitTest((HWND) GetHWND(), & hitTestInfo); - - flags = 0; - if ( hitTestInfo.flags & LVHT_ABOVE ) - flags |= wxLIST_HITTEST_ABOVE; - if ( hitTestInfo.flags & LVHT_BELOW ) - flags |= wxLIST_HITTEST_BELOW; - if ( hitTestInfo.flags & LVHT_NOWHERE ) - flags |= wxLIST_HITTEST_NOWHERE; - if ( hitTestInfo.flags & LVHT_ONITEMICON ) - flags |= wxLIST_HITTEST_ONITEMICON; - if ( hitTestInfo.flags & LVHT_ONITEMLABEL ) - flags |= wxLIST_HITTEST_ONITEMLABEL; - if ( hitTestInfo.flags & LVHT_ONITEMSTATEICON ) - flags |= wxLIST_HITTEST_ONITEMSTATEICON; - if ( hitTestInfo.flags & LVHT_TOLEFT ) - flags |= wxLIST_HITTEST_TOLEFT; - if ( hitTestInfo.flags & LVHT_TORIGHT ) - flags |= wxLIST_HITTEST_TORIGHT; - - return (long) hitTestInfo.iItem ; -} - -// Inserts an item, returning the index of the new item if successful, -// -1 otherwise. -long wxListCtrl::InsertItem(wxListItem& info) -{ - LV_ITEM item; - wxConvertToMSWListItem(this, info, item); - - return (long) ListView_InsertItem((HWND) GetHWND(), & item); -} - -long wxListCtrl::InsertItem(long index, const wxString& label) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image item -long wxListCtrl::InsertItem(long index, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_mask = wxLIST_MASK_IMAGE; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image/string item -long wxListCtrl::InsertItem(long index, const wxString& label, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_text = label; - info.m_mask = wxLIST_MASK_IMAGE | wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// For list view mode (only), inserts a column. -long wxListCtrl::InsertColumn(long col, wxListItem& item) -{ - LV_COLUMN lvCol; - lvCol.mask = 0; - lvCol.fmt = 0; - lvCol.pszText = NULL; - - if ( item.m_mask & wxLIST_MASK_TEXT ) - { - lvCol.mask |= LVCF_TEXT; - lvCol.pszText = WXSTRINGCAST item.m_text; - lvCol.cchTextMax = 0; // Ignored - } - if ( item.m_mask & wxLIST_MASK_FORMAT ) - { - lvCol.mask |= LVCF_FMT; - - if ( item.m_format == wxLIST_FORMAT_LEFT ) - lvCol.fmt = LVCFMT_LEFT; - if ( item.m_format == wxLIST_FORMAT_RIGHT ) - lvCol.fmt = LVCFMT_RIGHT; - if ( item.m_format == wxLIST_FORMAT_CENTRE ) - lvCol.fmt = LVCFMT_CENTER; - } - - lvCol.mask |= LVCF_WIDTH; - if ( item.m_mask & wxLIST_MASK_WIDTH ) - { - if ( item.m_width == wxLIST_AUTOSIZE) - lvCol.cx = LVSCW_AUTOSIZE; - else if ( item.m_width == wxLIST_AUTOSIZE_USEHEADER) - lvCol.cx = LVSCW_AUTOSIZE_USEHEADER; - else - lvCol.cx = item.m_width; - } - else - { - // always give some width to the new column: this one is compatible - // with wxGTK - lvCol.cx = 80; - } - - lvCol.mask |= LVCF_SUBITEM; - lvCol.iSubItem = col; - - bool success = ListView_InsertColumn((HWND) GetHWND(), col, & lvCol) != -1; - if ( success ) - { - m_colCount++; - } - else - { - wxLogDebug("Failed to insert the column '%s' into listview!", - lvCol.pszText); - } - - return success; -} - -long wxListCtrl::InsertColumn(long col, const wxString& heading, int format, - int width) -{ - wxListItem item; - item.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_FORMAT; - item.m_text = heading; - if ( width > -1 ) - { - item.m_mask |= wxLIST_MASK_WIDTH; - item.m_width = width; - } - item.m_format = format; - - return InsertColumn(col, item); -} - -// Scrolls the list control. If in icon, small icon or report view mode, -// x specifies the number of pixels to scroll. If in list view mode, x -// specifies the number of columns to scroll. -// If in icon, small icon or list view mode, y specifies the number of pixels -// to scroll. If in report view mode, y specifies the number of lines to scroll. -bool wxListCtrl::ScrollList(int dx, int dy) -{ - return (ListView_Scroll((HWND) GetHWND(), dx, dy) != 0); -} - -// Sort items. - -// fn is a function which takes 3 long arguments: item1, item2, data. -// item1 is the long data associated with a first item (NOT the index). -// item2 is the long data associated with a second item (NOT the index). -// data is the same value as passed to SortItems. -// The return value is a negative number if the first item should precede the second -// item, a positive number of the second item should precede the first, -// or zero if the two items are equivalent. - -// data is arbitrary data to be passed to the sort function. -bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data) -{ - return (ListView_SortItems((HWND) GetHWND(), (PFNLVCOMPARE) fn, data) != 0); -} - -bool wxListCtrl::MSWCommand(WXUINT cmd, WXWORD id) -{ - if (cmd == EN_UPDATE) - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, id); - event.SetEventObject( this ); - ProcessCommand(event); - return TRUE; - } - else if (cmd == EN_KILLFOCUS) - { - wxCommandEvent event(wxEVT_KILL_FOCUS, id); - event.SetEventObject( this ); - ProcessCommand(event); - return TRUE; - } - else return FALSE; -} - -bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) -{ - wxListEvent event(wxEVT_NULL, m_windowId); - wxEventType eventType = wxEVT_NULL; - NMHDR *hdr1 = (NMHDR *) lParam; - switch ( hdr1->code ) - { - case LVN_BEGINRDRAG: - eventType = wxEVT_COMMAND_LIST_BEGIN_RDRAG; - // fall through - - case LVN_BEGINDRAG: - if ( eventType == wxEVT_NULL ) - { - eventType = wxEVT_COMMAND_LIST_BEGIN_DRAG; - } - - { - NM_LISTVIEW *hdr = (NM_LISTVIEW *)lParam; - event.m_itemIndex = hdr->iItem; - event.m_pointDrag.x = hdr->ptAction.x; - event.m_pointDrag.y = hdr->ptAction.y; - } - break; - - case LVN_BEGINLABELEDIT: - { - eventType = wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT; - LV_DISPINFO *info = (LV_DISPINFO *)lParam; - wxConvertFromMSWListItem(this, event.m_item, info->item, (HWND) GetHWND()); - break; - } - - case LVN_COLUMNCLICK: - { - eventType = wxEVT_COMMAND_LIST_COL_CLICK; - NM_LISTVIEW* hdr = (NM_LISTVIEW*)lParam; - event.m_itemIndex = -1; - event.m_col = hdr->iSubItem; - break; - } - case LVN_DELETEALLITEMS: - { - eventType = wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS; - // NM_LISTVIEW* hdr = (NM_LISTVIEW*)lParam; - event.m_itemIndex = -1; - break; - } - case LVN_DELETEITEM: - { - eventType = wxEVT_COMMAND_LIST_DELETE_ITEM; - NM_LISTVIEW* hdr = (NM_LISTVIEW*)lParam; - event.m_itemIndex = hdr->iItem; - break; - } - case LVN_ENDLABELEDIT: - { - eventType = wxEVT_COMMAND_LIST_END_LABEL_EDIT; - LV_DISPINFO *info = (LV_DISPINFO *)lParam; - wxConvertFromMSWListItem(this, event.m_item, info->item, (HWND) GetHWND()); - if ( info->item.pszText == NULL || info->item.iItem == -1 ) - event.m_cancelled = TRUE; - break; - } - case LVN_GETDISPINFO: - { - // return FALSE; - // TODO: some text buffering here, I think - // TODO: API for getting Windows to retrieve values - // on demand. - eventType = wxEVT_COMMAND_LIST_GET_INFO; - LV_DISPINFO *info = (LV_DISPINFO *)lParam; - wxConvertFromMSWListItem(this, event.m_item, info->item, (HWND) GetHWND()); - break; - } - case LVN_INSERTITEM: - { - eventType = wxEVT_COMMAND_LIST_INSERT_ITEM; - NM_LISTVIEW* hdr = (NM_LISTVIEW*)lParam; - event.m_itemIndex = hdr->iItem; - break; - } - case LVN_ITEMCHANGED: - { - // This needs to be sent to wxListCtrl as a rather more - // concrete event. For now, just detect a selection - // or deselection. - NM_LISTVIEW* hdr = (NM_LISTVIEW*)lParam; - if ( (hdr->uNewState & LVIS_SELECTED) && !(hdr->uOldState & LVIS_SELECTED) ) - { - eventType = wxEVT_COMMAND_LIST_ITEM_SELECTED; - event.m_itemIndex = hdr->iItem; - } - else if ( !(hdr->uNewState & LVIS_SELECTED) && (hdr->uOldState & LVIS_SELECTED) ) - { - eventType = wxEVT_COMMAND_LIST_ITEM_DESELECTED; - event.m_itemIndex = hdr->iItem; - } - else - return FALSE; - break; - } - case LVN_KEYDOWN: - { - eventType = wxEVT_COMMAND_LIST_KEY_DOWN; - LV_KEYDOWN *info = (LV_KEYDOWN *)lParam; - event.m_code = wxCharCodeMSWToWX(info->wVKey); - break; - } - case LVN_SETDISPINFO: - { - eventType = wxEVT_COMMAND_LIST_SET_INFO; - LV_DISPINFO *info = (LV_DISPINFO *)lParam; - wxConvertFromMSWListItem(this, event.m_item, info->item, (HWND) GetHWND()); - break; - } - - default : - return wxControl::MSWOnNotify(idCtrl, lParam, result); - } - - event.SetEventObject( this ); - event.SetEventType(eventType); - - if ( !GetEventHandler()->ProcessEvent(event) ) - return FALSE; - - if (hdr1->code == LVN_GETDISPINFO) - { - LV_DISPINFO *info = (LV_DISPINFO *)lParam; - if ( info->item.mask & LVIF_TEXT ) - { - if ( !event.m_item.m_text.IsNull() ) - { - info->item.pszText = AddPool(event.m_item.m_text); - info->item.cchTextMax = strlen(info->item.pszText) + 1; - } - } - // wxConvertToMSWListItem(this, event.m_item, info->item); - } - - *result = !event.IsAllowed(); - - return TRUE; -} - -char *wxListCtrl::AddPool(const wxString& str) -{ - // Remove the first element if 3 strings exist - if ( m_stringPool.Number() == 3 ) - { - wxNode *node = m_stringPool.First(); - delete[] (char *)node->Data(); - delete node; - } - wxNode *node = m_stringPool.Add((char *) (const char *)str); - return (char *)node->Data(); -} - -// List item structure -wxListItem::wxListItem() -{ - m_mask = 0; - m_itemId = 0; - m_col = 0; - m_state = 0; - m_stateMask = 0; - m_image = 0; - m_data = 0; - - m_format = wxLIST_FORMAT_CENTRE; - m_width = 0; -} - -static void wxConvertFromMSWListItem(const wxListCtrl *ctrl, wxListItem& info, LV_ITEM& lvItem, HWND getFullInfo) -{ - info.m_data = lvItem.lParam; - info.m_mask = 0; - info.m_state = 0; - info.m_stateMask = 0; - info.m_itemId = lvItem.iItem; - - long oldMask = lvItem.mask; - - bool needText = FALSE; - if (getFullInfo != 0) - { - if ( lvItem.mask & LVIF_TEXT ) - needText = FALSE; - else - needText = TRUE; - - if ( needText ) - { - lvItem.pszText = new char[513]; - lvItem.cchTextMax = 512; - } - // lvItem.mask |= TVIF_HANDLE | TVIF_STATE | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_CHILDREN | TVIF_PARAM ; - lvItem.mask |= LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM ; - ::SendMessage(getFullInfo, LVM_GETITEM, 0, (LPARAM)& lvItem) ; - } - - if ( lvItem.mask & LVIF_STATE ) - { - info.m_mask |= wxLIST_MASK_STATE; - - if ( lvItem.stateMask & LVIS_CUT) - { - info.m_stateMask |= wxLIST_STATE_CUT ; - if ( lvItem.state & LVIS_CUT ) - info.m_state |= wxLIST_STATE_CUT ; - } - if ( lvItem.stateMask & LVIS_DROPHILITED) - { - info.m_stateMask |= wxLIST_STATE_DROPHILITED ; - if ( lvItem.state & LVIS_DROPHILITED ) - info.m_state |= wxLIST_STATE_DROPHILITED ; - } - if ( lvItem.stateMask & LVIS_FOCUSED) - { - info.m_stateMask |= wxLIST_STATE_FOCUSED ; - if ( lvItem.state & LVIS_FOCUSED ) - info.m_state |= wxLIST_STATE_FOCUSED ; - } - if ( lvItem.stateMask & LVIS_SELECTED) - { - info.m_stateMask |= wxLIST_STATE_SELECTED ; - if ( lvItem.state & LVIS_SELECTED ) - info.m_state |= wxLIST_STATE_SELECTED ; - } - } - - if ( lvItem.mask & LVIF_TEXT ) - { - info.m_mask |= wxLIST_MASK_TEXT; - info.m_text = lvItem.pszText; - } - if ( lvItem.mask & LVIF_IMAGE ) - { - info.m_mask |= wxLIST_MASK_IMAGE; - info.m_image = lvItem.iImage; - } - if ( lvItem.mask & LVIF_PARAM ) - info.m_mask |= wxLIST_MASK_DATA; - if ( lvItem.mask & LVIF_DI_SETITEM ) - info.m_mask |= wxLIST_SET_ITEM; - info.m_col = lvItem.iSubItem; - - if (needText) - { - if (lvItem.pszText) - delete[] lvItem.pszText; - } - lvItem.mask = oldMask ; -} - -static void wxConvertToMSWListItem(const wxListCtrl *ctrl, wxListItem& info, LV_ITEM& lvItem) -{ - lvItem.iItem = (int) info.m_itemId ; - - lvItem.iImage = info.m_image ; - lvItem.lParam = info.m_data; - lvItem.stateMask = 0; - lvItem.state = 0; - lvItem.mask = 0; - lvItem.iSubItem = info.m_col; - - if (info.m_mask & wxLIST_MASK_STATE) - { - lvItem.mask |= LVIF_STATE ; - if (info.m_stateMask & wxLIST_STATE_CUT) - { - lvItem.stateMask |= LVIS_CUT ; - if (info.m_state & wxLIST_STATE_CUT) - lvItem.state |= LVIS_CUT; - } - if (info.m_stateMask & wxLIST_STATE_DROPHILITED) - { - lvItem.stateMask |= LVIS_DROPHILITED; - if (info.m_state & wxLIST_STATE_DROPHILITED) - lvItem.state |= LVIS_DROPHILITED; - } - if (info.m_stateMask & wxLIST_STATE_FOCUSED) - { - lvItem.stateMask |= LVIS_FOCUSED; - if (info.m_state & wxLIST_STATE_FOCUSED) - lvItem.state |= LVIS_FOCUSED; - } - if (info.m_stateMask & wxLIST_STATE_SELECTED) - { - lvItem.stateMask |= LVIS_SELECTED; - if (info.m_state & wxLIST_STATE_SELECTED) - lvItem.state |= LVIS_SELECTED; - } - } - - if (info.m_mask & wxLIST_MASK_TEXT) - { - lvItem.mask |= LVIF_TEXT ; - if ( ctrl->GetWindowStyleFlag() & wxLC_USER_TEXT ) - { - lvItem.pszText = LPSTR_TEXTCALLBACK; - } - else - { - lvItem.pszText = (char *) (const char *)info.m_text ; - if ( lvItem.pszText ) - lvItem.cchTextMax = info.m_text.Length(); - else - lvItem.cchTextMax = 0; - } - } - if (info.m_mask & wxLIST_MASK_IMAGE) - lvItem.mask |= LVIF_IMAGE ; - if (info.m_mask & wxLIST_MASK_DATA) - lvItem.mask |= LVIF_PARAM ; -} - -// List event -IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxNotifyEvent) - -wxListEvent::wxListEvent(wxEventType commandType, int id) -: wxNotifyEvent(commandType, id) -{ - m_code = 0; - m_itemIndex = 0; - m_col = 0; - m_cancelled = FALSE; -} - -#endif - diff --git a/src/msw/main.cpp b/src/msw/main.cpp deleted file mode 100644 index 3565e7fa23..0000000000 --- a/src/msw/main.cpp +++ /dev/null @@ -1,102 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Main/DllMain -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/event.h" -#include "wx/app.h" -#include - -// May wish not to have a DllMain or WinMain, e.g. if we're programming -// a Netscape plugin. -#ifndef NOMAIN - -// NT defines APIENTRY, 3.x not -#if !defined(APIENTRY) -#define APIENTRY FAR PASCAL -#endif - -///////////////////////////////////////////////////////////////////////////////// -// WinMain -// Note that WinMain is also defined in dummy.obj, which is linked to -// an application that is using the DLL version of wxWindows. - -#if !defined(_WINDLL) - -#if defined(__TWIN32__) || defined(__WXWINE__) - -extern "C" -BOOL PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) - -#else - -#ifdef __WATCOMC__ -int PASCAL -#else -int APIENTRY -#endif - - WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) -#endif -// __TWIN32__ - -{ - return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance, lpCmdLine, nCmdShow); -} -#endif - -///////////////////////////////////////////////////////////////////////////////// -// DllMain - -#if defined(_WINDLL) - -// DLL entry point - -extern "C" -#ifdef __BORLANDC__ -// SCD: I don't know why, but also OWL uses this function -BOOL WINAPI DllEntryPoint (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved) -#else -BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved) -#endif -{ - switch (fdwReason) - { - case DLL_PROCESS_ATTACH: - // Only call wxEntry if the application itself is part of the DLL. - // If only the wxWindows library is in the DLL, then the initialisation - // will be called when the application implicitly calls WinMain. - -#if !defined(WXMAKINGDLL) - return wxEntry((WXHINSTANCE) hModule); -#endif - break; - - case DLL_PROCESS_DETACH: - default: - break; - } - return TRUE; -} - -#endif - -#endif - diff --git a/src/msw/makefile.b32 b/src/msw/makefile.b32 deleted file mode 100644 index fad700852b..0000000000 --- a/src/msw/makefile.b32 +++ /dev/null @@ -1,765 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for MS Windows, -# and Borland C++ (32-bit). - -!if "$(BCCDIR)" == "" -!error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4 -!endif - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -# Set all these to 1 if you want to build a dynamic library -!if "$(DLL)" == "1" -WXMAKINGDLL=1 -WXBUILDDLL=1 -!endif - -!include $(WXDIR)\src\makeb32.env - -# Please set these according to the settings in wx_setup.h, so we can include -# the appropriate libraries in wx.lib -USE_CTL3D=0 -USE_XPM_IN_MSW=0 - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -!if "$(USE_CTL3D)" == "1" -#Use WIN32S/WIN95 32 bit version ctl3d32.dll under win95 (Andre Beltman) -PERIPH_LIBS=$(WXDIR)\lib\ctl3d32.lib $(PERIPH_LIBS) -PERIPH_TARGET=ctl3d $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_ctl3d $(PERIPH_CLEAN_TARGET) -!endif - -!if "$(USE_XPM_IN_MSW)" == "1" -PERIPH_LIBS=$(WXLIB)\xpm.lib $(PERIPH_LIBS) -PERIPH_TARGET=xpm $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET) -!endif - -#PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\jpeg.lib $(PERIPH_LIBS) -PERIPH_LIBS= -PERIPH_TARGET=zlib png jpeg $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_zlib clean_png clean_jpeg $(PERIPH_CLEAN_TARGET) - -!if "$(DLL)" == "0" -DUMMY=dummy -!else -DUMMY=dummydll -LIBS= cw32 import32 ole2w32 -!endif - -LIBTARGET=$(WXLIB) - -GENDIR=..\generic -COMMDIR=..\common -OLEDIR=.\ole -MSWDIR=. - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(MSWDIR)\choicdgg.obj \ - $(MSWDIR)\gridg.obj \ - $(MSWDIR)\laywin.obj \ - $(MSWDIR)\panelg.obj \ - $(MSWDIR)\progdlgg.obj \ - $(MSWDIR)\prop.obj \ - $(MSWDIR)\proplist.obj \ - $(MSWDIR)\propform.obj \ - $(MSWDIR)\sashwin.obj \ - $(MSWDIR)\scrolwin.obj \ - $(MSWDIR)\splitter.obj \ - $(MSWDIR)\statusbr.obj \ - $(MSWDIR)\tabg.obj \ - $(MSWDIR)\textdlgg.obj \ - -# Not needed: -# $(MSWDIR)\colrdlgg.obj \ -# $(MSWDIR)\fontdlgg.obj \ -# $(MSWDIR)\helpxlp.obj \ -# $(MSWDIR)\msgdlgg.obj \ -# $(MSWDIR)\printps.obj \ -# $(MSWDIR)\prntdlgg.obj \ -# $(MSWDIR)\listctrl.obj \ -# $(MSWDIR)\notebook.obj \ -# $(MSWDIR)\treectrl.obj - -COMMONOBJS = \ - $(MSWDIR)\config.obj \ - $(MSWDIR)\cmndata.obj \ - $(MSWDIR)\dcbase.obj \ - $(MSWDIR)\docview.obj \ - $(MSWDIR)\docmdi.obj \ - $(MSWDIR)\dynarray.obj \ - $(MSWDIR)\event.obj \ - $(MSWDIR)\file.obj \ - $(MSWDIR)\fileconf.obj \ - $(MSWDIR)\filefn.obj \ - $(MSWDIR)\framecmn.obj \ - $(MSWDIR)\gdicmn.obj \ - $(MSWDIR)\helpbase.obj \ - $(MSWDIR)\image.obj \ - $(MSWDIR)\imagpng.obj \ - $(MSWDIR)\imagjpeg.obj \ - $(MSWDIR)\imaggif.obj \ - $(MSWDIR)\intl.obj \ - $(MSWDIR)\ipcbase.obj \ - $(MSWDIR)\log.obj \ - $(MSWDIR)\layout.obj \ - $(MSWDIR)\memory.obj \ - $(MSWDIR)\mimetype.obj \ - $(MSWDIR)\module.obj \ - $(MSWDIR)\object.obj \ - $(MSWDIR)\prntbase.obj \ - $(MSWDIR)\resource.obj \ - $(MSWDIR)\tbarbase.obj \ - $(MSWDIR)\tbarsmpl.obj \ - $(MSWDIR)\textfile.obj \ - $(MSWDIR)\timercmn.obj \ - $(MSWDIR)\utilscmn.obj \ - $(MSWDIR)\validate.obj \ - $(MSWDIR)\valgen.obj \ - $(MSWDIR)\valtext.obj \ - $(MSWDIR)\variant.obj \ - $(MSWDIR)\date.obj \ - $(MSWDIR)\hash.obj \ - $(MSWDIR)\list.obj \ - $(MSWDIR)\paper.obj \ - $(MSWDIR)\string.obj \ - $(MSWDIR)\time.obj \ - $(MSWDIR)\wxexpr.obj \ - $(MSWDIR)\y_tab.obj \ - $(MSWDIR)\stream.obj \ - $(MSWDIR)\wfstream.obj \ - $(MSWDIR)\mstream.obj \ - $(MSWDIR)\zstream.obj \ - $(MSWDIR)\datstrm.obj \ - $(MSWDIR)\sckstrm.obj \ - $(MSWDIR)\extended.obj \ - $(MSWDIR)\wincmn.obj \ - $(MSWDIR)\objstrm.obj \ - $(MSWDIR)\dynlib.obj \ - $(MSWDIR)\tokenzr.obj \ - $(MSWDIR)\socket.obj \ - $(MSWDIR)\sckint.obj \ - $(MSWDIR)\sckaddr.obj \ - $(MSWDIR)\protocol.obj \ - $(MSWDIR)\url.obj \ - $(MSWDIR)\http.obj \ - $(MSWDIR)\ftp.obj \ - $(MSWDIR)\sckfile.obj \ - $(MSWDIR)\sckipc.obj \ - $(MSWDIR)\wxchar.obj - -# $(MSWDIR)\odbc.obj \ -# $(MSWDIR)\matrix.obj \ - -MSWOBJS = \ - $(MSWDIR)\accel.obj \ - $(MSWDIR)\app.obj \ - $(MSWDIR)\bitmap.obj \ - $(MSWDIR)\bmpbuttn.obj \ - $(MSWDIR)\brush.obj \ - $(MSWDIR)\button.obj \ - $(MSWDIR)\caret.obj \ - $(MSWDIR)\checkbox.obj \ - $(MSWDIR)\checklst.obj \ - $(MSWDIR)\choice.obj \ - $(MSWDIR)\clipbrd.obj \ - $(MSWDIR)\colordlg.obj \ - $(MSWDIR)\colour.obj \ - $(MSWDIR)\combobox.obj \ - $(MSWDIR)\control.obj \ - $(MSWDIR)\curico.obj \ - $(MSWDIR)\cursor.obj \ - $(MSWDIR)\data.obj \ - $(MSWDIR)\dc.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcclient.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dirdlg.obj \ - $(MSWDIR)\filedlg.obj \ - $(MSWDIR)\font.obj \ - $(MSWDIR)\fontdlg.obj \ - $(MSWDIR)\frame.obj \ - $(MSWDIR)\gauge95.obj \ - $(MSWDIR)\gaugemsw.obj \ - $(MSWDIR)\gdiobj.obj \ - $(MSWDIR)\helpwin.obj \ - $(MSWDIR)\icon.obj \ - $(MSWDIR)\imaglist.obj \ - $(MSWDIR)\joystick.obj \ - $(MSWDIR)\listbox.obj \ - $(MSWDIR)\listctrl.obj \ - $(MSWDIR)\main.obj \ - $(MSWDIR)\mdi.obj \ - $(MSWDIR)\menu.obj \ - $(MSWDIR)\menuitem.obj \ - $(MSWDIR)\metafile.obj \ - $(MSWDIR)\minifram.obj \ - $(MSWDIR)\msgdlg.obj \ - $(MSWDIR)\nativdlg.obj \ - $(MSWDIR)\notebook.obj \ - $(MSWDIR)\ownerdrw.obj \ - $(MSWDIR)\palette.obj \ - $(MSWDIR)\pen.obj \ - $(MSWDIR)\penwin.obj \ - $(MSWDIR)\pnghand.obj \ - $(MSWDIR)\printdlg.obj \ - $(MSWDIR)\printwin.obj \ - $(MSWDIR)\radiobox.obj \ - $(MSWDIR)\radiobut.obj \ - $(MSWDIR)\region.obj \ - $(MSWDIR)\registry.obj \ - $(MSWDIR)\regconf.obj \ - $(MSWDIR)\scrolbar.obj \ - $(MSWDIR)\settings.obj \ - $(MSWDIR)\slidrmsw.obj \ - $(MSWDIR)\slider95.obj \ - $(MSWDIR)\spinbutt.obj \ - $(MSWDIR)\statbmp.obj \ - $(MSWDIR)\statbox.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\statbr95.obj \ - $(MSWDIR)\tabctrl.obj \ - $(MSWDIR)\tbarmsw.obj \ - $(MSWDIR)\textctrl.obj \ - $(MSWDIR)\thread.obj \ - $(MSWDIR)\timer.obj \ - $(MSWDIR)\tooltip.obj \ - $(MSWDIR)\treectrl.obj \ - $(MSWDIR)\taskbar.obj \ - $(MSWDIR)\tbar95.obj \ - $(MSWDIR)\utils.obj \ - $(MSWDIR)\utilsexc.obj \ - $(MSWDIR)\wave.obj \ - $(MSWDIR)\window.obj \ - $(MSWDIR)\xpmhand.obj \ - $(MSWDIR)\droptgt.obj \ - $(MSWDIR)\dropsrc.obj \ - $(MSWDIR)\oleutils.obj \ - $(MSWDIR)\dataobj.obj \ - $(MSWDIR)\uuid.obj - -# Unfortunately this causes a crash when the oleauto sample starts. -# $(MSWDIR)\automtn.obj - -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) - -default: wx - -wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET) - -all: all_libs all_execs - -!if "$(DLL)" == "0" - -$(LIBTARGET): $(DUMMY).obj $(OBJECTS) - -erase $(LIBTARGET) - tlib $(LIBTARGET) /P512 @&&! -+$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +) -! - -!else - -$(LIBTARGET): $(DUMMY).obj $(OBJECTS) - -erase $(LIBTARGET) - -erase $(WXLIBDIR)\wx.dll - tlink32 $(LINK_FLAGS) /v @&&! -c0d32.obj $(OBJECTS) -$(WXLIBDIR)\wx -nul -$(PERIPH_LIBS) $(LIBS) -wxb32 -! - implib -c $(LIBTARGET) $(WXLIBDIR)\wx.dll - -!endif - -dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h -dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h - -$(MSWDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c - -# cl @<< -#$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ -#<< - -$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -#$(OBJECTS): $(WXDIR)\include\wx\setup.h - -$(MSWDIR)\accel.obj: $(MSWDIR)\accel.$(SRCSUFF) - -$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF) - -$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF) - -$(MSWDIR)\bmpbuttn.obj: $(MSWDIR)\bmpbuttn.$(SRCSUFF) - -$(MSWDIR)\brush.obj: $(MSWDIR)\brush.$(SRCSUFF) - -$(MSWDIR)\button.obj: $(MSWDIR)\button.$(SRCSUFF) - -$(MSWDIR)\caret.obj: $(MSWDIR)\caret.$(SRCSUFF) - -$(MSWDIR)\checkbox.obj: $(MSWDIR)\checkbox.$(SRCSUFF) - -$(MSWDIR)\checklst.obj: $(MSWDIR)\checklst.$(SRCSUFF) - -$(MSWDIR)\choice.obj: $(MSWDIR)\choice.$(SRCSUFF) - -$(MSWDIR)\clipbrd.obj: $(MSWDIR)\clipbrd.$(SRCSUFF) - -$(MSWDIR)\colordlg.obj: $(MSWDIR)\colordlg.$(SRCSUFF) - -$(MSWDIR)\colour.obj: $(MSWDIR)\colour.$(SRCSUFF) - -$(MSWDIR)\combobox.obj: $(MSWDIR)\combobox.$(SRCSUFF) - -$(MSWDIR)\control.obj: $(MSWDIR)\control.$(SRCSUFF) - -$(MSWDIR)\curico.obj: $(MSWDIR)\curico.$(SRCSUFF) - -$(MSWDIR)\cursor.obj: $(MSWDIR)\cursor.$(SRCSUFF) - -$(MSWDIR)\data.obj: $(MSWDIR)\data.$(SRCSUFF) - -$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF) - -$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF) - -$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF) - -$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF) - -$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF) - -$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF) - -$(MSWDIR)\dialog.obj: $(MSWDIR)\dialog.$(SRCSUFF) - -$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF) - -$(MSWDIR)\dirdlg.obj: $(MSWDIR)\dirdlg.$(SRCSUFF) - -$(MSWDIR)\filedlg.obj: $(MSWDIR)\filedlg.$(SRCSUFF) - -$(MSWDIR)\font.obj: $(MSWDIR)\font.$(SRCSUFF) - -$(MSWDIR)\fontdlg.obj: $(MSWDIR)\fontdlg.$(SRCSUFF) - -$(MSWDIR)\frame.obj: $(MSWDIR)\frame.$(SRCSUFF) - -$(MSWDIR)\gaugemsw.obj: $(MSWDIR)\gaugemsw.$(SRCSUFF) - -$(MSWDIR)\gauge95.obj: $(MSWDIR)\gauge95.$(SRCSUFF) - -$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF) - -$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF) - -$(MSWDIR)\imaglist.obj: $(MSWDIR)\imaglist.$(SRCSUFF) - -$(MSWDIR)\joystick.obj: $(MSWDIR)\joystick.$(SRCSUFF) - -$(MSWDIR)\listbox.obj: $(MSWDIR)\listbox.$(SRCSUFF) - -$(MSWDIR)\listctrl.obj: $(MSWDIR)\listctrl.$(SRCSUFF) - -$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF) - -$(MSWDIR)\mdi.obj: $(MSWDIR)\mdi.$(SRCSUFF) - -$(MSWDIR)\menu.obj: $(MSWDIR)\menu.$(SRCSUFF) - -$(MSWDIR)\menuitem.obj: $(MSWDIR)\menu.$(SRCSUFF) - -$(MSWDIR)\metafile.obj: $(MSWDIR)\metafile.$(SRCSUFF) - -$(MSWDIR)\minifram.obj: $(MSWDIR)\minifram.$(SRCSUFF) - -$(MSWDIR)\msgdlg.obj: $(MSWDIR)\msgdlg.$(SRCSUFF) - -$(MSWDIR)\nativdlg.obj: $(MSWDIR)\nativdlg.$(SRCSUFF) - -$(MSWDIR)\notebook.obj: $(MSWDIR)\notebook.$(SRCSUFF) - -$(MSWDIR)\ownerdrw.obj: $(MSWDIR)\ownerdrw.$(SRCSUFF) - -$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF) - -$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF) - -$(MSWDIR)\penwin.obj: $(MSWDIR)\penwin.$(SRCSUFF) - -$(MSWDIR)\printdlg.obj: $(MSWDIR)\printdlg.$(SRCSUFF) - -$(MSWDIR)\printwin.obj: $(MSWDIR)\printwin.$(SRCSUFF) - -$(MSWDIR)\radiobox.obj: $(MSWDIR)\radiobox.$(SRCSUFF) - -$(MSWDIR)\radiobut.obj: $(MSWDIR)\radiobut.$(SRCSUFF) - -$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF) - -$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF) - -$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF) - -$(MSWDIR)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF) - -$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF) - -$(MSWDIR)\slidrmsw.obj: $(MSWDIR)\slidrmsw.$(SRCSUFF) - -$(MSWDIR)\slider95.obj: $(MSWDIR)\slider95.$(SRCSUFF) - -$(MSWDIR)\spinbutt.obj: $(MSWDIR)\spinbutt.$(SRCSUFF) - -$(MSWDIR)\statbmp.obj: $(MSWDIR)\statbmp.$(SRCSUFF) - -$(MSWDIR)\statbox.obj: $(MSWDIR)\statbox.$(SRCSUFF) - -$(MSWDIR)\statbr95.obj: $(MSWDIR)\statbr95.$(SRCSUFF) - -$(MSWDIR)\stattext.obj: $(MSWDIR)\stattext.$(SRCSUFF) - -$(MSWDIR)\tabctrl.obj: $(MSWDIR)\tabctrl.$(SRCSUFF) - -$(MSWDIR)\taskbar.obj: $(MSWDIR)\taskbar.$(SRCSUFF) - -$(MSWDIR)\tbar95.obj: $(MSWDIR)\tbar95.$(SRCSUFF) - -$(MSWDIR)\tbarmsw.obj: $(MSWDIR)\tbarmsw.$(SRCSUFF) - -$(MSWDIR)\textctrl.obj: $(MSWDIR)\textctrl.$(SRCSUFF) - -$(MSWDIR)\thread.obj: $(MSWDIR)\thread.$(SRCSUFF) - -$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF) - -$(MSWDIR)\tooltip.obj: $(MSWDIR)\tooltip.$(SRCSUFF) - -$(MSWDIR)\treectrl.obj: $(MSWDIR)\treectrl.$(SRCSUFF) - -$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF) - -$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF) - -$(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF) - -$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF) - -$(MSWDIR)\droptgt.obj: $(OLEDIR)\droptgt.$(SRCSUFF) - -$(MSWDIR)\dropsrc.obj: $(OLEDIR)\dropsrc.$(SRCSUFF) - -$(MSWDIR)\dataobj.obj: $(OLEDIR)\dataobj.$(SRCSUFF) - -$(MSWDIR)\oleutils.obj: $(OLEDIR)\oleutils.$(SRCSUFF) - -$(MSWDIR)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF) - -$(MSWDIR)\automtn.obj: $(OLEDIR)\automtn.$(SRCSUFF) - -######################################################## -# Common objects (always compiled) - -$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF) - -$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF) - -$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF) - -$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF) - -$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF) - -$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF) - -$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF) - -$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF) - -$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF) - -$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF) - -$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF) - -$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF) - -$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF) - -$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF) - -$(MSWDIR)\imagpng.obj: $(COMMDIR)\imagpng.$(SRCSUFF) - -$(MSWDIR)\imagjpeg.obj: $(COMMDIR)\imagjpeg.$(SRCSUFF) - -$(MSWDIR)\imaggif.obj: $(COMMDIR)\imaggif.$(SRCSUFF) - -$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF) - -$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF) - -$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF) - -$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF) - -$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF) - -$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF) - -$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF) - -$(MSWDIR)\mimetype.obj: $(COMMDIR)\mimetype.$(SRCSUFF) - -$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF) - -$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF) - -$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF) - -$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF) - -$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF) - -$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF) - -$(MSWDIR)\tbarsmpl.obj: $(COMMDIR)\tbarsmpl.$(SRCSUFF) - -$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF) - -$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF) - -$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF) - -$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF) - -$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF) - -$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF) - -$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF) - -$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF) - -$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF) - -$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF) - -$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF) - -$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF) - -$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF) - -$(MSWDIR)\matrix.obj: $(COMMDIR)\matrix.$(SRCSUFF) - -$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF) - -$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF) - -$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF) - -$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF) - -$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF) - -$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF) - -$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF) - -$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF) - -$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF) - -$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c - -$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF) - -$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF) - -$(MSWDIR)\sckint.obj: $(COMMDIR)\sckint.$(SRCSUFF) - -$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF) - -$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF) - -$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF) - -$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF) - -$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF) - -$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF) - -$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF) - -$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF) - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF) - -$(MSWDIR)\colrdlgg.obj: $(GENDIR)\colrdlgg.$(SRCSUFF) - -$(MSWDIR)\fontdlgg.obj: $(GENDIR)\fontdlgg.$(SRCSUFF) - -$(MSWDIR)\gridg.obj: $(GENDIR)\gridg.$(SRCSUFF) - -$(MSWDIR)\helpxlp.obj: $(GENDIR)\helpxlp.$(SRCSUFF) - -$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF) - -$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF) - -$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF) - -$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF) - -$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF) - -$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF) - -$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF) - -$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF) - -$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF) - -$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF) - -$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF) - -$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF) - -$(MSWDIR)\statusbr.obj: $(GENDIR)\statusbr.$(SRCSUFF) - -$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF) - -$(MSWDIR)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF) - -all_utils: - cd $(WXDIR)\utils - make -f makefile.b32 - cd $(WXDIR)\src\msw - -all_samples: - cd $(WXDIR)\samples - make -f makefile.b32 - cd $(WXDIR)\src\msw - -all_execs: - cd $(WXDIR)\utils - make -f makefile.b32 all_execs - cd $(WXDIR)\src\msw - -wxxpm: $(CFG) - cd $(WXDIR)\src\xpm - make -f makefile.b32 -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG) - cd $(WXDIR)\src\msw - -clean_wxxpm: $(CFG) - cd $(WXDIR)\src\xpm - make -f makefile.b32 clean - cd $(WXDIR)\src\msw - -png: $(CFG) - cd $(WXDIR)\src\png - make -f makefile.b32 - cd $(WXDIR)\src\msw - -clean_png: - cd $(WXDIR)\src\png - make -f makefile.b32 clean - cd $(WXDIR)\src\msw - -zlib: $(CFG) - cd $(WXDIR)\src\zlib - make -f makefile.b32 lib - cd $(WXDIR)\src\msw - -clean_zlib: - cd $(WXDIR)\src\zlib - make -f makefile.b32 clean - cd $(WXDIR)\src\msw - -jpeg: $(CFG) - cd $(WXDIR)\src\jpeg - make -f makefile.b32 - cd $(WXDIR)\src\msw - -clean_jpeg: - cd $(WXDIR)\src\jpeg - make -f makefile.b32 clean - cd $(WXDIR)\src\msw - -$(CFG): makefile.b32 - copy &&! --H=$(WXDIR)\src\msw\wx32.csm --3 --d --R- --X --w-par --w-aus --w-hid # virtual function A hides virtual function B --WE --tWM - --I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/jpeg;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm --I$(WXDIR)\include\wx\msw\gnuwin32 - --L$(BCCDIR)\lib --D__WXWIN__ --D__WXMSW__ --D__WINDOWS__ --DWIN32 -$(OPT) -$(DEBUG_FLAGS) -$(WIN95FLAG) -! $(CFG) - -#-I$(WXDIR)\src\common\wxxpm\libxpm.34b\lib -# -Oxt - -clean: $(PERIPH_CLEAN_TARGET) - -erase $(LIBTARGET) - -erase *.obj - -erase *.pch - -erase *.csm - -erase *.cfg - -erase ..\common\y_tab.c - -erase ..\common\lex_yy.c - -cleanall: clean - - diff --git a/src/msw/makefile.bcc b/src/msw/makefile.bcc deleted file mode 100644 index 30b77448a2..0000000000 --- a/src/msw/makefile.bcc +++ /dev/null @@ -1,754 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for Windows 3.1 -# and Borland C++ 3.1 - -!if "$(BCCDIR)" == "" -!error You must define the BCCDIR variable in autoexec.bat, e.g. BCCDIR=d:\bc4 -!endif - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -!if "$(CFG)" == "" -#!error You must start compiling from wx\src, not wx\src\msw. -!endif - -!ifndef DEBUG -DEBUG=0 -!endif - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makebcc.env - -THISDIR = $(WXDIR)\src\msw - -# Please set these according to the settings in wx_setup.h, so we can include -# the appropriate libraries in wx.lib -USE_CTL3D=1 -USE_XPM_IN_MSW=0 - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -!if "$(USE_CTL3D)" == "1" -PERIPH_LIBS=$(BCCDIR)\lib\ctl3dv2.lib $(PERIPH_LIBS) -!endif - -!if "$(USE_XPM_IN_MSW)" == "1" -PERIPH_LIBS=$(WXDIR)\xpm.lib $(PERIPH_LIBS) -PERIPH_TARGET=xpm $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET) -!endif - -# TODO: add these libraries -# PERIPH_LIBS=$(WXDIR)\lib\zlib.lib $(WXDIR)\lib\winpng.lib $(PERIPH_LIBS) -PERIPH_TARGET=zlib png $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_zlib clean_png $(PERIPH_CLEAN_TARGET) - -CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) - -LIBTARGET= $(WXLIBDIR)\wx.lib -DUMMY=dummy - -GENDIR=..\generic -COMMDIR=..\common -OLEDIR=.\ole -MSWDIR=. - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(MSWDIR)\choicdgg.obj \ - $(MSWDIR)\colrdlgg.obj \ - $(MSWDIR)\fontdlgg.obj \ - $(MSWDIR)\gridg.obj \ - $(MSWDIR)\imaglist.obj \ - $(MSWDIR)\helpxlp.obj \ - $(MSWDIR)\laywin.obj \ - $(MSWDIR)\listctrl.obj \ - $(MSWDIR)\notebook.obj \ - $(MSWDIR)\panelg.obj \ - $(MSWDIR)\progdlgg.obj \ - $(MSWDIR)\prop.obj \ - $(MSWDIR)\propform.obj \ - $(MSWDIR)\proplist.obj \ - $(MSWDIR)\sashwin.obj \ - $(MSWDIR)\scrolwin.obj \ - $(MSWDIR)\splitter.obj \ - $(MSWDIR)\statusbr.obj \ - $(MSWDIR)\tabg.obj \ - $(MSWDIR)\textdlgg.obj \ - $(MSWDIR)\treectrl.obj - -# $(MSWDIR)\msgdlgg.obj \ -# $(MSWDIR)\printps.obj \ -# $(MSWDIR)\prntdlgg.obj \ - -COMMONOBJS = \ - $(MSWDIR)\config.obj \ - $(MSWDIR)\cmndata.obj \ - $(MSWDIR)\dcbase.obj \ - $(MSWDIR)\docview.obj \ - $(MSWDIR)\docmdi.obj \ - $(MSWDIR)\dynarray.obj \ - $(MSWDIR)\event.obj \ - $(MSWDIR)\file.obj \ - $(MSWDIR)\fileconf.obj \ - $(MSWDIR)\filefn.obj \ - $(MSWDIR)\framecmn.obj \ - $(MSWDIR)\gdicmn.obj \ - $(MSWDIR)\helpbase.obj \ - $(MSWDIR)\image.obj \ - $(MSWDIR)\intl.obj \ - $(MSWDIR)\ipcbase.obj \ - $(MSWDIR)\log.obj \ - $(MSWDIR)\layout.obj \ - $(MSWDIR)\memory.obj \ - $(MSWDIR)\module.obj \ - $(MSWDIR)\object.obj \ - $(MSWDIR)\prntbase.obj \ - $(MSWDIR)\resource.obj \ - $(MSWDIR)\resourc2.obj \ - $(MSWDIR)\tbarbase.obj \ - $(MSWDIR)\tbarsmpl.obj \ - $(MSWDIR)\textfile.obj \ - $(MSWDIR)\timercmn.obj \ - $(MSWDIR)\utilscmn.obj \ - $(MSWDIR)\validate.obj \ - $(MSWDIR)\valgen.obj \ - $(MSWDIR)\valtext.obj \ - $(MSWDIR)\variant.obj \ - $(MSWDIR)\date.obj \ - $(MSWDIR)\hash.obj \ - $(MSWDIR)\list.obj \ - $(MSWDIR)\paper.obj \ - $(MSWDIR)\string.obj \ - $(MSWDIR)\time.obj \ - $(MSWDIR)\wxexpr.obj \ - $(MSWDIR)\y_tab.obj \ - $(MSWDIR)\stream.obj \ - $(MSWDIR)\wfstream.obj \ - $(MSWDIR)\mstream.obj \ - $(MSWDIR)\zstream.obj \ - $(MSWDIR)\datstrm.obj \ - $(MSWDIR)\sckstrm.obj \ - $(MSWDIR)\extended.obj \ - $(MSWDIR)\wincmn.obj \ - $(MSWDIR)\objstrm.obj \ - $(MSWDIR)\dynlib.obj \ - $(MSWDIR)\tokenzr.obj \ - $(MSWDIR)\wxchar.obj - -# Don't compile for WIN16 -# $(MSWDIR)\socket.obj \ -# $(MSWDIR)\sckaddr.obj \ -# $(MSWDIR)\protocol.obj \ -# $(MSWDIR)\url.obj \ -# $(MSWDIR)\http.obj \ -# $(MSWDIR)\ftp.obj \ -# $(MSWDIR)\sckfile.obj \ -# $(MSWDIR)\sckipc.obj \ - -# Needs extra files (sql*.h) so not compiled by default. -# $(MSWDIR)\odbc.obj \ - -# Uses WIN32 registry functions -# $(MSWDIR)\mimetype.obj \ - -MSWOBJS = \ - $(MSWDIR)\accel.obj \ - $(MSWDIR)\app.obj \ - $(MSWDIR)\bitmap.obj \ - $(MSWDIR)\bmpbuttn.obj \ - $(MSWDIR)\brush.obj \ - $(MSWDIR)\button.obj \ - $(MSWDIR)\checkbox.obj \ - $(MSWDIR)\checklst.obj \ - $(MSWDIR)\caret.obj \ - $(MSWDIR)\choice.obj \ - $(MSWDIR)\clipbrd.obj \ - $(MSWDIR)\colordlg.obj \ - $(MSWDIR)\colour.obj \ - $(MSWDIR)\combobox.obj \ - $(MSWDIR)\control.obj \ - $(MSWDIR)\curico.obj \ - $(MSWDIR)\cursor.obj \ - $(MSWDIR)\data.obj \ - $(MSWDIR)\dc.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcclient.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dirdlg.obj \ - $(MSWDIR)\filedlg.obj \ - $(MSWDIR)\font.obj \ - $(MSWDIR)\fontdlg.obj \ - $(MSWDIR)\frame.obj \ - $(MSWDIR)\gaugemsw.obj \ - $(MSWDIR)\gdiobj.obj \ - $(MSWDIR)\helpwin.obj \ - $(MSWDIR)\icon.obj \ - $(MSWDIR)\iniconf.obj \ - $(MSWDIR)\joystick.obj \ - $(MSWDIR)\listbox.obj \ - $(MSWDIR)\main.obj \ - $(MSWDIR)\mdi.obj \ - $(MSWDIR)\menu.obj \ - $(MSWDIR)\menuitem.obj \ - $(MSWDIR)\metafile.obj \ - $(MSWDIR)\minifram.obj \ - $(MSWDIR)\msgdlg.obj \ - $(MSWDIR)\nativdlg.obj \ - $(MSWDIR)\ownerdrw.obj \ - $(MSWDIR)\palette.obj \ - $(MSWDIR)\pen.obj \ - $(MSWDIR)\penwin.obj \ - $(MSWDIR)\pnghand.obj \ - $(MSWDIR)\printdlg.obj \ - $(MSWDIR)\printwin.obj \ - $(MSWDIR)\radiobox.obj \ - $(MSWDIR)\radiobut.obj \ - $(MSWDIR)\region.obj \ - $(MSWDIR)\scrolbar.obj \ - $(MSWDIR)\settings.obj \ - $(MSWDIR)\slidrmsw.obj \ - $(MSWDIR)\spinbutt.obj \ - $(MSWDIR)\statbmp.obj \ - $(MSWDIR)\statbox.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\tbarmsw.obj \ - $(MSWDIR)\textctrl.obj \ - $(MSWDIR)\timer.obj \ - $(MSWDIR)\utils.obj \ - $(MSWDIR)\utilsexc.obj \ - $(MSWDIR)\wave.obj \ - $(MSWDIR)\window.obj \ - $(MSWDIR)\xpmhand.obj - -# Unfortunately this causes a crash when the oleauto sample starts. -# $(MSWDIR)\automtn.obj - -# Not used for 16-bit compilation -# $(MSWDIR)\tooltip.obj \ -# $(MSWDIR)\gauge95.obj \ -# $(MSWDIR)\treectrl.obj \ -# $(MSWDIR)\oleutils.obj \ -# $(MSWDIR)\dataobj.obj \ -# $(MSWDIR)\uuid.obj -# $(MSWDIR)\droptgt.obj \ -# $(MSWDIR)\dropsrc.obj \ -# $(MSWDIR)\imaglist.obj \ -# $(MSWDIR)\notebook.obj \ -# $(MSWDIR)\listctrl.obj \ -# $(MSWDIR)\tabctrl.obj \ -# $(MSWDIR)\taskbar.obj \ -# $(MSWDIR)\tbar95.obj \ -# $(MSWDIR)\thread.obj \ -# $(MSWDIR)\slider95.obj \ -# $(MSWDIR)\statbr95.obj \ -# $(MSWDIR)\registry.obj \ -# $(MSWDIR)\regconf.obj \ - -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) - -default: wx - -wx: $(CFG) $(DUMMY).obj $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET) - -$(LIBTARGET): $(DUMMY).obj $(OBJECTS) $(PERIPH_LIBS) - erase $(LIBTARGET) - tlib $(LIBTARGET) /P1024 @&&! -+$(OBJECTS:.obj =.obj +) +$(PERIPH_LIBS:.lib =.lib +) -! - -dummy.obj: dummy.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h -dummydll.obj: dummydll.$(SRCSUFF) $(LOCALHEADERS) $(BASEHEADERS) $(WXDIR)\include\wx\wx.h - -$(MSWDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c - -# cl @<< -#$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ -#<< - -$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -#$(OBJECTS): $(WXDIR)\include\wx\setup.h - -$(MSWDIR)\accel.obj: $(MSWDIR)\accel.$(SRCSUFF) - -$(MSWDIR)\app.obj: $(MSWDIR)\app.$(SRCSUFF) - -$(MSWDIR)\bitmap.obj: $(MSWDIR)\bitmap.$(SRCSUFF) - -$(MSWDIR)\bmpbuttn.obj: $(MSWDIR)\bmpbuttn.$(SRCSUFF) - -$(MSWDIR)\brush.obj: $(MSWDIR)\brush.$(SRCSUFF) - -$(MSWDIR)\button.obj: $(MSWDIR)\button.$(SRCSUFF) - -$(MSWDIR)\caret.obj: $(MSWDIR)\caret.$(SRCSUFF) - -$(MSWDIR)\choice.obj: $(MSWDIR)\choice.$(SRCSUFF) - -$(MSWDIR)\checkbox.obj: $(MSWDIR)\checkbox.$(SRCSUFF) - -$(MSWDIR)\checklst.obj: $(MSWDIR)\checklst.$(SRCSUFF) - -$(MSWDIR)\clipbrd.obj: $(MSWDIR)\clipbrd.$(SRCSUFF) - -$(MSWDIR)\colordlg.obj: $(MSWDIR)\colordlg.$(SRCSUFF) - -$(MSWDIR)\colour.obj: $(MSWDIR)\colour.$(SRCSUFF) - -$(MSWDIR)\combobox.obj: $(MSWDIR)\combobox.$(SRCSUFF) - -$(MSWDIR)\control.obj: $(MSWDIR)\control.$(SRCSUFF) - -$(MSWDIR)\curico.obj: $(MSWDIR)\curico.$(SRCSUFF) - -$(MSWDIR)\cursor.obj: $(MSWDIR)\cursor.$(SRCSUFF) - -$(MSWDIR)\data.obj: $(MSWDIR)\data.$(SRCSUFF) - -$(MSWDIR)\dde.obj: $(MSWDIR)\dde.$(SRCSUFF) - -$(MSWDIR)\dc.obj: $(MSWDIR)\dc.$(SRCSUFF) - -$(MSWDIR)\dcmemory.obj: $(MSWDIR)\dcmemory.$(SRCSUFF) - -$(MSWDIR)\dcclient.obj: $(MSWDIR)\dcclient.$(SRCSUFF) - -$(MSWDIR)\dcprint.obj: $(MSWDIR)\dcprint.$(SRCSUFF) - -$(MSWDIR)\dcscreen.obj: $(MSWDIR)\dcscreen.$(SRCSUFF) - -$(MSWDIR)\dialog.obj: $(MSWDIR)\dialog.$(SRCSUFF) - -$(MSWDIR)\dib.obj: $(MSWDIR)\dib.$(SRCSUFF) - -$(MSWDIR)\dirdlg.obj: $(MSWDIR)\dirdlg.$(SRCSUFF) - -$(MSWDIR)\filedlg.obj: $(MSWDIR)\filedlg.$(SRCSUFF) - -$(MSWDIR)\font.obj: $(MSWDIR)\font.$(SRCSUFF) - -$(MSWDIR)\fontdlg.obj: $(MSWDIR)\fontdlg.$(SRCSUFF) - -$(MSWDIR)\frame.obj: $(MSWDIR)\frame.$(SRCSUFF) - -$(MSWDIR)\gaugemsw.obj: $(MSWDIR)\gaugemsw.$(SRCSUFF) - -$(MSWDIR)\gauge95.obj: $(MSWDIR)\gauge95.$(SRCSUFF) - -$(MSWDIR)\gdiobj.obj: $(MSWDIR)\gdiobj.$(SRCSUFF) - -$(MSWDIR)\icon.obj: $(MSWDIR)\icon.$(SRCSUFF) - -# $(MSWDIR)\imaglist.obj: $(MSWDIR)\imaglist.$(SRCSUFF) - -$(MSWDIR)\joystick.obj: $(MSWDIR)\joystick.$(SRCSUFF) - -$(MSWDIR)\listbox.obj: $(MSWDIR)\listbox.$(SRCSUFF) - -# $(MSWDIR)\listctrl.obj: $(MSWDIR)\listctrl.$(SRCSUFF) - -$(MSWDIR)\main.obj: $(MSWDIR)\main.$(SRCSUFF) - -$(MSWDIR)\mdi.obj: $(MSWDIR)\mdi.$(SRCSUFF) - -$(MSWDIR)\menu.obj: $(MSWDIR)\menu.$(SRCSUFF) - -$(MSWDIR)\menuitem.obj: $(MSWDIR)\menu.$(SRCSUFF) - -$(MSWDIR)\metafile.obj: $(MSWDIR)\metafile.$(SRCSUFF) - -$(MSWDIR)\minifram.obj: $(MSWDIR)\minifram.$(SRCSUFF) - -$(MSWDIR)\msgdlg.obj: $(MSWDIR)\msgdlg.$(SRCSUFF) - -$(MSWDIR)\nativdlg.obj: $(MSWDIR)\nativdlg.$(SRCSUFF) - -# $(MSWDIR)\notebook.obj: $(MSWDIR)\notebook.$(SRCSUFF) - -$(MSWDIR)\ownerdrw.obj: $(MSWDIR)\ownerdrw.$(SRCSUFF) - -$(MSWDIR)\palette.obj: $(MSWDIR)\palette.$(SRCSUFF) - -$(MSWDIR)\pen.obj: $(MSWDIR)\pen.$(SRCSUFF) - -$(MSWDIR)\penwin.obj: $(MSWDIR)\penwin.$(SRCSUFF) - -$(MSWDIR)\printdlg.obj: $(MSWDIR)\printdlg.$(SRCSUFF) - -$(MSWDIR)\printwin.obj: $(MSWDIR)\printwin.$(SRCSUFF) - -$(MSWDIR)\radiobox.obj: $(MSWDIR)\radiobox.$(SRCSUFF) - -$(MSWDIR)\radiobut.obj: $(MSWDIR)\radiobut.$(SRCSUFF) - -$(MSWDIR)\region.obj: $(MSWDIR)\region.$(SRCSUFF) - -$(MSWDIR)\registry.obj: $(MSWDIR)\registry.$(SRCSUFF) - -$(MSWDIR)\regconf.obj: $(MSWDIR)\regconf.$(SRCSUFF) - -$(MSWDIR)\scrolbar.obj: $(MSWDIR)\scrolbar.$(SRCSUFF) - -$(MSWDIR)\settings.obj: $(MSWDIR)\settings.$(SRCSUFF) - -$(MSWDIR)\slidrmsw.obj: $(MSWDIR)\slidrmsw.$(SRCSUFF) - -$(MSWDIR)\slider95.obj: $(MSWDIR)\slider95.$(SRCSUFF) - -$(MSWDIR)\spinbutt.obj: $(MSWDIR)\spinbutt.$(SRCSUFF) - -$(MSWDIR)\statbmp.obj: $(MSWDIR)\statbmp.$(SRCSUFF) - -$(MSWDIR)\statbox.obj: $(MSWDIR)\statbox.$(SRCSUFF) - -$(MSWDIR)\statbr95.obj: $(MSWDIR)\statbr95.$(SRCSUFF) - -$(MSWDIR)\stattext.obj: $(MSWDIR)\stattext.$(SRCSUFF) - -$(MSWDIR)\tabctrl.obj: $(MSWDIR)\tabctrl.$(SRCSUFF) - -$(MSWDIR)\taskbar.obj: $(MSWDIR)\taskbar.$(SRCSUFF) - -$(MSWDIR)\tbar95.obj: $(MSWDIR)\tbar95.$(SRCSUFF) - -$(MSWDIR)\tbarmsw.obj: $(MSWDIR)\tbarmsw.$(SRCSUFF) - -$(MSWDIR)\textctrl.obj: $(MSWDIR)\textctrl.$(SRCSUFF) - -$(MSWDIR)\thread.obj: $(MSWDIR)\thread.$(SRCSUFF) - -$(MSWDIR)\timer.obj: $(MSWDIR)\timer.$(SRCSUFF) - -$(MSWDIR)\tooltip.obj: $(MSWDIR)\tooltip.$(SRCSUFF) - -# $(MSWDIR)\treectrl.obj: $(MSWDIR)\treectrl.$(SRCSUFF) - -$(MSWDIR)\utils.obj: $(MSWDIR)\utils.$(SRCSUFF) - -$(MSWDIR)\utilsexc.obj: $(MSWDIR)\utilsexc.$(SRCSUFF) - -$(MSWDIR)\wave.obj: $(MSWDIR)\wave.$(SRCSUFF) - -$(MSWDIR)\window.obj: $(MSWDIR)\window.$(SRCSUFF) - -$(MSWDIR)\droptgt.obj: $(OLEDIR)\droptgt.$(SRCSUFF) - -$(MSWDIR)\dropsrc.obj: $(OLEDIR)\dropsrc.$(SRCSUFF) - -$(MSWDIR)\dataobj.obj: $(OLEDIR)\dataobj.$(SRCSUFF) - -$(MSWDIR)\oleutils.obj: $(OLEDIR)\oleutils.$(SRCSUFF) - -$(MSWDIR)\uuid.obj: $(OLEDIR)\uuid.$(SRCSUFF) - -$(MSWDIR)\automtn.obj: $(OLEDIR)\automtn.$(SRCSUFF) - -######################################################## -# Common objects (always compiled) - -$(MSWDIR)\config.obj: $(COMMDIR)\config.$(SRCSUFF) - -$(MSWDIR)\cmndata.obj: $(COMMDIR)\cmndata.$(SRCSUFF) - -$(MSWDIR)\dcbase.obj: $(COMMDIR)\dcbase.$(SRCSUFF) - -$(MSWDIR)\docview.obj: $(COMMDIR)\docview.$(SRCSUFF) - -$(MSWDIR)\docmdi.obj: $(COMMDIR)\docmdi.$(SRCSUFF) - -$(MSWDIR)\dynarray.obj: $(COMMDIR)\dynarray.$(SRCSUFF) - -$(MSWDIR)\dynlib.obj: $(COMMDIR)\dynlib.$(SRCSUFF) - -$(MSWDIR)\event.obj: $(COMMDIR)\event.$(SRCSUFF) - -$(MSWDIR)\file.obj: $(COMMDIR)\file.$(SRCSUFF) - -$(MSWDIR)\fileconf.obj: $(COMMDIR)\fileconf.$(SRCSUFF) - -$(MSWDIR)\filefn.obj: $(COMMDIR)\filefn.$(SRCSUFF) - -$(MSWDIR)\framecmn.obj: $(COMMDIR)\framecmn.$(SRCSUFF) - -$(MSWDIR)\gdicmn.obj: $(COMMDIR)\gdicmn.$(SRCSUFF) - -$(MSWDIR)\image.obj: $(COMMDIR)\image.$(SRCSUFF) - -$(MSWDIR)\intl.obj: $(COMMDIR)\intl.$(SRCSUFF) - -$(MSWDIR)\ipcbase.obj: $(COMMDIR)\ipcbase.$(SRCSUFF) - -$(MSWDIR)\helpbase.obj: $(COMMDIR)\helpbase.$(SRCSUFF) - -$(MSWDIR)\layout.obj: $(COMMDIR)\layout.$(SRCSUFF) - -$(MSWDIR)\log.obj: $(COMMDIR)\log.$(SRCSUFF) - -$(MSWDIR)\memory.obj: $(COMMDIR)\memory.$(SRCSUFF) - -$(MSWDIR)\mimetype.obj: $(COMMDIR)\mimetype.$(SRCSUFF) - -$(MSWDIR)\module.obj: $(COMMDIR)\module.$(SRCSUFF) - -$(MSWDIR)\object.obj: $(COMMDIR)\object.$(SRCSUFF) - -$(MSWDIR)\odbc.obj: $(COMMDIR)\odbc.$(SRCSUFF) - -$(MSWDIR)\prntbase.obj: $(COMMDIR)\prntbase.$(SRCSUFF) - -$(MSWDIR)\resource.obj: $(COMMDIR)\resource.$(SRCSUFF) - -$(MSWDIR)\resourc2.obj: $(COMMDIR)\resourc2.$(SRCSUFF) - -$(MSWDIR)\tbarbase.obj: $(COMMDIR)\tbarbase.$(SRCSUFF) - -$(MSWDIR)\tbarsmpl.obj: $(COMMDIR)\tbarsmpl.$(SRCSUFF) - -$(MSWDIR)\textfile.obj: $(COMMDIR)\textfile.$(SRCSUFF) - -$(MSWDIR)\timercmn.obj: $(COMMDIR)\timercmn.$(SRCSUFF) - -$(MSWDIR)\utilscmn.obj: $(COMMDIR)\utilscmn.$(SRCSUFF) - -$(MSWDIR)\validate.obj: $(COMMDIR)\validate.$(SRCSUFF) - -$(MSWDIR)\valgen.obj: $(COMMDIR)\valgen.$(SRCSUFF) - -$(MSWDIR)\valtext.obj: $(COMMDIR)\valtext.$(SRCSUFF) - -$(MSWDIR)\date.obj: $(COMMDIR)\date.$(SRCSUFF) - -$(MSWDIR)\wxexpr.obj: $(COMMDIR)\wxexpr.$(SRCSUFF) - -$(MSWDIR)\hash.obj: $(COMMDIR)\hash.$(SRCSUFF) - -$(MSWDIR)\list.obj: $(COMMDIR)\list.$(SRCSUFF) - -$(MSWDIR)\paper.obj: $(COMMDIR)\paper.$(SRCSUFF) - -$(MSWDIR)\string.obj: $(COMMDIR)\string.$(SRCSUFF) - -$(MSWDIR)\variant.obj: $(COMMDIR)\variant.$(SRCSUFF) - -$(MSWDIR)\matrix.obj: $(COMMDIR)\matrix.$(SRCSUFF) - -$(MSWDIR)\time.obj: $(COMMDIR)\time.$(SRCSUFF) - -$(MSWDIR)\datstrm.obj: $(COMMDIR)\datstrm.$(SRCSUFF) - -$(MSWDIR)\sckstrm.obj: $(COMMDIR)\sckstrm.$(SRCSUFF) - -$(MSWDIR)\mstream.obj: $(COMMDIR)\mstream.$(SRCSUFF) - -$(MSWDIR)\zstream.obj: $(COMMDIR)\zstream.$(SRCSUFF) - -$(MSWDIR)\wfstream.obj: $(COMMDIR)\wfstream.$(SRCSUFF) - -$(MSWDIR)\stream.obj: $(COMMDIR)\stream.$(SRCSUFF) - -$(MSWDIR)\objstrm.obj: $(COMMDIR)\objstrm.$(SRCSUFF) - -$(MSWDIR)\wincmn.obj: $(COMMDIR)\wincmn.$(SRCSUFF) - -$(MSWDIR)\extended.obj: $(COMMDIR)\extended.c - -$(MSWDIR)\tokenzr.obj: $(COMMDIR)\tokenzr.$(SRCSUFF) - -$(MSWDIR)\socket.obj: $(COMMDIR)\socket.$(SRCSUFF) - -$(MSWDIR)\sckaddr.obj: $(COMMDIR)\sckaddr.$(SRCSUFF) - -$(MSWDIR)\protocol.obj: $(COMMDIR)\protocol.$(SRCSUFF) - -$(MSWDIR)\url.obj: $(COMMDIR)\url.$(SRCSUFF) - -$(MSWDIR)\http.obj: $(COMMDIR)\http.$(SRCSUFF) - -$(MSWDIR)\ftp.obj: $(COMMDIR)\ftp.$(SRCSUFF) - -$(MSWDIR)\sckfile.obj: $(COMMDIR)\sckfile.$(SRCSUFF) - -$(MSWDIR)\sckipc.obj: $(COMMDIR)\sckipc.$(SRCSUFF) - -$(MSWDIR)\wxchar.obj: $(COMMDIR)\wxchar.$(SRCSUFF) - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(MSWDIR)\choicdgg.obj: $(GENDIR)\choicdgg.$(SRCSUFF) - -$(MSWDIR)\colrdlgg.obj: $(GENDIR)\colrdlgg.$(SRCSUFF) - -$(MSWDIR)\fontdlgg.obj: $(GENDIR)\fontdlgg.$(SRCSUFF) - -$(MSWDIR)\gridg.obj: $(GENDIR)\gridg.$(SRCSUFF) - -$(MSWDIR)\helpxlp.obj: $(GENDIR)\helpxlp.$(SRCSUFF) - -$(MSWDIR)\laywin.obj: $(GENDIR)\laywin.$(SRCSUFF) - -$(MSWDIR)\msgdlgg.obj: $(GENDIR)\msgdlgg.$(SRCSUFF) - -$(MSWDIR)\panelg.obj: $(GENDIR)\panelg.$(SRCSUFF) - -$(MSWDIR)\printps.obj: $(GENDIR)\printps.$(SRCSUFF) - -$(MSWDIR)\prntdlgg.obj: $(GENDIR)\prntdlgg.$(SRCSUFF) - -$(MSWDIR)\progdlgg.obj: $(GENDIR)\progdlgg.$(SRCSUFF) - -$(MSWDIR)\prop.obj: $(GENDIR)\prop.$(SRCSUFF) - -$(MSWDIR)\proplist.obj: $(GENDIR)\proplist.$(SRCSUFF) - -$(MSWDIR)\propform.obj: $(GENDIR)\propform.$(SRCSUFF) - -$(MSWDIR)\sashwin.obj: $(GENDIR)\sashwin.$(SRCSUFF) - -$(MSWDIR)\scrolwin.obj: $(GENDIR)\scrolwin.$(SRCSUFF) - -$(MSWDIR)\splitter.obj: $(GENDIR)\splitter.$(SRCSUFF) - -$(MSWDIR)\statusbr.obj: $(GENDIR)\statusbr.$(SRCSUFF) - -$(MSWDIR)\textdlgg.obj: $(GENDIR)\textdlgg.$(SRCSUFF) - -$(MSWDIR)\tabg.obj: $(GENDIR)\tabg.$(SRCSUFF) - -$(MSWDIR)\treectrl.obj: $(GENDIR)\treectrl.$(SRCSUFF) - -$(MSWDIR)\listctrl.obj: $(GENDIR)\listctrl.$(SRCSUFF) - -$(MSWDIR)\imaglist.obj: $(GENDIR)\imaglist.$(SRCSUFF) - -$(MSWDIR)\notebook.obj: $(GENDIR)\notebook.$(SRCSUFF) - -all_utils: - cd $(WXDIR)\utils - make -f makefile.bcc - cd $(WXDIR)\src\msw - -all_samples: - cd $(WXDIR)\samples - make -f makefile.bcc - cd $(WXDIR)\src\msw - -all_execs: - cd $(WXDIR)\utils - make -f makefile.bcc all_execs - cd $(WXDIR)\src\msw - -all_libs: - cd $(WXDIR)\src\msw - make -f makefile.bcc ctl3d dib fafa gauge hytext itsy prologio rcparser wx wxgraph\ - wxstring wxtree mfutils # wxxpm - -all_contribs: - cd $(WXDIR)\src\msw - make -f makefile.bcc ctl3d fafa wxstring itsy gauge # wxxpm - -# CONTRIB -ctl3d: $(CFG) - cd $(WXDIR)\src\msw\ctl3d\borland - make -f makefile.bcc -DCFG=$(CFG) - cd $(WXDIR)\src\msw - -wxxpm: $(CFG) - cd $(WXDIR)\src\xpm - make -f makefile.bcc -DCFG=$(CFG) -DFINAL=$(FINAL) -DWXWIN=$(WXDIR) -DDEBUG=$(DEBUG) - cd $(WXDIR)\src\msw - -png: $(CFG) - cd $(WXDIR)\src\png - make -f makefile.bcc - cd $(WXDIR)\src\msw - -clean_png: - cd $(WXDIR)\src\png - make -f makefile.bcc clean - cd $(WXDIR)\src\msw - -zlib: $(CFG) - cd $(WXDIR)\src\zlib - make -f makefile.bcc - cd $(WXDIR)\src\msw - -clean_zlib: - cd $(WXDIR)\src\zlib - make -f makefile.bcc clean - cd $(WXDIR)\src\msw - -$(CFG): makefile.bcc - copy &&! --H=$(WXDIR)\src\msw\borland.pch --2 --P --d --w-hid --w-par --w-pia --w-aus --w-rch --ml --Od --WE --Fs- --Vf --Ff=4 --I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm --I$(WXDIR)\include\wx\msw\gnuwin32 --L$(BCCDIR)\lib --D__WXWIN__ --D__WXMSW__ --D__WINDOWS__ --D__WIN16__ -! $(CFG) -!if "$(BOR_VER)" == "3.1" - echo -Ff=4 >>$(CFG) -!elif "$(BOR_VER)" == "4" - echo -Ff=512 >>$(CFG) - echo -dc >>$(CFG) -!else - echo -Ff=512 >>$(CFG) - echo -dc >>$(CFG) -!endif - -# -O was: -Oxt - -clean: $(PERIPH_CLEAN_TARGET) - erase $(LIBTARGET) - erase *.obj - erase *.pch - erase *.csm - erase *.cfg - erase ..\common\y_tab.c - erase ..\common\lex_yy.c - -cleanall: clean - - diff --git a/src/msw/makefile.dos b/src/msw/makefile.dos deleted file mode 100644 index 4048a14e96..0000000000 --- a/src/msw/makefile.dos +++ /dev/null @@ -1,1147 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for VC++ (16-bit) -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# -!include <..\makemsc.env> - -LIBTARGET=$(WXLIB) -DUMMYOBJ=dummy.obj - -# Please set these according to the settings in wx_setup.h, so we can include -# the appropriate libraries in wx.lib - -# This one overrides the others, to be consistent with the settings in wx_setup.h -MINIMAL_WXWINDOWS_SETUP=0 - -USE_XPM_IN_MSW=0 -USE_CTL3D=1 - -!if "$(MINIMAL_WXWINDOWS_SETUP)" == "1" -USE_CTL3D=0 -USE_XPM_IN_MSW=0 -!endif - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -# !if "$(USE_CTL3D)" == "1" -# PERIPH_LIBS=d:\msdev\lib\ctl3d32.lib $(PERIPH_LIBS) -# !endif - -!if "$(USE_XPM_IN_MSW)" == "1" -PERIPH_LIBS=$(WXDIR)\contrib\wxxpm\xpm.lib $(PERIPH_LIBS) -PERIPH_TARGET=xpm $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_xpm $(PERIPH_CLEAN_TARGET) -!endif - -# PNG and Zlib -PERIPH_TARGET=png zlib $(PERIPH_TARGET) -PERIPH_CLEAN_TARGET=clean_png clean_zlib $(PERIPH_CLEAN_TARGET) - -GENDIR=..\generic -COMMDIR=..\common -OLEDIR=.\ole -MSWDIR=. - -GENERICOBJS= \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\dirdlgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\imaglist.obj \ - $(GENDIR)\listctrl.obj \ - $(GENDIR)\notebook.obj \ - $(GENDIR)\panelg.obj \ - $(GENDIR)\progdlgg.obj \ - $(GENDIR)\prop.obj \ - $(GENDIR)\propform.obj \ - $(GENDIR)\proplist.obj \ - $(GENDIR)\scrolwin.obj \ - $(GENDIR)\splitter.obj \ - $(GENDIR)\statusbr.obj \ - $(GENDIR)\tabg.obj \ - $(GENDIR)\textdlgg.obj\ - $(GENDIR)\prntdlgg.obj \ - $(GENDIR)\treectrl.obj - -# Don't need these generic objects for Windows -# $(GENDIR)\msgdlgg.obj \ -# $(GENDIR)\fontdlgg.obj \ -# $(GENDIR)\colrdlgg.obj \ -# $(GENDIR)\printps.obj \ -# $(GENDIR)\helpxlp.obj \ - -COMMONOBJS = \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\dcbase.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\odbc.obj \ - $(COMMDIR)\process.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valgen.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\variant.obj \ - $(COMMDIR)\paper.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\wfstream.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\zstream.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\wincmn.obj \ - $(COMMDIR)\wxchar.obj - -# Doesn't compile (nested classes) -# $(COMMDIR)\fileconf.obj\ - -# Uses WIN32 registry functions -# $(COMMDIR)\mimetype.obj \ - -# Fails when including png.h, on jmp_buf. -# $(COMMDIR)\image.obj \ - -MSWOBJS = \ - $(MSWDIR)\accel.obj \ - $(MSWDIR)\app.obj \ - $(MSWDIR)\bitmap.obj \ - $(MSWDIR)\bmpbuttn.obj \ - $(MSWDIR)\brush.obj \ - $(MSWDIR)\button.obj \ - $(MSWDIR)\checkbox.obj \ - $(MSWDIR)\checklst.obj \ - $(MSWDIR)\caret.obj \ - $(MSWDIR)\choice.obj \ - $(MSWDIR)\clipbrd.obj \ - $(MSWDIR)\colordlg.obj \ - $(MSWDIR)\colour.obj \ - $(MSWDIR)\combobox.obj \ - $(MSWDIR)\control.obj \ - $(MSWDIR)\curico.obj \ - $(MSWDIR)\cursor.obj \ - $(MSWDIR)\data.obj \ - $(MSWDIR)\dc.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcclient.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\filedlg.obj \ - $(MSWDIR)\font.obj \ - $(MSWDIR)\fontdlg.obj \ - $(MSWDIR)\frame.obj \ - $(MSWDIR)\gaugemsw.obj \ - $(MSWDIR)\gdiobj.obj \ - $(MSWDIR)\helpwin.obj \ - $(MSWDIR)\icon.obj \ - $(MSWDIR)\iniconf.obj\ - $(MSWDIR)\joystick.obj \ - $(MSWDIR)\listbox.obj \ - $(MSWDIR)\main.obj \ - $(MSWDIR)\mdi.obj \ - $(MSWDIR)\menu.obj\ - $(MSWDIR)\menuitem.obj \ - $(MSWDIR)\metafile.obj \ - $(MSWDIR)\minifram.obj \ - $(MSWDIR)\msgdlg.obj \ - $(MSWDIR)\nativdlg.obj \ - $(MSWDIR)\ownerdrw.obj \ - $(MSWDIR)\palette.obj \ - $(MSWDIR)\pen.obj \ - $(MSWDIR)\penwin.obj \ - $(MSWDIR)\printdlg.obj \ - $(MSWDIR)\printwin.obj \ - $(MSWDIR)\radiobox.obj \ - $(MSWDIR)\radiobut.obj \ - $(MSWDIR)\region.obj \ - $(MSWDIR)\scrolbar.obj \ - $(MSWDIR)\settings.obj \ - $(MSWDIR)\slidrmsw.obj \ - $(MSWDIR)\spinbutt.obj \ - $(MSWDIR)\statbmp.obj \ - $(MSWDIR)\statbox.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\tbarmsw.obj \ - $(MSWDIR)\textctrl.obj \ - $(MSWDIR)\timer.obj \ - $(MSWDIR)\utils.obj \ - $(MSWDIR)\utilsexc.obj \ - $(MSWDIR)\wave.obj \ - $(MSWDIR)\window.obj \ - $(OLEDIR)\dropsrc.obj \ - $(OLEDIR)\droptgt.obj - -# $(OLEDIR)\automtn.obj \ -# $(OLEDIR)\dataobj.obj \ -# $(OLEDIR)\oleutils.obj \ -# $(OLEDIR)\uuid.obj -# $(MSWDIR)\tooltip.obj \ - -# TODO: Implement XPM and PNG targets in this makefile! -# $(OLEDIR)\xpmhand \ -# $(OLEDIR)\pnghand \ - -# Not appropriate for 16-bit Windows -# $(MSWDIR)\registry.obj \ -# $(MSWDIR)\dirdlg.obj \ -# $(MSWDIR)\treectrl.obj \ -# $(MSWDIR)\listctrl.obj \ - -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) - -# Normal, static library -all: $(DUMMYOBJ) $(WXDIR)\lib\wx1.lib $(WXDIR)\lib\wx2.lib $(WXDIR)\lib\wx3.lib - - -#$(WXDIR)\lib\wx.lib: dummy.obj $(OBJECTS) $(PERIPH_LIBS) -# -erase $(LIBTARGET) -# lib /PAGESIZE:128 @<< -#$(LIBTARGET) -#y -#$(OBJECTS) $(PERIPH_LIBS) -#nul -#; -#<< - -$(WXDIR)\lib\wx1.lib: $(COMMONOBJS) $(PERIPH_LIBS) - -erase $(WXDIR)\lib\wx1.lib - lib /PAGESIZE:128 @<< -$(WXDIR)\lib\wx1.lib -y -$(COMMONOBJS) $(PERIPH_LIBS) -nul -; -<< - -$(WXDIR)\lib\wx2.lib: $(GENERICOBJS) - -erase $(WXDIR)\lib\wx2.lib - lib /PAGESIZE:128 @<< -$(WXDIR)\lib\wx2.lib -y -$(GENERICOBJS) -nul -; -<< - -$(WXDIR)\lib\wx3.lib: $(MSWOBJS) - -erase $(WXDIR)\lib\wx3.lib - lib /PAGESIZE:128 @<< -$(WXDIR)\lib\wx3.lib -y -$(MSWOBJS) -nul -; -<< - -######################################################## -# Windows-specific objects - -dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h - cl @<< - cl $(CPPFLAGS) /YcWX/WXPREC.H $(DEBUG_FLAGS) /c /Tp $*.$(SRCSUFF) -<< - -#dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h -# cl $(CPPFLAGS) /YcWX/WXPREC.H $(DEBUG_FLAGS) /c /Tp $*.$(SRCSUFF) - -dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h - cl @<< -$(CPPFLAGS) /YcWX/WXPREC.H /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/accel.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/app.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/bitmap.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/bmpbuttn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/brush.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/button.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/caret.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/choice.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/checkbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/checklst.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/clipbrd.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/colordlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/colour.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/combobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/control.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/curico.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/cursor.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/data.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dde.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dcmemory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dcclient.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dcprint.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dcscreen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dialog.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dib.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/dirdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/filedlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/font.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/fontdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/frame.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/gaugemsw.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/gdiobj.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/helpwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/icon.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/iniconf.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/imaglist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/joystick.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/listbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/listctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/main.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/mdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/menu.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/menuitem.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/metafile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/minifram.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/msgdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/nativdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/ownerdrw.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/palette.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/pen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/penwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/printdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/printwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/radiobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/radiobut.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/region.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/registry.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/scrolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/settings.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/slidrmsw.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/spinbutt.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/statbmp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/statbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/stattext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/tbarmsw.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/textctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/timer.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/tooltip.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/treectrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/utils.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/utilsexc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/wave.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(MSWDIR)/window.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OLEDIR)/droptgt.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OLEDIR)/dropsrc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OLEDIR)/dataobj.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OLEDIR)/oleutils.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OLEDIR)/uuid.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OLEDIR)/automtn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -######################################################## -# Common objects (always compiled) - -$(COMMDIR)/config.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/cmndata.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dcbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/docview.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/docmdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/dynarray.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/event.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/file.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/fileconf.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/filefn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/framecmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/gdicmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/helpbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/image.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/intl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/ipcbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/layout.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/log.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/memory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/mimetype.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/module.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/object.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/odbc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/process.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/prntbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/resource.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/tbarbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/tbarsmpl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/textfile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/timercmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/utilscmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/validate.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/valgen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/valtext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/date.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wxexpr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/hash.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/list.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/variant.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/paper.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/string.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/matrix.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wxstrgnu/wxstrgnu.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wxstrgnu/wxregex.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/time.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/stream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wfstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/mstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/zstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/datstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/extended.obj: $*.c - cl @<< -$(CPPFLAGS2) /Fo$@ /c /Tp $*.c -<< - -$(COMMDIR)/wincmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/wxchar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(COMMDIR)/y_tab.obj: $*.c $(COMMDIR)/lex_yy.c - cl @<< -$(CPPFLAGS2) -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ /I ..\common /c $*.c -<< - -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(GENDIR)/choicdgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/colrdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/dirdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/fontdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/gridg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/imaglist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/listctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/notebook.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/helpxlp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/msgdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/panelg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/printps.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/prntdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/progdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/prop.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/propform.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/proplist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/scrolwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/splitter.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/tabg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/textdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(GENDIR)/treectrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(OBJECTS): $(WXDIR)/include/wx/setup.h - -# Peripheral components - -xpm: - cd $(WXDIR)\src\xpm - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\src\msw - -clean_xpm: - cd $(WXDIR)\src\xpm - nmake -f makefile.dos clean - cd $(WXDIR)\src\msw - -zlib: - cd $(WXDIR)\src\zlib - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\src\msw - -clean_zlib: - cd $(WXDIR)\src\zlib - nmake -f makefile.dos clean - cd $(WXDIR)\src\msw - -png: - cd $(WXDIR)\src\png - nmake -f makefile.dos FINAL=$(FINAL) - cd $(WXDIR)\src\msw - -clean_png: - cd $(WXDIR)\src\png - nmake -f makefile.dos clean - cd $(WXDIR)\src\msw - -clean: $(PERIPH_CLEAN_TARGET) - -erase *.obj - -erase ..\lib\*.lib - -erase *.pdb - -erase *.sbr - -erase *.pch - cd $(WXDIR)\src\generic - -erase *.pdb - -erase *.sbr - -erase *.obj - cd $(WXDIR)\src\common - -erase *.pdb - -erase *.sbr - -erase *.obj - cd $(WXDIR)\src\msw\ole - -erase *.pdb - -erase *.sbr - -erase *.obj - cd $(WXDIR)\src\msw - -cleanall: clean - - diff --git a/src/msw/makefile.g95 b/src/msw/makefile.g95 deleted file mode 100644 index 3b55706fbe..0000000000 --- a/src/msw/makefile.g95 +++ /dev/null @@ -1,317 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "@(#)makefile.unx 1.2 5/9/94" -# -# Makefile for libwx.a - -# Replace this with your own path if necessary -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/makeg95.env - -# IMPORTANT: if you want to link in subsidiary libraries, -# required for some optional parts of wxWindows, you must -# set EXTRATARGETS and EXTRAOBJS to match the settings in wx_setup.h. -# Having done this, you won't have to worry about linking them -# into each application. -# -# Here's the full list. -# prologio: Required if using the wxWindows resource facility -# USE_WX_RESOURCES should be 1 -# xmgauge: Gauge class (required for Motif only) -# USE_GAUGE should be 1 -# xpm: XPM pixmap support -# USE_XPM_IN_X should be 1 -# wxstring: string class -# USE_GNU_WXSTRING should be 1 -# -# Unfortunately, 'ar' doesn't like combining objects and libraries, -# so we must identify all the objects from the subordinate libraries. Yuck! -XPMSRC=../../contrib/wxxpm/objects$(GUISUFFIX) -XPMOBJS=$(XPMSRC)/crbuffri.$(OBJSUFF) $(XPMSRC)/crbuffrp.$(OBJSUFF) $(XPMSRC)/crdatfri.$(OBJSUFF) $(XPMSRC)/crdatfrp.$(OBJSUFF)\ - $(XPMSRC)/create.$(OBJSUFF) $(XPMSRC)/crifrbuf.$(OBJSUFF) $(XPMSRC)/crifrdat.$(OBJSUFF) $(XPMSRC)/crpfrbuf.$(OBJSUFF) $(XPMSRC)/crpfrdat.$(OBJSUFF)\ - $(XPMSRC)/data.$(OBJSUFF) $(XPMSRC)/hashtab.$(OBJSUFF) $(XPMSRC)/misc.$(OBJSUFF) $(XPMSRC)/parse.$(OBJSUFF) $(XPMSRC)/rdftodat.$(OBJSUFF)\ - $(XPMSRC)/rdftoi.$(OBJSUFF) $(XPMSRC)/rdftop.$(OBJSUFF) $(XPMSRC)/rgb.$(OBJSUFF) $(XPMSRC)/scan.$(OBJSUFF) $(XPMSRC)/simx.$(OBJSUFF)\ - $(XPMSRC)/wrffrdat.$(OBJSUFF) $(XPMSRC)/wrffri.$(OBJSUFF) $(XPMSRC)/wrffrp.$(OBJSUFF) - -# Subordinate library possibilities - -EXTRAOBJS= - -GENDIR=../generic -COMMDIR=../common -XPMDIR=../xpm -OLEDIR=ole -MSWDIR=. - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(GENDIR)/choicdgg.$(OBJSUFF) \ - $(GENDIR)/dirdlgg.$(OBJSUFF) \ - $(GENDIR)/gridg.$(OBJSUFF) \ - $(GENDIR)/laywin.$(OBJSUFF) \ - $(GENDIR)/panelg.$(OBJSUFF) \ - $(GENDIR)/progdlgg.$(OBJSUFF) \ - $(GENDIR)/prop.$(OBJSUFF) \ - $(GENDIR)/propform.$(OBJSUFF) \ - $(GENDIR)/proplist.$(OBJSUFF) \ - $(GENDIR)/sashwin.$(OBJSUFF) \ - $(GENDIR)/scrolwin.$(OBJSUFF) \ - $(GENDIR)/splitter.$(OBJSUFF) \ - $(GENDIR)/statusbr.$(OBJSUFF) \ - $(GENDIR)/tabg.$(OBJSUFF) \ - $(GENDIR)/textdlgg.$(OBJSUFF) - -# $(GENDIR)/colrdlgg.$(OBJSUFF) \ -# $(GENDIR)/fontdlgg.$(OBJSUFF) \ -# $(GENDIR)/prntdlgg.$(OBJSUFF) \ -# $(GENDIR)/printps.$(OBJSUFF) \ -# $(GENDIR)/msgdlgg.$(OBJSUFF) \ - -COMMONOBJS = \ - $(COMMDIR)/config.$(OBJSUFF) \ - $(COMMDIR)/cmndata.$(OBJSUFF) \ - $(COMMDIR)/dcbase.$(OBJSUFF) \ - $(COMMDIR)/docview.$(OBJSUFF) \ - $(COMMDIR)/docmdi.$(OBJSUFF) \ - $(COMMDIR)/dynarray.$(OBJSUFF) \ - $(COMMDIR)/event.$(OBJSUFF) \ - $(COMMDIR)/file.$(OBJSUFF) \ - $(COMMDIR)/fileconf.$(OBJSUFF) \ - $(COMMDIR)/filefn.$(OBJSUFF) \ - $(COMMDIR)/framecmn.$(OBJSUFF) \ - $(COMMDIR)/gdicmn.$(OBJSUFF) \ - $(COMMDIR)/helpbase.$(OBJSUFF) \ - $(COMMDIR)/image.$(OBJSUFF) \ - $(COMMDIR)/imagpng.$(OBJSUFF) \ - $(COMMDIR)/imagjpeg.$(OBJSUFF) \ - $(COMMDIR)/intl.$(OBJSUFF) \ - $(COMMDIR)/ipcbase.$(OBJSUFF) \ - $(COMMDIR)/layout.$(OBJSUFF) \ - $(COMMDIR)/log.$(OBJSUFF) \ - $(COMMDIR)/memory.$(OBJSUFF) \ - $(COMMDIR)/module.$(OBJSUFF) \ - $(COMMDIR)/mimetype.$(OBJSUFF) \ - $(COMMDIR)/object.$(OBJSUFF) \ - $(COMMDIR)/odbc.$(OBJSUFF) \ - $(COMMDIR)/process.$(OBJSUFF) \ - $(COMMDIR)/prntbase.$(OBJSUFF) \ - $(COMMDIR)/resource.$(OBJSUFF) \ - $(COMMDIR)/tbarbase.$(OBJSUFF) \ - $(COMMDIR)/tbarsmpl.$(OBJSUFF) \ - $(COMMDIR)/textfile.$(OBJSUFF) \ - $(COMMDIR)/timercmn.$(OBJSUFF) \ - $(COMMDIR)/utilscmn.$(OBJSUFF) \ - $(COMMDIR)/validate.$(OBJSUFF) \ - $(COMMDIR)/valgen.$(OBJSUFF) \ - $(COMMDIR)/valtext.$(OBJSUFF) \ - $(COMMDIR)/date.$(OBJSUFF) \ - $(COMMDIR)/wxexpr.$(OBJSUFF) \ - $(COMMDIR)/hash.$(OBJSUFF) \ - $(COMMDIR)/list.$(OBJSUFF) \ - $(COMMDIR)/variant.$(OBJSUFF) \ - $(COMMDIR)/paper.$(OBJSUFF) \ - $(COMMDIR)/string.$(OBJSUFF) \ - $(COMMDIR)/time.$(OBJSUFF) \ - $(COMMDIR)/tokenzr.$(OBJSUFF) \ - $(COMMDIR)/y_tab.$(OBJSUFF) \ - $(COMMDIR)/stream.$(OBJSUFF) \ - $(COMMDIR)/wfstream.$(OBJSUFF) \ - $(COMMDIR)/mstream.$(OBJSUFF) \ - $(COMMDIR)/zstream.$(OBJSUFF) \ - $(COMMDIR)/datstrm.$(OBJSUFF) \ - $(COMMDIR)/objstrm.$(OBJSUFF) \ - $(COMMDIR)/extended.$(OBJSUFF) \ - $(COMMDIR)/wincmn.$(OBJSUFF) \ - $(COMMDIR)/wxchar.$(OBJSUFF) - -# NOTE: if the socket-related files fail with a syntax error in Sockets.h, -# remove the files (probably all GnuWin32 releases < b20). Cygwin b20 is OK, -# Mingw32 may still have problems. -# $(COMMDIR)/socket.$(OBJSUFF) \ -# $(COMMDIR)/sckaddr.$(OBJSUFF) \ -# $(COMMDIR)/sckfile.$(OBJSUFF) \ -# $(COMMDIR)/sckipc.$(OBJSUFF) \ -# $(COMMDIR)/sckstrm.$(OBJSUFF) \ -# $(COMMDIR)/protocol.$(OBJSUFF) \ -# $(COMMDIR)/http.$(OBJSUFF) \ -# $(COMMDIR)/ftp.$(OBJSUFF) \ -# $(COMMDIR)/url.$(OBJSUFF) \ - -MSWOBJS = \ - accel.$(OBJSUFF) \ - app.$(OBJSUFF) \ - bitmap.$(OBJSUFF) \ - bmpbuttn.$(OBJSUFF) \ - brush.$(OBJSUFF) \ - button.$(OBJSUFF) \ - checkbox.$(OBJSUFF) \ - checklst.$(OBJSUFF) \ - caret.$(OBJSUFF) \ - choice.$(OBJSUFF) \ - clipbrd.$(OBJSUFF) \ - colordlg.$(OBJSUFF) \ - colour.$(OBJSUFF) \ - combobox.$(OBJSUFF) \ - control.$(OBJSUFF) \ - curico.$(OBJSUFF) \ - cursor.$(OBJSUFF) \ - data.$(OBJSUFF) \ - dc.$(OBJSUFF) \ - dcmemory.$(OBJSUFF) \ - dcclient.$(OBJSUFF) \ - dcprint.$(OBJSUFF) \ - dcscreen.$(OBJSUFF) \ - dde.$(OBJSUFF) \ - dialog.$(OBJSUFF) \ - dib.$(OBJSUFF) \ - filedlg.$(OBJSUFF) \ - font.$(OBJSUFF) \ - fontdlg.$(OBJSUFF) \ - frame.$(OBJSUFF) \ - gaugemsw.$(OBJSUFF) \ - gauge95.$(OBJSUFF) \ - gdiobj.$(OBJSUFF) \ - helpwin.$(OBJSUFF) \ - icon.$(OBJSUFF) \ - imaglist.$(OBJSUFF) \ - joystick.$(OBJSUFF) \ - listbox.$(OBJSUFF) \ - listctrl.$(OBJSUFF) \ - main.$(OBJSUFF) \ - mdi.$(OBJSUFF) \ - menu.$(OBJSUFF) \ - menuitem.$(OBJSUFF) \ - metafile.$(OBJSUFF) \ - minifram.$(OBJSUFF) \ - msgdlg.$(OBJSUFF) \ - nativdlg.$(OBJSUFF) \ - notebook.$(OBJSUFF) \ - ownerdrw.$(OBJSUFF) \ - palette.$(OBJSUFF) \ - pen.$(OBJSUFF) \ - penwin.$(OBJSUFF) \ - printdlg.$(OBJSUFF) \ - printwin.$(OBJSUFF) \ - radiobox.$(OBJSUFF) \ - radiobut.$(OBJSUFF) \ - region.$(OBJSUFF) \ - registry.$(OBJSUFF) \ - regconf.$(OBJSUFF) \ - scrolbar.$(OBJSUFF) \ - settings.$(OBJSUFF) \ - slidrmsw.$(OBJSUFF) \ - slider95.$(OBJSUFF) \ - spinbutt.$(OBJSUFF) \ - statbmp.$(OBJSUFF) \ - statbox.$(OBJSUFF) \ - statbr95.$(OBJSUFF) \ - stattext.$(OBJSUFF) \ - tabctrl.$(OBJSUFF) \ - taskbar.$(OBJSUFF) \ - tbar95.$(OBJSUFF) \ - tbarmsw.$(OBJSUFF) \ - textctrl.$(OBJSUFF) \ - thread.$(OBJSUFF) \ - timer.$(OBJSUFF) \ - tooltip.$(OBJSUFF) \ - treectrl.$(OBJSUFF) \ - utils.$(OBJSUFF) \ - utilsexc.$(OBJSUFF) \ - wave.$(OBJSUFF) \ - window.$(OBJSUFF) \ - xpmhand.$(OBJSUFF) - -# Native wxDirDlg can't be compiled due to GnuWin32/OLE limitations -# dirdlg.$(OBJSUFF) \ - -# OLE not supported yet by GnuWin32 -# $(OLEDIR)/droptgt.$(OBJSUFF) \ -# $(OLEDIR)/dropsrc.$(OBJSUFF) \ -# $(OLEDIR)/dataobj.$(OBJSUFF) \ -# $(OLEDIR)/oleutils.$(OBJSUFF) \ -# $(OLEDIR)/uuid.$(OBJSUFF) \ -# $(OLEDIR)/automtn.$(OBJSUFF) - -XPMOBJECTS = $(XPMDIR)/crbuffri.o\ - $(XPMDIR)/crdatfri.o\ - $(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\ - $(XPMDIR)/crifrdat.o\ - $(XPMDIR)/data.o\ - $(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\ - $(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\ - $(XPMDIR)/rdftoi.o\ - $(XPMDIR)/rgb.o $(XPMDIR)/scan.o\ - $(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\ - $(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o - -OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) # $(XPMOBJECTS) - -all: $(OBJECTS) $(WXLIB) - -base: - cd $(WXDIR)/src/common; $(MAKE) -f makefile.g95 GUI=$(GUI) GUISUFFIX=$(GUISUFFIX) CC=$(CC)\ - OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)' - - -$(WXLIB): $(OBJECTS) $(EXTRAOBJS) - ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS) - $(RANLIB) $@ - -$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h - -$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c - $(CCLEX) -c $(CPPFLAGS) -o $@ $(COMMDIR)/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -$(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l - $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l - -# Try one of these if the above line doesn't work. -# Alternative syntax (1) -# $(LEX) -t -L $(COMMDIR)/lexer.l > $(COMMDIR)/lex_yy.c -# Alternative syntax (2) -# $(LEX) -L -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l - -# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \ -# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ -# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c -# rm -f lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. - -$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y - $(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y - -# If you use e.g. gcc on Unix, uncomment these lines -# and comment out the above. - -#$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y -# $(YACC) $(COMMDIR)/parser.y -# mv y.tab.c $(COMMDIR)/y_tab.c - -# Extra targets -rcparser: - cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95 - cd $(WXDIR)/src/msw - -clean_rcp: - cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95 clean - cd $(WXDIR)/src/msw - -clean: - rm -f $(OBJECTS) $(EXTRAOBJS) ../common/y_tab.c ../common/lex_yy.c $(WXDIR)/lib/libwx$(GUISUFFIX).a core - -cleanall: clean - diff --git a/src/msw/makefile.sc b/src/msw/makefile.sc deleted file mode 100644 index d2d9a93acb..0000000000 --- a/src/msw/makefile.sc +++ /dev/null @@ -1,259 +0,0 @@ -# Symantec C++ makefile for the msw objects -# called from src\makefile.sc - -# configuration section (see src\makefile.sc) ########################### - -WXDIR = $(WXWIN) - -include ..\makesc.env - -DEBUG=0 - -LIBTARGET = $(LIBDIR)\wx.lib - -OPTIONS= - -# end of configuration section ########################################## - -GENDIR=$(WXDIR)\src\generic -COMMDIR=$(WXDIR)\src\common -XPMDIR=$(WXDIR)\src\xpm -OLEDIR=ole -MSWDIR=$(WXDIR)\src\msw - -GENERICOBJS= \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\laywin.obj \ - $(GENDIR)\panelg.obj \ - $(GENDIR)\progdlgg.obj \ - $(GENDIR)\prop.obj \ - $(GENDIR)\propform.obj \ - $(GENDIR)\proplist.obj \ - $(GENDIR)\sashwin.obj \ - $(GENDIR)\scrolwin.obj \ - $(GENDIR)\splitter.obj \ - $(GENDIR)\statusbr.obj \ - $(GENDIR)\tabg.obj \ - $(GENDIR)\textdlgg.obj - -# $(GENDIR)\imaglist.obj \ -# $(GENDIR)\treectrl.obj \ -# $(GENDIR)\listctrl.obj \ -# $(GENDIR)\notebook.obj \ - -# These are generic things that don't need to be compiled on MSW, -# but sometimes it's useful to do so for testing purposes. -NONESSENTIALOBJS= \ - $(GENDIR)\printps.obj \ - $(GENDIR)\prntdlgg.obj \ - $(GENDIR)\msgdlgg.obj \ - $(GENDIR)\helpxlp.obj \ - $(GENDIR)\colrdlgg.obj \ - $(GENDIR)\fontdlgg.obj - -COMMONOBJS = \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\dcbase.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\dynlib.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\fileconf.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\image.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\mimetype.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\resourc2.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valgen.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\paper.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\tokenzr.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\process.obj \ - $(COMMDIR)\wfstream.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\zstream.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\objstrm.obj \ - $(COMMDIR)\variant.obj \ - $(COMMDIR)\wincmn.obj \ - $(COMMDIR)\wxchar.obj - -# Don't compile for WIN16 -# $(COMMDIR)\socket.obj \ -# $(COMMDIR)\sckaddr.obj \ -# $(COMMDIR)\sckfile.obj \ -# $(COMMDIR)\sckipc.obj \ -# $(COMMDIR)\sckstrm.obj \ -# $(COMMDIR)\url.obj \ -# $(COMMDIR)\http.obj \ -# $(COMMDIR)\protocol.obj \ - -# Don't compile -# $(COMMDIR)\db.obj \ -# $(COMMDIR)\dbtable.obj \ -# $(COMMDIR)\odbc.obj \ - -MSWOBJS = \ - $(MSWDIR)\accel.obj \ - $(MSWDIR)\app.obj \ - $(MSWDIR)\bitmap.obj \ - $(MSWDIR)\bmpbuttn.obj \ - $(MSWDIR)\brush.obj \ - $(MSWDIR)\button.obj \ - $(MSWDIR)\checkbox.obj \ - $(MSWDIR)\checklst.obj \ - $(MSWDIR)\caret.obj \ - $(MSWDIR)\choice.obj \ - $(MSWDIR)\clipbrd.obj \ - $(MSWDIR)\colordlg.obj \ - $(MSWDIR)\colour.obj \ - $(MSWDIR)\combobox.obj \ - $(MSWDIR)\control.obj \ - $(MSWDIR)\curico.obj \ - $(MSWDIR)\cursor.obj \ - $(MSWDIR)\data.obj \ - $(MSWDIR)\dc.obj \ - $(MSWDIR)\dcmemory.obj \ - $(MSWDIR)\dcclient.obj \ - $(MSWDIR)\dcprint.obj \ - $(MSWDIR)\dcscreen.obj \ - $(MSWDIR)\dde.obj \ - $(MSWDIR)\dialog.obj \ - $(MSWDIR)\dib.obj \ - $(MSWDIR)\dibutils.obj \ - $(MSWDIR)\dirdlg.obj \ - $(MSWDIR)\filedlg.obj \ - $(MSWDIR)\font.obj \ - $(MSWDIR)\fontdlg.obj \ - $(MSWDIR)\frame.obj \ - $(MSWDIR)\gauge95.obj \ - $(MSWDIR)\gaugemsw.obj \ - $(MSWDIR)\gdiobj.obj \ - $(MSWDIR)\helpwin.obj \ - $(MSWDIR)\icon.obj \ - $(MSWDIR)\iniconf.obj \ - $(MSWDIR)\listbox.obj \ - $(MSWDIR)\main.obj \ - $(MSWDIR)\mdi.obj \ - $(MSWDIR)\menu.obj \ - $(MSWDIR)\menuitem.obj \ - $(MSWDIR)\metafile.obj \ - $(MSWDIR)\minifram.obj \ - $(MSWDIR)\msgdlg.obj \ - $(MSWDIR)\nativdlg.obj \ - $(MSWDIR)\ownerdrw.obj \ - $(MSWDIR)\palette.obj \ - $(MSWDIR)\pen.obj \ - $(MSWDIR)\penwin.obj \ - $(MSWDIR)\printdlg.obj \ - $(MSWDIR)\printwin.obj \ - $(MSWDIR)\radiobox.obj \ - $(MSWDIR)\radiobut.obj \ - $(MSWDIR)\region.obj \ - $(MSWDIR)\registry.obj \ - $(MSWDIR)\regconf.obj \ - $(MSWDIR)\scrolbar.obj \ - $(MSWDIR)\settings.obj \ - $(MSWDIR)\slidrmsw.obj \ - $(MSWDIR)\slider95.obj \ - $(MSWDIR)\spinbutt.obj \ - $(MSWDIR)\statbmp.obj \ - $(MSWDIR)\statbox.obj \ - $(MSWDIR)\statbr95.obj \ - $(MSWDIR)\stattext.obj \ - $(MSWDIR)\tabctrl.obj \ - $(MSWDIR)\taskbar.obj \ - $(MSWDIR)\tbar95.obj \ - $(MSWDIR)\tbarmsw.obj \ - $(MSWDIR)\textctrl.obj \ - $(MSWDIR)\thread.obj \ - $(MSWDIR)\timer.obj \ - $(MSWDIR)\tooltip.obj \ - $(MSWDIR)\utils.obj \ - $(MSWDIR)\utilsexc.obj \ - $(MSWDIR)\wave.obj \ - $(MSWDIR)\window.obj \ - $(MSWDIR)\xpmhand.obj - -# Need Win95 support for these -# $(MSWDIR)\notebook.obj \ -# $(MSWDIR)\listctrl.obj \ -# $(MSWDIR)\imaglist.obj \ -# $(MSWDIR)\treectrl.obj \ -# $(OLEDIR)\droptgt.obj \ -# $(OLEDIR)\dropsrc.obj \ -# $(OLEDIR)\dataobj.obj \ -# $(OLEDIR)\oleutils.obj \ -# $(OLEDIR)\uuid.obj \ -# $(OLEDIR)\automtn.obj - -# Doesn't compile with SC++ 6 -# $(MSWDIR)\joystick.obj \ -# $(MSWDIR)\pnghand.obj \ - -XPMOBJECTS = $(XPMDIR)\crbuffri.obj\ - $(XPMDIR)\crdatfri.obj\ - $(XPMDIR)\create.obj $(XPMDIR)\crifrbuf.obj\ - $(XPMDIR)\crifrdat.obj\ - $(XPMDIR)\data.obj\ - $(XPMDIR)\hashtab.obj $(XPMDIR)\misc.obj\ - $(XPMDIR)\parse.obj $(XPMDIR)\rdftodat.obj\ - $(XPMDIR)\rdftoi.obj\ - $(XPMDIR)\rgb.obj $(XPMDIR)\scan.obj\ - $(XPMDIR)\simx.obj $(XPMDIR)\wrffrdat.obj\ - $(XPMDIR)\wrffrp.obj $(XPMDIR)\wrffri.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) # $(XPMOBJECTS) - -all: $(LIBTARGET) - -$(LIBTARGET): $(OBJECTS) - -del $(LIBTARGET) - *lib /PAGESIZE:512 $(LIBTARGET) y $(OBJECTS), nul; - -clean: - -del *.obj - -del $(LIBTARGET) - -$(COMMDIR)\y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c - -$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -#$(COMMDIR)\cmndata.obj: $(COMMDIR)\cmndata.cpp -# *$(CC) -c $(CFLAGS) -I$(INCLUDE) $(OPTIONS) $(COMMDIR)\cmndata.cpp -o$(COMMDIR)\cmndata.obj - diff --git a/src/msw/makefile.sl b/src/msw/makefile.sl deleted file mode 100644 index 223b7608be..0000000000 --- a/src/msw/makefile.sl +++ /dev/null @@ -1,929 +0,0 @@ -# -# File: makefile.wat -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Builds wxWindows library for Salford C++, WIN32 - -include ..\makesl.env - -LIBTARGET = $(WXLIB)\wx.lib -EXTRATARGETS = # xpm png zlib -EXTRATARGETSCLEAN = # clean_xpm clean_png clean_zlib -GENDIR=$(WXDIR)\src\generic -COMMDIR=$(WXDIR)\src\common -XPMDIR=$(WXDIR)\src\xpm -OLEDIR=ole -MSWDIR=$(WXDIR)\src\msw - -GENERICOBJS= choicdgg.obj \ - dirdlgg.obj \ - gridg.obj \ - laywin.obj \ - panelg.obj \ - prop.obj \ - progdlgg.obj \ - propform.obj \ - proplist.obj \ - sashwin.obj \ - scrolwin.obj \ - splitter.obj \ - statusbr.obj \ - tabg.obj \ - textdlgg.obj - -# These are generic things that don't need to be compiled on MSW, -# but sometimes it's useful to do so for testing purposes. -NONESSENTIALOBJS= printps.obj \ - prntdlgg.obj \ - msgdlgg.obj \ - helpxlp.obj \ - colrdlgg.obj \ - fontdlgg.obj - -COMMONOBJS = cmndata.obj \ - config.obj \ - dcbase.obj \ - docview.obj \ - docmdi.obj \ - dynarray.obj \ - dynlib.obj \ - event.obj \ - file.obj \ - filefn.obj \ - fileconf.obj \ - framecmn.obj \ - gdicmn.obj \ - image.obj \ - intl.obj \ - ipcbase.obj \ - helpbase.obj \ - layout.obj \ - log.obj \ - memory.obj \ - module.obj \ - object.obj \ - prntbase.obj \ - resource.obj \ - tbarbase.obj \ - tbarsmpl.obj \ - textfile.obj \ - timercmn.obj \ - utilscmn.obj \ - validate.obj \ - valgen.obj \ - valtext.obj \ - date.obj \ - hash.obj \ - list.obj \ - paper.obj \ - string.obj \ - socket.obj \ - sckint.obj \ - sckaddr.obj \ - sckfile.obj \ - sckipc.obj \ - sckstrm.obj \ - url.obj \ - http.obj \ - protocol.obj \ - time.obj \ - tokenzr.obj \ - wxexpr.obj \ - y_tab.obj \ - extended.obj \ - process.obj \ - wfstream.obj \ - mstream.obj \ - zstream.obj \ - stream.obj \ - datstrm.obj \ - objstrm.obj \ - variant.obj \ - wincmn.obj \ - wxchar.obj - -# Can't compile these yet under Salford C++ -# mimetype.obj \ -# odbc.obj \ -# db.obj \ -# dbtable.obj \ - -MSWOBJS = \ - accel.obj \ - app.obj \ - bitmap.obj \ - bmpbuttn.obj \ - brush.obj \ - button.obj \ - checkbox.obj \ - checklst.obj \ - caret.obj \ - choice.obj \ - clipbrd.obj \ - colordlg.obj \ - colour.obj \ - combobox.obj \ - control.obj \ - curico.obj \ - cursor.obj \ - data.obj \ - dc.obj \ - dcmemory.obj \ - dcclient.obj \ - dcprint.obj \ - dcscreen.obj \ - dde.obj \ - dialog.obj \ - dib.obj \ - dibutils.obj \ - filedlg.obj \ - font.obj \ - fontdlg.obj \ - frame.obj \ - gauge95.obj \ - gaugemsw.obj \ - gdiobj.obj \ - helpwin.obj \ - icon.obj \ - imaglist.obj \ - iniconf.obj \ - joystick.obj \ - listbox.obj \ - listctrl.obj \ - main.obj \ - mdi.obj \ - menu.obj \ - menuitem.obj \ - metafile.obj \ - minifram.obj \ - msgdlg.obj \ - nativdlg.obj \ - notebook.obj \ - ownerdrw.obj \ - palette.obj \ - pen.obj \ - penwin.obj \ - printdlg.obj \ - printwin.obj \ - radiobox.obj \ - radiobut.obj \ - region.obj \ - registry.obj \ - regconf.obj \ - scrolbar.obj \ - settings.obj \ - slidrmsw.obj \ - slider95.obj \ - spinbutt.obj \ - statbmp.obj \ - statbox.obj \ - statbr95.obj \ - stattext.obj \ - tabctrl.obj \ - taskbar.obj \ - tbar95.obj \ - tbarmsw.obj \ - textctrl.obj \ - thread.obj \ - timer.obj \ - tooltip.obj \ - treectrl.obj \ - utils.obj \ - utilsexc.obj \ - wave.obj \ - window.obj - -# No OLE functions for wxDirDialog: use generic one instead -# dirdlg.obj \ -# pnghand.obj \ -# xpmhand.obj \ - -OLEOBJS = \ - droptgt.obj \ - dropsrc.obj \ - dataobj.obj \ - oleutils.obj \ - uuid.obj \ - automtn.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) # $(OLEOBJS) - -all: $(OBJECTS) $(LIBTARGET) $(EXTRATARGETS) - -$(LIBTARGET) : $(OBJECTS) - slink $$salford.lnk - -clean: $(EXTRATARGETSCLEAN) - -erase *.obj - -erase $(LIBTARGET) - -erase *.pch - -erase *.err - -cleanall: clean - -test: test.obj - -test.obj: test.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) test.cpp - -accel.obj: $(MSWDIR)\accel.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\accel.cpp /BINARY accel.obj - -app.obj: $(MSWDIR)\app.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\app.cpp /BINARY app.obj - -bitmap.obj: $(MSWDIR)\bitmap.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\bitmap.cpp /BINARY bitmap.obj - -bmpbuttn.obj: $(MSWDIR)\bmpbuttn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\bmpbuttn.cpp /BINARY bmpbuttn.obj - -brush.obj: $(MSWDIR)\brush.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\brush.cpp /BINARY brush.obj - -button.obj: $(MSWDIR)\button.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\button.cpp /BINARY button.obj - -caret.obj: $(MSWDIR)\caret.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\caret.cpp /BINARY caret.obj - -choice.obj: $(MSWDIR)\choice.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\choice.cpp /BINARY choice.obj - -checkbox.obj: $(MSWDIR)\checkbox.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\checkbox.cpp /BINARY checkbox.obj - -checklst.obj: $(MSWDIR)\checklst.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\checklst.cpp /BINARY checklst.obj - -clipbrd.obj: $(MSWDIR)\clipbrd.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\clipbrd.cpp /BINARY clipbrd.obj - -colordlg.obj: $(MSWDIR)\colordlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\colordlg.cpp /BINARY colordlg.obj - -colour.obj: $(MSWDIR)\colour.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\colour.cpp /BINARY colour.obj - -combobox.obj: $(MSWDIR)\combobox.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\combobox.cpp /BINARY combobox.obj - -control.obj: $(MSWDIR)\control.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\control.cpp /BINARY control.obj - -curico.obj: $(MSWDIR)\curico.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\curico.cpp /BINARY curico.obj - -cursor.obj: $(MSWDIR)\cursor.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\cursor.cpp /BINARY cursor.obj - -data.obj: $(MSWDIR)\data.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\data.cpp /BINARY data.obj - -dde.obj: $(MSWDIR)\dde.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dde.cpp /BINARY dde.obj - -dc.obj: $(MSWDIR)\dc.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dc.cpp /BINARY dc.obj - -dcmemory.obj: $(MSWDIR)\dcmemory.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcmemory.cpp /BINARY dcmemory.obj - -dcclient.obj: $(MSWDIR)\dcclient.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcclient.cpp /BINARY dcclient.obj - -dcprint.obj: $(MSWDIR)\dcprint.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcprint.cpp /BINARY dcprint.obj - -dcscreen.obj: $(MSWDIR)\dcscreen.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dcscreen.cpp /BINARY dcscreen.obj - -dialog.obj: $(MSWDIR)\dialog.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dialog.cpp /BINARY dialog.obj - -dib.obj: $(MSWDIR)\dib.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dib.cpp /BINARY dib.obj - -dibutils.obj: $(MSWDIR)\dibutils.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dibutils.cpp /BINARY dibutils.obj - -dirdlg.obj: $(MSWDIR)\dirdlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\dirdlg.cpp /BINARY dirdlg.obj - -filedlg.obj: $(MSWDIR)\filedlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\filedlg.cpp /BINARY filedlg.obj - -font.obj: $(MSWDIR)\font.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\font.cpp /BINARY font.obj - -fontdlg.obj: $(MSWDIR)\fontdlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\fontdlg.cpp /BINARY fontdlg.obj - -frame.obj: $(MSWDIR)\frame.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\frame.cpp /BINARY frame.obj - -gauge95.obj: $(MSWDIR)\gauge95.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\gauge95.cpp /BINARY gauge95.obj - -gaugemsw.obj: $(MSWDIR)\gaugemsw.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\gaugemsw.cpp /BINARY gaugemsw.obj - -gdiobj.obj: $(MSWDIR)\gdiobj.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\gdiobj.cpp /BINARY gdiobj.obj - -helpwin.obj: $(MSWDIR)\helpwin.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\helpwin.cpp /BINARY helpwin.obj - -icon.obj: $(MSWDIR)\icon.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\icon.cpp /BINARY icon.obj - -imaglist.obj: $(MSWDIR)\imaglist.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\imaglist.cpp /BINARY imaglist.obj - -iniconf.obj: $(MSWDIR)\iniconf.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\iniconf.cpp /BINARY iniconf.obj - -joystick.obj: $(MSWDIR)\joystick.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\joystick.cpp /BINARY joystick.obj - -listbox.obj: $(MSWDIR)\listbox.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\listbox.cpp /BINARY listbox.obj - -listctrl.obj: $(MSWDIR)\listctrl.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\listctrl.cpp /BINARY listctrl.obj - -main.obj: $(MSWDIR)\main.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\main.cpp /BINARY main.obj - -mdi.obj: $(MSWDIR)\mdi.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\mdi.cpp /BINARY mdi.obj - -menu.obj: $(MSWDIR)\menu.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\menu.cpp /BINARY menu.obj - -menuitem.obj: $(MSWDIR)\menuitem.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\menuitem.cpp /BINARY menuitem.obj - -metafile.obj: $(MSWDIR)\metafile.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\metafile.cpp /BINARY metafile.obj - -minifram.obj: $(MSWDIR)\minifram.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\minifram.cpp /BINARY minifram.obj - -msgdlg.obj: $(MSWDIR)\msgdlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\msgdlg.cpp /BINARY msgdlg.obj - -nativdlg.obj: $(MSWDIR)\nativdlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\nativdlg.cpp /BINARY nativdlg.obj - -notebook.obj: $(MSWDIR)\notebook.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\notebook.cpp /BINARY notebook.obj - -ownerdrw.obj: $(MSWDIR)\ownerdrw.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\ownerdrw.cpp /BINARY ownerdrw.obj - -palette.obj: $(MSWDIR)\palette.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\palette.cpp /BINARY palette.obj - -pen.obj: $(MSWDIR)\pen.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\pen.cpp /BINARY pen.obj - -penwin.obj: $(MSWDIR)\penwin.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\penwin.cpp /BINARY penwin.obj - -pnghand.obj: $(MSWDIR)\pnghand.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\pnghand.cpp /BINARY pnghand.obj - -printdlg.obj: $(MSWDIR)\printdlg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\printdlg.cpp /BINARY printdlg.obj - -printwin.obj: $(MSWDIR)\printwin.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\printwin.cpp /BINARY printwin.obj - -radiobox.obj: $(MSWDIR)\radiobox.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\radiobox.cpp /BINARY radiobox.obj - -radiobut.obj: $(MSWDIR)\radiobut.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\radiobut.cpp /BINARY radiobut.obj - -region.obj: $(MSWDIR)\region.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\region.cpp /BINARY region.obj - -registry.obj: $(MSWDIR)\registry.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\registry.cpp /BINARY registry.obj - -regconf.obj: $(MSWDIR)\regconf.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\regconf.cpp /BINARY regconf.obj - -scrolbar.obj: $(MSWDIR)\scrolbar.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\scrolbar.cpp /BINARY scrolbar.obj - -settings.obj: $(MSWDIR)\settings.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\settings.cpp /BINARY settings.obj - -slidrmsw.obj: $(MSWDIR)\slidrmsw.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\slidrmsw.cpp /BINARY slidrmsw.obj - -slider95.obj: $(MSWDIR)\slider95.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\slider95.cpp /BINARY slider95.obj - -spinbutt.obj: $(MSWDIR)\spinbutt.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\spinbutt.cpp /BINARY spinbutt.obj - -statbmp.obj: $(MSWDIR)\statbmp.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\statbmp.cpp /BINARY statbmp.obj - -statbox.obj: $(MSWDIR)\statbox.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\statbox.cpp /BINARY statbox.obj - -statbr95.obj: $(MSWDIR)\statbr95.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\statbr95.cpp /BINARY statbr95.obj - -stattext.obj: $(MSWDIR)\stattext.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\stattext.cpp /BINARY stattext.obj - -tabctrl.obj: $(MSWDIR)\tabctrl.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tabctrl.cpp /BINARY tabctrl.obj - -taskbar.obj: $(MSWDIR)\taskbar.cpp - cl @<< - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\taskbar.cpp /BINARY taskbar.obj - -tbar95.obj: $(MSWDIR)\tbar95.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tbar95.cpp /BINARY tbar95.obj - -tbarmsw.obj: $(MSWDIR)\tbarmsw.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tbarmsw.cpp /BINARY tbarmsw.obj - -textctrl.obj: $(MSWDIR)\textctrl.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\textctrl.cpp /BINARY textctrl.obj - -thread.obj: $(MSWDIR)\thread.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\thread.cpp /BINARY thread.obj - -timer.obj: $(MSWDIR)\timer.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\timer.cpp /BINARY timer.obj - -tooltip.obj: $(MSWDIR)\tooltip.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\tooltip.cpp /BINARY tooltip.obj - -treectrl.obj: $(MSWDIR)\treectrl.cpp - cl @<< - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\treectrl.cpp /BINARY treectrl.obj - -utils.obj: $(MSWDIR)\utils.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\utils.cpp /BINARY utils.obj - -utilsexc.obj: $(MSWDIR)\utilsexc.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\utilsexc.cpp /BINARY utilsexc.obj - -wave.obj: $(MSWDIR)\wave.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\wave.cpp /BINARY wave.obj - -window.obj: $(MSWDIR)\window.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\window.cpp /BINARY window.obj - -xpmhand.obj: $(MSWDIR)\xpmhand.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(MSWDIR)\xpmhand.cpp /BINARY xpmhand.obj - -droptgt.obj: $(OLEDIR)\droptgt.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\droptgt.cpp /BINARY droptgt.obj - -dropsrc.obj: $(OLEDIR)\dropsrc.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\dropsrc.cpp /BINARY dropsrc.obj - -dataobj.obj: $(OLEDIR)\dataobj.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\dataobj.cpp /BINARY dataobj.obj - -oleutils.obj: $(OLEDIR)\oleutils.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\oleutils.cpp /BINARY oleutils.obj - -uuid.obj: $(OLEDIR)\uuid.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\uuid.cpp /BINARY uuid.obj - -automtn.obj: $(OLEDIR)\automtn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(OLEDIR)\automtn.cpp /BINARY automtn.obj - -######################################################## -# Common objects (always compiled) - -cmndata.obj: $(COMMDIR)\cmndata.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\cmndata.cpp /BINARY cmndata.obj - -config.obj: $(COMMDIR)\config.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\config.cpp /BINARY config.obj - -dcbase.obj: $(COMMDIR)\dcbase.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dcbase.cpp /BINARY dcbase.obj - -db.obj: $(COMMDIR)\db.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\db.cpp /BINARY db.obj - -dbtable.obj: $(COMMDIR)\dbtable.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dbtable.cpp /BINARY dbtable.obj - -docview.obj: $(COMMDIR)\docview.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\docview.cpp /BINARY docview.obj - -docmdi.obj: $(COMMDIR)\docmdi.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\docmdi.cpp /BINARY docmdi.obj - -dynarray.obj: $(COMMDIR)\dynarray.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dynarray.cpp /BINARY dynarray.obj - -dynlib.obj: $(COMMDIR)\dynlib.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\dynlib.cpp /BINARY dynlib.obj - -event.obj: $(COMMDIR)\event.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\event.cpp /BINARY event.obj - -file.obj: $(COMMDIR)\file.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\file.cpp /BINARY file.obj - -fileconf.obj: $(COMMDIR)\fileconf.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\fileconf.cpp /BINARY fileconf.obj - -filefn.obj: $(COMMDIR)\filefn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\filefn.cpp /BINARY filefn.obj - -framecmn.obj: $(COMMDIR)\framecmn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\framecmn.cpp /BINARY framecmn.obj - -gdicmn.obj: $(COMMDIR)\gdicmn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\gdicmn.cpp /BINARY gdicmn.obj - -image.obj: $(COMMDIR)\image.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\image.cpp /BINARY image.obj - -intl.obj: $(COMMDIR)\intl.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\intl.cpp /BINARY intl.obj - -ipcbase.obj: $(COMMDIR)\ipcbase.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\ipcbase.cpp /BINARY ipcbase.obj - -helpbase.obj: $(COMMDIR)\helpbase.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\helpbase.cpp /BINARY helpbase.obj - -layout.obj: $(COMMDIR)\layout.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\layout.cpp /BINARY layout.obj - -log.obj: $(COMMDIR)\log.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\log.cpp /BINARY log.obj - -memory.obj: $(COMMDIR)\memory.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\memory.cpp /BINARY memory.obj - -mimetype.obj: $(COMMDIR)\mimetype.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\mimetype.cpp /BINARY mimetype.obj - -module.obj: $(COMMDIR)\module.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\module.cpp /BINARY module.obj - -object.obj: $(COMMDIR)\object.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\object.cpp /BINARY object.obj - -odbc.obj: $(COMMDIR)\odbc.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\odbc.cpp /BINARY odbc.obj - -prntbase.obj: $(COMMDIR)\prntbase.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\prntbase.cpp /BINARY prntbase.obj - -resource.obj: $(COMMDIR)\resource.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\resource.cpp /BINARY resource.obj - -tbarbase.obj: $(COMMDIR)\tbarbase.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\tbarbase.cpp /BINARY tbarbase.obj - -tbarsmpl.obj: $(COMMDIR)\tbarsmpl.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\tbarsmpl.cpp /BINARY tbarsmpl.obj - -textfile.obj: $(COMMDIR)\textfile.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\textfile.cpp /BINARY textfile.obj - -timercmn.obj: $(COMMDIR)\timercmn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\timercmn.cpp /BINARY timercmn.obj - -utilscmn.obj: $(COMMDIR)\utilscmn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\utilscmn.cpp /BINARY utilscmn.obj - -validate.obj: $(COMMDIR)\validate.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\validate.cpp /BINARY validate.obj - -valgen.obj: $(COMMDIR)\valgen.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\valgen.cpp /BINARY valgen.obj - -valtext.obj: $(COMMDIR)\valtext.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\valtext.cpp /BINARY valtext.obj - -date.obj: $(COMMDIR)\date.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\date.cpp /BINARY date.obj - -wxexpr.obj: $(COMMDIR)\wxexpr.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wxexpr.cpp /BINARY wxexpr.obj - -hash.obj: $(COMMDIR)\hash.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\hash.cpp /BINARY hash.obj - -list.obj: $(COMMDIR)\list.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\list.cpp /BINARY list.obj - -paper.obj: $(COMMDIR)\paper.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\paper.cpp /BINARY paper.obj - -string.obj: $(COMMDIR)\string.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\string.cpp /BINARY string.obj - -socket.obj: $(COMMDIR)\socket.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\socket.cpp /BINARY socket.obj - -sckint.obj: $(COMMDIR)\sckint.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckint.cpp /BINARY sckint.obj - -sckaddr.obj: $(COMMDIR)\sckaddr.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckaddr.cpp /BINARY sckaddr.obj - -sckfile.obj: $(COMMDIR)\sckfile.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckfile.cpp /BINARY sckfile.obj - -sckipc.obj: $(COMMDIR)\sckipc.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckipc.cpp /BINARY sckipc.obj - -sckstrm.obj: $(COMMDIR)\sckstrm.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\sckstrm.cpp /BINARY sckstrm.obj - -url.obj: $(COMMDIR)\url.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\url.cpp /BINARY url.obj - -http.obj: $(COMMDIR)\http.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\http.cpp /BINARY http.obj - -protocol.obj: $(COMMDIR)\protocol.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\protocol.cpp /BINARY protocol.obj - -tokenzr.obj: $(COMMDIR)\tokenzr.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\tokenzr.cpp /BINARY tokenzr.obj - -matrix.obj: $(COMMDIR)\matrix.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\matrix.cpp /BINARY matrix.obj - -time.obj: $(COMMDIR)\time.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\time.cpp /BINARY time.obj - -stream.obj: $(COMMDIR)\stream.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\stream.cpp /BINARY stream.obj - -wfstream.obj: $(COMMDIR)\wfstream.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wfstream.cpp /BINARY wfstream.obj - -mstream.obj: $(COMMDIR)\mstream.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\mstream.cpp /BINARY mstream.obj - -zstream.obj: $(COMMDIR)\zstream.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\zstream.cpp /BINARY zstream.obj - -datstrm.obj: $(COMMDIR)\datstrm.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\datstrm.cpp /BINARY datstrm.obj - -objstrm.obj: $(COMMDIR)\objstrm.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\objstrm.cpp /BINARY objstrm.obj - -extended.obj: $(COMMDIR)\extended.c - $(CC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\extended.c /BINARY extended.obj - -process.obj: $(COMMDIR)\process.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\process.cpp /BINARY process.obj - -variant.obj: $(COMMDIR)\variant.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\variant.cpp /BINARY variant.obj - -wincmn.obj: $(COMMDIR)\wincmn.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wincmn.cpp /BINARY wincmn.obj - -wxchar.obj: $(COMMDIR)\wxcharp.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\wxchar.cpp /BINARY wxchar.obj - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -choicdgg.obj: $(GENDIR)\choicdgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\choicdgg.cpp /BINARY choicdgg.obj - -colrdlgg.obj: $(GENDIR)\colrdgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\colrdgg.cpp /BINARY colordgg.obj - -dirdlgg.obj: $(GENDIR)\dirdlgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\dirdlgg.cpp /BINARY dirdlgg.obj - -fontdlgg.obj: $(GENDIR)\fontdlgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\fontdlgg.cpp /BINARY fontdlgg.obj - -gridg.obj: $(GENDIR)\gridg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\gridg.cpp /BINARY gridg.obj - -helpxlp.obj: $(GENDIR)\helpxlp.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\helpxlp.cpp /BINARY helpxlp.obj - -laywin.obj: $(GENDIR)\laywin.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\laywin.cpp /BINARY laywin.obj - -msgdlgg.obj: $(GENDIR)\msgdlgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\msgdlgg.cpp /BINARY msgdlgg.obj - -panelg.obj: $(GENDIR)\panelg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\panelg.cpp /BINARY panelg.obj - -printps.obj: $(GENDIR)\printps.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\printps.cpp /BINARY printps.obj - -progdlgg.obj: $(GENDIR)\progdlgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\progdlgg.cpp /BINARY progdlgg.obj - -prop.obj: $(GENDIR)\prop.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\prop.cpp /BINARY prop.obj - -propform.obj: $(GENDIR)\propform.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\propform.cpp /BINARY propform.obj - -proplist.obj: $(GENDIR)\proplist.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\proplist.cpp /BINARY proplist.obj - -prntdlgg.obj: $(GENDIR)\prntdlgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\prntdlgg.cpp /BINARY prntdlgg.obj - -sashwin.obj: $(GENDIR)\sashwin.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\sashwin.cpp /BINARY sashwin.obj - -scrolwin.obj: $(GENDIR)\scrolwin.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\scrolwin.cpp /BINARY scrolwin.obj - -splitter.obj: $(GENDIR)\splitter.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\splitter.cpp /BINARY splitter.obj - -statusbr.obj: $(GENDIR)\statusbr.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\statusbr.cpp /BINARY statusbr.obj - -tabg.obj: $(GENDIR)\tabg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\tabg.cpp /BINARY tabg.obj - -textdlgg.obj: $(GENDIR)\textdlgg.cpp - $(CCC) $(CPPFLAGS) $(IFLAGS) $(GENDIR)\textdlgg.cpp /BINARY textdlgg.obj - -crbuffri.obj: $(XPMDIR)\crbuffri.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crbuffri.c - -crbuffrp.obj: $(XPMDIR)\crbuffrp.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crbuffrp.c - -crdatfri.obj: $(XPMDIR)\crdatfri.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crdatfri.c - -crdatfrp.obj: $(XPMDIR)\crdatfrp.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crdatfrp.c - -create.obj: $(XPMDIR)\create.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\create.c - -crifrbuf.obj: $(XPMDIR)\crifrbuf.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crifrbuf.c - -crifrdat.obj: $(XPMDIR)\crifrdat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crifrdat.c - -crpfrbuf.obj: $(XPMDIR)\crpfrbuf.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crpfrbuf.c - -crpfrdat.obj: $(XPMDIR)\crpfrdat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\crpfrdat.c - -dataxpm.obj: $(XPMDIR)\data.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\data.c /BINARY dataxpm.obj - -hashtab.obj: $(XPMDIR)\hashtab.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\hashtab.c - -misc.obj: $(XPMDIR)\misc.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\misc.c - -parse.obj: $(XPMDIR)\parse.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\parse.c - -rdftodat.obj: $(XPMDIR)\rdftodat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rdftodat.c - -rdftoi.obj: $(XPMDIR)\rdftoi.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rdftoi.c - -rdftop.obj: $(XPMDIR)\rdftop.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rdftop.c - -rgb.obj: $(XPMDIR)\rgb.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\rgb.c - -scan.obj: $(XPMDIR)\scan.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\scan.c - -simx.obj: $(XPMDIR)\simx.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\simx.c - -wrffrdat.obj: $(XPMDIR)\wrffrdat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\wrffrdat.c - -wrffri.obj: $(XPMDIR)\wrffri.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\wrffri.c - -wrffrp.obj: $(XPMDIR)\wrffrp.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(XPMDIR)\wrffrp.c - -OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \ - trees$(O) -OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \ - infutil$(O) inffast$(O) - -adler32.obj: adler32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -compress.obj: compress.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -crc32.obj: crc32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -gzio.obj: gzio.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\ - infcodes.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\ - infcodes.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h - $(CC) -c $(CFLAGS) $*.c - -inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h - $(CC) -c $(CFLAGS) $*.c - -infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -uncompr.obj: uncompr.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -zutil.obj: zutil.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - - -y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c - $(CC) /ANSI_C $(CPPFLAGS) $(IFLAGS) /DEFINE USE_DEFINE $(COMMDIR)\y_tab.c /BINARY y_tab.obj - -$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -xpm: - cd $(WXDIR)\src\xpm - wmake -f makefile.wat all - cd $(WXDIR)\src\msw - -clean_xpm: - cd $(WXDIR)\src\xpm - wmake -f makefile.wat clean - cd $(WXDIR)\src\msw - -png: - cd $(WXDIR)\src\png - wmake -f makefile.wat all - cd $(WXDIR)\src\msw - -clean_png: - cd $(WXDIR)\src\png - wmake -f makefile.wat clean - cd $(WXDIR)\src\msw - -zlib: - cd $(WXDIR)\src\zlib - wmake -f makefile.wat all - cd $(WXDIR)\src\msw - -clean_zlib: - cd $(WXDIR)\src\zlib - wmake -f makefile.wat clean - cd $(WXDIR)\src\msw - - diff --git a/src/msw/makefile.twn b/src/msw/makefile.twn deleted file mode 100644 index 3a70a7d5f6..0000000000 --- a/src/msw/makefile.twn +++ /dev/null @@ -1,325 +0,0 @@ -# -# File: makefile.twn -# Author: Julian Smart -# Created: 1993 -# Updated: -# -# Makefile for libwx.a, tagetting TWIN32 - -# Replace this with your own path if necessary -WXDIR = ../.. - -# All common UNIX compiler flags and options are now in -# this central makefile. -include $(WXDIR)/src/maketwin.env - -# IMPORTANT: if you want to link in subsidiary libraries, -# required for some optional parts of wxWindows, you must -# set EXTRATARGETS and EXTRAOBJS to match the settings in wx_setup.h. -# Having done this, you won't have to worry about linking them -# into each application. -# -# Here's the full list. -# prologio: Required if using the wxWindows resource facility -# USE_WX_RESOURCES should be 1 -# xmgauge: Gauge class (required for Motif only) -# USE_GAUGE should be 1 -# xpm: XPM pixmap support -# USE_XPM_IN_X should be 1 -# wxstring: string class -# USE_GNU_WXSTRING should be 1 -# -# Unfortunately, 'ar' doesn't like combining objects and libraries, -# so we must identify all the objects from the subordinate libraries. Yuck! -XPMSRC=../../contrib/wxxpm/objects$(GUISUFFIX) -XPMOBJS=$(XPMSRC)/crbuffri.$(OBJSUFF) $(XPMSRC)/crbuffrp.$(OBJSUFF) $(XPMSRC)/crdatfri.$(OBJSUFF) $(XPMSRC)/crdatfrp.$(OBJSUFF)\ - $(XPMSRC)/create.$(OBJSUFF) $(XPMSRC)/crifrbuf.$(OBJSUFF) $(XPMSRC)/crifrdat.$(OBJSUFF) $(XPMSRC)/crpfrbuf.$(OBJSUFF) $(XPMSRC)/crpfrdat.$(OBJSUFF)\ - $(XPMSRC)/data.$(OBJSUFF) $(XPMSRC)/hashtab.$(OBJSUFF) $(XPMSRC)/misc.$(OBJSUFF) $(XPMSRC)/parse.$(OBJSUFF) $(XPMSRC)/rdftodat.$(OBJSUFF)\ - $(XPMSRC)/rdftoi.$(OBJSUFF) $(XPMSRC)/rdftop.$(OBJSUFF) $(XPMSRC)/rgb.$(OBJSUFF) $(XPMSRC)/scan.$(OBJSUFF) $(XPMSRC)/simx.$(OBJSUFF)\ - $(XPMSRC)/wrffrdat.$(OBJSUFF) $(XPMSRC)/wrffri.$(OBJSUFF) $(XPMSRC)/wrffrp.$(OBJSUFF) - -# Subordinate library possibilities - -EXTRAOBJS= - -GENDIR=../generic -COMMDIR=../common -XPMDIR=../xpm -OLEDIR=ole -MSWDIR=. - -GENERICOBJDIR=../generic/$(OBJDIR) -COMMOBJDIR=../common/$(OBJDIR) -OLEOBJDIR=ole/$(OBJDIR) -MSWDIR=$(OBJDIR) - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(GENDIR)/choicdgg.$(OBJSUFF) \ - $(GENDIR)/dirdlgg.$(OBJSUFF) \ - $(GENDIR)/gridg.$(OBJSUFF) \ - $(GENDIR)/laywin.$(OBJSUFF) \ - $(GENDIR)/panelg.$(OBJSUFF) \ - $(GENDIR)/progdlgg.$(OBJSUFF) \ - $(GENDIR)/prop.$(OBJSUFF) \ - $(GENDIR)/propform.$(OBJSUFF) \ - $(GENDIR)/proplist.$(OBJSUFF) \ - $(GENDIR)/sashwin.$(OBJSUFF) \ - $(GENDIR)/scrolwin.$(OBJSUFF) \ - $(GENDIR)/splitter.$(OBJSUFF) \ - $(GENDIR)/statusbr.$(OBJSUFF) \ - $(GENDIR)/tabg.$(OBJSUFF) \ - $(GENDIR)/textdlgg.$(OBJSUFF) - -# $(GENDIR)/colrdlgg.$(OBJSUFF) \ -# $(GENDIR)/fontdlgg.$(OBJSUFF) \ -# $(GENDIR)/prntdlgg.$(OBJSUFF) \ -# $(GENDIR)/printps.$(OBJSUFF) \ -# $(GENDIR)/msgdlgg.$(OBJSUFF) \ - -COMMONOBJS = \ - $(COMMDIR)/config.$(OBJSUFF) \ - $(COMMDIR)/cmndata.$(OBJSUFF) \ - $(COMMDIR)/dcbase.$(OBJSUFF) \ - $(COMMDIR)/docview.$(OBJSUFF) \ - $(COMMDIR)/docmdi.$(OBJSUFF) \ - $(COMMDIR)/dynarray.$(OBJSUFF) \ - $(COMMDIR)/event.$(OBJSUFF) \ - $(COMMDIR)/file.$(OBJSUFF) \ - $(COMMDIR)/fileconf.$(OBJSUFF) \ - $(COMMDIR)/filefn.$(OBJSUFF) \ - $(COMMDIR)/framecmn.$(OBJSUFF) \ - $(COMMDIR)/gdicmn.$(OBJSUFF) \ - $(COMMDIR)/helpbase.$(OBJSUFF) \ - $(COMMDIR)/image.$(OBJSUFF) \ - $(COMMDIR)/imagpng.$(OBJSUFF) \ - $(COMMDIR)/imagjpeg.$(OBJSUFF) \ - $(COMMDIR)/intl.$(OBJSUFF) \ - $(COMMDIR)/ipcbase.$(OBJSUFF) \ - $(COMMDIR)/layout.$(OBJSUFF) \ - $(COMMDIR)/log.$(OBJSUFF) \ - $(COMMDIR)/memory.$(OBJSUFF) \ - $(COMMDIR)/module.$(OBJSUFF) \ - $(COMMDIR)/mimetype.$(OBJSUFF) \ - $(COMMDIR)/object.$(OBJSUFF) \ - $(COMMDIR)/odbc.$(OBJSUFF) \ - $(COMMDIR)/process.$(OBJSUFF) \ - $(COMMDIR)/prntbase.$(OBJSUFF) \ - $(COMMDIR)/resource.$(OBJSUFF) \ - $(COMMDIR)/tbarbase.$(OBJSUFF) \ - $(COMMDIR)/tbarsmpl.$(OBJSUFF) \ - $(COMMDIR)/textfile.$(OBJSUFF) \ - $(COMMDIR)/timercmn.$(OBJSUFF) \ - $(COMMDIR)/utilscmn.$(OBJSUFF) \ - $(COMMDIR)/validate.$(OBJSUFF) \ - $(COMMDIR)/valgen.$(OBJSUFF) \ - $(COMMDIR)/valtext.$(OBJSUFF) \ - $(COMMDIR)/date.$(OBJSUFF) \ - $(COMMDIR)/wxexpr.$(OBJSUFF) \ - $(COMMDIR)/hash.$(OBJSUFF) \ - $(COMMDIR)/list.$(OBJSUFF) \ - $(COMMDIR)/variant.$(OBJSUFF) \ - $(COMMDIR)/paper.$(OBJSUFF) \ - $(COMMDIR)/string.$(OBJSUFF) \ - $(COMMDIR)/time.$(OBJSUFF) \ - $(COMMDIR)/tokenzr.$(OBJSUFF) \ - $(COMMDIR)/y_tab.$(OBJSUFF) \ - $(COMMDIR)/stream.$(OBJSUFF) \ - $(COMMDIR)/wfstream.$(OBJSUFF) \ - $(COMMDIR)/mstream.$(OBJSUFF) \ - $(COMMDIR)/zstream.$(OBJSUFF) \ - $(COMMDIR)/datstrm.$(OBJSUFF) \ - $(COMMDIR)/objstrm.$(OBJSUFF) \ - $(COMMDIR)/extended.$(OBJSUFF) \ - $(COMMDIR)/wincmn.$(OBJSUFF) - -# NOTE: if the socket-related files fail with a syntax error in Sockets.h, -# remove the files (probably all GnuWin32 releases < b20). Cygwin b20 is OK, -# Mingw32 may still have problems. -# $(COMMDIR)/socket.$(OBJSUFF) \ -# $(COMMDIR)/sckaddr.$(OBJSUFF) \ -# $(COMMDIR)/sckfile.$(OBJSUFF) \ -# $(COMMDIR)/sckipc.$(OBJSUFF) \ -# $(COMMDIR)/sckstrm.$(OBJSUFF) \ -# $(COMMDIR)/protocol.$(OBJSUFF) \ -# $(COMMDIR)/http.$(OBJSUFF) \ -# $(COMMDIR)/ftp.$(OBJSUFF) \ -# $(COMMDIR)/url.$(OBJSUFF) \ - -MSWOBJS = \ - accel.$(OBJSUFF) \ - app.$(OBJSUFF) \ - bitmap.$(OBJSUFF) \ - bmpbuttn.$(OBJSUFF) \ - brush.$(OBJSUFF) \ - button.$(OBJSUFF) \ - checkbox.$(OBJSUFF) \ - checklst.$(OBJSUFF) \ - caret.$(OBJSUFF) \ - choice.$(OBJSUFF) \ - clipbrd.$(OBJSUFF) \ - colordlg.$(OBJSUFF) \ - colour.$(OBJSUFF) \ - combobox.$(OBJSUFF) \ - control.$(OBJSUFF) \ - curico.$(OBJSUFF) \ - cursor.$(OBJSUFF) \ - data.$(OBJSUFF) \ - dc.$(OBJSUFF) \ - dcmemory.$(OBJSUFF) \ - dcclient.$(OBJSUFF) \ - dcprint.$(OBJSUFF) \ - dcscreen.$(OBJSUFF) \ - dde.$(OBJSUFF) \ - dialog.$(OBJSUFF) \ - dib.$(OBJSUFF) \ - filedlg.$(OBJSUFF) \ - font.$(OBJSUFF) \ - fontdlg.$(OBJSUFF) \ - frame.$(OBJSUFF) \ - gaugemsw.$(OBJSUFF) \ - gauge95.$(OBJSUFF) \ - gdiobj.$(OBJSUFF) \ - helpwin.$(OBJSUFF) \ - icon.$(OBJSUFF) \ - imaglist.$(OBJSUFF) \ - joystick.$(OBJSUFF) \ - listbox.$(OBJSUFF) \ - listctrl.$(OBJSUFF) \ - main.$(OBJSUFF) \ - mdi.$(OBJSUFF) \ - menu.$(OBJSUFF) \ - menuitem.$(OBJSUFF) \ - metafile.$(OBJSUFF) \ - minifram.$(OBJSUFF) \ - msgdlg.$(OBJSUFF) \ - nativdlg.$(OBJSUFF) \ - notebook.$(OBJSUFF) \ - ownerdrw.$(OBJSUFF) \ - palette.$(OBJSUFF) \ - pen.$(OBJSUFF) \ - penwin.$(OBJSUFF) \ - printdlg.$(OBJSUFF) \ - printwin.$(OBJSUFF) \ - radiobox.$(OBJSUFF) \ - radiobut.$(OBJSUFF) \ - region.$(OBJSUFF) \ - registry.$(OBJSUFF) \ - regconf.$(OBJSUFF) \ - scrolbar.$(OBJSUFF) \ - settings.$(OBJSUFF) \ - slidrmsw.$(OBJSUFF) \ - slider95.$(OBJSUFF) \ - spinbutt.$(OBJSUFF) \ - statbmp.$(OBJSUFF) \ - statbox.$(OBJSUFF) \ - statbr95.$(OBJSUFF) \ - stattext.$(OBJSUFF) \ - tabctrl.$(OBJSUFF) \ - taskbar.$(OBJSUFF) \ - tbar95.$(OBJSUFF) \ - tbarmsw.$(OBJSUFF) \ - textctrl.$(OBJSUFF) \ - thread.$(OBJSUFF) \ - timer.$(OBJSUFF) \ - tooltip.$(OBJSUFF) \ - treectrl.$(OBJSUFF) \ - utils.$(OBJSUFF) \ - utilsexc.$(OBJSUFF) \ - wave.$(OBJSUFF) \ - window.$(OBJSUFF) \ - xpmhand.$(OBJSUFF) - -# Native wxDirDlg can't be compiled due to GnuWin32/OLE limitations -# dirdlg.$(OBJSUFF) \ - -# OLE not supported yet by GnuWin32 -# $(OLEDIR)/droptgt.$(OBJSUFF) \ -# $(OLEDIR)/dropsrc.$(OBJSUFF) \ -# $(OLEDIR)/dataobj.$(OBJSUFF) \ -# $(OLEDIR)/oleutils.$(OBJSUFF) \ -# $(OLEDIR)/uuid.$(OBJSUFF) \ -# $(OLEDIR)/automtn.$(OBJSUFF) - -XPMOBJECTS = $(XPMDIR)/crbuffri.o\ - $(XPMDIR)/crdatfri.o\ - $(XPMDIR)/create.o $(XPMDIR)/crifrbuf.o\ - $(XPMDIR)/crifrdat.o\ - $(XPMDIR)/data.o\ - $(XPMDIR)/hashtab.o $(XPMDIR)/misc.o\ - $(XPMDIR)/parse.o $(XPMDIR)/rdftodat.o\ - $(XPMDIR)/rdftoi.o\ - $(XPMDIR)/rgb.o $(XPMDIR)/scan.o\ - $(XPMDIR)/simx.o $(XPMDIR)/wrffrdat.o\ - $(XPMDIR)/wrffrp.o $(XPMDIR)/wrffri.o - -OBJECTS = $(MSWOBJS) $(COMMONOBJS) $(GENERICOBJS) # $(XPMOBJECTS) - -all: $(OBJECTS) $(WXLIB) - -base: - cd $(WXDIR)/src/common; $(MAKE) -f makefile.g95 GUI=$(GUI) GUISUFFIX=$(GUISUFFIX) CC=$(CC)\ - OPTIONS='$(OPTIONS)' DEBUG='$(DEBUG)' DEBUGFLAGS='$(DEBUGFLAGS)' WARN='$(WARN)' XLIB='$(XLIB)' XINCLUDE='$(XINCLUDE)' - - -$(WXLIB): $(OBJECTS) $(EXTRAOBJS) - ar $(AROPTIONS) $@ $(EXTRAOBJS) $(OBJECTS) - $(RANLIB) $@ - -#$(MSWOBJDIR): -# mkdir $(OBJDIR) - -#$(COMMOBJDIR): -# mkdir $(COMMDIR)/$(OBJDIR) - -#$(GENERICOBJDIR): -# mkdir $(GENDIR)/$(OBJDIR) - -$(OBJECTS): $(WXINC)/wx/defs.h $(WXINC)/wx/object.h $(WXINC)/wx/setup.h - -$(COMMDIR)/y_tab.$(OBJSUFF): $(COMMDIR)/y_tab.c $(COMMDIR)/lex_yy.c - $(CCLEX) -c $(CPPFLAGS) -o $@ $(COMMDIR)/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -$(COMMDIR)/lex_yy.c: $(COMMDIR)/lexer.l - $(LEX) $(COMMDIR)/lexer.l - mv lex.yy.c $(COMMDIR)/lex_yy.c - -# The following may be required for FLEX -# $(LEX) -o$(COMMDIR)/lex_yy.c $(COMMDIR)/lexer.l - -# sed -e "s/BUFSIZ/5000/g" < lex.yy.c | \ -# sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ -# sed -e "s/YYLMAX 200/YYLMAX 5000/g" > lex_yy.c -# rm -f lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. - -#$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y -# $(YACC) -o $(COMMDIR)/y_tab.c $(COMMDIR)/parser.y - -# If you use e.g. gcc on Unix, uncomment these lines -# and comment out the above. - -$(COMMDIR)/y_tab.c: $(COMMDIR)/parser.y - $(YACC) $(COMMDIR)/parser.y - mv y.tab.c $(COMMDIR)/y_tab.c - -# Extra targets -rcparser: - cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95 - cd $(WXDIR)/src/msw - -clean_rcp: - cd $(WXDIR)/utils/rcparser/src; $(MAKE) -f makefile.g95 clean - cd $(WXDIR)/src/msw - -clean: - rm -f $(OBJECTS) $(EXTRAOBJS) ../common/y_tab.c ../common/lex_yy.c $(WXDIR)/lib/libwx$(GUISUFFIX).a core - -cleanall: clean - diff --git a/src/msw/makefile.vc b/src/msw/makefile.vc deleted file mode 100644 index 7b8e046e4b..0000000000 --- a/src/msw/makefile.vc +++ /dev/null @@ -1,735 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds wxWindows library wx.lib for VC++ (32-bit) -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# dll builds a library (wxdll.lib) suitable for creating DLLs -# -!include <..\makevc.env> - -THISDIR=$(WXWIN)\src\msw - -!if "$(WXMAKINGDLL)" == "1" -LIBTARGET=$(WXDIR)\lib\$(WXLIBNAME).dll -DUMMYOBJ=$D\dummydll.obj -!else -LIBTARGET=$(WXLIB) -DUMMYOBJ=$D\dummy.obj -!endif - -# Please set these according to the settings in setup.h, so we can include -# the appropriate libraries in wx.lib - -# This one overrides the others, to be consistent with the settings in setup.h -MINIMAL_WXWINDOWS_SETUP=0 - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -# These are absolute paths, so that the compiler -# generates correct __FILE__ symbols for debugging. -# Otherwise you don't be able to double-click on a memory -# error to load that file. -GENDIR=$(WXDIR)\src\generic -COMMDIR=$(WXDIR)\src\common -OLEDIR=ole -MSWDIR=$(WXDIR)\src\msw -DOCDIR = $(WXDIR)\docs - -{..\generic}.cpp{..\generic\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\common}.cpp{..\common\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\msw}.cpp{..\msw\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -{..\msw\ole}.cpp{..\msw\ole\$D}.obj: - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $< -<< - -GENERICOBJS= \ - ..\generic\$D\choicdgg.obj \ - ..\generic\$D\gridg.obj \ - ..\generic\$D\laywin.obj \ - ..\generic\$D\panelg.obj \ - ..\generic\$D\progdlgg.obj \ - ..\generic\$D\prop.obj \ - ..\generic\$D\propform.obj \ - ..\generic\$D\proplist.obj \ - ..\generic\$D\sashwin.obj \ - ..\generic\$D\scrolwin.obj \ - ..\generic\$D\splitter.obj \ - ..\generic\$D\statusbr.obj \ - ..\generic\$D\tabg.obj \ - ..\generic\$D\textdlgg.obj - -# ..\generic\$D\imaglist.obj \ -# ..\generic\$D\treectrl.obj \ -# ..\generic\$D\listctrl.obj \ -# ..\generic\$D\notebook.obj \ - -# These are generic things that don't need to be compiled on MSW, -# but sometimes it's useful to do so for testing purposes. -NONESSENTIALOBJS= \ - ..\generic\$D\printps.obj \ - ..\generic\$D\prntdlgg.obj \ - ..\generic\$D\msgdlgg.obj \ - ..\generic\$D\helpxlp.obj \ - ..\generic\$D\colrdlgg.obj \ - ..\generic\$D\fontdlgg.obj - -COMMONOBJS = \ - ..\common\$D\cmndata.obj \ - ..\common\$D\config.obj \ - ..\common\$D\dcbase.obj \ - ..\common\$D\db.obj \ - ..\common\$D\dbtable.obj \ - ..\common\$D\docview.obj \ - ..\common\$D\docmdi.obj \ - ..\common\$D\dynarray.obj \ - ..\common\$D\dynlib.obj \ - ..\common\$D\event.obj \ - ..\common\$D\file.obj \ - ..\common\$D\filefn.obj \ - ..\common\$D\fileconf.obj \ - ..\common\$D\framecmn.obj \ - ..\common\$D\ftp.obj \ - ..\common\$D\gdicmn.obj \ - ..\common\$D\image.obj \ - ..\common\$D\imagjpeg.obj \ - ..\common\$D\imagpng.obj \ - ..\common\$D\imaggif.obj \ - ..\common\$D\intl.obj \ - ..\common\$D\ipcbase.obj \ - ..\common\$D\helpbase.obj \ - ..\common\$D\layout.obj \ - ..\common\$D\log.obj \ - ..\common\$D\memory.obj \ - ..\common\$D\mimetype.obj \ - ..\common\$D\module.obj \ - ..\common\$D\odbc.obj \ - ..\common\$D\object.obj \ - ..\common\$D\prntbase.obj \ - ..\common\$D\resource.obj \ - ..\common\$D\tbarbase.obj \ - ..\common\$D\tbarsmpl.obj \ - ..\common\$D\textfile.obj \ - ..\common\$D\timercmn.obj \ - ..\common\$D\utilscmn.obj \ - ..\common\$D\validate.obj \ - ..\common\$D\valgen.obj \ - ..\common\$D\valtext.obj \ - ..\common\$D\date.obj \ - ..\common\$D\hash.obj \ - ..\common\$D\list.obj \ - ..\common\$D\paper.obj \ - ..\common\$D\string.obj \ - ..\common\$D\socket.obj \ - ..\common\$D\sckaddr.obj \ - ..\common\$D\sckint.obj \ - ..\common\$D\sckfile.obj \ - ..\common\$D\sckipc.obj \ - ..\common\$D\sckstrm.obj \ - ..\common\$D\url.obj \ - ..\common\$D\http.obj \ - ..\common\$D\protocol.obj \ - ..\common\$D\time.obj \ - ..\common\$D\tokenzr.obj \ - ..\common\$D\wxexpr.obj \ - ..\common\$D\y_tab.obj \ - ..\common\$D\extended.obj \ - ..\common\$D\process.obj \ - ..\common\$D\wfstream.obj \ - ..\common\$D\mstream.obj \ - ..\common\$D\zstream.obj \ - ..\common\$D\stream.obj \ - ..\common\$D\datstrm.obj \ - ..\common\$D\objstrm.obj \ - ..\common\$D\variant.obj \ - ..\common\$D\wincmn.obj \ - ..\common\$D\wxchar.obj - -MSWOBJS = \ - ..\msw\$D\accel.obj \ - ..\msw\$D\app.obj \ - ..\msw\$D\bitmap.obj \ - ..\msw\$D\bmpbuttn.obj \ - ..\msw\$D\brush.obj \ - ..\msw\$D\button.obj \ - ..\msw\$D\checkbox.obj \ - ..\msw\$D\checklst.obj \ - ..\msw\$D\caret.obj \ - ..\msw\$D\choice.obj \ - ..\msw\$D\clipbrd.obj \ - ..\msw\$D\colordlg.obj \ - ..\msw\$D\colour.obj \ - ..\msw\$D\combobox.obj \ - ..\msw\$D\control.obj \ - ..\msw\$D\curico.obj \ - ..\msw\$D\cursor.obj \ - ..\msw\$D\data.obj \ - ..\msw\$D\dc.obj \ - ..\msw\$D\dcmemory.obj \ - ..\msw\$D\dcclient.obj \ - ..\msw\$D\dcprint.obj \ - ..\msw\$D\dcscreen.obj \ - ..\msw\$D\dde.obj \ - ..\msw\$D\dialog.obj \ - ..\msw\$D\dib.obj \ - ..\msw\$D\dibutils.obj \ - ..\msw\$D\dirdlg.obj \ - ..\msw\$D\dragimag.obj \ - ..\msw\$D\filedlg.obj \ - ..\msw\$D\font.obj \ - ..\msw\$D\fontdlg.obj \ - ..\msw\$D\frame.obj \ - ..\msw\$D\gauge95.obj \ - ..\msw\$D\gaugemsw.obj \ - ..\msw\$D\gdiobj.obj \ - ..\msw\$D\helpwin.obj \ - ..\msw\$D\icon.obj \ - ..\msw\$D\iniconf.obj \ - ..\msw\$D\joystick.obj \ - ..\msw\$D\imaglist.obj \ - ..\msw\$D\listbox.obj \ - ..\msw\$D\listctrl.obj \ - ..\msw\$D\main.obj \ - ..\msw\$D\mdi.obj \ - ..\msw\$D\menu.obj \ - ..\msw\$D\menuitem.obj \ - ..\msw\$D\metafile.obj \ - ..\msw\$D\minifram.obj \ - ..\msw\$D\msgdlg.obj \ - ..\msw\$D\nativdlg.obj \ - ..\msw\$D\notebook.obj \ - ..\msw\$D\ownerdrw.obj \ - ..\msw\$D\palette.obj \ - ..\msw\$D\pen.obj \ - ..\msw\$D\penwin.obj \ - ..\msw\$D\pnghand.obj \ - ..\msw\$D\printdlg.obj \ - ..\msw\$D\printwin.obj \ - ..\msw\$D\radiobox.obj \ - ..\msw\$D\radiobut.obj \ - ..\msw\$D\region.obj \ - ..\msw\$D\registry.obj \ - ..\msw\$D\regconf.obj \ - ..\msw\$D\scrolbar.obj \ - ..\msw\$D\settings.obj \ - ..\msw\$D\slidrmsw.obj \ - ..\msw\$D\slider95.obj \ - ..\msw\$D\spinbutt.obj \ - ..\msw\$D\statbmp.obj \ - ..\msw\$D\statbox.obj \ - ..\msw\$D\statbr95.obj \ - ..\msw\$D\stattext.obj \ - ..\msw\$D\tabctrl.obj \ - ..\msw\$D\taskbar.obj \ - ..\msw\$D\tbar95.obj \ - ..\msw\$D\tbarmsw.obj \ - ..\msw\$D\textctrl.obj \ - ..\msw\$D\thread.obj \ - ..\msw\$D\timer.obj \ - ..\msw\$D\tooltip.obj \ - ..\msw\$D\treectrl.obj \ - ..\msw\$D\utils.obj \ - ..\msw\$D\utilsexc.obj \ - ..\msw\ole\$D\uuid.obj \ - ..\msw\$D\wave.obj \ - ..\msw\$D\window.obj \ - ..\msw\$D\xpmhand.obj \ - ..\msw\ole\$D\dataobj.obj \ - ..\msw\ole\$D\automtn.obj \ - ..\msw\ole\$D\droptgt.obj \ - ..\msw\ole\$D\dropsrc.obj \ - ..\msw\ole\$D\oleutils.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) - -# Normal, static library -all: dirs $(DUMMYOBJ) $(OBJECTS) $(PERIPH_TARGET) png zlib xpm jpeg $(LIBTARGET) - -dirs: $(MSWDIR)\$D $(COMMDIR)\$D $(GENDIR)\$D $(OLEDIR)\$D - -test: $(MSWDIR)\$D\wave.obj -test2: ..\common\Debug\config.obj - -$D: - mkdir $D - -$(COMMDIR)\$D: - mkdir $(COMMDIR)\$D - -$(MSWDIR)\$D: - mkdir $(MSWDIR)\$D - -$(GENDIR)\$D: - mkdir $(GENDIR)\$D - -$(OLEDIR)\$D: - mkdir $(OLEDIR)\$D - -# wxWindows library as DLL -dll: - nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME) - -cleandll: - nmake -f makefile.vc clean FINAL=$(FINAL) DLL=1 WXMAKINGDLL=1 NEW_WXLIBNAME=$(NEW_WXLIBNAME) - -# wxWindows + app as DLL. Only affects main.cpp. -dllapp: - nmake -f makefile.vc all FINAL=$(FINAL) DLL=1 - -# wxWindows + app as DLL, for Netscape plugin - remove DllMain. -dllnp: - nmake -f makefile.vc all NOMAIN=1 FINAL=$(FINAL) DLL=1 - -# Use this to make dummy.obj and generate a PCH. -# You might use the dll target, then the pch target, in order to -# generate a DLL, then a PCH/dummy.obj for compiling your applications with. -# -# Explanation: Normally, when compiling a static version of wx.lib, your dummy.obj/PCH -# are associated with wx.lib. When using a DLL version of wxWindows, however, -# the DLL is compiled without a PCH, so you only need it for compiling the app. -# In fact headers are compiled differently depending on whether a DLL is being made -# or an app is calling the DLL exported functionality (WXDLLEXPORT is different -# in each case) so you couldn't use the same PCH. -pch: - nmake -f makefile.vc pch1 WXUSINGDLL=1 FINAL=$(FINAL) NEW_WXLIBNAME=$(NEW_WXLIBNAME) - -pch1: dirs $(DUMMYOBJ) - echo $(DUMMYOBJ) - -!if "$(WXMAKINGDLL)" != "1" - -### Static library - -$(WXDIR)\lib\$(WXLIBNAME).lib: $D\dummy.obj $(OBJECTS) $(PERIPH_LIBS) - -erase $(LIBTARGET) - $(implib) @<< --out:$@ --machine:$(CPU) -$(OBJECTS) $(PERIPH_LIBS) -<< - -!else - -### Update the import library - -$(WXDIR)\lib\$(WXLIBNAME).lib: $(DUMMYOBJ) $(OBJECTS) - $(implib) @<< - -machine:$(CPU) - -def:wx.def - $(DUMMYOBJ) $(OBJECTS) - -out:$(WXDIR)\lib\$(WXLIBNAME).lib -<< - -# Update the dynamic link library -$(WXDIR)\lib\$(WXLIBNAME).dll: $(DUMMYOBJ) $(OBJECTS) $(WXDIR)\lib\$(WXLIBNAME).lib - $(link) @<< - $(LINKFLAGS) - -out:$(WXDIR)\lib\$(WXLIBNAME).dll - $(DUMMYOBJ) $(OBJECTS) $(guilibsdll) shell32.lib comctl32.lib ctl3d32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib odbc32.lib advapi32.lib winmm.lib $(WXDIR)\lib\winpng.lib $(WXDIR)\lib\zlib.lib $(WXDIR)\lib\xpm.lib $(WXDIR)\lib\jpeg.lib -<< - -!endif - - -######################################################## -# Windows-specific objects - -$D\dummy.obj: dummy.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h - cl $(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummy.obj /c /Tp dummy.cpp - -$D\dummydll.obj: dummydll.$(SRCSUFF) $(WXDIR)\include\wx\wx.h $(WXDIR)\include\wx\msw\setup.h - cl @<< -$(CPPFLAGS) $(MAKEPRECOMP) /Fo$D\dummydll.obj /c /Tp dummydll.cpp -<< - -# If taking wxWindows from CVS, setup.h doesn't exist yet. -# Actually the 'if not exist setup.h' test doesn't work -# (copies the file anyway) -# we'll have to comment this rule out. - -#$(WXDIR)\include\wx\msw\setup.h: $(WXDIR)\include\wx\msw\setup0.h -# cd "$(WXDIR)"\include\wx\msw -# if not exist setup.h copy setup0.h setup.h -# cd "$(WXDIR)"\src\msw - -..\common\$D\extended.obj: ..\common\extended.c - cl @<< -$(CPPFLAGS2) /c $(COMMDIR)\extended.c /Fo$@ -<< - -..\common\$D\y_tab.obj: ..\common\y_tab.c ..\common\lex_yy.c - cl @<< -$(CPPFLAGS2) /c ..\common\y_tab.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ -<< - -..\common\y_tab.c: ..\common\dosyacc.c - copy "..\common"\dosyacc.c "..\common"\y_tab.c - -..\common\lex_yy.c: ..\common\doslex.c - copy "..\common"\doslex.c "..\common"\lex_yy.c - -$(OBJECTS): $(WXDIR)/include/wx/setup.h - -# Peripheral components - -png: - cd $(WXDIR)\src\png - nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) - cd $(WXDIR)\src\msw - -clean_png: - cd $(WXDIR)\src\png - nmake -f makefile.vc clean - cd $(WXDIR)\src\msw - -zlib: - cd $(WXDIR)\src\zlib - nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) - cd $(WXDIR)\src\msw - -clean_zlib: - cd $(WXDIR)\src\zlib - nmake -f makefile.vc clean - cd $(WXDIR)\src\msw - -jpeg: - cd $(WXDIR)\src\jpeg - nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) all - cd $(WXDIR)\src\msw - -clean_jpeg: - cd $(WXDIR)\src\jpeg - nmake -f makefile.vc clean - cd $(WXDIR)\src\msw - -xpm: - cd $(WXDIR)\src\xpm - nmake -f makefile.vc FINAL=$(FINAL) DLL=$(DLL) WXMAKINGDLL=$(WXMAKINGDLL) - cd $(WXDIR)\src\msw - -clean_xpm: - cd $(WXDIR)\src\xpm - nmake -f makefile.vc clean - cd $(WXDIR)\src\msw - -rcparser: - cd $(WXDIR)\utils\rcparser\src - nmake -f makefile.vc FINAL=$(FINAL) - cd $(WXDIR)\src\msw - -clean: $(PERIPH_CLEAN_TARGET) clean_png clean_zlib clean_jpeg clean_xpm - -erase $(LIBTARGET) - -erase $(WXDIR)\lib\$(WXLIBNAME).pdb - -erase ..\..\lib\wx200.dll - -erase ..\..\lib\wx200.lib - -erase ..\..\lib\wx200.exp - -erase ..\..\lib\wx200.pdb - -erase ..\..\lib\wx200.ilk - -erase *.pdb - -erase *.sbr - -erase $(WXLIBNAME).pch - -erase $(GENDIR)\$D\*.obj - -erase $(GENDIR)\$D\*.pdb - -erase $(GENDIR)\$D\*.sbr - -erase $(COMMDIR)\$D\*.obj - -erase $(COMMDIR)\$D\*.pdb - -erase $(COMMDIR)\$D\*.sbr - -erase $(COMMDIR)\\y_tab.c - -erase $(COMMDIR)\lex_yy.c - -erase $(MSWDIR)\$D\*.obj - -erase $(MSWDIR)\$D\*.sbr - -erase $(MSWDIR)\$D\*.pdb - -erase $(OLEDIR)\$D\*.obj - -erase $(OLEDIR)\$D\*.sbr - -erase $(OLEDIR)\$D\*.pdb - -rmdir $(D) - -rmdir ole\$(D) - -rmdir ..\generic\$(D) - -rmdir ..\common\$(D) - -cleanall: clean - -# Making documents -docs: allhlp allhtml allpdfrtf -alldocs: docs -hlp: wxhlp portinghlp -wxhlp: $(DOCDIR)/winhelp/wx.hlp -prophlp: $(DOCDIR)/winhelp/prop.hlp -refhlp: $(DOCDIR)/winhelp/techref.hlp -rtf: $(DOCDIR)/winhelp/wx.rtf -proprtf: $(DOCDIR)/winhelp/prop.rtf -pdfrtf: $(DOCDIR)/pdf/wx.rtf -proppdfrtf: $(DOCDIR)/pdf/prop.rtf -refpdfrtf: $(DOCDIR)/pdf/techref.rtf -html: wxhtml portinghtml -wxhtml: $(DOCDIR)\html\wx\wx.htm -htmlhelp: $(DOCDIR)\html\wx\wx.chm -prophtml: $(DOCDIR)\html\proplist\prop.htm -ps: wxps referencps -wxps: $(WXDIR)\docs\ps\wx.ps -propps: $(WXDIR)\docs\ps\prop.ps -referencps: $(WXDIR)\docs\ps\referenc.ps - -portinghtml: $(DOCDIR)\html\porting\port.htm -portingrtf: $(DOCDIR)/winhelp/porting.rtf -portinghlp: $(DOCDIR)/winhelp/porting.hlp -portingpdfrtf: $(DOCDIR)/pdf/porting.rtf -portingps: $(WXDIR)\docs\ps\porting.ps - -allhlp: wxhlp portinghlp prophlp - cd $(WXDIR)\utils\dialoged\src - nmake -f makefile.vc hlp - cd $(THISDIR) - -# cd $(WXDIR)\utils\wxhelp\src -# nmake -f makefile.vc hlp -# cd $(WXDIR)\utils\tex2rtf\src -# nmake -f makefile.vc hlp -# cd $(WXDIR)\utils\wxgraph\src -# nmake -f makefile.vc hlp -# cd $(WXDIR)\utils\wxchart\src -# nmake -f makefile.vc hlp -# cd $(WXDIR)\utils\wxtree\src -# nmake -f makefile.vc hlp -# cd $(WXDIR)\utils\wxbuild\src -# nmake -f makefile.vc hlp -# cd $(WXDIR)\utils\wxgrid\src -# nmake -f makefile.vc hlp - -allhtml: wxhtml portinghtml prophtml - cd $(WXDIR)\utils\dialoged\src - nmake -f makefile.vc html - cd $(THISDIR) - -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\dialoged\src -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\hytext\src -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\wxhelp\src -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\tex2rtf\src -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\wxgraph\src -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\wxchart\src -# nmake -f makefile.vc html -# cd $(WXDIR)\utils\wxtree\src -# nmake -f makefile.vc html - -allps: wxps referencps portingps propps - cd $(WXDIR)\utils\dialoged\src - nmake -f makefile.vc ps - cd $(THISDIR) - -allpdfrtf: pdfrtf portingpdfrtf proppdfrtf - cd $(WXDIR)\utils\dialoged\src - nmake -f makefile.vc pdfrtf - cd $(THISDIR) - -# cd $(WXDIR)\utils\wxhelp\src -# nmake -f makefile.vc ps -# cd $(WXDIR)\utils\tex2rtf\src -# nmake -f makefile.vc ps -# cd $(WXDIR)\utils\wxgraph\src -# nmake -f makefile.vc ps -# cd $(WXDIR)\utils\wxchart\src -# nmake -f makefile.vc ps -# cd $(WXDIR)\utils\wxtree\src -# nmake -f makefile.vc ps -# cd $(THISDIR) - -$(DOCDIR)/winhelp/wx.hlp: $(DOCDIR)/latex/wx/wx.rtf $(DOCDIR)/latex/wx/wx.hpj - cd $(DOCDIR)/latex/wx - -erase wx.ph - hc wx - move wx.hlp $(DOCDIR)\winhelp\wx.hlp - move wx.cnt $(DOCDIR)\winhelp\wx.cnt - cd $(THISDIR) - -$(DOCDIR)/winhelp/porting.hlp: $(DOCDIR)/latex/porting/porting.rtf $(DOCDIR)/latex/porting/porting.hpj - cd $(DOCDIR)/latex/porting - -erase porting.ph - hc porting - move porting.hlp $(DOCDIR)\winhelp\porting.hlp - move porting.cnt $(DOCDIR)\winhelp\porting.cnt - cd $(THISDIR) - -$(DOCDIR)/winhelp/prop.hlp: $(DOCDIR)/latex/proplist/prop.rtf $(DOCDIR)/latex/proplist/prop.hpj - cd $(DOCDIR)/latex/proplist - -erase prop.ph - hc prop - move prop.hlp $(DOCDIR)\winhelp\prop.hlp - move prop.cnt $(DOCDIR)\winhelp\prop.cnt - cd $(THISDIR) - -$(DOCDIR)/winhelp/techref.hlp: $(DOCDIR)/latex/techref/techref.rtf $(DOCDIR)/latex/techref/techref.hpj - cd $(DOCDIR)/latex/techref - -erase techref.ph - hc techref - move techref.hlp $(DOCDIR)\winhelp\techref.hlp - move techref.cnt $(DOCDIR)\winhelp\techref.cnt - cd $(THISDIR) - -$(DOCDIR)/latex/wx/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex - cd $(DOCDIR)\latex\wx - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/latex/wx/wx.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)/latex/porting/porting.rtf: $(DOCDIR)/latex/porting/porting.tex - cd $(DOCDIR)\latex\porting - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/latex/porting/porting.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)/latex/proplist/prop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex - cd $(DOCDIR)\latex\proplist - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/prop.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)/latex/techref/techref.rtf: $(DOCDIR)/latex/techref/techref.tex - cd $(DOCDIR)\latex\techref - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/latex/techref/techref.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)/pdf/wx.rtf: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/manual.tex - cd $(DOCDIR)\latex\wx - -copy *.bmp *.wmf $(DOCDIR)\pdf - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/wx/manual.tex $(DOCDIR)/pdf/wx.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)/pdf/porting.rtf: $(DOCDIR)/latex/porting/porting.tex - cd $(DOCDIR)\latex\porting - -copy *.bmp *.wmf $(DOCDIR)\pdf - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/porting/porting.tex $(DOCDIR)/pdf/porting.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)/pdf/prop.rtf: $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/latex/proplist/body.tex $(DOCDIR)/latex/proplist/classes.tex $(DOCDIR)/latex/proplist/changes.tex - cd $(DOCDIR)\latex\proplist - -copy *.bmp *.wmf $(DOCDIR)\pdf - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/proplist/prop.tex $(DOCDIR)/pdf/prop.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)/pdf/techref.rtf: $(DOCDIR)/latex/techref/techref.tex - cd $(DOCDIR)\latex\techref - -copy *.bmp *.wmf $(DOCDIR)\pdf - -start $(WAITFLAG) tex2rtf $(DOCDIR)/latex/techref/techref.tex $(DOCDIR)/pdf/techref.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)\html\wx\wx.htm: $(DOCDIR)\latex\wx\classes.tex $(DOCDIR)\latex\wx\body.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)\latex\wx\manual.tex - cd $(DOCDIR)\latex\wx - -mkdir $(DOCDIR)\html\wx - -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\wx\manual.tex $(DOCDIR)\html\wx\wx.htm -twice -html - -erase $(DOCDIR)\html\wx\*.con - -erase $(DOCDIR)\html\wx\*.ref - -erase $(DOCDIR)\latex\wx\*.con - -erase $(DOCDIR)\latex\wx\*.ref - cd $(THISDIR) - -$(DOCDIR)\html\wx\wx.chm : $(DOCDIR)\html\wx\wx.htm $(DOCDIR)\html\wx\wx.hhp - cd $(DOCDIR)\html\wx - -hhc wx.hhp - cd $(THISDIR) - - -$(DOCDIR)\html\porting\port.htm: $(DOCDIR)\latex\porting\porting.tex - cd $(DOCDIR)\latex\porting - -mkdir $(DOCDIR)\html\porting - -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\porting\porting.tex $(DOCDIR)\html\porting\port.htm -twice -html - -erase $(DOCDIR)\html\porting\*.con - -erase $(DOCDIR)\html\porting\*.ref - -erase $(DOCDIR)\latex\porting\*.con - -erase $(DOCDIR)\latex\porting\*.ref - cd $(THISDIR) - -$(DOCDIR)\html\proplist\prop.htm: $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\latex\proplist\body.tex $(DOCDIR)\latex\proplist\classes.tex $(DOCDIR)\latex\proplist\changes.tex - cd $(DOCDIR)\latex\proplist - -mkdir $(DOCDIR)\html\proplist - -start $(WAITFLAG) tex2rtf $(DOCDIR)\latex\proplist\prop.tex $(DOCDIR)\html\proplist\prop.htm -twice -html - -erase $(DOCDIR)\html\proplist\*.con - -erase $(DOCDIR)\html\proplist\*.ref - -erase $(DOCDIR)\latex\proplist\*.con - -erase $(DOCDIR)\latex\proplist\*.ref - cd $(THISDIR) - -$(WXDIR)\docs\latex\wx\manual.dvi: $(DOCDIR)/latex/wx/body.tex $(DOCDIR)/latex/wx/manual.tex - cd $(WXDIR)\docs\latex\wx - -latex manual - -latex manual - -makeindx manual - -bibtex manual - -latex manual - -latex manual - cd $(THISDIR) - -$(WXDIR)\docs\latex\porting\porting.dvi: $(DOCDIR)/latex/porting/porting.tex - cd $(WXDIR)\docs\latex\porting - -latex porting - -latex porting - -makeindx porting - -bibtex porting - -latex porting - -latex porting - cd $(THISDIR) - -$(WXDIR)\docs\ps\wx.ps: $(WXDIR)\docs\latex\wx\manual.dvi - cd $(WXDIR)\docs\latex\wx - -dvips32 -o wx.ps manual - move wx.ps $(WXDIR)\docs\ps\wx.ps - cd $(THISDIR) - -$(WXDIR)\docs\ps\porting.ps: $(WXDIR)\docs\latex\porting\porting.dvi - cd $(WXDIR)\docs\latex\porting - -dvips32 -o porting.ps porting - move porting.ps $(WXDIR)\docs\ps\porting.ps - cd $(THISDIR) - -$(WXDIR)\docs\latex\wx\referenc.dvi: $(DOCDIR)/latex/wx/classes.tex $(DOCDIR)/latex/wx/topics.tex $(DOCDIR)/latex/wx/referenc.tex - cd $(WXDIR)\docs\latex\wx - -latex referenc - -latex referenc - -makeindx referenc - -bibtex referenc - -latex referenc - -latex referenc - cd $(THISDIR) - -$(WXDIR)\docs\ps\referenc.ps: $(WXDIR)\docs\latex\wx\referenc.dvi - cd $(WXDIR)\docs\latex\wx - -dvips32 -o referenc.ps referenc - move referenc.ps $(WXDIR)\docs\ps\referenc.ps - cd $(THISDIR) - -# In order to force document reprocessing -touchmanual: - -touch $(WXDIR)\docs\latex\wx\manual.tex - -updatedocs: touchmanual alldocs - -# Start Word, running the GeneratePDF macro. MakeManual.dot should be in the -# Office StartUp folder, and PDFMaker should be installed. -updatepdf: # touchmanual pdfrtf - start $(WAITFLAG) "winword d:\wx2\wxWindows\docs\latex\pdf\wx.rtf /mGeneratePDF" - diff --git a/src/msw/makefile.wat b/src/msw/makefile.wat deleted file mode 100644 index 5ded030671..0000000000 --- a/src/msw/makefile.wat +++ /dev/null @@ -1,945 +0,0 @@ -#!/binb/wmake.exe -# -# File: makefile.wat -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Builds wxWindows library for Watcom C++, WIN32 - -WXDIR = ..\.. - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib - -LIBTARGET = $(WXLIB)\wx.lib -DUMMY=dummydll -# ODBCLIB = ..\..\contrib\odbc\odbc32.lib - -EXTRATARGETS = xpm png zlib -EXTRATARGETSCLEAN = clean_xpm clean_png clean_zlib -GENDIR=$(WXDIR)\src\generic -COMMDIR=$(WXDIR)\src\common -XPMDIR=$(WXDIR)\src\xpm -OLEDIR=ole -MSWDIR=$(WXDIR)\src\msw - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= choicdgg.obj & - gridg.obj & - laywin.obj & - panelg.obj & - progdlgg.obj & - prop.obj & - propform.obj & - proplist.obj & - sashwin.obj & - scrolwin.obj & - splitter.obj & - statusbr.obj & - tabg.obj & - textdlgg.obj - -# These are generic things that don't need to be compiled on MSW, -# but sometimes it's useful to do so for testing purposes. -NONESSENTIALOBJS= printps.obj & - prntdlgg.obj & - msgdlgg.obj & - helpxlp.obj & - colrdlgg.obj & - fontdlgg.obj - -COMMONOBJS = cmndata.obj & - config.obj & - dcbase.obj & - docview.obj & - docmdi.obj & - dynarray.obj & - dynlib.obj & - event.obj & - file.obj & - filefn.obj & - fileconf.obj & - framecmn.obj & - gdicmn.obj & - image.obj & - imagpng.obj & - intl.obj & - ipcbase.obj & - helpbase.obj & - layout.obj & - log.obj & - memory.obj & - mimetype.obj & - module.obj & - object.obj & - prntbase.obj & - resource.obj & - tbarbase.obj & - tbarsmpl.obj & - textfile.obj & - timercmn.obj & - utilscmn.obj & - validate.obj & - valgen.obj & - valtext.obj & - date.obj & - hash.obj & - list.obj & - paper.obj & - string.obj & - socket.obj & - sckaddr.obj & - sckfile.obj & - sckipc.obj & - sckstrm.obj & - sckint.obj & - url.obj & - http.obj & - protocol.obj & - time.obj & - tokenzr.obj & - wxexpr.obj & - y_tab.obj & - extended.obj & - process.obj & - wfstream.obj & - mstream.obj & - zstream.obj & - stream.obj & - datstrm.obj & - objstrm.obj & - variant.obj & - wincmn.obj & - wxchar.obj - -# Can't compile these yet under Watcom C++ -# imagjpeg.obj & -# odbc.obj & -# db.obj & -# dbtable.obj & - -MSWOBJS = & - accel.obj & - app.obj & - bitmap.obj & - bmpbuttn.obj & - brush.obj & - button.obj & - checkbox.obj & - checklst.obj & - caret.obj & - choice.obj & - clipbrd.obj & - colordlg.obj & - colour.obj & - combobox.obj & - control.obj & - curico.obj & - cursor.obj & - data.obj & - dc.obj & - dcmemory.obj & - dcclient.obj & - dcprint.obj & - dcscreen.obj & - dde.obj & - dialog.obj & - dib.obj & - dibutils.obj & - dirdlg.obj & - filedlg.obj & - font.obj & - fontdlg.obj & - frame.obj & - gauge95.obj & - gaugemsw.obj & - gdiobj.obj & - helpwin.obj & - icon.obj & - imaglist.obj & - iniconf.obj & - joystick.obj & - listbox.obj & - listctrl.obj & - main.obj & - mdi.obj & - menu.obj & - menuitem.obj & - metafile.obj & - minifram.obj & - msgdlg.obj & - nativdlg.obj & - notebook.obj & - ownerdrw.obj & - palette.obj & - pen.obj & - penwin.obj & - printdlg.obj & - printwin.obj & - radiobox.obj & - radiobut.obj & - region.obj & - registry.obj & - regconf.obj & - scrolbar.obj & - settings.obj & - slidrmsw.obj & - slider95.obj & - spinbutt.obj & - statbmp.obj & - statbox.obj & - statbr95.obj & - stattext.obj & - tabctrl.obj & - taskbar.obj & - tbar95.obj & - tbarmsw.obj & - textctrl.obj & - thread.obj & - timer.obj & - tooltip.obj & - treectrl.obj & - utils.obj & - utilsexc.obj & - wave.obj & - window.obj & - xpmhand.obj - -# pnghand.obj & - -OLEOBJS = & - droptgt.obj & - dropsrc.obj & - dataobj.obj & - oleutils.obj & - uuid.obj & - automtn.obj - -# Add $(NONESSENTIALOBJS) if wanting generic dialogs, PostScript etc. -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(MSWOBJS) $(OLEOBJS) - -all: $(OBJECTS) $(LIBTARGET) $(EXTRATARGETS) - -$(LIBTARGET) : $(OBJECTS) - %create tmp.lbc - @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i - wlib /b /c /n /p=512 $^@ @tmp.lbc - -#test : $(OBJECTS) -# %create tmp.lbc -# @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i -# wlib /b /c /n /p=512 $^@ @tmp.lbc - - -clean: .SYMBOLIC $(EXTRATARGETSCLEAN) - -erase *.obj - -erase $(LIBTARGET) - -erase *.pch - -erase *.err - -erase *.lbc - -cleanall: clean - -accel.obj: $(MSWDIR)\accel.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -app.obj: $(MSWDIR)\app.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -bitmap.obj: $(MSWDIR)\bitmap.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -bmpbuttn.obj: $(MSWDIR)\bmpbuttn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -brush.obj: $(MSWDIR)\brush.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -button.obj: $(MSWDIR)\button.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -caret.obj: $(MSWDIR)\caret.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -choice.obj: $(MSWDIR)\choice.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -checkbox.obj: $(MSWDIR)\checkbox.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -checklst.obj: $(MSWDIR)\checklst.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -clipbrd.obj: $(MSWDIR)\clipbrd.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -colordlg.obj: $(MSWDIR)\colordlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -colour.obj: $(MSWDIR)\colour.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -combobox.obj: $(MSWDIR)\combobox.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -control.obj: $(MSWDIR)\control.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -curico.obj: $(MSWDIR)\curico.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -cursor.obj: $(MSWDIR)\cursor.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -data.obj: $(MSWDIR)\data.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dde.obj: $(MSWDIR)\dde.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dc.obj: $(MSWDIR)\dc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcmemory.obj: $(MSWDIR)\dcmemory.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcclient.obj: $(MSWDIR)\dcclient.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcprint.obj: $(MSWDIR)\dcprint.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcscreen.obj: $(MSWDIR)\dcscreen.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dialog.obj: $(MSWDIR)\dialog.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dib.obj: $(MSWDIR)\dib.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dibutils.obj: $(MSWDIR)\dibutils.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dirdlg.obj: $(MSWDIR)\dirdlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -filedlg.obj: $(MSWDIR)\filedlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -font.obj: $(MSWDIR)\font.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -fontdlg.obj: $(MSWDIR)\fontdlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -frame.obj: $(MSWDIR)\frame.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gauge95.obj: $(MSWDIR)\gauge95.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gaugemsw.obj: $(MSWDIR)\gaugemsw.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gdiobj.obj: $(MSWDIR)\gdiobj.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -helpwin.obj: $(MSWDIR)\helpwin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -icon.obj: $(MSWDIR)\icon.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -imaglist.obj: $(MSWDIR)\imaglist.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -iniconf.obj: $(MSWDIR)\iniconf.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -joystick.obj: $(MSWDIR)\joystick.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -listbox.obj: $(MSWDIR)\listbox.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -listctrl.obj: $(MSWDIR)\listctrl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -main.obj: $(MSWDIR)\main.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -mdi.obj: $(MSWDIR)\mdi.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -menu.obj: $(MSWDIR)\menu.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -menuitem.obj: $(MSWDIR)\menuitem.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -metafile.obj: $(MSWDIR)\metafile.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -minifram.obj: $(MSWDIR)\minifram.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -msgdlg.obj: $(MSWDIR)\msgdlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -nativdlg.obj: $(MSWDIR)\nativdlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -notebook.obj: $(MSWDIR)\notebook.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -ownerdrw.obj: $(MSWDIR)\ownerdrw.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -palette.obj: $(MSWDIR)\palette.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -pen.obj: $(MSWDIR)\pen.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -penwin.obj: $(MSWDIR)\penwin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -pnghand.obj: $(MSWDIR)\pnghand.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -printdlg.obj: $(MSWDIR)\printdlg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -printwin.obj: $(MSWDIR)\printwin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -radiobox.obj: $(MSWDIR)\radiobox.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -radiobut.obj: $(MSWDIR)\radiobut.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -region.obj: $(MSWDIR)\region.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -registry.obj: $(MSWDIR)\registry.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -regconf.obj: $(MSWDIR)\regconf.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -scrolbar.obj: $(MSWDIR)\scrolbar.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -settings.obj: $(MSWDIR)\settings.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -slidrmsw.obj: $(MSWDIR)\slidrmsw.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -slider95.obj: $(MSWDIR)\slider95.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -spinbutt.obj: $(MSWDIR)\spinbutt.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -statbmp.obj: $(MSWDIR)\statbmp.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -statbox.obj: $(MSWDIR)\statbox.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -statbr95.obj: $(MSWDIR)\statbr95.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -stattext.obj: $(MSWDIR)\stattext.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tabctrl.obj: $(MSWDIR)\tabctrl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -taskbar.obj: $(MSWDIR)\taskbar.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tbar95.obj: $(MSWDIR)\tbar95.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tbarmsw.obj: $(MSWDIR)\tbarmsw.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -textctrl.obj: $(MSWDIR)\textctrl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -thread.obj: $(MSWDIR)\thread.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -timer.obj: $(MSWDIR)\timer.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tooltip.obj: $(MSWDIR)\tooltip.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -treectrl.obj: $(MSWDIR)\treectrl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -utils.obj: $(MSWDIR)\utils.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -utilsexc.obj: $(MSWDIR)\utilsexc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wave.obj: $(MSWDIR)\wave.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -window.obj: $(MSWDIR)\window.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -xpmhand.obj: $(MSWDIR)\xpmhand.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -droptgt.obj: $(OLEDIR)\droptgt.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dropsrc.obj: $(OLEDIR)\dropsrc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dataobj.obj: $(OLEDIR)\dataobj.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -oleutils.obj: $(OLEDIR)\oleutils.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -uuid.obj: $(OLEDIR)\uuid.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -automtn.obj: $(OLEDIR)\automtn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -######################################################## -# Common objects (always compiled) - -cmndata.obj: $(COMMDIR)\cmndata.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -config.obj: $(COMMDIR)\config.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dcbase.obj: $(COMMDIR)\dcbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -db.obj: $(COMMDIR)\db.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dbtable.obj: $(COMMDIR)\dbtable.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -docview.obj: $(COMMDIR)\docview.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -docmdi.obj: $(COMMDIR)\docmdi.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dynarray.obj: $(COMMDIR)\dynarray.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -dynlib.obj: $(COMMDIR)\dynlib.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -event.obj: $(COMMDIR)\event.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -file.obj: $(COMMDIR)\file.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -fileconf.obj: $(COMMDIR)\fileconf.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -filefn.obj: $(COMMDIR)\filefn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -framecmn.obj: $(COMMDIR)\framecmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gdicmn.obj: $(COMMDIR)\gdicmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -image.obj: $(COMMDIR)\image.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -imagpng.obj: $(COMMDIR)\imagpng.cpp - *$(CCC) $(CPPFLAGS) -i=..\png -i=..\zlib $(IFLAGS) $< - -imagjpeg.obj: $(COMMDIR)\imagjpeg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -intl.obj: $(COMMDIR)\intl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -ipcbase.obj: $(COMMDIR)\ipcbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -helpbase.obj: $(COMMDIR)\helpbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -layout.obj: $(COMMDIR)\layout.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -log.obj: $(COMMDIR)\log.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -memory.obj: $(COMMDIR)\memory.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -mimetype.obj: $(COMMDIR)\mimetype.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -module.obj: $(COMMDIR)\module.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -object.obj: $(COMMDIR)\object.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -odbc.obj: $(COMMDIR)\odbc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -prntbase.obj: $(COMMDIR)\prntbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -resource.obj: $(COMMDIR)\resource.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tbarbase.obj: $(COMMDIR)\tbarbase.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tbarsmpl.obj: $(COMMDIR)\tbarsmpl.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -textfile.obj: $(COMMDIR)\textfile.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -timercmn.obj: $(COMMDIR)\timercmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -utilscmn.obj: $(COMMDIR)\utilscmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -validate.obj: $(COMMDIR)\validate.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -valgen.obj: $(COMMDIR)\valgen.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -valtext.obj: $(COMMDIR)\valtext.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -date.obj: $(COMMDIR)\date.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wxexpr.obj: $(COMMDIR)\wxexpr.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -hash.obj: $(COMMDIR)\hash.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -list.obj: $(COMMDIR)\list.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -paper.obj: $(COMMDIR)\paper.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -string.obj: $(COMMDIR)\string.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -socket.obj: $(COMMDIR)\socket.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -sckint.obj: $(COMMDIR)\sckint.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -sckaddr.obj: $(COMMDIR)\sckaddr.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -sckfile.obj: $(COMMDIR)\sckfile.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -sckipc.obj: $(COMMDIR)\sckipc.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -sckstrm.obj: $(COMMDIR)\sckstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -url.obj: $(COMMDIR)\url.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -http.obj: $(COMMDIR)\http.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -protocol.obj: $(COMMDIR)\protocol.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tokenzr.obj: $(COMMDIR)\tokenzr.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -matrix.obj: $(COMMDIR)\matrix.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -time.obj: $(COMMDIR)\time.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -stream.obj: $(COMMDIR)\stream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wfstream.obj: $(COMMDIR)\wfstream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -mstream.obj: $(COMMDIR)\mstream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -zstream.obj: $(COMMDIR)\zstream.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -datstrm.obj: $(COMMDIR)\datstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -objstrm.obj: $(COMMDIR)\objstrm.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -extended.obj: $(COMMDIR)\extended.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $(COMMDIR)\extended.c - -process.obj: $(COMMDIR)\process.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -variant.obj: $(COMMDIR)\variant.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wincmn.obj: $(COMMDIR)\wincmn.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -wxchar.obj: $(COMMDIR)\wxchar.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -y_tab.obj: $(COMMDIR)\y_tab.c $(COMMDIR)\lex_yy.c - *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE $(COMMDIR)\y_tab.c - -# *$(CC) $(CPPFLAGS) $(IFLAGS) -DUSE_DEFINE -DYY_USE_PROTOS $(COMMDIR)\y_tab.c - -$(COMMDIR)\y_tab.c: $(COMMDIR)\dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)\lex_yy.c: $(COMMDIR)\doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -choicdgg.obj: $(GENDIR)\choicdgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -colrdlgg.obj: $(GENDIR)\colrdgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -fontdlgg.obj: $(GENDIR)\fontdlgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -gridg.obj: $(GENDIR)\gridg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -helpxlp.obj: $(GENDIR)\helpxlp.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -laywin.obj: $(GENDIR)\laywin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -msgdlgg.obj: $(GENDIR)\msgdlgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -panelg.obj: $(GENDIR)\panelg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -printps.obj: $(GENDIR)\printps.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -progdlgg.obj: $(GENDIR)\progdlgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -prop.obj: $(GENDIR)\prop.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -propform.obj: $(GENDIR)\propform.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -proplist.obj: $(GENDIR)\proplist.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -prntdlgg.obj: $(GENDIR)\prntdlgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -sashwin.obj: $(GENDIR)\sashwin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -scrolwin.obj: $(GENDIR)\scrolwin.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -splitter.obj: $(GENDIR)\splitter.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -statusbr.obj: $(GENDIR)\statusbr.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -tabg.obj: $(GENDIR)\tabg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -textdlgg.obj: $(GENDIR)\textdlgg.cpp - *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - -crbuffri.obj: $(XPMDIR)\crbuffri.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crbuffrp.obj: $(XPMDIR)\crbuffrp.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crdatfri.obj: $(XPMDIR)\crdatfri.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crdatfrp.obj: $(XPMDIR)\crdatfrp.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -create.obj: $(XPMDIR)\create.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crifrbuf.obj: $(XPMDIR)\crifrbuf.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crifrdat.obj: $(XPMDIR)\crifrdat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crpfrbuf.obj: $(XPMDIR)\crpfrbuf.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -crpfrdat.obj: $(XPMDIR)\crpfrdat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -# TODO: what to do about this clash of filename???? -#data.obj: $(XPMDIR)\data.c -# *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -hashtab.obj: $(XPMDIR)\hashtab.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -misc.obj: $(XPMDIR)\misc.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -parse.obj: $(XPMDIR)\parse.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -rdftodat.obj: $(XPMDIR)\rdftodat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -rdftoi.obj: $(XPMDIR)\rdftoi.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -rdftop.obj: $(XPMDIR)\rdftop.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -rgb.obj: $(XPMDIR)\rgb.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -scan.obj: $(XPMDIR)\scan.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -simx.obj: $(XPMDIR)\simx.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -wrffrdat.obj: $(XPMDIR)\wrffrdat.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -wrffri.obj: $(XPMDIR)\wrffri.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -wrffrp.obj: $(XPMDIR)\wrffrp.c - *$(CC) $(CPPFLAGS) $(IFLAGS) $< - -OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \ - trees$(O) -OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \ - infutil$(O) inffast$(O) - -adler32.obj: adler32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -compress.obj: compress.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -crc32.obj: crc32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -gzio.obj: gzio.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\ - infcodes.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\ - infcodes.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h - $(CC) -c $(CFLAGS) $*.c - -inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h - $(CC) -c $(CFLAGS) $*.c - -infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -uncompr.obj: uncompr.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -zutil.obj: zutil.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -xpm: .SYMBOLIC - cd $(WXDIR)\src\xpm - wmake -f makefile.wat all - cd $(WXDIR)\src\msw - -clean_xpm: .SYMBOLIC - cd $(WXDIR)\src\xpm - wmake -f makefile.wat clean - cd $(WXDIR)\src\msw - -png: .SYMBOLIC - cd $(WXDIR)\src\png - wmake -f makefile.wat all - cd $(WXDIR)\src\msw - -clean_png: .SYMBOLIC - cd $(WXDIR)\src\png - wmake -f makefile.wat clean - cd $(WXDIR)\src\msw - -zlib: .SYMBOLIC - cd $(WXDIR)\src\zlib - wmake -f makefile.wat all - cd $(WXDIR)\src\msw - -clean_zlib: .SYMBOLIC - cd $(WXDIR)\src\zlib - wmake -f makefile.wat clean - cd $(WXDIR)\src\msw - diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp deleted file mode 100644 index 8666721817..0000000000 --- a/src/msw/mdi.cpp +++ /dev/null @@ -1,1191 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "mdi.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/frame.h" - #include "wx/menu.h" - #include "wx/app.h" - #include "wx/utils.h" - #include "wx/dialog.h" - #include "wx/statusbr.h" - #include "wx/settings.h" - #include "wx/intl.h" - #include "wx/log.h" -#endif - -#include "wx/mdi.h" -#include "wx/msw/private.h" - -#if wxUSE_NATIVE_STATUSBAR - #include -#endif - -#include - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -extern wxWindowList wxModelessWindows; // from dialog.cpp -extern wxMenu *wxCurrentPopupMenu; - -extern char wxMDIFrameClassName[]; -extern char wxMDIChildFrameClassName[]; -extern wxWindow *wxWndHook; // from window.cpp - -extern wxList *wxWinHandleList; - -static HWND invalidHandle = 0; - -// --------------------------------------------------------------------------- -// constants -// --------------------------------------------------------------------------- - -static const int IDM_WINDOWTILE = 4001; -static const int IDM_WINDOWTILEHOR = 4001; -static const int IDM_WINDOWCASCADE = 4002; -static const int IDM_WINDOWICONS = 4003; -static const int IDM_WINDOWNEXT = 4004; -static const int IDM_WINDOWTILEVERT = 4005; - -// This range gives a maximum of 500 MDI children. Should be enough :-) -static const int wxFIRST_MDI_CHILD = 4100; -static const int wxLAST_MDI_CHILD = 4600; - -// Status border dimensions -static const int wxTHICK_LINE_BORDER = 3; -static const int wxTHICK_LINE_WIDTH = 1; - -// --------------------------------------------------------------------------- -// private functions -// --------------------------------------------------------------------------- - -// set the MDI menus (by sending the WM_MDISETMENU message) and update the menu -// of the parent of win (which is supposed to be the MDI client window) -static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow); - -// insert the window menu (subMenu) into menu just before "Help" submenu or at -// the very end if not found -static void InsertWindowMenu(wxWindow *win, WXHMENU menu, HMENU subMenu); - -// is this an id of an MDI child? -inline bool IsMdiCommandId(int id) -{ - return (id >= wxFIRST_MDI_CHILD) && (id <= wxLAST_MDI_CHILD); -} - -static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact); - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxWin macros -// --------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) - IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) - IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) -#endif // USE_SHARED_LIBRARY - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_SIZE(wxMDIParentFrame::OnSize) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() - -// =========================================================================== -// wxMDIParentFrame: the frame which contains the client window which manages -// the children -// =========================================================================== - -wxMDIParentFrame::wxMDIParentFrame() -{ - m_clientWindow = NULL; - m_currentChild = NULL; - m_windowMenu = 0; - m_parentFrameActive = TRUE; -} - -bool wxMDIParentFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_defaultIcon = (WXHICON) (wxSTD_MDIPARENTFRAME_ICON ? wxSTD_MDIPARENTFRAME_ICON : wxDEFAULT_MDIPARENTFRAME_ICON); - - m_clientWindow = NULL; - m_currentChild = NULL; - m_windowMenu = 0; - m_parentFrameActive = TRUE; - - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowMenu = (WXHMENU) ::LoadMenu(wxGetInstance(), "wxWindowMenu"); - - DWORD msflags = WS_OVERLAPPED; - if (style & wxMINIMIZE_BOX) - msflags |= WS_MINIMIZEBOX; - if (style & wxMAXIMIZE_BOX) - msflags |= WS_MAXIMIZEBOX; - if (style & wxTHICK_FRAME) - msflags |= WS_THICKFRAME; - if (style & wxSYSTEM_MENU) - msflags |= WS_SYSMENU; - if ((style & wxMINIMIZE) || (style & wxICONIZE)) - msflags |= WS_MINIMIZE; - if (style & wxMAXIMIZE) - msflags |= WS_MAXIMIZE; - if (style & wxCAPTION) - msflags |= WS_CAPTION; - - // Adding WS_CLIPCHILDREN causes children not to be properly - // drawn when first displaying them. -// if (style & wxCLIP_CHILDREN) -// msflags |= WS_CLIPCHILDREN; - - wxWindow::MSWCreate(m_windowId, parent, wxMDIFrameClassName, this, title, x, y, width, height, - msflags); - - wxModelessWindows.Append(this); - - return TRUE; -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ - DestroyChildren(); - - ::DestroyMenu((HMENU)m_windowMenu); - m_windowMenu = 0; - - if ( m_clientWindow ) - { - if ( m_clientWindow->MSWGetOldWndProc() ) - m_clientWindow->UnsubclassWin(); - - m_clientWindow->SetHWND(0); - delete m_clientWindow; - } -} - -void wxMDIParentFrame::InternalSetMenuBar() -{ - HMENU subMenu = GetSubMenu((HMENU) m_windowMenu, 0); - - m_parentFrameActive = TRUE; - - InsertWindowMenu(GetClientWindow(), m_hMenu, subMenu); -} - -void wxMDIParentFrame::OnSize(wxSizeEvent& event) -{ - if ( GetClientWindow() ) - { - int width, height; - GetClientSize(&width, &height); - - GetClientWindow()->SetSize(0, 0, width, height); - } -} - -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - HWND hWnd = (HWND)::SendMessage(GetWinHwnd(GetClientWindow()), - WM_MDIGETACTIVE, 0, 0L); - if ( hWnd == 0 ) - return NULL; - else - return (wxMDIChildFrame *)wxFindWinFromHandle((WXHWND) hWnd); -} - -// Create the client window class (don't Create the window, just return a new -// class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow; -} - -// Responds to colour changes, and passes event on to children. -void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - if ( m_clientWindow ) - { - m_clientWindow->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - m_clientWindow->Refresh(); - } - - event.Skip(); -} - -// --------------------------------------------------------------------------- -// MDI operations -// --------------------------------------------------------------------------- - -void wxMDIParentFrame::Cascade() -{ - ::SendMessage(GetWinHwnd(GetClientWindow()), WM_MDICASCADE, 0, 0); -} - -// TODO: add a direction argument (hor/vert) -void wxMDIParentFrame::Tile() -{ - ::SendMessage(GetWinHwnd(GetClientWindow()), WM_MDITILE, MDITILE_HORIZONTAL, 0); -} - -void wxMDIParentFrame::ArrangeIcons() -{ - ::SendMessage(GetWinHwnd(GetClientWindow()), WM_MDIICONARRANGE, 0, 0); -} - -void wxMDIParentFrame::ActivateNext() -{ - ::SendMessage(GetWinHwnd(GetClientWindow()), WM_MDINEXT, 0, 0); -} - -void wxMDIParentFrame::ActivatePrevious() -{ - ::SendMessage(GetWinHwnd(GetClientWindow()), WM_MDINEXT, 0, 1); -} - -// --------------------------------------------------------------------------- -// the MDI parent frame window proc -// --------------------------------------------------------------------------- - -long wxMDIParentFrame::MSWWindowProc(WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam) -{ - long rc = 0; - bool processed = FALSE; - - switch ( message ) - { - case WM_ACTIVATE: - { - WXWORD state, minimized; - WXHWND hwnd; - UnpackActivate(wParam, lParam, &state, &minimized, &hwnd); - - processed = HandleActivate(state, minimized != 0, hwnd); - } - break; - - case WM_COMMAND: - { - WXWORD id, cmd; - WXHWND hwnd; - UnpackCommand(wParam, lParam, &id, &hwnd, &cmd); - - (void)HandleCommand(id, cmd, hwnd); - - // even if the frame didn't process it, there is no need to try it - // once again (i.e. call wxFrame::HandleCommand()) - we just dud it, - // so pretend we processed the message anyhow - processed = TRUE; - } - break; - - case WM_CREATE: - m_clientWindow = OnCreateClient(); - // Uses own style for client style - if ( !m_clientWindow->CreateClient(this, GetWindowStyleFlag()) ) - { - wxLogMessage(_("Failed to create MDI parent frame.")); - - rc = -1; - } - - processed = TRUE; - break; - - case WM_ERASEBKGND: - processed = TRUE; - - // we erase background ourselves - rc = TRUE; - break; - - case WM_MENUSELECT: - { - WXWORD item, flags; - WXHMENU hmenu; - UnpackMenuSelect(wParam, lParam, &item, &flags, &hmenu); - - if ( m_parentFrameActive ) - { - processed = HandleMenuSelect(item, flags, hmenu); - } - else if (m_currentChild) - { - processed = m_currentChild-> - HandleMenuSelect(item, flags, hmenu); - } - } - break; - } - - if ( !processed ) - rc = wxFrame::MSWWindowProc(message, wParam, lParam); - - return rc; -} - -bool wxMDIParentFrame::HandleActivate(int state, bool minimized, WXHWND activate) -{ - bool processed = FALSE; - - if ( wxWindow::HandleActivate(state, minimized, activate) ) - { - // already processed - processed = TRUE; - } - - // If this window is an MDI parent, we must also send an OnActivate message - // to the current child. - if ( (m_currentChild != NULL) && - ((state == WA_ACTIVE) || (state == WA_CLICKACTIVE)) ) - { - wxActivateEvent event(wxEVT_ACTIVATE, TRUE, m_currentChild->GetId()); - event.SetEventObject( m_currentChild ); - if ( m_currentChild->GetEventHandler()->ProcessEvent(event) ) - processed = TRUE; - } - - return processed; -} - -bool wxMDIParentFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd) -{ - // In case it's e.g. a toolbar. - if ( hwnd ) - { - wxWindow *win = wxFindWinFromHandle(hwnd); - if ( win ) - return win->MSWCommand(cmd, id); - } - - // is it one of standard MDI commands? - WXWPARAM wParam = 0; - int msg; - switch ( id ) - { - case IDM_WINDOWCASCADE: - msg = WM_MDICASCADE; - wParam = MDITILE_SKIPDISABLED; - break; - - case IDM_WINDOWTILEHOR: - wParam |= MDITILE_HORIZONTAL; - // fall through - - case IDM_WINDOWTILEVERT: - if ( !wParam ) - wParam = MDITILE_VERTICAL; - msg = WM_MDITILE; - wParam |= MDITILE_SKIPDISABLED; - break; - - case IDM_WINDOWICONS: - msg = WM_MDIICONARRANGE; - break; - - case IDM_WINDOWNEXT: - msg = WM_MDINEXT; - break; - - default: - msg = 0; - } - - if ( msg ) - { - ::SendMessage(GetWinHwnd(GetClientWindow()), msg, wParam, 0); - - return TRUE; - } - - // FIXME VZ: what does this test do?? - if (id >= 0xF000) - { - return FALSE; // Get WndProc to call default proc - } - - if ( IsMdiCommandId(id) ) - { - wxWindowList::Node* node = GetChildren().GetFirst(); - while ( node ) - { - wxWindow* child = node->GetData(); - if ( child->GetHWND() ) - { - long childId = wxGetWindowId(child->GetHWND()); - if (childId == id) - { - ::SendMessage( GetWinHwnd(GetClientWindow()), - WM_MDIACTIVATE, - (WPARAM)child->GetHWND(), 0); - return TRUE; - } - } - node = node->GetNext(); - } - } - else if ( m_parentFrameActive ) - { - return ProcessCommand(id); - } - else if ( m_currentChild ) - { - return m_currentChild->HandleCommand(id, cmd, hwnd); - } - else - { - // this shouldn't happen because it means that our messages are being - // lost (they're not sent to the parent frame nor to the children) - wxFAIL_MSG(_T("MDI parent frame is not active, " - "yet there is no active MDI child?")); - } - - return FALSE; -} - -long wxMDIParentFrame::MSWDefWindowProc(WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam) -{ - WXHWND clientWnd; - if ( GetClientWindow() ) - clientWnd = GetClientWindow()->GetHWND(); - else - clientWnd = 0; - - return DefFrameProc(GetHwnd(), (HWND)clientWnd, message, wParam, lParam); -} - -bool wxMDIParentFrame::MSWTranslateMessage(WXMSG* msg) -{ - MSG *pMsg = (MSG *)msg; - - if ( m_currentChild && m_currentChild->GetHWND() && - m_currentChild->MSWTranslateMessage(msg) ) - { - return TRUE; - } - - if ( m_acceleratorTable.Ok() && - ::TranslateAccelerator(GetHwnd(), - GetTableHaccel(m_acceleratorTable), - pMsg) ) - { - return TRUE; - } - - if ( pMsg->message == WM_KEYDOWN || pMsg->message == WM_SYSKEYDOWN ) - { - if ( ::TranslateMDISysAccel(GetWinHwnd(GetClientWindow()), pMsg)) - return TRUE; - } - - return FALSE; -} - -// =========================================================================== -// wxMDIChildFrame -// =========================================================================== - -wxMDIChildFrame::wxMDIChildFrame() -{ -} - -bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_defaultIcon = (WXHICON)(wxSTD_MDICHILDFRAME_ICON ? wxSTD_MDICHILDFRAME_ICON - : wxDEFAULT_MDICHILDFRAME_ICON); - - SetName(name); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if ( parent ) - { - parent->AddChild(this); - } - - wxWndHook = this; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - MDICREATESTRUCT mcs; - - mcs.szClass = wxMDIChildFrameClassName; - mcs.szTitle = title; - mcs.hOwner = wxGetInstance(); - if (x > -1) - mcs.x = x; - else - mcs.x = CW_USEDEFAULT; - - if (y > -1) - mcs.y = y; - else - mcs.y = CW_USEDEFAULT; - - if (width > -1) - mcs.cx = width; - else - mcs.cx = CW_USEDEFAULT; - - if (height > -1) - mcs.cy = height; - else - mcs.cy = CW_USEDEFAULT; - - DWORD msflags = WS_OVERLAPPED | WS_CLIPCHILDREN; - if (style & wxMINIMIZE_BOX) - msflags |= WS_MINIMIZEBOX; - if (style & wxMAXIMIZE_BOX) - msflags |= WS_MAXIMIZEBOX; - if (style & wxTHICK_FRAME) - msflags |= WS_THICKFRAME; - if (style & wxSYSTEM_MENU) - msflags |= WS_SYSMENU; - if ((style & wxMINIMIZE) || (style & wxICONIZE)) - msflags |= WS_MINIMIZE; - if (style & wxMAXIMIZE) - msflags |= WS_MAXIMIZE; - if (style & wxCAPTION) - msflags |= WS_CAPTION; - - mcs.style = msflags; - - mcs.lParam = 0; - - DWORD Return = SendMessage((HWND) parent->GetClientWindow()->GetHWND(), - WM_MDICREATE, 0, (LONG)(LPSTR)&mcs); - - //handle = (HWND)LOWORD(Return); - // Must be the DWORRD for WIN32. And in 16 bits, HIWORD=0 (says Microsoft) - m_hWnd = (WXHWND)Return; - - // This gets reassigned so can't be stored -// m_windowId = GetWindowLong((HWND) m_hWnd, GWL_ID); - - wxWndHook = NULL; - wxWinHandleList->Append((long)GetHWND(), this); - - SetWindowLong((HWND) GetHWND(), 0, (long)this); - - wxModelessWindows.Append(this); - return TRUE; -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ - MSWDestroyWindow(); -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxMDIChildFrame::DoSetClientSize(int width, int height) -{ - HWND hWnd = (HWND) GetHWND(); - - RECT rect; - ::GetClientRect(hWnd, &rect); - - RECT rect2; - GetWindowRect(hWnd, &rect2); - - // Find the difference between the entire window (title bar and all) - // and the client area; add this to the new client size to move the - // window - int actual_width = rect2.right - rect2.left - rect.right + width; - int actual_height = rect2.bottom - rect2.top - rect.bottom + height; - - if (GetStatusBar()) - { - int sx, sy; - GetStatusBar()->GetSize(&sx, &sy); - actual_height += sy; - } - - POINT point; - point.x = rect2.left; - point.y = rect2.top; - - // If there's an MDI parent, must subtract the parent's top left corner - // since MoveWindow moves relative to the parent - wxMDIParentFrame *mdiParent = (wxMDIParentFrame *)GetParent(); - ::ScreenToClient((HWND) mdiParent->GetClientWindow()->GetHWND(), &point); - - MoveWindow(hWnd, point.x, point.y, actual_width, actual_height, (BOOL)TRUE); - - wxSizeEvent event(wxSize(width, height), m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -void wxMDIChildFrame::DoGetPosition(int *x, int *y) const -{ - RECT rect; - GetWindowRect((HWND) GetHWND(), &rect); - POINT point; - point.x = rect.left; - point.y = rect.top; - - // Since we now have the absolute screen coords, - // if there's a parent we must subtract its top left corner - wxMDIParentFrame *mdiParent = (wxMDIParentFrame *)GetParent(); - ::ScreenToClient((HWND) mdiParent->GetClientWindow()->GetHWND(), &point); - - *x = point.x; - *y = point.y; -} - -void wxMDIChildFrame::InternalSetMenuBar() -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - - HMENU subMenu = GetSubMenu((HMENU)parent->GetWindowMenu(), 0); - - InsertWindowMenu(parent->GetClientWindow(), m_hMenu, subMenu); - - parent->m_parentFrameActive = FALSE; -} - -// --------------------------------------------------------------------------- -// MDI operations -// --------------------------------------------------------------------------- - -void wxMDIChildFrame::Maximize() -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - if ( parent && parent->GetClientWindow() ) - ::SendMessage( (HWND) parent->GetClientWindow()->GetHWND(), WM_MDIMAXIMIZE, (WPARAM) (HWND) GetHWND(), 0); -} - -void wxMDIChildFrame::Restore() -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - if ( parent && parent->GetClientWindow() ) - ::SendMessage( (HWND) parent->GetClientWindow()->GetHWND(), WM_MDIRESTORE, (WPARAM) (HWND) GetHWND(), 0); -} - -void wxMDIChildFrame::Activate() -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - if ( parent && parent->GetClientWindow() ) - ::SendMessage( (HWND) parent->GetClientWindow()->GetHWND(), WM_MDIACTIVATE, (WPARAM) (HWND) GetHWND(), 0); -} - -// --------------------------------------------------------------------------- -// MDI window proc and message handlers -// --------------------------------------------------------------------------- - -long wxMDIChildFrame::MSWWindowProc(WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam) -{ - long rc = 0; - bool processed = FALSE; - - switch ( message ) - { - case WM_COMMAND: - { - WORD id, cmd; - WXHWND hwnd; - UnpackCommand((WXWPARAM)wParam, (WXLPARAM)lParam, - &id, &hwnd, &cmd); - - processed = HandleCommand(id, cmd, (WXHWND)hwnd); - } - break; - - case WM_SIZE: - processed = HandleSize(LOWORD(lParam), HIWORD(lParam), wParam); - break; - - case WM_GETMINMAXINFO: - // let the default window proc calculate the size of MDI children - // frames because it is based on the size of the MDI client window, - // not on the values specified in wxWindow m_min/max variables - return MSWDefWindowProc(message, wParam, lParam); - - case WM_MDIACTIVATE: - { - WXWORD act; - WXHWND hwndAct, hwndDeact; - UnpackMDIActivate(wParam, lParam, &act, &hwndAct, &hwndDeact); - - processed = HandleMDIActivate(act, hwndAct, hwndDeact); - } - break; - - case WM_WINDOWPOSCHANGING: - processed = HandleWindowPosChanging((LPWINDOWPOS)lParam); - break; - } - - if ( !processed ) - rc = wxFrame::MSWWindowProc(message, wParam, lParam); - - return rc; -} - -bool wxMDIChildFrame::HandleSize(int x, int y, WXUINT id) -{ - HWND hwnd = GetHwnd(); - - if ( !hwnd || hwnd == invalidHandle ) - { - return FALSE; - } - - switch (id) - { - case SIZEFULLSCREEN: - case SIZENORMAL: - m_iconized = FALSE; - break; - - case SIZEICONIC: - m_iconized = TRUE; - break; - } - - if ( !m_iconized ) - { - // forward WM_SIZE to status bar control -#if wxUSE_NATIVE_STATUSBAR - if (m_frameStatusBar && m_frameStatusBar->IsKindOf(CLASSINFO(wxStatusBar95))) - { - wxSizeEvent event(wxSize(x, y), m_frameStatusBar->GetId()); - event.SetEventObject( m_frameStatusBar ); - - ((wxStatusBar95 *)m_frameStatusBar)->OnSize(event); - } -#endif // wxUSE_NATIVE_STATUSBAR - - PositionStatusBar(); - PositionToolBar(); - - return wxWindow::HandleSize(x, y, id); - } - else - { - return FALSE; - } -} - -bool wxMDIChildFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd) -{ - // In case it's e.g. a toolbar. - if ( hwnd ) - { - wxWindow *win = wxFindWinFromHandle(hwnd); - if (win) - return win->MSWCommand(cmd, id); - } - - if (wxCurrentPopupMenu) - { - wxMenu *popupMenu = wxCurrentPopupMenu; - wxCurrentPopupMenu = NULL; - if (popupMenu->MSWCommand(cmd, id)) - return TRUE; - } - - if (GetMenuBar() && GetMenuBar()->FindItemForId(id)) - { - ProcessCommand(id); - return TRUE; - } - else - return FALSE; - - return TRUE; -} - -bool wxMDIChildFrame::HandleMDIActivate(long WXUNUSED(activate), - WXHWND hwndAct, - WXHWND hwndDeact) -{ - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - - HMENU menuToSet = 0; - - bool activated; - - if ( m_hWnd == hwndAct ) - { - activated = TRUE; - parent->m_currentChild = this; - - HMENU child_menu = (HMENU)GetWinMenu(); - if ( child_menu ) - { - parent->m_parentFrameActive = FALSE; - - menuToSet = child_menu; - } - } - else if ( m_hWnd == hwndDeact ) - { - wxASSERT_MSG( parent->m_currentChild == this, - _T("can't deactivate MDI child which wasn't active!") ); - - activated = FALSE; - parent->m_currentChild = NULL; - - HMENU parent_menu = (HMENU)parent->GetWinMenu(); - if ( parent_menu ) - { - parent->m_parentFrameActive = TRUE; - - menuToSet = parent_menu; - } - } - else - { - // we have nothing to with it - return FALSE; - } - - if ( menuToSet ) - { - HMENU subMenu = GetSubMenu((HMENU) parent->GetWindowMenu(), 0); - - MDISetMenu(parent->GetClientWindow(), menuToSet, subMenu); - } - - wxActivateEvent event(wxEVT_ACTIVATE, activated, m_windowId); - event.SetEventObject( this ); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxMDIChildFrame::HandleWindowPosChanging(void *pos) -{ - WINDOWPOS *lpPos = (WINDOWPOS *)pos; -#if defined(__WIN95__) - if (!(lpPos->flags & SWP_NOSIZE)) - { - RECT rectClient; - DWORD dwExStyle = ::GetWindowLong((HWND) GetHWND(), GWL_EXSTYLE); - DWORD dwStyle = ::GetWindowLong((HWND) GetHWND(), GWL_STYLE); - if (ResetWindowStyle((void *) & rectClient) && (dwStyle & WS_MAXIMIZE)) - { - ::AdjustWindowRectEx(&rectClient, dwStyle, FALSE, dwExStyle); - lpPos->x = rectClient.left; - lpPos->y = rectClient.top; - lpPos->cx = rectClient.right - rectClient.left; - lpPos->cy = rectClient.bottom - rectClient.top; - } - wxMDIParentFrame* pFrameWnd = (wxMDIParentFrame *)GetParent(); - if (pFrameWnd && pFrameWnd->GetToolBar()) - { - pFrameWnd->GetToolBar()->Refresh(); - } - } -#endif // Win95 - - return FALSE; -} - -// --------------------------------------------------------------------------- -// MDI specific message translation/preprocessing -// --------------------------------------------------------------------------- - -long wxMDIChildFrame::MSWDefWindowProc(WXUINT message, WXUINT wParam, WXLPARAM lParam) -{ - return DefMDIChildProc(GetHwnd(), - (UINT)message, (WPARAM)wParam, (LPARAM)lParam); -} - -bool wxMDIChildFrame::MSWTranslateMessage(WXMSG* msg) -{ - MSG *pMsg = (MSG *)msg; - if ( m_acceleratorTable.Ok() ) - { - return ::TranslateAccelerator(GetWinHwnd(GetParent()), - GetTableHaccel(m_acceleratorTable), - pMsg) != 0; - } - - return FALSE; -} - -// --------------------------------------------------------------------------- -// misc -// --------------------------------------------------------------------------- - -void wxMDIChildFrame::MSWDestroyWindow() -{ - MSWDetachWindowMenu(); - invalidHandle = (HWND) GetHWND(); - - wxMDIParentFrame *parent = (wxMDIParentFrame *)GetParent(); - - // Must make sure this handle is invalidated (set to NULL) since all sorts - // of things could happen after the child client is destroyed, but before - // the wxFrame is destroyed. - - HWND oldHandle = (HWND)GetHWND(); -#ifdef __WIN32__ - SendMessage((HWND) parent->GetClientWindow()->GetHWND(), WM_MDIDESTROY, (WPARAM)oldHandle, (LPARAM)0); -#else - SendMessage((HWND) parent->GetClientWindow()->GetHWND(), WM_MDIDESTROY, (HWND)oldHandle, 0); -#endif - invalidHandle = 0; - - if (m_hMenu) - { - ::DestroyMenu((HMENU) m_hMenu); - m_hMenu = 0; - } - m_hWnd = 0; -} - -// Change the client window's extended style so we don't get a client edge -// style when a child is maximised (a double border looks silly.) -bool wxMDIChildFrame::ResetWindowStyle(void *vrect) -{ -#if defined(__WIN95__) - RECT *rect = (RECT *)vrect; - wxMDIParentFrame* pFrameWnd = (wxMDIParentFrame *)GetParent(); - wxMDIChildFrame* pChild = pFrameWnd->GetActiveChild(); - if (!pChild || (pChild == this)) - { - DWORD dwStyle = ::GetWindowLong((HWND) pFrameWnd->GetClientWindow()->GetHWND(), GWL_EXSTYLE); - DWORD dwThisStyle = ::GetWindowLong((HWND) GetHWND(), GWL_STYLE); - DWORD dwNewStyle = dwStyle; - if (pChild != NULL && (dwThisStyle & WS_MAXIMIZE)) - dwNewStyle &= ~(WS_EX_CLIENTEDGE); - else - dwNewStyle |= WS_EX_CLIENTEDGE; - - if (dwStyle != dwNewStyle) - { - HWND hwnd = GetWinHwnd(pFrameWnd->GetClientWindow()); - ::RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE | RDW_ALLCHILDREN); - ::SetWindowLong(hwnd, GWL_EXSTYLE, dwNewStyle); - ::SetWindowPos(hwnd, NULL, 0, 0, 0, 0, - SWP_FRAMECHANGED | SWP_NOACTIVATE | - SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | - SWP_NOCOPYBITS); - if (rect) - ::GetClientRect(hwnd, rect); - - return TRUE; - } - } -#endif // Win95 - - return FALSE; -} - -// =========================================================================== -// wxMDIClientWindow: the window of predefined (by Windows) class which -// contains the child frames -// =========================================================================== - -bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) -{ - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - - CLIENTCREATESTRUCT ccs; - m_windowStyle = style; - m_parent = parent; - - ccs.hWindowMenu = (HMENU)parent->GetWindowMenu(); - ccs.idFirstChild = wxFIRST_MDI_CHILD; - - DWORD msStyle = WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN; - if ( style & wxHSCROLL ) - msStyle |= WS_HSCROLL; - if ( style & wxVSCROLL ) - msStyle |= WS_VSCROLL; - -#if defined(__WIN95__) - DWORD exStyle = WS_EX_CLIENTEDGE; -#else - DWORD exStyle = 0; -#endif - - wxWndHook = this; - m_hWnd = (WXHWND)::CreateWindowEx - ( - exStyle, - "MDICLIENT", - NULL, - msStyle, - 0, 0, 0, 0, - GetWinHwnd(parent), - NULL, - wxGetInstance(), - (LPSTR)(LPCLIENTCREATESTRUCT)&ccs); - if ( !m_hWnd ) - { - wxLogLastError("CreateWindowEx(MDI client)"); - - return FALSE; - } - - SubclassWin(m_hWnd); - wxWndHook = NULL; - - return TRUE; -} - -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& event) -{ - // Note: for client windows, the scroll position is not set in - // WM_HSCROLL, WM_VSCROLL, so we can't easily determine what - // scroll position we're at. - // This makes it hard to paint patterns or bitmaps in the background, - // and have the client area scrollable as well. - - if ( event.GetOrientation() == wxHORIZONTAL ) - m_scrollX = event.GetPosition(); // Always returns zero! - else - m_scrollY = event.GetPosition(); // Always returns zero! - - event.Skip(); -} - -// --------------------------------------------------------------------------- -// non member functions -// --------------------------------------------------------------------------- - -static void MDISetMenu(wxWindow *win, HMENU hmenuFrame, HMENU hmenuWindow) -{ - ::SendMessage(GetWinHwnd(win), WM_MDISETMENU, -#ifdef __WIN32__ - (WPARAM)hmenuFrame, (LPARAM)hmenuWindow); -#else - 0, MAKELPARAM(hmenuFrame, hmenuWindow)); -#endif - - // update menu bar of the parent window - wxWindow *parent = win->GetParent(); - wxCHECK_RET( parent, "MDI client without parent frame? weird..." ); - - ::DrawMenuBar(GetWinHwnd(parent)); -} - -static void InsertWindowMenu(wxWindow *win, WXHMENU menu, HMENU subMenu) -{ - // Try to insert Window menu in front of Help, otherwise append it. - HMENU hmenu = (HMENU)menu; - int N = GetMenuItemCount(hmenu); - bool success = FALSE; - for ( int i = 0; i < N; i++ ) - { - char buf[256]; - int chars = GetMenuString(hmenu, i, buf, WXSIZEOF(buf), MF_BYPOSITION); - if ( chars == 0 ) - { - wxLogLastError("GetMenuString"); - - continue; - } - - if ( wxStripMenuCodes(wxString(buf)).IsSameAs(_("Help")) ) - { - success = TRUE; - ::InsertMenu(hmenu, i, MF_BYPOSITION | MF_POPUP | MF_STRING, - (UINT)subMenu, "&Window"); - break; - } - } - - if ( !success ) - { - ::AppendMenu(hmenu, MF_POPUP, (UINT)subMenu, _("&Window")); - } - - MDISetMenu(win, hmenu, subMenu); -} - -static void UnpackMDIActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *activate, WXHWND *hwndAct, WXHWND *hwndDeact) -{ -#ifdef __WIN32__ - *activate = TRUE; - *hwndAct = (WXHWND)lParam; - *hwndDeact = (WXHWND)wParam; -#else // Win16 - *activate = (WXWORD)wParam; - *hwndAct = (WXHWND)LOWORD(lParam); - *hwndDeact = (WXHWND)HIWORD(lParam); -#endif // Win32/Win16 -} diff --git a/src/msw/menu.cpp b/src/msw/menu.cpp deleted file mode 100644 index 59fc836e29..0000000000 --- a/src/msw/menu.cpp +++ /dev/null @@ -1,1139 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: wxMenu, wxMenuBar, wxMenuItem -// Author: Julian Smart -// Modified by: Vadim Zeitlin -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "menu.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/frame.h" - #include "wx/menu.h" - #include "wx/utils.h" - #include "wx/intl.h" -#endif - -#if wxUSE_OWNER_DRAWN - #include "wx/ownerdrw.h" -#endif - -#include "wx/msw/private.h" -#include "wx/msw/menu.h" -#include "wx/menuitem.h" -#include "wx/log.h" - -// other standard headers -#include - -// ---------------------------------------------------------------------------- -// global variables -// ---------------------------------------------------------------------------- - -extern wxMenu *wxCurrentPopupMenu; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// the (popup) menu title has this special id -static const int idMenuTitle = -2; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) - IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) -#endif - -// convenience macros -#define GetHMENU() ((HMENU)GetHMenu()) -#define GetHMenuOf(menu) ((HMENU)menu->GetHMenu()) - -// ============================================================================ -// implementation -// ============================================================================ - -// --------------------------------------------------------------------------- -// wxMenu construction, adding and removing menu items -// --------------------------------------------------------------------------- - -// Construct a menu with optional title (then use append) -wxMenu::wxMenu(const wxString& title, const wxFunction func) - : m_title(title) -{ - m_parent = NULL; - m_eventHandler = this; - m_pInvokingWindow = NULL; - m_doBreak = FALSE ; - m_noItems = 0; - m_menuBar = NULL; - m_hMenu = (WXHMENU) CreatePopupMenu(); - m_savehMenu = 0 ; - m_topLevelMenu = this; - m_clientData = (void*) NULL; - - if ( !!m_title ) - { - Append(idMenuTitle, m_title) ; - AppendSeparator() ; - } - -#if WXWIN_COMPATIBILITY - Callback(func); -#endif -} - -// The wxWindow destructor will take care of deleting the submenus. -wxMenu::~wxMenu() -{ - // free Windows resources - if ( m_hMenu ) - { - ::DestroyMenu((HMENU)m_hMenu); - m_hMenu = 0; - } - - // delete submenus - wxNode *node = m_menuItems.First(); - while ( node ) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - - // Delete child menus. - // Beware: they must not be appended to children list!!! - // (because order of delete is significant) - if ( item->IsSubMenu() ) - item->DeleteSubMenu(); - - wxNode *next = node->Next(); - delete item; - delete node; - node = next; - } -} - -void wxMenu::Break() -{ - m_doBreak = TRUE; -} - -// function appends a new item or submenu to the menu -void wxMenu::Append(wxMenuItem *pItem) -{ - wxCHECK_RET( pItem != NULL, "can't append NULL item to the menu" ); - - // check for accelerators: they are given after '\t' - wxString label = pItem->GetName(); - int posTab = label.Find('\t'); - if ( posTab != wxNOT_FOUND ) { - // parse the accelerator string - int keyCode = 0; - int accelFlags = wxACCEL_NORMAL; - wxString current; - for ( size_t n = (size_t)posTab + 1; n < label.Len(); n++ ) { - if ( (label[n] == '+') || (label[n] == '-') ) { - if ( current == _("ctrl") ) - accelFlags |= wxACCEL_CTRL; - else if ( current == _("alt") ) - accelFlags |= wxACCEL_ALT; - else if ( current == _("shift") ) - accelFlags |= wxACCEL_SHIFT; - else { - wxLogDebug(_T("Unknown accel modifier: '%s'"), - current.c_str()); - } - - current.Empty(); - } - else { - current += wxTolower(label[n]); - } - } - - if ( current.IsEmpty() ) { - wxLogDebug(_T("No accel key found, accel string ignored.")); - } - else { - if ( current.Len() == 1 ) { - // it's a letter - keyCode = wxToupper(current[0U]); - } - else { - // it should be a function key - if ( current[0U] == 'f' && isdigit(current[1U]) && - (current.Len() == 2 || - (current.Len() == 3 && isdigit(current[2U]))) ) { - int n; - sscanf(current.c_str() + 1, "%d", &n); - - keyCode = VK_F1 + n - 1; - } - else { - wxLogDebug(_T("Unrecognized accel key '%s', accel " - "string ignored."), current.c_str()); - } - } - } - - if ( keyCode ) { - // do add an entry - m_accelKeyCodes.Add(keyCode); - m_accelFlags.Add(accelFlags); - m_accelIds.Add(pItem->GetId()); - } - } - - UINT flags = 0; - - // if "Break" has just been called, insert a menu break before this item - // (and don't forget to reset the flag) - if ( m_doBreak ) { - flags |= MF_MENUBREAK; - m_doBreak = FALSE; - } - - if ( pItem->IsSeparator() ) { - flags |= MF_SEPARATOR; - } - - // id is the numeric id for normal menu items and HMENU for submenus as - // required by ::AppendMenu() API - UINT id; - wxMenu *submenu = pItem->GetSubMenu(); - if ( submenu != NULL ) { - wxASSERT( submenu->GetHMenu() != (WXHMENU) NULL ); - - id = (UINT)submenu->GetHMenu(); - submenu->m_topLevelMenu = m_topLevelMenu; - submenu->m_parent = this; - submenu->m_savehMenu = (WXHMENU)id; - submenu->m_hMenu = 0; - - flags |= MF_POPUP; - } - else { - id = pItem->GetId(); - } - - LPCSTR pData; - -#if wxUSE_OWNER_DRAWN - if ( pItem->IsOwnerDrawn() ) { // want to get {Measure|Draw}Item messages? - // item draws itself, pass pointer to it in data parameter - flags |= MF_OWNERDRAW; - pData = (LPCSTR)pItem; - } - else -#endif - { - // menu is just a normal string (passed in data parameter) - flags |= MF_STRING; - pData = label; - } - - if ( !::AppendMenu(GetHMENU(), flags, id, pData) ) - { - wxLogLastError("AppendMenu"); - } - else - { -#ifdef __WIN32__ - if ( id == idMenuTitle ) - { - // visually select the menu title - MENUITEMINFO mii; - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_STATE; - mii.fState = MFS_DEFAULT; - - if ( !SetMenuItemInfo(GetHMENU(), (unsigned)id, FALSE, &mii) ) - { - wxLogLastError("SetMenuItemInfo"); - } - } -#endif // __WIN32__ - - m_menuItems.Append(pItem); - m_noItems++; - } -} - -void wxMenu::AppendSeparator() -{ - Append(new wxMenuItem(this, ID_SEPARATOR)); -} - -// Pullright item -void wxMenu::Append(int id, - const wxString& label, - wxMenu *SubMenu, - const wxString& helpString) -{ - Append(new wxMenuItem(this, id, label, helpString, FALSE, SubMenu)); -} - -// Ordinary menu item -void wxMenu::Append(int id, - const wxString& label, - const wxString& helpString, - bool checkable) -{ - // 'checkable' parameter is useless for Windows. - Append(new wxMenuItem(this, id, label, helpString, checkable)); -} - -// delete item by id -void wxMenu::Delete(int id) -{ - wxMenuItem *item = NULL; - int pos; - wxNode *node; - for (pos = 0, node = m_menuItems.First(); node; node = node->Next(), pos++) - { - item = (wxMenuItem *)node->Data(); - if ( item->GetId() == id ) - break; - } - - wxCHECK_RET( node, "wxMenu::Delete(): item doesn't exist" ); - - HMENU menu = GetHMENU(); - - wxMenu *pSubMenu = item->GetSubMenu(); - if ( pSubMenu != NULL ) { - RemoveMenu(menu, (UINT)pos, MF_BYPOSITION); - pSubMenu->m_hMenu = pSubMenu->m_savehMenu; - pSubMenu->m_savehMenu = 0; - pSubMenu->m_parent = NULL; - // RemoveChild(item->subMenu); - pSubMenu->m_topLevelMenu = NULL; - // TODO: Why isn't subMenu deleted here??? - // Will put this in for now. Assuming this is supposed - // to delete the menu, not just remove it. - item->DeleteSubMenu(); - } - else { - DeleteMenu(menu, (UINT)pos, MF_BYPOSITION); - } - - m_menuItems.DeleteNode(node); - delete item; -} - -// --------------------------------------------------------------------------- -// accelerator helpers -// --------------------------------------------------------------------------- - -// create the wxAcceleratorEntries for our accels and put them into provided -// array - return the number of accels we have -size_t wxMenu::CopyAccels(wxAcceleratorEntry *accels) const -{ - size_t count = GetAccelCount(); - for ( size_t n = 0; n < count; n++ ) - { - (*accels++).Set(m_accelFlags[n], m_accelKeyCodes[n], m_accelIds[n]); - } - - return count; -} - -// --------------------------------------------------------------------------- -// wxMenu functions implemented in wxMenuItem -// --------------------------------------------------------------------------- - -void wxMenu::Enable(int id, bool Flag) -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_RET( item != NULL, "can't enable non-existing menu item" ); - - item->Enable(Flag); -} - -bool wxMenu::IsEnabled(int id) const -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_MSG( item != NULL, FALSE, "invalid item id" ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int id, bool Flag) -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_RET( item != NULL, "can't get status of non-existing menu item" ); - - item->Check(Flag); -} - -bool wxMenu::IsChecked(int id) const -{ - wxMenuItem *item = FindItemForId(id); - wxCHECK_MSG( item != NULL, FALSE, "invalid item id" ); - - return item->IsChecked(); -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id) ; - wxCHECK_RET( item, "wxMenu::SetLabel: no such item" ); - - item->SetName(label); -} - -wxString wxMenu::GetLabel(int id) const -{ - wxString label; - wxMenuItem *pItem = FindItemForId(id) ; - if (pItem) - label = pItem->GetName() ; - else - wxFAIL_MSG("wxMenu::GetLabel: item doesn't exist"); - - return label; -} - -void wxMenu::SetHelpString(int itemId, const wxString& helpString) -{ - wxMenuItem *item = FindItemForId (itemId); - if (item) - item->SetHelp(helpString); - else - wxFAIL_MSG("wxMenu::SetHelpString: item doesn't exist"); -} - -wxString wxMenu::GetHelpString (int itemId) const -{ - wxString help; - wxMenuItem *item = FindItemForId (itemId); - if (item) - help = item->GetHelp(); - else - wxFAIL_MSG("wxMenu::GetHelpString: item doesn't exist"); - - return help; -} - -// --------------------------------------------------------------------------- -// wxMenu title -// --------------------------------------------------------------------------- - -void wxMenu::SetTitle(const wxString& label) -{ - bool hasNoTitle = m_title.IsEmpty(); - m_title = label; - - HMENU hMenu = GetHMENU(); - - if ( hasNoTitle ) - { - if ( !label.IsEmpty() ) - { - if ( !InsertMenu(hMenu, 0u, MF_BYPOSITION | MF_STRING, - (unsigned)idMenuTitle, m_title) || - !InsertMenu(hMenu, 1u, MF_BYPOSITION, (unsigned)-1, NULL) ) - { - wxLogLastError("InsertMenu"); - } - } - } - else - { - if ( label.IsEmpty() ) - { - // remove the title and the separator after it - if ( !RemoveMenu(hMenu, 0, MF_BYPOSITION) || - !RemoveMenu(hMenu, 0, MF_BYPOSITION) ) - { - wxLogLastError("RemoveMenu"); - } - } - else - { - // modify the title - if ( !ModifyMenu(hMenu, 0u, - MF_BYPOSITION | MF_STRING, - (unsigned)idMenuTitle, m_title) ) - { - wxLogLastError("ModifyMenu"); - } - } - } - -#ifdef __WIN32__ - // put the title string in bold face - if ( !m_title.IsEmpty() ) - { - MENUITEMINFO mii; - mii.cbSize = sizeof(mii); - mii.fMask = MIIM_STATE; - mii.fState = MFS_DEFAULT; - - if ( !SetMenuItemInfo(hMenu, (unsigned)idMenuTitle, FALSE, &mii) ) - { - wxLogLastError("SetMenuItemInfo"); - } - } -#endif -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -// --------------------------------------------------------------------------- -// event processing -// --------------------------------------------------------------------------- - -bool wxMenu::MSWCommand(WXUINT WXUNUSED(param), WXWORD id) -{ - // ignore commands from the menu title - - // NB: VC++ generates wrong assembler for `if ( id != idMenuTitle )'!! - if ( id != (WXWORD)idMenuTitle ) - { - wxCommandEvent event(wxEVT_COMMAND_MENU_SELECTED); - event.SetEventObject( this ); - event.SetId( id ); - event.SetInt( id ); - ProcessCommand(event); - } - - return TRUE; -} - -bool wxMenu::ProcessCommand(wxCommandEvent & event) -{ - bool processed = FALSE; - -#if WXWIN_COMPATIBILITY - // Try a callback - if (m_callback) - { - (void)(*(m_callback))(*this, event); - processed = TRUE; - } -#endif // WXWIN_COMPATIBILITY - - // Try the menu's event handler - if ( !processed && GetEventHandler()) - { - processed = GetEventHandler()->ProcessEvent(event); - } - - // Try the window the menu was popped up from (and up through the - // hierarchy) - wxWindow *win = GetInvokingWindow(); - if ( !processed && win ) - processed = win->GetEventHandler()->ProcessEvent(event); - - return processed; -} - -// --------------------------------------------------------------------------- -// Item search -// --------------------------------------------------------------------------- - -// Finds the item id matching the given string, -1 if not found. -int wxMenu::FindItem (const wxString& itemString) const -{ - wxString itemLabel = wxStripMenuCodes(itemString); - for ( wxNode *node = m_menuItems.First(); node; node = node->Next() ) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - if ( item->IsSubMenu() ) - { - int ans = item->GetSubMenu()->FindItem(itemString); - if ( ans != wxNOT_FOUND ) - return ans; - } - else if ( !item->IsSeparator() ) - { - wxString label = wxStripMenuCodes(item->GetName()); - if ( itemLabel == label ) - return item->GetId(); - } - } - - return wxNOT_FOUND; -} - -wxMenuItem *wxMenu::FindItemForId(int itemId, wxMenu ** itemMenu) const -{ - if ( itemMenu ) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - for ( wxNode *node = m_menuItems.First(); node && !item; node = node->Next() ) - { - item = (wxMenuItem *)node->Data(); - - if ( item->GetId() == itemId ) - { - if (itemMenu) - *itemMenu = (wxMenu *)this; - } - else if ( item->IsSubMenu() ) - { - item = item->GetSubMenu()->FindItemForId(itemId, itemMenu); - } - else - { - // don't exit the loop - item = NULL; - } - } - - return item; -} - -// --------------------------------------------------------------------------- -// other -// --------------------------------------------------------------------------- - -bool wxWindow::PopupMenu(wxMenu *menu, int x, int y) -{ - menu->SetInvokingWindow(this); - menu->UpdateUI(); - - HWND hWnd = (HWND) GetHWND(); - HMENU hMenu = (HMENU)menu->GetHMenu(); - POINT point; - point.x = x; - point.y = y; - ::ClientToScreen(hWnd, &point); - wxCurrentPopupMenu = menu; - ::TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, point.x, point.y, 0, hWnd, NULL); - wxYield(); - wxCurrentPopupMenu = NULL; - - menu->SetInvokingWindow(NULL); - - return TRUE; -} - -void wxMenu::Attach(wxMenuBar *menubar) -{ - // menu can be in at most one menubar because otherwise they would both - // delete the menu pointer - wxASSERT_MSG( !m_menuBar, "menu belongs to 2 menubars, expect a crash" ); - - m_menuBar = menubar; - m_savehMenu = m_hMenu; - m_hMenu = 0; -} - -void wxMenu::Detach() -{ - wxASSERT_MSG( m_menuBar, "can't detach menu if it's not attached" ); - - m_hMenu = m_savehMenu; - m_savehMenu = 0; -} - -// --------------------------------------------------------------------------- -// Menu Bar -// --------------------------------------------------------------------------- - -void wxMenuBar::Init() -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - m_hMenu = 0; -} - -wxMenuBar::wxMenuBar() -{ - Init(); -} - -wxMenuBar::wxMenuBar( long WXUNUSED(style) ) -{ - Init(); -} - -wxMenuBar::wxMenuBar(int count, wxMenu *menus[], const wxString titles[]) -{ - Init(); - - m_menuCount = count; - m_menus = menus; - m_titles = new wxString[count]; - - int i; - for ( i = 0; i < count; i++ ) - m_titles[i] = titles[i]; - - for ( i = 0; i < count; i++ ) - m_menus[i]->Attach(this); -} - -wxMenuBar::~wxMenuBar() -{ - for ( int i = 0; i < m_menuCount; i++ ) - { - delete m_menus[i]; - } - - delete[] m_menus; - delete[] m_titles; -} - -// --------------------------------------------------------------------------- -// wxMenuBar helpers -// --------------------------------------------------------------------------- - -void wxMenuBar::Refresh() -{ - wxCHECK_RET( m_menuBarFrame, "can't refresh a menubar withotu a frame" ); - - DrawMenuBar((HWND)m_menuBarFrame->GetHWND()) ; -} - -WXHMENU wxMenuBar::Create() -{ - wxCHECK_MSG( !m_hMenu, TRUE, "menubar already created" ); - - m_hMenu = (WXHMENU)::CreateMenu(); - - if ( !m_hMenu ) - { - wxLogLastError("CreateMenu"); - } - else - { - for ( int i = 0; i < m_menuCount; i++ ) - { - if ( !::AppendMenu((HMENU)m_hMenu, MF_POPUP | MF_STRING, - (UINT)m_menus[i]->GetHMenu(), - m_titles[i]) ) - { - wxLogLastError("AppendMenu"); - } - } - } - - return m_hMenu; -} - -// --------------------------------------------------------------------------- -// wxMenuBar functions forwarded to wxMenuItem -// --------------------------------------------------------------------------- - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus to enable/disable items -void wxMenuBar::Enable(int id, bool enable) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_RET( item, "attempt to enable an item which doesn't exist" ); - - item->Enable(enable); -} - -void wxMenuBar::EnableTop(int pos, bool enable) -{ - int flag = enable ? MF_ENABLED : MF_GRAYED;; - - EnableMenuItem((HMENU)m_hMenu, pos, MF_BYPOSITION | flag); -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus -void wxMenuBar::Check(int id, bool check) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_RET( item, "attempt to check an item which doesn't exist" ); - wxCHECK_RET( item->IsCheckable(), "attempt to check an uncheckable item" ); - - item->Check(check); -} - -bool wxMenuBar::IsChecked(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_MSG( item, FALSE, "wxMenuBar::IsChecked(): no such item" ); - - int flag = ::GetMenuState(GetHMenuOf(itemMenu), id, MF_BYCOMMAND); - - return (flag & MF_CHECKED) != 0; -} - -bool wxMenuBar::IsEnabled(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_MSG( item, FALSE, "wxMenuBar::IsEnabled(): no such item" ); - - int flag = ::GetMenuState(GetHMenuOf(itemMenu), id, MF_BYCOMMAND) ; - - return (flag & MF_ENABLED) != 0; -} - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_RET( item, "wxMenuBar::SetLabel(): no such item" ); - - item->SetName(label); -} - -wxString wxMenuBar::GetLabel(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_MSG( item, "", "wxMenuBar::GetLabel(): no such item" ); - - return item->GetName(); -} - -void wxMenuBar::SetHelpString (int id, const wxString& helpString) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_RET( item, "wxMenuBar::SetHelpString(): no such item" ); - - item->SetHelp(helpString); -} - -wxString wxMenuBar::GetHelpString (int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - wxCHECK_MSG( item, "", "wxMenuBar::GetHelpString(): no such item" ); - - return item->GetHelp(); -} - -// --------------------------------------------------------------------------- -// wxMenuBar functions to work with the top level submenus -// --------------------------------------------------------------------------- - -// NB: we don't support owner drawn top level items for now, if we do these -// functions would have to be changed to use wxMenuItem as well - -void wxMenuBar::SetLabelTop(int pos, const wxString& label) -{ - UINT id; - UINT flagsOld = ::GetMenuState((HMENU)m_hMenu, pos, MF_BYPOSITION); - if ( flagsOld == 0xFFFFFFFF ) - { - wxLogLastError("GetMenuState"); - - return; - } - - if ( flagsOld & MF_POPUP ) - { - // HIBYTE contains the number of items in the submenu in this case - flagsOld &= 0xff ; - id = (UINT)::GetSubMenu((HMENU)m_hMenu, pos) ; - } - else - { - id = pos; - } - - if ( ::ModifyMenu(GetHMENU(), pos, MF_BYPOSITION | MF_STRING | flagsOld, - id, label) == 0xFFFFFFFF ) - { - wxLogLastError("ModifyMenu"); - } -} - -wxString wxMenuBar::GetLabelTop(int pos) const -{ - int len = ::GetMenuString((HMENU)m_hMenu, pos, NULL, 0, MF_BYCOMMAND); - - len++; // for the NUL character - wxString label; - ::GetMenuString(GetHMENU(), pos, label.GetWriteBuf(len), len, MF_BYCOMMAND); - label.UngetWriteBuf(); - - return label; -} - -// --------------------------------------------------------------------------- -// wxMenuBar notifications -// --------------------------------------------------------------------------- - -bool wxMenuBar::OnDelete(wxMenu *a_menu, int pos) -{ - if ( !m_menuBarFrame ) - return TRUE; - - if ( ::RemoveMenu((HMENU)m_hMenu, (UINT)pos, MF_BYPOSITION) ) - { - // VZ: I'm not sure about what's going on here, so I leave an assert - wxASSERT_MSG( m_menus[pos] == a_menu, "what is this parameter for??" ); - - a_menu->Detach(); - - if ( m_menuBarFrame ) - Refresh(); - - return TRUE; - } - else - { - wxLogLastError("RemoveMenu"); - } - - return FALSE; -} - -bool wxMenuBar::OnAppend(wxMenu *a_menu, const char *title) -{ - WXHMENU submenu = a_menu->GetHMenu(); - if ( !submenu ) - return FALSE; - - if ( !m_menuBarFrame ) - return TRUE; - - a_menu->Attach(this); - - if ( !::AppendMenu(GetHMENU(), MF_POPUP | MF_STRING, - (UINT)submenu, title) ) - { - wxLogLastError("AppendMenu"); - } - - Refresh(); - - return TRUE; -} - -// --------------------------------------------------------------------------- -// wxMenuBar construction -// --------------------------------------------------------------------------- - -void wxMenuBar::Append (wxMenu * menu, const wxString& title) -{ - if (!OnAppend(menu, title)) - return; - - m_menuCount ++; - wxMenu **new_menus = new wxMenu *[m_menuCount]; - wxString *new_titles = new wxString[m_menuCount]; - int i; - - for (i = 0; i < m_menuCount - 1; i++) - { - new_menus[i] = m_menus[i]; - m_menus[i] = NULL; - new_titles[i] = m_titles[i]; - m_titles[i] = ""; - } - if (m_menus) - { - delete[]m_menus; - delete[]m_titles; - } - m_menus = new_menus; - m_titles = new_titles; - - m_menus[m_menuCount - 1] = (wxMenu *)menu; - m_titles[m_menuCount - 1] = title; - - menu->SetParent(this); -} - -void wxMenuBar::Delete(wxMenu * menu, int i) -{ - int j; - int ii = (int) i; - - if (menu != 0) { - for (ii = 0; ii < m_menuCount; ii++) { - if (m_menus[ii] == menu) - break; - } - if (ii >= m_menuCount) - return; - } else { - if (ii < 0 || ii >= m_menuCount) - return; - menu = m_menus[ii]; - } - - if (!OnDelete(menu, ii)) - return; - - menu->SetParent(NULL); - - -- m_menuCount; - for (j = ii; j < m_menuCount; j++) { - m_menus[j] = m_menus[j + 1]; - m_titles[j] = m_titles[j + 1]; - } -} - -void wxMenuBar::Attach(wxFrame *frame) -{ - wxASSERT_MSG( !m_menuBarFrame, _T("menubar already attached!") ); - - m_menuBarFrame = frame; - - // create the accel table - we consider that the menubar construction is - // finished - size_t nAccelCount = 0; - int i; - for ( i = 0; i < m_menuCount; i++ ) - { - nAccelCount += m_menus[i]->GetAccelCount(); - } - - if ( nAccelCount ) - { - wxAcceleratorEntry *accelEntries = new wxAcceleratorEntry[nAccelCount]; - - nAccelCount = 0; - for ( i = 0; i < m_menuCount; i++ ) - { - nAccelCount += m_menus[i]->CopyAccels(&accelEntries[nAccelCount]); - } - - m_accelTable = wxAcceleratorTable(nAccelCount, accelEntries); - - delete [] accelEntries; - } -} - -// --------------------------------------------------------------------------- -// wxMenuBar searching for menu items -// --------------------------------------------------------------------------- - -// Find the itemString in menuString, and return the item id or wxNOT_FOUND -int wxMenuBar::FindMenuItem(const wxString& menuString, - const wxString& itemString) const -{ - wxString menuLabel = wxStripMenuCodes(menuString); - for ( int i = 0; i < m_menuCount; i++ ) - { - wxString title = wxStripMenuCodes(m_titles[i]); - if ( menuString == title ) - return m_menus[i]->FindItem(itemString); - } - - return wxNOT_FOUND; -} - -wxMenuItem *wxMenuBar::FindItemForId (int id, wxMenu **itemMenu) const -{ - if ( itemMenu ) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - for ( int i = 0; !item && (i < m_menuCount); i++ ) - { - item = m_menus[i]->FindItemForId(id, itemMenu); - } - - return item; -} - - -// ---------------------------------------------------------------------------- -// helper functions -// ---------------------------------------------------------------------------- - -wxWindow *wxMenu::GetWindow() const -{ - if ( m_pInvokingWindow != NULL ) - return m_pInvokingWindow; - else if ( m_menuBar != NULL) - return m_menuBar->GetFrame(); - - return NULL; -} - -WXHMENU wxMenu::GetHMenu() const -{ - if ( m_hMenu != 0 ) - return m_hMenu; - else if ( m_savehMenu != 0 ) - return m_savehMenu; - - wxFAIL_MSG("wxMenu without HMENU"); - - return 0; -} - -// Update a menu and all submenus recursively. source is the object that has -// the update event handlers defined for it. If NULL, the menu or associated -// window will be used. -void wxMenu::UpdateUI(wxEvtHandler* source) -{ - if (!source && GetInvokingWindow()) - source = GetInvokingWindow()->GetEventHandler(); - if (!source) - source = GetEventHandler(); - if (!source) - source = this; - - wxNode* node = GetItems().First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if ( !item->IsSeparator() ) - { - wxWindowID id = item->GetId(); - wxUpdateUIEvent event(id); - event.SetEventObject( source ); - - if (source->ProcessEvent(event)) - { - if (event.GetSetText()) - SetLabel(id, event.GetText()); - if (event.GetSetChecked()) - Check(id, event.GetChecked()); - if (event.GetSetEnabled()) - Enable(id, event.GetEnabled()); - } - - if (item->GetSubMenu()) - item->GetSubMenu()->UpdateUI(source); - } - node = node->Next(); - } -} diff --git a/src/msw/menuitem.cpp b/src/msw/menuitem.cpp deleted file mode 100644 index fa63e469a8..0000000000 --- a/src/msw/menuitem.cpp +++ /dev/null @@ -1,217 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.cpp -// Purpose: wxMenuItem implementation -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "menuitem.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/font.h" - #include "wx/bitmap.h" - #include "wx/settings.h" - #include "wx/font.h" - #include "wx/accel.h" - #include "wx/menu.h" - #include "wx/string.h" - #include "wx/window.h" -#endif - -#include "wx/ownerdrw.h" -#include "wx/menuitem.h" -#include "wx/log.h" - -#include "wx/msw/private.h" - -// --------------------------------------------------------------------------- -// convenience macro -// --------------------------------------------------------------------------- - -#define GetHMenuOf(menu) ((HMENU)menu->GetHMenu()) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// dynamic classes implementation -// ---------------------------------------------------------------------------- - -#if !defined(USE_SHARED_LIBRARY) || !USE_SHARED_LIBRARY -#if wxUSE_OWNER_DRAWN - IMPLEMENT_DYNAMIC_CLASS2(wxMenuItem, wxObject, wxOwnerDrawn) -#else //!USE_OWNER_DRAWN - IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject) -#endif //USE_OWNER_DRAWN - -#endif //USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// wxMenuItem -// ---------------------------------------------------------------------------- - -// ctor & dtor -// ----------- - -wxMenuItem::wxMenuItem(wxMenu *pParentMenu, int id, - const wxString& strName, const wxString& strHelp, - bool bCheckable, - wxMenu *pSubMenu) : -#if wxUSE_OWNER_DRAWN - wxOwnerDrawn(strName, bCheckable), -#else //no owner drawn support - m_bCheckable(bCheckable), - m_strName(strName), -#endif //owner drawn - m_strHelp(strHelp) -{ - wxASSERT_MSG( pParentMenu != NULL, "a menu item should have a parent" ); - -#if wxUSE_OWNER_DRAWN - // set default menu colors - #define SYS_COLOR(c) (wxSystemSettings::GetSystemColour(wxSYS_COLOUR_##c)) - - SetTextColour(SYS_COLOR(MENUTEXT)); - SetBackgroundColour(SYS_COLOR(MENU)); - - // we don't want normal items be owner-drawn - ResetOwnerDrawn(); - - #undef SYS_COLOR -#endif - - m_pParentMenu = pParentMenu; - m_pSubMenu = pSubMenu; - m_bEnabled = TRUE; - m_bChecked = FALSE; - m_idItem = id; -} - -wxMenuItem::~wxMenuItem() -{ -} - -// misc -// ---- - -// return the id for calling Win32 API functions -int wxMenuItem::GetRealId() const -{ - return m_pSubMenu ? (int)m_pSubMenu->GetHMenu() : GetId(); -} - -// delete the sub menu -// ------------------- -void wxMenuItem::DeleteSubMenu() -{ - delete m_pSubMenu; - m_pSubMenu = NULL; -} - -// change item state -// ----------------- - -void wxMenuItem::Enable(bool bDoEnable) -{ - if ( m_bEnabled != bDoEnable ) { - long rc = EnableMenuItem(GetHMenuOf(m_pParentMenu), - GetRealId(), - MF_BYCOMMAND | - (bDoEnable ? MF_ENABLED : MF_GRAYED)); - - if ( rc == -1 ) { - wxLogLastError("EnableMenuItem"); - } - - m_bEnabled = bDoEnable; - } -} - -void wxMenuItem::Check(bool bDoCheck) -{ - wxCHECK_RET( IsCheckable(), "only checkable items may be checked" ); - - if ( m_bChecked != bDoCheck ) { - long rc = CheckMenuItem(GetHMenuOf(m_pParentMenu), - GetId(), - MF_BYCOMMAND | - (bDoCheck ? MF_CHECKED : MF_UNCHECKED)); - - if ( rc == -1 ) { - wxLogLastError("CheckMenuItem"); - } - - m_bChecked = bDoCheck; - } -} - -void wxMenuItem::SetName(const wxString& strName) -{ - // don't do anything if label didn't change - if ( m_strName == strName ) - return; - - m_strName = strName; - - HMENU hMenu = GetHMenuOf(m_pParentMenu); - - UINT id = GetRealId(); - UINT flagsOld = ::GetMenuState(hMenu, id, MF_BYCOMMAND); - if ( flagsOld == 0xFFFFFFFF ) - { - wxLogLastError("GetMenuState"); - } - else - { - if ( IsSubMenu() ) - { - // high byte contains the number of items in a submenu for submenus - flagsOld &= 0xFF; - flagsOld |= MF_POPUP; - } - - LPCSTR data; -#if wxUSE_OWNER_DRAWN - if ( IsOwnerDrawn() ) - { - flagsOld |= MF_OWNERDRAW; - data = (LPCSTR)this; - } - else -#endif //owner drawn - { - flagsOld |= MF_STRING; - data = strName; - } - - if ( ::ModifyMenu(hMenu, id, - MF_BYCOMMAND | flagsOld, - id, data) == 0xFFFFFFFF ) - { - wxLogLastError("ModifyMenu"); - } - } -} - diff --git a/src/msw/metafile.cpp b/src/msw/metafile.cpp deleted file mode 100644 index 635537b662..0000000000 --- a/src/msw/metafile.cpp +++ /dev/null @@ -1,419 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.cpp -// Purpose: wxMetafileDC etc. -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "metafile.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#endif - -#if wxUSE_METAFILE - -#ifndef WX_PRECOMP -#include "wx/utils.h" -#include "wx/app.h" -#endif - -#include "wx/metafile.h" -#include "wx/clipbrd.h" -#include "wx/msw/private.h" - -#include -#include - -extern bool wxClipboardIsOpen; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMetafile, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxMetafileDC, wxDC) -#endif - -/* - * Metafiles - * Currently, the only purpose for making a metafile is to put - * it on the clipboard. - */ - -wxMetafileRefData::wxMetafileRefData(void) -{ - m_metafile = 0; - m_windowsMappingMode = wxMM_ANISOTROPIC; -} - -wxMetafileRefData::~wxMetafileRefData(void) -{ - if (m_metafile) - { - DeleteMetaFile((HMETAFILE) m_metafile); - m_metafile = 0; - } -} - -wxMetafile::wxMetafile(const wxString& file) -{ - m_refData = new wxMetafileRefData; - - M_METAFILEDATA->m_windowsMappingMode = wxMM_ANISOTROPIC; - M_METAFILEDATA->m_metafile = 0; - if (!file.IsNull() && (file.Cmp("") == 0)) - M_METAFILEDATA->m_metafile = (WXHANDLE) GetMetaFile(file); -} - -wxMetafile::~wxMetafile(void) -{ -} - -bool wxMetafile::SetClipboard(int width, int height) -{ - if (!m_refData) - return FALSE; - - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - if (!wxEmptyClipboard()) return FALSE; - } - bool success = wxSetClipboardData(wxDF_METAFILE, this, width,height); - if (!alreadyOpen) wxCloseClipboard(); - return (bool) success; -} - -bool wxMetafile::Play(wxDC *dc) -{ - if (!m_refData) - return FALSE; - - dc->BeginDrawing(); - - if (dc->GetHDC() && M_METAFILEDATA->m_metafile) - PlayMetaFile((HDC) dc->GetHDC(), (HMETAFILE) M_METAFILEDATA->m_metafile); - - dc->EndDrawing(); - - return TRUE; -} - -void wxMetafile::SetHMETAFILE(WXHANDLE mf) -{ - if (m_refData) - m_refData = new wxMetafileRefData; - - M_METAFILEDATA->m_metafile = mf; -} - -void wxMetafile::SetWindowsMappingMode(int mm) -{ - if (m_refData) - m_refData = new wxMetafileRefData; - - M_METAFILEDATA->m_windowsMappingMode = mm; -} - -/* - * Metafile device context - * - */ - -// Original constructor that does not takes origin and extent. If you use this, -// *DO* give origin/extent arguments to wxMakeMetafilePlaceable. -wxMetafileDC::wxMetafileDC(const wxString& file) -{ - m_metaFile = NULL; - m_minX = 10000; - m_minY = 10000; - m_maxX = -10000; - m_maxY = -10000; -// m_title = NULL; - - if (!file.IsNull() && wxFileExists(file)) - wxRemoveFile(file); - - if (!file.IsNull() && (file != "")) - m_hDC = (WXHDC) CreateMetaFile(file); - else - m_hDC = (WXHDC) CreateMetaFile(NULL); - - m_ok = (m_hDC != (WXHDC) 0) ; - - // Actual Windows mapping mode, for future reference. - m_windowsMappingMode = wxMM_TEXT; - - SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct) -} - -// New constructor that takes origin and extent. If you use this, don't -// give origin/extent arguments to wxMakeMetafilePlaceable. -wxMetafileDC::wxMetafileDC(const wxString& file, int xext, int yext, int xorg, int yorg) -{ - m_minX = 10000; - m_minY = 10000; - m_maxX = -10000; - m_maxY = -10000; - if (file != "" && wxFileExists(file)) wxRemoveFile(file); - m_hDC = (WXHDC) CreateMetaFile(file); - - m_ok = TRUE; - - ::SetWindowOrgEx((HDC) m_hDC,xorg,yorg, NULL); - ::SetWindowExtEx((HDC) m_hDC,xext,yext, NULL); - - // Actual Windows mapping mode, for future reference. - m_windowsMappingMode = wxMM_ANISOTROPIC; - - SetMapMode(wxMM_TEXT); // NOTE: does not set HDC mapmode (this is correct) -} - -wxMetafileDC::~wxMetafileDC(void) -{ - m_hDC = 0; -} - -void wxMetafileDC::GetTextExtent(const wxString& string, long *x, long *y, - long *descent, long *externalLeading, wxFont *theFont, bool use16bit) const -{ - wxFont *fontToUse = theFont; - if (!fontToUse) - fontToUse = (wxFont*) &m_font; - - HDC dc = GetDC(NULL); - - SIZE sizeRect; - TEXTMETRIC tm; - GetTextExtentPoint(dc, (char *)(const char *) string, strlen((char *)(const char *) string), &sizeRect); - GetTextMetrics(dc, &tm); - - ReleaseDC(NULL, dc); - - if ( x ) - *x = sizeRect.cx; - if ( y ) - *y = sizeRect.cy; - if ( descent ) - *descent = tm.tmDescent; - if ( externalLeading ) - *externalLeading = tm.tmExternalLeading; -} - -wxMetafile *wxMetafileDC::Close(void) -{ - SelectOldObjects(m_hDC); - HANDLE mf = CloseMetaFile((HDC) m_hDC); - m_hDC = 0; - if (mf) - { - wxMetafile *wx_mf = new wxMetafile; - wx_mf->SetHMETAFILE((WXHANDLE) mf); - wx_mf->SetWindowsMappingMode(m_windowsMappingMode); - return wx_mf; - } - return NULL; -} - -void wxMetafileDC::SetMapMode(int mode) -{ - m_mappingMode = mode; - -// int pixel_width = 0; -// int pixel_height = 0; -// int mm_width = 0; -// int mm_height = 0; - - float mm2pixelsX = 10.0; - float mm2pixelsY = 10.0; - - switch (mode) - { - case wxMM_TWIPS: - { - m_logicalScaleX = (float)(twips2mm * mm2pixelsX); - m_logicalScaleY = (float)(twips2mm * mm2pixelsY); - break; - } - case wxMM_POINTS: - { - m_logicalScaleX = (float)(pt2mm * mm2pixelsX); - m_logicalScaleY = (float)(pt2mm * mm2pixelsY); - break; - } - case wxMM_METRIC: - { - m_logicalScaleX = mm2pixelsX; - m_logicalScaleY = mm2pixelsY; - break; - } - case wxMM_LOMETRIC: - { - m_logicalScaleX = (float)(mm2pixelsX/10.0); - m_logicalScaleY = (float)(mm2pixelsY/10.0); - break; - } - default: - case wxMM_TEXT: - { - m_logicalScaleX = 1.0; - m_logicalScaleY = 1.0; - break; - } - } - m_windowExtX = 100; - m_windowExtY = 100; -} - -#ifdef __WIN32__ -struct RECT32 -{ - short left; - short top; - short right; - short bottom; -}; - -struct mfPLACEABLEHEADER { - DWORD key; - short hmf; - RECT32 bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#else -struct mfPLACEABLEHEADER { - DWORD key; - HANDLE hmf; - RECT bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#endif - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -bool wxMakeMetafilePlaceable(const wxString& filename, float scale) -{ - return wxMakeMetafilePlaceable(filename, 0, 0, 0, 0, scale, FALSE); -} - -bool wxMakeMetafilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale, bool useOriginAndExtent) -{ - // I'm not sure if this is the correct way of suggesting a scale - // to the client application, but it's the only way I can find. - int unitsPerInch = (int)(576/scale); - - mfPLACEABLEHEADER header; - header.key = 0x9AC6CDD7L; - header.hmf = 0; - header.bbox.left = (int)(x1); - header.bbox.top = (int)(y1); - header.bbox.right = (int)(x2); - header.bbox.bottom = (int)(y2); - header.inch = unitsPerInch; - header.reserved = 0; - - // Calculate checksum - WORD *p; - mfPLACEABLEHEADER *pMFHead = &header; - for (p =(WORD *)pMFHead,pMFHead -> checksum = 0; - p < (WORD *)&pMFHead ->checksum; ++p) - pMFHead ->checksum ^= *p; - - FILE *fd = fopen((char *)(const char *)filename, "rb"); - if (!fd) return FALSE; - - char tempFileBuf[256]; - wxGetTempFileName("mf", tempFileBuf); - FILE *fHandle = fopen(tempFileBuf, "wb"); - if (!fHandle) - return FALSE; - fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle); - - // Calculate origin and extent - int originX = x1; - int originY = y1; - int extentX = x2 - x1; - int extentY = (y2 - y1); - - // Read metafile header and write - METAHEADER metaHeader; - fread((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fd); - - if (useOriginAndExtent) - metaHeader.mtSize += 15; - else - metaHeader.mtSize += 5; - - fwrite((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fHandle); - - // Write SetMapMode, SetWindowOrigin and SetWindowExt records - char modeBuffer[8]; - char originBuffer[10]; - char extentBuffer[10]; - METARECORD *modeRecord = (METARECORD *)&modeBuffer; - - METARECORD *originRecord = (METARECORD *)&originBuffer; - METARECORD *extentRecord = (METARECORD *)&extentBuffer; - - modeRecord->rdSize = 4; - modeRecord->rdFunction = META_SETMAPMODE; - modeRecord->rdParm[0] = MM_ANISOTROPIC; - - originRecord->rdSize = 5; - originRecord->rdFunction = META_SETWINDOWORG; - originRecord->rdParm[0] = originY; - originRecord->rdParm[1] = originX; - - extentRecord->rdSize = 5; - extentRecord->rdFunction = META_SETWINDOWEXT; - extentRecord->rdParm[0] = extentY; - extentRecord->rdParm[1] = extentX; - - fwrite((void *)modeBuffer, sizeof(char), 8, fHandle); - - if (useOriginAndExtent) - { - fwrite((void *)originBuffer, sizeof(char), 10, fHandle); - fwrite((void *)extentBuffer, sizeof(char), 10, fHandle); - } - - int ch = -2; - while (ch != EOF) - { - ch = getc(fd); - if (ch != EOF) - { - putc(ch, fHandle); - } - } - fclose(fHandle); - fclose(fd); - wxRemoveFile(filename); - wxCopyFile(tempFileBuf, filename); - wxRemoveFile(tempFileBuf); - return TRUE; -} - -#endif // wxUSE_METAFILE - diff --git a/src/msw/minifram.cpp b/src/msw/minifram.cpp deleted file mode 100644 index 67c1df931a..0000000000 --- a/src/msw/minifram.cpp +++ /dev/null @@ -1,1610 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: wxMiniFrame -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/event.h" -#include "wx/app.h" -#include "wx/utils.h" -#endif - -#if wxUSE_ITSY_BITSY - -#include "wx/minifram.h" - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif - -long wxMiniFrame::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - if ((GetWindowStyleFlag() & wxTINY_CAPTION_HORIZ) || - (GetWindowStyleFlag() & wxTINY_CAPTION_VERT)) - return ::ibDefWindowProc((HWND) GetHWND(), nMsg, wParam, lParam); - else if ( m_oldWndProc ) - return ::CallWindowProc(CASTWNDPROC m_oldWndProc, (HWND) GetHWND(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam); - else - return ::DefWindowProc((HWND) GetHWND(), nMsg, wParam, lParam); -} - -wxMiniFrame::~wxMiniFrame(void) -{ -} - -///////////////////////////////////////////////////////////////////////// -// -// Project: ItsyBitsy window support module -// Module: itsybits.c -// -// -// ItsyBitsy is a support module that allows you to create windows -// that look and act very much like a popup window witha system -// menu and caption bar, except everything is scaled to about 2/3 -// scale. -// -// For documentation on how to use ItsyBits, read the document -// ITSYBITS.DOC. -// -// Revisions: -// 9/27/91 Charlie Kindel (cek/ckindel) -// Wrote and documented it. -// -// 1/14/93 cek -// 2/23/93 cek Added minimize/maximize buttons. -// 3/18/93 cek Fixed system menu bug where system menu -// popped back up if you clicked on the -// icon again while it was up. -// 3/24/93 cek More comments. Fixed DS_MODALDIALOG style -// problem. Use auto precompiled headers -// in MSVC. -// -////////////////////////////////////////////////////////////////////////// - -#include "wx/window.h" -#include "wx/msw/private.h" - -#include - -#if !defined( __WATCOMC__ ) && !defined( __MWERKS__ ) && !defined(__SALFORDC__) -#include -#endif - -#include - -#ifndef _RGB_H_ -#define _RGB_H_ - - // Some mildly useful macros for the standard 16 colors - #define RGBBLACK RGB(0,0,0) - #define RGBRED RGB(128,0,0) - #define RGBGREEN RGB(0,128,0) - #define RGBBLUE RGB(0,0,128) - - #define RGBBROWN RGB(128,128,0) - #define RGBMAGENTA RGB(128,0,128) - #define RGBCYAN RGB(0,128,128) - #define RGBLTGRAY RGB(192,192,192) - - #define RGBGRAY RGB(128,128,128) - #define RGBLTRED RGB(255,0,0) - #define RGBLTGREEN RGB(0,255,0) - #define RGBLTBLUE RGB(0,0,255) - - #define RGBYELLOW RGB(255,255,0) - #define RGBLTMAGENTA RGB(255,0,255) - #define RGBLTCYAN RGB(0,255,255) - #define RGBWHITE RGB(255,255,255) -#endif - -#ifndef GlobalAllocPtr -#define GlobalPtrHandle(lp) \ - ((HGLOBAL)GlobalHandle(lp)) - -#define GlobalLockPtr(lp) \ - ((BOOL)GlobalLock(GlobalPtrHandle(lp))) -#define GlobalUnlockPtr(lp) \ - GlobalUnlock(GlobalPtrHandle(lp)) - -#define GlobalAllocPtr(flags, cb) \ - (GlobalLock(GlobalAlloc((flags), (cb)))) -#define GlobalReAllocPtr(lp, cbNew, flags) \ - (GlobalUnlockPtr(lp), GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) , (cbNew), (flags)))) -#define GlobalFreePtr(lp) \ - (GlobalUnlockPtr(lp), (BOOL)GlobalFree(GlobalPtrHandle(lp))) -#endif - -#if defined(__BORLANDC__) || defined(__WATCOMC__) -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif - -// CAPTIONXY is the default size of the system menu icon. This -// determines the height/width of the caption. -// -// The value that results from the following formula works out -// nicely for the veritcal caption on VGA, 8514 (Large Fonts), -// 8514 (Small Fonts), XGA (Small Fonts), XGA (Large Fonts), -// and TIGA (Small Fonts). It may not be good on other displays. -// -// The problem is that TT fonts turn into bitmap fonts when they -// are sized below a certain threshold. The idea is to make the -// size of the caption just big enough to get the smallest TT -// (scalable) font to fit. -// -#define CAPTIONXY (GetSystemMetrics( SM_CYCAPTION ) / 2 + 1) - -#define TestWinStyle( hWnd, dwStyleBit ) \ - (((DWORD)GetWindowLong( hWnd, GWL_STYLE ) & (DWORD)dwStyleBit) ? TRUE : FALSE ) -#define HASCAPTION( hwnd ) (TestWinStyle( hwnd, IBS_VERTCAPTION ) ||\ - TestWinStyle( hwnd, IBS_HORZCAPTION )) - -#define SETCAPTIONSIZE(h,i) (UINT)SetProp(h,"ibSize",(HANDLE)i) -#define GETCAPTIONSIZE(h) (UINT)GetProp(h,"ibSize") -#define FREECAPTIONSIZE(h) RemoveProp(h,"ibSize") - -#define SETMENUWASUPFLAG(h,i) (UINT)SetProp(h,"ibFlag",(HANDLE)i) -#define GETMENUWASUPFLAG(h) (UINT)GetProp(h,"ibFlag") -#define FREEMENUWASUPFLAG(h) RemoveProp(h,"ibFlag") - -///////////////////////////////////////////////////////////////////// -// Little known fact: -// ExtTextOut() is the fastest way to draw a filled rectangle -// in Windows (if you don't want dithered colors or borders). -// -// Unfortunately there is a bug in the Windows 3.0 8514 driver -// in using ExtTextOut() to a memory DC. If you are drawing -// to an off screen bitmap, then blitting that bitmap to the -// display, do not #define wxUSE_EXTTEXTOUT below. -// -// The following macro (DRAWFASTRECT) draws a filled rectangle -// with no border and a solid color. It uses the current back- -// ground color as the fill color. -////////////////////////////////////////////////////////////////////// -#define wxUSE_EXTTEXTOUT -#ifdef wxUSE_EXTTEXTOUT - #define DRAWFASTRECT(hdc,lprc) ExtTextOut(hdc,0,0,ETO_OPAQUE,lprc,NULL,0,NULL) -#else - #define DRAWFASTRECT(hdc,lprc) {\ - HBRUSH hbr = CreateSolidBrush( GetBkColor( hdc ) ) ;\ - hbr = SelectObject(hdc, hbr) ;\ - PatBlt(hdc,(lprc)->left,(lprc)->top,(lprc)->right-(lprc)->left,(lprc)->bottom-(lprc)->top,PATCOPY) ;\ - hbr = SelectObject(hdc, hbr) ;\ - DeleteObject( hbr ) ;\ - } -#endif - -// The DrawArrow function takes the following to indicate what -// kind of arrow to draw. -// -#define ARROW_UP 0 -#define ARROW_DOWN 1 -#define ARROW_RESTORE 2 - -BOOL PASCAL DepressMinMaxButton( HWND hWnd, UINT uiHT, LPRECT ) ; -BOOL PASCAL DoMenu( HWND hWnd ) ; -void PASCAL SetupSystemMenu( HWND hWnd, HMENU hMenu ) ; -BOOL PASCAL GetCaptionRect( HWND hWnd, LPRECT lprc ) ; -BOOL PASCAL GetIconRect( HWND hWnd, LPRECT lprc ) ; -BOOL PASCAL GetButtonRect( HWND hWnd, UINT nPos, LPRECT lprc ) ; -BOOL PASCAL GetMinButtonRect( HWND hWnd, LPRECT lprc ) ; -BOOL PASCAL GetMaxButtonRect( HWND hWnd, LPRECT lprc ) ; -BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, - BOOL fVert, BOOL fSysMenu, - BOOL fMin, BOOL fMax, BOOL fActive ) ; -void PASCAL DrawSysMenu( HDC hDC, HWND hWnd, BOOL fInvert ) ; -void PASCAL DrawButton( HDC hDC, HWND hWnd, BOOL fMin, BOOL fDepressed ) ; -void PASCAL DrawArrow( HDC hdc, LPRECT lprc, UINT uiStyle ) ; - -// Global vars -// -static BOOL fWin31 ; - -/////////////////////////////////////////////////////////////////////// -// External/Public functions -/////////////////////////////////////////////////////////////////////// - -///////////////////////////////////////////////////////////////// -// UINT WINAPI ibGetCaptionSize( HWND hWnd ) -// -// Description: -// -// Gets the size of the caption (height if horz, width if -// vertical). -// -// Comments: -// -/////////////////////////////////////////////////////////////// -UINT WINAPI ibGetCaptionSize( HWND hWnd ) -{ - return GETCAPTIONSIZE( hWnd ) + 1 ; -} // ibSetCaptionSize() - -///////////////////////////////////////////////////////////////// -// UINT WINAPI ibSetCaptionSize( HWND hWnd, UINT nSize ) -// -// Description: -// -// Changes the size of the caption (height if horz, width if -// vertical). -// -// Comments: -// -////////////////////////////////////////////////////////////////// -UINT WINAPI ibSetCaptionSize( HWND hWnd, UINT nSize ) -{ - UINT ui ; - - if (nSize <= 0) - return 0 ; - - nSize-- ; - ui = SETCAPTIONSIZE( hWnd, nSize ) ; - - // Once we change the window style, we need a WM_NCCALCRECT - // to be generated. - // - // SWP_FRAMECHANGED is not documented in the 3.1 SDK docs, - // but *is* in WINDOWS.H. - // - SetWindowPos( hWnd, NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | - SWP_NOSIZE | SWP_NOMOVE | - SWP_NOACTIVATE | SWP_NOZORDER) ; - - return ui ; - -} // ibSetCaptionSize() - -///////////////////////////////////////////////////////////////// -// LRESULT WINAPI ibDefWindowProc( HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam ) -// -// Description: -// -// This function should be called instead of DefWindowProc() for -// windows that want to have itsybitsy captions. -// -// Comments: -// -////////////////////////////////////////////////////////////////// -LRESULT WINAPI ibDefWindowProc( HWND hWnd, UINT uiMsg, WPARAM wParam, LPARAM lParam ) -{ - LRESULT lRet ; - UINT nCapSize ; - - switch( uiMsg ) - { - case WM_SYSCHAR: - // If ALT-SPACE - // was hit then pop up the menu - // - if (HASCAPTION( hWnd ) && (wParam == VK_SPACE)) - { - DoMenu( hWnd ) ; - break ; - } - - // FALL THROUGH!!!! - // - - case WM_SYSKEYDOWN: - case WM_SYSKEYUP: - case WM_KEYDOWN: - case WM_KEYUP: - { - DWORD dw = GetWindowLong( hWnd, GWL_STYLE ) ; - - // Fool DefWindowProc into thinking we do not have - // a system menu. Otherwise it will try to - // pop up its own. - // - SetWindowLong( hWnd, GWL_STYLE, dw &~WS_SYSMENU ) ; - lRet = DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - SetWindowLong( hWnd, GWL_STYLE, dw ) ; - return lRet ; - } - break ; - - case WM_COMMAND: - // The menu that is poped up for the system menu with - // TrackPopupMenu() sends it's notifications as WM_COMMAND - // messages. We need to translate these into - // WM_SYSCOMMAND messages. All standard WM_SYSCOMMAND - // ids are greater than 0xF000. - // - // This could be a possible cause of confusion if the - // itsybitsy window had children that used SC_MOVE or SC_CLOSE - // as their IDs. Take note and be careful. - // - // Also, because ibDefWindowProc looks at WM_COMMAND messages, - // you will need to be careful to call ibDefWindowProc() for - // any wm_command messages that you would normally ignore. - // Otherwise the system menu won't work. - // - if (wParam >= 0xF000) - // Call PostMessage() here instead of SendMessage! - // Here's why: - // Our menu was created by TrackPopupMenu(). TPM() does - // not return until after the menu has been destroyed - // (and thus the command associated with the menu selection - // sent). Therefore when we get here, we are still - // *inside* TPM(). If we Send WM_SYSCOMMAND, SC_CLOSE - // to the window, the window will be destroyed before - // TPM() returns to our code within DoMenu() below. Wel... - // We do stuff with the window handle after DoMenu() - // returns (namely GetProp()). Since the window has - // been destroyed,this is bad. - PostMessage( hWnd, WM_SYSCOMMAND, wParam, lParam ) ; - - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - - case WM_GETMINMAXINFO: - { - nCapSize = GETCAPTIONSIZE( hWnd ) ; - if (HASCAPTION( hWnd ) && TestWinStyle( hWnd, WS_THICKFRAME )) - { - LPPOINT lppt = (LPPOINT)lParam ; - RECT rcMenu ; - RECT rcMin ; - RECT rcMax ; - int nX ; - int cx, cy ; // window frame/border width - - if (TestWinStyle( hWnd, WS_THICKFRAME )) - { - cx = GetSystemMetrics( SM_CXFRAME ) ; - cy = GetSystemMetrics( SM_CYFRAME ) ; - } - else if (TestWinStyle(hWnd, WS_BORDER )) - { - cx = GetSystemMetrics( SM_CXBORDER ) ; - cy = GetSystemMetrics( SM_CYBORDER ) ; - } - else - { - // VZ: I don't know what should be here, but the vars must - // be inited! - wxFAIL_MSG("don't know how to initialize cx, cy"); - - cx = cy = 0; - } - - GetIconRect( hWnd, &rcMenu ) ; - GetMinButtonRect( hWnd, &rcMin ) ; - GetMaxButtonRect( hWnd, &rcMax ) ; - nX = (rcMenu.right-rcMenu.left) + - (rcMin.right-rcMin.left) + - (rcMin.right-rcMin.left) ; - - - if (TestWinStyle( hWnd, IBS_VERTCAPTION ) ) - { - lppt[3].x = nCapSize + cx * 2 - 1 ; - lppt[3].y = nX + (2* nCapSize) ; - } - else - { - lppt[3].x = nX + (2* nCapSize) ; - lppt[3].y = nCapSize + cy * 2 - 1 ; - } - } - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - } - break ; - - ///////////////////////////////////////////////////////////////////// - // Non-client area messages. These are used to allow the - // minature caption bar to be handled correctly. - // - case WM_NCCREATE: - { - DWORD dwStyle ; - - // We have two things that we need to store somewhere: - // 1) The caption height (width). - // and 2) A flag indicating whether the sysmenu was - // just up or not. - // - // CAPTIONXY is a macro that calls GetSystemMetrics. - // - SETCAPTIONSIZE( hWnd, CAPTIONXY ) ; - - // Set our flag that tells us whether the system menu was - // 'just up'. - // - SETMENUWASUPFLAG( hWnd, FALSE ) ; - - // Are we in 3.1? If so we have some neat features - // we can use like rotated TrueType fonts. - // - fWin31 = (BOOL)(LOWORD( GetVersion() ) >= 0x030A) ; - - // If IBS_????CAPTION was specified and the WS_DLGFRAME (or - // WS_DLGFRAME 'cause it == WS_CAPTION | WS_BORDER) - // was specified the creator made a mistake. Things get really - // ugly if DefWindowProc sees WS_DLGFRAME, so we strip - // the WS_DLGFRAME part off! - // - dwStyle = GetWindowLong( hWnd, GWL_STYLE ) ; - if ((dwStyle & IBS_VERTCAPTION || dwStyle & IBS_HORZCAPTION) && - dwStyle & WS_DLGFRAME) - { - dwStyle &= (DWORD)~WS_DLGFRAME ; - SetWindowLong( hWnd, GWL_STYLE, dwStyle ) ; - } - } - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - - case WM_NCDESTROY: - // We store the caption size in a window prop. so we - // must remove props. - // - FREECAPTIONSIZE( hWnd ) ; - FREEMENUWASUPFLAG( hWnd ) ; - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - - case WM_NCCALCSIZE: - // This is sent when the window manager wants to find out - // how big our client area is to be. If we have a mini-caption - // then we trap this message and calculate the cleint area rect, - // which is the client area rect calculated by DefWindowProc() - // minus the width/height of the mini-caption bar - // - lRet = DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - if (!IsIconic( hWnd ) && HASCAPTION( hWnd )) - { - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - if (TestWinStyle( hWnd, IBS_VERTCAPTION ) ) - ((LPRECT)lParam)->left += nCapSize ; - else - ((LPRECT)lParam)->top += nCapSize ; - } - return lRet ; - - case WM_NCHITTEST: - // This message is sent whenever the mouse moves over us. - // We will depend on DefWindowProc for everything unless - // there is a mini-caption, in which case we will - // return HTCAPTION or HTSYSMENU. When the user clicks - // or double clicks, NC_LBUTTON/ message are sent with - // wParam equal to what we return here. - // This means that this is an ideal place to figure out - // where we are! - // - // let defwindowproc handle the standard borders etc... - // - lRet = DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - if (!IsIconic( hWnd ) && HASCAPTION( hWnd ) && lRet == HTNOWHERE) - { - RECT rc ; - RECT rcMenu ; - RECT rcMinButton ; - RECT rcMaxButton ; - POINT pt ; - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - // if DefWindowProc returned HTCAPTION then we have to - // refine the area and return HTSYSMENU if appropriate - // - pt.x = LOWORD( lParam ) ; - pt.y = HIWORD( lParam ) ; - - GetCaptionRect( hWnd, &rc ) ; // window coords - if (PtInRect( &rc, pt )) - { - lRet = HTCAPTION ; - - // rely on the fact that Get???Rect() return an invalid - // (empty) rectangle if the menu/buttons don't exist - // - GetIconRect( hWnd, &rcMenu ) ; - GetMinButtonRect( hWnd, &rcMinButton ) ; - GetMaxButtonRect( hWnd, &rcMaxButton ) ; - - if (PtInRect( &rcMenu, pt )) - lRet = HTSYSMENU ; - - if (PtInRect( &rcMinButton, pt )) - lRet = HTMINBUTTON ; - else - if (PtInRect( &rcMaxButton, pt )) - lRet = HTMAXBUTTON ; - } - } - if (lRet != HTSYSMENU) - SETMENUWASUPFLAG( hWnd, FALSE ) ; - return lRet ; - - case WM_NCLBUTTONDBLCLK: - // Windows recieve WM_NC?BUTTONDBLCLK messages whether they - // have CS_DBLCLKS or not. We watch for one of these - // to see if the user double clicked on the system menu (to - // close the window) or on the caption (to maximize the window). - // - if (!IsIconic( hWnd ) && HASCAPTION( hWnd ) && wParam == HTSYSMENU) - { - SendMessage( hWnd, WM_CLOSE, 0, 0L ) ; - break ; - } - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - - case WM_NCLBUTTONDOWN: - { - RECT rc ; - - // If we're iconic or we don't have a caption then - // DefWindowProc will do the job just fine. - // - if (IsIconic( hWnd ) || !HASCAPTION( hWnd )) - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - - // Here's were we handle the system menu, the min and max buttons. - // If you wanted to change the behavior of the min/max buttons - // do something like swap tool palettes or something, you - // would change the SendMessage() calls below. - // - switch (wParam) - { - case HTSYSMENU: - if (GETMENUWASUPFLAG( hWnd ) == FALSE && DoMenu( hWnd )) - SETMENUWASUPFLAG( hWnd, TRUE ) ; - else - SETMENUWASUPFLAG( hWnd, FALSE ) ; - break ; - - case HTMINBUTTON: - GetMinButtonRect( hWnd, &rc ) ; - // Note that DepressMinMaxButton() goes into - // a PeekMessage() loop waiting for the mouse - // to come back up. - // - if (DepressMinMaxButton( hWnd, wParam, &rc )) - SendMessage( hWnd, WM_SYSCOMMAND, SC_MINIMIZE, lParam ) ; - break ; - - case HTMAXBUTTON: - GetMaxButtonRect( hWnd, &rc ) ; - // Note that DepressMinMaxButton() goes into - // a PeekMessage() loop waiting for the mouse - // to come back up. - // - if (DepressMinMaxButton( hWnd, wParam, &rc )) - { - if (IsZoomed(hWnd)) - SendMessage( hWnd, WM_SYSCOMMAND, SC_RESTORE, lParam ) ; - else - SendMessage( hWnd, WM_SYSCOMMAND, SC_MAXIMIZE, lParam ) ; - } - break ; - - default: - // Well, it appears as though the user clicked somewhere other - // than the buttons. We let DefWindowProc do it's magic. - // This is where things like dragging and sizing the - // window happen. - // - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - } - } - break ; - - case WM_NCPAINT: - case WM_NCACTIVATE: - if (IsIconic( hWnd )) - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - - // Paint the non-client area here. We will call DefWindowProc - // after we are done so it can paint the borders and so - // forth... - // - lRet = DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - if (HASCAPTION( hWnd )) - { - RECT rcCap ; - RECT rc ; - HDC hDC = GetWindowDC( hWnd ) ; - BOOL fActive ; - - GetCaptionRect( hWnd, &rcCap ) ; // Convert to window coords - GetWindowRect( hWnd, &rc ) ; - OffsetRect( &rcCap, -rc.left, -rc.top ) ; - - if (uiMsg == WM_NCPAINT) - fActive = (hWnd == GetActiveWindow()) ; - else - fActive = wParam ; - - DrawCaption( hDC, hWnd, &rcCap, - TestWinStyle(hWnd, IBS_VERTCAPTION), - TestWinStyle(hWnd, WS_SYSMENU), - TestWinStyle(hWnd, WS_MINIMIZEBOX), - TestWinStyle(hWnd, WS_MAXIMIZEBOX), - fActive ) ; - - ReleaseDC( hWnd, hDC ) ; - } - return lRet; - break; - - default: - return DefWindowProc( hWnd, uiMsg, wParam, lParam ) ; - } - - return 0L ; - -} // ibDefWindowProc() - -// ibAdjustWindowRect( HWND hWnd, LPRECT lprc ) -// -// Does the same thing as the USER function AdjustWindowRect(), -// but knows about itsybitsy windows. AdjustWindowRect() is -// bogus for stuff like this. -// -void WINAPI ibAdjustWindowRect( HWND hWnd, LPRECT lprc ) -{ - short cx = 0, cy = 0 ; - UINT nCapSize ; - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - // First check Windows's styles, then our own. - // - if (TestWinStyle( hWnd, WS_THICKFRAME )) - { - cx = GetSystemMetrics( SM_CXFRAME ) ; - cy = GetSystemMetrics( SM_CYFRAME ) ; - } - else - if (TestWinStyle(hWnd, DS_MODALFRAME )) - { - cx = GetSystemMetrics( SM_CXDLGFRAME ) + GetSystemMetrics( SM_CXBORDER ) ; - cy = GetSystemMetrics( SM_CYDLGFRAME ) + GetSystemMetrics( SM_CYBORDER ) ; - } - else - if (TestWinStyle(hWnd, WS_BORDER )) - { - cx = GetSystemMetrics( SM_CXBORDER ) ; - cy = GetSystemMetrics( SM_CYBORDER ) ; - } - - InflateRect( lprc, cx, cy ) ; - - if (TestWinStyle( hWnd, IBS_VERTCAPTION )) - lprc->left -= nCapSize ; - else - if (TestWinStyle( hWnd, IBS_HORZCAPTION )) - lprc->top -= nCapSize ; - -} // ibAdjustWindowRect() - - -/////////////////////////////////////////////////////////////////////// -// Internal functions -/////////////////////////////////////////////////////////////////////// - -// DepressMinMaxButton() -// -// This function is called when the user has pressed either the min or -// max button (i.e. WM_NCLBUTTONDOWN). We go into a Peekmessage() loop, -// waiting for the mouse to come back up. This allows us to make the -// button change up/down state like a real button does. -// -// lprc points to the rectangle that describes the button the -// user has clicked on. -// -BOOL PASCAL DepressMinMaxButton( HWND hWnd, UINT uiHT, LPRECT lprc ) -{ - BOOL fDepressed = TRUE ; - MSG msg ; - - // Draw button in down state - DrawButton( NULL, hWnd, uiHT == HTMINBUTTON, fDepressed ) ; - SetCapture( hWnd ) ; - - while (TRUE) - { - if (PeekMessage((LPMSG)&msg, NULL, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE)) - { - switch (msg.message) - { - case WM_LBUTTONUP: - if (fDepressed) - DrawButton( NULL, hWnd, uiHT == HTMINBUTTON, !fDepressed ) ; - ReleaseCapture(); - return PtInRect( lprc, msg.pt ) ; - - case WM_MOUSEMOVE: - if (PtInRect( lprc, msg.pt )) - { - if (!fDepressed) - DrawButton( NULL, hWnd, uiHT == HTMINBUTTON, fDepressed = TRUE ) ; - } - else - { - if (fDepressed) - DrawButton( NULL, hWnd, uiHT == HTMINBUTTON, fDepressed = FALSE ) ; - } - break; - } - } - } - -} // DepressMinMaxButton() - -// DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, -// BOOL fVert, BOOL fSysMenu, BOOL fActive ) -// -// This function draws an itsy bitsy caption bar with or -// without system menu to the dc specified by hDC. The -// caption is drawn to fit within the lprc RECT and is -// drawn//withOut/ borders. -// -BOOL PASCAL DrawCaption( HDC hDC, HWND hWnd, LPRECT lprc, - BOOL fVert, BOOL fSysMenu, BOOL fMin, - BOOL fMax, BOOL fActive ) -{ - RECT rc ; - RECT rcCap ; - COLORREF rgbCaptionBG ; - COLORREF rgbText ; - COLORREF rgbWindowFrame ; - HBRUSH hbrCaption ; - UINT ui ; - UINT nCapSize ; - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - // Get the colors. - // - rgbWindowFrame = GetSysColor( COLOR_WINDOWFRAME ) ; - - // if we have focus use the active caption color - // otherwise use the inactive caption color - // - if (fActive) - { - rgbText = GetSysColor( COLOR_CAPTIONTEXT ) ; - rgbCaptionBG = GetSysColor( COLOR_ACTIVECAPTION ) ; - } - else - { - if (fWin31) - rgbText = GetSysColor( COLOR_INACTIVECAPTIONTEXT ) ; - else - rgbText = GetSysColor( COLOR_CAPTIONTEXT ) ; - - rgbCaptionBG = GetSysColor( COLOR_INACTIVECAPTION ) ; - } - - SetBkMode( hDC, TRANSPARENT ) ; - SelectObject( hDC, GetStockObject( NULL_BRUSH ) ) ; - SelectObject( hDC, GetStockObject( NULL_PEN ) ) ; - - rcCap = *lprc ; - - if (fSysMenu) - { - if (fVert) - rcCap.top += nCapSize ; - else - rcCap.left += nCapSize ; - } - - if (fMax) - { - if (fVert) - rcCap.bottom -= nCapSize ; - else - rcCap.right -= nCapSize ; - } - - if (fMin) - { - if (fVert) - rcCap.bottom -= nCapSize ; - else - rcCap.right -= nCapSize ; - } - - if (fVert) - { - rc.left = lprc->right - 1 ; - rc.right = lprc->right ; - rc.top = lprc->top ; - rc.bottom = lprc->bottom ; - } - else - { - rc.left = lprc->left ; - rc.right = lprc->right ; - rc.bottom = lprc->bottom ; - rc.top = rc.bottom - 1 ; - } - - SetBkColor( hDC, rgbWindowFrame ) ; - DRAWFASTRECT( hDC, &rc ) ; - - hbrCaption = CreateSolidBrush( rgbCaptionBG ) ; - hbrCaption = (HBRUSH) SelectObject( hDC, hbrCaption ) ; - SelectObject( hDC, (HPEN) GetStockObject( NULL_PEN ) ) ; - if (fVert) - Rectangle( hDC, rcCap.left, rcCap.top, rcCap.right, rcCap.bottom + 1 ) ; - else - Rectangle( hDC, rcCap.left, rcCap.top, rcCap.right+1, rcCap.bottom ) ; - hbrCaption = (HBRUSH) SelectObject( hDC, hbrCaption ) ; - DeleteObject( hbrCaption ) ; - - - // Draw caption text here. Only do it in 3.1 'cause 3.1 gives - // us 'small fonts'. - // - ui = GetWindowTextLength( hWnd ) ; - if (fWin31) - { - HFONT hFont ; - LPSTR lpsz ; - LOGFONT lf ; - TEXTMETRIC tm ; - int cx ; - int cy ; - SIZE Size ; - - lpsz = (char*)GlobalAllocPtr( GHND, ui + 2 ); - if (lpsz) - { - UINT nBkMode ; - - GetWindowText( hWnd, lpsz, ui + 1 ) ; - nBkMode = SetBkMode( hDC, TRANSPARENT ) ; - rgbText = SetTextColor( hDC, rgbText ) ; - - memset( &lf, '\0', sizeof(LOGFONT) ) ; - - lf.lfHeight = -(int)(nCapSize - 3) ; - lf.lfCharSet = ANSI_CHARSET ; - lf.lfQuality = DEFAULT_QUALITY ; - lf.lfClipPrecision = CLIP_LH_ANGLES | CLIP_STROKE_PRECIS ; - if (nCapSize >= 20) - { - lf.lfWeight = FW_BOLD ; - } - - if (fVert) - { - // Can only rotate true type fonts (well, ok, we could - // try and use "modern"). - strcpy( lf.lfFaceName, "Arial" ) ; - lf.lfPitchAndFamily = FF_SWISS | 0x04; - lf.lfEscapement = 900 ; - - // Note: The Win 3.1 documentation for CreateFont() say's - // that the lfOrientation member is ignored. It appears, - // that on Windows 16 3.1 this is true, but when running - // as a 16 bit WinApp on WindowsNT 3.1 the lfOrientation - // must be set or the text does not rotate! - // - lf.lfOrientation = 900 ; - - hFont = CreateFontIndirect( &lf ) ; - hFont = (HFONT) SelectObject( hDC, hFont ) ; - - GetTextExtentPoint( hDC, lpsz, ui, &Size ) ; - cx = rcCap.bottom - ((rcCap.bottom - rcCap.top - Size.cx) / 2) ; - cy = rcCap.left - 1 + ((rcCap.right - rcCap.left - Size.cy) / 2) ; - - // Make sure we got a rotatable font back. - // - GetTextMetrics( hDC, &tm ) ; - if (tm.tmPitchAndFamily & TMPF_VECTOR || - tm.tmPitchAndFamily & TMPF_TRUETYPE) - { - ExtTextOut( hDC, - cy, - min( (long)cx, rcCap.bottom), - ETO_CLIPPED, &rcCap, - lpsz, ui, NULL ) ; - } - - hFont = (HFONT) SelectObject( hDC, hFont ) ; - DeleteObject( hFont ) ; - } - else - { - // Use small fonts always for the horizontal. Cause it looks - // more like "System" than Arial. - // - lf.lfPitchAndFamily = FF_SWISS ; - - hFont = CreateFontIndirect( &lf ) ; - hFont = (HFONT) SelectObject( hDC, hFont ) ; - - GetTextExtentPoint( hDC, lpsz, ui, &Size ) ; - cx = rcCap.left + ((rcCap.right - rcCap.left - Size.cx) / 2) ; - cy = rcCap.top + ((rcCap.bottom - rcCap.top - Size.cy) / 2) ; - - // Figger out how big the string is - // - ExtTextOut( hDC, - max( (long)cx, rcCap.left ), - cy, - ETO_CLIPPED, &rcCap, - lpsz, ui, NULL ) ; - - hFont = (HFONT) SelectObject( hDC, hFont ) ; - DeleteObject( hFont ) ; - } - - // Unsetup the DC - // - rgbText = SetTextColor( hDC, rgbText ) ; - SetBkMode( hDC, nBkMode ) ; - -#ifdef __WIN16__ - GlobalFreePtr( (unsigned int) lpsz ) ; -#else - GlobalFreePtr( lpsz ) ; -#endif - } - } - - if (fSysMenu) - DrawSysMenu( hDC, hWnd, FALSE ) ; - - if (fMin) - DrawButton( hDC, hWnd, TRUE, FALSE ) ; - - if (fMax) - DrawButton( hDC, hWnd, FALSE, FALSE ) ; - - return TRUE ; - -} // DrawCaption() - - -// DrawSysMenu( HDC hDC, hWnd, BOOL fInvert ) -// -// Draws the little system menu icon. -// -void PASCAL DrawSysMenu( HDC hDC, HWND hWnd, BOOL fInvert ) -{ - RECT rcIcon ; - RECT rcTemp ; - RECT rc ; - COLORREF rgbIconFace ; - COLORREF rgbWindowFrame ; - BOOL fDC ; - UINT nCapSize ; - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - if (!hDC) - { - fDC = TRUE ; - hDC = GetWindowDC( hWnd ) ; - } - else - fDC = FALSE ; - - if (hDC) - { - rgbIconFace = GetNearestColor( hDC, RGBLTGRAY ) ; - rgbWindowFrame = GetSysColor( COLOR_WINDOWFRAME ) ; - - GetIconRect( hWnd, &rcIcon ) ; - GetWindowRect( hWnd, &rc ) ; - - OffsetRect( &rcIcon, -rc.left, -rc.top ) ; - - rcTemp = rcIcon ; - - if (TestWinStyle( hWnd, IBS_VERTCAPTION )) - { - rc = rcIcon ; // separator line - rc.top = ++rc.bottom - 1 ; - } - else - { - rc = rcIcon ; // separator line - rc.left = ++rc.right - 1 ; - } - - // Fill - SetBkColor( hDC, rgbIconFace ) ; - DRAWFASTRECT( hDC, &rcTemp ) ; - - // Draw separator line - SetBkColor( hDC, rgbWindowFrame ) ; - DRAWFASTRECT( hDC, &rc ) ; - - if (nCapSize > 4) - { - // Draw the little horizontal doo-hickey - // - rcTemp.top = rcIcon.top + ((nCapSize-1) / 2) ; - rcTemp.bottom = rcTemp.top + 3 ; - rcTemp.left = rcTemp.left + 3 ; - rcTemp.right = rcTemp.right - 1 ; - - SetBkColor( hDC, RGBGRAY ) ; - DRAWFASTRECT( hDC, &rcTemp ) ; - - rc = rcTemp ; - OffsetRect( &rc, -1, -1 ) ; - SetBkColor( hDC, RGBBLACK ) ; - DRAWFASTRECT( hDC, &rc ) ; - - InflateRect( &rc, -1, -1 ) ; - SetBkColor( hDC, RGBWHITE ) ; - DRAWFASTRECT( hDC, &rc ) ; - } - - if (fInvert) - InvertRect( hDC, &rcIcon ) ; - - if (fDC) - ReleaseDC( hWnd, hDC ) ; - } - -} // DrawSysMenu() - -// DoMenu( HWND hWnd ) -// -// Pops up the system menu. -// -BOOL PASCAL DoMenu( HWND hWnd ) -{ - HDC hDC ; - RECT rcIcon ; - RECT rc ; - POINT pt ; - HMENU hMenu ; - DWORD dw ; - - if (!TestWinStyle(hWnd, WS_SYSMENU)) - return FALSE ; - - hDC = GetWindowDC( hWnd ); - if (hDC) - { - // Invert the icon - // - DrawSysMenu( hDC, hWnd, TRUE ) ; - - // Pop up the menu - // - if (TestWinStyle( hWnd, IBS_VERTCAPTION )) - { - pt.x = -1 ; - pt.y = 0 ; - } - else - { - pt.x = 0 ; - pt.y = -1 ; - } - - GetIconRect( hWnd, &rcIcon ) ; - GetWindowRect( hWnd, &rc ) ; - OffsetRect( &rcIcon, -rc.left, -rc.top ) ; - - ClientToScreen( hWnd, &pt ) ; - ClientToScreen( hWnd, (LPPOINT)&rc.right ) ; - - dw = GetWindowLong( hWnd, GWL_STYLE ) ; - SetWindowLong( hWnd, GWL_STYLE, dw | WS_SYSMENU ) ; - - hMenu = GetSystemMenu( hWnd, FALSE ) ; - SetupSystemMenu( hWnd, hMenu ) ; - - SetWindowLong( hWnd, GWL_STYLE, dw ) ; - - TrackPopupMenu( hMenu, 0, //TPM_LEFTALIGN, - pt.x, - pt.y, - 0, - hWnd, - &rc ) ; - - DrawSysMenu( hDC, hWnd, FALSE ) ; - ReleaseDC( hWnd, hDC ) ; - } - return TRUE ; - -} // DoMenu() - -// SetupSystemMenu( HWND hWnd, HMENU hMenu ) -// -// Enables/Disables the appropriate menu items on the -// menu passed for the window passed. -// -void PASCAL SetupSystemMenu( HWND hWnd, HMENU hMenu ) -{ - UINT wMove ; - UINT wSize ; - UINT wMinBox ; - UINT wMaxBox ; - UINT wRestore ; - - // Assume all should be grayed. - // - wSize = wMove = wMinBox = wMaxBox = wRestore = MF_GRAYED ; - - if (TestWinStyle( hWnd, WS_MAXIMIZEBOX ) || IsIconic( hWnd )) - wMaxBox = MF_ENABLED ; - - if (TestWinStyle( hWnd, WS_MINIMIZEBOX )) - wMinBox = MF_ENABLED ; - - if (IsZoomed( hWnd )) - wRestore = MF_ENABLED ; - - if (TestWinStyle( hWnd, WS_THICKFRAME ) && - !(IsIconic( hWnd ) || IsZoomed( hWnd ))) - wSize = MF_ENABLED ; - - if (!IsZoomed( hWnd ) && - !IsIconic( hWnd ) && - TestWinStyle( hWnd, WS_CAPTION ) ) - wMove = MF_ENABLED ; - - EnableMenuItem( hMenu, SC_MOVE, wMove ) ; - EnableMenuItem( hMenu, SC_SIZE, wSize ) ; - EnableMenuItem( hMenu, SC_MINIMIZE, wMinBox ) ; - EnableMenuItem( hMenu, SC_MAXIMIZE, wMaxBox ) ; - EnableMenuItem( hMenu, SC_RESTORE, wRestore ) ; - -} // SetupSystemMenu() - -// GetCaptionRect( HWND hWnd, LPRECT lprc ) -// -// calcluales the rectangle of the mini-caption in screen coords. -// -BOOL PASCAL GetCaptionRect( HWND hWnd, LPRECT lprc ) -{ - UINT nCapSize ; - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - if (!HASCAPTION( hWnd )) - { - SetRectEmpty( lprc ) ; - return FALSE ; - } - - GetWindowRect( hWnd, lprc ) ; - - // the window might have other non-client components like - // borders - // - if (TestWinStyle( hWnd, WS_THICKFRAME )) - { - lprc->left += GetSystemMetrics( SM_CXFRAME ) ; - lprc->top += GetSystemMetrics( SM_CYFRAME ) ; - lprc->right -= GetSystemMetrics( SM_CXFRAME ) ; - lprc->bottom -= GetSystemMetrics( SM_CYFRAME ) ; - } - else - if (TestWinStyle( hWnd, DS_MODALFRAME )) // if it's a dialog box - { - lprc->left += GetSystemMetrics( SM_CXDLGFRAME ) + GetSystemMetrics( SM_CXBORDER ) ; - lprc->top += GetSystemMetrics( SM_CYDLGFRAME ) + GetSystemMetrics( SM_CYBORDER ) ; - lprc->right -= GetSystemMetrics( SM_CXDLGFRAME ) + GetSystemMetrics( SM_CXBORDER ) ; - lprc->bottom -= GetSystemMetrics( SM_CYDLGFRAME ) + GetSystemMetrics( SM_CYBORDER ) ; - } - else - if (TestWinStyle( hWnd, WS_BORDER )) - { - lprc->left += GetSystemMetrics( SM_CXBORDER ) ; - lprc->top += GetSystemMetrics( SM_CYBORDER ) ; - lprc->right -= GetSystemMetrics( SM_CXBORDER ) ; - lprc->bottom -= GetSystemMetrics( SM_CYBORDER ) ; - } - - if (TestWinStyle( hWnd, IBS_VERTCAPTION )) - lprc->right = lprc->left + nCapSize ; - else - lprc->bottom = lprc->top + nCapSize ; - - return TRUE ; -} // GetCaptionRect() - -// GetIconRect( HWND hWnd, LPRECT lprc ) -// -// Calculates the rect of the icon in screen coordinates. -// -BOOL PASCAL GetIconRect( HWND hWnd, LPRECT lprc ) -{ - UINT nCapSize ; - BOOL fMenu, fVert ; - - fMenu= TestWinStyle( hWnd, WS_SYSMENU ) ; - fVert = TestWinStyle( hWnd, IBS_VERTCAPTION ) ; - - if (!GetCaptionRect( hWnd, lprc )) // window coords - return FALSE ; - - if (!fMenu) - { - SetRectEmpty( lprc ) ; - return FALSE ; - } - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - if (fVert) - lprc->bottom = lprc->top + nCapSize ; - else - lprc->right = lprc->left + nCapSize ; - - lprc->bottom-- ; - lprc->right-- ; - - return TRUE ; - -} // GetIconRect() - -// GetMinButtonRect() -// -// Calculates the rect of the minimize button in screen -// coordinates. -// -// For horizontal captions, we have the following situation ('Y' is minimize -// and '^' is maximize or restore): -// -// +---------------------------------+ -// | - | | Y | ^ | -// +---------------------------------+ -// | |.......| <-- This is the width (nSize) -// -// For vertical captions, we have the following: -// -// | | -// | | -// | | -// | | -// | | -// | | -// |--|-- -// | Y| . -// |--| . <-- This is the height of the rectangle (nSize) -// | ^| . -// +--+-- -// -// In order to figure out where the minimize button goes, we first need -// to know if there is a maximize button. If so, use GetMaxButtonRect() -// to place... -// -BOOL PASCAL GetMinButtonRect( HWND hWnd, LPRECT lprc ) -{ - if (!TestWinStyle( hWnd, WS_MINIMIZEBOX )) - { - SetRectEmpty( lprc ) ; - return FALSE ; - } - - // The minimize button can be in either position 1 or 2. If there - // is a maximize button, it's in position 2. - // - if (TestWinStyle( hWnd, WS_MAXIMIZEBOX )) - return GetButtonRect( hWnd, 2, lprc ) ; - else - return GetButtonRect( hWnd, 1, lprc ) ; -} - -// GetMaxButtonRect() -// -// Calculates the rect of the maximize button in screen -// coordinates. -// -// The maximize button, if present, is always to the far right -// or bottom. -// -BOOL PASCAL GetMaxButtonRect( HWND hWnd, LPRECT lprc ) -{ - //The maximize button can only be in position 1. - // - if (TestWinStyle( hWnd, WS_MAXIMIZEBOX )) - return GetButtonRect( hWnd, 1, lprc ) ; - else - { - SetRectEmpty( lprc ) ; - return FALSE ; - } -} - -// Get the rect where a button would go. -// -// This function does not care if it's a min or max, just whether -// it is the first from the right/bottom or second from the right/bottom -// and so on.. -// -BOOL PASCAL GetButtonRect( HWND hWnd, UINT nPos, LPRECT lprc ) -{ - UINT nSize = 0 ; - - if (!GetCaptionRect( hWnd, lprc )) //window coords - return FALSE ; - - nSize = GETCAPTIONSIZE( hWnd ) ; - - if (TestWinStyle( hWnd, IBS_VERTCAPTION )) - { - lprc->bottom -= nSize * (nPos-1) ; - lprc->top = lprc->bottom - nSize + 1 ; - } - else - { - lprc->right -= nSize * (nPos-1) ; - lprc->left = lprc->right - nSize + 1 ; - } - - return TRUE ; -} // GetButtonRect() - -// DrawButton( HDC hDC, HWND hWnd, BOOL fMin, BOOL fDepressed ) -// -// Draws either the min, max, or restore buttons. If fMin is FALSE then it -// will draw either the Max or Restore button. If fDepressed is TRUE it will -// draw the button in a down state. -// -void PASCAL DrawButton( HDC hDC, HWND hWnd, BOOL fMin, BOOL fDepressed) -{ - RECT rcButton ; - RECT rc ; - COLORREF rgbWindowFrame ; - BOOL fDC ; - UINT nCapSize ; - UINT nOffset ; - int n ; - - nCapSize = GETCAPTIONSIZE( hWnd ) ; - - // If you look at the standard Windows' min/max buttons, you will notice - // that they have two pixels of 'shadow' to the bottom and right. Since - // our buttons can be really, really small, we only want one pixel of - // shadow when they are small. I arbitrarily decided that if the - // caption size is greater than or equal to 20 we will use two - // pixels. That's what this THREASHOLD stuff does. - // - #define THRESHOLD 20 - nOffset = (nCapSize >= THRESHOLD) ? 2 : 1 ; - - if (!hDC) - { - fDC = TRUE ; - hDC = GetWindowDC( hWnd ) ; - } - else - fDC = FALSE ; - - if (hDC) - { - rgbWindowFrame = GetSysColor( COLOR_WINDOWFRAME ) ; - - if (fMin) - GetMinButtonRect( hWnd, &rcButton ) ; - else - GetMaxButtonRect( hWnd, &rcButton ) ; - - GetWindowRect( hWnd, &rc ) ; - OffsetRect( &rcButton, -rc.left, -rc.top ) ; - - rc = rcButton ; - if (TestWinStyle( hWnd, IBS_VERTCAPTION )) - { - rc = rcButton ; //separator line - rc.bottom = --rc.top + 1 ; - rcButton.right-- ; - } - else - { - rc = rcButton ; //separator line - rc.right = --rc.left + 1 ; - rcButton.bottom-- ; - } - - //Draw separator line - SetBkColor( hDC, rgbWindowFrame ) ; - DRAWFASTRECT( hDC, &rc ) ; - - //Fill - SetBkColor( hDC, RGBLTGRAY ) ; - DRAWFASTRECT( hDC, &rcButton ) ; - - if (!fDepressed) - { - //The normal min/max buttons have one pixel on the top and left - //sides for the highlight, and two pixels on the bottom and - //right side for the shadow. - // - //When our caption is 'small' we only use one pixel on all - //sides. - // - SetBkColor( hDC, RGBWHITE ) ; - //Draw left side - rc = rcButton ; - rc.right = rc.left + 1 ; - DRAWFASTRECT( hDC, &rc ) ; - - //Draw Top - rc = rcButton ; - rc.bottom = rc.top + 1 ; - DRAWFASTRECT( hDC, &rc ) ; - - SetBkColor( hDC, RGBGRAY ) ; - //Draw right side - rc = rcButton ; - rc.left = rc.right - 1 ; - DRAWFASTRECT( hDC, &rc ) ; - if (nCapSize > THRESHOLD) - { - rc.left-- ; - rc.top++ ; - DRAWFASTRECT( hDC, &rc ) ; - } - - //Draw bottom - rc = rcButton ; - rc.top = rc.bottom - 1 ; - DRAWFASTRECT( hDC, &rc ) ; - if (nCapSize > THRESHOLD) - { - rc.top-- ; - rc.left++ ; - DRAWFASTRECT( hDC, &rc ) ; - } - - rcButton.left++ ; - rcButton.top++ ; - rcButton.right -= nOffset ; - rcButton.bottom -= nOffset ; - } - else - { - //Draw depressed state - - SetBkColor( hDC, RGBGRAY ) ; - //Draw left side - rc = rcButton ; - rc.right = rc.left + nOffset ; - DRAWFASTRECT( hDC, &rc ) ; - - //Draw Top - rc = rcButton ; - rc.bottom = rc.top + nOffset ; - DRAWFASTRECT( hDC, &rc ) ; - - rcButton.left += 2 * nOffset ; - rcButton.top += 2 * nOffset ; - } - - // Now draw the arrows. We do not want the - // arrows to grow too large when we have a bigger than - // normal caption, so we restrict their size. - // - // rcButton now represents where we can place our - // arrows. - // - // The maximum size of our arrows (i.e. the width of rcButton) - // has been empirically determined to be SM_CYCAPTION / 2 - // - n = ((GetSystemMetrics( SM_CYCAPTION )) / 2) - - (rcButton.right - rcButton.left) ; - if (n < 1) - InflateRect( &rcButton, n/2-1, n/2-1 ) ; - - if (fMin) - DrawArrow( hDC, &rcButton, ARROW_DOWN ) ; - else - if (IsZoomed( hWnd )) - { - DrawArrow( hDC, &rcButton, ARROW_RESTORE ) ; - } - else - DrawArrow( hDC, &rcButton, ARROW_UP ) ; - - if (fDC) - ReleaseDC( hWnd, hDC ) ; - } - -} // DrawButton() - - -// DrawArrow -// -// Draws either a up or down arrow. The arrow is bound by the rectangle -// -void PASCAL DrawArrow( HDC hdc, LPRECT lprc, UINT uiStyle ) -{ - int row ; - int xTip ; - int yTip ; - RECT rc ; - int nMax = (lprc->bottom - lprc->top) >> 1 ; - - SetBkColor( hdc, RGBBLACK ) ; - - // We draw the arrow by drawing a series of horizontal lines - // - xTip = lprc->left + ((lprc->right - lprc->left+1) >> 1) ; - switch (uiStyle) - { - case ARROW_UP: - yTip = lprc->top + ((lprc->bottom - lprc->top-1) >> 2) ; - for (row = 1 ; row <= nMax ; row++ ) - { - rc.left = xTip - row ; - rc.right = xTip + row - 1 ; - rc.top = yTip + row ; - rc.bottom = rc.top + 1 ; - DRAWFASTRECT( hdc, &rc ) ; - } - break ; - - case ARROW_DOWN: - yTip = lprc->bottom - ((lprc->bottom - lprc->top-1) >> 2) ; - for ( row = nMax ; row > 0 ; row-- ) - { - rc.left = xTip - row ; - rc.right = xTip + row - 1 ; - rc.top = yTip - row ; - rc.bottom = rc.top + 1 ; - DRAWFASTRECT( hdc, &rc ) ; - } - break ; - - case ARROW_RESTORE: - default: - yTip = lprc->top + ((lprc->bottom - lprc->top-1) >> 3) - 2; - for (row = 1 ; row <= nMax ; row++ ) - { - rc.left = xTip - row ; - rc.right = xTip + row - 1 ; - rc.top = yTip + row ; - rc.bottom = rc.top + 1 ; - DRAWFASTRECT( hdc, &rc ) ; - } - - yTip += (nMax+1) * 2 ; - for ( row = nMax ; row > 0 ; row-- ) - { - rc.left = xTip - row ; - rc.right = xTip + row - 1 ; - rc.top = yTip - row ; - rc.bottom = rc.top + 1 ; - DRAWFASTRECT( hdc, &rc ) ; - } - break ; - } - -} // DrawArrow() - -#endif // wxUSE_ITSY_BITSY diff --git a/src/msw/msgdlg.cpp b/src/msw/msgdlg.cpp deleted file mode 100644 index 5abe1042a5..0000000000 --- a/src/msw/msgdlg.cpp +++ /dev/null @@ -1,105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.cpp -// Purpose: wxMessageDialog -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "msgdlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#endif - -#include "wx/msw/private.h" - -#include -#include -#include - -#define wxDIALOG_DEFAULT_X 300 -#define wxDIALOG_DEFAULT_Y 300 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxMessageDialog, wxDialog) -#endif - -wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption, - long style, const wxPoint& pos) -{ - m_caption = caption; - m_message = message; - m_dialogStyle = style; - m_parent = parent; -} - -int wxMessageDialog::ShowModal(void) -{ - HWND hWnd = 0; - if (m_parent) hWnd = (HWND) m_parent->GetHWND(); - unsigned int msStyle = MB_OK; - if (m_dialogStyle & wxYES_NO) - { - if (m_dialogStyle & wxCANCEL) - msStyle = MB_YESNOCANCEL; - else - msStyle = MB_YESNO; - } - if (m_dialogStyle & wxOK) - { - if (m_dialogStyle & wxCANCEL) - msStyle = MB_OKCANCEL; - else - msStyle = MB_OK; - } - if (m_dialogStyle & wxICON_EXCLAMATION) - msStyle |= MB_ICONEXCLAMATION; - else if (m_dialogStyle & wxICON_HAND) - msStyle |= MB_ICONHAND; - else if (m_dialogStyle & wxICON_INFORMATION) - msStyle |= MB_ICONINFORMATION; - else if (m_dialogStyle & wxICON_QUESTION) - msStyle |= MB_ICONQUESTION; - - if (hWnd) - msStyle |= MB_APPLMODAL; - else - msStyle |= MB_TASKMODAL; - - int msAns = MessageBox(hWnd, (LPCSTR)(const char *)m_message, (LPCSTR)(const char *)m_caption, msStyle); - int ans = wxOK; - switch (msAns) - { - case IDCANCEL: - ans = wxID_CANCEL; - break; - case IDOK: - ans = wxID_OK; - break; - case IDYES: - ans = wxID_YES; - break; - case IDNO: - ans = wxID_NO; - break; - } - return ans; -} - diff --git a/src/msw/nativdlg.cpp b/src/msw/nativdlg.cpp deleted file mode 100644 index d85100a5ed..0000000000 --- a/src/msw/nativdlg.cpp +++ /dev/null @@ -1,301 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: nativdlg.cpp -// Purpose: Native dialog loading code (part of wxWindow) -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include - - #include "wx/wx.h" -#endif - -#include "wx/spinbutt.h" -#include "wx/msw/private.h" - -// --------------------------------------------------------------------------- -// global functions -// --------------------------------------------------------------------------- - -extern wxWindow *wxWndHook; -extern LONG APIENTRY _EXPORT wxDlgProc(HWND hWnd, UINT message, - WPARAM wParam, LPARAM lParam); - -// =========================================================================== -// implementation -// =========================================================================== - -bool wxWindow::LoadNativeDialog(wxWindow* parent, wxWindowID& id) -{ - m_windowId = id; - wxWndHook = this; - m_hWnd = (WXHWND)::CreateDialog((HINSTANCE)wxGetInstance(), - MAKEINTRESOURCE(id), - parent ? (HWND)parent->GetHWND() : 0, - (DLGPROC) wxDlgProc); - wxWndHook = NULL; - - if ( !m_hWnd ) - return FALSE; - - SubclassWin(GetHWND()); - - if ( parent ) - parent->AddChild(this); - else - wxTopLevelWindows.Append(this); - - // Enumerate all children - HWND hWndNext; - hWndNext = ::GetWindow((HWND) m_hWnd, GW_CHILD); - - wxWindow* child = NULL; - if (hWndNext) - child = CreateWindowFromHWND(this, (WXHWND) hWndNext); - - while (hWndNext != (HWND) NULL) - { - hWndNext = ::GetWindow(hWndNext, GW_HWNDNEXT); - if (hWndNext) - child = CreateWindowFromHWND(this, (WXHWND) hWndNext); - } - - return TRUE; -} - -bool wxWindow::LoadNativeDialog(wxWindow* parent, const wxString& name) -{ - SetName(name); - - wxWndHook = this; - m_hWnd = (WXHWND)::CreateDialog((HINSTANCE) wxGetInstance(), - name.c_str(), - parent ? (HWND)parent->GetHWND() : 0, - (DLGPROC)wxDlgProc); - wxWndHook = NULL; - - if ( !m_hWnd ) - return FALSE; - - SubclassWin(GetHWND()); - - if ( parent ) - parent->AddChild(this); - else - wxTopLevelWindows.Append(this); - - // FIXME why don't we enum all children here? - - return TRUE; -} - -// --------------------------------------------------------------------------- -// look for child by id -// --------------------------------------------------------------------------- - -wxWindow* wxWindow::GetWindowChild1(wxWindowID id) -{ - if ( m_windowId == id ) - return this; - - wxWindowList::Node *node = GetChildren().GetFirst(); - while ( node ) - { - wxWindow* child = node->GetData(); - wxWindow* win = child->GetWindowChild1(id); - if ( win ) - return win; - - node = node->GetNext(); - } - - return NULL; -} - -wxWindow* wxWindow::GetWindowChild(wxWindowID id) -{ - wxWindow* win = GetWindowChild1(id); - if ( !win ) - { - HWND hWnd = ::GetDlgItem((HWND) GetHWND(), id); - - if (hWnd) - { - wxWindow* child = CreateWindowFromHWND(this, (WXHWND) hWnd); - if (child) - { - child->AddChild(this); - return child; - } - } - } - - return NULL; -} - -// --------------------------------------------------------------------------- -// create wxWin window from a native HWND -// --------------------------------------------------------------------------- - -wxWindow* wxWindow::CreateWindowFromHWND(wxWindow* parent, WXHWND hWnd) -{ - wxString str(wxGetWindowClass(hWnd)); - str.UpperCase(); - - long id = wxGetWindowId(hWnd); - long style = GetWindowLong((HWND) hWnd, GWL_STYLE); - - wxWindow* win = NULL; - - if (str == "BUTTON") - { - int style1 = (style & 0xFF); - if ((style1 == BS_3STATE) || (style1 == BS_AUTO3STATE) || (style1 == BS_AUTOCHECKBOX) || - (style1 == BS_CHECKBOX)) - { - win = new wxCheckBox; - } - else if ((style1 == BS_AUTORADIOBUTTON) || (style1 == BS_RADIOBUTTON)) - { - win = new wxRadioButton; - } -#if defined(__WIN32__) && defined(BS_BITMAP) - else if (style & BS_BITMAP) - { - // TODO: how to find the bitmap? - win = new wxBitmapButton; - wxLogError("Have not yet implemented bitmap button as BS_BITMAP button."); - } -#endif - else if (style1 == BS_OWNERDRAW) - { - // TODO: how to find the bitmap? - // TODO: can't distinguish between bitmap button and bitmap static. - // Change implementation of wxStaticBitmap to SS_BITMAP. - // PROBLEM: this assumes that we're using resource-based bitmaps. - // So maybe need 2 implementations of bitmap buttons/static controls, - // with a switch in the drawing code. Call default proc if BS_BITMAP. - win = new wxBitmapButton; - } - else if ((style1 == BS_PUSHBUTTON) || (style1 == BS_DEFPUSHBUTTON)) - { - win = new wxButton; - } - else if (style1 == BS_GROUPBOX) - { - win = new wxStaticBox; - } - else - { - wxLogError(_T("Don't know what kind of button this is: id = %d"), - id); - } - } - else if (str == "COMBOBOX") - { - win = new wxComboBox; - } - // TODO: Problem if the user creates a multiline - but not rich text - text control, - // since wxWin assumes RichEdit control for this. Should have m_isRichText in - // wxTextCtrl. Also, convert as much of the window style as is necessary - // for correct functioning. - // Could have wxWindow::AdoptAttributesFromHWND(WXHWND) - // to be overridden by each control class. - else if (str == "EDIT") - { - win = new wxTextCtrl; - } - else if (str == "LISTBOX") - { - win = new wxListBox; - } - else if (str == "SCROLLBAR") - { - win = new wxScrollBar; - } -#if defined(__WIN95__) && !defined(__TWIN32__) - else if (str == "MSCTLS_UPDOWN32") - { - win = new wxSpinButton; - } -#endif - else if (str == "MSCTLS_TRACKBAR32") - { - // Need to ascertain if it's horiz or vert - win = new wxSlider; - } - else if (str == "STATIC") - { - int style1 = (style & 0xFF); - - if ((style1 == SS_LEFT) || (style1 == SS_RIGHT) || (style1 == SS_SIMPLE)) - win = new wxStaticText; -#if defined(__WIN32__) && defined(BS_BITMAP) - else if (style1 == SS_BITMAP) - { - win = new wxStaticBitmap; - - // Help! this doesn't correspond with the wxWin implementation. - wxLogError("Please make SS_BITMAP statics into owner-draw buttons."); - } -#endif - } - else - { - wxString msg("Don't know how to convert from Windows class "); - msg += str; - wxLogError(msg); - } - - if (win) - { - parent->AddChild(win); - win->SetEventHandler(win); - win->SetHWND(hWnd); - win->SetId(id); - win->SubclassWin(hWnd); - win->AdoptAttributesFromHWND(); - win->SetupColours(); - - return win; - } - else - return NULL; -} - -// Make sure the window style (etc.) reflects the HWND style (roughly) -void wxWindow::AdoptAttributesFromHWND(void) -{ - HWND hWnd = (HWND) GetHWND(); - long style = GetWindowLong((HWND) hWnd, GWL_STYLE); - - if (style & WS_VSCROLL) - m_windowStyle |= wxVSCROLL; - if (style & WS_HSCROLL) - m_windowStyle |= wxHSCROLL; -} - diff --git a/src/msw/notebook.cpp b/src/msw/notebook.cpp deleted file mode 100644 index f16fa88b61..0000000000 --- a/src/msw/notebook.cpp +++ /dev/null @@ -1,531 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/notebook.cpp -// Purpose: implementation of wxNotebook -// Author: Vadim Zeitlin -// Modified by: -// Created: 11.06.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -// wxWindows -#ifndef WX_PRECOMP - #include -#endif // WX_PRECOMP - -#include -#include -#include -#include -#include - -#include - -// Windows standard headers -#ifndef __WIN95__ - #error "wxNotebook is only supported Windows 95 and above" -#endif //Win95 - -#include // for SetWindowFont - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ - #include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#if !defined(__GNUWIN32__) || defined(__TWIN32__) - #include -#endif - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) - -// hide the ugly cast -#define m_hwnd (HWND)GetHWND() - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES - BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange) - - EVT_SIZE(wxNotebook::OnSize) - - EVT_SET_FOCUS(wxNotebook::OnSetFocus) - - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) - END_EVENT_TABLE() - - IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) - IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxNotifyEvent) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNotebook construction -// ---------------------------------------------------------------------------- - -// common part of all ctors -void wxNotebook::Init() -{ - m_pImageList = NULL; - m_nSelection = -1; -} - -// default for dynamic class -wxNotebook::wxNotebook() -{ - Init(); -} - -// the same arguments as for wxControl -wxNotebook::wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - Create(parent, id, pos, size, style, name); -} - -// Create() function -bool wxNotebook::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // base init - CreateBase(parent, id, pos, size, style, name); - - // colors and font - m_backgroundColour = wxColour(GetSysColor(COLOR_BTNFACE)); - m_foregroundColour = *wxBLACK ; - - // style - m_windowStyle = style | wxTAB_TRAVERSAL; - - long tabStyle = WS_CHILD | WS_VISIBLE | WS_TABSTOP | TCS_TABS; - - if (m_windowStyle & wxCLIP_CHILDREN) - tabStyle |= WS_CLIPCHILDREN; - if ( m_windowStyle & wxTC_MULTILINE ) - tabStyle |= TCS_MULTILINE; - if ( m_windowStyle & wxBORDER ) - tabStyle &= WS_BORDER; - if (m_windowStyle & wxNB_FIXEDWIDTH) - tabStyle |= TCS_FIXEDWIDTH ; - - if ( !MSWCreate(GetId(), GetParent(), WC_TABCONTROL, - this, NULL, pos.x, pos.y, size.x, size.y, - tabStyle, NULL, 0) ) - { - return FALSE; - } - - // Not all compilers recognise SetWindowFont - ::SendMessage(GetHwnd(), WM_SETFONT, - (WPARAM)::GetStockObject(DEFAULT_GUI_FONT), TRUE); - - - if ( parent != NULL ) - parent->AddChild(this); - - SubclassWin(m_hWnd); - - return TRUE; -} - -// dtor -wxNotebook::~wxNotebook() -{ -} - -// ---------------------------------------------------------------------------- -// wxNotebook accessors -// ---------------------------------------------------------------------------- -int wxNotebook::GetPageCount() const -{ - // consistency check - wxASSERT( (int)m_aPages.Count() == TabCtrl_GetItemCount(m_hwnd) ); - - return m_aPages.Count(); -} - -int wxNotebook::GetRowCount() const -{ - return TabCtrl_GetRowCount(m_hwnd); -} - -int wxNotebook::SetSelection(int nPage) -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, "notebook page out of range" ); - - ChangePage(m_nSelection, nPage); - - return TabCtrl_SetCurSel(m_hwnd, nPage); -} - -void wxNotebook::AdvanceSelection(bool bForward) -{ - int nSel = GetSelection(); - int nMax = GetPageCount() - 1; - if ( bForward ) - SetSelection(nSel == nMax ? 0 : nSel + 1); - else - SetSelection(nSel == 0 ? nMax : nSel - 1); -} - -bool wxNotebook::SetPageText(int nPage, const wxString& strText) -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, "notebook page out of range" ); - - TC_ITEM tcItem; - tcItem.mask = TCIF_TEXT; - tcItem.pszText = (char *)strText.c_str(); - - return TabCtrl_SetItem(m_hwnd, nPage, &tcItem) != 0; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), "", "notebook page out of range" ); - - char buf[256]; - TC_ITEM tcItem; - tcItem.mask = TCIF_TEXT; - tcItem.pszText = buf; - tcItem.cchTextMax = WXSIZEOF(buf); - - wxString str; - if ( TabCtrl_GetItem(m_hwnd, nPage, &tcItem) ) - str = tcItem.pszText; - - return str; -} - -int wxNotebook::GetPageImage(int nPage) const -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), -1, "notebook page out of range" ); - - TC_ITEM tcItem; - tcItem.mask = TCIF_IMAGE; - - return TabCtrl_GetItem(m_hwnd, nPage, &tcItem) ? tcItem.iImage : -1; -} - -bool wxNotebook::SetPageImage(int nPage, int nImage) -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, "notebook page out of range" ); - - TC_ITEM tcItem; - tcItem.mask = TCIF_IMAGE; - tcItem.iImage = nImage; - - return TabCtrl_SetItem(m_hwnd, nPage, &tcItem) != 0; -} - -void wxNotebook::SetImageList(wxImageList* imageList) -{ - m_pImageList = imageList; - TabCtrl_SetImageList(m_hwnd, (HIMAGELIST)imageList->GetHIMAGELIST()); -} - - -// Windows-only at present. Also, you must use the wxNB_FIXEDWIDTH -// style. -void wxNotebook::SetTabSize(const wxSize& sz) -{ - ::SendMessage(GetHwnd(), TCM_SETITEMSIZE, 0, MAKELPARAM(sz.x, sz.y)); -} - -// ---------------------------------------------------------------------------- -// wxNotebook operations -// ---------------------------------------------------------------------------- - -// remove one page from the notebook -bool wxNotebook::DeletePage(int nPage) -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, "notebook page out of range" ); - - TabCtrl_DeleteItem(m_hwnd, nPage); - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove one page from the notebook, without deleting -bool wxNotebook::RemovePage(int nPage) -{ - wxCHECK_MSG( IS_VALID_PAGE(nPage), FALSE, "notebook page out of range" ); - - TabCtrl_DeleteItem(m_hwnd, nPage); - - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove all pages -bool wxNotebook::DeleteAllPages() -{ - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - delete m_aPages[nPage]; - - m_aPages.Clear(); - - TabCtrl_DeleteAllItems(m_hwnd); - - return TRUE; -} - -// add a page to the notebook -bool wxNotebook::AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - return InsertPage(GetPageCount(), pPage, strText, bSelect, imageId); -} - -// same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); - - // add the tab to the control - TC_ITEM tcItem; - tcItem.mask = 0; - - if (imageId != -1) - { - tcItem.mask |= TCIF_IMAGE; - tcItem.iImage = imageId; - } - else - tcItem.iImage = 0; - - if (!strText.IsEmpty()) - { - tcItem.mask |= TCIF_TEXT; - tcItem.pszText = (char *)strText.c_str(); - } - else - tcItem.pszText = (char *) NULL; - - if ( TabCtrl_InsertItem(m_hwnd, nPage, &tcItem) == -1 ) { - wxLogError("Can't create the notebook page '%s'.", strText.c_str()); - return FALSE; - } - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - // some page must be selected: either this one or the first one if there is - // still no selection - if ( bSelect ) - m_nSelection = nPage; - else if ( m_nSelection == -1 ) - m_nSelection = 0; - - // don't show pages by default (we'll need to adjust their size first) - HWND hwnd = GetWinHwnd(pPage); - SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_VISIBLE); - - // this updates internal flag too - otherwise it will get out of sync - pPage->Show(FALSE); - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -void wxNotebook::OnSize(wxSizeEvent& event) -{ - // make sure the current page is shown and has focus (it's useful because all - // pages are created invisible initially) - if ( m_nSelection != -1 ) { - wxNotebookPage *pPage = m_aPages[m_nSelection]; - pPage->Show(TRUE); - pPage->SetFocus(); - } - - // fit the notebook page to the tab control's display area - RECT rc; - rc.left = rc.top = 0; - GetSize((int *)&rc.right, (int *)&rc.bottom); - - TabCtrl_AdjustRect(m_hwnd, FALSE, &rc); - size_t nCount = m_aPages.Count(); - for ( size_t nPage = 0; nPage < nCount; nPage++ ) { - wxNotebookPage *pPage = m_aPages[nPage]; - pPage->SetSize(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top); - if ( pPage->GetAutoLayout() ) - pPage->Layout(); - } - - event.Skip(); -} - -void wxNotebook::OnSelChange(wxNotebookEvent& event) -{ - // is it our tab control? - if ( event.GetEventObject() == this ) - ChangePage(event.GetOldSelection(), event.GetSelection()); - - // we want to give others a chance to process this message as well - event.Skip(); -} - -void wxNotebook::OnSetFocus(wxFocusEvent& event) -{ - // set focus to the currently selected page if any - if ( m_nSelection != -1 ) - m_aPages[m_nSelection]->SetFocus(); - - event.Skip(); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if ( event.IsWindowChange() ) { - // change pages - AdvanceSelection(event.GetDirection()); - } - else { - // pass to the parent - if ( GetParent() ) { - event.SetCurrentFocus(this); - GetParent()->GetEventHandler()->ProcessEvent(event); - } - } -} - -// ---------------------------------------------------------------------------- -// wxNotebook base class virtuals -// ---------------------------------------------------------------------------- - -// override these 2 functions to do nothing: everything is done in OnSize - -void wxNotebook::SetConstraintSizes(bool /* recurse */) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase(int /* nPhase */) -{ - return TRUE; -} - -bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result) -{ - wxNotebookEvent event(wxEVT_NULL, m_windowId); - - NMHDR* hdr = (NMHDR *)lParam; - switch ( hdr->code ) { - case TCN_SELCHANGE: - event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED); - break; - - case TCN_SELCHANGING: - event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING); - break; - - default: - return wxControl::MSWOnNotify(idCtrl, lParam, result); - } - - event.SetSelection(TabCtrl_GetCurSel(m_hwnd)); - event.SetOldSelection(m_nSelection); - event.SetEventObject(this); - event.SetInt(idCtrl); - - bool processed = GetEventHandler()->ProcessEvent(event); - *result = !event.IsAllowed(); - return processed; -} - -// ---------------------------------------------------------------------------- -// wxNotebook helper functions -// ---------------------------------------------------------------------------- - -// hide the currently active panel and show the new one -void wxNotebook::ChangePage(int nOldSel, int nSel) -{ - // MT-FIXME should use a real semaphore - static bool s_bInsideChangePage = FALSE; - - // when we call ProcessEvent(), our own OnSelChange() is called which calls - // this function - break the infinite loop - if ( s_bInsideChangePage ) - return; - - // it's not an error (the message may be generated by the tab control itself) - // and it may happen - just do nothing - if ( nSel == nOldSel ) - return; - - s_bInsideChangePage = TRUE; - - wxNotebookEvent event(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, m_windowId); - event.SetSelection(nSel); - event.SetOldSelection(nOldSel); - event.SetEventObject(this); - if ( ProcessEvent(event) && !event.IsAllowed() ) - { - // program doesn't allow the page change - s_bInsideChangePage = FALSE; - return; - } - - if ( nOldSel != -1 ) - m_aPages[nOldSel]->Show(FALSE); - - wxNotebookPage *pPage = m_aPages[nSel]; - pPage->Show(TRUE); - pPage->SetFocus(); - - event.SetEventType(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED); - ProcessEvent(event); - - m_nSelection = nSel; - s_bInsideChangePage = FALSE; -} diff --git a/src/msw/ole/automtn.cpp b/src/msw/ole/automtn.cpp deleted file mode 100644 index 934efa6354..0000000000 --- a/src/msw/ole/automtn.cpp +++ /dev/null @@ -1,1158 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: automtn.cpp -// Purpose: OLE automation utilities -// Author: Julian Smart -// Modified by: -// Created: 11/6/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998, Julian Smart -// Licence: wxWindows Licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "automtn.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#include "wx/log.h" - -#include -#include - -#include "wx/msw/ole/automtn.h" - -#include "wx/msw/private.h" - -#include -#include - -// wrapper around BSTR type (by Vadim Zeitlin) - -class WXDLLEXPORT BasicString -{ -public: - // ctors & dtor - BasicString(const char *sz); - ~BasicString(); - - // accessors - // just get the string - operator BSTR() const { return m_wzBuf; } - // retrieve a copy of our string - caller must SysFreeString() it later! - BSTR Get() const { return SysAllocString(m_wzBuf); } - -private: - // @@@ not implemented (but should be) - BasicString(const BasicString&); - BasicString& operator=(const BasicString&); - - OLECHAR *m_wzBuf; // actual string -}; - -// Convert variants -static bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) ; -static bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) ; - -// Convert string to Unicode -static BSTR ConvertStringToOle(const wxString& str); - -// Convert string from BSTR to wxString -static wxString ConvertStringFromOle(BSTR bStr); - -// Verifies will fail if the needed buffer size is too large -#define MAX_TIME_BUFFER_SIZE 128 // matches that in timecore.cpp -#define MIN_DATE (-657434L) // about year 100 -#define MAX_DATE 2958465L // about year 9999 - -// Half a second, expressed in days -#define HALF_SECOND (1.0/172800.0) - -// One-based array of days in year at month start -static int rgMonthDays[13] = - {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365}; - -static BOOL OleDateFromTm(WORD wYear, WORD wMonth, WORD wDay, - WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest); -static BOOL TmFromOleDate(DATE dtSrc, struct tm& tmDest); -static void TmConvertToStandardFormat(struct tm& tmSrc); -static double DoubleFromDate(DATE dt); -static DATE DateFromDouble(double dbl); - -static void ClearVariant(VARIANTARG *pvarg) ; -static void ReleaseVariant(VARIANTARG *pvarg) ; -// static void ShowException(LPOLESTR szMember, HRESULT hr, EXCEPINFO *pexcep, unsigned int uiArgErr); - -/* - * wxAutomationObject - */ - -wxAutomationObject::wxAutomationObject(WXIDISPATCH* dispatchPtr) -{ - m_dispatchPtr = dispatchPtr; -} - -wxAutomationObject::~wxAutomationObject() -{ - if (m_dispatchPtr) - { - ((IDispatch*)m_dispatchPtr)->Release(); - m_dispatchPtr = NULL; - } -} - -#define INVOKEARG(i) (args ? args[i] : *(ptrArgs[i])) - -// For Put/Get, no named arguments are allowed. -bool wxAutomationObject::Invoke(const wxString& member, int action, - wxVariant& retValue, int noArgs, wxVariant args[], const wxVariant* ptrArgs[]) const -{ - if (!m_dispatchPtr) - return FALSE; - - // nonConstMember is necessary because the wxString class doesn't have enough consts... - wxString nonConstMember(member); - - int ch = nonConstMember.Find('.'); - if (ch != -1) - { - // Use dot notation to get the next object - wxString member2(nonConstMember.Left((size_t) ch)); - wxString rest(nonConstMember.Right(nonConstMember.Length() - ch - 1)); - wxAutomationObject obj; - if (!GetObject(obj, member2)) - return FALSE; - return obj.Invoke(rest, action, retValue, noArgs, args, ptrArgs); - } - - VARIANTARG vReturn; - ClearVariant(& vReturn); - - VARIANTARG* vReturnPtr = & vReturn; - - // Find number of names args - int namedArgCount = 0; - int i; - for (i = 0; i < noArgs; i++) - if (!INVOKEARG(i).GetName().IsNull()) - { - namedArgCount ++; - } - - int namedArgStringCount = namedArgCount + 1; - BSTR* argNames = new BSTR[namedArgStringCount]; - argNames[0] = ConvertStringToOle(member); - - // Note that arguments are specified in reverse order - // (all totally logical; hey, we're dealing with OLE here.) - - int j = 0; - for (i = 0; i < namedArgCount; i++) - { - if (!INVOKEARG(i).GetName().IsNull()) - { - argNames[(namedArgCount-j)] = ConvertStringToOle(INVOKEARG(i).GetName()); - j ++; - } - } - - // + 1 for the member name, + 1 again in case we're a 'put' - DISPID* dispIds = new DISPID[namedArgCount + 2]; - - HRESULT hr; - DISPPARAMS dispparams; - unsigned int uiArgErr; - EXCEPINFO excep; - - // Get the IDs for the member and its arguments. GetIDsOfNames expects the - // member name as the first name, followed by argument names (if any). - hr = ((IDispatch*)m_dispatchPtr)->GetIDsOfNames(IID_NULL, argNames, - 1 + namedArgCount, LOCALE_SYSTEM_DEFAULT, dispIds); - if (FAILED(hr)) - { -// ShowException(szMember, hr, NULL, 0); - return FALSE; - } - - // if doing a property put(ref), we need to adjust the first argument to have a - // named arg of DISPID_PROPERTYPUT. - if (action & (DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF)) - { - namedArgCount = 1; - dispIds[1] = DISPID_PROPERTYPUT; - vReturnPtr = (VARIANTARG*) NULL; - } - - // Convert the wxVariants to VARIANTARGs - VARIANTARG* oleArgs = new VARIANTARG[noArgs]; - for (i = 0; i < noArgs; i++) - { - // Again, reverse args - if (!ConvertVariantToOle(INVOKEARG((noArgs-1) - i), oleArgs[i])) - return FALSE; // TODO: clean up memory at this point - } - - dispparams.rgdispidNamedArgs = dispIds + 1; - dispparams.rgvarg = oleArgs; - dispparams.cArgs = noArgs; - dispparams.cNamedArgs = namedArgCount; - - excep.pfnDeferredFillIn = NULL; - - hr = ((IDispatch*)m_dispatchPtr)->Invoke(dispIds[0], IID_NULL, LOCALE_SYSTEM_DEFAULT, - action, &dispparams, vReturnPtr, &excep, &uiArgErr); - - for (i = 0; i < namedArgStringCount; i++) - { - SysFreeString(argNames[i]); - } - delete[] argNames; - delete[] dispIds; - - for (i = 0; i < noArgs; i++) - ReleaseVariant(& oleArgs[i]) ; - delete[] oleArgs; - - if (FAILED(hr)) - { - // display the exception information if appropriate: -// ShowException((const char*) member, hr, &excep, uiArgErr); - - // free exception structure information - SysFreeString(excep.bstrSource); - SysFreeString(excep.bstrDescription); - SysFreeString(excep.bstrHelpFile); - - if (vReturnPtr) - ReleaseVariant(vReturnPtr); - return FALSE; - } - else - { - if (vReturnPtr) - { - // Convert result to wxVariant form - ConvertOleToVariant(vReturn, retValue); - // Mustn't release the dispatch pointer - if (vReturn.vt == VT_DISPATCH) - { - vReturn.pdispVal = (IDispatch*) NULL; - } - ReleaseVariant(& vReturn); - } - } - return TRUE; -} - -// Invoke a member function -wxVariant wxAutomationObject::CallMethod(const wxString& member, int noArgs, wxVariant args[]) -{ - wxVariant retVariant; - if (!Invoke(member, DISPATCH_METHOD, retVariant, noArgs, args)) - { - retVariant.MakeNull(); - } - return retVariant; -} - -wxVariant wxAutomationObject::CallMethod(const wxString& member, - const wxVariant& arg1, const wxVariant& arg2, - const wxVariant& arg3, const wxVariant& arg4, - const wxVariant& arg5, const wxVariant& arg6) -{ - const wxVariant** args = new const wxVariant*[6]; - int i = 0; - if (!arg1.IsNull()) - { - args[i] = & arg1; - i ++; - } - if (!arg2.IsNull()) - { - args[i] = & arg2; - i ++; - } - if (!arg3.IsNull()) - { - args[i] = & arg3; - i ++; - } - if (!arg4.IsNull()) - { - args[i] = & arg4; - i ++; - } - if (!arg5.IsNull()) - { - args[i] = & arg5; - i ++; - } - if (!arg6.IsNull()) - { - args[i] = & arg6; - i ++; - } - wxVariant retVariant; - if (!Invoke(member, DISPATCH_METHOD, retVariant, i, NULL, args)) - { - retVariant.MakeNull(); - } - delete[] args; - return retVariant; -} - -// Get/Set property -wxVariant wxAutomationObject::GetProperty(const wxString& property, int noArgs, wxVariant args[]) const -{ - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) - { - retVariant.MakeNull(); - } - return retVariant; -} - -wxVariant wxAutomationObject::GetProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2, - const wxVariant& arg3, const wxVariant& arg4, - const wxVariant& arg5, const wxVariant& arg6) -{ - const wxVariant** args = new const wxVariant*[6]; - int i = 0; - if (!arg1.IsNull()) - { - args[i] = & arg1; - i ++; - } - if (!arg2.IsNull()) - { - args[i] = & arg2; - i ++; - } - if (!arg3.IsNull()) - { - args[i] = & arg3; - i ++; - } - if (!arg4.IsNull()) - { - args[i] = & arg4; - i ++; - } - if (!arg5.IsNull()) - { - args[i] = & arg5; - i ++; - } - if (!arg6.IsNull()) - { - args[i] = & arg6; - i ++; - } - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYGET, retVariant, i, NULL, args)) - { - retVariant.MakeNull(); - } - delete[] args; - return retVariant; -} - -bool wxAutomationObject::PutProperty(const wxString& property, int noArgs, wxVariant args[]) -{ - wxVariant retVariant; - if (!Invoke(property, DISPATCH_PROPERTYPUT, retVariant, noArgs, args)) - { - return FALSE; - } - return TRUE; -} - -bool wxAutomationObject::PutProperty(const wxString& property, - const wxVariant& arg1, const wxVariant& arg2, - const wxVariant& arg3, const wxVariant& arg4, - const wxVariant& arg5, const wxVariant& arg6) -{ - const wxVariant** args = new const wxVariant*[6]; - int i = 0; - if (!arg1.IsNull()) - { - args[i] = & arg1; - i ++; - } - if (!arg2.IsNull()) - { - args[i] = & arg2; - i ++; - } - if (!arg3.IsNull()) - { - args[i] = & arg3; - i ++; - } - if (!arg4.IsNull()) - { - args[i] = & arg4; - i ++; - } - if (!arg5.IsNull()) - { - args[i] = & arg5; - i ++; - } - if (!arg6.IsNull()) - { - args[i] = & arg6; - i ++; - } - wxVariant retVariant; - bool ret = Invoke(property, DISPATCH_PROPERTYPUT, retVariant, i, NULL, args); - delete[] args; - return ret; -} - - -// Uses DISPATCH_PROPERTYGET -// and returns a dispatch pointer. The calling code should call Release -// on the pointer, though this could be implicit by constructing an wxAutomationObject -// with it and letting the destructor call Release. -WXIDISPATCH* wxAutomationObject::GetDispatchProperty(const wxString& property, int noArgs, wxVariant args[]) const -{ - wxVariant retVariant; - if (Invoke(property, DISPATCH_PROPERTYGET, retVariant, noArgs, args)) - { - if (retVariant.GetType() == "void*") - { - return (WXIDISPATCH*) retVariant.GetVoidPtr(); - } - else - { - return (WXIDISPATCH*) NULL; - } - } - else - return (WXIDISPATCH*) NULL; -} - -// A way of initialising another wxAutomationObject with a dispatch object -bool wxAutomationObject::GetObject(wxAutomationObject& obj, const wxString& property, int noArgs, wxVariant args[]) const -{ - WXIDISPATCH* dispatch = GetDispatchProperty(property, noArgs, args); - if (dispatch) - { - obj.SetDispatchPtr(dispatch); - return TRUE; - } - else - return FALSE; -} - -// Get a dispatch pointer from the current object associated -// with a class id -bool wxAutomationObject::GetInstance(const wxString& classId) const -{ - if (m_dispatchPtr) - return FALSE; - - CLSID clsId; - IUnknown * pUnk = NULL; - - BasicString unicodeName((const char*) classId); - - if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) - { - wxLogWarning("Cannot obtain CLSID from ProgID"); - return FALSE; - } - - if (FAILED(GetActiveObject(clsId, NULL, &pUnk))) - { - wxLogWarning("Cannot find an active object"); - return FALSE; - } - - if (pUnk->QueryInterface(IID_IDispatch, (LPVOID*) &m_dispatchPtr) != S_OK) - { - wxLogWarning("Cannot find IDispatch interface"); - return FALSE; - } - - return TRUE; -} - -// Get a dispatch pointer from a new object associated -// with the given class id -bool wxAutomationObject::CreateInstance(const wxString& classId) const -{ - if (m_dispatchPtr) - return FALSE; - - CLSID clsId; - IUnknown * pUnk = NULL; - - BasicString unicodeName((const char*) classId); - - if (FAILED(CLSIDFromProgID((BSTR) unicodeName, &clsId))) - { - wxLogWarning("Cannot obtain CLSID from ProgID"); - return FALSE; - } - - // start a new copy of Excel, grab the IDispatch interface - if (FAILED(CoCreateInstance(clsId, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void**)&m_dispatchPtr))) - { - wxLogWarning("Cannot start an instance of this class."); - return FALSE; - } - - return TRUE; -} - - -bool ConvertVariantToOle(const wxVariant& variant, VARIANTARG& oleVariant) -{ - ClearVariant(&oleVariant); - if (variant.IsNull()) - { - oleVariant.vt = VT_NULL; - return TRUE; - } - - wxString type(variant.GetType()); - - if (type == "long") - { - oleVariant.vt = VT_I4; - oleVariant.lVal = variant.GetLong() ; - } - else if (type == "double") - { - oleVariant.vt = VT_R8; - oleVariant.dblVal = variant.GetDouble(); - } - else if (type == "bool") - { - oleVariant.vt = VT_BOOL; - // 'bool' required for VC++ 4 apparently -#if defined(__WATCOMC__) || (defined(__VISUALC__) && (__VISUALC__ <= 1000)) - oleVariant.bool = variant.GetBool(); -#else - oleVariant.boolVal = variant.GetBool(); -#endif - } - else if (type == "string") - { - wxString str( variant.GetString() ); - oleVariant.vt = VT_BSTR; - oleVariant.bstrVal = ConvertStringToOle(str); - } - else if (type == "date") - { - wxDate date( variant.GetDate() ); - oleVariant.vt = VT_DATE; - - if (!OleDateFromTm(date.GetYear(), date.GetMonth(), date.GetDay(), - 0, 0, 0, oleVariant.date)) - return FALSE; - } - else if (type == "time") - { - wxTime time( variant.GetTime() ); - oleVariant.vt = VT_DATE; - - if (!OleDateFromTm(time.GetYear(), time.GetMonth(), time.GetDay(), - time.GetHour(), time.GetMinute(), time.GetSecond(), oleVariant.date)) - return FALSE; - } - else if (type == "void*") - { - oleVariant.vt = VT_DISPATCH; - oleVariant.pdispVal = (IDispatch*) variant.GetVoidPtr(); - } - else if (type == "list" || type == "stringlist") - { - oleVariant.vt = VT_VARIANT | VT_ARRAY; - - SAFEARRAY *psa; - SAFEARRAYBOUND saBound; - VARIANTARG *pvargBase; - VARIANTARG *pvarg; - int i, j; - - int iCount = variant.GetCount(); - - saBound.lLbound = 0; - saBound.cElements = iCount; - - psa = SafeArrayCreate(VT_VARIANT, 1, &saBound); - if (psa == NULL) - return FALSE; - - SafeArrayAccessData(psa, (void**)&pvargBase); - - pvarg = pvargBase; - for (i = 0; i < iCount; i++) - { - // copy each string in the list of strings - wxVariant eachVariant(variant[i]); - if (!ConvertVariantToOle(eachVariant, * pvarg)) - { - // memory failure: back out and free strings alloc'ed up to - // now, and then the array itself. - pvarg = pvargBase; - for (j = 0; j < i; j++) - { - SysFreeString(pvarg->bstrVal); - pvarg++; - } - SafeArrayDestroy(psa); - return FALSE; - } - pvarg++; - } - - SafeArrayUnaccessData(psa); - - oleVariant.parray = psa; - } - else - { - oleVariant.vt = VT_NULL; - return FALSE; - } - return TRUE; -} - -#ifndef VT_TYPEMASK -#define VT_TYPEMASK 0xfff -#endif - -bool ConvertOleToVariant(const VARIANTARG& oleVariant, wxVariant& variant) -{ - switch (oleVariant.vt & VT_TYPEMASK) - { - case VT_BSTR: - { - wxString str(ConvertStringFromOle(oleVariant.bstrVal)); - variant = str; - break; - } - case VT_DATE: - { - struct tm tmTemp; - if (!TmFromOleDate(oleVariant.date, tmTemp)) - return FALSE; - - wxDate date(tmTemp.tm_yday, tmTemp.tm_mon, tmTemp.tm_year); - wxTime time(date, tmTemp.tm_hour, tmTemp.tm_min, tmTemp.tm_sec); - - variant = time; - break; - } - case VT_I4: - { - variant = (long) oleVariant.lVal; - break; - } - case VT_I2: - { - variant = (long) oleVariant.iVal; - break; - } - - case VT_BOOL: - { -#if defined(__WATCOMC__) || (defined(_MSC_VER) && (_MSC_VER <= 1000)) //GC -#ifndef HAVE_BOOL // Can't use bool operator if no native bool type - variant = (long) (oleVariant.bool != 0); -#else - variant = (bool) (oleVariant.bool != 0); -#endif -#else - variant = (bool) (oleVariant.boolVal != 0); -#endif - break; - } - case VT_R8: - { - variant = oleVariant.dblVal; - break; - } - case VT_ARRAY: - { - variant.ClearList(); - - int cDims, cElements, i; - VARIANTARG* pvdata; - - // Iterate the dimensions: number of elements is x*y*z - for (cDims = 0, cElements = 1; - cDims < oleVariant.parray->cDims; cDims ++) - cElements *= oleVariant.parray->rgsabound[cDims].cElements; - - // Get a pointer to the data - HRESULT hr = SafeArrayAccessData(oleVariant.parray, (void HUGEP* FAR*) & pvdata); - if (hr != NOERROR) - return FALSE; - // Iterate the data. - for (i = 0; i < cElements; i++) - { - VARIANTARG& oleElement = pvdata[i]; - wxVariant vElement; - if (!ConvertOleToVariant(oleElement, vElement)) - return FALSE; - - variant.Append(vElement); - } - SafeArrayUnaccessData(oleVariant.parray); - break; - } - case VT_DISPATCH: - { - variant = (void*) oleVariant.pdispVal; - break; - } - case VT_NULL: - { - variant.MakeNull(); - break; - } - case VT_EMPTY: - { - break; // Ignore Empty Variant, used only during destruction of objects - } - default: - { - wxLogError("wxAutomationObject::ConvertOleToVariant: Unknown variant value type"); - return FALSE; - } - } - return TRUE; -} - -static BSTR ConvertStringToOle(const wxString& str) -{ -/* - unsigned int len = strlen((const char*) str); - unsigned short* s = new unsigned short[len*2+2]; - unsigned int i; - memset(s, 0, len*2+2); - for (i=0; i < len; i++) - s[i*2] = str[i]; -*/ - BasicString bstr((const char*) str); - return bstr.Get(); -} - -static wxString ConvertStringFromOle(BSTR bStr) -{ - int len = SysStringLen(bStr) + 1; - char *buf = new char[len]; - int i = wcstombs( buf, bStr, len); - - wxString str(buf); - delete[] buf; - return str; -} - -// ---------------------------------------------------------------------------- -// BasicString -// ---------------------------------------------------------------------------- - -// ctor takes an ANSI string and transforms it to Unicode -BasicString::BasicString(const char *sz) -{ - // get the size of required buffer - UINT lenAnsi = strlen(sz); - #ifdef __MWERKS__ - UINT lenWide = lenAnsi * 2 ; - #else - UINT lenWide = mbstowcs(NULL, sz, lenAnsi); - #endif - - if ( lenWide > 0 ) { - m_wzBuf = new OLECHAR[lenWide + 1]; - mbstowcs(m_wzBuf, sz, lenAnsi); - m_wzBuf[lenWide] = L'\0'; - } - else { - m_wzBuf = NULL; - } -} - -// dtor frees memory -BasicString::~BasicString() -{ - delete [] m_wzBuf; -} - -///////////////////////////////////////////////////////////////////////////// -// COleDateTime class HELPERS - implementation - -BOOL OleDateFromTm(WORD wYear, WORD wMonth, WORD wDay, - WORD wHour, WORD wMinute, WORD wSecond, DATE& dtDest) -{ - // Validate year and month (ignore day of week and milliseconds) - if (wYear > 9999 || wMonth < 1 || wMonth > 12) - return FALSE; - - // Check for leap year and set the number of days in the month - BOOL bLeapYear = ((wYear & 3) == 0) && - ((wYear % 100) != 0 || (wYear % 400) == 0); - - int nDaysInMonth = - rgMonthDays[wMonth] - rgMonthDays[wMonth-1] + - ((bLeapYear && wDay == 29 && wMonth == 2) ? 1 : 0); - - // Finish validating the date - if (wDay < 1 || wDay > nDaysInMonth || - wHour > 23 || wMinute > 59 || - wSecond > 59) - { - return FALSE; - } - - // Cache the date in days and time in fractional days - long nDate; - double dblTime; - - //It is a valid date; make Jan 1, 1AD be 1 - nDate = wYear*365L + wYear/4 - wYear/100 + wYear/400 + - rgMonthDays[wMonth-1] + wDay; - - // If leap year and it's before March, subtract 1: - if (wMonth <= 2 && bLeapYear) - --nDate; - - // Offset so that 12/30/1899 is 0 - nDate -= 693959L; - - dblTime = (((long)wHour * 3600L) + // hrs in seconds - ((long)wMinute * 60L) + // mins in seconds - ((long)wSecond)) / 86400.; - - dtDest = (double) nDate + ((nDate >= 0) ? dblTime : -dblTime); - - return TRUE; -} - -BOOL TmFromOleDate(DATE dtSrc, struct tm& tmDest) -{ - // The legal range does not actually span year 0 to 9999. - if (dtSrc > MAX_DATE || dtSrc < MIN_DATE) // about year 100 to about 9999 - return FALSE; - - long nDays; // Number of days since Dec. 30, 1899 - long nDaysAbsolute; // Number of days since 1/1/0 - long nSecsInDay; // Time in seconds since midnight - long nMinutesInDay; // Minutes in day - - long n400Years; // Number of 400 year increments since 1/1/0 - long n400Century; // Century within 400 year block (0,1,2 or 3) - long n4Years; // Number of 4 year increments since 1/1/0 - long n4Day; // Day within 4 year block - // (0 is 1/1/yr1, 1460 is 12/31/yr4) - long n4Yr; // Year within 4 year block (0,1,2 or 3) - BOOL bLeap4 = TRUE; // TRUE if 4 year block includes leap year - - double dblDate = dtSrc; // tempory serial date - - // If a valid date, then this conversion should not overflow - nDays = (long)dblDate; - - // Round to the second - dblDate += ((dtSrc > 0.0) ? HALF_SECOND : -HALF_SECOND); - - nDaysAbsolute = (long)dblDate + 693959L; // Add days from 1/1/0 to 12/30/1899 - - dblDate = fabs(dblDate); - nSecsInDay = (long)((dblDate - floor(dblDate)) * 86400.); - - // Calculate the day of week (sun=1, mon=2...) - // -1 because 1/1/0 is Sat. +1 because we want 1-based - tmDest.tm_wday = (int)((nDaysAbsolute - 1) % 7L) + 1; - - // Leap years every 4 yrs except centuries not multiples of 400. - n400Years = (long)(nDaysAbsolute / 146097L); - - // Set nDaysAbsolute to day within 400-year block - nDaysAbsolute %= 146097L; - - // -1 because first century has extra day - n400Century = (long)((nDaysAbsolute - 1) / 36524L); - - // Non-leap century - if (n400Century != 0) - { - // Set nDaysAbsolute to day within century - nDaysAbsolute = (nDaysAbsolute - 1) % 36524L; - - // +1 because 1st 4 year increment has 1460 days - n4Years = (long)((nDaysAbsolute + 1) / 1461L); - - if (n4Years != 0) - n4Day = (long)((nDaysAbsolute + 1) % 1461L); - else - { - bLeap4 = FALSE; - n4Day = (long)nDaysAbsolute; - } - } - else - { - // Leap century - not special case! - n4Years = (long)(nDaysAbsolute / 1461L); - n4Day = (long)(nDaysAbsolute % 1461L); - } - - if (bLeap4) - { - // -1 because first year has 366 days - n4Yr = (n4Day - 1) / 365; - - if (n4Yr != 0) - n4Day = (n4Day - 1) % 365; - } - else - { - n4Yr = n4Day / 365; - n4Day %= 365; - } - - // n4Day is now 0-based day of year. Save 1-based day of year, year number - tmDest.tm_yday = (int)n4Day + 1; - tmDest.tm_year = n400Years * 400 + n400Century * 100 + n4Years * 4 + n4Yr; - - // Handle leap year: before, on, and after Feb. 29. - if (n4Yr == 0 && bLeap4) - { - // Leap Year - if (n4Day == 59) - { - /* Feb. 29 */ - tmDest.tm_mon = 2; - tmDest.tm_mday = 29; - goto DoTime; - } - - // Pretend it's not a leap year for month/day comp. - if (n4Day >= 60) - --n4Day; - } - - // Make n4DaY a 1-based day of non-leap year and compute - // month/day for everything but Feb. 29. - ++n4Day; - - // Month number always >= n/32, so save some loop time */ - for (tmDest.tm_mon = (n4Day >> 5) + 1; - n4Day > rgMonthDays[tmDest.tm_mon]; tmDest.tm_mon++); - - tmDest.tm_mday = (int)(n4Day - rgMonthDays[tmDest.tm_mon-1]); - -DoTime: - if (nSecsInDay == 0) - tmDest.tm_hour = tmDest.tm_min = tmDest.tm_sec = 0; - else - { - tmDest.tm_sec = (int)nSecsInDay % 60L; - nMinutesInDay = nSecsInDay / 60L; - tmDest.tm_min = (int)nMinutesInDay % 60; - tmDest.tm_hour = (int)nMinutesInDay / 60; - } - - return TRUE; -} - -void TmConvertToStandardFormat(struct tm& tmSrc) -{ - // Convert afx internal tm to format expected by runtimes (_tcsftime, etc) - tmSrc.tm_year -= 1900; // year is based on 1900 - tmSrc.tm_mon -= 1; // month of year is 0-based - tmSrc.tm_wday -= 1; // day of week is 0-based - tmSrc.tm_yday -= 1; // day of year is 0-based -} - -double DoubleFromDate(DATE dt) -{ - // No problem if positive - if (dt >= 0) - return dt; - - // If negative, must convert since negative dates not continuous - // (examples: -1.25 to -.75, -1.50 to -.50, -1.75 to -.25) - double temp = ceil(dt); - return temp - (dt - temp); -} - -DATE DateFromDouble(double dbl) -{ - // No problem if positive - if (dbl >= 0) - return dbl; - - // If negative, must convert since negative dates not continuous - // (examples: -.75 to -1.25, -.50 to -1.50, -.25 to -1.75) - double temp = floor(dbl); // dbl is now whole part - return temp + (temp - dbl); -} - -/* - * ClearVariant - * - * Zeros a variant structure without regard to current contents - */ -static void ClearVariant(VARIANTARG *pvarg) -{ - pvarg->vt = VT_EMPTY; - pvarg->wReserved1 = 0; - pvarg->wReserved2 = 0; - pvarg->wReserved3 = 0; - pvarg->lVal = 0; -} - -/* - * ReleaseVariant - * - * Clears a particular variant structure and releases any external objects - * or memory contained in the variant. Supports the data types listed above. - */ -static void ReleaseVariant(VARIANTARG *pvarg) -{ - VARTYPE vt; - VARIANTARG _huge *pvargArray; - long lLBound, lUBound, l; - - vt = pvarg->vt & 0xfff; // mask off flags - - // check if an array. If so, free its contents, then the array itself. - if (V_ISARRAY(pvarg)) - { - // variant arrays are all this routine currently knows about. Since a - // variant can contain anything (even other arrays), call ourselves - // recursively. - if (vt == VT_VARIANT) - { - SafeArrayGetLBound(pvarg->parray, 1, &lLBound); - SafeArrayGetUBound(pvarg->parray, 1, &lUBound); - - if (lUBound > lLBound) - { - lUBound -= lLBound; - - SafeArrayAccessData(pvarg->parray, (void**)&pvargArray); - - for (l = 0; l < lUBound; l++) - { - ReleaseVariant(pvargArray); - pvargArray++; - } - - SafeArrayUnaccessData(pvarg->parray); - } - } - else - { - wxLogWarning("ReleaseVariant: Array contains non-variant type"); - } - - // Free the array itself. - SafeArrayDestroy(pvarg->parray); - } - else - { - switch (vt) - { - case VT_DISPATCH: - if (pvarg->pdispVal) - pvarg->pdispVal->Release(); - break; - - case VT_BSTR: - SysFreeString(pvarg->bstrVal); - break; - - case VT_I2: - case VT_BOOL: - case VT_R8: - case VT_ERROR: // to avoid erroring on an error return from Excel - // no work for these types - break; - - default: - wxLogWarning("ReleaseVariant: Unknown type"); - break; - } - } - - ClearVariant(pvarg); -} - -#if 0 - -void ShowException(LPOLESTR szMember, HRESULT hr, EXCEPINFO *pexcep, unsigned int uiArgErr) -{ - TCHAR szBuf[512]; - - switch (GetScode(hr)) - { - case DISP_E_UNKNOWNNAME: - wsprintf(szBuf, L"%s: Unknown name or named argument.", szMember); - break; - - case DISP_E_BADPARAMCOUNT: - wsprintf(szBuf, L"%s: Incorrect number of arguments.", szMember); - break; - - case DISP_E_EXCEPTION: - wsprintf(szBuf, L"%s: Error %d: ", szMember, pexcep->wCode); - if (pexcep->bstrDescription != NULL) - lstrcat(szBuf, pexcep->bstrDescription); - else - lstrcat(szBuf, L"<>"); - break; - - case DISP_E_MEMBERNOTFOUND: - wsprintf(szBuf, L"%s: method or property not found.", szMember); - break; - - case DISP_E_OVERFLOW: - wsprintf(szBuf, L"%s: Overflow while coercing argument values.", szMember); - break; - - case DISP_E_NONAMEDARGS: - wsprintf(szBuf, L"%s: Object implementation does not support named arguments.", - szMember); - break; - - case DISP_E_UNKNOWNLCID: - wsprintf(szBuf, L"%s: The locale ID is unknown.", szMember); - break; - - case DISP_E_PARAMNOTOPTIONAL: - wsprintf(szBuf, L"%s: Missing a required parameter.", szMember); - break; - - case DISP_E_PARAMNOTFOUND: - wsprintf(szBuf, L"%s: Argument not found, argument %d.", szMember, uiArgErr); - break; - - case DISP_E_TYPEMISMATCH: - wsprintf(szBuf, L"%s: Type mismatch, argument %d.", szMember, uiArgErr); - break; - - default: - wsprintf(szBuf, L"%s: Unknown error occured.", szMember); - break; - } - - wxLogWarning(szBuf); -} - -#endif - diff --git a/src/msw/ole/dataobj.cpp b/src/msw/ole/dataobj.cpp deleted file mode 100644 index 9beda80895..0000000000 --- a/src/msw/ole/dataobj.cpp +++ /dev/null @@ -1,499 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/ole/dataobj.cpp -// Purpose: implementation of wx[I]DataObject class -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.05.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "dataobj.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) - #pragma hdrstop -#endif - -#include "wx/defs.h" - -#if defined(__WIN32__) && !defined(__GNUWIN32__) - -#include "wx/log.h" -#include "wx/dataobj.h" - -#include -#include - -#ifndef __WIN32__ - #include - #include -#endif - -#include "wx/msw/ole/oleutils.h" - -// ---------------------------------------------------------------------------- -// functions -// ---------------------------------------------------------------------------- - -static const char *GetTymedName(DWORD tymed); - -// ---------------------------------------------------------------------------- -// wxIEnumFORMATETC interface implementation -// ---------------------------------------------------------------------------- -class wxIEnumFORMATETC : public IEnumFORMATETC -{ -public: - wxIEnumFORMATETC(CLIPFORMAT cf); - - DECLARE_IUNKNOWN_METHODS; - - // IEnumFORMATETC - STDMETHODIMP Next(ULONG celt, FORMATETC *rgelt, ULONG *pceltFetched); - STDMETHODIMP Skip(ULONG celt); - STDMETHODIMP Reset(); - STDMETHODIMP Clone(IEnumFORMATETC **ppenum); - -private: - FORMATETC m_format; // (unique @@@) format we can provide data in - ULONG m_nCurrent; // current enum position (currently either 0 or 1) -}; - -// ---------------------------------------------------------------------------- -// wxIDataObject implementation of IDataObject interface -// ---------------------------------------------------------------------------- -class wxIDataObject : public IDataObject -{ -public: - wxIDataObject(wxDataObject *pDataObject); - - DECLARE_IUNKNOWN_METHODS; - - // IDataObject - STDMETHODIMP GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium); - STDMETHODIMP GetDataHere(FORMATETC *pformatetc, STGMEDIUM *pmedium); - STDMETHODIMP QueryGetData(FORMATETC *pformatetc); - STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *In, FORMATETC *pOut); - STDMETHODIMP SetData(FORMATETC *pfetc, STGMEDIUM *pmedium, BOOL fRelease); - STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenumFEtc); - STDMETHODIMP DAdvise(FORMATETC *pfetc, DWORD ad, IAdviseSink *p, DWORD *pdw); - STDMETHODIMP DUnadvise(DWORD dwConnection); - STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenumAdvise); - -private: - wxDataObject *m_pDataObject; // pointer to C++ class we belong to -}; - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxDataFormat -// ---------------------------------------------------------------------------- - -void wxDataFormat::SetId(const wxChar *format) -{ - m_format = ::RegisterClipboardFormat(format); - if ( !m_format ) - { - wxLogError(_("Couldn't register clipboard format '%s'."), format); - } -} - -wxString wxDataFormat::GetId() const -{ - static const int max = 256; - - wxString s; - - wxCHECK_MSG( !IsStandard(), s, - _T("name of predefined format cannot be retrieved") ); - - int len = ::GetClipboardFormatName(m_format, s.GetWriteBuf(max), max); - s.UngetWriteBuf(); - - if ( !len ) - { - wxLogError(_("The clipboard format '%d' doesn't exist."), m_format); - } - - return s; -} - -// ---------------------------------------------------------------------------- -// wxIEnumFORMATETC -// ---------------------------------------------------------------------------- - -BEGIN_IID_TABLE(wxIEnumFORMATETC) - ADD_IID(Unknown) - ADD_IID(EnumFORMATETC) -END_IID_TABLE; - -IMPLEMENT_IUNKNOWN_METHODS(wxIEnumFORMATETC) - -wxIEnumFORMATETC::wxIEnumFORMATETC(CLIPFORMAT cf) -{ - m_format.cfFormat = cf; - m_format.ptd = NULL; - m_format.dwAspect = DVASPECT_CONTENT; - m_format.lindex = -1; - m_format.tymed = TYMED_HGLOBAL; - m_cRef = 0; - m_nCurrent = 0; -} - -STDMETHODIMP wxIEnumFORMATETC::Next(ULONG celt, - FORMATETC *rgelt, - ULONG *pceltFetched) -{ - wxLogTrace("wxIEnumFORMATETC::Next"); - - if ( celt > 1 ) - return S_FALSE; - - if ( m_nCurrent == 0 ) { - *rgelt = m_format; - m_nCurrent++; - - return S_OK; - } - else - return S_FALSE; -} - -STDMETHODIMP wxIEnumFORMATETC::Skip(ULONG celt) -{ - wxLogTrace("wxIEnumFORMATETC::Skip"); - - if ( m_nCurrent == 0 ) - m_nCurrent++; - - return S_FALSE; -} - -STDMETHODIMP wxIEnumFORMATETC::Reset() -{ - wxLogTrace("wxIEnumFORMATETC::Reset"); - - m_nCurrent = 0; - - return S_OK; -} - -STDMETHODIMP wxIEnumFORMATETC::Clone(IEnumFORMATETC **ppenum) -{ - wxLogTrace("wxIEnumFORMATETC::Clone"); - - wxIEnumFORMATETC *pNew = new wxIEnumFORMATETC(m_format.cfFormat); - pNew->AddRef(); - *ppenum = pNew; - - return S_OK; -} - -// ---------------------------------------------------------------------------- -// wxIDataObject -// ---------------------------------------------------------------------------- - -BEGIN_IID_TABLE(wxIDataObject) - ADD_IID(Unknown) - ADD_IID(DataObject) -END_IID_TABLE; - -IMPLEMENT_IUNKNOWN_METHODS(wxIDataObject) - -wxIDataObject::wxIDataObject(wxDataObject *pDataObject) -{ - m_cRef = 0; - m_pDataObject = pDataObject; -} - -// get data functions -STDMETHODIMP wxIDataObject::GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium) -{ - wxLogTrace("wxIDataObject::GetData"); - - // is data is in our format? - HRESULT hr = QueryGetData(pformatetcIn); - if ( FAILED(hr) ) - return hr; - - // alloc memory - HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, - m_pDataObject->GetDataSize()); - if ( hGlobal == NULL ) { - wxLogLastError("GlobalAlloc"); - return E_OUTOFMEMORY; - } - - // copy data - pmedium->tymed = TYMED_HGLOBAL; - pmedium->hGlobal = hGlobal; - pmedium->pUnkForRelease = NULL; - - hr = GetDataHere(pformatetcIn, pmedium); - if ( FAILED(hr) ) { - GlobalFree(hGlobal); - return hr; - } - - return S_OK; -} - -STDMETHODIMP wxIDataObject::GetDataHere(FORMATETC *pformatetc, - STGMEDIUM *pmedium) -{ - wxLogTrace("wxIDataObject::GetDataHere"); - - // put data in caller provided medium - if ( pmedium->tymed != TYMED_HGLOBAL ) - return DV_E_TYMED; - - // copy data - void *pBuf = GlobalLock(pmedium->hGlobal); - if ( pBuf == NULL ) { - wxLogLastError("GlobalLock"); - return E_OUTOFMEMORY; - } - - m_pDataObject->GetDataHere(pBuf); - - GlobalUnlock(pmedium->hGlobal); - - return S_OK; -} - -// set data functions (not implemented) -STDMETHODIMP wxIDataObject::SetData(FORMATETC *pformatetc, - STGMEDIUM *pmedium, - BOOL fRelease) -{ - wxLogTrace("wxIDataObject::SetData"); - return E_NOTIMPL; -} - -// information functions -STDMETHODIMP wxIDataObject::QueryGetData(FORMATETC *pformatetc) -{ - // do we accept data in this format? - if ( pformatetc == NULL ) { - wxLogTrace("wxIDataObject::QueryGetData: invalid ptr."); - return E_INVALIDARG; - } - - // the only one allowed by current COM implementation - if ( pformatetc->lindex != -1 ) { - wxLogTrace("wxIDataObject::QueryGetData: bad lindex %d", - pformatetc->lindex); - return DV_E_LINDEX; - } - - // we don't support anything other (THUMBNAIL, ICON, DOCPRINT...) - if ( pformatetc->dwAspect != DVASPECT_CONTENT ) { - wxLogTrace("wxIDataObject::QueryGetData: bad dwAspect %d", - pformatetc->dwAspect); - return DV_E_DVASPECT; - } - - // @@ we only transfer data by global memory (bad for large amounts of it!) - if ( !(pformatetc->tymed & TYMED_HGLOBAL) ) { - wxLogTrace("wxIDataObject::QueryGetData: %s != TYMED_HGLOBAL.", - GetTymedName(pformatetc->tymed)); - return DV_E_TYMED; - } - - // and now check the type of data requested - if ( m_pDataObject->IsSupportedFormat((wxDataFormatId)pformatetc->cfFormat) ) { - wxLogTrace("wxIDataObject::QueryGetData: %s ok", - wxDataObject::GetFormatName((wxDataFormatId)pformatetc->cfFormat)); - return S_OK; - } - else { - wxLogTrace("wxIDataObject::QueryGetData: %s unsupported", - wxDataObject::GetFormatName((wxDataFormatId)pformatetc->cfFormat)); - return DV_E_FORMATETC; - } -} - -STDMETHODIMP wxIDataObject::GetCanonicalFormatEtc(FORMATETC *pFormatetcIn, - FORMATETC *pFormatetcOut) -{ - wxLogTrace("wxIDataObject::GetCanonicalFormatEtc"); - - // @@ implementation is trivial, we might want something better here - if ( pFormatetcOut != NULL ) - pFormatetcOut->ptd = NULL; - return DATA_S_SAMEFORMATETC; -} - -STDMETHODIMP wxIDataObject::EnumFormatEtc(DWORD dwDirection, - IEnumFORMATETC **ppenumFormatEtc) -{ - wxLogTrace("wxIDataObject::EnumFormatEtc"); - - if ( dwDirection == DATADIR_SET ) { - // we don't allow setting of data anyhow - return E_NOTIMPL; - } - - wxIEnumFORMATETC *pEnum = - new wxIEnumFORMATETC(m_pDataObject->GetPreferredFormat()); - pEnum->AddRef(); - *ppenumFormatEtc = pEnum; - - return S_OK; -} - -// advise sink functions (not implemented) -STDMETHODIMP wxIDataObject::DAdvise(FORMATETC *pformatetc, - DWORD advf, - IAdviseSink *pAdvSink, - DWORD *pdwConnection) -{ - return OLE_E_ADVISENOTSUPPORTED; -} - -STDMETHODIMP wxIDataObject::DUnadvise(DWORD dwConnection) -{ - return OLE_E_ADVISENOTSUPPORTED; -} - -STDMETHODIMP wxIDataObject::EnumDAdvise(IEnumSTATDATA **ppenumAdvise) -{ - return OLE_E_ADVISENOTSUPPORTED; -} - -// ---------------------------------------------------------------------------- -// wxDataObject -// ---------------------------------------------------------------------------- - -wxDataObject::wxDataObject() -{ - m_pIDataObject = new wxIDataObject(this); - m_pIDataObject->AddRef(); -} - -wxDataObject::~wxDataObject() -{ - m_pIDataObject->Release(); -} - -const char *wxDataObject::GetFormatName(wxDataFormat format) -{ -#ifdef __WXDEBUG__ - // case 'xxx' is not a valid value for switch of enum 'wxDataFormat' - #ifdef __VISUALC__ - #pragma warning(disable:4063) - #endif // VC++ - - static char s_szBuf[128]; - switch ( format ) { - case CF_TEXT: return "CF_TEXT"; - case CF_BITMAP: return "CF_BITMAP"; - case CF_METAFILEPICT: return "CF_METAFILEPICT"; - case CF_SYLK: return "CF_SYLK"; - case CF_DIF: return "CF_DIF"; - case CF_TIFF: return "CF_TIFF"; - case CF_OEMTEXT: return "CF_OEMTEXT"; - case CF_DIB: return "CF_DIB"; - case CF_PALETTE: return "CF_PALETTE"; - case CF_PENDATA: return "CF_PENDATA"; - case CF_RIFF: return "CF_RIFF"; - case CF_WAVE: return "CF_WAVE"; - case CF_UNICODETEXT: return "CF_UNICODETEXT"; - case CF_ENHMETAFILE: return "CF_ENHMETAFILE"; - case CF_HDROP: return "CF_HDROP"; - case CF_LOCALE: return "CF_LOCALE"; - default: - sprintf(s_szBuf, "clipboard format %d (unknown)", format); - return s_szBuf; - } - - #ifdef __VISUALC__ - #pragma warning(default:4063) - #endif // VC++ - -#else // !Debug - return ""; -#endif // Debug -} - -// ---------------------------------------------------------------------------- -// wxPrivateDataObject -// ---------------------------------------------------------------------------- - -wxPrivateDataObject::wxPrivateDataObject() -{ - m_size = 0; - m_data = NULL; -} - -void wxPrivateDataObject::Free() -{ - if ( m_data ) - free(m_data); -} - -void wxPrivateDataObject::SetData( const void *data, size_t size ) -{ - Free(); - - m_size = size; - m_data = malloc(size); - - memcpy( m_data, data, size ); -} - -void wxPrivateDataObject::WriteData( void *dest ) const -{ - WriteData( m_data, dest ); -} - -size_t wxPrivateDataObject::GetSize() const -{ - return m_size; -} - -void wxPrivateDataObject::WriteData( const void *data, void *dest ) const -{ - memcpy( dest, data, GetSize() ); -} - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- -static const char *GetTymedName(DWORD tymed) -{ - static char s_szBuf[128]; - switch ( tymed ) { - case TYMED_HGLOBAL: return "TYMED_HGLOBAL"; - case TYMED_FILE: return "TYMED_FILE"; - case TYMED_ISTREAM: return "TYMED_ISTREAM"; - case TYMED_ISTORAGE: return "TYMED_ISTORAGE"; - case TYMED_GDI: return "TYMED_GDI"; - case TYMED_MFPICT: return "TYMED_MFPICT"; - case TYMED_ENHMF: return "TYMED_ENHMF"; - default: - sprintf(s_szBuf, "type of media format %d (unknown)", tymed); - return s_szBuf; - } -} - -// TODO: OLE parts of wxBitmap/File/MetafileDataObject - -#endif - diff --git a/src/msw/ole/dropsrc.cpp b/src/msw/ole/dropsrc.cpp deleted file mode 100644 index a36ac856da..0000000000 --- a/src/msw/ole/dropsrc.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/ole/dropsrc.cpp -// Purpose: implementation of wxIDropSource and wxDropSource -// Author: Vadim Zeitlin -// Modified by: -// Created: 10.05.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "dropsrc.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) - #pragma hdrstop -#endif - -#include "wx/setup.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/log.h" -#include "wx/dataobj.h" -#include "wx/msw/ole/dropsrc.h" - -#include - -#ifndef __WIN32__ - #include - #include -#endif - -#include - -#include "wx/msw/ole/oleutils.h" - -// ---------------------------------------------------------------------------- -// wxIDropSource implementation of IDropSource interface -// ---------------------------------------------------------------------------- - -class wxIDropSource : public IDropSource -{ -public: - wxIDropSource(wxDropSource *pDropSource); - - DECLARE_IUNKNOWN_METHODS; - - // IDropSource - STDMETHODIMP QueryContinueDrag(BOOL fEscapePressed, DWORD grfKeyState); - STDMETHODIMP GiveFeedback(DWORD dwEffect); - -private: - DWORD m_grfInitKeyState; // button which started the d&d operation - wxDropSource *m_pDropSource; // pointer to C++ class we belong to -}; - -// ============================================================================ -// Implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxIDropSource implementation -// ---------------------------------------------------------------------------- -BEGIN_IID_TABLE(wxIDropSource) - ADD_IID(Unknown) - ADD_IID(DropSource) -END_IID_TABLE; - -IMPLEMENT_IUNKNOWN_METHODS(wxIDropSource) - -wxIDropSource::wxIDropSource(wxDropSource *pDropSource) -{ - wxASSERT( pDropSource != NULL ); - - m_pDropSource = pDropSource; - m_grfInitKeyState = 0; - m_cRef = 0; -} - -// Name : wxIDropSource::QueryContinueDrag -// Purpose : decide if drag operation must be continued or not -// Returns : HRESULT: S_OK if we should continue -// DRAGDROP_S_DROP to drop right now -// DRAGDROP_S_CANCEL to cancel everything -// Params : [in] BOOL fEscapePressed pressed since last call? -// [in] DWORD grfKeyState mask containing state of kbd keys -// Notes : as there is no reasonably simple portable way to implement this -// function, we currently don't give the possibility to override the -// default behaviour implemented here -STDMETHODIMP wxIDropSource::QueryContinueDrag(BOOL fEscapePressed, - DWORD grfKeyState) -{ - if ( fEscapePressed ) - return DRAGDROP_S_CANCEL; - - // initialize ourself with the drag begin button - if ( m_grfInitKeyState == 0 ) { - m_grfInitKeyState = grfKeyState & (MK_LBUTTON | MK_RBUTTON | MK_MBUTTON); - } - - if ( !(grfKeyState & m_grfInitKeyState) ) { - // button which started d&d released, go! - return DRAGDROP_S_DROP; - } - - return S_OK; -} - -// Name : wxIDropSource::GiveFeedback -// Purpose : give UI feedback according to current state of operation -// Returns : STDMETHODIMP -// Params : [in] DWORD dwEffect - what would happen if we dropped now -// Notes : default implementation is ok in more than 99% of cases -STDMETHODIMP wxIDropSource::GiveFeedback(DWORD dwEffect) -{ - wxDragResult effect; - if ( dwEffect & DROPEFFECT_COPY ) - effect = wxDragCopy; - else if ( dwEffect & DROPEFFECT_MOVE ) - effect = wxDragMove; - else - effect = wxDragNone; - - if ( m_pDropSource->GiveFeedback(effect, - (dwEffect & DROPEFFECT_SCROLL) != 0 ) ) - return S_OK; - - return DRAGDROP_S_USEDEFAULTCURSORS; -} - -// ---------------------------------------------------------------------------- -// wxDropSource implementation -// ---------------------------------------------------------------------------- - -// ctors - -// common part of all ctors -void wxDropSource::Init() -{ - m_pIDropSource = new wxIDropSource(this); - m_pIDropSource->AddRef(); -} - -wxDropSource::wxDropSource(wxWindow* WXUNUSED(win)) -{ - Init(); - m_pData = NULL; -} - -wxDropSource::wxDropSource(wxDataObject& data, wxWindow* WXUNUSED(win)) -{ - Init(); - SetData(data); -} - -void wxDropSource::SetData(wxDataObject& data) -{ - m_pData = &data; -} - -wxDropSource::~wxDropSource() -{ - m_pIDropSource->Release(); -} - -// Name : DoDragDrop -// Purpose : start drag and drop operation -// Returns : wxDragResult - the code of performed operation -// Params : [in] bool bAllowMove: if false, only copy is allowed -// Notes : you must call SetData() before if you had used def ctor -wxDragResult wxDropSource::DoDragDrop(bool bAllowMove) -{ - wxCHECK_MSG( m_pData != NULL, wxDragNone, "No data in wxDropSource!" ); - - DWORD dwEffect; - HRESULT hr = ::DoDragDrop(m_pData->GetInterface(), - m_pIDropSource, - bAllowMove ? DROPEFFECT_COPY | DROPEFFECT_MOVE - : DROPEFFECT_COPY, - &dwEffect); - - if ( hr == DRAGDROP_S_CANCEL ) { - return wxDragCancel; - } - else if ( hr == DRAGDROP_S_DROP ) { - if ( dwEffect & DROPEFFECT_COPY ) { - return wxDragCopy; - } - else if ( dwEffect & DROPEFFECT_MOVE ) { - // consistency check: normally, we shouldn't get "move" at all - // here if !bAllowMove, but in practice it does happen quite often - if ( bAllowMove ) - return wxDragMove; - else - return wxDragCopy; - } - else { - // not copy or move - return wxDragNone; - } - } - else { - if ( FAILED(hr) ) { - wxLogApiError("DoDragDrop", hr); - wxLogError("Drag & drop operation failed."); - } - else { - wxLogDebug("Unexpected success return code %08lx from DoDragDrop.", hr); - } - - return wxDragError; - } -} - -// Name : wxDropSource::GiveFeedback -// Purpose : visually inform the user about d&d operation state -// Returns : bool: true if we do all ourselves or false for default feedback -// Params : [in] DragResult effect - what would happen if we dropped now -// [in] bool bScrolling - true if target is scrolling -// Notes : here we just leave this stuff for default implementation -bool wxDropSource::GiveFeedback(wxDragResult effect, bool bScrolling) -{ - return FALSE; -} - -#endif //USE_DRAG_AND_DROP diff --git a/src/msw/ole/droptgt.cpp b/src/msw/ole/droptgt.cpp deleted file mode 100644 index 0bb7f00ad4..0000000000 --- a/src/msw/ole/droptgt.cpp +++ /dev/null @@ -1,420 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/droptgt.cpp -// Purpose: wxDropTarget implementation -// Author: Vadim Zeitlin -// Modified by: -// Created: -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// Declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ -#pragma implementation "droptgt.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#include "wx/setup.h" - -#if wxUSE_DRAG_AND_DROP - -#include "wx/log.h" - -#ifdef __WIN32__ - #ifndef __GNUWIN32__ - #include // for DROPFILES structure - #endif -#else - #include -#endif - -#include "wx/dataobj.h" -#include "wx/msw/ole/droptgt.h" - -#ifndef __WIN32__ - #include - #include -#endif - -#include "wx/msw/ole/oleutils.h" - -// ---------------------------------------------------------------------------- -// IDropTarget interface: forward all interesting things to wxDropTarget -// (the name is unfortunate, but wx_I_DropTarget is not at all the same thing -// as wxDropTarget which is 'public' class, while this one is private) -// ---------------------------------------------------------------------------- - -class wxIDropTarget : public IDropTarget -{ -public: - wxIDropTarget(wxDropTarget *p); - ~wxIDropTarget(); - - // IDropTarget methods - STDMETHODIMP DragEnter(LPDATAOBJECT, DWORD, POINTL, LPDWORD); - STDMETHODIMP DragOver(DWORD, POINTL, LPDWORD); - STDMETHODIMP DragLeave(void); - STDMETHODIMP Drop(LPDATAOBJECT, DWORD, POINTL, LPDWORD); - - // we assume that if QueryGetData() returns S_OK, than we can really get data - // in this format, so we remember here the format for which QueryGetData() - // succeeded - void SetSupportedFormat(wxDataFormat cfFormat) { m_cfFormat = cfFormat; } - - DECLARE_IUNKNOWN_METHODS; - -protected: - IDataObject *m_pIDataObject; // !NULL between DragEnter and DragLeave/Drop - wxDropTarget *m_pTarget; // the real target (we're just a proxy) - - wxDataFormat m_cfFormat; // the format in which to ask for data - -private: - static inline DWORD GetDropEffect(DWORD flags); -}; - -// ============================================================================ -// wxIDropTarget implementation -// ============================================================================ - -// Name : static wxDropTarget::GetDropEffect -// Purpose : determine the drop operation from keyboard/mouse state. -// Returns : DWORD combined from DROPEFFECT_xxx constants -// Params : [in] DWORD flags kbd & mouse flags as passed to -// IDropTarget methods -// Notes : We do "move" normally and "copy" if is pressed, -// which is the standard behaviour (currently there is no -// way to redefine it) -DWORD wxIDropTarget::GetDropEffect(DWORD flags) -{ - return flags & MK_CONTROL ? DROPEFFECT_COPY : DROPEFFECT_MOVE; -} - -wxIDropTarget::wxIDropTarget(wxDropTarget *pTarget) -{ - m_cRef = 0; - m_pTarget = pTarget; - m_cfFormat = wxDF_INVALID; - m_pIDataObject = NULL; -} - -wxIDropTarget::~wxIDropTarget() -{ -} - -BEGIN_IID_TABLE(wxIDropTarget) - ADD_IID(Unknown) - ADD_IID(DropTarget) -END_IID_TABLE; - -IMPLEMENT_IUNKNOWN_METHODS(wxIDropTarget) - -// Name : wxIDropTarget::DragEnter -// Purpose : Called when the mouse enters the window (dragging something) -// Returns : S_OK -// Params : [in] IDataObject *pIDataSource : source data -// [in] DWORD grfKeyState : kbd & mouse state -// [in] POINTL pt : mouse coordinates -// [out]DWORD *pdwEffect : effect flag -// Notes : -STDMETHODIMP wxIDropTarget::DragEnter(IDataObject *pIDataSource, - DWORD grfKeyState, - POINTL pt, - DWORD *pdwEffect) -{ - wxLogDebug("IDropTarget::DragEnter"); - - wxASSERT( m_pIDataObject == NULL ); - - if ( !m_pTarget->IsAcceptedData(pIDataSource) ) { - // we don't accept this kind of data - *pdwEffect = DROPEFFECT_NONE; - - return S_OK; - } - - // TODO should check the point also? - - *pdwEffect = GetDropEffect(grfKeyState); - - // get hold of the data object - m_pIDataObject = pIDataSource; - m_pIDataObject->AddRef(); - - // give some visual feedback - m_pTarget->OnEnter(); - - return S_OK; -} - -// Name : wxIDropTarget::DragOver -// Purpose : Indicates that the mouse was moved inside the window represented -// by this drop target. -// Returns : S_OK -// Params : [in] DWORD grfKeyState kbd & mouse state -// [in] POINTL pt mouse coordinates -// [out]LPDWORD pdwEffect effect flag -// Notes : We're called on every WM_MOUSEMOVE, so this function should be -// very efficient. -STDMETHODIMP wxIDropTarget::DragOver(DWORD grfKeyState, - POINTL pt, - LPDWORD pdwEffect) -{ - // there are too many of them... wxLogDebug("IDropTarget::DragOver"); - - *pdwEffect = m_pIDataObject == NULL ? DROPEFFECT_NONE - : GetDropEffect(grfKeyState); - return S_OK; -} - -// Name : wxIDropTarget::DragLeave -// Purpose : Informs the drop target that the operation has left its window. -// Returns : S_OK -// Notes : good place to do any clean-up -STDMETHODIMP wxIDropTarget::DragLeave() -{ - wxLogDebug("IDropTarget::DragLeave"); - - // remove the UI feedback - m_pTarget->OnLeave(); - - // release the held object - RELEASE_AND_NULL(m_pIDataObject); - - return S_OK; -} - -// Name : wxIDropTarget::Drop -// Purpose : Instructs the drop target to paste data that was just now -// dropped on it. -// Returns : S_OK -// Params : [in] IDataObject *pIDataSource the data to paste -// [in] DWORD grfKeyState kbd & mouse state -// [in] POINTL pt where the drop occured? -// [ouy]DWORD *pdwEffect operation effect -// Notes : -STDMETHODIMP wxIDropTarget::Drop(IDataObject *pIDataSource, - DWORD grfKeyState, - POINTL pt, - DWORD *pdwEffect) -{ - wxLogDebug("IDropTarget::Drop"); - - // TODO I don't know why there is this parameter, but so far I assume - // that it's the same we've already got in DragEnter - wxASSERT( m_pIDataObject == pIDataSource ); - - STGMEDIUM stm; - *pdwEffect = DROPEFFECT_NONE; - - // should be set by SetSupportedFormat() call - wxASSERT( m_cfFormat != wxDF_INVALID ); - - FORMATETC fmtMemory; - fmtMemory.cfFormat = m_cfFormat; - fmtMemory.ptd = NULL; - fmtMemory.dwAspect = DVASPECT_CONTENT; - fmtMemory.lindex = -1; - fmtMemory.tymed = TYMED_HGLOBAL; // TODO to add other media - - HRESULT hr = pIDataSource->GetData(&fmtMemory, &stm); - if ( SUCCEEDED(hr) ) { - if ( stm.hGlobal != NULL ) { - if ( m_pTarget->OnDrop(pt.x, pt.y, GlobalLock(stm.hGlobal)) ) - *pdwEffect = GetDropEffect(grfKeyState); - //else: DROPEFFECT_NONE - - GlobalUnlock(stm.hGlobal); - ReleaseStgMedium(&stm); - } - } - else - { - // wxLogApiError("GetData", hr); - } - - // release the held object - RELEASE_AND_NULL(m_pIDataObject); - - return S_OK; -} - -// ============================================================================ -// wxDropTarget implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// ctor/dtor -// ---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ - // create an IDropTarget implementation which will notify us about - // d&d operations. - m_pIDropTarget = new wxIDropTarget(this); - m_pIDropTarget->AddRef(); -} - -wxDropTarget::~wxDropTarget() -{ - ReleaseInterface(m_pIDropTarget); -} - -// ---------------------------------------------------------------------------- -// [un]register drop handler -// ---------------------------------------------------------------------------- - -bool wxDropTarget::Register(WXHWND hwnd) -{ - HRESULT hr = ::CoLockObjectExternal(m_pIDropTarget, TRUE, FALSE); - if ( FAILED(hr) ) { - wxLogApiError("CoLockObjectExternal", hr); - return FALSE; - } - - hr = ::RegisterDragDrop((HWND) hwnd, m_pIDropTarget); - if ( FAILED(hr) ) { - ::CoLockObjectExternal(m_pIDropTarget, FALSE, FALSE); - - wxLogApiError("RegisterDragDrop", hr); - return FALSE; - } - - return TRUE; -} - -void wxDropTarget::Revoke(WXHWND hwnd) -{ - HRESULT hr = ::RevokeDragDrop((HWND) hwnd); - - if ( FAILED(hr) ) { - wxLogApiError("RevokeDragDrop", hr); - } - - ::CoLockObjectExternal(m_pIDropTarget, FALSE, TRUE); -} - -// ---------------------------------------------------------------------------- -// determine if we accept data of this type -// ---------------------------------------------------------------------------- -bool wxDropTarget::IsAcceptedData(IDataObject *pIDataSource) const -{ - // this strucutre describes a data of any type (first field will be - // changing) being passed through global memory block. - static FORMATETC s_fmtMemory = { - 0, - NULL, - DVASPECT_CONTENT, - -1, - TYMED_HGLOBAL - }; - - // cycle thorugh all supported formats - for ( size_t n = 0; n < GetFormatCount(); n++ ) { - s_fmtMemory.cfFormat = GetFormat(n); - // NB: don't use SUCCEEDED macro here: QueryGetData returns 1 (whatever it - // means) for file drag and drop - if ( pIDataSource->QueryGetData(&s_fmtMemory) == S_OK ) { - // remember this format: we'll later ask for data in it - m_pIDropTarget->SetSupportedFormat((unsigned int)s_fmtMemory.cfFormat); - return TRUE; - } - } - - return FALSE; -} - -// ============================================================================ -// wxTextDropTarget -// ============================================================================ - -bool wxTextDropTarget::OnDrop(long x, long y, const void *pData) -{ - return OnDropText(x, y, (const char *)pData); -} - -size_t wxTextDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxTextDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_TEXT; -} - -// ============================================================================ -// wxFileDropTarget -// ============================================================================ - -bool wxFileDropTarget::OnDrop(long x, long y, const void *pData) -{ - // the documentation states that the first member of DROPFILES structure - // is a "DWORD offset of double NUL terminated file list". What they mean by - // this (I wonder if you see it immediately) is that the list starts at - // ((char *)&(pDropFiles.pFiles)) + pDropFiles.pFiles. We're also advised to - // use DragQueryFile to work with this structure, but not told where and how - // to get HDROP. - HDROP hdrop = (HDROP)pData; // NB: it works, but I'm not sure about it - - // get number of files (magic value -1) - UINT nFiles = ::DragQueryFile(hdrop, (unsigned)-1, NULL, 0u); - - // for each file get the length, allocate memory and then get the name - char **aszFiles = new char *[nFiles]; - UINT len, n; - for ( n = 0; n < nFiles; n++ ) { - // +1 for terminating NUL - len = ::DragQueryFile(hdrop, n, NULL, 0) + 1; - - aszFiles[n] = new char[len]; - - UINT len2 = ::DragQueryFile(hdrop, n, aszFiles[n], len); - if ( len2 != len - 1 ) { - wxLogDebug("In wxFileDropTarget::OnDrop DragQueryFile returned %d " - "characters, %d expected.", len2, len - 1); - } - } - - bool bResult = OnDropFiles(x, y, nFiles, (const char**) aszFiles); - - // free memory - for ( n = 0; n < nFiles; n++ ) { - delete [] aszFiles[n]; - } - delete [] aszFiles; - - return bResult; -} - -size_t wxFileDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxFileDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ -#ifdef __WIN32__ - return wxDF_FILENAME; -#else - // TODO: how to implement this in WIN16? - return wxDF_TEXT; -#endif -} - -#endif - // wxUSE_DRAG_AND_DROP diff --git a/src/msw/ole/oleutils.cpp b/src/msw/ole/oleutils.cpp deleted file mode 100644 index 58b3cd8a16..0000000000 --- a/src/msw/ole/oleutils.cpp +++ /dev/null @@ -1,208 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/oleutils.cpp -// Purpose: implementation of OLE helper functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 19.02.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// Declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ -#pragma implementation "oleutils.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#include -#include - -#include - -// OLE -#include -#include - -#if defined(__VISUALC__) && (__VISUALC__ > 1000) - #include -#endif - -// ============================================================================ -// Implementation -// ============================================================================ - -// return TRUE if the iid is in the array -bool IsIidFromList(REFIID riid, const IID *aIids[], size_t nCount) -{ - for ( size_t i = 0; i < nCount; i++ ) { - if ( riid == *aIids[i] ) - return TRUE; - } - - return FALSE; -} - -#if wxUSE_DRAG_AND_DROP - -// ---------------------------------------------------------------------------- -// Debug support -// ---------------------------------------------------------------------------- - -#if defined(__WXDEBUG__) && defined(__VISUALC__) && (__VISUALC__ > 1000) -const char *GetIidName(REFIID riid) -{ - // an association between symbolic name and numeric value of an IID - struct KNOWN_IID { - const IID *pIid; - const char *szName; - }; - - // construct the table containing all known interfaces - #define ADD_KNOWN_IID(name) { &IID_I##name, #name } - - static const KNOWN_IID aKnownIids[] = { - ADD_KNOWN_IID(AdviseSink), - ADD_KNOWN_IID(AdviseSink2), - ADD_KNOWN_IID(BindCtx), - ADD_KNOWN_IID(ClassFactory), - ADD_KNOWN_IID(ContinueCallback), - ADD_KNOWN_IID(EnumOleDocumentViews), - ADD_KNOWN_IID(OleCommandTarget), - ADD_KNOWN_IID(OleDocument), - ADD_KNOWN_IID(OleDocumentSite), - ADD_KNOWN_IID(OleDocumentView), - ADD_KNOWN_IID(Print), - ADD_KNOWN_IID(DataAdviseHolder), - ADD_KNOWN_IID(DataObject), - ADD_KNOWN_IID(Debug), - ADD_KNOWN_IID(DebugStream), - ADD_KNOWN_IID(DfReserved1), - ADD_KNOWN_IID(DfReserved2), - ADD_KNOWN_IID(DfReserved3), - ADD_KNOWN_IID(Dispatch), - ADD_KNOWN_IID(DropSource), - ADD_KNOWN_IID(DropTarget), - ADD_KNOWN_IID(EnumCallback), - ADD_KNOWN_IID(EnumFORMATETC), - ADD_KNOWN_IID(EnumGeneric), - ADD_KNOWN_IID(EnumHolder), - ADD_KNOWN_IID(EnumMoniker), - ADD_KNOWN_IID(EnumOLEVERB), - ADD_KNOWN_IID(EnumSTATDATA), - ADD_KNOWN_IID(EnumSTATSTG), - ADD_KNOWN_IID(EnumString), - ADD_KNOWN_IID(EnumUnknown), - ADD_KNOWN_IID(EnumVARIANT), - ADD_KNOWN_IID(ExternalConnection), - ADD_KNOWN_IID(InternalMoniker), - ADD_KNOWN_IID(LockBytes), - ADD_KNOWN_IID(Malloc), - ADD_KNOWN_IID(Marshal), - ADD_KNOWN_IID(MessageFilter), - ADD_KNOWN_IID(Moniker), - ADD_KNOWN_IID(OleAdviseHolder), - ADD_KNOWN_IID(OleCache), - ADD_KNOWN_IID(OleCache2), - ADD_KNOWN_IID(OleCacheControl), - ADD_KNOWN_IID(OleClientSite), - ADD_KNOWN_IID(OleContainer), - ADD_KNOWN_IID(OleInPlaceActiveObject), - ADD_KNOWN_IID(OleInPlaceFrame), - ADD_KNOWN_IID(OleInPlaceObject), - ADD_KNOWN_IID(OleInPlaceSite), - ADD_KNOWN_IID(OleInPlaceUIWindow), - ADD_KNOWN_IID(OleItemContainer), - ADD_KNOWN_IID(OleLink), - ADD_KNOWN_IID(OleManager), - ADD_KNOWN_IID(OleObject), - ADD_KNOWN_IID(OlePresObj), - ADD_KNOWN_IID(OleWindow), - ADD_KNOWN_IID(PSFactory), - ADD_KNOWN_IID(ParseDisplayName), - ADD_KNOWN_IID(Persist), - ADD_KNOWN_IID(PersistFile), - ADD_KNOWN_IID(PersistStorage), - ADD_KNOWN_IID(PersistStream), - ADD_KNOWN_IID(ProxyManager), - ADD_KNOWN_IID(RootStorage), - ADD_KNOWN_IID(RpcChannel), - ADD_KNOWN_IID(RpcProxy), - ADD_KNOWN_IID(RpcStub), - ADD_KNOWN_IID(RunnableObject), - ADD_KNOWN_IID(RunningObjectTable), - ADD_KNOWN_IID(StdMarshalInfo), - ADD_KNOWN_IID(Storage), - ADD_KNOWN_IID(Stream), - ADD_KNOWN_IID(StubManager), - ADD_KNOWN_IID(Unknown), - ADD_KNOWN_IID(ViewObject), - ADD_KNOWN_IID(ViewObject2), - }; - - // don't clobber preprocessor name space - #undef ADD_KNOWN_IID - - // try to find the interface in the table - for ( size_t ui = 0; ui < WXSIZEOF(aKnownIids); ui++ ) { - if ( riid == *aKnownIids[ui].pIid ) { - return aKnownIids[ui].szName; - } - } - - // unknown IID, just transform to string - static Uuid s_uuid; - s_uuid.Set(riid); - return s_uuid; -} - -void wxLogQueryInterface(const char *szInterface, REFIID riid) -{ - wxLogTrace("%s::QueryInterface (iid = %s)", szInterface, GetIidName(riid)); -} - -void wxLogAddRef(const char *szInterface, ULONG cRef) -{ - wxLogTrace("After %s::AddRef: m_cRef = %d", szInterface, cRef + 1); -} - -void wxLogRelease(const char *szInterface, ULONG cRef) -{ - wxLogTrace("After %s::Release: m_cRef = %d", szInterface, cRef - 1); -} - -#elif defined(__WXDEBUG__) && defined(__VISUALC__) && (__VISUALC__ <= 1000) - -// For VC++ 4 -void wxLogQueryInterface(const char *szInterface, REFIID riid) -{ - wxLogTrace("%s::QueryInterface", szInterface); -} - -void wxLogAddRef(const char *szInterface, ULONG cRef) -{ - wxLogTrace("After %s::AddRef: m_cRef = %d", szInterface, cRef + 1); -} - -void wxLogRelease(const char *szInterface, ULONG cRef) -{ - wxLogTrace("After %s::Release: m_cRef = %d", szInterface, cRef - 1); -} - -#endif //WXDEBUG - -#endif - // wxUSE_DRAG_AND_DROP diff --git a/src/msw/ole/uuid.cpp b/src/msw/ole/uuid.cpp deleted file mode 100644 index 4df4faa7ba..0000000000 --- a/src/msw/ole/uuid.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: ole/uuid.cpp -// Purpose: implements Uuid class, see uuid.h for details -// Author: Vadim Zeitlin -// Modified by: -// Created: 12.09.96 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// Declarations -// ============================================================================ - -#ifdef __GNUG__ -#pragma implementation "uuid.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#include - -#if wxUSE_DRAG_AND_DROP - -// standard headers -#include // UUID related functions - -#include - - - -// ============================================================================ -// Implementation -// ============================================================================ - -// length of UUID in C format -#define UUID_CSTRLEN 100 // real length is 66 - -// copy ctor -Uuid::Uuid(const Uuid& uuid) -{ - // bitwise copy Ok for UUIDs - m_uuid = uuid.m_uuid; - - // force the string to be allocated by RPC - // (we free it later with RpcStringFree) - UuidToString(&m_uuid, &m_pszUuid); - - // allocate new buffer - m_pszCForm = new char[UUID_CSTRLEN]; - // and fill it - memcpy(m_pszCForm, uuid.m_pszCForm, UUID_CSTRLEN); -} - -// assignment operator -Uuid& Uuid::operator=(const Uuid& uuid) -{ - m_uuid = uuid.m_uuid; - - // force the string to be allocated by RPC - // (we free it later with RpcStringFree) - UuidToString(&m_uuid, &m_pszUuid); - - // allocate new buffer if not done yet - if ( !m_pszCForm ) - m_pszCForm = new char[UUID_CSTRLEN]; - - // and fill it - memcpy(m_pszCForm, uuid.m_pszCForm, UUID_CSTRLEN); - - return *this; -} - -// dtor -Uuid::~Uuid() -{ - // this string must be allocated by RPC! - // (otherwise you get a debug breakpoint deep inside RPC DLL) - if ( m_pszUuid ) - RpcStringFree(&m_pszUuid); - - // perhaps we should just use a static buffer and not bother - // with new and delete? - if ( m_pszCForm ) - delete [] m_pszCForm; -} - -// update string representation of new UUID -void Uuid::Set(const UUID &uuid) -{ - m_uuid = uuid; - - // get string representation - UuidToString(&m_uuid, &m_pszUuid); - - // cache UUID in C format - UuidToCForm(); -} - -// create a new UUID -void Uuid::Create() -{ - UUID uuid; - - // can't fail - UuidCreate(&uuid); - - Set(uuid); -} - -// set the value -bool Uuid::Set(const char *pc) -{ - // get UUID from string - if ( UuidFromString((uchar *)pc, &m_uuid) != RPC_S_OK) - // failed: probably invalid string - return FALSE; - - // transform it back to string to normalize it - UuidToString(&m_uuid, &m_pszUuid); - - // update m_pszCForm - UuidToCForm(); - - return TRUE; -} - -// stores m_uuid in m_pszCForm in a format required by -// DEFINE_GUID macro: i.e. something like -// 0x7D8A2281L,0x4C61,0x11D0,0xBA,0xBD,0x00,0x00,0xC0,0x18,0xBA,0x27 -// m_pszUuid is of the form (no, it's not quite the same UUID :-) -// 6aadc650-67b0-11d0-bac8-0000c018ba27 -void Uuid::UuidToCForm() -{ - if ( m_pszCForm == NULL ) - m_pszCForm = new char[UUID_CSTRLEN]; - - wsprintf(m_pszCForm, "0x%8.8X,0x%4.4X,0x%4.4X,0x%2.2X,0x2.2%X," - "0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X,0x2.2%X", - m_uuid.Data1, m_uuid.Data2, m_uuid.Data3, - m_uuid.Data4[1], m_uuid.Data4[2], m_uuid.Data4[3], m_uuid.Data4[4], - m_uuid.Data4[5], m_uuid.Data4[6], m_uuid.Data4[7], m_uuid.Data4[8]); -} - -#endif - // wxUSE_DRAG_AND_DROP diff --git a/src/msw/ownerdrw.cpp b/src/msw/ownerdrw.cpp deleted file mode 100644 index be1ce8d47e..0000000000 --- a/src/msw/ownerdrw.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/ownerdrw.cpp -// Purpose: implementation of wxOwnerDrawn class -// Author: Vadim Zeitlin -// Modified by: -// Created: 13.11.97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/window.h" - #include "wx/msw/private.h" - #include "wx/font.h" - #include "wx/bitmap.h" - #include "wx/dcmemory.h" - #include "wx/menu.h" - #include "wx/utils.h" -#endif - -#include "wx/ownerdrw.h" -#include "wx/menuitem.h" - - -// ============================================================================ -// implementation of wxOwnerDrawn class -// ============================================================================ - -// ctor -// ---- -wxOwnerDrawn::wxOwnerDrawn(const wxString& str, - bool bCheckable, bool bMenuItem) - : m_strName(str) -{ - m_bCheckable = bCheckable; - m_bOwnerDrawn = FALSE; - m_nHeight = 0; - m_nMarginWidth = ms_nLastMarginWidth; -} - -#if defined(__WXMSW__) && defined(__WIN32__) && defined(SM_CXMENUCHECK) - size_t wxOwnerDrawn::ms_nDefaultMarginWidth = GetSystemMetrics(SM_CXMENUCHECK); -#else // # what is the reasonable default? - size_t wxOwnerDrawn::ms_nDefaultMarginWidth = 15; -#endif - -size_t wxOwnerDrawn::ms_nLastMarginWidth = ms_nDefaultMarginWidth; - -// drawing -// ------- - -// get size of the item -bool wxOwnerDrawn::OnMeasureItem(size_t *pwidth, size_t *pheight) -{ - wxMemoryDC dc; - dc.SetFont(GetFont()); - - // ## ugly... - char *szStripped = new char[m_strName.Len()]; - wxStripMenuCodes((char *)m_strName.c_str(), szStripped); - wxString str = szStripped; - delete [] szStripped; - - // # without this menu items look too tightly packed (at least under Windows) - str += 'W'; // 'W' is typically the widest letter - - dc.GetTextExtent(str, (long *)pwidth, (long *)pheight); - m_nHeight = *pheight; // remember height for use in OnDrawItem - - return TRUE; -} - -// searching for this macro you'll find all the code where I'm using the native -// Win32 GDI functions and not wxWindows ones. Might help to whoever decides to -// port this code to X. (VZ) - -#if defined(__WIN32__) && !defined(__SC__) && !defined(__TWIN32__) -#define O_DRAW_NATIVE_API // comments below explain why I use it -#endif - -// draw the item -bool wxOwnerDrawn::OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus st) -{ - // we do nothing on focus change - if ( act == wxODFocusChanged ) - return TRUE; - - // wxColor <-> RGB - #define ToRGB(col) RGB(col.Red(), col.Green(), col.Blue()) - #define UnRGB(col) GetRValue(col), GetGValue(col), GetBValue(col) - - // set the colors - // -------------- - DWORD colBack, colText; - if ( st & wxODSelected ) { - colBack = GetSysColor(COLOR_HIGHLIGHT); - colText = GetSysColor(COLOR_HIGHLIGHTTEXT); - } - else { - // fall back to default colors if none explicitly specified - colBack = m_colBack.Ok() ? ToRGB(m_colBack) : GetSysColor(COLOR_WINDOW); - colText = m_colText.Ok() ? ToRGB(m_colText) : GetSysColor(COLOR_WINDOWTEXT); - } - - #ifdef O_DRAW_NATIVE_API - #define hdc (HDC)dc.GetHDC() - COLORREF colOldText = ::SetTextColor(hdc, colText), - colOldBack = ::SetBkColor(hdc, colBack); - #else - dc.SetTextForeground(wxColor(UnRGB(colText))); - dc.SetTextBackground(wxColor(UnRGB(colBack))); - #endif - - // select the font and draw the text - // --------------------------------- - - // determine where to draw and leave space for a check-mark. - int x = rc.x + GetMarginWidth(); - - // using native API because it reckognizes '&' - #ifdef O_DRAW_NATIVE_API - int nPrevMode = SetBkMode(hdc, TRANSPARENT); - HBRUSH hbr = CreateSolidBrush(colBack), - hPrevBrush = (HBRUSH) SelectObject(hdc, hbr); - - RECT rectAll = { rc.GetLeft(), rc.GetTop(), rc.GetRight(), rc.GetBottom() }; - FillRect(hdc, &rectAll, hbr); - - // use default font if no font set - HFONT hfont; - if ( m_font.Ok() ) { - m_font.RealizeResource(); - hfont = (HFONT)m_font.GetResourceHandle(); - } - else { - hfont = (HFONT)::GetStockObject(SYSTEM_FONT); - } - - HFONT hPrevFont = (HFONT) ::SelectObject(hdc, hfont); - DrawState(hdc, NULL, NULL, - (LPARAM)(const char *)m_strName, m_strName.Length(), - x, rc.y, rc.GetWidth(), rc.GetHeight(), - DST_PREFIXTEXT | ( st & wxODDisabled ? DSS_DISABLED : 0) ); - - (void)SelectObject(hdc, hPrevBrush); - (void)SelectObject(hdc, hPrevFont); - (void)SetBkMode(hdc, nPrevMode); - #else - dc.SetFont(GetFont()); - dc.DrawText(m_strName, x, rc.y); - #endif //O_DRAW_NATIVE_API - - // draw the bitmap - // --------------- - if ( IsCheckable() && !m_bmpChecked.Ok() ) { - if ( st & wxODChecked ) { - // using native APIs for performance and simplicity -#ifdef O_DRAW_NATIVE_API - // what goes on: DrawFrameControl creates a b/w mask, - // then we copy it to screen to have right colors - - // first create a monochrome bitmap in a memory DC - HDC hdcMem = CreateCompatibleDC(hdc); - HBITMAP hbmpCheck = CreateBitmap(GetMarginWidth(), m_nHeight, 1, 1, 0); - SelectObject(hdcMem, hbmpCheck); - - // then draw a check mark into it - RECT rect = { 0, 0, GetMarginWidth(), m_nHeight }; -#ifndef __SC__ - DrawFrameControl(hdcMem, &rect, DFC_MENU, DFCS_MENUCHECK); -#endif - - // finally copy it to screen DC and clean up - BitBlt(hdc, rc.x, rc.y, GetMarginWidth(), m_nHeight, - hdcMem, 0, 0, SRCCOPY); - DeleteDC(hdcMem); -#else - // #### to do: perhaps using Marlett font (create equiv. font under X) -// wxFAIL("not implemented"); -#endif //O_DRAW_NATIVE_API - } - } - else { - // for uncheckable item we use only the 'checked' bitmap - wxBitmap bmp(GetBitmap(IsCheckable() ? ((st & wxODChecked) != 0) : TRUE)); - if ( bmp.Ok() ) { - wxMemoryDC dcMem(&dc); - dcMem.SelectObject(bmp); - - // center bitmap - int nBmpWidth = bmp.GetWidth(), - nBmpHeight = bmp.GetHeight(); - - // there should be enough place! - wxASSERT((nBmpWidth <= rc.GetWidth()) && (nBmpHeight <= rc.GetHeight())); - - dc.Blit(rc.x + (GetMarginWidth() - nBmpWidth) / 2, - rc.y + (m_nHeight - nBmpHeight) /2, - nBmpWidth, nBmpHeight, - &dcMem, 0, 0, wxCOPY); - - if ( st & wxODSelected ) { - #ifdef O_DRAW_NATIVE_API - RECT rectBmp = { rc.GetLeft(), rc.GetTop(), - rc.GetLeft() + GetMarginWidth(), - rc.GetTop() + m_nHeight }; - SetBkColor(hdc, colBack); - DrawEdge(hdc, &rectBmp, EDGE_RAISED, BF_SOFT | BF_RECT); - #else - // ## to write portable DrawEdge - #endif //O_DRAW_NATIVE_API - } - } - } - - #ifdef O_DRAW_NATIVE_API - ::SetTextColor(hdc, colOldText); - ::SetBkColor(hdc, colOldBack); - - #undef hdc - #endif //O_DRAW_NATIVE_API - - return TRUE; -} - diff --git a/src/msw/palette.cpp b/src/msw/palette.cpp deleted file mode 100644 index 77569777f7..0000000000 --- a/src/msw/palette.cpp +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: wxPalette -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/palette.h" -#endif - -#include - -#include "assert.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif - -/* - * Palette - * - */ - -wxPaletteRefData::wxPaletteRefData(void) -{ - m_hPalette = 0; -} - -wxPaletteRefData::~wxPaletteRefData(void) -{ - if ( m_hPalette ) - ::DeleteObject((HPALETTE) m_hPalette); -} - -wxPalette::wxPalette(void) -{ -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - Create(n, red, green, blue); -} - -wxPalette::~wxPalette(void) -{ -// FreeResource(TRUE); -} - -bool wxPalette::FreeResource(bool force) -{ - if ( M_PALETTEDATA && M_PALETTEDATA->m_hPalette) - { - DeleteObject((HPALETTE)M_PALETTEDATA->m_hPalette); - } - return TRUE; -} - -bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - UnRef(); - -#ifdef __WXWINE__ - - return (FALSE); - -#else - - m_refData = new wxPaletteRefData; - - NPLOGPALETTE npPal = (NPLOGPALETTE)LocalAlloc(LMEM_FIXED, sizeof(LOGPALETTE) + - (WORD)n * sizeof(PALETTEENTRY)); - if (!npPal) - return(FALSE); - - npPal->palVersion = 0x300; - npPal->palNumEntries = n; - - int i; - for (i = 0; i < n; i ++) - { - npPal->palPalEntry[i].peRed = red[i]; - npPal->palPalEntry[i].peGreen = green[i]; - npPal->palPalEntry[i].peBlue = blue[i]; - npPal->palPalEntry[i].peFlags = 0; - } - M_PALETTEDATA->m_hPalette = (WXHPALETTE) CreatePalette((LPLOGPALETTE)npPal); - LocalFree((HANDLE)npPal); - return TRUE; - -#endif -} - -int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const -{ - if ( !m_refData ) - return FALSE; - - return ::GetNearestPaletteIndex((HPALETTE) M_PALETTEDATA->m_hPalette, PALETTERGB(red, green, blue)); -} - -bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const -{ - if ( !m_refData ) - return FALSE; - - if (index < 0 || index > 255) - return FALSE; - - PALETTEENTRY entry; - if (::GetPaletteEntries((HPALETTE) M_PALETTEDATA->m_hPalette, index, 1, &entry)) - { - *red = entry.peRed; - *green = entry.peGreen; - *blue = entry.peBlue; - return TRUE; - } else - return FALSE; -} - -void wxPalette::SetHPALETTE(WXHPALETTE pal) -{ - if ( !m_refData ) - m_refData = new wxPaletteRefData; - - M_PALETTEDATA->m_hPalette = pal; -} - diff --git a/src/msw/pen.cpp b/src/msw/pen.cpp deleted file mode 100644 index 2862a4dcc3..0000000000 --- a/src/msw/pen.cpp +++ /dev/null @@ -1,424 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: wxPen -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/pen.h" -#endif - -#include "wx/msw/private.h" -#include "assert.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -#endif - -wxPenRefData::wxPenRefData() -{ - m_style = wxSOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; - m_hPen = 0; -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; - m_hPen = 0; -} - -wxPenRefData::~wxPenRefData() -{ - if ( m_hPen ) - ::DeleteObject((HPEN) m_hPen); -} - -// Pens - -wxPen::wxPen() -{ - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::~wxPen() -{ - if (wxThePenList) - wxThePenList->RemovePen(this); -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; -// M_PENDATA->m_stipple = NULL; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - M_PENDATA->m_hPen = 0 ; - -#ifndef __WIN32__ - // In Windows, only a pen of width = 1 can be dotted or dashed! - if ((Style == wxDOT) || (Style == wxLONG_DASH) || - (Style == wxSHORT_DASH) || (Style == wxDOT_DASH) || - (Style == wxUSER_DASH)) - M_PENDATA->m_width = 1; -#else -/*** - DWORD vers = GetVersion() ; - WORD high = HIWORD(vers) ; // high bit=0 for NT, 1 for Win32s - // Win32s doesn't support wide dashed pens - - if ((high&0x8000)!=0) -***/ - if (wxGetOsVersion()==wxWIN32S) - { - // In Windows, only a pen of width = 1 can be dotted or dashed! - if ((Style == wxDOT) || (Style == wxLONG_DASH) || - (Style == wxSHORT_DASH) || (Style == wxDOT_DASH) || - (Style == wxUSER_DASH)) - M_PENDATA->m_width = 1; - } -#endif - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - -// M_PENDATA->m_colour = col; - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxSTIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - M_PENDATA->m_hPen = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -bool wxPen::RealizeResource() -{ - if (M_PENDATA && (M_PENDATA->m_hPen == 0)) - { - if (M_PENDATA->m_style==wxTRANSPARENT) - { - M_PENDATA->m_hPen = (WXHPEN) ::GetStockObject(NULL_PEN); - return TRUE; - } - - COLORREF ms_colour = 0 ; - ms_colour = M_PENDATA->m_colour.GetPixel() ; - - // Join style, Cap style, Pen Stippling only on Win32. - // Currently no time to find equivalent on Win3.1, sorry - // [if such equiv exist!!] -#ifdef __WIN32__ - if (M_PENDATA->m_join==wxJOIN_ROUND && - M_PENDATA->m_cap==wxCAP_ROUND && - M_PENDATA->m_style!=wxUSER_DASH && - M_PENDATA->m_style!=wxSTIPPLE && - M_PENDATA->m_width <= 1 - ) - M_PENDATA->m_hPen = (WXHPEN) CreatePen(wx2msPenStyle(M_PENDATA->m_style), M_PENDATA->m_width, ms_colour); - else - { - DWORD ms_style = PS_GEOMETRIC|wx2msPenStyle(M_PENDATA->m_style) ; - - LOGBRUSH logb ; - - switch(M_PENDATA->m_join) - { - case wxJOIN_BEVEL: ms_style |= PS_JOIN_BEVEL ; break ; - case wxJOIN_MITER: ms_style |= PS_JOIN_MITER ; break ; - default: - case wxJOIN_ROUND: ms_style |= PS_JOIN_ROUND ; break ; - } - - switch(M_PENDATA->m_cap) - { - case wxCAP_PROJECTING: ms_style |= PS_ENDCAP_SQUARE ; break ; - case wxCAP_BUTT: ms_style |= PS_ENDCAP_FLAT ; break ; - default: - case wxCAP_ROUND: ms_style |= PS_ENDCAP_ROUND ; break ; - } - - switch(M_PENDATA->m_style) - { - case wxSTIPPLE: - logb.lbStyle = BS_PATTERN ; - if (M_PENDATA->m_stipple.Ok()) - logb.lbHatch = (LONG)M_PENDATA->m_stipple.GetHBITMAP() ; - else - logb.lbHatch = (LONG)0 ; - break ; - case wxBDIAGONAL_HATCH: - logb.lbStyle = BS_HATCHED ; - logb.lbHatch = HS_BDIAGONAL ; - break ; - case wxCROSSDIAG_HATCH: - logb.lbStyle = BS_HATCHED ; - logb.lbHatch = HS_DIAGCROSS ; - break ; - case wxFDIAGONAL_HATCH: - logb.lbStyle = BS_HATCHED ; - logb.lbHatch = HS_FDIAGONAL ; - break ; - case wxCROSS_HATCH: - logb.lbStyle = BS_HATCHED ; - logb.lbHatch = HS_CROSS ; - break ; - case wxHORIZONTAL_HATCH: - logb.lbStyle = BS_HATCHED ; - logb.lbHatch = HS_HORIZONTAL ; - break ; - case wxVERTICAL_HATCH: - logb.lbStyle = BS_HATCHED ; - logb.lbHatch = HS_VERTICAL ; - break ; - default: - logb.lbStyle = BS_SOLID ; - // this should be unnecessary (it's unused) but suppresses the Purigy - // messages about uninitialized memory read -#ifdef __WXDEBUG__ - logb.lbHatch = 0; -#endif - break ; - } - logb.lbColor = ms_colour ; - wxDash *real_dash ; - if (M_PENDATA->m_style==wxUSER_DASH && M_PENDATA->m_nbDash && M_PENDATA->m_dash) - { - real_dash = new wxDash[M_PENDATA->m_nbDash] ; - int i; - for (i=0;im_nbDash;i++) - real_dash[i] = M_PENDATA->m_dash[i] * M_PENDATA->m_width ; - } - else - real_dash = 0 ; - - // Win32s doesn't have ExtCreatePen function... - if (wxGetOsVersion()==wxWINDOWS_NT || wxGetOsVersion()==wxWIN95) - M_PENDATA->m_hPen = (WXHPEN) ExtCreatePen(ms_style,M_PENDATA->m_width,&logb, - M_PENDATA->m_style==wxUSER_DASH ? M_PENDATA->m_nbDash:0, (const DWORD *)real_dash); - else - M_PENDATA->m_hPen = (WXHPEN) CreatePen(wx2msPenStyle(M_PENDATA->m_style), M_PENDATA->m_width, ms_colour); - - if (real_dash) - delete [] real_dash ; - } -#else - M_PENDATA->m_hPen = (WXHPEN) CreatePen(wx2msPenStyle(M_PENDATA->m_style), M_PENDATA->m_width, ms_colour); -#endif -#ifdef WXDEBUG_CREATE - if (M_PENDATA->m_hPen==0) - wxError("Cannot create pen","Internal error") ; -#endif - return TRUE; - } - return FALSE; -} - -WXHANDLE wxPen::GetResourceHandle() -{ - if ( !M_PENDATA ) - return 0; - else - return (WXHANDLE)M_PENDATA->m_hPen; -} - -bool wxPen::FreeResource(bool force) -{ - if (M_PENDATA && (M_PENDATA->m_hPen != 0)) - { - DeleteObject((HPEN) M_PENDATA->m_hPen); - M_PENDATA->m_hPen = 0; - return TRUE; - } - else return FALSE; -} - -bool wxPen::IsFree() const -{ - return (M_PENDATA && M_PENDATA->m_hPen == 0); -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(int Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxSTIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(int Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(int Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -int wx2msPenStyle(int wx_style) -{ - int cstyle; -/*** -#ifdef __WIN32__ - DWORD vers = GetVersion() ; - WORD high = HIWORD(vers) ; // high bit=0 for NT, 1 for Win32s -#endif -***/ - switch (wx_style) - { - case wxDOT: - cstyle = PS_DOT; - break; - case wxSHORT_DASH: - case wxLONG_DASH: - cstyle = PS_DASH; - break; - case wxTRANSPARENT: - cstyle = PS_NULL; - break; - case wxUSER_DASH: - // User dash style not supported on Win3.1, sorry... -#ifdef __WIN32__ - // Win32s doesn't have PS_USERSTYLE -/*** - if ((high&0x8000)==0) -***/ - if (wxGetOsVersion()==wxWINDOWS_NT) - cstyle = PS_USERSTYLE ; - else - cstyle = PS_DOT ; // We must make a choice... This is mine! -#else - cstyle = PS_DASH ; -#endif - break ; - case wxSOLID: - default: - cstyle = PS_SOLID; - break; - } - return cstyle; -} - diff --git a/src/msw/penwin.cpp b/src/msw/penwin.cpp deleted file mode 100644 index 3545a28bda..0000000000 --- a/src/msw/penwin.cpp +++ /dev/null @@ -1,120 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: penwin.cpp -// Purpose: PenWindows code -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/window.h" -#endif - -#include "wx/msw/private.h" - -#if wxUSE_PENWINDOWS - -#ifdef __BORLANDC__ -#define RPA_DEFAULT 1 -#else -#include -#endif - -HANDLE g_hPenWin = (HANDLE)NULL; -typedef void (CALLBACK * PENREGPROC)(WORD,BOOL); - -// The routine below allows Windows applications (binaries) to -// support Pen input when running under Microsoft Windows for -// Pen Computing 1.0 without need of the PenPalete. -// -// Should masked edit functions be added to wxWindows we would -// be a new class of functions to support BEDIT controls. -// -// (The function is a NOOP for native Windows-NT) -#ifndef __WIN32__ -static void (CALLBACK * RegPenApp) (WORD, BOOL) = NULL; -#endif - -// Where is this called?? -void wxEnablePenAppHooks (bool hook) -{ -#ifndef __WIN32__ - if (hook) - { - if (g_hPenWin) - return; - - /////////////////////////////////////////////////////////////////////// - // If running on a Pen Windows system, register this app so all - // EDIT controls in dialogs are replaced by HEDIT controls. - if ((g_hPenWin = (HANDLE)GetSystemMetrics (SM_PENWINDOWS)) != (HANDLE) NULL) - { - // We do this fancy GetProcAddress simply because we don't - // know if we're running Pen Windows. - if ((RegPenApp = (PENREGPROC)GetProcAddress (g_hPenWin, "RegisterPenApp")) != NULL) - (*RegPenApp) (RPA_DEFAULT, TRUE); - } - } - else - { - /////////////////////////////////////////////////////////////////////// - // If running on a Pen Windows system, unregister - if (g_hPenWin) - { - // Unregister this app - if (RegPenApp != NULL) - (*RegPenApp) (RPA_DEFAULT, FALSE); - g_hPenWin = (HANDLE) NULL; - } - } -#endif /* ! Windows-NT */ -} - -#endif - // End wxUSE_PENWINDOWS - -void wxRegisterPenWin(void) -{ -#if wxUSE_PENWINDOWS -/////////////////////////////////////////////////////////////////////// -// If running on a Pen Windows system, register this app so all -// EDIT controls in dialogs are replaced by HEDIT controls. -// (Notice the CONTROL statement in the RC file is "EDIT", -// RegisterPenApp will automatically change that control to -// an HEDIT. - if ((g_hPenWin = (HANDLE)GetSystemMetrics(SM_PENWINDOWS)) != (HANDLE)NULL) { - // We do this fancy GetProcAddress simply because we don't - // know if we're running Pen Windows. - if ( (RegPenApp = (void (CALLBACK *)(WORD, BOOL))GetProcAddress(g_hPenWin, "RegisterPenApp"))!= NULL) - (*RegPenApp)(RPA_DEFAULT, TRUE); - } -/////////////////////////////////////////////////////////////////////// -#endif -} - -void wxCleanUpPenWin(void) -{ -#if wxUSE_PENWINDOWS - if (g_hPenWin) { - // Unregister this app - if (RegPenApp != NULL) - (*RegPenApp)(RPA_DEFAULT, FALSE); - } -#endif -} - diff --git a/src/msw/pnghand.cpp b/src/msw/pnghand.cpp deleted file mode 100644 index ec8bbd781d..0000000000 --- a/src/msw/pnghand.cpp +++ /dev/null @@ -1,786 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pnghand.cpp -// Purpose: Implements a PNG reader class + handler -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pngread.h" -#pragma implementation "pnghand.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include -#include -#include - -#if wxUSE_IOSTREAMH -# include -#else -# include -#endif - -#include -#include -#include -#include -#include - -extern "C" { -#include "../png/png.h" -} - -extern "C" void png_read_init PNGARG((png_structp png_ptr)); -extern "C" void png_write_init PNGARG((png_structp png_ptr)); - -#ifndef GlobalAllocPtr -#define GlobalPtrHandle(lp) \ - ((HGLOBAL)GlobalHandle(lp)) - -#define GlobalLockPtr(lp) \ - ((BOOL)GlobalLock(GlobalPtrHandle(lp))) -#define GlobalUnlockPtr(lp) \ - GlobalUnlock(GlobalPtrHandle(lp)) - -#define GlobalAllocPtr(flags, cb) \ - (GlobalLock(GlobalAlloc((flags), (cb)))) -#define GlobalReAllocPtr(lp, cbNew, flags) \ - (GlobalUnlockPtr(lp), GlobalLock(GlobalReAlloc(GlobalPtrHandle(lp) , (cbNew), (flags)))) -#define GlobalFreePtr(lp) \ - (GlobalUnlockPtr(lp), (BOOL)GlobalFree(GlobalPtrHandle(lp))) -#endif - - -void -ima_png_error(png_struct *png_ptr, char *message) -{ -// wxMessageBox(message, "PNG error"); - - longjmp(png_ptr->jmpbuf, 1); -} - - -// static wxGifReaderIter* iter; -wxPalette *wxCopyPalette(const wxPalette *cmap); - -wxPNGReader::wxPNGReader(void) -{ - filetype = 0; - RawImage = NULL; // Image data - - Width = 0; Height = 0; // Dimensions - Depth = 0; // (bits x pixel) - ColorType = 0; // Bit 1 = Palette used - // Bit 2 = Color used - // Bit 3 = Alpha used - - EfeWidth = 0; // Efective Width - - lpbi = NULL; - bgindex = -1; - Palette = 0; - imageOK = FALSE; -} - -wxPNGReader::wxPNGReader ( char* ImageFileName ) -{ - imageOK = FALSE; - filetype = 0; - RawImage = NULL; // Image data - - Width = 0; Height = 0; // Dimensions - Depth = 0; // (bits x pixel) - ColorType = 0; // Bit 1 = Palette used - // Bit 2 = Color used - // Bit 3 = Alpha used - - EfeWidth = 0; // Efective Width - - lpbi = NULL; - bgindex = -1; - Palette = 0; - - imageOK = ReadFile (ImageFileName); -} - -void -wxPNGReader::Create(int width, int height, int depth, int colortype) -{ - Width = width; Height = height; Depth = depth; - ColorType = (colortype>=0) ? colortype: ((Depth>8) ? COLORTYPE_COLOR: 0); - - if (lpbi) { -#ifdef __WIN16__ - GlobalFreePtr((unsigned int) lpbi); -#else - GlobalFreePtr(lpbi); -#endif -// delete Palette; - } - RawImage = 0; - Palette = 0; - lpbi = DibCreate(Depth, Width, Height); - if (lpbi) { - RawImage = (ImagePointerType)DibPtr(lpbi); - EfeWidth = (long)(((long)Width*Depth + 31) / 32) * 4; - imageOK = TRUE; - } -} - -wxPNGReader::~wxPNGReader ( ) -{ - if (lpbi) { -#ifdef __WIN16__ - GlobalFreePtr((unsigned int) lpbi); -#else - GlobalFreePtr(lpbi); -#endif - delete Palette; - } -} - - -int wxPNGReader::GetIndex(int x, int y) -{ - if (!Inside(x, y) || (Depth>8)) return -1; - - ImagePointerType ImagePointer = RawImage + EfeWidth*y + (x*Depth >> 3); - int index = (int)(*ImagePointer); - return index; -} - -bool wxPNGReader::GetRGB(int x, int y, byte* r, byte* g, byte* b) -{ - if (!Inside(x, y)) return FALSE; - - if (Palette) { - return Palette->GetRGB(GetIndex(x, y), r, g, b); -/* PALETTEENTRY entry; - ::GetPaletteEntries((HPALETTE) Palette->GetHPALETTE(), GetIndex(x, y), 1, &entry); - *r = entry.peRed; - *g = entry.peGreen; - *b = entry.peBlue; */ - } else { - ImagePointerType ImagePointer = RawImage + EfeWidth*y + (x*Depth >> 3); - *b = ImagePointer[0]; - *g = ImagePointer[1]; - *r = ImagePointer[2]; - } - return TRUE; -} - - -bool wxPNGReader::SetIndex(int x, int y, int index) -{ - if (!Inside(x, y) || (Depth>8)) return FALSE; - - ImagePointerType ImagePointer = RawImage + EfeWidth*y + (x*Depth >> 3); - *ImagePointer = index; - - return TRUE; -} - -bool wxPNGReader::SetRGB(int x, int y, byte r, byte g, byte b) -{ - if (!Inside(x, y)) return FALSE; - - if (ColorType & COLORTYPE_PALETTE) - { - if (!Palette) return FALSE; - SetIndex(x, y, Palette->GetPixel(r, g, b)); - - } else { - ImagePointerType ImagePointer = RawImage + EfeWidth*y + (x*Depth >> 3); - ImagePointer[0] = b; - ImagePointer[1] = g; - ImagePointer[2] = r; - } - - return TRUE; -} - -bool wxPNGReader::SetPalette(wxPalette* colourmap) -{ - if (!colourmap) - return FALSE; - ColorType |= (COLORTYPE_PALETTE | COLORTYPE_COLOR); - Palette = colourmap; - return (DibSetUsage(lpbi, (HPALETTE) Palette->GetHPALETTE(), WXIMA_COLORS ) != 0); -} - -bool -wxPNGReader::SetPalette(int n, byte *r, byte *g, byte *b) -{ - Palette = new wxPalette(); - if (!Palette) - return FALSE; - - if (!g) g = r; - if (!b) b = g; - Palette->Create(n, r, g, b); - ColorType |= (COLORTYPE_PALETTE | COLORTYPE_COLOR); - return (DibSetUsage(lpbi, (HPALETTE) Palette->GetHPALETTE(), WXIMA_COLORS ) != 0); -} - -bool -wxPNGReader::SetPalette(int n, rgb_color_struct *rgb_struct) -{ - Palette = new wxPalette(); - if (!Palette) - return FALSE; - - byte r[256], g[256], b[256]; - - for(int i=0; iCreate(n, r, g, b); - ColorType |= (COLORTYPE_PALETTE | COLORTYPE_COLOR); - return (DibSetUsage(lpbi, (HPALETTE) Palette->GetHPALETTE(), WXIMA_COLORS ) != 0); -} - -void wxPNGReader::NullData() -{ - lpbi = NULL; - Palette = NULL; -} - -wxBitmap* wxPNGReader::GetBitmap(void) -{ - wxBitmap *bitmap = new wxBitmap; - if ( InstantiateBitmap(bitmap) ) - return bitmap; - else - { - delete bitmap; - return NULL; - } -} - -bool wxPNGReader::InstantiateBitmap(wxBitmap *bitmap) -{ - HDC dc = ::CreateCompatibleDC(NULL); - - if (dc) - { - // tmpBitmap is a dummy, to satisfy ::CreateCompatibleDC (it - // is a memory dc that must have a bitmap selected into it) - HDC dc2 = GetDC(NULL); - HBITMAP tmpBitmap = ::CreateCompatibleBitmap(dc2, GetWidth(), GetHeight()); - ReleaseDC(NULL, dc2); - HBITMAP oldBitmap = (HBITMAP) ::SelectObject(dc, tmpBitmap); - - if ( Palette ) - { - ::SelectPalette(dc, (HPALETTE) Palette->GetHPALETTE(), FALSE); - ::RealizePalette(dc); - } - - HBITMAP hBitmap = ::CreateDIBitmap(dc, lpbi, - CBM_INIT, RawImage, (LPBITMAPINFO) lpbi, DIB_PAL_COLORS); - - ::SelectPalette(dc, NULL, TRUE); - ::SelectObject(dc, oldBitmap); - ::DeleteObject(tmpBitmap); - ::DeleteDC(dc); - - if ( hBitmap ) - { - bitmap->SetHBITMAP((WXHBITMAP) hBitmap); - bitmap->SetWidth(GetWidth()); - bitmap->SetHeight(GetHeight()); - bitmap->SetDepth(GetDepth()); - if ( GetDepth() > 1 && Palette ) - bitmap->SetPalette(*Palette); - bitmap->SetOk(TRUE); - - - // Make a mask if appropriate - if ( bgindex > -1 ) - { - wxMask *mask = CreateMask(); - bitmap->SetMask(mask); - } - return TRUE; - } - else - { - return FALSE; - } - } - else - { - return FALSE; - } -} - -wxPalette *wxCopyPalette(const wxPalette *cmap) -{ - // To get number of entries... - WORD count = 0; - ::GetObject((HPALETTE) cmap->GetHPALETTE(), sizeof(WORD), &count); - - LOGPALETTE* logPal = (LOGPALETTE*) - new BYTE[sizeof(LOGPALETTE) + count*sizeof(PALETTEENTRY)]; - logPal->palVersion = 0x300; - logPal->palNumEntries = count; - ::GetPaletteEntries((HPALETTE) cmap->GetHPALETTE(), 0, count, logPal->palPalEntry); - - HPALETTE hPalette = ::CreatePalette(logPal); - delete[] logPal; - - wxPalette *newCmap = new wxPalette; - newCmap->SetHPALETTE((WXHPALETTE) hPalette); - return newCmap; -} - -wxMask *wxPNGReader::CreateMask(void) -{ - HBITMAP hBitmap = ::CreateBitmap(GetWidth(), GetHeight(), 1, 1, NULL); - - HDC dc = ::CreateCompatibleDC(NULL); - HBITMAP oldBitmap = (HBITMAP) ::SelectObject(dc, hBitmap); - - int bgIndex = GetBGIndex(); - - int x,y; - - for (x=0; xSetMaskBitmap((WXHBITMAP) hBitmap); - return mask; -} - -bool wxPNGReader::ReadFile(char * ImageFileName) -{ - int number_passes; - - if (ImageFileName) - strcpy(filename, ImageFileName); - - FILE *fp; - png_struct *png_ptr; - png_info *info_ptr; - wxPNGReaderIter iter(this); - - /* open the file */ - fp = fopen(filename, "rb"); - if (!fp) - return FALSE; - - /* allocate the necessary structures */ - png_ptr = new (png_struct); - if (!png_ptr) - { - fclose(fp); - return FALSE; - } - - info_ptr = new (png_info); - if (!info_ptr) - { - fclose(fp); - delete(png_ptr); - return FALSE; - } - /* set error handling */ - if (setjmp(png_ptr->jmpbuf)) - { - png_read_destroy(png_ptr, info_ptr, (png_info *)0); - fclose(fp); - delete(png_ptr); - delete(info_ptr); - - /* If we get here, we had a problem reading the file */ - return FALSE; - } - //png_set_error(ima_png_error, NULL); - - /* initialize the structures, info first for error handling */ - png_info_init(info_ptr); - png_read_init(png_ptr); - - /* set up the input control */ - png_init_io(png_ptr, fp); - - /* read the file information */ - png_read_info(png_ptr, info_ptr); - - /* allocate the memory to hold the image using the fields - of png_info. */ - png_color_16 my_background={ 0, 31, 127, 255, 0 }; - - if (info_ptr->valid & PNG_INFO_bKGD) - { - png_set_background(png_ptr, &(info_ptr->background), - PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); - if ( info_ptr->num_palette > 0 ) - bgindex = info_ptr->background.index; - } - else { - png_set_background(png_ptr, &my_background, - PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); - - // Added by JACS: guesswork! - if ( info_ptr->num_trans != 0 ) - bgindex = info_ptr->num_trans - 1 ; - } - - /* tell libpng to strip 16 bit depth files down to 8 bits */ - if (info_ptr->bit_depth == 16) - png_set_strip_16(png_ptr); - - int pixel_depth=(info_ptr->pixel_depth<24) ? info_ptr->pixel_depth: 24; - Create(info_ptr->width, info_ptr->height, pixel_depth, - info_ptr->color_type); - - if (info_ptr->num_palette>0) - { - SetPalette((int)info_ptr->num_palette, (rgb_color_struct*)info_ptr->palette); - } - - int row_stride = info_ptr->width * ((pixel_depth+7)>>3); - // printf("P = %d D = %d RS= %d ", info_ptr->num_palette, info_ptr->pixel_depth,row_stride); -// printf("CT = %d TRS = %d BD= %d ", info_ptr->color_type, info_ptr->valid & PNG_INFO_tRNS,info_ptr->bit_depth); - - byte *row_pointers = new byte[row_stride]; - - /* turn on interlace handling */ - if (info_ptr->interlace_type) - number_passes = png_set_interlace_handling(png_ptr); - else - number_passes = 1; -// printf("NP = %d ", number_passes); - - for (int pass=0; pass< number_passes; pass++) { - iter.upset(); - int y=0; - do { -// (unsigned char *)iter.GetRow(); - if (info_ptr->interlace_type) { - if (pass>0) - iter.GetRow(row_pointers, row_stride); - png_read_row(png_ptr, row_pointers, NULL); - } - else - png_read_row(png_ptr, row_pointers, NULL); - - iter.SetRow(row_pointers, row_stride); - y++; - } while(iter.PrevRow()); -// printf("Y=%d ",y); - } - delete[] row_pointers; - - /* read the rest of the file, getting any additional chunks - in info_ptr */ - png_read_end(png_ptr, info_ptr); - - /* clean up after the read, and free any memory allocated */ - png_read_destroy(png_ptr, info_ptr, (png_info *)0); - - /* free the structures */ - delete(png_ptr); - delete(info_ptr); - - /* close the file */ - fclose(fp); - - /* that's it */ - return TRUE; -} - - -/* write a png file */ - -bool wxPNGReader::SaveFile(char * ImageFileName) -{ - if (ImageFileName) - strcpy(filename, ImageFileName); - - wxPNGReaderIter iter(this); - FILE *fp; - png_struct *png_ptr; - png_info *info_ptr; - - /* open the file */ - fp = fopen(filename, "wb"); - if (!fp) - return FALSE; - - /* allocate the necessary structures */ - png_ptr = new (png_struct); - if (!png_ptr) - { - fclose(fp); - return FALSE; - } - - info_ptr = new (png_info); - if (!info_ptr) - { - fclose(fp); - delete(png_ptr); - return FALSE; - } - - /* set error handling */ - if (setjmp(png_ptr->jmpbuf)) - { - png_write_destroy(png_ptr); - fclose(fp); - delete(png_ptr); - delete(info_ptr); - - /* If we get here, we had a problem reading the file */ - return FALSE; - } - //png_set_error(ima_png_error, NULL); - -// printf("writig pg %s ", filename); - /* initialize the structures */ - png_info_init(info_ptr); - png_write_init(png_ptr); - - int row_stride = GetWidth() * ((GetDepth()+7)>>3); - /* set up the output control */ - png_init_io(png_ptr, fp); - - /* set the file information here */ - info_ptr->width = GetWidth(); - info_ptr->height = GetHeight(); - info_ptr->pixel_depth = GetDepth(); - info_ptr->channels = (GetDepth()>8) ? 3: 1; - info_ptr->bit_depth = GetDepth()/info_ptr->channels; - info_ptr->color_type = GetColorType(); - info_ptr->compression_type = info_ptr->filter_type = info_ptr->interlace_type=0; - info_ptr->valid = 0; - info_ptr->rowbytes = row_stride; - - -// printf("P = %d D = %d RS= %d GD= %d CH= %d ", info_ptr->pixel_depth, info_ptr->bit_depth, row_stride, GetDepth(), info_ptr->channels); - /* set the palette if there is one */ - if ((GetColorType() & COLORTYPE_PALETTE) && GetPalette()) - { -// printf("writing paleta[%d %d %x]",GetColorType() ,COLORTYPE_PALETTE, GetPalette()); - info_ptr->valid |= PNG_INFO_PLTE; - info_ptr->palette = new png_color[256]; - info_ptr->num_palette = 256; - for (int i=0; i<256; i++) - GetPalette()->GetRGB(i, &info_ptr->palette[i].red, &info_ptr->palette[i].green, &info_ptr->palette[i].blue); - } -// printf("Paleta [%d %d %x]",GetColorType() ,COLORTYPE_PALETTE, GetPalette()); - - - /* optional significant bit chunk */ -// info_ptr->valid |= PNG_INFO_sBIT; -// info_ptr->sig_bit = true_bit_depth; - - /* optional gamma chunk */ -// info_ptr->valid |= PNG_INFO_gAMA; -// info_ptr->gamma = gamma; - - /* other optional chunks */ - - /* write the file information */ - png_write_info(png_ptr, info_ptr); - - /* set up the transformations you want. Note that these are - all optional. Only call them if you want them */ - - /* shift the pixels up to a legal bit depth and fill in - as appropriate to correctly scale the image */ -// png_set_shift(png_ptr, &(info_ptr->sig_bit)); - - /* pack pixels into bytes */ -// png_set_packing(png_ptr); - - /* flip bgr pixels to rgb */ -// png_set_bgr(png_ptr); - - /* swap bytes of 16 bit files to most significant bit first */ -// png_set_swap(png_ptr); - - /* get rid of filler bytes, pack rgb into 3 bytes */ -// png_set_rgbx(png_ptr); - -/* If you are only writing one row at a time, this works */ - - byte *row_pointers = new byte[row_stride]; - iter.upset(); - do { -// (unsigned char *)iter.GetRow(); - iter.GetRow(row_pointers, row_stride); - png_write_row(png_ptr, row_pointers); - } while(iter.PrevRow()); - - delete[] row_pointers; - -/* write the rest of the file */ - png_write_end(png_ptr, info_ptr); - - /* clean up after the write, and free any memory allocated */ - png_write_destroy(png_ptr); - - /* if you malloced the palette, free it here */ - if (info_ptr->palette) - delete[] (info_ptr->palette); - - /* free the structures */ - delete(png_ptr); - delete(info_ptr); - - /* close the file */ - fclose(fp); - - /* that's it */ - return TRUE; -} - -static int Power(int x, int y) -{ - int z = 1; - int i; - for ( i = 0; i < y; i++) - { - z *= x; - } - return z; -} - -static char hexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F' }; - -static void DecToHex(int dec, char *buf) -{ - int firstDigit = (int)(dec/16.0); - int secondDigit = (int)(dec - (firstDigit*16.0)); - buf[0] = hexArray[firstDigit]; - buf[1] = hexArray[secondDigit]; - buf[2] = 0; -} - - -bool wxPNGReader::SaveXPM(char *filename, char *name) -{ - char nameStr[256]; - if ( name ) - strcpy(nameStr, name); - else - { - strcpy(nameStr, filename); - wxStripExtension(nameStr); - } - - if ( GetDepth() > 4 ) - { - // Only a depth of 4 and below allowed - return FALSE; - } - - if ( !GetPalette() ) - return FALSE; - - ofstream str(filename); - if ( str.bad() ) - return FALSE; - - int noColours = Power(2, GetDepth()); - - // Output header - str << "/* XPM */\n"; - str << "static char * " << nameStr << "_xpm[] = {\n"; - str << "\"" << GetWidth() << " " << GetHeight() << " " << noColours << " 1\",\n"; - - // Output colourmap - int base = 97 ; // start from 'a' - - unsigned char red, green, blue; - char hexBuf[4]; - int i; - for ( i = 0; i < noColours; i ++) - { - str << "\"" << (char)(base + i) << " c #"; - GetPalette()->GetRGB(i, &red, &green, &blue); - DecToHex(red, hexBuf); - str << hexBuf; - DecToHex(green, hexBuf); - str << hexBuf; - DecToHex(blue, hexBuf); - str << hexBuf; - str << "\",\n"; - } - - // Output the data - int x, y; - for ( y = 0; y < GetHeight(); y++) - { - str << "\""; - for ( x = 0; x < GetWidth(); x++) - { - int index = GetIndex(x, y); - str << (char)(base + index) ; - } - str << "\",\n"; - } - - str << "};\n"; - str.flush(); - - return TRUE; -} - -#include - -IMPLEMENT_DYNAMIC_CLASS(wxPNGFileHandler, wxBitmapHandler) - -bool wxPNGFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight) -{ - wxPNGReader reader; - if (reader.ReadFile((char*) (const char*) name)) - { - return reader.InstantiateBitmap(bitmap); - } - else - return FALSE; -} - -bool wxPNGFileHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *pal) -{ - return FALSE; -} - - diff --git a/src/msw/printdlg.cpp b/src/msw/printdlg.cpp deleted file mode 100644 index c9e98a3dbf..0000000000 --- a/src/msw/printdlg.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.cpp -// Purpose: wxPrintDialog, wxPageSetupDialog -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "printdlg.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/printdlg.h" -#include "wx/dcprint.h" - -// Have to emulate page setup dialog for Win16 -#if !defined(__WIN95__) - #include "wx/generic/prntdlgg.h" -#endif - -#include - -#include "wx/msw/private.h" - -#include - -#ifndef __WIN32__ - #include -#endif - -// --------------------------------------------------------------------------- -// wxWin macros -// --------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog) - IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog) -#endif - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxPrintDialog -// --------------------------------------------------------------------------- - -wxPrintDialog::wxPrintDialog() -{ - m_dialogParent = NULL; - m_printerDC = NULL; - m_destroyDC = TRUE; -} - -wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintDialogData* data) -{ - Create(p, data); -} - -wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data) -{ - wxPrintDialogData data2; - if ( data ) - data2 = *data; - - Create(p, &data2); -} - -bool wxPrintDialog::Create(wxWindow *p, wxPrintDialogData* data) -{ - m_dialogParent = p; - m_printerDC = NULL; - m_destroyDC = TRUE; - - if ( data ) - m_printDialogData = *data; - - m_printDialogData.SetOwnerWindow(p); - - return TRUE; -} - -wxPrintDialog::~wxPrintDialog() -{ - if (m_destroyDC && m_printerDC) - delete m_printerDC; -} - -int wxPrintDialog::ShowModal() -{ - m_printDialogData.ConvertToNative(); - - bool ret = (PrintDlg( (PRINTDLG *)m_printDialogData.GetNativeData() ) != 0); - if ( ret != FALSE && ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC) - { - wxPrinterDC *pdc = new wxPrinterDC((WXHDC) ((PRINTDLG *)m_printDialogData.GetNativeData())->hDC); - m_printerDC = pdc; - m_printDialogData.ConvertFromNative(); - return wxID_OK; - } - else - { - return wxID_CANCEL; - } -} - -wxDC *wxPrintDialog::GetPrintDC() -{ - if (m_printerDC) - { - m_destroyDC = FALSE; - return m_printerDC; - } - else - return (wxDC*) NULL; -} - -// --------------------------------------------------------------------------- -// wxPageSetupDialog -// --------------------------------------------------------------------------- - -wxPageSetupDialog::wxPageSetupDialog() -{ - m_dialogParent = NULL; -} - -wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data) -{ - Create(p, data); -} - -bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data) -{ - m_dialogParent = p; - - if (data) - m_pageSetupData = (*data); - -#if defined(__WIN95__) - m_pageSetupData.SetOwnerWindow(p); -#endif - return TRUE; -} - -wxPageSetupDialog::~wxPageSetupDialog() -{ -} - -int wxPageSetupDialog::ShowModal() -{ -#ifdef __WIN95__ - m_pageSetupData.ConvertToNative(); - if (PageSetupDlg( (PAGESETUPDLG *)m_pageSetupData.GetNativeData() )) - { - m_pageSetupData.ConvertFromNative(); - return wxID_OK; - } - else - return wxID_CANCEL; -#else - wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData); - int ret = genericPageSetupDialog->ShowModal(); - m_pageSetupData = genericPageSetupDialog->GetPageSetupData(); - genericPageSetupDialog->Close(TRUE); - return ret; -#endif -} - diff --git a/src/msw/printwin.cpp b/src/msw/printwin.cpp deleted file mode 100644 index d09ddc2dd9..0000000000 --- a/src/msw/printwin.cpp +++ /dev/null @@ -1,407 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printwin.cpp -// Purpose: wxWindowsPrinter framework -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "printwin.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/defs.h" - -#ifndef WX_PRECOMP - #include "wx/window.h" - #include "wx/msw/private.h" - #include "wx/utils.h" - #include "wx/dc.h" - #include "wx/app.h" - #include "wx/msgdlg.h" - #include "wx/intl.h" -#endif - -#include "wx/msw/printwin.h" -#include "wx/dcprint.h" -#include "wx/printdlg.h" -#include "wx/log.h" -#include "wx/msw/private.h" - -#include - -#include "wx/msw/private.h" - -#include - -#ifndef __WIN32__ - #include -#endif - -// --------------------------------------------------------------------------- -// private functions -// --------------------------------------------------------------------------- - -LONG APIENTRY _EXPORT wxAbortProc(HDC hPr, int Code); - -// --------------------------------------------------------------------------- -// wxWin macros -// --------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxWindowsPrinter, wxPrinterBase) - IMPLEMENT_CLASS(wxWindowsPrintPreview, wxPrintPreviewBase) -#endif - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// Printer -// --------------------------------------------------------------------------- - -wxWindowsPrinter::wxWindowsPrinter(wxPrintDialogData *data) - : wxPrinterBase(data) -{ - m_lpAbortProc = (WXFARPROC) MakeProcInstance((FARPROC) wxAbortProc, wxGetInstance()); -} - -wxWindowsPrinter::~wxWindowsPrinter() -{ - FreeProcInstance((FARPROC) m_lpAbortProc); -} - -bool wxWindowsPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) -{ - sm_abortIt = FALSE; - sm_abortWindow = NULL; - - if (!printout) - return FALSE; - - printout->SetIsPreview(FALSE); - printout->OnPreparePrinting(); - - // Get some parameters from the printout, if defined - int fromPage, toPage; - int minPage, maxPage; - printout->GetPageInfo(&minPage, &maxPage, &fromPage, &toPage); - - if (maxPage == 0) - return FALSE; - - m_printDialogData.SetMinPage(minPage); - m_printDialogData.SetMaxPage(maxPage); - if (fromPage != 0) - m_printDialogData.SetFromPage(fromPage); - if (toPage != 0) - m_printDialogData.SetToPage(toPage); - - if (minPage != 0) - { - m_printDialogData.EnablePageNumbers(TRUE); - if (m_printDialogData.GetFromPage() < m_printDialogData.GetMinPage()) - m_printDialogData.SetFromPage(m_printDialogData.GetMinPage()); - else if (m_printDialogData.GetFromPage() > m_printDialogData.GetMaxPage()) - m_printDialogData.SetFromPage(m_printDialogData.GetMaxPage()); - if (m_printDialogData.GetToPage() > m_printDialogData.GetMaxPage()) - m_printDialogData.SetToPage(m_printDialogData.GetMaxPage()); - else if (m_printDialogData.GetToPage() < m_printDialogData.GetMinPage()) - m_printDialogData.SetToPage(m_printDialogData.GetMinPage()); - } - else - m_printDialogData.EnablePageNumbers(FALSE); - - // Create a suitable device context - wxDC *dc = NULL; - if (prompt) - { - dc = PrintDialog(parent); - if (!dc) - return FALSE; - } - else - { - // dc = new wxPrinterDC("", "", "", FALSE, m_printData.GetOrientation()); - dc = new wxPrinterDC(m_printDialogData.GetPrintData()); - } - - // May have pressed cancel. - if (!dc || !dc->Ok()) - { - if (dc) delete dc; - return FALSE; - } - - int logPPIScreenX = 0; - int logPPIScreenY = 0; - int logPPIPrinterX = 0; - int logPPIPrinterY = 0; - - HDC hdc = ::GetDC(NULL); - logPPIScreenX = ::GetDeviceCaps(hdc, LOGPIXELSX); - logPPIScreenY = ::GetDeviceCaps(hdc, LOGPIXELSY); - ::ReleaseDC(NULL, hdc); - - logPPIPrinterX = ::GetDeviceCaps((HDC) dc->GetHDC(), LOGPIXELSX); - logPPIPrinterY = ::GetDeviceCaps((HDC) dc->GetHDC(), LOGPIXELSY); - if (logPPIPrinterX == 0 || logPPIPrinterY == 0) - { - delete dc; - return FALSE; - } - - printout->SetPPIScreen(logPPIScreenX, logPPIScreenY); - printout->SetPPIPrinter(logPPIPrinterX, logPPIPrinterY); - - // Set printout parameters - printout->SetDC(dc); - - int w, h; - dc->GetSize(&w, &h); - printout->SetPageSizePixels((int)w, (int)h); - - dc->GetSizeMM(&w, &h); - printout->SetPageSizeMM((int)w, (int)h); - - // Create an abort window - wxBeginBusyCursor(); - - wxWindow *win = CreateAbortWindow(parent, printout); - wxYield(); - -#if defined(__BORLANDC__) || defined(__GNUWIN32__) || defined(__SALFORDC__) || !defined(__WIN32__) - ::SetAbortProc((HDC) dc->GetHDC(), (FARPROC) m_lpAbortProc); -#else - ::SetAbortProc((HDC) dc->GetHDC(), (int (_stdcall *) - // cast it to right type only if required - // FIXME it's really cdecl and we're casting it to stdcall - either there is - // something I don't understand or it will crash at first usage -#ifdef STRICT - (HDC, int) -#else - () -#endif - )m_lpAbortProc); -#endif - - if (!win) - { - wxEndBusyCursor(); - wxLogDebug("Could not create an abort dialog."); - - delete dc; - } - sm_abortWindow = win; - sm_abortWindow->Show(TRUE); - wxSafeYield(); - - printout->OnBeginPrinting(); - - bool keepGoing = TRUE; - - int copyCount; - for (copyCount = 1; copyCount <= m_printDialogData.GetNoCopies(); copyCount ++) - { - if (!printout->OnBeginDocument(m_printDialogData.GetFromPage(), m_printDialogData.GetToPage())) - { - wxEndBusyCursor(); - wxLogError(_("Could not start printing.")); - break; - } - if (sm_abortIt) - break; - - int pn; - for (pn = m_printDialogData.GetFromPage(); keepGoing && (pn <= m_printDialogData.GetToPage()) && printout->HasPage(pn); - pn++) - { - if (sm_abortIt) - { - keepGoing = FALSE; - break; - } - else - { - dc->StartPage(); - printout->OnPrintPage(pn); - dc->EndPage(); - } - } - printout->OnEndDocument(); - } - - printout->OnEndPrinting(); - - if (sm_abortWindow) - { - sm_abortWindow->Show(FALSE); - delete sm_abortWindow; - sm_abortWindow = NULL; - } - - wxEndBusyCursor(); - - delete dc; - - return TRUE; -} - -wxDC* wxWindowsPrinter::PrintDialog(wxWindow *parent) -{ - wxDC* dc = (wxDC*) NULL; - - wxPrintDialog dialog(parent, & m_printDialogData); - int ret = dialog.ShowModal(); - - if (ret == wxID_OK) - { - dc = dialog.GetPrintDC(); - m_printDialogData = dialog.GetPrintDialogData(); - } - - return dc; -} - -bool wxWindowsPrinter::Setup(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printDialogData); - dialog.GetPrintDialogData().SetSetupDialog(TRUE); - - int ret = dialog.ShowModal(); - - if (ret == wxID_OK) - { - m_printDialogData = dialog.GetPrintDialogData(); - } - - return (ret == wxID_OK); -} - -/* -* Print preview -*/ - -wxWindowsPrintPreview::wxWindowsPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintDialogData *data) - : wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - DetermineScaling(); -} - -wxWindowsPrintPreview::wxWindowsPrintPreview(wxPrintout *printout, - wxPrintout *printoutForPrinting, - wxPrintData *data) - : wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - DetermineScaling(); -} - -wxWindowsPrintPreview::~wxWindowsPrintPreview() -{ -} - -bool wxWindowsPrintPreview::Print(bool interactive) -{ - if (!m_printPrintout) - return FALSE; - wxWindowsPrinter printer(&m_printDialogData); - return printer.Print(m_previewFrame, m_printPrintout, interactive); -} - -void wxWindowsPrintPreview::DetermineScaling() -{ - HDC dc = ::GetDC(NULL); - int screenWidth = ::GetDeviceCaps(dc, HORZSIZE); - // int screenHeight = ::GetDeviceCaps(dc, VERTSIZE); - int screenXRes = ::GetDeviceCaps(dc, HORZRES); - // int screenYRes = ::GetDeviceCaps(dc, VERTRES); - int logPPIScreenX = ::GetDeviceCaps(dc, LOGPIXELSX); - int logPPIScreenY = ::GetDeviceCaps(dc, LOGPIXELSY); - m_previewPrintout->SetPPIScreen(logPPIScreenX, logPPIScreenY); - - ::ReleaseDC(NULL, dc); - - // Get a device context for the currently selected printer - wxPrinterDC printerDC(m_printDialogData.GetPrintData()); - - int printerWidth = 150; - int printerHeight = 250; - int printerXRes = 1500; - int printerYRes = 2500; - - if (printerDC.GetHDC()) - { - printerWidth = ::GetDeviceCaps((HDC) printerDC.GetHDC(), HORZSIZE); - printerHeight = ::GetDeviceCaps((HDC) printerDC.GetHDC(), VERTSIZE); - printerXRes = ::GetDeviceCaps((HDC) printerDC.GetHDC(), HORZRES); - printerYRes = ::GetDeviceCaps((HDC) printerDC.GetHDC(), VERTRES); - - int logPPIPrinterX = ::GetDeviceCaps((HDC) printerDC.GetHDC(), LOGPIXELSX); - int logPPIPrinterY = ::GetDeviceCaps((HDC) printerDC.GetHDC(), LOGPIXELSY); - - m_previewPrintout->SetPPIPrinter(logPPIPrinterX, logPPIPrinterY); - m_previewPrintout->SetPageSizeMM(printerWidth, printerHeight); - - if (logPPIPrinterX == 0 || logPPIPrinterY == 0 || printerWidth == 0 || printerHeight == 0) - m_isOk = FALSE; - } - else - m_isOk = FALSE; - - m_pageWidth = printerXRes; - m_pageHeight = printerYRes; - - // At 100%, the page should look about page-size on the screen. - m_previewScale = (float)((float)screenWidth/(float)printerWidth); - m_previewScale = m_previewScale * (float)((float)screenXRes/(float)printerYRes); -} - -/**************************************************************************** - - FUNCTION: wxAbortProc() - - PURPOSE: Processes messages for the Abort Dialog box - -****************************************************************************/ - -LONG APIENTRY _EXPORT wxAbortProc(HDC WXUNUSED(hPr), int WXUNUSED(Code)) -{ - MSG msg; - - if (!wxPrinterBase::sm_abortWindow) /* If the abort dialog isn't up yet */ - return(TRUE); - - /* Process messages intended for the abort dialog box */ - - while (!wxPrinterBase::sm_abortIt && PeekMessage(&msg, 0, 0, 0, TRUE)) - if (!IsDialogMessage((HWND) wxPrinterBase::sm_abortWindow->GetHWND(), &msg)) { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - - /* bAbort is TRUE (return is FALSE) if the user has aborted */ - - return (!wxPrinterBase::sm_abortIt); -} - diff --git a/src/msw/radiobox.cpp b/src/msw/radiobox.cpp deleted file mode 100644 index 4038a36348..0000000000 --- a/src/msw/radiobox.cpp +++ /dev/null @@ -1,785 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: wxRadioBox -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "radiobox.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include - #include "wx/setup.h" - #include "wx/bitmap.h" - #include "wx/brush.h" - #include "wx/radiobox.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) -#endif - -// --------------------------------------------------------------------------- -// private functions -// --------------------------------------------------------------------------- - -// wnd proc for radio buttons -#ifdef __WIN32__ -LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hWnd, - UINT message, - WPARAM wParam, - LPARAM lParam); - -// --------------------------------------------------------------------------- -// global vars -// --------------------------------------------------------------------------- - -// the pointer to standard radio button wnd proc -static WXFARPROC s_wndprocRadioBtn = (WXFARPROC)NULL; - -#endif // __WIN32__ - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxRadioBox -// --------------------------------------------------------------------------- - -int wxRadioBox::GetNumVer() const -{ - if ( m_windowStyle & wxRA_SPECIFY_ROWS ) - { - return m_majorDim; - } - else - { - return (m_noItems + m_majorDim - 1)/m_majorDim; - } -} - -int wxRadioBox::GetNumHor() const -{ - if ( m_windowStyle & wxRA_SPECIFY_ROWS ) - { - return (m_noItems + m_majorDim - 1)/m_majorDim; - } - else - { - return m_majorDim; - } -} - -bool wxRadioBox::MSWCommand(WXUINT cmd, WXWORD id) -{ - if ( cmd == BN_CLICKED ) - { - int selectedButton = -1; - - for ( int i = 0; i < m_noItems; i++ ) - { - if ( id == wxGetWindowId(m_radioButtons[i]) ) - { - selectedButton = i; - - break; - } - } - - wxASSERT_MSG( selectedButton != -1, "click from alien button?" ); - - if ( selectedButton != m_selectedButton ) - { - m_selectedButton = selectedButton; - - SendNotificationEvent(); - } - //else: don't generate events when the selection doesn't change - - return TRUE; - } - else - return FALSE; -} - -#if WXWIN_COMPATIBILITY -wxRadioBox::wxRadioBox(wxWindow *parent, wxFunction func, const char *title, - int x, int y, int width, int height, - int n, char **choices, - int majorDim, long style, const char *name) -{ - wxString *choices2 = new wxString[n]; - for ( int i = 0; i < n; i ++) choices2[i] = choices[i]; - Create(parent, -1, title, wxPoint(x, y), wxSize(width, height), n, choices2, majorDim, style, - wxDefaultValidator, name); - Callback(func); - delete choices2; -} - -#endif - -// Radio box item -wxRadioBox::wxRadioBox() -{ - m_selectedButton = -1; - m_noItems = 0; - m_noRowsOrCols = 0; - m_radioButtons = NULL; - m_majorDim = 0; - m_radioWidth = NULL; - m_radioHeight = NULL; -} - -bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - int majorDim, long style, - const wxValidator& val, const wxString& name) -{ - m_selectedButton = -1; - m_noItems = n; - - SetName(name); - SetValidator(val); - - parent->AddChild(this); - m_backgroundColour = parent->GetBackgroundColour(); - m_foregroundColour = parent->GetForegroundColour(); - - m_windowStyle = (long&)style; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - if ( majorDim == 0 ) - m_majorDim = n; - else - m_majorDim = majorDim; - m_noRowsOrCols = majorDim; - - long msStyle = GROUP_FLAGS; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(0, &want3D); - - HWND hwndParent = (HWND)parent->GetHWND(); - - m_hWnd = (WXHWND)::CreateWindowEx - ( - (DWORD)exStyle, - GROUP_CLASS, - title, - msStyle, - 0, 0, 0, 0, - hwndParent, - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl((HWND)m_hWnd); - m_useCtl3D = TRUE; - } -#endif // wxUSE_CTL3D - - SetFont(parent->GetFont()); - - SubclassWin(m_hWnd); - - // Some radio boxes test consecutive id. - (void)NewControlId(); - m_radioButtons = new WXHWND[n]; - m_radioWidth = new int[n]; - m_radioHeight = new int[n]; - int i; - for (i = 0; i < n; i++) - { - m_radioWidth[i] = m_radioHeight[i] = -1; - long groupStyle = 0; - if ( i == 0 && style == 0 ) - groupStyle = WS_GROUP; - long newId = NewControlId(); - long msStyle = groupStyle | RADIO_FLAGS; - - HWND hwndBtn = CreateWindowEx(exStyle, RADIO_CLASS, - choices[i], msStyle, - 0,0,0,0, - hwndParent, - (HMENU)newId, wxGetInstance(), - NULL); - - m_radioButtons[i] = (WXHWND)hwndBtn; - - SubclassRadioButton((WXHWND)hwndBtn); - - wxFont& font = GetFont(); - if ( font.Ok() ) - { - SendMessage(hwndBtn, WM_SETFONT, - (WPARAM)font.GetResourceHandle(), 0L); - } - - m_subControls.Append((wxObject *)(WXWORD)newId); - } - - // Create a dummy radio control to end the group. - (void)CreateWindowEx(0, RADIO_CLASS, "", WS_GROUP | RADIO_FLAGS, - 0, 0, 0, 0, hwndParent, - (HMENU)NewControlId(), wxGetInstance(), NULL); - - SetSelection(0); - - SetSize(x, y, width, height); - - return TRUE; -} - -wxRadioBox::~wxRadioBox() -{ - m_isBeingDeleted = TRUE; - - if (m_radioButtons) - { - int i; - for (i = 0; i < m_noItems; i++) - ::DestroyWindow((HWND)m_radioButtons[i]); - delete[] m_radioButtons; - } - - if (m_radioWidth) - delete[] m_radioWidth; - if (m_radioHeight) - delete[] m_radioHeight; - -} - -wxString wxRadioBox::GetLabel(int item) const -{ - wxCHECK_MSG( item >= 0 && item < m_noItems, "", "invalid radiobox index" ); - - return wxGetWindowText(m_radioButtons[item]); -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - wxCHECK_RET( item >= 0 && item < m_noItems, "invalid radiobox index" ); - - m_radioWidth[item] = m_radioHeight[item] = -1; - SetWindowText((HWND)m_radioButtons[item], label.c_str()); -} - -void wxRadioBox::SetLabel(int item, wxBitmap *bitmap) -{ - /* - m_radioWidth[item] = bitmap->GetWidth() + FB_MARGIN; - m_radioHeight[item] = bitmap->GetHeight() + FB_MARGIN; - */ - wxFAIL_MSG("not implemented"); -} - -int wxRadioBox::FindString(const wxString& s) const -{ - for (int i = 0; i < m_noItems; i++) - { - if ( s == wxGetWindowText(m_radioButtons[i]) ) - return i; - } - - return wxNOT_FOUND; -} - -void wxRadioBox::SetSelection(int N) -{ - wxCHECK_RET( (N >= 0) && (N < m_noItems), "invalid radiobox index" ); - - // Following necessary for Win32s, because Win32s translate BM_SETCHECK - if (m_selectedButton >= 0 && m_selectedButton < m_noItems) - ::SendMessage((HWND) m_radioButtons[m_selectedButton], BM_SETCHECK, 0, 0L); - - ::SendMessage((HWND)m_radioButtons[N], BM_SETCHECK, 1, 0L); - ::SetFocus((HWND)m_radioButtons[N]); - - m_selectedButton = N; -} - -// Get single selection, for single choice list items -int wxRadioBox::GetSelection() const -{ - return m_selectedButton; -} - -// Find string for position -wxString wxRadioBox::GetString(int N) const -{ - return wxGetWindowText(m_radioButtons[N]); -} - -// Restored old code. -void wxRadioBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int xx = x; - int yy = y; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - xx = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - yy = currentY; - - char buf[400]; - - int y_offset = yy; - int x_offset = xx; - int current_width, cyf; - - int cx1,cy1; - wxGetCharSize(m_hWnd, &cx1, &cy1, & GetFont()); - // Attempt to have a look coherent with other platforms: - // We compute the biggest toggle dim, then we align all - // items according this value. - int maxWidth = -1; - int maxHeight = -1; - - int i; - for (i = 0 ; i < m_noItems; i++) - { - int eachWidth; - int eachHeight; - if (m_radioWidth[i]<0) - { - // It's a labelled toggle - GetWindowText((HWND) m_radioButtons[i], buf, 300); - GetTextExtent(buf, ¤t_width, &cyf,NULL,NULL, & GetFont()); - eachWidth = (int)(current_width + RADIO_SIZE); - eachHeight = (int)((3*cyf)/2); - } - else - { - eachWidth = m_radioWidth[i]; - eachHeight = m_radioHeight[i]; - } - if (maxWidth0) - y_offset += cy1/2; - } - } - int eachWidth; - int eachHeight; - if (m_radioWidth[i]<0) - { - // It's a labeled item - GetWindowText((HWND) m_radioButtons[i], buf, 300); - GetTextExtent(buf, ¤t_width, &cyf,NULL,NULL, & GetFont()); - - // How do we find out radio button bitmap size!! - // By adjusting them carefully, manually :-) - eachWidth = (int)(current_width + RADIO_SIZE); - eachHeight = (int)((3*cyf)/2); - } - else - { - eachWidth = m_radioWidth[i]; - eachHeight = m_radioHeight[i]; - } - - MoveWindow((HWND) m_radioButtons[i],x_offset,y_offset,eachWidth,eachHeight,TRUE); - if (m_windowStyle & wxRA_SPECIFY_ROWS) - { - y_offset += maxHeight; - if (m_radioWidth[0]>0) - y_offset += cy1/2; - } - else - x_offset += maxWidth + cx1; - } -} - - -void wxRadioBox::GetSize(int *width, int *height) const -{ - RECT rect; - rect.left = -1; rect.right = -1; rect.top = -1; rect.bottom = -1; - - if (m_hWnd) - wxFindMaxSize(m_hWnd, &rect); - - int i; - for (i = 0; i < m_noItems; i++) - wxFindMaxSize(m_radioButtons[i], &rect); - - *width = rect.right - rect.left; - *height = rect.bottom - rect.top; -} - -void wxRadioBox::GetPosition(int *x, int *y) const -{ - wxWindow *parent = GetParent(); - RECT rect; - rect.left = -1; rect.right = -1; rect.top = -1; rect.bottom = -1; - - int i; - for (i = 0; i < m_noItems; i++) - wxFindMaxSize(m_radioButtons[i], &rect); - - if (m_hWnd) - wxFindMaxSize(m_hWnd, &rect); - - // Since we now have the absolute screen coords, - // if there's a parent we must subtract its top left corner - POINT point; - point.x = rect.left; - point.y = rect.top; - if (parent) - { - ::ScreenToClient((HWND) parent->GetHWND(), &point); - } - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - if (GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - point.x -= pt.x; - point.y -= pt.y; - } - - *x = point.x; - *y = point.y; -} - -void wxRadioBox::SetFocus() -{ - if (m_noItems > 0) - { - if (m_selectedButton == -1) - ::SetFocus((HWND) m_radioButtons[0]); - else - ::SetFocus((HWND) m_radioButtons[m_selectedButton]); - } - -} - -bool wxRadioBox::Show(bool show) -{ - if ( !wxControl::Show(show) ) - return FALSE; - - int nCmdShow = show ? SW_SHOW : SW_HIDE; - for ( int i = 0; i < m_noItems; i++ ) - { - ::ShowWindow((HWND)m_radioButtons[i], nCmdShow); - } - - return TRUE; -} - -// Enable a specific button -void wxRadioBox::Enable(int item, bool enable) -{ - wxCHECK_RET( item >= 0 && item < m_noItems, - _T("invalid item in wxRadioBox::Enable()") ); - - ::EnableWindow((HWND) m_radioButtons[item], enable); -} - -// Enable all controls -bool wxRadioBox::Enable(bool enable) -{ - if ( !wxControl::Enable(enable) ) - return FALSE; - - for (int i = 0; i < m_noItems; i++) - ::EnableWindow((HWND) m_radioButtons[i], enable); - - return TRUE; -} - -// Show a specific button -void wxRadioBox::Show(int item, bool show) -{ - wxCHECK_RET( item >= 0 && item < m_noItems, - _T("invalid item in wxRadioBox::Show()") ); - - ::ShowWindow((HWND)m_radioButtons[item], show ? SW_SHOW : SW_HIDE); -} - -WXHBRUSH wxRadioBox::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; - } -#endif - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -// For single selection items only -wxString wxRadioBox::GetStringSelection() const -{ - wxString result; - int sel = GetSelection(); - if (sel > -1) - result = GetString(sel); - - return result; -} - -bool wxRadioBox::SetStringSelection(const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -bool wxRadioBox::ContainsHWND(WXHWND hWnd) const -{ - int i; - for (i = 0; i < Number(); i++) - { - if (GetRadioButtons()[i] == hWnd) - return TRUE; - } - - return FALSE; -} - -void wxRadioBox::Command (wxCommandEvent & event) -{ - SetSelection (event.m_commandInt); - ProcessCommand (event); -} - -long wxRadioBox::MSWWindowProc(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam) -{ - long rc = 0; - bool processed = FALSE; - - switch ( msg ) - { - case WM_NCHITTEST: - { - int xPos = LOWORD(lParam); // horizontal position of cursor - int yPos = HIWORD(lParam); // vertical position of cursor - - ScreenToClient(&xPos, &yPos); - - // Make sure you can drag by the top of the groupbox, but let - // other (enclosed) controls get mouse events also - if ( yPos < 10 ) - { - rc = HTCLIENT; - processed = TRUE; - } - } - break; - } - - if ( !processed ) - rc = wxControl::MSWWindowProc(msg, wParam, lParam); - - return rc; -} - -void wxRadioBox::SubclassRadioButton(WXHWND hWndBtn) -{ -#ifdef __WIN32__ - HWND hwndBtn = (HWND)hWndBtn; - - if ( !s_wndprocRadioBtn ) - s_wndprocRadioBtn = (WXFARPROC)::GetWindowLong(hwndBtn, GWL_WNDPROC); - - // No GWL_USERDATA in Win16, so omit this subclassing. - ::SetWindowLong(hwndBtn, GWL_WNDPROC, (long)wxRadioBtnWndProc); - ::SetWindowLong(hwndBtn, GWL_USERDATA, (long)this); -#endif // __WIN32__ -} - -void wxRadioBox::SendNotificationEvent() -{ - wxCommandEvent event(wxEVT_COMMAND_RADIOBOX_SELECTED, m_windowId); - event.SetInt( m_selectedButton ); - event.SetEventObject( this ); - ProcessCommand(event); -} - -// --------------------------------------------------------------------------- -// window proc for radio buttons -// --------------------------------------------------------------------------- - -#ifdef __WIN32__ - -LRESULT APIENTRY _EXPORT wxRadioBtnWndProc(HWND hwnd, - UINT msg, - WPARAM wParam, - LPARAM lParam) -{ - bool processed = TRUE; - if ( msg != WM_KEYDOWN ) - processed = FALSE; - - if ( processed ) - { - wxRadioBox *radiobox = (wxRadioBox *)::GetWindowLong(hwnd, GWL_USERDATA); - - wxCHECK_MSG( radiobox, 0, "radio button without radio box?" ); - - int sel = radiobox->GetSelection(); - - switch ( wParam ) - { - case VK_UP: - sel--; - break; - - case VK_LEFT: - sel -= radiobox->GetNumVer(); - break; - - case VK_DOWN: - sel++; - break; - - case VK_RIGHT: - sel += radiobox->GetNumVer(); - break; - - case VK_TAB: - { - wxNavigationKeyEvent event; - event.SetDirection(!(::GetKeyState(VK_SHIFT) & 0x100)); - event.SetWindowChange(FALSE); - event.SetEventObject(radiobox); - - if ( radiobox->GetEventHandler()->ProcessEvent(event) ) - return 0; - } - // fall through - - default: - processed = FALSE; - } - - if ( processed ) - { - if ( sel >= 0 && sel < radiobox->Number() ) - { - radiobox->SetSelection(sel); - - // emulate the button click - radiobox->SendNotificationEvent(); - } - } - } - - if ( !processed ) - return ::CallWindowProc(CASTWNDPROC s_wndprocRadioBtn, hwnd, msg, wParam, lParam); - else - return 0; -} - -#endif // __WIN32__ - diff --git a/src/msw/radiobut.cpp b/src/msw/radiobut.cpp deleted file mode 100644 index 0117ba49f1..0000000000 --- a/src/msw/radiobut.cpp +++ /dev/null @@ -1,266 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: wxRadioButton -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/radiobut.h" -#include "wx/brush.h" -#endif - -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -// IMPLEMENT_DYNAMIC_CLASS(wxBitmapRadioButton, wxRadioButton) -#endif - -bool wxRadioButton::MSWCommand(WXUINT param, WXWORD id) -{ - if (param == BN_CLICKED) - { - wxCommandEvent event(wxEVT_COMMAND_RADIOBUTTON_SELECTED, m_windowId); - event.SetEventObject( this ); - ProcessCommand(event); - return TRUE; - } - else return FALSE; -} - -bool wxRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()); - SetForegroundColour(parent->GetForegroundColour()); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style ; - - long groupStyle = 0; - if (m_windowStyle & wxRB_GROUP) - groupStyle = WS_GROUP; - -// long msStyle = groupStyle | RADIO_FLAGS; - long msStyle = groupStyle | BS_AUTORADIOBUTTON | WS_CHILD | WS_VISIBLE ; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(0, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. -/* - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - msStyle |= WS_BORDER; -*/ - - m_hWnd = (WXHWND) CreateWindowEx(exStyle, RADIO_CLASS, (const char *)label, - msStyle,0,0,0,0, - (HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create radiobutton" ); - -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl((HWND) m_hWnd); - m_useCtl3D = TRUE; - } -#endif - - SetFont(parent->GetFont()); - - // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND)m_hWnd); - -// SetValue(value); - - // start GRW fix - if (label != "") - { - int label_width, label_height; - GetTextExtent(label, &label_width, &label_height, NULL, NULL, & this->GetFont()); - if (width < 0) - width = (int)(label_width + RADIO_SIZE); - if (height<0) - { - height = (int)(label_height); - if (height < RADIO_SIZE) - height = RADIO_SIZE; - } - } - else - { - if (width < 0) - width = RADIO_SIZE; - if (height < 0) - height = RADIO_SIZE; - } - // end GRW fix - - SetSize(x, y, width, height); - - return TRUE; -} - - -void wxRadioButton::SetLabel(const wxString& label) -{ - SetWindowText((HWND) GetHWND(), (const char *)label); -} - -void wxRadioButton::SetValue(bool value) -{ -// Following necessary for Win32s, because Win32s translate BM_SETCHECK - SendMessage((HWND) GetHWND(), BM_SETCHECK, (WPARAM)value, 0L); -} - -// Get single selection -bool wxRadioButton::GetValue(void) const -{ - return (SendMessage((HWND) GetHWND(), BM_GETCHECK, 0, 0L) != 0); -} - -WXHBRUSH wxRadioButton::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; - } -#endif - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -void wxRadioButton::Command (wxCommandEvent & event) -{ - SetValue ( (event.m_commandInt != 0) ); - ProcessCommand (event); -} - - -// Not implemented -#if 0 -bool wxBitmapRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxBitmap *bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - SetBackgroundColour(parent->GetBackgroundColour()); - SetForegroundColour(parent->GetForegroundColour()); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - m_windowStyle = style ; - - long groupStyle = 0; - if (m_windowStyle & wxRB_GROUP) - groupStyle = WS_GROUP; - -// long msStyle = groupStyle | RADIO_FLAGS; - long msStyle = groupStyle | BS_RADIOBUTTON | WS_CHILD | WS_VISIBLE ; - - m_hWnd = (WXHWND) CreateWindowEx(MakeExtendedStyle(m_windowStyle), RADIO_CLASS, "toggle", - msStyle,0,0,0,0, - (HWND) parent->GetHWND(), (HMENU)m_windowId, wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, "Failed to create radio button", FALSE ); - -#if wxUSE_CTL3D - if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS)) - { - Ctl3dSubclassCtl((HWND) GetHWND()); - m_useCtl3D = TRUE; - } -#endif - - // Subclass again for purposes of dialog editing mode - SubclassWin(GetHWND()); - - SetSize(x, y, width, height); - - return TRUE; -} - -void wxBitmapRadioButton::SetLabel(const wxBitmap *bitmap) -{ -} - -void wxBitmapRadioButton::SetValue(bool value) -{ -// Following necessary for Win32s, because Win32s translate BM_SETCHECK - SendMessage((HWND) GetHWND(), BM_SETCHECK, (WPARAM)value, 0L); -} - -// Get single selection, for single choice list items -bool wxBitmapRadioButton::GetValue(void) const -{ - return (bool)SendMessage((HWND) GetHWND(), BM_GETCHECK, 0, 0L); -} - -#endif diff --git a/src/msw/regconf.cpp b/src/msw/regconf.cpp deleted file mode 100644 index cc1b230b54..0000000000 --- a/src/msw/regconf.cpp +++ /dev/null @@ -1,567 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/regconf.cpp -// Purpose: -// Author: Vadim Zeitlin -// Modified by: -// Created: 27.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "regconf.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/string.h" -#endif //WX_PRECOMP - -#include "wx/event.h" -#include "wx/app.h" -#include "wx/log.h" -#include "wx/config.h" - -#ifndef __WIN16__ - -#include "wx/msw/registry.h" -#include "wx/msw/regconf.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// we put our data in HKLM\SOFTWARE_KEY\appname -#define SOFTWARE_KEY wxString("Software\\") - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -// get the value if the key is opened and it exists -bool TryGetValue(const wxRegKey& key, const wxString& str, wxString& strVal) -{ - return key.IsOpened() && key.HasValue(str) && key.QueryValue(str, strVal); -} - -bool TryGetValue(const wxRegKey& key, const wxString& str, long *plVal) -{ - return key.IsOpened() && key.HasValue(str) && key.QueryValue(str, plVal); -} - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// ctor/dtor -// ---------------------------------------------------------------------------- - -// create the config object which stores its data under HKCU\vendor\app and, if -// style & wxCONFIG_USE_GLOBAL_FILE, under HKLM\vendor\app -wxRegConfig::wxRegConfig(const wxString& appName, const wxString& vendorName, - const wxString& strLocal, const wxString& strGlobal, - long style) - : wxConfigBase(appName, vendorName, strLocal, strGlobal, style) -{ - wxString strRoot; - - bool bDoUseGlobal = (style & wxCONFIG_USE_GLOBAL_FILE) != 0; - - // the convention is to put the programs keys under \ - // (but it can be overriden by specifying the pathes explicitly in strLocal - // and/or strGlobal) - if ( strLocal.IsEmpty() || (strGlobal.IsEmpty() && bDoUseGlobal) ) - { - if ( vendorName.IsEmpty() ) - { - if ( wxTheApp ) - strRoot = wxTheApp->GetVendorName(); - } - else - { - strRoot = vendorName; - } - - // no '\\' needed if no vendor name - if ( !strRoot.IsEmpty() ) - { - strRoot += '\\'; - } - - if ( appName.IsEmpty() ) - { - wxCHECK_RET( wxTheApp, "No application name in wxRegConfig ctor!" ); - strRoot << wxTheApp->GetAppName(); - } - else - { - strRoot << appName; - } - } - //else: we don't need to do all the complicated stuff above - - wxString str = strLocal.IsEmpty() ? strRoot : strLocal; - m_keyLocalRoot.SetName(wxRegKey::HKCU, SOFTWARE_KEY + str); - m_keyLocal.SetName(m_keyLocalRoot, ""); - - if ( bDoUseGlobal ) - { - str = strGlobal.IsEmpty() ? strRoot : strGlobal; - m_keyGlobalRoot.SetName(wxRegKey::HKLM, SOFTWARE_KEY + str); - m_keyGlobal.SetName(m_keyGlobalRoot, ""); - } - - // Create() will Open() if key already exists - m_keyLocalRoot.Create(); - - // as it's the same key, Open() shouldn't fail (i.e. no need for Create()) - m_keyLocal.Open(); - - // OTOH, this key may perfectly not exist, so suppress error messages the call - // to Open() might generate - if ( bDoUseGlobal ) - { - wxLogNull nolog; - m_keyGlobalRoot.Open(); - } -} - -wxRegConfig::~wxRegConfig() -{ - // nothing to do - key will be closed in their dtors -} - -// ---------------------------------------------------------------------------- -// path management -// ---------------------------------------------------------------------------- -void wxRegConfig::SetPath(const wxString& strPath) -{ - wxArrayString aParts; - - // because GetPath() returns "" when we're at root, we must understand - // empty string as "/" - if ( strPath.IsEmpty() || (strPath[0] == wxCONFIG_PATH_SEPARATOR) ) { - // absolute path - wxSplitPath(aParts, strPath); - } - else { - // relative path, combine with current one - wxString strFullPath = GetPath(); - strFullPath << wxCONFIG_PATH_SEPARATOR << strPath; - wxSplitPath(aParts, strFullPath); - } - - // recombine path parts in one variable - wxString strRegPath; - m_strPath.Empty(); - for ( size_t n = 0; n < aParts.Count(); n++ ) { - strRegPath << '\\' << aParts[n]; - m_strPath << wxCONFIG_PATH_SEPARATOR << aParts[n]; - } - - // change current key(s) - m_keyLocal.SetName(m_keyLocalRoot, strRegPath); - m_keyGlobal.SetName(m_keyGlobalRoot, strRegPath); - m_keyLocal.Create(); - - wxLogNull nolog; - m_keyGlobal.Open(); -} - -// ---------------------------------------------------------------------------- -// enumeration (works only with current group) -// ---------------------------------------------------------------------------- - -/* - We want to enumerate all local keys/values after the global ones, but, of - course, we don't want to repeat a key which appears locally as well as - globally twice. - - We use the 15th bit of lIndex for distinction between global and local. - */ - -#define LOCAL_MASK 0x8000 -#define IS_LOCAL_INDEX(l) (((l) & LOCAL_MASK) != 0) - -bool wxRegConfig::GetFirstGroup(wxString& str, long& lIndex) const -{ - lIndex = 0; - return GetNextGroup(str, lIndex); -} - -bool wxRegConfig::GetNextGroup(wxString& str, long& lIndex) const -{ - // are we already enumerating local entries? - if ( m_keyGlobal.IsOpened() && !IS_LOCAL_INDEX(lIndex) ) { - // try to find a global entry which doesn't appear locally - do { - if ( !m_keyGlobal.GetNextKey(str, lIndex) ) { - // no more global entries - lIndex |= LOCAL_MASK; - break; - } - } while( m_keyLocal.HasSubKey(str) ); - } - - // much easier with local entries: get the next one we find - // (don't forget to clear our flag bit and set it again later) - lIndex &= ~LOCAL_MASK; - bool bOk = m_keyLocal.GetNextKey(str, lIndex); - lIndex |= LOCAL_MASK; - - return bOk; -} - -bool wxRegConfig::GetFirstEntry(wxString& str, long& lIndex) const -{ - lIndex = 0; - return GetNextEntry(str, lIndex); -} - -bool wxRegConfig::GetNextEntry(wxString& str, long& lIndex) const -{ - // are we already enumerating local entries? - if ( m_keyGlobal.IsOpened() && !IS_LOCAL_INDEX(lIndex) ) { - // try to find a global entry which doesn't appear locally - do { - if ( !m_keyGlobal.GetNextValue(str, lIndex) ) { - // no more global entries - lIndex |= LOCAL_MASK; - break; - } - } while( m_keyLocal.HasValue(str) ); - } - - // much easier with local entries: get the next one we find - // (don't forget to clear our flag bit and set it again later) - lIndex &= ~LOCAL_MASK; - bool bOk = m_keyLocal.GetNextValue(str, lIndex); - lIndex |= LOCAL_MASK; - - return bOk; -} - -size_t wxRegConfig::GetNumberOfEntries(bool bRecursive) const -{ - size_t nEntries = 0; - - // dummy vars - wxString str; - long l; - bool bCont = ((wxRegConfig*)this)->GetFirstEntry(str, l); - while ( bCont ) { - nEntries++; - - bCont = ((wxRegConfig*)this)->GetNextEntry(str, l); - } - - return nEntries; -} - -size_t wxRegConfig::GetNumberOfGroups(bool bRecursive) const -{ - size_t nGroups = 0; - - // dummy vars - wxString str; - long l; - bool bCont = ((wxRegConfig*)this)->GetFirstGroup(str, l); - while ( bCont ) { - nGroups++; - - bCont = ((wxRegConfig*)this)->GetNextGroup(str, l); - } - - return nGroups; -} - -// ---------------------------------------------------------------------------- -// tests for existence -// ---------------------------------------------------------------------------- - -bool wxRegConfig::HasGroup(const wxString& key) const -{ - wxConfigPathChanger path(this, key); - - wxString strName(path.Name()); - - return m_keyLocal.HasSubKey(strName) || m_keyGlobal.HasSubKey(strName); -} - -bool wxRegConfig::HasEntry(const wxString& key) const -{ - wxConfigPathChanger path(this, key); - - wxString strName(path.Name()); - - return m_keyLocal.HasValue(strName) || m_keyGlobal.HasValue(strName); -} - -wxConfigBase::EntryType wxRegConfig::GetEntryType(const wxString& key) const -{ - wxConfigPathChanger path(this, key); - - wxString strName(path.Name()); - - bool isNumeric; - if ( m_keyLocal.HasValue(strName) ) - isNumeric = m_keyLocal.IsNumericValue(strName); - else if ( m_keyGlobal.HasValue(strName) ) - isNumeric = m_keyGlobal.IsNumericValue(strName); - else - return wxConfigBase::Type_Unknown; - - return isNumeric ? wxConfigBase::Type_Integer : wxConfigBase::Type_String; -} - -// ---------------------------------------------------------------------------- -// reading/writing -// ---------------------------------------------------------------------------- - -bool wxRegConfig::Read(const wxString& key, wxString *pStr) const -{ - wxConfigPathChanger path(this, key); - - bool bQueryGlobal = TRUE; - - // if immutable key exists in global key we must check that it's not - // overriden by the local key with the same name - if ( IsImmutable(path.Name()) ) { - if ( TryGetValue(m_keyGlobal, path.Name(), *pStr) ) { - if ( m_keyLocal.HasValue(path.Name()) ) { - wxLogWarning("User value for immutable key '%s' ignored.", - path.Name().c_str()); - } - *pStr = wxConfigBase::ExpandEnvVars(*pStr); - return TRUE; - } - else { - // don't waste time - it's not there anyhow - bQueryGlobal = FALSE; - } - } - - // first try local key - if ( TryGetValue(m_keyLocal, path.Name(), *pStr) || - (bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) { - // nothing to do - - *pStr = wxConfigBase::ExpandEnvVars(*pStr); - return TRUE; - } - - return FALSE; -} - -bool wxRegConfig::Read(const wxString& key, wxString *pStr, - const wxString& szDefault) const -{ - wxConfigPathChanger path(this, key); - - bool bQueryGlobal = TRUE; - - // if immutable key exists in global key we must check that it's not - // overriden by the local key with the same name - if ( IsImmutable(path.Name()) ) { - if ( TryGetValue(m_keyGlobal, path.Name(), *pStr) ) { - if ( m_keyLocal.HasValue(path.Name()) ) { - wxLogWarning("User value for immutable key '%s' ignored.", - path.Name().c_str()); - } - - return TRUE; - } - else { - // don't waste time - it's not there anyhow - bQueryGlobal = FALSE; - } - } - - // first try local key - if ( TryGetValue(m_keyLocal, path.Name(), *pStr) || - (bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) { - *pStr = wxConfigBase::ExpandEnvVars(*pStr); - return TRUE; - } - else { - if ( IsRecordingDefaults() ) { - ((wxRegConfig*)this)->Write(key, szDefault); - } - - // default value - *pStr = szDefault; - } - - *pStr = wxConfigBase::ExpandEnvVars(*pStr); - - return FALSE; -} - -bool wxRegConfig::Read(const wxString& key, long *plResult) const -{ - wxConfigPathChanger path(this, key); - - bool bQueryGlobal = TRUE; - - // if immutable key exists in global key we must check that it's not - // overriden by the local key with the same name - if ( IsImmutable(path.Name()) ) { - if ( TryGetValue(m_keyGlobal, path.Name(), plResult) ) { - if ( m_keyLocal.HasValue(path.Name()) ) { - wxLogWarning("User value for immutable key '%s' ignored.", - path.Name().c_str()); - } - - return TRUE; - } - else { - // don't waste time - it's not there anyhow - bQueryGlobal = FALSE; - } - } - - // first try local key - if ( TryGetValue(m_keyLocal, path.Name(), plResult) || - (bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), plResult)) ) { - return TRUE; - } - return FALSE; -} - -bool wxRegConfig::Write(const wxString& key, const wxString& szValue) -{ - wxConfigPathChanger path(this, key); - - if ( IsImmutable(path.Name()) ) { - wxLogError("Can't change immutable entry '%s'.", path.Name().c_str()); - return FALSE; - } - - return m_keyLocal.SetValue(path.Name(), szValue); -} - -bool wxRegConfig::Write(const wxString& key, long lValue) -{ - wxConfigPathChanger path(this, key); - - if ( IsImmutable(path.Name()) ) { - wxLogError("Can't change immutable entry '%s'.", path.Name().c_str()); - return FALSE; - } - - return m_keyLocal.SetValue(path.Name(), lValue); -} - -// ---------------------------------------------------------------------------- -// renaming -// ---------------------------------------------------------------------------- - -bool wxRegConfig::RenameEntry(const wxString& oldName, const wxString& newName) -{ - // check that the old entry exists... - if ( !HasEntry(oldName) ) - return FALSE; - - // and that the new one doesn't - if ( HasEntry(newName) ) - return FALSE; - - // delete the old entry and create the new one - but do in the reverse - // order to not lose the data if Create() fails - - bool ok; - if ( m_keyLocal.IsNumericValue(oldName) ) - { - long val; - ok = m_keyLocal.QueryValue(oldName, &val) && - m_keyLocal.SetValue(newName, val); - } - else - { - wxString val; - ok = m_keyLocal.QueryValue(oldName, val) && - m_keyLocal.SetValue(newName, val); - } - - if ( !ok ) - return FALSE; - - if ( !m_keyLocal.DeleteValue(oldName) ) - { - m_keyLocal.DeleteValue(newName); - - return FALSE; - } - - return TRUE; -} - -bool wxRegConfig::RenameGroup(const wxString& oldName, const wxString& newName) -{ - // check that the old group exists... - if ( !HasGroup(oldName) ) - return FALSE; - - // and that the new one doesn't - if ( HasGroup(newName) ) - return FALSE; - - // TODO there is no way to rename a registry key - we must do a deep copy - // ourselves - wxFAIL_MSG("Registry key renaming not implemented"); - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// deleting -// ---------------------------------------------------------------------------- -bool wxRegConfig::DeleteEntry(const wxString& value, bool bGroupIfEmptyAlso) -{ - wxConfigPathChanger path(this, value); - - if ( !m_keyLocal.DeleteValue(path.Name()) ) - return FALSE; - - if ( !m_keyLocal.HasSubkeys() ) { - wxString strKey = GetPath().AfterLast(wxCONFIG_PATH_SEPARATOR); - SetPath(".."); // changes m_keyLocal - return m_keyLocal.DeleteKey(strKey); - } - - return TRUE; -} - -bool wxRegConfig::DeleteGroup(const wxString& key) -{ - wxConfigPathChanger path(this, key); - - return m_keyLocal.DeleteKey(path.Name()); -} - -bool wxRegConfig::DeleteAll() -{ - m_keyLocal.Close(); - m_keyGlobal.Close(); - - bool bOk = m_keyLocalRoot.DeleteSelf(); - - // make sure that we opened m_keyGlobalRoot and so it has a reasonable name: - // otherwise we will delete HKEY_CLASSES_ROOT recursively - if ( bOk && m_keyGlobalRoot.IsOpened() ) - bOk = m_keyGlobalRoot.DeleteSelf(); - - return bOk; -} - -#endif - // __WIN16__ - diff --git a/src/msw/region.cpp b/src/msw/region.cpp deleted file mode 100644 index 718ad9de56..0000000000 --- a/src/msw/region.cpp +++ /dev/null @@ -1,429 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msw/region.cpp -// Purpose: Region handling for wxWindows/X11 -// Author: Markus Holzem -// Modified by: -// Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/msw/region.h" -#include "wx/gdicmn.h" - -#include "wx/window.h" -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject) -#endif - -//----------------------------------------------------------------------------- -// wxRegionRefData implementation -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegionRefData : public wxGDIRefData -{ -public: - wxRegionRefData() - { - m_region = 0; - } - - wxRegionRefData(const wxRegionRefData& data) - { -#if defined(__WIN32__) - DWORD noBytes = ::GetRegionData(data.m_region, 0, NULL); - RGNDATA *rgnData = (RGNDATA*) new char[noBytes]; - ::GetRegionData(data.m_region, noBytes, rgnData); - m_region = ::ExtCreateRegion(NULL, noBytes, rgnData); - delete[] (char*) rgnData; -#else - RECT rect; - ::GetRgnBox(data.m_region, &rect); - m_region = ::CreateRectRgnIndirect(&rect); -#endif - } - - ~wxRegionRefData() - { - ::DeleteObject(m_region); - m_region = 0; - } - - HRGN m_region; -}; - -#define M_REGION (((wxRegionRefData*)m_refData)->m_region) - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -/* - * Create an empty region. - */ -wxRegion::wxRegion() -{ - m_refData = new wxRegionRefData; - M_REGION = ::CreateRectRgn(0, 0, 0, 0); -} - -wxRegion::wxRegion(WXHRGN hRegion) -{ - m_refData = new wxRegionRefData; - M_REGION = (HRGN) hRegion; -} - -wxRegion::wxRegion(long x, long y, long w, long h) -{ - m_refData = new wxRegionRefData; - M_REGION = ::CreateRectRgn(x, y, x + w, y + h); -} - -wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - m_refData = new wxRegionRefData; - M_REGION = ::CreateRectRgn(topLeft.x, topLeft.y, bottomRight.x, bottomRight.y); -} - -wxRegion::wxRegion(const wxRect& rect) -{ - m_refData = new wxRegionRefData; - M_REGION = ::CreateRectRgn(rect.GetLeft(), rect.GetTop(), rect.GetRight(), rect.GetBottom()); -} - -/* - * Destroy the region. - */ -wxRegion::~wxRegion() -{ - // m_refData unrefed in ~wxObject -} - -//----------------------------------------------------------------------------- -// Modify region -//----------------------------------------------------------------------------- - -// Clear current region -void wxRegion::Clear() -{ - UnRef(); -} - -// Combine rectangle (x, y, w, h) with this. -bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op) -{ - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - // If ref count is 1, that means it's 'ours' anyway so no action. - - HRGN rectRegion = ::CreateRectRgn(x, y, x + width, y + height); - - int mode = 0; - switch (op) - { - case wxRGN_AND: mode = RGN_AND; break ; - case wxRGN_OR: mode = RGN_OR; break ; - case wxRGN_XOR: mode = RGN_XOR; break ; - case wxRGN_DIFF: mode = RGN_DIFF; break ; - case wxRGN_COPY: - default: - mode = RGN_COPY; break ; - } - - bool success = (ERROR != ::CombineRgn(M_REGION, M_REGION, rectRegion, mode)); - - ::DeleteObject(rectRegion); - - return success; -} - -// Union /e region with this. -bool wxRegion::Combine(const wxRegion& region, wxRegionOp op) -{ - if (region.Empty()) - return FALSE; - - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - - int mode = 0; - switch (op) - { - case wxRGN_AND: mode = RGN_AND; break ; - case wxRGN_OR: mode = RGN_OR; break ; - case wxRGN_XOR: mode = RGN_XOR; break ; - case wxRGN_DIFF: mode = RGN_DIFF; break ; - case wxRGN_COPY: - default: - mode = RGN_COPY; break ; - } - - return (ERROR != ::CombineRgn(M_REGION, M_REGION, ((wxRegionRefData*)region.m_refData)->m_region, mode)); -} - -bool wxRegion::Combine(const wxRect& rect, wxRegionOp op) -{ - return Combine(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight(), op); -} - -//----------------------------------------------------------------------------- -// Information on region -//----------------------------------------------------------------------------- - -// Outer bounds of region -void wxRegion::GetBox(long& x, long& y, long&w, long &h) const -{ - if (m_refData) { - RECT rect; - ::GetRgnBox(M_REGION, & rect); - x = rect.left; - y = rect.top; - w = rect.right - rect.left; - h = rect.bottom - rect.top; - } else { - x = y = w = h = 0; - } -} - -wxRect wxRegion::GetBox() const -{ - long x, y, w, h; - GetBox(x, y, w, h); - return wxRect(x, y, w, h); -} - -// Is region empty? -bool wxRegion::Empty() const -{ - if (M_REGION == 0) - return TRUE; - long x, y, w, h; - GetBox(x, y, w, h); - - return ((w == 0) && (h == 0)); -} - -//----------------------------------------------------------------------------- -// Tests -//----------------------------------------------------------------------------- - -// Does the region contain the point (x,y)? -wxRegionContain wxRegion::Contains(long x, long y) const -{ - if (!m_refData) - return wxOutRegion; - - if (::PtInRegion(M_REGION, (int) x, (int) y)) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the point pt? -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - if (!m_refData) - return wxOutRegion; - - if (::PtInRegion(M_REGION, (int) pt.x, (int) pt.y)) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle (x, y, w, h)? -wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const -{ - if (!m_refData) - return wxOutRegion; - - RECT rect; - rect.left = x; - rect.top = y; - rect.right = x + w; - rect.bottom = y + h; - - if (::RectInRegion(M_REGION, & rect)) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle rect -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - if (!m_refData) - return wxOutRegion; - - long x, y, w, h; - x = rect.x; - y = rect.y; - w = rect.GetWidth(); - h = rect.GetHeight(); - return Contains(x, y, w, h); -} - -// Get internal region handle -WXHRGN wxRegion::GetHRGN() const -{ - if (!m_refData) - return (WXHRGN) 0; - return (WXHRGN) M_REGION; -} - -/////////////////////////////////////////////////////////////////////////////// -// // -// wxRegionIterator // -// // -/////////////////////////////////////////////////////////////////////////////// - -/* - * Initialize empty iterator - */ -wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL) -{ -} - -wxRegionIterator::~wxRegionIterator() -{ - if (m_rects) - delete[] m_rects; -} - -/* - * Initialize iterator for region - */ -wxRegionIterator::wxRegionIterator(const wxRegion& region) -{ - m_rects = NULL; - - Reset(region); -} - -/* - * Reset iterator for a new /e region. - */ -void wxRegionIterator::Reset(const wxRegion& region) -{ - m_current = 0; - m_region = region; - - if (m_rects) - delete[] m_rects; - - m_rects = NULL; - - if (m_region.Empty()) - m_numRects = 0; - else - { -#if defined(__WIN32__) - DWORD noBytes = ::GetRegionData(((wxRegionRefData*)region.m_refData)->m_region, 0, NULL); - RGNDATA *rgnData = (RGNDATA*) new char[noBytes]; - ::GetRegionData(((wxRegionRefData*)region.m_refData)->m_region, noBytes, rgnData); - - RGNDATAHEADER* header = (RGNDATAHEADER*) rgnData; - - m_rects = new wxRect[header->nCount]; - - RECT* rect = (RECT*) ((char*)rgnData + sizeof(RGNDATAHEADER)) ; - size_t i; - for (i = 0; i < header->nCount; i++) - { - m_rects[i] = wxRect(rect->left, rect->top, - rect->right - rect->left, rect->bottom - rect->top); - rect ++; // Advances pointer by sizeof(RECT) - } - - m_numRects = header->nCount; - - delete[] (char*) rgnData; -#else - RECT rect; - ::GetRgnBox(((wxRegionRefData*)region.m_refData)->m_region, &rect); - m_rects = new wxRect[1]; - m_rects[0].x = rect.left; - m_rects[0].y = rect.top; - m_rects[0].width = rect.right - rect.left; - m_rects[0].height = rect.bottom - rect.top; - - m_numRects = 1; -#endif - } -} - -/* - * Increment iterator. The rectangle returned is the one after the - * incrementation. - */ -void wxRegionIterator::operator ++ () -{ - if (m_current < m_numRects) - ++m_current; -} - -/* - * Increment iterator. The rectangle returned is the one before the - * incrementation. - */ -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_numRects) - ++m_current; -} - -long wxRegionIterator::GetX() const -{ - if (m_current < m_numRects) - return m_rects[m_current].x; - return 0; -} - -long wxRegionIterator::GetY() const -{ - if (m_current < m_numRects) - return m_rects[m_current].y; - return 0; -} - -long wxRegionIterator::GetW() const -{ - if (m_current < m_numRects) - return m_rects[m_current].width ; - return 0; -} - -long wxRegionIterator::GetH() const -{ - if (m_current < m_numRects) - return m_rects[m_current].height; - return 0; -} - diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp deleted file mode 100644 index 099b376cfd..0000000000 --- a/src/msw/registry.cpp +++ /dev/null @@ -1,838 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/registry.cpp -// Purpose: implementation of registry classes and functions -// Author: Vadim Zeitlin -// Modified by: -// Created: 03.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -// TODO: - parsing of registry key names -// - support of other (than REG_SZ/REG_DWORD) registry types -// - add high level functions (RegisterOleServer, ...) -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "registry.h" -#endif - -// for compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -// other wxWindows headers -#include "wx/string.h" -#include "wx/intl.h" -#include "wx/log.h" -#include "wx/config.h" // for wxExpandEnvVars - -#ifndef __WIN16__ - -// Windows headers -/* -#define STRICT -#define WIN32_LEAN_AND_MEAN -*/ - -#include - -// other std headers -#include // for _MAX_PATH - -#ifndef _MAX_PATH - #define _MAX_PATH 512 -#endif - -// our header -#define HKEY_DEFINED // already defined in windows.h -#include "wx/msw/registry.h" - -// some registry functions don't like signed chars -typedef unsigned char *RegString; - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// the standard key names, short names and handles all bundled together for -// convenient access -static struct -{ - HKEY hkey; - const char *szName; - const char *szShortName; -} -aStdKeys[] = -{ - { HKEY_CLASSES_ROOT, "HKEY_CLASSES_ROOT", "HKCR" }, -#ifdef __WIN32__ - { HKEY_CURRENT_USER, "HKEY_CURRENT_USER", "HKCU" }, - { HKEY_LOCAL_MACHINE, "HKEY_LOCAL_MACHINE", "HKLM" }, - { HKEY_USERS, "HKEY_USERS", "HKU" }, // short name? - { HKEY_PERFORMANCE_DATA, "HKEY_PERFORMANCE_DATA", "HKPD" }, -#if WINVER >= 0x0400 - { HKEY_CURRENT_CONFIG, "HKEY_CURRENT_CONFIG", "HKCC" }, -#ifndef __GNUWIN32__ - { HKEY_DYN_DATA, "HKEY_DYN_DATA", "HKDD" }, // short name? -#endif //GNUWIN32 -#endif //WINVER >= 4.0 -#endif //WIN32 -}; - -// the registry name separator (perhaps one day MS will change it to '/' ;-) -#define REG_SEPARATOR '\\' - -// useful for Windows programmers: makes somewhat more clear all these zeroes -// being passed to Windows APIs -#define RESERVED (NULL) - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- -// @ const_cast<> is not yet supported by all compilers -#define CONST_CAST ((wxRegKey *)this)-> - -#if !USE_MUTABLE - #define m_dwLastError CONST_CAST m_dwLastError -#endif - -// ---------------------------------------------------------------------------- -// non member functions -// ---------------------------------------------------------------------------- - -// removes the trailing backslash from the string if it has one -static inline void RemoveTrailingSeparator(wxString& str); - -// returns TRUE if given registry key exists -static bool KeyExists(WXHKEY hRootKey, const char *szKey); - -// combines value and key name (uses static buffer!) -static const char *GetFullName(const wxRegKey *pKey, - const char *szValue = NULL); - -// ============================================================================ -// implementation of wxRegKey class -// ============================================================================ - -// ---------------------------------------------------------------------------- -// static functions and variables -// ---------------------------------------------------------------------------- - -const size_t wxRegKey::nStdKeys = WXSIZEOF(aStdKeys); - -// @@ should take a `StdKey key', but as it's often going to be used in loops -// it would require casts in user code. -const char *wxRegKey::GetStdKeyName(size_t key) -{ - // return empty string if key is invalid - wxCHECK_MSG( key < nStdKeys, "", "invalid key in wxRegKey::GetStdKeyName" ); - - return aStdKeys[key].szName; -} - -const char *wxRegKey::GetStdKeyShortName(size_t key) -{ - // return empty string if key is invalid - wxCHECK( key < nStdKeys, "" ); - - return aStdKeys[key].szShortName; -} - -wxRegKey::StdKey wxRegKey::ExtractKeyName(wxString& strKey) -{ - wxString strRoot = strKey.Left(REG_SEPARATOR); - - HKEY hRootKey = 0; - size_t ui; - for ( ui = 0; ui < nStdKeys; ui++ ) { - if ( strRoot.CmpNoCase(aStdKeys[ui].szName) == 0 || - strRoot.CmpNoCase(aStdKeys[ui].szShortName) == 0 ) { - hRootKey = aStdKeys[ui].hkey; - break; - } - } - - if ( ui == nStdKeys ) { - wxFAIL_MSG("invalid key prefix in wxRegKey::ExtractKeyName."); - - hRootKey = HKEY_CLASSES_ROOT; - } - else { - strKey = strKey.After(REG_SEPARATOR); - if ( !strKey.IsEmpty() && strKey.Last() == REG_SEPARATOR ) - strKey.Truncate(strKey.Len() - 1); - } - - return (wxRegKey::StdKey)(int)hRootKey; -} - -wxRegKey::StdKey wxRegKey::GetStdKeyFromHkey(WXHKEY hkey) -{ - for ( size_t ui = 0; ui < nStdKeys; ui++ ) { - if ( (int) aStdKeys[ui].hkey == (int) hkey ) - return (StdKey)ui; - } - - wxFAIL_MSG("non root hkey passed to wxRegKey::GetStdKeyFromHkey."); - - return HKCR; -} - -// ---------------------------------------------------------------------------- -// ctors and dtor -// ---------------------------------------------------------------------------- - -wxRegKey::wxRegKey() -{ - m_hKey = 0; - m_hRootKey = (WXHKEY) aStdKeys[HKCR].hkey; - m_dwLastError = 0; -} - -wxRegKey::wxRegKey(const wxString& strKey) : m_strKey(strKey) -{ - m_hRootKey = (WXHKEY) aStdKeys[ExtractKeyName(m_strKey)].hkey; - m_hKey = (WXHKEY) NULL; - m_dwLastError = 0; -} - -// parent is a predefined (and preopened) key -wxRegKey::wxRegKey(StdKey keyParent, const wxString& strKey) : m_strKey(strKey) -{ - RemoveTrailingSeparator(m_strKey); - m_hRootKey = (WXHKEY) aStdKeys[keyParent].hkey; - m_hKey = (WXHKEY) NULL; - m_dwLastError = 0; -} - -// parent is a normal regkey -wxRegKey::wxRegKey(const wxRegKey& keyParent, const wxString& strKey) - : m_strKey(keyParent.m_strKey) -{ - // combine our name with parent's to get the full name - if ( !m_strKey.IsEmpty() && - (strKey.IsEmpty() || strKey[0] != REG_SEPARATOR) ) { - m_strKey += REG_SEPARATOR; - } - - m_strKey += strKey; - RemoveTrailingSeparator(m_strKey); - - m_hRootKey = keyParent.m_hRootKey; - m_hKey = (WXHKEY) NULL; - m_dwLastError = 0; -} - -// dtor closes the key releasing system resource -wxRegKey::~wxRegKey() -{ - Close(); -} - -// ---------------------------------------------------------------------------- -// change the key name/hkey -// ---------------------------------------------------------------------------- - -// set the full key name -void wxRegKey::SetName(const wxString& strKey) -{ - Close(); - - m_strKey = strKey; - m_hRootKey = (WXHKEY) aStdKeys[ExtractKeyName(m_strKey)].hkey; -} - -// the name is relative to the parent key -void wxRegKey::SetName(StdKey keyParent, const wxString& strKey) -{ - Close(); - - m_strKey = strKey; - RemoveTrailingSeparator(m_strKey); - m_hRootKey = (WXHKEY) aStdKeys[keyParent].hkey; -} - -// the name is relative to the parent key -void wxRegKey::SetName(const wxRegKey& keyParent, const wxString& strKey) -{ - Close(); - - // combine our name with parent's to get the full name - m_strKey = keyParent.m_strKey; - if ( !strKey.IsEmpty() && strKey[0] != REG_SEPARATOR ) - m_strKey += REG_SEPARATOR; - m_strKey += strKey; - - RemoveTrailingSeparator(m_strKey); - - m_hRootKey = keyParent.m_hRootKey; -} - -// hKey should be opened and will be closed in wxRegKey dtor -void wxRegKey::SetHkey(WXHKEY hKey) -{ - Close(); - - m_hKey = hKey; -} - -// ---------------------------------------------------------------------------- -// info about the key -// ---------------------------------------------------------------------------- - -// returns TRUE if the key exists -bool wxRegKey::Exists() const -{ - // opened key has to exist, try to open it if not done yet - return IsOpened() ? TRUE : KeyExists(m_hRootKey, m_strKey); -} - -// returns the full name of the key (prefix is abbreviated if bShortPrefix) -wxString wxRegKey::GetName(bool bShortPrefix) const -{ - StdKey key = GetStdKeyFromHkey((StdKey) m_hRootKey); - wxString str = bShortPrefix ? aStdKeys[key].szShortName - : aStdKeys[key].szName; - if ( !m_strKey.IsEmpty() ) - str << "\\" << m_strKey; - - return str; -} - -#ifdef __GNUWIN32__ -bool wxRegKey::GetKeyInfo(size_t* pnSubKeys, - size_t* pnMaxKeyLen, - size_t* pnValues, - size_t* pnMaxValueLen) const -#else -bool wxRegKey::GetKeyInfo(ulong *pnSubKeys, - ulong *pnMaxKeyLen, - ulong *pnValues, - ulong *pnMaxValueLen) const -#endif -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - m_dwLastError = ::RegQueryInfoKey - ( - (HKEY) m_hKey, - NULL, // class name - NULL, // (ptr to) size of class name buffer - RESERVED, - pnSubKeys, // [out] number of subkeys - pnMaxKeyLen, // [out] max length of a subkey name - NULL, // longest subkey class name - pnValues, // [out] number of values - pnMaxValueLen, // [out] max length of a value name - NULL, // longest value data - NULL, // security descriptor - NULL // time of last modification - ); - - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't get info about registry key '%s'"), - GetName().c_str()); - return FALSE; - } - else - return TRUE; -#else // Win16 - wxFAIL_MSG("GetKeyInfo() not implemented"); - - return FALSE; -#endif -} - -// ---------------------------------------------------------------------------- -// operations -// ---------------------------------------------------------------------------- - -// opens key (it's not an error to call Open() on an already opened key) -bool wxRegKey::Open() -{ - if ( IsOpened() ) - return TRUE; - - HKEY tmpKey; - m_dwLastError = RegOpenKey((HKEY) m_hRootKey, m_strKey, &tmpKey); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't open registry key '%s'"), - GetName().c_str()); - return FALSE; - } - else - { - m_hKey = (WXHKEY) tmpKey; - return TRUE; - } -} - -// creates key, failing if it exists and !bOkIfExists -bool wxRegKey::Create(bool bOkIfExists) -{ - // check for existence only if asked (i.e. order is important!) - if ( !bOkIfExists && Exists() ) { - return FALSE; - } - - if ( IsOpened() ) - return TRUE; - - HKEY tmpKey; - m_dwLastError = RegCreateKey((HKEY) m_hRootKey, m_strKey, &tmpKey); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't create registry key '%s'"), - GetName().c_str()); - return FALSE; - } - else - { - m_hKey = (WXHKEY) tmpKey; - return TRUE; - } -} - -// close the key, it's not an error to call it when not opened -bool wxRegKey::Close() -{ - if ( IsOpened() ) { - m_dwLastError = RegCloseKey((HKEY) m_hKey); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't close registry key '%s'"), - GetName().c_str()); - - m_hKey = 0; - return FALSE; - } - else { - m_hKey = 0; - } - } - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// delete keys/values -// ---------------------------------------------------------------------------- -bool wxRegKey::DeleteSelf() -{ - { - wxLogNull nolog; - if ( !Open() ) { - // it already doesn't exist - ok! - return TRUE; - } - } - - // prevent a buggy program from erasing one of the root registry keys or an - // immediate subkey (i.e. one which doesn't have '\\' inside) of any other - // key except HKCR (HKCR has some "deleteable" subkeys) - if ( m_strKey.IsEmpty() || (m_hRootKey != HKCR && - m_strKey.Find(REG_SEPARATOR) == wxNOT_FOUND) ) { - wxLogError(_("Registry key '%s' is needed for normal system operation,\n" - "deleting it will leave your system in unusable state:\n" - "operation aborted."), GetFullName(this)); - - return FALSE; - } - - // we can't delete keys while enumerating because it confuses GetNextKey, so - // we first save the key names and then delete them all - wxArrayString astrSubkeys; - - wxString strKey; - long lIndex; - bool bCont = GetFirstKey(strKey, lIndex); - while ( bCont ) { - astrSubkeys.Add(strKey); - - bCont = GetNextKey(strKey, lIndex); - } - - size_t nKeyCount = astrSubkeys.Count(); - for ( size_t nKey = 0; nKey < nKeyCount; nKey++ ) { - wxRegKey key(*this, astrSubkeys[nKey]); - if ( !key.DeleteSelf() ) - return FALSE; - } - - // now delete this key itself - Close(); - - m_dwLastError = RegDeleteKey((HKEY) m_hRootKey, m_strKey); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't delete key '%s'"), - GetName().c_str()); - return FALSE; - } - - return TRUE; -} - -bool wxRegKey::DeleteKey(const char *szKey) -{ - if ( !Open() ) - return FALSE; - - wxRegKey key(*this, szKey); - return key.DeleteSelf(); -} - -bool wxRegKey::DeleteValue(const char *szValue) -{ - if ( !Open() ) - return FALSE; - -#if defined(__WIN32__) && !defined(__TWIN32__) - m_dwLastError = RegDeleteValue((HKEY) m_hKey, (char*) (const char*) szValue); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't delete value '%s' from key '%s'"), - szValue, GetName().c_str()); - return FALSE; - } - #else //WIN16 - // named registry values don't exist in Win16 world - wxASSERT( IsEmpty(szValue) ); - - // just set the (default and unique) value of the key to "" - m_dwLastError = RegSetValue((HKEY) m_hKey, NULL, REG_SZ, "", RESERVED); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't delete value of key '%s'"), - GetName().c_str()); - return FALSE; - } - #endif //WIN16/32 - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// access to values and subkeys -// ---------------------------------------------------------------------------- - -// return TRUE if value exists -bool wxRegKey::HasValue(const char *szValue) const -{ - // this function should be silent, so suppress possible messages from Open() - wxLogNull nolog; - - #ifdef __WIN32__ - if ( CONST_CAST Open() ) { - return RegQueryValueEx((HKEY) m_hKey, (char*) (const char*) szValue, RESERVED, - NULL, NULL, NULL) == ERROR_SUCCESS; - } - else - return FALSE; - #else // WIN16 - // only unnamed value exists - return IsEmpty(szValue); - #endif // WIN16/32 -} - -// returns TRUE if this key has any subkeys -bool wxRegKey::HasSubkeys() const -{ - // suppress possible messages from GetFirstKey() - wxLogNull nolog; - - // just call GetFirstKey with dummy parameters - wxString str; - long l; - return CONST_CAST GetFirstKey(str, l); -} - -// returns TRUE if given subkey exists -bool wxRegKey::HasSubKey(const char *szKey) const -{ - // this function should be silent, so suppress possible messages from Open() - wxLogNull nolog; - - if ( CONST_CAST Open() ) - return KeyExists(m_hKey, szKey); - else - return FALSE; -} - -wxRegKey::ValueType wxRegKey::GetValueType(const char *szValue) const -{ - #ifdef __WIN32__ - if ( ! CONST_CAST Open() ) - return Type_None; - - DWORD dwType; - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, (char*) (const char*) szValue, RESERVED, - &dwType, NULL, NULL); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't read value of key '%s'"), - GetName().c_str()); - return Type_None; - } - - return (ValueType)dwType; - #else //WIN16 - return IsEmpty(szValue) ? Type_String : Type_None; - #endif //WIN16/32 -} - -#ifdef __WIN32__ -bool wxRegKey::SetValue(const char *szValue, long lValue) -{ -#ifdef __TWIN32__ - wxFAIL_MSG("RegSetValueEx not implemented by TWIN32"); - return FALSE; -#else - if ( CONST_CAST Open() ) { - m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, (DWORD) RESERVED, REG_DWORD, - (RegString)&lValue, sizeof(lValue)); - if ( m_dwLastError == ERROR_SUCCESS ) - return TRUE; - } - - wxLogSysError(m_dwLastError, _("can't set value of '%s'"), - GetFullName(this, szValue)); - return FALSE; -#endif -} - -bool wxRegKey::QueryValue(const char *szValue, long *plValue) const -{ - if ( CONST_CAST Open() ) { - DWORD dwType, dwSize = sizeof(DWORD); - RegString pBuf = (RegString)plValue; - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, (char*) (const char*) szValue, RESERVED, - &dwType, pBuf, &dwSize); - if ( m_dwLastError != ERROR_SUCCESS ) { - wxLogSysError(m_dwLastError, _("can't read value of key '%s'"), - GetName().c_str()); - return FALSE; - } - else { - // check that we read the value of right type - wxASSERT_MSG( dwType == REG_DWORD, - "Type mismatch in wxRegKey::QueryValue()." ); - - return TRUE; - } - } - else - return FALSE; -} - -#endif //Win32 - -bool wxRegKey::QueryValue(const char *szValue, wxString& strValue) const -{ - if ( CONST_CAST Open() ) { - #ifdef __WIN32__ - // first get the type and size of the data - DWORD dwType, dwSize; - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, (char*) (const char*) szValue, RESERVED, - &dwType, NULL, &dwSize); - if ( m_dwLastError == ERROR_SUCCESS ) { - RegString pBuf = (RegString)strValue.GetWriteBuf(dwSize); - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, (char*) (const char*) szValue, RESERVED, - &dwType, pBuf, &dwSize); - strValue.UngetWriteBuf(); - if ( m_dwLastError == ERROR_SUCCESS ) { - // check that it was the right type - wxASSERT_MSG( dwType == REG_SZ, - "Type mismatch in wxRegKey::QueryValue()." ); - - return TRUE; - } - } - #else //WIN16 - // named registry values don't exist in Win16 - wxASSERT( IsEmpty(szValue) ); - - m_dwLastError = RegQueryValue((HKEY) m_hKey, 0, strValue.GetWriteBuf(256), &l); - strValue.UngetWriteBuf(); - if ( m_dwLastError == ERROR_SUCCESS ) - return TRUE; - #endif //WIN16/32 - } - - wxLogSysError(m_dwLastError, _("can't read value of '%s'"), - GetFullName(this, szValue)); - return FALSE; -} - -bool wxRegKey::SetValue(const char *szValue, const wxString& strValue) -{ - if ( CONST_CAST Open() ) { -#if defined( __WIN32__) && !defined(__TWIN32__) - m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, (DWORD) RESERVED, REG_SZ, - (RegString)strValue.c_str(), - strValue.Len() + 1); - if ( m_dwLastError == ERROR_SUCCESS ) - return TRUE; - #else //WIN16 - // named registry values don't exist in Win16 - wxASSERT( IsEmpty(szValue) ); - - m_dwLastError = RegSetValue((HKEY) m_hKey, NULL, REG_SZ, strValue, NULL); - if ( m_dwLastError == ERROR_SUCCESS ) - return TRUE; - #endif //WIN16/32 - } - - wxLogSysError(m_dwLastError, _("can't set value of '%s'"), - GetFullName(this, szValue)); - return FALSE; -} - -wxRegKey::operator wxString() const -{ - wxString str; - QueryValue(NULL, str); - return str; -} - -// ---------------------------------------------------------------------------- -// enumeration -// NB: all these functions require an index variable which allows to have -// several concurrently running indexations on the same key -// ---------------------------------------------------------------------------- - -bool wxRegKey::GetFirstValue(wxString& strValueName, long& lIndex) -{ - if ( !Open() ) - return FALSE; - - lIndex = 0; - return GetNextValue(strValueName, lIndex); -} - -bool wxRegKey::GetNextValue(wxString& strValueName, long& lIndex) const -{ - wxASSERT( IsOpened() ); - - // are we already at the end of enumeration? - if ( lIndex == -1 ) - return FALSE; - -#if defined( __WIN32__) && !defined(__TWIN32__) - char szValueName[1024]; // @@ use RegQueryInfoKey... - DWORD dwValueLen = WXSIZEOF(szValueName); - - lIndex++; - m_dwLastError = RegEnumValue((HKEY) m_hKey, lIndex, - szValueName, &dwValueLen, - RESERVED, - NULL, // [out] type - NULL, // [out] buffer for value - NULL); // [i/o] it's length - - if ( m_dwLastError != ERROR_SUCCESS ) { - if ( m_dwLastError == ERROR_NO_MORE_ITEMS ) { - m_dwLastError = ERROR_SUCCESS; - lIndex = -1; - } - else { - wxLogSysError(m_dwLastError, _("can't enumerate values of key '%s'"), - GetName().c_str()); - } - - return FALSE; - } - - strValueName = szValueName; - #else //WIN16 - // only one unnamed value - wxASSERT( lIndex == 0 ); - - lIndex = -1; - strValueName.Empty(); - #endif - - return TRUE; -} - -bool wxRegKey::GetFirstKey(wxString& strKeyName, long& lIndex) -{ - if ( !Open() ) - return FALSE; - - lIndex = 0; - return GetNextKey(strKeyName, lIndex); -} - -bool wxRegKey::GetNextKey(wxString& strKeyName, long& lIndex) const -{ - wxASSERT( IsOpened() ); - - // are we already at the end of enumeration? - if ( lIndex == -1 ) - return FALSE; - - char szKeyName[_MAX_PATH + 1]; - m_dwLastError = RegEnumKey((HKEY) m_hKey, lIndex++, szKeyName, WXSIZEOF(szKeyName)); - - if ( m_dwLastError != ERROR_SUCCESS ) { - if ( m_dwLastError == ERROR_NO_MORE_ITEMS ) { - m_dwLastError = ERROR_SUCCESS; - lIndex = -1; - } - else { - wxLogSysError(m_dwLastError, _("can't enumerate subkeys of key '%s'"), - GetName().c_str()); - } - - return FALSE; - } - - strKeyName = szKeyName; - return TRUE; -} - -// returns TRUE if the value contains a number (else it's some string) -bool wxRegKey::IsNumericValue(const char *szValue) const - { - ValueType type = GetValueType(szValue); - switch ( type ) { - case Type_Dword: - case Type_Dword_little_endian: - case Type_Dword_big_endian: - return TRUE; - - default: - return FALSE; - } - } - -// ============================================================================ -// implementation of global private functions -// ============================================================================ -bool KeyExists(WXHKEY hRootKey, const char *szKey) -{ - HKEY hkeyDummy; - if ( RegOpenKey( (HKEY) hRootKey, szKey, &hkeyDummy) == ERROR_SUCCESS ) { - RegCloseKey(hkeyDummy); - return TRUE; - } - else - return FALSE; -} - -const char *GetFullName(const wxRegKey *pKey, const char *szValue) -{ - static wxString s_str; - s_str = pKey->GetName(); - if ( !IsEmpty(szValue) ) - s_str << "\\" << szValue; - - return s_str.c_str(); -} - -void RemoveTrailingSeparator(wxString& str) -{ - if ( !str.IsEmpty() && str.Last() == REG_SEPARATOR ) - str.Truncate(str.Len() - 1); -} - -#endif - // __WIN16__ - diff --git a/src/msw/salford.lnk b/src/msw/salford.lnk deleted file mode 100644 index 54f6214e41..0000000000 --- a/src/msw/salford.lnk +++ /dev/null @@ -1,153 +0,0 @@ -archive ..\..\lib\wx.lib -addobj accel.obj -addobj app.obj -addobj bitmap.obj -addobj bmpbuttn.obj -addobj brush.obj -addobj button.obj -addobj checkbox.obj -addobj checklst.obj -addobj choicdgg.obj -addobj choice.obj -addobj clipbrd.obj -addobj cmndata.obj -addobj colordlg.obj -addobj colour.obj -addobj combobox.obj -addobj config.obj -addobj control.obj -addobj curico.obj -addobj cursor.obj -addobj data.obj -addobj date.obj -addobj datstrm.obj -addobj dc.obj -addobj dcclient.obj -addobj dcmemory.obj -addobj dcprint.obj -addobj dcscreen.obj -addobj dde.obj -addobj dialog.obj -addobj dib.obj -addobj dibutils.obj -addobj dirdlgg.obj -addobj docmdi.obj -addobj docview.obj -addobj dynarray.obj -addobj dynlib.obj -addobj event.obj -addobj extended.obj -addobj file.obj -addobj fileconf.obj -addobj filedlg.obj -addobj filefn.obj -addobj font.obj -addobj fontdlg.obj -addobj frame.obj -addobj framecmn.obj -addobj gauge95.obj -addobj gaugemsw.obj -addobj gdicmn.obj -addobj gdiobj.obj -addobj gridg.obj -addobj hash.obj -addobj helpbase.obj -addobj helpwin.obj -addobj http.obj -addobj icon.obj -addobj image.obj -addobj imaglist.obj -addobj iniconf.obj -addobj intl.obj -addobj ipcbase.obj -addobj joystick.obj -addobj layout.obj -addobj laywin.obj -addobj list.obj -addobj listbox.obj -addobj listctrl.obj -addobj log.obj -addobj mdi.obj -addobj memory.obj -addobj menu.obj -addobj menuitem.obj -addobj metafile.obj -addobj minifram.obj -addobj module.obj -addobj msgdlg.obj -addobj mstream.obj -addobj nativdlg.obj -addobj notebook.obj -addobj object.obj -addobj objstrm.obj -addobj ownerdrw.obj -addobj palette.obj -addobj panelg.obj -addobj pen.obj -addobj penwin.obj -addobj printdlg.obj -addobj printwin.obj -addobj prntbase.obj -addobj process.obj -addobj prop.obj -addobj propform.obj -addobj proplist.obj -addobj protocol.obj -addobj radiobox.obj -addobj radiobut.obj -addobj regconf.obj -addobj region.obj -addobj registry.obj -addobj resource.obj -addobj sashwin.obj -addobj sckaddr.obj -addobj sckfile.obj -addobj sckstrm.obj -addobj scrolbar.obj -addobj scrolwin.obj -addobj settings.obj -addobj slider95.obj -addobj slidrmsw.obj -addobj socket.obj -addobj spinbutt.obj -addobj splitter.obj -addobj statbmp.obj -addobj statbox.obj -addobj statbr95.obj -addobj stattext.obj -addobj statusbr.obj -addobj stream.obj -addobj string.obj -addobj tabctrl.obj -addobj tabg.obj -addobj taskbar.obj -addobj tbar95.obj -addobj tbarbase.obj -addobj tbarmsw.obj -addobj tbarsmpl.obj -addobj textctrl.obj -addobj textdlgg.obj -addobj textfile.obj -addobj thread.obj -addobj time.obj -addobj timer.obj -addobj timercmn.obj -addobj tokenzr.obj -addobj treectrl.obj -addobj url.obj -addobj utils.obj -addobj utilscmn.obj -addobj utilsexc.obj -addobj validate.obj -addobj valtext.obj -addobj variant.obj -addobj wave.obj -addobj wfstream.obj -addobj wincmn.obj -addobj window.obj -addobj wxchar.obj -addobj wxexpr.obj -addobj y_tab.obj -addobj zstream.obj -file - diff --git a/src/msw/scrolbar.cpp b/src/msw/scrolbar.cpp deleted file mode 100644 index 2d9071894f..0000000000 --- a/src/msw/scrolbar.cpp +++ /dev/null @@ -1,349 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: wxScrollBar -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/utils.h" -#endif - -#include "wx/scrolbar.h" -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) - -BEGIN_EVENT_TABLE(wxScrollBar, wxControl) -#if WXWIN_COMPATIBILITY - EVT_SCROLL(wxScrollBar::OnScroll) -#endif -END_EVENT_TABLE() - -#endif - -// Scrollbar -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - if (!parent) - return FALSE; - parent->AddChild(this); - SetName(name); - SetValidator(validator); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (width == -1) - { - if (style & wxHORIZONTAL) - width = 140; - else - width = 14; - } - if (height == -1) - { - if (style & wxVERTICAL) - height = 140; - else - height = 14; - } - - // Now create scrollbar - DWORD _direction = (style & wxHORIZONTAL) ? - SBS_HORZ: SBS_VERT; - HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(style), "SCROLLBAR", "scrollbar", - _direction | WS_CHILD | WS_VISIBLE, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - m_pageSize = 1; - m_viewSize = 1; - m_objectSize = 1; - - ::SetScrollRange(scroll_bar, SB_CTL, 0, 1, FALSE); - ::SetScrollPos(scroll_bar, SB_CTL, 0, FALSE); - ShowWindow(scroll_bar, SW_SHOW); - - SetFont(parent->GetFont()); - - m_hWnd = (WXHWND)scroll_bar; - - // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND) scroll_bar); - - SetSize(x, y, width, height); - - return TRUE; -} - -wxScrollBar::~wxScrollBar(void) -{ -} - -bool wxScrollBar::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, - WXWORD pos, WXHWND control) -{ - int position = ::GetScrollPos((HWND) control, SB_CTL); - int minPos, maxPos; - ::GetScrollRange((HWND) control, SB_CTL, &minPos, &maxPos); - -#if defined(__WIN95__) - // A page size greater than one has the effect of reducing the effective - // range, therefore the range has already been boosted artificially - so - // reduce it again. - if ( m_pageSize > 1 ) - maxPos -= (m_pageSize - 1); -#endif // __WIN95__ - - wxEventType scrollEvent = wxEVT_NULL; - - int nScrollInc; - switch ( wParam ) - { - case SB_TOP: - nScrollInc = maxPos - position; - scrollEvent = wxEVT_SCROLL_TOP; - break; - - case SB_BOTTOM: - nScrollInc = - position; - scrollEvent = wxEVT_SCROLL_BOTTOM; - break; - - case SB_LINEUP: - nScrollInc = -1; - scrollEvent = wxEVT_SCROLL_LINEUP; - break; - - case SB_LINEDOWN: - nScrollInc = 1; - scrollEvent = wxEVT_SCROLL_LINEDOWN; - break; - - case SB_PAGEUP: - nScrollInc = -GetPageSize(); - scrollEvent = wxEVT_SCROLL_PAGEUP; - break; - - case SB_PAGEDOWN: - nScrollInc = GetPageSize(); - scrollEvent = wxEVT_SCROLL_PAGEDOWN; - break; - - case SB_THUMBTRACK: - case SB_THUMBPOSITION: - nScrollInc = pos - position; - scrollEvent = wxEVT_SCROLL_THUMBTRACK; - break; - - default: - nScrollInc = 0; - } - - if ( nScrollInc == 0 ) - { - // no event to process, so don't process it - return FALSE; - } - - int new_pos = position + nScrollInc; - - if (new_pos < 0) - new_pos = 0; - if (new_pos > maxPos) - new_pos = maxPos; - - SetThumbPosition(new_pos); - wxScrollEvent event(scrollEvent, m_windowId); - event.SetPosition(new_pos); - event.SetEventObject( this ); - - return GetEventHandler()->ProcessEvent(event); -} - -void wxScrollBar::SetThumbPosition(int viewStart) -{ -#if defined(__WIN95__) - SCROLLINFO info; - info.cbSize = sizeof(SCROLLINFO); - info.nPage = 0; - info.nMin = 0; - info.nPos = viewStart; - info.fMask = SIF_POS ; - - ::SetScrollInfo((HWND) GetHWND(), SB_CTL, &info, TRUE); -#else - ::SetScrollPos((HWND) GetHWND(), SB_CTL, viewStart, TRUE); -#endif -} - -int wxScrollBar::GetThumbPosition(void) const -{ - return ::GetScrollPos((HWND)m_hWnd, SB_CTL); -} - -void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh) -{ - m_viewSize = pageSize; - m_pageSize = thumbSize; - m_objectSize = range; - - // The range (number of scroll steps) is the - // object length minus the page size. - int range1 = wxMax((m_objectSize - m_pageSize), 0) ; - -#if defined(__WIN95__) - // Try to adjust the range to cope with page size > 1 - // (see comment for SetPageLength) - if ( m_pageSize > 1 ) - { - range1 += (m_pageSize - 1); - } - - SCROLLINFO info; - info.cbSize = sizeof(SCROLLINFO); - info.nPage = m_pageSize; - info.nMin = 0; - info.nMax = range1; - info.nPos = position; - - info.fMask = SIF_PAGE | SIF_RANGE | SIF_POS; - - ::SetScrollInfo((HWND) GetHWND(), SB_CTL, &info, refresh); -#else - ::SetScrollPos((HWND)m_hWnd, SB_CTL, position, TRUE); - ::SetScrollRange((HWND)m_hWnd, SB_CTL, 0, range1, TRUE); -#endif -} - - -/* From the WIN32 documentation: -In version 4.0 or later, the maximum value that a scroll bar can report -(that is, the maximum scrolling position) depends on the page size. -If the scroll bar has a page size greater than one, the maximum scrolling position -is less than the maximum range value. You can use the following formula to calculate -the maximum scrolling position: - -MaxScrollPos = MaxRangeValue - (PageSize - 1) -*/ - -#if WXWIN_COMPATIBILITY -void wxScrollBar::SetPageSize(int pageLength) -{ - m_pageSize = pageLength; - -#if defined(__WIN95__) - SCROLLINFO info; - info.cbSize = sizeof(SCROLLINFO); - info.nPage = pageLength; - info.fMask = SIF_PAGE ; - - ::SetScrollInfo((HWND) GetHWND(), SB_CTL, &info, TRUE); -#endif -} - -void wxScrollBar::SetObjectLength(int objectLength) -{ - m_objectSize = objectLength; - - // The range (number of scroll steps) is the - // object length minus the view size. - int range = wxMax((objectLength - m_viewSize), 0) ; - -#if defined(__WIN95__) - // Try to adjust the range to cope with page size > 1 - // (see comment for SetPageLength) - if ( m_pageSize > 1 ) - { - range += (m_pageSize - 1); - } - - SCROLLINFO info; - info.cbSize = sizeof(SCROLLINFO); - info.nPage = 0; - info.nMin = 0; - info.nMax = range; - info.nPos = 0; - info.fMask = SIF_RANGE ; - - ::SetScrollInfo((HWND) GetHWND(), SB_CTL, &info, TRUE); -#else - ::SetScrollRange((HWND)m_hWnd, SB_CTL, 0, range, TRUE); -#endif -} - -void wxScrollBar::SetViewLength(int viewLength) -{ - m_viewSize = viewLength; -} - -void wxScrollBar::GetValues(int *viewStart, int *viewLength, int *objectLength, - int *pageLength) const -{ - *viewStart = ::GetScrollPos((HWND)m_hWnd, SB_CTL); - *viewLength = m_viewSize; - *objectLength = m_objectSize; - *pageLength = m_pageSize; -} -#endif - -WXHBRUSH wxScrollBar::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - return 0; -} - -void wxScrollBar::Command(wxCommandEvent& event) -{ - SetThumbPosition(event.m_commandInt); - ProcessCommand(event); -} - -#if WXWIN_COMPATIBILITY -// Backward compatibility -void wxScrollBar::OnScroll(wxScrollEvent& event) -{ - wxEventType oldEvent = event.GetEventType(); - event.SetEventType( wxEVT_COMMAND_SCROLLBAR_UPDATED ); - if ( !GetEventHandler()->ProcessEvent(event) ) - { - event.SetEventType( oldEvent ); - if (!GetParent()->GetEventHandler()->ProcessEvent(event)) - event.Skip(); - } -} -#endif diff --git a/src/msw/settings.cpp b/src/msw/settings.cpp deleted file mode 100644 index e81d059ce0..0000000000 --- a/src/msw/settings.cpp +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: wxSettings -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/defs.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/gdicmn.h" -#endif - -#include "wx/settings.h" -#include "wx/window.h" -#include "wx/msw/private.h" - -// TODO: see ::SystemParametersInfo for all sorts of Windows settings. -// Different args are required depending on the id. How does this differ -// from GetSystemMetric, and should it? Perhaps call it GetSystemParameter -// and pass an optional void* arg to get further info. -// Should also have SetSystemParameter. -// Also implement WM_WININICHANGE (NT) / WM_SETTINGCHANGE (Win95) - -wxColour wxSystemSettings::GetSystemColour(int index) -{ - COLORREF ref = ::GetSysColor(index); - wxColour col(GetRValue(ref), GetGValue(ref), GetBValue(ref)); - return col; -} - -wxFont wxSystemSettings::GetSystemFont(int index) -{ - HFONT hFont = (HFONT) ::GetStockObject(index); - if ( hFont != (HFONT) NULL ) - { - LOGFONT lf; - if ( ::GetObject(hFont, sizeof(LOGFONT), &lf) != 0 ) - { - // In fontdlg.cpp - return wxCreateFontFromLogFont(&lf); - } - else - { - return wxNullFont; - } - } - else - { - return wxNullFont; - } -} - -// Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) -{ - switch ( index) - { -#ifdef __WIN32__ - case wxSYS_MOUSE_BUTTONS: - return ::GetSystemMetrics(SM_CMOUSEBUTTONS); -#endif - - case wxSYS_BORDER_X: - return ::GetSystemMetrics(SM_CXBORDER); - case wxSYS_BORDER_Y: - return ::GetSystemMetrics(SM_CYBORDER); - case wxSYS_CURSOR_X: - return ::GetSystemMetrics(SM_CXCURSOR); - case wxSYS_CURSOR_Y: - return ::GetSystemMetrics(SM_CYCURSOR); - case wxSYS_DCLICK_X: - return ::GetSystemMetrics(SM_CXDOUBLECLK); - case wxSYS_DCLICK_Y: - return ::GetSystemMetrics(SM_CYDOUBLECLK); -#if defined(__WIN32__) && defined(SM_CXDRAG) - case wxSYS_DRAG_X: - return ::GetSystemMetrics(SM_CXDRAG); - case wxSYS_DRAG_Y: - return ::GetSystemMetrics(SM_CYDRAG); - case wxSYS_EDGE_X: - return ::GetSystemMetrics(SM_CXEDGE); - case wxSYS_EDGE_Y: - return ::GetSystemMetrics(SM_CYEDGE); -#endif - case wxSYS_HSCROLL_ARROW_X: - return ::GetSystemMetrics(SM_CXHSCROLL); - case wxSYS_HSCROLL_ARROW_Y: - return ::GetSystemMetrics(SM_CYHSCROLL); - case wxSYS_HTHUMB_X: - return ::GetSystemMetrics(SM_CXHTHUMB); - case wxSYS_ICON_X: - return ::GetSystemMetrics(SM_CXICON); - case wxSYS_ICON_Y: - return ::GetSystemMetrics(SM_CYICON); - case wxSYS_ICONSPACING_X: - return ::GetSystemMetrics(SM_CXICONSPACING); - case wxSYS_ICONSPACING_Y: - return ::GetSystemMetrics(SM_CYICONSPACING); - case wxSYS_WINDOWMIN_X: - return ::GetSystemMetrics(SM_CXMIN); - case wxSYS_WINDOWMIN_Y: - return ::GetSystemMetrics(SM_CYMIN); - case wxSYS_SCREEN_X: - return ::GetSystemMetrics(SM_CXSCREEN); - case wxSYS_SCREEN_Y: - return ::GetSystemMetrics(SM_CYSCREEN); - -#if defined(__WIN32__) && defined(SM_CXSIZEFRAME) - case wxSYS_FRAMESIZE_X: - return ::GetSystemMetrics(SM_CXSIZEFRAME); - case wxSYS_FRAMESIZE_Y: - return ::GetSystemMetrics(SM_CYSIZEFRAME); - case wxSYS_SMALLICON_X: - return ::GetSystemMetrics(SM_CXSMICON); - case wxSYS_SMALLICON_Y: - return ::GetSystemMetrics(SM_CYSMICON); -#endif - case wxSYS_HSCROLL_Y: - return ::GetSystemMetrics(SM_CYHSCROLL); - case wxSYS_VSCROLL_X: - return ::GetSystemMetrics(SM_CXVSCROLL); - case wxSYS_VSCROLL_ARROW_X: - return ::GetSystemMetrics(SM_CXVSCROLL); - case wxSYS_VSCROLL_ARROW_Y: - return ::GetSystemMetrics(SM_CYVSCROLL); - case wxSYS_VTHUMB_Y: - return ::GetSystemMetrics(SM_CYVTHUMB); - case wxSYS_CAPTION_Y: - return ::GetSystemMetrics(SM_CYCAPTION); - case wxSYS_MENU_Y: - return ::GetSystemMetrics(SM_CYMENU); -#if defined(__WIN32__) && defined(SM_NETWORK) - case wxSYS_NETWORK_PRESENT: - return ::GetSystemMetrics(SM_NETWORK) & 0x0001; -#endif - case wxSYS_PENWINDOWS_PRESENT: - return ::GetSystemMetrics(SM_PENWINDOWS); -#if defined(__WIN32__) && defined(SM_SHOWSOUNDS) - case wxSYS_SHOW_SOUNDS: - return ::GetSystemMetrics(SM_SHOWSOUNDS); -#endif - case wxSYS_SWAP_BUTTONS: - return ::GetSystemMetrics(SM_SWAPBUTTON); - default: - return 0; - } - return 0; -} - diff --git a/src/msw/slider95.cpp b/src/msw/slider95.cpp deleted file mode 100644 index f9aa9ea5c1..0000000000 --- a/src/msw/slider95.cpp +++ /dev/null @@ -1,645 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider95.cpp -// Purpose: wxSlider95, using the Win95 trackbar control -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider95.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include -#include -#endif - -#ifdef __WIN95__ - -#include "wx/msw/slider95.h" -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSlider95, wxControl) -#endif - -// Slider -wxSlider95::wxSlider95() -{ - m_staticValue = 0; - m_staticMin = 0; - m_staticMax = 0; - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSlider95::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - m_staticValue = 0; - m_staticMin = 0; - m_staticMax = 0; - m_pageSize = 1; - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msStyle ; - - if ( m_windowStyle & wxSL_LABELS ) - { - msStyle = WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - m_staticValue = (WXHWND) CreateWindowEx(exStyle, "STATIC", NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - // Now create min static control - sprintf(wxBuffer, "%d", minValue); - m_staticMin = (WXHWND) CreateWindowEx(0, "STATIC", wxBuffer, - STATIC_FLAGS, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - } - - msStyle = 0; - if (m_windowStyle & wxSL_VERTICAL) - msStyle = TBS_VERT | WS_CHILD | WS_VISIBLE | WS_TABSTOP ; - else - msStyle = TBS_HORZ | WS_CHILD | WS_VISIBLE | WS_TABSTOP ; - - if ( m_windowStyle & wxSL_AUTOTICKS ) - msStyle |= TBS_AUTOTICKS ; - - if ( m_windowStyle & wxSL_LEFT ) - msStyle |= TBS_LEFT; - else if ( m_windowStyle & wxSL_RIGHT ) - msStyle |= TBS_RIGHT; - else if ( m_windowStyle & wxSL_TOP ) - msStyle |= TBS_TOP; - else if ( m_windowStyle & wxSL_BOTTOM ) - msStyle |= TBS_BOTTOM; - else if ( m_windowStyle & wxSL_BOTH ) - msStyle |= TBS_BOTH; - else if ( ! (m_windowStyle & wxSL_AUTOTICKS) ) - msStyle |= TBS_NOTICKS; - - if ( m_windowStyle & wxSL_SELRANGE ) - msStyle |= TBS_ENABLESELRANGE ; - - HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(m_windowStyle), TRACKBAR_CLASS, wxBuffer, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - m_rangeMax = maxValue; - m_rangeMin = minValue; - - m_pageSize = (int)((maxValue-minValue)/10); - - ::SendMessage(scroll_bar, TBM_SETRANGE, TRUE, MAKELONG(minValue, maxValue)); - ::SendMessage(scroll_bar, TBM_SETPOS, TRUE, (LPARAM)value); - ::SendMessage(scroll_bar, TBM_SETPAGESIZE, 0, (LPARAM)m_pageSize); - - m_hWnd = (WXHWND)scroll_bar; - - SubclassWin(GetHWND()); - - SetWindowText((HWND) m_hWnd, ""); - - SetFont(parent->GetFont()); - - if ( m_windowStyle & wxSL_LABELS ) - { - // Finally, create max value static item - sprintf(wxBuffer, "%d", maxValue); - m_staticMax = (WXHWND) CreateWindowEx(0, "STATIC", wxBuffer, - STATIC_FLAGS, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - - if (GetFont().Ok()) - { - if (GetFont().GetResourceHandle()) - { - if ( m_staticMin ) - SendMessage((HWND)m_staticMin,WM_SETFONT, - (WPARAM)GetFont().GetResourceHandle(),0L); - if ( m_staticMax ) - SendMessage((HWND)m_staticMax,WM_SETFONT, - (WPARAM)GetFont().GetResourceHandle(),0L); - if (m_staticValue) - SendMessage((HWND)m_staticValue,WM_SETFONT, - (WPARAM)GetFont().GetResourceHandle(),0L); - } - } - } - - SetSize(x, y, width, height); - SetValue(value); - - return TRUE; -} - -bool wxSlider95::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, - WXWORD pos, WXHWND control) -{ - int position = 0; // Dummy - not used in this mode - - int nScrollInc; - wxEventType scrollEvent = wxEVT_NULL; - switch ( wParam ) - { - case SB_TOP: - nScrollInc = m_rangeMax - position; - scrollEvent = wxEVT_SCROLL_TOP; - break; - - case SB_BOTTOM: - nScrollInc = - position; - scrollEvent = wxEVT_SCROLL_BOTTOM; - break; - - case SB_LINEUP: - nScrollInc = - GetLineSize(); - scrollEvent = wxEVT_SCROLL_LINEUP; - break; - - case SB_LINEDOWN: - nScrollInc = GetLineSize(); - scrollEvent = wxEVT_SCROLL_LINEDOWN; - break; - - case SB_PAGEUP: - nScrollInc = -GetPageSize(); - scrollEvent = wxEVT_SCROLL_PAGEUP; - break; - - case SB_PAGEDOWN: - nScrollInc = GetPageSize(); - scrollEvent = wxEVT_SCROLL_PAGEDOWN; - break; - - case SB_THUMBTRACK: - case SB_THUMBPOSITION: -#ifdef __WIN32__ - nScrollInc = (signed short)pos - position; -#else // Win16 - nScrollInc = pos - position; -#endif // Win32/16 - scrollEvent = wxEVT_SCROLL_THUMBTRACK; - break; - - default: - nScrollInc = 0; - } - - if ( nScrollInc == 0 ) - { - // no event... - return FALSE; - } - - int newPos = (int)::SendMessage((HWND) control, TBM_GETPOS, 0, 0); - if ( (newPos < GetMin()) || (newPos > GetMax()) ) - { - // out of range - but we did process it - return TRUE; - } - - SetValue(newPos); - - wxScrollEvent event(scrollEvent, m_windowId); - event.SetPosition(newPos); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - - wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, GetId() ); - cevent.SetEventObject( this ); - - return GetEventHandler()->ProcessEvent( cevent ); -} - -wxSlider95::~wxSlider95() -{ - if (m_staticMin) - DestroyWindow((HWND) m_staticMin); - if (m_staticMax) - DestroyWindow((HWND) m_staticMax); - if (m_staticValue) - DestroyWindow((HWND) m_staticValue); -} - -int wxSlider95::GetValue() const -{ - return ::SendMessage((HWND) GetHWND(), TBM_GETPOS, 0, 0); -} - -void wxSlider95::SetValue(int value) -{ - ::SendMessage((HWND) GetHWND(), TBM_SETPOS, (WPARAM)TRUE, (LPARAM)value); - if (m_staticValue) - { - sprintf(wxBuffer, "%d", value); - SetWindowText((HWND) m_staticValue, wxBuffer); - } -} - -void wxSlider95::GetSize(int *width, int *height) const -{ - RECT rect; - rect.left = -1; rect.right = -1; rect.top = -1; rect.bottom = -1; - - wxFindMaxSize(GetHWND(), &rect); - - if (m_staticMin) - wxFindMaxSize(m_staticMin, &rect); - if (m_staticMax) - wxFindMaxSize(m_staticMax, &rect); - if (m_staticValue) - wxFindMaxSize(m_staticValue, &rect); - - *width = rect.right - rect.left; - *height = rect.bottom - rect.top; -} - -void wxSlider95::GetPosition(int *x, int *y) const -{ - wxWindow *parent = GetParent(); - RECT rect; - rect.left = -1; rect.right = -1; rect.top = -1; rect.bottom = -1; - - wxFindMaxSize(GetHWND(), &rect); - - if (m_staticMin) - wxFindMaxSize(m_staticMin, &rect); - if (m_staticMax) - wxFindMaxSize(m_staticMax, &rect); - if (m_staticValue) - wxFindMaxSize(m_staticValue, &rect); - - // Since we now have the absolute screen coords, - // if there's a parent we must subtract its top left corner - POINT point; - point.x = rect.left; - point.y = rect.top; - if (parent) - ::ScreenToClient((HWND) parent->GetHWND(), &point); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - if (GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - point.x -= pt.x; - point.y -= pt.y; - } - *x = point.x; - *y = point.y; -} - -void wxSlider95::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - int currentX, currentY; - GetPosition(¤tX, ¤tY); - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - char buf[300]; - - int x_offset = x; - int y_offset = y; - - int cx; // slider,min,max sizes - int cy; - int cyf; - - wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); - - if ((m_windowStyle & wxSL_VERTICAL) != wxSL_VERTICAL) - { - if ( m_windowStyle & wxSL_LABELS ) - { - int min_len = 0; - - GetWindowText((HWND) m_staticMin, buf, 300); - GetTextExtent(buf, &min_len, &cyf,NULL,NULL, & this->GetFont()); - - int max_len = 0; - - GetWindowText((HWND) m_staticMax, buf, 300); - GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & this->GetFont()); - if (m_staticValue) - { - int new_width = (int)(wxMax(min_len, max_len)); - int valueHeight = (int)cyf; -#ifdef __WIN32__ - // For some reason, under Win95, the text edit control has - // a lot of space before the first character - new_width += 3*cx; -#endif - // The height needs to be a bit bigger under Win95 if using native - // 3D effects. - valueHeight = (int) (valueHeight * 1.5) ; - MoveWindow((HWND) m_staticValue, x_offset, y_offset, new_width, valueHeight, TRUE); - x_offset += new_width + cx; - } - - MoveWindow((HWND) m_staticMin, x_offset, y_offset, (int)min_len, cy, TRUE); - x_offset += (int)(min_len + cx); - - int slider_length = (int)(w1 - x_offset - max_len - cx); - - int slider_height = h1; - if (slider_height < 0 ) - slider_height = 20; - - // Slider must have a minimum/default length/height - if (slider_length < 100) - slider_length = 100; - - MoveWindow((HWND) GetHWND(), x_offset, y_offset, slider_length, slider_height, TRUE); - x_offset += slider_length + cx; - - MoveWindow((HWND) m_staticMax, x_offset, y_offset, (int)max_len, cy, TRUE); - } - else - { - // No labels - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - if ( w1 < 0 ) - w1 = 200; - if ( h1 < 0 ) - h1 = 20; - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); - } - } - else - { - if ( m_windowStyle & wxSL_LABELS ) - { - int min_len; - GetWindowText((HWND) m_staticMin, buf, 300); - GetTextExtent(buf, &min_len, &cyf,NULL,NULL, & this->GetFont()); - - int max_len; - GetWindowText((HWND) m_staticMax, buf, 300); - GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & this->GetFont()); - - if (m_staticValue) - { - int new_width = (int)(wxMax(min_len, max_len)); - int valueHeight = (int)cyf; -/*** Suggested change by George Tasker - remove this block... -#ifdef __WIN32__ - // For some reason, under Win95, the text edit control has - // a lot of space before the first character - new_width += 3*cx; -#endif - ... and replace with following line: */ - new_width += cx; - - // The height needs to be a bit bigger under Win95 if using native - // 3D effects. - valueHeight = (int) (valueHeight * 1.5) ; - - MoveWindow((HWND) m_staticValue, x_offset, y_offset, new_width, valueHeight, TRUE); - y_offset += valueHeight; - } - - MoveWindow((HWND) m_staticMin, x_offset, y_offset, (int)min_len, cy, TRUE); - y_offset += cy; - - int slider_length = (int)(h1 - y_offset - cy - cy); - - int slider_width = w1; - if (slider_width < 0 ) - slider_width = 20; - - // Slider must have a minimum/default length - if (slider_length < 100) - slider_length = 100; - - MoveWindow((HWND) GetHWND(), x_offset, y_offset, slider_width, slider_length, TRUE); - y_offset += slider_length; - - MoveWindow((HWND) m_staticMax, x_offset, y_offset, (int)max_len, cy, TRUE); - } - else - { - // No labels - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - if ( w1 < 0 ) - w1 = 20; - if ( h1 < 0 ) - h1 = 200; - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); - } - } -} - -void wxSlider95::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - ::SendMessage((HWND) GetHWND(), TBM_SETRANGE, TRUE, MAKELONG(minValue, maxValue)); - - char buf[40]; - if ( m_staticMin ) - { - sprintf(buf, "%d", m_rangeMin); - SetWindowText((HWND) m_staticMin, buf); - } - - if ( m_staticMax ) - { - sprintf(buf, "%d", m_rangeMax); - SetWindowText((HWND) m_staticMax, buf); - } -} - -WXHBRUSH wxSlider95::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - if ( nCtlColor == CTLCOLOR_SCROLLBAR ) - return 0; - - // Otherwise, it's a static - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -// For trackbars only -void wxSlider95::SetTickFreq(int n, int pos) -{ - m_tickFreq = n; - ::SendMessage( (HWND) GetHWND(), TBM_SETTICFREQ, (WPARAM) n, (LPARAM) pos ); -} - -void wxSlider95::SetPageSize(int pageSize) -{ - ::SendMessage( (HWND) GetHWND(), TBM_SETPAGESIZE, (WPARAM) 0, (LPARAM) pageSize ); - m_pageSize = pageSize; -} - -int wxSlider95::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider95::ClearSel() -{ - ::SendMessage( (HWND) GetHWND(), TBM_CLEARSEL, (WPARAM) TRUE, (LPARAM) 0 ); -} - -void wxSlider95::ClearTicks() -{ - ::SendMessage( (HWND) GetHWND(), TBM_CLEARTICS, (WPARAM) TRUE, (LPARAM) 0 ); -} - -void wxSlider95::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; - ::SendMessage( (HWND) GetHWND(), TBM_SETLINESIZE, (WPARAM) 0, (LPARAM) lineSize ); -} - -int wxSlider95::GetLineSize() const -{ - return (int) ::SendMessage( (HWND) GetHWND(), TBM_GETLINESIZE, (WPARAM) 0, (LPARAM) 0 ); -} - -int wxSlider95::GetSelEnd() const -{ - return (int) ::SendMessage( (HWND) GetHWND(), TBM_SETSELEND, (WPARAM) 0, (LPARAM) 0 ); -} - -int wxSlider95::GetSelStart() const -{ - return (int) ::SendMessage( (HWND) GetHWND(), TBM_GETSELSTART, (WPARAM) 0, (LPARAM) 0 ); -} - -void wxSlider95::SetSelection(int minPos, int maxPos) -{ - ::SendMessage( (HWND) GetHWND(), TBM_SETSEL, (WPARAM) TRUE, (LPARAM) MAKELONG( minPos, maxPos) ); -} - -void wxSlider95::SetThumbLength(int len) -{ - ::SendMessage( (HWND) GetHWND(), TBM_SETTHUMBLENGTH, (WPARAM) len, (LPARAM) 0 ); -} - -int wxSlider95::GetThumbLength() const -{ - return (int) ::SendMessage( (HWND) GetHWND(), TBM_GETTHUMBLENGTH, (WPARAM) 0, (LPARAM) 0 ); -} - -void wxSlider95::SetTick(int tickPos) -{ - ::SendMessage( (HWND) GetHWND(), TBM_SETTIC, (WPARAM) 0, (LPARAM) tickPos ); -} - -bool wxSlider95::ContainsHWND(WXHWND hWnd) const -{ - return ( hWnd == GetStaticMin() || hWnd == GetStaticMax() || hWnd == GetEditValue() ); -} - -void wxSlider95::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -bool wxSlider95::Show(bool show) -{ - wxWindow::Show(show); - - int cshow; - if (show) - cshow = SW_SHOW; - else - cshow = SW_HIDE; - - if(m_staticValue) - ShowWindow((HWND) m_staticValue, (BOOL)cshow); - if(m_staticMin) - ShowWindow((HWND) m_staticMin, (BOOL)cshow); - if(m_staticMax) - ShowWindow((HWND) m_staticMax, (BOOL)cshow); - return TRUE; -} - -#endif - // __WIN95__ - diff --git a/src/msw/slidrmsw.cpp b/src/msw/slidrmsw.cpp deleted file mode 100644 index 2ec3e8536e..0000000000 --- a/src/msw/slidrmsw.cpp +++ /dev/null @@ -1,585 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slidermsw.cpp -// Purpose: wxSliderMSW -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slidrmsw.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include "wx/utils.h" -#include "wx/brush.h" -#include "wx/msw/slidrmsw.h" -#include "wx/msw/private.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSliderMSW, wxControl) -#endif - -// Slider -wxSliderMSW::wxSliderMSW() -{ - m_staticValue = 0; - m_staticMin = 0; - m_staticMax = 0; - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSliderMSW::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - m_staticValue = 0; - m_staticMin = 0; - m_staticMax = 0; - m_pageSize = 1; - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - // non-Win95 implementation - - long msStyle = WS_CHILD | WS_VISIBLE | WS_BORDER | SS_CENTER; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - m_staticValue = (WXHWND) CreateWindowEx(exStyle, "STATIC", NULL, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - // Now create min static control - sprintf(wxBuffer, "%d", minValue); - m_staticMin = (WXHWND) CreateWindowEx(0, "STATIC", wxBuffer, - STATIC_FLAGS, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - // Now create slider - m_windowId = (int)NewControlId(); - - msStyle = 0; - if (m_windowStyle & wxSL_VERTICAL) - msStyle = SBS_VERT | WS_CHILD | WS_VISIBLE | WS_TABSTOP ; - else - msStyle = SBS_HORZ | WS_CHILD | WS_VISIBLE | WS_TABSTOP ; - - HWND scroll_bar = CreateWindowEx(MakeExtendedStyle(m_windowStyle), "SCROLLBAR", wxBuffer, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - m_pageSize = (int)((maxValue-minValue)/10); - m_rangeMax = maxValue; - m_rangeMin = minValue; - - ::SetScrollRange(scroll_bar, SB_CTL, minValue, maxValue, FALSE); - ::SetScrollPos(scroll_bar, SB_CTL, value, FALSE); - ShowWindow(scroll_bar, SW_SHOW); - - m_hWnd = (WXHWND)scroll_bar; - - // Subclass again for purposes of dialog editing mode - SubclassWin(GetHWND()); - - // Finally, create max value static item - sprintf(wxBuffer, "%d", maxValue); - m_staticMax = (WXHWND) CreateWindowEx(0, "STATIC", wxBuffer, - STATIC_FLAGS, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)NewControlId(), - wxGetInstance(), NULL); - - SetFont(parent->GetFont()); - - if (GetFont().Ok()) - { -// GetFont()->RealizeResource(); - if (GetFont().GetResourceHandle()) - { - if ( m_staticMin ) - SendMessage((HWND)m_staticMin,WM_SETFONT, - (WPARAM)GetFont().GetResourceHandle(),0L); - if ( m_staticMax ) - SendMessage((HWND)m_staticMax,WM_SETFONT, - (WPARAM)GetFont().GetResourceHandle(),0L); - if (m_staticValue) - SendMessage((HWND)m_staticValue,WM_SETFONT, - (WPARAM)GetFont().GetResourceHandle(),0L); - } - } - - SetSize(x, y, width, height); - SetValue(value); - - return TRUE; -} - -bool wxSliderMSW::MSWOnScroll(int WXUNUSED(orientation), WXWORD wParam, - WXWORD pos, WXHWND control) -{ - int position = ::GetScrollPos((HWND)control, SB_CTL); - - int nScrollInc; - wxEventType scrollEvent = wxEVT_NULL; - switch ( wParam ) - { - case SB_TOP: - nScrollInc = m_rangeMax - position; - scrollEvent = wxEVT_SCROLL_TOP; - break; - - case SB_BOTTOM: - nScrollInc = - position; - scrollEvent = wxEVT_SCROLL_BOTTOM; - break; - - case SB_LINEUP: - nScrollInc = - GetLineSize(); - scrollEvent = wxEVT_SCROLL_LINEUP; - break; - - case SB_LINEDOWN: - nScrollInc = GetLineSize(); - scrollEvent = wxEVT_SCROLL_LINEDOWN; - break; - - case SB_PAGEUP: - nScrollInc = -GetPageSize(); - scrollEvent = wxEVT_SCROLL_PAGEUP; - break; - - case SB_PAGEDOWN: - nScrollInc = GetPageSize(); - scrollEvent = wxEVT_SCROLL_PAGEDOWN; - break; - - case SB_THUMBTRACK: - case SB_THUMBPOSITION: -#ifdef __WIN32__ - nScrollInc = (signed short)pos - position; -#else - nScrollInc = pos - position; -#endif - scrollEvent = wxEVT_SCROLL_THUMBTRACK; - break; - - default: - nScrollInc = 0; - } - - if (nScrollInc == 0) - { - // no event... - return FALSE; - } - - int newPos = position + nScrollInc; - - if ( (newPos < GetMin()) || (newPos > GetMax()) ) - { - // out of range - but we did process it - return TRUE; - } - - SetValue(newPos); - - wxScrollEvent event(scrollEvent, m_windowId); - event.SetPosition(newPos); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - - wxCommandEvent cevent( wxEVT_COMMAND_SLIDER_UPDATED, GetId() ); - cevent.SetEventObject( this ); - - return GetEventHandler()->ProcessEvent( cevent ); -} - -wxSliderMSW::~wxSliderMSW() -{ - if (m_staticMin) - DestroyWindow((HWND) m_staticMin); - if (m_staticMax) - DestroyWindow((HWND) m_staticMax); - if (m_staticValue) - DestroyWindow((HWND) m_staticValue); -} - -int wxSliderMSW::GetValue() const -{ - return ::GetScrollPos((HWND) GetHWND(), SB_CTL); -} - -void wxSliderMSW::SetValue(int value) -{ - ::SetScrollPos((HWND) GetHWND(), SB_CTL, value, TRUE); - if (m_staticValue) - { - sprintf(wxBuffer, "%d", value); - SetWindowText((HWND) m_staticValue, wxBuffer); - } -} - -void wxSliderMSW::GetSize(int *width, int *height) const -{ - RECT rect; - rect.left = -1; rect.right = -1; rect.top = -1; rect.bottom = -1; - - wxFindMaxSize(GetHWND(), &rect); - - if (m_staticMin) - wxFindMaxSize(m_staticMin, &rect); - if (m_staticMax) - wxFindMaxSize(m_staticMax, &rect); - if (m_staticValue) - wxFindMaxSize(m_staticValue, &rect); - - *width = rect.right - rect.left; - *height = rect.bottom - rect.top; -} - -void wxSliderMSW::GetPosition(int *x, int *y) const -{ - wxWindow *parent = GetParent(); - RECT rect; - rect.left = -1; rect.right = -1; rect.top = -1; rect.bottom = -1; - - wxFindMaxSize(GetHWND(), &rect); - - if (m_staticMin) - wxFindMaxSize(m_staticMin, &rect); - if (m_staticMax) - wxFindMaxSize(m_staticMax, &rect); - if (m_staticValue) - wxFindMaxSize(m_staticValue, &rect); - - // Since we now have the absolute screen coords, - // if there's a parent we must subtract its top left corner - POINT point; - point.x = rect.left; - point.y = rect.top; - if (parent) - ::ScreenToClient((HWND) parent->GetHWND(), &point); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - if (GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - point.x -= pt.x; - point.y -= pt.y; - } - *x = point.x; - *y = point.y; -} - -void wxSliderMSW::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - int currentX, currentY; - GetPosition(¤tX, ¤tY); - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - char buf[300]; - - int x_offset = x; - int y_offset = y; - - int cx; // slider,min,max sizes - int cy; - int cyf; - - wxGetCharSize(GetHWND(), &cx, &cy,& this->GetFont()); - - if ((m_windowStyle & wxSL_VERTICAL) != wxSL_VERTICAL) - { - if ( m_windowStyle & wxSL_LABELS ) - { - int min_len = 0; - - GetWindowText((HWND) m_staticMin, buf, 300); - GetTextExtent(buf, &min_len, &cyf,NULL,NULL, & this->GetFont()); - - int max_len = 0; - - GetWindowText((HWND) m_staticMax, buf, 300); - GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & this->GetFont()); - if (m_staticValue) - { - int new_width = (int)(wxMax(min_len, max_len)); - int valueHeight = (int)cyf; -#ifdef __WIN32__ - // For some reason, under Win95, the text edit control has - // a lot of space before the first character - new_width += 3*cx; -#endif - MoveWindow((HWND) m_staticValue, x_offset, y_offset, new_width, valueHeight, TRUE); - x_offset += new_width + cx; - } - - MoveWindow((HWND) m_staticMin, x_offset, y_offset, (int)min_len, cy, TRUE); - x_offset += (int)(min_len + cx); - - int slider_length = (int)(w1 - x_offset - max_len - cx); - - int slider_height = cy; - - // Slider must have a minimum/default length/height - if (slider_length < 100) - slider_length = 100; - - MoveWindow((HWND) GetHWND(), x_offset, y_offset, slider_length, slider_height, TRUE); - x_offset += slider_length + cx; - - MoveWindow((HWND) m_staticMax, x_offset, y_offset, (int)max_len, cy, TRUE); - } - else - { - // No labels - if ( w1 < 0 ) - w1 = 200; - if ( h1 < 0 ) - h1 = 20; - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); - } - } - else - { - if ( m_windowStyle & wxSL_LABELS ) - { - int min_len; - GetWindowText((HWND) m_staticMin, buf, 300); - GetTextExtent(buf, &min_len, &cyf,NULL,NULL,& this->GetFont()); - - int max_len; - GetWindowText((HWND) m_staticMax, buf, 300); - GetTextExtent(buf, &max_len, &cyf,NULL,NULL, & this->GetFont()); - - if (m_staticValue) - { - int new_width = (int)(wxMax(min_len, max_len)); - int valueHeight = (int)cyf; -/*** Suggested change by George Tasker - remove this block... -#ifdef __WIN32__ - // For some reason, under Win95, the text edit control has - // a lot of space before the first character - new_width += 3*cx; -#endif - ... and replace with following line: */ - new_width += cx; - - MoveWindow((HWND) m_staticValue, x_offset, y_offset, new_width, valueHeight, TRUE); - y_offset += valueHeight; - } - - MoveWindow((HWND) m_staticMin, x_offset, y_offset, (int)min_len, cy, TRUE); - y_offset += cy; - - int slider_length = (int)(h1 - y_offset - cy - cy); - - // Use character height as an estimate of slider width (yes, width) - int slider_width = cy; - - // Slider must have a minimum/default length - if (slider_length < 100) - slider_length = 100; - - MoveWindow((HWND) GetHWND(), x_offset, y_offset, slider_width, slider_length, TRUE); - y_offset += slider_length; - - MoveWindow((HWND) m_staticMax, x_offset, y_offset, (int)max_len, cy, TRUE); - } - else - { - // No labels - if ( w1 < 0 ) - w1 = 20; - if ( h1 < 0 ) - h1 = 200; - MoveWindow((HWND) GetHWND(), x1, y1, w1, h1, TRUE); - } - } -} - -void wxSliderMSW::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - ::SetScrollRange((HWND) GetHWND(), SB_CTL, m_rangeMin, m_rangeMax, TRUE); - char buf[40]; - if ( m_staticMin ) - { - sprintf(buf, "%d", m_rangeMin); - SetWindowText((HWND) m_staticMin, buf); - } - - if ( m_staticMax ) - { - sprintf(buf, "%d", m_rangeMax); - SetWindowText((HWND) m_staticMax, buf); - } -} - -WXHBRUSH wxSliderMSW::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - if ( nCtlColor == CTLCOLOR_SCROLLBAR ) - return 0; - - // Otherwise, it's a static - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -// For trackbars only -void wxSliderMSW::SetTickFreq(int n, int pos) -{ -} - -void wxSliderMSW::SetPageSize(int pageSize) -{ - m_pageSize = pageSize; -} - -int wxSliderMSW::GetPageSize() const -{ - return m_pageSize; -} - -void wxSliderMSW::ClearSel() -{ -} - -void wxSliderMSW::ClearTicks() -{ -} - -void wxSliderMSW::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; -} - -int wxSliderMSW::GetLineSize() const -{ - return m_lineSize; -} - -int wxSliderMSW::GetSelEnd() const -{ - return 0; -} - -int wxSliderMSW::GetSelStart() const -{ - return 0; -} - -void wxSliderMSW::SetSelection(int minPos, int maxPos) -{ -} - -void wxSliderMSW::SetThumbLength(int len) -{ -} - -int wxSliderMSW::GetThumbLength() const -{ - return 0; -} - -void wxSliderMSW::SetTick(int tickPos) -{ -} - -bool wxSliderMSW::ContainsHWND(WXHWND hWnd) const -{ - return ( hWnd == GetStaticMin() || hWnd == GetStaticMax() || hWnd == GetEditValue() ); -} - -void wxSliderMSW::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -bool wxSliderMSW::Show(bool show) -{ - wxWindow::Show(show); - - int cshow; - if (show) - cshow = SW_SHOW; - else - cshow = SW_HIDE; - - if(m_staticValue) - ShowWindow((HWND) m_staticValue, (BOOL)cshow); - if(m_staticMin) - ShowWindow((HWND) m_staticMin, (BOOL)cshow); - if(m_staticMax) - ShowWindow((HWND) m_staticMax, (BOOL)cshow); - return TRUE; -} - - diff --git a/src/msw/spinbutt.cpp b/src/msw/spinbutt.cpp deleted file mode 100644 index e1efced86e..0000000000 --- a/src/msw/spinbutt.cpp +++ /dev/null @@ -1,199 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "spinbutt.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -// Can't resolve reference to CreateUpDownControl in -// TWIN32, but could probably use normal CreateWindow instead. - -#if defined(__WIN95__) && !defined(__TWIN32__) - -#include "wx/spinbutt.h" -#include "wx/msw/private.h" - -#if !defined(__GNUWIN32__) || defined(__TWIN32__) - #include -#endif - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) -#endif - -wxSpinButton::wxSpinButton() -{ - m_min = 0; - m_max = 100; -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - wxSystemSettings settings; - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - SetName(name); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - SetParent(parent); - - if (width <= 0) - width = 100; - if (height <= 0) - height = 30; - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - m_min = 0; - m_max = 100; - - m_windowId = (id == -1) ? NewControlId() : id; - - DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP; - - if ( m_windowStyle & wxSP_HORIZONTAL ) - wstyle |= UDS_HORZ; - if ( m_windowStyle & wxSP_ARROW_KEYS ) - wstyle |= UDS_ARROWKEYS; - if ( m_windowStyle & wxSP_WRAP ) - wstyle |= UDS_WRAP; - - // Create the ListView control. - HWND hWndListControl = CreateUpDownControl(wstyle, - x, y, width, height, - (HWND) parent->GetHWND(), - m_windowId, - wxGetInstance(), - 0, - m_min, m_max, m_min); - - m_hWnd = (WXHWND) hWndListControl; - if (parent) parent->AddChild(this); - - // TODO: have this for all controls. - if ( !m_hWnd ) - return FALSE; - - SubclassWin((WXHWND) m_hWnd); - - return TRUE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -int wxSpinButton::GetValue() const -{ - return (int) ::SendMessage((HWND) GetHWND(), UDM_GETPOS, 0, 0); -} - -void wxSpinButton::SetValue(int val) -{ - ::SendMessage((HWND) GetHWND(), UDM_SETPOS, 0, (LPARAM) MAKELONG((short) val, 0)); -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - m_min = minVal; - m_max = maxVal; - ::SendMessage((HWND) GetHWND(), UDM_SETRANGE, 0, - (LPARAM) MAKELONG((short)maxVal, (short)minVal)); -} - -bool wxSpinButton::MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control) -{ - if ( !control ) - return FALSE; - - wxSpinEvent event(wxEVT_NULL, m_windowId); - event.SetPosition(pos); - event.SetOrientation(orientation); - event.SetEventObject(this); - - switch ( wParam ) - { - case SB_TOP: - event.m_eventType = wxEVT_SCROLL_TOP; - break; - - case SB_BOTTOM: - event.m_eventType = wxEVT_SCROLL_BOTTOM; - break; - - case SB_LINEUP: - event.m_eventType = wxEVT_SCROLL_LINEUP; - break; - - case SB_LINEDOWN: - event.m_eventType = wxEVT_SCROLL_LINEDOWN; - break; - - case SB_PAGEUP: - event.m_eventType = wxEVT_SCROLL_PAGEUP; - break; - - case SB_PAGEDOWN: - event.m_eventType = wxEVT_SCROLL_PAGEDOWN; - break; - - case SB_THUMBTRACK: - case SB_THUMBPOSITION: - event.m_eventType = wxEVT_SCROLL_THUMBTRACK; - break; - - default: - return FALSE; - } - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxSpinButton::MSWCommand(WXUINT cmd, WXWORD id) -{ - // No command messages - return FALSE; -} - -// Spin event -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id) - : wxScrollEvent(commandType, id) -{ -} - -#endif // __WIN95__ diff --git a/src/msw/statbmp.cpp b/src/msw/statbmp.cpp deleted file mode 100644 index 8e693a39e9..0000000000 --- a/src/msw/statbmp.cpp +++ /dev/null @@ -1,261 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: wxStaticBitmap -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -// =========================================================================== -// declarations -// =========================================================================== - -// --------------------------------------------------------------------------- -// headers -// --------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "statbmp.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef WX_PRECOMP - #include "wx/icon.h" - #include "wx/statbmp.h" -#endif - -#include - -// --------------------------------------------------------------------------- -// macors -// --------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) -#endif - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxStaticBitmap -// --------------------------------------------------------------------------- - -bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - SetName(name); - if (parent) - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - m_isIcon = bitmap.IsKindOf(CLASSINFO(wxIcon)); - -#ifdef __WIN32__ - // create a static control with either SS_BITMAP or SS_ICON style depending - // on what we have here - const char *classname = "STATIC"; - int winstyle = m_isIcon ? SS_ICON : SS_BITMAP; -#else // Win16 - const char *classname = "BUTTON"; - int winstyle = BS_OWNERDRAW; -#endif // Win32 - - m_hWnd = (WXHWND)::CreateWindow - ( - classname, - "", - winstyle | WS_CHILD | WS_VISIBLE, - 0, 0, 0, 0, - (HWND)parent->GetHWND(), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create static bitmap" ); - - SetBitmap(bitmap); - - // Subclass again for purposes of dialog editing mode - SubclassWin(m_hWnd); - - SetFont(GetParent()->GetFont()); - - SetSize(x, y, width, height); - - return TRUE; -} - -bool wxStaticBitmap::ImageIsOk() const -{ - if ( m_isIcon && m_image.icon ) - return m_image.icon->Ok(); - else if ( m_image.bitmap ) - return m_image.bitmap->Ok(); - else - return FALSE; -} - -void wxStaticBitmap::Free() -{ - if ( m_isIcon ) - delete m_image.icon; - else - delete m_image.bitmap; - - m_image.icon = NULL; -} - -void wxStaticBitmap::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - int actualWidth = width; - int actualHeight = height; - - int ww, hh; - GetSize(&ww, &hh); - - // If we're prepared to use the existing width, then... - if (width == -1 && ((sizeFlags & wxSIZE_AUTO_WIDTH) != wxSIZE_AUTO_WIDTH)) - actualWidth = ww; - else - actualWidth = width; - - // If we're prepared to use the existing height, then... - if (height == -1 && ((sizeFlags & wxSIZE_AUTO_HEIGHT) != wxSIZE_AUTO_HEIGHT)) - actualHeight = hh; - else - actualHeight = height; - - MoveWindow((HWND) GetHWND(), x1, y1, actualWidth, actualHeight, TRUE); -} - -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) -{ - Free(); - - m_isIcon = bitmap.IsKindOf(CLASSINFO(wxIcon)); - if ( m_isIcon ) - m_image.icon = new wxIcon((const wxIcon&)bitmap); - else - m_image.bitmap = new wxBitmap(bitmap); - - int x, y; - int w, h; - GetPosition(&x, &y); - GetSize(&w, &h); - RECT rect = { x, y, x + w, y + h }; - -#ifdef __WIN32__ - HANDLE handle = m_isIcon ? (HANDLE)m_image.icon->GetHICON() - : (HANDLE)m_image.bitmap->GetHBITMAP(); - ::SendMessage((HWND)m_hWnd, STM_SETIMAGE, - m_isIcon ? IMAGE_ICON : IMAGE_BITMAP, (LPARAM)handle); -#endif // Win32 - - if ( ImageIsOk() ) - { - int width = bitmap.GetWidth(), - height = bitmap.GetHeight(); - if ( width && height ) - { - ::MoveWindow((HWND)GetHWND(), x, y, width, height, FALSE); - } - } - - InvalidateRect((HWND)GetParent()->GetHWND(), &rect, TRUE); -} - -// under Win32 we use the standard static control style for this -#ifdef __WIN16__ -bool wxStaticBitmap::MSWOnDraw(WXDRAWITEMSTRUCT *item) -{ - LPDRAWITEMSTRUCT lpDIS = (LPDRAWITEMSTRUCT) item; - - wxBitmap* bitmap = m_image.bitmap; - if ( !bitmap->Ok() ) - return FALSE; - - HDC hDC = lpDIS->hDC; - HDC memDC = ::CreateCompatibleDC(hDC); - - HBITMAP old = (HBITMAP) ::SelectObject(memDC, (HBITMAP) bitmap->GetHBITMAP()); - - if (!old) - return FALSE; - - int x = lpDIS->rcItem.left; - int y = lpDIS->rcItem.top; - int width = lpDIS->rcItem.right - x; - int height = lpDIS->rcItem.bottom - y; - - // Centre the bitmap in the control area - int x1 = (int) (x + ((width - bitmap->GetWidth()) / 2)); - int y1 = (int) (y + ((height - bitmap->GetHeight()) / 2)); - - ::BitBlt(hDC, x1, y1, bitmap->GetWidth(), bitmap->GetHeight(), memDC, 0, 0, SRCCOPY); - - ::SelectObject(memDC, old); - - ::DeleteDC(memDC); - - return TRUE; -} - -long wxStaticBitmap::MSWWindowProc(WXUINT nMsg, - WXWPARAM wParam, - WXLPARAM lParam) -{ - // Ensure that static items get messages. Some controls don't like this - // message to be intercepted (e.g. RichEdit), hence the tests. - if ( nMsg == WM_NCHITTEST ) - return (long)HTCLIENT; - - return wxWindow::MSWWindowProc(nMsg, wParam, lParam); -} -#endif // Win16 diff --git a/src/msw/statbox.cpp b/src/msw/statbox.cpp deleted file mode 100644 index 15d87f01bc..0000000000 --- a/src/msw/statbox.cpp +++ /dev/null @@ -1,233 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: wxStaticBox -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef WX_PRECOMP -#include "wx/app.h" -#include "wx/dcclient.h" -#endif - -#include "wx/statbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Group box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - long msStyle = BS_GROUPBOX | WS_CHILD | WS_VISIBLE ; // GROUP_FLAGS; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(0, &want3D) ; - - HWND wx_button = - CreateWindowEx(exStyle, "BUTTON", (const char *)label, msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); -#if wxUSE_CTL3D - if (want3D) - { - Ctl3dSubclassCtl(wx_button); - m_useCtl3D = TRUE; - } -#endif - - m_hWnd = (WXHWND)wx_button; - - // Subclass again for purposes of dialog editing mode - SubclassWin(GetHWND()); - - SetFont(parent->GetFont()); - - SetSize(x, y, width, height); - ShowWindow(wx_button, SW_SHOW); - - return TRUE; -} - -void wxStaticBox::SetLabel(const wxString& label) -{ - SetWindowText((HWND)m_hWnd, (const char *)label); -} - -void wxStaticBox::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - - int current_width; - - int cx; - int cy; - int cyf; - - wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); - - GetTextExtent(wxGetWindowText(m_hWnd), ¤t_width, &cyf, - NULL,NULL, & this->GetFont()); - if ( w1 < 0 ) - w1 = current_width + 3*cx; - if ( h1 < 0 ) - h1 = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cyf); - - MoveWindow((HWND)m_hWnd, x1, y1, w1, h1, TRUE); -} - -WXHBRUSH wxStaticBox::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; - } -#endif - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -// Shouldn't erase the whole window, since the static box must only paint its -// outline. -void wxStaticBox::OnEraseBackground(wxEraseEvent& event) -{ - // If we don't have this (call Default()), we don't paint the background properly. - // If we do have this, we seem to overwrite enclosed controls. - // Is it the WS_CLIPCHILDREN style that's causing the problems? - // Probably - without this style, the background of the window will show through, - // so the control doesn't have to paint it. The window background will always be - // painted before all other controls, therefore there are no problems with - // controls being hidden by the static box. - // So, if we could specify wxCLIP_CHILDREN in window, or not, we could optimise painting better. - // We would assume wxCLIP_CHILDREN in a frame and a scrolled window, but not in a panel. - // Is this too platform-specific?? What else can we do? Not a lot, since we have to pass - // this information from arbitrary wxWindow derivatives, and it depends on what you wish to - // do with the windows. - // Alternatively, just make sure that wxStaticBox is always at the back! There are probably - // few other circumstances where it matters about child clipping. But what about painting onto - // to panel, inside a groupbox? Doesn't appear, because the box wipes it out. - wxWindow *parent = GetParent(); - if ( parent && parent->GetHWND() && (::GetWindowLong((HWND) parent->GetHWND(), GWL_STYLE) & WS_CLIPCHILDREN) ) - { - // TODO: May in fact need to generate a paint event for inside this - // control's rectangle, otherwise all controls are going to be clipped - - // ugh. - HBRUSH hBrush = ::CreateSolidBrush(PALETTERGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - int mode = ::SetMapMode((HDC) event.GetDC()->GetHDC(), MM_TEXT); - - RECT rect; - - ::GetClientRect((HWND) GetHWND(), &rect); - ::FillRect ((HDC) event.GetDC()->GetHDC(), &rect, hBrush); - ::DeleteObject(hBrush); - ::SetMapMode((HDC) event.GetDC()->GetHDC(), mode); - } - else - { - event.Skip(); - } -} - -long wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - if (nMsg == WM_NCHITTEST) - { - int xPos = LOWORD(lParam); // horizontal position of cursor - int yPos = HIWORD(lParam); // vertical position of cursor - - ScreenToClient(&xPos, &yPos); - - // Make sure you can drag by the top of the groupbox, but let - // other (enclosed) controls get mouse events also - if (yPos < 10) - return (long)HTCLIENT; - } - - return wxControl::MSWWindowProc(nMsg, wParam, lParam); -} - diff --git a/src/msw/statbr95.cpp b/src/msw/statbr95.cpp deleted file mode 100644 index 4c0f0991fd..0000000000 --- a/src/msw/statbr95.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/statbr95.cpp -// Purpose: native implementation of wxStatusBar -// Author: Vadim Zeitlin -// Modified by: -// Created: 04.04.98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbr95.h" -#endif - -// for compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/frame.h" - #include "wx/settings.h" - #include "wx/dcclient.h" -#endif - -#ifdef __WIN95__ - -#include "wx/log.h" -#include "wx/generic/statusbr.h" -#include "wx/msw/statbr95.h" - -#include "wx/msw/private.h" -#include - -#if !defined(__GNUWIN32__) || defined(__TWIN32__) -#include -#endif - -#if wxUSE_NATIVE_STATUSBAR - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxStatusBar95, wxStatusBar); - - BEGIN_EVENT_TABLE(wxStatusBar95, wxStatusBar) - EVT_SIZE(wxStatusBar95::OnSize) - END_EVENT_TABLE() -#endif //USE_SHARED_LIBRARY - - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// windowsx.h and commctrl.h don't define those, so we do it here -#define StatusBar_SetParts(h, n, w) SendMessage(h, SB_SETPARTS, (WPARAM)n, (LPARAM)w) -#define StatusBar_SetText(h, n, t) SendMessage(h, SB_SETTEXT, (WPARAM)n, (LPARAM)(LPCSTR)t) -#define StatusBar_GetTextLen(h, n) LOWORD(SendMessage(h, SB_GETTEXTLENGTH, (WPARAM)n, 0)) -#define StatusBar_GetText(h, n, s) LOWORD(SendMessage(h, SB_GETTEXT, (WPARAM)n, (LPARAM)(LPSTR)s)) - -#define hwnd ((HWND)m_hWnd) - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxStatusBar95 class -// ---------------------------------------------------------------------------- - -wxStatusBar95::wxStatusBar95() -{ - SetParent(NULL); - m_hWnd = 0; - m_windowId = 0; -} - -wxStatusBar95::wxStatusBar95(wxWindow *parent, wxWindowID id, long style) -{ - Create(parent, id, style); -} - -bool wxStatusBar95::Create(wxWindow *parent, wxWindowID id, long style) -{ - SetParent(parent); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - DWORD wstyle = WS_CHILD | WS_VISIBLE; - if ( style & wxST_SIZEGRIP ) - wstyle |= SBARS_SIZEGRIP; - - m_hWnd = (WXHWND)CreateStatusWindow(wstyle, - "", - (HWND)parent->GetHWND(), - m_windowId); - if ( m_hWnd == 0 ) { - wxLogSysError("can't create status bar window"); - return FALSE; - } - - // this doesn't work: display problems (white 1-2 pixel borders...) - // SubclassWin(m_hWnd); - - return TRUE; -} - -void wxStatusBar95::CopyFieldsWidth(const int widths[]) -{ - if (widths && !m_statusWidths) - m_statusWidths = new int[m_nFields]; - - if ( widths != NULL ) { - for ( int i = 0; i < m_nFields; i++ ) - m_statusWidths[i] = widths[i]; - } - else { - delete [] m_statusWidths; - m_statusWidths = NULL; - } -} - -void wxStatusBar95::SetFieldsCount(int nFields, const int widths[]) -{ - wxASSERT( (nFields > 0) && (nFields < 255) ); - - m_nFields = nFields; - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBar95::SetStatusWidths(int n, const int widths[]) -{ - // @@ I don't understand what this function is for... - wxASSERT( n == m_nFields ); - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBar95::SetFieldsWidth() -{ - int *pWidths = new int[m_nFields]; - - int nWindowWidth, y; - GetClientSize(&nWindowWidth, &y); - - if ( m_statusWidths == NULL ) { - // default: all fields have the same width - int nWidth = nWindowWidth / m_nFields; - for ( int i = 0; i < m_nFields; i++ ) - pWidths[i] = (i + 1) * nWidth; - } - else { - // -1 doesn't mean the same thing for wxWindows and Win32, recalc - int nTotalWidth = 0, - nVarCount = 0, - i; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nVarCount++; - else - nTotalWidth += m_statusWidths[i]; - } - - if ( nVarCount == 0 ) { - // wrong! at least one field must be of variable width - wxFAIL; - - nVarCount++; - } - - int nVarWidth = (nWindowWidth - nTotalWidth) / nVarCount; - - // do fill the array - int nCurPos = 0; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nCurPos += nVarWidth; - else - nCurPos += m_statusWidths[i]; - pWidths[i] = nCurPos; - } - } - - if ( !StatusBar_SetParts(hwnd, m_nFields, pWidths) ) { - wxLogDebug("StatusBar_SetParts failed."); - } - - delete [] pWidths; -} - -void wxStatusBar95::SetStatusText(const wxString& strText, int nField) -{ - if ( !StatusBar_SetText(hwnd, nField, strText) ) { - wxLogDebug("StatusBar_SetText failed"); - } -} - -wxString wxStatusBar95::GetStatusText(int nField) const -{ - wxASSERT( (nField > -1) && (nField < m_nFields) ); - - wxString str(""); - int len = StatusBar_GetTextLen(hwnd, nField); - if (len > 0) - { - StatusBar_GetText(hwnd, nField, str.GetWriteBuf(len)); - str.UngetWriteBuf(); - } - return str; -} - -void wxStatusBar95::OnSize(wxSizeEvent& event) -{ - FORWARD_WM_SIZE(hwnd, SIZE_RESTORED, event.GetSize().x, event.GetSize().y, - SendMessage); - - // adjust fields widths to the new size - SetFieldsWidth(); -} - -#endif // wxUSE_NATIVE_STATUSBAR - -#else - #error "wxStatusBar95 is only available under Windows 95 and later." -#endif // __WIN95__ - diff --git a/src/msw/stattext.cpp b/src/msw/stattext.cpp deleted file mode 100644 index d8308232ea..0000000000 --- a/src/msw/stattext.cpp +++ /dev/null @@ -1,211 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: wxStaticText -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stattext.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/event.h" -#include "wx/app.h" -#include "wx/brush.h" -#endif - -#include "wx/stattext.h" -#include "wx/msw/private.h" -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -#endif - -bool wxStaticText::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - long msStyle = WS_CHILD|WS_VISIBLE; - if (m_windowStyle & wxALIGN_CENTRE) - msStyle |= SS_CENTER; - else if (m_windowStyle & wxALIGN_RIGHT) - msStyle |= SS_RIGHT; - else - msStyle |= SS_LEFT; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( wxStyleHasBorder(m_windowStyle) ) - msStyle |= WS_BORDER; - - m_hWnd = (WXHWND)::CreateWindowEx(MakeExtendedStyle(m_windowStyle), "STATIC", (const char *)label, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create static ctrl" ); - -#if wxUSE_CTL3D -/* - if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS)) - Ctl3dSubclassCtl(static_item); -*/ -#endif - - SubclassWin(m_hWnd); - - SetFont(parent->GetFont()); - SetSize(x, y, width, height); - - return TRUE; -} - -void wxStaticText::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - int actualWidth = width; - int actualHeight = height; - - int current_width; - int cyf; - - wxString text(wxGetWindowText(GetHWND())); - GetTextExtent(text, ¤t_width, &cyf, NULL, NULL, & GetFont()); - - int ww, hh; - GetSize(&ww, &hh); - - // If we're prepared to use the existing width, then... - if (width == -1 && ((sizeFlags & wxSIZE_AUTO_WIDTH) != wxSIZE_AUTO_WIDTH)) - actualWidth = ww; - else if (width == -1) - { - int cx; - int cy; - wxGetCharSize(GetHWND(), &cx, &cy, & GetFont()); - actualWidth = (int)(current_width + cx) ; - } - - // If we're prepared to use the existing height, then... - if (height == -1 && ((sizeFlags & wxSIZE_AUTO_HEIGHT) != wxSIZE_AUTO_HEIGHT)) - actualHeight = hh; - else if (height == -1) - { - actualHeight = (int)(cyf) ; - } - - MoveWindow((HWND) GetHWND(), x1, y1, actualWidth, actualHeight, TRUE); -} - -void wxStaticText::SetLabel(const wxString& label) -{ - wxWindow *parent = GetParent(); - - RECT rect; - GetWindowRect((HWND) GetHWND(), &rect); - - // Since we now have the absolute screen coords, if there's a parent we must - // subtract its top left corner - POINT point; - point.x = rect.left; - point.y = rect.top; - if (parent) - { - ::ScreenToClient((HWND) parent->GetHWND(), &point); - } - - int w, h; - GetTextExtent(label, &w, &h, NULL, NULL, & GetFont()); - MoveWindow((HWND) GetHWND(), point.x, point.y, (int)(w + 10), (int)h, TRUE); - SetWindowText((HWND) GetHWND(), (const char *)label); -} - -WXHBRUSH wxStaticText::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -/* -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - - if (hbrush != (HBRUSH) 0) - return hbrush; - else - return (HBRUSH)MSWDefWindowProc(message, wParam, lParam); - } -#endif -*/ - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -long wxStaticText::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - // Ensure that static items get messages. Some controls don't like this - // message to be intercepted (e.g. RichEdit), hence the tests. - if (nMsg == WM_NCHITTEST) - return (long)HTCLIENT; - - return wxWindow::MSWWindowProc(nMsg, wParam, lParam); -} - - diff --git a/src/msw/tabctrl.cpp b/src/msw/tabctrl.cpp deleted file mode 100644 index 20f1d669f1..0000000000 --- a/src/msw/tabctrl.cpp +++ /dev/null @@ -1,458 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp -// Purpose: wxTabCtrl -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if defined(__WIN95__) - -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) -#include "malloc.h" -#endif - -#include - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#include "wx/msw/dib.h" -#include "wx/msw/tabctrl.h" -#include "wx/app.h" -#include "wx/msw/private.h" -#include "wx/msw/imaglist.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) - EVT_SYS_COLOUR_CHANGED(wxTabCtrl::OnSysColourChanged) -END_EVENT_TABLE() -#endif - -wxTabCtrl::wxTabCtrl() -{ - m_imageList = NULL; -} - -bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_imageList = NULL; - - m_backgroundColour = wxColour(GetRValue(GetSysColor(COLOR_BTNFACE)), - GetGValue(GetSysColor(COLOR_BTNFACE)), GetBValue(GetSysColor(COLOR_BTNFACE))); - m_foregroundColour = *wxBLACK ; - - SetName(name); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - SetFont(* (wxTheFontList->FindOrCreateFont(11, wxSWISS, wxNORMAL, wxNORMAL))); - - SetParent(parent); - - DWORD msflags = 0; - if (style & wxBORDER) - msflags |= WS_BORDER; - msflags |= WS_CHILD | WS_VISIBLE; - - if (width <= 0) - width = 100; - if (height <= 0) - height = 30; - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - m_windowId = (id < 0 ? NewControlId() : id); - - long tabStyle = 0; - if (m_windowStyle & wxTC_MULTILINE) - tabStyle |= TCS_MULTILINE; - if (m_windowStyle & wxTC_RIGHTJUSTIFY) - tabStyle |= TCS_RIGHTJUSTIFY; - if (m_windowStyle & wxTC_FIXEDWIDTH) - tabStyle |= TCS_FIXEDWIDTH; - if (m_windowStyle & wxTC_OWNERDRAW) - tabStyle |= TCS_OWNERDRAWFIXED; - - tabStyle |= TCS_TOOLTIPS; - - // Create the toolbar control. - HWND hWndTabCtrl = CreateWindowEx(0L, // No extended styles. - WC_TABCONTROL, // Class name for the tab control - "", // No default text. - WS_CHILD | WS_BORDER | WS_VISIBLE | tabStyle, // Styles and defaults. - x, y, width, height, // Standard size and position. - (HWND) parent->GetHWND(), // Parent window - (HMENU)m_windowId, // ID. - wxGetInstance(), // Current instance. - NULL ); // No class data. - - m_hWnd = (WXHWND) hWndTabCtrl; - if (parent) parent->AddChild(this); - - SubclassWin((WXHWND) hWndTabCtrl); - - return TRUE; -} - -wxTabCtrl::~wxTabCtrl() -{ - UnsubclassWin(); -} - -bool wxTabCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) -{ - wxTabEvent event(wxEVT_NULL, m_windowId); - wxEventType eventType = wxEVT_NULL; - NMHDR* hdr1 = (NMHDR*) lParam; - switch ( hdr1->code ) - { - case TCN_SELCHANGE: - eventType = wxEVT_COMMAND_TAB_SEL_CHANGED; - break; - - case TCN_SELCHANGING: - eventType = wxEVT_COMMAND_TAB_SEL_CHANGING; - break; - - case TTN_NEEDTEXT: - { - // TODO -// if (tool->m_shortHelpString != "") -// ttText->lpszText = (char *) (const char *)tool->m_shortHelpString; - } - - default : - return wxControl::MSWOnNotify(idCtrl, lParam, result); - } - - event.SetEventObject( this ); - event.SetEventType(eventType); - event.SetInt(idCtrl) ; - - return ProcessEvent(event); -} - -// Responds to colour changes, and passes event on to children. -void wxTabCtrl::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - m_backgroundColour = wxColour(GetRValue(GetSysColor(COLOR_BTNFACE)), - GetGValue(GetSysColor(COLOR_BTNFACE)), - GetBValue(GetSysColor(COLOR_BTNFACE))); - - Refresh(); - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -// Delete all items -bool wxTabCtrl::DeleteAllItems() -{ - return ( TabCtrl_DeleteAllItems( (HWND) GetHWND() ) != FALSE ); -} - -// Delete an item -bool wxTabCtrl::DeleteItem(int item) -{ - return ( TabCtrl_DeleteItem( (HWND) GetHWND(), item) != FALSE ); -} - -// Get the selection -int wxTabCtrl::GetSelection() const -{ - return (int) TabCtrl_GetCurSel( (HWND) GetHWND() ); -} - -// Get the tab with the current keyboard focus -int wxTabCtrl::GetCurFocus() const -{ - return (int) TabCtrl_GetCurFocus( (HWND) GetHWND() ); -} - -// Get the associated image list -wxImageList* wxTabCtrl::GetImageList() const -{ - return m_imageList; -} - -// Get the number of items -int wxTabCtrl::GetItemCount() const -{ - return (int) TabCtrl_GetItemCount( (HWND) GetHWND() ); -} - -// Get the rect corresponding to the tab -bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const -{ - RECT rect; - if ( !TabCtrl_GetItemRect( (HWND) GetHWND(), item, & rect) ) - return FALSE; - else - { - wxrect.x = rect.left; wxrect.y = rect.top; - wxrect.width = rect.right - rect.left; - wxrect.height = rect.bottom - rect.top; - return TRUE; - } -} - -// Get the number of rows -int wxTabCtrl::GetRowCount() const -{ - return (int) TabCtrl_GetRowCount( (HWND) GetHWND() ); -} - -// Get the item text -wxString wxTabCtrl::GetItemText(int item) const -{ - char buf[256]; - wxString str(""); - TC_ITEM tcItem; - tcItem.mask = TCIF_TEXT; - tcItem.pszText = buf; - tcItem.cchTextMax = 256; - - if (TabCtrl_GetItem( (HWND) GetHWND(), item, & tcItem) ) - str = tcItem.pszText; - - return str; -} - -// Get the item image -int wxTabCtrl::GetItemImage(int item) const -{ - TC_ITEM tcItem; - tcItem.mask = TCIF_IMAGE; - - if (TabCtrl_GetItem( (HWND) GetHWND(), item, & tcItem) ) - return tcItem.iImage; - else - return -1; -} - -// Get the item data -void* wxTabCtrl::GetItemData(int item) const -{ - TC_ITEM tcItem; - tcItem.mask = TCIF_PARAM; - - if (TabCtrl_GetItem( (HWND) GetHWND(), item, & tcItem) ) - return (void*) tcItem.lParam; - else - return 0; -} - -// Hit test -int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) -{ - TC_HITTESTINFO hitTestInfo; - hitTestInfo.pt.x = pt.x; - hitTestInfo.pt.y = pt.y; - int item = TabCtrl_HitTest( (HWND) GetHWND(), & hitTestInfo ) ; - flags = 0; - - if ((hitTestInfo.flags & TCHT_NOWHERE) == TCHT_NOWHERE) - flags |= wxTAB_HITTEST_NOWHERE; - if ((hitTestInfo.flags & TCHT_ONITEMICON) == TCHT_ONITEMICON) - flags |= wxTAB_HITTEST_ONICON; - if ((hitTestInfo.flags & TCHT_ONITEMLABEL) == TCHT_ONITEMLABEL) - flags |= wxTAB_HITTEST_ONLABEL; - - return item; -} - -// Insert an item -bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) -{ - char buf[256]; - TC_ITEM tcItem; - tcItem.mask = TCIF_PARAM; - tcItem.lParam = (long) data; - if (text != "") - { - tcItem.mask |= TCIF_TEXT; - strcpy(buf, (const char*) text); - tcItem.pszText = buf; - tcItem.cchTextMax = 256; - } - if (imageId != -1) - { - tcItem.mask |= TCIF_IMAGE; - tcItem.iImage = imageId; - } - - return (TabCtrl_InsertItem( (HWND) GetHWND(), item, & tcItem) != -1); -} - -// Set the selection -int wxTabCtrl::SetSelection(int item) -{ - return (int) TabCtrl_SetCurSel( (HWND) GetHWND(), item ); -} - -// Set the image list -void wxTabCtrl::SetImageList(wxImageList* imageList) -{ - m_imageList = imageList; - TabCtrl_SetImageList( (HWND) GetHWND(), (HIMAGELIST) imageList->GetHIMAGELIST() ); -} - -// Set the text for an item -bool wxTabCtrl::SetItemText(int item, const wxString& text) -{ - char buf[256]; - TC_ITEM tcItem; - tcItem.mask = TCIF_TEXT; - strcpy(buf, (const char*) text); - tcItem.pszText = buf; - tcItem.cchTextMax = 256; - - return ( TabCtrl_SetItem( (HWND) GetHWND(), item, & tcItem) != 0 ); -} - -// Set the image for an item -bool wxTabCtrl::SetItemImage(int item, int image) -{ - TC_ITEM tcItem; - tcItem.mask = TCIF_IMAGE; - tcItem.iImage = image; - - return ( TabCtrl_SetItem( (HWND) GetHWND(), item, & tcItem) != 0 ); -} - -// Set the data for an item -bool wxTabCtrl::SetItemData(int item, void* data) -{ - TC_ITEM tcItem; - tcItem.mask = TCIF_PARAM; - tcItem.lParam = (long) data; - - return ( TabCtrl_SetItem( (HWND) GetHWND(), item, & tcItem) != 0 ); -} - -// Set the size for a fixed-width tab control -void wxTabCtrl::SetItemSize(const wxSize& size) -{ - TabCtrl_SetItemSize( (HWND) GetHWND(), size.x, size.y ); -} - -// Set the padding between tabs -void wxTabCtrl::SetPadding(const wxSize& padding) -{ - TabCtrl_SetPadding( (HWND) GetHWND(), padding.x, padding.y ); -} - -#if 0 -// These are the default colors used to map the bitmap colors -// to the current system colors - -#define BGR_BUTTONTEXT (RGB(000,000,000)) // black -#define BGR_BUTTONSHADOW (RGB(128,128,128)) // dark grey -#define BGR_BUTTONFACE (RGB(192,192,192)) // bright grey -#define BGR_BUTTONHILIGHT (RGB(255,255,255)) // white -#define BGR_BACKGROUNDSEL (RGB(255,000,000)) // blue -#define BGR_BACKGROUND (RGB(255,000,255)) // magenta - -void wxMapBitmap(HBITMAP hBitmap, int width, int height) -{ - COLORMAP ColorMap[] = { - {BGR_BUTTONTEXT, COLOR_BTNTEXT}, // black - {BGR_BUTTONSHADOW, COLOR_BTNSHADOW}, // dark grey - {BGR_BUTTONFACE, COLOR_BTNFACE}, // bright grey - {BGR_BUTTONHILIGHT, COLOR_BTNHIGHLIGHT},// white - {BGR_BACKGROUNDSEL, COLOR_HIGHLIGHT}, // blue - {BGR_BACKGROUND, COLOR_WINDOW} // magenta - }; - - int NUM_MAPS = (sizeof(ColorMap)/sizeof(COLORMAP)); - int n; - for ( n = 0; n < NUM_MAPS; n++) - { - ColorMap[n].to = ::GetSysColor(ColorMap[n].to); - } - - HBITMAP hbmOld; - HDC hdcMem = CreateCompatibleDC(NULL); - - if (hdcMem) - { - hbmOld = SelectObject(hdcMem, hBitmap); - - int i, j, k; - for ( i = 0; i < width; i++) - { - for ( j = 0; j < height; j++) - { - COLORREF pixel = ::GetPixel(hdcMem, i, j); -/* - BYTE red = GetRValue(pixel); - BYTE green = GetGValue(pixel); - BYTE blue = GetBValue(pixel); -*/ - - for ( k = 0; k < NUM_MAPS; k ++) - { - if ( ColorMap[k].from == pixel ) - { - /* COLORREF actualPixel = */ ::SetPixel(hdcMem, i, j, ColorMap[k].to); - break; - } - } - } - } - - - SelectObject(hdcMem, hbmOld); - DeleteObject(hdcMem); - } - -} -#endif - -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ -} - - -#endif - // __WIN95__ diff --git a/src/msw/taskbar.cpp b/src/msw/taskbar.cpp deleted file mode 100644 index b34e42e02e..0000000000 --- a/src/msw/taskbar.cpp +++ /dev/null @@ -1,350 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.cpp -// Purpose: Implements wxTaskBarIcon class for manipulating icons on -// the Windows task bar. -// Author: Julian Smart -// Modified by: -// Created: 24/3/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "taskbar.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/frame.h" -#include "wx/utils.h" -#endif - -#if defined(__WIN95__) && !defined(__TWIN32__) - -#include -#include -#include -#include - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include -#endif -#endif - -#ifdef __SALFORDC__ -#include -#endif - -LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg, - UINT wParam, LONG lParam ); - -char *wxTaskBarWindowClass = "wxTaskBarWindowClass"; - -wxList wxTaskBarIcon::sm_taskBarIcons; -bool wxTaskBarIcon::sm_registeredClass = FALSE; -UINT wxTaskBarIcon::sm_taskbarMsg = 0; - - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxTaskBarIcon, wxEvtHandler) - EVT_TASKBAR_MOVE (wxTaskBarIcon::_OnMouseMove) - EVT_TASKBAR_LEFT_DOWN (wxTaskBarIcon::_OnLButtonDown) - EVT_TASKBAR_LEFT_UP (wxTaskBarIcon::_OnLButtonUp) - EVT_TASKBAR_RIGHT_DOWN (wxTaskBarIcon::_OnRButtonDown) - EVT_TASKBAR_RIGHT_UP (wxTaskBarIcon::_OnRButtonUp) - EVT_TASKBAR_LEFT_DCLICK (wxTaskBarIcon::_OnLButtonDClick) - EVT_TASKBAR_RIGHT_DCLICK (wxTaskBarIcon::_OnRButtonDClick) -END_EVENT_TABLE() - - -IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler) -#endif - - -wxTaskBarIcon::wxTaskBarIcon(void) -{ - m_hWnd = 0; - m_iconAdded = FALSE; - - AddObject(this); - - if (RegisterWindowClass()) - m_hWnd = CreateTaskBarWindow(); -} - -wxTaskBarIcon::~wxTaskBarIcon(void) -{ - RemoveObject(this); - - if (m_iconAdded) - { - RemoveIcon(); - } - - if (m_hWnd) - { - ::DestroyWindow((HWND) m_hWnd); - m_hWnd = 0; - } -} - -// Operations -bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip) -{ - if (!IsOK()) - return FALSE; - - NOTIFYICONDATA notifyData; - - memset(¬ifyData, 0, sizeof(notifyData)); - notifyData.cbSize = sizeof(notifyData); - notifyData.hWnd = (HWND) m_hWnd; - notifyData.uCallbackMessage = sm_taskbarMsg; - notifyData.uFlags = NIF_MESSAGE ; - if (icon.Ok()) - { - notifyData.uFlags |= NIF_ICON; - notifyData.hIcon = (HICON) icon.GetHICON(); - } - - if (((const char*) tooltip != NULL) && (tooltip != "")) - { - notifyData.uFlags |= NIF_TIP ; - lstrcpyn(notifyData.szTip, (char*) (const char*) tooltip, sizeof(notifyData.szTip)); - } - - notifyData.uID = 99; - - if (m_iconAdded) - return (Shell_NotifyIcon(NIM_MODIFY, & notifyData) != 0); - else - { - m_iconAdded = (Shell_NotifyIcon(NIM_ADD, & notifyData) != 0); - return m_iconAdded; - } -} - -bool wxTaskBarIcon::RemoveIcon(void) -{ - if (!m_iconAdded) - return FALSE; - - NOTIFYICONDATA notifyData; - - memset(¬ifyData, 0, sizeof(notifyData)); - notifyData.cbSize = sizeof(notifyData); - notifyData.hWnd = (HWND) m_hWnd; - notifyData.uCallbackMessage = sm_taskbarMsg; - notifyData.uFlags = NIF_MESSAGE; - notifyData.hIcon = 0 ; // hIcon; - notifyData.uID = 99; - m_iconAdded = FALSE; - - return (Shell_NotifyIcon(NIM_DELETE, & notifyData) != 0); -} - -bool wxTaskBarIcon::PopupMenu(wxMenu *menu) //, int x, int y); -{ - bool rval = FALSE; - wxWindow* win; - int x, y; - wxGetMousePosition(&x, &y); - - // is wxFrame the best window type to use??? - win = new wxFrame(NULL, -1, "", wxPoint(x,y), wxSize(-1,-1), 0); - win->PushEventHandler(this); - - rval = win->PopupMenu(menu, 0, 0); - - win->PopEventHandler(FALSE); - win->Destroy(); - return rval; -} - - -// Overridables -void wxTaskBarIcon::OnMouseMove(wxEvent&) -{ -} - -void wxTaskBarIcon::OnLButtonDown(wxEvent&) -{ -} - -void wxTaskBarIcon::OnLButtonUp(wxEvent&) -{ -} - -void wxTaskBarIcon::OnRButtonDown(wxEvent&) -{ -} - -void wxTaskBarIcon::OnRButtonUp(wxEvent&) -{ -} - -void wxTaskBarIcon::OnLButtonDClick(wxEvent&) -{ -} - -void wxTaskBarIcon::OnRButtonDClick(wxEvent&) -{ -} - -void wxTaskBarIcon::_OnMouseMove(wxEvent& e) { OnMouseMove(e); } -void wxTaskBarIcon::_OnLButtonDown(wxEvent& e) { OnLButtonDown(e); } -void wxTaskBarIcon::_OnLButtonUp(wxEvent& e) { OnLButtonUp(e); } -void wxTaskBarIcon::_OnRButtonDown(wxEvent& e) { OnRButtonDown(e); } -void wxTaskBarIcon::_OnRButtonUp(wxEvent& e) { OnRButtonUp(e); } -void wxTaskBarIcon::_OnLButtonDClick(wxEvent& e) { OnLButtonDClick(e); } -void wxTaskBarIcon::_OnRButtonDClick(wxEvent& e) { OnRButtonDClick(e); } - - -wxTaskBarIcon* wxTaskBarIcon::FindObjectForHWND(WXHWND hWnd) -{ - wxNode*node = sm_taskBarIcons.First(); - while (node) - { - wxTaskBarIcon* obj = (wxTaskBarIcon*) node->Data(); - if (obj->GetHWND() == hWnd) - return obj; - node = node->Next(); - } - return NULL; -} - -void wxTaskBarIcon::AddObject(wxTaskBarIcon* obj) -{ - sm_taskBarIcons.Append(obj); -} - -void wxTaskBarIcon::RemoveObject(wxTaskBarIcon* obj) -{ - sm_taskBarIcons.DeleteObject(obj); -} - -bool wxTaskBarIcon::RegisterWindowClass() -{ - if (sm_registeredClass) - return TRUE; - - // Also register the taskbar message here - sm_taskbarMsg = ::RegisterWindowMessage("wxTaskBarIconMessage"); - - WNDCLASS wc; - bool rc; - - HINSTANCE hInstance = GetModuleHandle(NULL); - - /* - * set up and register window class - */ - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = (WNDPROC) wxTaskBarIconWindowProc; - wc.cbClsExtra = 0; - wc.cbWndExtra = 0; - wc.hInstance = hInstance; - wc.hIcon = 0; - wc.hCursor = 0; - wc.hbrBackground = 0; - wc.lpszMenuName = NULL; - wc.lpszClassName = wxTaskBarWindowClass ; - rc = (::RegisterClass( &wc ) != 0); - - sm_registeredClass = (rc != 0); - - return( (rc != 0) ); -} - -WXHWND wxTaskBarIcon::CreateTaskBarWindow() -{ - HINSTANCE hInstance = GetModuleHandle(NULL); - - HWND hWnd = CreateWindowEx (0, wxTaskBarWindowClass, - "wxTaskBarWindow", - WS_OVERLAPPED, - 0, - 0, - 10, - 10, - NULL, - (HMENU) 0, - hInstance, - NULL); - - return (WXHWND) hWnd; -} - -long wxTaskBarIcon::WindowProc( WXHWND hWnd, unsigned int msg, unsigned int wParam, long lParam ) -{ - wxEventType eventType = 0; - - if (msg != sm_taskbarMsg) - return DefWindowProc((HWND) hWnd, msg, wParam, lParam); - - switch (lParam) - { - case WM_LBUTTONDOWN: - eventType = wxEVT_TASKBAR_LEFT_DOWN; - break; - - case WM_LBUTTONUP: - eventType = wxEVT_TASKBAR_LEFT_UP; - break; - - case WM_RBUTTONDOWN: - eventType = wxEVT_TASKBAR_RIGHT_DOWN; - break; - - case WM_RBUTTONUP: - eventType = wxEVT_TASKBAR_RIGHT_UP; - break; - - case WM_LBUTTONDBLCLK: - eventType = wxEVT_TASKBAR_LEFT_DCLICK; - break; - - case WM_RBUTTONDBLCLK: - eventType = wxEVT_TASKBAR_RIGHT_DCLICK; - break; - - case WM_MOUSEMOVE: - eventType = wxEVT_TASKBAR_MOVE; - break; - - default: - break; - } - - if (eventType) { - wxEvent event; - event.SetEventType(eventType); - event.SetEventObject(this); - - ProcessEvent(event); - } - return 0; -} - -LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg, - UINT wParam, LONG lParam ) -{ - wxTaskBarIcon* obj = wxTaskBarIcon::FindObjectForHWND((WXHWND) hWnd); - if (obj) - return obj->WindowProc((WXHWND) hWnd, msg, wParam, lParam); - else - return DefWindowProc(hWnd, msg, wParam, lParam); -} - -#endif - // __WIN95__ diff --git a/src/msw/tbar95.cpp b/src/msw/tbar95.cpp deleted file mode 100644 index fc78112d5c..0000000000 --- a/src/msw/tbar95.cpp +++ /dev/null @@ -1,634 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbar95.cpp -// Purpose: wxToolBar95 -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbar95.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR && defined(__WIN95__) - -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) -#include "malloc.h" -#endif - -#include - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -#include "wx/msw/dib.h" -#include "wx/tbar95.h" -#include "wx/app.h" -#include "wx/msw/private.h" - -// Styles -#ifndef TBSTYLE_FLAT -#define TBSTYLE_LIST 0x1000 -#define TBSTYLE_FLAT 0x0800 -#define TBSTYLE_TRANSPARENT 0x8000 -#endif - // use TBSTYLE_TRANSPARENT if you use TBSTYLE_FLAT - -// Messages -#ifndef TB_GETSTYLE -#define TB_GETSTYLE (WM_USER + 57) -#define TB_SETSTYLE (WM_USER + 56) -#endif - -/* Hint from a newsgroup for custom flatbar drawing: -Set the TBSTYLE_CUSTOMERASE style, then handle the -NM_CUSTOMDRAW message and do your custom drawing. -*/ - -#define DEFAULTBITMAPX 16 -#define DEFAULTBITMAPY 15 -#define DEFAULTBUTTONX 24 -#define DEFAULTBUTTONY 24 -#define DEFAULTBARHEIGHT 27 - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBar95, wxToolBarBase) -#endif - -BEGIN_EVENT_TABLE(wxToolBar95, wxToolBarBase) - EVT_MOUSE_EVENTS(wxToolBar95::OnMouseEvent) - EVT_SYS_COLOUR_CHANGED(wxToolBar95::OnSysColourChanged) -END_EVENT_TABLE() - -static void wxMapBitmap(HBITMAP hBitmap, int width, int height); - -wxToolBar95::wxToolBar95() -{ - m_maxWidth = -1; - m_maxHeight = -1; - m_hBitmap = 0; - m_defaultWidth = DEFAULTBITMAPX; - m_defaultHeight = DEFAULTBITMAPY; -} - -bool wxToolBar95::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_backgroundColour = wxColour(GetRValue(GetSysColor(COLOR_BTNFACE)), - GetGValue(GetSysColor(COLOR_BTNFACE)), - GetBValue(GetSysColor(COLOR_BTNFACE))); - m_foregroundColour = *wxBLACK ; - - wxASSERT_MSG( (style & wxTB_VERTICAL) == 0, - "Sorry, wxToolBar95 under Windows 95 only " - "supports horizontal orientation." ); - - m_maxWidth = -1; - m_maxHeight = -1; - - m_hBitmap = 0; - - m_defaultWidth = DEFAULTBITMAPX; - m_defaultHeight = DEFAULTBITMAPY; - SetName(name); - - m_windowStyle = style; - - SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT)); - SetParent(parent); - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (width <= 0) - width = 100; - if (height <= 0) - height = 30; - if (x < 0) - x = 0; - if (y < 0) - y = 0; - - m_windowId = (id < 0 ? NewControlId() : id); - DWORD msflags = 0; - if (style & wxBORDER) - msflags |= WS_BORDER; - msflags |= WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS; - - if (style & wxTB_FLAT) - { - if (wxTheApp->GetComCtl32Version() > 400) - msflags |= TBSTYLE_FLAT; - } - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - msflags |= WS_BORDER; - - // Create the toolbar control. - HWND hWndToolbar = CreateWindowEx - ( - exStyle, // Extended styles. - TOOLBARCLASSNAME, // Class name for the toolbar. - "", // No default text. - msflags, // Styles - x, y, width, height, // Standard toolbar size and position. - (HWND) parent->GetHWND(), // Parent window of the toolbar. - (HMENU)m_windowId, // Toolbar ID. - wxGetInstance(), // Current instance. - NULL // No class data. - ); - - wxCHECK_MSG( hWndToolbar, FALSE, "Toolbar creation failed" ); - - // Toolbar-specific initialisation - ::SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, - (WPARAM)sizeof(TBBUTTON), (LPARAM)0); - - m_hWnd = (WXHWND) hWndToolbar; - if (parent) - parent->AddChild(this); - - SubclassWin((WXHWND)hWndToolbar); - - return TRUE; -} - -wxToolBar95::~wxToolBar95() -{ - UnsubclassWin(); - - if (m_hBitmap) - { - ::DeleteObject((HBITMAP) m_hBitmap); - m_hBitmap = 0; - } -} - -bool wxToolBar95::CreateTools() -{ - if (m_tools.Number() == 0) - return FALSE; - - HBITMAP oldToolBarBitmap = (HBITMAP) m_hBitmap; - - int totalBitmapWidth = (int)(m_defaultWidth * m_tools.Number()); - int totalBitmapHeight = (int)m_defaultHeight; - - // Create a bitmap for all the tool bitmaps - HDC dc = ::GetDC(NULL); - m_hBitmap = (WXHBITMAP) ::CreateCompatibleBitmap(dc, totalBitmapWidth, totalBitmapHeight); - ::ReleaseDC(NULL, dc); - - // Now blit all the tools onto this bitmap - HDC memoryDC = ::CreateCompatibleDC(NULL); - HBITMAP oldBitmap = (HBITMAP) ::SelectObject(memoryDC, (HBITMAP) m_hBitmap); - - HDC memoryDC2 = ::CreateCompatibleDC(NULL); - int x = 0; - wxNode *node = m_tools.First(); - int noButtons = 0; - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if ((tool->m_toolStyle != wxTOOL_STYLE_SEPARATOR) && tool->m_bitmap1.Ok() && tool->m_bitmap1.GetHBITMAP()) - { -// wxPalette *palette = tool->m_bitmap1->GetPalette(); - - HBITMAP oldBitmap2 = (HBITMAP) ::SelectObject(memoryDC2, (HBITMAP) tool->m_bitmap1.GetHBITMAP()); - /* int bltResult = */ - BitBlt(memoryDC, x, 0, (int) m_defaultWidth, (int) m_defaultHeight, memoryDC2, - 0, 0, SRCCOPY); - ::SelectObject(memoryDC2, oldBitmap2); - x += (int)m_defaultWidth; - noButtons ++; - } - node = node->Next(); - } - ::SelectObject(memoryDC, oldBitmap); - ::DeleteDC(memoryDC); - ::DeleteDC(memoryDC2); - - // Map to system colours - wxMapBitmap((HBITMAP) m_hBitmap, totalBitmapWidth, totalBitmapHeight); - - if ( oldToolBarBitmap ) - { - TBREPLACEBITMAP replaceBitmap; - replaceBitmap.hInstOld = NULL; - replaceBitmap.hInstNew = NULL; - replaceBitmap.nIDOld = (UINT) oldToolBarBitmap; - replaceBitmap.nIDNew = (UINT) (HBITMAP) m_hBitmap; - replaceBitmap.nButtons = noButtons; - if (::SendMessage((HWND) GetHWND(), TB_REPLACEBITMAP, (WPARAM) 0, (LPARAM) &replaceBitmap) == -1) - wxFAIL_MSG("Could not add bitmap to toolbar"); - - ::DeleteObject((HBITMAP) oldToolBarBitmap); - - // Now delete all the buttons - int i = 0; - while ( TRUE ) - { - // TODO: What about separators???? They don't have an id! - if ( ! ::SendMessage( (HWND) GetHWND(), TB_DELETEBUTTON, i, 0 ) ) - break; - } - } - else - { - TBADDBITMAP addBitmap; - addBitmap.hInst = 0; - addBitmap.nID = (UINT)m_hBitmap; - if (::SendMessage((HWND) GetHWND(), TB_ADDBITMAP, (WPARAM) noButtons, (LPARAM) &addBitmap) == -1) - wxFAIL_MSG("Could not add bitmap to toolbar"); - } - - // Now add the buttons. - TBBUTTON buttons[50]; - - node = m_tools.First(); - int i = 0; - int bitmapId = 0; - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_toolStyle == wxTOOL_STYLE_SEPARATOR) - { - buttons[i].iBitmap = 0; - buttons[i].idCommand = 0; - - buttons[i].fsState = TBSTATE_ENABLED; - buttons[i].fsStyle = TBSTYLE_SEP; - buttons[i].dwData = 0L; - buttons[i].iString = 0; - } - else - { - buttons[i].iBitmap = bitmapId; - buttons[i].idCommand = tool->m_index; - - buttons[i].fsState = 0; - if (tool->m_enabled) - buttons[i].fsState |= TBSTATE_ENABLED; - if (tool->m_toggleState) - buttons[i].fsState |= TBSTATE_CHECKED; - buttons[i].fsStyle = tool->m_isToggle ? TBSTYLE_CHECK : TBSTYLE_BUTTON; - buttons[i].dwData = 0L; - buttons[i].iString = 0; - - bitmapId ++; - } - - i ++; - node = node->Next(); - } - - long rc = ::SendMessage((HWND) GetHWND(), TB_ADDBUTTONS, (WPARAM)i, (LPARAM)& buttons); - - wxCHECK_MSG( rc, FALSE, "failed to add buttons to the toolbar" ); - - (void)::SendMessage((HWND) GetHWND(), TB_AUTOSIZE, (WPARAM)0, (LPARAM) 0); - - SetRows(m_maxRows); - - return TRUE; -} - -bool wxToolBar95::MSWCommand(WXUINT cmd, WXWORD id) -{ - wxNode *node = m_tools.Find((long)id); - if (!node) - return FALSE; - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - tool->m_toggleState = (1 == (1 & (int)::SendMessage((HWND) GetHWND(), TB_GETSTATE, (WPARAM) id, (LPARAM) 0))); - - BOOL ret = OnLeftClick((int)id, tool->m_toggleState); - if (ret == FALSE && tool->m_isToggle) - { - tool->m_toggleState = !tool->m_toggleState; - ::SendMessage((HWND) GetHWND(), TB_CHECKBUTTON, (WPARAM)id, (LPARAM)MAKELONG(tool->m_toggleState, 0)); - } - return TRUE; -} - -bool wxToolBar95::MSWOnNotify(int WXUNUSED(idCtrl), - WXLPARAM lParam, - WXLPARAM *result) -{ - // First check if this applies to us - NMHDR *hdr = (NMHDR *)lParam; - - // the tooltips control created by the toolbar is sometimes Unicode, even in - // an ANSI application - if ( (hdr->code != TTN_NEEDTEXTA) && (hdr->code != TTN_NEEDTEXTW) ) - return FALSE; - - HWND toolTipWnd = (HWND)::SendMessage((HWND)GetHWND(), TB_GETTOOLTIPS, 0, 0); - if ( toolTipWnd != hdr->hwndFrom ) - return FALSE; - - LPTOOLTIPTEXT ttText = (LPTOOLTIPTEXT)lParam; - int id = (int)ttText->hdr.idFrom; - wxNode *node = m_tools.Find((long)id); - if (!node) - return FALSE; - - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - - const wxString& help = tool->m_shortHelpString; - - if ( !help.IsEmpty() ) - { - if ( hdr->code == TTN_NEEDTEXTA ) - { - ttText->lpszText = (char *)help.c_str(); - } -#if (_WIN32_IE >= 0x0300) - else - { - // FIXME this is a temp hack only until I understand better what - // must be done in both ANSI and Unicode builds - - size_t lenAnsi = help.Len(); - #ifdef __MWERKS__ - // MetroWerks doesn't like calling mbstowcs with NULL argument - size_t lenUnicode = 2*lenAnsi; - #else - size_t lenUnicode = mbstowcs(NULL, help, lenAnsi); - #endif - - // using the pointer of right type avoids us doing all sorts of - // pointer arithmetics ourselves - wchar_t *dst = (wchar_t *)ttText->szText, - *pwz = new wchar_t[lenUnicode + 1]; - mbstowcs(pwz, help, lenAnsi + 1); - memcpy(dst, pwz, lenUnicode*sizeof(wchar_t)); - - // put the terminating _wide_ NUL - dst[lenUnicode] = 0; - - delete [] pwz; - } -#endif // _WIN32_IE >= 0x0300 - } - - // For backward compatibility... - OnMouseEnter(tool->m_index); - - return TRUE; -} - -void wxToolBar95::SetToolBitmapSize(const wxSize& size) -{ - m_defaultWidth = size.x; - m_defaultHeight = size.y; - ::SendMessage((HWND) GetHWND(), TB_SETBITMAPSIZE, 0, (LPARAM) MAKELONG ((int)size.x, (int)size.y)); -} - -void wxToolBar95::SetRows(int nRows) -{ - RECT rect; - ::SendMessage((HWND) GetHWND(), TB_SETROWS, MAKEWPARAM(nRows, TRUE), (LPARAM) & rect); - m_maxWidth = (rect.right - rect.left + 2); - m_maxHeight = (rect.bottom - rect.top + 2); -} - -wxSize wxToolBar95::GetMaxSize() const -{ - if ((m_maxWidth == -1) || (m_maxHeight == -1)) - { - RECT rect; - ::SendMessage((HWND) GetHWND(), TB_SETROWS, MAKEWPARAM(m_maxRows, TRUE), (LPARAM) & rect); - ((wxToolBar95 *)this)->m_maxWidth = (rect.right - rect.left + 2); // ??? - ((wxToolBar95 *)this)->m_maxHeight = (rect.bottom - rect.top + 2); // ??? - } - return wxSize(m_maxWidth, m_maxHeight); -} - -// The button size is bigger than the bitmap size -wxSize wxToolBar95::GetToolSize() const -{ - return wxSize(m_defaultWidth + 8, m_defaultHeight + 7); -} - -void wxToolBar95::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_enabled = enable; - ::SendMessage((HWND) GetHWND(), TB_ENABLEBUTTON, (WPARAM)toolIndex, (LPARAM)MAKELONG(enable, 0)); - } -} - -void wxToolBar95::ToggleTool(int toolIndex, bool toggle) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - { - tool->m_toggleState = toggle; - ::SendMessage((HWND) GetHWND(), TB_CHECKBUTTON, (WPARAM)toolIndex, (LPARAM)MAKELONG(toggle, 0)); - } - } -} - -bool wxToolBar95::GetToolState(int toolIndex) const -{ - return (::SendMessage((HWND) GetHWND(), TB_ISBUTTONCHECKED, (WPARAM)toolIndex, (LPARAM)0) != 0); -} - -void wxToolBar95::ClearTools() -{ - // TODO: Don't know how to reset the toolbar bitmap, as yet. - // But adding tools and calling CreateTools should probably - // recreate a buttonbar OK. - wxToolBarBase::ClearTools(); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. -wxToolBarTool *wxToolBar95::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, const wxString& helpString1, const wxString& helpString2) -{ - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, wxNullBitmap, toggle, xPos, yPos, helpString1, helpString2); - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - tool->SetSize(GetToolSize().x, GetToolSize().y); - - m_tools.Append((long)index, tool); - return tool; -} - -// Responds to colour changes, and passes event on to children. -void wxToolBar95::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - m_backgroundColour = wxColour(GetRValue(GetSysColor(COLOR_BTNFACE)), - GetGValue(GetSysColor(COLOR_BTNFACE)), GetBValue(GetSysColor(COLOR_BTNFACE))); - - // Remap the buttons - CreateTools(); - - Refresh(); - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -void wxToolBar95::OnMouseEvent(wxMouseEvent& event) -{ - if (event.RightDown()) - { - // For now, we don't have an id. Later we could - // try finding the tool. - OnRightClick((int)-1, event.GetX(), event.GetY()); - } - else - { - event.Skip(); - } -} - -// These are the default colors used to map the bitmap colors -// to the current system colors - -#define BGR_BUTTONTEXT (RGB(000,000,000)) // black -#define BGR_BUTTONSHADOW (RGB(128,128,128)) // dark grey -#define BGR_BUTTONFACE (RGB(192,192,192)) // bright grey -#define BGR_BUTTONHILIGHT (RGB(255,255,255)) // white -#define BGR_BACKGROUNDSEL (RGB(255,000,000)) // blue -#define BGR_BACKGROUND (RGB(255,000,255)) // magenta - -void wxMapBitmap(HBITMAP hBitmap, int width, int height) -{ - COLORMAP ColorMap[] = { - {BGR_BUTTONTEXT, COLOR_BTNTEXT}, // black - {BGR_BUTTONSHADOW, COLOR_BTNSHADOW}, // dark grey - {BGR_BUTTONFACE, COLOR_BTNFACE}, // bright grey - {BGR_BUTTONHILIGHT, COLOR_BTNHIGHLIGHT},// white - {BGR_BACKGROUNDSEL, COLOR_HIGHLIGHT}, // blue - {BGR_BACKGROUND, COLOR_WINDOW} // magenta - }; - - int NUM_MAPS = (sizeof(ColorMap)/sizeof(COLORMAP)); - int n; - for ( n = 0; n < NUM_MAPS; n++) - { - ColorMap[n].to = ::GetSysColor(ColorMap[n].to); - } - - HBITMAP hbmOld; - HDC hdcMem = CreateCompatibleDC(NULL); - - if (hdcMem) - { - hbmOld = (HBITMAP) SelectObject(hdcMem, hBitmap); - - int i, j, k; - for ( i = 0; i < width; i++) - { - for ( j = 0; j < height; j++) - { - COLORREF pixel = ::GetPixel(hdcMem, i, j); -/* - BYTE red = GetRValue(pixel); - BYTE green = GetGValue(pixel); - BYTE blue = GetBValue(pixel); -*/ - - for ( k = 0; k < NUM_MAPS; k ++) - { - if ( ColorMap[k].from == pixel ) - { - /* COLORREF actualPixel = */ ::SetPixel(hdcMem, i, j, ColorMap[k].to); - break; - } - } - } - } - - - SelectObject(hdcMem, hbmOld); - DeleteObject(hdcMem); - } - -} - -// Some experiments... -#if 0 - // What we want to do is create another bitmap which has a depth of 4, - // and set the bits. So probably we want to convert this HBITMAP into a - // DIB, then call SetDIBits. - // AAAGH. The stupid thing is that if newBitmap has a depth of 4 (less than that of - // the screen), then SetDIBits fails. - HBITMAP newBitmap = ::CreateBitmap(totalBitmapWidth, totalBitmapHeight, 1, 4, NULL); - HANDLE newDIB = ::BitmapToDIB((HBITMAP) m_hBitmap, NULL); - LPBITMAPINFOHEADER lpbmi = (LPBITMAPINFOHEADER) GlobalLock(newDIB); - - dc = ::GetDC(NULL); -// LPBITMAPINFOHEADER lpbmi = (LPBITMAPINFOHEADER) newDIB; - - int result = ::SetDIBits(dc, newBitmap, 0, lpbmi->biHeight, FindDIBBits((LPSTR)lpbmi), (LPBITMAPINFO)lpbmi, - DIB_PAL_COLORS); - DWORD err = GetLastError(); - - ::ReleaseDC(NULL, dc); - - // Delete the DIB - GlobalUnlock (newDIB); - GlobalFree (newDIB); - -// WXHBITMAP hBitmap2 = wxCreateMappedBitmap((WXHINSTANCE) wxGetInstance(), (WXHBITMAP) m_hBitmap); - // Substitute our new bitmap for the old one - ::DeleteObject((HBITMAP) m_hBitmap); - m_hBitmap = (WXHBITMAP) newBitmap; -#endif - - -#endif diff --git a/src/msw/tbarmsw.cpp b/src/msw/tbarmsw.cpp deleted file mode 100644 index 11facd6d13..0000000000 --- a/src/msw/tbarmsw.cpp +++ /dev/null @@ -1,963 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbarmsw.cpp -// Purpose: wxToolBarMSW -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbarmsw.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#if wxUSE_BUTTONBAR && wxUSE_TOOLBAR - -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) -#include "malloc.h" -#endif - -#if !defined(__MWERKS__) && !defined(__SALFORDC__) -#include -#endif - -#include - -#include "wx/tbarmsw.h" -#include "wx/event.h" -#include "wx/app.h" -#include "wx/bitmap.h" -#include "wx/msw/private.h" -#include "wx/msw/dib.h" - -#define DEFAULTBITMAPX 16 -#define DEFAULTBITMAPY 15 -#define DEFAULTBUTTONX 24 -#define DEFAULTBUTTONY 22 -#define DEFAULTBARHEIGHT 27 - -/////// Non-Windows 95 implementation - -#if !wxUSE_IMAGE_LOADING_IN_MSW -#error If wxUSE_IMAGE_LOADING_IN_MSW is set to 0, then wxUSE_BUTTONBAR must be set to 0 too. -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBarMSW, wxToolBarBase) - -BEGIN_EVENT_TABLE(wxToolBarMSW, wxToolBarBase) - EVT_SIZE(wxToolBarMSW::OnSize) - EVT_PAINT(wxToolBarMSW::OnPaint) - EVT_MOUSE_EVENTS(wxToolBarMSW::OnMouseEvent) -END_EVENT_TABLE() -#endif - -wxToolBarMSW::wxToolBarMSW(void) -{ - m_hbrDither = 0; - m_rgbFace = 0; - m_rgbShadow = 0; - m_rgbHilight = 0; - m_rgbFrame = 0; - m_hdcMono = 0; - m_hbmMono = 0; - m_hbmDefault = 0; - m_defaultWidth = DEFAULTBITMAPX; - m_defaultHeight = DEFAULTBITMAPY; -} - -bool wxToolBarMSW::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - if ( ! wxWindow::Create(parent, id, pos, size, style, name) ) - return FALSE; - - if ( style & wxTB_HORIZONTAL ) - { m_lastX = 3; m_lastY = 7; } - else - { m_lastX = 7; m_lastY = 3; } - m_maxWidth = m_maxHeight = 0; - m_pressedTool = m_currentTool = -1; - m_xMargin = 0; - m_yMargin = 0; - m_toolPacking = 1; - m_toolSeparation = 5; - - // Set it to grey - SetBackgroundColour(wxColour(192, 192, 192)); - - m_hbrDither = 0; - m_rgbFace = 0; - m_rgbShadow = 0; - m_rgbHilight = 0; - m_rgbFrame = 0; - m_hdcMono = 0; - m_hbmMono = 0; - m_hbmDefault = 0; - m_defaultWidth = DEFAULTBITMAPX; - m_defaultHeight = DEFAULTBITMAPY; - - InitGlobalObjects(); - - return TRUE; -} - -wxToolBarMSW::~wxToolBarMSW(void) -{ - FreeGlobalObjects(); -} - -void wxToolBarMSW::SetToolBitmapSize(const wxSize& size) -{ - m_defaultWidth = size.x; m_defaultHeight = size.y; - FreeGlobalObjects(); - InitGlobalObjects(); -} - -// The button size is bigger than the bitmap size -wxSize wxToolBarMSW::GetToolSize(void) const -{ - return wxSize(m_defaultWidth + 8, m_defaultHeight + 7); -} - -void wxToolBarMSW::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - static int wxOnPaintCount = 0; - - // Prevent reentry of OnPaint which would cause - // wxMemoryDC errors. - if (wxOnPaintCount > 0) - return; - wxOnPaintCount ++; - - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_toolStyle != wxTOOL_STYLE_SEPARATOR) - { - int state = wxTBSTATE_ENABLED; - if (!tool->m_enabled) - state = 0; - if (tool->m_isToggle && tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); - } - node = node->Next(); - } - wxOnPaintCount --; -} - -void wxToolBarMSW::OnSize(wxSizeEvent& event) -{ - wxToolBarBase::OnSize(event); -} - -// If a Button is disabled, then NO function (besides leaving -// or entering) should be carried out. Therefore the additions -// of 'enabled' testing (Stefan Hammes). -void wxToolBarMSW::OnMouseEvent(wxMouseEvent& event) -{ - static wxToolBarTool *eventCurrentTool = NULL; - wxClientDC dc(this); - - if (event.Leaving()) - { - m_currentTool = -1; - if (eventCurrentTool && eventCurrentTool->m_enabled) - { - ::ReleaseCapture(); - int state = wxTBSTATE_ENABLED; - if (eventCurrentTool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, eventCurrentTool, state); - eventCurrentTool = NULL; - } - OnMouseEnter(-1); - return; - } - - long x, y; - event.Position(&x, &y); - wxToolBarTool *tool = FindToolForPosition(x, y); - - if (!tool) - { - if (eventCurrentTool && eventCurrentTool->m_enabled) - { - ::ReleaseCapture(); - - int state = wxTBSTATE_ENABLED; - if (eventCurrentTool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, eventCurrentTool, state); - eventCurrentTool = NULL; - } - if (m_currentTool > -1) - { - m_currentTool = -1; - OnMouseEnter(-1); - } - return; - } - - if (!event.Dragging() && !event.IsButton()) - { - if (tool->m_index != m_currentTool) - { - OnMouseEnter(tool->m_index); - m_currentTool = tool->m_index; - return; - } - } - if (event.Dragging() && tool->m_enabled) - { - if (eventCurrentTool) - { - // Might have dragged outside tool - if (eventCurrentTool != tool) - { - int state = wxTBSTATE_ENABLED; - if (tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); - eventCurrentTool = NULL; - return; - } - } - else - { - if (tool && event.LeftIsDown() && tool->m_enabled) - { - eventCurrentTool = tool; - ::SetCapture((HWND) GetHWND()); - int state = wxTBSTATE_ENABLED|wxTBSTATE_PRESSED; - if (tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); - } - } - } - if (event.LeftDown() && tool->m_enabled) - { - eventCurrentTool = tool; - ::SetCapture((HWND) GetHWND()); - int state = wxTBSTATE_ENABLED|wxTBSTATE_PRESSED; - if (tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); - } - else if (event.LeftUp() && tool->m_enabled) - { - if (eventCurrentTool) - ::ReleaseCapture(); - if (eventCurrentTool == tool) - { - if (tool->m_isToggle) - { - tool->m_toggleState = !tool->m_toggleState; - if (!OnLeftClick(tool->m_index, tool->m_toggleState)) - { - tool->m_toggleState = !tool->m_toggleState; - } - int state = wxTBSTATE_ENABLED; - if (tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); - } - else - { - int state = wxTBSTATE_ENABLED; - if (tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); - OnLeftClick(tool->m_index, tool->m_toggleState); - } - } - eventCurrentTool = NULL; - } - else if (event.RightDown() && tool->m_enabled) - { - OnRightClick(tool->m_index, x, y); - } -} - -// This function enables/disables a toolbar tool and redraws it. -// If that would not be done, the enabling/disabling wouldn't be -// visible on the screen. -void wxToolBarMSW::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxClientDC dc(this); - - // at first do the enabling/disabling in the base class - wxToolBarBase::EnableTool(toolIndex,enable); - // then calculate the state of the tool and draw it - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - int state = 0; - if(tool->m_toggleState) state |= wxTBSTATE_CHECKED; - if(tool->m_enabled) state |= wxTBSTATE_ENABLED; - // how can i access the PRESSED state??? - DrawTool(dc, tool,state); - } -} - -void wxToolBarMSW::DrawTool(wxDC& dc, wxToolBarTool *tool, int state) -{ - DrawButton(dc.GetHDC(), (int)tool->m_x, (int)tool->m_y, (int)tool->GetWidth(), (int)tool->GetHeight(), tool, state); -} - -void wxToolBarMSW::DrawTool(wxDC& dc, wxMemoryDC& , wxToolBarTool *tool) -{ - int state = wxTBSTATE_ENABLED; - if (!tool->m_enabled) - state = 0; - if (tool->m_toggleState) - state |= wxTBSTATE_CHECKED; - DrawTool(dc, tool, state); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. -wxToolBarTool *wxToolBarMSW::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, const wxString& helpString1, const wxString& helpString2) -{ - // Using bitmap2 can cause problems (don't know why!) - - // TODO: use the mapping code from wxToolBar95 to get it right in this class -#if !defined(__WIN32__) && !defined(__WIN386__) - wxBitmap bitmap2; - if (toggle) - { - bitmap2.SetHBITMAP( (WXHBITMAP) CreateMappedBitmap(wxGetInstance(), (HBITMAP) ((wxBitmap& )bitmap).GetHBITMAP())); - } - - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, bitmap2, toggle, xPos, yPos, helpString1, helpString2); -#else - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, wxNullBitmap, toggle, xPos, yPos, helpString1, helpString2); -#endif - - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - tool->m_deleteSecondBitmap = TRUE; - tool->SetSize(GetToolSize().x, GetToolSize().y); - - // Calculate reasonable max size in case Layout() not called - if ((tool->m_x + bitmap.GetWidth() + m_xMargin) > m_maxWidth) - m_maxWidth = (tool->m_x + tool->GetWidth() + m_xMargin); - - if ((tool->m_y + bitmap.GetHeight() + m_yMargin) > m_maxHeight) - m_maxHeight = (tool->m_y + tool->GetHeight() + m_yMargin); - - m_tools.Append((long)index, tool); - return tool; -} - -void wxToolBarMSW::LayoutTools() -{ - m_currentRowsOrColumns = 0; - m_lastX = m_xMargin; - m_lastY = m_yMargin; - int maxToolWidth = 0; - int maxToolHeight = 0; - m_maxWidth = 0; - m_maxHeight = 0; - - // Find the maximum tool width and height - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->GetWidth() > maxToolWidth) - maxToolWidth = (int)tool->GetWidth(); - if (tool->GetHeight() > maxToolHeight) - maxToolHeight = (int)tool->GetHeight(); - node = node->Next(); - } - - int separatorSize = m_toolSeparation; - - node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_toolStyle == wxTOOL_STYLE_SEPARATOR) - { - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - { - if (m_currentRowsOrColumns >= m_maxCols) - m_lastY += separatorSize; - else - m_lastX += separatorSize; - } - else - { - if (m_currentRowsOrColumns >= m_maxRows) - m_lastX += separatorSize; - else - m_lastY += separatorSize; - } - } - else if (tool->m_toolStyle == wxTOOL_STYLE_BUTTON) - { - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - { - if (m_currentRowsOrColumns >= m_maxCols) - { - m_currentRowsOrColumns = 0; - m_lastX = m_xMargin; - m_lastY += maxToolHeight + m_toolPacking; - } - tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0); - tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0); - - m_lastX += maxToolWidth + m_toolPacking; - } - else - { - if (m_currentRowsOrColumns >= m_maxRows) - { - m_currentRowsOrColumns = 0; - m_lastX += (maxToolWidth + m_toolPacking); - m_lastY = m_yMargin; - } - tool->m_x = (long) (m_lastX + (maxToolWidth - tool->GetWidth())/2.0); - tool->m_y = (long) (m_lastY + (maxToolHeight - tool->GetHeight())/2.0); - - m_lastY += maxToolHeight + m_toolPacking; - } - m_currentRowsOrColumns ++; - } - - if (m_lastX > m_maxWidth) - m_maxWidth = m_lastX; - if (m_lastY > m_maxHeight) - m_maxHeight = m_lastY; - - node = node->Next(); - } - if ( GetWindowStyleFlag() & wxTB_HORIZONTAL ) - { - m_maxWidth += maxToolWidth; - m_maxHeight += maxToolHeight; - } - else - { - m_maxWidth += maxToolWidth; - m_maxHeight += maxToolHeight; - } - - m_maxWidth += m_xMargin; - m_maxHeight += m_yMargin; - - SetSize(m_maxWidth, m_maxHeight); -} - - -bool wxToolBarMSW::InitGlobalObjects(void) -{ - GetSysColors(); - if (!CreateDitherBrush()) - return FALSE; - - m_hdcMono = (WXHDC) CreateCompatibleDC(NULL); - if (!m_hdcMono) - return FALSE; - - m_hbmMono = (WXHBITMAP) CreateBitmap((int)GetToolSize().x, (int)GetToolSize().y, 1, 1, NULL); - if (!m_hbmMono) - return FALSE; - - m_hbmDefault = (WXHBITMAP) SelectObject((HDC) m_hdcMono, (HBITMAP) m_hbmMono); - return TRUE; -} - -void wxToolBarMSW::FreeGlobalObjects(void) -{ - FreeDitherBrush(); - - if (m_hdcMono) { - if (m_hbmDefault) - { - SelectObject((HDC) m_hdcMono, (HBITMAP) m_hbmDefault); - m_hbmDefault = 0; - } - DeleteDC((HDC) m_hdcMono); // toast the DCs - } - m_hdcMono = 0; - - if (m_hbmMono) - DeleteObject((HBITMAP) m_hbmMono); - m_hbmMono = 0; -} - - -void wxToolBarMSW::PatB(WXHDC hdc,int x,int y,int dx,int dy, long rgb) -{ - RECT rc; - - rc.left = x; - rc.top = y; - rc.right = x + dx; - rc.bottom = y + dy; - - SetBkColor((HDC) hdc,rgb); - ExtTextOut((HDC) hdc,0,0,ETO_OPAQUE,&rc,NULL,0,NULL); -} - - -// create a mono bitmap mask: -// 1's where color == COLOR_BTNFACE || COLOR_HILIGHT -// 0's everywhere else - -void wxToolBarMSW::CreateMask(WXHDC hdc, int xoffset, int yoffset, int dx, int dy) -{ - HDC globalDC = ::GetDC(NULL); - HDC hdcGlyphs = CreateCompatibleDC((HDC) globalDC); - ReleaseDC(NULL, (HDC) globalDC); - - // krj - create a new bitmap and copy the image from hdc. - //HBITMAP bitmapOld = SelectObject(hdcGlyphs, hBitmap); - HBITMAP hBitmap = CreateCompatibleBitmap((HDC) hdc, dx, dy); - HBITMAP bitmapOld = (HBITMAP) SelectObject(hdcGlyphs, hBitmap); - BitBlt(hdcGlyphs, 0,0, dx, dy, (HDC) hdc, 0, 0, SRCCOPY); - - // initalize whole area with 1's - PatBlt((HDC) m_hdcMono, 0, 0, dx, dy, WHITENESS); - - // create mask based on color bitmap - // convert this to 1's - SetBkColor(hdcGlyphs, m_rgbFace); - BitBlt((HDC) m_hdcMono, xoffset, yoffset, (int)GetToolBitmapSize().x, (int)GetToolBitmapSize().y, - hdcGlyphs, 0, 0, SRCCOPY); - // convert this to 1's - SetBkColor(hdcGlyphs, m_rgbHilight); - // OR in the new 1's - BitBlt((HDC) m_hdcMono, xoffset, yoffset, (int)GetToolBitmapSize().x, (int)GetToolBitmapSize().y, - hdcGlyphs, 0, 0, SRCPAINT); - - SelectObject(hdcGlyphs, bitmapOld); - DeleteObject(hBitmap); - DeleteDC(hdcGlyphs); -} - -void wxToolBarMSW::DrawBlankButton(WXHDC hdc, int x, int y, int dx, int dy, int state) -{ - // face color - PatB(hdc, x, y, dx, dy, m_rgbFace); - - if (state & wxTBSTATE_PRESSED) { - PatB(hdc, x + 1, y, dx - 2, 1, m_rgbFrame); - PatB(hdc, x + 1, y + dy - 1, dx - 2, 1, m_rgbFrame); - PatB(hdc, x, y + 1, 1, dy - 2, m_rgbFrame); - PatB(hdc, x + dx - 1, y +1, 1, dy - 2, m_rgbFrame); - PatB(hdc, x + 1, y + 1, 1, dy-2, m_rgbShadow); - PatB(hdc, x + 1, y + 1, dx-2, 1, m_rgbShadow); - } - else { - PatB(hdc, x + 1, y, dx - 2, 1, m_rgbFrame); - PatB(hdc, x + 1, y + dy - 1, dx - 2, 1, m_rgbFrame); - PatB(hdc, x, y + 1, 1, dy - 2, m_rgbFrame); - PatB(hdc, x + dx - 1, y + 1, 1, dy - 2, m_rgbFrame); - dx -= 2; - dy -= 2; - PatB(hdc, x + 1, y + 1, 1, dy - 1, m_rgbHilight); - PatB(hdc, x + 1, y + 1, dx - 1, 1, m_rgbHilight); - PatB(hdc, x + dx, y + 1, 1, dy, m_rgbShadow); - PatB(hdc, x + 1, y + dy, dx, 1, m_rgbShadow); - PatB(hdc, x + dx - 1, y + 2, 1, dy - 2, m_rgbShadow); - PatB(hdc, x + 2, y + dy - 1, dx - 2, 1, m_rgbShadow); - } -} - -void wxToolBarMSW::DrawButton(WXHDC hdc, int x, int y, int dx, int dy, wxToolBarTool *tool, int state) -{ - int yOffset; - HBRUSH hbrOld, hbr; - BOOL bMaskCreated = FALSE; - int xButton = 0; // assume button is down - int dxFace, dyFace; - int xCenterOffset; - - dxFace = dx; - dyFace = dy; - -// HBITMAP hBitmap = (HBITMAP) tool->m_bitmap1.GetHBITMAP(); - HDC globalDC = ::GetDC(NULL); - HDC hdcGlyphs = CreateCompatibleDC(globalDC); - ReleaseDC(NULL, globalDC); - - // get the proper button look - up or down. - if (!(state & (wxTBSTATE_PRESSED | wxTBSTATE_CHECKED))) { - xButton = dx; // use 'up' version of button - dxFace -= 2; - dyFace -= 2; // extents to ignore button highlight - } - - DrawBlankButton(hdc, x, y, dx, dy, state); - - - // move coordinates inside border and away from upper left highlight. - // the extents change accordingly. - x += 2; - y += 2; - dxFace -= 3; - dyFace -= 3; - - // Using bitmap2 can cause problems (don't know why!) -#if !defined(__WIN32__) && !defined(__WIN386__) - HBITMAP bitmapOld; - if (tool->m_bitmap2.Ok()) - bitmapOld = (HBITMAP) SelectObject(hdcGlyphs, (HBITMAP) tool->m_bitmap2.GetHBITMAP()); - else - bitmapOld = (HBITMAP) SelectObject(hdcGlyphs, (HBITMAP) tool->m_bitmap1.GetHBITMAP()); -#else - HBITMAP bitmapOld = (HBITMAP) SelectObject(hdcGlyphs, (HBITMAP) tool->m_bitmap1.GetHBITMAP()); -#endif - - // calculate offset of face from (x,y). y is always from the top, - // so the offset is easy. x needs to be centered in face. - yOffset = 1; - xCenterOffset = (dxFace - (int)GetToolBitmapSize().x)/2; - if (state & (wxTBSTATE_PRESSED | wxTBSTATE_CHECKED)) - { - // pressed state moves down and to the right - // (x moves automatically as face size grows) - yOffset++; - } - - // now put on the face - if (state & wxTBSTATE_ENABLED) { - // regular version - BitBlt((HDC) hdc, x+xCenterOffset, y + yOffset, (int)GetToolBitmapSize().x, (int)GetToolBitmapSize().y, - hdcGlyphs, 0, 0, SRCCOPY); - } else { - // disabled version (or indeterminate) - bMaskCreated = TRUE; - CreateMask((WXHDC) hdcGlyphs, xCenterOffset, yOffset, dxFace, dyFace); -// CreateMask(hBitmap, xCenterOffset, yOffset, dxFace, dyFace); - - SetTextColor((HDC) hdc, 0L); // 0's in mono -> 0 (for ROP) - SetBkColor((HDC) hdc, 0x00FFFFFF); // 1's in mono -> 1 - - // draw glyph's white understrike - if (!(state & wxTBSTATE_INDETERMINATE)) { - hbr = CreateSolidBrush(m_rgbHilight); - if (hbr) { - hbrOld = (HBRUSH) SelectObject((HDC) hdc, hbr); - if (hbrOld) { - // draw hilight color where we have 0's in the mask - BitBlt((HDC) hdc, x + 1, y + 1, dxFace, dyFace, (HDC) m_hdcMono, 0, 0, 0x00B8074A); - SelectObject((HDC) hdc, hbrOld); - } - DeleteObject(hbr); - } - } - - // gray out glyph - hbr = CreateSolidBrush(m_rgbShadow); - if (hbr) { - hbrOld = (HBRUSH) SelectObject((HDC) hdc, hbr); - if (hbrOld) { - // draw the shadow color where we have 0's in the mask - BitBlt((HDC) hdc, x, y, dxFace, dyFace, (HDC) m_hdcMono, 0, 0, 0x00B8074A); - SelectObject((HDC) hdc, hbrOld); - } - DeleteObject(hbr); - } - - if (state & wxTBSTATE_CHECKED) { - BitBlt((HDC) m_hdcMono, 1, 1, dxFace - 1, dyFace - 1, (HDC) m_hdcMono, 0, 0, SRCAND); - } - } - - if (state & (wxTBSTATE_CHECKED | wxTBSTATE_INDETERMINATE)) { - - hbrOld = (HBRUSH) SelectObject((HDC) hdc, (HBRUSH) m_hbrDither); - if (hbrOld) { - - if (!bMaskCreated) - CreateMask((WXHDC) hdcGlyphs, xCenterOffset, yOffset, dxFace, dyFace); -// CreateMask(hBitmap, xCenterOffset, yOffset, dxFace, dyFace); - - SetTextColor((HDC) hdc, 0L); // 0 -> 0 - SetBkColor((HDC) hdc, 0x00FFFFFF); // 1 -> 1 - - // only draw the dither brush where the mask is 1's - BitBlt((HDC) hdc, x, y, dxFace, dyFace, (HDC) m_hdcMono, 0, 0, 0x00E20746); - - SelectObject((HDC) hdc, hbrOld); - } - } - SelectObject(hdcGlyphs, bitmapOld); - DeleteDC(hdcGlyphs); -} - -void wxToolBarMSW::GetSysColors(void) -{ - static COLORREF rgbSaveFace = 0xffffffffL, - rgbSaveShadow = 0xffffffffL, - rgbSaveHilight = 0xffffffffL, - rgbSaveFrame = 0xffffffffL; - - // For now, override these because the colour replacement isn't working, - // and we get inconsistent colours. Assume all buttons are grey for the moment. - -// m_rgbFace = GetSysColor(COLOR_BTNFACE); - m_rgbFace = RGB(192,192,192); -// m_rgbShadow = GetSysColor(COLOR_BTNSHADOW); - m_rgbShadow = RGB(128,128,128); -// m_rgbHilight = GetSysColor(COLOR_BTNHIGHLIGHT); - m_rgbHilight = RGB(255, 255, 255); - - m_rgbFrame = GetSysColor(COLOR_WINDOWFRAME); - - if (rgbSaveFace!=m_rgbFace || rgbSaveShadow!=m_rgbShadow - || rgbSaveHilight!=m_rgbHilight || rgbSaveFrame!=m_rgbFrame) - { - rgbSaveFace = m_rgbFace; - rgbSaveShadow = m_rgbShadow; - rgbSaveHilight = m_rgbHilight; - rgbSaveFrame = m_rgbFrame; - - // Update the brush for pushed-in buttons - CreateDitherBrush(); - } -} - -WXHBITMAP wxToolBarMSW::CreateDitherBitmap() -{ - BITMAPINFO* pbmi; - HBITMAP hbm; - HDC hdc; - int i; - long patGray[8]; - DWORD rgb; - - pbmi = (BITMAPINFO *)malloc(sizeof(BITMAPINFOHEADER) + 16*sizeof(RGBQUAD)); - memset(pbmi, 0, (sizeof(BITMAPINFOHEADER) + 16*sizeof(RGBQUAD))); - - pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); - pbmi->bmiHeader.biWidth = 8; - pbmi->bmiHeader.biHeight = 8; - pbmi->bmiHeader.biPlanes = 1; - pbmi->bmiHeader.biBitCount = 1; - pbmi->bmiHeader.biCompression = BI_RGB; - -// rgb = GetSysColor(COLOR_BTNFACE); - rgb = RGB(192,192,192); - - pbmi->bmiColors[0].rgbBlue = GetBValue(rgb); - pbmi->bmiColors[0].rgbGreen = GetGValue(rgb); - pbmi->bmiColors[0].rgbRed = GetRValue(rgb); - pbmi->bmiColors[0].rgbReserved = 0; - -// rgb = GetSysColor(COLOR_BTNHIGHLIGHT); - rgb = RGB(255, 255, 255); - - pbmi->bmiColors[1].rgbBlue = GetBValue(rgb); - pbmi->bmiColors[1].rgbGreen = GetGValue(rgb); - pbmi->bmiColors[1].rgbRed = GetRValue(rgb); - pbmi->bmiColors[1].rgbReserved = 0; - - /* initialize the brushes */ - - for (i = 0; i < 8; i++) - if (i & 1) - patGray[i] = 0xAAAA5555L; // 0x11114444L; // lighter gray - else - patGray[i] = 0x5555AAAAL; // 0x11114444L; // lighter gray - - hdc = ::GetDC(NULL); - - hbm = CreateDIBitmap(hdc, &pbmi->bmiHeader, CBM_INIT, patGray, pbmi, DIB_RGB_COLORS); - - ReleaseDC(NULL, hdc); - free(pbmi); - - return (WXHBITMAP)hbm; -} - -bool wxToolBarMSW::CreateDitherBrush(void) -{ - HBITMAP hbmGray; - HBRUSH hbrSave; - if (m_hbrDither) - return TRUE; - hbmGray = (HBITMAP) CreateDitherBitmap(); - - if (hbmGray) - { - hbrSave = (HBRUSH) m_hbrDither; - m_hbrDither = (WXHBRUSH) CreatePatternBrush(hbmGray); - DeleteObject(hbmGray); - if (m_hbrDither) - { - if (hbrSave) - { - DeleteObject(hbrSave); - } - return TRUE; - } - else - { - m_hbrDither = (WXHBRUSH) hbrSave; - } - } - - return FALSE; -} - -bool wxToolBarMSW::FreeDitherBrush(void) -{ - if (m_hbrDither) - DeleteObject((HBRUSH) m_hbrDither); - m_hbrDither = 0; - return TRUE; -} - -typedef struct tagCOLORMAP2 -{ - COLORREF bgrfrom; - COLORREF bgrto; - COLORREF sysColor; -} COLORMAP2; - -// these are the default colors used to map the dib colors -// to the current system colors - -#define BGR_BUTTONTEXT (RGB(000,000,000)) // black -#define BGR_BUTTONSHADOW (RGB(128,128,128)) // dark grey -#define BGR_BUTTONFACE (RGB(192,192,192)) // bright grey -#define BGR_BUTTONHILIGHT (RGB(255,255,255)) // white -#define BGR_BACKGROUNDSEL (RGB(255,000,000)) // blue -#define BGR_BACKGROUND (RGB(255,000,255)) // magenta -#define FlipColor(rgb) (RGB(GetBValue(rgb), GetGValue(rgb), GetRValue(rgb))) - -WXHBITMAP wxToolBarMSW::CreateMappedBitmap(WXHINSTANCE WXUNUSED(hInstance), void *info) -{ - LPBITMAPINFOHEADER lpBitmapInfo = (LPBITMAPINFOHEADER)info; - HDC hdc, hdcMem = NULL; - - DWORD FAR *p; - LPSTR lpBits; - HBITMAP hbm = NULL, hbmOld; - int numcolors, i; - int wid, hgt; - static COLORMAP2 ColorMap[] = { - {BGR_BUTTONTEXT, BGR_BUTTONTEXT, COLOR_BTNTEXT}, // black - {BGR_BUTTONSHADOW, BGR_BUTTONSHADOW, COLOR_BTNSHADOW}, // dark grey - {BGR_BUTTONFACE, BGR_BUTTONFACE, COLOR_BTNFACE}, // bright grey - {BGR_BUTTONHILIGHT, BGR_BUTTONHILIGHT, COLOR_BTNHIGHLIGHT},// white - {BGR_BACKGROUNDSEL, BGR_BACKGROUNDSEL, COLOR_HIGHLIGHT}, // blue - {BGR_BACKGROUND, BGR_BACKGROUND, COLOR_WINDOW} // magenta - }; - - #define NUM_MAPS (sizeof(ColorMap)/sizeof(COLORMAP2)) - - if (!lpBitmapInfo) - return 0; - - // - // So what are the new colors anyway ? - // - for (i=0; i < (int) NUM_MAPS; i++) { - ColorMap[i].bgrto = (long unsigned int) FlipColor(GetSysColor((int)ColorMap[i].sysColor)); - } - - p = (DWORD FAR *)(((LPSTR)lpBitmapInfo) + lpBitmapInfo->biSize); - - /* Replace button-face and button-shadow colors with the current values - */ - numcolors = 16; - - while (numcolors-- > 0) { - for (i = 0; i < (int) NUM_MAPS; i++) { - if (*p == ColorMap[i].bgrfrom) { - *p = ColorMap[i].bgrto; - break; - } - } - p++; - } - - /* First skip over the header structure */ - lpBits = (LPSTR)(lpBitmapInfo + 1); - - /* Skip the color table entries, if any */ - lpBits += (1 << (lpBitmapInfo->biBitCount)) * sizeof(RGBQUAD); - - /* Create a color bitmap compatible with the display device */ - i = wid = (int)lpBitmapInfo->biWidth; - hgt = (int)lpBitmapInfo->biHeight; - hdc = ::GetDC(NULL); - - hdcMem = CreateCompatibleDC(hdc); - if (hdcMem) { -// hbm = CreateDiscardableBitmap(hdc, i, hgt); - hbm = CreateCompatibleBitmap(hdc, i, hgt); - if (hbm) { - hbmOld = (HBITMAP) SelectObject(hdcMem, hbm); - - // set the main image - StretchDIBits(hdcMem, 0, 0, wid, hgt, 0, 0, wid, hgt, lpBits, - (LPBITMAPINFO)lpBitmapInfo, DIB_RGB_COLORS, SRCCOPY); - - SelectObject(hdcMem, hbmOld); - } - - DeleteObject(hdcMem); - } - - ReleaseDC(NULL, hdc); - - return (WXHBITMAP) hbm; -} - -WXHBITMAP wxToolBarMSW::CreateMappedBitmap(WXHINSTANCE hInstance, WXHBITMAP hBitmap) -{ - HANDLE hDIB = BitmapToDIB((HBITMAP) hBitmap, 0); - if (hDIB) - { -#ifdef __WINDOWS_386__ - LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)MK_FP32(GlobalLock(hDIB)); -#else - LPBITMAPINFOHEADER lpbmInfoHdr = (LPBITMAPINFOHEADER)GlobalLock(hDIB); -#endif - HBITMAP newBitmap = (HBITMAP) CreateMappedBitmap((WXHINSTANCE) wxGetInstance(), lpbmInfoHdr); - GlobalUnlock(hDIB); - GlobalFree(hDIB); - return (WXHBITMAP) newBitmap; - } - return 0; -} - -#endif diff --git a/src/msw/textctrl.cpp b/src/msw/textctrl.cpp deleted file mode 100644 index 6e3d88dc59..0000000000 --- a/src/msw/textctrl.cpp +++ /dev/null @@ -1,1281 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: wxTextCtrl -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/textctrl.h" -#include "wx/settings.h" -#include "wx/brush.h" -#include "wx/utils.h" -#include "wx/log.h" -#endif - -#if wxUSE_CLIPBOARD -#include "wx/app.h" -#include "wx/clipbrd.h" -#endif - -#include "wx/msw/private.h" - -#include -#include - -#if wxUSE_IOSTREAMH -# include -#else -# include -#endif - -#include -#ifndef __MWERKS__ -#include -#else -#include -#endif -#if defined(__BORLANDC__) && !defined(__WIN32__) -#include -#else -#if !defined(__GNUWIN32__) && !defined(__SALFORDC__) -#include -#endif -#define farmalloc malloc -#define farfree free -#endif -#include - -#include - -#if wxUSE_RICHEDIT && !defined(__GNUWIN32__) - #include -#endif - -#if !USE_SHARED_LIBRARY - -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_CHAR(wxTextCtrl::OnChar) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) - - EVT_MENU(wxID_CUT, wxTextCtrl::OnCut) - EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy) - EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste) - EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo) - EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo) - - EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut) - EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy) - EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste) - EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo) - EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo) -END_EVENT_TABLE() - -#endif // USE_SHARED_LIBRARY - -// Text item -wxTextCtrl::wxTextCtrl() -#ifndef NO_TEXT_WINDOW_STREAM - : streambuf() -#endif -{ -#if wxUSE_RICHEDIT - m_isRich = FALSE; -#endif -} - -bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - m_windowStyle = style; - - // Should this be taken from the system colours? -// SetBackgroundColour(wxColour(255, 255, 255)); - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - - SetForegroundColour(parent->GetForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - long msStyle = ES_LEFT | WS_VISIBLE | WS_CHILD | WS_TABSTOP; - if (m_windowStyle & wxTE_MULTILINE) - { - wxASSERT_MSG( !(m_windowStyle & wxTE_PROCESS_ENTER), - "wxTE_PROCESS_ENTER style is ignored for multiline controls" ); - - msStyle |= ES_MULTILINE | ES_WANTRETURN | WS_VSCROLL ; // WS_BORDER - m_windowStyle |= wxTE_PROCESS_ENTER; - } - else - msStyle |= ES_AUTOHSCROLL ; - - if (m_windowStyle & wxTE_READONLY) - msStyle |= ES_READONLY; - - if (m_windowStyle & wxHSCROLL) - msStyle |= (WS_HSCROLL | ES_AUTOHSCROLL) ; - if (m_windowStyle & wxTE_PASSWORD) // hidden input - msStyle |= ES_PASSWORD; - - const char *windowClass = "EDIT"; - -#if wxUSE_RICHEDIT - if ( m_windowStyle & wxTE_MULTILINE ) - { - msStyle |= ES_AUTOVSCROLL; - m_isRich = TRUE; - windowClass = "RichEdit" ; - } - else - m_isRich = FALSE; -#endif - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // If we're in Win95, and we want a simple 2D border, - // then make it an EDIT control instead. -#if wxUSE_RICHEDIT - if (m_windowStyle & wxSIMPLE_BORDER) - { - windowClass = "EDIT"; - m_isRich = FALSE; - } -#endif - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - msStyle |= WS_BORDER; - - m_hWnd = (WXHWND)::CreateWindowEx(exStyle, windowClass, NULL, - msStyle, - 0, 0, 0, 0, (HWND) ((wxWindow*)parent)->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create text ctrl" ); - -#if wxUSE_CTL3D - if ( want3D ) - { - Ctl3dSubclassCtl((HWND)m_hWnd); - m_useCtl3D = TRUE; - } -#endif - -#if wxUSE_RICHEDIT - if (m_isRich) - { - // Have to enable events - ::SendMessage((HWND)m_hWnd, EM_SETEVENTMASK, 0, - ENM_CHANGE | ENM_DROPFILES | ENM_SELCHANGE | ENM_UPDATE); - } -#endif - - SubclassWin(GetHWND()); - - if ( parent->GetFont().Ok() && parent->GetFont().Ok() ) - { - SetFont(parent->GetFont()); - } - else - { - SetFont(wxSystemSettings::GetSystemFont(wxSYS_SYSTEM_FONT)); - } - - SetSize(x, y, width, height); - - // Causes a crash for Symantec C++ and WIN32 for some reason -#if !(defined(__SC__) && defined(__WIN32__)) - if ( !value.IsEmpty() ) - { - SetValue(value); - } -#endif - - return TRUE; -} - -// Make sure the window style (etc.) reflects the HWND style (roughly) -void wxTextCtrl::AdoptAttributesFromHWND() -{ - wxWindow::AdoptAttributesFromHWND(); - - HWND hWnd = GetHwnd(); - long style = GetWindowLong((HWND) hWnd, GWL_STYLE); - - // retrieve the style to see whether this is an edit or richedit ctrl -#if wxUSE_RICHEDIT - char buf[256]; - -#ifndef __WIN32__ - GetClassName((HWND) hWnd, buf, 256); -#else -#ifdef UNICODE - GetClassNameW((HWND) hWnd, buf, 256); -#else -#ifdef __TWIN32__ - GetClassName((HWND) hWnd, buf, 256); -#else - GetClassNameA((HWND) hWnd, buf, 256); -#endif -#endif -#endif - - wxString str(buf); - str.UpperCase(); - - if (str == "EDIT") - m_isRich = FALSE; - else - m_isRich = TRUE; -#endif - - if (style & ES_MULTILINE) - m_windowStyle |= wxTE_MULTILINE; - if (style & ES_PASSWORD) - m_windowStyle |= wxTE_PASSWORD; - if (style & ES_READONLY) - m_windowStyle |= wxTE_READONLY; - if (style & ES_WANTRETURN) - m_windowStyle |= wxTE_PROCESS_ENTER; -} - -void wxTextCtrl::SetupColours() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - SetForegroundColour(GetParent()->GetForegroundColour()); -} - -wxString wxTextCtrl::GetValue() const -{ - return wxGetWindowText(GetHWND()); -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - // If newlines are denoted by just 10, must stick 13 in front. - int singletons = 0; - int len = value.Length(); - int i; - for (i = 0; i < len; i ++) - { - if ((i > 0) && (value[i] == 10) && (value[i-1] != 13)) - singletons ++; - } - if (singletons > 0) - { - char *tmp = new char[len + singletons + 1]; - int j = 0; - for (i = 0; i < len; i ++) - { - if ((i > 0) && (value[i] == 10) && (value[i-1] != 13)) - { - tmp[j] = 13; - j ++; - } - tmp[j] = value[i]; - j ++; - } - tmp[j] = 0; - SetWindowText(GetHwnd(), tmp); - delete[] tmp; - } - else - SetWindowText(GetHwnd(), (const char *)value); - - AdjustSpaceLimit(); -} - -void wxTextCtrl::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - int w1 = width; - int h1 = height; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - int cx; // button font dimensions - int cy; - - wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); - - int control_width, control_height, control_x, control_y; - - // If we're prepared to use the existing size, then... - if (width == -1 && height == -1 && ((sizeFlags & wxSIZE_AUTO) != wxSIZE_AUTO)) - { - GetSize(&w1, &h1); - } - - // Deal with default size (using -1 values) - if (w1<=0) - w1 = DEFAULT_ITEM_WIDTH; - - control_x = x1; - control_y = y1; - control_width = w1; - control_height = h1; - - // Calculations may have made text size too small - if (control_height <= 0) - control_height = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy); - - if (control_width <= 0) - control_width = DEFAULT_ITEM_WIDTH; - - MoveWindow(GetHwnd(), (int)control_x, (int)control_y, - (int)control_width, (int)control_height, TRUE); -} - -// Clipboard operations -void wxTextCtrl::Copy() -{ - if (CanCopy()) - { - HWND hWnd = GetHwnd(); - SendMessage(hWnd, WM_COPY, 0, 0L); - } -} - -void wxTextCtrl::Cut() -{ - if (CanCut()) - { - HWND hWnd = GetHwnd(); - SendMessage(hWnd, WM_CUT, 0, 0L); - } -} - -void wxTextCtrl::Paste() -{ - if (CanPaste()) - { - HWND hWnd = GetHwnd(); - SendMessage(hWnd, WM_PASTE, 0, 0L); - } -} - -void wxTextCtrl::SetEditable(bool editable) -{ - HWND hWnd = GetHwnd(); - SendMessage(hWnd, EM_SETREADONLY, (WPARAM)!editable, (LPARAM)0L); -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - HWND hWnd = GetHwnd(); -#ifdef __WIN32__ -#if wxUSE_RICHEDIT - if ( m_isRich) - { - CHARRANGE range; - range.cpMin = pos; - range.cpMax = pos; - SendMessage(hWnd, EM_EXSETSEL, 0, (LPARAM) &range); - SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); - } - else -#endif - { - SendMessage(hWnd, EM_SETSEL, pos, pos); - SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); - } -#else - SendMessage(hWnd, EM_SETSEL, 0, MAKELPARAM(pos, pos)); -#endif - char *nothing = ""; - SendMessage(hWnd, EM_REPLACESEL, 0, (LPARAM)nothing); -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - long pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ -#if wxUSE_RICHEDIT - if (m_isRich) - { - CHARRANGE range; - range.cpMin = 0; - range.cpMax = 0; - SendMessage(GetHwnd(), EM_EXGETSEL, 0, (LPARAM) &range); - return range.cpMin; - } -#endif - - DWORD Pos=(DWORD)SendMessage(GetHwnd(), EM_GETSEL, 0, 0L); - return Pos&0xFFFF; -} - -long wxTextCtrl::GetLastPosition() const -{ - HWND hWnd = GetHwnd(); - - // Will always return a number > 0 (according to docs) - int noLines = (int)SendMessage(hWnd, EM_GETLINECOUNT, (WPARAM)0, (LPARAM)0L); - - // This gets the char index for the _beginning_ of the last line - int charIndex = (int)SendMessage(hWnd, EM_LINEINDEX, (WPARAM)(noLines-1), (LPARAM)0L); - - // Get number of characters in the last line. We'll add this to the character - // index for the last line, 1st position. - int lineLength = (int)SendMessage(hWnd, EM_LINELENGTH, (WPARAM)charIndex, (LPARAM)0L); - - return (long)(charIndex + lineLength); -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ -#if wxUSE_CLIPBOARD - HWND hWnd = GetHwnd(); - long fromChar = from; - long toChar = to; - - // Set selection and remove it -#ifdef __WIN32__ - SendMessage(hWnd, EM_SETSEL, fromChar, toChar); -#else - SendMessage(hWnd, EM_SETSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)); -#endif - SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0); - - // Now replace with 'value', by pasting. - wxSetClipboardData(wxDF_TEXT, (wxObject *) (const char *)value, 0, 0); - - // Paste into edit control - SendMessage(hWnd, WM_PASTE, (WPARAM)0, (LPARAM)0L); -#else - wxFAIL_MSG("wxTextCtrl::Replace not implemented if wxUSE_CLIPBOARD is 0."); -#endif -} - -void wxTextCtrl::Remove(long from, long to) -{ - HWND hWnd = GetHwnd(); - long fromChar = from; - long toChar = to; - - // Cut all selected text -#ifdef __WIN32__ - SendMessage(hWnd, EM_SETSEL, fromChar, toChar); -#else - SendMessage(hWnd, EM_SETSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)); -#endif - SendMessage(hWnd, WM_CUT, (WPARAM)0, (LPARAM)0); -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - HWND hWnd = GetHwnd(); - long fromChar = from; - long toChar = to; - // if from and to are both -1, it means - // (in wxWindows) that all text should be selected. - // This translates into Windows convention - if ((from == -1) && (to == -1)) - { - fromChar = 0; - toChar = -1; - } - -#ifdef __WIN32__ - SendMessage(hWnd, EM_SETSEL, (WPARAM)fromChar, (LPARAM)toChar); - SendMessage(hWnd, EM_SCROLLCARET, (WPARAM)0, (LPARAM)0); -#else - // WPARAM is 0: selection is scrolled into view - SendMessage(hWnd, EM_SETSEL, (WPARAM)0, (LPARAM)MAKELONG(fromChar, toChar)); -#endif -} - -bool wxTextCtrl::LoadFile(const wxString& file) -{ - if (!wxFileExists(WXSTRINGCAST file)) - return FALSE; - - m_fileName = file; - - Clear(); - -// ifstream input(WXSTRINGCAST file, ios::nocreate | ios::in); - ifstream input(WXSTRINGCAST file, ios::in); - - if (!input.bad()) - { - // Previously a SETSEL/REPLACESEL call-pair were done to insert - // line by line into the control. Apart from being very slow this - // was limited to 32K of text by the external interface presenting - // positions as signed shorts. Now load in one chunk... - // Note use of 'farmalloc' as in Borland 3.1 'size_t' is 16-bits... - -#ifdef __SALFORDC__ - struct _stat stat_buf; - if (stat((char*) (const char*) file, &stat_buf) < 0) - return FALSE; -#else - struct stat stat_buf; - if (stat(file, &stat_buf) < 0) - return FALSE; -#endif - -// char *tmp_buffer = (char*)farmalloc(stat_buf.st_size+1); - // This may need to be a bigger buffer than the file size suggests, - // if it's a UNIX file. Give it an extra 1000 just in case. - char *tmp_buffer = (char*)farmalloc((size_t)(stat_buf.st_size+1+1000)); - long no_lines = 0; - long pos = 0; - while (!input.eof() && input.peek() != EOF) - { - input.getline(wxBuffer, 500); - int len = strlen(wxBuffer); - wxBuffer[len] = 13; - wxBuffer[len+1] = 10; - wxBuffer[len+2] = 0; - strcpy(tmp_buffer+pos, wxBuffer); - pos += strlen(wxBuffer); - no_lines++; - } - - SetWindowText(GetHwnd(), tmp_buffer); - SendMessage(GetHwnd(), EM_SETMODIFY, FALSE, 0L); - farfree(tmp_buffer); - - // update the size limit if needed - AdjustSpaceLimit(); - - return TRUE; - } - return FALSE; -} - -// If file is null, try saved file name first -// Returns TRUE if succeeds. -bool wxTextCtrl::SaveFile(const wxString& file) -{ - wxString theFile(file); - - if (theFile == "") - theFile = m_fileName; - - if (theFile == "") - return FALSE; - - m_fileName = theFile; - - ofstream output((char*) (const char*) theFile); - if (output.bad()) - return FALSE; - - // This will only save 64K max - unsigned long nbytes = SendMessage(GetHwnd(), WM_GETTEXTLENGTH, 0, 0); - char *tmp_buffer = (char*)farmalloc((size_t)(nbytes+1)); - SendMessage(GetHwnd(), WM_GETTEXT, (WPARAM)(nbytes+1), (LPARAM)tmp_buffer); - char *pstr = tmp_buffer; - - // Convert \r\n to just \n - while (*pstr) - { - if (*pstr != '\r') - output << *pstr; - pstr++; - } - - farfree(tmp_buffer); - SendMessage(GetHwnd(), EM_SETMODIFY, FALSE, 0L); - - return TRUE; -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - // Covert \n to \r\n - int len = text.Length(); - char *newtext = new char[(len*2)+1]; - int i = 0; - int j = 0; - while (i < len) - { - if (text[i] == '\n') - { - newtext[j] = '\r'; - j ++; - } - newtext[j] = text[i]; - i ++; - j ++; - } - newtext[j] = 0; - SendMessage(GetHwnd(), EM_REPLACESEL, 0, (LPARAM)newtext); - delete[] newtext; - - AdjustSpaceLimit(); -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - SetInsertionPointEnd(); - WriteText(text); -} - -void wxTextCtrl::Clear() -{ - SetWindowText(GetHwnd(), ""); -} - -bool wxTextCtrl::IsModified() const -{ - return (SendMessage(GetHwnd(), EM_GETMODIFY, 0, 0) != 0); -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - SendMessage(GetHwnd(), EM_SETMODIFY, FALSE, 0L); -} - -/* - * Some of the following functions are yet to be implemented - * - */ - -int wxTextCtrl::GetNumberOfLines() const -{ - return (int)SendMessage(GetHwnd(), EM_GETLINECOUNT, (WPARAM)0, (LPARAM)0); -} - -long wxTextCtrl::XYToPosition(long x, long y) const -{ - HWND hWnd = GetHwnd(); - - // This gets the char index for the _beginning_ of this line - int charIndex = (int)SendMessage(hWnd, EM_LINEINDEX, (WPARAM)y, (LPARAM)0); - return (long)(x + charIndex); -} - -void wxTextCtrl::PositionToXY(long pos, long *x, long *y) const -{ - HWND hWnd = GetHwnd(); - - // This gets the line number containing the character - int lineNo = (int)SendMessage(hWnd, EM_LINEFROMCHAR, (WPARAM)pos, (LPARAM)0); - // This gets the char index for the _beginning_ of this line - int charIndex = (int)SendMessage(hWnd, EM_LINEINDEX, (WPARAM)lineNo, (LPARAM)0); - // The X position must therefore be the different between pos and charIndex - *x = (long)(pos - charIndex); - *y = (long)lineNo; -} - -void wxTextCtrl::ShowPosition(long pos) -{ - HWND hWnd = GetHwnd(); - - // To scroll to a position, we pass the number of lines and characters - // to scroll *by*. This means that we need to: - // (1) Find the line position of the current line. - // (2) Find the line position of pos. - // (3) Scroll by (pos - current). - // For now, ignore the horizontal scrolling. - - // Is this where scrolling is relative to - the line containing the caret? - // Or is the first visible line??? Try first visible line. -// int currentLineLineNo1 = (int)SendMessage(hWnd, EM_LINEFROMCHAR, (WPARAM)-1, (LPARAM)0L); - - int currentLineLineNo = (int)SendMessage(hWnd, EM_GETFIRSTVISIBLELINE, (WPARAM)0, (LPARAM)0L); - - int specifiedLineLineNo = (int)SendMessage(hWnd, EM_LINEFROMCHAR, (WPARAM)pos, (LPARAM)0L); - - int linesToScroll = specifiedLineLineNo - currentLineLineNo; - - if (linesToScroll != 0) - (void)SendMessage(hWnd, EM_LINESCROLL, (WPARAM)0, (LPARAM)linesToScroll); -} - -int wxTextCtrl::GetLineLength(long lineNo) const -{ - long charIndex = XYToPosition(0, lineNo); - HWND hWnd = GetHwnd(); - int len = (int)SendMessage(hWnd, EM_LINELENGTH, (WPARAM)charIndex, (LPARAM)0); - return len; -} - -wxString wxTextCtrl::GetLineText(long lineNo) const -{ - HWND hWnd = GetHwnd(); - *(WORD *)wxBuffer = 512; - int noChars = (int)SendMessage(hWnd, EM_GETLINE, (WPARAM)lineNo, (LPARAM)wxBuffer); - wxBuffer[noChars] = 0; - return wxString(wxBuffer); -} - -bool wxTextCtrl::CanCopy() const -{ - // Can copy if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanCut() const -{ - // Can cut if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanPaste() const -{ -#if wxUSE_RICHEDIT - if (m_isRich) - { - int dataFormat = 0; // 0 == any format - return (::SendMessage( GetHwnd(), EM_CANPASTE, (WPARAM) (UINT) dataFormat, 0) != 0); - } -#endif - if (!IsEditable()) - return FALSE; - - // Standard edit control: check for straight text on clipboard - bool isTextAvailable = FALSE; - if (::OpenClipboard((HWND) wxTheApp->GetTopWindow()->GetHWND())) - { - isTextAvailable = (::IsClipboardFormatAvailable(CF_TEXT) != 0); - ::CloseClipboard(); - } - return isTextAvailable; -} - -// Undo/redo -void wxTextCtrl::Undo() -{ - if (CanUndo()) - { - ::SendMessage(GetHwnd(), EM_UNDO, 0, 0); - } -} - -void wxTextCtrl::Redo() -{ - if (CanRedo()) - { - // Same as Undo, since Undo undoes the undo, i.e. a redo. - ::SendMessage(GetHwnd(), EM_UNDO, 0, 0); - } -} - -bool wxTextCtrl::CanUndo() const -{ - return (::SendMessage(GetHwnd(), EM_CANUNDO, 0, 0) != 0); -} - -bool wxTextCtrl::CanRedo() const -{ - return (::SendMessage(GetHwnd(), EM_CANUNDO, 0, 0) != 0); -} - -// If the return values from and to are the same, there is no -// selection. -void wxTextCtrl::GetSelection(long* from, long* to) const -{ -#if wxUSE_RICHEDIT - if (m_isRich) - { - CHARRANGE charRange; - ::SendMessage(GetHwnd(), EM_EXGETSEL, 0, (LPARAM) (CHARRANGE*) & charRange); - - *from = charRange.cpMin; - *to = charRange.cpMax; - - return; - } -#endif - DWORD dwStart, dwEnd; - WPARAM wParam = (WPARAM) (DWORD*) & dwStart; // receives starting position - LPARAM lParam = (LPARAM) (DWORD*) & dwEnd; // receives ending position - - ::SendMessage(GetHwnd(), EM_GETSEL, wParam, lParam); - - *from = dwStart; - *to = dwEnd; -} - -bool wxTextCtrl::IsEditable() const -{ - long style = ::GetWindowLong(GetHwnd(), GWL_STYLE); - - return ((style & ES_READONLY) == 0); -} - -void wxTextCtrl::Command(wxCommandEvent & event) -{ - SetValue (event.GetString()); - ProcessCommand (event); -} - -void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event) -{ - // By default, load the first file into the text window. - if (event.GetNumberOfFiles() > 0) - { - LoadFile(event.GetFiles()[0]); - } -} - -// The streambuf code was partly taken from chapter 3 by Jerry Schwarz of -// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers - -//========================================================================= -// Called then the buffer is full (gcc 2.6.3) -// or when "endl" is output (Borland 4.5) -//========================================================================= -// Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in textctrl.h. -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow(int c) -{ - // Make sure there is a holding area - // this is not needed in usage as it automagically allocates - // it, but does someone want to emulate it for safety's sake? -#if wxUSE_IOSTREAMH - if ( allocate()==EOF ) - { - wxLogError("Streambuf allocation failed"); - return EOF; - } -#endif - - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - // Reset get area - setg(0,0,0); - - // Make sure there is a put area - if ( ! pptr() ) - { -/* This doesn't seem to be fatal so comment out error message */ -// wxError("Put area not opened","Internal error"); - -#if wxUSE_IOSTREAMH - setp( base(), base() ); -#else - setp( pbase(), pbase() ); -#endif - } - - // Determine how many characters have been inserted but no consumed - int plen = pptr() - pbase(); - - // Now Jerry relies on the fact that the buffer is at least 2 chars - // long, but the holding area "may be as small as 1" ??? - // And we need an additional \0, so let's keep this inefficient but - // safe copy. - - // If c!=EOF, it is a character that must also be comsumed - int xtra = c==EOF? 0 : 1; - - // Write temporary C-string to wxTextWindow - { - char *txt = new char[plen+xtra+1]; - memcpy(txt, pbase(), plen); - txt[plen] = (char)c; // append c - txt[plen+xtra] = '\0'; // append '\0' or overwrite c - // If the put area already contained \0, output will be truncated there - AppendText(txt); - delete[] txt; - } - - // Reset put area - setp(pbase(), epptr()); - -#if defined(__WATCOMC__) - return __NOT_EOF; -#elif defined(zapeof) // HP-UX (all cfront based?) - return zapeof(c); -#else - return c!=EOF ? c : 0; // this should make everybody happy -#endif - -/* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return EOF; -*/ -} - -//========================================================================= -// called then "endl" is output (gcc) or then explicit sync is done (Borland) -//========================================================================= -int wxTextCtrl::sync() -{ - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - if ( pptr() && pptr() > pbase() ) return overflow(EOF); - - return 0; -/* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -*/ -} - -//========================================================================= -// Should not be called by a "ostream". Used by a "istream" -//========================================================================= -int wxTextCtrl::underflow() -{ - return EOF; -} -#endif - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - wxString str; - str.Printf("%.2f", f); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - wxString str; - str.Printf("%.2f", d); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - wxString str; - str.Printf("%d", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - wxString str; - str.Printf("%ld", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} - -WXHBRUSH wxTextCtrl::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -#if wxUSE_CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - return (WXHBRUSH) hbrush; - } -#endif - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. - // NOT NOW - will be cleaned up at end of app. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -void wxTextCtrl::OnChar(wxKeyEvent& event) -{ - switch ( event.KeyCode() ) - { - case WXK_RETURN: - if ( !(m_windowStyle & wxTE_MULTILINE) ) - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, m_windowId); - event.SetEventObject( this ); - if ( GetEventHandler()->ProcessEvent(event) ) - return; - } - //else: multiline controls need Enter for themselves - - break; - - case WXK_TAB: - // only produce navigation event if we don't process TAB ourself or - // if it's a Shift-Tab keypress (we assume nobody will ever need - // this key combo for himself) - // - // NB: Notice that Ctrl-Tab is handled elsewhere and Alt-Tab is - // handled by Windows - if ( event.ShiftDown() || !(m_windowStyle & wxTE_PROCESS_TAB) ) - { - wxNavigationKeyEvent eventNav; - eventNav.SetDirection(!event.ShiftDown()); - eventNav.SetWindowChange(FALSE); - eventNav.SetEventObject(this); - - if ( GetEventHandler()->ProcessEvent(eventNav) ) - return; - } - break; - - default: - event.Skip(); - return; - } - - // don't just call event.Skip() because this will cause TABs and ENTERs - // be passed upwards and we don't always want this - instead process it - // right here - - // FIXME - event.Skip(); -} - -long wxTextCtrl::MSWGetDlgCode() -{ - // we always want the characters and the arrows - long lRc = DLGC_WANTCHARS | DLGC_WANTARROWS; - - // we may have several different cases: - // 1. normal case: both TAB and ENTER are used for dialog navigation - // 2. ctrl which wants TAB for itself: ENTER is used to pass to the next - // control in the dialog - // 3. ctrl which wants ENTER for itself: TAB is used for dialog navigation - // 4. ctrl which wants both TAB and ENTER: Ctrl-ENTER is used to pass to - // the next control - if ( m_windowStyle & wxTE_PROCESS_ENTER ) - lRc |= DLGC_WANTMESSAGE; - if ( m_windowStyle & wxTE_PROCESS_TAB ) - lRc |= DLGC_WANTTAB; - - return lRc; -} - -bool wxTextCtrl::MSWCommand(WXUINT param, WXWORD WXUNUSED(id)) -{ - switch (param) - { - case EN_SETFOCUS: - case EN_KILLFOCUS: - { - wxFocusEvent event(param == EN_KILLFOCUS ? wxEVT_KILL_FOCUS - : wxEVT_SET_FOCUS, - m_windowId); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); - } - break; - - case EN_CHANGE: - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, m_windowId); - wxString val(GetValue()); - if ( !val.IsNull() ) - event.m_commandString = WXSTRINGCAST val; - event.SetEventObject( this ); - ProcessCommand(event); - } - break; - - case EN_ERRSPACE: - // the text size limit has been hit - increase it - AdjustSpaceLimit(); - break; - - // the other notification messages are not processed - case EN_UPDATE: - case EN_MAXTEXT: - case EN_HSCROLL: - case EN_VSCROLL: - default: - return FALSE; - } - - // processed - return TRUE; -} - -void wxTextCtrl::AdjustSpaceLimit() -{ -#ifndef __WIN16__ - unsigned int len = ::GetWindowTextLength(GetHwnd()), - limit = ::SendMessage(GetHwnd(), EM_GETLIMITTEXT, 0, 0); - if ( len > limit ) - { - limit = len + 0x8000; // 32Kb - -#if wxUSE_RICHEDIT - if ( m_isRich || limit > 0xffff ) -#else - if ( limit > 0xffff ) -#endif - ::SendMessage(GetHwnd(), EM_LIMITTEXT, 0, limit); - else - ::SendMessage(GetHwnd(), EM_LIMITTEXT, limit, 0); - } -#endif -} - -// For Rich Edit controls. Do we need it? -#if 0 -#if wxUSE_RICHEDIT -bool wxTextCtrl::MSWOnNotify(WXWPARAM wParam, WXLPARAM lParam) -{ - wxCommandEvent event(0, m_windowId); - int eventType = 0; - NMHDR *hdr1 = (NMHDR *) lParam; - switch ( hdr1->code ) - { - // Insert case code here - default : - return wxControl::MSWOnNotify(wParam, lParam); - break; - } - - event.SetEventObject( this ); - event.SetEventType(eventType); - - if ( !GetEventHandler()->ProcessEvent(event) ) - return FALSE; - - return TRUE; -} -#endif -#endif - -void wxTextCtrl::OnCut(wxCommandEvent& event) -{ - Cut(); -} - -void wxTextCtrl::OnCopy(wxCommandEvent& event) -{ - Copy(); -} - -void wxTextCtrl::OnPaste(wxCommandEvent& event) -{ - Paste(); -} - -void wxTextCtrl::OnUndo(wxCommandEvent& event) -{ - Undo(); -} - -void wxTextCtrl::OnRedo(wxCommandEvent& event) -{ - Redo(); -} - -void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event) -{ - event.Enable( CanCut() ); -} - -void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event) -{ - event.Enable( CanCopy() ); -} - -void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event) -{ - event.Enable( CanPaste() ); -} - -void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event) -{ - event.Enable( CanUndo() ); -} - -void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event) -{ - event.Enable( CanRedo() ); -} - diff --git a/src/msw/thread.cpp b/src/msw/thread.cpp deleted file mode 100644 index 1b26944ae7..0000000000 --- a/src/msw/thread.cpp +++ /dev/null @@ -1,864 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: wxThread Implementation -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: Vadim Zeitlin to make it work :-) -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998), -// Vadim Zeitlin (1999) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "thread.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#if wxUSE_THREADS - -#include - -#include - -#include "wx/module.h" -#include "wx/thread.h" - -// the possible states of the thread ("=>" shows all possible transitions from -// this state) -enum wxThreadState -{ - STATE_NEW, // didn't start execution yet (=> RUNNING) - STATE_RUNNING, // thread is running (=> PAUSED, CANCELED) - STATE_PAUSED, // thread is temporarily suspended (=> RUNNING) - STATE_CANCELED, // thread should terminate a.s.a.p. (=> EXITED) - STATE_EXITED // thread is terminating -}; - -// ---------------------------------------------------------------------------- -// static variables -// ---------------------------------------------------------------------------- - -// TLS index of the slot where we store the pointer to the current thread -static DWORD s_tlsThisThread = 0xFFFFFFFF; - -// id of the main thread - the one which can call GUI functions without first -// calling wxMutexGuiEnter() -static DWORD s_idMainThread = 0; - -// if it's FALSE, some secondary thread is holding the GUI lock -static bool s_bGuiOwnedByMainThread = TRUE; - -// critical section which controls access to all GUI functions: any secondary -// thread (i.e. except the main one) must enter this crit section before doing -// any GUI calls -static wxCriticalSection *s_critsectGui = NULL; - -// critical section which protects s_nWaitingForGui variable -static wxCriticalSection *s_critsectWaitingForGui = NULL; - -// number of threads waiting for GUI in wxMutexGuiEnter() -static size_t s_nWaitingForGui = 0; - -// are we waiting for a thread termination? -static bool s_waitingForThread = FALSE; - -// ============================================================================ -// Windows implementation of thread classes -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxMutex implementation -// ---------------------------------------------------------------------------- -class wxMutexInternal -{ -public: - HANDLE p_mutex; -}; - -wxMutex::wxMutex() -{ - p_internal = new wxMutexInternal; - p_internal->p_mutex = CreateMutex(NULL, FALSE, NULL); - if ( !p_internal->p_mutex ) - { - wxLogSysError(_("Can not create mutex.")); - } - - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxLogDebug("Warning: freeing a locked mutex (%d locks).", m_locked); - CloseHandle(p_internal->p_mutex); -} - -wxMutexError wxMutex::Lock() -{ - DWORD ret; - - ret = WaitForSingleObject(p_internal->p_mutex, INFINITE); - switch ( ret ) - { - case WAIT_ABANDONED: - return wxMUTEX_BUSY; - - case WAIT_OBJECT_0: - // ok - break; - - case WAIT_FAILED: - wxLogSysError(_("Couldn't acquire a mutex lock")); - return wxMUTEX_MISC_ERROR; - - case WAIT_TIMEOUT: - default: - wxFAIL_MSG("impossible return value in wxMutex::Lock"); - } - - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - DWORD ret; - - ret = WaitForSingleObject(p_internal->p_mutex, 0); - if (ret == WAIT_TIMEOUT || ret == WAIT_ABANDONED) - return wxMUTEX_BUSY; - - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked > 0) - m_locked--; - - BOOL ret = ReleaseMutex(p_internal->p_mutex); - if ( ret == 0 ) - { - wxLogSysError(_("Couldn't release a mutex")); - return wxMUTEX_MISC_ERROR; - } - - return wxMUTEX_NO_ERROR; -} - -// ---------------------------------------------------------------------------- -// wxCondition implementation -// ---------------------------------------------------------------------------- - -class wxConditionInternal -{ -public: - HANDLE event; - int waiters; -}; - -wxCondition::wxCondition() -{ - p_internal = new wxConditionInternal; - p_internal->event = CreateEvent(NULL, FALSE, FALSE, NULL); - if ( !p_internal->event ) - { - wxLogSysError(_("Can not create event object.")); - } - - p_internal->waiters = 0; -} - -wxCondition::~wxCondition() -{ - CloseHandle(p_internal->event); -} - -void wxCondition::Wait(wxMutex& mutex) -{ - mutex.Unlock(); - p_internal->waiters++; - WaitForSingleObject(p_internal->event, INFINITE); - p_internal->waiters--; - mutex.Lock(); -} - -bool wxCondition::Wait(wxMutex& mutex, - unsigned long sec, - unsigned long nsec) -{ - DWORD ret; - - mutex.Unlock(); - p_internal->waiters++; - ret = WaitForSingleObject(p_internal->event, (sec*1000)+(nsec/1000000)); - p_internal->waiters--; - mutex.Lock(); - - return (ret != WAIT_TIMEOUT); -} - -void wxCondition::Signal() -{ - SetEvent(p_internal->event); -} - -void wxCondition::Broadcast() -{ - int i; - - for (i=0;iwaiters;i++) - { - if ( SetEvent(p_internal->event) == 0 ) - { - wxLogSysError(_("Couldn't change the state of event object.")); - } - } -} - -// ---------------------------------------------------------------------------- -// wxCriticalSection implementation -// ---------------------------------------------------------------------------- - -class wxCriticalSectionInternal -{ -public: - // init the critical section object - wxCriticalSectionInternal() - { ::InitializeCriticalSection(&m_data); } - - // implicit cast to the associated data - operator CRITICAL_SECTION *() { return &m_data; } - - // free the associated ressources - ~wxCriticalSectionInternal() - { ::DeleteCriticalSection(&m_data); } - -private: - CRITICAL_SECTION m_data; -}; - -wxCriticalSection::wxCriticalSection() -{ - m_critsect = new wxCriticalSectionInternal; -} - -wxCriticalSection::~wxCriticalSection() -{ - delete m_critsect; -} - -void wxCriticalSection::Enter() -{ - ::EnterCriticalSection(*m_critsect); -} - -void wxCriticalSection::Leave() -{ - ::LeaveCriticalSection(*m_critsect); -} - -// ---------------------------------------------------------------------------- -// wxThread implementation -// ---------------------------------------------------------------------------- - -// wxThreadInternal class -// ---------------------- - -class wxThreadInternal -{ -public: - wxThreadInternal() - { - m_hThread = 0; - m_state = STATE_NEW; - m_priority = WXTHREAD_DEFAULT_PRIORITY; - } - - // create a new (suspended) thread (for the given thread object) - bool Create(wxThread *thread); - - // suspend/resume/terminate - bool Suspend(); - bool Resume(); - void Cancel() { m_state = STATE_CANCELED; } - - // thread state - void SetState(wxThreadState state) { m_state = state; } - wxThreadState GetState() const { return m_state; } - - // thread priority - void SetPriority(unsigned int priority) { m_priority = priority; } - unsigned int GetPriority() const { return m_priority; } - - // thread handle and id - HANDLE GetHandle() const { return m_hThread; } - DWORD GetId() const { return m_tid; } - - // thread function - static DWORD WinThreadStart(wxThread *thread); - -private: - HANDLE m_hThread; // handle of the thread - wxThreadState m_state; // state, see wxThreadState enum - unsigned int m_priority; // thread priority in "wx" units - DWORD m_tid; // thread id -}; - -DWORD wxThreadInternal::WinThreadStart(wxThread *thread) -{ - // store the thread object in the TLS - if ( !::TlsSetValue(s_tlsThisThread, thread) ) - { - wxLogSysError(_("Can not start thread: error writing TLS.")); - - return (DWORD)-1; - } - - DWORD ret = (DWORD)thread->Entry(); - thread->p_internal->SetState(STATE_EXITED); - thread->OnExit(); - - delete thread; - - return ret; -} - -bool wxThreadInternal::Create(wxThread *thread) -{ - m_hThread = ::CreateThread - ( - NULL, // default security - 0, // default stack size - (LPTHREAD_START_ROUTINE) // thread entry point - wxThreadInternal::WinThreadStart, // - (LPVOID)thread, // parameter - CREATE_SUSPENDED, // flags - &m_tid // [out] thread id - ); - - if ( m_hThread == NULL ) - { - wxLogSysError(_("Can't create thread")); - - return FALSE; - } - - // translate wxWindows priority to the Windows one - int win_priority; - if (m_priority <= 20) - win_priority = THREAD_PRIORITY_LOWEST; - else if (m_priority <= 40) - win_priority = THREAD_PRIORITY_BELOW_NORMAL; - else if (m_priority <= 60) - win_priority = THREAD_PRIORITY_NORMAL; - else if (m_priority <= 80) - win_priority = THREAD_PRIORITY_ABOVE_NORMAL; - else if (m_priority <= 100) - win_priority = THREAD_PRIORITY_HIGHEST; - else - { - wxFAIL_MSG("invalid value of thread priority parameter"); - win_priority = THREAD_PRIORITY_NORMAL; - } - - if ( ::SetThreadPriority(m_hThread, win_priority) == 0 ) - { - wxLogSysError(_("Can't set thread priority")); - } - - return TRUE; -} - -bool wxThreadInternal::Suspend() -{ - DWORD nSuspendCount = ::SuspendThread(m_hThread); - if ( nSuspendCount == (DWORD)-1 ) - { - wxLogSysError(_("Can not suspend thread %x"), m_hThread); - - return FALSE; - } - - m_state = STATE_PAUSED; - - return TRUE; -} - -bool wxThreadInternal::Resume() -{ - DWORD nSuspendCount = ::ResumeThread(m_hThread); - if ( nSuspendCount == (DWORD)-1 ) - { - wxLogSysError(_("Can not resume thread %x"), m_hThread); - - return FALSE; - } - - m_state = STATE_RUNNING; - - return TRUE; -} - -// static functions -// ---------------- - -wxThread *wxThread::This() -{ - wxThread *thread = (wxThread *)::TlsGetValue(s_tlsThisThread); - - // be careful, 0 may be a valid return value as well - if ( !thread && (::GetLastError() != NO_ERROR) ) - { - wxLogSysError(_("Couldn't get the current thread pointer")); - - // return NULL... - } - - return thread; -} - -bool wxThread::IsMain() -{ - return ::GetCurrentThreadId() == s_idMainThread; -} - -#ifdef Yield - #undef Yield -#endif - -void wxThread::Yield() -{ - // 0 argument to Sleep() is special - ::Sleep(0); -} - -void wxThread::Sleep(unsigned long milliseconds) -{ - ::Sleep(milliseconds); -} - -// create/start thread -// ------------------- - -wxThreadError wxThread::Create() -{ - if ( !p_internal->Create(this) ) - return wxTHREAD_NO_RESOURCE; - - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Run() -{ - wxCriticalSectionLocker lock(m_critsect); - - if ( p_internal->GetState() != STATE_NEW ) - { - // actually, it may be almost any state at all, not only STATE_RUNNING - return wxTHREAD_RUNNING; - } - - return Resume(); -} - -// suspend/resume thread -// --------------------- - -wxThreadError wxThread::Pause() -{ - wxCriticalSectionLocker lock(m_critsect); - - return p_internal->Suspend() ? wxTHREAD_NO_ERROR : wxTHREAD_MISC_ERROR; -} - -wxThreadError wxThread::Resume() -{ - wxCriticalSectionLocker lock(m_critsect); - - return p_internal->Resume() ? wxTHREAD_NO_ERROR : wxTHREAD_MISC_ERROR; -} - -// stopping thread -// --------------- - -wxThread::ExitCode wxThread::Delete() -{ - ExitCode rc = 0; - - // Delete() is always safe to call, so consider all possible states - if ( IsPaused() ) - Resume(); - - if ( IsRunning() ) - { - if ( IsMain() ) - { - // set flag for wxIsWaitingForThread() - s_waitingForThread = TRUE; - - wxBeginBusyCursor(); - } - - HANDLE hThread; - { - wxCriticalSectionLocker lock(m_critsect); - - p_internal->Cancel(); - hThread = p_internal->GetHandle(); - } - - // we can't just wait for the thread to terminate because it might be - // calling some GUI functions and so it will never terminate before we - // process the Windows messages that result from these functions - DWORD result; - do - { - result = ::MsgWaitForMultipleObjects - ( - 1, // number of objects to wait for - &hThread, // the objects - FALSE, // don't wait for all objects - INFINITE, // no timeout - QS_ALLEVENTS // return as soon as there are any events - ); - - switch ( result ) - { - case 0xFFFFFFFF: - // error - wxLogSysError(_("Can not wait for thread termination")); - Kill(); - return (ExitCode)-1; - - case WAIT_OBJECT_0: - // thread we're waiting for terminated - break; - - case WAIT_OBJECT_0 + 1: - // new message arrived, process it - if ( !wxTheApp->DoMessage() ) - { - // WM_QUIT received: kill the thread - Kill(); - - return (ExitCode)-1; - } - - if ( IsMain() ) - { - // give the thread we're waiting for chance to exit - // from the GUI call it might have been in - if ( (s_nWaitingForGui > 0) && wxGuiOwnedByMainThread() ) - { - wxMutexGuiLeave(); - } - } - - break; - - default: - wxFAIL_MSG("unexpected result of MsgWaitForMultipleObject"); - } - } while ( result != WAIT_OBJECT_0 ); - - if ( IsMain() ) - { - s_waitingForThread = FALSE; - - wxEndBusyCursor(); - } - - if ( !::GetExitCodeThread(hThread, (LPDWORD)&rc) ) - { - wxLogLastError("GetExitCodeThread"); - - rc = (ExitCode)-1; - } - - wxASSERT_MSG( (LPVOID)rc != (LPVOID)STILL_ACTIVE, - "thread must be already terminated." ); - - ::CloseHandle(hThread); - } - - return rc; -} - -wxThreadError wxThread::Kill() -{ - if ( !IsRunning() ) - return wxTHREAD_NOT_RUNNING; - - if ( !::TerminateThread(p_internal->GetHandle(), (DWORD)-1) ) - { - wxLogSysError(_("Couldn't terminate thread")); - - return wxTHREAD_MISC_ERROR; - } - - delete this; - - return wxTHREAD_NO_ERROR; -} - -void wxThread::Exit(void *status) -{ - delete this; - - ::ExitThread((DWORD)status); - - wxFAIL_MSG("Couldn't return from ExitThread()!"); -} - -void wxThread::SetPriority(unsigned int prio) -{ - wxCriticalSectionLocker lock(m_critsect); - - p_internal->SetPriority(prio); -} - -unsigned int wxThread::GetPriority() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return p_internal->GetPriority(); -} - -unsigned long wxThread::GetID() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return (unsigned long)p_internal->GetId(); -} - -bool wxThread::IsRunning() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return p_internal->GetState() == STATE_RUNNING; -} - -bool wxThread::IsAlive() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return (p_internal->GetState() == STATE_RUNNING) || - (p_internal->GetState() == STATE_PAUSED); -} - -bool wxThread::IsPaused() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return (p_internal->GetState() == STATE_PAUSED); -} - -bool wxThread::TestDestroy() -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return p_internal->GetState() == STATE_CANCELED; -} - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); -} - -wxThread::~wxThread() -{ - delete p_internal; -} - -// ---------------------------------------------------------------------------- -// Automatic initialization for thread module -// ---------------------------------------------------------------------------- - -class wxThreadModule : public wxModule -{ -public: - virtual bool OnInit(); - virtual void OnExit(); - -private: - DECLARE_DYNAMIC_CLASS(wxThreadModule) -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -bool wxThreadModule::OnInit() -{ - // allocate TLS index for storing the pointer to the current thread - s_tlsThisThread = ::TlsAlloc(); - if ( s_tlsThisThread == 0xFFFFFFFF ) - { - // in normal circumstances it will only happen if all other - // TLS_MINIMUM_AVAILABLE (>= 64) indices are already taken - in other - // words, this should never happen - wxLogSysError(_("Thread module initialization failed: " - "impossible to allocate index in thread " - "local storage")); - - return FALSE; - } - - // main thread doesn't have associated wxThread object, so store 0 in the - // TLS instead - if ( !::TlsSetValue(s_tlsThisThread, (LPVOID)0) ) - { - ::TlsFree(s_tlsThisThread); - s_tlsThisThread = 0xFFFFFFFF; - - wxLogSysError(_("Thread module initialization failed: " - "can not store value in thread local storage")); - - return FALSE; - } - - s_critsectWaitingForGui = new wxCriticalSection(); - - s_critsectGui = new wxCriticalSection(); - s_critsectGui->Enter(); - - // no error return for GetCurrentThreadId() - s_idMainThread = ::GetCurrentThreadId(); - - return TRUE; -} - -void wxThreadModule::OnExit() -{ - if ( !::TlsFree(s_tlsThisThread) ) - { - wxLogLastError("TlsFree failed."); - } - - if ( s_critsectGui ) - { - s_critsectGui->Leave(); - delete s_critsectGui; - s_critsectGui = NULL; - } - - wxDELETE(s_critsectWaitingForGui); -} - -// ---------------------------------------------------------------------------- -// under Windows, these functions are implemented usign a critical section and -// not a mutex, so the names are a bit confusing -// ---------------------------------------------------------------------------- - -void WXDLLEXPORT wxMutexGuiEnter() -{ - // this would dead lock everything... - wxASSERT_MSG( !wxThread::IsMain(), - "main thread doesn't want to block in wxMutexGuiEnter()!" ); - - // the order in which we enter the critical sections here is crucial!! - - // set the flag telling to the main thread that we want to do some GUI - { - wxCriticalSectionLocker enter(*s_critsectWaitingForGui); - - s_nWaitingForGui++; - } - - wxWakeUpMainThread(); - - // now we may block here because the main thread will soon let us in - // (during the next iteration of OnIdle()) - s_critsectGui->Enter(); -} - -void WXDLLEXPORT wxMutexGuiLeave() -{ - wxCriticalSectionLocker enter(*s_critsectWaitingForGui); - - if ( wxThread::IsMain() ) - { - s_bGuiOwnedByMainThread = FALSE; - } - else - { - // decrement the number of waiters now - wxASSERT_MSG( s_nWaitingForGui > 0, - "calling wxMutexGuiLeave() without entering it first?" ); - - s_nWaitingForGui--; - - wxWakeUpMainThread(); - } - - s_critsectGui->Leave(); -} - -void WXDLLEXPORT wxMutexGuiLeaveOrEnter() -{ - wxASSERT_MSG( wxThread::IsMain(), - "only main thread may call wxMutexGuiLeaveOrEnter()!" ); - - wxCriticalSectionLocker enter(*s_critsectWaitingForGui); - - if ( s_nWaitingForGui == 0 ) - { - // no threads are waiting for GUI - so we may acquire the lock without - // any danger (but only if we don't already have it) - if ( !wxGuiOwnedByMainThread() ) - { - s_critsectGui->Enter(); - - s_bGuiOwnedByMainThread = TRUE; - } - //else: already have it, nothing to do - } - else - { - // some threads are waiting, release the GUI lock if we have it - if ( wxGuiOwnedByMainThread() ) - { - wxMutexGuiLeave(); - } - //else: some other worker thread is doing GUI - } -} - -bool WXDLLEXPORT wxGuiOwnedByMainThread() -{ - return s_bGuiOwnedByMainThread; -} - -// wake up the main thread if it's in ::GetMessage() -void WXDLLEXPORT wxWakeUpMainThread() -{ - // sending any message would do - hopefully WM_NULL is harmless enough - if ( !::PostThreadMessage(s_idMainThread, WM_NULL, 0, 0) ) - { - // should never happen - wxLogLastError("PostThreadMessage(WM_NULL)"); - } -} - -bool WXDLLEXPORT wxIsWaitingForThread() -{ - return s_waitingForThread; -} - -#endif // wxUSE_THREADS diff --git a/src/msw/timer.cpp b/src/msw/timer.cpp deleted file mode 100644 index 334fe2c99b..0000000000 --- a/src/msw/timer.cpp +++ /dev/null @@ -1,151 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: wxTimer implementation -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "timer.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef WX_PRECOMP - #include "wx/setup.h" - #include "wx/list.h" - #include "wx/event.h" - #include "wx/app.h" -#endif - -#include "wx/intl.h" -#include "wx/log.h" - -#include "wx/timer.h" - -#include -#include - -#if !defined(__SC__) && !defined(__GNUWIN32__) && !defined(__MWERKS__) - #include -#endif - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -wxList wxTimerList(wxKEY_INTEGER); -UINT WINAPI _EXPORT wxTimerProc(HWND hwnd, WORD, int idTimer, DWORD); - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#ifdef __WIN32__ - #define _EXPORT /**/ -#else - #define _EXPORT _export -#endif - -#if !USE_SHARED_LIBRARY - IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxTimer class -// ---------------------------------------------------------------------------- -wxTimer::wxTimer(void) -{ - milli = 0 ; - lastMilli = -1 ; - id = 0; -} - -wxTimer::~wxTimer(void) -{ - Stop(); - - wxTimerList.DeleteObject(this); -} - -bool wxTimer::Start(int milliseconds, bool mode) -{ - oneShot = mode ; - if (milliseconds < 0) - milliseconds = lastMilli; - - wxCHECK_MSG( milliseconds > 0, FALSE, "invalid value for timer timeour" ); - - lastMilli = milli = milliseconds; - - wxTimerList.DeleteObject(this); - TIMERPROC wxTimerProcInst = (TIMERPROC) - MakeProcInstance((FARPROC)wxTimerProc, wxGetInstance()); - - id = SetTimer(NULL, (UINT)(id ? id : 1), - (UINT)milliseconds, wxTimerProcInst); - if (id > 0) - { - wxTimerList.Append(id, this); - - return TRUE; - } - else - { - wxLogSysError(_("Couldn't create a timer")); - - return FALSE; - } -} - -void wxTimer::Stop(void) -{ - if (id) { - KillTimer(NULL, (UINT)id); - wxTimerList.DeleteObject(this); /* @@@@ */ - } - id = 0 ; - milli = 0 ; -} - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- -void wxProcessTimer(wxTimer& timer) -{ - // Avoid to process spurious timer events - if ( timer.id == 0) - return; - - if ( timer.oneShot ) - timer.Stop(); - - timer.Notify(); -} - -UINT WINAPI _EXPORT wxTimerProc(HWND WXUNUSED(hwnd), WORD, int idTimer, DWORD) -{ - wxNode *node = wxTimerList.Find((long)idTimer); - - wxCHECK_MSG( node, 0, "bogus timer id in wxTimerProc" ); - - wxProcessTimer(*(wxTimer *)node->Data()); - - return 0; -} diff --git a/src/msw/tooltip.cpp b/src/msw/tooltip.cpp deleted file mode 100644 index f17e964b68..0000000000 --- a/src/msw/tooltip.cpp +++ /dev/null @@ -1,280 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: msw/tooltip.cpp -// Purpose: wxToolTip class implementation for MSW -// Author: Vadim Zeitlin -// Modified by: -// Created: 31.01.99 -// RCS-ID: $Id$ -// Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include "wx/wx.h" -#endif - -#if wxUSE_TOOLTIPS - -#include "wx/tooltip.h" -#include "wx/msw/private.h" - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) -#include -#endif - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// a simple wrapper around TOOLINFO Win32 structure -class wxToolInfo : public TOOLINFO -{ -public: - wxToolInfo(wxWindow *win) - { - // initialize all members -#ifdef __GNUWIN32__ - memset(this, 0, sizeof(TOOLINFO)); -#else - ::ZeroMemory(this, sizeof(TOOLINFO)); -#endif - - cbSize = sizeof(TOOLINFO); - uFlags = TTF_IDISHWND; - uId = (UINT)win->GetHWND(); - } -}; - -// ---------------------------------------------------------------------------- -// private functions -// ---------------------------------------------------------------------------- - -// send a message to the tooltip control -inline LRESULT SendTooltipMessage(WXHWND hwnd, - UINT msg, - WPARAM wParam, - void *lParam) -{ - return hwnd ? ::SendMessage((HWND)hwnd, msg, wParam, (LPARAM)lParam) - : 0; -} - -// send a message to all existing tooltip controls -static void SendTooltipMessageToAll(UINT msg, WPARAM wParam, LPARAM lParam) -{ - // NB: it might be somewhat easier to maintain a list of all existing - // wxToolTip controls (put them there in ctor, delete from the list - // in dtor) - may be it's worth doing it this way? OTOH, typical - // application won't have many top level windows, so iterating over all - // of them shouldnt' take much time neither... - - // iterate over all top level windows and send message to the tooltip - // control of each and every of them (or more precisely to all dialogs and - // frames) - wxDialog *dialog = NULL; - wxFrame *frame = NULL; - - wxNode *node = wxTopLevelWindows.First(); - while ( node ) - { - wxWindow *win = (wxWindow *)node->Data(); - - node = node->Next(); - - if ( win->IsKindOf(CLASSINFO(wxFrame)) ) - { - frame = (wxFrame *)win; - dialog = NULL; - } - else if ( win->IsKindOf(CLASSINFO(wxDialog)) ) - { - dialog = (wxDialog *)win; - frame = NULL; - } - else - { - // skip this strange top level window - continue; - } - - wxASSERT_MSG( dialog || frame, "logic error" ); - - WXHWND hwndTT = frame ? frame->GetToolTipCtrl() - : dialog->GetToolTipCtrl(); - if ( hwndTT ) - { - (void)SendTooltipMessage(hwndTT, msg, wParam, (void *)lParam); - } - } -} - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// static functions -// ---------------------------------------------------------------------------- - -void wxToolTip::Enable(bool flag) -{ - SendTooltipMessageToAll(TTM_ACTIVATE, flag, 0); -} - -void wxToolTip::SetDelay(long milliseconds) -{ - SendTooltipMessageToAll(TTM_SETDELAYTIME, TTDT_INITIAL, milliseconds); -} - -// --------------------------------------------------------------------------- -// implementation helpers -// --------------------------------------------------------------------------- - -// create the tooltip ctrl for our parent frame if it doesn't exist yet -WXHWND wxToolTip::GetToolTipCtrl() -{ - // find either parent dialog or parent frame - tooltip controls are managed - // by these 2 classes only (it doesn't make sense to create one tooltip per - // each and every wxWindow) - wxFrame *frame = NULL; - wxDialog *dialog = NULL; - - wxWindow *parent = m_window; - while ( parent ) - { - if ( parent->IsKindOf(CLASSINFO(wxFrame)) ) - { - frame = (wxFrame *)parent; - - break; - } - else if ( parent->IsKindOf(CLASSINFO(wxDialog)) ) - { - dialog = (wxDialog *)parent; - - break; - } - - parent = parent->GetParent(); - } - - wxCHECK_MSG( frame || dialog, 0, - "can't create tooltip control outside a frame or a dialog" ); - - HWND hwndTT = (HWND)(frame ? frame->GetToolTipCtrl() - : dialog->GetToolTipCtrl()); - if ( !hwndTT ) - { - hwndTT = ::CreateWindow(TOOLTIPS_CLASS, - (LPSTR)NULL, - TTS_ALWAYSTIP, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - (HWND)parent->GetHWND(), (HMENU)NULL, - wxGetInstance(), NULL); - - if ( hwndTT ) - { - if ( frame ) - frame->SetToolTipCtrl((WXHWND)hwndTT); - else - dialog->SetToolTipCtrl((WXHWND)hwndTT); - } - else - { - wxLogSysError(_("Can not create tooltip control")); - } - } - - return (WXHWND)hwndTT; -} - -void wxToolTip::RelayEvent(WXMSG *msg) -{ - (void)SendTooltipMessage(GetToolTipCtrl(), TTM_RELAYEVENT, 0, msg); -} - -// ---------------------------------------------------------------------------- -// ctor & dtor -// ---------------------------------------------------------------------------- - -wxToolTip::wxToolTip(const wxString &tip) - : m_text(tip) -{ - m_window = NULL; -} - -wxToolTip::~wxToolTip() -{ - // there is no need to Remove() this tool - it will be done automatically - // anyhow -} - -// ---------------------------------------------------------------------------- -// others -// ---------------------------------------------------------------------------- - -void wxToolTip::Remove() -{ - // remove this tool from the tooltip control - if ( m_window ) - { - wxToolInfo ti(m_window); - (void)SendTooltipMessage(GetToolTipCtrl(), TTM_DELTOOL, 0, &ti); - } -} - -void wxToolTip::SetWindow(wxWindow *win) -{ - Remove(); - - m_window = win; - - if ( m_window ) - { - wxToolInfo ti(m_window); - - // as we store our text anyhow, it seems useless to waste system memory - // by asking the tooltip ctrl to remember it too - instead it will send - // us TTN_NEEDTEXT (via WM_NOTIFY) when it is about to be shown - ti.hwnd = (HWND)m_window->GetHWND(); - ti.lpszText = LPSTR_TEXTCALLBACK; - // instead of: ti.lpszText = (char *)m_text.c_str(); - - if ( !SendTooltipMessage(GetToolTipCtrl(), TTM_ADDTOOL, 0, &ti) ) - { - wxLogSysError(_("Failed to create the tooltip '%s'"), - m_text.c_str()); - } - } -} - -void wxToolTip::SetTip(const wxString& tip) -{ - m_text = tip; - - if ( m_window ) - { - // update it immediately - wxToolInfo ti(m_window); - ti.lpszText = (char *)m_text.c_str(); - - (void)SendTooltipMessage(GetToolTipCtrl(), TTM_UPDATETIPTEXT, 0, &ti); - } -} - -#endif // wxUSE_TOOLTIPS diff --git a/src/msw/treectrl.cpp b/src/msw/treectrl.cpp deleted file mode 100644 index e61d985c06..0000000000 --- a/src/msw/treectrl.cpp +++ /dev/null @@ -1,1085 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: wxTreeCtrl -// Author: Julian Smart -// Modified by: Vadim Zeitlin to be less MSW-specific on 10.10.98 -// Created: 1997 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ - #pragma implementation "treectrl.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#include "wx/window.h" -#include "wx/msw/private.h" - -#ifndef WX_PRECOMP - #include "wx/settings.h" -#endif - -// Mingw32 is a bit mental even though this is done in winundef -#ifdef GetFirstChild -#undef GetFirstChild -#endif -#ifdef GetNextSibling -#undef GetNextSibling -#endif - -#if defined(__WIN95__) - -#include "wx/log.h" -#include "wx/dynarray.h" -#include "wx/imaglist.h" -#include "wx/msw/treectrl.h" - -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif - -#if (defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__) - #include -#endif - -// Bug in headers, sometimes -#ifndef TVIS_FOCUSED - #define TVIS_FOCUSED 0x0001 -#endif - -// ---------------------------------------------------------------------------- -// private classes -// ---------------------------------------------------------------------------- - -// a convenient wrapper around TV_ITEM struct which adds a ctor -struct wxTreeViewItem : public TV_ITEM -{ - wxTreeViewItem(const wxTreeItemId& item, - UINT mask_, UINT stateMask_ = 0) - { - mask = mask_; - stateMask = stateMask_; - hItem = (HTREEITEM) (WXHTREEITEM) item; - } -}; - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) -#endif - -// hide the ugly cast (of course, the macro is _quite_ ugly too...) -#define wxhWnd ((HWND)m_hWnd) - -// ---------------------------------------------------------------------------- -// variables -// ---------------------------------------------------------------------------- - -// handy table for sending events -static const wxEventType g_events[2][2] = -{ - { wxEVT_COMMAND_TREE_ITEM_COLLAPSED, wxEVT_COMMAND_TREE_ITEM_COLLAPSING }, - { wxEVT_COMMAND_TREE_ITEM_EXPANDED, wxEVT_COMMAND_TREE_ITEM_EXPANDING } -}; - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// construction and destruction -// ---------------------------------------------------------------------------- - -void wxTreeCtrl::Init() -{ - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, - const wxString& name) -{ - Init(); - - wxSystemSettings settings; - - SetName(name); - SetValidator(validator); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - DWORD wstyle = WS_VISIBLE | WS_CHILD | WS_TABSTOP | TVS_HASLINES | TVS_SHOWSELALWAYS ; - - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D) ; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || wxStyleHasBorder(m_windowStyle) ) - { - wstyle |= WS_BORDER; - } - - if ( m_windowStyle & wxTR_HAS_BUTTONS ) - wstyle |= TVS_HASBUTTONS; - - if ( m_windowStyle & wxTR_EDIT_LABELS ) - wstyle |= TVS_EDITLABELS; - - if ( m_windowStyle & wxTR_LINES_AT_ROOT ) - wstyle |= TVS_LINESATROOT; - - // Create the tree control. - m_hWnd = (WXHWND)::CreateWindowEx - ( - exStyle, - WC_TREEVIEW, - "", - wstyle, - pos.x, pos.y, size.x, size.y, - (HWND)parent->GetHWND(), - (HMENU)m_windowId, - wxGetInstance(), - NULL - ); - - wxCHECK_MSG( m_hWnd, FALSE, "Failed to create tree ctrl" ); - - if ( parent ) - parent->AddChild(this); - - SubclassWin(m_hWnd); - - return TRUE; -} - -wxTreeCtrl::~wxTreeCtrl() -{ - DeleteTextCtrl(); - - // delete user data to prevent memory leaks - DeleteAllItems(); -} - -// ---------------------------------------------------------------------------- -// accessors -// ---------------------------------------------------------------------------- - -// simple wrappers which add error checking in debug mode - -bool wxTreeCtrl::DoGetItem(wxTreeViewItem* tvItem) const -{ - if ( !TreeView_GetItem(wxhWnd, tvItem) ) - { - wxLogLastError("TreeView_GetItem"); - - return FALSE; - } - - return TRUE; -} - -void wxTreeCtrl::DoSetItem(wxTreeViewItem* tvItem) -{ - if ( TreeView_SetItem(wxhWnd, tvItem) == -1 ) - { - wxLogLastError("TreeView_SetItem"); - } -} - -size_t wxTreeCtrl::GetCount() const -{ - return (size_t)TreeView_GetCount(wxhWnd); -} - -unsigned int wxTreeCtrl::GetIndent() const -{ - return TreeView_GetIndent(wxhWnd); -} - -void wxTreeCtrl::SetIndent(unsigned int indent) -{ - TreeView_SetIndent(wxhWnd, indent); -} - -wxImageList *wxTreeCtrl::GetImageList() const -{ - return m_imageListNormal; -} - -wxImageList *wxTreeCtrl::GetStateImageList() const -{ - return m_imageListNormal; -} - -void wxTreeCtrl::SetAnyImageList(wxImageList *imageList, int which) -{ - // no error return - TreeView_SetImageList(wxhWnd, - imageList ? imageList->GetHIMAGELIST() : 0, - which); -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList) -{ - SetAnyImageList(m_imageListNormal = imageList, TVSIL_NORMAL); -} - -void wxTreeCtrl::SetStateImageList(wxImageList *imageList) -{ - SetAnyImageList(m_imageListState = imageList, TVSIL_STATE); -} - -size_t wxTreeCtrl::GetChildrenCount(const wxTreeItemId& item, bool recursively) -{ - long cookie; - - size_t result = 0; - - wxArrayLong children; - wxTreeItemId child = GetFirstChild(item, cookie); - while ( child.IsOk() ) - { - if ( recursively ) - { - // recursive call - result += GetChildrenCount(child, TRUE); - } - - // add the child to the result in any case - result++; - - child = GetNextChild(item, cookie); - } - - return result; -} - -// ---------------------------------------------------------------------------- -// Item access -// ---------------------------------------------------------------------------- - -wxString wxTreeCtrl::GetItemText(const wxTreeItemId& item) const -{ - char buf[512]; // the size is arbitrary... - - wxTreeViewItem tvItem(item, TVIF_TEXT); - tvItem.pszText = buf; - tvItem.cchTextMax = WXSIZEOF(buf); - if ( !DoGetItem(&tvItem) ) - { - // don't return some garbage which was on stack, but an empty string - buf[0] = '\0'; - } - - return wxString(buf); -} - -void wxTreeCtrl::SetItemText(const wxTreeItemId& item, const wxString& text) -{ - wxTreeViewItem tvItem(item, TVIF_TEXT); - tvItem.pszText = (char *)text.c_str(); // conversion is ok - DoSetItem(&tvItem); -} - -int wxTreeCtrl::GetItemImage(const wxTreeItemId& item) const -{ - wxTreeViewItem tvItem(item, TVIF_IMAGE); - DoGetItem(&tvItem); - - return tvItem.iImage; -} - -void wxTreeCtrl::SetItemImage(const wxTreeItemId& item, int image) -{ - wxTreeViewItem tvItem(item, TVIF_IMAGE); - tvItem.iImage = image; - DoSetItem(&tvItem); -} - -int wxTreeCtrl::GetItemSelectedImage(const wxTreeItemId& item) const -{ - wxTreeViewItem tvItem(item, TVIF_SELECTEDIMAGE); - DoGetItem(&tvItem); - - return tvItem.iSelectedImage; -} - -void wxTreeCtrl::SetItemSelectedImage(const wxTreeItemId& item, int image) -{ - wxTreeViewItem tvItem(item, TVIF_SELECTEDIMAGE); - tvItem.iSelectedImage = image; - DoSetItem(&tvItem); -} - -wxTreeItemData *wxTreeCtrl::GetItemData(const wxTreeItemId& item) const -{ - wxTreeViewItem tvItem(item, TVIF_PARAM); - if ( !DoGetItem(&tvItem) ) - { - return NULL; - } - - return (wxTreeItemData *)tvItem.lParam; -} - -void wxTreeCtrl::SetItemData(const wxTreeItemId& item, wxTreeItemData *data) -{ - wxTreeViewItem tvItem(item, TVIF_PARAM); - tvItem.lParam = (LPARAM)data; - DoSetItem(&tvItem); -} - -void wxTreeCtrl::SetItemHasChildren(const wxTreeItemId& item, bool has) -{ - wxTreeViewItem tvItem(item, TVIF_CHILDREN); - tvItem.cChildren = (int)has; - DoSetItem(&tvItem); -} - -void wxTreeCtrl::SetItemBold(const wxTreeItemId& item, bool bold) -{ - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_BOLD); - tvItem.state = bold ? TVIS_BOLD : 0; - DoSetItem(&tvItem); -} - -void wxTreeCtrl::SetItemDropHighlight(const wxTreeItemId& item, bool highlight) -{ - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_DROPHILITED); - tvItem.state = highlight ? TVIS_DROPHILITED : 0; - DoSetItem(&tvItem); -} - -// ---------------------------------------------------------------------------- -// Item status -// ---------------------------------------------------------------------------- - -bool wxTreeCtrl::IsVisible(const wxTreeItemId& item) const -{ - // Bug in Gnu-Win32 headers, so don't use the macro TreeView_GetItemRect - RECT rect; - return SendMessage(wxhWnd, TVM_GETITEMRECT, FALSE, (LPARAM)&rect) != 0; - -} - -bool wxTreeCtrl::ItemHasChildren(const wxTreeItemId& item) const -{ - wxTreeViewItem tvItem(item, TVIF_CHILDREN); - DoGetItem(&tvItem); - - return tvItem.cChildren != 0; -} - -bool wxTreeCtrl::IsExpanded(const wxTreeItemId& item) const -{ - // probably not a good idea to put it here - //wxASSERT( ItemHasChildren(item) ); - - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_EXPANDED); - DoGetItem(&tvItem); - - return (tvItem.state & TVIS_EXPANDED) != 0; -} - -bool wxTreeCtrl::IsSelected(const wxTreeItemId& item) const -{ - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_SELECTED); - DoGetItem(&tvItem); - - return (tvItem.state & TVIS_SELECTED) != 0; -} - -bool wxTreeCtrl::IsBold(const wxTreeItemId& item) const -{ - wxTreeViewItem tvItem(item, TVIF_STATE, TVIS_BOLD); - DoGetItem(&tvItem); - - return (tvItem.state & TVIS_BOLD) != 0; -} - -// ---------------------------------------------------------------------------- -// navigation -// ---------------------------------------------------------------------------- - -wxTreeItemId wxTreeCtrl::GetRootItem() const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetRoot(wxhWnd)); -} - -wxTreeItemId wxTreeCtrl::GetSelection() const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetSelection(wxhWnd)); -} - -wxTreeItemId wxTreeCtrl::GetParent(const wxTreeItemId& item) const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetParent(wxhWnd, (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetFirstChild(const wxTreeItemId& item, - long& _cookie) const -{ - // remember the last child returned in 'cookie' - _cookie = (long)TreeView_GetChild(wxhWnd, (HTREEITEM) (WXHTREEITEM)item); - - return wxTreeItemId((WXHTREEITEM)_cookie); -} - -wxTreeItemId wxTreeCtrl::GetNextChild(const wxTreeItemId& WXUNUSED(item), - long& _cookie) const -{ - wxTreeItemId l = wxTreeItemId((WXHTREEITEM)TreeView_GetNextSibling(wxhWnd, - (HTREEITEM)(WXHTREEITEM)_cookie)); - _cookie = (long)l; - - return l; -} - -wxTreeItemId wxTreeCtrl::GetLastChild(const wxTreeItemId& item) const -{ - // can this be done more efficiently? - long cookie; - - wxTreeItemId childLast, - child = GetFirstChild(item, cookie); - while ( child.IsOk() ) - { - childLast = child; - child = GetNextChild(item, cookie); - } - - return childLast; -} - -wxTreeItemId wxTreeCtrl::GetNextSibling(const wxTreeItemId& item) const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetNextSibling(wxhWnd, (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetPrevSibling(const wxTreeItemId& item) const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetPrevSibling(wxhWnd, (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetFirstVisibleItem() const -{ - return wxTreeItemId((WXHTREEITEM) TreeView_GetFirstVisible(wxhWnd)); -} - -wxTreeItemId wxTreeCtrl::GetNextVisible(const wxTreeItemId& item) const -{ - wxASSERT_MSG( IsVisible(item), "The item you call GetNextVisible() " - "for must be visible itself!"); - - return wxTreeItemId((WXHTREEITEM) TreeView_GetNextVisible(wxhWnd, (HTREEITEM) (WXHTREEITEM) item)); -} - -wxTreeItemId wxTreeCtrl::GetPrevVisible(const wxTreeItemId& item) const -{ - wxASSERT_MSG( IsVisible(item), "The item you call GetPrevVisible() " - "for must be visible itself!"); - - return wxTreeItemId((WXHTREEITEM) TreeView_GetPrevVisible(wxhWnd, (HTREEITEM) (WXHTREEITEM) item)); -} - -// ---------------------------------------------------------------------------- -// Usual operations -// ---------------------------------------------------------------------------- - -wxTreeItemId wxTreeCtrl::DoInsertItem(const wxTreeItemId& parent, - wxTreeItemId hInsertAfter, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data) -{ - TV_INSERTSTRUCT tvIns; - tvIns.hParent = (HTREEITEM) (WXHTREEITEM)parent; - tvIns.hInsertAfter = (HTREEITEM) (WXHTREEITEM) hInsertAfter; - - // This is how we insert the item as the first child: supply a NULL hInsertAfter - if (tvIns.hInsertAfter == (HTREEITEM) 0) - { - tvIns.hInsertAfter = TVI_FIRST; - } - - UINT mask = 0; - if ( !text.IsEmpty() ) - { - mask |= TVIF_TEXT; - tvIns.item.pszText = (char *)text.c_str(); // cast is ok - } - - if ( image != -1 ) - { - mask |= TVIF_IMAGE; - tvIns.item.iImage = image; - - if ( selectedImage == -1 ) - { - // take the same image for selected icon if not specified - selectedImage = image; - } - } - - if ( selectedImage != -1 ) - { - mask |= TVIF_SELECTEDIMAGE; - tvIns.item.iSelectedImage = selectedImage; - } - - if ( data != NULL ) - { - mask |= TVIF_PARAM; - tvIns.item.lParam = (LPARAM)data; - } - - tvIns.item.mask = mask; - - HTREEITEM id = (HTREEITEM) TreeView_InsertItem(wxhWnd, &tvIns); - if ( id == 0 ) - { - wxLogLastError("TreeView_InsertItem"); - } - - if ( data != NULL ) - { - // associate the application tree item with Win32 tree item handle - data->SetId((WXHTREEITEM)id); - } - - return wxTreeItemId((WXHTREEITEM)id); -} - -// for compatibility only -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent, - const wxString& text, - int image, int selImage, - long insertAfter) -{ - return DoInsertItem(parent, (WXHTREEITEM)insertAfter, text, - image, selImage, NULL); -} - -wxTreeItemId wxTreeCtrl::AddRoot(const wxString& text, - int image, int selectedImage, - wxTreeItemData *data) -{ - return DoInsertItem(wxTreeItemId((WXHTREEITEM) 0), (WXHTREEITEM) 0, - text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data) -{ - return DoInsertItem(parent, (WXHTREEITEM) TVI_FIRST, - text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data) -{ - return DoInsertItem(parent, idPrevious, text, image, selectedImage, data); -} - -wxTreeItemId wxTreeCtrl::AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image, int selectedImage, - wxTreeItemData *data) -{ - return DoInsertItem(parent, (WXHTREEITEM) TVI_LAST, - text, image, selectedImage, data); -} - -void wxTreeCtrl::Delete(const wxTreeItemId& item) -{ - if ( !TreeView_DeleteItem(wxhWnd, (HTREEITEM)(WXHTREEITEM)item) ) - { - wxLogLastError("TreeView_DeleteItem"); - } -} - -// delete all children (but don't delete the item itself) -void wxTreeCtrl::DeleteChildren(const wxTreeItemId& item) -{ - long cookie; - - wxArrayLong children; - wxTreeItemId child = GetFirstChild(item, cookie); - while ( child.IsOk() ) - { - children.Add((long)(WXHTREEITEM)child); - - child = GetNextChild(item, cookie); - } - - size_t nCount = children.Count(); - for ( size_t n = 0; n < nCount; n++ ) - { - if ( !TreeView_DeleteItem(wxhWnd, (HTREEITEM)children[n]) ) - { - wxLogLastError("TreeView_DeleteItem"); - } - } -} - -void wxTreeCtrl::DeleteAllItems() -{ - if ( !TreeView_DeleteAllItems(wxhWnd) ) - { - wxLogLastError("TreeView_DeleteAllItems"); - } -} - -void wxTreeCtrl::DoExpand(const wxTreeItemId& item, int flag) -{ - wxASSERT_MSG( flag == TVE_COLLAPSE || - flag == (TVE_COLLAPSE | TVE_COLLAPSERESET) || - flag == TVE_EXPAND || - flag == TVE_TOGGLE, - "Unknown flag in wxTreeCtrl::DoExpand" ); - - // TreeView_Expand doesn't send TVN_ITEMEXPAND(ING) messages, so we must - // emulate them - if ( TreeView_Expand(wxhWnd, (HTREEITEM) (WXHTREEITEM) item, flag) != 0 ) - { - wxTreeEvent event(wxEVT_NULL, m_windowId); - event.m_item = item; - - bool isExpanded = IsExpanded(item); - - event.SetEventObject(this); - - // @@@ return values of {EXPAND|COLLAPS}ING event handler is discarded - event.SetEventType(g_events[isExpanded][TRUE]); - GetEventHandler()->ProcessEvent(event); - - event.SetEventType(g_events[isExpanded][FALSE]); - GetEventHandler()->ProcessEvent(event); - } - else - { - // I wonder if it really ever happens... - wxLogDebug("TreeView_Expand: change didn't took place."); - } -} - -void wxTreeCtrl::Expand(const wxTreeItemId& item) -{ - DoExpand(item, TVE_EXPAND); -} - -void wxTreeCtrl::Collapse(const wxTreeItemId& item) -{ - DoExpand(item, TVE_COLLAPSE); -} - -void wxTreeCtrl::CollapseAndReset(const wxTreeItemId& item) -{ - DoExpand(item, TVE_COLLAPSE | TVE_COLLAPSERESET); -} - -void wxTreeCtrl::Toggle(const wxTreeItemId& item) -{ - DoExpand(item, TVE_TOGGLE); -} - -void wxTreeCtrl::ExpandItem(const wxTreeItemId& item, int action) -{ - DoExpand(item, action); -} - -void wxTreeCtrl::Unselect() -{ - SelectItem(wxTreeItemId((WXHTREEITEM) 0)); -} - -void wxTreeCtrl::SelectItem(const wxTreeItemId& item) -{ - if ( !TreeView_SelectItem(wxhWnd, (HTREEITEM) (WXHTREEITEM) item) ) - { - wxLogLastError("TreeView_SelectItem"); - } -} - -void wxTreeCtrl::EnsureVisible(const wxTreeItemId& item) -{ - // no error return - TreeView_EnsureVisible(wxhWnd, (HTREEITEM) (WXHTREEITEM) item); -} - -void wxTreeCtrl::ScrollTo(const wxTreeItemId& item) -{ - if ( !TreeView_SelectSetFirstVisible(wxhWnd, (HTREEITEM) (WXHTREEITEM) item) ) - { - wxLogLastError("TreeView_SelectSetFirstVisible"); - } -} - -wxTextCtrl* wxTreeCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -void wxTreeCtrl::DeleteTextCtrl() -{ - if ( m_textCtrl ) - { - m_textCtrl->UnsubclassWin(); - m_textCtrl->SetHWND(0); - delete m_textCtrl; - m_textCtrl = NULL; - } -} - -wxTextCtrl* wxTreeCtrl::EditLabel(const wxTreeItemId& item, - wxClassInfo* textControlClass) -{ - wxASSERT( textControlClass->IsKindOf(CLASSINFO(wxTextCtrl)) ); - - HWND hWnd = (HWND) TreeView_EditLabel(wxhWnd, (HTREEITEM) (WXHTREEITEM) item); - - wxCHECK_MSG( hWnd, NULL, "Can't edit tree ctrl label" ); - - DeleteTextCtrl(); - - m_textCtrl = (wxTextCtrl *)textControlClass->CreateObject(); - m_textCtrl->SetHWND((WXHWND)hWnd); - m_textCtrl->SubclassWin((WXHWND)hWnd); - - return m_textCtrl; -} - -// End label editing, optionally cancelling the edit -void wxTreeCtrl::EndEditLabel(const wxTreeItemId& item, bool discardChanges) -{ - TreeView_EndEditLabelNow(wxhWnd, discardChanges); - - DeleteTextCtrl(); -} - -wxTreeItemId wxTreeCtrl::HitTest(const wxPoint& point, int& flags) -{ - TV_HITTESTINFO hitTestInfo; - hitTestInfo.pt.x = (int)point.x; - hitTestInfo.pt.y = (int)point.y; - - TreeView_HitTest(wxhWnd, &hitTestInfo); - - flags = 0; - - // avoid repetition - #define TRANSLATE_FLAG(flag) if ( hitTestInfo.flags & TVHT_##flag ) \ - flags |= wxTREE_HITTEST_##flag - - TRANSLATE_FLAG(ABOVE); - TRANSLATE_FLAG(BELOW); - TRANSLATE_FLAG(NOWHERE); - TRANSLATE_FLAG(ONITEMBUTTON); - TRANSLATE_FLAG(ONITEMICON); - TRANSLATE_FLAG(ONITEMINDENT); - TRANSLATE_FLAG(ONITEMLABEL); - TRANSLATE_FLAG(ONITEMRIGHT); - TRANSLATE_FLAG(ONITEMSTATEICON); - TRANSLATE_FLAG(TOLEFT); - TRANSLATE_FLAG(TORIGHT); - - #undef TRANSLATE_FLAG - - return wxTreeItemId((WXHTREEITEM) hitTestInfo.hItem); -} - -bool wxTreeCtrl::GetBoundingRect(const wxTreeItemId& item, - wxRect& rect, - bool textOnly) const -{ - RECT rc; - if ( TreeView_GetItemRect(wxhWnd, (HTREEITEM)(WXHTREEITEM)item, - &rc, textOnly) ) - { - rect = wxRect(wxPoint(rc.left, rc.top), wxPoint(rc.right, rc.bottom)); - - return TRUE; - } - else - { - // couldn't retrieve rect: for example, item isn't visible - return FALSE; - } -} - -// ---------------------------------------------------------------------------- -// sorting stuff -// ---------------------------------------------------------------------------- - -static int CALLBACK TreeView_CompareCallback(wxTreeItemData *pItem1, - wxTreeItemData *pItem2, - wxTreeCtrl *tree) -{ - wxCHECK_MSG( pItem1 && pItem2, 0, - _T("sorting tree without data doesn't make sense") ); - - return tree->OnCompareItems(pItem1->GetId(), pItem2->GetId()); -} - -int wxTreeCtrl::OnCompareItems(const wxTreeItemId& item1, - const wxTreeItemId& item2) -{ - return strcmp(GetItemText(item1), GetItemText(item2)); -} - -void wxTreeCtrl::SortChildren(const wxTreeItemId& item) -{ - // rely on the fact that TreeView_SortChildren does the same thing as our - // default behaviour, i.e. sorts items alphabetically and so call it - // directly if we're not in derived class (much more efficient!) - if ( GetClassInfo() == CLASSINFO(wxTreeCtrl) ) - { - TreeView_SortChildren(wxhWnd, (HTREEITEM)(WXHTREEITEM)item, 0); - } - else - { - TV_SORTCB tvSort; - tvSort.hParent = (HTREEITEM)(WXHTREEITEM)item; - tvSort.lpfnCompare = (PFNTVCOMPARE)TreeView_CompareCallback; - tvSort.lParam = (LPARAM)this; - TreeView_SortChildrenCB(wxhWnd, &tvSort, 0 /* reserved */); - } -} - -// ---------------------------------------------------------------------------- -// implementation -// ---------------------------------------------------------------------------- - -bool wxTreeCtrl::MSWCommand(WXUINT cmd, WXWORD id) -{ - if ( cmd == EN_UPDATE ) - { - wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, id); - event.SetEventObject( this ); - ProcessCommand(event); - } - else if ( cmd == EN_KILLFOCUS ) - { - wxCommandEvent event(wxEVT_KILL_FOCUS, id); - event.SetEventObject( this ); - ProcessCommand(event); - } - else - { - // nothing done - return FALSE; - } - - // command processed - return TRUE; -} - -// process WM_NOTIFY Windows message -bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) -{ - wxTreeEvent event(wxEVT_NULL, m_windowId); - wxEventType eventType = wxEVT_NULL; - NMHDR *hdr = (NMHDR *)lParam; - - switch ( hdr->code ) - { - case TVN_BEGINDRAG: - eventType = wxEVT_COMMAND_TREE_BEGIN_DRAG; - // fall through - - case TVN_BEGINRDRAG: - { - if ( eventType == wxEVT_NULL ) - eventType = wxEVT_COMMAND_TREE_BEGIN_RDRAG; - //else: left drag, already set above - - NM_TREEVIEW *tv = (NM_TREEVIEW *)lParam; - - event.m_item = (WXHTREEITEM) tv->itemNew.hItem; - event.m_pointDrag = wxPoint(tv->ptDrag.x, tv->ptDrag.y); - break; - } - - case TVN_BEGINLABELEDIT: - { - eventType = wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT; - TV_DISPINFO *info = (TV_DISPINFO *)lParam; - - event.m_item = (WXHTREEITEM) info->item.hItem; - break; - } - - case TVN_DELETEITEM: - { - eventType = wxEVT_COMMAND_TREE_DELETE_ITEM; - NM_TREEVIEW *tv = (NM_TREEVIEW *)lParam; - - event.m_item = (WXHTREEITEM) tv->itemOld.hItem; - break; - } - - case TVN_ENDLABELEDIT: - { - eventType = wxEVT_COMMAND_TREE_END_LABEL_EDIT; - TV_DISPINFO *info = (TV_DISPINFO *)lParam; - - event.m_item = (WXHTREEITEM) info->item.hItem; - break; - } - - case TVN_GETDISPINFO: - eventType = wxEVT_COMMAND_TREE_GET_INFO; - // fall through - - case TVN_SETDISPINFO: - { - if ( eventType == wxEVT_NULL ) - eventType = wxEVT_COMMAND_TREE_SET_INFO; - //else: get, already set above - - TV_DISPINFO *info = (TV_DISPINFO *)lParam; - - event.m_item = (WXHTREEITEM) info->item.hItem; - break; - } - - case TVN_ITEMEXPANDING: - event.m_code = FALSE; - // fall through - - case TVN_ITEMEXPANDED: - { - NM_TREEVIEW* tv = (NM_TREEVIEW*)lParam; - - bool expand = FALSE; - switch ( tv->action ) - { - case TVE_EXPAND: - expand = TRUE; - break; - - case TVE_COLLAPSE: - expand = FALSE; - break; - - default: - wxLogDebug("unexpected code %d in TVN_ITEMEXPAND " - "message", tv->action); - } - - bool ing = (hdr->code == TVN_ITEMEXPANDING); - eventType = g_events[expand][ing]; - - event.m_item = (WXHTREEITEM) tv->itemNew.hItem; - break; - } - - case TVN_KEYDOWN: - { - eventType = wxEVT_COMMAND_TREE_KEY_DOWN; - TV_KEYDOWN *info = (TV_KEYDOWN *)lParam; - - event.m_code = wxCharCodeMSWToWX(info->wVKey); - - // a separate event for this case - if ( info->wVKey == VK_SPACE || info->wVKey == VK_RETURN ) - { - wxTreeEvent event2(wxEVT_COMMAND_TREE_ITEM_ACTIVATED, - m_windowId); - event2.SetEventObject(this); - - GetEventHandler()->ProcessEvent(event2); - } - break; - } - - case TVN_SELCHANGED: - eventType = wxEVT_COMMAND_TREE_SEL_CHANGED; - // fall through - - case TVN_SELCHANGING: - { - if ( eventType == wxEVT_NULL ) - eventType = wxEVT_COMMAND_TREE_SEL_CHANGING; - //else: already set above - - NM_TREEVIEW* tv = (NM_TREEVIEW *)lParam; - - event.m_item = (WXHTREEITEM) tv->itemNew.hItem; - event.m_itemOld = (WXHTREEITEM) tv->itemOld.hItem; - break; - } - - default: - return wxControl::MSWOnNotify(idCtrl, lParam, result); - } - - event.SetEventObject(this); - event.SetEventType(eventType); - - bool processed = GetEventHandler()->ProcessEvent(event); - - // post processing - if ( hdr->code == TVN_DELETEITEM ) - { - // NB: we might process this message using wxWindows event tables, but - // due to overhead of wxWin event system we prefer to do it here - // (otherwise deleting a tree with many items is just too slow) - NM_TREEVIEW* tv = (NM_TREEVIEW *)lParam; - wxTreeItemData *data = (wxTreeItemData *)tv->itemOld.lParam; - delete data; // may be NULL, ok - processed = TRUE; // Make sure we don't get called twice - } - - *result = !event.IsAllowed(); - - return processed; -} - -// ---------------------------------------------------------------------------- -// Tree event -// ---------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxNotifyEvent) - -wxTreeEvent::wxTreeEvent(wxEventType commandType, int id) - : wxNotifyEvent(commandType, id) -{ - m_code = 0; - m_itemOld = 0; -} - -#endif // __WIN95__ - diff --git a/src/msw/utils.cpp b/src/msw/utils.cpp deleted file mode 100644 index c9c1d5b68a..0000000000 --- a/src/msw/utils.cpp +++ /dev/null @@ -1,1222 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: Various utilities -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation "utils.h" // Note: this is done in utilscmn.cpp now. -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/cursor.h" -#endif //WX_PRECOMP - -#include "wx/msw/private.h" -#include "wx/timer.h" -#include "wx/intl.h" - -#include - -#include - -#if !defined(__GNUWIN32__) && !defined(__WXWINE__) && !defined(__SALFORDC__) -#include - -#ifndef __MWERKS__ -#include -#endif -#endif //GNUWIN32 - -#if defined(__GNUWIN32__) && !defined(__TWIN32__) -#include -#include -#endif //GNUWIN32 - -#include "wx/log.h" - -#ifdef __BORLANDC__ // Please someone tell me which version of Borland needs - // this (3.1 I believe) and how to test for it. - // If this works for Borland 4.0 as well, then no worries. -#include -#endif - -#if defined(__WIN32__) && !defined(__WXWINE__) -#include - -#ifndef __GNUWIN32__ -#include -#endif -#endif - -#include -#include -#include -#ifndef __WATCOMC__ - #if !(defined(_MSC_VER) && (_MSC_VER > 800)) - #include - #endif -#endif -#include - -//// BEGIN for console support: VC++ only -#ifdef __VISUALC__ - -#include "wx/msw/msvcrt.h" - -#include - -#include "wx/ioswrap.h" - -#if wxUSE_IOSTREAMH -// N.B. BC++ doesn't have istream.h, ostream.h -# include -# include -#else -# include -#endif - -/* Need to undef new if including crtdbg.h */ -# ifdef new -# undef new -# endif - -#ifndef __WIN16__ -# include -#endif - -# if defined(__WXDEBUG__) && wxUSE_GLOBAL_MEMORY_OPERATORS && wxUSE_DEBUG_NEW_ALWAYS -# define new new(__FILE__,__LINE__) -# endif - -#endif - // __VISUALC__ -/// END for console support - -// In the WIN.INI file -static const char WX_SECTION[] = "wxWindows"; -static const char eHOSTNAME[] = "HostName"; -static const char eUSERID[] = "UserId"; -static const char eUSERNAME[] = "UserName"; - -// For the following functions we SHOULD fill in support -// for Windows-NT (which I don't know) as I assume it begin -// a POSIX Unix (so claims MS) that it has some special -// functions beyond those provided by WinSock - -// Get full hostname (eg. DoDo.BSn-Germany.crg.de) -bool wxGetHostName(char *buf, int maxSize) -{ -#if defined(__WIN32__) && !defined(__TWIN32__) - DWORD nSize = maxSize; - return (::GetComputerName(buf, &nSize) != 0); -#else - char *sysname; - const char *default_host = "noname"; - - if ((sysname = getenv("SYSTEM_NAME")) == NULL) { - GetProfileString(WX_SECTION, eHOSTNAME, default_host, buf, maxSize - 1); - } else - strncpy(buf, sysname, maxSize - 1); - buf[maxSize] = '\0'; - return *buf ? TRUE : FALSE; -#endif -} - -// Get user ID e.g. jacs -bool wxGetUserId(char *buf, int maxSize) -{ -#if defined(__WIN32__) && !defined(__win32s__) && !defined(__TWIN32__) - - // VZ: why should it be so complicated?? -#if 0 - // Gets the current user's full name according to the MS article PSS ID - // Number: Q119670 - // Seems to be the same as the login name for me? - char *UserName = new char[256]; - char *Domain = new char[256]; - DWORD maxCharacters = 255; - GetUserName( UserName, &maxCharacters ); - GetComputerName( Domain, &maxCharacters ); - - WCHAR wszUserName[256]; // Unicode user name - WCHAR wszDomain[256]; - LPBYTE ComputerName; - - struct _SERVER_INFO_100 *si100; // Server structure - struct _USER_INFO_2 *ui; // User structure - - // Convert ASCII user name and domain to Unicode. - - MultiByteToWideChar( CP_ACP, 0, UserName, - strlen(UserName)+1, wszUserName, sizeof(wszUserName) ); - MultiByteToWideChar( CP_ACP, 0, Domain, - strlen(Domain)+1, wszDomain, sizeof(wszDomain) ); - - // Get the computer name of a DC for the specified domain. - // >If you get a link error on this, include netapi32.lib< - - NetGetDCName( NULL, wszDomain, &ComputerName ); - - // Look up the user on the DC. - - if(NetUserGetInfo( (LPWSTR) ComputerName, - (LPWSTR) &wszUserName, 2, (LPBYTE *) &ui)) - { - printf( "Error getting user information.\n" ); - return( FALSE ); - } - - // Convert the Unicode full name to ASCII. - - WideCharToMultiByte( CP_ACP, 0, ui->usri2_full_name, - -1, buf, 256, NULL, NULL ); - } - return( TRUE ); -#else // 1 - DWORD nSize = maxSize; - if ( ::GetUserName(buf, &nSize) == 0 ) - { - wxLogSysError("Can not get user name"); - - return FALSE; - } - - return TRUE; -#endif // 0/1 - -#else // Win16 or Win32s - char *user; - const char *default_id = "anonymous"; - - // Can't assume we have NIS (PC-NFS) or some other ID daemon - // So we ... - if ( (user = getenv("USER")) == NULL && - (user = getenv("LOGNAME")) == NULL ) { - // Use wxWindows configuration data (comming soon) - GetProfileString(WX_SECTION, eUSERID, default_id, buf, maxSize - 1); - } else - strncpy(buf, user, maxSize - 1); - return *buf ? TRUE : FALSE; -#endif -} - -// Get user name e.g. Julian Smart -bool wxGetUserName(char *buf, int maxSize) -{ -#if wxUSE_PENWINDOWS && !defined(__WATCOMC__) && !defined(__GNUWIN32__) - extern HANDLE g_hPenWin; // PenWindows Running? - if (g_hPenWin) - { - // PenWindows Does have a user concept! - // Get the current owner of the recognizer - GetPrivateProfileString("Current", "User", default_name, wxBuffer, maxSize - 1, "PENWIN.INI"); - strncpy(buf, wxBuffer, maxSize - 1); - } - else -#endif - { - // Could use NIS, MS-Mail or other site specific programs - // Use wxWindows configuration data - bool ok = GetProfileString(WX_SECTION, eUSERNAME, "", buf, maxSize - 1) != 0; - if ( !ok ) - { - ok = wxGetUserId(buf, maxSize); - } - - if ( !ok ) - { - strncpy(buf, "Unknown User", maxSize); - } - } - - return TRUE; -} - -int wxKill(long pid, int sig) -{ - return 0; -} - -// -// Execute a program in an Interactive Shell -// -bool -wxShell(const wxString& command) -{ - char *shell; - if ((shell = getenv("COMSPEC")) == NULL) - shell = "\\COMMAND.COM"; - - char tmp[255]; - if (command != "") - sprintf(tmp, "%s /c %s", shell, WXSTRINGCAST command); - else - strcpy(tmp, shell); - - return (wxExecute((char *)tmp, FALSE) != 0); -} - -// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) -long wxGetFreeMemory() -{ -#if defined(__WIN32__) && !defined(__BORLANDC__) && !defined(__TWIN32__) - MEMORYSTATUS memStatus; - memStatus.dwLength = sizeof(MEMORYSTATUS); - GlobalMemoryStatus(&memStatus); - return memStatus.dwAvailPhys; -#else - return (long)GetFreeSpace(0); -#endif -} - -// Sleep for nSecs seconds. Attempt a Windows implementation using timers. -static bool inTimer = FALSE; -class wxSleepTimer: public wxTimer -{ - public: - inline void Notify() - { - inTimer = FALSE; - Stop(); - } -}; - -static wxTimer *wxTheSleepTimer = NULL; - -void wxUsleep(unsigned long milliseconds) -{ -#ifdef __WIN32__ - ::Sleep(milliseconds); -#else - if (inTimer) - return; - - wxTheSleepTimer = new wxSleepTimer; - inTimer = TRUE; - wxTheSleepTimer->Start(milliseconds); - while (inTimer) - { - if (wxTheApp->Pending()) - wxTheApp->Dispatch(); - } - delete wxTheSleepTimer; - wxTheSleepTimer = NULL; -#endif -} - -void wxSleep(int nSecs) -{ -#if 0 // WIN32 hangs app - Sleep( 1000*nSecs ); -#else - if (inTimer) - return; - - wxTheSleepTimer = new wxSleepTimer; - inTimer = TRUE; - wxTheSleepTimer->Start(nSecs*1000); - while (inTimer) - { - if (wxTheApp->Pending()) - wxTheApp->Dispatch(); - } - delete wxTheSleepTimer; - wxTheSleepTimer = NULL; -#endif -} - -// Consume all events until no more left -void wxFlushEvents() -{ -// wxYield(); -} - -// Output a debug mess., in a system dependent fashion. -void wxDebugMsg(const char *fmt ...) -{ - va_list ap; - static char buffer[512]; - - if (!wxTheApp->GetWantDebugOutput()) - return ; - - va_start(ap, fmt); - - wvsprintf(buffer,fmt,ap) ; - OutputDebugString((LPCSTR)buffer) ; - - va_end(ap); -} - -// Non-fatal error: pop up message box and (possibly) continue -void wxError(const wxString& msg, const wxString& title) -{ - sprintf(wxBuffer, "%s\nContinue?", WXSTRINGCAST msg); - if (MessageBox(NULL, (LPCSTR)wxBuffer, (LPCSTR)WXSTRINGCAST title, - MB_ICONSTOP | MB_YESNO) == IDNO) - wxExit(); -} - -// Fatal error: pop up message box and abort -void wxFatalError(const wxString& msg, const wxString& title) -{ - sprintf(wxBuffer, "%s: %s", WXSTRINGCAST title, WXSTRINGCAST msg); - FatalAppExit(0, (LPCSTR)wxBuffer); -} - -// Emit a beeeeeep -void wxBell() -{ - // Removed by RD because IHMO syncronous sound is a Bad Thing. MessageBeep - // will do a similar thing anyway if there is no sound card... -//#ifdef __WIN32__ -// Beep(1000,1000) ; // 1kHz during 1 sec. -//#else - MessageBeep((UINT)-1) ; -//#endif -} - -// Chris Breeze 27/5/98: revised WIN32 code to -// detect WindowsNT correctly -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - extern char *wxOsVersion; - if (majorVsn) *majorVsn = 0; - if (minorVsn) *minorVsn = 0; - -#if defined(__WIN32__) && !defined(__SC__) - OSVERSIONINFO info; - memset(&info, 0, sizeof(OSVERSIONINFO)); - info.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - if (GetVersionEx(&info)) - { - if (majorVsn) *majorVsn = info.dwMajorVersion; - if (minorVsn) *minorVsn = info.dwMinorVersion; - switch (info.dwPlatformId) - { - case VER_PLATFORM_WIN32s: - return wxWIN32S; - break; - case VER_PLATFORM_WIN32_WINDOWS: - return wxWIN95; - break; - case VER_PLATFORM_WIN32_NT: - return wxWINDOWS_NT; - break; - } - } - return wxWINDOWS; // error if we get here, return generic value -#else - // Win16 code... - int retValue = 0; -# ifdef __WINDOWS_386__ - retValue = wxWIN386; -# else -# if !defined(__WATCOMC__) && !defined(GNUWIN32) && wxUSE_PENWINDOWS - extern HANDLE g_hPenWin; - retValue = g_hPenWin ? wxPENWINDOWS : wxWINDOWS ; -# endif -# endif - // @@@@ To be completed. I don't have the manual here... - if (majorVsn) *majorVsn = 3 ; - if (minorVsn) *minorVsn = 1 ; - return retValue ; -#endif -} - -// Reading and writing resources (eg WIN.INI, .Xdefaults) -#if wxUSE_RESOURCES -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file) -{ - if (file != "") - return (WritePrivateProfileString((LPCSTR)WXSTRINGCAST section, (LPCSTR)WXSTRINGCAST entry, (LPCSTR)value, (LPCSTR)WXSTRINGCAST file) != 0); - else - return (WriteProfileString((LPCSTR)WXSTRINGCAST section, (LPCSTR)WXSTRINGCAST entry, (LPCSTR)WXSTRINGCAST value) != 0); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) -{ - static const char defunkt[] = "$$default"; - if (file != "") - { - int n = GetPrivateProfileString((LPCSTR)WXSTRINGCAST section, (LPCSTR)WXSTRINGCAST entry, (LPCSTR)defunkt, - (LPSTR)wxBuffer, 1000, (LPCSTR)WXSTRINGCAST file); - if (n == 0 || strcmp(wxBuffer, defunkt) == 0) - return FALSE; - } - else - { - int n = GetProfileString((LPCSTR)WXSTRINGCAST section, (LPCSTR)WXSTRINGCAST entry, (LPCSTR)defunkt, - (LPSTR)wxBuffer, 1000); - if (n == 0 || strcmp(wxBuffer, defunkt) == 0) - return FALSE; - } - if (*value) delete[] (*value); - *value = copystring(wxBuffer); - return TRUE; - } - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (float)strtod(s, NULL); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (int)strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} -#endif // wxUSE_RESOURCES - -// --------------------------------------------------------------------------- -// helper functions for showing a "busy" cursor -// --------------------------------------------------------------------------- - -HCURSOR gs_wxBusyCursor = 0; // new, busy cursor -HCURSOR gs_wxBusyCursorOld = 0; // old cursor -static int gs_wxBusyCursorCount = 0; - -// Set the cursor to the busy cursor for all windows -void wxBeginBusyCursor(wxCursor *cursor) -{ - if ( gs_wxBusyCursorCount++ == 0 ) - { - gs_wxBusyCursor = (HCURSOR)cursor->GetHCURSOR(); - gs_wxBusyCursorOld = ::SetCursor(gs_wxBusyCursor); - } - //else: nothing to do, already set -} - -// Restore cursor to normal -void wxEndBusyCursor() -{ - wxCHECK_RET( gs_wxBusyCursorCount > 0, - "no matching wxBeginBusyCursor() for wxEndBusyCursor()" ); - - if ( --gs_wxBusyCursorCount == 0 ) - { - ::SetCursor(gs_wxBusyCursorOld); - - gs_wxBusyCursorOld = 0; - } -} - -// TRUE if we're between the above two calls -bool wxIsBusy() -{ - return (gs_wxBusyCursorCount > 0); -} - -// --------------------------------------------------------------------------- -const char* wxGetHomeDir(wxString *pstr) -{ - wxString& strDir = *pstr; - - #if defined(__UNIX__) && !defined(__TWIN32__) - const char *szHome = getenv("HOME"); - if ( szHome == NULL ) { - // we're homeless... - wxLogWarning(_("can't find user's HOME, using current directory.")); - strDir = "."; - } - else - strDir = szHome; - - // add a trailing slash if needed - if ( strDir.Last() != '/' ) - strDir << '/'; - #else // Windows - #ifdef __WIN32__ - const char *szHome = getenv("HOMEDRIVE"); - if ( szHome != NULL ) - strDir << szHome; - szHome = getenv("HOMEPATH"); - if ( szHome != NULL ) { - strDir << szHome; - - // the idea is that under NT these variables have default values - // of "%systemdrive%:" and "\\". As we don't want to create our - // config files in the root directory of the system drive, we will - // create it in our program's dir. However, if the user took care - // to set HOMEPATH to something other than "\\", we suppose that he - // knows what he is doing and use the supplied value. - if ( strcmp(szHome, "\\") != 0 ) - return strDir.c_str(); - } - - #else // Win16 - // Win16 has no idea about home, so use the working directory instead - #endif // WIN16/32 - - // 260 was taken from windef.h - #ifndef MAX_PATH - #define MAX_PATH 260 - #endif - - wxString strPath; - ::GetModuleFileName(::GetModuleHandle(NULL), - strPath.GetWriteBuf(MAX_PATH), MAX_PATH); - strPath.UngetWriteBuf(); - - // extract the dir name - wxSplitPath(strPath, &strDir, NULL, NULL); - - #endif // UNIX/Win - - return strDir.c_str(); -} - -// Hack for MS-DOS -char *wxGetUserHome (const wxString& user) -{ - char *home; - wxString user1(user); - - if (user1 != "") { - char tmp[64]; - if (wxGetUserId(tmp, sizeof(tmp)/sizeof(char))) { - // Guests belong in the temp dir - if (Stricmp(tmp, "annonymous") == 0) { - if ((home = getenv("TMP")) != NULL || - (home = getenv("TMPDIR")) != NULL || - (home = getenv("TEMP")) != NULL) - return *home ? home : (char*)"\\"; - } - if (Stricmp(tmp, WXSTRINGCAST user1) == 0) - user1 = ""; - } - } - if (user1 == "") - if ((home = getenv("HOME")) != NULL) - { - strcpy(wxBuffer, home); - Unix2DosFilename(wxBuffer); - return wxBuffer; - } - return NULL; // No home known! -} - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -bool wxCheckForInterrupt(wxWindow *wnd) -{ - if(wnd){ - MSG msg; - HWND win= (HWND) wnd->GetHWND(); - while(PeekMessage(&msg,win,0,0,PM_REMOVE)){ - TranslateMessage(&msg); - DispatchMessage(&msg); - } - return TRUE;//*** temporary? - } - else{ - wxFAIL_MSG("wnd==NULL !!!"); - - return FALSE;//*** temporary? - } -} - -// MSW only: get user-defined resource from the .res file. -// Returns NULL or newly-allocated memory, so use delete[] to clean up. - -#ifdef __WXMSW__ -char *wxLoadUserResource(const wxString& resourceName, const wxString& resourceType) -{ - char *s = NULL; -#if !defined(__WIN32__) || defined(__TWIN32__) - HRSRC hResource = ::FindResource(wxGetInstance(), WXSTRINGCAST resourceName, WXSTRINGCAST resourceType); -#else -#ifdef UNICODE - HRSRC hResource = ::FindResourceW(wxGetInstance(), WXSTRINGCAST resourceName, WXSTRINGCAST resourceType); -#else - HRSRC hResource = ::FindResourceA(wxGetInstance(), WXSTRINGCAST resourceName, WXSTRINGCAST resourceType); -#endif -#endif - - if (hResource == 0) - return NULL; - HGLOBAL hData = ::LoadResource(wxGetInstance(), hResource); - if (hData == 0) - return NULL; - char *theText = (char *)LockResource(hData); - if (!theText) - return NULL; - - s = copystring(theText); - - // Obsolete in WIN32 -#ifndef __WIN32__ - UnlockResource(hData); -#endif - - // No need?? -// GlobalFree(hData); - - return s; -} -#endif - -void wxGetMousePosition( int* x, int* y ) -{ - POINT pt; - GetCursorPos( & pt ); - *x = pt.x; - *y = pt.y; -}; - -// Return TRUE if we have a colour display -bool wxColourDisplay() -{ - HDC dc = ::GetDC((HWND) NULL); - bool flag; - int noCols = GetDeviceCaps(dc, NUMCOLORS); - if ((noCols == -1) || (noCols > 2)) - flag = TRUE; - else - flag = FALSE; - ReleaseDC((HWND) NULL, dc); - return flag; -} - -// Returns depth of screen -int wxDisplayDepth() -{ - HDC dc = ::GetDC((HWND) NULL); - int planes = GetDeviceCaps(dc, PLANES); - int bitsPerPixel = GetDeviceCaps(dc, BITSPIXEL); - int depth = planes*bitsPerPixel; - ReleaseDC((HWND) NULL, dc); - return depth; -} - -// Get size of display -void wxDisplaySize(int *width, int *height) -{ - HDC dc = ::GetDC((HWND) NULL); - *width = GetDeviceCaps(dc, HORZRES); *height = GetDeviceCaps(dc, VERTRES); - ReleaseDC((HWND) NULL, dc); -} - -bool wxDirExists(const wxString& dir) -{ - /* MATTHEW: [6] Always use same code for Win32, call FindClose */ -#if defined(__WIN32__) - WIN32_FIND_DATA fileInfo; -#else -#ifdef __BORLANDC__ - struct ffblk fileInfo; -#else - struct find_t fileInfo; -#endif -#endif - -#if defined(__WIN32__) - HANDLE h = FindFirstFile((LPTSTR) WXSTRINGCAST dir,(LPWIN32_FIND_DATA)&fileInfo); - - if (h==INVALID_HANDLE_VALUE) - return FALSE; - else { - FindClose(h); - return ((fileInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY); - } -#else - // In Borland findfirst has a different argument - // ordering from _dos_findfirst. But _dos_findfirst - // _should_ be ok in both MS and Borland... why not? -#ifdef __BORLANDC__ - return ((findfirst(WXSTRINGCAST dir, &fileInfo, _A_SUBDIR) == 0 && (fileInfo.ff_attrib & _A_SUBDIR) != 0)); -#else - return (((_dos_findfirst(WXSTRINGCAST dir, _A_SUBDIR, &fileInfo) == 0) && (fileInfo.attrib & _A_SUBDIR)) != 0); -#endif -#endif -} - -// --------------------------------------------------------------------------- -// window information functions -// --------------------------------------------------------------------------- - -wxString WXDLLEXPORT wxGetWindowText(WXHWND hWnd) -{ - wxString str; - int len = GetWindowTextLength((HWND)hWnd) + 1; - GetWindowText((HWND)hWnd, str.GetWriteBuf(len), len); - str.UngetWriteBuf(); - - return str; -} - -wxString WXDLLEXPORT wxGetWindowClass(WXHWND hWnd) -{ - wxString str; - - int len = 256; // some starting value - - for ( ;; ) - { - // as we've #undefined GetClassName we must now manually choose the - // right function to call - int count = - - #ifndef __WIN32__ - GetClassName - #else // Win32 - #ifdef UNICODE - GetClassNameW - #else // !Unicode - #ifdef __TWIN32__ - GetClassName - #else // !Twin32 - GetClassNameA - #endif // Twin32/!Twin32 - #endif // Unicode/ANSI - #endif // Win16/32 - ((HWND)hWnd, str.GetWriteBuf(len), len); - - str.UngetWriteBuf(); - if ( count == len ) - { - // the class name might have been truncated, retry with larger - // buffer - len *= 2; - } - else - { - break; - } - } - - return str; -} - -WXWORD WXDLLEXPORT wxGetWindowId(WXHWND hWnd) -{ -#ifndef __WIN32__ - return GetWindowWord((HWND)hWnd, GWW_ID); -#else // Win32 - return GetWindowLong((HWND)hWnd, GWL_ID); -#endif // Win16/32 -} - -#if 0 -//------------------------------------------------------------------------ -// wild character routines -//------------------------------------------------------------------------ - -bool wxIsWild( const wxString& pattern ) -{ - wxString tmp = pattern; - char *pat = WXSTRINGCAST(tmp); - while (*pat) { - switch (*pat++) { - case '?': case '*': case '[': case '{': - return TRUE; - case '\\': - if (!*pat++) - return FALSE; - } - } - return FALSE; -}; - - -bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special ) -{ - wxString tmp1 = pat; - char *pattern = WXSTRINGCAST(tmp1); - wxString tmp2 = text; - char *str = WXSTRINGCAST(tmp2); - char c; - char *cp; - bool done = FALSE, ret_code, ok; - // Below is for vi fans - const char OB = '{', CB = '}'; - - // dot_special means '.' only matches '.' - if (dot_special && *str == '.' && *pattern != *str) - return FALSE; - - while ((*pattern != '\0') && (!done) - && (((*str=='\0')&&((*pattern==OB)||(*pattern=='*')))||(*str!='\0'))) { - switch (*pattern) { - case '\\': - pattern++; - if (*pattern != '\0') - pattern++; - break; - case '*': - pattern++; - ret_code = FALSE; - while ((*str!='\0') - && (!(ret_code=wxMatchWild(pattern, str++, FALSE)))) - /*loop*/; - if (ret_code) { - while (*str != '\0') - str++; - while (*pattern != '\0') - pattern++; - } - break; - case '[': - pattern++; - repeat: - if ((*pattern == '\0') || (*pattern == ']')) { - done = TRUE; - break; - } - if (*pattern == '\\') { - pattern++; - if (*pattern == '\0') { - done = TRUE; - break; - } - } - if (*(pattern + 1) == '-') { - c = *pattern; - pattern += 2; - if (*pattern == ']') { - done = TRUE; - break; - } - if (*pattern == '\\') { - pattern++; - if (*pattern == '\0') { - done = TRUE; - break; - } - } - if ((*str < c) || (*str > *pattern)) { - pattern++; - goto repeat; - } - } else if (*pattern != *str) { - pattern++; - goto repeat; - } - pattern++; - while ((*pattern != ']') && (*pattern != '\0')) { - if ((*pattern == '\\') && (*(pattern + 1) != '\0')) - pattern++; - pattern++; - } - if (*pattern != '\0') { - pattern++, str++; - } - break; - case '?': - pattern++; - str++; - break; - case OB: - pattern++; - while ((*pattern != CB) && (*pattern != '\0')) { - cp = str; - ok = TRUE; - while (ok && (*cp != '\0') && (*pattern != '\0') - && (*pattern != ',') && (*pattern != CB)) { - if (*pattern == '\\') - pattern++; - ok = (*pattern++ == *cp++); - } - if (*pattern == '\0') { - ok = FALSE; - done = TRUE; - break; - } else if (ok) { - str = cp; - while ((*pattern != CB) && (*pattern != '\0')) { - if (*++pattern == '\\') { - if (*++pattern == CB) - pattern++; - } - } - } else { - while (*pattern!=CB && *pattern!=',' && *pattern!='\0') { - if (*++pattern == '\\') { - if (*++pattern == CB || *pattern == ',') - pattern++; - } - } - } - if (*pattern != '\0') - pattern++; - } - break; - default: - if (*str == *pattern) { - str++, pattern++; - } else { - done = TRUE; - } - } - } - while (*pattern == '*') - pattern++; - return ((*str == '\0') && (*pattern == '\0')); -}; - -#endif - -#if defined(__WIN95__) && defined(__WXDEBUG__) && wxUSE_DBWIN32 - -/* -When I started programming with Visual C++ v4.0, I missed one of my favorite -tools -- DBWIN. Finding the code for a simple debug trace utility, DBMON, -on MSDN was a step in the right direction, but it is a console application -and thus has limited features and extensibility. DBWIN32 is my creation -to solve this problem. - -The code is essentially a merging of a stripped down version of the DBWIN code -from VC 1.5 and DBMON.C with a few 32 bit changes. - -As of version 1.2B, DBWIN32 supports both Win95 and NT. The NT support is -built into the operating system and works just by running DBWIN32. The Win95 -team decided not to support this hook, so I have provided code that will do -this for you. See the file WIN95.TXT for instructions on installing this. - -If you have questions, problems or suggestions about DBWIN32, I welcome your -feedback and plan to actively maintain the code. - -Andrew Tucker -ast@halcyon.com - -To download dbwin32, see e.g.: - -http://ftp.digital.com/pub/micro/NT/WinSite/programr/dbwin32.zip -*/ - -#if !defined(__MWERKS__) && !defined(__SALFORDC__) && !defined(__TWIN32__) -#include -#endif - -void OutputDebugStringW95(const char* lpOutputString, ...) -{ - HANDLE heventDBWIN; /* DBWIN32 synchronization object */ - HANDLE heventData; /* data passing synch object */ - HANDLE hSharedFile; /* memory mapped file shared data */ - LPSTR lpszSharedMem; - char achBuffer[500]; - - /* create the output buffer */ - va_list args; - va_start(args, lpOutputString); - vsprintf(achBuffer, lpOutputString, args); - va_end(args); - - /* - Do a regular OutputDebugString so that the output is - still seen in the debugger window if it exists. - - This ifdef is necessary to avoid infinite recursion - from the inclusion of W95TRACE.H - */ -#ifdef _UNICODE - ::OutputDebugStringW(achBuffer); -#else -#ifdef __TWIN32__ - ::OutputDebugString(achBuffer); -#else - ::OutputDebugStringA(achBuffer); -#endif -#endif - - /* bail if it's not Win95 */ - { - OSVERSIONINFO VerInfo; - VerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); - GetVersionEx(&VerInfo); - if ( VerInfo.dwPlatformId != VER_PLATFORM_WIN32_WINDOWS ) - return; - } - - /* make sure DBWIN is open and waiting */ - heventDBWIN = OpenEvent(EVENT_MODIFY_STATE, FALSE, "DBWIN_BUFFER_READY"); - if ( !heventDBWIN ) - { - //MessageBox(NULL, "DBWIN_BUFFER_READY nonexistent", NULL, MB_OK); - return; - } - - /* get a handle to the data synch object */ - heventData = OpenEvent(EVENT_MODIFY_STATE, FALSE, "DBWIN_DATA_READY"); - if ( !heventData ) - { - // MessageBox(NULL, "DBWIN_DATA_READY nonexistent", NULL, MB_OK); - CloseHandle(heventDBWIN); - return; - } - - hSharedFile = CreateFileMapping((HANDLE)-1, NULL, PAGE_READWRITE, 0, 4096, "DBWIN_BUFFER"); - if (!hSharedFile) - { - //MessageBox(NULL, "DebugTrace: Unable to create file mapping object DBWIN_BUFFER", "Error", MB_OK); - CloseHandle(heventDBWIN); - CloseHandle(heventData); - return; - } - - lpszSharedMem = (LPSTR)MapViewOfFile(hSharedFile, FILE_MAP_WRITE, 0, 0, 512); - if (!lpszSharedMem) - { - //MessageBox(NULL, "DebugTrace: Unable to map shared memory", "Error", MB_OK); - CloseHandle(heventDBWIN); - CloseHandle(heventData); - return; - } - - /* wait for buffer event */ - WaitForSingleObject(heventDBWIN, INFINITE); - - /* write it to the shared memory */ -#if defined( __BORLANDC__ ) || defined( __MWERKS__ ) || defined(__SALFORDC__) - *((LPDWORD)lpszSharedMem) = getpid(); -#else - *((LPDWORD)lpszSharedMem) = _getpid(); -#endif - - wsprintf(lpszSharedMem + sizeof(DWORD), "%s", achBuffer); - - /* signal data ready event */ - SetEvent(heventData); - - /* clean up handles */ - CloseHandle(hSharedFile); - CloseHandle(heventData); - CloseHandle(heventDBWIN); - - return; -} - - -#endif - - -#if 0 - -// maximum mumber of lines the output console should have -static const WORD MAX_CONSOLE_LINES = 500; - -BOOL WINAPI MyConsoleHandler( DWORD dwCtrlType ) { // control signal type - FreeConsole(); - return TRUE; -} - -void wxRedirectIOToConsole() -{ - int hConHandle; - long lStdHandle; - CONSOLE_SCREEN_BUFFER_INFO coninfo; - FILE *fp; - - // allocate a console for this app - AllocConsole(); - - // set the screen buffer to be big enough to let us scroll text - GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), - &coninfo); - coninfo.dwSize.Y = MAX_CONSOLE_LINES; - SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), - coninfo.dwSize); - - // redirect unbuffered STDOUT to the console - lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE); - hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); - if(hConHandle <= 0) return; - fp = _fdopen( hConHandle, "w" ); - *stdout = *fp; - setvbuf( stdout, NULL, _IONBF, 0 ); - - // redirect unbuffered STDIN to the console - lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE); - hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); - if(hConHandle <= 0) return; - fp = _fdopen( hConHandle, "r" ); - *stdin = *fp; - setvbuf( stdin, NULL, _IONBF, 0 ); - - // redirect unbuffered STDERR to the console - lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE); - hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); - if(hConHandle <= 0) return; - fp = _fdopen( hConHandle, "w" ); - *stderr = *fp; - setvbuf( stderr, NULL, _IONBF, 0 ); - - // make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog - // point to console as well - ios::sync_with_stdio(); - - SetConsoleCtrlHandler(MyConsoleHandler, TRUE); -} -#else -// Not supported -void wxRedirectIOToConsole() -{ -} -#endif - - diff --git a/src/msw/utilsexc.cpp b/src/msw/utilsexc.cpp deleted file mode 100644 index bcb9faf6a3..0000000000 --- a/src/msw/utilsexc.cpp +++ /dev/null @@ -1,340 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utilsexec.cpp -// Purpose: Various utilities -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/intl.h" -#endif - -#include "wx/log.h" -#include "wx/process.h" - -#include "wx/msw/private.h" - -#include - -#include - -#if !defined(__GNUWIN32__) && !defined(__WXWINE__) && !defined(__SALFORDC__) -#include -#ifndef __MWERKS__ -#include -#endif -#endif - -#ifdef __GNUWIN32__ -#ifndef __TWIN32__ -#include -#include -#endif -#endif - -#if defined(__WIN32__) && !defined(__WXWINE__) -#include - -#ifndef __GNUWIN32__ -#include -#endif -#endif - -#include -#include -#include -#ifndef __WATCOMC__ - #if !(defined(_MSC_VER) && (_MSC_VER > 800)) - #include - #endif -#endif -#include - -// this message is sent when the process we're waiting for terminates -#define wxWM_PROC_TERMINATED (WM_USER + 10000) - -// structure describing the process we're being waiting for -struct wxExecuteData -{ -public: - ~wxExecuteData() - { -#ifndef __WIN16__ - if ( !::CloseHandle(hProcess) ) - { - wxLogLastError("CloseHandle(hProcess)"); - } -#endif - } - - HWND hWnd; // window to send wxWM_PROC_TERMINATED to - HANDLE hProcess; // handle of the process - DWORD dwProcessId; // pid of the process - wxProcess *handler; - DWORD dwExitCode; // the exit code of the process - bool state; // set to FALSE when the process finishes -}; - - -#ifdef __WIN32__ -static DWORD wxExecuteThread(wxExecuteData *data) -{ - WaitForSingleObject(data->hProcess, INFINITE); - - // get the exit code - if ( !GetExitCodeProcess(data->hProcess, &data->dwExitCode) ) - { - wxLogLastError("GetExitCodeProcess"); - } - - wxASSERT_MSG( data->dwExitCode != STILL_ACTIVE, - "process should have terminated" ); - - // send a message indicating process termination to the window - SendMessage(data->hWnd, wxWM_PROC_TERMINATED, 0, (LPARAM)data); - - return 0; -} -#endif - -// window procedure of a hidden window which is created just to receive -// the notification message when a process exits -LRESULT APIENTRY _EXPORT wxExecuteWindowCbk(HWND hWnd, UINT message, - WPARAM wParam, LPARAM lParam) -{ - if ( message == wxWM_PROC_TERMINATED ) - { - DestroyWindow(hWnd); // we don't need it any more - - wxExecuteData *data = (wxExecuteData *)lParam; - if ( data->handler ) - { - data->handler->OnTerminate((int)data->dwProcessId, - (int)data->dwExitCode); - } - - if ( data->state ) - { - // we're executing synchronously, tell the waiting thread - // that the process finished - data->state = 0; - } - else - { - // asynchronous execution - we should do the clean up - delete data; - } - } - - return 0; -} - -extern char wxPanelClassName[]; - -long wxExecute(const wxString& command, bool sync, wxProcess *handler) -{ - wxCHECK_MSG( !!command, 0, "empty command in wxExecute" ); - -#if defined(__WIN32__) && !defined(__TWIN32__) - // the old code is disabled because we really need a process handle - // if we want to execute it asynchronously or even just get its - // return code and for this we must use CreateProcess() and not - // ShellExecute() -#if 0 - // isolate command and arguments - wxString commandName; - bool insideQuotes = FALSE; - const char *pc; - for ( pc = command.c_str(); *pc != '\0'; pc++ ) - { - switch ( *pc ) - { - case ' ': - case '\t': - if ( !insideQuotes ) - break; - // fall through - - case '"': - insideQuotes = !insideQuotes; - // fall through - - default: - commandName += *pc; - continue; // skip the next break - } - - // only reached for space not inside quotes - break; - } - - wxString commandArgs = pc; - - wxWindow *winTop = wxTheApp->GetTopWindow(); - HWND hwndTop = (HWND)(winTop ? winTop->GetHWND() : 0); - - HANDLE result; -#ifdef __GNUWIN32__ - result = ShellExecute(hwndTop, - (const wchar_t)"open", - (const wchar_t)commandName, - (const wchar_t)commandArgs, - (const wchar_t)NULL, - SW_SHOWNORMAL); -#else // !GNUWIN32 - result = ShellExecute(hwndTop, "open", commandName, - commandArgs, NULL, SW_SHOWNORMAL); -#endif // GNUWIN32 - - if ( ((long)result) <= 32 ) - wxLogSysError(_("Can't execute command '%s'"), command.c_str()); - - return result; -#else // 1 - // create the process - STARTUPINFO si; -#ifdef __GNUWIN32__ - memset(&si, 0, sizeof(si)); -#else - ::ZeroMemory(&si, sizeof(si)); -#endif - - si.cb = sizeof(si); - - PROCESS_INFORMATION pi; - - if ( ::CreateProcess( - NULL, // application name (use only cmd line) - (char *)command.c_str(), // full command line - NULL, // security attributes: defaults for both - NULL, // the process and its main thread - FALSE, // don't inherit handles - CREATE_DEFAULT_ERROR_MODE, // flags - NULL, // environment (use the same) - NULL, // current directory (use the same) - &si, // startup info (unused here) - &pi // process info - ) == 0 ) - { - wxLogSysError(_("Execution of command '%s' failed"), command.c_str()); - - return 0; - } - - // close unneeded handle - if ( !::CloseHandle(pi.hThread) ) - wxLogLastError("CloseHandle(hThread)"); - - // create a hidden window to receive notification about process - // termination - HWND hwnd = ::CreateWindow(wxPanelClassName, NULL, 0, 0, 0, 0, 0, NULL, - (HMENU)NULL, wxGetInstance(), 0); - wxASSERT_MSG( hwnd, "can't create a hidden window for wxExecute" ); - - FARPROC ExecuteWindowInstance = MakeProcInstance((FARPROC)wxExecuteWindowCbk, - wxGetInstance()); - - ::SetWindowLong(hwnd, GWL_WNDPROC, (LONG) ExecuteWindowInstance); - - // Alloc data - wxExecuteData *data = new wxExecuteData; - data->hProcess = pi.hProcess; - data->dwProcessId = pi.dwProcessId; - data->hWnd = hwnd; - data->state = sync; - if ( sync ) - { - wxASSERT_MSG( !handler, "wxProcess param ignored for sync execution" ); - - data->handler = NULL; - } - else - { - // may be NULL or not - data->handler = handler; - } - - DWORD tid; - HANDLE hThread = ::CreateThread(NULL, - 0, - (LPTHREAD_START_ROUTINE)wxExecuteThread, - (void *)data, - 0, - &tid); - - if ( !hThread ) - { - wxLogLastError("CreateThread in wxExecute"); - - DestroyWindow(hwnd); - delete data; - - // the process still started up successfully... - return pi.dwProcessId; - } - - if ( !sync ) - { - // clean up will be done when the process terminates - - // return the pid - return pi.dwProcessId; - } - - // waiting until command executed - while ( data->state ) - wxYield(); - - DWORD dwExitCode = data->dwExitCode; - delete data; - - // return the exit code - return dwExitCode; -#endif // 0/1 -#else // Win16 - long instanceID = WinExec((LPCSTR) WXSTRINGCAST command, SW_SHOW); - if (instanceID < 32) return(0); - - if (sync) { - int running; - do { - wxYield(); - running = GetModuleUsage((HANDLE)instanceID); - } while (running); - } - - return(instanceID); -#endif // Win16/32 -} - -long wxExecute(char **argv, bool sync, wxProcess *handler) -{ - wxString command; - - while ( *argv != NULL ) - { - command << *argv++ << ' '; - } - - command.RemoveLast(); - - return wxExecute(command, sync, handler); -} diff --git a/src/msw/wave.cpp b/src/msw/wave.cpp deleted file mode 100644 index 805a64fa0e..0000000000 --- a/src/msw/wave.cpp +++ /dev/null @@ -1,168 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/file.h" -#include "wx/msw/wave.h" -#include "wx/msw/private.h" - -#include -#include - -#ifndef __GNUWIN32__ -#include -#endif - -#ifndef __TWIN32__ -#ifdef __GNUWIN32__ -#include "wx/msw/gnuwin32/extra.h" -#endif -#endif - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(isResource) -{ - Create(sFileName, isResource); -} - -wxWave::wxWave(int size, const wxByte* data) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(size, data); -} - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - if (isResource) - { - m_isResource = TRUE; - - HRSRC hresInfo; -#if defined(__WIN32__) && !defined(__TWIN32__) - hresInfo = ::FindResourceA((HMODULE) wxhInstance, fileName, "WAVE"); -#else - hresInfo = ::FindResource((HMODULE) wxhInstance, fileName, "WAVE"); -#endif - if (!hresInfo) - return FALSE; - - HGLOBAL waveData = ::LoadResource((HMODULE) wxhInstance, hresInfo); - - if (waveData) - { - m_waveData= (wxByte*)::LockResource(waveData); - m_waveLength = (int) ::SizeofResource((HMODULE) wxhInstance, hresInfo); - } - - return (m_waveData ? TRUE : FALSE); - } - else - { - m_isResource = FALSE; - - wxFile fileWave; - if (!fileWave.Open(fileName, wxFile::read)) - return FALSE; - - m_waveLength = (int) fileWave.Length(); - - m_waveData = (wxByte*)::GlobalLock(::GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, m_waveLength)); - if (!m_waveData) - return FALSE; - - fileWave.Read(m_waveData, m_waveLength); - - return TRUE; - } -} - -bool wxWave::Create(int size, const wxByte* data) -{ - Free(); - m_isResource = FALSE; - m_waveLength=size; - m_waveData = (wxByte*)::GlobalLock(::GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, m_waveLength)); - if (!m_waveData) - return FALSE; - - for (int i=0; i - #include "wx/msw/winundef.h" - #include "wx/accel.h" - #include "wx/setup.h" - #include "wx/menu.h" - #include "wx/dc.h" - #include "wx/dcclient.h" - #include "wx/utils.h" - #include "wx/app.h" - #include "wx/panel.h" - #include "wx/layout.h" - #include "wx/dialog.h" - #include "wx/frame.h" - #include "wx/listbox.h" - #include "wx/button.h" - #include "wx/msgdlg.h" - - #include -#endif - -#if wxUSE_OWNER_DRAWN - #include "wx/ownerdrw.h" -#endif - -#if wxUSE_DRAG_AND_DROP - #include "wx/dataobj.h" - #include "wx/msw/ole/droptgt.h" -#endif - -#include "wx/menuitem.h" -#include "wx/log.h" - -#include "wx/msw/private.h" - -#if wxUSE_TOOLTIPS - #include "wx/tooltip.h" -#endif - -#if wxUSE_CARET - #include "wx/caret.h" -#endif // wxUSE_CARET - -#include "wx/intl.h" -#include "wx/log.h" - - -#include "wx/textctrl.h" - -#include - -#ifndef __GNUWIN32__ - #include - #include -#endif - -#ifdef __WIN32__ - #include -#endif - -#if ( defined(__WIN95__) && !defined(__GNUWIN32__)) || defined(__TWIN32__ ) - #include -#endif - -#ifndef __TWIN32__ - #ifdef __GNUWIN32__ - #include - #endif -#endif - -// --------------------------------------------------------------------------- -// macros -// --------------------------------------------------------------------------- - -// standard macros missing from some compilers headers -#ifndef GET_X_LPARAM - #define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp)) - #define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp)) -#endif // GET_X_LPARAM - -// --------------------------------------------------------------------------- -// global variables -// --------------------------------------------------------------------------- - -// the last Windows message we got (MT-UNSAFE) -extern MSG s_currentMsg; - -wxMenu *wxCurrentPopupMenu = NULL; -extern wxList WXDLLEXPORT wxPendingDelete; -extern char wxCanvasClassName[]; - -#ifdef __WXDEBUG__ - // see comments in dcclient.cpp where g_isPainting is defined - extern bool g_isPainting; - - inline static void wxStartPainting() { g_isPainting = TRUE; } - inline static void wxEndPainting() { g_isPainting = FALSE; } -#else // !debug - inline static void wxStartPainting() { } - inline static void wxEndPainting() { } -#endif // debug/!debug - -// --------------------------------------------------------------------------- -// private functions -// --------------------------------------------------------------------------- - -// the window proc for all our windows -LRESULT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message, - WPARAM wParam, LPARAM lParam); - -#ifdef __WXDEBUG__ - const char *wxGetMessageName(int message); -#endif //__WXDEBUG__ - -void wxRemoveHandleAssociation(wxWindow *win); -void wxAssociateWinWithHandle(HWND hWnd, wxWindow *win); -wxWindow *wxFindWinFromHandle(WXHWND hWnd); - -// --------------------------------------------------------------------------- -// event tables -// --------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxWindowBase) -#endif - -BEGIN_EVENT_TABLE(wxWindow, wxWindowBase) - EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindow::OnInitDialog) - EVT_IDLE(wxWindow::OnIdle) -END_EVENT_TABLE() - -// =========================================================================== -// implementation -// =========================================================================== - -// --------------------------------------------------------------------------- -// wxWindow utility functions -// --------------------------------------------------------------------------- - -// Find an item given the MS Windows id -wxWindow *wxWindow::FindItem(int id) const -{ - wxWindowList::Node *current = GetChildren().GetFirst(); - while (current) - { - wxWindow *childWin = current->GetData(); - - wxWindow *wnd = childWin->FindItem(id); - if ( wnd ) - return wnd; - - if ( childWin->IsKindOf(CLASSINFO(wxControl)) ) - { - wxControl *item = (wxControl *)childWin; - if ( item->GetId() == id ) - return item; - else - { - // In case it's a 'virtual' control (e.g. radiobox) - if ( item->GetSubcontrols().Member((wxObject *)id) ) - return item; - } - } - - current = current->GetNext(); - } - - return NULL; -} - -// Find an item given the MS Windows handle -wxWindow *wxWindow::FindItemByHWND(WXHWND hWnd, bool controlOnly) const -{ - wxWindowList::Node *current = GetChildren().GetFirst(); - while (current) - { - wxWindow *parent = current->GetData(); - - // Do a recursive search. - wxWindow *wnd = parent->FindItemByHWND(hWnd); - if ( wnd ) - return wnd; - - if ( !controlOnly || parent->IsKindOf(CLASSINFO(wxControl)) ) - { - wxWindow *item = current->GetData(); - if ( item->GetHWND() == hWnd ) - return item; - else - { - if ( item->ContainsHWND(hWnd) ) - return item; - } - } - - current = current->GetNext(); - } - return NULL; -} - -// Default command handler -bool wxWindow::MSWCommand(WXUINT WXUNUSED(param), WXWORD WXUNUSED(id)) -{ - return FALSE; -} - -// ---------------------------------------------------------------------------- -// constructors and such -// ---------------------------------------------------------------------------- - -void wxWindow::Init() -{ - // generic - InitBase(); - - // MSW specific - m_doubleClickAllowed = 0; - m_winCaptured = FALSE; - - m_isBeingDeleted = FALSE; - m_oldWndProc = 0; - m_useCtl3D = FALSE; - m_mouseInWindow = FALSE; - - // wxWnd - m_hMenu = 0; - - m_xThumbSize = 0; - m_yThumbSize = 0; - m_backgroundTransparent = FALSE; - - // as all windows are created with WS_VISIBLE style... - m_isShown = TRUE; - -#if wxUSE_MOUSEEVENT_HACK - m_lastMouseX = - m_lastMouseY = -1; - m_lastMouseEvent = -1; -#endif // wxUSE_MOUSEEVENT_HACK -} - -// Destructor -wxWindow::~wxWindow() -{ - m_isBeingDeleted = TRUE; - - MSWDetachWindowMenu(); - - if ( m_parent ) - m_parent->RemoveChild(this); - - DestroyChildren(); - - if ( m_hWnd ) - { - if ( !::DestroyWindow(GetHwnd()) ) - wxLogLastError("DestroyWindow"); - } - - // Restore old Window proc, if required and remove hWnd <-> wxWindow - // association - UnsubclassWin(); -} - -// real construction (Init() must have been called before!) -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - wxCHECK_MSG( parent, FALSE, "can't create wxWindow without parent" ); - - CreateBase(parent, id, pos, size, style, name); - - parent->AddChild(this); - - DWORD msflags = 0; - if ( style & wxBORDER ) - msflags |= WS_BORDER; - if ( style & wxTHICK_FRAME ) - msflags |= WS_THICKFRAME; - - msflags |= WS_CHILD | WS_VISIBLE; - if ( style & wxCLIP_CHILDREN ) - msflags |= WS_CLIPCHILDREN; - - bool want3D; - WXDWORD exStyle = Determine3DEffects(WS_EX_CLIENTEDGE, &want3D); - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ( want3D || (m_windowStyle & wxSIMPLE_BORDER) || (m_windowStyle & wxRAISED_BORDER ) || - (m_windowStyle & wxSUNKEN_BORDER) || (m_windowStyle & wxDOUBLE_BORDER)) - { - msflags |= WS_BORDER; - } - - MSWCreate(m_windowId, parent, wxCanvasClassName, this, NULL, - pos.x, pos.y, - WidthDefault(size.x), HeightDefault(size.y), - msflags, NULL, exStyle); - - return TRUE; -} - -// --------------------------------------------------------------------------- -// basic operations -// --------------------------------------------------------------------------- - -void wxWindow::SetFocus() -{ - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetFocus(hWnd); -} - -// Get the window with the focus -wxWindow *wxWindowBase::FindFocus() -{ - HWND hWnd = ::GetFocus(); - if ( hWnd ) - { - return wxFindWinFromHandle((WXHWND) hWnd); - } - - return NULL; -} - -bool wxWindow::Enable(bool enable) -{ - if ( !wxWindowBase::Enable(enable) ) - return FALSE; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::EnableWindow(hWnd, (BOOL)enable); - - return TRUE; -} - -bool wxWindow::Show(bool show) -{ - if ( !wxWindowBase::Show(show) ) - return FALSE; - - HWND hWnd = GetHwnd(); - int cshow = show ? SW_SHOW : SW_HIDE; - ::ShowWindow(hWnd, cshow); - - if ( show ) - { - BringWindowToTop(hWnd); - } - - return TRUE; -} - -// Raise the window to the top of the Z order -void wxWindow::Raise() -{ - ::BringWindowToTop(GetHwnd()); -} - -// Lower the window to the bottom of the Z order -void wxWindow::Lower() -{ - ::SetWindowPos(GetHwnd(), HWND_BOTTOM, 0, 0, 0, 0, - SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); -} - -void wxWindow::SetTitle( const wxString& title) -{ - SetWindowText(GetHwnd(), title.c_str()); -} - -wxString wxWindow::GetTitle() const -{ - return wxGetWindowText(GetHWND()); -} - -void wxWindow::CaptureMouse() -{ - HWND hWnd = GetHwnd(); - if ( hWnd && !m_winCaptured ) - { - SetCapture(hWnd); - m_winCaptured = TRUE; - } -} - -void wxWindow::ReleaseMouse() -{ - if ( m_winCaptured ) - { - ReleaseCapture(); - m_winCaptured = FALSE; - } -} - -bool wxWindow::SetFont(const wxFont& font) -{ - if ( !wxWindowBase::SetFont(font) ) - { - // nothing to do - return FALSE; - } - - HWND hWnd = GetHwnd(); - if ( hWnd != 0 ) - { - WXHANDLE hFont = m_font.GetResourceHandle(); - - wxASSERT_MSG( hFont, _T("should have valid font") ); - - ::SendMessage(hWnd, WM_SETFONT, (WPARAM)hFont, TRUE); - } - - return TRUE; -} -bool wxWindow::SetCursor(const wxCursor& cursor) -{ - if ( !wxWindowBase::SetCursor(cursor) ) - { - // no change - return FALSE; - } - - wxASSERT_MSG( m_cursor.Ok(), - _T("cursor must be valid after call to the base version")); - - HWND hWnd = GetHwnd(); - - // Change the cursor NOW if we're within the correct window - POINT point; - ::GetCursorPos(&point); - - RECT rect; - ::GetWindowRect(hWnd, &rect); - - if ( ::PtInRect(&rect, point) && !wxIsBusy() ) - ::SetCursor((HCURSOR)m_cursor.GetHCURSOR()); - - return TRUE; -} - -void wxWindow::WarpPointer (int x_pos, int y_pos) -{ - // Move the pointer to (x_pos,y_pos) coordinates. They are expressed in - // pixel coordinates, relatives to the canvas -- So, we first need to - // substract origin of the window, then convert to screen position - - int x = x_pos; int y = y_pos; - RECT rect; - GetWindowRect (GetHwnd(), &rect); - - x += rect.left; - y += rect.top; - - SetCursorPos (x, y); -} - -#if WXWIN_COMPATIBILITY -void wxWindow::MSWDeviceToLogical (float *x, float *y) const -{ -} -#endif // WXWIN_COMPATIBILITY - -// --------------------------------------------------------------------------- -// scrolling stuff -// --------------------------------------------------------------------------- - -#if WXWIN_COMPATIBILITY -void wxWindow::SetScrollRange(int orient, int range, bool refresh) -{ -#if defined(__WIN95__) - - int range1 = range; - - // Try to adjust the range to cope with page size > 1 - // - a Windows API quirk - int pageSize = GetScrollPage(orient); - if ( pageSize > 1 && range > 0) - { - range1 += (pageSize - 1); - } - - SCROLLINFO info; - int dir; - - if ( orient == wxHORIZONTAL ) { - dir = SB_HORZ; - } else { - dir = SB_VERT; - } - - info.cbSize = sizeof(SCROLLINFO); - info.nPage = pageSize; // Have to set this, or scrollbar goes awry - info.nMin = 0; - info.nMax = range1; - info.nPos = 0; - info.fMask = SIF_RANGE | SIF_PAGE; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetScrollInfo(hWnd, dir, &info, refresh); -#else - int wOrient; - if ( orient == wxHORIZONTAL ) - wOrient = SB_HORZ; - else - wOrient = SB_VERT; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetScrollRange(hWnd, wOrient, 0, range, refresh); -#endif -} - -void wxWindow::SetScrollPage(int orient, int page, bool refresh) -{ -#if defined(__WIN95__) - SCROLLINFO info; - int dir; - - if ( orient == wxHORIZONTAL ) { - dir = SB_HORZ; - m_xThumbSize = page; - } else { - dir = SB_VERT; - m_yThumbSize = page; - } - - info.cbSize = sizeof(SCROLLINFO); - info.nPage = page; - info.nMin = 0; - info.fMask = SIF_PAGE; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetScrollInfo(hWnd, dir, &info, refresh); -#else - if ( orient == wxHORIZONTAL ) - m_xThumbSize = page; - else - m_yThumbSize = page; -#endif -} - -int wxWindow::OldGetScrollRange(int orient) const -{ - int wOrient; - if ( orient == wxHORIZONTAL ) - wOrient = SB_HORZ; - else - wOrient = SB_VERT; - -#if __WATCOMC__ && defined(__WINDOWS_386__) - short minPos, maxPos; -#else - int minPos, maxPos; -#endif - HWND hWnd = GetHwnd(); - if ( hWnd ) - { - ::GetScrollRange(hWnd, wOrient, &minPos, &maxPos); -#if defined(__WIN95__) - // Try to adjust the range to cope with page size > 1 - // - a Windows API quirk - int pageSize = GetScrollPage(orient); - if ( pageSize > 1 ) - { - maxPos -= (pageSize - 1); - } -#endif - return maxPos; - } - else - return 0; -} - -int wxWindow::GetScrollPage(int orient) const -{ - if ( orient == wxHORIZONTAL ) - return m_xThumbSize; - else - return m_yThumbSize; -} - -#endif // WXWIN_COMPATIBILITY - -int wxWindow::GetScrollPos(int orient) const -{ - int wOrient; - if ( orient == wxHORIZONTAL ) - wOrient = SB_HORZ; - else - wOrient = SB_VERT; - HWND hWnd = GetHwnd(); - if ( hWnd ) - { - return ::GetScrollPos(hWnd, wOrient); - } - else - return 0; -} - -// This now returns the whole range, not just the number -// of positions that we can scroll. -int wxWindow::GetScrollRange(int orient) const -{ - int wOrient; - if ( orient == wxHORIZONTAL ) - wOrient = SB_HORZ; - else - wOrient = SB_VERT; - -#if __WATCOMC__ && defined(__WINDOWS_386__) - short minPos, maxPos; -#else - int minPos, maxPos; -#endif - HWND hWnd = GetHwnd(); - if ( hWnd ) - { - ::GetScrollRange(hWnd, wOrient, &minPos, &maxPos); -#if defined(__WIN95__) - // Try to adjust the range to cope with page size > 1 - // - a Windows API quirk - int pageSize = GetScrollThumb(orient); - if ( pageSize > 1 ) - { - maxPos -= (pageSize - 1); - } - // October 10th: new range concept. - maxPos += pageSize; -#endif - - return maxPos; - } - else - return 0; -} - -int wxWindow::GetScrollThumb(int orient) const -{ - if ( orient == wxHORIZONTAL ) - return m_xThumbSize; - else - return m_yThumbSize; -} - -void wxWindow::SetScrollPos(int orient, int pos, bool refresh) -{ -#if defined(__WIN95__) - SCROLLINFO info; - int dir; - - if ( orient == wxHORIZONTAL ) { - dir = SB_HORZ; - } else { - dir = SB_VERT; - } - - info.cbSize = sizeof(SCROLLINFO); - info.nPage = 0; - info.nMin = 0; - info.nPos = pos; - info.fMask = SIF_POS; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetScrollInfo(hWnd, dir, &info, refresh); -#else - int wOrient; - if ( orient == wxHORIZONTAL ) - wOrient = SB_HORZ; - else - wOrient = SB_VERT; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetScrollPos(hWnd, wOrient, pos, refresh); -#endif -} - -// New function that will replace some of the above. -void wxWindow::SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh) -{ -#if defined(__WIN95__) - int oldRange = range - thumbVisible; - - int range1 = oldRange; - - // Try to adjust the range to cope with page size > 1 - // - a Windows API quirk - int pageSize = thumbVisible; - if ( pageSize > 1 && range > 0) - { - range1 += (pageSize - 1); - } - - SCROLLINFO info; - int dir; - - if ( orient == wxHORIZONTAL ) { - dir = SB_HORZ; - } else { - dir = SB_VERT; - } - - info.cbSize = sizeof(SCROLLINFO); - info.nPage = pageSize; // Have to set this, or scrollbar goes awry - info.nMin = 0; - info.nMax = range1; - info.nPos = pos; - info.fMask = SIF_RANGE | SIF_PAGE | SIF_POS; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::SetScrollInfo(hWnd, dir, &info, refresh); -#else - int wOrient; - if ( orient == wxHORIZONTAL ) - wOrient = SB_HORZ; - else - wOrient = SB_VERT; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - { - ::SetScrollRange(hWnd, wOrient, 0, range, FALSE); - ::SetScrollPos(hWnd, wOrient, pos, refresh); - } -#endif - if ( orient == wxHORIZONTAL ) { - m_xThumbSize = thumbVisible; - } else { - m_yThumbSize = thumbVisible; - } -} - -void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) -{ - RECT rect2; - if ( rect ) - { - rect2.left = rect->x; - rect2.top = rect->y; - rect2.right = rect->x + rect->width; - rect2.bottom = rect->y + rect->height; - } - - if ( rect ) - ::ScrollWindow(GetHwnd(), dx, dy, &rect2, NULL); - else - ::ScrollWindow(GetHwnd(), dx, dy, NULL, NULL); -} - -// --------------------------------------------------------------------------- -// subclassing -// --------------------------------------------------------------------------- - -void wxWindow::SubclassWin(WXHWND hWnd) -{ - wxASSERT_MSG( !m_oldWndProc, "subclassing window twice?" ); - - wxAssociateWinWithHandle((HWND)hWnd, this); - - m_oldWndProc = (WXFARPROC) GetWindowLong((HWND) hWnd, GWL_WNDPROC); - SetWindowLong((HWND) hWnd, GWL_WNDPROC, (LONG) wxWndProc); -} - -void wxWindow::UnsubclassWin() -{ - wxRemoveHandleAssociation(this); - - // Restore old Window proc - if ( GetHwnd() ) - { - FARPROC farProc = (FARPROC) GetWindowLong(GetHwnd(), GWL_WNDPROC); - if ( (m_oldWndProc != 0) && (farProc != (FARPROC) m_oldWndProc) ) - { - SetWindowLong(GetHwnd(), GWL_WNDPROC, (LONG) m_oldWndProc); - m_oldWndProc = 0; - } - - m_hWnd = 0; - } -} - -// Make a Windows extended style from the given wxWindows window style -WXDWORD wxWindow::MakeExtendedStyle(long style, bool eliminateBorders) -{ - WXDWORD exStyle = 0; - if ( style & wxTRANSPARENT_WINDOW ) - exStyle |= WS_EX_TRANSPARENT; - - if ( !eliminateBorders ) - { - if ( style & wxSUNKEN_BORDER ) - exStyle |= WS_EX_CLIENTEDGE; - if ( style & wxDOUBLE_BORDER ) - exStyle |= WS_EX_DLGMODALFRAME; -#if defined(__WIN95__) - if ( style & wxRAISED_BORDER ) - exStyle |= WS_EX_WINDOWEDGE; - if ( style & wxSTATIC_BORDER ) - exStyle |= WS_EX_STATICEDGE; -#endif - } - return exStyle; -} - -// Determines whether native 3D effects or CTL3D should be used, -// applying a default border style if required, and returning an extended -// style to pass to CreateWindowEx. -WXDWORD wxWindow::Determine3DEffects(WXDWORD defaultBorderStyle, bool *want3D) -{ - // If matches certain criteria, then assume no 3D effects - // unless specifically requested (dealt with in MakeExtendedStyle) - if ( !GetParent() || !IsKindOf(CLASSINFO(wxControl)) || (m_windowStyle & wxNO_BORDER) ) - { - *want3D = FALSE; - return MakeExtendedStyle(m_windowStyle, FALSE); - } - - // Determine whether we should be using 3D effects or not. - bool nativeBorder = FALSE; // by default, we don't want a Win95 effect - - // 1) App can specify global 3D effects - *want3D = wxTheApp->GetAuto3D(); - - // 2) If the parent is being drawn with user colours, or simple border specified, - // switch effects off. TODO: replace wxUSER_COLOURS with wxNO_3D - if ( GetParent() && (GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS) || (m_windowStyle & wxSIMPLE_BORDER) ) - *want3D = FALSE; - - // 3) Control can override this global setting by defining - // a border style, e.g. wxSUNKEN_BORDER - if ( m_windowStyle & wxSUNKEN_BORDER ) - *want3D = TRUE; - - // 4) If it's a special border, CTL3D can't cope so we want a native border - if ( (m_windowStyle & wxDOUBLE_BORDER) || (m_windowStyle & wxRAISED_BORDER) || - (m_windowStyle & wxSTATIC_BORDER) ) - { - *want3D = TRUE; - nativeBorder = TRUE; - } - - // 5) If this isn't a Win95 app, and we are using CTL3D, remove border - // effects from extended style -#if wxUSE_CTL3D - if ( *want3D ) - nativeBorder = FALSE; -#endif - - DWORD exStyle = MakeExtendedStyle(m_windowStyle, !nativeBorder); - - // If we want 3D, but haven't specified a border here, - // apply the default border style specified. - // TODO what about non-Win95 WIN32? Does it have borders? -#if defined(__WIN95__) && !wxUSE_CTL3D - if ( defaultBorderStyle && (*want3D) && ! ((m_windowStyle & wxDOUBLE_BORDER) || (m_windowStyle & wxRAISED_BORDER ) || - (m_windowStyle & wxSTATIC_BORDER) || (m_windowStyle & wxSIMPLE_BORDER) )) - exStyle |= defaultBorderStyle; // WS_EX_CLIENTEDGE; -#endif - - return exStyle; -} - -#if WXWIN_COMPATIBILITY -// If nothing defined for this, try the parent. -// E.g. we may be a button loaded from a resource, with no callback function -// defined. -void wxWindow::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if ( GetEventHandler()->ProcessEvent(event) ) - return; - if ( m_parent ) - m_parent->GetEventHandler()->OnCommand(win, event); -} -#endif // WXWIN_COMPATIBILITY_2 - -#if WXWIN_COMPATIBILITY -wxObject* wxWindow::GetChild(int number) const -{ - // Return a pointer to the Nth object in the Panel - wxNode *node = GetChildren().First(); - int n = number; - while (node && n--) - node = node->Next(); - if ( node ) - { - wxObject *obj = (wxObject *)node->Data(); - return(obj); - } - else - return NULL; -} -#endif // WXWIN_COMPATIBILITY - -// Setup background and foreground colours correctly -void wxWindow::SetupColours() -{ - if ( GetParent() ) - SetBackgroundColour(GetParent()->GetBackgroundColour()); -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ - // Check if we need to send a LEAVE event - if ( m_mouseInWindow ) - { - POINT pt; - ::GetCursorPos(&pt); - if ( ::WindowFromPoint(pt) != GetHwnd() ) - { - // Generate a LEAVE event - m_mouseInWindow = FALSE; - - // Unfortunately the mouse button and keyboard state may have changed - // by the time the OnIdle function is called, so 'state' may be - // meaningless. - int state = 0; - if ( ::GetKeyState(VK_SHIFT) != 0 ) - state |= MK_SHIFT; - if ( ::GetKeyState(VK_CONTROL) != 0 ) - state |= MK_CONTROL; - - wxMouseEvent event(wxEVT_LEAVE_WINDOW); - InitMouseEvent(event, pt.x, pt.y, state); - - (void)GetEventHandler()->ProcessEvent(event); - } - } - - UpdateWindowUI(); -} - -// Set this window to be the child of 'parent'. -bool wxWindow::Reparent(wxWindow *parent) -{ - if ( !wxWindowBase::Reparent(parent) ) - return FALSE; - - HWND hWndChild = GetHwnd(); - HWND hWndParent = GetParent() ? GetWinHwnd(GetParent()) : (HWND)0; - - ::SetParent(hWndChild, hWndParent); - - return TRUE; -} - -void wxWindow::Clear() -{ - wxClientDC dc(this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - HWND hWnd = GetHwnd(); - if ( hWnd ) - { - if ( rect ) - { - RECT mswRect; - mswRect.left = rect->x; - mswRect.top = rect->y; - mswRect.right = rect->x + rect->width; - mswRect.bottom = rect->y + rect->height; - - ::InvalidateRect(hWnd, &mswRect, eraseBack); - } - else - ::InvalidateRect(hWnd, NULL, eraseBack); - } -} - -// --------------------------------------------------------------------------- -// drag and drop -// --------------------------------------------------------------------------- - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget(wxDropTarget *pDropTarget) -{ - if ( m_dropTarget != 0 ) { - m_dropTarget->Revoke(m_hWnd); - delete m_dropTarget; - } - - m_dropTarget = pDropTarget; - if ( m_dropTarget != 0 ) - m_dropTarget->Register(m_hWnd); -} - -#endif // wxUSE_DRAG_AND_DROP - -// old style file-manager drag&drop support: we retain the old-style -// DragAcceptFiles in parallel with SetDropTarget. -void wxWindow::DragAcceptFiles(bool accept) -{ - HWND hWnd = GetHwnd(); - if ( hWnd ) - ::DragAcceptFiles(hWnd, (BOOL)accept); -} - -// ---------------------------------------------------------------------------- -// tooltips -// ---------------------------------------------------------------------------- - -#if wxUSE_TOOLTIPS - -void wxWindow::DoSetToolTip(wxToolTip *tooltip) -{ - wxWindowBase::DoSetToolTip(tooltip); - - if ( m_tooltip ) - m_tooltip->SetWindow(this); -} - -#endif // wxUSE_TOOLTIPS - -// --------------------------------------------------------------------------- -// moving and resizing -// --------------------------------------------------------------------------- - -// Get total size -void wxWindow::DoGetSize(int *x, int *y) const -{ - HWND hWnd = GetHwnd(); - RECT rect; - GetWindowRect(hWnd, &rect); - - if ( x ) - *x = rect.right - rect.left; - if ( y ) - *y = rect.bottom - rect.top; -} - -void wxWindow::DoGetPosition(int *x, int *y) const -{ - HWND hWnd = GetHwnd(); - HWND hParentWnd = 0; - if ( GetParent() ) - hParentWnd = (HWND) GetParent()->GetHWND(); - - RECT rect; - GetWindowRect(hWnd, &rect); - - // Since we now have the absolute screen coords, if there's a parent we - // must subtract its top left corner - POINT point; - point.x = rect.left; - point.y = rect.top; - if ( hParentWnd ) - { - ::ScreenToClient(hParentWnd, &point); - } - - // We may be faking the client origin. So a window that's really at (0, - // 30) may appear (to wxWin apps) to be at (0, 0). - if ( GetParent() ) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - point.x -= pt.x; - point.y -= pt.y; - } - - if ( x ) - *x = point.x; - if ( y ) - *y = point.y; -} - -void wxWindow::DoScreenToClient(int *x, int *y) const -{ - POINT pt; - if ( x ) - pt.x = *x; - if ( y ) - pt.y = *y; - - HWND hWnd = GetHwnd(); - ::ScreenToClient(hWnd, &pt); - - if ( x ) - *x = pt.x; - if ( y ) - *y = pt.y; -} - -void wxWindow::DoClientToScreen(int *x, int *y) const -{ - POINT pt; - if ( x ) - pt.x = *x; - if ( y ) - pt.y = *y; - - HWND hWnd = GetHwnd(); - ::ClientToScreen(hWnd, &pt); - - if ( x ) - *x = pt.x; - if ( y ) - *y = pt.y; -} - -// Get size *available for subwindows* i.e. excluding menu bar etc. -void wxWindow::DoGetClientSize(int *x, int *y) const -{ - HWND hWnd = GetHwnd(); - RECT rect; - ::GetClientRect(hWnd, &rect); - if ( x ) - *x = rect.right; - if ( y ) - *y = rect.bottom; -} - -void wxWindow::DoSetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int currentW,currentH; - GetSize(¤tW, ¤tH); - - if ( x == currentX && y == currentY && width == currentW && height == currentH ) - return; - - int actualWidth = width; - int actualHeight = height; - int actualX = x; - int actualY = y; - if ( x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE) ) - actualX = currentX; - if ( y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE) ) - actualY = currentY; - - AdjustForParentClientOrigin(actualX, actualY, sizeFlags); - - if ( width == -1 ) - actualWidth = currentW; - if ( height == -1 ) - actualHeight = currentH; - - HWND hWnd = GetHwnd(); - if ( hWnd ) - MoveWindow(hWnd, actualX, actualY, actualWidth, actualHeight, (BOOL)TRUE); -} - -void wxWindow::DoSetClientSize(int width, int height) -{ - wxWindow *parent = GetParent(); - HWND hWnd = GetHwnd(); - HWND hParentWnd = (HWND) 0; - if ( parent ) - hParentWnd = (HWND) parent->GetHWND(); - - RECT rect; - ::GetClientRect(hWnd, &rect); - - RECT rect2; - GetWindowRect(hWnd, &rect2); - - // Find the difference between the entire window (title bar and all) - // and the client area; add this to the new client size to move the - // window - int actual_width = rect2.right - rect2.left - rect.right + width; - int actual_height = rect2.bottom - rect2.top - rect.bottom + height; - - // If there's a parent, must subtract the parent's top left corner - // since MoveWindow moves relative to the parent - - POINT point; - point.x = rect2.left; - point.y = rect2.top; - if ( parent ) - { - ::ScreenToClient(hParentWnd, &point); - } - - MoveWindow(hWnd, point.x, point.y, actual_width, actual_height, (BOOL)TRUE); - - wxSizeEvent event(wxSize(width, height), m_windowId); - event.SetEventObject(this); - GetEventHandler()->ProcessEvent(event); -} - -// For implementation purposes - sometimes decorations make the client area -// smaller -wxPoint wxWindow::GetClientAreaOrigin() const -{ - return wxPoint(0, 0); -} - -// Makes an adjustment to the window position (for example, a frame that has -// a toolbar that it manages itself). -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - if ( ((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent() ) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - x += pt.x; y += pt.y; - } -} - -// --------------------------------------------------------------------------- -// text metrics -// --------------------------------------------------------------------------- - -int wxWindow::GetCharHeight() const -{ - TEXTMETRIC lpTextMetric; - HWND hWnd = GetHwnd(); - HDC dc = ::GetDC(hWnd); - - GetTextMetrics(dc, &lpTextMetric); - ::ReleaseDC(hWnd, dc); - - return lpTextMetric.tmHeight; -} - -int wxWindow::GetCharWidth() const -{ - TEXTMETRIC lpTextMetric; - HWND hWnd = GetHwnd(); - HDC dc = ::GetDC(hWnd); - - GetTextMetrics(dc, &lpTextMetric); - ::ReleaseDC(hWnd, dc); - - return lpTextMetric.tmAveCharWidth; -} - -void wxWindow::GetTextExtent(const wxString& string, - int *x, int *y, - int *descent, int *externalLeading, - const wxFont *theFont) const -{ - const wxFont *fontToUse = theFont; - if ( !fontToUse ) - fontToUse = &m_font; - - HWND hWnd = GetHwnd(); - HDC dc = ::GetDC(hWnd); - - HFONT fnt = 0; - HFONT hfontOld = 0; - if ( fontToUse && fontToUse->Ok() ) - { - fnt = (HFONT)((wxFont *)fontToUse)->GetResourceHandle(); // const_cast - if ( fnt ) - hfontOld = (HFONT)SelectObject(dc,fnt); - } - - SIZE sizeRect; - TEXTMETRIC tm; - GetTextExtentPoint(dc, (const char *)string, (int)string.Length(), &sizeRect); - GetTextMetrics(dc, &tm); - - if ( fontToUse && fnt && hfontOld ) - SelectObject(dc, hfontOld); - - ReleaseDC(hWnd, dc); - - if ( x ) *x = sizeRect.cx; - if ( y ) *y = sizeRect.cy; - if ( descent ) *descent = tm.tmDescent; - if ( externalLeading ) *externalLeading = tm.tmExternalLeading; -} - -#if wxUSE_CARET && WXWIN_COMPATIBILITY -// --------------------------------------------------------------------------- -// Caret manipulation -// --------------------------------------------------------------------------- - -void wxWindow::CreateCaret(int w, int h) -{ - SetCaret(new wxCaret(this, w, h)); -} - -void wxWindow::CreateCaret(const wxBitmap *WXUNUSED(bitmap)) -{ - wxFAIL_MSG("not implemented"); -} - -void wxWindow::ShowCaret(bool show) -{ - wxCHECK_RET( m_caret, "no caret to show" ); - - m_caret->Show(show); -} - -void wxWindow::DestroyCaret() -{ - SetCaret(NULL); -} - -void wxWindow::SetCaretPos(int x, int y) -{ - wxCHECK_RET( m_caret, "no caret to move" ); - - m_caret->Move(x, y); -} - -void wxWindow::GetCaretPos(int *x, int *y) const -{ - wxCHECK_RET( m_caret, "no caret to get position of" ); - - m_caret->GetPosition(x, y); -} -#endif // wxUSE_CARET - -// =========================================================================== -// pre/post message processing -// =========================================================================== - -long wxWindow::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - if ( m_oldWndProc ) - return ::CallWindowProc(CASTWNDPROC m_oldWndProc, GetHwnd(), (UINT) nMsg, (WPARAM) wParam, (LPARAM) lParam); - else - return ::DefWindowProc(GetHwnd(), nMsg, wParam, lParam); -} - -bool wxWindow::MSWProcessMessage(WXMSG* pMsg) -{ - if ( m_hWnd != 0 && (GetWindowStyleFlag() & wxTAB_TRAVERSAL) ) - { - // intercept dialog navigation keys - MSG *msg = (MSG *)pMsg; - bool bProcess = TRUE; - if ( msg->message != WM_KEYDOWN ) - bProcess = FALSE; - - if ( bProcess && (HIWORD(msg->lParam) & KF_ALTDOWN) == KF_ALTDOWN ) - bProcess = FALSE; - - if ( bProcess ) - { - bool bCtrlDown = (::GetKeyState(VK_CONTROL) & 0x100) != 0; - - // WM_GETDLGCODE: ask the control if it wants the key for itself, - // don't process it if it's the case (except for Ctrl-Tab/Enter - // combinations which are always processed) - LONG lDlgCode = 0; - if ( !bCtrlDown ) - { - lDlgCode = ::SendMessage(msg->hwnd, WM_GETDLGCODE, 0, 0); - } - - bool bForward = TRUE, - bWindowChange = FALSE; - - switch ( msg->wParam ) - { - case VK_TAB: - if ( lDlgCode & DLGC_WANTTAB ) { - bProcess = FALSE; - } - else { - // Ctrl-Tab cycles thru notebook pages - bWindowChange = bCtrlDown; - bForward = !(::GetKeyState(VK_SHIFT) & 0x100); - } - break; - - case VK_UP: - case VK_LEFT: - if ( (lDlgCode & DLGC_WANTARROWS) || bCtrlDown ) - bProcess = FALSE; - else - bForward = FALSE; - break; - - case VK_DOWN: - case VK_RIGHT: - if ( (lDlgCode & DLGC_WANTARROWS) || bCtrlDown ) - bProcess = FALSE; - break; - - case VK_RETURN: - { - if ( lDlgCode & DLGC_WANTMESSAGE ) - { - // control wants to process Enter itself, don't - // call IsDialogMessage() which would interpret - // it - return FALSE; - } -#ifndef __WIN16__ - wxButton *btnDefault = GetDefaultItem(); - if ( btnDefault && !bCtrlDown ) - { - // if there is a default button, Enter should - // press it - (void)::SendMessage((HWND)btnDefault->GetHWND(), - BM_CLICK, 0, 0); - return TRUE; - } - // else: but if there is not it makes sense to make it - // work like a TAB - and that's what we do. - // Note that Ctrl-Enter always works this way. -#endif - } - break; - - default: - bProcess = FALSE; - } - - if ( bProcess ) - { - wxNavigationKeyEvent event; - event.SetDirection(bForward); - event.SetWindowChange(bWindowChange); - event.SetEventObject(this); - - if ( GetEventHandler()->ProcessEvent(event) ) - return TRUE; - } - } - - if ( ::IsDialogMessage(GetHwnd(), msg) ) - return TRUE; - } - -#if wxUSE_TOOLTIPS - if ( m_tooltip ) - { - // relay mouse move events to the tooltip control - MSG *msg = (MSG *)pMsg; - if ( msg->message == WM_MOUSEMOVE ) - m_tooltip->RelayEvent(pMsg); - } -#endif // wxUSE_TOOLTIPS - - return FALSE; -} - -bool wxWindow::MSWTranslateMessage(WXMSG* pMsg) -{ - return m_acceleratorTable.Ok() && - ::TranslateAccelerator(GetHwnd(), - GetTableHaccel(m_acceleratorTable), - (MSG *)pMsg); -} - -// --------------------------------------------------------------------------- -// message params unpackers (different for Win16 and Win32) -// --------------------------------------------------------------------------- - -#ifdef __WIN32__ - -void wxWindow::UnpackCommand(WXWPARAM wParam, WXLPARAM lParam, - WORD *id, WXHWND *hwnd, WORD *cmd) -{ - *id = LOWORD(wParam); - *hwnd = (WXHWND)lParam; - *cmd = HIWORD(wParam); -} - -void wxWindow::UnpackActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *state, WXWORD *minimized, WXHWND *hwnd) -{ - *state = LOWORD(wParam); - *minimized = HIWORD(wParam); - *hwnd = (WXHWND)lParam; -} - -void wxWindow::UnpackScroll(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *code, WXWORD *pos, WXHWND *hwnd) -{ - *code = LOWORD(wParam); - *pos = HIWORD(wParam); - *hwnd = (WXHWND)lParam; -} - -void wxWindow::UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *nCtlColor, WXHDC *hdc, WXHWND *hwnd) -{ - *nCtlColor = CTLCOLOR_BTN; - *hwnd = (WXHWND)lParam; - *hdc = (WXHDC)wParam; -} - -void wxWindow::UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *item, WXWORD *flags, WXHMENU *hmenu) -{ - *item = (WXWORD)wParam; - *flags = HIWORD(wParam); - *hmenu = (WXHMENU)lParam; -} - -#else // Win16 - -void wxWindow::UnpackCommand(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *id, WXHWND *hwnd, WXWORD *cmd) -{ - *id = (WXWORD)wParam; - *hwnd = (WXHWND)LOWORD(lParam); - *cmd = HIWORD(lParam); -} - -void wxWindow::UnpackActivate(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *state, WXWORD *minimized, WXHWND *hwnd) -{ - *state = (WXWORD)wParam; - *minimized = LOWORD(lParam); - *hwnd = (WXHWND)HIWORD(lParam); -} - -void wxWindow::UnpackScroll(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *code, WXWORD *pos, WXHWND *hwnd) -{ - *code = (WXWORD)wParam; - *pos = LOWORD(lParam); - *hwnd = (WXHWND)HIWORD(lParam); -} - -void wxWindow::UnpackCtlColor(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *nCtlColor, WXHDC *hdc, WXHWND *hwnd) -{ - *hwnd = (WXHWND)LOWORD(lParam); - *nCtlColor = (int)HIWORD(lParam); - *hdc = (WXHDC)wParam; -} - -void wxWindow::UnpackMenuSelect(WXWPARAM wParam, WXLPARAM lParam, - WXWORD *item, WXWORD *flags, WXHMENU *hmenu) -{ - *item = (WXWORD)wParam; - *flags = LOWORD(lParam); - *hmenu = (WXHMENU)HIWORD(lParam); -} - -#endif // Win32/16 - -// --------------------------------------------------------------------------- -// Main wxWindows window proc and the window proc for wxWindow -// --------------------------------------------------------------------------- - -// Hook for new window just as it's being created, when the window isn't yet -// associated with the handle -wxWindow *wxWndHook = NULL; - -// Main window proc -LRESULT APIENTRY _EXPORT wxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - // trace all messages - useful for the debugging -#ifdef __WXDEBUG__ - wxLogTrace(wxTraceMessages, "Processing %s(wParam=%8lx, lParam=%8lx)", - wxGetMessageName(message), wParam, lParam); -#endif // __WXDEBUG__ - - wxWindow *wnd = wxFindWinFromHandle((WXHWND) hWnd); - - // when we get the first message for the HWND we just created, we associate - // it with wxWindow stored in wxWndHook - if ( !wnd && wxWndHook ) - { - wxAssociateWinWithHandle(hWnd, wxWndHook); - wnd = wxWndHook; - wxWndHook = NULL; - wnd->SetHWND((WXHWND)hWnd); - } - - LRESULT rc; - - // Stop right here if we don't have a valid handle in our wxWindow object. - if ( wnd && !wnd->GetHWND() ) - { - // FIXME: why do we do this? - wnd->SetHWND((WXHWND) hWnd); - rc = wnd->MSWDefWindowProc(message, wParam, lParam ); - wnd->SetHWND(0); - } - else - { - if ( wnd ) - rc = wnd->MSWWindowProc(message, wParam, lParam); - else - rc = DefWindowProc( hWnd, message, wParam, lParam ); - } - - return rc; -} - -long wxWindow::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ - // did we process the message? - bool processed = FALSE; - - // the return value - union - { - bool allow; - long result; - WXHICON hIcon; - WXHBRUSH hBrush; - } rc; - - // for most messages we should return 0 when we do process the message - rc.result = 0; - - switch ( message ) - { - case WM_CREATE: - { - bool mayCreate; - processed = HandleCreate((WXLPCREATESTRUCT)lParam, &mayCreate); - if ( processed ) - { - // return 0 to allow window creation - rc.result = mayCreate ? 0 : -1; - } - } - break; - - case WM_DESTROY: - processed = HandleDestroy(); - break; - - case WM_MOVE: - processed = HandleMove(LOWORD(lParam), HIWORD(lParam)); - break; - - case WM_SIZE: - processed = HandleSize(LOWORD(lParam), HIWORD(lParam), wParam); - break; - - case WM_ACTIVATE: - { - WXWORD state, minimized; - WXHWND hwnd; - UnpackActivate(wParam, lParam, &state, &minimized, &hwnd); - - processed = HandleActivate(state, minimized != 0, (WXHWND)hwnd); - } - break; - - case WM_SETFOCUS: - processed = HandleSetFocus((WXHWND)(HWND)wParam); - break; - - case WM_KILLFOCUS: - processed = HandleKillFocus((WXHWND)(HWND)wParam); - break; - - case WM_PAINT: - wxStartPainting(); - processed = HandlePaint(); - wxEndPainting(); - break; - - case WM_CLOSE: - // don't let the DefWindowProc() destroy our window - we'll do it - // ourselves in ~wxWindow - processed = TRUE; - rc.result = TRUE; - break; - - case WM_SHOWWINDOW: - processed = HandleShow(wParam != 0, (int)lParam); - break; - - case WM_MOUSEMOVE: - case WM_LBUTTONDOWN: - case WM_LBUTTONUP: - case WM_LBUTTONDBLCLK: - case WM_RBUTTONDOWN: - case WM_RBUTTONUP: - case WM_RBUTTONDBLCLK: - case WM_MBUTTONDOWN: - case WM_MBUTTONUP: - case WM_MBUTTONDBLCLK: - { - int x = LOWORD(lParam); - int y = HIWORD(lParam); - - processed = HandleMouseEvent(message, x, y, wParam); - } - break; - - case MM_JOY1MOVE: - case MM_JOY2MOVE: - case MM_JOY1ZMOVE: - case MM_JOY2ZMOVE: - case MM_JOY1BUTTONDOWN: - case MM_JOY2BUTTONDOWN: - case MM_JOY1BUTTONUP: - case MM_JOY2BUTTONUP: - { - int x = LOWORD(lParam); - int y = HIWORD(lParam); - - processed = HandleJoystickEvent(message, x, y, wParam); - } - break; - - case WM_SYSCOMMAND: - processed = HandleSysCommand(wParam, lParam); - break; - - case WM_COMMAND: - { - WORD id, cmd; - WXHWND hwnd; - UnpackCommand(wParam, lParam, &id, &hwnd, &cmd); - - processed = HandleCommand(id, cmd, hwnd); - } - break; - -#ifdef __WIN95__ - case WM_NOTIFY: - processed = HandleNotify((int)wParam, lParam, &rc.result); - break; -#endif // Win95 - - // for these messages we must return TRUE if process the message - case WM_DRAWITEM: - case WM_MEASUREITEM: - { - int idCtrl = (UINT)wParam; - if ( message == WM_DRAWITEM ) - { - processed = MSWOnDrawItem(idCtrl, - (WXDRAWITEMSTRUCT *)lParam); - } - else - { - processed = MSWOnMeasureItem(idCtrl, - (WXMEASUREITEMSTRUCT *)lParam); - } - - if ( processed ) - rc.result = TRUE; - } - break; - - case WM_GETDLGCODE: - if ( GetWindowStyleFlag() & wxWANTS_CHARS ) - { - rc.result = DLGC_WANTARROWS | DLGC_WANTCHARS | DLGC_WANTTAB; - processed = TRUE; - } - break; - - case WM_KEYDOWN: - // If this has been processed by an event handler, - // return 0 now (we've handled it). - if ( HandleKeyDown((WORD) wParam, lParam) ) - { - processed = TRUE; - - break; - } - - // we consider these message "not interesting" to OnChar - if ( wParam == VK_SHIFT || wParam == VK_CONTROL ) - { - processed = TRUE; - - break; - } - - switch ( wParam ) - { - // avoid duplicate messages to OnChar for these ASCII keys: they - // will be translated by TranslateMessage() and received in WM_CHAR - case VK_ESCAPE: - case VK_SPACE: - case VK_RETURN: - case VK_BACK: - case VK_TAB: - processed = TRUE; - - break; - -#ifdef VK_APPS - // special case of VK_APPS: treat it the same as right mouse - // click because both usually pop up a context menu - case VK_APPS: - { - // construct the key mask - WPARAM fwKeys = MK_RBUTTON; - if ( (::GetKeyState(VK_CONTROL) & 0x100) != 0 ) - fwKeys |= MK_CONTROL; - if ( (::GetKeyState(VK_SHIFT) & 0x100) != 0 ) - fwKeys |= MK_SHIFT; - - // simulate right mouse button click - DWORD dwPos = ::GetMessagePos(); - int x = GET_X_LPARAM(dwPos), - y = GET_Y_LPARAM(dwPos); - - ScreenToClient(&x, &y); - processed = HandleMouseEvent(WM_RBUTTONDOWN, x, y, fwKeys); - } - break; -#endif // VK_APPS - - case VK_LEFT: - case VK_RIGHT: - case VK_DOWN: - case VK_UP: - default: - processed = HandleChar((WORD)wParam, lParam); - } - break; - - case WM_KEYUP: - processed = HandleKeyUp((WORD) wParam, lParam); - break; - - case WM_CHAR: // Always an ASCII character - processed = HandleChar((WORD)wParam, lParam, TRUE); - break; - - case WM_HSCROLL: - case WM_VSCROLL: - { - WXWORD code, pos; - WXHWND hwnd; - UnpackScroll(wParam, lParam, &code, &pos, &hwnd); - - processed = MSWOnScroll(message == WM_HSCROLL ? wxHORIZONTAL - : wxVERTICAL, - code, pos, hwnd); - } - break; - - // CTLCOLOR messages are sent by children to query the parent for their - // colors -#ifdef __WIN32__ - case WM_CTLCOLORMSGBOX: - case WM_CTLCOLOREDIT: - case WM_CTLCOLORLISTBOX: - case WM_CTLCOLORBTN: - case WM_CTLCOLORDLG: - case WM_CTLCOLORSCROLLBAR: - case WM_CTLCOLORSTATIC: -#else // Win16 - case WM_CTLCOLOR: -#endif // Win32/16 - { - WXWORD nCtlColor; - WXHDC hdc; - WXHWND hwnd; - UnpackCtlColor(wParam, lParam, &nCtlColor, &hdc, &hwnd); - - processed = HandleCtlColor(&rc.hBrush, - (WXHDC)hdc, - (WXHWND)hwnd, - nCtlColor, - message, - wParam, - lParam); - } - break; - - // the return value for this message is ignored - case WM_SYSCOLORCHANGE: - processed = HandleSysColorChange(); - break; - - case WM_PALETTECHANGED: - processed = HandlePaletteChanged((WXHWND) (HWND) wParam); - break; - - case WM_QUERYNEWPALETTE: - processed = HandleQueryNewPalette(); - break; - - case WM_ERASEBKGND: - processed = HandleEraseBkgnd((WXHDC)(HDC)wParam); - if ( processed ) - { - // we processed the message, i.e. erased the background - rc.result = TRUE; - } - break; - - case WM_DROPFILES: - processed = HandleDropFiles(wParam); - break; - - case WM_INITDIALOG: - processed = HandleInitDialog((WXHWND)(HWND)wParam); - - if ( processed ) - { - // we never set focus from here - rc.result = FALSE; - } - break; - - case WM_QUERYENDSESSION: - processed = HandleQueryEndSession(lParam, &rc.allow); - break; - - case WM_ENDSESSION: - processed = HandleEndSession(wParam != 0, lParam); - break; - - case WM_GETMINMAXINFO: - processed = HandleGetMinMaxInfo((MINMAXINFO*)lParam); - break; - - case WM_SETCURSOR: - processed = HandleSetCursor((WXHWND)(HWND)wParam, - LOWORD(lParam), // hit test - HIWORD(lParam)); // mouse msg - - if ( processed ) - { - // returning TRUE stops the DefWindowProc() from further - // processing this message - exactly what we need because we've - // just set the cursor. - rc.result = TRUE; - } - break; - } - - if ( !processed ) - { -#ifdef __WXDEBUG__ - wxLogTrace(wxTraceMessages, "Forwarding %s to DefWindowProc.", - wxGetMessageName(message)); -#endif // __WXDEBUG__ - rc.result = MSWDefWindowProc(message, wParam, lParam); - } - - return rc.result; -} - -// Dialog window proc -LONG APIENTRY _EXPORT -wxDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) -{ - if ( message == WM_INITDIALOG ) - { - // for this message, returning TRUE tells system to set focus to the - // first control in the dialog box - return TRUE; - } - else - { - // for all the other ones, FALSE means that we didn't process the - // message - return 0; - } -} - -wxList *wxWinHandleList = NULL; -wxWindow *wxFindWinFromHandle(WXHWND hWnd) -{ - wxNode *node = wxWinHandleList->Find((long)hWnd); - if ( !node ) - return NULL; - return (wxWindow *)node->Data(); -} - -void wxAssociateWinWithHandle(HWND hWnd, wxWindow *win) -{ - // adding NULL hWnd is (first) surely a result of an error and - // (secondly) breaks menu command processing - wxCHECK_RET( hWnd != (HWND)NULL, - "attempt to add a NULL hWnd to window list ignored" ); - - if ( !wxWinHandleList->Find((long)hWnd) ) - wxWinHandleList->Append((long)hWnd, win); -} - -void wxRemoveHandleAssociation(wxWindow *win) -{ - wxWinHandleList->DeleteObject(win); -} - -// Default destroyer - override if you destroy it in some other way -// (e.g. with MDI child windows) -void wxWindow::MSWDestroyWindow() -{ -} - -void wxWindow::MSWDetachWindowMenu() -{ - if ( m_hMenu ) - { - HMENU hMenu = (HMENU)m_hMenu; - - int N = ::GetMenuItemCount(hMenu); - int i; - for (i = 0; i < N; i++) - { - char buf[100]; - int chars = GetMenuString(hMenu, i, buf, 100, MF_BYPOSITION); - if ( !chars ) - { - wxLogLastError("GetMenuString"); - - continue; - } - - if ( strcmp(buf, "&Window") == 0 ) - { - RemoveMenu(hMenu, i, MF_BYPOSITION); - - break; - } - } - } -} - -bool wxWindow::MSWCreate(int id, - wxWindow *parent, - const char *wclass, - wxWindow *wx_win, - const char *title, - int x, - int y, - int width, - int height, - WXDWORD style, - const char *dialog_template, - WXDWORD extendedStyle) -{ - int x1 = CW_USEDEFAULT; - int y1 = 0; - int width1 = CW_USEDEFAULT; - int height1 = 100; - - // Find parent's size, if it exists, to set up a possible default - // panel size the size of the parent window - RECT parent_rect; - if ( parent ) - { - ::GetClientRect((HWND) parent->GetHWND(), &parent_rect); - - width1 = parent_rect.right - parent_rect.left; - height1 = parent_rect.bottom - parent_rect.top; - } - - if ( x > -1 ) x1 = x; - if ( y > -1 ) y1 = y; - if ( width > -1 ) width1 = width; - if ( height > -1 ) height1 = height; - -#ifdef __WXWINE__ - HWND hParent = (HWND)NULL; -#else - HWND hParent = NULL; -#endif - if ( parent ) - hParent = (HWND) parent->GetHWND(); - - wxWndHook = this; - - if ( dialog_template ) - { - m_hWnd = (WXHWND)::CreateDialog(wxGetInstance(), - dialog_template, - hParent, - (DLGPROC)wxDlgProc); - - if ( m_hWnd == 0 ) - { - wxLogError(_("Can't find dummy dialog template!\n" - "Check resource include path for finding wx.rc.")); - - return FALSE; - } - - // ::SetWindowLong(GWL_EXSTYLE) doesn't work for the dialogs, so try - // to take care of (at least some) extended style flags ourselves - if ( extendedStyle & WS_EX_TOPMOST ) - { - if ( !::SetWindowPos(GetHwnd(), HWND_TOPMOST, 0, 0, 0, 0, - SWP_NOSIZE | SWP_NOMOVE) ) - { - wxLogLastError("SetWindowPos"); - } - } - - // move the dialog to its initial position without forcing repainting - if ( !::MoveWindow(GetHwnd(), x1, y1, width1, height1, FALSE) ) - { - wxLogLastError("MoveWindow"); - } - } - else - { - int controlId = 0; - if ( style & WS_CHILD ) - controlId = id; - - m_hWnd = (WXHWND)CreateWindowEx(extendedStyle, - wclass, - title ? title : "", - style, - x1, y1, - width1, height1, - hParent, (HMENU)controlId, - wxGetInstance(), - NULL); - - if ( !m_hWnd ) - { - wxLogError(_("Can't create window of class %s!\n" - "Possible Windows 3.x compatibility problem?"), - wclass); - - return FALSE; - } - } - - wxWndHook = NULL; - wxWinHandleList->Append((long)m_hWnd, this); - - return TRUE; -} - -// =========================================================================== -// MSW message handlers -// =========================================================================== - -// --------------------------------------------------------------------------- -// WM_NOTIFY -// --------------------------------------------------------------------------- - -#ifdef __WIN95__ -// FIXME: VZ: I'm not sure at all that the order of processing is correct -bool wxWindow::HandleNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result) -{ - LPNMHDR hdr = (LPNMHDR)lParam; - HWND hWnd = hdr->hwndFrom; - wxWindow *win = wxFindWinFromHandle((WXHWND)hWnd); - - // is this one of our windows? - if ( win ) - { - return win->MSWOnNotify(idCtrl, lParam, result); - } - - // try all our children - wxWindowList::Node *node = GetChildren().GetFirst(); - while ( node ) - { - wxWindow *child = node->GetData(); - if ( child->MSWOnNotify(idCtrl, lParam, result) ) - { - return TRUE; - - break; - } - - node = node->GetNext(); - } - - // finally try this window too (catches toolbar case) - return MSWOnNotify(idCtrl, lParam, result); -} - -bool wxWindow::MSWOnNotify(int WXUNUSED(idCtrl), - WXLPARAM lParam, - WXLPARAM* WXUNUSED(result)) -{ -#if wxUSE_TOOLTIPS - NMHDR* hdr = (NMHDR *)lParam; - if ( hdr->code == TTN_NEEDTEXT && m_tooltip ) - { - TOOLTIPTEXT *ttt = (TOOLTIPTEXT *)lParam; - ttt->lpszText = (char *)m_tooltip->GetTip().c_str(); - - // processed - return TRUE; - } -#endif // wxUSE_TOOLTIPS - - return FALSE; -} -#endif // __WIN95__ - -// --------------------------------------------------------------------------- -// end session messages -// --------------------------------------------------------------------------- - -bool wxWindow::HandleQueryEndSession(long logOff, bool *mayEnd) -{ - wxCloseEvent event(wxEVT_QUERY_END_SESSION, -1); - event.SetEventObject(wxTheApp); - event.SetCanVeto(TRUE); - event.SetLoggingOff(logOff == ENDSESSION_LOGOFF); - - bool rc = wxTheApp->ProcessEvent(event); - - if ( rc ) - { - // we may end only if the app didn't veto session closing (double - // negation...) - *mayEnd = !event.GetVeto(); - } - - return rc; -} - -bool wxWindow::HandleEndSession(bool endSession, long logOff) -{ - // do nothing if the session isn't ending - if ( !endSession ) - return FALSE; - - wxCloseEvent event(wxEVT_END_SESSION, -1); - event.SetEventObject(wxTheApp); - event.SetCanVeto(FALSE); - event.SetLoggingOff( (logOff == ENDSESSION_LOGOFF) ); - if ( (this == wxTheApp->GetTopWindow()) && // Only send once - wxTheApp->ProcessEvent(event)) - { - } - return TRUE; -} - -// --------------------------------------------------------------------------- -// window creation/destruction -// --------------------------------------------------------------------------- - -bool wxWindow::HandleCreate(WXLPCREATESTRUCT cs, bool *mayCreate) -{ - // TODO: should generate this event from WM_NCCREATE - wxWindowCreateEvent event(this); - (void)GetEventHandler()->ProcessEvent(event); - - *mayCreate = TRUE; - - return TRUE; -} - -bool wxWindow::HandleDestroy() -{ - wxWindowDestroyEvent event(this); - (void)GetEventHandler()->ProcessEvent(event); - - // delete our drop target if we've got one -#if wxUSE_DRAG_AND_DROP - if ( m_dropTarget != NULL ) - { - m_dropTarget->Revoke(m_hWnd); - - delete m_dropTarget; - m_dropTarget = NULL; - } -#endif // wxUSE_DRAG_AND_DROP - - // WM_DESTROY handled - return TRUE; -} - -// --------------------------------------------------------------------------- -// activation/focus -// --------------------------------------------------------------------------- - -bool wxWindow::HandleActivate(int state, - bool WXUNUSED(minimized), - WXHWND WXUNUSED(activate)) -{ - wxActivateEvent event(wxEVT_ACTIVATE, - (state == WA_ACTIVE) || (state == WA_CLICKACTIVE), - m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleSetFocus(WXHWND WXUNUSED(hwnd)) -{ -#if wxUSE_CARET - // Deal with caret - if ( m_caret ) - { - m_caret->OnSetFocus(); - } -#endif // wxUSE_CARET - - // panel wants to track the window which was the last to have focus in it - wxWindow *parent = GetParent(); - if ( parent && parent->IsKindOf(CLASSINFO(wxPanel)) ) - { - ((wxPanel *)parent)->SetLastFocus(GetId()); - } - - wxFocusEvent event(wxEVT_SET_FOCUS, m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleKillFocus(WXHWND WXUNUSED(hwnd)) -{ -#if wxUSE_CARET - // Deal with caret - if ( m_caret ) - { - m_caret->OnKillFocus(); - } -#endif // wxUSE_CARET - - wxFocusEvent event(wxEVT_KILL_FOCUS, m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -// --------------------------------------------------------------------------- -// miscellaneous -// --------------------------------------------------------------------------- - -bool wxWindow::HandleShow(bool show, int status) -{ - wxShowEvent event(GetId(), show); - event.m_eventObject = this; - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleInitDialog(WXHWND WXUNUSED(hWndFocus)) -{ - wxInitDialogEvent event(GetId()); - event.m_eventObject = this; - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleDropFiles(WXWPARAM wParam) -{ - HDROP hFilesInfo = (HDROP) wParam; - POINT dropPoint; - DragQueryPoint(hFilesInfo, (LPPOINT) &dropPoint); - - // Get the total number of files dropped - WORD gwFilesDropped = (WORD)DragQueryFile ((HDROP)hFilesInfo, - (UINT)-1, - (LPSTR)0, - (UINT)0); - - wxString *files = new wxString[gwFilesDropped]; - int wIndex; - for (wIndex=0; wIndex < (int)gwFilesDropped; wIndex++) - { - DragQueryFile (hFilesInfo, wIndex, (LPSTR) wxBuffer, 1000); - files[wIndex] = wxBuffer; - } - DragFinish (hFilesInfo); - - wxDropFilesEvent event(wxEVT_DROP_FILES, gwFilesDropped, files); - event.m_eventObject = this; - event.m_pos.x = dropPoint.x; event.m_pos.x = dropPoint.y; - - bool rc = GetEventHandler()->ProcessEvent(event); - - delete[] files; - - return rc; -} - -bool wxWindow::HandleSetCursor(WXHWND hWnd, - short nHitTest, - int WXUNUSED(mouseMsg)) -{ - // don't set cursor for other windows, only for this one: this prevents - // children of this window from getting the same cursor as the parent has - // (don't forget that this message is propagated by default up the window - // parent-child hierarchy) - if ( GetHWND() == hWnd ) - { - // don't set cursor when the mouse is not in the client part - if ( nHitTest == HTCLIENT || nHitTest == HTERROR ) - { - HCURSOR hcursor = 0; - if ( wxIsBusy() ) - { - // from msw\utils.cpp - extern HCURSOR gs_wxBusyCursor; - - hcursor = gs_wxBusyCursor; - } - else - { - wxCursor *cursor = NULL; - - if ( m_cursor.Ok() ) - { - cursor = &m_cursor; - } - else - { - // from msw\data.cpp - extern wxCursor *g_globalCursor; - - if ( g_globalCursor && g_globalCursor->Ok() ) - cursor = g_globalCursor; - } - - if ( cursor ) - hcursor = (HCURSOR)cursor->GetHCURSOR(); - } - - if ( hcursor ) - { - ::SetCursor(hcursor); - - return TRUE; - } - } - } - - return FALSE; -} - -// --------------------------------------------------------------------------- -// owner drawn stuff -// --------------------------------------------------------------------------- - -bool wxWindow::MSWOnDrawItem(int id, WXDRAWITEMSTRUCT *itemStruct) -{ -#if wxUSE_OWNER_DRAWN - // is it a menu item? - if ( id == 0 ) - { - DRAWITEMSTRUCT *pDrawStruct = (DRAWITEMSTRUCT *)itemStruct; - wxMenuItem *pMenuItem = (wxMenuItem *)(pDrawStruct->itemData); - - wxCHECK( pMenuItem->IsKindOf(CLASSINFO(wxMenuItem)), FALSE ); - - // prepare to call OnDrawItem() - wxDC dc; - dc.SetHDC((WXHDC)pDrawStruct->hDC, FALSE); - wxRect rect(pDrawStruct->rcItem.left, pDrawStruct->rcItem.top, - pDrawStruct->rcItem.right - pDrawStruct->rcItem.left, - pDrawStruct->rcItem.bottom - pDrawStruct->rcItem.top); - - return pMenuItem->OnDrawItem - ( - dc, rect, - (wxOwnerDrawn::wxODAction)pDrawStruct->itemAction, - (wxOwnerDrawn::wxODStatus)pDrawStruct->itemState - ); - } - - wxWindow *item = FindItem(id); - if ( item && item->IsKindOf(CLASSINFO(wxControl)) ) - { - return ((wxControl *)item)->MSWOnDraw(itemStruct); - } - else -#endif - return FALSE; - -} - -bool wxWindow::MSWOnMeasureItem(int id, WXMEASUREITEMSTRUCT *itemStruct) -{ -#if wxUSE_OWNER_DRAWN - // is it a menu item? - if ( id == 0 ) - { - MEASUREITEMSTRUCT *pMeasureStruct = (MEASUREITEMSTRUCT *)itemStruct; - wxMenuItem *pMenuItem = (wxMenuItem *)(pMeasureStruct->itemData); - - wxCHECK( pMenuItem->IsKindOf(CLASSINFO(wxMenuItem)), FALSE ); - - return pMenuItem->OnMeasureItem(&pMeasureStruct->itemWidth, - &pMeasureStruct->itemHeight); - } - - wxWindow *item = FindItem(id); - if ( item && item->IsKindOf(CLASSINFO(wxControl)) ) - { - return ((wxControl *)item)->MSWOnMeasure(itemStruct); - } -#endif // owner-drawn menus - return FALSE; -} - -// --------------------------------------------------------------------------- -// colours and palettes -// --------------------------------------------------------------------------- - -bool wxWindow::HandleSysColorChange() -{ - wxSysColourChangedEvent event; - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleCtlColor(WXHBRUSH *brush, - WXHDC pDC, - WXHWND pWnd, - WXUINT nCtlColor, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam) -{ - WXHBRUSH hBrush = 0; - - if ( nCtlColor == CTLCOLOR_DLG ) - { - hBrush = OnCtlColor(pDC, pWnd, nCtlColor, message, wParam, lParam); - } - else - { - wxControl *item = (wxControl *)FindItemByHWND(pWnd, TRUE); - if ( item ) - hBrush = item->OnCtlColor(pDC, pWnd, nCtlColor, message, wParam, lParam); - } - - if ( hBrush ) - *brush = hBrush; - - return hBrush != 0; -} - -// Define for each class of dialog and control -WXHBRUSH wxWindow::OnCtlColor(WXHDC hDC, - WXHWND hWnd, - WXUINT nCtlColor, - WXUINT message, - WXWPARAM wParam, - WXLPARAM lParam) -{ - return (WXHBRUSH)0; -} - -bool wxWindow::HandlePaletteChanged(WXHWND hWndPalChange) -{ - wxPaletteChangedEvent event(GetId()); - event.SetEventObject(this); - event.SetChangedWindow(wxFindWinFromHandle(hWndPalChange)); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleQueryNewPalette() -{ - wxQueryNewPaletteEvent event(GetId()); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event) && event.GetPaletteRealized(); -} - -// Responds to colour changes: passes event on to children. -void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = (wxWindow *)node->Data(); - if ( win->GetParent() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->Next(); - } -} - -// --------------------------------------------------------------------------- -// painting -// --------------------------------------------------------------------------- - -bool wxWindow::HandlePaint() -{ -#ifdef __WIN32__ - HRGN hRegion = ::CreateRectRgn(0, 0, 0, 0); // Dummy call to get a handle - if ( !hRegion ) - wxLogLastError("CreateRectRgn"); - if ( ::GetUpdateRgn(GetHwnd(), hRegion, FALSE) == ERROR ) - wxLogLastError("GetUpdateRgn"); - - m_updateRegion = wxRegion((WXHRGN) hRegion); -#else - RECT updateRect; - ::GetUpdateRect(GetHwnd(), & updateRect, FALSE); - - m_updateRegion = wxRegion(updateRect.left, updateRect.top, - updateRect.right - updateRect.left, - updateRect.bottom - updateRect.top); -#endif - - wxPaintEvent event(m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleEraseBkgnd(WXHDC hdc) -{ - // Prevents flicker when dragging - if ( ::IsIconic(GetHwnd()) ) - return TRUE; - - wxDC dc; - - dc.SetHDC(hdc); - dc.SetWindow(this); - dc.BeginDrawing(); - - wxEraseEvent event(m_windowId, &dc); - event.SetEventObject(this); - bool rc = GetEventHandler()->ProcessEvent(event); - - dc.EndDrawing(); - dc.SelectOldObjects(hdc); - dc.SetHDC((WXHDC) NULL); - - return rc; -} - -void wxWindow::OnEraseBackground(wxEraseEvent& event) -{ - RECT rect; - ::GetClientRect(GetHwnd(), &rect); - - COLORREF ref = PALETTERGB(m_backgroundColour.Red(), - m_backgroundColour.Green(), - m_backgroundColour.Blue()); - HBRUSH hBrush = ::CreateSolidBrush(ref); - if ( !hBrush ) - wxLogLastError("CreateSolidBrush"); - - HDC hdc = (HDC)event.GetDC()->GetHDC(); - - int mode = ::SetMapMode(hdc, MM_TEXT); - - ::FillRect(hdc, &rect, hBrush); - ::DeleteObject(hBrush); - ::SetMapMode(hdc, mode); -} - -// --------------------------------------------------------------------------- -// moving and resizing -// --------------------------------------------------------------------------- - -bool wxWindow::HandleMinimize() -{ - wxIconizeEvent event(m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleMaximize() -{ - wxMaximizeEvent event(m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleMove(int x, int y) -{ - wxMoveEvent event(wxPoint(x, y), m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleSize(int w, int h, WXUINT WXUNUSED(flag)) -{ - wxSizeEvent event(wxSize(w, h), m_windowId); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleGetMinMaxInfo(void *mmInfo) -{ - MINMAXINFO *info = (MINMAXINFO *)mmInfo; - - bool rc = FALSE; - - if ( m_minWidth != -1 ) - { - info->ptMinTrackSize.x = m_minWidth; - rc = TRUE; - } - - if ( m_minHeight != -1 ) - { - info->ptMinTrackSize.y = m_minHeight; - rc = TRUE; - } - - if ( m_maxWidth != -1 ) - { - info->ptMaxTrackSize.x = m_maxWidth; - rc = TRUE; - } - - if ( m_maxHeight != -1 ) - { - info->ptMaxTrackSize.y = m_maxHeight; - rc = TRUE; - } - - return rc; -} - -// --------------------------------------------------------------------------- -// command messages -// --------------------------------------------------------------------------- - -bool wxWindow::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control) -{ - if ( wxCurrentPopupMenu ) - { - wxMenu *popupMenu = wxCurrentPopupMenu; - wxCurrentPopupMenu = NULL; - - return popupMenu->MSWCommand(cmd, id); - } - - wxWindow *win = FindItem(id); - if ( !win ) - { - win = wxFindWinFromHandle(control); - } - - if ( win ) - return win->MSWCommand(cmd, id); - - return FALSE; -} - -bool wxWindow::HandleSysCommand(WXWPARAM wParam, WXLPARAM lParam) -{ - // 4 bits are reserved - switch ( wParam & 0xFFFFFFF0 ) - { - case SC_MAXIMIZE: - return HandleMaximize(); - - case SC_MINIMIZE: - return HandleMinimize(); - } - - return FALSE; -} - -// --------------------------------------------------------------------------- -// mouse events -// --------------------------------------------------------------------------- - -void wxWindow::InitMouseEvent(wxMouseEvent& event, int x, int y, WXUINT flags) -{ - event.m_x = x; - event.m_y = y; - event.m_shiftDown = ((flags & MK_SHIFT) != 0); - event.m_controlDown = ((flags & MK_CONTROL) != 0); - event.m_leftDown = ((flags & MK_LBUTTON) != 0); - event.m_middleDown = ((flags & MK_MBUTTON) != 0); - event.m_rightDown = ((flags & MK_RBUTTON) != 0); - event.SetTimestamp(s_currentMsg.time); - event.m_eventObject = this; - -#if wxUSE_MOUSEEVENT_HACK - m_lastMouseX = x; - m_lastMouseY = y; - m_lastMouseEvent = event.GetEventType(); -#endif // wxUSE_MOUSEEVENT_HACK - -} - -bool wxWindow::HandleMouseEvent(WXUINT msg, int x, int y, WXUINT flags) -{ - // the mouse events take consecutive IDs from WM_MOUSEFIRST to - // WM_MOUSELAST, so it's enough to substract WM_MOUSEMOVE == WM_MOUSEFIRST - // from the message id and take the value in the table to get wxWin event - // id - static const wxEventType eventsMouse[] = - { - wxEVT_MOTION, - wxEVT_LEFT_DOWN, - wxEVT_LEFT_UP, - wxEVT_LEFT_DCLICK, - wxEVT_RIGHT_DOWN, - wxEVT_RIGHT_UP, - wxEVT_RIGHT_DCLICK, - wxEVT_MIDDLE_DOWN, - wxEVT_MIDDLE_UP, - wxEVT_MIDDLE_DCLICK - }; - - wxMouseEvent event(eventsMouse[msg - WM_MOUSEMOVE]); - InitMouseEvent(event, x, y, flags); - - return GetEventHandler()->ProcessEvent(event); -} - -bool wxWindow::HandleMouseMove(int x, int y, WXUINT flags) -{ - if ( !m_mouseInWindow ) - { - // Generate an ENTER event - m_mouseInWindow = TRUE; - - wxMouseEvent event(wxEVT_ENTER_WINDOW); - InitMouseEvent(event, x, y, flags); - - (void)GetEventHandler()->ProcessEvent(event); - } - -#if wxUSE_MOUSEEVENT_HACK - // Window gets a click down message followed by a mouse move message even - // if position isn't changed! We want to discard the trailing move event - // if x and y are the same. - if ( (m_lastMouseEvent == wxEVT_RIGHT_DOWN || - m_lastMouseEvent == wxEVT_LEFT_DOWN || - m_lastMouseEvent == wxEVT_MIDDLE_DOWN) && - (m_lastMouseX == event.m_x && m_lastMouseY == event.m_y) ) - { - m_lastMouseEvent = wxEVT_MOTION; - - return FALSE; - } -#endif // wxUSE_MOUSEEVENT_HACK - - return HandleMouseEvent(WM_MOUSEMOVE, x, y, flags); -} - -// --------------------------------------------------------------------------- -// keyboard handling -// --------------------------------------------------------------------------- - -// isASCII is TRUE only when we're called from WM_CHAR handler and not from -// WM_KEYDOWN one -bool wxWindow::HandleChar(WXWORD wParam, WXLPARAM lParam, bool isASCII) -{ - int id; - bool tempControlDown = FALSE; - if ( isASCII ) - { - // If 1 -> 26, translate to CTRL plus a letter. - id = wParam; - if ( (id > 0) && (id < 27) ) - { - switch (id) - { - case 13: - { - id = WXK_RETURN; - break; - } - case 8: - { - id = WXK_BACK; - break; - } - case 9: - { - id = WXK_TAB; - break; - } - default: - { - tempControlDown = TRUE; - id = id + 96; - } - } - } - } - else if ( (id = wxCharCodeMSWToWX(wParam)) == 0 ) { - // it's ASCII and will be processed here only when called from - // WM_CHAR (i.e. when isASCII = TRUE) - id = -1; - } - - if ( id != -1 ) - { - wxKeyEvent event(wxEVT_CHAR); - event.m_shiftDown = (::GetKeyState(VK_SHIFT)&0x100?TRUE:FALSE); - event.m_controlDown = (::GetKeyState(VK_CONTROL)&0x100?TRUE:FALSE); - if ( (HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN ) - event.m_altDown = TRUE; - - event.m_eventObject = this; - event.m_keyCode = id; - event.SetTimestamp(s_currentMsg.time); - - POINT pt; - GetCursorPos(&pt); - RECT rect; - GetWindowRect(GetHwnd(),&rect); - pt.x -= rect.left; - pt.y -= rect.top; - - event.m_x = pt.x; event.m_y = pt.y; - - if ( GetEventHandler()->ProcessEvent(event) ) - return TRUE; - else - return FALSE; - } - else - return FALSE; -} - -bool wxWindow::HandleKeyDown(WXWORD wParam, WXLPARAM lParam) -{ - int id; - - if ( (id = wxCharCodeMSWToWX(wParam)) == 0 ) { - id = wParam; - } - - if ( id != -1 ) - { - wxKeyEvent event(wxEVT_KEY_DOWN); - event.m_shiftDown = (::GetKeyState(VK_SHIFT)&0x100?TRUE:FALSE); - event.m_controlDown = (::GetKeyState(VK_CONTROL)&0x100?TRUE:FALSE); - if ( (HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN ) - event.m_altDown = TRUE; - - event.m_eventObject = this; - event.m_keyCode = id; - event.SetTimestamp(s_currentMsg.time); - - POINT pt; - GetCursorPos(&pt); - RECT rect; - GetWindowRect(GetHwnd(),&rect); - pt.x -= rect.left; - pt.y -= rect.top; - - event.m_x = pt.x; event.m_y = pt.y; - - if ( GetEventHandler()->ProcessEvent(event) ) - { - return TRUE; - } - else return FALSE; - } - else - { - return FALSE; - } -} - -bool wxWindow::HandleKeyUp(WXWORD wParam, WXLPARAM lParam) -{ - int id; - - if ( (id = wxCharCodeMSWToWX(wParam)) == 0 ) { - id = wParam; - } - - if ( id != -1 ) - { - wxKeyEvent event(wxEVT_KEY_UP); - event.m_shiftDown = (::GetKeyState(VK_SHIFT)&0x100?TRUE:FALSE); - event.m_controlDown = (::GetKeyState(VK_CONTROL)&0x100?TRUE:FALSE); - if ( (HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN ) - event.m_altDown = TRUE; - - event.m_eventObject = this; - event.m_keyCode = id; - event.SetTimestamp(s_currentMsg.time); - - POINT pt; - GetCursorPos(&pt); - RECT rect; - GetWindowRect(GetHwnd(),&rect); - pt.x -= rect.left; - pt.y -= rect.top; - - event.m_x = pt.x; event.m_y = pt.y; - - if ( GetEventHandler()->ProcessEvent(event) ) - return TRUE; - else - return FALSE; - } - else - return FALSE; -} - -// --------------------------------------------------------------------------- -// joystick -// --------------------------------------------------------------------------- - -bool wxWindow::HandleJoystickEvent(WXUINT msg, int x, int y, WXUINT flags) -{ - int change = 0; - if ( flags & JOY_BUTTON1CHG ) - change = wxJOY_BUTTON1; - if ( flags & JOY_BUTTON2CHG ) - change = wxJOY_BUTTON2; - if ( flags & JOY_BUTTON3CHG ) - change = wxJOY_BUTTON3; - if ( flags & JOY_BUTTON4CHG ) - change = wxJOY_BUTTON4; - - int buttons = 0; - if ( flags & JOY_BUTTON1 ) - buttons |= wxJOY_BUTTON1; - if ( flags & JOY_BUTTON2 ) - buttons |= wxJOY_BUTTON2; - if ( flags & JOY_BUTTON3 ) - buttons |= wxJOY_BUTTON3; - if ( flags & JOY_BUTTON4 ) - buttons |= wxJOY_BUTTON4; - - // the event ids aren't consecutive so we can't use table based lookup - int joystick; - wxEventType eventType; - switch ( msg ) - { - case MM_JOY1MOVE: - joystick = 1; - eventType = wxEVT_JOY_MOVE; - break; - - case MM_JOY2MOVE: - joystick = 2; - eventType = wxEVT_JOY_MOVE; - break; - - case MM_JOY1ZMOVE: - joystick = 1; - eventType = wxEVT_JOY_ZMOVE; - break; - - case MM_JOY2ZMOVE: - joystick = 2; - eventType = wxEVT_JOY_ZMOVE; - break; - - case MM_JOY1BUTTONDOWN: - joystick = 1; - eventType = wxEVT_JOY_BUTTON_DOWN; - break; - - case MM_JOY2BUTTONDOWN: - joystick = 2; - eventType = wxEVT_JOY_BUTTON_DOWN; - break; - - case MM_JOY1BUTTONUP: - joystick = 1; - eventType = wxEVT_JOY_BUTTON_UP; - break; - - case MM_JOY2BUTTONUP: - joystick = 2; - eventType = wxEVT_JOY_BUTTON_UP; - break; - - default: - wxFAIL_MSG("no such joystick event"); - - return FALSE; - } - - wxJoystickEvent event(eventType, buttons, joystick, change); - event.SetPosition(wxPoint(x, y)); - event.SetEventObject(this); - - return GetEventHandler()->ProcessEvent(event); -} - -// --------------------------------------------------------------------------- -// scrolling -// --------------------------------------------------------------------------- - -bool wxWindow::MSWOnScroll(int orientation, WXWORD wParam, - WXWORD pos, WXHWND control) -{ - if ( control ) - { - wxWindow *child = wxFindWinFromHandle(control); - if ( child ) - return child->MSWOnScroll(orientation, wParam, pos, control); - } - - wxScrollWinEvent event; - event.SetPosition(pos); - event.SetOrientation(orientation); - event.m_eventObject = this; - - switch ( wParam ) - { - case SB_TOP: - event.m_eventType = wxEVT_SCROLLWIN_TOP; - break; - - case SB_BOTTOM: - event.m_eventType = wxEVT_SCROLLWIN_BOTTOM; - break; - - case SB_LINEUP: - event.m_eventType = wxEVT_SCROLLWIN_LINEUP; - break; - - case SB_LINEDOWN: - event.m_eventType = wxEVT_SCROLLWIN_LINEDOWN; - break; - - case SB_PAGEUP: - event.m_eventType = wxEVT_SCROLLWIN_PAGEUP; - break; - - case SB_PAGEDOWN: - event.m_eventType = wxEVT_SCROLLWIN_PAGEDOWN; - break; - - case SB_THUMBTRACK: - case SB_THUMBPOSITION: - event.m_eventType = wxEVT_SCROLLWIN_THUMBTRACK; - break; - - default: - return FALSE; - } - - return GetEventHandler()->ProcessEvent(event); -} - -// =========================================================================== -// global functions -// =========================================================================== - -void wxGetCharSize(WXHWND wnd, int *x, int *y,wxFont *the_font) -{ - TEXTMETRIC tm; - HDC dc = ::GetDC((HWND) wnd); - HFONT fnt =0; - HFONT was = 0; - if ( the_font ) - { - // the_font->UseResource(); - // the_font->RealizeResource(); - fnt = (HFONT)the_font->GetResourceHandle(); - if ( fnt ) - was = (HFONT) SelectObject(dc,fnt); - } - GetTextMetrics(dc, &tm); - if ( the_font && fnt && was ) - { - SelectObject(dc,was); - } - ReleaseDC((HWND)wnd, dc); - *x = tm.tmAveCharWidth; - *y = tm.tmHeight + tm.tmExternalLeading; - - // if ( the_font ) - // the_font->ReleaseResource(); -} - -// Returns 0 if was a normal ASCII value, not a special key. This indicates that -// the key should be ignored by WM_KEYDOWN and processed by WM_CHAR instead. -int wxCharCodeMSWToWX(int keySym) -{ - int id = 0; - switch (keySym) - { - case VK_CANCEL: id = WXK_CANCEL; break; - case VK_BACK: id = WXK_BACK; break; - case VK_TAB: id = WXK_TAB; break; - case VK_CLEAR: id = WXK_CLEAR; break; - case VK_RETURN: id = WXK_RETURN; break; - case VK_SHIFT: id = WXK_SHIFT; break; - case VK_CONTROL: id = WXK_CONTROL; break; - case VK_MENU : id = WXK_MENU; break; - case VK_PAUSE: id = WXK_PAUSE; break; - case VK_SPACE: id = WXK_SPACE; break; - case VK_ESCAPE: id = WXK_ESCAPE; break; - case VK_PRIOR: id = WXK_PRIOR; break; - case VK_NEXT : id = WXK_NEXT; break; - case VK_END: id = WXK_END; break; - case VK_HOME : id = WXK_HOME; break; - case VK_LEFT : id = WXK_LEFT; break; - case VK_UP: id = WXK_UP; break; - case VK_RIGHT: id = WXK_RIGHT; break; - case VK_DOWN : id = WXK_DOWN; break; - case VK_SELECT: id = WXK_SELECT; break; - case VK_PRINT: id = WXK_PRINT; break; - case VK_EXECUTE: id = WXK_EXECUTE; break; - case VK_INSERT: id = WXK_INSERT; break; - case VK_DELETE: id = WXK_DELETE; break; - case VK_HELP : id = WXK_HELP; break; - case VK_NUMPAD0: id = WXK_NUMPAD0; break; - case VK_NUMPAD1: id = WXK_NUMPAD1; break; - case VK_NUMPAD2: id = WXK_NUMPAD2; break; - case VK_NUMPAD3: id = WXK_NUMPAD3; break; - case VK_NUMPAD4: id = WXK_NUMPAD4; break; - case VK_NUMPAD5: id = WXK_NUMPAD5; break; - case VK_NUMPAD6: id = WXK_NUMPAD6; break; - case VK_NUMPAD7: id = WXK_NUMPAD7; break; - case VK_NUMPAD8: id = WXK_NUMPAD8; break; - case VK_NUMPAD9: id = WXK_NUMPAD9; break; - case VK_MULTIPLY: id = WXK_MULTIPLY; break; - case VK_ADD: id = WXK_ADD; break; - case VK_SUBTRACT: id = WXK_SUBTRACT; break; - case VK_DECIMAL: id = WXK_DECIMAL; break; - case VK_DIVIDE: id = WXK_DIVIDE; break; - case VK_F1: id = WXK_F1; break; - case VK_F2: id = WXK_F2; break; - case VK_F3: id = WXK_F3; break; - case VK_F4: id = WXK_F4; break; - case VK_F5: id = WXK_F5; break; - case VK_F6: id = WXK_F6; break; - case VK_F7: id = WXK_F7; break; - case VK_F8: id = WXK_F8; break; - case VK_F9: id = WXK_F9; break; - case VK_F10: id = WXK_F10; break; - case VK_F11: id = WXK_F11; break; - case VK_F12: id = WXK_F12; break; - case VK_F13: id = WXK_F13; break; - case VK_F14: id = WXK_F14; break; - case VK_F15: id = WXK_F15; break; - case VK_F16: id = WXK_F16; break; - case VK_F17: id = WXK_F17; break; - case VK_F18: id = WXK_F18; break; - case VK_F19: id = WXK_F19; break; - case VK_F20: id = WXK_F20; break; - case VK_F21: id = WXK_F21; break; - case VK_F22: id = WXK_F22; break; - case VK_F23: id = WXK_F23; break; - case VK_F24: id = WXK_F24; break; - case VK_NUMLOCK: id = WXK_NUMLOCK; break; - case VK_SCROLL: id = WXK_SCROLL; break; - default: - { - return 0; - } - } - return id; -} - -int wxCharCodeWXToMSW(int id, bool *isVirtual) -{ - *isVirtual = TRUE; - int keySym = 0; - switch (id) - { - case WXK_CANCEL: keySym = VK_CANCEL; break; - case WXK_CLEAR: keySym = VK_CLEAR; break; - case WXK_SHIFT: keySym = VK_SHIFT; break; - case WXK_CONTROL: keySym = VK_CONTROL; break; - case WXK_MENU : keySym = VK_MENU; break; - case WXK_PAUSE: keySym = VK_PAUSE; break; - case WXK_PRIOR: keySym = VK_PRIOR; break; - case WXK_NEXT : keySym = VK_NEXT; break; - case WXK_END: keySym = VK_END; break; - case WXK_HOME : keySym = VK_HOME; break; - case WXK_LEFT : keySym = VK_LEFT; break; - case WXK_UP: keySym = VK_UP; break; - case WXK_RIGHT: keySym = VK_RIGHT; break; - case WXK_DOWN : keySym = VK_DOWN; break; - case WXK_SELECT: keySym = VK_SELECT; break; - case WXK_PRINT: keySym = VK_PRINT; break; - case WXK_EXECUTE: keySym = VK_EXECUTE; break; - case WXK_INSERT: keySym = VK_INSERT; break; - case WXK_DELETE: keySym = VK_DELETE; break; - case WXK_HELP : keySym = VK_HELP; break; - case WXK_NUMPAD0: keySym = VK_NUMPAD0; break; - case WXK_NUMPAD1: keySym = VK_NUMPAD1; break; - case WXK_NUMPAD2: keySym = VK_NUMPAD2; break; - case WXK_NUMPAD3: keySym = VK_NUMPAD3; break; - case WXK_NUMPAD4: keySym = VK_NUMPAD4; break; - case WXK_NUMPAD5: keySym = VK_NUMPAD5; break; - case WXK_NUMPAD6: keySym = VK_NUMPAD6; break; - case WXK_NUMPAD7: keySym = VK_NUMPAD7; break; - case WXK_NUMPAD8: keySym = VK_NUMPAD8; break; - case WXK_NUMPAD9: keySym = VK_NUMPAD9; break; - case WXK_MULTIPLY: keySym = VK_MULTIPLY; break; - case WXK_ADD: keySym = VK_ADD; break; - case WXK_SUBTRACT: keySym = VK_SUBTRACT; break; - case WXK_DECIMAL: keySym = VK_DECIMAL; break; - case WXK_DIVIDE: keySym = VK_DIVIDE; break; - case WXK_F1: keySym = VK_F1; break; - case WXK_F2: keySym = VK_F2; break; - case WXK_F3: keySym = VK_F3; break; - case WXK_F4: keySym = VK_F4; break; - case WXK_F5: keySym = VK_F5; break; - case WXK_F6: keySym = VK_F6; break; - case WXK_F7: keySym = VK_F7; break; - case WXK_F8: keySym = VK_F8; break; - case WXK_F9: keySym = VK_F9; break; - case WXK_F10: keySym = VK_F10; break; - case WXK_F11: keySym = VK_F11; break; - case WXK_F12: keySym = VK_F12; break; - case WXK_F13: keySym = VK_F13; break; - case WXK_F14: keySym = VK_F14; break; - case WXK_F15: keySym = VK_F15; break; - case WXK_F16: keySym = VK_F16; break; - case WXK_F17: keySym = VK_F17; break; - case WXK_F18: keySym = VK_F18; break; - case WXK_F19: keySym = VK_F19; break; - case WXK_F20: keySym = VK_F20; break; - case WXK_F21: keySym = VK_F21; break; - case WXK_F22: keySym = VK_F22; break; - case WXK_F23: keySym = VK_F23; break; - case WXK_F24: keySym = VK_F24; break; - case WXK_NUMLOCK: keySym = VK_NUMLOCK; break; - case WXK_SCROLL: keySym = VK_SCROLL; break; - default: - { - *isVirtual = FALSE; - keySym = id; - break; - } - } - return keySym; -} - -wxWindow *wxGetActiveWindow() -{ - HWND hWnd = GetActiveWindow(); - if ( hWnd != 0 ) - { - return wxFindWinFromHandle((WXHWND) hWnd); - } - return NULL; -} - -// Windows keyboard hook. Allows interception of e.g. F1, ESCAPE -// in active frames and dialogs, regardless of where the focus is. -static HHOOK wxTheKeyboardHook = 0; -static FARPROC wxTheKeyboardHookProc = 0; -int APIENTRY _EXPORT -wxKeyboardHook(int nCode, WORD wParam, DWORD lParam); - -void wxSetKeyboardHook(bool doIt) -{ - if ( doIt ) - { - wxTheKeyboardHookProc = MakeProcInstance((FARPROC) wxKeyboardHook, wxGetInstance()); - wxTheKeyboardHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC) wxTheKeyboardHookProc, wxGetInstance(), -#if defined(__WIN32__) && !defined(__TWIN32__) - GetCurrentThreadId()); - // (DWORD)GetCurrentProcess()); // This is another possibility. Which is right? -#else - GetCurrentTask()); -#endif - } - else - { - UnhookWindowsHookEx(wxTheKeyboardHook); - FreeProcInstance(wxTheKeyboardHookProc); - } -} - -int APIENTRY _EXPORT -wxKeyboardHook(int nCode, WORD wParam, DWORD lParam) -{ - DWORD hiWord = HIWORD(lParam); - if ( nCode != HC_NOREMOVE && ((hiWord & KF_UP) == 0) ) - { - int id; - if ( (id = wxCharCodeMSWToWX(wParam)) != 0 ) - { - wxKeyEvent event(wxEVT_CHAR_HOOK); - if ( (HIWORD(lParam) & KF_ALTDOWN) == KF_ALTDOWN ) - event.m_altDown = TRUE; - - event.m_eventObject = NULL; - event.m_keyCode = id; - /* begin Albert's fix for control and shift key 26.5 */ - event.m_shiftDown = (::GetKeyState(VK_SHIFT)&0x100?TRUE:FALSE); - event.m_controlDown = (::GetKeyState(VK_CONTROL)&0x100?TRUE:FALSE); - /* end Albert's fix for control and shift key 26.5 */ - event.SetTimestamp(s_currentMsg.time); - - wxWindow *win = wxGetActiveWindow(); - if ( win ) - { - if ( win->GetEventHandler()->ProcessEvent(event) ) - return 1; - } - else - { - if ( wxTheApp && wxTheApp->ProcessEvent(event) ) - return 1; - } - } - } - return (int)CallNextHookEx(wxTheKeyboardHook, nCode, wParam, lParam); -} - -#ifdef __WXDEBUG__ -const char *wxGetMessageName(int message) -{ - switch ( message ) - { - case 0x0000: return "WM_NULL"; - case 0x0001: return "WM_CREATE"; - case 0x0002: return "WM_DESTROY"; - case 0x0003: return "WM_MOVE"; - case 0x0005: return "WM_SIZE"; - case 0x0006: return "WM_ACTIVATE"; - case 0x0007: return "WM_SETFOCUS"; - case 0x0008: return "WM_KILLFOCUS"; - case 0x000A: return "WM_ENABLE"; - case 0x000B: return "WM_SETREDRAW"; - case 0x000C: return "WM_SETTEXT"; - case 0x000D: return "WM_GETTEXT"; - case 0x000E: return "WM_GETTEXTLENGTH"; - case 0x000F: return "WM_PAINT"; - case 0x0010: return "WM_CLOSE"; - case 0x0011: return "WM_QUERYENDSESSION"; - case 0x0012: return "WM_QUIT"; - case 0x0013: return "WM_QUERYOPEN"; - case 0x0014: return "WM_ERASEBKGND"; - case 0x0015: return "WM_SYSCOLORCHANGE"; - case 0x0016: return "WM_ENDSESSION"; - case 0x0017: return "WM_SYSTEMERROR"; - case 0x0018: return "WM_SHOWWINDOW"; - case 0x0019: return "WM_CTLCOLOR"; - case 0x001A: return "WM_WININICHANGE"; - case 0x001B: return "WM_DEVMODECHANGE"; - case 0x001C: return "WM_ACTIVATEAPP"; - case 0x001D: return "WM_FONTCHANGE"; - case 0x001E: return "WM_TIMECHANGE"; - case 0x001F: return "WM_CANCELMODE"; - case 0x0020: return "WM_SETCURSOR"; - case 0x0021: return "WM_MOUSEACTIVATE"; - case 0x0022: return "WM_CHILDACTIVATE"; - case 0x0023: return "WM_QUEUESYNC"; - case 0x0024: return "WM_GETMINMAXINFO"; - case 0x0026: return "WM_PAINTICON"; - case 0x0027: return "WM_ICONERASEBKGND"; - case 0x0028: return "WM_NEXTDLGCTL"; - case 0x002A: return "WM_SPOOLERSTATUS"; - case 0x002B: return "WM_DRAWITEM"; - case 0x002C: return "WM_MEASUREITEM"; - case 0x002D: return "WM_DELETEITEM"; - case 0x002E: return "WM_VKEYTOITEM"; - case 0x002F: return "WM_CHARTOITEM"; - case 0x0030: return "WM_SETFONT"; - case 0x0031: return "WM_GETFONT"; - case 0x0037: return "WM_QUERYDRAGICON"; - case 0x0039: return "WM_COMPAREITEM"; - case 0x0041: return "WM_COMPACTING"; - case 0x0044: return "WM_COMMNOTIFY"; - case 0x0046: return "WM_WINDOWPOSCHANGING"; - case 0x0047: return "WM_WINDOWPOSCHANGED"; - case 0x0048: return "WM_POWER"; - -#ifdef __WIN32__ - case 0x004A: return "WM_COPYDATA"; - case 0x004B: return "WM_CANCELJOURNAL"; - case 0x004E: return "WM_NOTIFY"; - case 0x0050: return "WM_INPUTLANGCHANGEREQUEST"; - case 0x0051: return "WM_INPUTLANGCHANGE"; - case 0x0052: return "WM_TCARD"; - case 0x0053: return "WM_HELP"; - case 0x0054: return "WM_USERCHANGED"; - case 0x0055: return "WM_NOTIFYFORMAT"; - case 0x007B: return "WM_CONTEXTMENU"; - case 0x007C: return "WM_STYLECHANGING"; - case 0x007D: return "WM_STYLECHANGED"; - case 0x007E: return "WM_DISPLAYCHANGE"; - case 0x007F: return "WM_GETICON"; - case 0x0080: return "WM_SETICON"; -#endif //WIN32 - - case 0x0081: return "WM_NCCREATE"; - case 0x0082: return "WM_NCDESTROY"; - case 0x0083: return "WM_NCCALCSIZE"; - case 0x0084: return "WM_NCHITTEST"; - case 0x0085: return "WM_NCPAINT"; - case 0x0086: return "WM_NCACTIVATE"; - case 0x0087: return "WM_GETDLGCODE"; - case 0x00A0: return "WM_NCMOUSEMOVE"; - case 0x00A1: return "WM_NCLBUTTONDOWN"; - case 0x00A2: return "WM_NCLBUTTONUP"; - case 0x00A3: return "WM_NCLBUTTONDBLCLK"; - case 0x00A4: return "WM_NCRBUTTONDOWN"; - case 0x00A5: return "WM_NCRBUTTONUP"; - case 0x00A6: return "WM_NCRBUTTONDBLCLK"; - case 0x00A7: return "WM_NCMBUTTONDOWN"; - case 0x00A8: return "WM_NCMBUTTONUP"; - case 0x00A9: return "WM_NCMBUTTONDBLCLK"; - case 0x0100: return "WM_KEYDOWN"; - case 0x0101: return "WM_KEYUP"; - case 0x0102: return "WM_CHAR"; - case 0x0103: return "WM_DEADCHAR"; - case 0x0104: return "WM_SYSKEYDOWN"; - case 0x0105: return "WM_SYSKEYUP"; - case 0x0106: return "WM_SYSCHAR"; - case 0x0107: return "WM_SYSDEADCHAR"; - case 0x0108: return "WM_KEYLAST"; - -#ifdef __WIN32__ - case 0x010D: return "WM_IME_STARTCOMPOSITION"; - case 0x010E: return "WM_IME_ENDCOMPOSITION"; - case 0x010F: return "WM_IME_COMPOSITION"; -#endif //WIN32 - - case 0x0110: return "WM_INITDIALOG"; - case 0x0111: return "WM_COMMAND"; - case 0x0112: return "WM_SYSCOMMAND"; - case 0x0113: return "WM_TIMER"; - case 0x0114: return "WM_HSCROLL"; - case 0x0115: return "WM_VSCROLL"; - case 0x0116: return "WM_INITMENU"; - case 0x0117: return "WM_INITMENUPOPUP"; - case 0x011F: return "WM_MENUSELECT"; - case 0x0120: return "WM_MENUCHAR"; - case 0x0121: return "WM_ENTERIDLE"; - case 0x0200: return "WM_MOUSEMOVE"; - case 0x0201: return "WM_LBUTTONDOWN"; - case 0x0202: return "WM_LBUTTONUP"; - case 0x0203: return "WM_LBUTTONDBLCLK"; - case 0x0204: return "WM_RBUTTONDOWN"; - case 0x0205: return "WM_RBUTTONUP"; - case 0x0206: return "WM_RBUTTONDBLCLK"; - case 0x0207: return "WM_MBUTTONDOWN"; - case 0x0208: return "WM_MBUTTONUP"; - case 0x0209: return "WM_MBUTTONDBLCLK"; - case 0x0210: return "WM_PARENTNOTIFY"; - case 0x0211: return "WM_ENTERMENULOOP"; - case 0x0212: return "WM_EXITMENULOOP"; - -#ifdef __WIN32__ - case 0x0213: return "WM_NEXTMENU"; - case 0x0214: return "WM_SIZING"; - case 0x0215: return "WM_CAPTURECHANGED"; - case 0x0216: return "WM_MOVING"; - case 0x0218: return "WM_POWERBROADCAST"; - case 0x0219: return "WM_DEVICECHANGE"; -#endif //WIN32 - - case 0x0220: return "WM_MDICREATE"; - case 0x0221: return "WM_MDIDESTROY"; - case 0x0222: return "WM_MDIACTIVATE"; - case 0x0223: return "WM_MDIRESTORE"; - case 0x0224: return "WM_MDINEXT"; - case 0x0225: return "WM_MDIMAXIMIZE"; - case 0x0226: return "WM_MDITILE"; - case 0x0227: return "WM_MDICASCADE"; - case 0x0228: return "WM_MDIICONARRANGE"; - case 0x0229: return "WM_MDIGETACTIVE"; - case 0x0230: return "WM_MDISETMENU"; - case 0x0233: return "WM_DROPFILES"; - -#ifdef __WIN32__ - case 0x0281: return "WM_IME_SETCONTEXT"; - case 0x0282: return "WM_IME_NOTIFY"; - case 0x0283: return "WM_IME_CONTROL"; - case 0x0284: return "WM_IME_COMPOSITIONFULL"; - case 0x0285: return "WM_IME_SELECT"; - case 0x0286: return "WM_IME_CHAR"; - case 0x0290: return "WM_IME_KEYDOWN"; - case 0x0291: return "WM_IME_KEYUP"; -#endif //WIN32 - - case 0x0300: return "WM_CUT"; - case 0x0301: return "WM_COPY"; - case 0x0302: return "WM_PASTE"; - case 0x0303: return "WM_CLEAR"; - case 0x0304: return "WM_UNDO"; - case 0x0305: return "WM_RENDERFORMAT"; - case 0x0306: return "WM_RENDERALLFORMATS"; - case 0x0307: return "WM_DESTROYCLIPBOARD"; - case 0x0308: return "WM_DRAWCLIPBOARD"; - case 0x0309: return "WM_PAINTCLIPBOARD"; - case 0x030A: return "WM_VSCROLLCLIPBOARD"; - case 0x030B: return "WM_SIZECLIPBOARD"; - case 0x030C: return "WM_ASKCBFORMATNAME"; - case 0x030D: return "WM_CHANGECBCHAIN"; - case 0x030E: return "WM_HSCROLLCLIPBOARD"; - case 0x030F: return "WM_QUERYNEWPALETTE"; - case 0x0310: return "WM_PALETTEISCHANGING"; - case 0x0311: return "WM_PALETTECHANGED"; - -#ifdef __WIN32__ - // common controls messages - although they're not strictly speaking - // standard, it's nice to decode them nevertheless - - // listview - case 0x1000 + 0: return "LVM_GETBKCOLOR"; - case 0x1000 + 1: return "LVM_SETBKCOLOR"; - case 0x1000 + 2: return "LVM_GETIMAGELIST"; - case 0x1000 + 3: return "LVM_SETIMAGELIST"; - case 0x1000 + 4: return "LVM_GETITEMCOUNT"; - case 0x1000 + 5: return "LVM_GETITEMA"; - case 0x1000 + 75: return "LVM_GETITEMW"; - case 0x1000 + 6: return "LVM_SETITEMA"; - case 0x1000 + 76: return "LVM_SETITEMW"; - case 0x1000 + 7: return "LVM_INSERTITEMA"; - case 0x1000 + 77: return "LVM_INSERTITEMW"; - case 0x1000 + 8: return "LVM_DELETEITEM"; - case 0x1000 + 9: return "LVM_DELETEALLITEMS"; - case 0x1000 + 10: return "LVM_GETCALLBACKMASK"; - case 0x1000 + 11: return "LVM_SETCALLBACKMASK"; - case 0x1000 + 12: return "LVM_GETNEXTITEM"; - case 0x1000 + 13: return "LVM_FINDITEMA"; - case 0x1000 + 83: return "LVM_FINDITEMW"; - case 0x1000 + 14: return "LVM_GETITEMRECT"; - case 0x1000 + 15: return "LVM_SETITEMPOSITION"; - case 0x1000 + 16: return "LVM_GETITEMPOSITION"; - case 0x1000 + 17: return "LVM_GETSTRINGWIDTHA"; - case 0x1000 + 87: return "LVM_GETSTRINGWIDTHW"; - case 0x1000 + 18: return "LVM_HITTEST"; - case 0x1000 + 19: return "LVM_ENSUREVISIBLE"; - case 0x1000 + 20: return "LVM_SCROLL"; - case 0x1000 + 21: return "LVM_REDRAWITEMS"; - case 0x1000 + 22: return "LVM_ARRANGE"; - case 0x1000 + 23: return "LVM_EDITLABELA"; - case 0x1000 + 118: return "LVM_EDITLABELW"; - case 0x1000 + 24: return "LVM_GETEDITCONTROL"; - case 0x1000 + 25: return "LVM_GETCOLUMNA"; - case 0x1000 + 95: return "LVM_GETCOLUMNW"; - case 0x1000 + 26: return "LVM_SETCOLUMNA"; - case 0x1000 + 96: return "LVM_SETCOLUMNW"; - case 0x1000 + 27: return "LVM_INSERTCOLUMNA"; - case 0x1000 + 97: return "LVM_INSERTCOLUMNW"; - case 0x1000 + 28: return "LVM_DELETECOLUMN"; - case 0x1000 + 29: return "LVM_GETCOLUMNWIDTH"; - case 0x1000 + 30: return "LVM_SETCOLUMNWIDTH"; - case 0x1000 + 31: return "LVM_GETHEADER"; - case 0x1000 + 33: return "LVM_CREATEDRAGIMAGE"; - case 0x1000 + 34: return "LVM_GETVIEWRECT"; - case 0x1000 + 35: return "LVM_GETTEXTCOLOR"; - case 0x1000 + 36: return "LVM_SETTEXTCOLOR"; - case 0x1000 + 37: return "LVM_GETTEXTBKCOLOR"; - case 0x1000 + 38: return "LVM_SETTEXTBKCOLOR"; - case 0x1000 + 39: return "LVM_GETTOPINDEX"; - case 0x1000 + 40: return "LVM_GETCOUNTPERPAGE"; - case 0x1000 + 41: return "LVM_GETORIGIN"; - case 0x1000 + 42: return "LVM_UPDATE"; - case 0x1000 + 43: return "LVM_SETITEMSTATE"; - case 0x1000 + 44: return "LVM_GETITEMSTATE"; - case 0x1000 + 45: return "LVM_GETITEMTEXTA"; - case 0x1000 + 115: return "LVM_GETITEMTEXTW"; - case 0x1000 + 46: return "LVM_SETITEMTEXTA"; - case 0x1000 + 116: return "LVM_SETITEMTEXTW"; - case 0x1000 + 47: return "LVM_SETITEMCOUNT"; - case 0x1000 + 48: return "LVM_SORTITEMS"; - case 0x1000 + 49: return "LVM_SETITEMPOSITION32"; - case 0x1000 + 50: return "LVM_GETSELECTEDCOUNT"; - case 0x1000 + 51: return "LVM_GETITEMSPACING"; - case 0x1000 + 52: return "LVM_GETISEARCHSTRINGA"; - case 0x1000 + 117: return "LVM_GETISEARCHSTRINGW"; - case 0x1000 + 53: return "LVM_SETICONSPACING"; - case 0x1000 + 54: return "LVM_SETEXTENDEDLISTVIEWSTYLE"; - case 0x1000 + 55: return "LVM_GETEXTENDEDLISTVIEWSTYLE"; - case 0x1000 + 56: return "LVM_GETSUBITEMRECT"; - case 0x1000 + 57: return "LVM_SUBITEMHITTEST"; - case 0x1000 + 58: return "LVM_SETCOLUMNORDERARRAY"; - case 0x1000 + 59: return "LVM_GETCOLUMNORDERARRAY"; - case 0x1000 + 60: return "LVM_SETHOTITEM"; - case 0x1000 + 61: return "LVM_GETHOTITEM"; - case 0x1000 + 62: return "LVM_SETHOTCURSOR"; - case 0x1000 + 63: return "LVM_GETHOTCURSOR"; - case 0x1000 + 64: return "LVM_APPROXIMATEVIEWRECT"; - case 0x1000 + 65: return "LVM_SETWORKAREA"; - - // tree view - case 0x1100 + 0: return "TVM_INSERTITEMA"; - case 0x1100 + 50: return "TVM_INSERTITEMW"; - case 0x1100 + 1: return "TVM_DELETEITEM"; - case 0x1100 + 2: return "TVM_EXPAND"; - case 0x1100 + 4: return "TVM_GETITEMRECT"; - case 0x1100 + 5: return "TVM_GETCOUNT"; - case 0x1100 + 6: return "TVM_GETINDENT"; - case 0x1100 + 7: return "TVM_SETINDENT"; - case 0x1100 + 8: return "TVM_GETIMAGELIST"; - case 0x1100 + 9: return "TVM_SETIMAGELIST"; - case 0x1100 + 10: return "TVM_GETNEXTITEM"; - case 0x1100 + 11: return "TVM_SELECTITEM"; - case 0x1100 + 12: return "TVM_GETITEMA"; - case 0x1100 + 62: return "TVM_GETITEMW"; - case 0x1100 + 13: return "TVM_SETITEMA"; - case 0x1100 + 63: return "TVM_SETITEMW"; - case 0x1100 + 14: return "TVM_EDITLABELA"; - case 0x1100 + 65: return "TVM_EDITLABELW"; - case 0x1100 + 15: return "TVM_GETEDITCONTROL"; - case 0x1100 + 16: return "TVM_GETVISIBLECOUNT"; - case 0x1100 + 17: return "TVM_HITTEST"; - case 0x1100 + 18: return "TVM_CREATEDRAGIMAGE"; - case 0x1100 + 19: return "TVM_SORTCHILDREN"; - case 0x1100 + 20: return "TVM_ENSUREVISIBLE"; - case 0x1100 + 21: return "TVM_SORTCHILDRENCB"; - case 0x1100 + 22: return "TVM_ENDEDITLABELNOW"; - case 0x1100 + 23: return "TVM_GETISEARCHSTRINGA"; - case 0x1100 + 64: return "TVM_GETISEARCHSTRINGW"; - case 0x1100 + 24: return "TVM_SETTOOLTIPS"; - case 0x1100 + 25: return "TVM_GETTOOLTIPS"; - - // header - case 0x1200 + 0: return "HDM_GETITEMCOUNT"; - case 0x1200 + 1: return "HDM_INSERTITEMA"; - case 0x1200 + 10: return "HDM_INSERTITEMW"; - case 0x1200 + 2: return "HDM_DELETEITEM"; - case 0x1200 + 3: return "HDM_GETITEMA"; - case 0x1200 + 11: return "HDM_GETITEMW"; - case 0x1200 + 4: return "HDM_SETITEMA"; - case 0x1200 + 12: return "HDM_SETITEMW"; - case 0x1200 + 5: return "HDM_LAYOUT"; - case 0x1200 + 6: return "HDM_HITTEST"; - case 0x1200 + 7: return "HDM_GETITEMRECT"; - case 0x1200 + 8: return "HDM_SETIMAGELIST"; - case 0x1200 + 9: return "HDM_GETIMAGELIST"; - case 0x1200 + 15: return "HDM_ORDERTOINDEX"; - case 0x1200 + 16: return "HDM_CREATEDRAGIMAGE"; - case 0x1200 + 17: return "HDM_GETORDERARRAY"; - case 0x1200 + 18: return "HDM_SETORDERARRAY"; - case 0x1200 + 19: return "HDM_SETHOTDIVIDER"; - - // tab control - case 0x1300 + 2: return "TCM_GETIMAGELIST"; - case 0x1300 + 3: return "TCM_SETIMAGELIST"; - case 0x1300 + 4: return "TCM_GETITEMCOUNT"; - case 0x1300 + 5: return "TCM_GETITEMA"; - case 0x1300 + 60: return "TCM_GETITEMW"; - case 0x1300 + 6: return "TCM_SETITEMA"; - case 0x1300 + 61: return "TCM_SETITEMW"; - case 0x1300 + 7: return "TCM_INSERTITEMA"; - case 0x1300 + 62: return "TCM_INSERTITEMW"; - case 0x1300 + 8: return "TCM_DELETEITEM"; - case 0x1300 + 9: return "TCM_DELETEALLITEMS"; - case 0x1300 + 10: return "TCM_GETITEMRECT"; - case 0x1300 + 11: return "TCM_GETCURSEL"; - case 0x1300 + 12: return "TCM_SETCURSEL"; - case 0x1300 + 13: return "TCM_HITTEST"; - case 0x1300 + 14: return "TCM_SETITEMEXTRA"; - case 0x1300 + 40: return "TCM_ADJUSTRECT"; - case 0x1300 + 41: return "TCM_SETITEMSIZE"; - case 0x1300 + 42: return "TCM_REMOVEIMAGE"; - case 0x1300 + 43: return "TCM_SETPADDING"; - case 0x1300 + 44: return "TCM_GETROWCOUNT"; - case 0x1300 + 45: return "TCM_GETTOOLTIPS"; - case 0x1300 + 46: return "TCM_SETTOOLTIPS"; - case 0x1300 + 47: return "TCM_GETCURFOCUS"; - case 0x1300 + 48: return "TCM_SETCURFOCUS"; - case 0x1300 + 49: return "TCM_SETMINTABWIDTH"; - case 0x1300 + 50: return "TCM_DESELECTALL"; - - // toolbar - case WM_USER+1: return "TB_ENABLEBUTTON"; - case WM_USER+2: return "TB_CHECKBUTTON"; - case WM_USER+3: return "TB_PRESSBUTTON"; - case WM_USER+4: return "TB_HIDEBUTTON"; - case WM_USER+5: return "TB_INDETERMINATE"; - case WM_USER+9: return "TB_ISBUTTONENABLED"; - case WM_USER+10: return "TB_ISBUTTONCHECKED"; - case WM_USER+11: return "TB_ISBUTTONPRESSED"; - case WM_USER+12: return "TB_ISBUTTONHIDDEN"; - case WM_USER+13: return "TB_ISBUTTONINDETERMINATE"; - case WM_USER+17: return "TB_SETSTATE"; - case WM_USER+18: return "TB_GETSTATE"; - case WM_USER+19: return "TB_ADDBITMAP"; - case WM_USER+20: return "TB_ADDBUTTONS"; - case WM_USER+21: return "TB_INSERTBUTTON"; - case WM_USER+22: return "TB_DELETEBUTTON"; - case WM_USER+23: return "TB_GETBUTTON"; - case WM_USER+24: return "TB_BUTTONCOUNT"; - case WM_USER+25: return "TB_COMMANDTOINDEX"; - case WM_USER+26: return "TB_SAVERESTOREA"; - case WM_USER+76: return "TB_SAVERESTOREW"; - case WM_USER+27: return "TB_CUSTOMIZE"; - case WM_USER+28: return "TB_ADDSTRINGA"; - case WM_USER+77: return "TB_ADDSTRINGW"; - case WM_USER+29: return "TB_GETITEMRECT"; - case WM_USER+30: return "TB_BUTTONSTRUCTSIZE"; - case WM_USER+31: return "TB_SETBUTTONSIZE"; - case WM_USER+32: return "TB_SETBITMAPSIZE"; - case WM_USER+33: return "TB_AUTOSIZE"; - case WM_USER+35: return "TB_GETTOOLTIPS"; - case WM_USER+36: return "TB_SETTOOLTIPS"; - case WM_USER+37: return "TB_SETPARENT"; - case WM_USER+39: return "TB_SETROWS"; - case WM_USER+40: return "TB_GETROWS"; - case WM_USER+42: return "TB_SETCMDID"; - case WM_USER+43: return "TB_CHANGEBITMAP"; - case WM_USER+44: return "TB_GETBITMAP"; - case WM_USER+45: return "TB_GETBUTTONTEXTA"; - case WM_USER+75: return "TB_GETBUTTONTEXTW"; - case WM_USER+46: return "TB_REPLACEBITMAP"; - case WM_USER+47: return "TB_SETINDENT"; - case WM_USER+48: return "TB_SETIMAGELIST"; - case WM_USER+49: return "TB_GETIMAGELIST"; - case WM_USER+50: return "TB_LOADIMAGES"; - case WM_USER+51: return "TB_GETRECT"; - case WM_USER+52: return "TB_SETHOTIMAGELIST"; - case WM_USER+53: return "TB_GETHOTIMAGELIST"; - case WM_USER+54: return "TB_SETDISABLEDIMAGELIST"; - case WM_USER+55: return "TB_GETDISABLEDIMAGELIST"; - case WM_USER+56: return "TB_SETSTYLE"; - case WM_USER+57: return "TB_GETSTYLE"; - case WM_USER+58: return "TB_GETBUTTONSIZE"; - case WM_USER+59: return "TB_SETBUTTONWIDTH"; - case WM_USER+60: return "TB_SETMAXTEXTROWS"; - case WM_USER+61: return "TB_GETTEXTROWS"; - case WM_USER+41: return "TB_GETBITMAPFLAGS"; - -#endif //WIN32 - - default: - static char s_szBuf[128]; - sprintf(s_szBuf, "", message); - return s_szBuf; - } -} -#endif //__WXDEBUG__ diff --git a/src/msw/winestub.c b/src/msw/winestub.c deleted file mode 100644 index b2761ca1cc..0000000000 --- a/src/msw/winestub.c +++ /dev/null @@ -1,45 +0,0 @@ -/**************************************************************************** - * Name: winestub.cpp - * Purpose: wxWINE module mapping main() to WinMain() - * Author: Robert Roebling - * Created: 04/01/98 - * RCS-ID: $Id$ - * Copyright: (c) Robert Roebling - * Licence: wxWindows Licence - *****************************************************************************/ - -#include -#include "winuser.h" -#include "xmalloc.h" - -extern int PASCAL WinMain( HINSTANCE, HINSTANCE, LPSTR, int ); -extern HINSTANCE MAIN_WinelibInit( int *argc, char *argv[] ); - -/* Most Windows C/C++ compilers use something like this to */ -/* access argc and argv globally: */ -int _ARGC; -char **_ARGV; - -int main( int argc, char *argv [] ) -{ - HINSTANCE hInstance; - LPSTR lpszCmdParam; - int i, len = 0; - _ARGC = argc; - _ARGV = (char **)argv; - - if (!(hInstance = MAIN_WinelibInit( &argc, argv ))) return 0; - - /* Alloc szCmdParam */ - for (i = 1; i < argc; i++) len += strlen(argv[i]) + 1; - lpszCmdParam = (LPSTR) xmalloc(len + 1); - /* Concatenate arguments */ - if (argc > 1) strcpy(lpszCmdParam, argv[1]); - else lpszCmdParam[0] = '\0'; - for (i = 2; i < argc; i++) strcat(strcat(lpszCmdParam, " "), argv[i]); - - return WinMain (hInstance, /* hInstance */ - 0, /* hPrevInstance */ - lpszCmdParam, /* lpszCmdParam */ - SW_NORMAL); /* nCmdShow */ -} diff --git a/src/msw/wx.def b/src/msw/wx.def deleted file mode 100644 index 28df1caa12..0000000000 --- a/src/msw/wx.def +++ /dev/null @@ -1,11 +0,0 @@ -LIBRARY WX - -DESCRIPTION "wxWindows DLL" - -VERSION 1.0 - -CODE READ SHARED EXECUTE -DATA READ WRITE - - - diff --git a/src/msw/wxb32.def b/src/msw/wxb32.def deleted file mode 100644 index 3733ab22b6..0000000000 --- a/src/msw/wxb32.def +++ /dev/null @@ -1,9 +0,0 @@ -LIBRARY WX - -DESCRIPTION 'wxWindows DLL' - -CODE EXECUTEREAD MOVEABLE LOADONCALL -DATA READWRITE - - - diff --git a/src/msw/xpmhand.cpp b/src/msw/xpmhand.cpp deleted file mode 100644 index 0432f686b9..0000000000 --- a/src/msw/xpmhand.cpp +++ /dev/null @@ -1,182 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: xpmhand.cpp -// Purpose: wxBitmap: XPM handler and constructors -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "xpmhand.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#include "wx/setup.h" -#include "wx/list.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/palette.h" -#include "wx/dcmemory.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#endif - -#include "wx/msw/private.h" -#include "wx/log.h" - -#include "assert.h" - -#if wxUSE_XPM_IN_MSW -#define FOR_MSW 1 -#include "../src/xpm/xpm34.h" -#endif - -#include "wx/xpmhand.h" -#include "wx/msw/dib.h" - -IMPLEMENT_DYNAMIC_CLASS(wxXPMFileHandler, wxBitmapHandler) - -bool wxXPMFileHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight) -{ -#if wxUSE_XPM_IN_MSW - XImage *ximage; - XpmAttributes xpmAttr; - HDC dc; - - M_BITMAPHANDLERDATA->m_ok = FALSE; - dc = CreateCompatibleDC(NULL); - if (dc) - { - xpmAttr.valuemask = XpmReturnPixels; - int errorStatus = XpmReadFileToImage(&dc, WXSTRINGCAST name, &ximage, (XImage **) NULL, &xpmAttr); - DeleteDC(dc); - if (errorStatus == XpmSuccess) - { - M_BITMAPHANDLERDATA->m_hBitmap = (WXHBITMAP) ximage->bitmap; - - BITMAP bm; - GetObject((HBITMAP)M_BITMAPHANDLERDATA->m_hBitmap, sizeof(bm), (LPSTR) & bm); - - M_BITMAPHANDLERDATA->m_width = (bm.bmWidth); - M_BITMAPHANDLERDATA->m_height = (bm.bmHeight); - M_BITMAPHANDLERDATA->m_depth = (bm.bmPlanes * bm.bmBitsPixel); - M_BITMAPHANDLERDATA->m_numColors = xpmAttr.npixels; - XpmFreeAttributes(&xpmAttr); - XImageFree(ximage); - - M_BITMAPHANDLERDATA->m_ok = TRUE; - return TRUE; - } - else - { - M_BITMAPHANDLERDATA->m_ok = FALSE; - return FALSE; - } - } -#endif - - return FALSE; -} - -bool wxXPMFileHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette) -{ -#if wxUSE_XPM_IN_MSW - HDC dc = NULL; - - XImage ximage; - - dc = CreateCompatibleDC(NULL); - if (dc) - { - if (SelectObject(dc, (HBITMAP) M_BITMAPHANDLERDATA->m_hBitmap)) - { - /* for following SetPixel */ - /* fill the XImage struct 'by hand' */ - ximage.width = M_BITMAPHANDLERDATA->m_width; - ximage.height = M_BITMAPHANDLERDATA->m_height; - ximage.depth = M_BITMAPHANDLERDATA->m_depth; - ximage.bitmap = (HBITMAP)M_BITMAPHANDLERDATA->m_hBitmap; - int errorStatus = XpmWriteFileFromImage(&dc, WXSTRINGCAST name, - &ximage, (XImage *) NULL, (XpmAttributes *) NULL); - - if (dc) - DeleteDC(dc); - - if (errorStatus == XpmSuccess) - return TRUE; /* no error */ - else - return FALSE; - } else return FALSE; - } else return FALSE; -#else - return FALSE; -#endif -} - -IMPLEMENT_DYNAMIC_CLASS(wxXPMDataHandler, wxBitmapHandler) - -bool wxXPMDataHandler::Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth) -{ -#if wxUSE_XPM_IN_MSW - XImage *ximage; - int ErrorStatus; - XpmAttributes xpmAttr; - HDC dc; - - M_BITMAPHANDLERDATA->m_ok = FALSE; - M_BITMAPHANDLERDATA->m_numColors = 0; - - dc = CreateCompatibleDC(NULL); /* memory DC */ - - if (dc) - { - xpmAttr.valuemask = XpmReturnInfos; /* get infos back */ - ErrorStatus = XpmCreateImageFromData(&dc, (char **)data, - &ximage, (XImage **) NULL, &xpmAttr); - - if (ErrorStatus == XpmSuccess) - { - /* ximage is malloced and contains bitmap and attributes */ - M_BITMAPHANDLERDATA->m_hBitmap = (WXHBITMAP) ximage->bitmap; - - BITMAP bm; - GetObject((HBITMAP) M_BITMAPHANDLERDATA->m_hBitmap, sizeof(bm), (LPSTR) & bm); - - M_BITMAPHANDLERDATA->m_width = (bm.bmWidth); - M_BITMAPHANDLERDATA->m_height = (bm.bmHeight); - M_BITMAPHANDLERDATA->m_depth = (bm.bmPlanes * bm.bmBitsPixel); - M_BITMAPHANDLERDATA->m_numColors = xpmAttr.npixels; - XpmFreeAttributes(&xpmAttr); - - XImageFree(ximage); // releases the malloc, but does not detroy - // the bitmap - M_BITMAPHANDLERDATA->m_ok = TRUE; - DeleteDC(dc); - - return TRUE; - } - else - { - M_BITMAPHANDLERDATA->m_ok = FALSE; -// XpmDebugError(ErrorStatus, NULL); - DeleteDC(dc); - return FALSE; - } - } -#endif - - return FALSE; -} - diff --git a/src/ntwxwin.mak b/src/ntwxwin.mak deleted file mode 100644 index 28cbb18dcc..0000000000 --- a/src/ntwxwin.mak +++ /dev/null @@ -1,3 +0,0 @@ -# Compatibility only: use makevc.env - -!include $(WXWIN)\src\makevc.env diff --git a/src/png/ANNOUNCE b/src/png/ANNOUNCE deleted file mode 100644 index 77eea6eb23..0000000000 --- a/src/png/ANNOUNCE +++ /dev/null @@ -1,53 +0,0 @@ - -Libpng 1.0.3 - January 14, 1999 - -This is a public release of libpng, intended for use in production codes. - -Changes since the previous public release (1.0.2): - -libpng-1.0.3: - - Replaced and extended code that was removed from png_set_filler() in 1.0.1a. - Fixed a bug in png_do_filler() that made it fail to write filler bytes in - the left-most pixel of each row (Kevin Bracey). - Changed "static pngcharp tIME_string" to "static char tIME_string[30]" - in pngtest.c (Duncan Simpson). - Fixed a bug in pngtest.c that caused pngtest to try to write a tIME chunk - even when no tIME chunk was present in the source file. - Fixed a problem in pngrutil.c: gray_to_rgb didn't always work with 16-bit. - Fixed a problem in png_read_push_finish_row(), which would not skip some - passes that it should skip, for images that are less than 3 pixels high. - Interchanged the order of calls to png_do_swap() and png_do_shift() - in pngwtran.c (John Cromer). - Added #ifdef PNG_DEBUG/#endif surrounding use of PNG_DEBUG in png.h . - Changed "bad adaptive filter type" from error to warning in pngrutil.c . - Fixed a documentation error about default filtering with 8-bit indexed-color. - Separated the PNG_NO_STDIO macro into PNG_NO_STDIO and PNG_NO_CONSOLE_IO - (L. Peter Deutsch). - Added png_set_rgb_to_gray() and png_get_rgb_to_gray_status() functions. - Added png_get_copyright() and png_get_header_version() functions. - Revised comments on png_set_progressive_read_fn() in libpng.txt and example.c - Added information about debugging in libpng.txt and libpng.3 . - Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and makefile.sco. - Removed lines after Dynamic Dependencies" in makefile.aco . - Revised makefile.dec to make a shared library (Jeremie Petit). - Removed trailing blanks from all files. - Removed misplaced #endif and #ifdef PNG_NO_EXTERN near the end of png.h - Added "if" tests to silence complaints about unused png_ptr in png.h and png.c - Changed "check_if_png" function in example.c to return true (nonzero) if PNG. - Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig() - which is obsolete. - Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice) - Added a statement of Y2K compliance in png.h, libpng.1, and Y2KINFO. - -Send comments/corrections/commendations to -png-implement@dworkin.wustl.edu or to randeg@alumni.rpi.edu - -Glenn R-P - -Send comments/corrections/commendations to -png-implement@dworkin.wustl.edu or to randeg@alumni.rpi.edu - -Glenn Randers-Pehrson -libpng maintainer -PNG Development Group diff --git a/src/png/CHANGES b/src/png/CHANGES deleted file mode 100644 index d2dcde3ae0..0000000000 --- a/src/png/CHANGES +++ /dev/null @@ -1,389 +0,0 @@ -CHANGES - changes for libpng - -version 0.2 - added reader into png.h - fixed small problems in stub file -version 0.3 - added pull reader - split up pngwrite.c to several files - added pnglib.txt - added example.c - cleaned up writer, adding a few new tranformations - fixed some bugs in writer - interfaced with zlib 0.5 - added K&R support - added check for 64 KB blocks for 16 bit machines -version 0.4 - cleaned up code and commented code - simplified time handling into png_time - created png_color_16 and png_color_8 to handle color needs - cleaned up color type defines - fixed various bugs - made various names more consistant - interfaced with zlib 0.71 - cleaned up zTXt reader and writer (using zlib's Reset functions) - split transformations into pngrtran.c and pngwtran.c -version 0.5 - interfaced with zlib 0.8 - fixed many reading and writing bugs - saved using 3 spaces instead of tabs -version 0.6 - added png_large_malloc() and png_large_free() - added png_size_t - cleaned up some compiler warnings - added png_start_read_image() -version 0.7 - cleaned up lots of bugs - finished dithering and other stuff - added test program - changed name from pnglib to libpng -version 0.71 [June, 1995] - changed pngtest.png for zlib 0.93 - fixed error in libpng.txt and example.c -version 0.8 - cleaned up some bugs - added png_set_filler() - split up pngstub.c into pngmem.c, pngio.c, and pngerror.c - added #define's to remove unwanted code - moved png_info_init() to png.c - added old_size into png_realloc() - added functions to manually set filtering and compression info - changed compression parameters based on image type - optimized filter selection code - added version info - changed external functions passing floats to doubles (k&r problems?) - put all the configurable stuff in pngconf.h - enabled png_set_shift to work with paletted images on read - added png_read_update_info() - updates info structure with - transformations -version 0.81 [August, 1995] - incorporated Tim Wegner's medium model code (thanks, Tim) -version 0.82 [September, 1995] - [unspecified changes] -version 0.85 [December, 1995] - added more medium model code (almost everything's a far) - added i/o, error, and memory callback functions - fixed some bugs (16 bit, 4 bit interlaced, etc.) - added first run progressive reader (barely tested) -version 0.86 [January, 1996] - fixed bugs - improved documentation -version 0.87 [January, 1996] - fixed medium model bugs - fixed other bugs introduced in 0.85 and 0.86 - added some minor documentation -version 0.88 [January, 1996] - fixed progressive bugs - replaced tabs with spaces - cleaned up documentation - added callbacks for read/write and warning/error functions -version 0.89 [July, 1996] - added new initialization API to make libpng work better with shared libs - we now have png_create_read_struct(), png_create_write_struct(), - png_create_info_struct(), png_destroy_read_struct(), and - png_destroy_write_struct() instead of the separate calls to - malloc and png_read_init(), png_info_init(), and png_write_init() - changed warning/error callback functions to fix bug - this means you - should use the new initialization API if you were using the old - png_set_message_fn() calls, and that the old API no longer exists - so that people are aware that they need to change their code - changed filter selection API to allow selection of multiple filters - since it didn't work in previous versions of libpng anyways - optimized filter selection code - fixed png_set_background() to allow using an arbitrary RGB color for - paletted images - fixed gamma and background correction for paletted images, so - png_correct_palette is not needed unless you are correcting an - external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED - in pngconf.h) - if nobody uses this, it may disappear in the future. - fixed bug with Borland 64K memory allocation (Alexander Lehmann) - fixed bug in interlace handling (Smarasderagd, I think) - added more error checking for writing and image to reduce invalid files - separated read and write functions so that they won't both be linked - into a binary when only reading or writing functionality is used - new pngtest image also has interlacing and zTXt - updated documentation to reflect new API -version 0.90 [January, 1997] - made CRC errors/warnings on critical and ancillary chunks configurable - libpng will use the zlib CRC routines by (compile-time) default - changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner) - added external C++ wrapper statements to png.h (Gilles Dauphin) - allow PNG file to be read when some or all of file signature has already - been read from the beginning of the stream. ****This affects the size - of info_struct and invalidates all programs that use a shared libpng**** - fixed png_filler() declarations - fixed? background color conversions - fixed order of error function pointers to match documentation - current chunk name is now available in png_struct to reduce the number - of nearly identical error messages (will simplify multi-lingual - support when available) - try to get ready for unknown-chunk callback functions: - - previously read critical chunks are flagged, so the chunk handling - routines can determine if the chunk is in the right place - - all chunk handling routines have the same prototypes, so we will - be able to handle all chunks via a callback mechanism - try to fix Linux "setjmp" buffer size problems -version 0.95 [March, 1997] - fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never - fixed bug in PNG file signature compares when start != 0 - changed parameter type of png_set_filler(...filler...) from png_byte - to png_uint_32 - added test for MACOS to ensure that both math.h and fp.h are not #included - added macros for libpng to be compiled as a Windows DLL (Andreas Kupries) - added "packswap" transformation, which changes the endianness of - packed-pixel bytes (Kevin Bracey) - added "strip_alpha" transformation, which removes the alpha channel of - input images without using it (not neccesarily a good idea) - added "swap_alpha" transformation, which puts the alpha channel in front - of the color bytes instead of after - removed all implicit variable tests which assume NULL == 0 (I think) - changed several variables to "png_size_t" to show 16/32-bit limitations - added new pCAL chunk read/write support - added experimental filter selection weighting (Greg Roelofs) - removed old png_set_rgbx() and png_set_xrgb() functions that have been - obsolete for about 2 years now (use png_set_filler() instead) - added macros to read 16- and 32-bit ints directly from buffer, to be - used only on those systems that support it (namely PowerPC and 680x0) - With some testing, this may become the default for MACOS/PPC systems. - only calculate CRC on data if we are going to use it - added macros for zTXt compression type PNG_zTXt_COMPRESSION_??? - added macros for simple libpng debugging output selectable at compile time - removed PNG_READ_END_MODE in progressive reader (Smarasderagd) - more description of info_struct in libpng.txt and png.h - more instructions in example.c - more chunk types tested in pngtest.c - renamed pngrcb.c to pngset.c, and all png_read_ functions to be - png_set_. We now have corresponding png_get_ - functions in pngget.c to get infomation in info_ptr. This isolates - the application from the internal organization of png_info_struct - (good for shared library implementations). -version 0.96 [May, 1997] - fixed serious bug with < 8bpp images introduced in 0.95 - fixed 256-color transparency bug (Greg Roelofs) - fixed up documentation (Greg Roelofs, Laszlo Nyul) - fixed "error" in pngconf.h for Linux setjmp() behaviour - fixed DOS medium model support (Tim Wegner) - fixed png_check_keyword() for case with error in static string text - added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul) - added typecasts to quiet compiler errors - added more debugging info -version 0.97 [January, 1998] - removed PNG_USE_OWN_CRC capability - relocated png_set_crc_action from pngrutil.c to pngrtran.c - fixed typecasts of "new_key", etc. (Andreas Dilger) - added RFC 1152 [sic] date support - fixed bug in gamma handling of 4-bit grayscale - added 2-bit grayscale gamma handling (Glenn R-P) - added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P) - minor corrections in libpng.txt - added simple sRGB support (Glenn R-P) - easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED; - all configurable options can be selected from command-line instead - of having to edit pngconf.h (Glenn R-P) - fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P) - added more conditions for png_do_background, to avoid changing - black pixels to background when a background is supplied and - no pixels are transparent - repaired PNG_NO_STDIO behaviour - tested NODIV support and made it default behaviour (Greg Roelofs) - added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler) - regularized version numbering scheme and bumped shared-library major - version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs) -version 0.98 [January, 1998] - cleaned up some typos in libpng.txt and in code documentation - fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler) - cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c - changed recommendation about file_gamma for PC images to .51 from .45, - in example.c and libpng.txt, added comments to distinguish between - screen_gamma, viewing_gamma, and display_gamma. - changed all references to RFC1152 to read RFC1123 and changed the - PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED - added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent) - changed srgb_intent from png_byte to int to avoid compiler bugs -version 0.99 [January 30, 1998] - free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler) - fixed a longstanding "packswap" bug in pngtrans.c - fixed some inconsistencies in pngconf.h that prevented compiling with - PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined - fixed some typos and made other minor rearrangement of libpng.txt (Andreas) - changed recommendation about file_gamma for PC images to .50 from .51 in - example.c and libpng.txt, and changed file_gamma for sRGB images to .45 - added a number of functions to access information from the png structure - png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit) - added TARGET_MACOS similar to zlib-1.0.8 - define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined - added type casting to all png_malloc() function calls -version 0.99a [January 31, 1998] - Added type casts and parentheses to all returns that return a value.(Tim W.) -version 0.99b [February 4, 1998] - Added type cast png_uint_32 on malloc function calls where needed. - Changed type of num_hist from png_uint_32 to int (same as num_palette). - Added checks for rowbytes overflow, in case png_size_t is less than 32 bits. - Renamed makefile.elf to makefile.lnx. -version 0.99c [February 7, 1998] - More type casting. Removed erroneous overflow test in pngmem.c. - Added png_buffered_memcpy() and png_buffered_memset(), apply them to rowbytes. - Added UNIX manual pages libpng.3 (incorporating libpng.txt) and png.5. -version 0.99d [February 11, 1998] - Renamed "far_to_near()" "png_far_to_near()" - Revised libpng.3 - Version 99c "buffered" operations didn't work as intended. Replaced them - with png_memcpy_check() and png_memset_check(). - Added many "if (png_ptr == NULL) return" to quell compiler warnings about - unused png_ptr, mostly in pngget.c and pngset.c. - Check for overlength tRNS chunk present when indexed-color PLTE is read. - Cleaned up spelling errors in libpng.3/libpng.txt - Corrected a problem with png_get_tRNS() which returned undefined trans array -version 0.99e [February 28, 1998] - Corrected png_get_tRNS() again. - Add parentheses for easier reading of pngget.c, fixed "||" should be "&&". - Touched up example.c to make more of it compileable, although the entire - file still can't be compiled (Willem van Schaik) - Fixed a bug in png_do_shift() (Bryan Tsai) - Added a space in png.h prototype for png_write_chunk_start() - Replaced pngtest.png with one created with zlib 1.1.1 - Changed pngtest to report PASS even when file size is different (Jean-loup G.) - Corrected some logic errors in png_do_invert_alpha() (Chris Patterson) -version 0.99f [March 5, 1998] - Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey) - Moved makefiles into a "scripts" directory, and added INSTALL instruction file - Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok) - Added pointers to "note on libpng versions" in makefile.lnx and README - Added row callback feature when reading and writing nonprogressive rows - and added a test of this feature in pngtest.c - Added user transform callbacks, with test of the feature in pngtest.c -version 0.99g [March 6, 1998, morning] - Minor changes to pngtest.c to suppress compiler warnings. - Removed "beta" language from documentation. -version 0.99h [March 6, 1998, evening] - Minor changes to previous minor changes to pngtest.c - Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED - and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro -version 1.00 [March 7, 1998] - Changed several typedefs in pngrutil.c - Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik) - replaced "while(1)" with "for(;;)" - added PNGARG() to prototypes in pngtest.c and removed some prototypes - updated some of the makefiles (Tom Lane) - changed some typedefs (s_start, etc.) in pngrutil.c - fixed dimensions of "short_months" array in pngwrite.c - Replaced ansi2knr.c with the one from jpeg-v6 -version 1.0.0 [March 8, 1998] - Changed name from 1.00 to 1.0.0 (Adam Costello) - Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert) -version 1.0.0a [March 9, 1998] - Fixed three bugs in pngrtran.c to make gamma+background handling consistent - (Greg Roelofs) - Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz - for major, minor, and bugfix releases. This is 10001. (Adam Costello, - Tom Lane) - Make months range from 1-12 in png_convert_to_rfc1123 -version 1.0.0b [March 13, 1998] - Quieted compiler complaints about two empty "for" loops in pngrutil.c - Minor changes to makefile.s2x - Removed #ifdef/#endif around a png_free() in pngread.c -version 1.0.1 [March 14, 1998] - Changed makefile.s2x to reduce security risk of using a relative pathname - Fixed some typos in the documentation (Greg). - Fixed a problem with value of "channels" returned by png_read_update_info() -version 1.0.1a [April 21, 1998] - Optimized Paeth calculations by replacing abs() function calls with intrinsics - plus other loop optimizations. Improves avg decoding speed by about 20%. - Commented out i386istic "align" compiler flags in makefile.lnx. - Reduced the default warning level in some makefiles, to make them consistent. - Removed references to IJG and JPEG in the ansi2knr.c copyright statement. - Fixed a bug in png_do_strip_filler with XXRRGGBB => RRGGBB transformation. - Added grayscale and 16-bit capability to png_do_read_filler(). - Fixed a bug in pngset.c, introduced in version 0.99c, that sets rowbytes - too large when writing an image with bit_depth < 8 (Bob Dellaca). - Corrected some bugs in the experimental weighted filtering heuristics. - Moved a misplaced pngrutil code block that truncates tRNS if it has more - than num_palette entries -- test was done before num_palette was defined. - Fixed a png_convert_to_rfc1123() bug that converts day 31 to 0 (Steve Eddins). - Changed compiler flags in makefile.wat for better optimization (Pawel Mrochen). -version 1.0.1b [May 2, 1998] - Relocated png_do_gray_to_rgb() within png_do_read_transformations() (Greg). - Relocated the png_composite macros from pngrtran.c to png.h (Greg). - Added makefile.sco (contributed by Mike Hopkirk). - Fixed two bugs (missing definitions of "istop") introduced in libpng-1.0.1a. - Fixed a bug in pngrtran.c that would set channels=5 under some circumstances. - More work on the Paeth-filtering, achieving imperceptible speedup (A Kleinert). - More work on loop optimization which may help when compiled with C++ compilers. - Added warnings when people try to use transforms they've defined out. - Collapsed 4 "i" and "c" loops into single "i" loops in pngrtran and pngwtran. - Revised paragraph about png_set_expand() in libpng.txt and libpng.3 (Greg) -version 1.0.1c [May 11, 1998] - Fixed a bug in pngrtran.c (introduced in libpng-1.0.1a) where the masks for - filler bytes should have been 0xff instead of 0xf. - Added max_pixel_depth=32 in pngrutil.c when using FILLER with palette images. - Moved PNG_WRITE_WEIGHTED_FILTER_SUPPORTED and PNG_WRITE_FLUSH_SUPPORTED - out of the PNG_WRITE_TRANSFORMS_NOT_SUPPORTED block of pngconf.h - Added "PNG_NO_WRITE_TRANSFORMS" etc., as alternatives for *_NOT_SUPPORTED, - for consistency, in pngconf.h - Added individual "ifndef PNG_NO_[CAPABILITY]" in pngconf.h to make it easier - to remove unwanted capabilities via the compile line - Made some corrections to grammar (which, it's) in documentation (Greg). - Corrected example.c, use of row_pointers in png_write_image(). -version 1.0.1d [May 24, 1998] - Corrected several statements that used side effects illegally in pngrutil.c - and pngtrans.c, that were introduced in version 1.0.1b - Revised png_read_rows() to avoid repeated if-testing for NULL (A Kleinert) - More corrections to example.c, use of row_pointers in png_write_image() - and png_read_rows(). - Added pngdll.mak and pngdef.pas to scripts directory, contributed by - Bob Dellaca, to make a png32bd.dll with Borland C++ 4.5 - Fixed error in example.c with png_set_text: num_text is 3, not 2 (Guido V.) - Changed several loops from count-down to count-up, for consistency. -version 1.0.1e [June 6, 1998] - Revised libpng.txt and libpng.3 description of png_set_read|write_fn(), and - added warnings when people try to set png_read_fn and png_write_fn in - the same structure. - Added a test such that png_do_gamma will be done when num_trans==0 - for truecolor images that have defined a background. This corrects an - error that was introduced in libpng-0.90 that can cause gamma processing - to be skipped. - Added tests in png.h to include "trans" and "trans_values" in structures - when PNG_READ_BACKGROUND_SUPPORTED or PNG_READ_EXPAND_SUPPORTED is defined. - Add png_free(png_ptr->time_buffer) in png_destroy_read_struct() - Moved png_convert_to_rfc_1123() from pngwrite.c to png.c - Added capability for user-provided malloc_fn() and free_fn() functions, - and revised pngtest.c to demonstrate their use, replacing the - PNGTEST_DEBUG_MEM feature. - Added makefile.w32, for Microsoft C++ 4.0 and later (Tim Wegner). -version 1.0.2 [June 14, 1998] - Fixed two bugs in makefile.bor . -version 1.0.2a [December 30, 1998] - Replaced and extended code that was removed from png_set_filler() in 1.0.1a. - Fixed a bug in png_do_filler() that made it fail to write filler bytes in - the left-most pixel of each row (Kevin Bracey). - Changed "static pngcharp tIME_string" to "static char tIME_string[30]" - in pngtest.c (Duncan Simpson). - Fixed a bug in pngtest.c that caused pngtest to try to write a tIME chunk - even when no tIME chunk was present in the source file. - Fixed a problem in pngrutil.c: gray_to_rgb didn't always work with 16-bit. - Fixed a problem in png_read_push_finish_row(), which would not skip some - passes that it should skip, for images that are less than 3 pixels high. - Interchanged the order of calls to png_do_swap() and png_do_shift() - in pngwtran.c (John Cromer). - Added #ifdef PNG_DEBUG/#endif surrounding use of PNG_DEBUG in png.h . - Changed "bad adaptive filter type" from error to warning in pngrutil.c . - Fixed a documentation error about default filtering with 8-bit indexed-color. - Separated the PNG_NO_STDIO macro into PNG_NO_STDIO and PNG_NO_CONSOLE_IO - (L. Peter Deutsch). - Added png_set_rgb_to_gray() and png_get_rgb_to_gray_status() functions. - Added png_get_copyright() and png_get_header_version() functions. - Revised comments on png_set_progressive_read_fn() in libpng.txt and example.c - Added information about debugging in libpng.txt and libpng.3 . - Changed "ln -sf" to "ln -s -f" in makefile.s2x, makefile.lnx, and makefile.sco. - Removed lines after Dynamic Dependencies" in makefile.aco . - Revised makefile.dec to make a shared library (Jeremie Petit). - Removed trailing blanks from all files. -version 1.0.2a [January 6, 1999] - Removed misplaced #endif and #ifdef PNG_NO_EXTERN near the end of png.h - Added "if" tests to silence complaints about unused png_ptr in png.h and png.c - Changed "check_if_png" function in example.c to return true (nonzero) if PNG. - Changed libpng.txt to demonstrate png_sig_cmp() instead of png_check_sig() - which is obsolete. -version 1.0.3 [January 14, 1999] - Added makefile.hux, for Hewlett Packard HPUX 10.20 and 11.00 (Jim Rice) - Added a statement of Y2K compliance in png.h, libpng.1, and Y2KINFO. diff --git a/src/png/INSTALL b/src/png/INSTALL deleted file mode 100644 index 554b771949..0000000000 --- a/src/png/INSTALL +++ /dev/null @@ -1,91 +0,0 @@ - -Installing libpng version 1.0.3 - January 14, 1999 - -Before installing libpng, you must first install zlib. zlib -can usually be found wherever you got libpng. zlib can be -placed in another directory, at the same level as libpng. -Note that your system might already have a preinstalled -zlib, but you will still need to have access to the -zlib.h and zconf.h include files that correspond to the -version of zlib that's installed. - -You can rename the directories that you downloaded (they -might be called "libpng-1.0.3" or "lpng103" and "zlib-1.1.3" -or "zlib113") so that you have directories called "zlib" and "libpng". - -Your directory structure should look like this: - - .. (the parent directory) - libpng (this directory) - INSTALL (this file) - README - *.h - *.c - scripts - makefile.* - pngtest.png - etc. - zlib - README - *.h - *.c - contrib - etc. - -First enter the zlib directory and follow the instructions -in zlib/README. Then come back here and choose the -appropriate makefile.sys in the scripts directory. -The files that are presently available in the scripts directory -include - - descrip.mms => VMS makefile for MMS or MMK - makefile.std => Generic UNIX makefile - makefile.knr => Archaic UNIX Makefile that converts files with ansi2knr - makefile.dec => DEC Alpha UNIX makefile - makefile.hux => HPUX (10.20 and 11.00) makefile - makefile.sgi => Silicon Graphics IRIX makefile - makefile.sun => Sun makefile - makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0) - makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0) - makefile.mip => MIPS makefile - makefile.aco => Acorn makefile - makefile.ama => Amiga makefile - smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler - (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc) - makefile.atr => Atari makefile - makefile.bor => Borland makefile - build.bat => MS-DOS batch file for Borland compiler - makefile.dj2 => DJGPP 2 makefile - makefile.msc => Microsoft C makefile - makefile.w32 => makefile for Microsoft Visual C++ 4.0 and later - makefile.tc3 => Turbo C 3.0 makefile - makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def) - pngos2.def => OS/2 module definition file used by makefile.os2 - makefile.wat => Watcom 10a+ Makefile, 32-bit flat memory model - makevms.com => VMS build script - pngdll.mak => To make a png32bd.dll with Borland C++ 4.5 - pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5 - -Copy the file (or files) that you need from the -scripts directory into this directory, for example - - MSDOS example: copy scripts\makefile.msd makefile - UNIX example: cp scripts/makefile.std makefile - -Read the makefile to see if you need to change any source or -target directories to match your preferences. - -Then read pngconf.h to see if you want to make any configuration -changes. - -Then just run "make test" which will create the libpng library in -this directory and run a quick test that reads the "pngtest.png" -file and writes a "pngout.png" file that should be identical to it. - -Most of the makefiles will allow you to run "make install" to -put the library in its final resting place (if you want to -do that, run "make install" in the zlib directory first if necessary). - -Further information can be found in the README and libpng.txt -files, in the individual makefiles, and in png.h, and the manual -pages libpng.3 and png.5. diff --git a/src/png/README b/src/png/README deleted file mode 100644 index 3bd089325a..0000000000 --- a/src/png/README +++ /dev/null @@ -1,198 +0,0 @@ -README for libpng 1.0.3 - January 14, 1999 (shared library 2.1) -See the note about version numbers near the top of png.h - -See INSTALL for instructions on how to install libpng. - -This is the first official release of libpng. Don't let the fact that -it's the first release fool you. The libpng library has been in -extensive use and testing for about two and a half years. However, it's -finally gotten to the stage where there haven't been significant -changes to the API in some time, and people have a bad feeling about -libraries with versions < 1.0. - -**** -Note that some of the changes to the png_info structure render this -version of the library binary incompatible with libpng-0.89 or -earlier versions if you are using a shared library. The type of the -"filler" parameter for png_set_filler() has changed from png_byte to -png_uint_32, which will affect shared-library applications that use -this function. - -To avoid problems with changes to the internals of png_info_struct, -new APIs have been made available in 0.95 to avoid direct application -access to info_ptr. These functions are the png_set_ and -png_get_ functions. These functions should be used when -accessing/storing the info_struct data, rather than manipulating it -directly, to avoid such problems in the future. - -It is important to note that the APIs do not make current programs -that access the info struct directly incompatible with the new -library. However, it is strongly suggested that new programs use -the new APIs (as shown in example.c), and older programs be converted -to the new format, to facilitate upgrades in the future. -**** - -Additions since 0.90 include the ability to compile libpng as a -Windows DLL, and new APIs for accessing data in the info struct. -Experimental functions include the ability to set weighting and cost -factors for row filter selection, direct reads of integers from buffers -on big-endian processors that support misaligned data access, faster -methods of doing alpha composition, and more accurate 16->8 bit color -conversion. - -The additions since 0.89 include the ability to read from a PNG stream -which has had some (or all) of the signature bytes read by the calling -application. This also allows the reading of embedded PNG streams that -do not have the PNG file signature. As well, it is now possible to set -the library action on the detection of chunk CRC errors. It is possible -to set different actions based on whether the CRC error occurred in a -critical or an ancillary chunk. - -The changes made to the library, and bugs fixed are based on discussions -on the PNG implementation mailing list -and not on material submitted to Guy. - -For a detailed description on using libpng, read libpng.txt. For -examples of libpng in a program, see example.c and pngtest.c. For usage -information and restrictions (what little they are) on libpng, see -png.h. For a description on using zlib (the compression library used by -libpng) and zlib's restrictions, see zlib.h - -I have included a general makefile, as well as several machine and -compiler specific ones, but you may have to modify one for your own needs. - -You should use zlib 1.0.4 or later to run this, but it MAY work with -versions as old as zlib 0.95. Even so, there are bugs in older zlib -versions which can cause the output of invalid compression streams for -some images. You will definitely need zlib 1.0.4 or later if you are -taking advantage of the MS-DOS "far" structure allocation for the small -and medium memory models. You should also note that zlib is a -compression library that is useful for more things than just PNG files. -You can use zlib as a drop-in replacement for fread() and fwrite() if -you are so inclined. - -zlib should be available at the same place that libpng is. -If not, it should be at ftp.uu.net in /graphics/png -Eventually, it will be at ftp.uu.net in /pub/archiving/zip/zlib - -You may also want a copy of the PNG specification. It is available -as an RFC and a W3C Recommendation. Failing -these resources you can try ftp.uu.net in the /graphics/png directory. - -This code is currently being archived at ftp.uu.net in the -/graphics/png directory, and on CompuServe, Lib 20 (PNG SUPPORT) -at GO GRAPHSUP. If you can't find it in any of those places, -e-mail me, and I'll help you find it. - -If you have any code changes, requests, problems, etc., please e-mail -them to me. Also, I'd appreciate any make files or project files, -and any modifications you needed to make to get libpng to compile, -along with a #define variable to tell what compiler/system you are on. -If you needed to add transformations to libpng, or wish libpng would -provide the image in a different way, drop me a note (and code, if -possible), so I can consider supporting the transformation. -Finally, if you get any warning messages when compiling libpng -(note: not zlib), and they are easy to fix, I'd appreciate the -fix. Please mention "libpng" somewhere in the subject line. Thanks. - -This release was created and will be supported by myself (of course -based in a large way on Guy's and Andreas' earlier work), and the PNG group. - -randeg@alumni.rpi.edu -png-implement@dworkin.wustl.edu - -You can't reach Guy, the original libpng author, at the addresses -given in previous versions of this document. He and Andreas will read mail -addressed to the png-implement list, however. - -Please do not send general questions about PNG. Send them to -the address in the specification (png-group@w3.org). At the same -time, please do not send libpng questions to that address, send them to me -or to png-implement@dworkin.wustl.edu. I'll -get them in the end anyway. If you have a question about something -in the PNG specification that is related to using libpng, send it -to me. Send me any questions that start with "I was using libpng, -and ...". If in doubt, send questions to me. I'll bounce them -to others, if necessary. - -Please do not send suggestions on how to change PNG. We have -been discussing PNG for three years now, and it is official and -finished. If you have suggestions for libpng, however, I'll -gladly listen. Even if your suggestion is not used for version -1.0, it may be used later. - -Files in this distribution: - - CHANGES => Description of changes between libpng versions - README => This file - TODO => Things not implemented in the current library - ansi2knr.1 => Manual page for ansi2knr - ansi2knr.c => Converts files to K&R style function declarations - build.bat => MS-DOS batch file for Borland compiler - descrip.mms => VMS project file - example.c => Example code for using libpng functions - libpng.3 => manual page for libpng - libpng.txt => Description of libpng and its functions - libpngpf.3 => manual page for libpng's private functions - png.5 => manual page for the PNG format - png.c => Basic interface functions common to library - png.h => Library function and interface declarations - pngconf.h => System specific library configuration - pngerror.c => Error/warning message I/O functions - pngget.c => Functions for retrieving info from struct - pngmem.c => Memory handling functions - pngpread.c => Progressive reading functions - pngread.c => Read data/helper high-level functions - pngrio.c => Lowest-level data read I/O functions - pngrtran.c => Read data transformation functions - pngrutil.c => Read data utility functions - pngset.c => Functions for storing data into the info_struct - pngtest.c => Library test program - pngtest.png => Library test sample image - pngtrans.c => Common data transformation functions - pngwio.c => Lowest-level write I/O functions - pngwrite.c => High-level write functions - pngwtran.c => Write data transformations - pngwutil.c => Write utility functions - scripts => Directory containing scripts for building libpng: - descrip.mms => VMS makefile for MMS or MMK - makefile.std => Generic UNIX makefile - makefile.knr => Archaic UNIX Makefile that converts files with ansi2knr - makefile.dec => DEC Alpha UNIX makefile - makefile.hux => HPUX (10.20 and 11.00) makefile - makefile.sgi => Silicon Graphics IRIX makefile - makefile.sun => Sun makefile - makefile.s2x => Solaris 2.X makefile (gcc, creates libpng.so.2.1.0) - makefile.lnx => Linux/ELF makefile (gcc, creates libpng.so.2.1.0) - makefile.mip => MIPS makefile - makefile.aco => Acorn makefile - makefile.ama => Amiga makefile - smakefile.ppc => AMIGA smakefile for SAS C V6.58/7.00 PPC compiler - (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc) - makefile.atr => Atari makefile - makefile.bor => Borland makefile - build.bat => MS-DOS batch file for Borland compiler - makefile.dj2 => DJGPP 2 makefile - makefile.msc => Microsoft C makefile - makefile.w32 => makefile for Microsoft Visual C++ 4.0 and later - makefile.tc3 => Turbo C 3.0 makefile - makefile.os2 => OS/2 Makefile (gcc and emx, requires pngos2.def) - makefile.wat => Watcom 10a+ Makefile, 32-bit flat memory model - pngos2.def => OS/2 module definition file used by makefile.os2 - makevms.com => VMS build script - pngdll.mak => To make a png32bd.dll with Borland C++ 4.5 - pngdef.pas => Defines for a png32bd.dll with Borland C++ 4.5 - -Good luck, and happy coding. - --Glenn Randers-Pehrson - Internet: randeg@alumni.rpi.edu - Web: http://www.rpi.edu/~randeg/index.html - --Andreas Eric Dilger - Internet: adilger@enel.ucalgary.ca - Web: http://www-mddsp.enel.ucalgary.ca/People/adilger/ - --Guy Eric Schalnat - (formerly of Group 42, Inc) - Internet: gschal@infinet.com diff --git a/src/png/TODO b/src/png/TODO deleted file mode 100644 index 52f32b8949..0000000000 --- a/src/png/TODO +++ /dev/null @@ -1,24 +0,0 @@ -TODO - list of things to do for libpng: - -Final bug fixes. -Fix problem with C++ and EXTERN "C". -Better C++ wrapper/full C++ implementation? -Keep up with public chunks. -sPLT chunk handling. -cHRM transformation. -Support for application-defined chunk handlers. -Improve setjmp/longjmp usage or remove it in favor of returning error codes. -High-level API for reading images. -Add "grayscale->palette" transformation and "palette->grayscale" detection. -Color to gray transformation. -Improved dithering. -Multi-lingual error and warning message support. -Complete sRGB transformation (presently it simply uses gamma=0.45455). -Man pages for function calls. -Better documentation. -Better filter selection - (counting huffman bits/precompression? filter inertia? filter costs?). -Optional palette (sPLT) creation. -Histogram creation. -Text conversion between different code pages (Latin-1 -> Mac and DOS). -Improve API by hiding the info_ptr. diff --git a/src/png/Y2KINFO b/src/png/Y2KINFO deleted file mode 100644 index bf41676ffb..0000000000 --- a/src/png/Y2KINFO +++ /dev/null @@ -1,52 +0,0 @@ - Y2K compliance in libpng: - ========================= - - January 13, 1999 - - Since the PNG Development group is an ad-hoc body, we can't make - an official declaration. - - This is your unofficial assurance that libpng from version 0.81 and - upward are Y2K compliant. It is my belief that earlier versions were - also Y2K compliant. - - Libpng only has three year fields. One is a 2-byte unsigned integer - that will hold years up to 65535. The other two hold the date in text - format, and will hold years up to 9999. - - The integer is - "png_uint_16 year" in png_time_struct. - - The strings are - "png_charp time_buffer" in png_struct and - "near_time_buffer", which is a local character string in png.c. - - There are seven time-related functions: - - png_convert_to_rfc_1123() in png.c - (formerly png_convert_to_rfc_1152() in error) - png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - png_convert_from_time_t() in pngwrite.c - png_get_tIME() in pngget.c - png_handle_tIME() in pngrutil.c, called in pngread.c - png_set_tIME() in pngset.c - png_write_tIME() in pngwutil.c, called in pngwrite.c - - All appear to handle dates properly in a Y2K environment. The - png_convert_from_time_t() function calls gmtime() to convert from system - clock time, which returns (year - 1900), which we properly convert to - the full 4-digit year. There is a possibility that applications using - libpng are not passing 4-digit years into the png_convert_to_rfc_1123() - function, or incorrectly passing only a 2-digit year instead of - "year - 1900" into the png_convert_from_struct_tm() function, but this - is not under our control. The libpng documentation has always stated - that it works with 4-digit years, and the APIs have been documented as - such. - - The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned - integer to hold the year, and can hold years as large as 65535. - - - Glenn Randers-Pehrson - libpng maintainer - PNG Development Group diff --git a/src/png/ansi2knr.1 b/src/png/ansi2knr.1 deleted file mode 100644 index f9ee5a631c..0000000000 --- a/src/png/ansi2knr.1 +++ /dev/null @@ -1,36 +0,0 @@ -.TH ANSI2KNR 1 "19 Jan 1996" -.SH NAME -ansi2knr \- convert ANSI C to Kernighan & Ritchie C -.SH SYNOPSIS -.I ansi2knr -[--varargs] input_file [output_file] -.SH DESCRIPTION -If no output_file is supplied, output goes to stdout. -.br -There are no error messages. -.sp -.I ansi2knr -recognizes function definitions by seeing a non-keyword identifier at the left -margin, followed by a left parenthesis, with a right parenthesis as the last -character on the line, and with a left brace as the first token on the -following line (ignoring possible intervening comments). It will recognize a -multi-line header provided that no intervening line ends with a left or right -brace or a semicolon. These algorithms ignore whitespace and comments, except -that the function name must be the first thing on the line. -.sp -The following constructs will confuse it: -.br - - Any other construct that starts at the left margin and follows the -above syntax (such as a macro or function call). -.br - - Some macros that tinker with the syntax of the function header. -.sp -The --varargs switch is obsolete, and is recognized only for -backwards compatibility. The present version of -.I ansi2knr -will always attempt to convert a ... argument to va_alist and va_dcl. -.SH AUTHOR -L. Peter Deutsch wrote the original ansi2knr and -continues to maintain the current version; most of the code in the current -version is his work. ansi2knr also includes contributions by Francois -Pinard and Jim Avera . diff --git a/src/png/ansi2knr.c b/src/png/ansi2knr.c deleted file mode 100644 index dfb29a2448..0000000000 --- a/src/png/ansi2knr.c +++ /dev/null @@ -1,695 +0,0 @@ -/* ansi2knr.c */ - -/* Convert ANSI C function definitions to K&R ("traditional C") syntax -Copyright (C) 1989 Aladdin Enterprises. All rights reserved. -Copyright (C) 1988 Richard M. Stallman - -ansi2knr is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY. No author or distributor accepts responsibility to anyone for the -consequences of using it or for whether it serves any particular purpose or -works at all, unless he says so in writing. Refer to the GNU General Public -License (the "GPL") for full details. - -Everyone is granted permission to copy, modify and redistribute ansi2knr, -but only under the conditions described in the GPL. A copy of this license -is supposed to have been given to you along with ansi2knr so you can know -your rights and responsibilities. It should be in a file named COPYLEFT. -[In the LIBPNG distribution, the GPL appears below, not in a separate file.] -Among other things, the copyright notice and this notice must be preserved -on all copies. - -We explicitly state here what we believe is already implied by the GPL: if -the ansi2knr program is distributed as a separate source file and a -separate executable file which are aggregated on a storage medium together -with another program, this in itself does not bring the other program under -the GPL, nor does the mere fact that such a program or the procedures for -constructing it invoke the ansi2knr executable bring any other part of the -program under the GPL. -*/ - -/* ----------- Here is the GNU GPL file COPYLEFT, referred to above ---------- ------ These terms do NOT apply to the LIBPNG software itself; see README ------ - - GHOSTSCRIPT GENERAL PUBLIC LICENSE - (Clarified 11 Feb 1988) - - Copyright (C) 1988 Richard M. Stallman - Everyone is permitted to copy and distribute verbatim copies of this - license, but changing it is not allowed. You can also use this wording - to make the terms for other programs. - - The license agreements of most software companies keep you at the -mercy of those companies. By contrast, our general public license is -intended to give everyone the right to share Ghostscript. To make sure -that you get the rights we want you to have, we need to make -restrictions that forbid anyone to deny you these rights or to ask you -to surrender the rights. Hence this license agreement. - - Specifically, we want to make sure that you have the right to give -away copies of Ghostscript, that you receive source code or else can get -it if you want it, that you can change Ghostscript or use pieces of it -in new free programs, and that you know you can do these things. - - To make sure that everyone has such rights, we have to forbid you to -deprive anyone else of these rights. For example, if you distribute -copies of Ghostscript, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must tell them their rights. - - Also, for our own protection, we must make certain that everyone finds -out that there is no warranty for Ghostscript. If Ghostscript is -modified by someone else and passed on, we want its recipients to know -that what they have is not what we distributed, so that any problems -introduced by others will not reflect on our reputation. - - Therefore we (Richard M. Stallman and the Free Software Foundation, -Inc.) make the following terms which say what you must do to be allowed -to distribute or change Ghostscript. - - - COPYING POLICIES - - 1. You may copy and distribute verbatim copies of Ghostscript source -code as you receive it, in any medium, provided that you conspicuously -and appropriately publish on each copy a valid copyright and license -notice "Copyright (C) 1989 Aladdin Enterprises. All rights reserved. -Distributed by Free Software Foundation, Inc." (or with whatever year is -appropriate); keep intact the notices on all files that refer to this -License Agreement and to the absence of any warranty; and give any other -recipients of the Ghostscript program a copy of this License Agreement -along with the program. You may charge a distribution fee for the -physical act of transferring a copy. - - 2. You may modify your copy or copies of Ghostscript or any portion of -it, and copy and distribute such modifications under the terms of -Paragraph 1 above, provided that you also do the following: - - a) cause the modified files to carry prominent notices stating - that you changed the files and the date of any change; and - - b) cause the whole of any work that you distribute or publish, - that in whole or in part contains or is a derivative of Ghostscript - or any part thereof, to be licensed at no charge to all third - parties on terms identical to those contained in this License - Agreement (except that you may choose to grant more extensive - warranty protection to some or all third parties, at your option). - - c) You may charge a distribution fee for the physical act of - transferring a copy, and you may at your option offer warranty - protection in exchange for a fee. - -Mere aggregation of another unrelated program with this program (or its -derivative) on a volume of a storage or distribution medium does not bring -the other program under the scope of these terms. - - 3. You may copy and distribute Ghostscript (or a portion or derivative -of it, under Paragraph 2) in object code or executable form under the -terms of Paragraphs 1 and 2 above provided that you also do one of the -following: - - a) accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of - Paragraphs 1 and 2 above; or, - - b) accompany it with a written offer, valid for at least three - years, to give any third party free (except for a nominal - shipping charge) a complete machine-readable copy of the - corresponding source code, to be distributed under the terms of - Paragraphs 1 and 2 above; or, - - c) accompany it with the information you received as to where the - corresponding source code may be obtained. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form alone.) - -For an executable file, complete source code means all the source code for -all modules it contains; but, as a special exception, it need not include -source code for modules which are standard libraries that accompany the -operating system on which the executable file runs. - - 4. You may not copy, sublicense, distribute or transfer Ghostscript -except as expressly provided under this License Agreement. Any attempt -otherwise to copy, sublicense, distribute or transfer Ghostscript is -void and your rights to use the program under this License agreement -shall be automatically terminated. However, parties who have received -computer software programs from you with this License Agreement will not -have their licenses terminated so long as such parties remain in full -compliance. - - 5. If you wish to incorporate parts of Ghostscript into other free -programs whose distribution conditions are different, write to the Free -Software Foundation at 675 Mass Ave, Cambridge, MA 02139. We have not -yet worked out a simple rule that can be stated here, but we will often -permit this. We 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. - -Your comments and suggestions about our licensing policies and our -software are welcome! Please contact the Free Software Foundation, -Inc., 675 Mass Ave, Cambridge, MA 02139, or call (617) 876-3296. - - NO WARRANTY - - BECAUSE GHOSTSCRIPT IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY -NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT -WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC, RICHARD -M. STALLMAN, ALADDIN ENTERPRISES, L. PETER DEUTSCH, AND/OR OTHER PARTIES -PROVIDE GHOSTSCRIPT "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 GHOSTSCRIPT IS WITH -YOU. SHOULD GHOSTSCRIPT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL -NECESSARY SERVICING, REPAIR OR CORRECTION. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M. -STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., L. PETER DEUTSCH, ALADDIN -ENTERPRISES, AND/OR ANY OTHER PARTY WHO MAY MODIFY AND REDISTRIBUTE -GHOSTSCRIPT AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING -ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR -CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE -(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED -INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE -PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) GHOSTSCRIPT, EVEN IF YOU -HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM -BY ANY OTHER PARTY. - --------------------- End of file COPYLEFT ------------------------------ -*/ - -/* - * Usage: - ansi2knr input_file [output_file] - * If no output_file is supplied, output goes to stdout. - * There are no error messages. - * - * ansi2knr recognizes function definitions by seeing a non-keyword - * identifier at the left margin, followed by a left parenthesis, - * with a right parenthesis as the last character on the line, - * and with a left brace as the first token on the following line - * (ignoring possible intervening comments). - * It will recognize a multi-line header provided that no intervening - * line ends with a left or right brace or a semicolon. - * These algorithms ignore whitespace and comments, except that - * the function name must be the first thing on the line. - * The following constructs will confuse it: - * - Any other construct that starts at the left margin and - * follows the above syntax (such as a macro or function call). - * - Some macros that tinker with the syntax of the function header. - */ - -/* - * The original and principal author of ansi2knr is L. Peter Deutsch - * . Other authors are noted in the change history - * that follows (in reverse chronological order): - lpd 96-01-21 added code to cope with not HAVE_CONFIG_H and with - compilers that don't understand void, as suggested by - Tom Lane - lpd 96-01-15 changed to require that the first non-comment token - on the line following a function header be a left brace, - to reduce sensitivity to macros, as suggested by Tom Lane - - lpd 95-06-22 removed #ifndefs whose sole purpose was to define - undefined preprocessor symbols as 0; changed all #ifdefs - for configuration symbols to #ifs - lpd 95-04-05 changed copyright notice to make it clear that - including ansi2knr in a program does not bring the entire - program under the GPL - lpd 94-12-18 added conditionals for systems where ctype macros - don't handle 8-bit characters properly, suggested by - Francois Pinard ; - removed --varargs switch (this is now the default) - lpd 94-10-10 removed CONFIG_BROKETS conditional - lpd 94-07-16 added some conditionals to help GNU `configure', - suggested by Francois Pinard ; - properly erase prototype args in function parameters, - contributed by Jim Avera ; - correct error in writeblanks (it shouldn't erase EOLs) - lpd 89-xx-xx original version - */ - -/* Most of the conditionals here are to make ansi2knr work with */ -/* or without the GNU configure machinery. */ - -#if HAVE_CONFIG_H -# include -#endif - -#include -#include - -#if HAVE_CONFIG_H - -/* - For properly autoconfiguring ansi2knr, use AC_CONFIG_HEADER(config.h). - This will define HAVE_CONFIG_H and so, activate the following lines. - */ - -# if STDC_HEADERS || HAVE_STRING_H -# include -# else -# include -# endif - -#else /* not HAVE_CONFIG_H */ - -/* Otherwise do it the hard way */ - -# ifdef BSD -# include -# else -# ifdef VMS - extern int strlen(), strncmp(); -# else -# include -# endif -# endif - -#endif /* not HAVE_CONFIG_H */ - -#if STDC_HEADERS -# include -#else -/* - malloc and free should be declared in stdlib.h, - but if you've got a K&R compiler, they probably aren't. - */ -# ifdef MSDOS -# include -# else -# ifdef VMS - extern char *malloc(); - extern void free(); -# else - extern char *malloc(); - extern int free(); -# endif -# endif - -#endif - -/* - * The ctype macros don't always handle 8-bit characters correctly. - * Compensate for this here. - */ -#ifdef isascii -# undef HAVE_ISASCII /* just in case */ -# define HAVE_ISASCII 1 -#else -#endif -#if STDC_HEADERS || !HAVE_ISASCII -# define is_ascii(c) 1 -#else -# define is_ascii(c) isascii(c) -#endif - -#define is_space(c) (is_ascii(c) && isspace(c)) -#define is_alpha(c) (is_ascii(c) && isalpha(c)) -#define is_alnum(c) (is_ascii(c) && isalnum(c)) - -/* Scanning macros */ -#define isidchar(ch) (is_alnum(ch) || (ch) == '_') -#define isidfirstchar(ch) (is_alpha(ch) || (ch) == '_') - -/* Forward references */ -char *skipspace(); -int writeblanks(); -int test1(); -int convert1(); - -/* The main program */ -int -main(argc, argv) - int argc; - char *argv[]; -{ FILE *in, *out; -#define bufsize 5000 /* arbitrary size */ - char *buf; - char *line; - char *more; - /* - * In previous versions, ansi2knr recognized a --varargs switch. - * If this switch was supplied, ansi2knr would attempt to convert - * a ... argument to va_alist and va_dcl; if this switch was not - * supplied, ansi2knr would simply drop any such arguments. - * Now, ansi2knr always does this conversion, and we only - * check for this switch for backward compatibility. - */ - int convert_varargs = 1; - - if ( argc > 1 && argv[1][0] == '-' ) - { if ( !strcmp(argv[1], "--varargs") ) - { convert_varargs = 1; - argc--; - argv++; - } - else - { fprintf(stderr, "Unrecognized switch: %s\n", argv[1]); - exit(1); - } - } - switch ( argc ) - { - default: - printf("Usage: ansi2knr input_file [output_file]\n"); - exit(0); - case 2: - out = stdout; - break; - case 3: - out = fopen(argv[2], "w"); - if ( out == NULL ) - { fprintf(stderr, "Cannot open output file %s\n", argv[2]); - exit(1); - } - } - in = fopen(argv[1], "r"); - if ( in == NULL ) - { fprintf(stderr, "Cannot open input file %s\n", argv[1]); - exit(1); - } - fprintf(out, "#line 1 \"%s\"\n", argv[1]); - buf = malloc(bufsize); - line = buf; - while ( fgets(line, (unsigned)(buf + bufsize - line), in) != NULL ) - { -test: line += strlen(line); - switch ( test1(buf) ) - { - case 2: /* a function header */ - convert1(buf, out, 1, convert_varargs); - break; - case 1: /* a function */ - /* Check for a { at the start of the next line. */ - more = ++line; -f: if ( line >= buf + (bufsize - 1) ) /* overflow check */ - goto wl; - if ( fgets(line, (unsigned)(buf + bufsize - line), in) == NULL ) - goto wl; - switch ( *skipspace(more, 1) ) - { - case '{': - /* Definitely a function header. */ - convert1(buf, out, 0, convert_varargs); - fputs(more, out); - break; - case 0: - /* The next line was blank or a comment: */ - /* keep scanning for a non-comment. */ - line += strlen(line); - goto f; - default: - /* buf isn't a function header, but */ - /* more might be. */ - fputs(buf, out); - strcpy(buf, more); - line = buf; - goto test; - } - break; - case -1: /* maybe the start of a function */ - if ( line != buf + (bufsize - 1) ) /* overflow check */ - continue; - /* falls through */ - default: /* not a function */ -wl: fputs(buf, out); - break; - } - line = buf; - } - if ( line != buf ) - fputs(buf, out); - free(buf); - fclose(out); - fclose(in); - return 0; -} - -/* Skip over space and comments, in either direction. */ -char * -skipspace(p, dir) - register char *p; - register int dir; /* 1 for forward, -1 for backward */ -{ for ( ; ; ) - { while ( is_space(*p) ) - p += dir; - if ( !(*p == '/' && p[dir] == '*') ) - break; - p += dir; p += dir; - while ( !(*p == '*' && p[dir] == '/') ) - { if ( *p == 0 ) - return p; /* multi-line comment?? */ - p += dir; - } - p += dir; p += dir; - } - return p; -} - -/* - * Write blanks over part of a string. - * Don't overwrite end-of-line characters. - */ -int -writeblanks(start, end) - char *start; - char *end; -{ char *p; - for ( p = start; p < end; p++ ) - if ( *p != '\r' && *p != '\n' ) - *p = ' '; - return 0; -} - -/* - * Test whether the string in buf is a function definition. - * The string may contain and/or end with a newline. - * Return as follows: - * 0 - definitely not a function definition; - * 1 - definitely a function definition; - * 2 - definitely a function prototype (NOT USED); - * -1 - may be the beginning of a function definition, - * append another line and look again. - * The reason we don't attempt to convert function prototypes is that - * Ghostscript's declaration-generating macros look too much like - * prototypes, and confuse the algorithms. - */ -int -test1(buf) - char *buf; -{ register char *p = buf; - char *bend; - char *endfn; - int contin; - - if ( !isidfirstchar(*p) ) - return 0; /* no name at left margin */ - bend = skipspace(buf + strlen(buf) - 1, -1); - switch ( *bend ) - { - case ';': contin = 0 /*2*/; break; - case ')': contin = 1; break; - case '{': return 0; /* not a function */ - case '}': return 0; /* not a function */ - default: contin = -1; - } - while ( isidchar(*p) ) - p++; - endfn = p; - p = skipspace(p, 1); - if ( *p++ != '(' ) - return 0; /* not a function */ - p = skipspace(p, 1); - if ( *p == ')' ) - return 0; /* no parameters */ - /* Check that the apparent function name isn't a keyword. */ - /* We only need to check for keywords that could be followed */ - /* by a left parenthesis (which, unfortunately, is most of them). */ - { static char *words[] = - { "asm", "auto", "case", "char", "const", "double", - "extern", "float", "for", "if", "int", "long", - "register", "return", "short", "signed", "sizeof", - "static", "switch", "typedef", "unsigned", - "void", "volatile", "while", 0 - }; - char **key = words; - char *kp; - int len = endfn - buf; - - while ( (kp = *key) != 0 ) - { if ( strlen(kp) == len && !strncmp(kp, buf, len) ) - return 0; /* name is a keyword */ - key++; - } - } - return contin; -} - -/* Convert a recognized function definition or header to K&R syntax. */ -int -convert1(buf, out, header, convert_varargs) - char *buf; - FILE *out; - int header; /* Boolean */ - int convert_varargs; /* Boolean */ -{ char *endfn; - register char *p; - char **breaks; - unsigned num_breaks = 2; /* for testing */ - char **btop; - char **bp; - char **ap; - char *vararg = 0; - - /* Pre-ANSI implementations don't agree on whether strchr */ - /* is called strchr or index, so we open-code it here. */ - for ( endfn = buf; *(endfn++) != '('; ) - ; -top: p = endfn; - breaks = (char **)malloc(sizeof(char *) * num_breaks * 2); - if ( breaks == 0 ) - { /* Couldn't allocate break table, give up */ - fprintf(stderr, "Unable to allocate break table!\n"); - fputs(buf, out); - return -1; - } - btop = breaks + num_breaks * 2 - 2; - bp = breaks; - /* Parse the argument list */ - do - { int level = 0; - char *lp = NULL; - char *rp; - char *end = NULL; - - if ( bp >= btop ) - { /* Filled up break table. */ - /* Allocate a bigger one and start over. */ - free((char *)breaks); - num_breaks <<= 1; - goto top; - } - *bp++ = p; - /* Find the end of the argument */ - for ( ; end == NULL; p++ ) - { switch(*p) - { - case ',': - if ( !level ) end = p; - break; - case '(': - if ( !level ) lp = p; - level++; - break; - case ')': - if ( --level < 0 ) end = p; - else rp = p; - break; - case '/': - p = skipspace(p, 1) - 1; - break; - default: - ; - } - } - /* Erase any embedded prototype parameters. */ - if ( lp ) - writeblanks(lp + 1, rp); - p--; /* back up over terminator */ - /* Find the name being declared. */ - /* This is complicated because of procedure and */ - /* array modifiers. */ - for ( ; ; ) - { p = skipspace(p - 1, -1); - switch ( *p ) - { - case ']': /* skip array dimension(s) */ - case ')': /* skip procedure args OR name */ - { int level = 1; - while ( level ) - switch ( *--p ) - { - case ']': case ')': level++; break; - case '[': case '(': level--; break; - case '/': p = skipspace(p, -1) + 1; break; - default: ; - } - } - if ( *p == '(' && *skipspace(p + 1, 1) == '*' ) - { /* We found the name being declared */ - while ( !isidfirstchar(*p) ) - p = skipspace(p, 1) + 1; - goto found; - } - break; - default: - goto found; - } - } -found: if ( *p == '.' && p[-1] == '.' && p[-2] == '.' ) - { if ( convert_varargs ) - { *bp++ = "va_alist"; - vararg = p-2; - } - else - { p++; - if ( bp == breaks + 1 ) /* sole argument */ - writeblanks(breaks[0], p); - else - writeblanks(bp[-1] - 1, p); - bp--; - } - } - else - { while ( isidchar(*p) ) p--; - *bp++ = p+1; - } - p = end; - } - while ( *p++ == ',' ); - *bp = p; - /* Make a special check for 'void' arglist */ - if ( bp == breaks+2 ) - { p = skipspace(breaks[0], 1); - if ( !strncmp(p, "void", 4) ) - { p = skipspace(p+4, 1); - if ( p == breaks[2] - 1 ) - { bp = breaks; /* yup, pretend arglist is empty */ - writeblanks(breaks[0], p + 1); - } - } - } - /* Put out the function name and left parenthesis. */ - p = buf; - while ( p != endfn ) putc(*p, out), p++; - /* Put out the declaration. */ - if ( header ) - { fputs(");", out); - for ( p = breaks[0]; *p; p++ ) - if ( *p == '\r' || *p == '\n' ) - putc(*p, out); - } - else - { for ( ap = breaks+1; ap < bp; ap += 2 ) - { p = *ap; - while ( isidchar(*p) ) - putc(*p, out), p++; - if ( ap < bp - 1 ) - fputs(", ", out); - } - fputs(") ", out); - /* Put out the argument declarations */ - for ( ap = breaks+2; ap <= bp; ap += 2 ) - (*ap)[-1] = ';'; - if ( vararg != 0 ) - { *vararg = 0; - fputs(breaks[0], out); /* any prior args */ - fputs("va_dcl", out); /* the final arg */ - fputs(bp[0], out); - } - else - fputs(breaks[0], out); - } - free((char *)breaks); - return 0; -} diff --git a/src/png/example.c b/src/png/example.c deleted file mode 100644 index 088aad3a76..0000000000 --- a/src/png/example.c +++ /dev/null @@ -1,702 +0,0 @@ - -/* example.c - an example of using libpng */ - -/* This is an example of how to use libpng to read and write PNG files. - * The file libpng.txt is much more verbose then this. If you have not - * read it, do so first. This was designed to be a starting point of an - * implementation. This is not officially part of libpng, and therefore - * does not require a copyright notice. - * - * This file does not currently compile, because it is missing certain - * parts, like allocating memory to hold an image. You will have to - * supply these parts to get it to compile. For an example of a minimal - * working PNG reader/writer, see pngtest.c, included in this distribution. - */ - -#include "png.h" - -/* Check to see if a file is a PNG file using png_sig_cmp(). png_sig_cmp() - * returns zero if the image is a PNG and nonzero if it isn't a PNG. - * - * The function check_if_png() shown here, but not used, returns nonzero (true) - * if the file can be opened and is a PNG, 0 (false) otherwise. - * - * If this call is successful, and you are going to keep the file open, - * you should call png_set_sig_bytes(png_ptr, PNG_BYTES_TO_CHECK); once - * you have created the png_ptr, so that libpng knows your application - * has read that many bytes from the start of the file. Make sure you - * don't call png_set_sig_bytes() with more than 8 bytes read or give it - * an incorrect number of bytes read, or you will either have read too - * many bytes (your fault), or you are telling libpng to read the wrong - * number of magic bytes (also your fault). - * - * Many applications already read the first 2 or 4 bytes from the start - * of the image to determine the file type, so it would be easiest just - * to pass the bytes to png_sig_cmp() or even skip that if you know - * you have a PNG file, and call png_set_sig_bytes(). - */ -#define PNG_BYTES_TO_CHECK 4 -int check_if_png(char *file_name, FILE **fp) -{ - char buf[PNG_BYTES_TO_CHECK]; - - /* Open the prospective PNG file. */ - if ((*fp = fopen(file_name, "rb")) != NULL); - return 0; - - /* Read in some of the signature bytes */ - if (fread(buf, 1, PNG_BYTES_TO_CHECK, *fp) != PNG_BYTES_TO_CHECK) - return 0; - - /* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. - Return nonzero (true) if they match */ - - return(!png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK)); -} - -/* Read a PNG file. You may want to return an error code if the read - * fails (depending upon the failure). There are two "prototypes" given - * here - one where we are given the filename, and we need to open the - * file, and the other where we are given an open file (possibly with - * some or all of the magic bytes read - see comments above). - */ -#ifdef open_file /* prototype 1 */ -void read_png(char *file_name) /* We need to open the file */ -{ - png_structp png_ptr; - png_infop info_ptr; - unsigned int sig_read = 0; - png_uint_32 width, height; - int bit_depth, color_type, interlace_type; - FILE *fp; - - if ((fp = fopen(file_name, "rb")) == NULL) - return; -#else no_open_file /* prototype 2 */ -void read_png(FILE *fp, unsigned int sig_read) /* file is already open */ -{ - png_structp png_ptr; - png_infop info_ptr; - png_uint_32 width, height; - int bit_depth, color_type, interlace_type; -#endif no_open_file /* only use one prototype! */ - - /* Create and initialize the png_struct with the desired error handler - * functions. If you want to use the default stderr and longjump method, - * you can supply NULL for the last three parameters. We also supply the - * the compiler header file version, so that we know if the application - * was compiled with a compatible version of the library. REQUIRED - */ - png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, - png_voidp user_error_ptr, user_error_fn, user_warning_fn); - - if (png_ptr == NULL) - { - fclose(fp); - return; - } - - /* Allocate/initialize the memory for image information. REQUIRED. */ - info_ptr = png_create_info_struct(png_ptr); - if (info_ptr == NULL) - { - fclose(fp); - png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL); - return; - } - - /* Set error handling if you are using the setjmp/longjmp method (this is - * the normal method of doing things with libpng). REQUIRED unless you - * set up your own error handlers in the png_create_read_struct() earlier. - */ - if (setjmp(png_ptr->jmpbuf)) - { - /* Free all of the memory associated with the png_ptr and info_ptr */ - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); - fclose(fp); - /* If we get here, we had a problem reading the file */ - return; - } - - /* One of the following I/O initialization methods is REQUIRED */ -#ifdef streams /* PNG file I/O method 1 */ - /* Set up the input control if you are using standard C streams */ - png_init_io(png_ptr, fp); - -#else no_streams /* PNG file I/O method 2 */ - /* If you are using replacement read functions, instead of calling - * png_init_io() here you would call: - */ - png_set_read_fn(png_ptr, (void *)user_io_ptr, user_read_fn); - /* where user_io_ptr is a structure you want available to the callbacks */ -#endif no_streams /* Use only one I/O method! */ - - /* If we have already read some of the signature */ - png_set_sig_bytes(png_ptr, sig_read); - - /* The call to png_read_info() gives us all of the information from the - * PNG file before the first IDAT (image data chunk). REQUIRED - */ - png_read_info(png_ptr, info_ptr); - - png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, - &interlace_type, NULL, NULL); - -/**** Set up the data transformations you want. Note that these are all - **** optional. Only call them if you want/need them. Many of the - **** transformations only work on specific types of images, and many - **** are mutually exclusive. - ****/ - - /* tell libpng to strip 16 bit/color files down to 8 bits/color */ - png_set_strip_16(png_ptr); - - /* Strip alpha bytes from the input data without combining with th - * background (not recommended). - */ - png_set_strip_alpha(png_ptr); - - /* Extract multiple pixels with bit depths of 1, 2, and 4 from a single - * byte into separate bytes (useful for paletted and grayscale images). - */ - png_set_packing(png_ptr); - - /* Change the order of packed pixels to least significant bit first - * (not useful if you are using png_set_packing). */ - png_set_packswap(png_ptr); - - /* Expand paletted colors into true RGB triplets */ - if (color_type == PNG_COLOR_TYPE_PALETTE) - png_set_expand(png_ptr); - - /* Expand grayscale images to the full 8 bits from 1, 2, or 4 bits/pixel */ - if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) - png_set_expand(png_ptr); - - /* Expand paletted or RGB images with transparency to full alpha channels - * so the data will be available as RGBA quartets. - */ - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) - png_set_expand(png_ptr); - - /* Set the background color to draw transparent and alpha images over. - * It is possible to set the red, green, and blue components directly - * for paletted images instead of supplying a palette index. Note that - * even if the PNG file supplies a background, you are not required to - * use it - you should use the (solid) application background if it has one. - */ - - png_color_16 my_background, *image_background; - - if (png_get_bKGD(png_ptr, info_ptr, &image_background)) - png_set_background(png_ptr, image_background, - PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); - else - png_set_background(png_ptr, &my_background, - PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); - - /* Some suggestions as to how to get a screen gamma value */ - - /* Note that screen gamma is (display_gamma/viewing_gamma) */ - if (/* We have a user-defined screen gamma value */) - { - screen_gamma = user-defined screen_gamma; - } - /* This is one way that applications share the same screen gamma value */ - else if ((gamma_str = getenv("SCREEN_GAMMA")) != NULL) - { - screen_gamma = atof(gamma_str); - } - /* If we don't have another value */ - else - { - screen_gamma = 2.2; /* A good guess for a PC monitors in a dimly - lit room */ - screen_gamma = 1.7 or 1.0; /* A good guess for Mac systems */ - } - - /* Tell libpng to handle the gamma conversion for you. The second call - * is a good guess for PC generated images, but it should be configurable - * by the user at run time by the user. It is strongly suggested that - * your application support gamma correction. - */ - - int intent; - - if (png_get_sRGB(png_ptr, info_ptr, &intent)) - png_set_sRGB(png_ptr, intent, 0); - else - { - double image_gamma; - if (png_get_gAMA(png_ptr, info_ptr, &image_gamma)) - png_set_gamma(png_ptr, screen_gamma, image_gamma); - else - png_set_gamma(png_ptr, screen_gamma, 0.45455); - } - - /* Dither RGB files down to 8 bit palette or reduce palettes - * to the number of colors available on your screen. - */ - if (color_type & PNG_COLOR_MASK_COLOR) - { - png_uint_32 num_palette; - png_colorp palette; - - /* This reduces the image to the application supplied palette */ - if (/* we have our own palette */) - { - /* An array of colors to which the image should be dithered */ - png_color std_color_cube[MAX_SCREEN_COLORS]; - - png_set_dither(png_ptr, std_color_cube, MAX_SCREEN_COLORS, - MAX_SCREEN_COLORS, NULL, 0); - } - /* This reduces the image to the palette supplied in the file */ - else if (png_get_PLTE(png_ptr, info_ptr, &palette, &num_palette)) - { - png_color16p histogram; - - png_get_hIST(png_ptr, info_ptr, &histogram); - - png_set_dither(png_ptr, palette, num_palette, - max_screen_colors, histogram, 0); - } - } - - /* invert monocrome files to have 0 as white and 1 as black */ - png_set_invert_mono(png_ptr); - - /* If you want to shift the pixel values from the range [0,255] or - * [0,65535] to the original [0,7] or [0,31], or whatever range the - * colors were originally in: - */ - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_sBIT)) - { - png_color8p sig_bit; - - png_get_sBIT(png_ptr, info_ptr, &sig_bit); - png_set_shift(png_ptr, sig_bit); - } - - /* flip the RGB pixels to BGR (or RGBA to BGRA) */ - png_set_bgr(png_ptr); - - /* swap the RGBA or GA data to ARGB or AG (or BGRA to ABGR) */ - png_set_swap_alpha(png_ptr); - - /* swap bytes of 16 bit files to least significant byte first */ - png_set_swap(png_ptr); - - /* Add filler (or alpha) byte (before/after each RGB triplet) */ - png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); - - /* Turn on interlace handling. REQUIRED if you are not using - * png_read_image(). To see how to handle interlacing passes, - * see the png_read_row() method below: - */ - number_passes = png_set_interlace_handling(png_ptr); - - /* Optional call to gamma correct and add the background to the palette - * and update info structure. REQUIRED if you are expecting libpng to - * update the palette for you (ie you selected such a transform above). - */ - png_read_update_info(png_ptr, info_ptr); - - /* Allocate the memory to hold the image using the fields of info_ptr. */ - - /* The easiest way to read the image: */ - png_bytep row_pointers[height]; - - for (row = 0; row < height; row++) - { - row_pointers[row] = malloc(png_get_rowbytes(png_ptr, info_ptr)); - } - - /* Now it's time to read the image. One of these methods is REQUIRED */ -#ifdef entire /* Read the entire image in one go */ - png_read_image(png_ptr, row_pointers); - -#else no_entire /* Read the image one or more scanlines at a time */ - /* The other way to read images - deal with interlacing: */ - - for (pass = 0; pass < number_passes; pass++) - { -#ifdef single /* Read the image a single row at a time */ - for (y = 0; y < height; y++) - { - png_read_rows(png_ptr, &row_pointers[y], NULL, 1); - } - -#else no_single /* Read the image several rows at a time */ - for (y = 0; y < height; y += number_of_rows) - { -#ifdef sparkle /* Read the image using the "sparkle" effect. */ - png_read_rows(png_ptr, &row_pointers[y], NULL, number_of_rows); - - png_read_rows(png_ptr, NULL, row_pointers[y], number_of_rows); -#else no_sparkle /* Read the image using the "rectangle" effect */ - png_read_rows(png_ptr, NULL, &row_pointers[y], number_of_rows); -#endif no_sparkle /* use only one of these two methods */ - } - - /* if you want to display the image after every pass, do - so here */ -#endif no_single /* use only one of these two methods */ - } -#endif no_entire /* use only one of these two methods */ - - /* read rest of file, and get additional chunks in info_ptr - REQUIRED */ - png_read_end(png_ptr, info_ptr); - - /* clean up after the read, and free any memory allocated - REQUIRED */ - png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL); - - /* close the file */ - fclose(fp); - - /* that's it */ - return; -} - -/* progressively read a file */ - -int -initialize_png_reader(png_structp *png_ptr, png_infop *info_ptr) -{ - /* Create and initialize the png_struct with the desired error handler - * functions. If you want to use the default stderr and longjump method, - * you can supply NULL for the last three parameters. We also check that - * the library version is compatible in case we are using dynamically - * linked libraries. - */ - *png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, - png_voidp user_error_ptr, user_error_fn, user_warning_fn); - - if (*png_ptr == NULL) - { - *info_ptr = NULL; - return ERROR; - } - - *info_ptr = png_create_info_struct(png_ptr); - - if (*info_ptr == NULL) - { - png_destroy_read_struct(png_ptr, info_ptr, (png_infopp)NULL); - return ERROR; - } - - if (setjmp((*png_ptr)->jmpbuf)) - { - png_destroy_read_struct(png_ptr, info_ptr, (png_infopp)NULL); - return ERROR; - } - - /* This one's new. You will need to provide all three - * function callbacks, even if you aren't using them all. - * If you aren't using all functions, you can specify NULL - * parameters. Even when all three functions are NULL, - * you need to call png_set_progressive_read_fn(). - * These functions shouldn't be dependent on global or - * static variables if you are decoding several images - * simultaneously. You should store stream specific data - * in a separate struct, given as the second parameter, - * and retrieve the pointer from inside the callbacks using - * the function png_get_progressive_ptr(png_ptr). - */ - png_set_progressive_read_fn(*png_ptr, (void *)stream_data, - info_callback, row_callback, end_callback); - - return OK; -} - -int -process_data(png_structp *png_ptr, png_infop *info_ptr, - png_bytep buffer, png_uint_32 length) -{ - if (setjmp((*png_ptr)->jmpbuf)) - { - /* Free the png_ptr and info_ptr memory on error */ - png_destroy_read_struct(png_ptr, info_ptr, (png_infopp)NULL); - return ERROR; - } - - /* This one's new also. Simply give it chunks of data as - * they arrive from the data stream (in order, of course). - * On Segmented machines, don't give it any more than 64K. - * The library seems to run fine with sizes of 4K, although - * you can give it much less if necessary (I assume you can - * give it chunks of 1 byte, but I haven't tried with less - * than 256 bytes yet). When this function returns, you may - * want to display any rows that were generated in the row - * callback, if you aren't already displaying them there. - */ - png_process_data(*png_ptr, *info_ptr, buffer, length); - return OK; -} - -info_callback(png_structp png_ptr, png_infop info) -{ -/* do any setup here, including setting any of the transformations - * mentioned in the Reading PNG files section. For now, you _must_ - * call either png_start_read_image() or png_read_update_info() - * after all the transformations are set (even if you don't set - * any). You may start getting rows before png_process_data() - * returns, so this is your last chance to prepare for that. - */ -} - -row_callback(png_structp png_ptr, png_bytep new_row, - png_uint_32 row_num, int pass) -{ -/* this function is called for every row in the image. If the - * image is interlacing, and you turned on the interlace handler, - * this function will be called for every row in every pass. - * Some of these rows will not be changed from the previous pass. - * When the row is not changed, the new_row variable will be NULL. - * The rows and passes are called in order, so you don't really - * need the row_num and pass, but I'm supplying them because it - * may make your life easier. - * - * For the non-NULL rows of interlaced images, you must call - * png_progressive_combine_row() passing in the row and the - * old row. You can call this function for NULL rows (it will - * just return) and for non-interlaced images (it just does the - * memcpy for you) if it will make the code easier. Thus, you - * can just do this for all cases: - */ - - png_progressive_combine_row(png_ptr, old_row, new_row); - -/* where old_row is what was displayed for previous rows. Note - * that the first pass (pass == 0 really) will completely cover - * the old row, so the rows do not have to be initialized. After - * the first pass (and only for interlaced images), you will have - * to pass the current row, and the function will combine the - * old row and the new row. - */ -} - -end_callback(png_structp png_ptr, png_infop info) -{ -/* this function is called when the whole image has been read, - * including any chunks after the image (up to and including - * the IEND). You will usually have the same info chunk as you - * had in the header, although some data may have been added - * to the comments and time fields. - * - * Most people won't do much here, perhaps setting a flag that - * marks the image as finished. - */ -} - -/* write a png file */ -void write_png(char *file_name /* , ... other image information ... */) -{ - FILE *fp; - png_structp png_ptr; - png_infop info_ptr; - - /* open the file */ - fp = fopen(file_name, "wb"); - if (fp == NULL) - return; - - /* Create and initialize the png_struct with the desired error handler - * functions. If you want to use the default stderr and longjump method, - * you can supply NULL for the last three parameters. We also check that - * the library version is compatible with the one used at compile time, - * in case we are using dynamically linked libraries. REQUIRED. - */ - png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, - png_voidp user_error_ptr, user_error_fn, user_warning_fn); - - if (png_ptr == NULL) - { - fclose(fp); - return; - } - - /* Allocate/initialize the image information data. REQUIRED */ - info_ptr = png_create_info_struct(png_ptr); - if (info_ptr == NULL) - { - fclose(fp); - png_destroy_write_struct(&png_ptr, (png_infopp)NULL); - return; - } - - /* Set error handling. REQUIRED if you aren't supplying your own - * error hadnling functions in the png_create_write_struct() call. - */ - if (setjmp(png_ptr->jmpbuf)) - { - /* If we get here, we had a problem reading the file */ - fclose(fp); - png_destroy_write_struct(&png_ptr, (png_infopp)NULL); - return; - } - - /* One of the following I/O initialization functions is REQUIRED */ -#ifdef streams /* I/O initialization method 1 */ - /* set up the output control if you are using standard C streams */ - png_init_io(png_ptr, fp); -#else no_streams /* I/O initialization method 2 */ - /* If you are using replacement read functions, instead of calling - * png_init_io() here you would call */ - png_set_write_fn(png_ptr, (void *)user_io_ptr, user_write_fn, - user_IO_flush_function); - /* where user_io_ptr is a structure you want available to the callbacks */ -#endif no_streams /* only use one initialization method */ - - /* Set the image information here. Width and height are up to 2^31, - * bit_depth is one of 1, 2, 4, 8, or 16, but valid values also depend on - * the color_type selected. color_type is one of PNG_COLOR_TYPE_GRAY, - * PNG_COLOR_TYPE_GRAY_ALPHA, PNG_COLOR_TYPE_PALETTE, PNG_COLOR_TYPE_RGB, - * or PNG_COLOR_TYPE_RGB_ALPHA. interlace is either PNG_INTERLACE_NONE or - * PNG_INTERLACE_ADAM7, and the compression_type and filter_type MUST - * currently be PNG_COMPRESSION_TYPE_BASE and PNG_FILTER_TYPE_BASE. REQUIRED - */ - png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, PNG_COLOR_TYPE_???, - PNG_INTERLACE_????, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE); - - /* set the palette if there is one. REQUIRED for indexed-color images */ - palette = (png_colorp)png_malloc(png_ptr, 256 * sizeof (png_color)); - /* ... set palette colors ... */ - png_set_PLTE(png_ptr, info_ptr, palette, 256); - - /* optional significant bit chunk */ - /* if we are dealing with a grayscale image then */ - sig_bit.gray = true_bit_depth; - /* otherwise, if we are dealing with a color image then */ - sig_bit.red = true_red_bit_depth; - sig_bit.green = true_green_bit_depth; - sig_bit.blue = true_blue_bit_depth; - /* if the image has an alpha channel then */ - sig_bit.alpha = true_alpha_bit_depth; - png_set_sBIT(png_ptr, info_ptr, sig_bit); - - - /* Optional gamma chunk is strongly suggested if you have any guess - * as to the correct gamma of the image. - */ - png_set_gAMA(png_ptr, info_ptr, gamma); - - /* Optionally write comments into the image */ - text_ptr[0].key = "Title"; - text_ptr[0].text = "Mona Lisa"; - text_ptr[0].compression = PNG_TEXT_COMPRESSION_NONE; - text_ptr[1].key = "Author"; - text_ptr[1].text = "Leonardo DaVinci"; - text_ptr[1].compression = PNG_TEXT_COMPRESSION_NONE; - text_ptr[2].key = "Description"; - text_ptr[2].text = ""; - text_ptr[2].compression = PNG_TEXT_COMPRESSION_zTXt; - png_set_text(png_ptr, info_ptr, text_ptr, 3); - - /* other optional chunks like cHRM, bKGD, tRNS, tIME, oFFs, pHYs, */ - /* note that if sRGB is present the cHRM chunk must be ignored - * on read and must be written in accordance with the sRGB profile */ - - /* Write the file header information. REQUIRED */ - png_write_info(png_ptr, info_ptr); - - /* Once we write out the header, the compression type on the text - * chunks gets changed to PNG_TEXT_COMPRESSION_NONE_WR or - * PNG_TEXT_COMPRESSION_zTXt_WR, so it doesn't get written out again - * at the end. - */ - - /* set up the transformations you want. Note that these are - * all optional. Only call them if you want them. - */ - - /* invert monocrome pixels */ - png_set_invert_mono(png_ptr); - - /* Shift the pixels up to a legal bit depth and fill in - * as appropriate to correctly scale the image. - */ - png_set_shift(png_ptr, &sig_bit); - - /* pack pixels into bytes */ - png_set_packing(png_ptr); - - /* swap location of alpha bytes from ARGB to RGBA */ - png_set_swap_alpha(png_ptr); - - /* Get rid of filler (OR ALPHA) bytes, pack XRGB/RGBX/ARGB/RGBA into - * RGB (4 channels -> 3 channels). The second parameter is not used. - */ - png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); - - /* flip BGR pixels to RGB */ - png_set_bgr(png_ptr); - - /* swap bytes of 16-bit files to most significant byte first */ - png_set_swap(png_ptr); - - /* swap bits of 1, 2, 4 bit packed pixel formats */ - png_set_packswap(png_ptr); - - /* turn on interlace handling if you are not using png_write_image() */ - if (interlacing) - number_passes = png_set_interlace_handling(png_ptr); - else - number_passes = 1; - - /* The easiest way to write the image (you may have a different memory - * layout, however, so choose what fits your needs best). You need to - * use the first method if you aren't handling interlacing yourself. - */ - png_uint_32 k, height, width; - png_byte image[height][width]; - png_bytep row_pointers[height]; - for (k = 0; k < height; k++) - row_pointers[k] = image + k*width; - - /* One of the following output methods is REQUIRED */ -#ifdef entire /* write out the entire image data in one call */ - png_write_image(png_ptr, row_pointers); - - /* the other way to write the image - deal with interlacing */ - -#else no_entire /* write out the image data by one or more scanlines */ - /* The number of passes is either 1 for non-interlaced images, - * or 7 for interlaced images. - */ - for (pass = 0; pass < number_passes; pass++) - { - /* Write a few rows at a time. */ - png_write_rows(png_ptr, &row_pointers[first_row], number_of_rows); - - /* If you are only writing one row at a time, this works */ - for (y = 0; y < height; y++) - { - png_write_rows(png_ptr, &row_pointers[y], 1); - } - } -#endif no_entire /* use only one output method */ - - /* You can write optional chunks like tEXt, zTXt, and tIME at the end - * as well. - */ - - /* It is REQUIRED to call this to finish writing the rest of the file */ - png_write_end(png_ptr, info_ptr); - - /* if you malloced the palette, free it here */ - free(info_ptr->palette); - - /* if you allocated any text comments, free them here */ - - /* clean up after the write, and free any memory allocated */ - png_destroy_write_struct(&png_ptr, (png_infopp)NULL); - - /* close the file */ - fclose(fp); - - /* that's it */ - return; -} - diff --git a/src/png/libpng.3 b/src/png/libpng.3 deleted file mode 100644 index f970736092..0000000000 --- a/src/png/libpng.3 +++ /dev/null @@ -1,2621 +0,0 @@ -.TH LIBPNG 3 "January 14, 1999" -.SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.0.3 - January 14, 1999 -.SH SYNOPSIS - -#include - -int png_check_sig (png_bytep sig, int num); - -void png_chunk_error (png_structp png_ptr, png_const_charp -error); - -void png_chunk_warning (png_structp png_ptr, png_const_charp -message); - -void png_convert_from_struct_tm (png_timep ptime, struct tm FAR -* ttime); - -void png_convert_from_time_t (png_timep ptime, time_t ttime); - -png_charp png_convert_to_rfc1123 (png_structp png_ptr, -png_timep ptime); - -png_infop png_create_info_struct (png_structp png_ptr); - -png_structp png_create_read_struct (png_const_charp -user_png_ver, voidp error_ptr, png_error_ptr error_fn, -png_error_ptr warn_fn); - -png_structp png_create_read_struct_2(png_const_charp user_png_ver, -png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr -warn_fn, png_voidp mem_ptr, png_malloc_ptr malloc_fn, -png_free_ptr free_fn) - -png_structp png_create_write_struct (png_const_charp -user_png_ver, voidp error_ptr, png_error_ptr error_fn, -png_error_ptr warn_fn); - -png_structp png_create_write_struct_2(png_const_charp -user_png_ver, png_voidp error_ptr, png_error_ptr error_fn, -png_error_ptr warn_fn, png_voidp mem_ptr, -png_malloc_ptr malloc_fn, png_free_ptr free_fn) - -int png_debug(int level, png_const_charp message) - -int png_debug1(int level, png_const_charp message, p1) - -int png_debug2(int level, png_const_charp message, p1, p2) - -void png_destroy_info_struct (png_structp png_ptr, png_infopp -info_ptr_ptr); - -void png_destroy_read_struct (png_structpp png_ptr_ptr, -png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr); - -void png_destroy_write_struct (png_structpp png_ptr_ptr, -png_infopp info_ptr_ptr); - -void png_error (png_structp png_ptr, png_const_charp error); - -void png_free (png_structp png_ptr, png_voidp ptr); - -void png_free_default(png_structp png_ptr, png_voidp ptr) - -png_byte png_get_bit_depth (png_structp png_ptr, png_infop -info_ptr); - -png_uint_32 png_get_bKGD (png_structp png_ptr, png_infop -info_ptr, png_color_16p *background); - -png_byte png_get_channels (png_structp png_ptr, png_infop -info_ptr); - -png_uint_32 png_get_cHRM (png_structp png_ptr, png_infop -info_ptr, double *white_x, double *white_y, double *red_x, -double *red_y, double *green_x, double *green_y, double -*blue_x, double *blue_y); - -png_byte png_get_color_type (png_structp png_ptr, png_infop -info_ptr); - -png_byte png_get_compression_type (png_structp png_ptr, -png_infop info_ptr); - -png_byte png_get_copyright (png_structp png_ptr); - -png_voidp png_get_error_ptr (png_structp png_ptr); - -png_byte png_get_filter_type (png_structp png_ptr, png_infop -info_ptr); - -png_uint_32 png_get_gAMA (png_structp png_ptr, png_infop -info_ptr, double *file_gamma); - -png_byte png_get_header_version (png_structp png_ptr); - -png_uint_32 png_get_hIST (png_structp png_ptr, png_infop -info_ptr, png_uint_16p *hist); - -png_uint_32 png_get_IHDR (png_structp png_ptr, png_infop -info_ptr, png_uint_32 *width, png_uint_32 *height, int -*bit_depth, int *color_type, int *interlace_type, int -*compression_type, int *filter_type); - -png_uint_32 png_get_image_height (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_image_width (png_structp png_ptr, png_infop -info_ptr); - -png_byte png_get_interlace_type (png_structp png_ptr, png_infop -info_ptr); - -png_voidp png_get_io_ptr (png_structp png_ptr); - -png_voidp png_get_mem_ptr(png_structp png_ptr) - -png_uint_32 png_get_oFFs (png_structp png_ptr, png_infop -info_ptr, png_uint_32 *offset_x, png_uint_32 *offset_y, int -*unit_type); - -png_uint_32 png_get_pCAL (png_structp png_ptr, png_infop -info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, -int *type, int *nparams, png_charp *units, png_charpp *params); - -png_uint_32 png_get_pHYs (png_structp png_ptr, png_infop -info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int -*unit_type); - -float png_get_pixel_aspect_ratio (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_pixels_per_meter (png_structp png_ptr, -png_infop info_ptr); - -png_voidp png_get_progressive_ptr (png_structp png_ptr); - -png_uint_32 png_get_PLTE (png_structp png_ptr, png_infop -info_ptr, png_colorp *palette, int *num_palette); - -png_byte png_get_rgb_to_gray_status (png_structp png_ptr) - -png_uint_32 png_get_rowbytes (png_structp png_ptr, png_infop -info_ptr); - -png_uint_32 png_get_sBIT (png_structp png_ptr, png_infop -info_ptr, png_color_8p *sig_bit); - -png_bytep png_get_signature (png_structp png_ptr, png_infop -info_ptr); - -png_uint_32 png_get_sRGB (png_structp png_ptr, png_infop -info_ptr, int *intent); - -png_uint_32 png_get_text (png_structp png_ptr, png_infop -info_ptr, png_textp *text_ptr, int *num_text); - -png_uint_32 png_get_tIME (png_structp png_ptr, png_infop -info_ptr, png_timep *mod_time); - -png_uint_32 png_get_tRNS (png_structp png_ptr, png_infop -info_ptr, png_bytep *trans, int *num_trans, png_color_16p -*trans_values); - -png_uint_32 png_get_valid (png_structp png_ptr, png_infop -info_ptr, png_uint_32 flag); - -png_uint_32 png_get_x_offset_microns (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_x_offset_pixels (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_x_pixels_per_meter (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_y_offset_microns (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_y_offset_pixels (png_structp png_ptr, -png_infop info_ptr); - -png_uint_32 png_get_y_pixels_per_meter (png_structp png_ptr, -png_infop info_ptr); - -void png_info_init (png_infop info_ptr); - -void png_init_io (png_structp png_ptr, FILE *fp); - -png_voidp png_malloc (png_structp png_ptr, png_uint_32 size); - -png_voidp png_malloc_default(png_structp png_ptr, -png_uint_32 size) - -voidp png_memcpy (png_voidp s1, png_voidp s2, png_size_t size); - -png_voidp png_memcpy_check (png_structp png_ptr, png_voidp s1, -png_voidp s2, png_uint_32 size); - -voidp png_memset (png_voidp s1, int value, png_size_t size); - -png_voidp png_memset_check (png_structp png_ptr, png_voidp -s1, int value, png_uint_32 size); - -void png_process_data (png_structp png_ptr, png_infop info_ptr, -png_bytep buffer, png_size_t buffer_size); - -void png_progressive_combine_row (png_structp png_ptr, -png_bytep old_row, png_bytep new_row); - -void png_read_destroy (png_structp png_ptr, png_infop info_ptr, -png_infop end_info_ptr); - -void png_read_end (png_structp png_ptr, png_infop info_ptr); - -void png_read_image (png_structp png_ptr, png_bytepp image); - -void png_read_info (png_structp png_ptr, png_infop info_ptr); - -void png_read_row (png_structp png_ptr, png_bytep row, -png_bytep display_row); - -void png_read_rows (png_structp png_ptr, png_bytepp row, -png_bytepp display_row, png_uint_32 num_rows); - -void png_read_update_info (png_structp png_ptr, png_infop -info_ptr); - -void png_set_background (png_structp png_ptr, png_color_16p -background_color, int background_gamma_code, int need_expand, -double background_gamma); - -void png_set_bgr (png_structp png_ptr); - -void png_set_bKGD (png_structp png_ptr, png_infop info_ptr, -png_color_16p background); - -void png_set_cHRM (png_structp png_ptr, png_infop info_ptr, -double white_x, double white_y, double red_x, double red_y, -double green_x, double green_y, double blue_x, double blue_y); - -void png_set_compression_level (png_structp png_ptr, int -level); - -void png_set_compression_mem_level (png_structp png_ptr, int -mem_level); - -void png_set_compression_method (png_structp png_ptr, int -method); - -void png_set_compression_strategy (png_structp png_ptr, int -strategy); - -void png_set_compression_window_bits (png_structp png_ptr, int -window_bits); - -void png_set_crc_action (png_structp png_ptr, int crit_action, -int ancil_action); - -void png_set_dither (png_structp png_ptr, png_colorp palette, -int num_palette, int maximum_colors, png_uint_16p histogram, -int full_dither); - -void png_set_error_fn (png_structp png_ptr, png_voidp -error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn); - -void png_set_expand (png_structp png_ptr); - -void png_set_filler (png_structp png_ptr, png_uint_32 filler, -int flags); - -void png_set_filter (png_structp png_ptr, int method, int -filters); - -void png_set_filter_heuristics (png_structp png_ptr, int -heuristic_method, int num_weights, png_doublep filter_weights, -png_doublep filter_costs); - -void png_set_flush (png_structp png_ptr, int nrows); - -void png_set_gamma (png_structp png_ptr, double screen_gamma, -double default_file_gamma); - -void png_set_gAMA (png_structp png_ptr, png_infop info_ptr, -double file_gamma); - -void png_set_gray_to_rgb (png_structp png_ptr); - -void png_set_hIST (png_structp png_ptr, png_infop info_ptr, -png_uint_16p hist); - -int png_set_interlace_handling (png_structp png_ptr); - -void png_set_invert_alpha (png_structp png_ptr); - -void png_set_invert_mono (png_structp png_ptr); - -void png_set_IHDR (png_structp png_ptr, png_infop info_ptr, -png_uint_32 width, png_uint_32 height, int bit_depth, int -color_type, int interlace_type, int compression_type, int -filter_type); - -void png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, -png_malloc_ptr malloc_fn, png_free_ptr free_fn) - -void png_set_oFFs (png_structp png_ptr, png_infop info_ptr, -png_uint_32 offset_x, png_uint_32 offset_y, int unit_type); - -void png_set_packing (png_structp png_ptr); - -void png_set_packswap (png_structp png_ptr); - -void png_set_pCAL (png_structp png_ptr, png_infop info_ptr, -png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int -nparams, png_charp units, png_charpp params); - -void png_set_pHYs (png_structp png_ptr, png_infop info_ptr, -png_uint_32 res_x, png_uint_32 res_y, int unit_type); - -void png_set_progressive_read_fn (png_structp png_ptr, -png_voidp progressive_ptr, png_progressive_info_ptr info_fn, -png_progressive_row_ptr row_fn, png_progressive_end_ptr -end_fn); - -void png_set_PLTE (png_structp png_ptr, png_infop info_ptr, -png_colorp palette, int num_palette); - -void png_set_read_fn (png_structp png_ptr, png_voidp io_ptr, -png_rw_ptr read_data_fn); - -void png_set_read_status_fn (png_structp png_ptr, png_read_status_ptr -read_row_fn); - -void png_set_read_user_transform_fn (png_structp png_ptr, -png_user_transform_ptr read_user_transform_fn); - -void png_set_rgb_to_gray (png_structp png_ptr, int error_action); - -void png_set_sBIT (png_structp png_ptr, png_infop info_ptr, -png_color_8p sig_bit); - -void png_set_shift (png_structp png_ptr, png_color_8p -true_bits); - -void png_set_sig_bytes (png_structp png_ptr, int num_bytes); - -void png_set_sRGB (png_structp png_ptr, png_infop info_ptr, int -intent); - -void png_set_sRGB_gAMA_and_cHRM (png_structp png_ptr, png_infop -info_ptr, int intent); - -void png_set_strip_16 (png_structp png_ptr); - -void png_set_strip_alpha (png_structp png_ptr); - -void png_set_swap (png_structp png_ptr); - -void png_set_swap_alpha (png_structp png_ptr); - -void png_set_text (png_structp png_ptr, png_infop info_ptr, -png_textp text_ptr, int num_text); - -void png_set_tIME (png_structp png_ptr, png_infop info_ptr, -png_timep mod_time); - -void png_set_tRNS (png_structp png_ptr, png_infop info_ptr, -png_bytep trans, int num_trans, png_color_16p trans_values); - -void png_set_write_fn (png_structp png_ptr, png_voidp io_ptr, -png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn); - -void png_set_write_status_fn (png_structp png_ptr, png_write_status_ptr -write_row_fn); - -void png_set_write_user_transform_fn (png_structp png_ptr, -png_user_transform_ptr write_user_transform_fn); - -int png_sig_cmp (png_bytep sig, png_size_t start, png_size_t -num_to_check); - -void png_start_read_image (png_structp png_ptr); - -void png_warning (png_structp png_ptr, png_const_charp -message); - -void png_write_chunk (png_structp png_ptr, png_bytep -chunk_name, png_bytep data, png_size_t length); - -void png_write_chunk_data (png_structp png_ptr, png_bytep data, -png_size_t length); - -void png_write_chunk_end (png_structp png_ptr); - -void png_write_chunk_start (png_structp png_ptr, png_bytep -chunk_name, png_uint_32 length); - -void png_write_destroy (png_structp png_ptr); - -void png_write_destroy_info (png_infop info_ptr); - -void png_write_end (png_structp png_ptr, png_infop info_ptr); - -void png_write_flush (png_structp png_ptr); - -void png_write_image (png_structp png_ptr, png_bytepp image); - -void png_write_info (png_structp png_ptr, png_infop info_ptr); - -void png_write_row (png_structp png_ptr, png_bytep row); - -void png_write_rows (png_structp png_ptr, png_bytepp row, -png_uint_32 num_rows); - -.SH DESCRIPTION -The -.I libpng -library supports encoding, decoding, and various manipulations of -the Portable Network Graphics (PNG) format image files. It uses the -.IR zlib(3) -compression library. -Following is a copy of the libpng.txt file that accompanies libpng. -.SH LIBPNG.TXT -libpng.txt - A description on how to use and modify libpng - - libpng version 1.0.3 - January 14, 1999 - Updated and distributed by Glenn Randers-Pehrson - - Copyright (c) 1998, 1999 Glenn Randers-Pehrson - For conditions of distribution and use, see copyright - notice in png.h. - - based on: - - libpng 1.0 beta 6 version 0.96 May 28, 1997 - Updated and distributed by Andreas Dilger - Copyright (c) 1996, 1997 Andreas Dilger - - libpng 1.0 beta 2 - version 0.88 January 26, 1996 - For conditions of distribution and use, see copyright - notice in png.h. Copyright (c) 1995, 1996 Guy Eric - Schalnat, Group 42, Inc. - - Updated/rewritten per request in the libpng FAQ - Copyright (c) 1995 Frank J. T. Wojcik - December 18, 1995 && January 20, 1996 - -.SH I. Introduction - -This file describes how to use and modify the PNG reference library -(known as libpng) for your own use. There are five sections to this -file: introduction, structures, reading, writing, and modification and -configuration notes for various special platforms. In addition to this -file, example.c is a good starting point for using the library, as -it is heavily commented and should include everything most people -will need. We assume that libpng is already installed; see the -INSTALL file for instructions on how to install libpng. - -Libpng was written as a companion to the PNG specification, as a way -of reducing the amount of time and effort it takes to support the PNG -file format in application programs. The PNG specification is available -as RFC 2083 and as a -W3C Recommendation . Some -additional chunks are described in the special-purpose public chunks -documents at . Other information -about PNG, and the latest version of libpng, can be found at the PNG home -page, . - -Most users will not have to modify the library significantly; advanced -users may want to modify it more. All attempts were made to make it as -complete as possible, while keeping the code easy to understand. -Currently, this library only supports C. Support for other languages -is being considered. - -Libpng has been designed to handle multiple sessions at one time, -to be easily modifiable, to be portable to the vast majority of -machines (ANSI, K&R, 16-, 32-, and 64-bit) available, and to be easy -to use. The ultimate goal of libpng is to promote the acceptance of -the PNG file format in whatever way possible. While there is still -work to be done (see the TODO file), libpng should cover the -majority of the needs of its users. - -Libpng uses zlib for its compression and decompression of PNG files. -Further information about zlib, and the latest version of zlib, can -be found at the zlib home page, . -The zlib compression utility is a general purpose utility that is -useful for more than PNG files, and can be used without libpng. -See the documentation delivered with zlib for more details. -You can usually find the source files for the zlib utility wherever you -find the libpng source files. - -Libpng is thread safe, provided the threads are using different -instances of the structures. Each thread should have its own -png_struct and png_info instances, and thus its own image. -Libpng does not protect itself against two threads using the -same instance of a structure. - - -.SH II. Structures - -There are two main structures that are important to libpng, png_struct -and png_info. The first, png_struct, is an internal structure that -will not, for the most part, be used by a user except as the first -variable passed to every libpng function call. - -The png_info structure is designed to provide information about the -PNG file. At one time, the fields of png_info were intended to be -directly accessible to the user. However, this tended to cause problems -with applications using dynamically loaded libraries, and as a result -a set of interface functions for png_info was developed. The fields -of png_info are still available for older applications, but it is -suggested that applications use the new interfaces if at all possible. - -The png.h header file is an invaluable reference for programming with libpng. -And while I'm on the topic, make sure you include the libpng header file: - -#include - -.SH III. Reading - -Reading PNG files: - -We'll now walk you through the possible functions to call when reading -in a PNG file, briefly explaining the syntax and purpose of each one. -See example.c and png.h for more detail. While Progressive reading -is covered in the next section, you will still need some of the -functions discussed in this section to read a PNG file. - -You will want to do the I/O initialization(*) before you get into libpng, -so if it doesn't work, you don't have much to undo. Of course, you -will also want to insure that you are, in fact, dealing with a PNG -file. Libpng provides a simple check to see if a file is a PNG file. -To use it, pass in the first 1 to 8 bytes of the file, and it will -return true or false (1 or 0) depending on whether the bytes could be -part of a PNG file. Of course, the more bytes you pass in, the -greater the accuracy of the prediction. - -If you are intending to keep the file pointer open for use in libpng, -you must ensure you don't read more than 8 bytes from the beginning -of the file, and you also have to make a call to png_set_sig_bytes_read() -with the number of bytes you read from the beginning. Libpng will -then only check the bytes (if any) that your program didn't read. - -(*): If you are not using the standard I/O functions, you will need -to replace them with custom functions. See the discussion under -Customizing libpng. - - - FILE *fp = fopen(file_name, "rb"); - if (!fp) - { - return; - } - fread(header, 1, number, fp); - is_png = !png_sig_cmp(header, 0, number); - if (!is_png) - { - return; - } - - -Next, png_struct and png_info need to be allocated and initialized. In -order to ensure that the size of these structures is correct even with a -dynamically linked libpng, there are functions to initialize and -allocate the structures. We also pass the library version, optional -pointers to error handling functions, and a pointer to a data struct for -use by the error functions, if necessary (the pointer and functions can -be NULL if the default error handlers are to be used). See the section -on Changes to Libpng below regarding the old initialization functions. - - png_structp png_ptr = png_create_read_struct - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn); - if (!png_ptr) - return; - - png_infop info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_read_struct(&png_ptr, - (png_infopp)NULL, (png_infopp)NULL); - return; - } - - png_infop end_info = png_create_info_struct(png_ptr); - if (!end_info) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - (png_infopp)NULL); - return; - } - -If you want to use your own memory allocation routines, -define PNG_USER_MEM_SUPPORTED and use -png_create_read_struct_2() instead of png_create_read_struct(): - - png_structp png_ptr = png_create_read_struct_2 - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn, (png_voidp) - user_mem_ptr, user_malloc_fn, user_free_fn); - -The error handling routines passed to png_create_read_struct() -and the memory alloc/free routines passed to png_create_struct_2() -are only necessary if you are not using the libpng supplied error -handling and memory alloc/free functions. - -When libpng encounters an error, it expects to longjmp back -to your routine. Therefore, you will need to call setjmp and pass -your png_ptr->jmpbuf. If you read the file from different -routines, you will need to update the jmpbuf field every time you enter -a new routine that will call a png_ function. - -See your documentation of setjmp/longjmp for your compiler for more -handling in the Customizing Libpng section below for more information on -the libpng error handling. If an error occurs, and libpng longjmp's -back to your setjmp, you will want to call png_destroy_read_struct() to -free any memory. - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - &end_info); - fclose(fp); - return; - } - -Now you need to set up the input code. The default for libpng is to -use the C function fread(). If you use this, you will need to pass a -valid FILE * in the function png_init_io(). Be sure that the file is -opened in binary mode. If you wish to handle reading data in another -way, you need not call the png_init_io() function, but you must then -implement the libpng I/O methods discussed in the Customizing Libpng -section below. - - png_init_io(png_ptr, fp); - -If you had previously opened the file and read any of the signature from -the beginning in order to see if this was a PNG file, you need to let -libpng know that there are some bytes missing from the start of the file. - - png_set_sig_bytes(png_ptr, number); - -At this point, you can set up a callback function that will be -called after each row has been read, which you can use to control -a progress meter or the like. It's demonstrated in pngtest.c. -You must supply a function - - void read_row_callback(png_ptr, png_uint_32 row, int pass); - { - /* put your code here */ - } - -(You can give it another name that you like instead of "read_row_callback") - -To inform libpng about your function, use - - png_set_read_status_fn(png_ptr, read_row_callback); - -In PNG files, the alpha channel in an image is the level of opacity. -If you need the alpha channel in an image to be the level of transparency -instead of opacity, you can invert the alpha channel (or the tRNS chunk -data) after it's read, so that 0 is fully opaque and 255 (in 8-bit or -paletted images) or 65535 (in 16-bit images) is fully transparent, with - - png_set_invert_alpha(png_ptr); - -This has to appear here rather than later with the other transformations -because the tRNS chunk data must be modified in the case of paletted images. -If your image is not a paletted image, the tRNS data (which in such cases -represents a single color to be rendered as transparent) won't be changed. - -Finally, you can write your own transformation function if none of -the existing ones meets your needs. This is done by setting a callback -with - - png_set_read_user_transform_fn(png_ptr, - read_transform_fn); - -You must supply the function - - void read_transform_fn(png_ptr ptr, row_info_ptr - row_info, png_bytep data) - -See pngtest.c for a working example. Your function will be called -after all of the other transformations have been processed. - -You are now ready to read all the file information up to the actual -image data. You do this with a call to png_read_info(). - - png_read_info(png_ptr, info_ptr); - -Functions are used to get the information from the info_ptr: - - png_get_IHDR(png_ptr, info_ptr, &width, &height, - &bit_depth, &color_type, &interlace_type, - &compression_type, &filter_type); - - width - holds the width of the image - in pixels (up to 2^31). - height - holds the height of the image - in pixels (up to 2^31). - bit_depth - holds the bit depth of one of the - image channels. (valid values are - 1, 2, 4, 8, 16 and depend also on - the color_type. See also - significant bits (sBIT) below). - color_type - describes which color/alpha channels - are present. - PNG_COLOR_TYPE_GRAY - (bit depths 1, 2, 4, 8, 16) - PNG_COLOR_TYPE_GRAY_ALPHA - (bit depths 8, 16) - PNG_COLOR_TYPE_PALETTE - (bit depths 1, 2, 4, 8) - PNG_COLOR_TYPE_RGB - (bit_depths 8, 16) - PNG_COLOR_TYPE_RGB_ALPHA - (bit_depths 8, 16) - - PNG_COLOR_MASK_PALETTE - PNG_COLOR_MASK_COLOR - PNG_COLOR_MASK_ALPHA - - filter_type - (must be PNG_FILTER_TYPE_BASE - for PNG 1.0) - compression_type - (must be PNG_COMPRESSION_TYPE_BASE - for PNG 1.0) - interlace_type - (PNG_INTERLACE_NONE or - PNG_INTERLACE_ADAM7) - Any or all of interlace_type, compression_type, of - filter_type can be - NULL if you are not interested in their values. - - channels = png_get_channels(png_ptr, info_ptr); - channels - number of channels of info for the - color type (valid values are 1 (GRAY, - PALETTE), 2 (GRAY_ALPHA), 3 (RGB), - 4 (RGB_ALPHA or RGB + filler byte)) - rowbytes = png_get_rowbytes(png_ptr, info_ptr); - rowbytes - number of bytes needed to hold a row - - signature = png_get_signature(png_ptr, info_ptr); - signature - holds the signature read from the - file (if any). The data is kept in - the same offset it would be if the - whole signature were read (i.e. if an - application had already read in 4 - bytes of signature before starting - libpng, the remaining 4 bytes would - be in signature[4] through signature[7] - (see png_set_sig_bytes())). - - - width = png_get_image_width(png_ptr, - info_ptr); - height = png_get_image_height(png_ptr, - info_ptr); - bit_depth = png_get_bit_depth(png_ptr, - info_ptr); - color_type = png_get_color_type(png_ptr, - info_ptr); - filter_type = png_get_filter_type(png_ptr, - info_ptr); - compression_type = png_get_compression_type(png_ptr, - info_ptr); - interlace_type = png_get_interlace_type(png_ptr, - info_ptr); - - -These are also important, but their validity depends on whether the chunk -has been read. The png_get_valid(png_ptr, info_ptr, PNG_INFO_) and -png_get_(png_ptr, info_ptr, ...) functions return non-zero if the -data has been read, or zero if it is missing. The parameters to the -png_get_ are set directly if they are simple data types, or a pointer -into the info_ptr is returned for any complex types. - - png_get_PLTE(png_ptr, info_ptr, &palette, - &num_palette); - palette - the palette for the file - (array of png_color) - num_palette - number of entries in the palette - - png_get_gAMA(png_ptr, info_ptr, &gamma); - gamma - the gamma the file is written - at (PNG_INFO_gAMA) - - png_get_sRGB(png_ptr, info_ptr, &srgb_intent); - srgb_intent - the rendering intent (PNG_INFO_sRGB) - The presence of the sRGB chunk - means that the pixel data is in the - sRGB color space. This chunk also - implies specific values of gAMA and - cHRM. - - png_get_sBIT(png_ptr, info_ptr, &sig_bit); - sig_bit - the number of significant bits for - (PNG_INFO_sBIT) each of the gray, - red, green, and blue channels, - whichever are appropriate for the - given color type (png_color_16) - - png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, - &trans_values); - trans - array of transparent entries for - palette (PNG_INFO_tRNS) - trans_values - transparent pixel for non-paletted - images (PNG_INFO_tRNS) - num_trans - number of transparent entries - (PNG_INFO_tRNS) - - png_get_hIST(png_ptr, info_ptr, &hist); - (PNG_INFO_hIST) - hist - histogram of palette (array of - png_color_16) - - png_get_tIME(png_ptr, info_ptr, &mod_time); - mod_time - time image was last modified - (PNG_VALID_tIME) - - png_get_bKGD(png_ptr, info_ptr, &background); - background - background color (PNG_VALID_bKGD) - - num_text = png_get_text(png_ptr, info_ptr, &text_ptr); - text_ptr - array of png_text holding image - comments - text_ptr[i]->key - keyword for comment. - text_ptr[i]->text - text comments for current - keyword. - text_ptr[i]->compression - type of compression used - on "text" PNG_TEXT_COMPRESSION_NONE - or PNG_TEXT_COMPRESSION_zTXt - num_text - number of comments - - png_get_oFFs(png_ptr, info_ptr, &offset_x, &offset_y, - &unit_type); - offset_x - positive offset from the left edge - of the screen - offset_y - positive offset from the top edge - of the screen - unit_type - PNG_OFFSET_PIXEL, PNG_OFFSET_MICROMETER - - png_get_pHYs(png_ptr, info_ptr, &res_x, &res_y, - &unit_type); - res_x - pixels/unit physical resolution in - x direction - res_y - pixels/unit physical resolution in - x direction - unit_type - PNG_RESOLUTION_UNKNOWN, - PNG_RESOLUTION_METER - -The data from the pHYs chunk can be retrieved in several convenient -forms: - - res_x = png_get_x_pixels_per_meter(png_ptr, - info_ptr) - res_y = png_get_y_pixels_per_meter(png_ptr, - info_ptr) - res_x_and_y = png_get_pixels_per_meter(png_ptr, - info_ptr) - aspect_ratio = png_get_pixel_aspect_ratio(png_ptr, - info_ptr) - - (Each of these returns 0 [signifying "unknown"] if - the data is not present or if res_x is 0; - res_x_and_y is 0 if res_x != res_y) - -For more information, see the png_info definition in png.h and the -PNG specification for chunk contents. Be careful with trusting -rowbytes, as some of the transformations could increase the space -needed to hold a row (expand, filler, gray_to_rgb, etc.). -See png_read_update_info(), below. - -A quick word about text_ptr and num_text. PNG stores comments in -keyword/text pairs, one pair per chunk, with no limit on the number -of text chunks, and a 2^31 byte limit on their size. While there are -suggested keywords, there is no requirement to restrict the use to these -strings. It is strongly suggested that keywords and text be sensible -to humans (that's the point), so don't use abbreviations. Non-printing -symbols are not allowed. See the PNG specification for more details. -There is also no requirement to have text after the keyword. - -Keywords should be limited to 79 Latin-1 characters without leading or -trailing spaces, but non-consecutive spaces are allowed within the -keyword. It is possible to have the same keyword any number of times. -The text_ptr is an array of png_text structures, each holding pointer -to a keyword and a pointer to a text string. Only the text string may -be null. The keyword/text pairs are put into the array in the order -that they are received. However, some or all of the text chunks may be -after the image, so, to make sure you have read all the text chunks, -don't mess with these until after you read the stuff after the image. -This will be mentioned again below in the discussion that goes with -png_read_end(). - -After you've read the header information, you can set up the library -to handle any special transformations of the image data. The various -ways to transform the data will be described in the order that they -should occur. This is important, as some of these change the color -type and/or bit depth of the data, and some others only work on -certain color types and bit depths. Even though each transformation -checks to see if it has data that it can do something with, you should -make sure to only enable a transformation if it will be valid for the -data. For example, don't swap red and blue on grayscale data. - -The colors used for the background and transparency values should be -supplied in the same format/depth as the current image data. They -are stored in the same format/depth as the image data in a bKGD or tRNS -chunk, so this is what libpng expects for this data. The colors are -transformed to keep in sync with the image data when an application -calls the png_read_update_info() routine (see below). - -Data will be decoded into the supplied row buffers packed into bytes -unless the library has been told to transform it into another format. -For example, 4 bit/pixel paletted or grayscale data will be returned -2 pixels/byte with the leftmost pixel in the high-order bits of the -byte, unless png_set_packing() is called. 8-bit RGB data will be stored -in RGB RGB RGB format unless png_set_filler() is called to insert filler -bytes, either before or after each RGB triplet. 16-bit RGB data will -be returned RRGGBB RRGGBB, with the most significant byte of the color -value first, unless png_set_strip_16() is called to transform it to -regular RGB RGB triplets, or png_set_filler() is called to insert -filler bytes, either before or after each RRGGBB triplet. Similarly, -8-bit or 16-bit grayscale data can be modified with png_set_filler() -or png_set_strip_16(). - -The following code transforms grayscale images of less than 8 to 8 bits, -changes paletted images to RGB, and adds a full alpha channel if there is -transparency information in a tRNS chunk. This is most useful on -grayscale images with bit depths of 2 or 4 or if there is a multiple-image -viewing application that wishes to treat all images in the same way. - - if (color_type == PNG_COLOR_TYPE_PALETTE && - bit_depth <= 8) png_set_expand(png_ptr); - - if (color_type == PNG_COLOR_TYPE_GRAY && - bit_depth < 8) png_set_expand(png_ptr); - - if (png_get_valid(png_ptr, info_ptr, - PNG_INFO_tRNS)) png_set_expand(png_ptr); - -PNG can have files with 16 bits per channel. If you only can handle -8 bits per channel, this will strip the pixels down to 8 bit. - - if (bit_depth == 16) - png_set_strip_16(png_ptr); - -The png_set_background() function tells libpng to composite images -with alpha or simple transparency against the supplied background -color. If the PNG file contains a bKGD chunk (PNG_INFO_bKGD valid), -you may use this color, or supply another color more suitable for -the current display (e.g., the background color from a web page). You -need to tell libpng whether the color is in the gamma space of the -display (PNG_BACKGROUND_GAMMA_SCREEN for colors you supply), the file -(PNG_BACKGROUND_GAMMA_FILE for colors from the bKGD chunk), or one -that is neither of these gammas (PNG_BACKGROUND_GAMMA_UNIQUE - I don't -know why anyone would use this, but it's here). - -If, for some reason, you don't need the alpha channel on an image, -and you want to remove it rather than combining it with the background -(but the image author certainly had in mind that you *would* combine -it with the background, so that's what you should probably do): - - if (color_type & PNG_COLOR_MASK_ALPHA) - png_set_strip_alpha(png_ptr); - -PNG files pack pixels of bit depths 1, 2, and 4 into bytes as small as -they can, resulting in, for example, 8 pixels per byte for 1 bit -files. This code expands to 1 pixel per byte without changing the -values of the pixels: - - if (bit_depth < 8) - png_set_packing(png_ptr); - -PNG files have possible bit depths of 1, 2, 4, 8, and 16. All pixels -stored in a PNG image have been "scaled" or "shifted" up to the next -higher possible bit depth (e.g. from 5 bits/sample in the range [0,31] to -8 bits/sample in the range [0, 255]). However, it is also possible to -convert the PNG pixel data back to the original bit depth of the image. -This call reduces the pixels back down to the original bit depth: - - png_color_16p sig_bit; - - if (png_get_sBIT(png_ptr, info_ptr, &sig_bit)) - png_set_shift(png_ptr, sig_bit); - -PNG files store 3-color pixels in red, green, blue order. This code -changes the storage of the pixels to blue, green, red: - - if (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_bgr(png_ptr); - -PNG files store RGB pixels packed into 3 bytes. This code expands them -into 4 bytes for windowing systems that need them in this format: - - if (bit_depth == 8 && color_type == - PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr, - filler, PNG_FILLER_BEFORE); - -where "filler" is the 8 or 16-bit number to fill with, and the location is -either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether -you want the filler before the RGB or after. This transformation -does not affect images that already have full alpha channels. - -If you are reading an image with an alpha channel, and you need the -data as ARGB instead of the normal PNG format RGBA: - - if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_swap_alpha(png_ptr); - -For some uses, you may want a grayscale image to be represented as -RGB. This code will do that conversion: - - if (color_type == PNG_COLOR_TYPE_GRAY || - color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - png_set_gray_to_rgb(png_ptr); - -Conversely, you can convert an RGB or RGBA image to grayscale or grayscale -with alpha. This is intended for conversion of images that really are -gray (red == green == blue), so the function simply strips out the red -and blue channels, leaving the green channel in the gray position. - - if (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_rgb_to_gray(png_ptr, error_action, - float red_weight, float green_weight); - - error_action = 1: silently do the conversion - error_action = 2: issue a warning if the original - image has any pixel where - red != green or red != blue - error_action = 3: issue an error and abort the - conversion if the original - image has any pixel where - red != green or red != blue - - red_weight: weight of red component - (NULL -> default 54/256) - green_weight: weight of green component - (NULL -> default 183/256) - -If you have set error_action = 1 or 2, you can -later check whether the image really was gray, after processing -the image rows, with the png_get_rgb_to_gray_status(png_ptr) function. -It will return a png_byte that is zero if the image was gray or -1 if there were any non-gray pixels. bKGD and sBIT data -will be silently converted to grayscale, using the green channel -data, regardless of the error_action setting. - -With 0.0<=red_weight+green_weight<=1.0, -the normalized graylevel is computed: - - int rw = red_weight * 256; - int gw = green_weight * 256; - int bw = 256 - (rw + gw); - gray = (rw*red + gw*green + bw*blue)/256; - -The default values approximate those recommended in the Charles -Poynton's Color FAQ, -Copyright (c) 1998-01-04 Charles Poynton poynton@inforamp.net - - Y = 0.212671 * R + 0.715160 * G + 0.072169 * B - -Libpng approximates this with - - Y = 0.211 * R + 0.715 * G + 0.074 * B - -which can be expressed with integers as - - Y = (54 * R + 183 * G + 19 * B)/256 - -The calculation is done in a linear colorspace, if the image gamma -is known. - -If you have a grayscale and you are using png_set_expand() to change to -a higher bit-depth, you must either supply the background color as a gray -value at the original file bit-depth (need_expand = 1) or else supply the -background color as an RGB triplet at the final, expanded bit depth -(need_expand = 0). Similarly, if you are reading a paletted image, you -must either supply the background color as a palette index (need_expand = 1) -or as an RGB triplet that may or may not be in the palette (need_expand = 0). - - png_color_16 my_background; - png_color_16p image_background; - - if (png_get_bKGD(png_ptr, info_ptr, &image_background)) - png_set_background(png_ptr, image_background, - PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); - else - png_set_background(png_ptr, &my_background, - PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); - -To properly display PNG images on any kind of system, the application needs -to know what the display gamma is. Ideally, the user will know this, and -the application will allow them to set it. One method of allowing the user -to set the display gamma separately for each system is to check for the -DISPLAY_GAMMA and VIEWING_GAMMA environment variables or for a SCREEN_GAMMA -environment variable, which will hopefully be correctly set. - -Note that display_gamma is the gamma of your display, while screen_gamma is -the overall gamma correction required to produce pleasing results, -which depends on the lighting conditions in the surrounding environment. -Screen_gamma is display_gamma/viewing_gamma, where viewing_gamma is -the amount of additional gamma correction needed to compensate for -a (viewing_gamma=1.25) environment. In a dim or brightly lit room, no -compensation other than the display_gamma is needed (viewing_gamma=1.0). - - if (/* We have a user-defined screen - gamma value */) - { - screen_gamma = user_defined_screen_gamma; - } - /* One way that applications can share the same - screen gamma value */ - else if ((gamma_str = getenv("SCREEN_GAMMA")) - != NULL) - { - screen_gamma = atof(gamma_str); - } - /* If we don't have another value */ - else - { - screen_gamma = 2.2; /* A good guess for a - PC monitor in a bright office or a dim room */ - screen_gamma = 2.0; /* A good guess for a - PC monitor in a dark room */ - screen_gamma = 1.7 or 1.0; /* A good - guess for Mac systems */ - } - -The png_set_gamma() function handles gamma transformations of the data. -Pass both the file gamma and the current screen_gamma. If the file does -not have a gamma value, you can pass one anyway if you have an idea what -it is (usually 0.45455 is a good guess for GIF images on PCs). Note -that file gammas are inverted from screen gammas. See the discussions -on gamma in the PNG specification for an excellent description of what -gamma is, and why all applications should support it. It is strongly -recommended that PNG viewers support gamma correction. - - if (png_get_gAMA(png_ptr, info_ptr, &gamma)) - png_set_gamma(png_ptr, screen_gamma, gamma); - else - png_set_gamma(png_ptr, screen_gamma, 0.45455); - -If you need to reduce an RGB file to a paletted file, or if a paletted -file has more entries then will fit on your screen, png_set_dither() -will do that. Note that this is a simple match dither that merely -finds the closest color available. This should work fairly well with -optimized palettes, and fairly badly with linear color cubes. If you -pass a palette that is larger then maximum_colors, the file will -reduce the number of colors in the palette so it will fit into -maximum_colors. If there is a histogram, it will use it to make -more intelligent choices when reducing the palette. If there is no -histogram, it may not do as good a job. - - if (color_type & PNG_COLOR_MASK_COLOR) - { - if (png_get_valid(png_ptr, info_ptr, - PNG_INFO_PLTE)) - { - png_color_16p histogram; - - png_get_hIST(png_ptr, info_ptr, - &histogram); - png_set_dither(png_ptr, palette, num_palette, - max_screen_colors, histogram, 1); - } - else - { - png_color std_color_cube[MAX_SCREEN_COLORS] = - { ... colors ... }; - - png_set_dither(png_ptr, std_color_cube, - MAX_SCREEN_COLORS, MAX_SCREEN_COLORS, - NULL,0); - } - } - -PNG files describe monochrome as black being zero and white being one. -The following code will reverse this (make black be one and white be -zero): - - if (bit_depth == 1 && color_type == PNG_COLOR_GRAY) - png_set_invert_mono(png_ptr); - -PNG files store 16 bit pixels in network byte order (big-endian, -ie. most significant bits first). This code changes the storage to the -other way (little-endian, i.e. least significant bits first, the -way PCs store them): - - if (bit_depth == 16) - png_set_swap(png_ptr); - -If you are using packed-pixel images (1, 2, or 4 bits/pixel), and you -need to change the order the pixels are packed into bytes, you can use: - - if (bit_depth < 8) - png_set_packswap(png_ptr); - -The last thing to handle is interlacing; this is covered in detail below, -but you must call the function here if you want libpng to handle expansion -of the interlaced image. - - number_of_passes = png_set_interlace_handling(png_ptr); - -After setting the transformations, libpng can update your png_info -structure to reflect any transformations you've requested with this -call. This is most useful to update the info structure's rowbytes -field so you can use it to allocate your image memory. This function -will also update your palette with the correct screen_gamma and -background if these have been given with the calls above. - - png_read_update_info(png_ptr, info_ptr); - -After you call png_read_update_info(), you can allocate any -memory you need to hold the image. The row data is simply -raw byte data for all forms of images. As the actual allocation -varies among applications, no example will be given. If you -are allocating one large chunk, you will need to build an -array of pointers to each row, as it will be needed for some -of the functions below. - -After you've allocated memory, you can read the image data. -The simplest way to do this is in one function call. If you are -allocating enough memory to hold the whole image, you can just -call png_read_image() and libpng will read in all the image data -and put it in the memory area supplied. You will need to pass in -an array of pointers to each row. - -This function automatically handles interlacing, so you don't need -to call png_set_interlace_handling() or call this function multiple -times, or any of that other stuff necessary with png_read_rows(). - - png_read_image(png_ptr, row_pointers); - -where row_pointers is: - - png_bytep row_pointers[height]; - -You can point to void or char or whatever you use for pixels. - -If you don't want to read in the whole image at once, you can -use png_read_rows() instead. If there is no interlacing (check -interlace_type == PNG_INTERLACE_NONE), this is simple: - - png_read_rows(png_ptr, row_pointers, NULL, - number_of_rows); - -where row_pointers is the same as in the png_read_image() call. - -If you are doing this just one row at a time, you can do this with -row_pointers: - - png_bytep row_pointers = row; - png_read_row(png_ptr, &row_pointers, NULL); - -If the file is interlaced (info_ptr->interlace_type != 0), things get -somewhat harder. The only current (PNG Specification version 1.0) -interlacing type for PNG is (interlace_type == PNG_INTERLACE_ADAM7) -is a somewhat complicated 2D interlace scheme, known as Adam7, that -breaks down an image into seven smaller images of varying size, based -on an 8x8 grid. - -libpng can fill out those images or it can give them to you "as is". -If you want them filled out, there are two ways to do that. The one -mentioned in the PNG specification is to expand each pixel to cover -those pixels that have not been read yet (the "rectangle" method). -This results in a blocky image for the first pass, which gradually -smooths out as more pixels are read. The other method is the "sparkle" -method, where pixels are drawn only in their final locations, with the -rest of the image remaining whatever colors they were initialized to -before the start of the read. The first method usually looks better, -but tends to be slower, as there are more pixels to put in the rows. - -If you don't want libpng to handle the interlacing details, just call -png_read_rows() seven times to read in all seven images. Each of the -images is a valid image by itself, or they can all be combined on an -8x8 grid to form a single image (although if you intend to combine them -you would be far better off using the libpng interlace handling). - -The first pass will return an image 1/8 as wide as the entire image -(every 8th column starting in column 0) and 1/8 as high as the original -(every 8th row starting in row 0), the second will be 1/8 as wide -(starting in column 4) and 1/8 as high (also starting in row 0). The -third pass will be 1/4 as wide (every 4th pixel starting in column 0) and -1/8 as high (every 8th row starting in row 4), and the fourth pass will -be 1/4 as wide and 1/4 as high (every 4th column starting in column 2, -and every 4th row starting in row 0). The fifth pass will return an -image 1/2 as wide, and 1/4 as high (starting at column 0 and row 2), -while the sixth pass will be 1/2 as wide and 1/2 as high as the original -(starting in column 1 and row 0). The seventh and final pass will be as -wide as the original, and 1/2 as high, containing all of the odd -numbered scanlines. Phew! - -If you want libpng to expand the images, call this before calling -png_start_read_image() or png_read_update_info(): - - if (interlace_type == PNG_INTERLACE_ADAM7) - number_of_passes - = png_set_interlace_handling(png_ptr); - -This will return the number of passes needed. Currently, this -is seven, but may change if another interlace type is added. -This function can be called even if the file is not interlaced, -where it will return one pass. - -If you are not going to display the image after each pass, but are -going to wait until the entire image is read in, use the sparkle -effect. This effect is faster and the end result of either method -is exactly the same. If you are planning on displaying the image -after each pass, the "rectangle" effect is generally considered the -better looking one. - -If you only want the "sparkle" effect, just call png_read_rows() as -normal, with the third parameter NULL. Make sure you make pass over -the image number_of_passes times, and you don't change the data in the -rows between calls. You can change the locations of the data, just -not the data. Each pass only writes the pixels appropriate for that -pass, and assumes the data from previous passes is still valid. - - png_read_rows(png_ptr, row_pointers, NULL, - number_of_rows); - -If you only want the first effect (the rectangles), do the same as -before except pass the row buffer in the third parameter, and leave -the second parameter NULL. - - png_read_rows(png_ptr, NULL, row_pointers, - number_of_rows); - -After you are finished reading the image, you can finish reading -the file. If you are interested in comments or time, which may be -stored either before or after the image data, you should pass the -separate png_info struct if you want to keep the comments from -before and after the image separate. If you are not interested, you -can pass NULL. - - png_read_end(png_ptr, end_info); - -When you are done, you can free all memory allocated by libpng like this: - - png_destroy_read_struct(&png_ptr, &info_ptr, - &end_info); - -For a more compact example of reading a PNG image, see the file example.c. - - -Reading PNG files progressively: - -The progressive reader is slightly different then the non-progressive -reader. Instead of calling png_read_info(), png_read_rows(), and -png_read_end(), you make one call to png_process_data(), which calls -callbacks when it has the info, a row, or the end of the image. You -set up these callbacks with png_set_progressive_read_fn(). You don't -have to worry about the input/output functions of libpng, as you are -giving the library the data directly in png_process_data(). I will -assume that you have read the section on reading PNG files above, -so I will only highlight the differences (although I will show -all of the code). - -png_structp png_ptr; -png_infop info_ptr; - - /* An example code fragment of how you would - initialize the progressive reader in your - application. */ - int - initialize_png_reader() - { - png_ptr = png_create_read_struct - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn); - if (!png_ptr) - return -1; - info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_read_struct(&png_ptr, (png_infopp)NULL, - (png_infopp)NULL); - return -1; - } - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - (png_infopp)NULL); - return -1; - } - - /* This one's new. You can provide functions - to be called when the header info is valid, - when each row is completed, and when the image - is finished. If you aren't using all functions, - you can specify NULL parameters. Even when all - three functions are NULL, you need to call - png_set_progressive_read_fn(). You can use - any struct as the user_ptr (cast to a void pointer - for the function call), and retrieve the pointer - from inside the callbacks using the function - - png_get_progressive_ptr(png_ptr); - - which will return a void pointer, which you have - to cast appropriately. - */ - png_set_progressive_read_fn(png_ptr, (void *)user_ptr, - info_callback, row_callback, end_callback); - - return 0; - } - - /* A code fragment that you call as you receive blocks - of data */ - int - process_data(png_bytep buffer, png_uint_32 length) - { - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - (png_infopp)NULL); - return -1; - } - - /* This one's new also. Simply give it a chunk - of data from the file stream (in order, of - course). On machines with segmented memory - models machines, don't give it any more than - 64K. The library seems to run fine with sizes - of 4K. Although you can give it much less if - necessary (I assume you can give it chunks of - 1 byte, I haven't tried less then 256 bytes - yet). When this function returns, you may - want to display any rows that were generated - in the row callback if you don't already do - so there. - */ - png_process_data(png_ptr, info_ptr, buffer, length); - return 0; - } - - /* This function is called (as set by - png_set_progressive_read_fn() above) when enough data - has been supplied so all of the header has been - read. - */ - void - info_callback(png_structp png_ptr, png_infop info) - { - /* Do any setup here, including setting any of - the transformations mentioned in the Reading - PNG files section. For now, you _must_ call - either png_start_read_image() or - png_read_update_info() after all the - transformations are set (even if you don't set - any). You may start getting rows before - png_process_data() returns, so this is your - last chance to prepare for that. - */ - } - - /* This function is called when each row of image - data is complete */ - void - row_callback(png_structp png_ptr, png_bytep new_row, - png_uint_32 row_num, int pass) - { - /* If the image is interlaced, and you turned - on the interlace handler, this function will - be called for every row in every pass. Some - of these rows will not be changed from the - previous pass. When the row is not changed, - the new_row variable will be NULL. The rows - and passes are called in order, so you don't - really need the row_num and pass, but I'm - supplying them because it may make your life - easier. - - For the non-NULL rows of interlaced images, - you must call png_progressive_combine_row() - passing in the row and the old row. You can - call this function for NULL rows (it will just - return) and for non-interlaced images (it just - does the memcpy for you) if it will make the - code easier. Thus, you can just do this for - all cases: - */ - - png_progressive_combine_row(png_ptr, old_row, - new_row); - - /* where old_row is what was displayed for - previously for the row. Note that the first - pass (pass == 0, really) will completely cover - the old row, so the rows do not have to be - initialized. After the first pass (and only - for interlaced images), you will have to pass - the current row, and the function will combine - the old row and the new row. - */ - } - - void - end_callback(png_structp png_ptr, png_infop info) - { - /* This function is called after the whole image - has been read, including any chunks after the - image (up to and including the IEND). You - will usually have the same info chunk as you - had in the header, although some data may have - been added to the comments and time fields. - - Most people won't do much here, perhaps setting - a flag that marks the image as finished. - */ - } - - - -.SH IV. Writing - -Much of this is very similar to reading. However, everything of -importance is repeated here, so you won't have to constantly look -back up in the reading section to understand writing. - -You will want to do the I/O initialization before you get into libpng, -so if it doesn't work, you don't have anything to undo. If you are not -using the standard I/O functions, you will need to replace them with -custom writing functions. See the discussion under Customizing libpng. - - FILE *fp = fopen(file_name, "wb"); - if (!fp) - { - return; - } - -Next, png_struct and png_info need to be allocated and initialized. -As these can be both relatively large, you may not want to store these -on the stack, unless you have stack space to spare. Of course, you -will want to check if they return NULL. If you are also reading, -you won't want to name your read structure and your write structure -both "png_ptr"; you can call them anything you like, such as -"read_ptr" and "write_ptr". Look at pngtest.c, for example. - - png_structp png_ptr = png_create_write_struct - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn); - if (!png_ptr) - return; - - png_infop info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_write_struct(&png_ptr, - (png_infopp)NULL); - return; - } - -If you want to use your own memory allocation routines, -define PNG_USER_MEM_SUPPORTED and use -png_create_write_struct_2() instead of png_create_read_struct(): - - png_structp png_ptr = png_create_write_struct_2 - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn, (png_voidp) - user_mem_ptr, user_malloc_fn, user_free_fn); - -After you have these structures, you will need to set up the -error handling. When libpng encounters an error, it expects to -longjmp() back to your routine. Therefore, you will need to call -setjmp() and pass the png_ptr->jmpbuf. If you -write the file from different routines, you will need to update -the jmpbuf field every time you enter a new routine that will -call a png_ function. See your documentation of setjmp/longjmp -for your compiler for more information on setjmp/longjmp. See -the discussion on libpng error handling in the Customizing Libpng -section below for more information on the libpng error handling. - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_write_struct(&png_ptr, &info_ptr); - fclose(fp); - return; - } - ... - return; - -Now you need to set up the output code. The default for libpng is to -use the C function fwrite(). If you use this, you will need to pass a -valid FILE * in the function png_init_io(). Be sure that the file is -opened in binary mode. Again, if you wish to handle writing data in -another way, see the discussion on libpng I/O handling in the Customizing -Libpng section below. - - png_init_io(png_ptr, fp); - -At this point, you can set up a callback function that will be -called after each row has been written, which you can use to control -a progress meter or the like. It's demonstrated in pngtest.c. -You must supply a function - - void write_row_callback(png_ptr, png_uint_32 row, int pass); - { - /* put your code here */ - } - -(You can give it another name that you like instead of "write_row_callback") - -To inform libpng about your function, use - - png_set_write_status_fn(png_ptr, write_row_callback); - -You now have the option of modifying how the compression library will -run. The following functions are mainly for testing, but may be useful -in some cases, like if you need to write PNG files extremely fast and -are willing to give up some compression, or if you want to get the -maximum possible compression at the expense of slower writing. If you -have no special needs in this area, let the library do what it wants by -not calling this function at all, as it has been tuned to deliver a good -speed/compression ratio. The second parameter to png_set_filter() is -the filter method, for which the only valid value is '0' (as of the -October 1996 PNG specification, version 1.0). The third parameter is a -flag that indicates which filter type(s) are to be tested for each -scanline. See the Compression Library for details on the specific filter -types. - - - /* turn on or off filtering, and/or choose - specific filters */ - png_set_filter(png_ptr, 0, - PNG_FILTER_NONE | PNG_FILTER_SUB | - PNG_FILTER_PAETH); - -The png_set_compression_???() functions interface to the zlib compression -library, and should mostly be ignored unless you really know what you are -doing. The only generally useful call is png_set_compression_level() -which changes how much time zlib spends on trying to compress the image -data. See the Compression Library for details on the compression levels. - - /* set the zlib compression level */ - png_set_compression_level(png_ptr, - Z_BEST_COMPRESSION); - - /* set other zlib parameters */ - png_set_compression_mem_level(png_ptr, 8); - png_set_compression_strategy(png_ptr, - Z_DEFAULT_STRATEGY); - png_set_compression_window_bits(png_ptr, 15); - png_set_compression_method(png_ptr, 8); - -You now need to fill in the png_info structure with all the data you -wish to write before the actual image. Note that the only thing you -are allowed to write after the image is the text chunks and the time -chunk (as of PNG Specification 1.0, anyway). See png_write_end() and -the latest PNG specification for more information on that. If you -wish to write them before the image, fill them in now, and flag that -data as being valid. If you want to wait until after the data, don't -fill them until png_write_end(). For all the fields in png_info and -their data types, see png.h. For explanations of what the fields -contain, see the PNG specification. - -Some of the more important parts of the png_info are: - - png_set_IHDR(png_ptr, info_ptr, width, height, - bit_depth, color_type, interlace_type, - compression_type, filter_type) - width - holds the width of the image - in pixels (up to 2^31). - height - holds the height of the image - in pixels (up to 2^31). - bit_depth - holds the bit depth of one of the - image channels. - (valid values are 1, 2, 4, 8, 16 - and depend also on the - color_type. See also significant - bits (sBIT) below). - color_type - describes which color/alpha - channels are present. - PNG_COLOR_TYPE_GRAY - (bit depths 1, 2, 4, 8, 16) - PNG_COLOR_TYPE_GRAY_ALPHA - (bit depths 8, 16) - PNG_COLOR_TYPE_PALETTE - (bit depths 1, 2, 4, 8) - PNG_COLOR_TYPE_RGB - (bit_depths 8, 16) - PNG_COLOR_TYPE_RGB_ALPHA - (bit_depths 8, 16) - - PNG_COLOR_MASK_PALETTE - PNG_COLOR_MASK_COLOR - PNG_COLOR_MASK_ALPHA - - interlace_type - PNG_INTERLACE_NONE or - PNG_INTERLACE_ADAM7 - compression_type - (must be - PNG_COMPRESSION_TYPE_DEFAULT) - filter_type - (must be PNG_FILTER_TYPE_DEFAULT) - - png_set_PLTE(png_ptr, info_ptr, palette, - num_palette); - palette - the palette for the file - (array of png_color) - num_palette - number of entries in the palette - - png_set_gAMA(png_ptr, info_ptr, gamma); - gamma - the gamma the image was created - at (PNG_INFO_gAMA) - - png_set_sRGB(png_ptr, info_ptr, srgb_intent); - srgb_intent - the rendering intent - (PNG_INFO_sRGB) The presence of - the sRGB chunk means that the pixel - data is in the sRGB color space. - This chunk also implies specific - values of gAMA and cHRM. Rendering - intent is the CSS-1 property that - has been defined by the International - Color Consortium - (http://www.color.org). - It can be one of - PNG_SRGB_INTENT_SATURATION, - PNG_SRGB_INTENT_PERCEPTUAL, - PNG_SRGB_INTENT_ABSOLUTE, or - PNG_SRGB_INTENT_RELATIVE. - - - png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr, - srgb_intent); - srgb_intent - the rendering intent - (PNG_INFO_sRGB) The presence of the - sRGB chunk means that the pixel - data is in the sRGB color space. - This function also causes gAMA and - cHRM chunks with the specific values - that are consistent with sRGB to be - written. - - png_set_sBIT(png_ptr, info_ptr, sig_bit); - sig_bit - the number of significant bits for - (PNG_INFO_sBIT) each of the gray, red, - green, and blue channels, whichever are - appropriate for the given color type - (png_color_16) - - png_set_tRNS(png_ptr, info_ptr, trans, num_trans, - trans_values); - trans - array of transparent entries for - palette (PNG_INFO_tRNS) - trans_values - transparent pixel for non-paletted - images (PNG_INFO_tRNS) - num_trans - number of transparent entries - (PNG_INFO_tRNS) - - png_set_hIST(png_ptr, info_ptr, hist); - (PNG_INFO_hIST) - hist - histogram of palette (array of - png_color_16) - - png_set_tIME(png_ptr, info_ptr, mod_time); - mod_time - time image was last modified - (PNG_VALID_tIME) - - png_set_bKGD(png_ptr, info_ptr, background); - background - background color (PNG_VALID_bKGD) - - png_set_text(png_ptr, info_ptr, text_ptr, num_text); - text_ptr - array of png_text holding image - comments - text_ptr[i]->key - keyword for comment. - text_ptr[i]->text - text comments for current - keyword. - text_ptr[i]->compression - type of compression used - on "text" PNG_TEXT_COMPRESSION_NONE or - PNG_TEXT_COMPRESSION_zTXt - num_text - number of comments in text_ptr - - png_set_oFFs(png_ptr, info_ptr, offset_x, offset_y, - unit_type); - offset_x - positive offset from the left - edge of the screen - offset_y - positive offset from the top - edge of the screen - unit_type - PNG_OFFSET_PIXEL, PNG_OFFSET_MICROMETER - - png_set_pHYs(png_ptr, info_ptr, res_x, res_y, - unit_type); - res_x - pixels/unit physical resolution - in x direction - res_y - pixels/unit physical resolution - in y direction - unit_type - PNG_RESOLUTION_UNKNOWN, - PNG_RESOLUTION_METER - -In PNG files, the alpha channel in an image is the level of opacity. -If your data is supplied as a level of transparency, you can invert the -alpha channel before you write it, so that 0 is fully transparent and 255 -(in 8-bit or paletted images) or 65535 (in 16-bit images) is fully opaque, -with - - png_set_invert_alpha(png_ptr); - -This must appear here instead of later with the other transformations -because in the case of paletted images the tRNS chunk data has to -be inverted before the tRNS chunk is written. If your image is not a -paletted image, the tRNS data (which in such cases represents a single -color to be rendered as transparent) won't be changed. - -A quick word about text and num_text. text is an array of png_text -structures. num_text is the number of valid structures in the array. -If you want, you can use max_text to hold the size of the array, but -libpng ignores it for writing (it does use it for reading). Each -png_text structure holds a keyword-text value, and a compression type. -The compression types have the same valid numbers as the compression -types of the image data. Currently, the only valid number is zero. -However, you can store text either compressed or uncompressed, unlike -images, which always have to be compressed. So if you don't want the -text compressed, set the compression type to PNG_TEXT_COMPRESSION_NONE. -Until text gets around 1000 bytes, it is not worth compressing it. -After the text has been written out to the file, the compression type -is set to PNG_TEXT_COMPRESSION_NONE_WR or PNG_TEXT_COMPRESSION_zTXt_WR, -so that it isn't written out again at the end (in case you are calling -png_write_end() with the same struct. - -The keywords that are given in the PNG Specification are: - - Title Short (one line) title or - caption for image - Author Name of image's creator - Description Description of image (possibly long) - Copyright Copyright notice - Creation Time Time of original image creation - (usually RFC 1123 format, see below) - Software Software used to create the image - Disclaimer Legal disclaimer - Warning Warning of nature of content - Source Device used to create the image - Comment Miscellaneous comment; conversion - from other image format - -The keyword-text pairs work like this. Keywords should be short -simple descriptions of what the comment is about. Some typical -keywords are found in the PNG specification, as is some recommendations -on keywords. You can repeat keywords in a file. You can even write -some text before the image and some after. For example, you may want -to put a description of the image before the image, but leave the -disclaimer until after, so viewers working over modem connections -don't have to wait for the disclaimer to go over the modem before -they start seeing the image. Finally, keywords should be full -words, not abbreviations. Keywords and text are in the ISO 8859-1 -(Latin-1) character set (a superset of regular ASCII) and can not -contain NUL characters, and should not contain control or other -unprintable characters. To make the comments widely readable, stick -with basic ASCII, and avoid machine specific character set extensions -like the IBM-PC character set. The keyword must be present, but -you can leave off the text string on non-compressed pairs. -Compressed pairs must have a text string, as only the text string -is compressed anyway, so the compression would be meaningless. - -PNG supports modification time via the png_time structure. Two -conversion routines are proved, png_convert_from_time_t() for -time_t and png_convert_from_struct_tm() for struct tm. The -time_t routine uses gmtime(). You don't have to use either of -these, but if you wish to fill in the png_time structure directly, -you should provide the time in universal time (GMT) if possible -instead of your local time. Note that the year number is the full -year (e.g. 1998, rather than 98 - PNG is year 2000 compliant!), and -that months start with 1. - -If you want to store the time of the original image creation, you should -use a plain tEXt chunk with the "Creation Time" keyword. This is -necessary because the "creation time" of a PNG image is somewhat vague, -depending on whether you mean the PNG file, the time the image was -created in a non-PNG format, a still photo from which the image was -scanned, or possibly the subject matter itself. In order to facilitate -machine-readable dates, it is recommended that the "Creation Time" -tEXt chunk use RFC 1123 format dates (e.g. "22 May 1997 18:07:10 GMT"), -although this isn't a requirement. Unlike the tIME chunk, the -"Creation Time" tEXt chunk is not expected to be automatically changed -by the software. To facilitate the use of RFC 1123 dates, a function -png_convert_to_rfc1123(png_timep) is provided to convert from PNG -time to an RFC 1123 format string. - -You are now ready to write all the file information up to the actual -image data. You do this with a call to png_write_info(). - - png_write_info(png_ptr, info_ptr); - -After you've written the file information, you can set up the library -to handle any special transformations of the image data. The various -ways to transform the data will be described in the order that they -should occur. This is important, as some of these change the color -type and/or bit depth of the data, and some others only work on -certain color types and bit depths. Even though each transformation -checks to see if it has data that it can do something with, you should -make sure to only enable a transformation if it will be valid for the -data. For example, don't swap red and blue on grayscale data. - -PNG files store RGB pixels packed into 3 or 6 bytes. This code tells -the library to expand the input data to 4 or 8 bytes per pixel -(or expand 1 or 2-byte grayscale data to 2 or 4 bytes per pixel). - - png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); - -where the 0 is the value that will be put in the 4th byte, and the -location is either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending -upon whether the filler byte is stored XRGB or RGBX. - -PNG files pack pixels of bit depths 1, 2, and 4 into bytes as small as -they can, resulting in, for example, 8 pixels per byte for 1 bit files. -If the data is supplied at 1 pixel per byte, use this code, which will -correctly pack the pixels into a single byte: - - png_set_packing(png_ptr); - -PNG files reduce possible bit depths to 1, 2, 4, 8, and 16. If your -data is of another bit depth, you can write an sBIT chunk into the -file so that decoders can get the original data if desired. - - /* Set the true bit depth of the image data */ - if (color_type & PNG_COLOR_MASK_COLOR) - { - sig_bit.red = true_bit_depth; - sig_bit.green = true_bit_depth; - sig_bit.blue = true_bit_depth; - } - else - { - sig_bit.gray = true_bit_depth; - } - if (color_type & PNG_COLOR_MASK_ALPHA) - { - sig_bit.alpha = true_bit_depth; - } - - png_set_sBIT(png_ptr, info_ptr, &sig_bit); - -If the data is stored in the row buffer in a bit depth other than -one supported by PNG (e.g. 3 bit data in the range 0-7 for a 4-bit PNG), -this will scale the values to appear to be the correct bit depth as -is required by PNG. - - png_set_shift(png_ptr, &sig_bit); - -PNG files store 16 bit pixels in network byte order (big-endian, -ie. most significant bits first). This code would be used if they are -supplied the other way (little-endian, i.e. least significant bits -first, the way PCs store them): - - if (bit_depth > 8) - png_set_swap(png_ptr); - -If you are using packed-pixel images (1, 2, or 4 bits/pixel), and you -need to change the order the pixels are packed into bytes, you can use: - - if (bit_depth < 8) - png_set_packswap(png_ptr); - -PNG files store 3 color pixels in red, green, blue order. This code -would be used if they are supplied as blue, green, red: - - png_set_bgr(png_ptr); - -PNG files describe monochrome as black being zero and white being -one. This code would be used if the pixels are supplied with this reversed -(black being one and white being zero): - - png_set_invert_mono(png_ptr); - -Finally, you can write your own transformation function if none of -the existing ones meets your needs. This is done by setting a callback -with - - png_set_write_user_transform_fn(png_ptr, - write_transform_fn); - -You must supply the function - - void write_transform_fn(png_ptr ptr, row_info_ptr - row_info, png_bytep data) - -See pngtest.c for a working example. Your function will be called -before any of the other transformations have been processed. - -It is possible to have libpng flush any pending output, either manually, -or automatically after a certain number of lines have been written. To -flush the output stream a single time call: - - png_write_flush(png_ptr); - -and to have libpng flush the output stream periodically after a certain -number of scanlines have been written, call: - - png_set_flush(png_ptr, nrows); - -Note that the distance between rows is from the last time png_write_flush() -was called, or the first row of the image if it has never been called. -So if you write 50 lines, and then png_set_flush 25, it will flush the -output on the next scanline, and every 25 lines thereafter, unless -png_write_flush() is called before 25 more lines have been written. -If nrows is too small (less than about 10 lines for a 640 pixel wide -RGB image) the image compression may decrease noticeably (although this -may be acceptable for real-time applications). Infrequent flushing will -only degrade the compression performance by a few percent over images -that do not use flushing. - -That's it for the transformations. Now you can write the image data. -The simplest way to do this is in one function call. If have the -whole image in memory, you can just call png_write_image() and libpng -will write the image. You will need to pass in an array of pointers to -each row. This function automatically handles interlacing, so you don't -need to call png_set_interlace_handling() or call this function multiple -times, or any of that other stuff necessary with png_write_rows(). - - png_write_image(png_ptr, row_pointers); - -where row_pointers is: - - png_byte *row_pointers[height]; - -You can point to void or char or whatever you use for pixels. - -If you don't want to write the whole image at once, you can -use png_write_rows() instead. If the file is not interlaced, -this is simple: - - png_write_rows(png_ptr, row_pointers, - number_of_rows); - -row_pointers is the same as in the png_write_image() call. - -If you are just writing one row at a time, you can do this with -row_pointers: - - png_bytep row_pointer = row; - - png_write_row(png_ptr, &row_pointer); - -When the file is interlaced, things can get a good deal more -complicated. The only currently (as of February 1998 -- PNG Specification -version 1.0, dated October 1996) defined interlacing scheme for PNG files -is the "Adam7" interlace scheme, that breaks down an -image into seven smaller images of varying size. libpng will build -these images for you, or you can do them yourself. If you want to -build them yourself, see the PNG specification for details of which -pixels to write when. - -If you don't want libpng to handle the interlacing details, just -use png_set_interlace_handling() and call png_write_rows() the -correct number of times to write all seven sub-images. - -If you want libpng to build the sub-images, call this before you start -writing any rows: - - number_of_passes = - png_set_interlace_handling(png_ptr); - -This will return the number of passes needed. Currently, this -is seven, but may change if another interlace type is added. - -Then write the complete image number_of_passes times. - - png_write_rows(png_ptr, row_pointers, - number_of_rows); - -As some of these rows are not used, and thus return immediately, -you may want to read about interlacing in the PNG specification, -and only update the rows that are actually used. - -After you are finished writing the image, you should finish writing -the file. If you are interested in writing comments or time, you should -pass an appropriately filled png_info pointer. If you are not interested, -you can pass NULL. - - png_write_end(png_ptr, info_ptr); - -When you are done, you can free all memory used by libpng like this: - - png_destroy_write_struct(&png_ptr, &info_ptr); - -You must free any data you allocated for info_ptr, such as comments, -palette, or histogram, before the call to png_destroy_write_struct(); - -For a more compact example of writing a PNG image, see the file example.c. - - -.SH V. Modifying/Customizing libpng: - -There are two issues here. The first is changing how libpng does -standard things like memory allocation, input/output, and error handling. -The second deals with more complicated things like adding new chunks, -adding new transformations, and generally changing how libpng works. - -All of the memory allocation, input/output, and error handling in libpng -goes through callbacks that are user settable. The default routines are -in pngmem.c, pngrio.c, pngwio.c, and pngerror.c respectively. To change -these functions, call the appropriate png_set_???_fn() function. - -Memory allocation is done through the functions png_large_malloc(), -png_malloc(), png_realloc(), png_large_free(), and png_free(). These -currently just call the standard C functions. The large functions must -handle exactly 64K, but they don't have to handle more than that. If -your pointers can't access more then 64K at a time, you will want to set -MAXSEG_64K in zlib.h. Since it is unlikely that the method of handling -memory allocation on a platform will change between applications, these -functions must be modified in the library at compile time. - -Input/Output in libpng is done through png_read() and png_write(), -which currently just call fread() and fwrite(). The FILE * is stored in -png_struct and is initialized via png_init_io(). If you wish to change -the method of I/O, the library supplies callbacks that you can set -through the function png_set_read_fn() and png_set_write_fn() at run -time, instead of calling the png_init_io() function. These functions -also provide a void pointer that can be retrieved via the function -png_get_io_ptr(). For example: - - png_set_read_fn(png_structp read_ptr, - voidp read_io_ptr, png_rw_ptr read_data_fn) - - png_set_write_fn(png_structp write_ptr, - voidp write_io_ptr, png_rw_ptr write_data_fn, - png_flush_ptr output_flush_fn); - - voidp read_io_ptr = png_get_io_ptr(read_ptr); - voidp write_io_ptr = png_get_io_ptr(write_ptr); - -The replacement I/O functions should have prototypes as follows: - - void user_read_data(png_structp png_ptr, - png_bytep data, png_uint_32 length); - void user_write_data(png_structp png_ptr, - png_bytep data, png_uint_32 length); - void user_flush_data(png_structp png_ptr); - -Supplying NULL for the read, write, or flush functions sets them back -to using the default C stream functions. It is an error to read from -a write stream, and vice versa. - -Error handling in libpng is done through png_error() and png_warning(). -Errors handled through png_error() are fatal, meaning that png_error() -should never return to its caller. Currently, this is handled via -setjmp() and longjmp(), but you could change this to do things like -exit() if you should wish. On non-fatal errors, png_warning() is called -to print a warning message, and then control returns to the calling code. -By default png_error() and png_warning() print a message on stderr via -fprintf() unless the library is compiled with PNG_NO_STDIO defined. If -you wish to change the behavior of the error functions, you will need to -set up your own message callbacks. These functions are normally supplied -at the time that the png_struct is created. It is also possible to change -these functions after png_create_???_struct() has been called by calling: - - png_set_error_fn(png_structp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warning_fn); - - png_voidp error_ptr = png_get_error_ptr(png_ptr); - -If NULL is supplied for either error_fn or warning_fn, then the libpng -default function will be used, calling fprintf() and/or longjmp() if a -problem is encountered. The replacement error functions should have -parameters as follows: - - void user_error_fn(png_structp png_ptr, - png_const_charp error_msg); - void user_warning_fn(png_structp png_ptr, - png_const_charp warning_msg); - -The motivation behind using setjmp() and longjmp() is the C++ throw and -catch exception handling methods. This makes the code much easier to write, -as there is no need to check every return code of every function call. -However, there are some uncertainties about the status of local variables -after a longjmp, so the user may want to be careful about doing anything after -setjmp returns non-zero besides returning itself. Consult your compiler -documentation for more details. - -If you need to read or write custom chunks, you will need to get deeper -into the libpng code, as a mechanism has not yet been supplied for user -callbacks with custom chunks. First, read the PNG specification, and have -a first level of understanding of how it works. Pay particular attention -to the sections that describe chunk names, and look at how other chunks -were designed, so you can do things similarly. Second, check out the -sections of libpng that read and write chunks. Try to find a chunk that -is similar to yours and copy off of it. More details can be found in the -comments inside the code. A way of handling unknown chunks in a generic -method, potentially via callback functions, would be best. - -If you wish to write your own transformation for the data, look through -the part of the code that does the transformations, and check out some of -the simpler ones to get an idea of how they work. Try to find a similar -transformation to the one you want to add and copy off of it. More details -can be found in the comments inside the code itself. - -Configuring for 16 bit platforms: - -You may need to change the png_large_malloc() and png_large_free() -routines in pngmem.c, as these are required to allocate 64K, although -there is already support for many of the common DOS compilers. Also, -you will want to look into zconf.h to tell zlib (and thus libpng) that -it cannot allocate more then 64K at a time. Even if you can, the memory -won't be accessible. So limit zlib and libpng to 64K by defining MAXSEG_64K. - -Configuring for DOS: - -For DOS users who only have access to the lower 640K, you will -have to limit zlib's memory usage via a png_set_compression_mem_level() -call. See zlib.h or zconf.h in the zlib library for more information. - -Configuring for Medium Model: - -Libpng's support for medium model has been tested on most of the popular -compilers. Make sure MAXSEG_64K gets defined, USE_FAR_KEYWORD gets -defined, and FAR gets defined to far in pngconf.h, and you should be -all set. Everything in the library (except for zlib's structure) is -expecting far data. You must use the typedefs with the p or pp on -the end for pointers (or at least look at them and be careful). Make -note that the row's of data are defined as png_bytepp, which is an -unsigned char far * far *. - -Configuring for gui/windowing platforms: - -You will need to write new error and warning functions that use the GUI -interface, as described previously, and set them to be the error and -warning functions at the time that png_create_???_struct() is called, -in order to have them available during the structure initialization. -They can be changed later via png_set_error_fn(). On some compilers, -you may also have to change the memory allocators (png_malloc, etc.). - -Configuring for compiler xxx: - -All includes for libpng are in pngconf.h. If you need to add/change/delete -an include, this is the place to do it. The includes that are not -needed outside libpng are protected by the PNG_INTERNAL definition, -which is only defined for those routines inside libpng itself. The -files in libpng proper only include png.h, which includes pngconf.h. - -Configuring zlib: - -There are special functions to configure the compression. Perhaps the -most useful one changes the compression level, which currently uses -input compression values in the range 0 - 9. The library normally -uses the default compression level (Z_DEFAULT_COMPRESSION = 6). Tests -have shown that for a large majority of images, compression values in -the range 3-6 compress nearly as well as higher levels, and do so much -faster. For online applications it may be desirable to have maximum speed -(Z_BEST_SPEED = 1). With versions of zlib after v0.99, you can also -specify no compression (Z_NO_COMPRESSION = 0), but this would create -files larger than just storing the raw bitmap. You can specify the -compression level by calling: - - png_set_compression_level(png_ptr, level); - -Another useful one is to reduce the memory level used by the library. -The memory level defaults to 8, but it can be lowered if you are -short on memory (running DOS, for example, where you only have 640K). - - png_set_compression_mem_level(png_ptr, level); - -The other functions are for configuring zlib. They are not recommended -for normal use and may result in writing an invalid PNG file. See -zlib.h for more information on what these mean. - - png_set_compression_strategy(png_ptr, - strategy); - png_set_compression_window_bits(png_ptr, - window_bits); - png_set_compression_method(png_ptr, method); - -Controlling row filtering: - -If you want to control whether libpng uses filtering or not, which -filters are used, and how it goes about picking row filters, you -can call one of these functions. The selection and configuration -of row filters can have a significant impact on the size and -encoding speed and a somewhat lesser impact on the decoding speed -of an image. Filtering is enabled by default for RGB and grayscale -images (with and without alpha), but not for paletted images nor -for any images with bit depths less than 8 bits/pixel. - -The 'method' parameter sets the main filtering method, which is -currently only '0' in the PNG 1.0 specification. The 'filters' -parameter sets which filter(s), if any, should be used for each -scanline. Possible values are PNG_ALL_FILTERS and PNG_NO_FILTERS -to turn filtering on and off, respectively. - -Individual filter types are PNG_FILTER_NONE, PNG_FILTER_SUB, -PNG_FILTER_UP, PNG_FILTER_AVG, PNG_FILTER_PAETH, which can be bitwise -ORed together '|' to specify one or more filters to use. These -filters are described in more detail in the PNG specification. If -you intend to change the filter type during the course of writing -the image, you should start with flags set for all of the filters -you intend to use so that libpng can initialize its internal -structures appropriately for all of the filter types. - - filters = PNG_FILTER_NONE | PNG_FILTER_SUB - | PNG_FILTER_UP; - png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, - filters); - -It is also possible to influence how libpng chooses from among the -available filters. This is done in two ways - by telling it how -important it is to keep the same filter for successive rows, and -by telling it the relative computational costs of the filters. - - double weights[3] = {1.5, 1.3, 1.1}, - costs[PNG_FILTER_VALUE_LAST] = - {1.0, 1.3, 1.3, 1.5, 1.7}; - - png_set_filter_selection(png_ptr, - PNG_FILTER_SELECTION_WEIGHTED, 3, - weights, costs); - -The weights are multiplying factors that indicate to libpng that the -row filter should be the same for successive rows unless another row filter -is that many times better than the previous filter. In the above example, -if the previous 3 filters were SUB, SUB, NONE, the SUB filter could have a -"sum of absolute differences" 1.5 x 1.3 times higher than other filters -and still be chosen, while the NONE filter could have a sum 1.1 times -higher than other filters and still be chosen. Unspecified weights are -taken to be 1.0, and the specified weights should probably be declining -like those above in order to emphasize recent filters over older filters. - -The filter costs specify for each filter type a relative decoding cost -to be considered when selecting row filters. This means that filters -with higher costs are less likely to be chosen over filters with lower -costs, unless their "sum of absolute differences" is that much smaller. -The costs do not necessarily reflect the exact computational speeds of -the various filters, since this would unduly influence the final image -size. - -Note that the numbers above were invented purely for this example and -are given only to help explain the function usage. Little testing has -been done to find optimum values for either the costs or the weights. - -Removing unwanted object code: - -There are a bunch of #define's in pngconf.h that control what parts of -libpng are compiled. All the defines end in _SUPPORTED. If you are -never going to use a capability, you can change the #define to #undef -before recompiling libpng and save yourself code and data space, or -you can turn off individual capabilities with defines that begin with -PNG_NO_. - -You can also turn all of the transforms and ancillary chunk capabilities -off en masse with compiler directives that define -PNG_NO_READ[or WRITE]_TRANSFORMS, or PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS, -or all four, -along with directives to turn on any of the capabilities that you do -want. The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable -the extra transformations but still leave the library fully capable of reading -and writing PNG files with all known public chunks [except for sPLT]. -Use of the PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS directive -produces a library that is incapable of reading or writing ancillary chunks. -If you are not using the progressive reading capability, you can -turn that off with PNG_NO_PROGRESSIVE_READ (don't confuse -this with the INTERLACING capability, which you'll still have). - -All the reading and writing specific code are in separate files, so the -linker should only grab the files it needs. However, if you want to -make sure, or if you are building a stand alone library, all the -reading files start with pngr and all the writing files start with -pngw. The files that don't match either (like png.c, pngtrans.c, etc.) -are used for both reading and writing, and always need to be included. -The progressive reader is in pngpread.c - -If you are creating or distributing a dynamically linked library (a .so -or DLL file), you should not remove or disable any parts of the library, -as this will cause applications linked with different versions of the -library to fail if they call functions not available in your library. -The size of the library itself should not be an issue, because only -those sections that are actually used will be loaded into memory. - -Requesting debug printout: - -The macro definition PNG_DEBUG can be used to request debugging -printout. Set it to an integer value in the range 0 to 3. Higher -numbers result in increasing amounts of debugging information. The -information is printed to the "stderr" file, unless another file -name is specified in the PNG_DEBUG_FILE macro definition. - -When PNG_DEBUG > 0, the following functions (macros) become available: - - png_debug(level, message) - png_debug1(level, message, p1) - png_debug2(level, message, p1, p2) - -in which "level" is compared to PNG_DEBUG to decide whether to print -the message, "message" is the formatted string to be printed, -and p1 and p2 are parameters that are to be embedded in the string -according to printf-style formatting directives. For example, - - png_debug1(2, "foo=%d\n", foo); - -is expanded to - - if(PNG_DEBUG > 2) - fprintf(PNG_DEBUG_FILE, "foo=%d\n", foo); - -When PNG_DEBUG is defined but is zero, the macros aren't defined, but you -can still use PNG_DEBUG to control your own debugging: - - #ifdef PNG_DEBUG - fprintf(stderr, ... - #endif - -When PNG_DEBUG = 1, the macros are defined, but only png_debug statements -having level = 0 will be printed. There aren't any such statements in -this version of libpng, but if you insert some they will be printed. - -.SH VI. Changes to Libpng from version 0.88 - -It should be noted that versions of libpng later than 0.96 are not -distributed by the original libpng author, Guy Schalnat, nor by -Andreas Dilger, who had taken over from Guy during 1996 and 1997, and -distributed versions 0.89 through 0.96, but rather by another member -of the original PNG Group, Glenn Randers-Pehrson. Guy and Andreas are -still alive and well, but they have moved on to other things. - -The old libpng functions png_read_init(), png_write_init(), -png_info_init(), png_read_destroy(), and png_write_destory() have been -moved to PNG_INTERNAL in version 0.95 to discourage their use. The -preferred method of creating and initializing the libpng structures is -via the png_create_read_struct(), png_create_write_struct(), and -png_create_info_struct() because they isolate the size of the structures -from the application, allow version error checking, and also allow the -use of custom error handling routines during the initialization, which -the old functions do not. The functions png_read_destroy() and -png_write_destroy() do not actually free the memory that libpng -allocated for these structs, but just reset the data structures, so they -can be used instead of png_destroy_read_struct() and -png_destroy_write_struct() if you feel there is too much system overhead -allocating and freeing the png_struct for each image read. - -Setting the error callbacks via png_set_message_fn() before -png_read_init() as was suggested in libpng-0.88 is no longer supported -because this caused applications that do not use custom error functions -to fail if the png_ptr was not initialized to zero. It is still possible -to set the error callbacks AFTER png_read_init(), or to change them with -png_set_error_fn(), which is essentially the same function, but with a -new name to force compilation errors with applications that try to use -the old method. - -.SH VII. Y2K Compliance in libpng - -January 13, 1999 - -Since the PNG Development group is an ad-hoc body, we can't make -an official declaration. - -This is your unofficial assurance that libpng from version 0.81 and -upward are Y2K compliant. It is my belief that earlier versions were -also Y2K compliant. - -Libpng only has three year fields. One is a 2-byte unsigned integer that -will hold years up to 65535. The other two hold the date in text -format, and will hold years up to 9999. - -The integer is - "png_uint_16 year" in png_time_struct. - -The strings are - "png_charp time_buffer" in png_struct and - "near_time_buffer", which is a local character string in png.c. - -There are seven time-related functions: - - png_convert_to_rfc_1123() in png.c - (formerly png_convert_to_rfc_1152() in error) - png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - png_convert_from_time_t() in pngwrite.c - png_get_tIME() in pngget.c - png_handle_tIME() in pngrutil.c, called in pngread.c - png_set_tIME() in pngset.c - png_write_tIME() in pngwutil.c, called in pngwrite.c - -All appear to handle dates properly in a Y2K environment. The -png_convert_from_time_t() function calls gmtime() to convert from system -clock time, which returns (year - 1900), which we properly convert to -the full 4-digit year. There is a possibility that applications using -libpng are not passing 4-digit years into the png_convert_to_rfc_1123() -function, or incorrectly passing only a 2-digit year instead of -"year - 1900" into the png_convert_from_struct_tm() function, but this -is not under our control. The libpng documentation has always stated -that it works with 4-digit years, and the APIs have been documented as -such. - -The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned -integer to hold the year, and can hold years as large as 65535. - - - Glenn Randers-Pehrson - libpng maintainer - PNG Development Group - -.SH NOTE - -Note about libpng version numbers: - -Due to various miscommunications, unforeseen code incompatibilities -and occasional factors outside the authors' control, version numbering -on the library has not always been consistent and straightforward. -The following table summarizes matters since version 0.89c, which was -the first widely used release: - - source png.h png.h shared-lib - version string int version - ------- ------ ------ ---------- - 0.89c 0.89 89 1.0.89 - 0.90 0.90 90 0.90 [should be 2.0.90] - 0.95 0.95 95 0.95 [should be 2.0.95] - 0.96 0.96 96 0.96 [should be 2.0.96] - 0.97b 1.00.97 97 1.0.1 [should be 2.0.97] - 0.97c 0.97 97 2.0.97 - 0.98 0.98 98 2.0.98 - 0.99 0.99 98 2.0.99 - 0.99a-m 0.99 99 2.0.99 - 1.00 1.00 100 2.1.0 [int should be 10000] - 1.0.0 1.0.0 100 2.1.0 [int should be 10000] - 1.0.1 1.0.1 10001 2.1.0 - -Henceforth the source version will match the shared-library -minor and patch numbers; the shared-library major version number will be -used for changes in backward compatibility, as it is intended. -The PNG_PNGLIB_VER macro, which is not used within libpng but -is available for applications, is an unsigned integer of the form -xyyzz corresponding to the source version x.y.z (leading zeros in y and z). - -.SH "SEE ALSO" -libpngpf(3), png(5) -.LP -.IR libpng : -.IP -ftp://ftp.uu.net/graphics/png -http://www.cdrom.com/pub/png - -.LP -.IR zlib : -.IP -(generally) at the same location as -.I libpng -or at -.br -ftp://ftp.uu.net/pub/archiving/zip/zlib -.br -http://www.cdrom.com/pub/infozip/zlib - -.LP -.IR PNG specification: RFC 2083 -.IP -(generally) at the same location as -.I libpng -or at -.br -ftp://ds.internic.net/rfc/rfc2083.txt -.br -or (as a W3C Recommendation) at -.br -http://www.w3.org/TR/REC-png.html - -.LP -In the case of any inconsistency between the PNG specification -and this library, the specification takes precedence. - -.SH AUTHORS -This man page: Glenn Randers-Pehrson - - -Contributing Authors: John Bowler, Kevin Bracey, Sam Bushell, Andreas Dilger, -Magnus Holmgren, Tom Lane, Dave Martindale, Glenn Randers-Pehrson, -Greg Roelofs, Guy Eric Schalnat, Paul Schmidt, Tom Tanner, Willem van -Schaik, Tim Wegner. - - -The contributing authors would like to thank all those who helped -with testing, bug fixes, and patience. This wouldn't have been -possible without all of you. - -Thanks to Frank J. T. Wojcik for helping with the documentation. - -Libpng version 1.0.3 - January 14, 1999: -Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. -Currently maintained by Glenn Randers-Pehrson (randeg@alumni.rpi.edu). - -Supported by the PNG development group -.br -(png-implement@dworkin.wustl.edu). - -.SH COPYRIGHT NOTICE: - -Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. -Copyright (c) 1996, 1997 Andreas Dilger -Copyright (c) 1998, 1999 Glenn Randers-Pehrson - -The PNG Reference Library (libpng) is supplied "AS IS". The Contributing -Authors and Group 42, Inc. disclaim all warranties, expressed or implied, -including, without limitation, the warranties of merchantability and of -fitness for any purpose. The Contributing Authors and Group 42, Inc. -assume no liability for direct, indirect, incidental, special, exemplary, -or consequential damages, which may result from the use of the PNG -Reference Library, even if advised of the possibility of such damage. - -Permission is hereby granted to use, copy, modify, and distribute this -source code, or portions hereof, for any purpose, without fee, subject -to the following restrictions: - - 1. The origin of this source code must not be - misrepresented. - - 2. Altered versions must be plainly marked as such - and must not be misrepresented as being the - original source. - - 3. This Copyright notice may not be removed or - altered from any source or altered source - distribution. - -The Contributing Authors and Group 42, Inc. specifically permit, without -fee, and encourage the use of this source code as a component to -supporting the PNG file format in commercial products. If you use this -source code in a product, acknowledgment is not required but would be -appreciated. - -.\" end of man page - diff --git a/src/png/libpng.txt b/src/png/libpng.txt deleted file mode 100644 index 1a30a9f2cc..0000000000 --- a/src/png/libpng.txt +++ /dev/null @@ -1,2067 +0,0 @@ -libpng.txt - A description on how to use and modify libpng - - libpng version 1.0.3 - January 14, 1999 - Updated and distributed by Glenn Randers-Pehrson - - Copyright (c) 1998, 1999 Glenn Randers-Pehrson - For conditions of distribution and use, see copyright - notice in png.h. - - based on: - - libpng 1.0 beta 6 version 0.96 May 28, 1997 - Updated and distributed by Andreas Dilger - Copyright (c) 1996, 1997 Andreas Dilger - - libpng 1.0 beta 2 - version 0.88 January 26, 1996 - For conditions of distribution and use, see copyright - notice in png.h. Copyright (c) 1995, 1996 Guy Eric - Schalnat, Group 42, Inc. - - Updated/rewritten per request in the libpng FAQ - Copyright (c) 1995 Frank J. T. Wojcik - December 18, 1995 && January 20, 1996 - -I. Introduction - -This file describes how to use and modify the PNG reference library -(known as libpng) for your own use. There are five sections to this -file: introduction, structures, reading, writing, and modification and -configuration notes for various special platforms. In addition to this -file, example.c is a good starting point for using the library, as -it is heavily commented and should include everything most people -will need. We assume that libpng is already installed; see the -INSTALL file for instructions on how to install libpng. - -Libpng was written as a companion to the PNG specification, as a way -of reducing the amount of time and effort it takes to support the PNG -file format in application programs. The PNG specification is available -as RFC 2083 and as a -W3C Recommendation . Some -additional chunks are described in the special-purpose public chunks -documents at . Other information -about PNG, and the latest version of libpng, can be found at the PNG home -page, . - -Most users will not have to modify the library significantly; advanced -users may want to modify it more. All attempts were made to make it as -complete as possible, while keeping the code easy to understand. -Currently, this library only supports C. Support for other languages -is being considered. - -Libpng has been designed to handle multiple sessions at one time, -to be easily modifiable, to be portable to the vast majority of -machines (ANSI, K&R, 16-, 32-, and 64-bit) available, and to be easy -to use. The ultimate goal of libpng is to promote the acceptance of -the PNG file format in whatever way possible. While there is still -work to be done (see the TODO file), libpng should cover the -majority of the needs of its users. - -Libpng uses zlib for its compression and decompression of PNG files. -Further information about zlib, and the latest version of zlib, can -be found at the zlib home page, . -The zlib compression utility is a general purpose utility that is -useful for more than PNG files, and can be used without libpng. -See the documentation delivered with zlib for more details. -You can usually find the source files for the zlib utility wherever you -find the libpng source files. - -Libpng is thread safe, provided the threads are using different -instances of the structures. Each thread should have its own -png_struct and png_info instances, and thus its own image. -Libpng does not protect itself against two threads using the -same instance of a structure. - - -II. Structures - -There are two main structures that are important to libpng, png_struct -and png_info. The first, png_struct, is an internal structure that -will not, for the most part, be used by a user except as the first -variable passed to every libpng function call. - -The png_info structure is designed to provide information about the -PNG file. At one time, the fields of png_info were intended to be -directly accessible to the user. However, this tended to cause problems -with applications using dynamically loaded libraries, and as a result -a set of interface functions for png_info was developed. The fields -of png_info are still available for older applications, but it is -suggested that applications use the new interfaces if at all possible. - -The png.h header file is an invaluable reference for programming with libpng. -And while I'm on the topic, make sure you include the libpng header file: - -#include - -III. Reading - -Reading PNG files: - -We'll now walk you through the possible functions to call when reading -in a PNG file, briefly explaining the syntax and purpose of each one. -See example.c and png.h for more detail. While Progressive reading -is covered in the next section, you will still need some of the -functions discussed in this section to read a PNG file. - -You will want to do the I/O initialization(*) before you get into libpng, -so if it doesn't work, you don't have much to undo. Of course, you -will also want to insure that you are, in fact, dealing with a PNG -file. Libpng provides a simple check to see if a file is a PNG file. -To use it, pass in the first 1 to 8 bytes of the file, and it will -return true or false (1 or 0) depending on whether the bytes could be -part of a PNG file. Of course, the more bytes you pass in, the -greater the accuracy of the prediction. - -If you are intending to keep the file pointer open for use in libpng, -you must ensure you don't read more than 8 bytes from the beginning -of the file, and you also have to make a call to png_set_sig_bytes_read() -with the number of bytes you read from the beginning. Libpng will -then only check the bytes (if any) that your program didn't read. - -(*): If you are not using the standard I/O functions, you will need -to replace them with custom functions. See the discussion under -Customizing libpng. - - - FILE *fp = fopen(file_name, "rb"); - if (!fp) - { - return; - } - fread(header, 1, number, fp); - is_png = !png_sig_cmp(header, 0, number); - if (!is_png) - { - return; - } - - -Next, png_struct and png_info need to be allocated and initialized. In -order to ensure that the size of these structures is correct even with a -dynamically linked libpng, there are functions to initialize and -allocate the structures. We also pass the library version, optional -pointers to error handling functions, and a pointer to a data struct for -use by the error functions, if necessary (the pointer and functions can -be NULL if the default error handlers are to be used). See the section -on Changes to Libpng below regarding the old initialization functions. - - png_structp png_ptr = png_create_read_struct - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn); - if (!png_ptr) - return; - - png_infop info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_read_struct(&png_ptr, - (png_infopp)NULL, (png_infopp)NULL); - return; - } - - png_infop end_info = png_create_info_struct(png_ptr); - if (!end_info) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - (png_infopp)NULL); - return; - } - -If you want to use your own memory allocation routines, -define PNG_USER_MEM_SUPPORTED and use -png_create_read_struct_2() instead of png_create_read_struct(): - - png_structp png_ptr = png_create_read_struct_2 - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn, (png_voidp) - user_mem_ptr, user_malloc_fn, user_free_fn); - -The error handling routines passed to png_create_read_struct() -and the memory alloc/free routines passed to png_create_struct_2() -are only necessary if you are not using the libpng supplied error -handling and memory alloc/free functions. - -When libpng encounters an error, it expects to longjmp back -to your routine. Therefore, you will need to call setjmp and pass -your png_ptr->jmpbuf. If you read the file from different -routines, you will need to update the jmpbuf field every time you enter -a new routine that will call a png_ function. - -See your documentation of setjmp/longjmp for your compiler for more -handling in the Customizing Libpng section below for more information on -the libpng error handling. If an error occurs, and libpng longjmp's -back to your setjmp, you will want to call png_destroy_read_struct() to -free any memory. - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - &end_info); - fclose(fp); - return; - } - -Now you need to set up the input code. The default for libpng is to -use the C function fread(). If you use this, you will need to pass a -valid FILE * in the function png_init_io(). Be sure that the file is -opened in binary mode. If you wish to handle reading data in another -way, you need not call the png_init_io() function, but you must then -implement the libpng I/O methods discussed in the Customizing Libpng -section below. - - png_init_io(png_ptr, fp); - -If you had previously opened the file and read any of the signature from -the beginning in order to see if this was a PNG file, you need to let -libpng know that there are some bytes missing from the start of the file. - - png_set_sig_bytes(png_ptr, number); - -At this point, you can set up a callback function that will be -called after each row has been read, which you can use to control -a progress meter or the like. It's demonstrated in pngtest.c. -You must supply a function - - void read_row_callback(png_ptr, png_uint_32 row, int pass); - { - /* put your code here */ - } - -(You can give it another name that you like instead of "read_row_callback") - -To inform libpng about your function, use - - png_set_read_status_fn(png_ptr, read_row_callback); - -In PNG files, the alpha channel in an image is the level of opacity. -If you need the alpha channel in an image to be the level of transparency -instead of opacity, you can invert the alpha channel (or the tRNS chunk -data) after it's read, so that 0 is fully opaque and 255 (in 8-bit or -paletted images) or 65535 (in 16-bit images) is fully transparent, with - - png_set_invert_alpha(png_ptr); - -This has to appear here rather than later with the other transformations -because the tRNS chunk data must be modified in the case of paletted images. -If your image is not a paletted image, the tRNS data (which in such cases -represents a single color to be rendered as transparent) won't be changed. - -Finally, you can write your own transformation function if none of -the existing ones meets your needs. This is done by setting a callback -with - - png_set_read_user_transform_fn(png_ptr, - read_transform_fn); - -You must supply the function - - void read_transform_fn(png_ptr ptr, row_info_ptr - row_info, png_bytep data) - -See pngtest.c for a working example. Your function will be called -after all of the other transformations have been processed. - -You are now ready to read all the file information up to the actual -image data. You do this with a call to png_read_info(). - - png_read_info(png_ptr, info_ptr); - -Functions are used to get the information from the info_ptr: - - png_get_IHDR(png_ptr, info_ptr, &width, &height, - &bit_depth, &color_type, &interlace_type, - &compression_type, &filter_type); - - width - holds the width of the image - in pixels (up to 2^31). - height - holds the height of the image - in pixels (up to 2^31). - bit_depth - holds the bit depth of one of the - image channels. (valid values are - 1, 2, 4, 8, 16 and depend also on - the color_type. See also - significant bits (sBIT) below). - color_type - describes which color/alpha channels - are present. - PNG_COLOR_TYPE_GRAY - (bit depths 1, 2, 4, 8, 16) - PNG_COLOR_TYPE_GRAY_ALPHA - (bit depths 8, 16) - PNG_COLOR_TYPE_PALETTE - (bit depths 1, 2, 4, 8) - PNG_COLOR_TYPE_RGB - (bit_depths 8, 16) - PNG_COLOR_TYPE_RGB_ALPHA - (bit_depths 8, 16) - - PNG_COLOR_MASK_PALETTE - PNG_COLOR_MASK_COLOR - PNG_COLOR_MASK_ALPHA - - filter_type - (must be PNG_FILTER_TYPE_BASE - for PNG 1.0) - compression_type - (must be PNG_COMPRESSION_TYPE_BASE - for PNG 1.0) - interlace_type - (PNG_INTERLACE_NONE or - PNG_INTERLACE_ADAM7) - Any or all of interlace_type, compression_type, of - filter_type can be - NULL if you are not interested in their values. - - channels = png_get_channels(png_ptr, info_ptr); - channels - number of channels of info for the - color type (valid values are 1 (GRAY, - PALETTE), 2 (GRAY_ALPHA), 3 (RGB), - 4 (RGB_ALPHA or RGB + filler byte)) - rowbytes = png_get_rowbytes(png_ptr, info_ptr); - rowbytes - number of bytes needed to hold a row - - signature = png_get_signature(png_ptr, info_ptr); - signature - holds the signature read from the - file (if any). The data is kept in - the same offset it would be if the - whole signature were read (i.e. if an - application had already read in 4 - bytes of signature before starting - libpng, the remaining 4 bytes would - be in signature[4] through signature[7] - (see png_set_sig_bytes())). - - - width = png_get_image_width(png_ptr, - info_ptr); - height = png_get_image_height(png_ptr, - info_ptr); - bit_depth = png_get_bit_depth(png_ptr, - info_ptr); - color_type = png_get_color_type(png_ptr, - info_ptr); - filter_type = png_get_filter_type(png_ptr, - info_ptr); - compression_type = png_get_compression_type(png_ptr, - info_ptr); - interlace_type = png_get_interlace_type(png_ptr, - info_ptr); - - -These are also important, but their validity depends on whether the chunk -has been read. The png_get_valid(png_ptr, info_ptr, PNG_INFO_) and -png_get_(png_ptr, info_ptr, ...) functions return non-zero if the -data has been read, or zero if it is missing. The parameters to the -png_get_ are set directly if they are simple data types, or a pointer -into the info_ptr is returned for any complex types. - - png_get_PLTE(png_ptr, info_ptr, &palette, - &num_palette); - palette - the palette for the file - (array of png_color) - num_palette - number of entries in the palette - - png_get_gAMA(png_ptr, info_ptr, &gamma); - gamma - the gamma the file is written - at (PNG_INFO_gAMA) - - png_get_sRGB(png_ptr, info_ptr, &srgb_intent); - srgb_intent - the rendering intent (PNG_INFO_sRGB) - The presence of the sRGB chunk - means that the pixel data is in the - sRGB color space. This chunk also - implies specific values of gAMA and - cHRM. - - png_get_sBIT(png_ptr, info_ptr, &sig_bit); - sig_bit - the number of significant bits for - (PNG_INFO_sBIT) each of the gray, - red, green, and blue channels, - whichever are appropriate for the - given color type (png_color_16) - - png_get_tRNS(png_ptr, info_ptr, &trans, &num_trans, - &trans_values); - trans - array of transparent entries for - palette (PNG_INFO_tRNS) - trans_values - transparent pixel for non-paletted - images (PNG_INFO_tRNS) - num_trans - number of transparent entries - (PNG_INFO_tRNS) - - png_get_hIST(png_ptr, info_ptr, &hist); - (PNG_INFO_hIST) - hist - histogram of palette (array of - png_color_16) - - png_get_tIME(png_ptr, info_ptr, &mod_time); - mod_time - time image was last modified - (PNG_VALID_tIME) - - png_get_bKGD(png_ptr, info_ptr, &background); - background - background color (PNG_VALID_bKGD) - - num_text = png_get_text(png_ptr, info_ptr, &text_ptr); - text_ptr - array of png_text holding image - comments - text_ptr[i]->key - keyword for comment. - text_ptr[i]->text - text comments for current - keyword. - text_ptr[i]->compression - type of compression used - on "text" PNG_TEXT_COMPRESSION_NONE - or PNG_TEXT_COMPRESSION_zTXt - num_text - number of comments - - png_get_oFFs(png_ptr, info_ptr, &offset_x, &offset_y, - &unit_type); - offset_x - positive offset from the left edge - of the screen - offset_y - positive offset from the top edge - of the screen - unit_type - PNG_OFFSET_PIXEL, PNG_OFFSET_MICROMETER - - png_get_pHYs(png_ptr, info_ptr, &res_x, &res_y, - &unit_type); - res_x - pixels/unit physical resolution in - x direction - res_y - pixels/unit physical resolution in - x direction - unit_type - PNG_RESOLUTION_UNKNOWN, - PNG_RESOLUTION_METER - -The data from the pHYs chunk can be retrieved in several convenient -forms: - - res_x = png_get_x_pixels_per_meter(png_ptr, - info_ptr) - res_y = png_get_y_pixels_per_meter(png_ptr, - info_ptr) - res_x_and_y = png_get_pixels_per_meter(png_ptr, - info_ptr) - aspect_ratio = png_get_pixel_aspect_ratio(png_ptr, - info_ptr) - - (Each of these returns 0 [signifying "unknown"] if - the data is not present or if res_x is 0; - res_x_and_y is 0 if res_x != res_y) - -For more information, see the png_info definition in png.h and the -PNG specification for chunk contents. Be careful with trusting -rowbytes, as some of the transformations could increase the space -needed to hold a row (expand, filler, gray_to_rgb, etc.). -See png_read_update_info(), below. - -A quick word about text_ptr and num_text. PNG stores comments in -keyword/text pairs, one pair per chunk, with no limit on the number -of text chunks, and a 2^31 byte limit on their size. While there are -suggested keywords, there is no requirement to restrict the use to these -strings. It is strongly suggested that keywords and text be sensible -to humans (that's the point), so don't use abbreviations. Non-printing -symbols are not allowed. See the PNG specification for more details. -There is also no requirement to have text after the keyword. - -Keywords should be limited to 79 Latin-1 characters without leading or -trailing spaces, but non-consecutive spaces are allowed within the -keyword. It is possible to have the same keyword any number of times. -The text_ptr is an array of png_text structures, each holding pointer -to a keyword and a pointer to a text string. Only the text string may -be null. The keyword/text pairs are put into the array in the order -that they are received. However, some or all of the text chunks may be -after the image, so, to make sure you have read all the text chunks, -don't mess with these until after you read the stuff after the image. -This will be mentioned again below in the discussion that goes with -png_read_end(). - -After you've read the header information, you can set up the library -to handle any special transformations of the image data. The various -ways to transform the data will be described in the order that they -should occur. This is important, as some of these change the color -type and/or bit depth of the data, and some others only work on -certain color types and bit depths. Even though each transformation -checks to see if it has data that it can do something with, you should -make sure to only enable a transformation if it will be valid for the -data. For example, don't swap red and blue on grayscale data. - -The colors used for the background and transparency values should be -supplied in the same format/depth as the current image data. They -are stored in the same format/depth as the image data in a bKGD or tRNS -chunk, so this is what libpng expects for this data. The colors are -transformed to keep in sync with the image data when an application -calls the png_read_update_info() routine (see below). - -Data will be decoded into the supplied row buffers packed into bytes -unless the library has been told to transform it into another format. -For example, 4 bit/pixel paletted or grayscale data will be returned -2 pixels/byte with the leftmost pixel in the high-order bits of the -byte, unless png_set_packing() is called. 8-bit RGB data will be stored -in RGB RGB RGB format unless png_set_filler() is called to insert filler -bytes, either before or after each RGB triplet. 16-bit RGB data will -be returned RRGGBB RRGGBB, with the most significant byte of the color -value first, unless png_set_strip_16() is called to transform it to -regular RGB RGB triplets, or png_set_filler() is called to insert -filler bytes, either before or after each RRGGBB triplet. Similarly, -8-bit or 16-bit grayscale data can be modified with png_set_filler() -or png_set_strip_16(). - -The following code transforms grayscale images of less than 8 to 8 bits, -changes paletted images to RGB, and adds a full alpha channel if there is -transparency information in a tRNS chunk. This is most useful on -grayscale images with bit depths of 2 or 4 or if there is a multiple-image -viewing application that wishes to treat all images in the same way. - - if (color_type == PNG_COLOR_TYPE_PALETTE && - bit_depth <= 8) png_set_expand(png_ptr); - - if (color_type == PNG_COLOR_TYPE_GRAY && - bit_depth < 8) png_set_expand(png_ptr); - - if (png_get_valid(png_ptr, info_ptr, - PNG_INFO_tRNS)) png_set_expand(png_ptr); - -PNG can have files with 16 bits per channel. If you only can handle -8 bits per channel, this will strip the pixels down to 8 bit. - - if (bit_depth == 16) - png_set_strip_16(png_ptr); - -The png_set_background() function tells libpng to composite images -with alpha or simple transparency against the supplied background -color. If the PNG file contains a bKGD chunk (PNG_INFO_bKGD valid), -you may use this color, or supply another color more suitable for -the current display (e.g., the background color from a web page). You -need to tell libpng whether the color is in the gamma space of the -display (PNG_BACKGROUND_GAMMA_SCREEN for colors you supply), the file -(PNG_BACKGROUND_GAMMA_FILE for colors from the bKGD chunk), or one -that is neither of these gammas (PNG_BACKGROUND_GAMMA_UNIQUE - I don't -know why anyone would use this, but it's here). - -If, for some reason, you don't need the alpha channel on an image, -and you want to remove it rather than combining it with the background -(but the image author certainly had in mind that you *would* combine -it with the background, so that's what you should probably do): - - if (color_type & PNG_COLOR_MASK_ALPHA) - png_set_strip_alpha(png_ptr); - -PNG files pack pixels of bit depths 1, 2, and 4 into bytes as small as -they can, resulting in, for example, 8 pixels per byte for 1 bit -files. This code expands to 1 pixel per byte without changing the -values of the pixels: - - if (bit_depth < 8) - png_set_packing(png_ptr); - -PNG files have possible bit depths of 1, 2, 4, 8, and 16. All pixels -stored in a PNG image have been "scaled" or "shifted" up to the next -higher possible bit depth (e.g. from 5 bits/sample in the range [0,31] to -8 bits/sample in the range [0, 255]). However, it is also possible to -convert the PNG pixel data back to the original bit depth of the image. -This call reduces the pixels back down to the original bit depth: - - png_color_16p sig_bit; - - if (png_get_sBIT(png_ptr, info_ptr, &sig_bit)) - png_set_shift(png_ptr, sig_bit); - -PNG files store 3-color pixels in red, green, blue order. This code -changes the storage of the pixels to blue, green, red: - - if (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_bgr(png_ptr); - -PNG files store RGB pixels packed into 3 bytes. This code expands them -into 4 bytes for windowing systems that need them in this format: - - if (bit_depth == 8 && color_type == - PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr, - filler, PNG_FILLER_BEFORE); - -where "filler" is the 8 or 16-bit number to fill with, and the location is -either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether -you want the filler before the RGB or after. This transformation -does not affect images that already have full alpha channels. - -If you are reading an image with an alpha channel, and you need the -data as ARGB instead of the normal PNG format RGBA: - - if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_swap_alpha(png_ptr); - -For some uses, you may want a grayscale image to be represented as -RGB. This code will do that conversion: - - if (color_type == PNG_COLOR_TYPE_GRAY || - color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - png_set_gray_to_rgb(png_ptr); - -Conversely, you can convert an RGB or RGBA image to grayscale or grayscale -with alpha. This is intended for conversion of images that really are -gray (red == green == blue), so the function simply strips out the red -and blue channels, leaving the green channel in the gray position. - - if (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_rgb_to_gray(png_ptr, error_action, - float red_weight, float green_weight); - - error_action = 1: silently do the conversion - error_action = 2: issue a warning if the original - image has any pixel where - red != green or red != blue - error_action = 3: issue an error and abort the - conversion if the original - image has any pixel where - red != green or red != blue - - red_weight: weight of red component - (NULL -> default 54/256) - green_weight: weight of green component - (NULL -> default 183/256) - -If you have set error_action = 1 or 2, you can -later check whether the image really was gray, after processing -the image rows, with the png_get_rgb_to_gray_status(png_ptr) function. -It will return a png_byte that is zero if the image was gray or -1 if there were any non-gray pixels. bKGD and sBIT data -will be silently converted to grayscale, using the green channel -data, regardless of the error_action setting. - -With 0.0<=red_weight+green_weight<=1.0, -the normalized graylevel is computed: - - int rw = red_weight * 256; - int gw = green_weight * 256; - int bw = 256 - (rw + gw); - gray = (rw*red + gw*green + bw*blue)/256; - -The default values approximate those recommended in the Charles -Poynton's Color FAQ, -Copyright (c) 1998-01-04 Charles Poynton poynton@inforamp.net - - Y = 0.212671 * R + 0.715160 * G + 0.072169 * B - -Libpng approximates this with - - Y = 0.211 * R + 0.715 * G + 0.074 * B - -which can be expressed with integers as - - Y = (54 * R + 183 * G + 19 * B)/256 - -The calculation is done in a linear colorspace, if the image gamma -is known. - -If you have a grayscale and you are using png_set_expand() to change to -a higher bit-depth, you must either supply the background color as a gray -value at the original file bit-depth (need_expand = 1) or else supply the -background color as an RGB triplet at the final, expanded bit depth -(need_expand = 0). Similarly, if you are reading a paletted image, you -must either supply the background color as a palette index (need_expand = 1) -or as an RGB triplet that may or may not be in the palette (need_expand = 0). - - png_color_16 my_background; - png_color_16p image_background; - - if (png_get_bKGD(png_ptr, info_ptr, &image_background)) - png_set_background(png_ptr, image_background, - PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); - else - png_set_background(png_ptr, &my_background, - PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0); - -To properly display PNG images on any kind of system, the application needs -to know what the display gamma is. Ideally, the user will know this, and -the application will allow them to set it. One method of allowing the user -to set the display gamma separately for each system is to check for the -DISPLAY_GAMMA and VIEWING_GAMMA environment variables or for a SCREEN_GAMMA -environment variable, which will hopefully be correctly set. - -Note that display_gamma is the gamma of your display, while screen_gamma is -the overall gamma correction required to produce pleasing results, -which depends on the lighting conditions in the surrounding environment. -Screen_gamma is display_gamma/viewing_gamma, where viewing_gamma is -the amount of additional gamma correction needed to compensate for -a (viewing_gamma=1.25) environment. In a dim or brightly lit room, no -compensation other than the display_gamma is needed (viewing_gamma=1.0). - - if (/* We have a user-defined screen - gamma value */) - { - screen_gamma = user_defined_screen_gamma; - } - /* One way that applications can share the same - screen gamma value */ - else if ((gamma_str = getenv("SCREEN_GAMMA")) - != NULL) - { - screen_gamma = atof(gamma_str); - } - /* If we don't have another value */ - else - { - screen_gamma = 2.2; /* A good guess for a - PC monitor in a bright office or a dim room */ - screen_gamma = 2.0; /* A good guess for a - PC monitor in a dark room */ - screen_gamma = 1.7 or 1.0; /* A good - guess for Mac systems */ - } - -The png_set_gamma() function handles gamma transformations of the data. -Pass both the file gamma and the current screen_gamma. If the file does -not have a gamma value, you can pass one anyway if you have an idea what -it is (usually 0.45455 is a good guess for GIF images on PCs). Note -that file gammas are inverted from screen gammas. See the discussions -on gamma in the PNG specification for an excellent description of what -gamma is, and why all applications should support it. It is strongly -recommended that PNG viewers support gamma correction. - - if (png_get_gAMA(png_ptr, info_ptr, &gamma)) - png_set_gamma(png_ptr, screen_gamma, gamma); - else - png_set_gamma(png_ptr, screen_gamma, 0.45455); - -If you need to reduce an RGB file to a paletted file, or if a paletted -file has more entries then will fit on your screen, png_set_dither() -will do that. Note that this is a simple match dither that merely -finds the closest color available. This should work fairly well with -optimized palettes, and fairly badly with linear color cubes. If you -pass a palette that is larger then maximum_colors, the file will -reduce the number of colors in the palette so it will fit into -maximum_colors. If there is a histogram, it will use it to make -more intelligent choices when reducing the palette. If there is no -histogram, it may not do as good a job. - - if (color_type & PNG_COLOR_MASK_COLOR) - { - if (png_get_valid(png_ptr, info_ptr, - PNG_INFO_PLTE)) - { - png_color_16p histogram; - - png_get_hIST(png_ptr, info_ptr, - &histogram); - png_set_dither(png_ptr, palette, num_palette, - max_screen_colors, histogram, 1); - } - else - { - png_color std_color_cube[MAX_SCREEN_COLORS] = - { ... colors ... }; - - png_set_dither(png_ptr, std_color_cube, - MAX_SCREEN_COLORS, MAX_SCREEN_COLORS, - NULL,0); - } - } - -PNG files describe monochrome as black being zero and white being one. -The following code will reverse this (make black be one and white be -zero): - - if (bit_depth == 1 && color_type == PNG_COLOR_GRAY) - png_set_invert_mono(png_ptr); - -PNG files store 16 bit pixels in network byte order (big-endian, -ie. most significant bits first). This code changes the storage to the -other way (little-endian, i.e. least significant bits first, the -way PCs store them): - - if (bit_depth == 16) - png_set_swap(png_ptr); - -If you are using packed-pixel images (1, 2, or 4 bits/pixel), and you -need to change the order the pixels are packed into bytes, you can use: - - if (bit_depth < 8) - png_set_packswap(png_ptr); - -The last thing to handle is interlacing; this is covered in detail below, -but you must call the function here if you want libpng to handle expansion -of the interlaced image. - - number_of_passes = png_set_interlace_handling(png_ptr); - -After setting the transformations, libpng can update your png_info -structure to reflect any transformations you've requested with this -call. This is most useful to update the info structure's rowbytes -field so you can use it to allocate your image memory. This function -will also update your palette with the correct screen_gamma and -background if these have been given with the calls above. - - png_read_update_info(png_ptr, info_ptr); - -After you call png_read_update_info(), you can allocate any -memory you need to hold the image. The row data is simply -raw byte data for all forms of images. As the actual allocation -varies among applications, no example will be given. If you -are allocating one large chunk, you will need to build an -array of pointers to each row, as it will be needed for some -of the functions below. - -After you've allocated memory, you can read the image data. -The simplest way to do this is in one function call. If you are -allocating enough memory to hold the whole image, you can just -call png_read_image() and libpng will read in all the image data -and put it in the memory area supplied. You will need to pass in -an array of pointers to each row. - -This function automatically handles interlacing, so you don't need -to call png_set_interlace_handling() or call this function multiple -times, or any of that other stuff necessary with png_read_rows(). - - png_read_image(png_ptr, row_pointers); - -where row_pointers is: - - png_bytep row_pointers[height]; - -You can point to void or char or whatever you use for pixels. - -If you don't want to read in the whole image at once, you can -use png_read_rows() instead. If there is no interlacing (check -interlace_type == PNG_INTERLACE_NONE), this is simple: - - png_read_rows(png_ptr, row_pointers, NULL, - number_of_rows); - -where row_pointers is the same as in the png_read_image() call. - -If you are doing this just one row at a time, you can do this with -row_pointers: - - png_bytep row_pointers = row; - png_read_row(png_ptr, &row_pointers, NULL); - -If the file is interlaced (info_ptr->interlace_type != 0), things get -somewhat harder. The only current (PNG Specification version 1.0) -interlacing type for PNG is (interlace_type == PNG_INTERLACE_ADAM7) -is a somewhat complicated 2D interlace scheme, known as Adam7, that -breaks down an image into seven smaller images of varying size, based -on an 8x8 grid. - -libpng can fill out those images or it can give them to you "as is". -If you want them filled out, there are two ways to do that. The one -mentioned in the PNG specification is to expand each pixel to cover -those pixels that have not been read yet (the "rectangle" method). -This results in a blocky image for the first pass, which gradually -smooths out as more pixels are read. The other method is the "sparkle" -method, where pixels are drawn only in their final locations, with the -rest of the image remaining whatever colors they were initialized to -before the start of the read. The first method usually looks better, -but tends to be slower, as there are more pixels to put in the rows. - -If you don't want libpng to handle the interlacing details, just call -png_read_rows() seven times to read in all seven images. Each of the -images is a valid image by itself, or they can all be combined on an -8x8 grid to form a single image (although if you intend to combine them -you would be far better off using the libpng interlace handling). - -The first pass will return an image 1/8 as wide as the entire image -(every 8th column starting in column 0) and 1/8 as high as the original -(every 8th row starting in row 0), the second will be 1/8 as wide -(starting in column 4) and 1/8 as high (also starting in row 0). The -third pass will be 1/4 as wide (every 4th pixel starting in column 0) and -1/8 as high (every 8th row starting in row 4), and the fourth pass will -be 1/4 as wide and 1/4 as high (every 4th column starting in column 2, -and every 4th row starting in row 0). The fifth pass will return an -image 1/2 as wide, and 1/4 as high (starting at column 0 and row 2), -while the sixth pass will be 1/2 as wide and 1/2 as high as the original -(starting in column 1 and row 0). The seventh and final pass will be as -wide as the original, and 1/2 as high, containing all of the odd -numbered scanlines. Phew! - -If you want libpng to expand the images, call this before calling -png_start_read_image() or png_read_update_info(): - - if (interlace_type == PNG_INTERLACE_ADAM7) - number_of_passes - = png_set_interlace_handling(png_ptr); - -This will return the number of passes needed. Currently, this -is seven, but may change if another interlace type is added. -This function can be called even if the file is not interlaced, -where it will return one pass. - -If you are not going to display the image after each pass, but are -going to wait until the entire image is read in, use the sparkle -effect. This effect is faster and the end result of either method -is exactly the same. If you are planning on displaying the image -after each pass, the "rectangle" effect is generally considered the -better looking one. - -If you only want the "sparkle" effect, just call png_read_rows() as -normal, with the third parameter NULL. Make sure you make pass over -the image number_of_passes times, and you don't change the data in the -rows between calls. You can change the locations of the data, just -not the data. Each pass only writes the pixels appropriate for that -pass, and assumes the data from previous passes is still valid. - - png_read_rows(png_ptr, row_pointers, NULL, - number_of_rows); - -If you only want the first effect (the rectangles), do the same as -before except pass the row buffer in the third parameter, and leave -the second parameter NULL. - - png_read_rows(png_ptr, NULL, row_pointers, - number_of_rows); - -After you are finished reading the image, you can finish reading -the file. If you are interested in comments or time, which may be -stored either before or after the image data, you should pass the -separate png_info struct if you want to keep the comments from -before and after the image separate. If you are not interested, you -can pass NULL. - - png_read_end(png_ptr, end_info); - -When you are done, you can free all memory allocated by libpng like this: - - png_destroy_read_struct(&png_ptr, &info_ptr, - &end_info); - -For a more compact example of reading a PNG image, see the file example.c. - - -Reading PNG files progressively: - -The progressive reader is slightly different then the non-progressive -reader. Instead of calling png_read_info(), png_read_rows(), and -png_read_end(), you make one call to png_process_data(), which calls -callbacks when it has the info, a row, or the end of the image. You -set up these callbacks with png_set_progressive_read_fn(). You don't -have to worry about the input/output functions of libpng, as you are -giving the library the data directly in png_process_data(). I will -assume that you have read the section on reading PNG files above, -so I will only highlight the differences (although I will show -all of the code). - -png_structp png_ptr; -png_infop info_ptr; - - /* An example code fragment of how you would - initialize the progressive reader in your - application. */ - int - initialize_png_reader() - { - png_ptr = png_create_read_struct - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn); - if (!png_ptr) - return -1; - info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_read_struct(&png_ptr, (png_infopp)NULL, - (png_infopp)NULL); - return -1; - } - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - (png_infopp)NULL); - return -1; - } - - /* This one's new. You can provide functions - to be called when the header info is valid, - when each row is completed, and when the image - is finished. If you aren't using all functions, - you can specify NULL parameters. Even when all - three functions are NULL, you need to call - png_set_progressive_read_fn(). You can use - any struct as the user_ptr (cast to a void pointer - for the function call), and retrieve the pointer - from inside the callbacks using the function - - png_get_progressive_ptr(png_ptr); - - which will return a void pointer, which you have - to cast appropriately. - */ - png_set_progressive_read_fn(png_ptr, (void *)user_ptr, - info_callback, row_callback, end_callback); - - return 0; - } - - /* A code fragment that you call as you receive blocks - of data */ - int - process_data(png_bytep buffer, png_uint_32 length) - { - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_read_struct(&png_ptr, &info_ptr, - (png_infopp)NULL); - return -1; - } - - /* This one's new also. Simply give it a chunk - of data from the file stream (in order, of - course). On machines with segmented memory - models machines, don't give it any more than - 64K. The library seems to run fine with sizes - of 4K. Although you can give it much less if - necessary (I assume you can give it chunks of - 1 byte, I haven't tried less then 256 bytes - yet). When this function returns, you may - want to display any rows that were generated - in the row callback if you don't already do - so there. - */ - png_process_data(png_ptr, info_ptr, buffer, length); - return 0; - } - - /* This function is called (as set by - png_set_progressive_read_fn() above) when enough data - has been supplied so all of the header has been - read. - */ - void - info_callback(png_structp png_ptr, png_infop info) - { - /* Do any setup here, including setting any of - the transformations mentioned in the Reading - PNG files section. For now, you _must_ call - either png_start_read_image() or - png_read_update_info() after all the - transformations are set (even if you don't set - any). You may start getting rows before - png_process_data() returns, so this is your - last chance to prepare for that. - */ - } - - /* This function is called when each row of image - data is complete */ - void - row_callback(png_structp png_ptr, png_bytep new_row, - png_uint_32 row_num, int pass) - { - /* If the image is interlaced, and you turned - on the interlace handler, this function will - be called for every row in every pass. Some - of these rows will not be changed from the - previous pass. When the row is not changed, - the new_row variable will be NULL. The rows - and passes are called in order, so you don't - really need the row_num and pass, but I'm - supplying them because it may make your life - easier. - - For the non-NULL rows of interlaced images, - you must call png_progressive_combine_row() - passing in the row and the old row. You can - call this function for NULL rows (it will just - return) and for non-interlaced images (it just - does the memcpy for you) if it will make the - code easier. Thus, you can just do this for - all cases: - */ - - png_progressive_combine_row(png_ptr, old_row, - new_row); - - /* where old_row is what was displayed for - previously for the row. Note that the first - pass (pass == 0, really) will completely cover - the old row, so the rows do not have to be - initialized. After the first pass (and only - for interlaced images), you will have to pass - the current row, and the function will combine - the old row and the new row. - */ - } - - void - end_callback(png_structp png_ptr, png_infop info) - { - /* This function is called after the whole image - has been read, including any chunks after the - image (up to and including the IEND). You - will usually have the same info chunk as you - had in the header, although some data may have - been added to the comments and time fields. - - Most people won't do much here, perhaps setting - a flag that marks the image as finished. - */ - } - - - -IV. Writing - -Much of this is very similar to reading. However, everything of -importance is repeated here, so you won't have to constantly look -back up in the reading section to understand writing. - -You will want to do the I/O initialization before you get into libpng, -so if it doesn't work, you don't have anything to undo. If you are not -using the standard I/O functions, you will need to replace them with -custom writing functions. See the discussion under Customizing libpng. - - FILE *fp = fopen(file_name, "wb"); - if (!fp) - { - return; - } - -Next, png_struct and png_info need to be allocated and initialized. -As these can be both relatively large, you may not want to store these -on the stack, unless you have stack space to spare. Of course, you -will want to check if they return NULL. If you are also reading, -you won't want to name your read structure and your write structure -both "png_ptr"; you can call them anything you like, such as -"read_ptr" and "write_ptr". Look at pngtest.c, for example. - - png_structp png_ptr = png_create_write_struct - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn); - if (!png_ptr) - return; - - png_infop info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_write_struct(&png_ptr, - (png_infopp)NULL); - return; - } - -If you want to use your own memory allocation routines, -define PNG_USER_MEM_SUPPORTED and use -png_create_write_struct_2() instead of png_create_read_struct(): - - png_structp png_ptr = png_create_write_struct_2 - (PNG_LIBPNG_VER_STRING, (png_voidp)user_error_ptr, - user_error_fn, user_warning_fn, (png_voidp) - user_mem_ptr, user_malloc_fn, user_free_fn); - -After you have these structures, you will need to set up the -error handling. When libpng encounters an error, it expects to -longjmp() back to your routine. Therefore, you will need to call -setjmp() and pass the png_ptr->jmpbuf. If you -write the file from different routines, you will need to update -the jmpbuf field every time you enter a new routine that will -call a png_ function. See your documentation of setjmp/longjmp -for your compiler for more information on setjmp/longjmp. See -the discussion on libpng error handling in the Customizing Libpng -section below for more information on the libpng error handling. - - if (setjmp(png_ptr->jmpbuf)) - { - png_destroy_write_struct(&png_ptr, &info_ptr); - fclose(fp); - return; - } - ... - return; - -Now you need to set up the output code. The default for libpng is to -use the C function fwrite(). If you use this, you will need to pass a -valid FILE * in the function png_init_io(). Be sure that the file is -opened in binary mode. Again, if you wish to handle writing data in -another way, see the discussion on libpng I/O handling in the Customizing -Libpng section below. - - png_init_io(png_ptr, fp); - -At this point, you can set up a callback function that will be -called after each row has been written, which you can use to control -a progress meter or the like. It's demonstrated in pngtest.c. -You must supply a function - - void write_row_callback(png_ptr, png_uint_32 row, int pass); - { - /* put your code here */ - } - -(You can give it another name that you like instead of "write_row_callback") - -To inform libpng about your function, use - - png_set_write_status_fn(png_ptr, write_row_callback); - -You now have the option of modifying how the compression library will -run. The following functions are mainly for testing, but may be useful -in some cases, like if you need to write PNG files extremely fast and -are willing to give up some compression, or if you want to get the -maximum possible compression at the expense of slower writing. If you -have no special needs in this area, let the library do what it wants by -not calling this function at all, as it has been tuned to deliver a good -speed/compression ratio. The second parameter to png_set_filter() is -the filter method, for which the only valid value is '0' (as of the -October 1996 PNG specification, version 1.0). The third parameter is a -flag that indicates which filter type(s) are to be tested for each -scanline. See the Compression Library for details on the specific filter -types. - - - /* turn on or off filtering, and/or choose - specific filters */ - png_set_filter(png_ptr, 0, - PNG_FILTER_NONE | PNG_FILTER_SUB | - PNG_FILTER_PAETH); - -The png_set_compression_???() functions interface to the zlib compression -library, and should mostly be ignored unless you really know what you are -doing. The only generally useful call is png_set_compression_level() -which changes how much time zlib spends on trying to compress the image -data. See the Compression Library for details on the compression levels. - - /* set the zlib compression level */ - png_set_compression_level(png_ptr, - Z_BEST_COMPRESSION); - - /* set other zlib parameters */ - png_set_compression_mem_level(png_ptr, 8); - png_set_compression_strategy(png_ptr, - Z_DEFAULT_STRATEGY); - png_set_compression_window_bits(png_ptr, 15); - png_set_compression_method(png_ptr, 8); - -You now need to fill in the png_info structure with all the data you -wish to write before the actual image. Note that the only thing you -are allowed to write after the image is the text chunks and the time -chunk (as of PNG Specification 1.0, anyway). See png_write_end() and -the latest PNG specification for more information on that. If you -wish to write them before the image, fill them in now, and flag that -data as being valid. If you want to wait until after the data, don't -fill them until png_write_end(). For all the fields in png_info and -their data types, see png.h. For explanations of what the fields -contain, see the PNG specification. - -Some of the more important parts of the png_info are: - - png_set_IHDR(png_ptr, info_ptr, width, height, - bit_depth, color_type, interlace_type, - compression_type, filter_type) - width - holds the width of the image - in pixels (up to 2^31). - height - holds the height of the image - in pixels (up to 2^31). - bit_depth - holds the bit depth of one of the - image channels. - (valid values are 1, 2, 4, 8, 16 - and depend also on the - color_type. See also significant - bits (sBIT) below). - color_type - describes which color/alpha - channels are present. - PNG_COLOR_TYPE_GRAY - (bit depths 1, 2, 4, 8, 16) - PNG_COLOR_TYPE_GRAY_ALPHA - (bit depths 8, 16) - PNG_COLOR_TYPE_PALETTE - (bit depths 1, 2, 4, 8) - PNG_COLOR_TYPE_RGB - (bit_depths 8, 16) - PNG_COLOR_TYPE_RGB_ALPHA - (bit_depths 8, 16) - - PNG_COLOR_MASK_PALETTE - PNG_COLOR_MASK_COLOR - PNG_COLOR_MASK_ALPHA - - interlace_type - PNG_INTERLACE_NONE or - PNG_INTERLACE_ADAM7 - compression_type - (must be - PNG_COMPRESSION_TYPE_DEFAULT) - filter_type - (must be PNG_FILTER_TYPE_DEFAULT) - - png_set_PLTE(png_ptr, info_ptr, palette, - num_palette); - palette - the palette for the file - (array of png_color) - num_palette - number of entries in the palette - - png_set_gAMA(png_ptr, info_ptr, gamma); - gamma - the gamma the image was created - at (PNG_INFO_gAMA) - - png_set_sRGB(png_ptr, info_ptr, srgb_intent); - srgb_intent - the rendering intent - (PNG_INFO_sRGB) The presence of - the sRGB chunk means that the pixel - data is in the sRGB color space. - This chunk also implies specific - values of gAMA and cHRM. Rendering - intent is the CSS-1 property that - has been defined by the International - Color Consortium - (http://www.color.org). - It can be one of - PNG_SRGB_INTENT_SATURATION, - PNG_SRGB_INTENT_PERCEPTUAL, - PNG_SRGB_INTENT_ABSOLUTE, or - PNG_SRGB_INTENT_RELATIVE. - - - png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr, - srgb_intent); - srgb_intent - the rendering intent - (PNG_INFO_sRGB) The presence of the - sRGB chunk means that the pixel - data is in the sRGB color space. - This function also causes gAMA and - cHRM chunks with the specific values - that are consistent with sRGB to be - written. - - png_set_sBIT(png_ptr, info_ptr, sig_bit); - sig_bit - the number of significant bits for - (PNG_INFO_sBIT) each of the gray, red, - green, and blue channels, whichever are - appropriate for the given color type - (png_color_16) - - png_set_tRNS(png_ptr, info_ptr, trans, num_trans, - trans_values); - trans - array of transparent entries for - palette (PNG_INFO_tRNS) - trans_values - transparent pixel for non-paletted - images (PNG_INFO_tRNS) - num_trans - number of transparent entries - (PNG_INFO_tRNS) - - png_set_hIST(png_ptr, info_ptr, hist); - (PNG_INFO_hIST) - hist - histogram of palette (array of - png_color_16) - - png_set_tIME(png_ptr, info_ptr, mod_time); - mod_time - time image was last modified - (PNG_VALID_tIME) - - png_set_bKGD(png_ptr, info_ptr, background); - background - background color (PNG_VALID_bKGD) - - png_set_text(png_ptr, info_ptr, text_ptr, num_text); - text_ptr - array of png_text holding image - comments - text_ptr[i]->key - keyword for comment. - text_ptr[i]->text - text comments for current - keyword. - text_ptr[i]->compression - type of compression used - on "text" PNG_TEXT_COMPRESSION_NONE or - PNG_TEXT_COMPRESSION_zTXt - num_text - number of comments in text_ptr - - png_set_oFFs(png_ptr, info_ptr, offset_x, offset_y, - unit_type); - offset_x - positive offset from the left - edge of the screen - offset_y - positive offset from the top - edge of the screen - unit_type - PNG_OFFSET_PIXEL, PNG_OFFSET_MICROMETER - - png_set_pHYs(png_ptr, info_ptr, res_x, res_y, - unit_type); - res_x - pixels/unit physical resolution - in x direction - res_y - pixels/unit physical resolution - in y direction - unit_type - PNG_RESOLUTION_UNKNOWN, - PNG_RESOLUTION_METER - -In PNG files, the alpha channel in an image is the level of opacity. -If your data is supplied as a level of transparency, you can invert the -alpha channel before you write it, so that 0 is fully transparent and 255 -(in 8-bit or paletted images) or 65535 (in 16-bit images) is fully opaque, -with - - png_set_invert_alpha(png_ptr); - -This must appear here instead of later with the other transformations -because in the case of paletted images the tRNS chunk data has to -be inverted before the tRNS chunk is written. If your image is not a -paletted image, the tRNS data (which in such cases represents a single -color to be rendered as transparent) won't be changed. - -A quick word about text and num_text. text is an array of png_text -structures. num_text is the number of valid structures in the array. -If you want, you can use max_text to hold the size of the array, but -libpng ignores it for writing (it does use it for reading). Each -png_text structure holds a keyword-text value, and a compression type. -The compression types have the same valid numbers as the compression -types of the image data. Currently, the only valid number is zero. -However, you can store text either compressed or uncompressed, unlike -images, which always have to be compressed. So if you don't want the -text compressed, set the compression type to PNG_TEXT_COMPRESSION_NONE. -Until text gets around 1000 bytes, it is not worth compressing it. -After the text has been written out to the file, the compression type -is set to PNG_TEXT_COMPRESSION_NONE_WR or PNG_TEXT_COMPRESSION_zTXt_WR, -so that it isn't written out again at the end (in case you are calling -png_write_end() with the same struct. - -The keywords that are given in the PNG Specification are: - - Title Short (one line) title or - caption for image - Author Name of image's creator - Description Description of image (possibly long) - Copyright Copyright notice - Creation Time Time of original image creation - (usually RFC 1123 format, see below) - Software Software used to create the image - Disclaimer Legal disclaimer - Warning Warning of nature of content - Source Device used to create the image - Comment Miscellaneous comment; conversion - from other image format - -The keyword-text pairs work like this. Keywords should be short -simple descriptions of what the comment is about. Some typical -keywords are found in the PNG specification, as is some recommendations -on keywords. You can repeat keywords in a file. You can even write -some text before the image and some after. For example, you may want -to put a description of the image before the image, but leave the -disclaimer until after, so viewers working over modem connections -don't have to wait for the disclaimer to go over the modem before -they start seeing the image. Finally, keywords should be full -words, not abbreviations. Keywords and text are in the ISO 8859-1 -(Latin-1) character set (a superset of regular ASCII) and can not -contain NUL characters, and should not contain control or other -unprintable characters. To make the comments widely readable, stick -with basic ASCII, and avoid machine specific character set extensions -like the IBM-PC character set. The keyword must be present, but -you can leave off the text string on non-compressed pairs. -Compressed pairs must have a text string, as only the text string -is compressed anyway, so the compression would be meaningless. - -PNG supports modification time via the png_time structure. Two -conversion routines are proved, png_convert_from_time_t() for -time_t and png_convert_from_struct_tm() for struct tm. The -time_t routine uses gmtime(). You don't have to use either of -these, but if you wish to fill in the png_time structure directly, -you should provide the time in universal time (GMT) if possible -instead of your local time. Note that the year number is the full -year (e.g. 1998, rather than 98 - PNG is year 2000 compliant!), and -that months start with 1. - -If you want to store the time of the original image creation, you should -use a plain tEXt chunk with the "Creation Time" keyword. This is -necessary because the "creation time" of a PNG image is somewhat vague, -depending on whether you mean the PNG file, the time the image was -created in a non-PNG format, a still photo from which the image was -scanned, or possibly the subject matter itself. In order to facilitate -machine-readable dates, it is recommended that the "Creation Time" -tEXt chunk use RFC 1123 format dates (e.g. "22 May 1997 18:07:10 GMT"), -although this isn't a requirement. Unlike the tIME chunk, the -"Creation Time" tEXt chunk is not expected to be automatically changed -by the software. To facilitate the use of RFC 1123 dates, a function -png_convert_to_rfc1123(png_timep) is provided to convert from PNG -time to an RFC 1123 format string. - -You are now ready to write all the file information up to the actual -image data. You do this with a call to png_write_info(). - - png_write_info(png_ptr, info_ptr); - -After you've written the file information, you can set up the library -to handle any special transformations of the image data. The various -ways to transform the data will be described in the order that they -should occur. This is important, as some of these change the color -type and/or bit depth of the data, and some others only work on -certain color types and bit depths. Even though each transformation -checks to see if it has data that it can do something with, you should -make sure to only enable a transformation if it will be valid for the -data. For example, don't swap red and blue on grayscale data. - -PNG files store RGB pixels packed into 3 or 6 bytes. This code tells -the library to expand the input data to 4 or 8 bytes per pixel -(or expand 1 or 2-byte grayscale data to 2 or 4 bytes per pixel). - - png_set_filler(png_ptr, 0, PNG_FILLER_BEFORE); - -where the 0 is the value that will be put in the 4th byte, and the -location is either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending -upon whether the filler byte is stored XRGB or RGBX. - -PNG files pack pixels of bit depths 1, 2, and 4 into bytes as small as -they can, resulting in, for example, 8 pixels per byte for 1 bit files. -If the data is supplied at 1 pixel per byte, use this code, which will -correctly pack the pixels into a single byte: - - png_set_packing(png_ptr); - -PNG files reduce possible bit depths to 1, 2, 4, 8, and 16. If your -data is of another bit depth, you can write an sBIT chunk into the -file so that decoders can get the original data if desired. - - /* Set the true bit depth of the image data */ - if (color_type & PNG_COLOR_MASK_COLOR) - { - sig_bit.red = true_bit_depth; - sig_bit.green = true_bit_depth; - sig_bit.blue = true_bit_depth; - } - else - { - sig_bit.gray = true_bit_depth; - } - if (color_type & PNG_COLOR_MASK_ALPHA) - { - sig_bit.alpha = true_bit_depth; - } - - png_set_sBIT(png_ptr, info_ptr, &sig_bit); - -If the data is stored in the row buffer in a bit depth other than -one supported by PNG (e.g. 3 bit data in the range 0-7 for a 4-bit PNG), -this will scale the values to appear to be the correct bit depth as -is required by PNG. - - png_set_shift(png_ptr, &sig_bit); - -PNG files store 16 bit pixels in network byte order (big-endian, -ie. most significant bits first). This code would be used if they are -supplied the other way (little-endian, i.e. least significant bits -first, the way PCs store them): - - if (bit_depth > 8) - png_set_swap(png_ptr); - -If you are using packed-pixel images (1, 2, or 4 bits/pixel), and you -need to change the order the pixels are packed into bytes, you can use: - - if (bit_depth < 8) - png_set_packswap(png_ptr); - -PNG files store 3 color pixels in red, green, blue order. This code -would be used if they are supplied as blue, green, red: - - png_set_bgr(png_ptr); - -PNG files describe monochrome as black being zero and white being -one. This code would be used if the pixels are supplied with this reversed -(black being one and white being zero): - - png_set_invert_mono(png_ptr); - -Finally, you can write your own transformation function if none of -the existing ones meets your needs. This is done by setting a callback -with - - png_set_write_user_transform_fn(png_ptr, - write_transform_fn); - -You must supply the function - - void write_transform_fn(png_ptr ptr, row_info_ptr - row_info, png_bytep data) - -See pngtest.c for a working example. Your function will be called -before any of the other transformations have been processed. - -It is possible to have libpng flush any pending output, either manually, -or automatically after a certain number of lines have been written. To -flush the output stream a single time call: - - png_write_flush(png_ptr); - -and to have libpng flush the output stream periodically after a certain -number of scanlines have been written, call: - - png_set_flush(png_ptr, nrows); - -Note that the distance between rows is from the last time png_write_flush() -was called, or the first row of the image if it has never been called. -So if you write 50 lines, and then png_set_flush 25, it will flush the -output on the next scanline, and every 25 lines thereafter, unless -png_write_flush() is called before 25 more lines have been written. -If nrows is too small (less than about 10 lines for a 640 pixel wide -RGB image) the image compression may decrease noticeably (although this -may be acceptable for real-time applications). Infrequent flushing will -only degrade the compression performance by a few percent over images -that do not use flushing. - -That's it for the transformations. Now you can write the image data. -The simplest way to do this is in one function call. If have the -whole image in memory, you can just call png_write_image() and libpng -will write the image. You will need to pass in an array of pointers to -each row. This function automatically handles interlacing, so you don't -need to call png_set_interlace_handling() or call this function multiple -times, or any of that other stuff necessary with png_write_rows(). - - png_write_image(png_ptr, row_pointers); - -where row_pointers is: - - png_byte *row_pointers[height]; - -You can point to void or char or whatever you use for pixels. - -If you don't want to write the whole image at once, you can -use png_write_rows() instead. If the file is not interlaced, -this is simple: - - png_write_rows(png_ptr, row_pointers, - number_of_rows); - -row_pointers is the same as in the png_write_image() call. - -If you are just writing one row at a time, you can do this with -row_pointers: - - png_bytep row_pointer = row; - - png_write_row(png_ptr, &row_pointer); - -When the file is interlaced, things can get a good deal more -complicated. The only currently (as of February 1998 -- PNG Specification -version 1.0, dated October 1996) defined interlacing scheme for PNG files -is the "Adam7" interlace scheme, that breaks down an -image into seven smaller images of varying size. libpng will build -these images for you, or you can do them yourself. If you want to -build them yourself, see the PNG specification for details of which -pixels to write when. - -If you don't want libpng to handle the interlacing details, just -use png_set_interlace_handling() and call png_write_rows() the -correct number of times to write all seven sub-images. - -If you want libpng to build the sub-images, call this before you start -writing any rows: - - number_of_passes = - png_set_interlace_handling(png_ptr); - -This will return the number of passes needed. Currently, this -is seven, but may change if another interlace type is added. - -Then write the complete image number_of_passes times. - - png_write_rows(png_ptr, row_pointers, - number_of_rows); - -As some of these rows are not used, and thus return immediately, -you may want to read about interlacing in the PNG specification, -and only update the rows that are actually used. - -After you are finished writing the image, you should finish writing -the file. If you are interested in writing comments or time, you should -pass an appropriately filled png_info pointer. If you are not interested, -you can pass NULL. - - png_write_end(png_ptr, info_ptr); - -When you are done, you can free all memory used by libpng like this: - - png_destroy_write_struct(&png_ptr, &info_ptr); - -You must free any data you allocated for info_ptr, such as comments, -palette, or histogram, before the call to png_destroy_write_struct(); - -For a more compact example of writing a PNG image, see the file example.c. - - -V. Modifying/Customizing libpng: - -There are two issues here. The first is changing how libpng does -standard things like memory allocation, input/output, and error handling. -The second deals with more complicated things like adding new chunks, -adding new transformations, and generally changing how libpng works. - -All of the memory allocation, input/output, and error handling in libpng -goes through callbacks that are user settable. The default routines are -in pngmem.c, pngrio.c, pngwio.c, and pngerror.c respectively. To change -these functions, call the appropriate png_set_???_fn() function. - -Memory allocation is done through the functions png_large_malloc(), -png_malloc(), png_realloc(), png_large_free(), and png_free(). These -currently just call the standard C functions. The large functions must -handle exactly 64K, but they don't have to handle more than that. If -your pointers can't access more then 64K at a time, you will want to set -MAXSEG_64K in zlib.h. Since it is unlikely that the method of handling -memory allocation on a platform will change between applications, these -functions must be modified in the library at compile time. - -Input/Output in libpng is done through png_read() and png_write(), -which currently just call fread() and fwrite(). The FILE * is stored in -png_struct and is initialized via png_init_io(). If you wish to change -the method of I/O, the library supplies callbacks that you can set -through the function png_set_read_fn() and png_set_write_fn() at run -time, instead of calling the png_init_io() function. These functions -also provide a void pointer that can be retrieved via the function -png_get_io_ptr(). For example: - - png_set_read_fn(png_structp read_ptr, - voidp read_io_ptr, png_rw_ptr read_data_fn) - - png_set_write_fn(png_structp write_ptr, - voidp write_io_ptr, png_rw_ptr write_data_fn, - png_flush_ptr output_flush_fn); - - voidp read_io_ptr = png_get_io_ptr(read_ptr); - voidp write_io_ptr = png_get_io_ptr(write_ptr); - -The replacement I/O functions should have prototypes as follows: - - void user_read_data(png_structp png_ptr, - png_bytep data, png_uint_32 length); - void user_write_data(png_structp png_ptr, - png_bytep data, png_uint_32 length); - void user_flush_data(png_structp png_ptr); - -Supplying NULL for the read, write, or flush functions sets them back -to using the default C stream functions. It is an error to read from -a write stream, and vice versa. - -Error handling in libpng is done through png_error() and png_warning(). -Errors handled through png_error() are fatal, meaning that png_error() -should never return to its caller. Currently, this is handled via -setjmp() and longjmp(), but you could change this to do things like -exit() if you should wish. On non-fatal errors, png_warning() is called -to print a warning message, and then control returns to the calling code. -By default png_error() and png_warning() print a message on stderr via -fprintf() unless the library is compiled with PNG_NO_STDIO defined. If -you wish to change the behavior of the error functions, you will need to -set up your own message callbacks. These functions are normally supplied -at the time that the png_struct is created. It is also possible to change -these functions after png_create_???_struct() has been called by calling: - - png_set_error_fn(png_structp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, - png_error_ptr warning_fn); - - png_voidp error_ptr = png_get_error_ptr(png_ptr); - -If NULL is supplied for either error_fn or warning_fn, then the libpng -default function will be used, calling fprintf() and/or longjmp() if a -problem is encountered. The replacement error functions should have -parameters as follows: - - void user_error_fn(png_structp png_ptr, - png_const_charp error_msg); - void user_warning_fn(png_structp png_ptr, - png_const_charp warning_msg); - -The motivation behind using setjmp() and longjmp() is the C++ throw and -catch exception handling methods. This makes the code much easier to write, -as there is no need to check every return code of every function call. -However, there are some uncertainties about the status of local variables -after a longjmp, so the user may want to be careful about doing anything after -setjmp returns non-zero besides returning itself. Consult your compiler -documentation for more details. - -If you need to read or write custom chunks, you will need to get deeper -into the libpng code, as a mechanism has not yet been supplied for user -callbacks with custom chunks. First, read the PNG specification, and have -a first level of understanding of how it works. Pay particular attention -to the sections that describe chunk names, and look at how other chunks -were designed, so you can do things similarly. Second, check out the -sections of libpng that read and write chunks. Try to find a chunk that -is similar to yours and copy off of it. More details can be found in the -comments inside the code. A way of handling unknown chunks in a generic -method, potentially via callback functions, would be best. - -If you wish to write your own transformation for the data, look through -the part of the code that does the transformations, and check out some of -the simpler ones to get an idea of how they work. Try to find a similar -transformation to the one you want to add and copy off of it. More details -can be found in the comments inside the code itself. - -Configuring for 16 bit platforms: - -You may need to change the png_large_malloc() and png_large_free() -routines in pngmem.c, as these are required to allocate 64K, although -there is already support for many of the common DOS compilers. Also, -you will want to look into zconf.h to tell zlib (and thus libpng) that -it cannot allocate more then 64K at a time. Even if you can, the memory -won't be accessible. So limit zlib and libpng to 64K by defining MAXSEG_64K. - -Configuring for DOS: - -For DOS users who only have access to the lower 640K, you will -have to limit zlib's memory usage via a png_set_compression_mem_level() -call. See zlib.h or zconf.h in the zlib library for more information. - -Configuring for Medium Model: - -Libpng's support for medium model has been tested on most of the popular -compilers. Make sure MAXSEG_64K gets defined, USE_FAR_KEYWORD gets -defined, and FAR gets defined to far in pngconf.h, and you should be -all set. Everything in the library (except for zlib's structure) is -expecting far data. You must use the typedefs with the p or pp on -the end for pointers (or at least look at them and be careful). Make -note that the row's of data are defined as png_bytepp, which is an -unsigned char far * far *. - -Configuring for gui/windowing platforms: - -You will need to write new error and warning functions that use the GUI -interface, as described previously, and set them to be the error and -warning functions at the time that png_create_???_struct() is called, -in order to have them available during the structure initialization. -They can be changed later via png_set_error_fn(). On some compilers, -you may also have to change the memory allocators (png_malloc, etc.). - -Configuring for compiler xxx: - -All includes for libpng are in pngconf.h. If you need to add/change/delete -an include, this is the place to do it. The includes that are not -needed outside libpng are protected by the PNG_INTERNAL definition, -which is only defined for those routines inside libpng itself. The -files in libpng proper only include png.h, which includes pngconf.h. - -Configuring zlib: - -There are special functions to configure the compression. Perhaps the -most useful one changes the compression level, which currently uses -input compression values in the range 0 - 9. The library normally -uses the default compression level (Z_DEFAULT_COMPRESSION = 6). Tests -have shown that for a large majority of images, compression values in -the range 3-6 compress nearly as well as higher levels, and do so much -faster. For online applications it may be desirable to have maximum speed -(Z_BEST_SPEED = 1). With versions of zlib after v0.99, you can also -specify no compression (Z_NO_COMPRESSION = 0), but this would create -files larger than just storing the raw bitmap. You can specify the -compression level by calling: - - png_set_compression_level(png_ptr, level); - -Another useful one is to reduce the memory level used by the library. -The memory level defaults to 8, but it can be lowered if you are -short on memory (running DOS, for example, where you only have 640K). - - png_set_compression_mem_level(png_ptr, level); - -The other functions are for configuring zlib. They are not recommended -for normal use and may result in writing an invalid PNG file. See -zlib.h for more information on what these mean. - - png_set_compression_strategy(png_ptr, - strategy); - png_set_compression_window_bits(png_ptr, - window_bits); - png_set_compression_method(png_ptr, method); - -Controlling row filtering: - -If you want to control whether libpng uses filtering or not, which -filters are used, and how it goes about picking row filters, you -can call one of these functions. The selection and configuration -of row filters can have a significant impact on the size and -encoding speed and a somewhat lesser impact on the decoding speed -of an image. Filtering is enabled by default for RGB and grayscale -images (with and without alpha), but not for paletted images nor -for any images with bit depths less than 8 bits/pixel. - -The 'method' parameter sets the main filtering method, which is -currently only '0' in the PNG 1.0 specification. The 'filters' -parameter sets which filter(s), if any, should be used for each -scanline. Possible values are PNG_ALL_FILTERS and PNG_NO_FILTERS -to turn filtering on and off, respectively. - -Individual filter types are PNG_FILTER_NONE, PNG_FILTER_SUB, -PNG_FILTER_UP, PNG_FILTER_AVG, PNG_FILTER_PAETH, which can be bitwise -ORed together '|' to specify one or more filters to use. These -filters are described in more detail in the PNG specification. If -you intend to change the filter type during the course of writing -the image, you should start with flags set for all of the filters -you intend to use so that libpng can initialize its internal -structures appropriately for all of the filter types. - - filters = PNG_FILTER_NONE | PNG_FILTER_SUB - | PNG_FILTER_UP; - png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, - filters); - -It is also possible to influence how libpng chooses from among the -available filters. This is done in two ways - by telling it how -important it is to keep the same filter for successive rows, and -by telling it the relative computational costs of the filters. - - double weights[3] = {1.5, 1.3, 1.1}, - costs[PNG_FILTER_VALUE_LAST] = - {1.0, 1.3, 1.3, 1.5, 1.7}; - - png_set_filter_selection(png_ptr, - PNG_FILTER_SELECTION_WEIGHTED, 3, - weights, costs); - -The weights are multiplying factors that indicate to libpng that the -row filter should be the same for successive rows unless another row filter -is that many times better than the previous filter. In the above example, -if the previous 3 filters were SUB, SUB, NONE, the SUB filter could have a -"sum of absolute differences" 1.5 x 1.3 times higher than other filters -and still be chosen, while the NONE filter could have a sum 1.1 times -higher than other filters and still be chosen. Unspecified weights are -taken to be 1.0, and the specified weights should probably be declining -like those above in order to emphasize recent filters over older filters. - -The filter costs specify for each filter type a relative decoding cost -to be considered when selecting row filters. This means that filters -with higher costs are less likely to be chosen over filters with lower -costs, unless their "sum of absolute differences" is that much smaller. -The costs do not necessarily reflect the exact computational speeds of -the various filters, since this would unduly influence the final image -size. - -Note that the numbers above were invented purely for this example and -are given only to help explain the function usage. Little testing has -been done to find optimum values for either the costs or the weights. - -Removing unwanted object code: - -There are a bunch of #define's in pngconf.h that control what parts of -libpng are compiled. All the defines end in _SUPPORTED. If you are -never going to use a capability, you can change the #define to #undef -before recompiling libpng and save yourself code and data space, or -you can turn off individual capabilities with defines that begin with -PNG_NO_. - -You can also turn all of the transforms and ancillary chunk capabilities -off en masse with compiler directives that define -PNG_NO_READ[or WRITE]_TRANSFORMS, or PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS, -or all four, -along with directives to turn on any of the capabilities that you do -want. The PNG_NO_READ[or WRITE]_TRANSFORMS directives disable -the extra transformations but still leave the library fully capable of reading -and writing PNG files with all known public chunks [except for sPLT]. -Use of the PNG_NO_READ[or WRITE]_ANCILLARY_CHUNKS directive -produces a library that is incapable of reading or writing ancillary chunks. -If you are not using the progressive reading capability, you can -turn that off with PNG_NO_PROGRESSIVE_READ (don't confuse -this with the INTERLACING capability, which you'll still have). - -All the reading and writing specific code are in separate files, so the -linker should only grab the files it needs. However, if you want to -make sure, or if you are building a stand alone library, all the -reading files start with pngr and all the writing files start with -pngw. The files that don't match either (like png.c, pngtrans.c, etc.) -are used for both reading and writing, and always need to be included. -The progressive reader is in pngpread.c - -If you are creating or distributing a dynamically linked library (a .so -or DLL file), you should not remove or disable any parts of the library, -as this will cause applications linked with different versions of the -library to fail if they call functions not available in your library. -The size of the library itself should not be an issue, because only -those sections that are actually used will be loaded into memory. - -Requesting debug printout: - -The macro definition PNG_DEBUG can be used to request debugging -printout. Set it to an integer value in the range 0 to 3. Higher -numbers result in increasing amounts of debugging information. The -information is printed to the "stderr" file, unless another file -name is specified in the PNG_DEBUG_FILE macro definition. - -When PNG_DEBUG > 0, the following functions (macros) become available: - - png_debug(level, message) - png_debug1(level, message, p1) - png_debug2(level, message, p1, p2) - -in which "level" is compared to PNG_DEBUG to decide whether to print -the message, "message" is the formatted string to be printed, -and p1 and p2 are parameters that are to be embedded in the string -according to printf-style formatting directives. For example, - - png_debug1(2, "foo=%d\n", foo); - -is expanded to - - if(PNG_DEBUG > 2) - fprintf(PNG_DEBUG_FILE, "foo=%d\n", foo); - -When PNG_DEBUG is defined but is zero, the macros aren't defined, but you -can still use PNG_DEBUG to control your own debugging: - - #ifdef PNG_DEBUG - fprintf(stderr, ... - #endif - -When PNG_DEBUG = 1, the macros are defined, but only png_debug statements -having level = 0 will be printed. There aren't any such statements in -this version of libpng, but if you insert some they will be printed. - -VI. Changes to Libpng from version 0.88 - -It should be noted that versions of libpng later than 0.96 are not -distributed by the original libpng author, Guy Schalnat, nor by -Andreas Dilger, who had taken over from Guy during 1996 and 1997, and -distributed versions 0.89 through 0.96, but rather by another member -of the original PNG Group, Glenn Randers-Pehrson. Guy and Andreas are -still alive and well, but they have moved on to other things. - -The old libpng functions png_read_init(), png_write_init(), -png_info_init(), png_read_destroy(), and png_write_destory() have been -moved to PNG_INTERNAL in version 0.95 to discourage their use. The -preferred method of creating and initializing the libpng structures is -via the png_create_read_struct(), png_create_write_struct(), and -png_create_info_struct() because they isolate the size of the structures -from the application, allow version error checking, and also allow the -use of custom error handling routines during the initialization, which -the old functions do not. The functions png_read_destroy() and -png_write_destroy() do not actually free the memory that libpng -allocated for these structs, but just reset the data structures, so they -can be used instead of png_destroy_read_struct() and -png_destroy_write_struct() if you feel there is too much system overhead -allocating and freeing the png_struct for each image read. - -Setting the error callbacks via png_set_message_fn() before -png_read_init() as was suggested in libpng-0.88 is no longer supported -because this caused applications that do not use custom error functions -to fail if the png_ptr was not initialized to zero. It is still possible -to set the error callbacks AFTER png_read_init(), or to change them with -png_set_error_fn(), which is essentially the same function, but with a -new name to force compilation errors with applications that try to use -the old method. - -VII. Y2K Compliance in libpng - -January 13, 1999 - -Since the PNG Development group is an ad-hoc body, we can't make -an official declaration. - -This is your unofficial assurance that libpng from version 0.81 and -upward are Y2K compliant. It is my belief that earlier versions were -also Y2K compliant. - -Libpng only has three year fields. One is a 2-byte unsigned integer that -will hold years up to 65535. The other two hold the date in text -format, and will hold years up to 9999. - -The integer is - "png_uint_16 year" in png_time_struct. - -The strings are - "png_charp time_buffer" in png_struct and - "near_time_buffer", which is a local character string in png.c. - -There are seven time-related functions: - - png_convert_to_rfc_1123() in png.c - (formerly png_convert_to_rfc_1152() in error) - png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - png_convert_from_time_t() in pngwrite.c - png_get_tIME() in pngget.c - png_handle_tIME() in pngrutil.c, called in pngread.c - png_set_tIME() in pngset.c - png_write_tIME() in pngwutil.c, called in pngwrite.c - -All appear to handle dates properly in a Y2K environment. The -png_convert_from_time_t() function calls gmtime() to convert from system -clock time, which returns (year - 1900), which we properly convert to -the full 4-digit year. There is a possibility that applications using -libpng are not passing 4-digit years into the png_convert_to_rfc_1123() -function, or incorrectly passing only a 2-digit year instead of -"year - 1900" into the png_convert_from_struct_tm() function, but this -is not under our control. The libpng documentation has always stated -that it works with 4-digit years, and the APIs have been documented as -such. - -The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned -integer to hold the year, and can hold years as large as 65535. - - - Glenn Randers-Pehrson - libpng maintainer - PNG Development Group diff --git a/src/png/libpngpf.3 b/src/png/libpngpf.3 deleted file mode 100644 index c2654e7f8a..0000000000 --- a/src/png/libpngpf.3 +++ /dev/null @@ -1,347 +0,0 @@ -.TH LIBPNGPF 3 "January 14, 1999" -.SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.0.3 - January 14, 1999 -(private functions) -.SH SYNOPSIS -#include - -void png_build_gamma_table (png_structp png_ptr); - -void png_build_grayscale_palette (int bit_depth, png_colorp -palette); - -void png_calculate_crc (png_structp png_ptr, png_bytep ptr, -png_size_t length); -void png_check_chunk_name (png_structp png_ptr, png_bytep -chunk_name); - -png_size_t png_check_keyword (png_structp png_ptr, png_charp -key, png_charpp new_key); - -void png_combine_row (png_structp png_ptr, png_bytep row, int -mask); - -void png_correct_palette (png_structp png_ptr, png_colorp -palette, int num_palette); - -int png_crc_error (png_structp png_ptr); - -int png_crc_finish (png_structp png_ptr, png_uint_32 skip); - -void png_crc_read (png_structp png_ptr, png_bytep buf, -png_size_t length); - -png_voidp png_create_struct (int type, png_malloc_ptr malloc_fn); - -png_voidp png_create_struct_2 (int type); - -void png_destroy_struct (png_voidp struct_ptr); - -void png_destroy_struct_2 (png_voidp struct_ptr, png_free_ptr -free_fn); - -void png_do_background (png_row_infop row_info, png_bytep row, -png_color_16p trans_values, png_color_16p background, -png_color_16p background_1, png_bytep gamma_table, png_bytep -gamma_from_1, png_bytep gamma_to_1, png_uint_16pp gamma_16, -png_uint_16pp gamma_16_from_1, png_uint_16pp gamma_16_to_1, int -gamma_shift); - -void png_do_bgr (png_row_infop row_info, png_bytep row); - -void png_do_chop (png_row_infop row_info, png_bytep row); - -void png_do_dither (png_row_infop row_info, png_bytep row, -png_bytep palette_lookup, png_bytep dither_lookup); - -void png_do_expand (png_row_infop row_info, png_bytep row, -png_color_16p trans_value); - -void png_do_expand_palette (png_row_infop row_info, png_bytep -row, png_colorp palette, png_bytep trans, int num_trans); - -void png_do_gamma (png_row_infop row_info, png_bytep row, -png_bytep gamma_table, png_uint_16pp gamma_16_table, int -gamma_shift); - -void png_do_gray_to_rgb (png_row_infop row_info, png_bytep -row); - -void png_do_invert (png_row_infop row_info, png_bytep row); - -void png_do_pack (png_row_infop row_info, png_bytep row, -png_uint_32 bit_depth); - -void png_do_packswap (png_row_infop row_info, png_bytep row); - -void png_do_read_filler (png_row_infop row_info, png_bytep row, -png_uint_32 filler, png_uint_32 flags); - -void png_do_read_interlace (png_row_infop row_info, png_bytep -row, int pass, png_uint_32 transformations); - -void png_do_read_invert_alpha (png_row_infop row_info, -png_bytep row); - -void png_do_read_swap_alpha (png_row_infop row_info, png_bytep -row); - -void png_do_read_transformations (png_structp png_ptr); - -int png_do_rgb_to_gray (png_row_infop row_info, png_bytep -row); - -void png_do_shift (png_row_infop row_info, png_bytep row, -png_color_8p bit_depth); - -void png_do_strip_filler (png_row_infop row_info, png_bytep -row, png_uint_32 flags); - -void png_do_swap (png_row_infop row_info, png_bytep row); - -void png_do_unpack (png_row_infop row_info, png_bytep row); - -void png_do_unshift (png_row_infop row_info, png_bytep row, -png_color_8p sig_bits); - -void png_do_write_interlace (png_row_infop row_info, png_bytep -row, int pass); - -void png_do_write_invert_alpha (png_row_infop row_info, -png_bytep row); - -void png_do_write_swap_alpha (png_row_infop row_info, png_bytep -row); - -void png_do_write_transformations (png_structp png_ptr); - -void *png_far_to_near (png_structp png_ptr,png_voidp ptr, -int check); - -void png_flush (png_structp png_ptr); - -png_int_32 png_get_int_32 (png_bytep buf); - -png_uint_16 png_get_uint_16 (png_bytep buf); - -png_uint_32 png_get_uint_32 (png_bytep buf); - -void png_handle_bKGD (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_cHRM (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_gAMA (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_hIST (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_IEND (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_IHDR (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_oFFs (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_pCAL (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_pHYs (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_PLTE (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_sBIT (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_sRGB (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_tEXt (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_tIME (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_tRNS (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_handle_unknown (png_structp png_ptr, png_infop -info_ptr, png_uint_32 length); - -void png_handle_zTXt (png_structp png_ptr, png_infop info_ptr, -png_uint_32 length); - -void png_info_destroy (png_structp png_ptr, png_infop -info_ptr); - -void png_init_read_transformations (png_structp png_ptr); - -void png_process_IDAT_data (png_structp png_ptr, png_bytep -buffer, png_size_t buffer_length); - -void png_process_some_data (png_structp png_ptr, png_infop -info_ptr); - -void png_push_check_crc (png_structp png_ptr); - -void png_push_crc_finish (png_structp png_ptr); - -void png_push_crc_skip (png_structp png_ptr, png_uint_32 -length); - -void png_push_fill_buffer (png_structp png_ptr, png_bytep -buffer, png_size_t length); - -void png_push_handle_tEXt (png_structp png_ptr, png_infop -info_ptr, png_uint_32 length); - -void png_push_handle_unknown (png_structp png_ptr, png_infop -info_ptr, png_uint_32 length); - -void png_push_handle_zTXt (png_structp png_ptr, png_infop -info_ptr, png_uint_32 length); - -void png_push_have_end (png_structp png_ptr, png_infop -info_ptr); - -void png_push_have_info (png_structp png_ptr, png_infop -info_ptr); - -void png_push_have_row (png_structp png_ptr, png_bytep row); - -void png_push_process_row (png_structp png_ptr); - -void png_push_read_chunk (png_structp png_ptr, png_infop -info_ptr); - -void png_push_read_end (png_structp png_ptr, png_infop -info_ptr); - -void png_push_read_IDAT (png_structp png_ptr); - -void png_push_read_sig (png_structp png_ptr, png_infop -info_ptr); - -void png_push_read_tEXt (png_structp png_ptr, png_infop -info_ptr); - -void png_push_read_zTXt (png_structp png_ptr, png_infop -info_ptr); - -void png_push_restore_buffer (png_structp png_ptr, png_bytep -buffer, png_size_t buffer_length); - -void png_push_save_buffer (png_structp png_ptr); - -void png_read_data (png_structp png_ptr, png_bytep data, -png_size_t length); - -void png_read_filter_row (png_structp png_ptr, png_row_infop -row_info, png_bytep row, png_bytep prev_row, int filter); - -void png_read_finish_row (png_structp png_ptr); - -void png_read_init (png_structp png_ptr); - -void png_read_push_finish_row (png_structp png_ptr); - -void png_read_start_row (png_structp png_ptr); - -void png_read_transform_info (png_structp png_ptr, png_infop -info_ptr); - -void png_reset_crc (png_structp png_ptr); - -void png_save_int_32 (png_bytep buf, png_int_32 i); - -void png_save_uint_16 (png_bytep buf, unsigned int i); - -void png_save_uint_32 (png_bytep buf, png_uint_32 i); - -void png_write_bKGD (png_structp png_ptr, png_color_16p values, -int color_type); - -void png_write_cHRM (png_structp png_ptr, double white_x, -double white_y, double red_x, double red_y, double green_x, -double green_y, double blue_x, double blue_y); - -void png_write_data (png_structp png_ptr, png_bytep data, -png_size_t length); -void png_write_filtered_row (png_structp png_ptr, png_bytep -filtered_row); - -void png_write_find_filter (png_structp png_ptr, png_row_infop -row_info); - -void png_write_finish_row (png_structp png_ptr); - -void png_write_gAMA (png_structp png_ptr, double file_gamma); - -void png_write_hIST (png_structp png_ptr, png_uint_16p hist, -int num_hist); - -void png_write_init (png_structp png_ptr); - -void png_write_IDAT (png_structp png_ptr, png_bytep data, -png_size_t length); - -void png_write_IEND (png_structp png_ptr); - -void png_write_IHDR (png_structp png_ptr, png_uint_32 width, -png_uint_32 height, int bit_depth, int color_type, int -compression_type, int filter_type, int interlace_type); - -void png_write_oFFs (png_structp png_ptr, png_uint_32 x_offset, -png_uint_32 y_offset, int unit_type); - -void png_write_pCAL (png_structp png_ptr, png_charp purpose, -png_int_32 X0, png_int_32 X1, int type, int nparams, png_charp -units, png_charpp params); - -void png_write_pHYs (png_structp png_ptr, png_uint_32 -x_pixels_per_unit, png_uint_32 y_pixels_per_unit, int -unit_type); - -void png_write_PLTE (png_structp png_ptr, png_colorp palette, -png_uint_32 num_pal); - -void png_write_sBIT (png_structp png_ptr, png_color_8p sbit, -int color_type); - -void png_write_sig (png_structp png_ptr); - -void png_write_sRGB (png_structp png_ptr, int intent); - -void png_write_start_row (png_structp png_ptr); - -void png_write_tEXt (png_structp png_ptr, png_charp key, -png_charp text, png_size_t text_len); - -void png_write_tIME (png_structp png_ptr, png_timep mod_time); - -void png_write_tRNS (png_structp png_ptr, png_bytep trans, -png_color_16p values, int number, int color_type); - -void png_write_zTXt (png_structp png_ptr, png_charp key, -png_charp text, png_size_t text_len, int compression); - -voidpf png_zalloc (voidpf png_ptr, uInt items, uInt size); - -void png_zfree (voidpf png_ptr, voidpf ptr); - -.SH DESCRIPTION -The functions listed above are used privately by libpng -and are not recommended for use by applications. They -are listed alphabetically here as an aid to libpng maintainers. -See png.h for more information on these functions. - -.SH SEE ALSO -libpng(3), png(5) -.SH AUTHOR -Glenn Randers-Pehrson diff --git a/src/png/makefile.b32 b/src/png/makefile.b32 deleted file mode 100644 index 6e23194470..0000000000 --- a/src/png/makefile.b32 +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds PNG library (BC++ 32-bit) - -# WXWIN and BCCDIR are set by parent make - -LIBTARGET =..\..\lib\winpng.lib - -OBJECTS = png.obj pngread.obj pngrtran.obj pngrutil.obj \ - pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj \ - pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj - -!include $(WXWIN)\src\makelib.b32 \ No newline at end of file diff --git a/src/png/makefile.bcc b/src/png/makefile.bcc deleted file mode 100644 index e9e63e3051..0000000000 --- a/src/png/makefile.bcc +++ /dev/null @@ -1,92 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds PNG library (BC++ 16-bit) - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makebcc.env - -WINPNGLIB = ..\..\lib\winpng.lib - -WXLIBDIR = $(WXDIR)\lib -WXINC = $(WXDIR)\include\msw -WXLIB = $(WXLIBDIR)\wx.lib - -!if "$(FINAL)" == "0" -OPT = -Od -DEBUG_FLAGS= -v -!else -OPT = -Od -DEBUG_FLAGS = -!endif -CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) - -OBJECTS = png.obj pngread.obj pngrtran.obj pngrutil.obj \ - pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj \ - pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj - -all: $(WINPNGLIB) - -$(WINPNGLIB): $(OBJECTS) - erase $(WINPNGLIB) - tlib $(WINPNGLIB) /P512 @&&! --+$(OBJECTS:.obj =.obj -+) -! - -.$(SRCSUFF).obj: - bcc $(CPPFLAGS) -c {$< } - -.c.obj: - bcc $(CPPFLAGS) -P- -c {$< } - -$(CFG): makefile.bcc - copy &&! --H=$(WXDIR)\src\msw\borland.pch --2 --P --d --w-hid --w-par --w-pia --w-aus --w-rch --ml --Od --WE --Fs- --Vf --Ff=4 --I$(WXINC);$(BCCDIR)\include;$(WXDIR)/src/png;$(WXDIR)/src/zlib;$(WXDIR)/src/xpm --I$(WXDIR)\include\wx\msw\gnuwin32 --L$(BCCDIR)\lib --D__WXWIN__ --D__WXMSW__ --D__WINDOWS__ --D__WIN16__ -! $(CFG) -!if "$(BOR_VER)" == "3.1" - echo -Ff=4 >>$(CFG) -!elif "$(BOR_VER)" == "4" - echo -Ff=512 >>$(CFG) - echo -dc >>$(CFG) -!else - echo -Ff=512 >>$(CFG) - echo -dc >>$(CFG) -!endif - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws - -erase $(WINPNGLIB) - diff --git a/src/png/makefile.dos b/src/png/makefile.dos deleted file mode 100644 index 41f1712e65..0000000000 --- a/src/png/makefile.dos +++ /dev/null @@ -1,77 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds winpng.lib library for Windows 3.1 - -# Change WXDIR or WXWIN to wherever wxWindows is found -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib\wx.lib -WXINC = $(WXDIR)\include - -WINPNGDIR = $(WXDIR)\src\png -WINPNGINC = $(WINPNGDIR) -WINPNGLIB = ..\..\lib\winpng.lib - -INC = /I..\zlib - -LIBS=$(WXLIB) $(WINPNGLIB) libw llibcew commdlg ddeml shell # ctl3d - -# Set this to nothing if your compiler is MS C++ 7 -ZOPTION= - -!ifndef FINAL -FINAL=0 -!endif - -PRECOMP=/YuWX.H - -!if "$(FINAL)" == "0" -OPT = /Od -CPPFLAGS= /AL /W4 /Gt4 /Zi $(ZOPTION) /G2sw $(OPT) /D__WXMSW__ $(INC) -CFLAGS= /AL /W4 /Gt4 /Zi /G2sw /Od /D__WXMSW__ $(INC) -LINKFLAGS=/NOD /CO /ONERROR:NOEXE -!else -# /Ox for real FINAL version -OPT = /Ox -CPPFLAGS= /AL /W4 /Gt4 /Zi /Os /G2sw $(OPT) /D__WXMSW__ $(INC) -CFLAGS= /AL /W4 /Gt4 /Zi /Os /G2sw /D__WXMSW__ $(INC) -LINKFLAGS=/NOD /ONERROR:NOEXE -!endif - -OBJECTS = png.obj pngread.obj pngrtran.obj pngrutil.obj \ - pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj \ - pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj - -all: $(WINPNGLIB) - -wx: - cd $(WXDIR)\src - nmake -f makefile.dos $(WXLIB) FINAL=$(FINAL) - -$(WINPNGLIB): $(OBJECTS) - erase $(WINPNGLIB) - lib /PAGESIZE:128 @<< -$(WINPNGLIB) -y -$(OBJECTS) -nul -; -<< - -.c.obj: - cl $(CFLAGS) /c $*.c - -clean: - -erase *.obj - -erase *.exe - -erase *.lib - -erase *.sbr - -erase *.pdb - -cleanall: clean diff --git a/src/png/makefile.nt b/src/png/makefile.nt deleted file mode 100644 index ab823c8fc9..0000000000 --- a/src/png/makefile.nt +++ /dev/null @@ -1,68 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds winpng.lib library for Windows 3.1 - -# Change WXDIR or WXWIN to wherever wxWindows is found -WXDIR = $(WXWIN) -WXLIB = $(WXDIR)\lib\wx.lib -WXINC = $(WXDIR)\include - -WINPNGDIR = ..\png -WINPNGINC = $(WINPNGDIR) -WINPNGLIB = ..\..\lib\winpng.lib - -INC = /I..\zlib - -FINAL=1 - -# Set this to nothing if your compiler is MS C++ 7 -ZOPTION= - -!ifndef FINAL -FINAL=0 -!endif - -PRECOMP=/YuWX.H - -!if "$(FINAL)" == "0" -OPT = /Od -CPPFLAGS= /W4 /Zi /MD /GX- $(ZOPTION) $(OPT) /Dwx_msw $(INC) # $(PRECOMP) /Fp$(WXDIR)\src\msw\wx.pch -CFLAGS= /W4 /Zi /MD /GX- /Od /Dwx_msw $(INC) -LINKFLAGS=/NOD /CO /ONERROR:NOEXE -!else -# /Ox for real FINAL version -OPT = /O2 -CPPFLAGS= /W4 /MD /GX- /Dwx_msw $(INC) # $(PRECOMP) /Fp$(WXDIR)\src\msw\wx.pch -CFLAGS= /W4 /MD /GX- /Dwx_msw $(INC) -LINKFLAGS=/NOD /ONERROR:NOEXE -!endif - -OBJECTS = png.obj pngread.obj pngrtran.obj pngrutil.obj \ - pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj \ - pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj - -all: $(WINPNGLIB) - -$(WINPNGLIB): $(OBJECTS) - erase $(WINPNGLIB) - lib @<< --out:$(WINPNGLIB) -$(OBJECTS) -<< - -.c.obj: - cl -DWIN32 $(OPT) $(CFLAGS) /c $*.c - -clean: - erase *.obj - erase *.exe - erase *.lib - -cleanall: clean diff --git a/src/png/makefile.unx b/src/png/makefile.unx deleted file mode 100644 index 095d6eaf0a..0000000000 --- a/src/png/makefile.unx +++ /dev/null @@ -1,30 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for PNG library, Unix - -include ../make.env - -TARGETLIB=../../lib/libpng.a - -LIB_C_SRC = png.c pngread.c pngrtran.c pngrutil.c \ - pngpread.c pngtrans.c pngwrite.c pngwtran.c pngwutil.c \ - pngerror.c pngmem.c pngwio.c pngrio.c pngget.c pngset.c - -all: $(TARGETLIB) - -# Define library objects -OBJECTS=\ - $(LIB_C_SRC:.c=.o) - -$(TARGETLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(TARGETLIB) diff --git a/src/png/makefile.vc b/src/png/makefile.vc deleted file mode 100644 index cd9345debc..0000000000 --- a/src/png/makefile.vc +++ /dev/null @@ -1,64 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds winpng.lib library for Windows 3.1 - -# Change WXDIR or WXWIN to wherever wxWindows is found -WXDIR = $(WXWIN) - -WINPNGDIR = ..\png -WINPNGINC = $(WINPNGDIR) -WINPNGLIB = ..\..\lib\winpng.lib - -INC = /I..\zlib - -# Set this to nothing if your compiler is MS C++ 7 -ZOPTION= - -!ifndef FINAL -FINAL=0 -!endif - -PRECOMP=/YuWX.H - -!if "$(FINAL)" == "0" -OPT = /Od -CPPFLAGS= /W4 /Zi /MD /GX $(ZOPTION) $(OPT) /D__WXMSW__ $(INC) -CFLAGS= /W4 /Zi /MD /GX /Od /D__WXMSW__ $(INC) -LINKFLAGS=/NOD /CO /ONERROR:NOEXE -!else -# /Ox for real FINAL version -OPT = /O2 -CPPFLAGS= /W4 /MD /GX /D__WXMSW__ $(INC) -CFLAGS= /W4 /MD /GX /D__WXMSW__ $(INC) -LINKFLAGS=/NOD /ONERROR:NOEXE -!endif - -OBJECTS = png.obj pngread.obj pngrtran.obj pngrutil.obj \ - pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj \ - pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj - -all: $(WINPNGLIB) - -$(WINPNGLIB): $(OBJECTS) - -erase $(WINPNGLIB) - lib @<< --out:$(WINPNGLIB) -$(OBJECTS) -<< - -.c.obj: - cl -DWIN32 $(OPT) $(CFLAGS) /c $*.c - -clean: - erase *.obj - erase *.exe - erase *.lib - -cleanall: clean diff --git a/src/png/makefile.wat b/src/png/makefile.wat deleted file mode 100644 index c6c6c8ae48..0000000000 --- a/src/png/makefile.wat +++ /dev/null @@ -1,37 +0,0 @@ -#!/binb/wmake.exe -# -# File: makefile.wat -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Builds PNG library for Watcom C++, WIN32 - -WXDIR = ..\.. -EXTRACPPFLAGS=-i=..\zlib - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib - -LIBTARGET = $(WXLIB)\png.lib - -OBJECTS = png.obj pngread.obj pngrtran.obj pngrutil.obj & - pngpread.obj pngtrans.obj pngwrite.obj pngwtran.obj pngwutil.obj & - pngerror.obj pngmem.obj pngwio.obj pngrio.obj pngget.obj pngset.obj - -all: $(OBJECTS) $(LIBTARGET) - -$(LIBTARGET) : $(OBJECTS) - %create tmp.lbc - @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i - wlib /b /c /n /p=512 $^@ @tmp.lbc - -clean: .SYMBOLIC - -erase *.obj - -erase $(LIBTARGET) - -erase *.pch - -erase *.err - -erase *.lbc - -cleanall: clean - diff --git a/src/png/png.5 b/src/png/png.5 deleted file mode 100644 index 2c0fcde12e..0000000000 --- a/src/png/png.5 +++ /dev/null @@ -1,44 +0,0 @@ -.TH PNG 5 "January 14, 1999" -.SH NAME -png \- Portable Network Graphics (PNG) format -.SH DESCRIPTION -PNG (Portable Network Graphics) is an extensible file format for the -lossless, portable, well-compressed storage of raster images. PNG provides -a patent-free replacement for GIF and can also replace many -common uses of TIFF. Indexed-color, grayscale, and truecolor images are -supported, plus an optional alpha channel. Sample depths range from -1 to 16 bits. -.br - -PNG is designed to work well in online viewing applications, such as the -World Wide Web, so it is fully streamable with a progressive display -option. PNG is robust, providing both full file integrity checking and -fast, simple detection of common transmission errors. Also, PNG can store -gamma and chromaticity data for improved color matching on heterogeneous -platforms. - -.SH "SEE ALSO" -.IR libpng(3), zlib(3), deflate(5), and zlib(5) -.LP -PNG specification: -RFC 2083 -.IP -.br -ftp://ds.internic.net/rfc/rfc2083.txt -.br -or (as a W3C Recommendation) at -.br -http://www.w3.org/TR/REC-png.html -.SH AUTHORS -This man page: Glenn Randers-Pehrson -.LP -Portable Network Graphics (PNG) Specification Version 1.0 (October 1, 1996): -Thomas Boutell and others (png-list@dworkin.wustl.edu). -.LP - -.SH COPYRIGHT NOTICE -The PNG specification is copyright (c) 1996 Massachussets Institute of -Technology. See the specification for conditions of use and distribution. -.LP -.\" end of man page - diff --git a/src/png/png.c b/src/png/png.c deleted file mode 100644 index e422332186..0000000000 --- a/src/png/png.c +++ /dev/null @@ -1,359 +0,0 @@ - -/* png.c - location for general purpose libpng functions - * - * libpng version 1.0.3 - January 14, 1999 - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - */ - -#define PNG_INTERNAL -#define PNG_NO_EXTERN -#include "png.h" - -/* Version information for C files. This had better match the version - * string defined in png.h. - */ - -char png_libpng_ver[12] = "1.0.3"; - -/* Place to hold the signature string for a PNG file. */ -png_byte FARDATA png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10}; - -/* Constant strings for known chunk types. If you need to add a chunk, - * add a string holding the name here. If you want to make the code - * portable to EBCDIC machines, use ASCII numbers, not characters. - */ -png_byte FARDATA png_IHDR[5] = { 73, 72, 68, 82, '\0'}; -png_byte FARDATA png_IDAT[5] = { 73, 68, 65, 84, '\0'}; -png_byte FARDATA png_IEND[5] = { 73, 69, 78, 68, '\0'}; -png_byte FARDATA png_PLTE[5] = { 80, 76, 84, 69, '\0'}; -png_byte FARDATA png_bKGD[5] = { 98, 75, 71, 68, '\0'}; -png_byte FARDATA png_cHRM[5] = { 99, 72, 82, 77, '\0'}; -png_byte FARDATA png_gAMA[5] = {103, 65, 77, 65, '\0'}; -png_byte FARDATA png_hIST[5] = {104, 73, 83, 84, '\0'}; -png_byte FARDATA png_oFFs[5] = {111, 70, 70, 115, '\0'}; -png_byte FARDATA png_pCAL[5] = {112, 67, 65, 76, '\0'}; -png_byte FARDATA png_pHYs[5] = {112, 72, 89, 115, '\0'}; -png_byte FARDATA png_sBIT[5] = {115, 66, 73, 84, '\0'}; -png_byte FARDATA png_sRGB[5] = {115, 82, 71, 66, '\0'}; -png_byte FARDATA png_tEXt[5] = {116, 69, 88, 116, '\0'}; -png_byte FARDATA png_tIME[5] = {116, 73, 77, 69, '\0'}; -png_byte FARDATA png_tRNS[5] = {116, 82, 78, 83, '\0'}; -png_byte FARDATA png_zTXt[5] = {122, 84, 88, 116, '\0'}; - -/* arrays to facilitate easy interlacing - use pass (0 - 6) as index */ - -/* start of interlace block */ -int FARDATA png_pass_start[] = {0, 4, 0, 2, 0, 1, 0}; - -/* offset to next interlace block */ -int FARDATA png_pass_inc[] = {8, 8, 4, 4, 2, 2, 1}; - -/* start of interlace block in the y direction */ -int FARDATA png_pass_ystart[] = {0, 0, 4, 0, 2, 0, 1}; - -/* offset to next interlace block in the y direction */ -int FARDATA png_pass_yinc[] = {8, 8, 8, 4, 4, 2, 2}; - -/* Width of interlace block. This is not currently used - if you need - * it, uncomment it here and in png.h -int FARDATA png_pass_width[] = {8, 4, 4, 2, 2, 1, 1}; -*/ - -/* Height of interlace block. This is not currently used - if you need - * it, uncomment it here and in png.h -int FARDATA png_pass_height[] = {8, 8, 4, 4, 2, 2, 1}; -*/ - -/* Mask to determine which pixels are valid in a pass */ -int FARDATA png_pass_mask[] = {0x80, 0x08, 0x88, 0x22, 0xaa, 0x55, 0xff}; - -/* Mask to determine which pixels to overwrite while displaying */ -int FARDATA png_pass_dsp_mask[] = {0xff, 0x0f, 0xff, 0x33, 0xff, 0x55, 0xff}; - - -/* Tells libpng that we have already handled the first "num_bytes" bytes - * of the PNG file signature. If the PNG data is embedded into another - * stream we can set num_bytes = 8 so that libpng will not attempt to read - * or write any of the magic bytes before it starts on the IHDR. - */ -void -png_set_sig_bytes(png_structp png_ptr, int num_bytes) -{ - png_debug(1, "in png_set_sig_bytes\n"); - if (num_bytes > 8) - png_error(png_ptr, "Too many bytes for PNG signature."); - - png_ptr->sig_bytes = num_bytes < 0 ? 0 : num_bytes; -} - -/* Checks whether the supplied bytes match the PNG signature. We allow - * checking less than the full 8-byte signature so that those apps that - * already read the first few bytes of a file to determine the file type - * can simply check the remaining bytes for extra assurance. Returns - * an integer less than, equal to, or greater than zero if sig is found, - * respectively, to be less than, to match, or be greater than the correct - * PNG signature (this is the same behaviour as strcmp, memcmp, etc). - */ -int -png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check) -{ - if (num_to_check > 8) - num_to_check = 8; - else if (num_to_check < 1) - return (0); - - if (start > 7) - return (0); - - if (start + num_to_check > 8) - num_to_check = 8 - start; - - return ((int)(png_memcmp(&sig[start], &png_sig[start], num_to_check))); -} - -/* (Obsolete) function to check signature bytes. It does not allow one - * to check a partial signature. This function might be removed in the - * future - use png_sig_cmp(). Returns true (nonzero) if the file is a PNG. - */ -int -png_check_sig(png_bytep sig, int num) -{ - return ((int)!png_sig_cmp(sig, (png_size_t)0, (png_size_t)num)); -} - -/* Function to allocate memory for zlib. */ -voidpf -png_zalloc(voidpf png_ptr, uInt items, uInt size) -{ - png_uint_32 num_bytes = (png_uint_32)items * size; - png_voidp ptr = (png_voidp)png_malloc((png_structp)png_ptr, num_bytes); - - if (num_bytes > (png_uint_32)0x8000L) - { - png_memset(ptr, 0, (png_size_t)0x8000L); - png_memset((png_bytep)ptr + (png_size_t)0x8000L, 0, - (png_size_t)(num_bytes - (png_uint_32)0x8000L)); - } - else - { - png_memset(ptr, 0, (png_size_t)num_bytes); - } - return ((voidpf)ptr); -} - -/* function to free memory for zlib */ -void -png_zfree(voidpf png_ptr, voidpf ptr) -{ - png_free((png_structp)png_ptr, (png_voidp)ptr); -} - -/* Reset the CRC variable to 32 bits of 1's. Care must be taken - * in case CRC is > 32 bits to leave the top bits 0. - */ -void -png_reset_crc(png_structp png_ptr) -{ - png_ptr->crc = crc32(0, Z_NULL, 0); -} - -/* Calculate the CRC over a section of data. We can only pass as - * much data to this routine as the largest single buffer size. We - * also check that this data will actually be used before going to the - * trouble of calculating it. - */ -void -png_calculate_crc(png_structp png_ptr, png_bytep ptr, png_size_t length) -{ - int need_crc = 1; - - if (png_ptr->chunk_name[0] & 0x20) /* ancillary */ - { - if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_MASK) == - (PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN)) - need_crc = 0; - } - else /* critical */ - { - if (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE) - need_crc = 0; - } - - if (need_crc) - png_ptr->crc = crc32(png_ptr->crc, ptr, (uInt)length); -} - -/* Allocate the memory for an info_struct for the application. We don't - * really need the png_ptr, but it could potentially be useful in the - * future. This should be used in favour of malloc(sizeof(png_info)) - * and png_info_init() so that applications that want to use a shared - * libpng don't have to be recompiled if png_info changes size. - */ -png_infop -png_create_info_struct(png_structp png_ptr) -{ - png_infop info_ptr; - - png_debug(1, "in png_create_info_struct\n"); - if(png_ptr == NULL) return (NULL); -#ifdef PNG_USER_MEM_SUPPORTED - if ((info_ptr = (png_infop)png_create_struct_2(PNG_STRUCT_INFO, - png_ptr->malloc_fn)) != NULL) -#else - if ((info_ptr = (png_infop)png_create_struct(PNG_STRUCT_INFO)) != NULL) -#endif - { - png_info_init(info_ptr); - } - - return (info_ptr); -} - -/* This function frees the memory associated with a single info struct. - * Normally, one would use either png_destroy_read_struct() or - * png_destroy_write_struct() to free an info struct, but this may be - * useful for some applications. - */ -void -png_destroy_info_struct(png_structp png_ptr, png_infopp info_ptr_ptr) -{ - png_infop info_ptr = NULL; - - png_debug(1, "in png_destroy_info_struct\n"); - if (info_ptr_ptr != NULL) - info_ptr = *info_ptr_ptr; - - if (info_ptr != NULL) - { - png_info_destroy(png_ptr, info_ptr); - -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)info_ptr, png_ptr->free_fn); -#else - png_destroy_struct((png_voidp)info_ptr); -#endif - *info_ptr_ptr = (png_infop)NULL; - } -} - -/* Initialize the info structure. This is now an internal function (0.89) - * and applications using it are urged to use png_create_info_struct() - * instead. - */ -void -png_info_init(png_infop info_ptr) -{ - png_debug(1, "in png_info_init\n"); - /* set everything to 0 */ - png_memset(info_ptr, 0, sizeof (png_info)); -} - -/* This is an internal routine to free any memory that the info struct is - * pointing to before re-using it or freeing the struct itself. Recall - * that png_free() checks for NULL pointers for us. - */ -void -png_info_destroy(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_READ_zTXt_SUPPORTED) - png_debug(1, "in png_info_destroy\n"); - if (info_ptr->text != NULL) - { - int i; - for (i = 0; i < info_ptr->num_text; i++) - { - png_free(png_ptr, info_ptr->text[i].key); - } - png_free(png_ptr, info_ptr->text); - } -#endif -#if defined(PNG_READ_pCAL_SUPPORTED) - png_free(png_ptr, info_ptr->pcal_purpose); - png_free(png_ptr, info_ptr->pcal_units); - if (info_ptr->pcal_params != NULL) - { - int i; - for (i = 0; i < (int)info_ptr->pcal_nparams; i++) - { - png_free(png_ptr, info_ptr->pcal_params[i]); - } - png_free(png_ptr, info_ptr->pcal_params); - } -#endif - - png_info_init(info_ptr); -} - -/* This function returns a pointer to the io_ptr associated with the user - * functions. The application should free any memory associated with this - * pointer before png_write_destroy() or png_read_destroy() are called. - */ -png_voidp -png_get_io_ptr(png_structp png_ptr) -{ - return (png_ptr->io_ptr); -} - -#if !defined(PNG_NO_STDIO) -/* Initialize the default input/output functions for the PNG file. If you - * use your own read or write routines, you can call either png_set_read_fn() - * or png_set_write_fn() instead of png_init_io(). - */ -void -png_init_io(png_structp png_ptr, FILE *fp) -{ - png_debug(1, "in png_init_io\n"); - png_ptr->io_ptr = (png_voidp)fp; -} -#endif - -#if defined(PNG_TIME_RFC1123_SUPPORTED) -/* Convert the supplied time into an RFC 1123 string suitable for use in - * a "Creation Time" or other text-based time string. - */ -png_charp -png_convert_to_rfc1123(png_structp png_ptr, png_timep ptime) -{ - static PNG_CONST char short_months[12][4] = - {"Jan", "Feb", "Mar", "Apr", "May", "Jun", - "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; - - if (png_ptr->time_buffer == NULL) - { - png_ptr->time_buffer = (png_charp)png_malloc(png_ptr, (png_uint_32)(29* - sizeof(char))); - } - -#ifdef USE_FAR_KEYWORD - { - char near_time_buf[29]; - sprintf(near_time_buf, "%d %s %d %02d:%02d:%02d +0000", - ptime->day % 32, short_months[(ptime->month - 1) % 12], - ptime->year, ptime->hour % 24, ptime->minute % 60, - ptime->second % 61); - png_memcpy(png_ptr->time_buffer, near_time_buf, - 29*sizeof(char)); - } -#else - sprintf(png_ptr->time_buffer, "%d %s %d %02d:%02d:%02d +0000", - ptime->day % 32, short_months[(ptime->month - 1) % 12], - ptime->year, ptime->hour % 24, ptime->minute % 60, - ptime->second % 61); -#endif - return ((png_charp)png_ptr->time_buffer); -} -#endif /* PNG_TIME_RFC1123_SUPPORTED */ - -png_charp -png_get_copyright(png_structp png_ptr) -{ - if(png_ptr == NULL) - /* silence compiler warning about unused png_ptr */ ; - return("\n libpng version 1.0.3 - January 14, 1999\n\ - Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n\ - Copyright (c) 1996, 1997 Andreas Dilger\n\ - Copyright (c) 1998, 1999, Glenn Randers-Pehrson\n"); -} diff --git a/src/png/png.h b/src/png/png.h deleted file mode 100644 index b48e1507e7..0000000000 --- a/src/png/png.h +++ /dev/null @@ -1,2227 +0,0 @@ - -/* png.h - header file for PNG reference library - * - * libpng version 1.0.3 - January 14, 1999 - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * Y2K compliance in libpng: - * ========================= - * - * January 13, 1999 - * - * Since the PNG Development group is an ad-hoc body, we can't make - * an official declaration. - * - * This is your unofficial assurance that libpng from version 0.81 and - * upward are Y2K compliant. It is my belief that earlier versions were - * also Y2K compliant. - * - * Libpng only has three year fields. One is a 2-byte unsigned integer - * that will hold years up to 65535. The other two hold the date in text - * format, and will hold years up to 9999. - * - * The integer is - * "png_uint_16 year" in png_time_struct. - * - * The strings are - * "png_charp time_buffer" in png_struct and - * "near_time_buffer", which is a local character string in png.c. - * - * There are seven time-related functions: - * png.c: png_convert_to_rfc_1123() in png.c - * (formerly png_convert_to_rfc_1152() in error) - * png_convert_from_struct_tm() in pngwrite.c, called in pngwrite.c - * png_convert_from_time_t() in pngwrite.c - * png_get_tIME() in pngget.c - * png_handle_tIME() in pngrutil.c, called in pngread.c - * png_set_tIME() in pngset.c - * png_write_tIME() in pngwutil.c, called in pngwrite.c - * - * All handle dates properly in a Y2K environment. The - * png_convert_from_time_t() function calls gmtime() to convert from system - * clock time, which returns (year - 1900), which we properly convert to - * the full 4-digit year. There is a possibility that applications using - * libpng are not passing 4-digit years into the png_convert_to_rfc_1123() - * function, or incorrectly passing only a 2-digit year instead of - * "year - 1900" into the png_convert_from_struct_tm() function, but this - * is not under our control. The libpng documentation has always stated - * that it works with 4-digit years, and the APIs have been documented as - * such. - * - * The tIME chunk itself is also Y2K compliant. It uses a 2-byte unsigned - * integer to hold the year, and can hold years as large as 65535. - * - * - * Glenn Randers-Pehrson - * libpng maintainer - * PNG Development Group - * - * Note about libpng version numbers: - * - * Due to various miscommunications, unforeseen code incompatibilities - * and occasional factors outside the authors' control, version numbering - * on the library has not always been consistent and straightforward. - * The following table summarizes matters since version 0.89c, which was - * the first widely used release: - * - * source png.h png.h shared-lib - * version string int version - * ------- ------ ----- ---------- - * 0.89c ("1.0 beta 3") 0.89 89 1.0.89 - * 0.90 ("1.0 beta 4") 0.90 90 0.90 [should have been 2.0.90] - * 0.95 ("1.0 beta 5") 0.95 95 0.95 [should have been 2.0.95] - * 0.96 ("1.0 beta 6") 0.96 96 0.96 [should have been 2.0.96] - * 0.97b ("1.00.97 beta 7") 1.00.97 97 1.0.1 [should have been 2.0.97] - * 0.97c 0.97 97 2.0.97 - * 0.98 0.98 98 2.0.98 - * 0.99 0.99 98 2.0.99 - * 0.99a-m 0.99 99 2.0.99 - * 1.00 1.00 100 2.1.0 [int should be 10000] - * 1.0.0 1.0.0 100 2.1.0 [int should be 10000] - * 1.0.1 1.0.1 10001 2.1.0 - * 1.0.1a-e 1.0.1a-e 10002 2.1.0.1a-e - * 1.0.2 1.0.2 10002 2.1.0.2 - * 1.0.2a-c 1.0.2a 10003 2.1.0.2a-c - * 1.0.3 1.0.3 10003 2.1.0.3 - * - * Henceforth the source version will match the shared-library minor - * and patch numbers; the shared-library major version number will be - * used for changes in backward compatibility, as it is intended. The - * PNG_PNGLIB_VER macro, which is not used within libpng but is available - * for applications, is an unsigned integer of the form xyyzz corresponding - * to the source version x.y.z (leading zeros in y and z). - * - * See libpng.txt or libpng.3 for more information. The PNG specification - * is available as RFC 2083 - * and as a W3C Recommendation - * - * Contributing Authors: - * John Bowler - * Kevin Bracey - * Sam Bushell - * Andreas Dilger - * Magnus Holmgren - * Tom Lane - * Dave Martindale - * Glenn Randers-Pehrson - * Greg Roelofs - * Guy Eric Schalnat - * Paul Schmidt - * Tom Tanner - * Willem van Schaik - * Tim Wegner - * - * The contributing authors would like to thank all those who helped - * with testing, bug fixes, and patience. This wouldn't have been - * possible without all of you. - * - * Thanks to Frank J. T. Wojcik for helping with the documentation. - * - * COPYRIGHT NOTICE: - * - * The PNG Reference Library is supplied "AS IS". The Contributing Authors - * and Group 42, Inc. disclaim all warranties, expressed or implied, - * including, without limitation, the warranties of merchantability and of - * fitness for any purpose. The Contributing Authors and Group 42, Inc. - * assume no liability for direct, indirect, incidental, special, exemplary, - * or consequential damages, which may result from the use of the PNG - * Reference Library, even if advised of the possibility of such damage. - * - * Permission is hereby granted to use, copy, modify, and distribute this - * source code, or portions hereof, for any purpose, without fee, subject - * to the following restrictions: - * 1. The origin of this source code must not be misrepresented. - * 2. Altered versions must be plainly marked as such and must not be - * misrepresented as being the original source. - * 3. This Copyright notice may not be removed or altered from any source or - * altered source distribution. - * - * The Contributing Authors and Group 42, Inc. specifically permit, without - * fee, and encourage the use of this source code as a component to - * supporting the PNG file format in commercial products. If you use this - * source code in a product, acknowledgment is not required but would be - * appreciated. - */ - - -#ifndef _PNG_H -#define _PNG_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* This is not the place to learn how to use libpng. The file libpng.txt - * describes how to use libpng, and the file example.c summarizes it - * with some code on which to build. This file is useful for looking - * at the actual function definitions and structure components. - */ - -/* include the compression library's header */ -#include "zlib.h" - -/* include all user configurable info */ -#include "pngconf.h" - -/* This file is arranged in several sections. The first section contains - * structure and type definitions. The second section contains the external - * library functions, while the third has the internal library functions, - * which applications aren't expected to use directly. - */ - -/* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.0.3" - -/* Careful here. At one time, Guy wanted to use 082, but that would be octal. - * We must not include leading zeros. - * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only - * version 1.0.0 was mis-numbered 100 instead of 10000). From - * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=bugfix */ -#define PNG_LIBPNG_VER 10003 /* 1.0.3 */ - -/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */ -#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) -/* Version information for C files, stored in png.c. This had better match - * the version above. - */ -extern char png_libpng_ver[12]; /* need room for 99.99.99aa */ - -/* Structures to facilitate easy interlacing. See png.c for more details */ -extern int FARDATA png_pass_start[7]; -extern int FARDATA png_pass_inc[7]; -extern int FARDATA png_pass_ystart[7]; -extern int FARDATA png_pass_yinc[7]; -extern int FARDATA png_pass_mask[7]; -extern int FARDATA png_pass_dsp_mask[7]; -/* These aren't currently used. If you need them, see png.c for more details -extern int FARDATA png_pass_width[7]; -extern int FARDATA png_pass_height[7]; -*/ - -#endif /* PNG_NO_EXTERN */ - -/* Three color definitions. The order of the red, green, and blue, (and the - * exact size) is not important, although the size of the fields need to - * be png_byte or png_uint_16 (as defined below). - */ -typedef struct png_color_struct -{ - png_byte red; - png_byte green; - png_byte blue; -} png_color; -typedef png_color FAR * png_colorp; -typedef png_color FAR * FAR * png_colorpp; - -typedef struct png_color_16_struct -{ - png_byte index; /* used for palette files */ - png_uint_16 red; /* for use in red green blue files */ - png_uint_16 green; - png_uint_16 blue; - png_uint_16 gray; /* for use in grayscale files */ -} png_color_16; -typedef png_color_16 FAR * png_color_16p; -typedef png_color_16 FAR * FAR * png_color_16pp; - -typedef struct png_color_8_struct -{ - png_byte red; /* for use in red green blue files */ - png_byte green; - png_byte blue; - png_byte gray; /* for use in grayscale files */ - png_byte alpha; /* for alpha channel files */ -} png_color_8; -typedef png_color_8 FAR * png_color_8p; -typedef png_color_8 FAR * FAR * png_color_8pp; - -/* png_text holds the text in a PNG file, and whether they are compressed - in the PNG file or not. The "text" field points to a regular C string. */ -typedef struct png_text_struct -{ - int compression; /* compression value, see PNG_TEXT_COMPRESSION_ */ - png_charp key; /* keyword, 1-79 character description of "text" */ - png_charp text; /* comment, may be an empty string (ie "") */ - png_size_t text_length; /* length of "text" field */ -} png_text; -typedef png_text FAR * png_textp; -typedef png_text FAR * FAR * png_textpp; - -/* Supported compression types for text in PNG files (tEXt, and zTXt). - * The values of the PNG_TEXT_COMPRESSION_ defines should NOT be changed. */ -#define PNG_TEXT_COMPRESSION_NONE_WR -3 -#define PNG_TEXT_COMPRESSION_zTXt_WR -2 -#define PNG_TEXT_COMPRESSION_NONE -1 -#define PNG_TEXT_COMPRESSION_zTXt 0 -#define PNG_TEXT_COMPRESSION_LAST 1 /* Not a valid value */ - -/* png_time is a way to hold the time in an machine independent way. - * Two conversions are provided, both from time_t and struct tm. There - * is no portable way to convert to either of these structures, as far - * as I know. If you know of a portable way, send it to me. As a side - * note - PNG is Year 2000 compliant! - */ -typedef struct png_time_struct -{ - png_uint_16 year; /* full year, as in, 1995 */ - png_byte month; /* month of year, 1 - 12 */ - png_byte day; /* day of month, 1 - 31 */ - png_byte hour; /* hour of day, 0 - 23 */ - png_byte minute; /* minute of hour, 0 - 59 */ - png_byte second; /* second of minute, 0 - 60 (for leap seconds) */ -} png_time; -typedef png_time FAR * png_timep; -typedef png_time FAR * FAR * png_timepp; - -/* png_info is a structure that holds the information in a PNG file so - * that the application can find out the characteristics of the image. - * If you are reading the file, this structure will tell you what is - * in the PNG file. If you are writing the file, fill in the information - * you want to put into the PNG file, then call png_write_info(). - * The names chosen should be very close to the PNG specification, so - * consult that document for information about the meaning of each field. - * - * With libpng < 0.95, it was only possible to directly set and read the - * the values in the png_info_struct, which meant that the contents and - * order of the values had to remain fixed. With libpng 0.95 and later, - * however, there are now functions that abstract the contents of - * png_info_struct from the application, so this makes it easier to use - * libpng with dynamic libraries, and even makes it possible to use - * libraries that don't have all of the libpng ancillary chunk-handing - * functionality. - * - * In any case, the order of the parameters in png_info_struct should NOT - * be changed for as long as possible to keep compatibility with applications - * that use the old direct-access method with png_info_struct. - */ -typedef struct png_info_struct -{ - /* the following are necessary for every PNG file */ - png_uint_32 width; /* width of image in pixels (from IHDR) */ - png_uint_32 height; /* height of image in pixels (from IHDR) */ - png_uint_32 valid; /* valid chunk data (see PNG_INFO_ below) */ - png_uint_32 rowbytes; /* bytes needed to hold an untransformed row */ - png_colorp palette; /* array of color values (valid & PNG_INFO_PLTE) */ - png_uint_16 num_palette; /* number of color entries in "palette" (PLTE) */ - png_uint_16 num_trans; /* number of transparent palette color (tRNS) */ - png_byte bit_depth; /* 1, 2, 4, 8, or 16 bits/channel (from IHDR) */ - png_byte color_type; /* see PNG_COLOR_TYPE_ below (from IHDR) */ - png_byte compression_type; /* must be PNG_COMPRESSION_TYPE_BASE (IHDR) */ - png_byte filter_type; /* must be PNG_FILTER_TYPE_BASE (from IHDR) */ - png_byte interlace_type; /* One of PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ - - /* The following is informational only on read, and not used on writes. */ - png_byte channels; /* number of data channels per pixel (1, 3, 4)*/ - png_byte pixel_depth; /* number of bits per pixel */ - png_byte spare_byte; /* to align the data, and for future use */ - png_byte signature[8]; /* magic bytes read by libpng from start of file */ - - /* The rest of the data is optional. If you are reading, check the - * valid field to see if the information in these are valid. If you - * are writing, set the valid field to those chunks you want written, - * and initialize the appropriate fields below. - */ - -#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_WRITE_gAMA_SUPPORTED) || \ - defined(PNG_READ_GAMMA_SUPPORTED) - /* The gAMA chunk describes the gamma characteristics of the system - * on which the image was created, normally in the range [1.0, 2.5]. - * Data is valid if (valid & PNG_INFO_gAMA) is non-zero. - */ - float gamma; /* gamma value of image, if (valid & PNG_INFO_gAMA) */ -#endif /* PNG_READ_gAMA_SUPPORTED || PNG_WRITE_gAMA_SUPPORTED */ - -#if defined(PNG_READ_sRGB_SUPPORTED) || defined(PNG_WRITE_sRGB_SUPPORTED) - /* GR-P, 0.96a */ - /* Data valid if (valid & PNG_INFO_sRGB) non-zero. */ - png_byte srgb_intent; /* sRGB rendering intent [0, 1, 2, or 3] */ -#endif /* PNG_READ_sRGB_SUPPORTED || PNG_WRITE_sRGB_SUPPORTED */ - -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ - defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) - /* The tEXt and zTXt chunks contain human-readable textual data in - * uncompressed and compressed forms, respectively. The data in "text" - * is an array of pointers to uncompressed, null-terminated C strings. - * Each chunk has a keyword that describes the textual data contained - * in that chunk. Keywords are not required to be unique, and the text - * string may be empty. Any number of text chunks may be in an image. - */ - int num_text; /* number of comments read/to write */ - int max_text; /* current size of text array */ - png_textp text; /* array of comments read/to write */ -#endif /* PNG_READ_OR_WRITE_tEXt_OR_zTXt_SUPPORTED */ -#if defined(PNG_READ_tIME_SUPPORTED) || defined(PNG_WRITE_tIME_SUPPORTED) - /* The tIME chunk holds the last time the displayed image data was - * modified. See the png_time struct for the contents of this struct. - */ - png_time mod_time; -#endif /* PNG_READ_tIME_SUPPORTED || PNG_WRITE_tIME_SUPPORTED */ -#if defined(PNG_READ_sBIT_SUPPORTED) || defined(PNG_WRITE_sBIT_SUPPORTED) - /* The sBIT chunk specifies the number of significant high-order bits - * in the pixel data. Values are in the range [1, bit_depth], and are - * only specified for the channels in the pixel data. The contents of - * the low-order bits is not specified. Data is valid if - * (valid & PNG_INFO_sBIT) is non-zero. - */ - png_color_8 sig_bit; /* significant bits in color channels */ -#endif /* PNG_READ_sBIT_SUPPORTED || PNG_WRITE_sBIT_SUPPORTED */ -#if defined(PNG_READ_tRNS_SUPPORTED) || defined(PNG_WRITE_tRNS_SUPPORTED) || \ - defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - /* The tRNS chunk supplies transparency data for paletted images and - * other image types that don't need a full alpha channel. There are - * "num_trans" transparency values for a paletted image, stored in the - * same order as the palette colors, starting from index 0. Values - * for the data are in the range [0, 255], ranging from fully transparent - * to fully opaque, respectively. For non-paletted images, there is a - * single color specified that should be treated as fully transparent. - * Data is valid if (valid & PNG_INFO_tRNS) is non-zero. - */ - png_bytep trans; /* transparent values for paletted image */ - png_color_16 trans_values; /* transparent color for non-palette image */ -#endif /* PNG_READ_tRNS_SUPPORTED || PNG_WRITE_tRNS_SUPPORTED */ -#if defined(PNG_READ_bKGD_SUPPORTED) || defined(PNG_WRITE_bKGD_SUPPORTED) || \ - defined(PNG_READ_BACKGROUND_SUPPORTED) - /* The bKGD chunk gives the suggested image background color if the - * display program does not have its own background color and the image - * is needs to composited onto a background before display. The colors - * in "background" are normally in the same color space/depth as the - * pixel data. Data is valid if (valid & PNG_INFO_bKGD) is non-zero. - */ - png_color_16 background; -#endif /* PNG_READ_bKGD_SUPPORTED || PNG_WRITE_bKGD_SUPPORTED */ -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) - /* The oFFs chunk gives the offset in "offset_unit_type" units rightwards - * and downwards from the top-left corner of the display, page, or other - * application-specific co-ordinate space. See the PNG_OFFSET_ defines - * below for the unit types. Valid if (valid & PNG_INFO_oFFs) non-zero. - */ - png_uint_32 x_offset; /* x offset on page */ - png_uint_32 y_offset; /* y offset on page */ - png_byte offset_unit_type; /* offset units type */ -#endif /* PNG_READ_oFFs_SUPPORTED || PNG_WRITE_oFFs_SUPPORTED */ -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) - /* The pHYs chunk gives the physical pixel density of the image for - * display or printing in "phys_unit_type" units (see PNG_RESOLUTION_ - * defines below). Data is valid if (valid & PNG_INFO_pHYs) is non-zero. - */ - png_uint_32 x_pixels_per_unit; /* horizontal pixel density */ - png_uint_32 y_pixels_per_unit; /* vertical pixel density */ - png_byte phys_unit_type; /* resolution type (see PNG_RESOLUTION_ below) */ -#endif /* PNG_READ_pHYs_SUPPORTED || PNG_WRITE_pHYs_SUPPORTED */ -#if defined(PNG_READ_hIST_SUPPORTED) || defined(PNG_WRITE_hIST_SUPPORTED) - /* The hIST chunk contains the relative frequency or importance of the - * various palette entries, so that a viewer can intelligently select a - * reduced-color palette, if required. Data is an array of "num_palette" - * values in the range [0,65535]. Data valid if (valid & PNG_INFO_hIST) - * is non-zero. - */ - png_uint_16p hist; -#endif /* PNG_READ_hIST_SUPPORTED || PNG_WRITE_hIST_SUPPORTED */ -#if defined(PNG_READ_cHRM_SUPPORTED) || defined(PNG_WRITE_cHRM_SUPPORTED) - /* The cHRM chunk describes the CIE color characteristics of the monitor - * on which the PNG was created. This data allows the viewer to do gamut - * mapping of the input image to ensure that the viewer sees the same - * colors in the image as the creator. Values are in the range - * [0.0, 0.8]. Data valid if (valid & PNG_INFO_cHRM) non-zero. - */ - float x_white; - float y_white; - float x_red; - float y_red; - float x_green; - float y_green; - float x_blue; - float y_blue; -#endif /* PNG_READ_cHRM_SUPPORTED || PNG_WRITE_cHRM_SUPPORTED */ -#if defined(PNG_READ_pCAL_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) - /* The pCAL chunk describes a transformation between the stored pixel - * values and original physcical data values used to create the image. - * The integer range [0, 2^bit_depth - 1] maps to the floating-point - * range given by [pcal_X0, pcal_X1], and are further transformed by a - * (possibly non-linear) transformation function given by "pcal_type" - * and "pcal_params" into "pcal_units". Please see the PNG_EQUATION_ - * defines below, and the PNG-Group's Scientific Visualization extension - * chunks document png-scivis-19970203 for a complete description of the - * transformations and how they should be implemented, as well as the - * png-extensions document for a description of the ASCII parameter - * strings. Data values are valid if (valid & PNG_INFO_pCAL) non-zero. - */ - png_charp pcal_purpose; /* pCAL chunk description string */ - png_int_32 pcal_X0; /* minimum value */ - png_int_32 pcal_X1; /* maximum value */ - png_charp pcal_units; /* Latin-1 string giving physical units */ - png_charpp pcal_params; /* ASCII strings containing parameter values */ - png_byte pcal_type; /* equation type (see PNG_EQUATION_ below) */ - png_byte pcal_nparams; /* number of parameters given in pcal_params */ -#endif /* PNG_READ_pCAL_SUPPORTED || PNG_WRITE_pCAL_SUPPORTED */ -} png_info; -typedef png_info FAR * png_infop; -typedef png_info FAR * FAR * png_infopp; - -/* These describe the color_type field in png_info. */ -/* color type masks */ -#define PNG_COLOR_MASK_PALETTE 1 -#define PNG_COLOR_MASK_COLOR 2 -#define PNG_COLOR_MASK_ALPHA 4 - -/* color types. Note that not all combinations are legal */ -#define PNG_COLOR_TYPE_GRAY 0 -#define PNG_COLOR_TYPE_PALETTE (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_PALETTE) -#define PNG_COLOR_TYPE_RGB (PNG_COLOR_MASK_COLOR) -#define PNG_COLOR_TYPE_RGB_ALPHA (PNG_COLOR_MASK_COLOR | PNG_COLOR_MASK_ALPHA) -#define PNG_COLOR_TYPE_GRAY_ALPHA (PNG_COLOR_MASK_ALPHA) - -/* This is for compression type. PNG 1.0 only defines the single type. */ -#define PNG_COMPRESSION_TYPE_BASE 0 /* Deflate method 8, 32K window */ -#define PNG_COMPRESSION_TYPE_DEFAULT PNG_COMPRESSION_TYPE_BASE - -/* This is for filter type. PNG 1.0 only defines the single type. */ -#define PNG_FILTER_TYPE_BASE 0 /* Single row per-byte filtering */ -#define PNG_FILTER_TYPE_DEFAULT PNG_FILTER_TYPE_BASE - -/* These are for the interlacing type. These values should NOT be changed. */ -#define PNG_INTERLACE_NONE 0 /* Non-interlaced image */ -#define PNG_INTERLACE_ADAM7 1 /* Adam7 interlacing */ -#define PNG_INTERLACE_LAST 2 /* Not a valid value */ - -/* These are for the oFFs chunk. These values should NOT be changed. */ -#define PNG_OFFSET_PIXEL 0 /* Offset in pixels */ -#define PNG_OFFSET_MICROMETER 1 /* Offset in micrometers (1/10^6 meter) */ -#define PNG_OFFSET_LAST 2 /* Not a valid value */ - -/* These are for the pCAL chunk. These values should NOT be changed. */ -#define PNG_EQUATION_LINEAR 0 /* Linear transformation */ -#define PNG_EQUATION_BASE_E 1 /* Exponential base e transform */ -#define PNG_EQUATION_ARBITRARY 2 /* Arbitrary base exponential transform */ -#define PNG_EQUATION_HYPERBOLIC 3 /* Hyperbolic sine transformation */ -#define PNG_EQUATION_LAST 4 /* Not a valid value */ - -/* These are for the pHYs chunk. These values should NOT be changed. */ -#define PNG_RESOLUTION_UNKNOWN 0 /* pixels/unknown unit (aspect ratio) */ -#define PNG_RESOLUTION_METER 1 /* pixels/meter */ -#define PNG_RESOLUTION_LAST 2 /* Not a valid value */ - -/* These are for the sRGB chunk. These values should NOT be changed. */ -#define PNG_sRGB_INTENT_SATURATION 0 -#define PNG_sRGB_INTENT_PERCEPTUAL 1 -#define PNG_sRGB_INTENT_ABSOLUTE 2 -#define PNG_sRGB_INTENT_RELATIVE 3 -#define PNG_sRGB_INTENT_LAST 4 /* Not a valid value */ - - - -/* These determine if an ancillary chunk's data has been successfully read - * from the PNG header, or if the application has filled in the corresponding - * data in the info_struct to be written into the output file. The values - * of the PNG_INFO_ defines should NOT be changed. - */ -#define PNG_INFO_gAMA 0x0001 -#define PNG_INFO_sBIT 0x0002 -#define PNG_INFO_cHRM 0x0004 -#define PNG_INFO_PLTE 0x0008 -#define PNG_INFO_tRNS 0x0010 -#define PNG_INFO_bKGD 0x0020 -#define PNG_INFO_hIST 0x0040 -#define PNG_INFO_pHYs 0x0080 -#define PNG_INFO_oFFs 0x0100 -#define PNG_INFO_tIME 0x0200 -#define PNG_INFO_pCAL 0x0400 -#define PNG_INFO_sRGB 0x0800 /* GR-P, 0.96a */ - -/* This is used for the transformation routines, as some of them - * change these values for the row. It also should enable using - * the routines for other purposes. - */ -typedef struct png_row_info_struct -{ - png_uint_32 width; /* width of row */ - png_uint_32 rowbytes; /* number of bytes in row */ - png_byte color_type; /* color type of row */ - png_byte bit_depth; /* bit depth of row */ - png_byte channels; /* number of channels (1, 2, 3, or 4) */ - png_byte pixel_depth; /* bits per pixel (depth * channels) */ -} png_row_info; - -typedef png_row_info FAR * png_row_infop; -typedef png_row_info FAR * FAR * png_row_infopp; - -/* These are the function types for the I/O functions and for the functions - * that allow the user to override the default I/O functions with his or her - * own. The png_error_ptr type should match that of user-supplied warning - * and error functions, while the png_rw_ptr type should match that of the - * user read/write data functions. - */ -typedef struct png_struct_def png_struct; -typedef png_struct FAR * png_structp; - -typedef void (*png_error_ptr) PNGARG((png_structp, png_const_charp)); -typedef void (*png_rw_ptr) PNGARG((png_structp, png_bytep, png_size_t)); -typedef void (*png_flush_ptr) PNGARG((png_structp)); -typedef void (*png_read_status_ptr) PNGARG((png_structp, png_uint_32, int)); -typedef void (*png_write_status_ptr) PNGARG((png_structp, png_uint_32, int)); -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -typedef void (*png_progressive_info_ptr) PNGARG((png_structp, png_infop)); -typedef void (*png_progressive_end_ptr) PNGARG((png_structp, png_infop)); -typedef void (*png_progressive_row_ptr) PNGARG((png_structp, png_bytep, - png_uint_32, int)); -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -typedef void (*png_user_transform_ptr) PNGARG((png_structp, - png_row_infop, png_bytep)); -#endif /* PNG_READ|WRITE_USER_TRANSFORM_SUPPORTED */ - -typedef png_voidp (*png_malloc_ptr) PNGARG((png_structp, png_size_t)); -typedef void (*png_free_ptr) PNGARG((png_structp, png_structp)); - -/* The structure that holds the information to read and write PNG files. - * The only people who need to care about what is inside of this are the - * people who will be modifying the library for their own special needs. - * It should NOT be accessed directly by an application, except to store - * the jmp_buf. - */ - -struct png_struct_def -{ - jmp_buf jmpbuf; /* used in png_error */ - - png_error_ptr error_fn; /* function for printing errors and aborting */ - png_error_ptr warning_fn; /* function for printing warnings */ - png_voidp error_ptr; /* user supplied struct for error functions */ - png_rw_ptr write_data_fn; /* function for writing output data */ - png_rw_ptr read_data_fn; /* function for reading input data */ -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) || \ - defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) - png_user_transform_ptr read_user_transform_fn; /* user read transform */ - png_user_transform_ptr write_user_transform_fn; /* user write transform */ -#endif - png_voidp io_ptr; /* ptr to application struct for I/O functions*/ - - png_uint_32 mode; /* tells us where we are in the PNG file */ - png_uint_32 flags; /* flags indicating various things to libpng */ - png_uint_32 transformations; /* which transformations to perform */ - - z_stream zstream; /* pointer to decompression structure (below) */ - png_bytep zbuf; /* buffer for zlib */ - png_size_t zbuf_size; /* size of zbuf */ - int zlib_level; /* holds zlib compression level */ - int zlib_method; /* holds zlib compression method */ - int zlib_window_bits; /* holds zlib compression window bits */ - int zlib_mem_level; /* holds zlib compression memory level */ - int zlib_strategy; /* holds zlib compression strategy */ - - png_uint_32 width; /* width of image in pixels */ - png_uint_32 height; /* height of image in pixels */ - png_uint_32 num_rows; /* number of rows in current pass */ - png_uint_32 usr_width; /* width of row at start of write */ - png_uint_32 rowbytes; /* size of row in bytes */ - png_uint_32 irowbytes; /* size of current interlaced row in bytes */ - png_uint_32 iwidth; /* width of current interlaced row in pixels */ - png_uint_32 row_number; /* current row in interlace pass */ - png_bytep prev_row; /* buffer to save previous (unfiltered) row */ - png_bytep row_buf; /* buffer to save current (unfiltered) row */ - png_bytep sub_row; /* buffer to save "sub" row when filtering */ - png_bytep up_row; /* buffer to save "up" row when filtering */ - png_bytep avg_row; /* buffer to save "avg" row when filtering */ - png_bytep paeth_row; /* buffer to save "Paeth" row when filtering */ - png_row_info row_info; /* used for transformation routines */ - - png_uint_32 idat_size; /* current IDAT size for read */ - png_uint_32 crc; /* current chunk CRC value */ - png_colorp palette; /* palette from the input file */ - png_uint_16 num_palette; /* number of color entries in palette */ - png_uint_16 num_trans; /* number of transparency values */ - png_byte chunk_name[5]; /* null-terminated name of current chunk */ - png_byte compression; /* file compression type (always 0) */ - png_byte filter; /* file filter type (always 0) */ - png_byte interlaced; /* PNG_INTERLACE_NONE, PNG_INTERLACE_ADAM7 */ - png_byte pass; /* current interlace pass (0 - 6) */ - png_byte do_filter; /* row filter flags (see PNG_FILTER_ below ) */ - png_byte color_type; /* color type of file */ - png_byte bit_depth; /* bit depth of file */ - png_byte usr_bit_depth; /* bit depth of users row */ - png_byte pixel_depth; /* number of bits per pixel */ - png_byte channels; /* number of channels in file */ - png_byte usr_channels; /* channels at start of write */ - png_byte sig_bytes; /* magic bytes read/written from start of file */ - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) - png_uint_16 filler; /* filler bytes for pixel expansion */ -#endif /* PNG_READ_FILLER_SUPPORTED */ -#if defined(PNG_READ_bKGD_SUPPORTED) - png_byte background_gamma_type; - float background_gamma; - png_color_16 background; /* background color in screen gamma space */ -#if defined(PNG_READ_GAMMA_SUPPORTED) - png_color_16 background_1; /* background normalized to gamma 1.0 */ -#endif /* PNG_READ_GAMMA && PNG_READ_bKGD_SUPPORTED */ -#endif /* PNG_READ_bKGD_SUPPORTED */ -#if defined(PNG_WRITE_FLUSH_SUPPORTED) - png_flush_ptr output_flush_fn;/* Function for flushing output */ - png_uint_32 flush_dist; /* how many rows apart to flush, 0 - no flush */ - png_uint_32 flush_rows; /* number of rows written since last flush */ -#endif /* PNG_WRITE_FLUSH_SUPPORTED */ -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - int gamma_shift; /* number of "insignificant" bits 16-bit gamma */ - float gamma; /* file gamma value */ - float screen_gamma; /* screen gamma value (display_gamma/viewing_gamma */ -#endif /* PNG_READ_GAMMA_SUPPORTED */ -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - png_bytep gamma_table; /* gamma table for 8 bit depth files */ - png_bytep gamma_from_1; /* converts from 1.0 to screen */ - png_bytep gamma_to_1; /* converts from file to 1.0 */ - png_uint_16pp gamma_16_table; /* gamma table for 16 bit depth files */ - png_uint_16pp gamma_16_from_1; /* converts from 1.0 to screen */ - png_uint_16pp gamma_16_to_1; /* converts from file to 1.0 */ -#endif /* PNG_READ_GAMMA_SUPPORTED || PNG_WRITE_GAMMA_SUPPORTED */ -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined (PNG_READ_sBIT_SUPPORTED) - png_color_8 sig_bit; /* significant bits in each available channel */ -#endif /* PNG_READ_GAMMA_SUPPORTED || PNG_READ_sBIT_SUPPORTED */ -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) - png_color_8 shift; /* shift for significant bit tranformation */ -#endif /* PNG_READ_SHIFT_SUPPORTED || PNG_WRITE_SHIFT_SUPPORTED */ -#if defined(PNG_READ_tRNS_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) \ - || defined(PNG_READ_EXPAND_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - png_bytep trans; /* transparency values for paletted files */ - png_color_16 trans_values; /* transparency values for non-paletted files */ -#endif /* PNG_READ|WRITE_tRNS_SUPPORTED||PNG_READ_EXPAND|BACKGROUND_SUPPORTED */ - png_read_status_ptr read_row_fn; /* called after each row is decoded */ - png_write_status_ptr write_row_fn; /* called after each row is encoded */ -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - png_progressive_info_ptr info_fn; /* called after header data fully read */ - png_progressive_row_ptr row_fn; /* called after each prog. row is decoded */ - png_progressive_end_ptr end_fn; /* called after image is complete */ - png_bytep save_buffer_ptr; /* current location in save_buffer */ - png_bytep save_buffer; /* buffer for previously read data */ - png_bytep current_buffer_ptr; /* current location in current_buffer */ - png_bytep current_buffer; /* buffer for recently used data */ - png_uint_32 push_length; /* size of current input chunk */ - png_uint_32 skip_length; /* bytes to skip in input data */ - png_size_t save_buffer_size; /* amount of data now in save_buffer */ - png_size_t save_buffer_max; /* total size of save_buffer */ - png_size_t buffer_size; /* total amount of available input data */ - png_size_t current_buffer_size; /* amount of data now in current_buffer */ - int process_mode; /* what push library is currently doing */ - int cur_palette; /* current push library palette index */ -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_READ_zTXt_SUPPORTED) - png_size_t current_text_size; /* current size of text input data */ - png_size_t current_text_left; /* how much text left to read in input */ - png_charp current_text; /* current text chunk buffer */ - png_charp current_text_ptr; /* current location in current_text */ -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED && PNG_READ_tEXt/zTXt_SUPPORTED */ -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ -#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) -/* for the Borland special 64K segment handler */ - png_bytepp offset_table_ptr; - png_bytep offset_table; - png_uint_16 offset_table_number; - png_uint_16 offset_table_count; - png_uint_16 offset_table_count_free; -#endif /* __TURBOC__&&!_Windows&&!__FLAT__ */ -#if defined(PNG_READ_DITHER_SUPPORTED) - png_bytep palette_lookup; /* lookup table for dithering */ - png_bytep dither_index; /* index translation for palette files */ -#endif /* PNG_READ_DITHER_SUPPORTED */ -#if defined(PNG_READ_DITHER_SUPPORTED) || defined(PNG_READ_hIST_SUPPORTED) - png_uint_16p hist; /* histogram */ -#endif -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - png_byte heuristic_method; /* heuristic for row filter selection */ - png_byte num_prev_filters; /* number of weights for previous rows */ - png_bytep prev_filters; /* filter type(s) of previous row(s) */ - png_uint_16p filter_weights; /* weight(s) for previous line(s) */ - png_uint_16p inv_filter_weights; /* 1/weight(s) for previous line(s) */ - png_uint_16p filter_costs; /* relative filter calculation cost */ - png_uint_16p inv_filter_costs; /* 1/relative filter calculation cost */ -#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ -#if defined(PNG_TIME_RFC1123_SUPPORTED) - png_charp time_buffer; /* String to hold RFC 1123 time text */ -#endif /* PNG_TIME_RFC1123_SUPPORTED */ -#ifdef PNG_USER_MEM_SUPPORTED - png_voidp mem_ptr; /* user supplied struct for mem functions */ - png_malloc_ptr malloc_fn; /* function for allocating memory */ - png_free_ptr free_fn; /* function for freeing memory */ -#endif /* PNG_USER_MEM_SUPPORTED */ -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - png_byte rgb_to_gray_status; - png_byte rgb_to_gray_red_coeff; - png_byte rgb_to_gray_green_coeff; - png_byte rgb_to_gray_blue_coeff; -#endif -}; - -typedef png_struct FAR * FAR * png_structpp; - -/* Here are the function definitions most commonly used. This is not - * the place to find out how to use libpng. See libpng.txt for the - * full explanation, see example.c for the summary. This just provides - * a simple one line of the use of each function. - */ - -/* Tell lib we have already handled the first magic bytes. - * Handling more than 8 bytes from the beginning of the file is an error. - */ -extern PNG_EXPORT(void,png_set_sig_bytes) PNGARG((png_structp png_ptr, - int num_bytes)); - -/* Check sig[start] through sig[start + num_to_check - 1] to see if it's a - * PNG file. Returns zero if the supplied bytes match the 8-byte PNG - * signature, and non-zero otherwise. Having num_to_check == 0 or - * start > 7 will always fail (ie return non-zero). - */ -extern PNG_EXPORT(int,png_sig_cmp) PNGARG((png_bytep sig, png_size_t start, - png_size_t num_to_check)); - -/* Simple signature checking function. This is the same as calling - * png_check_sig(sig, n) := !png_sig_cmp(sig, 0, n). - */ -extern PNG_EXPORT(int,png_check_sig) PNGARG((png_bytep sig, int num)); - -/* Allocate and initialize png_ptr struct for reading, and any other memory. */ -extern PNG_EXPORT(png_structp,png_create_read_struct) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn)); - -/* Allocate and initialize png_ptr struct for writing, and any other memory */ -extern PNG_EXPORT(png_structp,png_create_write_struct) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -extern PNG_EXPORT(png_structp,png_create_read_struct_2) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -extern PNG_EXPORT(png_structp,png_create_write_struct_2) - PNGARG((png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn)); -#endif - -/* Write a PNG chunk - size, type, (optional) data, CRC. */ -extern PNG_EXPORT(void,png_write_chunk) PNGARG((png_structp png_ptr, - png_bytep chunk_name, png_bytep data, png_size_t length)); - -/* Write the start of a PNG chunk - length and chunk name. */ -extern PNG_EXPORT(void,png_write_chunk_start) PNGARG((png_structp png_ptr, - png_bytep chunk_name, png_uint_32 length)); - -/* Write the data of a PNG chunk started with png_write_chunk_start(). */ -extern PNG_EXPORT(void,png_write_chunk_data) PNGARG((png_structp png_ptr, - png_bytep data, png_size_t length)); - -/* Finish a chunk started with png_write_chunk_start() (includes CRC). */ -extern PNG_EXPORT(void,png_write_chunk_end) PNGARG((png_structp png_ptr)); - -/* Allocate and initialize the info structure */ -extern PNG_EXPORT(png_infop,png_create_info_struct) - PNGARG((png_structp png_ptr)); - -/* Initialize the info structure (old interface - NOT DLL EXPORTED) */ -extern void png_info_init PNGARG((png_infop info_ptr)); - -/* Writes all the PNG information before the image. */ -extern PNG_EXPORT(void,png_write_info) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* read the information before the actual image data. */ -extern PNG_EXPORT(void,png_read_info) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -#if defined(PNG_TIME_RFC1123_SUPPORTED) -extern PNG_EXPORT(png_charp,png_convert_to_rfc1123) - PNGARG((png_structp png_ptr, png_timep ptime)); -#endif /* PNG_TIME_RFC1123_SUPPORTED */ - -#if defined(PNG_WRITE_tIME_SUPPORTED) -/* convert from a struct tm to png_time */ -extern PNG_EXPORT(void,png_convert_from_struct_tm) PNGARG((png_timep ptime, - struct tm FAR * ttime)); - -/* convert from time_t to png_time. Uses gmtime() */ -extern PNG_EXPORT(void,png_convert_from_time_t) PNGARG((png_timep ptime, - time_t ttime)); -#endif /* PNG_WRITE_tIME_SUPPORTED */ - -#if defined(PNG_READ_EXPAND_SUPPORTED) -/* Expand data to 24 bit RGB, or 8 bit grayscale, with alpha if available. */ -extern PNG_EXPORT(void,png_set_expand) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_EXPAND_SUPPORTED */ - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* Use blue, green, red order for pixels. */ -extern PNG_EXPORT(void,png_set_bgr) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_BGR_SUPPORTED || PNG_WRITE_BGR_SUPPORTED */ - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) -/* Expand the grayscale to 24 bit RGB if necessary. */ -extern PNG_EXPORT(void,png_set_gray_to_rgb) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_GRAY_TO_RGB_SUPPORTED */ - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) -/* Reduce RGB to grayscale. */ -extern PNG_EXPORT(void,png_set_rgb_to_gray) PNGARG((png_structp png_ptr, - int error_action, float red, float green )); -extern PNG_EXPORT(png_byte,png_get_rgb_to_gray_status) PNGARG((png_structp - png_ptr)); -#endif /* PNG_READ_RGB_TO_GRAY_SUPPORTED */ - -extern PNG_EXPORT(void,png_build_grayscale_palette) PNGARG((int bit_depth, - png_colorp palette)); - -#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -extern PNG_EXPORT(void,png_set_strip_alpha) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_STRIP_ALPHA_SUPPORTED */ - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -extern PNG_EXPORT(void,png_set_swap_alpha) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_SWAP_ALPHA_SUPPORTED || PNG_WRITE_SWAP_ALPHA_SUPPORTED */ - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -extern PNG_EXPORT(void,png_set_invert_alpha) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_INVERT_ALPHA_SUPPORTED || PNG_WRITE_INVERT_ALPHA_SUPPORTED */ - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte to 24-bit RGB images. */ -extern PNG_EXPORT(void,png_set_filler) PNGARG((png_structp png_ptr, - png_uint_32 filler, int flags)); - -/* The values of the PNG_FILLER_ defines should NOT be changed */ -#define PNG_FILLER_BEFORE 0 -#define PNG_FILLER_AFTER 1 -#endif /* PNG_READ_FILLER_SUPPORTED || PNG_WRITE_FILLER_SUPPORTED */ - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* Swap bytes in 16 bit depth files. */ -extern PNG_EXPORT(void,png_set_swap) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_SWAP_SUPPORTED || PNG_WRITE_SWAP_SUPPORTED */ - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* Use 1 byte per pixel in 1, 2, or 4 bit depth files. */ -extern PNG_EXPORT(void,png_set_packing) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_PACK_SUPPORTED || PNG_WRITE_PACK_SUPPORTED */ - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* Swap packing order of pixels in bytes. */ -extern PNG_EXPORT(void,png_set_packswap) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_PACKSWAP_SUPPORTED || PNG_WRITE_PACKSWAP_SUPPOR */ - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Converts files to legal bit depths. */ -extern PNG_EXPORT(void,png_set_shift) PNGARG((png_structp png_ptr, - png_color_8p true_bits)); -#endif /* PNG_READ_SHIFT_SUPPORTED || PNG_WRITE_SHIFT_SUPPORTED */ - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Have the code handle the interlacing. Returns the number of passes. */ -extern PNG_EXPORT(int,png_set_interlace_handling) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_INTERLACING_SUPPORTED || PNG_WRITE_INTERLACING_SUPPORTED */ - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -/* Invert monocrome files */ -extern PNG_EXPORT(void,png_set_invert_mono) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_INVERT_SUPPORTED || PNG_WRITE_INVERT_SUPPORTED */ - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) -/* Handle alpha and tRNS by replacing with a background color. */ -extern PNG_EXPORT(void,png_set_background) PNGARG((png_structp png_ptr, - png_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma)); -#define PNG_BACKGROUND_GAMMA_UNKNOWN 0 -#define PNG_BACKGROUND_GAMMA_SCREEN 1 -#define PNG_BACKGROUND_GAMMA_FILE 2 -#define PNG_BACKGROUND_GAMMA_UNIQUE 3 -#endif /* PNG_READ_BACKGROUND_SUPPORTED */ - -#if defined(PNG_READ_16_TO_8_SUPPORTED) -/* strip the second byte of information from a 16 bit depth file. */ -extern PNG_EXPORT(void,png_set_strip_16) PNGARG((png_structp png_ptr)); -#endif /* PNG_READ_16_TO_8_SUPPORTED */ - -#if defined(PNG_READ_DITHER_SUPPORTED) -/* Turn on dithering, and reduce the palette to the number of colors available. */ -extern PNG_EXPORT(void,png_set_dither) PNGARG((png_structp png_ptr, - png_colorp palette, int num_palette, int maximum_colors, - png_uint_16p histogram, int full_dither)); -#endif /* PNG_READ_DITHER_SUPPORTED */ - -#if defined(PNG_READ_GAMMA_SUPPORTED) -/* Handle gamma correction. Screen_gamma=(display_gamma/viewing_gamma) */ -extern PNG_EXPORT(void,png_set_gamma) PNGARG((png_structp png_ptr, - double screen_gamma, double default_file_gamma)); -#endif /* PNG_READ_GAMMA_SUPPORTED */ - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) -/* Set how many lines between output flushes - 0 for no flushing */ -extern PNG_EXPORT(void,png_set_flush) PNGARG((png_structp png_ptr, int nrows)); - -/* Flush the current PNG output buffer */ -extern PNG_EXPORT(void,png_write_flush) PNGARG((png_structp png_ptr)); -#endif /* PNG_WRITE_FLUSH_SUPPORTED */ - -/* optional update palette with requested transformations */ -extern PNG_EXPORT(void,png_start_read_image) PNGARG((png_structp png_ptr)); - -/* optional call to update the users info structure */ -extern PNG_EXPORT(void,png_read_update_info) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* read a one or more rows of image data.*/ -extern PNG_EXPORT(void,png_read_rows) PNGARG((png_structp png_ptr, - png_bytepp row, png_bytepp display_row, png_uint_32 num_rows)); - -/* read a row of data.*/ -extern PNG_EXPORT(void,png_read_row) PNGARG((png_structp png_ptr, - png_bytep row, - png_bytep display_row)); - -/* read the whole image into memory at once. */ -extern PNG_EXPORT(void,png_read_image) PNGARG((png_structp png_ptr, - png_bytepp image)); - -/* write a row of image data */ -extern PNG_EXPORT(void,png_write_row) PNGARG((png_structp png_ptr, - png_bytep row)); - -/* write a few rows of image data */ -extern PNG_EXPORT(void,png_write_rows) PNGARG((png_structp png_ptr, - png_bytepp row, png_uint_32 num_rows)); - -/* write the image data */ -extern PNG_EXPORT(void,png_write_image) PNGARG((png_structp png_ptr, - png_bytepp image)); - -/* writes the end of the PNG file. */ -extern PNG_EXPORT(void,png_write_end) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* read the end of the PNG file. */ -extern PNG_EXPORT(void,png_read_end) PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* free any memory associated with the png_info_struct */ -extern PNG_EXPORT(void,png_destroy_info_struct) PNGARG((png_structp png_ptr, - png_infopp info_ptr_ptr)); - -/* free any memory associated with the png_struct and the png_info_structs */ -extern PNG_EXPORT(void,png_destroy_read_struct) PNGARG((png_structpp - png_ptr_ptr, png_infopp info_ptr_ptr, png_infopp end_info_ptr_ptr)); - -/* free all memory used by the read (old method - NOT DLL EXPORTED) */ -extern void png_read_destroy PNGARG((png_structp png_ptr, png_infop info_ptr, - png_infop end_info_ptr)); - -/* free any memory associated with the png_struct and the png_info_structs */ -extern PNG_EXPORT(void,png_destroy_write_struct) - PNGARG((png_structpp png_ptr_ptr, png_infopp info_ptr_ptr)); - -/* free any memory used in info_ptr struct (old method - NOT DLL EXPORTED) */ -extern void png_write_destroy_info PNGARG((png_infop info_ptr)); - -/* free any memory used in png_ptr struct (old method - NOT DLL EXPORTED) */ -extern void png_write_destroy PNGARG((png_structp png_ptr)); - -/* set the libpng method of handling chunk CRC errors */ -extern PNG_EXPORT(void,png_set_crc_action) PNGARG((png_structp png_ptr, - int crit_action, int ancil_action)); - -/* Values for png_set_crc_action() to say how to handle CRC errors in - * ancillary and critical chunks, and whether to use the data contained - * therein. Note that it is impossible to "discard" data in a critical - * chunk. For versions prior to 0.90, the action was always error/quit, - * whereas in version 0.90 and later, the action for CRC errors in ancillary - * chunks is warn/discard. These values should NOT be changed. - * - * value action:critical action:ancillary - */ -#define PNG_CRC_DEFAULT 0 /* error/quit warn/discard data */ -#define PNG_CRC_ERROR_QUIT 1 /* error/quit error/quit */ -#define PNG_CRC_WARN_DISCARD 2 /* (INVALID) warn/discard data */ -#define PNG_CRC_WARN_USE 3 /* warn/use data warn/use data */ -#define PNG_CRC_QUIET_USE 4 /* quiet/use data quiet/use data */ -#define PNG_CRC_NO_CHANGE 5 /* use current value use current value */ - -/* These functions give the user control over the scan-line filtering in - * libpng and the compression methods used by zlib. These functions are - * mainly useful for testing, as the defaults should work with most users. - * Those users who are tight on memory or want faster performance at the - * expense of compression can modify them. See the compression library - * header file (zlib.h) for an explination of the compression functions. - */ - -/* set the filtering method(s) used by libpng. Currently, the only valid - * value for "method" is 0. - */ -extern PNG_EXPORT(void,png_set_filter) PNGARG((png_structp png_ptr, int method, - int filters)); - -/* Flags for png_set_filter() to say which filters to use. The flags - * are chosen so that they don't conflict with real filter types - * below, in case they are supplied instead of the #defined constants. - * These values should NOT be changed. - */ -#define PNG_NO_FILTERS 0x00 -#define PNG_FILTER_NONE 0x08 -#define PNG_FILTER_SUB 0x10 -#define PNG_FILTER_UP 0x20 -#define PNG_FILTER_AVG 0x40 -#define PNG_FILTER_PAETH 0x80 -#define PNG_ALL_FILTERS (PNG_FILTER_NONE | PNG_FILTER_SUB | PNG_FILTER_UP | \ - PNG_FILTER_AVG | PNG_FILTER_PAETH) - -/* Filter values (not flags) - used in pngwrite.c, pngwutil.c for now. - * These defines should NOT be changed. - */ -#define PNG_FILTER_VALUE_NONE 0 -#define PNG_FILTER_VALUE_SUB 1 -#define PNG_FILTER_VALUE_UP 2 -#define PNG_FILTER_VALUE_AVG 3 -#define PNG_FILTER_VALUE_PAETH 4 -#define PNG_FILTER_VALUE_LAST 5 - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* EXPERIMENTAL */ -/* The "heuristic_method" is given by one of the PNG_FILTER_HEURISTIC_ - * defines, either the default (minimum-sum-of-absolute-differences), or - * the experimental method (weighted-minimum-sum-of-absolute-differences). - * - * Weights are factors >= 1.0, indicating how important it is to keep the - * filter type consistent between rows. Larger numbers mean the current - * filter is that many times as likely to be the same as the "num_weights" - * previous filters. This is cumulative for each previous row with a weight. - * There needs to be "num_weights" values in "filter_weights", or it can be - * NULL if the weights aren't being specified. Weights have no influence on - * the selection of the first row filter. Well chosen weights can (in theory) - * improve the compression for a given image. - * - * Costs are factors >= 1.0 indicating the relative decoding costs of a - * filter type. Higher costs indicate more decoding expense, and are - * therefore less likely to be selected over a filter with lower computational - * costs. There needs to be a value in "filter_costs" for each valid filter - * type (given by PNG_FILTER_VALUE_LAST), or it can be NULL if you aren't - * setting the costs. Costs try to improve the speed of decompression without - * unduly increasing the compressed image size. - * - * A negative weight or cost indicates the default value is to be used, and - * values in the range [0.0, 1.0) indicate the value is to remain unchanged. - * The default values for both weights and costs are currently 1.0, but may - * change if good general weighting/cost heuristics can be found. If both - * the weights and costs are set to 1.0, this degenerates the WEIGHTED method - * to the UNWEIGHTED method, but with added encoding time/computation. - */ -extern PNG_EXPORT(void,png_set_filter_heuristics) PNGARG((png_structp png_ptr, - int heuristic_method, int num_weights, png_doublep filter_weights, - png_doublep filter_costs)); -#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ - -/* Heuristic used for row filter selection. These defines should NOT be - * changed. - */ -#define PNG_FILTER_HEURISTIC_DEFAULT 0 /* Currently "UNWEIGHTED" */ -#define PNG_FILTER_HEURISTIC_UNWEIGHTED 1 /* Used by libpng < 0.95 */ -#define PNG_FILTER_HEURISTIC_WEIGHTED 2 /* Experimental feature */ -#define PNG_FILTER_HEURISTIC_LAST 3 /* Not a valid value */ - -/* Set the library compression level. Currently, valid values range from - * 0 - 9, corresponding directly to the zlib compression levels 0 - 9 - * (0 - no compression, 9 - "maximal" compression). Note that tests have - * shown that zlib compression levels 3-6 usually perform as well as level 9 - * for PNG images, and do considerably fewer caclulations. In the future, - * these values may not correspond directly to the zlib compression levels. - */ -extern PNG_EXPORT(void,png_set_compression_level) PNGARG((png_structp png_ptr, - int level)); - -extern PNG_EXPORT(void,png_set_compression_mem_level) - PNGARG((png_structp png_ptr, int mem_level)); - -extern PNG_EXPORT(void,png_set_compression_strategy) - PNGARG((png_structp png_ptr, int strategy)); - -extern PNG_EXPORT(void,png_set_compression_window_bits) - PNGARG((png_structp png_ptr, int window_bits)); - -extern PNG_EXPORT(void,png_set_compression_method) PNGARG((png_structp png_ptr, - int method)); - -/* These next functions are called for input/output, memory, and error - * handling. They are in the file pngrio.c, pngwio.c, and pngerror.c, - * and call standard C I/O routines such as fread(), fwrite(), and - * fprintf(). These functions can be made to use other I/O routines - * at run time for those applications that need to handle I/O in a - * different manner by calling png_set_???_fn(). See libpng.txt for - * more information. - */ - -#if !defined(PNG_NO_STDIO) -/* Initialize the input/output for the PNG file to the default functions. */ -extern PNG_EXPORT(void,png_init_io) PNGARG((png_structp png_ptr, FILE *fp)); -#endif - -/* Replace the (error and abort), and warning functions with user - * supplied functions. If no messages are to be printed you must still - * write and use replacement functions. The replacement error_fn should - * still do a longjmp to the last setjmp location if you are using this - * method of error handling. If error_fn or warning_fn is NULL, the - * default function will be used. - */ - -extern PNG_EXPORT(void,png_set_error_fn) PNGARG((png_structp png_ptr, - png_voidp error_ptr, png_error_ptr error_fn, png_error_ptr warning_fn)); - -/* Return the user pointer associated with the error functions */ -extern PNG_EXPORT(png_voidp,png_get_error_ptr) PNGARG((png_structp png_ptr)); - -/* Replace the default data output functions with a user supplied one(s). - * If buffered output is not used, then output_flush_fn can be set to NULL. - * If PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile time - * output_flush_fn will be ignored (and thus can be NULL). - */ -extern PNG_EXPORT(void,png_set_write_fn) PNGARG((png_structp png_ptr, - png_voidp io_ptr, png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn)); - -/* Replace the default data input function with a user supplied one. */ -extern PNG_EXPORT(void,png_set_read_fn) PNGARG((png_structp png_ptr, - png_voidp io_ptr, png_rw_ptr read_data_fn)); - -/* Return the user pointer associated with the I/O functions */ -extern PNG_EXPORT(png_voidp,png_get_io_ptr) PNGARG((png_structp png_ptr)); - -extern PNG_EXPORT(void,png_set_read_status_fn) PNGARG((png_structp png_ptr, - png_read_status_ptr read_row_fn)); - -extern PNG_EXPORT(void,png_set_write_status_fn) PNGARG((png_structp png_ptr, - png_write_status_ptr write_row_fn)); - -#ifdef PNG_USER_MEM_SUPPORTED -/* Replace the default memory allocation functions with user supplied one(s). */ -extern PNG_EXPORT(void,png_set_mem_fn) PNGARG((png_structp png_ptr, - png_voidp mem_ptr, png_malloc_ptr malloc_fn, png_free_ptr free_fn)); - -/* Return the user pointer associated with the memory functions */ -extern PNG_EXPORT(png_voidp,png_get_mem_ptr) PNGARG((png_structp png_ptr)); -#endif /* PNG_USER_MEM_SUPPORTED */ - -#ifdef PNG_READ_USER_TRANSFORM_SUPPORTED -extern PNG_EXPORT(void,png_set_read_user_transform_fn) PNGARG((png_structp - png_ptr, png_user_transform_ptr read_user_transform_fn)); -#endif - -#ifdef PNG_WRITE_USER_TRANSFORM_SUPPORTED -extern PNG_EXPORT(void,png_set_write_user_transform_fn) PNGARG((png_structp - png_ptr, png_user_transform_ptr write_user_transform_fn)); -#endif - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -/* Sets the function callbacks for the push reader, and a pointer to a - * user-defined structure available to the callback functions. - */ -extern PNG_EXPORT(void,png_set_progressive_read_fn) PNGARG((png_structp png_ptr, - png_voidp progressive_ptr, - png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, - png_progressive_end_ptr end_fn)); - -/* returns the user pointer associated with the push read functions */ -extern PNG_EXPORT(png_voidp,png_get_progressive_ptr) - PNGARG((png_structp png_ptr)); - -/* function to be called when data becomes available */ -extern PNG_EXPORT(void,png_process_data) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytep buffer, png_size_t buffer_size)); - -/* function that combines rows. Not very much different than the - * png_combine_row() call. Is this even used????? - */ -extern PNG_EXPORT(void,png_progressive_combine_row) PNGARG((png_structp png_ptr, - png_bytep old_row, png_bytep new_row)); -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -extern PNG_EXPORT(png_voidp,png_malloc) PNGARG((png_structp png_ptr, - png_uint_32 size)); - -/* frees a pointer allocated by png_malloc() */ -extern PNG_EXPORT(void,png_free) PNGARG((png_structp png_ptr, png_voidp ptr)); - -#ifdef PNG_USER_MEM_SUPPORTED -extern PNG_EXPORT(png_voidp,png_malloc_default) PNGARG((png_structp png_ptr, - png_uint_32 size)); -extern PNG_EXPORT(void,png_free_default) PNGARG((png_structp png_ptr, - png_voidp ptr)); -#endif /* PNG_USER_MEM_SUPPORTED */ - -extern PNG_EXPORT(png_voidp,png_memcpy_check) PNGARG((png_structp png_ptr, - png_voidp s1, png_voidp s2, png_uint_32 size)); - -extern PNG_EXPORT(png_voidp,png_memset_check) PNGARG((png_structp png_ptr, - png_voidp s1, int value, png_uint_32 size)); - -#if defined(USE_FAR_KEYWORD) /* memory model conversion function */ -extern void *png_far_to_near PNGARG((png_structp png_ptr,png_voidp ptr, - int check)); -#endif /* USE_FAR_KEYWORD */ - -/* Fatal error in PNG image of libpng - can't continue */ -extern PNG_EXPORT(void,png_error) PNGARG((png_structp png_ptr, - png_const_charp error)); - -/* The same, but the chunk name is prepended to the error string. */ -extern PNG_EXPORT(void,png_chunk_error) PNGARG((png_structp png_ptr, - png_const_charp error)); - -/* Non-fatal error in libpng. Can continue, but may have a problem. */ -extern PNG_EXPORT(void,png_warning) PNGARG((png_structp png_ptr, - png_const_charp message)); - -/* Non-fatal error in libpng, chunk name is prepended to message. */ -extern PNG_EXPORT(void,png_chunk_warning) PNGARG((png_structp png_ptr, - png_const_charp message)); - -/* The png_set_ functions are for storing values in the png_info_struct. - * Similarly, the png_get_ calls are used to read values from the - * png_info_struct, either storing the parameters in the passed variables, or - * setting pointers into the png_info_struct where the data is stored. The - * png_get_ functions return a non-zero value if the data was available - * in info_ptr, or return zero and do not change any of the parameters if the - * data was not available. - * - * These functions should be used instead of directly accessing png_info - * to avoid problems with future changes in the size and internal layout of - * png_info_struct. - */ -/* Returns "flag" if chunk data is valid in info_ptr. */ -extern PNG_EXPORT(png_uint_32,png_get_valid) PNGARG((png_structp png_ptr, -png_infop info_ptr, png_uint_32 flag)); - -/* Returns number of bytes needed to hold a transformed row. */ -extern PNG_EXPORT(png_uint_32,png_get_rowbytes) PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -/* Returns number of color channels in image. */ -extern PNG_EXPORT(png_byte,png_get_channels) PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* Returns image width in pixels. */ -extern PNG_EXPORT(png_uint_32, png_get_image_width) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image height in pixels. */ -extern PNG_EXPORT(png_uint_32, png_get_image_height) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image bit_depth. */ -extern PNG_EXPORT(png_byte, png_get_bit_depth) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image color_type. */ -extern PNG_EXPORT(png_byte, png_get_color_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image filter_type. */ -extern PNG_EXPORT(png_byte, png_get_filter_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image interlace_type. */ -extern PNG_EXPORT(png_byte, png_get_interlace_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image compression_type. */ -extern PNG_EXPORT(png_byte, png_get_compression_type) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image resolution in pixels per meter, from pHYs chunk data. */ -extern PNG_EXPORT(png_uint_32, png_get_pixels_per_meter) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_x_pixels_per_meter) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_y_pixels_per_meter) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns pixel aspect ratio, computed from pHYs chunk data. */ -extern PNG_EXPORT(float, png_get_pixel_aspect_ratio) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -/* Returns image x, y offset in pixels or microns, from oFFs chunk data. */ -extern PNG_EXPORT(png_uint_32, png_get_x_offset_pixels) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_y_offset_pixels) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_x_offset_microns) PNGARG((png_structp -png_ptr, png_infop info_ptr)); -extern PNG_EXPORT(png_uint_32, png_get_y_offset_microns) PNGARG((png_structp -png_ptr, png_infop info_ptr)); - -#endif /* PNG_EASY_ACCESS_SUPPORTED */ - -/* Returns pointer to signature string read from PNG header */ -extern PNG_EXPORT(png_bytep,png_get_signature) PNGARG((png_structp png_ptr, -png_infop info_ptr)); - -#if defined(PNG_READ_bKGD_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_bKGD) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_16p *background)); -#endif /* PNG_READ_bKGD_SUPPORTED */ - -#if defined(PNG_READ_bKGD_SUPPORTED) || defined(PNG_WRITE_bKGD_SUPPORTED) -extern PNG_EXPORT(void,png_set_bKGD) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_16p background)); -#endif /* PNG_READ_bKGD_SUPPORTED || PNG_WRITE_bKGD_SUPPORTED */ - -#if defined(PNG_READ_cHRM_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_cHRM) PNGARG((png_structp png_ptr, - png_infop info_ptr, double *white_x, double *white_y, double *red_x, - double *red_y, double *green_x, double *green_y, double *blue_x, - double *blue_y)); -#endif /* PNG_READ_cHRM_SUPPORTED */ - -#if defined(PNG_READ_cHRM_SUPPORTED) || defined(PNG_WRITE_cHRM_SUPPORTED) -extern PNG_EXPORT(void,png_set_cHRM) PNGARG((png_structp png_ptr, - png_infop info_ptr, double white_x, double white_y, double red_x, - double red_y, double green_x, double green_y, double blue_x, double blue_y)); -#endif /* PNG_READ_cHRM_SUPPORTED || PNG_WRITE_cHRM_SUPPORTED */ - -#if defined(PNG_READ_gAMA_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_gAMA) PNGARG((png_structp png_ptr, - png_infop info_ptr, double *file_gamma)); -#endif /* PNG_READ_gAMA_SUPPORTED */ - -#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_WRITE_gAMA_SUPPORTED) -extern PNG_EXPORT(void,png_set_gAMA) PNGARG((png_structp png_ptr, - png_infop info_ptr, double file_gamma)); -#endif /* PNG_READ_gAMA_SUPPORTED || PNG_WRITE_gAMA_SUPPORTED */ - -#if defined(PNG_READ_hIST_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_hIST) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_16p *hist)); -#endif /* PNG_READ_hIST_SUPPORTED */ - -#if defined(PNG_READ_hIST_SUPPORTED) || defined(PNG_WRITE_hIST_SUPPORTED) -extern PNG_EXPORT(void,png_set_hIST) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_16p hist)); -#endif /* PNG_READ_hIST_SUPPORTED || PNG_WRITE_hIST_SUPPORTED */ - -extern PNG_EXPORT(png_uint_32,png_get_IHDR) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 *width, png_uint_32 *height, - int *bit_depth, int *color_type, int *interlace_type, - int *compression_type, int *filter_type)); - -extern PNG_EXPORT(void,png_set_IHDR) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, int filter_type)); - -#if defined(PNG_READ_oFFs_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_oFFs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 *offset_x, png_uint_32 *offset_y, - int *unit_type)); -#endif /* PNG_READ_oFFs_SUPPORTED */ - -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) -extern PNG_EXPORT(void,png_set_oFFs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 offset_x, png_uint_32 offset_y, - int unit_type)); -#endif /* PNG_READ_oFFs_SUPPORTED || PNG_WRITE_oFFs_SUPPORTED */ - -#if defined(PNG_READ_pCAL_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_pCAL) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_charp *purpose, png_int_32 *X0, png_int_32 *X1, - int *type, int *nparams, png_charp *units, png_charpp *params)); -#endif /* PNG_READ_pCAL_SUPPORTED */ - -#if defined(PNG_READ_pCAL_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) -extern PNG_EXPORT(void,png_set_pCAL) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_charp purpose, png_int_32 X0, png_int_32 X1, - int type, int nparams, png_charp units, png_charpp params)); -#endif /* PNG_READ_pCAL_SUPPORTED || PNG_WRITE_pCAL_SUPPORTED */ - -#if defined(PNG_READ_pHYs_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_pHYs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type)); -#endif /* PNG_READ_pHYs_SUPPORTED */ - -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) -extern PNG_EXPORT(void,png_set_pHYs) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 res_x, png_uint_32 res_y, int unit_type)); -#endif /* PNG_READ_pHYs_SUPPORTED || PNG_WRITE_pHYs_SUPPORTED */ - -extern PNG_EXPORT(png_uint_32,png_get_PLTE) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_colorp *palette, int *num_palette)); - -extern PNG_EXPORT(void,png_set_PLTE) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_colorp palette, int num_palette)); - -#if defined(PNG_READ_sBIT_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_sBIT) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_8p *sig_bit)); -#endif /* PNG_READ_sBIT_SUPPORTED */ - -#if defined(PNG_READ_sBIT_SUPPORTED) || defined(PNG_WRITE_sBIT_SUPPORTED) -extern PNG_EXPORT(void,png_set_sBIT) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_color_8p sig_bit)); -#endif /* PNG_READ_sBIT_SUPPORTED || PNG_WRITE_sBIT_SUPPORTED */ - -#if defined(PNG_READ_sRGB_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_sRGB) PNGARG((png_structp png_ptr, - png_infop info_ptr, int *intent)); -#endif /* PNG_READ_sRGB_SUPPORTED */ - -#if defined(PNG_READ_sRGB_SUPPORTED) || defined(PNG_WRITE_sRGB_SUPPORTED) -extern PNG_EXPORT(void,png_set_sRGB) PNGARG((png_structp png_ptr, - png_infop info_ptr, int intent)); -extern PNG_EXPORT(void,png_set_sRGB_gAMA_and_cHRM) PNGARG((png_structp png_ptr, - png_infop info_ptr, int intent)); -#endif /* PNG_READ_sRGB_SUPPORTED || PNG_WRITE_sRGB_SUPPORTED */ - -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_READ_zTXt_SUPPORTED) -/* png_get_text also returns the number of text chunks in text_ptr */ -extern PNG_EXPORT(png_uint_32,png_get_text) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_textp *text_ptr, int *num_text)); -#endif /* PNG_READ_tEXt_SUPPORTED || PNG_READ_zTXt_SUPPORTED */ - -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ - defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) -extern PNG_EXPORT(void,png_set_text) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_textp text_ptr, int num_text)); -#endif /* PNG_READ_OR_WRITE_tEXt_OR_zTXt_SUPPORTED */ - -#if defined(PNG_READ_tIME_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_tIME) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_timep *mod_time)); -#endif /* PNG_READ_tIME_SUPPORTED */ - -#if defined(PNG_READ_tIME_SUPPORTED) || defined(PNG_WRITE_tIME_SUPPORTED) -extern PNG_EXPORT(void,png_set_tIME) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_timep mod_time)); -#endif /* PNG_READ_tIME_SUPPORTED || PNG_WRITE_tIME_SUPPORTED */ - -#if defined(PNG_READ_tRNS_SUPPORTED) -extern PNG_EXPORT(png_uint_32,png_get_tRNS) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytep *trans, int *num_trans, - png_color_16p *trans_values)); -#endif /* PNG_READ_tRNS_SUPPORTED */ - -#if defined(PNG_READ_tRNS_SUPPORTED) || defined(PNG_WRITE_tRNS_SUPPORTED) -extern PNG_EXPORT(void,png_set_tRNS) PNGARG((png_structp png_ptr, - png_infop info_ptr, png_bytep trans, int num_trans, - png_color_16p trans_values)); -#endif /* PNG_READ_tRNS_SUPPORTED || PNG_WRITE_tRNS_SUPPORTED */ - -/* Define PNG_DEBUG at compile time for debugging information. Higher - * numbers for PNG_DEBUG mean more debugging information. This has - * only been added since version 0.95 so it is not implemented throughout - * libpng yet, but more support will be added as needed. - */ -#ifdef PNG_DEBUG -#if (PNG_DEBUG > 0) -#ifndef PNG_DEBUG_FILE -#define PNG_DEBUG_FILE stderr -#endif /* PNG_DEBUG_FILE */ - -#define png_debug(l,m) if (PNG_DEBUG > l) \ - fprintf(PNG_DEBUG_FILE,"%s"m,(l==1 ? "\t" : \ - (l==2 ? "\t\t":(l>2 ? "\t\t\t":"")))) -#define png_debug1(l,m,p1) if (PNG_DEBUG > l) \ - fprintf(PNG_DEBUG_FILE,"%s"m,(l==1 ? "\t" : \ - (l==2 ? "\t\t":(l>2 ? "\t\t\t":""))),p1) -#define png_debug2(l,m,p1,p2) if (PNG_DEBUG > l) \ - fprintf(PNG_DEBUG_FILE,"%s"m,(l==1 ? "\t" : \ - (l==2 ? "\t\t":(l>2 ? "\t\t\t":""))),p1,p2) -#endif /* (PNG_DEBUG > 0) */ -#endif /* PNG_DEBUG */ -#ifndef png_debug -#define png_debug(l, m) -#endif -#ifndef png_debug1 -#define png_debug1(l, m, p1) -#endif -#ifndef png_debug2 -#define png_debug2(l, m, p1, p2) -#endif - -extern PNG_EXPORT(png_charp,png_get_copyright) PNGARG((png_structp png_ptr)); -extern PNG_EXPORT(png_charp,png_get_header_version) PNGARG((png_structp png_ptr)); - -#ifdef PNG_NO_EXTERN -/* this only gets included in png.c */ -png_charp -png_get_header_version(png_structp png_ptr) -{ - if(png_ptr == NULL) - /* silence compiler warning about unused png_ptr */ ; - return("\n libpng version 1.0.3 - January 14, 1999 (header)\n"); -} -#endif - -#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED -/* With these routines we avoid an integer divide, which will be slower on - * most machines. However, it does take more operations than the corresponding - * divide method, so it may be slower on a few RISC systems. There are two - * shifts (by 8 or 16 bits) and an addition, versus a single integer divide. - * - * Note that the rounding factors are NOT supposed to be the same! 128 and - * 32768 are correct for the NODIV code; 127 and 32767 are correct for the - * standard method. - * - * [Optimized code by Greg Roelofs and Mark Adler...blame us for bugs. :-) ] - */ - - /* fg and bg should be in `gamma 1.0' space; alpha is the opacity */ - -# define png_composite(composite, fg, alpha, bg) \ - { png_uint_16 temp = ((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg)*(png_uint_16)(255 - \ - (png_uint_16)(alpha)) + (png_uint_16)128); \ - (composite) = (png_byte)((temp + (temp >> 8)) >> 8); } - -# define png_composite_16(composite, fg, alpha, bg) \ - { png_uint_32 temp = ((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535L - \ - (png_uint_32)(alpha)) + (png_uint_32)32768L); \ - (composite) = (png_uint_16)((temp + (temp >> 16)) >> 16); } - -#else /* standard method using integer division */ - -# define png_composite(composite, fg, alpha, bg) \ - (composite) = (png_byte)(((png_uint_16)(fg) * (png_uint_16)(alpha) + \ - (png_uint_16)(bg) * (png_uint_16)(255 - (png_uint_16)(alpha)) + \ - (png_uint_16)127) / 255) - -# define png_composite_16(composite, fg, alpha, bg) \ - (composite) = (png_uint_16)(((png_uint_32)(fg) * (png_uint_32)(alpha) + \ - (png_uint_32)(bg)*(png_uint_32)(65535L - (png_uint_32)(alpha)) + \ - (png_uint_32)32767) / (png_uint_32)65535L) - -#endif /* PNG_READ_COMPOSITE_NODIV_SUPPORTED */ - -/* These next functions are used internally in the code. They generally - * shouldn't be used unless you are writing code to add or replace some - * functionality in libpng. More information about most functions can - * be found in the files where the functions are located. - */ - -#if defined(PNG_INTERNAL) - -/* Various modes of operation. Note that after an init, mode is set to - * zero automatically when the structure is created. - */ -#define PNG_BEFORE_IHDR 0x00 -#define PNG_HAVE_IHDR 0x01 -#define PNG_HAVE_PLTE 0x02 -#define PNG_HAVE_IDAT 0x04 -#define PNG_AFTER_IDAT 0x08 -#define PNG_HAVE_IEND 0x10 -#define PNG_HAVE_gAMA 0x20 -#define PNG_HAVE_cHRM 0x40 -#define PNG_HAVE_sRGB 0x80 - -/* push model modes */ -#define PNG_READ_SIG_MODE 0 -#define PNG_READ_CHUNK_MODE 1 -#define PNG_READ_IDAT_MODE 2 -#define PNG_SKIP_MODE 3 -#define PNG_READ_tEXt_MODE 4 -#define PNG_READ_zTXt_MODE 5 -#define PNG_READ_DONE_MODE 6 -#define PNG_ERROR_MODE 7 - -/* flags for the transformations the PNG library does on the image data */ -#define PNG_BGR 0x0001 -#define PNG_INTERLACE 0x0002 -#define PNG_PACK 0x0004 -#define PNG_SHIFT 0x0008 -#define PNG_SWAP_BYTES 0x0010 -#define PNG_INVERT_MONO 0x0020 -#define PNG_DITHER 0x0040 -#define PNG_BACKGROUND 0x0080 -#define PNG_BACKGROUND_EXPAND 0x0100 - /* 0x0200 unused */ -#define PNG_16_TO_8 0x0400 -#define PNG_RGBA 0x0800 -#define PNG_EXPAND 0x1000 -#define PNG_GAMMA 0x2000 -#define PNG_GRAY_TO_RGB 0x4000 -#define PNG_FILLER 0x8000 -#define PNG_PACKSWAP 0x10000L -#define PNG_SWAP_ALPHA 0x20000L -#define PNG_STRIP_ALPHA 0x40000L -#define PNG_INVERT_ALPHA 0x80000L -#define PNG_USER_TRANSFORM 0x100000L -#define PNG_RGB_TO_GRAY_ERR 0x200000L -#define PNG_RGB_TO_GRAY_WARN 0x400000L -#define PNG_RGB_TO_GRAY 0x600000L /* two bits, RGB_TO_GRAY_ERR|WARN */ - -/* flags for png_create_struct */ -#define PNG_STRUCT_PNG 0x0001 -#define PNG_STRUCT_INFO 0x0002 - -/* Scaling factor for filter heuristic weighting calculations */ -#define PNG_WEIGHT_SHIFT 8 -#define PNG_WEIGHT_FACTOR (1<<(PNG_WEIGHT_SHIFT)) -#define PNG_COST_SHIFT 3 -#define PNG_COST_FACTOR (1<<(PNG_COST_SHIFT)) - -/* flags for the png_ptr->flags rather than declaring a byte for each one */ -#define PNG_FLAG_ZLIB_CUSTOM_STRATEGY 0x0001 -#define PNG_FLAG_ZLIB_CUSTOM_LEVEL 0x0002 -#define PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL 0x0004 -#define PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS 0x0008 -#define PNG_FLAG_ZLIB_CUSTOM_METHOD 0x0010 -#define PNG_FLAG_ZLIB_FINISHED 0x0020 -#define PNG_FLAG_ROW_INIT 0x0040 -#define PNG_FLAG_FILLER_AFTER 0x0080 -#define PNG_FLAG_CRC_ANCILLARY_USE 0x0100 -#define PNG_FLAG_CRC_ANCILLARY_NOWARN 0x0200 -#define PNG_FLAG_CRC_CRITICAL_USE 0x0400 -#define PNG_FLAG_CRC_CRITICAL_IGNORE 0x0800 -#define PNG_FLAG_FREE_PALETTE 0x1000 -#define PNG_FLAG_FREE_TRANS 0x2000 -#define PNG_FLAG_FREE_HIST 0x4000 -#define PNG_FLAG_HAVE_CHUNK_HEADER 0x8000L -#define PNG_FLAG_WROTE_tIME 0x10000L -#define PNG_FLAG_BACKGROUND_IS_GRAY 0x20000L - -#define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \ - PNG_FLAG_CRC_ANCILLARY_NOWARN) - -#define PNG_FLAG_CRC_CRITICAL_MASK (PNG_FLAG_CRC_CRITICAL_USE | \ - PNG_FLAG_CRC_CRITICAL_IGNORE) - -#define PNG_FLAG_CRC_MASK (PNG_FLAG_CRC_ANCILLARY_MASK | \ - PNG_FLAG_CRC_CRITICAL_MASK) - -/* save typing and make code easier to understand */ -#define PNG_COLOR_DIST(c1, c2) (abs((int)((c1).red) - (int)((c2).red)) + \ - abs((int)((c1).green) - (int)((c2).green)) + \ - abs((int)((c1).blue) - (int)((c2).blue))) - -/* variables declared in png.c - only it needs to define PNG_NO_EXTERN */ -#if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN) -/* place to hold the signature string for a PNG file. */ -extern png_byte FARDATA png_sig[8]; - -/* Constant strings for known chunk types. If you need to add a chunk, - * add a string holding the name here. See png.c for more details. We - * can't selectively include these, since we still check for chunk in the - * wrong locations with these labels. - */ -extern png_byte FARDATA png_IHDR[5]; -extern png_byte FARDATA png_IDAT[5]; -extern png_byte FARDATA png_IEND[5]; -extern png_byte FARDATA png_PLTE[5]; -extern png_byte FARDATA png_bKGD[5]; -extern png_byte FARDATA png_cHRM[5]; -extern png_byte FARDATA png_gAMA[5]; -extern png_byte FARDATA png_hIST[5]; -extern png_byte FARDATA png_oFFs[5]; -extern png_byte FARDATA png_pCAL[5]; -extern png_byte FARDATA png_pHYs[5]; -extern png_byte FARDATA png_sBIT[5]; -extern png_byte FARDATA png_sRGB[5]; -extern png_byte FARDATA png_tEXt[5]; -extern png_byte FARDATA png_tIME[5]; -extern png_byte FARDATA png_tRNS[5]; -extern png_byte FARDATA png_zTXt[5]; - -#endif /* PNG_NO_EXTERN */ - -/* Inline macros to do direct reads of bytes from the input buffer. These - * require that you are using an architecture that uses PNG byte ordering - * (MSB first) and supports unaligned data storage. I think that PowerPC - * in big-endian mode and 680x0 are the only ones that will support this. - * The x86 line of processors definitely do not. The png_get_int_32() - * routine also assumes we are using two's complement format for negative - * values, which is almost certainly true. - */ -#if defined(PNG_READ_BIG_ENDIAN_SUPPORTED) -#if defined(PNG_READ_pCAL_SUPPORTED) -#define png_get_int_32(buf) ( *((png_int_32p) (buf))) -#endif /* PNG_READ_pCAL_SUPPORTED */ -#define png_get_uint_32(buf) ( *((png_uint_32p) (buf))) -#define png_get_uint_16(buf) ( *((png_uint_16p) (buf))) -#else -#if defined(PNG_READ_pCAL_SUPPORTED) -PNG_EXTERN png_int_32 png_get_int_32 PNGARG((png_bytep buf)); -#endif /* PNG_READ_pCAL_SUPPORTED */ -PNG_EXTERN png_uint_32 png_get_uint_32 PNGARG((png_bytep buf)); -PNG_EXTERN png_uint_16 png_get_uint_16 PNGARG((png_bytep buf)); -#endif /* PNG_READ_BIG_ENDIAN_SUPPORTED */ - -/* Initialize png_ptr struct for reading, and allocate any other memory. - * (old interface - NOT DLL EXPORTED). - */ -extern void png_read_init PNGARG((png_structp png_ptr)); - -/* Initialize png_ptr struct for writing, and allocate any other memory. - * (old interface - NOT DLL EXPORTED). - */ -extern void png_write_init PNGARG((png_structp png_ptr)); - -/* allocate memory for an internal libpng struct */ -PNG_EXTERN png_voidp png_create_struct PNGARG((int type)); - -/* free memory from internal libpng struct */ -PNG_EXTERN void png_destroy_struct PNGARG((png_voidp struct_ptr)); - -PNG_EXTERN png_voidp png_create_struct_2 PNGARG((int type, png_malloc_ptr - malloc_fn)); -PNG_EXTERN void png_destroy_struct_2 PNGARG((png_voidp struct_ptr, - png_free_ptr free_fn)); - -/* free any memory that info_ptr points to and reset struct. */ -PNG_EXTERN void png_info_destroy PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* Function to allocate memory for zlib. */ -PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size)); - -/* function to free memory for zlib */ -PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); - -/* reset the CRC variable */ -PNG_EXTERN void png_reset_crc PNGARG((png_structp png_ptr)); - -/* Write the "data" buffer to whatever output you are using. */ -PNG_EXTERN void png_write_data PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)); - -/* Read data from whatever input you are using into the "data" buffer */ -PNG_EXTERN void png_read_data PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)); - -/* read bytes into buf, and update png_ptr->crc */ -PNG_EXTERN void png_crc_read PNGARG((png_structp png_ptr, png_bytep buf, - png_size_t length)); - -/* read "skip" bytes, read the file crc, and (optionally) verify png_ptr->crc */ -PNG_EXTERN int png_crc_finish PNGARG((png_structp png_ptr, png_uint_32 skip)); - -/* read the CRC from the file and compare it to the libpng calculated CRC */ -PNG_EXTERN int png_crc_error PNGARG((png_structp png_ptr)); - -/* Calculate the CRC over a section of data. Note that we are only - * passing a maximum of 64K on systems that have this as a memory limit, - * since this is the maximum buffer size we can specify. - */ -PNG_EXTERN void png_calculate_crc PNGARG((png_structp png_ptr, png_bytep ptr, - png_size_t length)); - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) -PNG_EXTERN void png_flush PNGARG((png_structp png_ptr)); -#endif - -/* Place a 32-bit number into a buffer in PNG byte order (big-endian). - * The only currently known PNG chunks that use signed numbers are - * the ancillary extension chunks, oFFs and pCAL. - */ -PNG_EXTERN void png_save_uint_32 PNGARG((png_bytep buf, png_uint_32 i)); - -#if defined(PNG_WRITE_pCAL_SUPPORTED) -PNG_EXTERN void png_save_int_32 PNGARG((png_bytep buf, png_int_32 i)); -#endif - -/* Place a 16 bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -PNG_EXTERN void png_save_uint_16 PNGARG((png_bytep buf, unsigned int i)); - -/* simple function to write the signature */ -PNG_EXTERN void png_write_sig PNGARG((png_structp png_ptr)); - -/* write various chunks */ - -/* Write the IHDR chunk, and update the png_struct with the necessary - * information. - */ -PNG_EXTERN void png_write_IHDR PNGARG((png_structp png_ptr, png_uint_32 width, - png_uint_32 height, - int bit_depth, int color_type, int compression_type, int filter_type, - int interlace_type)); - -PNG_EXTERN void png_write_PLTE PNGARG((png_structp png_ptr, png_colorp palette, - png_uint_32 num_pal)); - -PNG_EXTERN void png_write_IDAT PNGARG((png_structp png_ptr, png_bytep data, - png_size_t length)); - -PNG_EXTERN void png_write_IEND PNGARG((png_structp png_ptr)); - -#if defined(PNG_WRITE_gAMA_SUPPORTED) -PNG_EXTERN void png_write_gAMA PNGARG((png_structp png_ptr, double file_gamma)); -#endif - -#if defined(PNG_WRITE_sBIT_SUPPORTED) -PNG_EXTERN void png_write_sBIT PNGARG((png_structp png_ptr, png_color_8p sbit, - int color_type)); -#endif - -#if defined(PNG_WRITE_cHRM_SUPPORTED) -PNG_EXTERN void png_write_cHRM PNGARG((png_structp png_ptr, - double white_x, double white_y, - double red_x, double red_y, double green_x, double green_y, - double blue_x, double blue_y)); -#endif - -#if defined(PNG_WRITE_sRGB_SUPPORTED) -PNG_EXTERN void png_write_sRGB PNGARG((png_structp png_ptr, - int intent)); -#endif - -#if defined(PNG_WRITE_tRNS_SUPPORTED) -PNG_EXTERN void png_write_tRNS PNGARG((png_structp png_ptr, png_bytep trans, - png_color_16p values, int number, int color_type)); -#endif - -#if defined(PNG_WRITE_bKGD_SUPPORTED) -PNG_EXTERN void png_write_bKGD PNGARG((png_structp png_ptr, - png_color_16p values, int color_type)); -#endif - -#if defined(PNG_WRITE_hIST_SUPPORTED) -PNG_EXTERN void png_write_hIST PNGARG((png_structp png_ptr, png_uint_16p hist, - int num_hist)); -#endif - -#if defined(PNG_WRITE_tEXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) || \ - defined(PNG_WRITE_pCAL_SUPPORTED) -PNG_EXTERN png_size_t png_check_keyword PNGARG((png_structp png_ptr, - png_charp key, png_charpp new_key)); -#endif - -#if defined(PNG_WRITE_tEXt_SUPPORTED) -PNG_EXTERN void png_write_tEXt PNGARG((png_structp png_ptr, png_charp key, - png_charp text, png_size_t text_len)); -#endif - -#if defined(PNG_WRITE_zTXt_SUPPORTED) -PNG_EXTERN void png_write_zTXt PNGARG((png_structp png_ptr, png_charp key, - png_charp text, png_size_t text_len, int compression)); -#endif - -#if defined(PNG_WRITE_oFFs_SUPPORTED) -PNG_EXTERN void png_write_oFFs PNGARG((png_structp png_ptr, - png_uint_32 x_offset, png_uint_32 y_offset, int unit_type)); -#endif - -#if defined(PNG_WRITE_pCAL_SUPPORTED) -PNG_EXTERN void png_write_pCAL PNGARG((png_structp png_ptr, png_charp purpose, - png_int_32 X0, png_int_32 X1, int type, int nparams, - png_charp units, png_charpp params)); -#endif - -#if defined(PNG_WRITE_pHYs_SUPPORTED) -PNG_EXTERN void png_write_pHYs PNGARG((png_structp png_ptr, - png_uint_32 x_pixels_per_unit, png_uint_32 y_pixels_per_unit, - int unit_type)); -#endif - -#if defined(PNG_WRITE_tIME_SUPPORTED) -PNG_EXTERN void png_write_tIME PNGARG((png_structp png_ptr, - png_timep mod_time)); -#endif - -/* Called when finished processing a row of data */ -PNG_EXTERN void png_write_finish_row PNGARG((png_structp png_ptr)); - -/* Internal use only. Called before first row of data */ -PNG_EXTERN void png_write_start_row PNGARG((png_structp png_ptr)); - -#if defined(PNG_READ_GAMMA_SUPPORTED) -PNG_EXTERN void png_build_gamma_table PNGARG((png_structp png_ptr)); -#endif - -/* combine a row of data, dealing with alpha, etc. if requested */ -PNG_EXTERN void png_combine_row PNGARG((png_structp png_ptr, png_bytep row, - int mask)); - -#if defined(PNG_READ_INTERLACING_SUPPORTED) -/* expand an interlaced row */ -PNG_EXTERN void png_do_read_interlace PNGARG((png_row_infop row_info, - png_bytep row, int pass, png_uint_32 transformations)); -#endif - -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* grab pixels out of a row for an interlaced pass */ -PNG_EXTERN void png_do_write_interlace PNGARG((png_row_infop row_info, - png_bytep row, int pass)); -#endif - -/* unfilter a row */ -PNG_EXTERN void png_read_filter_row PNGARG((png_structp png_ptr, - png_row_infop row_info, png_bytep row, png_bytep prev_row, int filter)); - -/* Choose the best filter to use and filter the row data */ -PNG_EXTERN void png_write_find_filter PNGARG((png_structp png_ptr, - png_row_infop row_info)); - -/* Write out the filtered row. */ -PNG_EXTERN void png_write_filtered_row PNGARG((png_structp png_ptr, - png_bytep filtered_row)); -/* finish a row while reading, dealing with interlacing passes, etc. */ -PNG_EXTERN void png_read_finish_row PNGARG((png_structp png_ptr)); - -/* initialize the row buffers, etc. */ -PNG_EXTERN void png_read_start_row PNGARG((png_structp png_ptr)); -/* optional call to update the users info structure */ -PNG_EXTERN void png_read_transform_info PNGARG((png_structp png_ptr, - png_infop info_ptr)); - -/* these are the functions that do the transformations */ -#if defined(PNG_READ_FILLER_SUPPORTED) -PNG_EXTERN void png_do_read_filler PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 filler, png_uint_32 flags)); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_read_swap_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_write_swap_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_read_invert_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_write_invert_alpha PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ - defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -PNG_EXTERN void png_do_strip_filler PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 flags)); -#endif - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -PNG_EXTERN void png_do_swap PNGARG((png_row_infop row_info, png_bytep row)); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) || defined(PNG_WRITE_PACKSWAP_SUPPORTED) -PNG_EXTERN void png_do_packswap PNGARG((png_row_infop row_info, png_bytep row)); -#endif - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) -PNG_EXTERN int png_do_rgb_to_gray PNGARG((png_structp png_ptr, png_row_infop - row_info, png_bytep row)); -#endif - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) -PNG_EXTERN void png_do_gray_to_rgb PNGARG((png_row_infop row_info, - png_bytep row)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) -PNG_EXTERN void png_do_unpack PNGARG((png_row_infop row_info, png_bytep row)); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) -PNG_EXTERN void png_do_unshift PNGARG((png_row_infop row_info, png_bytep row, - png_color_8p sig_bits)); -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -PNG_EXTERN void png_do_invert PNGARG((png_row_infop row_info, png_bytep row)); -#endif - -#if defined(PNG_READ_16_TO_8_SUPPORTED) -PNG_EXTERN void png_do_chop PNGARG((png_row_infop row_info, png_bytep row)); -#endif - -#if defined(PNG_READ_DITHER_SUPPORTED) -PNG_EXTERN void png_do_dither PNGARG((png_row_infop row_info, - png_bytep row, png_bytep palette_lookup, png_bytep dither_lookup)); - -# if defined(PNG_CORRECT_PALETTE_SUPPORTED) -PNG_EXTERN void png_correct_palette PNGARG((png_structp png_ptr, - png_colorp palette, int num_palette)); -# endif -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -PNG_EXTERN void png_do_bgr PNGARG((png_row_infop row_info, png_bytep row)); -#endif - -#if defined(PNG_WRITE_PACK_SUPPORTED) -PNG_EXTERN void png_do_pack PNGARG((png_row_infop row_info, - png_bytep row, png_uint_32 bit_depth)); -#endif - -#if defined(PNG_WRITE_SHIFT_SUPPORTED) -PNG_EXTERN void png_do_shift PNGARG((png_row_infop row_info, png_bytep row, - png_color_8p bit_depth)); -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) -PNG_EXTERN void png_do_background PNGARG((png_row_infop row_info, png_bytep row, - png_color_16p trans_values, png_color_16p background, - png_color_16p background_1, - png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, - png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, - png_uint_16pp gamma_16_to_1, int gamma_shift)); -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) -PNG_EXTERN void png_do_gamma PNGARG((png_row_infop row_info, png_bytep row, - png_bytep gamma_table, png_uint_16pp gamma_16_table, - int gamma_shift)); -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) -PNG_EXTERN void png_do_expand_palette PNGARG((png_row_infop row_info, - png_bytep row, png_colorp palette, png_bytep trans, int num_trans)); -PNG_EXTERN void png_do_expand PNGARG((png_row_infop row_info, - png_bytep row, png_color_16p trans_value)); -#endif - -/* The following decodes the appropriate chunks, and does error correction, - * then calls the appropriate callback for the chunk if it is valid. - */ - -/* decode the IHDR chunk */ -PNG_EXTERN void png_handle_IHDR PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -PNG_EXTERN void png_handle_PLTE PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -PNG_EXTERN void png_handle_IEND PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); - -#if defined(PNG_READ_gAMA_SUPPORTED) -PNG_EXTERN void png_handle_gAMA PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_sBIT_SUPPORTED) -PNG_EXTERN void png_handle_sBIT PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_cHRM_SUPPORTED) -PNG_EXTERN void png_handle_cHRM PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_sRGB_SUPPORTED) -PNG_EXTERN void png_handle_sRGB PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_tRNS_SUPPORTED) -PNG_EXTERN void png_handle_tRNS PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_bKGD_SUPPORTED) -PNG_EXTERN void png_handle_bKGD PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_hIST_SUPPORTED) -PNG_EXTERN void png_handle_hIST PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_oFFs_SUPPORTED) -PNG_EXTERN void png_handle_oFFs PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_pCAL_SUPPORTED) -PNG_EXTERN void png_handle_pCAL PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_pHYs_SUPPORTED) -PNG_EXTERN void png_handle_pHYs PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_tIME_SUPPORTED) -PNG_EXTERN void png_handle_tIME PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_tEXt_SUPPORTED) -PNG_EXTERN void png_handle_tEXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -#if defined(PNG_READ_zTXt_SUPPORTED) -PNG_EXTERN void png_handle_zTXt PNGARG((png_structp png_ptr, png_infop info_ptr, - png_uint_32 length)); -#endif - -PNG_EXTERN void png_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); - -PNG_EXTERN void png_check_chunk_name PNGARG((png_structp png_ptr, - png_bytep chunk_name)); - -/* handle the transformations for reading and writing */ -PNG_EXTERN void png_do_read_transformations PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_do_write_transformations PNGARG((png_structp png_ptr)); - -PNG_EXTERN void png_init_read_transformations PNGARG((png_structp png_ptr)); - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED -PNG_EXTERN void png_push_read_chunk PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_read_sig PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_check_crc PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_crc_skip PNGARG((png_structp png_ptr, - png_uint_32 length)); -PNG_EXTERN void png_push_crc_finish PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_fill_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t length)); -PNG_EXTERN void png_push_save_buffer PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_restore_buffer PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t buffer_length)); -PNG_EXTERN void png_push_read_IDAT PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_process_IDAT_data PNGARG((png_structp png_ptr, - png_bytep buffer, png_size_t buffer_length)); -PNG_EXTERN void png_push_process_row PNGARG((png_structp png_ptr)); -PNG_EXTERN void png_push_handle_unknown PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_have_info PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_have_end PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_push_have_row PNGARG((png_structp png_ptr, png_bytep row)); -PNG_EXTERN void png_push_read_end PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_process_some_data PNGARG((png_structp png_ptr, - png_infop info_ptr)); -PNG_EXTERN void png_read_push_finish_row PNGARG((png_structp png_ptr)); -#if defined(PNG_READ_tEXt_SUPPORTED) -PNG_EXTERN void png_push_handle_tEXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_read_tEXt PNGARG((png_structp png_ptr, - png_infop info_ptr)); -#endif -#if defined(PNG_READ_zTXt_SUPPORTED) -PNG_EXTERN void png_push_handle_zTXt PNGARG((png_structp png_ptr, - png_infop info_ptr, png_uint_32 length)); -PNG_EXTERN void png_push_read_zTXt PNGARG((png_structp png_ptr, - png_infop info_ptr)); -#endif - -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - -#endif /* PNG_INTERNAL */ - -#ifdef __cplusplus -} -#endif - -/* do not put anything past this line */ -#endif /* _PNG_H */ diff --git a/src/png/pngconf.h b/src/png/pngconf.h deleted file mode 100644 index 028f2a1a70..0000000000 --- a/src/png/pngconf.h +++ /dev/null @@ -1,705 +0,0 @@ - -/* pngconf.h - machine configurable file for libpng - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -/* Any machine specific code is near the front of this file, so if you - * are configuring libpng for a machine, you may want to read the section - * starting here down to where it starts to typedef png_color, png_text, - * and png_info. - */ - -#ifndef PNGCONF_H -#define PNGCONF_H - - -/* This is the size of the compression buffer, and thus the size of - * an IDAT chunk. Make this whatever size you feel is best for your - * machine. One of these will be allocated per png_struct. When this - * is full, it writes the data to the disk, and does some other - * calculations. Making this an extremely small size will slow - * the library down, but you may want to experiment to determine - * where it becomes significant, if you are concerned with memory - * usage. Note that zlib allocates at least 32Kb also. For readers, - * this describes the size of the buffer available to read the data in. - * Unless this gets smaller than the size of a row (compressed), - * it should not make much difference how big this is. - */ - -#ifndef PNG_ZBUF_SIZE -#define PNG_ZBUF_SIZE 8192 -#endif - -/* If you are running on a machine where you cannot allocate more - * than 64K of memory at once, uncomment this. While libpng will not - * normally need that much memory in a chunk (unless you load up a very - * large file), zlib needs to know how big of a chunk it can use, and - * libpng thus makes sure to check any memory allocation to verify it - * will fit into memory. -#define PNG_MAX_MALLOC_64K - */ -#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) -#define PNG_MAX_MALLOC_64K -#endif - -/* This protects us against compilers that run on a windowing system - * and thus don't have or would rather us not use the stdio types: - * stdin, stdout, and stderr. The only one currently used is stderr - * in png_error() and png_warning(). #defining PNG_NO_CONSOLE_IO will - * prevent these from being compiled and used. #defining PNG_NO_STDIO - * will also prevent these, plus will prevent the entire set of stdio - * macros and functions (FILE *, printf, etc.) from being compiled and used, - * unless PNG_DEBUG has been #defined. - * - * #define PNG_NO_CONSOLE_IO - * #define PNG_NO_STDIO - */ - -#ifdef PNG_DEBUG -# if (PNG_DEBUG > 0) -# include -# endif -#else -# ifdef PNG_NO_STDIO -# ifndef PNG_NO_CONSOLE_IO -# define PNG_NO_CONSOLE_IO -# endif -# else -# include -# endif -#endif - -/* This macro protects us against machines that don't have function - * prototypes (ie K&R style headers). If your compiler does not handle - * function prototypes, define this macro and use the included ansi2knr. - * I've always been able to use _NO_PROTO as the indicator, but you may - * need to drag the empty declaration out in front of here, or change the - * ifdef to suit your own needs. - */ -#ifndef PNGARG - -#ifdef OF /* zlib prototype munger */ -#define PNGARG(arglist) OF(arglist) -#else - -#ifdef _NO_PROTO -#define PNGARG(arglist) () -#else -#define PNGARG(arglist) arglist -#endif /* _NO_PROTO */ - -#endif /* OF */ - -#endif /* PNGARG */ - -/* Try to determine if we are compiling on a Mac. Note that testing for - * just __MWERKS__ is not good enough, because the Codewarrior is now used - * on non-Mac platforms. - */ -#ifndef MACOS -#if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \ - defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC) -#define MACOS -#endif -#endif - -/* enough people need this for various reasons to include it here */ -#if !defined(MACOS) && !defined(RISCOS) -#include -#endif - -/* This is an attempt to force a single setjmp behaviour on Linux. If - * the X config stuff didn't define _BSD_SOURCE we wouldn't need this. - */ -#ifdef __linux__ -#ifdef _BSD_SOURCE -#define _PNG_SAVE_BSD_SOURCE -#undef _BSD_SOURCE -#endif -#ifdef _SETJMP_H -__png.h__ already includes setjmp.h -__dont__ include it again -#endif -#endif /* __linux__ */ - -/* include setjmp.h for error handling */ -#include - -#ifdef __linux__ -#ifdef _PNG_SAVE_BSD_SOURCE -#define _BSD_SOURCE -#undef _PNG_SAVE_BSD_SOURCE -#endif -#endif /* __linux__ */ - -#ifdef BSD -#include -#else -#include -#endif - -/* Other defines for things like memory and the like can go here. */ -#ifdef PNG_INTERNAL -#include - -/* The functions exported by PNG_EXTERN are PNG_INTERNAL functions, which - * aren't usually used outside the library (as far as I know), so it is - * debatable if they should be exported at all. In the future, when it is - * possible to have run-time registry of chunk-handling functions, some of - * these will be made available again. -#define PNG_EXTERN extern - */ -#define PNG_EXTERN - -/* Other defines specific to compilers can go here. Try to keep - * them inside an appropriate ifdef/endif pair for portability. - */ - -#if defined(MACOS) -/* We need to check that hasn't already been included earlier - * as it seems it doesn't agree with , yet we should really use - * if possible. - */ -#if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__) -#include -#endif -#else -#include -#endif - -/* Codewarrior on NT has linking problems without this. */ -#if defined(__MWERKS__) && defined(WIN32) -#define PNG_ALWAYS_EXTERN -#endif - -/* For some reason, Borland C++ defines memcmp, etc. in mem.h, not - * stdlib.h like it should (I think). Or perhaps this is a C++ - * "feature"? - */ -#ifdef __TURBOC__ -#include -#include "alloc.h" -#endif - -#ifdef _MSC_VER -#include -#endif - -/* This controls how fine the dithering gets. As this allocates - * a largish chunk of memory (32K), those who are not as concerned - * with dithering quality can decrease some or all of these. - */ -#ifndef PNG_DITHER_RED_BITS -#define PNG_DITHER_RED_BITS 5 -#endif -#ifndef PNG_DITHER_GREEN_BITS -#define PNG_DITHER_GREEN_BITS 5 -#endif -#ifndef PNG_DITHER_BLUE_BITS -#define PNG_DITHER_BLUE_BITS 5 -#endif - -/* This controls how fine the gamma correction becomes when you - * are only interested in 8 bits anyway. Increasing this value - * results in more memory being used, and more pow() functions - * being called to fill in the gamma tables. Don't set this value - * less then 8, and even that may not work (I haven't tested it). - */ - -#ifndef PNG_MAX_GAMMA_8 -#define PNG_MAX_GAMMA_8 11 -#endif - -/* This controls how much a difference in gamma we can tolerate before - * we actually start doing gamma conversion. - */ -#ifndef PNG_GAMMA_THRESHOLD -#define PNG_GAMMA_THRESHOLD 0.05 -#endif - -#endif /* PNG_INTERNAL */ - -/* The following uses const char * instead of char * for error - * and warning message functions, so some compilers won't complain. - * If you do not want to use const, define PNG_NO_CONST here. - */ - -#ifndef PNG_NO_CONST -# define PNG_CONST const -#else -# define PNG_CONST -#endif - -/* The following defines give you the ability to remove code from the - * library that you will not be using. I wish I could figure out how to - * automate this, but I can't do that without making it seriously hard - * on the users. So if you are not using an ability, change the #define - * to and #undef, and that part of the library will not be compiled. If - * your linker can't find a function, you may want to make sure the - * ability is defined here. Some of these depend upon some others being - * defined. I haven't figured out all the interactions here, so you may - * have to experiment awhile to get everything to compile. If you are - * creating or using a shared library, you probably shouldn't touch this, - * as it will affect the size of the structures, and this will cause bad - * things to happen if the library and/or application ever change. - */ - -/* Any transformations you will not be using can be undef'ed here */ - -/* GR-P, 0.96a: Set "*TRANSFORMS_SUPPORTED as default but allow user - to turn it off with "*TRANSFORMS_NOT_SUPPORTED" or *PNG_NO_*_TRANSFORMS - on the compile line, then pick and choose which ones to define without - having to edit this file. It is safe to use the *TRANSFORMS_NOT_SUPPORTED - if you only want to have a png-compliant reader/writer but don't need - any of the extra transformations. This saves about 80 kbytes in a - typical installation of the library. (PNG_NO_* form added in version - 1.0.1c, for consistency) - */ - - -#if !defined(PNG_READ_TRANSFORMS_NOT_SUPPORTED) && \ - !defined(PNG_NO_READ_TRANSFORMS) -#define PNG_READ_TRANSFORMS_SUPPORTED -#endif -#if !defined(PNG_WRITE_TRANSFORMS_NOT_SUPPORTED) && \ - !defined(PNG_NO_WRITE_TRANSFORMS) -#define PNG_WRITE_TRANSFORMS_SUPPORTED -#endif - -#ifdef PNG_READ_TRANSFORMS_SUPPORTED -#ifndef PNG_NO_READ_EXPAND -#define PNG_READ_EXPAND_SUPPORTED -#endif -#ifndef PNG_NO_READ_SHIFT -#define PNG_READ_SHIFT_SUPPORTED -#endif -#ifndef PNG_NO_READ_PACK -#define PNG_READ_PACK_SUPPORTED -#endif -#ifndef PNG_NO_READ_BGR -#define PNG_READ_BGR_SUPPORTED -#endif -#ifndef PNG_NO_READ_SWAP -#define PNG_READ_SWAP_SUPPORTED -#endif -#ifndef PNG_NO_READ_PACKSWAP -#define PNG_READ_PACKSWAP_SUPPORTED -#endif -#ifndef PNG_NO_READ_INVERT -#define PNG_READ_INVERT_SUPPORTED -#endif -#ifndef PNG_NO_READ_DITHER -#define PNG_READ_DITHER_SUPPORTED -#endif -#ifndef PNG_NO_READ_BACKGROUND -#define PNG_READ_BACKGROUND_SUPPORTED -#endif -#ifndef PNG_NO_READ_16_TO_8 -#define PNG_READ_16_TO_8_SUPPORTED -#endif -#ifndef PNG_NO_READ_FILLER -#define PNG_READ_FILLER_SUPPORTED -#endif -#ifndef PNG_NO_READ_GAMMA -#define PNG_READ_GAMMA_SUPPORTED -#endif -#ifndef PNG_NO_READ_GRAY_TO_RGB -#define PNG_READ_GRAY_TO_RGB_SUPPORTED -#endif -#ifndef PNG_NO_READ_SWAP_ALPHA -#define PNG_READ_SWAP_ALPHA_SUPPORTED -#endif -#ifndef PNG_NO_READ_INVERT_ALPHA -#define PNG_READ_INVERT_ALPHA_SUPPORTED -#endif -#ifndef PNG_NO_READ_STRIP_ALPHA -#define PNG_READ_STRIP_ALPHA_SUPPORTED -#endif -#ifndef PNG_NO_READ_USER_TRANSFORM -#define PNG_READ_USER_TRANSFORM_SUPPORTED -#endif -#ifndef PNG_NO_READ_RGB_TO_GRAY -#define PNG_READ_RGB_TO_GRAY_SUPPORTED -#endif -#endif /* PNG_READ_TRANSFORMS_SUPPORTED */ - -#if !defined(PNG_NO_PROGRESSIVE_READ) && \ - !defined(PNG_PROGRESSIVE_READ_NOT_SUPPORTED) /* if you don't do progressive */ -#define PNG_PROGRESSIVE_READ_SUPPORTED /* reading. This is not talking */ -#endif /* about interlacing capability! You'll */ - /* still have interlacing unless you change the following line: */ -#define PNG_READ_INTERLACING_SUPPORTED /* required for PNG-compliant decoders */ - -#ifndef PNG_NO_READ_COMPOSITED_NODIV -#define PNG_READ_COMPOSITE_NODIV_SUPPORTED /* well tested on Intel and SGI */ -#endif - -#ifdef PNG_WRITE_TRANSFORMS_SUPPORTED -#ifndef PNG_NO_WRITE_SHIFT -#define PNG_WRITE_SHIFT_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_PACK -#define PNG_WRITE_PACK_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_BGR -#define PNG_WRITE_BGR_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_SWAP -#define PNG_WRITE_SWAP_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_PACKSWAP -#define PNG_WRITE_PACKSWAP_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_INVERT -#define PNG_WRITE_INVERT_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_FILLER -#define PNG_WRITE_FILLER_SUPPORTED /* This is the same as WRITE_STRIP_ALPHA */ -#endif -#ifndef PNG_NO_WRITE_SWAP_ALPHA -#define PNG_WRITE_SWAP_ALPHA_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_INVERT_ALPHA -#define PNG_WRITE_INVERT_ALPHA_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_USER_TRANSFORM -#define PNG_WRITE_USER_TRANSFORM_SUPPORTED -#endif -#endif /* PNG_WRITE_TRANSFORMS_SUPPORTED */ - -#define PNG_WRITE_INTERLACING_SUPPORTED /* not required for PNG-compliant - encoders, but can cause trouble - if left undefined */ - -#ifndef PNG_NO_WRITE_WEIGHTED_FILTER -#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED -#endif - -#ifndef PNG_NO_WRITE_FLUSH -#define PNG_WRITE_FLUSH_SUPPORTED -#endif - -#ifndef PNG_NO_STDIO -#define PNG_TIME_RFC1123_SUPPORTED -#endif - -/* This adds extra functions in pngget.c for accessing data from the - * info pointer (added in version 0.99) - * png_get_image_width() - * png_get_image_height() - * png_get_bit_depth() - * png_get_color_type() - * png_get_compression_type() - * png_get_filter_type() - * png_get_interlace_type() - * png_get_pixel_aspect_ratio() - * png_get_pixels_per_meter() - * png_get_x_offset_pixels() - * png_get_y_offset_pixels() - * png_get_x_offset_microns() - * png_get_y_offset_microns() - */ -#ifndef PNG_NO_EASY_ACCESS -#define PNG_EASY_ACCESS_SUPPORTED -#endif - -/* These are currently experimental features, define them if you want */ - -/* very little testing */ -/* -#define PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED -#define PNG_USER_MEM_SUPPORTED -*/ - -/* This is only for PowerPC big-endian and 680x0 systems */ -/* some testing */ -/* -#define PNG_READ_BIG_ENDIAN_SUPPORTED -*/ - -/* These functions are turned off by default, as they will be phased out. */ -/* -#define PNG_USELESS_TESTS_SUPPORTED -#define PNG_CORRECT_PALETTE_SUPPORTED -*/ - -/* Any chunks you are not interested in, you can undef here. The - * ones that allocate memory may be expecially important (hIST, - * tEXt, zTXt, tRNS, pCAL). Others will just save time and make png_info - * a bit smaller. - */ - -#if !defined(PNG_READ_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ - !defined(PNG_NO_READ_ANCILLARY_CHUNKS) -#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#endif -#if !defined(PNG_WRITE_ANCILLARY_CHUNKS_NOT_SUPPORTED) && \ - !defined(PNG_NO_WRITE_ANCILLARY_CHUNKS) -#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#endif - -#ifdef PNG_READ_ANCILLARY_CHUNKS_SUPPORTED -#ifndef PNG_NO_READ_bKGD -#define PNG_READ_bKGD_SUPPORTED -#endif -#ifndef PNG_NO_READ_cHRM -#define PNG_READ_cHRM_SUPPORTED -#endif -#ifndef PNG_NO_READ_gAMA -#define PNG_READ_gAMA_SUPPORTED -#endif -#ifndef PNG_NO_READ_hIST -#define PNG_READ_hIST_SUPPORTED -#endif -#ifndef PNG_NO_READ_oFFs -#define PNG_READ_oFFs_SUPPORTED -#endif -#ifndef PNG_NO_READ_pCAL -#define PNG_READ_pCAL_SUPPORTED -#endif -#ifndef PNG_NO_READ_pHYs -#define PNG_READ_pHYs_SUPPORTED -#endif -#ifndef PNG_NO_READ_sBIT -#define PNG_READ_sBIT_SUPPORTED -#endif -#ifndef PNG_NO_READ_sRGB -#define PNG_READ_sRGB_SUPPORTED -#endif -#ifndef PNG_NO_READ_tEXt -#define PNG_READ_tEXt_SUPPORTED -#endif -#ifndef PNG_NO_READ_tIME -#define PNG_READ_tIME_SUPPORTED -#endif -#ifndef PNG_NO_READ_tRNS -#define PNG_READ_tRNS_SUPPORTED -#endif -#ifndef PNG_NO_READ_zTXt -#define PNG_READ_zTXt_SUPPORTED -#endif -#ifndef PNG_NO_READ_OPT_PLTE -#define PNG_READ_OPT_PLTE_SUPPORTED /* only affects support of the optional */ -#endif /* PLTE chunk in RGB and RGBA images */ -#endif /* PNG_READ_ANCILLARY_CHUNKS_SUPPORTED */ - -#ifdef PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED -#ifndef PNG_NO_WRITE_bKGD -#define PNG_WRITE_bKGD_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_cHRM -#define PNG_WRITE_cHRM_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_gAMA -#define PNG_WRITE_gAMA_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_hIST -#define PNG_WRITE_hIST_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_oFFs -#define PNG_WRITE_oFFs_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_pCAL -#define PNG_WRITE_pCAL_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_pHYs -#define PNG_WRITE_pHYs_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_sBIT -#define PNG_WRITE_sBIT_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_sRGB -#define PNG_WRITE_sRGB_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_tEXt -#define PNG_WRITE_tEXt_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_tIME -#define PNG_WRITE_tIME_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_tRNS -#define PNG_WRITE_tRNS_SUPPORTED -#endif -#ifndef PNG_NO_WRITE_zTXt -#define PNG_WRITE_zTXt_SUPPORTED -#endif -#endif /* PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED */ - -/* need the time information for reading tIME chunks */ -#if defined(PNG_READ_tIME_SUPPORTED) || defined(PNG_WRITE_tIME_SUPPORTED) -#include -#endif - -/* Some typedefs to get us started. These should be safe on most of the - * common platforms. The typedefs should be at least as large as the - * numbers suggest (a png_uint_32 must be at least 32 bits long), but they - * don't have to be exactly that size. Some compilers dislike passing - * unsigned shorts as function parameters, so you may be better off using - * unsigned int for png_uint_16. Likewise, for 64-bit systems, you may - * want to have unsigned int for png_uint_32 instead of unsigned long. - */ - -typedef unsigned long png_uint_32; -typedef long png_int_32; -typedef unsigned short png_uint_16; -typedef short png_int_16; -typedef unsigned char png_byte; - -/* This is usually size_t. It is typedef'ed just in case you need it to - change (I'm not sure if you will or not, so I thought I'd be safe) */ -typedef size_t png_size_t; - -/* The following is needed for medium model support. It cannot be in the - * PNG_INTERNAL section. Needs modification for other compilers besides - * MSC. Model independent support declares all arrays and pointers to be - * large using the far keyword. The zlib version used must also support - * model independent data. As of version zlib 1.0.4, the necessary changes - * have been made in zlib. The USE_FAR_KEYWORD define triggers other - * changes that are needed. (Tim Wegner) - */ - -/* Separate compiler dependencies (problem here is that zlib.h always - defines FAR. (SJT) */ -#ifdef __BORLANDC__ -#if defined(__LARGE__) || defined(__HUGE__) || defined(__COMPACT__) -#define LDATA 1 -#else -#define LDATA 0 -#endif - -#if !defined(__WIN32__) && !defined(__FLAT__) -#define PNG_MAX_MALLOC_64K -#if (LDATA != 1) -#ifndef FAR -#define FAR __far -#endif -#define USE_FAR_KEYWORD -#endif /* LDATA != 1 */ - -/* Possibly useful for moving data out of default segment. - * Uncomment it if you want. Could also define FARDATA as - * const if your compiler supports it. (SJT) -# define FARDATA FAR - */ -#endif /* __WIN32__, __FLAT__ */ - -#endif /* __BORLANDC__ */ - - -/* Suggest testing for specific compiler first before testing for - * FAR. The Watcom compiler defines both __MEDIUM__ and M_I86MM, - * making reliance oncertain keywords suspect. (SJT) - */ - -/* MSC Medium model */ -#if defined(FAR) -# if defined(M_I86MM) -# define USE_FAR_KEYWORD -# define FARDATA FAR -# include -# endif -#endif - -/* SJT: default case */ -#ifndef FAR -# define FAR -#endif - -/* At this point FAR is always defined */ -#ifndef FARDATA -#define FARDATA -#endif - -/* Add typedefs for pointers */ -typedef void FAR * png_voidp; -typedef png_byte FAR * png_bytep; -typedef png_uint_32 FAR * png_uint_32p; -typedef png_int_32 FAR * png_int_32p; -typedef png_uint_16 FAR * png_uint_16p; -typedef png_int_16 FAR * png_int_16p; -typedef PNG_CONST char FAR * png_const_charp; -typedef char FAR * png_charp; -typedef double FAR * png_doublep; - -/* Pointers to pointers; i.e. arrays */ -typedef png_byte FAR * FAR * png_bytepp; -typedef png_uint_32 FAR * FAR * png_uint_32pp; -typedef png_int_32 FAR * FAR * png_int_32pp; -typedef png_uint_16 FAR * FAR * png_uint_16pp; -typedef png_int_16 FAR * FAR * png_int_16pp; -typedef PNG_CONST char FAR * FAR * png_const_charpp; -typedef char FAR * FAR * png_charpp; -typedef double FAR * FAR * png_doublepp; - -/* Pointers to pointers to pointers; i.e. pointer to array */ -typedef char FAR * FAR * FAR * png_charppp; - -/* libpng typedefs for types in zlib. If zlib changes - * or another compression library is used, then change these. - * Eliminates need to change all the source files. - */ -typedef charf * png_zcharp; -typedef charf * FAR * png_zcharpp; -typedef z_stream FAR * png_zstreamp; - -/* allow for compilation as dll under MS Windows */ -#ifdef __WIN32DLL__ -#define PNG_EXPORT(type,symbol) __declspec(dllexport) type symbol -#endif - -/* allow for compilation as dll with BORLAND C++ 5.0 */ -#if defined(__BORLANDC__) && defined(_Windows) && defined(__DLL__) -# define PNG_EXPORT(type,symbol) type _export symbol -#endif - -/* allow for compilation as shared lib under BeOS */ -#ifdef __BEOSDLL__ -#define PNG_EXPORT(type,symbol) __declspec(export) type symbol -#endif - -#ifndef PNG_EXPORT -#define PNG_EXPORT(type,symbol) type symbol -#endif - - -/* User may want to use these so not in PNG_INTERNAL. Any library functions - * that are passed far data must be model independent. - */ - -#if defined(USE_FAR_KEYWORD) /* memory model independent fns */ -/* use this to make far-to-near assignments */ -# define CHECK 1 -# define NOCHECK 0 -# define CVT_PTR(ptr) (png_far_to_near(png_ptr,ptr,CHECK)) -# define CVT_PTR_NOCHECK(ptr) (png_far_to_near(png_ptr,ptr,NOCHECK)) -# define png_strcpy _fstrcpy -# define png_strlen _fstrlen -# define png_memcmp _fmemcmp /* SJT: added */ -# define png_memcpy _fmemcpy -# define png_memset _fmemset -#else /* use the usual functions */ -# define CVT_PTR(ptr) (ptr) -# define CVT_PTR_NOCHECK(ptr) (ptr) -# define png_strcpy strcpy -# define png_strlen strlen -# define png_memcmp memcmp /* SJT: added */ -# define png_memcpy memcpy -# define png_memset memset -#endif -/* End of memory model independent support */ - -/* Just a double check that someone hasn't tried to define something - * contradictory. - */ -#if (PNG_ZBUF_SIZE > 65536) && defined(PNG_MAX_MALLOC_64K) -#undef PNG_ZBUF_SIZE -#define PNG_ZBUF_SIZE 65536 -#endif - -#endif /* PNGCONF_H */ - diff --git a/src/png/pngerror.c b/src/png/pngerror.c deleted file mode 100644 index c591000d1e..0000000000 --- a/src/png/pngerror.c +++ /dev/null @@ -1,172 +0,0 @@ - -/* pngerror.c - stub functions for i/o and memory allocation - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file provides a location for all error handling. Users who - * need special error handling are expected to write replacement functions - * and use png_set_error_fn() to use those functions. See the instructions - * at each function. - */ - -#define PNG_INTERNAL -#include "png.h" - -static void png_default_error PNGARG((png_structp png_ptr, - png_const_charp message)); -static void png_default_warning PNGARG((png_structp png_ptr, - png_const_charp message)); - -/* This function is called whenever there is a fatal error. This function - * should not be changed. If there is a need to handle errors differently, - * you should supply a replacement error function and use png_set_error_fn() - * to replace the error function at run-time. - */ -void -png_error(png_structp png_ptr, png_const_charp message) -{ - if (png_ptr->error_fn != NULL) - (*(png_ptr->error_fn))(png_ptr, message); - - /* if the following returns or doesn't exist, use the default function, - which will not return */ - png_default_error(png_ptr, message); -} - -/* This function is called whenever there is a non-fatal error. This function - * should not be changed. If there is a need to handle warnings differently, - * you should supply a replacement warning function and use - * png_set_error_fn() to replace the warning function at run-time. - */ -void -png_warning(png_structp png_ptr, png_const_charp message) -{ - if (png_ptr->warning_fn != NULL) - (*(png_ptr->warning_fn))(png_ptr, message); - else - png_default_warning(png_ptr, message); -} - -/* These utilities are used internally to build an error message that relates - * to the current chunk. The chunk name comes from png_ptr->chunk_name, - * this is used to prefix the message. The message is limited in length - * to 63 bytes, the name characters are output as hex digits wrapped in [] - * if the character is invalid. - */ -#define isnonalpha(c) ((c) < 41 || (c) > 122 || ((c) > 90 && (c) < 97)) -static PNG_CONST char png_digit[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' -}; - -static void -png_format_buffer(png_structp png_ptr, png_charp buffer, png_const_charp message) -{ - int iout = 0, iin = 0; - - while (iin < 4) { - int c = png_ptr->chunk_name[iin++]; - if (isnonalpha(c)) { - buffer[iout++] = '['; - buffer[iout++] = png_digit[(c & 0xf0) >> 4]; - buffer[iout++] = png_digit[c & 0xf]; - buffer[iout++] = ']'; - } else { - buffer[iout++] = c; - } - } - - if (message == NULL) - buffer[iout] = 0; - else { - buffer[iout++] = ':'; - buffer[iout++] = ' '; - png_memcpy(buffer+iout, message, 64); - buffer[iout+63] = 0; - } -} - -void -png_chunk_error(png_structp png_ptr, png_const_charp message) -{ - char msg[16+64]; - png_format_buffer(png_ptr, msg, message); - png_error(png_ptr, msg); -} - -void -png_chunk_warning(png_structp png_ptr, png_const_charp message) -{ - char msg[16+64]; - png_format_buffer(png_ptr, msg, message); - png_warning(png_ptr, msg); -} - -/* This is the default error handling function. Note that replacements for - * this function MUST NOT RETURN, or the program will likely crash. This - * function is used by default, or if the program supplies NULL for the - * error function pointer in png_set_error_fn(). - */ -static void -png_default_error(png_structp png_ptr, png_const_charp message) -{ -#ifndef PNG_NO_CONSOLE_IO - fprintf(stderr, "libpng error: %s\n", message); -#endif - -#ifdef USE_FAR_KEYWORD - { - jmp_buf jmpbuf; - png_memcpy(jmpbuf,png_ptr->jmpbuf,sizeof(jmp_buf)); - longjmp(jmpbuf, 1); - } -#else - longjmp(png_ptr->jmpbuf, 1); -#endif -} - -/* This function is called when there is a warning, but the library thinks - * it can continue anyway. Replacement functions don't have to do anything - * here if you don't want them to. In the default configuration, png_ptr is - * not used, but it is passed in case it may be useful. - */ -static void -png_default_warning(png_structp png_ptr, png_const_charp message) -{ -#ifndef PNG_NO_CONSOLE_IO - fprintf(stderr, "libpng warning: %s\n", message); -#endif - if (png_ptr == NULL) - return; -} - -/* This function is called when the application wants to use another method - * of handling errors and warnings. Note that the error function MUST NOT - * return to the calling routine or serious problems will occur. The return - * method used in the default routine calls longjmp(png_ptr->jmpbuf, 1) - */ -void -png_set_error_fn(png_structp png_ptr, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warning_fn) -{ - png_ptr->error_ptr = error_ptr; - png_ptr->error_fn = error_fn; - png_ptr->warning_fn = warning_fn; -} - - -/* This function returns a pointer to the error_ptr associated with the user - * functions. The application should free any memory associated with this - * pointer before png_write_destroy and png_read_destroy are called. - */ -png_voidp -png_get_error_ptr(png_structp png_ptr) -{ - return ((png_voidp)png_ptr->error_ptr); -} - - - diff --git a/src/png/pngget.c b/src/png/pngget.c deleted file mode 100644 index 484a0117c8..0000000000 --- a/src/png/pngget.c +++ /dev/null @@ -1,650 +0,0 @@ - -/* pngget.c - retrieval of values from info struct - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -#define PNG_INTERNAL -#include "png.h" - -png_uint_32 -png_get_valid(png_structp png_ptr, png_infop info_ptr, png_uint_32 flag) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->valid & flag); - else - return(0); -} - -png_uint_32 -png_get_rowbytes(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->rowbytes); - else - return(0); -} - -#ifdef PNG_EASY_ACCESS_SUPPORTED -/* easy access to info, added in libpng-0.99 */ -png_uint_32 -png_get_image_width(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->width; - } - return (0); -} - -png_uint_32 -png_get_image_height(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->height; - } - return (0); -} - -png_byte -png_get_bit_depth(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->bit_depth; - } - return (0); -} - -png_byte -png_get_color_type(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->color_type; - } - return (0); -} - -png_byte -png_get_filter_type(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->filter_type; - } - return (0); -} - -png_byte -png_get_interlace_type(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->interlace_type; - } - return (0); -} - -png_byte -png_get_compression_type(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - { - return info_ptr->compression_type; - } - return (0); -} - -png_uint_32 -png_get_x_pixels_per_meter(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_x_pixels_per_meter"); - if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER) - return (0); - else return (info_ptr->x_pixels_per_unit); - } - else -#endif - return (0); -} - -png_uint_32 -png_get_y_pixels_per_meter(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_y_pixels_per_meter"); - if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER) - return (0); - else return (info_ptr->y_pixels_per_unit); - } - else -#endif - return (0); -} - -png_uint_32 -png_get_pixels_per_meter(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_pixels_per_meter"); - if(info_ptr->phys_unit_type != PNG_RESOLUTION_METER || - info_ptr->x_pixels_per_unit != info_ptr->y_pixels_per_unit) - return (0); - else return (info_ptr->x_pixels_per_unit); - } - else -#endif - return (0); -} - -float -png_get_pixel_aspect_ratio(png_structp png_ptr, png_infop info_ptr) - { -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_aspect_ratio"); - if (info_ptr->x_pixels_per_unit == 0) - return ((float)0.0); - else - return ((float)info_ptr->y_pixels_per_unit - /(float)info_ptr->x_pixels_per_unit); - } - else -#endif - return ((float)0.0); -} - -png_uint_32 -png_get_x_offset_microns(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns"); - if(info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER) - return (0); - else return (info_ptr->x_offset); - } - else -#endif - return (0); -} - -png_uint_32 -png_get_y_offset_microns(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns"); - if(info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER) - return (0); - else return (info_ptr->y_offset); - } - else -#endif - return (0); -} - -png_uint_32 -png_get_x_offset_pixels(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns"); - if(info_ptr->offset_unit_type != PNG_OFFSET_PIXEL) - return (0); - else return (info_ptr->x_offset); - } - else -#endif - return (0); -} - -png_uint_32 -png_get_y_offset_pixels(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)) - { - png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns"); - if(info_ptr->offset_unit_type != PNG_OFFSET_PIXEL) - return (0); - else return (info_ptr->y_offset); - } - else -#endif - return (0); -} - -#ifdef PNG_INCH_CONVERSIONS -png_uint_32 -png_get_pixels_per_inch(png_structp png_ptr, png_infop info_ptr) -{ - return ((png_uint_32)((float)png_get_pixels_per_meter(png_ptr, info_ptr) - *.03937 +.5) -} - -png_uint_32 -png_get_x_pixels_per_inch(png_structp png_ptr, png_infop info_ptr) -{ - return ((png_uint_32)((float)png_get_x_pixels_per_meter(png_ptr, info_ptr) - *.03937 +.5) -} - -png_uint_32 -png_get_y_pixels_per_inch(png_structp png_ptr, png_infop info_ptr) -{ - return ((png_uint_32)((float)png_get_y_pixels_per_meter(png_ptr, info_ptr) - *.03937 +.5) -} - -float -png_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr) -{ - return ((float)png_get_x_offset_microns(png_ptr, info_ptr) - *.03937/1000000. +.5) -} - -float -png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr) -{ - return ((float)png_get_y_offset_microns(png_ptr, info_ptr) - *.03937/1000000. +.5) -} - -#if defined(PNG_READ_pHYs_SUPPORTED) -png_uint_32 -png_get_pHYs_dpi(png_structp png_ptr, png_infop info_ptr, - png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type) -{ - png_uint_32 retval = 0; - - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_pHYs) - { - png_debug1(1, "in %s retrieval function\n", "pHYs"); - if (res_x != NULL) - { - *res_x = info_ptr->x_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - if (res_y != NULL) - { - *res_y = info_ptr->y_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - if (unit_type != NULL) - { - *unit_type = (int)info_ptr->phys_unit_type; - retval |= PNG_INFO_pHYs; - if(unit_type == 1) - { - if (res_x != NULL) *res_x = (png_uint_32)(*res_x * 39.37 + .50); - if (res_y != NULL) *res_y = (png_uint_32)(*res_y * 39.37 + .50); - } - } - } - return (retval); -} -#endif /* PNG_READ_pHYs_SUPPORTED */ -#endif /* PNG_INCH_CONVERSIONS */ - -/* png_get_channels really belongs in here, too, but it's been around longer */ - -#endif /* PNG_EASY_ACCESS_SUPPORTED */ - -png_byte -png_get_channels(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->channels); - else - return (0); -} - -png_bytep -png_get_signature(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr != NULL && info_ptr != NULL) - return(info_ptr->signature); - else - return (NULL); -} - -#if defined(PNG_READ_bKGD_SUPPORTED) -png_uint_32 -png_get_bKGD(png_structp png_ptr, png_infop info_ptr, - png_color_16p *background) -{ - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD) - && background != NULL) - { - png_debug1(1, "in %s retrieval function\n", "bKGD"); - *background = &(info_ptr->background); - return (PNG_INFO_bKGD); - } - return (0); -} -#endif - -#if defined(PNG_READ_cHRM_SUPPORTED) -png_uint_32 -png_get_cHRM(png_structp png_ptr, png_infop info_ptr, - double *white_x, double *white_y, double *red_x, double *red_y, - double *green_x, double *green_y, double *blue_x, double *blue_y) -{ - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM)) - { - png_debug1(1, "in %s retrieval function\n", "cHRM"); - if (white_x != NULL) - *white_x = (double)info_ptr->x_white; - if (white_y != NULL) - *white_y = (double)info_ptr->y_white; - if (red_x != NULL) - *red_x = (double)info_ptr->x_red; - if (red_y != NULL) - *red_y = (double)info_ptr->y_red; - if (green_x != NULL) - *green_x = (double)info_ptr->x_green; - if (green_y != NULL) - *green_y = (double)info_ptr->y_green; - if (blue_x != NULL) - *blue_x = (double)info_ptr->x_blue; - if (blue_y != NULL) - *blue_y = (double)info_ptr->y_blue; - return (PNG_INFO_cHRM); - } - return (0); -} -#endif - -#if defined(PNG_READ_gAMA_SUPPORTED) -png_uint_32 -png_get_gAMA(png_structp png_ptr, png_infop info_ptr, double *file_gamma) -{ - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA) - && file_gamma != NULL) - { - png_debug1(1, "in %s retrieval function\n", "gAMA"); - *file_gamma = (double)info_ptr->gamma; - return (PNG_INFO_gAMA); - } - return (0); -} -#endif - -#if defined(PNG_READ_sRGB_SUPPORTED) -png_uint_32 -png_get_sRGB(png_structp png_ptr, png_infop info_ptr, int *file_srgb_intent) -{ - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB) - && file_srgb_intent != NULL) - { - png_debug1(1, "in %s retrieval function\n", "sRGB"); - *file_srgb_intent = (int)info_ptr->srgb_intent; - return (PNG_INFO_sRGB); - } - return (0); -} -#endif - -#if defined(PNG_READ_hIST_SUPPORTED) -png_uint_32 -png_get_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p *hist) -{ - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST) - && hist != NULL) - { - png_debug1(1, "in %s retrieval function\n", "hIST"); - *hist = info_ptr->hist; - return (PNG_INFO_hIST); - } - return (0); -} -#endif - -png_uint_32 -png_get_IHDR(png_structp png_ptr, png_infop info_ptr, - png_uint_32 *width, png_uint_32 *height, int *bit_depth, - int *color_type, int *interlace_type, int *compression_type, - int *filter_type) - -{ - if (png_ptr != NULL && info_ptr != NULL && width != NULL && height != NULL && - bit_depth != NULL && color_type != NULL) - { - int pixel_depth, channels; - png_uint_32 rowbytes_per_pixel; - - png_debug1(1, "in %s retrieval function\n", "IHDR"); - *width = info_ptr->width; - *height = info_ptr->height; - *bit_depth = info_ptr->bit_depth; - *color_type = info_ptr->color_type; - if (compression_type != NULL) - *compression_type = info_ptr->compression_type; - if (filter_type != NULL) - *filter_type = info_ptr->filter_type; - if (interlace_type != NULL) - *interlace_type = info_ptr->interlace_type; - - /* check for potential overflow of rowbytes */ - if (*color_type == PNG_COLOR_TYPE_PALETTE) - channels = 1; - else if (*color_type & PNG_COLOR_MASK_COLOR) - channels = 3; - else - channels = 1; - if (*color_type & PNG_COLOR_MASK_ALPHA) - channels++; - pixel_depth = *bit_depth * channels; - rowbytes_per_pixel = (pixel_depth + 7) >> 3; - if ((*width > (png_uint_32)2147483647L/rowbytes_per_pixel)) - { - png_warning(png_ptr, - "Width too large for libpng to process image data."); - } - return (1); - } - return (0); -} - -#if defined(PNG_READ_oFFs_SUPPORTED) -png_uint_32 -png_get_oFFs(png_structp png_ptr, png_infop info_ptr, - png_uint_32 *offset_x, png_uint_32 *offset_y, int *unit_type) -{ - if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs) - && offset_x != NULL && offset_y != NULL && unit_type != NULL) - { - png_debug1(1, "in %s retrieval function\n", "oFFs"); - *offset_x = info_ptr->x_offset; - *offset_y = info_ptr->y_offset; - *unit_type = (int)info_ptr->offset_unit_type; - return (PNG_INFO_oFFs); - } - return (0); -} -#endif - -#if defined(PNG_READ_pCAL_SUPPORTED) -png_uint_32 -png_get_pCAL(png_structp png_ptr, png_infop info_ptr, - png_charp *purpose, png_int_32 *X0, png_int_32 *X1, int *type, int *nparams, - png_charp *units, png_charpp *params) -{ - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_pCAL && - purpose != NULL && X0 != NULL && X1 != NULL && type != NULL && - nparams != NULL && units != NULL && params != NULL) - { - png_debug1(1, "in %s retrieval function\n", "pCAL"); - *purpose = info_ptr->pcal_purpose; - *X0 = info_ptr->pcal_X0; - *X1 = info_ptr->pcal_X1; - *type = (int)info_ptr->pcal_type; - *nparams = (int)info_ptr->pcal_nparams; - *units = info_ptr->pcal_units; - *params = info_ptr->pcal_params; - return (PNG_INFO_pCAL); - } - return (0); -} -#endif - -#if defined(PNG_READ_pHYs_SUPPORTED) -png_uint_32 -png_get_pHYs(png_structp png_ptr, png_infop info_ptr, - png_uint_32 *res_x, png_uint_32 *res_y, int *unit_type) -{ - png_uint_32 retval = 0; - - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_pHYs) - { - png_debug1(1, "in %s retrieval function\n", "pHYs"); - if (res_x != NULL) - { - *res_x = info_ptr->x_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - if (res_y != NULL) - { - *res_y = info_ptr->y_pixels_per_unit; - retval |= PNG_INFO_pHYs; - } - if (unit_type != NULL) - { - *unit_type = (int)info_ptr->phys_unit_type; - retval |= PNG_INFO_pHYs; - } - } - return (retval); -} -#endif - -png_uint_32 -png_get_PLTE(png_structp png_ptr, png_infop info_ptr, png_colorp *palette, - int *num_palette) -{ - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_PLTE && - palette != NULL) - { - png_debug1(1, "in %s retrieval function\n", "PLTE"); - *palette = info_ptr->palette; - *num_palette = info_ptr->num_palette; - png_debug1(3, "num_palette = %d\n", *num_palette); - return (PNG_INFO_PLTE); - } - return (0); -} - -#if defined(PNG_READ_sBIT_SUPPORTED) -png_uint_32 -png_get_sBIT(png_structp png_ptr, png_infop info_ptr, png_color_8p *sig_bit) -{ - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_sBIT && - sig_bit != NULL) - { - png_debug1(1, "in %s retrieval function\n", "sBIT"); - *sig_bit = &(info_ptr->sig_bit); - return (PNG_INFO_sBIT); - } - return (0); -} -#endif - -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_READ_zTXt_SUPPORTED) -png_uint_32 -png_get_text(png_structp png_ptr, png_infop info_ptr, png_textp *text_ptr, - int *num_text) -{ - if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0) - { - png_debug1(1, "in %s retrieval function\n", - (png_ptr->chunk_name[0] == '\0' ? "text" - : (png_const_charp)png_ptr->chunk_name)); - if (text_ptr != NULL) - *text_ptr = info_ptr->text; - if (num_text != NULL) - *num_text = info_ptr->num_text; - return ((png_uint_32)info_ptr->num_text); - } - return(0); -} -#endif - -#if defined(PNG_READ_tIME_SUPPORTED) -png_uint_32 -png_get_tIME(png_structp png_ptr, png_infop info_ptr, png_timep *mod_time) -{ - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_tIME && - mod_time != NULL) - { - png_debug1(1, "in %s retrieval function\n", "tIME"); - *mod_time = &(info_ptr->mod_time); - return (PNG_INFO_tIME); - } - return (0); -} -#endif - -#if defined(PNG_READ_tRNS_SUPPORTED) -png_uint_32 -png_get_tRNS(png_structp png_ptr, png_infop info_ptr, - png_bytep *trans, int *num_trans, png_color_16p *trans_values) -{ - png_uint_32 retval = 0; - if (png_ptr != NULL && info_ptr != NULL && info_ptr->valid & PNG_INFO_tRNS) - { - png_debug1(1, "in %s retrieval function\n", "tRNS"); - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (trans != NULL) - { - *trans = info_ptr->trans; - retval |= PNG_INFO_tRNS; - } - if (trans_values != NULL) - *trans_values = &(info_ptr->trans_values); - } - else /* if (info_ptr->color_type != PNG_COLOR_TYPE_PALETTE) */ - { - if (trans_values != NULL) - { - *trans_values = &(info_ptr->trans_values); - retval |= PNG_INFO_tRNS; - } - if(trans != NULL) - *trans = NULL; - } - if(num_trans != NULL) - { - *num_trans = info_ptr->num_trans; - retval |= PNG_INFO_tRNS; - } - } - return (retval); -} -#endif - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) -png_byte -png_get_rgb_to_gray_status (png_structp png_ptr) -{ - return png_ptr->rgb_to_gray_status; -} -#endif diff --git a/src/png/pngmem.c b/src/png/pngmem.c deleted file mode 100644 index 06c4c1b7ea..0000000000 --- a/src/png/pngmem.c +++ /dev/null @@ -1,511 +0,0 @@ - -/* pngmem.c - stub functions for memory allocation - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file provides a location for all memory allocation. Users who - * need special memory handling are expected to supply replacement - * functions for png_malloc() and png_free(), and to use - * png_create_read_struct_2() and png_create_write_struct_2() to - * identify the replacement functions. - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Borland DOS special memory handler */ -#if defined(__TURBOC__) && !defined(_Windows) && !defined(__FLAT__) -/* if you change this, be sure to change the one in png.h also */ - -/* Allocate memory for a png_struct. The malloc and memset can be replaced - by a single call to calloc() if this is thought to improve performance. */ -png_voidp -png_create_struct(int type) -{ -#ifdef PNG_USER_MEM_SUPPORTED - return (png_create_struct_2(type, NULL)); -} - -/* Alternate version of png_create_struct, for use with user-defined malloc. */ -png_voidp -png_create_struct_2(int type, png_malloc_ptr malloc_fn) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - png_size_t size; - png_voidp struct_ptr; - - if (type == PNG_STRUCT_INFO) - size = sizeof(png_info); - else if (type == PNG_STRUCT_PNG) - size = sizeof(png_struct); - else - return ((png_voidp)NULL); - -#ifdef PNG_USER_MEM_SUPPORTED - if(malloc_fn != NULL) - { - if ((struct_ptr = (*(malloc_fn))(NULL, size)) != NULL) - png_memset(struct_ptr, 0, size); - return (struct_ptr); - } -#endif /* PNG_USER_MEM_SUPPORTED */ - if ((struct_ptr = (png_voidp)farmalloc(size)) != NULL) - { - png_memset(struct_ptr, 0, size); - } - return (struct_ptr); -} - - -/* Free memory allocated by a png_create_struct() call */ -void -png_destroy_struct(png_voidp struct_ptr) -{ -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2(struct_ptr, (png_free_ptr)NULL); -} - -/* Free memory allocated by a png_create_struct() call */ -void -png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn) -{ -#endif - if (struct_ptr != NULL) - { -#ifdef PNG_USER_MEM_SUPPORTED - if(free_fn != NULL) - { - png_struct dummy_struct; - png_structp png_ptr = &dummy_struct; - (*(free_fn))(png_ptr, struct_ptr); - struct_ptr = NULL; - return; - } -#endif /* PNG_USER_MEM_SUPPORTED */ - farfree (struct_ptr); - struct_ptr = NULL; - } -} - -/* Allocate memory. For reasonable files, size should never exceed - * 64K. However, zlib may allocate more then 64K if you don't tell - * it not to. See zconf.h and png.h for more information. zlib does - * need to allocate exactly 64K, so whatever you call here must - * have the ability to do that. - * - * Borland seems to have a problem in DOS mode for exactly 64K. - * It gives you a segment with an offset of 8 (perhaps to store its - * memory stuff). zlib doesn't like this at all, so we have to - * detect and deal with it. This code should not be needed in - * Windows or OS/2 modes, and only in 16 bit mode. This code has - * been updated by Alexander Lehmann for version 0.89 to waste less - * memory. - * - * Note that we can't use png_size_t for the "size" declaration, - * since on some systems a png_size_t is a 16-bit quantity, and as a - * result, we would be truncating potentially larger memory requests - * (which should cause a fatal error) and introducing major problems. - */ -png_voidp -png_malloc(png_structp png_ptr, png_uint_32 size) -{ -#ifndef PNG_USER_MEM_SUPPORTED - png_voidp ret; -#endif - if (png_ptr == NULL || size == 0) - return ((png_voidp)NULL); - -#ifdef PNG_USER_MEM_SUPPORTED - if(png_ptr->malloc_fn != NULL) - return ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size)); - else - return png_malloc_default(png_ptr, size); -} - -png_voidp -png_malloc_default(png_structp png_ptr, png_uint_32 size) -{ - png_voidp ret; -#endif /* PNG_USER_MEM_SUPPORTED */ - -#ifdef PNG_MAX_MALLOC_64K - if (size > (png_uint_32)65536L) - png_error(png_ptr, "Cannot Allocate > 64K"); -#endif - - if (size == (png_uint_32)65536L) - { - if (png_ptr->offset_table == NULL) - { - /* try to see if we need to do any of this fancy stuff */ - ret = farmalloc(size); - if (ret == NULL || ((png_size_t)ret & 0xffff)) - { - int num_blocks; - png_uint_32 total_size; - png_bytep table; - int i; - png_byte huge * hptr; - - if (ret != NULL) - { - farfree(ret); - ret = NULL; - } - - num_blocks = (int)(1 << (png_ptr->zlib_window_bits - 14)); - if (num_blocks < 1) - num_blocks = 1; - if (png_ptr->zlib_mem_level >= 7) - num_blocks += (int)(1 << (png_ptr->zlib_mem_level - 7)); - else - num_blocks++; - - total_size = ((png_uint_32)65536L) * (png_uint_32)num_blocks+16; - - table = farmalloc(total_size); - - if (table == NULL) - { - png_error(png_ptr, "Out Of Memory."); /* Note "O" and "M" */ - } - - if ((png_size_t)table & 0xfff0) - { - png_error(png_ptr, "Farmalloc didn't return normalized pointer"); - } - - png_ptr->offset_table = table; - png_ptr->offset_table_ptr = farmalloc(num_blocks * - sizeof (png_bytep)); - - if (png_ptr->offset_table_ptr == NULL) - { - png_error(png_ptr, "Out Of memory."); - } - - hptr = (png_byte huge *)table; - if ((png_size_t)hptr & 0xf) - { - hptr = (png_byte huge *)((long)(hptr) & 0xfffffff0L); - hptr += 16L; - } - for (i = 0; i < num_blocks; i++) - { - png_ptr->offset_table_ptr[i] = (png_bytep)hptr; - hptr += (png_uint_32)65536L; - } - - png_ptr->offset_table_number = num_blocks; - png_ptr->offset_table_count = 0; - png_ptr->offset_table_count_free = 0; - } - } - - if (png_ptr->offset_table_count >= png_ptr->offset_table_number) - png_error(png_ptr, "Out of Memory."); - - ret = png_ptr->offset_table_ptr[png_ptr->offset_table_count++]; - } - else - ret = farmalloc(size); - - if (ret == NULL) - { - png_error(png_ptr, "Out of memory."); /* Note "o" and "m" */ - } - - return (ret); -} - -/* free a pointer allocated by png_malloc(). In the default - configuration, png_ptr is not used, but is passed in case it - is needed. If ptr is NULL, return without taking any action. */ -void -png_free(png_structp png_ptr, png_voidp ptr) -{ - if (png_ptr == NULL || ptr == NULL) - return; - -#ifdef PNG_USER_MEM_SUPPORTED - if (png_ptr->free_fn != NULL) - { - (*(png_ptr->free_fn))(png_ptr, ptr); - ptr = NULL; - return; - } - else png_free_default(png_ptr, ptr); -} - -void -png_free_default(png_structp png_ptr, png_voidp ptr) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - - if (png_ptr->offset_table != NULL) - { - int i; - - for (i = 0; i < png_ptr->offset_table_count; i++) - { - if (ptr == png_ptr->offset_table_ptr[i]) - { - ptr = NULL; - png_ptr->offset_table_count_free++; - break; - } - } - if (png_ptr->offset_table_count_free == png_ptr->offset_table_count) - { - farfree(png_ptr->offset_table); - farfree(png_ptr->offset_table_ptr); - png_ptr->offset_table = NULL; - png_ptr->offset_table_ptr = NULL; - } - } - - if (ptr != NULL) - { - farfree(ptr); - ptr = NULL; - } -} - -#else /* Not the Borland DOS special memory handler */ - -/* Allocate memory for a png_struct or a png_info. The malloc and - memset can be replaced by a single call to calloc() if this is thought - to improve performance noticably.*/ -png_voidp -png_create_struct(int type) -{ -#ifdef PNG_USER_MEM_SUPPORTED - return (png_create_struct_2(type, NULL)); -} - -/* Allocate memory for a png_struct or a png_info. The malloc and - memset can be replaced by a single call to calloc() if this is thought - to improve performance noticably.*/ -png_voidp -png_create_struct_2(int type, png_malloc_ptr malloc_fn) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - png_size_t size; - png_voidp struct_ptr; - - if (type == PNG_STRUCT_INFO) - size = sizeof(png_info); - else if (type == PNG_STRUCT_PNG) - size = sizeof(png_struct); - else - return ((png_voidp)NULL); - -#ifdef PNG_USER_MEM_SUPPORTED - if(malloc_fn != NULL) - { - if ((struct_ptr = (*(malloc_fn))(NULL, size)) != NULL) - png_memset(struct_ptr, 0, size); - return (struct_ptr); - } -#endif /* PNG_USER_MEM_SUPPORTED */ - -#if defined(__TURBOC__) && !defined(__FLAT__) - if ((struct_ptr = (png_voidp)farmalloc(size)) != NULL) -#else -# if defined(_MSC_VER) && defined(MAXSEG_64K) - if ((struct_ptr = (png_voidp)halloc(size,1)) != NULL) -# else - if ((struct_ptr = (png_voidp)malloc(size)) != NULL) -# endif -#endif - { - png_memset(struct_ptr, 0, size); - } - - return (struct_ptr); -} - - -/* Free memory allocated by a png_create_struct() call */ -void -png_destroy_struct(png_voidp struct_ptr) -{ -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2(struct_ptr, (png_free_ptr)NULL); -} - -/* Free memory allocated by a png_create_struct() call */ -void -png_destroy_struct_2(png_voidp struct_ptr, png_free_ptr free_fn) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - if (struct_ptr != NULL) - { -#ifdef PNG_USER_MEM_SUPPORTED - if(free_fn != NULL) - { - png_struct dummy_struct; - png_structp png_ptr = &dummy_struct; - (*(free_fn))(png_ptr, struct_ptr); - struct_ptr = NULL; - return; - } -#endif /* PNG_USER_MEM_SUPPORTED */ -#if defined(__TURBOC__) && !defined(__FLAT__) - farfree(struct_ptr); - struct_ptr = NULL; -#else -# if defined(_MSC_VER) && defined(MAXSEG_64K) - hfree(struct_ptr); - struct_ptr = NULL; -# else - free(struct_ptr); - struct_ptr = NULL; -# endif -#endif - } -} - - -/* Allocate memory. For reasonable files, size should never exceed - 64K. However, zlib may allocate more then 64K if you don't tell - it not to. See zconf.h and png.h for more information. zlib does - need to allocate exactly 64K, so whatever you call here must - have the ability to do that. */ - -png_voidp -png_malloc(png_structp png_ptr, png_uint_32 size) -{ -#ifndef PNG_USER_MEM_SUPPORTED - png_voidp ret; -#endif - if (png_ptr == NULL || size == 0) - return ((png_voidp)NULL); - -#ifdef PNG_USER_MEM_SUPPORTED - if(png_ptr->malloc_fn != NULL) - return ((png_voidp)(*(png_ptr->malloc_fn))(png_ptr, size)); - else - return (png_malloc_default(png_ptr, size)); -} -png_voidp -png_malloc_default(png_structp png_ptr, png_uint_32 size) -{ - png_voidp ret; -#endif /* PNG_USER_MEM_SUPPORTED */ - -#ifdef PNG_MAX_MALLOC_64K - if (size > (png_uint_32)65536L) - png_error(png_ptr, "Cannot Allocate > 64K"); -#endif - -#if defined(__TURBOC__) && !defined(__FLAT__) - ret = farmalloc(size); -#else -# if defined(_MSC_VER) && defined(MAXSEG_64K) - ret = halloc(size, 1); -# else - ret = malloc((size_t)size); -# endif -#endif - - if (ret == NULL) - { - png_error(png_ptr, "Out of Memory"); - } - - return (ret); -} - -/* Free a pointer allocated by png_malloc(). If ptr is NULL, return - without taking any action. */ -void -png_free(png_structp png_ptr, png_voidp ptr) -{ - if (png_ptr == NULL || ptr == NULL) - return; - -#ifdef PNG_USER_MEM_SUPPORTED - if (png_ptr->free_fn != NULL) - { - (*(png_ptr->free_fn))(png_ptr, ptr); - ptr = NULL; - return; - } - else png_free_default(png_ptr, ptr); -} -void -png_free_default(png_structp png_ptr, png_voidp ptr) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - -#if defined(__TURBOC__) && !defined(__FLAT__) - farfree(ptr); - ptr = NULL; -#else -# if defined(_MSC_VER) && defined(MAXSEG_64K) - hfree(ptr); - ptr = NULL; -# else - free(ptr); - ptr = NULL; -# endif -#endif -} - -#endif /* Not Borland DOS special memory handler */ - -png_voidp -png_memcpy_check (png_structp png_ptr, png_voidp s1, png_voidp s2, - png_uint_32 length) -{ - png_size_t size; - - size = (png_size_t)length; - if ((png_uint_32)size != length) - png_error(png_ptr,"Overflow in png_memcpy_check."); - - return(png_memcpy (s1, s2, size)); -} - -png_voidp -png_memset_check (png_structp png_ptr, png_voidp s1, int value, - png_uint_32 length) -{ - png_size_t size; - - size = (png_size_t)length; - if ((png_uint_32)size != length) - png_error(png_ptr,"Overflow in png_memset_check."); - - return (png_memset (s1, value, size)); - -} - -#ifdef PNG_USER_MEM_SUPPORTED -/* This function is called when the application wants to use another method - * of allocating and freeing memory. - */ -void -png_set_mem_fn(png_structp png_ptr, png_voidp mem_ptr, png_malloc_ptr - malloc_fn, png_free_ptr free_fn) -{ - png_ptr->mem_ptr = mem_ptr; - png_ptr->malloc_fn = malloc_fn; - png_ptr->free_fn = free_fn; -} - -/* This function returns a pointer to the mem_ptr associated with the user - * functions. The application should free any memory associated with this - * pointer before png_write_destroy and png_read_destroy are called. - */ -png_voidp -png_get_mem_ptr(png_structp png_ptr) -{ - return ((png_voidp)png_ptr->mem_ptr); -} -#endif /* PNG_USER_MEM_SUPPORTED */ diff --git a/src/png/pngpread.c b/src/png/pngpread.c deleted file mode 100644 index b44651801d..0000000000 --- a/src/png/pngpread.c +++ /dev/null @@ -1,1141 +0,0 @@ - -/* pngpread.c - read a png file in push mode - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -#define PNG_INTERNAL -#include "png.h" - -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - -void -png_process_data(png_structp png_ptr, png_infop info_ptr, - png_bytep buffer, png_size_t buffer_size) -{ - png_push_restore_buffer(png_ptr, buffer, buffer_size); - - while (png_ptr->buffer_size) - { - png_process_some_data(png_ptr, info_ptr); - } -} - -/* What we do with the incoming data depends on what we were previously - * doing before we ran out of data... - */ -void -png_process_some_data(png_structp png_ptr, png_infop info_ptr) -{ - switch (png_ptr->process_mode) - { - case PNG_READ_SIG_MODE: - { - png_push_read_sig(png_ptr, info_ptr); - break; - } - case PNG_READ_CHUNK_MODE: - { - png_push_read_chunk(png_ptr, info_ptr); - break; - } - case PNG_READ_IDAT_MODE: - { - png_push_read_IDAT(png_ptr); - break; - } -#if defined(PNG_READ_tEXt_SUPPORTED) - case PNG_READ_tEXt_MODE: - { - png_push_read_tEXt(png_ptr, info_ptr); - break; - } -#endif -#if defined(PNG_READ_zTXt_SUPPORTED) - case PNG_READ_zTXt_MODE: - { - png_push_read_zTXt(png_ptr, info_ptr); - break; - } -#endif - case PNG_SKIP_MODE: - { - png_push_crc_finish(png_ptr); - break; - } - default: - { - png_ptr->buffer_size = 0; - break; - } - } -} - -/* Read any remaining signature bytes from the stream and compare them with - * the correct PNG signature. It is possible that this routine is called - * with bytes already read from the signature, either because they have been - * checked by the calling application, or because of multiple calls to this - * routine. - */ -void -png_push_read_sig(png_structp png_ptr, png_infop info_ptr) -{ - png_size_t num_checked = png_ptr->sig_bytes, - num_to_check = 8 - num_checked; - - if (png_ptr->buffer_size < num_to_check) - { - num_to_check = png_ptr->buffer_size; - } - - png_push_fill_buffer(png_ptr, &(info_ptr->signature[num_checked]), - num_to_check); - png_ptr->sig_bytes += num_to_check; - - if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check)) - { - if (num_checked < 4 && - png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4)) - png_error(png_ptr, "Not a PNG file"); - else - png_error(png_ptr, "PNG file corrupted by ASCII conversion"); - } - else - { - if (png_ptr->sig_bytes >= 8) - { - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - } - } -} - -void -png_push_read_chunk(png_structp png_ptr, png_infop info_ptr) -{ - /* First we make sure we have enough data for the 4 byte chunk name - * and the 4 byte chunk length before proceeding with decoding the - * chunk data. To fully decode each of these chunks, we also make - * sure we have enough data in the buffer for the 4 byte CRC at the - * end of every chunk (except IDAT, which is handled separately). - */ - if (!(png_ptr->flags & PNG_FLAG_HAVE_CHUNK_HEADER)) - { - png_byte chunk_length[4]; - - if (png_ptr->buffer_size < 8) - { - png_push_save_buffer(png_ptr); - return; - } - - png_push_fill_buffer(png_ptr, chunk_length, 4); - png_ptr->push_length = png_get_uint_32(chunk_length); - png_reset_crc(png_ptr); - png_crc_read(png_ptr, png_ptr->chunk_name, 4); - png_ptr->flags |= PNG_FLAG_HAVE_CHUNK_HEADER; - } - - if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_IHDR(png_ptr, info_ptr, png_ptr->push_length); - } - else if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_PLTE(png_ptr, info_ptr, png_ptr->push_length); - } - else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - { - /* If we reach an IDAT chunk, this means we have read all of the - * header chunks, and we can start reading the image (or if this - * is called after the image has been read - we have an error). - */ - if (png_ptr->mode & PNG_HAVE_IDAT) - { - if (png_ptr->push_length == 0) - return; - - if (png_ptr->mode & PNG_AFTER_IDAT) - png_error(png_ptr, "Too many IDAT's found"); - } - - png_ptr->idat_size = png_ptr->push_length; - png_ptr->mode |= PNG_HAVE_IDAT; - png_ptr->process_mode = PNG_READ_IDAT_MODE; - png_push_have_info(png_ptr, info_ptr); - png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes; - png_ptr->zstream.next_out = png_ptr->row_buf; - return; - } - else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_IEND(png_ptr, info_ptr, png_ptr->push_length); - png_ptr->process_mode = PNG_READ_DONE_MODE; - png_push_have_end(png_ptr, info_ptr); - } -#if defined(PNG_READ_gAMA_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_gAMA, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_gAMA(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_sBIT_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_sBIT, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_sBIT(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_cHRM_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_cHRM, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_cHRM(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_sRGB_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_sRGB, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_sRGB(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_tRNS_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tRNS, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_tRNS(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_bKGD_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_bKGD, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_bKGD(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_hIST_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_hIST, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_hIST(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_pHYs_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_pHYs, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_pHYs(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_oFFs_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_oFFs, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_oFFs(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_pCAL_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_pCAL, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_pCAL(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_tIME_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tIME, 4)) - { - if (png_ptr->push_length + 4 > png_ptr->buffer_size) - { - png_push_save_buffer(png_ptr); - return; - } - - png_handle_tIME(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_tEXt_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tEXt, 4)) - { - png_push_handle_tEXt(png_ptr, info_ptr, png_ptr->push_length); - } -#endif -#if defined(PNG_READ_zTXt_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_zTXt, 4)) - { - png_push_handle_zTXt(png_ptr, info_ptr, png_ptr->push_length); - } -#endif - else - { - png_push_handle_unknown(png_ptr, info_ptr, png_ptr->push_length); - } - - png_ptr->flags &= ~PNG_FLAG_HAVE_CHUNK_HEADER; -} - -void -png_push_crc_skip(png_structp png_ptr, png_uint_32 skip) -{ - png_ptr->process_mode = PNG_SKIP_MODE; - png_ptr->skip_length = skip; -} - -void -png_push_crc_finish(png_structp png_ptr) -{ - if (png_ptr->skip_length && png_ptr->save_buffer_size) - { - png_size_t save_size; - - if (png_ptr->skip_length < (png_uint_32)png_ptr->save_buffer_size) - save_size = (png_size_t)png_ptr->skip_length; - else - save_size = png_ptr->save_buffer_size; - - png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size); - - png_ptr->skip_length -= save_size; - png_ptr->buffer_size -= save_size; - png_ptr->save_buffer_size -= save_size; - png_ptr->save_buffer_ptr += save_size; - } - if (png_ptr->skip_length && png_ptr->current_buffer_size) - { - png_size_t save_size; - - if (png_ptr->skip_length < (png_uint_32)png_ptr->current_buffer_size) - save_size = (png_size_t)png_ptr->skip_length; - else - save_size = png_ptr->current_buffer_size; - - png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size); - - png_ptr->skip_length -= save_size; - png_ptr->buffer_size -= save_size; - png_ptr->current_buffer_size -= save_size; - png_ptr->current_buffer_ptr += save_size; - } - if (!png_ptr->skip_length) - { - if (png_ptr->buffer_size < 4) - { - png_push_save_buffer(png_ptr); - return; - } - - png_crc_finish(png_ptr, 0); - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - } -} - -void -png_push_fill_buffer(png_structp png_ptr, png_bytep buffer, png_size_t length) -{ - png_bytep ptr; - - ptr = buffer; - if (png_ptr->save_buffer_size) - { - png_size_t save_size; - - if (length < png_ptr->save_buffer_size) - save_size = length; - else - save_size = png_ptr->save_buffer_size; - - png_memcpy(ptr, png_ptr->save_buffer_ptr, save_size); - length -= save_size; - ptr += save_size; - png_ptr->buffer_size -= save_size; - png_ptr->save_buffer_size -= save_size; - png_ptr->save_buffer_ptr += save_size; - } - if (length && png_ptr->current_buffer_size) - { - png_size_t save_size; - - if (length < png_ptr->current_buffer_size) - save_size = length; - else - save_size = png_ptr->current_buffer_size; - - png_memcpy(ptr, png_ptr->current_buffer_ptr, save_size); - png_ptr->buffer_size -= save_size; - png_ptr->current_buffer_size -= save_size; - png_ptr->current_buffer_ptr += save_size; - } -} - -void -png_push_save_buffer(png_structp png_ptr) -{ - if (png_ptr->save_buffer_size) - { - if (png_ptr->save_buffer_ptr != png_ptr->save_buffer) - { - png_size_t i,istop; - png_bytep sp; - png_bytep dp; - - istop = png_ptr->save_buffer_size; - for (i = 0, sp = png_ptr->save_buffer_ptr, dp = png_ptr->save_buffer; - i < istop; i++, sp++, dp++) - { - *dp = *sp; - } - } - } - if (png_ptr->save_buffer_size + png_ptr->current_buffer_size > - png_ptr->save_buffer_max) - { - png_size_t new_max; - png_bytep old_buffer; - - new_max = png_ptr->save_buffer_size + png_ptr->current_buffer_size + 256; - old_buffer = png_ptr->save_buffer; - png_ptr->save_buffer = (png_bytep)png_malloc(png_ptr, - (png_uint_32)new_max); - png_memcpy(png_ptr->save_buffer, old_buffer, png_ptr->save_buffer_size); - png_free(png_ptr, old_buffer); - png_ptr->save_buffer_max = new_max; - } - if (png_ptr->current_buffer_size) - { - png_memcpy(png_ptr->save_buffer + png_ptr->save_buffer_size, - png_ptr->current_buffer_ptr, png_ptr->current_buffer_size); - png_ptr->save_buffer_size += png_ptr->current_buffer_size; - png_ptr->current_buffer_size = 0; - } - png_ptr->save_buffer_ptr = png_ptr->save_buffer; - png_ptr->buffer_size = 0; -} - -void -png_push_restore_buffer(png_structp png_ptr, png_bytep buffer, - png_size_t buffer_length) -{ - png_ptr->current_buffer = buffer; - png_ptr->current_buffer_size = buffer_length; - png_ptr->buffer_size = buffer_length + png_ptr->save_buffer_size; - png_ptr->current_buffer_ptr = png_ptr->current_buffer; -} - -void -png_push_read_IDAT(png_structp png_ptr) -{ - if (!(png_ptr->flags & PNG_FLAG_HAVE_CHUNK_HEADER)) - { - png_byte chunk_length[4]; - - if (png_ptr->buffer_size < 8) - { - png_push_save_buffer(png_ptr); - return; - } - - png_push_fill_buffer(png_ptr, chunk_length, 4); - png_ptr->push_length = png_get_uint_32(chunk_length); - - png_reset_crc(png_ptr); - png_crc_read(png_ptr, png_ptr->chunk_name, 4); - png_ptr->flags |= PNG_FLAG_HAVE_CHUNK_HEADER; - - if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - { - png_ptr->process_mode = PNG_READ_CHUNK_MODE; - if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED)) - png_error(png_ptr, "Not enough compressed data"); - return; - } - - png_ptr->idat_size = png_ptr->push_length; - } - if (png_ptr->idat_size && png_ptr->save_buffer_size) - { - png_size_t save_size; - - if (png_ptr->idat_size < (png_uint_32)png_ptr->save_buffer_size) - { - save_size = (png_size_t)png_ptr->idat_size; - /* check for overflow */ - if((png_uint_32)save_size != png_ptr->idat_size) - png_error(png_ptr, "save_size overflowed in pngpread"); - } - else - save_size = png_ptr->save_buffer_size; - - png_calculate_crc(png_ptr, png_ptr->save_buffer_ptr, save_size); - png_process_IDAT_data(png_ptr, png_ptr->save_buffer_ptr, save_size); - - png_ptr->idat_size -= save_size; - png_ptr->buffer_size -= save_size; - png_ptr->save_buffer_size -= save_size; - png_ptr->save_buffer_ptr += save_size; - } - if (png_ptr->idat_size && png_ptr->current_buffer_size) - { - png_size_t save_size; - - if (png_ptr->idat_size < (png_uint_32)png_ptr->current_buffer_size) - { - save_size = (png_size_t)png_ptr->idat_size; - /* check for overflow */ - if((png_uint_32)save_size != png_ptr->idat_size) - png_error(png_ptr, "save_size overflowed in pngpread"); - } - else - save_size = png_ptr->current_buffer_size; - - png_calculate_crc(png_ptr, png_ptr->current_buffer_ptr, save_size); - png_process_IDAT_data(png_ptr, png_ptr->current_buffer_ptr, save_size); - - png_ptr->idat_size -= save_size; - png_ptr->buffer_size -= save_size; - png_ptr->current_buffer_size -= save_size; - png_ptr->current_buffer_ptr += save_size; - } - if (!png_ptr->idat_size) - { - if (png_ptr->buffer_size < 4) - { - png_push_save_buffer(png_ptr); - return; - } - - png_crc_finish(png_ptr, 0); - png_ptr->flags &= ~PNG_FLAG_HAVE_CHUNK_HEADER; - } -} - -void -png_process_IDAT_data(png_structp png_ptr, png_bytep buffer, - png_size_t buffer_length) -{ - int ret; - - if ((png_ptr->flags & PNG_FLAG_ZLIB_FINISHED) && buffer_length) - png_error(png_ptr, "Extra compression data"); - - png_ptr->zstream.next_in = buffer; - png_ptr->zstream.avail_in = (uInt)buffer_length; - for(;;) - { - ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); - if (ret == Z_STREAM_END) - { - if (png_ptr->zstream.avail_in) - png_error(png_ptr, "Extra compressed data"); - if (!(png_ptr->zstream.avail_out)) - { - png_push_process_row(png_ptr); - } - - png_ptr->mode |= PNG_AFTER_IDAT; - png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED; - break; - } - else if (ret == Z_BUF_ERROR) - break; - else if (ret != Z_OK) - png_error(png_ptr, "Decompression Error"); - if (!(png_ptr->zstream.avail_out)) - { - png_push_process_row(png_ptr); - png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes; - png_ptr->zstream.next_out = png_ptr->row_buf; - } - else - break; - } -} - -void -png_push_process_row(png_structp png_ptr) -{ - png_ptr->row_info.color_type = png_ptr->color_type; - png_ptr->row_info.width = png_ptr->iwidth; - png_ptr->row_info.channels = png_ptr->channels; - png_ptr->row_info.bit_depth = png_ptr->bit_depth; - png_ptr->row_info.pixel_depth = png_ptr->pixel_depth; - - png_ptr->row_info.rowbytes = ((png_ptr->row_info.width * - (png_uint_32)png_ptr->row_info.pixel_depth + 7) >> 3); - - png_read_filter_row(png_ptr, &(png_ptr->row_info), - png_ptr->row_buf + 1, png_ptr->prev_row + 1, - (int)(png_ptr->row_buf[0])); - - png_memcpy_check(png_ptr, png_ptr->prev_row, png_ptr->row_buf, - png_ptr->rowbytes + 1); - - if (png_ptr->transformations) - png_do_read_transformations(png_ptr); - -#if defined(PNG_READ_INTERLACING_SUPPORTED) - /* blow up interlaced rows to full size */ - if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE)) - { - if (png_ptr->pass < 6) - png_do_read_interlace(&(png_ptr->row_info), - png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations); - - switch (png_ptr->pass) - { - case 0: - { - int i; - for (i = 0; i < 8 && png_ptr->pass == 0; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - break; - } - case 1: - { - int i; - for (i = 0; i < 8 && png_ptr->pass == 1; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - if (png_ptr->pass == 2) - { - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - break; - } - case 2: - { - int i; - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - for (i = 0; i < 4 && png_ptr->pass == 2; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - break; - } - case 3: - { - int i; - for (i = 0; i < 4 && png_ptr->pass == 3; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - if (png_ptr->pass == 4) - { - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - break; - } - case 4: - { - int i; - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - for (i = 0; i < 2 && png_ptr->pass == 4; i++) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - break; - } - case 5: - { - int i; - for (i = 0; i < 2 && png_ptr->pass == 5; i++) - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } - if (png_ptr->pass == 6) - { - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - break; - } - case 6: - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - if (png_ptr->pass != 6) - break; - png_push_have_row(png_ptr, NULL); - png_read_push_finish_row(png_ptr); - } - } - } - else -#endif - { - png_push_have_row(png_ptr, png_ptr->row_buf + 1); - png_read_push_finish_row(png_ptr); - } -} - -void -png_read_push_finish_row(png_structp png_ptr) -{ - png_ptr->row_number++; - if (png_ptr->row_number < png_ptr->num_rows) - return; - - if (png_ptr->interlaced) - { - png_ptr->row_number = 0; - png_memset_check(png_ptr, png_ptr->prev_row, 0, - png_ptr->rowbytes + 1); - do - { - png_ptr->pass++; - if (png_ptr->pass >= 7) - break; - - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - - png_ptr->irowbytes = ((png_ptr->iwidth * - png_ptr->pixel_depth + 7) >> 3) + 1; - - if (png_ptr->transformations & PNG_INTERLACE) - break; - - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; - - } while (png_ptr->iwidth == 0 || png_ptr->num_rows == 0); - } -} - -#if defined(PNG_READ_tEXt_SUPPORTED) -void -png_push_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - if (png_ptr->mode == PNG_BEFORE_IHDR || png_ptr->mode & PNG_HAVE_IEND) - { - png_error(png_ptr, "Out of place tEXt"); - /* to quiet some compiler warnings */ - if(info_ptr == NULL) return; - } - -#ifdef PNG_MAX_MALLOC_64K - png_ptr->skip_length = 0; /* This may not be necessary */ - - if (length > (png_uint_32)65535L) /* Can't hold the entire string in memory */ - { - png_warning(png_ptr, "tEXt chunk too large to fit in memory"); - png_ptr->skip_length = length - (png_uint_32)65535L; - length = (png_uint_32)65535L; - } -#endif - - png_ptr->current_text = (png_charp)png_malloc(png_ptr, - (png_uint_32)(length+1)); - png_ptr->current_text[length] = '\0'; - png_ptr->current_text_ptr = png_ptr->current_text; - png_ptr->current_text_size = (png_size_t)length; - png_ptr->current_text_left = (png_size_t)length; - png_ptr->process_mode = PNG_READ_tEXt_MODE; -} - -void -png_push_read_tEXt(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr->buffer_size && png_ptr->current_text_left) - { - png_size_t text_size; - - if (png_ptr->buffer_size < png_ptr->current_text_left) - text_size = png_ptr->buffer_size; - else - text_size = png_ptr->current_text_left; - png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size); - png_ptr->current_text_left -= text_size; - png_ptr->current_text_ptr += text_size; - } - if (!(png_ptr->current_text_left)) - { - png_textp text_ptr; - png_charp text; - png_charp key; - - if (png_ptr->buffer_size < 4) - { - png_push_save_buffer(png_ptr); - return; - } - - png_push_crc_finish(png_ptr); - -#if defined(PNG_MAX_MALLOC_64K) - if (png_ptr->skip_length) - return; -#endif - - key = png_ptr->current_text; - png_ptr->current_text = 0; - - for (text = key; *text; text++) - /* empty loop */ ; - - if (text != key + png_ptr->current_text_size) - text++; - - text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text)); - text_ptr->compression = PNG_TEXT_COMPRESSION_NONE; - text_ptr->key = key; - text_ptr->text = text; - - png_set_text(png_ptr, info_ptr, text_ptr, 1); - - png_free(png_ptr, text_ptr); - } -} -#endif - -#if defined(PNG_READ_zTXt_SUPPORTED) -void -png_push_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - if (png_ptr->mode == PNG_BEFORE_IHDR || png_ptr->mode & PNG_HAVE_IEND) - { - png_error(png_ptr, "Out of place zTXt"); - /* to quiet some compiler warnings */ - if(info_ptr == NULL) return; - } - -#ifdef PNG_MAX_MALLOC_64K - /* We can't handle zTXt chunks > 64K, since we don't have enough space - * to be able to store the uncompressed data. Actually, the threshold - * is probably around 32K, but it isn't as definite as 64K is. - */ - if (length > (png_uint_32)65535L) - { - png_warning(png_ptr, "zTXt chunk too large to fit in memory"); - png_push_crc_skip(png_ptr, length); - return; - } -#endif - - png_ptr->current_text = (png_charp)png_malloc(png_ptr, - (png_uint_32)(length+1)); - png_ptr->current_text[length] = '\0'; - png_ptr->current_text_ptr = png_ptr->current_text; - png_ptr->current_text_size = (png_size_t)length; - png_ptr->current_text_left = (png_size_t)length; - png_ptr->process_mode = PNG_READ_zTXt_MODE; -} - -void -png_push_read_zTXt(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr->buffer_size && png_ptr->current_text_left) - { - png_size_t text_size; - - if (png_ptr->buffer_size < (png_uint_32)png_ptr->current_text_left) - text_size = png_ptr->buffer_size; - else - text_size = png_ptr->current_text_left; - png_crc_read(png_ptr, (png_bytep)png_ptr->current_text_ptr, text_size); - png_ptr->current_text_left -= text_size; - png_ptr->current_text_ptr += text_size; - } - if (!(png_ptr->current_text_left)) - { - png_textp text_ptr; - png_charp text; - png_charp key; - int ret; - png_size_t text_size, key_size; - - if (png_ptr->buffer_size < 4) - { - png_push_save_buffer(png_ptr); - return; - } - - png_push_crc_finish(png_ptr); - - key = png_ptr->current_text; - png_ptr->current_text = 0; - - for (text = key; *text; text++) - /* empty loop */ ; - - /* zTXt can't have zero text */ - if (text == key + png_ptr->current_text_size) - { - png_free(png_ptr, key); - return; - } - - text++; - - if (*text != PNG_TEXT_COMPRESSION_zTXt) /* check compression byte */ - { - png_free(png_ptr, key); - return; - } - - text++; - - png_ptr->zstream.next_in = (png_bytep )text; - png_ptr->zstream.avail_in = (uInt)(png_ptr->current_text_size - - (text - key)); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - - key_size = text - key; - text_size = 0; - text = NULL; - ret = Z_STREAM_END; - - while (png_ptr->zstream.avail_in) - { - ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); - if (ret != Z_OK && ret != Z_STREAM_END) - { - inflateReset(&png_ptr->zstream); - png_ptr->zstream.avail_in = 0; - png_free(png_ptr, key); - png_free(png_ptr, text); - return; - } - if (!(png_ptr->zstream.avail_out) || ret == Z_STREAM_END) - { - if (text == NULL) - { - text = (png_charp)png_malloc(png_ptr, - (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out + - key_size + 1)); - png_memcpy(text + key_size, png_ptr->zbuf, - png_ptr->zbuf_size - png_ptr->zstream.avail_out); - png_memcpy(text, key, key_size); - text_size = key_size + png_ptr->zbuf_size - - png_ptr->zstream.avail_out; - *(text + text_size) = '\0'; - } - else - { - png_charp tmp; - - tmp = text; - text = (png_charp)png_malloc(png_ptr, text_size + - (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out - + 1)); - png_memcpy(text, tmp, text_size); - png_free(png_ptr, tmp); - png_memcpy(text + text_size, png_ptr->zbuf, - png_ptr->zbuf_size - png_ptr->zstream.avail_out); - text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out; - *(text + text_size) = '\0'; - } - if (ret != Z_STREAM_END) - { - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - } - } - else - { - break; - } - - if (ret == Z_STREAM_END) - break; - } - - inflateReset(&png_ptr->zstream); - png_ptr->zstream.avail_in = 0; - - if (ret != Z_STREAM_END) - { - png_free(png_ptr, key); - png_free(png_ptr, text); - return; - } - - png_free(png_ptr, key); - key = text; - text += key_size; - - text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text)); - text_ptr->compression = PNG_TEXT_COMPRESSION_zTXt; - text_ptr->key = key; - text_ptr->text = text; - - png_set_text(png_ptr, info_ptr, text_ptr, 1); - - png_free(png_ptr, text_ptr); - } -} -#endif - -/* This function is called when we haven't found a handler for this - * chunk. In the future we will have code here that can handle - * user-defined callback functions for unknown chunks before they are - * ignored or cause an error. If there isn't a problem with the - * chunk itself (ie a bad chunk name or a critical chunk), the chunk - * is (currently) silently ignored. - */ -void -png_push_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_check_chunk_name(png_ptr, png_ptr->chunk_name); - - if (!(png_ptr->chunk_name[0] & 0x20)) - { - png_chunk_error(png_ptr, "unknown critical chunk"); - /* to quiet some compiler warnings */ - if(info_ptr == NULL) return; - } - - png_push_crc_skip(png_ptr, length); -} - -void -png_push_have_info(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr->info_fn != NULL) - (*(png_ptr->info_fn))(png_ptr, info_ptr); -} - -void -png_push_have_end(png_structp png_ptr, png_infop info_ptr) -{ - if (png_ptr->end_fn != NULL) - (*(png_ptr->end_fn))(png_ptr, info_ptr); -} - -void -png_push_have_row(png_structp png_ptr, png_bytep row) -{ - if (png_ptr->row_fn != NULL) - (*(png_ptr->row_fn))(png_ptr, row, png_ptr->row_number, - (int)png_ptr->pass); -} - -void -png_progressive_combine_row (png_structp png_ptr, - png_bytep old_row, png_bytep new_row) -{ - if (new_row != NULL) /* new_row must == png_ptr->row_buf here. */ - png_combine_row(png_ptr, old_row, png_pass_dsp_mask[png_ptr->pass]); -} - -void -png_set_progressive_read_fn(png_structp png_ptr, png_voidp progressive_ptr, - png_progressive_info_ptr info_fn, png_progressive_row_ptr row_fn, - png_progressive_end_ptr end_fn) -{ - png_ptr->info_fn = info_fn; - png_ptr->row_fn = row_fn; - png_ptr->end_fn = end_fn; - - png_set_read_fn(png_ptr, progressive_ptr, png_push_fill_buffer); -} - -png_voidp -png_get_progressive_ptr(png_structp png_ptr) -{ - return png_ptr->io_ptr; -} - -#endif /* PNG_PROGRESSIVE_READ_SUPPORTED */ - diff --git a/src/png/pngread.c b/src/png/pngread.c deleted file mode 100644 index 01613b1641..0000000000 --- a/src/png/pngread.c +++ /dev/null @@ -1,885 +0,0 @@ - -/* pngread.c - read a PNG file - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file contains routines that an application calls directly to - * read a PNG file or stream. - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Create a PNG structure for reading, and allocate any memory needed. */ -png_structp -png_create_read_struct(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn) -{ - -#ifdef PNG_USER_MEM_SUPPORTED - return (png_create_read_struct_2(user_png_ver, error_ptr, error_fn, - warn_fn, NULL, NULL, NULL)); -} - -/* Alternate create PNG structure for reading, and allocate any memory needed. */ -png_structp -png_create_read_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - - png_structp png_ptr; -#ifdef USE_FAR_KEYWORD - jmp_buf jmpbuf; -#endif - png_debug(1, "in png_create_read_struct\n"); -#ifdef PNG_USER_MEM_SUPPORTED - if ((png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG, - (png_malloc_ptr)malloc_fn)) == NULL) -#else - if ((png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG)) == NULL) -#endif - { - return (png_structp)NULL; - } -#ifdef USE_FAR_KEYWORD - if (setjmp(jmpbuf)) -#else - if (setjmp(png_ptr->jmpbuf)) -#endif - { - png_free(png_ptr, png_ptr->zbuf); - png_destroy_struct(png_ptr); - return (png_structp)NULL; - } -#ifdef USE_FAR_KEYWORD - png_memcpy(png_ptr->jmpbuf,jmpbuf,sizeof(jmp_buf)); -#endif - -#ifdef PNG_USER_MEM_SUPPORTED - png_set_mem_fn(png_ptr, mem_ptr, malloc_fn, free_fn); -#endif /* PNG_USER_MEM_SUPPORTED */ - - png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn); - - /* Libpng 0.90 and later are binary incompatible with libpng 0.89, so - * we must recompile any applications that use any older library version. - * For versions after libpng 1.0, we will be compatible, so we need - * only check the first digit. - */ - if (user_png_ver == NULL || user_png_ver[0] != png_libpng_ver[0] || - (user_png_ver[0] == '0' && user_png_ver[2] < '9')) - { - png_error(png_ptr, - "Incompatible libpng version in application and library"); - } - - /* initialize zbuf - compression buffer */ - png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - png_ptr->zstream.zalloc = png_zalloc; - png_ptr->zstream.zfree = png_zfree; - png_ptr->zstream.opaque = (voidpf)png_ptr; - - switch (inflateInit(&png_ptr->zstream)) - { - case Z_OK: /* Do nothing */ break; - case Z_MEM_ERROR: - case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory error"); break; - case Z_VERSION_ERROR: png_error(png_ptr, "zlib version error"); break; - default: png_error(png_ptr, "Unknown zlib error"); - } - - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - - png_set_read_fn(png_ptr, NULL, NULL); - - return (png_ptr); -} - -/* Initialize PNG structure for reading, and allocate any memory needed. - This interface is deprecated in favour of the png_create_read_struct(), - and it will eventually disappear. */ -void -png_read_init(png_structp png_ptr) -{ - jmp_buf tmp_jmp; /* to save current jump buffer */ - - png_debug(1, "in png_read_init\n"); - /* save jump buffer and error functions */ - png_memcpy(tmp_jmp, png_ptr->jmpbuf, sizeof (jmp_buf)); - - /* reset all variables to 0 */ - png_memset(png_ptr, 0, sizeof (png_struct)); - - /* restore jump buffer */ - png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf)); - - /* initialize zbuf - compression buffer */ - png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - png_ptr->zstream.zalloc = png_zalloc; - png_ptr->zstream.zfree = png_zfree; - png_ptr->zstream.opaque = (voidpf)png_ptr; - - switch (inflateInit(&png_ptr->zstream)) - { - case Z_OK: /* Do nothing */ break; - case Z_MEM_ERROR: - case Z_STREAM_ERROR: png_error(png_ptr, "zlib memory"); break; - case Z_VERSION_ERROR: png_error(png_ptr, "zlib version"); break; - default: png_error(png_ptr, "Unknown zlib error"); - } - - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - - png_set_read_fn(png_ptr, NULL, NULL); -} - -/* Read the information before the actual image data. This has been - * changed in v0.90 to allow reading a file that already has the magic - * bytes read from the stream. You can tell libpng how many bytes have - * been read from the beginning of the stream (up to the maximum of 8) - * via png_set_sig_bytes(), and we will only check the remaining bytes - * here. The application can then have access to the signature bytes we - * read if it is determined that this isn't a valid PNG file. - */ -void -png_read_info(png_structp png_ptr, png_infop info_ptr) -{ - png_debug(1, "in png_read_info\n"); - /* save jump buffer and error functions */ - /* If we haven't checked all of the PNG signature bytes, do so now. */ - if (png_ptr->sig_bytes < 8) - { - png_size_t num_checked = png_ptr->sig_bytes, - num_to_check = 8 - num_checked; - - png_read_data(png_ptr, &(info_ptr->signature[num_checked]), num_to_check); - png_ptr->sig_bytes = 8; - - if (png_sig_cmp(info_ptr->signature, num_checked, num_to_check)) - { - if (num_checked < 4 && - png_sig_cmp(info_ptr->signature, num_checked, num_to_check - 4)) - png_error(png_ptr, "Not a PNG file"); - else - png_error(png_ptr, "PNG file corrupted by ASCII conversion"); - } - } - - for(;;) - { - png_byte chunk_length[4]; - png_uint_32 length; - - png_read_data(png_ptr, chunk_length, 4); - length = png_get_uint_32(chunk_length); - - png_reset_crc(png_ptr); - png_crc_read(png_ptr, png_ptr->chunk_name, 4); - - png_debug1(0, "Reading %s chunk.\n", png_ptr->chunk_name); - - /* This should be a binary subdivision search or a hash for - * matching the chunk name rather than a linear search. - */ - if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4)) - png_handle_IHDR(png_ptr, info_ptr, length); - else if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4)) - png_handle_PLTE(png_ptr, info_ptr, length); - else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4)) - png_handle_IEND(png_ptr, info_ptr, length); - else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - { - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before IDAT"); - else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - !(png_ptr->mode & PNG_HAVE_PLTE)) - png_error(png_ptr, "Missing PLTE before IDAT"); - - png_ptr->idat_size = length; - png_ptr->mode |= PNG_HAVE_IDAT; - break; - } -#if defined(PNG_READ_bKGD_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_bKGD, 4)) - png_handle_bKGD(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_cHRM_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_cHRM, 4)) - png_handle_cHRM(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_gAMA_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_gAMA, 4)) - png_handle_gAMA(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_hIST_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_hIST, 4)) - png_handle_hIST(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_oFFs_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_oFFs, 4)) - png_handle_oFFs(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_pCAL_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_pCAL, 4)) - png_handle_pCAL(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_pHYs_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_pHYs, 4)) - png_handle_pHYs(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_sBIT_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_sBIT, 4)) - png_handle_sBIT(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_sRGB_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_sRGB, 4)) - png_handle_sRGB(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_tEXt_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tEXt, 4)) - png_handle_tEXt(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_tIME_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tIME, 4)) - png_handle_tIME(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_tRNS_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tRNS, 4)) - png_handle_tRNS(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_zTXt_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_zTXt, 4)) - png_handle_zTXt(png_ptr, info_ptr, length); -#endif - else - png_handle_unknown(png_ptr, info_ptr, length); - } -} - -/* optional call to update the users info_ptr structure */ -void -png_read_update_info(png_structp png_ptr, png_infop info_ptr) -{ - png_debug(1, "in png_read_update_info\n"); - /* save jump buffer and error functions */ - if (!(png_ptr->flags & PNG_FLAG_ROW_INIT)) - png_read_start_row(png_ptr); - png_read_transform_info(png_ptr, info_ptr); -} - -/* Initialize palette, background, etc, after transformations - * are set, but before any reading takes place. This allows - * the user to obtain a gamma-corrected palette, for example. - * If the user doesn't call this, we will do it ourselves. - */ -void -png_start_read_image(png_structp png_ptr) -{ - png_debug(1, "in png_start_read_image\n"); - /* save jump buffer and error functions */ - if (!(png_ptr->flags & PNG_FLAG_ROW_INIT)) - png_read_start_row(png_ptr); -} - -void -png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row) -{ - int ret; - png_debug2(1, "in png_read_row (row %d, pass %d)\n", - png_ptr->row_number, png_ptr->pass); - /* save jump buffer and error functions */ - if (!(png_ptr->flags & PNG_FLAG_ROW_INIT)) - png_read_start_row(png_ptr); - if (png_ptr->row_number == 0 && png_ptr->pass == 0) - { - /* check for transforms that have been set but were defined out */ -#if defined(PNG_WRITE_INVERT_SUPPORTED) && !defined(PNG_READ_INVERT_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_MONO) - png_warning(png_ptr, "PNG_READ_INVERT_SUPPORTED is not defined."); -#endif -#if defined(PNG_WRITE_FILLER_SUPPORTED) && !defined(PNG_READ_FILLER_SUPPORTED) - if (png_ptr->transformations & PNG_FILLER) - png_warning(png_ptr, "PNG_READ_FILLER_SUPPORTED is not defined."); -#endif -#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) && !defined(PNG_READ_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - png_warning(png_ptr, "PNG_READ_PACKSWAP_SUPPORTED is not defined."); -#endif -#if defined(PNG_WRITE_PACK_SUPPORTED) && !defined(PNG_READ_PACK_SUPPORTED) - if (png_ptr->transformations & PNG_PACK) - png_warning(png_ptr, "PNG_READ_PACK_SUPPORTED is not defined."); -#endif -#if defined(PNG_WRITE_SHIFT_SUPPORTED) && !defined(PNG_READ_SHIFT_SUPPORTED) - if (png_ptr->transformations & PNG_SHIFT) - png_warning(png_ptr, "PNG_READ_SHIFT_SUPPORTED is not defined."); -#endif -#if defined(PNG_WRITE_BGR_SUPPORTED) && !defined(PNG_READ_BGR_SUPPORTED) - if (png_ptr->transformations & PNG_BGR) - png_warning(png_ptr, "PNG_READ_BGR_SUPPORTED is not defined."); -#endif -#if defined(PNG_WRITE_SWAP_SUPPORTED) && !defined(PNG_READ_SWAP_SUPPORTED) - if (png_ptr->transformations & PNG_SWAP_BYTES) - png_warning(png_ptr, "PNG_READ_SWAP_SUPPORTED is not defined."); -#endif - } - -#if defined(PNG_READ_INTERLACING_SUPPORTED) - /* if interlaced and we do not need a new row, combine row and return */ - if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE)) - { - switch (png_ptr->pass) - { - case 0: - if (png_ptr->row_number & 7) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - png_read_finish_row(png_ptr); - return; - } - break; - case 1: - if ((png_ptr->row_number & 7) || png_ptr->width < 5) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - png_read_finish_row(png_ptr); - return; - } - break; - case 2: - if ((png_ptr->row_number & 7) != 4) - { - if (dsp_row != NULL && (png_ptr->row_number & 4)) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - png_read_finish_row(png_ptr); - return; - } - break; - case 3: - if ((png_ptr->row_number & 3) || png_ptr->width < 3) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - png_read_finish_row(png_ptr); - return; - } - break; - case 4: - if ((png_ptr->row_number & 3) != 2) - { - if (dsp_row != NULL && (png_ptr->row_number & 2)) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - png_read_finish_row(png_ptr); - return; - } - break; - case 5: - if ((png_ptr->row_number & 1) || png_ptr->width < 2) - { - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - png_read_finish_row(png_ptr); - return; - } - break; - case 6: - if (!(png_ptr->row_number & 1)) - { - png_read_finish_row(png_ptr); - return; - } - break; - } - } -#endif - - if (!(png_ptr->mode & PNG_HAVE_IDAT)) - png_error(png_ptr, "Invalid attempt to read row data"); - - png_ptr->zstream.next_out = png_ptr->row_buf; - png_ptr->zstream.avail_out = (uInt)png_ptr->irowbytes; - do - { - if (!(png_ptr->zstream.avail_in)) - { - while (!png_ptr->idat_size) - { - png_byte chunk_length[4]; - - png_crc_finish(png_ptr, 0); - - png_read_data(png_ptr, chunk_length, 4); - png_ptr->idat_size = png_get_uint_32(chunk_length); - - png_reset_crc(png_ptr); - png_crc_read(png_ptr, png_ptr->chunk_name, 4); - if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - png_error(png_ptr, "Not enough image data"); - } - png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size; - png_ptr->zstream.next_in = png_ptr->zbuf; - if (png_ptr->zbuf_size > png_ptr->idat_size) - png_ptr->zstream.avail_in = (uInt)png_ptr->idat_size; - png_crc_read(png_ptr, png_ptr->zbuf, - (png_size_t)png_ptr->zstream.avail_in); - png_ptr->idat_size -= png_ptr->zstream.avail_in; - } - ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); - if (ret == Z_STREAM_END) - { - if (png_ptr->zstream.avail_out || png_ptr->zstream.avail_in || - png_ptr->idat_size) - png_error(png_ptr, "Extra compressed data"); - png_ptr->mode |= PNG_AFTER_IDAT; - png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED; - break; - } - if (ret != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg ? png_ptr->zstream.msg : - "Decompression error"); - - } while (png_ptr->zstream.avail_out); - - png_ptr->row_info.color_type = png_ptr->color_type; - png_ptr->row_info.width = png_ptr->iwidth; - png_ptr->row_info.channels = png_ptr->channels; - png_ptr->row_info.bit_depth = png_ptr->bit_depth; - png_ptr->row_info.pixel_depth = png_ptr->pixel_depth; - { - png_ptr->row_info.rowbytes = ((png_ptr->row_info.width * - (png_uint_32)png_ptr->row_info.pixel_depth + 7) >> 3); - } - - png_read_filter_row(png_ptr, &(png_ptr->row_info), - png_ptr->row_buf + 1, png_ptr->prev_row + 1, - (int)(png_ptr->row_buf[0])); - - png_memcpy_check(png_ptr, png_ptr->prev_row, png_ptr->row_buf, - png_ptr->rowbytes + 1); - - if (png_ptr->transformations) - png_do_read_transformations(png_ptr); - -#if defined(PNG_READ_INTERLACING_SUPPORTED) - /* blow up interlaced rows to full size */ - if (png_ptr->interlaced && - (png_ptr->transformations & PNG_INTERLACE)) - { - if (png_ptr->pass < 6) - png_do_read_interlace(&(png_ptr->row_info), - png_ptr->row_buf + 1, png_ptr->pass, png_ptr->transformations); - - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, - png_pass_dsp_mask[png_ptr->pass]); - if (row != NULL) - png_combine_row(png_ptr, row, - png_pass_mask[png_ptr->pass]); - } - else -#endif - { - if (row != NULL) - png_combine_row(png_ptr, row, 0xff); - if (dsp_row != NULL) - png_combine_row(png_ptr, dsp_row, 0xff); - } - png_read_finish_row(png_ptr); - - if (png_ptr->read_row_fn != NULL) - (*(png_ptr->read_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass); -} - -/* Read one or more rows of image data. If the image is interlaced, - * and png_set_interlace_handling() has been called, the rows need to - * contain the contents of the rows from the previous pass. If the - * image has alpha or transparency, and png_handle_alpha()[*] has been - * called, the rows contents must be initialized to the contents of the - * screen. - * - * "row" holds the actual image, and pixels are placed in it - * as they arrive. If the image is displayed after each pass, it will - * appear to "sparkle" in. "display_row" can be used to display a - * "chunky" progressive image, with finer detail added as it becomes - * available. If you do not want this "chunky" display, you may pass - * NULL for display_row. If you do not want the sparkle display, and - * you have not called png_handle_alpha(), you may pass NULL for rows. - * If you have called png_handle_alpha(), and the image has either an - * alpha channel or a transparency chunk, you must provide a buffer for - * rows. In this case, you do not have to provide a display_row buffer - * also, but you may. If the image is not interlaced, or if you have - * not called png_set_interlace_handling(), the display_row buffer will - * be ignored, so pass NULL to it. - * - * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.3. - */ - -void -png_read_rows(png_structp png_ptr, png_bytepp row, - png_bytepp display_row, png_uint_32 num_rows) -{ - png_uint_32 i; - png_bytepp rp; - png_bytepp dp; - - png_debug(1, "in png_read_rows\n"); - /* save jump buffer and error functions */ - rp = row; - dp = display_row; - if (rp != NULL && dp != NULL) - for (i = 0; i < num_rows; i++) - { - png_bytep rptr = *rp++; - png_bytep dptr = *dp++; - - png_read_row(png_ptr, rptr, dptr); - } - else if(rp != NULL) - for (i = 0; i < num_rows; i++) - { - png_bytep rptr = *rp; - png_read_row(png_ptr, rptr, NULL); - rp++; - } - else if(dp != NULL) - for (i = 0; i < num_rows; i++) - { - png_bytep dptr = *dp; - png_read_row(png_ptr, NULL, dptr); - dp++; - } -} - -/* Read the entire image. If the image has an alpha channel or a tRNS - * chunk, and you have called png_handle_alpha()[*], you will need to - * initialize the image to the current image that PNG will be overlaying. - * We set the num_rows again here, in case it was incorrectly set in - * png_read_start_row() by a call to png_read_update_info() or - * png_start_read_image() if png_set_interlace_handling() wasn't called - * prior to either of these functions like it should have been. You can - * only call this function once. If you desire to have an image for - * each pass of a interlaced image, use png_read_rows() instead. - * - * [*] png_handle_alpha() does not exist yet, as of libpng version 1.0.3. - */ -void -png_read_image(png_structp png_ptr, png_bytepp image) -{ - png_uint_32 i,image_height; - int pass, j; - png_bytepp rp; - - png_debug(1, "in png_read_image\n"); - /* save jump buffer and error functions */ - pass = png_set_interlace_handling(png_ptr); - - image_height=png_ptr->height; - png_ptr->num_rows = image_height; /* Make sure this is set correctly */ - - for (j = 0; j < pass; j++) - { - rp = image; - for (i = 0; i < image_height; i++) - { - png_read_row(png_ptr, *rp, NULL); - rp++; - } - } -} - -/* Read the end of the PNG file. Will not read past the end of the - * file, will verify the end is accurate, and will read any comments - * or time information at the end of the file, if info is not NULL. - */ -void -png_read_end(png_structp png_ptr, png_infop info_ptr) -{ - png_byte chunk_length[4]; - png_uint_32 length; - - png_debug(1, "in png_read_end\n"); - /* save jump buffer and error functions */ - png_crc_finish(png_ptr, 0); /* Finish off CRC from last IDAT chunk */ - - do - { - png_read_data(png_ptr, chunk_length, 4); - length = png_get_uint_32(chunk_length); - - png_reset_crc(png_ptr); - png_crc_read(png_ptr, png_ptr->chunk_name, 4); - - png_debug1(0, "Reading %s chunk.\n", png_ptr->chunk_name); - - if (!png_memcmp(png_ptr->chunk_name, png_IHDR, 4)) - png_handle_IHDR(png_ptr, info_ptr, length); - else if (!png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - { - /* Zero length IDATs are legal after the last IDAT has been - * read, but not after other chunks have been read. - */ - if (length > 0 || png_ptr->mode & PNG_AFTER_IDAT) - png_error(png_ptr, "Too many IDAT's found"); - else - png_crc_finish(png_ptr, 0); - } - else if (!png_memcmp(png_ptr->chunk_name, png_PLTE, 4)) - png_handle_PLTE(png_ptr, info_ptr, length); - else if (!png_memcmp(png_ptr->chunk_name, png_IEND, 4)) - png_handle_IEND(png_ptr, info_ptr, length); -#if defined(PNG_READ_bKGD_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_bKGD, 4)) - png_handle_bKGD(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_cHRM_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_cHRM, 4)) - png_handle_cHRM(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_gAMA_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_gAMA, 4)) - png_handle_gAMA(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_hIST_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_hIST, 4)) - png_handle_hIST(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_oFFs_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_oFFs, 4)) - png_handle_oFFs(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_pCAL_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_pCAL, 4)) - png_handle_pCAL(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_pHYs_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_pHYs, 4)) - png_handle_pHYs(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_sBIT_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_sBIT, 4)) - png_handle_sBIT(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_sRGB_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_sRGB, 4)) - png_handle_sRGB(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_tEXt_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tEXt, 4)) - png_handle_tEXt(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_tIME_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tIME, 4)) - png_handle_tIME(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_tRNS_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_tRNS, 4)) - png_handle_tRNS(png_ptr, info_ptr, length); -#endif -#if defined(PNG_READ_zTXt_SUPPORTED) - else if (!png_memcmp(png_ptr->chunk_name, png_zTXt, 4)) - png_handle_zTXt(png_ptr, info_ptr, length); -#endif - else - png_handle_unknown(png_ptr, info_ptr, length); - } while (!(png_ptr->mode & PNG_HAVE_IEND)); -} - -/* free all memory used by the read */ -void -png_destroy_read_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr, - png_infopp end_info_ptr_ptr) -{ - png_structp png_ptr = NULL; - png_infop info_ptr = NULL, end_info_ptr = NULL; -#ifdef PNG_USER_MEM_SUPPORTED - png_free_ptr free_fn = NULL; -#endif /* PNG_USER_MEM_SUPPORTED */ - - png_debug(1, "in png_destroy_read_struct\n"); - /* save jump buffer and error functions */ - if (png_ptr_ptr != NULL) - png_ptr = *png_ptr_ptr; - - if (info_ptr_ptr != NULL) - info_ptr = *info_ptr_ptr; - - if (end_info_ptr_ptr != NULL) - end_info_ptr = *end_info_ptr_ptr; - -#ifdef PNG_USER_MEM_SUPPORTED - free_fn = png_ptr->free_fn; -#endif - - png_read_destroy(png_ptr, info_ptr, end_info_ptr); - - if (info_ptr != NULL) - { -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_READ_zTXt_SUPPORTED) - png_free(png_ptr, info_ptr->text); -#endif - -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)info_ptr, free_fn); -#else - png_destroy_struct((png_voidp)info_ptr); -#endif - *info_ptr_ptr = (png_infop)NULL; - } - - if (end_info_ptr != NULL) - { -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_READ_zTXt_SUPPORTED) - png_free(png_ptr, end_info_ptr->text); -#endif -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)end_info_ptr, free_fn); -#else - png_destroy_struct((png_voidp)end_info_ptr); -#endif - *end_info_ptr_ptr = (png_infop)NULL; - } - - if (png_ptr != NULL) - { -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)png_ptr, free_fn); -#else - png_destroy_struct((png_voidp)png_ptr); -#endif - *png_ptr_ptr = (png_structp)NULL; - } -} - -/* free all memory used by the read (old method) */ -void -png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr) -{ - jmp_buf tmp_jmp; - png_error_ptr error_fn; - png_error_ptr warning_fn; - png_voidp error_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - png_free_ptr free_fn; -#endif - - png_debug(1, "in png_read_destroy\n"); - /* save jump buffer and error functions */ - if (info_ptr != NULL) - png_info_destroy(png_ptr, info_ptr); - - if (end_info_ptr != NULL) - png_info_destroy(png_ptr, end_info_ptr); - - png_free(png_ptr, png_ptr->zbuf); - png_free(png_ptr, png_ptr->row_buf); - png_free(png_ptr, png_ptr->prev_row); -#if defined(PNG_READ_DITHER_SUPPORTED) - png_free(png_ptr, png_ptr->palette_lookup); - png_free(png_ptr, png_ptr->dither_index); -#endif -#if defined(PNG_READ_GAMMA_SUPPORTED) - png_free(png_ptr, png_ptr->gamma_table); -#endif -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - png_free(png_ptr, png_ptr->gamma_from_1); - png_free(png_ptr, png_ptr->gamma_to_1); -#endif - if (png_ptr->flags & PNG_FLAG_FREE_PALETTE) - png_zfree(png_ptr, png_ptr->palette); - if (png_ptr->flags & PNG_FLAG_FREE_TRANS) - png_free(png_ptr, png_ptr->trans); -#if defined(PNG_READ_hIST_SUPPORTED) - if (png_ptr->flags & PNG_FLAG_FREE_HIST) - png_free(png_ptr, png_ptr->hist); -#endif -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (png_ptr->gamma_16_table != NULL) - { - int i; - int istop = (1 << (8 - png_ptr->gamma_shift)); - for (i = 0; i < istop; i++) - { - png_free(png_ptr, png_ptr->gamma_16_table[i]); - } - png_free(png_ptr, png_ptr->gamma_16_table); - } -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->gamma_16_from_1 != NULL) - { - int i; - int istop = (1 << (8 - png_ptr->gamma_shift)); - for (i = 0; i < istop; i++) - { - png_free(png_ptr, png_ptr->gamma_16_from_1[i]); - } - png_free(png_ptr, png_ptr->gamma_16_from_1); - } - if (png_ptr->gamma_16_to_1 != NULL) - { - int i; - int istop = (1 << (8 - png_ptr->gamma_shift)); - for (i = 0; i < istop; i++) - { - png_free(png_ptr, png_ptr->gamma_16_to_1[i]); - } - png_free(png_ptr, png_ptr->gamma_16_to_1); - } -#endif -#endif -#if defined(PNG_TIME_RFC1123_SUPPORTED) - png_free(png_ptr, png_ptr->time_buffer); -#endif /* PNG_TIME_RFC1123_SUPPORTED */ - - inflateEnd(&png_ptr->zstream); -#ifdef PNG_PROGRESSIVE_READ_SUPPORTED - png_free(png_ptr, png_ptr->save_buffer); -#endif - - /* Save the important info out of the png_struct, in case it is - * being used again. - */ - png_memcpy(tmp_jmp, png_ptr->jmpbuf, sizeof (jmp_buf)); - - error_fn = png_ptr->error_fn; - warning_fn = png_ptr->warning_fn; - error_ptr = png_ptr->error_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - free_fn = png_ptr->free_fn; -#endif - - png_memset(png_ptr, 0, sizeof (png_struct)); - - png_ptr->error_fn = error_fn; - png_ptr->warning_fn = warning_fn; - png_ptr->error_ptr = error_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - png_ptr->free_fn = free_fn; -#endif - - png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf)); -} - -void -png_set_read_status_fn(png_structp png_ptr, png_read_status_ptr read_row_fn) -{ - png_ptr->read_row_fn = read_row_fn; -} diff --git a/src/png/pngrio.c b/src/png/pngrio.c deleted file mode 100644 index 23bbb2b660..0000000000 --- a/src/png/pngrio.c +++ /dev/null @@ -1,151 +0,0 @@ - -/* pngrio.c - functions for data input - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file provides a location for all input. Users who need - * special handling are expected to write a function that has the same - * arguments as this and performs a similar function, but that possibly - * has a different input method. Note that you shouldn't change this - * function, but rather write a replacement function and then make - * libpng use it at run time with png_set_read_fn(...). - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Read the data from whatever input you are using. The default routine - reads from a file pointer. Note that this routine sometimes gets called - with very small lengths, so you should implement some kind of simple - buffering if you are using unbuffered reads. This should never be asked - to read more then 64K on a 16 bit machine. */ -void -png_read_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_debug1(4,"reading %d bytes\n", length); - if (png_ptr->read_data_fn != NULL) - (*(png_ptr->read_data_fn))(png_ptr, data, length); - else - png_error(png_ptr, "Call to NULL read function"); -} - -#if !defined(PNG_NO_STDIO) -/* This is the function that does the actual reading of data. If you are - not reading from a standard C stream, you should create a replacement - read_data function and use it at run time with png_set_read_fn(), rather - than changing the library. */ -#ifndef USE_FAR_KEYWORD -static void -png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_size_t check; - - /* fread() returns 0 on error, so it is OK to store this in a png_size_t - * instead of an int, which is what fread() actually returns. - */ - check = (png_size_t)fread(data, (png_size_t)1, length, - (FILE *)png_ptr->io_ptr); - - if (check != length) - { - png_error(png_ptr, "Read Error"); - } -} -#else -/* this is the model-independent version. Since the standard I/O library - can't handle far buffers in the medium and small models, we have to copy - the data. -*/ - -#define NEAR_BUF_SIZE 1024 -#define MIN(a,b) (a <= b ? a : b) - -static void -png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - int check; - png_byte *n_data; - FILE *io_ptr; - - /* Check if data really is near. If so, use usual code. */ - n_data = (png_byte *)CVT_PTR_NOCHECK(data); - io_ptr = (FILE *)CVT_PTR(png_ptr->io_ptr); - if ((png_bytep)n_data == data) - { - check = fread(n_data, 1, length, io_ptr); - } - else - { - png_byte buf[NEAR_BUF_SIZE]; - png_size_t read, remaining, err; - check = 0; - remaining = length; - do - { - read = MIN(NEAR_BUF_SIZE, remaining); - err = fread(buf, (png_size_t)1, read, io_ptr); - png_memcpy(data, buf, read); /* copy far buffer to near buffer */ - if(err != read) - break; - else - check += err; - data += read; - remaining -= read; - } - while (remaining != 0); - } - if ((png_uint_32)check != (png_uint_32)length) - { - png_error(png_ptr, "read Error"); - } -} -#endif -#endif - -/* This function allows the application to supply a new input function - for libpng if standard C streams aren't being used. - - This function takes as its arguments: - png_ptr - pointer to a png input data structure - io_ptr - pointer to user supplied structure containing info about - the input functions. May be NULL. - read_data_fn - pointer to a new input function that takes as its - arguments a pointer to a png_struct, a pointer to - a location where input data can be stored, and a 32-bit - unsigned int that is the number of bytes to be read. - To exit and output any fatal error messages the new write - function should call png_error(png_ptr, "Error msg"). */ -void -png_set_read_fn(png_structp png_ptr, png_voidp io_ptr, - png_rw_ptr read_data_fn) -{ - png_ptr->io_ptr = io_ptr; - -#if !defined(PNG_NO_STDIO) - if (read_data_fn != NULL) - png_ptr->read_data_fn = read_data_fn; - else - png_ptr->read_data_fn = png_default_read_data; -#else - png_ptr->read_data_fn = read_data_fn; -#endif - - /* It is an error to write to a read device */ - if (png_ptr->write_data_fn != NULL) - { - png_ptr->write_data_fn = NULL; - png_warning(png_ptr, - "It's an error to set both read_data_fn and write_data_fn in the "); - png_warning(png_ptr, - "same structure. Resetting write_data_fn to NULL."); - } - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) - png_ptr->output_flush_fn = NULL; -#endif /* PNG_WRITE_FLUSH_SUPPORTED */ -} - diff --git a/src/png/pngrtran.c b/src/png/pngrtran.c deleted file mode 100644 index ce486bd06d..0000000000 --- a/src/png/pngrtran.c +++ /dev/null @@ -1,3931 +0,0 @@ - -/* pngrtran.c - transforms the data in a row for PNG readers - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file contains functions optionally called by an application - * in order to tell libpng how to handle data when reading a PNG. - * Transformations that are used in both reading and writing are - * in pngtrans.c. - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Set the action on getting a CRC error for an ancillary or critical chunk. */ -void -png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action) -{ - png_debug(1, "in png_set_crc_action\n"); - /* Tell libpng how we react to CRC errors in critical chunks */ - switch (crit_action) - { - case PNG_CRC_NO_CHANGE: /* leave setting as is */ - break; - case PNG_CRC_WARN_USE: /* warn/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; - png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE; - break; - case PNG_CRC_QUIET_USE: /* quiet/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; - png_ptr->flags |= PNG_FLAG_CRC_CRITICAL_USE | - PNG_FLAG_CRC_CRITICAL_IGNORE; - break; - case PNG_CRC_WARN_DISCARD: /* not a valid action for critical data */ - png_warning(png_ptr, "Can't discard critical data on CRC error."); - case PNG_CRC_ERROR_QUIT: /* error/quit */ - case PNG_CRC_DEFAULT: - default: - png_ptr->flags &= ~PNG_FLAG_CRC_CRITICAL_MASK; - break; - } - - switch (ancil_action) - { - case PNG_CRC_NO_CHANGE: /* leave setting as is */ - break; - case PNG_CRC_WARN_USE: /* warn/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE; - break; - case PNG_CRC_QUIET_USE: /* quiet/use data */ - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_USE | - PNG_FLAG_CRC_ANCILLARY_NOWARN; - break; - case PNG_CRC_ERROR_QUIT: /* error/quit */ - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - png_ptr->flags |= PNG_FLAG_CRC_ANCILLARY_NOWARN; - break; - case PNG_CRC_WARN_DISCARD: /* warn/discard data */ - case PNG_CRC_DEFAULT: - default: - png_ptr->flags &= ~PNG_FLAG_CRC_ANCILLARY_MASK; - break; - } -} - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) -/* handle alpha and tRNS via a background color */ -void -png_set_background(png_structp png_ptr, - png_color_16p background_color, int background_gamma_code, - int need_expand, double background_gamma) -{ - png_debug(1, "in png_set_background\n"); - if (background_gamma_code == PNG_BACKGROUND_GAMMA_UNKNOWN) - { - png_warning(png_ptr, "Application must supply a known background gamma"); - return; - } - - png_ptr->transformations |= PNG_BACKGROUND; - png_memcpy(&(png_ptr->background), background_color, sizeof(png_color_16)); - png_ptr->background_gamma = (float)background_gamma; - png_ptr->background_gamma_type = (png_byte)(background_gamma_code); - png_ptr->transformations |= (need_expand ? PNG_BACKGROUND_EXPAND : 0); - - /* Note: if need_expand is set and color_type is either RGB or RGB_ALPHA - * (in which case need_expand is superfluous anyway), the background color - * might actually be gray yet not be flagged as such. This is not a problem - * for the current code, which uses PNG_FLAG_BACKGROUND_IS_GRAY only to - * decide when to do the png_do_gray_to_rgb() transformation. - */ - if ((need_expand && !(png_ptr->color_type & PNG_COLOR_MASK_COLOR)) || - (!need_expand && background_color->red == background_color->green && - background_color->red == background_color->blue)) - png_ptr->flags |= PNG_FLAG_BACKGROUND_IS_GRAY; -} -#endif - -#if defined(PNG_READ_16_TO_8_SUPPORTED) -/* strip 16 bit depth files to 8 bit depth */ -void -png_set_strip_16(png_structp png_ptr) -{ - png_debug(1, "in png_set_strip_16\n"); - png_ptr->transformations |= PNG_16_TO_8; -} -#endif - -#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -void -png_set_strip_alpha(png_structp png_ptr) -{ - png_debug(1, "in png_set_strip_alpha\n"); - png_ptr->transformations |= PNG_STRIP_ALPHA; -} -#endif - -#if defined(PNG_READ_DITHER_SUPPORTED) -/* Dither file to 8 bit. Supply a palette, the current number - * of elements in the palette, the maximum number of elements - * allowed, and a histogram if possible. If the current number - * of colors is greater then the maximum number, the palette will be - * modified to fit in the maximum number. "full_dither" indicates - * whether we need a dithering cube set up for RGB images, or if we - * simply are reducing the number of colors in a paletted image. - */ - -typedef struct png_dsort_struct -{ - struct png_dsort_struct FAR * next; - png_byte left; - png_byte right; -} png_dsort; -typedef png_dsort FAR * png_dsortp; -typedef png_dsort FAR * FAR * png_dsortpp; - -void -png_set_dither(png_structp png_ptr, png_colorp palette, - int num_palette, int maximum_colors, png_uint_16p histogram, - int full_dither) -{ - png_debug(1, "in png_set_dither\n"); - png_ptr->transformations |= PNG_DITHER; - - if (!full_dither) - { - int i; - - png_ptr->dither_index = (png_bytep)png_malloc(png_ptr, - (png_uint_32)(num_palette * sizeof (png_byte))); - for (i = 0; i < num_palette; i++) - png_ptr->dither_index[i] = (png_byte)i; - } - - if (num_palette > maximum_colors) - { - if (histogram != NULL) - { - /* This is easy enough, just throw out the least used colors. - Perhaps not the best solution, but good enough. */ - - int i; - png_bytep sort; - - /* initialize an array to sort colors */ - sort = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_palette - * sizeof (png_byte))); - - /* initialize the sort array */ - for (i = 0; i < num_palette; i++) - sort[i] = (png_byte)i; - - /* Find the least used palette entries by starting a - bubble sort, and running it until we have sorted - out enough colors. Note that we don't care about - sorting all the colors, just finding which are - least used. */ - - for (i = num_palette - 1; i >= maximum_colors; i--) - { - int done; /* to stop early if the list is pre-sorted */ - int j; - - done = 1; - for (j = 0; j < i; j++) - { - if (histogram[sort[j]] < histogram[sort[j + 1]]) - { - png_byte t; - - t = sort[j]; - sort[j] = sort[j + 1]; - sort[j + 1] = t; - done = 0; - } - } - if (done) - break; - } - - /* swap the palette around, and set up a table, if necessary */ - if (full_dither) - { - int j = num_palette; - - /* put all the useful colors within the max, but don't - move the others */ - for (i = 0; i < maximum_colors; i++) - { - if ((int)sort[i] >= maximum_colors) - { - do - j--; - while ((int)sort[j] >= maximum_colors); - palette[i] = palette[j]; - } - } - } - else - { - int j = num_palette; - - /* move all the used colors inside the max limit, and - develop a translation table */ - for (i = 0; i < maximum_colors; i++) - { - /* only move the colors we need to */ - if ((int)sort[i] >= maximum_colors) - { - png_color tmp_color; - - do - j--; - while ((int)sort[j] >= maximum_colors); - - tmp_color = palette[j]; - palette[j] = palette[i]; - palette[i] = tmp_color; - /* indicate where the color went */ - png_ptr->dither_index[j] = (png_byte)i; - png_ptr->dither_index[i] = (png_byte)j; - } - } - - /* find closest color for those colors we are not using */ - for (i = 0; i < num_palette; i++) - { - if ((int)png_ptr->dither_index[i] >= maximum_colors) - { - int min_d, k, min_k, d_index; - - /* find the closest color to one we threw out */ - d_index = png_ptr->dither_index[i]; - min_d = PNG_COLOR_DIST(palette[d_index], palette[0]); - for (k = 1, min_k = 0; k < maximum_colors; k++) - { - int d; - - d = PNG_COLOR_DIST(palette[d_index], palette[k]); - - if (d < min_d) - { - min_d = d; - min_k = k; - } - } - /* point to closest color */ - png_ptr->dither_index[i] = (png_byte)min_k; - } - } - } - png_free(png_ptr, sort); - } - else - { - /* This is much harder to do simply (and quickly). Perhaps - we need to go through a median cut routine, but those - don't always behave themselves with only a few colors - as input. So we will just find the closest two colors, - and throw out one of them (chosen somewhat randomly). - [We don't understand this at all, so if someone wants to - work on improving it, be our guest - AED, GRP] - */ - int i; - int max_d; - int num_new_palette; - png_dsortpp hash; - png_bytep index_to_palette; - /* where the original index currently is in the palette */ - png_bytep palette_to_index; - /* which original index points to this palette color */ - - /* initialize palette index arrays */ - index_to_palette = (png_bytep)png_malloc(png_ptr, - (png_uint_32)(num_palette * sizeof (png_byte))); - palette_to_index = (png_bytep)png_malloc(png_ptr, - (png_uint_32)(num_palette * sizeof (png_byte))); - - /* initialize the sort array */ - for (i = 0; i < num_palette; i++) - { - index_to_palette[i] = (png_byte)i; - palette_to_index[i] = (png_byte)i; - } - - hash = (png_dsortpp)png_malloc(png_ptr, (png_uint_32)(769 * - sizeof (png_dsortp))); - for (i = 0; i < 769; i++) - hash[i] = NULL; -/* png_memset(hash, 0, 769 * sizeof (png_dsortp)); */ - - num_new_palette = num_palette; - - /* initial wild guess at how far apart the farthest pixel - pair we will be eliminating will be. Larger - numbers mean more areas will be allocated, Smaller - numbers run the risk of not saving enough data, and - having to do this all over again. - - I have not done extensive checking on this number. - */ - max_d = 96; - - while (num_new_palette > maximum_colors) - { - for (i = 0; i < num_new_palette - 1; i++) - { - int j; - - for (j = i + 1; j < num_new_palette; j++) - { - int d; - - d = PNG_COLOR_DIST(palette[i], palette[j]); - - if (d <= max_d) - { - png_dsortp t; - - t = (png_dsortp)png_malloc(png_ptr, (png_uint_32)(sizeof - (png_dsort))); - t->next = hash[d]; - t->left = (png_byte)i; - t->right = (png_byte)j; - hash[d] = t; - } - } - } - - for (i = 0; i <= max_d; i++) - { - if (hash[i] != NULL) - { - png_dsortp p; - - for (p = hash[i]; p; p = p->next) - { - if ((int)index_to_palette[p->left] < num_new_palette && - (int)index_to_palette[p->right] < num_new_palette) - { - int j, next_j; - - if (num_new_palette & 1) - { - j = p->left; - next_j = p->right; - } - else - { - j = p->right; - next_j = p->left; - } - - num_new_palette--; - palette[index_to_palette[j]] = palette[num_new_palette]; - if (!full_dither) - { - int k; - - for (k = 0; k < num_palette; k++) - { - if (png_ptr->dither_index[k] == - index_to_palette[j]) - png_ptr->dither_index[k] = - index_to_palette[next_j]; - if ((int)png_ptr->dither_index[k] == - num_new_palette) - png_ptr->dither_index[k] = - index_to_palette[j]; - } - } - - index_to_palette[palette_to_index[num_new_palette]] = - index_to_palette[j]; - palette_to_index[index_to_palette[j]] = - palette_to_index[num_new_palette]; - - index_to_palette[j] = (png_byte)num_new_palette; - palette_to_index[num_new_palette] = (png_byte)j; - } - if (num_new_palette <= maximum_colors) - break; - } - if (num_new_palette <= maximum_colors) - break; - } - } - - for (i = 0; i < 769; i++) - { - if (hash[i] != NULL) - { - png_dsortp p = hash[i]; - while (p) - { - png_dsortp t; - - t = p->next; - png_free(png_ptr, p); - p = t; - } - } - hash[i] = 0; - } - max_d += 96; - } - png_free(png_ptr, hash); - png_free(png_ptr, palette_to_index); - png_free(png_ptr, index_to_palette); - } - num_palette = maximum_colors; - } - if (png_ptr->palette == NULL) - { - png_ptr->palette = palette; - } - png_ptr->num_palette = (png_uint_16)num_palette; - - if (full_dither) - { - int i; - png_bytep distance; - int total_bits = PNG_DITHER_RED_BITS + PNG_DITHER_GREEN_BITS + - PNG_DITHER_BLUE_BITS; - int num_red = (1 << PNG_DITHER_RED_BITS); - int num_green = (1 << PNG_DITHER_GREEN_BITS); - int num_blue = (1 << PNG_DITHER_BLUE_BITS); - png_size_t num_entries = ((png_size_t)1 << total_bits); - - png_ptr->palette_lookup = (png_bytep )png_malloc(png_ptr, - (png_uint_32)(num_entries * sizeof (png_byte))); - - png_memset(png_ptr->palette_lookup, 0, num_entries * sizeof (png_byte)); - - distance = (png_bytep)png_malloc(png_ptr, (png_uint_32)(num_entries * - sizeof(png_byte))); - - png_memset(distance, 0xff, num_entries * sizeof(png_byte)); - - for (i = 0; i < num_palette; i++) - { - int ir, ig, ib; - int r = (palette[i].red >> (8 - PNG_DITHER_RED_BITS)); - int g = (palette[i].green >> (8 - PNG_DITHER_GREEN_BITS)); - int b = (palette[i].blue >> (8 - PNG_DITHER_BLUE_BITS)); - - for (ir = 0; ir < num_red; ir++) - { - int dr = abs(ir - r); - int index_r = (ir << (PNG_DITHER_BLUE_BITS + PNG_DITHER_GREEN_BITS)); - - for (ig = 0; ig < num_green; ig++) - { - int dg = abs(ig - g); - int dt = dr + dg; - int dm = ((dr > dg) ? dr : dg); - int index_g = index_r | (ig << PNG_DITHER_BLUE_BITS); - - for (ib = 0; ib < num_blue; ib++) - { - int d_index = index_g | ib; - int db = abs(ib - b); - int dmax = ((dm > db) ? dm : db); - int d = dmax + dt + db; - - if (d < (int)distance[d_index]) - { - distance[d_index] = (png_byte)d; - png_ptr->palette_lookup[d_index] = (png_byte)i; - } - } - } - } - } - - png_free(png_ptr, distance); - } -} -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) -/* Transform the image from the file_gamma to the screen_gamma. We - * only do transformations on images where the file_gamma and screen_gamma - * are not close reciprocals, otherwise it slows things down slightly, and - * also needlessly introduces small errors. - */ -void -png_set_gamma(png_structp png_ptr, double scrn_gamma, double file_gamma) -{ - png_debug(1, "in png_set_gamma\n"); - if (fabs(scrn_gamma * file_gamma - 1.0) > PNG_GAMMA_THRESHOLD) - png_ptr->transformations |= PNG_GAMMA; - png_ptr->gamma = (float)file_gamma; - png_ptr->screen_gamma = (float)scrn_gamma; -} -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) -/* Expand paletted images to rgb, expand grayscale images of - * less than 8 bit depth to 8 bit depth, and expand tRNS chunks - * to alpha channels. - */ -void -png_set_expand(png_structp png_ptr) -{ - png_debug(1, "in png_set_expand\n"); - png_ptr->transformations |= PNG_EXPAND; -} -#endif - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) -void -png_set_gray_to_rgb(png_structp png_ptr) -{ - png_debug(1, "in png_set_gray_to_rgb\n"); - png_ptr->transformations |= PNG_GRAY_TO_RGB; -} -#endif - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) -/* Convert a RGB image to a grayscale of the same width. This allows us, - * for example, to convert a 24 bpp RGB image into an 8 bpp grayscale image. - */ -void -png_set_rgb_to_gray(png_structp png_ptr, int error_action, float red, - float green) -{ - png_debug(1, "in png_set_rgb_to_gray\n"); - switch(error_action) - { - case 1: png_ptr->transformations |= PNG_RGB_TO_GRAY; - break; - case 2: png_ptr->transformations |= PNG_RGB_TO_GRAY_WARN; - break; - case 3: png_ptr->transformations |= PNG_RGB_TO_GRAY_ERR; - } - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) -#if defined(PNG_READ_EXPAND_SUPPORTED) - png_ptr->transformations |= PNG_EXPAND; -#else - { - png_warning(png_ptr, "Cannot do RGB_TO_GRAY without EXPAND_SUPPORTED."); - png_ptr->transformations &= ~PNG_RGB_TO_GRAY; - } -#endif - { - png_byte red_byte = (png_byte)(red*255.0 + 0.5); - png_byte green_byte = (png_byte)(green*255.0 + 0.5); - if(red < 0.0 || green < 0.0) - { - red_byte = 54; - green_byte = 183; - } - else if(red_byte + green_byte > 255) - { - png_warning(png_ptr, "ignoring out of range rgb_to_gray coefficients"); - red_byte = 54; - green_byte = 183; - } - png_ptr->rgb_to_gray_red_coeff = red_byte; - png_ptr->rgb_to_gray_green_coeff = green_byte; - png_ptr->rgb_to_gray_blue_coeff = 255 - red_byte - green_byte; - } -} -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) -void -png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr - read_user_transform_fn) -{ - png_debug(1, "in png_set_read_user_transform_fn\n"); - png_ptr->transformations |= PNG_USER_TRANSFORM; - png_ptr->read_user_transform_fn = read_user_transform_fn; -} -#endif - -/* Initialize everything needed for the read. This includes modifying - * the palette. - */ -void -png_init_read_transformations(png_structp png_ptr) -{ - png_debug(1, "in png_init_read_transformations\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if(png_ptr != NULL) -#endif - { -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || defined(PNG_READ_SHIFT_SUPPORTED) \ - || defined(PNG_READ_GAMMA_SUPPORTED) - int color_type = png_ptr->color_type; -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) && defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->transformations & PNG_BACKGROUND_EXPAND) - { - if (!(color_type & PNG_COLOR_MASK_COLOR)) /* i.e., GRAY or GRAY_ALPHA */ - { - /* expand background chunk. */ - switch (png_ptr->bit_depth) - { - case 1: - png_ptr->background.gray *= (png_uint_16)0xff; - png_ptr->background.red = png_ptr->background.green = - png_ptr->background.blue = png_ptr->background.gray; - break; - case 2: - png_ptr->background.gray *= (png_uint_16)0x55; - png_ptr->background.red = png_ptr->background.green = - png_ptr->background.blue = png_ptr->background.gray; - break; - case 4: - png_ptr->background.gray *= (png_uint_16)0x11; - png_ptr->background.red = png_ptr->background.green = - png_ptr->background.blue = png_ptr->background.gray; - break; - case 8: - case 16: - png_ptr->background.red = png_ptr->background.green = - png_ptr->background.blue = png_ptr->background.gray; - break; - } - } - else if (color_type == PNG_COLOR_TYPE_PALETTE) - { - png_ptr->background.red = - png_ptr->palette[png_ptr->background.index].red; - png_ptr->background.green = - png_ptr->palette[png_ptr->background.index].green; - png_ptr->background.blue = - png_ptr->palette[png_ptr->background.index].blue; - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_ALPHA) - { -#if defined(PNG_READ_EXPAND_SUPPORTED) - if (!(png_ptr->transformations & PNG_EXPAND)) -#endif - { - /* invert the alpha channel (in tRNS) unless the pixels are - going to be expanded, in which case leave it for later */ - int i,istop; - istop=(int)png_ptr->num_trans; - for (i=0; itrans[i] = 255 - png_ptr->trans[i]; - } - } -#endif - - } - } -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - png_ptr->background_1 = png_ptr->background; -#endif -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (png_ptr->transformations & (PNG_GAMMA | PNG_RGB_TO_GRAY)) - { - png_build_gamma_table(png_ptr); -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->transformations & PNG_BACKGROUND) - { - if (color_type == PNG_COLOR_TYPE_PALETTE) - { - png_color back, back_1; - png_colorp palette = png_ptr->palette; - int num_palette = png_ptr->num_palette; - int i; - - if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE) - { - back.red = png_ptr->gamma_table[png_ptr->background.red]; - back.green = png_ptr->gamma_table[png_ptr->background.green]; - back.blue = png_ptr->gamma_table[png_ptr->background.blue]; - - back_1.red = png_ptr->gamma_to_1[png_ptr->background.red]; - back_1.green = png_ptr->gamma_to_1[png_ptr->background.green]; - back_1.blue = png_ptr->gamma_to_1[png_ptr->background.blue]; - } - else - { - double g, gs; - - switch (png_ptr->background_gamma_type) - { - case PNG_BACKGROUND_GAMMA_SCREEN: - g = (png_ptr->screen_gamma); - gs = 1.0; - break; - case PNG_BACKGROUND_GAMMA_FILE: - g = 1.0 / (png_ptr->gamma); - gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma); - break; - case PNG_BACKGROUND_GAMMA_UNIQUE: - g = 1.0 / (png_ptr->background_gamma); - gs = 1.0 / (png_ptr->background_gamma * - png_ptr->screen_gamma); - break; - default: - g = 1.0; /* back_1 */ - gs = 1.0; /* back */ - } - - if ( fabs(gs - 1.0) < PNG_GAMMA_THRESHOLD) - { - back.red = (png_byte)png_ptr->background.red; - back.green = (png_byte)png_ptr->background.green; - back.blue = (png_byte)png_ptr->background.blue; - } - else - { - back.red = (png_byte)(pow( - (double)png_ptr->background.red/255, gs) * 255.0 + .5); - back.green = (png_byte)(pow( - (double)png_ptr->background.green/255, gs) * 255.0 + .5); - back.blue = (png_byte)(pow( - (double)png_ptr->background.blue/255, gs) * 255.0 + .5); - } - - back_1.red = (png_byte)(pow( - (double)png_ptr->background.red/255, g) * 255.0 + .5); - back_1.green = (png_byte)(pow( - (double)png_ptr->background.green/255, g) * 255.0 + .5); - back_1.blue = (png_byte)(pow( - (double)png_ptr->background.blue/255, g) * 255.0 + .5); - } - - for (i = 0; i < num_palette; i++) - { - if (i < (int)png_ptr->num_trans && png_ptr->trans[i] != 0xff) - { - if (png_ptr->trans[i] == 0) - { - palette[i] = back; - } - else /* if (png_ptr->trans[i] != 0xff) */ - { - png_byte v, w; - - v = png_ptr->gamma_to_1[palette[i].red]; - png_composite(w, v, png_ptr->trans[i], back_1.red); - palette[i].red = png_ptr->gamma_from_1[w]; - - v = png_ptr->gamma_to_1[palette[i].green]; - png_composite(w, v, png_ptr->trans[i], back_1.green); - palette[i].green = png_ptr->gamma_from_1[w]; - - v = png_ptr->gamma_to_1[palette[i].blue]; - png_composite(w, v, png_ptr->trans[i], back_1.blue); - palette[i].blue = png_ptr->gamma_from_1[w]; - } - } - else - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - } - } - /* if (png_ptr->background_gamma_type!=PNG_BACKGROUND_GAMMA_UNKNOWN)*/ - else - /* color_type != PNG_COLOR_TYPE_PALETTE */ - { - double m = (double)(((png_uint_32)1 << png_ptr->bit_depth) - 1); - double g = 1.0; - double gs = 1.0; - - switch (png_ptr->background_gamma_type) - { - case PNG_BACKGROUND_GAMMA_SCREEN: - g = (png_ptr->screen_gamma); - gs = 1.0; - break; - case PNG_BACKGROUND_GAMMA_FILE: - g = 1.0 / (png_ptr->gamma); - gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma); - break; - case PNG_BACKGROUND_GAMMA_UNIQUE: - g = 1.0 / (png_ptr->background_gamma); - gs = 1.0 / (png_ptr->background_gamma * - png_ptr->screen_gamma); - break; - } - - if (color_type & PNG_COLOR_MASK_COLOR) - { - /* RGB or RGBA */ - png_ptr->background_1.red = (png_uint_16)(pow( - (double)png_ptr->background.red / m, g) * m + .5); - png_ptr->background_1.green = (png_uint_16)(pow( - (double)png_ptr->background.green / m, g) * m + .5); - png_ptr->background_1.blue = (png_uint_16)(pow( - (double)png_ptr->background.blue / m, g) * m + .5); - png_ptr->background.red = (png_uint_16)(pow( - (double)png_ptr->background.red / m, gs) * m + .5); - png_ptr->background.green = (png_uint_16)(pow( - (double)png_ptr->background.green / m, gs) * m + .5); - png_ptr->background.blue = (png_uint_16)(pow( - (double)png_ptr->background.blue / m, gs) * m + .5); - } - else - { - /* GRAY or GRAY ALPHA */ - png_ptr->background_1.gray = (png_uint_16)(pow( - (double)png_ptr->background.gray / m, g) * m + .5); - png_ptr->background.gray = (png_uint_16)(pow( - (double)png_ptr->background.gray / m, gs) * m + .5); - } - } - } - else - /* transformation does not include PNG_BACKGROUND */ -#endif - if (color_type == PNG_COLOR_TYPE_PALETTE) - { - png_colorp palette = png_ptr->palette; - int num_palette = png_ptr->num_palette; - int i; - - for (i = 0; i < num_palette; i++) - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - } - } -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - else -#endif -#endif -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - /* No GAMMA transformation */ - if (png_ptr->transformations & PNG_BACKGROUND && - color_type == PNG_COLOR_TYPE_PALETTE) - { - int i; - int istop = (int)png_ptr->num_trans; - png_color back; - png_colorp palette = png_ptr->palette; - - back.red = (png_byte)png_ptr->background.red; - back.green = (png_byte)png_ptr->background.green; - back.blue = (png_byte)png_ptr->background.blue; - - for (i = 0; i < istop; i++) - { - if (png_ptr->trans[i] == 0) - { - palette[i] = back; - } - else if (png_ptr->trans[i] != 0xff) - { - /* The png_composite() macro is defined in png.h */ - png_composite(palette[i].red, palette[i].red, - png_ptr->trans[i], back.red); - png_composite(palette[i].green, palette[i].green, - png_ptr->trans[i], back.green); - png_composite(palette[i].blue, palette[i].blue, - png_ptr->trans[i], back.blue); - } - } - } -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) - if ((png_ptr->transformations & PNG_SHIFT) && - color_type == PNG_COLOR_TYPE_PALETTE) - { - png_uint_16 i; - png_uint_16 istop = png_ptr->num_palette; - int sr = 8 - png_ptr->sig_bit.red; - int sg = 8 - png_ptr->sig_bit.green; - int sb = 8 - png_ptr->sig_bit.blue; - - if (sr < 0 || sr > 8) - sr = 0; - if (sg < 0 || sg > 8) - sg = 0; - if (sb < 0 || sb > 8) - sb = 0; - for (i = 0; i < istop; i++) - { - png_ptr->palette[i].red >>= sr; - png_ptr->palette[i].green >>= sg; - png_ptr->palette[i].blue >>= sb; - } - } -#endif - } -} - -/* Modify the info structure to reflect the transformations. The - * info should be updated so a PNG file could be written with it, - * assuming the transformations result in valid PNG data. - */ -void -png_read_transform_info(png_structp png_ptr, png_infop info_ptr) -{ - png_debug(1, "in png_read_transform_info\n"); -#if defined(PNG_READ_EXPAND_SUPPORTED) - if (png_ptr->transformations & PNG_EXPAND) - { - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (png_ptr->num_trans) - info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA; - else - info_ptr->color_type = PNG_COLOR_TYPE_RGB; - info_ptr->bit_depth = 8; - info_ptr->num_trans = 0; - } - else - { - if (png_ptr->num_trans) - info_ptr->color_type |= PNG_COLOR_MASK_ALPHA; - if (info_ptr->bit_depth < 8) - info_ptr->bit_depth = 8; - info_ptr->num_trans = 0; - } - } -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->transformations & PNG_BACKGROUND) - { - info_ptr->color_type &= ~PNG_COLOR_MASK_ALPHA; - info_ptr->num_trans = 0; - info_ptr->background = png_ptr->background; - } -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (png_ptr->transformations & PNG_GAMMA) - info_ptr->gamma = png_ptr->gamma; -#endif - -#if defined(PNG_READ_16_TO_8_SUPPORTED) - if ((png_ptr->transformations & PNG_16_TO_8) && info_ptr->bit_depth == 16) - info_ptr->bit_depth = 8; -#endif - -#if defined(PNG_READ_DITHER_SUPPORTED) - if (png_ptr->transformations & PNG_DITHER) - { - if (((info_ptr->color_type == PNG_COLOR_TYPE_RGB) || - (info_ptr->color_type == PNG_COLOR_TYPE_RGB_ALPHA)) && - png_ptr->palette_lookup && info_ptr->bit_depth == 8) - { - info_ptr->color_type = PNG_COLOR_TYPE_PALETTE; - } - } -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) - if ((png_ptr->transformations & PNG_PACK) && info_ptr->bit_depth < 8) - info_ptr->bit_depth = 8; -#endif - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) - if (png_ptr->transformations & PNG_GRAY_TO_RGB) - info_ptr->color_type |= PNG_COLOR_MASK_COLOR; -#endif - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - if (png_ptr->transformations & PNG_RGB_TO_GRAY) - info_ptr->color_type &= ~PNG_COLOR_MASK_COLOR; -#endif - - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - info_ptr->channels = 1; - else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR) - info_ptr->channels = 3; - else - info_ptr->channels = 1; - -#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_STRIP_ALPHA) - info_ptr->color_type &= ~PNG_COLOR_MASK_ALPHA; -#endif - - if (info_ptr->color_type & PNG_COLOR_MASK_ALPHA) - info_ptr->channels++; - -#if defined(PNG_READ_FILLER_SUPPORTED) - /* STRIP_ALPHA and FILLER allowed: MASK_ALPHA bit stripped above */ - if (png_ptr->transformations & PNG_FILLER && - (info_ptr->color_type == PNG_COLOR_TYPE_RGB || - info_ptr->color_type == PNG_COLOR_TYPE_GRAY)) - ++info_ptr->channels; -#endif - - info_ptr->pixel_depth = (png_byte)(info_ptr->channels * - info_ptr->bit_depth); - info_ptr->rowbytes = ((info_ptr->width * info_ptr->pixel_depth + 7) >> 3); -} - -/* Transform the row. The order of transformations is significant, - * and is very touchy. If you add a transformation, take care to - * decide how it fits in with the other transformations here. - */ -void -png_do_read_transformations(png_structp png_ptr) -{ - png_debug(1, "in png_do_read_transformations\n"); -#if !defined(PNG_USELESS_TESTS_SUPPORTED) - if (png_ptr->row_buf == NULL) - { -#if !defined(PNG_NO_STDIO) - char msg[50]; - - sprintf(msg, "NULL row buffer for row %ld, pass %d", png_ptr->row_number, - png_ptr->pass); - png_error(png_ptr, msg); -#else - png_error(png_ptr, "NULL row buffer"); -#endif - } -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) - if (png_ptr->transformations & PNG_EXPAND) - { - if (png_ptr->row_info.color_type == PNG_COLOR_TYPE_PALETTE) - { - png_do_expand_palette(&(png_ptr->row_info), png_ptr->row_buf + 1, - png_ptr->palette, png_ptr->trans, png_ptr->num_trans); - } - else - { - if (png_ptr->num_trans) - png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1, - &(png_ptr->trans_values)); - else - png_do_expand(&(png_ptr->row_info), png_ptr->row_buf + 1, - NULL); - } - } -#endif - -#if defined(PNG_READ_STRIP_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_STRIP_ALPHA) - png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1, - PNG_FLAG_FILLER_AFTER); -#endif - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - if (png_ptr->transformations & PNG_RGB_TO_GRAY) - { - int rgb_error = - png_do_rgb_to_gray(png_ptr, &(png_ptr->row_info), png_ptr->row_buf + 1); - if(rgb_error) - { - png_ptr->rgb_to_gray_status=1; - if(png_ptr->transformations == PNG_RGB_TO_GRAY_WARN) - png_warning(png_ptr, "png_do_rgb_to_gray found nongray pixel"); - if(png_ptr->transformations == PNG_RGB_TO_GRAY_ERR) - png_error(png_ptr, "png_do_rgb_to_gray found nongray pixel"); - } - } -#endif - -/* -From Andreas Dilger e-mail to png-implement, 26 March 1998: - - In most cases, the "simple transparency" should be done prior to doing - gray-to-RGB, or you will have to test 3x as many bytes to check if a - pixel is transparent. You would also need to make sure that the - transparency information is upgraded to RGB. - - To summarize, the current flow is: - - Gray + simple transparency -> compare 1 or 2 gray bytes and composite - with background "in place" if transparent, - convert to RGB if necessary - - Gray + alpha -> composite with gray background and remove alpha bytes, - convert to RGB if necessary - - To support RGB backgrounds for gray images we need: - - Gray + simple transparency -> convert to RGB + simple transparency, compare - 3 or 6 bytes and composite with background - "in place" if transparent (3x compare/pixel - compared to doing composite with gray bkgrnd) - - Gray + alpha -> convert to RGB + alpha, composite with background and - remove alpha bytes (3x float operations/pixel - compared with composite on gray background) - - Greg's change will do this. The reason it wasn't done before is for - performance, as this increases the per-pixel operations. If we would check - in advance if the background was gray or RGB, and position the gray-to-RGB - transform appropriately, then it would save a lot of work/time. - */ - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) - /* if gray -> RGB, do so now only if background is non-gray; else do later - * for performance reasons */ - if (png_ptr->transformations & PNG_GRAY_TO_RGB && - !(png_ptr->flags & PNG_FLAG_BACKGROUND_IS_GRAY)) - png_do_gray_to_rgb(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - if ((png_ptr->transformations & PNG_BACKGROUND) && - ((png_ptr->num_trans != 0 ) || - (png_ptr->color_type & PNG_COLOR_MASK_ALPHA))) - png_do_background(&(png_ptr->row_info), png_ptr->row_buf + 1, - &(png_ptr->trans_values), &(png_ptr->background), - &(png_ptr->background_1), - png_ptr->gamma_table, png_ptr->gamma_from_1, - png_ptr->gamma_to_1, png_ptr->gamma_16_table, - png_ptr->gamma_16_from_1, png_ptr->gamma_16_to_1, - png_ptr->gamma_shift); -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) - if ((png_ptr->transformations & PNG_GAMMA) && -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - !((png_ptr->transformations & PNG_BACKGROUND) && - ((png_ptr->num_trans != 0) || - (png_ptr->color_type & PNG_COLOR_MASK_ALPHA))) && -#endif - (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE)) - png_do_gamma(&(png_ptr->row_info), png_ptr->row_buf + 1, - png_ptr->gamma_table, png_ptr->gamma_16_table, - png_ptr->gamma_shift); -#endif - -#if defined(PNG_READ_16_TO_8_SUPPORTED) - if (png_ptr->transformations & PNG_16_TO_8) - png_do_chop(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_DITHER_SUPPORTED) - if (png_ptr->transformations & PNG_DITHER) - { - png_do_dither((png_row_infop)&(png_ptr->row_info), png_ptr->row_buf + 1, - png_ptr->palette_lookup, png_ptr->dither_index); - if(png_ptr->row_info.rowbytes == (png_uint_32)0) - png_error(png_ptr, "png_do_dither returned rowbytes=0"); - } -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_MONO) - png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) - if (png_ptr->transformations & PNG_SHIFT) - png_do_unshift(&(png_ptr->row_info), png_ptr->row_buf + 1, - &(png_ptr->shift)); -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) - if (png_ptr->transformations & PNG_PACK) - png_do_unpack(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) - if (png_ptr->transformations & PNG_BGR) - png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - png_do_packswap(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) - /* if gray -> RGB, do so now only if we did not do so above */ - if (png_ptr->transformations & PNG_GRAY_TO_RGB && - png_ptr->flags & PNG_FLAG_BACKGROUND_IS_GRAY) - png_do_gray_to_rgb(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) - if (png_ptr->transformations & PNG_FILLER) - png_do_read_filler(&(png_ptr->row_info), png_ptr->row_buf + 1, - (png_uint_32)png_ptr->filler, png_ptr->flags); -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_ALPHA) - png_do_read_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_SWAP_ALPHA) - png_do_read_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_SWAP_SUPPORTED) - if (png_ptr->transformations & PNG_SWAP_BYTES) - png_do_swap(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif - -#if defined(PNG_READ_USER_TRANSFORM_SUPPORTED) - if (png_ptr->transformations & PNG_USER_TRANSFORM) - if(png_ptr->read_user_transform_fn != NULL) - (*(png_ptr->read_user_transform_fn)) /* user read transform function */ - (png_ptr, /* png_ptr */ - &(png_ptr->row_info), /* row_info: */ - /* png_uint_32 width; width of row */ - /* png_uint_32 rowbytes; number of bytes in row */ - /* png_byte color_type; color type of pixels */ - /* png_byte bit_depth; bit depth of samples */ - /* png_byte channels; number of channels (1-4) */ - /* png_byte pixel_depth; bits per pixel (depth*channels) */ - png_ptr->row_buf + 1); /* start of pixel data for row */ -#endif - -} - -#if defined(PNG_READ_PACK_SUPPORTED) -/* Unpack pixels of 1, 2, or 4 bits per pixel into 1 byte per pixel, - * without changing the actual values. Thus, if you had a row with - * a bit depth of 1, you would end up with bytes that only contained - * the numbers 0 or 1. If you would rather they contain 0 and 255, use - * png_do_shift() after this. - */ -void -png_do_unpack(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_unpack\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL && row_info->bit_depth < 8) -#else - if (row_info->bit_depth < 8) -#endif - { - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - switch (row_info->bit_depth) - { - case 1: - { - png_bytep sp = row + (png_size_t)((row_width - 1) >> 3); - png_bytep dp = row + (png_size_t)row_width - 1; - png_uint_32 shift = 7 - (int)((row_width + 7) & 7); - for (i = 0; i < row_width; i++) - { - *dp = (png_byte)((*sp >> shift) & 0x1); - if (shift == 7) - { - shift = 0; - sp--; - } - else - shift++; - - dp--; - } - break; - } - case 2: - { - - png_bytep sp = row + (png_size_t)((row_width - 1) >> 2); - png_bytep dp = row + (png_size_t)row_width - 1; - png_uint_32 shift = (int)((3 - ((row_width + 3) & 3)) << 1); - for (i = 0; i < row_width; i++) - { - *dp = (png_byte)((*sp >> shift) & 0x3); - if (shift == 6) - { - shift = 0; - sp--; - } - else - shift += 2; - - dp--; - } - break; - } - case 4: - { - png_bytep sp = row + (png_size_t)((row_width - 1) >> 1); - png_bytep dp = row + (png_size_t)row_width - 1; - png_uint_32 shift = (int)((1 - ((row_width + 1) & 1)) << 2); - for (i = 0; i < row_width; i++) - { - *dp = (png_byte)((*sp >> shift) & 0xf); - if (shift == 4) - { - shift = 0; - sp--; - } - else - shift = 4; - - dp--; - } - break; - } - } - row_info->bit_depth = 8; - row_info->pixel_depth = (png_byte)(8 * row_info->channels); - row_info->rowbytes = row_width * row_info->channels; - } -} -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) -/* Reverse the effects of png_do_shift. This routine merely shifts the - * pixels back to their significant bits values. Thus, if you have - * a row of bit depth 8, but only 5 are significant, this will shift - * the values back to 0 through 31. - */ -void -png_do_unshift(png_row_infop row_info, png_bytep row, png_color_8p sig_bits) -{ - png_debug(1, "in png_do_unshift\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && sig_bits != NULL && -#endif - row_info->color_type != PNG_COLOR_TYPE_PALETTE) - { - int shift[4]; - int channels = 0; - int c; - png_uint_16 value = 0; - png_uint_32 row_width = row_info->width; - - if (row_info->color_type & PNG_COLOR_MASK_COLOR) - { - shift[channels++] = row_info->bit_depth - sig_bits->red; - shift[channels++] = row_info->bit_depth - sig_bits->green; - shift[channels++] = row_info->bit_depth - sig_bits->blue; - } - else - { - shift[channels++] = row_info->bit_depth - sig_bits->gray; - } - if (row_info->color_type & PNG_COLOR_MASK_ALPHA) - { - shift[channels++] = row_info->bit_depth - sig_bits->alpha; - } - - for (c = 0; c < channels; c++) - { - if (shift[c] <= 0) - shift[c] = 0; - else - value = 1; - } - - if (!value) - return; - - switch (row_info->bit_depth) - { - case 2: - { - png_bytep bp; - png_uint_32 i; - png_uint_32 istop = row_info->rowbytes; - - for (bp = row, i = 0; i < istop; i++) - { - *bp >>= 1; - *bp++ &= 0x55; - } - break; - } - case 4: - { - png_bytep bp = row; - png_uint_32 i; - png_uint_32 istop = row_info->rowbytes; - png_byte mask = (png_byte)(((int)0xf0 >> shift[0]) & (int)0xf0) | - (png_byte)((int)0xf >> shift[0]); - - for (i = 0; i < istop; i++) - { - *bp >>= shift[0]; - *bp++ &= mask; - } - break; - } - case 8: - { - png_bytep bp = row; - png_uint_32 i; - png_uint_32 istop = row_width * channels; - - for (i = 0; i < istop; i++) - { - *bp++ >>= shift[i%channels]; - } - break; - } - case 16: - { - png_bytep bp = row; - png_uint_32 i; - png_uint_32 istop = channels * row_width; - - for (i = 0; i < istop; i++) - { - value = (png_uint_16)((*bp << 8) + *(bp + 1)); - value >>= shift[i%channels]; - *bp++ = (png_byte)(value >> 8); - *bp++ = (png_byte)(value & 0xff); - } - break; - } - } - } -} -#endif - -#if defined(PNG_READ_16_TO_8_SUPPORTED) -/* chop rows of bit depth 16 down to 8 */ -void -png_do_chop(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_chop\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL && row_info->bit_depth == 16) -#else - if (row_info->bit_depth == 16) -#endif - { - png_bytep sp = row; - png_bytep dp = row; - png_uint_32 i; - png_uint_32 istop = row_info->width * row_info->channels; - - for (i = 0; i> 8)) >> 8; - * - * Approximate calculation with shift/add instead of multiply/divide: - * *dp = ((((png_uint_32)(*sp) << 8) | - * (png_uint_32)((int)(*(sp + 1)) - *sp)) + 128) >> 8; - * - * What we actually do to avoid extra shifting and conversion: - */ - - *dp = *sp + ((((int)(*(sp + 1)) - *sp) > 128) ? 1 : 0); -#else - /* Simply discard the low order byte */ - *dp = *sp; -#endif - } - row_info->bit_depth = 8; - row_info->pixel_depth = (png_byte)(8 * row_info->channels); - row_info->rowbytes = row_info->width * row_info->channels; - } -} -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) -void -png_do_read_swap_alpha(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_read_swap_alpha\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { - png_uint_32 row_width = row_info->width; - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - /* This converts from RGBA to ARGB */ - if (row_info->bit_depth == 8) - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save; - } - } - /* This converts from RRGGBBAA to AARRGGBB */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save[2]; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save[0] = *(--sp); - save[1] = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save[0]; - *(--dp) = save[1]; - } - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - /* This converts from GA to AG */ - if (row_info->bit_depth == 8) - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save; - } - } - /* This converts from GGAA to AAGG */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_byte save[2]; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - save[0] = *(--sp); - save[1] = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = save[0]; - *(--dp) = save[1]; - } - } - } - } -} -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) -void -png_do_read_invert_alpha(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_read_invert_alpha\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { - png_uint_32 row_width = row_info->width; - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - /* This inverts the alpha channel in RGBA */ - if (row_info->bit_depth == 8) - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = 255 - *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - } - /* This inverts the alpha channel in RRGGBBAA */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = 255 - *(--sp); - *(--dp) = 255 - *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - /* This inverts the alpha channel in GA */ - if (row_info->bit_depth == 8) - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = 255 - *(--sp); - *(--dp) = *(--sp); - } - } - /* This inverts the alpha channel in GGAA */ - else - { - png_bytep sp = row + row_info->rowbytes; - png_bytep dp = sp; - png_uint_32 i; - - for (i = 0; i < row_width; i++) - { - *(--dp) = 255 - *(--sp); - *(--dp) = 255 - *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - } - } - } -} -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) -/* Add filler channel if we have RGB color */ -void -png_do_read_filler(png_row_infop row_info, png_bytep row, - png_uint_32 filler, png_uint_32 flags) -{ - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - png_byte hi_filler = (png_byte)((filler>>8) & 0xff); - png_byte lo_filler = (png_byte)(filler & 0xff); - - png_debug(1, "in png_do_read_filler\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - if(row_info->bit_depth == 8) - { - /* This changes the data from G to GX */ - if (flags & PNG_FLAG_FILLER_AFTER) - { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 1; i < row_width; i++) - { - *(--dp) = lo_filler; - *(--dp) = *(--sp); - } - *(--dp) = lo_filler; - row_info->channels = 2; - row_info->pixel_depth = 16; - row_info->rowbytes = row_width * 2; - } - /* This changes the data from G to XG */ - else - { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = lo_filler; - } - row_info->channels = 2; - row_info->pixel_depth = 16; - row_info->rowbytes = row_width * 2; - } - } - else if(row_info->bit_depth == 16) - { - /* This changes the data from GG to GGXX */ - if (flags & PNG_FLAG_FILLER_AFTER) - { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 1; i < row_width; i++) - { - *(--dp) = hi_filler; - *(--dp) = lo_filler; - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - *(--dp) = hi_filler; - *(--dp) = lo_filler; - row_info->channels = 2; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 2; - } - /* This changes the data from GG to XXGG */ - else - { - png_bytep sp = row + (png_size_t)row_width; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = hi_filler; - *(--dp) = lo_filler; - } - row_info->channels = 2; - row_info->pixel_depth = 16; - row_info->rowbytes = row_width * 2; - } - } - } /* COLOR_TYPE == GRAY */ - else if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - if(row_info->bit_depth == 8) - { - /* This changes the data from RGB to RGBX */ - if (flags & PNG_FLAG_FILLER_AFTER) - { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 1; i < row_width; i++) - { - *(--dp) = lo_filler; - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - *(--dp) = lo_filler; - row_info->channels = 4; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - } - /* This changes the data from RGB to XRGB */ - else - { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = lo_filler; - } - row_info->channels = 4; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - } - } - else if(row_info->bit_depth == 16) - { - /* This changes the data from RRGGBB to RRGGBBXX */ - if (flags & PNG_FLAG_FILLER_AFTER) - { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 1; i < row_width; i++) - { - *(--dp) = hi_filler; - *(--dp) = lo_filler; - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - } - *(--dp) = hi_filler; - *(--dp) = lo_filler; - row_info->channels = 4; - row_info->pixel_depth = 64; - row_info->rowbytes = row_width * 4; - } - /* This changes the data from RRGGBB to XXRRGGBB */ - else - { - png_bytep sp = row + (png_size_t)row_width * 3; - png_bytep dp = sp + (png_size_t)row_width; - for (i = 0; i < row_width; i++) - { - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = *(--sp); - *(--dp) = hi_filler; - *(--dp) = lo_filler; - } - row_info->channels = 4; - row_info->pixel_depth = 64; - row_info->rowbytes = row_width * 4; - } - } - } /* COLOR_TYPE == RGB */ -} -#endif - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) -/* expand grayscale files to RGB, with or without alpha */ -void -png_do_gray_to_rgb(png_row_infop row_info, png_bytep row) -{ - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - png_debug(1, "in png_do_gray_to_rgb\n"); - if (row_info->bit_depth >= 8 && -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - !(row_info->color_type & PNG_COLOR_MASK_COLOR)) - { - if (row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - if (row_info->bit_depth == 8) - { - png_bytep sp = row + (png_size_t)row_width - 1; - png_bytep dp = sp + (png_size_t)row_width * 2; - for (i = 0; i < row_width; i++) - { - *(dp--) = *sp; - *(dp--) = *sp; - *(dp--) = *sp; - sp--; - } - } - else - { - png_bytep sp = row + (png_size_t)row_width * 2 - 1; - png_bytep dp = sp + (png_size_t)row_width * 4; - for (i = 0; i < row_width; i++) - { - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - sp--; - sp--; - } - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (row_info->bit_depth == 8) - { - png_bytep sp = row + (png_size_t)row_width * 2 - 1; - png_bytep dp = sp + (png_size_t)row_width * 2; - for (i = 0; i < row_width; i++) - { - *(dp--) = *(sp--); - *(dp--) = *sp; - *(dp--) = *sp; - *(dp--) = *sp; - sp--; - } - } - else - { - png_bytep sp = row + (png_size_t)row_width * 4 - 1; - png_bytep dp = sp + (png_size_t)row_width * 4; - for (i = 0; i < row_width; i++) - { - *(dp--) = *(sp--); - *(dp--) = *(sp--); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - *(dp--) = *sp; - *(dp--) = *(sp - 1); - sp--; - sp--; - } - } - } - row_info->channels += (png_byte)2; - row_info->color_type |= PNG_COLOR_MASK_COLOR; - row_info->pixel_depth = (png_byte)(row_info->channels * - row_info->bit_depth); - row_info->rowbytes = ((row_width * - row_info->pixel_depth + 7) >> 3); - } -} -#endif - -#if defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) -/* reduce RGB files to grayscale, with or without alpha - * using the equation given in Poynton's ColorFAQ at - * - * Copyright (c) 1998-01-04 Charles Poynton poynton@inforamp.net - * - * Y = 0.212671 * R + 0.715160 * G + 0.072169 * B - * - * We approximate this with - * - * Y = 0.211 * R + 0.715 * G + 0.074 * B - * - * which can be expressed with integers as - * - * Y = (54 * R + 183 * G + 19 * B)/256 - * - * The calculation is to be done in a linear colorspace. - * - * Other integer coefficents can be used via png_set_rgb_to_gray(). - */ -int -png_do_rgb_to_gray(png_structp png_ptr, png_row_infop row_info, png_bytep row) - -{ - png_uint_32 i; - - png_uint_32 row_width = row_info->width; - int rgb_error = 0; - - png_debug(1, "in png_do_rgb_to_gray\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - (row_info->color_type & PNG_COLOR_MASK_COLOR)) - { - png_byte rc = png_ptr->rgb_to_gray_red_coeff; - png_byte gc = png_ptr->rgb_to_gray_green_coeff; - png_byte bc = png_ptr->rgb_to_gray_blue_coeff; - - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - if (row_info->bit_depth == 8) - { -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->gamma_from_1 != NULL && png_ptr->gamma_to_1 != NULL) - { - png_bytep sp = row; - png_bytep dp = row; - - for (i = 0; i < row_width; i++) - { - png_byte red = png_ptr->gamma_to_1[*(sp++)]; - png_byte green = png_ptr->gamma_to_1[*(sp++)]; - png_byte blue = png_ptr->gamma_to_1[*(sp++)]; - if(red != green || red != blue) - { - rgb_error |= 1; - *(dp++) = png_ptr->gamma_from_1[ - (rc*red+gc*green+bc*blue)>>8]; - } - else - *(dp++) = *(sp-1); - } - } - else -#endif - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_byte red = *(sp++); - png_byte green = *(sp++); - png_byte blue = *(sp++); - if(red != green || red != blue) - { - rgb_error |= 1; - *(dp++) = (rc*red+gc*green+bc*blue)>>8; - } - else - *(dp++) = *(sp-1); - } - } - } - - else /* RGB bit_depth == 16 */ - { -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->gamma_16_to_1 != NULL && - png_ptr->gamma_16_from_1 != NULL) - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 red, green, blue, w; - - red = ((*(sp))<<8) | *(sp+1); sp+=2; - green = ((*(sp))<<8) | *(sp+1); sp+=2; - blue = ((*(sp))<<8) | *(sp+1); sp+=2; - - if(red == green && red == blue) - w = red; - else - { - png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) >> - png_ptr->gamma_shift][red>>8]; - png_uint_16 green_1 = png_ptr->gamma_16_to_1[(green&0xff) >> - png_ptr->gamma_shift][green>>8]; - png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) >> - png_ptr->gamma_shift][blue>>8]; - png_uint_16 gray16 = (rc * red_1 + gc * green_1 - + bc * blue_1)>>8; - w = png_ptr->gamma_16_from_1[(gray16&0xff) >> - png_ptr->gamma_shift][gray16 >> 8]; - rgb_error |= 1; - } - - *(dp++) = (w>>8) & 0xff; - *(dp++) = w & 0xff; - } - } - else -#endif - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 red, green, blue, gray16; - - red = ((*(sp))<<8) | *(sp+1); sp+=2; - green = ((*(sp))<<8) | *(sp+1); sp+=2; - blue = ((*(sp))<<8) | *(sp+1); sp+=2; - - if(red != green || red != blue) - rgb_error |= 1; - gray16 = (rc * red + gc * green + bc * blue)>>8; - *(dp++) = (gray16>>8) & 0xff; - *(dp++) = gray16 & 0xff; - } - } - } - } - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - if (row_info->bit_depth == 8) - { -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->gamma_from_1 != NULL && png_ptr->gamma_to_1 != NULL) - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_byte red = png_ptr->gamma_to_1[*(sp++)]; - png_byte green = png_ptr->gamma_to_1[*(sp++)]; - png_byte blue = png_ptr->gamma_to_1[*(sp++)]; - if(red != green || red != blue) - rgb_error |= 1; - *(dp++) = png_ptr->gamma_from_1 - [(rc*red + gc*green + bc*blue)>>8]; - *(dp++) = *(sp++); /* alpha */ - } - } - else -#endif - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_byte red = *(sp++); - png_byte green = *(sp++); - png_byte blue = *(sp++); - if(red != green || red != blue) - rgb_error |= 1; - *(dp++) = (gc*red + gc*green + bc*blue)>>8; - *(dp++) = *(sp++); /* alpha */ - } - } - } - else /* RGBA bit_depth == 16 */ - { -#if defined(PNG_READ_GAMMA_SUPPORTED) || defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->gamma_16_to_1 != NULL && - png_ptr->gamma_16_from_1 != NULL) - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 red, green, blue, w; - - red = ((*(sp))<<8) | *(sp+1); sp+=2; - green = ((*(sp))<<8) | *(sp+1); sp+=2; - blue = ((*(sp))<<8) | *(sp+1); sp+=2; - - if(red == green && red == blue) - w = red; - else - { - png_uint_16 red_1 = png_ptr->gamma_16_to_1[(red&0xff) >> - png_ptr->gamma_shift][red>>8]; - png_uint_16 green_1 = png_ptr->gamma_16_to_1[(green&0xff) >> - png_ptr->gamma_shift][green>>8]; - png_uint_16 blue_1 = png_ptr->gamma_16_to_1[(blue&0xff) >> - png_ptr->gamma_shift][blue>>8]; - png_uint_16 gray16 = (rc * red_1 + gc * green_1 - + bc * blue_1)>>8; - w = png_ptr->gamma_16_from_1[(gray16&0xff) >> - png_ptr->gamma_shift][gray16 >> 8]; - rgb_error |= 1; - } - - *(dp++) = (w>>8) & 0xff; - *(dp++) = w & 0xff; - *(dp++) = *(sp++); /* alpha */ - *(dp++) = *(sp++); - } - } - else -#endif - { - png_bytep sp = row; - png_bytep dp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 red, green, blue, gray16; - red = (*(sp)<<8) | *(sp+1); sp+=2; - green = (*(sp)<<8) | *(sp+1); sp+=2; - blue = (*(sp)<<8) | *(sp+1); sp+=2; - if(red != green || red != blue) - rgb_error |= 1; - gray16 = (rc * red + gc * green + bc * blue)>>8; - *(dp++) = (gray16>>8) & 0xff; - *(dp++) = gray16 & 0xff; - *(dp++) = *(sp++); /* alpha */ - *(dp++) = *(sp++); - } - } - } - } - row_info->channels -= (png_byte)2; - row_info->color_type &= ~PNG_COLOR_MASK_COLOR; - row_info->pixel_depth = (png_byte)(row_info->channels * - row_info->bit_depth); - row_info->rowbytes = ((row_width * - row_info->pixel_depth + 7) >> 3); - } - return rgb_error; -} -#endif - -/* Build a grayscale palette. Palette is assumed to be 1 << bit_depth - * large of png_color. This lets grayscale images be treated as - * paletted. Most useful for gamma correction and simplification - * of code. - */ -void -png_build_grayscale_palette(int bit_depth, png_colorp palette) -{ - int num_palette; - int color_inc; - int i; - int v; - - png_debug(1, "in png_do_build_grayscale_palette\n"); - if (palette == NULL) - return; - - switch (bit_depth) - { - case 1: - num_palette = 2; - color_inc = 0xff; - break; - case 2: - num_palette = 4; - color_inc = 0x55; - break; - case 4: - num_palette = 16; - color_inc = 0x11; - break; - case 8: - num_palette = 256; - color_inc = 1; - break; - default: - num_palette = 0; - color_inc = 0; - break; - } - - for (i = 0, v = 0; i < num_palette; i++, v += color_inc) - { - palette[i].red = (png_byte)v; - palette[i].green = (png_byte)v; - palette[i].blue = (png_byte)v; - } -} - -/* This function is currently unused. Do we really need it? */ -#if defined(PNG_READ_DITHER_SUPPORTED) && defined(PNG_CORRECT_PALETTE_SUPPORTED) -void -png_correct_palette(png_structp png_ptr, png_colorp palette, - int num_palette) -{ - png_debug(1, "in png_correct_palette\n"); -#if defined(PNG_READ_BACKGROUND_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED) - if (png_ptr->transformations & (PNG_GAMMA | PNG_BACKGROUND)) - { - png_color back, back_1; - - if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_FILE) - { - back.red = png_ptr->gamma_table[png_ptr->background.red]; - back.green = png_ptr->gamma_table[png_ptr->background.green]; - back.blue = png_ptr->gamma_table[png_ptr->background.blue]; - - back_1.red = png_ptr->gamma_to_1[png_ptr->background.red]; - back_1.green = png_ptr->gamma_to_1[png_ptr->background.green]; - back_1.blue = png_ptr->gamma_to_1[png_ptr->background.blue]; - } - else - { - double g; - - g = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma); - - if (png_ptr->background_gamma_type == PNG_BACKGROUND_GAMMA_SCREEN || - fabs(g - 1.0) < PNG_GAMMA_THRESHOLD) - { - back.red = png_ptr->background.red; - back.green = png_ptr->background.green; - back.blue = png_ptr->background.blue; - } - else - { - back.red = - (png_byte)(pow((double)png_ptr->background.red/255, g) * - 255.0 + 0.5); - back.green = - (png_byte)(pow((double)png_ptr->background.green/255, g) * - 255.0 + 0.5); - back.blue = - (png_byte)(pow((double)png_ptr->background.blue/255, g) * - 255.0 + 0.5); - } - - g = 1.0 / png_ptr->background_gamma; - - back_1.red = - (png_byte)(pow((double)png_ptr->background.red/255, g) * - 255.0 + 0.5); - back_1.green = - (png_byte)(pow((double)png_ptr->background.green/255, g) * - 255.0 + 0.5); - back_1.blue = - (png_byte)(pow((double)png_ptr->background.blue/255, g) * - 255.0 + 0.5); - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - png_uint_32 i; - - for (i = 0; i < (png_uint_32)num_palette; i++) - { - if (i < png_ptr->num_trans && png_ptr->trans[i] == 0) - { - palette[i] = back; - } - else if (i < png_ptr->num_trans && png_ptr->trans[i] != 0xff) - { - png_byte v, w; - - v = png_ptr->gamma_to_1[png_ptr->palette[i].red]; - png_composite(w, v, png_ptr->trans[i], back_1.red); - palette[i].red = png_ptr->gamma_from_1[w]; - - v = png_ptr->gamma_to_1[png_ptr->palette[i].green]; - png_composite(w, v, png_ptr->trans[i], back_1.green); - palette[i].green = png_ptr->gamma_from_1[w]; - - v = png_ptr->gamma_to_1[png_ptr->palette[i].blue]; - png_composite(w, v, png_ptr->trans[i], back_1.blue); - palette[i].blue = png_ptr->gamma_from_1[w]; - } - else - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - } - } - else - { - int i; - - for (i = 0; i < num_palette; i++) - { - if (palette[i].red == (png_byte)png_ptr->trans_values.gray) - { - palette[i] = back; - } - else - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - } - } - } - else -#endif -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (png_ptr->transformations & PNG_GAMMA) - { - int i; - - for (i = 0; i < num_palette; i++) - { - palette[i].red = png_ptr->gamma_table[palette[i].red]; - palette[i].green = png_ptr->gamma_table[palette[i].green]; - palette[i].blue = png_ptr->gamma_table[palette[i].blue]; - } - } -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - else -#endif -#endif -#if defined(PNG_READ_BACKGROUND_SUPPORTED) - if (png_ptr->transformations & PNG_BACKGROUND) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - png_color back; - - back.red = (png_byte)png_ptr->background.red; - back.green = (png_byte)png_ptr->background.green; - back.blue = (png_byte)png_ptr->background.blue; - - for (i = 0; i < (int)png_ptr->num_trans; i++) - { - if (png_ptr->trans[i] == 0) - { - palette[i].red = back.red; - palette[i].green = back.green; - palette[i].blue = back.blue; - } - else if (png_ptr->trans[i] != 0xff) - { - png_composite(palette[i].red, png_ptr->palette[i].red, - png_ptr->trans[i], back.red); - png_composite(palette[i].green, png_ptr->palette[i].green, - png_ptr->trans[i], back.green); - png_composite(palette[i].blue, png_ptr->palette[i].blue, - png_ptr->trans[i], back.blue); - } - } - } - else /* assume grayscale palette (what else could it be?) */ - { - int i; - - for (i = 0; i < num_palette; i++) - { - if (i == (png_byte)png_ptr->trans_values.gray) - { - palette[i].red = (png_byte)png_ptr->background.red; - palette[i].green = (png_byte)png_ptr->background.green; - palette[i].blue = (png_byte)png_ptr->background.blue; - } - } - } - } -#endif -} -#endif - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) -/* Replace any alpha or transparency with the supplied background color. - * "background" is already in the screen gamma, while "background_1" is - * at a gamma of 1.0. Paletted files have already been taken care of. - */ -void -png_do_background(png_row_infop row_info, png_bytep row, - png_color_16p trans_values, png_color_16p background, - png_color_16p background_1, - png_bytep gamma_table, png_bytep gamma_from_1, png_bytep gamma_to_1, - png_uint_16pp gamma_16, png_uint_16pp gamma_16_from_1, - png_uint_16pp gamma_16_to_1, int gamma_shift) -{ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - int shift; - - png_debug(1, "in png_do_background\n"); - if (background != NULL && -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - (!(row_info->color_type & PNG_COLOR_MASK_ALPHA) || - (row_info->color_type != PNG_COLOR_TYPE_PALETTE && trans_values))) - { - switch (row_info->color_type) - { - case PNG_COLOR_TYPE_GRAY: - { - switch (row_info->bit_depth) - { - case 1: - { - sp = row; - shift = 7; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x1) - == trans_values->gray) - { - *sp &= (png_byte)((0x7f7f >> (7 - shift)) & 0xff); - *sp |= (png_byte)(background->gray << shift); - } - if (!shift) - { - shift = 7; - sp++; - } - else - shift--; - } - break; - } - case 2: - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_table != NULL) - { - sp = row; - shift = 6; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x3) - == trans_values->gray) - { - *sp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff); - *sp |= (png_byte)(background->gray << shift); - } - else - { - png_byte p = (*sp >> shift) & 0x3; - png_byte g = (gamma_table [p | (p << 2) | (p << 4) | - (p << 6)] >> 6) & 0x3; - *sp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff); - *sp |= (png_byte)(g << shift); - } - if (!shift) - { - shift = 6; - sp++; - } - else - shift -= 2; - } - } - else -#endif - { - sp = row; - shift = 6; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0x3) - == trans_values->gray) - { - *sp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff); - *sp |= (png_byte)(background->gray << shift); - } - if (!shift) - { - shift = 6; - sp++; - } - else - shift -= 2; - } - } - break; - } - case 4: - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_table != NULL) - { - sp = row; - shift = 4; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0xf) - == trans_values->gray) - { - *sp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff); - *sp |= (png_byte)(background->gray << shift); - } - else - { - png_byte p = (*sp >> shift) & 0xf; - png_byte g = (gamma_table[p | (p << 4)] >> 4) & 0xf; - *sp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff); - *sp |= (png_byte)(g << shift); - } - if (!shift) - { - shift = 4; - sp++; - } - else - shift -= 4; - } - } - else -#endif - { - sp = row; - shift = 4; - for (i = 0; i < row_width; i++) - { - if ((png_uint_16)((*sp >> shift) & 0xf) - == trans_values->gray) - { - *sp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff); - *sp |= (png_byte)(background->gray << shift); - } - if (!shift) - { - shift = 4; - sp++; - } - else - shift -= 4; - } - } - break; - } - case 8: - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_table != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp++) - { - if (*sp == trans_values->gray) - { - *sp = (png_byte)background->gray; - } - else - { - *sp = gamma_table[*sp]; - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp++) - { - if (*sp == trans_values->gray) - { - *sp = (png_byte)background->gray; - } - } - } - break; - } - case 16: - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_16 != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 2) - { - png_uint_16 v; - - v = ((png_uint_16)(*sp) << 8) + *(sp + 1); - if (v == trans_values->gray) - { - /* background is already in screen gamma */ - *sp = (png_byte)((background->gray >> 8) & 0xff); - *(sp + 1) = (png_byte)(background->gray & 0xff); - } - else - { - v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 2) - { - png_uint_16 v; - - v = ((png_uint_16)(*sp) << 8) + *(sp + 1); - if (v == trans_values->gray) - { - *sp = (png_byte)((background->gray >> 8) & 0xff); - *(sp + 1) = (png_byte)(background->gray & 0xff); - } - } - } - break; - } - } - break; - } - case PNG_COLOR_TYPE_RGB: - { - if (row_info->bit_depth == 8) - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_table != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 3) - { - if (*sp == trans_values->red && - *(sp + 1) == trans_values->green && - *(sp + 2) == trans_values->blue) - { - *sp = (png_byte)background->red; - *(sp + 1) = (png_byte)background->green; - *(sp + 2) = (png_byte)background->blue; - } - else - { - *sp = gamma_table[*sp]; - *(sp + 1) = gamma_table[*(sp + 1)]; - *(sp + 2) = gamma_table[*(sp + 2)]; - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 3) - { - if (*sp == trans_values->red && - *(sp + 1) == trans_values->green && - *(sp + 2) == trans_values->blue) - { - *sp = (png_byte)background->red; - *(sp + 1) = (png_byte)background->green; - *(sp + 2) = (png_byte)background->blue; - } - } - } - } - else /* if (row_info->bit_depth == 16) */ - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_16 != NULL) - { - sp = row; - for (i = 0; i < row_width; i++, sp += 6) - { - png_uint_16 r = ((png_uint_16)(*sp) << 8) + *(sp + 1); - png_uint_16 g = ((png_uint_16)(*(sp + 2)) << 8) + *(sp + 3); - png_uint_16 b = ((png_uint_16)(*(sp + 4)) << 8) + *(sp + 5); - if (r == trans_values->red && g == trans_values->green && - b == trans_values->blue) - { - /* background is already in screen gamma */ - *sp = (png_byte)((background->red >> 8) & 0xff); - *(sp + 1) = (png_byte)(background->red & 0xff); - *(sp + 2) = (png_byte)((background->green >> 8) & 0xff); - *(sp + 3) = (png_byte)(background->green & 0xff); - *(sp + 4) = (png_byte)((background->blue >> 8) & 0xff); - *(sp + 5) = (png_byte)(background->blue & 0xff); - } - else - { - png_uint_16 v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - v = gamma_16[*(sp + 3) >> gamma_shift][*(sp + 2)]; - *(sp + 2) = (png_byte)((v >> 8) & 0xff); - *(sp + 3) = (png_byte)(v & 0xff); - v = gamma_16[*(sp + 5) >> gamma_shift][*(sp + 4)]; - *(sp + 4) = (png_byte)((v >> 8) & 0xff); - *(sp + 5) = (png_byte)(v & 0xff); - } - } - } - else -#endif - { - sp = row; - for (i = 0; i < row_width; i++, sp += 6) - { - png_uint_16 r = ((png_uint_16)(*sp) << 8) + *(sp + 1); - png_uint_16 g = ((png_uint_16)(*(sp + 2)) << 8) + *(sp + 3); - png_uint_16 b = ((png_uint_16)(*(sp + 4)) << 8) + *(sp + 5); - - if (r == trans_values->red && g == trans_values->green && - b == trans_values->blue) - { - *sp = (png_byte)((background->red >> 8) & 0xff); - *(sp + 1) = (png_byte)(background->red & 0xff); - *(sp + 2) = (png_byte)((background->green >> 8) & 0xff); - *(sp + 3) = (png_byte)(background->green & 0xff); - *(sp + 4) = (png_byte)((background->blue >> 8) & 0xff); - *(sp + 5) = (png_byte)(background->blue & 0xff); - } - } - } - } - break; - } - case PNG_COLOR_TYPE_GRAY_ALPHA: - { - if (row_info->bit_depth == 8) - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_to_1 != NULL && gamma_from_1 != NULL && - gamma_table != NULL) - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 2, dp++) - { - png_uint_16 a = *(sp + 1); - - if (a == 0xff) - { - *dp = gamma_table[*sp]; - } - else if (a == 0) - { - /* background is already in screen gamma */ - *dp = (png_byte)background->gray; - } - else - { - png_byte v, w; - - v = gamma_to_1[*sp]; - png_composite(w, v, a, background_1->gray); - *dp = gamma_from_1[w]; - } - } - } - else -#endif - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 2, dp++) - { - png_byte a = *(sp + 1); - - if (a == 0xff) - { - *dp = *sp; - } - else if (a == 0) - { - *dp = (png_byte)background->gray; - } - else - { - png_composite(*dp, *sp, a, background_1->gray); - } - } - } - } - else /* if (png_ptr->bit_depth == 16) */ - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_16 != NULL && gamma_16_from_1 != NULL && - gamma_16_to_1 != NULL) - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 4, dp += 2) - { - png_uint_16 a = ((png_uint_16)(*(sp + 2)) << 8) + *(sp + 3); - - if (a == (png_uint_16)0xffff) - { - png_uint_16 v; - - v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *dp = (png_byte)((v >> 8) & 0xff); - *(dp + 1) = (png_byte)(v & 0xff); - } - else if (a == 0) - { - /* background is already in screen gamma */ - *dp = (png_byte)((background->gray >> 8) & 0xff); - *(dp + 1) = (png_byte)(background->gray & 0xff); - } - else - { - png_uint_16 g, v, w; - - g = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp]; - png_composite_16(v, g, a, background_1->gray); - w = gamma_16_from_1[(v&0xff) >> gamma_shift][v >> 8]; - *dp = (png_byte)((w >> 8) & 0xff); - *(dp + 1) = (png_byte)(w & 0xff); - } - } - } - else -#endif - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 4, dp += 2) - { - png_uint_16 a = ((png_uint_16)(*(sp + 2)) << 8) + *(sp + 3); - if (a == (png_uint_16)0xffff) - { - png_memcpy(dp, sp, 2); - } - else if (a == 0) - { - *dp = (png_byte)((background->gray >> 8) & 0xff); - *(dp + 1) = (png_byte)(background->gray & 0xff); - } - else - { - png_uint_16 g, v; - - g = ((png_uint_16)(*sp) << 8) + *(sp + 1); - png_composite_16(v, g, a, background_1->gray); - *dp = (png_byte)((v >> 8) & 0xff); - *(dp + 1) = (png_byte)(v & 0xff); - } - } - } - } - break; - } - case PNG_COLOR_TYPE_RGB_ALPHA: - { - if (row_info->bit_depth == 8) - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_to_1 != NULL && gamma_from_1 != NULL && - gamma_table != NULL) - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 4, dp += 3) - { - png_byte a = *(sp + 3); - - if (a == 0xff) - { - *dp = gamma_table[*sp]; - *(dp + 1) = gamma_table[*(sp + 1)]; - *(dp + 2) = gamma_table[*(sp + 2)]; - } - else if (a == 0) - { - /* background is already in screen gamma */ - *dp = (png_byte)background->red; - *(dp + 1) = (png_byte)background->green; - *(dp + 2) = (png_byte)background->blue; - } - else - { - png_byte v, w; - - v = gamma_to_1[*sp]; - png_composite(w, v, a, background_1->red); - *dp = gamma_from_1[w]; - v = gamma_to_1[*(sp + 1)]; - png_composite(w, v, a, background_1->green); - *(dp + 1) = gamma_from_1[w]; - v = gamma_to_1[*(sp + 2)]; - png_composite(w, v, a, background_1->blue); - *(dp + 2) = gamma_from_1[w]; - } - } - } - else -#endif - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 4, dp += 3) - { - png_byte a = *(sp + 3); - - if (a == 0xff) - { - *dp = *sp; - *(dp + 1) = *(sp + 1); - *(dp + 2) = *(sp + 2); - } - else if (a == 0) - { - *dp = (png_byte)background->red; - *(dp + 1) = (png_byte)background->green; - *(dp + 2) = (png_byte)background->blue; - } - else - { - png_composite(*dp, *sp, a, background->red); - png_composite(*(dp + 1), *(sp + 1), a, - background->green); - png_composite(*(dp + 2), *(sp + 2), a, - background->blue); - } - } - } - } - else /* if (row_info->bit_depth == 16) */ - { -#if defined(PNG_READ_GAMMA_SUPPORTED) - if (gamma_16 != NULL && gamma_16_from_1 != NULL && - gamma_16_to_1 != NULL) - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 8, dp += 6) - { - png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6)) - << 8) + (png_uint_16)(*(sp + 7))); - if (a == (png_uint_16)0xffff) - { - png_uint_16 v; - - v = gamma_16[*(sp + 1) >> gamma_shift][*sp]; - *dp = (png_byte)((v >> 8) & 0xff); - *(dp + 1) = (png_byte)(v & 0xff); - v = gamma_16[*(sp + 3) >> gamma_shift][*(sp + 2)]; - *(dp + 2) = (png_byte)((v >> 8) & 0xff); - *(dp + 3) = (png_byte)(v & 0xff); - v = gamma_16[*(sp + 5) >> gamma_shift][*(sp + 4)]; - *(dp + 4) = (png_byte)((v >> 8) & 0xff); - *(dp + 5) = (png_byte)(v & 0xff); - } - else if (a == 0) - { - /* background is already in screen gamma */ - *dp = (png_byte)((background->red >> 8) & 0xff); - *(dp + 1) = (png_byte)(background->red & 0xff); - *(dp + 2) = (png_byte)((background->green >> 8) & 0xff); - *(dp + 3) = (png_byte)(background->green & 0xff); - *(dp + 4) = (png_byte)((background->blue >> 8) & 0xff); - *(dp + 5) = (png_byte)(background->blue & 0xff); - } - else - { - png_uint_16 v, w, x; - - v = gamma_16_to_1[*(sp + 1) >> gamma_shift][*sp]; - png_composite_16(w, v, a, background->red); - x = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8]; - *dp = (png_byte)((x >> 8) & 0xff); - *(dp + 1) = (png_byte)(x & 0xff); - v = gamma_16_to_1[*(sp + 3) >> gamma_shift][*(sp + 2)]; - png_composite_16(w, v, a, background->green); - x = gamma_16_from_1[((w&0xff) >> gamma_shift)][w >> 8]; - *(dp + 2) = (png_byte)((x >> 8) & 0xff); - *(dp + 3) = (png_byte)(x & 0xff); - v = gamma_16_to_1[*(sp + 5) >> gamma_shift][*(sp + 4)]; - png_composite_16(w, v, a, background->blue); - x = gamma_16_from_1[(w & 0xff) >> gamma_shift][w >> 8]; - *(dp + 4) = (png_byte)((x >> 8) & 0xff); - *(dp + 5) = (png_byte)(x & 0xff); - } - } - } - else -#endif - { - sp = row; - dp = row; - for (i = 0; i < row_width; i++, sp += 8, dp += 6) - { - png_uint_16 a = (png_uint_16)(((png_uint_16)(*(sp + 6)) - << 8) + (png_uint_16)(*(sp + 7))); - if (a == (png_uint_16)0xffff) - { - png_memcpy(dp, sp, 6); - } - else if (a == 0) - { - *dp = (png_byte)((background->red >> 8) & 0xff); - *(dp + 1) = (png_byte)(background->red & 0xff); - *(dp + 2) = (png_byte)((background->green >> 8) & 0xff); - *(dp + 3) = (png_byte)(background->green & 0xff); - *(dp + 4) = (png_byte)((background->blue >> 8) & 0xff); - *(dp + 5) = (png_byte)(background->blue & 0xff); - } - else - { - png_uint_16 v; - - png_uint_16 r = ((png_uint_16)(*sp) << 8) + *(sp + 1); - png_uint_16 g = ((png_uint_16)(*(sp + 2)) << 8) - + *(sp + 3); - png_uint_16 b = ((png_uint_16)(*(sp + 4)) << 8) - + *(sp + 5); - - png_composite_16(v, r, a, background->red); - *dp = (png_byte)((v >> 8) & 0xff); - *(dp + 1) = (png_byte)(v & 0xff); - png_composite_16(v, g, a, background->green); - *(dp + 2) = (png_byte)((v >> 8) & 0xff); - *(dp + 3) = (png_byte)(v & 0xff); - png_composite_16(v, b, a, background->blue); - *(dp + 4) = (png_byte)((v >> 8) & 0xff); - *(dp + 5) = (png_byte)(v & 0xff); - } - } - } - } - break; - } - } - - if (row_info->color_type & PNG_COLOR_MASK_ALPHA) - { - row_info->color_type &= ~PNG_COLOR_MASK_ALPHA; - row_info->channels--; - row_info->pixel_depth = (png_byte)(row_info->channels * - row_info->bit_depth); - row_info->rowbytes = ((row_width * - row_info->pixel_depth + 7) >> 3); - } - } -} -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) -/* Gamma correct the image, avoiding the alpha channel. Make sure - * you do this after you deal with the transparency issue on grayscale - * or rgb images. If your bit depth is 8, use gamma_table, if it - * is 16, use gamma_16_table and gamma_shift. Build these with - * build_gamma_table(). - */ -void -png_do_gamma(png_row_infop row_info, png_bytep row, - png_bytep gamma_table, png_uint_16pp gamma_16_table, - int gamma_shift) -{ - png_bytep sp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_gamma\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - ((row_info->bit_depth <= 8 && gamma_table != NULL) || - (row_info->bit_depth == 16 && gamma_16_table != NULL))) - { - switch (row_info->color_type) - { - case PNG_COLOR_TYPE_RGB: - { - if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp++; - *sp = gamma_table[*sp]; - sp++; - *sp = gamma_table[*sp]; - sp++; - } - } - else /* if (row_info->bit_depth == 16) */ - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v; - - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - } - } - break; - } - case PNG_COLOR_TYPE_RGB_ALPHA: - { - if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp++; - *sp = gamma_table[*sp]; - sp++; - *sp = gamma_table[*sp]; - sp++; - sp++; - } - } - else /* if (row_info->bit_depth == 16) */ - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 4; - } - } - break; - } - case PNG_COLOR_TYPE_GRAY_ALPHA: - { - if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp += 2; - } - } - else /* if (row_info->bit_depth == 16) */ - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 4; - } - } - break; - } - case PNG_COLOR_TYPE_GRAY: - { - if (row_info->bit_depth == 2) - { - sp = row; - for (i = 0; i < row_width; i += 4) - { - int a = *sp & 0xc0; - int b = *sp & 0x30; - int c = *sp & 0x0c; - int d = *sp & 0x03; - - *sp = ((((int)gamma_table[a|(a>>2)|(a>>4)|(a>>6)]) ) & 0xc0)| - ((((int)gamma_table[(b<<2)|b|(b>>2)|(b>>4)])>>2) & 0x30)| - ((((int)gamma_table[(c<<4)|(c<<2)|c|(c>>2)])>>4) & 0x0c)| - ((((int)gamma_table[(d<<6)|(d<<4)|(d<<2)|d])>>6) ); - sp++; - } - } - if (row_info->bit_depth == 4) - { - sp = row; - for (i = 0; i < row_width; i += 2) - { - int msb = *sp & 0xf0; - int lsb = *sp & 0x0f; - - *sp = (((int)gamma_table[msb | (msb >> 4)]) & 0xf0) | - (((int)gamma_table[(lsb << 4) | lsb]) >> 4); - sp++; - } - } - else if (row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++) - { - *sp = gamma_table[*sp]; - sp++; - } - } - else if (row_info->bit_depth == 16) - { - sp = row; - for (i = 0; i < row_width; i++) - { - png_uint_16 v = gamma_16_table[*(sp + 1) >> gamma_shift][*sp]; - *sp = (png_byte)((v >> 8) & 0xff); - *(sp + 1) = (png_byte)(v & 0xff); - sp += 2; - } - } - break; - } - } - } -} -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) -/* Expands a palette row to an rgb or rgba row depending - * upon whether you supply trans and num_trans. - */ -void -png_do_expand_palette(png_row_infop row_info, png_bytep row, - png_colorp palette, png_bytep trans, int num_trans) -{ - int shift, value; - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_expand_palette\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - row_info->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (row_info->bit_depth < 8) - { - switch (row_info->bit_depth) - { - case 1: - { - sp = row + (png_size_t)((row_width - 1) >> 3); - dp = row + (png_size_t)row_width - 1; - shift = 7 - (int)((row_width + 7) & 7); - for (i = 0; i < row_width; i++) - { - if ((*sp >> shift) & 0x1) - *dp = 1; - else - *dp = 0; - if (shift == 7) - { - shift = 0; - sp--; - } - else - shift++; - - dp--; - } - break; - } - case 2: - { - sp = row + (png_size_t)((row_width - 1) >> 2); - dp = row + (png_size_t)row_width - 1; - shift = (int)((3 - ((row_width + 3) & 3)) << 1); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0x3; - *dp = (png_byte)value; - if (shift == 6) - { - shift = 0; - sp--; - } - else - shift += 2; - - dp--; - } - break; - } - case 4: - { - sp = row + (png_size_t)((row_width - 1) >> 1); - dp = row + (png_size_t)row_width - 1; - shift = (int)((row_width & 1) << 2); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0xf; - *dp = (png_byte)value; - if (shift == 4) - { - shift = 0; - sp--; - } - else - shift += 4; - - dp--; - } - break; - } - } - row_info->bit_depth = 8; - row_info->pixel_depth = 8; - row_info->rowbytes = row_width; - } - switch (row_info->bit_depth) - { - case 8: - { - if (trans != NULL) - { - sp = row + (png_size_t)row_width - 1; - dp = row + (png_size_t)(row_width << 2) - 1; - - for (i = 0; i < row_width; i++) - { - if ((int)(*sp) >= num_trans) - *dp-- = 0xff; - else - *dp-- = trans[*sp]; - *dp-- = palette[*sp].blue; - *dp-- = palette[*sp].green; - *dp-- = palette[*sp].red; - sp--; - } - row_info->bit_depth = 8; - row_info->pixel_depth = 32; - row_info->rowbytes = row_width * 4; - row_info->color_type = 6; - row_info->channels = 4; - } - else - { - sp = row + (png_size_t)row_width - 1; - dp = row + (png_size_t)(row_width * 3) - 1; - - for (i = 0; i < row_width; i++) - { - *dp-- = palette[*sp].blue; - *dp-- = palette[*sp].green; - *dp-- = palette[*sp].red; - sp--; - } - row_info->bit_depth = 8; - row_info->pixel_depth = 24; - row_info->rowbytes = row_width * 3; - row_info->color_type = 2; - row_info->channels = 3; - } - break; - } - } - } -} - -/* If the bit depth < 8, it is expanded to 8. Also, if the - * transparency value is supplied, an alpha channel is built. - */ -void -png_do_expand(png_row_infop row_info, png_bytep row, - png_color_16p trans_value) -{ - int shift, value; - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_expand\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { - if (row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - png_uint_16 gray = trans_value ? trans_value->gray : 0; - - if (row_info->bit_depth < 8) - { - switch (row_info->bit_depth) - { - case 1: - { - gray *= 0xff; - sp = row + (png_size_t)((row_width - 1) >> 3); - dp = row + (png_size_t)row_width - 1; - shift = 7 - (int)((row_width + 7) & 7); - for (i = 0; i < row_width; i++) - { - if ((*sp >> shift) & 0x1) - *dp = 0xff; - else - *dp = 0; - if (shift == 7) - { - shift = 0; - sp--; - } - else - shift++; - - dp--; - } - break; - } - case 2: - { - gray *= 0x55; - sp = row + (png_size_t)((row_width - 1) >> 2); - dp = row + (png_size_t)row_width - 1; - shift = (int)((3 - ((row_width + 3) & 3)) << 1); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0x3; - *dp = (png_byte)(value | (value << 2) | (value << 4) | - (value << 6)); - if (shift == 6) - { - shift = 0; - sp--; - } - else - shift += 2; - - dp--; - } - break; - } - case 4: - { - gray *= 0x11; - sp = row + (png_size_t)((row_width - 1) >> 1); - dp = row + (png_size_t)row_width - 1; - shift = (int)((1 - ((row_width + 1) & 1)) << 2); - for (i = 0; i < row_width; i++) - { - value = (*sp >> shift) & 0xf; - *dp = (png_byte)(value | (value << 4)); - if (shift == 4) - { - shift = 0; - sp--; - } - else - shift = 4; - - dp--; - } - break; - } - } - row_info->bit_depth = 8; - row_info->pixel_depth = 8; - row_info->rowbytes = row_width; - } - - if (trans_value != NULL) - { - if (row_info->bit_depth == 8) - { - sp = row + (png_size_t)row_width - 1; - dp = row + (png_size_t)(row_width << 1) - 1; - for (i = 0; i < row_width; i++) - { - if (*sp == gray) - *dp-- = 0; - else - *dp-- = 0xff; - *dp-- = *sp--; - } - } - else if (row_info->bit_depth == 16) - { - sp = row + row_info->rowbytes - 1; - dp = row + (row_info->rowbytes << 1) - 1; - for (i = 0; i < row_width; i++) - { - if (((png_uint_16)*(sp) | - ((png_uint_16)*(sp - 1) << 8)) == gray) - { - *dp-- = 0; - *dp-- = 0; - } - else - { - *dp-- = 0xff; - *dp-- = 0xff; - } - *dp-- = *sp--; - *dp-- = *sp--; - } - } - row_info->color_type = PNG_COLOR_TYPE_GRAY_ALPHA; - row_info->channels = 2; - row_info->pixel_depth = (png_byte)(row_info->bit_depth << 1); - row_info->rowbytes = - ((row_width * row_info->pixel_depth) >> 3); - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_RGB && trans_value) - { - if (row_info->bit_depth == 8) - { - sp = row + (png_size_t)row_info->rowbytes - 1; - dp = row + (png_size_t)(row_width << 2) - 1; - for (i = 0; i < row_width; i++) - { - if (*(sp - 2) == trans_value->red && - *(sp - 1) == trans_value->green && - *(sp - 0) == trans_value->blue) - *dp-- = 0; - else - *dp-- = 0xff; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - } - } - else if (row_info->bit_depth == 16) - { - sp = row + row_info->rowbytes - 1; - dp = row + (png_size_t)(row_width << 3) - 1; - for (i = 0; i < row_width; i++) - { - if ((((png_uint_16)*(sp - 4) | - ((png_uint_16)*(sp - 5) << 8)) == trans_value->red) && - (((png_uint_16)*(sp - 2) | - ((png_uint_16)*(sp - 3) << 8)) == trans_value->green) && - (((png_uint_16)*(sp - 0) | - ((png_uint_16)*(sp - 1) << 8)) == trans_value->blue)) - { - *dp-- = 0; - *dp-- = 0; - } - else - { - *dp-- = 0xff; - *dp-- = 0xff; - } - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - *dp-- = *sp--; - } - } - row_info->color_type = PNG_COLOR_TYPE_RGB_ALPHA; - row_info->channels = 4; - row_info->pixel_depth = (png_byte)(row_info->bit_depth << 2); - row_info->rowbytes = - ((row_width * row_info->pixel_depth) >> 3); - } - } -} -#endif - -#if defined(PNG_READ_DITHER_SUPPORTED) -void -png_do_dither(png_row_infop row_info, png_bytep row, - png_bytep palette_lookup, png_bytep dither_lookup) -{ - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width=row_info->width; - - png_debug(1, "in png_do_dither\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB && - palette_lookup && row_info->bit_depth == 8) - { - int r, g, b, p; - sp = row; - dp = row; - for (i = 0; i < row_width; i++) - { - r = *sp++; - g = *sp++; - b = *sp++; - - /* this looks real messy, but the compiler will reduce - it down to a reasonable formula. For example, with - 5 bits per color, we get: - p = (((r >> 3) & 0x1f) << 10) | - (((g >> 3) & 0x1f) << 5) | - ((b >> 3) & 0x1f); - */ - p = (((r >> (8 - PNG_DITHER_RED_BITS)) & - ((1 << PNG_DITHER_RED_BITS) - 1)) << - (PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) | - (((g >> (8 - PNG_DITHER_GREEN_BITS)) & - ((1 << PNG_DITHER_GREEN_BITS) - 1)) << - (PNG_DITHER_BLUE_BITS)) | - ((b >> (8 - PNG_DITHER_BLUE_BITS)) & - ((1 << PNG_DITHER_BLUE_BITS) - 1)); - - *dp++ = palette_lookup[p]; - } - row_info->color_type = PNG_COLOR_TYPE_PALETTE; - row_info->channels = 1; - row_info->pixel_depth = row_info->bit_depth; - row_info->rowbytes = - ((row_width * row_info->pixel_depth + 7) >> 3); - } - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA && - palette_lookup != NULL && row_info->bit_depth == 8) - { - int r, g, b, p; - sp = row; - dp = row; - for (i = 0; i < row_width; i++) - { - r = *sp++; - g = *sp++; - b = *sp++; - sp++; - - p = (((r >> (8 - PNG_DITHER_RED_BITS)) & - ((1 << PNG_DITHER_RED_BITS) - 1)) << - (PNG_DITHER_GREEN_BITS + PNG_DITHER_BLUE_BITS)) | - (((g >> (8 - PNG_DITHER_GREEN_BITS)) & - ((1 << PNG_DITHER_GREEN_BITS) - 1)) << - (PNG_DITHER_BLUE_BITS)) | - ((b >> (8 - PNG_DITHER_BLUE_BITS)) & - ((1 << PNG_DITHER_BLUE_BITS) - 1)); - - *dp++ = palette_lookup[p]; - } - row_info->color_type = PNG_COLOR_TYPE_PALETTE; - row_info->channels = 1; - row_info->pixel_depth = row_info->bit_depth; - row_info->rowbytes = - ((row_width * row_info->pixel_depth + 7) >> 3); - } - else if (row_info->color_type == PNG_COLOR_TYPE_PALETTE && - dither_lookup && row_info->bit_depth == 8) - { - sp = row; - for (i = 0; i < row_width; i++, sp++) - { - *sp = dither_lookup[*sp]; - } - } - } -} -#endif - -#if defined(PNG_READ_GAMMA_SUPPORTED) -static int png_gamma_shift[] = - {0x10, 0x21, 0x42, 0x84, 0x110, 0x248, 0x550, 0xff0}; - -/* We build the 8- or 16-bit gamma tables here. Note that for 16-bit - * tables, we don't make a full table if we are reducing to 8-bit in - * the future. Note also how the gamma_16 tables are segmented so that - * we don't need to allocate > 64K chunks for a full 16-bit table. - */ -void -png_build_gamma_table(png_structp png_ptr) -{ - png_debug(1, "in png_build_gamma_table\n"); - if(png_ptr->gamma != 0.0) - { - if (png_ptr->bit_depth <= 8) - { - int i; - double g; - - if (png_ptr->screen_gamma > .000001) - g = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma); - else - g = 1.0; - - png_ptr->gamma_table = (png_bytep)png_malloc(png_ptr, - (png_uint_32)256); - - for (i = 0; i < 256; i++) - { - png_ptr->gamma_table[i] = (png_byte)(pow((double)i / 255.0, - g) * 255.0 + .5); - } - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - if (png_ptr->transformations & (PNG_BACKGROUND | PNG_RGB_TO_GRAY)) - { - - g = 1.0 / (png_ptr->gamma); - - png_ptr->gamma_to_1 = (png_bytep)png_malloc(png_ptr, - (png_uint_32)256); - - for (i = 0; i < 256; i++) - { - png_ptr->gamma_to_1[i] = (png_byte)(pow((double)i / 255.0, - g) * 255.0 + .5); - } - - - png_ptr->gamma_from_1 = (png_bytep)png_malloc(png_ptr, - (png_uint_32)256); - - if(png_ptr->screen_gamma > 0.000001) - g = 1.0 / png_ptr->screen_gamma; - else - g = png_ptr->gamma; /* probably doing rgb_to_gray */ - - for (i = 0; i < 256; i++) - { - png_ptr->gamma_from_1[i] = (png_byte)(pow((double)i / 255.0, - g) * 255.0 + .5); - - } - } -#endif /* PNG_READ_BACKGROUND_SUPPORTED || PNG_RGB_TO_GRAY_SUPPORTED */ - } - else - { - double g; - int i, j, shift, num; - int sig_bit; - png_uint_32 ig; - - if (png_ptr->color_type & PNG_COLOR_MASK_COLOR) - { - sig_bit = (int)png_ptr->sig_bit.red; - if ((int)png_ptr->sig_bit.green > sig_bit) - sig_bit = png_ptr->sig_bit.green; - if ((int)png_ptr->sig_bit.blue > sig_bit) - sig_bit = png_ptr->sig_bit.blue; - } - else - { - sig_bit = (int)png_ptr->sig_bit.gray; - } - - if (sig_bit > 0) - shift = 16 - sig_bit; - else - shift = 0; - - if (png_ptr->transformations & PNG_16_TO_8) - { - if (shift < (16 - PNG_MAX_GAMMA_8)) - shift = (16 - PNG_MAX_GAMMA_8); - } - - if (shift > 8) - shift = 8; - if (shift < 0) - shift = 0; - - png_ptr->gamma_shift = (png_byte)shift; - - num = (1 << (8 - shift)); - - if (png_ptr->screen_gamma > .000001) - g = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma); - else - g = 1.0; - - png_ptr->gamma_16_table = (png_uint_16pp)png_malloc(png_ptr, - (png_uint_32)(num * sizeof (png_uint_16p))); - - if (png_ptr->transformations & (PNG_16_TO_8 | PNG_BACKGROUND)) - { - double fin, fout; - png_uint_32 last, max; - - for (i = 0; i < num; i++) - { - png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)(256 * sizeof (png_uint_16))); - } - - g = 1.0 / g; - last = 0; - for (i = 0; i < 256; i++) - { - fout = ((double)i + 0.5) / 256.0; - fin = pow(fout, g); - max = (png_uint_32)(fin * (double)((png_uint_32)num << 8)); - while (last <= max) - { - png_ptr->gamma_16_table[(int)(last & (0xff >> shift))] - [(int)(last >> (8 - shift))] = (png_uint_16)( - (png_uint_16)i | ((png_uint_16)i << 8)); - last++; - } - } - while (last < ((png_uint_32)num << 8)) - { - png_ptr->gamma_16_table[(int)(last & (0xff >> shift))] - [(int)(last >> (8 - shift))] = (png_uint_16)65535L; - last++; - } - } - else - { - for (i = 0; i < num; i++) - { - png_ptr->gamma_16_table[i] = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)(256 * sizeof (png_uint_16))); - - ig = (((png_uint_32)i * (png_uint_32)png_gamma_shift[shift]) >> 4); - for (j = 0; j < 256; j++) - { - png_ptr->gamma_16_table[i][j] = - (png_uint_16)(pow((double)(ig + ((png_uint_32)j << 8)) / - 65535.0, g) * 65535.0 + .5); - } - } - } - -#if defined(PNG_READ_BACKGROUND_SUPPORTED) || \ - defined(PNG_READ_RGB_TO_GRAY_SUPPORTED) - if (png_ptr->transformations & (PNG_BACKGROUND | PNG_RGB_TO_GRAY)) - { - - g = 1.0 / (png_ptr->gamma); - - png_ptr->gamma_16_to_1 = (png_uint_16pp)png_malloc(png_ptr, - (png_uint_32)(num * sizeof (png_uint_16p ))); - - for (i = 0; i < num; i++) - { - png_ptr->gamma_16_to_1[i] = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)(256 * sizeof (png_uint_16))); - - ig = (((png_uint_32)i * - (png_uint_32)png_gamma_shift[shift]) >> 4); - for (j = 0; j < 256; j++) - { - png_ptr->gamma_16_to_1[i][j] = - (png_uint_16)(pow((double)(ig + ((png_uint_32)j << 8)) / - 65535.0, g) * 65535.0 + .5); - } - } - - if(png_ptr->screen_gamma > 0.000001) - g = 1.0 / png_ptr->screen_gamma; - else - g = png_ptr->gamma; /* probably doing rgb_to_gray */ - - png_ptr->gamma_16_from_1 = (png_uint_16pp)png_malloc(png_ptr, - (png_uint_32)(num * sizeof (png_uint_16p))); - - for (i = 0; i < num; i++) - { - png_ptr->gamma_16_from_1[i] = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)(256 * sizeof (png_uint_16))); - - ig = (((png_uint_32)i * - (png_uint_32)png_gamma_shift[shift]) >> 4); - for (j = 0; j < 256; j++) - { - png_ptr->gamma_16_from_1[i][j] = - (png_uint_16)(pow((double)(ig + ((png_uint_32)j << 8)) / - 65535.0, g) * 65535.0 + .5); - } - } - } -#endif /* PNG_READ_BACKGROUND_SUPPORTED || PNG_RGB_TO_GRAY_SUPPORTED */ - } - } -} -#endif - diff --git a/src/png/pngrutil.c b/src/png/pngrutil.c deleted file mode 100644 index 9320a7107c..0000000000 --- a/src/png/pngrutil.c +++ /dev/null @@ -1,2272 +0,0 @@ - -/* pngrutil.c - utilities to read a PNG file - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file contains routines that are only called from within - * libpng itself during the course of reading an image. - */ - -#define PNG_INTERNAL -#include "png.h" - -#ifndef PNG_READ_BIG_ENDIAN_SUPPORTED -/* Grab an unsigned 32-bit integer from a buffer in big-endian format. */ -png_uint_32 -png_get_uint_32(png_bytep buf) -{ - png_uint_32 i = ((png_uint_32)(*buf) << 24) + - ((png_uint_32)(*(buf + 1)) << 16) + - ((png_uint_32)(*(buf + 2)) << 8) + - (png_uint_32)(*(buf + 3)); - - return (i); -} - -#if defined(PNG_READ_pCAL_SUPPORTED) -/* Grab a signed 32-bit integer from a buffer in big-endian format. The - * data is stored in the PNG file in two's complement format, and it is - * assumed that the machine format for signed integers is the same. */ -png_int_32 -png_get_int_32(png_bytep buf) -{ - png_int_32 i = ((png_int_32)(*buf) << 24) + - ((png_int_32)(*(buf + 1)) << 16) + - ((png_int_32)(*(buf + 2)) << 8) + - (png_int_32)(*(buf + 3)); - - return (i); -} -#endif /* PNG_READ_pCAL_SUPPORTED */ - -/* Grab an unsigned 16-bit integer from a buffer in big-endian format. */ -png_uint_16 -png_get_uint_16(png_bytep buf) -{ - png_uint_16 i = (png_uint_16)(((png_uint_16)(*buf) << 8) + - (png_uint_16)(*(buf + 1))); - - return (i); -} -#endif /* PNG_READ_BIG_ENDIAN_SUPPORTED */ - -/* Read data, and (optionally) run it through the CRC. */ -void -png_crc_read(png_structp png_ptr, png_bytep buf, png_size_t length) -{ - png_read_data(png_ptr, buf, length); - png_calculate_crc(png_ptr, buf, length); -} - -/* Optionally skip data and then check the CRC. Depending on whether we - are reading a ancillary or critical chunk, and how the program has set - things up, we may calculate the CRC on the data and print a message. - Returns '1' if there was a CRC error, '0' otherwise. */ -int -png_crc_finish(png_structp png_ptr, png_uint_32 skip) -{ - png_size_t i; - png_size_t istop = png_ptr->zbuf_size; - - for (i = (png_size_t)skip; i > istop; i -= istop) - { - png_crc_read(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size); - } - if (i) - { - png_crc_read(png_ptr, png_ptr->zbuf, i); - } - - if (png_crc_error(png_ptr)) - { - if ((png_ptr->chunk_name[0] & 0x20 && /* Ancillary */ - !(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN)) || - (!(png_ptr->chunk_name[0] & 0x20) && /* Critical */ - png_ptr->flags & PNG_FLAG_CRC_CRITICAL_USE)) - { - png_chunk_warning(png_ptr, "CRC error"); - } - else - { - png_chunk_error(png_ptr, "CRC error"); - } - return (1); - } - - return (0); -} - -/* Compare the CRC stored in the PNG file with that calculated by libpng from - the data it has read thus far. */ -int -png_crc_error(png_structp png_ptr) -{ - png_byte crc_bytes[4]; - png_uint_32 crc; - int need_crc = 1; - - if (png_ptr->chunk_name[0] & 0x20) /* ancillary */ - { - if ((png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_MASK) == - (PNG_FLAG_CRC_ANCILLARY_USE | PNG_FLAG_CRC_ANCILLARY_NOWARN)) - need_crc = 0; - } - else /* critical */ - { - if (png_ptr->flags & PNG_FLAG_CRC_CRITICAL_IGNORE) - need_crc = 0; - } - - png_read_data(png_ptr, crc_bytes, 4); - - if (need_crc) - { - crc = png_get_uint_32(crc_bytes); - return ((int)(crc != png_ptr->crc)); - } - else - return (0); -} - - -/* read and check the IDHR chunk */ -void -png_handle_IHDR(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_byte buf[13]; - png_uint_32 width, height; - int bit_depth, color_type, compression_type, filter_type; - int interlace_type; - - png_debug(1, "in png_handle_IHDR\n"); - - if (png_ptr->mode != PNG_BEFORE_IHDR) - png_error(png_ptr, "Out of place IHDR"); - - /* check the length */ - if (length != 13) - png_error(png_ptr, "Invalid IHDR chunk"); - - png_ptr->mode |= PNG_HAVE_IHDR; - - png_crc_read(png_ptr, buf, 13); - png_crc_finish(png_ptr, 0); - - width = png_get_uint_32(buf); - height = png_get_uint_32(buf + 4); - bit_depth = buf[8]; - color_type = buf[9]; - compression_type = buf[10]; - filter_type = buf[11]; - interlace_type = buf[12]; - - /* check for width and height valid values */ - if (width == 0 || width > (png_uint_32)2147483647L || height == 0 || - height > (png_uint_32)2147483647L) - png_error(png_ptr, "Invalid image size in IHDR"); - - /* check other values */ - if (bit_depth != 1 && bit_depth != 2 && bit_depth != 4 && - bit_depth != 8 && bit_depth != 16) - png_error(png_ptr, "Invalid bit depth in IHDR"); - - if (color_type < 0 || color_type == 1 || - color_type == 5 || color_type > 6) - png_error(png_ptr, "Invalid color type in IHDR"); - - if ((color_type == PNG_COLOR_TYPE_PALETTE && bit_depth) > 8 || - ((color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_GRAY_ALPHA || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) && bit_depth < 8)) - png_error(png_ptr, "Invalid color type/bit depth combination in IHDR"); - - if (interlace_type >= PNG_INTERLACE_LAST) - png_error(png_ptr, "Unknown interlace method in IHDR"); - - if (compression_type != PNG_COMPRESSION_TYPE_BASE) - png_error(png_ptr, "Unknown compression method in IHDR"); - - if (filter_type != PNG_FILTER_TYPE_BASE) - png_error(png_ptr, "Unknown filter method in IHDR"); - - /* set internal variables */ - png_ptr->width = width; - png_ptr->height = height; - png_ptr->bit_depth = (png_byte)bit_depth; - png_ptr->interlaced = (png_byte)interlace_type; - png_ptr->color_type = (png_byte)color_type; - - /* find number of channels */ - switch (png_ptr->color_type) - { - case PNG_COLOR_TYPE_GRAY: - case PNG_COLOR_TYPE_PALETTE: - png_ptr->channels = 1; - break; - case PNG_COLOR_TYPE_RGB: - png_ptr->channels = 3; - break; - case PNG_COLOR_TYPE_GRAY_ALPHA: - png_ptr->channels = 2; - break; - case PNG_COLOR_TYPE_RGB_ALPHA: - png_ptr->channels = 4; - break; - } - - /* set up other useful info */ - png_ptr->pixel_depth = (png_byte)(png_ptr->bit_depth * - png_ptr->channels); - png_ptr->rowbytes = ((png_ptr->width * - (png_uint_32)png_ptr->pixel_depth + 7) >> 3); - png_debug1(3,"bit_depth = %d\n", png_ptr->bit_depth); - png_debug1(3,"channels = %d\n", png_ptr->channels); - png_debug1(3,"rowbytes = %d\n", png_ptr->rowbytes); - png_set_IHDR(png_ptr, info_ptr, width, height, bit_depth, - color_type, interlace_type, compression_type, filter_type); -} - -/* read and check the palette */ -void -png_handle_PLTE(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_colorp palette; - int num, i; - - png_debug(1, "in png_handle_PLTE\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before PLTE"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid PLTE after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (png_ptr->mode & PNG_HAVE_PLTE) - png_error(png_ptr, "Duplicate PLTE chunk"); - - png_ptr->mode |= PNG_HAVE_PLTE; - -#if !defined(PNG_READ_OPT_PLTE_SUPPORTED) - if (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE) - { - png_crc_finish(png_ptr, length); - return; - } -#endif - - if (length % 3) - { - if (png_ptr->color_type != PNG_COLOR_TYPE_PALETTE) - { - png_warning(png_ptr, "Invalid palette chunk"); - png_crc_finish(png_ptr, length); - return; - } - else - { - png_error(png_ptr, "Invalid palette chunk"); - } - } - - num = (int)length / 3; - palette = (png_colorp)png_zalloc(png_ptr, (uInt)num, sizeof (png_color)); - png_ptr->flags |= PNG_FLAG_FREE_PALETTE; - for (i = 0; i < num; i++) - { - png_byte buf[3]; - - png_crc_read(png_ptr, buf, 3); - /* don't depend upon png_color being any order */ - palette[i].red = buf[0]; - palette[i].green = buf[1]; - palette[i].blue = buf[2]; - } - - /* If we actually NEED the PLTE chunk (ie for a paletted image), we do - whatever the normal CRC configuration tells us. However, if we - have an RGB image, the PLTE can be considered ancillary, so - we will act as though it is. */ -#if !defined(PNG_READ_OPT_PLTE_SUPPORTED) - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) -#endif - { - png_crc_finish(png_ptr, 0); - } -#if !defined(PNG_READ_OPT_PLTE_SUPPORTED) - else if (png_crc_error(png_ptr)) /* Only if we have a CRC error */ - { - /* If we don't want to use the data from an ancillary chunk, - we have two options: an error abort, or a warning and we - ignore the data in this chunk (which should be OK, since - it's considered ancillary for a RGB or RGBA image). */ - if (!(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_USE)) - { - if (png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN) - { - png_chunk_error(png_ptr, "CRC error"); - } - else - { - png_chunk_warning(png_ptr, "CRC error"); - png_ptr->flags &= ~PNG_FLAG_FREE_PALETTE; - png_zfree(png_ptr, palette); - return; - } - } - /* Otherwise, we (optionally) emit a warning and use the chunk. */ - else if (!(png_ptr->flags & PNG_FLAG_CRC_ANCILLARY_NOWARN)) - { - png_chunk_warning(png_ptr, "CRC error"); - } - } -#endif - png_ptr->palette = palette; - png_ptr->num_palette = (png_uint_16)num; - png_set_PLTE(png_ptr, info_ptr, palette, num); - -#if defined (PNG_READ_tRNS_SUPPORTED) - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (info_ptr != NULL && info_ptr->valid & PNG_INFO_tRNS) - { - if (png_ptr->num_trans > png_ptr->num_palette) - { - png_warning(png_ptr, "Truncating incorrect tRNS chunk length"); - png_ptr->num_trans = png_ptr->num_palette; - } - } - } -#endif - -} - -void -png_handle_IEND(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_debug(1, "in png_handle_IEND\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR) || !(png_ptr->mode & PNG_HAVE_IDAT)) - { - png_error(png_ptr, "No image in file"); - - /* to quiet compiler warnings about unused info_ptr */ - if (info_ptr == NULL) - return; - } - - png_ptr->mode |= PNG_AFTER_IDAT | PNG_HAVE_IEND; - - if (length != 0) - { - png_warning(png_ptr, "Incorrect IEND chunk length"); - } - png_crc_finish(png_ptr, length); -} - -#if defined(PNG_READ_gAMA_SUPPORTED) -void -png_handle_gAMA(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_uint_32 igamma; - float file_gamma; - png_byte buf[4]; - - png_debug(1, "in png_handle_gAMA\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before gAMA"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid gAMA after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (png_ptr->mode & PNG_HAVE_PLTE) - /* Should be an error, but we can cope with it */ - png_warning(png_ptr, "Out of place gAMA chunk"); - - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_gAMA -#if defined(PNG_READ_sRGB_SUPPORTED) - && !(info_ptr->valid & PNG_INFO_sRGB) -#endif - ) - { - png_warning(png_ptr, "Duplicate gAMA chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (length != 4) - { - png_warning(png_ptr, "Incorrect gAMA chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 4); - if (png_crc_finish(png_ptr, 0)) - return; - - igamma = png_get_uint_32(buf); - /* check for zero gamma */ - if (igamma == 0) - return; - -#if defined(PNG_READ_sRGB_SUPPORTED) - if (info_ptr->valid & PNG_INFO_sRGB) - if(igamma != (png_uint_32)45000L) - { - png_warning(png_ptr, - "Ignoring incorrect gAMA value when sRGB is also present"); -#ifndef PNG_NO_CONSOLE_IO - fprintf(stderr, "igamma = %lu\n", igamma); -#endif - return; - } -#endif /* PNG_READ_sRGB_SUPPORTED */ - - file_gamma = (float)igamma / (float)100000.0; -#ifdef PNG_READ_GAMMA_SUPPORTED - png_ptr->gamma = file_gamma; -#endif - png_set_gAMA(png_ptr, info_ptr, file_gamma); -} -#endif - -#if defined(PNG_READ_sBIT_SUPPORTED) -void -png_handle_sBIT(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_size_t truelen; - png_byte buf[4]; - - png_debug(1, "in png_handle_sBIT\n"); - - buf[0] = buf[1] = buf[2] = buf[3] = 0; - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before sBIT"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid sBIT after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (png_ptr->mode & PNG_HAVE_PLTE) - { - /* Should be an error, but we can cope with it */ - png_warning(png_ptr, "Out of place sBIT chunk"); - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_sBIT) - { - png_warning(png_ptr, "Duplicate sBIT chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - truelen = 3; - else - truelen = (png_size_t)png_ptr->channels; - - if (length != truelen) - { - png_warning(png_ptr, "Incorrect sBIT chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, truelen); - if (png_crc_finish(png_ptr, 0)) - return; - - if (png_ptr->color_type & PNG_COLOR_MASK_COLOR) - { - png_ptr->sig_bit.red = buf[0]; - png_ptr->sig_bit.green = buf[1]; - png_ptr->sig_bit.blue = buf[2]; - png_ptr->sig_bit.alpha = buf[3]; - } - else - { - png_ptr->sig_bit.gray = buf[0]; - png_ptr->sig_bit.red = buf[0]; - png_ptr->sig_bit.green = buf[0]; - png_ptr->sig_bit.blue = buf[0]; - png_ptr->sig_bit.alpha = buf[1]; - } - png_set_sBIT(png_ptr, info_ptr, &(png_ptr->sig_bit)); -} -#endif - -#if defined(PNG_READ_cHRM_SUPPORTED) -void -png_handle_cHRM(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_byte buf[4]; - png_uint_32 val; - float white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y; - - png_debug(1, "in png_handle_cHRM\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before sBIT"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid cHRM after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (png_ptr->mode & PNG_HAVE_PLTE) - /* Should be an error, but we can cope with it */ - png_warning(png_ptr, "Missing PLTE before cHRM"); - - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_cHRM -#if defined(PNG_READ_sRGB_SUPPORTED) - && !(info_ptr->valid & PNG_INFO_sRGB) -#endif - ) - { - png_warning(png_ptr, "Duplicate cHRM chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (length != 32) - { - png_warning(png_ptr, "Incorrect cHRM chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - white_x = (float)val / (float)100000.0; - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - white_y = (float)val / (float)100000.0; - - if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 || - white_x + white_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM white point"); - png_crc_finish(png_ptr, 24); - return; - } - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - red_x = (float)val / (float)100000.0; - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - red_y = (float)val / (float)100000.0; - - if (red_x < 0 || red_x > 0.8 || red_y < 0 || red_y > 0.8 || - red_x + red_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM red point"); - png_crc_finish(png_ptr, 16); - return; - } - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - green_x = (float)val / (float)100000.0; - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - green_y = (float)val / (float)100000.0; - - if (green_x < 0 || green_x > 0.8 || green_y < 0 || green_y > 0.8 || - green_x + green_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM green point"); - png_crc_finish(png_ptr, 8); - return; - } - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - blue_x = (float)val / (float)100000.0; - - png_crc_read(png_ptr, buf, 4); - val = png_get_uint_32(buf); - blue_y = (float)val / (float)100000.0; - - if (blue_x < (float)0 || blue_x > (float)0.8 || blue_y < (float)0 || - blue_y > (float)0.8 || blue_x + blue_y > (float)1.0) - { - png_warning(png_ptr, "Invalid cHRM blue point"); - png_crc_finish(png_ptr, 0); - return; - } - - if (png_crc_finish(png_ptr, 0)) - return; - -#if defined(PNG_READ_sRGB_SUPPORTED) - if (info_ptr->valid & PNG_INFO_sRGB) - { - if (fabs(white_x - (float).3127) > (float).001 || - fabs(white_y - (float).3290) > (float).001 || - fabs( red_x - (float).6400) > (float).001 || - fabs( red_y - (float).3300) > (float).001 || - fabs(green_x - (float).3000) > (float).001 || - fabs(green_y - (float).6000) > (float).001 || - fabs( blue_x - (float).1500) > (float).001 || - fabs( blue_y - (float).0600) > (float).001) - { - - png_warning(png_ptr, - "Ignoring incorrect cHRM value when sRGB is also present"); -#ifndef PNG_NO_CONSOLE_IO - fprintf(stderr,"wx=%f, wy=%f, rx=%f, ry=%f\n", - white_x, white_y, red_x, red_y); - fprintf(stderr,"gx=%f, gy=%f, bx=%f, by=%f\n", - green_x, green_y, blue_x, blue_y); -#endif - } - return; - } -#endif /* PNG_READ_sRGB_SUPPORTED */ - - png_set_cHRM(png_ptr, info_ptr, - white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y); -} -#endif - -#if defined(PNG_READ_sRGB_SUPPORTED) -void -png_handle_sRGB(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - int intent; - png_byte buf[1]; - - png_debug(1, "in png_handle_sRGB\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before sRGB"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid sRGB after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (png_ptr->mode & PNG_HAVE_PLTE) - /* Should be an error, but we can cope with it */ - png_warning(png_ptr, "Out of place sRGB chunk"); - - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_sRGB) - { - png_warning(png_ptr, "Duplicate sRGB chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (length != 1) - { - png_warning(png_ptr, "Incorrect sRGB chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 1); - if (png_crc_finish(png_ptr, 0)) - return; - - intent = buf[0]; - /* check for bad intent */ - if (intent >= PNG_sRGB_INTENT_LAST) - { - png_warning(png_ptr, "Unknown sRGB intent"); - return; - } - -#if defined(PNG_READ_gAMA_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED) - if ((info_ptr->valid & PNG_INFO_gAMA)) - if((png_uint_32)(png_ptr->gamma*(float)100000.+.5) != (png_uint_32)45000L) - { - png_warning(png_ptr, - "Ignoring incorrect gAMA value when sRGB is also present"); -#ifndef PNG_NO_CONSOLE_IO - fprintf(stderr,"gamma=%f\n",png_ptr->gamma); -#endif - } -#endif /* PNG_READ_gAMA_SUPPORTED */ - -#ifdef PNG_READ_cHRM_SUPPORTED - if (info_ptr->valid & PNG_INFO_cHRM) - if (fabs(info_ptr->x_white - (float).3127) > (float).001 || - fabs(info_ptr->y_white - (float).3290) > (float).001 || - fabs( info_ptr->x_red - (float).6400) > (float).001 || - fabs( info_ptr->y_red - (float).3300) > (float).001 || - fabs(info_ptr->x_green - (float).3000) > (float).001 || - fabs(info_ptr->y_green - (float).6000) > (float).001 || - fabs( info_ptr->x_blue - (float).1500) > (float).001 || - fabs( info_ptr->y_blue - (float).0600) > (float).001) - { - png_warning(png_ptr, - "Ignoring incorrect cHRM value when sRGB is also present"); - } -#endif /* PNG_READ_cHRM_SUPPORTED */ - - png_set_sRGB_gAMA_and_cHRM(png_ptr, info_ptr, intent); -} -#endif /* PNG_READ_sRGB_SUPPORTED */ - -#if defined(PNG_READ_tRNS_SUPPORTED) -void -png_handle_tRNS(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_debug(1, "in png_handle_tRNS\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before tRNS"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid tRNS after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_tRNS) - { - png_warning(png_ptr, "Duplicate tRNS chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (!(png_ptr->mode & PNG_HAVE_PLTE)) - { - /* Should be an error, but we can cope with it */ - png_warning(png_ptr, "Missing PLTE before tRNS"); - } - else if (length > png_ptr->num_palette) - { - png_warning(png_ptr, "Incorrect tRNS chunk length"); - png_crc_finish(png_ptr, length); - return; - } - if (length == 0) - { - png_warning(png_ptr, "Zero length tRNS chunk"); - png_crc_finish(png_ptr, length); - return; - } - - png_ptr->trans = (png_bytep)png_malloc(png_ptr, length); - png_ptr->flags |= PNG_FLAG_FREE_TRANS; - png_crc_read(png_ptr, png_ptr->trans, (png_size_t)length); - png_ptr->num_trans = (png_uint_16)length; - } - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB) - { - png_byte buf[6]; - - if (length != 6) - { - png_warning(png_ptr, "Incorrect tRNS chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, (png_size_t)length); - png_ptr->num_trans = 1; - png_ptr->trans_values.red = png_get_uint_16(buf); - png_ptr->trans_values.green = png_get_uint_16(buf + 2); - png_ptr->trans_values.blue = png_get_uint_16(buf + 4); - } - else if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY) - { - png_byte buf[6]; - - if (length != 2) - { - png_warning(png_ptr, "Incorrect tRNS chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 2); - png_ptr->num_trans = 1; - png_ptr->trans_values.gray = png_get_uint_16(buf); - } - else - { - png_warning(png_ptr, "tRNS chunk not allowed with alpha channel"); - png_crc_finish(png_ptr, length); - return; - } - - if (png_crc_finish(png_ptr, 0)) - return; - - png_set_tRNS(png_ptr, info_ptr, png_ptr->trans, png_ptr->num_trans, - &(png_ptr->trans_values)); -} -#endif - -#if defined(PNG_READ_bKGD_SUPPORTED) -void -png_handle_bKGD(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_size_t truelen; - png_byte buf[6]; - - png_debug(1, "in png_handle_bKGD\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before bKGD"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid bKGD after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE && - !(png_ptr->mode & PNG_HAVE_PLTE)) - { - png_warning(png_ptr, "Missing PLTE before bKGD"); - png_crc_finish(png_ptr, length); - return; - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_bKGD) - { - png_warning(png_ptr, "Duplicate bKGD chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - truelen = 1; - else if (png_ptr->color_type & PNG_COLOR_MASK_COLOR) - truelen = 6; - else - truelen = 2; - - if (length != truelen) - { - png_warning(png_ptr, "Incorrect bKGD chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, truelen); - if (png_crc_finish(png_ptr, 0)) - return; - - /* We convert the index value into RGB components so that we can allow - * arbitrary RGB values for background when we have transparency, and - * so it is easy to determine the RGB values of the background color - * from the info_ptr struct. */ - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - png_ptr->background.index = buf[0]; - png_ptr->background.red = (png_uint_16)png_ptr->palette[buf[0]].red; - png_ptr->background.green = (png_uint_16)png_ptr->palette[buf[0]].green; - png_ptr->background.blue = (png_uint_16)png_ptr->palette[buf[0]].blue; - } - else if (!(png_ptr->color_type & PNG_COLOR_MASK_COLOR)) /* GRAY */ - { - png_ptr->background.red = - png_ptr->background.green = - png_ptr->background.blue = - png_ptr->background.gray = png_get_uint_16(buf); - } - else - { - png_ptr->background.red = png_get_uint_16(buf); - png_ptr->background.green = png_get_uint_16(buf + 2); - png_ptr->background.blue = png_get_uint_16(buf + 4); - } - - png_set_bKGD(png_ptr, info_ptr, &(png_ptr->background)); -} -#endif - -#if defined(PNG_READ_hIST_SUPPORTED) -void -png_handle_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - int num, i; - - png_debug(1, "in png_handle_hIST\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before hIST"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid hIST after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (!(png_ptr->mode & PNG_HAVE_PLTE)) - { - png_warning(png_ptr, "Missing PLTE before hIST"); - png_crc_finish(png_ptr, length); - return; - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_hIST) - { - png_warning(png_ptr, "Duplicate hIST chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (length != (png_uint_32)(2 * png_ptr->num_palette)) - { - png_warning(png_ptr, "Incorrect hIST chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - num = (int)length / 2; - png_ptr->hist = (png_uint_16p)png_malloc(png_ptr, - (png_uint_32)(num * sizeof (png_uint_16))); - png_ptr->flags |= PNG_FLAG_FREE_HIST; - for (i = 0; i < num; i++) - { - png_byte buf[2]; - - png_crc_read(png_ptr, buf, 2); - png_ptr->hist[i] = png_get_uint_16(buf); - } - - if (png_crc_finish(png_ptr, 0)) - return; - - png_set_hIST(png_ptr, info_ptr, png_ptr->hist); -} -#endif - -#if defined(PNG_READ_pHYs_SUPPORTED) -void -png_handle_pHYs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_byte buf[9]; - png_uint_32 res_x, res_y; - int unit_type; - - png_debug(1, "in png_handle_pHYs\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before pHYS"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid pHYS after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_pHYs) - { - png_warning(png_ptr, "Duplicate pHYS chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (length != 9) - { - png_warning(png_ptr, "Incorrect pHYs chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 9); - if (png_crc_finish(png_ptr, 0)) - return; - - res_x = png_get_uint_32(buf); - res_y = png_get_uint_32(buf + 4); - unit_type = buf[8]; - png_set_pHYs(png_ptr, info_ptr, res_x, res_y, unit_type); -} -#endif - -#if defined(PNG_READ_oFFs_SUPPORTED) -void -png_handle_oFFs(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_byte buf[9]; - png_uint_32 offset_x, offset_y; - int unit_type; - - png_debug(1, "in png_handle_oFFs\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before oFFs"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid oFFs after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_oFFs) - { - png_warning(png_ptr, "Duplicate oFFs chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (length != 9) - { - png_warning(png_ptr, "Incorrect oFFs chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 9); - if (png_crc_finish(png_ptr, 0)) - return; - - offset_x = png_get_uint_32(buf); - offset_y = png_get_uint_32(buf + 4); - unit_type = buf[8]; - png_set_oFFs(png_ptr, info_ptr, offset_x, offset_y, unit_type); -} -#endif - -#if defined(PNG_READ_pCAL_SUPPORTED) -/* read the pCAL chunk (png-scivis-19970203) */ -void -png_handle_pCAL(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_charp purpose; - png_int_32 X0, X1; - png_byte type, nparams; - png_charp buf, units, endptr; - png_charpp params; - png_size_t slength; - int i; - - png_debug(1, "in png_handle_pCAL\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before pCAL"); - else if (png_ptr->mode & PNG_HAVE_IDAT) - { - png_warning(png_ptr, "Invalid pCAL after IDAT"); - png_crc_finish(png_ptr, length); - return; - } - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_pCAL) - { - png_warning(png_ptr, "Duplicate pCAL chunk"); - png_crc_finish(png_ptr, length); - return; - } - - png_debug1(2, "Allocating and reading pCAL chunk data (%d bytes)\n", - length + 1); - purpose = (png_charp)png_malloc(png_ptr, length + 1); - slength = (png_size_t)length; - png_crc_read(png_ptr, (png_bytep)purpose, slength); - - if (png_crc_finish(png_ptr, 0)) - { - png_free(png_ptr, purpose); - return; - } - - purpose[slength] = 0x00; /* null terminate the last string */ - - png_debug(3, "Finding end of pCAL purpose string\n"); - for (buf = purpose; *buf; buf++) - /* empty loop */ ; - - endptr = purpose + slength; - - /* We need to have at least 12 bytes after the purpose string - in order to get the parameter information. */ - if (endptr <= buf + 12) - { - png_warning(png_ptr, "Invalid pCAL data"); - png_free(png_ptr, purpose); - return; - } - - png_debug(3, "Reading pCAL X0, X1, type, nparams, and units\n"); - X0 = png_get_int_32((png_bytep)buf+1); - X1 = png_get_int_32((png_bytep)buf+5); - type = buf[9]; - nparams = buf[10]; - units = buf + 11; - - png_debug(3, "Checking pCAL equation type and number of parameters\n"); - /* Check that we have the right number of parameters for known - equation types. */ - if ((type == PNG_EQUATION_LINEAR && nparams != 2) || - (type == PNG_EQUATION_BASE_E && nparams != 3) || - (type == PNG_EQUATION_ARBITRARY && nparams != 3) || - (type == PNG_EQUATION_HYPERBOLIC && nparams != 4)) - { - png_warning(png_ptr, "Invalid pCAL parameters for equation type"); - png_free(png_ptr, purpose); - return; - } - else if (type >= PNG_EQUATION_LAST) - { - png_warning(png_ptr, "Unrecognized equation type for pCAL chunk"); - } - - for (buf = units; *buf; buf++) - /* Empty loop to move past the units string. */ ; - - png_debug(3, "Allocating pCAL parameters array\n"); - params = (png_charpp)png_malloc(png_ptr, (png_uint_32)(nparams - *sizeof(png_charp))) ; - - /* Get pointers to the start of each parameter string. */ - for (i = 0; i < (int)nparams; i++) - { - buf++; /* Skip the null string terminator from previous parameter. */ - - png_debug1(3, "Reading pCAL parameter %d\n", i); - for (params[i] = buf; *buf != 0x00 && buf <= endptr; buf++) - /* Empty loop to move past each parameter string */ ; - - /* Make sure we haven't run out of data yet */ - if (buf > endptr) - { - png_warning(png_ptr, "Invalid pCAL data"); - png_free(png_ptr, purpose); - png_free(png_ptr, params); - return; - } - } - - png_set_pCAL(png_ptr, info_ptr, purpose, X0, X1, type, nparams, - units, params); - - png_free(png_ptr, purpose); - png_free(png_ptr, params); -} -#endif - -#if defined(PNG_READ_tIME_SUPPORTED) -void -png_handle_tIME(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_byte buf[7]; - png_time mod_time; - - png_debug(1, "in png_handle_tIME\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Out of place tIME chunk"); - else if (info_ptr != NULL && info_ptr->valid & PNG_INFO_tIME) - { - png_warning(png_ptr, "Duplicate tIME chunk"); - png_crc_finish(png_ptr, length); - return; - } - - if (png_ptr->mode & PNG_HAVE_IDAT) - png_ptr->mode |= PNG_AFTER_IDAT; - - if (length != 7) - { - png_warning(png_ptr, "Incorrect tIME chunk length"); - png_crc_finish(png_ptr, length); - return; - } - - png_crc_read(png_ptr, buf, 7); - if (png_crc_finish(png_ptr, 0)) - return; - - mod_time.second = buf[6]; - mod_time.minute = buf[5]; - mod_time.hour = buf[4]; - mod_time.day = buf[3]; - mod_time.month = buf[2]; - mod_time.year = png_get_uint_16(buf); - - png_set_tIME(png_ptr, info_ptr, &mod_time); -} -#endif - -#if defined(PNG_READ_tEXt_SUPPORTED) -/* Note: this does not properly handle chunks that are > 64K under DOS */ -void -png_handle_tEXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_textp text_ptr; - png_charp key; - png_charp text; - png_uint_32 skip = 0; - png_size_t slength; - - png_debug(1, "in png_handle_tEXt\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before tEXt"); - - if (png_ptr->mode & PNG_HAVE_IDAT) - png_ptr->mode |= PNG_AFTER_IDAT; - -#ifdef PNG_MAX_MALLOC_64K - if (length > (png_uint_32)65535L) - { - png_warning(png_ptr, "tEXt chunk too large to fit in memory"); - skip = length - (png_uint_32)65535L; - length = (png_uint_32)65535L; - } -#endif - - key = (png_charp)png_malloc(png_ptr, length + 1); - slength = (png_size_t)length; - png_crc_read(png_ptr, (png_bytep)key, slength); - - if (png_crc_finish(png_ptr, skip)) - { - png_free(png_ptr, key); - return; - } - - key[slength] = 0x00; - - for (text = key; *text; text++) - /* empty loop to find end of key */ ; - - if (text != key + slength) - text++; - - text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text)); - text_ptr->compression = PNG_TEXT_COMPRESSION_NONE; - text_ptr->key = key; - text_ptr->text = text; - - png_set_text(png_ptr, info_ptr, text_ptr, 1); - - png_free(png_ptr, text_ptr); -} -#endif - -#if defined(PNG_READ_zTXt_SUPPORTED) -/* note: this does not correctly handle chunks that are > 64K under DOS */ -void -png_handle_zTXt(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - static char msg[] = "Error decoding zTXt chunk"; - png_textp text_ptr; - png_charp key; - png_charp text; - int comp_type = PNG_TEXT_COMPRESSION_NONE; - png_size_t slength; - - png_debug(1, "in png_handle_zTXt\n"); - - if (!(png_ptr->mode & PNG_HAVE_IHDR)) - png_error(png_ptr, "Missing IHDR before zTXt"); - - if (png_ptr->mode & PNG_HAVE_IDAT) - png_ptr->mode |= PNG_AFTER_IDAT; - -#ifdef PNG_MAX_MALLOC_64K - /* We will no doubt have problems with chunks even half this size, but - there is no hard and fast rule to tell us where to stop. */ - if (length > (png_uint_32)65535L) - { - png_warning(png_ptr,"zTXt chunk too large to fit in memory"); - png_crc_finish(png_ptr, length); - return; - } -#endif - - key = (png_charp)png_malloc(png_ptr, length + 1); - slength = (png_size_t)length; - png_crc_read(png_ptr, (png_bytep)key, slength); - if (png_crc_finish(png_ptr, 0)) - { - png_free(png_ptr, key); - return; - } - - key[slength] = 0x00; - - for (text = key; *text; text++) - /* empty loop */ ; - - /* zTXt must have some text after the keyword */ - if (text == key + slength) - { - png_warning(png_ptr, "Zero length zTXt chunk"); - } - else if ((comp_type = *(++text)) == PNG_TEXT_COMPRESSION_zTXt) - { - png_size_t text_size, key_size; - text++; - - png_ptr->zstream.next_in = (png_bytep)text; - png_ptr->zstream.avail_in = (uInt)(length - (text - key)); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - - key_size = (png_size_t)(text - key); - text_size = 0; - text = NULL; - - while (png_ptr->zstream.avail_in) - { - int ret; - - ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); - if (ret != Z_OK && ret != Z_STREAM_END) - { - if (png_ptr->zstream.msg != NULL) - png_warning(png_ptr, png_ptr->zstream.msg); - else - png_warning(png_ptr, msg); - inflateReset(&png_ptr->zstream); - png_ptr->zstream.avail_in = 0; - - if (text == NULL) - { - text_size = key_size + sizeof(msg) + 1; - text = (png_charp)png_malloc(png_ptr, (png_uint_32)text_size); - png_memcpy(text, key, key_size); - } - - text[text_size - 1] = 0x00; - - /* Copy what we can of the error message into the text chunk */ - text_size = (png_size_t)(slength - (text - key) - 1); - text_size = sizeof(msg) > text_size ? text_size : sizeof(msg); - png_memcpy(text + key_size, msg, text_size + 1); - break; - } - if (!png_ptr->zstream.avail_out || ret == Z_STREAM_END) - { - if (text == NULL) - { - text = (png_charp)png_malloc(png_ptr, - (png_uint_32)(png_ptr->zbuf_size - png_ptr->zstream.avail_out - + key_size + 1)); - png_memcpy(text + key_size, png_ptr->zbuf, - png_ptr->zbuf_size - png_ptr->zstream.avail_out); - png_memcpy(text, key, key_size); - text_size = key_size + png_ptr->zbuf_size - - png_ptr->zstream.avail_out; - *(text + text_size) = 0x00; - } - else - { - png_charp tmp; - - tmp = text; - text = (png_charp)png_malloc(png_ptr, (png_uint_32)(text_size + - png_ptr->zbuf_size - png_ptr->zstream.avail_out + 1)); - png_memcpy(text, tmp, text_size); - png_free(png_ptr, tmp); - png_memcpy(text + text_size, png_ptr->zbuf, - (png_ptr->zbuf_size - png_ptr->zstream.avail_out)); - text_size += png_ptr->zbuf_size - png_ptr->zstream.avail_out; - *(text + text_size) = 0x00; - } - if (ret != Z_STREAM_END) - { - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - } - else - { - break; - } - } - } - - inflateReset(&png_ptr->zstream); - png_ptr->zstream.avail_in = 0; - - png_free(png_ptr, key); - key = text; - text += key_size; - } - else /* if (comp_type >= PNG_TEXT_COMPRESSION_LAST) */ - { - png_size_t text_size; -#if !defined(PNG_NO_STDIO) - char umsg[50]; - - sprintf(umsg, "Unknown zTXt compression type %d", comp_type); - png_warning(png_ptr, umsg); -#else - png_warning(png_ptr, "Unknown zTXt compression type"); -#endif - - /* Copy what we can of the error message into the text chunk */ - text_size = (png_size_t)(slength - (text - key) - 1); - text_size = sizeof(msg) > text_size ? text_size : sizeof(msg); - png_memcpy(text, msg, text_size + 1); - } - - text_ptr = (png_textp)png_malloc(png_ptr, (png_uint_32)sizeof(png_text)); - text_ptr->compression = comp_type; - text_ptr->key = key; - text_ptr->text = text; - - png_set_text(png_ptr, info_ptr, text_ptr, 1); - - png_free(png_ptr, text_ptr); -} -#endif - -/* This function is called when we haven't found a handler for a - chunk. If there isn't a problem with the chunk itself (ie bad - chunk name, CRC, or a critical chunk), the chunk is silently ignored. */ -void -png_handle_unknown(png_structp png_ptr, png_infop info_ptr, png_uint_32 length) -{ - png_debug(1, "in png_handle_unknown\n"); - - /* In the future we can have code here that calls user-supplied - * callback functions for unknown chunks before they are ignored or - * cause an error. - */ - png_check_chunk_name(png_ptr, png_ptr->chunk_name); - - if (!(png_ptr->chunk_name[0] & 0x20)) - { - png_chunk_error(png_ptr, "unknown critical chunk"); - - /* to quiet compiler warnings about unused info_ptr */ - if (info_ptr == NULL) - return; - } - - if (png_ptr->mode & PNG_HAVE_IDAT) - png_ptr->mode |= PNG_AFTER_IDAT; - - png_crc_finish(png_ptr, length); - -} - -/* This function is called to verify that a chunk name is valid. - This function can't have the "critical chunk check" incorporated - into it, since in the future we will need to be able to call user - functions to handle unknown critical chunks after we check that - the chunk name itself is valid. */ - -#define isnonalpha(c) ((c) < 41 || (c) > 122 || ((c) > 90 && (c) < 97)) - -void -png_check_chunk_name(png_structp png_ptr, png_bytep chunk_name) -{ - png_debug(1, "in png_check_chunk_name\n"); - if (isnonalpha(chunk_name[0]) || isnonalpha(chunk_name[1]) || - isnonalpha(chunk_name[2]) || isnonalpha(chunk_name[3])) - { - png_chunk_error(png_ptr, "invalid chunk type"); - } -} - -/* Combines the row recently read in with the existing pixels in the - row. This routine takes care of alpha and transparency if requested. - This routine also handles the two methods of progressive display - of interlaced images, depending on the mask value. - The mask value describes which pixels are to be combined with - the row. The pattern always repeats every 8 pixels, so just 8 - bits are needed. A one indicates the pixel is to be combined, - a zero indicates the pixel is to be skipped. This is in addition - to any alpha or transparency value associated with the pixel. If - you want all pixels to be combined, pass 0xff (255) in mask. */ -void -png_combine_row(png_structp png_ptr, png_bytep row, - int mask) -{ - png_debug(1,"in png_combine_row\n"); - if (mask == 0xff) - { - png_memcpy(row, png_ptr->row_buf + 1, - (png_size_t)((png_ptr->width * - png_ptr->row_info.pixel_depth + 7) >> 3)); - } - else - { - switch (png_ptr->row_info.pixel_depth) - { - case 1: - { - png_bytep sp = png_ptr->row_buf + 1; - png_bytep dp = row; - int s_inc, s_start, s_end; - int m = 0x80; - int shift; - png_uint_32 i; - png_uint_32 row_width = png_ptr->width; - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - { - s_start = 0; - s_end = 7; - s_inc = 1; - } - else -#endif - { - s_start = 7; - s_end = 0; - s_inc = -1; - } - - shift = s_start; - - for (i = 0; i < row_width; i++) - { - if (m & mask) - { - int value; - - value = (*sp >> shift) & 0x1; - *dp &= (png_byte)((0x7f7f >> (7 - shift)) & 0xff); - *dp |= (png_byte)(value << shift); - } - - if (shift == s_end) - { - shift = s_start; - sp++; - dp++; - } - else - shift += s_inc; - - if (m == 1) - m = 0x80; - else - m >>= 1; - } - break; - } - case 2: - { - png_bytep sp = png_ptr->row_buf + 1; - png_bytep dp = row; - int s_start, s_end, s_inc; - int m = 0x80; - int shift; - png_uint_32 i; - png_uint_32 row_width = png_ptr->width; - int value; - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - { - s_start = 0; - s_end = 6; - s_inc = 2; - } - else -#endif - { - s_start = 6; - s_end = 0; - s_inc = -2; - } - - shift = s_start; - - for (i = 0; i < row_width; i++) - { - if (m & mask) - { - value = (*sp >> shift) & 0x3; - *dp &= (png_byte)((0x3f3f >> (6 - shift)) & 0xff); - *dp |= (png_byte)(value << shift); - } - - if (shift == s_end) - { - shift = s_start; - sp++; - dp++; - } - else - shift += s_inc; - if (m == 1) - m = 0x80; - else - m >>= 1; - } - break; - } - case 4: - { - png_bytep sp = png_ptr->row_buf + 1; - png_bytep dp = row; - int s_start, s_end, s_inc; - int m = 0x80; - int shift; - png_uint_32 i; - png_uint_32 row_width = png_ptr->width; - int value; - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - { - s_start = 0; - s_end = 4; - s_inc = 4; - } - else -#endif - { - s_start = 4; - s_end = 0; - s_inc = -4; - } - shift = s_start; - - for (i = 0; i < row_width; i++) - { - if (m & mask) - { - value = (*sp >> shift) & 0xf; - *dp &= (png_byte)((0xf0f >> (4 - shift)) & 0xff); - *dp |= (png_byte)(value << shift); - } - - if (shift == s_end) - { - shift = s_start; - sp++; - dp++; - } - else - shift += s_inc; - if (m == 1) - m = 0x80; - else - m >>= 1; - } - break; - } - default: - { - png_bytep sp = png_ptr->row_buf + 1; - png_bytep dp = row; - png_size_t pixel_bytes = (png_ptr->row_info.pixel_depth >> 3); - png_uint_32 i; - png_uint_32 row_width = png_ptr->width; - png_byte m = 0x80; - - - for (i = 0; i < row_width; i++) - { - if (m & mask) - { - png_memcpy(dp, sp, pixel_bytes); - } - - sp += pixel_bytes; - dp += pixel_bytes; - - if (m == 1) - m = 0x80; - else - m >>= 1; - } - break; - } - } - } -} - -#if defined(PNG_READ_INTERLACING_SUPPORTED) -void -png_do_read_interlace(png_row_infop row_info, png_bytep row, int pass, - png_uint_32 transformations) -{ - png_debug(1,"in png_do_read_interlace\n"); - if (row != NULL && row_info != NULL) - { - png_uint_32 final_width; - - final_width = row_info->width * png_pass_inc[pass]; - - switch (row_info->pixel_depth) - { - case 1: - { - png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 3); - png_bytep dp = row + (png_size_t)((final_width - 1) >> 3); - int sshift, dshift; - int s_start, s_end, s_inc; - int jstop = png_pass_inc[pass]; - png_byte v; - png_uint_32 i; - int j; - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (transformations & PNG_PACKSWAP) - { - sshift = (int)((row_info->width + 7) & 7); - dshift = (int)((final_width + 7) & 7); - s_start = 7; - s_end = 0; - s_inc = -1; - } - else -#endif - { - sshift = 7 - (int)((row_info->width + 7) & 7); - dshift = 7 - (int)((final_width + 7) & 7); - s_start = 0; - s_end = 7; - s_inc = 1; - } - - for (i = 0; i < row_info->width; i++) - { - v = (png_byte)((*sp >> sshift) & 0x1); - for (j = 0; j < jstop; j++) - { - *dp &= (png_byte)((0x7f7f >> (7 - dshift)) & 0xff); - *dp |= (png_byte)(v << dshift); - if (dshift == s_end) - { - dshift = s_start; - dp--; - } - else - dshift += s_inc; - } - if (sshift == s_end) - { - sshift = s_start; - sp--; - } - else - sshift += s_inc; - } - break; - } - case 2: - { - png_bytep sp = row + (png_uint_32)((row_info->width - 1) >> 2); - png_bytep dp = row + (png_uint_32)((final_width - 1) >> 2); - int sshift, dshift; - int s_start, s_end, s_inc; - int jstop = png_pass_inc[pass]; - png_uint_32 i; - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (transformations & PNG_PACKSWAP) - { - sshift = (int)(((row_info->width + 3) & 3) << 1); - dshift = (int)(((final_width + 3) & 3) << 1); - s_start = 6; - s_end = 0; - s_inc = -2; - } - else -#endif - { - sshift = (int)((3 - ((row_info->width + 3) & 3)) << 1); - dshift = (int)((3 - ((final_width + 3) & 3)) << 1); - s_start = 0; - s_end = 6; - s_inc = 2; - } - - for (i = 0; i < row_info->width; i++) - { - png_byte v; - int j; - - v = (png_byte)((*sp >> sshift) & 0x3); - for (j = 0; j < jstop; j++) - { - *dp &= (png_byte)((0x3f3f >> (6 - dshift)) & 0xff); - *dp |= (png_byte)(v << dshift); - if (dshift == s_end) - { - dshift = s_start; - dp--; - } - else - dshift += s_inc; - } - if (sshift == s_end) - { - sshift = s_start; - sp--; - } - else - sshift += s_inc; - } - break; - } - case 4: - { - png_bytep sp = row + (png_size_t)((row_info->width - 1) >> 1); - png_bytep dp = row + (png_size_t)((final_width - 1) >> 1); - int sshift, dshift; - int s_start, s_end, s_inc; - png_uint_32 i; - int jstop = png_pass_inc[pass]; - -#if defined(PNG_READ_PACKSWAP_SUPPORTED) - if (transformations & PNG_PACKSWAP) - { - sshift = (int)(((row_info->width + 1) & 1) << 2); - dshift = (int)(((final_width + 1) & 1) << 2); - s_start = 4; - s_end = 0; - s_inc = -4; - } - else -#endif - { - sshift = (int)((1 - ((row_info->width + 1) & 1)) << 2); - dshift = (int)((1 - ((final_width + 1) & 1)) << 2); - s_start = 0; - s_end = 4; - s_inc = 4; - } - - for (i = 0; i < row_info->width; i++) - { - png_byte v = (png_byte)((*sp >> sshift) & 0xf); - int j; - - for (j = 0; j < jstop; j++) - { - *dp &= (png_byte)((0xf0f >> (4 - dshift)) & 0xff); - *dp |= (png_byte)(v << dshift); - if (dshift == s_end) - { - dshift = s_start; - dp--; - } - else - dshift += s_inc; - } - if (sshift == s_end) - { - sshift = s_start; - sp--; - } - else - sshift += s_inc; - } - break; - } - default: - { - png_size_t pixel_bytes = (row_info->pixel_depth >> 3); - png_bytep sp = row + (png_size_t)(row_info->width - 1) * pixel_bytes; - png_bytep dp = row + (png_size_t)(final_width - 1) * pixel_bytes; - int jstop = png_pass_inc[pass]; - png_uint_32 i; - - for (i = 0; i < row_info->width; i++) - { - png_byte v[8]; - int j; - - png_memcpy(v, sp, pixel_bytes); - for (j = 0; j < jstop; j++) - { - png_memcpy(dp, v, pixel_bytes); - dp -= pixel_bytes; - } - sp -= pixel_bytes; - } - break; - } - } - row_info->width = final_width; - row_info->rowbytes = ((final_width * - (png_uint_32)row_info->pixel_depth + 7) >> 3); - } -} -#endif - -void -png_read_filter_row(png_structp png_ptr, png_row_infop row_info, png_bytep row, - png_bytep prev_row, int filter) -{ - png_debug(1, "in png_read_filter_row\n"); - png_debug2(2,"row = %d, filter = %d\n", png_ptr->row_number, filter); - - - switch (filter) - { - case PNG_FILTER_VALUE_NONE: - break; - case PNG_FILTER_VALUE_SUB: - { - png_uint_32 i; - png_uint_32 istop = row_info->rowbytes; - png_uint_32 bpp = (row_info->pixel_depth + 7) / 8; - png_bytep rp = row + bpp; - png_bytep lp = row; - - for (i = bpp; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*lp++)) & 0xff); - rp++; - } - break; - } - case PNG_FILTER_VALUE_UP: - { - png_uint_32 i; - png_uint_32 istop = row_info->rowbytes; - png_bytep rp = row; - png_bytep pp = prev_row; - - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); - rp++; - } - break; - } - case PNG_FILTER_VALUE_AVG: - { - png_uint_32 i; - png_bytep rp = row; - png_bytep pp = prev_row; - png_bytep lp = row; - png_uint_32 bpp = (row_info->pixel_depth + 7) / 8; - png_uint_32 istop = row_info->rowbytes - bpp; - - for (i = 0; i < bpp; i++) - { - *rp = (png_byte)(((int)(*rp) + - ((int)(*pp++) / 2)) & 0xff); - rp++; - } - - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(((int)(*rp) + - (int)(*pp++ + *lp++) / 2) & 0xff); - rp++; - } - break; - } - case PNG_FILTER_VALUE_PAETH: - { - png_uint_32 i; - png_bytep rp = row; - png_bytep pp = prev_row; - png_bytep lp = row; - png_bytep cp = prev_row; - png_uint_32 bpp = (row_info->pixel_depth + 7) / 8; - png_uint_32 istop=row_info->rowbytes - bpp; - - for (i = 0; i < bpp; i++) - { - *rp = (png_byte)(((int)(*rp) + (int)(*pp++)) & 0xff); - rp++; - } - - for (i = 0; i < istop; i++) /* use leftover rp,pp */ - { - int a, b, c, pa, pb, pc, p; - - a = *lp++; - b = *pp++; - c = *cp++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - /* - if (pa <= pb && pa <= pc) - p = a; - else if (pb <= pc) - p = b; - else - p = c; - */ - - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; - - *rp = (png_byte)(((int)(*rp) + p) & 0xff); - rp++; - } - break; - } - default: - png_warning(png_ptr, "Ignoring bad adaptive filter type"); - *row=0; - break; - } -} - -void -png_read_finish_row(png_structp png_ptr) -{ - png_debug(1, "in png_read_finish_row\n"); - png_ptr->row_number++; - if (png_ptr->row_number < png_ptr->num_rows) - return; - - if (png_ptr->interlaced) - { - png_ptr->row_number = 0; - png_memset_check(png_ptr, png_ptr->prev_row, 0, png_ptr->rowbytes + 1); - do - { - png_ptr->pass++; - if (png_ptr->pass >= 7) - break; - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - png_ptr->irowbytes = ((png_ptr->iwidth * - (png_uint_32)png_ptr->pixel_depth + 7) >> 3) +1; - - if (!(png_ptr->transformations & PNG_INTERLACE)) - { - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; - if (!(png_ptr->num_rows)) - continue; - } - else /* if (png_ptr->transformations & PNG_INTERLACE) */ - break; - } while (png_ptr->iwidth == 0); - - if (png_ptr->pass < 7) - return; - } - - if (!(png_ptr->flags & PNG_FLAG_ZLIB_FINISHED)) - { - char extra; - int ret; - - png_ptr->zstream.next_out = (Byte *)&extra; - png_ptr->zstream.avail_out = (uInt)1; - for(;;) - { - if (!(png_ptr->zstream.avail_in)) - { - while (!png_ptr->idat_size) - { - png_byte chunk_length[4]; - - png_crc_finish(png_ptr, 0); - - png_read_data(png_ptr, chunk_length, 4); - png_ptr->idat_size = png_get_uint_32(chunk_length); - - png_reset_crc(png_ptr); - png_crc_read(png_ptr, png_ptr->chunk_name, 4); - if (png_memcmp(png_ptr->chunk_name, png_IDAT, 4)) - png_error(png_ptr, "Not enough image data"); - - } - png_ptr->zstream.avail_in = (uInt)png_ptr->zbuf_size; - png_ptr->zstream.next_in = png_ptr->zbuf; - if (png_ptr->zbuf_size > png_ptr->idat_size) - png_ptr->zstream.avail_in = (uInt)png_ptr->idat_size; - png_crc_read(png_ptr, png_ptr->zbuf, png_ptr->zstream.avail_in); - png_ptr->idat_size -= png_ptr->zstream.avail_in; - } - ret = inflate(&png_ptr->zstream, Z_PARTIAL_FLUSH); - if (ret == Z_STREAM_END) - { - if (!(png_ptr->zstream.avail_out) || png_ptr->zstream.avail_in || - png_ptr->idat_size) - png_error(png_ptr, "Extra compressed data"); - png_ptr->mode |= PNG_AFTER_IDAT; - png_ptr->flags |= PNG_FLAG_ZLIB_FINISHED; - break; - } - if (ret != Z_OK) - png_error(png_ptr, png_ptr->zstream.msg ? png_ptr->zstream.msg : - "Decompression Error"); - - if (!(png_ptr->zstream.avail_out)) - png_error(png_ptr, "Extra compressed data"); - - } - png_ptr->zstream.avail_out = 0; - } - - if (png_ptr->idat_size || png_ptr->zstream.avail_in) - png_error(png_ptr, "Extra compression data"); - - inflateReset(&png_ptr->zstream); - - png_ptr->mode |= PNG_AFTER_IDAT; -} - -void -png_read_start_row(png_structp png_ptr) -{ - int max_pixel_depth; - png_uint_32 row_bytes; - - png_debug(1, "in png_read_start_row\n"); - png_ptr->zstream.avail_in = 0; - png_init_read_transformations(png_ptr); - if (png_ptr->interlaced) - { - if (!(png_ptr->transformations & PNG_INTERLACE)) - png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 - - png_pass_ystart[0]) / png_pass_yinc[0]; - else - png_ptr->num_rows = png_ptr->height; - - png_ptr->iwidth = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - - row_bytes = ((png_ptr->iwidth * - (png_uint_32)png_ptr->pixel_depth + 7) >> 3) +1; - png_ptr->irowbytes = (png_size_t)row_bytes; - if((png_uint_32)png_ptr->irowbytes != row_bytes) - png_error(png_ptr, "Rowbytes overflow in png_read_start_row"); - } - else - { - png_ptr->num_rows = png_ptr->height; - png_ptr->iwidth = png_ptr->width; - png_ptr->irowbytes = png_ptr->rowbytes + 1; - } - max_pixel_depth = png_ptr->pixel_depth; - -#if defined(PNG_READ_PACK_SUPPORTED) - if ((png_ptr->transformations & PNG_PACK) && png_ptr->bit_depth < 8) - max_pixel_depth = 8; -#endif - -#if defined(PNG_READ_EXPAND_SUPPORTED) - if (png_ptr->transformations & PNG_EXPAND) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - if (png_ptr->num_trans) - max_pixel_depth = 32; - else - max_pixel_depth = 24; - } - else if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY) - { - if (max_pixel_depth < 8) - max_pixel_depth = 8; - if (png_ptr->num_trans) - max_pixel_depth *= 2; - } - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB) - { - if (png_ptr->num_trans) - { - max_pixel_depth *= 4; - max_pixel_depth /= 3; - } - } - } -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) - if (png_ptr->transformations & (PNG_FILLER)) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - max_pixel_depth = 32; - else if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY) - { - if (max_pixel_depth <= 8) - max_pixel_depth = 16; - else - max_pixel_depth = 32; - } - else if (png_ptr->color_type == PNG_COLOR_TYPE_RGB) - { - if (max_pixel_depth <= 32) - max_pixel_depth = 32; - else - max_pixel_depth = 64; - } - } -#endif - -#if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED) - if (png_ptr->transformations & PNG_GRAY_TO_RGB) - { - if ( -#if defined(PNG_READ_EXPAND_SUPPORTED) - (png_ptr->num_trans && (png_ptr->transformations & PNG_EXPAND)) || -#endif -#if defined(PNG_READ_FILLER_SUPPORTED) - (png_ptr->transformations & (PNG_FILLER)) || -#endif - png_ptr->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - if (max_pixel_depth <= 16) - max_pixel_depth = 32; - else - max_pixel_depth = 64; - } - else - { - if (max_pixel_depth <= 8) - max_pixel_depth = 24; - else - max_pixel_depth = 48; - } - } -#endif - - /* align the width on the next larger 8 pixels. Mainly used - for interlacing */ - row_bytes = ((png_ptr->width + 7) & ~((png_uint_32)7)); - /* calculate the maximum bytes needed, adding a byte and a pixel - for safety's sake */ - row_bytes = ((row_bytes * (png_uint_32)max_pixel_depth + 7) >> 3) + - 1 + ((max_pixel_depth + 7) >> 3); -#ifdef PNG_MAX_MALLOC_64K - if (row_bytes > (png_uint_32)65536L) - png_error(png_ptr, "This image requires a row greater than 64KB"); -#endif - png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, row_bytes); - -#ifdef PNG_MAX_MALLOC_64K - if ((png_uint_32)png_ptr->rowbytes + 1 > (png_uint_32)65536L) - png_error(png_ptr, "This image requires a row greater than 64KB"); -#endif - png_ptr->prev_row = (png_bytep)png_malloc(png_ptr, (png_uint_32)( - png_ptr->rowbytes + 1)); - - png_memset_check(png_ptr, png_ptr->prev_row, 0, png_ptr->rowbytes + 1); - - png_debug1(3, "width = %d,\n", png_ptr->width); - png_debug1(3, "height = %d,\n", png_ptr->height); - png_debug1(3, "iwidth = %d,\n", png_ptr->iwidth); - png_debug1(3, "num_rows = %d\n", png_ptr->num_rows); - png_debug1(3, "rowbytes = %d,\n", png_ptr->rowbytes); - png_debug1(3, "irowbytes = %d,\n", png_ptr->irowbytes); - - png_ptr->flags |= PNG_FLAG_ROW_INIT; -} diff --git a/src/png/pngset.c b/src/png/pngset.c deleted file mode 100644 index 320083638c..0000000000 --- a/src/png/pngset.c +++ /dev/null @@ -1,380 +0,0 @@ - -/* pngset.c - storage of image information into info struct - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * The functions here are used during reads to store data from the file - * into the info struct, and during writes to store application data - * into the info struct for writing into the file. This abstracts the - * info struct and allows us to change the structure in the future. - */ - -#define PNG_INTERNAL -#include "png.h" - -#if defined(PNG_READ_bKGD_SUPPORTED) || defined(PNG_WRITE_bKGD_SUPPORTED) -void -png_set_bKGD(png_structp png_ptr, png_infop info_ptr, png_color_16p background) -{ - png_debug1(1, "in %s storage function\n", "bKGD"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_memcpy(&(info_ptr->background), background, sizeof(png_color_16)); - info_ptr->valid |= PNG_INFO_bKGD; -} -#endif - -#if defined(PNG_READ_cHRM_SUPPORTED) || defined(PNG_WRITE_cHRM_SUPPORTED) -void -png_set_cHRM(png_structp png_ptr, png_infop info_ptr, - double white_x, double white_y, double red_x, double red_y, - double green_x, double green_y, double blue_x, double blue_y) -{ - png_debug1(1, "in %s storage function\n", "cHRM"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->x_white = (float)white_x; - info_ptr->y_white = (float)white_y; - info_ptr->x_red = (float)red_x; - info_ptr->y_red = (float)red_y; - info_ptr->x_green = (float)green_x; - info_ptr->y_green = (float)green_y; - info_ptr->x_blue = (float)blue_x; - info_ptr->y_blue = (float)blue_y; - info_ptr->valid |= PNG_INFO_cHRM; -} -#endif - -#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_WRITE_gAMA_SUPPORTED) -void -png_set_gAMA(png_structp png_ptr, png_infop info_ptr, double file_gamma) -{ - png_debug1(1, "in %s storage function\n", "gAMA"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->gamma = (float)file_gamma; - info_ptr->valid |= PNG_INFO_gAMA; -} -#endif - -#if defined(PNG_READ_hIST_SUPPORTED) || defined(PNG_WRITE_hIST_SUPPORTED) -void -png_set_hIST(png_structp png_ptr, png_infop info_ptr, png_uint_16p hist) -{ - png_debug1(1, "in %s storage function\n", "hIST"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->hist = hist; - info_ptr->valid |= PNG_INFO_hIST; -} -#endif - -void -png_set_IHDR(png_structp png_ptr, png_infop info_ptr, - png_uint_32 width, png_uint_32 height, int bit_depth, - int color_type, int interlace_type, int compression_type, - int filter_type) -{ - int rowbytes_per_pixel; - png_debug1(1, "in %s storage function\n", "IHDR"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->width = width; - info_ptr->height = height; - info_ptr->bit_depth = (png_byte)bit_depth; - info_ptr->color_type =(png_byte) color_type; - info_ptr->compression_type = (png_byte)compression_type; - info_ptr->filter_type = (png_byte)filter_type; - info_ptr->interlace_type = (png_byte)interlace_type; - if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - info_ptr->channels = 1; - else if (info_ptr->color_type & PNG_COLOR_MASK_COLOR) - info_ptr->channels = 3; - else - info_ptr->channels = 1; - if (info_ptr->color_type & PNG_COLOR_MASK_ALPHA) - info_ptr->channels++; - info_ptr->pixel_depth = (png_byte)(info_ptr->channels * info_ptr->bit_depth); - - /* check for overflow */ - rowbytes_per_pixel = (info_ptr->pixel_depth + 7) >> 3; - if (( width > (png_uint_32)2147483647L/rowbytes_per_pixel)) - { - png_warning(png_ptr, - "Width too large to process image data; rowbytes will overflow."); - info_ptr->rowbytes = (png_size_t)0; - } - else - info_ptr->rowbytes = (info_ptr->width * info_ptr->pixel_depth + 7) >> 3; -} - -#if defined(PNG_READ_oFFs_SUPPORTED) || defined(PNG_WRITE_oFFs_SUPPORTED) -void -png_set_oFFs(png_structp png_ptr, png_infop info_ptr, - png_uint_32 offset_x, png_uint_32 offset_y, int unit_type) -{ - png_debug1(1, "in %s storage function\n", "oFFs"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->x_offset = offset_x; - info_ptr->y_offset = offset_y; - info_ptr->offset_unit_type = (png_byte)unit_type; - info_ptr->valid |= PNG_INFO_oFFs; -} -#endif - -#if defined(PNG_READ_pCAL_SUPPORTED) || defined(PNG_WRITE_pCAL_SUPPORTED) -void -png_set_pCAL(png_structp png_ptr, png_infop info_ptr, - png_charp purpose, png_int_32 X0, png_int_32 X1, int type, int nparams, - png_charp units, png_charpp params) -{ - png_uint_32 length; - int i; - - png_debug1(1, "in %s storage function\n", "pCAL"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - length = png_strlen(purpose) + 1; - png_debug1(3, "allocating purpose for info (%d bytes)\n", length); - info_ptr->pcal_purpose = (png_charp)png_malloc(png_ptr, length); - png_memcpy(info_ptr->pcal_purpose, purpose, (png_size_t)length); - - png_debug(3, "storing X0, X1, type, and nparams in info\n"); - info_ptr->pcal_X0 = X0; - info_ptr->pcal_X1 = X1; - info_ptr->pcal_type = (png_byte)type; - info_ptr->pcal_nparams = (png_byte)nparams; - - length = png_strlen(units) + 1; - png_debug1(3, "allocating units for info (%d bytes)\n", length); - info_ptr->pcal_units = (png_charp)png_malloc(png_ptr, length); - png_memcpy(info_ptr->pcal_units, units, (png_size_t)length); - - info_ptr->pcal_params = (png_charpp)png_malloc(png_ptr, - (png_uint_32)((nparams + 1) * sizeof(png_charp))); - info_ptr->pcal_params[nparams] = NULL; - - for (i = 0; i < nparams; i++) - { - length = png_strlen(params[i]) + 1; - png_debug2(3, "allocating parameter %d for info (%d bytes)\n", i, length); - info_ptr->pcal_params[i] = (png_charp)png_malloc(png_ptr, length); - png_memcpy(info_ptr->pcal_params[i], params[i], (png_size_t)length); - } - - info_ptr->valid |= PNG_INFO_pCAL; -} -#endif - -#if defined(PNG_READ_pHYs_SUPPORTED) || defined(PNG_WRITE_pHYs_SUPPORTED) -void -png_set_pHYs(png_structp png_ptr, png_infop info_ptr, - png_uint_32 res_x, png_uint_32 res_y, int unit_type) -{ - png_debug1(1, "in %s storage function\n", "pHYs"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->x_pixels_per_unit = res_x; - info_ptr->y_pixels_per_unit = res_y; - info_ptr->phys_unit_type = (png_byte)unit_type; - info_ptr->valid |= PNG_INFO_pHYs; -} -#endif - -void -png_set_PLTE(png_structp png_ptr, png_infop info_ptr, - png_colorp palette, int num_palette) -{ - png_debug1(1, "in %s storage function\n", "PLTE"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->palette = palette; - info_ptr->num_palette = (png_uint_16)num_palette; - info_ptr->valid |= PNG_INFO_PLTE; -} - -#if defined(PNG_READ_sBIT_SUPPORTED) || defined(PNG_WRITE_sBIT_SUPPORTED) -void -png_set_sBIT(png_structp png_ptr, png_infop info_ptr, - png_color_8p sig_bit) -{ - png_debug1(1, "in %s storage function\n", "sBIT"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_memcpy(&(info_ptr->sig_bit), sig_bit, sizeof (png_color_8)); - info_ptr->valid |= PNG_INFO_sBIT; -} -#endif - -#if defined(PNG_READ_sRGB_SUPPORTED) || defined(PNG_WRITE_sRGB_SUPPORTED) -void -png_set_sRGB(png_structp png_ptr, png_infop info_ptr, int intent) -{ - png_debug1(1, "in %s storage function\n", "sRGB"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - info_ptr->srgb_intent = (png_byte)intent; - info_ptr->valid |= PNG_INFO_sRGB; -} -void -png_set_sRGB_gAMA_and_cHRM(png_structp png_ptr, png_infop info_ptr, - int intent) -{ -#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_WRITE_gAMA_SUPPORTED) - float file_gamma; -#endif -#if defined(PNG_READ_cHRM_SUPPORTED) || defined(PNG_WRITE_cHRM_SUPPORTED) - float white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y; -#endif - png_debug1(1, "in %s storage function\n", "sRGB_gAMA_and_cHRM"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_set_sRGB(png_ptr, info_ptr, intent); - -#if defined(PNG_READ_gAMA_SUPPORTED) || defined(PNG_WRITE_gAMA_SUPPORTED) - file_gamma = (float).45; - png_set_gAMA(png_ptr, info_ptr, file_gamma); -#endif - -#if defined(PNG_READ_cHRM_SUPPORTED) || defined(PNG_WRITE_cHRM_SUPPORTED) - white_x = (float).3127; - white_y = (float).3290; - red_x = (float).64; - red_y = (float).33; - green_x = (float).30; - green_y = (float).60; - blue_x = (float).15; - blue_y = (float).06; - - png_set_cHRM(png_ptr, info_ptr, - white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y); - -#endif -} -#endif - -#if defined(PNG_READ_tEXt_SUPPORTED) || defined(PNG_WRITE_tEXt_SUPPORTED) || \ - defined(PNG_READ_zTXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) -void -png_set_text(png_structp png_ptr, png_infop info_ptr, png_textp text_ptr, - int num_text) -{ - int i; - - png_debug1(1, "in %s storage function\n", (png_ptr->chunk_name[0] == '\0' ? - "text" : (png_const_charp)png_ptr->chunk_name)); - - if (png_ptr == NULL || info_ptr == NULL || num_text == 0) - return; - - /* Make sure we have enough space in the "text" array in info_struct - * to hold all of the incoming text_ptr objects. - */ - if (info_ptr->num_text + num_text > info_ptr->max_text) - { - if (info_ptr->text != NULL) - { - png_textp old_text; - int old_max; - - old_max = info_ptr->max_text; - info_ptr->max_text = info_ptr->num_text + num_text + 8; - old_text = info_ptr->text; - info_ptr->text = (png_textp)png_malloc(png_ptr, - (png_uint_32)(info_ptr->max_text * sizeof (png_text))); - png_memcpy(info_ptr->text, old_text, (png_size_t)(old_max * - sizeof(png_text))); - png_free(png_ptr, old_text); - } - else - { - info_ptr->max_text = num_text + 8; - info_ptr->num_text = 0; - info_ptr->text = (png_textp)png_malloc(png_ptr, - (png_uint_32)(info_ptr->max_text * sizeof (png_text))); - } - png_debug1(3, "allocated %d entries for info_ptr->text\n", - info_ptr->max_text); - } - - for (i = 0; i < num_text; i++) - { - png_textp textp = &(info_ptr->text[info_ptr->num_text]); - - if (text_ptr[i].text == NULL) - text_ptr[i].text = (png_charp)""; - - if (text_ptr[i].text[0] == '\0') - { - textp->text_length = 0; - textp->compression = PNG_TEXT_COMPRESSION_NONE; - } - else - { - textp->text_length = png_strlen(text_ptr[i].text); - textp->compression = text_ptr[i].compression; - } - textp->text = text_ptr[i].text; - textp->key = text_ptr[i].key; - info_ptr->num_text++; - png_debug1(3, "transferred text chunk %d\n", info_ptr->num_text); - } -} -#endif - -#if defined(PNG_READ_tIME_SUPPORTED) || defined(PNG_WRITE_tIME_SUPPORTED) -void -png_set_tIME(png_structp png_ptr, png_infop info_ptr, png_timep mod_time) -{ - png_debug1(1, "in %s storage function\n", "tIME"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - png_memcpy(&(info_ptr->mod_time), mod_time, sizeof (png_time)); - info_ptr->valid |= PNG_INFO_tIME; -} -#endif - -#if defined(PNG_READ_tRNS_SUPPORTED) || defined(PNG_WRITE_tRNS_SUPPORTED) -void -png_set_tRNS(png_structp png_ptr, png_infop info_ptr, - png_bytep trans, int num_trans, png_color_16p trans_values) -{ - png_debug1(1, "in %s storage function\n", "tRNS"); - if (png_ptr == NULL || info_ptr == NULL) - return; - - if (trans != NULL) - { - info_ptr->trans = trans; - } - - if (trans_values != NULL) - { - png_memcpy(&(info_ptr->trans_values), trans_values, - sizeof(png_color_16)); - if (num_trans == 0) - num_trans = 1; - } - info_ptr->num_trans = (png_uint_16)num_trans; - info_ptr->valid |= PNG_INFO_tRNS; -} -#endif - diff --git a/src/png/pngtest.c b/src/png/pngtest.c deleted file mode 100644 index a1ba8ec2ea..0000000000 --- a/src/png/pngtest.c +++ /dev/null @@ -1,1081 +0,0 @@ - -/* pngtest.c - a simple test program to test libpng - * - * libpng 1.0.3 -January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This program reads in a PNG image, writes it out again, and then - * compares the two files. If the files are identical, this shows that - * the basic chunk handling, filtering, and (de)compression code is working - * properly. It does not currently test all of the transforms, although - * it probably should. - * - * The program will report "FAIL" in certain legitimate cases: - * 1) when the compression level or filter selection method is changed. - * 2) when the chunk size is not 8K. - * 3) unknown ancillary chunks exist in the input file. - * 4) others not listed here... - * In these cases, it is best to check with another tool such as "pngcheck" - * to see what the differences between the two images are. - * - * If a filename is given on the command-line, then this file is used - * for the input, rather than the default "pngtest.png". This allows - * testing a wide variety of files easily. You can also test a number - * of files at once by typing "pngtest -m file1.png file2.png ..." - */ - -#include -#include - -/* Makes pngtest verbose so we can find problems (needs to be before png.h) */ -#ifndef PNG_DEBUG -#define PNG_DEBUG 0 -#endif - -#include "png.h" - -#if defined(PNG_TIME_RFC1123_SUPPORTED) -static int tIME_chunk_present=0; -static char tIME_string[30] = "no tIME chunk present in file"; -#endif /* PNG_TIME_RFC1123_SUPPORTED */ - -int test_one_file PNGARG((PNG_CONST char *inname, PNG_CONST char *outname)); - -#ifdef __TURBOC__ -#include -#endif - -/* defined so I can write to a file on gui/windowing platforms */ -/* #define STDERR stderr */ -#define STDERR stdout /* for DOS */ - -/* example of using row callbacks to make a simple progress meter */ -static int status_pass=1; -static int status_dots_requested=0; -static int status_dots=1; - -void -read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) -{ - if(png_ptr == NULL || row_number > 0x3fffffffL) return; - if(status_pass != pass) - { - fprintf(stdout,"\n Pass %d: ",pass); - status_pass = pass; - status_dots = 30; - } - status_dots--; - if(status_dots == 0) - { - fprintf(stdout, "\n "); - status_dots=30; - } - fprintf(stdout, "r"); -} - -void -write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) -{ - if(png_ptr == NULL || row_number > 0x3fffffffL || pass > 7) return; - fprintf(stdout, "w"); -} - - -#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -/* example of using user transform callback (we don't transform anything, - but merely count the zero samples) */ - -static png_uint_32 zero_samples; - -void -count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data) -{ - png_bytep dp = data; - if(png_ptr == NULL)return; - - /* contents of row_info: - * png_uint_32 width width of row - * png_uint_32 rowbytes number of bytes in row - * png_byte color_type color type of pixels - * png_byte bit_depth bit depth of samples - * png_byte channels number of channels (1-4) - * png_byte pixel_depth bits per pixel (depth*channels) - */ - - /* counts the number of zero samples (or zero pixels if color_type is 3 */ - - if(row_info->color_type == 0 || row_info->color_type == 3) - { - int pos=0; - png_uint_32 n, nstop; - for (n=0, nstop=row_info->width; nbit_depth == 1) - { - if(((*dp << pos++ )& 0x80) == 0) zero_samples++; - if(pos == 8) - { - pos = 0; - dp++; - } - } - if(row_info->bit_depth == 2) - { - if(((*dp << (pos+=2))& 0xc0) == 0) zero_samples++; - if(pos == 8) - { - pos = 0; - dp++; - } - } - if(row_info->bit_depth == 4) - { - if(((*dp << (pos+=4))& 0xf0) == 0) zero_samples++; - if(pos == 8) - { - pos = 0; - dp++; - } - } - if(row_info->bit_depth == 8) - if(*dp++ == 0) zero_samples++; - if(row_info->bit_depth == 16) - { - if((*dp | *(dp+1)) == 0) zero_samples++; - dp+=2; - } - } - } - else /* other color types */ - { - png_uint_32 n, nstop; - int channel; - int color_channels = row_info->channels; - if(row_info->color_type > 3)color_channels--; - - for (n=0, nstop=row_info->width; nbit_depth == 8) - if(*dp++ == 0) zero_samples++; - if(row_info->bit_depth == 16) - { - if((*dp | *(dp+1)) == 0) zero_samples++; - dp+=2; - } - } - if(row_info->color_type > 3) - { - dp++; - if(row_info->bit_depth == 16)dp++; - } - } - } -} -#endif /* PNG_WRITE_USER_TRANSFORM_SUPPORTED */ - -static int verbose = 0; -static int wrote_question = 0; - -#if defined(PNG_NO_STDIO) -/* START of code to validate stdio-free compilation */ -/* These copies of the default read/write functions come from pngrio.c and */ -/* pngwio.c. They allow "don't include stdio" testing of the library. */ -/* This is the function that does the actual reading of data. If you are - not reading from a standard C stream, you should create a replacement - read_data function and use it at run time with png_set_read_fn(), rather - than changing the library. */ -#ifndef USE_FAR_KEYWORD -static void -png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_size_t check; - - /* fread() returns 0 on error, so it is OK to store this in a png_size_t - * instead of an int, which is what fread() actually returns. - */ - check = (png_size_t)fread(data, (png_size_t)1, length, - (FILE *)png_ptr->io_ptr); - - if (check != length) - { - png_error(png_ptr, "Read Error"); - } -} -#else -/* this is the model-independent version. Since the standard I/O library - can't handle far buffers in the medium and small models, we have to copy - the data. -*/ - -#define NEAR_BUF_SIZE 1024 -#define MIN(a,b) (a <= b ? a : b) - -static void -png_default_read_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - int check; - png_byte *n_data; - FILE *io_ptr; - - /* Check if data really is near. If so, use usual code. */ - n_data = (png_byte *)CVT_PTR_NOCHECK(data); - io_ptr = (FILE *)CVT_PTR(png_ptr->io_ptr); - if ((png_bytep)n_data == data) - { - check = fread(n_data, 1, length, io_ptr); - } - else - { - png_byte buf[NEAR_BUF_SIZE]; - png_size_t read, remaining, err; - check = 0; - remaining = length; - do - { - read = MIN(NEAR_BUF_SIZE, remaining); - err = fread(buf, (png_size_t)1, read, io_ptr); - png_memcpy(data, buf, read); /* copy far buffer to near buffer */ - if(err != read) - break; - else - check += err; - data += read; - remaining -= read; - } - while (remaining != 0); - } - if (check != length) - { - png_error(png_ptr, "read Error"); - } -} -#endif /* USE_FAR_KEYWORD */ - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) -static void -png_default_flush(png_structp png_ptr) -{ - FILE *io_ptr; - io_ptr = (FILE *)CVT_PTR((png_ptr->io_ptr)); - if (io_ptr != NULL) - fflush(io_ptr); -} -#endif - -/* This is the function that does the actual writing of data. If you are - not writing to a standard C stream, you should create a replacement - write_data function and use it at run time with png_set_write_fn(), rather - than changing the library. */ -#ifndef USE_FAR_KEYWORD -static void -png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_uint_32 check; - - check = fwrite(data, 1, length, (FILE *)(png_ptr->io_ptr)); - if (check != length) - { - png_error(png_ptr, "Write Error"); - } -} -#else -/* this is the model-independent version. Since the standard I/O library - can't handle far buffers in the medium and small models, we have to copy - the data. -*/ - -#define NEAR_BUF_SIZE 1024 -#define MIN(a,b) (a <= b ? a : b) - -static void -png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_uint_32 check; - png_byte *near_data; /* Needs to be "png_byte *" instead of "png_bytep" */ - FILE *io_ptr; - - /* Check if data really is near. If so, use usual code. */ - near_data = (png_byte *)CVT_PTR_NOCHECK(data); - io_ptr = (FILE *)CVT_PTR(png_ptr->io_ptr); - if ((png_bytep)near_data == data) - { - check = fwrite(near_data, 1, length, io_ptr); - } - else - { - png_byte buf[NEAR_BUF_SIZE]; - png_size_t written, remaining, err; - check = 0; - remaining = length; - do - { - written = MIN(NEAR_BUF_SIZE, remaining); - png_memcpy(buf, data, written); /* copy far buffer to near buffer */ - err = fwrite(buf, 1, written, io_ptr); - if (err != written) - break; - else - check += err; - data += written; - remaining -= written; - } - while (remaining != 0); - } - if (check != length) - { - png_error(png_ptr, "Write Error"); - } -} - -#endif /* USE_FAR_KEYWORD */ - -/* This function is called when there is a warning, but the library thinks - * it can continue anyway. Replacement functions don't have to do anything - * here if you don't want to. In the default configuration, png_ptr is - * not used, but it is passed in case it may be useful. - */ -static void -png_default_warning(png_structp png_ptr, png_const_charp message) -{ - PNG_CONST char *name = "UNKNOWN (ERROR!)"; - if (png_ptr != NULL && png_ptr->error_ptr != NULL) - name = png_ptr->error_ptr; - fprintf(STDERR, "%s: libpng warning: %s\n", name, message); -} - -/* This is the default error handling function. Note that replacements for - * this function MUST NOT RETURN, or the program will likely crash. This - * function is used by default, or if the program supplies NULL for the - * error function pointer in png_set_error_fn(). - */ -static void -png_default_error(png_structp png_ptr, png_const_charp message) -{ - png_default_warning(png_ptr, message); - /* We can return because png_error calls the default handler, which is - * actually OK in this case. */ -} -#endif /* PNG_NO_STDIO */ -/* END of code to validate stdio-free compilation */ - -/* START of code to validate memory allocation and deallocation */ -#ifdef PNG_USER_MEM_SUPPORTED - -/* Allocate memory. For reasonable files, size should never exceed - 64K. However, zlib may allocate more then 64K if you don't tell - it not to. See zconf.h and png.h for more information. zlib does - need to allocate exactly 64K, so whatever you call here must - have the ability to do that. - - This piece of code can be compiled to validate max 64K allocations - by setting MAXSEG_64K in zlib zconf.h *or* PNG_MAX_MALLOC_64K. */ -typedef struct memory_information { - png_uint_32 size; - png_voidp pointer; - struct memory_information FAR *next; -} memory_information; -typedef memory_information FAR *memory_infop; - -static memory_infop pinformation = NULL; -static int current_allocation = 0; -static int maximum_allocation = 0; - -extern PNG_EXPORT(png_voidp,png_debug_malloc) PNGARG((png_structp png_ptr, - png_uint_32 size)); -extern PNG_EXPORT(void,png_debug_free) PNGARG((png_structp png_ptr, - png_voidp ptr)); - -png_voidp -png_debug_malloc(png_structp png_ptr, png_uint_32 size) { - - /* png_malloc has already tested for NULL; png_create_struct calls - png_debug_malloc directly, with png_ptr == NULL which is OK */ - - if (size == 0) - return (png_voidp)(NULL); - - /* This calls the library allocator twice, once to get the requested - buffer and once to get a new free list entry. */ - { - memory_infop pinfo = png_malloc_default(png_ptr, sizeof *pinfo); - pinfo->size = size; - current_allocation += size; - if (current_allocation > maximum_allocation) - maximum_allocation = current_allocation; - pinfo->pointer = png_malloc_default(png_ptr, size); - pinfo->next = pinformation; - pinformation = pinfo; - /* Make sure the caller isn't assuming zeroed memory. */ - png_memset(pinfo->pointer, 0xdd, pinfo->size); - return (png_voidp)(pinfo->pointer); - } -} - -/* Free a pointer. It is removed from the list at the same time. */ -void -png_debug_free(png_structp png_ptr, png_voidp ptr) -{ - if (png_ptr == NULL) - fprintf(STDERR, "NULL pointer to png_debug_free.\n"); - if (ptr == 0) { -#if 0 /* This happens all the time. */ - fprintf(STDERR, "WARNING: freeing NULL pointer\n"); -#endif - return; - } - - /* Unlink the element from the list. */ - { - memory_infop FAR *ppinfo = &pinformation; - for (;;) { - memory_infop pinfo = *ppinfo; - if (pinfo->pointer == ptr) { - *ppinfo = pinfo->next; - current_allocation -= pinfo->size; - if (current_allocation < 0) - fprintf(STDERR, "Duplicate free of memory\n"); - /* We must free the list element too, but first kill - the memory that is to be freed. */ - memset(ptr, 0x55, pinfo->size); - png_free_default(png_ptr, pinfo); - break; - } - if (pinfo->next == NULL) { - fprintf(STDERR, "Pointer %x not found\n", ptr); - break; - } - ppinfo = &pinfo->next; - } - } - - /* Finally free the data. */ - png_free_default(png_ptr, ptr); -} -#endif /* PNG_USER_MEM_SUPPORTED */ -/* END of code to test memory allocation/deallocation */ - -/* Test one file */ -int -test_one_file(PNG_CONST char *inname, PNG_CONST char *outname) -{ - static FILE *fpin, *fpout; /* "static" prevents setjmp corruption */ - png_structp read_ptr, write_ptr; - png_infop read_info_ptr, write_info_ptr, end_info_ptr; - png_bytep row_buf; - png_uint_32 y; - png_uint_32 width, height; - int num_pass, pass; - int bit_depth, color_type; -#ifdef USE_FAR_KEYWORD - jmp_buf jmpbuf; -#endif - - char inbuf[256], outbuf[256]; - - row_buf = (png_bytep)NULL; - - if ((fpin = fopen(inname, "rb")) == NULL) - { - fprintf(STDERR, "Could not find input file %s\n", inname); - return (1); - } - - if ((fpout = fopen(outname, "wb")) == NULL) - { - fprintf(STDERR, "Could not open output file %s\n", outname); - fclose(fpin); - return (1); - } - - png_debug(0, "Allocating read and write structures\n"); -#ifdef PNG_USER_MEM_SUPPORTED - read_ptr = png_create_read_struct_2(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, - (png_error_ptr)NULL, (png_error_ptr)NULL, (png_voidp)NULL, - (png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free); -#else - read_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, - (png_error_ptr)NULL, (png_error_ptr)NULL); -#endif -#if defined(PNG_NO_STDIO) - png_set_error_fn(read_ptr, (png_voidp)inname, png_default_error, - png_default_warning); -#endif -#ifdef PNG_USER_MEM_SUPPORTED - write_ptr = png_create_write_struct_2(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, - (png_error_ptr)NULL, (png_error_ptr)NULL, (png_voidp)NULL, - (png_malloc_ptr)png_debug_malloc, (png_free_ptr)png_debug_free); -#else - write_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, (png_voidp)NULL, - (png_error_ptr)NULL, (png_error_ptr)NULL); -#endif -#if defined(PNG_NO_STDIO) - png_set_error_fn(write_ptr, (png_voidp)inname, png_default_error, - png_default_warning); -#endif - png_debug(0, "Allocating read_info, write_info and end_info structures\n"); - read_info_ptr = png_create_info_struct(read_ptr); - write_info_ptr = png_create_info_struct(write_ptr); - end_info_ptr = png_create_info_struct(read_ptr); -#ifdef PNG_USER_MEM_SUPPORTED -#endif - - png_debug(0, "Setting jmpbuf for read struct\n"); -#ifdef USE_FAR_KEYWORD - if (setjmp(jmpbuf)) -#else - if (setjmp(read_ptr->jmpbuf)) -#endif - { - fprintf(STDERR, "%s -> %s: libpng read error\n", inname, outname); - png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr); - png_destroy_write_struct(&write_ptr, &write_info_ptr); - fclose(fpin); - fclose(fpout); - return (1); - } -#ifdef USE_FAR_KEYWORD - png_memcpy(read_ptr->jmpbuf,jmpbuf,sizeof(jmp_buf)); -#endif - - png_debug(0, "Setting jmpbuf for write struct\n"); -#ifdef USE_FAR_KEYWORD - if (setjmp(jmpbuf)) -#else - if (setjmp(write_ptr->jmpbuf)) -#endif - { - fprintf(STDERR, "%s -> %s: libpng write error\n", inname, outname); - png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr); - png_destroy_write_struct(&write_ptr, &write_info_ptr); - fclose(fpin); - fclose(fpout); - return (1); - } -#ifdef USE_FAR_KEYWORD - png_memcpy(write_ptr->jmpbuf,jmpbuf,sizeof(jmp_buf)); -#endif - - png_debug(0, "Initializing input and output streams\n"); -#if !defined(PNG_NO_STDIO) - png_init_io(read_ptr, fpin); - png_init_io(write_ptr, fpout); -#else - png_set_read_fn(read_ptr, (png_voidp)fpin, png_default_read_data); - png_set_write_fn(write_ptr, (png_voidp)fpout, png_default_write_data, -#if defined(PNG_WRITE_FLUSH_SUPPORTED) - png_default_flush); -#else - NULL); -#endif -#endif - if(status_dots_requested == 1) - { - png_set_write_status_fn(write_ptr, write_row_callback); - png_set_read_status_fn(read_ptr, read_row_callback); - } - else - { - png_set_write_status_fn(write_ptr, NULL); - png_set_read_status_fn(read_ptr, NULL); - } - -# if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) - zero_samples=0; - png_set_write_user_transform_fn(write_ptr, count_zero_samples); -# endif - - png_debug(0, "Reading info struct\n"); - png_read_info(read_ptr, read_info_ptr); - - png_debug(0, "Transferring info struct\n"); - { - int interlace_type, compression_type, filter_type; - - if (png_get_IHDR(read_ptr, read_info_ptr, &width, &height, &bit_depth, - &color_type, &interlace_type, &compression_type, &filter_type)) - { - png_set_IHDR(write_ptr, write_info_ptr, width, height, bit_depth, -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) - color_type, interlace_type, compression_type, filter_type); -#else - color_type, PNG_INTERLACE_NONE, compression_type, filter_type); -#endif - } - } -#if defined(PNG_READ_bKGD_SUPPORTED) && defined(PNG_WRITE_bKGD_SUPPORTED) - { - png_color_16p background; - - if (png_get_bKGD(read_ptr, read_info_ptr, &background)) - { - png_set_bKGD(write_ptr, write_info_ptr, background); - } - } -#endif -#if defined(PNG_READ_cHRM_SUPPORTED) && defined(PNG_WRITE_cHRM_SUPPORTED) - { - double white_x, white_y, red_x, red_y, green_x, green_y, blue_x, blue_y; - - if (png_get_cHRM(read_ptr, read_info_ptr, &white_x, &white_y, &red_x, - &red_y, &green_x, &green_y, &blue_x, &blue_y)) - { - png_set_cHRM(write_ptr, write_info_ptr, white_x, white_y, red_x, - red_y, green_x, green_y, blue_x, blue_y); - } - } -#endif -#if defined(PNG_READ_gAMA_SUPPORTED) && defined(PNG_WRITE_gAMA_SUPPORTED) - { - double gamma; - - if (png_get_gAMA(read_ptr, read_info_ptr, &gamma)) - { - png_set_gAMA(write_ptr, write_info_ptr, gamma); - } - } -#endif -#if defined(PNG_READ_sRGB_SUPPORTED) && defined(PNG_WRITE_sRGB_SUPPORTED) - { - int intent; - - if (png_get_sRGB(read_ptr, read_info_ptr, &intent)) - { - png_set_sRGB(write_ptr, write_info_ptr, intent); - } - } -#endif -#if defined(PNG_READ_hIST_SUPPORTED) && defined(PNG_WRITE_hIST_SUPPORTED) - { - png_uint_16p hist; - - if (png_get_hIST(read_ptr, read_info_ptr, &hist)) - { - png_set_hIST(write_ptr, write_info_ptr, hist); - } - } -#endif -#if defined(PNG_READ_oFFs_SUPPORTED) && defined(PNG_WRITE_oFFs_SUPPORTED) - { - png_uint_32 offset_x, offset_y; - int unit_type; - - if (png_get_oFFs(read_ptr, read_info_ptr,&offset_x,&offset_y,&unit_type)) - { - png_set_oFFs(write_ptr, write_info_ptr, offset_x, offset_y, unit_type); - } - } -#endif -#if defined(PNG_READ_pCAL_SUPPORTED) && defined(PNG_WRITE_pCAL_SUPPORTED) - { - png_charp purpose, units; - png_charpp params; - png_int_32 X0, X1; - int type, nparams; - - if (png_get_pCAL(read_ptr, read_info_ptr, &purpose, &X0, &X1, &type, - &nparams, &units, ¶ms)) - { - png_set_pCAL(write_ptr, write_info_ptr, purpose, X0, X1, type, - nparams, units, params); - } - } -#endif -#if defined(PNG_READ_pHYs_SUPPORTED) && defined(PNG_WRITE_pHYs_SUPPORTED) - { - png_uint_32 res_x, res_y; - int unit_type; - - if (png_get_pHYs(read_ptr, read_info_ptr, &res_x, &res_y, &unit_type)) - { - png_set_pHYs(write_ptr, write_info_ptr, res_x, res_y, unit_type); - } - } -#endif - { - png_colorp palette; - int num_palette; - - if (png_get_PLTE(read_ptr, read_info_ptr, &palette, &num_palette)) - { - png_set_PLTE(write_ptr, write_info_ptr, palette, num_palette); - } - } -#if defined(PNG_READ_sBIT_SUPPORTED) && defined(PNG_WRITE_sBIT_SUPPORTED) - { - png_color_8p sig_bit; - - if (png_get_sBIT(read_ptr, read_info_ptr, &sig_bit)) - { - png_set_sBIT(write_ptr, write_info_ptr, sig_bit); - } - } -#endif -#if (defined(PNG_READ_tEXt_SUPPORTED) && defined(PNG_WRITE_tEXt_SUPPORTED)) || \ - (defined(PNG_READ_zTXt_SUPPORTED) && defined(PNG_WRITE_zTXt_SUPPORTED)) - { - png_textp text_ptr; - int num_text; - - if (png_get_text(read_ptr, read_info_ptr, &text_ptr, &num_text) > 0) - { - png_debug1(0, "Handling %d tEXt/zTXt chunks\n", num_text); - png_set_text(write_ptr, write_info_ptr, text_ptr, num_text); - } - } -#endif -#if defined(PNG_READ_tIME_SUPPORTED) && defined(PNG_WRITE_tIME_SUPPORTED) - { - png_timep mod_time; - - if (png_get_tIME(read_ptr, read_info_ptr, &mod_time)) - { - png_set_tIME(write_ptr, write_info_ptr, mod_time); -#if defined(PNG_TIME_RFC1123_SUPPORTED) - /* we have to use png_strcpy instead of "=" because the string - pointed to by png_convert_to_rfc1123() gets free'ed before - we use it */ - png_strcpy(tIME_string,png_convert_to_rfc1123(read_ptr, mod_time)); - tIME_chunk_present++; -#endif /* PNG_TIME_RFC1123_SUPPORTED */ - } - } -#endif -#if defined(PNG_READ_tRNS_SUPPORTED) && defined(PNG_WRITE_tRNS_SUPPORTED) - { - png_bytep trans; - int num_trans; - png_color_16p trans_values; - - if (png_get_tRNS(read_ptr, read_info_ptr, &trans, &num_trans, - &trans_values)) - { - png_set_tRNS(write_ptr, write_info_ptr, trans, num_trans, - trans_values); - } - } -#endif - - png_debug(0, "\nWriting info struct\n"); - png_write_info(write_ptr, write_info_ptr); - - png_debug(0, "\nAllocating row buffer \n"); - row_buf = (png_bytep)png_malloc(read_ptr, - png_get_rowbytes(read_ptr, read_info_ptr)); - if (row_buf == NULL) - { - fprintf(STDERR, "No memory to allocate row buffer\n"); - png_destroy_read_struct(&read_ptr, &read_info_ptr, (png_infopp)NULL); - png_destroy_write_struct(&write_ptr, &write_info_ptr); - fclose(fpin); - fclose(fpout); - return (1); - } - png_debug(0, "Writing row data\n"); - - num_pass = png_set_interlace_handling(read_ptr); - png_set_interlace_handling(write_ptr); - - for (pass = 0; pass < num_pass; pass++) - { - png_debug1(0, "Writing row data for pass %d\n",pass); - for (y = 0; y < height; y++) - { - png_read_rows(read_ptr, (png_bytepp)&row_buf, (png_bytepp)NULL, 1); - png_write_rows(write_ptr, (png_bytepp)&row_buf, 1); - } - } - - png_debug(0, "Reading and writing end_info data\n"); - png_read_end(read_ptr, end_info_ptr); - png_write_end(write_ptr, end_info_ptr); - -#ifdef PNG_EASY_ACCESS_SUPPORTED - if(verbose) - { - png_uint_32 iwidth, iheight; - iwidth = png_get_image_width(write_ptr, write_info_ptr); - iheight = png_get_image_height(write_ptr, write_info_ptr); - fprintf(STDERR, "Image width = %lu, height = %lu\n", - iwidth, iheight); - } -#endif - - png_debug(0, "Destroying data structs\n"); - png_free(read_ptr, row_buf); - png_destroy_read_struct(&read_ptr, &read_info_ptr, &end_info_ptr); - png_destroy_write_struct(&write_ptr, &write_info_ptr); - - fclose(fpin); - fclose(fpout); - - png_debug(0, "Opening files for comparison\n"); - if ((fpin = fopen(inname, "rb")) == NULL) - { - fprintf(STDERR, "Could not find file %s\n", inname); - return (1); - } - - if ((fpout = fopen(outname, "rb")) == NULL) - { - fprintf(STDERR, "Could not find file %s\n", outname); - fclose(fpin); - return (1); - } - - for(;;) - { - png_size_t num_in, num_out; - - num_in = fread(inbuf, 1, 1, fpin); - num_out = fread(outbuf, 1, 1, fpout); - - if (num_in != num_out) - { - fprintf(STDERR, "Files %s and %s are of a different size\n", - inname, outname); - if(wrote_question == 0) - { - fprintf(STDERR, - " Was %s written with the same chunk size (8k),",inname); - fprintf(STDERR, - " filtering\n heuristic (libpng default), compression"); - fprintf(STDERR, - " level (zlib default)\n and zlib version (%s)?\n\n", - ZLIB_VERSION); - wrote_question=1; - } - fclose(fpin); - fclose(fpout); - return (0); - } - - if (!num_in) - break; - - if (png_memcmp(inbuf, outbuf, num_in)) - { - fprintf(STDERR, "Files %s and %s are different\n", inname, outname); - if(wrote_question == 0) - { - fprintf(STDERR, - " Was %s written with the same chunk size (8k),",inname); - fprintf(STDERR, - " filtering\n heuristic (libpng default), compression"); - fprintf(STDERR, - " level (zlib default)\n and zlib version (%s)?\n\n", - ZLIB_VERSION); - wrote_question=1; - } - fclose(fpin); - fclose(fpout); - return (0); - } - } - - fclose(fpin); - fclose(fpout); - - return (0); -} - -/* input and output filenames */ -#ifdef RISCOS -PNG_CONST char *inname = "pngtest/png"; -PNG_CONST char *outname = "pngout/png"; -#else -static PNG_CONST char *inname = "pngtest.png"; -static PNG_CONST char *outname = "pngout.png"; -#endif - -int -main(int argc, char *argv[]) -{ - int multiple = 0; - int ierror = 0; - - fprintf(STDERR, "Testing libpng version %s\n", PNG_LIBPNG_VER_STRING); - fprintf(STDERR, " with zlib version %s\n", ZLIB_VERSION); - fprintf(STDERR,"%s",png_get_copyright(NULL)); - - /* Do some consistency checking on the memory allocation settings, I'm - not sure this matters, but it is nice to know, the first of these - tests should be impossible because of the way the macros are set - in pngconf.h */ -#if defined(MAXSEG_64K) && !defined(PNG_MAX_MALLOC_64K) - fprintf(STDERR, " NOTE: Zlib compiled for max 64k, libpng not\n"); -#endif - /* I think the following can happen. */ -#if !defined(MAXSEG_64K) && defined(PNG_MAX_MALLOC_64K) - fprintf(STDERR, " NOTE: libpng compiled for max 64k, zlib not\n"); -#endif - - if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING)) - { - fprintf(STDERR, - "Warning: versions are different between png.h and png.c\n"); - fprintf(STDERR, " png.h version: %s\n", PNG_LIBPNG_VER_STRING); - fprintf(STDERR, " png.c version: %s\n\n", png_libpng_ver); - ++ierror; - } - - if (argc > 1) - { - if (strcmp(argv[1], "-m") == 0) - { - multiple = 1; - status_dots_requested = 0; - } - else if (strcmp(argv[1], "-mv") == 0 || - strcmp(argv[1], "-vm") == 0 ) - { - multiple = 1; - verbose = 1; - status_dots_requested = 1; - } - else if (strcmp(argv[1], "-v") == 0) - { - verbose = 1; - status_dots_requested = 1; - inname = argv[2]; - } - else - { - inname = argv[1]; - status_dots_requested = 0; - } - } - - if (!multiple && argc == 3+verbose) - outname = argv[2+verbose]; - - if ((!multiple && argc > 3+verbose) || (multiple && argc < 2)) - { - fprintf(STDERR, - "usage: %s [infile.png] [outfile.png]\n\t%s -m {infile.png}\n", - argv[0], argv[0]); - fprintf(STDERR, - " reads/writes one PNG file (without -m) or multiple files (-m)\n"); - fprintf(STDERR, - " with -m %s is used as a temporary file\n", outname); - exit(1); - } - - if (multiple) - { - int i; -#ifdef PNG_USER_MEM_SUPPORTED - int allocation_now = current_allocation; -#endif - for (i=2; isize, pinfo->pointer); - pinfo = pinfo->next; - } - } -#endif - } -#ifdef PNG_USER_MEM_SUPPORTED - fprintf(STDERR, "Maximum memory allocation: %d bytes\n", - maximum_allocation); -#endif - } - else - { - int i; - for (i=0; i<3; ++i) { - int kerror; -#ifdef PNG_USER_MEM_SUPPORTED - int allocation_now = current_allocation; -#endif - if (i == 1) status_dots_requested = 1; - else if(verbose == 0)status_dots_requested = 0; - if (i == 0 || verbose == 1 || ierror != 0) - fprintf(STDERR, "Testing %s:",inname); - kerror = test_one_file(inname, outname); - if(kerror == 0) - { - if(verbose == 1 || i == 2) - { -#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) - fprintf(STDERR, " PASS (%lu zero samples)\n",zero_samples); -#else - fprintf(STDERR, " PASS\n"); -#endif -#if defined(PNG_TIME_RFC1123_SUPPORTED) - if(tIME_chunk_present != 0) - fprintf(STDERR, " tIME = %s\n",tIME_string); -#endif /* PNG_TIME_RFC1123_SUPPORTED */ - } - } - else - { - if(verbose == 0 && i != 2) - fprintf(STDERR, "Testing %s:",inname); - fprintf(STDERR, " FAIL\n"); - ierror += kerror; - } -#ifdef PNG_USER_MEM_SUPPORTED - if (allocation_now != current_allocation) - fprintf(STDERR, "MEMORY ERROR: %d bytes lost\n", - current_allocation-allocation_now); - if (current_allocation != 0) { - memory_infop pinfo = pinformation; - - fprintf(STDERR, "MEMORY ERROR: %d bytes still allocated\n", - current_allocation); - while (pinfo != NULL) { - fprintf(STDERR, " %d bytes at %x\n", pinfo->size, pinfo->pointer); - pinfo = pinfo->next; - } - } -#endif - } -#ifdef PNG_USER_MEM_SUPPORTED - fprintf(STDERR, "Maximum memory allocation: %d bytes\n", - maximum_allocation); -#endif - } - - if (ierror == 0) - fprintf(STDERR, "libpng passes test\n"); - else - fprintf(STDERR, "libpng FAILS test\n"); - return (int)(ierror != 0); -} - diff --git a/src/png/pngtrans.c b/src/png/pngtrans.c deleted file mode 100644 index 397c988f07..0000000000 --- a/src/png/pngtrans.c +++ /dev/null @@ -1,572 +0,0 @@ - -/* pngtrans.c - transforms the data in a row (used by both readers and writers) - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -#define PNG_INTERNAL -#include "png.h" - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* turn on bgr to rgb mapping */ -void -png_set_bgr(png_structp png_ptr) -{ - png_debug(1, "in png_set_bgr\n"); - png_ptr->transformations |= PNG_BGR; -} -#endif - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* turn on 16 bit byte swapping */ -void -png_set_swap(png_structp png_ptr) -{ - png_debug(1, "in png_set_swap\n"); - if (png_ptr->bit_depth == 16) - png_ptr->transformations |= PNG_SWAP_BYTES; -} -#endif - -#if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED) -/* turn on pixel packing */ -void -png_set_packing(png_structp png_ptr) -{ - png_debug(1, "in png_set_packing\n"); - if (png_ptr->bit_depth < 8) - { - png_ptr->transformations |= PNG_PACK; - png_ptr->usr_bit_depth = 8; - } -} -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED) -/* turn on packed pixel swapping */ -void -png_set_packswap(png_structp png_ptr) -{ - png_debug(1, "in png_set_packswap\n"); - if (png_ptr->bit_depth < 8) - png_ptr->transformations |= PNG_PACKSWAP; -} -#endif - -#if defined(PNG_READ_SHIFT_SUPPORTED) || defined(PNG_WRITE_SHIFT_SUPPORTED) -void -png_set_shift(png_structp png_ptr, png_color_8p true_bits) -{ - png_debug(1, "in png_set_shift\n"); - png_ptr->transformations |= PNG_SHIFT; - png_ptr->shift = *true_bits; -} -#endif - -#if defined(PNG_READ_INTERLACING_SUPPORTED) || \ - defined(PNG_WRITE_INTERLACING_SUPPORTED) -int -png_set_interlace_handling(png_structp png_ptr) -{ - png_debug(1, "in png_set_interlace handling\n"); - if (png_ptr->interlaced) - { - png_ptr->transformations |= PNG_INTERLACE; - return (7); - } - - return (1); -} -#endif - -#if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED) -/* Add a filler byte on read, or remove a filler or alpha byte on write. - * The filler type has changed in v0.95 to allow future 2-byte fillers - * for 48-bit input data, as well as to avoid problems with some compilers - * that don't like bytes as parameters. - */ -void -png_set_filler(png_structp png_ptr, png_uint_32 filler, int filler_loc) -{ - png_debug(1, "in png_set_filler\n"); - png_ptr->transformations |= PNG_FILLER; - png_ptr->filler = (png_byte)filler; - if (filler_loc == PNG_FILLER_AFTER) - png_ptr->flags |= PNG_FLAG_FILLER_AFTER; - else - png_ptr->flags &= ~PNG_FLAG_FILLER_AFTER; - - /* This should probably go in the "do_filler" routine. - * I attempted to do that in libpng-1.0.1a but that caused problems - * so I restored it in libpng-1.0.2a - */ - - if (png_ptr->color_type == PNG_COLOR_TYPE_RGB) - { - png_ptr->usr_channels = 4; - } - - /* Also I added this in libpng-1.0.2a (what happens when we expand - * a less-than-8-bit grayscale to GA? */ - - if (png_ptr->color_type == PNG_COLOR_TYPE_GRAY && png_ptr->bit_depth >= 8) - { - png_ptr->usr_channels = 2; - } -} -#endif - -#if defined(PNG_READ_SWAP_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -void -png_set_swap_alpha(png_structp png_ptr) -{ - png_debug(1, "in png_set_swap_alpha\n"); - png_ptr->transformations |= PNG_SWAP_ALPHA; -} -#endif - -#if defined(PNG_READ_INVERT_ALPHA_SUPPORTED) || \ - defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -void -png_set_invert_alpha(png_structp png_ptr) -{ - png_debug(1, "in png_set_invert_alpha\n"); - png_ptr->transformations |= PNG_INVERT_ALPHA; -} -#endif - -#if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED) -void -png_set_invert_mono(png_structp png_ptr) -{ - png_debug(1, "in png_set_invert_mono\n"); - png_ptr->transformations |= PNG_INVERT_MONO; -} - -/* invert monochrome grayscale data */ -void -png_do_invert(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_invert\n"); - if (row_info->bit_depth == 1 && -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - row_info->color_type == PNG_COLOR_TYPE_GRAY) - { - png_bytep rp = row; - png_uint_32 i; - png_uint_32 istop = row_info->rowbytes; - - for (i = 0; i < istop; i++) - { - *rp = (png_byte)(~(*rp)); - rp++; - } - } -} -#endif - -#if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED) -/* swaps byte order on 16 bit depth images */ -void -png_do_swap(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_swap\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - row_info->bit_depth == 16) - { - png_bytep rp = row; - png_uint_32 i; - png_uint_32 istop= row_info->width * row_info->channels; - - for (i = 0; i < istop; i++, rp += 2) - { - png_byte t = *rp; - *rp = *(rp + 1); - *(rp + 1) = t; - } - } -} -#endif - -#if defined(PNG_READ_PACKSWAP_SUPPORTED)||defined(PNG_WRITE_PACKSWAP_SUPPORTED) -static png_byte onebppswaptable[256] = { - 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, - 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, - 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, - 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, - 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, - 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, - 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, - 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, - 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, - 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, - 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, - 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, - 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, - 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, - 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, - 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, - 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, - 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, - 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, - 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, - 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, - 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, - 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, - 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, - 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, - 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, - 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, - 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, - 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, - 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, - 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, - 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF -}; - -static png_byte twobppswaptable[256] = { - 0x00, 0x40, 0x80, 0xC0, 0x10, 0x50, 0x90, 0xD0, - 0x20, 0x60, 0xA0, 0xE0, 0x30, 0x70, 0xB0, 0xF0, - 0x04, 0x44, 0x84, 0xC4, 0x14, 0x54, 0x94, 0xD4, - 0x24, 0x64, 0xA4, 0xE4, 0x34, 0x74, 0xB4, 0xF4, - 0x08, 0x48, 0x88, 0xC8, 0x18, 0x58, 0x98, 0xD8, - 0x28, 0x68, 0xA8, 0xE8, 0x38, 0x78, 0xB8, 0xF8, - 0x0C, 0x4C, 0x8C, 0xCC, 0x1C, 0x5C, 0x9C, 0xDC, - 0x2C, 0x6C, 0xAC, 0xEC, 0x3C, 0x7C, 0xBC, 0xFC, - 0x01, 0x41, 0x81, 0xC1, 0x11, 0x51, 0x91, 0xD1, - 0x21, 0x61, 0xA1, 0xE1, 0x31, 0x71, 0xB1, 0xF1, - 0x05, 0x45, 0x85, 0xC5, 0x15, 0x55, 0x95, 0xD5, - 0x25, 0x65, 0xA5, 0xE5, 0x35, 0x75, 0xB5, 0xF5, - 0x09, 0x49, 0x89, 0xC9, 0x19, 0x59, 0x99, 0xD9, - 0x29, 0x69, 0xA9, 0xE9, 0x39, 0x79, 0xB9, 0xF9, - 0x0D, 0x4D, 0x8D, 0xCD, 0x1D, 0x5D, 0x9D, 0xDD, - 0x2D, 0x6D, 0xAD, 0xED, 0x3D, 0x7D, 0xBD, 0xFD, - 0x02, 0x42, 0x82, 0xC2, 0x12, 0x52, 0x92, 0xD2, - 0x22, 0x62, 0xA2, 0xE2, 0x32, 0x72, 0xB2, 0xF2, - 0x06, 0x46, 0x86, 0xC6, 0x16, 0x56, 0x96, 0xD6, - 0x26, 0x66, 0xA6, 0xE6, 0x36, 0x76, 0xB6, 0xF6, - 0x0A, 0x4A, 0x8A, 0xCA, 0x1A, 0x5A, 0x9A, 0xDA, - 0x2A, 0x6A, 0xAA, 0xEA, 0x3A, 0x7A, 0xBA, 0xFA, - 0x0E, 0x4E, 0x8E, 0xCE, 0x1E, 0x5E, 0x9E, 0xDE, - 0x2E, 0x6E, 0xAE, 0xEE, 0x3E, 0x7E, 0xBE, 0xFE, - 0x03, 0x43, 0x83, 0xC3, 0x13, 0x53, 0x93, 0xD3, - 0x23, 0x63, 0xA3, 0xE3, 0x33, 0x73, 0xB3, 0xF3, - 0x07, 0x47, 0x87, 0xC7, 0x17, 0x57, 0x97, 0xD7, - 0x27, 0x67, 0xA7, 0xE7, 0x37, 0x77, 0xB7, 0xF7, - 0x0B, 0x4B, 0x8B, 0xCB, 0x1B, 0x5B, 0x9B, 0xDB, - 0x2B, 0x6B, 0xAB, 0xEB, 0x3B, 0x7B, 0xBB, 0xFB, - 0x0F, 0x4F, 0x8F, 0xCF, 0x1F, 0x5F, 0x9F, 0xDF, - 0x2F, 0x6F, 0xAF, 0xEF, 0x3F, 0x7F, 0xBF, 0xFF -}; - -static png_byte fourbppswaptable[256] = { - 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, - 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, - 0x01, 0x11, 0x21, 0x31, 0x41, 0x51, 0x61, 0x71, - 0x81, 0x91, 0xA1, 0xB1, 0xC1, 0xD1, 0xE1, 0xF1, - 0x02, 0x12, 0x22, 0x32, 0x42, 0x52, 0x62, 0x72, - 0x82, 0x92, 0xA2, 0xB2, 0xC2, 0xD2, 0xE2, 0xF2, - 0x03, 0x13, 0x23, 0x33, 0x43, 0x53, 0x63, 0x73, - 0x83, 0x93, 0xA3, 0xB3, 0xC3, 0xD3, 0xE3, 0xF3, - 0x04, 0x14, 0x24, 0x34, 0x44, 0x54, 0x64, 0x74, - 0x84, 0x94, 0xA4, 0xB4, 0xC4, 0xD4, 0xE4, 0xF4, - 0x05, 0x15, 0x25, 0x35, 0x45, 0x55, 0x65, 0x75, - 0x85, 0x95, 0xA5, 0xB5, 0xC5, 0xD5, 0xE5, 0xF5, - 0x06, 0x16, 0x26, 0x36, 0x46, 0x56, 0x66, 0x76, - 0x86, 0x96, 0xA6, 0xB6, 0xC6, 0xD6, 0xE6, 0xF6, - 0x07, 0x17, 0x27, 0x37, 0x47, 0x57, 0x67, 0x77, - 0x87, 0x97, 0xA7, 0xB7, 0xC7, 0xD7, 0xE7, 0xF7, - 0x08, 0x18, 0x28, 0x38, 0x48, 0x58, 0x68, 0x78, - 0x88, 0x98, 0xA8, 0xB8, 0xC8, 0xD8, 0xE8, 0xF8, - 0x09, 0x19, 0x29, 0x39, 0x49, 0x59, 0x69, 0x79, - 0x89, 0x99, 0xA9, 0xB9, 0xC9, 0xD9, 0xE9, 0xF9, - 0x0A, 0x1A, 0x2A, 0x3A, 0x4A, 0x5A, 0x6A, 0x7A, - 0x8A, 0x9A, 0xAA, 0xBA, 0xCA, 0xDA, 0xEA, 0xFA, - 0x0B, 0x1B, 0x2B, 0x3B, 0x4B, 0x5B, 0x6B, 0x7B, - 0x8B, 0x9B, 0xAB, 0xBB, 0xCB, 0xDB, 0xEB, 0xFB, - 0x0C, 0x1C, 0x2C, 0x3C, 0x4C, 0x5C, 0x6C, 0x7C, - 0x8C, 0x9C, 0xAC, 0xBC, 0xCC, 0xDC, 0xEC, 0xFC, - 0x0D, 0x1D, 0x2D, 0x3D, 0x4D, 0x5D, 0x6D, 0x7D, - 0x8D, 0x9D, 0xAD, 0xBD, 0xCD, 0xDD, 0xED, 0xFD, - 0x0E, 0x1E, 0x2E, 0x3E, 0x4E, 0x5E, 0x6E, 0x7E, - 0x8E, 0x9E, 0xAE, 0xBE, 0xCE, 0xDE, 0xEE, 0xFE, - 0x0F, 0x1F, 0x2F, 0x3F, 0x4F, 0x5F, 0x6F, 0x7F, - 0x8F, 0x9F, 0xAF, 0xBF, 0xCF, 0xDF, 0xEF, 0xFF -}; - -/* swaps pixel packing order within bytes */ -void -png_do_packswap(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_packswap\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - row_info->bit_depth < 8) - { - png_bytep rp, end, table; - - end = row + row_info->rowbytes; - - if (row_info->bit_depth == 1) - table = onebppswaptable; - else if (row_info->bit_depth == 2) - table = twobppswaptable; - else if (row_info->bit_depth == 4) - table = fourbppswaptable; - else - return; - - for (rp = row; rp < end; rp++) - *rp = table[*rp]; - } -} -#endif /* PNG_READ_PACKSWAP_SUPPORTED or PNG_WRITE_PACKSWAP_SUPPORTED */ - -#if defined(PNG_WRITE_FILLER_SUPPORTED) || \ - defined(PNG_READ_STRIP_ALPHA_SUPPORTED) -/* remove filler or alpha byte(s) */ -void -png_do_strip_filler(png_row_infop row_info, png_bytep row, png_uint_32 flags) -{ - png_debug(1, "in png_do_strip_filler\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { -/* - if (row_info->color_type == PNG_COLOR_TYPE_RGB || - row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) -*/ - png_bytep sp=row; - png_bytep dp=row; - png_uint_32 row_width=row_info->width; - png_uint_32 i; - - if (row_info->channels == 4) - { - if (row_info->bit_depth == 8) - { - /* This converts from RGBX or RGBA to RGB */ - if (flags & PNG_FLAG_FILLER_AFTER) - { - dp+=3; sp+=4; - for (i = 1; i < row_width; i++) - { - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - sp++; - } - } - /* This converts from XRGB or ARGB to RGB */ - else - { - for (i = 0; i < row_width; i++) - { - sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - } - } - row_info->pixel_depth = 24; - row_info->rowbytes = row_width * 3; - } - else /* if (row_info->bit_depth == 16) */ - { - if (flags & PNG_FLAG_FILLER_AFTER) - { - /* This converts from RRGGBBXX or RRGGBBAA to RRGGBB */ - sp += 8; dp += 6; - for (i = 1; i < row_width; i++) - { - /* This could be (although memcpy is probably slower): - png_memcpy(dp, sp, 6); - sp += 8; - dp += 6; - */ - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - sp += 2; - } - } - else - { - /* This converts from XXRRGGBB or AARRGGBB to RRGGBB */ - for (i = 0; i < row_width; i++) - { - /* This could be (although memcpy is probably slower): - png_memcpy(dp, sp, 6); - sp += 8; - dp += 6; - */ - sp+=2; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - *dp++ = *sp++; - } - } - row_info->pixel_depth = 48; - row_info->rowbytes = row_width * 6; - } - row_info->channels = 3; - row_info->color_type &= ~PNG_COLOR_MASK_ALPHA; - } -/* - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY || - row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) -*/ - else if (row_info->channels == 2) - { - if (row_info->bit_depth == 8) - { - /* This converts from GX or GA to G */ - if (flags & PNG_FLAG_FILLER_AFTER) - { - for (i = 0; i < row_width; i++) - { - *dp++ = *sp++; - sp++; - } - } - /* This converts from XG or AG to G */ - else - { - for (i = 0; i < row_width; i++) - { - sp++; - *dp++ = *sp++; - } - } - row_info->pixel_depth = 8; - row_info->rowbytes = row_width; - } - else /* if (row_info->bit_depth == 16) */ - { - if (flags & PNG_FLAG_FILLER_AFTER) - { - /* This converts from GGXX or GGAA to GG */ - sp += 4; dp += 2; - for (i = 1; i < row_width; i++) - { - *dp++ = *sp++; - *dp++ = *sp++; - sp += 2; - } - } - else - { - /* This converts from XXGG or AAGG to GG */ - for (i = 0; i < row_width; i++) - { - sp += 2; - *dp++ = *sp++; - *dp++ = *sp++; - } - } - row_info->pixel_depth = 16; - row_info->rowbytes = row_width * 2; - } - row_info->channels = 1; - row_info->color_type &= ~PNG_COLOR_MASK_ALPHA; - } - } -} -#endif - -#if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED) -/* swaps red and blue bytes within a pixel */ -void -png_do_bgr(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_bgr\n"); - if ( -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - (row_info->color_type & PNG_COLOR_MASK_COLOR)) - { - png_uint_32 row_width = row_info->width; - if (row_info->bit_depth == 8) - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 3) - { - png_byte save = *rp; - *rp = *(rp + 2); - *(rp + 2) = save; - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 4) - { - png_byte save = *rp; - *rp = *(rp + 2); - *(rp + 2) = save; - } - } - } - else if (row_info->bit_depth == 16) - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 6) - { - png_byte save = *rp; - *rp = *(rp + 4); - *(rp + 4) = save; - save = *(rp + 1); - *(rp + 1) = *(rp + 5); - *(rp + 5) = save; - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - png_bytep rp; - png_uint_32 i; - - for (i = 0, rp = row; i < row_width; i++, rp += 8) - { - png_byte save = *rp; - *rp = *(rp + 4); - *(rp + 4) = save; - save = *(rp + 1); - *(rp + 1) = *(rp + 5); - *(rp + 5) = save; - } - } - } - } -} -#endif /* PNG_READ_BGR_SUPPORTED or PNG_WRITE_BGR_SUPPORTED */ - diff --git a/src/png/pngwio.c b/src/png/pngwio.c deleted file mode 100644 index 84b5b2869d..0000000000 --- a/src/png/pngwio.c +++ /dev/null @@ -1,213 +0,0 @@ - -/* pngwio.c - functions for data output - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - * - * This file provides a location for all output. Users who need - * special handling are expected to write functions that have the same - * arguments as these and perform similar functions, but that possibly - * use different output methods. Note that you shouldn't change these - * functions, but rather write replacement functions and then change - * them at run time with png_set_write_fn(...). - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Write the data to whatever output you are using. The default routine - writes to a file pointer. Note that this routine sometimes gets called - with very small lengths, so you should implement some kind of simple - buffering if you are using unbuffered writes. This should never be asked - to write more than 64K on a 16 bit machine. */ - -void -png_write_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - if (png_ptr->write_data_fn != NULL ) - (*(png_ptr->write_data_fn))(png_ptr, data, length); - else - png_error(png_ptr, "Call to NULL write function"); -} - -#if !defined(PNG_NO_STDIO) -/* This is the function that does the actual writing of data. If you are - not writing to a standard C stream, you should create a replacement - write_data function and use it at run time with png_set_write_fn(), rather - than changing the library. */ -#ifndef USE_FAR_KEYWORD -static void -png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_uint_32 check; - - check = fwrite(data, 1, length, (FILE *)(png_ptr->io_ptr)); - if (check != length) - { - png_error(png_ptr, "Write Error"); - } -} -#else -/* this is the model-independent version. Since the standard I/O library - can't handle far buffers in the medium and small models, we have to copy - the data. -*/ - -#define NEAR_BUF_SIZE 1024 -#define MIN(a,b) (a <= b ? a : b) - -static void -png_default_write_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_uint_32 check; - png_byte *near_data; /* Needs to be "png_byte *" instead of "png_bytep" */ - FILE *io_ptr; - - /* Check if data really is near. If so, use usual code. */ - near_data = (png_byte *)CVT_PTR_NOCHECK(data); - io_ptr = (FILE *)CVT_PTR(png_ptr->io_ptr); - if ((png_bytep)near_data == data) - { - check = fwrite(near_data, 1, length, io_ptr); - } - else - { - png_byte buf[NEAR_BUF_SIZE]; - png_size_t written, remaining, err; - check = 0; - remaining = length; - do - { - written = MIN(NEAR_BUF_SIZE, remaining); - png_memcpy(buf, data, written); /* copy far buffer to near buffer */ - err = fwrite(buf, 1, written, io_ptr); - if (err != written) - break; - else - check += err; - data += written; - remaining -= written; - } - while (remaining != 0); - } - if (check != length) - { - png_error(png_ptr, "Write Error"); - } -} - -#endif -#endif - -/* This function is called to output any data pending writing (normally - to disk). After png_flush is called, there should be no data pending - writing in any buffers. */ -#if defined(PNG_WRITE_FLUSH_SUPPORTED) -void -png_flush(png_structp png_ptr) -{ - if (png_ptr->output_flush_fn != NULL) - (*(png_ptr->output_flush_fn))(png_ptr); -} - -#if !defined(PNG_NO_STDIO) -static void -png_default_flush(png_structp png_ptr) -{ - FILE *io_ptr; - io_ptr = (FILE *)CVT_PTR((png_ptr->io_ptr)); - if (io_ptr != NULL) - fflush(io_ptr); -} -#endif -#endif - -/* This function allows the application to supply new output functions for - libpng if standard C streams aren't being used. - - This function takes as its arguments: - png_ptr - pointer to a png output data structure - io_ptr - pointer to user supplied structure containing info about - the output functions. May be NULL. - write_data_fn - pointer to a new output function that takes as its - arguments a pointer to a png_struct, a pointer to - data to be written, and a 32-bit unsigned int that is - the number of bytes to be written. The new write - function should call png_error(png_ptr, "Error msg") - to exit and output any fatal error messages. - flush_data_fn - pointer to a new flush function that takes as its - arguments a pointer to a png_struct. After a call to - the flush function, there should be no data in any buffers - or pending transmission. If the output method doesn't do - any buffering of ouput, a function prototype must still be - supplied although it doesn't have to do anything. If - PNG_WRITE_FLUSH_SUPPORTED is not defined at libpng compile - time, output_flush_fn will be ignored, although it must be - supplied for compatibility. */ -void -png_set_write_fn(png_structp png_ptr, png_voidp io_ptr, - png_rw_ptr write_data_fn, png_flush_ptr output_flush_fn) -{ - png_ptr->io_ptr = io_ptr; - -#if !defined(PNG_NO_STDIO) - if (write_data_fn != NULL) - png_ptr->write_data_fn = write_data_fn; - else - png_ptr->write_data_fn = png_default_write_data; -#else - png_ptr->write_data_fn = write_data_fn; -#endif - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) -#if !defined(PNG_NO_STDIO) - if (output_flush_fn != NULL) - png_ptr->output_flush_fn = output_flush_fn; - else - png_ptr->output_flush_fn = png_default_flush; -#else - png_ptr->output_flush_fn = output_flush_fn; -#endif -#endif /* PNG_WRITE_FLUSH_SUPPORTED */ - - /* It is an error to read while writing a png file */ - if (png_ptr->read_data_fn != NULL) - { - png_ptr->read_data_fn = NULL; - png_warning(png_ptr, - "Attempted to set both read_data_fn and write_data_fn in"); - png_warning(png_ptr, - "the same structure. Resetting read_data_fn to NULL."); - } -} - -#if defined(USE_FAR_KEYWORD) -#if defined(_MSC_VER) -void *png_far_to_near(png_structp png_ptr,png_voidp ptr, int check) -{ - void *near_ptr; - void FAR *far_ptr; - FP_OFF(near_ptr) = FP_OFF(ptr); - far_ptr = (void FAR *)near_ptr; - if(check != 0) - if(FP_SEG(ptr) != FP_SEG(far_ptr)) - png_error(png_ptr,"segment lost in conversion"); - return(near_ptr); -} -# else -void *png_far_to_near(png_structp png_ptr,png_voidp ptr, int check) -{ - void *near_ptr; - void FAR *far_ptr; - near_ptr = (void FAR *)ptr; - far_ptr = (void FAR *)near_ptr; - if(check != 0) - if(far_ptr != ptr) - png_error(png_ptr,"segment lost in conversion"); - return(near_ptr); -} -# endif -# endif diff --git a/src/png/pngwrite.c b/src/png/pngwrite.c deleted file mode 100644 index 3b533e58c2..0000000000 --- a/src/png/pngwrite.c +++ /dev/null @@ -1,1004 +0,0 @@ - -/* pngwrite.c - general routines to write a PNG file - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -/* get internal access to png.h */ -#define PNG_INTERNAL -#include "png.h" - -/* Writes all the PNG information. This is the suggested way to use the - * library. If you have a new chunk to add, make a function to write it, - * and put it in the correct location here. If you want the chunk written - * after the image data, put it in png_write_end(). I strongly encourage - * you to supply a PNG_INFO_ flag, and check info_ptr->valid before writing - * the chunk, as that will keep the code from breaking if you want to just - * write a plain PNG file. If you have long comments, I suggest writing - * them in png_write_end(), and compressing them. - */ -void -png_write_info(png_structp png_ptr, png_infop info_ptr) -{ -#if defined(PNG_WRITE_tEXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) - int i; -#endif - - png_debug(1, "in png_write_info\n"); - png_write_sig(png_ptr); /* write PNG signature */ - /* write IHDR information. */ - png_write_IHDR(png_ptr, info_ptr->width, info_ptr->height, - info_ptr->bit_depth, info_ptr->color_type, info_ptr->compression_type, - info_ptr->filter_type, -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) - info_ptr->interlace_type); -#else - 0); -#endif - /* the rest of these check to see if the valid field has the appropriate - flag set, and if it does, writes the chunk. */ -#if defined(PNG_WRITE_gAMA_SUPPORTED) - if (info_ptr->valid & PNG_INFO_gAMA) - png_write_gAMA(png_ptr, info_ptr->gamma); -#endif -#if defined(PNG_WRITE_sRGB_SUPPORTED) - if (info_ptr->valid & PNG_INFO_sRGB) - png_write_sRGB(png_ptr, (int)info_ptr->srgb_intent); -#endif -#if defined(PNG_WRITE_sBIT_SUPPORTED) - if (info_ptr->valid & PNG_INFO_sBIT) - png_write_sBIT(png_ptr, &(info_ptr->sig_bit), info_ptr->color_type); -#endif -#if defined(PNG_WRITE_cHRM_SUPPORTED) - if (info_ptr->valid & PNG_INFO_cHRM) - png_write_cHRM(png_ptr, - info_ptr->x_white, info_ptr->y_white, - info_ptr->x_red, info_ptr->y_red, - info_ptr->x_green, info_ptr->y_green, - info_ptr->x_blue, info_ptr->y_blue); -#endif - if (info_ptr->valid & PNG_INFO_PLTE) - png_write_PLTE(png_ptr, info_ptr->palette, - (png_uint_32)info_ptr->num_palette); - else if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - png_error(png_ptr, "Valid palette required for paletted images\n"); - -#if defined(PNG_WRITE_tRNS_SUPPORTED) - if (info_ptr->valid & PNG_INFO_tRNS) - { -#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) - /* invert the alpha channel (in tRNS) */ - if (png_ptr->transformations & PNG_INVERT_ALPHA && - info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - int j; - for (j=0; j<(int)info_ptr->num_trans; j++) - info_ptr->trans[j] = 255 - info_ptr->trans[j]; - } -#endif - png_write_tRNS(png_ptr, info_ptr->trans, &(info_ptr->trans_values), - info_ptr->num_trans, info_ptr->color_type); - } -#endif -#if defined(PNG_WRITE_bKGD_SUPPORTED) - if (info_ptr->valid & PNG_INFO_bKGD) - png_write_bKGD(png_ptr, &(info_ptr->background), info_ptr->color_type); -#endif -#if defined(PNG_WRITE_hIST_SUPPORTED) - if (info_ptr->valid & PNG_INFO_hIST) - png_write_hIST(png_ptr, info_ptr->hist, info_ptr->num_palette); -#endif -#if defined(PNG_WRITE_oFFs_SUPPORTED) - if (info_ptr->valid & PNG_INFO_oFFs) - png_write_oFFs(png_ptr, info_ptr->x_offset, info_ptr->y_offset, - info_ptr->offset_unit_type); -#endif -#if defined(PNG_WRITE_pCAL_SUPPORTED) - if (info_ptr->valid & PNG_INFO_pCAL) - png_write_pCAL(png_ptr, info_ptr->pcal_purpose, info_ptr->pcal_X0, - info_ptr->pcal_X1, info_ptr->pcal_type, info_ptr->pcal_nparams, - info_ptr->pcal_units, info_ptr->pcal_params); -#endif -#if defined(PNG_WRITE_pHYs_SUPPORTED) - if (info_ptr->valid & PNG_INFO_pHYs) - png_write_pHYs(png_ptr, info_ptr->x_pixels_per_unit, - info_ptr->y_pixels_per_unit, info_ptr->phys_unit_type); -#endif -#if defined(PNG_WRITE_tIME_SUPPORTED) - if (info_ptr->valid & PNG_INFO_tIME) - { - png_write_tIME(png_ptr, &(info_ptr->mod_time)); - png_ptr->flags |= PNG_FLAG_WROTE_tIME; - } -#endif -#if defined(PNG_WRITE_tEXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) - /* Check to see if we need to write text chunks */ - for (i = 0; i < info_ptr->num_text; i++) - { - png_debug2(2, "Writing header text chunk %d, type %d\n", i, - info_ptr->text[i].compression); - /* If we want a compressed text chunk */ - if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt) - { -#if defined(PNG_WRITE_zTXt_SUPPORTED) - /* write compressed chunk */ - png_write_zTXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, info_ptr->text[i].text_length, - info_ptr->text[i].compression); -#else - png_warning(png_ptr, "Unable to write compressed text\n"); -#endif - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR; - } - else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE) - { -#if defined(PNG_WRITE_tEXt_SUPPORTED) - /* write uncompressed chunk */ - png_write_tEXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, info_ptr->text[i].text_length); -#else - png_warning(png_ptr, "Unable to write uncompressed text\n"); -#endif - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR; - } - } -#endif -} - -/* Writes the end of the PNG file. If you don't want to write comments or - * time information, you can pass NULL for info. If you already wrote these - * in png_write_info(), do not write them again here. If you have long - * comments, I suggest writing them here, and compressing them. - */ -void -png_write_end(png_structp png_ptr, png_infop info_ptr) -{ - png_debug(1, "in png_write_end\n"); - if (!(png_ptr->mode & PNG_HAVE_IDAT)) - png_error(png_ptr, "No IDATs written into file"); - - /* see if user wants us to write information chunks */ - if (info_ptr != NULL) - { -#if defined(PNG_WRITE_tEXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) - int i; /* local index variable */ -#endif -#if defined(PNG_WRITE_tIME_SUPPORTED) - /* check to see if user has supplied a time chunk */ - if (info_ptr->valid & PNG_INFO_tIME && - !(png_ptr->flags & PNG_FLAG_WROTE_tIME)) - png_write_tIME(png_ptr, &(info_ptr->mod_time)); -#endif -#if defined(PNG_WRITE_tEXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) - /* loop through comment chunks */ - for (i = 0; i < info_ptr->num_text; i++) - { - png_debug2(2, "Writing trailer text chunk %d, type %d\n", i, - info_ptr->text[i].compression); - if (info_ptr->text[i].compression >= PNG_TEXT_COMPRESSION_zTXt) - { -#if defined(PNG_WRITE_zTXt_SUPPORTED) - /* write compressed chunk */ - png_write_zTXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, info_ptr->text[i].text_length, - info_ptr->text[i].compression); -#else - png_warning(png_ptr, "Unable to write compressed text\n"); -#endif - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_zTXt_WR; - } - else if (info_ptr->text[i].compression == PNG_TEXT_COMPRESSION_NONE) - { -#if defined(PNG_WRITE_tEXt_SUPPORTED) - /* write uncompressed chunk */ - png_write_tEXt(png_ptr, info_ptr->text[i].key, - info_ptr->text[i].text, info_ptr->text[i].text_length); -#else - png_warning(png_ptr, "Unable to write uncompressed text\n"); -#endif - - /* Mark this chunk as written */ - info_ptr->text[i].compression = PNG_TEXT_COMPRESSION_NONE_WR; - } - } -#endif - } - - png_ptr->mode |= PNG_AFTER_IDAT; - - /* write end of PNG file */ - png_write_IEND(png_ptr); -} - -#if defined(PNG_WRITE_tIME_SUPPORTED) -void -png_convert_from_struct_tm(png_timep ptime, struct tm FAR * ttime) -{ - png_debug(1, "in png_convert_from_struct_tm\n"); - ptime->year = (png_uint_16)(1900 + ttime->tm_year); - ptime->month = (png_byte)(ttime->tm_mon + 1); - ptime->day = (png_byte)ttime->tm_mday; - ptime->hour = (png_byte)ttime->tm_hour; - ptime->minute = (png_byte)ttime->tm_min; - ptime->second = (png_byte)ttime->tm_sec; -} - -void -png_convert_from_time_t(png_timep ptime, time_t ttime) -{ - struct tm *tbuf; - - png_debug(1, "in png_convert_from_time_t\n"); - tbuf = gmtime(&ttime); - png_convert_from_struct_tm(ptime, tbuf); -} -#endif - -/* Initialize png_ptr structure, and allocate any memory needed */ -png_structp -png_create_write_struct(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn) -{ -#ifdef PNG_USER_MEM_SUPPORTED - return (png_create_write_struct_2(user_png_ver, error_ptr, error_fn, - warn_fn, NULL, NULL, NULL)); -} - -/* Alternate initialize png_ptr structure, and allocate any memory needed */ -png_structp -png_create_write_struct_2(png_const_charp user_png_ver, png_voidp error_ptr, - png_error_ptr error_fn, png_error_ptr warn_fn, png_voidp mem_ptr, - png_malloc_ptr malloc_fn, png_free_ptr free_fn) -{ -#endif /* PNG_USER_MEM_SUPPORTED */ - png_structp png_ptr; -#ifdef USE_FAR_KEYWORD - jmp_buf jmpbuf; -#endif - png_debug(1, "in png_create_write_struct\n"); -#ifdef PNG_USER_MEM_SUPPORTED - if ((png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG, - (png_malloc_ptr)malloc_fn)) == NULL) -#else - if ((png_ptr = (png_structp)png_create_struct(PNG_STRUCT_PNG)) == NULL) -#endif /* PNG_USER_MEM_SUPPORTED */ - { - return ((png_structp)NULL); - } -#ifdef USE_FAR_KEYWORD - if (setjmp(jmpbuf)) -#else - if (setjmp(png_ptr->jmpbuf)) -#endif - { - png_free(png_ptr, png_ptr->zbuf); - png_destroy_struct(png_ptr); - return ((png_structp)NULL); - } -#ifdef USE_FAR_KEYWORD - png_memcpy(png_ptr->jmpbuf,jmpbuf,sizeof(jmp_buf)); -#endif -#ifdef PNG_USER_MEM_SUPPORTED - png_set_mem_fn(png_ptr, mem_ptr, malloc_fn, free_fn); -#endif /* PNG_USER_MEM_SUPPORTED */ - png_set_error_fn(png_ptr, error_ptr, error_fn, warn_fn); - - /* Libpng 0.90 and later are binary incompatible with libpng 0.89, so - * we must recompile any applications that use any older library version. - * For versions after libpng 1.0, we will be compatible, so we need - * only check the first digit. - */ - if (user_png_ver == NULL || user_png_ver[0] != png_libpng_ver[0] || - (png_libpng_ver[0] == '0' && user_png_ver[2] < '9')) - { - png_error(png_ptr, - "Incompatible libpng version in application and library"); - } - - /* initialize zbuf - compression buffer */ - png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - - png_set_write_fn(png_ptr, NULL, NULL, NULL); - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT, - 1, NULL, NULL); -#endif - - return ((png_structp)png_ptr); -} - -/* Initialize png_ptr structure, and allocate any memory needed */ -void -png_write_init(png_structp png_ptr) -{ - jmp_buf tmp_jmp; /* to save current jump buffer */ - - png_debug(1, "in png_write_init\n"); - /* save jump buffer and error functions */ - png_memcpy(tmp_jmp, png_ptr->jmpbuf, sizeof (jmp_buf)); - - /* reset all variables to 0 */ - png_memset(png_ptr, 0, sizeof (png_struct)); - - /* restore jump buffer */ - png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf)); - - /* initialize zbuf - compression buffer */ - png_ptr->zbuf_size = PNG_ZBUF_SIZE; - png_ptr->zbuf = (png_bytep)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - png_set_write_fn(png_ptr, NULL, NULL, NULL); - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - png_set_filter_heuristics(png_ptr, PNG_FILTER_HEURISTIC_DEFAULT, - 1, NULL, NULL); -#endif -} - -/* Write a few rows of image data. If the image is interlaced, - * either you will have to write the 7 sub images, or, if you - * have called png_set_interlace_handling(), you will have to - * "write" the image seven times. - */ -void -png_write_rows(png_structp png_ptr, png_bytepp row, - png_uint_32 num_rows) -{ - png_uint_32 i; /* row counter */ - png_bytepp rp; /* row pointer */ - - png_debug(1, "in png_write_rows\n"); - /* loop through the rows */ - for (i = 0, rp = row; i < num_rows; i++, rp++) - { - png_write_row(png_ptr, *rp); - } -} - -/* Write the image. You only need to call this function once, even - * if you are writing an interlaced image. - */ -void -png_write_image(png_structp png_ptr, png_bytepp image) -{ - png_uint_32 i; /* row index */ - int pass, num_pass; /* pass variables */ - png_bytepp rp; /* points to current row */ - - png_debug(1, "in png_write_image\n"); -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) - /* intialize interlace handling. If image is not interlaced, - this will set pass to 1 */ - num_pass = png_set_interlace_handling(png_ptr); -#else - num_pass = 1; -#endif - /* loop through passes */ - for (pass = 0; pass < num_pass; pass++) - { - /* loop through image */ - for (i = 0, rp = image; i < png_ptr->height; i++, rp++) - { - png_write_row(png_ptr, *rp); - } - } -} - -/* called by user to write a row of image data */ -void -png_write_row(png_structp png_ptr, png_bytep row) -{ - png_debug2(1, "in png_write_row (row %ld, pass %d)\n", - png_ptr->row_number, png_ptr->pass); - /* initialize transformations and other stuff if first time */ - if (png_ptr->row_number == 0 && png_ptr->pass == 0) - { - /* check for transforms that have been set but were defined out */ -#if !defined(PNG_WRITE_INVERT_SUPPORTED) && defined(PNG_READ_INVERT_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_MONO) - png_warning(png_ptr, "PNG_WRITE_INVERT_SUPPORTED is not defined."); -#endif -#if !defined(PNG_WRITE_FILLER_SUPPORTED) && defined(PNG_READ_FILLER_SUPPORTED) - if (png_ptr->transformations & PNG_FILLER) - png_warning(png_ptr, "PNG_WRITE_FILLER_SUPPORTED is not defined."); -#endif -#if !defined(PNG_WRITE_PACKSWAP_SUPPORTED) && defined(PNG_READ_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - png_warning(png_ptr, "PNG_WRITE_PACKSWAP_SUPPORTED is not defined."); -#endif -#if !defined(PNG_WRITE_PACK_SUPPORTED) && defined(PNG_READ_PACK_SUPPORTED) - if (png_ptr->transformations & PNG_PACK) - png_warning(png_ptr, "PNG_WRITE_PACK_SUPPORTED is not defined."); -#endif -#if !defined(PNG_WRITE_SHIFT_SUPPORTED) && defined(PNG_READ_SHIFT_SUPPORTED) - if (png_ptr->transformations & PNG_SHIFT) - png_warning(png_ptr, "PNG_WRITE_SHIFT_SUPPORTED is not defined."); -#endif -#if !defined(PNG_WRITE_BGR_SUPPORTED) && defined(PNG_READ_BGR_SUPPORTED) - if (png_ptr->transformations & PNG_BGR) - png_warning(png_ptr, "PNG_WRITE_BGR_SUPPORTED is not defined."); -#endif -#if !defined(PNG_WRITE_SWAP_SUPPORTED) && defined(PNG_READ_SWAP_SUPPORTED) - if (png_ptr->transformations & PNG_SWAP_BYTES) - png_warning(png_ptr, "PNG_WRITE_SWAP_SUPPORTED is not defined."); -#endif - - png_write_start_row(png_ptr); - } - -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) - /* if interlaced and not interested in row, return */ - if (png_ptr->interlaced && (png_ptr->transformations & PNG_INTERLACE)) - { - switch (png_ptr->pass) - { - case 0: - if (png_ptr->row_number & 7) - { - png_write_finish_row(png_ptr); - return; - } - break; - case 1: - if ((png_ptr->row_number & 7) || png_ptr->width < 5) - { - png_write_finish_row(png_ptr); - return; - } - break; - case 2: - if ((png_ptr->row_number & 7) != 4) - { - png_write_finish_row(png_ptr); - return; - } - break; - case 3: - if ((png_ptr->row_number & 3) || png_ptr->width < 3) - { - png_write_finish_row(png_ptr); - return; - } - break; - case 4: - if ((png_ptr->row_number & 3) != 2) - { - png_write_finish_row(png_ptr); - return; - } - break; - case 5: - if ((png_ptr->row_number & 1) || png_ptr->width < 2) - { - png_write_finish_row(png_ptr); - return; - } - break; - case 6: - if (!(png_ptr->row_number & 1)) - { - png_write_finish_row(png_ptr); - return; - } - break; - } - } -#endif - - /* set up row info for transformations */ - png_ptr->row_info.color_type = png_ptr->color_type; - png_ptr->row_info.width = png_ptr->usr_width; - png_ptr->row_info.channels = png_ptr->usr_channels; - png_ptr->row_info.bit_depth = png_ptr->usr_bit_depth; - png_ptr->row_info.pixel_depth = (png_byte)(png_ptr->row_info.bit_depth * - png_ptr->row_info.channels); - - png_ptr->row_info.rowbytes = ((png_ptr->row_info.width * - (png_uint_32)png_ptr->row_info.pixel_depth + 7) >> 3); - - png_debug1(3, "row_info->color_type = %d\n", png_ptr->row_info.color_type); - png_debug1(3, "row_info->width = %d\n", png_ptr->row_info.width); - png_debug1(3, "row_info->channels = %d\n", png_ptr->row_info.channels); - png_debug1(3, "row_info->bit_depth = %d\n", png_ptr->row_info.bit_depth); - png_debug1(3, "row_info->pixel_depth = %d\n", png_ptr->row_info.pixel_depth); - png_debug1(3, "row_info->rowbytes = %d\n", png_ptr->row_info.rowbytes); - - /* Copy user's row into buffer, leaving room for filter byte. */ - png_memcpy_check(png_ptr, png_ptr->row_buf + 1, row, - png_ptr->row_info.rowbytes); - -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) - /* handle interlacing */ - if (png_ptr->interlaced && png_ptr->pass < 6 && - (png_ptr->transformations & PNG_INTERLACE)) - { - png_do_write_interlace(&(png_ptr->row_info), - png_ptr->row_buf + 1, png_ptr->pass); - /* this should always get caught above, but still ... */ - if (!(png_ptr->row_info.width)) - { - png_write_finish_row(png_ptr); - return; - } - } -#endif - - /* handle other transformations */ - if (png_ptr->transformations) - png_do_write_transformations(png_ptr); - - /* Find a filter if necessary, filter the row and write it out. */ - png_write_find_filter(png_ptr, &(png_ptr->row_info)); - - if (png_ptr->write_row_fn != NULL) - (*(png_ptr->write_row_fn))(png_ptr, png_ptr->row_number, png_ptr->pass); -} - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) -/* Set the automatic flush interval or 0 to turn flushing off */ -void -png_set_flush(png_structp png_ptr, int nrows) -{ - png_debug(1, "in png_set_flush\n"); - png_ptr->flush_dist = (nrows < 0 ? 0 : nrows); -} - -/* flush the current output buffers now */ -void -png_write_flush(png_structp png_ptr) -{ - int wrote_IDAT; - - png_debug(1, "in png_write_flush\n"); - /* We have already written out all of the data */ - if (png_ptr->row_number >= png_ptr->num_rows) - return; - - do - { - int ret; - - /* compress the data */ - ret = deflate(&png_ptr->zstream, Z_SYNC_FLUSH); - wrote_IDAT = 0; - - /* check for compression errors */ - if (ret != Z_OK) - { - if (png_ptr->zstream.msg != NULL) - png_error(png_ptr, png_ptr->zstream.msg); - else - png_error(png_ptr, "zlib error"); - } - - if (!(png_ptr->zstream.avail_out)) - { - /* write the IDAT and reset the zlib output buffer */ - png_write_IDAT(png_ptr, png_ptr->zbuf, - png_ptr->zbuf_size); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - wrote_IDAT = 1; - } - } while(wrote_IDAT == 1); - - /* If there is any data left to be output, write it into a new IDAT */ - if (png_ptr->zbuf_size != png_ptr->zstream.avail_out) - { - /* write the IDAT and reset the zlib output buffer */ - png_write_IDAT(png_ptr, png_ptr->zbuf, - png_ptr->zbuf_size - png_ptr->zstream.avail_out); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - } - png_ptr->flush_rows = 0; - png_flush(png_ptr); -} -#endif /* PNG_WRITE_FLUSH_SUPPORTED */ - -/* free all memory used by the write */ -void -png_destroy_write_struct(png_structpp png_ptr_ptr, png_infopp info_ptr_ptr) -{ - png_structp png_ptr = NULL; - png_infop info_ptr = NULL; -#ifdef PNG_USER_MEM_SUPPORTED - png_free_ptr free_fn = NULL; -#endif - - png_debug(1, "in png_destroy_write_struct\n"); - if (png_ptr_ptr != NULL) - { - png_ptr = *png_ptr_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - free_fn = png_ptr->free_fn; -#endif - } - - if (info_ptr_ptr != NULL) - info_ptr = *info_ptr_ptr; - - if (info_ptr != NULL) - { -#ifdef PNG_WRITE_tEXt_SUPPORTED - png_free(png_ptr, info_ptr->text); -#endif -#if defined(PNG_READ_pCAL_SUPPORTED) - png_free(png_ptr, info_ptr->pcal_purpose); - png_free(png_ptr, info_ptr->pcal_units); - if (info_ptr->pcal_params != NULL) - { - int i; - for (i = 0; i < (int)info_ptr->pcal_nparams; i++) - { - png_free(png_ptr, info_ptr->pcal_params[i]); - } - png_free(png_ptr, info_ptr->pcal_params); - } -#endif -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)info_ptr, free_fn); -#else - png_destroy_struct((png_voidp)info_ptr); -#endif - *info_ptr_ptr = (png_infop)NULL; - } - - if (png_ptr != NULL) - { - png_write_destroy(png_ptr); -#ifdef PNG_USER_MEM_SUPPORTED - png_destroy_struct_2((png_voidp)png_ptr, free_fn); -#else - png_destroy_struct((png_voidp)png_ptr); -#endif - *png_ptr_ptr = (png_structp)NULL; - } -} - - -/* Free any memory used in png_ptr struct (old method) */ -void -png_write_destroy(png_structp png_ptr) -{ - jmp_buf tmp_jmp; /* save jump buffer */ - png_error_ptr error_fn; - png_error_ptr warning_fn; - png_voidp error_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - png_free_ptr free_fn; -#endif - - png_debug(1, "in png_write_destroy\n"); - /* free any memory zlib uses */ - deflateEnd(&png_ptr->zstream); - - /* free our memory. png_free checks NULL for us. */ - png_free(png_ptr, png_ptr->zbuf); - png_free(png_ptr, png_ptr->row_buf); - png_free(png_ptr, png_ptr->prev_row); - png_free(png_ptr, png_ptr->sub_row); - png_free(png_ptr, png_ptr->up_row); - png_free(png_ptr, png_ptr->avg_row); - png_free(png_ptr, png_ptr->paeth_row); -#if defined(PNG_TIME_RFC1123_SUPPORTED) - png_free(png_ptr, png_ptr->time_buffer); -#endif /* PNG_TIME_RFC1123_SUPPORTED */ -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - png_free(png_ptr, png_ptr->prev_filters); - png_free(png_ptr, png_ptr->filter_weights); - png_free(png_ptr, png_ptr->inv_filter_weights); - png_free(png_ptr, png_ptr->filter_costs); - png_free(png_ptr, png_ptr->inv_filter_costs); -#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ - - /* reset structure */ - png_memcpy(tmp_jmp, png_ptr->jmpbuf, sizeof (jmp_buf)); - - error_fn = png_ptr->error_fn; - warning_fn = png_ptr->warning_fn; - error_ptr = png_ptr->error_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - free_fn = png_ptr->free_fn; -#endif - - png_memset(png_ptr, 0, sizeof (png_struct)); - - png_ptr->error_fn = error_fn; - png_ptr->warning_fn = warning_fn; - png_ptr->error_ptr = error_ptr; -#ifdef PNG_USER_MEM_SUPPORTED - png_ptr->free_fn = free_fn; -#endif - - png_memcpy(png_ptr->jmpbuf, tmp_jmp, sizeof (jmp_buf)); -} - -/* Allow the application to select one or more row filters to use. */ -void -png_set_filter(png_structp png_ptr, int method, int filters) -{ - png_debug(1, "in png_set_filter\n"); - /* We allow 'method' only for future expansion of the base filter method. */ - if (method == PNG_FILTER_TYPE_BASE) - { - switch (filters & (PNG_ALL_FILTERS | 0x07)) - { - case 5: - case 6: - case 7: png_warning(png_ptr, "Unknown row filter for method 0"); - case PNG_FILTER_VALUE_NONE: png_ptr->do_filter=PNG_FILTER_NONE; break; - case PNG_FILTER_VALUE_SUB: png_ptr->do_filter=PNG_FILTER_SUB; break; - case PNG_FILTER_VALUE_UP: png_ptr->do_filter=PNG_FILTER_UP; break; - case PNG_FILTER_VALUE_AVG: png_ptr->do_filter=PNG_FILTER_AVG; break; - case PNG_FILTER_VALUE_PAETH: png_ptr->do_filter=PNG_FILTER_PAETH;break; - default: png_ptr->do_filter = (png_byte)filters; break; - } - - /* If we have allocated the row_buf, this means we have already started - * with the image and we should have allocated all of the filter buffers - * that have been selected. If prev_row isn't already allocated, then - * it is too late to start using the filters that need it, since we - * will be missing the data in the previous row. If an application - * wants to start and stop using particular filters during compression, - * it should start out with all of the filters, and then add and - * remove them after the start of compression. - */ - if (png_ptr->row_buf != NULL) - { - if (png_ptr->do_filter & PNG_FILTER_SUB && png_ptr->sub_row == NULL) - { - png_ptr->sub_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB; - } - - if (png_ptr->do_filter & PNG_FILTER_UP && png_ptr->up_row == NULL) - { - if (png_ptr->prev_row == NULL) - { - png_warning(png_ptr, "Can't add Up filter after starting"); - png_ptr->do_filter &= ~PNG_FILTER_UP; - } - else - { - png_ptr->up_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->up_row[0] = PNG_FILTER_VALUE_UP; - } - } - - if (png_ptr->do_filter & PNG_FILTER_AVG && png_ptr->avg_row == NULL) - { - if (png_ptr->prev_row == NULL) - { - png_warning(png_ptr, "Can't add Average filter after starting"); - png_ptr->do_filter &= ~PNG_FILTER_AVG; - } - else - { - png_ptr->avg_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG; - } - } - - if (png_ptr->do_filter & PNG_FILTER_PAETH && - png_ptr->paeth_row == NULL) - { - if (png_ptr->prev_row == NULL) - { - png_warning(png_ptr, "Can't add Paeth filter after starting"); - png_ptr->do_filter &= ~PNG_FILTER_PAETH; - } - else - { - png_ptr->paeth_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH; - } - } - - if (png_ptr->do_filter == PNG_NO_FILTERS) - png_ptr->do_filter = PNG_FILTER_NONE; - } - } - else - png_error(png_ptr, "Unknown custom filter method"); -} - -/* This allows us to influence the way in which libpng chooses the "best" - * filter for the current scanline. While the "minimum-sum-of-absolute- - * differences metric is relatively fast and effective, there is some - * question as to whether it can be improved upon by trying to keep the - * filtered data going to zlib more consistent, hopefully resulting in - * better compression. - */ -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) /* GRR 970116 */ -void -png_set_filter_heuristics(png_structp png_ptr, int heuristic_method, - int num_weights, png_doublep filter_weights, - png_doublep filter_costs) -{ - int i; - - png_debug(1, "in png_set_filter_heuristics\n"); - if (heuristic_method >= PNG_FILTER_HEURISTIC_LAST) - { - png_warning(png_ptr, "Unknown filter heuristic method"); - return; - } - - if (heuristic_method == PNG_FILTER_HEURISTIC_DEFAULT) - { - heuristic_method = PNG_FILTER_HEURISTIC_UNWEIGHTED; - } - - if (num_weights < 0 || filter_weights == NULL || - heuristic_method == PNG_FILTER_HEURISTIC_UNWEIGHTED) - { - num_weights = 0; - } - - png_ptr->num_prev_filters = num_weights; - png_ptr->heuristic_method = heuristic_method; - - if (num_weights > 0) - { - if (png_ptr->prev_filters == NULL) - { - png_ptr->prev_filters = (png_bytep)png_malloc(png_ptr, - (png_uint_32)(sizeof(png_byte) * num_weights)); - - /* To make sure that the weighting starts out fairly */ - for (i = 0; i < num_weights; i++) - { - png_ptr->prev_filters[i] = 255; - } - } - - if (png_ptr->filter_weights == NULL) - { - png_ptr->filter_weights = (png_uint_16p) png_malloc(png_ptr, - (png_uint_32)(sizeof(png_uint_16) * num_weights)); - - png_ptr->inv_filter_weights = (png_uint_16p) png_malloc(png_ptr, - (png_uint_32)(sizeof(png_uint_16) * num_weights)); - - for (i = 0; i < num_weights; i++) - { - png_ptr->inv_filter_weights[i] = - png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR; - } - } - - for (i = 0; i < num_weights; i++) - { - if (filter_weights[i] < 0.0) - { - png_ptr->inv_filter_weights[i] = - png_ptr->filter_weights[i] = PNG_WEIGHT_FACTOR; - } - else - { - png_ptr->inv_filter_weights[i] = - (png_uint_16)((double)PNG_WEIGHT_FACTOR*filter_weights[i]+0.5); - png_ptr->filter_weights[i] = - (png_uint_16)((double)PNG_WEIGHT_FACTOR/filter_weights[i]+0.5); - } - } - } - - /* If, in the future, there are other filter methods, this would - * need to be based on png_ptr->filter. - */ - if (png_ptr->filter_costs == NULL) - { - png_ptr->filter_costs = (png_uint_16p) png_malloc(png_ptr, - (png_uint_32)(sizeof(png_uint_16) * PNG_FILTER_VALUE_LAST)); - - png_ptr->inv_filter_costs = (png_uint_16p) png_malloc(png_ptr, - (png_uint_32)(sizeof(png_uint_16) * PNG_FILTER_VALUE_LAST)); - - for (i = 0; i < PNG_FILTER_VALUE_LAST; i++) - { - png_ptr->inv_filter_costs[i] = - png_ptr->filter_costs[i] = PNG_COST_FACTOR; - } - } - - /* Here is where we set the relative costs of the different filters. We - * should take the desired compression level into account when setting - * the costs, so that Paeth, for instance, has a high relative cost at low - * compression levels, while it has a lower relative cost at higher - * compression settings. The filter types are in order of increasing - * relative cost, so it would be possible to do this with an algorithm. - */ - for (i = 0; i < PNG_FILTER_VALUE_LAST; i++) - { - if (filter_costs == NULL || filter_costs[i] < 0.0) - { - png_ptr->inv_filter_costs[i] = - png_ptr->filter_costs[i] = PNG_COST_FACTOR; - } - else if (filter_costs[i] >= 1.0) - { - png_ptr->inv_filter_costs[i] = - (png_uint_16)((double)PNG_COST_FACTOR / filter_costs[i] + 0.5); - png_ptr->filter_costs[i] = - (png_uint_16)((double)PNG_COST_FACTOR * filter_costs[i] + 0.5); - } - } -} -#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */ - -void -png_set_compression_level(png_structp png_ptr, int level) -{ - png_debug(1, "in png_set_compression_level\n"); - png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_LEVEL; - png_ptr->zlib_level = level; -} - -void -png_set_compression_mem_level(png_structp png_ptr, int mem_level) -{ - png_debug(1, "in png_set_compression_mem_level\n"); - png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL; - png_ptr->zlib_mem_level = mem_level; -} - -void -png_set_compression_strategy(png_structp png_ptr, int strategy) -{ - png_debug(1, "in png_set_compression_strategy\n"); - png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_STRATEGY; - png_ptr->zlib_strategy = strategy; -} - -void -png_set_compression_window_bits(png_structp png_ptr, int window_bits) -{ - if (window_bits > 15) - png_warning(png_ptr, "Only compression windows <= 32k supported by PNG"); - png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS; - png_ptr->zlib_window_bits = window_bits; -} - -void -png_set_compression_method(png_structp png_ptr, int method) -{ - png_debug(1, "in png_set_compression_method\n"); - if (method != 8) - png_warning(png_ptr, "Only compression method 8 is supported by PNG"); - png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_METHOD; - png_ptr->zlib_method = method; -} - -void -png_set_write_status_fn(png_structp png_ptr, png_write_status_ptr write_row_fn) -{ - png_ptr->write_row_fn = write_row_fn; -} - -#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) -void -png_set_write_user_transform_fn(png_structp png_ptr, png_user_transform_ptr - write_user_transform_fn) -{ - png_debug(1, "in png_set_write_user_transform_fn\n"); - png_ptr->transformations |= PNG_USER_TRANSFORM; - png_ptr->write_user_transform_fn = write_user_transform_fn; -} -#endif - diff --git a/src/png/pngwtran.c b/src/png/pngwtran.c deleted file mode 100644 index 76cf3a3e5d..0000000000 --- a/src/png/pngwtran.c +++ /dev/null @@ -1,497 +0,0 @@ - -/* pngwtran.c - transforms the data in a row for PNG writers - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Transform the data according to the user's wishes. The order of - * transformations is significant. - */ -void -png_do_write_transformations(png_structp png_ptr) -{ - png_debug(1, "in png_do_write_transformations\n"); - -#if defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED) - if (png_ptr->transformations & PNG_USER_TRANSFORM) - if(png_ptr->write_user_transform_fn != NULL) - (*(png_ptr->write_user_transform_fn)) /* user write transform function */ - (png_ptr, /* png_ptr */ - &(png_ptr->row_info), /* row_info: */ - /* png_uint_32 width; width of row */ - /* png_uint_32 rowbytes; number of bytes in row */ - /* png_byte color_type; color type of pixels */ - /* png_byte bit_depth; bit depth of samples */ - /* png_byte channels; number of channels (1-4) */ - /* png_byte pixel_depth; bits per pixel (depth*channels) */ - png_ptr->row_buf + 1); /* start of pixel data for row */ -#endif -#if defined(PNG_WRITE_FILLER_SUPPORTED) - if (png_ptr->transformations & PNG_FILLER) - png_do_strip_filler(&(png_ptr->row_info), png_ptr->row_buf + 1, - png_ptr->flags); -#endif -#if defined(PNG_WRITE_PACKSWAP_SUPPORTED) - if (png_ptr->transformations & PNG_PACKSWAP) - png_do_packswap(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif -#if defined(PNG_WRITE_PACK_SUPPORTED) - if (png_ptr->transformations & PNG_PACK) - png_do_pack(&(png_ptr->row_info), png_ptr->row_buf + 1, - (png_uint_32)png_ptr->bit_depth); -#endif -#if defined(PNG_WRITE_SWAP_SUPPORTED) - if (png_ptr->transformations & PNG_SWAP_BYTES) - png_do_swap(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif -#if defined(PNG_WRITE_SHIFT_SUPPORTED) - if (png_ptr->transformations & PNG_SHIFT) - png_do_shift(&(png_ptr->row_info), png_ptr->row_buf + 1, - &(png_ptr->shift)); -#endif -#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_ALPHA) - png_do_write_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif -#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) - if (png_ptr->transformations & PNG_SWAP_ALPHA) - png_do_write_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif -#if defined(PNG_WRITE_BGR_SUPPORTED) - if (png_ptr->transformations & PNG_BGR) - png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif -#if defined(PNG_WRITE_INVERT_SUPPORTED) - if (png_ptr->transformations & PNG_INVERT_MONO) - png_do_invert(&(png_ptr->row_info), png_ptr->row_buf + 1); -#endif -} - -#if defined(PNG_WRITE_PACK_SUPPORTED) -/* Pack pixels into bytes. Pass the true bit depth in bit_depth. The - * row_info bit depth should be 8 (one pixel per byte). The channels - * should be 1 (this only happens on grayscale and paletted images). - */ -void -png_do_pack(png_row_infop row_info, png_bytep row, png_uint_32 bit_depth) -{ - png_debug(1, "in png_do_pack\n"); - if (row_info->bit_depth == 8 && -#if defined(PNG_USELESS_TESTS_SUPPORTED) - row != NULL && row_info != NULL && -#endif - row_info->channels == 1) - { - switch ((int)bit_depth) - { - case 1: - { - png_bytep sp, dp; - int mask, v; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - sp = row; - dp = row; - mask = 0x80; - v = 0; - - for (i = 0; i < row_width; i++) - { - if (*sp != 0) - v |= mask; - sp++; - if (mask > 1) - mask >>= 1; - else - { - mask = 0x80; - *dp = (png_byte)v; - dp++; - v = 0; - } - } - if (mask != 0x80) - *dp = (png_byte)v; - break; - } - case 2: - { - png_bytep sp, dp; - int shift, v; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - sp = row; - dp = row; - shift = 6; - v = 0; - for (i = 0; i < row_width; i++) - { - png_byte value; - - value = (png_byte)(*sp & 0x3); - v |= (value << shift); - if (shift == 0) - { - shift = 6; - *dp = (png_byte)v; - dp++; - v = 0; - } - else - shift -= 2; - sp++; - } - if (shift != 6) - *dp = (png_byte)v; - break; - } - case 4: - { - png_bytep sp, dp; - int shift, v; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - sp = row; - dp = row; - shift = 4; - v = 0; - for (i = 0; i < row_width; i++) - { - png_byte value; - - value = (png_byte)(*sp & 0xf); - v |= (value << shift); - - if (shift == 0) - { - shift = 4; - *dp = (png_byte)v; - dp++; - v = 0; - } - else - shift -= 4; - - sp++; - } - if (shift != 4) - *dp = (png_byte)v; - break; - } - } - row_info->bit_depth = (png_byte)bit_depth; - row_info->pixel_depth = (png_byte)(bit_depth * row_info->channels); - row_info->rowbytes = - ((row_info->width * row_info->pixel_depth + 7) >> 3); - } -} -#endif - -#if defined(PNG_WRITE_SHIFT_SUPPORTED) -/* Shift pixel values to take advantage of whole range. Pass the - * true number of bits in bit_depth. The row should be packed - * according to row_info->bit_depth. Thus, if you had a row of - * bit depth 4, but the pixels only had values from 0 to 7, you - * would pass 3 as bit_depth, and this routine would translate the - * data to 0 to 15. - */ -void -png_do_shift(png_row_infop row_info, png_bytep row, png_color_8p bit_depth) -{ - png_debug(1, "in png_do_shift\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL && -#else - if ( -#endif - row_info->color_type != PNG_COLOR_TYPE_PALETTE) - { - int shift_start[4], shift_dec[4]; - int channels = 0; - - if (row_info->color_type & PNG_COLOR_MASK_COLOR) - { - shift_start[channels] = row_info->bit_depth - bit_depth->red; - shift_dec[channels] = bit_depth->red; - channels++; - shift_start[channels] = row_info->bit_depth - bit_depth->green; - shift_dec[channels] = bit_depth->green; - channels++; - shift_start[channels] = row_info->bit_depth - bit_depth->blue; - shift_dec[channels] = bit_depth->blue; - channels++; - } - else - { - shift_start[channels] = row_info->bit_depth - bit_depth->gray; - shift_dec[channels] = bit_depth->gray; - channels++; - } - if (row_info->color_type & PNG_COLOR_MASK_ALPHA) - { - shift_start[channels] = row_info->bit_depth - bit_depth->alpha; - shift_dec[channels] = bit_depth->alpha; - channels++; - } - - /* with low row depths, could only be grayscale, so one channel */ - if (row_info->bit_depth < 8) - { - png_bytep bp = row; - png_uint_32 i; - png_byte mask; - png_uint_32 row_bytes = row_info->rowbytes; - - if (bit_depth->gray == 1 && row_info->bit_depth == 2) - mask = 0x55; - else if (row_info->bit_depth == 4 && bit_depth->gray == 3) - mask = 0x11; - else - mask = 0xff; - - for (i = 0; i < row_bytes; i++, bp++) - { - png_uint_16 v; - int j; - - v = *bp; - *bp = 0; - for (j = shift_start[0]; j > -shift_dec[0]; j -= shift_dec[0]) - { - if (j > 0) - *bp |= (png_byte)((v << j) & 0xff); - else - *bp |= (png_byte)((v >> (-j)) & mask); - } - } - } - else if (row_info->bit_depth == 8) - { - png_bytep bp = row; - png_uint_32 i; - png_uint_32 istop = channels * row_info->width; - - for (i = 0; i < istop; i++, bp++) - { - - png_uint_16 v; - int j; - int c = (int)(i%channels); - - v = *bp; - *bp = 0; - for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c]) - { - if (j > 0) - *bp |= (png_byte)((v << j) & 0xff); - else - *bp |= (png_byte)((v >> (-j)) & 0xff); - } - } - } - else - { - png_bytep bp; - png_uint_32 i; - png_uint_32 istop = channels * row_info->width; - - for (bp = row, i = 0; i < istop; i++) - { - int c = (int)(i%channels); - png_uint_16 value, v; - int j; - - v = ((png_uint_16)(*bp) << 8) + *(bp + 1); - value = 0; - for (j = shift_start[c]; j > -shift_dec[c]; j -= shift_dec[c]) - { - if (j > 0) - value |= (png_uint_16)((v << j) & (png_uint_16)0xffff); - else - value |= (png_uint_16)((v >> (-j)) & (png_uint_16)0xffff); - } - *bp++ = (png_byte)(value >> 8); - *bp++ = (png_byte)(value & 0xff); - } - } - } -} -#endif - -#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED) -void -png_do_write_swap_alpha(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_write_swap_alpha\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - /* This converts from ARGB to RGBA */ - if (row_info->bit_depth == 8) - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save; - } - } - /* This converts from AARRGGBB to RRGGBBAA */ - else - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save[2]; - save[0] = *(sp++); - save[1] = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save[0]; - *(dp++) = save[1]; - } - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - /* This converts from AG to GA */ - if (row_info->bit_depth == 8) - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save; - } - } - /* This converts from AAGG to GGAA */ - else - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - png_byte save[2]; - save[0] = *(sp++); - save[1] = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = save[0]; - *(dp++) = save[1]; - } - } - } - } -} -#endif - -#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED) -void -png_do_write_invert_alpha(png_row_infop row_info, png_bytep row) -{ - png_debug(1, "in png_do_write_invert_alpha\n"); -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL) -#endif - { - if (row_info->color_type == PNG_COLOR_TYPE_RGB_ALPHA) - { - /* This inverts the alpha channel in RGBA */ - if (row_info->bit_depth == 8) - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - for (i = 0, sp = dp = row; i < row_width; i++) - { - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = 255 - *(sp++); - } - } - /* This inverts the alpha channel in RRGGBBAA */ - else - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = 255 - *(sp++); - *(dp++) = 255 - *(sp++); - } - } - } - else if (row_info->color_type == PNG_COLOR_TYPE_GRAY_ALPHA) - { - /* This inverts the alpha channel in GA */ - if (row_info->bit_depth == 8) - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - *(dp++) = *(sp++); - *(dp++) = 255 - *(sp++); - } - } - /* This inverts the alpha channel in GGAA */ - else - { - png_bytep sp, dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - for (i = 0, sp = dp = row; i < row_width; i++) - { - *(dp++) = *(sp++); - *(dp++) = *(sp++); - *(dp++) = 255 - *(sp++); - *(dp++) = 255 - *(sp++); - } - } - } - } -} -#endif diff --git a/src/png/pngwutil.c b/src/png/pngwutil.c deleted file mode 100644 index 4736361d2e..0000000000 --- a/src/png/pngwutil.c +++ /dev/null @@ -1,2063 +0,0 @@ - -/* pngwutil.c - utilities to write a PNG file - * - * libpng 1.0.3 - January 14, 1999 - * For conditions of distribution and use, see copyright notice in png.h - * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc. - * Copyright (c) 1996, 1997 Andreas Dilger - * Copyright (c) 1998, 1999 Glenn Randers-Pehrson - */ - -#define PNG_INTERNAL -#include "png.h" - -/* Place a 32-bit number into a buffer in PNG byte order. We work - * with unsigned numbers for convenience, although one supported - * ancillary chunk uses signed (two's complement) numbers. - */ -void -png_save_uint_32(png_bytep buf, png_uint_32 i) -{ - buf[0] = (png_byte)((i >> 24) & 0xff); - buf[1] = (png_byte)((i >> 16) & 0xff); - buf[2] = (png_byte)((i >> 8) & 0xff); - buf[3] = (png_byte)(i & 0xff); -} - -#if defined(PNG_WRITE_pCAL_SUPPORTED) -/* The png_save_int_32 function assumes integers are stored in two's - * complement format. If this isn't the case, then this routine needs to - * be modified to write data in two's complement format. - */ -void -png_save_int_32(png_bytep buf, png_int_32 i) -{ - buf[0] = (png_byte)((i >> 24) & 0xff); - buf[1] = (png_byte)((i >> 16) & 0xff); - buf[2] = (png_byte)((i >> 8) & 0xff); - buf[3] = (png_byte)(i & 0xff); -} -#endif - -/* Place a 16-bit number into a buffer in PNG byte order. - * The parameter is declared unsigned int, not png_uint_16, - * just to avoid potential problems on pre-ANSI C compilers. - */ -void -png_save_uint_16(png_bytep buf, unsigned int i) -{ - buf[0] = (png_byte)((i >> 8) & 0xff); - buf[1] = (png_byte)(i & 0xff); -} - -/* Write a PNG chunk all at once. The type is an array of ASCII characters - * representing the chunk name. The array must be at least 4 bytes in - * length, and does not need to be null terminated. To be safe, pass the - * pre-defined chunk names here, and if you need a new one, define it - * where the others are defined. The length is the length of the data. - * All the data must be present. If that is not possible, use the - * png_write_chunk_start(), png_write_chunk_data(), and png_write_chunk_end() - * functions instead. - */ -void -png_write_chunk(png_structp png_ptr, png_bytep chunk_name, - png_bytep data, png_size_t length) -{ - png_write_chunk_start(png_ptr, chunk_name, (png_uint_32)length); - png_write_chunk_data(png_ptr, data, length); - png_write_chunk_end(png_ptr); -} - -/* Write the start of a PNG chunk. The type is the chunk type. - * The total_length is the sum of the lengths of all the data you will be - * passing in png_write_chunk_data(). - */ -void -png_write_chunk_start(png_structp png_ptr, png_bytep chunk_name, - png_uint_32 length) -{ - png_byte buf[4]; - png_debug2(0, "Writing %s chunk (%d bytes)\n", chunk_name, length); - - /* write the length */ - png_save_uint_32(buf, length); - png_write_data(png_ptr, buf, (png_size_t)4); - - /* write the chunk name */ - png_write_data(png_ptr, chunk_name, (png_size_t)4); - /* reset the crc and run it over the chunk name */ - png_reset_crc(png_ptr); - png_calculate_crc(png_ptr, chunk_name, (png_size_t)4); -} - -/* Write the data of a PNG chunk started with png_write_chunk_start(). - * Note that multiple calls to this function are allowed, and that the - * sum of the lengths from these calls *must* add up to the total_length - * given to png_write_chunk_start(). - */ -void -png_write_chunk_data(png_structp png_ptr, png_bytep data, png_size_t length) -{ - /* write the data, and run the CRC over it */ - if (data != NULL && length > 0) - { - png_calculate_crc(png_ptr, data, length); - png_write_data(png_ptr, data, length); - } -} - -/* Finish a chunk started with png_write_chunk_start(). */ -void -png_write_chunk_end(png_structp png_ptr) -{ - png_byte buf[4]; - - /* write the crc */ - png_save_uint_32(buf, png_ptr->crc); - - png_write_data(png_ptr, buf, (png_size_t)4); -} - -/* Simple function to write the signature. If we have already written - * the magic bytes of the signature, or more likely, the PNG stream is - * being embedded into another stream and doesn't need its own signature, - * we should call png_set_sig_bytes() to tell libpng how many of the - * bytes have already been written. - */ -void -png_write_sig(png_structp png_ptr) -{ - /* write the rest of the 8 byte signature */ - png_write_data(png_ptr, &png_sig[png_ptr->sig_bytes], - (png_size_t)8 - png_ptr->sig_bytes); -} - -/* Write the IHDR chunk, and update the png_struct with the necessary - * information. Note that the rest of this code depends upon this - * information being correct. - */ -void -png_write_IHDR(png_structp png_ptr, png_uint_32 width, png_uint_32 height, - int bit_depth, int color_type, int compression_type, int filter_type, - int interlace_type) -{ - png_byte buf[13]; /* buffer to store the IHDR info */ - - png_debug(1, "in png_write_IHDR\n"); - /* Check that we have valid input data from the application info */ - switch (color_type) - { - case PNG_COLOR_TYPE_GRAY: - switch (bit_depth) - { - case 1: - case 2: - case 4: - case 8: - case 16: png_ptr->channels = 1; break; - default: png_error(png_ptr,"Invalid bit depth for grayscale image"); - } - break; - case PNG_COLOR_TYPE_RGB: - if (bit_depth != 8 && bit_depth != 16) - png_error(png_ptr, "Invalid bit depth for RGB image"); - png_ptr->channels = 3; - break; - case PNG_COLOR_TYPE_PALETTE: - switch (bit_depth) - { - case 1: - case 2: - case 4: - case 8: png_ptr->channels = 1; break; - default: png_error(png_ptr, "Invalid bit depth for paletted image"); - } - break; - case PNG_COLOR_TYPE_GRAY_ALPHA: - if (bit_depth != 8 && bit_depth != 16) - png_error(png_ptr, "Invalid bit depth for grayscale+alpha image"); - png_ptr->channels = 2; - break; - case PNG_COLOR_TYPE_RGB_ALPHA: - if (bit_depth != 8 && bit_depth != 16) - png_error(png_ptr, "Invalid bit depth for RGBA image"); - png_ptr->channels = 4; - break; - default: - png_error(png_ptr, "Invalid image color type specified"); - } - - if (compression_type != PNG_COMPRESSION_TYPE_BASE) - { - png_warning(png_ptr, "Invalid compression type specified"); - compression_type = PNG_COMPRESSION_TYPE_BASE; - } - - if (filter_type != PNG_FILTER_TYPE_BASE) - { - png_warning(png_ptr, "Invalid filter type specified"); - filter_type = PNG_FILTER_TYPE_BASE; - } - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - if (interlace_type != PNG_INTERLACE_NONE && - interlace_type != PNG_INTERLACE_ADAM7) - { - png_warning(png_ptr, "Invalid interlace type specified"); - interlace_type = PNG_INTERLACE_ADAM7; - } -#else - interlace_type=PNG_INTERLACE_NONE; -#endif - - /* save off the relevent information */ - png_ptr->bit_depth = (png_byte)bit_depth; - png_ptr->color_type = (png_byte)color_type; - png_ptr->interlaced = (png_byte)interlace_type; - png_ptr->width = width; - png_ptr->height = height; - - png_ptr->pixel_depth = (png_byte)(bit_depth * png_ptr->channels); - png_ptr->rowbytes = ((width * (png_size_t)png_ptr->pixel_depth + 7) >> 3); - /* set the usr info, so any transformations can modify it */ - png_ptr->usr_width = png_ptr->width; - png_ptr->usr_bit_depth = png_ptr->bit_depth; - png_ptr->usr_channels = png_ptr->channels; - - /* pack the header information into the buffer */ - png_save_uint_32(buf, width); - png_save_uint_32(buf + 4, height); - buf[8] = (png_byte)bit_depth; - buf[9] = (png_byte)color_type; - buf[10] = (png_byte)compression_type; - buf[11] = (png_byte)filter_type; - buf[12] = (png_byte)interlace_type; - - /* write the chunk */ - png_write_chunk(png_ptr, png_IHDR, buf, (png_size_t)13); - - /* initialize zlib with PNG info */ - png_ptr->zstream.zalloc = png_zalloc; - png_ptr->zstream.zfree = png_zfree; - png_ptr->zstream.opaque = (voidpf)png_ptr; - if (!(png_ptr->do_filter)) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE || - png_ptr->bit_depth < 8) - png_ptr->do_filter = PNG_FILTER_NONE; - else - png_ptr->do_filter = PNG_ALL_FILTERS; - } - if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_STRATEGY)) - { - if (png_ptr->do_filter != PNG_FILTER_NONE) - png_ptr->zlib_strategy = Z_FILTERED; - else - png_ptr->zlib_strategy = Z_DEFAULT_STRATEGY; - } - if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_LEVEL)) - png_ptr->zlib_level = Z_DEFAULT_COMPRESSION; - if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_MEM_LEVEL)) - png_ptr->zlib_mem_level = 8; - if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_WINDOW_BITS)) - png_ptr->zlib_window_bits = 15; - if (!(png_ptr->flags & PNG_FLAG_ZLIB_CUSTOM_METHOD)) - png_ptr->zlib_method = 8; - deflateInit2(&png_ptr->zstream, png_ptr->zlib_level, - png_ptr->zlib_method, png_ptr->zlib_window_bits, - png_ptr->zlib_mem_level, png_ptr->zlib_strategy); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - - png_ptr->mode = PNG_HAVE_IHDR; -} - -/* write the palette. We are careful not to trust png_color to be in the - * correct order for PNG, so people can redefine it to any convenient - * structure. - */ -void -png_write_PLTE(png_structp png_ptr, png_colorp palette, png_uint_32 num_pal) -{ - png_uint_32 i; - png_colorp pal_ptr; - png_byte buf[3]; - - png_debug(1, "in png_write_PLTE\n"); - if (num_pal == 0 || num_pal > 256) - { - if (png_ptr->color_type == PNG_COLOR_TYPE_PALETTE) - { - png_error(png_ptr, "Invalid number of colors in palette"); - } - else - { - png_warning(png_ptr, "Invalid number of colors in palette"); - return; - } - } - - png_ptr->num_palette = (png_uint_16)num_pal; - png_debug1(3, "num_palette = %d\n", png_ptr->num_palette); - - png_write_chunk_start(png_ptr, png_PLTE, num_pal * 3); - for (i = 0, pal_ptr = palette; i < num_pal; i++, pal_ptr++) - { - buf[0] = pal_ptr->red; - buf[1] = pal_ptr->green; - buf[2] = pal_ptr->blue; - png_write_chunk_data(png_ptr, buf, (png_size_t)3); - } - png_write_chunk_end(png_ptr); - png_ptr->mode |= PNG_HAVE_PLTE; -} - -/* write an IDAT chunk */ -void -png_write_IDAT(png_structp png_ptr, png_bytep data, png_size_t length) -{ - png_debug(1, "in png_write_IDAT\n"); - png_write_chunk(png_ptr, png_IDAT, data, length); - png_ptr->mode |= PNG_HAVE_IDAT; -} - -/* write an IEND chunk */ -void -png_write_IEND(png_structp png_ptr) -{ - png_debug(1, "in png_write_IEND\n"); - png_write_chunk(png_ptr, png_IEND, NULL, (png_size_t)0); - png_ptr->mode |= PNG_HAVE_IEND; -} - -#if defined(PNG_WRITE_gAMA_SUPPORTED) -/* write a gAMA chunk */ -void -png_write_gAMA(png_structp png_ptr, double file_gamma) -{ - png_uint_32 igamma; - png_byte buf[4]; - - png_debug(1, "in png_write_gAMA\n"); - /* file_gamma is saved in 1/1000000ths */ - igamma = (png_uint_32)(file_gamma * 100000.0 + 0.5); - png_save_uint_32(buf, igamma); - png_write_chunk(png_ptr, png_gAMA, buf, (png_size_t)4); -} -#endif - -#if defined(PNG_WRITE_sRGB_SUPPORTED) -/* write a sRGB chunk */ -void -png_write_sRGB(png_structp png_ptr, int srgb_intent) -{ - png_byte buf[1]; - - png_debug(1, "in png_write_sRGB\n"); - if(srgb_intent >= PNG_sRGB_INTENT_LAST) - png_warning(png_ptr, - "Invalid sRGB rendering intent specified"); - buf[0]=(png_byte)srgb_intent; - png_write_chunk(png_ptr, png_sRGB, buf, (png_size_t)1); -} -#endif - -#if defined(PNG_WRITE_sBIT_SUPPORTED) -/* write the sBIT chunk */ -void -png_write_sBIT(png_structp png_ptr, png_color_8p sbit, int color_type) -{ - png_byte buf[4]; - png_size_t size; - - png_debug(1, "in png_write_sBIT\n"); - /* make sure we don't depend upon the order of PNG_COLOR_8 */ - if (color_type & PNG_COLOR_MASK_COLOR) - { - png_byte maxbits; - - maxbits = color_type==PNG_COLOR_TYPE_PALETTE ? 8 : png_ptr->usr_bit_depth; - if (sbit->red == 0 || sbit->red > maxbits || - sbit->green == 0 || sbit->green > maxbits || - sbit->blue == 0 || sbit->blue > maxbits) - { - png_warning(png_ptr, "Invalid sBIT depth specified"); - return; - } - buf[0] = sbit->red; - buf[1] = sbit->green; - buf[2] = sbit->blue; - size = 3; - } - else - { - if (sbit->gray == 0 || sbit->gray > png_ptr->usr_bit_depth) - { - png_warning(png_ptr, "Invalid sBIT depth specified"); - return; - } - buf[0] = sbit->gray; - size = 1; - } - - if (color_type & PNG_COLOR_MASK_ALPHA) - { - if (sbit->alpha == 0 || sbit->alpha > png_ptr->usr_bit_depth) - { - png_warning(png_ptr, "Invalid sBIT depth specified"); - return; - } - buf[size++] = sbit->alpha; - } - - png_write_chunk(png_ptr, png_sBIT, buf, size); -} -#endif - -#if defined(PNG_WRITE_cHRM_SUPPORTED) -/* write the cHRM chunk */ -void -png_write_cHRM(png_structp png_ptr, double white_x, double white_y, - double red_x, double red_y, double green_x, double green_y, - double blue_x, double blue_y) -{ - png_uint_32 itemp; - png_byte buf[32]; - - png_debug(1, "in png_write_cHRM\n"); - /* each value is saved int 1/1000000ths */ - if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 || - white_x + white_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM white point specified"); - return; - } - itemp = (png_uint_32)(white_x * 100000.0 + 0.5); - png_save_uint_32(buf, itemp); - itemp = (png_uint_32)(white_y * 100000.0 + 0.5); - png_save_uint_32(buf + 4, itemp); - - if (red_x < 0 || red_x > 0.8 || red_y < 0 || red_y > 0.8 || - red_x + red_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM red point specified"); - return; - } - itemp = (png_uint_32)(red_x * 100000.0 + 0.5); - png_save_uint_32(buf + 8, itemp); - itemp = (png_uint_32)(red_y * 100000.0 + 0.5); - png_save_uint_32(buf + 12, itemp); - - if (green_x < 0 || green_x > 0.8 || green_y < 0 || green_y > 0.8 || - green_x + green_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM green point specified"); - return; - } - itemp = (png_uint_32)(green_x * 100000.0 + 0.5); - png_save_uint_32(buf + 16, itemp); - itemp = (png_uint_32)(green_y * 100000.0 + 0.5); - png_save_uint_32(buf + 20, itemp); - - if (blue_x < 0 || blue_x > 0.8 || blue_y < 0 || blue_y > 0.8 || - blue_x + blue_y > 1.0) - { - png_warning(png_ptr, "Invalid cHRM blue point specified"); - return; - } - itemp = (png_uint_32)(blue_x * 100000.0 + 0.5); - png_save_uint_32(buf + 24, itemp); - itemp = (png_uint_32)(blue_y * 100000.0 + 0.5); - png_save_uint_32(buf + 28, itemp); - - png_write_chunk(png_ptr, png_cHRM, buf, (png_size_t)32); -} -#endif - -#if defined(PNG_WRITE_tRNS_SUPPORTED) -/* write the tRNS chunk */ -void -png_write_tRNS(png_structp png_ptr, png_bytep trans, png_color_16p tran, - int num_trans, int color_type) -{ - png_byte buf[6]; - - png_debug(1, "in png_write_tRNS\n"); - if (color_type == PNG_COLOR_TYPE_PALETTE) - { - if (num_trans <= 0 || num_trans > (int)png_ptr->num_palette) - { - png_warning(png_ptr,"Invalid number of transparent colors specified"); - return; - } - /* write the chunk out as it is */ - png_write_chunk(png_ptr, png_tRNS, trans, (png_size_t)num_trans); - } - else if (color_type == PNG_COLOR_TYPE_GRAY) - { - /* one 16 bit value */ - png_save_uint_16(buf, tran->gray); - png_write_chunk(png_ptr, png_tRNS, buf, (png_size_t)2); - } - else if (color_type == PNG_COLOR_TYPE_RGB) - { - /* three 16 bit values */ - png_save_uint_16(buf, tran->red); - png_save_uint_16(buf + 2, tran->green); - png_save_uint_16(buf + 4, tran->blue); - png_write_chunk(png_ptr, png_tRNS, buf, (png_size_t)6); - } - else - { - png_warning(png_ptr, "Can't write tRNS with an alpha channel"); - } -} -#endif - -#if defined(PNG_WRITE_bKGD_SUPPORTED) -/* write the background chunk */ -void -png_write_bKGD(png_structp png_ptr, png_color_16p back, int color_type) -{ - png_byte buf[6]; - - png_debug(1, "in png_write_bKGD\n"); - if (color_type == PNG_COLOR_TYPE_PALETTE) - { - if (back->index > png_ptr->num_palette) - { - png_warning(png_ptr, "Invalid background palette index"); - return; - } - buf[0] = back->index; - png_write_chunk(png_ptr, png_bKGD, buf, (png_size_t)1); - } - else if (color_type & PNG_COLOR_MASK_COLOR) - { - png_save_uint_16(buf, back->red); - png_save_uint_16(buf + 2, back->green); - png_save_uint_16(buf + 4, back->blue); - png_write_chunk(png_ptr, png_bKGD, buf, (png_size_t)6); - } - else - { - png_save_uint_16(buf, back->gray); - png_write_chunk(png_ptr, png_bKGD, buf, (png_size_t)2); - } -} -#endif - -#if defined(PNG_WRITE_hIST_SUPPORTED) -/* write the histogram */ -void -png_write_hIST(png_structp png_ptr, png_uint_16p hist, int num_hist) -{ - int i; - png_byte buf[3]; - - png_debug(1, "in png_write_hIST\n"); - if (num_hist > (int)png_ptr->num_palette) - { - png_debug2(3, "num_hist = %d, num_palette = %d\n", num_hist, - png_ptr->num_palette); - png_warning(png_ptr, "Invalid number of histogram entries specified"); - return; - } - - png_write_chunk_start(png_ptr, png_hIST, (png_uint_32)(num_hist * 2)); - for (i = 0; i < num_hist; i++) - { - png_save_uint_16(buf, hist[i]); - png_write_chunk_data(png_ptr, buf, (png_size_t)2); - } - png_write_chunk_end(png_ptr); -} -#endif - -#if defined(PNG_WRITE_tEXt_SUPPORTED) || defined(PNG_WRITE_zTXt_SUPPORTED) || \ - defined(PNG_WRITE_pCAL_SUPPORTED) -/* Check that the tEXt or zTXt keyword is valid per PNG 1.0 specification, - * and if invalid, correct the keyword rather than discarding the entire - * chunk. The PNG 1.0 specification requires keywords 1-79 characters in - * length, forbids leading or trailing whitespace, multiple internal spaces, - * and the non-break space (0x80) from ISO 8859-1. Returns keyword length. - * - * The new_key is allocated to hold the corrected keyword and must be freed - * by the calling routine. This avoids problems with trying to write to - * static keywords without having to have duplicate copies of the strings. - */ -png_size_t -png_check_keyword(png_structp png_ptr, png_charp key, png_charpp new_key) -{ - png_size_t key_len; - png_charp kp, dp; - int kflag; - - png_debug(1, "in png_check_keyword\n"); - *new_key = NULL; - - if (key == NULL || (key_len = png_strlen(key)) == 0) - { - png_chunk_warning(png_ptr, "zero length keyword"); - return ((png_size_t)0); - } - - png_debug1(2, "Keyword to be checked is '%s'\n", key); - - *new_key = (png_charp)png_malloc(png_ptr, (png_uint_32)(key_len + 1)); - - /* Replace non-printing characters with a blank and print a warning */ - for (kp = key, dp = *new_key; *kp != '\0'; kp++, dp++) - { - if (*kp < 0x20 || (*kp > 0x7E && (png_byte)*kp < 0xA1)) - { -#if !defined(PNG_NO_STDIO) - char msg[40]; - - sprintf(msg, "invalid keyword character 0x%02X", *kp); - png_chunk_warning(png_ptr, msg); -#else - png_chunk_warning(png_ptr, "invalid character in keyword"); -#endif - *dp = ' '; - } - else - { - *dp = *kp; - } - } - *dp = '\0'; - - /* Remove any trailing white space. */ - kp = *new_key + key_len - 1; - if (*kp == ' ') - { - png_chunk_warning(png_ptr, "trailing spaces removed from keyword"); - - while (*kp == ' ') - { - *(kp--) = '\0'; - key_len--; - } - } - - /* Remove any leading white space. */ - kp = *new_key; - if (*kp == ' ') - { - png_chunk_warning(png_ptr, "leading spaces removed from keyword"); - - while (*kp == ' ') - { - kp++; - key_len--; - } - } - - png_debug1(2, "Checking for multiple internal spaces in '%s'\n", kp); - - /* Remove multiple internal spaces. */ - for (kflag = 0, dp = *new_key; *kp != '\0'; kp++) - { - if (*kp == ' ' && kflag == 0) - { - *(dp++) = *kp; - kflag = 1; - } - else if (*kp == ' ') - { - key_len--; - } - else - { - *(dp++) = *kp; - kflag = 0; - } - } - *dp = '\0'; - - if (key_len == 0) - { - png_chunk_warning(png_ptr, "zero length keyword"); - } - - if (key_len > 79) - { - png_chunk_warning(png_ptr, "keyword length must be 1 - 79 characters"); - new_key[79] = '\0'; - key_len = 79; - } - - return (key_len); -} -#endif - -#if defined(PNG_WRITE_tEXt_SUPPORTED) -/* write a tEXt chunk */ -void -png_write_tEXt(png_structp png_ptr, png_charp key, png_charp text, - png_size_t text_len) -{ - png_size_t key_len; - png_charp new_key; - - png_debug(1, "in png_write_tEXt\n"); - if (key == NULL || (key_len = png_check_keyword(png_ptr, key, &new_key))==0) - { - png_warning(png_ptr, "Empty keyword in tEXt chunk"); - return; - } - - if (text == NULL || *text == '\0') - text_len = 0; - - /* make sure we include the 0 after the key */ - png_write_chunk_start(png_ptr, png_tEXt, (png_uint_32)key_len+text_len+1); - png_write_chunk_data(png_ptr, (png_bytep)new_key, key_len + 1); - if (text_len) - png_write_chunk_data(png_ptr, (png_bytep)text, text_len); - - png_write_chunk_end(png_ptr); - png_free(png_ptr, new_key); -} -#endif - -#if defined(PNG_WRITE_zTXt_SUPPORTED) -/* write a compressed text chunk */ -void -png_write_zTXt(png_structp png_ptr, png_charp key, png_charp text, - png_size_t text_len, int compression) -{ - png_size_t key_len; - char buf[1]; - png_charp new_key; - int i, ret; - png_charpp output_ptr = NULL; /* array of pointers to output */ - int num_output_ptr = 0; /* number of output pointers used */ - int max_output_ptr = 0; /* size of output_ptr */ - - png_debug(1, "in png_write_zTXt\n"); - - if (key == NULL || (key_len = png_check_keyword(png_ptr, key, &new_key))==0) - { - png_warning(png_ptr, "Empty keyword in zTXt chunk"); - return; - } - - if (text == NULL || *text == '\0' || compression==PNG_TEXT_COMPRESSION_NONE) - { - png_write_tEXt(png_ptr, new_key, text, (png_size_t)0); - png_free(png_ptr, new_key); - return; - } - - png_free(png_ptr, new_key); - - if (compression >= PNG_TEXT_COMPRESSION_LAST) - { -#if !defined(PNG_NO_STDIO) - char msg[50]; - sprintf(msg, "Unknown zTXt compression type %d", compression); - png_warning(png_ptr, msg); -#else - png_warning(png_ptr, "Unknown zTXt compression type"); -#endif - compression = PNG_TEXT_COMPRESSION_zTXt; - } - - /* We can't write the chunk until we find out how much data we have, - * which means we need to run the compressor first and save the - * output. This shouldn't be a problem, as the vast majority of - * comments should be reasonable, but we will set up an array of - * malloc'd pointers to be sure. - * - * If we knew the application was well behaved, we could simplify this - * greatly by assuming we can always malloc an output buffer large - * enough to hold the compressed text ((1001 * text_len / 1000) + 12) - * and malloc this directly. The only time this would be a bad idea is - * if we can't malloc more than 64K and we have 64K of random input - * data, or if the input string is incredibly large (although this - * wouldn't cause a failure, just a slowdown due to swapping). - */ - - /* set up the compression buffers */ - png_ptr->zstream.avail_in = (uInt)text_len; - png_ptr->zstream.next_in = (Bytef *)text; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - png_ptr->zstream.next_out = (Bytef *)png_ptr->zbuf; - - /* this is the same compression loop as in png_write_row() */ - do - { - /* compress the data */ - ret = deflate(&png_ptr->zstream, Z_NO_FLUSH); - if (ret != Z_OK) - { - /* error */ - if (png_ptr->zstream.msg != NULL) - png_error(png_ptr, png_ptr->zstream.msg); - else - png_error(png_ptr, "zlib error"); - } - /* check to see if we need more room */ - if (!png_ptr->zstream.avail_out && png_ptr->zstream.avail_in) - { - /* make sure the output array has room */ - if (num_output_ptr >= max_output_ptr) - { - int old_max; - - old_max = max_output_ptr; - max_output_ptr = num_output_ptr + 4; - if (output_ptr != NULL) - { - png_charpp old_ptr; - - old_ptr = output_ptr; - output_ptr = (png_charpp)png_malloc(png_ptr, - (png_uint_32)(max_output_ptr * sizeof (png_charpp))); - png_memcpy(output_ptr, old_ptr, old_max * sizeof (png_charp)); - png_free(png_ptr, old_ptr); - } - else - output_ptr = (png_charpp)png_malloc(png_ptr, - (png_uint_32)(max_output_ptr * sizeof (png_charp))); - } - - /* save the data */ - output_ptr[num_output_ptr] = (png_charp)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - png_memcpy(output_ptr[num_output_ptr], png_ptr->zbuf, - png_ptr->zbuf_size); - num_output_ptr++; - - /* and reset the buffer */ - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - png_ptr->zstream.next_out = png_ptr->zbuf; - } - /* continue until we don't have any more to compress */ - } while (png_ptr->zstream.avail_in); - - /* finish the compression */ - do - { - /* tell zlib we are finished */ - ret = deflate(&png_ptr->zstream, Z_FINISH); - if (ret != Z_OK && ret != Z_STREAM_END) - { - /* we got an error */ - if (png_ptr->zstream.msg != NULL) - png_error(png_ptr, png_ptr->zstream.msg); - else - png_error(png_ptr, "zlib error"); - } - - /* check to see if we need more room */ - if (!(png_ptr->zstream.avail_out) && ret == Z_OK) - { - /* check to make sure our output array has room */ - if (num_output_ptr >= max_output_ptr) - { - int old_max; - - old_max = max_output_ptr; - max_output_ptr = num_output_ptr + 4; - if (output_ptr != NULL) - { - png_charpp old_ptr; - - old_ptr = output_ptr; - /* This could be optimized to realloc() */ - output_ptr = (png_charpp)png_malloc(png_ptr, - (png_uint_32)(max_output_ptr * sizeof (png_charpp))); - png_memcpy(output_ptr, old_ptr, old_max * sizeof (png_charp)); - png_free(png_ptr, old_ptr); - } - else - output_ptr = (png_charpp)png_malloc(png_ptr, - (png_uint_32)(max_output_ptr * sizeof (png_charp))); - } - - /* save off the data */ - output_ptr[num_output_ptr] = (png_charp)png_malloc(png_ptr, - (png_uint_32)png_ptr->zbuf_size); - png_memcpy(output_ptr[num_output_ptr], png_ptr->zbuf, - png_ptr->zbuf_size); - num_output_ptr++; - - /* and reset the buffer pointers */ - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - png_ptr->zstream.next_out = png_ptr->zbuf; - } - } while (ret != Z_STREAM_END); - - /* text length is number of buffers plus last buffer */ - text_len = png_ptr->zbuf_size * num_output_ptr; - if (png_ptr->zstream.avail_out < png_ptr->zbuf_size) - text_len += png_ptr->zbuf_size - (png_size_t)png_ptr->zstream.avail_out; - - /* write start of chunk */ - png_write_chunk_start(png_ptr, png_zTXt, (png_uint_32)(key_len+text_len+2)); - /* write key */ - png_write_chunk_data(png_ptr, (png_bytep)key, key_len + 1); - buf[0] = (png_byte)compression; - /* write compression */ - png_write_chunk_data(png_ptr, (png_bytep)buf, (png_size_t)1); - - /* write saved output buffers, if any */ - for (i = 0; i < num_output_ptr; i++) - { - png_write_chunk_data(png_ptr,(png_bytep)output_ptr[i],png_ptr->zbuf_size); - png_free(png_ptr, output_ptr[i]); - } - if (max_output_ptr != 0) - png_free(png_ptr, output_ptr); - /* write anything left in zbuf */ - if (png_ptr->zstream.avail_out < (png_uint_32)png_ptr->zbuf_size) - png_write_chunk_data(png_ptr, png_ptr->zbuf, - png_ptr->zbuf_size - png_ptr->zstream.avail_out); - /* close the chunk */ - png_write_chunk_end(png_ptr); - - /* reset zlib for another zTXt or the image data */ - deflateReset(&png_ptr->zstream); -} -#endif - - -#if defined(PNG_WRITE_oFFs_SUPPORTED) -/* write the oFFs chunk */ -void -png_write_oFFs(png_structp png_ptr, png_uint_32 x_offset, - png_uint_32 y_offset, - int unit_type) -{ - png_byte buf[9]; - - png_debug(1, "in png_write_oFFs\n"); - if (unit_type >= PNG_OFFSET_LAST) - png_warning(png_ptr, "Unrecognized unit type for oFFs chunk"); - - png_save_uint_32(buf, x_offset); - png_save_uint_32(buf + 4, y_offset); - buf[8] = (png_byte)unit_type; - - png_write_chunk(png_ptr, png_oFFs, buf, (png_size_t)9); -} -#endif - -#if defined(PNG_WRITE_pCAL_SUPPORTED) -/* write the pCAL chunk (png-scivis-19970203) */ -void -png_write_pCAL(png_structp png_ptr, png_charp purpose, png_int_32 X0, - png_int_32 X1, int type, int nparams, png_charp units, png_charpp params) -{ - png_size_t purpose_len, units_len, total_len; - png_uint_32p params_len; - png_byte buf[10]; - png_charp new_purpose; - int i; - - png_debug1(1, "in png_write_pCAL (%d parameters)\n", nparams); - if (type >= PNG_EQUATION_LAST) - png_warning(png_ptr, "Unrecognized equation type for pCAL chunk"); - - purpose_len = png_check_keyword(png_ptr, purpose, &new_purpose) + 1; - png_debug1(3, "pCAL purpose length = %d\n", purpose_len); - units_len = png_strlen(units) + (nparams == 0 ? 0 : 1); - png_debug1(3, "pCAL units length = %d\n", units_len); - total_len = purpose_len + units_len + 10; - - params_len = (png_uint_32p)png_malloc(png_ptr, (png_uint_32)(nparams - *sizeof(png_uint_32))); - - /* Find the length of each parameter, making sure we don't count the - null terminator for the last parameter. */ - for (i = 0; i < nparams; i++) - { - params_len[i] = png_strlen(params[i]) + (i == nparams - 1 ? 0 : 1); - png_debug2(3, "pCAL parameter %d length = %d\n", i, params_len[i]); - total_len += (png_size_t)params_len[i]; - } - - png_debug1(3, "pCAL total length = %d\n", total_len); - png_write_chunk_start(png_ptr, png_pCAL, (png_uint_32)total_len); - png_write_chunk_data(png_ptr, (png_bytep)new_purpose, purpose_len); - png_save_int_32(buf, X0); - png_save_int_32(buf + 4, X1); - buf[8] = (png_byte)type; - buf[9] = (png_byte)nparams; - png_write_chunk_data(png_ptr, buf, (png_size_t)10); - png_write_chunk_data(png_ptr, (png_bytep)units, (png_size_t)units_len); - - png_free(png_ptr, new_purpose); - - for (i = 0; i < nparams; i++) - { - png_write_chunk_data(png_ptr, (png_bytep)params[i], - (png_size_t)params_len[i]); - } - - png_free(png_ptr, params_len); - png_write_chunk_end(png_ptr); -} -#endif - -#if defined(PNG_WRITE_pHYs_SUPPORTED) -/* write the pHYs chunk */ -void -png_write_pHYs(png_structp png_ptr, png_uint_32 x_pixels_per_unit, - png_uint_32 y_pixels_per_unit, - int unit_type) -{ - png_byte buf[9]; - - png_debug(1, "in png_write_pHYs\n"); - if (unit_type >= PNG_RESOLUTION_LAST) - png_warning(png_ptr, "Unrecognized unit type for pHYs chunk"); - - png_save_uint_32(buf, x_pixels_per_unit); - png_save_uint_32(buf + 4, y_pixels_per_unit); - buf[8] = (png_byte)unit_type; - - png_write_chunk(png_ptr, png_pHYs, buf, (png_size_t)9); -} -#endif - -#if defined(PNG_WRITE_tIME_SUPPORTED) -/* Write the tIME chunk. Use either png_convert_from_struct_tm() - * or png_convert_from_time_t(), or fill in the structure yourself. - */ -void -png_write_tIME(png_structp png_ptr, png_timep mod_time) -{ - png_byte buf[7]; - - png_debug(1, "in png_write_tIME\n"); - if (mod_time->month > 12 || mod_time->month < 1 || - mod_time->day > 31 || mod_time->day < 1 || - mod_time->hour > 23 || mod_time->second > 60) - { - png_warning(png_ptr, "Invalid time specified for tIME chunk"); - return; - } - - png_save_uint_16(buf, mod_time->year); - buf[2] = mod_time->month; - buf[3] = mod_time->day; - buf[4] = mod_time->hour; - buf[5] = mod_time->minute; - buf[6] = mod_time->second; - - png_write_chunk(png_ptr, png_tIME, buf, (png_size_t)7); -} -#endif - -/* initializes the row writing capability of libpng */ -void -png_write_start_row(png_structp png_ptr) -{ - png_size_t buf_size; - - png_debug(1, "in png_write_start_row\n"); - buf_size = (png_size_t)(((png_ptr->width * png_ptr->usr_channels * - png_ptr->usr_bit_depth + 7) >> 3) + 1); - - /* set up row buffer */ - png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, (png_uint_32)buf_size); - png_ptr->row_buf[0] = PNG_FILTER_VALUE_NONE; - - /* set up filtering buffer, if using this filter */ - if (png_ptr->do_filter & PNG_FILTER_SUB) - { - png_ptr->sub_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->sub_row[0] = PNG_FILTER_VALUE_SUB; - } - - /* We only need to keep the previous row if we are using one of these. */ - if (png_ptr->do_filter & (PNG_FILTER_AVG | PNG_FILTER_UP | PNG_FILTER_PAETH)) - { - /* set up previous row buffer */ - png_ptr->prev_row = (png_bytep)png_malloc(png_ptr, (png_uint_32)buf_size); - png_memset(png_ptr->prev_row, 0, buf_size); - - if (png_ptr->do_filter & PNG_FILTER_UP) - { - png_ptr->up_row = (png_bytep )png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->up_row[0] = PNG_FILTER_VALUE_UP; - } - - if (png_ptr->do_filter & PNG_FILTER_AVG) - { - png_ptr->avg_row = (png_bytep)png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->avg_row[0] = PNG_FILTER_VALUE_AVG; - } - - if (png_ptr->do_filter & PNG_FILTER_PAETH) - { - png_ptr->paeth_row = (png_bytep )png_malloc(png_ptr, - (png_ptr->rowbytes + 1)); - png_ptr->paeth_row[0] = PNG_FILTER_VALUE_PAETH; - } - } - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* if interlaced, we need to set up width and height of pass */ - if (png_ptr->interlaced) - { - if (!(png_ptr->transformations & PNG_INTERLACE)) - { - png_ptr->num_rows = (png_ptr->height + png_pass_yinc[0] - 1 - - png_pass_ystart[0]) / png_pass_yinc[0]; - png_ptr->usr_width = (png_ptr->width + png_pass_inc[0] - 1 - - png_pass_start[0]) / png_pass_inc[0]; - } - else - { - png_ptr->num_rows = png_ptr->height; - png_ptr->usr_width = png_ptr->width; - } - } - else -#endif - { - png_ptr->num_rows = png_ptr->height; - png_ptr->usr_width = png_ptr->width; - } - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - png_ptr->zstream.next_out = png_ptr->zbuf; -} - -/* Internal use only. Called when finished processing a row of data. */ -void -png_write_finish_row(png_structp png_ptr) -{ - int ret; - - png_debug(1, "in png_write_finish_row\n"); - /* next row */ - png_ptr->row_number++; - - /* see if we are done */ - if (png_ptr->row_number < png_ptr->num_rows) - return; - -#ifdef PNG_WRITE_INTERLACING_SUPPORTED - /* if interlaced, go to next pass */ - if (png_ptr->interlaced) - { - png_ptr->row_number = 0; - if (png_ptr->transformations & PNG_INTERLACE) - { - png_ptr->pass++; - } - else - { - /* loop until we find a non-zero width or height pass */ - do - { - png_ptr->pass++; - if (png_ptr->pass >= 7) - break; - png_ptr->usr_width = (png_ptr->width + - png_pass_inc[png_ptr->pass] - 1 - - png_pass_start[png_ptr->pass]) / - png_pass_inc[png_ptr->pass]; - png_ptr->num_rows = (png_ptr->height + - png_pass_yinc[png_ptr->pass] - 1 - - png_pass_ystart[png_ptr->pass]) / - png_pass_yinc[png_ptr->pass]; - if (png_ptr->transformations & PNG_INTERLACE) - break; - } while (png_ptr->usr_width == 0 || png_ptr->num_rows == 0); - - } - - /* reset the row above the image for the next pass */ - if (png_ptr->pass < 7) - { - if (png_ptr->prev_row != NULL) - png_memset(png_ptr->prev_row, 0, - (png_size_t) (((png_uint_32)png_ptr->usr_channels * - (png_uint_32)png_ptr->usr_bit_depth * - png_ptr->width + 7) >> 3) + 1); - return; - } - } -#endif - - /* if we get here, we've just written the last row, so we need - to flush the compressor */ - do - { - /* tell the compressor we are done */ - ret = deflate(&png_ptr->zstream, Z_FINISH); - /* check for an error */ - if (ret != Z_OK && ret != Z_STREAM_END) - { - if (png_ptr->zstream.msg != NULL) - png_error(png_ptr, png_ptr->zstream.msg); - else - png_error(png_ptr, "zlib error"); - } - /* check to see if we need more room */ - if (!(png_ptr->zstream.avail_out) && ret == Z_OK) - { - png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - } - } while (ret != Z_STREAM_END); - - /* write any extra space */ - if (png_ptr->zstream.avail_out < png_ptr->zbuf_size) - { - png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size - - png_ptr->zstream.avail_out); - } - - deflateReset(&png_ptr->zstream); -} - -#if defined(PNG_WRITE_INTERLACING_SUPPORTED) -/* Pick out the correct pixels for the interlace pass. - * The basic idea here is to go through the row with a source - * pointer and a destination pointer (sp and dp), and copy the - * correct pixels for the pass. As the row gets compacted, - * sp will always be >= dp, so we should never overwrite anything. - * See the default: case for the easiest code to understand. - */ -void -png_do_write_interlace(png_row_infop row_info, png_bytep row, int pass) -{ - png_debug(1, "in png_do_write_interlace\n"); - /* we don't have to do anything on the last pass (6) */ -#if defined(PNG_USELESS_TESTS_SUPPORTED) - if (row != NULL && row_info != NULL && pass < 6) -#else - if (pass < 6) -#endif - { - /* each pixel depth is handled separately */ - switch (row_info->pixel_depth) - { - case 1: - { - png_bytep sp; - png_bytep dp; - int shift; - int d; - int value; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - dp = row; - d = 0; - shift = 7; - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - sp = row + (png_size_t)(i >> 3); - value = (int)(*sp >> (7 - (int)(i & 7))) & 0x1; - d |= (value << shift); - - if (shift == 0) - { - shift = 7; - *dp++ = (png_byte)d; - d = 0; - } - else - shift--; - - } - if (shift != 7) - *dp = (png_byte)d; - break; - } - case 2: - { - png_bytep sp; - png_bytep dp; - int shift; - int d; - int value; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - dp = row; - shift = 6; - d = 0; - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - sp = row + (png_size_t)(i >> 2); - value = (*sp >> ((3 - (int)(i & 3)) << 1)) & 0x3; - d |= (value << shift); - - if (shift == 0) - { - shift = 6; - *dp++ = (png_byte)d; - d = 0; - } - else - shift -= 2; - } - if (shift != 6) - *dp = (png_byte)d; - break; - } - case 4: - { - png_bytep sp; - png_bytep dp; - int shift; - int d; - int value; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - - dp = row; - shift = 4; - d = 0; - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - sp = row + (png_size_t)(i >> 1); - value = (*sp >> ((1 - (int)(i & 1)) << 2)) & 0xf; - d |= (value << shift); - - if (shift == 0) - { - shift = 4; - *dp++ = (png_byte)d; - d = 0; - } - else - shift -= 4; - } - if (shift != 4) - *dp = (png_byte)d; - break; - } - default: - { - png_bytep sp; - png_bytep dp; - png_uint_32 i; - png_uint_32 row_width = row_info->width; - png_size_t pixel_bytes; - - /* start at the beginning */ - dp = row; - /* find out how many bytes each pixel takes up */ - pixel_bytes = (row_info->pixel_depth >> 3); - /* loop through the row, only looking at the pixels that - matter */ - for (i = png_pass_start[pass]; i < row_width; - i += png_pass_inc[pass]) - { - /* find out where the original pixel is */ - sp = row + (png_size_t)i * pixel_bytes; - /* move the pixel */ - if (dp != sp) - png_memcpy(dp, sp, pixel_bytes); - /* next pixel */ - dp += pixel_bytes; - } - break; - } - } - /* set new row width */ - row_info->width = (row_info->width + - png_pass_inc[pass] - 1 - - png_pass_start[pass]) / - png_pass_inc[pass]; - row_info->rowbytes = ((row_info->width * - row_info->pixel_depth + 7) >> 3); - } -} -#endif - -/* This filters the row, chooses which filter to use, if it has not already - * been specified by the application, and then writes the row out with the - * chosen filter. - */ -#define PNG_MAXSUM (~((png_uint_32)0) >> 1) -#define PNG_HISHIFT 10 -#define PNG_LOMASK ((png_uint_32)0xffffL) -#define PNG_HIMASK ((png_uint_32)(~PNG_LOMASK >> PNG_HISHIFT)) -void -png_write_find_filter(png_structp png_ptr, png_row_infop row_info) -{ - png_bytep prev_row, best_row, row_buf; - png_uint_32 mins, bpp; - png_byte filter_to_do = png_ptr->do_filter; - png_uint_32 row_bytes = row_info->rowbytes; -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - int num_p_filters = (int)png_ptr->num_prev_filters; -#endif - - png_debug(1, "in png_write_find_filter\n"); - /* find out how many bytes offset each pixel is */ - bpp = (row_info->pixel_depth + 7) / 8; - - prev_row = png_ptr->prev_row; - best_row = row_buf = png_ptr->row_buf; - mins = PNG_MAXSUM; - - /* The prediction method we use is to find which method provides the - * smallest value when summing the absolute values of the distances - * from zero, using anything >= 128 as negative numbers. This is known - * as the "minimum sum of absolute differences" heuristic. Other - * heuristics are the "weighted minimum sum of absolute differences" - * (experimental and can in theory improve compression), and the "zlib - * predictive" method (not implemented yet), which does test compressions - * of lines using different filter methods, and then chooses the - * (series of) filter(s) that give minimum compressed data size (VERY - * computationally expensive). - * - * GRR 980525: consider also - * (1) minimum sum of absolute differences from running average (i.e., - * keep running sum of non-absolute differences & count of bytes) - * [track dispersion, too? restart average if dispersion too large?] - * (1b) minimum sum of absolute differences from sliding average, probably - * with window size <= deflate window (usually 32K) - * (2) minimum sum of squared differences from zero or running average - * (i.e., ~ root-mean-square approach) - */ - - - /* We don't need to test the 'no filter' case if this is the only filter - * that has been chosen, as it doesn't actually do anything to the data. - */ - if (filter_to_do & PNG_FILTER_NONE && - filter_to_do != PNG_FILTER_NONE) - { - png_bytep rp; - png_uint_32 sum = 0; - png_uint_32 i; - int v; - - for (i = 0, rp = row_buf + 1; i < row_bytes; i++, rp++) - { - v = *rp; - sum += (v < 128) ? v : 256 - v; - } - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - png_uint_32 sumhi, sumlo; - int j; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; /* Gives us some footroom */ - - /* Reduce the sum if we match any of the previous rows */ - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_NONE) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - /* Factor in the cost of this filter (this is here for completeness, - * but it makes no sense to have a "cost" for the NONE filter, as - * it has the minimum possible computational cost - none). - */ - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_NONE]) >> - PNG_COST_SHIFT; - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_NONE]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif - mins = sum; - } - - /* sub filter */ - if (filter_to_do == PNG_FILTER_SUB) - /* it's the only filter so no testing is needed */ - { - png_bytep rp, lp, dp; - png_uint_32 i; - for (i = 0, rp = row_buf + 1, dp = png_ptr->sub_row + 1; i < bpp; - i++, rp++, dp++) - { - *dp = *rp; - } - for (lp = row_buf + 1; i < row_bytes; - i++, rp++, lp++, dp++) - { - *dp = (png_byte)(((int)*rp - (int)*lp) & 0xff); - } - best_row = png_ptr->sub_row; - } - - else if (filter_to_do & PNG_FILTER_SUB) - { - png_bytep rp, dp, lp; - png_uint_32 sum = 0, lmins = mins; - png_uint_32 i; - int v; - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - /* We temporarily increase the "minimum sum" by the factor we - * would reduce the sum of this filter, so that we can do the - * early exit comparison without scaling the sum each time. - */ - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_SUB) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->sub_row + 1; i < bpp; - i++, rp++, dp++) - { - v = *dp = *rp; - - sum += (v < 128) ? v : 256 - v; - } - for (lp = row_buf + 1; i < row_info->rowbytes; - i++, rp++, lp++, dp++) - { - v = *dp = (png_byte)(((int)*rp - (int)*lp) & 0xff); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_SUB) - { - sumlo = (sumlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - sumhi = (sumhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - sumhi = (sumhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_SUB]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif - - if (sum < mins) - { - mins = sum; - best_row = png_ptr->sub_row; - } - } - - /* up filter */ - if (filter_to_do == PNG_FILTER_UP) - { - png_bytep rp, dp, pp; - png_uint_32 i; - - for (i = 0, rp = row_buf + 1, dp = png_ptr->up_row + 1, - pp = prev_row + 1; i < row_bytes; - i++, rp++, pp++, dp++) - { - *dp = (png_byte)(((int)*rp - (int)*pp) & 0xff); - } - best_row = png_ptr->up_row; - } - - else if (filter_to_do & PNG_FILTER_UP) - { - png_bytep rp, dp, pp; - png_uint_32 sum = 0, lmins = mins; - png_uint_32 i; - int v; - - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_UP) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->up_row + 1, - pp = prev_row + 1; i < row_bytes; i++) - { - v = *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_UP) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_UP]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif - - if (sum < mins) - { - mins = sum; - best_row = png_ptr->up_row; - } - } - - /* avg filter */ - if (filter_to_do == PNG_FILTER_AVG) - { - png_bytep rp, dp, pp, lp; - png_uint_32 i; - for (i = 0, rp = row_buf + 1, dp = png_ptr->avg_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - *dp++ = (png_byte)(((int)*rp++ - ((int)*pp++ / 2)) & 0xff); - } - for (lp = row_buf + 1; i < row_bytes; i++) - { - *dp++ = (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) - & 0xff); - } - best_row = png_ptr->avg_row; - } - - else if (filter_to_do & PNG_FILTER_AVG) - { - png_bytep rp, dp, pp, lp; - png_uint_32 sum = 0, lmins = mins; - png_uint_32 i; - int v; - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_AVG) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->avg_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - v = *dp++ = (png_byte)(((int)*rp++ - ((int)*pp++ / 2)) & 0xff); - - sum += (v < 128) ? v : 256 - v; - } - for (lp = row_buf + 1; i < row_bytes; i++) - { - v = *dp++ = - (png_byte)(((int)*rp++ - (((int)*pp++ + (int)*lp++) / 2)) & 0xff); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_NONE) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_AVG]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif - - if (sum < mins) - { - mins = sum; - best_row = png_ptr->avg_row; - } - } - - /* Paeth filter */ - if (filter_to_do == PNG_FILTER_PAETH) - { - png_bytep rp, dp, pp, cp, lp; - png_uint_32 i; - for (i = 0, rp = row_buf + 1, dp = png_ptr->paeth_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff); - } - - for (lp = row_buf + 1, cp = prev_row + 1; i < row_bytes; i++) - { - int a, b, c, pa, pb, pc, p; - - b = *pp++; - c = *cp++; - a = *lp++; - - p = b - c; - pc = a - c; - -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; - - *dp++ = (png_byte)(((int)*rp++ - p) & 0xff); - } - best_row = png_ptr->paeth_row; - } - - else if (filter_to_do & PNG_FILTER_PAETH) - { - png_bytep rp, dp, pp, cp, lp; - png_uint_32 sum = 0, lmins = mins; - png_uint_32 i; - int v; - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 lmhi, lmlo; - lmlo = lmins & PNG_LOMASK; - lmhi = (lmins >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_PAETH) - { - lmlo = (lmlo * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - lmlo = (lmlo * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - lmhi = (lmhi * png_ptr->inv_filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - - if (lmhi > PNG_HIMASK) - lmins = PNG_MAXSUM; - else - lmins = (lmhi << PNG_HISHIFT) + lmlo; - } -#endif - - for (i = 0, rp = row_buf + 1, dp = png_ptr->paeth_row + 1, - pp = prev_row + 1; i < bpp; i++) - { - v = *dp++ = (png_byte)(((int)*rp++ - (int)*pp++) & 0xff); - - sum += (v < 128) ? v : 256 - v; - } - - for (lp = row_buf + 1, cp = prev_row + 1; i < row_bytes; i++) - { - int a, b, c, pa, pb, pc, p; - - b = *pp++; - c = *cp++; - a = *lp++; - -#ifndef PNG_SLOW_PAETH - p = b - c; - pc = a - c; -#ifdef PNG_USE_ABS - pa = abs(p); - pb = abs(pc); - pc = abs(p + pc); -#else - pa = p < 0 ? -p : p; - pb = pc < 0 ? -pc : pc; - pc = (p + pc) < 0 ? -(p + pc) : p + pc; -#endif - p = (pa <= pb && pa <=pc) ? a : (pb <= pc) ? b : c; -#else /* PNG_SLOW_PAETH */ - p = a + b - c; - pa = abs(p - a); - pb = abs(p - b); - pc = abs(p - c); - if (pa <= pb && pa <= pc) - p = a; - else if (pb <= pc) - p = b; - else - p = c; -#endif /* PNG_SLOW_PAETH */ - - v = *dp++ = (png_byte)(((int)*rp++ - p) & 0xff); - - sum += (v < 128) ? v : 256 - v; - - if (sum > lmins) /* We are already worse, don't continue. */ - break; - } - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - if (png_ptr->heuristic_method == PNG_FILTER_HEURISTIC_WEIGHTED) - { - int j; - png_uint_32 sumhi, sumlo; - sumlo = sum & PNG_LOMASK; - sumhi = (sum >> PNG_HISHIFT) & PNG_HIMASK; - - for (j = 0; j < num_p_filters; j++) - { - if (png_ptr->prev_filters[j] == PNG_FILTER_VALUE_PAETH) - { - sumlo = (sumlo * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - sumhi = (sumhi * png_ptr->filter_weights[j]) >> - PNG_WEIGHT_SHIFT; - } - } - - sumlo = (sumlo * png_ptr->filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - sumhi = (sumhi * png_ptr->filter_costs[PNG_FILTER_VALUE_PAETH]) >> - PNG_COST_SHIFT; - - if (sumhi > PNG_HIMASK) - sum = PNG_MAXSUM; - else - sum = (sumhi << PNG_HISHIFT) + sumlo; - } -#endif - - if (sum < mins) - { - best_row = png_ptr->paeth_row; - } - } - - /* Do the actual writing of the filtered row data from the chosen filter. */ - - png_write_filtered_row(png_ptr, best_row); - -#if defined(PNG_WRITE_WEIGHTED_FILTER_SUPPORTED) - /* Save the type of filter we picked this time for future calculations */ - if (png_ptr->num_prev_filters > 0) - { - int j; - for (j = 1; j < num_p_filters; j++) - { - png_ptr->prev_filters[j] = png_ptr->prev_filters[j - 1]; - } - png_ptr->prev_filters[j] = best_row[0]; - } -#endif -} - - -/* Do the actual writing of a previously filtered row. */ -void -png_write_filtered_row(png_structp png_ptr, png_bytep filtered_row) -{ - png_debug(1, "in png_write_filtered_row\n"); - png_debug1(2, "filter = %d\n", filtered_row[0]); - /* set up the zlib input buffer */ - png_ptr->zstream.next_in = filtered_row; - png_ptr->zstream.avail_in = (uInt)png_ptr->row_info.rowbytes + 1; - /* repeat until we have compressed all the data */ - do - { - int ret; /* return of zlib */ - - /* compress the data */ - ret = deflate(&png_ptr->zstream, Z_NO_FLUSH); - /* check for compression errors */ - if (ret != Z_OK) - { - if (png_ptr->zstream.msg != NULL) - png_error(png_ptr, png_ptr->zstream.msg); - else - png_error(png_ptr, "zlib error"); - } - - /* see if it is time to write another IDAT */ - if (!(png_ptr->zstream.avail_out)) - { - /* write the IDAT and reset the zlib output buffer */ - png_write_IDAT(png_ptr, png_ptr->zbuf, png_ptr->zbuf_size); - png_ptr->zstream.next_out = png_ptr->zbuf; - png_ptr->zstream.avail_out = (uInt)png_ptr->zbuf_size; - } - /* repeat until all data has been compressed */ - } while (png_ptr->zstream.avail_in); - - /* swap the current and previous rows */ - if (png_ptr->prev_row != NULL) - { - png_bytep tptr; - - tptr = png_ptr->prev_row; - png_ptr->prev_row = png_ptr->row_buf; - png_ptr->row_buf = tptr; - } - - /* finish row - updates counters and flushes zlib if last row */ - png_write_finish_row(png_ptr); - -#if defined(PNG_WRITE_FLUSH_SUPPORTED) - png_ptr->flush_rows++; - - if (png_ptr->flush_dist > 0 && - png_ptr->flush_rows >= png_ptr->flush_dist) - { - png_write_flush(png_ptr); - } -#endif /* PNG_WRITE_FLUSH_SUPPORTED */ -} diff --git a/src/png/scripts/SCOPTIONS.ppc b/src/png/scripts/SCOPTIONS.ppc deleted file mode 100644 index 2c3503e9eb..0000000000 --- a/src/png/scripts/SCOPTIONS.ppc +++ /dev/null @@ -1,7 +0,0 @@ -OPTIMIZE -OPTPEEP -OPTTIME -OPTSCHED -AUTOREGISTER -PARMS=REGISTERS -INCLUDEDIR=hlp:ppc/include diff --git a/src/png/scripts/build.bat b/src/png/scripts/build.bat deleted file mode 100644 index ec34b6f035..0000000000 --- a/src/png/scripts/build.bat +++ /dev/null @@ -1,2 +0,0 @@ -make -fmakefile.bor -B -DMODEL=m %1 %2 %3 libpng >buildm.out -make -fmakefile.bor -B -DMODEL=l %1 %2 %3 libpng >buildl.out diff --git a/src/png/scripts/descrip.mms b/src/png/scripts/descrip.mms deleted file mode 100644 index 3584b0d782..0000000000 --- a/src/png/scripts/descrip.mms +++ /dev/null @@ -1,52 +0,0 @@ - -cc_defs = /inc=$(ZLIBSRC) -c_deb = - -.ifdef __DECC__ -pref = /prefix=all -.endif - - - -OBJS = png.obj, pngset.obj, pngget.obj, pngrutil.obj, pngtrans.obj,\ - pngwutil.obj, pngread.obj, pngmem.obj, pngwrite.obj, pngrtran.obj,\ - pngwtran.obj, pngrio.obj, pngwio.obj, pngerror.obj, pngpread.obj - - -CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF) - -all : pngtest.exe libpng.olb - @ write sys$output " pngtest available" - -libpng.olb : libpng.olb($(OBJS)) - @ write sys$output " Libpng available" - - -pngtest.exe : pngtest.obj libpng.olb - link pngtest,libpng.olb/lib,$(ZLIBSRC)libz.olb/lib - -test : pngtest.exe - run pngtest - -clean : - delete *.obj;*,*.exe;* - - -# Other dependencies. -png.obj : png.h, pngconf.h -pngpread.obj : png.h, pngconf.h -pngset.obj : png.h, pngconf.h -pngget.obj : png.h, pngconf.h -pngread.obj : png.h, pngconf.h -pngrtran.obj : png.h, pngconf.h -pngrutil.obj : png.h, pngconf.h -pngerror.obj : png.h, pngconf.h -pngmem.obj : png.h, pngconf.h -pngrio.obj : png.h, pngconf.h -pngwio.obj : png.h, pngconf.h -pngtest.obj : png.h, pngconf.h -pngtrans.obj : png.h, pngconf.h -pngwrite.obj : png.h, pngconf.h -pngwtran.obj : png.h, pngconf.h -pngwutil.obj : png.h, pngconf.h - diff --git a/src/png/scripts/makefile.aco b/src/png/scripts/makefile.aco deleted file mode 100644 index 2cb089879b..0000000000 --- a/src/png/scripts/makefile.aco +++ /dev/null @@ -1,221 +0,0 @@ -# Project: libpng - - -# Toolflags: -CCflags = -c -depend !Depend -IC:,Zlib: -g -throwback -DRISCOS -fnah -C++flags = -c -depend !Depend -IC: -throwback -Linkflags = -aif -c++ -o $@ -ObjAsmflags = -throwback -NoCache -depend !Depend -CMHGflags = -LibFileflags = -c -l -o $@ -Squeezeflags = -o $@ - - -# Final targets: -@.libpng-lib: @.o.png @.o.pngerror @.o.pngrio @.o.pngwio @.o.pngmem \ - @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngrtran \ - @.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil - LibFile $(LibFileflags) @.o.png @.o.pngerror @.o.pngrio @.o.pngrtran \ - @.o.pngmem @.o.pngpread @.o.pngset @.o.pngget @.o.pngread @.o.pngwio \ - @.o.pngrutil @.o.pngtrans @.o.pngwrite @.o.pngwtran @.o.pngwutil -@.mm-libpng-lib: @.mm.png @.mm.pngerror @.mm.pngrio @.mm.pngwio @.mm.pngmem \ - @.mm.pngpread @.mm.pngset @.mm.pngget @.mm.pngread @.mm.pngrtran \ - @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite @.mm.pngwtran @.mm.pngwutil - LibFile $(LibFileflags) @.mm.png @.mm.pngerror @.mm.pngrio \ - @.mm.pngwio @.mm.pngmem @.mm.pngpread @.mm.pngset @.mm.pngget \ - @.mm.pngread @.mm.pngrtran @.mm.pngrutil @.mm.pngtrans @.mm.pngwrite \ - @.mm.pngwtran @.mm.pngwutil - - -# User-editable dependencies: -# (C) Copyright 1997 Tom Tanner -Test: @.pngtest - .pngtest - @remove .pngtest - -#It would be nice if you could stop "make" listing from here on! -@.pngtest: @.o.pngtest @.libpng-lib C:o.Stubs Zlib:zlib_lib - Link $(Linkflags) @.o.pngtest @.libpng-lib C:o.Stubs Zlib:zlib_lib - -.SUFFIXES: .o .mm .c - -.c.mm: - MemCheck.CC cc $(ccflags) -o $@ LibPng:$< -.c.o: - cc $(ccflags) -o $@ $< - - -# Static dependencies: - - -# Dynamic dependencies: -o.pngtest: c.pngtest -o.pngtest: h.png -o.pngtest: Zlib:h.zlib -o.pngtest: Zlib:h.zconf -o.pngtest: h.pngconf -mm.png: LibPng:c.png -mm.png: LibPng:h.png -mm.png: Zlib:h.zlib -mm.png: Zlib:h.zconf -mm.png: LibPng:h.pngconf -mm.png: MemCheck:ANSI.h.stdio -mm.pngerror: LibPng:c.pngerror -mm.pngerror: LibPng:h.png -mm.pngerror: Zlib:h.zlib -mm.pngerror: Zlib:h.zconf -mm.pngerror: LibPng:h.pngconf -mm.pngerror: MemCheck:ANSI.h.stdio -mm.pngrio: LibPng:c.pngrio -mm.pngrio: LibPng:h.png -mm.pngrio: Zlib:h.zlib -mm.pngrio: Zlib:h.zconf -mm.pngrio: LibPng:h.pngconf -mm.pngrio: MemCheck:ANSI.h.stdio -mm.pngwio: LibPng:c.pngwio -mm.pngwio: LibPng:h.png -mm.pngwio: Zlib:h.zlib -mm.pngwio: Zlib:h.zconf -mm.pngwio: LibPng:h.pngconf -mm.pngwio: MemCheck:ANSI.h.stdio -mm.pngmem: LibPng:c.pngmem -mm.pngmem: LibPng:h.png -mm.pngmem: Zlib:h.zlib -mm.pngmem: Zlib:h.zconf -mm.pngmem: LibPng:h.pngconf -mm.pngmem: MemCheck:ANSI.h.stdio -mm.pngpread: LibPng:c.pngpread -mm.pngpread: LibPng:h.png -mm.pngpread: Zlib:h.zlib -mm.pngpread: Zlib:h.zconf -mm.pngpread: LibPng:h.pngconf -mm.pngpread: MemCheck:ANSI.h.stdio -mm.pngset: LibPng:c.pngset -mm.pngset: LibPng:h.png -mm.pngset: Zlib:h.zlib -mm.pngset: Zlib:h.zconf -mm.pngset: LibPng:h.pngconf -mm.pngset: MemCheck:ANSI.h.stdio -mm.pngget: LibPng:c.pngget -mm.pngget: LibPng:h.png -mm.pngget: Zlib:h.zlib -mm.pngget: Zlib:h.zconf -mm.pngget: LibPng:h.pngconf -mm.pngget: MemCheck:ANSI.h.stdio -mm.pngread: LibPng:c.pngread -mm.pngread: LibPng:h.png -mm.pngread: Zlib:h.zlib -mm.pngread: Zlib:h.zconf -mm.pngread: LibPng:h.pngconf -mm.pngread: MemCheck:ANSI.h.stdio -mm.pngrtran: LibPng:c.pngrtran -mm.pngrtran: LibPng:h.png -mm.pngrtran: Zlib:h.zlib -mm.pngrtran: Zlib:h.zconf -mm.pngrtran: LibPng:h.pngconf -mm.pngrtran: MemCheck:ANSI.h.stdio -mm.pngrutil: LibPng:c.pngrutil -mm.pngrutil: LibPng:h.png -mm.pngrutil: Zlib:h.zlib -mm.pngrutil: Zlib:h.zconf -mm.pngrutil: LibPng:h.pngconf -mm.pngrutil: MemCheck:ANSI.h.stdio -mm.pngtrans: LibPng:c.pngtrans -mm.pngtrans: LibPng:h.png -mm.pngtrans: Zlib:h.zlib -mm.pngtrans: Zlib:h.zconf -mm.pngtrans: LibPng:h.pngconf -mm.pngtrans: MemCheck:ANSI.h.stdio -mm.pngwrite: LibPng:c.pngwrite -mm.pngwrite: LibPng:h.png -mm.pngwrite: Zlib:h.zlib -mm.pngwrite: Zlib:h.zconf -mm.pngwrite: LibPng:h.pngconf -mm.pngwrite: MemCheck:ANSI.h.stdio -mm.pngwtran: LibPng:c.pngwtran -mm.pngwtran: LibPng:h.png -mm.pngwtran: Zlib:h.zlib -mm.pngwtran: Zlib:h.zconf -mm.pngwtran: LibPng:h.pngconf -mm.pngwtran: MemCheck:ANSI.h.stdio -mm.pngwutil: LibPng:c.pngwutil -mm.pngwutil: LibPng:h.png -mm.pngwutil: Zlib:h.zlib -mm.pngwutil: Zlib:h.zconf -mm.pngwutil: LibPng:h.pngconf -mm.pngwutil: MemCheck:ANSI.h.stdio -o.png: c.png -o.png: h.png -o.png: Zlib:h.zlib -o.png: Zlib:h.zconf -o.png: h.pngconf -o.pngerror: c.pngerror -o.pngerror: h.png -o.pngerror: Zlib:h.zlib -o.pngerror: Zlib:h.zconf -o.pngerror: h.pngconf -o.pngrio: c.pngrio -o.pngrio: h.png -o.pngrio: Zlib:h.zlib -o.pngrio: Zlib:h.zconf -o.pngrio: h.pngconf -o.pngwio: c.pngwio -o.pngwio: h.png -o.pngwio: Zlib:h.zlib -o.pngwio: Zlib:h.zconf -o.pngwio: h.pngconf -o.pngmem: c.pngmem -o.pngmem: h.png -o.pngmem: Zlib:h.zlib -o.pngmem: Zlib:h.zconf -o.pngmem: h.pngconf -o.pngpread: c.pngpread -o.pngpread: h.png -o.pngpread: Zlib:h.zlib -o.pngpread: Zlib:h.zconf -o.pngpread: h.pngconf -o.pngset: c.pngset -o.pngset: h.png -o.pngset: Zlib:h.zlib -o.pngset: Zlib:h.zconf -o.pngset: h.pngconf -o.pngget: c.pngget -o.pngget: h.png -o.pngget: Zlib:h.zlib -o.pngget: Zlib:h.zconf -o.pngget: h.pngconf -o.pngread: c.pngread -o.pngread: h.png -o.pngread: Zlib:h.zlib -o.pngread: Zlib:h.zconf -o.pngread: h.pngconf -o.pngrtran: c.pngrtran -o.pngrtran: h.png -o.pngrtran: Zlib:h.zlib -o.pngrtran: Zlib:h.zconf -o.pngrtran: h.pngconf -o.pngrutil: c.pngrutil -o.pngrutil: h.png -o.pngrutil: Zlib:h.zlib -o.pngrutil: Zlib:h.zconf -o.pngrutil: h.pngconf -o.pngtrans: c.pngtrans -o.pngtrans: h.png -o.pngtrans: Zlib:h.zlib -o.pngtrans: Zlib:h.zconf -o.pngtrans: h.pngconf -o.pngwrite: c.pngwrite -o.pngwrite: h.png -o.pngwrite: Zlib:h.zlib -o.pngwrite: Zlib:h.zconf -o.pngwrite: h.pngconf -o.pngwtran: c.pngwtran -o.pngwtran: h.png -o.pngwtran: Zlib:h.zlib -o.pngwtran: Zlib:h.zconf -o.pngwtran: h.pngconf -o.pngwutil: c.pngwutil -o.pngwutil: h.png -o.pngwutil: Zlib:h.zlib -o.pngwutil: Zlib:h.zconf -o.pngwutil: h.pngconf diff --git a/src/png/scripts/makefile.ama b/src/png/scripts/makefile.ama deleted file mode 100644 index 366524d5c8..0000000000 --- a/src/png/scripts/makefile.ama +++ /dev/null @@ -1,42 +0,0 @@ -# Commodore Amiga Makefile -# makefile for libpng and SAS C V6.55 compiler -# Copyright (C) 1995 Wolf Faust - -#compiler -CC=sc -#compiler flags -# WARNING: a bug in V6.51 causes bad code with OPTGO -# So use V6.55 or set NOOPTGO!!!!!!!!! -CFLAGS= NOSTKCHK PARMS=REG OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL\ - OPTLOOP OPTRDEP=4 OPTDEP=4 OPTCOMP=4 DEFINE=PNG_INTERNAL -#linker flags -LDFLAGS= SD ND BATCH -#link libs -LDLIBS= libpng.lib libgz.lib LIB:scm.lib LIB:sc.lib Lib:amiga.lib -# linker -LN= slink -# file deletion command -RM= delete quiet -# library (.lib) file creation command -AR= oml -# make directory command -MKDIR= makedir - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngpread.o \ -pngread.o pngerror.o pngwrite.o pngrtran.o pngwtran.o pngrio.o pngwio.o pngmem.o - -all: libpng.lib pngtest - -libpng.lib: $(OBJS) --$(RM) libpng.lib -$(AR) libpng.lib r $(OBJS) - -pngtest: pngtest.o libpng.lib -$(LN) > pngerrs - -# variables -OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O) -OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O) -OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) - -all: libpng.lib - -png$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngset$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngget$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngread$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngpread$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngrtran$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngrutil$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngerror$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngmem$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngrio$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngwio$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngtest$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngtrans$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngwrite$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngwtran$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -pngwutil$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c $(ERRFILE) - -libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3) - del libpng.lib - lib libpng $(OBJS1); - lib libpng $(OBJS2); - lib libpng $(OBJS3); - -pngtest.exe: pngtest.obj libpng.lib - $(LD) $(LDFLAGS) pngtest.obj,,,libpng.lib ..\zlib\zlib.lib ; - -test: pngtest.exe - pngtest - -# End of makefile for libpng - diff --git a/src/png/scripts/makefile.os2 b/src/png/scripts/makefile.os2 deleted file mode 100644 index a3ff2dcac6..0000000000 --- a/src/png/scripts/makefile.os2 +++ /dev/null @@ -1,69 +0,0 @@ -# makefile for libpng on OS/2 with gcc -# For conditions of distribution and use, see copyright notice in png.h - -# Related files: pngos2.def - -CC=gcc -Zomf -s - -# Where the zlib library and include files are located -ZLIBLIB=../zlib -ZLIBINC=../zlib - -WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ - -Wmissing-declarations -Wtraditional -Wcast-align \ - -Wstrict-prototypes -Wmissing-prototypes #-Wconversion -CFLAGS=-I$(ZLIBINC) -Wall -O6 -funroll-loops -malign-loops=2 \ - -malign-functions=2 #$(WARNMORE) -g -DPNG_DEBUG=5 -LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lzdll -Zcrtdll -AR=emxomfar - -PNGLIB=png.lib -IMPLIB=emximp -SHAREDLIB=png.dll -SHAREDLIBIMP=pngdll.lib - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -.SUFFIXES: .c .o - -all: $(PNGLIB) $(SHAREDLIB) $(SHAREDLIBIMP) - -$(PNGLIB): $(OBJS) - $(AR) rc $@ $(OBJS) - -$(SHAREDLIB): $(OBJS) pngos2.def - $(CC) $(LDFLAGS) -Zdll -o $@ $^ - -$(SHAREDLIBIMP): pngos2.def - $(IMPLIB) -o $@ $^ - -pngtest.exe: pngtest.o png.dll pngdll.lib - $(CC) -o $@ $(CFLAGS) $< $(LDFLAGS) - -test: pngtest.exe - ./pngtest.exe - -clean: - rm -f *.o $(PNGLIB) png.dll pngdll.lib pngtest.exe pngout.png - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o png.pic.o: png.h pngconf.h -pngerror.o pngerror.pic.o: png.h pngconf.h -pngrio.o pngrio.pic.o: png.h pngconf.h -pngwio.o pngwio.pic.o: png.h pngconf.h -pngmem.o pngmem.pic.o: png.h pngconf.h -pngset.o pngset.pic.o: png.h pngconf.h -pngget.o pngget.pic.o: png.h pngconf.h -pngread.o pngread.pic.o: png.h pngconf.h -pngrtran.o pngrtran.pic.o: png.h pngconf.h -pngrutil.o pngrutil.pic.o: png.h pngconf.h -pngtrans.o pngtrans.pic.o: png.h pngconf.h -pngwrite.o pngwrite.pic.o: png.h pngconf.h -pngwtran.o pngwtran.pic.o: png.h pngconf.h -pngwutil.o pngwutil.pic.o: png.h pngconf.h -pngpread.o pngpread.pic.o: png.h pngconf.h - -pngtest.o: png.h pngconf.h diff --git a/src/png/scripts/makefile.s2x b/src/png/scripts/makefile.s2x deleted file mode 100644 index 163f363826..0000000000 --- a/src/png/scripts/makefile.s2x +++ /dev/null @@ -1,104 +0,0 @@ -# makefile for libpng on Solaris 2.x with gcc -# Contributed by William L. Sebok, based on makefile.lnx -# Copyright (C) 1996, 1997 Andreas Dilger -# Copyright (C) 1998 Greg Roelofs -# For conditions of distribution and use, see copyright notice in png.h - -CC=gcc - -# Where the zlib library and include files are located -# Changing these to ../zlib poses a security risk. If you want -# to have zlib in an adjacent directory, specify the full path instead of "..". -#ZLIBLIB=../zlib -#ZLIBINC=../zlib - -ZLIBLIB=/usr/local/lib -ZLIBINC=/usr/local/include - - -WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow \ - -Wmissing-declarations -Wtraditional -Wcast-align \ - -Wstrict-prototypes -Wmissing-prototypes #-Wconversion -CFLAGS=-I$(ZLIBINC) -Wall -O3 \ - #$(WARNMORE) -g -DPNG_DEBUG=5 -LDFLAGS=-L. -R. -L$(ZLIBLIB) -R$(ZLIBLIB) -lpng -lz -lm - -#RANLIB=ranlib -RANLIB=echo - -# read libpng.txt or png.h to see why PNGMAJ is 2. You should not -# have to change it. -PNGMAJ = 2 -PNGMIN = 1.0 -PNGVER = $(PNGMAJ).$(PNGMIN) - -# where make install puts libpng.a, libpng.so*, and png.h -prefix=/usr/local -INCPATH=$(prefix)/include -LIBPATH=$(prefix)/lib - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -OBJSDLL = $(OBJS:.o=.pic.o) - -.SUFFIXES: .c .o .pic.o - -.c.pic.o: - $(CC) -c $(CFLAGS) -fPIC -o $@ $*.c - -all: libpng.a libpng.so pngtest - -libpng.a: $(OBJS) - ar rc $@ $(OBJS) - $(RANLIB) $@ - -libpng.so: libpng.so.$(PNGMAJ) - ln -sf libpng.so.$(PNGMAJ) libpng.so - -libpng.so.$(PNGMAJ): libpng.so.$(PNGVER) - ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ) - -libpng.so.$(PNGVER): $(OBJSDLL) - $(LD) -G -L$(ZLIBLIB) -R$(ZLIBLIB) -h libpng.so.$(PNGMAJ) \ - -o libpng.so.$(PNGVER) $(OBJSDLL) -lz - -pngtest: pngtest.o libpng.so - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -test: pngtest - ./pngtest - -install: libpng.a libpng.so.$(PNGVER) - -@mkdir $(INCPATH) $(LIBPATH) - cp png.h pngconf.h $(INCPATH) - chmod 644 $(INCPATH)/png.h $(INCPATH)/pngconf.h - cp libpng.a libpng.so.$(PNGVER) $(LIBPATH) - chmod 755 $(LIBPATH)/libpng.so.$(PNGVER) - -@/bin/rm -f $(LIBPATH)/libpng.so.$(PNGMAJ) $(LIBPATH)/libpng.so - (cd $(LIBPATH); ln -sf libpng.so.$(PNGVER) libpng.so.$(PNGMAJ); \ - ln -sf libpng.so.$(PNGMAJ) libpng.so) - -clean: - /bin/rm -f *.o libpng.a libpng.so* pngtest pngout.png - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o png.pic.o: png.h pngconf.h -pngerror.o pngerror.pic.o: png.h pngconf.h -pngrio.o pngrio.pic.o: png.h pngconf.h -pngwio.o pngwio.pic.o: png.h pngconf.h -pngmem.o pngmem.pic.o: png.h pngconf.h -pngset.o pngset.pic.o: png.h pngconf.h -pngget.o pngget.pic.o: png.h pngconf.h -pngread.o pngread.pic.o: png.h pngconf.h -pngrtran.o pngrtran.pic.o: png.h pngconf.h -pngrutil.o pngrutil.pic.o: png.h pngconf.h -pngtrans.o pngtrans.pic.o: png.h pngconf.h -pngwrite.o pngwrite.pic.o: png.h pngconf.h -pngwtran.o pngwtran.pic.o: png.h pngconf.h -pngwutil.o pngwutil.pic.o: png.h pngconf.h -pngpread.o pngpread.pic.o: png.h pngconf.h - -pngtest.o: png.h pngconf.h diff --git a/src/png/scripts/makefile.sgi b/src/png/scripts/makefile.sgi deleted file mode 100644 index 965cf91fd0..0000000000 --- a/src/png/scripts/makefile.sgi +++ /dev/null @@ -1,69 +0,0 @@ -# makefile for libpng -# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. -# For conditions of distribution and use, see copyright notice in png.h - -# Where the zlib library and include files are located -#ZLIBLIB=/usr/local/lib -#ZLIBINC=/usr/local/include -ZLIBLIB=../zlib -ZLIBINC=../zlib - -CC=cc - -CFLAGS=-I$(ZLIBINC) -O -fullwarn # -g -DPNG_DEBUG=1 -LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm - -RANLIB=echo -#RANLIB=ranlib - -# where make install puts libpng.a and png.h -prefix=/usr/local - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -all: libpng.a pngtest - -libpng.a: $(OBJS) - ar rc $@ $(OBJS) - $(RANLIB) $@ - -pngtest: pngtest.o libpng.a - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -test: pngtest - ./pngtest - -install: libpng.a - -@mkdir $(prefix)/include - -@mkdir $(prefix)/lib - cp png.h $(prefix)/include - cp pngconf.h $(prefix)/include - chmod 644 $(prefix)/include/png.h - chmod 644 $(prefix)/include/pngconf.h - cp libpng.a $(prefix)/lib - chmod 644 $(prefix)/lib/libpng.a - -clean: - rm -f *.o libpng.a pngtest pngout.png - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o: png.h pngconf.h -pngerror.o: png.h pngconf.h -pngrio.o: png.h pngconf.h -pngwio.o: png.h pngconf.h -pngmem.o: png.h pngconf.h -pngset.o: png.h pngconf.h -pngget.o: png.h pngconf.h -pngread.o: png.h pngconf.h -pngrtran.o: png.h pngconf.h -pngrutil.o: png.h pngconf.h -pngtest.o: png.h pngconf.h -pngtrans.o: png.h pngconf.h -pngwrite.o: png.h pngconf.h -pngwtran.o: png.h pngconf.h -pngwutil.o: png.h pngconf.h -pngpread.o: png.h pngconf.h - diff --git a/src/png/scripts/makefile.std b/src/png/scripts/makefile.std deleted file mode 100644 index 7cc605990a..0000000000 --- a/src/png/scripts/makefile.std +++ /dev/null @@ -1,68 +0,0 @@ -# makefile for libpng -# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. -# For conditions of distribution and use, see copyright notice in png.h - -# Where the zlib library and include files are located -#ZLIBLIB=/usr/local/lib -#ZLIBINC=/usr/local/include -ZLIBLIB=../zlib -ZLIBINC=../zlib - -CC=cc -CFLAGS=-I$(ZLIBINC) -O # -g -DPNG_DEBUG=1 -LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm - -#RANLIB=echo -RANLIB=ranlib - -# where make install puts libpng.a and png.h -prefix=/usr/local - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -all: libpng.a pngtest - -libpng.a: $(OBJS) - ar rc $@ $(OBJS) - $(RANLIB) $@ - -pngtest: pngtest.o libpng.a - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -test: pngtest - ./pngtest - -install: libpng.a - -@mkdir $(prefix)/include - -@mkdir $(prefix)/lib - cp png.h $(prefix)/include - cp pngconf.h $(prefix)/include - chmod 644 $(prefix)/include/png.h - chmod 644 $(prefix)/include/pngconf.h - cp libpng.a $(prefix)/lib - chmod 644 $(prefix)/lib/libpng.a - -clean: - rm -f *.o libpng.a pngtest pngout.png - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o: png.h pngconf.h -pngerror.o: png.h pngconf.h -pngrio.o: png.h pngconf.h -pngwio.o: png.h pngconf.h -pngmem.o: png.h pngconf.h -pngset.o: png.h pngconf.h -pngget.o: png.h pngconf.h -pngread.o: png.h pngconf.h -pngrtran.o: png.h pngconf.h -pngrutil.o: png.h pngconf.h -pngtest.o: png.h pngconf.h -pngtrans.o: png.h pngconf.h -pngwrite.o: png.h pngconf.h -pngwtran.o: png.h pngconf.h -pngwutil.o: png.h pngconf.h -pngpread.o: png.h pngconf.h - diff --git a/src/png/scripts/makefile.sun b/src/png/scripts/makefile.sun deleted file mode 100644 index 975ca17232..0000000000 --- a/src/png/scripts/makefile.sun +++ /dev/null @@ -1,72 +0,0 @@ -# makefile for libpng -# Copyright (C) 1995 Guy Eric Schalnat, Group 42, Inc. -# For conditions of distribution and use, see copyright notice in png.h - -# Where the zlib library and include files are located -#ZLIBLIB=/usr/local/lib -#ZLIBINC=/usr/local/include -ZLIBLIB=../zlib -ZLIBINC=../zlib - - -WARNMORE=-Wwrite-strings -Wpointer-arith -Wshadow -Wconversion \ - -Wmissing-declarations -Wtraditional -Wcast-align \ - -Wstrict-prototypes -Wmissing-prototypes -CC=gcc -CFLAGS=-I$(ZLIBINC) -O $(WARNMORE) -DPNG_DEBUG=4 -LDFLAGS=-L. -L$(ZLIBLIB) -lpng -lz -lm - -RANLIB=ranlib -#RANLIB=echo - -# where make install puts libpng.a and png.h -prefix=/usr/local - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o \ - pngread.o pngrio.o pngwio.o pngwrite.o pngrtran.o \ - pngwtran.o pngmem.o pngerror.o pngpread.o - -all: libpng.a pngtest - -libpng.a: $(OBJS) - ar rc $@ $(OBJS) - $(RANLIB) $@ - -pngtest: pngtest.o libpng.a - $(CC) -o pngtest $(CFLAGS) pngtest.o $(LDFLAGS) - -test: pngtest - ./pngtest - -install: libpng.a - -@mkdir $(prefix)/include - -@mkdir $(prefix)/lib - cp png.h $(prefix)/include - cp pngconf.h $(prefix)/include - chmod 644 $(prefix)/include/png.h - chmod 644 $(prefix)/include/pngconf.h - cp libpng.a $(prefix)/lib - chmod 644 $(prefix)/lib/libpng.a - -clean: - rm -f *.o libpng.a pngtest pngout.png - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -png.o: png.h pngconf.h -pngerror.o: png.h pngconf.h -pngrio.o: png.h pngconf.h -pngwio.o: png.h pngconf.h -pngmem.o: png.h pngconf.h -pngset.o: png.h pngconf.h -pngget.o: png.h pngconf.h -pngread.o: png.h pngconf.h -pngrtran.o: png.h pngconf.h -pngrutil.o: png.h pngconf.h -pngtest.o: png.h pngconf.h -pngtrans.o: png.h pngconf.h -pngwrite.o: png.h pngconf.h -pngwtran.o: png.h pngconf.h -pngwutil.o: png.h pngconf.h -pngpread.o: png.h pngconf.h - diff --git a/src/png/scripts/makefile.tc3 b/src/png/scripts/makefile.tc3 deleted file mode 100644 index 6f8f36667f..0000000000 --- a/src/png/scripts/makefile.tc3 +++ /dev/null @@ -1,82 +0,0 @@ -# Makefile for libpng -# TurboC++ 3.0 (Note: All modules are compiled in C mode) - -# To use, do "make -fmakefile.tc3" - -# ------------- Turbo C++ 3.0 ------------- -MODEL=-ml -CFLAGS=-O2 -Z $(MODEL) -I..\zlib -CC=tcc -LD=tcc -LIB=tlib -LDFLAGS=$(MODEL) -L..\zlib -O=.obj -E=.exe - -# variables -OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O) -OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O) -OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) -OBJSL1 = +png$(O) +pngset$(O) +pngget$(O) +pngrutil$(O) +pngtrans$(O) -OBJSL2 = +pngwutil$(O) +pngmem$(O) +pngpread$(O) +pngread$(O) +pngerror$(O) -OBJSL3 = +pngwrite$(O) +pngrtran$(O) +pngwtran$(O) +pngrio$(O) +pngwio$(O) - -all: libpng.lib pngtest.exe - -png$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngset$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngget$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngread$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngpread$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngrtran$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngrutil$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngerror$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngmem$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngrio$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngwio$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngtest$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngtrans$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngwrite$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngwtran$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -pngwutil$(O): png.h pngconf.h - $(CC) -c $(CFLAGS) $*.c - -libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3) - $(LIB) libpng +$(OBJSL1) - $(LIB) libpng +$(OBJSL2) - $(LIB) libpng +$(OBJSL3) - -pngtest$(E): pngtest$(O) libpng.lib - $(CC) $(LDFLAGS) pngtest.obj libpng.lib zlib.lib - -# End of makefile for libpng diff --git a/src/png/scripts/makefile.wat b/src/png/scripts/makefile.wat deleted file mode 100644 index a715acbcdc..0000000000 --- a/src/png/scripts/makefile.wat +++ /dev/null @@ -1,88 +0,0 @@ -# Makefile for libpng -# Watcom 10a and later 32-bit protected mode flat memory model - -# Adapted by Pawel Mrochen, based on makefile.msc -# For conditions of distribution and use, see copyright notice in png.h -# Assumes that zlib.lib, zconf.h, and zlib.h have been copied to ..\zlib - -# To use, do "wmake -f makefile.wat" - -# ------------- Watcom 10a and later ------------- -MODEL=-mf -CFLAGS= $(MODEL) -fpi87 -fp5 -5r -oaeilmnrt -s -zp4 -i=..\zlib -CC=wcc386 -LD=wcl386 -LIB=wlib -b -c -LDFLAGS= -O=.obj - -#uncomment next to put error messages in a file -#ERRFILE= >> pngerrs - -# variables -OBJS1 = png$(O) pngset$(O) pngget$(O) pngrutil$(O) pngtrans$(O) pngwutil$(O) -OBJS2 = pngmem$(O) pngpread$(O) pngread$(O) pngerror$(O) pngwrite$(O) -OBJS3 = pngrtran$(O) pngwtran$(O) pngrio$(O) pngwio$(O) - -all: test - -png$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngset$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngget$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngread$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngpread$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngrtran$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngrutil$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngerror$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngmem$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngrio$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngwio$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngtest$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngtrans$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngwrite$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngwtran$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -pngwutil$(O): png.h pngconf.h - $(CC) $(CFLAGS) $*.c $(ERRFILE) - -libpng.lib: $(OBJS1) $(OBJS2) $(OBJS3) - $(LIB) -n libpng.lib +$(OBJS1) - $(LIB) libpng.lib +$(OBJS2) - $(LIB) libpng.lib +$(OBJS3) - -pngtest.exe: pngtest.obj libpng.lib - $(LD) $(LDFLAGS) pngtest.obj libpng.lib ..\zlib\zlib.lib - -test: pngtest.exe - pngtest - -# End of makefile for libpng diff --git a/src/png/scripts/makevms.com b/src/png/scripts/makevms.com deleted file mode 100644 index 15f305a606..0000000000 --- a/src/png/scripts/makevms.com +++ /dev/null @@ -1,125 +0,0 @@ -$! make libpng under VMS -$! -$! -$! Look for the compiler used -$! -$ zlibsrc = "[-.zlib]" -$ ccopt="/include=''zlibsrc'" -$ if f$getsyi("HW_MODEL").ge.1024 -$ then -$ ccopt = "/prefix=all"+ccopt -$ comp = "__decc__=1" -$ if f$trnlnm("SYS").eqs."" then define sys sys$library: -$ else -$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" -$ then -$ if f$trnlnm("SYS").eqs."" then define sys sys$library: -$ if f$search("SYS$SYSTEM:VAXC.EXE").eqs."" -$ then -$ comp = "__gcc__=1" -$ CC :== GCC -$ else -$ comp = "__vaxc__=1" -$ endif -$ else -$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: -$ ccopt = "/decc/prefix=all"+ccopt -$ comp = "__decc__=1" -$ endif -$ endif -$! -$! Build the thing plain or with mms -$! -$ write sys$output "Compiling Libpng sources ..." -$ if f$search("SYS$SYSTEM:MMS.EXE").eqs."" -$ then -$ dele pngtest.obj;* -$ CALL MAKE png.OBJ "cc ''CCOPT' png" - - png.c png.h pngconf.h -$ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - - pngpread.c png.h pngconf.h -$ CALL MAKE pngset.OBJ "cc ''CCOPT' pngset" - - pngset.c png.h pngconf.h -$ CALL MAKE pngget.OBJ "cc ''CCOPT' pngget" - - pngget.c png.h pngconf.h -$ CALL MAKE pngread.OBJ "cc ''CCOPT' pngread" - - pngread.c png.h pngconf.h -$ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - - pngpread.c png.h pngconf.h -$ CALL MAKE pngrtran.OBJ "cc ''CCOPT' pngrtran" - - pngrtran.c png.h pngconf.h -$ CALL MAKE pngrutil.OBJ "cc ''CCOPT' pngrutil" - - pngrutil.c png.h pngconf.h -$ CALL MAKE pngerror.OBJ "cc ''CCOPT' pngerror" - - pngerror.c png.h pngconf.h -$ CALL MAKE pngmem.OBJ "cc ''CCOPT' pngmem" - - pngmem.c png.h pngconf.h -$ CALL MAKE pngrio.OBJ "cc ''CCOPT' pngrio" - - pngrio.c png.h pngconf.h -$ CALL MAKE pngwio.OBJ "cc ''CCOPT' pngwio" - - pngwio.c png.h pngconf.h -$ CALL MAKE pngtrans.OBJ "cc ''CCOPT' pngtrans" - - pngtrans.c png.h pngconf.h -$ CALL MAKE pngwrite.OBJ "cc ''CCOPT' pngwrite" - - pngwrite.c png.h pngconf.h -$ CALL MAKE pngwtran.OBJ "cc ''CCOPT' pngwtran" - - pngwtran.c png.h pngconf.h -$ CALL MAKE pngwutil.OBJ "cc ''CCOPT' pngwutil" - - pngwutil.c png.h pngconf.h -$ write sys$output "Building Libpng ..." -$ CALL MAKE libpng.OLB "lib/crea libpng.olb *.obj" *.OBJ -$ write sys$output "Building pngtest..." -$ CALL MAKE pngtest.OBJ "cc ''CCOPT' pngtest" - - pngtest.c png.h pngconf.h -$ call make pngtest.exe - - "LINK pngtest,libpng.olb/lib,''zlibsrc'libgz.olb/lib" - - pngtest.obj libpng.olb -$ write sys$output "Testing Libpng..." -$ run pngtest -$ else -$ mms/macro=('comp',zlibsrc='zlibsrc') -$ endif -$ write sys$output "Libpng build completed" -$ exit -$! -$! -$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES -$ V = 'F$Verify(0) -$! P1 = What we are trying to make -$! P2 = Command to make it -$! P3 - P8 What it depends on -$ -$ If F$Search(P1) .Eqs. "" Then Goto Makeit -$ Time = F$CvTime(F$File(P1,"RDT")) -$arg=3 -$Loop: -$ Argument = P'arg -$ If Argument .Eqs. "" Then Goto Exit -$ El=0 -$Loop2: -$ File = F$Element(El," ",Argument) -$ If File .Eqs. " " Then Goto Endl -$ AFile = "" -$Loop3: -$ OFile = AFile -$ AFile = F$Search(File) -$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl -$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit -$ Goto Loop3 -$NextEL: -$ El = El + 1 -$ Goto Loop2 -$EndL: -$ arg=arg+1 -$ If arg .Le. 8 Then Goto Loop -$ Goto Exit -$ -$Makeit: -$ VV=F$VERIFY(0) -$ write sys$output P2 -$ 'P2 -$ VV='F$Verify(VV) -$Exit: -$ If V Then Set Verify -$ENDSUBROUTINE - diff --git a/src/png/scripts/pngos2.def b/src/png/scripts/pngos2.def deleted file mode 100644 index ba2d3e3d38..0000000000 --- a/src/png/scripts/pngos2.def +++ /dev/null @@ -1,286 +0,0 @@ -;---------------------------------------- -; PNGLIB module definition file for OS/2 -;---------------------------------------- - -LIBRARY PNG -DESCRIPTION "PNG image compression library for OS/2" -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE - -EXPORTS - png_set_sig_bytes - png_sig_cmp - png_check_sig - png_create_read_struct - png_create_write_struct - png_write_chunk - png_write_chunk_start - png_write_chunk_data - png_write_chunk_end - png_create_info_struct - png_info_init - png_write_info - png_read_info - png_convert_to_rfc1123 - png_convert_from_struct_tm - png_convert_from_time_t - png_set_expand - png_set_bgr - png_set_gray_to_rgb -; png_set_rgb_to_gray - png_build_grayscale_palette - png_set_strip_alpha - png_set_swap_alpha - png_set_invert_alpha - png_set_filler - png_set_swap - png_set_packing - png_set_packswap - png_set_shift - png_set_interlace_handling - png_set_invert_mono - png_set_background - png_set_strip_16 - png_set_dither - png_set_gamma - png_set_flush - png_write_flush - png_start_read_image - png_read_update_info - png_read_rows - png_read_row - png_read_image - png_write_row - png_write_rows - png_write_image - png_write_end - png_read_end - png_destroy_info_struct - png_destroy_read_struct - png_read_destroy - png_destroy_write_struct -; png_write_destroy_info - png_write_destroy - png_set_crc_action - png_set_filter - png_set_filter_heuristics - png_set_compression_level - png_set_compression_mem_level - png_set_compression_strategy - png_set_compression_window_bits - png_set_compression_method - png_init_io - png_set_error_fn - png_get_error_ptr - png_set_write_fn - png_set_read_fn - png_set_write_status_fn - png_set_read_status_fn - png_get_io_ptr - png_set_progressive_read_fn - png_set_read_status_fn - png_set_read_user_transform_fn - png_set_write_status_fn - png_set_write_user_transform_fn - png_get_progressive_ptr - png_process_data - png_progressive_combine_row - png_malloc - png_free - png_memcpy_check - png_memset_check -; png_debug_malloc -; png_debug_free -; png_far_to_near - png_error - png_chunk_error - png_warning - png_chunk_warning - png_get_valid - png_get_rowbytes - png_get_channels - png_get_image_width - png_get_image_height - png_get_bit_depth - png_get_color_type - png_get_filter_type - png_get_interlace_type - png_get_compression_type - png_get_pixels_per_meter - png_get_pixel_aspect_ratio - png_get_x_offset_pixels - png_get_y_offset_pixels - png_get_x_offset_microns - png_get_y_offset_microns - png_get_signature - png_get_bKGD - png_set_bKGD - png_get_cHRM - png_set_cHRM - png_get_gAMA - png_set_gAMA - png_get_hIST - png_set_hIST - png_get_IHDR - png_set_IHDR - png_get_oFFs - png_set_oFFs - png_get_pCAL - png_set_pCAL - png_get_pHYs - png_set_pHYs - png_get_PLTE - png_set_PLTE - png_get_sBIT - png_set_sBIT - png_get_sRGB - png_set_sRGB - png_set_sRGB_gAMA_and_cHRM - png_get_text - png_set_text - png_get_tIME - png_set_tIME - png_get_tRNS - png_set_tRNS - - png_create_struct - png_destroy_struct - png_info_destroy - png_zalloc - png_zfree - png_reset_crc - png_write_data - png_read_data - png_crc_read - png_crc_finish - png_crc_error - png_calculate_crc - png_flush - png_save_uint_32 - png_save_int_32 - png_save_uint_16 - png_write_sig - png_write_IHDR - png_write_PLTE - png_write_IDAT - png_write_IEND - png_write_gAMA - png_write_sBIT - png_write_cHRM - png_write_sRGB - png_write_tRNS - png_write_bKGD - png_write_hIST - png_check_keyword - png_write_tEXt - png_write_zTXt - png_write_oFFs - png_write_pCAL - png_write_pHYs - png_write_tIME - png_write_finish_row - png_write_start_row - png_build_gamma_table - png_combine_row - png_do_read_interlace - png_do_write_interlace - png_read_filter_row - png_write_find_filter - png_write_filtered_row - png_read_finish_row - png_read_start_row - png_read_transform_info - png_do_read_filler - png_do_read_swap_alpha - png_do_write_swap_alpha - png_do_read_invert_alpha - png_do_write_invert_alpha - png_do_strip_filler - png_do_swap - png_do_packswap -; png_do_rgb_to_gray - png_do_gray_to_rgb - png_do_unpack - png_do_unshift - png_do_invert - png_do_chop - png_do_dither -; png_correct_palette - png_do_bgr - png_do_pack - png_do_shift - png_do_background - png_do_gamma - png_do_expand_palette - png_do_expand - png_handle_IHDR - png_handle_PLTE - png_handle_IEND - png_handle_gAMA - png_handle_sBIT - png_handle_cHRM - png_handle_sRGB - png_handle_tRNS - png_handle_bKGD - png_handle_hIST - png_handle_oFFs - png_handle_pCAL - png_handle_pHYs - png_handle_tIME - png_handle_tEXt - png_handle_zTXt - png_handle_unknown - png_check_chunk_name - png_do_read_transformations - png_do_write_transformations - png_init_read_transformations - png_push_read_chunk - png_push_read_sig -; png_push_check_crc - png_push_crc_skip - png_push_crc_finish - png_push_fill_buffer - png_push_save_buffer - png_push_restore_buffer - png_push_read_IDAT - png_process_IDAT_data - png_push_process_row - png_push_handle_unknown - png_push_have_info - png_push_have_end - png_push_have_row -; png_push_read_end - png_process_some_data - png_read_push_finish_row - png_push_handle_tEXt - png_push_read_tEXt - png_push_handle_zTXt - png_push_read_zTXt - - png_libpng_ver - png_pass_start - png_pass_inc - png_pass_ystart - png_pass_yinc - png_pass_mask - png_pass_dsp_mask -; png_pass_width -; png_pass_height - - png_IHDR - png_IDAT - png_IEND - png_PLTE - png_bKGD - png_cHRM - png_gAMA - png_hIST - png_oFFs - png_pCAL - png_pHYs - png_sBIT - png_sRGB - png_tEXt - png_tIME - png_tRNS - png_zTXt diff --git a/src/png/scripts/smakefile.ppc b/src/png/scripts/smakefile.ppc deleted file mode 100644 index fa3cad44b1..0000000000 --- a/src/png/scripts/smakefile.ppc +++ /dev/null @@ -1,29 +0,0 @@ -# Amiga powerUP (TM) Makefile -# makefile for libpng and SAS C V6.58/7.00 PPC compiler -# Copyright (C) 1998 by Andreas R. Kleinert - -CC = scppc -CFLAGS = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \ - OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8 -LIBNAME = libpng.a -AR = ppc-amigaos-ar -AR_FLAGS = cr -RANLIB = ppc-amigaos-ranlib -LDFLAGS = -r -o -LDLIBS = ../zlib/libzip.a LIB:scppc.a -LN = ppc-amigaos-ld -RM = delete quiet -MKDIR = makedir - -OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngread.o \ -pngerror.o pngpread.o pngwrite.o pngrtran.o pngwtran.o pngrio.o pngwio.o pngmem.o - -all: $(LIBNAME) pngtest - -$(LIBNAME): $(OBJS) - $(AR) $(AR_FLAGS) $@ $(OBJS) - $(RANLIB) $@ - -pngtest: pngtest.o $(LIBNAME) - $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \ -LIB:end.o diff --git a/src/qt/app.cpp b/src/qt/app.cpp deleted file mode 100644 index f34b677837..0000000000 --- a/src/qt/app.cpp +++ /dev/null @@ -1,395 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: wxApp -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "app.h" -#endif - -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/utils.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/palette.h" -#include "wx/dc.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/log.h" -#include "wx/module.h" - -#if wxUSE_WX_RESOURCES -#include "wx/resource.h" -#endif - -#include - -#if defined(__WIN95__) && !defined(__GNUWIN32__) -extern char *wxBuffer; -extern wxList wxPendingDelete; - -wxApp *wxTheApp = NULL; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() -#endif - -long wxApp::sm_lastMessageTime = 0; - -void wxApp::CommonInit() -{ -#ifdef __WXMSW__ - wxBuffer = new char[1500]; -#else - wxBuffer = new char[BUFSIZ + 512]; -#endif - - wxClassInfo::InitializeClasses(); - - wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); - wxTheColourDatabase->Initialize(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - // For PostScript printing -#if wxUSE_POSTSCRIPT - wxInitializePrintSetupData(); - wxThePrintPaperDatabase = new wxPrintPaperDatabase; - wxThePrintPaperDatabase->CreateDatabase(); -#endif - - wxBitmap::InitStandardHandlers(); - - wxModule::RegisterModules(); - wxASSERT( wxModule::InitializeModules() == TRUE ); -} - -void wxApp::CommonCleanUp() -{ - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - - wxDeleteStockObjects() ; - - // Destroy all GDI lists, etc. - delete wxTheBrushList; - wxTheBrushList = NULL; - - delete wxThePenList; - wxThePenList = NULL; - - delete wxTheFontList; - wxTheFontList = NULL; - - delete wxTheBitmapList; - wxTheBitmapList = NULL; - - delete wxTheColourDatabase; - wxTheColourDatabase = NULL; - -#if wxUSE_POSTSCRIPT - wxInitializePrintSetupData(FALSE); - delete wxThePrintPaperDatabase; - wxThePrintPaperDatabase = NULL; -#endif - - wxBitmap::CleanUpHandlers(); - - delete[] wxBuffer; - wxBuffer = NULL; - - // do it as the very last thing because everything else can log messages - delete wxLog::SetActiveTarget(NULL); -} - -int wxEntry( int argc, char *argv[] ) -{ - wxClassInfo::InitializeClasses(); - -#if (WXDEBUG && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - -#if !defined(_WINDLL) - streambuf* sBuf = new wxDebugStreamBuf; -#else - streambuf* sBuf = NULL; -#endif - ostream* oStr = new ostream(sBuf) ; - wxDebugContext::SetStream(oStr, sBuf); - -#endif - - if (!wxTheApp) - { - if (!wxApp::GetInitializerFunction()) - { - printf( "wxWindows error: No initializer - use IMPLEMENT_APP macro.\n" ); - return 0; - }; - - wxTheApp = (* wxApp::GetInitializerFunction()) (); - }; - - if (!wxTheApp) - { - printf( "wxWindows error: wxTheApp == NULL\n" ); - return 0; - }; - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - // TODO: your platform-specific initialization. - - wxApp::CommonInit(); - - // GUI-specific initialization, such as creating an app context. - wxTheApp->OnInitGui(); - - // Here frames insert themselves automatically - // into wxTopLevelWindows by getting created - // in OnInit(). - - if (!wxTheApp->OnInit()) return 0; - - wxTheApp->m_initialized = (wxTopLevelWindows.Number() > 0); - - int retValue = 0; - - if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun(); - - wxTheApp->DeletePendingObjects(); - - wxTheApp->OnExit(); - - wxApp::CommonCleanUp(); - -#if (WXDEBUG && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // At this point we want to check if there are any memory - // blocks that aren't part of the wxDebugContext itself, - // as a special case. Then when dumping we need to ignore - // wxDebugContext, too. - if (wxDebugContext::CountObjectsLeft() > 0) - { - wxTrace("There were memory leaks.\n"); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } - wxDebugContext::SetStream(NULL, NULL); -#endif - - return retValue; -}; - -// Static member initialization -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_className = ""; - m_wantDebugOutput = TRUE ; - m_appName = ""; - argc = 0; - argv = NULL; -#ifdef __WXMSW__ - m_printMode = wxPRINT_WINDOWS; -#else - m_printMode = wxPRINT_POSTSCRIPT; -#endif - m_exitOnFrameDelete = TRUE; - m_auto3D = TRUE; -} - -bool wxApp::Initialized() -{ - if (GetTopWindow()) - return TRUE; - else - return FALSE; -} - -int wxApp::MainLoop() -{ - m_keepGoing = TRUE; - -/* TODO: implement your main loop here, calling ProcessIdle in idle time. - while (m_keepGoing) - { - while (!::PeekMessage(&s_currentMsg, 0, 0, 0, PM_NOREMOVE) && - ProcessIdle()) {} - if (!DoMessage()) - m_keepGoing = FALSE; - } -*/ - - return 0; -} - -// Returns TRUE if more time is needed. -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -void wxApp::ExitMainLoop() -{ - m_keepGoing = FALSE; -} - -// Is a message/event pending? -bool wxApp::Pending() -{ -/* TODO. - */ - return FALSE; -} - -// Dispatch a message. -void wxApp::Dispatch() -{ -/* TODO. - */ -} - -void wxApp::OnIdle(wxIdleEvent& event) -{ - static bool inOnIdle = FALSE; - - // Avoid recursion (via ProcessEvent default case) - if (inOnIdle) - return; - - inOnIdle = TRUE; - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); - - // Send OnIdle events to all windows - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -// Send idle event to all top-level windows -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - wxNode* node = wxTopLevelWindows.First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore; -} - -// Send idle event to window and all subwindows -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren()->First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Member(obj)) - delete node; - - // Deleting one object may have deleted other pending - // objects, so start from beginning of list again. - node = wxPendingDelete.First(); - } -} - -wxLog* wxApp::CreateLogTarget() -{ - return new wxLogGui; -} - -wxWindow* wxApp::GetTopWindow() const -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.Number() > 0) - return (wxWindow*) wxTopLevelWindows.First()->Data(); - else - return NULL; -} - -void wxExit() -{ - wxApp::CommonCleanUp(); -/* - * TODO: Exit in some platform-specific way. Not recommended that the app calls this: - * only for emergencies. - */ -} - -// Yield to other processes -bool wxYield() -{ - /* - * TODO - */ - return TRUE; -} - diff --git a/src/qt/bdiag.xbm b/src/qt/bdiag.xbm deleted file mode 100644 index 9ff0a1822f..0000000000 --- a/src/qt/bdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define bdiag_width 16 -#define bdiag_height 16 -static char bdiag_bits[] = { - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, - 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01}; diff --git a/src/qt/bitmap.cpp b/src/qt/bitmap.cpp deleted file mode 100644 index 1e6255f551..0000000000 --- a/src/qt/bitmap.cpp +++ /dev/null @@ -1,430 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: wxBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/palette.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -wxBitmapRefData::wxBitmapRefData() -{ - m_ok = FALSE; - m_width = 0; - m_height = 0; - m_depth = 0; - m_quality = 0; - m_numColors = 0; - m_bitmapMask = NULL; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - /* - * TODO: delete the bitmap data here. - */ - - if (m_bitmapMask) - delete m_bitmapMask; - m_bitmapMask = NULL; -} - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap() -{ - m_refData = NULL; - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -wxBitmap::wxBitmap(const char bits[], int the_width, int the_height, int no_bits) -{ - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = the_width ; - M_BITMAPDATA->m_height = the_height ; - M_BITMAPDATA->m_depth = no_bits ; - M_BITMAPDATA->m_numColors = 0; - - /* TODO: create the bitmap from data */ - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(int w, int h, int d) -{ - (void)Create(w, h, d); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth) -{ - (void) Create(data, type, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxString& filename, long type) -{ - LoadFile(filename, (int)type); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -/* TODO: maybe allow creation from XPM -// Create from data -wxBitmap::wxBitmap(const char **data) -{ - (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); -} -*/ - -bool wxBitmap::Create(int w, int h, int d) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = d; - - /* TODO: create new bitmap */ - - return M_BITMAPDATA->m_ok; -} - -bool wxBitmap::LoadFile(const wxString& filename, long type) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->LoadFile(this, filename, type, -1, -1); -} - -bool wxBitmap::Create(void *data, long type, int width, int height, int depth) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->Create(this, data, type, width, height, depth); -} - -bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *palette) -{ - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->SaveFile(this, filename, type, palette); -} - -void wxBitmap::SetWidth(int w) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; -} - -void wxBitmap::SetHeight(int h) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_height = h; -} - -void wxBitmap::SetDepth(int d) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_depth = d; -} - -void wxBitmap::SetQuality(int q) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_quality = q; -} - -void wxBitmap::SetOk(bool isOk) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_ok = isOk; -} - -void wxBitmap::SetPalette(const wxPalette& palette) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapPalette = palette ; -} - -void wxBitmap::SetMask(wxMask *mask) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapMask = mask ; -} - -void wxBitmap::AddHandler(wxBitmapHandler *handler) -{ - sm_handlers.Append(handler); -} - -void wxBitmap::InsertHandler(wxBitmapHandler *handler) -{ - sm_handlers.Insert(handler); -} - -bool wxBitmap::RemoveHandler(const wxString& name) -{ - wxBitmapHandler *handler = FindHandler(name); - if ( handler ) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& name) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetName() == name ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& extension, long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetExtension() == extension && - (bitmapType == -1 || handler->GetType() == bitmapType) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if (handler->GetType() == bitmapType) - return handler; - node = node->Next(); - } - return NULL; -} - -/* - * wxMask - */ - -wxMask::wxMask() -{ -/* TODO - m_maskBitmap = 0; -*/ -} - -// Construct a mask from a bitmap and a colour indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour) -{ -/* TODO - m_maskBitmap = 0; -*/ - Create(bitmap, colour); -} - -// Construct a mask from a bitmap and a palette index indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap, paletteIndex); -} - -// Construct a mask from a mono bitmap (copies the bitmap). -wxMask::wxMask(const wxBitmap& bitmap) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap); -} - -wxMask::~wxMask() -{ -// TODO: delete mask bitmap -} - -// Create a mask from a mono bitmap (copies the bitmap). -bool wxMask::Create(const wxBitmap& bitmap) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a palette index indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a colour indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) -{ -// TODO - return FALSE; -} - -/* - * wxBitmapHandler - */ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) - -bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth) -{ - return FALSE; -} - -bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long type, - int desiredWidth, int desiredHeight) -{ - return FALSE; -} - -bool wxBitmapHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette) -{ - return FALSE; -} - -/* - * Standard handlers - */ - -/* TODO: bitmap handlers, a bit like this: -class WXDLLEXPORT wxBMPResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPResourceHandler) -public: - inline wxBMPResourceHandler() - { - m_name = "Windows bitmap resource"; - m_extension = ""; - m_type = wxBITMAP_TYPE_BMP_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); -}; -IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler) -*/ - -void wxBitmap::CleanUpHandlers() -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -void wxBitmap::InitStandardHandlers() -{ -/* TODO: initialize all standard bitmap or derive class handlers here. - AddHandler(new wxBMPResourceHandler); - AddHandler(new wxBMPFileHandler); - AddHandler(new wxXPMFileHandler); - AddHandler(new wxXPMDataHandler); - AddHandler(new wxICOResourceHandler); - AddHandler(new wxICOFileHandler); -*/ -} diff --git a/src/qt/bmpbuttn.cpp b/src/qt/bmpbuttn.cpp deleted file mode 100644 index 9e46c22b2b..0000000000 --- a/src/qt/bmpbuttn.cpp +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: wxBitmapButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) -#endif - -bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_buttonBitmap = bitmap; - SetName(name); - SetValidator(validator); - parent->AddChild(this); - - m_backgroundColour = parent->GetDefaultBackgroundColour() ; - m_foregroundColour = parent->GetDefaultForegroundColour() ; - m_windowStyle = style; - m_marginX = 0; - m_marginY = 0; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - if ( width == -1 && bitmap.Ok()) - width = bitmap.GetWidth() + 2*m_marginX; - - if ( height == -1 && bitmap.Ok()) - height = bitmap.GetHeight() + 2*m_marginY; - - /* TODO: create bitmap button - */ - - return FALSE; -} - -void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) -{ - m_buttonBitmap = bitmap; -} - diff --git a/src/qt/brush.cpp b/src/qt/brush.cpp deleted file mode 100644 index 72c12935ff..0000000000 --- a/src/qt/brush.cpp +++ /dev/null @@ -1,162 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: wxBrush -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/brush.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif - -wxBrushRefData::wxBrushRefData() -{ - m_style = wxSOLID; -// TODO: null data -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -/* TODO: null data - m_hBrush = 0; -*/ -} - -wxBrushRefData::~wxBrushRefData() -{ -// TODO: delete data -} - -// Brushes -wxBrush::wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::~wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->RemoveBrush(this); -} - -wxBrush::wxBrush(const wxColour& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxString& col, int Style) -{ - m_refData = new wxBrushRefData; - - // Implicit conversion from string to wxColour via colour database - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_stipple = stipple; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -void wxBrush::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxBrush::SetColour(const wxColour& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(const wxString& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(const unsigned char r, const unsigned char g, const unsigned char b) -{ - Unshare(); - - M_BRUSHDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxBrush::SetStyle(int Style) -{ - Unshare(); - - M_BRUSHDATA->m_style = Style; - - RealizeResource(); -} - -void wxBrush::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_BRUSHDATA->m_stipple = Stipple; - - RealizeResource(); -} - -void wxBrush::RealizeResource() -{ -// TODO: create the brush -} - diff --git a/src/qt/button.cpp b/src/qt/button.cpp deleted file mode 100644 index befd0d7156..0000000000 --- a/src/qt/button.cpp +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: wxButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -// Button - -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - parent->AddChild((wxButton *)this); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create button - - return FALSE; -} - -void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxButton::SetDefault() -{ - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - parent->SetDefaultItem(this); - - // TODO: make button the default -} - -wxString wxButton::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxButton::Command (wxCommandEvent & event) -{ - ProcessCommand (event); -} - diff --git a/src/qt/cdiag.xbm b/src/qt/cdiag.xbm deleted file mode 100644 index 15dc7ba86d..0000000000 --- a/src/qt/cdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cdiag_width 16 -#define cdiag_height 16 -static char cdiag_bits[] = { - 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x18, 0x24, 0x24, - 0x42, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, - 0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x81, 0x81}; diff --git a/src/qt/checkbox.cpp b/src/qt/checkbox.cpp deleted file mode 100644 index dd2e2abe7a..0000000000 --- a/src/qt/checkbox.cpp +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: wxCheckBox -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create checkbox - - return FALSE; -} - -void wxCheckBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxCheckBox::GetValue() const -{ - // TODO - return FALSE; -} - -void wxCheckBox::Command (wxCommandEvent & event) -{ - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -// Bitmap checkbox -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: Create the bitmap checkbox - - return FALSE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap *bitmap) -{ - // TODO -} - -void wxBitmapCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxBitmapCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxBitmapCheckBox::GetValue() const -{ - // TODOD - return FALSE; -} - - diff --git a/src/qt/choice.cpp b/src/qt/choice.cpp deleted file mode 100644 index a584d5303f..0000000000 --- a/src/qt/choice.cpp +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/choice.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -bool wxChoice::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create choice control - return FALSE; -} - -void wxChoice::Append(const wxString& item) -{ - // TODO - m_noStrings ++; -} - -void wxChoice::Delete(int n) -{ - // TODO - m_noStrings --; -} - -void wxChoice::Clear() -{ - // TODO - m_noStrings = 0; -} - -int wxChoice::GetSelection() const -{ - // TODO - return 0; -} - -void wxChoice::SetSelection(int n) -{ - // TODO -} - -int wxChoice::FindString(const wxString& s) const -{ - // TODO - return 0; -} - -wxString wxChoice::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxChoice::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -wxString wxChoice::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return wxString(this->GetString (sel)); - else - return wxString(""); -} - -bool wxChoice::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxChoice::Command(wxCommandEvent & event) -{ - SetSelection (event.GetInt()); - ProcessCommand (event); -} - diff --git a/src/qt/colour.cpp b/src/qt/colour.cpp deleted file mode 100644 index d342d516de..0000000000 --- a/src/qt/colour.cpp +++ /dev/null @@ -1,126 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/colour.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -#endif - -// Colour - -wxColour::wxColour () -{ - m_isInit = FALSE; - m_red = m_blue = m_green = 0; -/* TODO - m_pixel = 0; -*/ -} - -wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::wxColour (const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ -} - -wxColour& wxColour::operator =(const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ - return *this; -} - -wxColour::wxColour (const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::~wxColour () -{ -} - -wxColour& wxColour::operator = (const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ - return (*this); -} - -void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} diff --git a/src/qt/combobox.cpp b/src/qt/combobox.cpp deleted file mode 100644 index f1bbccaeb0..0000000000 --- a/src/qt/combobox.cpp +++ /dev/null @@ -1,116 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -bool wxComboBox::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create combobox control - - return TRUE; -} - -wxString wxComboBox::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxComboBox::SetValue(const wxString& value) -{ - // TODO -} - -// Clipboard operations -void wxComboBox::Copy() -{ - // TODO -} - -void wxComboBox::Cut() -{ - // TODO -} - -void wxComboBox::Paste() -{ - // TODO -} - -void wxComboBox::SetEditable(bool editable) -{ - // TODO -} - -void wxComboBox::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxComboBox::SetInsertionPointEnd() -{ - // TODO -} - -long wxComboBox::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxComboBox::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxComboBox::Remove(long from, long to) -{ - // TODO -} - -void wxComboBox::SetSelection(long from, long to) -{ - // TODO -} - diff --git a/src/qt/control.cpp b/src/qt/control.cpp deleted file mode 100644 index 651b272953..0000000000 --- a/src/qt/control.cpp +++ /dev/null @@ -1,111 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -BEGIN_EVENT_TABLE(wxControl, wxWindow) -END_EVENT_TABLE() -#endif - -// Item members -wxControl::wxControl() -{ - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - m_callback = 0; -} - -wxControl::~wxControl() -{ - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - { - if (parent->GetDefaultItem() == this) - parent->SetDefaultItem(NULL); - } -} - -void wxControl::SetLabel(const wxString& label) -{ - // TODO -} - -wxString wxControl::GetLabel() const -{ - // TODO - return wxString(""); -} - -/* - * Allocates control IDs within the appropriate range - */ - -int NewControlId() -{ - static int s_controlId = 0; - s_controlId ++; - return s_controlId; -} - -void wxControl::ProcessCommand (wxCommandEvent & event) -{ - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - } - else - { - GetEventHandler()->OnCommand(*this, event); - } -} - -void wxControl::SetClientSize (int width, int height) -{ - SetSize (-1, -1, width, height); -} - -void wxControl::Centre (int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; - - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); - - new_x = x; - new_y = y; - - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); - - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); - - SetSize (new_x, new_y, width, height); -} - diff --git a/src/qt/cross.xbm b/src/qt/cross.xbm deleted file mode 100644 index b07cbe7fcd..0000000000 --- a/src/qt/cross.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define cross_width 15 -#define cross_height 15 -static char cross_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/qt/cursor.cpp b/src/qt/cursor.cpp deleted file mode 100644 index c856f5e9e0..0000000000 --- a/src/qt/cursor.cpp +++ /dev/null @@ -1,186 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -#endif - -wxCursorRefData::wxCursorRefData() -{ - m_width = 32; m_height = 32; - -/* TODO - m_hCursor = 0 ; -*/ -} - -wxCursorRefData::~wxCursorRefData() -{ - // TODO: destroy cursor -} - -// Cursors -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), const char WXUNUSED(maskBits)[]) -{ -} - -wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) -{ - m_refData = new wxIconRefData; - - // TODO: create cursor from a file -} - -// Cursors by stock number -wxCursor::wxCursor(int cursor_type) -{ - m_refData = new wxIconRefData; - -/* TODO - switch (cursor_type) - { - case wxCURSOR_WAIT: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_WAIT); - break; - case wxCURSOR_IBEAM: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_IBEAM); - break; - case wxCURSOR_CROSS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_CROSS); - break; - case wxCURSOR_SIZENWSE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENWSE); - break; - case wxCURSOR_SIZENESW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENESW); - break; - case wxCURSOR_SIZEWE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZEWE); - break; - case wxCURSOR_SIZENS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENS); - break; - case wxCURSOR_CHAR: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_HAND: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_HAND"); - break; - } - case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BULLSEYE"); - break; - } - case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PENCIL"); - break; - } - case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_MAGNIFIER"); - break; - } - case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_NO_ENTRY"); - break; - } - case wxCURSOR_LEFT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_RIGHT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_MIDDLE_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_SIZING: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_SIZING"); - break; - } - case wxCURSOR_WATCH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_WATCH"); - break; - } - case wxCURSOR_SPRAYCAN: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_ROLLER"); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PBRUSH"); - break; - } - case wxCURSOR_POINT_LEFT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PLEFT"); - break; - } - case wxCURSOR_POINT_RIGHT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PRIGHT"); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_QARROW"); - break; - } - case wxCURSOR_BLANK: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BLANK"); - break; - } - default: - case wxCURSOR_ARROW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } -*/ - -} - -wxCursor::~wxCursor() -{ -} - -// Global cursor setting -void wxSetCursor(const wxCursor& cursor) -{ - // TODO (optional on platforms with no global cursor) -} - - diff --git a/src/qt/data.cpp b/src/qt/data.cpp deleted file mode 100644 index 6748ee636f..0000000000 --- a/src/qt/data.cpp +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: Various data -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wx.h" - -#define _MAXPATHLEN 500 - -// Useful buffer, initialized in CommonInit -char *wxBuffer = NULL; - -// Windows List -wxList wxTopLevelWindows; - -// List of windows pending deletion -wxList wxPendingDelete; - -int wxPageNumber; - -// GDI Object Lists -wxBrushList *wxTheBrushList = NULL; -wxPenList *wxThePenList = NULL; -wxFontList *wxTheFontList = NULL; -wxBitmapList *wxTheBitmapList = NULL; - -wxColourDatabase *wxTheColourDatabase = NULL; - -// Stock objects -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; -wxPen *wxRED_PEN; - -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = NULL; -wxCursor *wxHOURGLASS_CURSOR = NULL; -wxCursor *wxCROSS_CURSOR = NULL; - -// 'Null' objects -wxAcceleratorTable wxNullAcceleratorTable; -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxPalette wxNullPalette; -wxFont wxNullFont; -wxColour wxNullColour; - -// Default window names -const char *wxButtonNameStr = "button"; -const char *wxCanvasNameStr = "canvas"; -const char *wxCheckBoxNameStr = "check"; -const char *wxChoiceNameStr = "choice"; -const char *wxComboBoxNameStr = "comboBox"; -const char *wxDialogNameStr = "dialog"; -const char *wxFrameNameStr = "frame"; -const char *wxGaugeNameStr = "gauge"; -const char *wxStaticBoxNameStr = "groupBox"; -const char *wxListBoxNameStr = "listBox"; -const char *wxStaticTextNameStr = "message"; -const char *wxStaticBitmapNameStr = "message"; -const char *wxMultiTextNameStr = "multitext"; -const char *wxPanelNameStr = "panel"; -const char *wxRadioBoxNameStr = "radioBox"; -const char *wxRadioButtonNameStr = "radioButton"; -const char *wxBitmapRadioButtonNameStr = "radioButton"; -const char *wxScrollBarNameStr = "scrollBar"; -const char *wxSliderNameStr = "slider"; -const char *wxStaticNameStr = "static"; -const char *wxTextCtrlWindowNameStr = "textWindow"; -const char *wxTextCtrlNameStr = "text"; -const char *wxVirtListBoxNameStr = "virtListBox"; -const char *wxButtonBarNameStr = "buttonbar"; -const char *wxEnhDialogNameStr = "Shell"; -const char *wxToolBarNameStr = "toolbar"; -const char *wxStatusLineNameStr = "status_line"; -const char *wxEmptyString = ""; -const char *wxGetTextFromUserPromptStr = "Input Text"; -const char *wxMessageBoxCaptionStr = "Message"; -const char *wxFileSelectorPromptStr = "Select a file"; -const char *wxFileSelectorDefaultWildcardStr = "*.*"; -const char *wxInternalErrorStr = "wxWindows Internal Error"; -const char *wxFatalErrorStr = "wxWindows Fatal Error"; - -// See wx/utils.h -const char *wxFloatToStringStr = "%.2f"; -const char *wxDoubleToStringStr = "%.2f"; - -#if wxUSE_POSTSCRIPT -wxPrintPaperDatabase* wxThePrintPaperDatabase = NULL; -#endif - -///// Event tables (also must be in one, statically-linked file for shared libraries) - -// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here -const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } - -const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; - -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/qt/dc.cpp b/src/qt/dc.cpp deleted file mode 100644 index e56f268e35..0000000000 --- a/src/qt/dc.cpp +++ /dev/null @@ -1,392 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dc.h" -#endif - -#include "wx/dc.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -#endif - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -IMPLEMENT_ABSTRACT_CLASS(wxDC,wxObject) - -wxDC::wxDC(void) -{ - m_ok = FALSE; - m_optimize = FALSE; - m_autoSetting = FALSE; - m_colour = TRUE; - m_clipping = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_logicalOriginX = 0; - m_logicalOriginY = 0; - m_deviceOriginX = 0; - m_deviceOriginY = 0; - m_internalDeviceOriginX = 0; - m_internalDeviceOriginY = 0; - m_externalDeviceOriginX = 0; - m_externalDeviceOriginY = 0; - - m_logicalScaleX = 1.0; - m_logicalScaleY = 1.0; - m_userScaleX = 1.0; - m_userScaleY = 1.0; - m_scaleX = 1.0; - m_scaleY = 1.0; - - m_mappingMode = wxMM_TEXT; - m_needComputeScaleX = FALSE; - m_needComputeScaleY = FALSE; - - m_signX = 1; // default x-axis left to right - m_signY = 1; // default y-axis top down - - m_maxX = m_maxY = -100000; - m_minY = m_minY = 100000; - - m_logicalFunction = wxCOPY; -// m_textAlignment = wxALIGN_TOP_LEFT; - m_backgroundMode = wxTRANSPARENT; - - m_textForegroundColour = *wxBLACK; - m_textBackgroundColour = *wxWHITE; - m_pen = *wxBLACK_PEN; - m_font = *wxNORMAL_FONT; - m_brush = *wxTRANSPARENT_BRUSH; - m_backgroundBrush = *wxWHITE_BRUSH; - -// m_palette = wxAPP_COLOURMAP; -}; - -wxDC::~wxDC(void) -{ -}; - -void wxDC::DrawIcon( const wxIcon &WXUNUSED(icon), long WXUNUSED(x), long WXUNUSED(y), bool WXUNUSED(useMask) ) -{ -}; - -void wxDC::DrawPoint( wxPoint& point ) -{ - DrawPoint( point.x, point.y ); -}; - -void wxDC::DrawPolygon( wxList *list, long xoffset, long yoffset, int fillStyle ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawPolygon( n, points, xoffset, yoffset, fillStyle ); - delete[] points; -}; - -void wxDC::DrawLines( wxList *list, long xoffset, long yoffset ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawLines( n, points, xoffset, yoffset ); - delete []points; -}; - -void wxDC::DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ) -{ - wxList list; - list.Append( (wxObject*)new wxPoint(x1, y1) ); - list.Append( (wxObject*)new wxPoint(x2, y2) ); - list.Append( (wxObject*)new wxPoint(x3, y3) ); - DrawSpline(&list); - wxNode *node = list.First(); - while (node) - { - wxPoint *p = (wxPoint*)node->Data(); - delete p; - node = node->Next(); - }; -}; - -void wxDC::DrawSpline( wxList *points ) -{ - DrawOpenSpline( points ); -}; - -void wxDC::DrawSpline( int n, wxPoint points[] ) -{ - wxList list; - for (int i = 0; i < n; i++) list.Append( (wxObject*)&points[i] ); - DrawSpline( &list ); -}; - -void wxDC::SetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -}; - -void wxDC::DestroyClippingRegion(void) -{ - m_clipping = FALSE; -}; - -void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const -{ - if (m_clipping) - { - if (x) *x = m_clipX1; - if (y) *y = m_clipY1; - if (width) *width = (m_clipX2 - m_clipX1); - if (height) *height = (m_clipY2 - m_clipY1); - } - else - *x = *y = *width = *height = 0; -}; - -void wxDC::GetSize( int* width, int* height ) const -{ - *width = m_maxX-m_minX; - *height = m_maxY-m_minY; -}; - -void wxDC::GetSizeMM( long* width, long* height ) const -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - *width = long( double(w) / (m_scaleX*m_mm_to_pix_x) ); - *height = long( double(h) / (m_scaleY*m_mm_to_pix_y) ); -}; - -void wxDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - m_textForegroundColour = col; -}; - -void wxDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - m_textBackgroundColour = col; -}; - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - }; - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - }; -}; - -void wxDC::SetUserScale( double x, double y ) -{ - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetUserScale( double *x, double *y ) -{ - if (x) *x = m_userScaleX; - if (y) *y = m_userScaleY; -}; - -void wxDC::SetLogicalScale( double x, double y ) -{ - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalScale( double *x, double *y ) -{ - if (x) *x = m_logicalScaleX; - if (y) *y = m_logicalScaleY; -}; - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalOrigin( long *x, long *y ) -{ - if (x) *x = m_logicalOriginX; - if (y) *y = m_logicalOriginY; -}; - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - m_externalDeviceOriginX = x; - m_externalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetDeviceOrigin( long *x, long *y ) -{ -// if (x) *x = m_externalDeviceOriginX; -// if (y) *y = m_externalDeviceOriginY; - if (x) *x = m_deviceOriginX; - if (y) *y = m_deviceOriginY; -}; - -void wxDC::SetInternalDeviceOrigin( long x, long y ) -{ - m_internalDeviceOriginX = x; - m_internalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetInternalDeviceOrigin( long *x, long *y ) -{ - if (x) *x = m_internalDeviceOriginX; - if (y) *y = m_internalDeviceOriginY; -}; - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -}; - -long wxDC::DeviceToLogicalX(long x) const -{ - return XDEV2LOG(x); -}; - -long wxDC::DeviceToLogicalY(long y) const -{ - return YDEV2LOG(y); -}; - -long wxDC::DeviceToLogicalXRel(long x) const -{ - return XDEV2LOGREL(x); -}; - -long wxDC::DeviceToLogicalYRel(long y) const -{ - return YDEV2LOGREL(y); -}; - -long wxDC::LogicalToDeviceX(long x) const -{ - return XLOG2DEV(x); -}; - -long wxDC::LogicalToDeviceY(long y) const -{ - return YLOG2DEV(y); -}; - -long wxDC::LogicalToDeviceXRel(long x) const -{ - return XLOG2DEVREL(x); -}; - -long wxDC::LogicalToDeviceYRel(long y) const -{ - return YLOG2DEVREL(y); -}; - -void wxDC::CalcBoundingBox( long x, long y ) -{ - if (x < m_minX) m_minX = x; - if (y < m_minY) m_minY = y; - if (x > m_maxX) m_maxX = x; - if (y > m_maxY) m_maxY = y; -}; - -void wxDC::ComputeScaleAndOrigin(void) -{ - // CMB: copy scale to see if it changes - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; - - m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX; - m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY; - - // CMB: if scale has changed call SetPen to recalulate the line width - if (m_scaleX != origScaleX || m_scaleY != origScaleY) - { - // this is a bit artificial, but we need to force wxDC to think - // the pen has changed - wxPen* pen = GetPen(); - wxPen tempPen; - m_pen = tempPen; - SetPen(pen); - } -}; - diff --git a/src/qt/dcclient.cpp b/src/qt/dcclient.cpp deleted file mode 100644 index e25920d94f..0000000000 --- a/src/qt/dcclient.cpp +++ /dev/null @@ -1,620 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: wxClientDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -//IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxDC) -//IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxDC) -#endif - - -wxPaintDC::wxPaintDC(void) -{ -}; - -wxPaintDC::wxPaintDC( wxWindow *window ) -{ -}; - -wxPaintDC::~wxPaintDC(void) -{ -}; - -void wxPaintDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1), - wxColour *WXUNUSED(col), int WXUNUSED(style) ) -{ -}; - -bool wxPaintDC::GetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - return FALSE; -}; - -void wxPaintDC::DrawLine( long x1, long y1, long x2, long y2 ) -{ - if (!Ok()) return; - -}; - -void wxPaintDC::CrossHair( long x, long y ) -{ - if (!Ok()) return; - -}; - -void wxPaintDC::DrawArc( long x1, long y1, long x2, long y2, double xc, double yc ) -{ - if (!Ok()) return; - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV((long)xc); - long yyc = YLOG2DEV((long)yc); - double dx = xx1 - xxc; - double dy = yy1 - yyc; - double radius = sqrt(dx*dx+dy*dy); - long r = (long)radius; - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else - if (radius == 0.0) - { - radius1 = radius2 = 0.0; - } - else - { - radius1 = (xx1 - xxc == 0) ? - (yy1 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy1-yyc), double(xx1-xxc)) * RAD2DEG; - radius2 = (xx2 - xxc == 0) ? - (yy2 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy2-yyc), double(xx2-xxc)) * RAD2DEG; - }; - long alpha1 = long(radius1 * 64.0); - long alpha2 = long((radius2 - radius1) * 64.0); - while (alpha2 <= 0) alpha2 += 360*64; - while (alpha1 > 360*64) alpha1 -= 360*64; - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; - -}; - -void wxPaintDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - long start = long(sa * 64.0); - long end = long(ea * 64.0); - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxPaintDC::DrawPoint( long x, long y ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxPaintDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - for (int i = 0; i < n-1; i++) - { - long x1 = XLOG2DEV(points[i].x + xoffset); - long x2 = XLOG2DEV(points[i+1].x + xoffset); - long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste - long y2 = YLOG2DEV(points[i+1].y + yoffset); - }; -}; - -void wxPaintDC::DrawLines( wxList *points, long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - wxNode *node = points->First(); - while (node->Next()) - { - wxPoint *point = (wxPoint*)node->Data(); - wxPoint *npoint = (wxPoint*)node->Next()->Data(); - long x1 = XLOG2DEV(point->x + xoffset); - long x2 = XLOG2DEV(npoint->x + xoffset); - long y1 = YLOG2DEV(point->y + yoffset); // and again... - long y2 = YLOG2DEV(npoint->y + yoffset); - node = node->Next(); - }; -}; - -void wxPaintDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[], - long WXUNUSED(xoffset), long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxPaintDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset), - long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxPaintDC::DrawRectangle( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxPaintDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - if (!Ok()) return; - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - long rr = XLOG2DEVREL((long)radius); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - // CMB: if radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rr == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - ww--; - hh--; - } - - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - long dd = 2 * rr; - if (dd > ww) dd = ww; - if (dd > hh) dd = hh; - rr = dd / 2; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - }; - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - }; -}; - -void wxPaintDC::DrawEllipse( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -bool wxPaintDC::CanDrawBitmap(void) const -{ - return TRUE; -}; - -void wxPaintDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask ) -{ - if (!Ok()) return; - - if (!icon.Ok()) return; - - int xx = XLOG2DEV(x); - int yy = YLOG2DEV(y); - -}; - -bool wxPaintDC::Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) ) -{ - if (!Ok()) return FALSE; - - // CMB 20/5/98: add blitting of bitmaps - if (source->IsKindOf(CLASSINFO(wxMemoryDC))) - { - wxMemoryDC* srcDC = (wxMemoryDC*)source; - /* - GdkBitmap* bmap = srcDC->m_selected.GetBitmap(); - if (bmap) - { - gdk_draw_bitmap ( - m_window, - m_textGC, - bmap, - source->DeviceToLogicalX(xsrc), source->DeviceToLogicalY(ysrc), - XLOG2DEV(xdest), YLOG2DEV(ydest), - source->DeviceToLogicalXRel(width), source->DeviceToLogicalYRel(height) - ); - return TRUE; - } - */ - } - - return TRUE; -}; - -void wxPaintDC::DrawText( const wxString &text, long x, long y, bool -WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - - - -bool wxPaintDC::CanGetTextExtent(void) const -{ - return TRUE; -}; - -void wxPaintDC::GetTextExtent( const wxString &string, long *width, long *height, - long *WXUNUSED(descent), long *WXUNUSED(externalLeading), - wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - -long wxPaintDC::GetCharWidth(void) -{ - if (!Ok()) return 0; - -}; - -long wxPaintDC::GetCharHeight(void) -{ - if (!Ok()) return 0; - -}; - -void wxPaintDC::Clear(void) -{ - if (!Ok()) return; - -}; - -void wxPaintDC::SetFont( const wxFont &font ) -{ - if (!Ok()) return; - - m_font = font; -}; - -void wxPaintDC::SetPen( const wxPen &pen ) -{ - if (!Ok()) return; - - if (m_pen == pen) return; - - m_pen = pen; - - if (!m_pen.Ok()) return; -}; - -void wxPaintDC::SetBrush( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_brush == brush) return; - - m_brush = brush; - - if (!m_brush.Ok()) return; - -}; - -void wxPaintDC::SetBackground( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_backgroundBrush == brush) return; - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) return; - -}; - -void wxPaintDC::SetLogicalFunction( int function ) -{ - if (m_logicalFunction == function) return; -}; - -void wxPaintDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textForegroundColour == col) return; - - m_textForegroundColour = col; - if (!m_textForegroundColour.Ok()) return; -}; - -void wxPaintDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textBackgroundColour == col) return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) return; -}; - -void wxPaintDC::SetBackgroundMode( int mode ) -{ - m_backgroundMode = mode; - - if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT) - { - } -}; - -void wxPaintDC::SetPalette( const wxPalette& WXUNUSED(palette) ) -{ -}; - -void wxPaintDC::SetClippingRegion( long x, long y, long width, long height ) -{ - wxDC::SetClippingRegion( x, y, width, height ); - -}; - -void wxPaintDC::DestroyClippingRegion(void) -{ - wxDC::DestroyClippingRegion(); - -}; - -// ----------------------------------- spline code ---------------------------------------- - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(void); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); - -wxList wx_spline_point_list; - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point( x1, y1 ); - wx_spline_add_point( xmid, ymid ); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - -/* utilities used by spline drawing routines */ - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack(void) -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint ; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0 ); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -void wxPaintDC::DrawOpenSpline( wxList *points ) -{ - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point( cx1, cy1 ); - wx_spline_add_point( x2, y2 ); - - wx_spline_draw_point_array( this ); -}; diff --git a/src/qt/dcmemory.cpp b/src/qt/dcmemory.cpp deleted file mode 100644 index c6066bb1ab..0000000000 --- a/src/qt/dcmemory.cpp +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC, wxDC) -#endif - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxPaintDC) - -wxMemoryDC::wxMemoryDC(void) -{ - m_ok = FALSE; -}; - -wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) -{ - m_ok = FALSE; -}; - -wxMemoryDC::~wxMemoryDC(void) -{ -}; - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_selected = bitmap; - if (m_selected.Ok()) - { - } - else - { - m_ok = FALSE; - }; -}; - -void wxMemoryDC::GetSize( int *width, int *height ) const -{ - if (m_selected.Ok()) - { - if (width) (*width) = m_selected.GetWidth(); - if (height) (*height) = m_selected.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - }; -}; - - diff --git a/src/qt/dcscreen.cpp b/src/qt/dcscreen.cpp deleted file mode 100644 index 04bbf4f353..0000000000 --- a/src/qt/dcscreen.cpp +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxPaintDC) -#endif - -// Create a DC representing the whole screen -wxScreenDC::wxScreenDC() -{ - // TODO -} - -wxScreenDC::~wxScreenDC() -{ - // TODO -} - diff --git a/src/qt/dialog.cpp b/src/qt/dialog.cpp deleted file mode 100644 index c486c876cb..0000000000 --- a/src/qt/dialog.cpp +++ /dev/null @@ -1,293 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/settings.h" - -// Lists to keep track of windows, so we can disable/enable them -// for modal dialogs -wxList wxModalDialogs; -wxList wxModelessWindows; // Frames and modeless dialogs -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - -BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -wxDialog::wxDialog() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -} - -bool wxDialog::Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_windowStyle = style; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - SetName(name); - - if (!parent) - wxTopLevelWindows.Append(this); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create dialog - - return FALSE; -} - -void wxDialog::SetModal(bool flag) -{ - if ( flag ) - m_windowStyle |= wxDIALOG_MODAL ; - else - if ( m_windowStyle & wxDIALOG_MODAL ) - m_windowStyle -= wxDIALOG_MODAL ; - - wxModelessWindows.DeleteObject(this); - if (!flag) - wxModelessWindows.Append(this); -} - -wxDialog::~wxDialog() -{ - // TODO - wxTopLevelWindows.DeleteObject(this); - - if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL ) - wxModelessWindows.DeleteObject(this); - - // If this is the last top-level window, exit. - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO: exit - } - } -} - -// By default, pressing escape cancels the dialog -void wxDialog::OnCharHook(wxKeyEvent& event) -{ - if (GetHWND()) - { - if (event.m_keyCode == WXK_ESCAPE) - { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - - return; - } - } - // We didn't process this event. - event.Skip(); -} - -void wxDialog::Iconize(bool WXUNUSED(iconize)) -{ - // TODO -} - -bool wxDialog::IsIconized() const -{ - // TODO - return FALSE; -} - -void wxDialog::SetClientSize(int width, int height) -{ - // TODO -} - -void wxDialog::GetPosition(int *x, int *y) const -{ - // TODO -} - -bool wxDialog::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxDialog::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxDialog::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxDialog::Centre(int direction) -{ - int x_offset,y_offset ; - int display_width, display_height; - int width, height, x, y; - wxFrame *frame ; - if (direction & wxCENTER_FRAME) - { - frame = (wxFrame*)GetParent() ; - if (frame) - { - frame->GetPosition(&x_offset,&y_offset) ; - frame->GetSize(&display_width,&display_height) ; - } - } - else - frame = NULL ; - - if (frame==NULL) - { - wxDisplaySize(&display_width, &display_height); - x_offset = 0 ; - y_offset = 0 ; - } - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x+x_offset, y+y_offset, width, height); -} - -// Replacement for Show(TRUE) for modal dialogs - returns return code -int wxDialog::ShowModal() -{ - m_windowStyle |= wxDIALOG_MODAL; - // TODO: modal showing - Show(TRUE); - return GetReturnCode(); -} - -void wxDialog::EndModal(int retCode) -{ - SetReturnCode(retCode); - // TODO modal un-showing - Show(FALSE); -} - -// Standard buttons -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnApply(wxCommandEvent& event) -{ - if (Validate()) - TransferDataFromWindow(); - // TODO probably need to disable the Apply button until things change again -} - -void wxDialog::OnCancel(wxCommandEvent& event) -{ - if ( IsModal() ) - EndModal(wxID_CANCEL); - else - { - SetReturnCode(wxID_CANCEL); - this->Show(FALSE); - } -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList closing; - - if ( closing.Member(this) ) - return; - - closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog - - closing.DeleteObject(this); -} - -// Destroy the window (delayed, if a managed window) -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); -} - diff --git a/src/qt/dnd.cpp b/src/qt/dnd.cpp deleted file mode 100644 index ec82cb6dc1..0000000000 --- a/src/qt/dnd.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget, wxDropSource, wxDataObject implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/dnd.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" - -// ---------------------------------------------------------------------------- -// global -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxDropTarget -// ---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ -}; - -wxDropTarget::~wxDropTarget() -{ -}; - -// ---------------------------------------------------------------------------- -// wxTextDropTarget -// ---------------------------------------------------------------------------- - -bool wxTextDropTarget::OnDrop( long x, long y, const void *pData ) -{ - OnDropText( x, y, (const char*)pData ); - return TRUE; -}; - -bool wxTextDropTarget::OnDropText( long x, long y, const char *psz ) -{ - printf( "Got dropped text: %s.\n", psz ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -}; - -size_t wxTextDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxTextDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_TEXT; -} - -// ---------------------------------------------------------------------------- -// wxFileDropTarget -// ---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnDropFiles( long x, long y, size_t nFiles, const char * const WXUNUSED(aszFiles)[] ) -{ - printf( "Got %d dropped files.\n", (int)nFiles ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -} - -bool wxFileDropTarget::OnDrop(long x, long y, const void *WXUNUSED(pData) ) -{ - char *str = "/this/is/a/path.txt"; - - return OnDropFiles(x, y, 1, &str ); -} - -size_t wxFileDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxFileDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_FILENAME; -} - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// drag request - -wxDropSource::wxDropSource( wxWindow *win ) -{ - // TODO - m_window = win; - m_data = NULL; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -wxDropSource::wxDropSource( wxDataObject &data, wxWindow *win ) -{ - // TODO - m_window = win; - m_data = &data; - - m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -void wxDropSource::SetData( wxDataObject &data ) -{ - m_data = &data; -}; - -wxDropSource::~wxDropSource(void) -{ -}; - -wxDropSource::DragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - // TODO - return Error; -}; - diff --git a/src/qt/fdiag.xbm b/src/qt/fdiag.xbm deleted file mode 100644 index 67d3b4732a..0000000000 --- a/src/qt/fdiag.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define fdiag_width 16 -#define fdiag_height 16 -static char fdiag_bits[] = { - 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, - 0x40, 0x40, 0x80, 0x80, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, - 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80}; diff --git a/src/qt/filedlg.cpp b/src/qt/filedlg.cpp deleted file mode 100644 index cf096037d6..0000000000 --- a/src/qt/filedlg.cpp +++ /dev/null @@ -1,142 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: wxFileDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/filedlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxFileDialog, wxDialog) -#endif - -char *wxFileSelector(const char *title, - const char *defaultDir, const char *defaultFileName, - const char *defaultExtension, const char *filter, int flags, - wxWindow *parent, int x, int y) -{ - // If there's a default extension specified but no filter, we create a suitable - // filter. - - wxString filter2(""); - if ( defaultExtension && !filter ) - filter2 = wxString("*.") + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - else - defaultDirString = ""; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - else - defaultFilenameString = ""; - - wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return NULL; -} - -char *wxFileSelectorEx(const char *title, - const char *defaultDir, - const char *defaultFileName, - int* defaultFilterIndex, - const char *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "", - defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - strcpy(wxBuffer, (const char *)fileDialog.GetPath()); - return wxBuffer; - } - else - return NULL; -} - -wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = ""; - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_filterIndex = 1; -} - -int wxFileDialog::ShowModal() -{ - // TODO - wxID_CANCEL; -} - -// Generic file load/save dialog -static char * -wxDefaultFileSelector(bool load, const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - char *ext = (char *)extension; - - char prompt[50]; - wxString str; - if (load) - str = "Load %s file"; - else - str = "Save %s file"; - sprintf(prompt, wxGetTranslation(str), what); - - if (*ext == '.') ext++; - char wild[60]; - sprintf(wild, "*.%s", ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -char * -wxLoadFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - - -// Generic file save dialog -char * -wxSaveFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(FALSE, what, extension, default_name, parent); -} - - diff --git a/src/qt/font.cpp b/src/qt/font.cpp deleted file mode 100644 index 5835259696..0000000000 --- a/src/qt/font.cpp +++ /dev/null @@ -1,241 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/font.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) -#endif - -wxFontRefData::wxFontRefData() -{ - m_style = 0; - m_pointSize = 0; - m_family = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::wxFontRefData(const wxFontRefData& data) -{ - m_style = data.m_style; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::~wxFontRefData() -{ - // TODO: delete font data -} - -wxFont::wxFont() -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - Create(pointSize, family, style, weight, underlined, faceName); - - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); - - return TRUE; -} - -wxFont::~wxFont() -{ - if (wxTheFontList) - wxTheFontList->DeleteObject(this); -} - -bool wxFont::RealizeResource() -{ - // TODO: create the font (if there is a native font object) - return FALSE; -} - -void wxFont::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; - - RealizeResource(); -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; - - RealizeResource(); -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; - - RealizeResource(); -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; - - RealizeResource(); -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; - - RealizeResource(); -} - -wxString wxFont::GetFamilyString() const -{ - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; -} - -/* New font system */ -wxString wxFont::GetFaceName() const -{ - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString() const -{ - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; -} - -wxString wxFont::GetWeightString() const -{ - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; -} - diff --git a/src/qt/frame.cpp b/src/qt/frame.cpp deleted file mode 100644 index f371fe0724..0000000000 --- a/src/qt/frame.cpp +++ /dev/null @@ -1,535 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: wxFrame -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" - -extern wxList wxModelessWindows; -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_ACTIVATE(wxFrame::OnActivate) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) - EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) - EVT_IDLE(wxFrame::OnIdle) - EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) -#endif - -#if wxUSE_NATIVE_STATUSBAR -bool wxFrame::m_useNativeStatusBar = TRUE; -#else -bool wxFrame::m_useNativeStatusBar = FALSE; -#endif - -wxFrame::wxFrame() -{ - m_frameToolBar = NULL ; - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_windowParent = NULL; - m_iconized = FALSE; -} - -bool wxFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - m_frameMenuBar = NULL; - m_frameToolBar = NULL ; - m_frameStatusBar = NULL; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - wxModelessWindows.Append(this); - - // TODO: create frame. - - return FALSE; -} - -wxFrame::~wxFrame() -{ - wxTopLevelWindows.DeleteObject(this); - - if (m_frameStatusBar) - delete m_frameStatusBar; - if (m_frameMenuBar) - delete m_frameMenuBar; - -/* Check if it's the last top-level window */ - - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO signal to the app that we're going to close - } - } - - wxModelessWindows.DeleteObject(this); -} - -// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. -void wxFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxFrame::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxFrame::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -bool wxFrame::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxFrame::Iconize(bool iconize) -{ - // TODO -} - -// Equivalent to maximize/restore in Windows -void wxFrame::Maximize(bool maximize) -{ - // TODO -} - -bool wxFrame::IsIconized() const -{ - // TODO - return FALSE; -} - -void wxFrame::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxFrame::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; - // TODO -} - -void wxFrame::SetAcceleratorTable(const wxAcceleratorTable& accel) -{ - m_acceleratorTable = accel; -} - -wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - wxStatusBar *statusBar = NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(* statusBar->GetFont()); - - long x, y; - dc.GetTextExtent("X", &x, &y); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize(-1, -1, 100, height); - - statusBar->SetFieldsCount(number); - return statusBar; -} - -wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - // Calling CreateStatusBar twice is an error. - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, - "recreating status bar in wxFrame" ); - - m_frameStatusBar = OnCreateStatusBar(number, style, id, - name); - if ( m_frameStatusBar ) - { - PositionStatusBar(); - return m_frameStatusBar; - } - else - return NULL; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[]) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); - PositionStatusBar(); -} - -void wxFrame::PositionStatusBar() -{ - int w, h; - GetClientSize(&w, &h); - int sw, sh; - m_frameStatusBar->GetSize(&sw, &sh); - - // Since we wish the status bar to be directly under the client area, - // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); -} - -void wxFrame::SetMenuBar(wxMenuBar *menuBar) -{ - if (!menuBar) - { - m_frameMenuBar = NULL; - return; - } - - m_frameMenuBar = menuBar; - - // TODO -} - -void wxFrame::Fit() -{ - // Work out max. size - wxNode *node = GetChildren()->First(); - int max_width = 0; - int max_height = 0; - while (node) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *win = (wxWindow *)node->Data(); - - if (!win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog))) - { - int width, height; - int x, y; - win->GetSize(&width, &height); - win->GetPosition(&x, &y); - - if ((x + width) > max_width) - max_width = x + width; - if ((y + height) > max_height) - max_height = y + height; - } - node = node->Next(); - } - SetClientSize(max_width, max_height); -} - -// Responds to colour changes, and passes event on to children. -void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - if ( m_frameStatusBar ) - { - wxSysColourChangedEvent event2; - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->ProcessEvent(event2); - } - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -// Default resizing behaviour - if only ONE subwindow, -// resize to client rectangle size -void wxFrame::OnSize(wxSizeEvent& event) -{ - // if we're using constraints - do use them - #if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) { - Layout(); - return; - } - #endif - - // do we have _exactly_ one child? - wxWindow *child = NULL; - for ( wxNode *node = GetChildren()->First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog)) && - (win != GetStatusBar()) && - (win != GetToolBar()) ) - { - if ( child ) - return; // it's our second subwindow - nothing to do - child = win; - } - } - - if ( child ) { - // we have exactly one child - set it's size to fill the whole frame - int clientW, clientH; - GetClientSize(&clientW, &clientH); - - int x = 0; - int y = 0; - - child->SetSize(x, y, clientW, clientH); - } -} - -// Default activation behaviour - set the focus for the first child -// subwindow found. -void wxFrame::OnActivate(wxActivateEvent& event) -{ - for(wxNode *node = GetChildren()->First(); node; node = node->Next()) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && - !child->IsKindOf(CLASSINFO(wxDialog))) - { -#if WXDEBUG > 1 - wxDebugMsg("wxFrame::OnActivate: about to set the child's focus.\n"); -#endif - child->SetFocus(); - return; - } - } -} - -// The default implementation for the close window event. -void wxFrame::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -// Destroy the window (delayed, if a managed window) -bool wxFrame::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -// Default menu selection behaviour - display a help string -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ - if (GetStatusBar()) - { - if (event.GetMenuId() == -1) - SetStatusText(""); - else - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - wxString helpString(menuBar->GetHelpString(event.GetMenuId())); - if (helpString != "") - SetStatusText(helpString); - } - } - } -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::Centre(int direction) -{ - int display_width, display_height, width, height, x, y; - wxDisplaySize(&display_width, &display_height); - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x, y, width, height); -} - -// Call this to simulate a menu command -void wxFrame::Command(int id) -{ - ProcessCommand(id); -} - -void wxFrame::ProcessCommand(int id) -{ - wxCommandEvent commandEvent(wxEVENT_TYPE_MENU_COMMAND, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar() ; - if (!bar) - return; - -/* TODO: check the menu item if required - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } -*/ - - GetEventHandler()->ProcessEvent(commandEvent); -} - -// Checks if there is a toolbar, and returns the first free client position -wxPoint wxFrame::GetClientAreaOrigin() const -{ - wxPoint pt(0, 0); - if (GetToolBar()) - { - int w, h; - GetToolBar()->GetSize(& w, & h); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - pt.x += w; - } - else - { - pt.y += h; - } - } - return pt; -} - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -void wxFrame::PositionToolBar() -{ - int cw, ch; - - // TODO: we actually need to use the low-level client size, before - // the toolbar/status bar were added. - // So DEFINITELY replace the line below with something appropriate. - - wxCHECK_MSG( TRUE, FALSE, - "PositionToolBar not implemented properly, see frame.cpp" ); - - GetClientSize(& cw, &ch); - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - ch -= statusY; - } - - if (GetToolBar()) - { - int tw, th; - GetToolBar()->GetSize(& tw, & th); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS - // means, pretend we don't have toolbar/status bar, so we - // have the original client size. - GetToolBar()->SetSize(0, 0, tw, ch, wxSIZE_NO_ADJUSTMENTS); - } - else - { - // Use the 'real' position - GetToolBar()->SetSize(0, 0, cw, th, wxSIZE_NO_ADJUSTMENTS); - } - } -} - diff --git a/src/qt/gauge.cpp b/src/qt/gauge.cpp deleted file mode 100644 index 8e11c5001b..0000000000 --- a/src/qt/gauge.cpp +++ /dev/null @@ -1,105 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif - -bool wxGauge::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_rangeMax = range; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - - // TODO - return FALSE; -} - -void wxGauge::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxGauge::SetShadowWidth(int w) -{ - // TODO optional -} - -void wxGauge::SetBezelFace(int w) -{ - // TODO optional -} - -void wxGauge::SetRange(int r) -{ - m_rangeMax = r; - // TODO -} - -void wxGauge::SetValue(int pos) -{ - m_gaugePos = pos; - // TODO -} - -int wxGauge::GetShadowWidth() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetBezelFace() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetRange() const -{ - return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - return m_gaugePos; -} - -void wxGauge::SetForegroundColour(const wxColour& col) -{ - m_foregroundColour = col ; -} - -void wxGauge::SetBackgroundColour(const wxColour& col) -{ - m_backgroundColour = col ; -} - diff --git a/src/qt/gdiobj.cpp b/src/qt/gdiobj.cpp deleted file mode 100644 index 63697c8354..0000000000 --- a/src/qt/gdiobj.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - -// TODO: Nothing to do, unless you want to. diff --git a/src/qt/horiz.xbm b/src/qt/horiz.xbm deleted file mode 100644 index ff3309bcc4..0000000000 --- a/src/qt/horiz.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define horiz_width 15 -#define horiz_height 15 -static char horiz_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00}; diff --git a/src/qt/icon.cpp b/src/qt/icon.cpp deleted file mode 100644 index 6deee7dbdc..0000000000 --- a/src/qt/icon.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -#endif - -/* - * Icons - */ - - -wxIconRefData::wxIconRefData() -{ - // TODO: init icon handle -} - -wxIconRefData::~wxIconRefData() -{ - // TODO: destroy icon handle -} - -wxIcon::wxIcon() -{ -} - -wxIcon::wxIcon(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height)) -{ -} - -wxIcon::wxIcon(const wxString& icon_file, long flags, - int desiredWidth, int desiredHeight) - -{ - LoadFile(icon_file, flags, desiredWidth, desiredHeight); -} - -wxIcon::~wxIcon() -{ -} - -bool wxIcon::LoadFile(const wxString& filename, long type, - int desiredWidth, int desiredHeight) -{ - UnRef(); - - m_refData = new wxIconRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler ) - return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight); - else - return FALSE; -} - diff --git a/src/qt/joystick.cpp b/src/qt/joystick.cpp deleted file mode 100644 index 6677277f48..0000000000 --- a/src/qt/joystick.cpp +++ /dev/null @@ -1,279 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition() const -{ - // TODO - return wxPoint(0, 0); -} - -int wxJoystick::GetZPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetButtonState() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVCTSPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMovementThreshold() const -{ - // TODO - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ - // TODO -} - -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk() const -{ - // TODO - return FALSE; -} - -int wxJoystick::GetNumberJoysticks() const -{ - // TODO - return 0; -} - -int wxJoystick::GetManufacturerId() const -{ - // TODO - return 0; -} - -int wxJoystick::GetProductId() const -{ - // TODO - return 0; -} - -wxString wxJoystick::GetProductName() const -{ - // TODO - return wxString(""); -} - -int wxJoystick::GetXMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetXMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMax() const -{ - // TODO - return 0; -} - -bool wxJoystick::HasRudder() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasZ() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasU() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV4Dir() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOVCTS() const -{ - // TODO - return FALSE; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq) -{ - // TODO - return FALSE; -} - -bool wxJoystick::ReleaseCapture() -{ - // TODO - return FALSE; -} - diff --git a/src/qt/listbox.cpp b/src/qt/listbox.cpp deleted file mode 100644 index a54523ab3d..0000000000 --- a/src/qt/listbox.cpp +++ /dev/null @@ -1,240 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: wxListBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listbox.h" -#endif - -#include "wx/listbox.h" - -#include "wx/dynarray.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif - -// ============================================================================ -// list box control implementation -// ============================================================================ - -// Listbox item -wxListBox::wxListBox() -{ - m_noItems = 0; - m_selected = 0; -} - -bool wxListBox::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - m_noItems = n; - m_selected = 0; - - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - wxSystemSettings settings; - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - - m_windowId = ( id == -1 ) ? (int)NewControlId() : id; - - // TODO create listbox - - return FALSE; -} - -wxListBox::~wxListBox() -{ -} - -void wxListBox::SetupColours() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); -} - -void wxListBox::SetFirstItem(int N) -{ - // TODO -} - -void wxListBox::SetFirstItem(const wxString& s) -{ - // TODO -} - -void wxListBox::Delete(int N) -{ - m_noItems --; - // TODO -} - -void wxListBox::Append(const wxString& item) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Append(const wxString& item, char *Client_data) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Set(int n, const wxString *choices, char** clientData) -{ - m_noItems = n; - - // TODO -} - -int wxListBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxListBox::Clear() -{ - m_noItems = 0; - // TODO -} - -void wxListBox::SetSelection(int N, bool select) -{ - // TODO -} - -bool wxListBox::Selected(int N) const -{ - // TODO - return FALSE; -} - -void wxListBox::Deselect(int N) -{ - // TODO -} - -char *wxListBox::GetClientData(int N) const -{ - // TODO - return (char *)NULL; -} - -void wxListBox::SetClientData(int N, char *Client_data) -{ - // TODO -} - -// Return number of selections and an array of selected integers -int wxListBox::GetSelections(wxArrayInt& aSelections) const -{ - aSelections.Empty(); - -/* TODO - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - { - int no_sel = ?? - for ( int n = 0; n < no_sel; n++ ) - aSelections.Add(??); - - return no_sel; - } - else // single-selection listbox - { - aSelections.Add(??); - - return 1; - } -*/ - return 0; -} - -// Get single selection, for single choice list items -int wxListBox::GetSelection() const -{ - // TODO - return -1; -} - -// Find string for position -wxString wxListBox::GetString(int N) const -{ - // TODO - return wxString(""); -} - -void wxListBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - m_noItems += nItems; - - // TODO -} - -void wxListBox::SetString(int N, const wxString& s) -{ - // TODO -} - -int wxListBox::Number () const -{ - return m_noItems; -} - -// For single selection items only -wxString wxListBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxListBox::SetStringSelection (const wxString& s, bool flag) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel, flag); - return TRUE; - } - else - return FALSE; -} - -void wxListBox::Command (wxCommandEvent & event) -{ - if (event.m_extraLong) - SetSelection (event.m_commandInt); - else - { - Deselect (event.m_commandInt); - return; - } - ProcessCommand (event); -} - diff --git a/src/qt/mdi.cpp b/src/qt/mdi.cpp deleted file mode 100644 index 3823536063..0000000000 --- a/src/qt/mdi.cpp +++ /dev/null @@ -1,263 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" - -extern wxList wxModelessWindows; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_SIZE(wxMDIParentFrame::OnSize) - EVT_ACTIVATE(wxMDIParentFrame::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() - -#endif - -// Parent frame - -wxMDIParentFrame::wxMDIParentFrame() -{ -} - -bool wxMDIParentFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - // TODO: create MDI parent frame - - wxModelessWindows.Append(this); - - return TRUE; -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ -} - -// Get size *available for subwindows* i.e. excluding menu bar. -void wxMDIParentFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - - m_frameMenuBar = menu_bar; -} - -void wxMDIParentFrame::OnSize(wxSizeEvent& event) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - int x = 0; - int y = 0; - int width, height; - GetClientSize(&width, &height); - - if ( GetClientWindow() ) - GetClientWindow()->SetSize(x, y, width, height); -} - -void wxMDIParentFrame::OnActivate(wxActivateEvent& event) -{ - // Do nothing -} - -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - // TODO - return NULL; -} - -// Create the client window class (don't Create the window, -// just return a new class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow ; -} - -// Responds to colour changes, and passes event on to children. -void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - // TODO - - // Propagate the event to the non-top-level children - wxFrame::OnSysColourChanged(event); -} - -// MDI operations -void wxMDIParentFrame::Cascade() -{ - // TODO -} - -void wxMDIParentFrame::Tile() -{ - // TODO -} - -void wxMDIParentFrame::ArrangeIcons() -{ - // TODO -} - -void wxMDIParentFrame::ActivateNext() -{ - // TODO -} - -void wxMDIParentFrame::ActivatePrevious() -{ - // TODO -} - -// Child frame - -wxMDIChildFrame::wxMDIChildFrame() -{ -} - -bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - // TODO: create child frame - - wxModelessWindows.Append(this); - return FALSE; -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxMDIChildFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxMDIChildFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxMDIChildFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - m_frameMenuBar = menu_bar; -} - -// MDI operations -void wxMDIChildFrame::Maximize() -{ - // TODO -} - -void wxMDIChildFrame::Restore() -{ - // TODO -} - -void wxMDIChildFrame::Activate() -{ - // TODO -} - -// Client window - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) -{ - // TODO create client window - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - - return FALSE; -} - -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& event) -{ - Default(); // Default processing -} - diff --git a/src/qt/menu.cpp b/src/qt/menu.cpp deleted file mode 100644 index 217e6c8b88..0000000000 --- a/src/qt/menu.cpp +++ /dev/null @@ -1,568 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: wxMenu, wxMenuBar, wxMenuItem -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -// ============================================================================ -// headers & declarations -// ============================================================================ - -// wxWindows headers -// ----------------- - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/menuitem.h" -#include "wx/log.h" - -// other standard headers -// ---------------------- -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// Menus - -// Construct a menu with optional title (then use append) -wxMenu::wxMenu(const wxString& title, const wxFunction func) -{ - m_title = title; - m_parent = NULL; - m_eventHandler = this; - m_noItems = 0; - m_menuBar = NULL; - if (m_title != "") - { - Append(-2, m_title) ; - AppendSeparator() ; - } - - Callback(func); - - // TODO create menu -} - -// The wxWindow destructor will take care of deleting the submenus. -wxMenu::~wxMenu() -{ - // TODO destroy menu and children - - wxNode *node = m_menuItems.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - - // Delete child menus. - // Beware: they must not be appended to children list!!! - // (because order of delete is significant) - if (item->GetSubMenu()) - item->DeleteSubMenu(); - - wxNode *next = node->Next(); - delete item; - delete node; - node = next; - } -} - -void wxMenu::Break() -{ - // TODO -} - -// function appends a new item or submenu to the menu -void wxMenu::Append(wxMenuItem *pItem) -{ - // TODO - - wxCHECK_RET( pItem != NULL, "can't append NULL item to the menu" ); - - m_menuItems.Append(pItem); - - m_noItems++; -} - -void wxMenu::AppendSeparator() -{ - // TODO - Append(new wxMenuItem(this, ID_SEPARATOR)); -} - -// Pullright item -void wxMenu::Append(int Id, const wxString& label, wxMenu *SubMenu, - const wxString& helpString) -{ - Append(new wxMenuItem(this, Id, label, helpString, FALSE, SubMenu)); -} - -// Ordinary menu item -void wxMenu::Append(int Id, const wxString& label, - const wxString& helpString, bool checkable) -{ - // 'checkable' parameter is useless for Windows. - Append(new wxMenuItem(this, Id, label, helpString, checkable)); -} - -void wxMenu::Delete(int id) -{ - wxNode *node; - wxMenuItem *item; - int pos; - - for (pos = 0, node = m_menuItems.First(); node; node = node->Next(), pos++) { - item = (wxMenuItem *)node->Data(); - if (item->GetId() == id) - break; - } - - if (!node) - return; - - m_menuItems.DeleteNode(node); - delete item; - - // TODO -} - -void wxMenu::Enable(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't enable non-existing menu item" ); - - item->Enable(Flag); -} - -bool wxMenu::Enabled(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't get status of non-existing menu item" ); - - item->Check(Flag); -} - -bool wxMenu::Checked(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsChecked(); -} - -void wxMenu::SetTitle(const wxString& label) -{ - m_title = label ; - // TODO -} - -const wxString& wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id) ; - if (item==NULL) - return; - - if (item->GetSubMenu()==NULL) - { - // TODO - } - else - { - // TODO - } - item->SetName(label); -} - -wxString wxMenu::GetLabel(int Id) const -{ - // TODO - return wxString("") ; -} - -// Finds the item id matching the given string, -1 if not found. -int wxMenu::FindItem (const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)itemString, buf1); - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - if (item->GetSubMenu()) - { - int ans = item->GetSubMenu()->FindItem(itemString); - if (ans > -1) - return ans; - } - if ( !item->IsSeparator() ) - { - wxStripMenuCodes((char *)item->GetName().c_str(), buf2); - if (strcmp(buf1, buf2) == 0) - return item->GetId(); - } - } - - return -1; -} - -wxMenuItem *wxMenu::FindItemForId(int itemId, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - - if (item->GetId() == itemId) - { - if (itemMenu) - *itemMenu = (wxMenu *) this; - return item; - } - - if (item->GetSubMenu()) - { - wxMenuItem *ans = item->GetSubMenu()->FindItemForId (itemId, itemMenu); - if (ans) - return ans; - } - } - - if (itemMenu) - *itemMenu = NULL; - return NULL; -} - -void wxMenu::SetHelpString(int itemId, const wxString& helpString) -{ - wxMenuItem *item = FindItemForId (itemId); - if (item) - item->SetHelp(helpString); -} - -wxString wxMenu::GetHelpString (int itemId) const -{ - wxMenuItem *item = FindItemForId (itemId); - wxString str(""); - return (item == NULL) ? str : item->GetHelp(); -} - -void wxMenu::ProcessCommand(wxCommandEvent & event) -{ - bool processed = FALSE; - - // Try a callback - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - processed = TRUE; - } - - // Try the menu's event handler - if ( !processed && GetEventHandler()) - { - processed = GetEventHandler()->ProcessEvent(event); - } - - // Try the window the menu was popped up from (and up - // through the hierarchy) - if ( !processed && GetInvokingWindow()) - processed = GetInvokingWindow()->ProcessEvent(event); -} - -bool wxWindow::PopupMenu(wxMenu *menu, int x, int y) -{ - // TODO - return FALSE; -} - -// Menu Bar -wxMenuBar::wxMenuBar() -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::wxMenuBar(int n, wxMenu *Mmnus[], const wxString titles[]) -{ - m_eventHandler = this; - m_menuCount = n; - m_menus = menus; - m_titles = new wxString[n]; - int i; - for ( i = 0; i < n; i++ ) - m_titles[i] = titles[i]; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::~wxMenuBar() -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - delete m_menus[i]; - } - delete[] m_menus; - delete[] m_titles; - - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus to enable/disable items -void wxMenuBar::Enable(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - // TODO -} - -void wxMenuBar::EnableTop(int pos, bool flag) -{ - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus -void wxMenuBar::Check(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - if (!item->IsCheckable()) - return ; - - // TODO -} - -bool wxMenuBar::Checked(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE; -} - -bool wxMenuBar::Enabled(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE ; -} - - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return; - - // TODO -} - -wxString wxMenuBar::GetLabel(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return wxString(""); - - // TODO - return wxString("") ; -} - -void wxMenuBar::SetLabelTop(int pos, const wxString& label) -{ - // TODO -} - -wxString wxMenuBar::GetLabelTop(int pos) const -{ - // TODO - return wxString(""); -} - -bool wxMenuBar::OnDelete(wxMenu *a_menu, int pos) -{ - // TODO - return FALSE; -} - -bool wxMenuBar::OnAppend(wxMenu *a_menu, const char *title) -{ - // TODO - return FALSE; -} - -void wxMenuBar::Append (wxMenu * menu, const wxString& title) -{ - if (!OnAppend(menu, title)) - return; - - m_menuCount ++; - wxMenu **new_menus = new wxMenu *[m_menuCount]; - wxString *new_titles = new wxString[m_menuCount]; - int i; - - for (i = 0; i < m_menuCount - 1; i++) - { - new_menus[i] = m_menus[i]; - m_menus[i] = NULL; - new_titles[i] = m_titles[i]; - m_titles[i] = ""; - } - if (m_menus) - { - delete[]m_menus; - delete[]m_titles; - } - m_menus = new_menus; - m_titles = new_titles; - - m_menus[m_menuCount - 1] = (wxMenu *)menu; - m_titles[m_menuCount - 1] = title; - - // TODO -} - -void wxMenuBar::Delete(wxMenu * menu, int i) -{ - int j; - int ii = (int) i; - - if (menu != 0) - { - for (ii = 0; ii < m_menuCount; ii++) - { - if (m_menus[ii] == menu) - break; - } - if (ii >= m_menuCount) - return; - } else - { - if (ii < 0 || ii >= m_menuCount) - return; - menu = m_menus[ii]; - } - - if (!OnDelete(menu, ii)) - return; - - menu->SetParent(NULL); - - -- m_menuCount; - for (j = ii; j < m_menuCount; j++) - { - m_menus[j] = m_menus[j + 1]; - m_titles[j] = m_titles[j + 1]; - } -} - -// Find the menu menuString, item itemString, and return the item id. -// Returns -1 if none found. -int wxMenuBar::FindMenuItem (const wxString& menuString, const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)menuString, buf1); - int i; - for (i = 0; i < m_menuCount; i++) - { - wxStripMenuCodes ((char *)(const char *)m_titles[i], buf2); - if (strcmp (buf1, buf2) == 0) - return m_menus[i]->FindItem (itemString); - } - return -1; -} - -wxMenuItem *wxMenuBar::FindItemForId (int Id, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - int i; - for (i = 0; i < m_menuCount; i++) - if ((item = m_menus[i]->FindItemForId (Id, itemMenu))) - return item; - return NULL; -} - -void wxMenuBar::SetHelpString (int Id, const wxString& helpString) -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - { - m_menus[i]->SetHelpString (Id, helpString); - return; - } - } -} - -wxString wxMenuBar::GetHelpString (int Id) const -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - eturn wxString(m_menus[i]->GetHelpString (Id)); - } - return wxString(""); -} - - diff --git a/src/qt/notebook.cpp b/src/qt/notebook.cpp deleted file mode 100644 index aecb879f4b..0000000000 --- a/src/qt/notebook.cpp +++ /dev/null @@ -1,371 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: implementation of wxNotebook -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -#include -#include -#include -#include - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange) - - EVT_SIZE(wxNotebook::OnSize) - EVT_SET_FOCUS(wxNotebook::OnSetFocus) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNotebook construction -// ---------------------------------------------------------------------------- - -// common part of all ctors -void wxNotebook::Init() -{ - m_pImageList = NULL; - m_nSelection = -1; -} - -// default for dynamic class -wxNotebook::wxNotebook() -{ - Init(); -} - -// the same arguments as for wxControl -wxNotebook::wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - Create(parent, id, pos, size, style, name); -} - -// Create() function -bool wxNotebook::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // base init - SetName(name); - SetParent(parent); - - m_windowId = id == -1 ? NewControlId() : id; - - // colors and font - m_backgroundColour = wxColour(GetSysColor(COLOR_BTNFACE)); - m_foregroundColour = *wxBLACK ; - - // style - m_windowStyle = style; - - if ( parent != NULL ) - parent->AddChild(this); - - // TODO - - return FALSE; -} - -// dtor -wxNotebook::~wxNotebook() -{ -} - -// ---------------------------------------------------------------------------- -// wxNotebook accessors -// ---------------------------------------------------------------------------- -int wxNotebook::GetPageCount() const -{ - return m_aPages.Count(); -} - -int wxNotebook::GetRowCount() const -{ - // TODO - return 0; -} - -int wxNotebook::SetSelection(int nPage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - ChangePage(m_nSelection, nPage); - - // TODO - return 0; -} - -void wxNotebook::AdvanceSelection(bool bForward) -{ - int nSel = GetSelection(); - int nMax = GetPageCount() - 1; - if ( bForward ) - SetSelection(nSel == nMax ? 0 : nSel + 1); - else - SetSelection(nSel == 0 ? nMax : nSel - 1); -} - -bool wxNotebook::SetPageText(int nPage, const wxString& strText) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return wxString(""); -} - -int wxNotebook::GetPageImage(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return 0; -} - -bool wxNotebook::SetPageImage(int nPage, int nImage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -void wxNotebook::SetImageList(wxImageList* imageList) -{ - m_pImageList = imageList; - // TODO -} - -// ---------------------------------------------------------------------------- -// wxNotebook operations -// ---------------------------------------------------------------------------- - -// remove one page from the notebook -bool wxNotebook::DeletePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - // TODO: delete native widget page - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove all pages -bool wxNotebook::DeleteAllPages() -{ - // TODO: delete native widget pages - - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - delete m_aPages[nPage]; - - m_aPages.Clear(); - - return TRUE; -} - -// add a page to the notebook -bool wxNotebook::AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - return InsertPage(GetPageCount(), pPage, strText, bSelect, imageId); -} - -// same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); - - // TODO: insert native widget page - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - // some page must be selected: either this one or the first one if there is - // still no selection - if ( bSelect ) - m_nSelection = nPage; - else if ( m_nSelection == -1 ) - m_nSelection = 0; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -// @@@ OnSize() is used for setting the font when it's called for the first -// time because doing it in ::Create() doesn't work (for unknown reasons) -void wxNotebook::OnSize(wxSizeEvent& event) -{ - static bool s_bFirstTime = TRUE; - if ( s_bFirstTime ) { - // TODO: any first-time-size processing. - s_bFirstTime = FALSE; - } - - // TODO: all this may or may not be necessary for your platform - - // emulate page change (it's esp. important to do it first time because - // otherwise our page would stay invisible) - int nSel = m_nSelection; - m_nSelection = -1; - SetSelection(nSel); - - // fit the notebook page to the tab control's display area - int w, hl - GetSize(&w, &h); - - uint nCount = m_aPages.Count(); - for ( uint nPage = 0; nPage < nCount; nPage++ ) { - wxNotebookPage *pPage = m_aPages[nPage]; - pPage->SetSize(0, 0, w, h); - if ( pPage->GetAutoLayout() ) - pPage->Layout(); - } - - // Processing continues to next OnSize - event.Skip(); -} - -void wxNotebook::OnSelChange(wxNotebookEvent& event) -{ - // is it our tab control? - if ( event.GetEventObject() == this ) - ChangePage(event.GetOldSelection(), event.GetSelection()); - - // we want to give others a chance to process this message as well - event.Skip(); -} - -void wxNotebook::OnSetFocus(wxFocusEvent& event) -{ - // set focus to the currently selected page if any - if ( m_nSelection != -1 ) - m_aPages[m_nSelection]->SetFocus(); - - event.Skip(); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if ( event.IsWindowChange() ) { - // change pages - AdvanceSelection(event.GetDirection()); - } - else { - // pass to the parent - if ( GetParent() ) { - event.SetCurrentFocus(this); - GetParent()->ProcessEvent(event); - } - } -} - -// ---------------------------------------------------------------------------- -// wxNotebook base class virtuals -// ---------------------------------------------------------------------------- - -// override these 2 functions to do nothing: everything is done in OnSize - -void wxNotebook::SetConstraintSizes(bool /* recurse */) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase(int /* nPhase */) -{ - return TRUE; -} - -void wxNotebook::Command(wxCommandEvent& event) -{ - wxFAIL_MSG("wxNotebook::Command not implemented"); -} - -// ---------------------------------------------------------------------------- -// wxNotebook helper functions -// ---------------------------------------------------------------------------- - -// hide the currently active panel and show the new one -void wxNotebook::ChangePage(int nOldSel, int nSel) -{ - wxASSERT( nOldSel != nSel ); // impossible - - if ( nOldSel != -1 ) { - m_aPages[nOldSel]->Show(FALSE); - } - - wxNotebookPage *pPage = m_aPages[nSel]; - pPage->Show(TRUE); - pPage->SetFocus(); - - m_nSelection = nSel; -} - diff --git a/src/qt/palette.cpp b/src/qt/palette.cpp deleted file mode 100644 index 445b545f0c..0000000000 --- a/src/qt/palette.cpp +++ /dev/null @@ -1,91 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: wxPalette -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif - -/* - * Palette - * - */ - -wxPaletteRefData::wxPaletteRefData() -{ - // TODO -} - -wxPaletteRefData::~wxPaletteRefData() -{ - // TODO -} - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - Create(n, red, green, blue); -} - -wxPalette::~wxPalette() -{ -} - -bool wxPalette::FreeResource(bool force) -{ - if ( M_PALETTEDATA && M_PALETTEDATA->m_hPalette) - { - DeleteObject((HPALETTE)M_PALETTEDATA->m_hPalette); - } - return TRUE; -} - -bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - UnRef(); - - m_refData = new wxPaletteRefData; - - // TODO - - return FALSE; -} - -int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const -{ - if ( !m_refData ) - return FALSE; - - // TODO - return FALSE; -} - -bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const -{ - if ( !m_refData ) - return FALSE; - - if (index < 0 || index > 255) - return FALSE; - - // TODO - return FALSE; -} - - diff --git a/src/qt/pen.cpp b/src/qt/pen.cpp deleted file mode 100644 index d7b2ce264c..0000000000 --- a/src/qt/pen.cpp +++ /dev/null @@ -1,229 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: wxPen -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/pen.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -#endif - -wxPenRefData::wxPenRefData() -{ - m_style = wxSOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::~wxPenRefData() -{ - // TODO: delete data -} - -// Pens - -wxPen::wxPen() -{ - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::~wxPen() -{ - if (wxThePenList) - wxThePenList->RemovePen(this); -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxSTIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxString& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(const wxString& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(const unsigned char r, const unsigned char g, const unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(int Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxSTIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(int Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(int Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -bool wxPen::RealizeResource() -{ - // TODO: create actual pen - return FALSE; -} - - diff --git a/src/qt/radiobox.cpp b/src/qt/radiobox.cpp deleted file mode 100644 index da582d0e52..0000000000 --- a/src/qt/radiobox.cpp +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: wxRadioBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) -#endif - -// Radio box item -wxRadioBox::wxRadioBox() -{ - m_selectedButton = -1; - m_noItems = 0; - m_noRowsOrCols = 0; - m_majorDim = 0 ; -} - -bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - int majorDim, long style, - const wxValidator& val, const wxString& name) -{ - m_selectedButton = -1; - m_noItems = n; - - SetName(name); - SetValidator(val); - - parent->AddChild(this); - - m_windowStyle = (long&)style; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - m_noRowsOrCols = majorDim; - - if (majorDim==0) - m_majorDim = n ; - else - m_majorDim = majorDim ; - - - // TODO create radiobox - return FALSE; -} - - -wxRadioBox::~wxRadioBox() -{ - // TODO -} - -wxString wxRadioBox::GetLabel(int item) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - // TODO -} - -int wxRadioBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxRadioBox::SetSelection(int n) -{ - if ((n < 0) || (n >= m_noItems)) - return; - // TODO - - m_selectedButton = n; -} - -// Get single selection, for single choice list items -int wxRadioBox::GetSelection() const -{ - return m_selectedButton; -} - -// Find string for position -wxString wxRadioBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxRadioBox::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxRadioBox::GetPosition(int *x, int *y) const -{ - // TODO -} - -wxString wxRadioBox::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioBox::SetFocus() -{ - // TODO -} - -bool wxRadioBox::Show(bool show) -{ - // TODO - return FALSE; -} - -// Enable a specific button -void wxRadioBox::Enable(int item, bool enable) -{ - // TODO -} - -// Enable all controls -void wxRadioBox::Enable(bool enable) -{ - wxControl::Enable(enable); - - // TODO -} - -// Show a specific button -void wxRadioBox::Show(int item, bool show) -{ - // TODO -} - -// For single selection items only -wxString wxRadioBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxRadioBox::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxRadioBox::Command (wxCommandEvent & event) -{ - SetSelection (event.m_commandInt); - ProcessCommand (event); -} - - diff --git a/src/qt/radiobut.cpp b/src/qt/radiobut.cpp deleted file mode 100644 index 65baab38b6..0000000000 --- a/src/qt/radiobut.cpp +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: wxRadioButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -#endif - -bool wxRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style ; - - // TODO create radiobutton - return FALSE; -} - -void wxRadioButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioButton::SetValue(bool value) -{ - // TODO -} - -// Get single selection, for single choice list items -bool wxRadioButton::GetValue() const -{ - // TODO - return FALSE; -} - -void wxRadioButton::Command (wxCommandEvent & event) -{ - SetValue ( (event.m_commandInt != 0) ); - ProcessCommand (event); -} - - diff --git a/src/qt/region.cpp b/src/qt/region.cpp deleted file mode 100644 index d03d8e8020..0000000000 --- a/src/qt/region.cpp +++ /dev/null @@ -1,373 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: region.cpp -// Purpose: Region class -// Author: Markus Holzem/Julian Smart/AUTHOR -// Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Markus Holzem/Julian Smart/AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "wx/msw/region.h" -#include "wx/gdicmn.h" - -#include - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject) -#endif - -//----------------------------------------------------------------------------- -// wxRegionRefData implementation -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegionRefData : public wxGDIRefData { -public: - wxRegionRefData() - { - } - - wxRegionRefData(const wxRegionRefData& data) - { - // TODO - } - - ~wxRegionRefData() - { - // TODO - } - - HRGN m_region; -}; - - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -/*! - * Create an empty region. - */ -wxRegion::wxRegion() -{ - m_refData = new wxRegionRefData; - // TODO create empty region -} - -wxRegion::wxRegion(long x, long y, long w, long h) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxRect& rect) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -/*! - * Destroy the region. - */ -wxRegion::~wxRegion() -{ - // m_refData unrefed in ~wxObject -} - -//----------------------------------------------------------------------------- -//# Modify region -//----------------------------------------------------------------------------- - -//! Clear current region -void wxRegion::Clear() -{ - UnRef(); -} - -//! Combine rectangle (x, y, w, h) with this. -bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op) -{ - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - // If ref count is 1, that means it's 'ours' anyway so no action. - - // TODO create rect region - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO do combine region - - return FALSE; -} - -//! Union /e region with this. -bool wxRegion::Combine(const wxRegion& region, wxRegionOp op) -{ - if (region.Empty()) - return FALSE; - - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO combine region - - return FALSE; -} - -bool wxRegion::Combine(const wxRect& rect, wxRegionOp op) -{ - return Combine(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight(), op); -} - -//----------------------------------------------------------------------------- -//# Information on region -//----------------------------------------------------------------------------- - -// Outer bounds of region -void wxRegion::GetBox(long& x, long& y, long&w, long &h) const -{ - if (m_refData) { - // TODO get box - } else { - x = y = w = h = 0; - } -} - -wxRect wxRegion::GetBox() const -{ - long x, y, w, h; - GetBox(x, y, w, h); - return wxRect(x, y, w, h); -} - -// Is region empty? -bool wxRegion::Empty() const -{ - // TODO - return FALSE; -} - -//----------------------------------------------------------------------------- -//# Tests -//----------------------------------------------------------------------------- - -// Does the region contain the point (x,y)? -wxRegionContain wxRegion::Contains(long x, long y) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - return wxOutRegion; -} - -// Does the region contain the point pt? -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle (x, y, w, h)? -wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle rect -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - if (!m_refData) - return wxOutRegion; - - long x, y, w, h; - x = rect.x; - y = rect.y; - w = rect.GetWidth(); - h = rect.GetHeight(); - return Contains(x, y, w, h); -} - -/////////////////////////////////////////////////////////////////////////////// -// // -// wxRegionIterator // -// // -/////////////////////////////////////////////////////////////////////////////// - -/*! - * Initialize empty iterator - */ -wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL) -{ -} - -wxRegionIterator::~wxRegionIterator() -{ - if (m_rects) - delete[] m_rects; -} - -/*! - * Initialize iterator for region - */ -wxRegionIterator::wxRegionIterator(const wxRegion& region) -{ - m_rects = NULL; - - Reset(region); -} - -/*! - * Reset iterator for a new /e region. - */ -void wxRegionIterator::Reset(const wxRegion& region) -{ - m_current = 0; - m_region = region; - - if (m_rects) - delete[] m_rects; - - m_rects = NULL; - - if (m_region.Empty()) - m_numRects = 0; - else - { - // TODO create m_rects and fill with rectangles for this region - m_numRects = 0; - } -} - -/*! - * Increment iterator. The rectangle returned is the one after the - * incrementation. - */ -void wxRegionIterator::operator ++ () -{ - if (m_current < m_numRects) - ++m_current; -} - -/*! - * Increment iterator. The rectangle returned is the one before the - * incrementation. - */ -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_numRects) - ++m_current; -} - -long wxRegionIterator::GetX() const -{ - if (m_current < m_numRects) - return m_rects[m_current].x; - return 0; -} - -long wxRegionIterator::GetY() const -{ - if (m_current < m_numRects) - return m_rects[m_current].y; - return 0; -} - -long wxRegionIterator::GetW() const -{ - if (m_current < m_numRects) - return m_rects[m_current].width ; - return 0; -} - -long wxRegionIterator::GetH() const -{ - if (m_current < m_numRects) - return m_rects[m_current].height; - return 0; -} - diff --git a/src/qt/scrolbar.cpp b/src/qt/scrolbar.cpp deleted file mode 100644 index 0058a14f53..0000000000 --- a/src/qt/scrolbar.cpp +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: wxScrollBar -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) - -#endif - -// Scrollbar -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - if (!parent) - return FALSE; - parent->AddChild(this); - SetName(name); - SetValidator(validator); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO create scrollbar - return TRUE; -} - -wxScrollBar::~wxScrollBar() -{ -} - -void wxScrollBar::SetPosition(int viewStart) -{ - // TODO -} - -int wxScrollBar::GetPosition() const -{ - // TODO - return 0; -} - -void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh) -{ - m_viewSize = pageSize; - m_pageSize = thumbSize; - m_objectSize = range; - - // TODO -} - - -void wxScrollBar::Command(wxCommandEvent& event) -{ - SetValue(event.m_commandInt); - ProcessCommand(event); -} - diff --git a/src/qt/settings.cpp b/src/qt/settings.cpp deleted file mode 100644 index 0450dbc8e4..0000000000 --- a/src/qt/settings.cpp +++ /dev/null @@ -1,151 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: wxSettings -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" - -wxColour wxSystemSettings::GetSystemColour(int index) -{ - // TODO - return col; -} - -wxFont wxSystemSettings::GetSystemFont(int index) -{ - // TODO - return wxFont; -} - -// Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) -{ - switch ( index) - { - case wxSYS_MOUSE_BUTTONS: - // TODO - return 0; - case wxSYS_BORDER_X: - // TODO - return 0; - case wxSYS_BORDER_Y: - // TODO - return 0; - case wxSYS_CURSOR_X: - // TODO - return 0; - case wxSYS_CURSOR_Y: - // TODO - return 0; - case wxSYS_DCLICK_X: - // TODO - return 0; - case wxSYS_DCLICK_Y: - // TODO - return 0; - case wxSYS_DRAG_X: - // TODO - return 0; - case wxSYS_DRAG_Y: - // TODO - return 0; - case wxSYS_EDGE_X: - // TODO - return 0; - case wxSYS_EDGE_Y: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_HTHUMB_X: - // TODO - return 0; - case wxSYS_ICON_X: - // TODO - return 0; - case wxSYS_ICON_Y: - // TODO - return 0; - case wxSYS_ICONSPACING_X: - // TODO - return 0; - case wxSYS_ICONSPACING_Y: - // TODO - return 0; - case wxSYS_WINDOWMIN_X: - // TODO - return 0; - case wxSYS_WINDOWMIN_Y: - // TODO - return 0; - case wxSYS_SCREEN_X: - // TODO - return 0; - case wxSYS_SCREEN_Y: - // TODO - return 0; - case wxSYS_FRAMESIZE_X: - // TODO - return 0; - case wxSYS_FRAMESIZE_Y: - // TODO - return 0; - case wxSYS_SMALLICON_X: - // TODO - return 0; - case wxSYS_SMALLICON_Y: - // TODO - return 0; - case wxSYS_HSCROLL_Y: - // TODO - return 0; - case wxSYS_VSCROLL_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_VTHUMB_Y: - // TODO - return 0; - case wxSYS_CAPTION_Y: - // TODO - return 0; - case wxSYS_MENU_Y: - // TODO - return 0; - case wxSYS_NETWORK_PRESENT: - // TODO - return 0; - case wxSYS_PENWINDOWS_PRESENT: - // TODO - return 0; - case wxSYS_SHOW_SOUNDS: - // TODO - return 0; - case wxSYS_SWAP_BUTTONS: - // TODO - return 0; - default: - return 0; - } - return 0; -} - diff --git a/src/qt/slider.cpp b/src/qt/slider.cpp deleted file mode 100644 index 97c453b989..0000000000 --- a/src/qt/slider.cpp +++ /dev/null @@ -1,185 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: wxSlider -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/msw/slider.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) -#endif - -// Slider -wxSlider::wxSlider() -{ - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_rangeMax = maxValue; - m_rangeMin = minValue; - - m_pageSize = (int)((maxValue-minValue)/10); - - // TODO create slider - - return FALSE; -} - -wxSlider::~wxSlider() -{ -} - -int wxSlider::GetValue() const -{ - // TODO - return 0; -} - -void wxSlider::SetValue(int value) -{ - // TODO -} - -void wxSlider::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxSlider::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxSlider::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxSlider::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - // TODO -} - -// For trackbars only -void wxSlider::SetTickFreq(int n, int pos) -{ - // TODO - m_tickFreq = n; -} - -void wxSlider::SetPageSize(int pageSize) -{ - // TODO - m_pageSize = pageSize; -} - -int wxSlider::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider::ClearSel() -{ - // TODO -} - -void wxSlider::ClearTicks() -{ - // TODO -} - -void wxSlider::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; - // TODO -} - -int wxSlider::GetLineSize() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelEnd() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelStart() const -{ - // TODO - return 0; -} - -void wxSlider::SetSelection(int minPos, int maxPos) -{ - // TODO -} - -void wxSlider::SetThumbLength(int len) -{ - // TODO -} - -int wxSlider::GetThumbLength() const -{ - // TODO - return 0; -} - -void wxSlider::SetTick(int tickPos) -{ - // TODO -} - -void wxSlider::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -bool wxSlider::Show(bool show) -{ - // TODO - return TRUE; -} - diff --git a/src/qt/statbmp.cpp b/src/qt/statbmp.cpp deleted file mode 100644 index a67c558465..0000000000 --- a/src/qt/statbmp.cpp +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: wxStaticBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) -#endif - -/* - * wxStaticBitmap - */ - -bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_messageBitmap = bitmap; - SetName(name); - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static bitmap control - return FALSE; -} - -void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) -{ - m_messageBitmap = bitmap; - - // TODO: redraw bitmap -} - diff --git a/src/qt/statbox.cpp b/src/qt/statbox.cpp deleted file mode 100644 index b239dc738c..0000000000 --- a/src/qt/statbox.cpp +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: wxStaticBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Static box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static box - return FALSE; -} - -void wxStaticBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxStaticBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - diff --git a/src/qt/stattext.cpp b/src/qt/stattext.cpp deleted file mode 100644 index 1958826916..0000000000 --- a/src/qt/stattext.cpp +++ /dev/null @@ -1,211 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: wxStaticText -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stattext.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/app.h" -#endif - -#include "wx/stattext.h" -#include "wx/msw/private.h" -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -#endif - -bool wxStaticText::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetDefaultBackgroundColour()) ; - SetForegroundColour(parent->GetDefaultForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - m_windowStyle = style; - - long msStyle = WS_CHILD|WS_VISIBLE; - if (m_windowStyle & wxALIGN_CENTRE) - msStyle |= SS_CENTER; - else if (m_windowStyle & wxALIGN_RIGHT) - msStyle |= SS_RIGHT; - else - msStyle |= SS_LEFT; - - // Even with extended styles, need to combine with WS_BORDER - // for them to look right. - if ((m_windowStyle & wxSIMPLE_BORDER) || (m_windowStyle & wxRAISED_BORDER) || - (m_windowStyle & wxSUNKEN_BORDER) || (m_windowStyle & wxDOUBLE_BORDER)) - msStyle |= WS_BORDER; - - HWND static_item = CreateWindowEx(MakeExtendedStyle(m_windowStyle), "STATIC", (const char *)label, - msStyle, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - -#if CTL3D -/* - if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS)) - Ctl3dSubclassCtl(static_item); -*/ -#endif - - m_hWnd = (WXHWND)static_item; - - SubclassWin((WXHWND)static_item); - - SetFont(* parent->GetFont()); - SetSize(x, y, width, height); - return TRUE; -} - -void wxStaticText::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - int currentX, currentY; - GetPosition(¤tX, ¤tY); - int x1 = x; - int y1 = y; - - if (x == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - x1 = currentX; - if (y == -1 || (sizeFlags & wxSIZE_ALLOW_MINUS_ONE)) - y1 = currentY; - - AdjustForParentClientOrigin(x1, y1, sizeFlags); - - int actualWidth = width; - int actualHeight = height; - - char buf[300]; - int current_width; - int cyf; - - ::GetWindowText((HWND) GetHWND(), buf, 300); - GetTextExtent(buf, ¤t_width, &cyf, NULL, NULL,GetFont()); - - int ww, hh; - GetSize(&ww, &hh); - - // If we're prepared to use the existing width, then... - if (width == -1 && ((sizeFlags & wxSIZE_AUTO_WIDTH) != wxSIZE_AUTO_WIDTH)) - actualWidth = ww; - else if (width == -1) - { - int cx; - int cy; - wxGetCharSize(GetHWND(), &cx, &cy,GetFont()); - actualWidth = (int)(current_width + cx) ; - } - - // If we're prepared to use the existing height, then... - if (height == -1 && ((sizeFlags & wxSIZE_AUTO_HEIGHT) != wxSIZE_AUTO_HEIGHT)) - actualHeight = hh; - else if (height == -1) - { - actualHeight = (int)(cyf) ; - } - - MoveWindow((HWND) GetHWND(), x1, y1, actualWidth, actualHeight, TRUE); -} - -void wxStaticText::SetLabel(const wxString& label) -{ - int w, h; - RECT rect; - - wxWindow *parent = GetParent(); - GetWindowRect((HWND) GetHWND(), &rect); - - // Since we now have the absolute screen coords, - // if there's a parent we must subtract its top left corner - POINT point; - point.x = rect.left; - point.y = rect.top; - if (parent) - { - ::ScreenToClient((HWND) parent->GetHWND(), &point); - } - - GetTextExtent(label, &w, &h, NULL, NULL, GetFont()); - MoveWindow((HWND) GetHWND(), point.x, point.y, (int)(w + 10), (int)h, - TRUE); - SetWindowText((HWND) GetHWND(), (const char *)label); -} - -WXHBRUSH wxStaticText::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor, - WXUINT message, WXWPARAM wParam, WXLPARAM lParam) -{ -/* -#if CTL3D - if ( m_useCtl3D ) - { - HBRUSH hbrush = Ctl3dCtlColorEx(message, wParam, lParam); - - if (hbrush != (HBRUSH) 0) - return hbrush; - else - return (HBRUSH)MSWDefWindowProc(message, wParam, lParam); - } -#endif -*/ - - if (GetParent()->GetTransparentBackground()) - SetBkMode((HDC) pDC, TRANSPARENT); - else - SetBkMode((HDC) pDC, OPAQUE); - - ::SetBkColor((HDC) pDC, RGB(GetBackgroundColour().Red(), GetBackgroundColour().Green(), GetBackgroundColour().Blue())); - ::SetTextColor((HDC) pDC, RGB(GetForegroundColour().Red(), GetForegroundColour().Green(), GetForegroundColour().Blue())); - - wxBrush *backgroundBrush = wxTheBrushList->FindOrCreateBrush(GetBackgroundColour(), wxSOLID); - - // Note that this will be cleaned up in wxApp::OnIdle, if backgroundBrush - // has a zero usage count. -// backgroundBrush->RealizeResource(); - return (WXHBRUSH) backgroundBrush->GetResourceHandle(); -} - -long wxStaticText::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) -{ - // Ensure that static items get messages. Some controls don't like this - // message to be intercepted (e.g. RichEdit), hence the tests. - if (nMsg == WM_NCHITTEST) - return (long)HTCLIENT; - - return wxWindow::MSWWindowProc(nMsg, wParam, lParam); -} - - diff --git a/src/qt/tbargtk.cpp b/src/qt/tbargtk.cpp deleted file mode 100644 index f2c8dfcd74..0000000000 --- a/src/qt/tbargtk.cpp +++ /dev/null @@ -1,193 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tbargtk.cpp -// Purpose: GTK toolbar -// Author: Robert Roebling -// Modified by: -// Created: 01/02/97 -// RCS-ID: -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tbargtk.h" -#endif - -#include "wx/toolbar.h" - -//----------------------------------------------------------------------------- -// wxToolBarTool -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxToolBarTool,wxObject) - -wxToolBarTool::wxToolBarTool( wxToolBar *owner, int theIndex, - const wxBitmap& bitmap1, const wxBitmap& bitmap2, - bool toggle, wxObject *clientData, - const wxString& shortHelpString, const wxString& longHelpString ) -{ - m_owner = owner; - m_index = theIndex; - m_bitmap1 = bitmap1; - m_bitmap2 = bitmap2; - m_isToggle = toggle; - m_enabled = TRUE; - m_toggleState = FALSE; - m_shortHelpString = shortHelpString; - m_longHelpString = longHelpString; - m_isMenuCommand = TRUE; - m_clientData = clientData; - m_deleteSecondBitmap = FALSE; -}; - -wxToolBarTool::~wxToolBarTool(void) -{ -}; - -//----------------------------------------------------------------------------- -// wxToolBar -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxToolBar,wxControl) - -BEGIN_EVENT_TABLE(wxToolBar, wxControl) -END_EVENT_TABLE() - -wxToolBar::wxToolBar(void) -{ -}; - -wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - Create( parent, id, pos, size, style, name ); -}; - -wxToolBar::~wxToolBar(void) -{ -}; - -bool wxToolBar::Create( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name ) -{ - return TRUE; -}; - -bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_CLICKED, toolIndex ); - event.SetEventObject(this); - event.SetInt( toolIndex ); - event.SetExtraLong((long) toggleDown); - - GetEventHandler()->ProcessEvent(event); - - return TRUE; -}; - -void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_RCLICKED, toolIndex ); - event.SetEventObject( this ); - event.SetInt( toolIndex ); - - GetEventHandler()->ProcessEvent(event); -}; - -void wxToolBar::OnMouseEnter( int toolIndex ) -{ - wxCommandEvent event( wxEVT_COMMAND_TOOL_ENTER, toolIndex ); - event.SetEventObject(this); - event.SetInt( toolIndex ); - - GetEventHandler()->ProcessEvent(event); -}; - -wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap, bool toggle, - float WXUNUSED(xPos), float WXUNUSED(yPos), wxObject *clientData, - const wxString& helpString1, const wxString& helpString2 ) -{ -}; - -void wxToolBar::AddSeparator(void) -{ -}; - -void wxToolBar::ClearTools(void) -{ -}; - -void wxToolBar::Realize(void) -{ -}; - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) - { - tool->m_enabled = enable; - return; - } - node = node->Next(); - }; -}; - -void wxToolBar::ToggleTool(int WXUNUSED(toolIndex), bool WXUNUSED(toggle) ) -{ -}; - -wxObject *wxToolBar::GetToolClientData(int index) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == index) return tool->m_clientData;; - node = node->Next(); - }; - return (wxObject*)NULL; -}; - -bool wxToolBar::GetToolState(int toolIndex) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) return tool->m_toggleState; - node = node->Next(); - }; - return FALSE; -}; - -bool wxToolBar::GetToolEnabled(int toolIndex) const -{ - wxNode *node = m_tools.First(); - while (node) - { - wxToolBarTool *tool = (wxToolBarTool*)node->Data(); - if (tool->m_index == toolIndex) return tool->m_enabled; - node = node->Next(); - }; - return FALSE; -}; - -void wxToolBar::SetMargins( int WXUNUSED(x), int WXUNUSED(y) ) -{ -}; - -void wxToolBar::SetToolPacking( int WXUNUSED(packing) ) -{ -}; - -void wxToolBar::SetToolSeparation( int separation ) -{ -}; - diff --git a/src/qt/textctrl.cpp b/src/qt/textctrl.cpp deleted file mode 100644 index ce3459256d..0000000000 --- a/src/qt/textctrl.cpp +++ /dev/null @@ -1,444 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: wxTextCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -#include -#include -#include - -#include "wx/textctrl.h" -#include "wx/settings.h" - -#if defined(__BORLANDC__) && !defined(__WIN32__) -#include -#else -#ifndef __GNUWIN32__ -#include -#endif -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_CHAR(wxTextCtrl::OnChar) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) - EVT_ERASE_BACKGROUND(wxTextCtrl::OnEraseBackground) -END_EVENT_TABLE() -#endif - -// Text item -wxTextCtrl::wxTextCtrl() -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif -{ - m_fileName = ""; -} - -bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_fileName = ""; - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - return TRUE; -} - -wxString wxTextCtrl::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - // TODO -} - -void wxTextCtrl::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -// Clipboard operations -void wxTextCtrl::Copy() -{ - // TODO -} - -void wxTextCtrl::Cut() -{ - // TODO -} - -void wxTextCtrl::Paste() -{ - // TODO -} - -void wxTextCtrl::SetEditable(bool editable) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - long pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxTextCtrl::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ - // TODO - return 0; -} - -void wxTextCtrl::Remove(long from, long to) -{ - // TODO -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - // TODO -} - -bool wxTextCtrl::LoadFile(const wxString& file) -{ - if (!wxFileExists(file)) - return FALSE; - - m_fileName = file; - - Clear(); - - ifstream input((char*) (const char*) file, ios::nocreate | ios::in); - - if (!input.bad()) - { - struct stat stat_buf; - if (stat(file, &stat_buf) < 0) - return FALSE; - // This may need to be a bigger buffer than the file size suggests, - // if it's a UNIX file. Give it an extra 1000 just in case. - char *tmp_buffer = (char*)malloc((size_t)(stat_buf.st_size+1+1000)); - long no_lines = 0; - long pos = 0; - while (!input.eof() && input.peek() != EOF) - { - input.getline(wxBuffer, 500); - int len = strlen(wxBuffer); - wxBuffer[len] = 13; - wxBuffer[len+1] = 10; - wxBuffer[len+2] = 0; - strcpy(tmp_buffer+pos, wxBuffer); - pos += strlen(wxBuffer); - no_lines++; - } - - // TODO add line - - free(tmp_buffer); - - return TRUE; - } - return FALSE; -} - -// If file is null, try saved file name first -// Returns TRUE if succeeds. -bool wxTextCtrl::SaveFile(const wxString& file) -{ - wxString theFile(file); - if (theFile == "") - theFile = m_fileName; - if (theFile == "") - return FALSE; - m_fileName = theFile; - - ofstream output((char*) (const char*) theFile); - if (output.bad()) - return FALSE; - - // TODO get and save text - - return FALSE; -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - // TODO write text to control -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - // TODO append text to control -} - -void wxTextCtrl::Clear() -{ - // TODO -} - -bool wxTextCtrl::IsModified() const -{ - // TODO - return FALSE; -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - // TODO -} - -int wxTextCtrl::GetNumberOfLines() const -{ - // TODO - return 0; -} - -long wxTextCtrl::XYToPosition(long x, long y) const -{ - // TODO - return 0; -} - -void wxTextCtrl::PositionToXY(long pos, long *x, long *y) const -{ - // TODO -} - -void wxTextCtrl::ShowPosition(long pos) -{ - // TODO -} - -int wxTextCtrl::GetLineLength(long lineNo) const -{ - // TODO - return 0; -} - -wxString wxTextCtrl::GetLineText(long lineNo) const -{ - // TODO - return wxString(""); -} - -/* - * Text item - */ - -void wxTextCtrl::Command(wxCommandEvent & event) -{ - SetValue (event.GetString()); - ProcessCommand (event); -} - -void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event) -{ - // By default, load the first file into the text window. - if (event.GetNumberOfFiles() > 0) - { - LoadFile(event.GetFiles()[0]); - } -} - -// The streambuf code was partly taken from chapter 3 by Jerry Schwarz of -// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers - -//========================================================================= -// Called then the buffer is full (gcc 2.6.3) -// or when "endl" is output (Borland 4.5) -//========================================================================= -// Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in wb_text.h. -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow(int c) -{ - // Make sure there is a holding area - if ( allocate()==EOF ) - { - wxError("Streambuf allocation failed","Internal error"); - return EOF; - } - - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - // Reset get area - setg(0,0,0); - - // Make sure there is a put area - if ( ! pptr() ) - { -/* This doesn't seem to be fatal so comment out error message */ -// wxError("Put area not opened","Internal error"); - setp( base(), base() ); - } - - // Determine how many characters have been inserted but no consumed - int plen = pptr() - pbase(); - - // Now Jerry relies on the fact that the buffer is at least 2 chars - // long, but the holding area "may be as small as 1" ??? - // And we need an additional \0, so let's keep this inefficient but - // safe copy. - - // If c!=EOF, it is a character that must also be comsumed - int xtra = c==EOF? 0 : 1; - - // Write temporary C-string to wxTextWindow - { - char *txt = new char[plen+xtra+1]; - memcpy(txt, pbase(), plen); - txt[plen] = (char)c; // append c - txt[plen+xtra] = '\0'; // append '\0' or overwrite c - // If the put area already contained \0, output will be truncated there - AppendText(txt); - delete[] txt; - } - - // Reset put area - setp(pbase(), epptr()); - -#if defined(__WATCOMC__) - return __NOT_EOF; -#elif defined(zapeof) // HP-UX (all cfront based?) - return zapeof(c); -#else - return c!=EOF ? c : 0; // this should make everybody happy -#endif -} - -//========================================================================= -// called then "endl" is output (gcc) or then explicit sync is done (Borland) -//========================================================================= -int wxTextCtrl::sync() -{ - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - if ( pptr() && pptr() > pbase() ) return overflow(EOF); - - return 0; -/* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -*/ -} - -//========================================================================= -// Should not be called by a "ostream". Used by a "istream" -//========================================================================= -int wxTextCtrl::underflow() -{ - return EOF; -} -#endif - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - wxString str; - str.Printf("%.2f", f); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - wxString str; - str.Printf("%.2f", d); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - wxString str; - str.Printf("%d", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - wxString str; - str.Printf("%ld", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} - diff --git a/src/qt/threadgui.inc b/src/qt/threadgui.inc deleted file mode 100644 index 165fef3c01..0000000000 --- a/src/qt/threadgui.inc +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: threadgui.inc -// Purpose: GUI thread manager for GTK -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include -#include - -// for select() -#include -#include -#ifdef __sgi -#include -#endif - -#include - - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -static int p_thrd_pipe[2] = { -1, -1 }; -// WorkProc in GTK -static gint p_thrd_inid; - -#define THREAD_SEND_EXIT_MSG(ptr) write(p_thrd_pipe[1], &ptr, sizeof(ptr)); - -static void -ThreadExitProc(gpointer WXUNUSED(client), gint fid, - GdkInputCondition WXUNUSED(cond)) -{ - wxThread* ptr; - - if (fid != p_thrd_pipe[0]) - return; - if (read(fid, &ptr, sizeof(ptr)) == sizeof(ptr)) { - //fprintf(stderr, "calling OnExit %p\n", ptr); - ptr->OnExit(); - } else { - //fprintf(stderr, "this should never happen\n"); - } -} - -// Global initialization -static void wxThreadGuiInit() -{ - pipe(p_thrd_pipe); - p_thrd_inid = gdk_input_add(p_thrd_pipe[0], GDK_INPUT_READ, - ThreadExitProc, 0); -} - -// Global cleanup -static void wxThreadGuiExit() -{ - gdk_input_remove(p_thrd_inid); - close(p_thrd_pipe[0]); - close(p_thrd_pipe[1]); -} diff --git a/src/qt/threadno.cpp b/src/qt/threadno.cpp deleted file mode 100644 index 8cf94d1e06..0000000000 --- a/src/qt/threadno.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: No thread support -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include "wx/wx.h" -#include "wx/module.h" -#include "wx/thread.h" - -wxMutex::wxMutex() -{ - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked) - wxDebugMsg("wxMutex warning: destroying a locked mutex (%d locks)\n", m_locked); -} - -wxMutexError wxMutex::Lock() -{ - m_locked++; - return MUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (m_locked > 0) - return MUTEX_BUSY; - m_locked++; - return MUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked == 0) - return MUTEX_UNLOCKED; - m_locked--; - return MUTEX_NO_ERROR; -} - -wxCondition::wxCondition() -{ -} - -wxCondition::~wxCondition() -{ -} - -void wxCondition::Wait(wxMutex& WXUNUSED(mutex)) -{ -} - -bool wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) -{ - return FALSE; -} - -void wxCondition::Signal() -{ -} - -void wxCondition::Broadcast() -{ -} - -struct wxThreadInternal { - int thread_id; - void* exit_status; -}; - -wxThreadError wxThread::Create() -{ - p_internal->exit_status = Entry(); - OnExit(); - return THREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - return THREAD_NOT_RUNNING; -} - -wxThreadError wxThread::Pause() -{ - return THREAD_NOT_RUNNING; -} - -wxThreadError wxThread::Resume() -{ - return THREAD_NOT_RUNNING; -} - -void wxThread::DeferDestroy( bool WXUNUSED(on) ) -{ -} - -void wxThread::TestDestroy() -{ -} - -void *wxThread::Join() -{ - return p_internal->exit_status; -} - -unsigned long wxThread::GetID() const -{ - return 0; -} - -wxThread *wxThread::GetThreadFromID(unsigned long WXUNUSED(id)) const -{ - return NULL; -} - -bool wxThread::IsMain() -{ - return TRUE; -} - -bool wxThread::IsRunning() const -{ - return FALSE; -} - -bool wxThread::IsAlive() const -{ - return FALSE; -} - -void wxThread::SetPriority(int WXUNUSED(prio)) { } -int wxThread::GetPriority() const { return 0; } - -wxMutex *wxMainMutex; // controls access to all GUI functions - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - - -// Automatic initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - bool OnInit(); - void OnExit(); -}; - -bool wxThreadModule::OnInit() { - wxMainMutex = new wxMutex(); - wxMainMutex->Lock(); - return TRUE; -} - -void wxThreadModule::OnExit() -{ - wxMainMutex->Unlock(); - delete wxMainMutex; -} - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) diff --git a/src/qt/threadpsx.cpp b/src/qt/threadpsx.cpp deleted file mode 100644 index 2d4912c05a..0000000000 --- a/src/qt/threadpsx.cpp +++ /dev/null @@ -1,396 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: threadpsx.cpp -// Purpose: wxThread (Posix) Implementation -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include -#include -#include -#include -#include "wx/thread.h" -#include "wx/module.h" -#include "wx/utils.h" - -enum thread_state { - STATE_IDLE = 0, - STATE_RUNNING, - STATE_PAUSING, - STATE_PAUSED, - STATE_CANCELED, - STATE_EXITED -}; - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -static pthread_t p_mainid; -static wxMutex p_list_mutex; -static wxList p_threads_list; - -wxMutex *wxMainMutex; // controls access to all GUI functions - -///////////////////////////////////////////////////////////////////////////// -// GUI thread manager -///////////////////////////////////////////////////////////////////////////// -#include "threadgui.inc" - -///////////////////////////////////////////////////////////////////////////// -// wxThread: Posix Thread implementation (Mutex) -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - pthread_mutex_t p_mutex; -}; - -wxMutex::wxMutex() -{ - p_internal = new wxMutexInternal; - pthread_mutex_init(&(p_internal->p_mutex), NULL); - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxDebugMsg("wxMutex warning: freeing a locked mutex (%d locks)\n", - m_locked); - - pthread_mutex_destroy(&(p_internal->p_mutex)); - delete p_internal; -} - -wxMutexError wxMutex::Lock() -{ - int err; - - err = pthread_mutex_lock(&(p_internal->p_mutex)); - if (err == EDEADLK) - return MUTEX_DEAD_LOCK; - m_locked++; - return MUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - int err; - - if (m_locked) - return MUTEX_BUSY; - err = pthread_mutex_trylock(&(p_internal->p_mutex)); - switch (err) { - case EBUSY: return MUTEX_BUSY; - } - m_locked++; - return MUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked > 0) - m_locked--; - else - return MUTEX_UNLOCKED; - pthread_mutex_unlock(&(p_internal->p_mutex)); - return MUTEX_NO_ERROR; -} - -///////////////////////////////////////////////////////////////////////////// -// wxThread: Posix Thread implementation (Condition) -///////////////////////////////////////////////////////////////////////////// - -class wxConditionInternal { -public: - pthread_cond_t p_condition; -}; - -wxCondition::wxCondition() -{ - p_internal = new wxConditionInternal; - pthread_cond_init(&(p_internal->p_condition), NULL); -} - -wxCondition::~wxCondition() -{ - pthread_cond_destroy(&(p_internal->p_condition)); - delete p_internal; -} - -void wxCondition::Wait(wxMutex& mutex) -{ - pthread_cond_wait(&(p_internal->p_condition), &(mutex.p_internal->p_mutex)); -} - -bool wxCondition::Wait(wxMutex& mutex, unsigned long sec, unsigned long nsec) -{ - struct timespec tspec; - - tspec.tv_sec = time(NULL)+sec; - tspec.tv_nsec = nsec; - return (pthread_cond_timedwait(&(p_internal->p_condition), &(mutex.p_internal->p_mutex), &tspec) != ETIMEDOUT); -} - -void wxCondition::Signal() -{ - pthread_cond_signal(&(p_internal->p_condition)); -} - -void wxCondition::Broadcast() -{ - pthread_cond_broadcast(&(p_internal->p_condition)); -} - -///////////////////////////////////////////////////////////////////////////// -// wxThread: Posix Thread implementation (Thread) -///////////////////////////////////////////////////////////////////////////// - -class wxThreadInternal { -public: - wxThreadInternal() { state = STATE_IDLE; } - ~wxThreadInternal() {} - static void *PthreadStart(void *ptr); - pthread_t thread_id; - int state; - int prio; - int defer_destroy; - int id; -}; - -void *wxThreadInternal::PthreadStart(void *ptr) -{ - wxThread *thread = (wxThread *)ptr; - - // Add the current thread to the list - p_list_mutex.Lock(); - thread->p_internal->id = p_threads_list.Number(); - p_threads_list.Append((wxObject *)thread); - p_list_mutex.Unlock(); - - // Call the main entry - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); - void* status = thread->Entry(); - - thread->Exit(status); - - return NULL; -} - -wxThreadError wxThread::Create() -{ - pthread_attr_t a; - int min_prio, max_prio, p; - struct sched_param sp; - - if (p_internal->state != STATE_IDLE) - return THREAD_RUNNING; - - // Change thread priority - pthread_attr_init(&a); - pthread_attr_getschedpolicy(&a, &p); - - min_prio = sched_get_priority_min(p); - max_prio = sched_get_priority_max(p); - - pthread_attr_getschedparam(&a, &sp); - sp.sched_priority = min_prio + - (p_internal->prio*(max_prio-min_prio))/100; - pthread_attr_setschedparam(&a, &sp); - - // this is the point of no return - p_internal->state = STATE_RUNNING; - if (pthread_create(&p_internal->thread_id, &a, - wxThreadInternal::PthreadStart, (void *)this) != 0) { - p_internal->state = STATE_IDLE; - pthread_attr_destroy(&a); - return THREAD_NO_RESOURCE; - } - pthread_attr_destroy(&a); - - return THREAD_NO_ERROR; -} - -void wxThread::SetPriority(int prio) -{ - if (p_internal->state == STATE_RUNNING) - return; - - if (prio > 100) - prio = 100; - if (prio < 0) - prio = 0; - p_internal->prio = prio; -} - -int wxThread::GetPriority() const -{ - return p_internal->prio; -} - -void wxThread::DeferDestroy(bool on) -{ - if (on) - pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL); - else - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); -} - -wxThreadError wxThread::Destroy() -{ - int res = 0; - - if (p_internal->state == STATE_RUNNING) { - res = pthread_cancel(p_internal->thread_id); - if (res == 0) - p_internal->state = STATE_CANCELED; - } - - return THREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - if (p_internal->state != STATE_RUNNING) - return THREAD_NOT_RUNNING; - - if (!p_internal->defer_destroy) - return THREAD_MISC_ERROR; - - p_internal->state = STATE_PAUSING; - return THREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - if (p_internal->state == STATE_PAUSING || p_internal->state == STATE_PAUSED) - p_internal->state = STATE_RUNNING; - - return THREAD_NO_ERROR; -} - -void *wxThread::Join() -{ - void* status = 0; - - if (p_internal->state != STATE_IDLE) { - bool do_unlock = wxThread::IsMain(); - - while (p_internal->state == STATE_RUNNING) - wxYield(); - - if (do_unlock) - wxMainMutex->Unlock(); - pthread_join(p_internal->thread_id, &status); - if (do_unlock) - wxMainMutex->Lock(); - - p_list_mutex.Lock(); - delete p_threads_list.Nth(p_internal->id); - p_list_mutex.Unlock(); - - p_internal->state = STATE_IDLE; - } - return status; -} - -unsigned long wxThread::GetID() const -{ - return p_internal->id; -} - -wxThread *wxThread::GetThreadFromID(unsigned long id) -{ - wxNode *node = p_threads_list.Nth(id); - - if (!node) - return NULL; - return (wxThread *)node->Data(); -} - -void wxThread::Exit(void *status) -{ - wxThread* ptr = this; - - THREAD_SEND_EXIT_MSG(ptr); - p_internal->state = STATE_EXITED; - pthread_exit(status); -} - -void wxThread::TestDestroy() -{ - if (p_internal->state == STATE_PAUSING) { - p_internal->state = STATE_PAUSED; - while (p_internal->state == STATE_PAUSED) { - pthread_testcancel(); - usleep(1); - } - } - pthread_testcancel(); -} - -bool wxThread::IsMain() -{ - return (bool)pthread_equal(pthread_self(), p_mainid); -} - -bool wxThread::IsRunning() const -{ - return (p_internal->state == STATE_RUNNING); -} - -bool wxThread::IsAlive() const -{ - return (p_internal->state == STATE_RUNNING) || - (p_internal->state == STATE_PAUSING) || - (p_internal->state == STATE_PAUSED); -} - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Automatic initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - virtual bool OnInit() { - wxMainMutex = new wxMutex(); - wxThreadGuiInit(); - p_mainid = pthread_self(); - p_threads_list = wxList(wxKEY_INTEGER); - wxMainMutex->Lock(); - - return TRUE; - } - - virtual void OnExit() { - wxMainMutex->Unlock(); - wxThreadGuiExit(); - delete wxMainMutex; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) diff --git a/src/qt/threadsgi.cpp b/src/qt/threadsgi.cpp deleted file mode 100644 index 66b6b0da7b..0000000000 --- a/src/qt/threadsgi.cpp +++ /dev/null @@ -1,254 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: threadsgi.cpp -// Purpose: wxThread (SGI) Implementation -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include -#include - -#include -#include -#include -#include "wx/thread.h" -#include "wx/module.h" -#include "wx/utils.h" - -enum thread_state { - STATE_IDLE = 0, - STATE_RUNNING, - STATE_CANCELED, - STATE_EXITED -}; - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -static int p_mainid; -wxMutex *wxMainMutex; - -#include "threadgui.inc" - -///////////////////////////////////////////////////////////////////////////// -// Unix implementations (SGI threads) -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - abilock_t p_mutex; -}; - -wxMutex::wxMutex() -{ - m_locked = 0; - p_internal = new wxMutexInternal; - init_lock(&(p_internal->p_mutex)); -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxDebugMsg("wxMutex warning: freeing a locked mutex (%d locks)\n", - m_locked); - delete p_internal; -} - -wxMutexError wxMutex::Lock() -{ - spin_lock(&(p_internal->p_mutex)); - m_locked++; - return MUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (acquire_lock(&(p_internal->p_mutex)) != 0) - return MUTEX_BUSY; - m_locked++; - return MUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked == 0) - return MUTEX_UNLOCKED; - release_lock(&(p_internal->p_mutex)); - m_locked--; - return MUTEX_NO_ERROR; -} - -// GL: Don't know how it works on SGI. Wolfram ? - -wxCondition::wxCondition() {} -wxCondition::~wxCondition() {} -int wxCondition::Wait(wxMutex& WXUNUSED(mutex)) { return 0;} -int wxCondition::Wait(wxMutex& WXUNUSED(mutex), unsigned long WXUNUSED(sec), - unsigned long WXUNUSED(nsec)) { return 0; } -int wxCondition::Signal() { return 0; } -int wxCondition::Broadcast() { return 0; } - -class -wxThreadPrivate { -public: - wxThreadPrivate() { thread_id = 0; state = STATE_IDLE; } - ~wxThreadPrivate() {} - static void SprocStart(void *ptr); - static void SignalHandler(int sig); -public: - int state, thread_id; - void* exit_status; -}; - -void wxThreadPrivate::SprocStart(void *ptr) -{ - void* status; - - wxThread *thr = (wxThread *)ptr; - - thr->p_internal->thread_id = getpid(); - thr->p_internal->exit_status = 0; - status = thr->Entry(); - thr->Exit(status); -} - -void wxThread::Exit(void* status) -{ - wxThread* ptr = this; - THREAD_SEND_EXIT_MSG(ptr); - p_internal->state = STATE_EXITED; - p_internal->exit_status = status; - _exit(0); -} - -wxThreadError wxThread::Create() -{ - if (p_internal->state != STATE_IDLE) - return THREAD_RUNNING; - p_internal->state = STATE_RUNNING; - if (sproc(p_internal->SprocStart, PR_SALL, this) < 0) { - p_internal->state = STATE_IDLE; - return THREAD_NO_RESOURCE; - } - return THREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - if (p_internal->state == STATE_RUNNING) - p_internal->state = STATE_CANCELED; - - return THREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - return THREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - return THREAD_NO_ERROR; -} - -void *wxThread::Join() -{ - if (p_internal->state != STATE_IDLE) { - bool do_unlock = wxThread::IsMain(); - int stat; - - if (do_unlock) - wxMainMutex->Unlock(); - waitpid(p_internal->thread_id, &stat, 0); - if (do_unlock) - wxMainMutex->Lock(); - if (!WIFEXITED(stat) && !WIFSIGNALED(stat)) - return 0; - p_internal->state = STATE_IDLE; - return p_internal->exit_status; - } - return 0; -} - -unsigned long wxThread::GetID() const -{ - return (unsigned long)p_internal->thread_id; -} - -void wxThread::TestDestroy() -{ - if (p_internal->state == STATE_CANCELED) { - p_internal->exit_status = 0; - _exit(0); - } -} - -void wxThread::SetPriority(int prio) -{ -} - -int wxThread::GetPriority() const -{ - return 0; -} - -bool wxThread::IsMain() -{ - return (int)getpid() == main_id; -} - -bool wxThread::IsAlive() const -{ - return (p_internal->state == STATE_RUNNING); -} - -bool wxThread::IsRunning() const -{ - return (p_internal->state == STATE_RUNNING); -} - -wxThread::wxThread() -{ - p_internal = new wxThreadPrivate(); -} - -wxThread::~wxThread() -{ - Cancel(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Global initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - virtual bool OnInit() { - wxMainMutex = new wxMutex(); - wxThreadGuiInit(); - p_mainid = (int)getpid(); - wxMainMutex->Lock(); - } - - virtual void OnExit() { - wxMainMutex->Unlock(); - wxThreadGuiExit(); - delete wxMainMutex; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) diff --git a/src/qt/timer.cpp b/src/qt/timer.cpp deleted file mode 100644 index f976056c77..0000000000 --- a/src/qt/timer.cpp +++ /dev/null @@ -1,56 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: wxTimer implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) -#endif - -wxTimer::wxTimer() -{ - m_milli = 0 ; - m_lastMilli = -1 ; - m_id = 0; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); -} - -bool wxTimer::Start(int milliseconds,bool mode) -{ - m_oneShot = mode ; - if (m_milliseconds < 0) - m_milliseconds = lastMilli; - - if (m_milliseconds <= 0) - return FALSE; - - m_lastMilli = m_milli = m_milliseconds; - - // TODO: set the timer going. - return FALSE; -} - -void wxTimer::Stop() -{ - m_id = 0 ; - m_milli = 0 ; -} - - diff --git a/src/qt/utilsgtk.cpp b/src/qt/utilsgtk.cpp deleted file mode 100644 index bf6669325c..0000000000 --- a/src/qt/utilsgtk.cpp +++ /dev/null @@ -1,367 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -//#ifdef __GNUG__ -//#pragma implementation "utils.h" -//#endif - -#include "wx/utils.h" -#include "wx/string.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __SVR4__ -#include -#endif - -//------------------------------------------------------------------------ -// misc. -//------------------------------------------------------------------------ - -void wxBell(void) -{ - gdk_beep(); -}; - -void wxSleep(int nSecs) -{ - sleep(nSecs); -}; - -int wxKill(long pid, int sig) -{ - return kill(pid, sig); -}; - -void wxDisplaySize( int *width, int *height ) -{ - if (width) *width = gdk_screen_width(); - if (height) *height = gdk_screen_height(); -} - -//------------------------------------------------------------------------ -// user and home routines -//------------------------------------------------------------------------ - -char* wxGetHomeDir( char *dest ) -{ - wxString tmp = wxGetUserHome( wxString() ); - if (tmp.IsNull()) - strcpy( wxBuffer, "/" ); - else - strcpy( wxBuffer, tmp ); - if (dest) strcpy( dest, WXSTRINGCAST tmp ); - return wxBuffer; -}; - -char *wxGetUserHome( const wxString &user ) -{ - struct passwd *who = NULL; - - if (user.IsNull() || (user== "")) - { - register char *ptr; - - if ((ptr = getenv("HOME")) != NULL) - return ptr; - if ((ptr = getenv("USER")) != NULL - || (ptr = getenv("LOGNAME")) != NULL) { - who = getpwnam(ptr); - } - // We now make sure the the user exists! - if (who == NULL) - who = getpwuid(getuid()); - } - else - who = getpwnam (user); - - return who ? who->pw_dir : (char*)NULL; -}; - -//------------------------------------------------------------------------ -// id routines -//------------------------------------------------------------------------ - -bool wxGetHostName(char *buf, int sz) -{ - *buf = '\0'; -#if defined(__SVR4__) && !defined(__sgi) - return (sysinfo(SI_HOSTNAME, buf, sz) != -1); -#else /* BSD Sockets */ - char name[255]; - struct hostent *h; - // Get hostname - if (gethostname(name, sizeof(name)/sizeof(char)-1) == -1) - return FALSE; - // Get official full name of host - strncpy(buf, (h=gethostbyname(name))!=NULL ? h->h_name : name, sz-1); - return TRUE; -#endif -} - -bool wxGetUserId(char *buf, int sz) -{ - struct passwd *who; - - *buf = '\0'; - if ((who = getpwuid(getuid ())) != NULL) { - strncpy (buf, who->pw_name, sz-1); - return TRUE; - } - return FALSE; -} - -bool wxGetUserName(char *buf, int sz) -{ - struct passwd *who; - - *buf = '\0'; - if ((who = getpwuid (getuid ())) != NULL) { - strncpy (buf, who->pw_gecos, sz - 1); - return TRUE; - } - return FALSE; -} - -//------------------------------------------------------------------------ -// error and debug output routines -//------------------------------------------------------------------------ - -void wxDebugMsg( const char *format, ... ) -{ - va_list ap; - va_start( ap, format ); - vfprintf( stderr, format, ap ); - fflush( stderr ); - va_end(ap); -}; - -void wxError( const wxString &msg, const wxString &title ) -{ - fprintf( stderr, "Error " ); - if (!title.IsNull()) fprintf( stderr, "%s ", WXSTRINGCAST(title) ); - if (!msg.IsNull()) fprintf( stderr, ": %s", WXSTRINGCAST(msg) ); - fprintf( stderr, ".\n" ); -}; - -void wxFatalError( const wxString &msg, const wxString &title ) -{ - fprintf( stderr, "Error " ); - if (!title.IsNull()) fprintf( stderr, "%s ", WXSTRINGCAST(title) ); - if (!msg.IsNull()) fprintf( stderr, ": %s", WXSTRINGCAST(msg) ); - fprintf( stderr, ".\n" ); - exit(1); -}; - -//------------------------------------------------------------------------ -// directory routines -//------------------------------------------------------------------------ - -bool wxDirExists( const wxString& dir ) -{ - char buf[500]; - strcpy( buf, WXSTRINGCAST(dir) ); - struct stat sbuf; - return ((stat(buf, &sbuf) != -1) && S_ISDIR(sbuf.st_mode) ? TRUE : FALSE); -}; - -//------------------------------------------------------------------------ -// wild character routines -//------------------------------------------------------------------------ - -bool wxIsWild( const wxString& pattern ) -{ - wxString tmp = pattern; - char *pat = WXSTRINGCAST(tmp); - while (*pat) { - switch (*pat++) { - case '?': case '*': case '[': case '{': - return TRUE; - case '\\': - if (!*pat++) - return FALSE; - } - } - return FALSE; -}; - - -bool wxMatchWild( const wxString& pat, const wxString& text, bool dot_special ) -{ - wxString tmp1 = pat; - char *pattern = WXSTRINGCAST(tmp1); - wxString tmp2 = text; - char *str = WXSTRINGCAST(tmp2); - char c; - char *cp; - bool done = FALSE, ret_code, ok; - // Below is for vi fans - const char OB = '{', CB = '}'; - - // dot_special means '.' only matches '.' - if (dot_special && *str == '.' && *pattern != *str) - return FALSE; - - while ((*pattern != '\0') && (!done) - && (((*str=='\0')&&((*pattern==OB)||(*pattern=='*')))||(*str!='\0'))) { - switch (*pattern) { - case '\\': - pattern++; - if (*pattern != '\0') - pattern++; - break; - case '*': - pattern++; - ret_code = FALSE; - while ((*str!='\0') - && (!(ret_code=wxMatchWild(pattern, str++, FALSE)))) - /*loop*/; - if (ret_code) { - while (*str != '\0') - str++; - while (*pattern != '\0') - pattern++; - } - break; - case '[': - pattern++; - repeat: - if ((*pattern == '\0') || (*pattern == ']')) { - done = TRUE; - break; - } - if (*pattern == '\\') { - pattern++; - if (*pattern == '\0') { - done = TRUE; - break; - } - } - if (*(pattern + 1) == '-') { - c = *pattern; - pattern += 2; - if (*pattern == ']') { - done = TRUE; - break; - } - if (*pattern == '\\') { - pattern++; - if (*pattern == '\0') { - done = TRUE; - break; - } - } - if ((*str < c) || (*str > *pattern)) { - pattern++; - goto repeat; - } - } else if (*pattern != *str) { - pattern++; - goto repeat; - } - pattern++; - while ((*pattern != ']') && (*pattern != '\0')) { - if ((*pattern == '\\') && (*(pattern + 1) != '\0')) - pattern++; - pattern++; - } - if (*pattern != '\0') { - pattern++, str++; - } - break; - case '?': - pattern++; - str++; - break; - case OB: - pattern++; - while ((*pattern != CB) && (*pattern != '\0')) { - cp = str; - ok = TRUE; - while (ok && (*cp != '\0') && (*pattern != '\0') - && (*pattern != ',') && (*pattern != CB)) { - if (*pattern == '\\') - pattern++; - ok = (*pattern++ == *cp++); - } - if (*pattern == '\0') { - ok = FALSE; - done = TRUE; - break; - } else if (ok) { - str = cp; - while ((*pattern != CB) && (*pattern != '\0')) { - if (*++pattern == '\\') { - if (*++pattern == CB) - pattern++; - } - } - } else { - while (*pattern!=CB && *pattern!=',' && *pattern!='\0') { - if (*++pattern == '\\') { - if (*++pattern == CB || *pattern == ',') - pattern++; - } - } - } - if (*pattern != '\0') - pattern++; - } - break; - default: - if (*str == *pattern) { - str++, pattern++; - } else { - done = TRUE; - } - } - } - while (*pattern == '*') - pattern++; - return ((*str == '\0') && (*pattern == '\0')); -}; - -//------------------------------------------------------------------------ -// subprocess routines -//------------------------------------------------------------------------ - -long wxExecute( char **argv, bool sync, wxProcess *process ) -{ -}; - -long wxExecute( const wxString& command, bool sync, wxProcess *process ) -{ - if (command.IsNull() || command == "") return FALSE; - - int argc = 0; - char *argv[127]; - char tmp[1024]; - const char *IFS = " \t\n"; - - strncpy (tmp, command, sizeof(tmp) / sizeof(char) - 1); - tmp[sizeof (tmp) / sizeof (char) - 1] = '\0'; - argv[argc++] = strtok (tmp, IFS); - while ((argv[argc++] = strtok(NULL, IFS)) != NULL) - /* loop */ ; - return wxExecute(argv, sync, process); -}; - - diff --git a/src/qt/utilsres.cpp b/src/qt/utilsres.cpp deleted file mode 100644 index 562f0f31ca..0000000000 --- a/src/qt/utilsres.cpp +++ /dev/null @@ -1,332 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: -// Author: Robert Roebling -// Created: 01/02/97 -// Id: -// Copyright: (c) 1998 Robert Roebling, Julian Smart and Markus Holzem -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -//#ifdef __GNUG__ -//#pragma implementation "utils.h" -//#endif - -#include "wx/utils.h" -#include "wx/string.h" -#include "wx/list.h" - -#include -#include -#include -#ifdef __SVR4__ -#include -#endif - -#include -#include -#include - - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -// Yuck this is really BOTH site and platform dependent -// so we should use some other strategy! -#ifdef __SUN__ - #define DEFAULT_XRESOURCE_DIR "/usr/openwin/lib/app-defaults" -#else - #define DEFAULT_XRESOURCE_DIR "/usr/lib/X11/app-defaults" -#endif - -//----------------------------------------------------------------------------- -// glabal data (data.cpp) -//----------------------------------------------------------------------------- - -extern wxList wxResourceCache; -extern XrmDatabase wxResourceDatabase; - -//----------------------------------------------------------------------------- -// utility functions for get/write resources -//----------------------------------------------------------------------------- - -static char *GetResourcePath(char *buf, char *name, bool create) -{ - if (create && FileExists(name)) { - strcpy(buf, name); - return buf; // Exists so ... - } - if (*name == '/') - strcpy(buf, name); - else { - // Put in standard place for resource files if not absolute - strcpy(buf, DEFAULT_XRESOURCE_DIR); - strcat(buf, "/"); - strcat(buf, FileNameFromPath(name)); - } - if (create) { - // Touch the file to create it - FILE *fd = fopen(buf, "w"); - if (fd) fclose(fd); - } - return buf; -} - -// Read $HOME for what it says is home, if not -// read $USER or $LOGNAME for user name else determine -// the Real User, then determine the Real home dir. -static char *GetIniFile(char *dest, const char *filename) -{ - char *home = NULL; - if (filename && wxIsAbsolutePath(filename)) - { - strcpy(dest, filename); - } - else - { - if ((home = wxGetUserHome(wxString())) != NULL) - { - strcpy(dest, home); - if (dest[strlen(dest) - 1] != '/') strcat(dest, "/"); - if (filename == NULL) - { - if ((filename = getenv("XENVIRONMENT")) == NULL) filename = ".Xdefaults"; - } - else - if (*filename != '.') strcat(dest, "."); - strcat(dest, filename); - } - else - { - dest[0] = '\0'; - } - } - return dest; -} - -static void wxXMergeDatabases(void) -{ - XrmDatabase homeDB, serverDB, applicationDB; - char filenamebuf[1024]; - - char *filename = &filenamebuf[0]; - char *environment; -// char *classname = gdk_progclass; // Robert Roebling ?? - printf( "Fixme.\n"); - char name[256]; - (void)strcpy(name, "/usr/lib/X11/app-defaults/"); - (void)strcat(name, classname ? classname : "wxWindows"); - - // Get application defaults file, if any - if ((applicationDB = XrmGetFileDatabase(name))) - (void)XrmMergeDatabases(applicationDB, &wxResourceDatabase); - - // Merge server defaults, created by xrdb, loaded as a property of the root - // window when the server initializes and loaded into the display - // structure on XOpenDisplay; - // if not defined, use .Xdefaults - printf( "Fixme.\n"); -/* if (XResourceManagerString(GDK_DISPLAY()) != NULL) { - serverDB = XrmGetStringDatabase(XResourceManagerString(GDK_DISPLAY())); - } else { - (void)GetIniFile(filename, NULL); - serverDB = XrmGetFileDatabase(filename); - } -*/ - if (serverDB) - XrmMergeDatabases(serverDB, &wxResourceDatabase); - - // Open XENVIRONMENT file, or if not defined, the .Xdefaults, - // and merge into existing database - - if ((environment = getenv("XENVIRONMENT")) == NULL) { - size_t len; - environment = GetIniFile(filename, NULL); - len = strlen(environment); -#if !defined(SVR4) || defined(__sgi) - (void)gethostname(environment + len, 1024 - len); -#else - (void)sysinfo(SI_HOSTNAME, environment + len, 1024 - len); -#endif - } - if ((homeDB = XrmGetFileDatabase(environment))) - XrmMergeDatabases(homeDB, &wxResourceDatabase); -} - -//----------------------------------------------------------------------------- -// called on application exit -//----------------------------------------------------------------------------- - -void wxFlushResources(void) -{ - char nameBuffer[512]; - - wxNode *node = wxResourceCache.First(); - while (node) { - char *file = node->key.string; - // If file doesn't exist, create it first. - (void)GetResourcePath(nameBuffer, file, TRUE); - - XrmDatabase database = (XrmDatabase)node->Data(); - XrmPutFileDatabase(database, nameBuffer); - XrmDestroyDatabase(database); - wxNode *next = node->Next(); - delete node; - node = next; - } -} - -void wxDeleteResources(const char *file) -{ - char buffer[500]; - (void)GetIniFile(buffer, file); - - wxNode *node = wxResourceCache.Find(buffer); - if (node) { - XrmDatabase database = (XrmDatabase)node->Data(); - XrmDestroyDatabase(database); - delete node; - } -} - -//----------------------------------------------------------------------------- -// resource functions -//----------------------------------------------------------------------------- - -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file ) -{ - char buffer[500]; - - if (!entry) return FALSE; - - (void)GetIniFile(buffer, file); - - XrmDatabase database; - wxNode *node = wxResourceCache.Find(buffer); - if (node) - database = (XrmDatabase)node->Data(); - else { - database = XrmGetFileDatabase(buffer); - wxResourceCache.Append(buffer, (wxObject *)database); - } - char resName[300]; - strcpy(resName, !section.IsNull() ? WXSTRINGCAST section : "wxWindows"); - strcat(resName, "."); - strcat(resName, entry); - XrmPutStringResource(&database, resName, value); - return TRUE; -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file ) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -}; - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file ) -{ - if (!wxResourceDatabase) - wxXMergeDatabases(); - - XrmDatabase database; - if (file) { - char buffer[500]; - // Is this right? Trying to get it to look in the user's - // home directory instead of current directory -- JACS - (void)GetIniFile(buffer, file); - - wxNode *node = wxResourceCache.Find(buffer); - if (node) - database = (XrmDatabase)node->Data(); - else { - database = XrmGetFileDatabase(buffer); - wxResourceCache.Append(buffer, (wxObject *)database); - } - } else - database = wxResourceDatabase; - - XrmValue xvalue; - char *str_type[20]; - char buf[150]; - strcpy(buf, section); - strcat(buf, "."); - strcat(buf, entry); - - bool success = XrmGetResource(database, buf, "*", str_type, &xvalue); - // Try different combinations of upper/lower case, just in case... - if (!success) { - buf[0] = (isupper(buf[0]) ? tolower(buf[0]) : toupper(buf[0])); - success = XrmGetResource(database, buf, "*", str_type, &xvalue); - } - if (success) { - if (*value) - delete[] *value; - *value = new char[xvalue.size + 1]; - strncpy(*value, xvalue.addr, (int)xvalue.size); - return TRUE; - } - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file ) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) { - *value = (float)strtod(s, NULL); - delete[]s; - return TRUE; - } else - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file ) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) { - *value = strtol(s, NULL, 10); - delete[]s; - return TRUE; - } else - return FALSE; -}; - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file ) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, &s, file); - if (succ) { - // Handle True, False here - // True, Yes, Enables, Set or Activated - if (*s == 'T' || *s == 'Y' || *s == 'E' || *s == 'S' || *s == 'A') - *value = TRUE; - // False, No, Disabled, Reset, Cleared, Deactivated - else if (*s == 'F' || *s == 'N' || *s == 'D' || *s == 'R' || *s == 'C') - *value = FALSE; - // Handle as Integer - else - *value = (int)strtol(s, NULL, 10); - delete[]s; - return TRUE; - } else - return FALSE; -}; - diff --git a/src/qt/verti.xbm b/src/qt/verti.xbm deleted file mode 100644 index 2dd9dc4c05..0000000000 --- a/src/qt/verti.xbm +++ /dev/null @@ -1,6 +0,0 @@ -#define verti_width 15 -#define verti_height 15 -static char verti_bits[] = { - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, - 0x84, 0x10, 0x84, 0x10, 0x84, 0x10}; diff --git a/src/qt/window.cpp b/src/qt/window.cpp deleted file mode 100644 index dce26c84da..0000000000 --- a/src/qt/window.cpp +++ /dev/null @@ -1,1284 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows.cpp -// Purpose: wxWindow -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "window.h" -#endif - -#include "wx/setup.h" -#include "wx/menu.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/panel.h" -#include "wx/layout.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" - -#include "wx/menuitem.h" -#include "wx/log.h" - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#include - -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler) - -BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) - EVT_CHAR(wxWindow::OnChar) - EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindow::OnInitDialog) - EVT_IDLE(wxWindow::OnIdle) -END_EVENT_TABLE() - -#endif - - -// Constructor -wxWindow::wxWindow() -{ - // Generic - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_children = new wxList; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - m_defaultItem = NULL; - m_returnCode = 0; - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_foregroundColour = *wxBLACK; - m_defaultForegroundColour = *wxBLACK ; - m_defaultBackgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif -} - -// Destructor -wxWindow::~wxWindow() -{ - // Have to delete constraints/sizer FIRST otherwise - // sizers may try to look at deleted windows as they - // delete themselves. -#if wxUSE_CONSTRAINTS - DeleteRelatedConstraints(); - if (m_constraints) - { - // This removes any dangling pointers to this window - // in other windows' constraintsInvolvedIn lists. - UnsetConstraints(m_constraints); - delete m_constraints; - m_constraints = NULL; - } - if (m_windowSizer) - { - delete m_windowSizer; - m_windowSizer = NULL; - } - // If this is a child of a sizer, remove self from parent - if (m_sizerParent) - m_sizerParent->RemoveChild((wxWindow *)this); -#endif - - if (m_windowParent) - m_windowParent->RemoveChild(this); - - DestroyChildren(); - - // TODO: destroy the window - - delete m_children; - m_children = NULL; - - // Just in case the window has been Closed, but - // we're then deleting immediately: don't leave - // dangling pointers. - wxPendingDelete.DeleteObject(this); - - if ( m_windowValidator ) - delete m_windowValidator; -} - -// Destroy the window (delayed, if a managed window) -bool wxWindow::Destroy() -{ - delete this; - return TRUE; -} - -// Constructor -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // Generic - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif - - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_minSizeX = -1; - m_minSizeY = -1; - m_maxSizeX = -1; - m_maxSizeY = -1; - m_defaultItem = NULL; - m_windowParent = NULL; - if (!parent) - return FALSE; - - if (parent) parent->AddChild(this); - - m_returnCode = 0; - - SetName(name); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_foregroundColour = *wxBLACK; - m_defaultForegroundColour = *wxBLACK ; - m_defaultBackgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create the window - - return TRUE; -} - -void wxWindow::SetFocus() -{ - // TODO -} - -void wxWindow::Enable(bool enable) -{ - // TODO -} - -void wxWindow::CaptureMouse() -{ - // TODO -} - -void wxWindow::ReleaseMouse() -{ - // TODO -} - -// Push/pop event handler (i.e. allow a chain of event handlers -// be searched) -void wxWindow::PushEventHandler(wxEvtHandler *handler) -{ - handler->SetNextHandler(GetEventHandler()); - SetEventHandler(handler); -} - -wxEvtHandler *wxWindow::PopEventHandler(bool deleteHandler) -{ - if ( GetEventHandler() ) - { - wxEvtHandler *handlerA = GetEventHandler(); - wxEvtHandler *handlerB = handlerA->GetNextHandler(); - handlerA->SetNextHandler(NULL); - SetEventHandler(handlerB); - if ( deleteHandler ) - { - delete handlerA; - return NULL; - } - else - return handlerA; - } - else - return NULL; -} - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget(wxDropTarget *pDropTarget) -{ - if ( m_pDropTarget != 0 ) { - m_pDropTarget->Revoke(m_hWnd); - delete m_pDropTarget; - } - - m_pDropTarget = pDropTarget; - if ( m_pDropTarget != 0 ) - m_pDropTarget->Register(m_hWnd); -} - -#endif - -// Old style file-manager drag&drop -void wxWindow::DragAcceptFiles(bool accept) -{ - // TODO -} - -// Get total size -void wxWindow::GetSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ScreenToClient(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ClientToScreen(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetCursor(const wxCursor& cursor) -{ - m_windowCursor = cursor; - if (m_windowCursor.Ok()) - { - // TODO - } -} - - -// Get size *available for subwindows* i.e. excluding menu bar etc. -void wxWindow::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxWindow::SetClientSize(int width, int height) -{ - // TODO -} - -// For implementation purposes - sometimes decorations make the client area -// smaller -wxPoint wxWindow::GetClientAreaOrigin() const -{ - return wxPoint(0, 0); -} - -// Makes an adjustment to the window position (for example, a frame that has -// a toolbar that it manages itself). -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - x += pt.x; y += pt.y; - } -} - -bool wxWindow::Show(bool show) -{ - // TODO - return FALSE; -} - -bool wxWindow::IsShown() const -{ - // TODO - return FALSE; -} - -int wxWindow::GetCharHeight() const -{ - // TODO - return 0; -} - -int wxWindow::GetCharWidth() const -{ - // TODO - return 0; -} - -void wxWindow::GetTextExtent(const wxString& string, int *x, int *y, - int *descent, int *externalLeading, const wxFont *theFont, bool) const -{ - wxFont *fontToUse = (wxFont *)theFont; - if (!fontToUse) - fontToUse = (wxFont *) & m_windowFont; - - // TODO -} - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - // TODO -} - -// Responds to colour changes: passes event on to children. -void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxNode *node = GetChildren()->First(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = (wxWindow *)node->Data(); - if ( win->GetParent() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->Next(); - } -} - -// This can be called by the app (or wxWindows) to do default processing for the current -// event. Save message/event info in wxWindow so they can be used in this function. -long wxWindow::Default() -{ - // TODO - return 0; -} - -void wxWindow::InitDialog() -{ - wxInitDialogEvent event(GetId()); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -// Default init dialog behaviour is to transfer data to window -void wxWindow::OnInitDialog(wxInitDialogEvent& event) -{ - TransferDataToWindow(); -} - -// Caret manipulation -void wxWindow::CreateCaret(int w, int h) -{ - m_caretWidth = w; - m_caretHeight = h; - m_caretEnabled = TRUE; -} - -void wxWindow::CreateCaret(const wxBitmap *WXUNUSED(bitmap)) -{ - // TODO -} - -void wxWindow::ShowCaret(bool show) -{ - // TODO -} - -void wxWindow::DestroyCaret() -{ - // TODO - m_caretEnabled = FALSE; -} - -void wxWindow::SetCaretPos(int x, int y) -{ - // TODO -} - -void wxWindow::GetCaretPos(int *x, int *y) const -{ - // TODO -} - -wxWindow *wxGetActiveWindow() -{ - // TODO - return NULL; -} - -void wxWindow::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW), int WXUNUSED(incH)) -{ - m_minSizeX = minW; - m_minSizeY = minH; - m_maxSizeX = maxW; - m_maxSizeY = maxH; -} - -void wxWindow::Centre(int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *father = (wxWindow *)GetParent(); - if (!father) - return; - - father->GetClientSize(&panel_width, &panel_height); - GetSize(&width, &height); - GetPosition(&x, &y); - - new_x = -1; - new_y = -1; - - if (direction & wxHORIZONTAL) - new_x = (int)((panel_width - width)/2); - - if (direction & wxVERTICAL) - new_y = (int)((panel_height - height)/2); - - SetSize(new_x, new_y, -1, -1); - -} - -// Coordinates relative to the window -void wxWindow::WarpPointer (int x_pos, int y_pos) -{ - // TODO -} - -void wxWindow::OnEraseBackground(wxEraseEvent& event) -{ - // TODO - Default(); -} - -int wxWindow::GetScrollPos(int orient) const -{ - // TODO - return 0; -} - -// This now returns the whole range, not just the number -// of positions that we can scroll. -int wxWindow::GetScrollRange(int orient) const -{ - // TODO - return 0; -} - -int wxWindow::GetScrollThumb(int orient) const -{ - // TODO - return 0; -} - -void wxWindow::SetScrollPos(int orient, int pos, bool refresh) -{ - // TODO - return 0; -} - -// New function that will replace some of the above. -void wxWindow::SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh) -{ - // TODO -} - -// Does a physical scroll -void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) -{ - // TODO - return 0; -} - -void wxWindow::SetFont(const wxFont& font) -{ - m_windowFont = font; - - if (!m_windowFont.Ok()) - return; - // TODO -} - -void wxWindow::OnChar(wxKeyEvent& event) -{ - if ( event.KeyCode() == WXK_TAB ) { - // propagate the TABs to the parent - it's up to it to decide what - // to do with it - if ( GetParent() ) { - if ( GetParent()->ProcessEvent(event) ) - return; - } - } -} - -void wxWindow::OnPaint(wxPaintEvent& event) -{ - Default(); -} - -bool wxWindow::IsEnabled() const -{ - // TODO - return FALSE; -} - -// Dialog support: override these and call -// base class members to add functionality -// that can't be done using validators. -// NOTE: these functions assume that controls -// are direct children of this window, not grandchildren -// or other levels of descendant. - -// Transfer values to controls. If returns FALSE, -// it's an application error (pops up a dialog) -bool wxWindow::TransferDataToWindow() -{ - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && - !child->GetValidator()->TransferToWindow() ) - { - wxMessageBox("Application Error", "Could not transfer data to window", wxOK|wxICON_EXCLAMATION); - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Transfer values from controls. If returns FALSE, -// validation failed: don't quit -bool wxWindow::TransferDataFromWindow() -{ - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && !child->GetValidator()->TransferFromWindow() ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -bool wxWindow::Validate() -{ - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && /* child->GetValidator()->Ok() && */ !child->GetValidator()->Validate(this) ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Get the window with the focus -wxWindow *wxWindow::FindFocus() -{ - // TODO - return NULL; -} - -void wxWindow::AddChild(wxWindow *child) -{ - GetChildren()->Append(child); - child->m_windowParent = this; -} - -void wxWindow::RemoveChild(wxWindow *child) -{ - if (GetChildren()) - GetChildren()->DeleteObject(child); - child->m_windowParent = NULL; -} - -void wxWindow::DestroyChildren() -{ - if (GetChildren()) { - wxNode *node; - while ((node = GetChildren()->First()) != (wxNode *)NULL) { - wxWindow *child; - if ((child = (wxWindow *)node->Data()) != (wxWindow *)NULL) { - delete child; - if ( GetChildren()->Member(child) ) - delete node; - } - } /* while */ - } -} - -void wxWindow::MakeModal(bool modal) -{ - // Disable all other windows - if (this->IsKindOf(CLASSINFO(wxDialog)) || this->IsKindOf(CLASSINFO(wxFrame))) - { - wxNode *node = wxTopLevelWindows.First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win != this) - win->Enable(!modal); - - node = node->Next(); - } - } -} - -// If nothing defined for this, try the parent. -// E.g. we may be a button loaded from a resource, with no callback function -// defined. -void wxWindow::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if (GetEventHandler()->ProcessEvent(event) ) - return; - if (m_windowParent) - m_windowParent->GetEventHandler()->OnCommand(win, event); -} - -void wxWindow::SetConstraints(wxLayoutConstraints *c) -{ - if (m_constraints) - { - UnsetConstraints(m_constraints); - delete m_constraints; - } - m_constraints = c; - if (m_constraints) - { - // Make sure other windows know they're part of a 'meaningful relationship' - if (m_constraints->left.GetOtherWindow() && (m_constraints->left.GetOtherWindow() != this)) - m_constraints->left.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->top.GetOtherWindow() && (m_constraints->top.GetOtherWindow() != this)) - m_constraints->top.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->right.GetOtherWindow() && (m_constraints->right.GetOtherWindow() != this)) - m_constraints->right.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->bottom.GetOtherWindow() && (m_constraints->bottom.GetOtherWindow() != this)) - m_constraints->bottom.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->width.GetOtherWindow() && (m_constraints->width.GetOtherWindow() != this)) - m_constraints->width.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->height.GetOtherWindow() && (m_constraints->height.GetOtherWindow() != this)) - m_constraints->height.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreX.GetOtherWindow() && (m_constraints->centreX.GetOtherWindow() != this)) - m_constraints->centreX.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreY.GetOtherWindow() && (m_constraints->centreY.GetOtherWindow() != this)) - m_constraints->centreY.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - } -} - -// This removes any dangling pointers to this window -// in other windows' constraintsInvolvedIn lists. -void wxWindow::UnsetConstraints(wxLayoutConstraints *c) -{ - if (c) - { - if (c->left.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->left.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->top.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->top.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->right.GetOtherWindow() && (c->right.GetOtherWindow() != this)) - c->right.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->bottom.GetOtherWindow() && (c->bottom.GetOtherWindow() != this)) - c->bottom.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->width.GetOtherWindow() && (c->width.GetOtherWindow() != this)) - c->width.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->height.GetOtherWindow() && (c->height.GetOtherWindow() != this)) - c->height.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreX.GetOtherWindow() && (c->centreX.GetOtherWindow() != this)) - c->centreX.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreY.GetOtherWindow() && (c->centreY.GetOtherWindow() != this)) - c->centreY.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - } -} - -// Back-pointer to other windows we're involved with, so if we delete -// this window, we must delete any constraints we're involved with. -void wxWindow::AddConstraintReference(wxWindow *otherWin) -{ - if (!m_constraintsInvolvedIn) - m_constraintsInvolvedIn = new wxList; - if (!m_constraintsInvolvedIn->Member(otherWin)) - m_constraintsInvolvedIn->Append(otherWin); -} - -// REMOVE back-pointer to other windows we're involved with. -void wxWindow::RemoveConstraintReference(wxWindow *otherWin) -{ - if (m_constraintsInvolvedIn) - m_constraintsInvolvedIn->DeleteObject(otherWin); -} - -// Reset any constraints that mention this window -void wxWindow::DeleteRelatedConstraints() -{ - if (m_constraintsInvolvedIn) - { - wxNode *node = m_constraintsInvolvedIn->First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - wxNode *next = node->Next(); - wxLayoutConstraints *constr = win->GetConstraints(); - - // Reset any constraints involving this window - if (constr) - { - constr->left.ResetIfWin((wxWindow *)this); - constr->top.ResetIfWin((wxWindow *)this); - constr->right.ResetIfWin((wxWindow *)this); - constr->bottom.ResetIfWin((wxWindow *)this); - constr->width.ResetIfWin((wxWindow *)this); - constr->height.ResetIfWin((wxWindow *)this); - constr->centreX.ResetIfWin((wxWindow *)this); - constr->centreY.ResetIfWin((wxWindow *)this); - } - delete node; - node = next; - } - delete m_constraintsInvolvedIn; - m_constraintsInvolvedIn = NULL; - } -} - -void wxWindow::SetSizer(wxSizer *sizer) -{ - m_windowSizer = sizer; - if (sizer) - sizer->SetSizerParent((wxWindow *)this); -} - -/* - * New version - */ - -bool wxWindow::Layout() -{ - if (GetConstraints()) - { - int w, h; - GetClientSize(&w, &h); - GetConstraints()->width.SetValue(w); - GetConstraints()->height.SetValue(h); - } - - // If top level (one sizer), evaluate the sizer's constraints. - if (GetSizer()) - { - int noChanges; - GetSizer()->ResetConstraints(); // Mark all constraints as unevaluated - GetSizer()->LayoutPhase1(&noChanges); - GetSizer()->LayoutPhase2(&noChanges); - GetSizer()->SetConstraintSizes(); // Recursively set the real window sizes - return TRUE; - } - else - { - // Otherwise, evaluate child constraints - ResetConstraints(); // Mark all constraints as unevaluated - DoPhase(1); // Just one phase need if no sizers involved - DoPhase(2); - SetConstraintSizes(); // Recursively set the real window sizes - } - return TRUE; -} - - -// Do a phase of evaluating constraints: -// the default behaviour. wxSizers may do a similar -// thing, but also impose their own 'constraints' -// and order the evaluation differently. -bool wxWindow::LayoutPhase1(int *noChanges) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - return constr->SatisfyConstraints((wxWindow *)this, noChanges); - } - else - return TRUE; -} - -bool wxWindow::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - // Layout children - DoPhase(1); - DoPhase(2); - return TRUE; -} - -// Do a phase of evaluating child constraints -bool wxWindow::DoPhase(int phase) -{ - int noIterations = 0; - int maxIterations = 500; - int noChanges = 1; - int noFailures = 0; - wxList succeeded; - while ((noChanges > 0) && (noIterations < maxIterations)) - { - noChanges = 0; - noFailures = 0; - wxNode *node = GetChildren()->First(); - while (node) - { - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && !child->IsKindOf(CLASSINFO(wxDialog))) - { - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr) - { - if (succeeded.Member(child)) - { - } - else - { - int tempNoChanges = 0; - bool success = ( (phase == 1) ? child->LayoutPhase1(&tempNoChanges) : child->LayoutPhase2(&tempNoChanges) ) ; - noChanges += tempNoChanges; - if (success) - { - succeeded.Append(child); - } - } - } - } - node = node->Next(); - } - noIterations ++; - } - return TRUE; -} - -void wxWindow::ResetConstraints() -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - constr->left.SetDone(FALSE); - constr->top.SetDone(FALSE); - constr->right.SetDone(FALSE); - constr->bottom.SetDone(FALSE); - constr->width.SetDone(FALSE); - constr->height.SetDone(FALSE); - constr->centreX.SetDone(FALSE); - constr->centreY.SetDone(FALSE); - } - wxNode *node = GetChildren()->First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->ResetConstraints(); - node = node->Next(); - } -} - -// Need to distinguish between setting the 'fake' size for -// windows and sizers, and setting the real values. -void wxWindow::SetConstraintSizes(bool recurse) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr && constr->left.GetDone() && constr->right.GetDone() && - constr->width.GetDone() && constr->height.GetDone()) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - - // If we don't want to resize this window, just move it... - if ((constr->width.GetRelationship() != wxAsIs) || - (constr->height.GetRelationship() != wxAsIs)) - { - // Calls Layout() recursively. AAAGH. How can we stop that. - // Simply take Layout() out of non-top level OnSizes. - SizerSetSize(x, y, w, h); - } - else - { - SizerMove(x, y); - } - } - else if (constr) - { - char *windowClass = this->GetClassInfo()->GetClassName(); - - wxString winName; - if (GetName() == "") - winName = "unnamed"; - else - winName = GetName(); - wxDebugMsg("Constraint(s) not satisfied for window of type %s, name %s:\n", (const char *)windowClass, (const char *)winName); - if (!constr->left.GetDone()) - wxDebugMsg(" unsatisfied 'left' constraint.\n"); - if (!constr->right.GetDone()) - wxDebugMsg(" unsatisfied 'right' constraint.\n"); - if (!constr->width.GetDone()) - wxDebugMsg(" unsatisfied 'width' constraint.\n"); - if (!constr->height.GetDone()) - wxDebugMsg(" unsatisfied 'height' constraint.\n"); - wxDebugMsg("Please check constraints: try adding AsIs() constraints.\n"); - } - - if (recurse) - { - wxNode *node = GetChildren()->First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->SetConstraintSizes(); - node = node->Next(); - } - } -} - -// This assumes that all sizers are 'on' the same -// window, i.e. the parent of this window. -void wxWindow::TransformSizerToActual(int *x, int *y) const -{ - if (!m_sizerParent || m_sizerParent->IsKindOf(CLASSINFO(wxDialog)) || - m_sizerParent->IsKindOf(CLASSINFO(wxFrame)) ) - return; - - int xp, yp; - m_sizerParent->GetPosition(&xp, &yp); - m_sizerParent->TransformSizerToActual(&xp, &yp); - *x += xp; - *y += yp; -} - -void wxWindow::SizerSetSize(int x, int y, int w, int h) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - SetSize(xx, yy, w, h); -} - -void wxWindow::SizerMove(int x, int y) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - Move(xx, yy); -} - -// Only set the size/position of the constraint (if any) -void wxWindow::SetSizeConstraint(int x, int y, int w, int h) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - if (w != -1) - { - constr->width.SetValue(w); - constr->width.SetDone(TRUE); - } - if (h != -1) - { - constr->height.SetValue(h); - constr->height.SetDone(TRUE); - } - } -} - -void wxWindow::MoveConstraint(int x, int y) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - } -} - -void wxWindow::GetSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetSize(w, h); -} - -void wxWindow::GetClientSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetClientSize(w, h); -} - -void wxWindow::GetPositionConstraint(int *x, int *y) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *x = constr->left.GetValue(); - *y = constr->top.GetValue(); - } - else - GetPosition(x, y); -} - -bool wxWindow::Close(bool force) -{ - wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId); - event.SetEventObject(this); -#if WXWIN_COMPATIBILITY - event.SetForce(force); -#endif - event.SetCanVeto(!force); - - return GetEventHandler()->ProcessEvent(event); -} - -wxObject* wxWindow::GetChild(int number) const -{ - // Return a pointer to the Nth object in the window - if (!GetChildren()) - return(NULL) ; - wxNode *node = GetChildren()->First(); - int n = number; - while (node && n--) - node = node->Next() ; - if (node) - { - wxObject *obj = (wxObject *)node->Data(); - return(obj) ; - } - else - return NULL ; -} - -void wxWindow::OnDefaultAction(wxControl *initiatingItem) -{ - // Obsolete function -} - -void wxWindow::Clear() -{ - wxClientDC dc(this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - -// Fits the panel around the items -void wxWindow::Fit() -{ - int maxX = 0; - int maxY = 0; - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *win = (wxWindow *)node->Data(); - int wx, wy, ww, wh; - win->GetPosition(&wx, &wy); - win->GetSize(&ww, &wh); - if ( wx + ww > maxX ) - maxX = wx + ww; - if ( wy + wh > maxY ) - maxY = wy + wh; - - node = node->Next(); - } - SetClientSize(maxX + 5, maxY + 5); -} - -void wxWindow::SetValidator(const wxValidator& validator) -{ - if ( m_windowValidator ) - delete m_windowValidator; - m_windowValidator = validator.Clone(); - - if ( m_windowValidator ) - m_windowValidator->SetWindow(this) ; -} - -// Find a window by id or name -wxWindow *wxWindow::FindWindow(long id) -{ - if ( GetId() == id) - return this; - - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(id); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -wxWindow *wxWindow::FindWindow(const wxString& name) -{ - if ( GetName() == name) - return this; - - wxNode *node = GetChildren()->First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(name); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ -/* TODO: you may need to do something like this - * if your GUI doesn't generate enter/leave events - - // Check if we need to send a LEAVE event - if (m_mouseInWindow) - { - POINT pt; - ::GetCursorPos(&pt); - if (::WindowFromPoint(pt) != (HWND) GetHWND()) - { - // Generate a LEAVE event - m_mouseInWindow = FALSE; - MSWOnMouseLeave(pt.x, pt.y, 0); - } - } -*/ - - // This calls the UI-update mechanism (querying windows for - // menu/toolbar/control state information) - UpdateWindowUI(); -} - -// Raise the window to the top of the Z order -void wxWindow::Raise() -{ - // TODO -} - -// Lower the window to the bottom of the Z order -void wxWindow::Lower() -{ - // TODO -} - -bool wxWindow::AcceptsFocus() const -{ - return IsShown() && IsEnabled(); -} - -// Update region access -wxRegion wxWindow::GetUpdateRegion() const -{ - return m_updateRegion; -} - -bool wxWindow::IsExposed(int x, int y, int w, int h) const -{ - return (m_updateRegion.Contains(x, y, w, h) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxPoint& pt) const -{ - return (m_updateRegion.Contains(pt) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxRect& rect) const -{ - return (m_updateRegion.Contains(rect) != wxOutRegion); -} - - diff --git a/src/regex/COPYRIGHT b/src/regex/COPYRIGHT deleted file mode 100644 index 30c1f7a488..0000000000 --- a/src/regex/COPYRIGHT +++ /dev/null @@ -1,20 +0,0 @@ -Copyright 1992, 1993, 1994, 1997 Henry Spencer. All rights reserved. -This software is not subject to any license of the American Telephone -and Telegraph Company or of the Regents of the University of California. - -Permission is granted to anyone to use this software for any purpose on -any computer system, and to alter it and redistribute it, subject -to the following restrictions: - -1. The author is not responsible for the consequences of use of this - software, no matter how awful, even if they arise from flaws in it. - -2. The origin of this software must not be misrepresented, either by - explicit claim or by omission. Since few users ever read sources, - credits must appear in the documentation. - -3. Altered versions must be plainly marked as such, and must not be - misrepresented as being the original software. Since few users - ever read sources, credits must appear in the documentation. - -4. This notice may not be removed or altered. diff --git a/src/regex/Makefile b/src/regex/Makefile deleted file mode 100644 index 3882b37864..0000000000 --- a/src/regex/Makefile +++ /dev/null @@ -1,130 +0,0 @@ -# You probably want to take -DREDEBUG out of CFLAGS, and put something like -# -O in, *after* testing (-DREDEBUG strengthens testing by enabling a lot of -# internal assertion checking and some debugging facilities). -# Put -Dconst= in for a pre-ANSI compiler. -# Do not take -DPOSIX_MISTAKE out. -# REGCFLAGS isn't important to you (it's for my use in some special contexts). -CFLAGS=-I. -DPOSIX_MISTAKE -DREDEBUG $(REGCFLAGS) - -# If you have a pre-ANSI compiler, put -o into MKHFLAGS. If you want -# the Berkeley __P macro, put -b in. -MKHFLAGS= - -# Flags for linking but not compiling, if any. -LDFLAGS= - -# Extra libraries for linking, if any. -LIBS= - -# Internal stuff, should not need changing. -OBJPRODN=regcomp.o regexec.o regerror.o regfree.o -OBJS=$(OBJPRODN) split.o debug.o main.o -H=cclass.h cname.h regex2.h utils.h -REGSRC=regcomp.c regerror.c regexec.c regfree.c -ALLSRC=$(REGSRC) engine.c debug.c main.c split.c - -# Stuff that matters only if you're trying to lint the package. -LINTFLAGS=-I. -Dstatic= -Dconst= -DREDEBUG -LINTC=regcomp.c regexec.c regerror.c regfree.c debug.c main.c -JUNKLINT=possible pointer alignment|null effect - -# arrangements to build forward-reference header files -.SUFFIXES: .ih .h -.c.ih: - sh ./mkh $(MKHFLAGS) -p $< >$@ - -default: r - -lib: purge $(OBJPRODN) - rm -f libregex.a - ar crv libregex.a $(OBJPRODN) - -purge: - rm -f *.o - -# stuff to build regex.h -REGEXH=regex.h -REGEXHSRC=regex2.h $(REGSRC) -$(REGEXH): $(REGEXHSRC) mkh - sh ./mkh $(MKHFLAGS) -i _REGEX_H_ $(REGEXHSRC) >regex.tmp - cmp -s regex.tmp regex.h 2>/dev/null || cp regex.tmp regex.h - rm -f regex.tmp - -# dependencies -$(OBJPRODN) debug.o: utils.h regex.h regex2.h -regcomp.o: cclass.h cname.h regcomp.ih -regexec.o: engine.c engine.ih -regerror.o: regerror.ih -debug.o: debug.ih -main.o: main.ih - -# tester -re: $(OBJS) - $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o $@ - -# regression test -r: re tests - ./re &1 | egrep -v '$(JUNKLINT)' | tee lint - -fullprint: - ti README WHATSNEW notes todo | list - ti *.h | list - list *.c - list regex.3 regex.7 - -print: - ti README WHATSNEW notes todo | list - ti *.h | list - list reg*.c engine.c - - -mf.tmp: Makefile - sed '/^REGEXH=/s/=.*/=regex.h/' Makefile | sed '/#DEL$$/d' >$@ - -DTRH=cclass.h cname.h regex2.h utils.h -PRE=COPYRIGHT README WHATSNEW -POST=mkh regex.3 regex.7 tests $(DTRH) $(ALLSRC) fake/*.[ch] -FILES=$(PRE) Makefile $(POST) -DTR=$(PRE) Makefile=mf.tmp $(POST) -dtr: $(FILES) mf.tmp - makedtr $(DTR) >$@ - rm mf.tmp - -cio: $(FILES) - cio $(FILES) - -rdf: $(FILES) - rcsdiff -c $(FILES) 2>&1 | p - -# various forms of cleanup -tidy: - rm -f junk* core core.* *.core dtr *.tmp lint - -clean: tidy - rm -f *.o *.s *.ih re libregex.a - -# don't do this one unless you know what you're doing -spotless: clean - rm -f mkh regex.h diff --git a/src/regex/README b/src/regex/README deleted file mode 100644 index e6ce373444..0000000000 --- a/src/regex/README +++ /dev/null @@ -1,32 +0,0 @@ -alpha3.8 release. -Tue Aug 10 15:51:48 EDT 1999 -henry@spsystems.net (formerly henry@zoo.toronto.edu) - -See WHATSNEW for change listing. - -installation notes: --------- -Read the comments at the beginning of Makefile before running. - -Utils.h contains some things that just might have to be modified on -some systems, as well as a nested include (ugh) of . - -The "fake" directory contains quick-and-dirty fakes for some header -files and routines that old systems may not have. Note also that --DUSEBCOPY will make utils.h substitute bcopy() for memmove(). - -After that, "make r" will build regcomp.o, regexec.o, regfree.o, -and regerror.o (the actual routines), bundle them together into a test -program, and run regression tests on them. No output is good output. - -"make lib" builds just the .o files for the actual routines (when -you're happy with testing and have adjusted CFLAGS for production), -and puts them together into libregex.a. You can pick up either the -library or *.o ("make lib" makes sure there are no other .o files left -around to confuse things). - -Main.c, debug.c, split.c are used for regression testing but are not part -of the RE routines themselves. - -Regex.h goes in /usr/include. All other .h files are internal only. --------- diff --git a/src/regex/WHATSNEW b/src/regex/WHATSNEW deleted file mode 100644 index 12953433d3..0000000000 --- a/src/regex/WHATSNEW +++ /dev/null @@ -1,108 +0,0 @@ -New in alpha3.8: Bug fix for signed/unsigned mixup, found and fixed -by the FreeBSD folks. - -New in alpha3.7: A bit of cleanup aimed at maximizing portability, -possibly at slight cost in efficiency. "ul" suffixes and "unsigned long" -no longer appear, in particular. - -New in alpha3.6: A couple more portability glitches fixed. - -New in alpha3.5: Active development of this code has been stopped -- -I'm working on a complete reimplementation -- but folks have found some -minor portability glitches and the like, hence this release to fix them. -One penalty: slightly reduced compatibility with old compilers, because -the ANSI C `unsigned long' type and `ul' constant suffix are used in a -few places (I could avoid this but it would be considerably more work). - -New in alpha3.4: The complex bug alluded to below has been fixed (in a -slightly kludgey temporary way that may hurt efficiency a bit; this is -another "get it out the door for 4.4" release). The tests at the end of -the tests file have accordingly been uncommented. The primary sign of -the bug was that something like a?b matching ab matched b rather than ab. -(The bug was essentially specific to this exact situation, else it would -have shown up earlier.) - -New in alpha3.3: The definition of word boundaries has been altered -slightly, to more closely match the usual programming notion that "_" -is an alphabetic. Stuff used for pre-ANSI systems is now in a subdir, -and the makefile no longer alludes to it in mysterious ways. The -makefile has generally been cleaned up some. Fixes have been made -(again!) so that the regression test will run without -DREDEBUG, at -the cost of weaker checking. A workaround for a bug in some folks' - has been added. And some more things have been added to -tests, including a couple right at the end which are commented out -because the code currently flunks them (complex bug; fix coming). -Plus the usual minor cleanup. - -New in alpha3.2: Assorted bits of cleanup and portability improvement -(the development base is now a BSDI system using GCC instead of an ancient -Sun system, and the newer compiler exposed some glitches). Fix for a -serious bug that affected REs using many [] (including REG_ICASE REs -because of the way they are implemented), *sometimes*, depending on -memory-allocation patterns. The header-file prototypes no longer name -the parameters, avoiding possible name conflicts. The possibility that -some clot has defined CHAR_MIN as (say) `-128' instead of `(-128)' is -now handled gracefully. "uchar" is no longer used as an internal type -name (too many people have the same idea). Still the same old lousy -performance, alas. - -New in alpha3.1: Basically nothing, this release is just a bookkeeping -convenience. Stay tuned. - -New in alpha3.0: Performance is no better, alas, but some fixes have been -made and some functionality has been added. (This is basically the "get -it out the door in time for 4.4" release.) One bug fix: regfree() didn't -free the main internal structure (how embarrassing). It is now possible -to put NULs in either the RE or the target string, using (resp.) a new -REG_PEND flag and the old REG_STARTEND flag. The REG_NOSPEC flag to -regcomp() makes all characters ordinary, so you can match a literal -string easily (this will become more useful when performance improves!). -There are now primitives to match beginnings and ends of words, although -the syntax is disgusting and so is the implementation. The REG_ATOI -debugging interface has changed a bit. And there has been considerable -internal cleanup of various kinds. - -New in alpha2.3: Split change list out of README, and moved flags notes -into Makefile. Macro-ized the name of regex(7) in regex(3), since it has -to change for 4.4BSD. Cleanup work in engine.c, and some new regression -tests to catch tricky cases thereof. - -New in alpha2.2: Out-of-date manpages updated. Regerror() acquires two -small extensions -- REG_ITOA and REG_ATOI -- which avoid debugging kludges -in my own test program and might be useful to others for similar purposes. -The regression test will now compile (and run) without REDEBUG. The -BRE \$ bug is fixed. Most uses of "uchar" are gone; it's all chars now. -Char/uchar parameters are now written int/unsigned, to avoid possible -portability problems with unpromoted parameters. Some unsigned casts have -been introduced to minimize portability problems with shifting into sign -bits. - -New in alpha2.1: Lots of little stuff, cleanup and fixes. The one big -thing is that regex.h is now generated, using mkh, rather than being -supplied in the distribution; due to circularities in dependencies, -you have to build regex.h explicitly by "make h". The two known bugs -have been fixed (and the regression test now checks for them), as has a -problem with assertions not being suppressed in the absence of REDEBUG. -No performance work yet. - -New in alpha2: Backslash-anything is an ordinary character, not an -error (except, of course, for the handful of backslashed metacharacters -in BREs), which should reduce script breakage. The regression test -checks *where* null strings are supposed to match, and has generally -been tightened up somewhat. Small bug fixes in parameter passing (not -harmful, but technically errors) and some other areas. Debugging -invoked by defining REDEBUG rather than not defining NDEBUG. - -New in alpha+3: full prototyping for internal routines, using a little -helper program, mkh, which extracts prototypes given in stylized comments. -More minor cleanup. Buglet fix: it's CHAR_BIT, not CHAR_BITS. Simple -pre-screening of input when a literal string is known to be part of the -RE; this does wonders for performance. - -New in alpha+2: minor bits of cleanup. Notably, the number "32" for the -word width isn't hardwired into regexec.c any more, the public header -file prototypes the functions if __STDC__ is defined, and some small typos -in the manpages have been fixed. - -New in alpha+1: improvements to the manual pages, and an important -extension, the REG_STARTEND option to regexec(). diff --git a/src/regex/cclass.h b/src/regex/cclass.h deleted file mode 100644 index 0c293028e9..0000000000 --- a/src/regex/cclass.h +++ /dev/null @@ -1,31 +0,0 @@ -/* character-class table */ -static struct cclass { - char *name; - char *chars; - char *multis; -} cclasses[] = { - "alnum", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789", "", - "alpha", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", - "", - "blank", " \t", "", - "cntrl", "\007\b\t\n\v\f\r\1\2\3\4\5\6\16\17\20\21\22\23\24\ -\25\26\27\30\31\32\33\34\35\36\37\177", "", - "digit", "0123456789", "", - "graph", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "", - "lower", "abcdefghijklmnopqrstuvwxyz", - "", - "print", "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\ -0123456789!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~ ", - "", - "punct", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~", - "", - "space", "\t\n\v\f\r ", "", - "upper", "ABCDEFGHIJKLMNOPQRSTUVWXYZ", - "", - "xdigit", "0123456789ABCDEFabcdef", - "", - NULL, 0, "" -}; diff --git a/src/regex/cname.h b/src/regex/cname.h deleted file mode 100644 index 02e86e912e..0000000000 --- a/src/regex/cname.h +++ /dev/null @@ -1,102 +0,0 @@ -/* character-name table */ -static struct cname { - char *name; - char code; -} cnames[] = { - "NUL", '\0', - "SOH", '\001', - "STX", '\002', - "ETX", '\003', - "EOT", '\004', - "ENQ", '\005', - "ACK", '\006', - "BEL", '\007', - "alert", '\007', - "BS", '\010', - "backspace", '\b', - "HT", '\011', - "tab", '\t', - "LF", '\012', - "newline", '\n', - "VT", '\013', - "vertical-tab", '\v', - "FF", '\014', - "form-feed", '\f', - "CR", '\015', - "carriage-return", '\r', - "SO", '\016', - "SI", '\017', - "DLE", '\020', - "DC1", '\021', - "DC2", '\022', - "DC3", '\023', - "DC4", '\024', - "NAK", '\025', - "SYN", '\026', - "ETB", '\027', - "CAN", '\030', - "EM", '\031', - "SUB", '\032', - "ESC", '\033', - "IS4", '\034', - "FS", '\034', - "IS3", '\035', - "GS", '\035', - "IS2", '\036', - "RS", '\036', - "IS1", '\037', - "US", '\037', - "space", ' ', - "exclamation-mark", '!', - "quotation-mark", '"', - "number-sign", '#', - "dollar-sign", '$', - "percent-sign", '%', - "ampersand", '&', - "apostrophe", '\'', - "left-parenthesis", '(', - "right-parenthesis", ')', - "asterisk", '*', - "plus-sign", '+', - "comma", ',', - "hyphen", '-', - "hyphen-minus", '-', - "period", '.', - "full-stop", '.', - "slash", '/', - "solidus", '/', - "zero", '0', - "one", '1', - "two", '2', - "three", '3', - "four", '4', - "five", '5', - "six", '6', - "seven", '7', - "eight", '8', - "nine", '9', - "colon", ':', - "semicolon", ';', - "less-than-sign", '<', - "equals-sign", '=', - "greater-than-sign", '>', - "question-mark", '?', - "commercial-at", '@', - "left-square-bracket", '[', - "backslash", '\\', - "reverse-solidus", '\\', - "right-square-bracket", ']', - "circumflex", '^', - "circumflex-accent", '^', - "underscore", '_', - "low-line", '_', - "grave-accent", '`', - "left-brace", '{', - "left-curly-bracket", '{', - "vertical-line", '|', - "right-brace", '}', - "right-curly-bracket", '}', - "tilde", '~', - "DEL", '\177', - NULL, 0, -}; diff --git a/src/regex/mkh b/src/regex/mkh deleted file mode 100644 index 252b246c7b..0000000000 --- a/src/regex/mkh +++ /dev/null @@ -1,76 +0,0 @@ -#! /bin/sh -# mkh - pull headers out of C source -PATH=/bin:/usr/bin ; export PATH - -# egrep pattern to pick out marked lines -egrep='^ =([ ]|$)' - -# Sed program to process marked lines into lines for the header file. -# The markers have already been removed. Two things are done here: removal -# of backslashed newlines, and some fudging of comments. The first is done -# because -o needs to have prototypes on one line to strip them down. -# Getting comments into the output is tricky; we turn C++-style // comments -# into /* */ comments, after altering any existing */'s to avoid trouble. -peel=' /\\$/N - /\\\n[ ]*/s///g - /\/\//s;\*/;* /;g - /\/\//s;//\(.*\);/*\1 */;' - -for a -do - case "$a" in - -o) # old (pre-function-prototype) compiler - # add code to comment out argument lists - peel="$peel - "'/^\([^#\/][^\/]*[a-zA-Z0-9_)]\)(\(.*\))/s;;\1(/*\2*/);' - shift - ;; - -b) # funny Berkeley __P macro - peel="$peel - "'/^\([^#\/][^\/]*[a-zA-Z0-9_)]\)(\(.*\))/s;;\1 __P((\2));' - shift - ;; - -s) # compiler doesn't like `static foo();' - # add code to get rid of the `static' - peel="$peel - "'/^static[ ][^\/]*[a-zA-Z0-9_)](.*)/s;static.;;' - shift - ;; - -p) # private declarations - egrep='^ ==([ ]|$)' - shift - ;; - -i) # wrap in #ifndef, argument is name - ifndef="$2" - shift ; shift - ;; - *) break - ;; - esac -done - -if test " $ifndef" != " " -then - echo "#ifndef $ifndef" - echo "#define $ifndef /* never again */" -fi -echo "/* ========= begin header generated by $0 ========= */" -echo '#ifdef __cplusplus' -echo 'extern "C" {' -echo '#endif' -for f -do - echo - echo "/* === $f === */" - egrep "$egrep" $f | sed 's/^ ==*[ ]//;s/^ ==*$//' | sed "$peel" - echo -done -echo '#ifdef __cplusplus' -echo '}' -echo '#endif' -echo "/* ========= end header generated by $0 ========= */" -if test " $ifndef" != " " -then - echo "#endif" -fi -exit 0 diff --git a/src/regex/regerror.c b/src/regex/regerror.c deleted file mode 100644 index aca13aade0..0000000000 --- a/src/regex/regerror.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * regerror - error-code expansion - * - * Copyright (c) 1998, 1999 Henry Spencer. All rights reserved. - * - * Development of this software was funded, in part, by Cray Research Inc., - * UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics - * Corporation, none of whom are responsible for the results. The author - * thanks all of them. - * - * Redistribution and use in source and binary forms -- with or without - * modification -- are permitted for any purpose, provided that - * redistributions in source form retain this entire copyright notice and - * indicate the origin and nature of any modifications. - * - * I'd appreciate being given credit for this package in the documentation - * of software which uses it, but that is not a requirement. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include "regguts.h" - -/* unknown-error explanation */ -static char unk[] = "*** unknown regex error code 0x%x ***"; - -/* struct to map among codes, code names, and explanations */ -static struct rerr { - int code; - char *name; - char *explain; -} rerrs[] = { - /* the actual table is built from regex.h */ -# include "regerrs.h" - { -1, "", "oops" }, /* explanation special-cased in code */ -}; - -/* - - regerror - the interface to error numbers - */ -/* ARGSUSED */ -size_t /* actual space needed (including NUL) */ -regerror(errcode, preg, errbuf, errbuf_size) -int errcode; /* error code, or REG_ATOI or REG_ITOA */ -CONST regex_t *preg; /* associated regex_t (unused at present) */ -char *errbuf; /* result buffer (unless errbuf_size==0) */ -size_t errbuf_size; /* available space in errbuf, can be 0 */ -{ - struct rerr *r; - char *msg; - char convbuf[sizeof(unk)+50]; /* 50 = plenty for int */ - size_t len; - int icode; - - switch (errcode) { - case REG_ATOI: /* convert name to number */ - for (r = rerrs; r->code >= 0; r++) - if (strcmp(r->name, errbuf) == 0) - break; - sprintf(convbuf, "%d", r->code); /* -1 for unknown */ - msg = convbuf; - break; - case REG_ITOA: /* convert number to name */ - icode = atoi(errbuf); /* not our problem if this fails */ - for (r = rerrs; r->code >= 0; r++) - if (r->code == icode) - break; - if (r->code >= 0) - msg = r->name; - else { /* unknown; tell him the number */ - sprintf(convbuf, "REG_%u", (unsigned)icode); - msg = convbuf; - } - break; - default: /* a real, normal error code */ - for (r = rerrs; r->code >= 0; r++) - if (r->code == errcode) - break; - if (r->code >= 0) - msg = r->explain; - else { /* unknown; say so */ - sprintf(convbuf, unk, errcode); - msg = convbuf; - } - break; - } - - len = strlen(msg) + 1; /* space needed, including NUL */ - if (errbuf_size > 0) { - if (errbuf_size > len) - strcpy(errbuf, msg); - else { /* truncate to fit */ - strncpy(errbuf, msg, errbuf_size-1); - errbuf[errbuf_size-1] = '\0'; - } - } - - return len; -} diff --git a/src/regex/regex.3 b/src/regex/regex.3 deleted file mode 100644 index bc747096d6..0000000000 --- a/src/regex/regex.3 +++ /dev/null @@ -1,509 +0,0 @@ -.TH REGEX 3 "25 Sept 1997" -.BY "Henry Spencer" -.de ZR -.\" one other place knows this name: the SEE ALSO section -.IR regex (7) \\$1 -.. -.SH NAME -regcomp, regexec, regerror, regfree \- regular-expression library -.SH SYNOPSIS -.ft B -.\".na -#include -.br -#include -.HP 10 -int regcomp(regex_t\ *preg, const\ char\ *pattern, int\ cflags); -.HP -int\ regexec(const\ regex_t\ *preg, const\ char\ *string, -size_t\ nmatch, regmatch_t\ pmatch[], int\ eflags); -.HP -size_t\ regerror(int\ errcode, const\ regex_t\ *preg, -char\ *errbuf, size_t\ errbuf_size); -.HP -void\ regfree(regex_t\ *preg); -.\".ad -.ft -.SH DESCRIPTION -These routines implement POSIX 1003.2 regular expressions (``RE''s); -see -.ZR . -.I Regcomp -compiles an RE written as a string into an internal form, -.I regexec -matches that internal form against a string and reports results, -.I regerror -transforms error codes from either into human-readable messages, -and -.I regfree -frees any dynamically-allocated storage used by the internal form -of an RE. -.PP -The header -.I -declares two structure types, -.I regex_t -and -.IR regmatch_t , -the former for compiled internal forms and the latter for match reporting. -It also declares the four functions, -a type -.IR regoff_t , -and a number of constants with names starting with ``REG_''. -.PP -.I Regcomp -compiles the regular expression contained in the -.I pattern -string, -subject to the flags in -.IR cflags , -and places the results in the -.I regex_t -structure pointed to by -.IR preg . -.I Cflags -is the bitwise OR of zero or more of the following flags: -.IP REG_EXTENDED \w'REG_EXTENDED'u+2n -Compile modern (``extended'') REs, -rather than the obsolete (``basic'') REs that -are the default. -.IP REG_BASIC -This is a synonym for 0, -provided as a counterpart to REG_EXTENDED to improve readability. -This is an extension, -compatible with but not specified by POSIX 1003.2, -and should be used with -caution in software intended to be portable to other systems. -.IP REG_NOSPEC -Compile with recognition of all special characters turned off. -All characters are thus considered ordinary, -so the ``RE'' is a literal string. -This is an extension, -compatible with but not specified by POSIX 1003.2, -and should be used with -caution in software intended to be portable to other systems. -REG_EXTENDED and REG_NOSPEC may not be used -in the same call to -.IR regcomp . -.IP REG_ICASE -Compile for matching that ignores upper/lower case distinctions. -See -.ZR . -.IP REG_NOSUB -Compile for matching that need only report success or failure, -not what was matched. -.IP REG_NEWLINE -Compile for newline-sensitive matching. -By default, newline is a completely ordinary character with no special -meaning in either REs or strings. -With this flag, -`[^' bracket expressions and `.' never match newline, -a `^' anchor matches the null string after any newline in the string -in addition to its normal function, -and the `$' anchor matches the null string before any newline in the -string in addition to its normal function. -.IP REG_PEND -The regular expression ends, -not at the first NUL, -but just before the character pointed to by the -.I re_endp -member of the structure pointed to by -.IR preg . -The -.I re_endp -member is of type -.IR const\ char\ * . -This flag permits inclusion of NULs in the RE; -they are considered ordinary characters. -This is an extension, -compatible with but not specified by POSIX 1003.2, -and should be used with -caution in software intended to be portable to other systems. -.PP -When successful, -.I regcomp -returns 0 and fills in the structure pointed to by -.IR preg . -One member of that structure -(other than -.IR re_endp ) -is publicized: -.IR re_nsub , -of type -.IR size_t , -contains the number of parenthesized subexpressions within the RE -(except that the value of this member is undefined if the -REG_NOSUB flag was used). -If -.I regcomp -fails, it returns a non-zero error code; -see DIAGNOSTICS. -.PP -.I Regexec -matches the compiled RE pointed to by -.I preg -against the -.IR string , -subject to the flags in -.IR eflags , -and reports results using -.IR nmatch , -.IR pmatch , -and the returned value. -The RE must have been compiled by a previous invocation of -.IR regcomp . -The compiled form is not altered during execution of -.IR regexec , -so a single compiled RE can be used simultaneously by multiple threads. -.PP -By default, -the NUL-terminated string pointed to by -.I string -is considered to be the text of an entire line, -with the NUL indicating the end of the line. -(That is, -any other end-of-line marker is considered to have been removed -and replaced by the NUL.) -The -.I eflags -argument is the bitwise OR of zero or more of the following flags: -.IP REG_NOTBOL \w'REG_STARTEND'u+2n -The first character of -the string -is not the beginning of a line, so the `^' anchor should not match before it. -This does not affect the behavior of newlines under REG_NEWLINE. -.IP REG_NOTEOL -The NUL terminating -the string -does not end a line, so the `$' anchor should not match before it. -This does not affect the behavior of newlines under REG_NEWLINE. -.IP REG_STARTEND -The string is considered to start at -\fIstring\fR\ + \fIpmatch\fR[0].\fIrm_so\fR -and to have a terminating NUL located at -\fIstring\fR\ + \fIpmatch\fR[0].\fIrm_eo\fR -(there need not actually be a NUL at that location), -regardless of the value of -.IR nmatch . -See below for the definition of -.IR pmatch -and -.IR nmatch . -This is an extension, -compatible with but not specified by POSIX 1003.2, -and should be used with -caution in software intended to be portable to other systems. -Note that a non-zero \fIrm_so\fR does not imply REG_NOTBOL; -REG_STARTEND affects only the location of the string, -not how it is matched. -.PP -See -.ZR -for a discussion of what is matched in situations where an RE or a -portion thereof could match any of several substrings of -.IR string . -.PP -Normally, -.I regexec -returns 0 for success and the non-zero code REG_NOMATCH for failure. -Other non-zero error codes may be returned in exceptional situations; -see DIAGNOSTICS. -.PP -If REG_NOSUB was specified in the compilation of the RE, -or if -.I nmatch -is 0, -.I regexec -ignores the -.I pmatch -argument (but see below for the case where REG_STARTEND is specified). -Otherwise, -.I pmatch -points to an array of -.I nmatch -structures of type -.IR regmatch_t . -Such a structure has at least the members -.I rm_so -and -.IR rm_eo , -both of type -.I regoff_t -(a signed arithmetic type at least as large as an -.I off_t -and a -.IR ssize_t ), -containing respectively the offset of the first character of a substring -and the offset of the first character after the end of the substring. -Offsets are measured from the beginning of the -.I string -argument given to -.IR regexec . -An empty substring is denoted by equal offsets, -both indicating the character following the empty substring. -.PP -The 0th member of the -.I pmatch -array is filled in to indicate what substring of -.I string -was matched by the entire RE. -Remaining members report what substring was matched by parenthesized -subexpressions within the RE; -member -.I i -reports subexpression -.IR i , -with subexpressions counted (starting at 1) by the order of their opening -parentheses in the RE, left to right. -Unused entries in the array\(emcorresponding either to subexpressions that -did not participate in the match at all, or to subexpressions that do not -exist in the RE (that is, \fIi\fR\ > \fIpreg\fR\->\fIre_nsub\fR)\(emhave both -.I rm_so -and -.I rm_eo -set to \-1. -If a subexpression participated in the match several times, -the reported substring is the last one it matched. -(Note, as an example in particular, that when the RE `(b*)+' matches `bbb', -the parenthesized subexpression matches the three `b's and then -an infinite number of empty strings following the last `b', -so the reported substring is one of the empties.) -.PP -If REG_STARTEND is specified, -.I pmatch -must point to at least one -.I regmatch_t -(even if -.I nmatch -is 0 or REG_NOSUB was specified), -to hold the input offsets for REG_STARTEND. -Use for output is still entirely controlled by -.IR nmatch ; -if -.I nmatch -is 0 or REG_NOSUB was specified, -the value of -.IR pmatch [0] -will not be changed by a successful -.IR regexec . -.PP -.I Regerror -maps a non-zero -.I errcode -from either -.I regcomp -or -.I regexec -to a human-readable, printable message. -If -.I preg -is non-NULL, -the error code should have arisen from use of -the -.I regex_t -pointed to by -.IR preg , -and if the error code came from -.IR regcomp , -it should have been the result from the most recent -.I regcomp -using that -.IR regex_t . -.RI ( Regerror -may be able to supply a more detailed message using information -from the -.IR regex_t .) -.I Regerror -places the NUL-terminated message into the buffer pointed to by -.IR errbuf , -limiting the length (including the NUL) to at most -.I errbuf_size -bytes. -If the whole message won't fit, -as much of it as will fit before the terminating NUL is supplied. -In any case, -the returned value is the size of buffer needed to hold the whole -message (including terminating NUL). -If -.I errbuf_size -is 0, -.I errbuf -is ignored but the return value is still correct. -.PP -If the -.I errcode -given to -.I regerror -is first ORed with REG_ITOA, -the ``message'' that results is the printable name of the error code, -e.g. ``REG_NOMATCH'', -rather than an explanation thereof. -If -.I errcode -is REG_ATOI, -then -.I preg -shall be non-NULL and the -.I re_endp -member of the structure it points to -must point to the printable name of an error code; -in this case, the result in -.I errbuf -is the decimal digits of -the numeric value of the error code -(0 if the name is not recognized). -REG_ITOA and REG_ATOI are intended primarily as debugging facilities; -they are extensions, -compatible with but not specified by POSIX 1003.2, -and should be used with -caution in software intended to be portable to other systems. -Be warned also that they are considered experimental and changes are possible. -.PP -.I Regfree -frees any dynamically-allocated storage associated with the compiled RE -pointed to by -.IR preg . -The remaining -.I regex_t -is no longer a valid compiled RE -and the effect of supplying it to -.I regexec -or -.I regerror -is undefined. -.PP -None of these functions references global variables except for tables -of constants; -all are safe for use from multiple threads if the arguments are safe. -.SH IMPLEMENTATION CHOICES -There are a number of decisions that 1003.2 leaves up to the implementor, -either by explicitly saying ``undefined'' or by virtue of them being -forbidden by the RE grammar. -This implementation treats them as follows. -.PP -See -.ZR -for a discussion of the definition of case-independent matching. -.PP -There is no particular limit on the length of REs, -except insofar as memory is limited. -Memory usage is approximately linear in RE size, and largely insensitive -to RE complexity, except for bounded repetitions. -See BUGS for one short RE using them -that will run almost any system out of memory. -.PP -A backslashed character other than one specifically given a magic meaning -by 1003.2 (such magic meanings occur only in obsolete [``basic''] REs) -is taken as an ordinary character. -.PP -Any unmatched [ is a REG_EBRACK error. -.PP -Equivalence classes cannot begin or end bracket-expression ranges. -The endpoint of one range cannot begin another. -.PP -RE_DUP_MAX, the limit on repetition counts in bounded repetitions, is 255. -.PP -A repetition operator (?, *, +, or bounds) cannot follow another -repetition operator. -A repetition operator cannot begin an expression or subexpression -or follow `^' or `|'. -.PP -`|' cannot appear first or last in a (sub)expression or after another `|', -i.e. an operand of `|' cannot be an empty subexpression. -An empty parenthesized subexpression, `()', is legal and matches an -empty (sub)string. -An empty string is not a legal RE. -.PP -A `{' followed by a digit is considered the beginning of bounds for a -bounded repetition, which must then follow the syntax for bounds. -A `{' \fInot\fR followed by a digit is considered an ordinary character. -.PP -`^' and `$' beginning and ending subexpressions in obsolete (``basic'') -REs are anchors, not ordinary characters. -.SH SEE ALSO -grep(1), regex(7) -.PP -POSIX 1003.2, sections 2.8 (Regular Expression Notation) -and -B.5 (C Binding for Regular Expression Matching). -.SH DIAGNOSTICS -Non-zero error codes from -.I regcomp -and -.I regexec -include the following: -.PP -.nf -.ta \w'REG_ECOLLATE'u+3n -REG_NOMATCH regexec() failed to match -REG_BADPAT invalid regular expression -REG_ECOLLATE invalid collating element -REG_ECTYPE invalid character class -REG_EESCAPE \e applied to unescapable character -REG_ESUBREG invalid backreference number -REG_EBRACK brackets [ ] not balanced -REG_EPAREN parentheses ( ) not balanced -REG_EBRACE braces { } not balanced -REG_BADBR invalid repetition count(s) in { } -REG_ERANGE invalid character range in [ ] -REG_ESPACE ran out of memory -REG_BADRPT ?, *, or + operand invalid -REG_EMPTY empty (sub)expression -REG_ASSERT ``can't happen''\(emyou found a bug -REG_INVARG invalid argument, e.g. negative-length string -.fi -.SH HISTORY -Written by Henry Spencer, -henry@zoo.toronto.edu. -.SH BUGS -This is an alpha release with known defects. -Please report problems. -.PP -There is one known functionality bug. -The implementation of internationalization is incomplete: -the locale is always assumed to be the default one of 1003.2, -and only the collating elements etc. of that locale are available. -.PP -The back-reference code is subtle and doubts linger about its correctness -in complex cases. -.PP -.I Regexec -performance is poor. -This will improve with later releases. -.I Nmatch -exceeding 0 is expensive; -.I nmatch -exceeding 1 is worse. -.I Regexec -is largely insensitive to RE complexity \fIexcept\fR that back -references are massively expensive. -RE length does matter; in particular, there is a strong speed bonus -for keeping RE length under about 30 characters, -with most special characters counting roughly double. -.PP -.I Regcomp -implements bounded repetitions by macro expansion, -which is costly in time and space if counts are large -or bounded repetitions are nested. -An RE like, say, -`((((a{1,100}){1,100}){1,100}){1,100}){1,100}' -will (eventually) run almost any existing machine out of swap space. -.PP -There are suspected problems with response to obscure error conditions. -Notably, -certain kinds of internal overflow, -produced only by truly enormous REs or by multiply nested bounded repetitions, -are probably not handled well. -.PP -Due to a mistake in 1003.2, things like `a)b' are legal REs because `)' is -a special character only in the presence of a previous unmatched `('. -This can't be fixed until the spec is fixed. -.PP -The standard's definition of back references is vague. -For example, does -`a\e(\e(b\e)*\e2\e)*d' match `abbbd'? -Until the standard is clarified, -behavior in such cases should not be relied on. -.PP -The implementation of word-boundary matching is a bit of a kludge, -and bugs may lurk in combinations of word-boundary matching and anchoring. diff --git a/src/regex/regex.7 b/src/regex/regex.7 deleted file mode 100644 index 0fa180269e..0000000000 --- a/src/regex/regex.7 +++ /dev/null @@ -1,235 +0,0 @@ -.TH REGEX 7 "25 Oct 1995" -.BY "Henry Spencer" -.SH NAME -regex \- POSIX 1003.2 regular expressions -.SH DESCRIPTION -Regular expressions (``RE''s), -as defined in POSIX 1003.2, come in two forms: -modern REs (roughly those of -.IR egrep ; -1003.2 calls these ``extended'' REs) -and obsolete REs (roughly those of -.IR ed ; -1003.2 ``basic'' REs). -Obsolete REs mostly exist for backward compatibility in some old programs; -they will be discussed at the end. -1003.2 leaves some aspects of RE syntax and semantics open; -`\(dg' marks decisions on these aspects that -may not be fully portable to other 1003.2 implementations. -.PP -A (modern) RE is one\(dg or more non-empty\(dg \fIbranches\fR, -separated by `|'. -It matches anything that matches one of the branches. -.PP -A branch is one\(dg or more \fIpieces\fR, concatenated. -It matches a match for the first, followed by a match for the second, etc. -.PP -A piece is an \fIatom\fR possibly followed -by a single\(dg `*', `+', `?', or \fIbound\fR. -An atom followed by `*' matches a sequence of 0 or more matches of the atom. -An atom followed by `+' matches a sequence of 1 or more matches of the atom. -An atom followed by `?' matches a sequence of 0 or 1 matches of the atom. -.PP -A \fIbound\fR is `{' followed by an unsigned decimal integer, -possibly followed by `,' -possibly followed by another unsigned decimal integer, -always followed by `}'. -The integers must lie between 0 and RE_DUP_MAX (255\(dg) inclusive, -and if there are two of them, the first may not exceed the second. -An atom followed by a bound containing one integer \fIi\fR -and no comma matches -a sequence of exactly \fIi\fR matches of the atom. -An atom followed by a bound -containing one integer \fIi\fR and a comma matches -a sequence of \fIi\fR or more matches of the atom. -An atom followed by a bound -containing two integers \fIi\fR and \fIj\fR matches -a sequence of \fIi\fR through \fIj\fR (inclusive) matches of the atom. -.PP -An atom is a regular expression enclosed in `()' (matching a match for the -regular expression), -an empty set of `()' (matching the null string)\(dg, -a \fIbracket expression\fR (see below), `.' -(matching any single character), `^' (matching the null string at the -beginning of a line), `$' (matching the null string at the -end of a line), a `\e' followed by one of the characters -`^.[$()|*+?{\e' -(matching that character taken as an ordinary character), -a `\e' followed by any other character\(dg -(matching that character taken as an ordinary character, -as if the `\e' had not been present\(dg), -or a single character with no other significance (matching that character). -A `{' followed by a character other than a digit is an ordinary -character, not the beginning of a bound\(dg. -It is illegal to end an RE with `\e'. -.PP -A \fIbracket expression\fR is a list of characters enclosed in `[]'. -It normally matches any single character from the list (but see below). -If the list begins with `^', -it matches any single character -(but see below) \fInot\fR from the rest of the list. -If two characters in the list are separated by `\-', this is shorthand -for the full \fIrange\fR of characters between those two (inclusive) in the -collating sequence, -e.g. `[0\-9]' in ASCII matches any decimal digit. -It is illegal\(dg for two ranges to share an -endpoint, e.g. `a\-c\-e'. -Ranges are very collating-sequence-dependent, -and portable programs should avoid relying on them. -.PP -To include a literal `]' in the list, make it the first character -(following a possible `^'). -To include a literal `\-', make it the first or last character, -or the second endpoint of a range. -To use a literal `\-' as the first endpoint of a range, -enclose it in `[.' and `.]' to make it a collating element (see below). -With the exception of these and some combinations using `[' (see next -paragraphs), all other special characters, including `\e', lose their -special significance within a bracket expression. -.PP -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 `[.' and `.]' stands for the -sequence of characters of that collating element. -The sequence is a single element of the bracket expression's list. -A bracket expression containing a multi-character collating element -can thus match more than one character, -e.g. if the collating sequence includes a `ch' collating element, -then the RE `[[.ch.]]*c' matches the first five characters -of `chchcc'. -.PP -Within a bracket expression, a collating element enclosed in `[=' and -`=]' 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 `[.' and `.]'.) -For example, if o and \o'o^' are the members of an equivalence class, -then `[[=o=]]', `[[=\o'o^'=]]', and `[o\o'o^']' are all synonymous. -An equivalence class may not\(dg be an endpoint -of a range. -.PP -Within a bracket expression, the name of a \fIcharacter class\fR enclosed -in `[:' and `:]' stands for the list of all characters belonging to that -class. -Standard character class names are: -.PP -.RS -.nf -.ta 3c 6c 9c -alnum digit punct -alpha graph space -blank lower upper -cntrl print xdigit -.fi -.RE -.PP -These stand for the character classes defined in -.IR ctype (3). -A locale may provide others. -A character class may not be used as an endpoint of a range. -.PP -There are two special cases\(dg of bracket expressions: -the bracket expressions `[[:<:]]' and `[[:>:]]' match the null string at -the beginning and end of a word respectively. -A word is defined as a sequence of -word characters -which is neither preceded nor followed by -word characters. -A word character is an -.I alnum -character (as defined by -.IR ctype (3)) -or an underscore. -This is an extension, -compatible with but not specified by POSIX 1003.2, -and should be used with -caution in software intended to be portable to other systems. -.PP -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, -it matches the longest. -Subexpressions also match the longest possible substrings, subject to -the constraint that the whole match be as long as possible, -with subexpressions starting earlier in the RE taking priority over -ones starting later. -Note that higher-level subexpressions thus take priority over -their lower-level component subexpressions. -.PP -Match lengths are measured in characters, not collating elements. -A null string is considered longer than no match at all. -For example, -`bb*' matches the three middle characters of `abbbc', -`(wee|week)(knights|nights)' matches all ten characters of `weeknights', -when `(.*).*' is matched against `abc' the parenthesized subexpression -matches all three characters, and -when `(a*)*' is matched against `bc' both the whole RE and the parenthesized -subexpression match the null string. -.PP -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, -e.g. `x' becomes `[xX]'. -When it appears inside a bracket expression, all case counterparts -of it are added to the bracket expression, so that (e.g.) `[x]' -becomes `[xX]' and `[^x]' becomes `[^xX]'. -.PP -No particular limit is imposed on the length of REs\(dg. -Programs intended to be portable should not employ REs longer -than 256 bytes, -as an implementation can refuse to accept such REs and remain -POSIX-compliant. -.PP -Obsolete (``basic'') regular expressions differ in several respects. -`|', `+', and `?' are ordinary characters and there is no equivalent -for their functionality. -The delimiters for bounds are `\e{' and `\e}', -with `{' and `}' by themselves ordinary characters. -The parentheses for nested subexpressions are `\e(' and `\e)', -with `(' and `)' by themselves ordinary characters. -`^' is an ordinary character except at the beginning of the -RE or\(dg the beginning of a parenthesized subexpression, -`$' is an ordinary character except at the end of the -RE or\(dg the end of a parenthesized subexpression, -and `*' is an ordinary character if it appears at the beginning of the -RE or the beginning of a parenthesized subexpression -(after a possible leading `^'). -Finally, there is one new type of atom, a \fIback reference\fR: -`\e' followed by a non-zero decimal digit \fId\fR -matches the same sequence of characters -matched by the \fId\fRth parenthesized subexpression -(numbering subexpressions by the positions of their opening parentheses, -left to right), -so that (e.g.) `\e([bc]\e)\e1' matches `bb' or `cc' but not `bc'. -.SH SEE ALSO -regex(3) -.PP -POSIX 1003.2, section 2.8 (Regular Expression Notation). -.SH HISTORY -Written by Henry Spencer, based on the 1003.2 spec. -.SH BUGS -Having two kinds of REs is a botch. -.PP -The current 1003.2 spec says that `)' is an ordinary character in -the absence of an unmatched `('; -this was an unintentional result of a wording error, -and change is likely. -Avoid relying on it. -.PP -Back references are a dreadful botch, -posing major problems for efficient implementations. -They are also somewhat vaguely defined -(does -`a\e(\e(b\e)*\e2\e)*d' match `abbbd'?). -Avoid using them. -.PP -1003.2's specification of case-independent matching is vague. -The ``one case implies all cases'' definition given above -is current consensus among implementors as to the right interpretation. -.PP -The syntax for word boundaries is incredibly ugly. diff --git a/src/regex/regfree.c b/src/regex/regfree.c deleted file mode 100644 index 17a73896f5..0000000000 --- a/src/regex/regfree.c +++ /dev/null @@ -1,53 +0,0 @@ -/* - * regfree - free an RE - * - * Copyright (c) 1998, 1999 Henry Spencer. All rights reserved. - * - * Development of this software was funded, in part, by Cray Research Inc., - * UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics - * Corporation, none of whom are responsible for the results. The author - * thanks all of them. - * - * Redistribution and use in source and binary forms -- with or without - * modification -- are permitted for any purpose, provided that - * redistributions in source form retain this entire copyright notice and - * indicate the origin and nature of any modifications. - * - * I'd appreciate being given credit for this package in the documentation - * of software which uses it, but that is not a requirement. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * - * - * You might think that this could be incorporated into regcomp.c, and - * that would be a reasonable idea... except that this is a generic - * function (with a generic name), applicable to all compiled REs - * regardless of the size of their characters, whereas the stuff in - * regcomp.c gets compiled once per character size. - */ - -#include "regguts.h" - -/* - - regfree - free an RE (generic function, punts to RE-specific function) - * - * Ignoring invocation with NULL is a convenience. - */ -VOID -regfree(re) -regex_t *re; -{ - if (re == NULL) - return; - (*((struct fns *)re->re_fns)->free)(re); -} diff --git a/src/regex/regfronts.c b/src/regex/regfronts.c deleted file mode 100644 index 82f48e2abc..0000000000 --- a/src/regex/regfronts.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * regcomp and regexec - front ends to re_ routines - * - * Mostly for implementation of backward-compatibility kludges. Note - * that these routines exist ONLY in char versions. - * - * Copyright (c) 1998, 1999 Henry Spencer. All rights reserved. - * - * Development of this software was funded, in part, by Cray Research Inc., - * UUNET Communications Services Inc., Sun Microsystems Inc., and Scriptics - * Corporation, none of whom are responsible for the results. The author - * thanks all of them. - * - * Redistribution and use in source and binary forms -- with or without - * modification -- are permitted for any purpose, provided that - * redistributions in source form retain this entire copyright notice and - * indicate the origin and nature of any modifications. - * - * I'd appreciate being given credit for this package in the documentation - * of software which uses it, but that is not a requirement. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * HENRY SPENCER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -#include "regguts.h" - -/* - - regcomp - compile regular expression - */ -int -regcomp(re, str, flags) -regex_t *re; -CONST char *str; -int flags; -{ - size_t len; - int f = flags; - - if (f®_PEND) { - len = re->re_endp - str; - f &= ~REG_PEND; - } else - len = strlen(str); - - return re_comp(re, str, len, f); -} - -/* - - regexec - execute regular expression - */ -int -regexec(re, str, nmatch, pmatch, flags) -regex_t *re; -CONST char *str; -size_t nmatch; -regmatch_t pmatch[]; -int flags; -{ - CONST char *start; - size_t len; - int f = flags; - - if (f®_STARTEND) { - start = str + pmatch[0].rm_so; - len = pmatch[0].rm_eo - pmatch[0].rm_so; - f &= ~REG_STARTEND; - } else { - start = str; - len = strlen(str); - } - - return re_exec(re, start, len, nmatch, pmatch, f); -} diff --git a/src/regex/tests b/src/regex/tests deleted file mode 100644 index e4d928dad6..0000000000 --- a/src/regex/tests +++ /dev/null @@ -1,477 +0,0 @@ -# regular expression test set -# Lines are at least three fields, separated by one or more tabs. "" stands -# for an empty field. First field is an RE. Second field is flags. If -# C flag given, regcomp() is expected to fail, and the third field is the -# error name (minus the leading REG_). -# -# Otherwise it is expected to succeed, and the third field is the string to -# try matching it against. If there is no fourth field, the match is -# expected to fail. If there is a fourth field, it is the substring that -# the RE is expected to match. If there is a fifth field, it is a comma- -# separated list of what the subexpressions should match, with - indicating -# no match for that one. In both the fourth and fifth fields, a (sub)field -# starting with @ indicates that the (sub)expression is expected to match -# a null string followed by the stuff after the @; this provides a way to -# test where null strings match. The character `N' in REs and strings -# is newline, `S' is space, `T' is tab, `Z' is NUL. -# -# The full list of flags: -# - placeholder, does nothing -# b RE is a BRE, not an ERE -# & try it as both an ERE and a BRE -# C regcomp() error expected, third field is error name -# i REG_ICASE -# m ("mundane") REG_NOSPEC -# s REG_NOSUB (not really testable) -# n REG_NEWLINE -# ^ REG_NOTBOL -# $ REG_NOTEOL -# # REG_STARTEND (see below) -# p REG_PEND -# -# For REG_STARTEND, the start/end offsets are those of the substring -# enclosed in (). - -# basics -a & a a -abc & abc abc -abc|de - abc abc -a|b|c - abc a - -# parentheses and perversions thereof -a(b)c - abc abc -a\(b\)c b abc abc -a( C EPAREN -a( b a( a( -a\( - a( a( -a\( bC EPAREN -a\(b bC EPAREN -a(b C EPAREN -a(b b a(b a(b -# gag me with a right parenthesis -- 1003.2 goofed here (my fault, partly) -a) - a) a) -) - ) ) -# end gagging (in a just world, those *should* give EPAREN) -a) b a) a) -a\) bC EPAREN -\) bC EPAREN -a()b - ab ab -a\(\)b b ab ab - -# anchoring and REG_NEWLINE -^abc$ & abc abc -a^b - a^b -a^b b a^b a^b -a$b - a$b -a$b b a$b a$b -^ & abc @abc -$ & abc @ -^$ & "" @ -$^ - "" @ -\($\)\(^\) b "" @ -# stop retching, those are legitimate (although disgusting) -^^ - "" @ -$$ - "" @ -b$ & abNc -b$ &n abNc b -^b$ & aNbNc -^b$ &n aNbNc b -^$ &n aNNb @Nb -^$ n abc -^$ n abcN @ -$^ n aNNb @Nb -\($\)\(^\) bn aNNb @Nb -^^ n^ aNNb @Nb -$$ n aNNb @NN -^a ^ a -a$ $ a -^a ^n aNb -^b ^n aNb b -a$ $n bNa -b$ $n bNa b -a*(^b$)c* - b b -a*\(^b$\)c* b b b - -# certain syntax errors and non-errors -| C EMPTY -| b | | -* C BADRPT -* b * * -+ C BADRPT -? C BADRPT -"" &C EMPTY -() - abc @abc -\(\) b abc @abc -a||b C EMPTY -|ab C EMPTY -ab| C EMPTY -(|a)b C EMPTY -(a|)b C EMPTY -(*a) C BADRPT -(+a) C BADRPT -(?a) C BADRPT -({1}a) C BADRPT -\(\{1\}a\) bC BADRPT -(a|*b) C BADRPT -(a|+b) C BADRPT -(a|?b) C BADRPT -(a|{1}b) C BADRPT -^* C BADRPT -^* b * * -^+ C BADRPT -^? C BADRPT -^{1} C BADRPT -^\{1\} bC BADRPT - -# metacharacters, backslashes -a.c & abc abc -a[bc]d & abd abd -a\*c & a*c a*c -a\\b & a\b a\b -a\\\*b & a\*b a\*b -a\bc & abc abc -a\ &C EESCAPE -a\\bc & a\bc a\bc -\{ bC BADRPT -a\[b & a[b a[b -a[b &C EBRACK -# trailing $ is a peculiar special case for the BRE code -a$ & a a -a$ & a$ -a\$ & a -a\$ & a$ a$ -a\\$ & a -a\\$ & a$ -a\\$ & a\$ -a\\$ & a\ a\ - -# back references, ugh -a\(b\)\2c bC ESUBREG -a\(b\1\)c bC ESUBREG -a\(b*\)c\1d b abbcbbd abbcbbd bb -a\(b*\)c\1d b abbcbd -a\(b*\)c\1d b abbcbbbd -^\(.\)\1 b abc -a\([bc]\)\1d b abcdabbd abbd b -a\(\([bc]\)\2\)*d b abbccd abbccd -a\(\([bc]\)\2\)*d b abbcbd -# actually, this next one probably ought to fail, but the spec is unclear -a\(\(b\)*\2\)*d b abbbd abbbd -# here is a case that no NFA implementation does right -\(ab*\)[ab]*\1 b ababaaa ababaaa a -# check out normal matching in the presence of back refs -\(a\)\1bcd b aabcd aabcd -\(a\)\1bc*d b aabcd aabcd -\(a\)\1bc*d b aabd aabd -\(a\)\1bc*d b aabcccd aabcccd -\(a\)\1bc*[ce]d b aabcccd aabcccd -^\(a\)\1b\(c\)*cd$ b aabcccd aabcccd - -# ordinary repetitions -ab*c & abc abc -ab+c - abc abc -ab?c - abc abc -a\(*\)b b a*b a*b -a\(**\)b b ab ab -a\(***\)b bC BADRPT -*a b *a *a -**a b a a -***a bC BADRPT - -# the dreaded bounded repetitions -{ & { { -{abc & {abc {abc -{1 C BADRPT -{1} C BADRPT -a{b & a{b a{b -a{1}b - ab ab -a\{1\}b b ab ab -a{1,}b - ab ab -a\{1,\}b b ab ab -a{1,2}b - aab aab -a\{1,2\}b b aab aab -a{1 C EBRACE -a\{1 bC EBRACE -a{1a C EBRACE -a\{1a bC EBRACE -a{1a} C BADBR -a\{1a\} bC BADBR -a{,2} - a{,2} a{,2} -a\{,2\} bC BADBR -a{,} - a{,} a{,} -a\{,\} bC BADBR -a{1,x} C BADBR -a\{1,x\} bC BADBR -a{1,x C EBRACE -a\{1,x bC EBRACE -a{300} C BADBR -a\{300\} bC BADBR -a{1,0} C BADBR -a\{1,0\} bC BADBR -ab{0,0}c - abcac ac -ab\{0,0\}c b abcac ac -ab{0,1}c - abcac abc -ab\{0,1\}c b abcac abc -ab{0,3}c - abbcac abbc -ab\{0,3\}c b abbcac abbc -ab{1,1}c - acabc abc -ab\{1,1\}c b acabc abc -ab{1,3}c - acabc abc -ab\{1,3\}c b acabc abc -ab{2,2}c - abcabbc abbc -ab\{2,2\}c b abcabbc abbc -ab{2,4}c - abcabbc abbc -ab\{2,4\}c b abcabbc abbc -((a{1,10}){1,10}){1,10} - a a a,a - -# multiple repetitions -a** &C BADRPT -a++ C BADRPT -a?? C BADRPT -a*+ C BADRPT -a*? C BADRPT -a+* C BADRPT -a+? C BADRPT -a?* C BADRPT -a?+ C BADRPT -a{1}{1} C BADRPT -a*{1} C BADRPT -a+{1} C BADRPT -a?{1} C BADRPT -a{1}* C BADRPT -a{1}+ C BADRPT -a{1}? C BADRPT -a*{b} - a{b} a{b} -a\{1\}\{1\} bC BADRPT -a*\{1\} bC BADRPT -a\{1\}* bC BADRPT - -# brackets, and numerous perversions thereof -a[b]c & abc abc -a[ab]c & abc abc -a[^ab]c & adc adc -a[]b]c & a]c a]c -a[[b]c & a[c a[c -a[-b]c & a-c a-c -a[^]b]c & adc adc -a[^-b]c & adc adc -a[b-]c & a-c a-c -a[b &C EBRACK -a[] &C EBRACK -a[1-3]c & a2c a2c -a[3-1]c &C ERANGE -a[1-3-5]c &C ERANGE -a[[.-.]--]c & a-c a-c -a[1- &C ERANGE -a[[. &C EBRACK -a[[.x &C EBRACK -a[[.x. &C EBRACK -a[[.x.] &C EBRACK -a[[.x.]] & ax ax -a[[.x,.]] &C ECOLLATE -a[[.one.]]b & a1b a1b -a[[.notdef.]]b &C ECOLLATE -a[[.].]]b & a]b a]b -a[[:alpha:]]c & abc abc -a[[:notdef:]]c &C ECTYPE -a[[: &C EBRACK -a[[:alpha &C EBRACK -a[[:alpha:] &C EBRACK -a[[:alpha,:] &C ECTYPE -a[[:]:]]b &C ECTYPE -a[[:-:]]b &C ECTYPE -a[[:alph:]] &C ECTYPE -a[[:alphabet:]] &C ECTYPE -[[:alnum:]]+ - -%@a0X- a0X -[[:alpha:]]+ - -%@aX0- aX -[[:blank:]]+ - aSSTb SST -[[:cntrl:]]+ - aNTb NT -[[:digit:]]+ - a019b 019 -[[:graph:]]+ - Sa%bS a%b -[[:lower:]]+ - AabC ab -[[:print:]]+ - NaSbN aSb -[[:punct:]]+ - S%-&T %-& -[[:space:]]+ - aSNTb SNT -[[:upper:]]+ - aBCd BC -[[:xdigit:]]+ - p0f3Cq 0f3C -a[[=b=]]c & abc abc -a[[= &C EBRACK -a[[=b &C EBRACK -a[[=b= &C EBRACK -a[[=b=] &C EBRACK -a[[=b,=]] &C ECOLLATE -a[[=one=]]b & a1b a1b - -# complexities -a(((b)))c - abc abc -a(b|(c))d - abd abd -a(b*|c)d - abbd abbd -# just gotta have one DFA-buster, of course -a[ab]{20} - aaaaabaaaabaaaabaaaab aaaaabaaaabaaaabaaaab -# and an inline expansion in case somebody gets tricky -a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab] - aaaaabaaaabaaaabaaaab aaaaabaaaabaaaabaaaab -# and in case somebody just slips in an NFA... -a[ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab][ab](wee|week)(knights|night) - aaaaabaaaabaaaabaaaabweeknights aaaaabaaaabaaaabaaaabweeknights -# fish for anomalies as the number of states passes 32 -12345678901234567890123456789 - a12345678901234567890123456789b 12345678901234567890123456789 -123456789012345678901234567890 - a123456789012345678901234567890b 123456789012345678901234567890 -1234567890123456789012345678901 - a1234567890123456789012345678901b 1234567890123456789012345678901 -12345678901234567890123456789012 - a12345678901234567890123456789012b 12345678901234567890123456789012 -123456789012345678901234567890123 - a123456789012345678901234567890123b 123456789012345678901234567890123 -# and one really big one, beyond any plausible word width -1234567890123456789012345678901234567890123456789012345678901234567890 - a1234567890123456789012345678901234567890123456789012345678901234567890b 1234567890123456789012345678901234567890123456789012345678901234567890 -# fish for problems as brackets go past 8 -[ab][cd][ef][gh][ij][kl][mn] - xacegikmoq acegikm -[ab][cd][ef][gh][ij][kl][mn][op] - xacegikmoq acegikmo -[ab][cd][ef][gh][ij][kl][mn][op][qr] - xacegikmoqy acegikmoq -[ab][cd][ef][gh][ij][kl][mn][op][q] - xacegikmoqy acegikmoq - -# subtleties of matching -abc & xabcy abc -a\(b\)?c\1d b acd -aBc i Abc Abc -a[Bc]*d i abBCcd abBCcd -0[[:upper:]]1 &i 0a1 0a1 -0[[:lower:]]1 &i 0A1 0A1 -a[^b]c &i abc -a[^b]c &i aBc -a[^b]c &i adc adc -[a]b[c] - abc abc -[a]b[a] - aba aba -[abc]b[abc] - abc abc -[abc]b[abd] - abd abd -a(b?c)+d - accd accd -(wee|week)(knights|night) - weeknights weeknights -(we|wee|week|frob)(knights|night|day) - weeknights weeknights -a[bc]d - xyzaaabcaababdacd abd -a[ab]c - aaabc abc -abc s abc abc -a* & b @b - -# Let's have some fun -- try to match a C comment. -# first the obvious, which looks okay at first glance... -/\*.*\*/ - /*x*/ /*x*/ -# but... -/\*.*\*/ - /*x*/y/*z*/ /*x*/y/*z*/ -# okay, we must not match */ inside; try to do that... -/\*([^*]|\*[^/])*\*/ - /*x*/ /*x*/ -/\*([^*]|\*[^/])*\*/ - /*x*/y/*z*/ /*x*/ -# but... -/\*([^*]|\*[^/])*\*/ - /*x**/y/*z*/ /*x**/y/*z*/ -# and a still fancier version, which does it right (I think)... -/\*([^*]|\*+[^*/])*\*+/ - /*x*/ /*x*/ -/\*([^*]|\*+[^*/])*\*+/ - /*x*/y/*z*/ /*x*/ -/\*([^*]|\*+[^*/])*\*+/ - /*x**/y/*z*/ /*x**/ -/\*([^*]|\*+[^*/])*\*+/ - /*x****/y/*z*/ /*x****/ -/\*([^*]|\*+[^*/])*\*+/ - /*x**x*/y/*z*/ /*x**x*/ -/\*([^*]|\*+[^*/])*\*+/ - /*x***x/y/*z*/ /*x***x/y/*z*/ - -# subexpressions -.* - abc abc - -a(b)(c)d - abcd abcd b,c -a(((b)))c - abc abc b,b,b -a(b|(c))d - abd abd b,- -a(b*|c|e)d - abbd abbd bb -a(b*|c|e)d - acd acd c -a(b*|c|e)d - ad ad @d -a(b?)c - abc abc b -a(b?)c - ac ac @c -a(b+)c - abc abc b -a(b+)c - abbbc abbbc bbb -a(b*)c - ac ac @c -(a|ab)(bc([de]+)f|cde) - abcdef abcdef a,bcdef,de -# the regression tester only asks for 9 subexpressions -a(b)(c)(d)(e)(f)(g)(h)(i)(j)k - abcdefghijk abcdefghijk b,c,d,e,f,g,h,i,j -a(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)l - abcdefghijkl abcdefghijkl b,c,d,e,f,g,h,i,j,k -a([bc]?)c - abc abc b -a([bc]?)c - ac ac @c -a([bc]+)c - abc abc b -a([bc]+)c - abcc abcc bc -a([bc]+)bc - abcbc abcbc bc -a(bb+|b)b - abb abb b -a(bbb+|bb+|b)b - abb abb b -a(bbb+|bb+|b)b - abbb abbb bb -a(bbb+|bb+|b)bb - abbb abbb b -(.*).* - abcdef abcdef abcdef -(a*)* - bc @b @b - -# do we get the right subexpression when it is used more than once? -a(b|c)*d - ad ad - -a(b|c)*d - abcd abcd c -a(b|c)+d - abd abd b -a(b|c)+d - abcd abcd c -a(b|c?)+d - ad ad @d -a(b|c?)+d - abcd abcd @d -a(b|c){0,0}d - ad ad - -a(b|c){0,1}d - ad ad - -a(b|c){0,1}d - abd abd b -a(b|c){0,2}d - ad ad - -a(b|c){0,2}d - abcd abcd c -a(b|c){0,}d - ad ad - -a(b|c){0,}d - abcd abcd c -a(b|c){1,1}d - abd abd b -a(b|c){1,1}d - acd acd c -a(b|c){1,2}d - abd abd b -a(b|c){1,2}d - abcd abcd c -a(b|c){1,}d - abd abd b -a(b|c){1,}d - abcd abcd c -a(b|c){2,2}d - acbd acbd b -a(b|c){2,2}d - abcd abcd c -a(b|c){2,4}d - abcd abcd c -a(b|c){2,4}d - abcbd abcbd b -a(b|c){2,4}d - abcbcd abcbcd c -a(b|c){2,}d - abcd abcd c -a(b|c){2,}d - abcbd abcbd b -a(b+|((c)*))+d - abd abd @d,@d,- -a(b+|((c)*))+d - abcd abcd @d,@d,- - -# check out the STARTEND option -[abc] &# a(b)c b -[abc] &# a(d)c -[abc] &# a(bc)d b -[abc] &# a(dc)d c -. &# a()c -b.*c &# b(bc)c bc -b.* &# b(bc)c bc -.*c &# b(bc)c bc - -# plain strings, with the NOSPEC flag -abc m abc abc -abc m xabcy abc -abc m xyz -a*b m aba*b a*b -a*b m ab -"" mC EMPTY - -# cases involving NULs -aZb & a a -aZb &p a -aZb &p# (aZb) aZb -aZ*b &p# (ab) ab -a.b &# (aZb) aZb -a.* &# (aZb)c aZb - -# word boundaries (ick) -[[:<:]]a & a a -[[:<:]]a & ba -[[:<:]]a & -a a -a[[:>:]] & a a -a[[:>:]] & ab -a[[:>:]] & a- a -[[:<:]]a.c[[:>:]] & axcd-dayc-dazce-abc abc -[[:<:]]a.c[[:>:]] & axcd-dayc-dazce-abc-q abc -[[:<:]]a.c[[:>:]] & axc-dayc-dazce-abc axc -[[:<:]]b.c[[:>:]] & a_bxc-byc_d-bzc-q bzc -[[:<:]].x..[[:>:]] & y_xa_-_xb_y-_xc_-axdc _xc_ -[[:<:]]a_b[[:>:]] & x_a_b - -# past problems, and suspected problems -(A[1])|(A[2])|(A[3])|(A[4])|(A[5])|(A[6])|(A[7])|(A[8])|(A[9])|(A[A]) - A1 A1 -abcdefghijklmnop i abcdefghijklmnop abcdefghijklmnop -abcdefghijklmnopqrstuv i abcdefghijklmnopqrstuv abcdefghijklmnopqrstuv -(ALAK)|(ALT[AB])|(CC[123]1)|(CM[123]1)|(GAMC)|(LC[23][EO ])|(SEM[1234])|(SL[ES][12])|(SLWW)|(SLF )|(SLDT)|(VWH[12])|(WH[34][EW])|(WP1[ESN]) - CC11 CC11 -CC[13]1|a{21}[23][EO][123][Es][12]a{15}aa[34][EW]aaaaaaa[X]a - CC11 CC11 -Char \([a-z0-9_]*\)\[.* b Char xyz[k Char xyz[k xyz -a?b - ab ab --\{0,1\}[0-9]*$ b -5 -5 -a*a*a*a*a*a*a* & aaaaaa aaaaaa diff --git a/src/stubs/accel.cpp b/src/stubs/accel.cpp deleted file mode 100644 index b0b8734d55..0000000000 --- a/src/stubs/accel.cpp +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: accel.cpp -// Purpose: wxAcceleratorTable -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "accel.h" -#endif - -#include "wx/setup.h" -#include "wx/accel.h" -#include "wx/string.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject) -#endif - -class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData -{ - friend class WXDLLEXPORT wxAcceleratorTable; -public: - wxAcceleratorRefData(); - ~wxAcceleratorRefData(); - -/* TODO: implementation - inline HACCEL GetHACCEL() const { return m_hAccel; } -protected: - HACCEL m_hAccel; -*/ -}; - -#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData) - -wxAcceleratorRefData::wxAcceleratorRefData() -{ - // TODO -/* - HACCEL m_hAccel; -*/ -} - -wxAcceleratorRefData::~wxAcceleratorRefData() -{ -/* - if (m_hAccel) - { - DestroyAcceleratorTable((HACCEL) m_hAccel); - } - m_hAccel = 0 ; -*/ -} - -wxAcceleratorTable::wxAcceleratorTable() -{ - m_refData = NULL; -} - -wxAcceleratorTable::~wxAcceleratorTable() -{ -} - -// Load from .rc resource -wxAcceleratorTable::wxAcceleratorTable(const wxString& resource) -{ - m_refData = new wxAcceleratorRefData; - -/* TODO: load acelerator from resource, if appropriate for your platform - M_ACCELDATA->m_hAccel = hAccel; - M_ACCELDATA->m_ok = (hAccel != 0); -*/ -} - -// Create from an array -wxAcceleratorTable::wxAcceleratorTable(int n, wxAcceleratorEntry entries[]) -{ - m_refData = new wxAcceleratorRefData; - -/* TODO: create table from entries - */ -} - -bool wxAcceleratorTable::Ok() const -{ - // TODO - return FALSE; -} - diff --git a/src/stubs/app.cpp b/src/stubs/app.cpp deleted file mode 100644 index b04a01bbe2..0000000000 --- a/src/stubs/app.cpp +++ /dev/null @@ -1,391 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: app.cpp -// Purpose: wxApp -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "app.h" -#endif - -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/utils.h" -#include "wx/gdicmn.h" -#include "wx/pen.h" -#include "wx/brush.h" -#include "wx/cursor.h" -#include "wx/icon.h" -#include "wx/palette.h" -#include "wx/dc.h" -#include "wx/dialog.h" -#include "wx/msgdlg.h" -#include "wx/log.h" -#include "wx/module.h" -#include "wx/memory.h" - -#if wxUSE_WX_RESOURCES -#include "wx/resource.h" -#endif - -#include - -extern char *wxBuffer; -extern wxList wxPendingDelete; - -wxApp *wxTheApp = NULL; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler) -BEGIN_EVENT_TABLE(wxApp, wxEvtHandler) - EVT_IDLE(wxApp::OnIdle) -END_EVENT_TABLE() -#endif - -long wxApp::sm_lastMessageTime = 0; - -bool wxApp::Initialize() -{ -#ifdef __WXMSW__ - wxBuffer = new char[1500]; -#else - wxBuffer = new char[BUFSIZ + 512]; -#endif - -/* No longer used -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - - streambuf* sBuf = new wxDebugStreamBuf; - ostream* oStr = new ostream(sBuf) ; - wxDebugContext::SetStream(oStr, sBuf); -#endif -*/ - - wxClassInfo::InitializeClasses(); - - wxTheColourDatabase = new wxColourDatabase(wxKEY_STRING); - wxTheColourDatabase->Initialize(); - - wxInitializeStockLists(); - wxInitializeStockObjects(); - -#if wxUSE_WX_RESOURCES - wxInitializeResourceSystem(); -#endif - - wxBitmap::InitStandardHandlers(); - - wxModule::RegisterModules(); - wxASSERT( wxModule::InitializeModules() == TRUE ); - - return TRUE; -} - -void wxApp::CleanUp() -{ - wxModule::CleanUpModules(); - -#if wxUSE_WX_RESOURCES - wxCleanUpResourceSystem(); -#endif - - wxDeleteStockObjects() ; - - // Destroy all GDI lists, etc. - - delete wxTheBrushList; - wxTheBrushList = NULL; - - delete wxThePenList; - wxThePenList = NULL; - - delete wxTheFontList; - wxTheFontList = NULL; - - delete wxTheBitmapList; - wxTheBitmapList = NULL; - - delete wxTheColourDatabase; - wxTheColourDatabase = NULL; - - wxBitmap::CleanUpHandlers(); - - delete[] wxBuffer; - wxBuffer = NULL; - - wxClassInfo::CleanUpClasses(); - - delete wxTheApp; - wxTheApp = NULL; - -#if (defined(__WXDEBUG__) && wxUSE_MEMORY_TRACING) || wxUSE_DEBUG_CONTEXT - // At this point we want to check if there are any memory - // blocks that aren't part of the wxDebugContext itself, - // as a special case. Then when dumping we need to ignore - // wxDebugContext, too. - if (wxDebugContext::CountObjectsLeft() > 0) - { - wxTrace("There were memory leaks.\n"); - wxDebugContext::Dump(); - wxDebugContext::PrintStatistics(); - } -// wxDebugContext::SetStream(NULL, NULL); -#endif - - // do it as the very last thing because everything else can log messages - wxLog::DontCreateOnDemand(); - // do it as the very last thing because everything else can log messages - delete wxLog::SetActiveTarget(NULL); -} - -int wxEntry( int argc, char *argv[] ) -{ - if (!wxApp::Initialize()) - return FALSE; - if (!wxTheApp) - { - if (!wxApp::GetInitializerFunction()) - { - printf( "wxWindows error: No initializer - use IMPLEMENT_APP macro.\n" ); - return 0; - }; - - wxTheApp = (wxApp*) (* wxApp::GetInitializerFunction()) (); - }; - - if (!wxTheApp) - { - printf( "wxWindows error: wxTheApp == NULL\n" ); - return 0; - }; - - wxTheApp->argc = argc; - wxTheApp->argv = argv; - - // GUI-specific initialization, such as creating an app context. - wxTheApp->OnInitGui(); - - // Here frames insert themselves automatically - // into wxTopLevelWindows by getting created - // in OnInit(). - - if (!wxTheApp->OnInit()) return 0; - - int retValue = 0; - - if (wxTheApp->Initialized()) retValue = wxTheApp->OnRun(); - - if (wxTheApp->GetTopWindow()) - { - delete wxTheApp->GetTopWindow(); - wxTheApp->SetTopWindow(NULL); - } - - wxTheApp->DeletePendingObjects(); - - wxTheApp->OnExit(); - - wxApp::CleanUp(); - - return retValue; -}; - -// Static member initialization -wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; - -wxApp::wxApp() -{ - m_topWindow = NULL; - wxTheApp = this; - m_className = ""; - m_wantDebugOutput = TRUE ; - m_appName = ""; - argc = 0; - argv = NULL; -#ifdef __WXMSW__ - m_printMode = wxPRINT_WINDOWS; -#else - m_printMode = wxPRINT_POSTSCRIPT; -#endif - m_exitOnFrameDelete = TRUE; - m_auto3D = TRUE; -} - -bool wxApp::Initialized() -{ - if (GetTopWindow()) - return TRUE; - else - return FALSE; -} - -int wxApp::MainLoop() -{ - m_keepGoing = TRUE; - -/* TODO: implement your main loop here, calling ProcessIdle in idle time. - while (m_keepGoing) - { - while (!::PeekMessage(&s_currentMsg, 0, 0, 0, PM_NOREMOVE) && - ProcessIdle()) {} - if (!DoMessage()) - m_keepGoing = FALSE; - } -*/ - - return 0; -} - -// Returns TRUE if more time is needed. -bool wxApp::ProcessIdle() -{ - wxIdleEvent event; - event.SetEventObject(this); - ProcessEvent(event); - - return event.MoreRequested(); -} - -void wxApp::ExitMainLoop() -{ - m_keepGoing = FALSE; -} - -// Is a message/event pending? -bool wxApp::Pending() -{ -/* TODO. - */ - return FALSE; -} - -// Dispatch a message. -void wxApp::Dispatch() -{ -/* TODO. - */ -} - -void wxApp::OnIdle(wxIdleEvent& event) -{ - static bool inOnIdle = FALSE; - - // Avoid recursion (via ProcessEvent default case) - if (inOnIdle) - return; - - inOnIdle = TRUE; - - // 'Garbage' collection of windows deleted with Close(). - DeletePendingObjects(); - - // flush the logged messages if any - wxLog *pLog = wxLog::GetActiveTarget(); - if ( pLog != NULL && pLog->HasPendingMessages() ) - pLog->Flush(); - - // Send OnIdle events to all windows - bool needMore = SendIdleEvents(); - - if (needMore) - event.RequestMore(TRUE); - - inOnIdle = FALSE; -} - -// Send idle event to all top-level windows -bool wxApp::SendIdleEvents() -{ - bool needMore = FALSE; - wxNode* node = wxTopLevelWindows.First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore; -} - -// Send idle event to window and all subwindows -bool wxApp::SendIdleEvents(wxWindow* win) -{ - bool needMore = FALSE; - - wxIdleEvent event; - event.SetEventObject(win); - win->ProcessEvent(event); - - if (event.MoreRequested()) - needMore = TRUE; - - wxNode* node = win->GetChildren().First(); - while (node) - { - wxWindow* win = (wxWindow*) node->Data(); - if (SendIdleEvents(win)) - needMore = TRUE; - - node = node->Next(); - } - return needMore ; -} - -void wxApp::DeletePendingObjects() -{ - wxNode *node = wxPendingDelete.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - - delete obj; - - if (wxPendingDelete.Member(obj)) - delete node; - - // Deleting one object may have deleted other pending - // objects, so start from beginning of list again. - node = wxPendingDelete.First(); - } -} - -wxLog* wxApp::CreateLogTarget() -{ - return new wxLogGui; -} - -wxWindow* wxApp::GetTopWindow() const -{ - if (m_topWindow) - return m_topWindow; - else if (wxTopLevelWindows.Number() > 0) - return (wxWindow*) wxTopLevelWindows.First()->Data(); - else - return NULL; -} - -void wxExit() -{ - wxApp::CleanUp(); -/* - * TODO: Exit in some platform-specific way. Not recommended that the app calls this: - * only for emergencies. - */ -} - -// Yield to other processes -bool wxYield() -{ - /* - * TODO - */ - return TRUE; -} - diff --git a/src/stubs/bitmap.cpp b/src/stubs/bitmap.cpp deleted file mode 100644 index 1e6255f551..0000000000 --- a/src/stubs/bitmap.cpp +++ /dev/null @@ -1,430 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bitmap.cpp -// Purpose: wxBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bitmap.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/palette.h" -#include "wx/bitmap.h" -#include "wx/icon.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBitmap, wxGDIObject) -IMPLEMENT_DYNAMIC_CLASS(wxMask, wxObject) -#endif - -wxBitmapRefData::wxBitmapRefData() -{ - m_ok = FALSE; - m_width = 0; - m_height = 0; - m_depth = 0; - m_quality = 0; - m_numColors = 0; - m_bitmapMask = NULL; -} - -wxBitmapRefData::~wxBitmapRefData() -{ - /* - * TODO: delete the bitmap data here. - */ - - if (m_bitmapMask) - delete m_bitmapMask; - m_bitmapMask = NULL; -} - -wxList wxBitmap::sm_handlers; - -wxBitmap::wxBitmap() -{ - m_refData = NULL; - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::~wxBitmap() -{ - if (wxTheBitmapList) - wxTheBitmapList->DeleteObject(this); -} - -wxBitmap::wxBitmap(const char bits[], int the_width, int the_height, int no_bits) -{ - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = the_width ; - M_BITMAPDATA->m_height = the_height ; - M_BITMAPDATA->m_depth = no_bits ; - M_BITMAPDATA->m_numColors = 0; - - /* TODO: create the bitmap from data */ - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(int w, int h, int d) -{ - (void)Create(w, h, d); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(void *data, long type, int width, int height, int depth) -{ - (void) Create(data, type, width, height, depth); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -wxBitmap::wxBitmap(const wxString& filename, long type) -{ - LoadFile(filename, (int)type); - - if ( wxTheBitmapList ) - wxTheBitmapList->AddBitmap(this); -} - -/* TODO: maybe allow creation from XPM -// Create from data -wxBitmap::wxBitmap(const char **data) -{ - (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); -} -*/ - -bool wxBitmap::Create(int w, int h, int d) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; - M_BITMAPDATA->m_height = h; - M_BITMAPDATA->m_depth = d; - - /* TODO: create new bitmap */ - - return M_BITMAPDATA->m_ok; -} - -bool wxBitmap::LoadFile(const wxString& filename, long type) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->LoadFile(this, filename, type, -1, -1); -} - -bool wxBitmap::Create(void *data, long type, int width, int height, int depth) -{ - UnRef(); - - m_refData = new wxBitmapRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->Create(this, data, type, width, height, depth); -} - -bool wxBitmap::SaveFile(const wxString& filename, int type, const wxPalette *palette) -{ - wxBitmapHandler *handler = FindHandler(type); - - if ( handler == NULL ) { - wxLogWarning("no bitmap handler for type %d defined.", type); - - return FALSE; - } - - return handler->SaveFile(this, filename, type, palette); -} - -void wxBitmap::SetWidth(int w) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_width = w; -} - -void wxBitmap::SetHeight(int h) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_height = h; -} - -void wxBitmap::SetDepth(int d) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_depth = d; -} - -void wxBitmap::SetQuality(int q) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_quality = q; -} - -void wxBitmap::SetOk(bool isOk) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_ok = isOk; -} - -void wxBitmap::SetPalette(const wxPalette& palette) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapPalette = palette ; -} - -void wxBitmap::SetMask(wxMask *mask) -{ - if (!M_BITMAPDATA) - m_refData = new wxBitmapRefData; - - M_BITMAPDATA->m_bitmapMask = mask ; -} - -void wxBitmap::AddHandler(wxBitmapHandler *handler) -{ - sm_handlers.Append(handler); -} - -void wxBitmap::InsertHandler(wxBitmapHandler *handler) -{ - sm_handlers.Insert(handler); -} - -bool wxBitmap::RemoveHandler(const wxString& name) -{ - wxBitmapHandler *handler = FindHandler(name); - if ( handler ) - { - sm_handlers.DeleteObject(handler); - return TRUE; - } - else - return FALSE; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& name) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetName() == name ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(const wxString& extension, long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if ( handler->GetExtension() == extension && - (bitmapType == -1 || handler->GetType() == bitmapType) ) - return handler; - node = node->Next(); - } - return NULL; -} - -wxBitmapHandler *wxBitmap::FindHandler(long bitmapType) -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - if (handler->GetType() == bitmapType) - return handler; - node = node->Next(); - } - return NULL; -} - -/* - * wxMask - */ - -wxMask::wxMask() -{ -/* TODO - m_maskBitmap = 0; -*/ -} - -// Construct a mask from a bitmap and a colour indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, const wxColour& colour) -{ -/* TODO - m_maskBitmap = 0; -*/ - Create(bitmap, colour); -} - -// Construct a mask from a bitmap and a palette index indicating -// the transparent area -wxMask::wxMask(const wxBitmap& bitmap, int paletteIndex) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap, paletteIndex); -} - -// Construct a mask from a mono bitmap (copies the bitmap). -wxMask::wxMask(const wxBitmap& bitmap) -{ -/* TODO - m_maskBitmap = 0; -*/ - - Create(bitmap); -} - -wxMask::~wxMask() -{ -// TODO: delete mask bitmap -} - -// Create a mask from a mono bitmap (copies the bitmap). -bool wxMask::Create(const wxBitmap& bitmap) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a palette index indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, int paletteIndex) -{ -// TODO - return FALSE; -} - -// Create a mask from a bitmap and a colour indicating -// the transparent area -bool wxMask::Create(const wxBitmap& bitmap, const wxColour& colour) -{ -// TODO - return FALSE; -} - -/* - * wxBitmapHandler - */ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapHandler, wxObject) - -bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth) -{ - return FALSE; -} - -bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long type, - int desiredWidth, int desiredHeight) -{ - return FALSE; -} - -bool wxBitmapHandler::SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette) -{ - return FALSE; -} - -/* - * Standard handlers - */ - -/* TODO: bitmap handlers, a bit like this: -class WXDLLEXPORT wxBMPResourceHandler: public wxBitmapHandler -{ - DECLARE_DYNAMIC_CLASS(wxBMPResourceHandler) -public: - inline wxBMPResourceHandler() - { - m_name = "Windows bitmap resource"; - m_extension = ""; - m_type = wxBITMAP_TYPE_BMP_RESOURCE; - }; - - virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags, - int desiredWidth, int desiredHeight); -}; -IMPLEMENT_DYNAMIC_CLASS(wxBMPResourceHandler, wxBitmapHandler) -*/ - -void wxBitmap::CleanUpHandlers() -{ - wxNode *node = sm_handlers.First(); - while ( node ) - { - wxBitmapHandler *handler = (wxBitmapHandler *)node->Data(); - wxNode *next = node->Next(); - delete handler; - delete node; - node = next; - } -} - -void wxBitmap::InitStandardHandlers() -{ -/* TODO: initialize all standard bitmap or derive class handlers here. - AddHandler(new wxBMPResourceHandler); - AddHandler(new wxBMPFileHandler); - AddHandler(new wxXPMFileHandler); - AddHandler(new wxXPMDataHandler); - AddHandler(new wxICOResourceHandler); - AddHandler(new wxICOFileHandler); -*/ -} diff --git a/src/stubs/bmpbuttn.cpp b/src/stubs/bmpbuttn.cpp deleted file mode 100644 index 169f0d557a..0000000000 --- a/src/stubs/bmpbuttn.cpp +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpbuttn.cpp -// Purpose: wxBitmapButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpbuttn.h" -#endif - -#include "wx/bmpbuttn.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxBitmapButton, wxButton) -#endif - -bool wxBitmapButton::Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_buttonBitmap = bitmap; - SetName(name); - SetValidator(validator); - parent->AddChild(this); - - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; - m_windowStyle = style; - m_marginX = 0; - m_marginY = 0; - - int x = pos.x; - int y = pos.y; - int width = size.x; - int height = size.y; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - if ( width == -1 && bitmap.Ok()) - width = bitmap.GetWidth() + 2*m_marginX; - - if ( height == -1 && bitmap.Ok()) - height = bitmap.GetHeight() + 2*m_marginY; - - /* TODO: create bitmap button - */ - - return FALSE; -} - -void wxBitmapButton::SetBitmapLabel(const wxBitmap& bitmap) -{ - m_buttonBitmap = bitmap; -} - diff --git a/src/stubs/brush.cpp b/src/stubs/brush.cpp deleted file mode 100644 index 4f28e92f53..0000000000 --- a/src/stubs/brush.cpp +++ /dev/null @@ -1,140 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: brush.cpp -// Purpose: wxBrush -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "brush.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/brush.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxBrush, wxGDIObject) -#endif - -wxBrushRefData::wxBrushRefData() -{ - m_style = wxSOLID; -// TODO: null data -} - -wxBrushRefData::wxBrushRefData(const wxBrushRefData& data) -{ - m_style = data.m_style; - m_stipple = data.m_stipple; - m_colour = data.m_colour; -/* TODO: null data - m_hBrush = 0; -*/ -} - -wxBrushRefData::~wxBrushRefData() -{ -// TODO: delete data -} - -// Brushes -wxBrush::wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::~wxBrush() -{ - if ( wxTheBrushList ) - wxTheBrushList->RemoveBrush(this); -} - -wxBrush::wxBrush(const wxColour& col, int Style) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_colour = col; - M_BRUSHDATA->m_style = Style; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -wxBrush::wxBrush(const wxBitmap& stipple) -{ - m_refData = new wxBrushRefData; - - M_BRUSHDATA->m_style = wxSTIPPLE; - M_BRUSHDATA->m_stipple = stipple; - - RealizeResource(); - - if ( wxTheBrushList ) - wxTheBrushList->AddBrush(this); -} - -void wxBrush::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxBrushRefData(); - } - else - { - wxBrushRefData* ref = new wxBrushRefData(*(wxBrushRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxBrush::SetColour(const wxColour& col) -{ - Unshare(); - - M_BRUSHDATA->m_colour = col; - - RealizeResource(); -} - -void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_BRUSHDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxBrush::SetStyle(int Style) -{ - Unshare(); - - M_BRUSHDATA->m_style = Style; - - RealizeResource(); -} - -void wxBrush::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_BRUSHDATA->m_stipple = Stipple; - - RealizeResource(); -} - -bool wxBrush::RealizeResource() -{ -// TODO: create the brush - return FALSE; -} - diff --git a/src/stubs/button.cpp b/src/stubs/button.cpp deleted file mode 100644 index befd0d7156..0000000000 --- a/src/stubs/button.cpp +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: button.cpp -// Purpose: wxButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "button.h" -#endif - -#include "wx/button.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxButton, wxControl) -#endif - -// Button - -bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - parent->AddChild((wxButton *)this); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create button - - return FALSE; -} - -void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxButton::SetDefault() -{ - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - parent->SetDefaultItem(this); - - // TODO: make button the default -} - -wxString wxButton::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxButton::Command (wxCommandEvent & event) -{ - ProcessCommand (event); -} - diff --git a/src/stubs/checkbox.cpp b/src/stubs/checkbox.cpp deleted file mode 100644 index 258a9cc6c3..0000000000 --- a/src/stubs/checkbox.cpp +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: checkbox.cpp -// Purpose: wxCheckBox -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "checkbox.h" -#endif - -#include "wx/checkbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxCheckBox, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxBitmapCheckBox, wxCheckBox) -#endif - -// Single check box item -bool wxCheckBox::Create(wxWindow *parent, wxWindowID id, const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create checkbox - - return FALSE; -} - -void wxCheckBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxCheckBox::GetValue() const -{ - // TODO - return FALSE; -} - -void wxCheckBox::Command (wxCommandEvent & event) -{ - SetValue ((event.GetInt() != 0)); - ProcessCommand (event); -} - -// Bitmap checkbox -bool wxBitmapCheckBox::Create(wxWindow *parent, wxWindowID id, const wxBitmap *label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: Create the bitmap checkbox - - return FALSE; -} - -void wxBitmapCheckBox::SetLabel(const wxBitmap& bitmap) -{ - // TODO -} - -void wxBitmapCheckBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxBitmapCheckBox::SetValue(bool val) -{ - // TODO -} - -bool wxBitmapCheckBox::GetValue() const -{ - // TODOD - return FALSE; -} - - diff --git a/src/stubs/checklst.cpp b/src/stubs/checklst.cpp deleted file mode 100644 index ecabf5408e..0000000000 --- a/src/stubs/checklst.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: checklst.cpp -// Purpose: implementation of wxCheckListBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#ifdef __GNUG__ -#pragma implementation "checklst.h" -#endif - -#include "wx/checklst.h" - -// ============================================================================ -// implementation -// ============================================================================ - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxCheckListBox, wxListBox) -#endif - -// ---------------------------------------------------------------------------- -// implementation of wxCheckListBox class -// ---------------------------------------------------------------------------- - -// define event table -// ------------------ -BEGIN_EVENT_TABLE(wxCheckListBox, wxListBox) -END_EVENT_TABLE() - -// control creation -// ---------------- - -// def ctor: use Create() to really create the control -wxCheckListBox::wxCheckListBox() : wxListBox() -{ -} - -// ctor which creates the associated control -wxCheckListBox::wxCheckListBox(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - int nStrings, const wxString choices[], - long style, const wxValidator& val, - const wxString& name) - : wxListBox() -{ - // TODO: you'll probably need a separate Create instead of using - // the wxListBox one as here. - Create(parent, id, pos, size, nStrings, choices, style|wxLB_OWNERDRAW, val, name); -} - -// check items -// ----------- - -bool wxCheckListBox::IsChecked(uint uiIndex) const -{ - // TODO - return FALSE; -} - -void wxCheckListBox::Check(uint uiIndex, bool bCheck) -{ - // TODO -} - - diff --git a/src/stubs/choice.cpp b/src/stubs/choice.cpp deleted file mode 100644 index a584d5303f..0000000000 --- a/src/stubs/choice.cpp +++ /dev/null @@ -1,119 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: choice.cpp -// Purpose: wxChoice -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "choice.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/choice.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxChoice, wxControl) -#endif - -bool wxChoice::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create choice control - return FALSE; -} - -void wxChoice::Append(const wxString& item) -{ - // TODO - m_noStrings ++; -} - -void wxChoice::Delete(int n) -{ - // TODO - m_noStrings --; -} - -void wxChoice::Clear() -{ - // TODO - m_noStrings = 0; -} - -int wxChoice::GetSelection() const -{ - // TODO - return 0; -} - -void wxChoice::SetSelection(int n) -{ - // TODO -} - -int wxChoice::FindString(const wxString& s) const -{ - // TODO - return 0; -} - -wxString wxChoice::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxChoice::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -wxString wxChoice::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return wxString(this->GetString (sel)); - else - return wxString(""); -} - -bool wxChoice::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxChoice::Command(wxCommandEvent & event) -{ - SetSelection (event.GetInt()); - ProcessCommand (event); -} - diff --git a/src/stubs/clipbrd.cpp b/src/stubs/clipbrd.cpp deleted file mode 100644 index 3fe9ebfb72..0000000000 --- a/src/stubs/clipbrd.cpp +++ /dev/null @@ -1,237 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: clipbrd.cpp -// Purpose: Clipboard functionality -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma implementation "clipbrd.h" -#endif - -#include "wx/app.h" -#include "wx/frame.h" -#include "wx/bitmap.h" -#include "wx/utils.h" -#include "wx/metafile.h" -#include "wx/clipbrd.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxClipboard, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxClipboardClient, wxObject) -#endif - -bool wxOpenClipboard() -{ - // TODO - return FALSE; -} - -bool wxCloseClipboard() -{ - // TODO - return FALSE; -} - -bool wxEmptyClipboard() -{ - // TODO - return FALSE; -} - -bool wxClipboardOpen() -{ - // TODO - return FALSE; -} - -bool wxIsClipboardFormatAvailable(int dataFormat) -{ - // TODO - return FALSE; -} - -bool wxSetClipboardData(int dataFormat, wxObject *obj, int width, int height) -{ - // TODO - return FALSE; -} - -wxObject *wxGetClipboardData(int dataFormat, long *len) -{ - // TODO - return NULL; -} - -int wxEnumClipboardFormats(int dataFormat) -{ - // TODO - return 0; -} - -int wxRegisterClipboardFormat(char *formatName) -{ - // TODO - return 0; -} - -bool wxGetClipboardFormatName(int dataFormat, char *formatName, int maxCount) -{ - // TODO - return FALSE; -} - -/* - * Generalized clipboard implementation by Matthew Flatt - */ - -wxClipboard *wxTheClipboard = NULL; - -void wxInitClipboard() -{ - if (!wxTheClipboard) - wxTheClipboard = new wxClipboard; -} - -wxClipboard::wxClipboard() -{ - clipOwner = NULL; - cbString = NULL; -} - -wxClipboard::~wxClipboard() -{ - if (clipOwner) - clipOwner->BeingReplaced(); - if (cbString) - delete[] cbString; -} - -static int FormatStringToID(char *str) -{ - if (!strcmp(str, "TEXT")) - return wxDF_TEXT; - - return wxRegisterClipboardFormat(str); -} - -void wxClipboard::SetClipboardClient(wxClipboardClient *client, long time) -{ - bool got_selection; - - if (clipOwner) - clipOwner->BeingReplaced(); - clipOwner = client; - if (cbString) { - delete[] cbString; - cbString = NULL; - } - - if (wxOpenClipboard()) { - char **formats, *data; - int i; - int ftype; - long size; - - formats = clipOwner->formats.ListToArray(FALSE); - for (i = clipOwner->formats.Number(); i--; ) { - ftype = FormatStringToID(formats[i]); - data = clipOwner->GetData(formats[i], &size); - if (!wxSetClipboardData(ftype, (wxObject *)data, size, 1)) { - got_selection = FALSE; - break; - } - } - - if (i < 0) - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } -} - -wxClipboardClient *wxClipboard::GetClipboardClient() -{ - return clipOwner; -} - -void wxClipboard::SetClipboardString(char *str, long time) -{ - bool got_selection; - - if (clipOwner) { - clipOwner->BeingReplaced(); - clipOwner = NULL; - } - if (cbString) - delete[] cbString; - - cbString = str; - - if (wxOpenClipboard()) { - if (!wxSetClipboardData(wxDF_TEXT, (wxObject *)str)) - got_selection = FALSE; - else - got_selection = wxCloseClipboard(); - } else - got_selection = FALSE; - - got_selection = FALSE; // Assume another process takes over - - if (!got_selection) { - delete[] cbString; - cbString = NULL; - } -} - -char *wxClipboard::GetClipboardString(long time) -{ - char *str; - long length; - - str = GetClipboardData("TEXT", &length, time); - if (!str) { - str = new char[1]; - *str = 0; - } - - return str; -} - -char *wxClipboard::GetClipboardData(char *format, long *length, long time) -{ - if (clipOwner) { - if (clipOwner->formats.Member(format)) - return clipOwner->GetData(format, length); - else - return NULL; - } else if (cbString) { - if (!strcmp(format, "TEXT")) - return copystring(cbString); - else - return NULL; - } else { - if (wxOpenClipboard()) { - receivedString = (char *)wxGetClipboardData(FormatStringToID(format), - length); - wxCloseClipboard(); - } else - receivedString = NULL; - - return receivedString; - } -} - diff --git a/src/stubs/colordlg.cpp b/src/stubs/colordlg.cpp deleted file mode 100644 index 2275a9a39d..0000000000 --- a/src/stubs/colordlg.cpp +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colordlg.cpp -// Purpose: wxColourDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colordlg.h" -#endif - -#include "wx/stubs/colordlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColourDialog, wxDialog) -#endif - -/* - * wxColourDialog - */ - -wxColourDialog::wxColourDialog() -{ - m_dialogParent = NULL; -} - -wxColourDialog::wxColourDialog(wxWindow *parent, wxColourData *data) -{ - Create(parent, data); -} - -bool wxColourDialog::Create(wxWindow *parent, wxColourData *data) -{ - m_dialogParent = parent; - - if (data) - m_colourData = *data; - return TRUE; -} - -int wxColourDialog::ShowModal() -{ - /* TODO: implement dialog - */ - - return wxID_CANCEL; -} - diff --git a/src/stubs/colour.cpp b/src/stubs/colour.cpp deleted file mode 100644 index 8d0827ef1d..0000000000 --- a/src/stubs/colour.cpp +++ /dev/null @@ -1,103 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: colour.cpp -// Purpose: wxColour class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "colour.h" -#endif - -#include "wx/gdicmn.h" -#include "wx/colour.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject) -#endif - -// Colour - -wxColour::wxColour () -{ - m_isInit = FALSE; - m_red = m_blue = m_green = 0; -/* TODO - m_pixel = 0; -*/ -} - -wxColour::wxColour (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::wxColour (const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ -} - -wxColour& wxColour::operator =(const wxColour& col) -{ - m_red = col.m_red; - m_green = col.m_green; - m_blue = col.m_blue; - m_isInit = col.m_isInit; -/* TODO - m_pixel = col.m_pixel; -*/ - return *this; -} - -void wxColour::InitFromName(const wxString& col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour (col); - if (the_colour) - { - m_red = the_colour->Red (); - m_green = the_colour->Green (); - m_blue = the_colour->Blue (); - m_isInit = TRUE; - } - else - { - m_red = 0; - m_green = 0; - m_blue = 0; - m_isInit = FALSE; - } -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} - -wxColour::~wxColour () -{ -} - -void wxColour::Set (unsigned char r, unsigned char g, unsigned char b) -{ - m_red = r; - m_green = g; - m_blue = b; - m_isInit = TRUE; -/* TODO - m_pixel = PALETTERGB (m_red, m_green, m_blue); -*/ -} diff --git a/src/stubs/combobox.cpp b/src/stubs/combobox.cpp deleted file mode 100644 index 0be841bad4..0000000000 --- a/src/stubs/combobox.cpp +++ /dev/null @@ -1,165 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: combobox.cpp -// Purpose: wxComboBox class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "combobox.h" -#endif - -#include "wx/combobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl) -#endif - -bool wxComboBox::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_noStrings = n; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create combobox control - - return TRUE; -} - -wxString wxComboBox::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxComboBox::SetValue(const wxString& value) -{ - // TODO -} - -// Clipboard operations -void wxComboBox::Copy() -{ - // TODO -} - -void wxComboBox::Cut() -{ - // TODO -} - -void wxComboBox::Paste() -{ - // TODO -} - -void wxComboBox::SetEditable(bool editable) -{ - // TODO -} - -void wxComboBox::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxComboBox::SetInsertionPointEnd() -{ - // TODO -} - -long wxComboBox::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxComboBox::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxComboBox::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxComboBox::Remove(long from, long to) -{ - // TODO -} - -void wxComboBox::SetSelection(long from, long to) -{ - // TODO -} - -void wxComboBox::Append(const wxString& item) -{ - // TODO -} - -void wxComboBox::Delete(int n) -{ - // TODO -} - -void wxComboBox::Clear() -{ - // TODO -} - -int wxComboBox::GetSelection() const -{ - // TODO - return -1; -} - -void wxComboBox::SetSelection(int n) -{ - // TODO -} - -int wxComboBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -wxString wxComboBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -wxString wxComboBox::GetStringSelection() const -{ - // TODO - return wxString(""); -} - -bool wxComboBox::SetStringSelection(const wxString& sel) -{ - // TODO - return FALSE; -} diff --git a/src/stubs/control.cpp b/src/stubs/control.cpp deleted file mode 100644 index b141a80ff1..0000000000 --- a/src/stubs/control.cpp +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: control.cpp -// Purpose: wxControl class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/control.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) - -BEGIN_EVENT_TABLE(wxControl, wxWindow) -END_EVENT_TABLE() -#endif - -// Item members -wxControl::wxControl() -{ - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - m_callback = 0; -} - -wxControl::~wxControl() -{ - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) - { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem(NULL); - } -} - -void wxControl::SetLabel(const wxString& label) -{ - // TODO -} - -wxString wxControl::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxControl::ProcessCommand (wxCommandEvent & event) -{ - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - } - else - { - GetEventHandler()->OnCommand(*this, event); - } -} - -void wxControl::Centre (int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; - - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); - - new_x = x; - new_y = y; - - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); - - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); - - SetSize (new_x, new_y, width, height); -} - diff --git a/src/stubs/cursor.cpp b/src/stubs/cursor.cpp deleted file mode 100644 index 4333364c93..0000000000 --- a/src/stubs/cursor.cpp +++ /dev/null @@ -1,187 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cursor.cpp -// Purpose: wxCursor class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cursor.h" -#endif - -#include "wx/cursor.h" -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxCursor, wxBitmap) -#endif - -wxCursorRefData::wxCursorRefData() -{ - m_width = 32; m_height = 32; - -/* TODO - m_hCursor = 0 ; -*/ -} - -wxCursorRefData::~wxCursorRefData() -{ - // TODO: destroy cursor -} - -// Cursors -wxCursor::wxCursor() -{ -} - -wxCursor::wxCursor(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height), - int WXUNUSED(hotSpotX), int WXUNUSED(hotSpotY), const char WXUNUSED(maskBits)[]) -{ -} - -wxCursor::wxCursor(const wxString& cursor_file, long flags, int hotSpotX, int hotSpotY) -{ - m_refData = new wxCursorRefData; - - // TODO: create cursor from a file -} - -// Cursors by stock number -wxCursor::wxCursor(int cursor_type) -{ - m_refData = new wxCursorRefData; - -/* TODO - switch (cursor_type) - { - case wxCURSOR_WAIT: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_WAIT); - break; - case wxCURSOR_IBEAM: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_IBEAM); - break; - case wxCURSOR_CROSS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_CROSS); - break; - case wxCURSOR_SIZENWSE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENWSE); - break; - case wxCURSOR_SIZENESW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENESW); - break; - case wxCURSOR_SIZEWE: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZEWE); - break; - case wxCURSOR_SIZENS: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_SIZENS); - break; - case wxCURSOR_CHAR: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_HAND: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_HAND"); - break; - } - case wxCURSOR_BULLSEYE: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BULLSEYE"); - break; - } - case wxCURSOR_PENCIL: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PENCIL"); - break; - } - case wxCURSOR_MAGNIFIER: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_MAGNIFIER"); - break; - } - case wxCURSOR_NO_ENTRY: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_NO_ENTRY"); - break; - } - case wxCURSOR_LEFT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_RIGHT_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_MIDDLE_BUTTON: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } - case wxCURSOR_SIZING: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_SIZING"); - break; - } - case wxCURSOR_WATCH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_WATCH"); - break; - } - case wxCURSOR_SPRAYCAN: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_ROLLER"); - break; - } - case wxCURSOR_PAINT_BRUSH: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PBRUSH"); - break; - } - case wxCURSOR_POINT_LEFT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PLEFT"); - break; - } - case wxCURSOR_POINT_RIGHT: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_PRIGHT"); - break; - } - case wxCURSOR_QUESTION_ARROW: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_QARROW"); - break; - } - case wxCURSOR_BLANK: - { - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(wxGetInstance(), "wxCURSOR_BLANK"); - break; - } - default: - case wxCURSOR_ARROW: - M_CURSORDATA->m_hCursor = (WXHCURSOR) LoadCursor(NULL, IDC_ARROW); - break; - } -*/ - -} - -wxCursor::~wxCursor() -{ -} - -// Global cursor setting -void wxSetCursor(const wxCursor& cursor) -{ - // TODO (optional on platforms with no global cursor) -} - - diff --git a/src/stubs/data.cpp b/src/stubs/data.cpp deleted file mode 100644 index aea15f6799..0000000000 --- a/src/stubs/data.cpp +++ /dev/null @@ -1,147 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: data.cpp -// Purpose: Various data -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/wx.h" - -#if wxUSE_POSTSCRIPT -#include "wx/dcps.h" -#endif - -#define _MAXPATHLEN 500 - -// Useful buffer, initialized in CommonInit -char *wxBuffer = NULL; - -// Windows List -wxList wxTopLevelWindows; - -// List of windows pending deletion -wxList wxPendingDelete; - -int wxPageNumber; - -// GDI Object Lists -wxBrushList *wxTheBrushList = NULL; -wxPenList *wxThePenList = NULL; -wxFontList *wxTheFontList = NULL; -wxBitmapList *wxTheBitmapList = NULL; - -wxColourDatabase *wxTheColourDatabase = NULL; - -// Stock objects -wxFont *wxNORMAL_FONT; -wxFont *wxSMALL_FONT; -wxFont *wxITALIC_FONT; -wxFont *wxSWISS_FONT; -wxPen *wxRED_PEN; - -wxPen *wxCYAN_PEN; -wxPen *wxGREEN_PEN; -wxPen *wxBLACK_PEN; -wxPen *wxWHITE_PEN; -wxPen *wxTRANSPARENT_PEN; -wxPen *wxBLACK_DASHED_PEN; -wxPen *wxGREY_PEN; -wxPen *wxMEDIUM_GREY_PEN; -wxPen *wxLIGHT_GREY_PEN; - -wxBrush *wxBLUE_BRUSH; -wxBrush *wxGREEN_BRUSH; -wxBrush *wxWHITE_BRUSH; -wxBrush *wxBLACK_BRUSH; -wxBrush *wxTRANSPARENT_BRUSH; -wxBrush *wxCYAN_BRUSH; -wxBrush *wxRED_BRUSH; -wxBrush *wxGREY_BRUSH; -wxBrush *wxMEDIUM_GREY_BRUSH; -wxBrush *wxLIGHT_GREY_BRUSH; - -wxColour *wxBLACK; -wxColour *wxWHITE; -wxColour *wxRED; -wxColour *wxBLUE; -wxColour *wxGREEN; -wxColour *wxCYAN; -wxColour *wxLIGHT_GREY; - -wxCursor *wxSTANDARD_CURSOR = NULL; -wxCursor *wxHOURGLASS_CURSOR = NULL; -wxCursor *wxCROSS_CURSOR = NULL; - -// 'Null' objects -wxAcceleratorTable wxNullAcceleratorTable; -wxBitmap wxNullBitmap; -wxIcon wxNullIcon; -wxCursor wxNullCursor; -wxPen wxNullPen; -wxBrush wxNullBrush; -wxPalette wxNullPalette; -wxFont wxNullFont; -wxColour wxNullColour; - -// Default window names -const char *wxButtonNameStr = "button"; -const char *wxCanvasNameStr = "canvas"; -const char *wxCheckBoxNameStr = "check"; -const char *wxChoiceNameStr = "choice"; -const char *wxComboBoxNameStr = "comboBox"; -const char *wxDialogNameStr = "dialog"; -const char *wxFrameNameStr = "frame"; -const char *wxGaugeNameStr = "gauge"; -const char *wxStaticBoxNameStr = "groupBox"; -const char *wxListBoxNameStr = "listBox"; -const char *wxStaticTextNameStr = "message"; -const char *wxStaticBitmapNameStr = "message"; -const char *wxMultiTextNameStr = "multitext"; -const char *wxPanelNameStr = "panel"; -const char *wxRadioBoxNameStr = "radioBox"; -const char *wxRadioButtonNameStr = "radioButton"; -const char *wxBitmapRadioButtonNameStr = "radioButton"; -const char *wxScrollBarNameStr = "scrollBar"; -const char *wxSliderNameStr = "slider"; -const char *wxStaticNameStr = "static"; -const char *wxTextCtrlWindowNameStr = "textWindow"; -const char *wxTextCtrlNameStr = "text"; -const char *wxVirtListBoxNameStr = "virtListBox"; -const char *wxButtonBarNameStr = "buttonbar"; -const char *wxEnhDialogNameStr = "Shell"; -const char *wxToolBarNameStr = "toolbar"; -const char *wxStatusLineNameStr = "status_line"; -const char *wxEmptyString = ""; -const char *wxGetTextFromUserPromptStr = "Input Text"; -const char *wxMessageBoxCaptionStr = "Message"; -const char *wxFileSelectorPromptStr = "Select a file"; -const char *wxFileSelectorDefaultWildcardStr = "*.*"; -const char *wxInternalErrorStr = "wxWindows Internal Error"; -const char *wxFatalErrorStr = "wxWindows Fatal Error"; - -// See wx/utils.h -const char *wxFloatToStringStr = "%.2f"; -const char *wxDoubleToStringStr = "%.2f"; - -#if wxUSE_SHARED_LIBRARY -///// Event tables (also must be in one, statically-linked file for shared libraries) - -// This is the base, wxEvtHandler 'bootstrap' code which is expanded manually here -const wxEventTable *wxEvtHandler::GetEventTable() const { return &wxEvtHandler::sm_eventTable; } - -const wxEventTable wxEvtHandler::sm_eventTable = - { NULL, &wxEvtHandler::sm_eventTableEntries[0] }; - -const wxEventTableEntry wxEvtHandler::sm_eventTableEntries[] = { { 0, 0, 0, NULL } }; -#endif - -const wxSize wxDefaultSize(-1, -1); -const wxPoint wxDefaultPosition(-1, -1); diff --git a/src/stubs/dc.cpp b/src/stubs/dc.cpp deleted file mode 100644 index 2c1c613595..0000000000 --- a/src/stubs/dc.cpp +++ /dev/null @@ -1,385 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dc.cpp -// Purpose: wxDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dc.h" -#endif - -#include "wx/dc.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxDC, wxObject) -#endif - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define mm2inches 0.0393700787402 -#define inches2mm 25.4 -#define mm2twips 56.6929133859 -#define twips2mm 0.0176388888889 -#define mm2pt 2.83464566929 -#define pt2mm 0.352777777778 - -//----------------------------------------------------------------------------- -// wxDC -//----------------------------------------------------------------------------- - -wxDC::wxDC(void) -{ - m_ok = FALSE; - m_optimize = FALSE; - m_autoSetting = FALSE; - m_colour = TRUE; - m_clipping = FALSE; - - m_mm_to_pix_x = 1.0; - m_mm_to_pix_y = 1.0; - - m_logicalOriginX = 0; - m_logicalOriginY = 0; - m_deviceOriginX = 0; - m_deviceOriginY = 0; - m_internalDeviceOriginX = 0; - m_internalDeviceOriginY = 0; - m_externalDeviceOriginX = 0; - m_externalDeviceOriginY = 0; - - m_logicalScaleX = 1.0; - m_logicalScaleY = 1.0; - m_userScaleX = 1.0; - m_userScaleY = 1.0; - m_scaleX = 1.0; - m_scaleY = 1.0; - - m_mappingMode = wxMM_TEXT; - m_needComputeScaleX = FALSE; - m_needComputeScaleY = FALSE; - - m_signX = 1; // default x-axis left to right - m_signY = 1; // default y-axis top down - - m_maxX = m_maxY = -100000; - m_minY = m_minY = 100000; - - m_logicalFunction = wxCOPY; -// m_textAlignment = wxALIGN_TOP_LEFT; - m_backgroundMode = wxTRANSPARENT; - - m_textForegroundColour = *wxBLACK; - m_textBackgroundColour = *wxWHITE; - m_pen = *wxBLACK_PEN; - m_font = *wxNORMAL_FONT; - m_brush = *wxTRANSPARENT_BRUSH; - m_backgroundBrush = *wxWHITE_BRUSH; - -// m_palette = wxAPP_COLOURMAP; -}; - -wxDC::~wxDC(void) -{ -}; - -void wxDC::DrawIcon( const wxIcon &WXUNUSED(icon), long WXUNUSED(x), long WXUNUSED(y), bool WXUNUSED(useMask) ) -{ -}; - -void wxDC::DrawPoint( wxPoint& point ) -{ - DrawPoint( point.x, point.y ); -}; - -void wxDC::DrawPolygon( wxList *list, long xoffset, long yoffset, int fillStyle ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawPolygon( n, points, xoffset, yoffset, fillStyle ); - delete[] points; -}; - -void wxDC::DrawLines( wxList *list, long xoffset, long yoffset ) -{ - int n = list->Number(); - wxPoint *points = new wxPoint[n]; - - int i = 0; - for( wxNode *node = list->First(); node; node = node->Next() ) - { - wxPoint *point = (wxPoint *)node->Data(); - points[i].x = point->x; - points[i++].y = point->y; - }; - DrawLines( n, points, xoffset, yoffset ); - delete []points; -}; - -void wxDC::DrawSpline( long x1, long y1, long x2, long y2, long x3, long y3 ) -{ - wxList list; - list.Append( (wxObject*)new wxPoint(x1, y1) ); - list.Append( (wxObject*)new wxPoint(x2, y2) ); - list.Append( (wxObject*)new wxPoint(x3, y3) ); - DrawSpline(&list); - wxNode *node = list.First(); - while (node) - { - wxPoint *p = (wxPoint*)node->Data(); - delete p; - node = node->Next(); - }; -}; - -void wxDC::DrawSpline( int n, wxPoint points[] ) -{ - wxList list; - for (int i = 0; i < n; i++) list.Append( (wxObject*)&points[i] ); - DrawSpline( &list ); -}; - -void wxDC::SetClippingRegion( long x, long y, long width, long height ) -{ - m_clipping = TRUE; - m_clipX1 = x; - m_clipY1 = y; - m_clipX2 = x + width; - m_clipY2 = y + height; -}; - -void wxDC::DestroyClippingRegion(void) -{ - m_clipping = FALSE; -}; - -void wxDC::GetClippingBox( long *x, long *y, long *width, long *height ) const -{ - if (m_clipping) - { - if (x) *x = m_clipX1; - if (y) *y = m_clipY1; - if (width) *width = (m_clipX2 - m_clipX1); - if (height) *height = (m_clipY2 - m_clipY1); - } - else - *x = *y = *width = *height = 0; -}; - -void wxDC::GetSize( int* width, int* height ) const -{ - *width = m_maxX-m_minX; - *height = m_maxY-m_minY; -}; - -void wxDC::GetSizeMM( long* width, long* height ) const -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - *width = long( double(w) / (m_scaleX*m_mm_to_pix_x) ); - *height = long( double(h) / (m_scaleY*m_mm_to_pix_y) ); -}; - -void wxDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - m_textForegroundColour = col; -}; - -void wxDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - m_textBackgroundColour = col; -}; - -void wxDC::SetMapMode( int mode ) -{ - switch (mode) - { - case wxMM_TWIPS: - SetLogicalScale( twips2mm*m_mm_to_pix_x, twips2mm*m_mm_to_pix_y ); - break; - case wxMM_POINTS: - SetLogicalScale( pt2mm*m_mm_to_pix_x, pt2mm*m_mm_to_pix_y ); - break; - case wxMM_METRIC: - SetLogicalScale( m_mm_to_pix_x, m_mm_to_pix_y ); - break; - case wxMM_LOMETRIC: - SetLogicalScale( m_mm_to_pix_x/10.0, m_mm_to_pix_y/10.0 ); - break; - default: - case wxMM_TEXT: - SetLogicalScale( 1.0, 1.0 ); - break; - }; - if (mode != wxMM_TEXT) - { - m_needComputeScaleX = TRUE; - m_needComputeScaleY = TRUE; - }; -}; - -void wxDC::SetUserScale( double x, double y ) -{ - // allow negative ? -> no - m_userScaleX = x; - m_userScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetUserScale( double *x, double *y ) -{ - if (x) *x = m_userScaleX; - if (y) *y = m_userScaleY; -}; - -void wxDC::SetLogicalScale( double x, double y ) -{ - // allow negative ? - m_logicalScaleX = x; - m_logicalScaleY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalScale( double *x, double *y ) -{ - if (x) *x = m_logicalScaleX; - if (y) *y = m_logicalScaleY; -}; - -void wxDC::SetLogicalOrigin( long x, long y ) -{ - m_logicalOriginX = x * m_signX; // is this still correct ? - m_logicalOriginY = y * m_signY; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetLogicalOrigin( long *x, long *y ) -{ - if (x) *x = m_logicalOriginX; - if (y) *y = m_logicalOriginY; -}; - -void wxDC::SetDeviceOrigin( long x, long y ) -{ - m_externalDeviceOriginX = x; - m_externalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetDeviceOrigin( long *x, long *y ) -{ -// if (x) *x = m_externalDeviceOriginX; -// if (y) *y = m_externalDeviceOriginY; - if (x) *x = m_deviceOriginX; - if (y) *y = m_deviceOriginY; -}; - -void wxDC::SetInternalDeviceOrigin( long x, long y ) -{ - m_internalDeviceOriginX = x; - m_internalDeviceOriginY = y; - ComputeScaleAndOrigin(); -}; - -void wxDC::GetInternalDeviceOrigin( long *x, long *y ) -{ - if (x) *x = m_internalDeviceOriginX; - if (y) *y = m_internalDeviceOriginY; -}; - -void wxDC::SetAxisOrientation( bool xLeftRight, bool yBottomUp ) -{ - m_signX = (xLeftRight ? 1 : -1); - m_signY = (yBottomUp ? -1 : 1); - ComputeScaleAndOrigin(); -}; - -long wxDC::DeviceToLogicalX(long x) const -{ - return XDEV2LOG(x); -}; - -long wxDC::DeviceToLogicalY(long y) const -{ - return YDEV2LOG(y); -}; - -long wxDC::DeviceToLogicalXRel(long x) const -{ - return XDEV2LOGREL(x); -}; - -long wxDC::DeviceToLogicalYRel(long y) const -{ - return YDEV2LOGREL(y); -}; - -long wxDC::LogicalToDeviceX(long x) const -{ - return XLOG2DEV(x); -}; - -long wxDC::LogicalToDeviceY(long y) const -{ - return YLOG2DEV(y); -}; - -long wxDC::LogicalToDeviceXRel(long x) const -{ - return XLOG2DEVREL(x); -}; - -long wxDC::LogicalToDeviceYRel(long y) const -{ - return YLOG2DEVREL(y); -}; - -void wxDC::CalcBoundingBox( long x, long y ) -{ - if (x < m_minX) m_minX = x; - if (y < m_minY) m_minY = y; - if (x > m_maxX) m_maxX = x; - if (y > m_maxY) m_maxY = y; -}; - -void wxDC::ComputeScaleAndOrigin(void) -{ - // CMB: copy scale to see if it changes - double origScaleX = m_scaleX; - double origScaleY = m_scaleY; - - m_scaleX = m_logicalScaleX * m_userScaleX; - m_scaleY = m_logicalScaleY * m_userScaleY; - - m_deviceOriginX = m_internalDeviceOriginX + m_externalDeviceOriginX; - m_deviceOriginY = m_internalDeviceOriginY + m_externalDeviceOriginY; - - // CMB: if scale has changed call SetPen to recalulate the line width - if (m_scaleX != origScaleX || m_scaleY != origScaleY) - { - // this is a bit artificial, but we need to force wxDC to think - // the pen has changed - wxPen* pen = & GetPen(); - wxPen tempPen; - m_pen = tempPen; - SetPen(* pen); - } -}; - diff --git a/src/stubs/dcclient.cpp b/src/stubs/dcclient.cpp deleted file mode 100644 index 925d9609ee..0000000000 --- a/src/stubs/dcclient.cpp +++ /dev/null @@ -1,635 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcclient.cpp -// Purpose: wxClientDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcclient.h" -#endif - -#include "wx/dcclient.h" -#include "wx/dcmemory.h" -#include "wx/region.h" -#include - -//----------------------------------------------------------------------------- -// constants -//----------------------------------------------------------------------------- - -#define RAD2DEG 57.2957795131 - -//----------------------------------------------------------------------------- -// wxPaintDC -//----------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC) -IMPLEMENT_DYNAMIC_CLASS(wxClientDC, wxWindowDC) -IMPLEMENT_DYNAMIC_CLASS(wxPaintDC, wxWindowDC) -#endif - -/* - * wxWindowDC - */ - -wxWindowDC::wxWindowDC(void) -{ -}; - -wxWindowDC::wxWindowDC( wxWindow *window ) -{ -}; - -wxWindowDC::~wxWindowDC(void) -{ -}; - -void wxWindowDC::FloodFill( long WXUNUSED(x1), long WXUNUSED(y1), - const wxColour& WXUNUSED(col), int WXUNUSED(style) ) -{ -}; - -bool wxWindowDC::GetPixel( long WXUNUSED(x1), long WXUNUSED(y1), wxColour *WXUNUSED(col) ) const -{ - return FALSE; -}; - -void wxWindowDC::DrawLine( long x1, long y1, long x2, long y2 ) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::CrossHair( long x, long y ) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::DrawArc( long x1, long y1, long x2, long y2, long xc, long yc ) -{ - if (!Ok()) return; - - long xx1 = XLOG2DEV(x1); - long yy1 = YLOG2DEV(y1); - long xx2 = XLOG2DEV(x2); - long yy2 = YLOG2DEV(y2); - long xxc = XLOG2DEV((long)xc); - long yyc = YLOG2DEV((long)yc); - double dx = xx1 - xxc; - double dy = yy1 - yyc; - double radius = sqrt(dx*dx+dy*dy); - long r = (long)radius; - double radius1, radius2; - - if (xx1 == xx2 && yy1 == yy2) - { - radius1 = 0.0; - radius2 = 360.0; - } - else - if (radius == 0.0) - { - radius1 = radius2 = 0.0; - } - else - { - radius1 = (xx1 - xxc == 0) ? - (yy1 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy1-yyc), double(xx1-xxc)) * RAD2DEG; - radius2 = (xx2 - xxc == 0) ? - (yy2 - yyc < 0) ? 90.0 : -90.0 : - -atan2(double(yy2-yyc), double(xx2-xxc)) * RAD2DEG; - }; - long alpha1 = long(radius1 * 64.0); - long alpha2 = long((radius2 - radius1) * 64.0); - while (alpha2 <= 0) alpha2 += 360*64; - while (alpha1 > 360*64) alpha1 -= 360*64; - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; - -}; - -void wxWindowDC::DrawEllipticArc( long x, long y, long width, long height, double sa, double ea ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - long start = long(sa * 64.0); - long end = long(ea * 64.0); - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawPoint( long x, long y ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawLines( int n, wxPoint points[], long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - for (int i = 0; i < n-1; i++) - { - long x1 = XLOG2DEV(points[i].x + xoffset); - long x2 = XLOG2DEV(points[i+1].x + xoffset); - long y1 = YLOG2DEV(points[i].y + yoffset); // oh, what a waste - long y2 = YLOG2DEV(points[i+1].y + yoffset); - }; -}; - -void wxWindowDC::DrawLines( wxList *points, long xoffset, long yoffset ) -{ - if (!Ok()) return; - - if (m_pen.GetStyle() == wxTRANSPARENT) return; - - wxNode *node = points->First(); - while (node->Next()) - { - wxPoint *point = (wxPoint*)node->Data(); - wxPoint *npoint = (wxPoint*)node->Next()->Data(); - long x1 = XLOG2DEV(point->x + xoffset); - long x2 = XLOG2DEV(npoint->x + xoffset); - long y1 = YLOG2DEV(point->y + yoffset); // and again... - long y2 = YLOG2DEV(npoint->y + yoffset); - node = node->Next(); - }; -}; - -void wxWindowDC::DrawPolygon( int WXUNUSED(n), wxPoint WXUNUSED(points)[], - long WXUNUSED(xoffset), long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxWindowDC::DrawPolygon( wxList *WXUNUSED(lines), long WXUNUSED(xoffset), - long WXUNUSED(yoffset), int WXUNUSED(fillStyle) ) -{ - if (!Ok()) return; -}; - -void wxWindowDC::DrawRectangle( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -void wxWindowDC::DrawRoundedRectangle( long x, long y, long width, long height, double radius ) -{ - if (!Ok()) return; - - if (radius < 0.0) radius = - radius * ((width < height) ? width : height); - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - long rr = XLOG2DEVREL((long)radius); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - // CMB: if radius is zero use DrawRectangle() instead to avoid - // X drawing errors with small radii - if (rr == 0) - { - DrawRectangle( x, y, width, height ); - return; - } - - // CMB: draw nothing if transformed w or h is 0 - if (ww == 0 || hh == 0) return; - - // CMB: adjust size if outline is drawn otherwise the result is - // 1 pixel too wide and high - if (m_pen.GetStyle() != wxTRANSPARENT) - { - ww--; - hh--; - } - - // CMB: ensure dd is not larger than rectangle otherwise we - // get an hour glass shape - long dd = 2 * rr; - if (dd > ww) dd = ww; - if (dd > hh) dd = hh; - rr = dd / 2; - - if (m_brush.GetStyle() != wxTRANSPARENT) - { - }; - - if (m_pen.GetStyle() != wxTRANSPARENT) - { - }; -}; - -void wxWindowDC::DrawEllipse( long x, long y, long width, long height ) -{ - if (!Ok()) return; - - long xx = XLOG2DEV(x); - long yy = YLOG2DEV(y); - long ww = m_signX * XLOG2DEVREL(width); - long hh = m_signY * YLOG2DEVREL(height); - - // CMB: handle -ve width and/or height - if (ww < 0) { ww = -ww; xx = xx - ww; } - if (hh < 0) { hh = -hh; yy = yy - hh; } - - if (m_brush.GetStyle() != wxTRANSPARENT) {}; - - if (m_pen.GetStyle() != wxTRANSPARENT) {}; -}; - -bool wxWindowDC::CanDrawBitmap(void) const -{ - return TRUE; -}; - -void wxWindowDC::DrawIcon( const wxIcon &icon, long x, long y, bool useMask ) -{ - if (!Ok()) return; - - if (!icon.Ok()) return; - - int xx = XLOG2DEV(x); - int yy = YLOG2DEV(y); - -}; - -bool wxWindowDC::Blit( long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, int WXUNUSED(logical_func), bool WXUNUSED(useMask) ) -{ - if (!Ok()) return FALSE; - - // CMB 20/5/98: add blitting of bitmaps - if (source->IsKindOf(CLASSINFO(wxMemoryDC))) - { - wxMemoryDC* srcDC = (wxMemoryDC*)source; - /* - GdkBitmap* bmap = srcDC->m_selected.GetBitmap(); - if (bmap) - { - gdk_draw_bitmap ( - m_window, - m_textGC, - bmap, - source->DeviceToLogicalX(xsrc), source->DeviceToLogicalY(ysrc), - XLOG2DEV(xdest), YLOG2DEV(ydest), - source->DeviceToLogicalXRel(width), source->DeviceToLogicalYRel(height) - ); - return TRUE; - } - */ - } - - return TRUE; -}; - -void wxWindowDC::DrawText( const wxString &text, long x, long y, bool -WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - - - -bool wxWindowDC::CanGetTextExtent(void) const -{ - return TRUE; -}; - -void wxWindowDC::GetTextExtent( const wxString &string, long *width, long *height, - long *WXUNUSED(descent), long *WXUNUSED(externalLeading), - wxFont *WXUNUSED(theFont), bool WXUNUSED(use16) ) -{ - if (!Ok()) return; - -}; - -long wxWindowDC::GetCharWidth(void) -{ - if (!Ok()) return 0; - return 0; -}; - -long wxWindowDC::GetCharHeight(void) -{ - if (!Ok()) return 0; - return 0; -}; - -void wxWindowDC::Clear(void) -{ - if (!Ok()) return; - -}; - -void wxWindowDC::SetFont( const wxFont &font ) -{ - if (!Ok()) return; - - m_font = font; -}; - -void wxWindowDC::SetPen( const wxPen &pen ) -{ - if (!Ok()) return; - - if (m_pen == pen) return; - - m_pen = pen; - - if (!m_pen.Ok()) return; -}; - -void wxWindowDC::SetBrush( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_brush == brush) return; - - m_brush = brush; - - if (!m_brush.Ok()) return; - -}; - -void wxWindowDC::SetBackground( const wxBrush &brush ) -{ - if (!Ok()) return; - - if (m_backgroundBrush == brush) return; - - m_backgroundBrush = brush; - - if (!m_backgroundBrush.Ok()) return; - -}; - -void wxWindowDC::SetLogicalFunction( int function ) -{ - if (m_logicalFunction == function) return; -}; - -void wxWindowDC::SetTextForeground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textForegroundColour == col) return; - - m_textForegroundColour = col; - if (!m_textForegroundColour.Ok()) return; -}; - -void wxWindowDC::SetTextBackground( const wxColour &col ) -{ - if (!Ok()) return; - - if (m_textBackgroundColour == col) return; - - m_textBackgroundColour = col; - if (!m_textBackgroundColour.Ok()) return; -}; - -void wxWindowDC::SetBackgroundMode( int mode ) -{ - m_backgroundMode = mode; - - if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT) - { - } -}; - -void wxWindowDC::SetPalette( const wxPalette& WXUNUSED(palette) ) -{ -}; - -void wxWindowDC::SetClippingRegion( long x, long y, long width, long height ) -{ - wxDC::SetClippingRegion( x, y, width, height ); - - // TODO - -}; - -void wxWindowDC::SetClippingRegion( const wxRegion& region ) -{ - wxRect box = region.GetBox(); - - wxDC::SetClippingRegion( box.x, box.y, box.width, box.height ); - - // TODO -} - -void wxWindowDC::DestroyClippingRegion(void) -{ - wxDC::DestroyClippingRegion(); - -}; - -// ----------------------------------- spline code ---------------------------------------- - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, - double a3, double b3, double a4, double b4); -void wx_clear_stack(void); -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, double *x3, - double *y3, double *x4, double *y4); -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, - double x4, double y4); -static bool wx_spline_add_point(double x, double y); -static void wx_spline_draw_point_array(wxDC *dc); - -wxList wx_spline_point_list; - -#define half(z1, z2) ((z1+z2)/2.0) -#define THRESHOLD 5 - -/* iterative version */ - -void wx_quadratic_spline(double a1, double b1, double a2, double b2, double a3, double b3, double a4, - double b4) -{ - register double xmid, ymid; - double x1, y1, x2, y2, x3, y3, x4, y4; - - wx_clear_stack(); - wx_spline_push(a1, b1, a2, b2, a3, b3, a4, b4); - - while (wx_spline_pop(&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4)) { - xmid = (double)half(x2, x3); - ymid = (double)half(y2, y3); - if (fabs(x1 - xmid) < THRESHOLD && fabs(y1 - ymid) < THRESHOLD && - fabs(xmid - x4) < THRESHOLD && fabs(ymid - y4) < THRESHOLD) { - wx_spline_add_point( x1, y1 ); - wx_spline_add_point( xmid, ymid ); - } else { - wx_spline_push(xmid, ymid, (double)half(xmid, x3), (double)half(ymid, y3), - (double)half(x3, x4), (double)half(y3, y4), x4, y4); - wx_spline_push(x1, y1, (double)half(x1, x2), (double)half(y1, y2), - (double)half(x2, xmid), (double)half(y2, ymid), xmid, ymid); - } - } -} - -/* utilities used by spline drawing routines */ - -typedef struct wx_spline_stack_struct { - double x1, y1, x2, y2, x3, y3, x4, y4; -} Stack; - -#define SPLINE_STACK_DEPTH 20 -static Stack wx_spline_stack[SPLINE_STACK_DEPTH]; -static Stack *wx_stack_top; -static int wx_stack_count; - -void wx_clear_stack(void) -{ - wx_stack_top = wx_spline_stack; - wx_stack_count = 0; -} - -void wx_spline_push(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4) -{ - wx_stack_top->x1 = x1; - wx_stack_top->y1 = y1; - wx_stack_top->x2 = x2; - wx_stack_top->y2 = y2; - wx_stack_top->x3 = x3; - wx_stack_top->y3 = y3; - wx_stack_top->x4 = x4; - wx_stack_top->y4 = y4; - wx_stack_top++; - wx_stack_count++; -} - -int wx_spline_pop(double *x1, double *y1, double *x2, double *y2, - double *x3, double *y3, double *x4, double *y4) -{ - if (wx_stack_count == 0) - return (0); - wx_stack_top--; - wx_stack_count--; - *x1 = wx_stack_top->x1; - *y1 = wx_stack_top->y1; - *x2 = wx_stack_top->x2; - *y2 = wx_stack_top->y2; - *x3 = wx_stack_top->x3; - *y3 = wx_stack_top->y3; - *x4 = wx_stack_top->x4; - *y4 = wx_stack_top->y4; - return (1); -} - -static bool wx_spline_add_point(double x, double y) -{ - wxPoint *point = new wxPoint ; - point->x = (int) x; - point->y = (int) y; - wx_spline_point_list.Append((wxObject*)point); - return TRUE; -} - -static void wx_spline_draw_point_array(wxDC *dc) -{ - dc->DrawLines(&wx_spline_point_list, 0, 0 ); - wxNode *node = wx_spline_point_list.First(); - while (node) - { - wxPoint *point = (wxPoint *)node->Data(); - delete point; - delete node; - node = wx_spline_point_list.First(); - } -} - -void wxWindowDC::DrawSpline( wxList *points ) -{ - wxPoint *p; - double cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4; - double x1, y1, x2, y2; - - wxNode *node = points->First(); - p = (wxPoint *)node->Data(); - - x1 = p->x; - y1 = p->y; - - node = node->Next(); - p = (wxPoint *)node->Data(); - - x2 = p->x; - y2 = p->y; - cx1 = (double)((x1 + x2) / 2); - cy1 = (double)((y1 + y2) / 2); - cx2 = (double)((cx1 + x2) / 2); - cy2 = (double)((cy1 + y2) / 2); - - wx_spline_add_point(x1, y1); - - while ((node = node->Next()) != NULL) - { - p = (wxPoint *)node->Data(); - x1 = x2; - y1 = y2; - x2 = p->x; - y2 = p->y; - cx4 = (double)(x1 + x2) / 2; - cy4 = (double)(y1 + y2) / 2; - cx3 = (double)(x1 + cx4) / 2; - cy3 = (double)(y1 + cy4) / 2; - - wx_quadratic_spline(cx1, cy1, cx2, cy2, cx3, cy3, cx4, cy4); - - cx1 = cx4; - cy1 = cy4; - cx2 = (double)(cx1 + x2) / 2; - cy2 = (double)(cy1 + y2) / 2; - } - - wx_spline_add_point( cx1, cy1 ); - wx_spline_add_point( x2, y2 ); - - wx_spline_draw_point_array( this ); -}; diff --git a/src/stubs/dcmemory.cpp b/src/stubs/dcmemory.cpp deleted file mode 100644 index 7cbd330821..0000000000 --- a/src/stubs/dcmemory.cpp +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcmemory.cpp -// Purpose: wxMemoryDC class -// Author: AUTHOR -// Modified by: -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcmemory.h" -#endif - -#include "wx/dcmemory.h" - -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxMemoryDC,wxPaintDC) - -wxMemoryDC::wxMemoryDC(void) -{ - m_ok = FALSE; -}; - -wxMemoryDC::wxMemoryDC( wxDC *WXUNUSED(dc) ) -{ - m_ok = FALSE; -}; - -wxMemoryDC::~wxMemoryDC(void) -{ -}; - -void wxMemoryDC::SelectObject( const wxBitmap& bitmap ) -{ - m_selected = bitmap; - if (m_selected.Ok()) - { - } - else - { - m_ok = FALSE; - }; -}; - -void wxMemoryDC::GetSize( int *width, int *height ) const -{ - if (m_selected.Ok()) - { - if (width) (*width) = m_selected.GetWidth(); - if (height) (*height) = m_selected.GetHeight(); - } - else - { - if (width) (*width) = 0; - if (height) (*height) = 0; - }; -}; - - diff --git a/src/stubs/dcscreen.cpp b/src/stubs/dcscreen.cpp deleted file mode 100644 index e03bbac0c8..0000000000 --- a/src/stubs/dcscreen.cpp +++ /dev/null @@ -1,32 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dcscreen.cpp -// Purpose: wxScreenDC class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dcscreen.h" -#endif - -#include "wx/dcscreen.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScreenDC, wxWindowDC) -#endif - -// Create a DC representing the whole screen -wxScreenDC::wxScreenDC() -{ - // TODO -} - -wxScreenDC::~wxScreenDC() -{ - // TODO -} - diff --git a/src/stubs/dialog.cpp b/src/stubs/dialog.cpp deleted file mode 100644 index bf3cae5e35..0000000000 --- a/src/stubs/dialog.cpp +++ /dev/null @@ -1,286 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog.cpp -// Purpose: wxDialog class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialog.h" -#endif - -#include "wx/dialog.h" -#include "wx/utils.h" -#include "wx/frame.h" -#include "wx/app.h" -#include "wx/settings.h" - -// Lists to keep track of windows, so we can disable/enable them -// for modal dialogs -wxList wxModalDialogs; -wxList wxModelessWindows; // Frames and modeless dialogs -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxDialog, wxPanel) - -BEGIN_EVENT_TABLE(wxDialog, wxPanel) - EVT_BUTTON(wxID_OK, wxDialog::OnOK) - EVT_BUTTON(wxID_APPLY, wxDialog::OnApply) - EVT_BUTTON(wxID_CANCEL, wxDialog::OnCancel) - EVT_CHAR_HOOK(wxDialog::OnCharHook) - EVT_SYS_COLOUR_CHANGED(wxDialog::OnSysColourChanged) - EVT_CLOSE(wxDialog::OnCloseWindow) -END_EVENT_TABLE() - -#endif - -wxDialog::wxDialog() -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); -} - -bool wxDialog::Create(wxWindow *parent, wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_windowStyle = style; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - SetName(name); - - if (!parent) - wxTopLevelWindows.Append(this); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create dialog - - return FALSE; -} - -void wxDialog::SetModal(bool flag) -{ - if ( flag ) - m_windowStyle |= wxDIALOG_MODAL ; - else - if ( m_windowStyle & wxDIALOG_MODAL ) - m_windowStyle -= wxDIALOG_MODAL ; - - wxModelessWindows.DeleteObject(this); - if (!flag) - wxModelessWindows.Append(this); -} - -wxDialog::~wxDialog() -{ - // TODO - wxTopLevelWindows.DeleteObject(this); - - if ( (GetWindowStyleFlag() & wxDIALOG_MODAL) != wxDIALOG_MODAL ) - wxModelessWindows.DeleteObject(this); - - // If this is the last top-level window, exit. - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO: exit - } - } -} - -// By default, pressing escape cancels the dialog -void wxDialog::OnCharHook(wxKeyEvent& event) -{ - if (event.m_keyCode == WXK_ESCAPE) - { - // Behaviour changed in 2.0: we'll send a Cancel message - // to the dialog instead of Close. - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); - - return; - } - // We didn't process this event. - event.Skip(); -} - -void wxDialog::Iconize(bool WXUNUSED(iconize)) -{ - // TODO -} - -bool wxDialog::IsIconized() const -{ - // TODO - return FALSE; -} - -void wxDialog::SetClientSize(int width, int height) -{ - // TODO -} - -void wxDialog::GetPosition(int *x, int *y) const -{ - // TODO -} - -bool wxDialog::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxDialog::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxDialog::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxDialog::Centre(int direction) -{ - int x_offset,y_offset ; - int display_width, display_height; - int width, height, x, y; - wxWindow *parent = GetParent(); - if ((direction & wxCENTER_FRAME) && parent) - { - parent->GetPosition(&x_offset,&y_offset) ; - parent->GetSize(&display_width,&display_height) ; - } - else - { - wxDisplaySize(&display_width, &display_height); - x_offset = 0 ; - y_offset = 0 ; - } - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x+x_offset, y+y_offset, width, height); -} - -// Replacement for Show(TRUE) for modal dialogs - returns return code -int wxDialog::ShowModal() -{ - m_windowStyle |= wxDIALOG_MODAL; - // TODO: modal showing - Show(TRUE); - return GetReturnCode(); -} - -void wxDialog::EndModal(int retCode) -{ - SetReturnCode(retCode); - // TODO modal un-showing - Show(FALSE); -} - -// Standard buttons -void wxDialog::OnOK(wxCommandEvent& event) -{ - if ( Validate() && TransferDataFromWindow() ) - { - if ( IsModal() ) - EndModal(wxID_OK); - else - { - SetReturnCode(wxID_OK); - this->Show(FALSE); - } - } -} - -void wxDialog::OnApply(wxCommandEvent& event) -{ - if (Validate()) - TransferDataFromWindow(); - // TODO probably need to disable the Apply button until things change again -} - -void wxDialog::OnCancel(wxCommandEvent& event) -{ - if ( IsModal() ) - EndModal(wxID_CANCEL); - else - { - SetReturnCode(wxID_CANCEL); - this->Show(FALSE); - } -} - -void wxDialog::OnCloseWindow(wxCloseEvent& event) -{ - // We'll send a Cancel message by default, - // which may close the dialog. - // Check for looping if the Cancel event handler calls Close(). - - // Note that if a cancel button and handler aren't present in the dialog, - // nothing will happen when you close the dialog via the window manager, or - // via Close(). - // We wouldn't want to destroy the dialog by default, since the dialog may have been - // created on the stack. - // However, this does mean that calling dialog->Close() won't delete the dialog - // unless the handler for wxID_CANCEL does so. So use Destroy() if you want to be - // sure to destroy the dialog. - // The default OnCancel (above) simply ends a modal dialog, and hides a modeless dialog. - - static wxList closing; - - if ( closing.Member(this) ) - return; - - closing.Append(this); - - wxCommandEvent cancelEvent(wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL); - cancelEvent.SetEventObject( this ); - GetEventHandler()->ProcessEvent(cancelEvent); // This may close the dialog - - closing.DeleteObject(this); -} - -// Destroy the window (delayed, if a managed window) -bool wxDialog::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -void wxDialog::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - Refresh(); -} - -void wxDialog::Fit() -{ -} diff --git a/src/stubs/dirdlg.cpp b/src/stubs/dirdlg.cpp deleted file mode 100644 index 095621b978..0000000000 --- a/src/stubs/dirdlg.cpp +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dirdlg.cpp -// Purpose: wxDirDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dirdlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/dirdlg.h" - -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxDirDialog, wxDialog) -#endif - -wxDirDialog::wxDirDialog(wxWindow *parent, const wxString& message, - const wxString& defaultPath, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = defaultPath; -} - -int wxDirDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/stubs/dnd.cpp b/src/stubs/dnd.cpp deleted file mode 100644 index 32088eef0f..0000000000 --- a/src/stubs/dnd.cpp +++ /dev/null @@ -1,133 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: dnd.cpp -// Purpose: wxDropTarget, wxDropSource, wxDataObject implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dnd.h" -#endif - -#include "wx/dnd.h" -#include "wx/window.h" -#include "wx/app.h" -#include "wx/gdicmn.h" - -// ---------------------------------------------------------------------------- -// global -// ---------------------------------------------------------------------------- - -// ---------------------------------------------------------------------------- -// wxDropTarget -// ---------------------------------------------------------------------------- - -wxDropTarget::wxDropTarget() -{ -}; - -wxDropTarget::~wxDropTarget() -{ -}; - -// ---------------------------------------------------------------------------- -// wxTextDropTarget -// ---------------------------------------------------------------------------- - -bool wxTextDropTarget::OnDrop( long x, long y, const void *pData ) -{ - OnDropText( x, y, (const char*)pData ); - return TRUE; -}; - -bool wxTextDropTarget::OnDropText( long x, long y, const char *psz ) -{ - printf( "Got dropped text: %s.\n", psz ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -}; - -size_t wxTextDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxTextDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_TEXT; -} - -// ---------------------------------------------------------------------------- -// wxFileDropTarget -// ---------------------------------------------------------------------------- - -bool wxFileDropTarget::OnDropFiles( long x, long y, size_t nFiles, const char * const WXUNUSED(aszFiles)[] ) -{ - printf( "Got %d dropped files.\n", (int)nFiles ); - printf( "At x: %d, y: %d.\n", (int)x, (int)y ); - return TRUE; -} - -bool wxFileDropTarget::OnDrop(long x, long y, const void *WXUNUSED(pData) ) -{ - char *str = "/this/is/a/path.txt"; - - return OnDropFiles(x, y, 1, &str ); -} - -size_t wxFileDropTarget::GetFormatCount() const -{ - return 1; -} - -wxDataFormat wxFileDropTarget::GetFormat(size_t WXUNUSED(n)) const -{ - return wxDF_FILENAME; -} - -//------------------------------------------------------------------------- -// wxDropSource -//------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// drag request - -wxDropSource::wxDropSource( wxWindow *win ) -{ - // TODO - // m_window = win; - m_data = NULL; - - // m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - // m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -wxDropSource::wxDropSource( wxDataObject &data, wxWindow *win ) -{ - // TODO - // m_window = win; - m_data = &data; - - // m_defaultCursor = wxCursor( wxCURSOR_NO_ENTRY ); - // m_goaheadCursor = wxCursor( wxCURSOR_HAND ); -}; - -void wxDropSource::SetData( wxDataObject &data ) -{ - m_data = &data; -}; - -wxDropSource::~wxDropSource(void) -{ -}; - -wxDragResult wxDropSource::DoDragDrop( bool WXUNUSED(bAllowMove) ) -{ - // TODO - return wxDragError; -}; - diff --git a/src/stubs/filedlg.cpp b/src/stubs/filedlg.cpp deleted file mode 100644 index 8832598af4..0000000000 --- a/src/stubs/filedlg.cpp +++ /dev/null @@ -1,138 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: filedlg.cpp -// Purpose: wxFileDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "filedlg.h" -#endif - -#include "wx/defs.h" -#include "wx/utils.h" -#include "wx/dialog.h" -#include "wx/filedlg.h" -#include "wx/intl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxFileDialog, wxDialog) -#endif - -wxString wxFileSelector(const char *title, - const char *defaultDir, const char *defaultFileName, - const char *defaultExtension, const char *filter, int flags, - wxWindow *parent, int x, int y) -{ - // If there's a default extension specified but no filter, we create a suitable - // filter. - - wxString filter2(""); - if ( defaultExtension && !filter ) - filter2 = wxString("*.") + wxString(defaultExtension) ; - else if ( filter ) - filter2 = filter; - - wxString defaultDirString; - if (defaultDir) - defaultDirString = defaultDir; - else - defaultDirString = ""; - - wxString defaultFilenameString; - if (defaultFileName) - defaultFilenameString = defaultFileName; - else - defaultFilenameString = ""; - - wxFileDialog fileDialog(parent, title, defaultDirString, defaultFilenameString, filter2, flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - return fileDialog.GetPath(); - } - else - return wxEmptyString; -} - -wxString wxFileSelectorEx(const char *title, - const char *defaultDir, - const char *defaultFileName, - int* defaultFilterIndex, - const char *filter, - int flags, - wxWindow* parent, - int x, - int y) - -{ - wxFileDialog fileDialog(parent, title ? title : "", defaultDir ? defaultDir : "", - defaultFileName ? defaultFileName : "", filter ? filter : "", flags, wxPoint(x, y)); - - if ( fileDialog.ShowModal() == wxID_OK ) - { - *defaultFilterIndex = fileDialog.GetFilterIndex(); - return fileDialog.GetPath(); - } - else - return wxEmptyString; -} - -wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, - const wxString& defaultDir, const wxString& defaultFileName, const wxString& wildCard, - long style, const wxPoint& pos) -{ - m_message = message; - m_dialogStyle = style; - m_parent = parent; - m_path = ""; - m_fileName = defaultFileName; - m_dir = defaultDir; - m_wildCard = wildCard; - m_filterIndex = 1; -} - -int wxFileDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -// Generic file load/save dialog -static wxString wxDefaultFileSelector(bool load, const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - char *ext = (char *)extension; - - char prompt[50]; - wxString str; - if (load) - str = "Load %s file"; - else - str = "Save %s file"; - sprintf(prompt, wxGetTranslation(str), what); - - if (*ext == '.') ext++; - char wild[60]; - sprintf(wild, "*.%s", ext); - - return wxFileSelector (prompt, NULL, default_name, ext, wild, 0, parent); -} - -// Generic file load dialog -wxString wxLoadFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(TRUE, what, extension, default_name, parent); -} - - -// Generic file save dialog -wxString wxSaveFileSelector(const char *what, const char *extension, const char *default_name, wxWindow *parent) -{ - return wxDefaultFileSelector(FALSE, what, extension, default_name, parent); -} - - diff --git a/src/stubs/font.cpp b/src/stubs/font.cpp deleted file mode 100644 index 493a6a25ba..0000000000 --- a/src/stubs/font.cpp +++ /dev/null @@ -1,244 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: font.cpp -// Purpose: wxFont class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "font.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/font.h" -#include "wx/gdicmn.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) -#endif - -wxFontRefData::wxFontRefData() -{ - m_style = 0; - m_pointSize = 0; - m_family = 0; - m_style = 0; - m_weight = 0; - m_underlined = 0; - m_faceName = ""; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::wxFontRefData(const wxFontRefData& data) -{ - m_style = data.m_style; - m_pointSize = data.m_pointSize; - m_family = data.m_family; - m_style = data.m_style; - m_weight = data.m_weight; - m_underlined = data.m_underlined; - m_faceName = data.m_faceName; -/* TODO - m_hFont = 0; -*/ -} - -wxFontRefData::~wxFontRefData() -{ - // TODO: delete font data -} - -wxFont::wxFont() -{ - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -wxFont::wxFont(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - Create(pointSize, family, style, weight, underlined, faceName); - - if ( wxTheFontList ) - wxTheFontList->Append(this); -} - -bool wxFont::Create(int pointSize, int family, int style, int weight, bool underlined, const wxString& faceName) -{ - UnRef(); - m_refData = new wxFontRefData; - - M_FONTDATA->m_family = family; - M_FONTDATA->m_style = style; - M_FONTDATA->m_weight = weight; - M_FONTDATA->m_pointSize = pointSize; - M_FONTDATA->m_underlined = underlined; - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); - - return TRUE; -} - -wxFont::~wxFont() -{ - if (wxTheFontList) - wxTheFontList->DeleteObject(this); -} - -bool wxFont::RealizeResource() -{ - // TODO: create the font (if there is a native font object) - return FALSE; -} - -void wxFont::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxFontRefData(); - } - else - { - wxFontRefData* ref = new wxFontRefData(*(wxFontRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxFont::SetPointSize(int pointSize) -{ - Unshare(); - - M_FONTDATA->m_pointSize = pointSize; - - RealizeResource(); -} - -void wxFont::SetFamily(int family) -{ - Unshare(); - - M_FONTDATA->m_family = family; - - RealizeResource(); -} - -void wxFont::SetStyle(int style) -{ - Unshare(); - - M_FONTDATA->m_style = style; - - RealizeResource(); -} - -void wxFont::SetWeight(int weight) -{ - Unshare(); - - M_FONTDATA->m_weight = weight; - - RealizeResource(); -} - -void wxFont::SetFaceName(const wxString& faceName) -{ - Unshare(); - - M_FONTDATA->m_faceName = faceName; - - RealizeResource(); -} - -void wxFont::SetUnderlined(bool underlined) -{ - Unshare(); - - M_FONTDATA->m_underlined = underlined; - - RealizeResource(); -} - -wxString wxFont::GetFamilyString() const -{ - wxString fam(""); - switch (GetFamily()) - { - case wxDECORATIVE: - fam = "wxDECORATIVE"; - break; - case wxROMAN: - fam = "wxROMAN"; - break; - case wxSCRIPT: - fam = "wxSCRIPT"; - break; - case wxSWISS: - fam = "wxSWISS"; - break; - case wxMODERN: - fam = "wxMODERN"; - break; - case wxTELETYPE: - fam = "wxTELETYPE"; - break; - default: - fam = "wxDEFAULT"; - break; - } - return fam; -} - -/* New font system */ -wxString wxFont::GetFaceName() const -{ - wxString str(""); - if (M_FONTDATA) - str = M_FONTDATA->m_faceName ; - return str; -} - -wxString wxFont::GetStyleString() const -{ - wxString styl(""); - switch (GetStyle()) - { - case wxITALIC: - styl = "wxITALIC"; - break; - case wxSLANT: - styl = "wxSLANT"; - break; - default: - styl = "wxNORMAL"; - break; - } - return styl; -} - -wxString wxFont::GetWeightString() const -{ - wxString w(""); - switch (GetWeight()) - { - case wxBOLD: - w = "wxBOLD"; - break; - case wxLIGHT: - w = "wxLIGHT"; - break; - default: - w = "wxNORMAL"; - break; - } - return w; -} - diff --git a/src/stubs/fontdlg.cpp b/src/stubs/fontdlg.cpp deleted file mode 100644 index 60e8e9b987..0000000000 --- a/src/stubs/fontdlg.cpp +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: fontdlg.cpp -// Purpose: wxFontDialog class. NOTE: you can use the generic class -// if you wish, instead of implementing this. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fontdlg.h" -#endif - -#include "wx/stubs/fontdlg.h" -#include "wx/cmndata.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxFontDialog, wxDialog) -#endif - -/* - * wxFontDialog - */ - -wxFontDialog::wxFontDialog() -{ - m_dialogParent = NULL; -} - -wxFontDialog::wxFontDialog(wxWindow *parent, wxFontData *data) -{ - Create(parent, data); -} - -bool wxFontDialog::Create(wxWindow *parent, wxFontData *data) -{ - m_dialogParent = parent; - - if (data) - m_fontData = *data; - - // TODO: you may need to do dialog creation here, unless it's - // done in ShowModal. - return TRUE; -} - -int wxFontDialog::ShowModal() -{ - // TODO: show (maybe create) the dialog - return wxID_CANCEL; -} - diff --git a/src/stubs/frame.cpp b/src/stubs/frame.cpp deleted file mode 100644 index 0a15c650af..0000000000 --- a/src/stubs/frame.cpp +++ /dev/null @@ -1,562 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: frame.cpp -// Purpose: wxFrame -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frame.h" -#endif - -#include "wx/frame.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/menuitem.h" -#include "wx/menu.h" -#include "wx/dcclient.h" -#include "wx/dialog.h" -#include "wx/settings.h" -#include "wx/app.h" - -extern wxList wxModelessWindows; -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -BEGIN_EVENT_TABLE(wxFrame, wxWindow) - EVT_SIZE(wxFrame::OnSize) - EVT_ACTIVATE(wxFrame::OnActivate) - EVT_MENU_HIGHLIGHT_ALL(wxFrame::OnMenuHighlight) - EVT_SYS_COLOUR_CHANGED(wxFrame::OnSysColourChanged) - EVT_IDLE(wxFrame::OnIdle) - EVT_CLOSE(wxFrame::OnCloseWindow) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxWindow) -#endif - -#if wxUSE_NATIVE_STATUSBAR -bool wxFrame::m_useNativeStatusBar = TRUE; -#else -bool wxFrame::m_useNativeStatusBar = FALSE; -#endif - -wxFrame::wxFrame() -{ - m_frameToolBar = NULL ; - m_frameMenuBar = NULL; - m_frameStatusBar = NULL; - - m_windowParent = NULL; - m_iconized = FALSE; -} - -bool wxFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - m_frameMenuBar = NULL; - m_frameToolBar = NULL ; - m_frameStatusBar = NULL; - - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - wxModelessWindows.Append(this); - - // TODO: create frame. - - return FALSE; -} - -wxFrame::~wxFrame() -{ - wxTopLevelWindows.DeleteObject(this); - - if (m_frameStatusBar) - delete m_frameStatusBar; - if (m_frameMenuBar) - delete m_frameMenuBar; - -/* Check if it's the last top-level window */ - - if (wxTheApp && (wxTopLevelWindows.Number() == 0)) - { - wxTheApp->SetTopWindow(NULL); - - if (wxTheApp->GetExitOnFrameDelete()) - { - // TODO signal to the app that we're going to close - } - } - - wxModelessWindows.DeleteObject(this); -} - -// Get size *available for subwindows* i.e. excluding menu bar, toolbar etc. -void wxFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxFrame::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxFrame::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -bool wxFrame::Show(bool show) -{ - // TODO - return FALSE; -} - -void wxFrame::Iconize(bool iconize) -{ - // TODO -} - -// Equivalent to maximize/restore in Windows -void wxFrame::Maximize(bool maximize) -{ - // TODO -} - -bool wxFrame::IsIconized() const -{ - // TODO - return FALSE; -} - -// Is the frame maximized? -bool wxFrame::IsMaximized(void) const -{ - // TODO - return FALSE; -} - -void wxFrame::SetTitle(const wxString& title) -{ - // TODO -} - -wxString wxFrame::GetTitle() const -{ - // TODO - return wxString(""); -} - -void wxFrame::SetIcon(const wxIcon& icon) -{ - m_icon = icon; - // TODO -} - -wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - wxStatusBar *statusBar = NULL; - - statusBar = new wxStatusBar(this, id, wxPoint(0, 0), wxSize(100, 20), - style, name); - - // Set the height according to the font and the border size - wxClientDC dc(statusBar); - dc.SetFont(statusBar->GetFont()); - - long x, y; - dc.GetTextExtent("X", &x, &y); - - int height = (int)( (y * 1.1) + 2* statusBar->GetBorderY()); - - statusBar->SetSize(-1, -1, 100, height); - - statusBar->SetFieldsCount(number); - return statusBar; -} - -wxStatusBar* wxFrame::CreateStatusBar(int number, long style, wxWindowID id, - const wxString& name) -{ - // Calling CreateStatusBar twice is an error. - wxCHECK_MSG( m_frameStatusBar == NULL, FALSE, - "recreating status bar in wxFrame" ); - - m_frameStatusBar = OnCreateStatusBar(number, style, id, - name); - if ( m_frameStatusBar ) - { - PositionStatusBar(); - return m_frameStatusBar; - } - else - return NULL; -} - -void wxFrame::SetStatusText(const wxString& text, int number) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set text for" ); - - m_frameStatusBar->SetStatusText(text, number); -} - -void wxFrame::SetStatusWidths(int n, const int widths_field[]) -{ - wxCHECK_RET( m_frameStatusBar != NULL, "no statusbar to set widths for" ); - - m_frameStatusBar->SetStatusWidths(n, widths_field); - PositionStatusBar(); -} - -void wxFrame::PositionStatusBar() -{ - int w, h; - GetClientSize(&w, &h); - int sw, sh; - m_frameStatusBar->GetSize(&sw, &sh); - - // Since we wish the status bar to be directly under the client area, - // we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS. - m_frameStatusBar->SetSize(0, h, w, sh); -} - -void wxFrame::SetMenuBar(wxMenuBar *menuBar) -{ - if (!menuBar) - { - m_frameMenuBar = NULL; - return; - } - - m_frameMenuBar = menuBar; - - // TODO -} - -void wxFrame::Fit() -{ - // Work out max. size - wxNode *node = GetChildren().First(); - int max_width = 0; - int max_height = 0; - while (node) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *win = (wxWindow *)node->Data(); - - if (!win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog))) - { - int width, height; - int x, y; - win->GetSize(&width, &height); - win->GetPosition(&x, &y); - - if ((x + width) > max_width) - max_width = x + width; - if ((y + height) > max_height) - max_height = y + height; - } - node = node->Next(); - } - SetClientSize(max_width, max_height); -} - -// Responds to colour changes, and passes event on to children. -void wxFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE)); - Refresh(); - - if ( m_frameStatusBar ) - { - wxSysColourChangedEvent event2; - event2.SetEventObject( m_frameStatusBar ); - m_frameStatusBar->ProcessEvent(event2); - } - - // Propagate the event to the non-top-level children - wxWindow::OnSysColourChanged(event); -} - -// Default resizing behaviour - if only ONE subwindow, -// resize to client rectangle size -void wxFrame::OnSize(wxSizeEvent& event) -{ - // if we're using constraints - do use them - #if wxUSE_CONSTRAINTS - if ( GetAutoLayout() ) { - Layout(); - return; - } - #endif - - // do we have _exactly_ one child? - wxWindow *child = NULL; - for ( wxNode *node = GetChildren().First(); node; node = node->Next() ) - { - wxWindow *win = (wxWindow *)node->Data(); - if ( !win->IsKindOf(CLASSINFO(wxFrame)) && - !win->IsKindOf(CLASSINFO(wxDialog)) && - (win != GetStatusBar()) && - (win != GetToolBar()) ) - { - if ( child ) - return; // it's our second subwindow - nothing to do - child = win; - } - } - - if ( child ) { - // we have exactly one child - set it's size to fill the whole frame - int clientW, clientH; - GetClientSize(&clientW, &clientH); - - int x = 0; - int y = 0; - - child->SetSize(x, y, clientW, clientH); - } -} - -// Default activation behaviour - set the focus for the first child -// subwindow found. -void wxFrame::OnActivate(wxActivateEvent& event) -{ - for(wxNode *node = GetChildren().First(); node; node = node->Next()) - { - // Find a child that's a subwindow, but not a dialog box. - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && - !child->IsKindOf(CLASSINFO(wxDialog))) - { - child->SetFocus(); - return; - } - } -} - -// The default implementation for the close window event. - -void wxFrame::OnCloseWindow(wxCloseEvent& event) -{ - this->Destroy(); -} - -// Destroy the window (delayed, if a managed window) -bool wxFrame::Destroy() -{ - if (!wxPendingDelete.Member(this)) - wxPendingDelete.Append(this); - return TRUE; -} - -// Default menu selection behaviour - display a help string -void wxFrame::OnMenuHighlight(wxMenuEvent& event) -{ - if (GetStatusBar()) - { - if (event.GetMenuId() == -1) - SetStatusText(""); - else - { - wxMenuBar *menuBar = GetMenuBar(); - if (menuBar) - { - wxString helpString(menuBar->GetHelpString(event.GetMenuId())); - if (helpString != "") - SetStatusText(helpString); - } - } - } -} - -wxMenuBar *wxFrame::GetMenuBar() const -{ - return m_frameMenuBar; -} - -void wxFrame::Centre(int direction) -{ - int display_width, display_height, width, height, x, y; - wxDisplaySize(&display_width, &display_height); - - GetSize(&width, &height); - GetPosition(&x, &y); - - if (direction & wxHORIZONTAL) - x = (int)((display_width - width)/2); - if (direction & wxVERTICAL) - y = (int)((display_height - height)/2); - - SetSize(x, y, width, height); -} - -// Call this to simulate a menu command -void wxFrame::Command(int id) -{ - ProcessCommand(id); -} - -void wxFrame::ProcessCommand(int id) -{ - wxCommandEvent commandEvent(wxEVENT_TYPE_MENU_COMMAND, id); - commandEvent.SetInt( id ); - commandEvent.SetEventObject( this ); - - wxMenuBar *bar = GetMenuBar() ; - if (!bar) - return; - -/* TODO: check the menu item if required - wxMenuItem *item = bar->FindItemForId(id) ; - if (item && item->IsCheckable()) - { - bar->Check(id,!bar->Checked(id)) ; - } -*/ - - wxEvtHandler* evtHandler = GetEventHandler(); - evtHandler->ProcessEvent(commandEvent); -} - -// Checks if there is a toolbar, and returns the first free client position -wxPoint wxFrame::GetClientAreaOrigin() const -{ - wxPoint pt(0, 0); - if (GetToolBar()) - { - int w, h; - GetToolBar()->GetSize(& w, & h); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - pt.x += w; - } - else - { - pt.y += h; - } - } - return pt; -} - -void wxFrame::ScreenToClient(int *x, int *y) const -{ - wxWindow::ScreenToClient(x, y); - - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt(GetClientAreaOrigin()); - *x -= pt.x; - *y -= pt.y; -} - -void wxFrame::ClientToScreen(int *x, int *y) const -{ - // We may be faking the client origin. - // So a window that's really at (0, 30) may appear - // (to wxWin apps) to be at (0, 0). - wxPoint pt1(GetClientAreaOrigin()); - *x += pt1.x; - *y += pt1.y; - - wxWindow::ClientToScreen(x, y); -} - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -void wxFrame::PositionToolBar() -{ - int cw, ch; - - // TODO: we actually need to use the low-level client size, before - // the toolbar/status bar were added. - // So DEFINITELY replace the line below with something appropriate. - - GetClientSize(& cw, &ch); - - if ( GetStatusBar() ) - { - int statusX, statusY; - GetStatusBar()->GetClientSize(&statusX, &statusY); - ch -= statusY; - } - - if (GetToolBar()) - { - int tw, th; - GetToolBar()->GetSize(& tw, & th); - - if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL) - { - // Use the 'real' position. wxSIZE_NO_ADJUSTMENTS - // means, pretend we don't have toolbar/status bar, so we - // have the original client size. - GetToolBar()->SetSize(0, 0, tw, ch, wxSIZE_NO_ADJUSTMENTS); - } - else - { - // Use the 'real' position - GetToolBar()->SetSize(0, 0, cw, th, wxSIZE_NO_ADJUSTMENTS); - } - } -} - diff --git a/src/stubs/gauge.cpp b/src/stubs/gauge.cpp deleted file mode 100644 index a85fbc498f..0000000000 --- a/src/stubs/gauge.cpp +++ /dev/null @@ -1,95 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gauge.cpp -// Purpose: wxGauge class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gauge.h" -#endif - -#include "wx/gauge.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxGauge, wxControl) -#endif - -bool wxGauge::Create(wxWindow *parent, wxWindowID id, - int range, - const wxPoint& pos, - const wxSize& size, - long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - m_rangeMax = range; - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - - // TODO - return FALSE; -} - -void wxGauge::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxGauge::SetShadowWidth(int w) -{ - // TODO optional -} - -void wxGauge::SetBezelFace(int w) -{ - // TODO optional -} - -void wxGauge::SetRange(int r) -{ - m_rangeMax = r; - // TODO -} - -void wxGauge::SetValue(int pos) -{ - m_gaugePos = pos; - // TODO -} - -int wxGauge::GetShadowWidth() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetBezelFace() const -{ - // TODO optional - return 0; -} - -int wxGauge::GetRange() const -{ - return m_rangeMax; -} - -int wxGauge::GetValue() const -{ - return m_gaugePos; -} - diff --git a/src/stubs/gdiobj.cpp b/src/stubs/gdiobj.cpp deleted file mode 100644 index 63697c8354..0000000000 --- a/src/stubs/gdiobj.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdiobj.cpp -// Purpose: wxGDIObject class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "gdiobj.h" -#endif - -#include "wx/gdiobj.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxGDIObject, wxObject) -#endif - -// TODO: Nothing to do, unless you want to. diff --git a/src/stubs/helpxxxx.cpp b/src/stubs/helpxxxx.cpp deleted file mode 100644 index 086762c646..0000000000 --- a/src/stubs/helpxxxx.cpp +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpxxxx.cpp -// Purpose: Help system: native implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "helpxxxx.h" -#endif - -#include "wx/stubs/helpxxxx.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxXXXXHelpController, wxHelpControllerBase) -#endif - -wxXXXXHelpController::wxXXXXHelpController() -{ - m_helpFile = ""; -} - -wxXXXXHelpController::~wxXXXXHelpController() -{ -} - -bool wxXXXXHelpController::Initialize(const wxString& filename) -{ - m_helpFile = filename; - // TODO any other inits - return TRUE; -} - -bool wxXXXXHelpController::LoadFile(const wxString& file) -{ - m_helpFile = file; - // TODO - return TRUE; -} - -bool wxXXXXHelpController::DisplayContents() -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplaySection(int section) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::DisplayBlock(long block) -{ - // TODO - return FALSE; -} - -bool wxXXXXHelpController::KeywordSearch(const wxString& k) -{ - if (m_helpFile == "") return FALSE; - - // TODO - return FALSE; -} - -// Can't close the help window explicitly in WinHelp -bool wxXXXXHelpController::Quit() -{ - // TODO - return FALSE; -} - -void wxXXXXHelpController::OnQuit() -{ -} - diff --git a/src/stubs/icon.cpp b/src/stubs/icon.cpp deleted file mode 100644 index 6deee7dbdc..0000000000 --- a/src/stubs/icon.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: icon.cpp -// Purpose: wxIcon class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "icon.h" -#endif - -#include "wx/icon.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxIcon, wxBitmap) -#endif - -/* - * Icons - */ - - -wxIconRefData::wxIconRefData() -{ - // TODO: init icon handle -} - -wxIconRefData::~wxIconRefData() -{ - // TODO: destroy icon handle -} - -wxIcon::wxIcon() -{ -} - -wxIcon::wxIcon(const char WXUNUSED(bits)[], int WXUNUSED(width), int WXUNUSED(height)) -{ -} - -wxIcon::wxIcon(const wxString& icon_file, long flags, - int desiredWidth, int desiredHeight) - -{ - LoadFile(icon_file, flags, desiredWidth, desiredHeight); -} - -wxIcon::~wxIcon() -{ -} - -bool wxIcon::LoadFile(const wxString& filename, long type, - int desiredWidth, int desiredHeight) -{ - UnRef(); - - m_refData = new wxIconRefData; - - wxBitmapHandler *handler = FindHandler(type); - - if ( handler ) - return handler->LoadFile(this, filename, type, desiredWidth, desiredHeight); - else - return FALSE; -} - diff --git a/src/stubs/imaglist.cpp b/src/stubs/imaglist.cpp deleted file mode 100644 index 4cb47b4e69..0000000000 --- a/src/stubs/imaglist.cpp +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: imaglist.cpp -// Purpose: wxImageList. You may wish to use the generic version. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "imaglist.h" -#endif - -#include "wx/stubs/imaglist.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxImageList, wxObject) -#endif - -wxImageList::wxImageList() -{ - // TODO: init image list handle, if any -} - -wxImageList::~wxImageList() -{ - // TODO: destroy image list handle, if any -} - - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -// Returns the number of images in the image list. -int wxImageList::GetImageCount() const -{ - // TODO - return 0; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Creates an image list -bool wxImageList::Create(int width, int height, bool mask, int initial) -{ - // TODO - return FALSE; -} - -// Adds a bitmap, and optionally a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -int wxImageList::Add(const wxBitmap& bitmap, const wxBitmap& mask) -{ - // TODO - return 0; -} - -// Adds a bitmap, using the specified colour to create the mask bitmap -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap'. -int wxImageList::Add(const wxBitmap& bitmap, const wxColour& maskColour) -{ - // TODO - return 0; -} - -// Adds a bitmap and mask from an icon. -int wxImageList::Add(const wxIcon& icon) -{ - // TODO - return 0; -} - -// Replaces a bitmap, optionally passing a mask bitmap. -// Note that wxImageList creates new bitmaps, so you may delete -// 'bitmap' and 'mask'. -bool wxImageList::Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask) -{ - // TODO - return 0; -} - -// Replaces a bitmap and mask from an icon. -bool wxImageList::Replace(int index, const wxIcon& icon) -{ - // TODO - return 0; -} - -// Removes the image at the given index. -bool wxImageList::Remove(int index) -{ - // TODO - return FALSE; -} - -// Remove all images -bool wxImageList::RemoveAll() -{ - // TODO - return FALSE; -} - -// Draws the given image on a dc at the specified position. -// If 'solidBackground' is TRUE, Draw sets the image list background -// colour to the background colour of the wxDC, to speed up -// drawing by eliminating masked drawing where possible. -bool wxImageList::Draw(int index, wxDC& dc, int x, int y, - int flags, bool solidBackground) -{ - // TODO - return FALSE; -} - diff --git a/src/stubs/joystick.cpp b/src/stubs/joystick.cpp deleted file mode 100644 index 6677277f48..0000000000 --- a/src/stubs/joystick.cpp +++ /dev/null @@ -1,279 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: joystick.cpp -// Purpose: wxJoystick class -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "joystick.h" -#endif - -#include - -IMPLEMENT_DYNAMIC_CLASS(wxJoystick, wxObject) - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -wxPoint wxJoystick::GetPosition() const -{ - // TODO - return wxPoint(0, 0); -} - -int wxJoystick::GetZPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetButtonState() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPOVCTSPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVPosition() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMovementThreshold() const -{ - // TODO - return 0; -} - -void wxJoystick::SetMovementThreshold(int threshold) -{ - // TODO -} - -// Capabilities -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::IsOk() const -{ - // TODO - return FALSE; -} - -int wxJoystick::GetNumberJoysticks() const -{ - // TODO - return 0; -} - -int wxJoystick::GetManufacturerId() const -{ - // TODO - return 0; -} - -int wxJoystick::GetProductId() const -{ - // TODO - return 0; -} - -wxString wxJoystick::GetProductName() const -{ - // TODO - return wxString(""); -} - -int wxJoystick::GetXMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetXMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetYMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetZMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetNumberAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxButtons() const -{ - // TODO - return 0; -} - -int wxJoystick::GetMaxAxes() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetPollingMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetRudderMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetUMax() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMin() const -{ - // TODO - return 0; -} - -int wxJoystick::GetVMax() const -{ - // TODO - return 0; -} - -bool wxJoystick::HasRudder() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasZ() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasU() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOV4Dir() const -{ - // TODO - return FALSE; -} - -bool wxJoystick::HasPOVCTS() const -{ - // TODO - return FALSE; -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -bool wxJoystick::SetCapture(wxWindow* win, int pollingFreq) -{ - // TODO - return FALSE; -} - -bool wxJoystick::ReleaseCapture() -{ - // TODO - return FALSE; -} - diff --git a/src/stubs/listbox.cpp b/src/stubs/listbox.cpp deleted file mode 100644 index 1dad21e12c..0000000000 --- a/src/stubs/listbox.cpp +++ /dev/null @@ -1,235 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: listbox.cpp -// Purpose: wxListBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listbox.h" -#endif - -#include "wx/listbox.h" -#include "wx/settings.h" -#include "wx/dynarray.h" -#include "wx/log.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl) -#endif - -// ============================================================================ -// list box control implementation -// ============================================================================ - -// Listbox item -wxListBox::wxListBox() -{ - m_noItems = 0; - m_selected = 0; -} - -bool wxListBox::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - int n, const wxString choices[], - long style, - const wxValidator& validator, - const wxString& name) -{ - m_noItems = n; - m_selected = 0; - - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - wxSystemSettings settings; - SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW)); - - m_windowId = ( id == -1 ) ? (int)NewControlId() : id; - - // TODO create listbox - - return FALSE; -} - -wxListBox::~wxListBox() -{ -} - -void wxListBox::SetFirstItem(int N) -{ - // TODO -} - -void wxListBox::SetFirstItem(const wxString& s) -{ - // TODO -} - -void wxListBox::Delete(int N) -{ - m_noItems --; - // TODO -} - -void wxListBox::Append(const wxString& item) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Append(const wxString& item, char *Client_data) -{ - m_noItems ++; - - // TODO -} - -void wxListBox::Set(int n, const wxString *choices, char** clientData) -{ - m_noItems = n; - - // TODO -} - -int wxListBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxListBox::Clear() -{ - m_noItems = 0; - // TODO -} - -void wxListBox::SetSelection(int N, bool select) -{ - // TODO -} - -bool wxListBox::Selected(int N) const -{ - // TODO - return FALSE; -} - -void wxListBox::Deselect(int N) -{ - // TODO -} - -char *wxListBox::GetClientData(int N) const -{ - // TODO - return (char *)NULL; -} - -void wxListBox::SetClientData(int N, char *Client_data) -{ - // TODO -} - -// Return number of selections and an array of selected integers -int wxListBox::GetSelections(wxArrayInt& aSelections) const -{ - aSelections.Empty(); - -/* TODO - if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED)) - { - int no_sel = ?? - for ( int n = 0; n < no_sel; n++ ) - aSelections.Add(??); - - return no_sel; - } - else // single-selection listbox - { - aSelections.Add(??); - - return 1; - } -*/ - return 0; -} - -// Get single selection, for single choice list items -int wxListBox::GetSelection() const -{ - // TODO - return -1; -} - -// Find string for position -wxString wxListBox::GetString(int N) const -{ - // TODO - return wxString(""); -} - -void wxListBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxListBox::InsertItems(int nItems, const wxString items[], int pos) -{ - m_noItems += nItems; - - // TODO -} - -void wxListBox::SetString(int N, const wxString& s) -{ - // TODO -} - -int wxListBox::Number () const -{ - return m_noItems; -} - -// For single selection items only -wxString wxListBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxListBox::SetStringSelection (const wxString& s, bool flag) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel, flag); - return TRUE; - } - else - return FALSE; -} - -void wxListBox::Command (wxCommandEvent & event) -{ - if (event.m_extraLong) - SetSelection (event.m_commandInt); - else - { - Deselect (event.m_commandInt); - return; - } - ProcessCommand (event); -} - diff --git a/src/stubs/listctrl.cpp b/src/stubs/listctrl.cpp deleted file mode 100644 index d1d8445652..0000000000 --- a/src/stubs/listctrl.cpp +++ /dev/null @@ -1,596 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: listctrl.cpp -// Purpose: wxListCtrl. See also Robert's generic wxListCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "listctrl.h" -#endif - -#include "wx/stubs/textctrl.h" -#include "wx/stubs/listctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxListCtrl, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxListItem, wxObject) - -#endif - -wxListCtrl::wxListCtrl() -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_baseStyle = 0; - m_colCount = 0; -} - -bool wxListCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name) -{ - m_imageListNormal = NULL; - m_imageListSmall = NULL; - m_imageListState = NULL; - m_colCount = 0; - - SetValidator(validator); - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - if (parent) parent->AddChild(this); - - // TODO create list control - return TRUE; -} - -wxListCtrl::~wxListCtrl() -{ -} - -// Add or remove a single window style -void wxListCtrl::SetSingleStyle(long style, bool add) -{ - long flag = GetWindowStyleFlag(); - - // Get rid of conflicting styles - if ( add ) - { - if ( style & wxLC_MASK_TYPE) - flag = flag & ~wxLC_MASK_TYPE ; - if ( style & wxLC_MASK_ALIGN ) - flag = flag & ~wxLC_MASK_ALIGN ; - if ( style & wxLC_MASK_SORT ) - flag = flag & ~wxLC_MASK_SORT ; - } - - if ( flag & style ) - { - if ( !add ) - flag -= style; - } - else - { - if ( add ) - { - flag |= style; - } - } - - m_windowStyle = flag; - - /* TODO RecreateWindow(); */ -} - -// Set the whole window style -void wxListCtrl::SetWindowStyleFlag(long flag) -{ - m_windowStyle = flag; - - /* TODO RecreateWindow(); */ -} - - -// Gets information about this column -bool wxListCtrl::GetColumn(int col, wxListItem& item) const -{ - // TODO - return FALSE; -} - -// Sets information about this column -bool wxListCtrl::SetColumn(int col, wxListItem& item) -{ - // TODO - return FALSE; -} - -// Gets the column width -int wxListCtrl::GetColumnWidth(int col) const -{ - // TODO - return 0; -} - -// Sets the column width -bool wxListCtrl::SetColumnWidth(int col, int width) -{ - // TODO - return FALSE; -} - -// 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) -int wxListCtrl::GetCountPerPage() const -{ - // TODO - return 0; -} - -// Gets the edit control for editing labels. -wxTextCtrl* wxListCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -// Gets information about the item -bool wxListCtrl::GetItem(wxListItem& info) const -{ - // TODO - return FALSE; -} - -// Sets information about the item -bool wxListCtrl::SetItem(wxListItem& info) -{ - // TODO - return FALSE; -} - -long wxListCtrl::SetItem(long index, int col, const wxString& label, int imageId) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - info.m_col = col; - if ( imageId > -1 ) - { - info.m_image = imageId; - info.m_mask |= wxLIST_MASK_IMAGE; - } - return SetItem(info); -} - - -// Gets the item state -int wxListCtrl::GetItemState(long item, long stateMask) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -// Sets the item state -bool wxListCtrl::SetItemState(long item, long state, long stateMask) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -// Sets the item image -bool wxListCtrl::SetItemImage(long item, int image, int selImage) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_IMAGE ; - info.m_image = image; - info.m_itemId = item; - - return SetItem(info); -} - -// Gets the item text -wxString wxListCtrl::GetItemText(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -// Sets the item text -void wxListCtrl::SetItemText(long item, const wxString& str) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -// Gets the item data -long wxListCtrl::GetItemData(long item) const -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -// Sets the item data -bool wxListCtrl::SetItemData(long item, long data) -{ - wxListItem info; - - info.m_mask = wxLIST_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -// Gets the item rectangle -bool wxListCtrl::GetItemRect(long item, wxRect& rect, int code) const -{ - // TODO - return FALSE; -} - -// Gets the item position -bool wxListCtrl::GetItemPosition(long item, wxPoint& pos) const -{ - // TODO - return FALSE; -} - -// Sets the item position. -bool wxListCtrl::SetItemPosition(long item, const wxPoint& pos) -{ - // TODO - return FALSE; -} - -// Gets the number of items in the list control -int wxListCtrl::GetItemCount() const -{ - // TODO - return FALSE; -} - -// Retrieves the spacing between icons in pixels. -// If small is TRUE, gets the spacing for the small icon -// view, otherwise the large icon view. -int wxListCtrl::GetItemSpacing(bool isSmall) const -{ - // TODO - return FALSE; -} - -// Gets the number of selected items in the list control -int wxListCtrl::GetSelectedItemCount() const -{ - // TODO - return FALSE; -} - -// Gets the text colour of the listview -wxColour wxListCtrl::GetTextColour() const -{ - // TODO - return wxColour(); -} - -// Sets the text colour of the listview -void wxListCtrl::SetTextColour(const wxColour& col) -{ - // TODO -} - -// Gets the index of the topmost visible item when in -// list or report view -long wxListCtrl::GetTopItem() const -{ - // TODO - return 0; -} - -// Searches for an item, starting from 'item'. -// 'geometry' is one of -// wxLIST_NEXT_ABOVE/ALL/BELOW/LEFT/RIGHT. -// 'state' is a state bit flag, one or more of -// wxLIST_STATE_DROPHILITED/FOCUSED/SELECTED/CUT. -// item can be -1 to find the first item that matches the -// specified flags. -// Returns the item or -1 if unsuccessful. -long wxListCtrl::GetNextItem(long item, int geom, int state) const -{ - // TODO - return 0; -} - -wxImageList *wxListCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - return m_imageListSmall; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxListCtrl::SetImageList(wxImageList *imageList, int which) -{ - int flags = 0; - if ( which == wxIMAGE_LIST_NORMAL ) - { - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_SMALL ) - { - m_imageListSmall = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - m_imageListState = imageList; - } - // TODO set image list -} - -// Operations -//////////////////////////////////////////////////////////////////////////// - -// Arranges the items -bool wxListCtrl::Arrange(int flag) -{ - // TODO - return FALSE; -} - -// Deletes an item -bool wxListCtrl::DeleteItem(long item) -{ - // TODO - return FALSE; -} - -// Deletes all items -bool wxListCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Deletes all items -bool wxListCtrl::DeleteAllColumns() -{ - // TODO - return FALSE; -} - -// Deletes a column -bool wxListCtrl::DeleteColumn(int col) -{ - // TODO - return FALSE; -} - -// Clears items, and columns if there are any. -void wxListCtrl::ClearAll() -{ - DeleteAllItems(); - if ( m_colCount > 0 ) - DeleteAllColumns(); -} - -// Edit the label -wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - // TODO - return NULL; -} - -// End label editing, optionally cancelling the edit -bool wxListCtrl::EndEditLabel(bool cancel) -{ - // TODO - return FALSE; -} - -// Ensures this item is visible -bool wxListCtrl::EnsureVisible(long item) -{ - // TODO - return FALSE; -} - -// Find an item whose label matches this string, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxString& str, bool partial) -{ - // TODO - return FALSE; -} - -// Find an item whose data matches this data, starting from the item after 'start' -// or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, long data) -{ - // TODO - return 0; -} - -// Find an item nearest this position in the specified direction, starting from -// the item after 'start' or the beginning if 'start' is -1. -long wxListCtrl::FindItem(long start, const wxPoint& pt, int direction) -{ - // TODO - return 0; -} - -// Determines which item (if any) is at the specified point, -// giving details in 'flags' (see wxLIST_HITTEST_... flags above) -long wxListCtrl::HitTest(const wxPoint& point, int& flags) -{ - // TODO - return 0; -} - -// Inserts an item, returning the index of the new item if successful, -// -1 otherwise. -long wxListCtrl::InsertItem(wxListItem& info) -{ - // TODO - return 0; -} - -long wxListCtrl::InsertItem(long index, const wxString& label) -{ - wxListItem info; - info.m_text = label; - info.m_mask = wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image item -long wxListCtrl::InsertItem(long index, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_mask = wxLIST_MASK_IMAGE; - info.m_itemId = index; - return InsertItem(info); -} - -// Inserts an image/string item -long wxListCtrl::InsertItem(long index, const wxString& label, int imageIndex) -{ - wxListItem info; - info.m_image = imageIndex; - info.m_text = label; - info.m_mask = wxLIST_MASK_IMAGE | wxLIST_MASK_TEXT; - info.m_itemId = index; - return InsertItem(info); -} - -// For list view mode (only), inserts a column. -long wxListCtrl::InsertColumn(long col, wxListItem& item) -{ - // TODO - return 0; -} - -long wxListCtrl::InsertColumn(long col, const wxString& heading, int format, - int width) -{ - wxListItem item; - item.m_mask = wxLIST_MASK_TEXT | wxLIST_MASK_FORMAT; - item.m_text = heading; - if ( width > -1 ) - { - item.m_mask |= wxLIST_MASK_WIDTH; - item.m_width = width; - } - item.m_format = format; - - return InsertColumn(col, item); -} - -// Scrolls the list control. If in icon, small icon or report view mode, -// x specifies the number of pixels to scroll. If in list view mode, x -// specifies the number of columns to scroll. -// If in icon, small icon or list view mode, y specifies the number of pixels -// to scroll. If in report view mode, y specifies the number of lines to scroll. -bool wxListCtrl::ScrollList(int dx, int dy) -{ - // TODO - return FALSE; -} - -// Sort items. - -// fn is a function which takes 3 long arguments: item1, item2, data. -// item1 is the long data associated with a first item (NOT the index). -// item2 is the long data associated with a second item (NOT the index). -// data is the same value as passed to SortItems. -// The return value is a negative number if the first item should precede the second -// item, a positive number of the second item should precede the first, -// or zero if the two items are equivalent. - -// data is arbitrary data to be passed to the sort function. -bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data) -{ - // TODO - return FALSE; -} - -// List item structure -wxListItem::wxListItem() -{ - m_mask = 0; - m_itemId = 0; - m_col = 0; - m_state = 0; - m_stateMask = 0; - m_image = 0; - m_data = 0; - - m_format = wxLIST_FORMAT_CENTRE; - m_width = 0; -} - -// List event -IMPLEMENT_DYNAMIC_CLASS(wxListEvent, wxCommandEvent) - -wxListEvent::wxListEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ - m_code = 0; - m_itemIndex = 0; - m_col = 0; - m_cancelled = FALSE; -} - diff --git a/src/stubs/main.cpp b/src/stubs/main.cpp deleted file mode 100644 index 47a9924bae..0000000000 --- a/src/stubs/main.cpp +++ /dev/null @@ -1,18 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Entry point -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include "wx/app.h" - -int main(int argc, char* argv[]) -{ - return wxEntry(argc, argv); -} - diff --git a/src/stubs/makefile.unx b/src/stubs/makefile.unx deleted file mode 100644 index 9e789a14a0..0000000000 --- a/src/stubs/makefile.unx +++ /dev/null @@ -1,204 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for wxStubs library, Unix - -EXTRACFLAGS=-DLEX_SCANNER - -include ../make.env - -LIB_CPP_SRC=\ -\ - ../common/cmndata.cpp \ - ../common/config.cpp \ - ../common/date.cpp \ - ../common/docmdi.cpp \ - ../common/docview.cpp \ - ../common/dynarray.cpp \ - ../common/dynlib.cpp \ - ../common/event.cpp \ - ../common/file.cpp \ - ../common/fileconf.cpp \ - ../common/filefn.cpp \ - ../common/gdicmn.cpp \ - ../common/hash.cpp \ - ../common/helpbase.cpp \ - ../common/intl.cpp \ - ../common/ipcbase.cpp \ - ../common/layout.cpp \ - ../common/list.cpp \ - ../common/log.cpp \ - ../common/matrix.cpp \ - ../common/memory.cpp \ - ../common/module.cpp \ - ../common/object.cpp \ - ../common/odbc.cpp \ - ../common/prntbase.cpp \ - ../common/resource.cpp \ - ../common/serbase.cpp \ - ../common/string.cpp \ - ../common/textfile.cpp \ - ../common/tbarbase.cpp \ - ../common/tbarsmpl.cpp \ - ../common/timercmn.cpp \ - ../common/utilscmn.cpp \ - ../common/wincmn.cpp \ - ../common/framecmn.cpp \ - ../common/stream.cpp \ - ../common/datstrm.cpp \ - ../common/wfstream.cpp \ - ../common/mstream.cpp \ - ../common/zstream.cpp \ - ../common/objstrm.cpp \ - ../common/sckstrm.cpp \ - ../common/validate.cpp \ - ../common/valgen.cpp \ - ../common/valtext.cpp \ - ../common/variant.cpp \ - ../common/wxexpr.cpp \ - ../common/socket.cpp \ - ../common/sckaddr.cpp \ - ../common/sckipc.cpp \ - ../common/protocol.cpp \ - ../common/ftp.cpp \ - ../common/http.cpp \ - ../common/url.cpp \ - ../common/tokenzr.cpp \ -\ - accel.cpp \ - app.cpp \ - bitmap.cpp \ - bmpbuttn.cpp \ - brush.cpp \ - button.cpp \ - checkbox.cpp \ - choice.cpp \ - clipbrd.cpp \ - colour.cpp \ - colordlg.cpp \ - control.cpp \ - combobox.cpp \ - cursor.cpp \ - data.cpp \ - dc.cpp \ - dcclient.cpp \ - dcmemory.cpp \ - dcscreen.cpp \ - dialog.cpp \ - dnd.cpp \ - filedlg.cpp \ - font.cpp \ - fontdlg.cpp \ - frame.cpp \ - gauge.cpp \ - gdiobj.cpp \ - helpxxxx.cpp \ - icon.cpp \ - listbox.cpp \ - joystick.cpp \ - main.cpp \ - mdi.cpp \ - menu.cpp \ - menuitem.cpp \ - metafile.cpp \ - minifram.cpp \ - msgdlg.cpp \ - notebook.cpp \ - palette.cpp \ - pen.cpp \ - print.cpp \ - radiobox.cpp \ - radiobut.cpp \ - region.cpp \ - scrolbar.cpp \ - settings.cpp \ - slider.cpp \ - spinbutt.cpp \ - statbox.cpp \ - statbmp.cpp \ - stattext.cpp \ - taskbar.cpp \ - textctrl.cpp \ - thread.cpp \ - timer.cpp \ - toolbar.cpp \ - utils.cpp \ - utilsexc.cpp \ - wave.cpp \ - window.cpp \ -\ - ../generic/choicdgg.cpp \ - ../generic/colrdlgg.cpp \ - ../generic/dcpsg.cpp \ - ../generic/dirdlgg.cpp \ - ../generic/fontdlgg.cpp \ - ../generic/gridg.cpp \ - ../generic/imaglist.cpp \ - ../generic/listctrl.cpp \ - ../generic/laywin.cpp \ - ../generic/msgdlgg.cpp \ - ../generic/panelg.cpp \ - ../generic/prop.cpp \ - ../generic/proplist.cpp \ - ../generic/propform.cpp \ - ../generic/printps.cpp \ - ../generic/prntdlgg.cpp \ - ../generic/sashwin.cpp \ - ../generic/scrolwin.cpp \ - ../generic/splitter.cpp \ - ../generic/statusbr.cpp \ - ../generic/tabg.cpp \ - ../generic/textdlgg.cpp \ - ../generic/treectrl.cpp - -# If you're not using the generic ones, you -# may wish to define platform-specific ones -# dirdlg.cpp \ -# treectrl.cpp \ -# listctrl.cpp \ -# imaglist.cpp \ -# statusbr.cpp \ - -LIB_C_SRC=\ -\ - ../common/y_tab.c \ - ../common/extended.c - -all: $(WXLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) $(LIB_C_SRC:.c=.o) - -$(WXLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -../common/y_tab.$(OBJSUFF): ../common/y_tab.c ../common/lex_yy.c - $(CCLEX) -c $(CFLAGS) -o $@ ../common/y_tab.c - -# Replace lex with flex if you run into compilation -# problems with lex_yy.c. See also note about LEX_SCANNER -# above. -../common/lex_yy.c: ../common/lexer.l - $(LEX) ../common/lexer.l - sed -e "s/BUFSIZ/5000/g" < ../common/lex.yy.c | \ - sed -e "s/yyoutput(c)/void yyoutput(c)/g" | \ - sed -e "s/YYLMAX 200/YYLMAX 5000/g" > ../common/lex_yy.c - /bin/rm -f ../common/lex.yy.c - -# Replace yacc with bison if you run into compilation -# problems with y_tab.c. -../common/y_tab.c: ../common/parser.y - $(YACC) ../common/parser.y - mv y.tab.c ../common/y_tab.c - - -clean: - rm -f $(OBJECTS) $(WXLIB) - diff --git a/src/stubs/makefile.vc b/src/stubs/makefile.vc deleted file mode 100644 index b0a6240fef..0000000000 --- a/src/stubs/makefile.vc +++ /dev/null @@ -1,979 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds wxWindows stubs library wxstubs.lib for VC++ (32-bit) -# Arguments: -# -# FINAL=1 argument to nmake to build version with no debugging info. -# - -!include - -APPVER=3.50 # 4.0 -# This means 'enable Windows 95 features' (in wxWindows and in VC++ 4.0). -WINVERSION=-DWINVER=0x0400 - -# On Alpha machines, change to CPU=ALPHA -CPU=i386 - -# Suffixes -OBJSUFF=obj -SRCSUFF=cpp - -WINFLAGS=-c -W3 -Dtry=__try -Dexcept=__except -Dleave=__leave -Dfinally=__finally -DCRTAPI1=_cdecl -DCRTAPI2=_cdecl -nologo -D_X86_=1 $(WINVERSION) -D__WIN32__ -D__WINDOWS__ -WINLINKFLAGS=/INCREMENTAL:NO /NOLOGO -align:0x1000 -machine:$(CPU) -subsystem:windows,$(APPVER) -WINLIBS=kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib oldnames.lib\ - comctl32.lib ctl3d32.lib odbc32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib # libci.lib # libci.lib required for VC++ 4.2 - -# Change this to your WXWIN directory -WXDIR=$(WXWIN) - -WXSRC=$(WXDIR)\src\stubs -WXINC=$(WXDIR)\include -WXBASESRC=$(WXDIR)\src\common - -WXLIB=$(WXDIR)\lib\wxstubs.lib - -EXTRADLLFLAGS= - -INC=-I$(WXINC) -I$(WXDIR)/src/png -I$(WXDIR)/src/zlib $(EXTRAINC) -LIBS = $(EXTRALIBS) $(WXLIB) $(WINLIBS) - -!ifndef FINAL -FINAL=0 -DEBUG=1 -!endif - -# Set this to 1 if you don't want to use precompiled headers -NOPCH=1 - -OPTIONS= - -!if "$(FINAL)" == "0" -OPT = /Od /Gy -# ***N.B.*** to save space/time, comment out /FR to avoid browse info (.sbr files) being generated -DEBUG_FLAGS= /Zi # /FR -LINK_DEBUG_FLAGS=-debug:full -debugtype:cv # /PDB:NONE -CRTFLAG=/MD -!else -# /O1 - smallest code -# /O2 - fastest code -OPT = /O1 # /O2 # /Od -DEBUG_FLAGS= -LINK_DEBUG_FLAGS=/RELEASE -CRTFLAG=/MD -!endif - -PCH= -PRECOMP= -MAKEPRECOMP= - -CPPFLAGS=$(WINFLAGS) $(DEBUG_FLAGS) $(PRECOMP) $(EXTRAFLAGS) /D__WXSTUBS__ /DDEBUG=1 $(INC) $(OPT) $(CRTFLAG) /GX /D__WXDEBUG__ /DWXDEBUG=1 -# If you don't include wxprec.h, use CPPFLAGS2 -CPPFLAGS2=$(WINFLAGS) $(DEBUG_FLAGS) /D__WXSTUBS__ /DDEBUG=1 $(INC) $(EXTRAFLAGS) $(OPT) $(CRTFLAG) /GX /D__WXDEBUG__ /DWXDEBUG=1 -LINKFLAGS=$(LINK_DEBUG_FLAGS) $(WINLINKFLAGS) -entry:WinMainCRTStartup - -THISDIR=$(WXWIN)\src\stubs - -LIBTARGET=$(WXLIB) - -# Please set these according to the settings in wx_setup.h, so we can include -# the appropriate libraries in wx.lib - -PERIPH_LIBS= -PERIPH_TARGET= -PERIPH_CLEAN_TARGET= - -GENDIR=..\generic -COMMDIR=..\common -STUBSDIR=. - -DOCDIR = $(WXDIR)\docs - -GENERICOBJS= \ - $(GENDIR)\choicdgg.obj \ - $(GENDIR)\colrdlgg.obj \ - $(GENDIR)\dcpsg.obj \ - $(GENDIR)\fontdlgg.obj \ - $(GENDIR)\gridg.obj \ - $(GENDIR)\msgdlgg.obj \ - $(GENDIR)\panelg.obj \ - $(GENDIR)\prop.obj \ - $(GENDIR)\propform.obj \ - $(GENDIR)\proplist.obj \ - $(GENDIR)\printps.obj \ - $(GENDIR)\prntdlgg.obj \ - $(GENDIR)\scrolwin.obj \ - $(GENDIR)\splitter.obj \ - $(GENDIR)\statusbr.obj \ - $(GENDIR)\tabg.obj \ - $(GENDIR)\textdlgg.obj - -# $(GENDIR)\helpxlp.obj \ - -COMMONOBJS = \ - $(COMMDIR)\cmndata.obj \ - $(COMMDIR)\config.obj \ - $(COMMDIR)\docview.obj \ - $(COMMDIR)\docmdi.obj \ - $(COMMDIR)\dynarray.obj \ - $(COMMDIR)\event.obj \ - $(COMMDIR)\file.obj \ - $(COMMDIR)\filefn.obj \ - $(COMMDIR)\fileconf.obj \ - $(COMMDIR)\framecmn.obj \ - $(COMMDIR)\gdicmn.obj \ - $(COMMDIR)\intl.obj \ - $(COMMDIR)\ipcbase.obj \ - $(COMMDIR)\helpbase.obj \ - $(COMMDIR)\layout.obj \ - $(COMMDIR)\log.obj \ - $(COMMDIR)\memory.obj \ - $(COMMDIR)\module.obj \ - $(COMMDIR)\object.obj \ - $(COMMDIR)\prntbase.obj \ - $(COMMDIR)\resource.obj \ - $(COMMDIR)\tbarbase.obj \ - $(COMMDIR)\tbarsmpl.obj \ - $(COMMDIR)\textfile.obj \ - $(COMMDIR)\timercmn.obj \ - $(COMMDIR)\utilscmn.obj \ - $(COMMDIR)\validate.obj \ - $(COMMDIR)\valgen.obj \ - $(COMMDIR)\valtext.obj \ - $(COMMDIR)\date.obj \ - $(COMMDIR)\hash.obj \ - $(COMMDIR)\list.obj \ - $(COMMDIR)\string.obj \ - $(COMMDIR)\time.obj \ - $(COMMDIR)\wxexpr.obj \ - $(COMMDIR)\y_tab.obj \ - $(COMMDIR)\extended.obj \ - $(COMMDIR)\process.obj \ - $(COMMDIR)\fstream.obj \ - $(COMMDIR)\mstream.obj \ - $(COMMDIR)\zstream.obj \ - $(COMMDIR)\stream.obj \ - $(COMMDIR)\datstrm.obj \ - $(COMMDIR)\wincmn.obj - -# $(COMMDIR)\odbc.obj \ - -STUBSOBJS = \ - $(STUBSDIR)\accel.obj \ - $(STUBSDIR)\app.obj \ - $(STUBSDIR)\bitmap.obj \ - $(STUBSDIR)\bmpbuttn.obj \ - $(STUBSDIR)\brush.obj \ - $(STUBSDIR)\button.obj \ - $(STUBSDIR)\checkbox.obj \ - $(STUBSDIR)\checklst.obj \ - $(STUBSDIR)\choice.obj \ - $(STUBSDIR)\clipbrd.obj \ - $(STUBSDIR)\colordlg.obj \ - $(STUBSDIR)\colour.obj \ - $(STUBSDIR)\combobox.obj \ - $(STUBSDIR)\control.obj \ - $(STUBSDIR)\cursor.obj \ - $(STUBSDIR)\data.obj \ - $(STUBSDIR)\dc.obj \ - $(STUBSDIR)\dcmemory.obj \ - $(STUBSDIR)\dcclient.obj \ - $(STUBSDIR)\dcscreen.obj \ - $(STUBSDIR)\dialog.obj \ - $(STUBSDIR)\dirdlg.obj \ - $(STUBSDIR)\filedlg.obj \ - $(STUBSDIR)\font.obj \ - $(STUBSDIR)\fontdlg.obj \ - $(STUBSDIR)\frame.obj \ - $(STUBSDIR)\gauge.obj \ - $(STUBSDIR)\gdiobj.obj \ - $(STUBSDIR)\helpxxxx.obj \ - $(STUBSDIR)\icon.obj \ - $(STUBSDIR)\imaglist.obj \ - $(STUBSDIR)\joystick.obj \ - $(STUBSDIR)\listbox.obj \ - $(STUBSDIR)\listctrl.obj \ - $(STUBSDIR)\main.obj \ - $(STUBSDIR)\mdi.obj \ - $(STUBSDIR)\menu.obj \ - $(STUBSDIR)\menuitem.obj \ - $(STUBSDIR)\metafile.obj \ - $(STUBSDIR)\minifram.obj \ - $(STUBSDIR)\msgdlg.obj \ - $(STUBSDIR)\notebook.obj \ - $(STUBSDIR)\palette.obj \ - $(STUBSDIR)\pen.obj \ - $(STUBSDIR)\printdlg.obj \ - $(STUBSDIR)\print.obj \ - $(STUBSDIR)\radiobox.obj \ - $(STUBSDIR)\radiobut.obj \ - $(STUBSDIR)\region.obj \ - $(STUBSDIR)\scrolbar.obj \ - $(STUBSDIR)\settings.obj \ - $(STUBSDIR)\slider.obj \ - $(STUBSDIR)\spinbutt.obj \ - $(STUBSDIR)\statbmp.obj \ - $(STUBSDIR)\statbox.obj \ - $(STUBSDIR)\statusbr.obj \ - $(STUBSDIR)\stattext.obj \ - $(STUBSDIR)\tabctrl.obj \ - $(STUBSDIR)\taskbar.obj \ - $(STUBSDIR)\toolbar.obj \ - $(STUBSDIR)\textctrl.obj \ - $(STUBSDIR)\thread.obj \ - $(STUBSDIR)\timer.obj \ - $(STUBSDIR)\treectrl.obj \ - $(STUBSDIR)\utils.obj \ - $(STUBSDIR)\utilsexc.obj \ - $(STUBSDIR)\wave.obj \ - $(STUBSDIR)\window.obj - - -OBJECTS = $(COMMONOBJS) $(GENERICOBJS) $(STUBSOBJS) - -# Normal, static library -all: $(OBJECTS) $(PERIPH_TARGET) $(LIBTARGET) - -$(WXDIR)\lib\wxstubs.lib: $(OBJECTS) $(PERIPH_LIBS) - -erase $(LIBTARGET) - $(implib) @<< --out:$@ --machine:$(CPU) -$(OBJECTS) $(PERIPH_LIBS) -<< - -######################################################## -# Windows-specific objects - -$(STUBSDIR)/accel.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/app.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/bitmap.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/bmpbuttn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/brush.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/button.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/choice.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/checkbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/checklst.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/clipbrd.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/colordlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/colour.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/combobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/control.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/cursor.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/data.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcmemory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcclient.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcprint.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dcscreen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dialog.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/dirdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/filedlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/font.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/fontdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/frame.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/gauge.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/gdiobj.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/icon.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/imaglist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/joystick.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/listbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(STUBSDIR)/listctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /Fo$@ /c /Tp $*.$(SRCSUFF) -<< - -$(STUBSDIR)/main.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/mdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/menu.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/menuitem.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/metafile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/minifram.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/msgdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/notebook.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/palette.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/pen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/printdlg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/print.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/radiobox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/radiobut.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/region.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/scrolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/settings.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/slider.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/spinbutt.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statbmp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statbox.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/stattext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/tabctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/taskbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/toolbar.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/textctrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/thread.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/timer.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/treectrl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/utils.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/utilsexc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/wave.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(STUBSDIR)/window.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -######################################################## -# Common objects (always compiled) - -$(COMMDIR)/cmndata.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/config.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/db.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/dbtable.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/docview.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/docmdi.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/dynarray.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/event.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/file.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/fileconf.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/filefn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/framecmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/gdicmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/intl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/ipcbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/helpbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/layout.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/log.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/memory.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/module.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/object.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/odbc.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/prntbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/resource.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/tbarbase.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/tbarsmpl.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/textfile.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/timercmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/utilscmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/validate.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/valgen.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/valtext.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/date.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/wxexpr.obj: $*.$(SRCSUFF) - echo $(CPPFLAGS) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/hash.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/list.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/string.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/matrix.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -#$(COMMDIR)/wxstrgnu/wxstrgnu.obj: $*.$(SRCSUFF) -# cl @<< -#$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -#<< - -#$(COMMDIR)/wxstrgnu/wxregex.obj: $*.$(SRCSUFF) -# cl @<< -#$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -#<< - -$(COMMDIR)/time.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\stream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\fstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\mstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\zstream.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)\datstrm.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/extended.obj: $*.c - cl @<< -$(CPPFLAGS2) /c /Tp $*.c /Fo$@ -<< - -$(COMMDIR)/process.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/wincmn.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(COMMDIR)/y_tab.obj: $*.c $(COMMDIR)/lex_yy.c - cl @<< -$(CPPFLAGS2) /c $*.c -DUSE_DEFINE -DYY_USE_PROTOS /Fo$@ -<< - -$(COMMDIR)/y_tab.c: $(COMMDIR)/dosyacc.c - copy $(COMMDIR)\dosyacc.c $(COMMDIR)\y_tab.c - -$(COMMDIR)/lex_yy.c: $(COMMDIR)/doslex.c - copy $(COMMDIR)\doslex.c $(COMMDIR)\lex_yy.c - -######################################################## -# Generic objects (not always compiled, depending on -# whether platforms have native implementations) - -$(GENDIR)/choicdgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/colrdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/dcpsg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/fontdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/gridg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/helpxlp.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/msgdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/panelg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/prop.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/propform.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/proplist.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/printps.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/prntdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/scrolwin.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/splitter.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/statusbr.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/tabg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(GENDIR)/textdlgg.obj: $*.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@ -<< - -$(OBJECTS): $(WXDIR)/include/wx/stubs/setup.h - -clean: $(PERIPH_CLEAN_TARGET) - -erase *.obj - -erase $(LIBTARGET) - -erase $(WXDIR)\lib\*.pdb - -erase *.pdb - -erase *.sbr - -erase *.pch - cd $(WXDIR)\src\stubs - cd $(GENDIR) - -erase *.pdb - -erase *.sbr - -erase *.obj - cd $(WXDIR)\src\stubs - cd $(COMMDIR) - -erase *.pdb - -erase *.sbr - -erase *.obj - -erase y_tab.c - -erase lex_yy.c - cd $(WXDIR)\src\stubs - -cleanall: clean - diff --git a/src/stubs/mdi.cpp b/src/stubs/mdi.cpp deleted file mode 100644 index 4869697cd7..0000000000 --- a/src/stubs/mdi.cpp +++ /dev/null @@ -1,265 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.cpp -// Purpose: MDI classes -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mdi.h" -#endif - -#include "wx/mdi.h" -#include "wx/menu.h" -#include "wx/settings.h" - -extern wxList wxModelessWindows; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_DYNAMIC_CLASS(wxMDIClientWindow, wxWindow) - -BEGIN_EVENT_TABLE(wxMDIParentFrame, wxFrame) - EVT_SIZE(wxMDIParentFrame::OnSize) - EVT_ACTIVATE(wxMDIParentFrame::OnActivate) - EVT_SYS_COLOUR_CHANGED(wxMDIParentFrame::OnSysColourChanged) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxMDIClientWindow, wxWindow) - EVT_SCROLL(wxMDIClientWindow::OnScroll) -END_EVENT_TABLE() - -#endif - -// Parent frame - -wxMDIParentFrame::wxMDIParentFrame() -{ -} - -bool wxMDIParentFrame::Create(wxWindow *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - if (!parent) - wxTopLevelWindows.Append(this); - - SetName(name); - m_windowStyle = style; - - if (parent) parent->AddChild(this); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - // TODO: create MDI parent frame - - wxModelessWindows.Append(this); - - return TRUE; -} - -wxMDIParentFrame::~wxMDIParentFrame() -{ -} - -// Get size *available for subwindows* i.e. excluding menu bar. -void wxMDIParentFrame::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxMDIParentFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - - m_frameMenuBar = menu_bar; -} - -void wxMDIParentFrame::OnSize(wxSizeEvent& event) -{ -#if wxUSE_CONSTRAINTS - if (GetAutoLayout()) - Layout(); -#endif - int x = 0; - int y = 0; - int width, height; - GetClientSize(&width, &height); - - if ( GetClientWindow() ) - GetClientWindow()->SetSize(x, y, width, height); -} - -void wxMDIParentFrame::OnActivate(wxActivateEvent& event) -{ - // Do nothing -} - -// Returns the active MDI child window -wxMDIChildFrame *wxMDIParentFrame::GetActiveChild() const -{ - // TODO - return NULL; -} - -// Create the client window class (don't Create the window, -// just return a new class) -wxMDIClientWindow *wxMDIParentFrame::OnCreateClient() -{ - return new wxMDIClientWindow ; -} - -// Responds to colour changes, and passes event on to children. -void wxMDIParentFrame::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - // TODO - - // Propagate the event to the non-top-level children - wxFrame::OnSysColourChanged(event); -} - -// MDI operations -void wxMDIParentFrame::Cascade() -{ - // TODO -} - -void wxMDIParentFrame::Tile() -{ - // TODO -} - -void wxMDIParentFrame::ArrangeIcons() -{ - // TODO -} - -void wxMDIParentFrame::ActivateNext() -{ - // TODO -} - -void wxMDIParentFrame::ActivatePrevious() -{ - // TODO -} - -// Child frame - -wxMDIChildFrame::wxMDIChildFrame() -{ -} - -bool wxMDIChildFrame::Create(wxMDIParentFrame *parent, - wxWindowID id, - const wxString& title, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if ( id > -1 ) - m_windowId = id; - else - m_windowId = (int)NewControlId(); - - if (parent) parent->AddChild(this); - - // TODO: create child frame - - wxModelessWindows.Append(this); - return FALSE; -} - -wxMDIChildFrame::~wxMDIChildFrame() -{ -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxMDIChildFrame::SetClientSize(int width, int height) -{ - // TODO -} - -void wxMDIChildFrame::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxMDIChildFrame::SetMenuBar(wxMenuBar *menu_bar) -{ - // TODO - if (!menu_bar) - { - m_frameMenuBar = NULL; - return; - } - - if (menu_bar->m_menuBarFrame) - return; - m_frameMenuBar = menu_bar; -} - -// MDI operations -void wxMDIChildFrame::Maximize() -{ - // TODO -} - -void wxMDIChildFrame::Restore() -{ - // TODO -} - -void wxMDIChildFrame::Activate() -{ - // TODO -} - -// Client window - -wxMDIClientWindow::wxMDIClientWindow() -{ -} - -wxMDIClientWindow::~wxMDIClientWindow() -{ -} - -bool wxMDIClientWindow::CreateClient(wxMDIParentFrame *parent, long style) -{ - // TODO create client window - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_APPWORKSPACE); - - return FALSE; -} - -// Explicitly call default scroll behaviour -void wxMDIClientWindow::OnScroll(wxScrollEvent& event) -{ - Default(); // Default processing -} - diff --git a/src/stubs/menu.cpp b/src/stubs/menu.cpp deleted file mode 100644 index 5880beab53..0000000000 --- a/src/stubs/menu.cpp +++ /dev/null @@ -1,614 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: menu.cpp -// Purpose: wxMenu, wxMenuBar, wxMenuItem -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -// ============================================================================ -// headers & declarations -// ============================================================================ - -// wxWindows headers -// ----------------- - -#ifdef __GNUG__ -#pragma implementation "menu.h" -#pragma implementation "menuitem.h" -#endif - -#include "wx/menu.h" -#include "wx/menuitem.h" -#include "wx/log.h" -#include "wx/utils.h" - -// other standard headers -// ---------------------- -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMenu, wxEvtHandler) -IMPLEMENT_DYNAMIC_CLASS(wxMenuBar, wxEvtHandler) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// Menus - -// Construct a menu with optional title (then use append) -wxMenu::wxMenu(const wxString& title, const wxFunction func) -{ - m_title = title; - m_parent = NULL; - m_eventHandler = this; - m_noItems = 0; - m_menuBar = NULL; - m_clientData = (void*) NULL; - if (m_title != "") - { - Append(-2, m_title) ; - AppendSeparator() ; - } - - Callback(func); - - // TODO create menu -} - -// The wxWindow destructor will take care of deleting the submenus. -wxMenu::~wxMenu() -{ - // TODO destroy menu and children - - wxNode *node = m_menuItems.First(); - while (node) - { - wxMenuItem *item = (wxMenuItem *)node->Data(); - - // Delete child menus. - // Beware: they must not be appended to children list!!! - // (because order of delete is significant) - if (item->GetSubMenu()) - item->DeleteSubMenu(); - - wxNode *next = node->Next(); - delete item; - delete node; - node = next; - } -} - -void wxMenu::Break() -{ - // TODO -} - -// function appends a new item or submenu to the menu -void wxMenu::Append(wxMenuItem *pItem) -{ - // TODO - - wxCHECK_RET( pItem != NULL, "can't append NULL item to the menu" ); - - m_menuItems.Append(pItem); - - m_noItems++; -} - -void wxMenu::AppendSeparator() -{ - // TODO - Append(new wxMenuItem(this, ID_SEPARATOR)); -} - -// Pullright item -void wxMenu::Append(int Id, const wxString& label, wxMenu *SubMenu, - const wxString& helpString) -{ - Append(new wxMenuItem(this, Id, label, helpString, FALSE, SubMenu)); -} - -// Ordinary menu item -void wxMenu::Append(int Id, const wxString& label, - const wxString& helpString, bool checkable) -{ - // 'checkable' parameter is useless for Windows. - Append(new wxMenuItem(this, Id, label, helpString, checkable)); -} - -void wxMenu::Delete(int id) -{ - wxNode *node; - wxMenuItem *item; - int pos; - - for (pos = 0, node = m_menuItems.First(); node; node = node->Next(), pos++) { - item = (wxMenuItem *)node->Data(); - if (item->GetId() == id) - break; - } - - if (!node) - return; - - m_menuItems.DeleteNode(node); - delete item; - - // TODO -} - -void wxMenu::Enable(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't enable non-existing menu item" ); - - item->Enable(Flag); -} - -bool wxMenu::Enabled(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsEnabled(); -} - -void wxMenu::Check(int Id, bool Flag) -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK_RET( item != NULL, "can't get status of non-existing menu item" ); - - item->Check(Flag); -} - -bool wxMenu::Checked(int Id) const -{ - wxMenuItem *item = FindItemForId(Id); - wxCHECK( item != NULL, FALSE ); - - return item->IsChecked(); -} - -void wxMenu::SetTitle(const wxString& label) -{ - m_title = label ; - // TODO -} - -const wxString wxMenu::GetTitle() const -{ - return m_title; -} - -void wxMenu::SetLabel(int id, const wxString& label) -{ - wxMenuItem *item = FindItemForId(id) ; - if (item==NULL) - return; - - if (item->GetSubMenu()==NULL) - { - // TODO - } - else - { - // TODO - } - item->SetName(label); -} - -wxString wxMenu::GetLabel(int Id) const -{ - // TODO - return wxString("") ; -} - -// Finds the item id matching the given string, -1 if not found. -int wxMenu::FindItem (const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)itemString, buf1); - - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - if (item->GetSubMenu()) - { - int ans = item->GetSubMenu()->FindItem(itemString); - if (ans > -1) - return ans; - } - if ( !item->IsSeparator() ) - { - wxStripMenuCodes((char *)item->GetName().c_str(), buf2); - if (strcmp(buf1, buf2) == 0) - return item->GetId(); - } - } - - return -1; -} - -wxMenuItem *wxMenu::FindItemForId(int itemId, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - for (wxNode * node = m_menuItems.First (); node; node = node->Next ()) - { - wxMenuItem *item = (wxMenuItem *) node->Data (); - - if (item->GetId() == itemId) - { - if (itemMenu) - *itemMenu = (wxMenu *) this; - return item; - } - - if (item->GetSubMenu()) - { - wxMenuItem *ans = item->GetSubMenu()->FindItemForId (itemId, itemMenu); - if (ans) - return ans; - } - } - - if (itemMenu) - *itemMenu = NULL; - return NULL; -} - -void wxMenu::SetHelpString(int itemId, const wxString& helpString) -{ - wxMenuItem *item = FindItemForId (itemId); - if (item) - item->SetHelp(helpString); -} - -wxString wxMenu::GetHelpString (int itemId) const -{ - wxMenuItem *item = FindItemForId (itemId); - wxString str(""); - return (item == NULL) ? str : item->GetHelp(); -} - -void wxMenu::ProcessCommand(wxCommandEvent & event) -{ - bool processed = FALSE; - - // Try a callback - if (m_callback) - { - (void) (*(m_callback)) (*this, event); - processed = TRUE; - } - - // Try the menu's event handler - if ( !processed && GetEventHandler()) - { - processed = GetEventHandler()->ProcessEvent(event); - } -/* TODO - // Try the window the menu was popped up from (and up - // through the hierarchy) - if ( !processed && GetInvokingWindow()) - processed = GetInvokingWindow()->ProcessEvent(event); -*/ -} - -// Update a menu and all submenus recursively. -// source is the object that has the update event handlers -// defined for it. If NULL, the menu or associated window -// will be used. -void wxMenu::UpdateUI(wxEvtHandler* source) -{ - if (!source && GetInvokingWindow()) - source = GetInvokingWindow()->GetEventHandler(); - if (!source) - source = GetEventHandler(); - if (!source) - source = this; - - wxNode* node = GetItems().First(); - while (node) - { - wxMenuItem* item = (wxMenuItem*) node->Data(); - if ( !item->IsSeparator() ) - { - wxWindowID id = item->GetId(); - wxUpdateUIEvent event(id); - event.SetEventObject( source ); - - if (source->ProcessEvent(event)) - { - if (event.GetSetText()) - SetLabel(id, event.GetText()); - if (event.GetSetChecked()) - Check(id, event.GetChecked()); - if (event.GetSetEnabled()) - Enable(id, event.GetEnabled()); - } - - if (item->GetSubMenu()) - item->GetSubMenu()->UpdateUI(source); - } - node = node->Next(); - } -} - -bool wxWindow::PopupMenu(wxMenu *menu, int x, int y) -{ - menu->SetInvokingWindow(this); - menu->UpdateUI(); - - // TODO - return FALSE; -} - -// Menu Bar -wxMenuBar::wxMenuBar() -{ - m_eventHandler = this; - m_menuCount = 0; - m_menus = NULL; - m_titles = NULL; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::wxMenuBar(int n, wxMenu *menus[], const wxString titles[]) -{ - m_eventHandler = this; - m_menuCount = n; - m_menus = menus; - m_titles = new wxString[n]; - int i; - for ( i = 0; i < n; i++ ) - m_titles[i] = titles[i]; - m_menuBarFrame = NULL; - - // TODO -} - -wxMenuBar::~wxMenuBar() -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - delete m_menus[i]; - } - delete[] m_menus; - delete[] m_titles; - - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus to enable/disable items -void wxMenuBar::Enable(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - // TODO -} - -void wxMenuBar::EnableTop(int pos, bool flag) -{ - // TODO -} - -// Must only be used AFTER menu has been attached to frame, -// otherwise use individual menus -void wxMenuBar::Check(int id, bool flag) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return; - - if (!item->IsCheckable()) - return ; - - // TODO -} - -bool wxMenuBar::Checked(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE; -} - -bool wxMenuBar::Enabled(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - if (!item) - return FALSE; - - // TODO - return FALSE ; -} - - -void wxMenuBar::SetLabel(int id, const wxString& label) -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return; - - // TODO -} - -wxString wxMenuBar::GetLabel(int id) const -{ - wxMenu *itemMenu = NULL; - wxMenuItem *item = FindItemForId(id, &itemMenu) ; - - if (!item) - return wxString(""); - - // TODO - return wxString("") ; -} - -void wxMenuBar::SetLabelTop(int pos, const wxString& label) -{ - // TODO -} - -wxString wxMenuBar::GetLabelTop(int pos) const -{ - // TODO - return wxString(""); -} - -bool wxMenuBar::OnDelete(wxMenu *a_menu, int pos) -{ - // TODO - return FALSE; -} - -bool wxMenuBar::OnAppend(wxMenu *a_menu, const char *title) -{ - // TODO - return FALSE; -} - -void wxMenuBar::Append (wxMenu * menu, const wxString& title) -{ - if (!OnAppend(menu, title)) - return; - - m_menuCount ++; - wxMenu **new_menus = new wxMenu *[m_menuCount]; - wxString *new_titles = new wxString[m_menuCount]; - int i; - - for (i = 0; i < m_menuCount - 1; i++) - { - new_menus[i] = m_menus[i]; - m_menus[i] = NULL; - new_titles[i] = m_titles[i]; - m_titles[i] = ""; - } - if (m_menus) - { - delete[]m_menus; - delete[]m_titles; - } - m_menus = new_menus; - m_titles = new_titles; - - m_menus[m_menuCount - 1] = (wxMenu *)menu; - m_titles[m_menuCount - 1] = title; - - // TODO -} - -void wxMenuBar::Delete(wxMenu * menu, int i) -{ - int j; - int ii = (int) i; - - if (menu != 0) - { - for (ii = 0; ii < m_menuCount; ii++) - { - if (m_menus[ii] == menu) - break; - } - if (ii >= m_menuCount) - return; - } else - { - if (ii < 0 || ii >= m_menuCount) - return; - menu = m_menus[ii]; - } - - if (!OnDelete(menu, ii)) - return; - - menu->SetParent(NULL); - - -- m_menuCount; - for (j = ii; j < m_menuCount; j++) - { - m_menus[j] = m_menus[j + 1]; - m_titles[j] = m_titles[j + 1]; - } -} - -// Find the menu menuString, item itemString, and return the item id. -// Returns -1 if none found. -int wxMenuBar::FindMenuItem (const wxString& menuString, const wxString& itemString) const -{ - char buf1[200]; - char buf2[200]; - wxStripMenuCodes ((char *)(const char *)menuString, buf1); - int i; - for (i = 0; i < m_menuCount; i++) - { - wxStripMenuCodes ((char *)(const char *)m_titles[i], buf2); - if (strcmp (buf1, buf2) == 0) - return m_menus[i]->FindItem (itemString); - } - return -1; -} - -wxMenuItem *wxMenuBar::FindItemForId (int Id, wxMenu ** itemMenu) const -{ - if (itemMenu) - *itemMenu = NULL; - - wxMenuItem *item = NULL; - int i; - for (i = 0; i < m_menuCount; i++) - if ((item = m_menus[i]->FindItemForId (Id, itemMenu))) - return item; - return NULL; -} - -void wxMenuBar::SetHelpString (int Id, const wxString& helpString) -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - { - m_menus[i]->SetHelpString (Id, helpString); - return; - } - } -} - -wxString wxMenuBar::GetHelpString (int Id) const -{ - int i; - for (i = 0; i < m_menuCount; i++) - { - if (m_menus[i]->FindItemForId (Id)) - return wxString(m_menus[i]->GetHelpString (Id)); - } - return wxString(""); -} - - diff --git a/src/stubs/menuitem.cpp b/src/stubs/menuitem.cpp deleted file mode 100644 index bd2f876a38..0000000000 --- a/src/stubs/menuitem.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: menuitem.cpp -// Purpose: wxMenuItem implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// headers & declarations -// ============================================================================ - -#include "wx/menu.h" -#include "wx/menuitem.h" - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// dynamic classes implementation -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxMenuItem, wxObject) -#endif //USE_SHARED_LIBRARY - -// ---------------------------------------------------------------------------- -// wxMenuItem -// ---------------------------------------------------------------------------- - -// ctor & dtor -// ----------- - -wxMenuItem::wxMenuItem(wxMenu *pParentMenu, int id, - const wxString& strName, const wxString& strHelp, - bool bCheckable, - wxMenu *pSubMenu) : - m_bCheckable(bCheckable), - m_strName(strName), - m_strHelp(strHelp) -{ - wxASSERT( pParentMenu != NULL ); - - m_pParentMenu = pParentMenu; - m_pSubMenu = pSubMenu; - m_idItem = id; - m_bEnabled = TRUE; -} - -wxMenuItem::~wxMenuItem() -{ -} - -// misc -// ---- - -// delete the sub menu -void wxMenuItem::DeleteSubMenu() -{ - wxASSERT( m_pSubMenu != NULL ); - - delete m_pSubMenu; - m_pSubMenu = NULL; -} - -// change item state -// ----------------- - -void wxMenuItem::Enable(bool bDoEnable) -{ - if ( m_bEnabled != bDoEnable ) { - if ( m_pSubMenu == NULL ) { // normal menu item - // TODO - } - else // submenu - { - // TODO - } - - m_bEnabled = bDoEnable; - } -} - -void wxMenuItem::Check(bool bDoCheck) -{ - wxCHECK_RET( IsCheckable(), "only checkable items may be checked" ); - - if ( m_bChecked != bDoCheck ) { - // TODO - m_bChecked = bDoCheck; - } -} \ No newline at end of file diff --git a/src/stubs/metafile.cpp b/src/stubs/metafile.cpp deleted file mode 100644 index 03c29bcb79..0000000000 --- a/src/stubs/metafile.cpp +++ /dev/null @@ -1,239 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: metafile.cpp -// Purpose: wxMetaFile, wxMetaFileDC etc. These classes are optional. -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "metafile.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/dc.h" -#include "wx/stubs/metafile.h" -#include "wx/clipbrd.h" - -extern bool wxClipboardIsOpen; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMetaFile, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxMetaFileDC, wxDC) -#endif - -wxMetaFile::wxMetaFile(const wxString& file) -{ - // TODO -} - -wxMetaFile::~wxMetaFile() -{ - // TODO -} - -bool wxMetaFile::SetClipboard(int width, int height) -{ - bool alreadyOpen=wxClipboardOpen(); - if (!alreadyOpen) - { - wxOpenClipboard(); - if (!wxEmptyClipboard()) return FALSE; - } - bool success = wxSetClipboardData(wxDF_METAFILE,this, width,height); - if (!alreadyOpen) wxCloseClipboard(); - return (bool) success; -} - -bool wxMetaFile::Play(wxDC *dc) -{ - // TODO - return FALSE; -} - -/* - * Metafile device context - * - */ - -// Original constructor that does not takes origin and extent. If you use this, -// *DO* give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file) -{ - // TODO -} - -// New constructor that takes origin and extent. If you use this, don't -// give origin/extent arguments to wxMakeMetaFilePlaceable. -wxMetaFileDC::wxMetaFileDC(const wxString& file, int xext, int yext, int xorg, int yorg) -{ - // TODO -} - -wxMetaFileDC::~wxMetaFileDC() -{ -} - -void wxMetaFileDC::GetTextExtent(const wxString& string, float *x, float *y, - float *descent, float *externalLeading, wxFont *theFont, bool use16bit) -{ - // TODO -} - -wxMetaFile *wxMetaFileDC::Close() -{ - // TODO - return NULL; -} - -void wxMetaFileDC::SetMapMode(int mode) -{ - // TODO -} - -#if 0 - -#ifdef __WIN32__ -struct RECT32 -{ - short left; - short top; - short right; - short bottom; -}; - -struct mfPLACEABLEHEADER { - DWORD key; - short hmf; - RECT32 bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#else -struct mfPLACEABLEHEADER { - DWORD key; - HANDLE hmf; - RECT bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; -#endif - -/* - * Pass filename of existing non-placeable metafile, and bounding box. - * Adds a placeable metafile header, sets the mapping mode to anisotropic, - * and sets the window origin and extent to mimic the wxMM_TEXT mapping mode. - * - */ - -bool wxMakeMetaFilePlaceable(const wxString& filename, float scale) -{ - return wxMakeMetaFilePlaceable(filename, 0, 0, 0, 0, scale, FALSE); -} - -bool wxMakeMetaFilePlaceable(const wxString& filename, int x1, int y1, int x2, int y2, float scale, bool useOriginAndExtent) -{ - // I'm not sure if this is the correct way of suggesting a scale - // to the client application, but it's the only way I can find. - int unitsPerInch = (int)(576/scale); - - mfPLACEABLEHEADER header; - header.key = 0x9AC6CDD7L; - header.hmf = 0; - header.bbox.left = (int)(x1); - header.bbox.top = (int)(y1); - header.bbox.right = (int)(x2); - header.bbox.bottom = (int)(y2); - header.inch = unitsPerInch; - header.reserved = 0; - - // Calculate checksum - WORD *p; - mfPLACEABLEHEADER *pMFHead = &header; - for (p =(WORD *)pMFHead,pMFHead -> checksum = 0; - p < (WORD *)&pMFHead ->checksum; ++p) - pMFHead ->checksum ^= *p; - - FILE *fd = fopen((char *)(const char *)filename, "rb"); - if (!fd) return FALSE; - - char tempFileBuf[256]; - wxGetTempFileName("mf", tempFileBuf); - FILE *fHandle = fopen(tempFileBuf, "wb"); - if (!fHandle) - return FALSE; - fwrite((void *)&header, sizeof(unsigned char), sizeof(mfPLACEABLEHEADER), fHandle); - - // Calculate origin and extent - int originX = x1; - int originY = y1; - int extentX = x2 - x1; - int extentY = (y2 - y1); - - // Read metafile header and write - METAHEADER metaHeader; - fread((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fd); - - if (useOriginAndExtent) - metaHeader.mtSize += 15; - else - metaHeader.mtSize += 5; - - fwrite((void *)&metaHeader, sizeof(unsigned char), sizeof(metaHeader), fHandle); - - // Write SetMapMode, SetWindowOrigin and SetWindowExt records - char modeBuffer[8]; - char originBuffer[10]; - char extentBuffer[10]; - METARECORD *modeRecord = (METARECORD *)&modeBuffer; - - METARECORD *originRecord = (METARECORD *)&originBuffer; - METARECORD *extentRecord = (METARECORD *)&extentBuffer; - - modeRecord->rdSize = 4; - modeRecord->rdFunction = META_SETMAPMODE; - modeRecord->rdParm[0] = MM_ANISOTROPIC; - - originRecord->rdSize = 5; - originRecord->rdFunction = META_SETWINDOWORG; - originRecord->rdParm[0] = originY; - originRecord->rdParm[1] = originX; - - extentRecord->rdSize = 5; - extentRecord->rdFunction = META_SETWINDOWEXT; - extentRecord->rdParm[0] = extentY; - extentRecord->rdParm[1] = extentX; - - fwrite((void *)modeBuffer, sizeof(char), 8, fHandle); - - if (useOriginAndExtent) - { - fwrite((void *)originBuffer, sizeof(char), 10, fHandle); - fwrite((void *)extentBuffer, sizeof(char), 10, fHandle); - } - - int ch = -2; - while (ch != EOF) - { - ch = getc(fd); - if (ch != EOF) - { - putc(ch, fHandle); - } - } - fclose(fHandle); - fclose(fd); - wxRemoveFile(filename); - wxCopyFile(tempFileBuf, filename); - wxRemoveFile(tempFileBuf); - return TRUE; -} - -#endif - diff --git a/src/stubs/minifram.cpp b/src/stubs/minifram.cpp deleted file mode 100644 index 4f6f5e5fcb..0000000000 --- a/src/stubs/minifram.cpp +++ /dev/null @@ -1,22 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minifram.cpp -// Purpose: wxMiniFrame. Optional; identical to wxFrame if not supported. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minifram.h" -#endif - -#include "wx/minifram.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxMiniFrame, wxFrame) -#endif - - diff --git a/src/stubs/msgdlg.cpp b/src/stubs/msgdlg.cpp deleted file mode 100644 index aeaa9bac7a..0000000000 --- a/src/stubs/msgdlg.cpp +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: msgdlg.cpp -// Purpose: wxMessageDialog -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "msgdlg.h" -#endif - -#include "wx/stubs/msgdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_CLASS(wxMessageDialog, wxDialog) -#endif - -wxMessageDialog::wxMessageDialog(wxWindow *parent, const wxString& message, const wxString& caption, - long style, const wxPoint& pos) -{ - m_caption = caption; - m_message = message; - m_dialogStyle = style; - m_parent = parent; -} - -int wxMessageDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - diff --git a/src/stubs/notebook.cpp b/src/stubs/notebook.cpp deleted file mode 100644 index f7ee49cd5d..0000000000 --- a/src/stubs/notebook.cpp +++ /dev/null @@ -1,382 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: notebook.cpp -// Purpose: implementation of wxNotebook -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- -#ifdef __GNUG__ -#pragma implementation "notebook.h" -#endif - -#include -#include -#include -#include - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -// check that the page index is valid -#define IS_VALID_PAGE(nPage) (((nPage) >= 0) && ((nPage) < GetPageCount())) - -// ---------------------------------------------------------------------------- -// event table -// ---------------------------------------------------------------------------- - -#if !USE_SHARED_LIBRARIES -BEGIN_EVENT_TABLE(wxNotebook, wxControl) - EVT_NOTEBOOK_PAGE_CHANGED(-1, wxNotebook::OnSelChange) - - EVT_SIZE(wxNotebook::OnSize) - EVT_SET_FOCUS(wxNotebook::OnSetFocus) - EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxNotebookEvent, wxCommandEvent) -#endif - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxNotebook construction -// ---------------------------------------------------------------------------- - -// common part of all ctors -void wxNotebook::Init() -{ - m_pImageList = NULL; - m_nSelection = -1; -} - -// default for dynamic class -wxNotebook::wxNotebook() -{ - Init(); -} - -// the same arguments as for wxControl -wxNotebook::wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - Init(); - - Create(parent, id, pos, size, style, name); -} - -// Create() function -bool wxNotebook::Create(wxWindow *parent, - wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // base init - SetName(name); - SetParent(parent); - - m_windowId = id == -1 ? NewControlId() : id; - - // style - m_windowStyle = style; - - if ( parent != NULL ) - parent->AddChild(this); - - // TODO - - return FALSE; -} - -// dtor -wxNotebook::~wxNotebook() -{ -} - -// ---------------------------------------------------------------------------- -// wxNotebook accessors -// ---------------------------------------------------------------------------- -int wxNotebook::GetPageCount() const -{ - return m_aPages.Count(); -} - -int wxNotebook::GetRowCount() const -{ - // TODO - return 0; -} - -int wxNotebook::SetSelection(int nPage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - ChangePage(m_nSelection, nPage); - - // TODO - return 0; -} - -void wxNotebook::AdvanceSelection(bool bForward) -{ - int nSel = GetSelection(); - int nMax = GetPageCount() - 1; - if ( bForward ) - SetSelection(nSel == nMax ? 0 : nSel + 1); - else - SetSelection(nSel == 0 ? nMax : nSel - 1); -} - -bool wxNotebook::SetPageText(int nPage, const wxString& strText) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -wxString wxNotebook::GetPageText(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return wxString(""); -} - -int wxNotebook::GetPageImage(int nPage) const -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return 0; -} - -bool wxNotebook::SetPageImage(int nPage, int nImage) -{ - wxASSERT( IS_VALID_PAGE(nPage) ); - - // TODO - return FALSE; -} - -void wxNotebook::SetImageList(wxImageList* imageList) -{ - m_pImageList = imageList; - // TODO -} - -// ---------------------------------------------------------------------------- -// wxNotebook operations -// ---------------------------------------------------------------------------- - -// remove one page from the notebook -bool wxNotebook::DeletePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - // TODO: delete native widget page - - delete m_aPages[nPage]; - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove one page from the notebook, without deleting the window -bool wxNotebook::RemovePage(int nPage) -{ - wxCHECK( IS_VALID_PAGE(nPage), FALSE ); - - m_aPages.Remove(nPage); - - return TRUE; -} - -// remove all pages -bool wxNotebook::DeleteAllPages() -{ - // TODO: delete native widget pages - - int nPageCount = GetPageCount(); - int nPage; - for ( nPage = 0; nPage < nPageCount; nPage++ ) - delete m_aPages[nPage]; - - m_aPages.Clear(); - - return TRUE; -} - -// add a page to the notebook -bool wxNotebook::AddPage(wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - return InsertPage(GetPageCount(), pPage, strText, bSelect, imageId); -} - -// same as AddPage() but does it at given position -bool wxNotebook::InsertPage(int nPage, - wxNotebookPage *pPage, - const wxString& strText, - bool bSelect, - int imageId) -{ - wxASSERT( pPage != NULL ); - wxCHECK( IS_VALID_PAGE(nPage) || nPage == GetPageCount(), FALSE ); - - // TODO: insert native widget page - - // save the pointer to the page - m_aPages.Insert(pPage, nPage); - - // some page must be selected: either this one or the first one if there is - // still no selection - if ( bSelect ) - m_nSelection = nPage; - else if ( m_nSelection == -1 ) - m_nSelection = 0; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxNotebook callbacks -// ---------------------------------------------------------------------------- - -// @@@ OnSize() is used for setting the font when it's called for the first -// time because doing it in ::Create() doesn't work (for unknown reasons) -void wxNotebook::OnSize(wxSizeEvent& event) -{ - static bool s_bFirstTime = TRUE; - if ( s_bFirstTime ) { - // TODO: any first-time-size processing. - s_bFirstTime = FALSE; - } - - // TODO: all this may or may not be necessary for your platform - - // emulate page change (it's esp. important to do it first time because - // otherwise our page would stay invisible) - int nSel = m_nSelection; - m_nSelection = -1; - SetSelection(nSel); - - // fit the notebook page to the tab control's display area - int w, h; - GetSize(&w, &h); - - unsigned int nCount = m_aPages.Count(); - for ( unsigned int nPage = 0; nPage < nCount; nPage++ ) { - wxNotebookPage *pPage = m_aPages[nPage]; - pPage->SetSize(0, 0, w, h); - if ( pPage->GetAutoLayout() ) - pPage->Layout(); - } - - // Processing continues to next OnSize - event.Skip(); -} - -void wxNotebook::OnSelChange(wxNotebookEvent& event) -{ - // is it our tab control? - if ( event.GetEventObject() == this ) - ChangePage(event.GetOldSelection(), event.GetSelection()); - - // we want to give others a chance to process this message as well - event.Skip(); -} - -void wxNotebook::OnSetFocus(wxFocusEvent& event) -{ - // set focus to the currently selected page if any - if ( m_nSelection != -1 ) - m_aPages[m_nSelection]->SetFocus(); - - event.Skip(); -} - -void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event) -{ - if ( event.IsWindowChange() ) { - // change pages - AdvanceSelection(event.GetDirection()); - } - else { - // pass to the parent - if ( GetParent() ) { - event.SetCurrentFocus(this); - GetParent()->ProcessEvent(event); - } - } -} - -// ---------------------------------------------------------------------------- -// wxNotebook base class virtuals -// ---------------------------------------------------------------------------- - -// override these 2 functions to do nothing: everything is done in OnSize - -void wxNotebook::SetConstraintSizes(bool /* recurse */) -{ - // don't set the sizes of the pages - their correct size is not yet known - wxControl::SetConstraintSizes(FALSE); -} - -bool wxNotebook::DoPhase(int /* nPhase */) -{ - return TRUE; -} - -void wxNotebook::Command(wxCommandEvent& event) -{ - wxFAIL_MSG("wxNotebook::Command not implemented"); -} - -// ---------------------------------------------------------------------------- -// wxNotebook helper functions -// ---------------------------------------------------------------------------- - -// hide the currently active panel and show the new one -void wxNotebook::ChangePage(int nOldSel, int nSel) -{ - wxASSERT( nOldSel != nSel ); // impossible - - if ( nOldSel != -1 ) { - m_aPages[nOldSel]->Show(FALSE); - } - - wxNotebookPage *pPage = m_aPages[nSel]; - pPage->Show(TRUE); - pPage->SetFocus(); - - m_nSelection = nSel; -} - -void wxNotebook::SetTabSize(const wxSize& sz) -{ - // TODO -} - diff --git a/src/stubs/palette.cpp b/src/stubs/palette.cpp deleted file mode 100644 index f8db96f8d0..0000000000 --- a/src/stubs/palette.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: wxPalette -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "palette.h" -#endif - -#include "wx/palette.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject) -#endif - -/* - * Palette - * - */ - -wxPaletteRefData::wxPaletteRefData() -{ - // TODO -} - -wxPaletteRefData::~wxPaletteRefData() -{ - // TODO -} - -wxPalette::wxPalette() -{ -} - -wxPalette::wxPalette(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - Create(n, red, green, blue); -} - -wxPalette::~wxPalette() -{ -} - -bool wxPalette::Create(int n, const unsigned char *red, const unsigned char *green, const unsigned char *blue) -{ - UnRef(); - - m_refData = new wxPaletteRefData; - - // TODO - - return FALSE; -} - -int wxPalette::GetPixel(const unsigned char red, const unsigned char green, const unsigned char blue) const -{ - if ( !m_refData ) - return FALSE; - - // TODO - return FALSE; -} - -bool wxPalette::GetRGB(int index, unsigned char *red, unsigned char *green, unsigned char *blue) const -{ - if ( !m_refData ) - return FALSE; - - if (index < 0 || index > 255) - return FALSE; - - // TODO - return FALSE; -} - - diff --git a/src/stubs/pen.cpp b/src/stubs/pen.cpp deleted file mode 100644 index 1e3ced2a3a..0000000000 --- a/src/stubs/pen.cpp +++ /dev/null @@ -1,202 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: pen.cpp -// Purpose: wxPen -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "pen.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/pen.h" - -#if !USE_SHARED_LIBRARIES -IMPLEMENT_DYNAMIC_CLASS(wxPen, wxGDIObject) -#endif - -wxPenRefData::wxPenRefData() -{ - m_style = wxSOLID; - m_width = 1; - m_join = wxJOIN_ROUND ; - m_cap = wxCAP_ROUND ; - m_nbDash = 0 ; - m_dash = 0 ; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::wxPenRefData(const wxPenRefData& data) -{ - m_style = data.m_style; - m_width = data.m_width; - m_join = data.m_join; - m_cap = data.m_cap; - m_nbDash = data.m_nbDash; - m_dash = data.m_dash; - m_colour = data.m_colour; -/* TODO: null data - m_hPen = 0; -*/ -} - -wxPenRefData::~wxPenRefData() -{ - // TODO: delete data -} - -// Pens - -wxPen::wxPen() -{ - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::~wxPen() -{ - if (wxThePenList) - wxThePenList->RemovePen(this); -} - -// Should implement Create -wxPen::wxPen(const wxColour& col, int Width, int Style) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_colour = col; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = Style; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -wxPen::wxPen(const wxBitmap& stipple, int Width) -{ - m_refData = new wxPenRefData; - - M_PENDATA->m_stipple = stipple; - M_PENDATA->m_width = Width; - M_PENDATA->m_style = wxSTIPPLE; - M_PENDATA->m_join = wxJOIN_ROUND ; - M_PENDATA->m_cap = wxCAP_ROUND ; - M_PENDATA->m_nbDash = 0 ; - M_PENDATA->m_dash = 0 ; - - RealizeResource(); - - if ( wxThePenList ) - wxThePenList->AddPen(this); -} - -void wxPen::Unshare() -{ - // Don't change shared data - if (!m_refData) - { - m_refData = new wxPenRefData(); - } - else - { - wxPenRefData* ref = new wxPenRefData(*(wxPenRefData*)m_refData); - UnRef(); - m_refData = ref; - } -} - -void wxPen::SetColour(const wxColour& col) -{ - Unshare(); - - M_PENDATA->m_colour = col; - - RealizeResource(); -} - -void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) -{ - Unshare(); - - M_PENDATA->m_colour.Set(r, g, b); - - RealizeResource(); -} - -void wxPen::SetWidth(int Width) -{ - Unshare(); - - M_PENDATA->m_width = Width; - - RealizeResource(); -} - -void wxPen::SetStyle(int Style) -{ - Unshare(); - - M_PENDATA->m_style = Style; - - RealizeResource(); -} - -void wxPen::SetStipple(const wxBitmap& Stipple) -{ - Unshare(); - - M_PENDATA->m_stipple = Stipple; - M_PENDATA->m_style = wxSTIPPLE; - - RealizeResource(); -} - -void wxPen::SetDashes(int nb_dashes, const wxDash *Dash) -{ - Unshare(); - - M_PENDATA->m_nbDash = nb_dashes; - M_PENDATA->m_dash = (wxDash *)Dash; - - RealizeResource(); -} - -void wxPen::SetJoin(int Join) -{ - Unshare(); - - M_PENDATA->m_join = Join; - - RealizeResource(); -} - -void wxPen::SetCap(int Cap) -{ - Unshare(); - - M_PENDATA->m_cap = Cap; - - RealizeResource(); -} - -bool wxPen::RealizeResource() -{ - // TODO: create actual pen - return FALSE; -} - - diff --git a/src/stubs/print.cpp b/src/stubs/print.cpp deleted file mode 100644 index 61fd6e7e99..0000000000 --- a/src/stubs/print.cpp +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: print.cpp -// Purpose: Print framework -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "print.h" -#endif - -#include "wx/stubs/print.h" -#include "wx/stubs/printdlg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrinter, wxPrinterBase) -IMPLEMENT_CLASS(wxPrintPreview, wxPrintPreviewBase) -#endif - -/* - * Printer - */ - -wxPrinter::wxPrinter(wxPrintData *data): - wxPrinterBase(data) -{ -} - -wxPrinter::~wxPrinter() -{ -} - -bool wxPrinter::Print(wxWindow *parent, wxPrintout *printout, bool prompt) -{ - // TODO. See wxPostScriptPrinter::Print for hints. - return FALSE; -} - -bool wxPrinter::PrintDialog(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printData); - return (dialog.ShowModal() == wxID_OK); -} - -bool wxPrinter::Setup(wxWindow *parent) -{ - wxPrintDialog dialog(parent, & m_printData); - dialog.GetPrintData().SetSetupDialog(TRUE); - return (dialog.ShowModal() == wxID_OK); -} - -/* - * Print preview - */ - -wxPrintPreview::wxPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting, wxPrintData *data): - wxPrintPreviewBase(printout, printoutForPrinting, data) -{ - DetermineScaling(); -} - -wxPrintPreview::~wxPrintPreview() -{ -} - -bool wxPrintPreview::Print(bool interactive) -{ - if (!m_printPrintout) - return FALSE; - wxPrinter printer(&m_printData); - return printer.Print(m_previewFrame, m_printPrintout, interactive); -} - -void wxPrintPreview::DetermineScaling() -{ - // TODO -} - diff --git a/src/stubs/printdlg.cpp b/src/stubs/printdlg.cpp deleted file mode 100644 index eae3b95568..0000000000 --- a/src/stubs/printdlg.cpp +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: printdlg.cpp -// Purpose: wxPrintDialog, wxPageSetupDialog -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "printdlg.h" -#endif - -#include "wx/object.h" -#include "wx/stubs/printdlg.h" -#include "wx/dcprint.h" - -// Use generic page setup dialog: use your own native one if one exists. -#include "wx/generic/prntdlgg.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxPrintDialog, wxDialog) -IMPLEMENT_CLASS(wxPageSetupDialog, wxDialog) -#endif - -wxPrintDialog::wxPrintDialog(): - wxDialog() -{ - m_dialogParent = NULL; - m_printerDC = NULL; -} - -wxPrintDialog::wxPrintDialog(wxWindow *p, wxPrintData* data): - wxDialog() -{ - Create(p, data); -} - -bool wxPrintDialog::Create(wxWindow *p, wxPrintData* data) -{ - m_dialogParent = p; - m_printerDC = NULL; - - if ( data ) - m_printData = *data; - - return TRUE; -} - -wxPrintDialog::~wxPrintDialog() -{ - if (m_printerDC) - delete m_printerDC; -} - -int wxPrintDialog::ShowModal() -{ - // TODO - return wxID_CANCEL; -} - -wxDC *wxPrintDialog::GetPrintDC() -{ - if (m_printerDC) - { - wxDC* dc = m_printerDC; - m_printerDC = NULL; - return dc; - } - else - return NULL; -} - -/* - * wxPageSetupDialog - */ - -wxPageSetupDialog::wxPageSetupDialog(): - wxDialog() -{ - m_dialogParent = NULL; -} - -wxPageSetupDialog::wxPageSetupDialog(wxWindow *p, wxPageSetupData *data): - wxDialog() -{ - Create(p, data); -} - -bool wxPageSetupDialog::Create(wxWindow *p, wxPageSetupData *data) -{ - m_dialogParent = p; - - if (data) - m_pageSetupData = (*data); - - return TRUE; -} - -wxPageSetupDialog::~wxPageSetupDialog() -{ -} - -int wxPageSetupDialog::ShowModal() -{ - // Uses generic page setup dialog - wxGenericPageSetupDialog *genericPageSetupDialog = new wxGenericPageSetupDialog(GetParent(), & m_pageSetupData); - int ret = genericPageSetupDialog->ShowModal(); - m_pageSetupData = genericPageSetupDialog->GetPageSetupData(); - genericPageSetupDialog->Close(TRUE); - return ret; -} - diff --git a/src/stubs/radiobox.cpp b/src/stubs/radiobox.cpp deleted file mode 100644 index da582d0e52..0000000000 --- a/src/stubs/radiobox.cpp +++ /dev/null @@ -1,194 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobox.cpp -// Purpose: wxRadioBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobox.h" -#endif - -#include "wx/radiobox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioBox, wxControl) -#endif - -// Radio box item -wxRadioBox::wxRadioBox() -{ - m_selectedButton = -1; - m_noItems = 0; - m_noRowsOrCols = 0; - m_majorDim = 0 ; -} - -bool wxRadioBox::Create(wxWindow *parent, wxWindowID id, const wxString& title, - const wxPoint& pos, const wxSize& size, - int n, const wxString choices[], - int majorDim, long style, - const wxValidator& val, const wxString& name) -{ - m_selectedButton = -1; - m_noItems = n; - - SetName(name); - SetValidator(val); - - parent->AddChild(this); - - m_windowStyle = (long&)style; - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - m_noRowsOrCols = majorDim; - - if (majorDim==0) - m_majorDim = n ; - else - m_majorDim = majorDim ; - - - // TODO create radiobox - return FALSE; -} - - -wxRadioBox::~wxRadioBox() -{ - // TODO -} - -wxString wxRadioBox::GetLabel(int item) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(int item, const wxString& label) -{ - // TODO -} - -int wxRadioBox::FindString(const wxString& s) const -{ - // TODO - return -1; -} - -void wxRadioBox::SetSelection(int n) -{ - if ((n < 0) || (n >= m_noItems)) - return; - // TODO - - m_selectedButton = n; -} - -// Get single selection, for single choice list items -int wxRadioBox::GetSelection() const -{ - return m_selectedButton; -} - -// Find string for position -wxString wxRadioBox::GetString(int n) const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxRadioBox::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxRadioBox::GetPosition(int *x, int *y) const -{ - // TODO -} - -wxString wxRadioBox::GetLabel() const -{ - // TODO - return wxString(""); -} - -void wxRadioBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioBox::SetFocus() -{ - // TODO -} - -bool wxRadioBox::Show(bool show) -{ - // TODO - return FALSE; -} - -// Enable a specific button -void wxRadioBox::Enable(int item, bool enable) -{ - // TODO -} - -// Enable all controls -void wxRadioBox::Enable(bool enable) -{ - wxControl::Enable(enable); - - // TODO -} - -// Show a specific button -void wxRadioBox::Show(int item, bool show) -{ - // TODO -} - -// For single selection items only -wxString wxRadioBox::GetStringSelection () const -{ - int sel = GetSelection (); - if (sel > -1) - return this->GetString (sel); - else - return wxString(""); -} - -bool wxRadioBox::SetStringSelection (const wxString& s) -{ - int sel = FindString (s); - if (sel > -1) - { - SetSelection (sel); - return TRUE; - } - else - return FALSE; -} - -void wxRadioBox::Command (wxCommandEvent & event) -{ - SetSelection (event.m_commandInt); - ProcessCommand (event); -} - - diff --git a/src/stubs/radiobut.cpp b/src/stubs/radiobut.cpp deleted file mode 100644 index 65baab38b6..0000000000 --- a/src/stubs/radiobut.cpp +++ /dev/null @@ -1,68 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: radiobut.cpp -// Purpose: wxRadioButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "radiobut.h" -#endif - -#include "wx/radiobut.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxRadioButton, wxControl) -#endif - -bool wxRadioButton::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style ; - - // TODO create radiobutton - return FALSE; -} - -void wxRadioButton::SetLabel(const wxString& label) -{ - // TODO -} - -void wxRadioButton::SetValue(bool value) -{ - // TODO -} - -// Get single selection, for single choice list items -bool wxRadioButton::GetValue() const -{ - // TODO - return FALSE; -} - -void wxRadioButton::Command (wxCommandEvent & event) -{ - SetValue ( (event.m_commandInt != 0) ); - ProcessCommand (event); -} - - diff --git a/src/stubs/region.cpp b/src/stubs/region.cpp deleted file mode 100644 index c71d4c605a..0000000000 --- a/src/stubs/region.cpp +++ /dev/null @@ -1,363 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// File: region.cpp -// Purpose: Region class -// Author: Markus Holzem/Julian Smart/AUTHOR -// Created: Fri Oct 24 10:46:34 MET 1997 -// RCS-ID: $Id$ -// Copyright: (c) 1997 Markus Holzem/Julian Smart/AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "region.h" -#endif - -#include "wx/region.h" -#include "wx/gdicmn.h" - -#if !USE_SHARED_LIBRARY - IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject) - IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject) -#endif - -//----------------------------------------------------------------------------- -// wxRegionRefData implementation -//----------------------------------------------------------------------------- - -class WXDLLEXPORT wxRegionRefData : public wxGDIRefData { -public: - wxRegionRefData() - { - } - - wxRegionRefData(const wxRegionRefData& data) - { - // TODO - } - - ~wxRegionRefData() - { - // TODO - } -}; - - -//----------------------------------------------------------------------------- -// wxRegion -//----------------------------------------------------------------------------- - -/*! - * Create an empty region. - */ -wxRegion::wxRegion() -{ - m_refData = new wxRegionRefData; - // TODO create empty region -} - -wxRegion::wxRegion(long x, long y, long w, long h) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxPoint& topLeft, const wxPoint& bottomRight) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -wxRegion::wxRegion(const wxRect& rect) -{ - m_refData = new wxRegionRefData; - // TODO create rect region -} - -/*! - * Destroy the region. - */ -wxRegion::~wxRegion() -{ - // m_refData unrefed in ~wxObject -} - -//----------------------------------------------------------------------------- -//# Modify region -//----------------------------------------------------------------------------- - -//! Clear current region -void wxRegion::Clear() -{ - UnRef(); -} - -//! Combine rectangle (x, y, w, h) with this. -bool wxRegion::Combine(long x, long y, long width, long height, wxRegionOp op) -{ - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - // If ref count is 1, that means it's 'ours' anyway so no action. - - // TODO create rect region - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO do combine region - - return FALSE; -} - -//! Union /e region with this. -bool wxRegion::Combine(const wxRegion& region, wxRegionOp op) -{ - if (region.Empty()) - return FALSE; - - // Don't change shared data - if (!m_refData) { - m_refData = new wxRegionRefData(); - } else if (m_refData->GetRefCount() > 1) { - wxRegionRefData* ref = (wxRegionRefData*)m_refData; - UnRef(); - m_refData = new wxRegionRefData(*ref); - } - - int mode = 0; // TODO platform-specific code - switch (op) - { - case wxRGN_AND: - // TODO - break ; - case wxRGN_OR: - // TODO - break ; - case wxRGN_XOR: - // TODO - break ; - case wxRGN_DIFF: - // TODO - break ; - case wxRGN_COPY: - default: - // TODO - break ; - } - - // TODO combine region - - return FALSE; -} - -bool wxRegion::Combine(const wxRect& rect, wxRegionOp op) -{ - return Combine(rect.GetLeft(), rect.GetTop(), rect.GetWidth(), rect.GetHeight(), op); -} - -//----------------------------------------------------------------------------- -//# Information on region -//----------------------------------------------------------------------------- - -// Outer bounds of region -void wxRegion::GetBox(long& x, long& y, long&w, long &h) const -{ - if (m_refData) { - // TODO get box - } else { - x = y = w = h = 0; - } -} - -wxRect wxRegion::GetBox() const -{ - long x, y, w, h; - GetBox(x, y, w, h); - return wxRect(x, y, w, h); -} - -// Is region empty? -bool wxRegion::Empty() const -{ - // TODO - return FALSE; -} - -//----------------------------------------------------------------------------- -//# Tests -//----------------------------------------------------------------------------- - -// Does the region contain the point (x,y)? -wxRegionContain wxRegion::Contains(long x, long y) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - return wxOutRegion; -} - -// Does the region contain the point pt? -wxRegionContain wxRegion::Contains(const wxPoint& pt) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle (x, y, w, h)? -wxRegionContain wxRegion::Contains(long x, long y, long w, long h) const -{ - if (!m_refData) - return wxOutRegion; - - // TODO. Return wxInRegion if within region. - if (0) - return wxInRegion; - else - return wxOutRegion; -} - -// Does the region contain the rectangle rect -wxRegionContain wxRegion::Contains(const wxRect& rect) const -{ - if (!m_refData) - return wxOutRegion; - - long x, y, w, h; - x = rect.x; - y = rect.y; - w = rect.GetWidth(); - h = rect.GetHeight(); - return Contains(x, y, w, h); -} - -/////////////////////////////////////////////////////////////////////////////// -// // -// wxRegionIterator // -// // -/////////////////////////////////////////////////////////////////////////////// - -/*! - * Initialize empty iterator - */ -wxRegionIterator::wxRegionIterator() : m_current(0), m_numRects(0), m_rects(NULL) -{ -} - -wxRegionIterator::~wxRegionIterator() -{ - if (m_rects) - delete[] m_rects; -} - -/*! - * Initialize iterator for region - */ -wxRegionIterator::wxRegionIterator(const wxRegion& region) -{ - m_rects = NULL; - - Reset(region); -} - -/*! - * Reset iterator for a new /e region. - */ -void wxRegionIterator::Reset(const wxRegion& region) -{ - m_current = 0; - m_region = region; - - if (m_rects) - delete[] m_rects; - - m_rects = NULL; - - if (m_region.Empty()) - m_numRects = 0; - else - { - // TODO create m_rects and fill with rectangles for this region - m_numRects = 0; - } -} - -/*! - * Increment iterator. The rectangle returned is the one after the - * incrementation. - */ -void wxRegionIterator::operator ++ () -{ - if (m_current < m_numRects) - ++m_current; -} - -/*! - * Increment iterator. The rectangle returned is the one before the - * incrementation. - */ -void wxRegionIterator::operator ++ (int) -{ - if (m_current < m_numRects) - ++m_current; -} - -long wxRegionIterator::GetX() const -{ - if (m_current < m_numRects) - return m_rects[m_current].x; - return 0; -} - -long wxRegionIterator::GetY() const -{ - if (m_current < m_numRects) - return m_rects[m_current].y; - return 0; -} - -long wxRegionIterator::GetW() const -{ - if (m_current < m_numRects) - return m_rects[m_current].width ; - return 0; -} - -long wxRegionIterator::GetH() const -{ - if (m_current < m_numRects) - return m_rects[m_current].height; - return 0; -} - diff --git a/src/stubs/scrolbar.cpp b/src/stubs/scrolbar.cpp deleted file mode 100644 index 54df181166..0000000000 --- a/src/stubs/scrolbar.cpp +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: scrolbar.cpp -// Purpose: wxScrollBar -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "scrolbar.h" -#endif - -#include "wx/scrolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxScrollBar, wxControl) - -#endif - -// Scrollbar -bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - if (!parent) - return FALSE; - parent->AddChild(this); - SetName(name); - SetValidator(validator); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO create scrollbar - return TRUE; -} - -wxScrollBar::~wxScrollBar() -{ -} - -void wxScrollBar::SetThumbPosition(int viewStart) -{ - // TODO -} - -int wxScrollBar::GetThumbPosition() const -{ - // TODO - return 0; -} - -void wxScrollBar::SetScrollbar(int position, int thumbSize, int range, int pageSize, - bool refresh) -{ - m_viewSize = pageSize; - m_pageSize = thumbSize; - m_objectSize = range; - - // TODO -} - - -void wxScrollBar::Command(wxCommandEvent& event) -{ - SetThumbPosition(event.m_commandInt); - ProcessCommand(event); -} - diff --git a/src/stubs/settings.cpp b/src/stubs/settings.cpp deleted file mode 100644 index 2beda5c2a6..0000000000 --- a/src/stubs/settings.cpp +++ /dev/null @@ -1,176 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settings.cpp -// Purpose: wxSettings -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "settings.h" -#endif - -#include "wx/settings.h" - -wxColour wxSystemSettings::GetSystemColour(int index) -{ - // TODO - return wxColour(); -} - -wxFont wxSystemSettings::GetSystemFont(int index) -{ - // TODO - switch (index) - { - case wxSYS_DEVICE_DEFAULT_FONT: - { - break; - } - case wxSYS_DEFAULT_PALETTE: - { - break; - } - case wxSYS_SYSTEM_FIXED_FONT: - { - break; - } - case wxSYS_SYSTEM_FONT: - { - break; - } - default: - case wxSYS_DEFAULT_GUI_FONT: - { - break; - } - } - - return wxFont(); -} - -// Get a system metric, e.g. scrollbar size -int wxSystemSettings::GetSystemMetric(int index) -{ - switch ( index) - { - case wxSYS_MOUSE_BUTTONS: - // TODO - return 0; - case wxSYS_BORDER_X: - // TODO - return 0; - case wxSYS_BORDER_Y: - // TODO - return 0; - case wxSYS_CURSOR_X: - // TODO - return 0; - case wxSYS_CURSOR_Y: - // TODO - return 0; - case wxSYS_DCLICK_X: - // TODO - return 0; - case wxSYS_DCLICK_Y: - // TODO - return 0; - case wxSYS_DRAG_X: - // TODO - return 0; - case wxSYS_DRAG_Y: - // TODO - return 0; - case wxSYS_EDGE_X: - // TODO - return 0; - case wxSYS_EDGE_Y: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_HSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_HTHUMB_X: - // TODO - return 0; - case wxSYS_ICON_X: - // TODO - return 0; - case wxSYS_ICON_Y: - // TODO - return 0; - case wxSYS_ICONSPACING_X: - // TODO - return 0; - case wxSYS_ICONSPACING_Y: - // TODO - return 0; - case wxSYS_WINDOWMIN_X: - // TODO - return 0; - case wxSYS_WINDOWMIN_Y: - // TODO - return 0; - case wxSYS_SCREEN_X: - // TODO - return 0; - case wxSYS_SCREEN_Y: - // TODO - return 0; - case wxSYS_FRAMESIZE_X: - // TODO - return 0; - case wxSYS_FRAMESIZE_Y: - // TODO - return 0; - case wxSYS_SMALLICON_X: - // TODO - return 0; - case wxSYS_SMALLICON_Y: - // TODO - return 0; - case wxSYS_HSCROLL_Y: - // TODO - return 0; - case wxSYS_VSCROLL_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_X: - // TODO - return 0; - case wxSYS_VSCROLL_ARROW_Y: - // TODO - return 0; - case wxSYS_VTHUMB_Y: - // TODO - return 0; - case wxSYS_CAPTION_Y: - // TODO - return 0; - case wxSYS_MENU_Y: - // TODO - return 0; - case wxSYS_NETWORK_PRESENT: - // TODO - return 0; - case wxSYS_PENWINDOWS_PRESENT: - // TODO - return 0; - case wxSYS_SHOW_SOUNDS: - // TODO - return 0; - case wxSYS_SWAP_BUTTONS: - // TODO - return 0; - default: - return 0; - } - return 0; -} - diff --git a/src/stubs/slider.cpp b/src/stubs/slider.cpp deleted file mode 100644 index c9952342a9..0000000000 --- a/src/stubs/slider.cpp +++ /dev/null @@ -1,190 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: slider.cpp -// Purpose: wxSlider -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "slider.h" -#endif - -#include "wx/slider.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSlider, wxControl) - -BEGIN_EVENT_TABLE(wxSlider, wxControl) -END_EVENT_TABLE() -#endif - - - -// Slider -wxSlider::wxSlider() -{ - m_pageSize = 1; - m_lineSize = 1; - m_rangeMax = 0; - m_rangeMin = 0; - m_tickFreq = 0; -} - -bool wxSlider::Create(wxWindow *parent, wxWindowID id, - int value, int minValue, int maxValue, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - SetName(name); - SetValidator(validator); - - if (parent) parent->AddChild(this); - - m_lineSize = 1; - m_windowStyle = style; - m_tickFreq = 0; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_rangeMax = maxValue; - m_rangeMin = minValue; - - m_pageSize = (int)((maxValue-minValue)/10); - - // TODO create slider - - return FALSE; -} - -wxSlider::~wxSlider() -{ -} - -int wxSlider::GetValue() const -{ - // TODO - return 0; -} - -void wxSlider::SetValue(int value) -{ - // TODO -} - -void wxSlider::GetSize(int *width, int *height) const -{ - // TODO -} - -void wxSlider::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxSlider::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxSlider::SetRange(int minValue, int maxValue) -{ - m_rangeMin = minValue; - m_rangeMax = maxValue; - - // TODO -} - -// For trackbars only -void wxSlider::SetTickFreq(int n, int pos) -{ - // TODO - m_tickFreq = n; -} - -void wxSlider::SetPageSize(int pageSize) -{ - // TODO - m_pageSize = pageSize; -} - -int wxSlider::GetPageSize() const -{ - return m_pageSize; -} - -void wxSlider::ClearSel() -{ - // TODO -} - -void wxSlider::ClearTicks() -{ - // TODO -} - -void wxSlider::SetLineSize(int lineSize) -{ - m_lineSize = lineSize; - // TODO -} - -int wxSlider::GetLineSize() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelEnd() const -{ - // TODO - return 0; -} - -int wxSlider::GetSelStart() const -{ - // TODO - return 0; -} - -void wxSlider::SetSelection(int minPos, int maxPos) -{ - // TODO -} - -void wxSlider::SetThumbLength(int len) -{ - // TODO -} - -int wxSlider::GetThumbLength() const -{ - // TODO - return 0; -} - -void wxSlider::SetTick(int tickPos) -{ - // TODO -} - -void wxSlider::Command (wxCommandEvent & event) -{ - SetValue (event.GetInt()); - ProcessCommand (event); -} - -bool wxSlider::Show(bool show) -{ - // TODO - return TRUE; -} - diff --git a/src/stubs/spinbutt.cpp b/src/stubs/spinbutt.cpp deleted file mode 100644 index cbea725592..0000000000 --- a/src/stubs/spinbutt.cpp +++ /dev/null @@ -1,78 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: spinbutt.cpp -// Purpose: wxSpinButton -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "spinbutt.h" -#endif - -#include "wx/spinbutt.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxSpinButton, wxControl) -#endif - -wxSpinButton::wxSpinButton() -{ - m_min = 0; - m_max = 100; -} - -bool wxSpinButton::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_min = 0; - m_max = 100; - - m_windowId = (id == -1) ? NewControlId() : id; - - // TODO create spin button - return FALSE; -} - -wxSpinButton::~wxSpinButton() -{ -} - -// Attributes -//////////////////////////////////////////////////////////////////////////// - -int wxSpinButton::GetValue() const -{ - // TODO - return 0; -} - -void wxSpinButton::SetValue(int val) -{ - // TODO -} - -void wxSpinButton::SetRange(int minVal, int maxVal) -{ - m_min = minVal; - m_max = maxVal; - // TODO -} - -// Spin event -IMPLEMENT_DYNAMIC_CLASS(wxSpinEvent, wxScrollEvent) - -wxSpinEvent::wxSpinEvent(wxEventType commandType, int id): - wxScrollEvent(commandType, id) -{ -} - diff --git a/src/stubs/statbmp.cpp b/src/stubs/statbmp.cpp deleted file mode 100644 index a67c558465..0000000000 --- a/src/stubs/statbmp.cpp +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbmp.cpp -// Purpose: wxStaticBitmap -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbmp.h" -#endif - -#include "wx/statbmp.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmap, wxControl) -#endif - -/* - * wxStaticBitmap - */ - -bool wxStaticBitmap::Create(wxWindow *parent, wxWindowID id, - const wxBitmap& bitmap, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - m_messageBitmap = bitmap; - SetName(name); - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static bitmap control - return FALSE; -} - -void wxStaticBitmap::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticBitmap::SetBitmap(const wxBitmap& bitmap) -{ - m_messageBitmap = bitmap; - - // TODO: redraw bitmap -} - diff --git a/src/stubs/statbox.cpp b/src/stubs/statbox.cpp deleted file mode 100644 index b239dc738c..0000000000 --- a/src/stubs/statbox.cpp +++ /dev/null @@ -1,62 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp -// Purpose: wxStaticBox -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif - -#include "wx/statbox.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Static box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - - if (parent) parent->AddChild(this); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - // TODO: create static box - return FALSE; -} - -void wxStaticBox::SetLabel(const wxString& label) -{ - // TODO -} - -void wxStaticBox::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - diff --git a/src/stubs/stattext.cpp b/src/stubs/stattext.cpp deleted file mode 100644 index 3b19c7184d..0000000000 --- a/src/stubs/stattext.cpp +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattext.cpp -// Purpose: wxStaticText -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "stattext.h" -#endif - -#include "wx/app.h" -#include "wx/stattext.h" - -#include - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStaticText, wxControl) -#endif - -bool wxStaticText::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - SetName(name); - if (parent) parent->AddChild(this); - - SetBackgroundColour(parent->GetBackgroundColour()) ; - SetForegroundColour(parent->GetForegroundColour()) ; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - m_windowStyle = style; - - SetFont(parent->GetFont()); - - // TODO - return FALSE; -} - -void wxStaticText::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxStaticText::SetLabel(const wxString& label) -{ - // TODO -} - diff --git a/src/stubs/statusbr.cpp b/src/stubs/statusbr.cpp deleted file mode 100644 index dff1ddec34..0000000000 --- a/src/stubs/statusbr.cpp +++ /dev/null @@ -1,162 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: statbar.cpp -// Purpose: native implementation of wxStatusBar (optional) -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 AUTHOR -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "statusbr.h" -#endif - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/stubs/statusbr.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxStatusBarXX, wxStatusBar); - -BEGIN_EVENT_TABLE(wxStatusBarXX, wxStatusBar) - EVT_SIZE(wxStatusBarXX::OnSize) -END_EVENT_TABLE() -#endif //USE_SHARED_LIBRARY - - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// wxStatusBarXX class -// ---------------------------------------------------------------------------- - -wxStatusBarXX::wxStatusBarXX() -{ - SetParent(NULL); -} - -wxStatusBarXX::wxStatusBarXX(wxWindow *parent, wxWindowID id, long style) -{ - Create(parent, id, style); -} - -bool wxStatusBarXX::Create(wxWindow *parent, wxWindowID id, long style) -{ - SetParent(parent); - - if (id == -1) - m_windowId = NewControlId(); - else - m_windowId = id; - - // TODO: create status bar - return FALSE; -} - -void wxStatusBarXX::SetFieldsCount(int nFields, const int widths[]) -{ - wxASSERT( (nFields > 0) && (nFields < 255) ); - - m_nFields = nFields; - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBarXX::SetStatusWidths(int n, const int widths[]) -{ - wxASSERT( n == m_nFields ); - - CopyFieldsWidth(widths); - SetFieldsWidth(); -} - -void wxStatusBarXX::CopyFieldsWidth(const int widths[]) -{ - if (widths && !m_statusWidths) - m_statusWidths = new int[m_nFields]; - - if ( widths != NULL ) { - for ( int i = 0; i < m_nFields; i++ ) - m_statusWidths[i] = widths[i]; - } - else { - delete [] m_statusWidths; - m_statusWidths = NULL; - } -} - -void wxStatusBarXX::SetFieldsWidth() -{ - int *pWidths = new int[m_nFields]; - - int nWindowWidth, y; - GetClientSize(&nWindowWidth, &y); - - if ( m_statusWidths == NULL ) { - // default: all fields have the same width - int nWidth = nWindowWidth / m_nFields; - for ( int i = 0; i < m_nFields; i++ ) - pWidths[i] = (i + 1) * nWidth; - } - else { - // -1 doesn't mean the same thing for wxWindows and Win32, recalc - int nTotalWidth = 0, - nVarCount = 0, - i; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nVarCount++; - else - nTotalWidth += m_statusWidths[i]; - } - - if ( nVarCount == 0 ) { - // wrong! at least one field must be of variable width - wxFAIL; - - nVarCount++; - } - - int nVarWidth = (nWindowWidth - nTotalWidth) / nVarCount; - - // do fill the array - int nCurPos = 0; - for ( i = 0; i < m_nFields; i++ ) { - if ( m_statusWidths[i] == -1 ) - nCurPos += nVarWidth; - else - nCurPos += m_statusWidths[i]; - pWidths[i] = nCurPos; - } - } - - // TODO: set widths - - delete [] pWidths; -} - -void wxStatusBarXX::SetStatusText(const wxString& strText, int nField) -{ - // TODO -} - -wxString wxStatusBarXX::GetStatusText(int nField) const -{ - wxASSERT( (nField > -1) && (nField < m_nFields) ); - - // TODO - return wxString(""); -} - -void wxStatusBarXX::OnSize(wxSizeEvent& event) -{ - // adjust fields widths to the new size - SetFieldsWidth(); -} diff --git a/src/stubs/tabctrl.cpp b/src/stubs/tabctrl.cpp deleted file mode 100644 index b3b45a72d1..0000000000 --- a/src/stubs/tabctrl.cpp +++ /dev/null @@ -1,201 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tabctrl.cpp -// Purpose: wxTabCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "tabctrl.h" -#endif - -#include "wx/control.h" -#include "wx/tabctrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTabCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTabCtrl, wxControl) -END_EVENT_TABLE() -#endif - -wxTabCtrl::wxTabCtrl() -{ - m_imageList = NULL; -} - -bool wxTabCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_imageList = NULL; - - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id < 0 ? NewControlId() : id); - - if (parent) parent->AddChild(this); - - // TODO: create tab control - return FALSE; -} - -wxTabCtrl::~wxTabCtrl() -{ -} - -void wxTabCtrl::Command(wxCommandEvent& event) -{ -} - -// Delete all items -bool wxTabCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -// Delete an item -bool wxTabCtrl::DeleteItem(int item) -{ - // TODO - return FALSE; -} - -// Get the selection -int wxTabCtrl::GetSelection() const -{ - // TODO - return 0; -} - -// Get the tab with the current keyboard focus -int wxTabCtrl::GetCurFocus() const -{ - // TODO - return 0; -} - -// Get the associated image list -wxImageList* wxTabCtrl::GetImageList() const -{ - return m_imageList; -} - -// Get the number of items -int wxTabCtrl::GetItemCount() const -{ - // TODO - return 0; -} - -// Get the rect corresponding to the tab -bool wxTabCtrl::GetItemRect(int item, wxRect& wxrect) const -{ - // TODO - return FALSE; -} - -// Get the number of rows -int wxTabCtrl::GetRowCount() const -{ - // TODO - return 0; -} - -// Get the item text -wxString wxTabCtrl::GetItemText(int item) const -{ - // TODO - return wxString(""); -} - -// Get the item image -int wxTabCtrl::GetItemImage(int item) const -{ - // TODO - return 0; -} - -// Get the item data -void* wxTabCtrl::GetItemData(int item) const -{ - // TODO - return NULL; -} - -// Hit test -int wxTabCtrl::HitTest(const wxPoint& pt, long& flags) -{ - // TODO - return 0; -} - -// Insert an item -bool wxTabCtrl::InsertItem(int item, const wxString& text, int imageId, void* data) -{ - // TODO - return FALSE; -} - -// Set the selection -int wxTabCtrl::SetSelection(int item) -{ - // TODO - return 0; -} - -// Set the image list -void wxTabCtrl::SetImageList(wxImageList* imageList) -{ - // TODO -} - -// Set the text for an item -bool wxTabCtrl::SetItemText(int item, const wxString& text) -{ - // TODO - return FALSE; -} - -// Set the image for an item -bool wxTabCtrl::SetItemImage(int item, int image) -{ - // TODO - return FALSE; -} - -// Set the data for an item -bool wxTabCtrl::SetItemData(int item, void* data) -{ - // TODO - return FALSE; -} - -// Set the size for a fixed-width tab control -void wxTabCtrl::SetItemSize(const wxSize& size) -{ - // TODO -} - -// Set the padding between tabs -void wxTabCtrl::SetPadding(const wxSize& padding) -{ - // TODO -} - -// Tab event -IMPLEMENT_DYNAMIC_CLASS(wxTabEvent, wxCommandEvent) - -wxTabEvent::wxTabEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ -} - diff --git a/src/stubs/taskbar.cpp b/src/stubs/taskbar.cpp deleted file mode 100644 index 5c91250cf0..0000000000 --- a/src/stubs/taskbar.cpp +++ /dev/null @@ -1,70 +0,0 @@ -///////////////////////////////////////////////////////////////////////// -// File: taskbar.cpp -// Purpose: Implements wxTaskBarIcon class for manipulating icons on -// the task bar. Optional. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "taskbar.h" -#endif - -#include - -wxTaskBarIcon::wxTaskBarIcon() -{ - // TODO -} - -wxTaskBarIcon::~wxTaskBarIcon() -{ - // TODO -} - -// Operations -bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip) -{ - // TODO - return FALSE; -} - -bool wxTaskBarIcon::RemoveIcon() -{ - // TODO - return FALSE; -} - -// Overridables -void wxTaskBarIcon::OnMouseMove() -{ -} - -void wxTaskBarIcon::OnLButtonDown() -{ -} - -void wxTaskBarIcon::OnLButtonUp() -{ -} - -void wxTaskBarIcon::OnRButtonDown() -{ -} - -void wxTaskBarIcon::OnRButtonUp() -{ -} - -void wxTaskBarIcon::OnLButtonDClick() -{ -} - -void wxTaskBarIcon::OnRButtonDClick() -{ -} - diff --git a/src/stubs/textctrl.cpp b/src/stubs/textctrl.cpp deleted file mode 100644 index 720e6082be..0000000000 --- a/src/stubs/textctrl.cpp +++ /dev/null @@ -1,558 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: textctrl.cpp -// Purpose: wxTextCtrl -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "textctrl.h" -#endif - -#include -#include -#include - -#include "wx/textctrl.h" -#include "wx/settings.h" -#include "wx/filefn.h" -#include "wx/utils.h" - -#if defined(__BORLANDC__) && !defined(__WIN32__) -#include -#else -#ifndef __GNUWIN32__ -#include -#endif -#endif - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTextCtrl, wxControl) - -BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) - EVT_DROP_FILES(wxTextCtrl::OnDropFiles) - EVT_MENU(wxID_CUT, wxTextCtrl::OnCut) - EVT_MENU(wxID_COPY, wxTextCtrl::OnCopy) - EVT_MENU(wxID_PASTE, wxTextCtrl::OnPaste) - EVT_MENU(wxID_UNDO, wxTextCtrl::OnUndo) - EVT_MENU(wxID_REDO, wxTextCtrl::OnRedo) - - EVT_UPDATE_UI(wxID_CUT, wxTextCtrl::OnUpdateCut) - EVT_UPDATE_UI(wxID_COPY, wxTextCtrl::OnUpdateCopy) - EVT_UPDATE_UI(wxID_PASTE, wxTextCtrl::OnUpdatePaste) - EVT_UPDATE_UI(wxID_UNDO, wxTextCtrl::OnUpdateUndo) - EVT_UPDATE_UI(wxID_REDO, wxTextCtrl::OnUpdateRedo) -END_EVENT_TABLE() -#endif - -// Text item -wxTextCtrl::wxTextCtrl() -#ifndef NO_TEXT_WINDOW_STREAM - :streambuf() -#endif -{ - m_fileName = ""; -} - -bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id, - const wxString& value, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) -{ - m_fileName = ""; - SetName(name); - SetValidator(validator); - if (parent) parent->AddChild(this); - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - return TRUE; -} - -wxString wxTextCtrl::GetValue() const -{ - // TODO - return wxString(""); -} - -void wxTextCtrl::SetValue(const wxString& value) -{ - // TODO -} - -void wxTextCtrl::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -// Clipboard operations -void wxTextCtrl::Copy() -{ - // TODO -} - -void wxTextCtrl::Cut() -{ - // TODO -} - -void wxTextCtrl::Paste() -{ - // TODO -} - -void wxTextCtrl::SetEditable(bool editable) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPoint(long pos) -{ - // TODO -} - -void wxTextCtrl::SetInsertionPointEnd() -{ - long pos = GetLastPosition(); - SetInsertionPoint(pos); -} - -long wxTextCtrl::GetInsertionPoint() const -{ - // TODO - return 0; -} - -long wxTextCtrl::GetLastPosition() const -{ - // TODO - return 0; -} - -void wxTextCtrl::Replace(long from, long to, const wxString& value) -{ - // TODO -} - -void wxTextCtrl::Remove(long from, long to) -{ - // TODO -} - -void wxTextCtrl::SetSelection(long from, long to) -{ - // TODO -} - -bool wxTextCtrl::LoadFile(const wxString& file) -{ - if (!wxFileExists(file)) - return FALSE; - - m_fileName = file; - - Clear(); - - ifstream input((char*) (const char*) file, ios::nocreate | ios::in); - - if (!input.bad()) - { - struct stat stat_buf; - if (stat(file, &stat_buf) < 0) - return FALSE; - // This may need to be a bigger buffer than the file size suggests, - // if it's a UNIX file. Give it an extra 1000 just in case. - char *tmp_buffer = (char*)malloc((size_t)(stat_buf.st_size+1+1000)); - long no_lines = 0; - long pos = 0; - while (!input.eof() && input.peek() != EOF) - { - input.getline(wxBuffer, 500); - int len = strlen(wxBuffer); - wxBuffer[len] = 13; - wxBuffer[len+1] = 10; - wxBuffer[len+2] = 0; - strcpy(tmp_buffer+pos, wxBuffer); - pos += strlen(wxBuffer); - no_lines++; - } - - // TODO add line - - free(tmp_buffer); - - return TRUE; - } - return FALSE; -} - -// If file is null, try saved file name first -// Returns TRUE if succeeds. -bool wxTextCtrl::SaveFile(const wxString& file) -{ - wxString theFile(file); - if (theFile == "") - theFile = m_fileName; - if (theFile == "") - return FALSE; - m_fileName = theFile; - - ofstream output((char*) (const char*) theFile); - if (output.bad()) - return FALSE; - - // TODO get and save text - - return FALSE; -} - -void wxTextCtrl::WriteText(const wxString& text) -{ - // TODO write text to control -} - -void wxTextCtrl::AppendText(const wxString& text) -{ - // TODO append text to control -} - -void wxTextCtrl::Clear() -{ - // TODO -} - -bool wxTextCtrl::IsModified() const -{ - // TODO - return FALSE; -} - -// Makes 'unmodified' -void wxTextCtrl::DiscardEdits() -{ - // TODO -} - -int wxTextCtrl::GetNumberOfLines() const -{ - // TODO - return 0; -} - -long wxTextCtrl::XYToPosition(long x, long y) const -{ - // TODO - return 0; -} - -void wxTextCtrl::PositionToXY(long pos, long *x, long *y) const -{ - // TODO -} - -void wxTextCtrl::ShowPosition(long pos) -{ - // TODO -} - -int wxTextCtrl::GetLineLength(long lineNo) const -{ - // TODO - return 0; -} - -wxString wxTextCtrl::GetLineText(long lineNo) const -{ - // TODO - return wxString(""); -} - -bool wxTextCtrl::CanCopy() const -{ - // Can copy if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanCut() const -{ - // Can cut if there's a selection - long from, to; - GetSelection(& from, & to); - return (from != to) ; -} - -bool wxTextCtrl::CanPaste() const -{ - return IsEditable() ; -} - -// Undo/redo -void wxTextCtrl::Undo() -{ - // TODO -} - -void wxTextCtrl::Redo() -{ - // TODO -} - -bool wxTextCtrl::CanUndo() const -{ - // TODO - return FALSE; -} - -bool wxTextCtrl::CanRedo() const -{ - // TODO - return FALSE; -} - -// If the return values from and to are the same, there is no -// selection. -void wxTextCtrl::GetSelection(long* from, long* to) const -{ - // TODO - *from = 0; - *to = 0; -} - -bool wxTextCtrl::IsEditable() const -{ - // TODO - return FALSE; -} - -void wxTextCtrl::Command(wxCommandEvent & event) -{ - SetValue (event.GetString()); - ProcessCommand (event); -} - -void wxTextCtrl::OnDropFiles(wxDropFilesEvent& event) -{ - // By default, load the first file into the text window. - if (event.GetNumberOfFiles() > 0) - { - LoadFile(event.GetFiles()[0]); - } -} - -// The streambuf code was partly taken from chapter 3 by Jerry Schwarz of -// AT&T's "C++ Lanuage System Release 3.0 Library Manual" - Stein Somers - -//========================================================================= -// Called then the buffer is full (gcc 2.6.3) -// or when "endl" is output (Borland 4.5) -//========================================================================= -// Class declaration using multiple inheritance doesn't work properly for -// Borland. See note in wb_text.h. -#ifndef NO_TEXT_WINDOW_STREAM -int wxTextCtrl::overflow(int c) -{ - // Make sure there is a holding area - if ( allocate()==EOF ) - { - wxError("Streambuf allocation failed","Internal error"); - return EOF; - } - - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - // Reset get area - setg(0,0,0); - - // Make sure there is a put area - if ( ! pptr() ) - { -/* This doesn't seem to be fatal so comment out error message */ -// wxError("Put area not opened","Internal error"); - setp( base(), base() ); - } - - // Determine how many characters have been inserted but no consumed - int plen = pptr() - pbase(); - - // Now Jerry relies on the fact that the buffer is at least 2 chars - // long, but the holding area "may be as small as 1" ??? - // And we need an additional \0, so let's keep this inefficient but - // safe copy. - - // If c!=EOF, it is a character that must also be comsumed - int xtra = c==EOF? 0 : 1; - - // Write temporary C-string to wxTextWindow - { - char *txt = new char[plen+xtra+1]; - memcpy(txt, pbase(), plen); - txt[plen] = (char)c; // append c - txt[plen+xtra] = '\0'; // append '\0' or overwrite c - // If the put area already contained \0, output will be truncated there - AppendText(txt); - delete[] txt; - } - - // Reset put area - setp(pbase(), epptr()); - -#if defined(__WATCOMC__) - return __NOT_EOF; -#elif defined(zapeof) // HP-UX (all cfront based?) - return zapeof(c); -#else - return c!=EOF ? c : 0; // this should make everybody happy -#endif -} - -//========================================================================= -// called then "endl" is output (gcc) or then explicit sync is done (Borland) -//========================================================================= -int wxTextCtrl::sync() -{ - // Verify that there are no characters in get area - if ( gptr() && gptr() < egptr() ) - { - wxError("Who's trespassing my get area?","Internal error"); - return EOF; - } - - if ( pptr() && pptr() > pbase() ) return overflow(EOF); - - return 0; -/* OLD CODE - int len = pptr() - pbase(); - char *txt = new char[len+1]; - strncpy(txt, pbase(), len); - txt[len] = '\0'; - (*this) << txt; - setp(pbase(), epptr()); - delete[] txt; - return 0; -*/ -} - -//========================================================================= -// Should not be called by a "ostream". Used by a "istream" -//========================================================================= -int wxTextCtrl::underflow() -{ - return EOF; -} -#endif - -wxTextCtrl& wxTextCtrl::operator<<(const wxString& s) -{ - AppendText(s); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(float f) -{ - wxString str; - str.Printf("%.2f", f); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(double d) -{ - wxString str; - str.Printf("%.2f", d); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(int i) -{ - wxString str; - str.Printf("%d", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(long i) -{ - wxString str; - str.Printf("%ld", i); - AppendText(str); - return *this; -} - -wxTextCtrl& wxTextCtrl::operator<<(const char c) -{ - char buf[2]; - - buf[0] = c; - buf[1] = 0; - AppendText(buf); - return *this; -} - -void wxTextCtrl::OnCut(wxCommandEvent& event) -{ - Cut(); -} - -void wxTextCtrl::OnCopy(wxCommandEvent& event) -{ - Copy(); -} - -void wxTextCtrl::OnPaste(wxCommandEvent& event) -{ - Paste(); -} - -void wxTextCtrl::OnUndo(wxCommandEvent& event) -{ - Undo(); -} - -void wxTextCtrl::OnRedo(wxCommandEvent& event) -{ - Redo(); -} - -void wxTextCtrl::OnUpdateCut(wxUpdateUIEvent& event) -{ - event.Enable( CanCut() ); -} - -void wxTextCtrl::OnUpdateCopy(wxUpdateUIEvent& event) -{ - event.Enable( CanCopy() ); -} - -void wxTextCtrl::OnUpdatePaste(wxUpdateUIEvent& event) -{ - event.Enable( CanPaste() ); -} - -void wxTextCtrl::OnUpdateUndo(wxUpdateUIEvent& event) -{ - event.Enable( CanUndo() ); -} - -void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event) -{ - event.Enable( CanRedo() ); -} diff --git a/src/stubs/thread.cpp b/src/stubs/thread.cpp deleted file mode 100644 index 34ad1a4f14..0000000000 --- a/src/stubs/thread.cpp +++ /dev/null @@ -1,265 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: thread.cpp -// Purpose: wxThread Implementation. For Unix ports, see e.g. src/gtk -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997); Guilhem Lavaux (1998) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "thread.h" -#endif - -#include "wx/module.h" -#include "wx/thread.h" -#include "wx/utils.h" - -#if wxUSE_THREADS - -enum thread_state { - STATE_IDLE = 0, - STATE_RUNNING, - STATE_CANCELED, - STATE_EXITED -}; - -///////////////////////////////////////////////////////////////////////////// -// Static variables -///////////////////////////////////////////////////////////////////////////// - -wxMutex *wxMainMutex; // controls access to all GUI functions - -///////////////////////////////////////////////////////////////////////////// -// Windows implementation -///////////////////////////////////////////////////////////////////////////// - -class wxMutexInternal { -public: - // TODO: internal mutex handle -}; - -wxMutex::wxMutex() -{ - p_internal = new wxMutexInternal; - // TODO: create internal mutext handle - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxDebugMsg("wxMutex warning: freeing a locked mutex (%d locks)\n", m_locked); - // TODO: free internal mutext handle -} - -wxMutexError wxMutex::Lock() -{ - // TODO - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - // TODO - m_locked++; - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked > 0) - m_locked--; - - // TODO - return wxMUTEX_NO_ERROR; -} - -class wxConditionInternal { -public: - // TODO: internal handle - int waiters; -}; - -wxCondition::wxCondition() -{ - p_internal = new wxConditionInternal; - // TODO: create internal handle - p_internal->waiters = 0; -} - -wxCondition::~wxCondition() -{ - // TODO: destroy internal handle -} - -void wxCondition::Wait(wxMutex& mutex) -{ - mutex.Unlock(); - p_internal->waiters++; - // TODO wait here - p_internal->waiters--; - mutex.Lock(); -} - -bool wxCondition::Wait(wxMutex& mutex, unsigned long sec, - unsigned long nsec) -{ - mutex.Unlock(); - p_internal->waiters++; - - // TODO wait here - p_internal->waiters--; - mutex.Lock(); - - return FALSE; -} - -void wxCondition::Signal() -{ - // TODO -} - -void wxCondition::Broadcast() -{ - // TODO -} - -class wxThreadInternal { -public: - // TODO -}; - -wxThreadError wxThread::Create() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Destroy() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Pause() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - // TODO - return wxTHREAD_NO_ERROR; -} - -void wxThread::Exit(void *status) -{ - // TODO -} - -void wxThread::SetPriority(int prio) -{ - // TODO -} - -int wxThread::GetPriority() const -{ - // TODO - return 0; -} - -void wxThread::DeferDestroy(bool on) -{ - // TODO -} - -void wxThread::TestDestroy() -{ - // TODO -} - -void *wxThread::Join() -{ - // TODO - return (void*) NULL; -} - -unsigned long wxThread::GetID() const -{ - // TODO - return 0; -} - -/* -wxThread *wxThread::GetThreadFromID(unsigned long id) -{ - // TODO - return NULL; -} -*/ - -bool wxThread::IsAlive() const -{ - // TODO - return FALSE; -} - -bool wxThread::IsRunning() const -{ - // TODO - return FALSE; -} - -bool wxThread::IsMain() -{ - // TODO - return FALSE; -} - -wxThread::wxThread() -{ - p_internal = new wxThreadInternal(); - - // TODO -} - -wxThread::~wxThread() -{ - Destroy(); - Join(); - delete p_internal; -} - -// The default callback just joins the thread and throws away the result. -void wxThread::OnExit() -{ - Join(); -} - -// Automatic initialization -class wxThreadModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxThreadModule) -public: - virtual bool OnInit() { - /* TODO p_mainid = GetCurrentThread(); */ - wxMainMutex = new wxMutex(); - wxMainMutex->Lock(); - return TRUE; - } - - // Global cleanup - virtual void OnExit() { - wxMainMutex->Unlock(); - delete wxMainMutex; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -#endif - // wxUSE_THREADS diff --git a/src/stubs/timer.cpp b/src/stubs/timer.cpp deleted file mode 100644 index 5262040cf6..0000000000 --- a/src/stubs/timer.cpp +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: timer.cpp -// Purpose: wxTimer implementation -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "timer.h" -#endif - -#include "wx/timer.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject) -#endif - -wxTimer::wxTimer() -{ - m_milli = 0 ; - m_id = 0; - m_oneShot = FALSE; -} - -wxTimer::~wxTimer() -{ - Stop(); -} - -bool wxTimer::Start(int milliseconds,bool mode) -{ - m_oneShot = mode ; - if (milliseconds <= 0) - return FALSE; - - m_milli = milliseconds; - - // TODO: set the timer going. - return FALSE; -} - -void wxTimer::Stop() -{ - m_id = 0 ; - m_milli = 0 ; -} - - diff --git a/src/stubs/toolbar.cpp b/src/stubs/toolbar.cpp deleted file mode 100644 index 3cb859e366..0000000000 --- a/src/stubs/toolbar.cpp +++ /dev/null @@ -1,145 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: toolbar.cpp -// Purpose: wxToolBar -// Author: AUTHOR -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "toolbar.h" -#endif - -#include "wx/wx.h" -#include "wx/toolbar.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase) - -BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase) -END_EVENT_TABLE() -#endif - -wxToolBar::wxToolBar() -{ - m_maxWidth = -1; - m_maxHeight = -1; - m_defaultWidth = 24; - m_defaultHeight = 22; - // TODO -} - -bool wxToolBar::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxString& name) -{ - m_maxWidth = -1; - m_maxHeight = -1; - - m_defaultWidth = 24; - m_defaultHeight = 22; - SetName(name); - - m_windowStyle = style; - - SetParent(parent); - - if (parent) parent->AddChild(this); - - // TODO create toolbar - - return FALSE; -} - -wxToolBar::~wxToolBar() -{ - // TODO -} - -bool wxToolBar::CreateTools() -{ - if (m_tools.Number() == 0) - return FALSE; - - // TODO - return FALSE; -} - -void wxToolBar::SetToolBitmapSize(const wxSize& size) -{ - m_defaultWidth = size.x; m_defaultHeight = size.y; - // TODO -} - -wxSize wxToolBar::GetMaxSize() const -{ - // TODO - return wxSize(0, 0); -} - -// The button size is bigger than the bitmap size -wxSize wxToolBar::GetToolSize() const -{ - // TODO - return wxSize(m_defaultWidth + 8, m_defaultHeight + 7); -} - -void wxToolBar::EnableTool(int toolIndex, bool enable) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - tool->m_enabled = enable; - // TODO enable button - } -} - -void wxToolBar::ToggleTool(int toolIndex, bool toggle) -{ - wxNode *node = m_tools.Find((long)toolIndex); - if (node) - { - wxToolBarTool *tool = (wxToolBarTool *)node->Data(); - if (tool->m_isToggle) - { - tool->m_toggleState = toggle; - // TODO: set toggle state - } - } -} - -void wxToolBar::ClearTools() -{ - // TODO - wxToolBarBase::ClearTools(); -} - -// If pushedBitmap is NULL, a reversed version of bitmap is -// created and used as the pushed/toggled image. -// If toggle is TRUE, the button toggles between the two states. - -wxToolBarTool *wxToolBar::AddTool(int index, const wxBitmap& bitmap, const wxBitmap& pushedBitmap, - bool toggle, long xPos, long yPos, wxObject *clientData, const wxString& helpString1, const wxString& helpString2) -{ - wxToolBarTool *tool = new wxToolBarTool(index, bitmap, wxNullBitmap, toggle, xPos, yPos, helpString1, helpString2); - tool->m_clientData = clientData; - - if (xPos > -1) - tool->m_x = xPos; - else - tool->m_x = m_xMargin; - - if (yPos > -1) - tool->m_y = yPos; - else - tool->m_y = m_yMargin; - - tool->SetSize(GetDefaultButtonWidth(), GetDefaultButtonHeight()); - - m_tools.Append((long)index, tool); - return tool; -} - diff --git a/src/stubs/treectrl.cpp b/src/stubs/treectrl.cpp deleted file mode 100644 index 137a885dbf..0000000000 --- a/src/stubs/treectrl.cpp +++ /dev/null @@ -1,418 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: treectrl.cpp -// Purpose: wxTreeCtrl. See also Robert's generic wxTreeCtrl. -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "treectrl.h" -#endif - -#include "wx/stubs/textctrl.h" -#include "wx/stubs/treectrl.h" - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrl, wxControl) -IMPLEMENT_DYNAMIC_CLASS(wxTreeItem, wxObject) - -#endif - -wxTreeCtrl::wxTreeCtrl() -{ - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; -} - -bool wxTreeCtrl::Create(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style, const wxValidator& validator, const wxString& name) -{ - SetName(name); - SetValidator(validator); - - m_imageListNormal = NULL; - m_imageListState = NULL; - m_textCtrl = NULL; - - m_windowStyle = style; - - SetParent(parent); - - m_windowId = (id == -1) ? NewControlId() : id; - - if (parent) parent->AddChild(this); - - // TODO create tree control - - return FALSE; -} - -wxTreeCtrl::~wxTreeCtrl() -{ - if (m_textCtrl) - { - delete m_textCtrl; - } -} - -// Attributes -int wxTreeCtrl::GetCount() const -{ - // TODO - return 0; -} - -int wxTreeCtrl::GetIndent() const -{ - // TODO - return 0; -} - -void wxTreeCtrl::SetIndent(int indent) -{ - // TODO -} - -wxImageList *wxTreeCtrl::GetImageList(int which) const -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - return m_imageListNormal; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - return m_imageListState; - } - return NULL; -} - -void wxTreeCtrl::SetImageList(wxImageList *imageList, int which) -{ - if ( which == wxIMAGE_LIST_NORMAL ) - { - m_imageListNormal = imageList; - } - else if ( which == wxIMAGE_LIST_STATE ) - { - m_imageListState = imageList; - } - // TODO -} - -long wxTreeCtrl::GetNextItem(long item, int code) const -{ - // TODO - return 0; -} - -bool wxTreeCtrl::ItemHasChildren(long item) const -{ - // TODO - return FALSE; -} - -long wxTreeCtrl::GetChild(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetParent(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetFirstVisibleItem() const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetNextVisibleItem(long item) const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetSelection() const -{ - // TODO - return 0; -} - -long wxTreeCtrl::GetRootItem() const -{ - // TODO - return 0; -} - -bool wxTreeCtrl::GetItem(wxTreeItem& info) const -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::SetItem(wxTreeItem& info) -{ - // TODO - return FALSE; -} - -int wxTreeCtrl::GetItemState(long item, long stateMask) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_stateMask = stateMask; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - - return info.m_state; -} - -bool wxTreeCtrl::SetItemState(long item, long state, long stateMask) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_STATE ; - info.m_state = state; - info.m_stateMask = stateMask; - info.m_itemId = item; - - return SetItem(info); -} - -bool wxTreeCtrl::SetItemImage(long item, int image, int selImage) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_IMAGE ; - info.m_image = image; - if ( selImage > -1) - { - info.m_selectedImage = selImage; - info.m_mask |= wxTREE_MASK_SELECTED_IMAGE; - } - info.m_itemId = item; - - return SetItem(info); -} - -wxString wxTreeCtrl::GetItemText(long item) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_TEXT ; - info.m_itemId = item; - - if (!GetItem(info)) - return wxString(""); - return info.m_text; -} - -void wxTreeCtrl::SetItemText(long item, const wxString& str) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_TEXT ; - info.m_itemId = item; - info.m_text = str; - - SetItem(info); -} - -long wxTreeCtrl::GetItemData(long item) const -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_DATA ; - info.m_itemId = item; - - if (!GetItem(info)) - return 0; - return info.m_data; -} - -bool wxTreeCtrl::SetItemData(long item, long data) -{ - wxTreeItem info; - - info.m_mask = wxTREE_MASK_DATA ; - info.m_itemId = item; - info.m_data = data; - - return SetItem(info); -} - -bool wxTreeCtrl::GetItemRect(long item, wxRect& rect, bool textOnly) const -{ - // TODO - return FALSE; -} - -wxTextCtrl* wxTreeCtrl::GetEditControl() const -{ - return m_textCtrl; -} - -// Operations -bool wxTreeCtrl::DeleteItem(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::ExpandItem(long item, int action) -{ - // TODO - switch ( action ) - { - case wxTREE_EXPAND_EXPAND: - break; - - case wxTREE_EXPAND_COLLAPSE: - break; - - case wxTREE_EXPAND_COLLAPSE_RESET: - break; - - case wxTREE_EXPAND_TOGGLE: - break; - - default: - wxFAIL_MSG("unknown action in wxTreeCtrl::ExpandItem"); - } - - bool bOk = FALSE; // TODO expand item - - // May not send messages, so emulate them - if ( bOk ) { - wxTreeEvent event(wxEVT_NULL, m_windowId); - event.m_item.m_itemId = item; - event.m_item.m_mask = - event.m_item.m_stateMask = 0xffff; // get all - GetItem(event.m_item); - - bool bIsExpanded = (event.m_item.m_state & wxTREE_STATE_EXPANDED) != 0; - - event.m_code = action; - event.SetEventObject(this); - - // @@@ return values of {EXPAND|COLLAPS}ING event handler is discarded - event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDING - : wxEVT_COMMAND_TREE_ITEM_COLLAPSING); - GetEventHandler()->ProcessEvent(event); - - event.SetEventType(bIsExpanded ? wxEVT_COMMAND_TREE_ITEM_EXPANDED - : wxEVT_COMMAND_TREE_ITEM_COLLAPSED); - GetEventHandler()->ProcessEvent(event); - } - - return bOk; -} - -long wxTreeCtrl::InsertItem(long parent, wxTreeItem& info, long insertAfter) -{ - // TODO - return 0; -} - -long wxTreeCtrl::InsertItem(long parent, const wxString& label, int image, int selImage, - long insertAfter) -{ - wxTreeItem info; - info.m_text = label; - info.m_mask = wxTREE_MASK_TEXT; - if ( image > -1 ) - { - info.m_mask |= wxTREE_MASK_IMAGE | wxTREE_MASK_SELECTED_IMAGE; - info.m_image = image; - if ( selImage == -1 ) - info.m_selectedImage = image; - else - info.m_selectedImage = selImage; - } - - return InsertItem(parent, info, insertAfter); -} - -bool wxTreeCtrl::SelectItem(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::ScrollTo(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::DeleteAllItems() -{ - // TODO - return FALSE; -} - -wxTextCtrl* wxTreeCtrl::EditLabel(long item, wxClassInfo* textControlClass) -{ - // TODO - return NULL; -} - -// End label editing, optionally cancelling the edit -bool wxTreeCtrl::EndEditLabel(bool cancel) -{ - // TODO - return FALSE; -} - -long wxTreeCtrl::HitTest(const wxPoint& point, int& flags) -{ - // TODO - return 0; -} - -bool wxTreeCtrl::SortChildren(long item) -{ - // TODO - return FALSE; -} - -bool wxTreeCtrl::EnsureVisible(long item) -{ - // TODO - return FALSE; -} - -// Tree item structure -wxTreeItem::wxTreeItem() -{ - m_mask = 0; - m_itemId = 0; - m_state = 0; - m_stateMask = 0; - m_image = -1; - m_selectedImage = -1; - m_children = 0; - m_data = 0; -} - -// Tree event -IMPLEMENT_DYNAMIC_CLASS(wxTreeEvent, wxCommandEvent) - -wxTreeEvent::wxTreeEvent(wxEventType commandType, int id): - wxCommandEvent(commandType, id) -{ - m_code = 0; - m_oldItem = 0; -} - diff --git a/src/stubs/utils.cpp b/src/stubs/utils.cpp deleted file mode 100644 index 940bdc21bc..0000000000 --- a/src/stubs/utils.cpp +++ /dev/null @@ -1,272 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.cpp -// Purpose: Various utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// Note: this is done in utilscmn.cpp now. -// #pragma implementation -// #pragma implementation "utils.h" -#endif - -#include "wx/setup.h" -#include "wx/utils.h" -#include "wx/app.h" - -#include - -#include -#include -#include -#include - -// Get full hostname (eg. DoDo.BSn-Germany.crg.de) -bool wxGetHostName(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -// Get user ID e.g. jacs -bool wxGetUserId(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -// Get user name e.g. AUTHOR -bool wxGetUserName(char *buf, int maxSize) -{ - // TODO - return FALSE; -} - -int wxKill(long pid, int sig) -{ - // TODO - return 0; -} - -// -// Execute a program in an Interactive Shell -// -bool wxShell(const wxString& command) -{ - // TODO - return FALSE; -} - -// Get free memory in bytes, or -1 if cannot determine amount (e.g. on UNIX) -long wxGetFreeMemory() -{ - // TODO - return 0; -} - -void wxSleep(int nSecs) -{ - // TODO -} - -// Consume all events until no more left -void wxFlushEvents() -{ -} - -// Output a debug message, in a system dependent fashion. -void wxDebugMsg(const char *fmt ...) -{ - va_list ap; - static char buffer[512]; - - if (!wxTheApp->GetWantDebugOutput()) - return ; - - va_start(ap, fmt); - - // wvsprintf(buffer,fmt,ap) ; - // TODO: output buffer - - va_end(ap); -} - -// Non-fatal error: pop up message box and (possibly) continue -void wxError(const wxString& msg, const wxString& title) -{ - // TODO - wxExit(); -} - -// Fatal error: pop up message box and abort -void wxFatalError(const wxString& msg, const wxString& title) -{ - // TODO -} - -// Emit a beeeeeep -void wxBell() -{ - // TODO -} - -int wxGetOsVersion(int *majorVsn, int *minorVsn) -{ - // TODO - return 0; -} - -// Reading and writing resources (eg WIN.INI, .Xdefaults) -#if wxUSE_RESOURCES -bool wxWriteResource(const wxString& section, const wxString& entry, const wxString& value, const wxString& file) -{ - // TODO - return FALSE; -} - -bool wxWriteResource(const wxString& section, const wxString& entry, float value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%.4f", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, long value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%ld", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxWriteResource(const wxString& section, const wxString& entry, int value, const wxString& file) -{ - char buf[50]; - sprintf(buf, "%d", value); - return wxWriteResource(section, entry, buf, file); -} - -bool wxGetResource(const wxString& section, const wxString& entry, char **value, const wxString& file) -{ - // TODO - return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, float *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (float)strtod(s, NULL); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, long *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} - -bool wxGetResource(const wxString& section, const wxString& entry, int *value, const wxString& file) -{ - char *s = NULL; - bool succ = wxGetResource(section, entry, (char **)&s, file); - if (succ) - { - *value = (int)strtol(s, NULL, 10); - delete[] s; - return TRUE; - } - else return FALSE; -} -#endif // wxUSE_RESOURCES - -static int wxBusyCursorCount = 0; - -// Set the cursor to the busy cursor for all windows -void wxBeginBusyCursor(wxCursor *cursor) -{ - wxBusyCursorCount ++; - if (wxBusyCursorCount == 1) - { - // TODO - } - else - { - // TODO - } -} - -// Restore cursor to normal -void wxEndBusyCursor() -{ - if (wxBusyCursorCount == 0) - return; - - wxBusyCursorCount --; - if (wxBusyCursorCount == 0) - { - // TODO - } -} - -// TRUE if we're between the above two calls -bool wxIsBusy() -{ - return (wxBusyCursorCount > 0); -} - -char *wxGetUserHome (const wxString& user) -{ - // TODO - return NULL; -} - -// Check whether this window wants to process messages, e.g. Stop button -// in long calculations. -bool wxCheckForInterrupt(wxWindow *wnd) -{ - // TODO - return FALSE; -} - -void wxGetMousePosition( int* x, int* y ) -{ - // TODO -}; - -// Return TRUE if we have a colour display -bool wxColourDisplay() -{ - // TODO - return TRUE; -} - -// Returns depth of screen -int wxDisplayDepth() -{ - // TODO - return 0; -} - -// Get size of display -void wxDisplaySize(int *width, int *height) -{ - // TODO -} - diff --git a/src/stubs/utilsexc.cpp b/src/stubs/utilsexc.cpp deleted file mode 100644 index b842d08e90..0000000000 --- a/src/stubs/utilsexc.cpp +++ /dev/null @@ -1,28 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utilsexec.cpp -// Purpose: Execution-related utilities -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -#include "wx/utils.h" - -#include -#include -#include - -#define wxEXECUTE_WIN_MESSAGE 10000 - -long wxExecute(const wxString& command, bool sync, wxProcess *handler) -{ - // TODO - return 0; -} diff --git a/src/stubs/wave.cpp b/src/stubs/wave.cpp deleted file mode 100644 index c25681858c..0000000000 --- a/src/stubs/wave.cpp +++ /dev/null @@ -1,61 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave class implementation: optional -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include "wx/object.h" -#include "wx/string.h" -#include "wx/stubs/wave.h" - -wxWave::wxWave() - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ -} - -wxWave::wxWave(const wxString& sFileName, bool isResource) - : m_waveData(NULL), m_waveLength(0), m_isResource(FALSE) -{ - Create(sFileName, isResource); -} - - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& fileName, bool isResource) -{ - Free(); - - // TODO - - return FALSE; -} - -bool wxWave::Play(bool async, bool looped) const -{ - if (!IsOk()) - return FALSE; - - // TODO - return FALSE; -} - -bool wxWave::Free() -{ - // TODO - return FALSE; -} - - diff --git a/src/stubs/window.cpp b/src/stubs/window.cpp deleted file mode 100644 index 6970db0614..0000000000 --- a/src/stubs/window.cpp +++ /dev/null @@ -1,1317 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows.cpp -// Purpose: wxWindow -// Author: AUTHOR -// Modified by: -// Created: ??/??/98 -// RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "window.h" -#endif - -#include "wx/setup.h" -#include "wx/menu.h" -#include "wx/dc.h" -#include "wx/dcclient.h" -#include "wx/utils.h" -#include "wx/app.h" -#include "wx/panel.h" -#include "wx/layout.h" -#include "wx/dialog.h" -#include "wx/listbox.h" -#include "wx/button.h" -#include "wx/settings.h" -#include "wx/msgdlg.h" -#include "wx/frame.h" - -#include "wx/menuitem.h" -#include "wx/log.h" - -#if wxUSE_DRAG_AND_DROP -#include "wx/dnd.h" -#endif - -#include - -extern wxList wxPendingDelete; - -#if !USE_SHARED_LIBRARY -IMPLEMENT_DYNAMIC_CLASS(wxWindow, wxEvtHandler) - -BEGIN_EVENT_TABLE(wxWindow, wxEvtHandler) - EVT_CHAR(wxWindow::OnChar) - EVT_KEY_DOWN(wxWindow::OnKeyDown) - EVT_KEY_UP(wxWindow::OnKeyUp) - EVT_ERASE_BACKGROUND(wxWindow::OnEraseBackground) - EVT_SYS_COLOUR_CHANGED(wxWindow::OnSysColourChanged) - EVT_INIT_DIALOG(wxWindow::OnInitDialog) - EVT_IDLE(wxWindow::OnIdle) -END_EVENT_TABLE() - -#endif - - -// Constructor -wxWindow::wxWindow() -{ - // Generic - m_isWindow = TRUE; // An optimization - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_children = new wxList; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - m_defaultItem = NULL; - m_returnCode = 0; - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_foregroundColour = *wxBLACK; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif -} - -// Destructor -wxWindow::~wxWindow() -{ - // Have to delete constraints/sizer FIRST otherwise - // sizers may try to look at deleted windows as they - // delete themselves. -#if wxUSE_CONSTRAINTS - DeleteRelatedConstraints(); - if (m_constraints) - { - // This removes any dangling pointers to this window - // in other windows' constraintsInvolvedIn lists. - UnsetConstraints(m_constraints); - delete m_constraints; - m_constraints = NULL; - } - if (m_windowSizer) - { - delete m_windowSizer; - m_windowSizer = NULL; - } - // If this is a child of a sizer, remove self from parent - if (m_sizerParent) - m_sizerParent->RemoveChild((wxWindow *)this); -#endif - - if (m_windowParent) - m_windowParent->RemoveChild(this); - - DestroyChildren(); - - // TODO: destroy the window - - delete m_children; - m_children = NULL; - - // Just in case the window has been Closed, but - // we're then deleting immediately: don't leave - // dangling pointers. - wxPendingDelete.DeleteObject(this); - - if ( m_windowValidator ) - delete m_windowValidator; -} - -// Destroy the window (delayed, if a managed window) -bool wxWindow::Destroy() -{ - delete this; - return TRUE; -} - -// Constructor -bool wxWindow::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) -{ - // Generic - m_isWindow = TRUE; // An optimization - m_windowId = 0; - m_windowStyle = 0; - m_windowParent = NULL; - m_windowEventHandler = this; - m_windowName = ""; - m_windowCursor = *wxSTANDARD_CURSOR; - m_constraints = NULL; - m_constraintsInvolvedIn = NULL; - m_windowSizer = NULL; - m_sizerParent = NULL; - m_autoLayout = FALSE; - m_windowValidator = NULL; - -#if wxUSE_DRAG_AND_DROP - m_pDropTarget = NULL; -#endif - - m_caretWidth = 0; m_caretHeight = 0; - m_caretEnabled = FALSE; - m_caretShown = FALSE; - m_minSizeX = -1; - m_minSizeY = -1; - m_maxSizeX = -1; - m_maxSizeY = -1; - m_defaultItem = NULL; - m_windowParent = NULL; - if (!parent) - return FALSE; - - if (parent) parent->AddChild(this); - - m_returnCode = 0; - - SetName(name); - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW) ; ; - m_backgroundColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ; - m_foregroundColour = *wxBLACK; - - m_windowStyle = style; - - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; - - // TODO: create the window - - return TRUE; -} - -void wxWindow::SetFocus() -{ - // TODO -} - -void wxWindow::Enable(bool enable) -{ - // TODO -} - -void wxWindow::CaptureMouse() -{ - // TODO -} - -void wxWindow::ReleaseMouse() -{ - // TODO -} - -// Push/pop event handler (i.e. allow a chain of event handlers -// be searched) -void wxWindow::PushEventHandler(wxEvtHandler *handler) -{ - handler->SetNextHandler(GetEventHandler()); - SetEventHandler(handler); -} - -wxEvtHandler *wxWindow::PopEventHandler(bool deleteHandler) -{ - if ( GetEventHandler() ) - { - wxEvtHandler *handlerA = GetEventHandler(); - wxEvtHandler *handlerB = handlerA->GetNextHandler(); - handlerA->SetNextHandler(NULL); - SetEventHandler(handlerB); - if ( deleteHandler ) - { - delete handlerA; - return NULL; - } - else - return handlerA; - } - else - return NULL; -} - -#if wxUSE_DRAG_AND_DROP - -void wxWindow::SetDropTarget(wxDropTarget *pDropTarget) -{ - if ( m_pDropTarget != 0 ) { - delete m_pDropTarget; - } - - m_pDropTarget = pDropTarget; - if ( m_pDropTarget != 0 ) - { - // TODO - } -} - -#endif - -// Old style file-manager drag&drop -void wxWindow::DragAcceptFiles(bool accept) -{ - // TODO -} - -// Get total size -void wxWindow::GetSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::GetPosition(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ScreenToClient(int *x, int *y) const -{ - // TODO -} - -void wxWindow::ClientToScreen(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetCursor(const wxCursor& cursor) -{ - m_windowCursor = cursor; - if (m_windowCursor.Ok()) - { - // TODO - } -} - - -// Get size *available for subwindows* i.e. excluding menu bar etc. -void wxWindow::GetClientSize(int *x, int *y) const -{ - // TODO -} - -void wxWindow::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - // TODO -} - -void wxWindow::SetClientSize(int width, int height) -{ - // TODO -} - -// For implementation purposes - sometimes decorations make the client area -// smaller -wxPoint wxWindow::GetClientAreaOrigin() const -{ - return wxPoint(0, 0); -} - -// Makes an adjustment to the window position (for example, a frame that has -// a toolbar that it manages itself). -void wxWindow::AdjustForParentClientOrigin(int& x, int& y, int sizeFlags) -{ - if (((sizeFlags & wxSIZE_NO_ADJUSTMENTS) == 0) && GetParent()) - { - wxPoint pt(GetParent()->GetClientAreaOrigin()); - x += pt.x; y += pt.y; - } -} - -bool wxWindow::Show(bool show) -{ - // TODO - return FALSE; -} - -bool wxWindow::IsShown() const -{ - // TODO - return FALSE; -} - -int wxWindow::GetCharHeight() const -{ - // TODO - return 0; -} - -int wxWindow::GetCharWidth() const -{ - // TODO - return 0; -} - -void wxWindow::GetTextExtent(const wxString& string, int *x, int *y, - int *descent, int *externalLeading, const wxFont *theFont, bool) const -{ - wxFont *fontToUse = (wxFont *)theFont; - if (!fontToUse) - fontToUse = (wxFont *) & m_windowFont; - - // TODO -} - -void wxWindow::Refresh(bool eraseBack, const wxRect *rect) -{ - // TODO -} - -// Responds to colour changes: passes event on to children. -void wxWindow::OnSysColourChanged(wxSysColourChangedEvent& event) -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - // Only propagate to non-top-level windows - wxWindow *win = (wxWindow *)node->Data(); - if ( win->GetParent() ) - { - wxSysColourChangedEvent event2; - event.m_eventObject = win; - win->GetEventHandler()->ProcessEvent(event2); - } - - node = node->Next(); - } -} - -// This can be called by the app (or wxWindows) to do default processing for the current -// event. Save message/event info in wxWindow so they can be used in this function. -long wxWindow::Default() -{ - // TODO - return 0; -} - -void wxWindow::InitDialog() -{ - wxInitDialogEvent event(GetId()); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent(event); -} - -// Default init dialog behaviour is to transfer data to window -void wxWindow::OnInitDialog(wxInitDialogEvent& event) -{ - TransferDataToWindow(); -} - -// Caret manipulation -void wxWindow::CreateCaret(int w, int h) -{ - m_caretWidth = w; - m_caretHeight = h; - m_caretEnabled = TRUE; -} - -void wxWindow::CreateCaret(const wxBitmap *WXUNUSED(bitmap)) -{ - // TODO -} - -void wxWindow::ShowCaret(bool show) -{ - // TODO -} - -void wxWindow::DestroyCaret() -{ - // TODO - m_caretEnabled = FALSE; -} - -void wxWindow::SetCaretPos(int x, int y) -{ - // TODO -} - -void wxWindow::GetCaretPos(int *x, int *y) const -{ - // TODO -} - -wxWindow *wxGetActiveWindow() -{ - // TODO - return NULL; -} - -void wxWindow::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW), int WXUNUSED(incH)) -{ - m_minSizeX = minW; - m_minSizeY = minH; - m_maxSizeX = maxW; - m_maxSizeY = maxH; -} - -void wxWindow::Centre(int direction) -{ - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *father = (wxWindow *)GetParent(); - if (!father) - return; - - father->GetClientSize(&panel_width, &panel_height); - GetSize(&width, &height); - GetPosition(&x, &y); - - new_x = -1; - new_y = -1; - - if (direction & wxHORIZONTAL) - new_x = (int)((panel_width - width)/2); - - if (direction & wxVERTICAL) - new_y = (int)((panel_height - height)/2); - - SetSize(new_x, new_y, -1, -1); - -} - -// Coordinates relative to the window -void wxWindow::WarpPointer (int x_pos, int y_pos) -{ - // TODO -} - -void wxWindow::OnEraseBackground(wxEraseEvent& event) -{ - // TODO - Default(); -} - -int wxWindow::GetScrollPos(int orient) const -{ - // TODO - return 0; -} - -// This now returns the whole range, not just the number -// of positions that we can scroll. -int wxWindow::GetScrollRange(int orient) const -{ - // TODO - return 0; -} - -int wxWindow::GetScrollThumb(int orient) const -{ - // TODO - return 0; -} - -void wxWindow::SetScrollPos(int orient, int pos, bool refresh) -{ - // TODO - return; -} - -// New function that will replace some of the above. -void wxWindow::SetScrollbar(int orient, int pos, int thumbVisible, - int range, bool refresh) -{ - // TODO -} - -// Does a physical scroll -void wxWindow::ScrollWindow(int dx, int dy, const wxRect *rect) -{ - // TODO - return; -} - -void wxWindow::SetFont(const wxFont& font) -{ - m_windowFont = font; - - if (!m_windowFont.Ok()) - return; - // TODO -} - -void wxWindow::OnChar(wxKeyEvent& event) -{ -/* ?? - if ( event.KeyCode() == WXK_TAB ) { - // propagate the TABs to the parent - it's up to it to decide what - // to do with it - if ( GetParent() ) { - if ( GetParent()->ProcessEvent(event) ) - return; - } - } -*/ - Default(); -} - -void wxWindow::OnKeyDown(wxKeyEvent& event) -{ - Default(); -} - -void wxWindow::OnKeyUp(wxKeyEvent& event) -{ - Default(); -} - -void wxWindow::OnPaint(wxPaintEvent& event) -{ - Default(); -} - -bool wxWindow::IsEnabled() const -{ - // TODO - return FALSE; -} - -// Dialog support: override these and call -// base class members to add functionality -// that can't be done using validators. -// NOTE: these functions assume that controls -// are direct children of this window, not grandchildren -// or other levels of descendant. - -// Transfer values to controls. If returns FALSE, -// it's an application error (pops up a dialog) -bool wxWindow::TransferDataToWindow() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && - !child->GetValidator()->TransferToWindow() ) - { - wxMessageBox("Application Error", "Could not transfer data to window", wxOK|wxICON_EXCLAMATION); - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Transfer values from controls. If returns FALSE, -// validation failed: don't quit -bool wxWindow::TransferDataFromWindow() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && !child->GetValidator()->TransferFromWindow() ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -bool wxWindow::Validate() -{ - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - if ( child->GetValidator() && /* child->GetValidator()->Ok() && */ !child->GetValidator()->Validate(this) ) - { - return FALSE; - } - - node = node->Next(); - } - return TRUE; -} - -// Get the window with the focus -wxWindow *wxWindow::FindFocus() -{ - // TODO - return NULL; -} - -void wxWindow::AddChild(wxWindow *child) -{ - GetChildren().Append(child); - child->m_windowParent = this; -} - -void wxWindow::RemoveChild(wxWindow *child) -{ - GetChildren().DeleteObject(child); - child->m_windowParent = NULL; -} - -void wxWindow::DestroyChildren() -{ - wxNode *node; - while ((node = GetChildren().First()) != (wxNode *)NULL) { - wxWindow *child; - if ((child = (wxWindow *)node->Data()) != (wxWindow *)NULL) { - delete child; - if ( GetChildren().Member(child) ) - delete node; - } - } /* while */ -} - -void wxWindow::MakeModal(bool modal) -{ - // Disable all other windows - if (this->IsKindOf(CLASSINFO(wxDialog)) || this->IsKindOf(CLASSINFO(wxFrame))) - { - wxNode *node = wxTopLevelWindows.First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win != this) - win->Enable(!modal); - - node = node->Next(); - } - } -} - -// If nothing defined for this, try the parent. -// E.g. we may be a button loaded from a resource, with no callback function -// defined. -void wxWindow::OnCommand(wxWindow& win, wxCommandEvent& event) -{ - if (GetEventHandler()->ProcessEvent(event) ) - return; - if (m_windowParent) - m_windowParent->GetEventHandler()->OnCommand(win, event); -} - -void wxWindow::SetConstraints(wxLayoutConstraints *c) -{ - if (m_constraints) - { - UnsetConstraints(m_constraints); - delete m_constraints; - } - m_constraints = c; - if (m_constraints) - { - // Make sure other windows know they're part of a 'meaningful relationship' - if (m_constraints->left.GetOtherWindow() && (m_constraints->left.GetOtherWindow() != this)) - m_constraints->left.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->top.GetOtherWindow() && (m_constraints->top.GetOtherWindow() != this)) - m_constraints->top.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->right.GetOtherWindow() && (m_constraints->right.GetOtherWindow() != this)) - m_constraints->right.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->bottom.GetOtherWindow() && (m_constraints->bottom.GetOtherWindow() != this)) - m_constraints->bottom.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->width.GetOtherWindow() && (m_constraints->width.GetOtherWindow() != this)) - m_constraints->width.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->height.GetOtherWindow() && (m_constraints->height.GetOtherWindow() != this)) - m_constraints->height.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreX.GetOtherWindow() && (m_constraints->centreX.GetOtherWindow() != this)) - m_constraints->centreX.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - if (m_constraints->centreY.GetOtherWindow() && (m_constraints->centreY.GetOtherWindow() != this)) - m_constraints->centreY.GetOtherWindow()->AddConstraintReference((wxWindow *)this); - } -} - -// This removes any dangling pointers to this window -// in other windows' constraintsInvolvedIn lists. -void wxWindow::UnsetConstraints(wxLayoutConstraints *c) -{ - if (c) - { - if (c->left.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->left.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->top.GetOtherWindow() && (c->top.GetOtherWindow() != this)) - c->top.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->right.GetOtherWindow() && (c->right.GetOtherWindow() != this)) - c->right.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->bottom.GetOtherWindow() && (c->bottom.GetOtherWindow() != this)) - c->bottom.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->width.GetOtherWindow() && (c->width.GetOtherWindow() != this)) - c->width.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->height.GetOtherWindow() && (c->height.GetOtherWindow() != this)) - c->height.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreX.GetOtherWindow() && (c->centreX.GetOtherWindow() != this)) - c->centreX.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - if (c->centreY.GetOtherWindow() && (c->centreY.GetOtherWindow() != this)) - c->centreY.GetOtherWindow()->RemoveConstraintReference((wxWindow *)this); - } -} - -// Back-pointer to other windows we're involved with, so if we delete -// this window, we must delete any constraints we're involved with. -void wxWindow::AddConstraintReference(wxWindow *otherWin) -{ - if (!m_constraintsInvolvedIn) - m_constraintsInvolvedIn = new wxList; - if (!m_constraintsInvolvedIn->Member(otherWin)) - m_constraintsInvolvedIn->Append(otherWin); -} - -// REMOVE back-pointer to other windows we're involved with. -void wxWindow::RemoveConstraintReference(wxWindow *otherWin) -{ - if (m_constraintsInvolvedIn) - m_constraintsInvolvedIn->DeleteObject(otherWin); -} - -// Reset any constraints that mention this window -void wxWindow::DeleteRelatedConstraints() -{ - if (m_constraintsInvolvedIn) - { - wxNode *node = m_constraintsInvolvedIn->First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - wxNode *next = node->Next(); - wxLayoutConstraints *constr = win->GetConstraints(); - - // Reset any constraints involving this window - if (constr) - { - constr->left.ResetIfWin((wxWindow *)this); - constr->top.ResetIfWin((wxWindow *)this); - constr->right.ResetIfWin((wxWindow *)this); - constr->bottom.ResetIfWin((wxWindow *)this); - constr->width.ResetIfWin((wxWindow *)this); - constr->height.ResetIfWin((wxWindow *)this); - constr->centreX.ResetIfWin((wxWindow *)this); - constr->centreY.ResetIfWin((wxWindow *)this); - } - delete node; - node = next; - } - delete m_constraintsInvolvedIn; - m_constraintsInvolvedIn = NULL; - } -} - -void wxWindow::SetSizer(wxSizer *sizer) -{ - m_windowSizer = sizer; - if (sizer) - sizer->SetSizerParent((wxWindow *)this); -} - -/* - * New version - */ - -bool wxWindow::Layout() -{ - if (GetConstraints()) - { - int w, h; - GetClientSize(&w, &h); - GetConstraints()->width.SetValue(w); - GetConstraints()->height.SetValue(h); - } - - // If top level (one sizer), evaluate the sizer's constraints. - if (GetSizer()) - { - int noChanges; - GetSizer()->ResetConstraints(); // Mark all constraints as unevaluated - GetSizer()->LayoutPhase1(&noChanges); - GetSizer()->LayoutPhase2(&noChanges); - GetSizer()->SetConstraintSizes(); // Recursively set the real window sizes - return TRUE; - } - else - { - // Otherwise, evaluate child constraints - ResetConstraints(); // Mark all constraints as unevaluated - DoPhase(1); // Just one phase need if no sizers involved - DoPhase(2); - SetConstraintSizes(); // Recursively set the real window sizes - } - return TRUE; -} - - -// Do a phase of evaluating constraints: -// the default behaviour. wxSizers may do a similar -// thing, but also impose their own 'constraints' -// and order the evaluation differently. -bool wxWindow::LayoutPhase1(int *noChanges) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - return constr->SatisfyConstraints((wxWindow *)this, noChanges); - } - else - return TRUE; -} - -bool wxWindow::LayoutPhase2(int *noChanges) -{ - *noChanges = 0; - - // Layout children - DoPhase(1); - DoPhase(2); - return TRUE; -} - -// Do a phase of evaluating child constraints -bool wxWindow::DoPhase(int phase) -{ - int noIterations = 0; - int maxIterations = 500; - int noChanges = 1; - int noFailures = 0; - wxList succeeded; - while ((noChanges > 0) && (noIterations < maxIterations)) - { - noChanges = 0; - noFailures = 0; - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow *)node->Data(); - if (!child->IsKindOf(CLASSINFO(wxFrame)) && !child->IsKindOf(CLASSINFO(wxDialog))) - { - wxLayoutConstraints *constr = child->GetConstraints(); - if (constr) - { - if (succeeded.Member(child)) - { - } - else - { - int tempNoChanges = 0; - bool success = ( (phase == 1) ? child->LayoutPhase1(&tempNoChanges) : child->LayoutPhase2(&tempNoChanges) ) ; - noChanges += tempNoChanges; - if (success) - { - succeeded.Append(child); - } - } - } - } - node = node->Next(); - } - noIterations ++; - } - return TRUE; -} - -void wxWindow::ResetConstraints() -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - constr->left.SetDone(FALSE); - constr->top.SetDone(FALSE); - constr->right.SetDone(FALSE); - constr->bottom.SetDone(FALSE); - constr->width.SetDone(FALSE); - constr->height.SetDone(FALSE); - constr->centreX.SetDone(FALSE); - constr->centreY.SetDone(FALSE); - } - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->ResetConstraints(); - node = node->Next(); - } -} - -// Need to distinguish between setting the 'fake' size for -// windows and sizers, and setting the real values. -void wxWindow::SetConstraintSizes(bool recurse) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr && constr->left.GetDone() && constr->right.GetDone() && - constr->width.GetDone() && constr->height.GetDone()) - { - int x = constr->left.GetValue(); - int y = constr->top.GetValue(); - int w = constr->width.GetValue(); - int h = constr->height.GetValue(); - - // If we don't want to resize this window, just move it... - if ((constr->width.GetRelationship() != wxAsIs) || - (constr->height.GetRelationship() != wxAsIs)) - { - // Calls Layout() recursively. AAAGH. How can we stop that. - // Simply take Layout() out of non-top level OnSizes. - SizerSetSize(x, y, w, h); - } - else - { - SizerMove(x, y); - } - } - else if (constr) - { - char *windowClass = this->GetClassInfo()->GetClassName(); - - wxString winName; - if (GetName() == "") - winName = "unnamed"; - else - winName = GetName(); - wxDebugMsg("Constraint(s) not satisfied for window of type %s, name %s:\n", (const char *)windowClass, (const char *)winName); - if (!constr->left.GetDone()) - wxDebugMsg(" unsatisfied 'left' constraint.\n"); - if (!constr->right.GetDone()) - wxDebugMsg(" unsatisfied 'right' constraint.\n"); - if (!constr->width.GetDone()) - wxDebugMsg(" unsatisfied 'width' constraint.\n"); - if (!constr->height.GetDone()) - wxDebugMsg(" unsatisfied 'height' constraint.\n"); - wxDebugMsg("Please check constraints: try adding AsIs() constraints.\n"); - } - - if (recurse) - { - wxNode *node = GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (!win->IsKindOf(CLASSINFO(wxFrame)) && !win->IsKindOf(CLASSINFO(wxDialog))) - win->SetConstraintSizes(); - node = node->Next(); - } - } -} - -// This assumes that all sizers are 'on' the same -// window, i.e. the parent of this window. -void wxWindow::TransformSizerToActual(int *x, int *y) const -{ - if (!m_sizerParent || m_sizerParent->IsKindOf(CLASSINFO(wxDialog)) || - m_sizerParent->IsKindOf(CLASSINFO(wxFrame)) ) - return; - - int xp, yp; - m_sizerParent->GetPosition(&xp, &yp); - m_sizerParent->TransformSizerToActual(&xp, &yp); - *x += xp; - *y += yp; -} - -void wxWindow::SizerSetSize(int x, int y, int w, int h) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - SetSize(xx, yy, w, h); -} - -void wxWindow::SizerMove(int x, int y) -{ - int xx = x; - int yy = y; - TransformSizerToActual(&xx, &yy); - Move(xx, yy); -} - -// Only set the size/position of the constraint (if any) -void wxWindow::SetSizeConstraint(int x, int y, int w, int h) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - if (w != -1) - { - constr->width.SetValue(w); - constr->width.SetDone(TRUE); - } - if (h != -1) - { - constr->height.SetValue(h); - constr->height.SetDone(TRUE); - } - } -} - -void wxWindow::MoveConstraint(int x, int y) -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - if (x != -1) - { - constr->left.SetValue(x); - constr->left.SetDone(TRUE); - } - if (y != -1) - { - constr->top.SetValue(y); - constr->top.SetDone(TRUE); - } - } -} - -void wxWindow::GetSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetSize(w, h); -} - -void wxWindow::GetClientSizeConstraint(int *w, int *h) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *w = constr->width.GetValue(); - *h = constr->height.GetValue(); - } - else - GetClientSize(w, h); -} - -void wxWindow::GetPositionConstraint(int *x, int *y) const -{ - wxLayoutConstraints *constr = GetConstraints(); - if (constr) - { - *x = constr->left.GetValue(); - *y = constr->top.GetValue(); - } - else - GetPosition(x, y); -} - -bool wxWindow::Close(bool force) -{ - wxCloseEvent event(wxEVT_CLOSE_WINDOW, m_windowId); - event.SetEventObject(this); -#if WXWIN_COMPATIBILITY - event.SetForce(force); -#endif - event.SetCanVeto(!force); - - return GetEventHandler()->ProcessEvent(event); -} - -wxObject* wxWindow::GetChild(int number) const -{ - // Return a pointer to the Nth object in the window - wxNode *node = GetChildren().First(); - int n = number; - while (node && n--) - node = node->Next() ; - if (node) - { - wxObject *obj = (wxObject *)node->Data(); - return(obj) ; - } - else - return NULL ; -} - -void wxWindow::OnDefaultAction(wxControl *initiatingItem) -{ - // Obsolete function -} - -void wxWindow::Clear() -{ - wxClientDC dc(this); - wxBrush brush(GetBackgroundColour(), wxSOLID); - dc.SetBackground(brush); - dc.Clear(); -} - -// Fits the panel around the items -void wxWindow::Fit() -{ - int maxX = 0; - int maxY = 0; - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *win = (wxWindow *)node->Data(); - int wx, wy, ww, wh; - win->GetPosition(&wx, &wy); - win->GetSize(&ww, &wh); - if ( wx + ww > maxX ) - maxX = wx + ww; - if ( wy + wh > maxY ) - maxY = wy + wh; - - node = node->Next(); - } - SetClientSize(maxX + 5, maxY + 5); -} - -void wxWindow::SetValidator(const wxValidator& validator) -{ - if ( m_windowValidator ) - delete m_windowValidator; - m_windowValidator = validator.Clone(); - - if ( m_windowValidator ) - m_windowValidator->SetWindow(this) ; -} - -void wxWindow::SetAcceleratorTable(const wxAcceleratorTable& accel) -{ - m_acceleratorTable = accel; -} - -// Find a window by id or name -wxWindow *wxWindow::FindWindow(long id) -{ - if ( GetId() == id) - return this; - - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(id); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -wxWindow *wxWindow::FindWindow(const wxString& name) -{ - if ( GetName() == name) - return this; - - wxNode *node = GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxWindow *found = child->FindWindow(name); - if ( found ) - return found; - node = node->Next(); - } - return NULL; -} - -void wxWindow::OnIdle(wxIdleEvent& event) -{ -/* TODO: you may need to do something like this - * if your GUI doesn't generate enter/leave events - - // Check if we need to send a LEAVE event - if (m_mouseInWindow) - { - POINT pt; - ::GetCursorPos(&pt); - if (::WindowFromPoint(pt) != (HWND) GetHWND()) - { - // Generate a LEAVE event - m_mouseInWindow = FALSE; - MSWOnMouseLeave(pt.x, pt.y, 0); - } - } -*/ - - // This calls the UI-update mechanism (querying windows for - // menu/toolbar/control state information) - UpdateWindowUI(); -} - -// Raise the window to the top of the Z order -void wxWindow::Raise() -{ - // TODO -} - -// Lower the window to the bottom of the Z order -void wxWindow::Lower() -{ - // TODO -} - -bool wxWindow::AcceptsFocus() const -{ - return IsShown() && IsEnabled(); -} - -// Update region access -wxRegion wxWindow::GetUpdateRegion() const -{ - return m_updateRegion; -} - -bool wxWindow::IsExposed(int x, int y, int w, int h) const -{ - return (m_updateRegion.Contains(x, y, w, h) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxPoint& pt) const -{ - return (m_updateRegion.Contains(pt) != wxOutRegion); -} - -bool wxWindow::IsExposed(const wxRect& rect) const -{ - return (m_updateRegion.Contains(rect) != wxOutRegion); -} - -void wxWindow::SetToolTip(const wxString& tooltip) -{ - // TODO -} - -/* - * Allocates control IDs - */ - -int wxWindow::NewControlId() -{ - static int s_controlId = 0; - s_controlId ++; - return s_controlId; -} - - diff --git a/src/unix/threadpsx.cpp b/src/unix/threadpsx.cpp deleted file mode 100644 index aad7082be4..0000000000 --- a/src/unix/threadpsx.cpp +++ /dev/null @@ -1,880 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: threadpsx.cpp -// Purpose: wxThread (Posix) Implementation -// Author: Original from Wolfram Gloger/Guilhem Lavaux -// Modified by: -// Created: 04/22/98 -// RCS-ID: $Id$ -// Copyright: (c) Wolfram Gloger (1996, 1997) -// Guilhem Lavaux (1998) -// Vadim Zeitlin (1999) -// Robert Roebling (1999) -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declaration -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#ifdef __GNUG__ - #pragma implementation "thread.h" -#endif - -// With simple makefiles, we must ignore the file body if not using -// threads. -#include "wx/setup.h" - -#if wxUSE_THREADS - -#include "wx/thread.h" -#include "wx/module.h" -#include "wx/utils.h" -#include "wx/log.h" -#include "wx/intl.h" -#include "wx/dynarray.h" - -#include -#include -#include -#include -#include - -#if HAVE_SCHED_H - #include -#endif - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -// the possible states of the thread and transitions from them -enum wxThreadState -{ - STATE_NEW, // didn't start execution yet (=> RUNNING) - STATE_RUNNING, // running (=> PAUSED or EXITED) - STATE_PAUSED, // suspended (=> RUNNING or EXITED) - STATE_EXITED // thread doesn't exist any more -}; - -// ---------------------------------------------------------------------------- -// types -// ---------------------------------------------------------------------------- - -WX_DEFINE_ARRAY(wxThread *, wxArrayThread); - -// ----------------------------------------------------------------------------- -// global data -// ----------------------------------------------------------------------------- - -// we keep the list of all threads created by the application to be able to -// terminate them on exit if there are some left - otherwise the process would -// be left in memory -static wxArrayThread gs_allThreads; - -// the id of the main thread -static pthread_t gs_tidMain; - -// the key for the pointer to the associated wxThread object -static pthread_key_t gs_keySelf; - -// this mutex must be acquired before any call to a GUI function -static wxMutex *gs_mutexGui; - -// ============================================================================ -// implementation -// ============================================================================ - -//-------------------------------------------------------------------- -// wxMutex (Posix implementation) -//-------------------------------------------------------------------- - -class wxMutexInternal -{ -public: - pthread_mutex_t p_mutex; -}; - -wxMutex::wxMutex() -{ - p_internal = new wxMutexInternal; - pthread_mutex_init( &(p_internal->p_mutex), (const pthread_mutexattr_t*) NULL ); - m_locked = 0; -} - -wxMutex::~wxMutex() -{ - if (m_locked > 0) - wxLogDebug(_T("Freeing a locked mutex (%d locks)"), m_locked); - - pthread_mutex_destroy( &(p_internal->p_mutex) ); - delete p_internal; -} - -wxMutexError wxMutex::Lock() -{ - int err = pthread_mutex_lock( &(p_internal->p_mutex) ); - if (err == EDEADLK) - { - wxLogDebug(_T("Locking this mutex would lead to deadlock!")); - - return wxMUTEX_DEAD_LOCK; - } - - m_locked++; - - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::TryLock() -{ - if (m_locked) - { - return wxMUTEX_BUSY; - } - - int err = pthread_mutex_trylock( &(p_internal->p_mutex) ); - switch (err) - { - case EBUSY: return wxMUTEX_BUSY; - } - - m_locked++; - - return wxMUTEX_NO_ERROR; -} - -wxMutexError wxMutex::Unlock() -{ - if (m_locked > 0) - { - m_locked--; - } - else - { - wxLogDebug(_T("Unlocking not locked mutex.")); - - return wxMUTEX_UNLOCKED; - } - - pthread_mutex_unlock( &(p_internal->p_mutex) ); - - return wxMUTEX_NO_ERROR; -} - -//-------------------------------------------------------------------- -// wxCondition (Posix implementation) -//-------------------------------------------------------------------- - -class wxConditionInternal -{ -public: - pthread_cond_t p_condition; -}; - -wxCondition::wxCondition() -{ - p_internal = new wxConditionInternal; - pthread_cond_init( &(p_internal->p_condition), (const pthread_condattr_t *) NULL ); -} - -wxCondition::~wxCondition() -{ - pthread_cond_destroy( &(p_internal->p_condition) ); - - delete p_internal; -} - -void wxCondition::Wait(wxMutex& mutex) -{ - pthread_cond_wait( &(p_internal->p_condition), &(mutex.p_internal->p_mutex) ); -} - -bool wxCondition::Wait(wxMutex& mutex, unsigned long sec, unsigned long nsec) -{ - struct timespec tspec; - - tspec.tv_sec = time(0L)+sec; - tspec.tv_nsec = nsec; - return (pthread_cond_timedwait(&(p_internal->p_condition), &(mutex.p_internal->p_mutex), &tspec) != ETIMEDOUT); -} - -void wxCondition::Signal() -{ - pthread_cond_signal( &(p_internal->p_condition) ); -} - -void wxCondition::Broadcast() -{ - pthread_cond_broadcast( &(p_internal->p_condition) ); -} - -//-------------------------------------------------------------------- -// wxThread (Posix implementation) -//-------------------------------------------------------------------- - -class wxThreadInternal -{ -public: - wxThreadInternal(); - ~wxThreadInternal(); - - // thread entry function - static void *PthreadStart(void *ptr); - -#if HAVE_THREAD_CLEANUP_FUNCTIONS - // thread exit function - static void PthreadCleanup(void *ptr); -#endif - - // thread actions - // start the thread - wxThreadError Run(); - // ask the thread to terminate - void Wait(); - // wake up threads waiting for our termination - void SignalExit(); - // go to sleep until Resume() is called - void Pause(); - // resume the thread - void Resume(); - - // accessors - // priority - int GetPriority() const { return m_prio; } - void SetPriority(int prio) { m_prio = prio; } - // state - wxThreadState GetState() const { return m_state; } - void SetState(wxThreadState state) { m_state = state; } - // id - pthread_t GetId() const { return m_threadId; } - pthread_t *GetIdPtr() { return &m_threadId; } - // "cancelled" flag - void SetCancelFlag() { m_cancelled = TRUE; } - bool WasCancelled() const { return m_cancelled; } - -private: - pthread_t m_threadId; // id of the thread - wxThreadState m_state; // see wxThreadState enum - int m_prio; // in wxWindows units: from 0 to 100 - - // set when the thread should terminate - bool m_cancelled; - - // this (mutex, cond) pair is used to synchronize the main thread and this - // thread in several situations: - // 1. The thread function blocks until condition is signaled by Run() when - // it's initially created - this allows thread creation in "suspended" - // state - // 2. The Delete() function blocks until the condition is signaled when the - // thread exits. - // GL: On Linux, this may fail because we can have a deadlock in either - // SignalExit() or Wait(): so we add m_end_mutex for the finalization. - wxMutex m_mutex, m_end_mutex; - wxCondition m_cond; - - // another (mutex, cond) pair for Pause()/Resume() usage - // - // VZ: it's possible that we might reuse the mutex and condition from above - // for this too, but as I'm not at all sure that it won't create subtle - // problems with race conditions between, say, Pause() and Delete() I - // prefer this may be a bit less efficient but much safer solution - wxMutex m_mutexSuspend; - wxCondition m_condSuspend; -}; - -void *wxThreadInternal::PthreadStart(void *ptr) -{ - wxThread *thread = (wxThread *)ptr; - wxThreadInternal *pthread = thread->p_internal; - void *status; - - int rc = pthread_setspecific(gs_keySelf, thread); - if ( rc != 0 ) - { - wxLogSysError(rc, _("Cannot start thread: error writing TLS")); - - return (void *)-1; - } -#if HAVE_THREAD_CLEANUP_FUNCTIONS - // Install the cleanup handler. - pthread_cleanup_push(wxThreadInternal::PthreadCleanup, ptr); -#endif - - // wait for the condition to be signaled from Run() - // mutex state: currently locked by the thread which created us - pthread->m_cond.Wait(pthread->m_mutex); - // mutex state: locked again on exit of Wait() - - // call the main entry - status = thread->Entry(); - -#if HAVE_THREAD_CLEANUP_FUNCTIONS - pthread_cleanup_pop(FALSE); -#endif - - // terminate the thread - thread->Exit(status); - - wxFAIL_MSG(_T("wxThread::Exit() can't return.")); - - return NULL; -} - -#if HAVE_THREAD_CLEANUP_FUNCTIONS -// Only called when the thread is explicitely killed. - -void wxThreadInternal::PthreadCleanup(void *ptr) -{ - wxThread *thread = (wxThread *) ptr; - - // The thread is already considered as finished. - if (thread->p_internal->GetState() == STATE_EXITED) - return; - - // first call user-level clean up code - thread->OnExit(); - - // next wake up the threads waiting for us (OTOH, this function won't retur - // until someone waited for us!) - thread->p_internal->SetState(STATE_EXITED); - - thread->p_internal->SignalExit(); -} -#endif - -wxThreadInternal::wxThreadInternal() -{ - m_state = STATE_NEW; - m_cancelled = FALSE; - - // this mutex is locked during almost all thread lifetime - it will only be - // unlocked in the very end - m_mutex.Lock(); - - // this mutex is used by wxThreadInternal::Wait() and by - // wxThreadInternal::SignalExit(). We don't use m_mutex because of a - // possible deadlock in either Wait() or SignalExit(). - m_end_mutex.Lock(); - - // this mutex is used in Pause()/Resume() and is also locked all the time - // unless the thread is paused - m_mutexSuspend.Lock(); -} - -wxThreadInternal::~wxThreadInternal() -{ - // GL: moved to SignalExit - // m_mutexSuspend.Unlock(); - - // note that m_mutex will be unlocked by the thread which waits for our - // termination - - // In the case, we didn't start the thread, all these mutex are locked: - // we must unlock them. - if (m_mutex.IsLocked()) - m_mutex.Unlock(); - - if (m_end_mutex.IsLocked()) - m_end_mutex.Unlock(); - - if (m_mutexSuspend.IsLocked()) - m_mutexSuspend.Unlock(); -} - -wxThreadError wxThreadInternal::Run() -{ - wxCHECK_MSG( GetState() == STATE_NEW, wxTHREAD_RUNNING, - _T("thread may only be started once after successful Create()") ); - - // the mutex was locked on Create(), so we will be able to lock it again - // only when the thread really starts executing and enters the wait - - // otherwise we might signal the condition before anybody is waiting for it - wxMutexLocker lock(m_mutex); - m_cond.Signal(); - - m_state = STATE_RUNNING; - - return wxTHREAD_NO_ERROR; - - // now the mutex is unlocked back - but just to allow Wait() function to - // terminate by relocking it, so the net result is that the worker thread - // starts executing and the mutex is still locked -} - -void wxThreadInternal::Wait() -{ - wxCHECK_RET( WasCancelled(), _T("thread should have been cancelled first") ); - - // if the thread we're waiting for is waiting for the GUI mutex, we will - // deadlock so make sure we release it temporarily - if ( wxThread::IsMain() ) - wxMutexGuiLeave(); - - // entering Wait() releases the mutex thus allowing SignalExit() to acquire - // it and to signal us its termination - m_cond.Wait(m_end_mutex); - - // mutex is still in the locked state - relocked on exit from Wait(), so - // unlock it - we don't need it any more, the thread has already terminated - m_end_mutex.Unlock(); - - // After that, we wait for the real end of the other thread. - pthread_join(GetId(), NULL); - - // reacquire GUI mutex - if ( wxThread::IsMain() ) - wxMutexGuiEnter(); -} - -void wxThreadInternal::SignalExit() -{ - // GL: Unlock mutexSuspend here. - m_mutexSuspend.Unlock(); - - // as mutex is currently locked, this will block until some other thread - // (normally the same which created this one) unlocks it by entering Wait() - m_end_mutex.Lock(); - - // wake up all the threads waiting for our termination - m_cond.Broadcast(); - - // after this call mutex will be finally unlocked - m_end_mutex.Unlock(); -} - -void wxThreadInternal::Pause() -{ - // the state is set from the thread which pauses us first, this function - // is called later so the state should have been already set - wxCHECK_RET( m_state == STATE_PAUSED, - _T("thread must first be paused with wxThread::Pause().") ); - - // don't pause the thread which is being terminated - this would lead to - // deadlock if the thread is paused after Delete() had called Resume() but - // before it had time to call Wait() - if ( WasCancelled() ) - return; - - // wait until the condition is signaled from Resume() - m_condSuspend.Wait(m_mutexSuspend); -} - -void wxThreadInternal::Resume() -{ - wxCHECK_RET( m_state == STATE_PAUSED, - _T("can't resume thread which is not suspended.") ); - - // we will be able to lock this mutex only when Pause() starts waiting - wxMutexLocker lock(m_mutexSuspend); - m_condSuspend.Signal(); - - SetState(STATE_RUNNING); -} - -// ----------------------------------------------------------------------------- -// static functions -// ----------------------------------------------------------------------------- - -wxThread *wxThread::This() -{ - return (wxThread *)pthread_getspecific(gs_keySelf); -} - -bool wxThread::IsMain() -{ - return (bool)pthread_equal(pthread_self(), gs_tidMain); -} - -void wxThread::Yield() -{ - sched_yield(); -} - -void wxThread::Sleep(unsigned long milliseconds) -{ - wxUsleep(milliseconds); -} - -// ----------------------------------------------------------------------------- -// creating thread -// ----------------------------------------------------------------------------- - -wxThread::wxThread() -{ - // add this thread to the global list of all threads - gs_allThreads.Add(this); - - p_internal = new wxThreadInternal(); -} - -wxThreadError wxThread::Create() -{ - if (p_internal->GetState() != STATE_NEW) - return wxTHREAD_RUNNING; - - // set up the thread attribute: right now, we only set thread priority - pthread_attr_t attr; - pthread_attr_init(&attr); - -#ifdef HAVE_THREAD_PRIORITY_FUNCTIONS - int prio; - if ( pthread_attr_getschedpolicy(&attr, &prio) != 0 ) - { - wxLogError(_("Cannot retrieve thread scheduling policy.")); - } - - int min_prio = sched_get_priority_min(prio), - max_prio = sched_get_priority_max(prio); - - if ( min_prio == -1 || max_prio == -1 ) - { - wxLogError(_("Cannot get priority range for scheduling policy %d."), - prio); - } - else - { - struct sched_param sp; - pthread_attr_getschedparam(&attr, &sp); - sp.sched_priority = min_prio + - (p_internal->GetPriority()*(max_prio-min_prio))/100; - pthread_attr_setschedparam(&attr, &sp); - } -#endif // HAVE_THREAD_PRIORITY_FUNCTIONS - -#ifdef HAVE_PTHREAD_ATTR_SETSCOPE - // this will make the threads created by this process really concurrent - pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); -#endif // HAVE_PTHREAD_ATTR_SETSCOPE - - // create the new OS thread object - int rc = pthread_create(p_internal->GetIdPtr(), &attr, - wxThreadInternal::PthreadStart, (void *)this); - pthread_attr_destroy(&attr); - - if ( rc != 0 ) - { - p_internal->SetState(STATE_EXITED); - return wxTHREAD_NO_RESOURCE; - } - - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Run() -{ - return p_internal->Run(); -} - -// ----------------------------------------------------------------------------- -// misc accessors -// ----------------------------------------------------------------------------- - -void wxThread::SetPriority(unsigned int prio) -{ - wxCHECK_RET( ((int)WXTHREAD_MIN_PRIORITY <= (int)prio) && - ((int)prio <= (int)WXTHREAD_MAX_PRIORITY), - _T("invalid thread priority") ); - - wxCriticalSectionLocker lock(m_critsect); - - switch ( p_internal->GetState() ) - { - case STATE_NEW: - // thread not yet started, priority will be set when it is - p_internal->SetPriority(prio); - break; - - case STATE_RUNNING: - case STATE_PAUSED: -#ifdef HAVE_THREAD_PRIORITY_FUNCTIONS - { - struct sched_param sparam; - sparam.sched_priority = prio; - - if ( pthread_setschedparam(p_internal->GetId(), - SCHED_OTHER, &sparam) != 0 ) - { - wxLogError(_("Failed to set thread priority %d."), prio); - } - } -#endif // HAVE_THREAD_PRIORITY_FUNCTIONS - break; - - case STATE_EXITED: - default: - wxFAIL_MSG(_T("impossible to set thread priority in this state")); - } -} - -unsigned int wxThread::GetPriority() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return p_internal->GetPriority(); -} - -unsigned long wxThread::GetID() const -{ - return (unsigned long)p_internal->GetId(); -} - -// ----------------------------------------------------------------------------- -// pause/resume -// ----------------------------------------------------------------------------- - -wxThreadError wxThread::Pause() -{ - wxCriticalSectionLocker lock(m_critsect); - - if ( p_internal->GetState() != STATE_RUNNING ) - { - wxLogDebug(_T("Can't pause thread which is not running.")); - - return wxTHREAD_NOT_RUNNING; - } - - p_internal->SetState(STATE_PAUSED); - - return wxTHREAD_NO_ERROR; -} - -wxThreadError wxThread::Resume() -{ - wxCriticalSectionLocker lock(m_critsect); - - if ( p_internal->GetState() == STATE_PAUSED ) - { - m_critsect.Leave(); - p_internal->Resume(); - m_critsect.Enter(); - - return wxTHREAD_NO_ERROR; - } - else - { - wxLogDebug(_T("Attempt to resume a thread which is not paused.")); - - return wxTHREAD_MISC_ERROR; - } -} - -// ----------------------------------------------------------------------------- -// exiting thread -// ----------------------------------------------------------------------------- - -wxThread::ExitCode wxThread::Delete() -{ - m_critsect.Enter(); - wxThreadState state = p_internal->GetState(); - - // ask the thread to stop - p_internal->SetCancelFlag(); - - m_critsect.Leave(); - - switch ( state ) - { - case STATE_NEW: - case STATE_EXITED: - // nothing to do - break; - - case STATE_PAUSED: - // resume the thread first - Resume(); - - // fall through - - default: - // wait until the thread stops - p_internal->Wait(); - } - - return NULL; -} - -wxThreadError wxThread::Kill() -{ - switch ( p_internal->GetState() ) - { - case STATE_NEW: - case STATE_EXITED: - return wxTHREAD_NOT_RUNNING; - - default: -#ifdef HAVE_PTHREAD_CANCEL - if ( pthread_cancel(p_internal->GetId()) != 0 ) -#endif - { - wxLogError(_("Failed to terminate a thread.")); - - return wxTHREAD_MISC_ERROR; - } - - return wxTHREAD_NO_ERROR; - } -} - -void wxThread::Exit(void *status) -{ - // first call user-level clean up code - OnExit(); - - // next wake up the threads waiting for us (OTOH, this function won't return - // until someone waited for us!) - p_internal->SignalExit(); - - p_internal->SetState(STATE_EXITED); - - // delete both C++ thread object and terminate the OS thread object - // GL: This is very ugly and buggy ... -// delete this; - pthread_exit(status); -} - -// also test whether we were paused -bool wxThread::TestDestroy() -{ - wxCriticalSectionLocker lock(m_critsect); - - if ( p_internal->GetState() == STATE_PAUSED ) - { - // leave the crit section or the other threads will stop too if they try - // to call any of (seemingly harmless) IsXXX() functions while we sleep - m_critsect.Leave(); - - p_internal->Pause(); - - // enter it back before it's finally left in lock object dtor - m_critsect.Enter(); - } - - return p_internal->WasCancelled(); -} - -wxThread::~wxThread() -{ - m_critsect.Enter(); - if (p_internal->GetState() != STATE_EXITED && - p_internal->GetState() != STATE_NEW) - wxLogDebug(_T("The thread is being destroyed althought it is still running ! The application may crash.")); - - m_critsect.Leave(); - - delete p_internal; - // remove this thread from the global array - gs_allThreads.Remove(this); -} - -// ----------------------------------------------------------------------------- -// state tests -// ----------------------------------------------------------------------------- - -bool wxThread::IsRunning() const -{ - wxCriticalSectionLocker lock((wxCriticalSection &)m_critsect); - - return p_internal->GetState() == STATE_RUNNING; -} - -bool wxThread::IsAlive() const -{ - wxCriticalSectionLocker lock((wxCriticalSection&)m_critsect); - - switch ( p_internal->GetState() ) - { - case STATE_RUNNING: - case STATE_PAUSED: - return TRUE; - - default: - return FALSE; - } -} - -bool wxThread::IsPaused() const -{ - wxCriticalSectionLocker lock((wxCriticalSection&)m_critsect); - - return (p_internal->GetState() == STATE_PAUSED); -} - -//-------------------------------------------------------------------- -// wxThreadModule -//-------------------------------------------------------------------- - -class wxThreadModule : public wxModule -{ -public: - virtual bool OnInit(); - virtual void OnExit(); - -private: - DECLARE_DYNAMIC_CLASS(wxThreadModule) -}; - -IMPLEMENT_DYNAMIC_CLASS(wxThreadModule, wxModule) - -bool wxThreadModule::OnInit() -{ - int rc = pthread_key_create(&gs_keySelf, NULL /* dtor function */); - if ( rc != 0 ) - { - wxLogSysError(rc, _("Thread module initialization failed: " - "failed to create thread key")); - - return FALSE; - } - - gs_mutexGui = new wxMutex(); - - gs_tidMain = pthread_self(); - - gs_mutexGui->Lock(); - - return TRUE; -} - -void wxThreadModule::OnExit() -{ - wxASSERT_MSG( wxThread::IsMain(), _T("only main thread can be here") ); - - // terminate any threads left - size_t count = gs_allThreads.GetCount(); - if ( count != 0u ) - wxLogDebug(_T("Some threads were not terminated by the application.")); - - for ( size_t n = 0u; n < count; n++ ) - { - gs_allThreads[n]->Delete(); - } - - // destroy GUI mutex - gs_mutexGui->Unlock(); - - delete gs_mutexGui; - - // and free TLD slot - (void)pthread_key_delete(gs_keySelf); -} - -// ---------------------------------------------------------------------------- -// global functions -// ---------------------------------------------------------------------------- - -void wxMutexGuiEnter() -{ - gs_mutexGui->Lock(); -} - -void wxMutexGuiLeave() -{ - gs_mutexGui->Unlock(); -} - -#endif - // wxUSE_THREADS diff --git a/src/unix/utilsunx.cpp b/src/unix/utilsunx.cpp deleted file mode 100644 index bb8b4b33e9..0000000000 --- a/src/unix/utilsunx.cpp +++ /dev/null @@ -1,560 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utilsunx.cpp -// Purpose: generic Unix implementation of many wx functions -// Author: Vadim Zeitlin -// Id: $Id$ -// Copyright: (c) 1998 Robert Roebling, Vadim Zeitlin -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// ============================================================================ -// declarations -// ============================================================================ - -// ---------------------------------------------------------------------------- -// headers -// ---------------------------------------------------------------------------- - -#include "wx/defs.h" -#include "wx/string.h" - -#include "wx/intl.h" -#include "wx/log.h" - -#include "wx/utils.h" -#include "wx/process.h" - -#include "wx/unix/execute.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // for O_WRONLY and friends -#include // nanosleep() and/or usleep() -#include // isspace() - -// JACS: needed for FD_SETSIZE -#include - -#if HAVE_UNAME - #include // for uname() -#endif // HAVE_UNAME - -// ---------------------------------------------------------------------------- -// conditional compilation -// ---------------------------------------------------------------------------- - -// many versions of Unices have this function, but it is not defined in system -// headers - please add your system here if it is the case for your OS. -// SunOS < 5.6 (i.e. Solaris < 2.6) and DG-UX are like this. -#if !defined(HAVE_USLEEP) && \ - (defined(__SUN__) && !defined(__SunOs_5_6) && \ - !defined(__SunOs_5_7) && !defined(__SUNPRO_CC)) || \ - defined(__osf__) - extern "C" - { - #ifdef __SUN__ - int usleep(unsigned int usec); - #else // !Sun - void usleep(unsigned long usec); - #endif // Sun/!Sun - }; -#endif // Unices without usleep() - -// ============================================================================ -// implementation -// ============================================================================ - -// ---------------------------------------------------------------------------- -// sleeping -// ---------------------------------------------------------------------------- - -void wxSleep(int nSecs) -{ - sleep(nSecs); -} - -void wxUsleep(unsigned long milliseconds) -{ -#if HAVE_NANOSLEEP - timespec tmReq; - tmReq.tv_sec = milliseconds / 1000; - tmReq.tv_nsec = (milliseconds % 1000) * 1000 * 1000; - - // we're not interested in remaining time nor in return value - (void)nanosleep(&tmReq, (timespec *)NULL); -#elif HAVE_USLEEP - // uncomment this if you feel brave or if you are sure that your version - // of Solaris has a safe usleep() function but please notice that usleep() - // is known to lead to crashes in MT programs in Solaris 2.[67] and is not - // documented as MT-Safe - #if defined(__SUN__) && wxUSE_THREADS - #error "usleep() cannot be used in MT programs under Solaris." - #endif // Sun - - usleep(milliseconds * 1000); // usleep(3) wants microseconds -#else // !sleep function - #error "usleep() or nanosleep() function required for wxUsleep" -#endif // sleep function -} - -// ---------------------------------------------------------------------------- -// process management -// ---------------------------------------------------------------------------- - -int wxKill(long pid, wxSignal sig) -{ - return kill(pid, (int)sig); -} - -#define WXEXECUTE_NARGS 127 - -long wxExecute( const wxString& command, bool sync, wxProcess *process ) -{ - wxCHECK_MSG( !command.IsEmpty(), 0, _T("can't exec empty command") ); - - int argc = 0; - wxChar *argv[WXEXECUTE_NARGS]; - wxString argument; - const wxChar *cptr = command.c_str(); - wxChar quotechar = _T('\0'); // is arg quoted? - bool escaped = FALSE; - - // split the command line in arguments - do - { - argument=_T(""); - quotechar = _T('\0'); - - // eat leading whitespace: - while ( wxIsspace(*cptr) ) - cptr++; - - if ( *cptr == _T('\'') || *cptr == _T('"') ) - quotechar = *cptr++; - - do - { - if ( *cptr == _T('\\') && ! escaped ) - { - escaped = TRUE; - cptr++; - continue; - } - - // all other characters: - argument += *cptr++; - escaped = FALSE; - - // have we reached the end of the argument? - if ( (*cptr == quotechar && ! escaped) - || (quotechar == _T('\0') && wxIsspace(*cptr)) - || *cptr == _T('\0') ) - { - wxASSERT_MSG( argc < WXEXECUTE_NARGS, - _T("too many arguments in wxExecute") ); - - argv[argc] = new wxChar[argument.length() + 1]; - wxStrcpy(argv[argc], argument.c_str()); - argc++; - - // if not at end of buffer, swallow last character: - if(*cptr) - cptr++; - - break; // done with this one, start over - } - } while(*cptr); - } while(*cptr); - argv[argc] = NULL; - - // do execute the command - long lRc = wxExecute(argv, sync, process); - - // clean up - argc = 0; - while( argv[argc] ) - delete [] argv[argc++]; - - return lRc; -} - -bool wxShell(const wxString& command) -{ - wxString cmd; - if ( !!command ) - cmd.Printf(_T("xterm -e %s"), command.c_str()); - else - cmd = command; - - return wxExecute(cmd) != 0; -} - -void wxHandleProcessTermination(wxEndProcessData *proc_data) -{ - int pid = (proc_data->pid > 0) ? proc_data->pid : -(proc_data->pid); - - // waitpid is POSIX so should be available everywhere, however on older - // systems wait() might be used instead in a loop (until the right pid - // terminates) - int status = 0; - if ( waitpid(pid, &status, 0) == -1 || !WIFEXITED(status) ) - { - wxLogSysError(_("Waiting for subprocess termination failed")); - } - else - { - // notify user about termination if required - if (proc_data->process) - { - proc_data->process->OnTerminate(proc_data->pid, - WEXITSTATUS(status)); - } - } - - // clean up - if ( proc_data->pid > 0 ) - { - delete proc_data; - } - else - { - // wxExecute() will know about it - proc_data->exitcode = status; - - proc_data->pid = 0; - } -} - -long wxExecute( wxChar **argv, bool sync, wxProcess *process ) -{ - wxCHECK_MSG( *argv, 0, _T("can't exec empty command") ); - - int end_proc_detect[2]; -#if wxUSE_UNICODE - int mb_argc = 0; - char *mb_argv[WXEXECUTE_NARGS]; - - while (argv[mb_argc]) { - wxWX2MBbuf mb_arg = wxConv_libc.cWX2MB(argv[mb_argc]); - mb_argv[mb_argc] = strdup(mb_arg); - mb_argc++; - } - mb_argv[mb_argc] = (char *) NULL; -#else - wxChar **mb_argv = argv; -#endif - - // create pipes - if (pipe(end_proc_detect) == -1) - { - wxLogSysError( _("Pipe creation failed") ); -#if wxUSE_UNICODE - mb_argc = 0; - while (mb_argv[mb_argc]) - free(mb_argv[mb_argc++]); -#endif - return 0; - } - - // fork the process -#ifdef HAVE_VFORK - pid_t pid = vfork(); -#else - pid_t pid = fork(); -#endif - if (pid == -1) - { - wxLogSysError( _("Fork failed") ); -#if wxUSE_UNICODE - mb_argc = 0; - while (mb_argv[mb_argc]) - free(mb_argv[mb_argc++]); -#endif - return 0; - } - else if (pid == 0) - { - // we're in child - close(end_proc_detect[0]); // close reading side - - // These three lines close the open file descriptors to to avoid any - // input/output which might block the process or irritate the user. If - // one wants proper IO for the subprocess, the right thing to do is - // to start an xterm executing it. - if (sync == 0) - { - // leave stderr opened, it won't do any hurm - for ( int fd = 0; fd < FD_SETSIZE; fd++ ) - { - if ( fd != end_proc_detect[1] && fd != STDERR_FILENO ) - close(fd); - } - } - -#if 0 - close(STDERR_FILENO); - - // some programs complain about stderr not being open, so redirect - // them: - open("/dev/null", O_RDONLY); // stdin - open("/dev/null", O_WRONLY); // stdout - open("/dev/null", O_WRONLY); // stderr -#endif - - execvp (*mb_argv, mb_argv); - - // there is no return after successful exec() - wxFprintf(stderr, _("Can't execute '%s'\n"), *argv); - - _exit(-1); - } - else - { - // we're in parent - close(end_proc_detect[1]); // close writing side - - wxEndProcessData *data = new wxEndProcessData; - data->tag = wxAddProcessCallback(data, end_proc_detect[0]); - -#if wxUSE_UNICODE - mb_argc = 0; - while (mb_argv[mb_argc]) - free(mb_argv[mb_argc++]); -#endif - - if ( sync ) - { - wxASSERT_MSG( !process, _T("wxProcess param ignored for sync exec") ); - data->process = NULL; - - // sync execution: indicate it by negating the pid - data->pid = -pid; - - // it will be set to 0 from GTK_EndProcessDetector - while (data->pid != 0) - wxYield(); - - int exitcode = data->exitcode; - - delete data; - - return exitcode; - } - else - { - // async execution, nothing special to do - caller will be - // notified about the process terminationif process != NULL, data - // will be deleted in GTK_EndProcessDetector - data->process = process; - data->pid = pid; - - return pid; - } - } -} - -// ---------------------------------------------------------------------------- -// file and directory functions -// ---------------------------------------------------------------------------- - -const wxChar* wxGetHomeDir( wxString *home ) -{ - *home = wxGetUserHome( wxString() ); - if ( home->IsEmpty() ) - *home = _T("/"); - - return home->c_str(); -} - -#if wxUSE_UNICODE -const wxMB2WXbuf wxGetUserHome( const wxString &user ) -#else // just for binary compatibility -char *wxGetUserHome( const wxString &user ) -#endif -{ - struct passwd *who = (struct passwd *) NULL; - - if ( !user ) - { - register wxChar *ptr; - - if ((ptr = wxGetenv(_T("HOME"))) != NULL) - { - return ptr; - } - if ((ptr = wxGetenv(_T("USER"))) != NULL || (ptr = wxGetenv(_T("LOGNAME"))) != NULL) - { - who = getpwnam(wxConv_libc.cWX2MB(ptr)); - } - - // We now make sure the the user exists! - if (who == NULL) - { - who = getpwuid(getuid()); - } - } - else - { - who = getpwnam (user.mb_str()); - } - -#if wxUSE_UNICODE - return who ? wxConv_libc.cMB2WX(who->pw_dir) : (wxMB2WXbuf)((wxChar*)NULL); -#else - return who ? who->pw_dir : ((char*)NULL); -#endif -} - -// ---------------------------------------------------------------------------- -// network and user id routines -// ---------------------------------------------------------------------------- - -// retrieve either the hostname or FQDN depending on platform (caller must -// check whether it's one or the other, this is why this function is for -// private use only) -static bool wxGetHostNameInternal(wxChar *buf, int sz) -{ - wxCHECK_MSG( buf, FALSE, _T("NULL pointer in wxGetHostNameInternal") ); - - *buf = _T('\0'); - - // we're using uname() which is POSIX instead of less standard sysinfo() -#if defined(HAVE_UNAME) - struct utsname uts; - bool ok = uname(&uts) != -1; - if ( ok ) - { - wxStrncpy(buf, wxConv_libc.cMB2WX(uts.nodename), sz - 1); - buf[sz] = _T('\0'); - } -#elif defined(HAVE_GETHOSTNAME) - bool ok = gethostname(buf, sz) != -1; -#else // no uname, no gethostname - wxFAIL_MSG(_T("don't know host name for this machine")); - - bool ok = FALSE; -#endif // uname/gethostname - - if ( !ok ) - { - wxLogSysError(_("Cannot get the hostname")); - } - - return ok; -} - -bool wxGetHostName(wxChar *buf, int sz) -{ - bool ok = wxGetHostNameInternal(buf, sz); - - if ( ok ) - { - // BSD systems return the FQDN, we only want the hostname, so extract - // it (we consider that dots are domain separators) - wxChar *dot = wxStrchr(buf, _T('.')); - if ( dot ) - { - // nuke it - *dot = _T('\0'); - } - } - - return ok; -} - -bool wxGetFullHostName(wxChar *buf, int sz) -{ - bool ok = wxGetHostNameInternal(buf, sz); - - if ( ok ) - { - if ( !wxStrchr(buf, _T('.')) ) - { - struct hostent *host = gethostbyname(wxConv_libc.cWX2MB(buf)); - if ( !host ) - { - wxLogSysError(_("Cannot get the official hostname")); - - ok = FALSE; - } - else - { - // the canonical name - wxStrncpy(buf, wxConv_libc.cMB2WX(host->h_name), sz); - } - } - //else: it's already a FQDN (BSD behaves this way) - } - - return ok; -} - -bool wxGetUserId(wxChar *buf, int sz) -{ - struct passwd *who; - - *buf = _T('\0'); - if ((who = getpwuid(getuid ())) != NULL) - { - wxStrncpy (buf, wxConv_libc.cMB2WX(who->pw_name), sz - 1); - return TRUE; - } - - return FALSE; -} - -bool wxGetUserName(wxChar *buf, int sz) -{ - struct passwd *who; - char *comma; - - *buf = _T('\0'); - if ((who = getpwuid (getuid ())) != NULL) { - comma = strchr(who->pw_gecos, ','); - if (comma) - *comma = '\0'; // cut off non-name comment fields - wxStrncpy (buf, wxConv_libc.cMB2WX(who->pw_gecos), sz - 1); - return TRUE; - } - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// error and debug output routines (deprecated, use wxLog) -// ---------------------------------------------------------------------------- - -void wxDebugMsg( const char *format, ... ) -{ - va_list ap; - va_start( ap, format ); - vfprintf( stderr, format, ap ); - fflush( stderr ); - va_end(ap); -} - -void wxError( const wxString &msg, const wxString &title ) -{ - wxFprintf( stderr, _("Error ") ); - if (!title.IsNull()) wxFprintf( stderr, _T("%s "), WXSTRINGCAST(title) ); - if (!msg.IsNull()) wxFprintf( stderr, _T(": %s"), WXSTRINGCAST(msg) ); - wxFprintf( stderr, _T(".\n") ); -} - -void wxFatalError( const wxString &msg, const wxString &title ) -{ - wxFprintf( stderr, _("Error ") ); - if (!title.IsNull()) wxFprintf( stderr, _T("%s "), WXSTRINGCAST(title) ); - if (!msg.IsNull()) wxFprintf( stderr, _T(": %s"), WXSTRINGCAST(msg) ); - wxFprintf( stderr, _T(".\n") ); - exit(3); // the same exit code as for abort() -} diff --git a/src/xpm/changes b/src/xpm/changes deleted file mode 100644 index 1cd0e9a8dd..0000000000 --- a/src/xpm/changes +++ /dev/null @@ -1,704 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/**************************************************************************\ -* * -* HISTORY of user-visible changes * -* * -\**************************************************************************/ - -3.4b (94/05/24) - - ENHANCEMENTS: - - XPM can now be built under MS Windows. Yes, this is possible and this - entirely comes from: - - Hermann Dunkel - See the README.MSW file for details. - - - building the shared library now depends on the SharedLibXpm variable - and no longer on the SharedLibX variable which is private to the X - Window System project. - - patch from Stephen Gildea - Other variables can now be set for the various locations needed. - - - lib/parse.c does no longer use a 256x256 array in the stack but - malloc it instead. - - - The Copyright notice which has been re-written from the X11R6's one - should be clearer and is now present in every file. - - BUGS CORRECTED: - - lib/xpmP.h does no longer define a Boolean type which conflicts with - the Intrinsic definition. Instead the type Bool defined in Xlib is - used. - - neumann@watson.ibm.com (Gustaf Neumann) - -3.4a (94/03/29) - - BUGS CORRECTED: - - passing NULL as shapemask_return to XpmReadFileToPixmap and similar - functions was leading to a bus error. - - Dean Luick - -3.4 (94/03/14) - - IMPORTANT NOTE: - This version is not compatible with 3.3. Fortunately most people should - only need to recompile. - I apology for this but CDE/Motif have put heavy pressure to go that - way. The point is that I designed and released Xpm 3.3 in order to let - OSF include a clean version of Xpm in Motif 2.0. This new version was - not fully compatible with 3.2 but I thought it didn't matter since this - was going to be the first version used within Motif. Unfortunately CDE - was already using xpm-3.2 internally and requires both source and - binary backward compatibility. By the way I must say they didn't drop - us a single line to let us know they were using it and thus were - expecting stability. All this could have been avoided... - - However, since I had to go for a not compatible version I took this as - an opportunity to modify the lower level API, which was new in 3.3 and - which was somewhat clumsy, in order to provide yet a better API. - - The library has been modified to have both source and binary backward - compatibility with xpm-3.2. This implies it is not either source or - binary compatible with 3.3. The fields related to the 3.2 XpmInfos - mechanism have been put back into the XpmAttributes structure. The new - 3.3 XpmInfos struct has been renamed as XpmInfo to avoid conflict with - the old 3.2 flag which is back too. All the semantic related to the - XpmAttributes infos fields is back as well. - - So this new version provides a high level API which is fully - compatible with 3.2 and still provides the 3.3 lower level API - (XpmImage) with the XpmInfos struct renamed as XpmInfo. This leads to - some redundancy but this was the best I could do to satisfy both - CDE/Motif people who needed the backward compatibility and myself (who - always tries to provide you with the best ;-). - - Tests have been successfully performed with pixmap-2.1, pixmap-2.4, and - sxpm. - - ENHANCEMENTS: - - The colorTable member of the XpmAttributes structure is now an - (XpmColor*) in order to be compatible with an XpmImage colorTable. - However in order to be backward compatible this field is cast to - (XpmColor **), which is equivalent to (char ***), when it is used - with the old flags XpmInfos and XpmReturnInfos. To handle the new - type the new flags XpmColorTable and XpmReturnColorTable have been - defined. - - The XpmInfo struct has been extended to avoid having to deal with an - XpmAttributes at the lower level. The idea is that all the data - stored in an Xpm file can be retreive through both an XpmImage and - an XpmInfo struct. See the documentation for details. - - XpmUndefPixel is defined and exported by xpm.h in order to let - clients providing their own colorTable when writting out an Xpm file. - See the documentation for details. - - in sxpm/sxpm.c, set attribute XtNinput to True on toplevel widget. - Windows that don't "take" input, never get focus, as mandated by - the ICCM. - patch from Henrique Martins - - lib/Imakefile modified to build the shared library under IRIX 5. - patch from simon@lia.di.epfl.ch (Simon Leinen) - - NEW FEATURES: - - a new funtion and a new define should help client figuring out with - which Xpm library version they are working. These are - XpmIncludeVersion and XpmLibraryVersion(). - -3.3 (93/12/20) - - NEW FEATURES: - - XPM1 files are now supported. - - a new function is provided to get an error string related to the - returned error code. - - suggested by Detlef Schmier - - ENHANCEMENTS: - - gzip and gunzip are called with the -q option (quiet) - - patch from Chris P. Ross - - the parser is again more flexible about the way the strings are - distributed on lines. Actually a single line XPM file can be read. - - the documentation should be clearer about shapemask generation and - XpmAttributes valuemask. - - BUGS CORRECTED: - - reading some binary file was leading to a bus error. - - patch from Detlef Schmier - - the ? character is no longer used when writting an XPM file in order - to avoid possible ANSI trigraphs. - -3.3alpha (93/08/13) - - NEW FEATURES: - - a new level interface is provided to allow applications to do either - icon editing or data caching. - The XpmAttributes has been changed but most applications will just - need to be recompiled. - - new structures are provided to deal with the new lower level: - XpmImage, XpmColor, XpmInfos. - - - a separate distribution called xpm-contrib is available. This - includes the converters which used to be part of this distribution - plus: - two new appplications: - * nexpm to draw a pixmap in *any* existing window from - Ralph Betza - * xpmview to display a list of Xpm files from - Jean Michel Leon - - a hacky string to pixmap converter, provided by - Robert H. Forsman Jr. - - The Xpm editor called pixmap will also be part of this contrib. - This does not mean it is the best pixmap editor one can find - but it is the only one that I know of which tries to handle - all the features of this format. - - ENHANCEMENTS: - - the code to build XImage data has been optimized by - jules@x.co.uk (Julian Gosnell) - the old code is still available when compiling with the - -DWITHOUT_SPEEDUPS flag. - - - closecolor code was not re-entrant - - dbl@visual.com (David B. Lewis) - - fix gzip filename (*.gz and no longer *.z). - - Jason Patterson - - sxpm has 2 new options: - -nom to do not display the mask if there is one - -cp to override a color value with a given - pixel, i.e. sxpm plaid.xpm -cp red 4 - - also the '-s' adn '-p' options have been renamed to '-sc' and '-sp'. - - - xpm.h defines XpmFormat, XpmVersion, and XpmRevision numbers. - - BUGS CORRECTED: - - closecolor minor fix - - Jason Patterson - -3.2g (93/04/26) - - ENHANCEMENTS: - - much faster close colors - - piping from/to compressed files now handles GNU's gzip (.z) format - - added XpmColorKey attribute - ability to specify which visual's - colors to use (ie: now it's possible to read in a pixmap in a - color visual, but use the colors specified for monochrome). - - added -mono, -grey4, -grey and -color options to sxpm to demonstrate - the XpmColorKey attribute. - - Jason Patterson - - BUGS CORRECTED: - - fixed bug where redefining "None" as a pixel stopped mask generation - - minor SVR4 defines for - - fixed annoying closecolor bug related to read/write color cells - - fixed minor bug in color value -> pixel overloading - - manual updated to include new red/green/blue closeness attributes - - Jason Patterson - - - the top Imakefile was missing the depend target - - sxpm/Imakefile fixed so that -L../lib is set before the standard - library location. - - Vivek Khera - - - lib/xpmP.h now defines bcopy as memcpy for VMS (required by recent - versions of VMS) - - J. Daniel Smith - - - the lib/Imakefile didn't work with X11R4. - - -3.2f (93/03/17) - - NEW FEATURES: - - the library provides four new functions to deal with Xpm files - loaded in memory as single character strings buffers: - - XpmCreateImageFromBuffer - XpmCreatePixmapFromBuffer - XpmCreateBufferFromImage - XpmCreateBufferFromPixmap - - - in addition, as a convenience, two functions are provided to copy a - file in a buffer and to write a file from a buffer: - - XpmReadFileToBuffer - XpmWriteFileFromBuffer - - ENHANCEMENTS: - - Files are now dispatched in the following sub-directories: - lib, sxpm, and doc. - - Imakefiles will let you build a shared library as well as the static - one (with either X11R4 or X11R5). - - The documentation has been ported from LaTeX to FrameMaker and is - now included in the distribution in its PostScript form (doc/xpm.ps). - Source files are available on request. - Also the documentation has been reoreganized and includes a table of - contents and an index of the functions (the number of functions - increasing this became a requisite). - - BUGS CORRECTED: - - Many warnings have been fixed - patch from Daniel Dardailler - daniel@osf.org - -3.2e (93/02/05) - - ENHANCEMENTS: - - use XpmMalloc, XpmRealloc, XpmCalloc, and XpmFree which are defines - in xpmP.h. This should help people wanting to use their own functions. - - BUGS CORRECTED: - - Intrinsic.h is no longer included. - - bzero is defined as memset on SYSV and SVR4. - - some memory initialisation bug concerning XpmAttributes. - -3.2d (93/01/27) - - ENHANCEMENTS: - - compile on Solaris 2.0 - - patch from Clint Jeffery - - BUGS CORRECTED: - - shape masks are now set correctly for LSBFirst (Decs). - - pixmaps are now set correctly for 2 bit displays (Nexts). - - patch from Josef Leherbauer - - isspace was called on getc which fails when EOF is returned. - - Marelli Paolo - -3.2c (92/12/29) - - ENHANCEMENTS: - - parsing optimized for single and double characters color - - patch originally from Martin Brunecky - marbru@build1.auto-trol.com - - BUGS CORRECTED: - - XpmFreeExtensions was calling free on some argument without checking - it was not NULL. - - strdup was not correctly defined for systems which do not provide - it. - Hans-Peter Lichtin - - some bug in XpmCrDataFI.c - - Sven Delmas garfield@avalanche.cs.tu-berlin.de - - NOTE: - - there is still a bug with the creation of the clipmask on display of - depth 2 but I can't find a fix because unfortunately I don't have such - a rendering system and nobody gets the time to investigate for me. - -3.2b (92/10/19) - - ENHANCEMENTS: - - Create XpmReadFileToData and XpmWriteFileFromData - - Dan Greening - - added "close colors" support and ability to redefine color values - as pixels at load time, as well as color names - - Jason Patterson - - errors while parsing or allocating colors now revert to other - visual defaults, creating pixmap/image as expected, and returning - XpmSuccess. The old behaviour of XpmColorError being returned and no - pixmap/image being created can be retained by setting the - exactColors attribute. - - Jason Patterson - - BUGS CORRECTED: - - SVR4 defines for including instead of - - Jason Patterson - - attributes->extensions and attributes->nextensions fields were not - set correctly when no extensions present in file. - - Simon_Scott Cornish - -3.2a (92/08/17) - - ENHANCEMENTS: - - use the mock lisp hashing function instead of the gnu emacs one, - it is faster in some cases and never slower (I've not found any case). - - BUGS CORRECTED: - - function prototypes for ansi compilers. - - some memory initialization bugs (purify is just great for this). - - empty strings in extensions are now correctly handled. - -3.2 (92/07/06) - - NEW FEATURES: - - both format and functions handle extensions data. This allow people - to store additional data related to a pixmap. See documentation for - detail. - - sxpm supports the new option '-c' to use a private colormap. This is - useful when displaying pixmaps using a lot of colors. - - sxpm supports the new option '-v' (verbose) to get possible - extensions print out on standard error. - - ENHANCEMENTS: - - most of the code has been reworked to be improved and thus almost - every function is faster. It takes less than 6 seconds of real time on - a sun4 to display, with sxpm, a 487x635 pixmap using 213 colors, while - it takes 32 seconds with the old library! It takes 18 seconds to - display a 1279x1023 screen dump using 14 colors while xwud takes 10 - seconds. - Of course performance improvements are not always that great, they - depend on the size and number of colors but I'm sure everybody will - appreciate ;-) - I know how to improve it more but this will require changes in the - architecture so this is not for now. Some optimizations have been - contributed by gregor@kafka.saic.com (gregg hanna) and - jnc@csl.biosci.arizona.edu (John N. Calley). - - the Imakefile is modified to let you install sxpm - Rainer Klute - - - xpmP.h declares popen for Sequent platforms - Clinton Jeffery - - - XpmWriteFileFromImage/Pixmap rather than truncating the pixmap name - to the first dot changes dots to underscores to get a valid C syntax - name. - - - BUGS CORRECTED: - - there was a bug in the image creation function for some 24 bits - displays. It is fixed. - - allocated color pixels are now freed when an error occurs - - nusser@dec1.wu-wien.ac.at (Stefan Nusser) - - CHANGES TO THE DOC: - - the documentation describes the new XpmExtension structure and how - to use it with read and write functions. - -3.1 (92/02/03) - - ENHANCEMENTS: - - sxpm now have more standard options (mainly suggested by - Rainer Sinkwitz ): - - Usage: sxpm [options...] - Where options are: - - [-d host:display] Display to connect to. - [-g geom] Geometry of window. - [-hints] Set ResizeInc for window. - [-icon filename] Set pixmap for iconWindow. - [-s symbol_name color_name] Overwrite color defaults. - [-p symbol_name pixel_value] Overwrite color defaults. - [-plaid] Read the included plaid pixmap. - [filename] Read from file 'filename', and from - standard input if 'filename' is '-'. - [-o filename] Write to file 'filename', and to standard - output if 'filename' is '-'. - [-nod] Don't display in window. - [-rgb filename] Search color names in the rgb text file - 'filename'. - - if no input is specified sxpm reads from stdandard input. - - - - Xpm functions and Ppm converters now deal with multiword colornames. - patches from Rainer Sinkwitz . - - -3.0 (91/10/03) - - Functions name and defines have been modified again (sorry for that) - as follows: - - XpmReadPixmapFile XpmReadFileToPixmap - XpmWritePixmapFile XpmWriteFileFromPixmap - - XpmPixmapColorError XpmColorError - XpmPixmapSuccess XpmSuccess - XpmPixmapOpenFailed XpmOpenFailed - XpmPixmapFileInvalid XpmFileInvalid - XpmPixmapNoMemory XpmNoMemory - XpmPixmapColorFailed XpmColorFailed - - To update code using Xpm you can use the included shell script called - rename with the sed commands files name-3.0b-3.0c and name-3.0c-3.0. - Old names still valid though. - - NEW FEATURES: - - four new functions to work with images instead of pixmaps: - - XpmReadFileToImage - XpmWriteFileFromImage - XpmCreateImageFromData - XpmCreateDataFromImage - - ENHANCEMENTS: - Algorithms to create and scan images and pixmaps are based on the - MIT's R5 code, thus they are much cleaner than old ones and should - avoid any problem with any visual (yes, I trust MIT folks :-) - - BUGS CORRECTED: - Imakefile use INCDIR instead of ROOTDIR. - - CHANGES TO THE DOC: - - the documentation presents the four new functions. - -3.0c (91/09/18) - - In answer to request of people functions, types and defines names have - been changed as follows: - - XCreatePixmapFromData XpmCreatePixmapFromData - XCreateDataFromPixmap XpmCreateDataFromPixmap - XReadPixmapFile XpmReadPixmapFile - XWritePixmapFile XpmWritePixmapFile - XFreeXpmAttributes XpmFreeAttributes - - PixmapColorError XpmPixmapColorError - PixmapSuccess XpmPixmapSuccess - PixmapOpenFailed XpmPixmapOpenFailed - PixmapFileInvalid XpmPixmapFileInvalid - PixmapNoMemory XpmPixmapNoMemory - PixmapColorFailed XpmPixmapColorFailed - - ColorSymbol XpmColorSymbol - - Generally speaking every public name begins with 'Xpm' and every - private one with 'xpm'. This should avoid any possible conflict. - - Some files have also be renamed accordingly. - - NEW FEATURES: - - support for VMS and two new options for sxpm: icon and hints (see - manual for details) Richard Hess - - DEFINES in Imakefile and Makefile.noXtree allows you to set the - following: - - ZPIPE for un/compressing piped feature (default is on) - NEED_STRCASECMP for system which doesn't provide one (default - is off) - - - xpmtoppm.c has is own strstr function which is used if NEED_STRSTR - is defined when compiling - Hugues.Leroy@irisa.fr (Hugues Leroy). - - BUGS CORRECTED: - - many bugs have been fixed, especially for ansi compilers - - Doyle C. Davidson (doyle@doyled.b23b.ingr.com) and - Clifford D. Morrison (cdm%bigdaddy%edsr@uunet.UU.NET) - - parser is again a little more improved - -3.0b (91/09/12) - - This is a complete new version with a new API and where files and - structures have been renamed. So this should be taken as a new - starting release. - This release should be quickly followed by the 3.0 because I'm planning - to send it for X11R5 contrib which ends October 5th. - - NEW FEATURES: - - support for transparent color. - - support for hotspot. - - a new function: XCreateDataFromPixmap to create an XPM data from a - pixmap in order to be able to create a new pixmap from this data using - the XCreatePixmapFromData function later on. - - a new structure: XpmAttributes which replace the XpmInfo structure - and which leads to a much simpler API with less arguments. - - arguments such as visual, colormap and depth are optionnal, default - values are taken if omitted. - - parsing and allocating color failures don't simply break anymore. If - another default color can be found it is used and a PixmapColorError - is returned. In case no color can be found then it breaks and returns - PixmapColorFailed. - - for this reason the ErrorStatus codes are redefined as follows: - - null if full success - positive if partial success - negative if failure - - with: - #define PixmapColorError 1 - #define PixmapSuccess 0 - #define PixmapOpenFailed -1 - #define PixmapFileInvalid -2 - #define PixmapNoMemory -3 - #define PixmapColorFailed -4 - - - sxpm prints out a warning when a requested color could not be parsed - or alloc'ed, and an error when none has been found. - - sxpm handles pixmap with transparent color. For this purpose the - plaid_mask.xpm is added to the distribution. - - BUGS CORRECTED: - - I've again improved the memory management. - - the parser is also improved. - - when writting a pixmap to a file the variable name could be - "plaid.xpm" which is not valid in C. Now the extension name is cut off - to give "plaid" as variable name. - - reading multiple words colornames such as "peach puff" where leading - to non readable Xpm files. They are now skipped to have only single - word colorname. Lionel Mallet (mallet@ipvpel.unipv.it). - - parser was triggered by the "/" character inside string. - Doyle C. Davidson (doyle@doyled.b23b.ingr.com). This is corrected. - - sxpm maps the window only if the option "-nod" is not selected. - - CHANGES TO THE DOC: - - the documentation presents the new API and features. - -3.0a (91/04/10) - - This is an alpha version because it supports the new version of XPM, - but the library interface is still the same. Indeed it will change in - future release to get rid of obsolete stuff such as the type argument - of the XWritePixmapFile function. - - ******************************* WARNING ********************************* - The format is not anymore XPM2, it is XPM version 3 which is XPM2 - limited to the C syntax with the key word "XPM" in place of "XPM2 C". - The interface library has not changed yet but the type argument of - XWritePixmapFile and the type member of XpmInfo are not used anymore. - Meanwhile the library which is now called libXpm.a is backward - compatible as XPM2 files can be read. But the XWritePixmapFile - function only writes out XPM version 3 files. - ************************************************************************* - - NEW FEATURES: - - the library doesn't use global variables anymore, thus it should be - able to share it. - - sxpm has been rewritten on top of Xt, it can be used to convert - files from XPM2 to XPM version 3. - - xpm1to2c.perl has been upgraded to the new XPM version and renamed - as xpm1to3.perl - - ppmtoxpm2.c and ppmtoxpm2.1 have been upgraded too and renamed - ppmtoxpm.c and ppmtoxpm.1. In addition the xpmtoppm.c and xpmtoppm.1 - of the pbmplus package have been upgraded too. xpmtoppm can thus - convert XPM version 1 and 3 to a portable pixmap. These files should - replace the original ones which are part of the pbmplus package. See - the ppm.README file for more details. - - the library contains RCS variables which allows you to get revision - numbers with ident (which is part of the RCS package). The Id number - is an internal rcs number for my eyes only. The official one is found - in Version. - - BUGS CORRECTED: - - the memory management has been much improved in order to avoid - memory leaks. - - the XImage building algorythm has been changed to support correctly - different visual depths. There is special code to handle depths 1, 4, - 6, 8, 24, and 32 to build the image and send it in one whack, and - other depths are supported by building the image with XPutPixel which - is slow but sure. - - similar algorithms are used to read pixmaps and write them out. - - CHANGES TO THE DOC: - - the documentation presents the new XPM format. - - -2.8 (90/12/19) - - ******************************* WARNING ********************************* - Since the last release two structures have been modified and have now - bigger sizes, so ANY CODE USING THE libXPM2 NEEDS TO BE RECOMPILED. - ************************************************************************* - - NEW FEATURES: - - the ColorSymbol struct contains the new member 'pixel' which allow - to override default colors by giving a pixel value (in such a case - symbol value must be set to NULL), - - the XpmInfo struct contains the new member 'rgb_fname' in which one - can specify an rgb text file name while writing a pixmap with the - XWritePixmapFile function (otherwise this member should be set to - NULL). This way colorname will be searched and written out if found - instead of the RGB value, - - Imakefile originally provided by stolcke@ICSI.Berkeley.EDU, - - the old Makefile is now distributed as Makefile.noXtree and presents - install targets, - - the demo application is renamed sxpm (Show XPM), creates a window of - the size of the pixmap if no geometry is specified, prints out - messages instead of status when an error occurs, handles the new - option -p for overriding colors by giving a pixel value (not really - useful but is just here to show this new feature), handles the new - option -rgb for specifying an rgb text file, and ends on - keypress as buttonpress, - - defines for SYSV have been provided by Paul Breslaw - , - - the distribution includes a new directory called converters which - contains xpm1to2 and xpm1to2c perl converters and a ppmtoxpm2 - converter provided by Paul Breslaw who upgraded the original ppmtoxpm - written by Mark W. Snitily . - - CHANGES TO THE DOC: - - this file is created and will give old users a quick reference to - changes made from one release to the next one, - - documentation is changed to present the new ColorSymbol structure - and the way to override colors by giving a pixel value, and to present - the new XpmInfo structure and how to use it, - - a man page for sxpm is added to the distrib, - - the README file talks about sxpm and no more demo, and have - reference to the different converters. - -2.7 (90/11/12) - - NEW FEATURES: - - XReadPixmapFile reads from stdin if filename is NULL, - - XWritePixmapFile writes to stdin if filename is NULL, - - the demo application handles the new option -nod for no displaying - the pixmap in a window (useful when used as converter). - - CHANGES TO THE DOC: - - documentation about the new feature. - -2.6 (90/10/29) - - NEW FEATURES: - - from nazgul@alphalpha.com (Kee Hinckley): changes to make the - library usable as C++ code, and on Apollo without any warning. - - BUGS CORRECTED: - - from nazgul@alphalpha.com (Kee Hinckley): the xpm include files was - declaring XWritePixmapFile as taking in arg a Pixmap pointer instead - of a Pixmap. - -2.5 (90/10/17) - - BUGS CORRECTED: - - XWritePixmapFile was not closing the file while ending normaly. - -2.4 (90/09/06) - - NEW FEATURES: - - XReadPixmapFile reads from a piped uncompress if the given filename - ends by .Z or if filename.Z exists, - - XWritePixmapFile writes to a piped compress if the given filename - ends by .Z. - - BUGS CORRECTED: - - demo now deals with window manager. - - CHANGES TO THE DOC: - - documentation about compressed files management. - -2.3 (90/08/30) - - BUGS CORRECTED: - - handle monochrom display correctly, - - comments can be empty. - -2.2 (90/08/27) - - BUGS CORRECTED: - - when reading some invalid free was dumping core on some machine. - -2.1 (90/08/24) - - First distribution of XPM2. - diff --git a/src/xpm/copyrigh.t b/src/xpm/copyrigh.t deleted file mode 100644 index 3633944f55..0000000000 --- a/src/xpm/copyrigh.t +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -Arnaud LE HORS BULL Research FRANCE -- Koala Project - (XPM - X PixMap format version 2 & 3) - Internet: lehors@sophia.inria.fr -Surface Mail: Arnaud LE HORS, INRIA - Sophia Antipolis, - 2004, route des Lucioles, 06565 Valbonne Cedex -- FRANCE - Voice phone: (33) 93.65.77.71, Fax: (33) 93 65 77 66, Telex: 97 00 50 F diff --git a/src/xpm/crbuffri.c b/src/xpm/crbuffri.c deleted file mode 100644 index ed83271ff4..0000000000 --- a/src/xpm/crbuffri.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrBufFrI.c: * -* * -* XPM library * -* Scan an image and possibly its mask and create an XPM buffer * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:string.h" -#else -#if defined(SYSV) || defined(SVR4) -#include -#else -#include -#endif -#endif - -LFUNC(WriteColors, int, (char **dataptr, unsigned int *data_size, - unsigned int *used_size, XpmColor *colors, - unsigned int ncolors, unsigned int cpp)); - -LFUNC(WritePixels, void, (char *dataptr, unsigned int *used_size, - unsigned int width, unsigned int height, - unsigned int cpp, unsigned int *pixels, - XpmColor *colors)); - -LFUNC(WriteExtensions, void, (char *dataptr, unsigned int *used_size, - XpmExtension *ext, unsigned int num)); - -LFUNC(ExtensionsSize, int, (XpmExtension *ext, unsigned int num)); -LFUNC(CommentsSize, int, (XpmInfo *info)); - -int -XpmCreateBufferFromImage(Display *display, char **buffer_return, XImage *image, - XImage *shapeimage, XpmAttributes *attributes) -{ - XpmImage xpmimage; - XpmInfo info; - int ErrorStatus; - - /* initialize return value */ - if (buffer_return) - *buffer_return = NULL; - - /* create an XpmImage from the image */ - ErrorStatus = XpmCreateXpmImageFromImage(display, image, shapeimage, - &xpmimage, attributes); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* create the buffer from the XpmImage */ - if (attributes) { - xpmSetInfo(&info, attributes); - ErrorStatus = - XpmCreateBufferFromXpmImage(buffer_return, &xpmimage, &info); - } else - ErrorStatus = - XpmCreateBufferFromXpmImage(buffer_return, &xpmimage, NULL); - - /* free the XpmImage */ - XpmFreeXpmImage(&xpmimage); - - return (ErrorStatus); -} - - -#undef RETURN -#define RETURN(status) \ -{ \ - if (ptr) \ - XpmFree(ptr); \ - return(status); \ -} - -int -XpmCreateBufferFromXpmImage(char **buffer_return, XpmImage *image, XpmInfo *info) -{ - /* calculation variables */ - int ErrorStatus; - char buf[BUFSIZ]; - unsigned int cmts, extensions, ext_size = 0; - unsigned int l, cmt_size = 0; - char *ptr = NULL, *p; - unsigned int ptr_size, used_size; - - *buffer_return = NULL; - - cmts = info && (info->valuemask & XpmComments); - extensions = info && (info->valuemask & XpmExtensions) - && info->nextensions; - - /* compute the extensions and comments size */ - if (extensions) - ext_size = ExtensionsSize(info->extensions, info->nextensions); - if (cmts) - cmt_size = CommentsSize(info); - - /* write the header line */ - sprintf(buf, "/* XPM */\nstatic char * image_name[] = {\n"); - used_size = strlen(buf); - ptr_size = used_size + ext_size + cmt_size + 1; - ptr = (char *) XpmMalloc(ptr_size); - if (!ptr) - return XpmNoMemory; - strcpy(ptr, buf); - - /* write the values line */ - if (cmts && info->hints_cmt) { - sprintf(ptr + used_size, "/*%s*/\n", info->hints_cmt); - used_size += strlen(info->hints_cmt) + 5; - } - sprintf(buf, "\"%d %d %d %d", image->width, image->height, - image->ncolors, image->cpp); - l = strlen(buf); - - if (info && (info->valuemask & XpmHotspot)) { - sprintf(buf + l, " %d %d", info->x_hotspot, info->y_hotspot); - l = strlen(buf); - } - if (extensions) { - sprintf(buf + l, " XPMEXT"); - l = strlen(buf); - } - sprintf(buf + l, "\",\n"); - l = strlen(buf); - ptr_size += l; - p = (char *) XpmRealloc(ptr, ptr_size); - if (!p) - RETURN(XpmNoMemory); - ptr = p; - strcpy(ptr + used_size, buf); - used_size += l; - - /* write colors */ - if (cmts && info->colors_cmt) { - sprintf(ptr + used_size, "/*%s*/\n", info->colors_cmt); - used_size += strlen(info->colors_cmt) + 5; - } - ErrorStatus = WriteColors(&ptr, &ptr_size, &used_size, - image->colorTable, image->ncolors, image->cpp); - - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - - /* - * now we know the exact size we needed, realloc the data 4 = 1 (for - * '"') + 3 (for '",\n') 1 = - 2 is because the last line does not end - * with ',\n' + 3 (for '};\n') - */ - ptr_size += image->height * (image->width * image->cpp + 4) + 1; - - p = (char *) XpmRealloc(ptr, ptr_size); - if (!p) - RETURN(XpmNoMemory); - ptr = p; - - /* print pixels */ - if (cmts && info->pixels_cmt) { - sprintf(ptr + used_size, "/*%s*/\n", info->pixels_cmt); - used_size += strlen(info->pixels_cmt) + 5; - } - WritePixels(ptr + used_size, &used_size, image->width, image->height, - image->cpp, image->data, image->colorTable); - - /* print extensions */ - if (extensions) - WriteExtensions(ptr + used_size, &used_size, - info->extensions, info->nextensions); - - /* close the array */ - sprintf(ptr + used_size, "};\n"); - - *buffer_return = ptr; - - return (XpmSuccess); -} - -static int -WriteColors(char **dataptr, unsigned int *data_size, unsigned int *used_size, - XpmColor *colors, unsigned int ncolors, unsigned int cpp) -{ - char buf[BUFSIZ]; - unsigned int a, key, l; - char *s, *s2; - char **defaults; - - *buf = '"'; - for (a = 0; a < ncolors; a++, colors++) { - - defaults = (char **) colors; - s = buf + 1; - strncpy(s, *defaults++, cpp); - s += cpp; - - for (key = 1; key <= NKEYS; key++, defaults++) { - if (s2 = *defaults) { - sprintf(s, "\t%s %s", xpmColorKeys[key - 1], s2); - s += strlen(s); - } - } - strcpy(s, "\",\n"); - l = strlen(buf); - s = (char *) XpmRealloc(*dataptr, *data_size + l); - if (!s) - return (XpmNoMemory); - *data_size += l; - strcpy(s + *used_size, buf); - *used_size += l; - *dataptr = s; - } - return (XpmSuccess); -} - -static void -WritePixels(char *dataptr, unsigned int *used_size, unsigned int width, unsigned int height, - unsigned int cpp, unsigned int *pixels, XpmColor *colors) -{ - char *s = dataptr; - unsigned int x, y, h; - - h = height - 1; - for (y = 0; y < h; y++) { - *s++ = '"'; - for (x = 0; x < width; x++, pixels++) { - strncpy(s, colors[*pixels].string, cpp); - s += cpp; - } - strcpy(s, "\",\n"); - s += 3; - } - /* duplicate some code to avoid a test in the loop */ - *s++ = '"'; - for (x = 0; x < width; x++, pixels++) { - strncpy(s, colors[*pixels].string, cpp); - s += cpp; - } - *s++ = '"'; - *used_size += s - dataptr; -} - -static int -ExtensionsSize(XpmExtension *ext, unsigned int num) -{ - unsigned int x, y, a, size; - char **line; - - size = 0; - for (x = 0; x < num; x++, ext++) { - /* 11 = 10 (for ',\n"XPMEXT ') + 1 (for '"') */ - size += strlen(ext->name) + 11; - a = ext->nlines; - for (y = 0, line = ext->lines; y < a; y++, line++) - /* 4 = 3 (for ',\n"') + 1 (for '"') */ - size += strlen(*line) + 4; - } - /* 13 is for ',\n"XPMENDEXT"' */ - return size + 13; -} - -static void -WriteExtensions(char *dataptr, unsigned int *used_size, XpmExtension *ext, unsigned int num) -{ - unsigned int x, y, a; - char **line; - char *s = dataptr; - - for (x = 0; x < num; x++, ext++) { - sprintf(s, ",\n\"XPMEXT %s\"", ext->name); - s += strlen(ext->name) + 11; - a = ext->nlines; - for (y = 0, line = ext->lines; y < a; y++, line++) { - sprintf(s, ",\n\"%s\"", *line); - s += strlen(*line) + 4; - } - } - strcpy(s, ",\n\"XPMENDEXT\""); - *used_size += s - dataptr + 13; -} - -static int -CommentsSize(XpmInfo *info) -{ - int size = 0; - - /* 5 = 2 (for "/_*") + 3 (for "*_/\n") */ - if (info->hints_cmt) - size += 5 + strlen(info->hints_cmt); - - if (info->colors_cmt) - size += 5 + strlen(info->colors_cmt); - - if (info->pixels_cmt) - size += 5 + strlen(info->pixels_cmt); - - return size; -} diff --git a/src/xpm/crbuffrp.c b/src/xpm/crbuffrp.c deleted file mode 100644 index 9a5b148b6b..0000000000 --- a/src/xpm/crbuffrp.c +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrBufFrP.c: * -* * -* XPM library * -* Scan a pixmap and possibly its mask and create an XPM buffer * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#ifndef FOR_MSW - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:string.h" -#else -#if defined(SYSV) || defined(SVR4) -#include -#else -#include -#endif -#endif - -int -XpmCreateBufferFromPixmap(Display *display, char **buffer_return, Pixmap pixmap, Pixmap shapemask, - XpmAttributes *attributes) -{ - XImage *ximage = NULL; - XImage *shapeimage = NULL; - unsigned int width = 0; - unsigned int height = 0; - int ErrorStatus; - - /* get geometry */ - if (attributes && attributes->valuemask & XpmSize) { - width = attributes->width; - height = attributes->height; - } - /* get the ximages */ - if (pixmap) - xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height); - if (shapemask) - xpmCreateImageFromPixmap(display, shapemask, &shapeimage, - &width, &height); - - /* create the buffer */ - ErrorStatus = XpmCreateBufferFromImage(display, buffer_return, ximage, - shapeimage, attributes); - - /* destroy the ximages */ - if (ximage) - XDestroyImage(ximage); - if (shapeimage) - XDestroyImage(shapeimage); - - return (ErrorStatus); -} -#endif diff --git a/src/xpm/crdatfri.c b/src/xpm/crdatfri.c deleted file mode 100644 index fe9b016e17..0000000000 --- a/src/xpm/crdatfri.c +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrDataFI.c: * -* * -* XPM library * -* Scan an image and possibly its mask and create an XPM array * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:string.h" -#else -#if defined(SYSV) || defined(SVR4) -#include -#else -#include -#endif -#endif - -LFUNC(CreateColors, int, (char **dataptr, unsigned int *data_size, - XpmColor *colors, unsigned int ncolors, - unsigned int cpp)); - -LFUNC(CreatePixels, void, (char **dataptr, unsigned int width, - unsigned int height, unsigned int cpp, - unsigned int *pixels, XpmColor *colors)); - -LFUNC(CountExtensions, void, (XpmExtension *ext, unsigned int num, - unsigned int *ext_size, - unsigned int *ext_nlines)); - -LFUNC(CreateExtensions, void, (char **dataptr, unsigned int offset, - XpmExtension *ext, unsigned int num, - unsigned int ext_nlines)); - -int -XpmCreateDataFromImage(Display *display, char ***data_return, XImage *image, - XImage *shapeimage, XpmAttributes *attributes) -{ - XpmImage xpmimage; - XpmInfo info; - int ErrorStatus; - - /* initialize return value */ - if (data_return) - *data_return = NULL; - - /* create an XpmImage from the image */ - ErrorStatus = XpmCreateXpmImageFromImage(display, image, shapeimage, - &xpmimage, attributes); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* create the data from the XpmImage */ - if (attributes) { - xpmSetInfo(&info, attributes); - ErrorStatus = XpmCreateDataFromXpmImage(data_return, &xpmimage, &info); - } else - ErrorStatus = XpmCreateDataFromXpmImage(data_return, &xpmimage, NULL); - - /* free the XpmImage */ - XpmFreeXpmImage(&xpmimage); - - return (ErrorStatus); -} - -#undef RETURN -#define RETURN(status) \ -{ \ - if (header) { \ - for (l = 0; l < header_nlines; l++) \ - if (header[l]) \ - XpmFree(header[l]); \ - XpmFree(header); \ - } \ - return(status); \ -} - -int -XpmCreateDataFromXpmImage(char ***data_return, XpmImage *image, XpmInfo *info) -{ - /* calculation variables */ - int ErrorStatus; - char buf[BUFSIZ]; - char **header = NULL, **data, **sptr, **sptr2, *s; - unsigned int header_size, header_nlines; - unsigned int data_size, data_nlines; - unsigned int extensions = 0, ext_size = 0, ext_nlines = 0; - unsigned int offset, l, n; - - *data_return = NULL; - - extensions = info && (info->valuemask & XpmExtensions) - && info->nextensions; - - /* compute the number of extensions lines and size */ - if (extensions) - CountExtensions(info->extensions, info->nextensions, - &ext_size, &ext_nlines); - - /* - * alloc a temporary array of char pointer for the header section which - * is the hints line + the color table lines - */ - header_nlines = 1 + image->ncolors; - header_size = sizeof(char *) * header_nlines; - header = (char **) XpmCalloc(header_size, sizeof(char *)); - if (!header) - return (XpmNoMemory); - - /* print the hints line */ - s = buf; - sprintf(s, "%d %d %d %d", image->width, image->height, - image->ncolors, image->cpp); - s += strlen(s); - - if (info && (info->valuemask & XpmHotspot)) { - sprintf(s, " %d %d", info->x_hotspot, info->y_hotspot); - s += strlen(s); - } - if (extensions) - sprintf(s, " XPMEXT"); - - l = strlen(buf) + 1; - *header = (char *) XpmMalloc(l); - if (!*header) - RETURN(XpmNoMemory); - header_size += l; - strcpy(*header, buf); - - /* print colors */ - ErrorStatus = CreateColors(header + 1, &header_size, - image->colorTable, image->ncolors, image->cpp); - - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - - /* now we know the size needed, alloc the data and copy the header lines */ - offset = image->width * image->cpp + 1; - data_size = header_size + (image->height + ext_nlines) * sizeof(char *) - + image->height * offset + ext_size; - - data = (char **) XpmMalloc(data_size); - if (!data) - RETURN(XpmNoMemory); - - data_nlines = header_nlines + image->height + ext_nlines; - *data = (char *) (data + data_nlines); - n = image->ncolors; - for (l = 0, sptr = data, sptr2 = header; l <= n; l++, sptr++, sptr2++) { - strcpy(*sptr, *sptr2); - *(sptr + 1) = *sptr + strlen(*sptr2) + 1; - } - - /* print pixels */ - data[header_nlines] = (char *) data + header_size - + (image->height + ext_nlines) * sizeof(char *); - - CreatePixels(data + header_nlines, image->width, image->height, - image->cpp, image->data, image->colorTable); - - /* print extensions */ - if (extensions) - CreateExtensions(data + header_nlines + image->height - 1, offset, - info->extensions, info->nextensions, - ext_nlines); - - *data_return = data; - - RETURN(XpmSuccess); -} - -static int -CreateColors(char **dataptr, unsigned int *data_size, XpmColor *colors, unsigned int ncolors, unsigned int cpp) -{ - char buf[BUFSIZ]; - unsigned int a, key, l; - char *s, *s2; - char **defaults; - - for (a = 0; a < ncolors; a++, colors++, dataptr++) { - - defaults = (char **) colors; - strncpy(buf, *defaults++, cpp); - s = buf + cpp; - - for (key = 1; key <= NKEYS; key++, defaults++) { - if (s2 = *defaults) { - sprintf(s, "\t%s %s", xpmColorKeys[key - 1], s2); - s += strlen(s); - } - } - l = strlen(buf) + 1; - s = (char *) XpmMalloc(l); - if (!s) - return (XpmNoMemory); - *data_size += l; - strcpy(s, buf); - *dataptr = s; - } - return (XpmSuccess); -} - -static void -CreatePixels(char **dataptr, unsigned int width, unsigned int height, unsigned int cpp, - unsigned int *pixels, XpmColor *colors) -{ - char *s; - unsigned int x, y, h, offset; - - h = height - 1; - offset = width * cpp + 1; - for (y = 0; y < h; y++, dataptr++) { - s = *dataptr; - for (x = 0; x < width; x++, pixels++) { - strncpy(s, colors[*pixels].string, cpp); - s += cpp; - } - *s = '\0'; - *(dataptr + 1) = *dataptr + offset; - } - /* duplicate some code to avoid a test in the loop */ - s = *dataptr; - for (x = 0; x < width; x++, pixels++) { - strncpy(s, colors[*pixels].string, cpp); - s += cpp; - } - *s = '\0'; -} - -static void -CountExtensions(XpmExtension *ext, unsigned int num, unsigned int *ext_size, unsigned int *ext_nlines) -{ - unsigned int x, y, a, size, nlines; - char **line; - - size = 0; - nlines = 0; - for (x = 0; x < num; x++, ext++) { - /* 1 for the name */ - nlines += ext->nlines + 1; - /* 8 = 7 (for "XPMEXT ") + 1 (for 0) */ - size += strlen(ext->name) + 8; - a = ext->nlines; - for (y = 0, line = ext->lines; y < a; y++, line++) - size += strlen(*line) + 1; - } - /* 10 and 1 are for the ending "XPMENDEXT" */ - *ext_size = size + 10; - *ext_nlines = nlines + 1; -} - -static void -CreateExtensions(char **dataptr, unsigned int offset, XpmExtension *ext, unsigned int num, unsigned int ext_nlines) -{ - unsigned int x, y, a, b; - char **line; - - *(dataptr + 1) = *dataptr + offset; - dataptr++; - a = 0; - for (x = 0; x < num; x++, ext++) { - sprintf(*dataptr, "XPMEXT %s", ext->name); - a++; - if (a < ext_nlines) - *(dataptr + 1) = *dataptr + strlen(ext->name) + 8; - dataptr++; - b = ext->nlines; - for (y = 0, line = ext->lines; y < b; y++, line++) { - strcpy(*dataptr, *line); - a++; - if (a < ext_nlines) - *(dataptr + 1) = *dataptr + strlen(*line) + 1; - dataptr++; - } - } - strcpy(*dataptr, "XPMENDEXT"); -} diff --git a/src/xpm/crdatfrp.c b/src/xpm/crdatfrp.c deleted file mode 100644 index 63094d7155..0000000000 --- a/src/xpm/crdatfrp.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrDataFP.c: * -* * -* XPM library * -* Scan a pixmap and possibly its mask and create an XPM array * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#ifndef FOR_MSW - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:string.h" -#else -#if defined(SYSV) || defined(SVR4) -#include -#else -#include -#endif -#endif - -int -XpmCreateDataFromPixmap(Display *display, char ***data_return, Pixmap pixmap, - Pixmap shapemask, XpmAttributes *attributes) -{ - XImage *ximage = NULL; - XImage *shapeimage = NULL; - unsigned int width = 0; - unsigned int height = 0; - int ErrorStatus; - - /* get geometry */ - if (attributes && attributes->valuemask & XpmSize) { - width = attributes->width; - height = attributes->height; - } - /* get the ximages */ - if (pixmap) - xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height); - if (shapemask) - xpmCreateImageFromPixmap(display, shapemask, &shapeimage, - &width, &height); - - /* create the data */ - ErrorStatus = XpmCreateDataFromImage(display, data_return, ximage, - shapeimage, attributes); - - /* destroy the ximages */ - if (ximage) - XDestroyImage(ximage); - if (shapeimage) - XDestroyImage(shapeimage); - - return (ErrorStatus); -} - -#endif diff --git a/src/xpm/create.c b/src/xpm/create.c deleted file mode 100644 index 71d33caadb..0000000000 --- a/src/xpm/create.c +++ /dev/null @@ -1,1461 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* create.c: * -* * -* XPM library * -* Create an X image and possibly its related shape mask * -* from the given xpmInternAttrib. * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:ctype.h" -#else -#include -#endif - -LFUNC(xpmVisualType, int, (Visual *visual)); - -#ifndef FOR_MSW -LFUNC(SetCloseColor, int, (Display *display, Colormap colormap, - Visual *visual, XColor *col, - Pixel *image_pixel, Pixel *mask_pixel, - Pixel **pixels, unsigned int *npixels, - XpmAttributes *attributes, - XColor *cols, int ncols)); -#else -/* let the window system take care of close colors */ -#endif - -LFUNC(SetColor, int, (Display *display, Colormap colormap, Visual *visual, - char *colorname, unsigned int color_index, - Pixel *image_pixel, Pixel *mask_pixel, - unsigned int *mask_pixel_index, Pixel **pixels, - unsigned int *npixels, XpmAttributes *attributes, - XColor *cols, int ncols)); - -LFUNC(CreateXImage, int, (Display *display, Visual *visual, - unsigned int depth, unsigned int width, - unsigned int height, XImage **image_return)); - -LFUNC(CreateColors, int, (Display *display, XpmAttributes *attributes, - XpmColor *ct, unsigned int ncolors, Pixel *ip, - Pixel *mp, unsigned int *mask_pixel, - Pixel **pixels, unsigned int *npixels)); - -#ifndef FOR_MSW -/* XImage pixel routines */ -LFUNC(SetImagePixels, void, (XImage *image, unsigned int width, - unsigned int height, unsigned int *pixelindex, - Pixel *pixels)); - -LFUNC(SetImagePixels32, void, (XImage *image, unsigned int width, - unsigned int height, unsigned int *pixelindex, - Pixel *pixels)); - -LFUNC(SetImagePixels16, void, (XImage *image, unsigned int width, - unsigned int height, unsigned int *pixelindex, - Pixel *pixels)); - -LFUNC(SetImagePixels8, void, (XImage *image, unsigned int width, - unsigned int height, unsigned int *pixelindex, - Pixel *pixels)); - -LFUNC(SetImagePixels1, void, (XImage *image, unsigned int width, - unsigned int height, unsigned int *pixelindex, - Pixel *pixels)); -#else /* ndef FOR_MSW */ -/* FOR_MSW pixel routine */ -LFUNC(MSWSetImagePixels, void, (Display *dc, XImage *image, - unsigned int width, unsigned int height, - unsigned int *pixelindex, Pixel *pixels)); -#endif /* ndef FOR_MSW */ - -#ifdef NEED_STRCASECMP -FUNC(strcasecmp, int, (char *s1, char *s2)); - -/* - * in case strcasecmp is not provided by the system here is one - * which does the trick - */ -int -strcasecmp(register char *s1, register char *s2) -{ - register int c1, c2; - - while (*s1 && *s2) { - c1 = tolower(*s1); - c2 = tolower(*s2); - if (c1 != c2) - return (c1 - c2); - s1++; - s2++; - } - return (int) (*s1 - *s2); -} - -#endif - -/* - * return the default color key related to the given visual - */ -static int -xpmVisualType(Visual *visual) -{ -#ifndef FOR_MSW -/* Xlib.h defines this to be c_class or class, depending - * on whether we're doing C++ or C - */ -#if defined(__cplusplus) || defined(c_plusplus) - switch (visual->c_class) -#else - switch (visual->class) -#endif - { - case StaticGray: - case GrayScale: - switch (visual->map_entries) { - case 2: - return (XPM_MONO); - case 4: - return (XPM_GRAY4); - default: - return (XPM_GRAY); - } - default: - return (XPM_COLOR); - } -#else - /* there should be a similar switch for MSW */ - return (XPM_COLOR); -#endif -} - - -typedef struct { - int cols_index; - long closeness; -} CloseColor; - -static int -closeness_cmp(const void *a, const void *b) -{ - CloseColor *x = (CloseColor *) a, *y = (CloseColor *) b; - - /* cast to int as qsort requires */ - return (int) (x->closeness - y->closeness); -} - -#ifndef FOR_MSW -/* - * set a close color in case the exact one can't be set - * return 0 if success, 1 otherwise. - */ - -static int -SetCloseColor(Display *display, Colormap colormap, Visual *visual, XColor *col, - Pixel *image_pixel, Pixel *mask_pixel, Pixel **pixels, unsigned int *npixels, XpmAttributes *attributes, - XColor *cols, int ncols) -{ - - /* - * Allocation failed, so try close colors. To get here the visual must - * be GreyScale, PseudoColor or DirectColor (or perhaps StaticColor? - * What about sharing systems like QDSS?). Beware: we have to treat - * DirectColor differently. - */ - - - long int red_closeness, green_closeness, blue_closeness; - int n; - - if (attributes && (attributes->valuemask & XpmCloseness)) - red_closeness = green_closeness = blue_closeness = - attributes->closeness; - else { - red_closeness = attributes->red_closeness; - green_closeness = attributes->green_closeness; - blue_closeness = attributes->blue_closeness; - } - - - /* - * We sort the colormap by closeness and try to allocate the color - * closest to the target. If the allocation of this close color fails, - * which almost never happens, then one of two scenarios is possible. - * Either the colormap must have changed (since the last close color - * allocation or possibly while we were sorting the colormap), or the - * color is allocated as Read/Write by some other client. (Note: X - * _should_ allow clients to check if a particular color is Read/Write, - * but it doesn't! :-( ). We cannot determine which of these scenarios - * occurred, so we try the next closest color, and so on, until no more - * colors are within closeness of the target. If we knew that the - * colormap had changed, we could skip this sequence. - * - * If _none_ of the colors within closeness of the target can be allocated, - * then we can finally be pretty sure that the colormap has actually - * changed. In this case we try to allocate the original color (again), - * then try the closecolor stuff (again)... - * - * In theory it would be possible for an infinite loop to occur if another - * process kept changing the colormap every time we sorted it, so we set - * a maximum on the number of iterations. After this many tries, we use - * XGrabServer() to ensure that the colormap remains unchanged. - * - * This approach gives particularly bad worst case performance - as many as - * colormap reads and sorts may be needed, and as - * many as * attempted allocations - * may fail. On an 8-bit system, this means as many as 3 colormap reads, - * 3 sorts and 768 failed allocations per execution of this code! - * Luckily, my experiments show that in general use in a typical 8-bit - * color environment only about 1 in every 10000 allocations fails to - * succeed in the fastest possible time. So virtually every time what - * actually happens is a single sort followed by a successful allocate. - * The very first allocation also costs a colormap read, but no further - * reads are usually necessary. - */ - -#define ITERATIONS 2 /* more than one is almost never - * necessary */ - - for (n = 0; n <= ITERATIONS; ++n) { - CloseColor *closenesses = - (CloseColor *) XpmCalloc(ncols, sizeof(CloseColor)); - int i, c; - - for (i = 0; i < ncols; ++i) { /* build & sort closenesses table */ -#define COLOR_FACTOR 3 -#define BRIGHTNESS_FACTOR 1 - - closenesses[i].cols_index = i; - closenesses[i].closeness = - COLOR_FACTOR * (abs((long) col->red - (long) cols[i].red) - + abs((long) col->green - (long) cols[i].green) - + abs((long) col->blue - (long) cols[i].blue)) - + BRIGHTNESS_FACTOR * abs(((long) col->red + - (long) col->green + - (long) col->blue) - - ((long) cols[i].red + - (long) cols[i].green + - (long) cols[i].blue)); - } - qsort(closenesses, ncols, sizeof(CloseColor), closeness_cmp); - - i = 0; - c = closenesses[i].cols_index; - while ((long) cols[c].red >= (long) col->red - red_closeness && - (long) cols[c].red <= (long) col->red + red_closeness && - (long) cols[c].green >= (long) col->green - green_closeness && - (long) cols[c].green <= (long) col->green + green_closeness && - (long) cols[c].blue >= (long) col->blue - blue_closeness && - (long) cols[c].blue <= (long) col->blue + blue_closeness) { - if (XAllocColor(display, colormap, &cols[c])) { - if (n == ITERATIONS) - XUngrabServer(display); - XpmFree(closenesses); - *image_pixel = cols[c].pixel; - *mask_pixel = 1; - (*pixels)[*npixels] = cols[c].pixel; - (*npixels)++; - return (0); - } else { - ++i; - if (i == ncols) - break; - c = closenesses[i].cols_index; - } - } - - /* Couldn't allocate _any_ of the close colors! */ - - if (n == ITERATIONS) - XUngrabServer(display); - XpmFree(closenesses); - - if (i == 0 || i == ncols) /* no color close enough or cannot */ - return (1); /* alloc any color (full of r/w's) */ - - if (XAllocColor(display, colormap, col)) { - *image_pixel = col->pixel; - *mask_pixel = 1; - (*pixels)[*npixels] = col->pixel; - (*npixels)++; - return (0); - } else { /* colormap has probably changed, so - * re-read... */ - if (n == ITERATIONS - 1) - XGrabServer(display); - -#if 0 - if (visual->c_class == DirectColor) { - /* TODO */ - } else -#endif - XQueryColors(display, colormap, cols, ncols); - } - } - return (1); -} - -#define USE_CLOSECOLOR attributes && \ -(((attributes->valuemask & XpmCloseness) && attributes->closeness != 0) \ - || ((attributes->valuemask & XpmRGBCloseness) && \ - attributes->red_closeness != 0 \ - && attributes->green_closeness != 0 \ - && attributes->blue_closeness != 0)) - -#else - /* FOR_MSW part */ - /* nothing to do here, the window system does it */ -#endif - -/* - * set the color pixel related to the given colorname, - * return 0 if success, 1 otherwise. - */ - -static int -SetColor(Display *display, Colormap colormap, Visual *visual, char *colorname, unsigned int color_index, - Pixel *image_pixel, Pixel *mask_pixel, unsigned int *mask_pixel_index, - Pixel **pixels, unsigned int *npixels, XpmAttributes *attributes, XColor *cols, int ncols) -{ - XColor xcolor; - - if (strcasecmp(colorname, TRANSPARENT_COLOR)) { -#ifdef wx_msw - if (!XParseColor(display, (Colormap *)colormap, colorname, &xcolor)) -#else - if (!XParseColor(display, (Colormap)colormap, colorname, &xcolor)) -#endif - return (1); -#ifdef wx_msw - if (!XAllocColor(display, (Colormap *)colormap, &xcolor)) { -#else - if (!XAllocColor(display, (Colormap)colormap, &xcolor)) { -#endif -#ifndef FOR_MSW - if (USE_CLOSECOLOR) - return (SetCloseColor(display, colormap, visual, &xcolor, - image_pixel, mask_pixel, pixels, npixels, - attributes, cols, ncols)); - else -#endif /* ndef FOR_MSW */ - return (1); - } - *image_pixel = xcolor.pixel; - *mask_pixel = 1; - (*pixels)[*npixels] = xcolor.pixel; - (*npixels)++; - } else { - *image_pixel = 0; - *mask_pixel = 0; - *mask_pixel_index = color_index; /* store the color table index */ - } - return (0); -} - - -static int -CreateColors(Display *display, XpmAttributes *attributes, XpmColor *ct, unsigned int ncolors, - Pixel *ip, Pixel *mp, unsigned int *mask_pixel, Pixel **pixels, unsigned int *npixels) -{ - /* variables stored in the XpmAttributes structure */ - Visual *visual; - Colormap colormap; - XpmColorSymbol *colorsymbols; - unsigned int numsymbols; - - char *colorname; - unsigned int a, b, l; - int pixel_defined; - unsigned int key; - XpmColorSymbol *symbol; - char **defaults; - int ErrorStatus = XpmSuccess; - char *s; - int default_index; - - XColor *cols = NULL; - unsigned int ncols = 0; - - /* - * retrieve information from the XpmAttributes - */ - if (attributes && attributes->valuemask & XpmColorSymbols) { - colorsymbols = attributes->colorsymbols; - numsymbols = attributes->numsymbols; - } else - numsymbols = 0; - - if (attributes && attributes->valuemask & XpmVisual) - visual = attributes->visual; - else - visual = XDefaultVisual(display, XDefaultScreen(display)); - - if (attributes && attributes->valuemask & XpmColormap) - colormap = attributes->colormap; - else - colormap = XDefaultColormap(display, XDefaultScreen(display)); - - if (attributes && attributes->valuemask & XpmColorKey) - key = attributes->color_key; - else - key = xpmVisualType(visual); - -#ifndef FOR_MSW - if (USE_CLOSECOLOR) { - /* originally from SetCloseColor */ -#if 0 - if (visual->c_class == DirectColor) { - - /* - * TODO: Implement close colors for DirectColor visuals. This is - * difficult situation. Chances are that we will never get here, - * because any machine that supports DirectColor will probably - * also support TrueColor (and probably PseudoColor). Also, - * DirectColor colormaps can be very large, so looking for close - * colors may be too slow. - */ - } else { -#endif - int i; - - ncols = visual->map_entries; - cols = (XColor *) XpmCalloc(ncols, sizeof(XColor)); - for (i = 0; i < ncols; ++i) - cols[i].pixel = i; - XQueryColors(display, colormap, cols, ncols); -#if 0 - } -#endif - } -#endif /* ndef FOR_MSW */ - - switch (key) { - case XPM_MONO: - default_index = 2; - break; - case XPM_GRAY4: - default_index = 3; - break; - case XPM_GRAY: - default_index = 4; - break; - case XPM_COLOR: - default: - default_index = 5; - break; - } - - for (a = 0; a < ncolors; a++, ct++, ip++, mp++) { - colorname = NULL; - pixel_defined = False; - defaults = (char **) ct; - - /* - * look for a defined symbol - */ - if (numsymbols) { - s = defaults[1]; - for (l = 0, symbol = colorsymbols; l < numsymbols; l++, symbol++) { - if (symbol->name && s && !strcmp(symbol->name, s)) - /* override name */ - break; - if (!symbol->name && symbol->value) { /* override value */ - int def_index = default_index; - - while (defaults[def_index] == NULL) /* find defined - * colorname */ - --def_index; - if (def_index < 2) {/* nothing towards mono, so try - * towards color */ - def_index = default_index + 1; - while (def_index <= 5 && defaults[def_index] == NULL) - ++def_index; - } - if (def_index >= 2 && defaults[def_index] != NULL && - !strcasecmp(symbol->value, defaults[def_index])) - break; - } - } - if (l != numsymbols) { - if (symbol->name && symbol->value) - colorname = symbol->value; - else - pixel_defined = True; - } - } - if (!pixel_defined) { /* pixel not given as symbol value */ - if (colorname) { /* colorname given as symbol value */ - if (!SetColor(display, colormap, visual, colorname, a, ip, mp, - mask_pixel, pixels, npixels, attributes, - cols, ncols)) - pixel_defined = True; - else - ErrorStatus = XpmColorError; - } - b = key; - while (!pixel_defined && b > 1) { - if (defaults[b]) { - if (!SetColor(display, colormap, visual, defaults[b], - a, ip, mp, mask_pixel, pixels, npixels, - attributes, cols, ncols)) { - pixel_defined = True; - break; - } else - ErrorStatus = XpmColorError; - } - b--; - } - b = key + 1; - while (!pixel_defined && b < NKEYS + 1) { - if (defaults[b]) { - if (!SetColor(display, colormap, visual, defaults[b], - a, ip, mp, mask_pixel, pixels, npixels, - attributes, cols, ncols)) { - pixel_defined = True; - break; - } else - ErrorStatus = XpmColorError; - } - b++; - } - if (!pixel_defined) { - if (cols) - XpmFree(cols); - return (XpmColorFailed); - } - } else { - *ip = colorsymbols[l].pixel; - if (symbol->value - && !strcasecmp(symbol->value, TRANSPARENT_COLOR)) { - *mp = 0; - *mask_pixel = 0; - } else - *mp = 1; - } - } - if (cols) - XpmFree(cols); - return (ErrorStatus); -} - - -/* function call in case of error, frees only locally allocated variables */ -#undef RETURN -#define RETURN(status) \ -{ \ - if (ximage) XDestroyImage(ximage); \ - if (shapeimage) XDestroyImage(shapeimage); \ - if (ximage_pixels) XpmFree(ximage_pixels); \ - if (mask_pixels) XpmFree(mask_pixels); \ - if (npixels) XFreeColors(display, colormap, pixels, npixels, 0); \ - if (pixels) XpmFree(pixels); \ - return (status); \ -} - -int -XpmCreateImageFromXpmImage(Display *display, XpmImage *image, - XImage **image_return, XImage **shapeimage_return, XpmAttributes *attributes) -{ - /* variables stored in the XpmAttributes structure */ - Visual *visual; - Colormap colormap; - unsigned int depth; - - /* variables to return */ - XImage *ximage = NULL; - XImage *shapeimage = NULL; - unsigned int mask_pixel; - int ErrorStatus; - - /* calculation variables */ - Pixel *ximage_pixels = NULL; - Pixel *mask_pixels = NULL; - Pixel *pixels = NULL; /* allocated pixels */ - unsigned int npixels = 0; /* number of allocated pixels */ - - /* initialize return values */ - if (image_return) - *image_return = NULL; - if (shapeimage_return) - *shapeimage_return = NULL; - - /* retrieve information from the XpmAttributes */ - if (attributes && (attributes->valuemask & XpmVisual)) - visual = attributes->visual; - else - visual = XDefaultVisual(display, XDefaultScreen(display)); - - if (attributes && (attributes->valuemask & XpmColormap)) - colormap = attributes->colormap; - else - colormap = XDefaultColormap(display, XDefaultScreen(display)); - - if (attributes && (attributes->valuemask & XpmDepth)) - depth = attributes->depth; - else - depth = XDefaultDepth(display, XDefaultScreen(display)); - - ErrorStatus = XpmSuccess; - - /* malloc pixels index tables */ - ximage_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * image->ncolors); - if (!ximage_pixels) - return (XpmNoMemory); - - mask_pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * image->ncolors); - if (!mask_pixels) - RETURN(XpmNoMemory); - - mask_pixel = XpmUndefPixel; - - /* maximum of allocated pixels will be the number of colors */ - pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * image->ncolors); - if (!pixels) - RETURN(XpmNoMemory); - - /* get pixel colors, store them in index tables */ - ErrorStatus = CreateColors(display, attributes, image->colorTable, - image->ncolors, ximage_pixels, mask_pixels, - &mask_pixel, &pixels, &npixels); - - if (ErrorStatus != XpmSuccess - && (ErrorStatus < 0 || (attributes - && (attributes->valuemask & XpmExactColors) - && attributes->exactColors))) - RETURN(ErrorStatus); - - /* create the ximage */ - if (image_return) { - ErrorStatus = CreateXImage(display, visual, depth, - image->width, image->height, &ximage); - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - -#ifndef FOR_MSW - - /* - * set the ximage data - * - * In case depth is 1 or bits_per_pixel is 4, 6, 8, 24 or 32 use - * optimized functions, otherwise use slower but sure general one. - * - */ - - if (ximage->depth == 1) - SetImagePixels1(ximage, image->width, image->height, - image->data, ximage_pixels); - else if (ximage->bits_per_pixel == 8) - SetImagePixels8(ximage, image->width, image->height, - image->data, ximage_pixels); - else if (ximage->bits_per_pixel == 16) - SetImagePixels16(ximage, image->width, image->height, - image->data, ximage_pixels); - else if (ximage->bits_per_pixel == 32) - SetImagePixels32(ximage, image->width, image->height, - image->data, ximage_pixels); - else - SetImagePixels(ximage, image->width, image->height, - image->data, ximage_pixels); -#else /* FOR_MSW */ - MSWSetImagePixels(display, ximage, image->width, image->height, - image->data, ximage_pixels); -#endif - } - /* create the shape mask image */ - if (mask_pixel != XpmUndefPixel && shapeimage_return) { - ErrorStatus = CreateXImage(display, visual, 1, image->width, - image->height, &shapeimage); - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - -#ifndef FOR_MSW - SetImagePixels1(shapeimage, image->width, image->height, - image->data, mask_pixels); -#else - MSWSetImagePixels(display, shapeimage, image->width, image->height, - image->data, mask_pixels); -#endif - - } - XpmFree(mask_pixels); - XpmFree(pixels); - - /* if requested store alloc'ed pixels in the XpmAttributes structure */ - if (attributes) { - if (attributes->valuemask & XpmReturnPixels || -/* 3.2 backward compatibility code */ - attributes->valuemask & XpmReturnInfos) { -/* end 3.2 bc */ - if (mask_pixel != XpmUndefPixel) { - Pixel *pixels, *p1, *p2; - unsigned int a; - - attributes->npixels = image->ncolors - 1; - pixels = (Pixel *) XpmMalloc(sizeof(Pixel) - * attributes->npixels); - if (pixels) { - p1 = ximage_pixels; - p2 = pixels; - for (a = 0; a < image->ncolors; a++, p1++) - if (a != mask_pixel) - *p2++ = *p1; - attributes->pixels = pixels; - } else { - /* if error just say we can't return requested data */ - attributes->valuemask &= ~XpmReturnPixels; -/* 3.2 backward compatibility code */ - attributes->valuemask &= ~XpmReturnInfos; -/* end 3.2 bc */ - attributes->pixels = NULL; - attributes->npixels = 0; - } - XpmFree(ximage_pixels); - } else { - attributes->pixels = ximage_pixels; - attributes->npixels = image->ncolors; - } - attributes->mask_pixel = mask_pixel; - } else - XpmFree(ximage_pixels); - } else - XpmFree(ximage_pixels); - - /* return created images */ - if (image_return) - *image_return = ximage; - if (shapeimage_return) - *shapeimage_return = shapeimage; - - return (ErrorStatus); -} - - -/* - * Create an XImage - */ -static int -CreateXImage(Display *display, Visual *visual, unsigned int depth, - unsigned int width, unsigned int height, XImage **image_return) -{ - int bitmap_pad; - - /* first get bitmap_pad */ - if (depth > 16) - bitmap_pad = 32; - else if (depth > 8) - bitmap_pad = 16; - else - bitmap_pad = 8; - - /* then create the XImage with data = NULL and bytes_per_line = 0 */ - *image_return = XCreateImage(display, visual, depth, ZPixmap, 0, 0, - width, height, bitmap_pad, 0); - if (!*image_return) - return (XpmNoMemory); - -#ifndef FOR_MSW - /* now that bytes_per_line must have been set properly alloc data */ - (*image_return)->data = - (char *) XpmMalloc((*image_return)->bytes_per_line * height); - - if (!(*image_return)->data) { - XDestroyImage(*image_return); - *image_return = NULL; - return (XpmNoMemory); - } -#else - /* under FOR_MSW XCreateImage has done it all */ -#endif - return (XpmSuccess); -} - -#ifndef FOR_MSW -/* - * The functions below are written from X11R5 MIT's code (XImUtil.c) - * - * The idea is to have faster functions than the standard XPutPixel function - * to build the image data. Indeed we can speed up things by suppressing tests - * performed for each pixel. We do the same tests but at the image level. - * We also assume that we use only ZPixmap images with null offsets. - */ - -LFUNC(_putbits, void, (register char *src, int dstoffset, - register int numbits, register char *dst)); - -LFUNC(_XReverse_Bytes, int, (register unsigned char *bpt, register int nb)); - -static unsigned char Const _reverse_byte[0x100] = { - 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, - 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0, - 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, - 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8, - 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4, - 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4, - 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec, - 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc, - 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2, - 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2, - 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea, - 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa, - 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6, - 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6, - 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee, - 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe, - 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1, - 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1, - 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9, - 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9, - 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5, - 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5, - 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed, - 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd, - 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3, - 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3, - 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb, - 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb, - 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7, - 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7, - 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef, - 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff -}; - -static int -_XReverse_Bytes(register unsigned char *bpt, register int nb) -{ - do { - *bpt = _reverse_byte[*bpt]; - bpt++; - } while (--nb > 0); - return 0; -} - - -void -xpm_xynormalizeimagebits(register unsigned char *bp, register XImage *img) -{ - register unsigned char c; - - if (img->byte_order != img->bitmap_bit_order) { - switch (img->bitmap_unit) { - - case 16: - c = *bp; - *bp = *(bp + 1); - *(bp + 1) = c; - break; - - case 32: - c = *(bp + 3); - *(bp + 3) = *bp; - *bp = c; - c = *(bp + 2); - *(bp + 2) = *(bp + 1); - *(bp + 1) = c; - break; - } - } - if (img->bitmap_bit_order == MSBFirst) - _XReverse_Bytes(bp, img->bitmap_unit >> 3); -} - -void -xpm_znormalizeimagebits(register unsigned char *bp, register XImage *img) -{ - register unsigned char c; - - switch (img->bits_per_pixel) { - - case 2: - _XReverse_Bytes(bp, 1); - break; - - case 4: - *bp = ((*bp >> 4) & 0xF) | ((*bp << 4) & ~0xF); - break; - - case 16: - c = *bp; - *bp = *(bp + 1); - *(bp + 1) = c; - break; - - case 24: - c = *(bp + 2); - *(bp + 2) = *bp; - *bp = c; - break; - - case 32: - c = *(bp + 3); - *(bp + 3) = *bp; - *bp = c; - c = *(bp + 2); - *(bp + 2) = *(bp + 1); - *(bp + 1) = c; - break; - } -} - -static unsigned char Const _lomask[0x09] = { -0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff}; -static unsigned char Const _himask[0x09] = { -0xff, 0xfe, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00}; - -static void -_putbits(register char *src, int dstoffset, register int numbits, register char *dst) - -/* register char *src; */ /* address of source bit string */ -/* int dstoffset; */ /* bit offset into destination; - * range is 0-31 */ -/* register int numbits; */ /* number of bits to copy to - * destination */ -/* register char *dst; */ /* address of destination bit string */ -{ - register unsigned char chlo, chhi; - int hibits; - - dst = dst + (dstoffset >> 3); - dstoffset = dstoffset & 7; - hibits = 8 - dstoffset; - chlo = *dst & _lomask[dstoffset]; - for (;;) { - chhi = (*src << dstoffset) & _himask[dstoffset]; - if (numbits <= hibits) { - chhi = chhi & _lomask[dstoffset + numbits]; - *dst = (*dst & _himask[dstoffset + numbits]) | chlo | chhi; - break; - } - *dst = chhi | chlo; - dst++; - numbits = numbits - hibits; - chlo = (unsigned char) (*src & _himask[hibits]) >> hibits; - src++; - if (numbits <= dstoffset) { - chlo = chlo & _lomask[numbits]; - *dst = (*dst & _himask[numbits]) | chlo; - break; - } - numbits = numbits - dstoffset; - } -} - -/* - * Default method to write pixels into a Z image data structure. - * The algorithm used is: - * - * copy the destination bitmap_unit or Zpixel to temp - * normalize temp if needed - * copy the pixel bits into the temp - * renormalize temp if needed - * copy the temp back into the destination image data - */ - -static void -SetImagePixels(XImage *image, unsigned int width, unsigned int height, unsigned int *pixelindex, Pixel *pixels) -{ - register char *src; - register char *dst; - register unsigned int *iptr; - register int x, y, i; - register char *data; - Pixel pixel, px; - int nbytes, depth, ibu, ibpp; - - data = image->data; - iptr = pixelindex; - depth = image->depth; - if (depth == 1) { - ibu = image->bitmap_unit; - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - pixel = pixels[*iptr]; - for (i = 0, px = pixel; i < sizeof(unsigned long); - i++, px >>= 8) - ((unsigned char *) &pixel)[i] = px; - src = &data[XYINDEX(x, y, image)]; - dst = (char *) &px; - px = 0; - nbytes = ibu >> 3; - for (i = nbytes; --i >= 0;) - *dst++ = *src++; - XYNORMALIZE(&px, image); - _putbits((char *) &pixel, (x % ibu), 1, (char *) &px); - XYNORMALIZE(&px, image); - src = (char *) &px; - dst = &data[XYINDEX(x, y, image)]; - for (i = nbytes; --i >= 0;) - *dst++ = *src++; - } - } else { - ibpp = image->bits_per_pixel; - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - pixel = pixels[*iptr]; - if (depth == 4) - pixel &= 0xf; - for (i = 0, px = pixel; i < sizeof(unsigned long); i++, - px >>= 8) - ((unsigned char *) &pixel)[i] = px; - src = &data[ZINDEX(x, y, image)]; - dst = (char *) &px; - px = 0; - nbytes = (ibpp + 7) >> 3; - for (i = nbytes; --i >= 0;) - *dst++ = *src++; - ZNORMALIZE(&px, image); - _putbits((char *) &pixel, (x * ibpp) & 7, ibpp, (char *) &px); - ZNORMALIZE(&px, image); - src = (char *) &px; - dst = &data[ZINDEX(x, y, image)]; - for (i = nbytes; --i >= 0;) - *dst++ = *src++; - } - } -} - -/* - * write pixels into a 32-bits Z image data structure - */ - -#ifndef WORD64 -/* this item is static but deterministic so let it slide; doesn't - * hurt re-entrancy of this library. Note if it is actually const then would - * be OK under rules of ANSI-C but probably not C++ which may not - * want to allocate space for it. - */ -static unsigned long /* constant */ RTXpm_byteorderpixel = MSBFirst << 24; - -#endif - -/* - WITHOUT_SPEEDUPS is a flag to be turned on if you wish to use the original - 3.2e code - by default you get the speeded-up version. -*/ - -static void -SetImagePixels32(XImage *image, unsigned int width, unsigned int height, unsigned int *pixelindex, Pixel *pixels) -{ - unsigned char *data; - unsigned int *iptr; - int y; - Pixel pixel; - -#ifdef WITHOUT_SPEEDUPS - - int x; - unsigned char *addr; - - data = (unsigned char *) image->data; - iptr = pixelindex; -#ifndef WORD64 - if (*((char *) &RTXpm_byteorderpixel) == image->byte_order) { - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX32(x, y, image)]; - *((unsigned long *) addr) = pixels[*iptr]; - } - } else -#endif - if (image->byte_order == MSBFirst) - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX32(x, y, image)]; - pixel = pixels[*iptr]; - addr[0] = pixel >> 24; - addr[1] = pixel >> 16; - addr[2] = pixel >> 8; - addr[3] = pixel; - } - else - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX32(x, y, image)]; - pixel = pixels[*iptr]; - addr[0] = pixel; - addr[1] = pixel >> 8; - addr[2] = pixel >> 16; - addr[3] = pixel >> 24; - } - -#else /* WITHOUT_SPEEDUPS */ - - int bpl = image->bytes_per_line; - unsigned char *data_ptr, *max_data; - - data = (unsigned char *) image->data; - iptr = pixelindex; -#ifndef WORD64 - if (*((char *) &RTXpm_byteorderpixel) == image->byte_order) { - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + (width << 2); - - while (data_ptr < max_data) { - *((unsigned long *) data_ptr) = pixels[*(iptr++)]; - data_ptr += (1 << 2); - } - data += bpl; - } - } else -#endif - if (image->byte_order == MSBFirst) - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + (width << 2); - - while (data_ptr < max_data) { - pixel = pixels[*(iptr++)]; - - *data_ptr++ = pixel >> 24; - *data_ptr++ = pixel >> 16; - *data_ptr++ = pixel >> 8; - *data_ptr++ = pixel; - - } - data += bpl; - } - else - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + (width << 2); - - while (data_ptr < max_data) { - pixel = pixels[*(iptr++)]; - - *data_ptr++ = pixel; - *data_ptr++ = pixel >> 8; - *data_ptr++ = pixel >> 16; - *data_ptr++ = pixel >> 24; - } - data += bpl; - } - -#endif /* WITHOUT_SPEEDUPS */ -} - -/* - * write pixels into a 16-bits Z image data structure - */ - -static void -SetImagePixels16(XImage *image, unsigned int width, unsigned int height, unsigned int *pixelindex, Pixel *pixels) -{ - unsigned char *data; - unsigned int *iptr; - int y; - -#ifdef WITHOUT_SPEEDUPS - - int x; - unsigned char *addr; - - data = (unsigned char *) image->data; - iptr = pixelindex; - if (image->byte_order == MSBFirst) - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX16(x, y, image)]; - addr[0] = pixels[*iptr] >> 8; - addr[1] = pixels[*iptr]; - } - else - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX16(x, y, image)]; - addr[0] = pixels[*iptr]; - addr[1] = pixels[*iptr] >> 8; - } - -#else /* WITHOUT_SPEEDUPS */ - - Pixel pixel; - - int bpl = image->bytes_per_line; - unsigned char *data_ptr, *max_data; - - data = (unsigned char *) image->data; - iptr = pixelindex; - if (image->byte_order == MSBFirst) - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + (width << 1); - - while (data_ptr < max_data) { - pixel = pixels[*(iptr++)]; - - data_ptr[0] = pixel >> 8; - data_ptr[1] = pixel; - - data_ptr += (1 << 1); - } - data += bpl; - } - else - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + (width << 1); - - while (data_ptr < max_data) { - pixel = pixels[*(iptr++)]; - - data_ptr[0] = pixel; - data_ptr[1] = pixel >> 8; - - data_ptr += (1 << 1); - } - data += bpl; - } - -#endif /* WITHOUT_SPEEDUPS */ -} - -/* - * write pixels into a 8-bits Z image data structure - */ - -static void -SetImagePixels8(XImage *image, unsigned int width, unsigned int height, unsigned int *pixelindex, Pixel *pixels) -{ - char *data; - unsigned int *iptr; - int y; - -#ifdef WITHOUT_SPEEDUPS - - int x; - - data = image->data; - iptr = pixelindex; - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) - data[ZINDEX8(x, y, image)] = pixels[*iptr]; - -#else /* WITHOUT_SPEEDUPS */ - - int bpl = image->bytes_per_line; - char *data_ptr, *max_data; - - data = image->data; - iptr = pixelindex; - - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + width; - - while (data_ptr < max_data) - *(data_ptr++) = pixels[*(iptr++)]; - - data += bpl; - } - -#endif /* WITHOUT_SPEEDUPS */ -} - -/* - * write pixels into a 1-bit depth image data structure and **offset null** - */ - -static void -SetImagePixels1(XImage *image, unsigned int width, unsigned int height, unsigned int *pixelindex, Pixel *pixels) -{ - if (image->byte_order != image->bitmap_bit_order) - SetImagePixels(image, width, height, pixelindex, pixels); - else { - unsigned int *iptr; - int y; - char *data; - -#ifdef WITHOUT_SPEEDUPS - - int x; - - data = image->data; - iptr = pixelindex; - if (image->bitmap_bit_order == MSBFirst) - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - if (pixels[*iptr] & 1) - data[ZINDEX1(x, y, image)] |= 0x80 >> (x & 7); - else - data[ZINDEX1(x, y, image)] &= ~(0x80 >> (x & 7)); - } - else - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - if (pixels[*iptr] & 1) - data[ZINDEX1(x, y, image)] |= 1 << (x & 7); - else - data[ZINDEX1(x, y, image)] &= ~(1 << (x & 7)); - } - -#else /* WITHOUT_SPEEDUPS */ - - char value; - char *data_ptr, *max_data; - int bpl = image->bytes_per_line; - int diff, count; - - data = image->data; - iptr = pixelindex; - - diff = width & 7; - width >>= 3; - - if (image->bitmap_bit_order == MSBFirst) - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + width; - while (data_ptr < max_data) { - value = 0; - - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - value = (value << 1) | (pixels[*(iptr++)] & 1); - - *(data_ptr++) = value; - } - if (diff) { - value = 0; - for (count = 0; count < diff; count++) { - if (pixels[*(iptr++)] & 1) - value |= (0x80 >> count); - } - *(data_ptr) = value; - } - data += bpl; - } - else - for (y = 0; y < height; y++) { - data_ptr = data; - max_data = data_ptr + width; - while (data_ptr < max_data) { - value = 0; - iptr += 8; - - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - value = (value << 1) | (pixels[*(--iptr)] & 1); - - iptr += 8; - *(data_ptr++) = value; - } - if (diff) { - value = 0; - for (count = 0; count < diff; count++) { - if (pixels[*(iptr++)] & 1) - value |= (1 << count); - } - *(data_ptr) = value; - } - data += bpl; - } - -#endif /* WITHOUT_SPEEDUPS */ - } -} - -int -XpmCreatePixmapFromXpmImage(Display *display, Drawable d, XpmImage *image, - Pixmap *pixmap_return, Pixmap *shapemask_return, XpmAttributes *attributes) -{ - XImage *ximage, *shapeimage; - int ErrorStatus; - - /* initialize return values */ - if (pixmap_return) - *pixmap_return = 0; - if (shapemask_return) - *shapemask_return = 0; - - /* create the ximages */ - ErrorStatus = XpmCreateImageFromXpmImage(display, image, - (pixmap_return ? &ximage : NULL), - (shapemask_return ? - &shapeimage : NULL), - attributes); - if (ErrorStatus < 0) - return (ErrorStatus); - - /* create the pixmaps and destroy images */ - if (pixmap_return && ximage) { - xpmCreatePixmapFromImage(display, d, ximage, pixmap_return); - XDestroyImage(ximage); - } - if (shapemask_return && shapeimage) { - xpmCreatePixmapFromImage(display, d, shapeimage, shapemask_return); - XDestroyImage(shapeimage); - } - return (ErrorStatus); -} - -#else /* FOR_MSW part follows */ -static void -MSWSetImagePixels(Display *dc, XImage *image, unsigned int width, unsigned int height, - unsigned int *pixelindex, Pixel *pixels) -{ - unsigned int *data = pixelindex; - unsigned int x, y; - - SelectObject(*dc, image->bitmap); - if (image->depth == 1) - { - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - SetPixel(*dc, x, y, (pixels[*(data++)] ? RGB(255,255,255) : 0)); /* data is [x+y*width] */ - } - } - } - else - { - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++) { - SetPixel(*dc, x, y, pixels[*(data++)]); /* data is [x+y*width] */ - } - } - } -} - -#endif /* FOR_MSW */ diff --git a/src/xpm/crifrbuf.c b/src/xpm/crifrbuf.c deleted file mode 100644 index 62827b8200..0000000000 --- a/src/xpm/crifrbuf.c +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrIFrBuf.c: * -* * -* XPM library * -* Parse an Xpm buffer (file in memory) and create the image and possibly its * -* mask * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" - -int -XpmCreateImageFromBuffer(Display *display, char *buffer, XImage **image_return, - XImage **shapeimage_return, XpmAttributes *attributes) -{ - XpmImage image; - XpmInfo info; - int ErrorStatus; - - /* create an XpmImage from the buffer */ - if (attributes) { - xpmInitAttributes(attributes); - xpmSetInfoMask(&info, attributes); - ErrorStatus = XpmCreateXpmImageFromBuffer(buffer, &image, &info); - } else - ErrorStatus = XpmCreateXpmImageFromBuffer(buffer, &image, NULL); - - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* create the related ximages */ - ErrorStatus = XpmCreateImageFromXpmImage(display, &image, - image_return, shapeimage_return, - attributes); - if (attributes) { - if (ErrorStatus >= 0) /* no fatal error */ - xpmSetAttributes(attributes, &image, &info); - XpmFreeXpmInfo(&info); - } - /* free the XpmImage */ - XpmFreeXpmImage(&image); - - return (ErrorStatus); -} - -int -XpmCreateXpmImageFromBuffer(char *buffer, XpmImage *image, XpmInfo *info) -{ - xpmData mdata; - int ErrorStatus; - - /* init returned values */ - xpmInitXpmImage(image); - xpmInitXpmInfo(info); - - /* open buffer to read */ - xpmOpenBuffer(buffer, &mdata); - - /* create the XpmImage from the XpmData */ - ErrorStatus = xpmParseData(&mdata, image, info); - - xpmDataClose(&mdata); - - return (ErrorStatus); -} diff --git a/src/xpm/crifrdat.c b/src/xpm/crifrdat.c deleted file mode 100644 index 74fa2658c6..0000000000 --- a/src/xpm/crifrdat.c +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrIFrData.c: * -* * -* XPM library * -* Parse an Xpm array and create the image and possibly its mask * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" - -int -XpmCreateImageFromData(Display *display, char **data, XImage **image_return, - XImage **shapeimage_return, XpmAttributes *attributes) -{ - XpmImage image; - XpmInfo info; - int ErrorStatus; - - /* create an XpmImage from the file */ - if (attributes) { - xpmInitAttributes(attributes); - xpmSetInfoMask(&info, attributes); - ErrorStatus = XpmCreateXpmImageFromData(data, &image, &info); - } else - ErrorStatus = XpmCreateXpmImageFromData(data, &image, NULL); - - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* create the related ximages */ - ErrorStatus = XpmCreateImageFromXpmImage(display, &image, - image_return, shapeimage_return, - attributes); - if (attributes) { - if (ErrorStatus >= 0) /* no fatal error */ - xpmSetAttributes(attributes, &image, &info); - XpmFreeXpmInfo(&info); - } - XpmFreeXpmImage(&image); - - return (ErrorStatus); -} - -int -XpmCreateXpmImageFromData(char **data, XpmImage *image, XpmInfo *info) -{ - xpmData mdata; - int ErrorStatus; - - /* init returned values */ - xpmInitXpmImage(image); - xpmInitXpmInfo(info); - - /* open data */ - xpmOpenArray(data, &mdata); - - /* create the XpmImage from the XpmData */ - ErrorStatus = xpmParseData(&mdata, image, info); - - xpmDataClose(&mdata); - - return (ErrorStatus); -} diff --git a/src/xpm/crpfrbuf.c b/src/xpm/crpfrbuf.c deleted file mode 100644 index e6cd21cf42..0000000000 --- a/src/xpm/crpfrbuf.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrPFrBuf.c: * -* * -* XPM library * -* Parse an Xpm buffer and create the pixmap and possibly its mask * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#ifndef FOR_MSW -#include "xpm34p.h" - -int -XpmCreatePixmapFromBuffer(Display *display, Drawable d, char *buffer, Pixmap *pixmap_return, - Pixmap *shapemask_return, XpmAttributes *attributes) -{ - XImage *ximage, *shapeimage; - int ErrorStatus; - - /* initialize return values */ - if (pixmap_return) - *pixmap_return = 0; - if (shapemask_return) - *shapemask_return = 0; - - /* create the images */ - ErrorStatus = XpmCreateImageFromBuffer(display, buffer, - (pixmap_return ? &ximage : NULL), - (shapemask_return ? - &shapeimage : NULL), - attributes); - - if (ErrorStatus < 0) /* fatal error */ - return (ErrorStatus); - - /* create the pixmaps and destroy images */ - if (pixmap_return && ximage) { - xpmCreatePixmapFromImage(display, d, ximage, pixmap_return); - XDestroyImage(ximage); - } - if (shapemask_return && shapeimage) { - xpmCreatePixmapFromImage(display, d, shapeimage, shapemask_return); - XDestroyImage(shapeimage); - } - return (ErrorStatus); -} -#endif diff --git a/src/xpm/crpfrdat.c b/src/xpm/crpfrdat.c deleted file mode 100644 index 7d0cf6aa16..0000000000 --- a/src/xpm/crpfrdat.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmCrPFrData.c: * -* * -* XPM library * -* Parse an Xpm array and create the pixmap and possibly its mask * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" - -#ifndef FOR_MSW -int -XpmCreatePixmapFromData(Display *display, Drawable d, char **data, Pixmap *pixmap_return, - Pixmap *shapemask_return, XpmAttributes *attributes) -{ - XImage *ximage, *shapeimage; - int ErrorStatus; - - /* initialize return values */ - if (pixmap_return) - *pixmap_return = 0; - if (shapemask_return) - *shapemask_return = 0; - - /* create the images */ - ErrorStatus = XpmCreateImageFromData(display, data, - (pixmap_return ? &ximage : NULL), - (shapemask_return ? - &shapeimage : NULL), - attributes); - - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - if (ErrorStatus < 0) /* fatal error */ - return (ErrorStatus); - - /* create the pixmaps and destroy images */ - if (pixmap_return && ximage) { - xpmCreatePixmapFromImage(display, d, ximage, pixmap_return); - XDestroyImage(ximage); - } - if (shapemask_return && shapeimage) { - xpmCreatePixmapFromImage(display, d, shapeimage, shapemask_return); - XDestroyImage(shapeimage); - } - return (ErrorStatus); -} -#endif diff --git a/src/xpm/data.c b/src/xpm/data.c deleted file mode 100644 index 247f8aaa09..0000000000 --- a/src/xpm/data.c +++ /dev/null @@ -1,627 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* data.c: * -* * -* XPM library * -* IO utilities * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* Official version number */ -static char *RCS_Version = "$XpmVersion: 3.4b $"; - -/* Internal version number */ -static char *RCS_Id = "$Id$"; - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:stat.h" -#include "sys$library:ctype.h" -#else -#include -#include -#include -#endif - -#include - -LFUNC(ParseComment, int, (xpmData * mdata)); - -static int -ParseComment(xpmData *mdata) -{ - if (mdata->type == XPMBUFFER) { - register char c; - register unsigned int n = 0; - unsigned int notend; - char *s, *s2; - - s = mdata->Comment; - *s = mdata->Bcmt[0]; - - /* skip the string beginning comment */ - s2 = mdata->Bcmt; - do { - c = *mdata->cptr++; - *++s = c; - n++; - s2++; - } while (c == *s2 && *s2 != '\0' && c && c != mdata->Bos); - - if (*s2 != '\0') { - /* this wasn't the beginning of a comment */ - mdata->cptr -= n; - return 0; - } - /* store comment */ - mdata->Comment[0] = *s; - s = mdata->Comment; - notend = 1; - n = 0; - while (notend) { - s2 = mdata->Ecmt; - while (*s != *s2 && c && c != mdata->Bos) { - c = *mdata->cptr++; - *++s = c; - n++; - } - mdata->CommentLength = n; - do { - c = *mdata->cptr++; - n++; - *++s = c; - s2++; - } while (c == *s2 && *s2 != '\0' && c && c != mdata->Bos); - if (*s2 == '\0') { - /* this is the end of the comment */ - notend = 0; - mdata->cptr--; - } - } - return 0; - } else { - FILE *file = mdata->stream.file; - register int c; - register unsigned int n = 0, a; - unsigned int notend; - char *s, *s2; - - s = mdata->Comment; - *s = mdata->Bcmt[0]; - - /* skip the string beginning comment */ - s2 = mdata->Bcmt; - do { - c = getc(file); - *++s = c; - n++; - s2++; - } while (c == *s2 && *s2 != '\0' - && c != EOF && c != mdata->Bos); - - if (*s2 != '\0') { - /* this wasn't the beginning of a comment */ - /* put characters back in the order that we got them */ - for (a = n; a > 0; a--, s--) - ungetc(*s, file); - return 0; - } - /* store comment */ - mdata->Comment[0] = *s; - s = mdata->Comment; - notend = 1; - n = 0; - while (notend) { - s2 = mdata->Ecmt; - while (*s != *s2 && c != EOF && c != mdata->Bos) { - c = getc(file); - *++s = c; - n++; - } - mdata->CommentLength = n; - do { - c = getc(file); - n++; - *++s = c; - s2++; - } while (c == *s2 && *s2 != '\0' - && c != EOF && c != mdata->Bos); - if (*s2 == '\0') { - /* this is the end of the comment */ - notend = 0; - ungetc(*s, file); - } - } - return 0; - } -} - -/* - * skip to the end of the current string and the beginning of the next one - */ -int -xpmNextString(xpmData *mdata) -{ - if (!mdata->type) - mdata->cptr = (mdata->stream.data)[++mdata->line]; - else if (mdata->type == XPMBUFFER) { - register char c; - - /* get to the end of the current string */ - if (mdata->Eos) - while ((c = *mdata->cptr++) && c != mdata->Eos); - - /* - * then get to the beginning of the next string looking for possible - * comment - */ - if (mdata->Bos) { - while ((c = *mdata->cptr++) && c != mdata->Bos) - if (mdata->Bcmt && c == mdata->Bcmt[0]) - ParseComment(mdata); - } else if (mdata->Bcmt) { /* XPM2 natural */ - while ((c = *mdata->cptr++) == mdata->Bcmt[0]) - ParseComment(mdata); - mdata->cptr--; - } - } else { - register int c; - FILE *file = mdata->stream.file; - - /* get to the end of the current string */ - if (mdata->Eos) - while ((c = getc(file)) != mdata->Eos && c != EOF); - - /* - * then get to the beginning of the next string looking for possible - * comment - */ - if (mdata->Bos) { - while ((c = getc(file)) != mdata->Bos && c != EOF) - if (mdata->Bcmt && c == mdata->Bcmt[0]) - ParseComment(mdata); - - } else if (mdata->Bcmt) { /* XPM2 natural */ - while ((c = getc(file)) == mdata->Bcmt[0]) - ParseComment(mdata); - ungetc(c, file); - } - } - return 0; -} - - -/* - * skip whitespace and compute the following unsigned int, - * returns 1 if one is found and 0 if not - */ -int -xpmNextUI(xpmData *mdata, unsigned int *ui_return) -{ - char buf[BUFSIZ]; - int l; - - l = xpmNextWord(mdata, buf, BUFSIZ); - return atoui(buf, l, ui_return); -} - -/* - * skip whitespace and return the following word - */ -unsigned int -xpmNextWord(xpmData *mdata, char *buf, unsigned int buflen) -{ - register unsigned int n = 0; - int c; - - if (!mdata->type || mdata->type == XPMBUFFER) { - while (isspace(c = *mdata->cptr) && c != mdata->Eos) - mdata->cptr++; - do { - c = *mdata->cptr++; - *buf++ = c; - n++; - } while (!isspace(c) && c != mdata->Eos && n < buflen); - n--; - mdata->cptr--; - } else { - FILE *file = mdata->stream.file; - - while ((c = getc(file)) != EOF && isspace(c) && c != mdata->Eos); - while (!isspace(c) && c != mdata->Eos && c != EOF && n < buflen) { - *buf++ = c; - n++; - c = getc(file); - } - ungetc(c, file); - } - return (n); -} - -/* - * return end of string - WARNING: malloc! - */ -int -xpmGetString(xpmData *mdata, char **sptr, unsigned int *l) -{ - unsigned int i, n = 0; - int c; - char *p, *q, buf[BUFSIZ]; - - if (!mdata->type || mdata->type == XPMBUFFER) { - if (mdata->cptr) { - char *start; - - while (isspace(c = *mdata->cptr) && c != mdata->Eos) - mdata->cptr++; - start = mdata->cptr; - while ((c = *mdata->cptr) && c != mdata->Eos) - mdata->cptr++; - n = mdata->cptr - start + 1; - p = (char *) XpmMalloc(n); - if (!p) - return (XpmNoMemory); - strncpy(p, start, n); - if (mdata->type) /* XPMBUFFER */ - p[n - 1] = '\0'; - } - } else { - FILE *file = mdata->stream.file; - - while ((c = getc(file)) != EOF && isspace(c) && c != mdata->Eos); - if (c == EOF) - return (XpmFileInvalid); - p = NULL; - i = 0; - q = buf; - p = (char *) XpmMalloc(1); - while (c != mdata->Eos && c != EOF) { - if (i == BUFSIZ) { - /* get to the end of the buffer */ - /* malloc needed memory */ - q = (char *) XpmRealloc(p, n + i); - if (!q) { - XpmFree(p); - return (XpmNoMemory); - } - p = q; - q += n; - /* and copy what we already have */ - strncpy(q, buf, i); - n += i; - i = 0; - q = buf; - } - *q++ = c; - i++; - c = getc(file); - } - if (c == EOF) { - XpmFree(p); - return (XpmFileInvalid); - } - if (n + i != 0) { - /* malloc needed memory */ - q = (char *) XpmRealloc(p, n + i + 1); - if (!q) { - XpmFree(p); - return (XpmNoMemory); - } - p = q; - q += n; - /* and copy the buffer */ - strncpy(q, buf, i); - n += i; - p[n++] = '\0'; - } else { - *p = '\0'; - n = 1; - } - ungetc(c, file); - } - *sptr = p; - *l = n; - return (XpmSuccess); -} - -/* - * get the current comment line - */ -int -xpmGetCmt(xpmData *mdata, char **cmt) -{ - if (!mdata->type) - *cmt = NULL; - else if (mdata->CommentLength) { - *cmt = (char *) XpmMalloc(mdata->CommentLength + 1); - strncpy(*cmt, mdata->Comment, mdata->CommentLength); - (*cmt)[mdata->CommentLength] = '\0'; - mdata->CommentLength = 0; - } else - *cmt = NULL; - return 0; -} - -/* - * open the given file to be read as an xpmData which is returned. - */ -int -xpmReadFile(char *filename, xpmData *mdata) -{ -#ifdef ZPIPE - char *compressfile, buf[BUFSIZ]; - struct stat status; - -#endif - - if (!filename) { - mdata->stream.file = (stdin); - mdata->type = XPMFILE; - } else { -#ifdef ZPIPE - if (((int) strlen(filename) > 2) && - !strcmp(".Z", filename + (strlen(filename) - 2))) { - mdata->type = XPMPIPE; - sprintf(buf, "uncompress -c %s", filename); - if (!(mdata->stream.file = popen(buf, "r"))) - return (XpmOpenFailed); - - } else if (((int) strlen(filename) > 3) && - !strcmp(".gz", filename + (strlen(filename) - 3))) { - mdata->type = XPMPIPE; - sprintf(buf, "gunzip -qc %s", filename); - if (!(mdata->stream.file = popen(buf, "r"))) - return (XpmOpenFailed); - - } else { - if (!(compressfile = (char *) XpmMalloc(strlen(filename) + 4))) - return (XpmNoMemory); - - strcpy(compressfile, filename); - strcat(compressfile, ".Z"); - if (!stat(compressfile, &status)) { - sprintf(buf, "uncompress -c %s", compressfile); - if (!(mdata->stream.file = popen(buf, "r"))) { - XpmFree(compressfile); - return (XpmOpenFailed); - } - mdata->type = XPMPIPE; - } else { - strcpy(compressfile, filename); - strcat(compressfile, ".gz"); - if (!stat(compressfile, &status)) { - sprintf(buf, "gunzip -c %s", compressfile); - if (!(mdata->stream.file = popen(buf, "r"))) { - XpmFree(compressfile); - return (XpmOpenFailed); - } - mdata->type = XPMPIPE; - } else { -#endif - if (!(mdata->stream.file = fopen(filename, "r"))) { -#ifdef ZPIPE - XpmFree(compressfile); -#endif - return (XpmOpenFailed); - } - mdata->type = XPMFILE; -#ifdef ZPIPE - } - } - XpmFree(compressfile); - } -#endif - } - mdata->CommentLength = 0; - return (XpmSuccess); -} - -/* - * open the given file to be written as an xpmData which is returned - */ -int -xpmWriteFile(char *filename, xpmData *mdata) -{ -#ifdef ZPIPE - char buf[BUFSIZ]; - -#endif - - if (!filename) { - mdata->stream.file = (stdout); - mdata->type = XPMFILE; - } else { -#ifdef ZPIPE - if ((int) strlen(filename) > 2 - && !strcmp(".Z", filename + (strlen(filename) - 2))) { - sprintf(buf, "compress > %s", filename); - if (!(mdata->stream.file = popen(buf, "w"))) - return (XpmOpenFailed); - - mdata->type = XPMPIPE; - } else if ((int) strlen(filename) > 3 - && !strcmp(".gz", filename + (strlen(filename) - 3))) { - sprintf(buf, "gzip -q > %s", filename); - if (!(mdata->stream.file = popen(buf, "w"))) - return (XpmOpenFailed); - - mdata->type = XPMPIPE; - } else { -#endif - if (!(mdata->stream.file = fopen(filename, "w"))) - return (XpmOpenFailed); - - mdata->type = XPMFILE; -#ifdef ZPIPE - } -#endif - } - return (XpmSuccess); -} - -/* - * open the given array to be read or written as an xpmData which is returned - */ -void -xpmOpenArray(char **data, xpmData *mdata) -{ - mdata->type = XPMARRAY; - mdata->stream.data = data; - mdata->cptr = *data; - mdata->line = 0; - mdata->CommentLength = 0; - mdata->Bcmt = mdata->Ecmt = NULL; - mdata->Bos = mdata->Eos = '\0'; - mdata->format = 0; /* this can only be Xpm 2 or 3 */ -} - -/* - * open the given buffer to be read or written as an xpmData which is returned - */ -void -xpmOpenBuffer(char *buffer, xpmData *mdata) -{ - mdata->type = XPMBUFFER; - mdata->cptr = buffer; - mdata->CommentLength = 0; -} - -/* - * close the file related to the xpmData if any - */ -int -xpmDataClose(xpmData *mdata) -{ - switch (mdata->type) { - case XPMARRAY: - case XPMBUFFER: - break; - case XPMFILE: - if (mdata->stream.file != (stdout) && mdata->stream.file != (stdin)) - fclose(mdata->stream.file); - break; -#ifdef ZPIPE - case XPMPIPE: - pclose(mdata->stream.file); - break; -#endif - } - return 0; -} - -xpmDataType xpmDataTypes[] = -{ - "", "!", "\n", '\0', '\n', "", "", "", "", /* Natural type */ - "C", "/*", "*/", '"', '"', ",\n", "static char *", "[] = {\n", "};\n", - "Lisp", ";", "\n", '"', '"', "\n", "(setq ", " '(\n", "))\n", -#ifdef VMS - NULL -#else - NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL -#endif -}; - -/* - * parse xpm header - */ -int -xpmParseHeader(xpmData *mdata) -{ - char buf[BUFSIZ]; - int l, n = 0; - - if (mdata->type) { - mdata->Bos = '\0'; - mdata->Eos = '\n'; - mdata->Bcmt = mdata->Ecmt = NULL; - l = xpmNextWord(mdata, buf, BUFSIZ); - if (l == 7 && !strncmp("#define", buf, 7)) { - /* this maybe an XPM 1 file */ - char *ptr; - - l = xpmNextWord(mdata, buf, BUFSIZ); - if (!l) - return (XpmFileInvalid); - ptr = strchr(buf, '_'); - if (!ptr || strncmp("_format", ptr, l - (ptr - buf))) - return XpmFileInvalid; - /* this is definitely an XPM 1 file */ - mdata->format = 1; - n = 1; /* handle XPM1 as mainly XPM2 C */ - } else { - - /* - * skip the first word, get the second one, and see if this is - * XPM 2 or 3 - */ - l = xpmNextWord(mdata, buf, BUFSIZ); - if ((l == 3 && !strncmp("XPM", buf, 3)) || - (l == 4 && !strncmp("XPM2", buf, 4))) { - if (l == 3) - n = 1; /* handle XPM as XPM2 C */ - else { - /* get the type key word */ - l = xpmNextWord(mdata, buf, BUFSIZ); - - /* - * get infos about this type - */ - while (xpmDataTypes[n].type - && strncmp(xpmDataTypes[n].type, buf, l)) - n++; - } - mdata->format = 0; - } else - /* nope this is not an XPM file */ - return XpmFileInvalid; - } - if (xpmDataTypes[n].type) { - if (n == 0) { /* natural type */ - mdata->Bcmt = xpmDataTypes[n].Bcmt; - mdata->Ecmt = xpmDataTypes[n].Ecmt; - xpmNextString(mdata); /* skip the end of the headerline */ - mdata->Bos = xpmDataTypes[n].Bos; - mdata->Eos = xpmDataTypes[n].Eos; - } else { - mdata->Bcmt = xpmDataTypes[n].Bcmt; - mdata->Ecmt = xpmDataTypes[n].Ecmt; - if (!mdata->format) { /* XPM 2 or 3 */ - mdata->Bos = xpmDataTypes[n].Bos; - mdata->Eos = '\0'; - /* get to the beginning of the first string */ - xpmNextString(mdata); - mdata->Eos = xpmDataTypes[n].Eos; - } else /* XPM 1 skip end of line */ - xpmNextString(mdata); - } - } else - /* we don't know about that type of XPM file... */ - return XpmFileInvalid; - } - return XpmSuccess; -} diff --git a/src/xpm/dataxpm.c b/src/xpm/dataxpm.c deleted file mode 100644 index 247f8aaa09..0000000000 --- a/src/xpm/dataxpm.c +++ /dev/null @@ -1,627 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* data.c: * -* * -* XPM library * -* IO utilities * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* Official version number */ -static char *RCS_Version = "$XpmVersion: 3.4b $"; - -/* Internal version number */ -static char *RCS_Id = "$Id$"; - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:stat.h" -#include "sys$library:ctype.h" -#else -#include -#include -#include -#endif - -#include - -LFUNC(ParseComment, int, (xpmData * mdata)); - -static int -ParseComment(xpmData *mdata) -{ - if (mdata->type == XPMBUFFER) { - register char c; - register unsigned int n = 0; - unsigned int notend; - char *s, *s2; - - s = mdata->Comment; - *s = mdata->Bcmt[0]; - - /* skip the string beginning comment */ - s2 = mdata->Bcmt; - do { - c = *mdata->cptr++; - *++s = c; - n++; - s2++; - } while (c == *s2 && *s2 != '\0' && c && c != mdata->Bos); - - if (*s2 != '\0') { - /* this wasn't the beginning of a comment */ - mdata->cptr -= n; - return 0; - } - /* store comment */ - mdata->Comment[0] = *s; - s = mdata->Comment; - notend = 1; - n = 0; - while (notend) { - s2 = mdata->Ecmt; - while (*s != *s2 && c && c != mdata->Bos) { - c = *mdata->cptr++; - *++s = c; - n++; - } - mdata->CommentLength = n; - do { - c = *mdata->cptr++; - n++; - *++s = c; - s2++; - } while (c == *s2 && *s2 != '\0' && c && c != mdata->Bos); - if (*s2 == '\0') { - /* this is the end of the comment */ - notend = 0; - mdata->cptr--; - } - } - return 0; - } else { - FILE *file = mdata->stream.file; - register int c; - register unsigned int n = 0, a; - unsigned int notend; - char *s, *s2; - - s = mdata->Comment; - *s = mdata->Bcmt[0]; - - /* skip the string beginning comment */ - s2 = mdata->Bcmt; - do { - c = getc(file); - *++s = c; - n++; - s2++; - } while (c == *s2 && *s2 != '\0' - && c != EOF && c != mdata->Bos); - - if (*s2 != '\0') { - /* this wasn't the beginning of a comment */ - /* put characters back in the order that we got them */ - for (a = n; a > 0; a--, s--) - ungetc(*s, file); - return 0; - } - /* store comment */ - mdata->Comment[0] = *s; - s = mdata->Comment; - notend = 1; - n = 0; - while (notend) { - s2 = mdata->Ecmt; - while (*s != *s2 && c != EOF && c != mdata->Bos) { - c = getc(file); - *++s = c; - n++; - } - mdata->CommentLength = n; - do { - c = getc(file); - n++; - *++s = c; - s2++; - } while (c == *s2 && *s2 != '\0' - && c != EOF && c != mdata->Bos); - if (*s2 == '\0') { - /* this is the end of the comment */ - notend = 0; - ungetc(*s, file); - } - } - return 0; - } -} - -/* - * skip to the end of the current string and the beginning of the next one - */ -int -xpmNextString(xpmData *mdata) -{ - if (!mdata->type) - mdata->cptr = (mdata->stream.data)[++mdata->line]; - else if (mdata->type == XPMBUFFER) { - register char c; - - /* get to the end of the current string */ - if (mdata->Eos) - while ((c = *mdata->cptr++) && c != mdata->Eos); - - /* - * then get to the beginning of the next string looking for possible - * comment - */ - if (mdata->Bos) { - while ((c = *mdata->cptr++) && c != mdata->Bos) - if (mdata->Bcmt && c == mdata->Bcmt[0]) - ParseComment(mdata); - } else if (mdata->Bcmt) { /* XPM2 natural */ - while ((c = *mdata->cptr++) == mdata->Bcmt[0]) - ParseComment(mdata); - mdata->cptr--; - } - } else { - register int c; - FILE *file = mdata->stream.file; - - /* get to the end of the current string */ - if (mdata->Eos) - while ((c = getc(file)) != mdata->Eos && c != EOF); - - /* - * then get to the beginning of the next string looking for possible - * comment - */ - if (mdata->Bos) { - while ((c = getc(file)) != mdata->Bos && c != EOF) - if (mdata->Bcmt && c == mdata->Bcmt[0]) - ParseComment(mdata); - - } else if (mdata->Bcmt) { /* XPM2 natural */ - while ((c = getc(file)) == mdata->Bcmt[0]) - ParseComment(mdata); - ungetc(c, file); - } - } - return 0; -} - - -/* - * skip whitespace and compute the following unsigned int, - * returns 1 if one is found and 0 if not - */ -int -xpmNextUI(xpmData *mdata, unsigned int *ui_return) -{ - char buf[BUFSIZ]; - int l; - - l = xpmNextWord(mdata, buf, BUFSIZ); - return atoui(buf, l, ui_return); -} - -/* - * skip whitespace and return the following word - */ -unsigned int -xpmNextWord(xpmData *mdata, char *buf, unsigned int buflen) -{ - register unsigned int n = 0; - int c; - - if (!mdata->type || mdata->type == XPMBUFFER) { - while (isspace(c = *mdata->cptr) && c != mdata->Eos) - mdata->cptr++; - do { - c = *mdata->cptr++; - *buf++ = c; - n++; - } while (!isspace(c) && c != mdata->Eos && n < buflen); - n--; - mdata->cptr--; - } else { - FILE *file = mdata->stream.file; - - while ((c = getc(file)) != EOF && isspace(c) && c != mdata->Eos); - while (!isspace(c) && c != mdata->Eos && c != EOF && n < buflen) { - *buf++ = c; - n++; - c = getc(file); - } - ungetc(c, file); - } - return (n); -} - -/* - * return end of string - WARNING: malloc! - */ -int -xpmGetString(xpmData *mdata, char **sptr, unsigned int *l) -{ - unsigned int i, n = 0; - int c; - char *p, *q, buf[BUFSIZ]; - - if (!mdata->type || mdata->type == XPMBUFFER) { - if (mdata->cptr) { - char *start; - - while (isspace(c = *mdata->cptr) && c != mdata->Eos) - mdata->cptr++; - start = mdata->cptr; - while ((c = *mdata->cptr) && c != mdata->Eos) - mdata->cptr++; - n = mdata->cptr - start + 1; - p = (char *) XpmMalloc(n); - if (!p) - return (XpmNoMemory); - strncpy(p, start, n); - if (mdata->type) /* XPMBUFFER */ - p[n - 1] = '\0'; - } - } else { - FILE *file = mdata->stream.file; - - while ((c = getc(file)) != EOF && isspace(c) && c != mdata->Eos); - if (c == EOF) - return (XpmFileInvalid); - p = NULL; - i = 0; - q = buf; - p = (char *) XpmMalloc(1); - while (c != mdata->Eos && c != EOF) { - if (i == BUFSIZ) { - /* get to the end of the buffer */ - /* malloc needed memory */ - q = (char *) XpmRealloc(p, n + i); - if (!q) { - XpmFree(p); - return (XpmNoMemory); - } - p = q; - q += n; - /* and copy what we already have */ - strncpy(q, buf, i); - n += i; - i = 0; - q = buf; - } - *q++ = c; - i++; - c = getc(file); - } - if (c == EOF) { - XpmFree(p); - return (XpmFileInvalid); - } - if (n + i != 0) { - /* malloc needed memory */ - q = (char *) XpmRealloc(p, n + i + 1); - if (!q) { - XpmFree(p); - return (XpmNoMemory); - } - p = q; - q += n; - /* and copy the buffer */ - strncpy(q, buf, i); - n += i; - p[n++] = '\0'; - } else { - *p = '\0'; - n = 1; - } - ungetc(c, file); - } - *sptr = p; - *l = n; - return (XpmSuccess); -} - -/* - * get the current comment line - */ -int -xpmGetCmt(xpmData *mdata, char **cmt) -{ - if (!mdata->type) - *cmt = NULL; - else if (mdata->CommentLength) { - *cmt = (char *) XpmMalloc(mdata->CommentLength + 1); - strncpy(*cmt, mdata->Comment, mdata->CommentLength); - (*cmt)[mdata->CommentLength] = '\0'; - mdata->CommentLength = 0; - } else - *cmt = NULL; - return 0; -} - -/* - * open the given file to be read as an xpmData which is returned. - */ -int -xpmReadFile(char *filename, xpmData *mdata) -{ -#ifdef ZPIPE - char *compressfile, buf[BUFSIZ]; - struct stat status; - -#endif - - if (!filename) { - mdata->stream.file = (stdin); - mdata->type = XPMFILE; - } else { -#ifdef ZPIPE - if (((int) strlen(filename) > 2) && - !strcmp(".Z", filename + (strlen(filename) - 2))) { - mdata->type = XPMPIPE; - sprintf(buf, "uncompress -c %s", filename); - if (!(mdata->stream.file = popen(buf, "r"))) - return (XpmOpenFailed); - - } else if (((int) strlen(filename) > 3) && - !strcmp(".gz", filename + (strlen(filename) - 3))) { - mdata->type = XPMPIPE; - sprintf(buf, "gunzip -qc %s", filename); - if (!(mdata->stream.file = popen(buf, "r"))) - return (XpmOpenFailed); - - } else { - if (!(compressfile = (char *) XpmMalloc(strlen(filename) + 4))) - return (XpmNoMemory); - - strcpy(compressfile, filename); - strcat(compressfile, ".Z"); - if (!stat(compressfile, &status)) { - sprintf(buf, "uncompress -c %s", compressfile); - if (!(mdata->stream.file = popen(buf, "r"))) { - XpmFree(compressfile); - return (XpmOpenFailed); - } - mdata->type = XPMPIPE; - } else { - strcpy(compressfile, filename); - strcat(compressfile, ".gz"); - if (!stat(compressfile, &status)) { - sprintf(buf, "gunzip -c %s", compressfile); - if (!(mdata->stream.file = popen(buf, "r"))) { - XpmFree(compressfile); - return (XpmOpenFailed); - } - mdata->type = XPMPIPE; - } else { -#endif - if (!(mdata->stream.file = fopen(filename, "r"))) { -#ifdef ZPIPE - XpmFree(compressfile); -#endif - return (XpmOpenFailed); - } - mdata->type = XPMFILE; -#ifdef ZPIPE - } - } - XpmFree(compressfile); - } -#endif - } - mdata->CommentLength = 0; - return (XpmSuccess); -} - -/* - * open the given file to be written as an xpmData which is returned - */ -int -xpmWriteFile(char *filename, xpmData *mdata) -{ -#ifdef ZPIPE - char buf[BUFSIZ]; - -#endif - - if (!filename) { - mdata->stream.file = (stdout); - mdata->type = XPMFILE; - } else { -#ifdef ZPIPE - if ((int) strlen(filename) > 2 - && !strcmp(".Z", filename + (strlen(filename) - 2))) { - sprintf(buf, "compress > %s", filename); - if (!(mdata->stream.file = popen(buf, "w"))) - return (XpmOpenFailed); - - mdata->type = XPMPIPE; - } else if ((int) strlen(filename) > 3 - && !strcmp(".gz", filename + (strlen(filename) - 3))) { - sprintf(buf, "gzip -q > %s", filename); - if (!(mdata->stream.file = popen(buf, "w"))) - return (XpmOpenFailed); - - mdata->type = XPMPIPE; - } else { -#endif - if (!(mdata->stream.file = fopen(filename, "w"))) - return (XpmOpenFailed); - - mdata->type = XPMFILE; -#ifdef ZPIPE - } -#endif - } - return (XpmSuccess); -} - -/* - * open the given array to be read or written as an xpmData which is returned - */ -void -xpmOpenArray(char **data, xpmData *mdata) -{ - mdata->type = XPMARRAY; - mdata->stream.data = data; - mdata->cptr = *data; - mdata->line = 0; - mdata->CommentLength = 0; - mdata->Bcmt = mdata->Ecmt = NULL; - mdata->Bos = mdata->Eos = '\0'; - mdata->format = 0; /* this can only be Xpm 2 or 3 */ -} - -/* - * open the given buffer to be read or written as an xpmData which is returned - */ -void -xpmOpenBuffer(char *buffer, xpmData *mdata) -{ - mdata->type = XPMBUFFER; - mdata->cptr = buffer; - mdata->CommentLength = 0; -} - -/* - * close the file related to the xpmData if any - */ -int -xpmDataClose(xpmData *mdata) -{ - switch (mdata->type) { - case XPMARRAY: - case XPMBUFFER: - break; - case XPMFILE: - if (mdata->stream.file != (stdout) && mdata->stream.file != (stdin)) - fclose(mdata->stream.file); - break; -#ifdef ZPIPE - case XPMPIPE: - pclose(mdata->stream.file); - break; -#endif - } - return 0; -} - -xpmDataType xpmDataTypes[] = -{ - "", "!", "\n", '\0', '\n', "", "", "", "", /* Natural type */ - "C", "/*", "*/", '"', '"', ",\n", "static char *", "[] = {\n", "};\n", - "Lisp", ";", "\n", '"', '"', "\n", "(setq ", " '(\n", "))\n", -#ifdef VMS - NULL -#else - NULL, NULL, NULL, 0, 0, NULL, NULL, NULL, NULL -#endif -}; - -/* - * parse xpm header - */ -int -xpmParseHeader(xpmData *mdata) -{ - char buf[BUFSIZ]; - int l, n = 0; - - if (mdata->type) { - mdata->Bos = '\0'; - mdata->Eos = '\n'; - mdata->Bcmt = mdata->Ecmt = NULL; - l = xpmNextWord(mdata, buf, BUFSIZ); - if (l == 7 && !strncmp("#define", buf, 7)) { - /* this maybe an XPM 1 file */ - char *ptr; - - l = xpmNextWord(mdata, buf, BUFSIZ); - if (!l) - return (XpmFileInvalid); - ptr = strchr(buf, '_'); - if (!ptr || strncmp("_format", ptr, l - (ptr - buf))) - return XpmFileInvalid; - /* this is definitely an XPM 1 file */ - mdata->format = 1; - n = 1; /* handle XPM1 as mainly XPM2 C */ - } else { - - /* - * skip the first word, get the second one, and see if this is - * XPM 2 or 3 - */ - l = xpmNextWord(mdata, buf, BUFSIZ); - if ((l == 3 && !strncmp("XPM", buf, 3)) || - (l == 4 && !strncmp("XPM2", buf, 4))) { - if (l == 3) - n = 1; /* handle XPM as XPM2 C */ - else { - /* get the type key word */ - l = xpmNextWord(mdata, buf, BUFSIZ); - - /* - * get infos about this type - */ - while (xpmDataTypes[n].type - && strncmp(xpmDataTypes[n].type, buf, l)) - n++; - } - mdata->format = 0; - } else - /* nope this is not an XPM file */ - return XpmFileInvalid; - } - if (xpmDataTypes[n].type) { - if (n == 0) { /* natural type */ - mdata->Bcmt = xpmDataTypes[n].Bcmt; - mdata->Ecmt = xpmDataTypes[n].Ecmt; - xpmNextString(mdata); /* skip the end of the headerline */ - mdata->Bos = xpmDataTypes[n].Bos; - mdata->Eos = xpmDataTypes[n].Eos; - } else { - mdata->Bcmt = xpmDataTypes[n].Bcmt; - mdata->Ecmt = xpmDataTypes[n].Ecmt; - if (!mdata->format) { /* XPM 2 or 3 */ - mdata->Bos = xpmDataTypes[n].Bos; - mdata->Eos = '\0'; - /* get to the beginning of the first string */ - xpmNextString(mdata); - mdata->Eos = xpmDataTypes[n].Eos; - } else /* XPM 1 skip end of line */ - xpmNextString(mdata); - } - } else - /* we don't know about that type of XPM file... */ - return XpmFileInvalid; - } - return XpmSuccess; -} diff --git a/src/xpm/files b/src/xpm/files deleted file mode 100644 index 0a98c41644..0000000000 --- a/src/xpm/files +++ /dev/null @@ -1,47 +0,0 @@ -CHANGES -COPYRIGHT -FILES -Imakefile -Makefile.noXtree -README -README.MSW -namecvt -lib -lib/Imakefile -lib/Makefile.noXtree -lib/XpmCrBufFrI.c -lib/XpmCrBufFrP.c -lib/XpmCrDataFrI.c -lib/XpmCrDataFrP.c -lib/XpmCrIFrBuf.c -lib/XpmCrIFrData.c -lib/XpmCrPFrBuf.c -lib/XpmCrPFrData.c -lib/XpmRdFToData.c -lib/XpmRdFToI.c -lib/XpmRdFToP.c -lib/XpmWrFFrData.c -lib/XpmWrFFrI.c -lib/XpmWrFFrP.c -lib/create.c -lib/data.c -lib/hashtable.c -lib/misc.c -lib/parse.c -lib/rgb.c -lib/rgbtab.h -lib/scan.c -lib/simx.h -lib/simx.c -lib/xpm.h -lib/xpmP.h -doc -doc/xpm.ps -sxpm -sxpm/Imakefile -sxpm/Makefile.noXtree -sxpm/plaid.xpm -sxpm/plaid_ext.xpm -sxpm/plaid_mask.xpm -sxpm/sxpm.c -sxpm/sxpm.man diff --git a/src/xpm/hashtab.c b/src/xpm/hashtab.c deleted file mode 100644 index 6efa9708b8..0000000000 --- a/src/xpm/hashtab.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* hashtable.c: * -* * -* XPM library * -* * -* Developed by Arnaud Le Hors * -* this originaly comes from Colas Nahaboo as a part of Wool * -* * -\*****************************************************************************/ - -#include "xpm34p.h" - -LFUNC(AtomMake, xpmHashAtom, (char *name, void *data)); -LFUNC(HashTableGrows, int, (xpmHashTable * table)); - -static xpmHashAtom -AtomMake(char *name, void *data) /* makes an atom */ -/* char *name; */ /* WARNING: is just pointed to */ -/* void *data; */ -{ - xpmHashAtom object = (xpmHashAtom) XpmMalloc(sizeof(struct _xpmHashAtom)); - - if (object) { - object->name = name; - object->data = data; - } - return object; -} - -/************************\ -* * -* hash table routines * -* * -\************************/ - -/* - * Hash function definition: - * HASH_FUNCTION: hash function, hash = hashcode, hp = pointer on char, - * hash2 = temporary for hashcode. - * INITIAL_TABLE_SIZE in slots - * HASH_TABLE_GROWS how hash table grows. - */ - -/* Mock lisp function */ -#define HASH_FUNCTION hash = (hash << 5) - hash + *hp++; -/* #define INITIAL_HASH_SIZE 2017 */ -#define INITIAL_HASH_SIZE 256 /* should be enough for colors */ -#define HASH_TABLE_GROWS size = size * 2; - -/* aho-sethi-ullman's HPJ (sizes should be primes)*/ -#ifdef notdef -#define HASH_FUNCTION hash <<= 4; hash += *hp++; \ - if(hash2 = hash & 0xf0000000) hash ^= (hash2 >> 24) ^ hash2; -#define INITIAL_HASH_SIZE 4095 /* should be 2^n - 1 */ -#define HASH_TABLE_GROWS size = size << 1 + 1; -#endif - -/* GNU emacs function */ -/* -#define HASH_FUNCTION hash = (hash << 3) + (hash >> 28) + *hp++; -#define INITIAL_HASH_SIZE 2017 -#define HASH_TABLE_GROWS size = size * 2; -*/ - -/* end of hash functions */ - -/* - * The hash table is used to store atoms via their NAME: - * - * NAME --hash--> ATOM |--name--> "foo" - * |--data--> any value which has to be stored - * - */ - -/* - * xpmHashSlot gives the slot (pointer to xpmHashAtom) of a name - * (slot points to NULL if it is not defined) - * - */ - -xpmHashAtom * -xpmHashSlot(xpmHashTable *table, char *s) -{ - xpmHashAtom *atomTable = table->atomTable; - unsigned int hash; - xpmHashAtom *p; - char *hp = s; - char *ns; - - hash = 0; - while (*hp) { /* computes hash function */ - HASH_FUNCTION - } - p = atomTable + hash % table->size; - while (*p) { - ns = (*p)->name; - if (ns[0] == s[0] && strcmp(ns, s) == 0) - break; - p--; - if (p < atomTable) - p = atomTable + table->size - 1; - } - return p; -} - -static int -HashTableGrows(xpmHashTable *table) -{ - xpmHashAtom *atomTable = table->atomTable; - int size = table->size; - xpmHashAtom *t, *p; - int i; - int oldSize = size; - - t = atomTable; - HASH_TABLE_GROWS - table->size = size; - table->limit = size / 3; - atomTable = (xpmHashAtom *) XpmMalloc(size * sizeof(*atomTable)); - if (!atomTable) - return (XpmNoMemory); - table->atomTable = atomTable; - for (p = atomTable + size; p > atomTable;) - *--p = NULL; - for (i = 0, p = t; i < oldSize; i++, p++) - if (*p) { - xpmHashAtom *ps = xpmHashSlot(table, (*p)->name); - - *ps = *p; - } - XpmFree(t); - return (XpmSuccess); -} - -/* - * xpmHashIntern(table, name, data) - * an xpmHashAtom is created if name doesn't exist, with the given data. - */ - -int -xpmHashIntern(xpmHashTable *table, char *tag, void *data) -{ - xpmHashAtom *slot; - - if (!*(slot = xpmHashSlot(table, tag))) { - /* undefined, make a new atom with the given data */ - if (!(*slot = AtomMake(tag, data))) - return (XpmNoMemory); - if (table->used >= table->limit) { - int ErrorStatus; - - if ((ErrorStatus = HashTableGrows(table)) != XpmSuccess) - return (ErrorStatus); - table->used++; - return (XpmSuccess); - } - table->used++; - } - return (XpmSuccess); -} - -/* - * must be called before allocating any atom - */ - -int -xpmHashTableInit(xpmHashTable *table) -{ - xpmHashAtom *p; - xpmHashAtom *atomTable; - - table->size = INITIAL_HASH_SIZE; - table->limit = table->size / 3; - table->used = 0; - atomTable = (xpmHashAtom *) XpmMalloc(table->size * sizeof(*atomTable)); - if (!atomTable) - return (XpmNoMemory); - for (p = atomTable + table->size; p > atomTable;) - *--p = NULL; - table->atomTable = atomTable; - return (XpmSuccess); -} - -/* - * frees a hashtable and all the stored atoms - */ - -void -xpmHashTableFree(xpmHashTable *table) -{ - xpmHashAtom *p; - xpmHashAtom *atomTable = table->atomTable; - - for (p = atomTable + table->size; p > atomTable;) - if (*--p) - XpmFree(*p); - XpmFree(atomTable); - table->atomTable = NULL; -} diff --git a/src/xpm/makefile.vc b/src/xpm/makefile.vc deleted file mode 100644 index 25f8ab69e4..0000000000 --- a/src/xpm/makefile.vc +++ /dev/null @@ -1,160 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds xpm.lib for VC++ (32-bit) -# -!include <..\makevc.env> - -THISDIR=$(WXWIN)\src\xpm - -LIBTARGET=$(WXDIR)\lib\xpm.lib - -XPMDIR=$(WXDIR)\src\xpm - -OBJECTS = $(XPMDIR)\crbuffri.obj\ - $(XPMDIR)\crdatfri.obj\ - $(XPMDIR)\create.obj $(XPMDIR)\crifrbuf.obj\ - $(XPMDIR)\crifrdat.obj\ - $(XPMDIR)\data.obj\ - $(XPMDIR)\hashtab.obj $(XPMDIR)\misc.obj\ - $(XPMDIR)\parse.obj $(XPMDIR)\rdftodat.obj\ - $(XPMDIR)\rdftoi.obj\ - $(XPMDIR)\rgb.obj $(XPMDIR)\scan.obj\ - $(XPMDIR)\simx.obj $(XPMDIR)\wrffrdat.obj\ - $(XPMDIR)\wrffrp.obj $(XPMDIR)\wrffri.obj - -all: $(LIBTARGET) - -$(LIBTARGET): $(OBJECTS) - -erase $(LIBTARGET) - $(implib) @<< --out:$@ --machine:$(CPU) -$(OBJECTS) $(PERIPH_LIBS) -<< - -$(XPMDIR)\crbuffri.obj: $(XPMDIR)\crbuffri.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crbuffrp.obj: $(XPMDIR)\crbuffrp.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crdatfri.obj: $(XPMDIR)\crdatfri.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crdatfrp.obj: $(XPMDIR)\crdatfrp.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\create.obj: $(XPMDIR)\create.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crifrbuf.obj: $(XPMDIR)\crifrbuf.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crifrdat.obj: $(XPMDIR)\crifrdat.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crpfrbuf.obj: $(XPMDIR)\crpfrbuf.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\crpfrdat.obj: $(XPMDIR)\crpfrdat.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\data.obj: $(XPMDIR)\data.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\hashtab.obj: $(XPMDIR)\hashtab.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\misc.obj: $(XPMDIR)\misc.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\parse.obj: $(XPMDIR)\parse.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\rdftodat.obj: $(XPMDIR)\rdftodat.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\rdftoi.obj: $(XPMDIR)\rdftoi.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\rdftop.obj: $(XPMDIR)\rdftop.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\rgb.obj: $(XPMDIR)\rgb.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\scan.obj: $(XPMDIR)\scan.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\simx.obj: $(XPMDIR)\simx.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\wrffrdat.obj: $(XPMDIR)\wrffrdat.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\wrffri.obj: $(XPMDIR)\wrffri.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -$(XPMDIR)\wrffrp.obj: $(XPMDIR)\wrffrp.c - cl @<< -$(CPPFLAGS2) /c $*.c /Fo$@ -<< - -clean: - -erase *.obj - -erase $(LIBTARGET) - -erase *.pdb - -erase *.sbr - -erase *.pch - -cleanall: clean - diff --git a/src/xpm/makefile.wat b/src/xpm/makefile.wat deleted file mode 100644 index 4ce627d402..0000000000 --- a/src/xpm/makefile.wat +++ /dev/null @@ -1,54 +0,0 @@ -#!/binb/wmake.exe -# -# File: makefile.wat -# Author: Julian Smart -# Created: 1998 -# -# Makefile : Builds XPM library for Watcom C++, WIN32 - -WXDIR = ..\.. - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib - -LIBTARGET = $(WXLIB)\xpm.lib - -OBJECTS = crbuffri.obj & - crdatfri.obj & - create.obj & - crifrbuf.obj & - crifrdat.obj & - data.obj & - hashtab.obj & - misc.obj & - parse.obj & - rdftodat.obj & - rdftoi.obj & - rgb.obj & - scan.obj & - simx.obj & - wrffrdat.obj & - wrffrp.obj & - wrffri.obj - -all: $(OBJECTS) $(LIBTARGET) - -$(LIBTARGET) : $(OBJECTS) - %create tmp.lbc - @for %i in ( $(OBJECTS) ) do @%append tmp.lbc +%i - wlib /b /c /n /p=512 $^@ @tmp.lbc - -clean: .SYMBOLIC - -erase *.obj - -erase $(LIBTARGET) - -erase *.pch - -erase *.err - -erase *.lbc - -cleanall: clean - -#accel.obj: $(MSWDIR)\accel.cpp -# *$(CCC) $(CPPFLAGS) $(IFLAGS) $< - - diff --git a/src/xpm/misc.c b/src/xpm/misc.c deleted file mode 100644 index c0089ab011..0000000000 --- a/src/xpm/misc.c +++ /dev/null @@ -1,572 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* misc.c: * -* * -* XPM library * -* Miscellaneous utilities * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:stat.h" -#include "sys$library:fcntl.h" -#else -#include -#include -#include -#include -#ifdef FOR_MSW -#include -#else -#include -#endif -#endif - -/* 3.2 backward compatibility code */ -LFUNC(CreateOldColorTable, int, (XpmColor *ct, int ncolors, - XpmColor ***oldct)); - -LFUNC(FreeOldColorTable, void, (XpmColor **colorTable, int ncolors)); - -/* - * Create a colortable compatible with the old style colortable - */ -static int -CreateOldColorTable(XpmColor *ct, int ncolors, XpmColor ***oldct) -{ - XpmColor **colorTable, **color; - int a; - - colorTable = (XpmColor **) XpmMalloc(ncolors * sizeof(XpmColor *)); - if (!colorTable) { - *oldct = NULL; - return (XpmNoMemory); - } - for (a = 0, color = colorTable; a < ncolors; a++, color++, ct++) - *color = ct; - *oldct = colorTable; - return (XpmSuccess); -} - -static void -FreeOldColorTable(XpmColor **colorTable, int ncolors) -{ - int a, b; - XpmColor **color; - char **sptr; - - if (colorTable) { - for (a = 0, color = colorTable; a < ncolors; a++, color++) { - for (b = 0, sptr = (char **) *color; b <= NKEYS; b++, sptr++) - if (*sptr) - XpmFree(*sptr); - } - XpmFree(*colorTable); - XpmFree(colorTable); - } -} - -/* end 3.2 bc */ - - -/* - * Free the computed color table - */ -void -xpmFreeColorTable(XpmColor *colorTable, int ncolors) -{ - int a, b; - XpmColor *color; - char **sptr; - - if (colorTable) { - for (a = 0, color = colorTable; a < ncolors; a++, color++) { - for (b = 0, sptr = (char **) color; b <= NKEYS; b++, sptr++) - if (*sptr) - XpmFree(*sptr); - } - XpmFree(colorTable); - } -} - -/* - * Free array of extensions - */ -void -XpmFreeExtensions(XpmExtension *extensions, int nextensions) -{ - unsigned int i, j, nlines; - XpmExtension *ext; - char **sptr; - - if (extensions) { - for (i = 0, ext = extensions; i < nextensions; i++, ext++) { - if (ext->name) - XpmFree(ext->name); - nlines = ext->nlines; - for (j = 0, sptr = ext->lines; j < nlines; j++, sptr++) - if (*sptr) - XpmFree(*sptr); - if (ext->lines) - XpmFree(ext->lines); - } - XpmFree(extensions); - } -} - - -/* - * Return the XpmAttributes structure size - */ - -int -XpmAttributesSize() -{ - return sizeof(XpmAttributes); -} - -/* - * Init returned data to free safely later on - */ -void -xpmInitAttributes(XpmAttributes *attributes) -{ - if (attributes) { - attributes->pixels = NULL; - attributes->npixels = 0; - attributes->colorTable = NULL; - attributes->ncolors = 0; -/* 3.2 backward compatibility code */ - attributes->hints_cmt = NULL; - attributes->colors_cmt = NULL; - attributes->pixels_cmt = NULL; -/* end 3.2 bc */ - attributes->extensions = NULL; - attributes->nextensions = 0; - } -} - -/* - * Fill in the XpmAttributes with the XpmImage and the XpmInfo - */ -void -xpmSetAttributes(XpmAttributes *attributes, XpmImage *image, XpmInfo *info) -{ - if (attributes->valuemask & XpmReturnColorTable) { - attributes->colorTable = image->colorTable; - attributes->ncolors = image->ncolors; - - /* avoid deletion of copied data */ - image->ncolors = 0; - image->colorTable = NULL; - } -/* 3.2 backward compatibility code */ - else if (attributes->valuemask & XpmReturnInfos) { - int ErrorStatus; - - ErrorStatus = CreateOldColorTable(image->colorTable, image->ncolors, - (XpmColor ***) - &attributes->colorTable); - - /* if error just say we can't return requested data */ - if (ErrorStatus != XpmSuccess) { - attributes->valuemask &= ~XpmReturnInfos; - if (!(attributes->valuemask & XpmReturnPixels)) { - XpmFree(attributes->pixels); - attributes->pixels = NULL; - attributes->npixels = 0; - } - attributes->ncolors = 0; - } else { - attributes->ncolors = image->ncolors; - attributes->hints_cmt = info->hints_cmt; - attributes->colors_cmt = info->colors_cmt; - attributes->pixels_cmt = info->pixels_cmt; - - /* avoid deletion of copied data */ - image->ncolors = 0; - image->colorTable = NULL; - info->hints_cmt = NULL; - info->colors_cmt = NULL; - info->pixels_cmt = NULL; - } - } -/* end 3.2 bc */ - if (attributes->valuemask & XpmReturnExtensions) { - attributes->extensions = info->extensions; - attributes->nextensions = info->nextensions; - - /* avoid deletion of copied data */ - info->extensions = NULL; - info->nextensions = 0; - } - if (info->valuemask & XpmHotspot) { - attributes->valuemask |= XpmHotspot; - attributes->x_hotspot = info->x_hotspot; - attributes->y_hotspot = info->y_hotspot; - } - attributes->valuemask |= XpmCharsPerPixel; - attributes->cpp = image->cpp; - attributes->valuemask |= XpmSize; - attributes->width = image->width; - attributes->height = image->height; -} - -/* - * Free the XpmAttributes structure members - * but the structure itself - */ -void -XpmFreeAttributes(XpmAttributes *attributes) -{ - if (attributes->valuemask & XpmReturnPixels && attributes->npixels) { - XpmFree(attributes->pixels); - attributes->pixels = NULL; - attributes->npixels = 0; - } - if (attributes->valuemask & XpmReturnColorTable) { - xpmFreeColorTable(attributes->colorTable, attributes->ncolors); - attributes->colorTable = NULL; - attributes->ncolors = 0; - } -/* 3.2 backward compatibility code */ - else if (attributes->valuemask & XpmInfos) { - if (attributes->colorTable) { - FreeOldColorTable((XpmColor **) attributes->colorTable, - attributes->ncolors); - attributes->colorTable = NULL; - attributes->ncolors = 0; - } - if (attributes->hints_cmt) { - XpmFree(attributes->hints_cmt); - attributes->hints_cmt = NULL; - } - if (attributes->colors_cmt) { - XpmFree(attributes->colors_cmt); - attributes->colors_cmt = NULL; - } - if (attributes->pixels_cmt) { - XpmFree(attributes->pixels_cmt); - attributes->pixels_cmt = NULL; - } - if (attributes->pixels) { - XpmFree(attributes->pixels); - attributes->pixels = NULL; - attributes->npixels = 0; - } - } -/* end 3.2 bc */ - if (attributes->valuemask & XpmReturnExtensions - && attributes->nextensions) { - XpmFreeExtensions(attributes->extensions, attributes->nextensions); - attributes->extensions = NULL; - attributes->nextensions = 0; - } - attributes->valuemask = 0; -} - -/* - * Init returned data to free safely later on - */ -void -xpmInitXpmImage(XpmImage *image) -{ - image->ncolors = 0; - image->colorTable = NULL; - image->data = NULL; -} - -/* - * Free the XpmImage data which have been allocated - */ -void -XpmFreeXpmImage(XpmImage *image) -{ - if (image->colorTable) - xpmFreeColorTable(image->colorTable, image->ncolors); - XpmFree(image->data); - image->data = NULL; -} - -/* - * Init returned data to free safely later on - */ -void -xpmInitXpmInfo(XpmInfo *info) -{ - if (info) { - info->hints_cmt = NULL; - info->colors_cmt = NULL; - info->pixels_cmt = NULL; - info->extensions = NULL; - info->nextensions = 0; - } -} - -/* - * Free the XpmInfo data which have been allocated - */ -void -XpmFreeXpmInfo(XpmInfo *info) -{ - if (info) { - if (info->valuemask & XpmComments) { - if (info->hints_cmt) { - XpmFree(info->hints_cmt); - info->hints_cmt = NULL; - } - if (info->colors_cmt) { - XpmFree(info->colors_cmt); - info->colors_cmt = NULL; - } - if (info->pixels_cmt) { - XpmFree(info->pixels_cmt); - info->pixels_cmt = NULL; - } - } - if (info->valuemask & XpmReturnExtensions && info->nextensions) { - XpmFreeExtensions(info->extensions, info->nextensions); - info->extensions = NULL; - info->nextensions = 0; - } - info->valuemask = 0; - } -} - -/* - * Set the XpmInfo valuemask to retrieve required info - */ -void -xpmSetInfoMask(XpmInfo *info, XpmAttributes *attributes) -{ - info->valuemask = 0; - if (attributes->valuemask & XpmReturnInfos) - info->valuemask |= XpmReturnComments; - if (attributes->valuemask & XpmReturnExtensions) - info->valuemask |= XpmReturnExtensions; -} - -/* - * Fill in the XpmInfo with the XpmAttributes - */ -void -xpmSetInfo(XpmInfo *info, XpmAttributes *attributes) -{ - info->valuemask = 0; - if (attributes->valuemask & XpmInfos) { - info->valuemask |= XpmComments | XpmColorTable; - info->hints_cmt = attributes->hints_cmt; - info->colors_cmt = attributes->colors_cmt; - info->pixels_cmt = attributes->pixels_cmt; - } - if (attributes->valuemask & XpmExtensions) { - info->valuemask |= XpmExtensions; - info->extensions = attributes->extensions; - info->nextensions = attributes->nextensions; - } - if (attributes->valuemask & XpmHotspot) { - info->valuemask |= XpmHotspot; - info->x_hotspot = attributes->x_hotspot; - info->y_hotspot = attributes->y_hotspot; - } -} - - -#ifdef NEED_STRDUP -/* - * in case strdup is not provided by the system here is one - * which does the trick - */ -char * -strdup(char *s1) -{ - char *s2; - int l = strlen(s1) + 1; - - if (s2 = (char *) XpmMalloc(l)) - strncpy(s2, s1, l); - return s2; -} - -#endif - -unsigned int -atoui(register char *p, unsigned int l, unsigned int *ui_return) -{ - register unsigned int n, i; - - n = 0; - for (i = 0; i < l; i++) - if (*p >= '0' && *p <= '9') - n = n * 10 + *p++ - '0'; - else - break; - - if (i != 0 && i == l) { - *ui_return = n; - return 1; - } else - return 0; -} - - -/* - * File / Buffer utilities - */ -int -XpmReadFileToBuffer(char *filename, char **buffer_return) -{ - int fd, fcheck, len; - char *ptr; - struct stat stats; - FILE *fp; - - *buffer_return = NULL; - - fd = open(filename, O_RDONLY); - if (fd < 0) - return XpmOpenFailed; - - if (fstat(fd, &stats)) { - close(fd); - return XpmOpenFailed; - } - fp = fdopen(fd, "r"); - if (!fp) { - close(fd); - return XpmOpenFailed; - } - len = (int) stats.st_size; - ptr = (char *) XpmMalloc(len + 1); - if (!ptr) { - fclose(fp); - return XpmNoMemory; - } - fcheck = fread(ptr, len, 1, fp); - fclose(fp); - if (fcheck != 1) { - XpmFree(ptr); - return XpmOpenFailed; - } - ptr[len] = '\0'; - *buffer_return = ptr; - return XpmSuccess; -} - -int -XpmWriteFileFromBuffer(char *filename, char *buffer) -{ - int fcheck, len; - FILE *fp = fopen(filename, "w"); - - if (!fp) - return XpmOpenFailed; - - len = strlen(buffer); - fcheck = fwrite(buffer, len, 1, fp); - fclose(fp); - if (fcheck != 1) - return XpmOpenFailed; - - return XpmSuccess; -} - - -/* - * Small utility function - */ -char * -XpmGetErrorString(int errcode) -{ - switch (errcode) { - case XpmColorError: - return ("XpmColorError"); - case XpmSuccess: - return ("XpmSuccess"); - case XpmOpenFailed: - return ("XpmOpenFailed"); - case XpmFileInvalid: - return ("XpmFileInvalid"); - case XpmNoMemory: - return ("XpmNoMemory"); - case XpmColorFailed: - return ("XpmColorFailed"); - default: - return ("Invalid XpmError"); - } -} - -/* - * The following function provides a way to figure out if the linked library is - * newer or older than the one with which a program has been first compiled. - */ -int -XpmLibraryVersion() -{ - return XpmIncludeVersion; -} - - -#ifndef FOR_MSW -void -xpmCreatePixmapFromImage(Display *display, Drawable d, XImage *ximage, Pixmap *pixmap_return) -{ - GC gc; - - *pixmap_return = XCreatePixmap(display, d, ximage->width, - ximage->height, ximage->depth); - gc = XCreateGC(display, *pixmap_return, 0, NULL); - - XPutImage(display, *pixmap_return, gc, ximage, 0, 0, 0, 0, - ximage->width, ximage->height); - - XFreeGC(display, gc); -} - -void -xpmCreateImageFromPixmap(Display *display, Pixmap pixmap, XImage **ximage_return, unsigned int *width, unsigned int *height) -{ - unsigned int dum; - int dummy; - Window win; - - if (*width == 0 && *height == 0) - XGetGeometry(display, pixmap, &win, &dummy, &dummy, - width, height, &dum, &dum); - - *ximage_return = XGetImage(display, pixmap, 0, 0, *width, *height, - AllPlanes, ZPixmap); -} - -#endif /* FOR_MSW */ diff --git a/src/xpm/parse.c b/src/xpm/parse.c deleted file mode 100644 index 74bb479fe9..0000000000 --- a/src/xpm/parse.c +++ /dev/null @@ -1,705 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* parse.c: * -* * -* XPM library * -* Parse an XPM file or array and store the found informations * -* in the given XpmImage structure. * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:ctype.h" -#else -#include -#endif - -#ifdef sun -#ifdef SVR4 -#define __ORIGINAL_XORG_CODE -#include /* bzero, bcopy */ -#endif -#endif - -#include -#ifdef __sgi -#include -#endif - -LFUNC(ParseValues, int, (xpmData *data, unsigned int *width, - unsigned int *height, unsigned int *ncolors, - unsigned int *cpp, unsigned int *x_hotspot, - unsigned int *y_hotspot, unsigned int *hotspot, - unsigned int *extensions)); - -LFUNC(ParseColors, int, (xpmData *data, unsigned int ncolors, unsigned int cpp, - XpmColor **colorTablePtr, xpmHashTable *hashtable)); - -LFUNC(ParsePixels, int, (xpmData *data, unsigned int width, - unsigned int height, unsigned int ncolors, - unsigned int cpp, XpmColor *colorTable, - xpmHashTable *hashtable, unsigned int **pixels)); - -LFUNC(ParseExtensions, int, (xpmData *data, XpmExtension **extensions, - unsigned int *nextensions)); - -char *xpmColorKeys[] = { - "s", /* key #1: symbol */ - "m", /* key #2: mono visual */ - "g4", /* key #3: 4 grays visual */ - "g", /* key #4: gray visual */ - "c", /* key #5: color visual */ -}; - - -/* function call in case of error, frees only locally allocated variables */ -#undef RETURN -#define RETURN(status) \ -{ \ - if (colorTable) xpmFreeColorTable(colorTable, ncolors); \ - if (pixelindex) XpmFree(pixelindex); \ - if (hints_cmt) XpmFree(hints_cmt); \ - if (colors_cmt) XpmFree(colors_cmt); \ - if (pixels_cmt) XpmFree(pixels_cmt); \ - return(status); \ -} - -/* - * This function parses an Xpm file or data and store the found informations - * in an an XpmImage structure which is returned. - */ -int -xpmParseData(xpmData *data, XpmImage *image, XpmInfo *info) -{ - /* variables to return */ - unsigned int width, height, ncolors, cpp; - unsigned int x_hotspot, y_hotspot, hotspot = 0, extensions = 0; - XpmColor *colorTable = NULL; - unsigned int *pixelindex = NULL; - char *hints_cmt = NULL; - char *colors_cmt = NULL; - char *pixels_cmt = NULL; - - unsigned int cmts; - int ErrorStatus; - xpmHashTable hashtable; - - cmts = info && (info->valuemask & XpmReturnComments); - - /* - * parse the header - */ - ErrorStatus = xpmParseHeader(data); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* - * read values - */ - ErrorStatus = ParseValues(data, &width, &height, &ncolors, &cpp, - &x_hotspot, &y_hotspot, &hotspot, &extensions); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* - * store the hints comment line - */ - if (cmts) - xpmGetCmt(data, &hints_cmt); - - /* - * init the hastable - */ - if (USE_HASHTABLE) { - ErrorStatus = xpmHashTableInit(&hashtable); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - } - - /* - * read colors - */ - ErrorStatus = ParseColors(data, ncolors, cpp, &colorTable, &hashtable); - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - - /* - * store the colors comment line - */ - if (cmts) - xpmGetCmt(data, &colors_cmt); - - /* - * read pixels and index them on color number - */ - ErrorStatus = ParsePixels(data, width, height, ncolors, cpp, colorTable, - &hashtable, &pixelindex); - - /* - * free the hastable - */ - if (USE_HASHTABLE) - xpmHashTableFree(&hashtable); - - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - - /* - * store the pixels comment line - */ - if (cmts) - xpmGetCmt(data, &pixels_cmt); - - /* - * parse extensions - */ - if (info && (info->valuemask & XpmReturnExtensions)) - if (extensions) { - ErrorStatus = ParseExtensions(data, &info->extensions, - &info->nextensions); - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - } else { - info->extensions = NULL; - info->nextensions = 0; - } - - /* - * store found informations in the XpmImage structure - */ - image->width = width; - image->height = height; - image->cpp = cpp; - image->ncolors = ncolors; - image->colorTable = colorTable; - image->data = pixelindex; - - if (info) { - if (cmts) { - info->hints_cmt = hints_cmt; - info->colors_cmt = colors_cmt; - info->pixels_cmt = pixels_cmt; - } - if (hotspot) { - info->x_hotspot = x_hotspot; - info->y_hotspot = y_hotspot; - info->valuemask |= XpmHotspot; - } - } - return (XpmSuccess); -} - -static int -ParseValues(xpmData *data, unsigned int *width, unsigned int *height, unsigned int *ncolors, unsigned int *cpp, - unsigned int *x_hotspot, unsigned int *y_hotspot, unsigned int *hotspot, unsigned int *extensions) -{ - unsigned int l; - char buf[BUFSIZ]; - - if (!data->format) { /* XPM 2 or 3 */ - - /* - * read values: width, height, ncolors, chars_per_pixel - */ - if (!(xpmNextUI(data, width) && xpmNextUI(data, height) - && xpmNextUI(data, ncolors) && xpmNextUI(data, cpp))) - return (XpmFileInvalid); - - /* - * read optional information (hotspot and/or XPMEXT) if any - */ - l = xpmNextWord(data, buf, BUFSIZ); - if (l) { - *extensions = (l == 6 && !strncmp("XPMEXT", buf, 6)); - if (*extensions) - *hotspot = (xpmNextUI(data, x_hotspot) - && xpmNextUI(data, y_hotspot)); - else { - *hotspot = (atoui(buf, l, x_hotspot) - && xpmNextUI(data, y_hotspot)); - l = xpmNextWord(data, buf, BUFSIZ); - *extensions = (l == 6 && !strncmp("XPMEXT", buf, 6)); - } - } - } else { - - /* - * XPM 1 file read values: width, height, ncolors, chars_per_pixel - */ - int i; - char *ptr; - - for (i = 0; i < 4; i++) { - l = xpmNextWord(data, buf, BUFSIZ); - if (l != 7 || strncmp("#define", buf, 7)) - return (XpmFileInvalid); - l = xpmNextWord(data, buf, BUFSIZ); - if (!l) - return (XpmFileInvalid); - ptr = strchr(buf, '_'); - if (!ptr) - return (XpmFileInvalid); - switch (l - (ptr - buf)) { - case 6: - if (!strncmp("_width", ptr, 6) && !xpmNextUI(data, width)) - return (XpmFileInvalid); - break; - case 7: - if (!strncmp("_height", ptr, 7) && !xpmNextUI(data, height)) - return (XpmFileInvalid); - break; - case 8: - if (!strncmp("_ncolors", ptr, 8) && !xpmNextUI(data, ncolors)) - return (XpmFileInvalid); - break; - case 16: - if (!strncmp("_chars_per_pixel", ptr, 16) - && !xpmNextUI(data, cpp)) - return (XpmFileInvalid); - break; - default: - return (XpmFileInvalid); - } - /* skip the end of line */ - xpmNextString(data); - } - *hotspot = 0; - *extensions = 0; - } - return (XpmSuccess); -} - -static int -ParseColors(xpmData *data, unsigned int ncolors, unsigned int cpp, XpmColor **colorTablePtr, xpmHashTable *hashtable) -{ - unsigned int key, l, a, b; - unsigned int curkey; /* current color key */ - unsigned int lastwaskey; /* key read */ - char buf[BUFSIZ]; - char curbuf[BUFSIZ]; /* current buffer */ - char **sptr, *s; - XpmColor *color; - XpmColor *colorTable; - char **defaults; - int ErrorStatus; - - colorTable = (XpmColor *) XpmCalloc(ncolors, sizeof(XpmColor)); - if (!colorTable) - return (XpmNoMemory); - - if (!data->format) { /* XPM 2 or 3 */ - for (a = 0, color = colorTable; a < ncolors; a++, color++) { - xpmNextString(data); /* skip the line */ - - /* - * read pixel value - */ - color->string = (char *) XpmMalloc(cpp + 1); - if (!color->string) { - xpmFreeColorTable(colorTable, ncolors); - return (XpmNoMemory); - } - for (b = 0, s = color->string; b < cpp; b++, s++) - *s = xpmGetC(data); - *s = '\0'; - - /* - * store the string in the hashtable with its color index number - */ - if (USE_HASHTABLE) { - ErrorStatus = - xpmHashIntern(hashtable, color->string, HashAtomData(a)); - if (ErrorStatus != XpmSuccess) { - xpmFreeColorTable(colorTable, ncolors); - return (ErrorStatus); - } - } - - /* - * read color keys and values - */ - defaults = (char **) color; - curkey = 0; - lastwaskey = 0; - *curbuf = '\0'; /* init curbuf */ - while (l = xpmNextWord(data, buf, BUFSIZ)) { - if (!lastwaskey) { - for (key = 0, sptr = xpmColorKeys; key < NKEYS; key++, - sptr++) - if ((strlen(*sptr) == l) && (!strncmp(*sptr, buf, l))) - break; - } - if (!lastwaskey && key < NKEYS) { /* open new key */ - if (curkey) { /* flush string */ - s = (char *) XpmMalloc(strlen(curbuf) + 1); - if (!s) { - xpmFreeColorTable(colorTable, ncolors); - return (XpmNoMemory); - } - defaults[curkey] = s; - strcpy(s, curbuf); - } - curkey = key + 1; /* set new key */ - *curbuf = '\0'; /* reset curbuf */ - lastwaskey = 1; - } else { - if (!curkey) { /* key without value */ - xpmFreeColorTable(colorTable, ncolors); - return (XpmFileInvalid); - } - if (!lastwaskey) - strcat(curbuf, " "); /* append space */ - buf[l] = '\0'; - strcat(curbuf, buf);/* append buf */ - lastwaskey = 0; - } - } - if (!curkey) { /* key without value */ - xpmFreeColorTable(colorTable, ncolors); - return (XpmFileInvalid); - } - s = defaults[curkey] = (char *) XpmMalloc(strlen(curbuf) + 1); - if (!s) { - xpmFreeColorTable(colorTable, ncolors); - return (XpmNoMemory); - } - strcpy(s, curbuf); - } - } else { /* XPM 1 */ - /* get to the beginning of the first string */ - data->Bos = '"'; - data->Eos = '\0'; - xpmNextString(data); - data->Eos = '"'; - for (a = 0, color = colorTable; a < ncolors; a++, color++) { - - /* - * read pixel value - */ - color->string = (char *) XpmMalloc(cpp + 1); - if (!color->string) { - xpmFreeColorTable(colorTable, ncolors); - return (XpmNoMemory); - } - for (b = 0, s = color->string; b < cpp; b++, s++) - *s = xpmGetC(data); - *s = '\0'; - - /* - * store the string in the hashtable with its color index number - */ - if (USE_HASHTABLE) { - ErrorStatus = - xpmHashIntern(hashtable, color->string, HashAtomData(a)); - if (ErrorStatus != XpmSuccess) { - xpmFreeColorTable(colorTable, ncolors); - return (ErrorStatus); - } - } - - /* - * read color values - */ - xpmNextString(data); /* get to the next string */ - *curbuf = '\0'; /* init curbuf */ - while (l = xpmNextWord(data, buf, BUFSIZ)) { - if (*curbuf != '\0') - strcat(curbuf, " ");/* append space */ - buf[l] = '\0'; - strcat(curbuf, buf); /* append buf */ - } - s = (char *) XpmMalloc(strlen(curbuf) + 1); - if (!s) { - xpmFreeColorTable(colorTable, ncolors); - return (XpmNoMemory); - } - strcpy(s, curbuf); - color->c_color = s; - *curbuf = '\0'; /* reset curbuf */ - if (a < ncolors - 1) - xpmNextString(data); /* get to the next string */ - } - } - *colorTablePtr = colorTable; - return (XpmSuccess); -} - -static int -ParsePixels(xpmData *data, unsigned int width, unsigned int height, unsigned int ncolors, - unsigned int cpp, XpmColor *colorTable, xpmHashTable *hashtable, unsigned int **pixels) -{ - unsigned int *iptr, *iptr2; - unsigned int a, x, y; - -#ifndef FOR_MSW - iptr2 = (unsigned int *) XpmMalloc(sizeof(unsigned int) * width * height); -#else - - /* - * special treatment to trick DOS malloc(size_t) where size_t is 16 bit!! - * XpmMalloc is defined to longMalloc(long) and checks the 16 bit boundary - */ - iptr2 = (unsigned int *) - XpmMalloc((long) sizeof(unsigned int) * (long) width * (long) height); -#endif - if (!iptr2) - return (XpmNoMemory); - - iptr = iptr2; - - switch (cpp) { - - case (1): /* Optimize for single character - * colors */ - { - unsigned short colidx[256]; - - bzero((char *)colidx, 256 * sizeof(short)); - for (a = 0; a < ncolors; a++) - colidx[colorTable[a].string[0]] = a + 1; - - for (y = 0; y < height; y++) { - xpmNextString(data); - for (x = 0; x < width; x++, iptr++) { - int idx = colidx[xpmGetC(data)]; - - if (idx != 0) - *iptr = idx - 1; - else { - XpmFree(iptr2); - return (XpmFileInvalid); - } - } - } - } - break; - - case (2): /* Optimize for double character - * colors */ - { - -/* free all allocated pointers at all exits */ -#define FREE_CIDX {int f; for (f = 0; f < 256; f++) \ -if (cidx[f]) XpmFree(cidx[f]);} - - /* array of pointers malloced by need */ - unsigned short *cidx[256]; - int char1; - - bzero((char *)cidx, 256 * sizeof(unsigned short *)); /* init */ - for (a = 0; a < ncolors; a++) { - char1 = colorTable[a].string[0]; - if (cidx[char1] == NULL) { /* get new memory */ - cidx[char1] = (unsigned short *) - XpmCalloc(256, sizeof(unsigned short)); - if (cidx[char1] == NULL) { /* new block failed */ - FREE_CIDX; - XpmFree(iptr2); - return (XpmNoMemory); - } - } - cidx[char1][colorTable[a].string[1]] = a + 1; - } - - for (y = 0; y < height; y++) { - xpmNextString(data); - for (x = 0; x < width; x++, iptr++) { - int cc1 = xpmGetC(data); - int idx = cidx[cc1][xpmGetC(data)]; - - if (idx != 0) - *iptr = idx - 1; - else { - FREE_CIDX; - XpmFree(iptr2); - return (XpmFileInvalid); - } - } - } - FREE_CIDX; - } - break; - - default: /* Non-optimized case of long color - * names */ - { - char *s; - char buf[BUFSIZ]; - - buf[cpp] = '\0'; - if (USE_HASHTABLE) { - xpmHashAtom *slot; - - for (y = 0; y < height; y++) { - xpmNextString(data); - for (x = 0; x < width; x++, iptr++) { - for (a = 0, s = buf; a < cpp; a++, s++) - *s = xpmGetC(data); - slot = xpmHashSlot(hashtable, buf); - if (!*slot) { /* no color matches */ - XpmFree(iptr2); - return (XpmFileInvalid); - } - *iptr = HashColorIndex(slot); - } - } - } else { - for (y = 0; y < height; y++) { - xpmNextString(data); - for (x = 0; x < width; x++, iptr++) { - for (a = 0, s = buf; a < cpp; a++, s++) - *s = xpmGetC(data); - for (a = 0; a < ncolors; a++) - if (!strcmp(colorTable[a].string, buf)) - break; - if (a == ncolors) { /* no color matches */ - XpmFree(iptr2); - return (XpmFileInvalid); - } - *iptr = a; - } - } - } - } - break; - } - *pixels = iptr2; - return (XpmSuccess); -} - -static int -ParseExtensions(xpmData *data, XpmExtension **extensions, unsigned int *nextensions) -{ - XpmExtension *exts = NULL, *ext; - unsigned int num = 0; - unsigned int nlines, a, l, notstart, notend = 0; - int status; - char *string, *s, *s2, **sp; - - xpmNextString(data); - exts = (XpmExtension *) XpmMalloc(sizeof(XpmExtension)); - /* get the whole string */ - status = xpmGetString(data, &string, &l); - if (status != XpmSuccess) { - XpmFree(exts); - return (status); - } - /* look for the key word XPMEXT, skip lines before this */ - while ((notstart = strncmp("XPMEXT", string, 6)) - && (notend = strncmp("XPMENDEXT", string, 9))) { - XpmFree(string); - xpmNextString(data); - status = xpmGetString(data, &string, &l); - if (status != XpmSuccess) { - XpmFree(exts); - return (status); - } - } - if (!notstart) - notend = strncmp("XPMENDEXT", string, 9); - while (!notstart && notend) { - /* there starts an extension */ - ext = (XpmExtension *) - XpmRealloc(exts, (num + 1) * sizeof(XpmExtension)); - if (!ext) { - XpmFree(string); - XpmFreeExtensions(exts, num); - return (XpmNoMemory); - } - exts = ext; - ext += num; - /* skip whitespace and store its name */ - s2 = s = string + 6; - while (isspace(*s2)) - s2++; - a = s2 - s; - ext->name = (char *) XpmMalloc(l - a - 6); - if (!ext->name) { - XpmFree(string); - ext->lines = NULL; - ext->nlines = 0; - XpmFreeExtensions(exts, num + 1); - return (XpmNoMemory); - } - strncpy(ext->name, s + a, l - a - 6); - XpmFree(string); - /* now store the related lines */ - xpmNextString(data); - status = xpmGetString(data, &string, &l); - if (status != XpmSuccess) { - ext->lines = NULL; - ext->nlines = 0; - XpmFreeExtensions(exts, num + 1); - return (status); - } - ext->lines = (char **) XpmMalloc(sizeof(char *)); - nlines = 0; - while ((notstart = strncmp("XPMEXT", string, 6)) - && (notend = strncmp("XPMENDEXT", string, 9))) { - sp = (char **) - XpmRealloc(ext->lines, (nlines + 1) * sizeof(char *)); - if (!sp) { - XpmFree(string); - ext->nlines = nlines; - XpmFreeExtensions(exts, num + 1); - return (XpmNoMemory); - } - ext->lines = sp; - ext->lines[nlines] = string; - nlines++; - xpmNextString(data); - status = xpmGetString(data, &string, &l); - if (status != XpmSuccess) { - ext->nlines = nlines; - XpmFreeExtensions(exts, num + 1); - return (status); - } - } - if (!nlines) { - XpmFree(ext->lines); - ext->lines = NULL; - } - ext->nlines = nlines; - num++; - } - if (!num) { - XpmFree(string); - XpmFree(exts); - exts = NULL; - } else if (!notend) - XpmFree(string); - *nextensions = num; - *extensions = exts; - return (XpmSuccess); -} diff --git a/src/xpm/rdftodat.c b/src/xpm/rdftodat.c deleted file mode 100644 index 28c81ae688..0000000000 --- a/src/xpm/rdftodat.c +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmRdFToData.c: * -* * -* XPM library * -* Parse an XPM file and create an array of strings corresponding to it. * -* * -* Developed by Dan Greening dgreen@cs.ucla.edu / dgreen@sti.com * -\*****************************************************************************/ - -#include "xpm34p.h" - -int -XpmReadFileToData(char *filename, char ***data_return) -{ - XpmImage image; - XpmInfo info; - int ErrorStatus; - - info.valuemask = XpmReturnComments | XpmReturnExtensions; - - /* - * initialize return value - */ - if (data_return) - *data_return = NULL; - - ErrorStatus = XpmReadFileToXpmImage(filename, &image, &info); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - ErrorStatus = - XpmCreateDataFromXpmImage(data_return, &image, &info); - - XpmFreeXpmImage(&image); - XpmFreeXpmInfo(&info); - - return (ErrorStatus); -} diff --git a/src/xpm/rdftoi.c b/src/xpm/rdftoi.c deleted file mode 100644 index d5aea86da9..0000000000 --- a/src/xpm/rdftoi.c +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmRdFToI.c: * -* * -* XPM library * -* Parse an XPM file and create the image and possibly its mask * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" - -int -XpmReadFileToImage(Display *display, char *filename, - XImage **image_return, XImage **shapeimage_return, XpmAttributes *attributes) -{ - XpmImage image; - XpmInfo info; - int ErrorStatus; - - /* create an XpmImage from the file */ - if (attributes) { - xpmInitAttributes(attributes); - xpmSetInfoMask(&info, attributes); - ErrorStatus = XpmReadFileToXpmImage(filename, &image, &info); - } else - ErrorStatus = XpmReadFileToXpmImage(filename, &image, NULL); - - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* create the related ximages */ - ErrorStatus = XpmCreateImageFromXpmImage(display, &image, - image_return, shapeimage_return, - attributes); - if (attributes) { - if (ErrorStatus >= 0) /* no fatal error */ - xpmSetAttributes(attributes, &image, &info); - XpmFreeXpmInfo(&info); - } - /* free the XpmImage */ - XpmFreeXpmImage(&image); - - return (ErrorStatus); -} - -int -XpmReadFileToXpmImage(char *filename, XpmImage *image, XpmInfo *info) -{ - xpmData mdata; - int ErrorStatus; - - /* init returned values */ - xpmInitXpmImage(image); - xpmInitXpmInfo(info); - - /* open file to read */ - if ((ErrorStatus = xpmReadFile(filename, &mdata)) != XpmSuccess) - return (ErrorStatus); - - /* create the XpmImage from the XpmData */ - ErrorStatus = xpmParseData(&mdata, image, info); - - xpmDataClose(&mdata); - - return (ErrorStatus); -} diff --git a/src/xpm/rdftop.c b/src/xpm/rdftop.c deleted file mode 100644 index e1c558f4ba..0000000000 --- a/src/xpm/rdftop.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmRdFToP.c: * -* * -* XPM library * -* Parse an XPM file and create the pixmap and possibly its mask * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#ifndef FOR_MSW - -#include "xpm34p.h" - -int -XpmReadFileToPixmap(Display *display, Drawable d, char *filename, Pixmap *pixmap_return, - Pixmap *shapemask_return, XpmAttributes *attributes) -{ - XImage *ximage, *shapeimage; - int ErrorStatus; - - /* initialize return values */ - if (pixmap_return) - *pixmap_return = 0; - if (shapemask_return) - *shapemask_return = 0; - - /* create the images */ - ErrorStatus = XpmReadFileToImage(display, filename, - (pixmap_return ? &ximage : NULL), - (shapemask_return ? &shapeimage : NULL), - attributes); - - if (ErrorStatus < 0) /* fatal error */ - return (ErrorStatus); - - /* create the pixmaps and destroy images */ - if (pixmap_return && ximage) { - xpmCreatePixmapFromImage(display, d, ximage, pixmap_return); - XDestroyImage(ximage); - } - if (shapemask_return && shapeimage) { - xpmCreatePixmapFromImage(display, d, shapeimage, shapemask_return); - XDestroyImage(shapeimage); - } - return (ErrorStatus); -} -#endif diff --git a/src/xpm/readme b/src/xpm/readme deleted file mode 100644 index a82660fb11..0000000000 --- a/src/xpm/readme +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - - - XPM Version 3 - -WHAT IS XPM? -============ - -XPM (X PixMap) is a format for storing/retrieving X pixmaps to/from files. - -Here is provided a library containing a set of four functions, similar to the -X bitmap functions as defined in the Xlib: XpmCreatePixmapFromData, -XpmCreateDataFromPixmap, XpmReadFileToPixmap and XpmWriteFileFromPixmap for -respectively including, storing, reading and writing this format, plus four -other: XpmCreateImageFromData, XpmCreateDataFromImage, XpmReadFileToImage and -XpmWriteFileFromImage for working with images instead of pixmaps. - -This new version provides a C includable format, defaults for different types -of display: monochrome/color/grayscale, hotspot coordinates and symbol names -for colors for overriding default colors when creating the pixmap. It provides -a mechanism for storing information while reading a file which is re-used -while writing. This way comments, default colors and symbol names aren't lost. -It also handles "transparent pixels" by returning a shape mask in addition to -the created pixmap. - -See the XPM Manual for more details. - -HOW TO GET XPM? -=============== - -New xpm updates are announced on the comp.windows.x newsgroup, and on the -"xpm-talk" list. All new "official" xpm releases can be found by ftp on: - - ftp.x.org (18.112.44.100) contrib (Boston, USA) - avahi.inria.fr (192.5.60.47) pub (Sophia Antipolis, France) - - -DOCUMENTATION: -============= - -Old users might read the CHANGES file for a history of changes interesting -the user. - -Read the doc. The documentation is in PostScript format (file doc/xpm.ps) and -has been produced with FrameMaker. The source files are available on request. - - -INSTALLATION: -============ - -To obtain the XPM library, first uncompress and untar the compressed tar file -in an approriate directory. - -Then you can either compile xpm via "imake" or in a stand-alone way. - -WITH IMAKE: - - Imakefiles are provided to build both shared and unshared libraries. - First have a look at the beginning of the lib/Imakefile and see if you - need to do some modification to fit with your system. - You should know how to use imake to build the XPM Makefiles - by executing "xmkmf", then do: - - make Makefiles - make depend (if you want to) - make - - which will build the XPM library and the sxpm application. - Then do: - - make install - make install.man - - which will install the library and the sxpm pregram and man page. - - If it fails, you may edit the Imakefiles to add compilation flags to - suit your machine. - -WITHOUT IMAKE: - - To compile xpm, in the xpm directory you just created, do: - - make -f Makefile.noXtree - - Then to install it, do: - - make -f Makefile.noXtree install - -SXPM: -==== - -In addition to the library the sxpm tool is provided to show XPM file and -convert them from XPM1 or XPM2 to XPM version 3. If you have previously done -'make' or 'make all' you should have it yet, otherwise just do: - - cd sxpm; make - -This application shows you most of the features of XPM and its source can be -used to quickly see how to use the provided functions. - -By executing 'sxpm -help' you will get the usage. - -Executing 'sxpm -plaid' will show a demo of the XpmCreatePixmapFromData -function. The pixmap is created from the static variable plaid defined in the -sxpm.c file. sxpm will end when you press the key 'q' in the created window. - -Executing 'sxpm -plaid -sc lines_in_mix blue' will show the feature of -overriding color symbols giving a colorname, executing 'sxpm -sp lines_in_mix -1' will show overriding giving a pixel value, and executing 'sxpm -plaid -cp -red 0' will show overriding giving a color value. - -Then you should try 'sxpm -plaid -o output' to get an output file using the -XpmWriteFileFromPixmap function. - -You can now try 'sxpm -plaid -o - -nod -rgb /usr/lib/X11/rgb.txt' to directly -get the pixmap printed out on the standard output with colornames instead of -rgb values. - -Then you should try 'sxpm plaid.xpm' to use the XpmReadFileToPixmap function, -and 'cat plaid_mask.xpm|sxpm' to see how "transparent pixels" are handled. - -The XpmCreatePixmapFromData function is on purpose called without any XpmInfos -flag to show the utility of this one. Indeed, compare the color section of the -two files foo and bar obtained from 'sxpm -nod -plaid -o foo' and 'sxpm -nod -plaid.xpm -o bar'. All the default colors and also the comments have been -restored. - -To end look at plaid_ext.xpm and try "sxpm -nod plaid_ext.xpm -v" to see how -extensions are handled. - -Of course, other combinations are allowed and should be tried. Thus, 'sxpm -plaid.xpm -o output -nod' will show you how to convert a file from XPM1 or XPM2 -to a XPM version 3 using sxpm. - -See the manual page for more detail. - -OTHER TOOLS: -=========== - -Several converters dealing with XPM and a pixmap editor can be found in the -xpm-contrib distribution. Also I recommend the use of netpbm to do any kind of -general image operations such as scaling, resizing, dithering, and to convert -from and to any other image format. - -DISCUSSION: -========== - -There is a mailing list to discuss about XPM which is xpm-talk@sophia.inria.fr. -Any request to subscribe should be sent to xpm-talk-request@sophia.inria.fr. - -COPYRIGHT: -========== - - Copyright 1989-94 GROUPE BULL -- - See license conditions in the COPYRIGHT file of the XPM distribution - -Please mail any bug reports or modifications done, comments, suggestions, -requests for updates or patches to port on another machine to: - -lehors@sophia.inria.fr (INTERNET) - -33 (FRANCE) 93.65.77.71 (VOICE PHONE) - -Arnaud Le Hors (SURFACE MAIL) -Bull c/o Inria BP. 109 -2004, Route des lucioles -Sophia Antipolis -06561 Valbonne Cedex -FRANCE diff --git a/src/xpm/readme.msw b/src/xpm/readme.msw deleted file mode 100644 index 6e97bb5989..0000000000 --- a/src/xpm/readme.msw +++ /dev/null @@ -1,83 +0,0 @@ - -README.MSW hedu@cul-ipn.uni-kiel.de 5/94 - - The XPM library for MS-Windows - -Motivated by the wxWindows library, which is a (freely available) toolkit -for developing multi-platform, graphical applications from the same body -of C++ code,I wanted to have XPM pixmaps for MS-windows. Instead of rewriting -a XPM-parser I managed to port the XPM-library-code to MS-windows. -Thanks to Anaud Le Hors this became a part of the official XPM-library. - -Until now it's only used together with wxWindows. And even there it's more -a kind of beta. But it should be possible to run it as a simple libxpm.a -without wxWindows. - -The key is a transformation of some X types plus some basic X functions. -There is not yet a special MSW-API, so you should know the X types used. - -The following is done in simx.h: - -typedef HDC Display; -typedef COLORREF Pixel; - -typedef struct { - Pixel pixel; - BYTE red, green, blue; -} XColor; - -typedef struct { - HBITMAP bitmap; - unsigned int width; - unsigned int height; - unsigned int depth; -} XImage; - -With these defines and the according functions from simx.c you can call -XPM-functions the way it's done under X windows. It can look like this: - - ErrorStatus=XpmCreateImageFromData(&dc, data, - &ximage,(XImage **)NULL, &xpmAttr); - ms_bitmap = ximage->bitmap; - // releases the malloc,but do not destroy the bitmap - XImageFree(ximage); - -Supported functions are the Xpm*Image* but not the Xpm*Pixmap*. - -DRAWBACKS: -The main drawback is the missing support for Colormaps! There was nothing for -it in wxWindows, so I did not know how to deal with Colormaps. - -The size of the pixmaps is bounded by malloc() (width*height*2 < 64K). - -Close colors do not look that close. But that seems to be the window system. - -Neither a special API for MSW nor a special MSW documentation other than this. -(I can only point you to wxxpm as an example , see below.) - -INSTALLATION: -There is not yet a makefile with it. Simply take all the *.c files -into your project. -!!!You MUST set FOR_MSW on the preprocessor options!!! -(You might uncomment NEED_STRCASECMP in xpm.h if it's in your lib) -This should compile into libxpm.a. Good luck... - -FTP: -wxWindows is currently available from the Artificial Intelligence -Applications Institute (University of Edinburgh) by anonymous FTP. - skye.aiai.ed.ac.uk pub/wxwin/ -or read http://burray.aiai.ed.ac.uk/aiai/aiai.html - -wxxpm, XPM support for wxWindows, the latest version is available at - yoda.cul-ipn.uni-kiel.de pub/wxxpm/ - and maybe in the contrib or tools of wxWindows - -Please contact me if you have suggestions, comments or problems! - --- - ////|\\\\ \\\\\\ Hermann Dunkel - O O ////// IPN Uni Kiel, Germany - | \\\\\\ Tel: +49 431 / 880 3144 - \___/ ////// E-mail: hedu@cul-ipn.uni-kiel.de - \_/ \\\\\\ X.400 : c=de;a=d400;p=uni-kiel;ou=nw-didaktik;s=dunkel - diff --git a/src/xpm/rgb.c b/src/xpm/rgb.c deleted file mode 100644 index 38b180dd20..0000000000 --- a/src/xpm/rgb.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* rgb.c: * -* * -* XPM library * -* Rgb file utilities * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -/* - * Part of this code has been taken from the ppmtoxpm.c file written by Mark - * W. Snitily but has been modified for my special need - */ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:ctype.h" -#include "sys$library:string.h" -#else -#include -#if defined(SYSV) || defined(SVR4) -#include -#else -#include -#endif -#endif - -#ifndef FOR_MSW /* normal part first, MSW part at - * the end, (huge ifdef!) */ -/* - * Read a rgb text file. It stores the rgb values (0->65535) - * and the rgb mnemonics (malloc'ed) into the "rgbn" array. Returns the - * number of entries stored. - */ -int -xpmReadRgbNames(char *rgb_fname, xpmRgbName rgbn[]) -{ - FILE *rgbf; - int i, items, red, green, blue; - char line[512], name[512], *rgbname, *n, *m; - xpmRgbName *rgb; - - /* Open the rgb text file. Abort if error. */ - if ((rgbf = fopen(rgb_fname, "r")) == NULL) - return 0; - - /* Loop reading each line in the file. */ - for (i = 0, rgb = rgbn; fgets(line, sizeof(line), rgbf); i++, rgb++) { - - /* Quit if rgb text file is too large. */ - if (i == MAX_RGBNAMES) { - /* Too many entries in rgb text file, give up here */ - break; - } - /* Read the line. Skip silently if bad. */ - items = sscanf(line, "%d %d %d %[^\n]\n", &red, &green, &blue, name); - if (items != 4) { - i--; - continue; - } - - /* - * Make sure rgb values are within 0->255 range. Skip silently if - * bad. - */ - if (red < 0 || red > 0xFF || - green < 0 || green > 0xFF || - blue < 0 || blue > 0xFF) { - i--; - continue; - } - /* Allocate memory for ascii name. If error give up here. */ - if (!(rgbname = (char *) XpmMalloc(strlen(name) + 1))) - break; - - /* Copy string to ascii name and lowercase it. */ - for (n = name, m = rgbname; *n; n++) - *m++ = tolower(*n); - *m = '\0'; - - /* Save the rgb values and ascii name in the array. */ - rgb->r = red * 257; /* 65535/255 = 257 */ - rgb->g = green * 257; - rgb->b = blue * 257; - rgb->name = rgbname; - } - - fclose(rgbf); - - /* Return the number of read rgb names. */ - return i < 0 ? 0 : i; -} - -/* - * Return the color name corresponding to the given rgb values - */ -char * -xpmGetRgbName(xpmRgbName rgbn[], int rgbn_max, int red, int green, int blue) -/* xpmRgbName rgbn[]; */ /* rgb mnemonics from rgb text file */ -/* int rgbn_max; */ /* number of rgb mnemonics in table */ -/* int red, green, blue; */ /* rgb values */ - -{ - int i; - xpmRgbName *rgb; - - /* - * Just perform a dumb linear search over the rgb values of the color - * mnemonics. One could speed things up by sorting the rgb values and - * using a binary search, or building a hash table, etc... - */ - for (i = 0, rgb = rgbn; i < rgbn_max; i++, rgb++) - if (red == rgb->r && green == rgb->g && blue == rgb->b) - return rgb->name; - - /* if not found return NULL */ - return NULL; -} - -/* - * Free the strings which have been malloc'ed in xpmReadRgbNames - */ -void -xpmFreeRgbNames(xpmRgbName rgbn[], int rgbn_max) -{ - int i; - xpmRgbName *rgb; - - for (i = 0, rgb = rgbn; i < rgbn_max; i++, rgb++) - XpmFree(rgb->name); -} - -#else /* here comes the MSW part, the - * second part of the huge ifdef */ - -#include "rgbtab.h" /* hard coded rgb.txt table */ - -int -xpmReadRgbNames(char *rgb_fname, xpmRgbName rgbn[]) -{ - /* - * check for consistency??? - * table has to be sorted for calls on strcasecmp - */ - return (numTheRGBRecords); -} - -/* - * MSW rgb values are made from 3 BYTEs, this is different from X XColor.red, - * which has something like #0303 for one color - */ -char * -xpmGetRgbName(xpmRgbName rgbn[], int rgbn_max, int red, int green, int blue) -/* xpmRgbName rgbn[]; */ /* rgb mnemonics from rgb text file - * not used */ -/* int rgbn_max; */ /* not used */ -/* int red, green, blue; */ /* rgb values */ - -{ - int i; - unsigned long rgbVal; - - i = 0; - while (i < numTheRGBRecords) { - rgbVal = theRGBRecords[i].rgb; - if (GetRValue(rgbVal) == red && - GetGValue(rgbVal) == green && - GetBValue(rgbVal) == blue) - return (theRGBRecords[i].name); - i++; - } - return (NULL); -} - -/* used in XParseColor in simx.c */ -int -xpmGetRGBfromName(char *inname, int *r, int *g, int *b) -{ - int left, right, middle; - int cmp; - unsigned long rgbVal; - char *name; - char *grey, *p; - - name = strdup(inname); - - /* - * the table in rgbtab.c has no names with spaces, and no grey, but a - * lot of gray - */ - /* so first extract ' ' */ - while (p = strchr(name, ' ')) { - while (*(p)) { /* till eof of string */ - *p = *(p + 1); /* copy to the left */ - p++; - } - } - /* fold to lower case */ - p = name; - while (*p) { - *p = tolower(*p); - p++; - } - - /* - * substitute Grey with Gray, else rgbtab.h would have more than 100 - * 'duplicate' entries - */ - if (grey = strstr(name, "grey")) - grey[2] = 'a'; - - /* binary search */ - left = 0; - right = numTheRGBRecords - 1; - do { - middle = (left + right) / 2; - cmp = strcasecmp(name, theRGBRecords[middle].name); - if (cmp == 0) { - rgbVal = theRGBRecords[middle].rgb; - *r = GetRValue(rgbVal); - *g = GetGValue(rgbVal); - *b = GetBValue(rgbVal); - free(name); - return (1); - } else if (cmp < 0) { - right = middle - 1; - } else { /* > 0 */ - left = middle + 1; - } - } while (left <= right); - - /* - * I don't like to run in a ColorInvalid error and to see no pixmap at - * all, so simply return a red pixel. Should be wrapped in an #ifdef - * HeDu - */ - - *r = 255; - *g = 0; - *b = 0; /* red error pixel */ - - free(name); - return (1); -} - -void -xpmFreeRgbNames(xpmRgbName rgbn[], int rgbn_max) -{ - /* nothing to do */ -} - -#endif /* MSW part */ diff --git a/src/xpm/rgbtab.h b/src/xpm/rgbtab.h deleted file mode 100644 index 39e8d27c9c..0000000000 --- a/src/xpm/rgbtab.h +++ /dev/null @@ -1,292 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* rgbtab.h * -* * -* A hard coded rgb.txt. To keep it short I removed all colornames with * -* trailing numbers, Blue3 etc, except the GrayXX. Sorry Grey-lovers I prefer * -* Gray ;-). But Grey is recognized on lookups, only on save Gray will be * -* used, maybe you want to do some substitue there too. * -* * -* To save memory the RGBs are coded in one long value, as done by the RGB * -* macro. * -* * -* Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) * -\*****************************************************************************/ - - -typedef struct { - char *name; - COLORREF rgb; /* it's unsigned long */ -} rgbRecord; - -/* -#define myRGB(r,g,b) \ - ((unsigned long)r<<16|(unsigned long)g<<8|(unsigned long)b) -*/ -#define myRGB(r,g,b) RGB(r,g,b) /* MSW has this macro */ - - -static rgbRecord theRGBRecords[] = -{ - {"AliceBlue", myRGB(240, 248, 255)}, - {"AntiqueWhite", myRGB(250, 235, 215)}, - {"Aquamarine", myRGB(50, 191, 193)}, - {"Azure", myRGB(240, 255, 255)}, - {"Beige", myRGB(245, 245, 220)}, - {"Bisque", myRGB(255, 228, 196)}, - {"Black", myRGB(0, 0, 0)}, - {"BlanchedAlmond", myRGB(255, 235, 205)}, - {"Blue", myRGB(0, 0, 255)}, - {"BlueViolet", myRGB(138, 43, 226)}, - {"Brown", myRGB(165, 42, 42)}, - {"burlywood", myRGB(222, 184, 135)}, - {"CadetBlue", myRGB(95, 146, 158)}, - {"chartreuse", myRGB(127, 255, 0)}, - {"chocolate", myRGB(210, 105, 30)}, - {"Coral", myRGB(255, 114, 86)}, - {"CornflowerBlue", myRGB(34, 34, 152)}, - {"cornsilk", myRGB(255, 248, 220)}, - {"Cyan", myRGB(0, 255, 255)}, - {"DarkGoldenrod", myRGB(184, 134, 11)}, - {"DarkGreen", myRGB(0, 86, 45)}, - {"DarkKhaki", myRGB(189, 183, 107)}, - {"DarkOliveGreen", myRGB(85, 86, 47)}, - {"DarkOrange", myRGB(255, 140, 0)}, - {"DarkOrchid", myRGB(139, 32, 139)}, - {"DarkSalmon", myRGB(233, 150, 122)}, - {"DarkSeaGreen", myRGB(143, 188, 143)}, - {"DarkSlateBlue", myRGB(56, 75, 102)}, - {"DarkSlateGray", myRGB(47, 79, 79)}, - {"DarkTurquoise", myRGB(0, 166, 166)}, - {"DarkViolet", myRGB(148, 0, 211)}, - {"DeepPink", myRGB(255, 20, 147)}, - {"DeepSkyBlue", myRGB(0, 191, 255)}, - {"DimGray", myRGB(84, 84, 84)}, - {"DodgerBlue", myRGB(30, 144, 255)}, - {"Firebrick", myRGB(142, 35, 35)}, - {"FloralWhite", myRGB(255, 250, 240)}, - {"ForestGreen", myRGB(80, 159, 105)}, - {"gainsboro", myRGB(220, 220, 220)}, - {"GhostWhite", myRGB(248, 248, 255)}, - {"Gold", myRGB(218, 170, 0)}, - {"Goldenrod", myRGB(239, 223, 132)}, - {"Gray", myRGB(126, 126, 126)}, - {"Gray0", myRGB(0, 0, 0)}, - {"Gray1", myRGB(3, 3, 3)}, - {"Gray10", myRGB(26, 26, 26)}, - {"Gray100", myRGB(255, 255, 255)}, - {"Gray11", myRGB(28, 28, 28)}, - {"Gray12", myRGB(31, 31, 31)}, - {"Gray13", myRGB(33, 33, 33)}, - {"Gray14", myRGB(36, 36, 36)}, - {"Gray15", myRGB(38, 38, 38)}, - {"Gray16", myRGB(41, 41, 41)}, - {"Gray17", myRGB(43, 43, 43)}, - {"Gray18", myRGB(46, 46, 46)}, - {"Gray19", myRGB(48, 48, 48)}, - {"Gray2", myRGB(5, 5, 5)}, - {"Gray20", myRGB(51, 51, 51)}, - {"Gray21", myRGB(54, 54, 54)}, - {"Gray22", myRGB(56, 56, 56)}, - {"Gray23", myRGB(59, 59, 59)}, - {"Gray24", myRGB(61, 61, 61)}, - {"Gray25", myRGB(64, 64, 64)}, - {"Gray26", myRGB(66, 66, 66)}, - {"Gray27", myRGB(69, 69, 69)}, - {"Gray28", myRGB(71, 71, 71)}, - {"Gray29", myRGB(74, 74, 74)}, - {"Gray3", myRGB(8, 8, 8)}, - {"Gray30", myRGB(77, 77, 77)}, - {"Gray31", myRGB(79, 79, 79)}, - {"Gray32", myRGB(82, 82, 82)}, - {"Gray33", myRGB(84, 84, 84)}, - {"Gray34", myRGB(87, 87, 87)}, - {"Gray35", myRGB(89, 89, 89)}, - {"Gray36", myRGB(92, 92, 92)}, - {"Gray37", myRGB(94, 94, 94)}, - {"Gray38", myRGB(97, 97, 97)}, - {"Gray39", myRGB(99, 99, 99)}, - {"Gray4", myRGB(10, 10, 10)}, - {"Gray40", myRGB(102, 102, 102)}, - {"Gray41", myRGB(105, 105, 105)}, - {"Gray42", myRGB(107, 107, 107)}, - {"Gray43", myRGB(110, 110, 110)}, - {"Gray44", myRGB(112, 112, 112)}, - {"Gray45", myRGB(115, 115, 115)}, - {"Gray46", myRGB(117, 117, 117)}, - {"Gray47", myRGB(120, 120, 120)}, - {"Gray48", myRGB(122, 122, 122)}, - {"Gray49", myRGB(125, 125, 125)}, - {"Gray5", myRGB(13, 13, 13)}, - {"Gray50", myRGB(127, 127, 127)}, - {"Gray51", myRGB(130, 130, 130)}, - {"Gray52", myRGB(133, 133, 133)}, - {"Gray53", myRGB(135, 135, 135)}, - {"Gray54", myRGB(138, 138, 138)}, - {"Gray55", myRGB(140, 140, 140)}, - {"Gray56", myRGB(143, 143, 143)}, - {"Gray57", myRGB(145, 145, 145)}, - {"Gray58", myRGB(148, 148, 148)}, - {"Gray59", myRGB(150, 150, 150)}, - {"Gray6", myRGB(15, 15, 15)}, - {"Gray60", myRGB(153, 153, 153)}, - {"Gray61", myRGB(156, 156, 156)}, - {"Gray62", myRGB(158, 158, 158)}, - {"Gray63", myRGB(161, 161, 161)}, - {"Gray64", myRGB(163, 163, 163)}, - {"Gray65", myRGB(166, 166, 166)}, - {"Gray66", myRGB(168, 168, 168)}, - {"Gray67", myRGB(171, 171, 171)}, - {"Gray68", myRGB(173, 173, 173)}, - {"Gray69", myRGB(176, 176, 176)}, - {"Gray7", myRGB(18, 18, 18)}, - {"Gray70", myRGB(179, 179, 179)}, - {"Gray71", myRGB(181, 181, 181)}, - {"Gray72", myRGB(184, 184, 184)}, - {"Gray73", myRGB(186, 186, 186)}, - {"Gray74", myRGB(189, 189, 189)}, - {"Gray75", myRGB(191, 191, 191)}, - {"Gray76", myRGB(194, 194, 194)}, - {"Gray77", myRGB(196, 196, 196)}, - {"Gray78", myRGB(199, 199, 199)}, - {"Gray79", myRGB(201, 201, 201)}, - {"Gray8", myRGB(20, 20, 20)}, - {"Gray80", myRGB(204, 204, 204)}, - {"Gray81", myRGB(207, 207, 207)}, - {"Gray82", myRGB(209, 209, 209)}, - {"Gray83", myRGB(212, 212, 212)}, - {"Gray84", myRGB(214, 214, 214)}, - {"Gray85", myRGB(217, 217, 217)}, - {"Gray86", myRGB(219, 219, 219)}, - {"Gray87", myRGB(222, 222, 222)}, - {"Gray88", myRGB(224, 224, 224)}, - {"Gray89", myRGB(227, 227, 227)}, - {"Gray9", myRGB(23, 23, 23)}, - {"Gray90", myRGB(229, 229, 229)}, - {"Gray91", myRGB(232, 232, 232)}, - {"Gray92", myRGB(235, 235, 235)}, - {"Gray93", myRGB(237, 237, 237)}, - {"Gray94", myRGB(240, 240, 240)}, - {"Gray95", myRGB(242, 242, 242)}, - {"Gray96", myRGB(245, 245, 245)}, - {"Gray97", myRGB(247, 247, 247)}, - {"Gray98", myRGB(250, 250, 250)}, - {"Gray99", myRGB(252, 252, 252)}, - {"Green", myRGB(0, 255, 0)}, - {"GreenYellow", myRGB(173, 255, 47)}, - {"honeydew", myRGB(240, 255, 240)}, - {"HotPink", myRGB(255, 105, 180)}, - {"IndianRed", myRGB(107, 57, 57)}, - {"ivory", myRGB(255, 255, 240)}, - {"Khaki", myRGB(179, 179, 126)}, - {"lavender", myRGB(230, 230, 250)}, - {"LavenderBlush", myRGB(255, 240, 245)}, - {"LawnGreen", myRGB(124, 252, 0)}, - {"LemonChiffon", myRGB(255, 250, 205)}, - {"LightBlue", myRGB(176, 226, 255)}, - {"LightCoral", myRGB(240, 128, 128)}, - {"LightCyan", myRGB(224, 255, 255)}, - {"LightGoldenrod", myRGB(238, 221, 130)}, - {"LightGoldenrodYellow", myRGB(250, 250, 210)}, - {"LightGray", myRGB(168, 168, 168)}, - {"LightPink", myRGB(255, 182, 193)}, - {"LightSalmon", myRGB(255, 160, 122)}, - {"LightSeaGreen", myRGB(32, 178, 170)}, - {"LightSkyBlue", myRGB(135, 206, 250)}, - {"LightSlateBlue", myRGB(132, 112, 255)}, - {"LightSlateGray", myRGB(119, 136, 153)}, - {"LightSteelBlue", myRGB(124, 152, 211)}, - {"LightYellow", myRGB(255, 255, 224)}, - {"LimeGreen", myRGB(0, 175, 20)}, - {"linen", myRGB(250, 240, 230)}, - {"Magenta", myRGB(255, 0, 255)}, - {"Maroon", myRGB(143, 0, 82)}, - {"MediumAquamarine", myRGB(0, 147, 143)}, - {"MediumBlue", myRGB(50, 50, 204)}, - {"MediumForestGreen", myRGB(50, 129, 75)}, - {"MediumGoldenrod", myRGB(209, 193, 102)}, - {"MediumOrchid", myRGB(189, 82, 189)}, - {"MediumPurple", myRGB(147, 112, 219)}, - {"MediumSeaGreen", myRGB(52, 119, 102)}, - {"MediumSlateBlue", myRGB(106, 106, 141)}, - {"MediumSpringGreen", myRGB(35, 142, 35)}, - {"MediumTurquoise", myRGB(0, 210, 210)}, - {"MediumVioletRed", myRGB(213, 32, 121)}, - {"MidnightBlue", myRGB(47, 47, 100)}, - {"MintCream", myRGB(245, 255, 250)}, - {"MistyRose", myRGB(255, 228, 225)}, - {"moccasin", myRGB(255, 228, 181)}, - {"NavajoWhite", myRGB(255, 222, 173)}, - {"Navy", myRGB(35, 35, 117)}, - {"NavyBlue", myRGB(35, 35, 117)}, - {"OldLace", myRGB(253, 245, 230)}, - {"OliveDrab", myRGB(107, 142, 35)}, - {"Orange", myRGB(255, 135, 0)}, - {"OrangeRed", myRGB(255, 69, 0)}, - {"Orchid", myRGB(239, 132, 239)}, - {"PaleGoldenrod", myRGB(238, 232, 170)}, - {"PaleGreen", myRGB(115, 222, 120)}, - {"PaleTurquoise", myRGB(175, 238, 238)}, - {"PaleVioletRed", myRGB(219, 112, 147)}, - {"PapayaWhip", myRGB(255, 239, 213)}, - {"PeachPuff", myRGB(255, 218, 185)}, - {"peru", myRGB(205, 133, 63)}, - {"Pink", myRGB(255, 181, 197)}, - {"Plum", myRGB(197, 72, 155)}, - {"PowderBlue", myRGB(176, 224, 230)}, - {"purple", myRGB(160, 32, 240)}, - {"Red", myRGB(255, 0, 0)}, - {"RosyBrown", myRGB(188, 143, 143)}, - {"RoyalBlue", myRGB(65, 105, 225)}, - {"SaddleBrown", myRGB(139, 69, 19)}, - {"Salmon", myRGB(233, 150, 122)}, - {"SandyBrown", myRGB(244, 164, 96)}, - {"SeaGreen", myRGB(82, 149, 132)}, - {"seashell", myRGB(255, 245, 238)}, - {"Sienna", myRGB(150, 82, 45)}, - {"SkyBlue", myRGB(114, 159, 255)}, - {"SlateBlue", myRGB(126, 136, 171)}, - {"SlateGray", myRGB(112, 128, 144)}, - {"snow", myRGB(255, 250, 250)}, - {"SpringGreen", myRGB(65, 172, 65)}, - {"SteelBlue", myRGB(84, 112, 170)}, - {"Tan", myRGB(222, 184, 135)}, - {"Thistle", myRGB(216, 191, 216)}, - {"tomato", myRGB(255, 99, 71)}, - {"Transparent", myRGB(0, 0, 1)}, - {"Turquoise", myRGB(25, 204, 223)}, - {"Violet", myRGB(156, 62, 206)}, - {"VioletRed", myRGB(243, 62, 150)}, - {"Wheat", myRGB(245, 222, 179)}, - {"White", myRGB(255, 255, 255)}, - {"WhiteSmoke", myRGB(245, 245, 245)}, - {"Yellow", myRGB(255, 255, 0)}, - {"YellowGreen", myRGB(50, 216, 56)}, - NULL -}; - -static int numTheRGBRecords = 234; diff --git a/src/xpm/scan.c b/src/xpm/scan.c deleted file mode 100644 index fb16180fd8..0000000000 --- a/src/xpm/scan.c +++ /dev/null @@ -1,843 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* scan.c: * -* * -* XPM library * -* Scanning utility for XPM file format * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -#include "xpm34p.h" - -#define MAXPRINTABLE 92 /* number of printable ascii chars - * minus \ and " for string compat - * and ? to avoid ANSI trigraphs. */ - -static char *printable = -" .XoO+@#$%&*=-;:>,<1234567890qwertyuipasdfghjklzxcvbnmMNBVCZ\ -ASDFGHJKLPIUYTREWQ!~^/()_`'][{}|"; - -/* - * printable begin with a space, so in most case, due to my algorithm, when - * the number of different colors is less than MAXPRINTABLE, it will give a - * char follow by "nothing" (a space) in the readable xpm file - */ - - -typedef struct { - Pixel *pixels; - unsigned int *pixelindex; - unsigned int size; - unsigned int ncolors; - unsigned int mask_pixel; /* whether there is or not */ -} PixelsMap; - -LFUNC(storePixel, int, (Pixel pixel, PixelsMap *pmap, - unsigned int *index_return)); - -LFUNC(storeMaskPixel, int, (Pixel pixel, PixelsMap *pmap, - unsigned int *index_return)); - -#ifndef FOR_MSW -LFUNC(GetImagePixels, int, (XImage *image, unsigned int width, - unsigned int height, PixelsMap *pmap)); - -LFUNC(GetImagePixels32, int, (XImage *image, unsigned int width, - unsigned int height, PixelsMap *pmap)); - -LFUNC(GetImagePixels16, int, (XImage *image, unsigned int width, - unsigned int height, PixelsMap *pmap)); - -LFUNC(GetImagePixels8, int, (XImage *image, unsigned int width, - unsigned int height, PixelsMap *pmap)); - -LFUNC(GetImagePixels1, int, (XImage *image, unsigned int width, - unsigned int height, PixelsMap *pmap, - int (*storeFunc) (Pixel,PixelsMap*, - unsigned int*))); - -/* - int (*storeFunc) ())); -*/ - -#else /* ndef FOR_MSW */ -LFUNC(MSWGetImagePixels, int, (Display *d, XImage *image, unsigned int width, - unsigned int height, PixelsMap *pmap)); -#endif -LFUNC(ScanTransparentColor, int, (XpmColor *color, unsigned int cpp, - XpmAttributes *attributes)); - -LFUNC(ScanOtherColors, int, (Display *display, XpmColor *colors, int ncolors, - Pixel *pixels, unsigned int mask, - unsigned int cpp, XpmAttributes *attributes)); - -/* - * This function stores the given pixel in the given arrays which are grown - * if not large enough. - */ -static int -storePixel(Pixel pixel, PixelsMap *pmap, unsigned int *index_return) -{ - unsigned int i; - Pixel *p; - unsigned int ncolors; - - if (*index_return) { /* this is a transparent pixel! */ - *index_return = 0; - return 0; - } - ncolors = pmap->ncolors; - p = pmap->pixels + pmap->mask_pixel; - for (i = pmap->mask_pixel; i < ncolors; i++, p++) - if (*p == pixel) - break; - if (i == ncolors) { - if (ncolors >= pmap->size) { - pmap->size *= 2; - p = (Pixel *) XpmRealloc(pmap->pixels, sizeof(Pixel) * pmap->size); - if (!p) - return (1); - pmap->pixels = p; - - } - (pmap->pixels)[ncolors] = pixel; - pmap->ncolors++; - } - *index_return = i; - return 0; -} - -static int -storeMaskPixel(Pixel pixel, PixelsMap *pmap, unsigned int *index_return) -{ - if (!pixel) { - if (!pmap->ncolors) { - pmap->ncolors = 1; - (pmap->pixels)[0] = 0; - pmap->mask_pixel = 1; - } - *index_return = 1; - } else - *index_return = 0; - return 0; -} - -/* function call in case of error, frees only locally allocated variables */ -#undef RETURN -#define RETURN(status) \ -{ \ - if (pmap.pixelindex) XpmFree(pmap.pixelindex); \ - if (pmap.pixels) XpmFree(pmap.pixels); \ - if (colorTable) xpmFreeColorTable(colorTable, pmap.ncolors); \ - return(status); \ -} - -/* - * This function scans the given image and stores the found informations in - * the given XpmImage structure. - */ -int -XpmCreateXpmImageFromImage(Display *display, XImage *image, XImage *shapeimage, - XpmImage *xpmimage, XpmAttributes *attributes) -{ - /* variables stored in the XpmAttributes structure */ - unsigned int cpp; - - /* variables to return */ - PixelsMap pmap; - XpmColor *colorTable = NULL; - int ErrorStatus; - - /* calculation variables */ - unsigned int width = 0; - unsigned int height = 0; - unsigned int cppm; /* minimum chars per pixel */ - unsigned int c; - unsigned int offset; - - /* initialize pmap */ - pmap.pixels = NULL; - pmap.pixelindex = NULL; - pmap.size = 256; /* should be enough most of the time */ - pmap.ncolors = 0; - pmap.mask_pixel = 0; - - /* - * get geometry - */ - if (image) { - width = image->width; - height = image->height; - } else if (shapeimage) { - width = shapeimage->width; - height = shapeimage->height; - } - - /* - * retrieve information from the XpmAttributes - */ - if (attributes && (attributes->valuemask & XpmCharsPerPixel -/* 3.2 backward compatibility code */ - || attributes->valuemask & XpmInfos)) -/* end 3.2 bc */ - cpp = attributes->cpp; - else - cpp = 0; - - pmap.pixelindex = - (unsigned int *) XpmCalloc(width * height, sizeof(unsigned int)); - if (!pmap.pixelindex) - RETURN(XpmNoMemory); - - pmap.pixels = (Pixel *) XpmMalloc(sizeof(Pixel) * pmap.size); - if (!pmap.pixels) - RETURN(XpmNoMemory); - - /* - * scan shape mask if any - */ - if (shapeimage) { -#ifndef FOR_MSW - ErrorStatus = GetImagePixels1(shapeimage, width, height, &pmap, - storeMaskPixel); -#else - ErrorStatus = MSWGetImagePixels(display, shapeimage, width, height, - &pmap); -#endif - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - } - - /* - * scan the image data - * - * In case depth is 1 or bits_per_pixel is 4, 6, 8, 24 or 32 use optimized - * functions, otherwise use slower but sure general one. - * - */ - - if (image) { -#ifndef FOR_MSW - if (image->depth == 1) - ErrorStatus = GetImagePixels1(image, width, height, &pmap, - storePixel); - else if (image->bits_per_pixel == 8) - ErrorStatus = GetImagePixels8(image, width, height, &pmap); - else if (image->bits_per_pixel == 16) - ErrorStatus = GetImagePixels16(image, width, height, &pmap); - else if (image->bits_per_pixel == 32) - ErrorStatus = GetImagePixels32(image, width, height, &pmap); - else - ErrorStatus = GetImagePixels(image, width, height, &pmap); -#else /* FOR_MSW */ - ErrorStatus = MSWGetImagePixels(display, image, width, height, &pmap); -#endif - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - } - - /* - * get rgb values and a string of char, and possibly a name for each - * color - */ - - colorTable = (XpmColor *) XpmCalloc(pmap.ncolors, sizeof(XpmColor)); - if (!colorTable) - RETURN(XpmNoMemory); - - /* compute the minimal cpp */ - for (cppm = 1, c = MAXPRINTABLE; pmap.ncolors > c; cppm++) - c *= MAXPRINTABLE; - if (cpp < cppm) - cpp = cppm; - - if (pmap.mask_pixel) { - ErrorStatus = ScanTransparentColor(colorTable, cpp, attributes); - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - offset = 1; - } else - offset = 0; - - ErrorStatus = ScanOtherColors(display, colorTable + offset, - pmap.ncolors - offset, pmap.pixels + offset, - pmap.mask_pixel, cpp, attributes); - if (ErrorStatus != XpmSuccess) - RETURN(ErrorStatus); - - /* - * store found informations in the XpmImage structure - */ - xpmimage->width = width; - xpmimage->height = height; - xpmimage->cpp = cpp; - xpmimage->ncolors = pmap.ncolors; - xpmimage->colorTable = colorTable; - xpmimage->data = pmap.pixelindex; - - XpmFree(pmap.pixels); - return (XpmSuccess); -} - -static int -ScanTransparentColor(XpmColor *color, unsigned int cpp, XpmAttributes *attributes) -{ - char *s; - unsigned int a, b, c; - - /* first get a character string */ - a = 0; - if (!(s = color->string = (char *) XpmMalloc(cpp + 1))) - return (XpmNoMemory); - *s++ = printable[c = a % MAXPRINTABLE]; - for (b = 1; b < cpp; b++, s++) - *s = printable[c = ((a - c) / MAXPRINTABLE) % MAXPRINTABLE]; - *s = '\0'; - - /* then retreive related info from the attributes if any */ - if (attributes && attributes->mask_pixel != XpmUndefPixel && ( -/* 3.2 backward compatibility code */ - attributes->valuemask & XpmInfos || -/* end 3.2 bc */ - attributes->valuemask & XpmColorTable)) { - - unsigned int key; - char **defaults = (char **) color; - char **mask_defaults; - -/* 3.2 backward compatibility code */ - if (attributes->valuemask & XpmInfos) - mask_defaults = (char **) - ((XpmColor **) attributes->colorTable)[attributes->mask_pixel]; - else -/* end 3.2 bc */ - mask_defaults = (char **) ( - attributes->colorTable + attributes->mask_pixel); - for (key = 1; key <= NKEYS; key++) { - if (s = mask_defaults[key]) { - defaults[key] = (char *) strdup(s); - if (!defaults[key]) - return (XpmNoMemory); - } - } - } else { - color->c_color = (char *) strdup(TRANSPARENT_COLOR); - if (!color->c_color) - return (XpmNoMemory); - } - return (XpmSuccess); -} - -static int -ScanOtherColors(Display *display, XpmColor *colors, int ncolors, Pixel *pixels, - unsigned int mask, unsigned int cpp, XpmAttributes *attributes) -{ - /* variables stored in the XpmAttributes structure */ - Colormap colormap; - char *rgb_fname; - -#ifndef FOR_MSW - xpmRgbName rgbn[MAX_RGBNAMES]; -#else - xpmRgbName *rgbn = NULL; -#endif - int rgbn_max = 0; - unsigned int i, j, c, i2; - XpmColor *color; - XColor *xcolors = NULL, *xcolor; - char *colorname, *s; - XpmColor *colorTable, **oldColorTable = NULL; - unsigned int ancolors = 0; - Pixel *apixels; - unsigned int mask_pixel; - int found; - - /* retrieve information from the XpmAttributes */ - if (attributes && (attributes->valuemask & XpmColormap)) - colormap = attributes->colormap; - else - colormap = XDefaultColormap(display, XDefaultScreen(display)); - if (attributes && (attributes->valuemask & XpmRgbFilename)) - rgb_fname = attributes->rgb_fname; - else - rgb_fname = NULL; - - /* first get character strings and rgb values */ - xcolors = (XColor *) XpmMalloc(sizeof(XColor) * ncolors); - if (!xcolors) - return (XpmNoMemory); - - for (i = 0, i2 = (mask ? i + 1 : i), color = colors, xcolor = xcolors; - i < ncolors; i++, i2++, color++, xcolor++, pixels++) { - - if (!(s = color->string = (char *) XpmMalloc(cpp + 1))) { - XpmFree(xcolors); - return (XpmNoMemory); - } - *s++ = printable[c = i2 % MAXPRINTABLE]; - for (j = 1; j < cpp; j++, s++) - *s = printable[c = ((i2 - c) / MAXPRINTABLE) % MAXPRINTABLE]; - *s = '\0'; - - xcolor->pixel = *pixels; - } -#ifdef wx_msw - XQueryColors(display, (Colormap *)colormap, xcolors, ncolors); -#else - XQueryColors(display, (Colormap)colormap, xcolors, ncolors); -#endif - -#ifndef FOR_MSW - /* read the rgb file if any was specified */ - if (rgb_fname) - rgbn_max = xpmReadRgbNames(attributes->rgb_fname, rgbn); -#else - /* FOR_MSW: rgb names and values are hardcoded in rgbtab.h */ - rgbn_max = xpmReadRgbNames(NULL, NULL); -#endif - - if (attributes && attributes->valuemask & XpmColorTable) { - colorTable = attributes->colorTable; - ancolors = attributes->ncolors; - apixels = attributes->pixels; - mask_pixel = attributes->mask_pixel; - } -/* 3.2 backward compatibility code */ - else if (attributes && attributes->valuemask & XpmInfos) { - oldColorTable = (XpmColor **) attributes->colorTable; - ancolors = attributes->ncolors; - apixels = attributes->pixels; - mask_pixel = attributes->mask_pixel; - } -/* end 3.2 bc */ - - for (i = 0, color = colors, xcolor = xcolors; i < ncolors; - i++, color++, xcolor++) { - - /* look for related info from the attributes if any */ - found = False; - if (ancolors) { - unsigned int offset = 0; - - for (j = 0; j < ancolors; j++) { - if (j == mask_pixel) { - offset = 1; - continue; - } - if (apixels[j - offset] == xcolor->pixel) - break; - } - if (j != ancolors) { - unsigned int key; - char **defaults = (char **) color; - char **adefaults; - -/* 3.2 backward compatibility code */ - if (oldColorTable) - adefaults = (char **) oldColorTable[j]; - else -/* end 3.2 bc */ - adefaults = (char **) (colorTable + j); - - found = True; - for (key = 1; key <= NKEYS; key++) { - if (s = adefaults[key]) - defaults[key] = (char *) strdup(s); - } - } - } - if (!found) { - /* if nothing found look for a color name */ - colorname = NULL; - if (rgbn_max) - colorname = xpmGetRgbName(rgbn, rgbn_max, xcolor->red, - xcolor->green, xcolor->blue); - if (colorname) - color->c_color = (char *) strdup(colorname); - else { - /* at last store the rgb value */ - char buf[BUFSIZ]; -#ifndef FOR_MSW - sprintf(buf, "#%04X%04X%04X", - xcolor->red, xcolor->green, xcolor->blue); -#else - sprintf(buf, "#%02x%02x%02x", - xcolor->red, xcolor->green, xcolor->blue); -#endif - color->c_color = (char *) strdup(buf); - } - if (!color->c_color) { - XpmFree(xcolors); - xpmFreeRgbNames(rgbn, rgbn_max); - return (XpmNoMemory); - } - } - } - - XpmFree(xcolors); - xpmFreeRgbNames(rgbn, rgbn_max); - return (XpmSuccess); -} - -#ifndef FOR_MSW -/* - * The functions below are written from X11R5 MIT's code (XImUtil.c) - * - * The idea is to have faster functions than the standard XGetPixel function - * to scan the image data. Indeed we can speed up things by suppressing tests - * performed for each pixel. We do exactly the same tests but at the image - * level. Assuming that we use only ZPixmap images. - */ - -static unsigned long Const low_bits_table[] = { - 0x00000000, 0x00000001, 0x00000003, 0x00000007, - 0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f, - 0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff, - 0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff, - 0x0000ffff, 0x0001ffff, 0x0003ffff, 0x0007ffff, - 0x000fffff, 0x001fffff, 0x003fffff, 0x007fffff, - 0x00ffffff, 0x01ffffff, 0x03ffffff, 0x07ffffff, - 0x0fffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff, - 0xffffffff -}; - -/* - * Default method to scan pixels of a Z image data structure. - * The algorithm used is: - * - * copy the source bitmap_unit or Zpixel into temp - * normalize temp if needed - * extract the pixel bits into return value - * - */ - -static int -GetImagePixels(XImage *image, unsigned int width, unsigned int height, PixelsMap *pmap) -{ - char *src; - char *dst; - unsigned int *iptr; - char *data; - int x, y, i; - int bits, depth, ibu, ibpp; - unsigned long lbt; - Pixel pixel, px; - - data = image->data; - iptr = pmap->pixelindex; - depth = image->depth; - lbt = low_bits_table[depth]; - ibpp = image->bits_per_pixel; - if (image->depth == 1) { - ibu = image->bitmap_unit; - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - src = &data[XYINDEX(x, y, image)]; - dst = (char *) &pixel; - pixel = 0; - for (i = ibu >> 3; --i >= 0;) - *dst++ = *src++; - XYNORMALIZE(&pixel, image); - bits = x % ibu; - pixel = ((((char *) &pixel)[bits >> 3]) >> (bits & 7)) & 1; - if (ibpp != depth) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - } else { - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - src = &data[ZINDEX(x, y, image)]; - dst = (char *) &px; - px = 0; - for (i = (ibpp + 7) >> 3; --i >= 0;) - *dst++ = *src++; - ZNORMALIZE(&px, image); - pixel = 0; - for (i = sizeof(unsigned long); --i >= 0;) - pixel = (pixel << 8) | ((unsigned char *) &px)[i]; - if (ibpp == 4) { - if (x & 1) - pixel >>= 4; - else - pixel &= 0xf; - } - if (ibpp != depth) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - } - return (XpmSuccess); -} - -/* - * scan pixels of a 32-bits Z image data structure - */ - -#ifndef WORD64 -static unsigned long byteorderpixel = MSBFirst << 24; - -#endif - -static int -GetImagePixels32(XImage *image, unsigned int width, unsigned int height, PixelsMap *pmap) -{ - unsigned char *addr; - unsigned char *data; - unsigned int *iptr; - int x, y; - unsigned long lbt; - Pixel pixel; - int depth; - - data = (unsigned char *) image->data; - iptr = pmap->pixelindex; - depth = image->depth; - lbt = low_bits_table[depth]; -#ifndef WORD64 - if (*((char *) &byteorderpixel) == image->byte_order) { - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX32(x, y, image)]; - pixel = *((unsigned long *) addr); - if (depth != 32) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - } else -#endif - if (image->byte_order == MSBFirst) - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX32(x, y, image)]; - pixel = ((unsigned long) addr[0] << 24 | - (unsigned long) addr[1] << 16 | - (unsigned long) addr[2] << 8 | - addr[4]); - if (depth != 32) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - else - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX32(x, y, image)]; - pixel = (addr[0] | - (unsigned long) addr[1] << 8 | - (unsigned long) addr[2] << 16 | - (unsigned long) addr[3] << 24); - if (depth != 32) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - return (XpmSuccess); -} - -/* - * scan pixels of a 16-bits Z image data structure - */ - -static int -GetImagePixels16(XImage *image, unsigned int width, unsigned int height, PixelsMap *pmap) -{ - unsigned char *addr; - unsigned char *data; - unsigned int *iptr; - int x, y; - unsigned long lbt; - Pixel pixel; - int depth; - - data = (unsigned char *) image->data; - iptr = pmap->pixelindex; - depth = image->depth; - lbt = low_bits_table[depth]; - if (image->byte_order == MSBFirst) - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX16(x, y, image)]; - pixel = addr[0] << 8 | addr[1]; - if (depth != 16) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - else - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - addr = &data[ZINDEX16(x, y, image)]; - pixel = addr[0] | addr[1] << 8; - if (depth != 16) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - return (XpmSuccess); -} - -/* - * scan pixels of a 8-bits Z image data structure - */ - -static int -GetImagePixels8(XImage *image, unsigned int width, unsigned int height, PixelsMap *pmap) -{ - unsigned int *iptr; - unsigned char *data; - int x, y; - unsigned long lbt; - Pixel pixel; - int depth; - - data = (unsigned char *) image->data; - iptr = pmap->pixelindex; - depth = image->depth; - lbt = low_bits_table[depth]; - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - pixel = data[ZINDEX8(x, y, image)]; - if (depth != 8) - pixel &= lbt; - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - return (XpmSuccess); -} - -/* - * scan pixels of a 1-bit depth Z image data structure - */ - -static int -GetImagePixels1(XImage *image, unsigned int width, unsigned int height, PixelsMap *pmap, -/* - int (*storeFunc)() -*/ - int (*storeFunc)(Pixel,PixelsMap*,unsigned int*) -) -{ - unsigned int *iptr; - int x, y; - char *data; - Pixel pixel; - - if (image->byte_order != image->bitmap_bit_order) - return (GetImagePixels(image, width, height, pmap)); - else { - data = image->data; - iptr = pmap->pixelindex; - if (image->bitmap_bit_order == MSBFirst) - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - pixel = (data[ZINDEX1(x, y, image)] & (0x80 >> (x & 7))) - ? 1 : 0; - if ((*storeFunc) (pixel, pmap, iptr)) - return (XpmNoMemory); - } - else - for (y = 0; y < height; y++) - for (x = 0; x < width; x++, iptr++) { - pixel = (data[ZINDEX1(x, y, image)] & (1 << (x & 7))) - ? 1 : 0; - if ((*storeFunc) (pixel, pmap, iptr)) - return (XpmNoMemory); - } - } - return (XpmSuccess); -} - -#else /* ndef FOR_MSW */ -static int -MSWGetImagePixels(Display *display, XImage *image, unsigned int width, unsigned int height, PixelsMap *pmap) -{ - unsigned int *iptr; - unsigned int x, y; - Pixel pixel; - - iptr = pmap->pixelindex; - - for (y = 0; y < height; y++) { - for (x = 0; x < width; x++, iptr++) { - /* bitmap must be selected !!! ??? */ - pixel = GetPixel(*display, x, y); - if (storePixel(pixel, pmap, iptr)) - return (XpmNoMemory); - } - } - return (XpmSuccess); -} - -#endif - -#ifndef FOR_MSW -int -XpmCreateXpmImageFromPixmap(Display *display, Pixmap pixmap, Pixmap shapemask, - XpmImage *xpmimage, XpmAttributes *attributes) -{ - XImage *ximage = NULL; - XImage *shapeimage = NULL; - unsigned int width = 0; - unsigned int height = 0; - int ErrorStatus; - - /* get geometry */ - if (attributes && attributes->valuemask & XpmSize) { - width = attributes->width; - height = attributes->height; - } - /* get the ximages */ - if (pixmap) - xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height); - if (shapemask) - xpmCreateImageFromPixmap(display, shapemask, &shapeimage, - &width, &height); - - /* create the related XpmImage */ - ErrorStatus = XpmCreateXpmImageFromImage(display, ximage, shapeimage, - xpmimage, attributes); - - /* destroy the ximages */ - if (ximage) - XDestroyImage(ximage); - if (shapeimage) - XDestroyImage(shapeimage); - - return (ErrorStatus); -} - -#endif /* ndef FOR_MSW */ diff --git a/src/xpm/simx.c b/src/xpm/simx.c deleted file mode 100644 index 78bf77b0fc..0000000000 --- a/src/xpm/simx.c +++ /dev/null @@ -1,284 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* simx.c: 0.1a * -* * -* This emulates some Xlib functionality for MSW. It's not a general solution, * -* it is close related to XPM-lib. It is only intended to satisfy what is need * -* there. Thus allowing to read XPM files under MS windows. * -* * -* Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) * -\*****************************************************************************/ - -#include "xpm34.h" - -#ifdef FOR_MSW - -#include "xpm34p.h" /* for XpmMalloc */ - -/* - * On DOS size_t is only 2 bytes, thus malloc(size_t s) can only malloc - * 64K. BUT an expression data=malloc(width*height) may result in an - * overflow. So this function takes a long as input, and returns NULL if the - * request is larger than 64K, is size_t is only 2 bytes. - * - * This requires casts like XpmMalloc( (long)width*(long(height)), else it - * might have no effect at all. - */ - -void * -boundCheckingMalloc(long s) -{ - if (sizeof(size_t) == sizeof(long)) { /* same size, just do it */ - return (malloc((size_t) s)); - } else { - if (sizeof(size_t) == 2) { - if (s > 0xFFFF) - return (NULL); /* to large, size_t with 2 bytes - * only allows 16 bits */ - else - return (malloc((size_t) s)); - } else { /* it's not a long, not 2 bytes, - * what is it ??? */ - return (malloc((size_t) s)); - } - } -} -void * -boundCheckingCalloc(long num, long s) -{ - if (sizeof(size_t) == sizeof(long)) { /* same size, just do it */ - return (calloc((size_t) num, (size_t) s)); - } else { - if (sizeof(size_t) == 2) { - if (s > 0xFFFF || num * s > 0xFFFF) - return (NULL); /* to large, size_t with 2 bytes - * only allows 16 bits */ - else - return (calloc((size_t) num, (size_t) s)); - } else { /* it's not a long, not 2 bytes, - * what is it ??? */ - return (calloc((size_t) num, (size_t) s)); - } - } -} -void * -boundCheckingRealloc(void *p, long s) -{ - if (sizeof(size_t) == sizeof(long)) { /* same size, just do it */ - return (realloc(p, (size_t) s)); - } else { - if (sizeof(size_t) == 2) { - if (s > 0xFFFF) - return (NULL); /* to large, size_t with 2 bytes - * only allows 16 bits */ - else - return (realloc(p, (size_t) s)); - } else { /* it's not a long, not 2 bytes, - * what is it ??? */ - return (realloc(p, (size_t) s)); - } - } -} - -/* static Visual theVisual = { 0 }; */ -Visual * -XDefaultVisual(Display *display, Screen *screen) -{ - return (NULL); /* struct could contain info about - * MONO, GRAY, COLOR */ -} - -Screen * -XDefaultScreen(Display *d) -{ - return (NULL); -} - -/* I get only 1 plane but 8 bits per pixel, - so I think BITSPIXEL should be depth */ -int -XDefaultDepth(Display *display, Screen *screen) -{ - int d, b; - - b = GetDeviceCaps(*display, BITSPIXEL); - d = GetDeviceCaps(*display, PLANES); - return (b); -} - -Colormap * -XDefaultColormap(Display *display, Screen *screen) -{ - return (NULL); -} - -/* convert hex color names, - wrong digits (not a-f,A-F,0-9) are treated as zero */ -static int -hexCharToInt(char c) -{ - int r; - - if (c >= '0' && c <= '9') - r = c - '0'; - else if (c >= 'a' && c <= 'f') - r = c - 'a' + 10; - else if (c >= 'A' && c <= 'F') - r = c - 'A' + 10; - else - r = 0; - - return (r); -} - -static int -rgbFromHex(char *hex, int *r, int *g, int *b) -{ - int len; - - if (hex == NULL || hex[0] != '#') - return (0); - - len = strlen(hex); - if (len == 3 + 1) { - *r = hexCharToInt(hex[1]); - *g = hexCharToInt(hex[2]); - *b = hexCharToInt(hex[3]); - } else if (len == 6 + 1) { - *r = hexCharToInt(hex[1]) * 16 + hexCharToInt(hex[2]); - *g = hexCharToInt(hex[3]) * 16 + hexCharToInt(hex[4]); - *b = hexCharToInt(hex[5]) * 16 + hexCharToInt(hex[6]); - } else if (len == 12 + 1) { - /* it's like c #32329999CCCC */ - /* so for now only take two digits */ - *r = hexCharToInt(hex[1]) * 16 + hexCharToInt(hex[2]); - *g = hexCharToInt(hex[5]) * 16 + hexCharToInt(hex[6]); - *b = hexCharToInt(hex[9]) * 16 + hexCharToInt(hex[10]); - } else - return (0); - - return (1); -} - -/* Color related functions */ -int -XParseColor(Display *d, Colormap *cmap, char *name, XColor *color) -{ - int r, g, b; /* only 8 bit values used */ - int okay; - -/* TODO: use colormap via PALETTE */ - /* parse name either in table or #RRGGBB #RGB */ - if (name == NULL) - return (0); - - if (name[0] == '#') { /* a hex string */ - okay = rgbFromHex(name, &r, &g, &b); - } else { - okay = xpmGetRGBfromName(name, &r, &g, &b); - } - - if (okay) { - color->pixel = RGB(r, g, b); - color->red = (BYTE) r; - color->green = (BYTE) g; - color->blue = (BYTE) b; - return (1); - } else - return (0); /* --> ColorError */ -} - - -int -XAllocColor(Display *d, Colormap *cmap, XColor *color) -{ -/* colormap not used yet so color->pixel is the real COLORREF (RBG) and not an - index in some colormap as in X */ - return (1); -} -void -XQueryColors(Display *display, Colormap *colormap, - XColor *xcolors, int ncolors) -{ -/* under X this fills the rgb values to given .pixel */ -/* since there no colormap use FOR_MSW (not yet!!), rgb is plain encoded */ - XColor *xc = xcolors; - int i; - - for (i = 0; i < ncolors; i++, xc++) { - xc->red = GetRValue(xc->pixel); - xc->green = GetGValue(xc->pixel); - xc->blue = GetBValue(xc->pixel); - } - return; -} -int -XFreeColors(Display *d, Colormap cmap, - unsigned long pixels[], int npixels, unsigned long planes) -{ - /* no colormap yet */ - return (0); /* correct ??? */ -} - -/* XImage functions */ -XImage * -XCreateImage(Display *d, Visual *v, - int depth, int format, - int x, int y, int width, int height, - int pad, int foo) -{ - XImage *img = (XImage *) XpmMalloc(sizeof(XImage)); - - if (img) { - /* *img = CreateCompatibleBitmap(*d, width, height); */ - img->bitmap = CreateBitmap(width, height, 1 /* plane */ , - depth /* bits per pixel */ , NULL); - img->width = width; - img->height = height; - img->depth = depth; - } - return (img); - -} - -void -XImageFree(XImage *img) -{ - if (img) { - XpmFree(img); - } -} -void -XDestroyImage(XImage *img) -{ - if (img) { - DeleteObject(img->bitmap); /* check return ??? */ - XImageFree(img); - } -} - -#endif diff --git a/src/xpm/simx.h b/src/xpm/simx.h deleted file mode 100644 index 23e8a1a297..0000000000 --- a/src/xpm/simx.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* simx.h: 0.1a * -* * -* This emulates some Xlib functionality for MSW. It's not a general solution, * -* it is close related to XPM-lib. It is only intended to satisfy what is need * -* there. Thus allowing to read XPM files under MS windows. * -* * -* Developed by HeDu 3/94 (hedu@cul-ipn.uni-kiel.de) * -\*****************************************************************************/ - - -#ifndef _SIMX_H -#define _SIMX_H - -#ifdef FOR_MSW - -#include "windows.h" /* MS windows GDI types */ - -/* - * minimal portability layer between ansi and KR C - */ -/* this comes from xpm.h, and is here again, to avoid complicated - includes, since this is included from xpm.h */ -/* these defines get undefed at the end of this file */ -#if __STDC__ || defined(__cplusplus) || defined(c_plusplus) - /* ANSI || C++ */ -#define FUNC(f, t, p) extern t f p -#define LFUNC(f, t, p) static t f p -#else /* k&R */ -#define FUNC(f, t, p) extern t f() -#define LFUNC(f, t, p) static t f() -#endif - - -FUNC(boundCheckingMalloc, void *, (long s)); -FUNC(boundCheckingCalloc, void *, (long num, long s)); -FUNC(boundCheckingRealloc, void *, (void *p, long s)); - -/* define MSW types for X window types, - I don't know much about MSW, but the following defines do the job */ - -typedef HDC Display; /* this should be similar */ -typedef void *Screen; /* not used */ -typedef void *Visual; /* not used yet, is for GRAY, COLOR, - * MONO */ - -typedef void *Colormap; /* should be COLORPALETTE, not done - * yet */ - -typedef COLORREF Pixel; - -#define PIXEL_ALREADY_TYPEDEFED /* to let xpm.h know about it */ - -typedef struct { - Pixel pixel; - BYTE red, green, blue; -} XColor; - -typedef struct { - HBITMAP bitmap; - unsigned int width; - unsigned int height; - unsigned int depth; -} XImage; - -#if defined(__cplusplus) || defined(c_plusplus) -extern "C" { -#endif -/* some replacements for X... functions */ - -/* XDefaultXXX */ - FUNC(XDefaultVisual, Visual *, (Display *display, Screen *screen)); - FUNC(XDefaultScreen, Screen *, (Display *d)); - FUNC(XDefaultColormap, Colormap *, (Display *display, Screen *screen)); - FUNC(XDefaultDepth, int, (Display *d, Screen *s)); - -/* color related */ - FUNC(XParseColor, int, (Display *, Colormap *, char *, XColor *)); - FUNC(XAllocColor, int, (Display *, Colormap *, XColor *)); - FUNC(XQueryColors, void, (Display *display, Colormap *colormap, - XColor *xcolors, int ncolors)); - FUNC(XFreeColors, int, (Display *d, Colormap cmap, - unsigned long pixels[], - int npixels, unsigned long planes)); -/* XImage */ - FUNC(XCreateImage, XImage *, (Display *, Visual *, int depth, int format, - int x, int y, int width, int height, - int pad, int foo)); - -/* free and destroy bitmap */ - FUNC(XDestroyImage, void /* ? */ , (XImage *)); -/* free only, bitmap remains */ - FUNC(XImageFree, void, (XImage *)); -#if defined(__cplusplus) || defined(c_plusplus) -} /* end of extern "C" */ -#endif /* cplusplus */ - -#define ZPixmap 1 /* not really used */ - -#ifndef True -#define True 1 -#define False 0 -#endif - -/* -#ifndef Bool -typedef BOOL Bool; -#endif -*/ - -/* make these local here, simx.c gets the same from xpm.h */ -#undef LFUNC -#undef FUNC - -#endif /* def FOR_MSW */ - -#endif /* _SIMX_H */ diff --git a/src/xpm/wrffrdat.c b/src/xpm/wrffrdat.c deleted file mode 100644 index 6fe3734195..0000000000 --- a/src/xpm/wrffrdat.c +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmWrFFrData.c: * -* * -* XPM library * -* Parse an Xpm array and write a file that corresponds to it. * -* * -* Developed by Dan Greening dgreen@cs.ucla.edu / dgreen@sti.com * -\*****************************************************************************/ - -#include "xpm34.h" -#include "xpm34p.h" - -int -XpmWriteFileFromData(char *filename, char **data) -{ - XpmImage image; - XpmInfo info; - int ErrorStatus; - - info.valuemask = XpmReturnComments | XpmReturnExtensions; - - ErrorStatus = XpmCreateXpmImageFromData(data, &image, &info); - - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - ErrorStatus = XpmWriteFileFromXpmImage(filename, &image, &info); - - XpmFreeXpmImage(&image); - XpmFreeXpmInfo(&info); - - return (ErrorStatus); -} diff --git a/src/xpm/wrffri.c b/src/xpm/wrffri.c deleted file mode 100644 index 29dc4096dd..0000000000 --- a/src/xpm/wrffri.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* XpmWrFFrI.c: * -* * -* XPM library * -* Write an image and possibly its mask to an XPM file * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" -#ifdef FOR_MSW -#include "ctype.h" -#endif - -#include - -LFUNC(WriteColors, void, (FILE *file, XpmColor *colors, unsigned int ncolors)); - -LFUNC(WritePixels, int, (FILE *file, unsigned int width, unsigned int height, - unsigned int cpp, unsigned int *pixels, - XpmColor *colors)); - -LFUNC(WriteExtensions, void, (FILE *file, XpmExtension *ext, - unsigned int num)); - -int -XpmWriteFileFromImage(Display *display, char *filename, XImage *image, XImage *shapeimage, XpmAttributes *attributes) -{ - XpmImage xpmimage; - XpmInfo info; - int ErrorStatus; - - /* create an XpmImage from the image */ - ErrorStatus = XpmCreateXpmImageFromImage(display, image, shapeimage, - &xpmimage, attributes); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* write the file from the XpmImage */ - if (attributes) { - xpmSetInfo(&info, attributes); - ErrorStatus = XpmWriteFileFromXpmImage(filename, &xpmimage, &info); - } else - ErrorStatus = XpmWriteFileFromXpmImage(filename, &xpmimage, NULL); - - /* free the XpmImage */ - XpmFreeXpmImage(&xpmimage); - - return (ErrorStatus); -} - -int -XpmWriteFileFromXpmImage(char *filename, XpmImage *image, XpmInfo *info) -{ - xpmData mdata; - char *name, *dot, *s, new_name[BUFSIZ]; - int ErrorStatus; - int len, i; - - /* open file to write */ - if ((ErrorStatus = xpmWriteFile(filename, &mdata)) != XpmSuccess) - return (ErrorStatus); - - /* figure out a name */ - if (filename) { -#ifdef VMS - name = filename; -#else -#ifdef FOR_MSW - if (!(name = strchr(filename, '\\'))) -#else - if (!(name = strchr(filename, '/'))) -#endif - name = filename; - else - name++; -#endif - if (dot = strchr(name, '.')) { - strcpy(new_name, name); -#ifdef FOR_MSW - // Convert to lower case - len = strlen(new_name); - for (i = 0; i < len; i++) - new_name[i] = tolower(new_name[i]); -#endif - /* change '.' to '_' to get a valid C syntax name */ - name = s = new_name; - while (dot = strchr(s, '.')) { - *dot = '_'; - s = dot; - } - } - } else - name = "image_name"; - - /* write the XpmData from the XpmImage */ - if (ErrorStatus == XpmSuccess) - ErrorStatus = xpmWriteData(&mdata, image, name, info); - - xpmDataClose(&mdata); - - return (ErrorStatus); -} - -int -xpmWriteData(xpmData *mdata, XpmImage *image, char *name, XpmInfo *info) -{ - /* calculation variables */ - unsigned int cmts, extensions; - FILE *file; - int ErrorStatus; - - /* store this to speed up */ - file = mdata->stream.file; - - cmts = info && (info->valuemask & XpmComments); - extensions = info && (info->valuemask & XpmExtensions) - && info->nextensions; - - /* print the header line */ - fprintf(file, "/* XPM */\nstatic char * %s[] = {\n", name); - - /* print the hints line */ - if (cmts && info->hints_cmt) - fprintf(file, "/*%s*/\n", info->hints_cmt); - - fprintf(file, "\"%d %d %d %d", image->width, image->height, - image->ncolors, image->cpp); - - if (info && (info->valuemask & XpmHotspot)) - fprintf(file, " %d %d", info->x_hotspot, info->y_hotspot); - - if (extensions) - fprintf(file, " XPMEXT"); - - fprintf(file, "\",\n"); - - /* print colors */ - if (cmts && info->colors_cmt) - fprintf(file, "/*%s*/\n", info->colors_cmt); - - WriteColors(file, image->colorTable, image->ncolors); - - /* print pixels */ - if (cmts && info->pixels_cmt) - fprintf(file, "/*%s*/\n", info->pixels_cmt); - - ErrorStatus = WritePixels(file, image->width, image->height, image->cpp, - image->data, image->colorTable); - if (ErrorStatus != XpmSuccess) - return (ErrorStatus); - - /* print extensions */ - if (extensions) - WriteExtensions(file, info->extensions, info->nextensions); - - /* close the array */ - fprintf(file, "};\n"); - - return (XpmSuccess); -} - -static void -WriteColors(FILE *file, XpmColor *colors, unsigned int ncolors) -{ - unsigned int a, key; - char *s; - char **defaults; - - for (a = 0; a < ncolors; a++, colors++) { - - defaults = (char **) colors; - fprintf(file, "\"%s", *defaults++); - - for (key = 1; key <= NKEYS; key++, defaults++) { - if (s = *defaults) - fprintf(file, "\t%s %s", xpmColorKeys[key - 1], s); - } - fprintf(file, "\",\n"); - } -} - - -static int -WritePixels(FILE *file, unsigned int width, unsigned int height, unsigned int cpp, unsigned int *pixels, XpmColor *colors) -{ - char *s, *p, *buf; - unsigned int x, y, h; - - h = height - 1; - p = buf = (char *) XpmMalloc(width * cpp + 3); - if (!buf) - return (XpmNoMemory); - *buf = '"'; - p++; - for (y = 0; y < h; y++) { - s = p; - for (x = 0; x < width; x++, pixels++) { - strncpy(s, colors[*pixels].string, cpp); - s += cpp; - } - *s++ = '"'; - *s = '\0'; - fprintf(file, "%s,\n", buf); - } - /* duplicate some code to avoid a test in the loop */ - s = p; - for (x = 0; x < width; x++, pixels++) { - strncpy(s, colors[*pixels].string, cpp); - s += cpp; - } - *s++ = '"'; - *s = '\0'; - fprintf(file, "%s", buf); - - XpmFree(buf); - return (XpmSuccess); -} - -static void -WriteExtensions(FILE *file, XpmExtension *ext, unsigned int num) -{ - unsigned int x, y, n; - char **line; - - for (x = 0; x < num; x++, ext++) { - fprintf(file, ",\n\"XPMEXT %s\"", ext->name); - n = ext->nlines; - for (y = 0, line = ext->lines; y < n; y++, line++) - fprintf(file, ",\n\"%s\"", *line); - } - fprintf(file, ",\n\"XPMENDEXT\""); -} diff --git a/src/xpm/wrffrp.c b/src/xpm/wrffrp.c deleted file mode 100644 index 3e2e6ca5a5..0000000000 --- a/src/xpm/wrffrp.c +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -#include "xpm34.h" - -#ifndef FOR_MSW - -/*****************************************************************************\ -* XpmWrFFrP.c: * -* * -* XPM library * -* Write a pixmap and possibly its mask to an XPM file * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -#include "xpm34p.h" -#ifdef VMS -#include "sys$library:string.h" -#else -#if defined(SYSV) || defined(SVR4) -#include -#else -#include -#endif -#endif - -int -XpmWriteFileFromPixmap(Display *display, char *filename, Pixmap pixmap, Pixmap shapemask, XpmAttributes *attributes) -{ - XImage *ximage = NULL; - XImage *shapeimage = NULL; - unsigned int width = 0; - unsigned int height = 0; - int ErrorStatus; - - /* get geometry */ - if (attributes && attributes->valuemask & XpmSize) { - width = attributes->width; - height = attributes->height; - } - /* get the ximages */ - if (pixmap) - xpmCreateImageFromPixmap(display, pixmap, &ximage, &width, &height); - if (shapemask) - xpmCreateImageFromPixmap(display, shapemask, &shapeimage, - &width, &height); - - /* write to the file */ - ErrorStatus = XpmWriteFileFromImage(display, filename, ximage, shapeimage, - attributes); - - /* destroy the ximages */ - if (ximage) - XDestroyImage(ximage); - if (shapeimage) - XDestroyImage(shapeimage); - - return (ErrorStatus); -} -#endif diff --git a/src/xpm/xpm34.h b/src/xpm/xpm34.h deleted file mode 100644 index 1f7c046197..0000000000 --- a/src/xpm/xpm34.h +++ /dev/null @@ -1,555 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* xpm.h: * -* * -* XPM library * -* Include file * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -#ifndef XPM_h -#define XPM_h - -#if (defined(_WINDOWS) || defined(__WXMSW__) || defined(WIN32)) && !defined(FOR_MSW) -#define FOR_MSW -#endif - -/* - * first some identification numbers: - * the following revision numbers is determined with the following rule: - * SO Major number = LIB minor version number. - * SO Minor number = LIB sub-minor version number. - * e.g: Xpm version 3.2f - * we forget the 3 which is the format number, 2 gives 2, and f gives 6. - * thus we have XpmVersion = 2 and XpmRevision = 6 - * which gives SOXPMLIBREV = 2.6 - * - * Then the XpmIncludeVersion number is built with the following rule: - * (XpmFormat*100 + XpmVersion)*100 + XpmRevision - */ -#define XpmFormat 3 -#define XpmVersion 4 -#define XpmRevision 2 - -#define XpmIncludeVersion 30402 - -#ifndef XPM_NUMBERS - -#ifdef VMS -#include "decw$include:Xlib.h" -#include "decw$include:Xutil.h" -#else /* VMS */ -#ifdef FOR_MSW -#define SYSV /* uses memcpy string.h etc. */ -#include -#include "simx.h" /* defines some X stuff using MSW types */ -#ifndef __GNUWIN32__ -#define NEED_STRCASECMP /* at least for MSVC++ */ -#endif -#else /* FOR_MSW */ -#include -#include -#include /* HEDU */ -#endif /* FOR_MSW */ -#endif /* VMS */ - -/* let's define Pixel if it is not done yet */ -#if ! defined(_XtIntrinsic_h) && ! defined(PIXEL_ALREADY_TYPEDEFED) -typedef unsigned long Pixel; /* Index into colormap */ -#define PIXEL_ALREADY_TYPEDEFED -#endif - -/* Return ErrorStatus codes: - * null if full success - * positive if partial success - * negative if failure - */ - -#define XpmColorError 1 -#define XpmSuccess 0 -#define XpmOpenFailed -1 -#define XpmFileInvalid -2 -#define XpmNoMemory -3 -#define XpmColorFailed -4 - -/* the following should help people wanting to use their own functions */ -#define XpmFree(ptr) free(ptr) - -typedef struct { - char *name; /* Symbolic color name */ - char *value; /* Color value */ - Pixel pixel; /* Color pixel */ -} XpmColorSymbol; - -typedef struct { - char *name; /* name of the extension */ - unsigned int nlines; /* number of lines in this extension */ - char **lines; /* pointer to the extension array of strings */ -} XpmExtension; - -typedef struct { - char *string; /* characters string */ - char *symbolic; /* symbolic name */ - char *m_color; /* monochrom default */ - char *g4_color; /* 4 level grayscale default */ - char *g_color; /* other level grayscale default */ - char *c_color; /* color default */ -} XpmColor; - -typedef struct { - unsigned int width; /* image width */ - unsigned int height; /* image height */ - unsigned int cpp; /* number of characters per pixel */ - unsigned int ncolors; /* number of colors */ - XpmColor *colorTable; /* list of related colors */ - unsigned int *data; /* image data */ -} XpmImage; - -typedef struct { - unsigned long valuemask; /* Specifies which attributes are defined */ - char *hints_cmt; /* Comment of the hints section */ - char *colors_cmt; /* Comment of the colors section */ - char *pixels_cmt; /* Comment of the pixels section */ - unsigned int x_hotspot; /* Returns the x hotspot's coordinate */ - unsigned int y_hotspot; /* Returns the y hotspot's coordinate */ - unsigned int nextensions; /* number of extensions */ - XpmExtension *extensions; /* pointer to array of extensions */ -} XpmInfo; - -typedef struct { - unsigned long valuemask; /* Specifies which attributes are - * defined */ - - Visual *visual; /* Specifies the visual to use */ - Colormap colormap; /* Specifies the colormap to use */ - unsigned int depth; /* Specifies the depth */ - unsigned int width; /* Returns the width of the created - * pixmap */ - unsigned int height; /* Returns the height of the created - * pixmap */ - unsigned int x_hotspot; /* Returns the x hotspot's - * coordinate */ - unsigned int y_hotspot; /* Returns the y hotspot's - * coordinate */ - unsigned int cpp; /* Specifies the number of char per - * pixel */ - Pixel *pixels; /* List of used color pixels */ - unsigned int npixels; /* Number of pixels */ - XpmColorSymbol *colorsymbols; /* Array of color symbols to - * override */ - unsigned int numsymbols; /* Number of symbols */ - char *rgb_fname; /* RGB text file name */ - unsigned int nextensions; /* number of extensions */ - XpmExtension *extensions; /* pointer to array of extensions */ - - unsigned int ncolors; /* Number of colors */ - XpmColor *colorTable; /* Color table pointer */ -/* 3.2 backward compatibility code */ - char *hints_cmt; /* Comment of the hints section */ - char *colors_cmt; /* Comment of the colors section */ - char *pixels_cmt; /* Comment of the pixels section */ -/* end 3.2 bc */ - unsigned int mask_pixel; /* Transparent pixel's color table - * index */ - - /* Color Allocation Directives */ - unsigned int exactColors; /* Only use exact colors for visual */ - unsigned int closeness; /* Allowable RGB deviation */ - unsigned int red_closeness; /* Allowable red deviation */ - unsigned int green_closeness; /* Allowable green deviation */ - unsigned int blue_closeness; /* Allowable blue deviation */ - int color_key; /* Use colors from this color set */ - -} XpmAttributes; - -/* XpmAttributes value masks bits */ -#define XpmVisual (1L<<0) -#define XpmColormap (1L<<1) -#define XpmDepth (1L<<2) -#define XpmSize (1L<<3) /* width & height */ -#define XpmHotspot (1L<<4) /* x_hotspot & y_hotspot */ -#define XpmCharsPerPixel (1L<<5) -#define XpmColorSymbols (1L<<6) -#define XpmRgbFilename (1L<<7) -/* 3.2 backward compatibility code */ -#define XpmInfos (1L<<8) -#define XpmReturnInfos XpmInfos -/* end 3.2 bc */ -#define XpmReturnPixels (1L<<9) -#define XpmExtensions (1L<<10) -#define XpmReturnExtensions XpmExtensions - -#define XpmExactColors (1L<<11) -#define XpmCloseness (1L<<12) -#define XpmRGBCloseness (1L<<13) -#define XpmColorKey (1L<<14) - -#define XpmColorTable (1L<<15) -#define XpmReturnColorTable XpmColorTable - -/* XpmInfo value masks bits */ -#define XpmComments XpmInfos -#define XpmReturnComments XpmComments - -/* XpmAttributes mask_pixel value when there is no mask */ -#ifndef FOR_MSW -#define XpmUndefPixel 0x80000000 -#else -/* int is only 16 bit for MSW */ -#define XpmUndefPixel 0x8000 -#endif - -/* - * color keys for visual type, they must fit along with the number key of - * each related element in xpmColorKeys[] defined in xpmP.h - */ -#define XPM_MONO 2 -#define XPM_GREY4 3 -#define XPM_GRAY4 3 -#define XPM_GREY 4 -#define XPM_GRAY 4 -#define XPM_COLOR 5 - - -/* - * minimal portability layer between ansi and KR C - */ - -/* forward declaration of functions with prototypes */ - -#if __STDC__ || defined(__cplusplus) || defined(c_plusplus) - /* ANSI || C++ */ -#define FUNC(f, t, p) extern t f p -#define LFUNC(f, t, p) static t f p -/* #define LFUNC(f, t, p) t f p */ -#else /* K&R */ -#define FUNC(f, t, p) extern t f() -#define LFUNC(f, t, p) static t f() -/* #define LFUNC(f, t, p) t f() */ -#endif /* end of K&R */ - - -/* - * functions declarations - */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* For Microsoft C++ at any rate, the FUNC macro just doesn't work: it causes - * arguments to be corrupted espec. in XpmWriteFileFromXpmImage. - * So, define all prototypes explicitly. - */ -#ifdef _MSC_VER - -/* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */ - - int XpmCreateImageFromData(Display *display, - char **data, - XImage **image_return, - XImage **shapemask_return, - XpmAttributes *attributes); - - int XpmCreateDataFromImage(Display *display, - char ***data_return, - XImage *image, - XImage *shapeimage, - XpmAttributes *attributes); - - int XpmReadFileToImage(Display *display, - char *filename, - XImage **image_return, - XImage **shapeimage_return, - XpmAttributes *attributes); - - int XpmWriteFileFromImage(Display *display, - char *filename, - XImage *image, - XImage *shapeimage, - XpmAttributes *attributes); - - int XpmCreateImageFromBuffer(Display *display, - char *buffer, - XImage **image_return, - XImage **shapemask_return, - XpmAttributes *attributes); - - int XpmReadFileToBuffer(char *filename, char **buffer_return); - int XpmWriteFileFromBuffer(char *filename, char *buffer); - - int XpmReadFileToData(char *filename, char ***data_return); - int XpmWriteFileFromData(char *filename, char **data); - - int XpmAttributesSize(); - void XpmFreeAttributes(XpmAttributes *attributes); - void XpmFreeExtensions(XpmExtension *extensions, - int nextensions); - - void XpmFreeXpmImage(XpmImage *image); - void XpmFreeXpmInfo(XpmInfo *info); - char *XpmGetErrorString(int errcode); - int XpmLibraryVersion(); - - /* XpmImage functions */ - int XpmReadFileToXpmImage(char *filename, - XpmImage *image, - XpmInfo *info); - - int XpmWriteFileFromXpmImage(char *filename, - XpmImage *image, - XpmInfo *info); - - int XpmWriteFileFromXpmImage(char *filename, XpmImage *image, XpmInfo *info); - - int XpmCreateImageFromXpmImage(Display *display, - XpmImage *image, - XImage **image_return, - XImage **shapeimage_return, - XpmAttributes *attributes); - - int XpmCreateXpmImageFromImage(Display *display, - XImage *image, - XImage *shapeimage, - XpmImage *xpmimage, - XpmAttributes *attributes); - int XpmCreateDataFromXpmImage(char ***data_return, - XpmImage *image, - XpmInfo *info); - - int XpmCreateXpmImageFromData(char **data, - XpmImage *image, - XpmInfo *info); - - int XpmCreateXpmImageFromBuffer(char *buffer, - XpmImage *image, - XpmInfo *info); - - int XpmCreateBufferFromXpmImage(char **buffer_return, - XpmImage *image, - XpmInfo *info); - -#else // _MSC_VER - -/* FOR_MSW, all ..Pixmap.. are excluded, only the ..XImage.. are used */ - -#ifndef FOR_MSW - FUNC(XpmCreatePixmapFromData, int, (Display *display, - Drawable d, - char **data, - Pixmap *pixmap_return, - Pixmap *shapemask_return, - XpmAttributes *attributes)); - - FUNC(XpmCreateDataFromPixmap, int, (Display *display, - char ***data_return, - Pixmap pixmap, - Pixmap shapemask, - XpmAttributes *attributes)); - - FUNC(XpmReadFileToPixmap, int, (Display *display, - Drawable d, - char *filename, - Pixmap *pixmap_return, - Pixmap *shapemask_return, - XpmAttributes *attributes)); - - FUNC(XpmWriteFileFromPixmap, int, (Display *display, - char *filename, - Pixmap pixmap, - Pixmap shapemask, - XpmAttributes *attributes)); -#endif /* ndef FOR_MSW */ - - FUNC(XpmCreateImageFromData, int, (Display *display, - char **data, - XImage **image_return, - XImage **shapemask_return, - XpmAttributes *attributes)); - - FUNC(XpmCreateDataFromImage, int, (Display *display, - char ***data_return, - XImage *image, - XImage *shapeimage, - XpmAttributes *attributes)); - - FUNC(XpmReadFileToImage, int, (Display *display, - char *filename, - XImage **image_return, - XImage **shapeimage_return, - XpmAttributes *attributes)); - - FUNC(XpmWriteFileFromImage, int, (Display *display, - char *filename, - XImage *image, - XImage *shapeimage, - XpmAttributes *attributes)); - - FUNC(XpmCreateImageFromBuffer, int, (Display *display, - char *buffer, - XImage **image_return, - XImage **shapemask_return, - XpmAttributes *attributes)); -#ifndef FOR_MSW - FUNC(XpmCreatePixmapFromBuffer, int, (Display *display, - Drawable d, - char *buffer, - Pixmap *pixmap_return, - Pixmap *shapemask_return, - XpmAttributes *attributes)); - - FUNC(XpmCreateBufferFromImage, int, (Display *display, - char **buffer_return, - XImage *image, - XImage *shapeimage, - XpmAttributes *attributes)); - - FUNC(XpmCreateBufferFromPixmap, int, (Display *display, - char **buffer_return, - Pixmap pixmap, - Pixmap shapemask, - XpmAttributes *attributes)); -#endif /* ndef FOR_MSW */ - FUNC(XpmReadFileToBuffer, int, (char *filename, char **buffer_return)); - FUNC(XpmWriteFileFromBuffer, int, (char *filename, char *buffer)); - - FUNC(XpmReadFileToData, int, (char *filename, char ***data_return)); - FUNC(XpmWriteFileFromData, int, (char *filename, char **data)); - - FUNC(XpmAttributesSize, int, ()); - FUNC(XpmFreeAttributes, void, (XpmAttributes *attributes)); - FUNC(XpmFreeExtensions, void, (XpmExtension *extensions, - int nextensions)); - - FUNC(XpmFreeXpmImage, void, (XpmImage *image)); - FUNC(XpmFreeXpmInfo, void, (XpmInfo *info)); - FUNC(XpmGetErrorString, char *, (int errcode)); - FUNC(XpmLibraryVersion, int, ()); - - /* XpmImage functions */ - FUNC(XpmReadFileToXpmImage, int, (char *filename, - XpmImage *image, - XpmInfo *info)); - - FUNC(XpmWriteFileFromXpmImage, int, (char *filename, - XpmImage *image, - XpmInfo *info)); - - FUNC(XpmWriteFileFromXpmImage, int, (char *filename, XpmImage *image, XpmInfo *info)); -/* extern int XpmWriteFileFromXpmImage(char *filename, XpmImage *image, XpmInfo *info); */ - -#ifndef FOR_MSW - FUNC(XpmCreatePixmapFromXpmImage, int, (Display *display, - Drawable d, - XpmImage *image, - Pixmap *pixmap_return, - Pixmap *shapemask_return, - XpmAttributes *attributes)); -#endif - FUNC(XpmCreateImageFromXpmImage, int, (Display *display, - XpmImage *image, - XImage **image_return, - XImage **shapeimage_return, - XpmAttributes *attributes)); - - FUNC(XpmCreateXpmImageFromImage, int, (Display *display, - XImage *image, - XImage *shapeimage, - XpmImage *xpmimage, - XpmAttributes *attributes)); -#ifndef FOR_MSW - FUNC(XpmCreateXpmImageFromPixmap, int, (Display *display, - Pixmap pixmap, - Pixmap shapemask, - XpmImage *xpmimage, - XpmAttributes *attributes)); -#endif - FUNC(XpmCreateDataFromXpmImage, int, (char ***data_return, - XpmImage *image, - XpmInfo *info)); - - FUNC(XpmCreateXpmImageFromData, int, (char **data, - XpmImage *image, - XpmInfo *info)); - - FUNC(XpmCreateXpmImageFromBuffer, int, (char *buffer, - XpmImage *image, - XpmInfo *info)); - - FUNC(XpmCreateBufferFromXpmImage, int, (char **buffer_return, - XpmImage *image, - XpmInfo *info)); - -#endif // _MSC_VER - -#ifdef __cplusplus -} /* for C++ V2.0 */ -#endif - - -/* backward compatibility */ - -/* for version 3.0c */ -#define XpmPixmapColorError XpmColorError -#define XpmPixmapSuccess XpmSuccess -#define XpmPixmapOpenFailed XpmOpenFailed -#define XpmPixmapFileInvalid XpmFileInvalid -#define XpmPixmapNoMemory XpmNoMemory -#define XpmPixmapColorFailed XpmColorFailed - -#define XpmReadPixmapFile(dpy, d, file, pix, mask, att) \ - XpmReadFileToPixmap(dpy, d, file, pix, mask, att) -#define XpmWritePixmapFile(dpy, file, pix, mask, att) \ - XpmWriteFileFromPixmap(dpy, file, pix, mask, att) - -/* for version 3.0b */ -#define PixmapColorError XpmColorError -#define PixmapSuccess XpmSuccess -#define PixmapOpenFailed XpmOpenFailed -#define PixmapFileInvalid XpmFileInvalid -#define PixmapNoMemory XpmNoMemory -#define PixmapColorFailed XpmColorFailed - -#define ColorSymbol XpmColorSymbol - -#define XReadPixmapFile(dpy, d, file, pix, mask, att) \ - XpmReadFileToPixmap(dpy, d, file, pix, mask, att) -#define XWritePixmapFile(dpy, file, pix, mask, att) \ - XpmWriteFileFromPixmap(dpy, file, pix, mask, att) -#define XCreatePixmapFromData(dpy, d, data, pix, mask, att) \ - XpmCreatePixmapFromData(dpy, d, data, pix, mask, att) -#define XCreateDataFromPixmap(dpy, data, pix, mask, att) \ - XpmCreateDataFromPixmap(dpy, data, pix, mask, att) - -#endif /* XPM_NUMBERS */ -#endif diff --git a/src/xpm/xpm34p.h b/src/xpm/xpm34p.h deleted file mode 100644 index 31a7008484..0000000000 --- a/src/xpm/xpm34p.h +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright (C) 1989-94 GROUPE BULL - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * GROUPE BULL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * - * Except as contained in this notice, the name of GROUPE BULL shall not be - * used in advertising or otherwise to promote the sale, use or other dealings - * in this Software without prior written authorization from GROUPE BULL. - */ - -/*****************************************************************************\ -* xpmP.h: * -* * -* XPM library * -* Private Include file * -* * -* Developed by Arnaud Le Hors * -\*****************************************************************************/ - -/* - * The code related to FOR_MSW has been added by - * HeDu (hedu@cul-ipn.uni-kiel.de) 4/94 - */ - -#ifndef XPMP_h -#define XPMP_h - -#include "xpm34.h" - -/* - * lets try to solve include files - */ -#ifdef VMS - -#include "sys$library:stdio.h" -#include "sys$library:string.h" - -#else /* VMS */ - -#include -/* stdio.h doesn't declare popen on a Sequent DYNIX OS */ -#ifdef sequent -extern FILE *popen(); -#endif - -#if defined(SYSV) || defined(SVR4) -#include - -#ifndef index -#define index strchr -#endif - -#ifndef rindex -#define rindex strrchr -#endif - -#else /* defined(SYSV) || defined(SVR4) */ -#include -#endif - -#endif /* VMS */ - - -#if (defined(SYSV) || defined(SVR4) || defined(VMS)) && !defined(__sgi) -#define bcopy(source, dest, count) memcpy(dest, source, count) -#define bzero(b, len) memset(b, 0, len) -#endif - - -/* the following should help people wanting to use their own functions */ -#ifndef FOR_MSW -#define XpmMalloc(size) malloc((size)) -#define XpmRealloc(ptr, size) realloc((ptr), (size)) -#define XpmCalloc(nelem, elsize) calloc((nelem), (elsize)) -#else -/* checks for mallocs bigger than 64K */ -#define XpmMalloc(size) boundCheckingMalloc((long)(size))/* in simx.[ch] */ -#define XpmRealloc(ptr, size) boundCheckingRealloc((ptr),(long)(size)) -#define XpmCalloc(nelem, elsize) \ - boundCheckingCalloc((long)(nelem),(long) (elsize)) -#endif - - -typedef struct { - unsigned int type; - union { - FILE *file; - char **data; - } stream; - char *cptr; - unsigned int line; - int CommentLength; - char Comment[BUFSIZ]; - char *Bcmt, *Ecmt, Bos, Eos; - int format; /* 1 if XPM1, 0 otherwise */ -} xpmData; - -#define XPMARRAY 0 -#define XPMFILE 1 -#define XPMPIPE 2 -#define XPMBUFFER 3 - -#define EOL '\n' -#define TAB '\t' -#define SPC ' ' - -typedef struct { - char *type; /* key word */ - char *Bcmt; /* string beginning comments */ - char *Ecmt; /* string ending comments */ - char Bos; /* character beginning strings */ - char Eos; /* character ending strings */ - char *Strs; /* strings separator */ - char *Dec; /* data declaration string */ - char *Boa; /* string beginning assignment */ - char *Eoa; /* string ending assignment */ -} xpmDataType; - -extern xpmDataType xpmDataTypes[]; - -/* - * rgb values and ascii names (from rgb text file) rgb values, - * range of 0 -> 65535 color mnemonic of rgb value - */ -typedef struct { - int r, g, b; - char *name; -} xpmRgbName; - -/* Maximum number of rgb mnemonics allowed in rgb text file. */ -#define MAX_RGBNAMES 1024 - -extern char *xpmColorKeys[]; - -#define TRANSPARENT_COLOR "None" /* this must be a string! */ - -/* number of xpmColorKeys */ -#define NKEYS 5 - -/* XPM private routines */ - -FUNC(xpmWriteData, int, (xpmData *mdata, XpmImage *image, char *name, - XpmInfo *info)); - -FUNC(xpmParseData, int, (xpmData *data, XpmImage *image, XpmInfo *info)); - -FUNC(xpmFreeColorTable, void, (XpmColor *colorTable, int ncolors)); - -FUNC(xpmInitAttributes, void, (XpmAttributes *attributes)); - -FUNC(xpmInitXpmImage, void, (XpmImage *image)); - -FUNC(xpmInitXpmInfo, void, (XpmInfo *info)); - -FUNC(xpmSetInfoMask, void, (XpmInfo *info, XpmAttributes *attributes)); -FUNC(xpmSetInfo, void, (XpmInfo *info, XpmAttributes *attributes)); -FUNC(xpmSetAttributes, void, (XpmAttributes *attributes, XpmImage *image, - XpmInfo *info)); - -#ifndef FOR_MSW -FUNC(xpmCreatePixmapFromImage, void, (Display *display, Drawable d, - XImage *ximage, Pixmap *pixmap_return)); - -FUNC(xpmCreateImageFromPixmap, void, (Display *display, Pixmap pixmap, - XImage **ximage_return, - unsigned int *width, - unsigned int *height)); -#endif - -/* I/O utility */ - -FUNC(xpmNextString, int, (xpmData *mdata)); -FUNC(xpmNextUI, int, (xpmData *mdata, unsigned int *ui_return)); -FUNC(xpmGetString, int, (xpmData *mdata, char **sptr, unsigned int *l)); - -#define xpmGetC(mdata) \ - ((!mdata->type || mdata->type == XPMBUFFER) ? \ - (*mdata->cptr++) : (getc(mdata->stream.file))) - -FUNC(xpmNextWord, unsigned int, - (xpmData *mdata, char *buf, unsigned int buflen)); -FUNC(xpmGetCmt, int, (xpmData *mdata, char **cmt)); -FUNC(xpmReadFile, int, (char *filename, xpmData *mdata)); -FUNC(xpmWriteFile, int, (char *filename, xpmData *mdata)); -FUNC(xpmOpenArray, void, (char **data, xpmData *mdata)); -FUNC(xpmDataClose, int, (xpmData *mdata)); -FUNC(xpmParseHeader, int, (xpmData *mdata)); -FUNC(xpmOpenBuffer, void, (char *buffer, xpmData *mdata)); - -/* RGB utility */ - -FUNC(xpmReadRgbNames, int, (char *rgb_fname, xpmRgbName *rgbn)); -FUNC(xpmGetRgbName, char *, (xpmRgbName *rgbn, int rgbn_max, - int red, int green, int blue)); -FUNC(xpmFreeRgbNames, void, (xpmRgbName *rgbn, int rgbn_max)); -#ifdef FOR_MSW -FUNC(xpmGetRGBfromName,int, (char *name, int *r, int *g, int *b)); -#endif - -FUNC(xpm_xynormalizeimagebits, void, (register unsigned char *bp, - register XImage *img)); -FUNC(xpm_znormalizeimagebits, void, (register unsigned char *bp, - register XImage *img)); - -/* - * Macros - * - * The XYNORMALIZE macro determines whether XY format data requires - * normalization and calls a routine to do so if needed. The logic in - * this module is designed for LSBFirst byte and bit order, so - * normalization is done as required to present the data in this order. - * - * The ZNORMALIZE macro performs byte and nibble order normalization if - * required for Z format data. - * - * The XYINDEX macro computes the index to the starting byte (char) boundary - * for a bitmap_unit containing a pixel with coordinates x and y for image - * data in XY format. - * - * The ZINDEX* macros compute the index to the starting byte (char) boundary - * for a pixel with coordinates x and y for image data in ZPixmap format. - * - */ - -#define XYNORMALIZE(bp, img) \ - if ((img->byte_order == MSBFirst) || (img->bitmap_bit_order == MSBFirst)) \ - xpm_xynormalizeimagebits((unsigned char *)(bp), img) - -#define ZNORMALIZE(bp, img) \ - if (img->byte_order == MSBFirst) \ - xpm_znormalizeimagebits((unsigned char *)(bp), img) - -#define XYINDEX(x, y, img) \ - ((y) * img->bytes_per_line) + \ - (((x) + img->xoffset) / img->bitmap_unit) * (img->bitmap_unit >> 3) - -#define ZINDEX(x, y, img) ((y) * img->bytes_per_line) + \ - (((x) * img->bits_per_pixel) >> 3) - -#define ZINDEX32(x, y, img) ((y) * img->bytes_per_line) + ((x) << 2) - -#define ZINDEX16(x, y, img) ((y) * img->bytes_per_line) + ((x) << 1) - -#define ZINDEX8(x, y, img) ((y) * img->bytes_per_line) + (x) - -#define ZINDEX1(x, y, img) ((y) * img->bytes_per_line) + ((x) >> 3) - -#if __STDC__ -#define Const const -#else -#define Const /**/ -#endif - -/* - * there are structures and functions related to hastable code - */ - -typedef struct _xpmHashAtom { - char *name; - void *data; -} *xpmHashAtom; - -typedef struct { - int size; - int limit; - int used; - xpmHashAtom *atomTable; -} xpmHashTable; - -FUNC(xpmHashTableInit, int, (xpmHashTable *table)); -FUNC(xpmHashTableFree, void, (xpmHashTable *table)); -FUNC(xpmHashSlot, xpmHashAtom *, (xpmHashTable *table, char *s)); -FUNC(xpmHashIntern, int, (xpmHashTable *table, char *tag, void *data)); - -#define HashAtomData(i) ((void *)i) -#define HashColorIndex(slot) ((unsigned int)((*slot)->data)) -#define USE_HASHTABLE (cpp > 2 && ncolors > 4) - -#ifdef NEED_STRDUP -FUNC(strdup, char *, (char *s1)); -#endif - -#ifdef NEED_STRCASECMP -FUNC(strcasecmp, int, (char *s1, char *s2)); -#endif - -FUNC(atoui, unsigned int, (char *p, unsigned int l, unsigned int *ui_return)); - -#endif diff --git a/src/zlib/ChangeLog b/src/zlib/ChangeLog deleted file mode 100644 index ae49267ddc..0000000000 --- a/src/zlib/ChangeLog +++ /dev/null @@ -1,423 +0,0 @@ - - ChangeLog file for zlib - -Changes in 1.1.2 (19 March 98) -- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant) - See http://www.winimage.com/zLibDll/unzip.html -- preinitialize the inflate tables for fixed codes, to make the code - completely thread safe (Mark) -- some simplifications and slight speed-up to the inflate code (Mark) -- fix gzeof on non-compressed files (Allan Schrum) -- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs) -- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn) -- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny) -- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori) -- do not wrap extern "C" around system includes (Tom Lane) -- mention zlib binding for TCL in README (Andreas Kupries) -- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert) -- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson) -- allow "configure --prefix $HOME" (Tim Mooney) -- remove warnings in example.c and gzio.c (Glenn Randers-Pehrson) -- move Makefile.sas to amiga/Makefile.sas - -Changes in 1.1.1 (27 Feb 98) -- fix macros _tr_tally_* in deflate.h for debug mode (Glenn Randers-Pehrson) -- remove block truncation heuristic which had very marginal effect for zlib - (smaller lit_bufsize than in gzip 1.2.4) and degraded a little the - compression ratio on some files. This also allows inlining _tr_tally for - matches in deflate_slow. -- added msdos/Makefile.w32 for WIN32 Microsoft Visual C++ (Bob Frazier) - -Changes in 1.1.0 (24 Feb 98) -- do not return STREAM_END prematurely in inflate (John Bowler) -- revert to the zlib 1.0.8 inflate to avoid the gcc 2.8.0 bug (Jeremy Buhler) -- compile with -DFASTEST to get compression code optimized for speed only -- in minigzip, try mmap'ing the input file first (Miguel Albrecht) -- increase size of I/O buffers in minigzip.c and gzio.c (not a big gain - on Sun but significant on HP) - -- add a pointer to experimental unzip library in README (Gilles Vollant) -- initialize variable gcc in configure (Chris Herborth) - -Changes in 1.0.9 (17 Feb 1998) -- added gzputs and gzgets functions -- do not clear eof flag in gzseek (Mark Diekhans) -- fix gzseek for files in transparent mode (Mark Diekhans) -- do not assume that vsprintf returns the number of bytes written (Jens Krinke) -- replace EXPORT with ZEXPORT to avoid conflict with other programs -- added compress2 in zconf.h, zlib.def, zlib.dnt -- new asm code from Gilles Vollant in contrib/asm386 -- simplify the inflate code (Mark): - . Replace ZALLOC's in huft_build() with single ZALLOC in inflate_blocks_new() - . ZALLOC the length list in inflate_trees_fixed() instead of using stack - . ZALLOC the value area for huft_build() instead of using stack - . Simplify Z_FINISH check in inflate() - -- Avoid gcc 2.8.0 comparison bug a little differently than zlib 1.0.8 -- in inftrees.c, avoid cc -O bug on HP (Farshid Elahi) -- in zconf.h move the ZLIB_DLL stuff earlier to avoid problems with - the declaration of FAR (Gilles VOllant) -- install libz.so* with mode 755 (executable) instead of 644 (Marc Lehmann) -- read_buf buf parameter of type Bytef* instead of charf* -- zmemcpy parameters are of type Bytef*, not charf* (Joseph Strout) -- do not redeclare unlink in minigzip.c for WIN32 (John Bowler) -- fix check for presence of directories in "make install" (Ian Willis) - -Changes in 1.0.8 (27 Jan 1998) -- fixed offsets in contrib/asm386/gvmat32.asm (Gilles Vollant) -- fix gzgetc and gzputc for big endian systems (Markus Oberhumer) -- added compress2() to allow setting the compression level -- include sys/types.h to get off_t on some systems (Marc Lehmann & QingLong) -- use constant arrays for the static trees in trees.c instead of computing - them at run time (thanks to Ken Raeburn for this suggestion). To create - trees.h, compile with GEN_TREES_H and run "make test". -- check return code of example in "make test" and display result -- pass minigzip command line options to file_compress -- simplifying code of inflateSync to avoid gcc 2.8 bug - -- support CC="gcc -Wall" in configure -s (QingLong) -- avoid a flush caused by ftell in gzopen for write mode (Ken Raeburn) -- fix test for shared library support to avoid compiler warnings -- zlib.lib -> zlib.dll in msdos/zlib.rc (Gilles Vollant) -- check for TARGET_OS_MAC in addition to MACOS (Brad Pettit) -- do not use fdopen for Metrowerks on Mac (Brad Pettit)) -- add checks for gzputc and gzputc in example.c -- avoid warnings in gzio.c and deflate.c (Andreas Kleinert) -- use const for the CRC table (Ken Raeburn) -- fixed "make uninstall" for shared libraries -- use Tracev instead of Trace in infblock.c -- in example.c use correct compressed length for test_sync -- suppress +vnocompatwarnings in configure for HPUX (not always supported) - -Changes in 1.0.7 (20 Jan 1998) -- fix gzseek which was broken in write mode -- return error for gzseek to negative absolute position -- fix configure for Linux (Chun-Chung Chen) -- increase stack space for MSC (Tim Wegner) -- get_crc_table and inflateSyncPoint are EXPORTed (Gilles Vollant) -- define EXPORTVA for gzprintf (Gilles Vollant) -- added man page zlib.3 (Rick Rodgers) -- for contrib/untgz, fix makedir() and improve Makefile - -- check gzseek in write mode in example.c -- allocate extra buffer for seeks only if gzseek is actually called -- avoid signed/unsigned comparisons (Tim Wegner, Gilles Vollant) -- add inflateSyncPoint in zconf.h -- fix list of exported functions in nt/zlib.dnt and mdsos/zlib.def - -Changes in 1.0.6 (19 Jan 1998) -- add functions gzprintf, gzputc, gzgetc, gztell, gzeof, gzseek, gzrewind and - gzsetparams (thanks to Roland Giersig and Kevin Ruland for some of this code) -- Fix a deflate bug occuring only with compression level 0 (thanks to - Andy Buckler for finding this one). -- In minigzip, pass transparently also the first byte for .Z files. -- return Z_BUF_ERROR instead of Z_OK if output buffer full in uncompress() -- check Z_FINISH in inflate (thanks to Marc Schluper) -- Implement deflateCopy (thanks to Adam Costello) -- make static libraries by default in configure, add --shared option. -- move MSDOS or Windows specific files to directory msdos -- suppress the notion of partial flush to simplify the interface - (but the symbol Z_PARTIAL_FLUSH is kept for compatibility with 1.0.4) -- suppress history buffer provided by application to simplify the interface - (this feature was not implemented anyway in 1.0.4) -- next_in and avail_in must be initialized before calling inflateInit or - inflateInit2 -- add EXPORT in all exported functions (for Windows DLL) -- added Makefile.nt (thanks to Stephen Williams) -- added the unsupported "contrib" directory: - contrib/asm386/ by Gilles Vollant - 386 asm code replacing longest_match(). - contrib/iostream/ by Kevin Ruland - A C++ I/O streams interface to the zlib gz* functions - contrib/iostream2/ by Tyge Løvset - Another C++ I/O streams interface - contrib/untgz/ by "Pedro A. Aranda Guti\irrez" - A very simple tar.gz file extractor using zlib - contrib/visual-basic.txt by Carlos Rios - How to use compress(), uncompress() and the gz* functions from VB. -- pass params -f (filtered data), -h (huffman only), -1 to -9 (compression - level) in minigzip (thanks to Tom Lane) - -- use const for rommable constants in deflate -- added test for gzseek and gztell in example.c -- add undocumented function inflateSyncPoint() (hack for Paul Mackerras) -- add undocumented function zError to convert error code to string - (for Tim Smithers) -- Allow compilation of gzio with -DNO_DEFLATE to avoid the compression code. -- Use default memcpy for Symantec MSDOS compiler. -- Add EXPORT keyword for check_func (needed for Windows DLL) -- add current directory to LD_LIBRARY_PATH for "make test" -- create also a link for libz.so.1 -- added support for FUJITSU UXP/DS (thanks to Toshiaki Nomura) -- use $(SHAREDLIB) instead of libz.so in Makefile.in (for HPUX) -- added -soname for Linux in configure (Chun-Chung Chen, -- assign numbers to the exported functions in zlib.def (for Windows DLL) -- add advice in zlib.h for best usage of deflateSetDictionary -- work around compiler bug on Atari (cast Z_NULL in call of s->checkfn) -- allow compilation with ANSI keywords only enabled for TurboC in large model -- avoid "versionString"[0] (Borland bug) -- add NEED_DUMMY_RETURN for Borland -- use variable z_verbose for tracing in debug mode (L. Peter Deutsch). -- allow compilation with CC -- defined STDC for OS/2 (David Charlap) -- limit external names to 8 chars for MVS (Thomas Lund) -- in minigzip.c, use static buffers only for 16-bit systems -- fix suffix check for "minigzip -d foo.gz" -- do not return an error for the 2nd of two consecutive gzflush() (Felix Lee) -- use _fdopen instead of fdopen for MSC >= 6.0 (Thomas Fanslau) -- added makelcc.bat for lcc-win32 (Tom St Denis) -- in Makefile.dj2, use copy and del instead of install and rm (Frank Donahoe) -- Avoid expanded $Id$. Use "rcs -kb" or "cvs admin -kb" to avoid Id expansion. -- check for unistd.h in configure (for off_t) -- remove useless check parameter in inflate_blocks_free -- avoid useless assignment of s->check to itself in inflate_blocks_new -- do not flush twice in gzclose (thanks to Ken Raeburn) -- rename FOPEN as F_OPEN to avoid clash with /usr/include/sys/file.h -- use NO_ERRNO_H instead of enumeration of operating systems with errno.h -- work around buggy fclose on pipes for HP/UX -- support zlib DLL with BORLAND C++ 5.0 (thanks to Glenn Randers-Pehrson) -- fix configure if CC is already equal to gcc - -Changes in 1.0.5 (3 Jan 98) -- Fix inflate to terminate gracefully when fed corrupted or invalid data -- Use const for rommable constants in inflate -- Eliminate memory leaks on error conditions in inflate -- Removed some vestigial code in inflate -- Update web address in README - -Changes in 1.0.4 (24 Jul 96) -- In very rare conditions, deflate(s, Z_FINISH) could fail to produce an EOF - bit, so the decompressor could decompress all the correct data but went - on to attempt decompressing extra garbage data. This affected minigzip too. -- zlibVersion and gzerror return const char* (needed for DLL) -- port to RISCOS (no fdopen, no multiple dots, no unlink, no fileno) -- use z_error only for DEBUG (avoid problem with DLLs) - -Changes in 1.0.3 (2 Jul 96) -- use z_streamp instead of z_stream *, which is now a far pointer in MSDOS - small and medium models; this makes the library incompatible with previous - versions for these models. (No effect in large model or on other systems.) -- return OK instead of BUF_ERROR if previous deflate call returned with - avail_out as zero but there is nothing to do -- added memcmp for non STDC compilers -- define NO_DUMMY_DECL for more Mac compilers (.h files merged incorrectly) -- define __32BIT__ if __386__ or i386 is defined (pb. with Watcom and SCO) -- better check for 16-bit mode MSC (avoids problem with Symantec) - -Changes in 1.0.2 (23 May 96) -- added Windows DLL support -- added a function zlibVersion (for the DLL support) -- fixed declarations using Bytef in infutil.c (pb with MSDOS medium model) -- Bytef is define's instead of typedef'd only for Borland C -- avoid reading uninitialized memory in example.c -- mention in README that the zlib format is now RFC1950 -- updated Makefile.dj2 -- added algorithm.doc - -Changes in 1.0.1 (20 May 96) [1.0 skipped to avoid confusion] -- fix array overlay in deflate.c which sometimes caused bad compressed data -- fix inflate bug with empty stored block -- fix MSDOS medium model which was broken in 0.99 -- fix deflateParams() which could generated bad compressed data. -- Bytef is define'd instead of typedef'ed (work around Borland bug) -- added an INDEX file -- new makefiles for DJGPP (Makefile.dj2), 32-bit Borland (Makefile.b32), - Watcom (Makefile.wat), Amiga SAS/C (Makefile.sas) -- speed up adler32 for modern machines without auto-increment -- added -ansi for IRIX in configure -- static_init_done in trees.c is an int -- define unlink as delete for VMS -- fix configure for QNX -- add configure branch for SCO and HPUX -- avoid many warnings (unused variables, dead assignments, etc...) -- no fdopen for BeOS -- fix the Watcom fix for 32 bit mode (define FAR as empty) -- removed redefinition of Byte for MKWERKS -- work around an MWKERKS bug (incorrect merge of all .h files) - -Changes in 0.99 (27 Jan 96) -- allow preset dictionary shared between compressor and decompressor -- allow compression level 0 (no compression) -- add deflateParams in zlib.h: allow dynamic change of compression level - and compression strategy. -- test large buffers and deflateParams in example.c -- add optional "configure" to build zlib as a shared library -- suppress Makefile.qnx, use configure instead -- fixed deflate for 64-bit systems (detected on Cray) -- fixed inflate_blocks for 64-bit systems (detected on Alpha) -- declare Z_DEFLATED in zlib.h (possible parameter for deflateInit2) -- always return Z_BUF_ERROR when deflate() has nothing to do -- deflateInit and inflateInit are now macros to allow version checking -- prefix all global functions and types with z_ with -DZ_PREFIX -- make falloc completely reentrant (inftrees.c) -- fixed very unlikely race condition in ct_static_init -- free in reverse order of allocation to help memory manager -- use zlib-1.0/* instead of zlib/* inside the tar.gz -- make zlib warning-free with "gcc -O3 -Wall -Wwrite-strings -Wpointer-arith - -Wconversion -Wstrict-prototypes -Wmissing-prototypes" -- allow gzread on concatenated .gz files -- deflateEnd now returns Z_DATA_ERROR if it was premature -- deflate is finally (?) fully deterministic (no matches beyond end of input) -- Document Z_SYNC_FLUSH -- add uninstall in Makefile -- Check for __cpluplus in zlib.h -- Better test in ct_align for partial flush -- avoid harmless warnings for Borland C++ -- initialize hash_head in deflate.c -- avoid warning on fdopen (gzio.c) for HP cc -Aa -- include stdlib.h for STDC compilers -- include errno.h for Cray -- ignore error if ranlib doesn't exist -- call ranlib twice for NeXTSTEP -- use exec_prefix instead of prefix for libz.a -- renamed ct_* as _tr_* to avoid conflict with applications -- clear z->msg in inflateInit2 before any error return -- initialize opaque in example.c, gzio.c, deflate.c and inflate.c -- fixed typo in zconf.h (_GNUC__ => __GNUC__) -- check for WIN32 in zconf.h and zutil.c (avoid farmalloc in 32-bit mode) -- fix typo in Make_vms.com (f$trnlnm -> f$getsyi) -- in fcalloc, normalize pointer if size > 65520 bytes -- don't use special fcalloc for 32 bit Borland C++ -- use STDC instead of __GO32__ to avoid redeclaring exit, calloc, etc... -- use Z_BINARY instead of BINARY -- document that gzclose after gzdopen will close the file -- allow "a" as mode in gzopen. -- fix error checking in gzread -- allow skipping .gz extra-field on pipes -- added reference to Perl interface in README -- put the crc table in FAR data (I dislike more and more the medium model :) -- added get_crc_table -- added a dimension to all arrays (Borland C can't count). -- workaround Borland C bug in declaration of inflate_codes_new & inflate_fast -- guard against multiple inclusion of *.h (for precompiled header on Mac) -- Watcom C pretends to be Microsoft C small model even in 32 bit mode. -- don't use unsized arrays to avoid silly warnings by Visual C++: - warning C4746: 'inflate_mask' : unsized array treated as '__far' - (what's wrong with far data in far model?). -- define enum out of inflate_blocks_state to allow compilation with C++ - -Changes in 0.95 (16 Aug 95) -- fix MSDOS small and medium model (now easier to adapt to any compiler) -- inlined send_bits -- fix the final (:-) bug for deflate with flush (output was correct but - not completely flushed in rare occasions). -- default window size is same for compression and decompression - (it's now sufficient to set MAX_WBITS in zconf.h). -- voidp -> voidpf and voidnp -> voidp (for consistency with other - typedefs and because voidnp was not near in large model). - -Changes in 0.94 (13 Aug 95) -- support MSDOS medium model -- fix deflate with flush (could sometimes generate bad output) -- fix deflateReset (zlib header was incorrectly suppressed) -- added support for VMS -- allow a compression level in gzopen() -- gzflush now calls fflush -- For deflate with flush, flush even if no more input is provided. -- rename libgz.a as libz.a -- avoid complex expression in infcodes.c triggering Turbo C bug -- work around a problem with gcc on Alpha (in INSERT_STRING) -- don't use inline functions (problem with some gcc versions) -- allow renaming of Byte, uInt, etc... with #define. -- avoid warning about (unused) pointer before start of array in deflate.c -- avoid various warnings in gzio.c, example.c, infblock.c, adler32.c, zutil.c -- avoid reserved word 'new' in trees.c - -Changes in 0.93 (25 June 95) -- temporarily disable inline functions -- make deflate deterministic -- give enough lookahead for PARTIAL_FLUSH -- Set binary mode for stdin/stdout in minigzip.c for OS/2 -- don't even use signed char in inflate (not portable enough) -- fix inflate memory leak for segmented architectures - -Changes in 0.92 (3 May 95) -- don't assume that char is signed (problem on SGI) -- Clear bit buffer when starting a stored block -- no memcpy on Pyramid -- suppressed inftest.c -- optimized fill_window, put longest_match inline for gcc -- optimized inflate on stored blocks. -- untabify all sources to simplify patches - -Changes in 0.91 (2 May 95) -- Default MEM_LEVEL is 8 (not 9 for Unix) as documented in zlib.h -- Document the memory requirements in zconf.h -- added "make install" -- fix sync search logic in inflateSync -- deflate(Z_FULL_FLUSH) now works even if output buffer too short -- after inflateSync, don't scare people with just "lo world" -- added support for DJGPP - -Changes in 0.9 (1 May 95) -- don't assume that zalloc clears the allocated memory (the TurboC bug - was Mark's bug after all :) -- let again gzread copy uncompressed data unchanged (was working in 0.71) -- deflate(Z_FULL_FLUSH), inflateReset and inflateSync are now fully implemented -- added a test of inflateSync in example.c -- moved MAX_WBITS to zconf.h because users might want to change that. -- document explicitly that zalloc(64K) on MSDOS must return a normalized - pointer (zero offset) -- added Makefiles for Microsoft C, Turbo C, Borland C++ -- faster crc32() - -Changes in 0.8 (29 April 95) -- added fast inflate (inffast.c) -- deflate(Z_FINISH) now returns Z_STREAM_END when done. Warning: this - is incompatible with previous versions of zlib which returned Z_OK. -- work around a TurboC compiler bug (bad code for b << 0, see infutil.h) - (actually that was not a compiler bug, see 0.81 above) -- gzread no longer reads one extra byte in certain cases -- In gzio destroy(), don't reference a freed structure -- avoid many warnings for MSDOS -- avoid the ERROR symbol which is used by MS Windows - -Changes in 0.71 (14 April 95) -- Fixed more MSDOS compilation problems :( There is still a bug with - TurboC large model. - -Changes in 0.7 (14 April 95) -- Added full inflate support. -- Simplified the crc32() interface. The pre- and post-conditioning - (one's complement) is now done inside crc32(). WARNING: this is - incompatible with previous versions; see zlib.h for the new usage. - -Changes in 0.61 (12 April 95) -- workaround for a bug in TurboC. example and minigzip now work on MSDOS. - -Changes in 0.6 (11 April 95) -- added minigzip.c -- added gzdopen to reopen a file descriptor as gzFile -- added transparent reading of non-gziped files in gzread. -- fixed bug in gzread (don't read crc as data) -- fixed bug in destroy (gzio.c) (don't return Z_STREAM_END for gzclose). -- don't allocate big arrays in the stack (for MSDOS) -- fix some MSDOS compilation problems - -Changes in 0.5: -- do real compression in deflate.c. Z_PARTIAL_FLUSH is supported but - not yet Z_FULL_FLUSH. -- support decompression but only in a single step (forced Z_FINISH) -- added opaque object for zalloc and zfree. -- added deflateReset and inflateReset -- added a variable zlib_version for consistency checking. -- renamed the 'filter' parameter of deflateInit2 as 'strategy'. - Added Z_FILTERED and Z_HUFFMAN_ONLY constants. - -Changes in 0.4: -- avoid "zip" everywhere, use zlib instead of ziplib. -- suppress Z_BLOCK_FLUSH, interpret Z_PARTIAL_FLUSH as block flush - if compression method == 8. -- added adler32 and crc32 -- renamed deflateOptions as deflateInit2, call one or the other but not both -- added the method parameter for deflateInit2. -- added inflateInit2 -- simplied considerably deflateInit and inflateInit by not supporting - user-provided history buffer. This is supported only in deflateInit2 - and inflateInit2. - -Changes in 0.3: -- prefix all macro names with Z_ -- use Z_FINISH instead of deflateEnd to finish compression. -- added Z_HUFFMAN_ONLY -- added gzerror() diff --git a/src/zlib/INDEX b/src/zlib/INDEX deleted file mode 100644 index c405328b49..0000000000 --- a/src/zlib/INDEX +++ /dev/null @@ -1,82 +0,0 @@ -ChangeLog history of changes -INDEX this file -Make_vms.com script for Vax/VMS -Makefile makefile for Unix (generated by configure) -Makefile.in makefile for Unix (template for configure) -Makefile.msc makefile for Microsoft C 16-bit -Makefile.riscos makefile for RISCOS -README guess what -algorithm.txt description of the (de)compression algorithm -configure configure script for Unix -descrip.mms makefile for Vax/VMS -zlib.3 mini man page for zlib (volunteers to write full - man pages from zlib.h welcome. write to jloup@gzip.org) - -amiga/Makefile.sas makefile for Amiga SAS/C -amiga/Makefile.pup makefile for Amiga powerUP SAS/C PPC - -msdos/Makefile.w32 makefile for Microsoft Visual C++ 32-bit -msdos/Makefile.b32 makefile for Borland C++ 32-bit -msdos/Makefile.bor makefile for Borland C/C++ 16-bit -msdos/Makefile.dj2 makefile for DJGPP 2.x -msdos/Makefile.tc makefile for Turbo C -msdos/Makefile.wat makefile for Watcom C -msdos/zlib.def definition file for Windows DLL -msdos/zlib.rc definition file for Windows DLL - -nt/Makefile.nt makefile for Windows NT -nt/zlib.dnt definition file for Windows NT DLL - - - zlib public header files (must be kept): -zconf.h -zlib.h - - private source files used to build the zlib library: -adler32.c -compress.c -crc32.c -deflate.c -deflate.h -gzio.c -infblock.c -infblock.h -infcodes.c -infcodes.h -inffast.c -inffast.h -inflate.c -inftrees.c -inftrees.h -infutil.c -infutil.h -maketree.c -trees.c -uncompr.c -zutil.c -zutil.h - - source files for sample programs: -example.c -minigzip.c - - unsupported contribution by third parties - -contrib/asm386/ by Gilles Vollant - 386 asm code replacing longest_match(). - -contrib/minizip/ by Gilles Vollant - Mini zip and unzip based on zlib - See http://www.winimage.com/zLibDll/unzip.html - -contrib/iostream/ by Kevin Ruland - A C++ I/O streams interface to the zlib gz* functions - -contrib/iostream2/ by Tyge Løvset - Another C++ I/O streams interface - -contrib/untgz/ by "Pedro A. Aranda Guti\irrez" - A very simple tar.gz extractor using zlib - -contrib/visual-basic.txt by Carlos Rios - How to use compress(), uncompress() and the gz* functions from VB. diff --git a/src/zlib/Make_vms.com b/src/zlib/Make_vms.com deleted file mode 100644 index 0008d00bb6..0000000000 --- a/src/zlib/Make_vms.com +++ /dev/null @@ -1,115 +0,0 @@ -$! make libz under VMS -$! written by Martin P.J. Zinser -$! -$! Look for the compiler used -$! -$ ccopt = "" -$ if f$getsyi("HW_MODEL").ge.1024 -$ then -$ ccopt = "/prefix=all"+ccopt -$ comp = "__decc__=1" -$ if f$trnlnm("SYS").eqs."" then define sys sys$library: -$ else -$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" -$ then -$ comp = "__vaxc__=1" -$ if f$trnlnm("SYS").eqs."" then define sys sys$library: -$ else -$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: -$ ccopt = "/decc/prefix=all"+ccopt -$ comp = "__decc__=1" -$ endif -$ endif -$! -$! Build the thing plain or with mms -$! -$ write sys$output "Compiling Zlib sources ..." -$ if f$search("SYS$SYSTEM:MMS.EXE").eqs."" -$ then -$ dele example.obj;*,minigzip.obj;* -$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" - - adler32.c zutil.h zlib.h zconf.h -$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" - - compress.c zlib.h zconf.h -$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" - - crc32.c zutil.h zlib.h zconf.h -$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" - - deflatec.c deflate.h zutil.h zlib.h zconf.h -$ CALL MAKE gzio.OBJ "CC ''CCOPT' gzio" - - gsio.c zutil.h zlib.h zconf.h -$ CALL MAKE infblock.OBJ "CC ''CCOPT' infblock" - - infblock.c zutil.h zlib.h zconf.h infblock.h -$ CALL MAKE infcodes.OBJ "CC ''CCOPT' infcodes" - - infcodes.c zutil.h zlib.h zconf.h inftrees.h -$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" - - inffast.c zutil.h zlib.h zconf.h inffast.h -$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" - - inflate.c zutil.h zlib.h zconf.h infblock.h -$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" - - inftrees.c zutil.h zlib.h zconf.h inftrees.h -$ CALL MAKE infutil.OBJ "CC ''CCOPT' infutil" - - infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h -$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" - - trees.c deflate.h zutil.h zlib.h zconf.h -$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" - - uncompr.c zlib.h zconf.h -$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" - - zutil.c zutil.h zlib.h zconf.h -$ write sys$output "Building Zlib ..." -$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ -$ write sys$output "Building example..." -$ CALL MAKE example.OBJ "CC ''CCOPT' example" - - example.c zlib.h zconf.h -$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb -$ write sys$output "Building minigzip..." -$ CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" - - minigzip.c zlib.h zconf.h -$ call make minigzip.exe - - "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" - - minigzip.obj libz.olb -$ else -$ mms/macro=('comp') -$ endif -$ write sys$output "Zlib build completed" -$ exit -$! -$! -$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES -$ V = 'F$Verify(0) -$! P1 = What we are trying to make -$! P2 = Command to make it -$! P3 - P8 What it depends on -$ -$ If F$Search(P1) .Eqs. "" Then Goto Makeit -$ Time = F$CvTime(F$File(P1,"RDT")) -$arg=3 -$Loop: -$ Argument = P'arg -$ If Argument .Eqs. "" Then Goto Exit -$ El=0 -$Loop2: -$ File = F$Element(El," ",Argument) -$ If File .Eqs. " " Then Goto Endl -$ AFile = "" -$Loop3: -$ OFile = AFile -$ AFile = F$Search(File) -$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl -$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit -$ Goto Loop3 -$NextEL: -$ El = El + 1 -$ Goto Loop2 -$EndL: -$ arg=arg+1 -$ If arg .Le. 8 Then Goto Loop -$ Goto Exit -$ -$Makeit: -$ VV=F$VERIFY(0) -$ write sys$output P2 -$ 'P2 -$ VV='F$Verify(VV) -$Exit: -$ If V Then Set Verify -$ENDSUBROUTINE diff --git a/src/zlib/Makefile.in2 b/src/zlib/Makefile.in2 deleted file mode 100644 index c8bb6e9578..0000000000 --- a/src/zlib/Makefile.in2 +++ /dev/null @@ -1,160 +0,0 @@ -# Makefile for zlib -# Copyright (C) 1995-1998 Jean-loup Gailly. -# For conditions of distribution and use, see copyright notice in zlib.h - -# To compile and test, type: -# ./configure; make test -# The call of configure is optional if you don't have special requirements -# If you wish to build zlib as a shared library, use: ./configure -s - -# To install /usr/local/lib/libz.* and /usr/local/include/zlib.h, type: -# make install -# To install in $HOME instead of /usr/local, use: -# make install prefix=$HOME - -CC=cc - -CFLAGS=-O -#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 -#CFLAGS=-g -DDEBUG -#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ -# -Wstrict-prototypes -Wmissing-prototypes - -LDFLAGS=-L. -lz -LDSHARED=$(CC) - -VER=1.1.2 -LIBS=libz.a -SHAREDLIB=libz.so - -AR=ar rc -RANLIB=ranlib -TAR=tar -SHELL=/bin/sh - -prefix = /usr/local -exec_prefix = ${prefix} - -OBJS = adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o \ - zutil.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o - -TEST_OBJS = example.o minigzip.o - -DISTFILES = README INDEX ChangeLog configure Make*[a-z0-9] *.[ch] descrip.mms \ - algorithm.txt zlib.3 msdos/Make*[a-z0-9] msdos/zlib.def msdos/zlib.rc \ - nt/Makefile.nt nt/zlib.dnt amiga/Make*.??? contrib/README.contrib \ - contrib/*.txt contrib/asm386/*.asm contrib/asm386/*.c \ - contrib/asm386/*.bat contrib/asm386/zlibvc.d?? contrib/iostream/*.cpp \ - contrib/iostream/*.h contrib/iostream2/*.h contrib/iostream2/*.cpp \ - contrib/untgz/Makefile contrib/untgz/*.c contrib/untgz/*.w32 \ - contrib/minizip/[CM]*[pe] contrib/minizip/*.[ch] contrib/minizip/*.[td]?? - - -all: example minigzip - -test: all - @LD_LIBRARY_PATH=.:$(LD_LIBRARY_PATH) ; export LD_LIBRARY_PATH; \ - echo hello world | ./minigzip | ./minigzip -d || \ - echo ' *** minigzip test FAILED ***' ; \ - if ./example; then \ - echo ' *** zlib test OK ***'; \ - else \ - echo ' *** zlib test FAILED ***'; \ - fi - -libz.a: $(OBJS) - $(AR) $@ $(OBJS) - -@ ($(RANLIB) $@ || true) >/dev/null 2>&1 - -$(SHAREDLIB).$(VER): $(OBJS) - $(LDSHARED) -o $@ $(OBJS) - rm -f $(SHAREDLIB) $(SHAREDLIB).1 - ln -s $@ $(SHAREDLIB) - ln -s $@ $(SHAREDLIB).1 - -example: example.o $(LIBS) - $(CC) $(CFLAGS) -o $@ example.o $(LDFLAGS) - -minigzip: minigzip.o $(LIBS) - $(CC) $(CFLAGS) -o $@ minigzip.o $(LDFLAGS) - -install: $(LIBS) - -@if [ ! -d $(prefix)/include ]; then mkdir $(prefix)/include; fi - -@if [ ! -d $(exec_prefix)/lib ]; then mkdir $(exec_prefix)/lib; fi - cp zlib.h zconf.h $(prefix)/include - chmod 644 $(prefix)/include/zlib.h $(prefix)/include/zconf.h - cp $(LIBS) $(exec_prefix)/lib - cd $(exec_prefix)/lib; chmod 755 $(LIBS) - -@(cd $(exec_prefix)/lib; $(RANLIB) libz.a || true) >/dev/null 2>&1 - cd $(exec_prefix)/lib; if test -f $(SHAREDLIB).$(VER); then \ - rm -f $(SHAREDLIB) $(SHAREDLIB).1; \ - ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB); \ - ln -s $(SHAREDLIB).$(VER) $(SHAREDLIB).1; \ - (ldconfig || true) >/dev/null 2>&1; \ - fi -# The ranlib in install is needed on NeXTSTEP which checks file times -# ldconfig is for Linux - -uninstall: - cd $(prefix)/include; \ - v=$(VER); \ - if test -f zlib.h; then \ - v=`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`; \ - rm -f zlib.h zconf.h; \ - fi; \ - cd $(exec_prefix)/lib; rm -f libz.a; \ - if test -f $(SHAREDLIB).$$v; then \ - rm -f $(SHAREDLIB).$$v $(SHAREDLIB) $(SHAREDLIB).1; \ - fi - -clean: - rm -f *.o *~ example minigzip libz.a libz.so* foo.gz - -distclean: clean - -zip: - mv Makefile Makefile~; cp -p Makefile.in Makefile - rm -f test.c ztest*.c contrib/minizip/test.zip - v=`sed -n -e 's/\.//g' -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ - zip -ul9 zlib$$v $(DISTFILES) - mv Makefile~ Makefile - -dist: - mv Makefile Makefile~; cp -p Makefile.in Makefile - rm -f test.c ztest*.c contrib/minizip/test.zip - d=zlib-`sed -n '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`;\ - rm -f $$d.tar.gz; \ - if test ! -d ../$$d; then rm -f ../$$d; ln -s `pwd` ../$$d; fi; \ - files=""; \ - for f in $(DISTFILES); do files="$$files $$d/$$f"; done; \ - cd ..; \ - GZIP=-9 $(TAR) chofz $$d/$$d.tar.gz $$files; \ - if test ! -d $$d; then rm -f $$d; fi - mv Makefile~ Makefile - -tags: - etags *.[ch] - -depend: - makedepend -- $(CFLAGS) -- *.[ch] - -# DO NOT DELETE THIS LINE -- make depend depends on it. - -adler32.o: zlib.h zconf.h -compress.o: zlib.h zconf.h -crc32.o: zlib.h zconf.h -deflate.o: deflate.h zutil.h zlib.h zconf.h -example.o: zlib.h zconf.h -gzio.o: zutil.h zlib.h zconf.h -infblock.o: infblock.h inftrees.h infcodes.h infutil.h zutil.h zlib.h zconf.h -infcodes.o: zutil.h zlib.h zconf.h -infcodes.o: inftrees.h infblock.h infcodes.h infutil.h inffast.h -inffast.o: zutil.h zlib.h zconf.h inftrees.h -inffast.o: infblock.h infcodes.h infutil.h inffast.h -inflate.o: zutil.h zlib.h zconf.h infblock.h -inftrees.o: zutil.h zlib.h zconf.h inftrees.h -infutil.o: zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h -minigzip.o: zlib.h zconf.h -trees.o: deflate.h zutil.h zlib.h zconf.h trees.h -uncompr.o: zlib.h zconf.h -zutil.o: zutil.h zlib.h zconf.h diff --git a/src/zlib/Makefile.riscos b/src/zlib/Makefile.riscos deleted file mode 100644 index 0f10aa8918..0000000000 --- a/src/zlib/Makefile.riscos +++ /dev/null @@ -1,46 +0,0 @@ -# Project: zlib_1_03 - - -# Toolflags: -CCflags = -c -depend !Depend -IC: -g -throwback -DRISCOS -fnah -C++flags = -c -depend !Depend -IC: -throwback -Linkflags = -aif -c++ -o $@ -ObjAsmflags = -throwback -NoCache -depend !Depend -CMHGflags = -LibFileflags = -c -l -o $@ -Squeezeflags = -o $@ - - -# Final targets: -@.zlib_lib: @.o.adler32 @.o.compress @.o.crc32 @.o.deflate @.o.gzio \ - @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil @.o.trees \ - @.o.uncompress @.o.zutil - LibFile $(LibFileflags) @.o.adler32 @.o.compress @.o.crc32 @.o.deflate \ - @.o.gzio @.o.infblock @.o.infcodes @.o.inffast @.o.inflate @.o.inftrees @.o.infutil \ - @.o.trees @.o.uncompress @.o.zutil -@.test: @.tests.minigzip @.tests.example - echo Please run "Test" in directory tests -@.tests.minigzip: @.o.minigzip @.zlib_lib C:o.Stubs - Link $(Linkflags) @.o.minigzip @.zlib_lib C:o.Stubs -@.tests.example: @.o.example @.zlib_lib C:o.Stubs - Link $(Linkflags) @.o.example @.zlib_lib C:o.Stubs - - -# User-editable dependencies: -.c.o: - cc $(ccflags) -o $@ $< - -# Static dependencies: -@.o.example: @.tests.c.example - cc $(ccflags) -o @.o.example @.tests.c.example -@.o.minigzip: @.tests.c.minigzip - cc $(ccflags) -o @.o.minigzip @.tests.c.minigzip - - -# Dynamic dependencies: -o.minigzip: tests.c.minigzip -o.minigzip: h.zlib -o.minigzip: h.zconf -o.example: tests.c.example -o.example: h.zlib -o.example: h.zconf diff --git a/src/zlib/README b/src/zlib/README deleted file mode 100644 index 2471d5ca93..0000000000 --- a/src/zlib/README +++ /dev/null @@ -1,143 +0,0 @@ -zlib 1.1.2 is a general purpose data compression library. All the code -is thread safe. The data format used by the zlib library -is described by RFCs (Request for Comments) 1950 to 1952 in the files -ftp://ds.internic.net/rfc/rfc1950.txt (zlib format), rfc1951.txt (deflate -format) and rfc1952.txt (gzip format). These documents are also available in -other formats from ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html - -All functions of the compression library are documented in the file zlib.h -(volunteer to write man pages welcome, contact jloup@gzip.org). A usage -example of the library is given in the file example.c which also tests that -the library is working correctly. Another example is given in the file -minigzip.c. The compression library itself is composed of all source files -except example.c and minigzip.c. - -To compile all files and run the test program, follow the instructions -given at the top of Makefile. In short "make test; make install" -should work for most machines. For MSDOS, use one of the special -makefiles such as Makefile.msc; for VMS, use Make_vms.com or descrip.mms. - -Questions about zlib should be sent to or, -if this fails, to the addresses given below in the Copyright section. -The zlib home page is http://www.cdrom.com/pub/infozip/zlib/ -The official zlib ftp site is ftp://ftp.cdrom.com/pub/infozip/zlib/ -Mark Nelson wrote an article about zlib for the Jan. 1997 -issue of Dr. Dobb's Journal; a copy of the article is available in -http://web2.airmail.net/markn/articles/zlibtool/zlibtool.htm - -The changes made in version 1.1.2 are documented in the file ChangeLog. -The main changes since 1.1.1 are: - -- added contrib/minzip, mini zip and unzip based on zlib (Gilles Vollant) - See http://www.winimage.com/zLibDll/unzip.html -- preinitialize the inflate tables for fixed codes, to make the code - completely thread safe (Mark) -- some simplifications and slight speed-up to the inflate code (Mark) -- fix gzeof on non-compressed files (Allan Schrum) -- add -std1 option in configure for OSF1 to fix gzprintf (Martin Mokrejs) -- use default value of 4K for Z_BUFSIZE for 16-bit MSDOS (Tim Wegner + Glenn) -- added os2/Makefile.def and os2/zlib.def (Andrew Zabolotny) -- add shared lib support for UNIX_SV4.2MP (MATSUURA Takanori) -- do not wrap extern "C" around system includes (Tom Lane) -- added amiga/Makefile.pup for Amiga powerUP SAS/C PPC (Andreas Kleinert) -- allow "make install prefix=..." even after configure (Glenn Randers-Pehrson) -- allow "configure --prefix $HOME" (Tim Mooney) - - -Unsupported third party contributions are provided in directory "contrib". - -A Java implementation of zlib is available in the Java Development Kit 1.1 -http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html -See the zlib home page http://www.cdrom.com/pub/infozip/zlib/ for details. - -A Perl interface to zlib written by Paul Marquess -is in the CPAN (Comprehensive Perl Archive Network) sites, such as: -ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib* - -A Python interface to zlib written by A.M. Kuchling -is available from the Python Software Association sites, such as: -ftp://ftp.python.org/pub/python/contrib/Encoding/zlib*.tar.gz - -A zlib binding for TCL written by Andreas Kupries -is availlable at http://www.westend.com/~kupries/doc/trf/man/man.html - -An experimental package to read and write files in .zip format, -written on top of zlib by Gilles Vollant , is -available at http://www.winimage.com/zLibDll/unzip.html -and also in the contrib/minizip directory of zlib. - - -Notes for some targets: - -- To build a Windows DLL version, include in a DLL project zlib.def, zlib.rc - and all .c files except example.c and minigzip.c; compile with -DZLIB_DLL - The zlib DLL support was initially done by Alessandro Iacopetti and is - now maintained by Gilles Vollant . Check the zlib DLL - home page at http://www.winimage.com/zLibDll - - From Visual Basic, you can call the DLL functions which do not take - a structure as argument: compress, uncompress and all gz* functions. - See contrib/visual-basic.txt for more information. - I don't know how to handle structures in Visual Basic, sorry. - -- For 64-bit Irix, deflate.c must be compiled without any optimization. - With -O, one libpng test fails. The test works in 32 bit mode (with - the -n32 compiler flag). The compiler bug has been reported to SGI. - -- zlib doesn't work with gcc 2.6.3 on a DEC 3000/300LX under OSF/1 2.1 - it works when compiled with cc. - -- on Digital Unix 4.0D (formely OSF/1) on AlphaServer, the cc option -std1 - is necessary to get gzprintf working correctly. This is done by configure. - -- zlib doesn't work on HP-UX 9.05 with some versions of /bin/cc. It works - with other compilers. Use "make test" to check your compiler. - -- For shared memory multiprocessors, the decompression code assumes that - writes to pointers are atomic. Also the functions zalloc and zfree passed - to deflateInit must be multi-threaded in this case. - -- gzdopen is not supported on RISCOS, BEOS and by some Mac compilers. - -- For Turbo C the small model is supported only with reduced performance to - avoid any far allocation; it was tested with -DMAX_WBITS=11 -DMAX_MEM_LEVEL=3 - - -Acknowledgments: - - The deflate format used by zlib was defined by Phil Katz. The deflate - and zlib specifications were written by L. Peter Deutsch. Thanks to all the - people who reported problems and suggested various improvements in zlib; - they are too numerous to cite here. - -Copyright notice: - - (C) 1995-1998 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - -If you use the zlib library in a product, we would appreciate *not* -receiving lengthy legal documents to sign. The sources are provided -for free but without warranty of any kind. The library has been -entirely written by Jean-loup Gailly and Mark Adler; it does not -include third-party code. - -If you redistribute modified sources, we would appreciate that you include -in the file ChangeLog history information documenting your changes. diff --git a/src/zlib/adler32.c b/src/zlib/adler32.c deleted file mode 100644 index ef4b2ebdc8..0000000000 --- a/src/zlib/adler32.c +++ /dev/null @@ -1,48 +0,0 @@ -/* adler32.c -- compute the Adler-32 checksum of a data stream - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "../zlib/zlib.h" - -#define BASE 65521L /* largest prime smaller than 65536 */ -#define NMAX 5552 -/* NMAX is the largest n such that 255n(n+1)/2 + (n+1)(BASE-1) <= 2^32-1 */ - -#define DO1(buf,i) {s1 += buf[i]; s2 += s1;} -#define DO2(buf,i) DO1(buf,i); DO1(buf,i+1); -#define DO4(buf,i) DO2(buf,i); DO2(buf,i+2); -#define DO8(buf,i) DO4(buf,i); DO4(buf,i+4); -#define DO16(buf) DO8(buf,0); DO8(buf,8); - -/* ========================================================================= */ -uLong ZEXPORT adler32(adler, buf, len) - uLong adler; - const Bytef *buf; - uInt len; -{ - unsigned long s1 = adler & 0xffff; - unsigned long s2 = (adler >> 16) & 0xffff; - int k; - - if (buf == Z_NULL) return 1L; - - while (len > 0) { - k = len < NMAX ? len : NMAX; - len -= k; - while (k >= 16) { - DO16(buf); - buf += 16; - k -= 16; - } - if (k != 0) do { - s1 += *buf++; - s2 += s1; - } while (--k); - s1 %= BASE; - s2 %= BASE; - } - return (s2 << 16) | s1; -} diff --git a/src/zlib/algorithm.txt b/src/zlib/algorithm.txt deleted file mode 100644 index cdc830b5de..0000000000 --- a/src/zlib/algorithm.txt +++ /dev/null @@ -1,213 +0,0 @@ -1. Compression algorithm (deflate) - -The deflation algorithm used by gzip (also zip and zlib) is a variation of -LZ77 (Lempel-Ziv 1977, see reference below). It finds duplicated strings in -the input data. The second occurrence of a string is replaced by a -pointer to the previous string, in the form of a pair (distance, -length). Distances are limited to 32K bytes, and lengths are limited -to 258 bytes. When a string does not occur anywhere in the previous -32K bytes, it is emitted as a sequence of literal bytes. (In this -description, `string' must be taken as an arbitrary sequence of bytes, -and is not restricted to printable characters.) - -Literals or match lengths are compressed with one Huffman tree, and -match distances are compressed with another tree. The trees are stored -in a compact form at the start of each block. The blocks can have any -size (except that the compressed data for one block must fit in -available memory). A block is terminated when deflate() determines that -it would be useful to start another block with fresh trees. (This is -somewhat similar to the behavior of LZW-based _compress_.) - -Duplicated strings are found using a hash table. All input strings of -length 3 are inserted in the hash table. A hash index is computed for -the next 3 bytes. If the hash chain for this index is not empty, all -strings in the chain are compared with the current input string, and -the longest match is selected. - -The hash chains are searched starting with the most recent strings, to -favor small distances and thus take advantage of the Huffman encoding. -The hash chains are singly linked. There are no deletions from the -hash chains, the algorithm simply discards matches that are too old. - -To avoid a worst-case situation, very long hash chains are arbitrarily -truncated at a certain length, determined by a runtime option (level -parameter of deflateInit). So deflate() does not always find the longest -possible match but generally finds a match which is long enough. - -deflate() also defers the selection of matches with a lazy evaluation -mechanism. After a match of length N has been found, deflate() searches for -a longer match at the next input byte. If a longer match is found, the -previous match is truncated to a length of one (thus producing a single -literal byte) and the process of lazy evaluation begins again. Otherwise, -the original match is kept, and the next match search is attempted only N -steps later. - -The lazy match evaluation is also subject to a runtime parameter. If -the current match is long enough, deflate() reduces the search for a longer -match, thus speeding up the whole process. If compression ratio is more -important than speed, deflate() attempts a complete second search even if -the first match is already long enough. - -The lazy match evaluation is not performed for the fastest compression -modes (level parameter 1 to 3). For these fast modes, new strings -are inserted in the hash table only when no match was found, or -when the match is not too long. This degrades the compression ratio -but saves time since there are both fewer insertions and fewer searches. - - -2. Decompression algorithm (inflate) - -2.1 Introduction - -The real question is, given a Huffman tree, how to decode fast. The most -important realization is that shorter codes are much more common than -longer codes, so pay attention to decoding the short codes fast, and let -the long codes take longer to decode. - -inflate() sets up a first level table that covers some number of bits of -input less than the length of longest code. It gets that many bits from the -stream, and looks it up in the table. The table will tell if the next -code is that many bits or less and how many, and if it is, it will tell -the value, else it will point to the next level table for which inflate() -grabs more bits and tries to decode a longer code. - -How many bits to make the first lookup is a tradeoff between the time it -takes to decode and the time it takes to build the table. If building the -table took no time (and if you had infinite memory), then there would only -be a first level table to cover all the way to the longest code. However, -building the table ends up taking a lot longer for more bits since short -codes are replicated many times in such a table. What inflate() does is -simply to make the number of bits in the first table a variable, and set it -for the maximum speed. - -inflate() sends new trees relatively often, so it is possibly set for a -smaller first level table than an application that has only one tree for -all the data. For inflate, which has 286 possible codes for the -literal/length tree, the size of the first table is nine bits. Also the -distance trees have 30 possible values, and the size of the first table is -six bits. Note that for each of those cases, the table ended up one bit -longer than the ``average'' code length, i.e. the code length of an -approximately flat code which would be a little more than eight bits for -286 symbols and a little less than five bits for 30 symbols. It would be -interesting to see if optimizing the first level table for other -applications gave values within a bit or two of the flat code size. - - -2.2 More details on the inflate table lookup - -Ok, you want to know what this cleverly obfuscated inflate tree actually -looks like. You are correct that it's not a Huffman tree. It is simply a -lookup table for the first, let's say, nine bits of a Huffman symbol. The -symbol could be as short as one bit or as long as 15 bits. If a particular -symbol is shorter than nine bits, then that symbol's translation is duplicated -in all those entries that start with that symbol's bits. For example, if the -symbol is four bits, then it's duplicated 32 times in a nine-bit table. If a -symbol is nine bits long, it appears in the table once. - -If the symbol is longer than nine bits, then that entry in the table points -to another similar table for the remaining bits. Again, there are duplicated -entries as needed. The idea is that most of the time the symbol will be short -and there will only be one table look up. (That's whole idea behind data -compression in the first place.) For the less frequent long symbols, there -will be two lookups. If you had a compression method with really long -symbols, you could have as many levels of lookups as is efficient. For -inflate, two is enough. - -So a table entry either points to another table (in which case nine bits in -the above example are gobbled), or it contains the translation for the symbol -and the number of bits to gobble. Then you start again with the next -ungobbled bit. - -You may wonder: why not just have one lookup table for how ever many bits the -longest symbol is? The reason is that if you do that, you end up spending -more time filling in duplicate symbol entries than you do actually decoding. -At least for deflate's output that generates new trees every several 10's of -kbytes. You can imagine that filling in a 2^15 entry table for a 15-bit code -would take too long if you're only decoding several thousand symbols. At the -other extreme, you could make a new table for every bit in the code. In fact, -that's essentially a Huffman tree. But then you spend two much time -traversing the tree while decoding, even for short symbols. - -So the number of bits for the first lookup table is a trade of the time to -fill out the table vs. the time spent looking at the second level and above of -the table. - -Here is an example, scaled down: - -The code being decoded, with 10 symbols, from 1 to 6 bits long: - -A: 0 -B: 10 -C: 1100 -D: 11010 -E: 11011 -F: 11100 -G: 11101 -H: 11110 -I: 111110 -J: 111111 - -Let's make the first table three bits long (eight entries): - -000: A,1 -001: A,1 -010: A,1 -011: A,1 -100: B,2 -101: B,2 -110: -> table X (gobble 3 bits) -111: -> table Y (gobble 3 bits) - -Each entry is what the bits decode to and how many bits that is, i.e. how -many bits to gobble. Or the entry points to another table, with the number of -bits to gobble implicit in the size of the table. - -Table X is two bits long since the longest code starting with 110 is five bits -long: - -00: C,1 -01: C,1 -10: D,2 -11: E,2 - -Table Y is three bits long since the longest code starting with 111 is six -bits long: - -000: F,2 -001: F,2 -010: G,2 -011: G,2 -100: H,2 -101: H,2 -110: I,3 -111: J,3 - -So what we have here are three tables with a total of 20 entries that had to -be constructed. That's compared to 64 entries for a single table. Or -compared to 16 entries for a Huffman tree (six two entry tables and one four -entry table). Assuming that the code ideally represents the probability of -the symbols, it takes on the average 1.25 lookups per symbol. That's compared -to one lookup for the single table, or 1.66 lookups per symbol for the -Huffman tree. - -There, I think that gives you a picture of what's going on. For inflate, the -meaning of a particular symbol is often more than just a letter. It can be a -byte (a "literal"), or it can be either a length or a distance which -indicates a base value and a number of bits to fetch after the code that is -added to the base value. Or it might be the special end-of-block code. The -data structures created in inftrees.c try to encode all that information -compactly in the tables. - - -Jean-loup Gailly Mark Adler -jloup@gzip.org madler@alumni.caltech.edu - - -References: - -[LZ77] Ziv J., Lempel A., ``A Universal Algorithm for Sequential Data -Compression,'' IEEE Transactions on Information Theory, Vol. 23, No. 3, -pp. 337-343. - -``DEFLATE Compressed Data Format Specification'' available in -ftp://ds.internic.net/rfc/rfc1951.txt diff --git a/src/zlib/compress.c b/src/zlib/compress.c deleted file mode 100644 index 51761b105e..0000000000 --- a/src/zlib/compress.c +++ /dev/null @@ -1,68 +0,0 @@ -/* compress.c -- compress a memory buffer - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "../zlib/zlib.h" - -/* =========================================================================== - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least 0.1% larger than sourceLen plus - 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ -int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; - int level; -{ - z_stream stream; - int err; - - stream.next_in = (Bytef*)source; - stream.avail_in = (uInt)sourceLen; -#ifdef MAXSEG_64K - /* Check for source > 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; -#endif - stream.next_out = dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - stream.opaque = (voidpf)0; - - err = deflateInit(&stream, level); - if (err != Z_OK) return err; - - err = deflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - deflateEnd(&stream); - return err == Z_OK ? Z_BUF_ERROR : err; - } - *destLen = stream.total_out; - - err = deflateEnd(&stream); - return err; -} - -/* =========================================================================== - */ -int ZEXPORT compress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); -} diff --git a/src/zlib/configure b/src/zlib/configure deleted file mode 100644 index d188e6f02d..0000000000 --- a/src/zlib/configure +++ /dev/null @@ -1,163 +0,0 @@ -#!/bin/sh -# configure script for zlib. This script is needed only if -# you wish to build a shared library and your system supports them, -# of if you need special compiler, flags or install directory. -# Otherwise, you can just use directly "make test; make install" -# -# To create a shared library, use "configure --shared"; by default a static -# library is created. If the primitive shared library support provided here -# does not work, use ftp://prep.ai.mit.edu/pub/gnu/libtool-*.tar.gz -# -# To impose specific compiler or flags or install directory, use for example: -# prefix=$HOME CC=cc CFLAGS="-O4" ./configure -# or for csh/tcsh users: -# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure) -# LDSHARED is the command to be used to create a shared library - -# Incorrect settings of CC or CFLAGS may prevent creating a shared library. -# If you have problems, try without defining CC and CFLAGS before reporting -# an error. - -LIBS=libz.a -SHAREDLIB=libz.so -VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` -AR=${AR-"ar rc"} -RANLIB=${RANLIB-"ranlib"} -prefix=${prefix-/usr/local} -shared_ext='.so' -shared=0 -gcc=0 -old_cc="$CC" -old_cflags="$CFLAGS" - -case "$1" in - -h* | --h*) echo 'syntax: configure [ --shared ] [--prefix PREFIX]'; exit 0;; - -p*=* | --p*=*) prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; - -p* | --p*) prefix="$2"; shift; shift;; - -s* | --s*) shared=1; shift;; -esac - -test=ztest$$ -cat > $test.c </dev/null; then - CC="$cc" - SFLAGS=${CFLAGS-"-fPIC -O3"} - CFLAGS="$cflags" - case `(uname -s || echo unknown) 2>/dev/null` in - Linux | linux) LDSHARED=${LDSHARED-"gcc -shared -Wl,-soname,libz.so.1"};; - *) LDSHARED=${LDSHARED-"gcc -shared"};; - esac -else - # find system name and corresponding cc options - CC=${CC-cc} - case `(uname -sr || echo unknown) 2>/dev/null` in - HP-UX*) SFLAGS=${CFLAGS-"-O +z"} - CFLAGS=${CFLAGS-"-O"} -# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"} - LDSHARED=${LDSHARED-"ld -b"} - shared_ext='.sl' - SHAREDLIB='libz.sl';; - IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."} - CFLAGS=${CFLAGS-"-ansi -O2"} - LDSHARED=${LDSHARED-"cc -shared"};; - OSF1) SFLAGS=${CFLAGS-"-O -std1"} - CFLAGS=${CFLAGS-"-O -std1"} - LDSHARED=${LDSHARED-"cc -shared"};; - QNX*) SFLAGS=${CFLAGS-"-4 -O"} - CFLAGS=${CFLAGS-"-4 -O"} - LDSHARED=${LDSHARED-"cc"} - RANLIB=${RANLIB-"true"} - AR="cc -A";; - SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} - CFLAGS=${CFLAGS-"-O3"} - LDSHARED=${LDSHARED-"cc -dy -KPIC -G"};; - SunOS\ 5*) SFLAGS=${CFLAGS-"-fast -xcg89 -KPIC -R."} - CFLAGS=${CFLAGS-"-fast -xcg89"} - LDSHARED=${LDSHARED-"cc -G"};; - SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"} - CFLAGS=${CFLAGS-"-O2"} - LDSHARED=${LDSHARED-"ld"};; - UNIX_System_V\ 4.2.0) - SFLAGS=${CFLAGS-"-KPIC -O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -G"};; - UNIX_SV\ 4.2MP) - SFLAGS=${CFLAGS-"-Kconform_pic -O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -G"};; - # send working options for other systems to support@gzip.org - *) SFLAGS=${CFLAGS-"-O"} - CFLAGS=${CFLAGS-"-O"} - LDSHARED=${LDSHARED-"cc -shared"};; - esac -fi - -if test $shared -eq 1; then - echo Checking for shared library support... - # we must test in two steps (cc then ld), required at least on SunOS 4.x - if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" && - test "`($LDSHARED -o $test$shared_ext $test.o) 2>&1`" = ""; then - CFLAGS="$SFLAGS" - LIBS="$SHAREDLIB.$VER" - echo Building shared library $SHAREDLIB.$VER with $CC. - elif test -z "$old_cc" -a -z "$old_cflags"; then - echo No shared library suppport. - shared=0; - else - echo 'No shared library suppport; try without defining CC and CFLAGS' - shared=0; - fi -fi -if test $shared -eq 0; then - LDSHARED="$CC" - echo Building static library $LIBS version $VER with $CC. -fi - -if test -f /usr/include/unistd.h; then - CFLAGS="$CFLAGS -DHAVE_UNISTD_H" -fi - -if test ! -f /usr/include/errno.h; then - CFLAGS="$CFLAGS -DNO_ERRNO_H" -fi - -cat > $test.c < -#include -#include -caddr_t hello() { - return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0); -} -EOF -if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then - CFLAGS="$CFLAGS -DUSE_MMAP" - echo Checking for mmap support... Yes. -else - echo Checking for mmap support... No. -fi - -rm -f $test.[co] $test$shared_ext - -# udpate Makefile -sed < Makefile.in " -/^CC *=/s%=.*%=$CC% -/^CFLAGS *=/s%=.*%=$CFLAGS% -/^LDSHARED *=/s%=.*%=$LDSHARED% -/^LIBS *=/s%=.*%=$LIBS% -/^SHAREDLIB *=/s%=.*%=$SHAREDLIB% -/^AR *=/s%=.*%=$AR% -/^RANLIB *=/s%=.*%=$RANLIB% -/^VER *=/s%=.*%=$VER% -/^prefix *=/s%=.*%=$prefix% -" > Makefile diff --git a/src/zlib/crc32.c b/src/zlib/crc32.c deleted file mode 100644 index 52d9cb1f44..0000000000 --- a/src/zlib/crc32.c +++ /dev/null @@ -1,162 +0,0 @@ -/* crc32.c -- compute the CRC-32 of a data stream - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "../zlib/zlib.h" - -#define local static - -#ifdef DYNAMIC_CRC_TABLE - -local int crc_table_empty = 1; -local uLongf crc_table[256]; -local void make_crc_table OF((void)); - -/* - Generate a table for a byte-wise 32-bit CRC calculation on the polynomial: - x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1. - - Polynomials over GF(2) are represented in binary, one bit per coefficient, - with the lowest powers in the most significant bit. Then adding polynomials - is just exclusive-or, and multiplying a polynomial by x is a right shift by - one. If we call the above polynomial p, and represent a byte as the - polynomial q, also with the lowest power in the most significant bit (so the - byte 0xb1 is the polynomial x^7+x^3+x+1), then the CRC is (q*x^32) mod p, - where a mod b means the remainder after dividing a by b. - - This calculation is done using the shift-register method of multiplying and - taking the remainder. The register is initialized to zero, and for each - incoming bit, x^32 is added mod p to the register if the bit is a one (where - x^32 mod p is p+x^32 = x^26+...+1), and the register is multiplied mod p by - x (which is shifting right by one and adding x^32 mod p if the bit shifted - out is a one). We start with the highest power (least significant bit) of - q and repeat for all eight bits of q. - - The table is simply the CRC of all possible eight bit values. This is all - the information needed to generate CRC's on data a byte at a time for all - combinations of CRC register values and incoming bytes. -*/ -local void make_crc_table() -{ - uLong c; - int n, k; - uLong poly; /* polynomial exclusive-or pattern */ - /* terms of polynomial defining this crc (except x^32): */ - static const Byte p[] = {0,1,2,4,5,7,8,10,11,12,16,22,23,26}; - - /* make exclusive-or pattern from polynomial (0xedb88320L) */ - poly = 0L; - for (n = 0; n < sizeof(p)/sizeof(Byte); n++) - poly |= 1L << (31 - p[n]); - - for (n = 0; n < 256; n++) - { - c = (uLong)n; - for (k = 0; k < 8; k++) - c = c & 1 ? poly ^ (c >> 1) : c >> 1; - crc_table[n] = c; - } - crc_table_empty = 0; -} -#else -/* ======================================================================== - * Table of CRC-32's of all single-byte values (made by make_crc_table) - */ -local const uLongf crc_table[256] = { - 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L, - 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L, - 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L, - 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL, - 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L, - 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L, - 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L, - 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL, - 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L, - 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL, - 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L, - 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L, - 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L, - 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL, - 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL, - 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L, - 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL, - 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L, - 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L, - 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L, - 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL, - 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L, - 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L, - 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL, - 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L, - 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L, - 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L, - 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L, - 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L, - 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL, - 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL, - 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L, - 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L, - 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL, - 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL, - 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L, - 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL, - 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L, - 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL, - 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L, - 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL, - 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L, - 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L, - 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL, - 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L, - 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L, - 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L, - 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L, - 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L, - 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L, - 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL, - 0x2d02ef8dL -}; -#endif - -/* ========================================================================= - * This function can be used by asm versions of crc32() - */ -const uLongf * ZEXPORT get_crc_table() -{ -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) make_crc_table(); -#endif - return (const uLongf *)crc_table; -} - -/* ========================================================================= */ -#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8); -#define DO2(buf) DO1(buf); DO1(buf); -#define DO4(buf) DO2(buf); DO2(buf); -#define DO8(buf) DO4(buf); DO4(buf); - -/* ========================================================================= */ -uLong ZEXPORT crc32(crc, buf, len) - uLong crc; - const Bytef *buf; - uInt len; -{ - if (buf == Z_NULL) return 0L; -#ifdef DYNAMIC_CRC_TABLE - if (crc_table_empty) - make_crc_table(); -#endif - crc = crc ^ 0xffffffffL; - while (len >= 8) - { - DO8(buf); - len -= 8; - } - if (len) do { - DO1(buf); - } while (--len); - return crc ^ 0xffffffffL; -} diff --git a/src/zlib/deflate.c b/src/zlib/deflate.c deleted file mode 100644 index 7fb81af14e..0000000000 --- a/src/zlib/deflate.c +++ /dev/null @@ -1,1348 +0,0 @@ -/* deflate.c -- compress data using the deflation algorithm - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * ALGORITHM - * - * The "deflation" process depends on being able to identify portions - * of the input text which are identical to earlier input (within a - * sliding window trailing behind the input currently being processed). - * - * The most straightforward technique turns out to be the fastest for - * most input files: try all possible matches and select the longest. - * The key feature of this algorithm is that insertions into the string - * dictionary are very simple and thus fast, and deletions are avoided - * completely. Insertions are performed at each input character, whereas - * string matches are performed only when the previous match ends. So it - * is preferable to spend more time in matches to allow very fast string - * insertions and avoid deletions. The matching algorithm for small - * strings is inspired from that of Rabin & Karp. A brute force approach - * is used to find longer strings when a small match has been found. - * A similar algorithm is used in comic (by Jan-Mark Wams) and freeze - * (by Leonid Broukhis). - * A previous version of this file used a more sophisticated algorithm - * (by Fiala and Greene) which is guaranteed to run in linear amortized - * time, but has a larger average cost, uses more memory and is patented. - * However the F&G algorithm may be faster for some highly redundant - * files if the parameter max_chain_length (described below) is too large. - * - * ACKNOWLEDGEMENTS - * - * The idea of lazy evaluation of matches is due to Jan-Mark Wams, and - * I found it in 'freeze' written by Leonid Broukhis. - * Thanks to many people for bug reports and testing. - * - * REFERENCES - * - * Deutsch, L.P.,"DEFLATE Compressed Data Format Specification". - * Available in ftp://ds.internic.net/rfc/rfc1951.txt - * - * A description of the Rabin and Karp algorithm is given in the book - * "Algorithms" by R. Sedgewick, Addison-Wesley, p252. - * - * Fiala,E.R., and Greene,D.H. - * Data Compression with Finite Windows, Comm.ACM, 32,4 (1989) 490-595 - * - */ - -/* @(#) $Id$ */ - -#include "deflate.h" - -const char deflate_copyright[] = - " deflate 1.1.2 Copyright 1995-1998 Jean-loup Gailly "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ - -/* =========================================================================== - * Function prototypes. - */ -typedef enum { - need_more, /* block not completed, need more input or more output */ - block_done, /* block flush performed */ - finish_started, /* finish started, need only more output at next deflate */ - finish_done /* finish done, accept no more input or output */ -} block_state; - -typedef block_state (*compress_func) OF((deflate_state *s, int flush)); -/* Compression function. Returns the block state after the call. */ - -local void fill_window OF((deflate_state *s)); -local block_state deflate_stored OF((deflate_state *s, int flush)); -local block_state deflate_fast OF((deflate_state *s, int flush)); -local block_state deflate_slow OF((deflate_state *s, int flush)); -local void lm_init OF((deflate_state *s)); -local void putShortMSB OF((deflate_state *s, uInt b)); -local void flush_pending OF((z_streamp strm)); -local int read_buf OF((z_streamp strm, Bytef *buf, unsigned size)); -#ifdef ASMV - void match_init OF((void)); /* asm code initialization */ - uInt longest_match OF((deflate_state *s, IPos cur_match)); -#else -local uInt longest_match OF((deflate_state *s, IPos cur_match)); -#endif - -#ifdef __WXDEBUG__ -local void check_match OF((deflate_state *s, IPos start, IPos match, - int length)); -#endif - -/* =========================================================================== - * Local data - */ - -#define NIL 0 -/* Tail of hash chains */ - -#ifndef TOO_FAR -# define TOO_FAR 4096 -#endif -/* Matches of length 3 are discarded if their distance exceeds TOO_FAR */ - -#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) -/* Minimum amount of lookahead, except at the end of the input file. - * See deflate.c for comments about the MIN_MATCH+1. - */ - -/* Values for max_lazy_match, good_match and max_chain_length, depending on - * the desired pack level (0..9). The values given below have been tuned to - * exclude worst case performance for pathological files. Better values may be - * found for specific files. - */ -typedef struct config_s { - ush good_length; /* reduce lazy search above this match length */ - ush max_lazy; /* do not perform lazy search above this match length */ - ush nice_length; /* quit search above this match length */ - ush max_chain; - compress_func func; -} config; - -local const config configuration_table[10] = { -/* good lazy nice chain */ -/* 0 */ {0, 0, 0, 0, deflate_stored}, /* store only */ -/* 1 */ {4, 4, 8, 4, deflate_fast}, /* maximum speed, no lazy matches */ -/* 2 */ {4, 5, 16, 8, deflate_fast}, -/* 3 */ {4, 6, 32, 32, deflate_fast}, - -/* 4 */ {4, 4, 16, 16, deflate_slow}, /* lazy matches */ -/* 5 */ {8, 16, 32, 32, deflate_slow}, -/* 6 */ {8, 16, 128, 128, deflate_slow}, -/* 7 */ {8, 32, 128, 256, deflate_slow}, -/* 8 */ {32, 128, 258, 1024, deflate_slow}, -/* 9 */ {32, 258, 258, 4096, deflate_slow}}; /* maximum compression */ - -/* Note: the deflate() code requires max_lazy >= MIN_MATCH and max_chain >= 4 - * For deflate_fast() (levels <= 3) good is ignored and lazy has a different - * meaning. - */ - -#define EQUAL 0 -/* result of memcmp for equal strings */ - -struct static_tree_desc_s {int dummy;}; /* for buggy compilers */ - -/* =========================================================================== - * Update a hash value with the given input byte - * IN assertion: all calls to to UPDATE_HASH are made with consecutive - * input characters, so that a running hash key can be computed from the - * previous key instead of complete recalculation each time. - */ -#define UPDATE_HASH(s,h,c) (h = (((h)<hash_shift) ^ (c)) & s->hash_mask) - - -/* =========================================================================== - * Insert string str in the dictionary and set match_head to the previous head - * of the hash chain (the most recent string with same hash key). Return - * the previous length of the hash chain. - * If this file is compiled with -DFASTEST, the compression level is forced - * to 1, and no hash chains are maintained. - * IN assertion: all calls to to INSERT_STRING are made with consecutive - * input characters and the first MIN_MATCH bytes of str are valid - * (except for the last MIN_MATCH-1 bytes of the input file). - */ -#ifdef FASTEST -#define INSERT_STRING(s, str, match_head) \ - (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ - match_head = s->head[s->ins_h], \ - s->head[s->ins_h] = (Pos)(str)) -#else -#define INSERT_STRING(s, str, match_head) \ - (UPDATE_HASH(s, s->ins_h, s->window[(str) + (MIN_MATCH-1)]), \ - s->prev[(str) & s->w_mask] = match_head = s->head[s->ins_h], \ - s->head[s->ins_h] = (Pos)(str)) -#endif - -/* =========================================================================== - * Initialize the hash table (avoiding 64K overflow for 16 bit systems). - * prev[] will be initialized on the fly. - */ -#define CLEAR_HASH(s) \ - s->head[s->hash_size-1] = NIL; \ - zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head)); - -/* ========================================================================= */ -int ZEXPORT deflateInit_(strm, level, version, stream_size) - z_streamp strm; - int level; - const char *version; - int stream_size; -{ - return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, - Z_DEFAULT_STRATEGY, version, stream_size); - /* To do: ignore strm->next_in if we use it as window */ -} - -/* ========================================================================= */ -int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy, - version, stream_size) - z_streamp strm; - int level; - int method; - int windowBits; - int memLevel; - int strategy; - const char *version; - int stream_size; -{ - deflate_state *s; - int noheader = 0; - static const char* my_version = ZLIB_VERSION; - - ushf *overlay; - /* We overlay pending_buf and d_buf+l_buf. This works since the average - * output size for (length,distance) codes is <= 24 bits. - */ - - if (version == Z_NULL || version[0] != my_version[0] || - stream_size != sizeof(z_stream)) { - return Z_VERSION_ERROR; - } - if (strm == Z_NULL) return Z_STREAM_ERROR; - - strm->msg = Z_NULL; - if (strm->zalloc == Z_NULL) { - strm->zalloc = zcalloc; - strm->opaque = (voidpf)0; - } - if (strm->zfree == Z_NULL) strm->zfree = zcfree; - - if (level == Z_DEFAULT_COMPRESSION) level = 6; -#ifdef FASTEST - level = 1; -#endif - - if (windowBits < 0) { /* undocumented feature: suppress zlib header */ - noheader = 1; - windowBits = -windowBits; - } - if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED || - windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || - strategy < 0 || strategy > Z_HUFFMAN_ONLY) { - return Z_STREAM_ERROR; - } - s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state)); - if (s == Z_NULL) return Z_MEM_ERROR; - strm->state = (struct internal_state FAR *)s; - s->strm = strm; - - s->noheader = noheader; - s->w_bits = windowBits; - s->w_size = 1 << s->w_bits; - s->w_mask = s->w_size - 1; - - s->hash_bits = memLevel + 7; - s->hash_size = 1 << s->hash_bits; - s->hash_mask = s->hash_size - 1; - s->hash_shift = ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH); - - s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte)); - s->prev = (Posf *) ZALLOC(strm, s->w_size, sizeof(Pos)); - s->head = (Posf *) ZALLOC(strm, s->hash_size, sizeof(Pos)); - - s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */ - - overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2); - s->pending_buf = (uchf *) overlay; - s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L); - - if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL || - s->pending_buf == Z_NULL) { - strm->msg = (char*)ERR_MSG(Z_MEM_ERROR); - deflateEnd (strm); - return Z_MEM_ERROR; - } - s->d_buf = overlay + s->lit_bufsize/sizeof(ush); - s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize; - - s->level = level; - s->strategy = strategy; - s->method = (Byte)method; - - return deflateReset(strm); -} - -/* ========================================================================= */ -int ZEXPORT deflateSetDictionary (strm, dictionary, dictLength) - z_streamp strm; - const Bytef *dictionary; - uInt dictLength; -{ - deflate_state *s; - uInt length = dictLength; - uInt n; - IPos hash_head = 0; - - if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL || - strm->state->status != INIT_STATE) return Z_STREAM_ERROR; - - s = strm->state; - strm->adler = adler32(strm->adler, dictionary, dictLength); - - if (length < MIN_MATCH) return Z_OK; - if (length > MAX_DIST(s)) { - length = MAX_DIST(s); -#ifndef USE_DICT_HEAD - dictionary += dictLength - length; /* use the tail of the dictionary */ -#endif - } - zmemcpy(s->window, dictionary, length); - s->strstart = length; - s->block_start = (long)length; - - /* Insert all strings in the hash table (except for the last two bytes). - * s->lookahead stays null, so s->ins_h will be recomputed at the next - * call of fill_window. - */ - s->ins_h = s->window[0]; - UPDATE_HASH(s, s->ins_h, s->window[1]); - for (n = 0; n <= length - MIN_MATCH; n++) { - INSERT_STRING(s, n, hash_head); - } - if (hash_head) hash_head = 0; /* to make compiler happy */ - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateReset (strm) - z_streamp strm; -{ - deflate_state *s; - - if (strm == Z_NULL || strm->state == Z_NULL || - strm->zalloc == Z_NULL || strm->zfree == Z_NULL) return Z_STREAM_ERROR; - - strm->total_in = strm->total_out = 0; - strm->msg = Z_NULL; /* use zfree if we ever allocate msg dynamically */ - strm->data_type = Z_UNKNOWN; - - s = (deflate_state *)strm->state; - s->pending = 0; - s->pending_out = s->pending_buf; - - if (s->noheader < 0) { - s->noheader = 0; /* was set to -1 by deflate(..., Z_FINISH); */ - } - s->status = s->noheader ? BUSY_STATE : INIT_STATE; - strm->adler = 1; - s->last_flush = Z_NO_FLUSH; - - _tr_init(s); - lm_init(s); - - return Z_OK; -} - -/* ========================================================================= */ -int ZEXPORT deflateParams(strm, level, strategy) - z_streamp strm; - int level; - int strategy; -{ - deflate_state *s; - compress_func func; - int err = Z_OK; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - s = strm->state; - - if (level == Z_DEFAULT_COMPRESSION) { - level = 6; - } - if (level < 0 || level > 9 || strategy < 0 || strategy > Z_HUFFMAN_ONLY) { - return Z_STREAM_ERROR; - } - func = configuration_table[s->level].func; - - if (func != configuration_table[level].func && strm->total_in != 0) { - /* Flush the last buffer: */ - err = deflate(strm, Z_PARTIAL_FLUSH); - } - if (s->level != level) { - s->level = level; - s->max_lazy_match = configuration_table[level].max_lazy; - s->good_match = configuration_table[level].good_length; - s->nice_match = configuration_table[level].nice_length; - s->max_chain_length = configuration_table[level].max_chain; - } - s->strategy = strategy; - return err; -} - -/* ========================================================================= - * Put a short in the pending buffer. The 16-bit value is put in MSB order. - * IN assertion: the stream state is correct and there is enough room in - * pending_buf. - */ -local void putShortMSB (s, b) - deflate_state *s; - uInt b; -{ - put_byte(s, (Byte)(b >> 8)); - put_byte(s, (Byte)(b & 0xff)); -} - -/* ========================================================================= - * Flush as much pending output as possible. All deflate() output goes - * through this function so some applications may wish to modify it - * to avoid allocating a large strm->next_out buffer and copying into it. - * (See also read_buf()). - */ -local void flush_pending(strm) - z_streamp strm; -{ - unsigned len = strm->state->pending; - - if (len > strm->avail_out) len = strm->avail_out; - if (len == 0) return; - - zmemcpy(strm->next_out, strm->state->pending_out, len); - strm->next_out += len; - strm->state->pending_out += len; - strm->total_out += len; - strm->avail_out -= len; - strm->state->pending -= len; - if (strm->state->pending == 0) { - strm->state->pending_out = strm->state->pending_buf; - } -} - -/* ========================================================================= */ -int ZEXPORT deflate (strm, flush) - z_streamp strm; - int flush; -{ - int old_flush; /* value of flush param for previous deflate call */ - deflate_state *s; - - if (strm == Z_NULL || strm->state == Z_NULL || - flush > Z_FINISH || flush < 0) { - return Z_STREAM_ERROR; - } - s = strm->state; - - if (strm->next_out == Z_NULL || - (strm->next_in == Z_NULL && strm->avail_in != 0) || - (s->status == FINISH_STATE && flush != Z_FINISH)) { - ERR_RETURN(strm, Z_STREAM_ERROR); - } - if (strm->avail_out == 0) ERR_RETURN(strm, Z_BUF_ERROR); - - s->strm = strm; /* just in case */ - old_flush = s->last_flush; - s->last_flush = flush; - - /* Write the zlib header */ - if (s->status == INIT_STATE) { - - uInt header = (Z_DEFLATED + ((s->w_bits-8)<<4)) << 8; - uInt level_flags = (s->level-1) >> 1; - - if (level_flags > 3) level_flags = 3; - header |= (level_flags << 6); - if (s->strstart != 0) header |= PRESET_DICT; - header += 31 - (header % 31); - - s->status = BUSY_STATE; - putShortMSB(s, header); - - /* Save the adler32 of the preset dictionary: */ - if (s->strstart != 0) { - putShortMSB(s, (uInt)(strm->adler >> 16)); - putShortMSB(s, (uInt)(strm->adler & 0xffff)); - } - strm->adler = 1L; - } - - /* Flush as much pending output as possible */ - if (s->pending != 0) { - flush_pending(strm); - if (strm->avail_out == 0) { - /* Since avail_out is 0, deflate will be called again with - * more output space, but possibly with both pending and - * avail_in equal to zero. There won't be anything to do, - * but this is not an error situation so make sure we - * return OK instead of BUF_ERROR at next call of deflate: - */ - s->last_flush = -1; - return Z_OK; - } - - /* Make sure there is something to do and avoid duplicate consecutive - * flushes. For repeated and useless calls with Z_FINISH, we keep - * returning Z_STREAM_END instead of Z_BUFF_ERROR. - */ - } else if (strm->avail_in == 0 && flush <= old_flush && - flush != Z_FINISH) { - ERR_RETURN(strm, Z_BUF_ERROR); - } - - /* User must not provide more input after the first FINISH: */ - if (s->status == FINISH_STATE && strm->avail_in != 0) { - ERR_RETURN(strm, Z_BUF_ERROR); - } - - /* Start a new block or continue the current one. - */ - if (strm->avail_in != 0 || s->lookahead != 0 || - (flush != Z_NO_FLUSH && s->status != FINISH_STATE)) { - block_state bstate; - - bstate = (*(configuration_table[s->level].func))(s, flush); - - if (bstate == finish_started || bstate == finish_done) { - s->status = FINISH_STATE; - } - if (bstate == need_more || bstate == finish_started) { - if (strm->avail_out == 0) { - s->last_flush = -1; /* avoid BUF_ERROR next call, see above */ - } - return Z_OK; - /* If flush != Z_NO_FLUSH && avail_out == 0, the next call - * of deflate should use the same flush parameter to make sure - * that the flush is complete. So we don't have to output an - * empty block here, this will be done at next call. This also - * ensures that for a very small output buffer, we emit at most - * one empty block. - */ - } - if (bstate == block_done) { - if (flush == Z_PARTIAL_FLUSH) { - _tr_align(s); - } else { /* FULL_FLUSH or SYNC_FLUSH */ - _tr_stored_block(s, (char*)0, 0L, 0); - /* For a full flush, this empty block will be recognized - * as a special marker by inflate_sync(). - */ - if (flush == Z_FULL_FLUSH) { - CLEAR_HASH(s); /* forget history */ - } - } - flush_pending(strm); - if (strm->avail_out == 0) { - s->last_flush = -1; /* avoid BUF_ERROR at next call, see above */ - return Z_OK; - } - } - } - Assert(strm->avail_out > 0, "bug2"); - - if (flush != Z_FINISH) return Z_OK; - if (s->noheader) return Z_STREAM_END; - - /* Write the zlib trailer (adler32) */ - putShortMSB(s, (uInt)(strm->adler >> 16)); - putShortMSB(s, (uInt)(strm->adler & 0xffff)); - flush_pending(strm); - /* If avail_out is zero, the application will call deflate again - * to flush the rest. - */ - s->noheader = -1; /* write the trailer only once! */ - return s->pending != 0 ? Z_OK : Z_STREAM_END; -} - -/* ========================================================================= */ -int ZEXPORT deflateEnd (strm) - z_streamp strm; -{ - int status; - - if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR; - - status = strm->state->status; - if (status != INIT_STATE && status != BUSY_STATE && - status != FINISH_STATE) { - return Z_STREAM_ERROR; - } - - /* Deallocate in reverse order of allocations: */ - TRY_FREE(strm, strm->state->pending_buf); - TRY_FREE(strm, strm->state->head); - TRY_FREE(strm, strm->state->prev); - TRY_FREE(strm, strm->state->window); - - ZFREE(strm, strm->state); - strm->state = Z_NULL; - - return status == BUSY_STATE ? Z_DATA_ERROR : Z_OK; -} - -/* ========================================================================= - * Copy the source state to the destination state. - * To simplify the source, this is not supported for 16-bit MSDOS (which - * doesn't have enough memory anyway to duplicate compression states). - */ -int ZEXPORT deflateCopy (dest, source) - z_streamp dest; - z_streamp source; -{ -#ifdef MAXSEG_64K - return Z_STREAM_ERROR; -#else - deflate_state *ds; - deflate_state *ss; - ushf *overlay; - - ss = source->state; - - if (source == Z_NULL || dest == Z_NULL || ss == Z_NULL) { - return Z_STREAM_ERROR; - } - *dest = *source; - - ds = (deflate_state *) ZALLOC(dest, 1, sizeof(deflate_state)); - if (ds == Z_NULL) return Z_MEM_ERROR; - dest->state = (struct internal_state FAR *) ds; - *ds = *ss; - ds->strm = dest; - - ds->window = (Bytef *) ZALLOC(dest, ds->w_size, 2*sizeof(Byte)); - ds->prev = (Posf *) ZALLOC(dest, ds->w_size, sizeof(Pos)); - ds->head = (Posf *) ZALLOC(dest, ds->hash_size, sizeof(Pos)); - overlay = (ushf *) ZALLOC(dest, ds->lit_bufsize, sizeof(ush)+2); - ds->pending_buf = (uchf *) overlay; - - if (ds->window == Z_NULL || ds->prev == Z_NULL || ds->head == Z_NULL || - ds->pending_buf == Z_NULL) { - deflateEnd (dest); - return Z_MEM_ERROR; - } - /* following zmemcpy do not work for 16-bit MSDOS */ - zmemcpy(ds->window, ss->window, ds->w_size * 2 * sizeof(Byte)); - zmemcpy(ds->prev, ss->prev, ds->w_size * sizeof(Pos)); - zmemcpy(ds->head, ss->head, ds->hash_size * sizeof(Pos)); - zmemcpy(ds->pending_buf, ss->pending_buf, (uInt)ds->pending_buf_size); - - ds->pending_out = ds->pending_buf + (ss->pending_out - ss->pending_buf); - ds->d_buf = overlay + ds->lit_bufsize/sizeof(ush); - ds->l_buf = ds->pending_buf + (1+sizeof(ush))*ds->lit_bufsize; - - ds->l_desc.dyn_tree = ds->dyn_ltree; - ds->d_desc.dyn_tree = ds->dyn_dtree; - ds->bl_desc.dyn_tree = ds->bl_tree; - - return Z_OK; -#endif -} - -/* =========================================================================== - * Read a new buffer from the current input stream, update the adler32 - * and total number of bytes read. All deflate() input goes through - * this function so some applications may wish to modify it to avoid - * allocating a large strm->next_in buffer and copying from it. - * (See also flush_pending()). - */ -local int read_buf(strm, buf, size) - z_streamp strm; - Bytef *buf; - unsigned size; -{ - unsigned len = strm->avail_in; - - if (len > size) len = size; - if (len == 0) return 0; - - strm->avail_in -= len; - - if (!strm->state->noheader) { - strm->adler = adler32(strm->adler, strm->next_in, len); - } - zmemcpy(buf, strm->next_in, len); - strm->next_in += len; - strm->total_in += len; - - return (int)len; -} - -/* =========================================================================== - * Initialize the "longest match" routines for a new zlib stream - */ -local void lm_init (s) - deflate_state *s; -{ - s->window_size = (ulg)2L*s->w_size; - - CLEAR_HASH(s); - - /* Set the default configuration parameters: - */ - s->max_lazy_match = configuration_table[s->level].max_lazy; - s->good_match = configuration_table[s->level].good_length; - s->nice_match = configuration_table[s->level].nice_length; - s->max_chain_length = configuration_table[s->level].max_chain; - - s->strstart = 0; - s->block_start = 0L; - s->lookahead = 0; - s->match_length = s->prev_length = MIN_MATCH-1; - s->match_available = 0; - s->ins_h = 0; -#ifdef ASMV - match_init(); /* initialize the asm code */ -#endif -} - -/* =========================================================================== - * Set match_start to the longest match starting at the given string and - * return its length. Matches shorter or equal to prev_length are discarded, - * in which case the result is equal to prev_length and match_start is - * garbage. - * IN assertions: cur_match is the head of the hash chain for the current - * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1 - * OUT assertion: the match length is not greater than s->lookahead. - */ -#ifndef ASMV -/* For 80x86 and 680x0, an optimized version will be provided in match.asm or - * match.S. The code will be functionally equivalent. - */ -#ifndef FASTEST -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ - unsigned chain_length = s->max_chain_length;/* max hash chain length */ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ - int best_len = s->prev_length; /* best match length so far */ - int nice_match = s->nice_match; /* stop if match long enough */ - IPos limit = s->strstart > (IPos)MAX_DIST(s) ? - s->strstart - (IPos)MAX_DIST(s) : NIL; - /* Stop when cur_match becomes <= limit. To simplify the code, - * we prevent matches with the string of window index 0. - */ - Posf *prev = s->prev; - uInt wmask = s->w_mask; - -#ifdef UNALIGNED_OK - /* Compare two bytes at a time. Note: this is not always beneficial. - * Try with and without -DUNALIGNED_OK to check. - */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH - 1; - register ush scan_start = *(ushf*)scan; - register ush scan_end = *(ushf*)(scan+best_len-1); -#else - register Bytef *strend = s->window + s->strstart + MAX_MATCH; - register Byte scan_end1 = scan[best_len-1]; - register Byte scan_end = scan[best_len]; -#endif - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - /* Do not waste too much time if we already have a good match: */ - if (s->prev_length >= s->good_match) { - chain_length >>= 2; - } - /* Do not look for matches beyond the end of the input. This is necessary - * to make deflate deterministic. - */ - if ((uInt)nice_match > s->lookahead) nice_match = s->lookahead; - - Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - do { - Assert(cur_match < s->strstart, "no future"); - match = s->window + cur_match; - - /* Skip to next match if the match length cannot increase - * or if the match length is less than 2: - */ -#if (defined(UNALIGNED_OK) && MAX_MATCH == 258) - /* This code assumes sizeof(unsigned short) == 2. Do not use - * UNALIGNED_OK if your compiler uses a different size. - */ - if (*(ushf*)(match+best_len-1) != scan_end || - *(ushf*)match != scan_start) continue; - - /* It is not necessary to compare scan[2] and match[2] since they are - * always equal when the other bytes match, given that the hash keys - * are equal and that HASH_BITS >= 8. Compare 2 bytes at a time at - * strstart+3, +5, ... up to strstart+257. We check for insufficient - * lookahead only every 4th comparison; the 128th check will be made - * at strstart+257. If MAX_MATCH-2 is not a multiple of 8, it is - * necessary to put more guard bytes at the end of the window, or - * to check more often for insufficient lookahead. - */ - Assert(scan[2] == match[2], "scan[2]?"); - scan++, match++; - do { - } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - *(ushf*)(scan+=2) == *(ushf*)(match+=2) && - scan < strend); - /* The funny "do {}" generates better code on most compilers */ - - /* Here, scan <= window+strstart+257 */ - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - if (*scan == *match) scan++; - - len = (MAX_MATCH - 1) - (int)(strend-scan); - scan = strend - (MAX_MATCH-1); - -#else /* UNALIGNED_OK */ - - if (match[best_len] != scan_end || - match[best_len-1] != scan_end1 || - *match != *scan || - *++match != scan[1]) continue; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match++; - Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while (*++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (int)(strend - scan); - scan = strend - MAX_MATCH; - -#endif /* UNALIGNED_OK */ - - if (len > best_len) { - s->match_start = cur_match; - best_len = len; - if (len >= nice_match) break; -#ifdef UNALIGNED_OK - scan_end = *(ushf*)(scan+best_len-1); -#else - scan_end1 = scan[best_len-1]; - scan_end = scan[best_len]; -#endif - } - } while ((cur_match = prev[cur_match & wmask]) > limit - && --chain_length != 0); - - if ((uInt)best_len <= s->lookahead) return (uInt)best_len; - return s->lookahead; -} - -#else /* FASTEST */ -/* --------------------------------------------------------------------------- - * Optimized version for level == 1 only - */ -local uInt longest_match(s, cur_match) - deflate_state *s; - IPos cur_match; /* current match */ -{ - register Bytef *scan = s->window + s->strstart; /* current string */ - register Bytef *match; /* matched string */ - register int len; /* length of current match */ - register Bytef *strend = s->window + s->strstart + MAX_MATCH; - - /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16. - * It is easy to get rid of this optimization if necessary. - */ - Assert(s->hash_bits >= 8 && MAX_MATCH == 258, "Code too clever"); - - Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, "need lookahead"); - - Assert(cur_match < s->strstart, "no future"); - - match = s->window + cur_match; - - /* Return failure if the match length is less than 2: - */ - if (match[0] != scan[0] || match[1] != scan[1]) return MIN_MATCH-1; - - /* The check at best_len-1 can be removed because it will be made - * again later. (This heuristic is not always a win.) - * It is not necessary to compare scan[2] and match[2] since they - * are always equal when the other bytes match, given that - * the hash keys are equal and that HASH_BITS >= 8. - */ - scan += 2, match += 2; - Assert(*scan == *match, "match[2]?"); - - /* We check for insufficient lookahead only every 8th comparison; - * the 256th check will be made at strstart+258. - */ - do { - } while (*++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - *++scan == *++match && *++scan == *++match && - scan < strend); - - Assert(scan <= s->window+(unsigned)(s->window_size-1), "wild scan"); - - len = MAX_MATCH - (int)(strend - scan); - - if (len < MIN_MATCH) return MIN_MATCH - 1; - - s->match_start = cur_match; - return len <= s->lookahead ? len : s->lookahead; -} -#endif /* FASTEST */ -#endif /* ASMV */ - -#ifdef __WXDEBUG__ -/* =========================================================================== - * Check that the match at match_start is indeed a match. - */ -local void check_match(s, start, match, length) - deflate_state *s; - IPos start, match; - int length; -{ - /* check that the match is indeed a match */ - if (zmemcmp(s->window + match, - s->window + start, length) != EQUAL) { - fprintf(stderr, " start %u, match %u, length %d\n", - start, match, length); - do { - fprintf(stderr, "%c%c", s->window[match++], s->window[start++]); - } while (--length != 0); - z_error("invalid match"); - } - if (z_verbose > 1) { - fprintf(stderr,"\\[%d,%d]", start-match, length); - do { putc(s->window[start++], stderr); } while (--length != 0); - } -} -#else -# define check_match(s, start, match, length) -#endif - -/* =========================================================================== - * Fill the window when the lookahead becomes insufficient. - * Updates strstart and lookahead. - * - * IN assertion: lookahead < MIN_LOOKAHEAD - * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD - * At least one byte has been read, or avail_in == 0; reads are - * performed for at least two bytes (required for the zip translate_eol - * option -- not supported here). - */ -local void fill_window(s) - deflate_state *s; -{ - register unsigned n, m; - register Posf *p; - unsigned more; /* Amount of free space at the end of the window. */ - uInt wsize = s->w_size; - - do { - more = (unsigned)(s->window_size -(ulg)s->lookahead -(ulg)s->strstart); - - /* Deal with !@#$% 64K limit: */ - if (more == 0 && s->strstart == 0 && s->lookahead == 0) { - more = wsize; - - } else if (more == (unsigned)(-1)) { - /* Very unlikely, but possible on 16 bit machine if strstart == 0 - * and lookahead == 1 (input done one byte at time) - */ - more--; - - /* If the window is almost full and there is insufficient lookahead, - * move the upper half to the lower one to make room in the upper half. - */ - } else if (s->strstart >= wsize+MAX_DIST(s)) { - - zmemcpy(s->window, s->window+wsize, (unsigned)wsize); - s->match_start -= wsize; - s->strstart -= wsize; /* we now have strstart >= MAX_DIST */ - s->block_start -= (long) wsize; - - /* Slide the hash table (could be avoided with 32 bit values - at the expense of memory usage). We slide even when level == 0 - to keep the hash table consistent if we switch back to level > 0 - later. (Using level 0 permanently is not an optimal usage of - zlib, so we don't care about this pathological case.) - */ - n = s->hash_size; - p = &s->head[n]; - do { - m = *--p; - *p = (Pos)(m >= wsize ? m-wsize : NIL); - } while (--n); - - n = wsize; -#ifndef FASTEST - p = &s->prev[n]; - do { - m = *--p; - *p = (Pos)(m >= wsize ? m-wsize : NIL); - /* If n is not on any hash chain, prev[n] is garbage but - * its value will never be used. - */ - } while (--n); -#endif - more += wsize; - } - if (s->strm->avail_in == 0) return; - - /* If there was no sliding: - * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 && - * more == window_size - lookahead - strstart - * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1) - * => more >= window_size - 2*WSIZE + 2 - * In the BIG_MEM or MMAP case (not yet supported), - * window_size == input_size + MIN_LOOKAHEAD && - * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD. - * Otherwise, window_size == 2*WSIZE so more >= 2. - * If there was sliding, more >= WSIZE. So in all cases, more >= 2. - */ - Assert(more >= 2, "more < 2"); - - n = read_buf(s->strm, s->window + s->strstart + s->lookahead, more); - s->lookahead += n; - - /* Initialize the hash value now that we have some input: */ - if (s->lookahead >= MIN_MATCH) { - s->ins_h = s->window[s->strstart]; - UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - } - /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage, - * but this is not important since only literal bytes will be emitted. - */ - - } while (s->lookahead < MIN_LOOKAHEAD && s->strm->avail_in != 0); -} - -/* =========================================================================== - * Flush the current block, with given end-of-file flag. - * IN assertion: strstart is set to the end of the current match. - */ -#define FLUSH_BLOCK_ONLY(s, eof) { \ - _tr_flush_block(s, (s->block_start >= 0L ? \ - (charf *)&s->window[(unsigned)s->block_start] : \ - (charf *)Z_NULL), \ - (ulg)((long)s->strstart - s->block_start), \ - (eof)); \ - s->block_start = s->strstart; \ - flush_pending(s->strm); \ - Tracev((stderr,"[FLUSH]")); \ -} - -/* Same but force premature exit if necessary. */ -#define FLUSH_BLOCK(s, eof) { \ - FLUSH_BLOCK_ONLY(s, eof); \ - if (s->strm->avail_out == 0) return (eof) ? finish_started : need_more; \ -} - -/* =========================================================================== - * Copy without compression as much as possible from the input stream, return - * the current block state. - * This function does not insert new strings in the dictionary since - * uncompressible data is probably not useful. This function is used - * only for the level=0 compression option. - * NOTE: this function should be optimized to avoid extra copying from - * window to pending_buf. - */ -local block_state deflate_stored(s, flush) - deflate_state *s; - int flush; -{ - /* Stored blocks are limited to 0xffff bytes, pending_buf is limited - * to pending_buf_size, and each stored block has a 5 byte header: - */ - ulg max_block_size = 0xffff; - ulg max_start; - - if (max_block_size > s->pending_buf_size - 5) { - max_block_size = s->pending_buf_size - 5; - } - - /* Copy as much as possible from input to output: */ - for (;;) { - /* Fill the window as much as possible: */ - if (s->lookahead <= 1) { - - Assert(s->strstart < s->w_size+MAX_DIST(s) || - s->block_start >= (long)s->w_size, "slide too late"); - - fill_window(s); - if (s->lookahead == 0 && flush == Z_NO_FLUSH) return need_more; - - if (s->lookahead == 0) break; /* flush the current block */ - } - Assert(s->block_start >= 0L, "block gone"); - - s->strstart += s->lookahead; - s->lookahead = 0; - - /* Emit a stored block if pending_buf will be full: */ - max_start = s->block_start + max_block_size; - if (s->strstart == 0 || (ulg)s->strstart >= max_start) { - /* strstart == 0 is possible when wraparound on 16-bit machine */ - s->lookahead = (uInt)(s->strstart - max_start); - s->strstart = (uInt)max_start; - FLUSH_BLOCK(s, 0); - } - /* Flush if we may have to slide, otherwise block_start may become - * negative and the data will be gone: - */ - if (s->strstart - (uInt)s->block_start >= MAX_DIST(s)) { - FLUSH_BLOCK(s, 0); - } - } - FLUSH_BLOCK(s, flush == Z_FINISH); - return flush == Z_FINISH ? finish_done : block_done; -} - -/* =========================================================================== - * Compress as much as possible from the input stream, return the current - * block state. - * This function does not perform lazy evaluation of matches and inserts - * new strings in the dictionary only for unmatched strings or for short - * matches. It is used only for the fast compression options. - */ -local block_state deflate_fast(s, flush) - deflate_state *s; - int flush; -{ - IPos hash_head = NIL; /* head of the hash chain */ - int bflush; /* set if current block must be flushed */ - - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s->lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - if (s->lookahead >= MIN_MATCH) { - INSERT_STRING(s, s->strstart, hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - * At this point we have always match_length < MIN_MATCH - */ - if (hash_head != NIL && s->strstart - hash_head <= MAX_DIST(s)) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - if (s->strategy != Z_HUFFMAN_ONLY) { - s->match_length = longest_match (s, hash_head); - } - /* longest_match() sets match_start */ - } - if (s->match_length >= MIN_MATCH) { - check_match(s, s->strstart, s->match_start, s->match_length); - - _tr_tally_dist(s, s->strstart - s->match_start, - s->match_length - MIN_MATCH, bflush); - - s->lookahead -= s->match_length; - - /* Insert new strings in the hash table only if the match length - * is not too large. This saves time but degrades compression. - */ -#ifndef FASTEST - if (s->match_length <= s->max_insert_length && - s->lookahead >= MIN_MATCH) { - s->match_length--; /* string at strstart already in hash table */ - do { - s->strstart++; - INSERT_STRING(s, s->strstart, hash_head); - /* strstart never exceeds WSIZE-MAX_MATCH, so there are - * always MIN_MATCH bytes ahead. - */ - } while (--s->match_length != 0); - s->strstart++; - } else -#endif - { - s->strstart += s->match_length; - s->match_length = 0; - s->ins_h = s->window[s->strstart]; - UPDATE_HASH(s, s->ins_h, s->window[s->strstart+1]); -#if MIN_MATCH != 3 - Call UPDATE_HASH() MIN_MATCH-3 more times -#endif - /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not - * matter since it will be recomputed at next deflate call. - */ - } - } else { - /* No match, output a literal byte */ - Tracevv((stderr,"%c", s->window[s->strstart])); - _tr_tally_lit (s, s->window[s->strstart], bflush); - s->lookahead--; - s->strstart++; - } - if (bflush) FLUSH_BLOCK(s, 0); - } - FLUSH_BLOCK(s, flush == Z_FINISH); - return flush == Z_FINISH ? finish_done : block_done; -} - -/* =========================================================================== - * Same as above, but achieves better compression. We use a lazy - * evaluation for matches: a match is finally adopted only if there is - * no better match at the next window position. - */ -local block_state deflate_slow(s, flush) - deflate_state *s; - int flush; -{ - IPos hash_head = NIL; /* head of hash chain */ - int bflush; /* set if current block must be flushed */ - - /* Process the input block. */ - for (;;) { - /* Make sure that we always have enough lookahead, except - * at the end of the input file. We need MAX_MATCH bytes - * for the next match, plus MIN_MATCH bytes to insert the - * string following the next match. - */ - if (s->lookahead < MIN_LOOKAHEAD) { - fill_window(s); - if (s->lookahead < MIN_LOOKAHEAD && flush == Z_NO_FLUSH) { - return need_more; - } - if (s->lookahead == 0) break; /* flush the current block */ - } - - /* Insert the string window[strstart .. strstart+2] in the - * dictionary, and set hash_head to the head of the hash chain: - */ - if (s->lookahead >= MIN_MATCH) { - INSERT_STRING(s, s->strstart, hash_head); - } - - /* Find the longest match, discarding those <= prev_length. - */ - s->prev_length = s->match_length, s->prev_match = s->match_start; - s->match_length = MIN_MATCH-1; - - if (hash_head != NIL && s->prev_length < s->max_lazy_match && - s->strstart - hash_head <= MAX_DIST(s)) { - /* To simplify the code, we prevent matches with the string - * of window index 0 (in particular we have to avoid a match - * of the string with itself at the start of the input file). - */ - if (s->strategy != Z_HUFFMAN_ONLY) { - s->match_length = longest_match (s, hash_head); - } - /* longest_match() sets match_start */ - - if (s->match_length <= 5 && (s->strategy == Z_FILTERED || - (s->match_length == MIN_MATCH && - s->strstart - s->match_start > TOO_FAR))) { - - /* If prev_match is also MIN_MATCH, match_start is garbage - * but we will ignore the current match anyway. - */ - s->match_length = MIN_MATCH-1; - } - } - /* If there was a match at the previous step and the current - * match is not better, output the previous match: - */ - if (s->prev_length >= MIN_MATCH && s->match_length <= s->prev_length) { - uInt max_insert = s->strstart + s->lookahead - MIN_MATCH; - /* Do not insert strings in hash table beyond this. */ - - check_match(s, s->strstart-1, s->prev_match, s->prev_length); - - _tr_tally_dist(s, s->strstart -1 - s->prev_match, - s->prev_length - MIN_MATCH, bflush); - - /* Insert in hash table all strings up to the end of the match. - * strstart-1 and strstart are already inserted. If there is not - * enough lookahead, the last two strings are not inserted in - * the hash table. - */ - s->lookahead -= s->prev_length-1; - s->prev_length -= 2; - do { - if (++s->strstart <= max_insert) { - INSERT_STRING(s, s->strstart, hash_head); - } - } while (--s->prev_length != 0); - s->match_available = 0; - s->match_length = MIN_MATCH-1; - s->strstart++; - - if (bflush) FLUSH_BLOCK(s, 0); - - } else if (s->match_available) { - /* If there was no match at the previous position, output a - * single literal. If there was a match but the current match - * is longer, truncate the previous match to a single literal. - */ - Tracevv((stderr,"%c", s->window[s->strstart-1])); - _tr_tally_lit(s, s->window[s->strstart-1], bflush); - if (bflush) { - FLUSH_BLOCK_ONLY(s, 0); - } - s->strstart++; - s->lookahead--; - if (s->strm->avail_out == 0) return need_more; - } else { - /* There is no previous match to compare with, wait for - * the next step to decide. - */ - s->match_available = 1; - s->strstart++; - s->lookahead--; - } - } - Assert (flush != Z_NO_FLUSH, "no flush?"); - if (s->match_available) { - Tracevv((stderr,"%c", s->window[s->strstart-1])); - _tr_tally_lit(s, s->window[s->strstart-1], bflush); - s->match_available = 0; - } - FLUSH_BLOCK(s, flush == Z_FINISH); - return flush == Z_FINISH ? finish_done : block_done; -} diff --git a/src/zlib/deflate.h b/src/zlib/deflate.h deleted file mode 100644 index ef26c00c2a..0000000000 --- a/src/zlib/deflate.h +++ /dev/null @@ -1,318 +0,0 @@ -/* deflate.h -- internal compression state - * Copyright (C) 1995-1998 Jean-loup Gailly - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* @(#) $Id$ */ - -#ifndef _DEFLATE_H -#define _DEFLATE_H - -#include "zutil.h" - -/* =========================================================================== - * Internal compression state. - */ - -#define LENGTH_CODES 29 -/* number of length codes, not counting the special END_BLOCK code */ - -#define LITERALS 256 -/* number of literal bytes 0..255 */ - -#define L_CODES (LITERALS+1+LENGTH_CODES) -/* number of Literal or Length codes, including the END_BLOCK code */ - -#define D_CODES 30 -/* number of distance codes */ - -#define BL_CODES 19 -/* number of codes used to transfer the bit lengths */ - -#define HEAP_SIZE (2*L_CODES+1) -/* maximum heap size */ - -#define MAX_BITS 15 -/* All codes must not exceed MAX_BITS bits */ - -#define INIT_STATE 42 -#define BUSY_STATE 113 -#define FINISH_STATE 666 -/* Stream status */ - - -/* Data structure describing a single value and its code string. */ -typedef struct ct_data_s { - union { - ush freq; /* frequency count */ - ush code; /* bit string */ - } fc; - union { - ush dad; /* father node in Huffman tree */ - ush len; /* length of bit string */ - } dl; -} FAR ct_data; - -#define Freq fc.freq -#define Code fc.code -#define Dad dl.dad -#define Len dl.len - -typedef struct static_tree_desc_s static_tree_desc; - -typedef struct tree_desc_s { - ct_data *dyn_tree; /* the dynamic tree */ - int max_code; /* largest code with non zero frequency */ - static_tree_desc *stat_desc; /* the corresponding static tree */ -} FAR tree_desc; - -typedef ush Pos; -typedef Pos FAR Posf; -typedef unsigned IPos; - -/* A Pos is an index in the character window. We use short instead of int to - * save space in the various tables. IPos is used only for parameter passing. - */ - -typedef struct internal_state { - z_streamp strm; /* pointer back to this zlib stream */ - int status; /* as the name implies */ - Bytef *pending_buf; /* output still pending */ - ulg pending_buf_size; /* size of pending_buf */ - Bytef *pending_out; /* next pending byte to output to the stream */ - int pending; /* nb of bytes in the pending buffer */ - int noheader; /* suppress zlib header and adler32 */ - Byte data_type; /* UNKNOWN, BINARY or ASCII */ - Byte method; /* STORED (for zip only) or DEFLATED */ - int last_flush; /* value of flush param for previous deflate call */ - - /* used by deflate.c: */ - - uInt w_size; /* LZ77 window size (32K by default) */ - uInt w_bits; /* log2(w_size) (8..16) */ - uInt w_mask; /* w_size - 1 */ - - Bytef *window; - /* Sliding window. Input bytes are read into the second half of the window, - * and move to the first half later to keep a dictionary of at least wSize - * bytes. With this organization, matches are limited to a distance of - * wSize-MAX_MATCH bytes, but this ensures that IO is always - * performed with a length multiple of the block size. Also, it limits - * the window size to 64K, which is quite useful on MSDOS. - * To do: use the user input buffer as sliding window. - */ - - ulg window_size; - /* Actual size of window: 2*wSize, except when the user input buffer - * is directly used as sliding window. - */ - - Posf *prev; - /* Link to older string with same hash index. To limit the size of this - * array to 64K, this link is maintained only for the last 32K strings. - * An index in this array is thus a window index modulo 32K. - */ - - Posf *head; /* Heads of the hash chains or NIL. */ - - uInt ins_h; /* hash index of string to be inserted */ - uInt hash_size; /* number of elements in hash table */ - uInt hash_bits; /* log2(hash_size) */ - uInt hash_mask; /* hash_size-1 */ - - uInt hash_shift; - /* Number of bits by which ins_h must be shifted at each input - * step. It must be such that after MIN_MATCH steps, the oldest - * byte no longer takes part in the hash key, that is: - * hash_shift * MIN_MATCH >= hash_bits - */ - - long block_start; - /* Window position at the beginning of the current output block. Gets - * negative when the window is moved backwards. - */ - - uInt match_length; /* length of best match */ - IPos prev_match; /* previous match */ - int match_available; /* set if previous match exists */ - uInt strstart; /* start of string to insert */ - uInt match_start; /* start of matching string */ - uInt lookahead; /* number of valid bytes ahead in window */ - - uInt prev_length; - /* Length of the best match at previous step. Matches not greater than this - * are discarded. This is used in the lazy match evaluation. - */ - - uInt max_chain_length; - /* To speed up deflation, hash chains are never searched beyond this - * length. A higher limit improves compression ratio but degrades the - * speed. - */ - - uInt max_lazy_match; - /* Attempt to find a better match only when the current match is strictly - * smaller than this value. This mechanism is used only for compression - * levels >= 4. - */ -# define max_insert_length max_lazy_match - /* Insert new strings in the hash table only if the match length is not - * greater than this length. This saves time but degrades compression. - * max_insert_length is used only for compression levels <= 3. - */ - - int level; /* compression level (1..9) */ - int strategy; /* favor or force Huffman coding*/ - - uInt good_match; - /* Use a faster search when the previous match is longer than this */ - - int nice_match; /* Stop searching when current match exceeds this */ - - /* used by trees.c: */ - /* Didn't use ct_data typedef below to supress compiler warning */ - struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */ - struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */ - struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */ - - struct tree_desc_s l_desc; /* desc. for literal tree */ - struct tree_desc_s d_desc; /* desc. for distance tree */ - struct tree_desc_s bl_desc; /* desc. for bit length tree */ - - ush bl_count[MAX_BITS+1]; - /* number of codes at each bit length for an optimal tree */ - - int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */ - int heap_len; /* number of elements in the heap */ - int heap_max; /* element of largest frequency */ - /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used. - * The same heap array is used to build all trees. - */ - - uch depth[2*L_CODES+1]; - /* Depth of each subtree used as tie breaker for trees of equal frequency - */ - - uchf *l_buf; /* buffer for literals or lengths */ - - uInt lit_bufsize; - /* Size of match buffer for literals/lengths. There are 4 reasons for - * limiting lit_bufsize to 64K: - * - frequencies can be kept in 16 bit counters - * - if compression is not successful for the first block, all input - * data is still in the window so we can still emit a stored block even - * when input comes from standard input. (This can also be done for - * all blocks if lit_bufsize is not greater than 32K.) - * - if compression is not successful for a file smaller than 64K, we can - * even emit a stored file instead of a stored block (saving 5 bytes). - * This is applicable only for zip (not gzip or zlib). - * - creating new Huffman trees less frequently may not provide fast - * adaptation to changes in the input data statistics. (Take for - * example a binary file with poorly compressible code followed by - * a highly compressible string table.) Smaller buffer sizes give - * fast adaptation but have of course the overhead of transmitting - * trees more frequently. - * - I can't count above 4 - */ - - uInt last_lit; /* running index in l_buf */ - - ushf *d_buf; - /* Buffer for distances. To simplify the code, d_buf and l_buf have - * the same number of elements. To use different lengths, an extra flag - * array would be necessary. - */ - - ulg opt_len; /* bit length of current block with optimal trees */ - ulg static_len; /* bit length of current block with static trees */ - ulg compressed_len; /* total bit length of compressed file */ - uInt matches; /* number of string matches in current block */ - int last_eob_len; /* bit length of EOB code for last block */ - -#ifdef __WXDEBUG__ - ulg bits_sent; /* bit length of the compressed data */ -#endif - - ush bi_buf; - /* Output buffer. bits are inserted starting at the bottom (least - * significant bits). - */ - int bi_valid; - /* Number of valid bits in bi_buf. All bits above the last valid bit - * are always zero. - */ - -} FAR deflate_state; - -/* Output a byte on the stream. - * IN assertion: there is enough room in pending_buf. - */ -#define put_byte(s, c) {s->pending_buf[s->pending++] = (c);} - - -#define MIN_LOOKAHEAD (MAX_MATCH+MIN_MATCH+1) -/* Minimum amount of lookahead, except at the end of the input file. - * See deflate.c for comments about the MIN_MATCH+1. - */ - -#define MAX_DIST(s) ((s)->w_size-MIN_LOOKAHEAD) -/* In order to simplify the code, particularly on 16 bit machines, match - * distances are limited to MAX_DIST instead of WSIZE. - */ - - /* in trees.c */ -void _tr_init OF((deflate_state *s)); -int _tr_tally OF((deflate_state *s, unsigned dist, unsigned lc)); -ulg _tr_flush_block OF((deflate_state *s, charf *buf, ulg stored_len, - int eof)); -void _tr_align OF((deflate_state *s)); -void _tr_stored_block OF((deflate_state *s, charf *buf, ulg stored_len, - int eof)); - -#define d_code(dist) \ - ((dist) < 256 ? _dist_code[dist] : _dist_code[256+((dist)>>7)]) -/* Mapping from a distance to a distance code. dist is the distance - 1 and - * must not have side effects. _dist_code[256] and _dist_code[257] are never - * used. - */ - -#ifndef __WXDEBUG__ -/* Inline versions of _tr_tally for speed: */ - -#if defined(GEN_TREES_H) || !defined(STDC) - extern uch _length_code[]; - extern uch _dist_code[]; -#else - extern const uch _length_code[]; - extern const uch _dist_code[]; -#endif - -# define _tr_tally_lit(s, c, flush) \ - { uch cc = (c); \ - s->d_buf[s->last_lit] = 0; \ - s->l_buf[s->last_lit++] = cc; \ - s->dyn_ltree[cc].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ - } -# define _tr_tally_dist(s, distance, length, flush) \ - { uch len = (length); \ - ush dist = (distance); \ - s->d_buf[s->last_lit] = dist; \ - s->l_buf[s->last_lit++] = len; \ - dist--; \ - s->dyn_ltree[_length_code[len]+LITERALS+1].Freq++; \ - s->dyn_dtree[d_code(dist)].Freq++; \ - flush = (s->last_lit == s->lit_bufsize-1); \ - } -#else -# define _tr_tally_lit(s, c, flush) flush = _tr_tally(s, 0, c) -# define _tr_tally_dist(s, distance, length, flush) \ - flush = _tr_tally(s, distance, length) -#endif - -#endif diff --git a/src/zlib/descrip.mms b/src/zlib/descrip.mms deleted file mode 100644 index 9d364598a2..0000000000 --- a/src/zlib/descrip.mms +++ /dev/null @@ -1,48 +0,0 @@ -# descrip.mms: MMS description file for building zlib on VMS -# written by Martin P.J. Zinser - -cc_defs = -c_deb = - -.ifdef __DECC__ -pref = /prefix=all -.endif - -OBJS = adler32.obj, compress.obj, crc32.obj, gzio.obj, uncompr.obj,\ - deflate.obj, trees.obj, zutil.obj, inflate.obj, infblock.obj,\ - inftrees.obj, infcodes.obj, infutil.obj, inffast.obj - -CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF) - -all : example.exe minigzip.exe - @ write sys$output " Example applications available" -libz.olb : libz.olb($(OBJS)) - @ write sys$output " libz available" - -example.exe : example.obj libz.olb - link example,libz.olb/lib - -minigzip.exe : minigzip.obj libz.olb - link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib - -clean : - delete *.obj;*,libz.olb;* - - -# Other dependencies. -adler32.obj : zutil.h zlib.h zconf.h -compress.obj : zlib.h zconf.h -crc32.obj : zutil.h zlib.h zconf.h -deflate.obj : deflate.h zutil.h zlib.h zconf.h -example.obj : zlib.h zconf.h -gzio.obj : zutil.h zlib.h zconf.h -infblock.obj : zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h -infcodes.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h -inffast.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h -inflate.obj : zutil.h zlib.h zconf.h infblock.h -inftrees.obj : zutil.h zlib.h zconf.h inftrees.h -infutil.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h -minigzip.obj : zlib.h zconf.h -trees.obj : deflate.h zutil.h zlib.h zconf.h -uncompr.obj : zlib.h zconf.h -zutil.obj : zutil.h zlib.h zconf.h diff --git a/src/zlib/example.c b/src/zlib/example.c deleted file mode 100644 index a9e6486cc0..0000000000 --- a/src/zlib/example.c +++ /dev/null @@ -1,550 +0,0 @@ -/* example.c -- usage example of the zlib compression library - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include -#include "../zlib/zlib.h" - -#ifdef STDC -# include -# include -#else - extern void exit OF((int)); -#endif - -#define CHECK_ERR(err, msg) { \ - if (err != Z_OK) { \ - fprintf(stderr, "%s error: %d\n", msg, err); \ - exit(1); \ - } \ -} - -const char hello[] = "hello, hello!"; -/* "hello world" would be more standard, but the repeated "hello" - * stresses the compression code better, sorry... - */ - -const char dictionary[] = "hello"; -uLong dictId; /* Adler32 value of the dictionary */ - -void test_compress OF((Byte *compr, uLong comprLen, - Byte *uncompr, uLong uncomprLen)); -void test_gzio OF((const char *out, const char *in, - Byte *uncompr, int uncomprLen)); -void test_deflate OF((Byte *compr, uLong comprLen)); -void test_inflate OF((Byte *compr, uLong comprLen, - Byte *uncompr, uLong uncomprLen)); -void test_large_deflate OF((Byte *compr, uLong comprLen, - Byte *uncompr, uLong uncomprLen)); -void test_large_inflate OF((Byte *compr, uLong comprLen, - Byte *uncompr, uLong uncomprLen)); -void test_flush OF((Byte *compr, uLong *comprLen)); -void test_sync OF((Byte *compr, uLong comprLen, - Byte *uncompr, uLong uncomprLen)); -void test_dict_deflate OF((Byte *compr, uLong comprLen)); -void test_dict_inflate OF((Byte *compr, uLong comprLen, - Byte *uncompr, uLong uncomprLen)); -int main OF((int argc, char *argv[])); - -/* =========================================================================== - * Test compress() and uncompress() - */ -void test_compress(compr, comprLen, uncompr, uncomprLen) - Byte *compr, *uncompr; - uLong comprLen, uncomprLen; -{ - int err; - uLong len = strlen(hello)+1; - - err = compress(compr, &comprLen, (const Bytef*)hello, len); - CHECK_ERR(err, "compress"); - - strcpy((char*)uncompr, "garbage"); - - err = uncompress(uncompr, &uncomprLen, compr, comprLen); - CHECK_ERR(err, "uncompress"); - - if (strcmp((char*)uncompr, hello)) { - fprintf(stderr, "bad uncompress\n"); - exit(1); - } else { - printf("uncompress(): %s\n", (char *)uncompr); - } -} - -/* =========================================================================== - * Test read/write of .gz files - */ -void test_gzio(out, in, uncompr, uncomprLen) - const char *out; /* output file */ - const char *in; /* input file */ - Byte *uncompr; - int uncomprLen; -{ - int err; - int len = strlen(hello)+1; - gzFile file; - z_off_t pos; - - file = gzopen(out, "wb"); - if (file == NULL) { - fprintf(stderr, "gzopen error\n"); - exit(1); - } - gzputc(file, 'h'); - if (gzputs(file, "ello") != 4) { - fprintf(stderr, "gzputs err: %s\n", gzerror(file, &err)); - exit(1); - } - if (gzprintf(file, ", %s!", "hello") != 8) { - fprintf(stderr, "gzprintf err: %s\n", gzerror(file, &err)); - exit(1); - } - gzseek(file, 1L, SEEK_CUR); /* add one zero byte */ - gzclose(file); - - file = gzopen(in, "rb"); - if (file == NULL) { - fprintf(stderr, "gzopen error\n"); - } - strcpy((char*)uncompr, "garbage"); - - uncomprLen = gzread(file, uncompr, (unsigned)uncomprLen); - if (uncomprLen != len) { - fprintf(stderr, "gzread err: %s\n", gzerror(file, &err)); - exit(1); - } - if (strcmp((char*)uncompr, hello)) { - fprintf(stderr, "bad gzread: %s\n", (char*)uncompr); - exit(1); - } else { - printf("gzread(): %s\n", (char *)uncompr); - } - - pos = gzseek(file, -8L, SEEK_CUR); - if (pos != 6 || gztell(file) != pos) { - fprintf(stderr, "gzseek error, pos=%ld, gztell=%ld\n", - (long)pos, (long)gztell(file)); - exit(1); - } - - if (gzgetc(file) != ' ') { - fprintf(stderr, "gzgetc error\n"); - exit(1); - } - - gzgets(file, (char*)uncompr, uncomprLen); - uncomprLen = strlen((char*)uncompr); - if (uncomprLen != 6) { /* "hello!" */ - fprintf(stderr, "gzgets err after gzseek: %s\n", gzerror(file, &err)); - exit(1); - } - if (strcmp((char*)uncompr, hello+7)) { - fprintf(stderr, "bad gzgets after gzseek\n"); - exit(1); - } else { - printf("gzgets() after gzseek: %s\n", (char *)uncompr); - } - - gzclose(file); -} - -/* =========================================================================== - * Test deflate() with small buffers - */ -void test_deflate(compr, comprLen) - Byte *compr; - uLong comprLen; -{ - z_stream c_stream; /* compression stream */ - int err; - int len = strlen(hello)+1; - - c_stream.zalloc = (alloc_func)0; - c_stream.zfree = (free_func)0; - c_stream.opaque = (voidpf)0; - - err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION); - CHECK_ERR(err, "deflateInit"); - - c_stream.next_in = (Bytef*)hello; - c_stream.next_out = compr; - - while (c_stream.total_in != (uLong)len && c_stream.total_out < comprLen) { - c_stream.avail_in = c_stream.avail_out = 1; /* force small buffers */ - err = deflate(&c_stream, Z_NO_FLUSH); - CHECK_ERR(err, "deflate"); - } - /* Finish the stream, still forcing small buffers: */ - for (;;) { - c_stream.avail_out = 1; - err = deflate(&c_stream, Z_FINISH); - if (err == Z_STREAM_END) break; - CHECK_ERR(err, "deflate"); - } - - err = deflateEnd(&c_stream); - CHECK_ERR(err, "deflateEnd"); -} - -/* =========================================================================== - * Test inflate() with small buffers - */ -void test_inflate(compr, comprLen, uncompr, uncomprLen) - Byte *compr, *uncompr; - uLong comprLen, uncomprLen; -{ - int err; - z_stream d_stream; /* decompression stream */ - - strcpy((char*)uncompr, "garbage"); - - d_stream.zalloc = (alloc_func)0; - d_stream.zfree = (free_func)0; - d_stream.opaque = (voidpf)0; - - d_stream.next_in = compr; - d_stream.avail_in = 0; - d_stream.next_out = uncompr; - - err = inflateInit(&d_stream); - CHECK_ERR(err, "inflateInit"); - - while (d_stream.total_out < uncomprLen && d_stream.total_in < comprLen) { - d_stream.avail_in = d_stream.avail_out = 1; /* force small buffers */ - err = inflate(&d_stream, Z_NO_FLUSH); - if (err == Z_STREAM_END) break; - CHECK_ERR(err, "inflate"); - } - - err = inflateEnd(&d_stream); - CHECK_ERR(err, "inflateEnd"); - - if (strcmp((char*)uncompr, hello)) { - fprintf(stderr, "bad inflate\n"); - exit(1); - } else { - printf("inflate(): %s\n", (char *)uncompr); - } -} - -/* =========================================================================== - * Test deflate() with large buffers and dynamic change of compression level - */ -void test_large_deflate(compr, comprLen, uncompr, uncomprLen) - Byte *compr, *uncompr; - uLong comprLen, uncomprLen; -{ - z_stream c_stream; /* compression stream */ - int err; - - c_stream.zalloc = (alloc_func)0; - c_stream.zfree = (free_func)0; - c_stream.opaque = (voidpf)0; - - err = deflateInit(&c_stream, Z_BEST_SPEED); - CHECK_ERR(err, "deflateInit"); - - c_stream.next_out = compr; - c_stream.avail_out = (uInt)comprLen; - - /* At this point, uncompr is still mostly zeroes, so it should compress - * very well: - */ - c_stream.next_in = uncompr; - c_stream.avail_in = (uInt)uncomprLen; - err = deflate(&c_stream, Z_NO_FLUSH); - CHECK_ERR(err, "deflate"); - if (c_stream.avail_in != 0) { - fprintf(stderr, "deflate not greedy\n"); - exit(1); - } - - /* Feed in already compressed data and switch to no compression: */ - deflateParams(&c_stream, Z_NO_COMPRESSION, Z_DEFAULT_STRATEGY); - c_stream.next_in = compr; - c_stream.avail_in = (uInt)comprLen/2; - err = deflate(&c_stream, Z_NO_FLUSH); - CHECK_ERR(err, "deflate"); - - /* Switch back to compressing mode: */ - deflateParams(&c_stream, Z_BEST_COMPRESSION, Z_FILTERED); - c_stream.next_in = uncompr; - c_stream.avail_in = (uInt)uncomprLen; - err = deflate(&c_stream, Z_NO_FLUSH); - CHECK_ERR(err, "deflate"); - - err = deflate(&c_stream, Z_FINISH); - if (err != Z_STREAM_END) { - fprintf(stderr, "deflate should report Z_STREAM_END\n"); - exit(1); - } - err = deflateEnd(&c_stream); - CHECK_ERR(err, "deflateEnd"); -} - -/* =========================================================================== - * Test inflate() with large buffers - */ -void test_large_inflate(compr, comprLen, uncompr, uncomprLen) - Byte *compr, *uncompr; - uLong comprLen, uncomprLen; -{ - int err; - z_stream d_stream; /* decompression stream */ - - strcpy((char*)uncompr, "garbage"); - - d_stream.zalloc = (alloc_func)0; - d_stream.zfree = (free_func)0; - d_stream.opaque = (voidpf)0; - - d_stream.next_in = compr; - d_stream.avail_in = (uInt)comprLen; - - err = inflateInit(&d_stream); - CHECK_ERR(err, "inflateInit"); - - for (;;) { - d_stream.next_out = uncompr; /* discard the output */ - d_stream.avail_out = (uInt)uncomprLen; - err = inflate(&d_stream, Z_NO_FLUSH); - if (err == Z_STREAM_END) break; - CHECK_ERR(err, "large inflate"); - } - - err = inflateEnd(&d_stream); - CHECK_ERR(err, "inflateEnd"); - - if (d_stream.total_out != 2*uncomprLen + comprLen/2) { - fprintf(stderr, "bad large inflate: %ld\n", d_stream.total_out); - exit(1); - } else { - printf("large_inflate(): OK\n"); - } -} - -/* =========================================================================== - * Test deflate() with full flush - */ -void test_flush(compr, comprLen) - Byte *compr; - uLong *comprLen; -{ - z_stream c_stream; /* compression stream */ - int err; - int len = strlen(hello)+1; - - c_stream.zalloc = (alloc_func)0; - c_stream.zfree = (free_func)0; - c_stream.opaque = (voidpf)0; - - err = deflateInit(&c_stream, Z_DEFAULT_COMPRESSION); - CHECK_ERR(err, "deflateInit"); - - c_stream.next_in = (Bytef*)hello; - c_stream.next_out = compr; - c_stream.avail_in = 3; - c_stream.avail_out = (uInt)*comprLen; - err = deflate(&c_stream, Z_FULL_FLUSH); - CHECK_ERR(err, "deflate"); - - compr[3]++; /* force an error in first compressed block */ - c_stream.avail_in = len - 3; - - err = deflate(&c_stream, Z_FINISH); - if (err != Z_STREAM_END) { - CHECK_ERR(err, "deflate"); - } - err = deflateEnd(&c_stream); - CHECK_ERR(err, "deflateEnd"); - - *comprLen = c_stream.total_out; -} - -/* =========================================================================== - * Test inflateSync() - */ -void test_sync(compr, comprLen, uncompr, uncomprLen) - Byte *compr, *uncompr; - uLong comprLen, uncomprLen; -{ - int err; - z_stream d_stream; /* decompression stream */ - - strcpy((char*)uncompr, "garbage"); - - d_stream.zalloc = (alloc_func)0; - d_stream.zfree = (free_func)0; - d_stream.opaque = (voidpf)0; - - d_stream.next_in = compr; - d_stream.avail_in = 2; /* just read the zlib header */ - - err = inflateInit(&d_stream); - CHECK_ERR(err, "inflateInit"); - - d_stream.next_out = uncompr; - d_stream.avail_out = (uInt)uncomprLen; - - inflate(&d_stream, Z_NO_FLUSH); - CHECK_ERR(err, "inflate"); - - d_stream.avail_in = (uInt)comprLen-2; /* read all compressed data */ - err = inflateSync(&d_stream); /* but skip the damaged part */ - CHECK_ERR(err, "inflateSync"); - - err = inflate(&d_stream, Z_FINISH); - if (err != Z_DATA_ERROR) { - fprintf(stderr, "inflate should report DATA_ERROR\n"); - /* Because of incorrect adler32 */ - exit(1); - } - err = inflateEnd(&d_stream); - CHECK_ERR(err, "inflateEnd"); - - printf("after inflateSync(): hel%s\n", (char *)uncompr); -} - -/* =========================================================================== - * Test deflate() with preset dictionary - */ -void test_dict_deflate(compr, comprLen) - Byte *compr; - uLong comprLen; -{ - z_stream c_stream; /* compression stream */ - int err; - - c_stream.zalloc = (alloc_func)0; - c_stream.zfree = (free_func)0; - c_stream.opaque = (voidpf)0; - - err = deflateInit(&c_stream, Z_BEST_COMPRESSION); - CHECK_ERR(err, "deflateInit"); - - err = deflateSetDictionary(&c_stream, - (const Bytef*)dictionary, sizeof(dictionary)); - CHECK_ERR(err, "deflateSetDictionary"); - - dictId = c_stream.adler; - c_stream.next_out = compr; - c_stream.avail_out = (uInt)comprLen; - - c_stream.next_in = (Bytef*)hello; - c_stream.avail_in = (uInt)strlen(hello)+1; - - err = deflate(&c_stream, Z_FINISH); - if (err != Z_STREAM_END) { - fprintf(stderr, "deflate should report Z_STREAM_END\n"); - exit(1); - } - err = deflateEnd(&c_stream); - CHECK_ERR(err, "deflateEnd"); -} - -/* =========================================================================== - * Test inflate() with a preset dictionary - */ -void test_dict_inflate(compr, comprLen, uncompr, uncomprLen) - Byte *compr, *uncompr; - uLong comprLen, uncomprLen; -{ - int err; - z_stream d_stream; /* decompression stream */ - - strcpy((char*)uncompr, "garbage"); - - d_stream.zalloc = (alloc_func)0; - d_stream.zfree = (free_func)0; - d_stream.opaque = (voidpf)0; - - d_stream.next_in = compr; - d_stream.avail_in = (uInt)comprLen; - - err = inflateInit(&d_stream); - CHECK_ERR(err, "inflateInit"); - - d_stream.next_out = uncompr; - d_stream.avail_out = (uInt)uncomprLen; - - for (;;) { - err = inflate(&d_stream, Z_NO_FLUSH); - if (err == Z_STREAM_END) break; - if (err == Z_NEED_DICT) { - if (d_stream.adler != dictId) { - fprintf(stderr, "unexpected dictionary"); - exit(1); - } - err = inflateSetDictionary(&d_stream, (const Bytef*)dictionary, - sizeof(dictionary)); - } - CHECK_ERR(err, "inflate with dict"); - } - - err = inflateEnd(&d_stream); - CHECK_ERR(err, "inflateEnd"); - - if (strcmp((char*)uncompr, hello)) { - fprintf(stderr, "bad inflate with dict\n"); - exit(1); - } else { - printf("inflate with dictionary: %s\n", (char *)uncompr); - } -} - -/* =========================================================================== - * Usage: example [output.gz [input.gz]] - */ - -int main(argc, argv) - int argc; - char *argv[]; -{ - Byte *compr, *uncompr; - uLong comprLen = 10000*sizeof(int); /* don't overflow on MSDOS */ - uLong uncomprLen = comprLen; - static const char* myVersion = ZLIB_VERSION; - - if (zlibVersion()[0] != myVersion[0]) { - fprintf(stderr, "incompatible zlib version\n"); - exit(1); - - } else if (strcmp(zlibVersion(), ZLIB_VERSION) != 0) { - fprintf(stderr, "warning: different zlib version\n"); - } - - compr = (Byte*)calloc((uInt)comprLen, 1); - uncompr = (Byte*)calloc((uInt)uncomprLen, 1); - /* compr and uncompr are cleared to avoid reading uninitialized - * data and to ensure that uncompr compresses well. - */ - if (compr == Z_NULL || uncompr == Z_NULL) { - printf("out of memory\n"); - exit(1); - } - test_compress(compr, comprLen, uncompr, uncomprLen); - - test_gzio((argc > 1 ? argv[1] : "foo.gz"), - (argc > 2 ? argv[2] : "foo.gz"), - uncompr, (int)uncomprLen); - - test_deflate(compr, comprLen); - test_inflate(compr, comprLen, uncompr, uncomprLen); - - test_large_deflate(compr, comprLen, uncompr, uncomprLen); - test_large_inflate(compr, comprLen, uncompr, uncomprLen); - - test_flush(compr, &comprLen); - test_sync(compr, comprLen, uncompr, uncomprLen); - comprLen = uncomprLen; - - test_dict_deflate(compr, comprLen); - test_dict_inflate(compr, comprLen, uncompr, uncomprLen); - - exit(0); - return 0; /* to avoid warning */ -} diff --git a/src/zlib/gzio.c b/src/zlib/gzio.c deleted file mode 100644 index e29198ac7a..0000000000 --- a/src/zlib/gzio.c +++ /dev/null @@ -1,869 +0,0 @@ -/* gzio.c -- IO on .gz files - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - * - * Compile this file with -DNO_DEFLATE to avoid the compression code. - */ - -/* @(#) $Id$ */ - -#include - -#include "zutil.h" - -struct internal_state {int dummy;}; /* for buggy compilers */ - -#ifndef Z_BUFSIZE -# ifdef MAXSEG_64K -# define Z_BUFSIZE 4096 /* minimize memory usage for 16-bit DOS */ -# else -# define Z_BUFSIZE 16384 -# endif -#endif -#ifndef Z_PRINTF_BUFSIZE -# define Z_PRINTF_BUFSIZE 4096 -#endif - -#define ALLOC(size) malloc(size) -#define TRYFREE(p) {if (p) free(p);} - -static int gz_magic[2] = {0x1f, 0x8b}; /* gzip magic header */ - -/* gzip flag byte */ -#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ -#define HEAD_CRC 0x02 /* bit 1 set: header CRC present */ -#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ -#define ORIG_NAME 0x08 /* bit 3 set: original file name present */ -#define COMMENT 0x10 /* bit 4 set: file comment present */ -#define RESERVED 0xE0 /* bits 5..7: reserved */ - -typedef struct gz_stream { - z_stream stream; - int z_err; /* error code for last stream operation */ - int z_eof; /* set if end of input file */ - FILE *file; /* .gz file */ - Byte *inbuf; /* input buffer */ - Byte *outbuf; /* output buffer */ - uLong crc; /* crc32 of uncompressed data */ - char *msg; /* error message */ - char *path; /* path name for debugging only */ - int transparent; /* 1 if input file is not a .gz file */ - char mode; /* 'w' or 'r' */ - long startpos; /* start of compressed data in file (header skipped) */ -} gz_stream; - - -local gzFile gz_open OF((const char *path, const char *mode, int fd)); -local int do_flush OF((gzFile file, int flush)); -local int get_byte OF((gz_stream *s)); -local void check_header OF((gz_stream *s)); -local int destroy OF((gz_stream *s)); -local void putLong OF((FILE *file, uLong x)); -local uLong getLong OF((gz_stream *s)); - -/* =========================================================================== - Opens a gzip (.gz) file for reading or writing. The mode parameter - is as in fopen ("rb" or "wb"). The file is given either by file descriptor - or path name (if fd == -1). - gz_open return NULL if the file could not be opened or if there was - insufficient memory to allocate the (de)compression state; errno - can be checked to distinguish the two cases (if errno is zero, the - zlib error is Z_MEM_ERROR). -*/ -local gzFile gz_open (path, mode, fd) - const char *path; - const char *mode; - int fd; -{ - int err; - int level = Z_DEFAULT_COMPRESSION; /* compression level */ - int strategy = Z_DEFAULT_STRATEGY; /* compression strategy */ - char *p = (char*)mode; - gz_stream *s; - char fmode[80]; /* copy of mode, without the compression level */ - char *m = fmode; - - if (!path || !mode) return Z_NULL; - - s = (gz_stream *)ALLOC(sizeof(gz_stream)); - if (!s) return Z_NULL; - - s->stream.zalloc = (alloc_func)0; - s->stream.zfree = (free_func)0; - s->stream.opaque = (voidpf)0; - s->stream.next_in = s->inbuf = Z_NULL; - s->stream.next_out = s->outbuf = Z_NULL; - s->stream.avail_in = s->stream.avail_out = 0; - s->file = NULL; - s->z_err = Z_OK; - s->z_eof = 0; - s->crc = crc32(0L, Z_NULL, 0); - s->msg = NULL; - s->transparent = 0; - - s->path = (char*)ALLOC(strlen(path)+1); - if (s->path == NULL) { - return destroy(s), (gzFile)Z_NULL; - } - strcpy(s->path, path); /* do this early for debugging */ - - s->mode = '\0'; - do { - if (*p == 'r') s->mode = 'r'; - if (*p == 'w' || *p == 'a') s->mode = 'w'; - if (*p >= '0' && *p <= '9') { - level = *p - '0'; - } else if (*p == 'f') { - strategy = Z_FILTERED; - } else if (*p == 'h') { - strategy = Z_HUFFMAN_ONLY; - } else { - *m++ = *p; /* copy the mode */ - } - } while (*p++ && m != fmode + sizeof(fmode)); - if (s->mode == '\0') return destroy(s), (gzFile)Z_NULL; - - if (s->mode == 'w') { -#ifdef NO_DEFLATE - err = Z_STREAM_ERROR; -#else - err = deflateInit2(&(s->stream), level, - Z_DEFLATED, -MAX_WBITS, DEF_MEM_LEVEL, strategy); - /* windowBits is passed < 0 to suppress zlib header */ - - s->stream.next_out = s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); -#endif - if (err != Z_OK || s->outbuf == Z_NULL) { - return destroy(s), (gzFile)Z_NULL; - } - } else { - s->stream.next_in = s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); - - err = inflateInit2(&(s->stream), -MAX_WBITS); - /* windowBits is passed < 0 to tell that there is no zlib header. - * Note that in this case inflate *requires* an extra "dummy" byte - * after the compressed stream in order to complete decompression and - * return Z_STREAM_END. Here the gzip CRC32 ensures that 4 bytes are - * present after the compressed stream. - */ - if (err != Z_OK || s->inbuf == Z_NULL) { - return destroy(s), (gzFile)Z_NULL; - } - } - s->stream.avail_out = Z_BUFSIZE; - - errno = 0; - s->file = fd < 0 ? F_OPEN(path, fmode) : (FILE*)fdopen(fd, fmode); - - if (s->file == NULL) { - return destroy(s), (gzFile)Z_NULL; - } - if (s->mode == 'w') { - /* Write a very simple .gz header: - */ - fprintf(s->file, "%c%c%c%c%c%c%c%c%c%c", gz_magic[0], gz_magic[1], - Z_DEFLATED, 0 /*flags*/, 0,0,0,0 /*time*/, 0 /*xflags*/, OS_CODE); - s->startpos = 10L; - /* We use 10L instead of ftell(s->file) to because ftell causes an - * fflush on some systems. This version of the library doesn't use - * startpos anyway in write mode, so this initialization is not - * necessary. - */ - } else { - check_header(s); /* skip the .gz header */ - s->startpos = (ftell(s->file) - s->stream.avail_in); - } - - return (gzFile)s; -} - -/* =========================================================================== - Opens a gzip (.gz) file for reading or writing. -*/ -gzFile ZEXPORT gzopen (path, mode) - const char *path; - const char *mode; -{ - return gz_open (path, mode, -1); -} - -/* =========================================================================== - Associate a gzFile with the file descriptor fd. fd is not dup'ed here - to mimic the behavio(u)r of fdopen. -*/ -gzFile ZEXPORT gzdopen (fd, mode) - int fd; - const char *mode; -{ - char name[20]; - - if (fd < 0) return (gzFile)Z_NULL; - sprintf(name, "", fd); /* for debugging */ - - return gz_open (name, mode, fd); -} - -/* =========================================================================== - * Update the compression level and strategy - */ -int ZEXPORT gzsetparams (file, level, strategy) - gzFile file; - int level; - int strategy; -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; - - /* Make room to allow flushing */ - if (s->stream.avail_out == 0) { - - s->stream.next_out = s->outbuf; - if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { - s->z_err = Z_ERRNO; - } - s->stream.avail_out = Z_BUFSIZE; - } - - return deflateParams (&(s->stream), level, strategy); -} - -/* =========================================================================== - Read a byte from a gz_stream; update next_in and avail_in. Return EOF - for end of file. - IN assertion: the stream s has been sucessfully opened for reading. -*/ -local int get_byte(s) - gz_stream *s; -{ - if (s->z_eof) return EOF; - if (s->stream.avail_in == 0) { - errno = 0; - s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file); - if (s->stream.avail_in == 0) { - s->z_eof = 1; - if (ferror(s->file)) s->z_err = Z_ERRNO; - return EOF; - } - s->stream.next_in = s->inbuf; - } - s->stream.avail_in--; - return *(s->stream.next_in)++; -} - -/* =========================================================================== - Check the gzip header of a gz_stream opened for reading. Set the stream - mode to transparent if the gzip magic header is not present; set s->err - to Z_DATA_ERROR if the magic header is present but the rest of the header - is incorrect. - IN assertion: the stream s has already been created sucessfully; - s->stream.avail_in is zero for the first time, but may be non-zero - for concatenated .gz files. -*/ -local void check_header(s) - gz_stream *s; -{ - int method; /* method byte */ - int flags; /* flags byte */ - uInt len; - int c; - - /* Check the gzip magic header */ - for (len = 0; len < 2; len++) { - c = get_byte(s); - if (c != gz_magic[len]) { - if (len != 0) s->stream.avail_in++, s->stream.next_in--; - if (c != EOF) { - s->stream.avail_in++, s->stream.next_in--; - s->transparent = 1; - } - s->z_err = s->stream.avail_in != 0 ? Z_OK : Z_STREAM_END; - return; - } - } - method = get_byte(s); - flags = get_byte(s); - if (method != Z_DEFLATED || (flags & RESERVED) != 0) { - s->z_err = Z_DATA_ERROR; - return; - } - - /* Discard time, xflags and OS code: */ - for (len = 0; len < 6; len++) (void)get_byte(s); - - if ((flags & EXTRA_FIELD) != 0) { /* skip the extra field */ - len = (uInt)get_byte(s); - len += ((uInt)get_byte(s))<<8; - /* len is garbage if EOF but the loop below will quit anyway */ - while (len-- != 0 && get_byte(s) != EOF) ; - } - if ((flags & ORIG_NAME) != 0) { /* skip the original file name */ - while ((c = get_byte(s)) != 0 && c != EOF) ; - } - if ((flags & COMMENT) != 0) { /* skip the .gz file comment */ - while ((c = get_byte(s)) != 0 && c != EOF) ; - } - if ((flags & HEAD_CRC) != 0) { /* skip the header crc */ - for (len = 0; len < 2; len++) (void)get_byte(s); - } - s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK; -} - - /* =========================================================================== - * Cleanup then free the given gz_stream. Return a zlib error code. - Try freeing in the reverse order of allocations. - */ -local int destroy (s) - gz_stream *s; -{ - int err = Z_OK; - - if (!s) return Z_STREAM_ERROR; - - TRYFREE(s->msg); - - if (s->stream.state != NULL) { - if (s->mode == 'w') { -#ifdef NO_DEFLATE - err = Z_STREAM_ERROR; -#else - err = deflateEnd(&(s->stream)); -#endif - } else if (s->mode == 'r') { - err = inflateEnd(&(s->stream)); - } - } - if (s->file != NULL && fclose(s->file)) { -#ifdef ESPIPE - if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */ -#endif - err = Z_ERRNO; - } - if (s->z_err < 0) err = s->z_err; - - TRYFREE(s->inbuf); - TRYFREE(s->outbuf); - TRYFREE(s->path); - TRYFREE(s); - return err; -} - -/* =========================================================================== - Reads the given number of uncompressed bytes from the compressed file. - gzread returns the number of bytes actually read (0 for end of file). -*/ -int ZEXPORT gzread (file, buf, len) - gzFile file; - voidp buf; - unsigned len; -{ - gz_stream *s = (gz_stream*)file; - Bytef *start = (Bytef*)buf; /* starting point for crc computation */ - Byte *next_out; /* == stream.next_out but not forced far (for MSDOS) */ - - if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR; - - if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1; - if (s->z_err == Z_STREAM_END) return 0; /* EOF */ - - next_out = (Byte*)buf; - s->stream.next_out = (Bytef*)buf; - s->stream.avail_out = len; - - while (s->stream.avail_out != 0) { - - if (s->transparent) { - /* Copy first the lookahead bytes: */ - uInt n = s->stream.avail_in; - if (n > s->stream.avail_out) n = s->stream.avail_out; - if (n > 0) { - zmemcpy(s->stream.next_out, s->stream.next_in, n); - next_out += n; - s->stream.next_out = next_out; - s->stream.next_in += n; - s->stream.avail_out -= n; - s->stream.avail_in -= n; - } - if (s->stream.avail_out > 0) { - s->stream.avail_out -= fread(next_out, 1, s->stream.avail_out, - s->file); - } - len -= s->stream.avail_out; - s->stream.total_in += (uLong)len; - s->stream.total_out += (uLong)len; - if (len == 0) s->z_eof = 1; - return (int)len; - } - if (s->stream.avail_in == 0 && !s->z_eof) { - - errno = 0; - s->stream.avail_in = fread(s->inbuf, 1, Z_BUFSIZE, s->file); - if (s->stream.avail_in == 0) { - s->z_eof = 1; - if (ferror(s->file)) { - s->z_err = Z_ERRNO; - break; - } - } - s->stream.next_in = s->inbuf; - } - s->z_err = inflate(&(s->stream), Z_NO_FLUSH); - - if (s->z_err == Z_STREAM_END) { - /* Check CRC and original size */ - s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); - start = s->stream.next_out; - - if (getLong(s) != s->crc || getLong(s) != s->stream.total_out) { - s->z_err = Z_DATA_ERROR; - } else { - /* Check for concatenated .gz files: */ - check_header(s); - if (s->z_err == Z_OK) { - uLong total_in = s->stream.total_in; - uLong total_out = s->stream.total_out; - - inflateReset(&(s->stream)); - s->stream.total_in = total_in; - s->stream.total_out = total_out; - s->crc = crc32(0L, Z_NULL, 0); - } - } - } - if (s->z_err != Z_OK || s->z_eof) break; - } - s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start)); - - return (int)(len - s->stream.avail_out); -} - - -/* =========================================================================== - Reads one byte from the compressed file. gzgetc returns this byte - or -1 in case of end of file or error. -*/ -int ZEXPORT gzgetc(file) - gzFile file; -{ - unsigned char c; - - return gzread(file, &c, 1) == 1 ? c : -1; -} - - -/* =========================================================================== - Reads bytes from the compressed file until len-1 characters are - read, or a newline character is read and transferred to buf, or an - end-of-file condition is encountered. The string is then terminated - with a null character. - gzgets returns buf, or Z_NULL in case of error. - - The current implementation is not optimized at all. -*/ -char * ZEXPORT gzgets(file, buf, len) - gzFile file; - char *buf; - int len; -{ - char *b = buf; - if (buf == Z_NULL || len <= 0) return Z_NULL; - - while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ; - *buf = '\0'; - return b == buf && len > 0 ? Z_NULL : b; -} - - -#ifndef NO_DEFLATE -/* =========================================================================== - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of bytes actually written (0 in case of error). -*/ -int ZEXPORT gzwrite (file, buf, len) - gzFile file; - const voidp buf; - unsigned len; -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; - - s->stream.next_in = (Bytef*)buf; - s->stream.avail_in = len; - - while (s->stream.avail_in != 0) { - - if (s->stream.avail_out == 0) { - - s->stream.next_out = s->outbuf; - if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) { - s->z_err = Z_ERRNO; - break; - } - s->stream.avail_out = Z_BUFSIZE; - } - s->z_err = deflate(&(s->stream), Z_NO_FLUSH); - if (s->z_err != Z_OK) break; - } - s->crc = crc32(s->crc, (const Bytef *)buf, len); - - return (int)(len - s->stream.avail_in); -} - -/* =========================================================================== - Converts, formats, and writes the args to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written (0 in case of error). -*/ -#ifdef STDC -#include - -int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...) -{ - char buf[Z_PRINTF_BUFSIZE]; - va_list va; - int len; - - va_start(va, format); -#ifdef HAS_vsnprintf - (void)vsnprintf(buf, sizeof(buf), format, va); -#else - (void)vsprintf(buf, format, va); -#endif - va_end(va); - len = strlen(buf); /* some *sprintf don't return the nb of bytes written */ - if (len <= 0) return 0; - - return gzwrite(file, buf, (unsigned)len); -} -#else /* not ANSI C */ - -int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20) - gzFile file; - const char *format; - int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20; -{ - char buf[Z_PRINTF_BUFSIZE]; - int len; - -#ifdef HAS_snprintf - snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); -#else - sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8, - a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20); -#endif - len = strlen(buf); /* old sprintf doesn't return the nb of bytes written */ - if (len <= 0) return 0; - - return gzwrite(file, buf, len); -} -#endif - -/* =========================================================================== - Writes c, converted to an unsigned char, into the compressed file. - gzputc returns the value that was written, or -1 in case of error. -*/ -int ZEXPORT gzputc(file, c) - gzFile file; - int c; -{ - unsigned char cc = (unsigned char) c; /* required for big endian systems */ - - return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1; -} - - -/* =========================================================================== - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - gzputs returns the number of characters written, or -1 in case of error. -*/ -int ZEXPORT gzputs(file, s) - gzFile file; - const char *s; -{ - return gzwrite(file, (char*)s, (unsigned)strlen(s)); -} - - -/* =========================================================================== - Flushes all pending output into the compressed file. The parameter - flush is as in the deflate() function. -*/ -local int do_flush (file, flush) - gzFile file; - int flush; -{ - uInt len; - int done = 0; - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR; - - s->stream.avail_in = 0; /* should be zero already anyway */ - - for (;;) { - len = Z_BUFSIZE - s->stream.avail_out; - - if (len != 0) { - if ((uInt)fwrite(s->outbuf, 1, len, s->file) != len) { - s->z_err = Z_ERRNO; - return Z_ERRNO; - } - s->stream.next_out = s->outbuf; - s->stream.avail_out = Z_BUFSIZE; - } - if (done) break; - s->z_err = deflate(&(s->stream), flush); - - /* Ignore the second of two consecutive flushes: */ - if (len == 0 && s->z_err == Z_BUF_ERROR) s->z_err = Z_OK; - - /* deflate has finished flushing only when it hasn't used up - * all the available space in the output buffer: - */ - done = (s->stream.avail_out != 0 || s->z_err == Z_STREAM_END); - - if (s->z_err != Z_OK && s->z_err != Z_STREAM_END) break; - } - return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; -} - -int ZEXPORT gzflush (file, flush) - gzFile file; - int flush; -{ - gz_stream *s = (gz_stream*)file; - int err = do_flush (file, flush); - - if (err) return err; - fflush(s->file); - return s->z_err == Z_STREAM_END ? Z_OK : s->z_err; -} -#endif /* NO_DEFLATE */ - -/* =========================================================================== - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error. - SEEK_END is not implemented, returns error. - In this version of the library, gzseek can be extremely slow. -*/ -z_off_t ZEXPORT gzseek (file, offset, whence) - gzFile file; - z_off_t offset; - int whence; -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || whence == SEEK_END || - s->z_err == Z_ERRNO || s->z_err == Z_DATA_ERROR) { - return -1L; - } - - if (s->mode == 'w') { -#ifdef NO_DEFLATE - return -1L; -#else - if (whence == SEEK_SET) { - offset -= s->stream.total_out; - } - if (offset < 0) return -1L; - - /* At this point, offset is the number of zero bytes to write. */ - if (s->inbuf == Z_NULL) { - s->inbuf = (Byte*)ALLOC(Z_BUFSIZE); /* for seeking */ - zmemzero(s->inbuf, Z_BUFSIZE); - } - while (offset > 0) { - uInt size = Z_BUFSIZE; - if (offset < Z_BUFSIZE) size = (uInt)offset; - - size = gzwrite(file, s->inbuf, size); - if (size == 0) return -1L; - - offset -= size; - } - return (z_off_t)s->stream.total_in; -#endif - } - /* Rest of function is for reading only */ - - /* compute absolute position */ - if (whence == SEEK_CUR) { - offset += s->stream.total_out; - } - if (offset < 0) return -1L; - - if (s->transparent) { - /* map to fseek */ - s->stream.avail_in = 0; - s->stream.next_in = s->inbuf; - if (fseek(s->file, offset, SEEK_SET) < 0) return -1L; - - s->stream.total_in = s->stream.total_out = (uLong)offset; - return offset; - } - - /* For a negative seek, rewind and use positive seek */ - if ((uLong)offset >= s->stream.total_out) { - offset -= s->stream.total_out; - } else if (gzrewind(file) < 0) { - return -1L; - } - /* offset is now the number of bytes to skip. */ - - if (offset != 0 && s->outbuf == Z_NULL) { - s->outbuf = (Byte*)ALLOC(Z_BUFSIZE); - } - while (offset > 0) { - int size = Z_BUFSIZE; - if (offset < Z_BUFSIZE) size = (int)offset; - - size = gzread(file, s->outbuf, (uInt)size); - if (size <= 0) return -1L; - offset -= size; - } - return (z_off_t)s->stream.total_out; -} - -/* =========================================================================== - Rewinds input file. -*/ -int ZEXPORT gzrewind (file) - gzFile file; -{ - gz_stream *s = (gz_stream*)file; - - if (s == NULL || s->mode != 'r') return -1; - - s->z_err = Z_OK; - s->z_eof = 0; - s->stream.avail_in = 0; - s->stream.next_in = s->inbuf; - - if (s->startpos == 0) { /* not a compressed file */ - rewind(s->file); - return 0; - } - - (void) inflateReset(&s->stream); - return fseek(s->file, s->startpos, SEEK_SET); -} - -/* =========================================================================== - Returns the starting position for the next gzread or gzwrite on the - given compressed file. This position represents a number of bytes in the - uncompressed data stream. -*/ -z_off_t ZEXPORT gztell (file) - gzFile file; -{ - return gzseek(file, 0L, SEEK_CUR); -} - -/* =========================================================================== - Returns 1 when EOF has previously been detected reading the given - input stream, otherwise zero. -*/ -int ZEXPORT gzeof (file) - gzFile file; -{ - gz_stream *s = (gz_stream*)file; - - return (s == NULL || s->mode != 'r') ? 0 : s->z_eof; -} - -/* =========================================================================== - Outputs a long in LSB order to the given file -*/ -local void putLong (file, x) - FILE *file; - uLong x; -{ - int n; - for (n = 0; n < 4; n++) { - fputc((int)(x & 0xff), file); - x >>= 8; - } -} - -/* =========================================================================== - Reads a long in LSB order from the given gz_stream. Sets -*/ -local uLong getLong (s) - gz_stream *s; -{ - uLong x = (uLong)get_byte(s); - int c; - - x += ((uLong)get_byte(s))<<8; - x += ((uLong)get_byte(s))<<16; - c = get_byte(s); - if (c == EOF) s->z_err = Z_DATA_ERROR; - x += ((uLong)c)<<24; - return x; -} - -/* =========================================================================== - Flushes all pending output if necessary, closes the compressed file - and deallocates all the (de)compression state. -*/ -int ZEXPORT gzclose (file) - gzFile file; -{ - int err; - gz_stream *s = (gz_stream*)file; - - if (s == NULL) return Z_STREAM_ERROR; - - if (s->mode == 'w') { -#ifdef NO_DEFLATE - return Z_STREAM_ERROR; -#else - err = do_flush (file, Z_FINISH); - if (err != Z_OK) return destroy((gz_stream*)file); - - putLong (s->file, s->crc); - putLong (s->file, s->stream.total_in); -#endif - } - return destroy((gz_stream*)file); -} - -/* =========================================================================== - Returns the error message for the last error which occured on the - given compressed file. errnum is set to zlib error number. If an - error occured in the file system and not in the compression library, - errnum is set to Z_ERRNO and the application may consult errno - to get the exact error code. -*/ -const char* ZEXPORT gzerror (file, errnum) - gzFile file; - int *errnum; -{ - char *m; - gz_stream *s = (gz_stream*)file; - - if (s == NULL) { - *errnum = Z_STREAM_ERROR; - return (const char*)ERR_MSG(Z_STREAM_ERROR); - } - *errnum = s->z_err; - if (*errnum == Z_OK) return (const char*)""; - - m = (char*)(*errnum == Z_ERRNO ? zstrerror(errno) : s->stream.msg); - - if (m == NULL || *m == '\0') m = (char*)ERR_MSG(s->z_err); - - TRYFREE(s->msg); - s->msg = (char*)ALLOC(strlen(s->path) + strlen(m) + 3); - strcpy(s->msg, s->path); - strcat(s->msg, ": "); - strcat(s->msg, m); - return (const char*)s->msg; -} diff --git a/src/zlib/infblock.c b/src/zlib/infblock.c deleted file mode 100644 index f8940c7fab..0000000000 --- a/src/zlib/infblock.c +++ /dev/null @@ -1,405 +0,0 @@ -/* infblock.c -- interpret and process block types to last block - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "infblock.h" -#include "inftrees.h" -#include "infcodes.h" -#include "infutil.h" - -struct inflate_codes_state {int dummy;}; /* for buggy compilers */ - -/* simplify the use of the inflate_huft type with some defines */ -#define exop word.what.Exop -#define bits word.what.Bits - -/* Table for deflate from PKZIP's appnote.txt. */ -local const uInt border[] = { /* Order of the bit length code lengths */ - 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15}; - -/* - Notes beyond the 1.93a appnote.txt: - - 1. Distance pointers never point before the beginning of the output - stream. - 2. Distance pointers can point back across blocks, up to 32k away. - 3. There is an implied maximum of 7 bits for the bit length table and - 15 bits for the actual data. - 4. If only one code exists, then it is encoded using one bit. (Zero - would be more efficient, but perhaps a little confusing.) If two - codes exist, they are coded using one bit each (0 and 1). - 5. There is no way of sending zero distance codes--a dummy must be - sent if there are none. (History: a pre 2.0 version of PKZIP would - store blocks with no distance codes, but this was discovered to be - too harsh a criterion.) Valid only for 1.93a. 2.04c does allow - zero distance codes, which is sent as one code of zero bits in - length. - 6. There are up to 286 literal/length codes. Code 256 represents the - end-of-block. Note however that the static length tree defines - 288 codes just to fill out the Huffman codes. Codes 286 and 287 - cannot be used though, since there is no length base or extra bits - defined for them. Similarily, there are up to 30 distance codes. - However, static trees define 32 codes (all 5 bits) to fill out the - Huffman codes, but the last two had better not show up in the data. - 7. Unzip can check dynamic Huffman blocks for complete code sets. - The exception is that a single code would not be complete (see #4). - 8. The five bits following the block type is really the number of - literal codes sent minus 257. - 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits - (1+6+6). Therefore, to output three times the length, you output - three codes (1+1+1), whereas to output four times the same length, - you only need two codes (1+3). Hmm. - 10. In the tree reconstruction algorithm, Code = Code + Increment - only if BitLength(i) is not zero. (Pretty obvious.) - 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19) - 12. Note: length code 284 can represent 227-258, but length code 285 - really is 258. The last length deserves its own, short code - since it gets used a lot in very redundant files. The length - 258 is special since 258 - 3 (the min match length) is 255. - 13. The literal/length and distance code bit lengths are read as a - single stream of lengths. It is possible (and advantageous) for - a repeat code (16, 17, or 18) to go across the boundary between - the two sets of lengths. - */ - - -void inflate_blocks_reset(s, z, c) -inflate_blocks_statef *s; -z_streamp z; -uLongf *c; -{ - if (c != Z_NULL) - *c = s->check; - if (s->mode == BTREE || s->mode == DTREE) - ZFREE(z, s->sub.trees.blens); - if (s->mode == CODES) - inflate_codes_free(s->sub.decode.codes, z); - s->mode = TYPE; - s->bitk = 0; - s->bitb = 0; - s->read = s->write = s->window; - if (s->checkfn != Z_NULL) - z->adler = s->check = (*s->checkfn)(0L, (const Bytef *)Z_NULL, 0); - Tracev((stderr, "inflate: blocks reset\n")); -} - - -inflate_blocks_statef *inflate_blocks_new(z, c, w) -z_streamp z; -check_func c; -uInt w; -{ - inflate_blocks_statef *s; - - if ((s = (inflate_blocks_statef *)ZALLOC - (z,1,sizeof(struct inflate_blocks_state))) == Z_NULL) - return s; - if ((s->hufts = - (inflate_huft *)ZALLOC(z, sizeof(inflate_huft), MANY)) == Z_NULL) - { - ZFREE(z, s); - return Z_NULL; - } - if ((s->window = (Bytef *)ZALLOC(z, 1, w)) == Z_NULL) - { - ZFREE(z, s->hufts); - ZFREE(z, s); - return Z_NULL; - } - s->end = s->window + w; - s->checkfn = c; - s->mode = TYPE; - Tracev((stderr, "inflate: blocks allocated\n")); - inflate_blocks_reset(s, z, Z_NULL); - return s; -} - - -int inflate_blocks(s, z, r) -inflate_blocks_statef *s; -z_streamp z; -int r; -{ - uInt t; /* temporary storage */ - uLong b; /* bit buffer */ - uInt k; /* bits in bit buffer */ - Bytef *p; /* input data pointer */ - uInt n; /* bytes available there */ - Bytef *q; /* output window write pointer */ - uInt m; /* bytes to end of window or read pointer */ - - /* copy input/output information to locals (UPDATE macro restores) */ - LOAD - - /* process input based on current state */ - while (1) switch (s->mode) - { - case TYPE: - NEEDBITS(3) - t = (uInt)b & 7; - s->last = t & 1; - switch (t >> 1) - { - case 0: /* stored */ - Tracev((stderr, "inflate: stored block%s\n", - s->last ? " (last)" : "")); - DUMPBITS(3) - t = k & 7; /* go to byte boundary */ - DUMPBITS(t) - s->mode = LENS; /* get length of stored block */ - break; - case 1: /* fixed */ - Tracev((stderr, "inflate: fixed codes block%s\n", - s->last ? " (last)" : "")); - { - uInt bl, bd; - inflate_huft *tl, *td; - - inflate_trees_fixed(&bl, &bd, &tl, &td, z); - s->sub.decode.codes = inflate_codes_new(bl, bd, tl, td, z); - if (s->sub.decode.codes == Z_NULL) - { - r = Z_MEM_ERROR; - LEAVE - } - } - DUMPBITS(3) - s->mode = CODES; - break; - case 2: /* dynamic */ - Tracev((stderr, "inflate: dynamic codes block%s\n", - s->last ? " (last)" : "")); - DUMPBITS(3) - s->mode = TABLE; - break; - case 3: /* illegal */ - DUMPBITS(3) - s->mode = BAD; - z->msg = (char*)"invalid block type"; - r = Z_DATA_ERROR; - LEAVE - } - break; - case LENS: - NEEDBITS(32) - if ((((~b) >> 16) & 0xffff) != (b & 0xffff)) - { - s->mode = BAD; - z->msg = (char*)"invalid stored block lengths"; - r = Z_DATA_ERROR; - LEAVE - } - s->sub.left = (uInt)b & 0xffff; - b = k = 0; /* dump bits */ - Tracev((stderr, "inflate: stored length %u\n", s->sub.left)); - s->mode = s->sub.left ? STORED : (s->last ? DRY : TYPE); - break; - case STORED: - if (n == 0) - LEAVE - NEEDOUT - t = s->sub.left; - if (t > n) t = n; - if (t > m) t = m; - zmemcpy(q, p, t); - p += t; n -= t; - q += t; m -= t; - if ((s->sub.left -= t) != 0) - break; - Tracev((stderr, "inflate: stored end, %lu total out\n", - z->total_out + (q >= s->read ? q - s->read : - (s->end - s->read) + (q - s->window)))); - s->mode = s->last ? DRY : TYPE; - break; - case TABLE: - NEEDBITS(14) - s->sub.trees.table = t = (uInt)b & 0x3fff; -#ifndef PKZIP_BUG_WORKAROUND - if ((t & 0x1f) > 29 || ((t >> 5) & 0x1f) > 29) - { - s->mode = BAD; - z->msg = (char*)"too many length or distance symbols"; - r = Z_DATA_ERROR; - LEAVE - } -#endif - t = 258 + (t & 0x1f) + ((t >> 5) & 0x1f); - if ((s->sub.trees.blens = (uIntf*)ZALLOC(z, t, sizeof(uInt))) == Z_NULL) - { - r = Z_MEM_ERROR; - LEAVE - } - DUMPBITS(14) - s->sub.trees.index = 0; - Tracev((stderr, "inflate: table sizes ok\n")); - s->mode = BTREE; - case BTREE: - while (s->sub.trees.index < 4 + (s->sub.trees.table >> 10)) - { - NEEDBITS(3) - s->sub.trees.blens[border[s->sub.trees.index++]] = (uInt)b & 7; - DUMPBITS(3) - } - while (s->sub.trees.index < 19) - s->sub.trees.blens[border[s->sub.trees.index++]] = 0; - s->sub.trees.bb = 7; - t = inflate_trees_bits(s->sub.trees.blens, &s->sub.trees.bb, - &s->sub.trees.tb, s->hufts, z); - if (t != Z_OK) - { - ZFREE(z, s->sub.trees.blens); - r = t; - if (r == Z_DATA_ERROR) - s->mode = BAD; - LEAVE - } - s->sub.trees.index = 0; - Tracev((stderr, "inflate: bits tree ok\n")); - s->mode = DTREE; - case DTREE: - while (t = s->sub.trees.table, - s->sub.trees.index < 258 + (t & 0x1f) + ((t >> 5) & 0x1f)) - { - inflate_huft *h; - uInt i, j, c; - - t = s->sub.trees.bb; - NEEDBITS(t) - h = s->sub.trees.tb + ((uInt)b & inflate_mask[t]); - t = h->bits; - c = h->base; - if (c < 16) - { - DUMPBITS(t) - s->sub.trees.blens[s->sub.trees.index++] = c; - } - else /* c == 16..18 */ - { - i = c == 18 ? 7 : c - 14; - j = c == 18 ? 11 : 3; - NEEDBITS(t + i) - DUMPBITS(t) - j += (uInt)b & inflate_mask[i]; - DUMPBITS(i) - i = s->sub.trees.index; - t = s->sub.trees.table; - if (i + j > 258 + (t & 0x1f) + ((t >> 5) & 0x1f) || - (c == 16 && i < 1)) - { - ZFREE(z, s->sub.trees.blens); - s->mode = BAD; - z->msg = (char*)"invalid bit length repeat"; - r = Z_DATA_ERROR; - LEAVE - } - c = c == 16 ? s->sub.trees.blens[i - 1] : 0; - do { - s->sub.trees.blens[i++] = c; - } while (--j); - s->sub.trees.index = i; - } - } - s->sub.trees.tb = Z_NULL; - { - uInt bl, bd; - inflate_huft *tl, *td; - inflate_codes_statef *c; - - bl = 9; /* must be <= 9 for lookahead assumptions */ - bd = 6; /* must be <= 9 for lookahead assumptions */ - t = s->sub.trees.table; - t = inflate_trees_dynamic(257 + (t & 0x1f), 1 + ((t >> 5) & 0x1f), - s->sub.trees.blens, &bl, &bd, &tl, &td, - s->hufts, z); - ZFREE(z, s->sub.trees.blens); - if (t != Z_OK) - { - if (t == (uInt)Z_DATA_ERROR) - s->mode = BAD; - r = t; - LEAVE - } - Tracev((stderr, "inflate: trees ok\n")); - if ((c = inflate_codes_new(bl, bd, tl, td, z)) == Z_NULL) - { - r = Z_MEM_ERROR; - LEAVE - } - s->sub.decode.codes = c; - } - s->mode = CODES; - case CODES: - UPDATE - if ((r = inflate_codes(s, z, r)) != Z_STREAM_END) - return inflate_flush(s, z, r); - r = Z_OK; - inflate_codes_free(s->sub.decode.codes, z); - LOAD - Tracev((stderr, "inflate: codes end, %lu total out\n", - z->total_out + (q >= s->read ? q - s->read : - (s->end - s->read) + (q - s->window)))); - if (!s->last) - { - s->mode = TYPE; - break; - } - if (k > 7) /* return unused byte, if any */ - { - Assert(k < 16, "inflate_codes grabbed too many bytes") - k -= 8; - n++; - p--; /* can always return one */ - } - s->mode = DRY; - case DRY: - FLUSH - if (s->read != s->write) - LEAVE - s->mode = DONE; - case DONE: - r = Z_STREAM_END; - LEAVE - case BAD: - r = Z_DATA_ERROR; - LEAVE - default: - r = Z_STREAM_ERROR; - LEAVE - } -} - - -int inflate_blocks_free(s, z) -inflate_blocks_statef *s; -z_streamp z; -{ - inflate_blocks_reset(s, z, Z_NULL); - ZFREE(z, s->window); - ZFREE(z, s->hufts); - ZFREE(z, s); - Tracev((stderr, "inflate: blocks freed\n")); - return Z_OK; -} - - -void inflate_set_dictionary(s, d, n) -inflate_blocks_statef *s; -const Bytef *d; -uInt n; -{ - zmemcpy(s->window, d, n); - s->read = s->write = s->window + n; -} - - -/* Returns true if inflate is currently at the end of a block generated - * by Z_SYNC_FLUSH or Z_FULL_FLUSH. - * IN assertion: s != Z_NULL - */ -int inflate_blocks_sync_point(s) -inflate_blocks_statef *s; -{ - return s->mode == LENS; -} diff --git a/src/zlib/infblock.h b/src/zlib/infblock.h deleted file mode 100644 index bd25c80753..0000000000 --- a/src/zlib/infblock.h +++ /dev/null @@ -1,39 +0,0 @@ -/* infblock.h -- header to use infblock.c - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -struct inflate_blocks_state; -typedef struct inflate_blocks_state FAR inflate_blocks_statef; - -extern inflate_blocks_statef * inflate_blocks_new OF(( - z_streamp z, - check_func c, /* check function */ - uInt w)); /* window size */ - -extern int inflate_blocks OF(( - inflate_blocks_statef *, - z_streamp , - int)); /* initial return code */ - -extern void inflate_blocks_reset OF(( - inflate_blocks_statef *, - z_streamp , - uLongf *)); /* check value on output */ - -extern int inflate_blocks_free OF(( - inflate_blocks_statef *, - z_streamp)); - -extern void inflate_set_dictionary OF(( - inflate_blocks_statef *s, - const Bytef *d, /* dictionary */ - uInt n)); /* dictionary length */ - -extern int inflate_blocks_sync_point OF(( - inflate_blocks_statef *s)); diff --git a/src/zlib/infcodes.c b/src/zlib/infcodes.c deleted file mode 100644 index 1d3baa92eb..0000000000 --- a/src/zlib/infcodes.c +++ /dev/null @@ -1,250 +0,0 @@ -/* infcodes.c -- process literals and length/distance pairs - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" -#include "infblock.h" -#include "infcodes.h" -#include "infutil.h" -#include "inffast.h" - -/* simplify the use of the inflate_huft type with some defines */ -#define exop word.what.Exop -#define bits word.what.Bits - -typedef enum { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */ - START, /* x: set up for LEN */ - LEN, /* i: get length/literal/eob next */ - LENEXT, /* i: getting length extra (have base) */ - DIST, /* i: get distance next */ - DISTEXT, /* i: getting distance extra */ - COPY, /* o: copying bytes in window, waiting for space */ - LIT, /* o: got literal, waiting for output space */ - WASH, /* o: got eob, possibly still output waiting */ - END, /* x: got eob and all data flushed */ - BADCODE} /* x: got error */ -inflate_codes_mode; - -/* inflate codes private state */ -struct inflate_codes_state { - - /* mode */ - inflate_codes_mode mode; /* current inflate_codes mode */ - - /* mode dependent information */ - uInt len; - union { - struct { - inflate_huft *tree; /* pointer into tree */ - uInt need; /* bits needed */ - } code; /* if LEN or DIST, where in tree */ - uInt lit; /* if LIT, literal */ - struct { - uInt get; /* bits to get for extra */ - uInt dist; /* distance back to copy from */ - } copy; /* if EXT or COPY, where and how much */ - } sub; /* submode */ - - /* mode independent information */ - Byte lbits; /* ltree bits decoded per branch */ - Byte dbits; /* dtree bits decoder per branch */ - inflate_huft *ltree; /* literal/length/eob tree */ - inflate_huft *dtree; /* distance tree */ - -}; - - -inflate_codes_statef *inflate_codes_new(bl, bd, tl, td, z) -uInt bl, bd; -inflate_huft *tl; -inflate_huft *td; /* need separate declaration for Borland C++ */ -z_streamp z; -{ - inflate_codes_statef *c; - - if ((c = (inflate_codes_statef *) - ZALLOC(z,1,sizeof(struct inflate_codes_state))) != Z_NULL) - { - c->mode = START; - c->lbits = (Byte)bl; - c->dbits = (Byte)bd; - c->ltree = tl; - c->dtree = td; - Tracev((stderr, "inflate: codes new\n")); - } - return c; -} - - -int inflate_codes(s, z, r) -inflate_blocks_statef *s; -z_streamp z; -int r; -{ - uInt j; /* temporary storage */ - inflate_huft *t; /* temporary pointer */ - uInt e; /* extra bits or operation */ - uLong b; /* bit buffer */ - uInt k; /* bits in bit buffer */ - Bytef *p; /* input data pointer */ - uInt n; /* bytes available there */ - Bytef *q; /* output window write pointer */ - uInt m; /* bytes to end of window or read pointer */ - Bytef *f; /* pointer to copy strings from */ - inflate_codes_statef *c = s->sub.decode.codes; /* codes state */ - - /* copy input/output information to locals (UPDATE macro restores) */ - LOAD - - /* process input and output based on current state */ - while (1) switch (c->mode) - { /* waiting for "i:"=input, "o:"=output, "x:"=nothing */ - case START: /* x: set up for LEN */ -#ifndef SLOW - if (m >= 258 && n >= 10) - { - UPDATE - r = inflate_fast(c->lbits, c->dbits, c->ltree, c->dtree, s, z); - LOAD - if (r != Z_OK) - { - c->mode = r == Z_STREAM_END ? WASH : BADCODE; - break; - } - } -#endif /* !SLOW */ - c->sub.code.need = c->lbits; - c->sub.code.tree = c->ltree; - c->mode = LEN; - case LEN: /* i: get length/literal/eob next */ - j = c->sub.code.need; - NEEDBITS(j) - t = c->sub.code.tree + ((uInt)b & inflate_mask[j]); - DUMPBITS(t->bits) - e = (uInt)(t->exop); - if (e == 0) /* literal */ - { - c->sub.lit = t->base; - Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ? - "inflate: literal '%c'\n" : - "inflate: literal 0x%02x\n", t->base)); - c->mode = LIT; - break; - } - if (e & 16) /* length */ - { - c->sub.copy.get = e & 15; - c->len = t->base; - c->mode = LENEXT; - break; - } - if ((e & 64) == 0) /* next table */ - { - c->sub.code.need = e; - c->sub.code.tree = t + t->base; - break; - } - if (e & 32) /* end of block */ - { - Tracevv((stderr, "inflate: end of block\n")); - c->mode = WASH; - break; - } - c->mode = BADCODE; /* invalid code */ - z->msg = (char*)"invalid literal/length code"; - r = Z_DATA_ERROR; - LEAVE - case LENEXT: /* i: getting length extra (have base) */ - j = c->sub.copy.get; - NEEDBITS(j) - c->len += (uInt)b & inflate_mask[j]; - DUMPBITS(j) - c->sub.code.need = c->dbits; - c->sub.code.tree = c->dtree; - Tracevv((stderr, "inflate: length %u\n", c->len)); - c->mode = DIST; - case DIST: /* i: get distance next */ - j = c->sub.code.need; - NEEDBITS(j) - t = c->sub.code.tree + ((uInt)b & inflate_mask[j]); - DUMPBITS(t->bits) - e = (uInt)(t->exop); - if (e & 16) /* distance */ - { - c->sub.copy.get = e & 15; - c->sub.copy.dist = t->base; - c->mode = DISTEXT; - break; - } - if ((e & 64) == 0) /* next table */ - { - c->sub.code.need = e; - c->sub.code.tree = t + t->base; - break; - } - c->mode = BADCODE; /* invalid code */ - z->msg = (char*)"invalid distance code"; - r = Z_DATA_ERROR; - LEAVE - case DISTEXT: /* i: getting distance extra */ - j = c->sub.copy.get; - NEEDBITS(j) - c->sub.copy.dist += (uInt)b & inflate_mask[j]; - DUMPBITS(j) - Tracevv((stderr, "inflate: distance %u\n", c->sub.copy.dist)); - c->mode = COPY; - case COPY: /* o: copying bytes in window, waiting for space */ -#ifndef __TURBOC__ /* Turbo C bug for following expression */ - f = (uInt)(q - s->window) < c->sub.copy.dist ? - s->end - (c->sub.copy.dist - (q - s->window)) : - q - c->sub.copy.dist; -#else - f = q - c->sub.copy.dist; - if ((uInt)(q - s->window) < c->sub.copy.dist) - f = s->end - (c->sub.copy.dist - (uInt)(q - s->window)); -#endif - while (c->len) - { - NEEDOUT - OUTBYTE(*f++) - if (f == s->end) - f = s->window; - c->len--; - } - c->mode = START; - break; - case LIT: /* o: got literal, waiting for output space */ - NEEDOUT - OUTBYTE(c->sub.lit) - c->mode = START; - break; - case WASH: /* o: got eob, possibly more output */ - FLUSH - if (s->read != s->write) - LEAVE - c->mode = END; - case END: - r = Z_STREAM_END; - LEAVE - case BADCODE: /* x: got error */ - r = Z_DATA_ERROR; - LEAVE - default: - r = Z_STREAM_ERROR; - LEAVE - } -#ifdef NEED_DUMMY_RETURN - return Z_STREAM_ERROR; /* Some dumb compilers complain without this */ -#endif -} - - -void inflate_codes_free(c, z) -inflate_codes_statef *c; -z_streamp z; -{ - ZFREE(z, c); - Tracev((stderr, "inflate: codes free\n")); -} diff --git a/src/zlib/infcodes.h b/src/zlib/infcodes.h deleted file mode 100644 index 6c750d896f..0000000000 --- a/src/zlib/infcodes.h +++ /dev/null @@ -1,27 +0,0 @@ -/* infcodes.h -- header to use infcodes.c - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -struct inflate_codes_state; -typedef struct inflate_codes_state FAR inflate_codes_statef; - -extern inflate_codes_statef *inflate_codes_new OF(( - uInt, uInt, - inflate_huft *, inflate_huft *, - z_streamp )); - -extern int inflate_codes OF(( - inflate_blocks_statef *, - z_streamp , - int)); - -extern void inflate_codes_free OF(( - inflate_codes_statef *, - z_streamp )); - diff --git a/src/zlib/inffast.c b/src/zlib/inffast.c deleted file mode 100644 index 61a78ee933..0000000000 --- a/src/zlib/inffast.c +++ /dev/null @@ -1,170 +0,0 @@ -/* inffast.c -- process literals and length/distance pairs fast - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" -#include "infblock.h" -#include "infcodes.h" -#include "infutil.h" -#include "inffast.h" - -struct inflate_codes_state {int dummy;}; /* for buggy compilers */ - -/* simplify the use of the inflate_huft type with some defines */ -#define exop word.what.Exop -#define bits word.what.Bits - -/* macros for bit input with no checking and for returning unused bytes */ -#define GRABBITS(j) {while(k<(j)){b|=((uLong)NEXTBYTE)<avail_in-n;c=(k>>3)>3:c;n+=c;p-=c;k-=c<<3;} - -/* Called with number of bytes left to write in window at least 258 - (the maximum string length) and number of input bytes available - at least ten. The ten bytes are six bytes for the longest length/ - distance pair plus four bytes for overloading the bit buffer. */ - -int inflate_fast(bl, bd, tl, td, s, z) -uInt bl, bd; -inflate_huft *tl; -inflate_huft *td; /* need separate declaration for Borland C++ */ -inflate_blocks_statef *s; -z_streamp z; -{ - inflate_huft *t; /* temporary pointer */ - uInt e; /* extra bits or operation */ - uLong b; /* bit buffer */ - uInt k; /* bits in bit buffer */ - Bytef *p; /* input data pointer */ - uInt n; /* bytes available there */ - Bytef *q; /* output window write pointer */ - uInt m; /* bytes to end of window or read pointer */ - uInt ml; /* mask for literal/length tree */ - uInt md; /* mask for distance tree */ - uInt c; /* bytes to copy */ - uInt d; /* distance back to copy from */ - Bytef *r; /* copy source pointer */ - - /* load input, output, bit values */ - LOAD - - /* initialize masks */ - ml = inflate_mask[bl]; - md = inflate_mask[bd]; - - /* do until not enough input or output space for fast loop */ - do { /* assume called with m >= 258 && n >= 10 */ - /* get literal/length code */ - GRABBITS(20) /* max bits for literal/length code */ - if ((e = (t = tl + ((uInt)b & ml))->exop) == 0) - { - DUMPBITS(t->bits) - Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ? - "inflate: * literal '%c'\n" : - "inflate: * literal 0x%02x\n", t->base)); - *q++ = (Byte)t->base; - m--; - continue; - } - do { - DUMPBITS(t->bits) - if (e & 16) - { - /* get extra bits for length */ - e &= 15; - c = t->base + ((uInt)b & inflate_mask[e]); - DUMPBITS(e) - Tracevv((stderr, "inflate: * length %u\n", c)); - - /* decode distance base of block to copy */ - GRABBITS(15); /* max bits for distance code */ - e = (t = td + ((uInt)b & md))->exop; - do { - DUMPBITS(t->bits) - if (e & 16) - { - /* get extra bits to add to distance base */ - e &= 15; - GRABBITS(e) /* get extra bits (up to 13) */ - d = t->base + ((uInt)b & inflate_mask[e]); - DUMPBITS(e) - Tracevv((stderr, "inflate: * distance %u\n", d)); - - /* do the copy */ - m -= c; - if ((uInt)(q - s->window) >= d) /* offset before dest */ - { /* just copy */ - r = q - d; - *q++ = *r++; c--; /* minimum count is three, */ - *q++ = *r++; c--; /* so unroll loop a little */ - } - else /* else offset after destination */ - { - e = d - (uInt)(q - s->window); /* bytes from offset to end */ - r = s->end - e; /* pointer to offset */ - if (c > e) /* if source crosses, */ - { - c -= e; /* copy to end of window */ - do { - *q++ = *r++; - } while (--e); - r = s->window; /* copy rest from start of window */ - } - } - do { /* copy all or what's left */ - *q++ = *r++; - } while (--c); - break; - } - else if ((e & 64) == 0) - { - t += t->base; - e = (t += ((uInt)b & inflate_mask[e]))->exop; - } - else - { - z->msg = (char*)"invalid distance code"; - UNGRAB - UPDATE - return Z_DATA_ERROR; - } - } while (1); - break; - } - if ((e & 64) == 0) - { - t += t->base; - if ((e = (t += ((uInt)b & inflate_mask[e]))->exop) == 0) - { - DUMPBITS(t->bits) - Tracevv((stderr, t->base >= 0x20 && t->base < 0x7f ? - "inflate: * literal '%c'\n" : - "inflate: * literal 0x%02x\n", t->base)); - *q++ = (Byte)t->base; - m--; - break; - } - } - else if (e & 32) - { - Tracevv((stderr, "inflate: * end of block\n")); - UNGRAB - UPDATE - return Z_STREAM_END; - } - else - { - z->msg = (char*)"invalid literal/length code"; - UNGRAB - UPDATE - return Z_DATA_ERROR; - } - } while (1); - } while (m >= 258 && n >= 10); - - /* not enough input or output--restore pointers and return */ - UNGRAB - UPDATE - return Z_OK; -} diff --git a/src/zlib/inffast.h b/src/zlib/inffast.h deleted file mode 100644 index 8facec5531..0000000000 --- a/src/zlib/inffast.h +++ /dev/null @@ -1,17 +0,0 @@ -/* inffast.h -- header to use inffast.c - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -extern int inflate_fast OF(( - uInt, - uInt, - inflate_huft *, - inflate_huft *, - inflate_blocks_statef *, - z_streamp )); diff --git a/src/zlib/inffixed.h b/src/zlib/inffixed.h deleted file mode 100644 index 80c9d7aa61..0000000000 --- a/src/zlib/inffixed.h +++ /dev/null @@ -1,125 +0,0 @@ -/* inffixed.h -- table for decoding fixed codes - * Generated automatically by the maketree.c program - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -local uInt fixed_bl = 9; -local uInt fixed_bd = 5; -local inflate_huft fixed_tl[] = { - {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115}, {{{82,7}},31}, - {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},192}, {{{80,7}},10}, {{{0,8}},96}, - {{{0,8}},32}, {{{0,9}},160}, {{{0,8}},0}, {{{0,8}},128}, {{{0,8}},64}, - {{{0,9}},224}, {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, {{{0,9}},144}, - {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},208}, {{{81,7}},17}, - {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},176}, {{{0,8}},8}, {{{0,8}},136}, - {{{0,8}},72}, {{{0,9}},240}, {{{80,7}},4}, {{{0,8}},84}, {{{0,8}},20}, - {{{85,8}},227}, {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, {{{0,9}},200}, - {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},168}, {{{0,8}},4}, - {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},232}, {{{80,7}},8}, {{{0,8}},92}, - {{{0,8}},28}, {{{0,9}},152}, {{{84,7}},83}, {{{0,8}},124}, {{{0,8}},60}, - {{{0,9}},216}, {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, {{{0,9}},184}, - {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},248}, {{{80,7}},3}, - {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163}, {{{83,7}},35}, {{{0,8}},114}, - {{{0,8}},50}, {{{0,9}},196}, {{{81,7}},11}, {{{0,8}},98}, {{{0,8}},34}, - {{{0,9}},164}, {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, {{{0,9}},228}, - {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},148}, {{{84,7}},67}, - {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},212}, {{{82,7}},19}, {{{0,8}},106}, - {{{0,8}},42}, {{{0,9}},180}, {{{0,8}},10}, {{{0,8}},138}, {{{0,8}},74}, - {{{0,9}},244}, {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, {{{192,8}},0}, - {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},204}, {{{81,7}},15}, - {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},172}, {{{0,8}},6}, {{{0,8}},134}, - {{{0,8}},70}, {{{0,9}},236}, {{{80,7}},9}, {{{0,8}},94}, {{{0,8}},30}, - {{{0,9}},156}, {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, {{{0,9}},220}, - {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},188}, {{{0,8}},14}, - {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},252}, {{{96,7}},256}, {{{0,8}},81}, - {{{0,8}},17}, {{{85,8}},131}, {{{82,7}},31}, {{{0,8}},113}, {{{0,8}},49}, - {{{0,9}},194}, {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, {{{0,9}},162}, - {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},226}, {{{80,7}},6}, - {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},146}, {{{83,7}},59}, {{{0,8}},121}, - {{{0,8}},57}, {{{0,9}},210}, {{{81,7}},17}, {{{0,8}},105}, {{{0,8}},41}, - {{{0,9}},178}, {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, {{{0,9}},242}, - {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258}, {{{83,7}},43}, - {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},202}, {{{81,7}},13}, {{{0,8}},101}, - {{{0,8}},37}, {{{0,9}},170}, {{{0,8}},5}, {{{0,8}},133}, {{{0,8}},69}, - {{{0,9}},234}, {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, {{{0,9}},154}, - {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},218}, {{{82,7}},23}, - {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},186}, {{{0,8}},13}, {{{0,8}},141}, - {{{0,8}},77}, {{{0,9}},250}, {{{80,7}},3}, {{{0,8}},83}, {{{0,8}},19}, - {{{85,8}},195}, {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, {{{0,9}},198}, - {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},166}, {{{0,8}},3}, - {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},230}, {{{80,7}},7}, {{{0,8}},91}, - {{{0,8}},27}, {{{0,9}},150}, {{{84,7}},67}, {{{0,8}},123}, {{{0,8}},59}, - {{{0,9}},214}, {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, {{{0,9}},182}, - {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},246}, {{{80,7}},5}, - {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0}, {{{83,7}},51}, {{{0,8}},119}, - {{{0,8}},55}, {{{0,9}},206}, {{{81,7}},15}, {{{0,8}},103}, {{{0,8}},39}, - {{{0,9}},174}, {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, {{{0,9}},238}, - {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},158}, {{{84,7}},99}, - {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},222}, {{{82,7}},27}, {{{0,8}},111}, - {{{0,8}},47}, {{{0,9}},190}, {{{0,8}},15}, {{{0,8}},143}, {{{0,8}},79}, - {{{0,9}},254}, {{{96,7}},256}, {{{0,8}},80}, {{{0,8}},16}, {{{84,8}},115}, - {{{82,7}},31}, {{{0,8}},112}, {{{0,8}},48}, {{{0,9}},193}, {{{80,7}},10}, - {{{0,8}},96}, {{{0,8}},32}, {{{0,9}},161}, {{{0,8}},0}, {{{0,8}},128}, - {{{0,8}},64}, {{{0,9}},225}, {{{80,7}},6}, {{{0,8}},88}, {{{0,8}},24}, - {{{0,9}},145}, {{{83,7}},59}, {{{0,8}},120}, {{{0,8}},56}, {{{0,9}},209}, - {{{81,7}},17}, {{{0,8}},104}, {{{0,8}},40}, {{{0,9}},177}, {{{0,8}},8}, - {{{0,8}},136}, {{{0,8}},72}, {{{0,9}},241}, {{{80,7}},4}, {{{0,8}},84}, - {{{0,8}},20}, {{{85,8}},227}, {{{83,7}},43}, {{{0,8}},116}, {{{0,8}},52}, - {{{0,9}},201}, {{{81,7}},13}, {{{0,8}},100}, {{{0,8}},36}, {{{0,9}},169}, - {{{0,8}},4}, {{{0,8}},132}, {{{0,8}},68}, {{{0,9}},233}, {{{80,7}},8}, - {{{0,8}},92}, {{{0,8}},28}, {{{0,9}},153}, {{{84,7}},83}, {{{0,8}},124}, - {{{0,8}},60}, {{{0,9}},217}, {{{82,7}},23}, {{{0,8}},108}, {{{0,8}},44}, - {{{0,9}},185}, {{{0,8}},12}, {{{0,8}},140}, {{{0,8}},76}, {{{0,9}},249}, - {{{80,7}},3}, {{{0,8}},82}, {{{0,8}},18}, {{{85,8}},163}, {{{83,7}},35}, - {{{0,8}},114}, {{{0,8}},50}, {{{0,9}},197}, {{{81,7}},11}, {{{0,8}},98}, - {{{0,8}},34}, {{{0,9}},165}, {{{0,8}},2}, {{{0,8}},130}, {{{0,8}},66}, - {{{0,9}},229}, {{{80,7}},7}, {{{0,8}},90}, {{{0,8}},26}, {{{0,9}},149}, - {{{84,7}},67}, {{{0,8}},122}, {{{0,8}},58}, {{{0,9}},213}, {{{82,7}},19}, - {{{0,8}},106}, {{{0,8}},42}, {{{0,9}},181}, {{{0,8}},10}, {{{0,8}},138}, - {{{0,8}},74}, {{{0,9}},245}, {{{80,7}},5}, {{{0,8}},86}, {{{0,8}},22}, - {{{192,8}},0}, {{{83,7}},51}, {{{0,8}},118}, {{{0,8}},54}, {{{0,9}},205}, - {{{81,7}},15}, {{{0,8}},102}, {{{0,8}},38}, {{{0,9}},173}, {{{0,8}},6}, - {{{0,8}},134}, {{{0,8}},70}, {{{0,9}},237}, {{{80,7}},9}, {{{0,8}},94}, - {{{0,8}},30}, {{{0,9}},157}, {{{84,7}},99}, {{{0,8}},126}, {{{0,8}},62}, - {{{0,9}},221}, {{{82,7}},27}, {{{0,8}},110}, {{{0,8}},46}, {{{0,9}},189}, - {{{0,8}},14}, {{{0,8}},142}, {{{0,8}},78}, {{{0,9}},253}, {{{96,7}},256}, - {{{0,8}},81}, {{{0,8}},17}, {{{85,8}},131}, {{{82,7}},31}, {{{0,8}},113}, - {{{0,8}},49}, {{{0,9}},195}, {{{80,7}},10}, {{{0,8}},97}, {{{0,8}},33}, - {{{0,9}},163}, {{{0,8}},1}, {{{0,8}},129}, {{{0,8}},65}, {{{0,9}},227}, - {{{80,7}},6}, {{{0,8}},89}, {{{0,8}},25}, {{{0,9}},147}, {{{83,7}},59}, - {{{0,8}},121}, {{{0,8}},57}, {{{0,9}},211}, {{{81,7}},17}, {{{0,8}},105}, - {{{0,8}},41}, {{{0,9}},179}, {{{0,8}},9}, {{{0,8}},137}, {{{0,8}},73}, - {{{0,9}},243}, {{{80,7}},4}, {{{0,8}},85}, {{{0,8}},21}, {{{80,8}},258}, - {{{83,7}},43}, {{{0,8}},117}, {{{0,8}},53}, {{{0,9}},203}, {{{81,7}},13}, - {{{0,8}},101}, {{{0,8}},37}, {{{0,9}},171}, {{{0,8}},5}, {{{0,8}},133}, - {{{0,8}},69}, {{{0,9}},235}, {{{80,7}},8}, {{{0,8}},93}, {{{0,8}},29}, - {{{0,9}},155}, {{{84,7}},83}, {{{0,8}},125}, {{{0,8}},61}, {{{0,9}},219}, - {{{82,7}},23}, {{{0,8}},109}, {{{0,8}},45}, {{{0,9}},187}, {{{0,8}},13}, - {{{0,8}},141}, {{{0,8}},77}, {{{0,9}},251}, {{{80,7}},3}, {{{0,8}},83}, - {{{0,8}},19}, {{{85,8}},195}, {{{83,7}},35}, {{{0,8}},115}, {{{0,8}},51}, - {{{0,9}},199}, {{{81,7}},11}, {{{0,8}},99}, {{{0,8}},35}, {{{0,9}},167}, - {{{0,8}},3}, {{{0,8}},131}, {{{0,8}},67}, {{{0,9}},231}, {{{80,7}},7}, - {{{0,8}},91}, {{{0,8}},27}, {{{0,9}},151}, {{{84,7}},67}, {{{0,8}},123}, - {{{0,8}},59}, {{{0,9}},215}, {{{82,7}},19}, {{{0,8}},107}, {{{0,8}},43}, - {{{0,9}},183}, {{{0,8}},11}, {{{0,8}},139}, {{{0,8}},75}, {{{0,9}},247}, - {{{80,7}},5}, {{{0,8}},87}, {{{0,8}},23}, {{{192,8}},0}, {{{83,7}},51}, - {{{0,8}},119}, {{{0,8}},55}, {{{0,9}},207}, {{{81,7}},15}, {{{0,8}},103}, - {{{0,8}},39}, {{{0,9}},175}, {{{0,8}},7}, {{{0,8}},135}, {{{0,8}},71}, - {{{0,9}},239}, {{{80,7}},9}, {{{0,8}},95}, {{{0,8}},31}, {{{0,9}},159}, - {{{84,7}},99}, {{{0,8}},127}, {{{0,8}},63}, {{{0,9}},223}, {{{82,7}},27}, - {{{0,8}},111}, {{{0,8}},47}, {{{0,9}},191}, {{{0,8}},15}, {{{0,8}},143}, - {{{0,8}},79}, {{{0,9}},255} - }; -local inflate_huft fixed_td[] = { - {{{80,5}},1}, {{{87,5}},257}, {{{83,5}},17}, {{{91,5}},4097}, {{{81,5}},5}, - {{{89,5}},1025}, {{{85,5}},65}, {{{93,5}},16385}, {{{80,5}},3}, {{{88,5}},513}, - {{{84,5}},33}, {{{92,5}},8193}, {{{82,5}},9}, {{{90,5}},2049}, {{{86,5}},129}, - {{{192,5}},24577}, {{{80,5}},2}, {{{87,5}},385}, {{{83,5}},25}, {{{91,5}},6145}, - {{{81,5}},7}, {{{89,5}},1537}, {{{85,5}},97}, {{{93,5}},24577}, {{{80,5}},4}, - {{{88,5}},769}, {{{84,5}},49}, {{{92,5}},12289}, {{{82,5}},13}, {{{90,5}},3073}, - {{{86,5}},193}, {{{192,5}},24577} - }; diff --git a/src/zlib/inflate.c b/src/zlib/inflate.c deleted file mode 100644 index 32e9b8de67..0000000000 --- a/src/zlib/inflate.c +++ /dev/null @@ -1,366 +0,0 @@ -/* inflate.c -- zlib interface to inflate modules - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "infblock.h" - -struct inflate_blocks_state {int dummy;}; /* for buggy compilers */ - -typedef enum { - METHOD, /* waiting for method byte */ - FLAG, /* waiting for flag byte */ - DICT4, /* four dictionary check bytes to go */ - DICT3, /* three dictionary check bytes to go */ - DICT2, /* two dictionary check bytes to go */ - DICT1, /* one dictionary check byte to go */ - DICT0, /* waiting for inflateSetDictionary */ - BLOCKS, /* decompressing blocks */ - CHECK4, /* four check bytes to go */ - CHECK3, /* three check bytes to go */ - CHECK2, /* two check bytes to go */ - CHECK1, /* one check byte to go */ - DONE, /* finished check, done */ - BAD} /* got an error--stay here */ -inflate_mode; - -/* inflate private state */ -struct internal_state { - - /* mode */ - inflate_mode mode; /* current inflate mode */ - - /* mode dependent information */ - union { - uInt method; /* if FLAGS, method byte */ - struct { - uLong was; /* computed check value */ - uLong need; /* stream check value */ - } check; /* if CHECK, check values to compare */ - uInt marker; /* if BAD, inflateSync's marker bytes count */ - } sub; /* submode */ - - /* mode independent information */ - int nowrap; /* flag for no wrapper */ - uInt wbits; /* log2(window size) (8..15, defaults to 15) */ - inflate_blocks_statef - *blocks; /* current inflate_blocks state */ - -}; - - -int ZEXPORT inflateReset(z) -z_streamp z; -{ - if (z == Z_NULL || z->state == Z_NULL) - return Z_STREAM_ERROR; - z->total_in = z->total_out = 0; - z->msg = Z_NULL; - z->state->mode = z->state->nowrap ? BLOCKS : METHOD; - inflate_blocks_reset(z->state->blocks, z, Z_NULL); - Tracev((stderr, "inflate: reset\n")); - return Z_OK; -} - - -int ZEXPORT inflateEnd(z) -z_streamp z; -{ - if (z == Z_NULL || z->state == Z_NULL || z->zfree == Z_NULL) - return Z_STREAM_ERROR; - if (z->state->blocks != Z_NULL) - inflate_blocks_free(z->state->blocks, z); - ZFREE(z, z->state); - z->state = Z_NULL; - Tracev((stderr, "inflate: end\n")); - return Z_OK; -} - - -int ZEXPORT inflateInit2_(z, w, version, stream_size) -z_streamp z; -int w; -const char *version; -int stream_size; -{ - if (version == Z_NULL || version[0] != ZLIB_VERSION[0] || - stream_size != sizeof(z_stream)) - return Z_VERSION_ERROR; - - /* initialize state */ - if (z == Z_NULL) - return Z_STREAM_ERROR; - z->msg = Z_NULL; - if (z->zalloc == Z_NULL) - { - z->zalloc = zcalloc; - z->opaque = (voidpf)0; - } - if (z->zfree == Z_NULL) z->zfree = zcfree; - if ((z->state = (struct internal_state FAR *) - ZALLOC(z,1,sizeof(struct internal_state))) == Z_NULL) - return Z_MEM_ERROR; - z->state->blocks = Z_NULL; - - /* handle undocumented nowrap option (no zlib header or check) */ - z->state->nowrap = 0; - if (w < 0) - { - w = - w; - z->state->nowrap = 1; - } - - /* set window size */ - if (w < 8 || w > 15) - { - inflateEnd(z); - return Z_STREAM_ERROR; - } - z->state->wbits = (uInt)w; - - /* create inflate_blocks state */ - if ((z->state->blocks = - inflate_blocks_new(z, z->state->nowrap ? Z_NULL : adler32, (uInt)1 << w)) - == Z_NULL) - { - inflateEnd(z); - return Z_MEM_ERROR; - } - Tracev((stderr, "inflate: allocated\n")); - - /* reset state */ - inflateReset(z); - return Z_OK; -} - - -int ZEXPORT inflateInit_(z, version, stream_size) -z_streamp z; -const char *version; -int stream_size; -{ - return inflateInit2_(z, DEF_WBITS, version, stream_size); -} - - -#define NEEDBYTE {if(z->avail_in==0)return r;r=f;} -#define NEXTBYTE (z->avail_in--,z->total_in++,*z->next_in++) - -int ZEXPORT inflate(z, f) -z_streamp z; -int f; -{ - int r; - uInt b; - - if (z == Z_NULL || z->state == Z_NULL || z->next_in == Z_NULL) - return Z_STREAM_ERROR; - f = f == Z_FINISH ? Z_BUF_ERROR : Z_OK; - r = Z_BUF_ERROR; - while (1) switch (z->state->mode) - { - case METHOD: - NEEDBYTE - if (((z->state->sub.method = NEXTBYTE) & 0xf) != Z_DEFLATED) - { - z->state->mode = BAD; - z->msg = (char*)"unknown compression method"; - z->state->sub.marker = 5; /* can't try inflateSync */ - break; - } - if ((z->state->sub.method >> 4) + 8 > z->state->wbits) - { - z->state->mode = BAD; - z->msg = (char*)"invalid window size"; - z->state->sub.marker = 5; /* can't try inflateSync */ - break; - } - z->state->mode = FLAG; - case FLAG: - NEEDBYTE - b = NEXTBYTE; - if (((z->state->sub.method << 8) + b) % 31) - { - z->state->mode = BAD; - z->msg = (char*)"incorrect header check"; - z->state->sub.marker = 5; /* can't try inflateSync */ - break; - } - Tracev((stderr, "inflate: zlib header ok\n")); - if (!(b & PRESET_DICT)) - { - z->state->mode = BLOCKS; - break; - } - z->state->mode = DICT4; - case DICT4: - NEEDBYTE - z->state->sub.check.need = (uLong)NEXTBYTE << 24; - z->state->mode = DICT3; - case DICT3: - NEEDBYTE - z->state->sub.check.need += (uLong)NEXTBYTE << 16; - z->state->mode = DICT2; - case DICT2: - NEEDBYTE - z->state->sub.check.need += (uLong)NEXTBYTE << 8; - z->state->mode = DICT1; - case DICT1: - NEEDBYTE - z->state->sub.check.need += (uLong)NEXTBYTE; - z->adler = z->state->sub.check.need; - z->state->mode = DICT0; - return Z_NEED_DICT; - case DICT0: - z->state->mode = BAD; - z->msg = (char*)"need dictionary"; - z->state->sub.marker = 0; /* can try inflateSync */ - return Z_STREAM_ERROR; - case BLOCKS: - r = inflate_blocks(z->state->blocks, z, r); - if (r == Z_DATA_ERROR) - { - z->state->mode = BAD; - z->state->sub.marker = 0; /* can try inflateSync */ - break; - } - if (r == Z_OK) - r = f; - if (r != Z_STREAM_END) - return r; - r = f; - inflate_blocks_reset(z->state->blocks, z, &z->state->sub.check.was); - if (z->state->nowrap) - { - z->state->mode = DONE; - break; - } - z->state->mode = CHECK4; - case CHECK4: - NEEDBYTE - z->state->sub.check.need = (uLong)NEXTBYTE << 24; - z->state->mode = CHECK3; - case CHECK3: - NEEDBYTE - z->state->sub.check.need += (uLong)NEXTBYTE << 16; - z->state->mode = CHECK2; - case CHECK2: - NEEDBYTE - z->state->sub.check.need += (uLong)NEXTBYTE << 8; - z->state->mode = CHECK1; - case CHECK1: - NEEDBYTE - z->state->sub.check.need += (uLong)NEXTBYTE; - - if (z->state->sub.check.was != z->state->sub.check.need) - { - z->state->mode = BAD; - z->msg = (char*)"incorrect data check"; - z->state->sub.marker = 5; /* can't try inflateSync */ - break; - } - Tracev((stderr, "inflate: zlib check ok\n")); - z->state->mode = DONE; - case DONE: - return Z_STREAM_END; - case BAD: - return Z_DATA_ERROR; - default: - return Z_STREAM_ERROR; - } -#ifdef NEED_DUMMY_RETURN - return Z_STREAM_ERROR; /* Some dumb compilers complain without this */ -#endif -} - - -int ZEXPORT inflateSetDictionary(z, dictionary, dictLength) -z_streamp z; -const Bytef *dictionary; -uInt dictLength; -{ - uInt length = dictLength; - - if (z == Z_NULL || z->state == Z_NULL || z->state->mode != DICT0) - return Z_STREAM_ERROR; - - if (adler32(1L, dictionary, dictLength) != z->adler) return Z_DATA_ERROR; - z->adler = 1L; - - if (length >= ((uInt)1<state->wbits)) - { - length = (1<state->wbits)-1; - dictionary += dictLength - length; - } - inflate_set_dictionary(z->state->blocks, dictionary, length); - z->state->mode = BLOCKS; - return Z_OK; -} - - -int ZEXPORT inflateSync(z) -z_streamp z; -{ - uInt n; /* number of bytes to look at */ - Bytef *p; /* pointer to bytes */ - uInt m; /* number of marker bytes found in a row */ - uLong r, w; /* temporaries to save total_in and total_out */ - - /* set up */ - if (z == Z_NULL || z->state == Z_NULL) - return Z_STREAM_ERROR; - if (z->state->mode != BAD) - { - z->state->mode = BAD; - z->state->sub.marker = 0; - } - if ((n = z->avail_in) == 0) - return Z_BUF_ERROR; - p = z->next_in; - m = z->state->sub.marker; - - /* search */ - while (n && m < 4) - { - static const Byte mark[4] = {0, 0, 0xff, 0xff}; - if (*p == mark[m]) - m++; - else if (*p) - m = 0; - else - m = 4 - m; - p++, n--; - } - - /* restore */ - z->total_in += p - z->next_in; - z->next_in = p; - z->avail_in = n; - z->state->sub.marker = m; - - /* return no joy or set up to restart on a new block */ - if (m != 4) - return Z_DATA_ERROR; - r = z->total_in; w = z->total_out; - inflateReset(z); - z->total_in = r; z->total_out = w; - z->state->mode = BLOCKS; - return Z_OK; -} - - -/* Returns true if inflate is currently at the end of a block generated - * by Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP - * implementation to provide an additional safety check. PPP uses Z_SYNC_FLUSH - * but removes the length bytes of the resulting empty stored block. When - * decompressing, PPP checks that at the end of input packet, inflate is - * waiting for these length bytes. - */ -int ZEXPORT inflateSyncPoint(z) -z_streamp z; -{ - if (z == Z_NULL || z->state == Z_NULL || z->state->blocks == Z_NULL) - return Z_STREAM_ERROR; - return inflate_blocks_sync_point(z->state->blocks); -} diff --git a/src/zlib/inftrees.c b/src/zlib/inftrees.c deleted file mode 100644 index 6876ab5a8d..0000000000 --- a/src/zlib/inftrees.c +++ /dev/null @@ -1,455 +0,0 @@ -/* inftrees.c -- generate Huffman trees for efficient decoding - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "inftrees.h" - -#if !defined(BUILDFIXED) && !defined(STDC) -# define BUILDFIXED /* non ANSI compilers may not accept inffixed.h */ -#endif - -const char inflate_copyright[] = - " inflate 1.1.2 Copyright 1995-1998 Mark Adler "; -/* - If you use the zlib library in a product, an acknowledgment is welcome - in the documentation of your product. If for some reason you cannot - include such an acknowledgment, I would appreciate that you keep this - copyright string in the executable of your product. - */ -struct internal_state {int dummy;}; /* for buggy compilers */ - -/* simplify the use of the inflate_huft type with some defines */ -#define exop word.what.Exop -#define bits word.what.Bits - - -local int huft_build OF(( - uIntf *, /* code lengths in bits */ - uInt, /* number of codes */ - uInt, /* number of "simple" codes */ - const uIntf *, /* list of base values for non-simple codes */ - const uIntf *, /* list of extra bits for non-simple codes */ - inflate_huft * FAR*,/* result: starting table */ - uIntf *, /* maximum lookup bits (returns actual) */ - inflate_huft *, /* space for trees */ - uInt *, /* hufts used in space */ - uIntf * )); /* space for values */ - -/* Tables for deflate from PKZIP's appnote.txt. */ -local const uInt cplens[31] = { /* Copy lengths for literal codes 257..285 */ - 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, - 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0}; - /* see note #13 above about 258 */ -local const uInt cplext[31] = { /* Extra bits for literal codes 257..285 */ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, - 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 112}; /* 112==invalid */ -local const uInt cpdist[30] = { /* Copy offsets for distance codes 0..29 */ - 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, - 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, - 8193, 12289, 16385, 24577}; -local const uInt cpdext[30] = { /* Extra bits for distance codes */ - 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, - 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, - 12, 12, 13, 13}; - -/* - Huffman code decoding is performed using a multi-level table lookup. - The fastest way to decode is to simply build a lookup table whose - size is determined by the longest code. However, the time it takes - to build this table can also be a factor if the data being decoded - is not very long. The most common codes are necessarily the - shortest codes, so those codes dominate the decoding time, and hence - the speed. The idea is you can have a shorter table that decodes the - shorter, more probable codes, and then point to subsidiary tables for - the longer codes. The time it costs to decode the longer codes is - then traded against the time it takes to make longer tables. - - This results of this trade are in the variables lbits and dbits - below. lbits is the number of bits the first level table for literal/ - length codes can decode in one step, and dbits is the same thing for - the distance codes. Subsequent tables are also less than or equal to - those sizes. These values may be adjusted either when all of the - codes are shorter than that, in which case the longest code length in - bits is used, or when the shortest code is *longer* than the requested - table size, in which case the length of the shortest code in bits is - used. - - There are two different values for the two tables, since they code a - different number of possibilities each. The literal/length table - codes 286 possible values, or in a flat code, a little over eight - bits. The distance table codes 30 possible values, or a little less - than five bits, flat. The optimum values for speed end up being - about one bit more than those, so lbits is 8+1 and dbits is 5+1. - The optimum values may differ though from machine to machine, and - possibly even between compilers. Your mileage may vary. - */ - - -/* If BMAX needs to be larger than 16, then h and x[] should be uLong. */ -#define BMAX 15 /* maximum bit length of any code */ - -local int huft_build(b, n, s, d, e, t, m, hp, hn, v) -uIntf *b; /* code lengths in bits (all assumed <= BMAX) */ -uInt n; /* number of codes (assumed <= 288) */ -uInt s; /* number of simple-valued codes (0..s-1) */ -const uIntf *d; /* list of base values for non-simple codes */ -const uIntf *e; /* list of extra bits for non-simple codes */ -inflate_huft * FAR *t; /* result: starting table */ -uIntf *m; /* maximum lookup bits, returns actual */ -inflate_huft *hp; /* space for trees */ -uInt *hn; /* hufts used in space */ -uIntf *v; /* working area: values in order of bit length */ -/* Given a list of code lengths and a maximum table size, make a set of - tables to decode that set of codes. Return Z_OK on success, Z_BUF_ERROR - if the given code set is incomplete (the tables are still built in this - case), Z_DATA_ERROR if the input is invalid (an over-subscribed set of - lengths), or Z_MEM_ERROR if not enough memory. */ -{ - - uInt a; /* counter for codes of length k */ - uInt c[BMAX+1]; /* bit length count table */ - uInt f; /* i repeats in table every f entries */ - int g; /* maximum code length */ - int h; /* table level */ - register uInt i; /* counter, current code */ - register uInt j; /* counter */ - register int k; /* number of bits in current code */ - int l; /* bits per table (returned in m) */ - uInt mask; /* (1 << w) - 1, to avoid cc -O bug on HP */ - register uIntf *p; /* pointer into c[], b[], or v[] */ - inflate_huft *q; /* points to current table */ - struct inflate_huft_s r; /* table entry for structure assignment */ - inflate_huft *u[BMAX]; /* table stack */ - register int w; /* bits before this table == (l * h) */ - uInt x[BMAX+1]; /* bit offsets, then code stack */ - uIntf *xp; /* pointer into x */ - int y; /* number of dummy codes added */ - uInt z; /* number of entries in current table */ - - - /* Generate counts for each bit length */ - p = c; -#define C0 *p++ = 0; -#define C2 C0 C0 C0 C0 -#define C4 C2 C2 C2 C2 - C4 /* clear c[]--assume BMAX+1 is 16 */ - p = b; i = n; - do { - c[*p++]++; /* assume all entries <= BMAX */ - } while (--i); - if (c[0] == n) /* null input--all zero length codes */ - { - *t = (inflate_huft *)Z_NULL; - *m = 0; - return Z_OK; - } - - - /* Find minimum and maximum length, bound *m by those */ - l = *m; - for (j = 1; j <= BMAX; j++) - if (c[j]) - break; - k = j; /* minimum code length */ - if ((uInt)l < j) - l = j; - for (i = BMAX; i; i--) - if (c[i]) - break; - g = i; /* maximum code length */ - if ((uInt)l > i) - l = i; - *m = l; - - - /* Adjust last length count to fill out codes, if needed */ - for (y = 1 << j; j < i; j++, y <<= 1) - if ((y -= c[j]) < 0) - return Z_DATA_ERROR; - if ((y -= c[i]) < 0) - return Z_DATA_ERROR; - c[i] += y; - - - /* Generate starting offsets into the value table for each length */ - x[1] = j = 0; - p = c + 1; xp = x + 2; - while (--i) { /* note that i == g from above */ - *xp++ = (j += *p++); - } - - - /* Make a table of values in order of bit lengths */ - p = b; i = 0; - do { - if ((j = *p++) != 0) - v[x[j]++] = i; - } while (++i < n); - n = x[g]; /* set n to length of v */ - - - /* Generate the Huffman codes and for each, make the table entries */ - x[0] = i = 0; /* first Huffman code is zero */ - p = v; /* grab values in bit order */ - h = -1; /* no tables yet--level -1 */ - w = -l; /* bits decoded == (l * h) */ - u[0] = (inflate_huft *)Z_NULL; /* just to keep compilers happy */ - q = (inflate_huft *)Z_NULL; /* ditto */ - z = 0; /* ditto */ - - /* go through the bit lengths (k already is bits in shortest code) */ - for (; k <= g; k++) - { - a = c[k]; - while (a--) - { - /* here i is the Huffman code of length k bits for value *p */ - /* make tables up to required level */ - while (k > w + l) - { - h++; - w += l; /* previous table always l bits */ - - /* compute minimum size table less than or equal to l bits */ - z = g - w; - z = z > (uInt)l ? l : z; /* table size upper limit */ - if ((f = 1 << (j = k - w)) > a + 1) /* try a k-w bit table */ - { /* too few codes for k-w bit table */ - f -= a + 1; /* deduct codes from patterns left */ - xp = c + k; - if (j < z) - while (++j < z) /* try smaller tables up to z bits */ - { - if ((f <<= 1) <= *++xp) - break; /* enough codes to use up j bits */ - f -= *xp; /* else deduct codes from patterns */ - } - } - z = 1 << j; /* table entries for j-bit table */ - - /* allocate new table */ - if (*hn + z > MANY) /* (note: doesn't matter for fixed) */ - return Z_MEM_ERROR; /* not enough memory */ - u[h] = q = hp + *hn; - *hn += z; - - /* connect to last table, if there is one */ - if (h) - { - x[h] = i; /* save pattern for backing up */ - r.bits = (Byte)l; /* bits to dump before this table */ - r.exop = (Byte)j; /* bits in this table */ - j = i >> (w - l); - r.base = (uInt)(q - u[h-1] - j); /* offset to this table */ - u[h-1][j] = r; /* connect to last table */ - } - else - *t = q; /* first table is returned result */ - } - - /* set up table entry in r */ - r.bits = (Byte)(k - w); - if (p >= v + n) - r.exop = 128 + 64; /* out of values--invalid code */ - else if (*p < s) - { - r.exop = (Byte)(*p < 256 ? 0 : 32 + 64); /* 256 is end-of-block */ - r.base = *p++; /* simple code is just the value */ - } - else - { - r.exop = (Byte)(e[*p - s] + 16 + 64);/* non-simple--look up in lists */ - r.base = d[*p++ - s]; - } - - /* fill code-like entries with r */ - f = 1 << (k - w); - for (j = i >> w; j < z; j += f) - q[j] = r; - - /* backwards increment the k-bit code i */ - for (j = 1 << (k - 1); i & j; j >>= 1) - i ^= j; - i ^= j; - - /* backup over finished tables */ - mask = (1 << w) - 1; /* needed on HP, cc -O bug */ - while ((i & mask) != x[h]) - { - h--; /* don't need to update q */ - w -= l; - mask = (1 << w) - 1; - } - } - } - - - /* Return Z_BUF_ERROR if we were given an incomplete table */ - return y != 0 && g != 1 ? Z_BUF_ERROR : Z_OK; -} - - -int inflate_trees_bits(c, bb, tb, hp, z) -uIntf *c; /* 19 code lengths */ -uIntf *bb; /* bits tree desired/actual depth */ -inflate_huft * FAR *tb; /* bits tree result */ -inflate_huft *hp; /* space for trees */ -z_streamp z; /* for messages */ -{ - int r; - uInt hn = 0; /* hufts used in space */ - uIntf *v; /* work area for huft_build */ - - if ((v = (uIntf*)ZALLOC(z, 19, sizeof(uInt))) == Z_NULL) - return Z_MEM_ERROR; - r = huft_build(c, 19, 19, (uIntf*)Z_NULL, (uIntf*)Z_NULL, - tb, bb, hp, &hn, v); - if (r == Z_DATA_ERROR) - z->msg = (char*)"oversubscribed dynamic bit lengths tree"; - else if (r == Z_BUF_ERROR || *bb == 0) - { - z->msg = (char*)"incomplete dynamic bit lengths tree"; - r = Z_DATA_ERROR; - } - ZFREE(z, v); - return r; -} - - -int inflate_trees_dynamic(nl, nd, c, bl, bd, tl, td, hp, z) -uInt nl; /* number of literal/length codes */ -uInt nd; /* number of distance codes */ -uIntf *c; /* that many (total) code lengths */ -uIntf *bl; /* literal desired/actual bit depth */ -uIntf *bd; /* distance desired/actual bit depth */ -inflate_huft * FAR *tl; /* literal/length tree result */ -inflate_huft * FAR *td; /* distance tree result */ -inflate_huft *hp; /* space for trees */ -z_streamp z; /* for messages */ -{ - int r; - uInt hn = 0; /* hufts used in space */ - uIntf *v; /* work area for huft_build */ - - /* allocate work area */ - if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) - return Z_MEM_ERROR; - - /* build literal/length tree */ - r = huft_build(c, nl, 257, cplens, cplext, tl, bl, hp, &hn, v); - if (r != Z_OK || *bl == 0) - { - if (r == Z_DATA_ERROR) - z->msg = (char*)"oversubscribed literal/length tree"; - else if (r != Z_MEM_ERROR) - { - z->msg = (char*)"incomplete literal/length tree"; - r = Z_DATA_ERROR; - } - ZFREE(z, v); - return r; - } - - /* build distance tree */ - r = huft_build(c + nl, nd, 0, cpdist, cpdext, td, bd, hp, &hn, v); - if (r != Z_OK || (*bd == 0 && nl > 257)) - { - if (r == Z_DATA_ERROR) - z->msg = (char*)"oversubscribed distance tree"; - else if (r == Z_BUF_ERROR) { -#ifdef PKZIP_BUG_WORKAROUND - r = Z_OK; - } -#else - z->msg = (char*)"incomplete distance tree"; - r = Z_DATA_ERROR; - } - else if (r != Z_MEM_ERROR) - { - z->msg = (char*)"empty distance tree with lengths"; - r = Z_DATA_ERROR; - } - ZFREE(z, v); - return r; -#endif - } - - /* done */ - ZFREE(z, v); - return Z_OK; -} - - -/* build fixed tables only once--keep them here */ -#ifdef BUILDFIXED -local int fixed_built = 0; -#define FIXEDH 544 /* number of hufts used by fixed tables */ -local inflate_huft fixed_mem[FIXEDH]; -local uInt fixed_bl; -local uInt fixed_bd; -local inflate_huft *fixed_tl; -local inflate_huft *fixed_td; -#else -#include "inffixed.h" -#endif - - -int inflate_trees_fixed(bl, bd, tl, td, z) -uIntf *bl; /* literal desired/actual bit depth */ -uIntf *bd; /* distance desired/actual bit depth */ -inflate_huft * FAR *tl; /* literal/length tree result */ -inflate_huft * FAR *td; /* distance tree result */ -z_streamp z; /* for memory allocation */ -{ -#ifdef BUILDFIXED - /* build fixed tables if not already */ - if (!fixed_built) - { - int k; /* temporary variable */ - uInt f = 0; /* number of hufts used in fixed_mem */ - uIntf *c; /* length list for huft_build */ - uIntf *v; /* work area for huft_build */ - - /* allocate memory */ - if ((c = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) - return Z_MEM_ERROR; - if ((v = (uIntf*)ZALLOC(z, 288, sizeof(uInt))) == Z_NULL) - { - ZFREE(z, c); - return Z_MEM_ERROR; - } - - /* literal table */ - for (k = 0; k < 144; k++) - c[k] = 8; - for (; k < 256; k++) - c[k] = 9; - for (; k < 280; k++) - c[k] = 7; - for (; k < 288; k++) - c[k] = 8; - fixed_bl = 9; - huft_build(c, 288, 257, cplens, cplext, &fixed_tl, &fixed_bl, - fixed_mem, &f, v); - - /* distance table */ - for (k = 0; k < 30; k++) - c[k] = 5; - fixed_bd = 5; - huft_build(c, 30, 0, cpdist, cpdext, &fixed_td, &fixed_bd, - fixed_mem, &f, v); - - /* done */ - ZFREE(z, v); - ZFREE(z, c); - fixed_built = 1; - } -#endif - *bl = fixed_bl; - *bd = fixed_bd; - *tl = fixed_tl; - *td = fixed_td; - return Z_OK; -} diff --git a/src/zlib/inftrees.h b/src/zlib/inftrees.h deleted file mode 100644 index 85853e097b..0000000000 --- a/src/zlib/inftrees.h +++ /dev/null @@ -1,58 +0,0 @@ -/* inftrees.h -- header to use inftrees.c - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* Huffman code lookup table entry--this entry is four bytes for machines - that have 16-bit pointers (e.g. PC's in the small or medium model). */ - -typedef struct inflate_huft_s FAR inflate_huft; - -struct inflate_huft_s { - union { - struct { - Byte Exop; /* number of extra bits or operation */ - Byte Bits; /* number of bits in this code or subcode */ - } what; - uInt pad; /* pad structure to a power of 2 (4 bytes for */ - } word; /* 16-bit, 8 bytes for 32-bit int's) */ - uInt base; /* literal, length base, distance base, - or table offset */ -}; - -/* Maximum size of dynamic tree. The maximum found in a long but non- - exhaustive search was 1004 huft structures (850 for length/literals - and 154 for distances, the latter actually the result of an - exhaustive search). The actual maximum is not known, but the - value below is more than safe. */ -#define MANY 1440 - -extern int inflate_trees_bits OF(( - uIntf *, /* 19 code lengths */ - uIntf *, /* bits tree desired/actual depth */ - inflate_huft * FAR *, /* bits tree result */ - inflate_huft *, /* space for trees */ - z_streamp)); /* for messages */ - -extern int inflate_trees_dynamic OF(( - uInt, /* number of literal/length codes */ - uInt, /* number of distance codes */ - uIntf *, /* that many (total) code lengths */ - uIntf *, /* literal desired/actual bit depth */ - uIntf *, /* distance desired/actual bit depth */ - inflate_huft * FAR *, /* literal/length tree result */ - inflate_huft * FAR *, /* distance tree result */ - inflate_huft *, /* space for trees */ - z_streamp)); /* for messages */ - -extern int inflate_trees_fixed OF(( - uIntf *, /* literal desired/actual bit depth */ - uIntf *, /* distance desired/actual bit depth */ - inflate_huft * FAR *, /* literal/length tree result */ - inflate_huft * FAR *, /* distance tree result */ - z_streamp)); /* for memory allocation */ diff --git a/src/zlib/infutil.c b/src/zlib/infutil.c deleted file mode 100644 index 824dab5712..0000000000 --- a/src/zlib/infutil.c +++ /dev/null @@ -1,87 +0,0 @@ -/* inflate_util.c -- data and routines common to blocks and codes - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -#include "zutil.h" -#include "infblock.h" -#include "inftrees.h" -#include "infcodes.h" -#include "infutil.h" - -struct inflate_codes_state {int dummy;}; /* for buggy compilers */ - -/* And'ing with mask[n] masks the lower n bits */ -uInt inflate_mask[17] = { - 0x0000, - 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, - 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff -}; - - -/* copy as much as possible from the sliding window to the output area */ -int inflate_flush(s, z, r) -inflate_blocks_statef *s; -z_streamp z; -int r; -{ - uInt n; - Bytef *p; - Bytef *q; - - /* local copies of source and destination pointers */ - p = z->next_out; - q = s->read; - - /* compute number of bytes to copy as far as end of window */ - n = (uInt)((q <= s->write ? s->write : s->end) - q); - if (n > z->avail_out) n = z->avail_out; - if (n && r == Z_BUF_ERROR) r = Z_OK; - - /* update counters */ - z->avail_out -= n; - z->total_out += n; - - /* update check information */ - if (s->checkfn != Z_NULL) - z->adler = s->check = (*s->checkfn)(s->check, q, n); - - /* copy as far as end of window */ - zmemcpy(p, q, n); - p += n; - q += n; - - /* see if more to copy at beginning of window */ - if (q == s->end) - { - /* wrap pointers */ - q = s->window; - if (s->write == s->end) - s->write = s->window; - - /* compute bytes to copy */ - n = (uInt)(s->write - q); - if (n > z->avail_out) n = z->avail_out; - if (n && r == Z_BUF_ERROR) r = Z_OK; - - /* update counters */ - z->avail_out -= n; - z->total_out += n; - - /* update check information */ - if (s->checkfn != Z_NULL) - z->adler = s->check = (*s->checkfn)(s->check, q, n); - - /* copy */ - zmemcpy(p, q, n); - p += n; - q += n; - } - - /* update pointers */ - z->next_out = p; - s->read = q; - - /* done */ - return r; -} diff --git a/src/zlib/infutil.h b/src/zlib/infutil.h deleted file mode 100644 index 99d1135d06..0000000000 --- a/src/zlib/infutil.h +++ /dev/null @@ -1,98 +0,0 @@ -/* infutil.h -- types and macros common to blocks and codes - * Copyright (C) 1995-1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -#ifndef _INFUTIL_H -#define _INFUTIL_H - -typedef enum { - TYPE, /* get type bits (3, including end bit) */ - LENS, /* get lengths for stored */ - STORED, /* processing stored block */ - TABLE, /* get table lengths */ - BTREE, /* get bit lengths tree for a dynamic block */ - DTREE, /* get length, distance trees for a dynamic block */ - CODES, /* processing fixed or dynamic block */ - DRY, /* output remaining window bytes */ - DONE, /* finished last block, done */ - BAD} /* got a data error--stuck here */ -inflate_block_mode; - -/* inflate blocks semi-private state */ -struct inflate_blocks_state { - - /* mode */ - inflate_block_mode mode; /* current inflate_block mode */ - - /* mode dependent information */ - union { - uInt left; /* if STORED, bytes left to copy */ - struct { - uInt table; /* table lengths (14 bits) */ - uInt index; /* index into blens (or border) */ - uIntf *blens; /* bit lengths of codes */ - uInt bb; /* bit length tree depth */ - inflate_huft *tb; /* bit length decoding tree */ - } trees; /* if DTREE, decoding info for trees */ - struct { - inflate_codes_statef - *codes; - } decode; /* if CODES, current state */ - } sub; /* submode */ - uInt last; /* true if this block is the last block */ - - /* mode independent information */ - uInt bitk; /* bits in bit buffer */ - uLong bitb; /* bit buffer */ - inflate_huft *hufts; /* single malloc for tree space */ - Bytef *window; /* sliding window */ - Bytef *end; /* one byte after sliding window */ - Bytef *read; /* window read pointer */ - Bytef *write; /* window write pointer */ - check_func checkfn; /* check function */ - uLong check; /* check on output */ - -}; - - -/* defines for inflate input/output */ -/* update pointers and return */ -#define UPDBITS {s->bitb=b;s->bitk=k;} -#define UPDIN {z->avail_in=n;z->total_in+=p-z->next_in;z->next_in=p;} -#define UPDOUT {s->write=q;} -#define UPDATE {UPDBITS UPDIN UPDOUT} -#define LEAVE {UPDATE return inflate_flush(s,z,r);} -/* get bytes and bits */ -#define LOADIN {p=z->next_in;n=z->avail_in;b=s->bitb;k=s->bitk;} -#define NEEDBYTE {if(n)r=Z_OK;else LEAVE} -#define NEXTBYTE (n--,*p++) -#define NEEDBITS(j) {while(k<(j)){NEEDBYTE;b|=((uLong)NEXTBYTE)<>=(j);k-=(j);} -/* output bytes */ -#define WAVAIL (uInt)(qread?s->read-q-1:s->end-q) -#define LOADOUT {q=s->write;m=(uInt)WAVAIL;} -#define WRAP {if(q==s->end&&s->read!=s->window){q=s->window;m=(uInt)WAVAIL;}} -#define FLUSH {UPDOUT r=inflate_flush(s,z,r); LOADOUT} -#define NEEDOUT {if(m==0){WRAP if(m==0){FLUSH WRAP if(m==0) LEAVE}}r=Z_OK;} -#define OUTBYTE(a) {*q++=(Byte)(a);m--;} -/* load local pointers */ -#define LOAD {LOADIN LOADOUT} - -/* masks for lower bits (size given to avoid silly warnings with Visual C++) */ -extern uInt inflate_mask[17]; - -/* copy as much as possible from the sliding window to the output area */ -extern int inflate_flush OF(( - inflate_blocks_statef *, - z_streamp , - int)); - -struct internal_state {int dummy;}; /* for buggy compilers */ - -#endif diff --git a/src/zlib/makefile.b32 b/src/zlib/makefile.b32 deleted file mode 100644 index d9da543dab..0000000000 --- a/src/zlib/makefile.b32 +++ /dev/null @@ -1,24 +0,0 @@ -# Makefile for zlib -# Borland C++ - -# This version of the zlib makefile was adapted by Chris Young for use -# with Borland C 4.5x with the Dos Power Pack for a 32-bit protected mode -# flat memory model. It was created for use with POV-Ray ray tracer and -# you may choose to edit the CFLAGS to suit your needs but the -# switches -WX and -DMSDOS are required. -# -- Chris Young 76702.1655@compuserve.com - -# To use, do "make -fmakefile.b32" - -# See zconf.h for details about the memory requirements. - -# ------------- Borland C++ ------------- - -LIBTARGET=..\..\lib\zlib.lib - -OBJECTS = adler32.obj compress.obj crc32.obj gzio.obj uncompr.obj deflate.obj \ - trees.obj zutil.obj inflate.obj infblock.obj inftrees.obj infcodes.obj \ - infutil.obj inffast.obj - -!include $(WXWIN)\src\makelib.b32 - diff --git a/src/zlib/makefile.bcc b/src/zlib/makefile.bcc deleted file mode 100644 index 42d9d18e22..0000000000 --- a/src/zlib/makefile.bcc +++ /dev/null @@ -1,88 +0,0 @@ -# Makefile for zlib -# Borland C++ ************ UNTESTED *********** - -# To use, do "make -fmakefile.bor" - -# WARNING: the small model is supported but only for small values of -# MAX_WBITS and MAX_MEM_LEVEL. If you wish to reduce the memory -# requirements (default 256K for big objects plus a few K), you can add -# to CFLAGS below: -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14 -# See zconf.h for details about the memory requirements. - -# ------------- Turbo C++, Borland C++ ------------- -MODEL=-ml -CFLAGS=-O2 -Z $(MODEL) -3 -Fs- -CC=bcc -LD=bcc -LIB=tlib -# replace bcc with tcc for Turbo C++ 1.0 -LDFLAGS=$(MODEL) -O=.obj - -LIBTARGET=..\..\lib\zlib.lib - -# variables -OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \ - trees$(O) -OBJP1 = adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O)+\ - trees$(O) -OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \ - infutil$(O) inffast$(O) -OBJP2 = zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O)+\ - infutil$(O)+inffast$(O) - -all: $(LIBTARGET) - -adler32.obj: adler32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -compress.obj: compress.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -crc32.obj: crc32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -gzio.obj: gzio.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\ - infcodes.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\ - infcodes.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h - $(CC) -c $(CFLAGS) $*.c - -inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h - $(CC) -c $(CFLAGS) $*.c - -infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -uncompr.obj: uncompr.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -zutil.obj: zutil.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -# we must cut the command line to fit in the MS/DOS 128 byte limit: -$(LIBTARGET): $(OBJ1) $(OBJ2) - $(LIB) $(LIBTARGET) +$(OBJP1) - $(LIB) $(LIBTARGET) +$(OBJP2) - -clean: - -erase *.obj - -erase *.exe - -erase $(LIBTARGET) diff --git a/src/zlib/makefile.dos b/src/zlib/makefile.dos deleted file mode 100644 index a508948b71..0000000000 --- a/src/zlib/makefile.dos +++ /dev/null @@ -1,91 +0,0 @@ -# Makefile for zlib -# Borland C++ ************ UNTESTED *********** - -# To use, do "make -fmakefile.bor" - -# WARNING: the small model is supported but only for small values of -# MAX_WBITS and MAX_MEM_LEVEL. If you wish to reduce the memory -# requirements (default 256K for big objects plus a few K), you can add -# to CFLAGS below: -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14 -# See zconf.h for details about the memory requirements. - -# ------------- Turbo C++, Borland C++ ------------- -CFLAGS=-O2 /MD # /GX -CC=cl -LD=cl -LIB=tlib -# replace bcc with tcc for Turbo C++ 1.0 -LDFLAGS=$(MODEL) -O=.obj - -LIBTARGET=..\..\lib\zlib.lib - -# variables -OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \ - trees$(O) -OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \ - infutil$(O) inffast$(O) - -all: $(LIBTARGET) - -adler32.obj: adler32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -compress.obj: compress.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -crc32.obj: crc32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -gzio.obj: gzio.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\ - infcodes.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\ - infcodes.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h - $(CC) -c $(CFLAGS) $*.c - -inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h - $(CC) -c $(CFLAGS) $*.c - -infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -uncompr.obj: uncompr.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -zutil.obj: zutil.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -LIBOBJECTS = $(OBJ1) $(OBJ2) - -$(LIBTARGET): $(OBJ1) $(OBJ2) - del $(LIBTARGET) - lib /PAGESIZE:128 @<< -$(LIBTARGET) -y -$(OBJ1) $(OBJ2) -nul -; -<< - -clean: - -erase *.obj - -erase *.exe - -erase *.sbr - -erase $(LIBTARGET) diff --git a/src/zlib/makefile.unx b/src/zlib/makefile.unx deleted file mode 100644 index 5dc486830e..0000000000 --- a/src/zlib/makefile.unx +++ /dev/null @@ -1,30 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for PNG library, Unix - -include ../make.env - -TARGETLIB=../../lib/libzlib.a - -LIB_C_SRC = adler32.c compress.c crc32.c gzio.c uncompr.c deflate.c \ - trees.c zutil.c inflate.c infblock.c inftrees.c infcodes.c \ - infutil.c inffast.c - -all: $(TARGETLIB) - -# Define library objects -OBJECTS=\ - $(LIB_C_SRC:.c=.o) - -$(TARGETLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(TARGETLIB) diff --git a/src/zlib/makefile.vc b/src/zlib/makefile.vc deleted file mode 100644 index fa57b5c76b..0000000000 --- a/src/zlib/makefile.vc +++ /dev/null @@ -1,88 +0,0 @@ -# Makefile for zlib -# Borland C++ ************ UNTESTED *********** - -# To use, do "make -fmakefile.bor" - -# WARNING: the small model is supported but only for small values of -# MAX_WBITS and MAX_MEM_LEVEL. If you wish to reduce the memory -# requirements (default 256K for big objects plus a few K), you can add -# to CFLAGS below: -DMAX_MEM_LEVEL=7 -DMAX_WBITS=14 -# See zconf.h for details about the memory requirements. - -# ------------- Turbo C++, Borland C++ ------------- -CFLAGS=-O2 /MD /GX -CC=cl -LD=cl -LIB=tlib -# replace bcc with tcc for Turbo C++ 1.0 -LDFLAGS=$(MODEL) -O=.obj - -LIBTARGET=..\..\lib\zlib.lib - -# variables -OBJ1 = adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) \ - trees$(O) -OBJ2 = zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) \ - infutil$(O) inffast$(O) - -all: $(LIBTARGET) - -adler32.obj: adler32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -compress.obj: compress.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -crc32.obj: crc32.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -gzio.obj: gzio.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h\ - infcodes.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h\ - infcodes.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h - $(CC) -c $(CFLAGS) $*.c - -inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h - $(CC) -c $(CFLAGS) $*.c - -infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h - $(CC) -c $(CFLAGS) $*.c - -inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h - $(CC) -c $(CFLAGS) $*.c - -trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -uncompr.obj: uncompr.c zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -zutil.obj: zutil.c zutil.h zlib.h zconf.h - $(CC) -c $(CFLAGS) $*.c - -LIBOBJECTS = $(OBJ1) $(OBJ2) - -$(LIBTARGET): $(LIBOBJECTS) - del $(LIBTARGET) - lib @<< --out:$(LIBTARGET) -$(LIBOBJECTS) -<< - -clean: - -erase *.obj - -erase *.exe - -erase *.sbr - -erase $(LIBTARGET) diff --git a/src/zlib/makefile.wat b/src/zlib/makefile.wat deleted file mode 100644 index 7f62708415..0000000000 --- a/src/zlib/makefile.wat +++ /dev/null @@ -1,107 +0,0 @@ -# Makefile for zlib -# Watcom 10a - -# This version of the zlib makefile was adapted by Chris Young for use -# with Watcom 10a 32-bit protected mode flat memory model. It was created -# for use with POV-Ray ray tracer and you may choose to edit the CFLAGS to -# suit your needs but the -DMSDOS is required. -# -- Chris Young 76702.1655@compuserve.com - -# To use, do "wmake -f makefile.wat" - -# See zconf.h for details about the memory requirements. - -# ------------- Watcom 10a ------------- -MODEL=-mf -CFLAGS= $(MODEL) -fpi87 -fp5 -zp4 -5r -w5 -oneatx -DMSDOS -CC=wcc386 -LD=wcl386 -LIB=wlib -b -c -LDFLAGS= -O=.obj -LIBTARGET=..\..\lib\zlib.lib - -# variables -OBJ1=adler32$(O) compress$(O) crc32$(O) gzio$(O) uncompr$(O) deflate$(O) -OBJ2=trees$(O) zutil$(O) inflate$(O) infblock$(O) inftrees$(O) infcodes$(O) -OBJ3=infutil$(O) inffast$(O) -OBJP1=adler32$(O)+compress$(O)+crc32$(O)+gzio$(O)+uncompr$(O)+deflate$(O) -OBJP2=trees$(O)+zutil$(O)+inflate$(O)+infblock$(O)+inftrees$(O)+infcodes$(O) -OBJP3=infutil$(O)+inffast$(O) - -# all: test - -all: $(LIBTARGET) - -adler32.obj: adler32.c zutil.h zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -compress.obj: compress.c zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -crc32.obj: crc32.c zutil.h zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -deflate.obj: deflate.c deflate.h zutil.h zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -gzio.obj: gzio.c zutil.h zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -infblock.obj: infblock.c zutil.h zlib.h zconf.h infblock.h inftrees.h & - infcodes.h infutil.h - $(CC) $(CFLAGS) $*.c - -infcodes.obj: infcodes.c zutil.h zlib.h zconf.h inftrees.h infutil.h & - infcodes.h inffast.h - $(CC) $(CFLAGS) $*.c - -inflate.obj: inflate.c zutil.h zlib.h zconf.h infblock.h - $(CC) $(CFLAGS) $*.c - -inftrees.obj: inftrees.c zutil.h zlib.h zconf.h inftrees.h - $(CC) $(CFLAGS) $*.c - -infutil.obj: infutil.c zutil.h zlib.h zconf.h inftrees.h infutil.h - $(CC) $(CFLAGS) $*.c - -inffast.obj: inffast.c zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h - $(CC) $(CFLAGS) $*.c - -trees.obj: trees.c deflate.h zutil.h zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -uncompr.obj: uncompr.c zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -zutil.obj: zutil.c zutil.h zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -example.obj: example.c zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -minigzip.obj: minigzip.c zlib.h zconf.h - $(CC) $(CFLAGS) $*.c - -# we must cut the command line to fit in the MS/DOS 128 byte limit: -$(LIBTARGET): $(OBJ1) $(OBJ2) $(OBJ3) - del $(LIBTARGET) - $(LIB) $(LIBTARGET) +$(OBJP1) - $(LIB) $(LIBTARGET) +$(OBJP2) - $(LIB) $(LIBTARGET) +$(OBJP3) - -example.exe: example.obj $(LIBTARGET) - $(LD) $(LDFLAGS) example.obj $(LIBTARGET) - -minigzip.exe: minigzip.obj $(LIBTARGET) - $(LD) $(LDFLAGS) minigzip.obj $(LIBTARGET) - -test: minigzip.exe example.exe - example - echo hello world | minigzip | minigzip -d >test - type test - -clean: .SYMBOLIC - -erase *.obj - -erase *.exe - -erase $(LIBTARGET) diff --git a/src/zlib/maketree.c b/src/zlib/maketree.c deleted file mode 100644 index 66dd828318..0000000000 --- a/src/zlib/maketree.c +++ /dev/null @@ -1,119 +0,0 @@ -/* maketree.c -- make inffixed.h table for decoding fixed codes - * Copyright (C) 1998 Mark Adler - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* This program is included in the distribution for completeness. - You do not need to compile or run this program since inffixed.h - is already included in the distribution. To use this program - you need to compile zlib with BUILDFIXED defined and then compile - and link this program with the zlib library. Then the output of - this program can be piped to inffixed.h. */ - -#include -#include -#include "zutil.h" -#include "inftrees.h" - -/* simplify the use of the inflate_huft type with some defines */ -#define exop word.what.Exop -#define bits word.what.Bits - -/* showtree is only used for debugging purposes */ -void showtree(uInt b, inflate_huft *t, int d) -{ - int i, e; - char p[2*d+1]; - - for (i = 0; i < 2*d; i++) - p[i] = ' '; - p[i] = 0; - printf("%s[%d]\n", p, 1< -#include "../zlib/zlib.h" - -#ifdef STDC -# include -# include -#else - extern void exit OF((int)); -#endif - -#ifdef USE_MMAP -# include -# include -# include -#endif - -#if defined(MSDOS) || defined(OS2) || defined(WIN32) -# include -# include -# define SET_BINARY_MODE(file) setmode(fileno(file), O_BINARY) -#else -# define SET_BINARY_MODE(file) -#endif - -#ifdef VMS -# define unlink delete -# define GZ_SUFFIX "-gz" -#endif -#ifdef RISCOS -# define unlink remove -# define GZ_SUFFIX "-gz" -# define fileno(file) file->__file -#endif - -#ifndef WIN32 /* unlink already in stdio.h for WIN32 */ - extern int unlink OF((const char *)); -#endif - -#ifndef GZ_SUFFIX -# define GZ_SUFFIX ".gz" -#endif -#define SUFFIX_LEN (sizeof(GZ_SUFFIX)-1) - -#define BUFLEN 16384 -#define MAX_NAME_LEN 1024 - -#ifdef MAXSEG_64K -# define local static - /* Needed for systems with limitation on stack size. */ -#else -# define local -#endif - -char *prog; - -void error OF((const char *msg)); -void gz_compress OF((FILE *in, gzFile out)); -#ifdef USE_MMAP -int gz_compress_mmap OF((FILE *in, gzFile out)); -#endif -void gz_uncompress OF((gzFile in, FILE *out)); -void file_compress OF((char *file, char *mode)); -void file_uncompress OF((char *file)); -int main OF((int argc, char *argv[])); - -/* =========================================================================== - * Display error message and exit - */ -void error(msg) - const char *msg; -{ - fprintf(stderr, "%s: %s\n", prog, msg); - exit(1); -} - -/* =========================================================================== - * Compress input to output then close both files. - */ - -void gz_compress(in, out) - FILE *in; - gzFile out; -{ - local char buf[BUFLEN]; - int len; - int err; - -#ifdef USE_MMAP - /* Try first compressing with mmap. If mmap fails (minigzip used in a - * pipe), use the normal fread loop. - */ - if (gz_compress_mmap(in, out) == Z_OK) return; -#endif - for (;;) { - len = fread(buf, 1, sizeof(buf), in); - if (ferror(in)) { - perror("fread"); - exit(1); - } - if (len == 0) break; - - if (gzwrite(out, buf, (unsigned)len) != len) error(gzerror(out, &err)); - } - fclose(in); - if (gzclose(out) != Z_OK) error("failed gzclose"); -} - -#ifdef USE_MMAP /* MMAP version, Miguel Albrecht */ - -/* Try compressing the input file at once using mmap. Return Z_OK if - * if success, Z_ERRNO otherwise. - */ -int gz_compress_mmap(in, out) - FILE *in; - gzFile out; -{ - int len; - int err; - int ifd = fileno(in); - caddr_t buf; /* mmap'ed buffer for the entire input file */ - off_t buf_len; /* length of the input file */ - struct stat sb; - - /* Determine the size of the file, needed for mmap: */ - if (fstat(ifd, &sb) < 0) return Z_ERRNO; - buf_len = sb.st_size; - if (buf_len <= 0) return Z_ERRNO; - - /* Now do the actual mmap: */ - buf = mmap((caddr_t) 0, buf_len, PROT_READ, MAP_SHARED, ifd, (off_t)0); - if (buf == (caddr_t)(-1)) return Z_ERRNO; - - /* Compress the whole file at once: */ - len = gzwrite(out, (char *)buf, (unsigned)buf_len); - - if (len != (int)buf_len) error(gzerror(out, &err)); - - munmap(buf, buf_len); - fclose(in); - if (gzclose(out) != Z_OK) error("failed gzclose"); - return Z_OK; -} -#endif /* USE_MMAP */ - -/* =========================================================================== - * Uncompress input to output then close both files. - */ -void gz_uncompress(in, out) - gzFile in; - FILE *out; -{ - local char buf[BUFLEN]; - int len; - int err; - - for (;;) { - len = gzread(in, buf, sizeof(buf)); - if (len < 0) error (gzerror(in, &err)); - if (len == 0) break; - - if ((int)fwrite(buf, 1, (unsigned)len, out) != len) { - error("failed fwrite"); - } - } - if (fclose(out)) error("failed fclose"); - - if (gzclose(in) != Z_OK) error("failed gzclose"); -} - - -/* =========================================================================== - * Compress the given file: create a corresponding .gz file and remove the - * original. - */ -void file_compress(file, mode) - char *file; - char *mode; -{ - local char outfile[MAX_NAME_LEN]; - FILE *in; - gzFile out; - - strcpy(outfile, file); - strcat(outfile, GZ_SUFFIX); - - in = fopen(file, "rb"); - if (in == NULL) { - perror(file); - exit(1); - } - out = gzopen(outfile, mode); - if (out == NULL) { - fprintf(stderr, "%s: can't gzopen %s\n", prog, outfile); - exit(1); - } - gz_compress(in, out); - - unlink(file); -} - - -/* =========================================================================== - * Uncompress the given file and remove the original. - */ -void file_uncompress(file) - char *file; -{ - local char buf[MAX_NAME_LEN]; - char *infile, *outfile; - FILE *out; - gzFile in; - int len = strlen(file); - - strcpy(buf, file); - - if (len > SUFFIX_LEN && strcmp(file+len-SUFFIX_LEN, GZ_SUFFIX) == 0) { - infile = file; - outfile = buf; - outfile[len-3] = '\0'; - } else { - outfile = file; - infile = buf; - strcat(infile, GZ_SUFFIX); - } - in = gzopen(infile, "rb"); - if (in == NULL) { - fprintf(stderr, "%s: can't gzopen %s\n", prog, infile); - exit(1); - } - out = fopen(outfile, "wb"); - if (out == NULL) { - perror(file); - exit(1); - } - - gz_uncompress(in, out); - - unlink(infile); -} - - -/* =========================================================================== - * Usage: minigzip [-d] [-f] [-h] [-1 to -9] [files...] - * -d : decompress - * -f : compress with Z_FILTERED - * -h : compress with Z_HUFFMAN_ONLY - * -1 to -9 : compression level - */ - -int main(argc, argv) - int argc; - char *argv[]; -{ - int uncompr = 0; - gzFile file; - char outmode[20]; - - strcpy(outmode, "wb6 "); - - prog = argv[0]; - argc--, argv++; - - while (argc > 0) { - if (strcmp(*argv, "-d") == 0) - uncompr = 1; - else if (strcmp(*argv, "-f") == 0) - outmode[3] = 'f'; - else if (strcmp(*argv, "-h") == 0) - outmode[3] = 'h'; - else if ((*argv)[0] == '-' && (*argv)[1] >= '1' && (*argv)[1] <= '9' && - (*argv)[2] == 0) - outmode[2] = (*argv)[1]; - else - break; - argc--, argv++; - } - if (argc == 0) { - SET_BINARY_MODE(stdin); - SET_BINARY_MODE(stdout); - if (uncompr) { - file = gzdopen(fileno(stdin), "rb"); - if (file == NULL) error("can't gzdopen stdin"); - gz_uncompress(file, stdout); - } else { - file = gzdopen(fileno(stdout), outmode); - if (file == NULL) error("can't gzdopen stdout"); - gz_compress(stdin, file); - } - } else { - do { - if (uncompr) { - file_uncompress(*argv); - } else { - file_compress(*argv, outmode); - } - } while (argv++, --argc); - } - exit(0); - return 0; /* to avoid warning */ -} diff --git a/src/zlib/trees.c b/src/zlib/trees.c deleted file mode 100644 index 24c68cb580..0000000000 --- a/src/zlib/trees.c +++ /dev/null @@ -1,1216 +0,0 @@ -/* trees.c -- output deflated data using Huffman coding - * Copyright (C) 1995-1998 Jean-loup Gailly - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* - * ALGORITHM - * - * The "deflation" process uses several Huffman trees. The more - * common source values are represented by shorter bit sequences. - * - * Each code tree is stored in a compressed form which is itself - * a Huffman encoding of the lengths of all the code strings (in - * ascending order by source values). The actual code strings are - * reconstructed from the lengths in the inflate process, as described - * in the deflate specification. - * - * REFERENCES - * - * Deutsch, L.P.,"'Deflate' Compressed Data Format Specification". - * Available in ftp.uu.net:/pub/archiving/zip/doc/deflate-1.1.doc - * - * Storer, James A. - * Data Compression: Methods and Theory, pp. 49-50. - * Computer Science Press, 1988. ISBN 0-7167-8156-5. - * - * Sedgewick, R. - * Algorithms, p290. - * Addison-Wesley, 1983. ISBN 0-201-06672-6. - */ - -/* @(#) $Id$ */ - -/* #define GEN_TREES_H */ - -#include "deflate.h" - -#ifdef __WXDEBUG__ -# include -#endif - -/* =========================================================================== - * Constants - */ - -#define MAX_BL_BITS 7 -/* Bit length codes must not exceed MAX_BL_BITS bits */ - -#define END_BLOCK 256 -/* end of block literal code */ - -#define REP_3_6 16 -/* repeat previous bit length 3-6 times (2 bits of repeat count) */ - -#define REPZ_3_10 17 -/* repeat a zero length 3-10 times (3 bits of repeat count) */ - -#define REPZ_11_138 18 -/* repeat a zero length 11-138 times (7 bits of repeat count) */ - -local const int extra_lbits[LENGTH_CODES] /* extra bits for each length code */ - = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0}; - -local const int extra_dbits[D_CODES] /* extra bits for each distance code */ - = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - -local const int extra_blbits[BL_CODES]/* extra bits for each bit length code */ - = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7}; - -local const uch bl_order[BL_CODES] - = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15}; -/* The lengths of the bit length codes are sent in order of decreasing - * probability, to avoid transmitting the lengths for unused bit length codes. - */ - -#define Buf_size (8 * 2*sizeof(char)) -/* Number of bits used within bi_buf. (bi_buf might be implemented on - * more than 16 bits on some systems.) - */ - -/* =========================================================================== - * Local data. These are initialized only once. - */ - -#define DIST_CODE_LEN 512 /* see definition of array dist_code below */ - -#if defined(GEN_TREES_H) || !defined(STDC) -/* non ANSI compilers may not accept trees.h */ - -local ct_data static_ltree[L_CODES+2]; -/* The static literal tree. Since the bit lengths are imposed, there is no - * need for the L_CODES extra codes used during heap construction. However - * The codes 286 and 287 are needed to build a canonical tree (see _tr_init - * below). - */ - -local ct_data static_dtree[D_CODES]; -/* The static distance tree. (Actually a trivial tree since all codes use - * 5 bits.) - */ - -uch _dist_code[DIST_CODE_LEN]; -/* Distance codes. The first 256 values correspond to the distances - * 3 .. 258, the last 256 values correspond to the top 8 bits of - * the 15 bit distances. - */ - -uch _length_code[MAX_MATCH-MIN_MATCH+1]; -/* length code for each normalized match length (0 == MIN_MATCH) */ - -local int base_length[LENGTH_CODES]; -/* First normalized length for each code (0 = MIN_MATCH) */ - -local int base_dist[D_CODES]; -/* First normalized distance for each code (0 = distance of 1) */ - -#else -# include "trees.h" -#endif /* GEN_TREES_H */ - -struct static_tree_desc_s { - const ct_data *static_tree; /* static tree or NULL */ - const intf *extra_bits; /* extra bits for each code or NULL */ - int extra_base; /* base index for extra_bits */ - int elems; /* max number of elements in the tree */ - int max_length; /* max bit length for the codes */ -}; - -local static_tree_desc static_l_desc = -{static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS}; - -local static_tree_desc static_d_desc = -{static_dtree, extra_dbits, 0, D_CODES, MAX_BITS}; - -local static_tree_desc static_bl_desc = -{(const ct_data *)0, extra_blbits, 0, BL_CODES, MAX_BL_BITS}; - -/* =========================================================================== - * Local (static) routines in this file. - */ - -local void tr_static_init OF((void)); -local void init_block OF((deflate_state *s)); -local void pqdownheap OF((deflate_state *s, ct_data *tree, int k)); -local void gen_bitlen OF((deflate_state *s, tree_desc *desc)); -local void gen_codes OF((ct_data *tree, int max_code, ushf *bl_count)); -local void build_tree OF((deflate_state *s, tree_desc *desc)); -local void scan_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local void send_tree OF((deflate_state *s, ct_data *tree, int max_code)); -local int build_bl_tree OF((deflate_state *s)); -local void send_all_trees OF((deflate_state *s, int lcodes, int dcodes, - int blcodes)); -local void compress_block OF((deflate_state *s, ct_data *ltree, - ct_data *dtree)); -local void set_data_type OF((deflate_state *s)); -local unsigned bi_reverse OF((unsigned value, int length)); -local void bi_windup OF((deflate_state *s)); -local void bi_flush OF((deflate_state *s)); -local void copy_block OF((deflate_state *s, charf *buf, unsigned len, - int header)); - -#ifdef GEN_TREES_H -local void gen_trees_header OF((void)); -#endif - -#ifndef __WXDEBUG__ -# define send_code(s, c, tree) send_bits(s, tree[c].Code, tree[c].Len) - /* Send a code of the given tree. c and tree must not have side effects */ - -#else /* __WXDEBUG__ */ -# define send_code(s, c, tree) \ - { if (z_verbose>2) fprintf(stderr,"\ncd %3d ",(c)); \ - send_bits(s, tree[c].Code, tree[c].Len); } -#endif - -/* =========================================================================== - * Output a short LSB first on the stream. - * IN assertion: there is enough room in pendingBuf. - */ -#define put_short(s, w) { \ - put_byte(s, (uch)((w) & 0xff)); \ - put_byte(s, (uch)((ush)(w) >> 8)); \ -} - -/* =========================================================================== - * Send a value on a given number of bits. - * IN assertion: length <= 16 and value fits in length bits. - */ -#ifdef __WXDEBUG__ -local void send_bits OF((deflate_state *s, int value, int length)); - -local void send_bits(s, value, length) - deflate_state *s; - int value; /* value to send */ - int length; /* number of bits */ -{ - Tracevv((stderr," l %2d v %4x ", length, value)); - Assert(length > 0 && length <= 15, "invalid length"); - s->bits_sent += (ulg)length; - - /* If not enough room in bi_buf, use (valid) bits from bi_buf and - * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid)) - * unused bits in value. - */ - if (s->bi_valid > (int)Buf_size - length) { - s->bi_buf |= (value << s->bi_valid); - put_short(s, s->bi_buf); - s->bi_buf = (ush)value >> (Buf_size - s->bi_valid); - s->bi_valid += length - Buf_size; - } else { - s->bi_buf |= value << s->bi_valid; - s->bi_valid += length; - } -} -#else /* !__WXDEBUG__ */ - -#define send_bits(s, value, length) \ -{ int len = length;\ - if (s->bi_valid > (int)Buf_size - len) {\ - int val = value;\ - s->bi_buf |= (val << s->bi_valid);\ - put_short(s, s->bi_buf);\ - s->bi_buf = (ush)val >> (Buf_size - s->bi_valid);\ - s->bi_valid += len - Buf_size;\ - } else {\ - s->bi_buf |= (value) << s->bi_valid;\ - s->bi_valid += len;\ - }\ -} -#endif /* __WXDEBUG__ */ - - -#define MAX(a,b) (a >= b ? a : b) -/* the arguments must not have side effects */ - -/* =========================================================================== - * Initialize the various 'constant' tables. - */ -local void tr_static_init() -{ -#if defined(GEN_TREES_H) || !defined(STDC) - static int static_init_done = 0; - int n; /* iterates over tree elements */ - int bits; /* bit counter */ - int length; /* length value */ - int code; /* code value */ - int dist; /* distance index */ - ush bl_count[MAX_BITS+1]; - /* number of codes at each bit length for an optimal tree */ - - if (static_init_done) return; - - /* Initialize the mapping length (0..255) -> length code (0..28) */ - length = 0; - for (code = 0; code < LENGTH_CODES-1; code++) { - base_length[code] = length; - for (n = 0; n < (1< dist code (0..29) */ - dist = 0; - for (code = 0 ; code < 16; code++) { - base_dist[code] = dist; - for (n = 0; n < (1<>= 7; /* from now on, all distances are divided by 128 */ - for ( ; code < D_CODES; code++) { - base_dist[code] = dist << 7; - for (n = 0; n < (1<<(extra_dbits[code]-7)); n++) { - _dist_code[256 + dist++] = (uch)code; - } - } - Assert (dist == 256, "tr_static_init: 256+dist != 512"); - - /* Construct the codes of the static literal tree */ - for (bits = 0; bits <= MAX_BITS; bits++) bl_count[bits] = 0; - n = 0; - while (n <= 143) static_ltree[n++].Len = 8, bl_count[8]++; - while (n <= 255) static_ltree[n++].Len = 9, bl_count[9]++; - while (n <= 279) static_ltree[n++].Len = 7, bl_count[7]++; - while (n <= 287) static_ltree[n++].Len = 8, bl_count[8]++; - /* Codes 286 and 287 do not exist, but we must include them in the - * tree construction to get a canonical Huffman tree (longest code - * all ones) - */ - gen_codes((ct_data *)static_ltree, L_CODES+1, bl_count); - - /* The static distance tree is trivial: */ - for (n = 0; n < D_CODES; n++) { - static_dtree[n].Len = 5; - static_dtree[n].Code = bi_reverse((unsigned)n, 5); - } - static_init_done = 1; - -# ifdef GEN_TREES_H - gen_trees_header(); -# endif -#endif /* defined(GEN_TREES_H) || !defined(STDC) */ -} - -/* =========================================================================== - * Genererate the file trees.h describing the static trees. - */ -#ifdef GEN_TREES_H -# ifndef __WXDEBUG__ -# include -# endif - -# define SEPARATOR(i, last, width) \ - ((i) == (last)? "\n};\n\n" : \ - ((i) % (width) == (width)-1 ? ",\n" : ", ")) - -void gen_trees_header() -{ - FILE *header = fopen("trees.h", "w"); - int i; - - Assert (header != NULL, "Can't open trees.h"); - fprintf(header, - "/* header created automatically with -DGEN_TREES_H */\n\n"); - - fprintf(header, "local const ct_data static_ltree[L_CODES+2] = {\n"); - for (i = 0; i < L_CODES+2; i++) { - fprintf(header, "{{%3u},{%3u}}%s", static_ltree[i].Code, - static_ltree[i].Len, SEPARATOR(i, L_CODES+1, 5)); - } - - fprintf(header, "local const ct_data static_dtree[D_CODES] = {\n"); - for (i = 0; i < D_CODES; i++) { - fprintf(header, "{{%2u},{%2u}}%s", static_dtree[i].Code, - static_dtree[i].Len, SEPARATOR(i, D_CODES-1, 5)); - } - - fprintf(header, "const uch _dist_code[DIST_CODE_LEN] = {\n"); - for (i = 0; i < DIST_CODE_LEN; i++) { - fprintf(header, "%2u%s", _dist_code[i], - SEPARATOR(i, DIST_CODE_LEN-1, 20)); - } - - fprintf(header, "const uch _length_code[MAX_MATCH-MIN_MATCH+1]= {\n"); - for (i = 0; i < MAX_MATCH-MIN_MATCH+1; i++) { - fprintf(header, "%2u%s", _length_code[i], - SEPARATOR(i, MAX_MATCH-MIN_MATCH, 20)); - } - - fprintf(header, "local const int base_length[LENGTH_CODES] = {\n"); - for (i = 0; i < LENGTH_CODES; i++) { - fprintf(header, "%1u%s", base_length[i], - SEPARATOR(i, LENGTH_CODES-1, 20)); - } - - fprintf(header, "local const int base_dist[D_CODES] = {\n"); - for (i = 0; i < D_CODES; i++) { - fprintf(header, "%5u%s", base_dist[i], - SEPARATOR(i, D_CODES-1, 10)); - } - - fclose(header); -} -#endif /* GEN_TREES_H */ - -/* =========================================================================== - * Initialize the tree data structures for a new zlib stream. - */ -void _tr_init(s) - deflate_state *s; -{ - tr_static_init(); - - s->compressed_len = 0L; - - s->l_desc.dyn_tree = s->dyn_ltree; - s->l_desc.stat_desc = &static_l_desc; - - s->d_desc.dyn_tree = s->dyn_dtree; - s->d_desc.stat_desc = &static_d_desc; - - s->bl_desc.dyn_tree = s->bl_tree; - s->bl_desc.stat_desc = &static_bl_desc; - - s->bi_buf = 0; - s->bi_valid = 0; - s->last_eob_len = 8; /* enough lookahead for inflate */ -#ifdef __WXDEBUG__ - s->bits_sent = 0L; -#endif - - /* Initialize the first block of the first file: */ - init_block(s); -} - -/* =========================================================================== - * Initialize a new block. - */ -local void init_block(s) - deflate_state *s; -{ - int n; /* iterates over tree elements */ - - /* Initialize the trees. */ - for (n = 0; n < L_CODES; n++) s->dyn_ltree[n].Freq = 0; - for (n = 0; n < D_CODES; n++) s->dyn_dtree[n].Freq = 0; - for (n = 0; n < BL_CODES; n++) s->bl_tree[n].Freq = 0; - - s->dyn_ltree[END_BLOCK].Freq = 1; - s->opt_len = s->static_len = 0L; - s->last_lit = s->matches = 0; -} - -#define SMALLEST 1 -/* Index within the heap array of least frequent node in the Huffman tree */ - - -/* =========================================================================== - * Remove the smallest element from the heap and recreate the heap with - * one less element. Updates heap and heap_len. - */ -#define pqremove(s, tree, top) \ -{\ - top = s->heap[SMALLEST]; \ - s->heap[SMALLEST] = s->heap[s->heap_len--]; \ - pqdownheap(s, tree, SMALLEST); \ -} - -/* =========================================================================== - * Compares to subtrees, using the tree depth as tie breaker when - * the subtrees have equal frequency. This minimizes the worst case length. - */ -#define smaller(tree, n, m, depth) \ - (tree[n].Freq < tree[m].Freq || \ - (tree[n].Freq == tree[m].Freq && depth[n] <= depth[m])) - -/* =========================================================================== - * Restore the heap property by moving down the tree starting at node k, - * exchanging a node with the smallest of its two sons if necessary, stopping - * when the heap property is re-established (each father smaller than its - * two sons). - */ -local void pqdownheap(s, tree, k) - deflate_state *s; - ct_data *tree; /* the tree to restore */ - int k; /* node to move down */ -{ - int v = s->heap[k]; - int j = k << 1; /* left son of k */ - while (j <= s->heap_len) { - /* Set j to the smallest of the two sons: */ - if (j < s->heap_len && - smaller(tree, s->heap[j+1], s->heap[j], s->depth)) { - j++; - } - /* Exit if v is smaller than both sons */ - if (smaller(tree, v, s->heap[j], s->depth)) break; - - /* Exchange v with the smallest son */ - s->heap[k] = s->heap[j]; k = j; - - /* And continue down the tree, setting j to the left son of k */ - j <<= 1; - } - s->heap[k] = v; -} - -/* =========================================================================== - * Compute the optimal bit lengths for a tree and update the total bit length - * for the current block. - * IN assertion: the fields freq and dad are set, heap[heap_max] and - * above are the tree nodes sorted by increasing frequency. - * OUT assertions: the field len is set to the optimal bit length, the - * array bl_count contains the frequencies for each bit length. - * The length opt_len is updated; static_len is also updated if stree is - * not null. - */ -local void gen_bitlen(s, desc) - deflate_state *s; - tree_desc *desc; /* the tree descriptor */ -{ - ct_data *tree = desc->dyn_tree; - int max_code = desc->max_code; - const ct_data *stree = desc->stat_desc->static_tree; - const intf *extra = desc->stat_desc->extra_bits; - int base = desc->stat_desc->extra_base; - int max_length = desc->stat_desc->max_length; - int h; /* heap index */ - int n, m; /* iterate over the tree elements */ - int bits; /* bit length */ - int xbits; /* extra bits */ - ush f; /* frequency */ - int overflow = 0; /* number of elements with bit length too large */ - - for (bits = 0; bits <= MAX_BITS; bits++) s->bl_count[bits] = 0; - - /* In a first pass, compute the optimal bit lengths (which may - * overflow in the case of the bit length tree). - */ - tree[s->heap[s->heap_max]].Len = 0; /* root of the heap */ - - for (h = s->heap_max+1; h < HEAP_SIZE; h++) { - n = s->heap[h]; - bits = tree[tree[n].Dad].Len + 1; - if (bits > max_length) bits = max_length, overflow++; - tree[n].Len = (ush)bits; - /* We overwrite tree[n].Dad which is no longer needed */ - - if (n > max_code) continue; /* not a leaf node */ - - s->bl_count[bits]++; - xbits = 0; - if (n >= base) xbits = extra[n-base]; - f = tree[n].Freq; - s->opt_len += (ulg)f * (bits + xbits); - if (stree) s->static_len += (ulg)f * (stree[n].Len + xbits); - } - if (overflow == 0) return; - - Trace((stderr,"\nbit length overflow\n")); - /* This happens for example on obj2 and pic of the Calgary corpus */ - - /* Find the first bit length which could increase: */ - do { - bits = max_length-1; - while (s->bl_count[bits] == 0) bits--; - s->bl_count[bits]--; /* move one leaf down the tree */ - s->bl_count[bits+1] += 2; /* move one overflow item as its brother */ - s->bl_count[max_length]--; - /* The brother of the overflow item also moves one step up, - * but this does not affect bl_count[max_length] - */ - overflow -= 2; - } while (overflow > 0); - - /* Now recompute all bit lengths, scanning in increasing frequency. - * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all - * lengths instead of fixing only the wrong ones. This idea is taken - * from 'ar' written by Haruhiko Okumura.) - */ - for (bits = max_length; bits != 0; bits--) { - n = s->bl_count[bits]; - while (n != 0) { - m = s->heap[--h]; - if (m > max_code) continue; - if (tree[m].Len != (unsigned) bits) { - Trace((stderr,"code %d bits %d->%d\n", m, tree[m].Len, bits)); - s->opt_len += ((long)bits - (long)tree[m].Len) - *(long)tree[m].Freq; - tree[m].Len = (ush)bits; - } - n--; - } - } -} - -/* =========================================================================== - * Generate the codes for a given tree and bit counts (which need not be - * optimal). - * IN assertion: the array bl_count contains the bit length statistics for - * the given tree and the field len is set for all tree elements. - * OUT assertion: the field code is set for all tree elements of non - * zero code length. - */ -local void gen_codes (tree, max_code, bl_count) - ct_data *tree; /* the tree to decorate */ - int max_code; /* largest code with non zero frequency */ - ushf *bl_count; /* number of codes at each bit length */ -{ - ush next_code[MAX_BITS+1]; /* next code value for each bit length */ - ush code = 0; /* running code value */ - int bits; /* bit index */ - int n; /* code index */ - - /* The distribution counts are first used to generate the code values - * without bit reversal. - */ - for (bits = 1; bits <= MAX_BITS; bits++) { - next_code[bits] = code = (code + bl_count[bits-1]) << 1; - } - /* Check that the bit counts in bl_count are consistent. The last code - * must be all ones. - */ - Assert (code + bl_count[MAX_BITS]-1 == (1<dyn_tree; - const ct_data *stree = desc->stat_desc->static_tree; - int elems = desc->stat_desc->elems; - int n, m; /* iterate over heap elements */ - int max_code = -1; /* largest code with non zero frequency */ - int node; /* new node being created */ - - /* Construct the initial heap, with least frequent element in - * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1]. - * heap[0] is not used. - */ - s->heap_len = 0, s->heap_max = HEAP_SIZE; - - for (n = 0; n < elems; n++) { - if (tree[n].Freq != 0) { - s->heap[++(s->heap_len)] = max_code = n; - s->depth[n] = 0; - } else { - tree[n].Len = 0; - } - } - - /* The pkzip format requires that at least one distance code exists, - * and that at least one bit should be sent even if there is only one - * possible code. So to avoid special checks later on we force at least - * two codes of non zero frequency. - */ - while (s->heap_len < 2) { - node = s->heap[++(s->heap_len)] = (max_code < 2 ? ++max_code : 0); - tree[node].Freq = 1; - s->depth[node] = 0; - s->opt_len--; if (stree) s->static_len -= stree[node].Len; - /* node is 0 or 1 so it does not have extra bits */ - } - desc->max_code = max_code; - - /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree, - * establish sub-heaps of increasing lengths: - */ - for (n = s->heap_len/2; n >= 1; n--) pqdownheap(s, tree, n); - - /* Construct the Huffman tree by repeatedly combining the least two - * frequent nodes. - */ - node = elems; /* next internal node of the tree */ - do { - pqremove(s, tree, n); /* n = node of least frequency */ - m = s->heap[SMALLEST]; /* m = node of next least frequency */ - - s->heap[--(s->heap_max)] = n; /* keep the nodes sorted by frequency */ - s->heap[--(s->heap_max)] = m; - - /* Create a new node father of n and m */ - tree[node].Freq = tree[n].Freq + tree[m].Freq; - s->depth[node] = (uch) (MAX(s->depth[n], s->depth[m]) + 1); - tree[n].Dad = tree[m].Dad = (ush)node; -#ifdef DUMP_BL_TREE - if (tree == s->bl_tree) { - fprintf(stderr,"\nnode %d(%d), sons %d(%d) %d(%d)", - node, tree[node].Freq, n, tree[n].Freq, m, tree[m].Freq); - } -#endif - /* and insert the new node in the heap */ - s->heap[SMALLEST] = node++; - pqdownheap(s, tree, SMALLEST); - - } while (s->heap_len >= 2); - - s->heap[--(s->heap_max)] = s->heap[SMALLEST]; - - /* At this point, the fields freq and dad are set. We can now - * generate the bit lengths. - */ - gen_bitlen(s, (tree_desc *)desc); - - /* The field len is now set, we can generate the bit codes */ - gen_codes ((ct_data *)tree, max_code, s->bl_count); -} - -/* =========================================================================== - * Scan a literal or distance tree to determine the frequencies of the codes - * in the bit length tree. - */ -local void scan_tree (s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ - int n; /* iterates over all tree elements */ - int prevlen = -1; /* last emitted length */ - int curlen; /* length of current code */ - int nextlen = tree[0].Len; /* length of next code */ - int count = 0; /* repeat count of the current code */ - int max_count = 7; /* max repeat count */ - int min_count = 4; /* min repeat count */ - - if (nextlen == 0) max_count = 138, min_count = 3; - tree[max_code+1].Len = (ush)0xffff; /* guard */ - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; nextlen = tree[n+1].Len; - if (++count < max_count && curlen == nextlen) { - continue; - } else if (count < min_count) { - s->bl_tree[curlen].Freq += count; - } else if (curlen != 0) { - if (curlen != prevlen) s->bl_tree[curlen].Freq++; - s->bl_tree[REP_3_6].Freq++; - } else if (count <= 10) { - s->bl_tree[REPZ_3_10].Freq++; - } else { - s->bl_tree[REPZ_11_138].Freq++; - } - count = 0; prevlen = curlen; - if (nextlen == 0) { - max_count = 138, min_count = 3; - } else if (curlen == nextlen) { - max_count = 6, min_count = 3; - } else { - max_count = 7, min_count = 4; - } - } -} - -/* =========================================================================== - * Send a literal or distance tree in compressed form, using the codes in - * bl_tree. - */ -local void send_tree (s, tree, max_code) - deflate_state *s; - ct_data *tree; /* the tree to be scanned */ - int max_code; /* and its largest code of non zero frequency */ -{ - int n; /* iterates over all tree elements */ - int prevlen = -1; /* last emitted length */ - int curlen; /* length of current code */ - int nextlen = tree[0].Len; /* length of next code */ - int count = 0; /* repeat count of the current code */ - int max_count = 7; /* max repeat count */ - int min_count = 4; /* min repeat count */ - - /* tree[max_code+1].Len = -1; */ /* guard already set */ - if (nextlen == 0) max_count = 138, min_count = 3; - - for (n = 0; n <= max_code; n++) { - curlen = nextlen; nextlen = tree[n+1].Len; - if (++count < max_count && curlen == nextlen) { - continue; - } else if (count < min_count) { - do { send_code(s, curlen, s->bl_tree); } while (--count != 0); - - } else if (curlen != 0) { - if (curlen != prevlen) { - send_code(s, curlen, s->bl_tree); count--; - } - Assert(count >= 3 && count <= 6, " 3_6?"); - send_code(s, REP_3_6, s->bl_tree); send_bits(s, count-3, 2); - - } else if (count <= 10) { - send_code(s, REPZ_3_10, s->bl_tree); send_bits(s, count-3, 3); - - } else { - send_code(s, REPZ_11_138, s->bl_tree); send_bits(s, count-11, 7); - } - count = 0; prevlen = curlen; - if (nextlen == 0) { - max_count = 138, min_count = 3; - } else if (curlen == nextlen) { - max_count = 6, min_count = 3; - } else { - max_count = 7, min_count = 4; - } - } -} - -/* =========================================================================== - * Construct the Huffman tree for the bit lengths and return the index in - * bl_order of the last bit length code to send. - */ -local int build_bl_tree(s) - deflate_state *s; -{ - int max_blindex; /* index of last bit length code of non zero freq */ - - /* Determine the bit length frequencies for literal and distance trees */ - scan_tree(s, (ct_data *)s->dyn_ltree, s->l_desc.max_code); - scan_tree(s, (ct_data *)s->dyn_dtree, s->d_desc.max_code); - - /* Build the bit length tree: */ - build_tree(s, (tree_desc *)(&(s->bl_desc))); - /* opt_len now includes the length of the tree representations, except - * the lengths of the bit lengths codes and the 5+5+4 bits for the counts. - */ - - /* Determine the number of bit length codes to send. The pkzip format - * requires that at least 4 bit length codes be sent. (appnote.txt says - * 3 but the actual value used is 4.) - */ - for (max_blindex = BL_CODES-1; max_blindex >= 3; max_blindex--) { - if (s->bl_tree[bl_order[max_blindex]].Len != 0) break; - } - /* Update opt_len to include the bit length tree and counts */ - s->opt_len += 3*(max_blindex+1) + 5+5+4; - Tracev((stderr, "\ndyn trees: dyn %ld, stat %ld", - s->opt_len, s->static_len)); - - return max_blindex; -} - -/* =========================================================================== - * Send the header for a block using dynamic Huffman trees: the counts, the - * lengths of the bit length codes, the literal tree and the distance tree. - * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4. - */ -local void send_all_trees(s, lcodes, dcodes, blcodes) - deflate_state *s; - int lcodes, dcodes, blcodes; /* number of codes for each tree */ -{ - int rank; /* index in bl_order */ - - Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, "not enough codes"); - Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES, - "too many codes"); - Tracev((stderr, "\nbl counts: ")); - send_bits(s, lcodes-257, 5); /* not +255 as stated in appnote.txt */ - send_bits(s, dcodes-1, 5); - send_bits(s, blcodes-4, 4); /* not -3 as stated in appnote.txt */ - for (rank = 0; rank < blcodes; rank++) { - Tracev((stderr, "\nbl code %2d ", bl_order[rank])); - send_bits(s, s->bl_tree[bl_order[rank]].Len, 3); - } - Tracev((stderr, "\nbl tree: sent %ld", s->bits_sent)); - - send_tree(s, (ct_data *)s->dyn_ltree, lcodes-1); /* literal tree */ - Tracev((stderr, "\nlit tree: sent %ld", s->bits_sent)); - - send_tree(s, (ct_data *)s->dyn_dtree, dcodes-1); /* distance tree */ - Tracev((stderr, "\ndist tree: sent %ld", s->bits_sent)); -} - -/* =========================================================================== - * Send a stored block - */ -void _tr_stored_block(s, buf, stored_len, eof) - deflate_state *s; - charf *buf; /* input block */ - ulg stored_len; /* length of input block */ - int eof; /* true if this is the last block for a file */ -{ - send_bits(s, (STORED_BLOCK<<1)+eof, 3); /* send block type */ - s->compressed_len = (s->compressed_len + 3 + 7) & (ulg)~7L; - s->compressed_len += (stored_len + 4) << 3; - - copy_block(s, buf, (unsigned)stored_len, 1); /* with header */ -} - -/* =========================================================================== - * Send one empty static block to give enough lookahead for inflate. - * This takes 10 bits, of which 7 may remain in the bit buffer. - * The current inflate code requires 9 bits of lookahead. If the - * last two codes for the previous block (real code plus EOB) were coded - * on 5 bits or less, inflate may have only 5+3 bits of lookahead to decode - * the last real code. In this case we send two empty static blocks instead - * of one. (There are no problems if the previous block is stored or fixed.) - * To simplify the code, we assume the worst case of last real code encoded - * on one bit only. - */ -void _tr_align(s) - deflate_state *s; -{ - send_bits(s, STATIC_TREES<<1, 3); - send_code(s, END_BLOCK, static_ltree); - s->compressed_len += 10L; /* 3 for block type, 7 for EOB */ - bi_flush(s); - /* Of the 10 bits for the empty block, we have already sent - * (10 - bi_valid) bits. The lookahead for the last real code (before - * the EOB of the previous block) was thus at least one plus the length - * of the EOB plus what we have just sent of the empty static block. - */ - if (1 + s->last_eob_len + 10 - s->bi_valid < 9) { - send_bits(s, STATIC_TREES<<1, 3); - send_code(s, END_BLOCK, static_ltree); - s->compressed_len += 10L; - bi_flush(s); - } - s->last_eob_len = 7; -} - -/* =========================================================================== - * Determine the best encoding for the current block: dynamic trees, static - * trees or store, and output the encoded block to the zip file. This function - * returns the total compressed length for the file so far. - */ -ulg _tr_flush_block(s, buf, stored_len, eof) - deflate_state *s; - charf *buf; /* input block, or NULL if too old */ - ulg stored_len; /* length of input block */ - int eof; /* true if this is the last block for a file */ -{ - ulg opt_lenb, static_lenb; /* opt_len and static_len in bytes */ - int max_blindex = 0; /* index of last bit length code of non zero freq */ - - /* Build the Huffman trees unless a stored block is forced */ - if (s->level > 0) { - - /* Check if the file is ascii or binary */ - if (s->data_type == Z_UNKNOWN) set_data_type(s); - - /* Construct the literal and distance trees */ - build_tree(s, (tree_desc *)(&(s->l_desc))); - Tracev((stderr, "\nlit data: dyn %ld, stat %ld", s->opt_len, - s->static_len)); - - build_tree(s, (tree_desc *)(&(s->d_desc))); - Tracev((stderr, "\ndist data: dyn %ld, stat %ld", s->opt_len, - s->static_len)); - /* At this point, opt_len and static_len are the total bit lengths of - * the compressed block data, excluding the tree representations. - */ - - /* Build the bit length tree for the above two trees, and get the index - * in bl_order of the last bit length code to send. - */ - max_blindex = build_bl_tree(s); - - /* Determine the best encoding. Compute first the block length in bytes*/ - opt_lenb = (s->opt_len+3+7)>>3; - static_lenb = (s->static_len+3+7)>>3; - - Tracev((stderr, "\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u ", - opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len, - s->last_lit)); - - if (static_lenb <= opt_lenb) opt_lenb = static_lenb; - - } else { - Assert(buf != (char*)0, "lost buf"); - opt_lenb = static_lenb = stored_len + 5; /* force a stored block */ - } - - /* If compression failed and this is the first and last block, - * and if the .zip file can be seeked (to rewrite the local header), - * the whole file is transformed into a stored file: - */ -#ifdef STORED_FILE_OK -# ifdef FORCE_STORED_FILE - if (eof && s->compressed_len == 0L) { /* force stored file */ -# else - if (stored_len <= opt_lenb && eof && s->compressed_len==0L && seekable()) { -# endif - /* Since LIT_BUFSIZE <= 2*WSIZE, the input data must be there: */ - if (buf == (charf*)0) error ("block vanished"); - - copy_block(buf, (unsigned)stored_len, 0); /* without header */ - s->compressed_len = stored_len << 3; - s->method = STORED; - } else -#endif /* STORED_FILE_OK */ - -#ifdef FORCE_STORED - if (buf != (char*)0) { /* force stored block */ -#else - if (stored_len+4 <= opt_lenb && buf != (char*)0) { - /* 4: two words for the lengths */ -#endif - /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE. - * Otherwise we can't have processed more than WSIZE input bytes since - * the last block flush, because compression would have been - * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to - * transform a block into a stored block. - */ - _tr_stored_block(s, buf, stored_len, eof); - -#ifdef FORCE_STATIC - } else if (static_lenb >= 0) { /* force static trees */ -#else - } else if (static_lenb == opt_lenb) { -#endif - send_bits(s, (STATIC_TREES<<1)+eof, 3); - compress_block(s, (ct_data *)static_ltree, (ct_data *)static_dtree); - s->compressed_len += 3 + s->static_len; - } else { - send_bits(s, (DYN_TREES<<1)+eof, 3); - send_all_trees(s, s->l_desc.max_code+1, s->d_desc.max_code+1, - max_blindex+1); - compress_block(s, (ct_data *)s->dyn_ltree, (ct_data *)s->dyn_dtree); - s->compressed_len += 3 + s->opt_len; - } - Assert (s->compressed_len == s->bits_sent, "bad compressed size"); - init_block(s); - - if (eof) { - bi_windup(s); - s->compressed_len += 7; /* align on byte boundary */ - } - Tracev((stderr,"\ncomprlen %lu(%lu) ", s->compressed_len>>3, - s->compressed_len-7*eof)); - - return s->compressed_len >> 3; -} - -/* =========================================================================== - * Save the match info and tally the frequency counts. Return true if - * the current block must be flushed. - */ -int _tr_tally (s, dist, lc) - deflate_state *s; - unsigned dist; /* distance of matched string */ - unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */ -{ - s->d_buf[s->last_lit] = (ush)dist; - s->l_buf[s->last_lit++] = (uch)lc; - if (dist == 0) { - /* lc is the unmatched char */ - s->dyn_ltree[lc].Freq++; - } else { - s->matches++; - /* Here, lc is the match length - MIN_MATCH */ - dist--; /* dist = match distance - 1 */ - Assert((ush)dist < (ush)MAX_DIST(s) && - (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) && - (ush)d_code(dist) < (ush)D_CODES, "_tr_tally: bad match"); - - s->dyn_ltree[_length_code[lc]+LITERALS+1].Freq++; - s->dyn_dtree[d_code(dist)].Freq++; - } - -#ifdef TRUNCATE_BLOCK - /* Try to guess if it is profitable to stop the current block here */ - if ((s->last_lit & 0x1fff) == 0 && s->level > 2) { - /* Compute an upper bound for the compressed length */ - ulg out_length = (ulg)s->last_lit*8L; - ulg in_length = (ulg)((long)s->strstart - s->block_start); - int dcode; - for (dcode = 0; dcode < D_CODES; dcode++) { - out_length += (ulg)s->dyn_dtree[dcode].Freq * - (5L+extra_dbits[dcode]); - } - out_length >>= 3; - Tracev((stderr,"\nlast_lit %u, in %ld, out ~%ld(%ld%%) ", - s->last_lit, in_length, out_length, - 100L - out_length*100L/in_length)); - if (s->matches < s->last_lit/2 && out_length < in_length/2) return 1; - } -#endif - return (s->last_lit == s->lit_bufsize-1); - /* We avoid equality with lit_bufsize because of wraparound at 64K - * on 16 bit machines and because stored blocks are restricted to - * 64K-1 bytes. - */ -} - -/* =========================================================================== - * Send the block data compressed using the given Huffman trees - */ -local void compress_block(s, ltree, dtree) - deflate_state *s; - ct_data *ltree; /* literal tree */ - ct_data *dtree; /* distance tree */ -{ - unsigned dist; /* distance of matched string */ - int lc; /* match length or unmatched char (if dist == 0) */ - unsigned lx = 0; /* running index in l_buf */ - unsigned code; /* the code to send */ - int extra; /* number of extra bits to send */ - - if (s->last_lit != 0) do { - dist = s->d_buf[lx]; - lc = s->l_buf[lx++]; - if (dist == 0) { - send_code(s, lc, ltree); /* send a literal byte */ - Tracecv(isgraph(lc), (stderr," '%c' ", lc)); - } else { - /* Here, lc is the match length - MIN_MATCH */ - code = _length_code[lc]; - send_code(s, code+LITERALS+1, ltree); /* send the length code */ - extra = extra_lbits[code]; - if (extra != 0) { - lc -= base_length[code]; - send_bits(s, lc, extra); /* send the extra length bits */ - } - dist--; /* dist is now the match distance - 1 */ - code = d_code(dist); - Assert (code < D_CODES, "bad d_code"); - - send_code(s, code, dtree); /* send the distance code */ - extra = extra_dbits[code]; - if (extra != 0) { - dist -= base_dist[code]; - send_bits(s, dist, extra); /* send the extra distance bits */ - } - } /* literal or match pair ? */ - - /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */ - Assert(s->pending < s->lit_bufsize + 2*lx, "pendingBuf overflow"); - - } while (lx < s->last_lit); - - send_code(s, END_BLOCK, ltree); - s->last_eob_len = ltree[END_BLOCK].Len; -} - -/* =========================================================================== - * Set the data type to ASCII or BINARY, using a crude approximation: - * binary if more than 20% of the bytes are <= 6 or >= 128, ascii otherwise. - * IN assertion: the fields freq of dyn_ltree are set and the total of all - * frequencies does not exceed 64K (to fit in an int on 16 bit machines). - */ -local void set_data_type(s) - deflate_state *s; -{ - int n = 0; - unsigned ascii_freq = 0; - unsigned bin_freq = 0; - while (n < 7) bin_freq += s->dyn_ltree[n++].Freq; - while (n < 128) ascii_freq += s->dyn_ltree[n++].Freq; - while (n < LITERALS) bin_freq += s->dyn_ltree[n++].Freq; - s->data_type = (Byte)(bin_freq > (ascii_freq >> 2) ? Z_BINARY : Z_ASCII); -} - -/* =========================================================================== - * Reverse the first len bits of a code, using straightforward code (a faster - * method would use a table) - * IN assertion: 1 <= len <= 15 - */ -local unsigned bi_reverse(code, len) - unsigned code; /* the value to invert */ - int len; /* its bit length */ -{ - register unsigned res = 0; - do { - res |= code & 1; - code >>= 1, res <<= 1; - } while (--len > 0); - return res >> 1; -} - -/* =========================================================================== - * Flush the bit buffer, keeping at most 7 bits in it. - */ -local void bi_flush(s) - deflate_state *s; -{ - if (s->bi_valid == 16) { - put_short(s, s->bi_buf); - s->bi_buf = 0; - s->bi_valid = 0; - } else if (s->bi_valid >= 8) { - put_byte(s, (Byte)s->bi_buf); - s->bi_buf >>= 8; - s->bi_valid -= 8; - } -} - -/* =========================================================================== - * Flush the bit buffer and align the output on a byte boundary - */ -local void bi_windup(s) - deflate_state *s; -{ - if (s->bi_valid > 8) { - put_short(s, s->bi_buf); - } else if (s->bi_valid > 0) { - put_byte(s, (Byte)s->bi_buf); - } - s->bi_buf = 0; - s->bi_valid = 0; -#ifdef __WXDEBUG__ - s->bits_sent = (s->bits_sent+7) & ~7; -#endif -} - -/* =========================================================================== - * Copy a stored block, storing first the length and its - * one's complement if requested. - */ -local void copy_block(s, buf, len, header) - deflate_state *s; - charf *buf; /* the input data */ - unsigned len; /* its length */ - int header; /* true if block header must be written */ -{ - bi_windup(s); /* align on byte boundary */ - s->last_eob_len = 8; /* enough lookahead for inflate */ - - if (header) { - put_short(s, (ush)len); - put_short(s, (ush)~len); -#ifdef __WXDEBUG__ - s->bits_sent += 2*16; -#endif - } -#ifdef __WXDEBUG__ - s->bits_sent += (ulg)len<<3; -#endif - while (len--) { - put_byte(s, *buf++); - } -} diff --git a/src/zlib/trees.h b/src/zlib/trees.h deleted file mode 100644 index 72facf900f..0000000000 --- a/src/zlib/trees.h +++ /dev/null @@ -1,128 +0,0 @@ -/* header created automatically with -DGEN_TREES_H */ - -local const ct_data static_ltree[L_CODES+2] = { -{{ 12},{ 8}}, {{140},{ 8}}, {{ 76},{ 8}}, {{204},{ 8}}, {{ 44},{ 8}}, -{{172},{ 8}}, {{108},{ 8}}, {{236},{ 8}}, {{ 28},{ 8}}, {{156},{ 8}}, -{{ 92},{ 8}}, {{220},{ 8}}, {{ 60},{ 8}}, {{188},{ 8}}, {{124},{ 8}}, -{{252},{ 8}}, {{ 2},{ 8}}, {{130},{ 8}}, {{ 66},{ 8}}, {{194},{ 8}}, -{{ 34},{ 8}}, {{162},{ 8}}, {{ 98},{ 8}}, {{226},{ 8}}, {{ 18},{ 8}}, -{{146},{ 8}}, {{ 82},{ 8}}, {{210},{ 8}}, {{ 50},{ 8}}, {{178},{ 8}}, -{{114},{ 8}}, {{242},{ 8}}, {{ 10},{ 8}}, {{138},{ 8}}, {{ 74},{ 8}}, -{{202},{ 8}}, {{ 42},{ 8}}, {{170},{ 8}}, {{106},{ 8}}, {{234},{ 8}}, -{{ 26},{ 8}}, {{154},{ 8}}, {{ 90},{ 8}}, {{218},{ 8}}, {{ 58},{ 8}}, -{{186},{ 8}}, {{122},{ 8}}, {{250},{ 8}}, {{ 6},{ 8}}, {{134},{ 8}}, -{{ 70},{ 8}}, {{198},{ 8}}, {{ 38},{ 8}}, {{166},{ 8}}, {{102},{ 8}}, -{{230},{ 8}}, {{ 22},{ 8}}, {{150},{ 8}}, {{ 86},{ 8}}, {{214},{ 8}}, -{{ 54},{ 8}}, {{182},{ 8}}, {{118},{ 8}}, {{246},{ 8}}, {{ 14},{ 8}}, -{{142},{ 8}}, {{ 78},{ 8}}, {{206},{ 8}}, {{ 46},{ 8}}, {{174},{ 8}}, -{{110},{ 8}}, {{238},{ 8}}, {{ 30},{ 8}}, {{158},{ 8}}, {{ 94},{ 8}}, -{{222},{ 8}}, {{ 62},{ 8}}, {{190},{ 8}}, {{126},{ 8}}, {{254},{ 8}}, -{{ 1},{ 8}}, {{129},{ 8}}, {{ 65},{ 8}}, {{193},{ 8}}, {{ 33},{ 8}}, -{{161},{ 8}}, {{ 97},{ 8}}, {{225},{ 8}}, {{ 17},{ 8}}, {{145},{ 8}}, -{{ 81},{ 8}}, {{209},{ 8}}, {{ 49},{ 8}}, {{177},{ 8}}, {{113},{ 8}}, -{{241},{ 8}}, {{ 9},{ 8}}, {{137},{ 8}}, {{ 73},{ 8}}, {{201},{ 8}}, -{{ 41},{ 8}}, {{169},{ 8}}, {{105},{ 8}}, {{233},{ 8}}, {{ 25},{ 8}}, -{{153},{ 8}}, {{ 89},{ 8}}, {{217},{ 8}}, {{ 57},{ 8}}, {{185},{ 8}}, -{{121},{ 8}}, {{249},{ 8}}, {{ 5},{ 8}}, {{133},{ 8}}, {{ 69},{ 8}}, -{{197},{ 8}}, {{ 37},{ 8}}, {{165},{ 8}}, {{101},{ 8}}, {{229},{ 8}}, -{{ 21},{ 8}}, {{149},{ 8}}, {{ 85},{ 8}}, {{213},{ 8}}, {{ 53},{ 8}}, -{{181},{ 8}}, {{117},{ 8}}, {{245},{ 8}}, {{ 13},{ 8}}, {{141},{ 8}}, -{{ 77},{ 8}}, {{205},{ 8}}, {{ 45},{ 8}}, {{173},{ 8}}, {{109},{ 8}}, -{{237},{ 8}}, {{ 29},{ 8}}, {{157},{ 8}}, {{ 93},{ 8}}, {{221},{ 8}}, -{{ 61},{ 8}}, {{189},{ 8}}, {{125},{ 8}}, {{253},{ 8}}, {{ 19},{ 9}}, -{{275},{ 9}}, {{147},{ 9}}, {{403},{ 9}}, {{ 83},{ 9}}, {{339},{ 9}}, -{{211},{ 9}}, {{467},{ 9}}, {{ 51},{ 9}}, {{307},{ 9}}, {{179},{ 9}}, -{{435},{ 9}}, {{115},{ 9}}, {{371},{ 9}}, {{243},{ 9}}, {{499},{ 9}}, -{{ 11},{ 9}}, {{267},{ 9}}, {{139},{ 9}}, {{395},{ 9}}, {{ 75},{ 9}}, -{{331},{ 9}}, {{203},{ 9}}, {{459},{ 9}}, {{ 43},{ 9}}, {{299},{ 9}}, -{{171},{ 9}}, {{427},{ 9}}, {{107},{ 9}}, {{363},{ 9}}, {{235},{ 9}}, -{{491},{ 9}}, {{ 27},{ 9}}, {{283},{ 9}}, {{155},{ 9}}, {{411},{ 9}}, -{{ 91},{ 9}}, {{347},{ 9}}, {{219},{ 9}}, {{475},{ 9}}, {{ 59},{ 9}}, -{{315},{ 9}}, {{187},{ 9}}, {{443},{ 9}}, {{123},{ 9}}, {{379},{ 9}}, -{{251},{ 9}}, {{507},{ 9}}, {{ 7},{ 9}}, {{263},{ 9}}, {{135},{ 9}}, -{{391},{ 9}}, {{ 71},{ 9}}, {{327},{ 9}}, {{199},{ 9}}, {{455},{ 9}}, -{{ 39},{ 9}}, {{295},{ 9}}, {{167},{ 9}}, {{423},{ 9}}, {{103},{ 9}}, -{{359},{ 9}}, {{231},{ 9}}, {{487},{ 9}}, {{ 23},{ 9}}, {{279},{ 9}}, -{{151},{ 9}}, {{407},{ 9}}, {{ 87},{ 9}}, {{343},{ 9}}, {{215},{ 9}}, -{{471},{ 9}}, {{ 55},{ 9}}, {{311},{ 9}}, {{183},{ 9}}, {{439},{ 9}}, -{{119},{ 9}}, {{375},{ 9}}, {{247},{ 9}}, {{503},{ 9}}, {{ 15},{ 9}}, -{{271},{ 9}}, {{143},{ 9}}, {{399},{ 9}}, {{ 79},{ 9}}, {{335},{ 9}}, -{{207},{ 9}}, {{463},{ 9}}, {{ 47},{ 9}}, {{303},{ 9}}, {{175},{ 9}}, -{{431},{ 9}}, {{111},{ 9}}, {{367},{ 9}}, {{239},{ 9}}, {{495},{ 9}}, -{{ 31},{ 9}}, {{287},{ 9}}, {{159},{ 9}}, {{415},{ 9}}, {{ 95},{ 9}}, -{{351},{ 9}}, {{223},{ 9}}, {{479},{ 9}}, {{ 63},{ 9}}, {{319},{ 9}}, -{{191},{ 9}}, {{447},{ 9}}, {{127},{ 9}}, {{383},{ 9}}, {{255},{ 9}}, -{{511},{ 9}}, {{ 0},{ 7}}, {{ 64},{ 7}}, {{ 32},{ 7}}, {{ 96},{ 7}}, -{{ 16},{ 7}}, {{ 80},{ 7}}, {{ 48},{ 7}}, {{112},{ 7}}, {{ 8},{ 7}}, -{{ 72},{ 7}}, {{ 40},{ 7}}, {{104},{ 7}}, {{ 24},{ 7}}, {{ 88},{ 7}}, -{{ 56},{ 7}}, {{120},{ 7}}, {{ 4},{ 7}}, {{ 68},{ 7}}, {{ 36},{ 7}}, -{{100},{ 7}}, {{ 20},{ 7}}, {{ 84},{ 7}}, {{ 52},{ 7}}, {{116},{ 7}}, -{{ 3},{ 8}}, {{131},{ 8}}, {{ 67},{ 8}}, {{195},{ 8}}, {{ 35},{ 8}}, -{{163},{ 8}}, {{ 99},{ 8}}, {{227},{ 8}} -}; - -local const ct_data static_dtree[D_CODES] = { -{{ 0},{ 5}}, {{16},{ 5}}, {{ 8},{ 5}}, {{24},{ 5}}, {{ 4},{ 5}}, -{{20},{ 5}}, {{12},{ 5}}, {{28},{ 5}}, {{ 2},{ 5}}, {{18},{ 5}}, -{{10},{ 5}}, {{26},{ 5}}, {{ 6},{ 5}}, {{22},{ 5}}, {{14},{ 5}}, -{{30},{ 5}}, {{ 1},{ 5}}, {{17},{ 5}}, {{ 9},{ 5}}, {{25},{ 5}}, -{{ 5},{ 5}}, {{21},{ 5}}, {{13},{ 5}}, {{29},{ 5}}, {{ 3},{ 5}}, -{{19},{ 5}}, {{11},{ 5}}, {{27},{ 5}}, {{ 7},{ 5}}, {{23},{ 5}} -}; - -const uch _dist_code[DIST_CODE_LEN] = { - 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, -10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, -11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, -12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, -13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, -14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, -15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 0, 16, 17, -18, 18, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, -28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, -29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 -}; - -const uch _length_code[MAX_MATCH-MIN_MATCH+1]= { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, -13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, -17, 17, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, -19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, -21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, -22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, -23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, -25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, -26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, -27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28 -}; - -local const int base_length[LENGTH_CODES] = { -0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, -64, 80, 96, 112, 128, 160, 192, 224, 0 -}; - -local const int base_dist[D_CODES] = { - 0, 1, 2, 3, 4, 6, 8, 12, 16, 24, - 32, 48, 64, 96, 128, 192, 256, 384, 512, 768, - 1024, 1536, 2048, 3072, 4096, 6144, 8192, 12288, 16384, 24576 -}; - diff --git a/src/zlib/uncompr.c b/src/zlib/uncompr.c deleted file mode 100644 index f4d287b518..0000000000 --- a/src/zlib/uncompr.c +++ /dev/null @@ -1,58 +0,0 @@ -/* uncompr.c -- decompress a memory buffer - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "../zlib/zlib.h" - -/* =========================================================================== - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be large enough to hold the - entire uncompressed data. (The size of the uncompressed data must have - been saved previously by the compressor and transmitted to the decompressor - by some mechanism outside the scope of this compression library.) - Upon exit, destLen is the actual size of the compressed buffer. - This function can be used to decompress a whole file at once if the - input file is mmap'ed. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted. -*/ -int ZEXPORT uncompress (dest, destLen, source, sourceLen) - Bytef *dest; - uLongf *destLen; - const Bytef *source; - uLong sourceLen; -{ - z_stream stream; - int err; - - stream.next_in = (Bytef*)source; - stream.avail_in = (uInt)sourceLen; - /* Check for source > 64K on 16-bit machine: */ - if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR; - - stream.next_out = dest; - stream.avail_out = (uInt)*destLen; - if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR; - - stream.zalloc = (alloc_func)0; - stream.zfree = (free_func)0; - - err = inflateInit(&stream); - if (err != Z_OK) return err; - - err = inflate(&stream, Z_FINISH); - if (err != Z_STREAM_END) { - inflateEnd(&stream); - return err == Z_OK ? Z_BUF_ERROR : err; - } - *destLen = stream.total_out; - - err = inflateEnd(&stream); - return err; -} diff --git a/src/zlib/zconf.h b/src/zlib/zconf.h deleted file mode 100644 index 89e1a16c0d..0000000000 --- a/src/zlib/zconf.h +++ /dev/null @@ -1,252 +0,0 @@ -/* zconf.h -- configuration of the zlib compression library - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#ifndef _ZCONF_H -#define _ZCONF_H - -/* - * If you *really* need a unique prefix for all types and library functions, - * compile with -DZ_PREFIX. The "standard" zlib should be compiled without it. - */ -#ifdef Z_PREFIX -# define deflateInit_ z_deflateInit_ -# define deflate z_deflate -# define deflateEnd z_deflateEnd -# define inflateInit_ z_inflateInit_ -# define inflate z_inflate -# define inflateEnd z_inflateEnd -# define deflateInit2_ z_deflateInit2_ -# define deflateSetDictionary z_deflateSetDictionary -# define deflateCopy z_deflateCopy -# define deflateReset z_deflateReset -# define deflateParams z_deflateParams -# define inflateInit2_ z_inflateInit2_ -# define inflateSetDictionary z_inflateSetDictionary -# define inflateSync z_inflateSync -# define inflateSyncPoint z_inflateSyncPoint -# define inflateReset z_inflateReset -# define compress z_compress -# define compress2 z_compress2 -# define uncompress z_uncompress -# define adler32 z_adler32 -# define crc32 z_crc32 -# define get_crc_table z_get_crc_table - -# define Byte z_Byte -# define uInt z_uInt -# define uLong z_uLong -# define Bytef z_Bytef -# define charf z_charf -# define intf z_intf -# define uIntf z_uIntf -# define uLongf z_uLongf -# define voidpf z_voidpf -# define voidp z_voidp -#endif - -#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32) -# define WIN32 -#endif -#if defined(__GNUC__) || defined(WIN32) || defined(__386__) || defined(i386) -# ifndef __32BIT__ -# define __32BIT__ -# endif -#endif -#if defined(__MSDOS__) && !defined(MSDOS) -# define MSDOS -#endif - -/* - * Compile with -DMAXSEG_64K if the alloc function cannot allocate more - * than 64k bytes at a time (needed on systems with 16-bit int). - */ -#if defined(MSDOS) && !defined(__32BIT__) -# define MAXSEG_64K -#endif -#ifdef MSDOS -# define UNALIGNED_OK -#endif - -#if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32)) && !defined(STDC) -# define STDC -#endif -#if defined(__STDC__) || defined(__cplusplus) || defined(__OS2__) -# ifndef STDC -# define STDC -# endif -#endif - -#ifndef STDC -# ifndef const /* cannot use !defined(STDC) && !defined(const) on Mac */ -# define const -# endif -#endif - -/* Some Mac compilers merge all .h files incorrectly: */ -#if defined(__MWERKS__) || defined(applec) ||defined(THINK_C) ||defined(__SC__) -# define NO_DUMMY_DECL -#endif - -/* Borland C incorrectly complains about missing returns: */ -#if defined(__BORLANDC__) -# define NEED_DUMMY_RETURN -#endif - - -/* Maximum value for memLevel in deflateInit2 */ -#ifndef MAX_MEM_LEVEL -# ifdef MAXSEG_64K -# define MAX_MEM_LEVEL 8 -# else -# define MAX_MEM_LEVEL 9 -# endif -#endif - -/* Maximum value for windowBits in deflateInit2 and inflateInit2. - * WARNING: reducing MAX_WBITS makes minigzip unable to extract .gz files - * created by gzip. (Files created by minigzip can still be extracted by - * gzip.) - */ -#ifndef MAX_WBITS -# define MAX_WBITS 15 /* 32K LZ77 window */ -#endif - -/* The memory requirements for deflate are (in bytes): - (1 << (windowBits+2)) + (1 << (memLevel+9)) - that is: 128K for windowBits=15 + 128K for memLevel = 8 (default values) - plus a few kilobytes for small objects. For example, if you want to reduce - the default memory requirements from 256K to 128K, compile with - make CFLAGS="-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7" - Of course this will generally degrade compression (there's no free lunch). - - The memory requirements for inflate are (in bytes) 1 << windowBits - that is, 32K for windowBits=15 (default value) plus a few kilobytes - for small objects. -*/ - - /* Type declarations */ - -#ifndef OF /* function prototypes */ -# ifdef STDC -# define OF(args) args -# else -# define OF(args) () -# endif -#endif - -/* The following definitions for FAR are needed only for MSDOS mixed - * model programming (small or medium model with some far allocations). - * This was tested only with MSC; for other MSDOS compilers you may have - * to define NO_MEMCPY in zutil.h. If you don't need the mixed model, - * just define FAR to be empty. - */ -#if (defined(M_I86SM) || defined(M_I86MM)) && !defined(__32BIT__) - /* MSC small or medium model */ -# define SMALL_MEDIUM -# ifdef _MSC_VER -# define FAR __far -# else -# define FAR far -# endif -#endif -#if defined(__BORLANDC__) && (defined(__SMALL__) || defined(__MEDIUM__)) -# ifndef __32BIT__ -# define SMALL_MEDIUM -# define FAR __far -# endif -#endif - -/* Compile with -DZLIB_DLL for Windows DLL support */ -#if (defined(_WINDOWS) || defined(WINDOWS)) && defined(ZLIB_DLL) -# ifdef FAR -# undef FAR -# endif -# include -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV -# else -# define ZEXPORTVA FAR _cdecl _export -# endif -#else -# if defined (__BORLANDC__) && defined (_Windows) && defined (__DLL__) -# define ZEXPORT _export -# define ZEXPORTVA _export -# else -# define ZEXPORT -# define ZEXPORTVA -# endif -#endif - -#ifndef FAR -# define FAR -#endif - -typedef unsigned char Byte; /* 8 bits */ -typedef unsigned int uInt; /* 16 bits or more */ -typedef unsigned long uLong; /* 32 bits or more */ - -#if defined(__BORLANDC__) && defined(SMALL_MEDIUM) - /* Borland C/C++ ignores FAR inside typedef */ -# define Bytef Byte FAR -#else - typedef Byte FAR Bytef; -#endif -typedef char FAR charf; -typedef int FAR intf; -typedef uInt FAR uIntf; -typedef uLong FAR uLongf; - -#ifdef STDC - typedef void FAR *voidpf; - typedef void *voidp; -#else - typedef Byte FAR *voidpf; - typedef Byte *voidp; -#endif - -#ifdef HAVE_UNISTD_H -# include /* for off_t */ -# include /* for SEEK_* and off_t */ -# define z_off_t off_t -#endif -#ifndef SEEK_SET -# define SEEK_SET 0 /* Seek from beginning of file. */ -# define SEEK_CUR 1 /* Seek from current position. */ -#endif -#ifndef z_off_t -# define z_off_t long -#endif - -/* MVS linker does not support external names larger than 8 bytes */ -#if defined(__MVS__) -# pragma map(deflateInit_,"DEIN") -# pragma map(deflateInit2_,"DEIN2") -# pragma map(deflateEnd,"DEEND") -# pragma map(inflateInit_,"ININ") -# pragma map(inflateInit2_,"ININ2") -# pragma map(inflateEnd,"INEND") -# pragma map(inflateSync,"INSY") -# pragma map(inflateSetDictionary,"INSEDI") -# pragma map(inflate_blocks,"INBL") -# pragma map(inflate_blocks_new,"INBLNE") -# pragma map(inflate_blocks_free,"INBLFR") -# pragma map(inflate_blocks_reset,"INBLRE") -# pragma map(inflate_codes_free,"INCOFR") -# pragma map(inflate_codes,"INCO") -# pragma map(inflate_fast,"INFA") -# pragma map(inflate_flush,"INFLU") -# pragma map(inflate_mask,"INMA") -# pragma map(inflate_set_dictionary,"INSEDI2") -# pragma map(inflate_copyright,"INCOPY") -# pragma map(inflate_trees_bits,"INTRBI") -# pragma map(inflate_trees_dynamic,"INTRDY") -# pragma map(inflate_trees_fixed,"INTRFI") -# pragma map(inflate_trees_free,"INTRFR") -#endif - -#endif /* _ZCONF_H */ diff --git a/src/zlib/zlib.3 b/src/zlib/zlib.3 deleted file mode 100644 index d08d0e0d59..0000000000 --- a/src/zlib/zlib.3 +++ /dev/null @@ -1,107 +0,0 @@ -.TH ZLIB 3 "19 March 1998" -.SH NAME -zlib \- compression/decompression library -.SH SYNOPSIS -[see -.I zlib.h -for full description] -.SH DESCRIPTION -The -.I zlib -library is a general purpose data compression library. -The code is thread safe. -It provides in-memory compression and decompression functions, -including integrity checks of the uncompressed data. -This version of the library supports only one compression method (deflation) -but other algorithms will be added later and will have the same stream interface. -.LP -Compression can be done in a single step if the buffers are large enough -(for example if an input file is mmap'ed), -or can be done by repeated calls of the compression function. -In the latter case, -the application must provide more input and/or consume the output -(providing more output space) before each call. -.LP -The library also supports reading and writing files in -.I gzip -(.gz) format -with an interface similar to that of stdio. -.LP -The library does not install any signal handler. The decoder checks -the consistency of the compressed data, so the library should never -crash even in case of corrupted input. -.LP -All functions of the compression library are documented in the file -.IR zlib.h. -The distribution source includes examples of use of the library -the files -.I example.c -and -.IR minigzip.c . -.LP -A Java implementation of -.IR zlib -is available in the Java Development Kit 1.1 -.IP -http://www.javasoft.com/products/JDK/1.1/docs/api/Package-java.util.zip.html -.LP -A Perl interface to -.IR zlib , -written by Paul Marquess (pmarquess@bfsec.bt.co.uk) -is available at CPAN (Comprehensive Perl Archive Network) sites, -such as: -.IP -ftp://ftp.cis.ufl.edu/pub/perl/CPAN/modules/by-module/Compress/Compress-Zlib* -.LP -A Python interface to -.IR zlib -written by A.M. Kuchling -is available from the Python Software Association sites, such as: -.IP -ftp://ftp.python.org/pub/python/contrib/Encoding/zlib*.tar.gz -.SH "SEE ALSO" -Questions about zlib should be sent to: -.IP -zlib@quest.jpl.nasa.gov -or, if this fails, to the author addresses given below. -The zlib home page is: -.IP -http://www.cdrom.com/pub/infozip/zlib/ -.LP -The data format used by the zlib library is described by RFC -(Request for Comments) 1950 to 1952 in the files: -.IP -ftp://ds.internic.net/rfc/rfc1950.txt (zlib format) -.br -rfc1951.txt (deflate format) -.br -rfc1952.txt (gzip format) -.LP -These documents are also available in other formats from: -.IP -ftp://ftp.uu.net/graphics/png/documents/zlib/zdoc-index.html -.SH AUTHORS -Version 1.1.2 -Copyright (C) 1995-1998 Jean-loup Gailly (jloup@gzip.org) -and Mark Adler (madler@alumni.caltech.edu). -.LP -This software is provided "as-is," -without any express or implied warranty. -In no event will the authors be held liable for any damages -arising from the use of this software. -See the distribution directory with respect to requirements -governing redistribution. -The deflate format used by -.I zlib -was defined by Phil Katz. -The deflate and -.I zlib -specifications were written by L. Peter Deutsch. -Thanks to all the people who reported problems and suggested various -improvements in -.IR zlib ; -who are too numerous to cite here. -.LP -UNIX manual page by R. P. C. Rodgers, -U.S. National Library of Medicine (rodgers@nlm.nih.gov). -.\" end of man page diff --git a/src/zlib/zlib.h b/src/zlib/zlib.h deleted file mode 100644 index 76775e7922..0000000000 --- a/src/zlib/zlib.h +++ /dev/null @@ -1,888 +0,0 @@ -/* zlib.h -- interface of the 'zlib' general purpose compression library - version 1.1.2, March 19th, 1998 - - Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - - Jean-loup Gailly Mark Adler - jloup@gzip.org madler@alumni.caltech.edu - - - The data format used by the zlib library is described by RFCs (Request for - Comments) 1950 to 1952 in the files ftp://ds.internic.net/rfc/rfc1950.txt - (zlib format), rfc1951.txt (deflate format) and rfc1952.txt (gzip format). -*/ - -#ifndef _ZLIB_H -#define _ZLIB_H - -#include "../zlib/zconf.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZLIB_VERSION "1.1.2" - -/* - The 'zlib' compression library provides in-memory compression and - decompression functions, including integrity checks of the uncompressed - data. This version of the library supports only one compression method - (deflation) but other algorithms will be added later and will have the same - stream interface. - - Compression can be done in a single step if the buffers are large - enough (for example if an input file is mmap'ed), or can be done by - repeated calls of the compression function. In the latter case, the - application must provide more input and/or consume the output - (providing more output space) before each call. - - The library also supports reading and writing files in gzip (.gz) format - with an interface similar to that of stdio. - - The library does not install any signal handler. The decoder checks - the consistency of the compressed data, so the library should never - crash even in case of corrupted input. -*/ - -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); - -struct internal_state; - -typedef struct z_stream_s { - Bytef *next_in; /* next input byte */ - uInt avail_in; /* number of bytes available at next_in */ - uLong total_in; /* total nb of input bytes read so far */ - - Bytef *next_out; /* next output byte should be put there */ - uInt avail_out; /* remaining free space at next_out */ - uLong total_out; /* total nb of bytes output so far */ - - char *msg; /* last error message, NULL if no error */ - struct internal_state FAR *state; /* not visible by applications */ - - alloc_func zalloc; /* used to allocate the internal state */ - free_func zfree; /* used to free the internal state */ - voidpf opaque; /* private data object passed to zalloc and zfree */ - - int data_type; /* best guess about the data type: ascii or binary */ - uLong adler; /* adler32 value of the uncompressed data */ - uLong reserved; /* reserved for future use */ -} z_stream; - -typedef z_stream FAR *z_streamp; - -/* - The application must update next_in and avail_in when avail_in has - dropped to zero. It must update next_out and avail_out when avail_out - has dropped to zero. The application must initialize zalloc, zfree and - opaque before calling the init function. All other fields are set by the - compression library and must not be updated by the application. - - The opaque value provided by the application will be passed as the first - parameter for calls of zalloc and zfree. This can be useful for custom - memory management. The compression library attaches no meaning to the - opaque value. - - zalloc must return Z_NULL if there is not enough memory for the object. - If zlib is used in a multi-threaded application, zalloc and zfree must be - thread safe. - - On 16-bit systems, the functions zalloc and zfree must be able to allocate - exactly 65536 bytes, but will not be required to allocate more than this - if the symbol MAXSEG_64K is defined (see zconf.h). WARNING: On MSDOS, - pointers returned by zalloc for objects of exactly 65536 bytes *must* - have their offset normalized to zero. The default allocation function - provided by this library ensures this (see zutil.c). To reduce memory - requirements and avoid any allocation of 64K objects, at the expense of - compression ratio, compile the library with -DMAX_WBITS=14 (see zconf.h). - - The fields total_in and total_out can be used for statistics or - progress reports. After compression, total_in holds the total size of - the uncompressed data and may be saved for use in the decompressor - (particularly if the decompressor wants to decompress everything in - a single step). -*/ - - /* constants */ - -#define Z_NO_FLUSH 0 -#define Z_PARTIAL_FLUSH 1 /* will be removed, use Z_SYNC_FLUSH instead */ -#define Z_SYNC_FLUSH 2 -#define Z_FULL_FLUSH 3 -#define Z_FINISH 4 -/* Allowed flush values; see deflate() below for details */ - -#define Z_OK 0 -#define Z_STREAM_END 1 -#define Z_NEED_DICT 2 -#define Z_ERRNO (-1) -#define Z_STREAM_ERROR (-2) -#define Z_DATA_ERROR (-3) -#define Z_MEM_ERROR (-4) -#define Z_BUF_ERROR (-5) -#define Z_VERSION_ERROR (-6) -/* Return codes for the compression/decompression functions. Negative - * values are errors, positive values are used for special but normal events. - */ - -#define Z_NO_COMPRESSION 0 -#define Z_BEST_SPEED 1 -#define Z_BEST_COMPRESSION 9 -#define Z_DEFAULT_COMPRESSION (-1) -/* compression levels */ - -#define Z_FILTERED 1 -#define Z_HUFFMAN_ONLY 2 -#define Z_DEFAULT_STRATEGY 0 -/* compression strategy; see deflateInit2() below for details */ - -#define Z_BINARY 0 -#define Z_ASCII 1 -#define Z_UNKNOWN 2 -/* Possible values of the data_type field */ - -#define Z_DEFLATED 8 -/* The deflate compression method (the only one supported in this version) */ - -#define Z_NULL 0 /* for initializing zalloc, zfree, opaque */ - -#define zlib_version zlibVersion() -/* for compatibility with versions < 1.0.2 */ - - /* basic functions */ - -extern const char * ZEXPORT zlibVersion OF((void)); -/* The application can compare zlibVersion and ZLIB_VERSION for consistency. - If the first character differs, the library code actually used is - not compatible with the zlib.h header file used by the application. - This check is automatically made by deflateInit and inflateInit. - */ - -/* -extern int ZEXPORT deflateInit OF((z_streamp strm, int level)); - - Initializes the internal stream state for compression. The fields - zalloc, zfree and opaque must be initialized before by the caller. - If zalloc and zfree are set to Z_NULL, deflateInit updates them to - use default allocation functions. - - The compression level must be Z_DEFAULT_COMPRESSION, or between 0 and 9: - 1 gives best speed, 9 gives best compression, 0 gives no compression at - all (the input data is simply copied a block at a time). - Z_DEFAULT_COMPRESSION requests a default compromise between speed and - compression (currently equivalent to level 6). - - deflateInit returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if level is not a valid compression level, - Z_VERSION_ERROR if the zlib library version (zlib_version) is incompatible - with the version assumed by the caller (ZLIB_VERSION). - msg is set to null if there is no error message. deflateInit does not - perform any compression: this will be done by deflate(). -*/ - - -extern int ZEXPORT deflate OF((z_streamp strm, int flush)); -/* - deflate compresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may introduce some - output latency (reading input without producing any output) except when - forced to flush. - - The detailed semantics are as follows. deflate performs one or both of the - following actions: - - - Compress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in and avail_in are updated and - processing will resume at this point for the next call of deflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. This action is forced if the parameter flush is non zero. - Forcing flush frequently degrades the compression ratio, so this parameter - should be set only when necessary (in interactive applications). - Some output may be provided even if flush is not set. - - Before the call of deflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming - more output, and updating avail_in or avail_out accordingly; avail_out - should never be zero before the call. The application can consume the - compressed output when it wants, for example when the output buffer is full - (avail_out == 0), or after each call of deflate(). If deflate returns Z_OK - and with zero avail_out, it must be called again after making room in the - output buffer because there might be more output pending. - - If the parameter flush is set to Z_SYNC_FLUSH, all pending output is - flushed to the output buffer and the output is aligned on a byte boundary, so - that the decompressor can get all input data available so far. (In particular - avail_in is zero after the call if enough output space has been provided - before the call.) Flushing may degrade compression for some compression - algorithms and so it should be used only when necessary. - - If flush is set to Z_FULL_FLUSH, all output is flushed as with - Z_SYNC_FLUSH, and the compression state is reset so that decompression can - restart from this point if previous compressed data has been damaged or if - random access is desired. Using Z_FULL_FLUSH too often can seriously degrade - the compression. - - If deflate returns with avail_out == 0, this function must be called again - with the same value of the flush parameter and more output space (updated - avail_out), until the flush is complete (deflate returns with non-zero - avail_out). - - If the parameter flush is set to Z_FINISH, pending input is processed, - pending output is flushed and deflate returns with Z_STREAM_END if there - was enough output space; if deflate returns with Z_OK, this function must be - called again with Z_FINISH and more output space (updated avail_out) but no - more input data, until it returns with Z_STREAM_END or an error. After - deflate has returned Z_STREAM_END, the only possible operations on the - stream are deflateReset or deflateEnd. - - Z_FINISH can be used immediately after deflateInit if all the compression - is to be done in a single step. In this case, avail_out must be at least - 0.1% larger than avail_in plus 12 bytes. If deflate does not return - Z_STREAM_END, then it must be called again as described above. - - deflate() sets strm->adler to the adler32 checksum of all input read - so far (that is, total_in bytes). - - deflate() may update data_type if it can make a good guess about - the input data type (Z_ASCII or Z_BINARY). In doubt, the data is considered - binary. This field is only for information purposes and does not affect - the compression algorithm in any manner. - - deflate() returns Z_OK if some progress has been made (more input - processed or more output produced), Z_STREAM_END if all input has been - consumed and all output has been produced (only when flush is set to - Z_FINISH), Z_STREAM_ERROR if the stream state was inconsistent (for example - if next_in or next_out was NULL), Z_BUF_ERROR if no progress is possible. -*/ - - -extern int ZEXPORT deflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any - pending output. - - deflateEnd returns Z_OK if success, Z_STREAM_ERROR if the - stream state was inconsistent, Z_DATA_ERROR if the stream was freed - prematurely (some input or output was discarded). In the error case, - msg may be set but then points to a static string (which must not be - deallocated). -*/ - - -/* -extern int ZEXPORT inflateInit OF((z_streamp strm)); - - Initializes the internal stream state for decompression. The fields - next_in, avail_in, zalloc, zfree and opaque must be initialized before by - the caller. If next_in is not Z_NULL and avail_in is large enough (the exact - value depends on the compression method), inflateInit determines the - compression method from the zlib header and allocates all data structures - accordingly; otherwise the allocation will be deferred to the first call of - inflate. If zalloc and zfree are set to Z_NULL, inflateInit updates them to - use default allocation functions. - - inflateInit returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_VERSION_ERROR if the zlib library version is incompatible with the - version assumed by the caller. msg is set to null if there is no error - message. inflateInit does not perform any decompression apart from reading - the zlib header if present: this will be done by inflate(). (So next_in and - avail_in may be modified, but next_out and avail_out are unchanged.) -*/ - - -extern int ZEXPORT inflate OF((z_streamp strm, int flush)); -/* - inflate decompresses as much data as possible, and stops when the input - buffer becomes empty or the output buffer becomes full. It may some - introduce some output latency (reading input without producing any output) - except when forced to flush. - - The detailed semantics are as follows. inflate performs one or both of the - following actions: - - - Decompress more input starting at next_in and update next_in and avail_in - accordingly. If not all input can be processed (because there is not - enough room in the output buffer), next_in is updated and processing - will resume at this point for the next call of inflate(). - - - Provide more output starting at next_out and update next_out and avail_out - accordingly. inflate() provides as much output as possible, until there - is no more input data or no more space in the output buffer (see below - about the flush parameter). - - Before the call of inflate(), the application should ensure that at least - one of the actions is possible, by providing more input and/or consuming - more output, and updating the next_* and avail_* values accordingly. - The application can consume the uncompressed output when it wants, for - example when the output buffer is full (avail_out == 0), or after each - call of inflate(). If inflate returns Z_OK and with zero avail_out, it - must be called again after making room in the output buffer because there - might be more output pending. - - If the parameter flush is set to Z_SYNC_FLUSH, inflate flushes as much - output as possible to the output buffer. The flushing behavior of inflate is - not specified for values of the flush parameter other than Z_SYNC_FLUSH - and Z_FINISH, but the current implementation actually flushes as much output - as possible anyway. - - inflate() should normally be called until it returns Z_STREAM_END or an - error. However if all decompression is to be performed in a single step - (a single call of inflate), the parameter flush should be set to - Z_FINISH. In this case all pending input is processed and all pending - output is flushed; avail_out must be large enough to hold all the - uncompressed data. (The size of the uncompressed data may have been saved - by the compressor for this purpose.) The next operation on this stream must - be inflateEnd to deallocate the decompression state. The use of Z_FINISH - is never required, but can be used to inform inflate that a faster routine - may be used for the single inflate() call. - - If a preset dictionary is needed at this point (see inflateSetDictionary - below), inflate sets strm-adler to the adler32 checksum of the - dictionary chosen by the compressor and returns Z_NEED_DICT; otherwise - it sets strm->adler to the adler32 checksum of all output produced - so far (that is, total_out bytes) and returns Z_OK, Z_STREAM_END or - an error code as described below. At the end of the stream, inflate() - checks that its computed adler32 checksum is equal to that saved by the - compressor and returns Z_STREAM_END only if the checksum is correct. - - inflate() returns Z_OK if some progress has been made (more input processed - or more output produced), Z_STREAM_END if the end of the compressed data has - been reached and all uncompressed output has been produced, Z_NEED_DICT if a - preset dictionary is needed at this point, Z_DATA_ERROR if the input data was - corrupted (input stream not conforming to the zlib format or incorrect - adler32 checksum), Z_STREAM_ERROR if the stream structure was inconsistent - (for example if next_in or next_out was NULL), Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if no progress is possible or if there was not - enough room in the output buffer when Z_FINISH is used. In the Z_DATA_ERROR - case, the application may then call inflateSync to look for a good - compression block. -*/ - - -extern int ZEXPORT inflateEnd OF((z_streamp strm)); -/* - All dynamically allocated data structures for this stream are freed. - This function discards any unprocessed input and does not flush any - pending output. - - inflateEnd returns Z_OK if success, Z_STREAM_ERROR if the stream state - was inconsistent. In the error case, msg may be set but then points to a - static string (which must not be deallocated). -*/ - - /* Advanced functions */ - -/* - The following functions are needed only in some special applications. -*/ - -/* -extern int ZEXPORT deflateInit2 OF((z_streamp strm, - int level, - int method, - int windowBits, - int memLevel, - int strategy)); - - This is another version of deflateInit with more compression options. The - fields next_in, zalloc, zfree and opaque must be initialized before by - the caller. - - The method parameter is the compression method. It must be Z_DEFLATED in - this version of the library. - - The windowBits parameter is the base two logarithm of the window size - (the size of the history buffer). It should be in the range 8..15 for this - version of the library. Larger values of this parameter result in better - compression at the expense of memory usage. The default value is 15 if - deflateInit is used instead. - - The memLevel parameter specifies how much memory should be allocated - for the internal compression state. memLevel=1 uses minimum memory but - is slow and reduces compression ratio; memLevel=9 uses maximum memory - for optimal speed. The default value is 8. See zconf.h for total memory - usage as a function of windowBits and memLevel. - - The strategy parameter is used to tune the compression algorithm. Use the - value Z_DEFAULT_STRATEGY for normal data, Z_FILTERED for data produced by a - filter (or predictor), or Z_HUFFMAN_ONLY to force Huffman encoding only (no - string match). Filtered data consists mostly of small values with a - somewhat random distribution. In this case, the compression algorithm is - tuned to compress them better. The effect of Z_FILTERED is to force more - Huffman coding and less string matching; it is somewhat intermediate - between Z_DEFAULT and Z_HUFFMAN_ONLY. The strategy parameter only affects - the compression ratio but not the correctness of the compressed output even - if it is not set appropriately. - - deflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if a parameter is invalid (such as an invalid - method). msg is set to null if there is no error message. deflateInit2 does - not perform any compression: this will be done by deflate(). -*/ - -extern int ZEXPORT deflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the compression dictionary from the given byte sequence - without producing any compressed output. This function must be called - immediately after deflateInit or deflateInit2, before any call of - deflate. The compressor and decompressor must use exactly the same - dictionary (see inflateSetDictionary). - - The dictionary should consist of strings (byte sequences) that are likely - to be encountered later in the data to be compressed, with the most commonly - used strings preferably put towards the end of the dictionary. Using a - dictionary is most useful when the data to be compressed is short and can be - predicted with good accuracy; the data can then be compressed better than - with the default empty dictionary. - - Depending on the size of the compression data structures selected by - deflateInit or deflateInit2, a part of the dictionary may in effect be - discarded, for example if the dictionary is larger than the window size in - deflate or deflate2. Thus the strings most likely to be useful should be - put at the end of the dictionary, not at the front. - - Upon return of this function, strm->adler is set to the Adler32 value - of the dictionary; the decompressor may later use this value to determine - which dictionary has been used by the compressor. (The Adler32 value - applies to the whole dictionary even if only a subset of the dictionary is - actually used by the compressor.) - - deflateSetDictionary returns Z_OK if success, or Z_STREAM_ERROR if a - parameter is invalid (such as NULL dictionary) or the stream state is - inconsistent (for example if deflate has already been called for this stream - or if the compression method is bsort). deflateSetDictionary does not - perform any compression: this will be done by deflate(). -*/ - -extern int ZEXPORT deflateCopy OF((z_streamp dest, - z_streamp source)); -/* - Sets the destination stream as a complete copy of the source stream. - - This function can be useful when several compression strategies will be - tried, for example when there are several ways of pre-processing the input - data with a filter. The streams that will be discarded should then be freed - by calling deflateEnd. Note that deflateCopy duplicates the internal - compression state which can be quite large, so this strategy is slow and - can consume lots of memory. - - deflateCopy returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_STREAM_ERROR if the source stream state was inconsistent - (such as zalloc being NULL). msg is left unchanged in both source and - destination. -*/ - -extern int ZEXPORT deflateReset OF((z_streamp strm)); -/* - This function is equivalent to deflateEnd followed by deflateInit, - but does not free and reallocate all the internal compression state. - The stream will keep the same compression level and any other attributes - that may have been set by deflateInit2. - - deflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being NULL). -*/ - -extern int ZEXPORT deflateParams OF((z_streamp strm, int level, int strategy)); -/* - Dynamically update the compression level and compression strategy. The - interpretation of level and strategy is as in deflateInit2. This can be - used to switch between compression and straight copy of the input data, or - to switch to a different kind of input data requiring a different - strategy. If the compression level is changed, the input available so far - is compressed with the old level (and may be flushed); the new level will - take effect only at the next call of deflate(). - - Before the call of deflateParams, the stream state must be set as for - a call of deflate(), since the currently available input may have to - be compressed and flushed. In particular, strm->avail_out must be non-zero. - - deflateParams returns Z_OK if success, Z_STREAM_ERROR if the source - stream state was inconsistent or if a parameter was invalid, Z_BUF_ERROR - if strm->avail_out was zero. -*/ - -/* -extern int ZEXPORT inflateInit2 OF((z_streamp strm, - int windowBits)); - - This is another version of inflateInit with an extra parameter. The - fields next_in, avail_in, zalloc, zfree and opaque must be initialized - before by the caller. - - The windowBits parameter is the base two logarithm of the maximum window - size (the size of the history buffer). It should be in the range 8..15 for - this version of the library. The default value is 15 if inflateInit is used - instead. If a compressed stream with a larger window size is given as - input, inflate() will return with the error code Z_DATA_ERROR instead of - trying to allocate a larger window. - - inflateInit2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_STREAM_ERROR if a parameter is invalid (such as a negative - memLevel). msg is set to null if there is no error message. inflateInit2 - does not perform any decompression apart from reading the zlib header if - present: this will be done by inflate(). (So next_in and avail_in may be - modified, but next_out and avail_out are unchanged.) -*/ - -extern int ZEXPORT inflateSetDictionary OF((z_streamp strm, - const Bytef *dictionary, - uInt dictLength)); -/* - Initializes the decompression dictionary from the given uncompressed byte - sequence. This function must be called immediately after a call of inflate - if this call returned Z_NEED_DICT. The dictionary chosen by the compressor - can be determined from the Adler32 value returned by this call of - inflate. The compressor and decompressor must use exactly the same - dictionary (see deflateSetDictionary). - - inflateSetDictionary returns Z_OK if success, Z_STREAM_ERROR if a - parameter is invalid (such as NULL dictionary) or the stream state is - inconsistent, Z_DATA_ERROR if the given dictionary doesn't match the - expected one (incorrect Adler32 value). inflateSetDictionary does not - perform any decompression: this will be done by subsequent calls of - inflate(). -*/ - -extern int ZEXPORT inflateSync OF((z_streamp strm)); -/* - Skips invalid compressed data until a full flush point (see above the - description of deflate with Z_FULL_FLUSH) can be found, or until all - available input is skipped. No output is provided. - - inflateSync returns Z_OK if a full flush point has been found, Z_BUF_ERROR - if no more input was provided, Z_DATA_ERROR if no flush point has been found, - or Z_STREAM_ERROR if the stream structure was inconsistent. In the success - case, the application may save the current current value of total_in which - indicates where valid compressed data was found. In the error case, the - application may repeatedly call inflateSync, providing more input each time, - until success or end of the input data. -*/ - -extern int ZEXPORT inflateReset OF((z_streamp strm)); -/* - This function is equivalent to inflateEnd followed by inflateInit, - but does not free and reallocate all the internal decompression state. - The stream will keep attributes that may have been set by inflateInit2. - - inflateReset returns Z_OK if success, or Z_STREAM_ERROR if the source - stream state was inconsistent (such as zalloc or state being NULL). -*/ - - - /* utility functions */ - -/* - The following utility functions are implemented on top of the - basic stream-oriented functions. To simplify the interface, some - default options are assumed (compression level and memory usage, - standard memory allocation functions). The source code of these - utility functions can easily be modified if you need special options. -*/ - -extern int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Compresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be at least 0.1% larger than - sourceLen plus 12 bytes. Upon exit, destLen is the actual size of the - compressed buffer. - This function can be used to compress a whole file at once if the - input file is mmap'ed. - compress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer. -*/ - -extern int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen, - int level)); -/* - Compresses the source buffer into the destination buffer. The level - parameter has the same meaning as in deflateInit. sourceLen is the byte - length of the source buffer. Upon entry, destLen is the total size of the - destination buffer, which must be at least 0.1% larger than sourceLen plus - 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. - - compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough - memory, Z_BUF_ERROR if there was not enough room in the output buffer, - Z_STREAM_ERROR if the level parameter is invalid. -*/ - -extern int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, - const Bytef *source, uLong sourceLen)); -/* - Decompresses the source buffer into the destination buffer. sourceLen is - the byte length of the source buffer. Upon entry, destLen is the total - size of the destination buffer, which must be large enough to hold the - entire uncompressed data. (The size of the uncompressed data must have - been saved previously by the compressor and transmitted to the decompressor - by some mechanism outside the scope of this compression library.) - Upon exit, destLen is the actual size of the compressed buffer. - This function can be used to decompress a whole file at once if the - input file is mmap'ed. - - uncompress returns Z_OK if success, Z_MEM_ERROR if there was not - enough memory, Z_BUF_ERROR if there was not enough room in the output - buffer, or Z_DATA_ERROR if the input data was corrupted. -*/ - - -typedef voidp gzFile; - -extern gzFile ZEXPORT gzopen OF((const char *path, const char *mode)); -/* - Opens a gzip (.gz) file for reading or writing. The mode parameter - is as in fopen ("rb" or "wb") but can also include a compression level - ("wb9") or a strategy: 'f' for filtered data as in "wb6f", 'h' for - Huffman only compression as in "wb1h". (See the description - of deflateInit2 for more information about the strategy parameter.) - - gzopen can be used to read a file which is not in gzip format; in this - case gzread will directly read from the file without decompression. - - gzopen returns NULL if the file could not be opened or if there was - insufficient memory to allocate the (de)compression state; errno - can be checked to distinguish the two cases (if errno is zero, the - zlib error is Z_MEM_ERROR). */ - -extern gzFile ZEXPORT gzdopen OF((int fd, const char *mode)); -/* - gzdopen() associates a gzFile with the file descriptor fd. File - descriptors are obtained from calls like open, dup, creat, pipe or - fileno (in the file has been previously opened with fopen). - The mode parameter is as in gzopen. - The next call of gzclose on the returned gzFile will also close the - file descriptor fd, just like fclose(fdopen(fd), mode) closes the file - descriptor fd. If you want to keep fd open, use gzdopen(dup(fd), mode). - gzdopen returns NULL if there was insufficient memory to allocate - the (de)compression state. -*/ - -extern int ZEXPORT gzsetparams OF((gzFile file, int level, int strategy)); -/* - Dynamically update the compression level or strategy. See the description - of deflateInit2 for the meaning of these parameters. - gzsetparams returns Z_OK if success, or Z_STREAM_ERROR if the file was not - opened for writing. -*/ - -extern int ZEXPORT gzread OF((gzFile file, voidp buf, unsigned len)); -/* - Reads the given number of uncompressed bytes from the compressed file. - If the input file was not in gzip format, gzread copies the given number - of bytes into the buffer. - gzread returns the number of uncompressed bytes actually read (0 for - end of file, -1 for error). */ - -extern int ZEXPORT gzwrite OF((gzFile file, const voidp buf, unsigned len)); -/* - Writes the given number of uncompressed bytes into the compressed file. - gzwrite returns the number of uncompressed bytes actually written - (0 in case of error). -*/ - -extern int ZEXPORTVA gzprintf OF((gzFile file, const char *format, ...)); -/* - Converts, formats, and writes the args to the compressed file under - control of the format string, as in fprintf. gzprintf returns the number of - uncompressed bytes actually written (0 in case of error). -*/ - -extern int ZEXPORT gzputs OF((gzFile file, const char *s)); -/* - Writes the given null-terminated string to the compressed file, excluding - the terminating null character. - gzputs returns the number of characters written, or -1 in case of error. -*/ - -extern char * ZEXPORT gzgets OF((gzFile file, char *buf, int len)); -/* - Reads bytes from the compressed file until len-1 characters are read, or - a newline character is read and transferred to buf, or an end-of-file - condition is encountered. The string is then terminated with a null - character. - gzgets returns buf, or Z_NULL in case of error. -*/ - -extern int ZEXPORT gzputc OF((gzFile file, int c)); -/* - Writes c, converted to an unsigned char, into the compressed file. - gzputc returns the value that was written, or -1 in case of error. -*/ - -extern int ZEXPORT gzgetc OF((gzFile file)); -/* - Reads one byte from the compressed file. gzgetc returns this byte - or -1 in case of end of file or error. -*/ - -extern int ZEXPORT gzflush OF((gzFile file, int flush)); -/* - Flushes all pending output into the compressed file. The parameter - flush is as in the deflate() function. The return value is the zlib - error number (see function gzerror below). gzflush returns Z_OK if - the flush parameter is Z_FINISH and all output could be flushed. - gzflush should be called only when strictly necessary because it can - degrade compression. -*/ - -extern z_off_t ZEXPORT gzseek OF((gzFile file, z_off_t offset, int whence)); -/* - Sets the starting position for the next gzread or gzwrite on the given - compressed file. The offset represents a number of bytes in the - uncompressed data stream. The whence parameter is defined as in lseek(2); - the value SEEK_END is not supported. - If the file is opened for reading, this function is emulated but can be - extremely slow. If the file is opened for writing, only forward seeks are - supported; gzseek then compresses a sequence of zeroes up to the new - starting position. - - gzseek returns the resulting offset location as measured in bytes from - the beginning of the uncompressed stream, or -1 in case of error, in - particular if the file is opened for writing and the new starting position - would be before the current position. -*/ - -extern int ZEXPORT gzrewind OF((gzFile file)); -/* - Rewinds the given file. This function is supported only for reading. - - gzrewind(file) is equivalent to (int)gzseek(file, 0L, SEEK_SET) -*/ - -extern z_off_t ZEXPORT gztell OF((gzFile file)); -/* - Returns the starting position for the next gzread or gzwrite on the - given compressed file. This position represents a number of bytes in the - uncompressed data stream. - - gztell(file) is equivalent to gzseek(file, 0L, SEEK_CUR) -*/ - -extern int ZEXPORT gzeof OF((gzFile file)); -/* - Returns 1 when EOF has previously been detected reading the given - input stream, otherwise zero. -*/ - -extern int ZEXPORT gzclose OF((gzFile file)); -/* - Flushes all pending output if necessary, closes the compressed file - and deallocates all the (de)compression state. The return value is the zlib - error number (see function gzerror below). -*/ - -extern const char * ZEXPORT gzerror OF((gzFile file, int *errnum)); -/* - Returns the error message for the last error which occurred on the - given compressed file. errnum is set to zlib error number. If an - error occurred in the file system and not in the compression library, - errnum is set to Z_ERRNO and the application may consult errno - to get the exact error code. -*/ - - /* checksum functions */ - -/* - These functions are not related to compression but are exported - anyway because they might be useful in applications using the - compression library. -*/ - -extern uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); - -/* - Update a running Adler-32 checksum with the bytes buf[0..len-1] and - return the updated checksum. If buf is NULL, this function returns - the required initial value for the checksum. - An Adler-32 checksum is almost as reliable as a CRC32 but can be computed - much faster. Usage example: - - uLong adler = adler32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - adler = adler32(adler, buffer, length); - } - if (adler != original_adler) error(); -*/ - -extern uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); -/* - Update a running crc with the bytes buf[0..len-1] and return the updated - crc. If buf is NULL, this function returns the required initial value - for the crc. Pre- and post-conditioning (one's complement) is performed - within this function so it shouldn't be done by the application. - Usage example: - - uLong crc = crc32(0L, Z_NULL, 0); - - while (read_buffer(buffer, length) != EOF) { - crc = crc32(crc, buffer, length); - } - if (crc != original_crc) error(); -*/ - - - /* various hacks, don't look :) */ - -/* deflateInit and inflateInit are macros to allow checking the zlib version - * and the compiler's view of z_stream: - */ -extern int ZEXPORT deflateInit_ OF((z_streamp strm, int level, - const char *version, int stream_size)); -extern int ZEXPORT inflateInit_ OF((z_streamp strm, - const char *version, int stream_size)); -extern int ZEXPORT deflateInit2_ OF((z_streamp strm, int level, int method, - int windowBits, int memLevel, - int strategy, const char *version, - int stream_size)); -extern int ZEXPORT inflateInit2_ OF((z_streamp strm, int windowBits, - const char *version, int stream_size)); -#define deflateInit(strm, level) \ - deflateInit_((strm), (level), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit(strm) \ - inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream)) -#define deflateInit2(strm, level, method, windowBits, memLevel, strategy) \ - deflateInit2_((strm),(level),(method),(windowBits),(memLevel),\ - (strategy), ZLIB_VERSION, sizeof(z_stream)) -#define inflateInit2(strm, windowBits) \ - inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream)) - - -#if !defined(_Z_UTIL_H) && !defined(NO_DUMMY_DECL) - struct internal_state {int dummy;}; /* hack for buggy compilers */ -#endif - -extern const char * ZEXPORT zError OF((int err)); -extern int ZEXPORT inflateSyncPoint OF((z_streamp z)); -extern const uLongf * ZEXPORT get_crc_table OF((void)); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZLIB_H */ diff --git a/src/zlib/zutil.c b/src/zlib/zutil.c deleted file mode 100644 index 199762bdbe..0000000000 --- a/src/zlib/zutil.c +++ /dev/null @@ -1,225 +0,0 @@ -/* zutil.c -- target dependent utility functions for the compression library - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* @(#) $Id$ */ - -#include "zutil.h" - -struct internal_state {int dummy;}; /* for buggy compilers */ - -#ifndef STDC -extern void exit OF((int)); -#endif - -const char *z_errmsg[10] = { -"need dictionary", /* Z_NEED_DICT 2 */ -"stream end", /* Z_STREAM_END 1 */ -"", /* Z_OK 0 */ -"file error", /* Z_ERRNO (-1) */ -"stream error", /* Z_STREAM_ERROR (-2) */ -"data error", /* Z_DATA_ERROR (-3) */ -"insufficient memory", /* Z_MEM_ERROR (-4) */ -"buffer error", /* Z_BUF_ERROR (-5) */ -"incompatible version",/* Z_VERSION_ERROR (-6) */ -""}; - - -const char * ZEXPORT zlibVersion() -{ - return ZLIB_VERSION; -} - -#ifdef __WXDEBUG__ - -# ifndef verbose -# define verbose 0 -# endif -int z_verbose = verbose; - -void z_error (m) - char *m; -{ - fprintf(stderr, "%s\n", m); - exit(1); -} -#endif - -/* exported to allow conversion of error code to string for compress() and - * uncompress() - */ -const char * ZEXPORT zError(err) - int err; -{ - return ERR_MSG(err); -} - - -#ifndef HAVE_MEMCPY - -void zmemcpy(dest, source, len) - Bytef* dest; - Bytef* source; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = *source++; /* ??? to be unrolled */ - } while (--len != 0); -} - -int zmemcmp(s1, s2, len) - Bytef* s1; - Bytef* s2; - uInt len; -{ - uInt j; - - for (j = 0; j < len; j++) { - if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1; - } - return 0; -} - -void zmemzero(dest, len) - Bytef* dest; - uInt len; -{ - if (len == 0) return; - do { - *dest++ = 0; /* ??? to be unrolled */ - } while (--len != 0); -} -#endif - -#ifdef __TURBOC__ -#if (defined( __BORLANDC__) || !defined(SMALL_MEDIUM)) && !defined(__32BIT__) -/* Small and medium model in Turbo C are for now limited to near allocation - * with reduced MAX_WBITS and MAX_MEM_LEVEL - */ -# define MY_ZCALLOC - -/* Turbo C malloc() does not allow dynamic allocation of 64K bytes - * and farmalloc(64K) returns a pointer with an offset of 8, so we - * must fix the pointer. Warning: the pointer must be put back to its - * original form in order to free it, use zcfree(). - */ - -#define MAX_PTR 10 -/* 10*64K = 640K */ - -local int next_ptr = 0; - -typedef struct ptr_table_s { - voidpf org_ptr; - voidpf new_ptr; -} ptr_table; - -local ptr_table table[MAX_PTR]; -/* This table is used to remember the original form of pointers - * to large buffers (64K). Such pointers are normalized with a zero offset. - * Since MSDOS is not a preemptive multitasking OS, this table is not - * protected from concurrent access. This hack doesn't work anyway on - * a protected system like OS/2. Use Microsoft C instead. - */ - -voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) -{ - voidpf buf = opaque; /* just to make some compilers happy */ - ulg bsize = (ulg)items*size; - - /* If we allocate less than 65520 bytes, we assume that farmalloc - * will return a usable pointer which doesn't have to be normalized. - */ - if (bsize < 65520L) { - buf = farmalloc(bsize); - if (*(ush*)&buf != 0) return buf; - } else { - buf = farmalloc(bsize + 16L); - } - if (buf == NULL || next_ptr >= MAX_PTR) return NULL; - table[next_ptr].org_ptr = buf; - - /* Normalize the pointer to seg:0 */ - *((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4; - *(ush*)&buf = 0; - table[next_ptr++].new_ptr = buf; - return buf; -} - -void zcfree (voidpf opaque, voidpf ptr) -{ - int n; - if (*(ush*)&ptr != 0) { /* object < 64K */ - farfree(ptr); - return; - } - /* Find the original pointer */ - for (n = 0; n < next_ptr; n++) { - if (ptr != table[n].new_ptr) continue; - - farfree(table[n].org_ptr); - while (++n < next_ptr) { - table[n-1] = table[n]; - } - next_ptr--; - return; - } - ptr = opaque; /* just to make some compilers happy */ - Assert(0, "zcfree: ptr not found"); -} -#endif -#endif /* __TURBOC__ */ - - -#if defined(M_I86) && !defined(__32BIT__) -/* Microsoft C in 16-bit mode */ - -# define MY_ZCALLOC - -#if (!defined(_MSC_VER) || (_MSC_VER < 600)) -# define _halloc halloc -# define _hfree hfree -#endif - -voidpf zcalloc (voidpf opaque, unsigned items, unsigned size) -{ - if (opaque) opaque = 0; /* to make compiler happy */ - return _halloc((long)items, size); -} - -void zcfree (voidpf opaque, voidpf ptr) -{ - if (opaque) opaque = 0; /* to make compiler happy */ - _hfree(ptr); -} - -#endif /* MSC */ - - -#ifndef MY_ZCALLOC /* Any system without a special alloc function */ - -#ifndef STDC -extern voidp calloc OF((uInt items, uInt size)); -extern void free OF((voidpf ptr)); -#endif - -voidpf zcalloc (opaque, items, size) - voidpf opaque; - unsigned items; - unsigned size; -{ - if (opaque) items += size - size; /* make compiler happy */ - return (voidpf)calloc(items, size); -} - -void zcfree (opaque, ptr) - voidpf opaque; - voidpf ptr; -{ - free(ptr); - if (opaque) return; /* make compiler happy */ -} - -#endif /* MY_ZCALLOC */ diff --git a/src/zlib/zutil.h b/src/zlib/zutil.h deleted file mode 100644 index 3a390ff989..0000000000 --- a/src/zlib/zutil.h +++ /dev/null @@ -1,221 +0,0 @@ -/* zutil.h -- internal interface and configuration of the compression library - * Copyright (C) 1995-1998 Jean-loup Gailly. - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -/* WARNING: this file should *not* be used by applications. It is - part of the implementation of the compression library and is - subject to change. Applications should only use zlib.h. - */ - -/* @(#) $Id$ */ - -#ifndef _Z_UTIL_H -#define _Z_UTIL_H - -#include "../zlib/zlib.h" - -#ifdef STDC -# include -# include -# include -#endif -#ifdef NO_ERRNO_H - extern int errno; -#else -# include -#endif - -#ifndef local -# define local static -#endif -/* compile with -Dlocal if your debugger can't find static symbols */ - -typedef unsigned char uch; -typedef uch FAR uchf; -typedef unsigned short ush; -typedef ush FAR ushf; -typedef unsigned long ulg; - -extern const char *z_errmsg[10]; /* indexed by 2-zlib_error */ -/* (size given to avoid silly warnings with Visual C++) */ - -#define ERR_MSG(err) z_errmsg[Z_NEED_DICT-(err)] - -#define ERR_RETURN(strm,err) \ - return (strm->msg = (char*)ERR_MSG(err), (err)) -/* To be used only when the state is known to be valid */ - - /* common constants */ - -#ifndef DEF_WBITS -# define DEF_WBITS MAX_WBITS -#endif -/* default windowBits for decompression. MAX_WBITS is for compression only */ - -#if MAX_MEM_LEVEL >= 8 -# define DEF_MEM_LEVEL 8 -#else -# define DEF_MEM_LEVEL MAX_MEM_LEVEL -#endif -/* default memLevel */ - -#define STORED_BLOCK 0 -#define STATIC_TREES 1 -#define DYN_TREES 2 -/* The three kinds of block type */ - -#define MIN_MATCH 3 -#define MAX_MATCH 258 -/* The minimum and maximum match lengths */ - -#define PRESET_DICT 0x20 /* preset dictionary flag in zlib header */ - - /* target dependencies */ - -#ifdef MSDOS -# define OS_CODE 0x00 -# ifdef __TURBOC__ -# if(__STDC__ == 1) && (defined(__LARGE__) || defined(__COMPACT__)) - /* Allow compilation with ANSI keywords only enabled */ - void _Cdecl farfree( void *block ); - void *_Cdecl farmalloc( unsigned long nbytes ); -# else -# include -# endif -# else /* MSC or DJGPP */ -# include -# endif -#endif - -#ifdef OS2 -# define OS_CODE 0x06 -#endif - -#ifdef WIN32 /* Window 95 & Windows NT */ -# define OS_CODE 0x0b -#endif - -#if defined(VAXC) || defined(VMS) -# define OS_CODE 0x02 -# define F_OPEN(name, mode) \ - fopen((name), (mode), "mbc=60", "ctx=stm", "rfm=fix", "mrs=512") -#endif - -#ifdef AMIGA -# define OS_CODE 0x01 -#endif - -#if defined(ATARI) || defined(atarist) -# define OS_CODE 0x05 -#endif - -#if defined(MACOS) || defined(TARGET_OS_MAC) -# define OS_CODE 0x07 -# ifndef fdopen -# define fdopen(fd,mode) NULL /* No fdopen() */ -# endif -#endif -#if defined(__MWERKS__) && !defined(fdopen) -# if __dest_os != __be_os && __dest_os != __win32_os -# define fdopen(fd,mode) NULL -# endif -#endif - -#ifdef __50SERIES /* Prime/PRIMOS */ -# define OS_CODE 0x0F -#endif - -#ifdef TOPS20 -# define OS_CODE 0x0a -#endif - -#if defined(_BEOS_) || defined(RISCOS) -# define fdopen(fd,mode) NULL /* No fdopen() */ -#endif - -#if (defined(_MSC_VER) && (_MSC_VER >= 600)) -# define fdopen(fd,type) _fdopen(fd,type) -#endif - - - /* Common defaults */ - -#ifndef OS_CODE -# define OS_CODE 0x03 /* assume Unix */ -#endif - -#ifndef F_OPEN -# define F_OPEN(name, mode) fopen((name), (mode)) -#endif - - /* functions */ - -#ifdef HAVE_STRERROR - extern char *strerror OF((int)); -# define zstrerror(errnum) strerror(errnum) -#else -# define zstrerror(errnum) "" -#endif - -#if defined(pyr) -# define NO_MEMCPY -#endif -#if defined(SMALL_MEDIUM) && !defined(_MSC_VER) && !defined(__SC__) - /* Use our own functions for small and medium model with MSC <= 5.0. - * You may have to use the same strategy for Borland C (untested). - * The __SC__ check is for Symantec. - */ -# define NO_MEMCPY -#endif -#if defined(STDC) && !defined(HAVE_MEMCPY) && !defined(NO_MEMCPY) -# define HAVE_MEMCPY -#endif -#ifdef HAVE_MEMCPY -# ifdef SMALL_MEDIUM /* MSDOS small or medium model */ -# define zmemcpy _fmemcpy -# define zmemcmp _fmemcmp -# define zmemzero(dest, len) _fmemset(dest, 0, len) -# else -# define zmemcpy memcpy -# define zmemcmp memcmp -# define zmemzero(dest, len) memset(dest, 0, len) -# endif -#else - extern void zmemcpy OF((Bytef* dest, Bytef* source, uInt len)); - extern int zmemcmp OF((Bytef* s1, Bytef* s2, uInt len)); - extern void zmemzero OF((Bytef* dest, uInt len)); -#endif - -/* Diagnostic functions */ -#ifdef __WXDEBUG__ -# include - extern int z_verbose; - extern void z_error OF((char *m)); -# define Assert(cond,msg) {if(!(cond)) z_error(msg);} -# define Trace(x) {if (z_verbose>=0) fprintf x ;} -# define Tracev(x) {if (z_verbose>0) fprintf x ;} -# define Tracevv(x) {if (z_verbose>1) fprintf x ;} -# define Tracec(c,x) {if (z_verbose>0 && (c)) fprintf x ;} -# define Tracecv(c,x) {if (z_verbose>1 && (c)) fprintf x ;} -#else -# define Assert(cond,msg) -# define Trace(x) -# define Tracev(x) -# define Tracevv(x) -# define Tracec(c,x) -# define Tracecv(c,x) -#endif - - -typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf, - uInt len)); -voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); -void zcfree OF((voidpf opaque, voidpf ptr)); - -#define ZALLOC(strm, items, size) \ - (*((strm)->zalloc))((strm)->opaque, (items), (size)) -#define ZFREE(strm, addr) (*((strm)->zfree))((strm)->opaque, (voidpf)(addr)) -#define TRY_FREE(s, p) {if (p) ZFREE(s, p);} - -#endif /* _Z_UTIL_H */ diff --git a/tests/lltest.cpp b/tests/lltest.cpp deleted file mode 100644 index 421a363810..0000000000 --- a/tests/lltest.cpp +++ /dev/null @@ -1,645 +0,0 @@ -#include "wx/wxprec.h" - -#include "wx/longlong.h" - -#include -#include -#if defined(__MWERKS__) && macintosh -#include -#include -#endif - -static const unsigned wxLongLong_t NumberOfTests = 100000l; - -//using namespace std; -int oddbits(unsigned int number); - -int oddbits(unsigned int number) -{ - int sum = 0; - while(number > 0) - { - sum += number & 1; - number >>= 1; - } - - return sum & 1; -} -void random(long& hi, unsigned long& lo); - -void random(long& hi, unsigned long& lo) -{ - hi = 0; - lo = 0; - - for (int i = 0; i < 32; i++) - { - hi |= oddbits(rand()) << i; - lo |= oddbits(rand()) << i; - } -} - -int shifttest(); - -int shifttest() -{ - cout << endl << "Starting shift tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongWx l1c(hi, lo); - wxLongLongWx l1b; - wxLongLongNative l2a(hi, lo); - wxLongLongNative l2c(hi, lo); - wxLongLongNative l2b; - - int shift = rand() % 64; - int leftshift = oddbits(rand()); - - if (leftshift) - { - l1b = l1a << shift; - l2b = l2a << shift; - l1c <<= shift; - l2c <<= shift; - } - else - { - l1b = l1a >> shift; - l2b = l2a >> shift; - l1c >>= shift; - l2c >>= shift; - } - - void *oneb = l1b.asArray(); - void *twob = l2b.asArray(); - void *onec = l1c.asArray(); - void *twoc = l2c.asArray(); - - if ((memcmp(oneb, twob, 8) != 0) || (memcmp(onec, twoc, 8) != 0) || (memcmp(oneb, onec, 8) != 0)) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - if (leftshift) - cout << "<< "; - else - cout << ">> "; - cout << shift << endl; - cout << l1b << endl; - cout << l2b << endl; - cout << l1c << endl; - cout << l2c << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -int add1test(); - -int add1test() -{ - cout << endl << "Starting first addition tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1d(hi, lo); - wxLongLongNative l2d(hi, lo); - random(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - wxLongLongWx l1c; - wxLongLongNative l2c; - - l1c = l1a + l1b; - l2c = l2a + l2b; - l1d += l1b; - l2d += l2b; - - void *onec = l1c.asArray(); - void *twoc = l2c.asArray(); - void *oned = l1d.asArray(); - void *twod = l2d.asArray(); - - if ((memcmp(onec, twoc, 8) != 0) || (memcmp(oned, twod, 8) != 0) || (memcmp(onec, oned, 8) != 0)) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - cout << l1c << endl; - cout << l2c << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -/* -int add2test(); - -int add2test() -{ - cout << endl << "Starting second addition tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1c(hi, lo); - wxLongLongNative l2c(hi, lo); - random(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - - l1b += l1a; - l2b += l2a; - - void *one = l1b.asArray(); - void *two = l2b.asArray(); - - if (memcmp(one, two, 8) != 0) - { - cout << endl << "After " << counter << " successful trials: " << endl; - cout << l1c << endl; - cout << l2c << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - return 0; - } - counter++; - } - - cout << endl << counter << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} -*/ - -int sub1test(); - -int sub1test() -{ - cout << endl << "Starting first subtraction tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1d(hi, lo); - wxLongLongNative l2d(hi, lo); - random(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - wxLongLongWx l1c; - wxLongLongNative l2c; - - l1c = l1a - l1b; - l2c = l2a - l2b; - l1d -= l1b; - l2d -= l2b; - - void *onec = l1c.asArray(); - void *twoc = l2c.asArray(); - void *oned = l1d.asArray(); - void *twod = l2d.asArray(); - - if ((memcmp(onec, twoc, 8) != 0) || (memcmp(oned, twod, 8) != 0) || (memcmp(onec, oned, 8) != 0)) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - cout << l1c << endl; - cout << l2c << endl; - cout << l1d << endl; - cout << l2d << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -/* -int sub2test(); - -int sub2test() -{ - cout << endl << "Starting second subtraction tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1c(hi, lo); - wxLongLongNative l2c(hi, lo); - random(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - - l1b -= l1a; - l2b -= l2a; - - void *one = l1b.asArray(); - void *two = l2b.asArray(); - - if (memcmp(one, two, 8) != 0) - { - cout << endl << "After " << counter << " successful trials: " << endl; - cout << l1c << endl; - cout << l2c << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - return 0; - } - counter++; - } - - cout << endl << counter << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -*/ - -int incdectest(); - -int incdectest() -{ - cout << endl << "Starting pre/post increment/decrement tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - - int increment = oddbits(rand()); - int pre = oddbits(rand()); - - if (increment) - if (pre) - { - ++l1b; - ++l2b; - } - else - { - l1b++; - l2b++; - } - else - if (pre) - { - --l1b; - --l2b; - } - else - { - l1b--; - l2b--; - } - - void *one = l1b.asArray(); - void *two = l2b.asArray(); - - if (memcmp(one, two, 8) != 0) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << (pre ? "pre" : "post") << (increment ? "increment" : "decrement") << endl; - cout << l1b << endl; - cout << l2b << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -int negationtest(); - -int negationtest() -{ - cout << endl << "Starting negation tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1b(-l1a); - wxLongLongNative l2b(-l2a); - - void *one = l1b.asArray(); - void *two = l2b.asArray(); - - if (memcmp(one, two, 8) != 0) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -int multiplicationtest(); - -int multiplicationtest() -{ - cout << endl << "Starting multiplication tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1d(hi, lo); - wxLongLongNative l2d(hi, lo); - random(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - - wxLongLongWx l1c(l1a * l1b); - wxLongLongNative l2c(l2a * l2b); - - l1d *= l1b; - l2d *= l2b; - - void *onec = l1c.asArray(); - void *twoc = l2c.asArray(); - void *oned = l1c.asArray(); - void *twod = l2c.asArray(); - - if ((memcmp(onec, twoc, 8) != 0) || (memcmp(oned, twod, 8) != 0) || (memcmp(onec, oned, 8) != 0)) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - cout << l1c << endl; - cout << l2c << endl; - cout << l1d << endl; - cout << l2d << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -int bitwisetest(); - -int bitwisetest() -{ - cout << endl << "Starting bitwise tests." << endl; - - long hi = 0; - unsigned long lo = 0; - - unsigned wxLongLong_t counter = 0; - - while (counter < NumberOfTests) - { - if ((counter % 1000) == 999) - { - cerr << "+"; -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - } - - random(hi, lo); - wxLongLongWx l1a(hi, lo); - wxLongLongNative l2a(hi, lo); - wxLongLongWx l1d(hi, lo); - wxLongLongNative l2d(hi, lo); - random(hi, lo); - wxLongLongWx l1b(hi, lo); - wxLongLongNative l2b(hi, lo); - - wxLongLongWx l1c(l1a * l1b); - wxLongLongNative l2c(l2a * l2b); - - l1d *= l1b; - l2d *= l2b; - - void *onec = l1c.asArray(); - void *twoc = l2c.asArray(); - void *oned = l1c.asArray(); - void *twod = l2c.asArray(); - - if ((memcmp(onec, twoc, 8) != 0) || (memcmp(oned, twod, 8) != 0) || (memcmp(onec, oned, 8) != 0)) - { - cout << endl << "After " << wxLongLongNative(counter) << " successful trials: " << endl; - cout << l1a << endl; - cout << l2a << endl; - cout << l1b << endl; - cout << l2b << endl; - cout << l1c << endl; - cout << l2c << endl; - cout << l1d << endl; - cout << l2d << endl; - return 0; - } - counter++; - } - - cout << endl << wxLongLongNative(counter) << " successful trial" << (counter == 1 ? "." : "s.") << endl; - - return 1; -} - -int main() -{ -#if defined(__MWERKS__) && macintosh - SIOUXSettings.asktosaveonclose = 0; - SIOUXSettings.showstatusline = 1; - SIOUXSettings.autocloseonquit = 0; -#endif - - cout << "Starting tests." << endl; - -#if defined(__MWERKS__) && macintosh - GetNextEvent(0, NULL); -#endif - - srand(time(NULL)); - - if (!multiplicationtest()) - return 1; - - if (!shifttest()) - return 1; - - if (!add1test()) - return 1; - -// if (!add2test()) -// return 1; - - if (!sub1test()) - return 1; - -// if (!sub2test()) -// return 1; - - if (!incdectest()) - return 1; - - if (!negationtest()) - return 1; - - cout << endl << "The tests are finished." << endl; - - return 0; -} diff --git a/user/wxConvert/.cvsignore b/user/wxConvert/.cvsignore deleted file mode 100644 index 4daa84b813..0000000000 --- a/user/wxConvert/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Linux -linux-gnu diff --git a/user/wxConvert/wxConvert.cpp b/user/wxConvert/wxConvert.cpp deleted file mode 100644 index 49e8a4f9d9..0000000000 --- a/user/wxConvert/wxConvert.cpp +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Program: wxConvert - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - * - * You may not use this program without clapping twice at every - * full hour. - * - */ - -#ifdef __GNUG__ -#pragma implementation "wxConvert.h" -#endif - -#include "wxConvert.h" -#include "wx/textfile.h" - -//----------------------------------------------------------------------------- -// main program -//----------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -const ID_QUIT = 100; -const ID_2UNIX = 101; -const ID_2DOS = 102; -const ID_2MAC = 103; - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - -BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_BUTTON (ID_QUIT, MyFrame::OnCommand) - EVT_BUTTON (ID_2UNIX, MyFrame::OnCommand) - EVT_BUTTON (ID_2DOS, MyFrame::OnCommand) - EVT_BUTTON (ID_2MAC, MyFrame::OnCommand) -END_EVENT_TABLE() - -MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, (char *) "wxConvert", wxPoint(20,20), wxSize(400,160) ) -{ - CreateStatusBar( 1 ); - - SetStatusText( "wxConvert v0.1 by Robert Roebling." ); - - char buf[500]; - wxGetWorkingDirectory( buf, 500 ); - wxString s( "Dir: " ); - s += buf; - - m_text = new wxStaticText( this, -1, s, wxPoint(10,50), wxSize(380,-1) ); - - (void*)new wxButton( this, ID_QUIT, "Quit", wxPoint(10,100), wxSize(60,25) ); - - (void*)new wxButton( this, ID_2UNIX, "To Unix", wxPoint(180,100), wxSize(60,25) ); - - (void*)new wxButton( this, ID_2DOS, "To Dos", wxPoint(250,100), wxSize(60,25) ); - - (void*)new wxButton( this, ID_2MAC, "To Mac", wxPoint(320,100), wxSize(60,25) ); -}; - -void MyFrame::OnCommand( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_QUIT: - Close( TRUE ); - break; - case ID_2UNIX: - case ID_2DOS: - case ID_2MAC: - char buf[500]; - wxGetWorkingDirectory( buf, 500 ); - wxString s( buf ); - Recurse( event.GetId(), s ); - break; - }; -}; - -void MyFrame::Convert( int id, const wxString &fname ) -{ - wxTextFile text(fname ); - text.Open(); - return; - - switch (id) - { - case ID_2UNIX: - text.Write( wxTextFile::Type_Unix ); - break; - case ID_2DOS: - text.Write( wxTextFile::Type_Dos ); - break; - case ID_2MAC: - text.Write( wxTextFile::Type_Mac ); - break; - }; - -}; - -void MyFrame::Recurse( int id, const wxString &curdir ) -{ - wxArrayString paths; - wxString search,path; - - search = curdir; - search += "/*"; - - path = wxFindFirstFile( search, wxDIR ); - while (!path.IsNull()) - { - paths.Add( path ); // ref counting in action ! - path = wxFindNextFile(); - }; - - - search = curdir; - search += "/*.cpp"; - - path = wxFindFirstFile( search, wxFILE ); - while (!path.IsNull()) - { - m_text->SetLabel( path ); - wxYield(); - Convert( id, path ); - path = wxFindNextFile(); - }; - - for (int i = 0; i < paths.Count(); i++) - { - search = paths[i]; - Recurse( id, search ); - }; -}; - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -MyApp::MyApp(void) : - wxApp( ) -{ -}; - -bool MyApp::OnInit(void) -{ - wxFrame *frame = new MyFrame(); - frame->Show( TRUE ); - - return TRUE; -}; - - - - - diff --git a/user/wxConvert/wxConvert.h b/user/wxConvert/wxConvert.h deleted file mode 100644 index a6de4a46ac..0000000000 --- a/user/wxConvert/wxConvert.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Program: wxConvert - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __WXCONVERTH__ -#define __WXCONVERTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/wx.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class MyFrame; -class MyApp; - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -class MyFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(MyFrame) - - public: - - MyFrame(void); - void OnCommand( wxCommandEvent &event ); - void Recurse( int id, const wxString &curdir ); - void Convert( int id, const wxString &fname ); - - wxStaticText *m_text; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -class MyApp: public wxApp -{ - public: - - MyApp(void); - virtual bool OnInit(void); -}; - -#endif // __WXCONVERTH__ diff --git a/user/wxFile/.cvsignore b/user/wxFile/.cvsignore deleted file mode 100644 index 4daa84b813..0000000000 --- a/user/wxFile/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Linux -linux-gnu diff --git a/user/wxFile/FMJobs.cpp b/user/wxFile/FMJobs.cpp deleted file mode 100644 index 14dd804ad6..0000000000 --- a/user/wxFile/FMJobs.cpp +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Program: FMJobs.cpp - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifdef __GNUG__ -#pragma implementation "FMJobs.h" -#endif - -#include "FMJobs.h" -#include "wx/utils.h" -#include "wx/filefn.h" -#include "wx/msgdlg.h" - -//----------------------------------------------------------------------------- -// wxCopyStatusDia -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxCopyStatusDia,wxDialog); - -const ID_CANCEL_COPY = 1000; - -BEGIN_EVENT_TABLE(wxCopyStatusDia,wxDialog) - EVT_BUTTON (ID_CANCEL_COPY, wxCopyStatusDia::OnCommand) -END_EVENT_TABLE() - -wxCopyStatusDia::wxCopyStatusDia( wxFrame *parent, const wxString &dest, wxArrayString *files ) : - wxDialog( parent, -1, "FileMaker copy job control", wxPoint(180,180), wxSize(500,200) ) -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - - m_dest = dest; - m_files = files; - m_stop = FALSE; - - (void)new wxStaticText( this, -1, "Copying files", wxPoint(10,10) ); - (void)new wxStaticText( this, -1, "from:", wxPoint(30,40) ); - m_sourceMsg = new wxStaticText( this, -1, "", wxPoint(80,40), wxSize(200,-1) ); - (void)new wxStaticText( this, -1, " to:", wxPoint(30,70) ); - m_destMsg = new wxStaticText( this, -1, "", wxPoint(80,70), wxSize(200,-1) ); - (void)new wxStaticText( this, -1, " Kb copied:", wxPoint(30,100) ); - m_statusMsg = new wxStaticText( this, -1, "0", wxPoint(120,100), wxSize(100,-1) ); - - m_cancelButton = new wxButton( this, ID_CANCEL_COPY, "Return", wxPoint(w-130,h-50), wxSize(85,30) ); - - Centre( wxVERTICAL | wxHORIZONTAL ); - - m_timer = new wxCopyTimer( this ); - m_timer->Start( 300, TRUE ); - - Show( TRUE ); -}; - -wxCopyStatusDia::~wxCopyStatusDia() -{ - delete m_timer; -}; - -void wxCopyStatusDia::OnCommand( wxCommandEvent &WXUNUSED(event) ) -{ - if (m_stop) EndModal(wxID_CANCEL); - m_stop = TRUE; -}; - -void wxCopyStatusDia::DoCopy(void) -{ - wxYield(); - - if (!wxDirExists(m_dest)) - { - wxMessageBox( "Target is not a directory or it doesn`t exist. Can`t copy.", "FileMaker" ); - return; - }; - - for (uint i = 0; i < m_files->Count(); i++) - { - wxString src = (*m_files)[i]; - if (wxDirExists( src )) - CopyDir( src, m_dest ); - else - CopyFile( src, m_dest ); - if (m_stop) return; - }; - m_stop = TRUE; -}; - -void wxCopyStatusDia::CopyDir( wxString &srcDir, wxString &destDir ) -{ - wxString src = srcDir; - wxString dest = destDir; - dest += "/"; - dest += wxFileNameFromPath( src ); - if (!wxMkdir( dest )) - { - wxMessageBox( "Could not create target directory.", "FileMaker" ); - return; - }; - - wxArrayString list; - src += "/*"; - char *f = wxFindFirstFile( src, wxDIR ); - while (f) - { - list.Add( f ); - f = wxFindNextFile(); - }; - - for (uint i = 0; i < list.Count(); i++) - { - wxString filename = list[i]; - if (wxDirExists( filename )) - CopyDir( filename, dest ); - else - CopyFile( filename, dest ); - if (m_stop) return; - }; -}; - -void wxCopyStatusDia::CopyFile( wxString &src, wxString &destDir ) -{ - m_sourceMsg->SetLabel( src ); - wxString dest = destDir; - dest += "/"; - dest += wxFileNameFromPath( src ); - m_destMsg->SetLabel( dest ); - - wxYield(); - - if (wxFileExists(dest)) - { - wxString s = "Target file "; - s += dest; - s += " exists already. Overwrite?"; - int ret = wxMessageBox( s, "FileMaker", wxYES_NO ); - if (ret == wxNO) return; - }; - - FILE *fs = (FILE *) NULL, *fd = (FILE *) NULL; - if (!(fs = fopen(src, "rb"))) - { - wxString s = "Cannot open source file "; - s += src; - s += "."; - wxMessageBox( s, "FileMaker" ); - return; - } - else - if (!(fd = fopen(dest, "wb"))) - { - fclose(fs); - wxString s = "Cannot open target file "; - s += dest; - s += "."; - wxMessageBox( s, "FileMaker" ); - return; - }; - int ch; - long kcounter = 0; - while (!m_stop) - { - int counter = 0; - while ((ch = getc( fs )) != EOF) - { - putc( ch, fd ); - counter++; - if (counter == 1000) break; - }; - kcounter++; - m_statusMsg->SetLabel( IntToString( kcounter) ); - wxYield(); - if (ch == EOF) break; - }; - fclose( fs ); - fclose( fd ); -}; - - -//----------------------------------------------------------------------------- -// wxDeleteStatusDia -//----------------------------------------------------------------------------- - -/* - -IMPLEMENT_DYNAMIC_CLASS(wxDeleteStatusDia,wxDialogBox); - -wxDeleteStatusDia::wxDeleteStatusDia( wxFrame *parent, wxStringList *files ) : - wxDialogBox( parent, "FileMaker delete job control", TRUE, - 180, 180, 500, 200, wxCAPTION | wxTRANSIENT ) -{ - int w = 0; - int h = 0; - GetSize( &w, &h ); - - m_files = files; - m_stop = FALSE; - m_countFiles = 0; - m_countDirs = 0; - - wxFont *myFont = wxTheFontList->FindOrCreateFont( 12, wxROMAN, wxNORMAL, wxNORMAL ); - SetLabelFont( myFont ); - SetButtonFont( myFont ); - - wxStaticText *msg = new wxStaticText( this, "Deleting file or directory:", 10, 10 ); - m_targetMsg = new wxStaticText( this, "", 80, 40, 300 ); - msg = new wxStaticText( this, " Directories deleted:", 10, 80 ); - m_dirsMsg = new wxStaticText( this, "0", 120, 80, 80 ); - msg = new wxStaticText( this, " Files deleted:", 10, 110 ); - m_filesMsg = new wxStaticText( this, "0", 120, 110, 100 ); - - m_cancelButton = new wxButton( this, NULL, "Return", w-130, h-50, 85, 30 ); - - Centre( wxVERTICAL | wxHORIZONTAL ); - - m_timer = new wxDeleteTimer( this ); - m_timer->Start( 300, TRUE ); - - Show( TRUE ); -}; - -wxDeleteStatusDia::~wxDeleteStatusDia() -{ - delete m_timer; -}; - -void wxDeleteStatusDia::OnCommand( wxWindow &win, wxCommandEvent &WXUNUSED(event) ) -{ - if (&win == m_cancelButton) - { - if (m_stop) Show( FALSE ); - m_stop = TRUE; - return; - }; -}; - -void wxDeleteStatusDia::DoDelete(void) -{ - while (wxTheApp->Pending()) wxTheApp->Dispatch(); - wxNode *node = m_files->First(); - while (node) - { - char *target = (char*)node->Data(); - if (wxDirExists( target )) - DeleteDir( target ); - else - DeleteFile( target ); - if (m_stop) return; - node = node->Next(); - }; - m_stop = TRUE; -}; - -void wxDeleteStatusDia::DeleteDir( char *target ) -{ - wxString s = target; - s += "// *"; - wxStringList list; - char *f = wxFindFirstFile( s ); - while (f) - { - list.Add( f ); - f = wxFindNextFile(); - }; - wxNode *node = list.First(); - while (node) - { - f = (char*)node->Data(); - if (wxDirExists( f )) - DeleteDir( f ); - else - DeleteFile( f ); - if (m_stop) return; - node = node->Next(); - }; - if (!wxRmdir( target )) - { - s = "Could not remove directory "; - s += target; - s += "."; - wxMessageBox( s, "FileMaker" ); - return; - } - else - { - m_countDirs++; - m_dirsMsg->SetLabel( wxIntToString( m_countDirs) ); - }; -}; - -void wxDeleteStatusDia::DeleteFile( char *target ) -{ - m_targetMsg->SetLabel( target ); - while (wxTheApp->Pending()) wxTheApp->Dispatch(); - if (!wxRemoveFile( target )) - { - wxString s = "Could not delete file "; - s += target; - s += "."; - wxMessageBox( s, "FileMaker" ); - } - else - { - m_countFiles++; - m_filesMsg->SetLabel( wxIntToString( m_countFiles) ); - }; -}; - -*/ diff --git a/user/wxFile/FMJobs.h b/user/wxFile/FMJobs.h deleted file mode 100644 index 7d62e1539b..0000000000 --- a/user/wxFile/FMJobs.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * File: FMJobs.h - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef FMJobs_h -#define FMJobs_h - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/defs.h" -#include "wx/dialog.h" -#include "wx/frame.h" -#include "wx/button.h" -#include "wx/stattext.h" -#include "wx/timer.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class wxCopyStatusDia; -class wxDeleteStatusDia; -class wxCopyTimer; -class wxDeleteTimer; - -//----------------------------------------------------------------------------- -// wxCopyStatusDia -//----------------------------------------------------------------------------- - -class wxCopyStatusDia: public wxDialog -{ - DECLARE_DYNAMIC_CLASS( wxCopyStatusDia ); - - private: - - wxString m_dest; - wxArrayString *m_files; - wxButton *m_cancelButton; - wxStaticText *m_sourceMsg; - wxStaticText *m_destMsg; - wxStaticText *m_statusMsg; - bool m_stop; - wxTimer *m_timer; - - public: - - wxCopyStatusDia(void) : wxDialog() {}; - wxCopyStatusDia( wxFrame *parent, const wxString &dest, wxArrayString *files ); - ~wxCopyStatusDia(); - void OnCommand( wxCommandEvent &event ); - void DoCopy(void); - - private: - void CopyDir( wxString &srcDir, wxString &destDir ); - void CopyFile( wxString &src, wxString &destDir ); - - DECLARE_EVENT_TABLE(); -}; - -//----------------------------------------------------------------------------- -// wxDeleteStatusDia -//----------------------------------------------------------------------------- - -/* -class wxDeleteStatusDia: public wxDialog -{ - DECLARE_DYNAMIC_CLASS( wxDeleteStatusDia ); - - private: - - wxArrayString *m_files; - wxButton *m_cancelButton; - wxStaticText *m_targetMsg; - wxStaticText *m_filesMsg,*m_dirsMsg; - bool m_stop; - wxTimer *m_timer; - int m_countFiles,m_countDirs; - - public: - - wxDeleteStatusDia(void) : wxDialog() {}; - wxDeleteStatusDia( wxFrame *parent, wxArrayString *files ); - ~wxDeleteStatusDia(); - void OnCommand( wxCommandEvent &event ); - void DoDelete(void); - - private: - void DeleteDir( wxString &target ); - void DeleteFile( wxString &target ); - - DECLARE_EVENT_TABLE(); -}; -*/ - -//----------------------------------------------------------------------------- -// wxTimer -//----------------------------------------------------------------------------- - -class wxCopyTimer: public wxTimer -{ - private: - wxCopyStatusDia *m_owner; - - public: - wxCopyTimer( wxCopyStatusDia *owner ) { m_owner = owner; }; - void Notify() { m_owner->DoCopy(); }; -}; - -/* -class wxDeleteTimer: public wxTimer -{ - private: - wxDeleteStatusDia *m_owner; - - public: - wxDeleteTimer( wxDeleteStatusDia *owner ) { m_owner = owner; }; - void Notify() { m_owner->DoDelete(); }; -}; -*/ - -#endif // FMJobs_h - - diff --git a/user/wxFile/commanderview.xpm b/user/wxFile/commanderview.xpm deleted file mode 100644 index 1ed8d8d47d..0000000000 --- a/user/wxFile/commanderview.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char * commanderview_xpm[] = { -"22 22 3 1", -" c None", -". c #000000000000", -"X c #FFFFFFFFFFFF", -" ", -" ", -" ", -" ", -" ", -" ................. ", -" .XXXXXXX.XXXXXXX. ", -" .XX...XX.XX...XX. ", -" .XXXXXXX.XXXXXXX. ", -" .XX...XX.XX..XXX. ", -" .XXXXXXX.XXXXXXX. ", -" .XX..XXX.XX...XX. ", -" .XXXXXXX.XXXXXXX. ", -" .XX...XX.XX...XX. ", -" .XXXXXXX.XXXXXXX. ", -" .XX...XX.XX...XX. ", -" .XXXXXXX.XXXXXXX. ", -" ................. ", -" ", -" ", -" ", -" "}; - - - diff --git a/user/wxFile/delete.xpm b/user/wxFile/delete.xpm deleted file mode 100644 index 41d24d2778..0000000000 --- a/user/wxFile/delete.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char * delete_xpm[] = { -"22 22 6 1", -" s None c None", -". c black", -"X c red2", -"o c white", -"O c #DEF6DEF6DEF6", -"+ c grey70", -" ", -" ", -" ", -" ........ ", -" XXX .ooooooO. ", -" XXXXOoooooOo. X ", -" XXXOoooo Oo. XX ", -" .XXXOoo ...XX ", -" .+XXXOo OOXX ", -" .O++XXXOXXX. ", -" .ooO+XXXXX+. ", -" .oooOXXXX+o. ", -" .ooXXXX+XXo. ", -" .XXXX++OXXO. ", -" XXXX++Ooo+XX. ", -" XXXX++OooooO+XX ", -" XXX .OoooooooOXX ", -" .ooooooooo+XX ", -" ...........XX ", -" X ", -" ", -" "}; diff --git a/user/wxFile/dirctrl.cpp b/user/wxFile/dirctrl.cpp deleted file mode 100644 index 16ad375642..0000000000 --- a/user/wxFile/dirctrl.cpp +++ /dev/null @@ -1,211 +0,0 @@ -/* - * Author: Robert Roebling - * - * Copyright: (C) 1997,1998 Robert Roebling - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the wxWindows Licence, which - * you have received with this library (see Licence.htm). - * - */ - -#ifdef __GNUG__ -#pragma implementation "dirctrl.h" -#endif - -#include "dirctrl.h" -#include "wx/gdicmn.h" -#include "wx/utils.h" -#include "wx/dnd.h" - -//----------------------------------------------------------------------------- -// wxDirInfo -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxDirInfo,wxObject) - -wxDirInfo::wxDirInfo( const wxString &path ) -{ - m_showHidden = FALSE; - m_path = path; - if (m_path == "/") m_name ="The Computer"; - else - if (m_path == "/home") - { - m_name = "My Home"; - m_path = ""; - wxGetHomeDir( &m_path ); - } - else - if (m_path == "/proc") m_name = "Info Filesystem"; - else - if (m_path == "/mnt") m_name = "Mounted Devices"; - else - if (m_path == "/usr/X11R6") m_name = "User X11"; - else - if (m_path == "/usr") m_name = "User"; - else - if (m_path == "/var") m_name = "Variables"; - else - if (m_path == "/usr/local") m_name = "User local"; - else - if (m_path == "/mnt") m_name = "Mounted Devices"; - else - m_name = wxFileNameFromPath( m_path ); -}; - -wxString wxDirInfo::GetName(void) const -{ - return m_name; -}; - -wxString wxDirInfo::GetPath(void) const -{ - return m_path; -}; - -//----------------------------------------------------------------------------- -// wxDirCtrl -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxDirCtrl,wxTreeCtrl) - -BEGIN_EVENT_TABLE(wxDirCtrl,wxTreeCtrl) - EVT_TREE_ITEM_EXPANDED (-1, wxDirCtrl::OnExpandItem) - EVT_TREE_ITEM_COLLAPSED (-1, wxDirCtrl::OnCollapseItem) - EVT_TREE_DELETE_ITEM (-1, wxDirCtrl::OnDeleteItem) -END_EVENT_TABLE() - -wxDirCtrl::wxDirCtrl(void) -{ - m_showHidden = FALSE; -}; - -wxDirCtrl::wxDirCtrl(wxWindow *parent, const wxWindowID id, const wxString &WXUNUSED(dir), - const wxPoint& pos, const wxSize& size, - const long style, const wxString& name ) - : - wxTreeCtrl( parent, id, pos, size, style, name ) -{ - m_showHidden = FALSE; - - wxTreeItem item; - item.m_mask = wxTREE_MASK_TEXT | wxTREE_MASK_CHILDREN | wxTREE_MASK_DATA; - item.m_text = "Sections"; - item.m_children = 1; - m_rootId = InsertItem( 0, item ); - -// SetDropTarget( new wxFileDropTarget() ); -}; - -void wxDirCtrl::OnExpandItem( const wxTreeEvent &event ) -{ - if (event.m_item.m_itemId == m_rootId) - { - - wxTreeItem item; - item.m_mask = wxTREE_MASK_TEXT | wxTREE_MASK_CHILDREN | wxTREE_MASK_DATA; - item.m_children = 1; - - wxDirInfo *info = new wxDirInfo( "/" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/home" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/mnt" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/usr" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/usr/X11R6" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/usr/local" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/var" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - info = new wxDirInfo( "/proc" ); - item.m_text = info->GetName(); - item.m_data = (long)info; - InsertItem( m_rootId, item ); - - return; - }; - - wxDirInfo *info = (wxDirInfo *)event.m_item.m_data; - if (!info) return; - - wxArrayString slist; - wxString search,path,filename; - - search = info->GetPath(); - search += "/*"; - - path = wxFindFirstFile( search, wxDIR ); - while (!path.IsNull()) - { - filename = wxFileNameFromPath( path ); - if (m_showHidden || (filename[0] != '.')) - { - if ((filename != ".") && - (filename != "..") && - (path != "/home") && - (path != "/usr/X11R6") && - (path != "/usr/local") && - (path != "/usr") && - (path != "/var") && - (path != "/home") && - (path != "/proc") && - (path != "/mnt") - ) - - slist.Add( path ); // ref counting in action ! - }; - path = wxFindNextFile(); - }; - - for (uint i = 0; i < slist.Count(); i++) - { - search = slist[i]; - search += "/*"; - path = wxFindFirstFile( search, wxDIR ); - - wxDirInfo *child = new wxDirInfo( slist[i] ); - wxTreeItem item; - item.m_mask = wxTREE_MASK_TEXT | wxTREE_MASK_CHILDREN | wxTREE_MASK_DATA; - item.m_text = child->GetName(); - item.m_children = 0; - if (!path.IsNull()) item.m_children = 1; - item.m_data = (long)child; - InsertItem( event.m_item.m_itemId, item ); - }; -}; - -void wxDirCtrl::OnCollapseItem( const wxTreeEvent &event ) -{ - DeleteChildren( event.m_item.m_itemId ); -}; - -void wxDirCtrl::OnDeleteItem( const wxTreeEvent &event ) -{ - wxDirInfo *info = (wxDirInfo *)event.m_item.m_data; - if (info) delete info; -}; diff --git a/user/wxFile/dirctrl.h b/user/wxFile/dirctrl.h deleted file mode 100644 index d3ff13c9aa..0000000000 --- a/user/wxFile/dirctrl.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * File: DirCtrl.h - * Purpose: dir tree control - * Author: Robert Roebling - * Created: 1997 - * Updated: - * Copyright: - */ - -#ifndef __DIRCTRLH__ -#define __DIRCTRLH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/treectrl.h" - -//----------------------------------------------------------------------------- -// classes -//----------------------------------------------------------------------------- - -class wxDirInfo; -class wxDirCtrl; - -//----------------------------------------------------------------------------- -// wxDirInfo -//----------------------------------------------------------------------------- - -class wxDirInfo: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxDirInfo) - - public: - - wxString m_name; - wxString m_path; - bool m_showHidden; - - - wxDirInfo() {}; - wxDirInfo( const wxString &path ); - wxString GetName(void) const; - wxString GetPath(void) const; -}; - -//----------------------------------------------------------------------------- -// wxDirCtrl -//----------------------------------------------------------------------------- - -class wxDirCtrl: public wxTreeCtrl -{ - DECLARE_DYNAMIC_CLASS(wxDirCtrl) - - public: - - bool m_showHidden; - int m_dragX,m_dragY; - long m_rootId; - - wxDirCtrl(void); - wxDirCtrl(wxWindow *parent, const wxWindowID id = -1, const wxString &dir = "/", - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - const long style = wxTR_HAS_BUTTONS, - const wxString& name = "wxTreeCtrl" ); - void OnExpandItem( const wxTreeEvent &event ); - void OnCollapseItem( const wxTreeEvent &event ); - void OnDeleteItem( const wxTreeEvent &event ); - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/user/wxFile/exit.xpm b/user/wxFile/exit.xpm deleted file mode 100644 index eecc0d3000..0000000000 --- a/user/wxFile/exit.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -static char * exit_xpm[] = { -"22 22 4 1", -" c None", -". c #000000000000", -"X c #820782078207", -"o c #FFFFFFFFFFFF", -" ", -" ", -" ", -" ", -" ", -" . ", -" ..X .o.X ", -" ..X .ooo.X ", -" .o..oo ..XX ", -" .oo .XXXX ", -" .o .XXX ", -" .o .XX ", -" .o.X.o.X ", -" .o.XX .o.X ", -" .o.XX ..X ", -" ..XX ..X ", -" .XX .X ", -" XX XX ", -" ", -" ", -" ", -" "}; diff --git a/user/wxFile/filectrl.cpp b/user/wxFile/filectrl.cpp deleted file mode 100644 index 5fb6510d10..0000000000 --- a/user/wxFile/filectrl.cpp +++ /dev/null @@ -1,544 +0,0 @@ -/* - * Author: Robert Roebling - * - * Copyright: (C) 1997,1998 Robert Roebling - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the wxWindows Licence, which - * you have received with this library (see Licence.htm). - * - */ - - -#ifdef __GNUG__ -#pragma implementation "filectrl.h" -#endif - -#include "filectrl.h" - -#include "wx/dnd.h" - -#include "sys/types.h" -#include "sys/stat.h" -#include "dirent.h" -#include "pwd.h" -#include "grp.h" -#include "time.h" - -#include "folder.xpm" -#include "txt.xpm" -#include "list.xpm" -#include "find.xpm" - -//----------------------------------------------------------------------------- -// wxFileData -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxFileData,wxObject); - -wxFileData::wxFileData( const wxString &name, const wxString &fname ) -{ - m_name = name; - m_fileName = fname; - - struct stat buff; - stat( m_fileName.GetData(), &buff ); - struct stat lbuff; - lstat( m_fileName.GetData(), &lbuff ); - - struct tm *t = localtime( &lbuff.st_mtime ); -// struct passwd *user = getpwuid( buff.st_uid ); -// struct group *grp = getgrgid( buff.st_gid ); - - m_isDir = S_ISDIR( buff.st_mode ); - m_isLink = S_ISLNK( lbuff.st_mode ); - m_isExe = ((buff.st_mode & S_IXUSR ) == S_IXUSR ); - - m_size = buff.st_size; - - m_hour = t->tm_hour; - m_minute = t->tm_min; - m_month = t->tm_mon+1; - m_day = t->tm_mday; - m_year = t->tm_year; - - m_permissions.sprintf( "%c%c%c", - ((( buff.st_mode & S_IRUSR ) == S_IRUSR ) ? 'r' : '-'), - ((( buff.st_mode & S_IWUSR ) == S_IWUSR ) ? 'w' : '-'), - ((( buff.st_mode & S_IXUSR ) == S_IXUSR ) ? 'x' : '-') ); -}; - -wxString wxFileData::GetName(void) const -{ - return m_name; -}; - -wxString wxFileData::GetFullName(void) const -{ - return m_fileName; -}; - -wxString wxFileData::GetHint(void) const -{ - wxString s = m_fileName; - s += " "; - if (m_isDir) s += "

yt c #62626d6d4d4d", -",yt c #63636c6c4d4d", -"uy c #616164645353", -",uy c #616166665050", -"iu c #65656a6a5454", -",iu c #666669695454", -"pi c #69696c6c5b5b", -",pi c #69696e6e5858", -"ap c #676777774a4a", -",ap c #646474744f4f", -"sa c #6a6a76764e4e", -",sa c #6b6b76764e4e", -"ds c #676770705151", -",ds c #666671715353", -"fd c #6e6e71715454", -",fd c #6e6e73735555", -"gf c #6b6b7a7a5353", -",gf c #696979795454", -"hg c #6e6e7f7f5b5b", -",hg c #6f6f7f7f5b5b", -"jh c #707072725a5a", -",jh c #707074745959", -"kj c #77777d7d5151", -",kj c #76767d7d5353", -"lk c #74747e7e5959", -",lk c #74747e7e5b5b", -"zl c #65656d6d6262", -",zl c #66666c6c6060", -"xz c #6d6d71716262", -",xz c #6e6e71716060", -"cx c #717173736868", -",cx c #717171716f6f", -"vc c #72727d7d6f6f", -",vc c #767679796868", -"bv c #76767f7f7a7a", -",bv c #787879797171", -"nb c #7b7b80804a4a", -",nb c #7b7b83834a4a", -"mn c #747481815555", -",mn c #757580805555", -"Mm c #747486865c5c", -",Mm c #757586865c5c", -"NM c #787883835858", -",NM c #787883835959", -"BN c #7b7b8d8d5353", -",BN c #7a7a8e8e5151", -"VB c #7d7d8e8e5858", -",VB c #7c7c8e8e5a5a", -"CV c #777780806f6f", -",CV c #777783836d6d", -"ZC c #7e7e82826969", -",ZC c #7e7e82826b6b", -"AZ c #7e7e89896969", -",AZ c #7f7f8a8a6868", -"SA c #7f7f89897171", -",SA c #7f7f88887373", -"DS c #81818b8b5656", -",DS c #81818b8b5757", -"FD c #86868d8d5959", -",FD c #87878e8e5858", -"GF c #818195955656", -",GF c #818196965555", -"HG c #878791915c5c", -",HG c #868690905e5e", -"JH c #898992925959", -",JH c #888893935b5b", -"KJ c #8c8c9b9b5656", -",KJ c #8c8c9c9c5353", -"LK c #909095955252", -",LK c #909096965656", -"PL c #81818b8b6666", -",PL c #828288886464", -"IP c #82828d8d6f6f", -",IP c #83838e8e6c6c", -"UI c #82828a8a7d7d", -",UI c #82828a8a7f7f", -"YU c #868697976060", -",YU c #868697976161", -"TY c #878799996767", -",TY c #84849c9c6262", -"RT c #898991916868", -",RT c #888890906b6b", -"ER c #8b8b9d9d6161", -",ER c #8a8a9c9c6262", -"WE c #89899d9d6868", -",WE c #8a8a9c9c6868", -"QW c #898997977676", -",QW c #8a8a95957777", -"!Q c #909097976b6b", -",!Q c #939396966b6b", -"~! c #93939a9a6e6e", -",~! c #90909e9e6969", -"<~! c #90909f9f6868", -"1~! c #91919e9e6868", -"2~! c #91919e9e6969", -"3~! c #91919f9f6a6a", -"4~! c #93939d9d6868", -"5~! c #93939d9d6969", -"6~! c #93939d9d6b6b", -"7~! c #92929f9f6969", -"8~! c #90909c9c6c6c", -"9~! c #91919d9d6d6d", -"0~! c #90909c9c6e6e", -"q~! c #91919f9f6c6c", -"w~! c #91919f9f6e6e", -"e~! c #93939c9c6d6d", -"r~! c #92929e9e6c6c", -"t~! c #93939f9f6d6d", -"y~! c #94949b9b6868", -"u~! c #96969a9a6868", -"i~! c #95959b9b6f6f", -"p~! c #97979a9a6d6d", -"a~! c #94949c9c6969", -"s~! c #95959c9c6969", -"d~! c #95959d9d6a6a", -"f~! c #94949e9e6969", -"g~! c #94949e9e6a6a", -"h~! c #95959f9f6a6a", -"j~! c #95959f9f6b6b", -"k~! c #96969d9d6969", -"l~! c #96969d9d6a6a", -"z~! c #96969e9e6b6b", -"x~! c #96969f9f6a6a", -"c~! c #97979e9e6b6b", -"v~! c #95959d9d6e6e", -"b~! c #94949e9e6c6c", -"n~! c #95959f9f6d6d", -"m~! c #96969c9c6c6c", -"M~! c #96969e9e6f6f", -"N~! c #97979f9f6e6e", -"B~! c #98989d9d6363", -"V~! c #98989e9e6060", -"C~! c #9a9a9e9e6161", -"Z~! c #99999e9e6464", -"A~! c #99999e9e6666", -"S~! c #9a9a9f9f6565", -"D~! c #9a9a9f9f6767", -"F~! c #98989b9b6c6c", -"G~! c #9b9b9d9d6b6b", -"H~! c #9a9a9f9f6969", -"J~! c #9e9e9d9d6f6f", -"K~! c #909096967070", -"L~! c #919197977171", -"P~! c #909096967272", -"I~! c #909095957777", -"U~! c #919197977575", -"Y~! c #919196967676", -"T~! c #929297977777", -"R~! c #959597977272", -"E~! c #909094947979", -"W~! c #919196967878", -"Q~! c #929297977979", -"!~! c #90909b9b7070", -"~~~ c #90909b9b7171", -"^~~ c #90909b9b7373", -"/~~ c #929299997070", -"(~~ c #929298987272", -")~~ c #939399997373", -"_~~ c #92929b9b7070", -"`~~ c #93939a9a7171", -"'~~ c #92929a9a7373", -"]~~ c #919198987676", -"[~~ c #90909a9a7575", -"{~~ c #91919b9b7676", -"}~~ c #93939b9b7474", -"|~~ c #91919c9c7171", -" ^~ c #91919c9c7272", -".^~ c #91919e9e7272", -"X^~ c #93939c9c7171", -"o^~ c #92929d9d7272", -"O^~ c #92929d9d7373", -"+^~ c #92929e9e7070", -"@^~ c #92929f9f7171", -"#^~ c #93939f9f7171", -"$^~ c #93939e9e7373", -"%^~ c #91919c9c7474", -"&^~ c #91919d9d7575", -"*^~ c #90909f9f7676", -"=^~ c #92929d9d7575", -"-^~ c #93939e9e7474", -";^~ c #92929e9e7676", -":^~ c #93939e9e7676", -">^~ c #94949b9b7272", -",^~ c #979799997272", -"<^~ c #94949a9a7474", -"1^~ c #95959b9b7575", -"2^~ c #97979b9b7676", -"3^~ c #95959c9c7070", -"4^~ c #94949d9d7272", -"5^~ c #95959c9c7272", -"6^~ c #95959e9e7373", -"7^~ c #97979d9d7171", -"8^~ c #96969d9d7373", -"9^~ c #96969f9f7070", -"0^~ c #97979f9f7070", -"q^~ c #96969f9f7272", -"w^~ c #97979e9e7272", -"e^~ c #94949f9f7474", -"r^~ c #94949f9f7575", -"t^~ c #96969d9d7474", -"y^~ c #97979d9d7777", -"u^~ c #96969f9f7474", -"i^~ c #97979e9e7474", -"p^~ c #97979e9e7575", -"a^~ c #96969e9e7777", -"s^~ c #90909a9a7878", -"d^~ c #90909b9b7979", -"f^~ c #91919b9b7878", -"g^~ c #91919b9b7979", -"h^~ c #90909b9b7b7b", -"j^~ c #909099997c7c", -"k^~ c #91919d9d7979", -"l^~ c #91919f9f7b7b", -"z^~ c #92929c9c7979", -"x^~ c #93939d9d7878", -"c^~ c #92929c9c7a7a", -"v^~ c #93939d9d7b7b", -"b^~ c #92929e9e7878", -"n^~ c #93939f9f7b7b", -"m^~ c #949499997b7b", -"M^~ c #95959b9b7979", -"N^~ c #949498987f7f", -"B^~ c #94949b9b7c7c", -"V^~ c #94949e9e7b7b", -"C^~ c #94949f9f7d7d", -"Z^~ c #95959f9f7c7c", -"A^~ c #95959f9f7d7d", -"S^~ c #9b9b9e9e7373", -"D^~ c #98989f9f7575", -"F^~ c #9d9d9c9c7070", -"G^~ c #9e9e9c9c7373", -"H^~ c #9c9c9e9e7676", -"J^~ c #9d9d9f9f7777", -"K^~ c #98989e9e7878", -"L^~ c #98989e9e7a7a", -"P^~ c #98989e9e7c7c", -"I^~ c #8989a0a05050", -"U^~ c #8989a0a05252", -"Y^~ c #8a8aa1a15151", -"T^~ c #8a8aa0a05757", -"R^~ c #8d8da0a05151", -"E^~ c #8e8ea1a15050", -"W^~ c #8e8ea1a15252", -"Q^~ c #8f8fa2a25151", -"!^~ c #8f8fa2a25353", -"~^~ c #8c8ca3a35555", -"^^^ c #8c8ca2a25757", -"/^^ c #8e8ea3a35656", -"(^^ c #8d8da4a45454", -")^^ c #8d8da4a45656", -"_^^ c #8e8ea5a55555", -"`^^ c #8e8ea5a55757", -"'^^ c #8f8fa6a65454", -"]^^ c #8a8aa0a05858", -"[^^ c #8b8ba1a15858", -"{^^ c #8b8ba1a15959", -"}^^ c #8b8ba0a05b5b", -"|^^ c #8b8ba0a05d5d", -" /^ c #8b8ba0a05f5f", -"./^ c #8c8ca0a05959", -"X/^ c #8d8da1a15959", -"o/^ c #8c8ca0a05b5b", -"O/^ c #8d8da1a15a5a", -"+/^ c #8d8da3a35858", -"@/^ c #8c8ca2a25a5a", -"#/^ c #8d8da3a35a5a", -"$/^ c #8d8da3a35b5b", -"%/^ c #8f8fa0a05959", -"&/^ c #8f8fa0a05a5a", -"*/^ c #8e8ea2a25b5b", -"=/^ c #8c8ca1a15c5c", -"-/^ c #8d8da1a15c5c", -";/^ c #8c8ca1a15e5e", -":/^ c #8d8da0a05e5e", -">/^ c #8d8da2a25d5d", -",/^ c #8d8da2a25f5f", -"(/ c #9292a8a85f5f", -",(/ c #9393a9a95e5e", -"<(/ c #9393aaaa5c5c", -"1(/ c #9494abab5b5b", -"2(/ c #9797a8a85a5a", -"3(/ c #9797aaaa5b5b", -"4(/ c #9494a9a95e5e", -"5(/ c #9494abab5d5d", -"6(/ c #9595aaaa5d5d", -"7(/ c #9494aaaa5f5f", -"8(/ c #9595aaaa5f5f", -"9(/ c #9696a8a85e5e", -"0(/ c #9797a9a95f5f", -"q(/ c #9595acac5a5a", -"w(/ c #9595acac5c5c", -"e(/ c #9595acac5e5e", -"r(/ c #9696adad5d5d", -"t(/ c #9696adad5f5f", -"y(/ c #9797aeae5c5c", -"u(/ c #9797aeae5e5e", -"i(/ c #9b9ba4a45151", -"p(/ c #9a9aa0a05a5a", -"a(/ c #9898a3a35e5e", -"s(/ c #9898a4a45858", -"d(/ c #9999a5a55959", -"f(/ c #9898a4a45a5a", -"g(/ c #9a9aa4a45b5b", -"h(/ c #9898a4a45c5c", -"j(/ c #9898a5a55f5f", -"k(/ c #9999a4a45f5f", -"l(/ c #9999a6a65e5e", -"z(/ c #9b9ba5a55e5e", -"x(/ c #9b9ba7a75d5d", -"c(/ c #9c9ca3a35f5f", -"v(/ c #9d9da2a25f5f", -"b(/ c #9f9fa7a75c5c", -"n(/ c #9f9fa7a75e5e", -"m(/ c #9d9da9a95757", -"M(/ c #9898a9a95959", -"N(/ c #9898abab5a5a", -"B(/ c #9a9aabab5b5b", -"V(/ c #9898a8a85d5d", -"C(/ c #9898a8a85f5f", -"Z(/ c #9999a9a95e5e", -"A(/ c #9999aaaa5c5c", -"S(/ c #9898aaaa5e5e", -"D(/ c #9999abab5f5f", -"F(/ c #9a9aacac5a5a", -"G(/ c #9b9badad5b5b", -"H(/ c #9999acac5d5d", -"J(/ c #9898adad5e5e", -"K(/ c #9898aeae5c5c", -"L(/ c #9898afaf5d5d", -"P(/ c #9898afaf5f5f", -"I(/ c #9b9bacac5c5c", -"U(/ c #9b9bacac5e5e", -"Y(/ c #9b9baeae5f5f", -"T(/ c #9d9da9a95d5d", -"R(/ c #9c9ca8a85e5e", -"E(/ c #9c9caaaa5d5d", -"W(/ c #9c9caaaa5f5f", -"Q(/ c #9c9cadad5f5f", -"!(/ c #9c9caeae5c5c", -"~(/ c #9c9cafaf5d5d", -"^(/ c #9e9eacac5f5f", -"/(/ c #9e9eafaf5f5f", -"((( c #9797b0b05454", -")(( c #9999b2b25454", -"_(( c #9999b1b15959", -"`(( c #9898b0b05a5a", -"'(( c #9999b0b05e5e", -"](( c #9a9ab1b15f5f", -"[(( c #9a9ab2b25c5c", -"{(( c #9f9fb1b15f5f", -"}(( c #9d9db6b65858", -"|(( c #9c9cb4b45e5e", -" )( c #9d9db5b55f5f", -".)( c #9f9fb8b85d5d", -"X)( c #8585a0a06d6d", -"o)( c #8686a1a16c6c", -"O)( c #8888a1a16767", -"+)( c #8b8ba3a36767", -"@)( c #8c8ca0a06161", -"#)( c #8c8ca1a16060", -"$)( c #8c8ca0a06363", -"%)( c #8d8da1a16262", -"&)( c #8d8da2a26161", -"*)( c #8e8ea1a16161", -"=)( c #8f8fa1a16363", -"-)( c #8e8ea3a36060", -";)( c #8f8fa2a26060", -":)( c #8e8ea2a26363", -">)( c #8e8ea3a36262", -",)( c #8f8fa2a26262", -"<)( c #8c8ca0a06565", -"1)( c #8d8da1a16464", -"2)( c #8d8da1a16666", -"3)( c #8e8ea0a06464", -"4)( c #8f8fa1a16565", -"5)( c #8e8ea0a06666", -"6)( c #8f8fa1a16767", -"7)( c #8e8ea2a26565", -"8)( c #8f8fa3a36464", -"9)( c #8e8ea2a26767", -"0)( c #8f8fa3a36666", -"q)( c #8f8fa4a46161", -"w)( c #8f8fa4a46363", -"e)( c #8888a1a16a6a", -"r)( c #8989a0a06a6a", -"t)( c #8989a2a26868", -"y)( c #8989a2a26969", -"u)( c #8a8aa1a16969", -"i)( c #8a8aa2a26868", -"p)( c #8a8aa3a36a6a", -"a)( c #8888a0a06c6c", -"s)( c #8888a0a06e6e", -"d)( c #8b8ba2a26c6c", -"f)( c #8a8aa2a26e6e", -"g)( c #8b8ba5a56868", -"h)( c #8a8aa5a56e6e", -"j)( c #8d8da0a06868", -"k)( c #8d8da0a06969", -"l)( c #8d8da2a26a6a", -"z)( c #8e8ea1a16969", -"x)( c #8f8fa0a06969", -"c)( c #8e8ea1a16a6a", -"v)( c #8f8fa3a36868", -"b)( c #8e8ea3a36a6a", -"n)( c #8e8ea3a36b6b", -"m)( c #8f8fa2a26a6a", -"M)( c #8f8fa2a26b6b", -"N)( c #8e8ea0a06c6c", -"B)( c #8f8fa0a06c6c", -"V)( c #8f8fa1a16d6d", -"C)( c #8e8ea0a06e6e", -"Z)( c #8f8fa1a16f6f", -"A)( c #8e8ea2a26d6d", -"S)( c #8e8ea2a26f6f", -"D)( c #8c8ca5a56b6b", -"F)( c #8d8da5a56b6b", -"G)( c #8f8fa7a76b6b", -"H)( c #8c8ca5a56c6c", -"J)( c #8d8da6a66c6c", -"K)( c #8d8da6a66d6d", -"L)( c #8e8ea6a66c6c", -"P)( c #8f8fa7a76d6d", -"I)( c #8e8ea7a76e6e", -"U)( c #8c8ca8a86e6e", -"Y)( c #8e8eaaaa6f6f", -"T)( c #8a8aa2a27070", -"R)( c #8b8ba6a67373", -"E)( c #8d8da0a07272", -"W)( c #8d8da3a37272", -"Q)( c #8f8fa1a17171", -"!)( c #8f8fa0a07373", -"~)( c #8f8fa0a07474", -"^)( c #8d8da4a47070", -"/)( c #8c8ca4a47272", -"()( c #8888a1a17a7a", -"))) c #8b8ba1a17a7a", -"_)) c #8e8ea0a07878", -"`)) c #8d8da3a37c7c", -"')) c #8c8ca6a67f7f", -"])) c #8e8ea9a97474", -"[)) c #9090a0a06161", -"{)) c #9191a1a16060", -"})) c #9090a0a06262", -"|)) c #9191a1a16262", -" _) c #9191a1a16363", -"._) c #9090a3a36161", -"X_) c #9090a3a36363", -"o_) c #9292a1a16060", -"O_) c #9292a0a06262", -"+_) c #9292a0a06363", -"@_) c #9393a1a16363", -"#_) c #9292a2a26161", -"$_) c #9393a2a26161", -"%_) c #9292a2a26363", -"&_) c #9393a3a36262", -"*_) c #9191a0a06565", -"=_) c #9191a0a06767", -"-_) c #9090a2a26464", -";_) c #9090a2a26666", -":_) c #9191a3a36767", -">_) c #9292a0a06565", -",_) c #9292a1a16666", -"<_) c #9393a1a16666", -"1_) c #9292a2a26464", -"2_) c #9393a3a36464", -"3_) c #9393a3a36565", -"4_) c #9393a2a26767", -"5_) c #9090a5a56060", -"6_) c #9191a5a56060", -"7_) c #9090a5a56262", -"8_) c #9191a6a66161", -"9_) c #9191a6a66363", -"0_) c #9393a4a46060", -"q_) c #9292a5a56363", -"w_) c #9292a6a66161", -"e_) c #9393a7a76060", -"r_) c #9292a7a76262", -"t_) c #9393a7a76262", -"y_) c #9090a4a46565", -"u_) c #9090a5a56464", -"i_) c #9191a4a46464", -"p_) c #9090a4a46767", -"a_) c #9191a5a56666", -"s_) c #9191a6a66565", -"d_) c #9292a5a56565", -"f_) c #9292a4a46666", -"g_) c #9292a7a76464", -"h_) c #9393a6a66464", -"j_) c #9292a6a66767", -"k_) c #9292a7a76666", -"l_) c #9393a6a66666", -"z_) c #9595a1a16161", -"x_) c #9494a0a06262", -"c_) c #9494a3a36060", -"v_) c #9494a3a36262", -"b_) c #9797a0a06161", -"n_) c #9696a0a06363", -"m_) c #9797a1a16262", -"M_) c #9797a3a36161", -"N_) c #9696a2a26262", -"B_) c #9797a3a36363", -"V_) c #9595a0a06666", -"C_) c #9494a2a26767", -"Z_) c #9595a3a36666", -"A_) c #9696a0a06464", -"S_) c #9696a1a16565", -"D_) c #9797a1a16565", -"F_) c #9797a0a06767", -"G_) c #9797a3a36565", -"H_) c #9797a2a26666", -"J_) c #9494a5a56161", -"K_) c #9595a4a46161", -"L_) c #9494a4a46363", -"P_) c #9595a4a46363", -"I_) c #9595a6a66060", -"U_) c #9595a6a66262", -"Y_) c #9696a5a56060", -"T_) c #9696a5a56262", -"R_) c #9696a7a76060", -"E_) c #9696a7a76161", -"W_) c #9797a6a66161", -"Q_) c #9797a7a76060", -"!_) c #9696a7a76363", -"~_) c #9797a6a66363", -"^_) c #9494a4a46565", -"/_) c #9595a5a56464", -"(_) c #9494a4a46666", -")_) c #9595a5a56666", -"___ c #9595a5a56767", -"`__ c #9494a7a76565", -"'__ c #9494a7a76767", -"]__ c #9696a5a56464", -"[__ c #9696a4a46767", -"{__ c #9797a5a56767", -"}__ c #9696a6a66565", -"|__ c #9797a6a66565", -" `_ c #9696a6a66767", -".`_ c #9797a7a76666", -"X`_ c #9191a0a06969", -"o`_ c #9090a1a16a6a", -"O`_ c #9090a1a16b6b", -"+`_ c #9090a2a26868", -"@`_ c #9191a3a36969", -"#`_ c #9090a3a36b6b", -"$`_ c #9191a2a26b6b", -"%`_ c #9292a1a16868", -"&`_ c #9393a0a06868", -"*`_ c #9292a0a06b6b", -"=`_ c #9292a1a16a6a", -"-`_ c #9393a0a06a6a", -";`_ c #9393a0a06b6b", -":`_ c #9393a2a26969", -">`_ c #9393a2a26b6b", -",`_ c #9090a1a16d6d", -"<`_ c #9090a3a36c6c", -"1`_ c #9191a2a26c6c", -"2`_ c #9090a2a26e6e", -"3`_ c #9191a3a36f6f", -"4`_ c #9292a0a06d6d", -"5`_ c #9393a1a16c6c", -"6`_ c #9393a1a16e6e", -"7`_ c #9292a3a36c6c", -"8`_ c #9292a3a36d6d", -"9`_ c #9090a4a46969", -"0`_ c #9191a5a56868", -"q`_ c #9191a5a56a6a", -"w`_ c #9292a4a46868", -"e`_ c #9393a5a56969", -"r`_ c #9292a4a46a6a", -"t`_ c #9393a5a56b6b", -"y`_ c #9292a6a66969", -"u`_ c #9393a7a76868", -"i`_ c #9292a6a66b6b", -"p`_ c #9393a7a76a6a", -"a`_ c #9191a4a46c6c", -"s`_ c #9191a4a46d6d", -"d`_ c #9090a4a46f6f", -"f`_ c #9191a6a66e6e", -"g`_ c #9292a5a56d6d", -"h`_ c #9393a4a46d6d", -"j`_ c #9292a5a56e6e", -"k`_ c #9393a4a46e6e", -"l`_ c #9393a7a76c6c", -"z`_ c #9292a7a76f6f", -"x`_ c #9393a6a66e6e", -"c`_ c #9393a6a66f6f", -"v`_ c #9494a1a16969", -"b`_ c #9595a0a06868", -"n`_ c #9494a1a16b6b", -"m`_ c #9494a3a36868", -"M`_ c #9595a3a36868", -"N`_ c #9494a3a36a6a", -"B`_ c #9595a2a26a6a", -"V`_ c #9696a1a16969", -"C`_ c #9797a0a06969", -"Z`_ c #9696a0a06b6b", -"A`_ c #9797a2a26868", -"S`_ c #9696a3a36b6b", -"D`_ c #9797a2a26a6a", -"F`_ c #9494a1a16c6c", -"G`_ c #9494a0a06e6e", -"H`_ c #9595a1a16f6f", -"J`_ c #9494a2a26d6d", -"K`_ c #9494a3a36c6c", -"L`_ c #9595a2a26c6c", -"P`_ c #9595a2a26d6d", -"I`_ c #9494a2a26f6f", -"U`_ c #9595a3a36e6e", -"Y`_ c #9696a0a06c6c", -"T`_ c #9797a1a16d6d", -"R`_ c #9797a1a16f6f", -"E`_ c #9696a3a36d6d", -"W`_ c #9696a3a36e6e", -"Q`_ c #9595a4a46969", -"!`_ c #9595a4a46b6b", -"~`_ c #9494a6a66868", -"^`_ c #9595a7a76969", -"/`_ c #9494a6a66a6a", -"(`_ c #9595a7a76b6b", -")`_ c #9696a4a46969", -"_`_ c #9797a5a56868", -"``` c #9696a5a56a6a", -"'`` c #9797a5a56a6a", -"]`` c #9696a6a66868", -"[`` c #9797a7a76868", -"{`` c #9797a7a76969", -"}`` c #9797a6a66b6b", -"|`` c #9595a4a46d6d", -" '` c #9494a5a56e6e", -".'` c #9494a5a56f6f", -"X'` c #9494a6a66c6c", -"o'` c #9494a7a76f6f", -"O'` c #9595a6a66f6f", -"+'` c #9797a4a46c6c", -"@'` c #9696a5a56e6e", -"#'` c #9797a4a46e6e", -"$'` c #9797a6a66d6d", -"%'` c #9797a6a66f6f", -"&'` c #9292a8a86060", -"*'` c #9393a9a96060", -"='` c #9393a9a96161", -"-'` c #9393a8a86363", -";'` c #9090abab6464", -":'` c #9191aaaa6666", -">'` c #9393a8a86565", -",'` c #9393a8a86767", -"<'` c #9292abab6767", -"1'` c #9292adad6666", -"2'` c #9393adad6666", -"3'` c #9393aeae6767", -"4'` c #9494a8a86060", -"5'` c #9494a8a86161", -"6'` c #9595a9a96161", -"7'` c #9494a8a86363", -"8'` c #9595a9a96262", -"9'` c #9494aaaa6161", -"0'` c #9595abab6060", -"q'` c #9494aaaa6262", -"w'` c #9595abab6262", -"e'` c #9595abab6363", -"r'` c #9797a8a86161", -"t'` c #9797a8a86262", -"y'` c #9696abab6060", -"u'` c #9696aaaa6262", -"i'` c #9696aaaa6363", -"p'` c #9797abab6363", -"a'` c #9494a9a96464", -"s'` c #9595a9a96464", -"d'` c #9494a9a96666", -"f'` c #9595a8a86666", -"g'` c #9595aaaa6565", -"h'` c #9595aaaa6767", -"j'` c #9797a8a86464", -"k'` c #9696a9a96767", -"l'` c #9696aaaa6565", -"z'` c #9797abab6464", -"x'` c #9696abab6666", -"c'` c #9797abab6666", -"v'` c #9696acac6161", -"b'` c #9797acac6161", -"n'` c #9696acac6363", -"m'` c #9797adad6262", -"M'` c #9797aeae6060", -"N'` c #9696acac6464", -"B'` c #9797adad6464", -"V'` c #9797adad6565", -"C'` c #9797acac6767", -"Z'` c #9090a9a96f6f", -"A'` c #9191abab6c6c", -"S'` c #9393aeae6b6b", -"D'` c #9494a8a86969", -"F'` c #9494a9a96868", -"G'` c #9595a8a86868", -"H'` c #9494a8a86b6b", -"J'` c #9595a9a96a6a", -"K'` c #9595aaaa6969", -"L'` c #9696a9a96969", -"P'` c #9797a9a96b6b", -"I'` c #9696abab6868", -"U'` c #9797aaaa6868", -"Y'` c #9696aaaa6b6b", -"T'` c #9696abab6a6a", -"R'` c #9797aaaa6a6a", -"E'` c #9494a8a86d6d", -"W'` c #9595a9a96c6c", -"Q'` c #9595a9a96e6e", -"!'` c #9696a8a86c6c", -"~'` c #9797a9a96d6d", -"^'` c #9696a8a86e6e", -"/'` c #9696aaaa6d6d", -"('` c #9797abab6c6c", -")'` c #9696aaaa6f6f", -"_'` c #9797abab6e6e", -"`'` c #9494afaf6a6a", -"''' c #9797acac6969", -"]'' c #9797acac6b6b", -"['' c #9696afaf6b6b", -"{'' c #9494afaf6c6c", -"}'' c #9595afaf6e6e", -"|'' c #9898a1a16060", -" ]' c #9898a3a36161", -".]' c #9898a2a26363", -"X]' c #9898a0a06464", -"o]' c #9898a0a06565", -"O]' c #9898a2a26565", -"+]' c #9999a3a36464", -"@]' c #9898a2a26666", -"#]' c #9898a3a36767", -"$]' c #9999a3a36666", -"%]' c #9999a3a36767", -"&]' c #9a9aa0a06464", -"*]' c #9b9ba0a06666", -"=]' c #9898a5a56060", -"-]' c #9898a4a46262", -";]' c #9999a6a66060", -":]' c #9898a7a76262", -">]' c #9a9aa5a56161", -",]' c #9a9aa7a76161", -"<]' c #9b9ba6a66161", -"1]' c #9b9ba6a66262", -"2]' c #9898a4a46464", -"3]' c #9999a5a56565", -"4]' c #9898a4a46666", -"5]' c #9999a5a56767", -"6]' c #9898a7a76464", -"7]' c #9898a7a76666", -"8]' c #9a9aa4a46565", -"9]' c #9b9ba4a46565", -"0]' c #9b9ba5a56666", -"q]' c #9a9aa6a66464", -"w]' c #9b9ba7a76565", -"e]' c #9a9aa6a66666", -"r]' c #9b9ba7a76767", -"t]' c #9e9ea3a36161", -"y]' c #9c9ca1a16767", -"u]' c #9d9da0a06767", -"i]' c #9c9ca2a26666", -"p]' c #9d9da4a46161", -"a]' c #9c9ca5a56262", -"s]' c #9c9ca7a76363", -"d]' c #9c9ca5a56464", -"f]' c #9c9ca7a76565", -"g]' c #9d9da6a66565", -"h]' c #9c9ca6a66767", -"j]' c #9d9da6a66767", -"k]' c #9f9fa5a56565", -"l]' c #9e9ea7a76666", -"z]' c #9898a1a16868", -"x]' c #9898a1a16a6a", -"c]' c #9898a3a36969", -"v]' c #9999a2a26969", -"b]' c #9898a3a36b6b", -"n]' c #9898a0a06d6d", -"m]' c #9898a1a16c6c", -"M]' c #9898a0a06f6f", -"N]' c #9999a1a16e6e", -"B]' c #9898a2a26d6d", -"V]' c #9999a2a26d6d", -"C]' c #9898a2a26e6e", -"Z]' c #9999a3a36e6e", -"A]' c #9999a3a36f6f", -"S]' c #9b9ba2a26c6c", -"D]' c #9a9aa2a26f6f", -"F]' c #9a9aa3a36e6e", -"G]' c #9999a4a46868", -"H]' c #9999a4a46a6a", -"J]' c #9898a6a66868", -"K]' c #9898a6a66969", -"L]' c #9999a7a76969", -"P]' c #9898a6a66b6b", -"I]' c #9999a7a76a6a", -"U]' c #9a9aa5a56969", -"Y]' c #9b9ba5a56969", -"T]' c #9a9aa5a56b6b", -"R]' c #9b9ba4a46b6b", -"E]' c #9a9aa6a66868", -"W]' c #9b9ba7a76969", -"Q]' c #9b9ba6a66a6a", -"!]' c #9898a5a56d6d", -"~]' c #9898a5a56f6f", -"^]' c #9898a7a76c6c", -"/]' c #9999a7a76c6c", -"(]' c #9898a7a76e6e", -")]' c #9999a6a66e6e", -"_]' c #9a9aa5a56d6d", -"`]' c #9b9ba4a46d6d", -"']' c #9a9aa4a46f6f", -"]]] c #9b9ba4a46f6f", -"[]] c #9b9ba6a66c6c", -"{]] c #9a9aa7a76f6f", -"}]] c #9c9ca1a16969", -"|]] c #9d9da2a26a6a", -" [] c #9e9ea3a36969", -".[] c #9e9ea3a36b6b", -"X[] c #9d9da1a16e6e", -"o[] c #9c9ca3a36f6f", -"O[] c #9e9ea3a36d6d", -"+[] c #9c9ca4a46969", -"@[] c #9d9da5a56969", -"#[] c #9d9da5a56a6a", -"$[] c #9c9ca6a66969", -"%[] c #9d9da7a76868", -"&[] c #9c9ca6a66a6a", -"*[] c #9c9ca7a76b6b", -"=[] c #9d9da7a76b6b", -"-[] c #9f9fa5a56969", -";[] c #9f9fa4a46a6a", -":[] c #9e9ea6a66b6b", -">[] c #9c9ca5a56c6c", -",[] c #9c9ca7a76d6d", -"<[] c #9d9da6a66d6d", -"1[] c #9d9da6a66f6f", -"2[] c #9e9ea5a56f6f", -"3[] c #9f9fa7a76c6c", -"4[] c #9898a8a86161", -"5[] c #9898a9a96262", -"6[] c #9898a9a96363", -"7[] c #9999a8a86363", -"8[] c #9999a9a96262", -"9[] c #9898aaaa6060", -"0[] c #9999abab6161", -"q[] c #9999aaaa6363", -"w[] c #9b9ba8a86262", -"e[] c #9b9ba8a86363", -"r[] c #9a9aaaaa6161", -"t[] c #9b9babab6060", -"y[] c #9a9aaaaa6363", -"u[] c #9b9babab6262", -"i[] c #9898a9a96565", -"p[] c #9999a8a86565", -"a[] c #9898a8a86767", -"s[] c #9999a8a86767", -"d[] c #9999aaaa6464", -"f[] c #9999aaaa6666", -"g[] c #9a9aa9a96464", -"h[] c #9a9aa9a96666", -"j[] c #9a9aabab6464", -"k[] c #9a9aabab6565", -"l[] c #9b9baaaa6565", -"z[] c #9b9babab6464", -"x[] c #9a9aabab6767", -"c[] c #9b9baaaa6767", -"v[] c #9898adad6262", -"b[] c #9898afaf6161", -"n[] c #9898aeae6363", -"m[] c #9999aeae6363", -"M[] c #9b9badad6363", -"N[] c #9898acac6464", -"B[] c #9898acac6565", -"V[] c #9999adad6565", -"C[] c #9898acac6767", -"Z[] c #9999adad6666", -"A[] c #9898aeae6565", -"S[] c #9999afaf6464", -"D[] c #9898aeae6666", -"F[] c #9999afaf6666", -"G[] c #9999afaf6767", -"H[] c #9b9bacac6565", -"J[] c #9b9bacac6666", -"K[] c #9a9aafaf6464", -"L[] c #9a9aaeae6666", -"P[] c #9a9aaeae6767", -"I[] c #9b9bafaf6767", -"U[] c #9c9ca9a96161", -"Y[] c #9d9da9a96161", -"T[] c #9d9daaaa6262", -"R[] c #9e9eaaaa6262", -"E[] c #9e9eabab6363", -"W[] c #9c9ca9a96464", -"Q[] c #9d9da8a86464", -"![] c #9d9da9a96767", -"~[] c #9d9daaaa6464", -"^[] c #9d9daaaa6565", -"/[] c #9c9cabab6666", -"([] c #9e9ea9a96464", -")[] c #9f9fa8a86565", -"_[] c #9e9ea9a96767", -"`[] c #9f9fa8a86767", -"'[] c #9e9eabab6565", -"][] c #9e9eabab6666", -"[[[ c #9f9faaaa6666", -"{[[ c #9c9cacac6161", -"}[[ c #9c9cacac6363", -"|[[ c #9d9daeae6060", -" {[ c #9c9caeae6262", -".{[ c #9e9eafaf6161", -"X{[ c #9c9cacac6565", -"o{[ c #9c9cadad6666", -"O{[ c #9c9cadad6767", -"+{[ c #9d9dacac6767", -"@{[ c #9d9dadad6666", -"#{[ c #9c9caeae6464", -"${[ c #9d9dafaf6565", -"%{[ c #9d9daeae6767", -"&{[ c #9f9facac6464", -"*{[ c #9f9facac6666", -"={[ c #9e9eaeae6767", -"-{[ c #9898a8a86969", -";{[ c #9999a9a96868", -":{[ c #9898a8a86a6a", -">{[ c #9999a9a96a6a", -",{[ c #9999a9a96b6b", -"<{[ c #9898abab6969", -"1{[ c #9898abab6b6b", -"2{[ c #9a9aa9a96868", -"3{[ c #9a9aa8a86b6b", -"4{[ c #9a9aaaaa6969", -"5{[ c #9b9baaaa6969", -"6{[ c #9a9aaaaa6b6b", -"7{[ c #9b9babab6a6a", -"8{[ c #9999a8a86d6d", -"9{[ c #9999a8a86f6f", -"0{[ c #9898aaaa6c6c", -"q{[ c #9999abab6d6d", -"w{[ c #9898aaaa6e6e", -"e{[ c #9999abab6f6f", -"r{[ c #9a9aa8a86d6d", -"t{[ c #9b9ba9a96c6c", -"y{[ c #9a9aa9a96e6e", -"u{[ c #9b9ba9a96e6e", -"i{[ c #9a9aaaaa6c6c", -"p{[ c #9b9babab6c6c", -"a{[ c #9b9babab6d6d", -"s{[ c #9b9baaaa6f6f", -"d{[ c #9898adad6868", -"f{[ c #9999adad6868", -"g{[ c #9898adad6a6a", -"h{[ c #9999acac6a6a", -"j{[ c #9999aeae6969", -"k{[ c #9999aeae6b6b", -"l{[ c #9b9bacac6868", -"z{[ c #9a9aadad6b6b", -"x{[ c #9a9aaeae6969", -"c{[ c #9b9bafaf6868", -"v{[ c #9a9aafaf6a6a", -"b{[ c #9b9bafaf6a6a", -"n{[ c #9898acac6d6d", -"m{[ c #9898adad6c6c", -"M{[ c #9999acac6c6c", -"N{[ c #9898acac6f6f", -"B{[ c #9999adad6e6e", -"V{[ c #9999aeae6d6d", -"C{[ c #9a9aadad6d6d", -"Z{[ c #9b9badad6f6f", -"A{[ c #9a9aafaf6c6c", -"S{[ c #9b9baeae6c6c", -"D{[ c #9a9aaeae6f6f", -"F{[ c #9a9aafaf6e6e", -"G{[ c #9b9baeae6e6e", -"H{[ c #9c9ca8a86868", -"J{[ c #9d9da9a96969", -"K{[ c #9c9ca8a86a6a", -"L{[ c #9d9da9a96b6b", -"P{[ c #9c9cabab6868", -"I{[ c #9c9cabab6a6a", -"U{[ c #9e9ea8a86969", -"Y{[ c #9f9fa9a96a6a", -"T{[ c #9f9faaaa6868", -"R{[ c #9e9eaaaa6a6a", -"E{[ c #9f9fabab6b6b", -"W{[ c #9d9da8a86c6c", -"Q{[ c #9d9da8a86e6e", -"!{[ c #9c9caaaa6c6c", -"~{[ c #9c9caaaa6d6d", -"^{[ c #9c9caaaa6f6f", -"/{[ c #9d9dabab6e6e", -"({[ c #9e9ea9a96d6d", -"){[ c #9f9fa9a96c6c", -"_{[ c #9e9ea9a96f6f", -"`{[ c #9f9fa8a86f6f", -"'{[ c #9c9cadad6969", -"]{[ c #9d9dacac6969", -"[{[ c #9c9cacac6b6b", -"{{{ c #9d9dacac6b6b", -"}{{ c #9d9daeae6868", -"|{{ c #9d9daeae6a6a", -" }{ c #9e9eadad6868", -".}{ c #9e9eadad6a6a", -"X}{ c #9e9eafaf6868", -"o}{ c #9e9eafaf6969", -"O}{ c #9f9faeae6969", -"+}{ c #9f9fafaf6868", -"@}{ c #9e9eafaf6b6b", -"#}{ c #9f9faeae6b6b", -"$}{ c #9c9cacac6d6d", -"%}{ c #9d9dadad6c6c", -"&}{ c #9c9cacac6e6e", -"*}{ c #9d9dadad6e6e", -"=}{ c #9d9dadad6f6f", -"-}{ c #9c9cafaf6d6d", -";}{ c #9c9cafaf6f6f", -":}{ c #9e9eadad6c6c", -">}{ c #9e9eacac6e6e", -",}{ c #9e9eacac6f6f", -"<}{ c #9f9fadad6f6f", -"1}{ c #9e9eaeae6d6d", -"2}{ c #9f9faeae6d6d", -"3}{ c #9e9eaeae6f6f", -"4}{ c #9f9fafaf6e6e", -"5}{ c #9090a0a07171", -"6}{ c #9090a0a07373", -"7}{ c #9090a2a27070", -"8}{ c #9090a2a27272", -"9}{ c #9191a3a37373", -"0}{ c #9393a1a17070", -"q}{ c #9292a2a27171", -"w}{ c #9090a1a17474", -"e}{ c #9090a1a17575", -"r}{ c #9191a0a07575", -"t}{ c #9191a2a27575", -"y}{ c #9191a2a27676", -"u}{ c #9292a2a27575", -"i}{ c #9393a3a37474", -"p}{ c #9292a3a37676", -"a}{ c #9292a3a37777", -"s}{ c #9393a2a27777", -"d}{ c #9393a3a37676", -"f}{ c #9090a4a47373", -"g}{ c #9191a5a57272", -"h}{ c #9292a4a47070", -"j}{ c #9393a4a47070", -"k}{ c #9393a5a57171", -"l}{ c #9292a4a47272", -"z}{ c #9393a5a57373", -"x}{ c #9393a7a77272", -"c}{ c #9191a4a47676", -"v}{ c #9292a4a47474", -"b}{ c #9393a5a57575", -"n}{ c #9393a4a47777", -"m}{ c #9595a1a17171", -"M}{ c #9494a0a07272", -"N}{ c #9595a1a17373", -"B}{ c #9494a2a27171", -"V}{ c #9595a3a37070", -"C}{ c #9797a0a07171", -"Z}{ c #9696a2a27070", -"A}{ c #9797a3a37171", -"S}{ c #9696a2a27272", -"D}{ c #9494a1a17676", -"F}{ c #9595a0a07676", -"G}{ c #9797a0a07575", -"H}{ c #9696a1a17676", -"J}{ c #9696a1a17777", -"K}{ c #9696a2a27474", -"L}{ c #9696a3a37575", -"P}{ c #9494a4a47373", -"I}{ c #9494a7a77070", -"U}{ c #9494a6a67272", -"Y}{ c #9595a7a77373", -"T}{ c #9696a4a47171", -"R}{ c #9696a4a47373", -"E}{ c #9797a5a57272", -"W}{ c #9696a7a77171", -"Q}{ c #9696a7a77373", -"!}{ c #9595a5a57474", -"~}{ c #9494a4a47777", -"^}{ c #9494a6a67474", -"/}{ c #9595a7a77575", -"(}{ c #9494a6a67676", -")}{ c #9797a4a47676", -"_}{ c #9696a6a67777", -"`}{ c #9292a1a17878", -"'}{ c #9292a1a17a7a", -"]}{ c #9393a2a27979", -"[}{ c #9090a2a27c7c", -"{}{ c #9393a4a47878", -"}}} c #9393a4a47a7a", -"|}} c #9595a1a17979", -" |} c #9494a3a37878", -".|} c #9696a0a07b7b", -"X|} c #9797a2a27878", -"o|} c #9696a2a27a7a", -"O|} c #9797a2a27a7a", -"+|} c #9494a0a07c7c", -"@|} c #9494a3a37c7c", -"#|} c #9494a2a27e7e", -"$|} c #9696a0a07d7d", -"%|} c #9797a1a17f7f", -"&|} c #9696a2a27c7c", -"*|} c #9494a5a57878", -"=|} c #9595a4a47979", -"-|} c #9595a4a47b7b", -";|} c #9595a6a67979", -":|} c #9595a6a67a7a", -">|} c #9696a7a77a7a", -",|} c #9696a7a77b7b", -"<|} c #9494a6a67c7c", -"1|} c #9797a6a67d7d", -"2|} c #9797a6a67f7f", -"3|} c #9191a8a87070", -"4|} c #9191a8a87272", -"5|} c #9090a8a87474", -"6|} c #9191a9a97777", -"7|} c #9292a9a97575", -"8|} c #9191acac7575", -"9|} c #9393afaf7575", -"0|} c #9595a8a87070", -"q|} c #9595a8a87171", -"w|} c #9696a9a97171", -"e|} c #9797a8a87171", -"r|} c #9696a9a97272", -"t|} c #9797abab7070", -"y|} c #9797aaaa7272", -"u|} c #9797aaaa7373", -"i|} c #9494a8a87777", -"p|} c #9696a8a87474", -"a|} c #9797a8a87474", -"s|} c #9797a9a97575", -"d|} c #9797a9a97777", -"f|} c #9696aaaa7777", -"g|} c #9797afaf7373", -"h|} c #9494adad7676", -"j|} c #9797acac7474", -"k|} c #9494aaaa7979", -"l|} c #9696a8a87878", -"z|} c #9797a8a87b7b", -"x|} c #9595acac7878", -"c|} c #9797aeae7a7a", -"v|} c #9595afaf7f7f", -"b|} c #9999a1a17070", -"n|} c #9898a1a17272", -"m|} c #9999a1a17272", -"M|} c #9999a2a27373", -"N|} c #9a9aa2a27171", -"B|} c #9898a1a17474", -"V|} c #9999a0a07474", -"C|} c #9898a1a17676", -"Z|} c #9999a0a07777", -"A|} c #9999a2a27575", -"S|} c #9a9aa1a17777", -"D|} c #9a9aa3a37676", -"F|} c #9898a5a57070", -"G|} c #9999a5a57373", -"H|} c #9898a6a67171", -"J|} c #9898a7a77070", -"K|} c #9999a6a67070", -"L|} c #9999a6a67171", -"P|} c #9898a6a67373", -"I|} c #9b9ba5a57171", -"U|} c #9a9aa4a47272", -"Y|} c #9b9ba5a57373", -"T|} c #9a9aa7a77171", -"R|} c #9898a4a47474", -"E|} c #9898a4a47676", -"W|} c #9898a5a57777", -"Q|} c #9999a5a57777", -"!|} c #9898a6a67575", -"~|} c #9999a7a77676", -"^|} c #9b9ba4a47575", -"/|} c #9b9ba4a47777", -"(|} c #9b9ba7a77777", -")|} c #9d9da0a07373", -"_|} c #9e9ea0a07171", -"`|} c #9c9ca3a37777", -"'|} c #9c9ca5a57070", -"]|} c #9d9da4a47070", -"[|} c #9c9ca4a47373", -"{|} c #9c9ca6a67171", -"}|} c #9c9ca6a67272", -"||| c #9d9da7a77272", -" c #9d9da7a77373", -". c #9e9ea7a77070", -"X c #9e9ea6a67373", -"o c #9e9ea7a77272", -"O c #9d9da5a57474", -"+ c #9c9ca5a57676", -"@ c #9c9ca6a67474", -"# c #9d9da7a77575", -"$ c #9e9ea6a67575", -"% c #9f9fa7a77474", -"& c #9999a1a17878", -"* c #9898a3a37878", -"= c #9898a3a37979", -"- c #9898a3a37b7b", -"; c #9a9aa1a17878", -": c #9a9aa0a07a7a", -"> c #9b9ba1a17b7b", -", c #9b9ba2a27878", -"< c #9a9aa2a27b7b", -"1 c #9999a0a07e7e", -"2 c #9898a2a27d7d", -"3 c #9b9ba1a17d7d", -"4 c #9898a5a57a7a", -"5 c #9999a4a47a7a", -"6 c #9999a6a67878", -"7 c #9b9ba4a47979", -"8 c #9a9aa5a57a7a", -"9 c #9a9aa5a57b7b", -"0 c #9a9aa6a67878", -"q c #9a9aa7a77979", -"w c #9a9aa7a77b7b", -"e c #9b9ba6a67b7b", -"r c #9898a4a47e7e", -"t c #9898a7a77e7e", -"y c #9a9aa5a57d7d", -"u c #9a9aa4a47f7f", -"i c #9a9aa7a77c7c", -"p c #9b9ba6a67c7c", -"a c #9a9aa6a67e7e", -"s c #9b9ba6a67e7e", -"d c #9c9ca1a17979", -"f c #9f9fa3a37e7e", -"g c #9d9da6a67979", -"h c #9f9fa6a67a7a", -"j c #9c9ca7a77c7c", -"k c #9c9ca7a77f7f", -"l c #9f9fa5a57f7f", -"z c #9898a9a97373", -"x c #9898aaaa7070", -"c c #9999abab7171", -"v c #9898abab7373", -"b c #9999aaaa7373", -"n c #9a9aa9a97070", -"m c #9b9ba8a87070", -"M c #9a9aa9a97272", -"N c #9b9ba8a87272", -"B c #9b9baaaa7171", -"V c #9b9baaaa7373", -"C c #9898a8a87777", -"Z c #9898abab7474", -"A c #9999aaaa7474", -"S c #9898aaaa7676", -"D c #9999aaaa7676", -"F c #9999abab7777", -"G c #9b9ba9a97474", -"H c #9b9ba9a97676", -"J c #9a9aabab7474", -"K c #9a9aabab7575", -"L c #9a9aabab7777", -"P c #9898acac7171", -"I c #9999adad7070", -"U c #9999adad7272", -"Y c #9a9aacac7070", -"T c #9b9badad7171", -"R c #9a9aacac7272", -"E c #9a9aaeae7171", -"W c #9b9bafaf7070", -"Q c #9a9aaeae7373", -"! c #9b9bafaf7272", -"~ c #9898adad7575", -"^ c #9999acac7474", -"/ c #9999acac7575", -"( c #9999aeae7676", -") c #9a9aadad7575", -"_ c #9a9aadad7676", -"` c #9b9bafaf7474", -"' c #9b9baeae7676", -"] c #9b9baeae7777", -"[ c #9c9ca9a97171", -"{ c #9c9ca9a97373", -"} c #9c9cabab7070", -"| c #9d9dabab7070", -" . c #9c9cabab7272", -"... c #9d9daaaa7272", -"X.. c #9e9ea9a97171", -"o.. c #9e9ea8a87373", -"O.. c #9f9fa8a87373", -"+.. c #9e9eabab7373", -"@.. c #9c9caaaa7575", -"#.. c #9c9cabab7474", -"$.. c #9d9daaaa7474", -"%.. c #9c9caaaa7777", -"&.. c #9e9ea8a87676", -"*.. c #9d9dacac7171", -"=.. c #9d9dacac7373", -"-.. c #9c9caeae7070", -";.. c #9d9dafaf7171", -":.. c #9c9caeae7272", -">.. c #9d9dafaf7373", -",.. c #9e9eadad7272", -"<.. c #9f9fadad7272", -"1.. c #9e9eaeae7070", -"2.. c #9f9fafaf7070", -"3.. c #9f9fafaf7171", -"4.. c #9f9faeae7373", -"5.. c #9d9dacac7575", -"6.. c #9c9cadad7777", -"7.. c #9c9cafaf7777", -"8.. c #9d9daeae7777", -"9.. c #9e9eadad7474", -"0.. c #9e9eadad7676", -"q.. c #9f9faeae7575", -"w.. c #9f9faeae7777", -"e.. c #9999a9a97878", -"r.. c #9898a8a87b7b", -"t.. c #9999a9a97a7a", -"y.. c #9898aaaa7878", -"u.. c #9999abab7979", -"i.. c #9898aaaa7a7a", -"p.. c #9b9ba9a97878", -"a.. c #9898a9a97c7c", -"s.. c #9898a9a97d7d", -"d.. c #9999a9a97c7c", -"f.. c #9898a9a97f7f", -"g.. c #9a9aa9a97e7e", -"h.. c #9a9aaaaa7d7d", -"j.. c #9b9babab7e7e", -"k.. c #9898acac7979", -"l.. c #9999adad7a7a", -"z.. c #9898afaf7979", -"x.. c #9a9aacac7878", -"c.. c #9b9badad7979", -"v.. c #9b9badad7b7b", -"b.. c #9b9bacac7f7f", -"n.. c #9b9bafaf7e7e", -"m.. c #9c9ca8a87a7a", -"M.. c #9d9da9a97b7b", -"N.. c #9e9eaaaa7878", -"B.. c #9f9fabab7979", -"V.. c #9c9ca9a97e7e", -"C.. c #9d9da8a87e7e", -"Z.. c #9f9fa8a87d7d", -"A.. c #9e9ea9a97f7f", -"S.. c #9e9eaaaa7c7c", -"D.. c #9f9fabab7d7d", -"F.. c #9c9cadad7979", -"G.. c #9c9cacac7b7b", -"H.. c #9c9cafaf7878", -"J.. c #9c9caeae7a7a", -"K.. c #9d9daeae7a7a", -"L.. c #9d9dafaf7b7b", -"P.. c #9f9fadad7878", -"I.. c #9e9eacac7b7b", -"U.. c #9e9eafaf7878", -"Y.. c #9e9eafaf7b7b", -"T.. c #9c9caeae7c7c", -"R.. c #9d9dafaf7d7d", -"E.. c #9c9caeae7e7e", -"W.. c #9d9dafaf7f7f", -"Q.. c #9e9eaeae7f7f", -"!.. c #9f9fafaf7e7e", -"~.. c #9595b0b06969", -"^.. c #9595b0b06b6b", -"/.. c #9797b1b16868", -"(.. c #9696b1b16e6e", -").. c #9797b2b26d6d", -"_.. c #9797b2b26f6f", -"`.. c #9999b0b06060", -"'.. c #9999b0b06262", -"].. c #9a9ab1b16161", -"[.. c #9a9ab1b16363", -"{.. c #9b9bb0b06363", -"}.. c #9b9bb2b26060", -"|.. c #9b9bb2b26262", -" X. c #9a9ab0b06565", -".X. c #9b9bb0b06565", -"XXX c #9a9ab0b06767", -"oXX c #9b9bb1b16666", -"OXX c #9b9bb2b26464", -"+XX c #9d9db0b06161", -"@XX c #9c9cb3b36161", -"#XX c #9c9cb3b36363", -"$XX c #9d9db2b26363", -"%XX c #9f9fb0b06262", -"&XX c #9f9fb2b26161", -"*XX c #9f9fb2b26363", -"=XX c #9c9cb1b16464", -"-XX c #9c9cb1b16666", -";XX c #9c9cb3b36565", -":XX c #9c9cb2b26767", -">XX c #9d9db2b26767", -",XX c #9e9eb0b06464", -"oo c #9f9fb4b47171", -",oo c #9f9fb4b47373", -"OO c #a3a3aeae6c6c", -",OO c #a3a3afaf6d6d", -"++ c #a6a6afaf7878", -",++ c #a5a5adad7c7c", -"<++ c #a4a4adad7e7e", -"1++ c #a4a4aeae7c7c", -"2++ c #a5a5afaf7d7d", -"3++ c #a5a5aeae7f7f", -"4++ c #a7a7adad7f7f", -"5++ c #a6a6aeae7d7d", -"6++ c #a7a7afaf7e7e", -"7++ c #a8a8adad7373", -"8++ c #a9a9aeae7474", -"9++ c #a9a9aeae7676", -"0++ c #aaaaafaf7575", -"q++ c #a9a9abab7979", -"w++ c #a9a9a8a87c7c", -"e++ c #a9a9adad7a7a", -"r++ c #a0a0b1b16161", -"t++ c #a0a0b3b36262", -"y++ c #a1a1b2b26262", -"u++ c #a2a2b0b06363", -"i++ c #a0a0b0b06565", -"p++ c #a0a0b0b06767", -"a++ c #a1a1b1b16666", -"s++ c #a0a0b2b26666", -"d++ c #a1a1b3b36767", -"f++ c #a2a2b3b36565", -"g++ c #a1a1b4b46262", -"h++ c #a1a1b4b46363", -"j++ c #a2a2b4b46262", -"k++ c #a1a1b4b46565", -"l++ c #a0a0b5b56666", -"z++ c #a0a0b7b76565", -"x++ c #a1a1b7b76565", -"c++ c #a0a0b7b76767", -"v++ c #a3a3b4b46666", -"b++ c #a3a3b6b66565", -"n++ c #a4a4b0b06666", -"m++ c #a4a4b6b66262", -"M++ c #a4a4b5b56565", -"N++ c #a4a4b5b56767", -"B++ c #a4a4b7b76666", -"V++ c #a5a5b6b66666", -"C++ c #a0a0b0b06969", -"Z++ c #a0a0b1b16a6a", -"A++ c #a0a0b1b16b6b", -"S++ c #a1a1b0b06b6b", -"D++ c #a1a1b1b16a6a", -"F++ c #a0a0b2b26868", -"G++ c #a1a1b3b36969", -"H++ c #a1a1b2b26b6b", -"J++ c #a3a3b0b06868", -"K++ c #a3a3b0b06a6a", -"L++ c #a3a3b0b06b6b", -"P++ c #a3a3b3b36868", -"I++ c #a2a2b2b26b6b", -"U++ c #a0a0b1b16d6d", -"Y++ c #a1a1b0b06d6d", -"T++ c #a0a0b0b06f6f", -"R++ c #a1a1b0b06f6f", -"E++ c #a1a1b2b26c6c", -"W++ c #a1a1b2b26e6e", -"Q++ c #a2a2b1b16c6c", -"!++ c #a2a2b1b16e6e", -"~++ c #a2a2b3b36c6c", -"^++ c #a2a2b3b36d6d", -"/++ c #a3a3b2b26d6d", -"(++ c #a3a3b3b36c6c", -")++ c #a2a2b3b36f6f", -"_++ c #a3a3b2b26f6f", -"`++ c #a0a0b5b56868", -"'++ c #a0a0b5b56a6a", -"]++ c #a0a0b7b76969", -"[++ c #a0a0b6b66b6b", -"{++ c #a1a1b6b66b6b", -"}++ c #a2a2b4b46868", -"|++ c #a3a3b5b56969", -" @+ c #a2a2b4b46a6a", -".@+ c #a3a3b5b56b6b", -"X@+ c #a2a2b7b76868", -"o@+ c #a0a0b4b46c6c", -"O@+ c #a0a0b4b46d6d", -"+@+ c #a1a1b5b56d6d", -"@@@ c #a0a0b4b46f6f", -"#@@ c #a1a1b5b56e6e", -"$@@ c #a0a0b6b66d6d", -"%@@ c #a1a1b7b76c6c", -"&@@ c #a0a0b6b66e6e", -"*@@ c #a1a1b7b76e6e", -"=@@ c #a1a1b7b76f6f", -"-@@ c #a3a3b4b46d6d", -";@@ c #a3a3b4b46e6e", -":@@ c #a2a2b7b76c6c", -">@@ c #a2a2b6b66e6e", -",@@ c #a2a2b6b66f6f", -"<@@ c #a3a3b7b76f6f", -"1@@ c #a4a4b1b16969", -"2@@ c #a4a4b1b16b6b", -"3@@ c #a5a5b0b06b6b", -"4@@ c #a5a5b3b36868", -"5@@ c #a5a5b2b26a6a", -"6@@ c #a6a6b2b26868", -"7@@ c #a7a7b3b36b6b", -"8@@ c #a4a4b0b06e6e", -"9@@ c #a5a5b1b16f6f", -"0@@ c #a5a5b2b26c6c", -"q@@ c #a5a5b2b26d6d", -"w@@ c #a4a4b3b36e6e", -"e@@ c #a6a6b1b16d6d", -"r@@ c #a7a7b0b06d6d", -"t@@ c #a6a6b3b36d6d", -"y@@ c #a4a4b4b46b6b", -"u@@ c #a4a4b7b76868", -"i@@ c #a5a5b6b66868", -"p@@ c #a4a4b6b66a6a", -"a@@ c #a5a5b7b76b6b", -"s@@ c #a7a7b5b56868", -"d@@ c #a6a6b7b76969", -"f@@ c #a6a6b6b66b6b", -"g@@ c #a4a4b4b46d6d", -"h@@ c #a5a5b5b56c6c", -"j@@ c #a4a4b5b56e6e", -"k@@ c #a4a4b5b56f6f", -"l@@ c #a5a5b4b46f6f", -"z@@ c #a4a4b6b66c6c", -"x@@ c #a5a5b7b76d6d", -"c@@ c #a5a5b6b66f6f", -"v@@ c #a7a7b4b46f6f", -"b@@ c #a7a7b7b76c6c", -"n@@ c #a6a6b6b66f6f", -"m@@ c #a7a7b7b76e6e", -"M@@ c #a0a0b8b86060", -"N@@ c #a0a0b8b86262", -"B@@ c #a0a0b8b86464", -"V@@ c #a1a1b8b86666", -"C@@ c #a2a2b9b96767", -"Z@@ c #a2a2baba6464", -"A@@ c #a3a3bbbb6565", -"S@@ c #a2a2baba6666", -"D@@ c #a3a3bbbb6767", -"F@@ c #a7a7b9b96363", -"G@@ c #a5a5b8b86767", -"H@@ c #a6a6b8b86666", -"J@@ c #a6a6b9b96767", -"K@@ c #a7a7b9b96767", -"L@@ c #a4a4bdbd6262", -"P@@ c #a5a5bebe6262", -"I@@ c #a4a4bcbc6666", -"U@@ c #a5a5bdbd6767", -"Y@@ c #a1a1b8b86868", -"T@@ c #a1a1b8b86a6a", -"R@@ c #a2a2b9b96969", -"E@@ c #a3a3b8b86969", -"W@@ c #a2a2b9b96b6b", -"Q@@ c #a3a3b8b86b6b", -"!@@ c #a3a3baba6868", -"~@@ c #a3a3baba6a6a", -"^@@ c #a2a2b8b86d6d", -"/@@ c #a3a3b8b86d6d", -"(@@ c #a2a2b8b86f6f", -")@@ c #a3a3b9b96e6e", -"_@@ c #a3a3baba6c6c", -"`@@ c #a4a4b9b96a6a", -"'@@ c #a4a4baba6868", -"]@@ c #a4a4bbbb6969", -"[@@ c #a4a4bbbb6b6b", -"{@@ c #a5a5baba6b6b", -"}@@ c #a7a7b8b86868", -"|@@ c #a7a7b8b86a6a", -" #@ c #a7a7baba6868", -".#@ c #a7a7baba6b6b", -"X#@ c #a4a4b9b96e6e", -"o#@ c #a4a4bbbb6d6d", -"O#@ c #a5a5baba6d6d", -"+#@ c #a4a4baba6f6f", -"@#@ c #a5a5baba6f6f", -"### c #a6a6b8b86c6c", -"$## c #a7a7b9b96d6d", -"%## c #a6a6b8b86e6e", -"&## c #a7a7b9b96f6f", -"*## c #a6a6bbbb6c6c", -"=## c #a6a6bbbb6e6e", -"-## c #a5a5bcbc6a6a", -";## c #a6a6bdbd6b6b", -":## c #a7a7bdbd6b6b", -">## c #a6a6bebe6868", -",## c #a7a7bfbf6969", -"<## c #a6a6bebe6a6a", -"1## c #a7a7bfbf6b6b", -"2## c #a5a5bcbc6c6c", -"3## c #a5a5bcbc6e6e", -"4## c #a6a6bdbd6d6d", -"5## c #a7a7bcbc6d6d", -"6## c #a6a6bdbd6f6f", -"7## c #a7a7bcbc6f6f", -"8## c #a7a7bebe6c6c", -"9## c #a7a7bebe6e6e", -"0## c #aaaab2b26767", -"q## c #a9a9b0b06d6d", -"w## c #a8a8b3b36e6e", -"e## c #a8a8b4b46868", -"r## c #a9a9b5b56969", -"t## c #a9a9b5b56b6b", -"y## c #a8a8b6b66969", -"u## c #aaaab5b56969", -"i## c #a8a8b5b56d6d", -"p## c #a9a9b6b66e6e", -"a## c #ababb5b56c6c", -"s## c #aaaab6b66e6e", -"d## c #aaaab7b76f6f", -"f## c #acacb4b46b6b", -"g## c #acacb7b76969", -"h## c #aeaeb5b56f6f", -"j## c #aeaeb6b66d6d", -"k## c #a9a9bbbb6767", -"l## c #acacb8b86666", -"z## c #a8a8b9b96b6b", -"x## c #a8a8baba6868", -"c## c #a9a9bbbb6969", -"v## c #a8a8bbbb6a6a", -"b## c #a8a8b8b86f6f", -"n## c #a9a9b9b96e6e", -"m## c #a8a8bbbb6c6c", -"M## c #a8a8baba6e6e", -"N## c #a9a9bbbb6f6f", -"B## c #aaaabbbb6d6d", -"V## c #aaaababa6f6f", -"C## c #ababbdbd6969", -"Z## c #a9a9bcbc6d6d", -"A## c #a8a8bdbd6e6e", -"S## c #a8a8bebe6c6c", -"D## c #a8a8bfbf6d6d", -"F## c #a8a8bfbf6f6f", -"G## c #ababbcbc6c6c", -"H## c #ababbcbc6e6e", -"J## c #acacbaba6f6f", -"K## c #acacbdbd6f6f", -"L## c #adadbfbf6d6d", -"P## c #a0a0b0b07171", -"I## c #a1a1b1b17070", -"U## c #a0a0b0b07272", -"Y## c #a1a1b1b17272", -"T## c #a1a1b1b17373", -"R## c #a0a0b3b37171", -"E## c #a0a0b3b37373", -"W## c #a2a2b1b17070", -"Q## c #a2a2b0b07272", -"!## c #a3a3b1b17373", -"~## c #a2a2b2b27171", -"^## c #a3a3b2b27171", -"/## c #a2a2b2b27373", -"(## c #a3a3b3b37272", -")## c #a1a1b0b07575", -"_## c #a1a1b0b07777", -"`## c #a0a0b2b27474", -"'## c #a1a1b3b37575", -"]## c #a0a0b2b27676", -"[## c #a1a1b3b37777", -"{## c #a2a2b0b07575", -"}## c #a3a3b1b17474", -"|## c #a2a2b1b17676", -" $# c #a2a2b2b27474", -".$# c #a3a3b3b37474", -"X$# c #a3a3b3b37575", -"o$# c #a3a3b2b27777", -"O$# c #a0a0b5b57070", -"+$# c #a1a1b5b57070", -"@$# c #a0a0b5b57272", -"#$# c #a1a1b4b47272", -"$$$ c #a1a1b6b67171", -"%$$ c #a1a1b6b67373", -"&$$ c #a3a3b4b47070", -"*$$ c #a2a2b5b57373", -"=$$ c #a2a2b6b67171", -"-$$ c #a3a3b7b77070", -";$$ c #a2a2b7b77272", -":$$ c #a3a3b7b77272", -">$$ c #a0a0b4b47575", -",$$ c #a0a0b5b57474", -"<$$ c #a0a0b4b47777", -"1$$ c #a1a1b5b57676", -"2$$ c #a0a0b6b67575", -"3$$ c #a1a1b6b67575", -"4$$ c #a1a1b7b77777", -"5$$ c #a2a2b5b57575", -"6$$ c #a2a2b4b47676", -"7$$ c #a3a3b5b57777", -"8$$ c #a2a2b7b77474", -"9$$ c #a3a3b6b67474", -"0$$ c #a2a2b6b67777", -"q$$ c #a2a2b7b77676", -"w$$ c #a4a4b0b07070", -"e$$ c #a5a5b1b17171", -"r$$ c #a4a4b3b37070", -"t$$ c #a4a4b3b37272", -"y$$ c #a6a6b0b07171", -"u$$ c #a6a6b0b07373", -"i$$ c #a7a7b1b17272", -"p$$ c #a6a6b2b27070", -"a$$ c #a7a7b2b27070", -"s$$ c #a7a7b3b37373", -"d$$ c #a5a5b0b07474", -"f$$ c #a4a4b2b27474", -"g$$ c #a4a4b2b27575", -"h$$ c #a5a5b3b37575", -"j$$ c #a5a5b3b37676", -"k$$ c #a7a7b1b17474", -"l$$ c #a7a7b1b17575", -"z$$ c #a7a7b0b07777", -"x$$ c #a6a6b2b27474", -"c$$ c #a7a7b2b27676", -"v$$ c #a4a4b5b57171", -"b$$ c #a5a5b4b47171", -"n$$ c #a4a4b4b47373", -"m$$ c #a5a5b4b47373", -"M$$ c #a5a5b6b67070", -"N$$ c #a5a5b6b67272", -"B$$ c #a6a6b5b57070", -"V$$ c #a6a6b5b57272", -"C$$ c #a6a6b7b77070", -"Z$$ c #a6a6b7b77171", -"A$$ c #a7a7b6b67171", -"S$$ c #a7a7b7b77070", -"D$$ c #a6a6b7b77373", -"F$$ c #a7a7b6b67373", -"G$$ c #a4a4b4b47575", -"H$$ c #a5a5b5b57474", -"J$$ c #a4a4b4b47676", -"K$$ c #a5a5b5b57676", -"L$$ c #a5a5b5b57777", -"P$$ c #a4a4b7b77575", -"I$$ c #a4a4b7b77777", -"U$$ c #a6a6b5b57474", -"Y$$ c #a6a6b4b47676", -"T$$ c #a6a6b4b47777", -"R$$ c #a7a7b5b57777", -"E$$ c #a6a6b6b67575", -"W$$ c #a7a7b6b67575", -"Q$$ c #a6a6b6b67777", -"!$$ c #a7a7b7b77676", -"~$$ c #a0a0b1b17a7a", -"^$$ c #a1a1b3b37979", -"/$$ c #a0a0b3b37b7b", -"($$ c #a3a3b0b07b7b", -")$$ c #a3a3b2b27979", -"_$$ c #a3a3b2b27b7b", -"`$$ c #a0a0b3b37c7c", -"'$$ c #a0a0b2b27e7e", -"]$$ c #a1a1b2b27e7e", -"[$$ c #a1a1b3b37f7f", -"{$$ c #a2a2b3b37c7c", -"}$$ c #a0a0b4b47979", -"|$$ c #a1a1b5b57878", -" %$ c #a1a1b5b57a7a", -".%$ c #a2a2b4b47878", -"X%$ c #a2a2b4b47a7a", -"o%$ c #a2a2b6b67979", -"O%$ c #a3a3b7b77878", -"+%$ c #a2a2b6b67b7b", -"@%$ c #a3a3b7b77a7a", -"#%$ c #a1a1b4b47c7c", -"$%$ c #a1a1b4b47d7d", -"%%% c #a0a0b4b47f7f", -"&%% c #a1a1b6b67d7d", -"*%% c #a0a0b7b77f7f", -"=%% c #a2a2b5b57d7d", -"-%% c #a3a3b4b47d7d", -";%% c #a2a2b5b57e7e", -":%% c #a2a2b7b77c7c", -">%% c #a3a3b7b77c7c", -",%% c #a2a2b7b77f7f", -"<%% c #a3a3b6b67e7e", -"1%% c #a3a3b6b67f7f", -"2%% c #a4a4b1b17979", -"3%% c #a4a4b3b37878", -"4%% c #a5a5b3b37878", -"5%% c #a4a4b3b37a7a", -"6%% c #a7a7b0b07979", -"7%% c #a4a4b0b07e7e", -"8%% c #a5a5b1b17f7f", -"9%% c #a4a4b2b27d7d", -"0%% c #a5a5b2b27c7c", -"q%% c #a6a6b0b07e7e", -"w%% c #a6a6b3b37e7e", -"e%% c #a5a5b4b47979", -"r%% c #a5a5b4b47b7b", -"t%% c #a4a4b6b67878", -"y%% c #a5a5b7b77979", -"u%% c #a4a4b6b67a7a", -"i%% c #a5a5b7b77b7b", -"p%% c #a6a6b4b47979", -"a%% c #a6a6b5b57a7a", -"s%% c #a6a6b6b67878", -"d%% c #a7a7b7b77878", -"f%% c #a7a7b7b77979", -"g%% c #a5a5b7b77d7d", -"h%% c #a4a4b7b77f7f", -"j%% c #a6a6b5b57c7c", -"k%% c #a7a7b4b47c7c", -"l%% c #a7a7b4b47f7f", -"z%% c #a7a7b6b67d7d", -"x%% c #a7a7b6b67f7f", -"c%% c #a2a2b8b87070", -"v%% c #a3a3b9b97070", -"b%% c #a3a3b9b97171", -"n%% c #a3a3b8b87373", -"m%% c #a0a0bbbb7676", -"M%% c #a3a3b8b87575", -"N%% c #a3a3b8b87777", -"B%% c #a2a2bcbc7575", -"V%% c #a4a4b8b87070", -"C%% c #a4a4b8b87171", -"Z%% c #a5a5b9b97171", -"A%% c #a4a4b8b87373", -"S%% c #a5a5b9b97272", -"D%% c #a4a4baba7171", -"F%% c #a5a5bbbb7070", -"G%% c #a4a4baba7272", -"H%% c #a5a5bbbb7272", -"J%% c #a5a5bbbb7373", -"K%% c #a7a7b8b87171", -"L%% c #a7a7b8b87272", -"P%% c #a6a6bbbb7070", -"I%% c #a6a6baba7272", -"U%% c #a6a6baba7373", -"Y%% c #a4a4b9b97474", -"T%% c #a5a5b9b97474", -"R%% c #a4a4b9b97676", -"E%% c #a5a5b8b87676", -"W%% c #a5a5baba7575", -"Q%% c #a5a5baba7777", -"!%% c #a7a7b8b87474", -"~%% c #a6a6baba7575", -"^%% c #a7a7bbbb7474", -"/%% c #a6a6bbbb7676", -"(%% c #a7a7bbbb7676", -")%% c #a6a6bcbc7171", -"_%% c #a7a7bcbc7171", -"`%% c #a6a6bcbc7373", -"'%% c #a7a7bdbd7272", -"]%% c #a7a7bebe7070", -"[%% c #a6a6bcbc7474", -"{%% c #a7a7bdbd7474", -"}%% c #a7a7bdbd7575", -"|%% c #a7a7bcbc7777", -" &% c #a0a0baba7979", -".&% c #a2a2b8b87878", -"X&% c #a0a0baba7d7d", -"o&% c #a1a1bbbb7c7c", -"O&% c #a1a1bbbb7e7e", -"+&% c #a1a1bcbc7979", -"@&% c #a0a0bcbc7f7f", -"#&% c #a2a2bcbc7d7d", -"$&% c #a3a3bdbd7c7c", -"%&% c #a4a4b8b87979", -"&&& c #a4a4b9b97878", -"*&& c #a5a5b8b87878", -"=&& c #a4a4b8b87b7b", -"-&& c #a5a5b9b97a7a", -";&& c #a5a5baba7979", -":&& c #a4a4baba7a7a", -">&& c #a5a5bbbb7a7a", -",&& c #a6a6b8b87a7a", -"<&& c #a7a7b9b97b7b", -"1&& c #a6a6bbbb7878", -"2&& c #a6a6baba7b7b", -"3&& c #a6a6bbbb7a7a", -"4&& c #a7a7baba7a7a", -"5&& c #a4a4b8b87d7d", -"6&& c #a5a5b9b97c7c", -"7&& c #a4a4b9b97e7e", -"8&& c #a5a5b9b97e7e", -"9&& c #a5a5bbbb7d7d", -"0&& c #a7a7b9b97d7d", -"q&& c #a6a6b8b87e7e", -"w&& c #a6a6baba7d7d", -"e&& c #a7a7bbbb7c7c", -"r&& c #a6a6baba7f7f", -"t&& c #a7a7bbbb7e7e", -"y&& c #a4a4bfbf7a7a", -"u&& c #a5a5bebe7a7a", -"i&& c #a7a7bcbc7979", -"p&& c #a7a7bcbc7b7b", -"a&& c #a4a4bfbf7c7c", -"s&& c #a5a5bebe7c7c", -"d&& c #a7a7bdbd7c7c", -"f&& c #a7a7bdbd7d7d", -"g&& c #a8a8b1b17272", -"h&& c #a8a8b3b37171", -"j&& c #a8a8b2b27373", -"k&& c #a9a9b2b27373", -"l&& c #aaaab0b07272", -"z&& c #a9a9b1b17676", -"x&& c #a9a9b3b37474", -"c&& c #a8a8b2b27676", -"v&& c #a8a8b3b37777", -"b&& c #a9a9b3b37676", -"n&& c #ababb0b07676", -"m&& c #aaaab3b37474", -"M&& c #aaaab2b27777", -"N&& c #a9a9b4b47070", -"B&& c #a8a8b4b47272", -"V&& c #a9a9b5b57373", -"C&& c #a9a9b6b67171", -"Z&& c #a8a8b7b77272", -"A&& c #ababb4b47171", -"S&& c #aaaab5b57373", -"D&& c #ababb4b47373", -"F&& c #aaaab7b77272", -"G&& c #ababb6b67272", -"H&& c #a8a8b4b47474", -"J&& c #a9a9b5b57575", -"K&& c #a8a8b7b77474", -"L&& c #aaaab4b47777", -"P&& c #ababb7b77575", -"I&& c #aaaab6b67676", -"U&& c #ababb7b77777", -"Y&& c #acacb3b37070", -"T&& c #aeaeb3b37171", -"R&& c #acacb1b17777", -"E&& c #adadb1b17676", -"W&& c #acacb2b27474", -"Q&& c #adadb3b37575", -"!&& c #adadb4b47070", -"~&& c #acacb7b77272", -"^&& c #acacb5b57474", -"/&& c #acacb6b67777", -"(&& c #a8a8b1b17878", -")&& c #a8a8b2b27d7d", -"_&& c #aaaab3b37e7e", -"`&& c #a9a9b4b47878", -"'&& c #a8a8b6b67878", -"]&& c #a8a8b6b67979", -"[&& c #aaaab4b47878", -"{&& c #ababb5b57878", -"}&& c #ababb5b57979", -"|&& c #aaaab5b57b7b", -" *& c #aaaab6b67878", -".*& c #a8a8b7b77c7c", -"X*& c #ababb4b47f7f", -"o*& c #ababb6b67c7c", -"O*& c #aeaeb3b37979", -"+*& c #acacb3b37d7d", -"@*& c #acacb6b67979", -"#*& c #acacb6b67a7a", -"$*& c #adadb7b77a7a", -"%*& c #afafb4b47a7a", -"&*& c #aeaeb6b67b7b", -"*** c #adadb6b67d7d", -"=** c #a8a8b8b87171", -"-** c #a9a9b9b97070", -";** c #a8a8b9b97272", -":** c #a8a8b9b97373", -">** c #a9a9b8b87373", -",** c #a9a9b9b97272", -"<** c #a8a8baba7070", -"1** c #a9a9bbbb7171", -"2** c #a9a9baba7373", -"3** c #ababb8b87070", -"4** c #ababb8b87373", -"5** c #aaaababa7171", -"6** c #ababbbbb7272", -"7** c #a8a8b9b97575", -"8** c #a9a9b8b87575", -"9** c #a8a8b8b87777", -"0** c #a9a9b8b87777", -"q** c #a9a9baba7474", -"w** c #a9a9baba7676", -"e** c #aaaab9b97474", -"r** c #aaaab9b97676", -"t** c #aaaabbbb7575", -"y** c #ababbaba7575", -"u** c #ababbbbb7474", -"i** c #aaaabbbb7777", -"p** c #ababbaba7777", -"a** c #a8a8bdbd7070", -"s** c #a8a8bdbd7272", -"d** c #a8a8bfbf7171", -"f** c #a9a9bebe7171", -"g** c #a8a8bebe7373", -"h** c #a9a9bebe7373", -"j** c #aaaabcbc7070", -"k** c #ababbdbd7171", -"l** c #aaaabcbc7272", -"z** c #aaaabfbf7070", -"x** c #a8a8bcbc7474", -"c** c #a9a9bdbd7575", -"v** c #a8a8bcbc7777", -"b** c #a9a9bdbd7676", -"n** c #a8a8bebe7575", -"m** c #a9a9bfbf7474", -"M** c #a8a8bebe7676", -"N** c #a9a9bfbf7676", -"B** c #a9a9bfbf7777", -"V** c #ababbcbc7575", -"C** c #ababbcbc7676", -"Z** c #aaaabfbf7474", -"A** c #aaaabebe7676", -"S** c #aaaabebe7777", -"D** c #ababbfbf7777", -"F** c #adadb9b97171", -"G** c #adadb8b87373", -"H** c #adadbaba7272", -"J** c #aeaebbbb7373", -"K** c #afafbbbb7373", -"L** c #acacb9b97474", -"P** c #acacb8b87676", -"I** c #adadbaba7474", -"U** c #adadbaba7575", -"Y** c #acacbbbb7676", -"T** c #aeaeb9b97777", -"R** c #aeaebbbb7575", -"E** c #aeaebbbb7676", -"W** c #afafbaba7676", -"Q** c #acacbcbc7171", -"!** c #acacbcbc7373", -"~** c #adadbdbd7272", -"^** c #acacbfbf7070", -"/** c #adadbebe7070", -"(** c #acacbebe7272", -")** c #adadbfbf7373", -"_** c #afafbdbd7070", -"`** c #aeaebfbf7171", -"'** c #aeaebebe7373", -"]** c #acacbcbc7575", -"[** c #adadbdbd7474", -"{** c #acacbdbd7676", -"}** c #acacbdbd7777", -"|** c #adadbcbc7777", -" =* c #adadbdbd7676", -".=* c #acacbebe7474", -"X=* c #adadbfbf7575", -"o=* c #adadbebe7777", -"O=* c #afafbcbc7474", -"+=* c #afafbcbc7777", -"@=* c #aeaebebe7575", -"#=* c #a8a8b8b87979", -"$=* c #a9a9b9b97878", -"%=* c #a8a8b8b87a7a", -"&=* c #a9a9b9b97a7a", -"*=* c #a9a9b9b97b7b", -"=== c #aaaab9b97878", -"-== c #aaaab8b87b7b", -";== c #ababb9b97b7b", -":== c #aaaababa7979", -">== c #ababbaba7979", -",== c #aaaababa7b7b", -"<== c #ababbbbb7a7a", -"1== c #a9a9b8b87d7d", -"2== c #a8a8baba7c7c", -"3== c #a9a9bbbb7d7d", -"4== c #ababb9b97c7c", -"5== c #aaaab9b97e7e", -"6== c #aaaababa7c7c", -"7== c #ababbbbb7c7c", -"8== c #ababbbbb7d7d", -"9== c #ababbaba7f7f", -"0== c #a8a8bdbd7878", -"q== c #a9a9bdbd7878", -"w== c #a8a8bdbd7a7a", -"e== c #a9a9bcbc7a7a", -"r== c #a9a9bebe7979", -"t== c #a9a9bebe7b7b", -"y== c #ababbcbc7878", -"u== c #aaaabebe7979", -"i== c #aaaabfbf7a7a", -"p== c #a8a8bcbc7d7d", -"a== c #a8a8bdbd7c7c", -"s== c #a9a9bcbc7c7c", -"d== c #a8a8bcbc7f7f", -"f== c #a9a9bdbd7e7e", -"g== c #a8a8bebe7d7d", -"h== c #a9a9bebe7d7d", -"j== c #aaaabcbc7e7e", -"k== c #ababbdbd7f7f", -"l== c #aaaabfbf7c7c", -"z== c #aaaabebe7f7f", -"x== c #aaaabfbf7e7e", -"c== c #adadb9b97979", -"v== c #acacb8b87a7a", -"b== c #adadb9b97b7b", -"n== c #acacbbbb7878", -"m== c #aeaeb8b87979", -"M== c #aeaebaba7878", -"N== c #afafbaba7878", -"B== c #afafbbbb7979", -"V== c #aeaebaba7a7a", -"C== c #adadb8b87e7e", -"Z== c #acacbaba7f7f", -"A== c #adadbbbb7e7e", -"S== c #aeaeb8b87c7c", -"D== c #aeaeb9b97d7d", -"F== c #afafb9b97d7d", -"G== c #afafb8b87f7f", -"H== c #acacbdbd7979", -"J== c #adadbcbc7979", -"K== c #acacbcbc7b7b", -"L== c #adadbebe7878", -"P== c #adadbebe7a7a", -"I== c #aeaebfbf7878", -"U== c #aeaebfbf7979", -"Y== c #afafbebe7979", -"T== c #aeaebfbf7b7b", -"R== c #afafbebe7b7b", -"E== c #acacbcbc7d7d", -"W== c #adadbdbd7c7c", -"Q== c #acacbcbc7e7e", -"!== c #adadbdbd7e7e", -"~== c #adadbdbd7f7f", -"^== c #acacbfbf7f7f", -"/== c #aeaebcbc7f7f", -"(== c #aeaebebe7d7d", -")== c #aeaebebe7f7f", -"_== c #afafbfbf7e7e", -"`== c #b2b2baba6d6d", -"'== c #b1b1bdbd6b6b", -"]== c #b1b1bcbc6d6d", -"[== c #b0b0b5b57b7b", -"{== c #b0b0b5b57f7f", -"}== c #b1b1b4b47f7f", -"|== c #b2b2b7b77f7f", -" -= c #b5b5b6b67c7c", -".-= c #b0b0baba7171", -"X-= c #b1b1baba7777", -"o-= c #b0b0bdbd7575", -"O-= c #b0b0bdbd7777", -"+-= c #b1b1bebe7676", -"@-= c #b3b3bfbf7575", -"#-= c #b4b4bbbb7777", -"$-= c #b5b5bdbd7272", -"%-= c #b4b4bfbf7070", -"&-= c #b6b6bebe7575", -"*-= c #b0b0baba7b7b", -"=-= c #b2b2b8b87a7a", -"--- c #b0b0baba7d7d", -";-- c #b0b0baba7e7e", -":-- c #b0b0bbbb7f7f", -">-- c #b1b1bbbb7e7e", -",-- c #b1b1bbbb7f7f", -"<-- c #b3b3b9b97d7d", -"1-- c #b0b0bdbd7878", -"2-- c #b1b1bebe7878", -"3-- c #b2b2bfbf7979", -"4-- c #b2b2bfbf7a7a", -"5-- c #b1b1bdbd7d7d", -"6-- c #b0b0bcbc7e7e", -"7-- c #b0b0bfbf7c7c", -"8-- c #b2b2bcbc7d7d", -"9-- c #b2b2bcbc7f7f", -"0-- c #b2b2bebe7c7c", -"q-- c #b5b5bbbb7f7f", -"w-- c #b6b6bcbc7e7e", -"e-- c #a8a8c1c16666", -"r-- c #a8a8c0c06a6a", -"t-- c #a9a9c1c16b6b", -"y-- c #aaaac3c36868", -"u-- c #a9a9c0c06e6e", -"i-- c #aaaac0c06d6d", -"p-- c #aaaac1c16f6f", -"a-- c #ababc1c16f6f", -"s-- c #aaaac2c26c6c", -"d-- c #ababc3c36d6d", -"f-- c #ababc3c36f6f", -"g-- c #ababc4c46969", -"h-- c #adadc0c06f6f", -"j-- c #acacc2c26f6f", -"k-- c #aeaec0c06e6e", -"l-- c #afafc1c16f6f", -"z-- c #afafc7c76f6f", -"x-- c #a6a6c1c17c7c", -"c-- c #a7a7c2c27f7f", -"v-- c #a9a9c0c07070", -"b-- c #a9a9c0c07272", -"n-- c #aaaac1c17171", -"m-- c #aaaac1c17373", -"M-- c #ababc0c07373", -"N-- c #ababc2c27070", -"B-- c #ababc2c27272", -"V-- c #aaaac0c07575", -"C-- c #ababc0c07575", -"Z-- c #aaaac0c07777", -"A-- c #ababc1c17676", -"S-- c #ababc2c27474", -"D-- c #adadc0c07171", -"F-- c #acacc1c17272", -"G-- c #acacc3c37171", -"H-- c #acacc3c37373", -"J-- c #afafc0c07070", -"K-- c #acacc1c17676", -"L-- c #acacc3c37575", -"P-- c #acacc2c27777", -"I-- c #aeaec0c07474", -"U-- c #aeaec0c07676", -"Y-- c #afafc1c17777", -"T-- c #aeaec3c37676", -"R-- c #acacc4c47070", -"E-- c #adadc5c57171", -"W-- c #adadc4c47272", -"Q-- c #aeaec4c47272", -"!-- c #aeaec5c57373", -"~-- c #afafc5c57373", -"^-- c #aeaec6c67070", -"/-- c #aeaec6c67272", -"(-- c #afafc7c77373", -")-- c #adadc4c47474", -"_-- c #adadc4c47676", -"`-- c #aeaec5c57575", -"'-- c #aeaec5c57777", -"]-- c #afafc6c67676", -"[-- c #aaaac0c07878", -"{-- c #ababc1c17878", -"}-- c #ababc1c17979", -"|-- c #ababc0c07b7b", -" ;- c #ababc0c07d7d", -".;- c #aaaac0c07f7f", -"X;- c #ababc0c07f7f", -"o;- c #a9a9c4c47f7f", -"O;- c #ababc5c57e7e", -"+;- c #acacc0c07878", -"@;- c #acacc0c07979", -"#;- c #adadc1c17979", -"$;- c #acacc0c07b7b", -"%;- c #adadc1c17a7a", -"&;- c #acacc2c27979", -"*;- c #adadc3c37878", -"=;- c #acacc2c27a7a", -"-;- c #adadc3c37a7a", -";;; c #adadc3c37b7b", -":;; c #afafc0c07979", -">;; c #afafc0c07a7a", -",;; c #aeaec3c37878", -"<;; c #aeaec2c27b7b", -"1;; c #afafc3c37b7b", -"2;; c #acacc1c17c7c", -"3;; c #adadc1c17c7c", -"4;; c #acacc1c17e7e", -"5;; c #adadc0c07e7e", -"6;; c #adadc2c27d7d", -"7;; c #adadc2c27f7f", -"8;; c #afafc0c07c7c", -"9;; c #aeaec2c27d7d", -"0;; c #afafc3c37c7c", -"q;; c #aeaec3c37e7e", -"w;; c #afafc3c37e7e", -"e;; c #aeaec4c47979", -"r;; c #afafc4c47979", -"t;; c #aeaec4c47b7b", -"y;; c #afafc5c57a7a", -"u;; c #afafc6c67878", -"i;; c #aeaec4c47c7c", -"p;; c #afafc5c57c7c", -"a;; c #afafc5c57d7d", -"s;; c #afafc4c47f7f", -"d;; c #b0b0c2c26c6c", -"f;; c #b1b1c4c46b6b", -"g;; c #b7b7c0c06f6f", -"h;; c #b6b6c2c26c6c", -"j;; c #b9b9c6c66e6e", -"k;; c #b0b0c1c17373", -"l;; c #b0b0c3c37171", -"z;; c #b0b0c3c37272", -"x;; c #b0b0c0c07777", -"c;; c #b1b1c3c37777", -"v;; c #b3b3c1c17474", -"b;; c #b2b2c3c37575", -"n;; c #b2b2c2c27777", -"m;; c #b0b0c6c67373", -"M;; c #b3b3c5c57171", -"N;; c #b2b2c4c47272", -"B;; c #b2b2c5c57373", -"V;; c #b3b3c5c57373", -"C;; c #b1b1c4c47575", -"Z;; c #b0b0c5c57676", -"A;; c #b0b0c7c77575", -"S;; c #b1b1c7c77474", -"D;; c #b0b0c7c77777", -"F;; c #b2b2c5c57474", -"G;; c #b3b3c4c47474", -"H;; c #b3b3c4c47676", -"J;; c #b3b3c6c67575", -"K;; c #b3b3c6c67777", -"L;; c #b6b6c1c17373", -"P;; c #b4b4c2c27777", -"I;; c #b6b6c2c27676", -"U;; c #b7b7c2c27676", -"Y;; c #b4b4c5c57777", -"T;; c #b4b4c7c77575", -"R;; c #b4b4c7c77676", -"E;; c #b5b5c6c67676", -"W;; c #b6b6c7c77777", -"Q;; c #b0b0c0c07979", -"!;; c #b1b1c1c17878", -"~;; c #b0b0c1c17a7a", -"^;; c #b0b0c1c17b7b", -"/;; c #b1b1c0c07b7b", -"(;; c #b0b0c2c27878", -");; c #b1b1c3c37979", -"_;; c #b1b1c2c27b7b", -"`;; c #b3b3c0c07b7b", -"';; c #b2b2c2c27979", -"];; c #b3b3c3c37878", -"[;; c #b3b3c3c37a7a", -"{;; c #b1b1c0c07d7d", -"};; c #b0b0c0c07f7f", -"|;; c #b1b1c2c27c7c", -" :; c #b1b1c2c27e7e", -".:; c #b2b2c1c17e7e", -"X:; c #b2b2c3c37d7d", -"o:; c #b3b3c2c27d7d", -"O:; c #b3b3c3c37c7c", -"+:; c #b2b2c3c37f7f", -"@:; c #b0b0c5c57878", -"#:; c #b0b0c7c77979", -"$:; c #b0b0c6c67b7b", -"%:; c #b1b1c6c67b7b", -"&:; c #b3b3c5c57979", -"*:; c #b2b2c7c77878", -"=:; c #b0b0c4c47c7c", -"-:; c #b0b0c4c47d7d", -";:; c #b0b0c4c47f7f", -"::: c #b1b1c5c57e7e", -">:: c #b0b0c6c67d7d", -",:: c #b1b1c7c77c7c", -"<:: c #b0b0c6c67e7e", -"1:: c #b1b1c7c77e7e", -"2:: c #b1b1c7c77f7f", -"3:: c #b3b3c4c47d7d", -"4:: c #b3b3c4c47e7e", -"5:: c #b2b2c6c67e7e", -"6:: c #b3b3c7c77f7f", -"7:: c #b4b4c1c17b7b", -"8:: c #b5b5c0c07b7b", -"9:: c #b6b6c2c27878", -"0:: c #b6b6c2c27a7a", -"q:: c #b5b5c0c07e7e", -"w:: c #b5b5c2c27d7d", -"e:: c #b4b4c3c37e7e", -"r:: c #b6b6c1c17d7d", -"t:: c #b6b6c1c17f7f", -"y:: c #b6b6c3c37d7d", -"u:: c #b7b7c2c27d7d", -"i:: c #b5b5c5c57a7a", -"p:: c #b4b4c6c67a7a", -"a:: c #b5b5c7c77b7b", -"s:: c #b7b7c5c57a7a", -"d:: c #b6b6c7c77979", -"f:: c #b5b5c5c57c7c", -"g:: c #b4b4c5c57e7e", -"h:: c #b4b4c5c57f7f", -"j:: c #b5b5c4c47f7f", -"k:: c #b5b5c7c77d7d", -"l:: c #b5b5c6c67f7f", -"z:: c #b7b7c4c47f7f", -"x:: c #b6b6c6c67d7d", -"c:: c #b7b7c7c77c7c", -"v:: c #b1b1c9c97171", -"b:: c #b0b0c8c87474", -"n:: c #b1b1c9c97575", -"m:: c #b2b2c9c97777", -"M:: c #b3b3cbcb7575", -"N:: c #b2b2caca7676", -"B:: c #b6b6c9c97070", -"V:: c #b7b7c9c97373", -"C:: c #b5b5c8c87676", -"Z:: c #b5b5c8c87777", -"A:: c #b5b5cbcb7676", -"S:: c #b1b1c8c87878", -"D:: c #b1b1c8c87a7a", -"F:: c #b2b2c9c97979", -"G:: c #b2b2c9c97b7b", -"H:: c #b3b3caca7a7a", -"J:: c #b2b2c8c87d7d", -"K:: c #b2b2c8c87f7f", -"L:: c #b3b3c9c97e7e", -"P:: c #b3b3caca7c7c", -"I:: c #b4b4cbcb7979", -"U:: c #b5b5caca7b7b", -"Y:: c #b6b6c9c97878", -"T:: c #b7b7caca7878", -"R:: c #b4b4c9c97e7e", -"E:: c #b4b4cbcb7d7d", -"W:: c #b4b4caca7f7f", -"Q:: c #b5b5caca7f7f", -"!:: c #b6b6c8c87e7e", -"~:: c #b7b7c9c97f7f", -"^:: c #b6b6cbcb7e7e", -"/:: c #b5b5cdcd7979", -"(:: c #b6b6cece7878", -"):: c #b6b6cece7a7a", -"_:: c #b5b5cccc7c7c", -"`:: c #b5b5cccc7e7e", -"':: c #b6b6cdcd7d7d", -"]:: c #b7b7cccc7d7d", -"[:: c #b6b6cdcd7f7f", -"{:: c #b7b7cece7e7e", -"}:: c #b8b8c0c07575", -"|:: c #bbbbc7c77171", -" >: c #bcbcc6c67070", -".>: c #b8b8c3c37e7e", -"X>: c #b8b8c3c37f7f", -"o>: c #b8b8c6c67979", -"O>: c #bbbbc6c67a7a", -"+>: c #b9b9c5c57d7d", -"@>: c #b9b9c4c47f7f", -"#>: c #bbbbc5c57c7c", -"$>: c #bcbcc4c47979", -"%>: c #b8b8caca7474", -"&>: c #b9b9cbcb7777", -"*>: c #bdbdc9c97373", -"=>: c #b8b8c9c97b7b", -"->: c #babacbcb7b7b", -";>: c #b8b8c8c87d7d", -":>: c #b9b9cbcb7f7f", -">>> c #babac8c87d7d", -",>> c #bbbbc9c97c7c", -"<>> c #babacaca7f7f", -"1>> c #b9b9cccc7d7d", -"2>> c #b8b8cdcd7e7e", -"3>> c #b8b8cfcf7f7f", -"4>> c #b9b9cece7f7f", -"5>> c #bbbbcece7f7f", -"6>> c #bcbcc8c87c7c", -"7>> c #bcbccaca7d7d", -"8>> c #bdbdcbcb7e7e", -"9>> c #bdbdcfcf7979", -"0>> c #bcbccece7a7a", -"q>> c #bebecccc7f7f", -"w>> c #bbbbd3d37d7d", -"e>> c #babad2d27e7e", -"r>> c #bbbbd3d37f7f", -"t>> c #bfbfd1d17d7d", -"y>> c #808080808080", -"u>> c #818181818181", -"i>> c #828282828080", -"p>> c #838383838181", -"a>> c Gray51", -"s>> c #838383838383", -"d>> c #808085858181", -"f>> c #808087878080", -"g>> c #818186868080", -"h>> c #808086868282", -"j>> c #828287878383", -"k>> c #818185858484", -"l>> c #818187878585", -"z>> c #828286868585", -"x>> c #848484848484", -"c>> c Gray52", -"v>> c #868686868686", -"b>> c Gray53", -"n>> c #818188888080", -"m>> c #81818b8b8080", -"M>> c #80808a8a8282", -"N>> c #81818b8b8383", -"B>> c #828289898282", -"V>> c #83838a8a8383", -"C>> c #808089898484", -"Z>> c #828288888484", -"A>> c #838388888484", -"S>> c #838389898787", -"D>> c #81818d8d8181", -"F>> c #81818d8d8383", -"G>> c #82828c8c8383", -"H>> c #83838d8d8282", -"J>> c #83838d8d8484", -"K>> c #84848b8b8383", -"L>> c #868689898282", -"P>> c #878788888383", -"I>> c #848489898585", -"U>> c #84848b8b8484", -"Y>> c #85858a8a8484", -"T>> c #85858a8a8686", -"R>> c #85858b8b8787", -"E>> c #878789898484", -"W>> c #86868b8b8787", -"Q>> c #84848c8c8181", -"!>> c #84848e8e8383", -"~>> c #87878d8d8181", -"^>> c #86868e8e8383", -"/>> c #85858c8c8484", -"(>> c #85858c8c8585", -")>> c #85858f8f8787", -"_>> c #86868d8d8585", -"`>> c #86868d8d8686", -"'>> c #87878f8f8484", -"]>> c #87878e8e8686", -"[>> c #87878e8e8787", -"{>> c #83838e8e8888", -"}>> c #85858e8e8989", -"|>> c #86868c8c8888", -" ,> c #87878c8c8888", -".,> c #86868c8c8a8a", -"X,> c #86868c8c8c8c", -"o,> c #888888888686", -"O,> c #88888b8b8484", -"+,> c #8b8b8d8d8080", -"@,> c #89898c8c8585", -"#,> c #88888f8f8787", -"$,> c #8d8d8e8e8686", -"%,> c #888888888888", -"&,> c #898989898989", -"*,> c Gray54", -"=,> c #8b8b8b8b8b8b", -"-,> c #88888c8c8b8b", -";,> c #89898f8f8b8b", -":,> c Gray55", -">,> c #8d8d8d8d8d8d", -",,, c #8e8e8e8e8e8e", -"<,, c Gray56", -"1,, c #878792928282", -"2,, c #848490908686", -"3,, c #868690908585", -"4,, c #878791918686", -"5,, c #878793938787", -"6,, c #868690908888", -"7,, c #878791918989", -"8,, c #868692928888", -"9,, c #878793938989", -"0,, c #878792928a8a", -"q,, c #878792928c8c", -"w,, c #898991918282", -"e,, c #898991918686", -"r,, c #888897978080", -"t,, c #8b8b96968686", -"y,, c #8d8d91918080", -"u,, c #8c8c94948787", -"i,, c #898990908989", -"p,, c #8a8a91918989", -"a,, c #8a8a91918a8a", -"s,, c #8b8b92928a8a", -"d,, c #8b8b92928b8b", -"f,, c #8a8a94948989", -"g,, c #8b8b95958a8a", -"h,, c #8a8a95958d8d", -"j,, c #8b8b95958d8d", -"k,, c #8b8b96968e8e", -"l,, c #8c8c93938b8b", -"z,, c #8e8e90908b8b", -"x,, c #8d8d93938f8f", -"c,, c #8c8c96968b8b", -"v,, c #8d8d94948c8c", -"b,, c #8c8c96968e8e", -"n,, c #8c8c97978f8f", -"m,, c #8d8d97978e8e", -"M,, c #8d8d97978f8f", -"N,, c #8e8e95958d8d", -"B,, c #8e8e95958e8e", -"V,, c #8b8b9a9a8383", -"C,, c #8c8c9c9c8181", -"Z,, c #8d8d9c9c8787", -"A,, c #8e8e9d9d8686", -"S,, c #8f8f9e9e8787", -"D,, c #8e8e98988d8d", -"F,, c #8e8e97979292", -"G,, c #8e8e98989090", -"H,, c #919194948383", -"J,, c #909094948585", -"K,, c #909097978585", -"L,, c #909097978787", -"P,, c #909097978f8f", -"I,, c #959597978a8a", -"U,, c #969697978f8f", -"Y,, c #919199998181", -"T,, c #93939b9b8484", -"R,, c #93939e9e8080", -"E,, c #93939d9d8585", -"W,, c #959599998080", -"Q,, c #97979b9b8282", -"!,, c #94949d9d8080", -"~,, c #95959e9e8181", -"^,, c #96969f9f8484", -"/,, c #909090909090", -"(,, c Gray57", -"),, c #929292929292", -"_,, c #939393939393", -"`,, c #919197979393", -"',, c #939395959090", -"],, c Gray58", -"[,, c #959595959595", -"{,, c Gray59", -"},, c #979797979797", -"|,, c #919198989090", -" <, c #90909b9b9393", -".<, c #92929c9c9191", -"X<, c #91919c9c9494", -"o<, c #92929c9c9494", -"O<, c #969698989393", -"+<, c #96969e9e9393", -"@<, c #95959f9f9797", -"#<, c #94949f9f9999", -"$<, c #95959e9e9999", -"%<, c #989898989898", -"&<, c Gray60", -"*<, c #9a9a9a9a9a9a", -"=<, c #9b9b9b9b9b9b", -"-<, c Gray61", -";<, c #9d9d9d9d9d9d", -":<, c Gray62", -"><, c #9f9f9f9f9f9f", -",<, c #8e8ea2a28686", -"<<< c #8c8ca4a48484", -"1<< c #8e8ea6a68686", -"2<< c #8f8fa7a78787", -"3<< c #8f8faaaa8181", -"4<< c #9090a0a08383", -"5<< c #9090a5a58686", -"6<< c #9595a3a38080", -"7<< c #9797a0a08383", -"8<< c #9696a0a08787", -"9<< c #9797a5a58484", -"0<< c #9191a4a48888", -"q<< c #9393a5a58b8b", -"w<< c #9494a4a48989", -"e<< c #9292a8a88282", -"r<< c #9696acac8686", -"t<< c #9797adad8787", -"y<< c #9090a8a88888", -"u<< c #9595aaaa8b8b", -"i<< c #9595a8a88c8c", -"p<< c #9696abab8c8c", -"a<< c #9595afaf8888", -"s<< c #9696acac8888", -"d<< c #9898a2a28080", -"f<< c #9999a2a28585", -"g<< c #9898a4a48080", -"h<< c #9898a7a78080", -"j<< c #9b9ba5a58080", -"k<< c #9a9aa4a48282", -"l<< c #9b9ba5a58282", -"z<< c #9a9aa6a68080", -"x<< c #9c9ca2a28080", -"c<< c #9d9da2a28282", -"v<< c #9d9da5a58080", -"b<< c #9c9ca6a68181", -"n<< c #9c9ca6a68383", -"m<< c #9d9da4a48585", -"M<< c #9d9da7a78484", -"N<< c #9c9ca7a78787", -"B<< c #9f9fa6a68585", -"V<< c #9b9ba3a38b8b", -"C<< c #9f9fa5a58989", -"Z<< c #9e9ea7a78888", -"A<< c #9f9fa7a78f8f", -"S<< c #9b9baaaa8181", -"D<< c #9b9baaaa8383", -"F<< c #9c9ca8a88080", -"G<< c #9d9da8a88080", -"H<< c #9d9da9a98181", -"J<< c #9d9da9a98383", -"K<< c #9e9ea9a98181", -"L<< c #9f9faaaa8080", -"P<< c #9f9faaaa8282", -"I<< c #9c9cabab8484", -"U<< c #9e9ea8a88585", -"Y<< c #9f9fa9a98484", -"T<< c #9e9ea9a98787", -"R<< c #9f9fabab8585", -"E<< c #9c9cadad8080", -"W<< c #9e9eaeae8181", -"Q<< c #9f9fafaf8080", -"!<< c #9f9faeae8383", -"~<< c #9d9dacac8585", -"^<< c #9c9caeae8484", -"/<< c #9e9eadad8484", -"(<< c #9999a9a98e8e", -")<< c #9999acac8e8e", -"_<< c #9999aeae8f8f", -"`<< c #9f9fa8a88b8b", -"'<< c #9d9dacac8b8b", -"]<< c #9f9fadad8989", -"[<< c #9696a0a09898", -"{<< c #9898a2a29999", -"}<< c #9898a5a59e9e", -"|<< c #9999acac9090", -" 1< c #9b9baeae9292", -".1< c #9898b1b18787", -"X1< c #9a9ab4b48484", -"o1< c #9e9eb0b08080", -"O1< c #9f9fb0b08383", -"+1< c #9f9fb3b38080", -"@1< c #9d9db2b28787", -"#1< c #9d9db4b48080", -"$1< c #9d9db5b58181", -"%1< c #9f9fb6b68282", -"&1< c #9d9db7b78787", -"*1< c #9e9eb8b88b8b", -"=1< c #9d9db8b88f8f", -"-1< c #9d9db0b09292", -";1< c #9e9eb3b39494", -":1< c #9f9fb2b29494", -">1< c #a0a0a8a88383", -",1< c #a0a0abab8383", -"<1< c #a3a3a8a88080", -"111 c #a3a3a9a98383", -"211 c #a2a2aaaa8181", -"311 c #a2a2aaaa8383", -"411 c #a1a1acac8181", -"511 c #a1a1aeae8383", -"611 c #a3a3acac8181", -"711 c #a2a2afaf8181", -"811 c #a1a1acac8484", -"911 c #a2a2adad8585", -"011 c #a4a4a9a98181", -"q11 c #a6a6abab8282", -"w11 c #a4a4adad8282", -"e11 c #a4a4afaf8585", -"r11 c #a6a6afaf8484", -"t11 c #a0a0a9a98c8c", -"y11 c #a2a2abab8e8e", -"u11 c #a1a1adad8989", -"i11 c #a1a1afaf8b8b", -"p11 c #a3a3adad8888", -"a11 c #a3a3afaf8989", -"s11 c #a3a3aeae8c8c", -"d11 c #a4a4a9a98989", -"f11 c #a4a4abab8989", -"g11 c #a5a5afaf8a8a", -"h11 c #a5a5afaf8c8c", -"j11 c #aaaaafaf8686", -"k11 c #afafadad8787", -"l11 c #a9a9afaf8989", -"z11 c #a1a1abab9090", -"x11 c #a1a1abab9292", -"c11 c #a0a0b0b08383", -"v11 c #a0a0b2b28080", -"b11 c #a1a1b3b38181", -"n11 c #a2a2b2b28181", -"m11 c #a3a3b3b38282", -"M11 c #a1a1b0b08787", -"N11 c #a3a3b0b08484", -"B11 c #a3a3b2b28787", -"V11 c #a1a1b5b58080", -"C11 c #a0a0b7b78181", -"Z11 c #a2a2b4b48080", -"A11 c #a3a3b5b58181", -"S11 c #a2a2b4b48282", -"D11 c #a3a3b5b58383", -"F11 c #a0a0b6b68787", -"G11 c #a3a3b5b58585", -"H11 c #a3a3b4b48787", -"J11 c #a4a4b0b08282", -"K11 c #a5a5b2b28686", -"L11 c #a6a6b2b28484", -"P11 c #a6a6b3b38787", -"I11 c #a4a4b5b58181", -"U11 c #a4a4b7b78080", -"Y11 c #a4a4b6b68282", -"T11 c #a5a5b7b78383", -"R11 c #a6a6b4b48181", -"E11 c #a7a7b5b58080", -"W11 c #a4a4b6b68484", -"Q11 c #a4a4b6b68686", -"!11 c #a5a5b7b78787", -"~11 c #a1a1b0b08989", -"^11 c #a3a3b1b18d8d", -"/11 c #a3a3b3b38c8c", -"(11 c #a4a4b0b08888", -")11 c #a5a5b0b08888", -"_11 c #a5a5b1b18989", -"`11 c #a6a6b2b28a8a", -"'11 c #a7a7b2b28a8a", -"]11 c #a5a5b3b38f8f", -"[11 c #a6a6b2b28e8e", -"{11 c #a5a5b5b58888", -"}11 c #a5a5b4b48b8b", -"|11 c #a6a6b5b58c8c", -" 21 c #a6a6b5b58e8e", -".21 c #a1a1b8b88080", -"X21 c #a4a4b9b98080", -"o21 c #a4a4b9b98181", -"O21 c #a5a5b8b88080", -"+21 c #a5a5b8b88181", -"@21 c #a6a6b9b98181", -"#21 c #a6a6b9b98282", -"$21 c #a6a6bbbb8080", -"%21 c #a7a7bbbb8080", -"&21 c #a7a7baba8282", -"*21 c #a7a7baba8383", -"=21 c #a5a5b9b98686", -"-21 c #a6a6b8b88484", -";21 c #a7a7b9b98585", -":21 c #a6a6b8b88686", -">21 c #a7a7b9b98787", -",21 c #a7a7bbbb8686", -"<21 c #a5a5bfbf8080", -"121 c #a5a5bfbf8282", -"222 c #a7a7bcbc8383", -"322 c #a5a5bcbc8484", -"422 c #a7a7bcbc8484", -"522 c #a3a3b9b98b8b", -"622 c #a3a3b8b88d8d", -"722 c #a7a7b9b98989", -"822 c #a6a6bebe8e8e", -"922 c #a9a9b1b18080", -"022 c #a8a8b1b18282", -"q22 c #a8a8b2b28080", -"w22 c #a9a9b3b38181", -"e22 c #a8a8b1b18686", -"r22 c #ababb3b38484", -"t22 c #a8a8b4b48282", -"y22 c #a8a8b7b78080", -"u22 c #a8a8b6b68383", -"i22 c #a9a9b7b78282", -"p22 c #aaaab4b48282", -"a22 c #a9a9b5b58585", -"s22 c #a8a8b6b68585", -"d22 c #ababb7b78787", -"f22 c #aeaeb2b28080", -"g22 c #afafb2b28383", -"h22 c #acacb4b48383", -"j22 c #aeaeb5b58282", -"k22 c #adadb5b58484", -"l22 c #acacb5b58686", -"z22 c #aeaeb4b48484", -"x22 c #afafb5b58585", -"c22 c #a8a8b3b38989", -"v22 c #a8a8b3b38b8b", -"b22 c #ababb1b18b8b", -"n22 c #aaaab2b28d8d", -"m22 c #a8a8b5b58a8a", -"M22 c #ababb6b68b8b", -"N22 c #a9a9b4b48c8c", -"B22 c #aaaab5b58d8d", -"V22 c #ababb6b68c8c", -"C22 c #ababb6b68e8e", -"Z22 c #acacb7b78c8c", -"A22 c #afafb5b58f8f", -"S22 c #afafb6b68d8d", -"D22 c #a9a9b8b88181", -"F22 c #a8a8b9b98282", -"G22 c #a8a8baba8080", -"H22 c #a8a8bbbb8383", -"J22 c #aaaab9b98080", -"K22 c #ababb8b88080", -"L22 c #ababbaba8383", -"P22 c #a8a8b9b98585", -"I22 c #a8a8bbbb8484", -"U22 c #a8a8baba8686", -"Y22 c #a9a9baba8686", -"T22 c #a9a9bbbb8787", -"R22 c #aaaabbbb8484", -"E22 c #a8a8bcbc8181", -"W22 c #a9a9bdbd8080", -"Q22 c #a9a9bdbd8282", -"!22 c #a8a8bebe8080", -"~22 c #a9a9bebe8383", -"^22 c #ababbdbd8383", -"/22 c #aaaabebe8181", -"(22 c #ababbfbf8080", -")22 c #aaaabebe8383", -"_22 c #ababbfbf8282", -"`22 c #a8a8bdbd8484", -"'22 c #a8a8bdbd8585", -"]22 c #a9a9bcbc8484", -"[22 c #a9a9bcbc8585", -"{22 c #a9a9bebe8585", -"}22 c #aaaabdbd8585", -"|22 c #aaaabdbd8686", -" 32 c #aaaabfbf8484", -".32 c #ababbfbf8484", -"X32 c #ababbebe8686", -"o32 c #ababbebe8787", -"O32 c #acacb9b98181", -"+32 c #acacbbbb8080", -"@32 c #adadbbbb8080", -"#32 c #acacbbbb8282", -"$32 c #afafb8b88181", -"%32 c #acacbaba8585", -"&32 c #acacbbbb8484", -"*32 c #aeaebbbb8585", -"=32 c #adadbcbc8181", -"-32 c #acacbebe8080", -";32 c #adadbfbf8181", -":32 c #acacbebe8282", -">32 c #adadbfbf8383", -",32 c #aeaebcbc8181", -"<32 c #aeaebdbd8282", -"132 c #aeaebebe8080", -"232 c #afafbfbf8080", -"333 c #afafbfbf8181", -"433 c #afafbebe8383", -"533 c #adadbcbc8585", -"633 c #acacbdbd8686", -"733 c #acacbfbf8787", -"833 c #aeaebdbd8484", -"933 c #afafbebe8585", -"033 c #a8a8b8b88989", -"q33 c #a9a9bbbb8b8b", -"w33 c #ababbbbb8a8a", -"e33 c #a9a9b8b88f8f", -"r33 c #a9a9baba8d8d", -"t33 c #ababbbbb8e8e", -"y33 c #ababbdbd8989", -"u33 c #aaaabcbc8a8a", -"i33 c #aaaabebe8b8b", -"p33 c #adadb9b98b8b", -"a33 c #adadbbbb8888", -"s33 c #adadbbbb8a8a", -"d33 c #acacbfbf8888", -"f33 c #acacbebe8a8a", -"g33 c #adadbfbf8b8b", -"h33 c #aeaebcbc8989", -"j33 c #adadbdbd8c8c", -"k33 c #acacbebe8c8c", -"l33 c #acacbebe8e8e", -"z33 c #a0a0b6b69292", -"x33 c #a0a0b5b59494", -"c33 c #a5a5b2b29494", -"v33 c #a7a7b5b59191", -"b33 c #a2a2b7b79898", -"n33 c #a3a3b6b69898", -"m33 c #a3a3bcbc9494", -"M33 c #a5a5b8b89a9a", -"N33 c #a8a8b2b29090", -"B33 c #aeaeb6b69191", -"V33 c #adadb7b79494", -"C33 c #adadb7b79c9c", -"Z33 c #a9a9b8b89191", -"A33 c #aaaab9b99090", -"S33 c #aaaab9b99292", -"D33 c #ababbaba9191", -"F33 c #ababbaba9393", -"G33 c #aaaab8b89494", -"H33 c #a8a8bdbd9494", -"J33 c #adadb8b89090", -"K33 c #afafb9b99797", -"L33 c #aeaebebe9191", -"P33 c #aeaebfbf9292", -"I33 c #aaaababa9d9d", -"U33 c #b2b2b1b18585", -"Y33 c #b2b2b4b48282", -"T33 c #b4b4b4b48080", -"R33 c #b7b7b7b78383", -"E33 c #b0b0b9b98282", -"W33 c #b0b0bbbb8181", -"Q33 c #b3b3b8b88080", -"!33 c #b3b3b8b88282", -"~33 c #b1b1bcbc8080", -"^33 c #b1b1bfbf8181", -"/33 c #b1b1bfbf8282", -"(33 c #b2b2bcbc8080", -")33 c #b3b3bdbd8080", -"_33 c #b2b2bebe8080", -"`33 c #b3b3bfbf8181", -"'33 c #b3b3bebe8282", -"]33 c #b1b1bcbc8484", -"[33 c #b0b0bfbf8484", -"{33 c #b3b3bcbc8585", -"}33 c #b6b6b9b98484", -"|33 c #b4b4bfbf8383", -" 43 c #b5b5bfbf8282", -".43 c #b5b5bfbf8383", -"X43 c #b7b7bcbc8282", -"o43 c #b1b1bebe8888", -"O43 c #b1b1bfbf8a8a", -"+43 c #b2b2bcbc8888", -"@43 c #b5b5bdbd8a8a", -"#43 c #b7b7bfbf8e8e", -"$43 c #b8b8bebe8282", -"%43 c #bbbbbcbc8383", -"&43 c #b9b9bebe8484", -"*43 c #b0b0b8b89191", -"=43 c #b3b3bbbb9494", -"-43 c #b4b4bcbc9797", -";43 c #b5b5bdbd9696", -":43 c #b2b2bdbd9b9b", -">43 c #b3b3bdbd9a9a", -",43 c #b1b1bfbf9c9c", -"<43 c #b6b6bbbb9d9d", -"143 c #b8b8bdbd9f9f", -"243 c #a0a0a0a0a0a0", -"343 c Gray63", -"444 c #a2a2a2a2a2a2", -"544 c Gray64", -"644 c #a4a4a4a4a4a4", -"744 c #a5a5a5a5a5a5", -"844 c Gray65", -"944 c #a7a7a7a7a7a7", -"044 c Gray66", -"q44 c #a9a9a9a9a9a9", -"w44 c #aaaaaaaaaaaa", -"e44 c Gray67", -"r44 c #acacacacacac", -"t44 c Gray68", -"y44 c #aeaeaeaeaeae", -"u44 c #afafafafafaf", -"i44 c Gray69", -"p44 c #b1b1b1b1b1b1", -"a44 c #b2b2b2b2b2b2", -"s44 c Gray70", -"d44 c #b4b4b4b4b4b4", -"f44 c Gray71", -"g44 c #b6b6b6b6b6b6", -"h44 c #b7b7b7b7b7b7", -"j44 c Gray72", -"k44 c #b9b9b9b9b9b9", -"l44 c Gray73", -"z44 c #bbbbbbbbbbbb", -"x44 c #bcbcbcbcbcbc", -"c44 c Gray74", -"v44 c #bebebebebebe", -"b44 c #a7a7c1c18080", -"n44 c #a7a7c1c18282", -"m44 c #a8a8c2c28181", -"M44 c #a8a8c2c28383", -"N44 c #ababc1c18181", -"B44 c #aaaac2c28686", -"V44 c #aaaac4c48383", -"C44 c #aaaac5c58282", -"Z44 c #ababc6c68383", -"A44 c #ababc5c58484", -"S44 c #ababc5c58686", -"D44 c #acacc0c08181", -"F44 c #acacc1c18080", -"G44 c #adadc0c08080", -"H44 c #acacc0c08383", -"J44 c #adadc1c18282", -"K44 c #acacc2c28181", -"L44 c #adadc2c28181", -"P44 c #acacc2c28282", -"I44 c #aeaec3c38080", -"U44 c #aeaec2c28383", -"Y44 c #aeaec3c38282", -"T44 c #acacc0c08585", -"R44 c #adadc1c18484", -"E44 c #acacc1c18686", -"W44 c #adadc1c18686", -"Q44 c #afafc1c18585", -"!44 c #afafc1c18787", -"~44 c #aeaec2c28585", -"^44 c #afafc3c38484", -"/44 c #aeaec2c28787", -"(44 c #afafc3c38686", -")44 c #acacc7c78282", -"_44 c #afafc4c48181", -"`44 c #afafc4c48383", -"'44 c #acacc6c68585", -"]44 c #acacc7c78484", -"[44 c #adadc7c78686", -"{44 c #aaaac2c28888", -"}44 c #ababc3c38989", -"|44 c #adadc0c08888", -" 54 c #adadc0c08989", -".54 c #acacc0c08b8b", -"X54 c #aeaec1c18989", -"o54 c #aeaec1c18a8a", -"O54 c #afafc3c38888", -"+54 c #afafc2c28a8a", -"@54 c #afafc2c28b8b", -"#54 c #afafc1c18d8d", -"$54 c #afafc3c38e8e", -"%54 c #adadc5c58989", -"&54 c #afafc4c48b8b", -"*54 c #afafc7c78d8d", -"=54 c #adadc8c88585", -"-54 c #afafc8c88484", -";54 c #aeaec9c98686", -":54 c #aaaac4c49494", -">54 c #aeaec0c09090", -",54 c #afafc1c19191", -"<54 c #aaaac3c39999", -"154 c #aaaac5c59a9a", -"254 c #aeaec2c29d9d", -"354 c #acacc5c59b9b", -"454 c #adadc7c79898", -"555 c #aeaec5c59b9b", -"655 c #b0b0c0c08181", -"755 c #b1b1c1c18080", -"855 c #b0b0c0c08282", -"955 c #b1b1c1c18282", -"055 c #b1b1c1c18383", -"q55 c #b2b2c1c18080", -"w55 c #b2b2c2c28181", -"e55 c #b3b3c2c28181", -"r55 c #b3b3c3c38282", -"t55 c #b1b1c0c08585", -"y55 c #b1b1c0c08787", -"u55 c #b0b0c2c28484", -"i55 c #b0b0c2c28686", -"p55 c #b3b3c1c18484", -"a55 c #b2b2c1c18686", -"s55 c #b3b3c3c38484", -"d55 c #b3b3c3c38585", -"f55 c #b3b3c2c28787", -"g55 c #b0b0c5c58080", -"h55 c #b1b1c5c58080", -"j55 c #b0b0c5c58282", -"k55 c #b1b1c6c68181", -"l55 c #b1b1c6c68383", -"z55 c #b3b3c4c48080", -"x55 c #b2b2c6c68181", -"c55 c #b2b2c7c78282", -"v55 c #b3b3c7c78282", -"b55 c #b0b0c4c48585", -"n55 c #b0b0c5c58484", -"m55 c #b0b0c4c48787", -"M55 c #b1b1c5c58686", -"N55 c #b1b1c6c68585", -"B55 c #b1b1c7c78686", -"V55 c #b2b2c7c78484", -"C55 c #b2b2c6c68787", -"Z55 c #b2b2c7c78686", -"A55 c #b3b3c6c68686", -"S55 c #b5b5c1c18383", -"D55 c #b4b4c3c38080", -"F55 c #b4b4c3c38282", -"G55 c #b6b6c0c08383", -"H55 c #b7b7c3c38181", -"J55 c #b5b5c0c08686", -"K55 c #b5b5c3c38686", -"L55 c #b6b6c0c08484", -"P55 c #b6b6c1c18585", -"I55 c #b7b7c1c18484", -"U55 c #b6b6c2c28484", -"Y55 c #b4b4c5c58181", -"T55 c #b5b5c4c48181", -"R55 c #b5b5c4c48383", -"E55 c #b5b5c6c68080", -"W55 c #b5b5c6c68282", -"Q55 c #b6b6c7c78080", -"!55 c #b6b6c7c78181", -"~55 c #b7b7c6c68181", -"^55 c #b7b7c6c68383", -"/55 c #b4b4c4c48585", -"(55 c #b5b5c5c58484", -")55 c #b4b4c4c48686", -"_55 c #b4b4c7c78585", -"`55 c #b4b4c7c78787", -"'55 c #b6b6c6c68585", -"]55 c #b7b7c7c78686", -"[55 c #b1b1c3c38989", -"{55 c #b0b0c3c38b8b", -"}55 c #b2b2c1c18888", -"|55 c #b0b0c3c38c8c", -" 65 c #b0b0c2c28e8e", -".65 c #b1b1c3c38f8f", -"X65 c #b0b0c4c48989", -"o65 c #b1b1c5c58888", -"O65 c #b1b1c5c58a8a", -"+65 c #b1b1c7c78989", -"@65 c #b3b3c5c58989", -"#65 c #b2b2c4c48a8a", -"$65 c #b2b2c6c68989", -"%65 c #b3b3c7c78888", -"&65 c #b2b2c6c68b8b", -"*65 c #b3b3c7c78a8a", -"=65 c #b1b1c4c48c8c", -"-65 c #b2b2c5c58d8d", -";65 c #b2b2c5c58e8e", -":65 c #b2b2c7c78c8c", -">65 c #b3b3c7c78c8c", -",65 c #b3b3c6c68e8e", -"<65 c #b5b5c3c38888", -"165 c #b4b4c1c18c8c", -"265 c #b6b6c0c08c8c", -"365 c #b6b6c3c38d8d", -"465 c #b5b5c4c48989", -"565 c #b4b4c6c68a8a", -"666 c #b6b6c4c48989", -"766 c #b7b7c5c58a8a", -"866 c #b7b7c7c78888", -"966 c #b7b7c7c78989", -"066 c #b4b4c5c58e8e", -"q66 c #b4b4c7c78f8f", -"w66 c #b6b6c5c58e8e", -"e66 c #b7b7c6c68d8d", -"r66 c #b7b7c6c68f8f", -"t66 c #b2b2c8c88080", -"y66 c #b3b3c9c98080", -"u66 c #b3b3c9c98181", -"i66 c #b3b3c8c88383", -"p66 c #b3b3c8c88585", -"a66 c #b3b3c8c88787", -"s66 c #b4b4c8c88080", -"d66 c #b4b4c8c88383", -"f66 c #b4b4caca8181", -"g66 c #b5b5cbcb8080", -"h66 c #b4b4caca8282", -"j66 c #b5b5cbcb8282", -"k66 c #b5b5cbcb8383", -"l66 c #b7b7c8c88181", -"z66 c #b7b7c8c88282", -"x66 c #b6b6cbcb8080", -"c66 c #b6b6caca8282", -"v66 c #b7b7cbcb8383", -"b66 c #b4b4c9c98484", -"n66 c #b5b5c9c98484", -"m66 c #b4b4c9c98686", -"M66 c #b5b5caca8585", -"N66 c #b5b5caca8787", -"B66 c #b7b7c8c88484", -"V66 c #b6b6cbcb8686", -"C66 c #b6b6cccc8181", -"Z66 c #b6b6cccc8383", -"A66 c #b7b7cdcd8282", -"S66 c #b7b7cece8080", -"D66 c #b6b6cccc8484", -"F66 c #b7b7cdcd8484", -"G66 c #b7b7cdcd8585", -"H66 c #b7b7cccc8787", -"J66 c #b0b0cbcb8888", -"K66 c #b2b2c8c88a8a", -"L66 c #b3b3c9c98b8b", -"P66 c #b3b3c8c88f8f", -"I66 c #b1b1cccc8989", -"U66 c #b4b4c8c88989", -"Y66 c #b4b4c9c98888", -"T66 c #b4b4c8c88b8b", -"R66 c #b5b5c9c98a8a", -"E66 c #b4b4caca8989", -"W66 c #b5b5caca8989", -"Q66 c #b6b6cbcb8888", -"!66 c #b6b6caca8b8b", -"~66 c #b6b6cbcb8a8a", -"^66 c #b4b4c8c88d8d", -"/66 c #b5b5c9c98c8c", -"(66 c #b5b5c9c98e8e", -")66 c #b5b5cbcb8d8d", -"_66 c #b5b5caca8f8f", -"`66 c #b7b7c9c98d8d", -"'66 c #b6b6caca8d8d", -"]66 c #b7b7cbcb8c8c", -"[66 c #b6b6caca8f8f", -"{66 c #b7b7cbcb8e8e", -"}66 c #b4b4cdcd8b8b", -"|66 c #b7b7cccc8989", -" 76 c #b7b7cccc8b8b", -".76 c #b4b4cdcd8c8c", -"X76 c #b5b5cece8c8c", -"o76 c #b6b6cfcf8d8d", -"O76 c #b6b6cfcf8e8e", -"+76 c #b8b8c3c38181", -"@76 c #b8b8c2c28383", -"#76 c #b8b8c3c38787", -"$76 c #b9b9c3c38787", -"%76 c #babac0c08484", -"&76 c #bbbbc1c18585", -"*76 c #b9b9c4c48080", -"=76 c #b9b9c6c68080", -"-76 c #b9b9c6c68181", -";76 c #babac5c58181", -":76 c #babac7c78181", -">76 c #babac7c78282", -",76 c #b8b8c7c78686", -"<76 c #bbbbc6c68484", -"176 c #bcbcc1c18787", -"276 c #bfbfc0c08787", -"376 c #bcbcc7c78383", -"476 c #bcbcc7c78585", -"576 c #bcbcc6c68787", -"676 c #b8b8c1c18c8c", -"777 c #b8b8c6c68989", -"877 c #bbbbc5c58989", -"977 c #babac6c68888", -"077 c #b8b8c7c78c8c", -"q77 c #b9b9c7c78c8c", -"w77 c #bebec1c18a8a", -"e77 c #bebec1c18c8c", -"r77 c #bcbcc6c68989", -"t77 c #bcbcc6c68a8a", -"y77 c #bdbdc7c78a8a", -"u77 c #bebec4c48888", -"i77 c #bfbfc5c58989", -"p77 c #b9b9c9c98080", -"a77 c #b8b8c9c98282", -"s77 c #b8b8c9c98383", -"d77 c #b9b9c9c98282", -"f77 c #b9b9cbcb8181", -"g77 c #b9b9caca8383", -"h77 c #bbbbc8c88282", -"j77 c #bbbbcbcb8080", -"k77 c #bbbbcbcb8282", -"l77 c #b9b9c8c88585", -"z77 c #b9b9caca8484", -"x77 c #babac9c98484", -"c77 c #babac9c98686", -"v77 c #babacbcb8484", -"b77 c #babacbcb8585", -"n77 c #bbbbcbcb8484", -"m77 c #babacbcb8787", -"M77 c #b8b8cdcd8282", -"N77 c #b8b8cfcf8181", -"B77 c #b9b9cece8383", -"V77 c #bbbbcdcd8181", -"C77 c #babacccc8282", -"Z77 c #bbbbcdcd8383", -"A77 c #b9b9cdcd8585", -"S77 c #b8b8cece8585", -"D77 c #b9b9cfcf8484", -"F77 c #b8b8cece8686", -"G77 c #b9b9cfcf8686", -"H77 c #b9b9cfcf8787", -"J77 c #bbbbcccc8585", -"K77 c #bbbbcccc8686", -"L77 c #bbbbcfcf8787", -"P77 c #bebecbcb8383", -"I77 c #bdbdc8c88686", -"U77 c #bdbdc9c98787", -"Y77 c #bdbdcaca8585", -"T77 c #bebec9c98787", -"R77 c #bebecbcb8686", -"E77 c #bcbccccc8181", -"W77 c #bdbdcfcf8383", -"Q77 c #bfbfcdcd8080", -"!77 c #bdbdcece8787", -"~77 c #bfbfcfcf8686", -"^77 c #b9b9c9c98888", -"/77 c #babac9c98888", -"(77 c #bbbbc9c98b8b", -")77 c #bbbbcaca8989", -"_77 c #babacaca8b8b", -"`77 c #bbbbcbcb8a8a", -"'77 c #b9b9cbcb8d8d", -"]77 c #babac8c88d8d", -"[77 c #bbbbc9c98e8e", -"{77 c #bbbbcbcb8c8c", -"}77 c #bbbbcbcb8d8d", -"|77 c #b8b8cdcd8888", -" 87 c #b8b8cdcd8a8a", -".87 c #b9b9cece8989", -"X87 c #b9b9cece8b8b", -"o87 c #bbbbcccc8888", -"O87 c #babacfcf8a8a", -"+87 c #b8b8cccc8d8d", -"@87 c #b8b8cdcd8c8c", -"#87 c #b8b8cccc8f8f", -"$87 c #b9b9cdcd8e8e", -"%87 c #b9b9cece8d8d", -"&87 c #b9b9cfcf8e8e", -"*87 c #babacfcf8c8c", -"=87 c #babacece8f8f", -"-87 c #babacfcf8e8e", -";87 c #bebec8c88b8b", -":87 c #bebecaca8888", -">87 c #bdbdcbcb8e8e", -",87 c #bebec8c88c8c", -"<87 c #bebec9c98d8d", -"187 c #bfbfc9c98c8c", -"287 c #bfbfc9c98d8d", -"387 c #bfbfcaca8e8e", -"487 c #bcbccdcd8989", -"587 c #bcbccccc8b8b", -"687 c #bdbdcece8888", -"787 c #bdbdcece8a8a", -"888 c #bebecdcd8888", -"988 c #bebecfcf8989", -"088 c #bebecfcf8b8b", -"q88 c #bdbdcdcd8c8c", -"w88 c #bdbdcdcd8e8e", -"e88 c #bdbdcdcd8f8f", -"r88 c #bfbfcdcd8f8f", -"t88 c #bebecece8d8d", -"y88 c #bebecece8f8f", -"u88 c #bfbfcfcf8e8e", -"i88 c #b1b1c3c39191", -"p88 c #b0b0c2c29292", -"a88 c #b3b3c3c39292", -"s88 c #b0b0c1c19494", -"d88 c #b1b1c0c09797", -"f88 c #b1b1c2c29595", -"g88 c #b2b2c3c39696", -"h88 c #b3b3c5c59191", -"j88 c #b3b3c5c59595", -"k88 c #b3b3c4c49797", -"l88 c #b6b6c2c29494", -"z88 c #b7b7c3c39595", -"x88 c #b4b4c5c59191", -"c88 c #b4b4c7c79090", -"v88 c #b4b4c6c69292", -"b88 c #b5b5c7c79393", -"n88 c #b4b4c4c49595", -"m88 c #b5b5c5c59494", -"M88 c #b4b4c6c69494", -"N88 c #b5b5c7c79595", -"B88 c #b0b0c0c09999", -"V88 c #b1b1c0c09999", -"C88 c #b2b2c3c39999", -"Z88 c #b3b3c1c19d9d", -"A88 c #b3b3c3c39c9c", -"S88 c #b3b3c4c49898", -"D88 c #b0b0c7c79d9d", -"F88 c #b4b4c2c29e9e", -"G88 c #b6b6c0c09e9e", -"H88 c #b5b5c6c69999", -"J88 c #b6b6c6c69999", -"K88 c #b7b7c6c69b9b", -"L88 c #b5b5c6c69c9c", -"P88 c #b4b4c9c99191", -"I88 c #b5b5c8c89090", -"U88 c #b5b5c8c89191", -"Y88 c #b5b5caca9292", -"T88 c #b6b6c9c99292", -"R88 c #b7b7cbcb9090", -"E88 c #b7b7caca9292", -"W88 c #b6b6c8c89494", -"Q88 c #b7b7cccc9393", -"!88 c #b6b6cece9494", -"~88 c #b0b0c9c99f9f", -"^88 c #b2b2cccc9f9f", -"/88 c #b7b7c8c89b9b", -"(88 c #b5b5cccc9e9e", -")88 c #b4b4cece9f9f", -"_88 c #b8b8c4c49696", -"`88 c #babac6c69898", -"'88 c #bebec5c59999", -"]88 c #bdbdc5c59c9c", -"[88 c #b9b9c8c89191", -"{88 c #b8b8c9c99292", -"}88 c #b8b8cbcb9393", -"|88 c #babac9c99090", -" 98 c #bbbbc8c89292", -".98 c #b8b8cbcb9494", -"X98 c #b9b9cbcb9797", -"o98 c #b8b8cccc9191", -"O98 c #b9b9cdcd9090", -"+98 c #b8b8cdcd9292", -"@98 c #b9b9cdcd9292", -"#98 c #b9b9cece9393", -"$98 c #babacece9191", -"%98 c #bbbbcfcf9090", -"&98 c #babacece9393", -"*98 c #bbbbcfcf9292", -"=98 c #b8b8cdcd9595", -"-98 c #b9b9cccc9494", -";98 c #b9b9cccc9595", -":98 c #b9b9cece9595", -">98 c #b9b9cece9696", -",98 c #babacdcd9595", -"<98 c #babacdcd9696", -"198 c #bbbbcfcf9494", -"298 c #babacfcf9696", -"398 c #babacfcf9797", -"498 c #bbbbcece9696", -"598 c #bebecdcd9292", -"698 c #bebecece9090", -"798 c #bfbfcfcf9191", -"898 c #bdbdcccc9595", -"999 c #bcbccece9494", -"099 c #bcbccfcf9797", -"q99 c #bdbdcece9797", -"w99 c #b8b8caca9898", -"e99 c #b9b9c8c89f9f", -"r99 c #babacbcb9f9f", -"t99 c #b9b9cdcd9898", -"y99 c #babacccc9898", -"u99 c #bbbbcdcd9999", -"i99 c #bbbbcdcd9b9b", -"p99 c #bcbcc8c89a9a", -"a99 c #bcbccfcf9898", -"s99 c #bdbdcfcf9f9f", -"d99 c #b9b9d0d08080", -"f99 c #babad1d18383", -"g99 c #bbbbd2d28080", -"h99 c #babad0d08585", -"j99 c #babad0d08787", -"k99 c #bbbbd1d18686", -"l99 c #bbbbd2d28484", -"z99 c #bcbcd3d38181", -"x99 c #bfbfd2d28383", -"c99 c #bcbcd3d38585", -"v99 c #bcbcd2d28787", -"b99 c #bebed0d08484", -"n99 c #bebed0d08686", -"m99 c #bdbdd4d48282", -"M99 c #bebed6d68282", -"N99 c #bfbfd7d78383", -"B99 c #bdbdd4d48686", -"V99 c #bebed5d58585", -"C99 c #bfbfd4d48585", -"Z99 c #babad0d08888", -"A99 c #bbbbd1d18888", -"S99 c #bbbbd1d18989", -"D99 c #bbbbd0d08b8b", -"F99 c #bbbbd0d08d8d", -"G99 c #bbbbd0d08f8f", -"H99 c #bdbdd1d18989", -"J99 c #bcbcd2d28989", -"K99 c #bdbdd3d38888", -"L99 c #bcbcd2d28a8a", -"P99 c #bdbdd3d38a8a", -"I99 c #bdbdd3d38b8b", -"U99 c #bfbfd0d08989", -"Y99 c #bfbfd0d08a8a", -"T99 c #bebed3d38888", -"R99 c #bebed2d28a8a", -"E99 c #bebed2d28b8b", -"W99 c #bcbcd1d18c8c", -"Q99 c #bcbcd1d18e8e", -"!99 c #bdbdd2d28d8d", -"~99 c #bdbdd2d28f8f", -"^99 c #bfbfd3d38c8c", -"/99 c #bebed3d38e8e", -"(99 c #bebed4d48989", -")99 c #bebed4d48b8b", -"_99 c #bfbfd5d58a8a", -"`99 c #bfbfd6d68888", -"'99 c #bebed4d48c8c", -"]99 c #bfbfd5d58c8c", -"[99 c #bfbfd5d58d8d", -"{99 c #bfbfd4d48f8f", -"}99 c #bbbbd1d19090", -"|99 c #b9b9d1d19595", -" 09 c #babad2d29696", -".09 c #bcbcd0d09191", -"X09 c #bcbcd1d19090", -"o09 c #bdbdd1d19292", -"O09 c #bdbdd2d29191", -"+09 c #bebed1d19191", -"@09 c #bfbfd1d19393", -"#09 c #bebed3d39090", -"$09 c #bebed2d29393", -"%09 c #bebed3d39292", -"&09 c #bfbfd2d29292", -"*09 c #bcbcd0d09595", -"=09 c #bdbdd1d19494", -"-09 c #bdbdd1d19696", -";09 c #bebed2d29595", -":09 c #bfbfd3d39494", -">09 c #bebed2d29797", -",09 c #bfbfd3d39696", -"<09 c #bfbfd4d49191", -"109 c #bfbfd4d49393", -"209 c #bcbcd1d19898", -"309 c #bdbdd0d09898", -"409 c #bcbcd0d09b9b", -"509 c #bebed1d19a9a", -"609 c #bfbfd0d09a9a", -"709 c #bfbfd3d39898", -"809 c #bfbfd2d29a9a", -"909 c #bfbfd2d29b9b", -"000 c #bdbdd1d19c9c", -"q00 c #bfbfd4d49999", -"w00 c #b0b0c4c4a1a1", -"e00 c #b5b5c0c0a2a2", -"r00 c #b5b5c7c7a1a1", -"t00 c #b4b4c8c8a3a3", -"y00 c #b7b7c8c8a6a6", -"u00 c #b8b8c2c2a0a0", -"i00 c #b8b8c7c7a0a0", -"p00 c #bdbdc4c4a2a2", -"a00 c #b9b9c8c8a1a1", -"s00 c #babac9c9a2a2", -"d00 c #bbbbcccca0a0", -"f00 c #bebecfcfa2a2", -"g00 c #bebecfcfabab", -"h00 c #babad1d1a5a5", -"j00 c #bebed8d8abab", -"k00 c #c1c1c1c18b8b", -"l00 c #c3c3c4c48b8b", -"z00 c #c1c1c4c48d8d", -"x00 c #c1c1c6c68c8c", -"c00 c #c4c4c4c48e8e", -"v00 c #c1c1cccc8787", -"b00 c #c0c0caca8d8d", -"n00 c #c1c1cbcb8e8e", -"m00 c #c1c1cbcb8f8f", -"M00 c #c2c2cdcd8989", -"N00 c #c3c3cece8989", -"B00 c #c0c0cccc8c8c", -"V00 c #c2c2cccc8f8f", -"C00 c #c3c3cfcf8f8f", -"Z00 c #c0c0c8c89595", -"A00 c #c0c0cece9090", -"S00 c #c1c1cfcf9292", -"D00 c #c2c2cdcd9191", -"F00 c #c3c3cdcd9090", -"G00 c #c2c2cdcd9393", -"H00 c #c3c3cfcf9191", -"J00 c #c3c3cece9292", -"K00 c #c0c0cfcf9494", -"L00 c #c1c1cfcf9494", -"P00 c #c3c3cece9696", -"I00 c #c5c5cfcf9090", -"U00 c #c5c5cfcf9393", -"Y00 c #c2c2cbcb9c9c", -"T00 c #c2c2cbcb9e9e", -"R00 c #c1c1cdcd9f9f", -"E00 c #c4c4cece9a9a", -"W00 c #c0c0d1d18181", -"Q00 c #c2c2d4d48080", -"!00 c #c0c0d7d78585", -"~00 c #c2c2d5d58686", -"^00 c #c4c4d5d58787", -"/00 c #c0c0d1d18a8a", -"(00 c #c0c0d1d18b8b", -")00 c #c0c0d2d28888", -"_00 c #c1c1d3d38989", -"`00 c #c3c3d0d08a8a", -"'00 c #c0c0d1d18d8d", -"]00 c #c0c0d0d08f8f", -"[00 c #c1c1d2d28e8e", -"{00 c #c2c2d3d38d8d", -"}00 c #c3c3d2d28f8f", -"|00 c #c0c0d7d78989", -" q0 c #c1c1d6d68989", -".q0 c #c2c2d4d48a8a", -"Xq0 c #c0c0d6d68d8d", -"oq0 c #c1c1d7d78c8c", -"Oq0 c #c0c0d6d68e8e", -"+q0 c #c1c1d7d78e8e", -"@q0 c #c1c1d7d78f8f", -"#q0 c #c3c3d4d48e8e", -"$q0 c #c2c2d7d78c8c", -"%q0 c #c4c4d1d18c8c", -"&q0 c #c5c5d0d08e8e", -"*q0 c #c5c5d1d18f8f", -"=q0 c #c5c5d2d28c8c", -"-q0 c #c5c5d2d28d8d", -";q0 c #c4c4d5d58f8f", -":q0 c #c5c5d7d78d8d", -">q0 c #c7c7d9d98585", -",q0 c #c1c1d8d88a8a", -"wq c #c4c4dada9292", -",wq c #c7c7d8d89191", -"ew c #c2c2d1d1a8a8", -",ew c #c3c3d2d2a9a9", -"re c #d5d5e9e9acac", -",re c #dadaeaeaa1a1", -">0>>M;;H@@F(/r/^[FF)FFAFDzFDZFDlFDGnnGFFV/^ }{/++ }{g[]7[]8[]@(/t/^t/^b/^~(/B++j**K%%@}{[``]``^]'{``]``3_)AER.HGmGF`EE=..K55S00387b===OOU{[i$$@76N00v00+>:s##x(/rLKWFFGSSLSSZLK^OO_&&;++M~!2FDRhhhhh1nb%DS#FD$FD=FD)(F'`T'`", -"c44);;f77f77I--p@@m##K;;&>:M;;x##F(/e/^(FFKFFkFDlnbhFDDFDaGF6KJ:]'/[]g[] }{7[]:]'z[]@{[r[]C(/r[]g++v##)**K%%x[][))LERA!QlKJoLKUERUERSER:`_j%%[88Aqq ewJ00x$$x_)ZLKY{[*-=u::0::K**Eoof/^'FFjFDFSSxnbUJJ&[]gOO[|}v~!bTYADS NM-DS..c t|}g`_h`_7`_1`_3~!q~!r~!t~!q^~D|}g ^|}C}{9^~Y|}`OOSOOO+OGOO|##7$$4&&G44j55a66_554::R**0@@[ooP{[4{[|{{l{[i[]x[]4}{n$$#=*&=*Q$$7==J$$&}{*..*..s{[q..o%$o%$:oot|}9`_#`_^ #%$T448&&wooQ E'`2)(wER2)(7)(p_):)(CKJIHH#)(,'`T'`", -"x44X=*s77B66y==A++${[:8::~&&R[]f/^eLK`FFPFF^FF'HHgJH0!Qy~!&!QaFDXFDASAhDSZJHHJHZJHdFDdFD1JHQ!Q)!!o]'#[]_oo3[]Q!Q3JH=nb;nbWHHj]'m&&/&&m==8--i**w**D$$|{{J_))(9_)J'`Y'`s_)JKJ,/^h'`d'`=/^", -"z44l::687B66D$$t'`Z/^K/^F(/F(/G(//(/r++.{[2(/y/^,KJ'JJ+KJv/^W_)X(/C/^m/^S/^}KK3KJv/^8[]X{[8[]@(/j(/'[] }{~_)uKJfGFDHGDER|FFmnncnb#GFm`_z%%|88$wq+wq766o*&v&&c$$k$$$*&G55;76r::G**Roof(/d/^]FF!FF~FFCFD8GFyJHtJHoFD)SS^SS~SSBDSFJHFJHdFDsFD1JH(JJq!Q)!!#[]ROOM&&ROOo]'KJJ~hh~hhZSAoJHILL.]'0]'Y{[v$$v$$)++l{[0_)|KK`KK{[%_)PER|))[``*}{P##)##} ^]'8{[^]'}``8{[} /$$=%%=%%0oov o'`0|}y|}6&&-&&0$$B{[u_)#)(7_)h'`D{[B{[,'`#)(q)(I'`-'`BKJ", -"l44/00lqq]55T++|KK[JJ#KJh/^h/^I(/N++K##K##P++Z(/l/^6KJ6KJbLKk/^ LK LKC/^V/^{KK'KKA/^l[]oOo+{[Y_)///=]'X(/)KK}FF{FFeKJf_)5HGyBNJnnjKJ)##465TqqieeL00Z==(OO~33<87187r77y77I77*76W**4OOR[]x(/g/^]FF~FFBFDlDSbDS*DSdnb_hhdnbQSShDS1JHdFDBDSsFD4LK{!!cLKQ!Q#[])OO&*&z&&#[]q!QeFDTSSzDS)HHvLKO]'$[]){[E$$!$$E$$I##;{[&_)M/^;LKx[]AXXW++l{[U_)f[]7**B66'00AwwIeeEww088z558;;8;;q55F55r55655^==3==6$$W n{[e{[w{[x M @..N..B..<++*++3++2++@ a!Qi!QY`_...u{[:{[6{[+$#@;-1;;Z--F%%c**:;;4--M==J&&f$$/##1..,{[3_)1_)___{``{``]``}``m`_4_)Q`_Q`_4_)4_)```$oo %$%21%21>%%$ooP )'`>$$0$$1$$m{[>)(;/^>'`tXX,oo'XXF'`q)(d'`j{[-'`vKJ", -"k44ZwwHqq/55p{[uKJ_JJ4KJB(/A(/|[[z##];;];;b##}[[S/^j/^{KK'KKLKK@KJ LKP_)K_)K_)c_)T_).}{b$$!++p[]`//O(/BLKiGFHnncFD#LKM{[2_)iKJqKJ,{[[33K00Owq#wq[774%%COO#76mwwbwwV00n00576+76N==e@@OOOEooR(/f/^[HHYFF8GFVDSONM(hh(hhsnbpnbpDStFDMDSdDSyFDL!Q.[]P!QP!QS~!LOOR&&8++;[]B~!DLKlLKlLKW!Q)ooL&&>--9--(==_==(==:==(##7{[}__L_)|{{&$$D$$)++'{[AXXy==B66487Sqq]ww]wwGqq787+:;i**V$$r$$)++(##P$$*&&5$$}XX{XX`##.%$g%%x%%x%%w%%8%%022022w22q%%I|}i!QORTa!Q/]'P]'___a[]HXXb**A**F%%jXXV%%o=*4--B==J&&!##2..=}{,{[]``:{[&}{a{[___IER _)IER}))3_)1_)IER}))3_)! @%$~44/66*65/22:oo_'`-...oXE##1{[1/^:/^k'`+$#I$$]XXf'`q_)C[]NXXc'`VKJ", -"j44{wwtqq8==3_)cGF{JJ&/^Q(/Z(/t[]f@@!;;';;S$$z[](//(//W_)6]'c_)=LKVLKv_)|__5{[2{[7]':}{W$$m$$5{[-]'^/^LKKmFDDnncFD@LKU'`)_)[))2_)L$$}77Xwq wqiqq666p%%(OOP55D00;87 43)33---m==j&&#OOIooPooY[]h(/|HH{HH~HH;JH1DSgnbfnbASA$DSMDSiFDyFDMDSiFD9!Q}]]^!!P!Q*]'LOO0++KooP!QAJH/HH$JH3LK(!!!OOI55187y77655955655!==#=*/##3}{p{[l{[@}{@}{l{[f[]@}{H==B66K77Y99#q0Bww[wwHww687L==oOog[]E_)f[]NXX#$##$#>oo}XX6$$2==:32933L22l%%($$q22w22p222++A]'BER.RTNER)`__`_[``;{[DXXV%%@#@PXXS[]o@+2**+=*P**s$$bOO*}{&}{a{[a{[3..X$#U##{``LERzKJzKJPER2_)^_)2_))_)6{[N%%L44G99rww;wq 76;&&m{[R'`;}{]XXk'`1/^2/^f{[T%%9$$-}{`__h_)x{[HXXZ[]L/^", -"h44Cww9664..cKJ%GFzGF`KK}//]//+(/p++u** =*w@@7[]X(/:]'#}{_++2}{P_)=LK%LK{__<}{bOOL]'!{[R$$R$$>}{w]'^/^}JJxFDLnnXGFnKJ._)M/^;LK-{[E==698Jqqdqq598<65@32C=='33|33@*&;OO){[=[]){[%[]+]' ]'>]'<]'k(/;KJ}HH~HH2JH,FDaDSpDSfDSAJH]'<]'uLK*JH~HH_HH4JHCJHAJH3LK^!!B~!S~!*]'*]'S~!Z~!Z~!Y!Q7LK0LKu]'u]'SJHCSA!hhihginbYSS_HH3[]$76m00877.$#Y##3}{p{[6{[-{[[`` `_B/^`KKXKJNKJJ_)U++i**8;;>;;L==C**X:;;q0ReeHwwK77p++u[]r'`q[]B[]i'`i'`C'`>ooI$$s==-32=32z%%O+ON &..'OOzOOI|}4~!NERC!Qb`_K]'NOOd%%!%%#@@vXX=XXb[] X.bXX~++q@@8@@w$$f$$Q$$!%%N$$&$$)++W++AXX'{[x[]D/^0_)!_)l{[@}{)++y==Y55|77D99zqqRwwRww/992;;EXX6{[%}{1}{[{[f[]l{[;@@C**n$$[{[U_)J_)6[]J[]H[]q[]", -"f44s55|##:`__RRpKJOLK{))5KJj/^Q_)I++e**>**#}{K_)C/^)KK}JJ KJrKJtKJ%LK@_)[__T$$-==/{[~{[4==p55/==c==w$$]__o_)0_)J_)P/^-/^rGFvGF;LK>{[$}{i{[:{[,{[MOOp%%|&&d$$({[$]'UKKjDSvDSYJJv!QjLKdLKLLL1]'[[['//TKK~HH3JH)JJ9!QU!Q&]'S~!*]';[]]ooLOO1OOJoo []I!QpFDqFD#JHSJHgDSCSACSA$32ahg%nbhnbq!Q#*&.43S=={``3_)+LK9KJjGF&GF%GF GFyGFwGFsGF|KKx[])++v$$)++j@@-@@Z++c@@l66Nww,wqv775**h@@ @+j@@+@+P[]z'`D[]tXX+oo5$$7$$o$#9..~]'n`_U|} C]'p!Qy!Q]!!D`_3{[Y$$(==H==-$$vXX{..b[]oXXbXXZ++$OO Oow$$'&&7==L==t**k@@cXXO{[O{[}{{cXXl{[l{[|{{U++W++v$$P==B66k66D66Z99[99@q0S99i;;G%%[{[1}{4}{@}{|{{A++Z$$}**n$$'{[U_)0_)E_)6[]q[]j[]", -"f44055T##LERhGFqKJ___=}{<]',]'w[]*{[D++(++xXXo{[]{[T_)=LKPKKaJHlGFlGFsJH}))-==^33>}{e]'c==<76t::e::Z&&l[]Y_)6]'p[]F/^LKK[KKJ_)|{{(##$}{1_)UER4_)mOO/{[{]]|||o..x]'>JHAnn7DS9GFIJJUKKYKKPLLU{[y$$l]'/!!=JH`HHQJJKLKb_)_//D~!A~! []n&&X43&43[==UOOG~!GJHsDSrFD2LKWJJ,FD!SS,32$32*326nb/JJ%]'$[]8]'z!Qz!Qk!Q&LKQKK&LKx!Q>_)[))-LK.LK.LKPER)_)p{[2..P**9@@p[]7[]M$$l::v665::C%%FXXgXX#@@S%%C%%#@@FXXv$$&$$~##P##&}{^]'Q`_:`_']'']'Z]'V`_]!!]!!A`_T]'@}{7**E55a77X=*2XXD(/Y(/}++p@@z@@F++o{[X}{;**|;;3::I==Z$$o}{f[]x[]@}{~##FXXO@+O@+aXXV[].X./@@Z**)--v--9##L--E::[::y;;'%%)++!%%7**&$$&$$w**8;; :;D$$'{[J_)0_)!_)f[]U++!%%", -"d44055X$#1_)qKJoLK]``&}{N&&$OOW[]e[]+{[/++L%%:**r$$P{[P_)N/^%LKaJHpJHdJH|))K$$;=={{{r]'P&&+76q::Q;;,**O}{7[]W_)K_)F/^m/^6[]cXXw**<==Y##(_)*_)Q`_t{['``L`_C]'T`_t!Q1FD@DSrDS-JHRJJ!KKdLKLLLQ[]3@@@OOa]'KLKxLKE!QQ!QfLKLJJMDSDJH|]]O*&176x00i77&76IOOI!QxDSwFD1LKfLKPJJ;JH$nb>32%32shgrDS3!QN!QNLKaJHEKK@_)K]'~{[<..MOOFOO1..:{[}))lKJlKJ})){``a{[5--V&&h[]C/^E_)A++<@@>@@P[]Z[]sXX,@@U%%U%%^%%b**N$$)++1}{p{[,{[}`````!`_B]'Z]'B]'D`_b`_V_)c]'[]]AXXH==z77J77);;%##XXw(/%(/1(/6XXm--J::,::*;-D$$w**w**!%%7**8;;Y55W557**'{[D/^n/^U_)'{[D$$T==", -"s44)==K$$-{[%_))_)$}{2..h&&}ooM_)^/^6]'Y++D$$w**N$$@}{a[]/_)#_)-LKOLK-LK#_)%}{R++p[]6]'q@@E**1--[**6**n@@C++g[]W_)6]'h[] }{l@@n==>==>}{l!QyKJWKKV!QbER.~!:~!>!Q9FD=DS/SSJDD0JHgERCLKALKa(/Uooe##u##3OO`[]+[]S]'d!QNDS,nbphg$DST!QUOO%*&q--%76u77E&&C~!WSSDSSWSSUFF(HH)HHUSS@nb&32laa5nb0GFRKK^KK|)) `_1..J$$a%%3%%4.. . u{[C_)kKJXHG7GF3HGkKJHER%OOJ{[P_)m/^B/^t'`B[]B[]e_)i'`nXXS%%U%%U%%b**0;;(%%+$#z{[L'`^`_/`_e`_@`_7~!-`_v`_B`_M`_'``r{[~{[=$$x55E99R99M77R::T--5##T--M--7##:@@{++:@@Z%%x**S**S%%nXXc'`7'`f'`<{[z{[#@@-$$-$$mXXN[]4(/:(/8(/_^^Y^~U^~G/^:XX+#@F%%(@@=$$T%%q==$;-;:;d66v55;:;q==HXXs'`s'`x{[@@@(%%$;-", -"a447**v$$|{{x[]@}{&$$v$$h]'N_)SLKz_)5{[W##(##(##U++l{[.`_a[]a[]/_)/_).`_J_)j'`t'`Y_)@(/z[]K++i##B##V##n##h@@D++ }{ }{-OO+}{Q++l@@!++s[]%LKlGF6GFmJHqJH&RT;~!FRToBNlll|MMTDDgFD@RTxLKGLKg(/!ool##'==g##r@@dOOo[]|TT)hhO32X32>nb6LK.[]Soo'ool&&=-=T&&t]'TFFvbvcbvxbv-nbJSSEHHKSS#nbyhg^bbqDSQKKO_)3..T##L$$a%%3%%} :`_sERgKJ3HG$GF@GF7GF7GF7GF$GF JHKKKk!Q]__7{['{[l'`6_)I/^B[]#@@S%%,@@nXX#@@b**(%%=$$VXXC{[q{[~'`w`_5)(~EED!Q%`_m`_}``8{[a{[&}{T%%n66^99H99T991q0 q02>>4>>*:;M--=##P%%P%%X#@>@@c{[z'`6_)2/^1/^._)h_)f'`sXXO@+-$$<@@o@+>XX>XXvXX'..<(/)^^8/^0'` X.F[]B'`b{[HXX(%%;:;n66d663;;~%%q==A%%@@@+$#A%%~%%A%%:$$", -"p44k@@;@@cXXcXX^++k@@;@@+]'z_)z_)r]'^##===$=*!$$-}{<{[c'`f{[x{[f{[f{[b{[p'`u'`r'`9[]0(/V(/{[[a++M++M++i@@b@@m@@g@@O}{l[].Oo.OoXOo}ooE{[L{[4]'B!QoRTeJHPRTZ|})~~TLLekjklk}SS+FDrJHJJJ:KJtLKm(/Vooh;;]==A&&fOOm~!GDDdaaF11V22/hhR!QYOOLOOFooDooOO![]q]'}ooK&&7--8;;P==R##-}{b{[DXXDXXc{[P[]c{[.X.-XX>XXkj`22&,>Z22anbO[]Q33<--9OOULL,LKv(/Aoob(/aLKHSS:32-32lbvOKJ LKtKJNnn!bbaBN>ER(`_Z{[~'`e`_w`_r`_t`_$`_x)(NERPTY@HG>HG.RTp!QH!QH!Q4GFuDS6GFl!Q,{[p{[G'`i_)*/^L/^5'`i'`W/^./^./^L/^r_)rXXi&&N55C55R44@%$$ooQ N{[W'`H'`D'`u`_k_)s_)-'`C'`qXXhXX'%%g66l993>>N---##c++c++3##]%%3##%@@v{[g'`8_)7_)g_)F'`F'`F'`B[]c{[FXX>@@Z%%s**C--,;;L--)%%PXXJXX(@@{%%B**B**0==n%%EXXEXXEXXEXX$$$n%%W%%/%%n%%CXXrXXCXXO$#$$$", -"u44x@@&##&##l**Y--);;U--W**C&&q@@C&&Y==e::^;;}**#$#VXXfXXDXXnXXP[]p'`N[][..IXX`@@X@+k++h++V++}@@F@@C##N;;->:j77';;I++X(/U[]&{[*{[^[]}ooU&&S55977***]]]N~!q11011VIP@kj7hg^hh)SS(JJV~!c(/MooNooZoo|::L;;k&&l~!]SSfaaC22r11_22_hhH~!|==$43W&&YLLEFF>LKp(/^oo0##b(/QFFznb&nb'KK:7::3--y::n77n77_;;;**BXXk{[j{[rXXeXXB'`w'`0'`r(/c++5##'@@b++B++ #@c##f;;%>:Q00qqq0q0k77=**l[]Eoo7@@w##{ooT{[x&&@76V00L55. c~!-++<1:*>:U;;g&&r!QhlkzttK11H11_22Hhh'TT9++$43w--q##p]'/FFp(/j##$>:}::~ooqLKVFD]KK(KKoGF}bb@BN(RRt|}` W'`7)(@TYJHH;ERm)(g`_o'`a~!f!Qa~!D]'kOO}OO% D]'^JJVJHkKJKERA!QIER-_)P'`c{[8'`I/^e_)5'`I/^./^%KJ8_);$$ 87rww(qqO98~44E22!229&&.&%4$$:&&d&&g==g==EXXd{[V'`TXXV--y;;D::F::u---##C@@R@@2##6##_@@T@@O$#BXXk{[A{[,ooq$$0$$1$$FXXnXXsXXaXXmXX@#@K--%:;g66y;;n**H%%`%%[--=;-=;-|%%;$$EXXMXXg'`>/^4/^-'`n%%2;;g55|%%MXXd{[j{[j{[", -"t44l**.=*c;;:>:x99~00~006>>8>>,>>s::c::p77(;;.@+b'`m[]N[]I[]nXX8'`O/^6_)1(/8XXz**~--z;;h--k--l--B::9>>>q0wqq^00f::n@@O}{g[]+{[O}{oOooOoB$$o:;888t77z$$]]]X m|}cPLvhhFaahaazll`TTGooQ&&#-=&-=$-=X-=^&&#[]%FDnaa'22Q22S22`22!yy[MMX[]}33w77%43 -=JLKTFFn(/O>:#>:F**([]*JH!/^MLKkGF5DS5HGm`_R R JKJHKJCKJsKJ4)(w{[9..=..#'`L`_n`_E`_K|}N N T|}7!QC!QyER3HG6HG}))0{[ oXc%%zXXe'`='`D[]zXXD[]q/^I'`R%%N66<09~99p66t==M%%>$$W ('``XX-&&(22z==e&&O$#$$$G%%[--a;;1::p;;&;-A--m--2##c++c++%@@LXXj{[K'`T'`m{[`XX>$$O%$@%$o%$8$$R%%M%%GXXMXX&@@M**a;;Z66y66=;-J%%W%%r==r==Q%%-&&q$$3$$,$$k{[9_)5_)a'`n%%6;;u66;;;&@@F[]XXXLXX", -"r441**l**I--p::1>>5>>5>>6>>Q77q>>>>>c::x::.=*F++y'`V[]L[]dXXnXX5'`o/^2/^[..Q@@F--*:;K;;F;;G;;E;;d;;V::t>>W00;>:!**I++ }{X(/:]'/[]O}{+{[ }{y**x77nww(331[]m]' ~!~NN2saSttRyy3hg]MM=!Q'ooY&&h##f##d]'X]'4JHUhh.32S22~22]22A22K22$$,oo,$$N%%%$$BXXMXXEXXi==s;;2::B**YXXF[]hXX*@@", -"e44<**<**k**I--C;;C;;C;;I;;7>>Q77>>>];;x;;%##M[]4'`N[]dXX#@@nXXc'`w_)w_) X.'++P%%a**j**Z##B##H##k##k--G;;H;;@=*=**Q++O}{bLKk/^:]' }{l[]:]'/++j::I00{&&n!QnJH8FDPMM2hgKaaYyyUyyaaasnb9LKFoo8OO6OO@[]|!!>FDnaa$21O1<@21D22$21+1<[22ODSq++e77c00k00k]'IFFESSiLKz(/([]s]'~/^3]'H{[>}{NOO|##GOOX'`%ERhVBAHG0`_:..i%%^22#32z%%{ #'`)EE]RR]RRCER1~!n`_G!QC!Q`RRsJHpER,{[7$$2==Y%%MXXv{[n%%|--|--|--6;;w==w==w==i&&Q%%@$#tXXI'`D'`y_)@)(HKJ1ER:)(y_)a_)j{[n%%2::S99S99f66Z--D%%Z--'%%]++P(/5(/,(/q/^mKJJKJ&)(j_)n{[=oo<$$:oo$oo}XX&&&l==t==;$$$$$0==t66D66D66h66c55i66V55 ;-8$${XX'XX,oo;&&l== ;-2;;q;;i66g55}--b%%eXXF[]TXXH%%", -"w44 @+%##N##j**Z##.#@u@@r##v;;o>:P;;Q**-**F++0(/Q/^p'`O@+-$$NXXx{[fXXVXXXXXI[]I[]K[]0[]S(/V(/V(/y++N++f@@-**u**Y**F$$Y++{KK>KJk/^l[]g[]X(/l[]e**N==0]'!HHvDS=FD=DS2kjlhhBttG22S22saa!SS4!Q:[]TOO+*&hOOgIPDaa],,2,,],,>1<922o1<#21dlk_|}Y33R33T33i]'WHHSSSRSS%JHnLKHLKALK2]'W]'>}{g$$e%%GOO7`_~RR1ER/'`@%$>32[55!44D22o+OK|}n`_bERHTYtHGYTYCERZ!Qb`_7!QjJHxJHm`_L$$k==-32$$$x'`-'`GXXY%%n%%|%%s;;_44t==8$$@$#8$$R%%R%%8$$'XX]''u_)JKJRHHDKJ>)(,'`v{[/%%k66'99L99y66n**(@@Z--'%%IXXM'`e(/w'`&'`>/^8)(j_)('`[XX:oo:oo@ooU F'`m{[Ooo%$$>ooO$#/%%s;;D66h66b66V66*87*87N66I441$$,oo,$$3&&I44m66|77.87V666;;b%%eXXD[]F[]*@@n**", -"q440[]G++###a@@k++Y(/3(/T(/y##_**J##f@@y@@1XX0(/8'`z'`,@@:$$c'`h{[P$$E%%EXXfXXi'`I/^x/^%/^}KK7KJC(/C(/C(/={[>**R==K&&I{[k/^`JJ]HHk/^(//{KK{KKX(/ ]'IKK8GF-JHMJH7FDAMMfssBttJ22$21]221hg(SSh!QxOOx22yOObPLgtt4,,;,>n<<&21*21|<<@1<6hg*!QwOOrOOeOO*]'FLK@JHQHHwLKHLK'//f]'E]'5]'I]'<.._##w..e|}1`_H'`<$$_22#65[55R22o+O|``1~!)EEbERYTYHTYYTYiERbERb]'C!QeHGWKK} 132u55k==XoX>'`q)('''BXXZXXR%%j55j55w==>ooBXX%$$i&& ;-4;;3$$'XXF'`#)(JKJw)(m{[,$$/%%s;;Z99Oq0I99Z66t;;N**}--n**[++'..S[]lXXGXXtXX`XXoooo%$6&&6&&+%$@ooP D'`j_)F'`'XX8$$1&&4;;c55V66k55q;;c55X87Q99G99@87D44a==&&&;&& ;-m66O87W99c55|%%eXXV'`N'`A[]$@@n**", -"044K/^${[}++s++H(/a/^R^~s(/u++s@@4@@i++p++#{[9(/i'`z'`A%%:$$q_)<{[e==s==M%%-}{h_)o/^(KK1KJ2KJ>KJ2KJ2KJ2KJm/^]{[U$$:}{VLK{KKpGFMFD]HH'KK2KJ`JJuGFISSlDS^HHgERf!Q$RTUMM2saattprrirr]rrNttpsa|SS>~!j11d )LL5ytj<'`'''%$$4;;j55w==@$#XoX8$$w==4;;I44N%%,ooF{[]''m{[,$$X;-a66V66O87[99@q0[99A99F66j66i;;N**%@@oXXjXXJ%%i==l==(22H44~44(44/44Q22=%%8oon{[a_)j_)}XXp&& ;-_44p66b66|--W%%w==V55@87-87G99=87~66L443&&i&&I44M66H662;;$$$G[]V'`V'`B'`hXXv%%", -"9449(/1XXd++,XX3(/!^~_FFs(/^(/TooW(/V(/r[]0(/z/^I/^7'`(%%v**f'`SXX`55A55a==|XXi_)wKJvGF{JJ.JH.JHdGF}JJxGFkGFPKK$_)%LK.GF]HHpGFFFFpGF{KKY_)X(/{KK8GFkLK`]'O..O >~!|SSMsslyysttdttzyyatt'rrcssPNN2^~1QWrvcJrrF77F77L88/88%1<6,,7,,drr-jhfIPF^~w++e++{==UOO9]'+OO5OO/oo7OO#]'/KKsJHBJH'EE=`_k`_W}{$oo>%%r&&{$$J 1`_LTY~DD HGtHGYTY]RRHTYlJHlJHlJHb`_D`_S`_P]'*..X$#'##;..k_)u_)>)(#)(>)(,'`yXX3$$w==R%%>ooZXX@$#R%%i&&w==%$$@$#>oo%$$1&&I44N66*87!99W99L99L99L99J99j99G77<::}--*@@ X.lXXM**_44N55T66/66'66R88[66=65X32&21#oon{[D{[-&&F44F447;;V55s;;n%%tXX%$$L44~66.09xqqywwCqq@87x==R%%w==2;;q;;|%%GXXqXXkXXeXXw'`n'`hXX", -"844#{[ @+|++,XX3(/i/^W^~d(/E(/E(/{//u/^[//z/^]JJo/^6_)q==5;;S{[4&&&09+09b55t%%l_)eKJzGFzGFeGF2GFtGF KJxGFPSSKnn5GF.GFbnbnFD]HHOKJ>KJY_)w@@A$$Q++EOOG==676@43r22, vPL{hh]yyzyy]yy9sa'yykrr+tr/aaSllOlk)iiE88^66H77E88(88G88c<<6,,q11~yy'SSG^~U33f22!33]ooKLKg]'_[]~/^m_)hLKqGFtBNwDS7HG;YU+TY(/B'`", -"744I_)H[]H++F++#{[M[],XX6@@J++l(/-KJ]HH LK;LKuKJhHGd_)*&&3==[##q&&066{88.32&oo6)(/RRaKJyHG%HG%HGbJHVJHjJHOHGCGFOGFonbbbbMnnuBNcGF|))$}{.$#H$$n$$KOO]33265l222111 iIPskj3iu}ii7piIffXpi6uy~rr#iuXcx3pidwwC77g,,b,,L77T88^669,,A,,^88Pyy:jh1!Qk11g22uOOu~!k~!2[]F_)6!QD_)jERnDS9nbwnbmGF{RR>YUGVV1VB{GG ERqER9ERTERsERcJH_EEnERYTYlJHlJHeHG%HGOHGm!QH]'MOO{##s{[,_):ER:ERF'`,ooN%%}XX}XXN%%}XXu_)y_)D'`n{[F{[F{[V{[k{[k{[D{[p==W66W667;;t==7;;i66k66h66u66a;;=;-[--=;-i;;$:;F%%XXXV'`GXXt==_44Z55O98198509%ew;ew-ewRqq309I88+54O54$65R44O%$N%%X;-,$$K'`s_)W (22{66;09_qq;wqsww;wqW66x==p&&a==h==r==;$$O$#n%%GXXr_)5_)C'`", -"6441KJ (/%{[ @+.@+x@@<**9::o-=QooyLKuGF.JHgGFPnn1GF*)(5$$j==u%%g%%F22-%%0ooh`_)RR~RRvERYERiERiERNERy!Q]RR%HGCGF+GF>BNOnbvnbJnn%GFxKJ3_){``:{[]``K!Q{|}`OO7 a^~tQW{CC}ffpuu@iu/iiPff^ffPffPff8jh-cxtpi%uyC77V>>m>>C>>h,,^66B,,F,,*165(446&&('`s_)K'`F'`&)( /^J'`0$$H44T66O98109cqqX09a66`44N55Y66W662;;Y%%O$#O$#rXXr_)r_)d{[", -"544vFD.KJo(/X}{.@+%##l**@-=o-=1@@c/^`JJ@KJ*LKXLK#LK,)(Z{[[##*oo~$$8..8`_j)(qHGGVV8HG'EE=`_n`_n`_f~!f~!CER-HGjBNjBNdBNpBN$BN%BNhBNoHGcJH_RRaKJcJH5FD6FDWPP>a::a::a::~66V,,G,,K,,{<ERfKJk_)F{[a== 76O09~663&&V{[y_)u`_n{[F{[yXXyXXtXXtXXx== 76rwwkww~99k55i==r==<::}--G%%eXXe'`&'`='`e'`0'`A[]wXXqXXj{[BXX&&&X;-*65&98[qqpeeveeveekeecee8ew498X65W22<$$D'`#)( /^s_)>)(u_)('`-oow&&H44o65%09G99W66N55a66 76%87@87j55 ;-i&&Q%%%$$tXXBXX8$$", -"444FnnvFD1KJR_)H[]${[2XXn++i##5@@;]'bLKT_)~##<==I$$q{[~`_w`_r`_b K O`__GG-BN8Mm6VBvERK`_#'`#'`Y`_j~!nER`DD=BN=BNRBB;VBQDD3VBgBN2VB5VB!DD|DD|DDUDD-NM5lkLCC}LL-ZC!ccEccrcx1xz>A>>A>>x66!66V,,e,,=,>D,,nrrilkZRTJ^~S^~]TTxTYvTYuJHuJH.RT^DDYMMQMM;HGI`_n11j33.65h88#54I11z .'`%'`J|}F|}F|}#'`L`_Z!QyERvJHeHGnDShJHHERS!Q4_)^]'Y :..Y'`u`_('`0$$-&&`XXy_)HKJVHGSKJy_)]'''XX,oo8$$R%%X;-a66#09-wq{99|77M66H66u66[--YXXD[]V'`V'`N'`q'`R/^w'`D[]x'`>'`F'`V{[ooow&&T44;65v88v88b88;98309809I88)22=&&|$$D{[,'`>)(V{[yXXOoo>$$0$$6&&W22R44X09~66n55`44Z55Y66N55X;-I44I44_44j55I44 ;- ;-7;;", -"444-GFbFDoKJ.(/q[]5[]r'`Uoop##H**2@@:]']{[(==t88'77,&&(`_,ER~RR '`6..Q}{{GG&BNQbb;BNGTY,~!F`_F`_b~!b~!xER.FD)MMgNMNBNKBBlUI|DDOVBgNMaNMjNMXVB[ZZ]CCnkkrfdSkkXvcYcc#cx7cxucx>cx6xz6cx2vcucxycxycx.cxPii198n66h55c55g66B66d66k66l660,,s::=,>011Iyy`SS,^~H^~[TTOFDADSCDS3FD5FD$NM_bb;mn`BBiRTt..033N88i99X98P22k`_.ERcERmWE;`_P`_#'`L`_)EEvJH}GGiDShJHNJHsJHxJH,_)4..u%%u%%n{[8)(%)(u`_D'`1ERFHGFHGAHGHKJj_)F{[,oo&&&i&&l==I44p66Q99pww5wqgqqL99'99<::c%%e'`='`eXX&@@kXXq'`9'`q'`q'`-'`>'`F'`Y'`n{[=oo %$U11Y11A11-21 54,65,98,65)22@%$|$$oooT'`&)(}XX3$$N%%>$${XX#oo<$$o%$L44h==p&&X;-`44Y44p&&3$$a==Y44W66%87-87-87 76Y66", -"343(KKsGF|KKk[]cXXX}{H[]Yood##+-=I**Q++V$$'55PqqpqqQ44>..5)(oTY8`_Y..F..xWEnGFrmn;BNrHG@ERnER[RRVER.~!(TT~UU]ZZ[ZZAZZdZC5PL+VBjNMDmm/jjHkkEmm|VV_ccYff1iu,piwpiqpikzl3xz)zzCzznxxGvvcxNeem66c44n44k55h55V44p66i66o,>.,>8,,}<<~88.jhVIPR~!zIP DSUMMVMM@NM%NM=mnAhhAhhKjj+Mm2YU=|}D11k33k33K..oERJVV=HGLTYZER2~!-`_1~!iEReHG}GGMGF5!Qj!QaERWKK,_),..]##:..p_)3ER'`T'`B{[n{[_'`/'`t|}/ x..J..Z11|22=65=65{55.326&&=&&O%$V{[>)(T'`F{[yXXJ'`y_)0`_H'`W'`V{[F{[Ooop&&X;-h==&&&q$$h==a66X09%09cqq;wqcqqG99", -"243{))XKJB/^@}{M$$;@@cXXWooi##O=*O-=|**.:;q88Cwwpqq565g%%r`_qHGNWEpooI11p|}oER8VBAGFKTY!TT`UUWDD6FDjTYRTT+YUzYUcYU.IPfZCNNNmNM]mmHkkufd|dd.fd'ffLff pi_uuuuuBuuJiiizlvzz~zz_zzecx7bv_AAHIPYIIP>>$,>9bvHuu$769::9::q::q::x44B44N44x::O,>N,,Z,,m,,/yynll_LL!LLoDS6NM$kj:kjDMM-kjWjj9kjLggagfZBBbQWi..o1<,#_)|JJn/^@}{M$$^++o}{t##p##H**2--o:;^55587rqq~qq`66G227`_DGF&ER]$$w33J..B)(@YU*YUmER!TT FD'MM%NMFDDrPL+YUmRT=QWtYUzZCDmmJmmWmmTkkafd,ds9iu.iuWiiHiiZii8uymuuXzlmzzNzz,cxDvvebvJIPi>>JIPp>>o,>U,,UII;pi&769::o:;9::q::Z44l44i::p::j66C,,M,, ,>#1<(yy=jhJNNbPLIDDJMMFMMukj;kj0mnzNM>k>>'AAbSA-,>O<,L>>5xz|888::2--q--[;;@:;0:: :;y::o,>l66d::k==*,>*1<)yy*jhZllrNMxllrkj;kj%kjLmmDZZZZZNZCAUIu}{O1`_YTY-HG_DD}GGeHGgKJS!QP]'H]',[]P]'dERCGFZGFoTY9ER#`_g`_i`_2)(ZHGgVB,BN$$-oo`XX('`Y'`ooop==C55M55e&&B{[D'`D{[O%$e&&", -";<, $#{``3..s%% $#G$$)==.>::76Y77:87)77(77{77e88aqq^qq999633A ,`_P}{G..sooe..!}{C %++I..m}{(TTlTYzTY^UUIPP%IP IPOCV]ggFff`ggJxx=xzjdd!ii|zz.xz2zloxz4zl3zlhxzXbvTAAcSAnSA{AAd>>T>>A>>`AA{AAT>>',,O,>8cxt00q::&-=---{;;@:;+:;';;V;;p::o,>t::f=='**^;;$1GFSKJT'`8$$r==}--[--TXXw'`#/^7/^*'`n'`F[]hXX$@@eXXN'`V'`rXXMXX'''g_)9_)-'`e'`q'`9/^bKJJKJa_)/'`P _ c..dooT22T88Yqq0ewhww-09m55=&&D{[%)(WGG|^^7_)F'`T'`T'`W -&&J44(220$$B{[u`_a_)D'``XX-&&D44f==oooy_)SKJ8)(n{[ooo", -"-<,333J$$f%%.*&|##e%%433T77B00C00H00>87]77e66e66q99Uqq609x88m11_}{u}{~}{b..d..r..W<vc|vv}vvGxxZxxZvvTAAS>>.,>W>>A>>I>>W>>j>>abvabvnSAz,,@,>1bvDuuc44-==Z=={;;z44>432--1--V;;p::_;;f==!**]**/;;S<$$Y'`CKJ>GFAHG8)(Y'`", -"=<,f555==+32J225%%z%%y55,87G00ZqqP00 98165h33a33a88m88n88t33!<<-|}]}{@|}f..1|}t /<<`11_11k =^~>RT-PLUCC~CC/cccffoiuhddCii xz:xz@vcqAZzAZ+SA8SAV>>]AARvvNxxCvvsbvl>>X,> ,>I>>A>>A>>nSAybv:bvabvE>>@,>IIIBzzz55p%%;==[;;Z44,430--O-=1--O:;C;;g==j==G;;f::H,,(88FrrwytFyybyy@jh4CVuIPN<<:43Z88Z33,|}a}{-WE3YU0YUHWE6`_3~!]RR-HG_DDeHGyERgKJ7GFqDS$HGjERC_)B`_:`_=`_!EE)RRs`_/ X32I888&&=ER:BNgVBzVB>GFSKJK'`8$$|--a;;<::n**$@@n'`R/^>(/F[]$@@`%%{%%&@@eXXkXXn%%0==i&&R%%ZXXa'`@/^{^^9/^g_)V{[-oo-&&W22+54.98Eqq9ewheecee-09/66W22|$${XXn{[w)(RHH|^^g_)]''F'`&)(%)(Y'`-oo(22n{[IHHIHHj_)W {XX`XXn{[('`j_)HKJVHGFHG:)(Y'`", -"*<,<325==833533y22i22O43Z00E00.wqY00l88M22N11511B11B11M11I<<#|}+!QNQW|QQ%!Q+!Q#!Q6<>!>>H>>U>>LAANxxezllxz*bvvSAS>>Y>>g>>*SA[AApbv{vv{vv2bv|AAL>>TII|xxT66-==x%%0--S44143w--V==O-=Z;;F;;M;;n;;J;;g::^665wqHrrtytuyy8ytvjj2ZCaQWz11e00,43i11}}}e}{;WEYYYTYYHWE4`_q~!bERYTY]RRF!Q&`_gKJtBN|bbSnn$HGHER&`_N`_>`_TERqHGOTYM)($%$+54@219)(YGGYGGgVBlVBVHG>)(tXXW%%[--=;-v%%LXXB'`w'`F[]*@@`%%n**`%%&@@eXXzXXW%%s;;m66Q66I44n%%D[]e'`D[]tXX,$$%&%^44*65>09kee2re$re7ew@98~44t&&<$${XXW T'`>)(RHH,/^d'`m{[F'` /^SKJy_)B{[%&%u`_FHG@)(D{[-ooB{[j_)HKJ:)(a_)y_)@)(1ERy_)('`", -"&<,1==j%%L22%32u22u22s33'88T00+ew]88J33Y<<&|}n^~{QQ@!Q@!Q.!Q>QWKWE1AZ#ZC=AZ%ZC%ZC9AZ:QW !QgQW.QW'WWaIP!II~IIZAZSAARAA9SA!AAJAAJAA#SAG>>J>>NSA!AA#bvmxx'll_ll8zlBvvGAA-SA*SA/AA$bv/vvSvvSvv/vv{vv[vvKIPIIIrcx[88*-=;===-=q449445--W**V==9--D;;A;;B;;`;;X,>B88Wrr$pi*fd*fd-fdevc.UIY,,x11C33c339<)(:)(J'`{XXoooa_)CKJy_)`XX{XXj_)CKJWGGHKJu`_n{[D'`y_)j_)n{[", -"%<,r%%GOO_$$9%%&++%++711S22=43;43B33U<>M>>M>>@SA^vvzxz)llYee'99Wee.zlhxz$vc}vv@bvAvvcxxzzz6zlsxzVxx9cx2cx5bvNAZrcxt00+:;Z==Z==&43n33#-=E**E**$-=S;;m;;N;;V;;u::`662uyepi6jh9jhAkk:ZCOUIjQWE,,8<(/n'`v%%t;;-;-H%%wXXzXXYXX=@@W%%6;; 87hqq2wq|77;;;B**}--_44~66.09;wq(qqdww]qqa99=655&&! 8)(%)(8)(F'`T'`9_)-)(-)(sHGbKJw)(s_)s_)D'`W 0$$B{[:)(CKJ8)(B{[B{[8)(FHGHKJj_){XXO%$ooo('`('``XX", -"},,)$$V G H !|}L}{W|}3 >1>C>>@SAobvpxz$reD99*65:65geemii:zl1zl+xzAxxsxz`ll re re`llzzzEzz(zz_vv1bvrcx*uyV44A==;==h33g33U==T**R**+-=m;;%-=2==2==x==z::%98@iu7piIff}ffLccoZCCAZZAZrZC CVBccvmnSBB(ZZJBBABB|ZZ#ERFWE]RRlJHtHG`RR^EE<_)r{[FOO[]]c]'HERvJH{RRX`_$`_MWE&YU=YULUIOTYI}{#%$8oom)(!GGcVB(/7/^R/^LXXN**H%%XXXXXXYXXb%%J%%|%%2;;Q66#09hqqV66=;-}--a;;|66Cqqfeelwweww-09{55<%%^ )'`_'`D'`a_)j_)F'`u_)bKJsHGgHGkVBsHGDKJ>)(s_)Y'`{XXO%$u`_HKJAHG@)(J'`Y'`y_)1ERY'`{XXp==U44e&&{XX{XXO%$", -"{,,0..J`_q~!GWE*WEmRTDQW;QWsQWkQWyQW'IIVAZhAZSAAwAZ*CV=vc=vc*CVwAZfAZlAZsAZ|vv$vcFxx&vc.bvaAZaAZpAZLIP>UI;UIG>>h,,#<,}<<[<>$SAtAZaxziee]55'33{33C99Zuu;zl=re@re1zl,zl,zlMuu_99)99Xre,zlhzlpzl;cx2vc4cxJuu676|;;u==+-=Q**z%%z%%Q**+-=+-=C==%=*J##P&&l==f66'qq>iu,pi2pi2pi^ffHcchcxAffkddDffKkkkZC%AZZBB=MmaVB#YU@YUwJH*FDqBN8BN4DSfJHQ]'`&&v&&VOOM`_kKJaKJ'EE1`_O`_MERLTY,YUTERO'`Q U Q'`2)(@TYUGGcVBCHG=/^-'`N'`e'`&'`R/^n'`jXX[++:XXM'`n'`lXX{--h66k55r==7;;|66T66f==@$#=@@=;-Z993wqFeekwwF99h==V{[y_)a_)Y'`! B{[D'`k_)k_)&)(SHG'`-)(F'`>$$-&&J'`IHHWGG:)(u`_:)(1ER8)(%$$ ;-m66N66V55I44w==M%%", -"[,,rWE|DD VBNZCZZZ*IPOQWEWEyQWdQW7UI/IISAAiAZdAZxAZDAA3SA4SA6SA>,UI-UI-UI-UIXSA SAPIP1UI0UIXSAHAA@SA{>>q,,G,,7,,M>>~AAYvvwre,65D33Z33O65(eeczz%xzciizeezeebiivii^eeL99287jee zlxzzpzlDzz6cx cxFiiy88u44:--Q**R**z%%R**C==+-=Q**R**===P&&%=*l==c>>f88iww4uy2uy2uy2iuLffVffpdssdsDffLkk.IPHQWcRTnUIaUIzUIAGF9JH*FD;DSynb)bbtnbfJHU]'WOOcOO'``dERaKJYERo`_1`_MERMERRERMWEo`_q`_q`_q`_q`_9)(-ERFHGRHH;/^8_)q'`G[]V'`n'`XXXPXXJXXv'`6/^&'`&@@t66!99*87Z55Y44M556&&`XXh'`D[]H%%a;;u66c55l==1&&@$#F{[]''n{[D{[`XX%&%3$$Ooo'XXK'`&)(DKJ /^MHGmKJa'`g{[k_)T'`1$$%&%n{[HKJVHGSKJ@)(HKJy_)W 1&&j55 87 87N66p66l55_44", -"],,hZCzmn&hg)kk]VV&ZC6AZ^II&UI5UI9UI=UIoSA.SAXSAm>>4,,g,,f,,3,,3,,c,,.<,P,,P,,P,,P,,N,,p,,/>>n>>2UI~>>Q>>PAA(vv~vv;bv>bvOSAOSAOSAGAAjxz 09Q44Z33!44x00Wzzcxx*zlorehee`99fuu[ee109,76+76109KiiAzzSzzDzzDzzZzzLii409N55:;;U**l%%0%%U**V==V==Y**0%%>==&=*%=*s==$:;M66/77U88`88X98898;uy/uu)uuRiiSffTkkbYUb^~IQWUYU{UU:YU-YUPTY>HGtDSenb0hg9hgknbhJHc]'[]]P]'^EEcJHaKJTERx)(MER3~!$`_o`_WEE;ER2ER$)(E'`p`_0`_:)(JKJFKJ4/^8_)G[]G[]qXXhXXlXXS[];(/^^^MXXq;;-wqGeeaww*98~448&&)'`a_)q)(V'`v%%{--M**;$$v{[rXXMXXXoX@$#8$$&&&;&&p&&&&&q$$,$$'XXY'`j_)u`_4/^-)('''A{[K'`V{[3$$1$$V{[&)(RHHJKJ /^ /^K'`&&&0==s;;M66b66c55b66H66|77", -"_,,/kkvcc`VV;CV,CV:CV-vc bviAZoSA0UI'>>]>>_>>K>>6,,M,,o<,b,,M>>QAAMSA)>>/>>#,>v,,|,,|,,l,,_>>n>>:UI:UI=SAKAAibv&bv'vv_xxPzzDxx$bv`vv=zlK99)44!44l00WzzSvvzzz re~ee/eeheew00109w77{55{55P99Suu4xzFvv:cxbzztzlHuua00%769::b%%d%%a%%d%%b%%c==b%%a%%Y&&Y&&Y&&6==V-->::H55G66H66(66E77.98XwqAee[uuQiiFkk0ZCCYUlYUIPP+YU0WE8~!NERwJHtDSWMMdhguhgenbmDS:JHK!Q!]'&`_cJH2HGLHH,ER(EE=`_h`_r`_6)(3ER3ER$)(y`_W'`('`u`_&)(FKJ;/^7_)a'`j{[kXXkXXA[]n'`n[] X.b664wq=re+regee>09}22/ 2)(0)(F'`rXXH%%{--N**c%%(@@*@@=@@=@@n%%/%%t== ;-N%%OooF{[{XXO%$O%$:ooE w)(&)(F'`m{[T'`F{[3$$,oo'''-)(FKJ-)(g_)>'`tXXQ%%|%%0==|%%/%%i==c55V66M66", -"),,=xz*vcuAZ4SA4SAkAZ!vv|vv3bv%SA_>>s,,d,,[>>B>>|>>x,,`,,;,>YAACvvCvv'vvXbvUAAV>>a,,a,,`>>f>>]AAIAAFAA@bv2bv/AA[AA`vvUzz_ee&zl2cxqcxOzl~99176v99dzlKvv)vvOzlz00`eezuum00R99J99-76|44|44476Vuubxx0bvwcxyzlhuuduuy00877F44S==b%%($$^$$a%%b%%b%%c%%w%%w%%t%%T&&y==,;;x>>H55U77w88'88'88o98qwq:uytuy gfKcc3CVKCC4PLsRT=~!e~!NER;FDXNMrnbrnbWMMqBN/DD#DSC!Q...{]]~EEwHG9HGdKJX`_X`_@`_X'`~'`/'`y`_8)(j_)Y'`D{[m{[k_)>)(s_)I'`d{[EXXn%%RXXD[]A[]v%%t;;3wq^ee re~ee{qq}88-21Y}{m)(P ,ooO$#(@@`%%{%%H%%V--m**'%%H%%D%%G%%G%%J%%,ooT'`s_)B{[d==o65)22}$$8)(HKJ8)(D'`K'`'XXN%%,$$g'`}^^jHG=/^x'`CXXW%%2;;M**c%%eXXqXXG%%a;;t66i;;", -"(,,:vc0AZEAAD>>9,,9,,2,,%SA&SAf>>U>>[>>(>>OSA&bv}AAZ>>R>>h>>]vvlxzIzzYzzmxxRvvLAA-SA&SALAAXbvRvvRvvHxxMxxDxx{vv4bv>N66O98wwwVeewww999999999598@iuXpi1jh0CV9IPFRTGRT*RTVJH>DS2nb4nboNMwBN,DS)DD9JH']'k%%2%%!`_pERfKJ>ERN`_%`_@`_~'`%oo<$$D{[u`_F'`m{['XXyXX]''T'`F{[OooR%%i==6;;0==&@@&@@{--Z66Oq0gqq<09%98[66{55Y11F $%$.32^44r==(@@^@@F%%F%%n--S--'--'--A--)%%$@@hXX]''w)(HKJu`_t&&>65|44/$$p`_3ER$)(j_)J'`Ooo;&&,$$='`mHGNFDbHGq'`=@@;;;k66=;-b%%G[]V'`=@@;;;a;;[--", -"/,,VSA7SA^AAF>>n,,X<, <,i,,U>>-SA%SA%SAKAATvvhxz0cxEvv`vv`vvVvvfxz=zl]ll}llIzz)xxZvv_xxlxzIzzwzlYzzIzz-zl$zlnzz(zzszlbuujuubuu+zlszlQllcuubuu+zlRzzqzlvuuf00-09909Y99.65O54{44k44w44744.54q00gzlecxMzzxuup00>09I99'66<43_&&#%$&##Z@@-##E$$E$$E$$h##j##w%%$%$I&&_==v>>R66999wuy:iuyuy&uymee]88_66_88tww|ii=lkQLL!PPmTYbTYuERmDSXNM7BN:DSDDD)DD5FDA]')&&o43K22n A!QDER-_)$'`!`_X'`:..u%%%&%oooY'`T'`V{[yXXyXXV{[yXX-oo%&%4;;_44c55k556;;=;-i;;<::e;;N**/%%x==R44]221%%aooU88099.09s;;D%%)@@)@@[++]@@F##H--`--S--_@@oXX0'`,/^DKJCKJ0`_>%%=65@54U11U 9)($)(0)(u`_}XXq$$'XX0/^nHGJFFvHGR/^lXXn**>::[--J%%eXXV'`kXXJ%%B**}%%", -"<,,2,,BSAWAAmSA0,,n,,k,,B,,_>>(AA%bv+bvWvvgxz>zl|ll*zlzzzsxzsxzzzzAuu~ee!ee0re}ll%zl}llLll0re0re{ll}llIll.revuuUllQllYllkuukuunuuWll!llWllfzl`zz'zzFllz99$54O76n99l99|55k44744744744L33w44=09+zlMzzEll]ee000;09e77G44J33#%$f##Z@@Z@@-##f##&##Z@@~$$w%%w%%$%$y%%_==v>>R66t00Guu-piGiiruy$uy}88b66s66W77Wrr'hhZlloDSjIP;RTG!Q^JJ>HG:FD-FD)DD6FDzTY:+++43365O32y{[*_)=)(f_)(]'(]'e{[%ooy%%%&%{XX]''T'`m{[V{[m{[V{[`XX1$$-&&4;;I44l55M66H66h66;;;M**T@@S[]D[]8$$z==%211%%1%%u99`qqo09q;;D%%)@@]++ X.4XXz++!@@~@@c++'..<(/`^^MKJJKJ@)(W'`r&&I88T88|55;oo9`_wER1)(y_)V{[Ooo]''T^~&KJ&KJ#/^>(/n'`lXXv%%`%%D%%lXXn'`w'`hXX(@@v%%", -"<,,8,,mSA-bvQvvObvBSA5,,i,,f>>XbvHxxZxxdxz[ll}ee 09k00}ee_ll5zl'llQeeQ99 09Ree&re-re}eeReeTeeRee}eeJllKllEee909z00N00V00b00:09q00buuazlszlszlMzzUllq00|66k44O54X76.54L33L==X-=f33X-=z33{44n99]eeUll]ee;09b99077'66<43,--E$$&##0@@0@@Z@@-##-##&##d##C##C##C##e%%u==c44576wwwVee>uywuyVee<98)66c55c55(77Yrr{yy7fd7NM{TTb|}1[]pOOx]'bJH|GG0DSMGF^EEj%%t55077433a{[+LK-LK)_)r{[^{[4..T## oXG{[M{[m{[BXXXoX>ooZXXA{[k{[BXX>oo;$$M**2::S77(99c99D;;~@@0'`+/^0/^EXX4;;x==%&%|$$$87;wqQ99|--D%%IXX`..L(/w(/w(/1(/<(/<(/<(/0'`m'`u_)#)(@)(I T44,98099.98d==W'`AKJIHH1ERT'`yXXF'`mKJBKJw/^-'`8_)>/^5_)C'`qXXRXXRXXV'`E/^e'`RXX[%%", -",,,7SAyAZ'xxXxz0zlxxxeAZ&SAibvIvvZxxdxz8zl_llQee}99}99k00}ee-re&reTee]99Q99k00}ee#reQeeTeek00Tee}ee&re*rex00909z00z00,09n99l99T99]eeEll+zl+zlazlbuuq00X76k44{44O54w44X-=`%%F==L==L==f33w44c99M00]eeq00b99276}66H44=43^==E$$&##0@@0@@Z@@-##-##&##d##d##C##A##I&&;--q::c66U77w88O98O98'88)66g66h55B66_88Yrrayy9saJMMbTYN~!/OO6%%1[]fER&HGeDSMGFkER1==a554655==]``xKJ-LK `_r{[| 1..=}{1{[G'`L'`I'`%$$Q%%i&&Q%%@$#ZXXXoX%$$W%%[--t66A993q04q0'::v--[..;(/*'`=@@ ;-a==>$$#ooJ44 76l55$$$hXXb[]%(/%(/%(/-(/-(/*(/$(/0'`oXX%@@yXXF'`y_)E /44309`qq909_22N{[3ERSKJ%)(]'''XXK'`vKJ4/^C'`j{[5_)cHGcHG=/^N'`eXXkXXq'`q/^q'`RXXM**", -">,>Uvv`xx(xxrrru66H99ereSxxZxxmxxdxz7zl'll#reRee]99Q99F99Q99]99}99]99Q99u99Q99TeeReek00}99]99}99ReeQeeEee709909n00909T99 65O54X76,09cuubuubuubuu]eeb00l99{44744744z33i**.%$E%%/%%i**R==744376,09:09n99o76]66H44<438--<==E$$-##M@@M@@Z@@-##-##-##d##a##d##e%%,==;;;.:;8::b>>h55c55g66g66c55h55h55(66#98Qrrayy!aa,kj9FD@~!/OO6%%. C!QVJH+HGOHG^EE5==[33[33J$$1_)0KJOLK `_/{[nOO1..>{[X_)1/^q_)h'`$$$/%%i==0==;$$GXXGXX$$$[--a;;F66_998q09q0V99m::o#@;XXoXXG%%i==Q%%OooD{[x==a664;;zXXA[]0'`*(/1(/w(/u(/b[]t(/0'`oXX)%%p;;w==}XXT'``XXR44-09]qq`qqH44E 0)(:)(y_)V{[}XXT'`jHGw/^rXXMXX5_)aHG=GFjHGE/^N'`V'`E/^9/^e'`=@@B**", -":,>rzlkxz/xxqre,54+43[99Jll#zlixzLzz[ll#reTeek00]99F99u99>65`55O65165u99O65u99}99 09]99F99A99A99}99 09|99|99n00|een00T99k44w44O54n99b00b00,09,09q00b00T99{44L33b33R==E%%p$$[$$5%%`%%R==w44O76=09376O76|55o54C44=43|==]&&E$$f##&##Z@@Z@@-##f##E$$a##a##a##y%%u==;;;>;;>--);;);;);;&:;w::h55g66B66E77oo}XXN55|666;;YXXF[]m'`t(/OXXIXXW@@o#@%@@PXX+#@>::A99V55i&&}XX-oo_22[66@98E88d==I 0`_a_)D'`'XX,oom{[aHG>/^C'`j{[r_)}^^BKJ>/^T/^E/^T/^9/^E/^eXXG%%}%%", -"=,>9re9zl}zz5re<54|33r66}99#re5zl7zlJllk00]99Q99]99Q99u99)55_33_33Q44`55/55165F99]99F99u99165165Z99F99K99!99n00luu_ee,09{44w44{44376T99c99O76X76T99q00T99k44z33z33L==.%$+$#)$$.%$`%%f33k44O76T99 65 65o54A44<43e--B==_&&E$$E$$-##&##&##-##f###%$d##a##d##y%%u==>--;--p==z==z==V--<;;7::h55I66)66(77Krr`ii&fd{hh$kj=DS5JH~JJ'!!'!!m!QJ!QjERgKJx!Q1..J$$%=*.$#>{[&_)/_)4{[W$$0**~##0_)zHGxHG*/^='`qXXzXX&@@&@@=@@G%%[--a;;f66A99_99f99_::{::z99N99m99I::B--)%%H%%b%%;$$M%%X87D99g55=@@hXXXXXoXX)@@b--L--e;;A--'%%Z--f66)99O87j55p&&&&&p==H44.32%21<$$H'`p_)u`_Y'`}XX,$$m{[cHG=/^8_)a'`a'`g'`C'`d{[&'`q/^@/^q/^G[]G%%}%%b%%", -"*,>$09%096re4re866@43%43O65]99&reJllQeeQ99u99265F99Q99Z99`55I33C33I33Q44}33O65Z99F99Z99>65`55)55>65u99s99S99-09N00_eeb00O54k44k44X76376X76.54{44O76T99376L33R==z33R==[$$+$#p$$.%$i**z33{44O76c99{44.54 54j44=433--r**h%%E$$E$$E$$-##&##&##E$$&%%d##d##C##e%%T&&u==p==p==y==z==-;-&:;b>>B66)66988#986uy=fdCjjwkj}MM7FD:RTv!Q%]'%]'S_)H_)b!QhKJJER&}{X$#7==,==(##1}{%}{U++8**p**&$$.(/%KJX/^6'`B'`D[]D[]D[]eXX&@@}%%i;;2::F66v99v99P::H--W--/::r>>M99)::G--o#@%@@=@@n%%/%%O87W99i66M**H%%(@@v%%P--'--$:;$:;P--N**{--h66L99gqqO87V55X;-2&&|$$#ooU /'`1)(7)(D'`('`'XX'XX,'`}^^4/^8_)r_)g'`j{[rXXv{[q'`&'`T/^N'`c%%=;-B**&@@", -"&,>.09y66O09D00V99#43s33C33)55Q99k00]99265`55/55265A99F99165'33Z33I33}33}33`55Z99A99u99`55Q44}33)55165i99;76p99~99909q00|66{44k44 65O76 65{44k44.54X76{44L==`%%f33R==)$$ $#+$#[$$`%%z33k44|66O76744k44j44044e--B==k%%#%$E$$#%$#%$f##&##&##E$$u%%C##C##A##A##e%%I&&u==>--V--<;;w::g66)66w88O98<98tww=iu,jh4lkLNN4FDO~!o BOOl$$BOO*[]*[]H_)c!QZ_)P###=*655w55W==9**!%%7**J==Y==:**J[]6'`aXX/@@)@@YXXeXXqXXRXXM**a;;t66t66F66D77[::'--F##p--(--N::(::n::u--Y@@jXXLXX=@@G%%q;;u662::=;-=;-n**n**>::$:;e;;V--`%%`%%}--h66S99=wqgqq 87L44>$$('`y`_9`_0)(AKJ$)(u`_Y'`V{[]''#)(MHGw/^g'`g'`g'`C'`x'`a'`e'`V'`qXX&@@B**i;;B**=@@", -"%,>X09766t66@09o09$43L**3**Z33>65A99u99`55}33'33`55u99F99u99Q44S33_33Q44}33O65Z99A99265)55}33_33/55165i99%65#65176U99=09|66{44k44 65X76 65.54.54744.54L33E%%E%%f33L==+$#]## $#)$$`%%f33w44O54|662437440446443--r**/$$f##E$$#%$#%$f##&##&###%$h%%C##A##e%%C##d##e%%,==;;;&:;l::B66988598wwwmeemeeUrr_ii3jhNll.DS$RTX X*&F==,--[&&cOOcOOW{[K]',}{Q$$!==/55'55r55T==P==P==/;;e::L==-@@o@+Z**%:;y;;Z--{%%H%%{--j66A99j99F66C66g66#:;n--u--G--R--s--^--d--<##0XXOXXhXXRXX&@@kXXJ%%M**B**=;-{%%H%%-;-$:;P--`%%(@@v%%}--D66'99%wqjqq*874;;yXX8)(3ER3ER3ERPHH3ERu`_D'`T'`k_)GHG*GF4/^j{[j{[g'`-'`8_)4/^='`qXXc%%M**=;-i;;B**b%%", -"b>>g99*54=54g99g99`44a33D%%6**C33/55>65`55S336**I33Q44O65>65)55'33I33S33}33>65F99Q99u99/55S33033W33!44}55X54#65l99376X76.54744744O54O76X76.54{44b33z33`%%p$$5%%X-=L==p$$j@@]##+$#E%%X-=w44O54|66.-=l33K33v33Y==^%%]$$i$$i$$]$$]$$i$$o$#o$#|$$^%%i%%Z##s##s##g##Z##`&&:;;l55Y66{88398t00wwwwwwwww6uy-iugffyNMZPL-~!5++#43L55I55t::1--F&&p$$m$$R$$X:;4::E55z77b77z66^;;t**|**/;;X:;:;;#;-s66L77P99A99G77Z66k66Z99{99W99V66t66-;-Z--A--L--n--p--G--u;;S--3##[++:XXF[]B'`w'`$/^='`kXXb%%}%%M**B**B**H%%`%%`%%`%%n**p;;G77Xq0{99|66I44Q%%yXXk_)%)(%)(&)(&)(s_)m{[}XXm{[#)(dHGcHGw/^j{[v{[-'`}^^vKJvKJ8_)rXX|%%2;;i==/%%W%%W%%", -"v>>d99]44-54d99j99966o433**6**Z**'33>65O65I33f**f**033_33}33_33Z33C33033I33)55u99u99`55I33S**V**A33]33}44X54 76l99l99X76243z33b33{44|66O54w44744z33f33/%%p$$.%$L==i** $#<@@j@@p$$E%%X-=744.54 65.-=l33v33l33b==|$$i$$o$#o$#i$$i$$|##h@@V@@i$$|$$r%%g##*##s##s##g##U&&<--M44Y66{88e00e00598<98<98aww+iu,fd4lk@PL#~!{OOk22(33)33t::>76R77Y77,76R55K77z77s77z77b77s774::>;;]**O:;g77l66=:;=:;A772q0&wq:wq*wq@q0gqq!99b66 ;-<::i;;&;-A--b--9##n--A;;P::u;;m--+#@[++hXXF[]B'`&'`N'`eXX=@@J%%[%%J%%G%%[%%M**}--<::k66H77L99'99c55i==8$$BXXK'`w)(:)(a_)K'`K'`m{[Oooq$$yXX>)(dHG=GFmKJr_)g'`8_)4/^4/^8_)-'`v{[;$$Y%%$$$GXXGXXO$#", -"c>>e99(44'44q66a99q66'44l**4**4**y33_55+65U33g**S$$4**A**y33y33q33]==]==q33]33[55_55U33A**4**P%%]==G33h44}44 76c99l99 65R==F==R==744.54w44b33f33X-=R==E%%p$$.%$i**E%%j@@>@@]##)$$`%%f33243k44.54Y==4--l33Y==f%%i$$V@@V@@o$#i$$i$$o$#|##o$#T$$|$$r%%s##X#@*##*##s##U&&<--l55%76298Meee00O98w88988;wq&iu,fd lkIDD3^~|OO6++}&&@*&8--Y77vwwKww}00/77687z77h::X:;X:;4::X:;^;;u**O:;!77U996::D**c667wqDeeHeeSee=wqW99Q66I441&&|--[--B**n**)@@T@@F##S::N77`::#:;A--F%%$@@lXXwXXqXXqXXeXXRXXb%%J%%G%%=@@[--}--<::G66I99I99F77u66$$$rXXg'`g_)7_)w)(k_)]''}XX'XX'XX3$$;&&3$$K'`JKJ=GFMHG>/^4/^=/^>/^r_)C'`x'`j{[MXXrXXC'`C'`v{[CXX", -"x>>#54.43E33I44(44(44U44]==F%%x$$9**W33)44G339**S$$P%%l**q33y33y33q33q339**y33f44]33q334**F%%P%%A**A33544/44 76l99X76{44`%%/%%L==L33w44b33R==L==R==F==5%%)$$.%$`%%.%$<@@>@@ $#5%%F==z33243w44k44b==Y==.-=u**T$$h@@:@@,@@]$$]$$|$$|$$4%%^%%u**b==h%%E$$-##f##f##E$$_&&6--v66y88CeeeuyBee<98w889881wq|ii3jhXlkvPL`|}922922(&&c&&m==-76=q0xww888T55_;;{**K%%j@@K%%V**o=*I==~**!;;Z77_00x66D**5::&wqFeeWww=wq|667;;X;-F44X;-R%%;$$;$$c%%$@@PXX3##_--`::E::#:;V--+#@LXXwXXXXXV'`e'`V'`YXXM**a;;2::<::<::;;;;;;t66G66k66}--=@@v{[x'`-'`g'`I'`'''yXX,$$}XXV{[T'`V{[3$$p&&N%%yXXw/^8_)r_)5_)>/^w/^g'`rXXj{[j{[d{[g'`a'`C'`GXXY%%", -"s>>^44T33r33232w33x33T33 -=2%%X$#}$$e33544e33!%%J%%(%%j** -=k33k33e33 -=2%%P==544544 -=(%%!%%t**A**y33R33844}55O76O54L33`%%`%%L==L33243X-=i**`%%L==`%%.%$)$$5%%/%%)$$>@@>@@+$#E%%L==f33b33243744u**K==K==f%%|##+@++@+,@@|$$|$$4%%^%%b==.-=4--l33_&&&%%E$$E$$E$$#%$<==9;;676409FuuGiiruy999O98'88aww%pivkkNll!PPh h22h22>++(&&/&&`;;=76h77j::/;;c@@H++xXXZ++c@@V**I==:;;b;;k;;p::W77B77=:;5::J992wqBqq*87F44&&&-&&z==J443$$XoXXoX;$$G%%D%%)%%m**'--_--m--F%%PXXXXXF[]F[]T/^E/^N'`=@@<::L99@q0@q0k55i==W%%0==q;;6;;n%%j{[V'`N'`C'`MXXXoXXoX@$#M%%]''k_) /^&)(yXXF44N55Y44MXXMXXv{[g'`r_)-'`j{[GXXMXXv{[d{[x'`d{[EXXr==k55", -"a>>k44243f33i**i**R==z33 -=J%%X$#k$$j**e33H==J%%2%%J%%!%%j**P== -=H==t**`$$H==544844 -=!%%!%%t**]==q33c33R33}44|66{44z33L==F==X-=b33z33F==E%%E%%/%%.%$p$$)$$5%%5%%+$#=@@=@@ $#E%%F==L==R==z33L33^%%b==b==|$$,@@MOO5++h@@T$$T$$]$$f%%b==.-=4--4--r**1%%Q$$/$$/$$1%%B===43676u00Fii=piruywww598598Krr%pi%lkZCClIPV|}|OO,++O..ZOOb&&M==2--2-- =*y** @+ @+x@@l**);;!::~::!::W;;J--D--a::M77c66s66k66%87-87~66D44-&&-&&w&&w&&%&%q$$Q%% ;-s;;=;-n**{%%_--_--m--F%%[++lXXTXX*@@zXXYXXc%%[--t66F77Z99H77|--Y%%O$#Y%%2;;6;;/%%CXXE/^T/^='`d{[v{[g{[k{[tXXF'`w)(ZKJDKJyXXN55-87 76j{[j{[C'`a'`8_)r_)C'`rXXCXXMXXv{[j{[CXX|%%c55O87", -"u>>6446444--_%%f%%b==l33e33(%%`$$}$$t**P==j**!%%`$$k$$`$$J%%j**H==j**(%%`$$P==h44h44e33J%%2%%J%%A**A** -=k33h44|66.54b33f33X-=f33z33X-=E%%[$$[$$)$$ $#j@@+$#.%$[$$j@@NOOZOOj@@[$$E%%/%%`%%L==f33f%%u**u**]$$+@+XOo5++V@@i$$o$#i$$|$$_%%b==b==u**v%%1%%Q$$Q$$/$$1%%v==J33m66298FuuDii=uy598<98598~rr*fdtvc1IP8RTPRT@~!N~!]]]sOOL&&0--y::7::]**S$$%##l**);;C77_00.q0n99f77V;;G##G@@Z##%:;c666::;;;N55a66M55(22w&&w&&=&&+%$p==z==Z55X87|77<::M**`%%m--m--d**+#@PXXTXXv%%n**}--=;-a;;2::2::i;;}--M**M%%@$#@$#w==V55p66 ;-8$$R/^0/^T/^e'`x'`a'`d'`''']''F'`w)(s_)q$$W66%87Z55g'`x'`g'`a'`-'`-'`x'`j{[EXXCXXMXXMXX$$$r==i66.87", -"y>>v33K33.-=f%%|$$u**4--z33F==E%%E%%i**L==F==`%%p$$+$#p$$5%%i**L==F==`%%.%$f33.54.54X-=5%%)$$[$$g**l**j** -=844|66O54243z33f33f33f33F==[$$+$#p$$ $#>@@=@@]##)$$p$$>@@vOOvOO>@@p$$[$$[$$.%$`%%L==4%%_%%_%%T$$+@+XOo+@+|##T$$i$$i$$]$$^%%_%%^%%4%%k%%/$$Y$$Y$$Q$$/$$r**e--l55y88-uyruyMeeO98O98598#iuWff^LL2QWRRRmTY7JHnTYO..>++9--U77`00P77!;;=**l**(;;C77:q0DwwVww)00f77L##K@@&XX*XXa**5::=:;}%%U44U44(226&&=&&w&&r&&5&&W22b55%98nqqQ99s;;[%%J%%]++T@@IXXoXXn[]F[]TXXH%%M**=;-<::t66<::=;-M**[%%XoXXoXR%%I44 87|667;;8$$XXXB'`V'`G[]v{[j{[v{[XoX'XX'XXV{[yXXx==@87~66x==v{[rXXMXXMXXv{[v{[rXXCXXEXXGXXCXXCXX$$$0==g55M66", -"kbvI==5--T==g%%L$$g%%5--f33i**.%$.%$`%%F==/%%.%$ $#]##]##+$#[$$E%%/%%/%% $#b33.54w44f33)$$]##5%%`%%F==i**`%%L33X76 65f33f33243744R==.%$+$# $#j@@ZOO=@@6++NOOZOO=@@6++/ooFooZOO]##+$# $#+$#5%%i**E%%.%$+$#>@@6++6++j@@ $#|##V@@h@@V@@o$#T$$T$$T$$]$$]$$Y$$t$$t$$#%$_&&^==M55q77y00Ceer00[88q88q88Vrrejh[IIQ~!U~!ELL1NMFPLd~!E33b00%q0LwwJww~77[;;s77b77(00Zww}wwZww6874::d@@B(/Q^~s/^l+++;-3;;w==p&&F44J442&&<$$<$$=&&r&&/44@98_qqCqqQ660==&@@LXX X.:XX:XXn[]7(/v'`jXXF%%>::=;-}%%W%%W%%1&&1&&;&&R%%Q%%l==j55N66m664;;R%%EXXEXX=@@c%%RXXhXXTXXH%%B**J%%;$$|%%I44V55Y44h==R%%i&&t==t==Q%%%$$@$#>ooBXXtXXZXXM%%t== ;-1&&8$$", -"jbvn==@-=T==g%%L$$ %$I==X-=`%%[$$[$$/%%i**E%%[$$j@@j@@<@@]##p$$[$$.%$.%$+$#L33O54w44R==+$#>@@)$$E%%`%%`%%/%%f33.54k44L==f33243L33i**p$$j@@<@@=@@vOONOONOO/ooNOO6++ZOOJooFooNOO>@@<@@<@@j@@)$$/%%5%%[$$]##=@@ZOO6++j@@+$#|##h@@:@@:@@V@@o$#i$$o$#T$$T$$t$$F@@F@@E$$_&&M==m44$76&09r00 98088777088pwwejh4IPI~!0QWINN=kj|SSD]'{33F00cwwEeeWeeUwwMwwFqqDqq@@=@@>@@j@@ $#+$#+$#p$$L33O54744F==j@@NOO]##.%$E%%E%%5%%L==L33z33/%%z33L33X-=.%$<@@6++ZOOvOOCooJooJooFoo/ooZOOvOOFooCoo/ooZOONOOvOO6++ $#.%$.%$p$$<@@6++ZOO=@@]##p$$o$#,@@COOCOO:@@V@@|##|##T$$i$$F@@S@@S@@f##h%%<==:43V55q77y88977T66T66777Urr=cx}III~!3QWrNMvhhKMMz~!$32287*q0.ew@@j@@]##]##p$$b33{44L33`%%=@@/ooj@@[$$5%%5%%.%$/%%L==F==.%$z33b33L==+$#6++vOO/ooFooEXXCooCoo2ooFooNOOvOOCooFooJoo/ooJooCoovOOj@@.%$.%$+$#>@@ZOO6++j@@p$$[$$T$$,@@MOOXOo5++h@@V@@V@@o$#o$#S@@B@@B@@-##&%%]&&7;;i44{66%76m66c66U66777auu~cctUIE~!|WWbllcss|jj7JHgOO;--H55-q0Iww|wwYeeHwwBwwFqqFqq@@ZOO=@@]##[$$5%%]$$,@@XOoHooCOOh@@V@@h@@|##|##B@@f@@f@@&###%$_&&,--:43F44N55M44k55U66088auu7vcrUI4QWpIP3lk6sa}hh NMu!QiOOH&&w::h77d77n77E55!55s77687{00Dqq;q0#q0E77d::h--J@@x++E@@7##V--m66m66_44p&&&&&z==M55U66o65M55a66N66V66Z66g66L::m::A;;!--W--N--p--8##;##;##~@@]++(@@G%%M%%}XX('`K'`,$$F44N55L44a==p&&x==|%%Y%%[%%i;;k66K::&;-n**c%%&@@O$#0==m66F99-87~66t==w==w==i&&R%%%$$ZXXA{[k{[BXX@$#R%%Q%%Q%%M%%8$$", -"tbvx@@I$$9%%I$$&@@J++P++ $#j@@>@@>@@<@@j@@j@@j@@<@@=@@NOONOOZOO>@@j@@]##p$$f33b33i**+$#/ooFoo<@@p$$)$$)$$+$# $#+$#)$$.%$L==F==.%$>@@/ooJooCooTXX X.TXXEXXTXX2ooJooJooEXXCooFooFooEXXTXXJoo<@@.%$E%%+$#6++vOO6++ $#[$$5%%T$$:@@HooDooCOOh@@V@@,@@V@@h@@*@@%@@%@@M@@E$$u%%^==6--:439::o:;c44n66088yuyQccSIP[II^LLBjjQaa{hh2kj8JH}!!R{[4**E**A$$A$$^++M$$}**h::K77Y99(00Y99<>>=>:R;;l;;i--:##{@@_@@q;;l55V55_44Y44n55M55^44(22U44Z55Q66H77G77A66[::b::/--E--E--E--f--1##D@@D@@!@@[@@'%%[--t==&&&>$$%&%(22U66$87$87+87=87%98O87|77H77S99F77p;;`%%v%%&@@RXXn%%q;;F99Bqq109-87l==Q%%>ootXXBXXXoX%$$M%%R%%w==l==w==M%%@$#%$$M%%", -"rbvR++r##U$$K$$I++D++G++<@@>@@=@@6++=@@>@@<@@<@@>@@ZOO/oo/ooNOO=@@<@@]##.%$z33z33E%%<@@2ooEXX>@@+$# $#]##<@@6++=@@ $#.%$E%%5%%+$#ZOOFooFoo2oo X.Q.. X.KXX X.TXXCoo2oo X.TXXEXX2ooTXXKXXFoo<@@[$$5%%]##NOOJooNOOj@@p$$)$$|##COO1oomooCOOh@@h@@+@+h@@,@@%@@O@+%@@0@@f##&%%_&&^==6--<--<--};;z55777yuyTcc'LL]LLwCV+jh8safjhNMM@@=@@6++ZOO6++=@@>@@>@@6++NOOJooFoovOO6++<@@j@@/%%L33z33.%$6++KXXKXX6++]##j@@<@@6++vOONOOj@@[$$)$$p$$<@@/ooCooCooTXXQ..T../../..Q.. X.EXXTXXQ.. X.KXXTXXKXXKXXCoo>@@)$$.%$j@@/ooCoo/oo>@@ $#+$#,@@^ooYXXRXXMOO,@@,@@5++,@@,@@%@@O@+O@+0@@-##&%%u%%]&&^==i==i==;;;n44576suuQcc'LL>ZCqvc%jh7fdtkjNMMJDD##I@@Z@@U@@r--,##N@@[((`((3XXC@@d**;;;p66G99xqqVqq:09.09o09VqqewwVqq:091wqKee-re*re>wq1::{%%{%%b%%c%%n%%2;;|66~99-87Y66j55w==ZXXk{[ZXXw==p66X87~99F99|66p667;;i&&%$$BXX", -"qbv`ooF++E++v@@L++]oo]oovOO6++>@@6++vOO/ooZOO>@@NOO/ooFooCooFooZOO $#[$$L==z33f33p$$EXXn..TXXZOO>@@=@@NOOFooCoovOO]##5%%)$$]##6++NOOvOOFoo/..:..:..n..Q..T..Q..KXXKXXQ..T../..KXX X.Q..TXX6++p$$5%%<@@2ooKXXFoo=@@j@@]##ZOOFooTXXEXXvOO>@@>@@6+++@++@+5++COOCOO:@@o$#]$$^%%^%%1%%r**e--7;;i44509ypivvvGIP`LL5jh>fdojh.kj1kj#NM:FD!JJN!Qq]'K++3**U**U**y**y**i**y==q==u==(**C;;J;;B;;T;;Y::^**@@6++/ooJooNOO>@@NOO/oo2ooEXXCooZOO]##[$$b33L33X-= $#KXX1..KXXNOO>@@ZOOJooEXXTXX/oo]##E%%p$$j@@6++vOO/oo2ooQ..:..` 3..n..3..n../../..n..3..Q.. X.Q..T..KXXNOO $#[$$=@@2ooKXXCooNOO=@@>@@vOO2oo X.TXX/oo=@@=@@ZOO+@++@+5++COOCOO:@@|##]$$4%%f%%/$$v%%|==)==:43509rpivvveUI`LL>jh}yy&pi[hhDhhBMMeBNmDSfJHSLK^[]t@@C&&v@@w@@V$$w**T==9;;w;;U--&:;R;;B;;B;;J;;(**G++TXXv%%J%%|%%7;;W66%87+87]66109Bqq'99j66u;;n---##S@@A@@r--z--v::g--L@@Coo.)(A@@F##t;;i66V66.87D99~66Y66n55`44Y66 76Z55h==B**i;;F77+q0oq0K99B99|00y66t;;B**r==_44W66@87+87-87Y66L44X;-Z55-87X09+87n55F44X;-N55@87Y66N%%,'`", -"LvvxOOxOOT++z@@H++zOOzOObOOFOO-@@nOOAooAoobOO-@@FOO:OOPXXLXXZooGOO&$$N%%444343G==;@@E..>..sXX>OOFOObOO`XXdXXdXXAoo[##W%%&$$I##nOO:OOZooPXXR..>..~ >..,..o..>..9..R..,..8..R..E..R..9..dXX>OOI##&$$GOO`XXLXX`XX>OObOObOOCooTXX/..KXXJooZOO6++ZOO5+++@+5++COOCOO:@@|##T$$T$$4%%/$$s%%v==]&&X:;y00rpizvcFIPhvc+piZrrGrr}yyBss&kjCMM0BNmDS^KKr]'9@@8@@:OO#}{!++7**8;;h55x55%:;^::U::Q--a--F--f**:@@v%%=@@CXXCXX1&&W66:09Vqq(qqswwpwwgqqG77W::'--d**-##u--N::e>>w>>M::d--,##<##G--E::j99L99O87h66<::t== ;-7;;j55N66 87p66 ;-RXX=@@M**y66J99oq06wqAee:wq[99H77H66X87O09$09:09o09.09=87G99nqqiww%09Y66;&&Ooo}XXa==W66Z55OooJKJ", -"JvvxOOxOOY++T++xOOkOOkOObOOFOOFOObOOZoo`XX:OOGOOnOOZoosXXsXXAooI##_$$Q%%j33333N%%nOOE..>..R.._XXZoo`XXPXXdXXdXXAooI##_$$[##;@@bOOZooPXXsXX8..>..~ >..>..X..o..8..9..,..8..R..E..R..R..LXX>OO-@@[##GOOZoo_XX`XXAooAooZooEXX X./..KXXFooZOO6++ZOO5++5++5++COO5++:@@V@@i$$o$#|$$1%%s%%v%%u%%9;;y00Bzz*cx,vc!ffKrrI88!88CrrlyyGaajjjAMM2DS+RT&[]u$$,OO8@@r$$F$$:**}**<;;:::6::Q::@:;`@@$XX`++'++dXXRXXCXXj{[A{[;&&R66,09/qqo09nqqnqqQ99G66K::Z--)@@Y@@v--3>>5q07q0d99)--9##6##D::k99P99j99j66t;;N**|%%0==i==s;;H66.87g55W%%G[]D[]YXX}--j66j99J99]99@q0[99!99Q99G99.09%98*98*98vqqyww~ww(ee}eesww@873$$m{[K'`3$$L44X;-yXX#)(", -"HvvxOOzOOU++U++zOOxoo_oo>OOnOOnOO:OO_XXPXXAoonOOnOO_XXR..sXX>OO&$$Q%%G==B%%_$$U##:OOsXX8..9..E..sXXLXXPXXPXX_XXAooGOOU##U##GOO:OOPXXE..9..,..o..o..,..,..X..X..8..9..,..9..R..E..E..E..PXX>OOGOOU##GOO:OO`XX`XX`XX`XX_XXTXX X. X.TXXJooNOOZOOZOOCOOCOO5++5++5++:@@V@@o$#o$#4%%1%%s%%v%%u%%6--309Bzz=piyuy0wq_88R77P88Q88J88crrQaa|jj/NN RT1[]z$$J&&V==q55.:;L==t**A**#;-0;;1;;@#@6(//^^J/^6'`e_)d{[A{[ZXX3$$z==T66@98o98D44M55~66N66l552;;c%%G[]S[])@@C668wqFwwJ99{--(@@/%%t66S99S77$:;*;-P--P--;;;B**[%%}--h66D66B**D[]='`q'`kXXM**<::a;;}--M**;;;g55b66|66~66U66$65o65-09aeeOre@re:re;re/ww-87%$$'''>'`A{[8$$@$#g{[g_)", -"NvvcOO;OOcOOcOOcoo)XXzoo65{557330$$D44R66~66Y66I44Q%%BXXn'`zXX;;;'99=wqO87|--8$$z==a66V66t;;)%%b--u;;J::-;-`%%(@@n**Z66J991::$@@A[]qXXG%%<::M66g55|%%8$$|%%s;; 87O09o09=87{66'66}qq#re5re>re{eeQeecqqZ55@$#'''g_)I'`A{[g{[h'`h'`", -"MvvlOO-OO;OO;OO)XXJXX(XX;;~;;h**Q@@BXXGXXkXXA[]F[]kXXx'`;/^F{[f==]66*98R88+54*21$%$0$$^44%98.09+87C55U44x==;$$tXXA{[N%%^44U66$65m55U88&651&&XXX6XXB--H::D::e;;m**+#@F%%e;;g66J::V--D%%{%%i;;V66H66l55F44X;-r==V55Q99cqq$09*98&98198509'ee%re!qq(44e&&3$$g{[CXX-'`-'`CXXn%%CXXa'`r_)", -"bvv$OO]XX$OO#OOQXXgXXgXX]XX'XX'XX]XXWXXuXXgXX#OO]XXQXX5..0..,OOHOO,OOAOO$OO]XXWXXuXXq..q..q..yXXuXXgXXWXXgXX'XX@@j@@|##i$$]$$|$$4%%^%%u**Y==w;;0;;2::d55*76u88609veemrr798)88iqqfrr5saTDDi~!ZOO({[({[*OOt$${;;4::Z$$d'`XoXM%%GXXd{[N'`='`q/^#oom55{qqdww@98|44O21=%%2&&U66:09G99N55`44l55p66 ;-8$$Ooop&&Z55U66b55U44'66U44q$$A{[j{[=@@-;-j66i66q;;0==Y%%;$$$$$EXXGXXk{[k{[%$$I44m66l554;; ;-L44N55W66a66L44p&&&&&;&&X543090ew=09z==}XX'XXXoXlXXLXX*@@b%%b%%O$#rXXd{[", -"{zz#OO'XX]XX]XXgXXuXXfXX'XXQXXQXX'XXgXXyXXfXX]XX]XXQXX5..5..$OOAOO#OO,OO]XXQXXgXXyXXq..q..q..yXXyXXfXXfXXfXX'XX@@j@@|##o$#T$$]$$|$$f%%u**K==&;-&;-0;;p44A55687u88:98N88G77D77&1<&21ftt[][]]*[]L{[W##T55o87U==yXX@$#M%%>ooj{[x'`e'`e'`t&&{66fww)qq[66X32@21O21f==R66o09@87`44L44l55m66_44i&&N%%x==Z55%65^44D44*65U44%&%F{[I'`qXX[%%p;;b66k552;;/%%EXXrXXj{[d{['''g{[>oot==I44 ;-i&&i&&p&&X;-L44X;-&&&Ooo'XX'XX=%%>65709O98z==,ooXoX@$#D%%D%%H%%[%%J%%;$$EXXMXX", -"[zz]XXQXX'XXQXXfXXq..yXXWXXgXXWXXWXXfXXq..uXX'XX]XX'XX0..5..]XX$OOWXX'XXWXXgXXuXXq..0..0..q..q..q..yXXyXXyXXQXX,OO,OO'XXQXXuXX4..} V V V V | | | | O..O..O..O..4..4..5..5..q..fXXQXX'XX]XXgXX0..O..+..5..q..yXXaXXxXXvXXWXXQXXPXXPXXPXXJoo/ooNOOZOOZOO6++>@@<@@V@@o$#i$$T$$]$$4%%_%%b==`==`==`==0;;p44A55K66*76h66q,,z,,M<<<1<,211saflks!Qb]',[]G]'<}{/77Pqqo873&&;&&R%%@$#d{[-'`g'`qXXU44O98vqqO98O54)22733+54C55=87$09 76Y44X;-I44l55V554;;a==Y44Y66U66^44(22$65m55f=='XXg_)8_)v{[G%%p66p66j55w==ZXXh'`g_)g_)m{[F{[,$$p&&h==3&&q$$q$$3$$&&&;&&3$$F{[F'`k_),'`t|}Q22#87!66X;-M%%M%%Y%%m**Z--{--{--B**[%%n%%O$#", -"]zz]XXQXX'XXQXXuXXq..q..uXXuXXfXXgXXuXX0..q..WXX]XX'XX0..5..QXX'XXuXXfXXuXXyXXq..0..0..0..0..0..5..5..5..0..gXX,OO$OOQXXfXX0..| V n n n n } } | | | O..| | +..+..4..5..q..uXXgXXWXX'XXfXX4..| O..5..yXXuXXvXXvXX!XXQXX'XX_XX_XX_XXFooJoovOONOONOOZOO=@@<@@h@@|##o$#i$$T$$]$$f%%_%%E==m==m==(==8;;e44d44D44b44c::x,,F77711>21ittasavTYZ`_|||V`_^{[>87zeeKqqa66F44;&&>oo'''8_)r_)d{[e&&J44(44/22t&&/44@98Wqq:09ewwywwO09Z55x==t==l==I44l==a==Y44~66+87%65U44/66/66(441$$k_)#)(9_)g{[x==L44Y44a=='XX,'`w)(u_)F{[,oo3&&X;-x==&&&,oo}XX}XX,oo,ooF{[k_)&)(&)(>)(W'`w&&U66Y66 ;-W%%Y%%J%%g**A--$:;K::1::;;;M**J%%", -"'zz#OO'XX]XX'XXuXXq..q..q..q..uXXgXXuXX5..q..gXX'XX]XXq..5..WXXgXX5..q..0..0..5..5..4..4..5..5..O..O..| +..fXX$OO#OOgXX0..+..C n b n n b C C } | | | } } O..O..+..4..0..q..uXXuXXWXXyXX4..O..+..0..uXXfXX!XX^XX+oo]XX]XX`XX`XX`XXCooJoovOOvOONOONOO6++>@@h@@V@@|##o$#o$#T$$|$$f%%|&&'&&!&&|&&(==2;;e;;e;;@:;j::z66V88/88hqqtttQyy3FD6~!}|}h~!!]'q77xeeTww%98M55;&&}XXI'`9_)7_)8_)D'`('`B{[! 6&&'66hww)ee`wwQee~eelww-87L44Q%%M%%Q%%8$$N%%X;-@87:09=87C55#87#87*65t&&n{[8)(8)(j_)W >$$%&%O%${XXJ'`a_)8)(m{[3$$X;-L44h==3$$yXX]''m{[F{[V{[,'`&)(DKJ /^>)(D{[2&&n55I44W%%O$#RXXTXXo#@P--C66v99A99Z66a;;}--", -"Jzz$OO'XX]XXQXXuXX0..q..0..0..uXXgXXuXX5..0..gXX'XX]XXuXX0..gXXuXX4..0..4..4..4..4..+..+..+..O..} C V | uXX#OO]XXuXX4..| V b b n n b V V } | | | } C } | O..+..5..0..q..q..uXX0..+..O..4..q..uXXfXX^XX^XX+oo]XX]XX`XX_XX_XXCooFoo/oovOOvOONOO6++=@@,@@h@@V@@|##|##o$#T$$|$$~&&j%%j%%~&&N==o-=7--7--];;+:;j55G77H88911>21grr+NM~TTR`_5~!7~!*32owqowq%98C55%&%F{[m{[k{[>'`|^^SHGZKJ:)(B{[R44Qqq!ee)eegwwQww`ww!wwO09Y44M%%@$#XoXtXX'XXa==G99awwbqqR66[66^66O65.32@%$[XX_'`W'`y`_W'`E :oo|$$#oo/'`p_)D'`>$$f==f==0$$D{[D'`y_),'`,'`k_)>)(ZKJRHH /^w)(,oo3&&t==n%%j{[N'`n'`B'`T@@L--h993q03q0P99Z661::", -"Hzz]XXQXXQXXWXXq..5..5..5..0..uXXgXXuXX0..q..gXXQXX#OOfXXq..WXXuXX+..5..+..+..+..+..O..O..| } V n b C yXX#OO'XXyXXO..} n b n V n n n V } | | } C V C } | +..4..5..5..0..5..+..O..O..4..0..q..yXXvXX!XX!XXQXXQXXPXXLXXLXX2ooFooJoo/oovOOvOOZOO=@@:@@,@@h@@V@@V@@|##i$$]$$~&&6%%6%%j%%p**}==o-=7--{;;];;h::x,,J,,j<<=1<%21lhh(NNJRT=RT[RR.+Or66898T66U441$$('`'XX;&&BXXFKJ,GFGHGu_)%&%.09!eedeevqq%65U66+87G99W66h==%$$XoXBXXk{[V{[p&&%09QeeywwR66W44)22Q22.32/44W44@21toop`_p`_N{[o%$_22/22:ooH'`j_){XX-&&0$$n{[j_):)(@)(w)(u_)w)( /^RHHZKJ>)(F'`q$$Q%%8$$d{[q/^#/^H/^;(/]++S--f993q03q0P99Z66y66", -"Gzz'XXWXXWXXgXX0..+..4..5..0..uXXWXXfXX0..q..gXXQXX#OOfXXq..WXXuXX+..0..+..+..+..+..O..| } C n b a V q..]XX'XXq..O..} n n n V V n b n C | | } C V C } | +..4..4..5..5..O..| } | 4..0..0..0..xXXxXXvXXgXXgXXdXXdXXsXX2ooCooJoo/oo/oovOOZOO6++:@@,@@h@@h@@h@@V@@o$#T$$j%%6%%6%%j%%p**}==o-=7--,43{;;0::q,,l,,i,,4,,v<$$-&&F44X;-N%%XoXZXXXoXk{[m{[p&&cqq(eeawwU668&& %$ %$)22I88-98=65&21` P ` E22(66[66%21P j_){XXO%$`XXj_)%)(@)(1ER>)(w)(>)( /^DKJ /^k_)V{[R%%R%%GXX&'`T^~T^~8/^,(/7XXb--S66`99_99D77f661::", -"GzzQXXfXXgXXuXX5..O..O..+..+..yXXQXXgXX5..4..q..]XXQXXWXXgXXgXXyXX+..C O..} C C } } C n C n p n q..]XXgXX+..} C V V C C V n V V C } } C V n n V | +..4..4..+..O.. . ......$..=..y..a..a..h..F..hXXxXXxXXfXXfXXfXX_XXZoo:OO>OObOObOOnOOGOO=@@=@@>@@<@@j@@]##]## $#H%%K%%!%%t**J=='==}==}==;--;;;);;$:;=:;d>>C>>d,,9ytqfd)NNCTY9~!L|}o+Or%%U11o32]22+%$w&&U443$$ /^DKJm{[F44%09'ww!ww 76&&&k_)F{[,oo&&&N%%]'']''3&&q$$}XXyXXp&&X09lwwG99p&&}$$woowoo8&&&65198@98&656&&w&&_22T66=09;09*65t&&<$$/22J44O%$K'`>)(#)(|^^,/^-)(,/^;/^,/^9_)g{[XoXc%%(@@JXXv'`~^~I^~'^^q(/9XXD##F::P::e;;A--t;;t66", -"FzzgXXyXXuXXyXX+..| | +..4..yXXWXXfXX5..4..q..#OOQXXgXXfXXuXXq..+..} O..} C C } } C V } V b C yXX]XXWXX4..C V n V C } C V n V C } } C V n n C | +..4..+..+..O.. . . ...@..$..=..u..u..s..s..h..iXXaXXuXXyXXyXX_XXZoo:OO>OO>OObOOnOOFOO=@@=@@>@@<@@j@@j@@]## $#{$$M%%2%%!%%y**a**N==N==,==;--&:;w::c>>m>>C>>s,,Sqqcyy8kjEPP+^~G|}J|}@'`I}{H../$$;oo@%$f==O%$F'`'XXL44109swwCqq 76;&&]''&)(]''OooN%%q$$F'`s_)}XX3$$F{[T'`,ooZ55O09a66q$$woo+%$8&&r&&.32O65^66>65~44~44(44*65#87{66(44t&&:oo2&&f==0$$V{[F'`g_)7_)d'`d'`g_)q)(;/^,/^9_)h'`eXXLXXJXXn[]G/^(^^=(/]((z++C@@2##]%%'%%m**-;-<::", -"(lluXX0..q..0..O..} | +..4..q..gXXfXX0..5..0..]XXQXXgXXuXXq..5..O..} | C V C C } C n } C V | uXX]XXgXX+..n n n V C } C V b n V C } C V V V C | O..+..+..+..O..J . . @..$..=..r..r..y..y..p..f..g..q..q..q..PXX`XXAoo>OO>OO>OOnOOFOO6++6++=@@>@@<@@j@@]##]##j$$l$$`$$2%%~%%7**e**e**`&&/==.:;b>>A>>V>>V>>C>>,1OObOOnOOZOOZOO6++=@@<@@j@@]##]##%$$j$$`$$}$$7%%~%%~&&~&&]&&^==|;;c44h55A>>f66g,,K88xqqXuyQCC ^~N}{(UU*mn mn,VB5ERg`_)'`I O%$U44$87o09$09R662&&('`%)(IHH%)(W -&&z==p==W J'`oooe&&-oo('`n{[ooo>$$('`%)(<$$H44T66~44|$$N{[H'`H'`W `XX-oo>$$`XXJ'`a_)a_)B{[{XXOooF{[d'`>'`'''rXXn%%O$#j{[5_)vKJjHGvKJ}^^='`wXX%@@[++[..r(/]((9XXD##;##~@@W@@^@@^@@*@@&@@", -"^llyXX5..0..0..+..+..4..+..5..0..q..q..yXX0..4..0..uXXQXX]XXWXX0..} a a p p p a b a p b n C O..yXXgXX0..V a a b V } } C n p a n V C C C C } } | O..O..O..O..O..&..*..*..=..y..y..a..a..p..s..s..g..iXXyXXyXXyXXLXX_XXZooAoo:OO:OO>OObOONOONOOZOO=@@>@@<@@j@@]##%$$j$$`$$2%%~%%7**~&&e**v==D==7;;|;;8::b>>g66Z66:wq%q0Gtt:lkkRTgWE[DDShhLss mnSGFrER#`_)'`w&&{66$87^44%&%ooo`XXY'`%)(FHG8)(oooe&&(22(221$$ooo2&&J442&&-oo`XX`XX('`:)(IHHOObOO/oovOONOO6++=@@<@@j@@]##j$$l$$`$$2%%~%%7**e**e**b==Y==3--7;;|;;8::h55B66Y88S77F88SddYZZkRTjPLaNMIsswmnHGGxWEx`_@ooR44*98T66@%$W'`W'`[XXE 1)(EGG$)([XX6&&d==W22o%$<$$d==R44t&&|$$=ooI y`_$)(-ER@)(Y'`0$$e&&2&&>$$J'`HKJ /^>)(T'`}XXm{[&)(ZKJ /^F'`'XX8$$XoX5_)MHG4/^G[]zXXeXXe'`9/^]^^]^^q/^q'`&@@v%%)%%F%%T@@7XX@XX@XXC@@N--H::#:;)@@0'`7/^@/^", -"Hll0..+..+..4..O..+..5..4..5..5..+..0..uXXq..O..| q..]XX,OO#OOuXX+..C a p t p b b b a p V | 4..yXXfXX4..b a a n C } C b p ; t a n C } } } O..| | | | | O..O..*..6..6..y..y..y..u..u..s..h..h..iXXaXXuXXuXXuXXdXXPXX`XXZooZooAoo:OO>OO/oo/ooNOOZOO=@@<@@j@@]##%$$j$$`$$2%%7%%7**~&&e**`%%b==4--e--X:;o:;q::c44Z66Y>>Z77iyygCVbRTAQWaRTWBB5YU2`_Z tooQ22>65O98_22:ooN{[=oo6&&=oo1)(:GFPHHN{[o%$6&&w&&<$$#oo=&&6&&<$$! I H'`0)(7)(0`_1$$2&&D44^44b55J44-&&`XX]''F'`T'`m{[,'`ZKJSHGJKJT'`>oot==t==MXXw/^9/^e'`V'`V'`N'`&'`9/^$/^q/^&'`zXXlXX:XX:XX6XX#XX'((y(/@XX;##`--L--[++7(/0/^q/^", -"Gll4..| O..O..| O..5..4..0..5..+..5..uXXq..O..O..yXX]XX$OO]XXuXX5..O..b a p a n V n b a C +..0..uXXfXX4..b a b n C } C a t ; r a n C } } } O..O..| | | | O..O..*..*..*..=..=..=..r..r..p..s..h..iXXiXXuXXyXXyXXsXXLXX`XXZooZooAoo:OO>OOJoo/oovOOZOO=@@<@@j@@]##.$#%$$k$$}$$7%%~%%j%%~&&5%%i**4--=43:43o:;};;.:;k::8>>A66iyykCVTQWo|}4 ZWEd|}[$$#21733q66R88^66@%$:ooo%$H44~44|$$7)(UGG!GGW'`|$$=&&=&&=ooE :oo=ooI H'`p`_0)(1)(0`_I p==D44^44b55U66]66R66M55p&&,ooF{[m{[s_)GHGGHG&)(k{[%$$7;;c55r==D[]E/^&'`*'`n'`A[]n'`>(/0/^7/^0/^N'`*'`Y/^,(/t(/u(/q(/#(/]((V@@9##6##JXXm'`w'`N'`", -"Fll4..} C | +..O..| | O..| | 4..yXX0..O..V 5..'XX,OO#OOgXX0..4..} V n n C } } C V | 5..yXXuXX0..} b p p a n C C n a r t a n V C } } } } } | | | | | O..&..%..e..t..i..a..p..p..s..s..h..h..F..F..F..xXXvXX!XX+oo#oo&OO5OO6OO,OO,OO>Rrr{VVeQWH<(/0/^&KJvHG+/^0'`m'`t(/e(/1(/7XX]%%)%%TXXqXXYXXY%%", -"Dll4..} C | +..O..| | O..| | 4..yXX0..| C 0..'XX,OO#OOgXX0..4..C V n n V C C C C | 5..yXXuXX0..| b p p a n C C b p r t a n V C } } } } } } | | | | O..&..%..e..e..t..u..p..p..p..s..s..h..h..F..F..xXXxXX!XX^XX#oo&OO5OO6OO,OO,OO(/F[]lXXlXXlXXlXXXXXw'`*KJfHGiHGT^~;(/0'`0'`e(/P(/W@@S--m**$@@eXXGXXY%%", -"S00+..} } | +..O..} } | | } +..q..0..| C 0..'XX$OO]XXfXX0..4..V n b b V C C V C | 4..yXXuXXq..| n p p a n C V b p t p a n V C } } } } } } | | | | O.....#..w..e..t..u..y..p..p..p..s..s..h..h..h..iXXaXXvXX!XX+oo%OO&OO5OO$OO,OO,OO>OOnOOGOO>@@<@@^##(##X$#k$$'$$|$$1%%1%%4%%_%%B==3--8--9;;y44m44v44<::*:;k,,jwwfkjAYUa 722k33.65{55|44}22*21T11a`__GGg`_;ooQ 9)(xVBxVBUHH$ooW44-65=65#21_ / Y}{c..F I}{s`_QEEj)(^ @%$p==z==(22X;-x==Q%%XoXk{[7_);/^9_)h'`9_),/^,/^=/^4/^x'`CXXd{[>/^mKJ=/^T/^e'`D[]D[]G[]qXXqXXD[]mHGpHGpHGT^~U/^>(/,(/0'`OXX6##$:;t;;b%%rXXMXX8$$", -"A00+..} } O..O..| C C | } } +..0..5..} C 0..QXX#OO'XXuXX5..+..n b a a n V V n V } 4..q..yXX0..| V p p a n V V a t t p a n V C C C C C } } } } | | | ...#..w..w..e..r..y..y..y..p..p..s..s..h..h..g..iXXaXXvXX^XX#oo&OO5OO$OO$OO,OO>OObOOFOO6++=@@l++u@@{##u$$s$$Q$$Q$$Q$$/$$k%%v==|==8--=43y44m44y44w;;,;;R--`::3q0JmmNRTW..W11-21;%%too;%%-21>21s`_IVVtERo'`#`_=ERvVB]GGQEEH22498<98 54x..h}{x..soo:21b11Y}{2`_xWEM)(_ |$$w&&_22D44(223&&yXXu_),/^bKJFKJI'`XoXBXXg_);/^THHTHH|^^7_),/^THHkHGbKJ,/^q)(9_)7_)7_)g_)h'`g{[4/^=/^=/^q/^T/^0/^R/^9'`:XXg**f66t66W%%A{[k{[}XX", -"Z00O..} } O..O..| V C } C C O..0..4..C C 5..WXX'XXWXXq..4..O..b a p p b n n b n C O..5..q..5..| V p p a n V n p r p p b n V C C C C C C } } } } } } . E W w..e..%..=..=..y..y..p..p..s..s..s..f..f..iXXxXX^XX#oo%OO&OO#OO#OO$OO:OO>OObOOZOO6++t++j++g@@}##r$$t$$f##f###%$h%%v==|==8--J33<43C44{66C55r::R;;E--a<54s88Y}{WVV=YUtER ERXTY^GG4ERc`_c88jee%ewU22Z)(AWEdool33j88q33^}{3WE,WE2`_x..5&&H44T66#87+87^44Ooow)(ZKJDKJs_)3$$F44a==F{[&)(GHGSHGRHH /^ /^ZKJRHHZKJ /^#)(#)( /^DKJJKJw)(F'`I'`h'`h'`g'`8_)@/^9/^&'`lXXZ--D66b66Q%%k{[m{[`XX", -"C00O..} } O..O..} V V C C V | 5..4..C V 4..fXXWXXfXX5..O..} a p t t a b b a b n } +..5..4..} n p p a b n b p ; p a b n V V V V C C C C } } } } } J P I W w..%..$..=..=..=..y..y..p..p..s..6..7..g..aXX!XX+oo%OO&OO#OO#OO#OOAoo:OO>OONOONOO<++r++t@@k@@A@@&##-##-##E$$u%%]&&D==3--e---43044}66[66Z55y>>H::5<<'dd%IPo1%%T44{66;09,09R661$$y_)JKJw)(yXXF44~66N55,$$s_)IHHIHHHKJ:)(a_)j_)y_):)(:)(:)(y_)y_)@)(IHHSKJ:)(T'`]''V{[g{[9_)=/^w/^g'`b%%a;;.87p66R%%V{[W 0$$", -"h00| } } O..O..} n V C V V | 5..+..V n O..yXXfXXq..+..} C a t r t p a a p a b V | +..O..C b a p a b n b t ; p a b n V V V V V C C C C } } } C J P I W W #..$..$..$..=..=..y..y..p..p..*..6..f..iXXvXX^XX#oo%OO]XX]XX#OOZooAoo:OOvOOvOO-++<++$@@d@@r@@Z@@&##X#@*##Z##h%%]&&B==Y==4--v33G44b55v55x>>0>>W<>#q0.hgnYUu..v11J..3`_S p88d00L889}{pmnsMmgUI5YU;TYWVVJUI2WEk33qew@ewQ11LYUQUUa..r992ewg88w}{ySAkUI|EE8}{' +%$T44^66#87*650$$a_)1ERj_)ooof==b55(22`XX:)(YHH3ERy`_[XX6&&W22w&&|$$)'`` 8&&)22 %$q`_=ER@TYHKJy_)n{[yXXm{['''@$# ;-H66!99~99n55>$${XX_22$98", -"d00O..| O..O..} V b J H H . *..6..&..J t V +..5..O..V a t - - r p n n a t a b V } | } n a t a n n b p r r p a n n b b b n V V V V C C C C ...R K F G P W w..e..e..%..r..=..y..y..6..$..$..y..f..aXX!XX'XX#OO&OO#OO]XX'XX`XXZoo:OO/ooO+O:++>++a++5@@6@@4@@4@@Y$$Q$$1%%k%%r**v==v==r**:430;;1::V66T003ewhggBNNGUIg}{f`_OTYq|}w99#ewd88(QQZBBKBBxUIXWE$$|$$T44[66", -"s00} } C C V b a C V C | +..4..O..} t V +..5..O..V a p r r t b V V b a a b n C } C n a t p b b a t r r t a b n b a b b V V V V C C C C . R K F G P W W w..e..%..r..=..y..y..6..$..=..y..f..aXXWXX'XX#OO$OO#OO'XXQXX_XX`XXFooJoouOOO+O>++a++5@@5@@6@@4@@t$$Y$$/$$k%%r**v==v==v==:43%;-1;;S66gwwNyyvddhgg@mn0TYZWEXERT..s991ewB88e}{FBBfMmkUIC)(7}{WVVFGF|RRi}{{11j..GYU/gg>gf+QWA33>ewK88s}{2YUHYU`QQc11|44X32}$$|$$U44L44A{[;/^$)(W'`o%$W22=&&I p`_p`_M)(j`_s`_s`_] |22@54d33R..doo;21g33+21s`_}YY_GGUHHl`_:oo@%$1$$3&&W66;wq9wqkqqm663&&1$$6&&.32W44", -"B99C V n b a a p C C } | +..+..O..} p V +..4..| n a a p p a n C C V b p a n V V V b b t p p p p t r r p a n n b a b n V V V V C C C C . K F F G G I W w..w..%..%..=..=..y..6..$..=..6..f..uXXWXX]XX#OO#OO]XX'XXPXXPXXEXX2ooCooWoouOO-++p++i@@5@@5@@5@@S@@F@@Q$$s%%r**v==B==B==6--e==#;-z77PuuytXewPppjMmQUU6WEH11$ew4ewA88<|}`ZZcZCKYUi|}f|}|YY(GGXWE5}{h..)QQ^ZZ!gglgg+QWe33,ewe99 |}dPL/ZZ[EEW<<@54I22' Q /22(22Y'`GHGPHHp_)#oo:ooW'`-ERAKJ1)(q|}r|}c`_<`_u|}*21;65c88S11Y11T22f33;%%<`_XTYXTY0`_#oo/22D44f==F44-87lww_wwQ99h==-ooo%$Q22&21/$$", -"N99} V b p t p a N N B ! ~ ~ ! B a C +..+..} n a b a p a b V C V b p a b n b b b n g g f f g g f f g m H H M M M H V V V V C C C C . K F S D G I W w..w..%..%..=..=..=..6..&..*..7..q..uXXWXX`XXZoo$OO$OOZoo`XX2oo2oo2oomooYooWoo-++r++i@@i@@5@@i++d@@A@@a$$<%%~&&p**N==N==M==[&&_==R66Luuhii0ew@q0{wwRggjZC!WW/11:ewneer00^<|}-WEvZC^nndmn'QQS333ewOewS<OO>OO:OOFooCoomoomoomoo9ooYoo@++r++y@@i@@a++a++2@@k@@r$$<%%~&&p**N==N==<==E==2::=76Aee]uuUuu=wq1ewyds)VVrYU'<%%.;->&&2$$2$$d&&E66Mqq(ww)wwmqqK66~22222o21j|}4WE", -"M99O..O..C a t p b 3 q z c z 7 7 7 n } O..| V b b V b a a a n n n b b n V b p p n | @..S d d S K K F S F R R K F K R V V V V C C C C J F S S D D L I W W #..#..$..$..=..*..*..4..5..q..sXXPXXCooFoonOObOOvOO/ooDoomoomoo,oo3ootooiOOt++y@@y@@a++p++$@@d@@+#@X%$j%%e**p**p**^==8;;d55=76.wqIuu^uu;rekwwsiiYxx;SAw<|}G11k33W88@54yooy|} ER0ER<`_u|}u|}s`_tER0EROTY0ERk)(tER0ERj`_`$$d33+21<`_`GG(RRy|} %$E22T44O;-loo<'`:'`zoo}66jww_eeeeewww 09*54322uoo4|}iTY", -"m99O..+..} b t t a < 0 e e 0 6 6 0 V } | } n b n V V n b b V V V n n V C b p p V +..@..S s , Z K R K h S F K F S F F V V V V C C C C J F S Z A D L I W W #..#..$..$..=..*..+..4..5..R..sXXTXXCooFoobOOvOO/ooJooDoomoo&XX%XX=oo0ooiOOq++y@@y@@j++>++a++i@@'@@M$$>%%M&&0**0**,--e;;D44A55888seexee!00@87>reLxx%%M&&M&&M&&|==2;;;43p44P66M88p88G55L55@wqqxz5SAZ,,q< 5 9 e e z 7 7 8 N B ! C V n H J R K K J J C C V N B C V m m M K J M g y f M . &.. . J M m M M m m N N N N N N N N J J H F S S G G @..@..@.....&..O..O..O..} | O..>..9..E..KXXTXXRXXRXXRXX1oomoomooRXX#XX[..;ooeooO+O<++r++<++-++r++s@@8$$;%%L%%,%%;%%z$$b**!==5;;t44m55m55t44!33t55@76^ii0SAS,,,<,<<<2<%%wooP 0`_y`_Y'`Y'`j_);'`3'`pXXy&&)44J66;54C44@&%5oo~XX9|}8|}]))R)(R)(", -"q99+..O..l u u 2 > 5 9 e e z 7 8 8 N B B C V M H J R R R . . } } } ! B C C C H H H M M m m m H ...6..7..*..J M M M m g l N N N B B B B . J J F F F G G @..@..@.....&..O..O..O..| O..+..>..8..E.. X.KXXYXXYXXYXX1oomoomooRXX#XX[..%ooeoouOO<++<++<++-++r++y@@8$$A$$,%%,%%A$$z$$b**!==}--!33r44~335;;~==6;;E55xiigAZV,,0<<5<<1<<'))3<<.1<*1MmlMmMZCl^~^11V88F33D<<~QQ!YYjYUKBBsmnaVB3YUpVBBBB@YU*ERq|}c`_<`_xWExWEI}{$%$d33{55+54+54T448&&<$$=&&H44O54.32>%%! E `XXD{[J'`;'`1'`)..m%%o;-=54]44C44cooWXXY)(U)(h)(o)(aTYX)(", -"0994..+..N u u 2 > 6 0 e c z 8 8 8 l N C C V H J . @..@..@........| | | ~ B B } +..+.. . M m H . . J . 6..iXXxXXf..&..H M m g g l l N B B ! ! ~ . . J F F F P P @..@..@.....&..O..O..O..O..+..+..,..8..R..Q..Q..|..|..#XXRXXmoomooRXXYXX[..%oo8ooWoo-++-++-++-++<++y@@1$$z$$;%%;%%A$$z$$b**b**!==}--|--~==b**n&&m==855Iee;vcr,,i< 6 0 c c z 8 8 8 n V C C H H K R R R R . ...| | | Q v N ~ 0..q..4.. . V } O..} C } 5..fXXgXXq..| V b b b b l l N B ! ~ X..X..... . . K K K P P @..@..@.....&..O..O..O..+..+..4..,..8..9..n..n..W..W..^..YXX1oomooRXXYXX'..VXX>ooUoouOOO+OO+OO+O<++j++/##e$$z$$A$$z$$e$$(&&(&&(&&b**n**b**(&&b&&!&&s44feeRxx^WW|<<;1<_<<(WWqSAUbbIbbmMmwSA=TYd)(2ooC11%109&98O65d==w&&z==(22z==koouXX`'`(..xoob44'44[441216ooZ'`y)(3TY`YYfTY/)(", -"%544..+..N i i 4 1 7 q c v x 8 i i n V C J H S F K F F K J J } } } T x v X..R..fXXq..+..C } } V n C +..q..q..4..C n b n V V N N B ! ~ X..X..o..&..... . R K R E E @..@..@.....&..O..O..O..+..4..5..8..8..8..3..1..b..b..P..|..RXX1oo1ooYXX'..[..;oo8ooUoouOOO+OO+O<++r++s@@1$$e$$e$$e$$e$$@%$@%$b&&n&&b**n**b**)&&_&&4::M88mff2SA(<%%=oo|$$D44U66]66x--joo{''S'`)XX$&%n44M44X&%QXXt)(^YYSVVAVV7TYT)(", -"@544..+..N i k 8 2 7 q v v x i i i V J . J F S D G S F F J J } } } Y v T ) 8..R..q..5..N N N B ! X..o..>..>..~ N l N B ! ~ B B ! ! ~ X..X..o..&..&.....R R R #..#..@..@..@.....&..O..O..O..O..+..5..8..8..8..1..:..] <..b..^..YXX1oo1ooRXXN..'..VXX>ooeooWoouOOuOO-++<++y@@/##1$$8$$8$$8$$n$$n$$n$$@%$)&&!==!==!==M==|;;P66,re=CVC,,-1..,..,..N N ~ 9..PXX_XXsXX8..o..~ B B ! X..X..X..! ~ ~ ~ X..X..X..X..*..&.....@..@..@..#..#..@..@..@.....&..O..O..O..| +..4..8..8..8..1..:.._ _ <..W..YXX1oo1ooRXXN..'..VXX;oo8ooUooWoouOO-++<++j++s@@/##1$$8$$8$$b$$%##%##+%$(&&n**~==}--)==:--3::a88uds=ZC4<<:1YU/GGOTYtERk)(xWEk)(j`_r|}' w|}#`_=ERKVV,BN:GF..B ~ 9..Aoo;@@I##:OOsXX>..X..~ ~ X..>..o..o..~ ~ ~ X..X..X..X..X..*..&..&..@..@..@..#..%..@..@..@.....&..O..O..O..| O..4..8..9..8..1..:..( _ <..W..YXX1oo1ooRXXN..'..[..%oo>ooeooWoouOO-++-++r++y@@/##1$$8$$8$$b$$%##%##n$$n&&b**!==~==,--1==_==F55*wqGffLWE)<%%o%$=&&z==U44U44I66]44m44V44S44<21!XXg)(NHG~VVBHG)GGYVVzMmaMmvMm", -"Y44| | C n b b b N ! ! } V b m M G E %..$..R M m m K F H C ~ o..:..] ' L..Y..L..[ ' x..J..^..XOoi$$b==-43644b==V@@&XXL..[ 2..2.._ _ 2..q..5..4..+..+..+..O.....$..$..@........O..+..+..+..+..+..+..+..+..+..+..4..+..| +..0..q..0..5..,..,..,..R..LXX`XXZooZoomXXmXXCXX:oo9ooYootoo9ooUooO+Or++r++r++j++s@@8$$_@@_@@$##b$$@%$(&&n**~==^--z&&%*&254666~00/kk}QQ[}{ZQW`WWrSATssa22y22dpp@dseVB:TYRUUyVBNUIwTY-WEZUIDBB#mnpmnbBNrVBhUI5YU5BN7MmEbbEbb#BN^GG4ERz)(j)(o'`^ ' 7..' 0|}z)(QEEo'`l`_=ERUGGYHHy`_('`_22m55/66$65t&&=oo|$$W22L66+65_66#98298:98{22n)()YY(VV'YYp)(uTYmVB4MmxMm", -"K44C } C V n V C N B ! } V M M M P #..%..$..R H M m S M H } o..1..2..2..U..Y..Y..J..J..$XX|oo7@@Y$$k%%e--<76guuhuu'66s%%Poo&XX}..@XX}..P..b..P..8..,..5..4..4..4..&.....R @..$..&..&..O..| | O..O..O..O..O..O..| | | | | 4..q..uXXq..5..>..>..,..R..LXX`XXZooZoomXXmXXmXX*oo9ootootoo9oouOO-++r++r++<++<++j++s@@)@@_@@$##b$$@%$n&&b**n**#*&O%$+*&c;;p55565|uu&CVlSAQWWvQWpYUAbbC11B11B22IsscBN4YURUUkUILYU%WE%WEDYU^BB}mmamn!BB!VV5YU}EE0HGsBNWbbmbbXnbPVV8ER#`_j)(#`_x`_^ /$$/$$w|}8ER$TY#`_q`_UHHbVBYHH/'`:oo{66O98*98'66d==! I #oo)66:65+98q00qwq5ewP88( O)(6TYp)(I)(e)(SVVbMmMVB", -"J44V C } C C } | N B | } C H H H E %..=..=.....J H V M H } o..1..P..^..}..&XXOXX`..`..,XX~++T&&8::Y66676u00}xxAIPMAZJuuu44EOO6XX+XX`..)..L..v..P..8..8..,..5..4..6..*..*..R @..=..6..6..+..| } +..+..O..O..| | | } C C O..5..yXXuXXq..0..>..>..,..R..PXXZooAooAooCXXmXXmXX*oo5ootoo9oo9ooO+O-++<++-++O+OO+OO+O<++6@@)@@$##b$$+%$b&&n&&n&&9#####l&&d;;P::L::G00&ds>hg7AZ_))VQW@mnC11t11M22VssimnQVVjUIEUUoWE-WERYYDYU^BB}mmpmnbBN!VV:TYAWExWE`GG5MmMbbqmn/GGc)(u|}I}{<`_k)(s`_H..`$$q|}OTY_GGrERj)(]GGKVV98rooJ)(D)(K)(K)(4TYmVBbMmCVV", -"B33C } | } C } } V C | | . J K R $..=..y..*.....} C C C | o..1..b..^..%XX&XX5XX5XXLooWOOm@@E&&M>>$98Vee:iu*cx UIH,,pUI,xz988P@@QOO:XXK..H..J..U..}..n..n..,..+..O..&..=..p..=..=..y..6..6..+..O..O..4..4..+..+..O..O..O..| | | O..4..0..q..q..q..5..5..0..uXXQXX$OO,OO,OO:oo*oo*oo:oo9ootootootooWoouOOuOOuOOuOOuOOuOOO+Oi@@p@@0$$m$$M$$:%%:%%:%%@#@@#@a&&(--@;-+;-[>>#wqrdslZC$!Q]QQOMmm22V11n22VppVbbtMmtVBEUU8WE-WEDYUQUUDBB[nnRnnamnWBB4YUZWEM)(}YY2BNqmn4BNOTYc`_] H..I}{tERtERI}{_ j`_OTYSGFOTYXTYPVVYGGq`_|$$W22;oot|}v)(wER2ERv)(Q 8&&:%%(XXeoo{22=986ew398V11P)(F)(u)(5TYYVVqMmwMmNVB", -"N33| +..+..| C V V V C | ......R @..$..=..y..6..*..| } } } B ~ ` 1..2..U..$XX5XX Oo8@@y%%-;-(;;;:;L77YrrawwJff>%dsNmmyYUeYU~nn&ewu22N22Vpp+dsXmnbBN6YU!)(t}{8WEDYU^BB#mnTnn+mnxBNhUI2WEbWE-TYWVV,VBFGFXERN)(3`_p|}k}{V)(V)(Y}{F h}{OERIVVSGFDVV5BN{YYt|} %$ %$@ooQ'`9)(<)(v)()'`>%%/44&54X21&%%'22Y88&ew000,21L)(i)(.TY^VVyMm}nnwMmZVV", -"M33+..5..4..O..C n b n J ...&..@..@..%..r..*..6..6..O..} C ! ! B / _ _ ' J..,XX{oog##p==E66898P88d,,D<oo>oo>ooeoouOO-++<++-++p++a++i@@`@@'@@0$$q$$q$$b&&+%$D$$a&&u&&o&%G**G::eee3gf^mmzmn&app22b22spp+ds.mnrMmbBN6YUp}{z|}*|}wTYySA%MmOmnOmnimnQVV:TY1WEXER-TY=YU-TY=YUJUIWVV&YUOERV)(Y}{c..c..k}{OERRVVDVV6BNDVVQEE8oo %$` y|}0|}y|}7..too=%%]22{55209&54422422$54409t99=21b)(7ER(YYFVV3BN3BN/BBiSA", -"m33+..5..5..+..} n n M J ...$..$..%..r..u..*..*..*..| C B B ! / ` ] [ c..+XXWOO.#@>--U667uy.pilqqX>:u,,Eqq)<>1&&X@+W++qXX+XX%XXmooJoo`XXxXXs..a..j..h..s..=..&.....O..+..4..4..4..4..5..0..0..q..q..0..0..4..| } | 0..gXXiXX7..&.....6..aXX+oo%OO9oo:ooCXXCXX*oo5oo9oo9oo8oo>oo>ooeooO+O<++<++-++<++<++r++j++s@@1$$e$$z$$@%$:%%V$$x&&u&&o&%D**S::9q0Jpp1gf}ppJwwi22appOdsQVVgUIQVV!BBjUI!QQn}{p}{%WENUIVBBOmnTnnYnnxBNgUI}EE2WEZWEC)(AWE:TYeVBimncBNQVV:TYAWE/}{d|}Z)(4YUWVVHGG{GG5ERZ &21&210oox`_w|}7..<%%h%%<%%O21}22P66422roo7oo%%%.54i33k..eER1TY(YY~GGFUIUUUYUUHUI", -"533+..5..5..+..} V V M J ...$..$..r..u..a..&..*..O..| C N B ! :..2..L..U..OXX{ooo#@:==n44O98:pi7piI88@=*T::/11z<>^**p##WOO+XX%XXVoo6++GOO%OOhXXj..i..y..y..=..&.....| } } O..O..+..4..5..0..0..q..+..4..4..+..| +..q..gXXiXX6..J H . f..vXX+oo5oo*oo]..]..CXX*oo5oo5ooeoo8oo>ooeooO+O<++<++O+O<++<++<++r++y@@/##e$$z$$b$$m$$V$$v&&D&&S&&J**D::F00eee8ds.ytN11{11>ap$MmC)(AWE5YU!BB!BBQUU%WEoWE%WEcUIfMmRnn#ds+dsXmnEBB{EE3WEZ)(z}{l}{2WEQVVumncBNcBNEBB!VV{EEC)(}EEgUIFGF;TYbWEI}{;%%+54X54@217..0oo#%$<%%too) ' #%$,%%~ z`_d`_x}{+1WE*TYDUI", -"533+..0..0..+..| } | R @..@..@..$..=..=..=..y..y..&..O..~ ) ` ] <..{ )..Looo@+G##Z--s,,D66twwOOQXXiXX7..7..7..7..0..,..1..1..:..` ` o..>..>..5..5..0..8..o..~ | 5..yXXiXXiXXhXXy..R R @..$..h...oXgooGXXZ..m..Z..DXXdoosOO0OO0OOYootoo9ooYoo;++t++<++<++j++y@@/##1$$8$$e$$z$$M$$+%$g&&z&&k&&;&&;&&K::n77tqq[ww4q0u11TYAWE2WEIUIFGF-TY;TYN)(L..[$$c..x..M)(<`_u|}yooH..s`_c)(I}{>|}*|}8}{Q)(9}{z}{AWE5YUyVBeVBQVV4YU,WEcWEtER0ER", -"433| 4..4..+..| | O..@..@..@..$..$..=..=..y..y..*..*..+..>..1..b..P..L..U..5XXo#@V--g>>h,,M77Y88=iuuvc|LLCll]yy`yykjj_,,@,>L,,e22=kjYPPmPLPNNWyyNttQaa}kk9vc/ffR778==0XX_..c..#XXFooAoo#OO&OOiXXiXXq..q..9..T..T..T..1..1..,..8..8..0..0..0..,..o..~ O..0..iXXaXXiXXh..=..@..$..=..=..F..OoodooDXXV..;..V..DXXdoosOO0OO0OOYooYootooYooiOO;++-++<++r++y@@s@@1$$8$$e$$A$$M$$+%$O%$B##0##1##>##r&&6>>p<X1..o..+..4..0..iXXiXXg..s..y..y..s..s..s..lXX$ooiooAXXV..;..V..AXXioo8OOYooYooYooYoo0OO0OOiOOiOO-++<++r++j++s@@/##8$$8$$M$$M$$+%$+%$o%$e##0##<###&%U--F>>/<<>q0X21Zaa-VBF}{ ^~]UU[ZZAUIbUIZBBOMm~ZZZUILYUNUIvBN+mnimnxBNrVBhUIyVBtVBySA%MmJss7apAgg[nnLBBQUU^QQt}{!QQDYUrVBgUIEBBcBN4YU>TYQVVcBNeMm*BNLUIcWE,WEWVV*BNTBBFYU_QQ>|}z|}v}{6WEQVVumnSbbVbb.mncBNJUI1WEs`_c`_", -"<32n C | O..O..+..+..&..*..*..6..6..7..7..7..6..6..5..8..T..|..YXX,ooI..0XX:==<98.piXpiLrrK887wqgff{LL2IPbllvssokj=PLkIP*kjw22A11Tyy:kjJhhrap$,><21psaRPPx<OOFoo2ooTXXKXXKXXLXXLXXdXXuXXyXXq..0..5..0..0..g..f..p..p..s..s..F..lXXlXXF..bXXvoodooGXXZ..m..V..AXX4oodoo5oo9ootoo0OOiOO@++@++iOOO+O-++<++j++y@@/##1$$8$$q$$m$$M$$@%$g&&h&&K&&#*&0&&Q--<<|}!)(6YU!BBOmn#dsUnn.mnrMmRVV,WEj`_I}{", -"|%%b V } O..+..4..4..6..6..6..7..7..f..f..f..q..q..q..9..Q..|..%XX,oo_..m@@g66*pi6jh|iiCrruqq[yyMllNIP9IP1lkGaa|jjvPL&~!CPL,kjisakhhYhhmaa}22+,>422JhhQPPt^~L^~3QW/LLEff8wqm>>8==}++oXXOXX+OOCooJooNOOZOOZOOvOOFoo`XX2oo2oo`XX`XXPXXgXXuXXq..uXXuXXuXXiXXf..y..=..$..h..F..bXXOoo|XXhXXbXXvoogoo4ooAXXA..nXXDXXGXX4oo*oo*oo5ooYoo;++q++;++@++O+OO+O-++r++y@@s@@/##1$$0$$q$$m$$+%$b&&(&&/&&=**4&&#:;B77$iumkkbkkakj4PLk )11F<+32AMMADScPLkIPlIPmPL|II[LL@lkVrrl==ROO2XXLoo1oomooHooXOovOO/oo:OOAooCooCooAooAoo`XXWXXfXXyXXfXXvXXxXXiXXp..$..%..r..F..lXX.oXOoolXXs..F...oXgooioo4oo4ooioodoodooioo*ooCXX*ootoo;++t++q++iOOuOOO+O-++<++j++y@@/##/##q$$q$$q$$m$$M$$+%$b&&n&&R&&1;;V77opiGCC`CCQCC,RTy B22(11NRTKmm;gf/nn$AZeTYzQWFYUjMm!nn#mnfMmvBNdMmfMm!nnRssUggKssIpp%apxmngZCiYU@WEzQWWYYgZC^nnVBB!)(;|}DYUfMmFbbHgg[nn%Mm^BBZUIwTYwTYcUIfMm[nnjmngZCvUI~ZZ}mm(nn(nnRnntVBIUI5YUIUI-TYN)(I}{c`_", -"]%%V n C +..0..0..5..5..5..0..0..q..q..yXXyXXgXXsXXsXX X.YXX,ooNooKoo @+);;7uy+cxTffDrr}00yqq6sa2NM5RTK~!lIP7NMMsswapWNNZTYw^~m|}o~!3DSxaaJ11L22qhg7nbThhghg$kj~NN*PLY~!m^~5QWPccY88l==D##o#@*@@%@@@OO^ooFooFooAooAooCooCooAoo:OOZooQXXfXXyXXxXXxXXxXXh..y..%..u..d..F..hXX|XX|XXs..R $..F..GXX4ooioo8OOhOOjOOhOOsOO9oo:oo*oo9oo@++q++@++YooWoouOOO+O<++r++y@@s@@/##%##q$$q$$q$$M$$>%%m&&0**G&&d==n>>3uy`ccrCVuNM3PL{~~g11a11zRT)gg2ap~gg+AZiYUWYY$AZHbbFssFbboMm%MmoMm%MmIggFssJgg-gfIppZCXpi%%0**C**{==d##e%%8==C77@pi;fd@fd lk8IPj<..,..9..E..E..yXXuXXgXXKXXCooDoo,oo5XX)OOn@@m@@H##,::1wq=fd&jh'rr.1<322tapLMMVRTp^~p^~8RT|jjW22ltt2hg*NM0FD#FD8nbLhhfhg/bbPhhehg#32Y22|22hhh&NM@PL5RTeRTCCC%lkuvcsvcOcxaww-:;a##f@@+@+Hoomoo^ooAooAooAooAooZooEXX X./..iXXaXXg..y..y..F..zXXzXXXoXk..u..u..r..r..d.. oXGXXnXXGXXhOOC++W##f$$U%%^##e++qOO0OOiOOO+OWooeoouOOuOOO+O-++<++j++s@@/##<$$<$$8$$e$$2%%(%%H==X-=j%%R$$H&&x55uwwqiuzddNddICCYQW+|}|PPEddXytwdsEgg.CVVmm-hg$gfZssIgg+mn+mnHggZss7apWgggmn9gf&dsueeKppqewUww;ew6ds-hg;Mm+CV&AZiYUiYUSBB0gf7apFbbLBBpSApSAqYUQYYnQWeTY@AZ,MmVmm#CV;MmWgg%gfqgfUggHbbumntMm*BN,VB$YUtER0ER[GG", -"V%%O..} | 4..q..yXXuXX,..8..9..E..E..E..gXXQXXTXXHoo^ooBooPoo8@@A##y%%3&&M>>KrrRff%jhsrr|,,O21jttjlk8RT*~!8RTINN7sairrisaqsacaa8apT22|22thg&DS@DSjnb8hg{22{22zaaKhhKhhLMM}NN3NM lk0CV6QWQ,,W,,yvcdww;;;u%%T$$,@@MOO@OO:OOAooAooZoo2ooTXX X.Q..iXXxXXaXXp..s..lXX[XXzXXk..a..u..d..[XXboo4OO2OO4ooAXXAXXgoo9++C++F$$d**d$$)##Z++@++0OO0OOWoouOOWooWoouOOO+O<++j++s@@/##<$$<$$8$$e$$}$$!%%j**L==e**=%%{&&s554wq%iuzdd$fdRkk:PLnYUcCVQddGpp,ap,gf,hg:hg8gfeds&gfUgg(nnTnn7apPppIpp:gf-hg7gf&dsyeeLppteeKwwUwwFpp8gfBmm$CVxZC+AZ(ZZ,MmUgg0gf~nnoMmSBBSBBgZCqYU@WE@WEqYUgZCXCVsCV^mmfmn(jjcmn Mm MmQnnInn$ds|nnVB", -"m%%+..| | +..q..uXXfXX,..8..9..9..9..sXXLXX_XXmoo^oo+OOPooEOO.#@L&&s==c##V>>=iu-lkolk+tr`,,I11VttxllcIPcIP2NMGaaprr=21Kaa2saqsa9apI22P22rhgyDSM!Q3!Q>&98$iuSddkffEkk)mmgCVBCV0lk}ddqds1gf9gf#hg5gf%gf6gfJbbUggKss*ewTww3reeds$hg9gf7ds%dstdsKpp;ewYwwApp,gfMmmpZC-Mm-Mmvmn^nn^ggJggJggJggFggqgfQggkMmqYUWYYqYUbZC~mm!mmfmn)ggKmmhZC#AZ^ZZzBNymn$dsWnnpVBoER}RRPGG", -"n%%+..} } +..0..yXXuXX5..q..yXX8..8..sXX_XX2ooVoo.Oo(OOQ++n@@V##6==A--z##f,,Opievc0vcYttF<<^119fdBll(LLeCV_aa522{,,!,,t22Iaa3mnIMMmhhvaa[bb(DDvOOQ{[K!Q|GG.NM4nb'bbIhhBMMDMM;kjGMMIRTn22p00XewC<< PL;uyK66B55e;;%%%1@@t@@4++~oo7ooewupi;gf1Mm)ZZhZC3Mmlmn!ggSssSsscmn%AZjYUwYUnUIqVB$MmzBNzUIXWEJWEBWE", -"-$$+..} } +..5..q..yXXiXXWXXWXXuXXE..EXXJooFooKoooOo8@@e%%z==-:;c>>m>>M--Q77riu0jh}ff~qqS88!tt&lkmkkskjAddxrrU<<3>>#>:T<XX.X.IXXIXXNXX!..xXX^XX#oo.oX.oXOooXoXzXX$..h..lXX1OO &%a66:54.&%n++sOODXXm..;..nXXdoosOOV++_##H$$933P33I**(##too7OO7OOqOOpOO%++e++y++Z++~##~##(##3$$s$$s$$W$$Q$$[&&W&&Q&&C--V66Prr|ff_cc9CVjffpfd(CCyIPBCVgkjmgg_gg3gfWdd}dd=hgnmn%hg}pp}wwPwwwew9ds4gfWdd{ppHppzggzgg2gfEdd}pp}ppEdd2gfQdd%hgbmnfmn>gf&apWpp&ap%ewJww~wwDppugflmncmn/nndNM`jj}aa-apQjjGZZfYUsYU[ZZXVBbNMGBB*VB{UUjWEB}{", -"=$$+..O..+..5..0..q..q..^XX5OO>W::m::R<xzlzl698<::!OOMoo{..(..UXX>>wqLddKcculkrfdfff!CCUWE:IPvCV[VV{dd-ds;ytJpp_ggmmm*hg0ds:ytree:yt;ds;dsreeIwwLwwEdd2gfcgg>/::[**$>:Cqq#salssIjjrPLM}{@++'DDMppXsaRjjIjjijhWjj,NMHZZdYUUPPgPLhPLhPLhPLyIPelkuiuYiiyxzuxzquy!55@#@~OOqoo=XX;oo9oo3ooMXX+oo&OO%OO.oX|XX.oX[XXG.. . ^XX:$$L44>54V33$$$#ooA..GXX4ooDXXDXX4ooGXXA..S..aOOY%%[44W99o65G%%pOOpOOpOOqOOqOOqOOpOOpOO%++M++N++E##(##7$$r$$=##-##G&&5==5==3==S--Q771iu|ff%lkgffkffqCV:IP:IP)CC7CVXhgmddItt7ewGdd(kk@hg4ds*ds3yt3ytXapVyy6ewPqqPqq$ap'ddZgghgg_pp#ew#ew{ttkgg[kk{mmEmm`dd+ap%sawgf@sa$sa@sa/ppUpp/pp>`77jwwvffovc}CCRIIT,,8UIcccLuu/qq#q0/<<)>>)::v::(::/,,P11)ww.dshRTJ11z88411 YU,mnlss(sslkhkjgCVtfd9ewIuu$xzexz0uy!55)--O%$i++RooUootoo=ooD..%OO5OO%OO|XXbXX|XXzXXk..aXX5OOA%%P44R44[%%DOO^XXnXXioo8OOdooiooioonXX-..}XXV++i33e66h99O43d$$0oojOOjOOhOOsOOsOOsOOsOOhOOv++M++Z++!##7$$r$$=##*##R&&a==q==.*&i--S663uy4pi3jh;fd-fdmkk8CVmCV{VVkkk7CVXhg>yt0ew,ds@hg'ff9iuAyy>yt3yt:dsXap@yt|tt@yt#ap'ddZgghgg_pp#ew$ew*ytkgggkjTkkZggYdd+ap%sa`ddIPsQWR,,/WW8xz;re:re&wqP00f<<]>>^::&>:l11Ypp=saHjjfRTc22oewoewM22yPLkssWjj6PL YUYRTMRTvYU+PL(mm_jjnjjhkjEmm'pp)qq-wqUiiTiiDeek88555c;;$*&a@@9OOjooaoo{XXpoouooSXXpXXC..iXXxXXvXX'XXAOOV%%B33533L##QXXWXXnXX4oo8OOsOOdooGXXAXXAXXgooU%%066k99W44S%%C++n++8OO8OO8OO8OO8OO8OOsOOhOOKOOm++C++u@@a++i++T@@ #@f&&^--'--X*&q&&T--}77FwwWuu3ds[ff hgXgf.gf`kk8CV!CC8lkPddNyySyy>dsMddMddXap@yt|ttVyy2yt6ew6ew@yt@ytXapTddvdd'pp@yt|ttKttBggQkk]mm/jj+ap+ew%yt`dd&sa&sa$sa)ppTppcpp~pp]aa sa sa+salsslss=saQppetr tr tr)rrMttajhfNM1mn.sa", -"Y##dXXLXXLXX X./..^..|..#OO,OO:OODooVoo(OOWOO}ooeXXy##~;;vqq'iifffYkk4CV{mmiCVxCVLZZ,AZ;IPRWEdsMddPddPdd'pp@yt@ytVyy@ytXewPqqXew6ew2yt1ds1ds'pp2yt@yt|ttBggJmmBNN^jj&yt!ww5tr+ap%yt%ytwtr4tr4trppp-ap;sa'aa saksssgfpjhegf(ppetrCqq/ww8tr=saLmm[NN'jjbpp", -"L##LXX_XXPXXKXX X.|..#XX:OOvOO^oonoo0XX[++l##G##_**t,,CrrMyyTaabkk;PLbRTxPLsPLRZZZZZQZZ|PP,IP,IP vc(tt)qq0ewYqqx11h11y<<^,,`ww1mn.YU'UU$VB+YUE|}p33`88_88D..gRToYUoYUrPLqPLqPLkPLIPPdYUiPLGNNPmmofd:dsaiiQiiTiiKeed88l77z88-65o;-w$$0++w++=++dOOfoofoosoo@ooooo^XX!XX!XX_XXAooI##N%%&$$ZooR..9..ioosOOhOOgooDXX4oon++G$$O43w66k99W44F$$doo4oo8OO8OO8OO8OO8OO8OO8OOsOOhOOKOOb++n++t++r++i@@_@@8##3;;755655k--q&&y--U>>@87Wuu3dsZffIddyiuSyyMddtfdsfdMddNyy]tt,ytNyyNyy,yt@yt|tt2yt'pp2ytXew1q0:q01q0[ww2ytXap1ds'pp2yt2ytVggVNNlCVBgg5tr!ww5tr%yt@ew@ewWwwRwwRww*trcpp;sa sa+sa.ds0kj1mn!jjAaa3tr|11CqqYpp)jjSZZOPL'jjqtr", -"K##_XX`XX`XXTXXKXX#XXYXXHooCOO+OO3XX2XX)++h==V>>111]ii}kk@jh1fd8kjHZZ.YUJZZNZCmNMJmm[mmzCVKZZxCV'ff>|77)ttFdd`ffDdd/ttTqqKqqKqq3q03q03q0Lqq.ew.ewLqq:I,,722!jj8PL1RTfWEe^~$^~$^~dRT]NN>NMoPLyPL-VBkPLIPPkRT^~~x^~7QWPCCMgg@q08ewpdsrxzoxzkee;65055X;-x**(@@EooroowOOwOOjoo8OOsOOgOOgOOtOO$OO]XX'XXKXXTXXCoo/ooJooEXX X. X.nXXdoo8OOAXX;..8OOX438reQzzj00p33n++iooioosOOjOO8OO8OO8OO8OO8OO8OOsOOhOOKOOjOOjOOe++l++/##8$$e$$5;;y55E556::k--a;;E>>X879ewFdd`ffyiufww[775<<`>>O<,Q<<NMDNNDNN[jjQpp722f11|11etr!jjGNNfNMpjh^pp", -"JOOPXX`XX`XXEXXEXXRXX1ooXOo:@@*@@ Oo[ooc##V>>yt2ewafdVCV'VV2ds>yt7ewq<<(::%>:oewANN[~~P<<'11)11K<>h77l88lww3dsZff1yt#q0/<<%<,>>>^>>^<NM,NMUmm!jjMtt}11H<43>43V33l<q0U,,w<<:q0Ktt'ppufdQmmpCV5CV1ds[ww`00Kttofd_mmBYUC^~WQWCZC_dd+apEpp6tr5tr%yt&yt6tr_wwo21WwwpppHss`jjoPLlNM9kjUjjUjjegfetr}11K<yt iu>a>>u--*&&N&&x**1**4$$f++x++h++#++o+Ok++2$$k++yoo%++%++BOOyOOeOO:OOAooAoo5++COOMOOXOoXOoMOOMOO^ooiooA..V..sOOP**h99{ee7re_44R%%sOOAXXGXX8OOhOO8OO8OO8OO8OO8OO8OO8OOsOOhOOjOOjOOn++W##6$$d$$^##y++>%%H33#76@76R55!55.87l88$q0Wuu{uu-q0{77Kqq,yt,ytjyyMggPZZVYU#IP,lkoytk11!<<:q0[wwKtt/ddpCV@IPmYUTkk@yt`00[ww/ddhCVo!Qs11R<NMijh(ss(ss=sa8tr}11l11Cqq(ppfgfigflssHjjfNM", -"AOOgXX]XX]XX]XX$OO#OOQXX$XXKooX#@u44Pii8bvnAZ>0>>!--s--t&&~--,**]@@[OO/@@[@@f++x++z++h++h++x++2$$2$$&++-ooqOO@++3++rOOSooDooHoo^oo:@@+@+:@@,@@,@@+@+:@@V@@dooV..A..G$$f99{eeW99_44G$$n++GXXAXXdoohOOhOOgoosOOsOOsOO8OO8OOsOOsOOhOO8++%++8++Z++^##)##Z++8++G%%U33>76L99r88c88b88l88 87gwwbww#q0L00.ewoap4fdhkj/CC#QWRQWdYUqkjYppk22Qwwt<<;q0]ww@ytBCVo!Q{WWKZZ`ppM11]wwUddEmmUQW[11J<> 87FwwFddNkkpcxacx+gf~uu[qq 87y77K>>q>>s;;z--y--a--y--r--w&&A&&@*&6##!@@a&&c&&v$$x&&D$$v$$(@@x++>$$,$$+++&oo@++@++VOOrOOGooDoo^ooXOo+@+,@@V@@i$$|$$4%%]$$o$#y++7OO8++I**G99#09X65833y++7OOZXXZXX0oopOOpOO7OOsOOsOOsOO8OOsOOsOOhOOhOO8++8++e++Z++)##)##E##y++s**!44^99hee209M88b88h88f77$q0fww-q0=q0Jttoap!ddnjjdCV6IP8IPGNNigfMtt)wwn11~,,m116q0Xew|VVo!QX!QKZZ_pph11;q0*ythgg}PPg<saUpp'ww_wwWwwWwwwtr@saoVBUmm[ss(ppetrYppRaa~ddnggnggvggnjjreHff@gfUiiDeeFee^00Q55454u55;65peeNii#xz~iiPeek779555::u>>I>>S55U>>E>>i>>S55K55i>>t;;l--O*&:&&$&%$&%;&&;&&;&&;&&@&%@&%6##d&&6##2##s&&B$${@@a&&c&&N$$/@@z++[@@Z$$<$$o+Or++-++mOO~ooIooHooXOoMOOXOo+@+|##|$$4--A44-43u**E##)##s**@65(99&65s**y++3oo=ooZXXZXX6oo7OOqOOqOOsOOsOOsOOsOOsOOhOOhOOjOO8++8++e++E##)##6$$)##^##z**+65)eeCuuLeeneeowq|qq}77+q0eqqfwwvww$yt|pp|ppRkkwNMPCCqNMfgf(ppMttmttBqq/,,k11'00z11)ddrIPUWE/CCCyye<<~<lkbggzssQpp8tr8trMttYpp#saegf[NNzNM0kjAaa`ww)rrWaaUkk6CVYkk4fdifdUkkANNBZCBZC", -"$OOZooZooZoo:OOnOObOOZoo`XXPXX`XXj@@f33.76276]661==:--|;;a44f55v>>t>>t>>r>>j77:87a55I::154h;;>**{--{--X;-/33u55~55Y55254b;;b;;b;;6::354b;;u;;'--]--j;;354354b;;=;-^--***#*&<**^--t==#*&p&&e##7##%&%Z&&i&&w##i&&~@@c++6##B$$B$$5##!@@a&&[--{--5**0$$a++(oo~oo)oo^ooNOO6++RXXXOo:@@T$$K33b99x99j446$$I%%~44(99E99u338++D..MXXMXXZXXZXXZXX3oo7OOpOOqOOqOOqOOqOOqOOpOO%++8++8++e++y++^##6$$d$$d$$6$$833i99Auu>.ew9lk{VV,lkLtte<q0c11>q0#yt-saOyt9tr5fd(mmqNMmjj3fd(ppYppMttAaaegf)jjFmmTmm[NN%VBzNMegf`wwEwwRaa>lkkCVjkj|ppCyy5fdPmmMNM@@]##T$$4%%f@@S@@-##=##:##N##9##7##i&&%*&+*&q##4##C$$D$$4$$v**v**v**c**C&&l&&B&&%*&f;;f;;f;;]--^--^--Q==Q==)--=;-j;;b;;f;;)--t==t===;-j;;j;;=;-^--***K&&K&&K**h--;**;**f--j&&X&%H**h--z;;v;;O;-c;;;65$87055)&&_@@!OOOOOmOOXOoNOO6++1oo^ooCOOh@@K==.76x99.76]33_55s99K99!44x$$9ooB..:oo:oo*oomXX]..CXXtoo@++qOOqOOqOOqOOpOO%++8++8++8++y++Z++^##)##6$$d$$h$$Y33!99|ll>x;;t==z&&K&&=**-**^--t==^--)--^--<**^--=;-]--)--^--t==t==^--]--=;-y;;i;;r;;e>>P557>>c--s>>s88^uuXiuxee wqceeceex88l;;O%$'OO_OO1++MOONOO6++MOOMOOMOO+@+o$#u**-43o54*reEee!99!44F%%iOO9ooiOO0OOYoo9oo*ooCXX:ooYoo@++qOOqOOqOOqOOpOO%++8++e++e++y++E##^##^##^##6$$h$$~44/99Auu/ee;87g55u>>i>>W>>+871ytFkk!CCTZZoIPMYU8QW%QWqRTOIPiPLkRT- e11XPLbttaqq}rrXq0dqqQttWqqF<<3>>,,,311.q0F<<;<,U<>i;;c77j88i88I>>u;;=;-f;;f;;6::=;-]--j;;6::655&87,98787!55t>>p;;t>>F55k77x77p88p88m77+wqTuuR00a>>365;refcx ZCkcxadsgddEii,reP66<**q@@@@@$@@COOvOOZOO+@+COOCOO5++MOOMOO]$$644%re809$65k**<++VXX>oor++-++uOOUooeooeooUooWoouOO0OO0OO0OO0OOiOO;++q++t++e++Z++E##E##Z++E##)##d$$Y33;76{99:763;;<**r==x--r77$q0Idd2ZCuIP[WWTQWZ^~n<87<87-87L66955u>>J55x77>98`uu0xzcccnffGee|qq@wqIuu[uuiii#xzMffadsPxxgcxRuu}>>{>>VwwMcc>SA.ZCkcxUxxwxzmffg88)--e@@1@@2@@COOvOOFOO5++^ooMOO+@+Doo|..,@@-43<65(55F33;%%WooN..VXXuOO-++uOOuOOuOO-++-++O+OWoo0OO0OO0OOiOO@++;++q++t++e++Z++E##E##y++y++^##d$$h**f44$65^33h&&B##J&&d--@879ewVkk{PP}WWwQWz^~l<<$|}V^~KQW6IPSZZ+PLvRT-^~vllstt|yyXlk%fd[yy&fd,fd.uy+trsqq/11411411zrr@fdMjj9sadttZqq;21AqqotrOtr6sa{hhvssCttCttokjRPP(~~J}{1RT,NM!jj)jj)jj~ddOytOewcddRkk/mm>lk>lkI,,iUIAIPDIPMAZfvcgvcZIPnAZcvc%cx7xzcAZJ,,L,,qUIjAZ>CV6vc#vc@xzdee^55q55r55$87Jee9xzBAZQIINccYuuxddsfdFkkVkkZff6iuPuuKuu/qq^qq[qqKuuhii#gfOZC%UIiQW+UI|CCogf3dsZffjcx(ccbCVMCVvCV)CCVCV2ds8<<'::7q0{ggvCVbCV4ZCMCVNccCkkmwwT--b##k##w@@Q++)OOPoo*@@%@@COO^oo/ooZOOj@@*$$2**L%%z$$y@@Woo;oo;oo>ooWooUooWoor++1$$8$$r++UooeooUooUooWoouOOO+O-++-++8++e++Z++Z++Z++E##^##6$$8**M**M**@%$W@@^@@ *&p;;f77Puumcc'PP.QWqQW&QW[WWqRTNYUlYUhPL>PqqTkkIP:AZ/ccdcxMww5>>9==3==m##n@@{++)OOS@@*@@+OODoomooJoo6++j@@r++j++r++-++Uoo>oo8ooeooeoo8ooeoo-++s@@/##<++eooeooUooWooWoouOOO+O-++-++8++e++Z++Z++Z++E##^##6$$A$$>%%>%%$##|OOT@@k&&*;-}77Gww`ff[cc2ZC0ZC~CC4CVfCVUCC;PLUCCpgfBqq|11Oyt3q0UqqQttKyygyyFyyXjhCCCZCCNll/aaSqqY<AZVccBkk9ewy77N>>B>>j--D##C##o#@h%%f##O@+Voo,oomooXOo5++>ooeoouOOO+OuOOUooUooUoo8oo>oo8oouOOj++y@@O+OeooUooUooWoouOOO+OO+O-++-++;++q++t++t++t++l++!##3$$0$$0$$_@@ +OTOO`++k&&Y--f77[qq)tt8iuIdd.gfyfdOapMgg`mm#IP7IPIkk>q0U,,e<<_00]00Rqq!qq!qqvrrBdd+lkiNM4lk.uysqq211Y<lkIZZzCV[mmHkk~kkHkk$ew8<wqY>>B--V--z==9::i==-##(OOBooBoo.OoCOOeooWoo<++r++r++-++uOOWoo8oo>ooeooO+Oj++j++O+OUooWooWoouOOuOOO+OO+O-++-++;++q++t++t++q++l++!##3$$q$$%##_@@3@@.+O|@@o*&a;;W>>f77]77{77bww>dsOapJttEaa/mm@QWf^~/PPjyye<<@<,Uqq.ewxrrNqq{00yqqvrrouyBjj0fd7ytpqq211k<>.piyvcUccIcc9vc8vc4jh{ii!rrkqqC88m<>w>>9>>S>>#q0xdd)ddByy.apwlkwQWd<<&QWpfd_00#<,OewPttQttxrrXq0}00fqqhrr#tr7ytFqqpqq~11E,,k<<#tr'yyOtr:21;1>8wqTff#lkyNMACCVll#fd#trFqq/11I<--a##~++EOO|ooPooWooWooO+O<++j++y@@r++<++O+OO+O-++r++j++j++-++uOOuOOO+OO+OO+OO+O-++-++-++-++<++-++-++-++r++s@@8$$b$$8##8##B##J&&d--Q--5>>W--W--p--F--{77 fdfkjcddZyyYkk[WW%|}rQWYkk3q0q< 111111 ^~9 811u VYUYkkNyy3ewHttpiwwwb>>T&&o#@{++)OO{oouOOWooUooWoo-++r++r++-++<++<++r++r++r++<++O+OuOOO+OO+OO+OO+OO+O-++-++-++:++>++:++YOOYOO>++p@@0$$_@@@#@B##***u;;i>>L>>U>>W--I--8&&9&&6<:z11|rr0ytQttTttjqq,1:T,,L<<;21otrzyy8sa|hh jh6savssXkj2NMTPP(~~y^~1^~aWEC..C22g11%QWjkjNyyUtt3ew]00q<<#<,c11oew ap-sa", -"5..m66yuyauuT88K77uyyolk5RTERRnPL{hhatt`yy6saFaaT,,;21 jh5IP5IP7kjkyyhyy`dd_dd@ap%saWkkEZZ%IPaPL^jj4tr(ww9mnR}{u22E11X+O=++7%%=++(|}uWE.FD^MM%mn6PLnNMsNM]NNqPLdRT$^~e R|}yWEEDD-mnYMMVGF[RRiER(22f22^22>mnpPLWkk*yt`pp;saHBBdNM2tr~>>!>>5q0VggbjjOytWtt0ytJqqcqq*iuKff]xxauuE66V--y%%o#@[++)OOr++O+OUooUoouOO-++-++O+O<++r++r++r++<++-++uOOWooO+OO+OO+OO+O-++-++-++-++>++:++:++YOOYOO>++p@@0$$E@@@#@f&&k--p>>h77d77y77!--s-->&&O&%J>>>dsyfdJtt%<,)00Pdd!CC_CCsfdqqq5<:B::R,,!11Otr]yy9sa9sa8saCtt6sadjhcllnPLERRL~!K~!IPP5 B22p11VYU^ddTqqKqqTqq]00r<<#<,k11oewRaapgf", -"5..(77:pi6piKrruqq.uy3NMFRT>^~lIPkjjxss5hgxssxss|11H<<>lk9QW#QWqNMXtr/ww`ddtgf&sa&sa]mmAYUDQWAYURmmppp(11Css+ER5.._##4..P..H T}{rWE}DDEnn)ss}ss+VBtPLGBBGssNpp>mnIYU.^~tWE(UU(MMemn=HG*`_mWEbGFe11#,>=ewVNNmYUvCV|dd*ds@sa]jjrgfa11{**Q>>'ww>sa{hhpttZqq~11x<< q0Cddwjhocx5uyF66:::Z--L&&N@@!++^OOYOORooTooWoouOOiOOiOOO+O-++r++<++O+OO+O-++r++<++<++<++-++-++-++-++-++e++q++<++-++:++u++4@@@#@T@@^@@&&&*;-h77l88h88v77G>>H--e&&+&%F::2ew*dsK00_::`>>L00,yttfd fdUttL00#=*R::><,WqqRttJqq[<>U00]ww=ytVgg", -"4..0wq8pi6pi6uyDrr/aaokj!PP`~~8RTKMMkjj|jjvhhsjhW11K<<lk,q0l11Rpp%sa%sa_ddHmm$IPAYU$IPdgf*tr(11Zpp5VB*`_#.._##%..V}{nWEQTT}DD7mnTjjJjj]ZZVUI VB^ssjpp_ss VBVUInBN&mnQssods5VBmWE@ER9BNS11w11&trlCVSYUBCVufdXap~pp`ss]aau11N::(,,;tr;sa3saH22U11P<<<,,611Bdd|kk+cx+iuJ77r,,h>>b--D##N@@5@@>++YOOUOOO+OO+O0OOtoo8ooWoo-++O+OWooUoouOO-++r++r++r++<++<++<++<++<++q++q++<++:++^OO/OO3@@^@@}OO'++0##u;;.87Nww@wqj88G>>H--y&&,&&G--0q0>ytH00Y::_::W<<3ewxdd fdtiuHtt><,4>>1>>><,[<<_<>^**l##6@@p++:++>++j++j++@++too%ooeoo-++-++WooUoouOO<++j++j++r++r++r++r++r++r++q++t++r++>++^OO~OO +OT@@/++|++S##*:;@98,uyIrr'qqD>>E-- =*9&&P--=q0Utt/<:=<,|00RttLyyzdd'ii[<<4>>P;;!::y,,=<,><,V<<<>>x<++:++a++8$$8$$u@@@++>oouOOr++j++-++O+O<++y@@j++j++j++j++j++j++r++r++t++r++p++>++^OO~OO}OO'++/++L@@4&&n>>rwwEuuSww+98T>>J--|**}**~::Tqq,yt[774>>4>>y,,><,[<:E<<[<<,Q::&<,!qqAdd2fdXuyDyyXuyZdd uy uy^aaYaacyycyy uyUaaefd9NM3PLKPLJCCyjhbyybyydyybttWttlrrRqqYttLyyHtt3ewQ<<)>>v11UqqUqqJtt", -"| >wq+98!77>wqwiu$fdYaaDhhHPLHPL#kjeapxttktteapCqq/ww(mmPCCbggRaa ew9tr5tr+ap&saRpp!ww4q04q04q0!ww4tr@sa`nnOYU)}{q B}{@^~GWEpRT]ZZ`jj]aa@sadgf@VB7PL[ZZ2mn;sacpplpplpppppcppNpp`aa)ss7mn)BB'BB_UU#VBGMM:NM'NN'NNHMMDhhDMMTNNIMM3kj`MMAPLAPL[BB4kjctt121[,,C:: <,'yyMjj@fdkrrP<<;21krrD88K;;u##5@@a++a++`@@z$$e$$!##;++uOO-++j++j++r++r++j++y@@j++y@@s@@/##/##s@@j++<++r++j++a++i++|OO{OO.+O`++]OOI@@j--V77,uy>iuAwwR88j,,m--(**X=*3<>o>:o>:4>>E<>P;;+=*4>>S88oq0S88_<>7&&$##0$$0$$q$$8$$/##t++@++j++<++-++-++r++r++<++-++j++/##e$$A$$A$$8$$s@@r++r++a++i@@5@@ +O.+O`++G@@rXXn##c>>tww/ii}iiYrrQ88j,,m--)**K--Z<:I;;I;;O>:C<>R::4>>_<<|00oq0xqq~qqGttyyyMyyRttJqq(00S88NqqRqqQttKyyKyyXuyjffylk]CCECCuNMbkk^aa8ytlrrDqqjqq811811yqq811611crr%fdtlk(LLylkgyyXq0_<sa:)<>L--L--+>:4<>A<< q0cqqS88=<,4>>=<,[<<(00xqq~qqxdd>dsNyy3ew=q0/<<5<lkXtrXtrhyy~dd`ddQkkZZZ$IPCZC^jj+ap6tr@ap+ap5tr5tr{jjNRTAQWGZZjPL7PLJZZNZCHmm&sa&yt_ppwgfggg]jj{jj~jjggg~jjDmmQkkVggdgf]jjdNMSNNImm_nnsjh=kj}hh`yySttfssQhh3nbHDD[|}jOOhTY0FD$ ;++@~!RLL_yyL<<>,><>>A<##6&&w,,,iuocx6jhOiuZ88d,,~;;K;;.>:l>>t,, q0uyyFrrC<<@>:$=*I;;:,>`<>W<lk8IPwRT>PLANNbjjRaaRaahyymjjqNMbggkyy!pp~ddpgf~ddPLmjjRaamjjHmmHmmEpp4q0+ap]mmVNN[mmzCV$IPhYUZZZBgg%yt@ew6tr_ddBggQkkJmmJmm]mmVNNCZCRZZVNNJmmBNNCZClCV^jj+ap,q03trBaaJaaeapMaaQhh=DS#FDF]'JOO[!!nJHe!Q0^~3^~WLL!11k<}00yqq q0111,1<411zrr0fdvkkCrrK;;b$$u++6@@q$$i@@y@@1$$s@@0$$i@@:++YOO>++i@@p@@p@@q$$>%%m**[==m**m&&M$$0$$u@@/##+#@9@@`OOW++K@@c##0==Y88Gcc,ZCejh9wqz>>T;;Y;;!;;d>>r,,N77!88CrreytD88u,,U;;E::-<,111A<<-<,]::,>>]<<|rrJttLqq1q0[wwcdd.ap+ytUqq]00z11Q<>O%$ +Oi++_@@i@@i@@`@@r++`@@a++:++:++p++i@@p@@i@@m$$>%%m**[==M**0**m&&:%%g$$e$$r$$9@@_++]++U@@c##0==Y88+cx>d,,P77zqqtyt`iiuyy q0-<,p,,111 q0`<>]<<|rrPtt.ewrqq[wwOew.ewLqq++)@@6@@i++i++6@@)@@)@@6@@m$$>%%0**m**m**m**q**m**w**L%%a$$C@@.@+P@@i##x##0==~779jh>n,,C887wq*iu,fd+fdFrrD88D88bqqDrr q0h<<3,,:<,{00Ytt+yt.ew:q0`00r<>O<, q0uqqbqqEqqyqq611sqq7yt1lkQLLiNM.uyhrryqqfqqEtt", -"p vww#q0Dww0iu>W;;.>:k>>l>>v,,A88Ett[ii+uyvrr811yqqTttwytcrr811EqqRqqxrrYttJttLqqj118<<)::;>:)>>^<<3q0.ewUqqLqqPttcddjkj)mmwlkYkkNggnggNggYkk)mm9lkndd> q0 q0cqqEqqfqq811/11krr9sa2lkBjjvyyqytTttfqquqq", -"t $ytKqq/ttIddsfdnddCyyQppTmmHZZGNN[jjAaa#saTmm^~~P<:~;;Q;; >:t,,111DrrHyy[yyvrrjqqcrrFyy+uywythrrouyDyyQtt|rrOewUqqU008<<;>::>:#<,]00PttZyyByy+yt.apyfd9lk4CVwlkNggndd.apByy^ddEkk)mmpfd.ewr<>5>>i77|77.87I>>o*&#*&#*&***K&&f&&B##e##e##o%$g&&h&&/&&=**W==`--4;;^33.;-e==F&&S##F##1&&~**b--D66#iu9jh9jh_iilqqN77N77v,,a,,D<>x;;5::5::u;;g--X*&X*&:**^&&/&&-**W==W==_--3;;k;;.;-|--`=={&&=&&F##~**.=*=:;R776uy$pi3iu6wqP77N<>Y886uy#iuKrrZ88n,,c,,7wqzqqjrr[ii=lkMlldfdqytzrr9yt~aa#fd#fd#fd0fd+jh}kkNddRqq511.ew^ddkgg/dd.apByy$ytcddNggEkkfkjyfdnggNggfkjnggcddJttv11q<<>s;;s;;5>>i>>p>>u>>5::p;;X*&k&&w==<::%:;0==`**L;;b,,W88lqqlqqK88t,,@>:`<dssfdlkk`kkDkk.gftfdxddtiu,yt3ew)00a<>L>>U>>u77h77I55t>>*;-t--:**q;;J66R66a::T;;X>:r,,J77Z88A88K88p,,@>:A<>|::k<>x--q&&:**v>>498sww~77r,,:,>f>>c,,v,,D<A<<+uyOfdOfd%fd%jholkxkk&fd9yt#tr#tr~aa lkZCCACCiNMyNMcjjfyy.q02q0oyt#ap`ppOewJtt$ytcddnggYkk9lk9lkNggByy.ewPttOewv11z11Uqqbddvggnjj(dd.trk11@<,U,,A<<3,,<>>1,,Y<tr,tr{ssvNM{DDePL.VBIjj]ss5mnkPLYRTr^~nRTwPLoVBDNNfNMfNMDNNoVBkPLIPPFZZDNNDNNzNMUmm0kj1mn,NM[NN8PLIPPkPLwPLBZC!jj(aa1fd:lkNllolk%jhtkj}hh_yyirrirrpttatt'rr6fdNjj9sazyy|hh2lkMjj7fdxlltkjxll|NNmPL4RTvIPRPPZNN>t,,t,,B<< q0A<<1,,b<<+uy%fddfddfd&jhMllAllCllBjj~aa9yt.uyCjjyNMVll lkyNMbkkJyyMqq'00|ww{tt$ewLqqJttcddfkj)mm6CV6CV6CVYkk$ytLqqJttUqqq<RTEPP%PL.BN.BN%PL%PLEPPMTYJPL.PLENNykjzhhwsabsszjjGMM_NN.PL%PL%PLiPLqkjhssefdtlkyNMolkXjhOkjMjj!aaOtrOtr'yyQaazyyfjhclldjhGaafjhtkjfjh{hhXkj}hhdjh3NMcIPWRRERRvIPUmmUmm5mn[jjfgf-sahyy ew(ddyfd)dd$yt[005<<6<<{77,<,,<,b77gwwQuuGwws77!--y--p>>sww(ffzcx$pikqq3,,X>:t,,t,,h<>g<>U,,2q0(ddifd4fdCyy2q0J<>`>>6<<#q09ewlww]77K>>5>>t77rww>a,,`<q0D88611611611211~11Zqqsrr'rrVtt_yy]yy!aa/aa#tr/11", -"# 4mnCaa sa,mnijhvppvpppapYjj^MMxNM^MM^MMxNM~MMxNM&VB]DD&VB(BB_BB~UUgRToYUrPL&VB~MM|ssiapiapEss~ssFhh;mn6mnvNM+YUe^~e X^~_~~4^~G}{dWE0PLUDDNTY%~!NTYLDD#VBUDDLDDkNM;kj;kj&kjPjjhjhPjjukjkNMXBNgPLGNN;NMpNMeCVyNMMllMllNllXlkBjj+jh#fd|yy9yt9ytptt7saGaa`yyokj BN BNRLLLNN1NM1NM}NNvPL!PPYPP=PL}BB]DD]DD&VB.VB]NN0kj.saWaaRaa-sa(ddCyy>o<,a<>i77f88rww4uyrytbqq,1:I<lk>lkUkkUkkUkk>lk(mmeNMq0Drr4yt4ythrr/11Fqq!aa1lk=kjLaaq22=21OtrQaadtt~11", -"+ $mnWssRjj(BB_BB~MM$mnRjj~MM&VB]DD=VB_BB(BB(BB{DD{DD{DD]DD]DDePL^UURTThRTRTT~UU=VBvNM%mnZhhEssOsaDjj,mnnNMdWE611w11D^~DRT7RTDRTHRTFPLLMMLMMRDDDRTcPL^NNoBNRDDPDDoBN^NNKNN6NMJMMikjglkLMMKNN^NN@PLOBNINN|NNQLLlk>lk3fd!ppkyy~ddmjjPmmbjjhyyBqqCqq9tr^ddnggfkj^ddOewv11z11]00Drruyy+uy/aaQaaGaaMsssjh3sajtt222irr6saXkjQaa!11", -"O 6mn{ssRjj(BB&VBvNM~MM~MM(BBePL~UU~UUePL{DD{DDrPLrPL~UUrPLePLePLrPL~UUoYUXYU~UUePL&VB~MMYjjWss^ssDjj9kj]NNX^~r116115^~CPLcPLQPPBTYRDDikjglk|SSVRT*PLWNNoBNRDDPDDoBNoBN^NNWNN6NMLMMLMM6NMWNN^NN.DS}NNLNN|NN,PLMPLwIPwIPYNNvllMjjMjj+kj1lkMjj9sawaputtLaawkjpkjpkj=kjtsa`yyvsstkj|NN#PLmPLTPPRPP^UU=VB_BBrPLRTT~UU^MMYjj(sspjh5mnTmmajhYppXtrhyyoytjyy+ytUqq)00L00W<<,<,'>>I00xww`ttfffwCVSCC+lk}kkrlkMll}kk%fdFyy4yt4yt~aa#fd jhOkj1lkxllcll3NMPNNPNNINNPNN2NMxllokjfjhMsstjhzhhNaa722`11+ewEpp-sa~ddbggPmmPmmbjj-saWaa-sabgg_jj~dd ewR11W11/ww)ddfkjYkkpfd$yt3q0lkbjjbgg~ddpgf3fdhyyR11Y,,0<NM9kj_nnKjjIjj.VBu^~6116^~oBN}jjikjWNN|SSKNN,kjglk^NNQPP|SSKNN^NNPDDPDDPDD*PLcPLcPLcPL*PLRDDPDD|SS|SSRNNWNNoBNPDDcPLQPPkIPBTY7NMsjhLaaMss1NMIDD.DSLNN*kjrsa,kjCPLFPLWNN4hg!22U11irrFaaokjINNELLTPP4RTyRTlNMIjjnNMPPPqPL0mn.ds5mnFZZxYUdYUMNMegfRaa-sapgfnjjvgg|pp.ewlk_jj_jj>lkPmmPmm>lkUkkpgfpgfWaa ew0<<&>:&>:I,,#yt!ddhkjRkkvggEaaCyyCyy{yyayyFyy0fdrNMRLLOBN7NMsjhtsaSttCttcssXkjNjj|hh", -". xNMAhhWssZhh6mn~MM8mn4mnlNM-VB YUURT!~!o^~o^~yRT'UU6PL$VB-VBoPL6PL6PL-VB-VB-VBoPL6PL6PL-VB.VB9mnEjjIjjnNMdWEG}{|UUnhhnhhikj^NNPDD^NNLMMKNNPDDCPLoBNKNN^NN|SS|SSRDDcPLFPLQPPkIPkIPQPPCPLRDDPDD~NN[SSYDD2FD4FD9FD9FDGPLLMMnhh2sachh^NNkIPBTYCPLglkmssikjBTYVRTRDDjjjyttU11-21VttfjhPNNELLvIPL~!!~!$VBIjjsNM6PL.VBWjjkss,NMkPLaWE2RTlk>lk_jjbjj5fd apCqq/,,$>:^::$>:,q09tr~ddbjjpgf-saRaa ap]iiEtthrr|yy+kjRLL@PL.DSKMMkjjtsaGaaGaa7sa6fd7fd", -" vNM$mn|ssZhh$mn6mn$mn1mnUmmoVBIPPnRT~~~O^~-^~xYUwPL[NNfNMzNMoVBFZZFZZfNMfNMfNMzNM[NNoVB[NNDNN9mn_nnWjjsNMWPP6RTkNMtapnhhglk|SS*PL|SS^NN|SScPLcPLoBNKNN^NN|SS|SSPDDcPLQPPkIP7RTVRT7RTkIPcPLRDD/NNADS4FD7FD7FD&FD&FD&FDKNN*kjchh,kjRDDVRTHRTVRTslkgaaJhhhIPGRTBPLslkyapprrirrVttdjhPNN$PLWRR: p [UU5mnzNMFZZ,NM(ssZaa5mnIPPLQW2RTLmmAaaOytOyt#sabjjUkkpgfoapjyyPtt.ew,yttfdylk9CV:lk#fd#tr;21:1:&>:H<<,q0kyy~dd3fdWaa ap!pp]iiDrryqqzrr7fd3NM.DS.DS7NMwkjvhh7sa`yyVtt]yy6fd" -}; diff --git a/user/wxTest/wxTest.cpp b/user/wxTest/wxTest.cpp deleted file mode 100644 index a43d89fda8..0000000000 --- a/user/wxTest/wxTest.cpp +++ /dev/null @@ -1,581 +0,0 @@ -/* - * Program: wxTest - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifdef __GNUG__ -#pragma implementation "wxTest.h" -#endif - -#include "wxTest.h" - -#include "folder.xpm" -#include "list.xpm" -#include "test.xpm" - -//----------------------------------------------------------------------------- -// main program -//----------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//----------------------------------------------------------------------------- -// MyDialog -//----------------------------------------------------------------------------- - -const int ID_RETURN = 100; -const int ID_HELLO = 101; - -const int ID_CHECKBOX = 110; -const int ID_CHECKBOX_CHECK = 110; -const int ID_CHECKBOX_UNCHECK = 112; - -const int ID_TEXTCTRL = 115; -const int ID_TEXTCTRL_SET = 116; -const int ID_TEXTCTRL_DEL = 117; - -const int ID_CHOICE = 120; -const int ID_CHOICE_SEL_NUM = 121; -const int ID_CHOICE_SEL_STR = 122; -const int ID_CHOICE_CLEAR = 123; -const int ID_CHOICE_APPEND = 124; - -const int ID_LISTBOX = 130; -const int ID_LISTBOX_SEL_NUM = 131; -const int ID_LISTBOX_SEL_STR = 132; -const int ID_LISTBOX_CLEAR = 133; -const int ID_LISTBOX_APPEND = 134; - -const int ID_RADIOBOX = 130; -const int ID_RADIOBOX_SEL_NUM = 131; -const int ID_RADIOBOX_SEL_STR = 132; - -BEGIN_EVENT_TABLE(MyDialog,wxDialog) - EVT_BUTTON (ID_RETURN, MyDialog::OnReturnButton) - EVT_BUTTON (ID_HELLO, MyDialog::OnHelloButton) - EVT_CHECKBOX (ID_CHECKBOX, MyDialog::OnCheckBox) - EVT_BUTTON (ID_CHECKBOX_CHECK, MyDialog::OnCheckBoxButtons) - EVT_BUTTON (ID_CHECKBOX_UNCHECK, MyDialog::OnCheckBoxButtons) - EVT_TEXT (ID_TEXTCTRL, MyDialog::OnTextCtrl) - EVT_BUTTON (ID_TEXTCTRL_SET, MyDialog::OnTextCtrlButtons) - EVT_BUTTON (ID_TEXTCTRL_DEL, MyDialog::OnTextCtrlButtons) - EVT_CHOICE (ID_CHOICE, MyDialog::OnChoice) - EVT_BUTTON (ID_CHOICE_SEL_NUM, MyDialog::OnChoiceButtons) - EVT_BUTTON (ID_CHOICE_SEL_STR, MyDialog::OnChoiceButtons) - EVT_BUTTON (ID_CHOICE_CLEAR, MyDialog::OnChoiceButtons) - EVT_BUTTON (ID_CHOICE_APPEND, MyDialog::OnChoiceButtons) - EVT_LISTBOX (ID_LISTBOX, MyDialog::OnListBox) - EVT_BUTTON (ID_LISTBOX_SEL_NUM, MyDialog::OnListBoxButtons) - EVT_BUTTON (ID_LISTBOX_SEL_STR, MyDialog::OnListBoxButtons) - EVT_BUTTON (ID_LISTBOX_CLEAR, MyDialog::OnListBoxButtons) - EVT_BUTTON (ID_LISTBOX_APPEND, MyDialog::OnListBoxButtons) - EVT_RADIOBOX (ID_RADIOBOX, MyDialog::OnRadioBox) - EVT_BUTTON (ID_RADIOBOX_SEL_NUM, MyDialog::OnRadioBoxButtons) - EVT_BUTTON (ID_RADIOBOX_SEL_STR, MyDialog::OnRadioBoxButtons) -END_EVENT_TABLE() - -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(MyDialog, wxDialog) - -MyDialog::MyDialog( wxWindow *parent ) : - wxDialog( parent, -1, "TestDialog", wxPoint(20,100), wxSize(700,400), wxDIALOG_MODAL ) -{ - m_text1 = (wxStaticText *) NULL; - m_text2 = (wxStaticText *) NULL; - - (void)new wxStaticBox( this, -1, "CheckBox group", wxPoint(20,10), wxSize(140,180) ); - m_checkbox = new wxCheckBox( this, ID_CHECKBOX, "CheckBox", wxPoint(40,35), wxSize(100,30) ); - (void)new wxButton( this, ID_CHECKBOX_CHECK, "Check", wxPoint(40,85), wxSize(100,30) ); - (void)new wxButton( this, ID_CHECKBOX_UNCHECK, "Uncheck", wxPoint(40,135), wxSize(100,30) ); - - (void)new wxStaticBox( this, -1, "TextCtrl group", wxPoint(20,200), wxSize(140,180) ); - m_textctrl = new wxTextCtrl( this, ID_TEXTCTRL, "TextCtrl", wxPoint(40,35+190), wxSize(100,30) ); - (void)new wxButton( this, ID_TEXTCTRL_SET, "Set 'Hi!'", wxPoint(40,85+190), wxSize(100,30) ); - (void)new wxButton( this, ID_TEXTCTRL_DEL, "Delete", wxPoint(40,135+190), wxSize(100,30) ); - - wxString choices[4] = - { - "This", - "is", - "a", - "wonderfull example." - }; - - (void)new wxStaticBox( this, -1, "Choice group", wxPoint(180,10), wxSize(140,330) ); - m_choice = new wxChoice( this, ID_CHOICE, wxPoint(200,35), wxSize(100,30), 4, choices ); - (void)new wxButton( this, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(200,130), wxSize(100,30) ); - (void)new wxButton( this, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(200,180), wxSize(100,30) ); - (void)new wxButton( this, ID_CHOICE_CLEAR, "Clear", wxPoint(200,230), wxSize(100,30) ); - (void)new wxButton( this, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(200,280), wxSize(100,30) ); - - (void)new wxStaticBox( this, 100, "ListBox group", wxPoint(340,10), wxSize(140,330) ); - m_listbox = new wxListBox( this, ID_LISTBOX, wxPoint(360,35), wxSize(100,70), 4, choices ); - (void)new wxButton( this, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(360,130), wxSize(100,30) ); - (void)new wxButton( this, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(360,180), wxSize(100,30) ); - (void)new wxButton( this, ID_LISTBOX_CLEAR, "Clear", wxPoint(360,230), wxSize(100,30) ); - (void)new wxButton( this, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(360,280), wxSize(100,30) ); - - (void)new wxStaticBox( this, -1, "RadioBox group", wxPoint(500,10), wxSize(180,230) ); - m_radiobox = new wxRadioBox( this, ID_RADIOBOX, "Test", wxPoint(520,35), wxSize(-1,-1), 4, choices, - 1, wxRA_VERTICAL ); - - (void)new wxButton( this, ID_HELLO, "wxScreenDC", wxPoint(540,280), wxSize(120,40) ); - (void)new wxButton( this, ID_RETURN, "Return", wxPoint(540,340), wxSize(120,40) ); - - m_text1 = new wxStaticText( this, -1, "No event.", wxPoint(170,350), wxSize(300,-1) ); - m_text2 = new wxStaticText( this, -1, "No information.", wxPoint(170,370), wxSize(300,-1) ); - - InitDialog(); -}; - -void MyDialog::OnTextCtrl( wxCommandEvent &WXUNUSED(event) ) -{ -}; - -void MyDialog::OnTextCtrlButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_TEXTCTRL_SET: - { - m_textctrl->SetValue( "Hi!" ); - break; - }; - case ID_TEXTCTRL_DEL: - { - m_textctrl->Clear(); - break; - }; - }; -}; - -void MyDialog::OnRadioBox( wxCommandEvent &event ) -{ - if (!m_text1) return; - m_text1->SetLabel( "RadioBox Event:"); - wxString tmp = "RadioBox selection string is: "; - tmp += event.GetString(); - m_text2->SetLabel( tmp ); -}; - -void MyDialog::OnRadioBoxButtons( wxCommandEvent &WXUNUSED(event) ) -{ -}; - -void MyDialog::OnListBox( wxCommandEvent &event ) -{ - if (!m_text1) return; - m_text1->SetLabel( "ListBox Event:"); - wxString tmp = "ListBox selection string is: "; - tmp += event.GetString(); - m_text2->SetLabel( tmp ); -}; - -void MyDialog::OnListBoxButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_LISTBOX_SEL_NUM: - { - m_listbox->SetSelection( 2 ); - break; - }; - case ID_LISTBOX_SEL_STR: - { - m_listbox->SetStringSelection( "This" ); - break; - }; - case ID_LISTBOX_CLEAR: - { - m_listbox->Clear(); - break; - }; - case ID_LISTBOX_APPEND: - { - m_listbox->Append( "Hi!" ); - break; - }; - }; -}; - -void MyDialog::OnCheckBox( wxCommandEvent &event ) -{ - if (!m_text1) return; - m_text1->SetLabel( "CheckBox Event:"); - wxString tmp = "Checkbox is "; - if (event.Checked()) - tmp += "checked."; - else - tmp += "unchecked."; - m_text2->SetLabel( tmp ); -}; - -void MyDialog::OnCheckBoxButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_CHECKBOX_CHECK: - { - m_checkbox->SetValue( TRUE ); - break; - }; - case ID_CHECKBOX_UNCHECK: - { - m_checkbox->SetValue( FALSE ); - break; - }; - }; -}; - -void MyDialog::OnChoice( wxCommandEvent &event ) -{ - if (!m_text1) return; - m_text1->SetLabel( "Choice Event:"); - wxString tmp = "Choice selection string is: "; - tmp += event.GetString(); - m_text2->SetLabel( tmp ); -}; - -void MyDialog::OnChoiceButtons( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_CHOICE_SEL_NUM: - { - m_choice->SetSelection( 2 ); - break; - }; - case ID_CHOICE_SEL_STR: - { - m_choice->SetStringSelection( "This" ); - break; - }; - case ID_CHOICE_CLEAR: - { - m_choice->Clear(); - break; - }; - case ID_CHOICE_APPEND: - { - m_choice->Append( "Hi!" ); - break; - }; - }; -}; - -void MyDialog::OnReturnButton( wxCommandEvent &WXUNUSED(event) ) -{ - EndModal( 1 ); -}; - -void MyDialog::OnHelloButton( wxCommandEvent &WXUNUSED(event) ) -{ - wxMessageDialog *dialog; - dialog = new wxMessageDialog( this, "Now, I will paint on Screen.", "wxGTK" ); - dialog->ShowModal(); - delete dialog; - - wxScreenDC dc; - dc.StartDrawingOnTop(); - - int w = wxSystemSettings::GetSystemMetric( wxSYS_SCREEN_X ); - int h = wxSystemSettings::GetSystemMetric( wxSYS_SCREEN_Y ); - - dc.SetPen( *wxWHITE_PEN ); - dc.SetBrush( *wxTRANSPARENT_BRUSH ); - for (int i = 0; i < h; i += 3) dc.DrawLine( 0, i, w, i ); - - dialog = new wxMessageDialog( this, "Now, the stripes will disappear.", "wxGTK" ); - dialog->ShowModal(); - delete dialog; - - dc.EndDrawingOnTop(); -}; - -//----------------------------------------------------------------------------- -// MyCanvas -//----------------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(MyCanvas, wxScrolledWindow) - -BEGIN_EVENT_TABLE(MyCanvas,wxScrolledWindow) - EVT_BUTTON (100, MyDialog::OnReturnButton) - EVT_PAINT (MyCanvas::OnPaint) -END_EVENT_TABLE() - -MyCanvas::MyCanvas( wxWindow *parent, const wxWindowID id, const wxPoint &pos, const wxSize &size ) - : wxScrolledWindow( parent, id, pos, size, wxSUNKEN_BORDER ) -{ - my_bitmap = new wxBitmap( folder_xpm ); - my_horse = new wxBitmap( test_xpm); - my_backstore = new wxBitmap( 150, 150 ); - my_font = new wxFont( 20, wxROMAN, wxNORMAL, wxNORMAL ); - m_isCreated = FALSE; - - SetBackgroundColour( wxColour("Wheat") ); -}; - -MyCanvas::~MyCanvas(void) -{ - delete my_bitmap; - delete my_backstore; - delete my_horse; - delete my_font; -}; - -void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - wxPaintDC dc( this ); - PrepareDC( dc ); - - wxMemoryDC memDC; - memDC.SelectObject( *my_backstore ); - memDC.Clear(); - memDC.SetBrush( *wxBLACK_BRUSH ); - memDC.SetPen( *wxWHITE_PEN ); - memDC.DrawRectangle( 0, 0, 150, 150 ); - memDC.SetTextForeground( *wxWHITE ); - memDC.DrawText( "This is a memory dc.", 10, 10 ); - - int vx = 0; - int vy = 0; - GetVirtualSize( &vx, &vy ); - dc.DrawLine( 5, 5, vx-10, vy-10 ); - dc.DrawLine( 10, 20, 100, 10 ); - dc.DrawLine( 10, 20, 100, 50 ); - dc.DrawLine( 10, 20, 100, 100 ); - - dc.SetPen( *wxWHITE_PEN ); - dc.DrawLine( 80, 50, 180, 50 ); - - dc.SetFont( *my_font ); - - long x = 0; - long y = 0; - dc.GetTextExtent( "Hej, ho, hej, ho.", &x, &y ); - - dc.SetBrush( *wxTRANSPARENT_BRUSH ); - dc.DrawRectangle( 80, 40, x, y ); - - dc.SetTextForeground( *wxGREEN ); - dc.DrawText( "Hej, ho, hej, ho.", 80, 40 ); - - dc.SetTextForeground( *wxBLACK ); - dc.SetFont( *wxNORMAL_FONT ); - dc.DrawText( "Hej, ho, hej, ho. (NormalFont)", 80, 60 ); - dc.SetFont( *wxSMALL_FONT ); - dc.DrawText( "Hej, ho, hej, ho. (SmallFont)", 80, 80 ); - dc.SetFont( *wxITALIC_FONT ); - dc.DrawText( "Hej, ho, hej, ho. (ItalicFont)", 80, 100 ); - - dc.DrawBitmap( *my_bitmap, 30, 80, TRUE ); - dc.DrawBitmap( *my_horse, 30, 120 ); - - dc.Blit( 200, 200, 150, 150, &memDC, 0, 0, 0 ); - - memDC.SelectObject( wxNullBitmap ); - -/* - dc.SetBrush( *wxBLACK_BRUSH ); - dc.DrawRectangle( 50, 50, 50, 50 ); - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( 101, 50, 50, 50 ); - dc.DrawRectangle( 50, 101, 50, 50 ); - - dc.SetBrush( *wxWHITE_BRUSH ); - - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( 70, 70, 2, 2 ); - - dc.SetPen( *wxRED_PEN ); - dc.DrawRectangle( 72, 70, 2, 2 ); - dc.DrawRectangle( 70, 72, 2, 2 ); - - - dc.SetPen( *wxRED_PEN ); - dc.DrawRectangle( 82, 80, 2, 2 ); - dc.DrawRectangle( 80, 82, 2, 2 ); - - dc.SetPen( *wxWHITE_PEN ); - dc.DrawRectangle( 80, 80, 2, 2 ); -*/ -}; - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -const ID_OPEN = 101; -const ID_SAVE = 102; -const ID_MSG = 103; -const ID_FONT = 104; -const ID_DLG = 105; -const ID_QUIT = 108; -const ID_ABOUT = 109; - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - -BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU (ID_OPEN, MyFrame::OnOpenDialog) - EVT_MENU (ID_FONT, MyFrame::OnFontDialog) - EVT_MENU (ID_MSG, MyFrame::OnMsg) - EVT_MENU (ID_DLG, MyFrame::OnDialog) - EVT_MENU (ID_ABOUT, MyFrame::OnAbout) - EVT_MENU (ID_QUIT, MyFrame::OnQuit) -END_EVENT_TABLE() - -MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, (char *) "Robert's Test application", wxPoint(20,20), wxSize(470,360) ) -{ -/* - wxMenu *file_menu = new wxMenu( "Test" ); - file_menu->Append( ID_OPEN, "Open.."); - file_menu->Append( ID_MSG, "MessageBox.."); - file_menu->Append( ID_FONT, "FontDialog.."); - file_menu->AppendSeparator(); - file_menu->Append( ID_DLG, "TestDialog.."); - file_menu->AppendSeparator(); - file_menu->Append( ID_ABOUT, "About.."); - file_menu->Append( ID_QUIT, "Exit"); - - wxMenuBar *menu_bar = new wxMenuBar(); - menu_bar->Append(file_menu, "File"); - menu_bar->Show( TRUE ); - - SetMenuBar( menu_bar ); -*/ - - CreateStatusBar( 2 ); - - SetStatusText( "wxGTK v0.12", 0 ); - SetStatusText( "Copyright 1998 Robert Roebling.", 1 ); - - m_canvas = new MyCanvas( this, -1, wxPoint(2,62), wxSize(300-4,120-4) ); - m_canvas->SetScrollbars( 10, 10, 50, 50 ); - - m_tb = CreateToolBar(); - m_tb->AddTool( 0, wxBitmap( list_xpm ), wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, "This is a button" ); - m_tb->AddTool( 0, wxBitmap( folder_xpm ), wxNullBitmap, TRUE, -1, -1, (wxObject *) NULL, "This is a toggle" ); - m_tb->Realize(); - -// m_timer.Start( 1000, TRUE ); -}; - -void MyFrame::OnDialog( wxCommandEvent &WXUNUSED(event) ) -{ - MyDialog *dialog = new MyDialog( this ); - dialog->ShowModal(); - dialog->Close( TRUE ); -}; - -void MyFrame::OnFontDialog( wxCommandEvent &WXUNUSED(event) ) -{ - wxFontData data; - data.SetInitialFont( wxSMALL_FONT ); - data.SetColour( wxRED ); - wxGenericFontDialog dialog( this, &data ); - if (dialog.ShowModal() == wxID_OK) - { - wxFontData retData = dialog.GetFontData(); - // do something - }; -}; - -void MyFrame::OnOpenDialog( wxCommandEvent &WXUNUSED(event) ) -{ - wxFileDialog dialog(this, "Testing open file dialog", "", "", "*.txt", 0); - if (dialog.ShowModal() == wxID_OK) - { - wxMessageDialog dialog2(this, dialog.GetPath(), "Selected path"); - dialog2.ShowModal(); - }; -}; - -void MyFrame::OnMsg( wxCommandEvent &WXUNUSED(event) ) -{ - wxMessageBox( "There once was a lady from Riga.", "TestBox.", wxYES_NO ); -}; - -void MyFrame::OnQuit( wxCommandEvent &WXUNUSED(event) ) -{ - Close( TRUE ); -}; - -void MyFrame::OnAbout( wxCommandEvent &WXUNUSED(event) ) -{ - wxDialog dialog( this, -1, "About wxGTK", wxPoint(100,100), wxSize(540,350), wxDIALOG_MODAL ); - - int w = 0; - int h = 0; - dialog.GetSize( &w, &h ); - - int x = 30; - int y = 20; - int step = 20; - - (void)new wxStaticBox( &dialog, -1, (const char*)NULL, wxPoint(10,10), wxSize(w-20,h-80) ); - - (void)new wxStaticText( &dialog, -1, "wxGTK v0.12", wxPoint(240,y) ); - y += 2*step-10; - - (void)new wxStaticText( &dialog, -1, "Written by Robert Roebling, 1998. More information at:", wxPoint(x,y) ); - y += step; - (void)new wxStaticText( &dialog, -1, "http://www.freiburg.linux.de/~wxxt", wxPoint(x+50,y) ); - y += 2*step; - - (void)new wxStaticText( &dialog, -1, - "wxGTK is based on the wxWindows GUI-library written mainly by Julian Smart. See:", wxPoint(x,y) ); - y += step; - (void)new wxStaticText( &dialog, -1, "http://web.ukonline.co.uk/julian.smart/wxwin", wxPoint(x+50,y) ); - y += 2*step; - - (void)new wxStaticText( &dialog, -1, "wxWindows Copyright: Less restrictive version of LGPL.", wxPoint(x,y) ); - y += 2*step; - (void)new wxStaticText( &dialog, -1, "For questions concerning wxGTK, you may mail to:", wxPoint(x,y) ); - y += step; - (void)new wxStaticText( &dialog, -1, "roebling@ruf.uni-freiburg.de", wxPoint(x+50,y) ); - - (void) new wxButton( &dialog, wxID_OK, "Return", wxPoint(w/2-40,h-50), wxSize(80,30) ); - - dialog.ShowModal(); -}; - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -MyApp::MyApp(void) : - wxApp( ) -{ -}; - -bool MyApp::OnInit(void) -{ - wxFrame *frame = new MyFrame(); - frame->Show( TRUE ); - - return TRUE; -}; - - - - - diff --git a/user/wxTest/wxTest.h b/user/wxTest/wxTest.h deleted file mode 100644 index d439960a25..0000000000 --- a/user/wxTest/wxTest.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Program: wxTest - * - * Author: Robert Roebling - * - * Copyright: (C) 1997, GNU (Robert Roebling) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __TESTH__ -#define __TESTH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/wx.h" -#include "wx/dcscreen.h" -#include "wx/splitter.h" -#include "wx/toolbar.h" -#include "wx/fontdlg.h" - -//----------------------------------------------------------------------------- -// derived classes -//----------------------------------------------------------------------------- - -class MyDialog; -class MyFrame; -class MyApp; - -//----------------------------------------------------------------------------- -// MyTimer -//----------------------------------------------------------------------------- - -class MyTimer: public wxTimer -{ - public: - - MyTimer(void) {}; - void Notify(void) - { - printf( "OnTimer.\n" ); - }; -}; - -//----------------------------------------------------------------------------- -// MyDialog -//----------------------------------------------------------------------------- - -class MyDialog: public wxDialog -{ - DECLARE_DYNAMIC_CLASS(MyDialog) - - public: - - MyDialog(void) {}; - MyDialog( wxWindow *parent ); - - void OnReturnButton( wxCommandEvent &event ); - void OnHelloButton( wxCommandEvent &event ); - - void OnCheckBox( wxCommandEvent &event ); - void OnCheckBoxButtons( wxCommandEvent &event ); - - void OnTextCtrl( wxCommandEvent &event ); - void OnTextCtrlButtons( wxCommandEvent &event ); - - void OnChoice( wxCommandEvent &event ); - void OnChoiceButtons( wxCommandEvent &event ); - - void OnListBox( wxCommandEvent &event ); - void OnListBoxButtons( wxCommandEvent &event ); - - void OnRadioBox( wxCommandEvent &event ); - void OnRadioBoxButtons( wxCommandEvent &event ); - - wxCheckBox *m_checkbox; - wxTextCtrl *m_textctrl; - wxChoice *m_choice; - wxListBox *m_listbox; - wxRadioBox *m_radiobox; - wxStaticText *m_text1; - wxStaticText *m_text2; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// MyCanvas -//----------------------------------------------------------------------------- - -class MyCanvas: public wxScrolledWindow -{ - DECLARE_DYNAMIC_CLASS(MyCanvas) - - public: - - MyCanvas(void) {}; - MyCanvas( wxWindow *parent, wxWindowID, const wxPoint &pos, const wxSize &size ); - ~MyCanvas(void); - void OnPaint( wxPaintEvent &event ); - - wxBitmap *my_bitmap; - wxBitmap *my_horse; - wxBitmap *my_backstore; - wxFont *my_font; - bool m_isCreated; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -class MyFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(MyFrame) - - public: - - MyFrame(void); - void OnSize( wxSizeEvent &event ); - void OnOpenDialog( wxCommandEvent &event ); - void OnFontDialog( wxCommandEvent &event ); - void OnMsg( wxCommandEvent &event ); - void OnDialog( wxCommandEvent &event ); - void OnAbout( wxCommandEvent &event ); - void OnQuit( wxCommandEvent &event ); - - wxToolBar *m_tb; - MyCanvas *m_canvas; - - MyTimer m_timer; - - DECLARE_EVENT_TABLE() -}; - -//----------------------------------------------------------------------------- -// MyApp -//----------------------------------------------------------------------------- - -class MyApp: public wxApp -{ - public: - - MyApp(void); - virtual bool OnInit(void); -}; - -#endif // wxGTK_h diff --git a/utils/HelpGen/include/cjparser.h b/utils/HelpGen/include/cjparser.h deleted file mode 100644 index 384b2b147f..0000000000 --- a/utils/HelpGen/include/cjparser.h +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Implementation of C++/Java parser -// compatible with SourceParserBase interface -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __CJPARSESR_G__ -#define __CJPARSESR_G__ - -#include "srcparser.h" - -#include -#include -#include -#include - -// class parses given "memory-resident" Java or C++ source code -// and captures information about classes/attrubutes/methods/ -// arguments/etc into structures. Conforms with SourceParserBase -// interface requirements. - -class CJSourceParser : public SourceParserBase -{ -protected: - // begining of the full-text area of the source file - char* mpStart; - - // points to first character after the end - // of teh full-text area - char* mpEnd; - - // current "privacy level" - int mCurVis; - - // current parsing position int full-text area - char* cur; - - // about the current class - bool mIsVirtual; - bool mIsTemplate; - size_t mNestingLevel; - - // context data for which is currently being collected - spContext* mpCurCtx; - - int mCurCtxType; // type of the current context - - bool mCommentsOn; - bool mMacrosOn; - -protected: - - void AttachComments( spContext& ctx, char* cur ); - void ParseKeyword( char*& cur ); - bool ParseNameAndRetVal( char*& cur, bool& isAMacro ); - bool ParseArguments( char*& cur ); - void ParseMemberVar( char*& cur ); - void SkipFunction( char*& cur ); - void SkipFunctionBody( char*& cur ); - bool CheckVisibilty( char*& cur ); - - void AddClassNode( char*& cur ); - void AddMacroNode( char*& cur ); - void AddEnumNode( char*& cur ); - void AddTypeDefNode( char*& cur ); - - void DumpOperationInfo( spOperation& info, const string& tab, ostream& os ); - void DumpClassHeader( spClass& info, ostream& os ); - void DumpClassBody( spClass& info, ostream& os ); - -public: - - // NOTE:: discarding of macros or comments improves performance and - // decreases memory usage - - CJSourceParser(bool collectCommnets = 1, - bool collectMacros = 1); - - // returns the root-node of the created context tree - // (user is responsible for releasing it from the heep) - // "end" should point to the last (character + 1) of the - // source text - - virtual spFile* Parse( char* start, char* end ); -}; - -// inline'ed helpers used (just info): -/* -static inline void skip_to_eol( char*& cur ); -static inline void skip_eol( char*& cur ); -static inline bool skip_to_next_comment_in_the_line( char*& cur ); -static void skip_to_prev_line( char*& cur ); -static inline void skip_comments( char*& cur ); -static inline void clear_commets_queue(); -static inline void skip_quoted_string( char*& cur ); -static inline bool get_next_token( char*& cur ); -static inline void skip_preprocessor_dir( char*& cur ); -static void skip_token( char*& cur ); -static inline size_t get_token_len( char* tok ); -static inline bool cmp_tokens( char* tok1, char* tok2 ); -static inline bool cmp_tokens_fast( char* tok1, char* tok2, size_t len ); -static inline void skip_tempalate_statement( char*& cur ); -static inline void skip_statement( char*& cur ); -static inline void skip_token_back( char*& cur ); -static inline void skip_next_token_back( char*& cur ); -static string get_token_str( char* cur ); -static size_t skip_block( char*& cur ); -static inline bool skip_imp_block( char*& cur ); -static bool is_class_token( char*& cur ); -inline static bool is_forward_decl( char* cur ); -inline static bool is_function( char* cur, bool& isAMacro ); -static inline void skip_scope_block( char*& cur ); -static void arrange_indirection_tokens_between( string& type, string& identifier ); -static bool is_keyword( char* cur ); -static inline void get_string_between( char* start, char* end, string* pStr ); -static char* set_comment_text( string& text, char* start ); -*/ - -#endif diff --git a/utils/HelpGen/include/docripper.h b/utils/HelpGen/include/docripper.h deleted file mode 100644 index 23ae9ac4f0..0000000000 --- a/utils/HelpGen/include/docripper.h +++ /dev/null @@ -1,157 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __DOCRIPPER_G__ -#define __DOCRIPPER_G__ - -#include "scriptbinder.h" -#include "srcparser.h" -#include "sourcepainter.h" - -#if defined( wxUSE_TEMPLATE_STL ) - - #include - - typedef vector STemplateListT; - -#else - - #include "wxstlvec.h" - - typedef ScriptTemplate* ScriptTemplatePtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY(ScriptTemplatePtrT) STemplateListT; - -#endif - - -// specific DocGenerator class for "Ripper", -// also acts as source code visitor - -class RipperDocGen : public DocGeneratorBase, public spVisitor -{ -protected: - // templates for various sections - ScriptTemplate mTopTempl; - ScriptTemplate mContentIdxTempl; - ScriptTemplate mSuperContentTempl; - ScriptTemplate mSubContentTempl; - ScriptTemplate mOutLineTempl; - ScriptTemplate mOutLine1Templ; - - // template used for corss-references - ScriptTemplate mRefTempl; - - // template used to show not-existing sections - ScriptTemplate mDeadRefTempl; - - // template collection for generation of class-tree - STemplateListT mTreeTemplates; - - // pointers to all major index sections - ScriptSection* mpTopIdx; - ScriptSection* mpClassIdx; - ScriptSection* mpEnumIdx; - ScriptSection* mpTypeDefIdx; - ScriptSection* mpMacroIdx; - ScriptSection* mpGlobalVarsIdx; - ScriptSection* mpGlobalFuncIdx; - ScriptSection* mpConstIdx; - - // parser set up from user-code for sepcific language - SourceParserBase* mpParser; - - // class section, which is currently being - // assembled - ScriptSection* mpCurClassSect; - - // source syntax heighlighter object - SourcePainter mSrcPainter; - - // context, to which all file contexts - // are assembled - spContext* mpFileBinderCtx; - - // script tags set up from usesr code - MarkupTagsT mTags; - -protected: - // helpers - void AppendComments( spContext& fromContext, string& str ); - - void AppendMulitilineStr( string& st, string& mlStr ); - - void AppendHighlightedSource( string& st, string source ); - - // returns TRUE, if no comments found in the context, - // plus, creates dummy(empty) section, and puts a - // reference woth "dead-link" template to it in the - // given index-section "toSect" - - bool CheckIfUncommented( spContext& ctx, ScriptSection& toSect ); - - // checks if context has any comments, then returns - // template of normal reference, otherwise of dead reference - - ScriptTemplate* GetRefTemplFor( spContext& ctx ); - - // adds "someClass::" perfix to the context name, - // if it's not in the file scope (i.e. if it's not global) - - string GetScopedName( spContext& ofCtx ); - - // adds section to currently assembled class section - // and places references to it from "public", "protected" - // or "private" indexing-subsections of the class, depending - // on the visibility of the context - - void AddToCurrentClass( ScriptSection* pSection, spContext& ctx, - const char* subSectionName ); - - // called, after all files are processed, to - // resolve possible super/derived class relations, - // and put cross references to them - where resolution was - // successful - void LinkSuperClassRefs(); - - // implementations of "visiting procedures", declared in spVisitor - - virtual void VisitClass( spClass& cl ); - virtual void VisitEnumeration( spEnumeration& en ); - virtual void VisitTypeDef( spTypeDef& td ); - virtual void VisitPreprocessorLine( spPreprocessorLine& pd ); - virtual void VisitAttribute( spAttribute& attr ); - virtual void VisitOperation( spOperation& op ); - - // overriden member of DocGernatorBase - - virtual bool OnSaveDocument( ScriptStream& stm ); - - virtual ScriptSection* GetTopSection() - { return mpTopIdx; } - -public: - RipperDocGen(); - ~RipperDocGen(); - - // should be called onece to set user-code provided, - // parser for specific source code language - // (NOTE:: it's the user-code's responsibility to - // relseas memory of pParser) - - void Init( SourceParserBase* pParser ); - - // should be called on each file - - void ProcessFile( const char* sourceFile ); -}; - - -#endif \ No newline at end of file diff --git a/utils/HelpGen/include/ifcontext.h b/utils/HelpGen/include/ifcontext.h deleted file mode 100644 index 80014c88f3..0000000000 --- a/utils/HelpGen/include/ifcontext.h +++ /dev/null @@ -1,100 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 27/12/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __IFCONTEXT_G__ -#define __IFCONTEXT_G__ - -#include "srcparser.h" -#include "cjparser.h" - -class spBookmark -{ -public: - size_t mFrom; - size_t mLen; - size_t mFileNo; - - inline spBookmark() {} - - inline spBookmark( int from, int len, int fileNo ) - : mFrom( from ), mLen( len ), mFileNo( fileNo ) - {} -}; - -#if defined( wxUSE_TEMPLATE_STL ) - - typedef vector - - #ifdef WIN32 - #include - #else - #include - #include - #endif - -#else - - #include "wxstlvec.h" - #include "wx/string.h" - - // FIXME:: dirty! - typedef wxString string; - -#endif - -#ifndef ASSERT -// assert yourself -#define ASSERT(x) if (!(x) ) throw; -#endif - -#include "markup.h" - -// just another portable stream class... - -class ScriptStream -{ -protected: - char* mpBuf; - size_t mSize; - size_t mCapacity; -public: - ScriptStream(); - ~ScriptStream(); - - void WriteBytes( const void* srcBuf, size_t count ); - - ScriptStream& operator<<( const char* str ); - ScriptStream& operator<<( const string& str ); - ScriptStream& operator<<( char ch ); - - void endl(); - - inline char* GetBuf() { return mpBuf; } - inline size_t GetBufSize() { return mSize; } - - // clears current contents of the stream - void Reset() { mSize = 0; } -}; - - -class ScriptTemplate; - -// used internally by ScriptTemplate - -enum TEMPLATE_VARIABLE_TYPES -{ - TVAR_INTEGER, - TVAR_STRING, - TVAR_DOUBLE, - TVAR_REF_ARRAY -}; - -// helper structures used only by ScriptTemplate - -struct TVarInfo -{ -public: - const char* mName; - int mType; - int mOfs; - - TVarInfo( const char* name, int ofs, int varType ) - : mName(name), - mType( varType ), - mOfs( ofs ) - {} -}; - -struct TArrayInfo : public TVarInfo -{ -public: - int mRefOfs; - int mSizeIntOfs; - int mObjRefTemplOfs; - - TArrayInfo( const char* name ) - : TVarInfo( name, 0, TVAR_REF_ARRAY ) - {} -}; - -// stores offset of the given member (of the given class) -// to (*pOfs), though the use of template classes would have -// solved this problem in much clearer fashion - -// FOR NOW:: obtaining physical offset of class member -// does not appeare to be protable across compilers? -// FIXME:: +/- 1 problem - -#ifdef __UNIX__ - #define WEIRD_OFFSET 1 -#else - #define WEIRD_OFFSET 0 - -#endif - -#define GET_VAR_OFS( className, varName, pOfs ) \ - { \ - int* className::* varPtr; \ - varPtr = (int* className::*)&className::varName; \ - \ - (*pOfs) = int(*(int*)&varPtr)-WEIRD_OFFSET; \ - } - -class ScriptSection; - -#if defined( wxUSE_TEMPLATE_STL ) - - typedef vector TVarListT; - - // container class for sections - typedef vector SectListT; - -#else - - typedef TVarInfo* TVarInfoPtrT; - typedef ScriptSection* ScriptSectionPtrT; - - typedef WXSTL_VECTOR_SHALLOW_COPY(TVarInfoPtrT) TVarListT; - - // container class for sections - typedef WXSTL_VECTOR_SHALLOW_COPY(ScriptSectionPtrT) SectListT; - -#endif - -// class performs preprocessing of arbitrary scripts, -// replaces identifiers enclosed in $(..) tag, whith -// values of the corresponding class member variables - -class ScriptTemplate -{ -protected: - // do not use string object here - parsing of - // C string can be much faster (in debug v.) - char* mTText; - - - TVarListT mVars; - - inline void PrintVar( TVarInfo* pInfo, - void* dataObj, - ScriptStream& stm ); - -public: - ScriptTemplate( const string& templateText ); - virtual ~ScriptTemplate(); - - bool HasVar( const char* name ); - - // Member variables registration methods. - - // NOTE:: GET_VAR_OFS() macro should be used - // to get offset of the class member (see #define above) - void AddStringVar ( const char* name, int ofs ); - void AddIntegerVar( const char* name, int ofs ); - void AddDoubleVar ( const char* name, int ofs ); - - void AddObjectRefArray( const char* name, - int ofsRefToFirstObj, - int ofsObjSizeInt, - int ofsObjRefTempl - ); - - // reads the script, replaces $(..) tags with values - // of registered members of dataObj object, and outputs - // the result to given text stream - - void PrintScript( void* dataObj, ScriptStream& stm ); -}; - -class ScriptSection; - -// class manages section and aggregated sections of -// inter-linked documents - -class ScriptSection -{ -protected: - - // NOTE:: "$(NAME)", $(ID), "$(BODY)" and "$(REFLIST)" aree - // reseved template variables of ScriptSection - - // the below there members are registered to ScriptTemplate, - // GUID within the section tree (numeric) - - ScriptSection* mpParent; - string mId; // $(ID) - string mName; // $(NAME) - string mBody; // $(BODY) - - // NULL, if this section is not aggregated anywhere - - SectListT mSubsections; // aggregated sectons - SectListT mReferences; // registered as $(REFLIST) - - bool mAutoHide; // see autoHide arg, in constructor - bool mSortOn; // TRUE, if sort subsectons by naem - - // tempalte for this section - ScriptTemplate* mpSectTempl; - - // template used for links (or references) to this section - ScriptTemplate* mpRefTempl; - - // do not call destructor of this object, - // call RemoveRef() instead - int mRefCount; - - static int mIdCounter; // generator of GUIDs - - // fields registered and used by ScriptTemplate object - void* mRefFirst; - int mArrSize; - -protected: - virtual void AddRef(); - virtual void RemoveRef(); - void DoRemoveEmptySections(int& nRemoved, SectListT& removedLst); - void DoRemoveDeadLinks( SectListT& removedLst); - -public: - - // NOTE:: pass NULL to certain template, if your sure - // this kind of template will never be used, - // e.g. if section is contained but never referrenced, - // then pReferenceTemplate can be NULL - - // if autoHide option is TRUE, the section will be automatically - // collapsed (not shown) if it doesn't contain any references - // to other sections (e.g. could be usefull for autoamically - // hiding empty index-sections). - - ScriptSection( const string& name = "", - const string& body = "", - ScriptTemplate* pSectionTemplate = NULL, - ScriptTemplate* pReferenceTemplate = NULL, - bool autoHide = FALSE, - bool sorted = FALSE - ); - - // calls RemoveRef() to all aggreagated sections first, - // then to all referenced section - this way all - // sections (even not aggregated ones) become "garbage-collected" - - // NOTE:: do not call destructor directlly, call RemoveRef() - // instead - virtual ~ScriptSection(); - - - // if addToReferencesToo is TRUE, section is aggregated and - // also added to reference list of this section - - void AddSection( ScriptSection* pSection, bool addToReferencesToo = FALSE ); - - // add cross-reference to this given section - void AddReference( ScriptSection* pReferredSection ); - - // subsection may be given of variable depth level, - // e.g. "publications/reviews/software" - - ScriptSection* GetSubsection( const char* name ); - - // returns list aggregated sections - SectListT& GetSubsections(); - - // binds reserved template names ( $(..) ) to member - // vairalbes in the ScriptSection class, should be called - // to initialize each user-code provided script template - - static void RegisterTemplate( ScriptTemplate& sectionTempalte ); - - // prints out section tree to the stream, starting from - // this section as a root node - virtual void Print( ScriptStream& stm ); - - // searches empty sections which has autoHide == TRUE, - // and colapses them (this method should be called ) - // on the root-section of the sections tree - - // NOTE:: does not work properly, yet! - void RemoveEmptySections(); -}; - -// base class for documnetation generators -// (allows user code set up target script type, -// independently of documentation type) - -class DocGeneratorBase -{ -protected: - MarkupTagsT mTags; - - // override this method to do some post processing - // after generation of document, or even write some - // data into output stream, before the section tree - // is flushed into it. - - // return FALSE, if something has gone wrong and - // document cannot be saved now - - virtual bool OnSaveDocument( ScriptStream& stm ) - { return 1; } - - // override this method to provide reference to - // the top section of the document (used as default - // starting section when saving a document) - - virtual ScriptSection* GetTopSection() - { return 0; } - -public: - - DocGeneratorBase() - : mTags(0) // no defaul script - {} - - // dectrouctors of polymorphic classes SHOULD be virtual - virtual ~DocGeneratorBase() {} - - // returns tags, being used for specific target script - MarkupTagsT GetScriptMarkupTags() { return mTags; } - - // sets tag array for specific script - - // NOTE:: Why virtual? since approach with MarkupTagsT is - // "flowless" only in theory. Overriding this method - // allows document generators to check the type of the - // target script, and perhaps make some modifications - // to generator's tamplates, to match the specific script - - virtual void SetScriptMarkupTags( MarkupTagsT tags ) - { mTags = tags; } - - // seves document to file starting from the root-node of - // the document (provided by GetTopSection() method), - // or from "pFromSection" if it's not NULL. - - // fopenOptions arg. is string passed to fopen() method, - // returns TRUE, if saving was successfull - - virtual bool SaveDocument( const char* fname, - const char* fopenOptions = "w", - ScriptSection* pFromSection = NULL - ); - -}; - -#endif diff --git a/utils/HelpGen/include/sourcepainter.h b/utils/HelpGen/include/sourcepainter.h deleted file mode 100644 index 333059a03a..0000000000 --- a/utils/HelpGen/include/sourcepainter.h +++ /dev/null @@ -1,104 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SOURCEPAINTER_G__ -#define __SOURCEPAINTER_G__ - -#ifndef ASSERT -#define ASSERT(x) if (!(x)) throw -#endif - -#if defined( wxUSE_TEMPLATE_STL ) - - #include - typedef vector SPBlockListT; - - #ifdef WIN32 - #include - #else - #include - #include - #endif -#else - - #include "wxstlvec.h" - #include "wx/string.h" - - // FIXME:: dirty! - #define string wxString - - typedef WXSTL_VECTOR_SHALLOW_COPY(int) SPBlockListT; - -#endif - -#include "markup.h" // import MarkupTagsT definition - -// "colored" codes for highlighted blocks - -#define RANK_BLACK 0 // common source fragments -#define RANK_BLUE 1 // basic types -#define RANK_RED 2 // reserved words -#define RANK_GREEN 3 // comments - -// colored block description format : -// int( ( rank << 16 ) | ( source_range_len ) ) - - -// FOR NOW:: no lagnguage-map selection - -// source code syntax heighlighter (CPP+JAVA+VB+PASCAL) - -class SourcePainter -{ -protected: - string mResultStr; - SPBlockListT mBlocks; - bool mCollectResultsOn; - - // state variables - bool mIsInComment; - bool mCommentIsMultiline; -public: - - // assembleResultString == TRUE - instructs painter - // to collect each chunk of srouce passed to ProcessSource(), - // so that results cann be futher obtained in a single string - // instead of vector of block descriptions - - SourcePainter( bool assembleResultString = TRUE ); - virtual ~SourcePainter() {} - - // can be called multiple times (e.g. on each source line) - void ProcessSource( char* src, int srcLen ); - - // method, for manually adjusting state of source painter - void SetState( bool isInComment, - bool commentIsMultiline ); - - // reinitializes object - clears results of previouse processing - void Init( bool assembleResultString = TRUE ); - - // generates string of highlighted source for the scipting - // language given by "tags" argument - - virtual void GetResultString(string& result, MarkupTagsT tags); - - // returns vector of block descriptors, see SPBlockListT definition - // (block descriptors can be used for fast custom hightlighted text generation) - - SPBlockListT& GetBlocks(); - - // NOTE:: static method - // returns if the given word is a reserved word or basic type identifier - static bool IsKeyword( char* word, int wordLen ); -}; - -#endif diff --git a/utils/HelpGen/include/srcparser.h b/utils/HelpGen/include/srcparser.h deleted file mode 100644 index 9eb017aafb..0000000000 --- a/utils/HelpGen/include/srcparser.h +++ /dev/null @@ -1,769 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: To provide a simple _framework_ -// for series of source code parsers with -// compatible interfaces -// Author: Aleksandras Gluchovas -// Modified by: AG on 28/12/98 -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SRCPARSER_G__ -#define __SRCPARSER_G__ - -#if defined( wxUSE_TEMPLATE_STL ) - #include - - #ifdef WIN32 - #include - #else - - #include - #include - - #endif - -#else - #include "wx/string.h" - #include "wxstlvec.h" - - // FOR NOW:: quick n' dirty: - - #define string wxString - -#endif - -#include "markup.h" // markup tags used in spOperator::GetFullName() - -// these methods are used for debugging only and disappear in the release build -#ifdef __WXDEBUG__ - #define DECLARE_DUMP virtual void DumpThis(const wxString& indent) const; -#else - #define DECLARE_DUMP -#endif - -// context class list in "inside-out" order : - -class spContext; - -class spParameter; -class spAttribute; -class spOperation; -class spEnumeration; -class spTypeDef; -class spPreprocessorLine; -class spClass; -class spNameSpace; -class spFile; - -// source context visibilities -enum SRC_VISIBLITY_TYPES -{ - SP_VIS_PUBLIC, - SP_VIS_PROTECTED, - SP_VIS_PRIVATE -}; - -// class types -enum SP_CLASS_TYPES -{ - SP_CLTYPE_INVALID, - SP_CLTYPE_CLASS, - SP_CLTYPE_TEMPLATE_CLASS, - SP_CLTYPE_STRUCTURE, - SP_CLTYPE_UNION, - SP_CLTYPE_INTERFACE -}; - -// inheritance types -enum SP_INHERITANCE_TYPES -{ - SP_INHERIT_VIRTUAL, - SP_INHERIT_PUBLIC, - SP_INHERIT_PRIVATE -}; - -// proprocessor definitions types (specific to C++ code) - -enum SP_PREP_DEFINITION_TYPES -{ - SP_PREP_DEF_DEFINE_SYMBOL, - SP_PREP_DEF_REDEFINE_SYMBOL, - SP_PREP_DEF_INCLUDE_FILE, - SP_PREP_DEF_OTHER -}; - -// common context types - -#define SP_CTX_UNKNOWN 0x000 -#define SP_CTX_FILE 0x001 -#define SP_CTX_NAMESPACE 0x002 -#define SP_CTX_CLASS 0x004 -#define SP_CTX_TYPEDEF 0x008 -#define SP_CTX_PREPROCESSOR 0x010 -#define SP_CTX_ENUMERATION 0x020 -#define SP_CTX_ATTRIBUTE 0x040 -#define SP_CTX_OPERATION 0x080 -#define SP_CTX_PARAMETER 0x100 - -// other (custom) context codes may be defined elsewere, however they should -// not clash with above codes for common type and also should not -// exceed 16-bits of in value - -// masks all context types (up to 16 custom context can be defined) - -#define SP_CTX_ANY 0xFFFF - -class spComment; - - - -#if defined( wxUSE_TEMPLATE_STL ) - - // context members - typedef vector MMemberListT; - // comments list - typedef vector MCommentListT; - // list of parameters - typedef vector MParamListT; - // string list - typedef vector StrListT; - -#else - - typedef spContext* spContextPtrT; - typedef spComment* spCommentPtrT; - typedef spParameter* spParameterPtrT; - typedef WXSTL_VECTOR_SHALLOW_COPY(spContextPtrT) MMemberListT; - typedef WXSTL_VECTOR_SHALLOW_COPY(spCommentPtrT) MCommentListT; - typedef WXSTL_VECTOR_SHALLOW_COPY(spParameterPtrT) MParamListT; - typedef WXSTL_VECTOR_SHALLOW_COPY(string) StrListT; - -#endif; -// base class for all visitors of source code contents - -class spVisitor -{ -protected: - bool mSiblingSkipped; - bool mChildSkipped; - int mContextMask; - - spContext* mpCurCxt; - -public: - // methods invoked by context - - // method invoked from user's controling code - // to visit all nodes staring at the given context. - // Content is sorted if requrired, see comments - // spClass on sorting the class members - - void VisitAll( spContext& atContext, - bool sortContent = TRUE - ); - - // methods invoked by visitor - - // goes to the next context in the outter scope - // NOTE:: should not be invoked more than once while - // visiting certain context - - void SkipSiblings(); - - // prevents going down into the contexts contained by - // the current context - // NOTE:: the same as above - - void SkipChildren(); - - // can be called only in from visiting procedure - void RemoveCurrentContext(); - - // method enables fast filtered traversal - // of source content, e.g. collecting only classes, - // or only global functions - - // arg. context - can contain combination of contexts concatinated - // with bitwise OR, e.g. SP_CTX_CLASS | SP_CTX_NAMESPACE - // - // method can be invoked from the user's controling as well as - // from within the visting procedure - - void SetFilter( int contextMask ); - - // methods should be implemneted by specific visitor: - - // NOTE:: Do not confuse visiting with parsing, first - // the source is parsed, and than can be visited - // multiple times by variouse visitors (there can - // be more the one visitor visiting content at a time) - - virtual void VisitFile( spFile& fl ) {} - - virtual void VisitNameSpace( spNameSpace& ns ) {} - - virtual void VisitClass( spClass& cl ) {} - - virtual void VisitEnumeration( spEnumeration& en ) {} - - virtual void VisitTypeDef( spTypeDef& td ) {} - - virtual void VisitPreprocessorLine( spPreprocessorLine& pd ) {} - - virtual void VisitAttribute( spAttribute& attr ) {} - - virtual void VisitOperation( spOperation& op ) {} - - virtual void VisitParameter( spParameter& param ) {} - - virtual void VisitCustomContext( spContext& ctx ) {} -}; - -// stores one section of comments, -// multiple sections can be put to geather -// and attached to some context - -class spComment -{ -public: - string mText; - bool mIsMultiline; // multiline comments ar those with /**/'s - - // TRUE, if these was an empty empty - // line above single line comment - - bool mStartsPar; - -public: - - bool IsMultiline() const; - bool StartsParagraph() const; - - string& GetText(); - - // contstant version of GetText() - string GetText() const; -}; - -// abstract base class for common (to most languages) code -// contexts (constructs), e.g file, namespace, class, operation, -// etc - -class spContext -{ -protected: - // "linked" list of comments belonging to this context - MCommentListT mComments; - - // NULL, if this is file context - MMemberListT mMembers; - - // NULL, if this is top-most context - spContext* mpParent; - - // points to context object, where the this context - // was originally declared, meaning that this object - // is redeclaration (or if in the case of operation - // this context object most probably referres to the - // implemnetation in .cpp file for example) - - // is NULL, if this object referres to the first occurence - // of the context - - spContext* mpFirstOccurence; - - // used, to avoid excessive sorting of context's agreggates - bool mAlreadySorted; - -public: - - // source line number, (-1) if unknown - int mSrcLineNo; - - // offset of context in the source file, (-1) if unknown - int mSrcOffset; - - // lentgh of the context in characters, (-1) if unknown - int mContextLength; - - // source line number, in which this cotext ends, (-1) if unknown - int mLastScrLineNo; - - // fields are valid, if the may contain other contexts nested inside - int mHeaderLength; - int mFooterLength; - - // zero-based index of the first character of - // this context in the source line, (-1) if unknown - int mFirstCharPos; - - // zero-based index of the first character of - // this context in the last source line of this context, (-1) if unknown - int mLastCharPos; - - // see SRC_VISIBLITY_TYPES enumeration - int mVisibility; - - // TRUE, if context does not really exist in the source - // but was created by external tools (e.g. forward engineering) - - bool mIsVirtualContext; - bool mVirtualContextHasChildren; - - // body of the context in case (mIsVirtual == TRUE) - string mVirtualContextBody; - string mVittualContextFooter; - - // e.g. can be used by documentation generator to store - // reference to section object - void* mpUserData; - -public: - // universal identifier of the context (e.g. class name) - string mName; - -public: - // default constructor - spContext(); - - // automatically destorys all aggregated contexts - // (thus, it's enought to call destructor of root-context) - virtual ~spContext(); - - // see mUererData member; - void* GetUserData() { return mpUserData; } - - // sets untyped pointer to user data - void SetUserData( void* pUserData ) - { mpUserData = pUserData; } - - // searches the whole context tree for the cotnexts - // which match given masks, pust results into lst array - void GetContextList( MMemberListT& lst, int contextMask ); - - // used by default visitor's implementation - bool IsSorted(); - - /*** forward/reverse ingineering fecilities ***/ - - bool PositionIsKnown(); - - bool IsVirtualContext(); - - bool VitualContextHasChildren(); - - void SetVirtualContextBody( const string& body, - bool hasChildren = FALSE, - const string& footer = "" ); - - string GetVirtualContextBody(); - string GetFooterOfVirtualContextBody(); - - // can be overriden by top-level context classes - // to find-out ot the source-fragment of this - // context using it's position information - virtual string GetBody( spContext* pCtx = NULL ); - - virtual string GetHeader( spContext* pCtx = NULL ); - - // TRUE, if there is at least one entry - // in the comment list of this context - bool HasComments(); - MCommentListT& GetCommentList() { return mComments; } - const MCommentListT& GetCommentList() const { return mComments; } - - // should be overriden, if the context supports sorting - // of it's members - virtual void SortMembers() {} - - // returns identifier of this context - inline string& GetName() { return mName; } - - // returns -1, if souce line # is unknow - inline int GetSourceLineNo() { return mSrcLineNo; } - - // see comments on mpFirstOccurence member variable - bool IsFirstOccurence(); - spContext* GetFirstOccurence(); - - // returns not-NULL value if this context - // is aggregated by another cotnext - spContext* GetOutterContext(); - - // perhaps more intuitive alias for `GetOutterContext()' - inline spContext* GetParent() { return mpParent; } - - bool HasOutterContext(); - - // add one aggregate (or child) into this context - void AddMember ( spContext* pMember ); - MMemberListT& GetMembers(); - - // append comment to the comment list decribing - // this context - void AddComment( spComment* pComment ); - - // returns NULL, if the context with the given - // name and type is not contained by this context - // and it's children. Children's children are not - // searched recursivelly if searchSubMembers is FALSE - - spContext* FindContext( const string& identifier, - int contextType = SP_CTX_ANY, - bool searchSubMembers = TRUE - ); - - // removes this context from it's parent - // (NOTE:: context should have an outter cotnext - // to when this method is called, otherwise removal - // will result assertion failure) - void RemoveThisContext(); - - // returns TRUE, if this object is aggregated in the file - bool IsInFile(); - - // TRUE, if outter context is a namespace - bool IsInNameSpace(); - - // TRUE, if outter context is a class - bool IsInClass(); - - // TRUE, if outter cotext is an operation (TRUE for "spParameter"s) - bool IsInOperation(); - - // TRUE if the context is public - bool IsPublic() const { return mVisibility == SP_VIS_PUBLIC; } - - // NOTE:: method returns not the type of this object - // but the file/namespace/class/operation or file in which this - // attribute is contained. First, check for the type of - // context using the above method. - - // Requiering container which does not exist, will result - // in assertion failure - - spClass& GetClass(); - spFile& GetFile(); - spNameSpace& GetNameSpace(); - spOperation& GetOperation(); - - // each new context should override this method - // to return it's specific type - virtual int GetContextType() const { return SP_CTX_UNKNOWN; } - - // perhaps more intuitive short-cut - inline int GetType() { return GetContextType(); } - - // cast this context to the desired type - returns NULL if type is wrong - spAttribute *CastToAttribute() - { - return GetContextType() == SP_CTX_ATTRIBUTE ? (spAttribute *)this - : NULL; - } - - // derived classes override this to invoke VisitXXX method - // which corresponds to the class of specific context, - // - this is what the "Visitor" pattern told us ^) - - // if method is not overriden, then it's probably user-defined - // custom context - - virtual void AcceptVisitor( spVisitor& visitor ) - - { visitor.VisitCustomContext( *this ); }; - - // called by visitors, to remove given subcontext - // of this context object - void RemoveChild( spContext* pChild ); - - void RemoveChildren(); - - spContext* GetEnclosingContext( int mask = SP_CTX_ANY ); - -#ifdef __WXDEBUG__ - virtual void Dump(const wxString& indent) const; -#endif // __WXDEBUG__ - - DECLARE_DUMP -}; - -// stores information about single argument of operation - -class spParameter : public spContext -{ -public: - // type of argument (parameter) - string mType; - - // "stringified" initial value - string mInitVal; - -public: - virtual int GetContextType() const { return SP_CTX_PARAMETER; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitParameter( *this ); } - - DECLARE_DUMP -}; - - -// stores information about member(or global) variable - -class spAttribute : public spContext -{ -public: - // type of the attribute - string mType; - - // it's initial value - string mInitVal; - - // constantness - bool mIsConstant; -public: - - virtual int GetContextType() const { return SP_CTX_ATTRIBUTE; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitAttribute( *this ); } - - DECLARE_DUMP -}; - -class spOperation : public spContext -{ -public: - // type of return value - string mRetType; - - // argument list - //MParamListT mParams; - - // TRUE, if operation does not modify - // the content of the object - bool mIsConstant; - - // flag, specific to C++ - bool mIsVirtual; - - // TRUE, if definition follows the declaration immediatelly - bool mHasDefinition; - - // scope if any (e.g. MyClass::MyFunction(), scope stirng is "MyClass" ) - // usually found along with implementation of the method, which is now skipped - - string mScope; - -public: - spOperation(); - - // returns full declaration of the operations - // (ret val., identifier, arg. list), - - // arguments are marked up with italic, - // default values marked up with bold-italic, - // all the rest is marked as bold - - // NOTE:: this method may be overriden by class - // specific to concrete parser, to provide - // language-dependent reperesnetation of - // operation and it's argumetn list - // - // the default implementation outputs name in - // C++/Java syntax - - virtual string GetFullName(MarkupTagsT tags); - - virtual int GetContextType() const { return SP_CTX_OPERATION; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitOperation( *this ); } - - DECLARE_DUMP -}; - -// stores infromation about preprocessor directive - -class spPreprocessorLine : public spContext -{ - -public: - - // prepocessor statement including '#' and - // attached multiple lines with '\' character - string mLine; - - int mDefType; // see SP_PREP_DEFINITION_TYPES enumeration - -public: - - virtual int GetContextType() const { return SP_CTX_PREPROCESSOR; } - - virtual int GetStatementType() const { return mDefType; } - - string CPP_GetIncludedFileNeme() const; - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitPreprocessorLine( *this ); } - - DECLARE_DUMP -}; - -// stores information about the class - -class spClass : public spContext -{ -public: - // list of superclasses/interfaces - StrListT mSuperClassNames; - - // see SP_CLASS_TYPES enumeration - int mClassSubType; - - // see SP_INHERITANCE_TYPES enumeration - int mInheritanceType; - - // valid if mClassSubType is SP_CLTYPE_TEMPLATE_CLASS - string mTemplateTypes; - - // TRUE, if it's and interface of abstract base class - bool mIsAbstract; - -public: - // sorts class members in the following order: - // - // (by "privacy level" - first private, than protected, public) - // - // within above set - // - // (by member type - attributes first, than methods, nested classes) - // - // within above set - // - // (by identifier of the member) - - virtual void SortMembers(); - - virtual int GetContextType() const { return SP_CTX_CLASS; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitClass( *this ); } - - DECLARE_DUMP -}; - -// stores information about enum statement - -class spEnumeration : public spContext -{ -public: - string mEnumContent; // full-text content of enumeration - -public: - virtual int GetContextType() const { return SP_CTX_ENUMERATION; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitEnumeration( *this ); } - - DECLARE_DUMP -}; - -class spTypeDef : public spContext -{ -public: - // the original type which is redefined - // by this type definition - string mOriginalType; - -public: - virtual int GetContextType() const { return SP_CTX_TYPEDEF; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitTypeDef( *this ); } - - DECLARE_DUMP -}; - -// NOTE:: files context may be put to other -// file context, resulting in a collection -// of parsed file contexts, with a virtual "superfile" - -class spFile : public spContext -{ -public: - // since file name cannot be determined from - // source code, filling in this field is optional - string mFileName; - -public: - virtual int GetContextType() const { return SP_CTX_FILE; } - - virtual void AcceptVisitor( spVisitor& visitor ) - { visitor.VisitFile( *this ); } - - DECLARE_DUMP -}; - -//TODO:: comments. - -class SourceParserPlugin -{ -public: - virtual bool CanUnderstandContext( char* cur, char* end, spContext* pOuttterCtx ) = 0; - virtual void ParseContext( char* start, char*& cur, char* end, spContext* pOuttterCtx ) = 0; -}; - -// abstract interface for source parsers -// which can output parsing results in the -// form of context-tree, where each node -// should be derivative of spContext, (see -// above classes) - -class SourceParserBase -{ -private: - // auto-resizing file buffer, created in ParseFile() - // to reuse large heap block for multiple parsings - - char* mpFileBuf; - int mFileBufSz; - -protected: - SourceParserPlugin* mpPlugin; - -protected: - // value is set in the derived parser classes - int mParserStatus; - -public: - SourceParserBase(); - virtual ~SourceParserBase(); - - // loads entier source file(as text) into memory, - // and passes it's contents to ParseAll() method, - // memory occupied by source text is released after - // parsing is done - // - // (NOTE:: this is the default implementation), - - virtual spFile* ParseFile( const char* fname ); - - // should returns the root-node of the created context tree - // (user is responsible for releasing it from the heep) - // "end" should point to the (last character + 1) of the - // source text area - - virtual spFile* Parse( char* start, char* end ) = 0; - - // returns parser "status word" (specific to concrete parser) - int GetParserStatus() { return mParserStatus; } - - void SetPlugin( SourceParserPlugin* pPlugin ); -}; - -#endif diff --git a/utils/HelpGen/include/wxstlac.h b/utils/HelpGen/include/wxstlac.h deleted file mode 100644 index 9f69f1f26d..0000000000 --- a/utils/HelpGen/include/wxstlac.h +++ /dev/null @@ -1,667 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 27/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXSTLAC_G__ -#define __WXSTLAC_G__ - -#ifdef new -#undef new -#endif - -#include -#include -#include -#include -#include - -// the below macro used internally (see actual interface after this macro) - -// arguments: -// -// ARG_IS_UNIQUE -// ASSOC_CONT_CLASS_NAME -// -// ARG_VALUE_TYPE -// ARG_KEY_TYPE -// ARG_ACTUAL_VALUE_TYPE -// -// _KEY_NAME -// _VALUE_NAME -// -// _X_KEY_NAME -// _X_VALUE_NAME -// -// _INSERT_METHOD_DEFINITION - -#define __DEFINE_ASOC_CLASS( ARG_IS_UNIQUE, \ -FUNCTOR,\ -ASSOC_CONT_CLASS_NAME, \ -ARG_VALUE_TYPE, \ -ARG_KEY_TYPE, \ -ARG_ACTUAL_VALUE_TYPE, \ -_KEY_NAME, \ -_VALUE_NAME, \ -_X_KEY_NAME, \ -_X_VALUE_NAME, \ -_INSERT_METHOD_DEFINITION \ -) class \ -ASSOC_CONT_CLASS_NAME\ -{\ -protected:\ -\ -public:\ - typedef ARG_VALUE_TYPE value_type;\ - typedef ARG_KEY_TYPE key_type;\ - typedef ARG_ACTUAL_VALUE_TYPE actual_value_type;\ -\ - typedef value_type* pointer;\ - typedef value_type& reference;\ -\ - typedef const value_type& const_reference;\ -\ - typedef FUNCTOR key_compare;\ - typedef key_compare Compare;\ -\ -protected:\ -\ - struct tree_node \ - {\ - tree_node* mpParent;\ - tree_node* mpLeft;\ - tree_node* mpRight;\ -\ - value_type mData;\ - };\ -\ - typedef tree_node* node_ref_type;\ -\ - node_ref_type mpRoot;\ - node_ref_type mpLeftMost;\ - node_ref_type mpRightMost;\ -\ - node_ref_type mpFreeListHead;\ - int mKeyIsUnique;\ -\ - key_compare mCmpFunctorObj;\ -\ -public:\ -\ - static inline node_ref_type next( node_ref_type pNode )\ - {\ - if ( pNode->mpRight ) \ - {\ - pNode = pNode->mpRight;\ -\ - while ( pNode->mpLeft ) pNode = pNode->mpLeft;\ -\ - return pNode;\ - }\ - else\ - if ( pNode->mpParent )\ - {\ - if ( pNode == pNode->mpParent->mpLeft )\ -\ - return pNode->mpParent;\ -\ - pNode = pNode->mpParent;\ -\ - node_ref_type prevNode = pNode;\ - pNode = pNode->mpParent;\ -\ - while(pNode)\ - {\ - if ( pNode->mpRight &&\ - pNode->mpRight != prevNode\ - ) return pNode;\ -\ - prevNode = pNode;\ - pNode= pNode->mpParent;\ - }\ -\ - return 0;\ - }\ - else\ - return 0;\ - }\ -\ - static inline node_ref_type prev( node_ref_type pNode )\ - {\ - if ( pNode->mpLeft ) \ - {\ - pNode = pNode->mpLeft;\ -\ - while ( pNode->mpRight ) pNode = pNode->mpRight;\ -\ - return pNode;\ - }\ - else\ - if ( pNode->mpParent )\ - {\ - if ( pNode == pNode->mpParent->mpRight )\ - return pNode->mpParent;\ -\ - pNode = pNode->mpParent;\ -\ - node_ref_type prevNode = pNode;\ - pNode = pNode->mpParent;\ -\ - while(pNode)\ - {\ - if ( pNode->mpLeft &&\ - pNode->mpLeft != prevNode\ - ) return pNode;\ -\ - prevNode = pNode;\ - pNode= pNode->mpParent;\ - }\ -\ - return 0;\ - }\ - else \ - return 0;\ - }\ -\ -protected:\ -\ - inline int are_equel( const key_type& x, const key_type& y )\ - {\ - return ( !mCmpFunctorObj(x,y) && !mCmpFunctorObj(y,x) );\ - }\ -\ - inline int is_less( const key_type& x, const key_type& y )\ - {\ - return mCmpFunctorObj(x,y);\ - }\ -\ - static inline const actual_value_type& value( node_ref_type pNode )\ - {\ - return pNode->_VALUE_NAME;\ - }\ -\ - static inline const key_type& key( node_ref_type pNode )\ - {\ - return pNode->_KEY_NAME;\ - }\ -\ - inline node_ref_type AllocNode() \ - { \ - if ( mpFreeListHead ) \ - {\ - node_ref_type pFreeNode = mpFreeListHead;\ - mpFreeListHead = mpFreeListHead->mpLeft;\ -\ - return pFreeNode;\ - }\ - else\ - {\ - char* pHeapBlock = new char[sizeof(tree_node)];\ -\ - return (node_ref_type)pHeapBlock;\ - }\ - }\ -\ - inline void DestroyFreeList()\ - {\ - while ( mpFreeListHead )\ - {\ - node_ref_type tmp = mpFreeListHead;\ - mpFreeListHead = mpFreeListHead->mpLeft;\ -\ - delete [](char*)tmp;\ - }\ - }\ -\ - inline void RecycleNode( node_ref_type pNode ) \ - {\ - pNode->mpLeft = mpFreeListHead;\ - mpFreeListHead = pNode;\ - }\ -\ - inline node_ref_type do_insert(const value_type& x = value_type() )\ - {\ - node_ref_type pNewNode = AllocNode();\ -\ - pNewNode->mpParent = \ - pNewNode->mpLeft =\ - pNewNode->mpRight = 0;\ -\ - node_ref_type pCurrent = mpRoot;\ - node_ref_type pParent = 0;\ - \ - while (pCurrent) \ - {\ - if ( mKeyIsUnique && are_equel( _X_KEY_NAME, value(pCurrent) ) )\ - {\ - RecycleNode(pNewNode);\ - return 0;\ - }\ -\ - pParent = pCurrent;\ -\ - pCurrent = is_less( _X_KEY_NAME, value(pCurrent) ) \ - ? pCurrent->mpLeft \ - : pCurrent->mpRight;\ - }\ - \ - pNewNode->mpParent = pParent;\ -\ - if(pParent)\ -\ - if( is_less(_X_KEY_NAME, value(pParent) ) )\ - \ - pParent->mpLeft = pNewNode;\ - else\ - pParent->mpRight = pNewNode;\ - else\ - mpRoot = pNewNode;\ -\ - new ( &pNewNode->_KEY_NAME ) key_type(_X_KEY_NAME);\ - new ( &pNewNode->_VALUE_NAME ) actual_value_type(_X_VALUE_NAME);\ -\ - if ( prev(pNewNode) == 0 ) mpLeftMost = pNewNode;\ - if ( next(pNewNode) == 0 ) mpRightMost = pNewNode;\ -\ - return pNewNode;\ - }\ -\ - friend class iterator;\ -\ -public:\ -\ - class iterator;\ - class const_iterator;\ -\ - class iterator \ - {\ - public:\ - node_ref_type mpNode;\ - friend class CONT_CLASS_NAME;\ - friend class const_iterator;\ - friend class const_reverse_iterator;\ -\ - inline iterator( node_ref_type pNode )\ - {\ - mpNode = pNode;\ - }\ - \ - public:\ - inline iterator() {}\ - inline int operator==( const iterator& rhs ) const { return (mpNode == rhs.mpNode); }\ - inline int operator!=( const iterator& rhs ) const { return (mpNode != rhs.mpNode); }\ -\ - inline iterator( const iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const iterator& operator=( const iterator& other )\ - {\ - mpNode = other.mpNode;\ - return *this;\ - }\ -\ - inline const iterator& operator--() \ - {\ - mpNode = ASSOC_CONT_CLASS_NAME::prev(mpNode);\ - return *this;\ - }\ -\ - inline iterator operator--(int)\ - {\ - iterator tmp = *this;\ - mpNode = ASSOC_CONT_CLASS_NAME::prev(mpNode);\ - return tmp;\ - }\ -\ - inline const iterator& operator++() \ - {\ - mpNode = ASSOC_CONT_CLASS_NAME::next(mpNode);\ - return *this;\ - }\ -\ - inline iterator operator++(int)\ - {\ - iterator tmp = *this;\ - mpNode = ASSOC_CONT_CLASS_NAME::next(mpNode);\ - return tmp;\ - }\ -\ - inline reference operator*() const { return mpNode->mData; }\ - };\ -\ -\ - class const_iterator \ - {\ - public:\ - node_ref_type mpNode;\ - friend class CONT_CLASS_NAME;\ - friend class const_reverse_iterator;\ -\ - inline const_iterator( node_ref_type pNode )\ - {\ - mpNode = pNode;\ - }\ - \ - public:\ - inline const_iterator() {}\ -\ - inline int operator==( const const_iterator& rhs ) const { return (mpNode == rhs.mpNode); }\ - inline int operator!=( const const_iterator& rhs ) const { return (mpNode != rhs.mpNode); }\ -\ - inline const_iterator( const iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const_iterator( const const_iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const const_iterator& operator=( const const_iterator& other )\ - {\ - mpNode = other.mpNode;\ - return *this;\ - }\ -\ - inline const const_iterator& operator--() \ - {\ - mpNode = ASSOC_CONT_CLASS_NAME::prev(mpNode);\ - return *this;\ - }\ -\ - inline const_iterator operator--(int)\ - {\ - const_iterator tmp = *this;\ - mpNode = ASSOC_CONT_CLASS_NAME::prev(mpNode);\ - return tmp;\ - }\ -\ - inline const const_iterator& operator++() \ - {\ - mpNode = ASSOC_CONT_CLASS_NAME::next(mpNode);\ - return *this;\ - }\ -\ - inline const_iterator operator++(int)\ - {\ - const_iterator tmp = *this;\ - mpNode = ASSOC_CONT_CLASS_NAME::next(mpNode);\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return mpNode->mData; }\ - };\ -\ -public:\ -\ - inline ASSOC_CONT_CLASS_NAME( key_compare cmpFunctorObj = key_compare(),\ - int keyIsUnique = ARG_IS_UNIQUE )\ - : mpFreeListHead( 0 ),\ - mKeyIsUnique( keyIsUnique ),\ - mCmpFunctorObj( cmpFunctorObj )\ - {\ - mpLeftMost = 0;\ - mpRightMost = 0;\ - mpRoot = 0;\ - }\ -\ - inline ~ASSOC_CONT_CLASS_NAME() \ - { \ - erase( begin(), end() ); \ -\ - DestroyFreeList();\ - }\ -\ - inline iterator begin() { return mpLeftMost; }\ - inline iterator end() { return 0; }\ -\ - inline const_iterator begin() const { return mpLeftMost; }\ - inline const_iterator end() const { return 0; }\ -\ - inline iterator lower_bound( const key_type& x )\ - { \ - node_ref_type pCurrent = mpRoot;\ - \ - while( pCurrent )\ - {\ - node_ref_type pParent = pCurrent;\ -\ - if( are_equel( x, key(pCurrent) ) )\ - \ - return (pCurrent);\ - else\ - pCurrent = is_less( x, key(pCurrent) ) \ - ? pCurrent->mpLeft \ - : pCurrent->mpRight;\ -\ - if ( !pCurrent ) return (pParent);\ - }\ -\ - return begin();\ - }\ -\ - inline const_iterator lower_bound( const key_type& x ) const\ -\ - { return const_iterator( lower_bound(x).mpNode ); }\ -\ - inline iterator upper_bound( const key_type& x )\ - {\ - node_ref_type pCurrent = mpRoot;\ - \ - while( pCurrent )\ - {\ - node_ref_type pParent = pCurrent;\ -\ - if( are_equel( x, key(pCurrent) ) )\ - \ - return (pCurrent);\ - else\ - pCurrent = is_less( x, key(pCurrent) ) \ - ? pCurrent->mpLeft \ - : pCurrent->mpRight;\ -\ - if ( !pCurrent ) return next(pParent);\ - }\ -\ - return end();\ - }\ -\ - inline const_iterator upper_bound( const key_type& x ) const\ -\ - { return const_iterator( upper_bound(x).mpNode ); }\ -\ - inline iterator find( const key_type& x )\ - {\ - node_ref_type pCurrent = mpRoot;\ - \ - while( pCurrent )\ - {\ - if( are_equel( x, key(pCurrent) ) )\ - \ - return (pCurrent);\ - else\ - pCurrent = is_less( x, key(pCurrent) ) \ - ? pCurrent->mpLeft \ - : pCurrent->mpRight;\ - }\ -\ - return end();\ - }\ -\ - inline const_iterator find( const key_type& x ) const\ -\ - { return const_iterator( find(x).mpNode ); }\ -\ - inline void erase(iterator first, iterator last)\ - {\ - if ( first.mpNode == 0 ) return;\ -\ - while( first != last ) \ - {\ - iterator next = first;\ - ++next;\ - erase( first );\ - first = next;\ - }\ - }\ -\ - inline void erase(iterator position)\ - {\ - if ( position.mpNode == 0 ) return;\ -\ - node_ref_type pZ = position.mpNode;\ - node_ref_type pX, pY;\ -\ - if ( pZ == mpLeftMost ) mpLeftMost = next(pZ);\ - if ( pZ == mpRightMost ) mpRightMost = prev( pZ );\ -\ - if ( !pZ->mpLeft || !pZ->mpRight )\ - \ - pY = pZ;\ - else \ - {\ - pY = pZ->mpRight;\ - \ - while (pY->mpLeft) \ - \ - pY = pY->mpLeft;\ - }\ - \ - if ( pY->mpLeft)\ - \ - pX = pY->mpLeft;\ - else\ - pX = pY->mpRight;\ - \ - if ( pX ) pX->mpParent = pY->mpParent;\ - \ - if (pY->mpParent)\ - \ - if (pY == pY->mpParent->mpLeft )\ - \ - pY->mpParent->mpLeft = pX;\ - else\ - pY->mpParent->mpRight = pX;\ - else\ - mpRoot = pX;\ - \ - node_ref_type toRemove = 0;\ - \ - if (pY != pZ) {\ - \ - pY->mpLeft = pZ->mpLeft;\ - \ - if (pY->mpLeft) pY->mpLeft->mpParent = pY;\ - \ - pY->mpRight = pZ->mpRight;\ - \ - if ( pY->mpRight ) \ - \ - pY->mpRight->mpParent = pY;\ - \ - pY->mpParent = pZ->mpParent;\ - \ - if (pZ->mpParent)\ - \ - if (pZ == pZ->mpParent->mpLeft)\ - \ - pZ->mpParent->mpLeft = pY;\ - else\ - pZ->mpParent->mpRight = pY;\ - else\ - mpRoot = pY;\ - \ - toRemove = pZ;\ - } \ - else \ - toRemove = pY;\ - \ - value(toRemove).~actual_value_type();\ - key(toRemove).~actual_value_type();\ -\ - RecycleNode( toRemove );\ - }\ -\ - _INSERT_METHOD_DEFINITION\ -} - -// do not undefine ___WXSTL_COMMA, where associated containers are defined! -// (it is used as workaround for constraints of C-Preprocessor's nested macros) - -#define ___WXSTL_COMMA , - -#define __DEFINE_MAP(ARG_IS_UNIQUE, KEY_TYPE, VAL_TYPE, FUNCTOR ) __DEFINE_ASOC_CLASS( ARG_IS_UNIQUE,\ -FUNCTOR,\ -__WXSTLMAP_##KEY_TYPE##VAL_TYPE##ARG_IS_UNIQUE, \ -struct key_value_pair { KEY_TYPE first ; \ - VAL_TYPE second;\ - key_value_pair() {}\ - key_value_pair( const KEY_TYPE& key ___WXSTL_COMMA const VAL_TYPE& value ) \ - : first(key) ___WXSTL_COMMA second( value ) {} \ - } , \ -KEY_TYPE,\ -VAL_TYPE,\ -mData.first, mData.second, x.first, x.second, \ -struct insert_result_iterator\ -{\ - iterator first;\ - int second;\ -};\ -inline insert_result_iterator insert( const value_type& x )\ -{\ - insert_result_iterator result;\ -\ - result.first = do_insert(x);\ - result.second = ( result.first == end() ) ? 0 : 1;\ -\ - return result;\ -} ) - -#define __DEFINE_SET(ARG_IS_UNIQUE, KEY_TYPE, FUNCTOR ) __DEFINE_ASOC_CLASS( ARG_IS_UNIQUE,\ -FUNCTOR,\ -__WXSTLSET_##TYPE##ARG_IS_UNIQUE, \ -KEY_TYPE,\ -KEY_TYPE,\ -KEY_TYPE,\ -mData, mData, x, x, \ -struct insert_result_iterator\ -{\ - iterator first;\ - int second;\ -};\ -inline insert_result_iterator insert( const value_type& x )\ -{\ - insert_result_iterator result;\ -\ - result.first = do_insert(x);\ - result.second = ( result.first == end() ) ? 0 : 1;\ -\ - return result;\ -} ) - -// helper macros to create functor objects for associative containers of the given type - -#define LESS_THEN_FUNCTOR(TYPE) struct \ -{ inline int operator()(const TYPE& x, const TYPE& y ) const { return x < y; } } - -#define GREATER_THEN_FUNCTOR(TYPE) struct \ -{ inline int operator()(const TYPE& x, const TYPE& y ) const { return x > y; } } - -// functor argument should be created using the two above macros -// or passing own class with method "operator()(const TYPE&,cosnt TYPE&)" defined in it - -#define WXSTL_MAP( KEY_TYPE, VALUE_TYPE, FUNCTOR ) __DEFINE_MAP( 1 ,KEY_TYPE, VALUE_TYPE, FUNCTOR) -#define WXSTL_MULTIMAP( KEY_TYPE, VALUE_TYPE, FUNCTOR ) __DEFINE_MAP( 0 ,KEY_TYPE, VALUE_TYPE, FUNCTOR) -#define WXSTL_SET( KEY_TYPE, FUNCTOR ) __DEFINE_SET( 1 ,KEY_TYPE, FUNCTOR ) -#define WXSTL_MULTISET( KEY_TYPE, FUNCTOR ) __DEFINE_SET( 0 ,KEY_TYPE, FUNCTOR ) - -#endif diff --git a/utils/HelpGen/include/wxstllst.h b/utils/HelpGen/include/wxstllst.h deleted file mode 100644 index 5a1d1bc469..0000000000 --- a/utils/HelpGen/include/wxstllst.h +++ /dev/null @@ -1,559 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 27/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXSTLLST_G__ -#define __WXSTLLST_G__ - -#ifdef new -#undef new -#endif - -#include -#include -#include -#include -#include - -// VERSION:: 0.2 (copy-constructor/adign-op added) - -// FOR NOW:: class-member operators "new" and "delete" -// are ignored by list class, memory allocated -// and freed using global operators - -typedef int Type; - - -// the below macro used internally (see actual interface after this macro) - -#define __DEFINE_STL_LIST(listClass,Type) class \ - listClass \ -{\ -public:\ -\ - typedef Type value_type;\ - typedef value_type* pointer;\ - typedef const value_type* const_pointer;\ - typedef value_type& reference;\ - typedef const value_type& const_reference;\ - typedef size_t size_type;\ - typedef ptrdiff_t difference_type;\ -\ -protected:\ - struct list_node\ - {\ - list_node* mpNext;\ - list_node* mpPrev;\ - value_type mData;\ - };\ -\ - typedef list_node* node_ref_type;\ -\ - node_ref_type mpFreeListHead;\ - node_ref_type mpTerminator;\ - size_type mSize;\ -\ - inline node_ref_type AllocNode() \ - { \ - if ( mpFreeListHead ) \ - {\ - node_ref_type pFreeNode = mpFreeListHead;\ - mpFreeListHead = mpFreeListHead->mpPrev;\ -\ - return pFreeNode;\ - }\ - else\ - {\ - char* pHeapBlock = new char[sizeof(list_node)];\ -\ - return (node_ref_type)pHeapBlock;\ - }\ - }\ -\ - inline void DestroyFreeList()\ - {\ - while ( mpFreeListHead )\ - {\ - node_ref_type tmp = mpFreeListHead;\ - mpFreeListHead = mpFreeListHead->mpPrev;\ -\ - delete [](char*)tmp;\ - }\ - }\ -\ - inline void RecycleNode( node_ref_type pNode ) \ - {\ - pNode->mpPrev = mpFreeListHead;\ - mpFreeListHead = pNode;\ - }\ -\ -public:\ -\ - class iterator \ - {\ - public:\ - node_ref_type mpNode;\ - friend class listClass;\ - friend class const_iterator;\ - friend class const_reverse_iterator;\ -\ - protected:\ - iterator( node_ref_type pNode )\ - {\ - mpNode = pNode;\ - }\ - \ - public:\ - iterator() {}\ - int operator==( const iterator& rhs ) const { return (mpNode == rhs.mpNode); }\ - int operator!=( const iterator& rhs ) const { return (mpNode != rhs.mpNode); }\ -\ - inline iterator( const iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const iterator& operator--() \ - {\ - mpNode = mpNode->mpPrev;\ - return *this;\ - }\ -\ - inline iterator operator--(int)\ - {\ - iterator tmp = *this;\ - mpNode = mpNode->mpPrev;\ - return tmp;\ - }\ -\ - inline const iterator& operator++() \ - {\ - mpNode = mpNode->mpNext;\ - return *this;\ - }\ -\ - inline iterator operator++(int)\ - {\ - iterator tmp = *this;\ - mpNode = mpNode->mpNext;\ - return tmp;\ - }\ -\ - inline reference operator*() const { return mpNode->mData; }\ - };\ -\ -\ - class const_iterator \ - {\ - protected:\ - node_ref_type mpNode;\ - friend class listClass;\ -\ - protected:\ - const_iterator( node_ref_type pNode )\ - {\ - mpNode = pNode;\ - }\ - \ - public:\ - \ - const_iterator() {}\ - int operator==( const const_iterator& rhs ) const { return (mpNode == rhs.mpNode); }\ - int operator!=( const const_iterator& rhs ) const { return (mpNode != rhs.mpNode); }\ -\ -\ - inline const_iterator( const iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const const_iterator& operator--() \ - {\ - mpNode = mpNode->mpPrev;\ - return *this;\ - }\ -\ - inline const_iterator operator--(int)\ - {\ - const_iterator tmp = *this;\ - mpNode = mpNode->mpPrev;\ - return tmp;\ - }\ -\ - inline const const_iterator& operator++() \ - {\ - mpNode = mpNode->mpNext;\ - return *this;\ - }\ -\ - inline const_iterator operator++(int)\ - {\ - const_iterator tmp = *this;\ - mpNode = mpNode->mpNext;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return mpNode->mData; }\ - };\ -\ - typedef iterator OutputIterator;\ - typedef const_iterator InputIterator;\ -\ - class reverse_iterator \ - {\ - public:\ - node_ref_type mpNode;\ - friend class listClass;\ - friend class const_reverse_iterator;\ -\ - protected:\ - reverse_iterator ( node_ref_type pNode )\ - {\ - mpNode = pNode;\ - }\ - \ - public:\ -\ - reverse_iterator() {}\ - int operator==( const reverse_iterator& rhs ) const { return (mpNode == rhs.mpNode); }\ - int operator!=( const reverse_iterator& rhs ) const { return (mpNode != rhs.mpNode); }\ -\ - inline reverse_iterator( const reverse_iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const reverse_iterator& operator--() \ - {\ - mpNode = mpNode->mpNext;\ - return *this;\ - }\ -\ - inline reverse_iterator operator--(int)\ - {\ - reverse_iterator tmp = *this;\ - mpNode = mpNode->mpPrev;\ - return tmp;\ - }\ -\ - inline const reverse_iterator & operator++() \ - {\ - mpNode = mpNode->mpNext;\ - return *this;\ - }\ -\ - inline reverse_iterator operator++(int)\ - {\ - reverse_iterator tmp = *this;\ - mpNode = mpNode->mpPrev;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return mpNode->mData; }\ - };\ -\ -\ - class const_reverse_iterator \ - {\ - protected:\ - node_ref_type mpNode;\ - friend class listClass;\ -\ - protected:\ - const_reverse_iterator( node_ref_type pNode )\ - {\ - mpNode = pNode;\ - }\ - \ - public:\ -\ - const_reverse_iterator() {}\ - int operator==( const const_reverse_iterator& rhs ) const { return (mpNode == rhs.mpNode); }\ - int operator!=( const const_reverse_iterator& rhs ) const { return (mpNode != rhs.mpNode); }\ -\ - inline const_reverse_iterator( const reverse_iterator& other )\ - {\ - mpNode = other.mpNode;\ - }\ -\ - inline const const_reverse_iterator& operator--() \ - {\ - mpNode = mpNode->mpNext;\ - return *this;\ - }\ -\ - inline const_reverse_iterator operator--(int)\ - {\ - const_reverse_iterator tmp = *this;\ - mpNode = mpNode->mpNext;\ - return tmp;\ - }\ -\ - inline const const_reverse_iterator& operator++() \ - {\ - mpNode = mpNode->mpPrev;\ - return *this;\ - }\ -\ - inline const_reverse_iterator operator++(int)\ - {\ - const_reverse_iterator tmp = *this;\ - mpNode = mpNode->mpPrev;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return mpNode->mData; }\ - };\ -\ -public:\ -\ - inline listClass()\ - : mpFreeListHead( 0 ),\ - mSize(0)\ - {\ - mpTerminator = AllocNode();\ - mpTerminator->mpPrev = mpTerminator->mpNext = mpTerminator;\ - }\ -\ - listClass( const listClass& other )\ - {\ - mpTerminator = AllocNode();\ - mpTerminator->mpPrev = mpTerminator->mpNext = mpTerminator;\ -\ - for( listClass::const_iterator i = other.begin(); i != other.end(); ++i )\ -\ - push_back( (*i) );\ - }\ -\ - inline const listClass& operator=( const listClass& rhs ) \ - {\ - erase( begin(), end() );\ -\ - for( listClass::const_iterator i = rhs.begin(); i != rhs.end(); ++i )\ -\ - push_back( (*i) );\ -\ - return *this;\ - }\ -\ - inline listClass(const_iterator first, const_iterator last)\ - : mpFreeListHead( 0 ),\ - mSize(0)\ - \ - { while( first != last ) push_back( *first++ ); }\ -\ - inline listClass( size_type n, const value_type& value = value_type() )\ - \ - { for( size_t i = 0; i != n; ++n ) push_back( value ); }\ -\ - inline ~listClass() \ - { \ - erase( begin(), end() ); \ -\ - RecycleNode( mpTerminator );\ - DestroyFreeList();\ - }\ -\ - inline iterator begin() { return iterator(mpTerminator->mpNext); }\ - \ - inline const_iterator begin() const \ - { return const_iterator(mpTerminator->mpNext); }\ - \ - inline iterator end() { return iterator(mpTerminator); }\ -\ - inline const_iterator end() const { return const_iterator(mpTerminator); }\ -\ - inline reverse_iterator rbegin() \ - { return reverse_iterator(mpTerminator->mpPrev); }\ -\ - inline reverse_iterator rend() \ - { return reverse_iterator(mpTerminator); }\ -\ - inline const_reverse_iterator rbegin() const\ - { return const_reverse_iterator(mpTerminator->mpPrev); }\ -\ - inline const_reverse_iterator rend() const\ - { return const_reverse_iterator(mpTerminator); }\ -\ - inline int empty() const { return (mSize == 0); }\ -\ - inline size_type size() const { return mSize; }\ -\ - inline size_type max_size() const { return UINT_MAX/sizeof(list_node); }\ -\ - inline reference front() { return mpTerminator->mData; }\ -\ - inline const_reference front() const { return mpTerminator->mData; }\ -\ - inline reference back() { return mpTerminator->mpPrev->mData; }\ -\ - inline const_reference back() const { return mpTerminator->mpPrev->mData; }\ -\ - inline void push_front(const value_type& x) { insert( begin(), x ); }\ -\ - inline void push_back(const value_type& x) { insert( end(), x ); }\ -\ - iterator insert(iterator position, const value_type& x = value_type())\ - {\ - node_ref_type pNew = AllocNode();\ -\ - node_ref_type pos = *((node_ref_type*)&position);\ -\ - pNew->mpNext = pos;\ - pNew->mpPrev = pos->mpPrev;\ - pos->mpPrev->mpNext = pNew;\ - pos->mpPrev = pNew;\ -\ - new (&pNew->mData) value_type(x);\ -\ - ++mSize;\ -\ - return iterator(pNew);\ - }\ -\ - inline void insert(iterator position, const_iterator first, const_iterator last )\ - {\ - while( first != last ) insert( position, *first++ );\ - }\ -\ - inline void splice( iterator position, listClass& other )\ - {\ - if ( other.begin() == other.end() ) return;\ -\ - node_ref_type pTill = other.mpTerminator->mpPrev;\ - node_ref_type pFrom = other.begin().mpNode;\ -\ - mpTerminator->mpPrev->mpNext = pFrom;\ - pFrom->mpPrev = mpTerminator->mpPrev->mpNext;\ -\ - pTill->mpNext = mpTerminator;\ - mpTerminator->mpPrev = pTill;\ -\ - other.mpTerminator->mpNext = \ - other.mpTerminator->mpPrev = other.mpTerminator;\ -\ - mSize += other.mSize;\ - other.mSize = 0;\ - }\ -\ - inline void splice( iterator position, listClass& other, iterator first, iterator last )\ - {\ - if ( first == last ) return;\ -\ - size_type sz = 0;\ - iterator tmp = first;\ - while( tmp != last ) \ - {\ - ++tmp;\ - ++sz;\ - }\ -\ - mSize += sz;\ - other.mSize -= sz;\ -\ - node_ref_type pPos = position.mpNode;\ - node_ref_type pFirst = first.mpNode;\ - node_ref_type pLast = last.mpNode;\ - node_ref_type pTill = last.mpNode->mpPrev;\ -\ - pPos->mpPrev->mpNext = pFirst;\ - pPos->mpPrev = pTill;\ -\ - pFirst->mpPrev->mpNext = last.mpNode;\ - pLast->mpPrev = pTill;\ -\ - pFirst->mpPrev = pPos->mpPrev;\ - pTill->mpNext = pPos;\ - }\ -\ - inline void pop_front() { erase( begin() ); }\ - inline void pop_back() { erase( --end() ); }\ - \ - inline void erase(iterator position)\ - {\ - erase( position, ++position );\ - }\ - \ - inline void erase(iterator first, iterator last)\ - {\ - node_ref_type firstNode = *((node_ref_type*)&first);\ - node_ref_type lastNode = *((node_ref_type*)&last);\ -\ - firstNode->mpPrev->mpNext = lastNode;\ - lastNode->mpPrev = firstNode->mpPrev;\ -\ - while( firstNode != lastNode )\ - {\ - node_ref_type next = firstNode->mpNext;\ -\ - typedef value_type value_type_local;\ - firstNode->mData.value_type_local::~value_type_local();\ -\ - RecycleNode( firstNode );\ -\ - firstNode = next;\ -\ - --mSize;\ - }\ - }\ -\ - inline void remove(const value_type& value)\ - {\ - for( iterator i = begin(); i != end(); ++i )\ - \ - if ( (*i) == value ) \ - {\ - erase( i ); break;\ - }\ - }\ -\ - void sort()\ - {\ - if ( mSize < 2 ) return;\ -\ - iterator from = begin();\ - iterator other_end = end();\ - --other_end;\ -\ - for( size_type i = 0; i != mSize; ++i )\ - {\ - size_type nSwaps = 0;\ -\ - iterator next = begin();\ - ++next;\ -\ - for( iterator j = begin(); j != other_end; ++j )\ - {\ -\ - if ( (*next) < (*j) )\ - {\ - value_type tmp = (*j);\ - (*j) = (*next);\ - (*next) = tmp;\ -\ - ++nSwaps;\ - }\ -\ - ++next;\ - }\ -\ - if ( !nSwaps) break;\ -\ - --other_end;\ - }\ - }\ -} - -// defines list class with the given element type -#define WXSTL_LIST(ELEMENT_CLASS) __DEFINE_STL_LIST(\ -\ -_WXSTL_LIST_##ELEMENT_CLASS, ELEMENT_CLASS ) - -#endif \ No newline at end of file diff --git a/utils/HelpGen/include/wxstlvec.h b/utils/HelpGen/include/wxstlvec.h deleted file mode 100644 index 6658b07559..0000000000 --- a/utils/HelpGen/include/wxstlvec.h +++ /dev/null @@ -1,781 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 27/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXSTLVEC_G__ -#define __WXSTLVEC_G__ - -#ifdef new -#undef new -#endif - -#include -#include // imports memmove() -#include -#include -#include -#include - -// the below macro used internally (see actual interface after this macro) - -#define __DEFINE_STL_VECTOR_DEEP( vectorClass, Type ) class vectorClass {\ -\ -public:\ - typedef Type value_type;\ - typedef value_type* iterator;\ - typedef const value_type* const_iterator;\ - typedef iterator pointer;\ - typedef const iterator const_pointer;\ - typedef value_type& reference;\ - typedef const value_type& const_reference;\ - typedef size_t size_type;\ - typedef ptrdiff_t difference_type;\ -\ - typedef iterator OutputIterator;\ - typedef const_iterator InputIterator;\ -\ -protected:\ -\ - inline void PlacementCopy( const_iterator first, const_iterator last, iterator result )\ - {\ - while ( first != last ) \ - new (result++) value_type(*first++);\ - }\ -\ - inline void ConstructObjects( iterator first, iterator last, const value_type& pattern )\ - {\ - while( first != last ) \ - new (first++) value_type(pattern);\ - }\ -\ - inline void CopyObjects( iterator first, iterator last, iterator result )\ - {\ - while( first != last ) \ - *result++ = *first++;\ - }\ -\ - inline void CopyObjectsBack( iterator first, iterator last, iterator result )\ - {\ - result += difference_type(last,first);\ -\ - while( first != last ) \ - *(--result) = *(--last);\ - }\ -\ -public:\ -\ - class reverse_iterator \ - {\ - friend class vectorClass;\ - friend class const_reverse_iterator;\ -\ - public:\ - iterator mpPos;\ -\ - public:\ -\ - reverse_iterator() {}\ -\ - reverse_iterator ( iterator pPos )\ - {\ - mpPos = pPos;\ - }\ - \ - int operator==( const reverse_iterator& rhs ) const { return (mpPos == rhs.mpPos); }\ - int operator!=( const reverse_iterator& rhs ) const { return (mpPos != rhs.mpPos); }\ -\ - inline reverse_iterator( const reverse_iterator& other )\ - {\ - mpPos = other.mpPos;\ - }\ -\ - inline const reverse_iterator& operator--() \ - {\ - --mpPos;\ - return *this;\ - }\ -\ - inline reverse_iterator operator--(int)\ - {\ - reverse_iterator tmp = *this;\ - --mpPos;\ - return tmp;\ - }\ -\ - inline const reverse_iterator & operator++() \ - {\ - ++mpPos;\ - return *this;\ - }\ -\ - inline reverse_iterator operator++(int)\ - {\ - reverse_iterator tmp = *this;\ - ++mpPos;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return *mpPos; }\ - };\ -\ -\ - class const_reverse_iterator \ - {\ - protected:\ - iterator mpPos;\ - public:\ -\ - const_reverse_iterator() {}\ -\ - const_reverse_iterator( const iterator pPos )\ - {\ - mpPos = pPos;\ - }\ - \ - int operator==( const const_reverse_iterator& rhs ) const { return (mpPos == rhs.mpPos); }\ - int operator!=( const const_reverse_iterator& rhs ) const { return (mpPos != rhs.mpPos); }\ -\ - inline const_reverse_iterator( const reverse_iterator& other )\ - {\ - mpPos = other.mpPos;\ - }\ -\ - inline const const_reverse_iterator& operator--() \ - {\ - --mpPos;\ - return *this;\ - }\ -\ - inline const_reverse_iterator operator--(int)\ - {\ - const_reverse_iterator tmp = *this;\ - --mpPos;\ - return tmp;\ - }\ -\ - inline const const_reverse_iterator & operator++() \ - {\ - ++mpPos;\ - return *this;\ - }\ -\ - inline const_reverse_iterator operator++(int)\ - {\ - const_reverse_iterator tmp = *this;\ - ++mpPos;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return *mpPos; }\ - };\ -\ -protected:\ - \ - pointer mpStart;\ - pointer mpEnd;\ - pointer mpEndOfBuf;\ -\ -protected:\ -\ - inline void quick_sort(int low, int hi) \ - {\ - }\ -\ - inline void DestructRange( iterator first, iterator last )\ - {\ - typedef value_type value_type_local;\ -\ - while ( first != last ) \ - {\ - first->value_type_local::~value_type_local();\ - ++first;\ - }\ - }\ -\ - inline iterator DoInsert(iterator position, const value_type& x)\ - {\ - if ( mpEnd < mpEndOfBuf )\ - {\ - new (mpEnd) value_type(*(mpEnd-1) );\ - \ - CopyObjectsBack( position, mpEnd, position + 1 );\ - \ - *position = x;\ - \ - ++mpEnd;\ - \ - return position;\ - }\ - \ - size_type minBufLen = WXSTL_VECTOR_MIN_BUF_SIZE/sizeof(value_type);\ - \ - size_type doubledSize = size()*2;\ - \ - size_type newLen = ( doubledSize < minBufLen ) ? minBufLen : doubledSize;\ - \ - iterator pNewStart = (iterator)( new char[newLen*sizeof(value_type)] );\ - \ - PlacementCopy( mpStart, position, pNewStart );\ - \ - iterator atPosition = pNewStart + difference_type( position - mpStart );\ - \ - new (atPosition) value_type(x);\ - \ - iterator newPos = atPosition;\ - \ - ++atPosition;\ - \ - if ( mpStart ) \ - {\ - PlacementCopy( position, mpEnd, atPosition );\ - DestructRange( mpStart, mpEnd );\ - delete [](char*)mpStart;\ - }\ - \ - mpEnd = atPosition + difference_type( mpEnd - position );\ - \ - mpStart = pNewStart;\ - mpEndOfBuf = pNewStart + newLen;\ - \ - return newPos;\ - }\ -\ -public:\ -\ - inline vectorClass() : mpStart(0), \ - mpEnd(0),\ - mpEndOfBuf(0)\ - {}\ -\ - inline vectorClass( const_iterator first, const_iterator last )\ - : mpStart(0),\ - mpEnd(0),\ - mpEndOfBuf(0)\ - \ - { while( first != last ) push_back( *first++ ); }\ -\ - inline vectorClass( size_type n, const value_type& value = value_type() )\ - : mpStart(0),\ - mpEnd(0),\ - mpEndOfBuf(0)\ - \ - { for( size_type i = 0; i != n; ++i ) push_back( value ); }\ -\ - inline const vectorClass& operator=( const vectorClass& other )\ - {\ - if (mpStart) \ - {\ - DestructRange( begin(), end() );\ - delete [](char*)mpStart; \ - }\ -\ - size_t newLen = difference_type( other.mpEndOfBuf - other.mpStart );\ -\ - mpStart = (iterator)( new char[newLen*sizeof(value_type)] );\ -\ - PlacementCopy( other.begin(), other.end(), mpStart );\ -\ - mpEnd = mpStart + other.size();\ -\ - mpEndOfBuf = mpStart + newLen;\ -\ - return *this;\ - }\ -\ - inline vectorClass( const vectorClass& other )\ - : mpStart(0),\ - mpEnd(0),\ - mpEndOfBuf(0)\ - {\ - this->operator=( other );\ - }\ -\ - inline ~vectorClass() \ - { \ - if (mpStart) \ - {\ - DestructRange( begin(), end() );\ - delete [](char*)mpStart; \ - }\ - }\ -\ - inline iterator begin() { return mpStart; }\ -\ - inline const_iterator begin() const { return mpStart; }\ -\ - inline iterator end() { return mpEnd; }\ -\ - inline const_iterator end() const { return mpEnd; }\ -\ - inline size_type size() const { return (size_type)difference_type(mpEnd-mpStart); }\ -\ - inline size_type max_size() const { return UINT_MAX/sizeof(value_type); }\ -\ - inline size_type capacity() const \ - { return difference_type(mpEndOfBuf-mpStart)/sizeof(value_type); }\ -\ - inline int empty() const { return mpStart == mpEnd; }\ -\ - inline reference operator[](size_type n) { return *(mpStart+n); }\ -\ - inline const_reference operator[](size_type n) const { return *(mpStart+n); }\ -\ - inline reference front() { return (*mpStart); }\ - \ - inline const_reference front() const { return (*mpStart); }\ -\ - inline reference back() { return (*(mpEnd-1)); }\ -\ - inline const_reference back() const { return (*(mpEnd-1)); }\ -\ - inline void reserve(size_type n) {}\ -\ - inline void push_back(const value_type& x)\ - {\ - if ( mpEnd != mpEndOfBuf ) \ - {\ - new (mpEnd) value_type(x);\ - ++mpEnd;\ - }\ - else\ - DoInsert( mpEnd, x );\ - }\ -\ - inline iterator insert(iterator position, const value_type& x = value_type())\ - {\ - if ( position == mpEnd && mpEnd != mpEndOfBuf )\ - {\ - new (mpEnd) value_type(x);\ - ++mpEnd;\ - return (mpEnd-1);\ - }\ - else return DoInsert( position, x );\ - }\ -\ - inline void pop_back()\ - {\ - DestructRange( mpEnd-1, mpEnd );\ -\ - --mpEnd;\ - }\ -\ - inline void erase(iterator first, iterator last)\ - {\ - if ( last == mpEnd )\ - {\ - DestructRange( first, last );\ - mpEnd = first;\ - return;\ - }\ - \ - CopyObjects( last, last + difference_type( mpEnd - last ), first );\ - \ - iterator newEnd = mpEnd - difference_type( last - first );\ - DestructRange( newEnd, mpEnd );\ - \ - mpEnd = newEnd;\ - }\ -\ - inline void erase( iterator position )\ - {\ - erase( position, position + 1 );\ - }\ -\ - inline void sort()\ - {\ - if ( size() < 2 ) return;\ - quick_sort( 0, size()-1 );\ - }\ -} - -/////////////////////////////// shallow-copy container /////////////////////// - -#define __DEFINE_STL_VECTOR_SHALLOW( vectorClass, Type ) class vectorClass {\ -\ -public:\ - typedef Type value_type;\ - typedef value_type* iterator;\ - typedef const value_type* const_iterator;\ - typedef iterator pointer;\ - typedef const iterator const_pointer;\ - typedef value_type& reference;\ - typedef const value_type& const_reference;\ - typedef size_t size_type;\ - typedef ptrdiff_t difference_type;\ -\ - typedef iterator OutputIterator;\ - typedef const_iterator InputIterator;\ -\ -protected:\ -\ - inline void PlacementCopy( const_iterator first, const_iterator last, iterator result )\ - {\ - memcpy(result, first, int(difference_type(last-first)*sizeof(value_type)) );\ - }\ -\ - inline void ConstructObjects( iterator first, iterator last, const value_type& pattern )\ - {\ - if ( sizeof(pattern) == 1 )\ - \ - memset( first, int(difference_type(last-first)/sizeof(value_type)), \ - int(*((char*)&pattern)) );\ - else\ - while( first != last ) \ - *first++ = pattern;\ - }\ -\ - inline void CopyObjects( iterator first, iterator last, iterator result )\ - {\ - memcpy(result, first, int(difference_type(last-first)*sizeof(value_type)) );\ - }\ -\ - inline void CopyObjectsBack( iterator first, iterator last, iterator result )\ - {\ - memmove(result, first, int(difference_type(last-first)*sizeof(value_type)) );\ - }\ -\ -public:\ -\ - class reverse_iterator \ - {\ - friend class vectorClass;\ - friend class const_reverse_iterator;\ -\ - public:\ - iterator mpPos;\ -\ - public:\ -\ - reverse_iterator() {}\ -\ - reverse_iterator ( iterator pPos )\ - {\ - mpPos = pPos;\ - }\ - \ - int operator==( const reverse_iterator& rhs ) const { return (mpPos == rhs.mpPos); }\ - int operator!=( const reverse_iterator& rhs ) const { return (mpPos != rhs.mpPos); }\ -\ - inline reverse_iterator( const reverse_iterator& other )\ - {\ - mpPos = other.mpPos;\ - }\ -\ - inline const reverse_iterator& operator--() \ - {\ - --mpPos;\ - return *this;\ - }\ -\ - inline reverse_iterator operator--(int)\ - {\ - reverse_iterator tmp = *this;\ - --mpPos;\ - return tmp;\ - }\ -\ - inline const reverse_iterator & operator++() \ - {\ - ++mpPos;\ - return *this;\ - }\ -\ - inline reverse_iterator operator++(int)\ - {\ - reverse_iterator tmp = *this;\ - ++mpPos;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return *mpPos; }\ - };\ -\ -\ - class const_reverse_iterator \ - {\ - protected:\ - iterator mpPos;\ - public:\ -\ - const_reverse_iterator() {}\ -\ - const_reverse_iterator( const iterator pPos )\ - {\ - mpPos = pPos;\ - }\ - \ - int operator==( const const_reverse_iterator& rhs ) const { return (mpPos == rhs.mpPos); }\ - int operator!=( const const_reverse_iterator& rhs ) const { return (mpPos != rhs.mpPos); }\ -\ - inline const_reverse_iterator( const reverse_iterator& other )\ - {\ - mpPos = other.mpPos;\ - }\ -\ - inline const const_reverse_iterator& operator--() \ - {\ - --mpPos;\ - return *this;\ - }\ -\ - inline const_reverse_iterator operator--(int)\ - {\ - const_reverse_iterator tmp = *this;\ - --mpPos;\ - return tmp;\ - }\ -\ - inline const const_reverse_iterator & operator++() \ - {\ - ++mpPos;\ - return *this;\ - }\ -\ - inline const_reverse_iterator operator++(int)\ - {\ - const_reverse_iterator tmp = *this;\ - ++mpPos;\ - return tmp;\ - }\ -\ - inline const_reference operator*() const { return *mpPos; }\ - };\ -\ -protected:\ - \ - pointer mpStart;\ - pointer mpEnd;\ - pointer mpEndOfBuf;\ -\ -protected:\ -\ - inline void quick_sort(int low, int hi) \ - {\ - }\ -\ - inline void DestructRange( iterator first, iterator last )\ - {\ - }\ -\ - inline iterator DoInsert(iterator position, const value_type& x)\ - {\ - if ( mpEnd < mpEndOfBuf )\ - {\ - new (mpEnd) value_type(*(mpEnd-1) );\ - \ - CopyObjectsBack( position, mpEnd, position + 1 );\ - \ - *position = x;\ - \ - ++mpEnd;\ - \ - return position;\ - }\ - \ - size_type minBufLen = WXSTL_VECTOR_MIN_BUF_SIZE/sizeof(value_type);\ - \ - size_type doubledSize = size()*2;\ - \ - size_type newLen = ( doubledSize < minBufLen ) ? minBufLen : doubledSize;\ - \ - iterator pNewStart = (iterator)( new char[newLen*sizeof(value_type)] );\ - \ - PlacementCopy( mpStart, position, pNewStart );\ - \ - iterator atPosition = pNewStart + difference_type( position - mpStart );\ - \ - new (atPosition) value_type(x);\ - \ - iterator newPos = atPosition;\ - \ - ++atPosition;\ - \ - if ( mpStart ) \ - {\ - PlacementCopy( position, mpEnd, atPosition );\ - DestructRange( mpStart, mpEnd );\ - delete [](char*)mpStart;\ - }\ - \ - mpEnd = atPosition + difference_type( mpEnd - position );\ - \ - mpStart = pNewStart;\ - mpEndOfBuf = pNewStart + newLen;\ - \ - return newPos;\ - }\ -\ -public:\ -\ - inline vectorClass() : mpStart(0), \ - mpEnd(0),\ - mpEndOfBuf(0)\ - {}\ -\ - inline vectorClass( const_iterator first, const_iterator last )\ - : mpStart(0),\ - mpEnd(0),\ - mpEndOfBuf(0)\ - \ - { while( first != last ) push_back( *first++ ); }\ -\ - inline vectorClass( size_type n, const value_type& value = value_type() )\ - : mpStart(0),\ - mpEnd(0),\ - mpEndOfBuf(0)\ - \ - { for( size_type i = 0; i != n; ++i ) push_back( value ); }\ -\ - inline const vectorClass& operator=( const vectorClass& other )\ - {\ - if (mpStart) \ - {\ - DestructRange( begin(), end() );\ - delete [](char*)mpStart; \ - }\ -\ - size_t newLen = difference_type( other.mpEndOfBuf - other.mpStart );\ -\ - mpStart = (iterator)( new char[newLen*sizeof(value_type)] );\ -\ - PlacementCopy( other.begin(), other.end(), mpStart );\ -\ - mpEnd = mpStart + other.size();\ -\ - mpEndOfBuf = mpStart + newLen;\ -\ - return *this;\ - }\ -\ - inline vectorClass( const vectorClass& other )\ - : mpStart(0),\ - mpEnd(0),\ - mpEndOfBuf(0)\ - {\ - this->operator=( other );\ - }\ -\ - inline ~vectorClass() \ - { \ - if (mpStart) \ - {\ - DestructRange( begin(), end() );\ - delete [](char*)mpStart; \ - }\ - }\ -\ - inline iterator begin() { return mpStart; }\ -\ - inline const_iterator begin() const { return mpStart; }\ -\ - inline iterator end() { return mpEnd; }\ -\ - inline const_iterator end() const { return mpEnd; }\ -\ - inline size_type size() const { return (size_type)difference_type(mpEnd-mpStart); }\ -\ - inline size_type max_size() const { return UINT_MAX/sizeof(value_type); }\ -\ - inline size_type capacity() const \ - { return difference_type(mpEndOfBuf-mpStart)/sizeof(value_type); }\ -\ - inline int empty() const { return mpStart == mpEnd; }\ -\ - inline reference operator[](size_type n) { return *(mpStart+n); }\ -\ - inline const_reference operator[](size_type n) const { return *(mpStart+n); }\ -\ - inline reference front() { return (*mpStart); }\ - \ - inline const_reference front() const { return (*mpStart); }\ -\ - inline reference back() { return (*(mpEnd-1)); }\ -\ - inline const_reference back() const { return (*(mpEnd-1)); }\ -\ - inline void reserve(size_type n) {}\ -\ - inline void push_back(const value_type& x)\ - {\ - if ( mpEnd != mpEndOfBuf ) \ - {\ - new (mpEnd) value_type(x);\ - ++mpEnd;\ - }\ - else\ - DoInsert( mpEnd, x );\ - }\ -\ - inline iterator insert(iterator position, const value_type& x = value_type())\ - {\ - if ( position == mpEnd && mpEnd != mpEndOfBuf )\ - {\ - new (mpEnd) value_type(x);\ - ++mpEnd;\ - return (mpEnd-1);\ - }\ - else return DoInsert( position, x );\ - }\ -\ - inline void pop_back()\ - {\ - DestructRange( mpEnd-1, mpEnd );\ -\ - --mpEnd;\ - }\ -\ - inline void erase(iterator first, iterator last)\ - {\ - if ( last == mpEnd )\ - {\ - DestructRange( first, last );\ - mpEnd = first;\ - return;\ - }\ - \ - CopyObjects( last, last + difference_type( mpEnd - last ), first );\ - \ - iterator newEnd = mpEnd - difference_type( last - first );\ - DestructRange( newEnd, mpEnd );\ - \ - mpEnd = newEnd;\ - }\ -\ - inline void erase( iterator position )\ - {\ - erase( position, position + 1 );\ - }\ -\ - inline void sort()\ - {\ - if ( size() < 2 ) return;\ - quick_sort( 0, size()-1 );\ - }\ -} - - - -// redefine below symbol to change the default allocation unit of vector content buffer -#define WXSTL_VECTOR_MIN_BUF_SIZE 64 - -// defines vector class, where objects are copied -// using "deep-copy" sematics (i.e. by calling their copy constructors) - -#define WXSTL_VECTOR(ELEMENT_CLASS) \ -__DEFINE_STL_VECTOR_DEEP(_WXSTL_VECTOR_##ELEMENT_CLASS, ELEMENT_CLASS) - -// defines vector class, where objects are copied -// using "shallow-copy" sematics (i.e. instead of calling -// their constructors, memcpy() and memmove() are used to copy their raw data) - - -#define WXSTL_VECTOR_SHALLOW_COPY(ELEMENT_CLASS) __DEFINE_STL_VECTOR_SHALLOW(_WXSTL_VECTORSC_##ELEMENT_CLASS, ELEMENT_CLASS) - -#endif diff --git a/utils/HelpGen/src/HelpGen.cpp b/utils/HelpGen/src/HelpGen.cpp deleted file mode 100644 index 64d917bd4e..0000000000 --- a/utils/HelpGen/src/HelpGen.cpp +++ /dev/null @@ -1,1965 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: HelpGen.cpp -// Purpose: Main program file for HelpGen -// Author: Vadim Zeitlin -// Modified by: -// Created: 06/01/99 -// RCS-ID: $Id$ -// Copyright: (c) 1999 VZ -// Licence: GPL -///////////////////////////////////////////////////////////////////////////// - -/* - BUGS - - 1. wx/string.h confuses C++ parser terribly - 2. C++ parser doesn't know about virtual functions, nor static ones - 3. param checking is not done for vararg functions - 4. type comparison is dumb: it doesn't know that "char *" is the same - that "char []" nor that "const char *" is the same as "char const *" - - TODO (+ means fixed), see also the change log at the end of the file. - - (i) small fixes in the current version - - +1. Quote special TeX characters like '&' and '_' (=> derive from wxFile) - 2. Document typedefs - 3. Document global variables - 4. Document #defines - +5. Program options - 6. Include file name/line number in the "diff" messages? - +7. Support for vararg functions - - (ii) plans for version 2 - 1. Use wxTextFile for direct file access to avoid one scan method problems - 2. Use command line parser class for the options - 3. support for overloaded functions in diff mode (search for OVER) - - (iii) plans for version 3 - 1. Merging with existing files - 2. GUI -*/ - -// ============================================================================= -// declarations -// ============================================================================= - -// ----------------------------------------------------------------------------- -// headers -// ----------------------------------------------------------------------------- - -// wxWindows -#include "wx/wxprec.h" - -#ifndef WX_PRECOMP - #include - #include - #include -#endif // WX_PRECOMP - -#include - -// C++ parsing classes -#include "cjparser.h" - -// standard headers -#include -#include - -// ----------------------------------------------------------------------------- -// global vars -// ----------------------------------------------------------------------------- - -// just a copy of argv -static char **g_argv = NULL; - -// ----------------------------------------------------------------------------- -// private functions -// ----------------------------------------------------------------------------- - -// return the label for the given function name (i.e. argument of \label) -static wxString MakeLabel(const char *classname, const char *funcname = NULL); - -// return the whole \helpref{arg}{arg_label} string -static wxString MakeHelpref(const char *argument); - -// [un]quote special TeX characters (in place) -static void TeXFilter(wxString* str); -static void TeXUnfilter(wxString* str); // also trims spaces - -// get all comments associated with this context -static wxString GetAllComments(const spContext& ctx); - -// get the string with current time (returns pointer to static buffer) -// timeFormat is used for the call of strftime(3) -#ifdef GetCurrentTime -#undef GetCurrentTime -#endif - -static const char *GetCurrentTime(const char *timeFormat); - -// ----------------------------------------------------------------------------- -// private classes -// ----------------------------------------------------------------------------- - -// add a function which sanitazes the string before writing it to the file -class wxTeXFile : public wxFile -{ -public: - wxTeXFile() { } - - bool WriteTeX(const wxString& s) - { - wxString t(s); - TeXFilter(&t); - - return wxFile::Write(t); - } - -private: - wxTeXFile(const wxTeXFile&); - wxTeXFile& operator=(const wxTeXFile&); -}; - -// helper class which manages the classes and function names to ignore for -// the documentation purposes (used by both HelpGenVisitor and DocManager) -class IgnoreNamesHandler -{ -public: - IgnoreNamesHandler() : m_ignore(CompareIgnoreListEntries) { } - ~IgnoreNamesHandler() { WX_CLEAR_ARRAY(m_ignore); } - - // load file with classes/functions to ignore (add them to the names we - // already have) - bool AddNamesFromFile(const wxString& filename); - - // return TRUE if we ignore this function - bool IgnoreMethod(const wxString& classname, - const wxString& funcname) const - { - if ( IgnoreClass(classname) ) - return TRUE; - - IgnoreListEntry ignore(classname, funcname); - - return m_ignore.Index(&ignore) != wxNOT_FOUND; - } - - // return TRUE if we ignore this class entirely - bool IgnoreClass(const wxString& classname) const - { - IgnoreListEntry ignore(classname, ""); - - return m_ignore.Index(&ignore) != wxNOT_FOUND; - } - -protected: - struct IgnoreListEntry - { - IgnoreListEntry(const wxString& classname, - const wxString& funcname) - : m_classname(classname), m_funcname(funcname) - { - } - - wxString m_classname; - wxString m_funcname; // if empty, ignore class entirely - }; - - static int CompareIgnoreListEntries(IgnoreListEntry *first, - IgnoreListEntry *second); - - // for efficiency, let's sort it - WX_DEFINE_SORTED_ARRAY(IgnoreListEntry *, ArrayNamesToIgnore); - - ArrayNamesToIgnore m_ignore; - -private: - IgnoreNamesHandler(const IgnoreNamesHandler&); - IgnoreNamesHandler& operator=(const IgnoreNamesHandler&); -}; - -// visitor implementation which writes all collected data to a .tex file -class HelpGenVisitor : public spVisitor -{ -public: - // ctor - HelpGenVisitor(const wxString& directoryOut, bool overwrite); - - virtual void VisitFile( spFile& fl ); - virtual void VisitClass( spClass& cl ); - virtual void VisitEnumeration( spEnumeration& en ); - virtual void VisitTypeDef( spTypeDef& td ); - virtual void VisitPreprocessorLine( spPreprocessorLine& pd ); - virtual void VisitAttribute( spAttribute& attr ); - virtual void VisitOperation( spOperation& op ); - virtual void VisitParameter( spParameter& param ); - - void EndVisit(); - - // get our `ignore' object - IgnoreNamesHandler& GetIgnoreHandler() { return m_ignoreNames; } - - // shut up g++ warning (ain't it stupid?) - virtual ~HelpGenVisitor() { } - -protected: - // (re)initialize the state - void Reset(); - - // insert documentation for enums/typedefs coming immediately before the - // class declaration into the class documentation - void InsertTypedefDocs(); - void InsertEnumDocs(); - - // write the headers for corresponding sections (only once) - void InsertDataStructuresHeader(); - void InsertMethodsHeader(); - - // terminate the function documentation if it was started - void CloseFunction(); - - wxString m_directoryOut, // directory for the output - m_fileHeader; // name of the .h file we parse - bool m_overwrite; // overwrite existing files? - wxTeXFile m_file; // file we're writing to now - - // state variables - bool m_inClass, // TRUE after file successfully opened - m_inTypesSection, // enums & typedefs go there - m_inMethodSection, // functions go here - m_isFirstParam, // first parameter of current function? - m_inFunction; // we're parsing a function declaration - - // holders for "saved" documentation - wxString m_textStoredEnums, - m_textStoredTypedefs, - m_textStoredFunctionComment; - - // headers included by this file - wxArrayString m_headers; - - // ignore handler: tells us which classes to ignore for doc generation - // purposes - IgnoreNamesHandler m_ignoreNames; - -private: - HelpGenVisitor(const HelpGenVisitor&); - HelpGenVisitor& operator=(const HelpGenVisitor&); -}; - -// documentation manager - a class which parses TeX files and remembers the -// functions documented in them and can later compare them with all functions -// found under ctxTop by C++ parser -class DocManager -{ -public: - DocManager(bool checkParamNames); - ~DocManager(); - - // returns FALSE on failure - bool ParseTeXFile(const wxString& filename); - - // returns FALSE if there were any differences - bool DumpDifferences(spContext *ctxTop) const; - - // get our `ignore' object - IgnoreNamesHandler& GetIgnoreHandler() { return m_ignoreNames; } - -protected: - // parsing TeX files - // ----------------- - - // returns the length of 'match' if the string 'str' starts with it or 0 - // otherwise - static size_t TryMatch(const char *str, const char *match); - - // skip spaces: returns pointer to first non space character (also - // updates the value of m_line) - const char *SkipSpaces(const char *p) - { - while ( isspace(*p) ) { - if ( *p++ == '\n' ) - m_line++; - } - - return p; - } - - // skips characters until the next 'c' in '*pp' unless it ends before in - // which case FALSE is returned and pp points to '\0', otherwise TRUE is - // returned and pp points to 'c' - bool SkipUntil(const char **pp, char c); - - // the same as SkipUntil() but only spaces are skipped: on first non space - // character different from 'c' the function stops and returns FALSE - bool SkipSpaceUntil(const char **pp, char c); - - // extract the string between {} and modify '*pp' to point at the - // character immediately after the closing '}'. The returned string is empty - // on error. - wxString ExtractStringBetweenBraces(const char **pp); - - // the current file and line while we're in ParseTeXFile (for error - // messages) - wxString m_filename; - size_t m_line; - - // functions and classes to ignore during diff - // ------------------------------------------- - - IgnoreNamesHandler m_ignoreNames; - - // information about all functions documented in the TeX file(s) - // ------------------------------------------------------------- - - // info about a type: for now stored as text string, but must be parsed - // further later (to know that "char *" == "char []" - TODO) - class TypeInfo - { - public: - TypeInfo(const wxString& type) : m_type(type) { } - - bool operator==(const wxString& type) const { return m_type == type; } - bool operator!=(const wxString& type) const { return m_type != type; } - - const wxString& GetName() const { return m_type; } - - private: - wxString m_type; - }; - - // info abotu a function parameter - class ParamInfo - { - public: - ParamInfo(const wxString& type, - const wxString& name, - const wxString& value) - : m_type(type), m_name(name), m_value(value) - { - } - - const TypeInfo& GetType() const { return m_type; } - const wxString& GetName() const { return m_name; } - const wxString& GetDefValue() const { return m_value; } - - private: - TypeInfo m_type; // type of parameter - wxString m_name; // name - wxString m_value; // default value - }; - - WX_DEFINE_ARRAY(ParamInfo *, ArrayParamInfo); - - // info about a function - struct MethodInfo - { - public: - enum MethodFlags - { - Const = 0x0001, - Virtual = 0x0002, - Pure = 0x0004, - Static = 0x0008, - Vararg = 0x0010 - }; - - MethodInfo(const wxString& type, - const wxString& name, - const ArrayParamInfo& params) - : m_typeRet(type), m_name(name), m_params(params) - { - m_flags = 0; - } - - void SetFlag(MethodFlags flag) { m_flags |= flag; } - - const TypeInfo& GetType() const { return m_typeRet; } - const wxString& GetName() const { return m_name; } - const ParamInfo& GetParam(size_t n) const { return *(m_params[n]); } - size_t GetParamCount() const { return m_params.GetCount(); } - - bool HasFlag(MethodFlags flag) const { return (m_flags & flag) != 0; } - - ~MethodInfo() { WX_CLEAR_ARRAY(m_params); } - - private: - TypeInfo m_typeRet; // return type - wxString m_name; - int m_flags; // bit mask of the value from the enum above - - ArrayParamInfo m_params; - }; - - WX_DEFINE_ARRAY(MethodInfo *, ArrayMethodInfo); - WX_DEFINE_ARRAY(ArrayMethodInfo *, ArrayMethodInfos); - - // first array contains the names of all classes we found, the second has a - // pointer to the array of methods of the given class at the same index as - // the class name appears in m_classes - wxArrayString m_classes; - ArrayMethodInfos m_methods; - - // are we checking parameter names? - bool m_checkParamNames; - -private: - DocManager(const DocManager&); - DocManager& operator=(const DocManager&); -}; - -// ----------------------------------------------------------------------------- -// private functions -// ----------------------------------------------------------------------------- - -// ============================================================================= -// implementation -// ============================================================================= - -// this function never returns -static void usage() -{ - wxString prog = g_argv[0]; - wxString basename = prog.BeforeLast('/'); -#ifdef __WXMSW__ - if ( !basename ) - basename = prog.BeforeLast('\\'); -#endif - if ( !basename ) - basename = prog; - - wxLogError( -"usage: %s [global options] [mode options] \n" -"\n" -" where global options are:\n" -" -q be quiet\n" -" -v be verbose\n" -" -H give this usage message\n" -" -V print the version info\n" -" -i file file with classes/function to ignore\n" -"\n" -" where mode is one of: dump, diff\n" -"\n" -" dump means generate .tex files for TeX2RTF converter from specified\n" -" headers files, mode options are:\n" -" -f overwrite existing files\n" -" -o outdir directory for generated files\n" -"\n" -" diff means compare the set of methods documented .tex file with the\n" -" methods declared in the header:\n" -" %s diff .\n" -" mode specific options are:\n" -" -p do check parameter names (not done by default)\n" -"\n", basename.c_str(), basename.c_str()); - - exit(1); -} - -int main(int argc, char **argv) -{ - enum - { - Mode_None, - Mode_Dump, - Mode_Diff - } mode = Mode_None; - - g_argv = argv; - - if ( argc < 2 ) { - usage(); - } - - wxArrayString filesH, filesTeX; - wxString directoryOut, // directory for 'dmup' output - ignoreFile; // file with classes/functions to ignore - bool overwrite = FALSE, // overwrite existing files during 'dump'? - paramNames = FALSE; // check param names during 'diff'? - - for ( int current = 1; current < argc ; current++ ) { - // all options have one letter - if ( argv[current][0] == '-' ) { - if ( argv[current][2] == '\0' ) { - switch ( argv[current][1] ) { - case 'v': - // be verbose - wxLog::GetActiveTarget()->SetVerbose(); - continue; - - case 'q': - // be quiet - wxLog::GetActiveTarget()->SetVerbose(FALSE); - continue; - - case 'H': - // help requested - usage(); - - case 'i': - current++; - if ( current >= argc ) { - wxLogError("-i option requires an argument."); - - break; - } - - ignoreFile = argv[current]; - continue; - - case 'p': - if ( mode != Mode_Diff ) { - wxLogError("-p is only valid with diff."); - - break; - } - - paramNames = TRUE; - continue; - - case 'f': - if ( mode != Mode_Dump ) { - wxLogError("-f is only valid with dump."); - - break; - } - - overwrite = TRUE; - continue; - - case 'o': - if ( mode != Mode_Dump ) { - wxLogError("-o is only valid with dump."); - - break; - } - - current++; - if ( current >= argc ) { - wxLogError("-o option requires an argument."); - - break; - } - - directoryOut = argv[current]; - if ( !!directoryOut ) { - // terminate with a '/' if it doesn't have it - switch ( directoryOut.Last() ) { - case '/': -#ifdef __WXMSW__ - case '\\': -#endif - break; - - default: - directoryOut += '/'; - } - } - //else: it's empty, do nothing - - continue; - - default: - wxLogError("unknown option '%s'", argv[current]); - break; - } - } - else { - wxLogError("only one letter options are allowed, not '%s'.", - argv[current]); - } - - // only get here after a break from switch or from else branch of if - - usage(); - } - else { - if ( mode == Mode_None ) { - if ( strcmp(argv[current], "diff") == 0 ) - mode = Mode_Diff; - else if ( strcmp(argv[current], "dump") == 0 ) - mode = Mode_Dump; - else { - wxLogError("unknown mode '%s'.", argv[current]); - - usage(); - } - } - else { - if ( mode == Mode_Dump || filesH.IsEmpty() ) { - filesH.Add(argv[current]); - } - else { - // 2nd files and further are TeX files in diff mode - wxASSERT( mode == Mode_Diff ); - - filesTeX.Add(argv[current]); - } - } - } - } - - // create a parser object and a visitor derivation - CJSourceParser parser; - HelpGenVisitor visitor(directoryOut, overwrite); - if ( !!ignoreFile && mode == Mode_Dump ) - visitor.GetIgnoreHandler().AddNamesFromFile(ignoreFile); - - spContext *ctxTop = NULL; - - // parse all header files - size_t nFiles = filesH.GetCount(); - for ( size_t n = 0; n < nFiles; n++ ) { - wxString header = filesH[n]; - ctxTop = parser.ParseFile(header); - if ( !ctxTop ) { - wxLogWarning("Header file '%s' couldn't be processed.", - header.c_str()); - } - else if ( mode == Mode_Dump ) { - ((spFile *)ctxTop)->mFileName = header; - visitor.VisitAll(*ctxTop); - visitor.EndVisit(); - } - -#ifdef __WXDEBUG__ - if ( 0 && ctxTop ) - ctxTop->Dump(""); -#endif // __WXDEBUG__ - } - - // parse all TeX files - if ( mode == Mode_Diff ) { - if ( !ctxTop ) { - wxLogError("Can't complete diff."); - - // failure - return 1; - } - - DocManager docman(paramNames); - - size_t nFiles = filesTeX.GetCount(); - for ( size_t n = 0; n < nFiles; n++ ) { - wxString file = filesTeX[n]; - if ( !docman.ParseTeXFile(file) ) { - wxLogWarning("TeX file '%s' couldn't be processed.", - file.c_str()); - } - } - - if ( !!ignoreFile ) - docman.GetIgnoreHandler().AddNamesFromFile(ignoreFile); - - docman.DumpDifferences(ctxTop); - } - - return 0; -} - -// ----------------------------------------------------------------------------- -// HelpGenVisitor implementation -// ----------------------------------------------------------------------------- - -HelpGenVisitor::HelpGenVisitor(const wxString& directoryOut, - bool overwrite) - : m_directoryOut(directoryOut) -{ - m_overwrite = overwrite; - - Reset(); -} - -void HelpGenVisitor::Reset() -{ - m_inClass = - m_inFunction = - m_inTypesSection = - m_inMethodSection = FALSE; - - m_textStoredTypedefs = - m_textStoredEnums = - m_textStoredFunctionComment = ""; - m_headers.Empty(); -} - -void HelpGenVisitor::InsertTypedefDocs() -{ - m_file.WriteTeX(m_textStoredTypedefs); - m_textStoredTypedefs.Empty(); -} - -void HelpGenVisitor::InsertEnumDocs() -{ - m_file.WriteTeX(m_textStoredEnums); - m_textStoredEnums.Empty(); -} - -void HelpGenVisitor::InsertDataStructuresHeader() -{ - if ( !m_inTypesSection ) { - m_inTypesSection = TRUE; - - m_file.WriteTeX("\\wxheading{Data structures}\n\n"); - } -} - -void HelpGenVisitor::InsertMethodsHeader() -{ - if ( !m_inMethodSection ) { - m_inMethodSection = TRUE; - - m_file.WriteTeX( "\\latexignore{\\rtfignore{\\wxheading{Members}}}\n\n"); - } -} - -void HelpGenVisitor::CloseFunction() -{ - if ( m_inFunction ) { - m_inFunction = FALSE; - - wxString totalText; - if ( m_isFirstParam ) { - // no params found - totalText << "\\void"; - } - - totalText << "}\n\n"; - - if ( !m_textStoredFunctionComment.IsEmpty() ) - totalText << m_textStoredFunctionComment << '\n'; - - m_file.WriteTeX(totalText); - } -} - -void HelpGenVisitor::EndVisit() -{ - CloseFunction(); - - m_fileHeader.Empty(); - - wxLogVerbose("%s: finished generating for the current file.", - GetCurrentTime("%H:%M:%S")); -} - -void HelpGenVisitor::VisitFile( spFile& file ) -{ - m_fileHeader = file.mFileName; - wxLogVerbose("%s: started generating docs for classes from file '%s'...", - GetCurrentTime("%H:%M:%S"), m_fileHeader.c_str()); -} - -void HelpGenVisitor::VisitClass( spClass& cl ) -{ - m_inClass = FALSE; // will be left FALSE on error - - wxString name = cl.GetName(); - - if ( m_ignoreNames.IgnoreClass(name) ) { - wxLogVerbose("Skipping ignored class '%s'.", name.c_str()); - - return; - } - - // the file name is built from the class name by removing the leading "wx" - // if any and converting it to the lower case - wxString filename = m_directoryOut; - if ( name(0, 2) == "wx" ) { - filename << name.c_str() + 2; - } - else { - filename << name; - } - - filename.MakeLower(); - filename += ".tex"; - - if ( !m_overwrite && wxFile::Exists(filename) ) { - wxLogError("Won't overwrite existing file '%s' - please use '-f'.", - filename.c_str()); - - return; - } - - m_inClass = m_file.Open(filename, wxFile::write); - if ( !m_inClass ) { - wxLogError("Can't generate documentation for the class '%s'.", - name.c_str()); - - return; - } - - m_inMethodSection = - m_inTypesSection = FALSE; - - wxLogInfo("Created new file '%s' for class '%s'.", - filename.c_str(), name.c_str()); - - // the entire text we're writing to file - wxString totalText; - - // write out the header - { - wxString header; - header.Printf("%%\n" - "%% automatically generated by HelpGen from\n" - "%% %s at %s\n" - "%%\n" - "\n" - "\n" - "\\section{\\class{%s}}\\label{%s}\n", - m_fileHeader.c_str(), GetCurrentTime("%d/%b/%y %H:%M:%S"), - name.c_str(), wxString(name).MakeLower().c_str()); - - totalText << header << '\n'; - } - - // if the header includes other headers they must be related to it... try to - // automatically generate the "See also" clause - if ( !m_headers.IsEmpty() ) { - // correspondence between wxWindows headers and class names - static const char *headers[] = { - "object", - "defs", - "string", - "dynarray", - "file", - "time", - }; - - // NULL here means not to insert anything in "See also" for the - // corresponding header - static const char *classes[] = { - NULL, - NULL, - NULL, - NULL, - "wxFile", - "wxTime", - }; - - wxASSERT_MSG( WXSIZEOF(headers) == WXSIZEOF(classes), - "arrays must be in sync!" ); - - wxArrayInt interestingClasses; - - size_t count = m_headers.Count(), index; - for ( size_t n = 0; n < count; n++ ) { - wxString baseHeaderName = m_headers[n].Before('.'); - if ( baseHeaderName(0, 3) != "wx/" ) - continue; - - baseHeaderName.erase(0, 3); - for ( index = 0; index < WXSIZEOF(headers); index++ ) { - if ( Stricmp(baseHeaderName, headers[index]) == 0 ) - break; - } - - if ( (index < WXSIZEOF(headers)) && classes[index] ) { - // interesting header - interestingClasses.Add(index); - } - } - - if ( !interestingClasses.IsEmpty() ) { - // do generate "See also" clause - totalText << "\\wxheading{See also:}\n\n"; - - count = interestingClasses.Count(); - for ( index = 0; index < count; index++ ) { - if ( index > 0 ) - totalText << ", "; - - totalText << MakeHelpref(classes[interestingClasses[index]]); - } - - totalText << "\n\n"; - } - } - - // the comment before the class generally explains what is it for so put it - // in place of the class description - if ( cl.HasComments() ) { - wxString comment = GetAllComments(cl); - - totalText << '\n' << comment << '\n'; - } - - // derived from section - wxString derived = "\\wxheading{Derived from}\n\n"; - - const StrListT& baseClasses = cl.mSuperClassNames; - if ( baseClasses.size() == 0 ) { - derived << "No base class"; - } - else { - bool first = TRUE; - for ( StrListT::const_iterator i = baseClasses.begin(); - i != baseClasses.end(); - i++ ) { - if ( !first ) { - // separate from the previous one - derived << "\\\\\n"; - } - else { - first = FALSE; - } - - wxString baseclass = *i; - derived << "\\helpref{" << baseclass << "}"; - derived << "{" << baseclass.MakeLower() << "}"; - } - } - totalText << derived << "\n\n"; - - // write all this to file - m_file.WriteTeX(totalText); - - // if there were any enums/typedefs before, insert their documentation now - InsertDataStructuresHeader(); - InsertTypedefDocs(); - InsertEnumDocs(); -} - -void HelpGenVisitor::VisitEnumeration( spEnumeration& en ) -{ - CloseFunction(); - - if ( m_inMethodSection ) { - // FIXME that's a bug, but tell the user aboit it nevertheless... we - // should be smart enough to process even the enums which come after the - // functions - wxLogWarning("enum '%s' ignored, please put it before the class " - "methods.", en.GetName().c_str()); - return; - } - - // simply copy the enum text in the docs - wxString enumeration = GetAllComments(en); - enumeration << "{\\small \\begin{verbatim}\n" - << en.mEnumContent - << "\n\\end{verbatim}}\n"; - - // remember for later use if we're not inside a class yet - if ( !m_inClass ) { - if ( !m_textStoredEnums.IsEmpty() ) { - m_textStoredEnums << '\n'; - } - - m_textStoredEnums << enumeration; - } - else { - // write the header for this section if not done yet - InsertDataStructuresHeader(); - - enumeration << '\n'; - m_file.WriteTeX(enumeration); - } -} - -void HelpGenVisitor::VisitTypeDef( spTypeDef& td ) -{ - CloseFunction(); - - if ( m_inMethodSection ) { - // FIXME that's a bug, but tell the user aboit it nevertheless... - wxLogWarning("typedef '%s' ignored, please put it before the class " - "methods.", td.GetName().c_str()); - return; - } - - wxString typedefdoc; - typedefdoc << "{\\small \\begin{verbatim}\n" - << "typedef " << td.mOriginalType << ' ' << td.GetName() - << "\n\\end{verbatim}}\n" - << GetAllComments(td); - - // remember for later use if we're not inside a class yet - if ( !m_inClass ) { - if ( !m_textStoredTypedefs.IsEmpty() ) { - m_textStoredTypedefs << '\n'; - } - - m_textStoredTypedefs << typedefdoc; - } - else { - // write the header for this section if not done yet - InsertDataStructuresHeader(); - - typedefdoc << '\n'; - m_file.WriteTeX(typedefdoc); - } -} - -void HelpGenVisitor::VisitPreprocessorLine( spPreprocessorLine& pd ) -{ - switch ( pd.GetStatementType() ) { - case SP_PREP_DEF_INCLUDE_FILE: - m_headers.Add(pd.CPP_GetIncludedFileNeme()); - break; - - case SP_PREP_DEF_DEFINE_SYMBOL: - // TODO decide if it's a constant and document it if it is - break; - } -} - -void HelpGenVisitor::VisitAttribute( spAttribute& attr ) -{ - CloseFunction(); - - // only document the public member variables - if ( !m_inClass || !attr.IsPublic() ) - return; - - wxLogWarning("Ignoring member variable '%s'.", attr.GetName().c_str()); -} - -void HelpGenVisitor::VisitOperation( spOperation& op ) -{ - CloseFunction(); - - if ( !m_inClass ) { - // we don't generate docs right now - either we ignore this class - // entirely or we couldn't open the file - return; - } - - if ( !op.IsInClass() ) { - // TODO document global functions - wxLogWarning("skipped global function '%s'.", op.GetName().c_str()); - - return; - } - - if ( op.mVisibility == SP_VIS_PRIVATE ) { - // FIXME should we document protected functions? - return; - } - - wxString funcname = op.GetName(), - classname = op.GetClass().GetName(); - if ( m_ignoreNames.IgnoreMethod(classname, funcname) ) { - wxLogVerbose("Skipping ignored '%s::%s'.", - classname.c_str(), funcname.c_str()); - - return; - } - - InsertMethodsHeader(); - - // save state info - m_inFunction = - m_isFirstParam = TRUE; - - m_textStoredFunctionComment = GetAllComments(op); - - // start function documentation - wxString totalText; - - // check for the special case of dtor - wxString dtor; - if ( (funcname[0] == '~') && (classname == funcname.c_str() + 1) ) { - dtor.Printf("\\destruct{%s}", classname.c_str()); - funcname = dtor; - } - - totalText.Printf("\n" - "\\membersection{%s::%s}\\label{%s}\n" - "\n" - "\\%sfunc{%s%s}{%s}{", - classname.c_str(), funcname.c_str(), - MakeLabel(classname, funcname).c_str(), - op.mIsConstant ? "const" : "", - op.mIsVirtual ? "virtual " : "", - op.mRetType.c_str(), - funcname.c_str()); - - m_file.WriteTeX(totalText); -} - -void HelpGenVisitor::VisitParameter( spParameter& param ) -{ - if ( !m_inFunction ) - return; - - wxString totalText; - if ( m_isFirstParam ) { - m_isFirstParam = FALSE; - } - else { - totalText << ", "; - } - - totalText << "\\param{" << param.mType << " }{" << param.GetName(); - wxString defvalue = param.mInitVal; - if ( !defvalue.IsEmpty() ) { - totalText << " = " << defvalue; - } - - totalText << '}'; - - m_file.WriteTeX(totalText); -} - -// --------------------------------------------------------------------------- -// DocManager -// --------------------------------------------------------------------------- - -DocManager::DocManager(bool checkParamNames) -{ - m_checkParamNames = checkParamNames; -} - -size_t DocManager::TryMatch(const char *str, const char *match) -{ - size_t lenMatch = 0; - while ( str[lenMatch] == match[lenMatch] ) { - lenMatch++; - - if ( match[lenMatch] == '\0' ) - return lenMatch; - } - - return 0; -} - -bool DocManager::SkipUntil(const char **pp, char c) -{ - const char *p = *pp; - while ( *p != c ) { - if ( *p == '\0' ) - break; - - if ( *p == '\n' ) - m_line++; - - p++; - } - - *pp = p; - - return *p == c; -} - -bool DocManager::SkipSpaceUntil(const char **pp, char c) -{ - const char *p = *pp; - while ( *p != c ) { - if ( !isspace(*p) || *p == '\0' ) - break; - - if ( *p == '\n' ) - m_line++; - - p++; - } - - *pp = p; - - return *p == c; -} - -wxString DocManager::ExtractStringBetweenBraces(const char **pp) -{ - wxString result; - - if ( !SkipSpaceUntil(pp, '{') ) { - wxLogWarning("file %s(%d): '{' expected after '\\param'", - m_filename.c_str(), m_line); - - } - else { - const char *startParam = ++*pp; // skip '{' - - if ( !SkipUntil(pp, '}') ) { - wxLogWarning("file %s(%d): '}' expected after '\\param'", - m_filename.c_str(), m_line); - } - else { - result = wxString(startParam, (*pp)++ - startParam); - } - } - - return result; -} - -bool DocManager::ParseTeXFile(const wxString& filename) -{ - m_filename = filename; - - wxFile file(m_filename, wxFile::read); - if ( !file.IsOpened() ) - return FALSE; - - off_t len = file.Length(); - if ( len == wxInvalidOffset ) - return FALSE; - - char *buf = new char[len + 1]; - buf[len] = '\0'; - - if ( file.Read(buf, len) == wxInvalidOffset ) { - delete [] buf; - - return FALSE; - } - - // reinit everything - m_line = 1; - - wxLogVerbose("%s: starting to parse doc file '%s'.", - GetCurrentTime("%H:%M:%S"), m_filename.c_str()); - - // the name of the class from the last "\membersection" command: we assume - // that the following "\func" or "\constfunc" always documents a method of - // this class (and it should always be like that in wxWindows documentation) - wxString classname; - - for ( const char *current = buf; current - buf < len; current++ ) { - // FIXME parsing is awfully inefficient - - if ( *current == '%' ) { - // comment, skip until the end of line - current++; - SkipUntil(¤t, '\n'); - - continue; - } - - // all the command we're interested in start with '\\' - while ( *current != '\\' && *current != '\0' ) { - if ( *current++ == '\n' ) - m_line++; - } - - if ( *current == '\0' ) { - // no more TeX commands left - break; - } - - current++; // skip '\\' - - enum - { - Nothing, - Func, - ConstFunc, - MemberSect - } foundCommand = Nothing; - - size_t lenMatch = TryMatch(current, "func"); - if ( lenMatch ) { - foundCommand = Func; - } - else { - lenMatch = TryMatch(current, "constfunc"); - if ( lenMatch ) - foundCommand = ConstFunc; - else { - lenMatch = TryMatch(current, "membersection"); - - if ( lenMatch ) - foundCommand = MemberSect; - } - } - - if ( foundCommand == Nothing ) - continue; - - current += lenMatch; - - if ( !SkipSpaceUntil(¤t, '{') ) { - wxLogWarning("file %s(%d): '{' expected after \\func, " - "\\constfunc or \\membersection.", - m_filename.c_str(), m_line); - - continue; - } - - current++; - - if ( foundCommand == MemberSect ) { - // what follows has the form :: - const char *startClass = current; - if ( !SkipUntil(¤t, ':') || *(current + 1) != ':' ) { - wxLogWarning("file %s(%d): '::' expected after " - "\\membersection.", m_filename.c_str(), m_line); - } - else { - classname = wxString(startClass, current - startClass); - TeXUnfilter(&classname); - } - - continue; - } - - // extract the return type - const char *startRetType = current; - - if ( !SkipUntil(¤t, '}') ) { - wxLogWarning("file %s(%d): '}' expected after return type", - m_filename.c_str(), m_line); - - continue; - } - - wxString returnType = wxString(startRetType, current - startRetType); - TeXUnfilter(&returnType); - - current++; - if ( !SkipSpaceUntil(¤t, '{') ) { - wxLogWarning("file %s(%d): '{' expected after return type", - m_filename.c_str(), m_line); - - continue; - } - - current++; - const char *funcEnd = current; - if ( !SkipUntil(&funcEnd, '}') ) { - wxLogWarning("file %s(%d): '}' expected after function name", - m_filename.c_str(), m_line); - - continue; - } - - wxString funcName = wxString(current, funcEnd - current); - current = funcEnd + 1; - - // trim spaces from both sides - funcName.Trim(FALSE); - funcName.Trim(TRUE); - - // special cases: '$...$' may be used for LaTeX inline math, remove the - // '$'s - if ( funcName.Find('$') != wxNOT_FOUND ) { - wxString name; - for ( const char *p = funcName.c_str(); *p != '\0'; p++ ) { - if ( *p != '$' && !isspace(*p) ) - name += *p; - } - - funcName = name; - } - - // \destruct{foo} is really ~foo - if ( funcName[0u] == '\\' ) { - size_t len = strlen("\\destruct{"); - if ( funcName(0, len) != "\\destruct{" ) { - wxLogWarning("file %s(%d): \\destruct expected", - m_filename.c_str(), m_line); - - continue; - } - - funcName.erase(0, len); - funcName.Prepend('~'); - - if ( !SkipSpaceUntil(¤t, '}') ) { - wxLogWarning("file %s(%d): '}' expected after destructor", - m_filename.c_str(), m_line); - - continue; - } - - funcEnd++; // there is an extra '}' to count - } - - TeXUnfilter(&funcName); - - // extract params - current = funcEnd + 1; // skip '}' - if ( !SkipSpaceUntil(¤t, '{') || - (current++, !SkipSpaceUntil(¤t, '\\')) ) { - wxLogWarning("file %s(%d): '\\param' or '\\void' expected", - m_filename.c_str(), m_line); - - continue; - } - - wxArrayString paramNames, paramTypes, paramValues; - - bool isVararg = FALSE; - - current++; // skip '\\' - lenMatch = TryMatch(current, "void"); - if ( !lenMatch ) { - lenMatch = TryMatch(current, "param"); - while ( lenMatch && (current - buf < len) ) { - current += lenMatch; - - // now come {paramtype}{paramname} - wxString paramType = ExtractStringBetweenBraces(¤t); - if ( !!paramType ) { - wxString paramText = ExtractStringBetweenBraces(¤t); - if ( !!paramText ) { - // the param declaration may contain default value - wxString paramName = paramText.BeforeFirst('='), - paramValue = paramText.AfterFirst('='); - - // sanitize all strings - TeXUnfilter(¶mValue); - TeXUnfilter(¶mName); - TeXUnfilter(¶mType); - - paramValues.Add(paramValue); - paramNames.Add(paramName); - paramTypes.Add(paramType); - } - } - else { - // vararg function? - wxString paramText = ExtractStringBetweenBraces(¤t); - if ( paramText == "..." ) { - isVararg = TRUE; - } - else { - wxLogWarning("Parameters of '%s::%s' are in " - "incorrect form.", - classname.c_str(), funcName.c_str()); - } - } - - // what's next? - current = SkipSpaces(current); - if ( *current == ',' || *current == '}' ) { - current = SkipSpaces(++current); - - lenMatch = TryMatch(current, "\\param"); - } - else { - wxLogWarning("file %s(%d): ',' or '}' expected after " - "'\\param'", m_filename.c_str(), m_line); - - continue; - } - } - - // if we got here there was no '\\void', so must have some params - if ( paramNames.IsEmpty() ) { - wxLogWarning("file %s(%d): '\\param' or '\\void' expected", - m_filename.c_str(), m_line); - - continue; - } - } - - // verbose diagnostic output - wxString paramsAll; - size_t param, paramCount = paramNames.GetCount(); - for ( param = 0; param < paramCount; param++ ) { - if ( param != 0 ) { - paramsAll << ", "; - } - - paramsAll << paramTypes[param] << ' ' << paramNames[param]; - } - - wxLogVerbose("file %s(%d): found '%s %s::%s(%s)%s'", - m_filename.c_str(), m_line, - returnType.c_str(), - classname.c_str(), - funcName.c_str(), - paramsAll.c_str(), - foundCommand == ConstFunc ? " const" : ""); - - // store the info about the just found function - ArrayMethodInfo *methods; - int index = m_classes.Index(classname); - if ( index == wxNOT_FOUND ) { - m_classes.Add(classname); - - methods = new ArrayMethodInfo; - m_methods.Add(methods); - } - else { - methods = m_methods[(size_t)index]; - } - - ArrayParamInfo params; - for ( param = 0; param < paramCount; param++ ) { - params.Add(new ParamInfo(paramTypes[param], - paramNames[param], - paramValues[param])); - } - - MethodInfo *method = new MethodInfo(returnType, funcName, params); - if ( foundCommand == ConstFunc ) - method->SetFlag(MethodInfo::Const); - if ( isVararg ) - method->SetFlag(MethodInfo::Vararg); - - methods->Add(method); - } - - delete [] buf; - - wxLogVerbose("%s: finished parsing doc file '%s'.\n", - GetCurrentTime("%H:%M:%S"), m_filename.c_str()); - - return TRUE; -} - -bool DocManager::DumpDifferences(spContext *ctxTop) const -{ - typedef MMemberListT::const_iterator MemberIndex; - - bool foundDiff = FALSE; - - // flag telling us whether the given class was found at all in the header - size_t nClass, countClassesInDocs = m_classes.GetCount(); - bool *classExists = new bool[countClassesInDocs]; - for ( nClass = 0; nClass < countClassesInDocs; nClass++ ) { - classExists[nClass] = FALSE; - } - - // ctxTop is normally an spFile - wxASSERT( ctxTop->GetContextType() == SP_CTX_FILE ); - - const MMemberListT& classes = ctxTop->GetMembers(); - for ( MemberIndex i = classes.begin(); i != classes.end(); i++ ) { - spContext *ctx = *i; - if ( ctx->GetContextType() != SP_CTX_CLASS ) { - // TODO process also global functions, macros, ... - continue; - } - - spClass *ctxClass = (spClass *)ctx; - const wxString& nameClass = ctxClass->mName; - int index = m_classes.Index(nameClass); - if ( index == wxNOT_FOUND ) { - if ( !m_ignoreNames.IgnoreClass(nameClass) ) { - foundDiff = TRUE; - - wxLogError("Class '%s' is not documented at all.", - nameClass.c_str()); - } - - // it makes no sense to check for its functions - continue; - } - else { - classExists[index] = TRUE; - } - - // array of method descriptions for this class - const ArrayMethodInfo& methods = *(m_methods[index]); - size_t nMethod, countMethods = methods.GetCount(); - - // flags telling if we already processed given function - bool *methodExists = new bool[countMethods]; - for ( nMethod = 0; nMethod < countMethods; nMethod++ ) { - methodExists[nMethod] = FALSE; - } - - wxArrayString aOverloadedMethods; - - const MMemberListT& functions = ctxClass->GetMembers(); - for ( MemberIndex j = functions.begin(); j != functions.end(); j++ ) { - ctx = *j; - if ( ctx->GetContextType() != SP_CTX_OPERATION ) - continue; - - spOperation *ctxMethod = (spOperation *)ctx; - const wxString& nameMethod = ctxMethod->mName; - - // find all functions with the same name - wxArrayInt aMethodsWithSameName; - for ( nMethod = 0; nMethod < countMethods; nMethod++ ) { - if ( methods[nMethod]->GetName() == nameMethod ) - aMethodsWithSameName.Add(nMethod); - } - - if ( aMethodsWithSameName.IsEmpty() && ctxMethod->IsPublic() ) { - if ( !m_ignoreNames.IgnoreMethod(nameClass, nameMethod) ) { - foundDiff = TRUE; - - wxLogError("'%s::%s' is not documented.", - nameClass.c_str(), - nameMethod.c_str()); - } - - // don't check params - continue; - } - else if ( aMethodsWithSameName.GetCount() == 1 ) { - index = (size_t)aMethodsWithSameName[0u]; - methodExists[index] = TRUE; - - if ( m_ignoreNames.IgnoreMethod(nameClass, nameMethod) ) - continue; - - if ( !ctxMethod->IsPublic() ) { - wxLogWarning("'%s::%s' is documented but not public.", - nameClass.c_str(), - nameMethod.c_str()); - } - - // check that the flags match - const MethodInfo& method = *(methods[index]); - - bool isVirtual = ctxMethod->mIsVirtual; - if ( isVirtual != method.HasFlag(MethodInfo::Virtual) ) { - wxLogWarning("'%s::%s' is incorrectly documented as %s" - "virtual.", - nameClass.c_str(), - nameMethod.c_str(), - isVirtual ? "not " : ""); - } - - bool isConst = ctxMethod->mIsConstant; - if ( isConst != method.HasFlag(MethodInfo::Const) ) { - wxLogWarning("'%s::%s' is incorrectly documented as %s" - "constant.", - nameClass.c_str(), - nameMethod.c_str(), - isConst ? "not " : ""); - } - - // check that the params match - const MMemberListT& params = ctxMethod->GetMembers(); - - if ( params.size() != method.GetParamCount() ) { - wxLogError("Incorrect number of parameters for '%s::%s' " - "in the docs: should be %d instead of %d.", - nameClass.c_str(), - nameMethod.c_str(), - params.size(), method.GetParamCount()); - } - else { - size_t nParam = 0; - for ( MemberIndex k = params.begin(); - k != params.end(); - k++, nParam++ ) { - ctx = *k; - - // what else can a function have? - wxASSERT( ctx->GetContextType() == SP_CTX_PARAMETER ); - - spParameter *ctxParam = (spParameter *)ctx; - const ParamInfo& param = method.GetParam(nParam); - if ( m_checkParamNames && - (param.GetName() != ctxParam->mName) ) { - foundDiff = TRUE; - - wxLogError("Parameter #%d of '%s::%s' should be " - "'%s' and not '%s'.", - nParam + 1, - nameClass.c_str(), - nameMethod.c_str(), - ctxParam->mName.c_str(), - param.GetName().c_str()); - - continue; - } - - if ( param.GetType() != ctxParam->mType ) { - foundDiff = TRUE; - - wxLogError("Type of parameter '%s' of '%s::%s' " - "should be '%s' and not '%s'.", - ctxParam->mName.c_str(), - nameClass.c_str(), - nameMethod.c_str(), - ctxParam->mType.c_str(), - param.GetType().GetName().c_str()); - - continue; - } - - if ( param.GetDefValue() != ctxParam->mInitVal ) { - wxLogWarning("Default value of parameter '%s' of " - "'%s::%s' should be '%s' and not " - "'%s'.", - ctxParam->mName.c_str(), - nameClass.c_str(), - nameMethod.c_str(), - ctxParam->mInitVal.c_str(), - param.GetDefValue().c_str()); - } - } - } - } - else { - // TODO OVER add real support for overloaded methods - - if ( m_ignoreNames.IgnoreMethod(nameClass, nameMethod) ) - continue; - - if ( aOverloadedMethods.Index(nameMethod) == wxNOT_FOUND ) { - // mark all methods with this name as existing - for ( nMethod = 0; nMethod < countMethods; nMethod++ ) { - if ( methods[nMethod]->GetName() == nameMethod ) - methodExists[nMethod] = TRUE; - } - - aOverloadedMethods.Add(nameMethod); - - wxLogVerbose("'%s::%s' is overloaded and I'm too " - "stupid to find the right match - skipping " - "the param and flags checks.", - nameClass.c_str(), - nameMethod.c_str()); - } - //else: warning already given - } - } - - for ( nMethod = 0; nMethod < countMethods; nMethod++ ) { - if ( !methodExists[nMethod] ) { - const wxString& nameMethod = methods[nMethod]->GetName(); - if ( !m_ignoreNames.IgnoreMethod(nameClass, nameMethod) ) { - foundDiff = TRUE; - - wxLogError("'%s::%s' is documented but doesn't exist.", - nameClass.c_str(), - nameMethod.c_str()); - } - } - } - - delete [] methodExists; - } - - // check that all classes we found in the docs really exist - for ( nClass = 0; nClass < countClassesInDocs; nClass++ ) { - if ( !classExists[nClass] ) { - foundDiff = TRUE; - - wxLogError("Class '%s' is documented but doesn't exist.", - m_classes[nClass].c_str()); - } - } - - delete [] classExists; - - return !foundDiff; -} - -DocManager::~DocManager() -{ - WX_CLEAR_ARRAY(m_methods); -} - -// --------------------------------------------------------------------------- -// IgnoreNamesHandler implementation -// --------------------------------------------------------------------------- - -int IgnoreNamesHandler::CompareIgnoreListEntries(IgnoreListEntry *first, - IgnoreListEntry *second) -{ - // first compare the classes - int rc = first->m_classname.Cmp(second->m_classname); - if ( rc == 0 ) - rc = first->m_funcname.Cmp(second->m_funcname); - - return rc; -} - -bool IgnoreNamesHandler::AddNamesFromFile(const wxString& filename) -{ - wxFile file(filename, wxFile::read); - if ( !file.IsOpened() ) - return FALSE; - - off_t len = file.Length(); - if ( len == wxInvalidOffset ) - return FALSE; - - char *buf = new char[len + 1]; - buf[len] = '\0'; - - if ( file.Read(buf, len) == wxInvalidOffset ) { - delete [] buf; - - return FALSE; - } - - wxString line; - for ( const char *current = buf; ; current++ ) { -#ifdef __WXMSW__ - // skip DOS line separator - if ( *current == '\r' ) - current++; -#endif // wxMSW - - if ( *current == '\n' || *current == '\0' ) { - if ( line[0u] != '#' ) { - if ( line.Find(':') != wxNOT_FOUND ) { - wxString classname = line.BeforeFirst(':'), - funcname = line.AfterLast(':'); - m_ignore.Add(new IgnoreListEntry(classname, funcname)); - } - else { - // entire class - m_ignore.Add(new IgnoreListEntry(line, "")); - } - } - //else: comment - - if ( *current == '\0' ) - break; - - line.Empty(); - } - else { - line += *current; - } - } - - delete [] buf; - - return TRUE; -} - -// ----------------------------------------------------------------------------- -// global function implementation -// ----------------------------------------------------------------------------- - -static wxString MakeLabel(const char *classname, const char *funcname) -{ - wxString label(classname); - if ( funcname && funcname[0] == '\\' ) { - // we may have some special TeX macro - so far only \destruct exists, - // but may be later others will be added - static const char *macros[] = { "destruct" }; - static const char *replacement[] = { "dtor" }; - - size_t n; - for ( n = 0; n < WXSIZEOF(macros); n++ ) { - if ( strncmp(funcname + 1, macros[n], strlen(macros[n])) == 0 ) { - // found - break; - } - } - - if ( n == WXSIZEOF(macros) ) { - wxLogWarning("unknown function name '%s' - leaving as is.", - funcname); - } - else { - funcname = replacement[n]; - } - } - - if ( funcname ) - label << funcname; - - label.MakeLower(); - - return label; -} - -static wxString MakeHelpref(const char *argument) -{ - wxString helpref; - helpref << "\\helpref{" << argument << "}{" << MakeLabel(argument) << '}'; - - return helpref; -} - -static void TeXUnfilter(wxString* str) -{ - // FIXME may be done much more quickly - str->Trim(TRUE); - str->Trim(FALSE); - - str->Replace("\\&", "&"); - str->Replace("\\_", "_"); -} - -static void TeXFilter(wxString* str) -{ - // FIXME may be done much more quickly - str->Replace("&", "\\&"); - str->Replace("_", "\\_"); -} - -static wxString GetAllComments(const spContext& ctx) -{ - wxString comments; - const MCommentListT& commentsList = ctx.GetCommentList(); - for ( MCommentListT::const_iterator i = commentsList.begin(); - i != commentsList.end(); - i++ ) { - wxString comment = (*i)->GetText(); - - // don't take comments like "// ----------" &c - comment.Trim(FALSE); - if ( !!comment && - comment == wxString(comment[0u], comment.length() - 1) + '\n' ) - comments << "\n"; - else - comments << comment; - } - - return comments; -} - -static const char *GetCurrentTime(const char *timeFormat) -{ - static char s_timeBuffer[128]; - time_t timeNow; - struct tm *ptmNow; - - time(&timeNow); - ptmNow = localtime(&timeNow); - - strftime(s_timeBuffer, WXSIZEOF(s_timeBuffer), timeFormat, ptmNow); - - return s_timeBuffer; -} - -/* - $Log$ - Revision 1.7 1999/02/21 22:32:32 VZ - 1. more C++ parser fixes - now it almost parses wx/string.h - a) #if/#ifdef/#else (very) limited support - b) param type fix - now indirection chars are correctly handled - c) class/struct/union distinction - d) public/private fixes - e) Dump() function added - very useful for debugging - - 2. option to ignore parameter names during 'diff' (in fact, they're ignored - by default, and this option switches it on) - - Revision 1.6 1999/02/20 23:00:26 VZ - 1. new 'diff' mode which seems to work - 2. output files are not overwritten in 'dmup' mode - 3. fixes for better handling of const functions and operators - ---------------------------- - revision 1.5 - date: 1999/02/15 23:07:25; author: VZ; state: Exp; lines: +106 -45 - 1. Parser improvements - a) const and virtual methods are parsed correctly (not static yet) - b) "const" which is part of the return type is not swallowed - - 2. HelpGen improvements: -o outputdir parameter added to the cmd line, - "//---------" kind comments discarded now. - ---------------------------- - revision 1.4 - date: 1999/01/13 14:23:31; author: JS; state: Exp; lines: +4 -4 - - some tweaks to HelpGen - ---------------------------- - revision 1.3 - date: 1999/01/09 20:18:03; author: JS; state: Exp; lines: +7 -2 - - HelpGen starting to compile with VC++ - ---------------------------- - revision 1.2 - date: 1999/01/08 19:46:22; author: VZ; state: Exp; lines: +208 -35 - - supports typedefs, generates "See also:" and adds "virtual " for virtual - functions - ---------------------------- - revision 1.1 - date: 1999/01/08 17:45:55; author: VZ; state: Exp; - - HelpGen is a prototype of the tool for automatic generation of the .tex files - for wxWindows documentation from C++ headers -*/ - -/* vi: set tw=80 et ts=4 sw=4: */ diff --git a/utils/HelpGen/src/HelpGen.rc b/utils/HelpGen/src/HelpGen.rc deleted file mode 100644 index 626b82f58a..0000000000 --- a/utils/HelpGen/src/HelpGen.rc +++ /dev/null @@ -1,3 +0,0 @@ -/* mondrian ICON "mondrian.ico" */ -#include "wx/msw/wx.rc" - diff --git a/utils/HelpGen/src/cjparser.cpp b/utils/HelpGen/src/cjparser.cpp deleted file mode 100644 index a623a28611..0000000000 --- a/utils/HelpGen/src/cjparser.cpp +++ /dev/null @@ -1,2294 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "acell.h" -#pragma interface -#endif - -// 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 "cjparser.h" - -#if defined( wxUSE_TEMPLATE_STL ) - - #include - -#else - - #include "wxstlac.h" - -#endif - - -/***** Implementation for class SJParser *****/ - -// statics used by inline'ed C helper-functions -static char* _gSrcStart = 0; -static char* _gSrcEnd = 0; -static char* _gLastSuppresedComment = 0; -static int _gLineNo = 0; - -// FOR NOW:: comments queue is static -#define MAX_CQ_ENTRIES 128 -static char* _gCommentsQueue[MAX_CQ_ENTRIES]; -static int _gCQSize = 0; - -/***** keyword map related structures *****/ - -struct less_c_str -{ - inline bool operator()( char* x, char* y) const - { return ( strcmp( x,y ) < 0 ); - } -}; - -//WXSTL_MAP(CharPtrT,CharPtrT, LESS_THEN_FUNCTOR(CharPtrT)); - -#if defined( wxUSE_TEMPLATE_STL ) - - typedef map< char*, char*, less_c_str > KeywordMapT; - -#else - - typedef char* CharPtrT; - typedef WXSTL_MAP( CharPtrT, CharPtrT ,less_c_str) KeywordMapT; - -#endif - -static KeywordMapT __gMultiLangMap; -static int __gMapReady = 0; - -static char* __gKeyWords[] = -{ - "public", - "protected", - "private", - - "class", - "struct", - "union", - "enum", - "interface", - - "package", - "import", - - "typedef", - "template", - "friend", - "const", - "volatile", - "mutable", - "virtual", - "inline", - "static", - "register", - - "final", - "abstract", - "native", - - "__stdcall", - "extern", - - 0 -}; - -static void check_keyword_map() -{ - if ( !__gMapReady ) - { - __gMapReady = 1; - - // "make sure" the address of the first member of non-polimorphic class - // coinsides with the address of the instance - - char** keyword = __gKeyWords; - - while ( (*keyword) != 0 ) - { - __gMultiLangMap.insert( - KeywordMapT::value_type( *keyword, *keyword ) - ); - - ++keyword; - } - } -} - -/***** helper functions *****/ - -static inline void skip_to_eol( char*& cur ) -{ - while( *(cur) != 10 && *cur != 13 && cur < _gSrcEnd) ++cur; -} - -static inline void skip_eol( char*& cur ) -{ - if ( *cur == 13 ) - - cur += 2; - else - cur += 1; - - ++_gLineNo; -} - -static inline bool skip_to_next_comment_in_the_line( char*& cur ) -{ - do - { - while( cur < _gSrcEnd && - *cur != 10 && - *cur != 13 && - *cur != '/' - ) ++cur; - - if ( cur == _gSrcEnd ) return FALSE; - - if ( *cur == '/' ) - { - if ( (*(cur+1) == '*') || - (*(cur+1) == '/') ) return TRUE; - else - { - ++cur; - continue; - } - } - - return FALSE; - - } while(1); -} - -inline static void store_line_no( int& toVar ) -{ - toVar = _gLineNo; -} - -inline static void restore_line_no( int storedLineNo ) -{ - _gLineNo = storedLineNo; -} - -inline static int get_line_no() -{ - return _gLineNo; -} - -static void skip_to_prev_line( char*& cur ) -{ - while( cur >= _gSrcStart && - *cur != 10 && - *cur != 13 - ) --cur; - - // NOTE:: '\n' is 13,10 for DOS - // '\n' is 10 for UNIX - - // NOTE1: '\n' symbol is not used here, - // to provide possibility of loading - // file as binary - - --cur; - if ( *cur == 10 ) - { - ++cur; - return; - } - - if ( *cur == 13 ) --cur; - - while( cur >= _gSrcStart && - *cur != 10 && - *cur != 13 - ) --cur; - - ++cur; // move to the first character in the line -} - -static inline void skip_comments( char*& cur ) -{ - ++cur; // skip '/' token - - if ( *cur != '/' && *cur != '*' ) return; - - // first, store position of the comment into the queue - // (which further will be attached to the next context - // found) - - if ( cur-1 != _gLastSuppresedComment ) - { - if ( _gCQSize == MAX_CQ_ENTRIES ) - { - size_t i = MAX_CQ_ENTRIES-1; - - while( i != 0 ) - { - _gCommentsQueue[i-1] = _gCommentsQueue[i]; - --i; - } - - --_gCQSize ; - } - - _gCommentsQueue[_gCQSize++] = cur-1; - } - - // if signle-line comment, skip it now - if ( *cur == '/' ) - { - skip_to_eol( cur ); - skip_eol( cur ); - return; - } - - size_t level = 1; - - // check for multiline comment (handle nested multiline comments!) - - int line_len = 0; - - ++cur; - ++cur; - do - { - // TBD:: check eof cond. - - // detect and remove vertical columns of '*''s - - while ( *cur != '/' && cur < _gSrcEnd ) - { - switch (*cur) - { - case '*' : - { - if ( *(cur+1) != '/' ) - { - if ( line_len == 1 ) - - *cur = ' '; - } - - break; - } - - case 13 : line_len = 0; break; - case 10 : { line_len = 0; ++_gLineNo; } break; - - default : ++line_len; - } - - ++cur; - } - - if ( cur >= _gSrcEnd ) return; - - ++cur; - - if ( *(cur-2) == '*' ) - { - --level; - if ( level == 0 ) - break; - } - else - if ( *cur == '*' ) - { - ++cur; - ++cur; - - ++level; - } - - } while(1); -} - -static inline void clear_commets_queue() -{ - _gCQSize = 0; -} - -static inline void skip_quoted_string( char*& cur ) -{ - ++cur; // skip first quote '"' - - // check if quote wasn't prefixed - if ( *(cur-2) == '\\' ) - return; - - do - { - while ( *cur != '"' && cur < _gSrcEnd ) - { - if ( *cur == 10 ) ++_gLineNo; - ++cur; - } - - if ( cur >= _gSrcEnd ) return; - - ++cur; // skip the last quote - - // check if it wasn't prefixed - - if ( *(cur-2) != '\\' ) - break; - - } while (1); -} - -// skips subsequent white space and comments -// (return false if the end of source code reached) - -static inline bool get_next_token( char*& cur ) -{ - for( ; cur < _gSrcEnd; ++cur ) - { - switch( *(cur) ) - { - case ' ' : continue; - case '\t': continue; - case 13 : continue; - - case 10 : { ++_gLineNo;continue; } - - case '/' : skip_comments( cur ); - --cur; - continue; - - default : break; - }; - - break; - } - - if ( cur >= _gSrcEnd ) - - return FALSE; - else - return TRUE; -} - -static inline void skip_preprocessor_dir( char*& cur ) -{ - do - { - skip_to_eol(cur); - - if ( *(cur-1) != '\\' ) - break; - - if ( cur < _gSrcEnd ) - skip_eol( cur ); - else - break; - - } while(1); -} - -static void skip_token( char*& cur ) -{ - if ( *cur == '"' ) - { - skip_quoted_string( cur ); - return; - } - - if ( *cur == ',' || - *cur == ';' || - *cur == ')' || - *cur == '(' - ) - { - ++cur; - return; - } - - // special case of "!=", "<=", ... 2 character composite tokens - if ( *cur == '<' || - *cur == '>' || - *cur == '=' || - *cur == '!' - ) - { - cur++; - if ( *cur == '=' ) - cur++; - - return; - } - - ++cur; // leading character is always skipped - - for( ; cur < _gSrcEnd ; ++cur ) - { - switch ( *cur ) - { - case ' ' : break; - case '\t': break; - case 13 : break; - case 10 : break; - case ',' : break; - case ';' : break; - case '<' : break; - case '>' : break; - - // FIXME:: QUICK-HACK:: to treat scope resolution - // tokens are a part of the string - e.g. SomeSpace::SubName would - // become one token - - case ':' : if ( *(cur+1) == ':' ) - { - ++cur; - continue; - } - - break; - case '=' : break; - case '(' : break; - case ')' : break; - case '{' : break; - case '}' : break; - - default : continue; - }; - break; - } -} - -static inline size_t get_token_len( char* tok ) -{ - char* start = tok; - - skip_token( tok ); - - return size_t( tok - start ); -} - -// returns true, if given tokens are equel - -static inline bool cmp_tokens( char* tok1, char* tok2 ) -{ - // NOTE:: the case one token includes - // other in it's entirely is not handled - - size_t len = get_token_len( tok1 ); - - // assuming that tokens are non-zero length - - do - { - if ( *(tok1++) != *(tok2++) ) - return FALSE; - - --len; - - } while ( --len ); - - return TRUE; -} - -static inline bool cmp_tokens_fast( char* tok1, char* tok2, size_t len ) -{ - do - { - if ( *(tok1++) != *(tok2++) ) - return FALSE; - - } while ( --len ); - - return TRUE; -} - -static inline void skip_tempalate_statement( char*& cur ) -{ - size_t level = 0; - - // go one level deeper - while( *cur != '<' && cur < _gSrcEnd ) - { - if (*cur == 10 ) ++_gLineNo; - ++cur; - } - - // FIXME:: template should be checked statement for - // comments inside of it - - do - { - if ( *cur == '<' ) - ++level; - else - --level; - - ++cur; // skip '<' or '>' token - - if ( level == 0 ) - return; - - while( *cur != '<' && *cur != '>' && cur < _gSrcEnd ) - { - if (*cur == 10 ) ++_gLineNo; - ++cur; - } - - } while (1); -} - -static inline void skip_statement( char*& cur ) -{ - for( ; cur < _gSrcEnd; ++cur ) - - switch (*cur) - { - case ';' : ++cur; // skip statement-terminator token - return; - - case '"' : skip_quoted_string(cur); - --cur; - continue; - - case 10 : ++_gLineNo; - - continue; - case '/' : skip_comments( cur ); - --cur; - continue; - default : continue; - } -} - -// "reversed" versions of skip_token() and get_next_token() - -static inline void skip_token_back( char*& cur ) -{ - // FIXME:: now, when moving backwards, neither strings nor - // comment blocks are checked - - --cur; // skip to the trailing character - - if ( *cur == ',' || - *cur == ')' || - *cur == '(' - ) - return; - - - for( ; cur < _gSrcEnd ; --cur ) - { - switch ( *cur ) - { - case ' ' : break; - case '\t': break; - case 13 : break; - case 10 : break; - case ',' : break; - case '(' : break; - - default : continue; - }; - - break; - } - - ++cur; // get to the leading character of the token -} - -static inline void skip_next_token_back( char*& cur ) -{ - --cur; // skip leading character of the current token - - if ( *cur == ',' || - *cur == ')' || - *cur == '(' - ) - { - ++cur; - return; - } - - for( ; cur < _gSrcEnd; --cur ) - { - switch ( *cur ) - { - case ' ' : continue; - case '\t': continue; - case 13 : continue; - case 10 : continue; - case ',' : continue; - case '(' : continue; - - default : break; - }; - - break; - } - - ++cur; // position after the trailing charcter of the prev token -} - -static string get_token_str( char* cur ) -{ - return string( cur, get_token_len( cur ) ); -} - -// skips token or whole expression which may have -// nested expressions between '(' ')' brackets. -// -// Upon return, the cursor points to the terminating bracket ')', -// -// Return value is the size of the block - -static size_t skip_block( char*& cur ) -{ - size_t level = 0; // nesting level - - char* start = cur; - - // NOTE:: assumed that block not necessarely starts - // with bracket rightaway - - if ( *cur == '(' ) - { - ++level; - } - - do - { - skip_token( cur ); - - char* savedPos = cur; - int tmpLnNo; - store_line_no( tmpLnNo ); - - get_next_token( cur ); - - if ( cur >= _gSrcEnd ) return 0; - - if ( *cur == '(' ) - { - ++level; - } - else - if ( *cur == ')' ) - { - if ( level == 0 ) - { - cur = savedPos; - restore_line_no( tmpLnNo ); - - return size_t(cur-start); - } - - --level; - - if ( level == 0 ) - { - ++cur; - - // QUICK-HACK::to easily handle function prototypes , - // it works, besause theoretically there should - // be no cast-expressions in non-implementation - // scope (e.g. "time( (long*)(ptr+1) )" should not - // appear in the declarations, thus it is most likelly - // for the ")(" fragment to be within a function - // prototype in the declarations scope - - if ( *cur == '(' ) - { - ++level; - continue; - } - - else return size_t(cur-start); - } - } - else - { - if ( level == 0 ) - { - cur = savedPos; - restore_line_no( tmpLnNo ); - - return size_t(cur-start); - } - } - - } while(1); -} - -// returns 0, if end of source reached -static inline bool skip_imp_block( char*& cur ) -{ - while( *cur != '{' && cur < _gSrcEnd ) - { - skip_token( cur ); - if ( !get_next_token( cur ) ) return FALSE; - } - - while( *cur != '}' && cur < _gSrcEnd ) - { - skip_token( cur ); - if ( !get_next_token( cur ) ) return FALSE; - } - - ++cur; - - return TRUE; -} - -static bool is_class_token( char*& cur ) -{ - // FIXME:: the below mess should be cleaned in it's entirely - - if ( *cur == 'i' ) - if ( *(cur+1) == 'n' ) - - return cmp_tokens_fast( cur, "interface", 9 ); - - if ( *cur == 'c' ) - if ( *(cur+1) == 'l' ) - - return cmp_tokens_fast( cur, "class", 5 ); - - if ( *cur == 's' ) - if ( *(cur+1) == 't' ) - - return cmp_tokens_fast( cur, "struct", 6 ); - - if ( *cur == 'u' ) - if ( *(cur+1) == 'n' ) - - return cmp_tokens_fast( cur, "union", 5 ); - - return FALSE; -} - -inline static bool is_forward_decl( char* cur ) -{ - do - { - switch( *cur ) - { - case ':' : return FALSE; - case '{' : return FALSE; - case '(' : return FALSE; - - case ';' : return TRUE; - - default : break; - }; - - ++cur; - - } while (cur < _gSrcEnd); // prevent running out of bounds - - return FALSE; -} - -inline static bool is_function( char* cur, bool& isAMacro ) -{ - isAMacro = FALSE; - - int tmpLnNo; - store_line_no( tmpLnNo ); - - // NOTE:: comments and quoted strings are not checked here - - // first,check for "single-line hanginging macros" like: - // ___UNICODE - // - - char* eol = cur; - skip_to_eol( eol ); - - skip_token( cur ); - get_next_token( cur ); - - if ( cur > eol ) - { - isAMacro = TRUE; - restore_line_no( tmpLnNo ); - - return TRUE; - } - - // it's not a macro, go to the begining of arg. list - - do - { - // if bracket found, it's a function or a begining - // of some macro - if ( *cur == '(' ) - { - restore_line_no( tmpLnNo ); - return TRUE; - } - - // end of statement found without any brackets in it - // - it cannot be a function - - if ( *cur == ';' ) - { - restore_line_no( tmpLnNo ); - return FALSE; - } - - ++cur; - - } while( cur < _gSrcEnd); - - isAMacro = 1; - restore_line_no( tmpLnNo ); - - return FALSE; -} - -// upon return the cursor is positioned after the -// terminating curly brace - -static inline void skip_scope_block( char*& cur ) -{ - size_t level = 0; - - for( ; cur < _gSrcEnd ; ++cur ) - - switch( *cur ) - { - case '/' : skip_comments( cur ); - --cur; - continue; - case '"' : skip_quoted_string( cur ); - --cur; - continue; - - case '{' : ++level; - continue; - - case '}' :--level; - if ( level == 0 ) - { - ++cur; // skip final closing curly brace - return; - } - - case 10 : ++_gLineNo; continue; - - default : continue; - }; -} - -// moves tokens like '*' '**', '***', '&' from the name -// to the type - -static void arrange_indirection_tokens_between( string& type, - string& identifier ) -{ - // TBD:: FIXME:: return value of operators ! - - while ( identifier[0] == '*' || - identifier[0] == '&' - ) - { - type += identifier[0]; - identifier.erase(0,1); - - if ( !identifier.length() ) return; - } -} - - -// the only function where multi-lang keyword map is accessed - -static bool is_keyword( char* cur ) -{ - size_t len = get_token_len( cur ); - - // put a terminating zero after the given token - char tmp = *(cur + len); - *(cur+len) = '\0'; - - KeywordMapT::iterator i; - - i = __gMultiLangMap.find( cur ); - - // restore original character suppresed by terminating zero - *(cur + len) = tmp; - - return i == __gMultiLangMap.end() ? false : true; -} - -static inline void get_string_between( char* start, char* end, - string* pStr ) -{ - char saved = *end; - - *end = '\0'; - *pStr = start; - *end = saved; -} - -static char* set_comment_text( string& text, char* start ) -{ - char* end = start; - - // to avoid poluting the queue with this comment - _gLastSuppresedComment = start; - - skip_comments( end ); - - if ( *(end-1) == '/' ) - end -= 2; - - start += 2; - - // skip multiple leading '/''s or '*''s - while( *start == '/' && start < end ) ++start; - while( *start == '*' && start < end ) ++start; - - get_string_between( start, end, &text ); - - return end; -} - -/***** Implementation for class CJSourceParser *****/ - -CJSourceParser::CJSourceParser( bool collectCommnets, bool collectMacros ) - : mpStart(0), - mpEnd(0), - mpCurCtx( 0 ), - mCommentsOn( collectCommnets ), - mMacrosOn ( collectMacros ) -{ - check_keyword_map(); -} - -spFile* CJSourceParser::Parse( char* start, char* end ) -{ - // set up state variables - mCurVis = SP_VIS_PRIVATE; - - spFile* pTopCtx = new spFile(); - mpCurCtx = pTopCtx; - - mIsVirtual = 0; - mIsTemplate = 0; - mNestingLevel = 0; - - cur = start; - - mpStart = start; - mpEnd = end; - - _gSrcEnd = mpEnd; // let all the C-functions "smell" the end of file - _gSrcStart = start; - - _gLineNo = 0; - - clear_commets_queue(); - - // main parsing loop - - do - { - if ( !get_next_token( cur ) ) - // end of source reached - return pTopCtx; - - if ( memcmp( cur, "ScriptSection( const string&", - strlen( "ScriptSection( const string&" ) - ) == 0 - ) - { - int o = 0; - ++o; - } - - switch (*cur) - { - case '#' : - { - AddMacroNode( cur ); - continue; - } - - case ':' : - { - skip_token( cur ); - continue; - } - - case ';' : - { - skip_token( cur ); - continue; - } - - case ')' : - { - skip_token( cur ); - continue; - } - - case '=' : - { - skip_token( cur ); - continue; - } - - default: break; - } - - // 'const' is a part of the return type, not a keyword here - if ( strncmp(cur, "const", 5) != 0 && is_keyword( cur ) ) - { - // parses, token, if token identifies - // the container context (e.g. class/namespace) - // the corresponding context object is created - // and set as current context - - ParseKeyword( cur ); - continue; - } - - if ( *cur >= '0' && *cur <= '9' ) - { - skip_token( cur ); - continue; - } - - if ( *cur == '}' ) - { - if ( mCurCtxType != SP_CTX_CLASS ) - { - // FOR NOW:: disable the below assertion - - // DBG:: unexpected closing-bracket found - //ASSERT(0); - - skip_token( cur ); // just skip it - continue; - } - - if ( mpCurCtx->GetType() == SP_CTX_CLASS ) - { - int curOfs = ( (cur+1) - _gSrcStart ); - - mpCurCtx->mContextLength = ( curOfs - mpCurCtx->mSrcOffset ); - } - - --mNestingLevel; - - // terminate operation/class/namespace context - // TBD:: check if it's really this type of context - - wxASSERT( mpCurCtx ); - mpCurCtx = mpCurCtx->GetOutterContext(); - wxASSERT( mpCurCtx ); - - if ( mNestingLevel == 0 ) - { - - mCurCtxType = SP_CTX_FILE; - - // not-nested class delclaration finished, - // rest template flag in any case - mIsTemplate = 0; - } - - skip_token( cur ); - continue; - } - - bool isAMacro = 0; - - if ( is_function( cur, isAMacro ) ) - { - if ( isAMacro ) - { - skip_token( cur ); - continue; - } - - char* savedPos = cur; - - int tmpLnNo; - store_line_no( tmpLnNo ); - - isAMacro = FALSE; - - if ( !ParseNameAndRetVal( cur, isAMacro ) ) - { - if ( !isAMacro ) - { - cur = savedPos; - SkipFunction( cur ); - } - continue; - } - - if ( !ParseArguments( cur ) ) - { - // failure while parsing arguments, - // remove enclosing operation context - - spContext* pFailed = mpCurCtx; - mpCurCtx = mpCurCtx->GetOutterContext(); - mpCurCtx->RemoveChild( pFailed ); - - skip_to_eol( cur ); - //cur = savedPos; - } - else - { - // otherwise, successfully close operation context: - - clear_commets_queue(); - - SkipFunctionBody( cur ); - - mpCurCtx = mpCurCtx->GetOutterContext(); - - // DBG:: - wxASSERT( mpCurCtx ); - - } - } - else // otherwise it's declaration of a variable; - { - // now, the cursor point to the end of statement (';' token) - - if ( mCurCtxType != SP_CTX_CLASS ) - { - // non-class members are ignored - - skip_token( cur ); // skip the end of statement - continue; - } - - ParseMemberVar( cur ); - } - - } while( 1 ); -} - -void CJSourceParser::AttachComments( spContext& ctx, char* cur ) -{ - if ( !mCommentsOn ) return; - - MCommentListT& lst = ctx.GetCommentList(); - - char* prevComEnd = 0; - - int tmpLnNo; - store_line_no( tmpLnNo ); - - // attach comments which were found before the given context - - for( int i = 0; i != _gCQSize; ++i ) - { - spComment* pComment = new spComment(); - lst.push_back( pComment ); - - // find the end of comment - char* start = _gCommentsQueue[i]; - - pComment->mIsMultiline = ( *(start+1) == '*' ); - - // first comment in the queue and multiline - // comments are always treated as a begining - // of the new paragraph in the comment text - - if ( i == 0 ) - - pComment->mStartsPar = TRUE; - else - if ( pComment->mIsMultiline ) - - pComment->mStartsPar = TRUE; - else - { - // find out wheather there is a new-line - // between to adjecent comments - - - char* prevLine = start; - skip_to_prev_line(prevLine); - - if ( prevLine >= prevComEnd ) - - pComment->mStartsPar = TRUE; - else - pComment->mStartsPar = FALSE; - } - - prevComEnd = set_comment_text( pComment->mText, start ); - } - - - // attach comments which are at the end of the line - // of the given context (if any) - - if ( skip_to_next_comment_in_the_line( cur ) ) - { - spComment* pComment = new spComment(); - lst.push_back( pComment ); - - set_comment_text( pComment->mText, cur ); - - pComment->mStartsPar = 1; - pComment->mIsMultiline = ( *(cur+1) == '*' ); - - // mark this comment, so that it would not - // get in the comments list of the next context - _gLastSuppresedComment = cur; - } - - restore_line_no( tmpLnNo ); - - clear_commets_queue(); -} - -void CJSourceParser::AddMacroNode( char*& cur ) -{ - char* start = cur; - - int lineNo = get_line_no(); - - skip_preprocessor_dir( cur ); - - int tmpLnNo; - store_line_no( tmpLnNo ); - - if ( !mMacrosOn ) return; - - spPreprocessorLine* pPL = new spPreprocessorLine(); - pPL->mSrcLineNo = lineNo; - - AttachComments( *pPL, cur ); - - get_string_between( start, cur, &pPL->mLine ); - - ++start; // skip '#' - get_next_token( start ); - - pPL->mDefType = SP_PREP_DEF_OTHER; - - // if we found a definition or redefinition, - // determine the type exactly and assign - // a name to the context - - if ( *start == 'd' ) - { - if ( cmp_tokens_fast( start, "define", 6 ) ) - { - char* tok = start+6; - - get_next_token( tok ); - - pPL->mName = get_token_str( tok ); - - skip_token( tok ); - get_next_token( tok); - - - if ( tok > cur ) - pPL->mDefType = SP_PREP_DEF_DEFINE_SYMBOL; - else - pPL->mDefType = SP_PREP_DEF_REDEFINE_SYMBOL; - } - } - else if ( *start == 'i' ) - { - if ( cmp_tokens_fast( start, "include", 7 ) ) - { - pPL->mDefType = SP_PREP_DEF_INCLUDE_FILE; - } - else if ( *++start == 'f' ) - { - // either "#if" or "#ifdef" - cur = start; - skip_token( cur ); - get_next_token( cur ); - - string condition = get_token_str( cur ); - - // currently, everything except '0' is true - if ( condition == "0" ) { - // skip until the following else or enif - while ( cur < _gSrcEnd ) { - skip_to_eol( cur ); - skip_eol( cur ); - - get_next_token( cur ); - if ( *cur++ == '#' && *cur == 'e' ) - break; - } - } - - // TODO parse the condition... - } - } - else if ( cmp_tokens_fast( start, "else", 4 ) ) - { - // skip until "#endif" - while ( cur < _gSrcEnd ) { - skip_to_eol( cur ); - skip_eol( cur ); - - get_next_token( cur ); - if ( *cur++ == '#' && cmp_tokens_fast( cur, "endif", 5 ) ) - break; - } - } - - mpCurCtx->AddMember( pPL ); - - skip_to_eol( cur ); - skip_eol( cur ); - - restore_line_no( tmpLnNo ); - - clear_commets_queue(); -} - -void CJSourceParser::ParseKeyword( char*& cur ) -{ - // analyze token, which identifies the begining of a new context - - if ( CheckVisibilty( cur ) ) - { - skip_token( cur ); - return; - } - - if ( is_class_token( cur ) ) - { - if ( is_forward_decl( cur ) ) - { - // forward declarations are ignored; - skip_token( cur ); - return; - } - - if ( mNestingLevel == 0 ) - { - // change context form global class context - mCurCtxType = SP_CTX_CLASS; - } - - ++mNestingLevel; - - // add information about new class (name, inheritance, etc) - AddClassNode( cur ); - - // the default visiblity for class members is 'private' - mCurVis = SP_VIS_PRIVATE; - - return; - } - - size_t len = get_token_len( cur ); - - if ( cmp_tokens_fast( cur, "typedef", len ) ) - { - skip_token(cur); - get_next_token(cur); - - if ( cmp_tokens_fast( cur, "struct", len ) || - cmp_tokens_fast( cur, "union", len ) || - cmp_tokens_fast( cur, "class", len ) - ) - { - if ( mNestingLevel == 0 ) - { - // change context form global class context - mCurCtxType = SP_CTX_CLASS; - } - - ++mNestingLevel; - - // add information about new class (name, inheritance, etc) - AddClassNode( cur ); - - // the default visiblity for class members is 'private' - mCurVis = SP_VIS_PRIVATE; - - return; - - // FOR NOW:: typedef struct, etc are also ignored - //skip_scope_block( cur ); - } - - if ( cmp_tokens_fast( cur, "enum", len ) ) - { - AddEnumNode( cur ); - return; - } - - AddTypeDefNode( cur ); - - return; - } - - if ( cmp_tokens_fast( cur, "enum", len ) ) - { - AddEnumNode( cur ); - return; - } - - if ( cmp_tokens_fast( cur, "extern", len ) ) - { - // extern's are ignored (both extern "C" and extern vars) - while ( *cur != '{' && - *cur != ';' ) - { - skip_token( cur ); - get_next_token( cur ); - } - return; - - } - if ( cmp_tokens_fast( cur, "enum", len ) ) - { - // enumeration blocks are ignored - - skip_scope_block( cur ); - - get_next_token( cur ); - skip_token( cur ); // skip ';' token; - return; - } - - if ( cmp_tokens_fast( cur, "package", len ) ) - { - // packages are ignored - skip_statement( cur ); - return; - }; - - if ( cmp_tokens_fast( cur, "import", len ) ) - { - // import statements are ignored - skip_statement( cur ); - return; - } - - if ( cmp_tokens_fast( cur, "virtual", len ) ) - { - // probably the virtual method is in front of us; - mIsVirtual = 1; - skip_token( cur ); - return; - } - - if ( cmp_tokens_fast( cur, "template", len ) ) - { - mIsTemplate = 1; - skip_tempalate_statement( cur ); - return; - } - - if ( cmp_tokens_fast( cur, "friend", len ) ) - { - skip_statement( cur ); - return; - } - - // ingnore "unsigificant" tokens (i.e. which do not - // affect the current parsing context) - - skip_token( cur ); -} - -bool CJSourceParser::ParseNameAndRetVal( char*& cur, bool& isAMacro ) -{ - isAMacro = FALSE; - - // FOR NOW:: all functions in the global - // scope are ignored - - int lineNo = get_line_no(); - - char* start = cur; - - bool isVirtual = false; - while( *cur != '(' ) - { - if ( get_token_str( cur ) == "virtual" ) - isVirtual = true; - - skip_token( cur ); - if ( !get_next_token( cur ) ) return FALSE; - } - - char* bracketPos = cur; - char* savedPos = cur + 1; - - int tmpLnNo; - store_line_no( tmpLnNo ); - - // skip gap between function name and start of paramters list - while ( *(cur-1) == ' ' ) - --cur; - - // check if it's not a macro, and let plugin handle it, if so - - if ( mpPlugin ) - { - skip_token_back( cur ); - - char* tmp = cur; - - if ( mpPlugin->CanUnderstandContext( tmp, _gSrcEnd, mpCurCtx ) ) - { - cur = tmp; - - mpPlugin->ParseContext( _gSrcStart, cur, _gSrcEnd, mpCurCtx ); - - isAMacro = TRUE; - - return FALSE; - } - } - - spOperation* pOp = new spOperation(); - - pOp->mSrcLineNo = lineNo; - pOp->mSrcOffset = int( start - _gSrcStart ); - pOp->mHeaderLength = int( bracketPos - start ); - if ( mpCurCtx->GetContextType() == SP_CTX_CLASS ) - pOp->mScope = mpCurCtx->mName; - - mpCurCtx->AddMember( pOp ); - pOp->mVisibility = mCurVis; - pOp->mIsVirtual = isVirtual; - - // add comments about operation - AttachComments( *pOp, cur ); - - // go backwards to method name - skip_token_back( cur ); - - pOp->mName = get_token_str( cur ); - - // checker whether it's not an operator - char chFirst = *pOp->mName.c_str(); - if ( !isalpha(chFirst) && chFirst != '_' && chFirst != '~' ) { - // skip 'operator' - skip_next_token_back( cur ); - skip_token_back( cur ); - - string lastToken = get_token_str( cur ); - if ( lastToken == "operator" ) { - lastToken += pOp->mName; - pOp->mName = lastToken; - } - else { - // ok, it wasn't an operator after all - skip_token( cur ); - } - } - else if ( pOp->mName == "operator" ) { - skip_token( cur ); - get_next_token( cur ); - string oper = get_token_str( cur ); - - pOp->mName += oper; - } - - // go backwards to method return type - skip_next_token_back( cur ); - - if ( cur >= start ) - { - string rettype = string( start, size_t( cur-start ) ); - rettype.Replace("WXDLLEXPORT ", ""); // FIXME just for now... - pOp->mRetType = rettype; - } - - arrange_indirection_tokens_between( pOp->mRetType, pOp->mName ); - - cur = savedPos; - restore_line_no( tmpLnNo ); - - // now, enter operation context - mpCurCtx = pOp; - - return TRUE; -} - -bool CJSourceParser::ParseArguments( char*& cur ) -{ - // DANGER-MACROS:: - - // now cursor position is right after the first opening bracket - // of the function declaration - - char* blocks [16]; // used exclusivelly for iterative "lean out" - // of macros and misc. not-obviouse grammar - // (dirty,, but we cannot do it very nice, - // we're not preprocessor-free C/C++ code) - int blockSizes[16]; - - do - { - size_t blocksSkipped = 0; - - get_next_token( cur ); - - bool first_blk = 1; - - while( *cur != ')' && *cur != ',' ) - { - blocks[blocksSkipped] = cur; - - if ( first_blk ) - { - char* prev = cur; - skip_token( cur ); - - blockSizes[blocksSkipped] = size_t(cur-prev); - - first_blk = 0; - } - else - blockSizes[blocksSkipped] = skip_block( cur ); - - get_next_token( cur ); - ++blocksSkipped; - } - - - if ( blocksSkipped == 1 ) - { - // check if the empty arg. list stressed with "void" inside - if ( cmp_tokens_fast( blocks[0] , "void", 4 ) ) - { - cur++; // skip ')' - - break; - } - - // FIXME:: TBD:: K&R-style function declarations! - - // if only one block enclosed, than it's probably - // some macro, there should be at least two blocks, - // one for argument type and another for it's identifier - return FALSE; - } - - if ( blocksSkipped == 0 ) - { - if ( *cur == 10 ) ++_gLineNo; - ++cur; // skip ')' - - break; // function without paramters - } - - // we should be in the operation context now - spOperation* pOp = (spOperation*)mpCurCtx; - - spParameter* pPar = new spParameter(); - - pOp->AddMember( pPar ); - // FOR NOW:: line number is not exact if argument list is mutiline - pPar->mSrcLineNo = get_line_no(); - - size_t nameBlock = blocksSkipped - 1; - size_t typeBlock = nameBlock - 1; - - // check if default values present - if ( *blocks[typeBlock] == '=' ) - { - // expressions like "int = 5" are ignored, - // since name for paramters is required - if ( blocksSkipped == 3 ) - { - if ( *cur == ')' ) - { - ++cur; - break; - } - else - continue; - } - - pPar->mInitVal = string( blocks[nameBlock], blockSizes[nameBlock] ); - - nameBlock = nameBlock - 2; // skip '=' token and default value block - typeBlock = nameBlock - 1; - } - - // attach comments about the parameter - AttachComments( *pPar, blocks[nameBlock] ); - - // retrieve argument name - pPar->mName = string( blocks[nameBlock], blockSizes[nameBlock] ); - - // retreive argument type - - size_t len = blockSizes[ typeBlock ]; - len = size_t ( (blocks[ typeBlock ] + len) - blocks[ 0 ] ); - - pPar->mType = string( blocks[0], len ); - - arrange_indirection_tokens_between( pPar->mType, pPar->mName ); - - if ( *cur == ')' ) - { - ++cur; - break; - } - - ++cur; // skip comma - get_next_token(cur); - - } while(1); - - // skip possible whitespace between ')' and following "const" - while ( isspace(*cur) ) - cur++; - - // check if it was really a function not a macro, - // if so, than it should be terminated with semicolon ';' - // or opening implemenetaton bracket '{' - - char* tok = cur; - - int tmpLnNo; - store_line_no( tmpLnNo ); - - do - { - if ( *tok == '{' || *tok == ';' ) - { - restore_line_no(tmpLnNo); - return TRUE; - } - - // check for unexpected tokens - if ( *tok == '=' || *tok == '0' ) - { - skip_token(tok); - if ( !get_next_token(tok) ) return FALSE; - continue; - } - - if ( *tok == '}' ) return FALSE; - - // if initialization list found - if ( *tok == ':' ) - { - restore_line_no(tmpLnNo); - return TRUE; - } - - if ( cmp_tokens_fast( tok, "const", 5 ) ) - { - ((spOperation*)mpCurCtx)->mIsConstant = true; - - skip_token(tok); - if ( !get_next_token(tok) ) return FALSE; - continue; - } - - if ( CheckVisibilty( tok ) ) return FALSE; - - // if next context found - if ( is_keyword( tok ) ) return FALSE; - - skip_token(tok); - if ( !get_next_token(tok) ) return FALSE; - - } while(1); - - return TRUE; -} - -void CJSourceParser::ParseMemberVar( char*& cur ) -{ - MMemberListT& members = mpCurCtx->GetMembers(); - - bool firstMember = 1; - - size_t first = 0; - - string type; - - // jump to the end of statement - // and start collecting same-type varibles - // back-to-front towards the type identifier - - skip_statement( cur ); - char* savedPos = cur; - - int tmpLnNo; - store_line_no( tmpLnNo ); - - --cur; // rewind back to ';' - - do - { - spAttribute* pAttr = new spAttribute(); - // FOR NOW:: line not is not exact, if member declaration is multiline - pAttr->mSrcLineNo = get_line_no(); - - mpCurCtx->AddMember( pAttr ); - pAttr->mVisibility = mCurVis; - - pAttr->mIsConstant = 0; - - if ( firstMember ) - { - firstMember = 0; - first = members.size() - 1;; - } - - skip_token_back( cur ); - - // attach comments about the attribute - AttachComments( *pAttr, cur ); - - pAttr->mName = get_token_str( cur ); - - // guessing that this going to be variable type - skip_next_token_back( cur ); - skip_token_back( cur ); - - pAttr->mType = get_token_str( cur ); - - // if comma, than variable list continues - // otherwise the variable type reached - stop - - if ( *cur == '=' ) - { - // yes, we've mistaken, it was not a identifier, - // but it's default value - pAttr->mInitVal = - pAttr->mName; - - // skip default value and '=' symbol - skip_next_token_back( cur ); - skip_token_back( cur ); - - pAttr->mName = get_token_str( cur ); - - skip_next_token_back( cur ); - skip_token_back( cur ); - } - - if ( *cur != ',' ) - { - type = get_token_str( cur ); - break; - } - - } while(1); - - first = 0; - - // set up types for all collected (same-type) attributes; - while ( first != members.size() - 1 ) - { - spAttribute* pAttr = members[first++]->CastToAttribute(); - if ( !pAttr ) - continue; - - if ( !pAttr->mType ) - pAttr->mType = type; - pAttr->mVisibility = mCurVis; - - if ( !!pAttr->mName ) - arrange_indirection_tokens_between( pAttr->mType, pAttr->mName ); - } - - cur = savedPos; - restore_line_no( tmpLnNo ); - - clear_commets_queue(); - - -} - -void CJSourceParser::SkipFunction( char*& cur ) -{ - while ( *cur != '(' && cur < _gSrcEnd ) - { - if (*cur == 10 ) ++_gLineNo; - ++cur; - } - - skip_next_token_back( cur ); // go back and skip function identifier - skip_token_back( cur ); // go back and skip return type - - skip_block( cur ); // now, go ahead and skip whole declaration - - SkipFunctionBody( cur ); - -} - -void CJSourceParser::SkipFunctionBody( char*& cur ) -{ - // FIXME:: check for comments and quoted stirngs here - - bool hasDefinition = FALSE; - - while( *cur != '{' && *cur != ';' ) - { - if (*cur == 10 ) ++_gLineNo; - ++cur; - } - - if ( *cur == ';' ) - { - ++cur; - } - else - { - hasDefinition = TRUE; - - skip_scope_block( cur ); // skip the whole imp. - } - - if ( mpCurCtx->GetType() == SP_CTX_OPERATION ) - { - spOperation& op = *((spOperation*)mpCurCtx); - - int curOfs = int ( cur - _gSrcStart ); - - op.mContextLength = curOfs - mpCurCtx->mSrcOffset; - - op.mHasDefinition = hasDefinition; - - // separate scope resolution token from the name of operation - - for( size_t i = 0; i != op.mName.length(); ++i ) - { - if ( op.mName[i] == ':' && op.mName[i+1] == ':' ) - { - string unscoped( op.mName, i+2, op.mName.length() - ( i + 2 ) ); - - op.mScope = string( op.mName, 0, i ); - - op.mName = unscoped; - - break; - } - } - } -} - -bool CJSourceParser::CheckVisibilty( char*& cur ) -{ - size_t len = get_token_len( cur ); - - if ( cmp_tokens_fast( cur, "public:", len ) ) - { - mCurVis = SP_VIS_PUBLIC; - return TRUE; - } - - if ( cmp_tokens_fast( cur, "protected:", len ) ) - { - mCurVis = SP_VIS_PROTECTED; - return TRUE; - } - - if ( cmp_tokens_fast( cur, "private:", len ) ) - { - mCurVis = SP_VIS_PRIVATE; - return TRUE; - } - - return FALSE; -} - -void CJSourceParser::AddClassNode( char*& cur ) -{ - char* ctxStart = cur; - - string classkeyword = get_token_str( cur ); - - skip_token( cur ); // skip 'class' keyword - if ( !get_next_token( cur ) ) return; - - // in C++ - if ( *cur == ':' ) - { - skip_token( cur ); - get_next_token( cur ); - } - - // by default all class members are private - mCurVis = SP_VIS_PRIVATE; - - spClass* pClass = new spClass(); - if ( classkeyword == "class" ) - pClass->mClassSubType = SP_CLTYPE_CLASS; - else if ( classkeyword == "struct" ) { - pClass->mClassSubType = SP_CLTYPE_STRUCTURE; - - mCurVis = SP_VIS_PUBLIC; - } - else if ( classkeyword == "union" ) { - pClass->mClassSubType = SP_CLTYPE_UNION; - - mCurVis = SP_VIS_PUBLIC; - } - else if ( classkeyword == "interface" ) - pClass->mClassSubType = SP_CLTYPE_INTERFACE; - else { - pClass->mClassSubType = SP_CLTYPE_INVALID; - - wxFAIL_MSG("unknown class keyword"); - } - - mpCurCtx->AddMember( pClass ); - - // attach comments about the class - AttachComments( *pClass, cur ); - - pClass->mSrcLineNo = get_line_no(); - - pClass->mSrcOffset = int( ctxStart - _gSrcStart ); - - char* nameTok = cur; - pClass->mName = get_token_str( cur ); - - bool isDerived = 0; - - // DANGER-MACROS:: - - do - { - skip_token( cur ); - if ( !get_next_token( cur ) ) return; - - if ( *cur == ':' ) - { - isDerived = 1; - - char* tok = cur; - - int tmpLn; - store_line_no( tmpLn ); - - skip_next_token_back( tok ); - skip_token_back( tok ); - - restore_line_no( tmpLn ); - - // class name should precend ':' colon, thus - // the one which was captured before was - // proablty something else (like __dllexport MyClass : ... ) - - if ( nameTok != tok ) - { - pClass->mName = get_token_str( tok ); - } - - } - - if ( *cur == '{' ) - break; - - if ( *cur == ',' ) - continue; - - size_t len = get_token_len( cur ); - - // skip neglectable C++ modifieres - if ( cmp_tokens_fast( cur, "public", len ) ) - continue; - - if ( cmp_tokens_fast( cur, "protected", len ) ) - continue; - - if ( cmp_tokens_fast( cur, "private", len ) ) - continue; - - if ( cmp_tokens_fast( cur, "virtual", len ) ) - continue; - - // skip neglectable JAVA modifieres - - if ( cmp_tokens_fast( cur, "extends", len ) ) - { - isDerived = 1; - continue; - } - - if ( cmp_tokens_fast( cur, "implements", len ) ) - { - isDerived = 1; - continue; - } - - // all we need to know is superclass or interface - - char* tok = cur; - int tmpLn; - store_line_no( tmpLn ); - - skip_token(tok); - get_next_token(tok); - - restore_line_no( tmpLn ); - - if ( *tok != ':' && *cur != ':' ) - - pClass->mSuperClassNames.push_back( string( cur, len ) ); - - } while(1); - - if ( !isDerived ) - { - int tmpLn; - store_line_no( tmpLn ); - - while ( pClass->mSuperClassNames.size() ) - - pClass->mSuperClassNames.erase( &pClass->mSuperClassNames[0] ); - - char* tok = cur; - - // some non-obviouse token was following "class" keyword - - // we've confused it with class name - thus now we're reverting this mistake - - skip_next_token_back( tok ); - skip_token_back( tok ); - - pClass->mName = get_token_str( tok ); - - restore_line_no( tmpLn ); - } - - - ++cur; // skip opening curly brace - - pClass->mHeaderLength = ( cur - ctxStart ); - - // now, enter the class context - mpCurCtx = pClass; - - clear_commets_queue(); -} - -void CJSourceParser::AddEnumNode( char*& cur ) -{ - // now the cursor is at "enum" keyword - char* start = cur; - - spEnumeration* pEnum = new spEnumeration(); - mpCurCtx->AddMember( pEnum ); - - pEnum->mSrcLineNo = get_line_no(); - - - AttachComments( *pEnum, cur ); - - skip_token( cur ); - if ( !get_next_token( cur ) ) return; - - // check if enumeration has got it's identifier - if ( *cur != '{' ) - { - pEnum->mName = get_token_str( cur ); - } - - if ( !skip_imp_block( cur ) ) return; - - get_string_between( start, cur, &pEnum->mEnumContent ); - - if ( get_next_token(cur) ) - { - // check if the identifier if after the {...} block - if ( *cur != ';' ) - - pEnum->mName = get_token_str( cur ); - } - - clear_commets_queue(); -} - -void CJSourceParser::AddTypeDefNode( char*& cur ) -{ - // now the cursor at the token next to "typedef" keyword - - if ( !get_next_token(cur) ) return; - - char* start = cur; - - spTypeDef* pTDef = new spTypeDef(); - mpCurCtx->AddMember( pTDef ); - - pTDef->mSrcLineNo = get_line_no(); - - AttachComments( *pTDef, cur ); - - skip_statement( cur ); - - int tmpLnNo; - store_line_no( tmpLnNo ); - - char* tok = cur-1; - skip_next_token_back( tok ); - - char* nameEnd = tok; - - skip_token_back( tok ); - - char* nameStart = tok; - - skip_next_token_back( tok ); - - char* typeEnd = tok; - - // check if it's function prototype - if ( *nameStart == ')' ) - { - typeEnd = nameStart+1; - - // skip argument list - while ( *nameStart != '(' ) --nameStart; - - // skip to function type definition - while ( *nameStart != ')' ) --nameStart; - - skip_next_token_back( nameStart ); - - nameEnd = nameStart; - - skip_token_back( nameStart ); - - if ( *nameStart == '*' ) ++nameStart; - } - - get_string_between( start, typeEnd, &pTDef->mOriginalType ); - - get_string_between( nameStart, nameEnd, &pTDef->mName ); - - clear_commets_queue(); - - restore_line_no( tmpLnNo ); -} diff --git a/utils/HelpGen/src/docripper.cpp b/utils/HelpGen/src/docripper.cpp deleted file mode 100644 index cdaff810e1..0000000000 --- a/utils/HelpGen/src/docripper.cpp +++ /dev/null @@ -1,568 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// 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 "docripper.h" - -#include - -// script templates - -// ***** currently only HTML versions of variouse templates available ***** // - -static const char* HTM_TopTempl = - -"\n\ -\n\n\n\n\n\ -

$(NAME)

\n\ -

    \n\ -$(REFLIST)\ -

\n\n\ -"; - -static const char* HTM_ContentIdxTempl = - -"\ -\n\ -


\n\ -

$(NAME)

\ -
    \n\ -$(REFLIST)\ -

\n\n\ -"; - -static const char* HTM_SuperContentTempl = - -"\ -\n\ -


\n\ -

$(NAME)

\ -$(BODY)\n\ -"; - -static const char* HTM_SubContentTempl = - -"\ -
\n\ -


\n\ -

$(NAME)

\ -$(BODY)\n\ -"; - -static const char* HTM_OutLineTempl = - -"\ -

\n\ -$(NAME)

\n\ -"; - -static const char* HTM_OutLine1Templ = - -"\ -

\n\ -$(NAME)\n\ -

    \n\ -$(REFLIST)\ -
\n\n\ -"; - -static const char* HTM_RefTempl = - -"\ -
  • $(NAME)\n\ -"; - -static const char* HTM_DeadRefTempl = - -"\ -
  • $(NAME)\n\ -"; - -/***** Implementation for class RipperDocGen *****/ - -RipperDocGen::RipperDocGen() - - : mTopTempl ( HTM_TopTempl ), - mContentIdxTempl ( HTM_ContentIdxTempl ), - mSuperContentTempl( HTM_SuperContentTempl ), - mSubContentTempl ( HTM_SubContentTempl ), - mOutLineTempl ( HTM_OutLineTempl ), - mOutLine1Templ ( HTM_OutLine1Templ ), - - mRefTempl ( HTM_RefTempl ), - mDeadRefTempl ( HTM_DeadRefTempl ), - - mpCurClassSect(0) -{ // topIndex is not referenced - mpTopIdx = new ScriptSection( "Source Code Contents" , "", &mTopTempl , 0 ); - mpClassIdx = new ScriptSection( "Classes Reference" , "", &mContentIdxTempl, &mRefTempl ); - mpEnumIdx = new ScriptSection( "Enumerations Reference" , "", &mContentIdxTempl, &mRefTempl ); - mpTypeDefIdx = new ScriptSection( "Type Definitions Reference" , "", &mContentIdxTempl, &mRefTempl ); - mpMacroIdx = new ScriptSection( "Macros Reference" , "", &mContentIdxTempl, &mRefTempl ); - mpGlobalVarsIdx = new ScriptSection( "Global Variables Reference" , "", &mContentIdxTempl, &mRefTempl ); - mpGlobalFuncIdx = new ScriptSection( "Global Functions Reference", "", &mContentIdxTempl, &mRefTempl ); - mpConstIdx = new ScriptSection( "Constants Reference" , "", &mContentIdxTempl, &mRefTempl ); - - // assemble top index - mpTopIdx->AddSection( mpClassIdx , 1 ); - mpTopIdx->AddSection( mpEnumIdx , 1 ); - mpTopIdx->AddSection( mpTypeDefIdx , 1 ); - mpTopIdx->AddSection( mpMacroIdx , 1 ); - mpTopIdx->AddSection( mpGlobalVarsIdx, 1 ); - mpTopIdx->AddSection( mpGlobalFuncIdx, 1 ); - mpTopIdx->AddSection( mpConstIdx , 1 ); - - // register reserved variables for index and description templates - ScriptSection::RegisterTemplate( mTopTempl ); - ScriptSection::RegisterTemplate( mContentIdxTempl ); - ScriptSection::RegisterTemplate( mSuperContentTempl ); - ScriptSection::RegisterTemplate( mSubContentTempl ); - ScriptSection::RegisterTemplate( mOutLineTempl ); - ScriptSection::RegisterTemplate( mOutLine1Templ ); - ScriptSection::RegisterTemplate( mRefTempl ); - ScriptSection::RegisterTemplate( mDeadRefTempl ); - - // create the top-most (interfile) context - mpFileBinderCtx = new spFile(); - - // the default script is HTML - mTags = get_HTML_markup_tags(); - - mpParser = 0; // no default parser! -} - -void RipperDocGen::Init( SourceParserBase* pParser ) -{ - mpParser = pParser; -} - -RipperDocGen::~RipperDocGen() -{ - delete mpFileBinderCtx; -} - -void RipperDocGen::AppendComments( spContext& fromContext, string& str ) -{ - if ( !fromContext.HasComments() ) return; - - size_t start = str.length(); - - str += mTags[TAG_BOLD].end; - str += mTags[TAG_PARAGRAPH].start; - - MCommentListT& lst = fromContext.GetCommentList(); - - for( size_t i = 0; i != lst.size(); ++i ) - { - - if ( i != 0 ) - - if ( lst[i]->StartsParagraph() ) - { - str += mTags[TAG_PARAGRAPH].start; - } - - str += lst[i]->mText; - } - - // remove new lines, and insert paragraph breaks - // if empty lines found - - size_t len = str.length(); - - for( size_t n = start; n != len; ++n ) - - if ( str[n] == 10 || - str[n] == 13 ) - { - if ( n + 2 < len ) - { - if ( ( str[n] == 13 && str[n+1] == 10 && // FIXME:: quick-hack - str[n+2] == 13 ) || - ( str[n] == 10 && str[n+1] == 10 ) - ) - { - str.insert( n + 1, "

    " ); // FIXME:: quick-hack - len += 3; - } - } - - str[n] = ' '; - } - - str += mTags[TAG_PARAGRAPH].end; -} - -void RipperDocGen::AppendMulitilineStr( string& st, string& mlStr ) -{ - st = mTags[TAG_FIXED_FONT].start; - st += mlStr; - st += mTags[TAG_FIXED_FONT].end; -} - -void RipperDocGen::AppendHighlightedSource( string& st, string source ) -{ - // FIXME:: below should not be fixed :) - char buf[1024*32]; - - // DBG::: - ASSERT( source.length() + 1 < sizeof(buf) ); - - strcpy( buf, source.c_str() ); - - // highlight things - mSrcPainter.Init(); - mSrcPainter.ProcessSource( buf, strlen(buf) ); - mSrcPainter.GetResultString( st, mTags ); -} - -bool RipperDocGen::CheckIfUncommented( spContext& ctx, ScriptSection& toSect ) -{ - if ( ctx.HasComments() ) return 0; - - toSect.AddReference( - new ScriptSection( GetScopedName( ctx ), "", 0, &mDeadRefTempl ) - ); - - return 1; -} - -ScriptTemplate* RipperDocGen::GetRefTemplFor( spContext& ctx ) -{ - if ( ctx.HasComments() ) - - return &mRefTempl; - else - return &mDeadRefTempl; -} - -string RipperDocGen::GetScopedName( spContext& ofCtx ) -{ - if ( ofCtx.IsInFile() ) return ofCtx.GetName(); - else - return ofCtx.GetOutterContext()->GetName() + - "::" + ofCtx.GetName(); -} - -void RipperDocGen::AddToCurrentClass( ScriptSection* pSection, spContext& ctx, - const char* subSectionName ) -{ - string sName; - - if ( ctx.mVisibility == SP_VIS_PROTECTED ) - - sName = "Protected members/"; - else - if ( ctx.mVisibility == SP_VIS_PRIVATE ) - - sName = "Private members/"; - else - sName = "Public members/"; - - sName += subSectionName; - - ScriptSection* pSect = mpCurClassSect->GetSubsection( sName.c_str() ); - - if ( CheckIfUncommented( ctx, *pSect ) ) - { - delete pSection; - return; - } - - pSect->AddReference( pSection ); - - mpCurClassSect->AddSection( pSection ); -} - -void RipperDocGen::LinkSuperClassRefs() -{ - MMemberListT clLst; - - // collect all classes in the context tree - mpFileBinderCtx->GetContextList( clLst, SP_CTX_CLASS ); - - for( size_t i = 0; i != clLst.size(); ++i ) - { - spClass& cl = *((spClass*)clLst[i]); - - // FIXME:: why sometimes GetUserData() returns NULL? - if ( !cl.GetUserData() ) - continue; - - ScriptSection* pClSect = (ScriptSection*)cl.GetUserData(); - ScriptSection* pSuperSect = pClSect->GetSubsection("Derived from"); - - for( size_t n = 0; n != cl.mSuperClassNames.size(); ++n ) - { - string& superClName = cl.mSuperClassNames[n]; - - spClass* pFound = NULL; - - string* name; - - for( size_t k = 0; k != clLst.size(); ++k ) - { - name = &clLst[k]->GetName(); - - if ( clLst[k]->GetName() == superClName ) - { - pFound = (spClass*)clLst[k]; - break; - } - } - - if ( !pFound ) - { - ScriptSection* pNotFound = - new ScriptSection( superClName, "", 0, &mDeadRefTempl ); - - pSuperSect->AddReference( pNotFound ); - } - else - if ( pFound->GetUserData() ) - - pSuperSect->AddReference( - (ScriptSection*)pFound->GetUserData() ); - } - } -} - -void RipperDocGen::ProcessFile( const char* sourceFile ) -{ - cout << "Processing file " << sourceFile << "..." << endl; - - spFile* pCtx = mpParser->ParseFile( sourceFile ); - - if ( pCtx == NULL ) - { - cout << "Cannot open file " << sourceFile << ", skipped..." << endl; - - return; - } - - VisitAll( *pCtx, TRUE ); - - mpFileBinderCtx->AddMember( pCtx ); -} - -// implementations of "visiting procedures" - -void RipperDocGen::VisitEnumeration( spEnumeration& en ) -{ - // FOR NOW:: do not reference "nameless" enums - if ( en.GetName() == "" ) return; - - if ( CheckIfUncommented( en, *mpEnumIdx ) ) - return; - - string body; - body += mTags[TAG_BOLD].start; - - AppendMulitilineStr( body, en.mEnumContent ); - - body += mTags[TAG_BOLD].end; - - string line; - AppendHighlightedSource( line, body ); - AppendComments( en, line ); - - mpEnumIdx->AddSection( - new ScriptSection( en.GetName(), line, - &mSubContentTempl, - GetRefTemplFor( en ) ), 1 - ); -} - -void RipperDocGen::VisitTypeDef( spTypeDef& td ) -{ - if ( CheckIfUncommented( td, *mpTypeDefIdx ) ) - return; - - string body; - body += mTags[TAG_BOLD].start; - body += "typdef "; - body += mTags[TAG_BOLD].end; - - AppendMulitilineStr( body, td.mOriginalType ); - body += td.mOriginalType; - body += ' '; - - body += mTags[TAG_BOLD].start; - body += td.GetName(); - body += mTags[TAG_BOLD].end; - - string line; - AppendHighlightedSource( line, body ); - AppendComments( td, line ); - - mpTypeDefIdx->AddSection( - new ScriptSection( td.GetName(), line, - &mSubContentTempl, - GetRefTemplFor( td ) ), TRUE - ); -} - -void RipperDocGen::VisitPreprocessorLine( spPreprocessorLine& pd ) -{ - if ( pd.mDefType != SP_PREP_DEF_REDEFINE_SYMBOL ) - - return; - - if ( CheckIfUncommented( pd, *mpMacroIdx ) ) - return; - - string body; - body += mTags[TAG_FIXED_FONT].start; - - string coloredLine = pd.mLine; - AppendHighlightedSource( coloredLine, pd.mLine ); - - AppendMulitilineStr( body, coloredLine ); - - body += mTags[TAG_FIXED_FONT].end; - - AppendComments( pd, body ); - - mpMacroIdx->AddSection( - new ScriptSection( pd.GetName(), body, - &mSubContentTempl, - GetRefTemplFor( pd ) ), TRUE - ); -} - -void RipperDocGen::VisitClass( spClass& cl ) -{ - // FOR NOW:: do not document nested classes - - // nicier visiting method yet needed - - if ( cl.IsInClass() ) - { - SkipChildren(); // spVisitor's method - return; - } - - string body; - AppendComments( cl, body ); - - mpCurClassSect = - new ScriptSection( cl.GetName(), body, &mSuperContentTempl, &mRefTempl ); - - // set up reference in the class context, pointing back - // to the section where this class is represented - cl.SetUserData( mpCurClassSect ); - - ScriptSection* pSuper = new ScriptSection( "Derived from" ,"", &mOutLine1Templ,0, 1 ); - - ScriptSection* pPublic = new ScriptSection( "Public members" ,"", &mOutLineTempl,0, 1 ); - ScriptSection* pProtected = new ScriptSection( "Protected members" ,"", &mOutLineTempl,0, 1 ); - ScriptSection* pPrivate = new ScriptSection( "Private members" ,"", &mOutLineTempl,0, 1 ); - - pPublic->AddSection( new ScriptSection( "Operations", "", &mOutLine1Templ, 0, 1 ) ); - pPublic->AddSection( new ScriptSection( "Attributes", "", &mOutLine1Templ, 0, 1 ) ); - - - pProtected->AddSection( new ScriptSection( "Operations", "", &mOutLine1Templ, 0, 1 ) ); - pProtected->AddSection( new ScriptSection( "Attributes", "", &mOutLine1Templ, 0, 1 ) ); - - - pPrivate->AddSection( new ScriptSection( "Operations", "", &mOutLine1Templ, 0, 1 ) ); - pPrivate->AddSection( new ScriptSection( "Attributes", "", &mOutLine1Templ, 0, 1 ) ); - - mpCurClassSect->AddSection( pSuper ); - mpCurClassSect->AddSection( pPublic ); - mpCurClassSect->AddSection( pProtected ); - mpCurClassSect->AddSection( pPrivate ); - - mpClassIdx->AddSection( mpCurClassSect, TRUE ); -} - -void RipperDocGen::VisitAttribute( spAttribute& attr ) -{ - string body; - body += mTags[TAG_BOLD].start; - body += attr.mType; - body += mTags[TAG_BOLD].end; - - body += mTags[TAG_ITALIC].start; - body += ' '; - body += attr.GetName(); - body += mTags[TAG_ITALIC].end; - - string line; - AppendHighlightedSource( line, body ); - AppendComments( attr, line ); - - ScriptSection* pSection = - new ScriptSection( GetScopedName( attr ), line, - &mSubContentTempl, - GetRefTemplFor( attr ) ); - - if ( attr.mIsConstant ) - - mpConstIdx->AddSection( pSection, TRUE ); - - else - if ( !attr.IsInClass() ) - { - if ( CheckIfUncommented( attr, *mpGlobalVarsIdx ) ) - return; - - mpGlobalVarsIdx->AddSection( pSection, TRUE ); - } - else - - AddToCurrentClass( pSection, attr, "Attributes" ); -} - -void RipperDocGen::VisitOperation( spOperation& op ) -{ - string body; - - AppendHighlightedSource( body, op.GetFullName(mTags) ); - - AppendComments( op, body ); - - ScriptSection* pSection = - new ScriptSection( GetScopedName( op ), body, - &mSubContentTempl, - GetRefTemplFor( op ) ); - - if ( !op.IsInClass() ) - { - if ( CheckIfUncommented( op, *mpGlobalFuncIdx ) ) - return; - - mpGlobalFuncIdx->AddSection( pSection, 1 ); - } - else - AddToCurrentClass( pSection, op, "Operations" ); -} - -bool RipperDocGen::OnSaveDocument( ScriptStream& stm ) -{ - LinkSuperClassRefs(); - - // FOR NOW:: doesn't work yet - //mpTopIdx->RemoveEmptySections(); - - return 1; // saving can proceed now -} - diff --git a/utils/HelpGen/src/ifcontext.cpp b/utils/HelpGen/src/ifcontext.cpp deleted file mode 100644 index 3b2698a639..0000000000 --- a/utils/HelpGen/src/ifcontext.cpp +++ /dev/null @@ -1,295 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 27/12/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "ifcontext.h" -#pragma interface -#endif - -// 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 -#include - -#include "ifcontext.h" - -/***** Implementation for class spInterFileContext *****/ - -size_t spInterFileContext::GetFileNo( const string& fname ) -{ - for( size_t i = 0; i != mFiles.size(); ++i ) - - if ( fname == mFiles[i] ) return i; - - wxASSERT(0); // DBG:: - return 0; -} - -size_t spInterFileContext::GetFileNoOfContext( spContext& ctx ) -{ - spContext* pCtx = ctx.GetEnclosingContext( SP_CTX_FILE ); - - // DBG:: outer-file context should be present - wxASSERT( pCtx && pCtx->GetType() == SP_CTX_FILE ); - - return GetFileNo( ((spFile*)pCtx)->mFileName ); -} - -/*** public interface ***/ - -spInterFileContext::spInterFileContext() -{} - -spInterFileContext::~spInterFileContext() -{} - -void spInterFileContext::AddFile( const string& fname, const string& content ) -{ - mFiles.push_back( fname ); - mContents.push_back( content ); -} - -void spInterFileContext::RemoveContext( spContext& ctx ) -{ - wxASSERT( ctx.PositionIsKnown() ); // DBG:: should be checked by-user code - - size_t fNo = GetFileNoOfContext( ctx ); - - mDeletionMarks.push_back( spBookmark( ctx.mSrcOffset, ctx.mContextLength, fNo ) ); -} - -void spInterFileContext::InsertBookmarkSorted( BookmarkListT& lst, spBookmark& mark ) -{ - for( size_t i = 0; i != lst.size(); ++i ) - - if ( lst[i].mFrom > mark.mFrom ) - { - lst.insert( &lst[i], mark ); - return; - } - - lst.push_back( mark ); -} - -void spInterFileContext::DoAppendSourceFragment( string& source, - string& result, - size_t pos, size_t len ) -{ - mFiltered.erase( mFiltered.begin(), mFiltered.end() ); - - size_t i; - - for( i = 0; i != mDeletionMarks.size(); ++i ) - { - spBookmark& mark = mDeletionMarks[i]; - - if ( mark.mFileNo == mCurFileNo && - mark.mFrom >= pos && mark.mFrom < pos + len ) - - InsertBookmarkSorted( mFiltered, mark ); - } - - size_t cur = pos; - - for( i = 0; i != mFiltered.size(); ++ i ) - { - spBookmark& mark = mFiltered[i]; - - result.append( source, cur, ( (size_t)mark.mFrom - cur ) ); - - cur = size_t( mark.mFrom + mark.mLen ); - - if ( cur >= pos + len ) // check if we've overstepped the current source-fragment - { - wxASSERT(0); // DBG:: with current imp. this should not happen - - cur = pos + len; break; - } - } - - result.append( source, cur, ( pos + len ) - cur ); -} - -void spInterFileContext::GenerateContextBody( spContext& ctx, - string& source, - string& result, - size_t& lastSavedPos, - size_t& lastKnownPos ) -{ - if ( ctx.PositionIsKnown() ) - - lastKnownPos = ctx.mSrcOffset; - - if ( ctx.IsVirtualContext() ) - { - // add fragment accumulated before this context - - DoAppendSourceFragment( source, result, - size_t(lastSavedPos), - size_t(lastKnownPos - lastSavedPos) ); - - // add context body - - result += ctx.GetVirtualContextBody(); - - lastSavedPos = lastKnownPos; - - if ( ctx.PositionIsKnown() ) - { - if ( ctx.VitualContextHasChildren() ) - { - lastKnownPos = ctx.mSrcOffset + ctx.mHeaderLength; - - lastSavedPos = lastKnownPos; - } - else - { - lastKnownPos = ctx.mSrcOffset + ctx.mContextLength; - - lastSavedPos = lastKnownPos; - - return; // have not children - } - } - } - - MMemberListT& lst = ctx.GetMembers(); - - for( size_t i = 0; i != lst.size(); ++i ) - - GenerateContextBody( *lst[i], source, result, lastSavedPos, lastKnownPos ); - - if ( ctx.IsVirtualContext() ) - { - if ( ctx.VitualContextHasChildren() && - - ctx.GetFooterOfVirtualContextBody() != "" ) - { - // append the reminder space after children of the context - - DoAppendSourceFragment( result, source, - size_t(lastSavedPos), - size_t(lastKnownPos - lastSavedPos) ); - - // add footer - result += ctx.GetFooterOfVirtualContextBody(); - - lastKnownPos = ctx.mSrcOffset + ctx.mContextLength; - - lastSavedPos = lastKnownPos; - } - } - - if ( ctx.PositionIsKnown() ) - - lastKnownPos = ctx.mSrcOffset + ctx.mContextLength; -} - -void spInterFileContext::GenrateContents() -{ - MMemberListT& lst = GetMembers(); - - for( size_t f = 0; f != lst.size(); ++f ) - { - string& fname = ((spFile*)lst[f])->mFileName; - - size_t fileNo = GetFileNo( fname ); - - string& source = mContents[ fileNo ]; - - string result; - - size_t lastKnownPos = 0, // the begining of the file is always "known" - lastSavedPos = 0; - - mCurFileNo = fileNo; - - GenerateContextBody( *lst[f], source, result, lastSavedPos, lastKnownPos ); - - // the end of file is always known - - lastKnownPos = mContents[ fileNo ].length(); - - // append the reminder - - DoAppendSourceFragment( source, result, - size_t(lastSavedPos), - size_t(lastKnownPos - lastSavedPos) ); - - // replace original contnet with newly generated one - - mContents[ fileNo ] = result; - } -} - -void spInterFileContext::ParseContents( SourceParserPlugin* pPlugin ) -{ - mDeletionMarks.erase( mDeletionMarks.begin(), mDeletionMarks.end() ); - - RemoveChildren(); // clean up top-level context - - mParser.SetPlugin( pPlugin ); - - for( size_t i = 0; i != mFiles.size(); ++i ) - { - char* s = (char*)(mContents[i].c_str()); - - spFile* pFCtx = mParser.Parse( s, s + mContents[i].length() ); - - pFCtx->mFileName = mFiles[i]; - - AddMember( pFCtx ); - } -} - -void spInterFileContext::WriteToFiles() -{ - for( size_t i = 0; i != mFiles.size(); ++i ) - { - FILE* fp = fopen( mFiles[i].c_str(), "w+t" ); - - if ( int(fp) > 0 ) - { - fwrite( mContents[i].c_str(), sizeof(char), mContents[i].length(), fp ); - - fclose( fp ); - } - } -} - -string spInterFileContext::GetBody( spContext* pCtx ) -{ - wxASSERT( pCtx->PositionIsKnown() ); // DBG:: should be checked by-user code - - string& source = mContents[ GetFileNoOfContext( *pCtx ) ]; - - return string( source.c_str() + pCtx->mSrcOffset, pCtx->mContextLength ); -} - -string spInterFileContext::GetHeader( spContext* pCtx ) -{ - wxASSERT( pCtx->PositionIsKnown() ); // DBG:: should be checked by-user code - - wxASSERT( pCtx->mHeaderLength != -1 ); // DBG:: -/- - - string& source = mContents[ GetFileNoOfContext( *pCtx ) ]; - - return string( source.c_str() + pCtx->mSrcOffset, pCtx->mHeaderLength ); -} diff --git a/utils/HelpGen/src/makefile.nt b/utils/HelpGen/src/makefile.nt deleted file mode 100644 index d1f107585e..0000000000 --- a/utils/HelpGen/src/makefile.nt +++ /dev/null @@ -1,66 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds minimal example (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -WXUSINGDLL=0 - -!include $(WXDIR)\src\ntwxwin.mak - -THISDIR = $(WXDIR)\utils\HelpGen\src -PROGRAM=HelpGen -EXTRAINC=-I..\include - -OBJECTS = $(PROGRAM).obj cjparser.obj ifcontext.obj markup.obj\ - scriptbinder.obj srcparser.obj sourcepainter.obj - -$(PROGRAM): $(PROGRAM).exe - -all: wx $(PROGRAM).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.nt FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.nt clean - cd $(THISDIR) - -$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(PROGRAM).res - $(link) @<< --out:$(PROGRAM).exe -$(LINKFLAGS) -$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res -$(LIBS) -<< - - -$(PROGRAM).obj: $(PROGRAM).$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb diff --git a/utils/HelpGen/src/markup.cpp b/utils/HelpGen/src/markup.cpp deleted file mode 100644 index 9c0ad1d105..0000000000 --- a/utils/HelpGen/src/markup.cpp +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// 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 "markup.h" - -static TagStructT htmlTags[] = -{ - { "","" }, // 0 - { "","" }, // 1 - { "

    ","
    " }, // 2 - { "","" }, // 3 - { "","" }, // 4 - { "","" }, // 5 - { "","" }, // 6 - { "

    ","

    " }, // 7 - { "
    ","" }, // 8 - { "

    ","

    " }, // 9 - { "

    ","

    " }, // 10 - { "

    ","

    " }, // 11 - { "
      ","
    " }, // 12 - { "
  • ","
  • " }, // 13 -}; - -MarkupTagsT get_HTML_markup_tags() -{ - return htmlTags; -} \ No newline at end of file diff --git a/utils/HelpGen/src/ripper_main.cpp b/utils/HelpGen/src/ripper_main.cpp deleted file mode 100644 index d5a3ce7dd5..0000000000 --- a/utils/HelpGen/src/ripper_main.cpp +++ /dev/null @@ -1,157 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// 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 - -#ifdef WIN32 -#include -#endif - -#include - -#include "markup.h" // get_HTML_markup_tags() will be used - -#include "docripper.h" -#include "cjparser.h" // C++/Java will be parsed here - -/***** Main funciton *****/ - -#ifdef WIN32 - -// NOTE:: under Windows this generator parses all .h files -// int the current directory - -#include "direct.h" - - -void main(int argc, char** argv) -{ - cout << "C++/JAVA Source Documentation Generator (\"wxDocRipper\")" << endl - << "(C) 1998, Aleksandras Gluchovas (mailto:alex@soften.ktu.lt)" - << endl << endl; - - - RipperDocGen gen; - - // set up target script - gen.SetScriptMarkupTags( get_HTML_markup_tags() ); - - // setup source langauge - CJSourceParser* pParser = new CJSourceParser(); - - gen.Init( pParser ); - - // read process all files in the current directory - - struct _finddata_t c_file; // NT-specific? - long hFile; - - hFile = _findfirst( "*.h", &c_file ); - int total = 0; - - while( hFile != -1L ) - { - gen.ProcessFile( c_file.name ); - ++total; - - if ( _findnext( hFile, &c_file ) == -1L ) - break; - } - - - if ( total ) - { - cout << endl - << "*** storing source documenation into ./srcref.html ***" - << endl << endl; - - if ( !gen.SaveDocument( "srcref.html" ) ) - - cout << "\nERROR: document cannot be saved" << endl; - } - else - { - cout << "\nno .h files found in this directory - You must be running Windows now :-)" - << endl; - return; - } - - - printf( "\nTotal %d file(s) processed, done.\n", total ); -} - - -#else - -// NOTE:: on platfroms other then Windows this generator parses all files -// given from the command line - -int main(int argc, char** argv) -{ - cout << "C++/JAVA Source Documentation Generator (\"wxDocRipper\")" << endl - << "(C) 1998, Aleksandras Gluchovas (mailto:alex@soften.ktu.lt)" - << endl << endl; - - if ( argc < 2 ) - { - cout << "Usage: list of files with .h, .hpp, .cpp or .java extentions" - << endl; - return 1; - } - - int from = 1, no_dump = 0; - - if ( strcmp( argv[1], "-x" ) == 0 ) - { - from = 2; - no_dump = 1; - } - - RipperDocGen gen; - - // set up target script - gen.SetScriptMarkupTags( get_HTML_markup_tags() ); - - // setup source langauge - CJSourceParser* pParser = new CJSourceParser(); - - gen.Init( pParser ); - - for( int i = from; i != argc; ++i ) - - gen.ProcessFile( argv[i] ); - - if ( !no_dump ) - { - cout << endl - << "*** storing source documenation into ./srcref.html ***" - << endl << endl; - - if ( !gen.SaveDocument( "srcref.html" ) ) - - cout << "\nERROR: document cannot be saved" << endl; - } - - printf( "\nTotal %d file(s) processed, done.\n", argc-from ); - - return 0; -} - -#endif diff --git a/utils/HelpGen/src/scriptbinder.cpp b/utils/HelpGen/src/scriptbinder.cpp deleted file mode 100644 index cd00c8a3f4..0000000000 --- a/utils/HelpGen/src/scriptbinder.cpp +++ /dev/null @@ -1,618 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// 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 -#include -#include - -#include // import sprintf() (for doubles) -#include // import atoi() (for integers) - -#include "scriptbinder.h" - -// helper functions - -static size_t log2(size_t nr) -{ - size_t tmp = 0; - while (nr >= 2 ) - { - nr /= 2; - ++tmp; - } - - return tmp; -} - -/***** Implementation for class ScriptStream *****/ - -ScriptStream::ScriptStream() - : mpBuf(0), - mSize(0), - mCapacity(0) -{} - -ScriptStream::~ScriptStream() -{ - if ( mpBuf ) delete mpBuf; -} - -void ScriptStream::WriteBytes( const void* srcBuf, size_t count ) -{ - if ( !count ) return; - - // increase the capacity if necessary - if ( mSize + count > mCapacity ) - { - mCapacity = - ( 0x2 << (log2( mSize + count ) + 1 ) ); - - if ( mCapacity < 128 ) mCapacity = 128; - - char* oldBuf = mpBuf; - - mpBuf = new char[mCapacity]; - - if ( oldBuf ) - { - memcpy( mpBuf, oldBuf, mSize ); - delete oldBuf; - } - } - - // append new data - memcpy( &mpBuf[mSize], srcBuf, count ); - - mSize += count; -} - -ScriptStream& ScriptStream::operator<<( const char* str ) -{ - WriteBytes( str, strlen( str ) ); - - return *this; -} - -ScriptStream& ScriptStream::operator<<( const string& str ) -{ - if ( str.length() < 512 ) - { - char buf[512]; - size_t len = str.length(); - - for( size_t i = 0; i != len; ++i ) - buf[i] = str[i]; - - WriteBytes( buf, len ); - } - else - WriteBytes( str.c_str(), str.length() ); - - return *this; -} - -ScriptStream& ScriptStream::operator<<( char ch ) -{ - WriteBytes( &ch, 1 ); - - return *this; -} - -void ScriptStream::endl() -{ - char ch = '\n'; - WriteBytes( &ch, 1 ); -} - -/***** Implementation for class ScriptTemplate *****/ - -ScriptTemplate::ScriptTemplate( const string& templateText ) -{ - string tmp = templateText; - - mTText = (char*)malloc( tmp.length() + 1 ); - - strcpy( mTText, tmp.c_str() ); -} - -ScriptTemplate::~ScriptTemplate() -{ - for( size_t i = 0; i != mVars.size(); ++i ) - - delete mVars[i]; - - free( mTText ); -} - -bool ScriptTemplate::HasVar( const char* name ) -{ - for( size_t i = 0; i != mVars.size(); ++i ) - - if ( strcmp( mVars[i]->mName, name ) == 0 ) - - return 1; - - return 0; -} - -void ScriptTemplate::AddStringVar ( const char* name, int ofs ) -{ - mVars.push_back( new TVarInfo( name, ofs, TVAR_STRING ) ); -} - -void ScriptTemplate::AddIntegerVar( const char* name, int ofs ) -{ - mVars.push_back( new TVarInfo( name, ofs, TVAR_INTEGER ) ); -} - -void ScriptTemplate::AddDoubleVar ( const char* name, int ofs ) -{ - mVars.push_back( new TVarInfo( name, ofs, TVAR_DOUBLE ) ); -} - -void ScriptTemplate::AddObjectRefArray( const char* name, - int ofsRefToFirstObj, - int ofsObjSizeInt, - int ofsObjRefTempl - ) -{ - TArrayInfo* pInfo = new TArrayInfo( name ); - - mVars.push_back( pInfo ); - - pInfo->mRefOfs = ofsRefToFirstObj; - pInfo->mSizeIntOfs = ofsObjSizeInt; - pInfo->mObjRefTemplOfs = ofsObjRefTempl; -} - -inline void ScriptTemplate::PrintVar( TVarInfo* pInfo, - void* dataObj, - ScriptStream& stm ) -{ - char buf[128]; - - switch ( pInfo->mType ) - { - case TVAR_INTEGER : - { - sprintf(buf, "%d",*( (int*) ((char*)dataObj + pInfo->mOfs) ) ); - - stm.WriteBytes( buf, strlen(buf ) ); - break; - } - - case TVAR_STRING : - { - string& str = *( (string*) ((char*)dataObj+pInfo->mOfs) ); - - const char* cs = str.c_str(); -#ifdef DEBUG_WEIRED_OFFSETS - cout << "DBG:: cs address is " << (int)cs << endl; - cout << "DBG:: str address is " << (int)(&str) << endl; - cout << "DBG:: dataObj points to " << (int)dataObj << endl; - cout << "DBG:: pInfo->mOfs value is " << (int)pInfo->mOfs << endl; - cout << "DBG:: d+pInfo->mOfs is " << (int)((char*)dataObj + pInfo->mOfs) << endl; - cout << "DBG:: pInfo->mName is " << pInfo->mName << endl; - cout << "DBG:: pInfo->mType is " << pInfo->mType << endl; - cout << "DBG:: end of dump. " << endl; - - cout << "DBG:: cs value is " << endl << cs << endl; -#endif - stm.WriteBytes( cs, strlen(cs) ); - break; - } - - case TVAR_DOUBLE : - { - sprintf( buf, "%f", - *( (double*)( (char*)dataObj+pInfo->mOfs) ) ); - - stm.WriteBytes( buf, strlen(buf ) ); - break; - } - - case TVAR_REF_ARRAY : - { - TArrayInfo& info = *((TArrayInfo*)pInfo); - - int sz = *((int*) ( (char*)dataObj+info.mSizeIntOfs )); - if ( !sz ) - { - // DBG:: - int u = 0; - ++u; - break; - } - - int* array = *((int**)( (char*)dataObj+info.mRefOfs )); - - ScriptTemplate* pRefTempl; - - for( int i = 0; i != sz; ++i ) - { - pRefTempl = - *((ScriptTemplate**)((char*)(array[i])+info.mObjRefTemplOfs)); - - pRefTempl->PrintScript( (void*)array[i], stm ); - } - - break; - } - - default : break; - } -} - -void ScriptTemplate::PrintScript( void* dataObj, ScriptStream& stm ) -{ - char* cur = mTText; - - // template parsing loop - do - { - char* start = cur; - - while( *cur != '\0' && *cur != '$' ) ++cur; - - // flush text collected between variables - stm.WriteBytes( start, cur - start ); - - if ( *cur == '\0' ) break; - - cur += 2; // skip to the name of the var - - start = cur; - - while( *cur != ')' ) ++cur; - - // put terminating zero temorarely - - *cur = '\0'; - - // look up variable - - size_t sz = mVars.size(); - bool found = 0; - - for( size_t i = 0; i != sz; ++i ) - { - if ( strcmp( mVars[i]->mName, start ) == 0 ) - { - PrintVar( mVars[i], dataObj, stm ); - - *cur = ')'; // remove terminating zero - ++cur; - found = 1; - break; - } - } - - // variable referred by template script is not - // registered to this tempalte object - ASSERT( found ); - - } while(1); -} - -/***** implementation for class ScriptSection *****/ - -int ScriptSection::mIdCounter = 0; - -ScriptSection::ScriptSection( const string& name, - const string& body, - ScriptTemplate* pSectionTemplate, - ScriptTemplate* pReferenceTemplate, - bool autoHide, - bool sorted - ) - : mpParent ( NULL ), - - mName ( name ), - mBody ( body ), - - mAutoHide( autoHide ), - mSortOn ( sorted ), - - mpSectTempl( pSectionTemplate ), - mpRefTempl ( pReferenceTemplate ), - - mRefCount( 0 ), - mArrSize( 0 ) -{ - // generate GUID - - char buf[32]; - sprintf( buf, "%d", ++mIdCounter ); - mId = buf; -} - -ScriptSection::~ScriptSection() -{ - SectListT lst = mSubsections; - - while( mSubsections.size() ) - - mSubsections[0]->RemoveRef(); - - for( size_t i = 0; i != mReferences.size(); ++i ) - - mReferences[i]->RemoveRef(); -} - -void ScriptSection::AddRef() -{ - ++mRefCount; -} - -void ScriptSection::RemoveRef() -{ - if ( !mRefCount || !(--mRefCount) ) - { - if (mpParent) - { - // remove ourselves from parent's list - - SectListT& lst = mpParent->mSubsections; - for( size_t i = 0; i != lst.size(); ++i ) - - if ( lst[i] == this ) - { - lst.erase( &lst[i] ); - break; - } - } - - delete this; - } -} - -ScriptSection* ScriptSection::GetSubsection( const char* name ) -{ - // FOR NOW:: fixed section name length - char buf[128]; - - size_t cur = 0; - - while( name[cur] && name[cur] != '/' ) - { - buf[cur] = name[cur]; - ++cur; - } - - ASSERT( cur < sizeof(buf) ); - - buf[cur] = '\0'; - - size_t sz = mSubsections.size(); - - for( size_t i = 0; i != sz; ++i ) - { - // DBG:: - //ScriptSection& sect = *mSubsections[i]; - - if ( mSubsections[i]->mName == buf ) - { - if ( name[cur] == '/' ) - - // search recursivelly - return mSubsections[i]->GetSubsection( &name[cur+1] ); - else - return mSubsections[i]; - } - } - - return 0; -} - -void ScriptSection::AddSection( ScriptSection* pSection, - bool addToReferencesToo - ) -{ - mSubsections.push_back( pSection ); - - pSection->AddRef(); - - // can add section to multiple containers - ASSERT( pSection->mpParent == 0 ); - - pSection->mpParent = this; - - if ( addToReferencesToo ) - - AddReference( pSection ); -} - -void ScriptSection::AddReference( ScriptSection* pReferredSection ) -{ - mReferences.push_back( pReferredSection ); - - pReferredSection->AddRef(); - - // set up mandatory fields used by ScriptTemplate - mArrSize = mReferences.size(); - if ( mArrSize ) - mRefFirst = (void*)&mReferences[0]; -} - -SectListT& ScriptSection::GetSubsections() -{ - return mSubsections; -} - -// static method: -void ScriptSection::RegisterTemplate( ScriptTemplate& sectionTempalte ) -{ - int nameOfs, bodyOfs, idOfs, - arrRefOfs, arrSizeOfs, refTemplOfs; - - // obtaining offsets of member vars - - GET_VAR_OFS( ScriptSection, mName, &nameOfs ) - GET_VAR_OFS( ScriptSection, mBody, &bodyOfs ) - GET_VAR_OFS( ScriptSection, mId, &idOfs ) - GET_VAR_OFS( ScriptSection, mRefFirst, &arrRefOfs ) - GET_VAR_OFS( ScriptSection, mArrSize, &arrSizeOfs ) - - GET_VAR_OFS( ScriptSection, mpRefTempl, &refTemplOfs ) - - // registering member variables with given script template - - sectionTempalte.AddStringVar( "NAME", nameOfs ); - sectionTempalte.AddStringVar( "BODY", bodyOfs ); - sectionTempalte.AddStringVar( "ID", idOfs ); - - sectionTempalte.AddObjectRefArray( "REFLIST", - arrRefOfs, arrSizeOfs, refTemplOfs ); -} - -void ScriptSection::Print( ScriptStream& stm ) -{ - // TBD:: sorting - - // print out this content first - if ( mpSectTempl ) - - mpSectTempl->PrintScript( this, stm ); - - // attach contents subsections at the end of this content - - for( size_t i = 0; i != mSubsections.size(); ++i ) - - mSubsections[i]->Print( stm ); -} - -void ScriptSection::DoRemoveEmptySections(int& nRemoved, SectListT& removedLst) -{ - for( size_t i = 0; i != mSubsections.size(); ++i ) - { - ScriptSection& sect = *mSubsections[i]; - - sect.DoRemoveEmptySections( nRemoved, removedLst ); - - if (sect.mAutoHide ) - - if ( sect.mReferences.size() == 0 ) - { - bool found = 0; - for( size_t k = 0; k != removedLst.size(); ++k ) - - if ( removedLst[k] == § ) - { - found = 1; - break; - } - - if ( !found ) - { - removedLst.push_back( § ); - ++nRemoved; - - delete § - --i; - } - } - } -} - -void ScriptSection::DoRemoveDeadLinks( SectListT& removedLst) -{ - size_t dsz = removedLst.size(); - - for( size_t i = 0; i != mSubsections.size(); ++i ) - { - mSubsections[i]->DoRemoveDeadLinks( removedLst ); - } - - for( size_t n = 0; n != mReferences.size(); ++n ) - { - for( size_t k = 0; k != dsz; ++k ) - - if ( removedLst[k] == mReferences[n] ) - { - mReferences.erase( &mReferences[n] ); - --n; - - // set up mandatory fields used by ScriptTemplate - mArrSize = mReferences.size(); - if ( mArrSize ) - mRefFirst = (void*)&mReferences[0]; - - break; - } - } -} - - -void ScriptSection::RemoveEmptySections() -{ - // FIXME:: this is very_very_very slow alg.! +"doesn't work" - - int nRemoved = 0; - - do - { - SectListT removedLst; - nRemoved = 0; - - DoRemoveEmptySections( nRemoved, removedLst ); - - DoRemoveDeadLinks( removedLst ); - } - while( nRemoved ); -} - -/***** Iimplementation for class DocGeneratorBase *****/ - -bool DocGeneratorBase::SaveDocument( const char* fname, - const char* fopenOptions, - ScriptSection* pFromSection - ) -{ - FILE* fp = fopen( fname, fopenOptions ); - - if ( (int)fp == -1 ) return 0; - - ScriptStream stm; - - // check if derived class agrees about saving it - if ( !OnSaveDocument( stm ) ) return 0; - - if ( pFromSection ) - - pFromSection->Print( stm ); - else - { - ScriptSection* pTopSect = GetTopSection(); - ASSERT( pTopSect ); - pTopSect->Print( stm ); - } - - size_t nWrite = fwrite( stm.GetBuf(), 1, stm.GetBufSize(), fp ); - - if ( nWrite != stm.GetBufSize() ) return 0; - - fclose( fp ); - - return 1; - - // that^s it -} diff --git a/utils/HelpGen/src/sourcepainter.cpp b/utils/HelpGen/src/sourcepainter.cpp deleted file mode 100644 index 9e24ea95dd..0000000000 --- a/utils/HelpGen/src/sourcepainter.cpp +++ /dev/null @@ -1,676 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -// 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 - -#if defined( wxUSE_TEMPLATE_STL ) - - #include -#else - - #include - -#endif - -#include "sourcepainter.h" - -const int MAX_KEYWORD_LEN = 16; - -struct KeywordT -{ - char keyWord[MAX_KEYWORD_LEN]; - int rank; -}; - -// source fragment ranks : - -// 0 - nomral text -// 1 - basic types -// 2 - reserved words - -// multil-language keywords map - -static KeywordT __gKeyWords[] = -{ - { "for", 1 }, - { "FOR", 1 }, - { "For", 1 }, - - { "next", 1 }, - { "Next", 1 }, - { "NEXT", 1 }, - - { "if", 1 }, - { "If", 1 }, - { "IF", 1 }, - - { "then", 1 }, - { "Then", 1 }, - { "THEN", 1 }, - - { "else", 1 }, - { "Else", 1 }, - { "ELSE", 1 }, - - { "do", 1 }, - { "Do", 1 }, - { "DO", 1 }, - - - { "break", 1 }, - { "Break", 1 }, - { "BREAK", 1 }, - - { "continue", 1 }, - - { "goto", 1 }, - { "Goto", 1 }, - { "GOTO", 1 }, - - { "switch", 1 }, - { "default", 1 }, - { "case", 1 }, - - { "repeat", 1 }, - { "Repeat", 1 }, - { "REPEAT", 1 }, - - { "until", 1 }, - { "Until", 1 }, - { "UNTIL", 1 }, - - { "return", 1 }, - { "Return", 1 }, - { "RETURN", 1 }, - - { "unit", 1 }, - { "Unit", 1 }, - { "UNIT", 1 }, - - { "procedure", 1 }, - { "Procedure", 1 }, - { "PROCEDURE", 1 }, - - { "function", 1 }, - { "Function", 1 }, - { "FUNCTION", 1 }, - - { "begin", 1 }, - { "Begin", 1 }, - { "BEGIN", 1 }, - - { "End", 1 }, - { "END", 1 }, - - //////////////////////////////////////////////////// - - { "enum", 1 }, - { "static", 1 }, - { "const", 1 }, - { "mutable", 1 }, - { "volatile", 1 }, - { "__asm", 1 }, - { "asm", 1 }, - - { "typeid", 1 }, - { "sizeof", 1 }, - { "typeof", 1 }, - - - { "native", 1 }, - - { "#include", 1 }, - { "#define", 1 }, - { "#def", 1 }, - { "#undef", 1 }, - { "#ifdef", 1 }, - { "#ifndef", 1 }, - { "#if", 1 }, - { "#endif", 1 }, - { "#elif", 1 }, - { "#else", 1 }, - { "#pragma", 1 }, - { "#line", 1 }, - - { "package", 1 }, - { "import", 1 }, - { "export", 1 }, - - //////////////////////////////////////////////////// - - { "dynamic_cast", 1 }, - { "const_cast", 1 }, - - //////// some hacks for VB ///////// - - { "sub", 1 }, - { "Sub", 1 }, - { "SUB", 1 }, - { "as", 1 }, - { "As", 1 }, - { "AS", 1 }, - - /////// data types /////// - - { "int" , 1 }, - { "integer", 1 }, - { "Integer", 1 }, - { "INTEGER", 1 }, - - { "real", 1 }, - { "Real", 1 }, - { "REAL", 1 }, - - { "float", 1 }, - { "Float", 1 }, - { "FLOAT", 1 }, - - { "char", 1 }, - { "Char", 1 }, - { "CHAR", 1 }, - - { "register", 1 }, - - { "string", 1 }, - { "String", 1 }, - { "STRING", 1 }, - - { "array", 1 }, - { "Array", 1 }, - { "ARRAY", 1 }, - - { "packed", 1 }, - { "Packed", 1 }, - { "PACKED", 1 }, - - { "property", 1 }, - { "Property", 1 }, - { "PROPERTY", 1 }, - - { "unsigned", 1 }, - - { "long", 1 }, - { "double", 1 }, - { "short", 1 }, - { "bool", 1 }, - - { "longint", 1 }, - { "Longint", 1 }, - { "LONGINT", 1 }, - - { "extended", 1 }, - { "Extended", 1 }, - { "EXTENTED", 1 }, - - { "pointer", 1 }, - { "Pointer", 1 }, - { "POINTER", 1 }, - - { "and", 1 }, - { "And", 1 }, - { "AND", 1 }, - { "or", 1 }, - { "Or", 1 }, - { "OR", 1 }, - { "xor", 1 }, - { "Xor", 1 }, - { "XOR", 1 }, - - { "void", 1 }, - { "__stdcall", 1 }, - { "__declspec", 1 }, - { "extern", 1 }, - { "stdcall", 1 }, - { "dllimport", 1 }, - { "dllexport", 1 }, - { "__cdecl", 1 }, - { "cdecl", 1 }, - { "template", 1 }, - { "typedef", 1 }, - { "naked", 1 }, - - { "try", 1 }, - { "catch", 1 }, - { "throw", 2 }, // C++ - { "throws", 1 }, // Java - - - { "finalize", 1 }, - - // "STL-suport" - - { "size_t", 1 }, - { "NPOS", 1 }, - { "vector", 1 }, - { "list", 1 }, - { "map", 1 }, - { "multimap", 1 }, - - { "external", 1 }, - { "External", 1 }, - { "EXTERNAL", 1 }, - - //////////// meta-information ////////////// - - { "virtual", 2 }, - { "Virtual", 2 }, - - { "override", 2 }, - { "Override", 2 }, - - { "class", 2 }, - { "Class", 2 }, - { "CLASS", 2 }, - - { "struct", 2 }, - { "union", 2 }, - - { "record", 2 }, - { "Record", 2 }, - { "RECORD", 2 }, - - { "form", 1 }, - { "Form", 1 }, - { "FORM", 1 }, - - { "namespace", 2 }, - - { "interface" , 2 }, - { "abstract", 2 }, - - { "Interface" , 2 }, - { "INTERFACE" , 2 }, - - { "implementation", 2 }, - { "Implementation", 2 }, - { "IMPLEMENTATION", 2 }, - - { "label", 2 }, - { "Label", 2 }, - { "LABEL", 2 }, - - { "implements", 2 }, - - { "public", 2 }, - { "private", 2 }, - { "protected", 2 }, - - { "this", 2 }, - { "This", 2 }, - { "THIS", 2 }, - - { "new", 2 }, - { "New", 2 }, - { "NEW", 2 }, - - { "delete", 2 }, - { "inline", 2 }, - - { "operator", 2 }, - - { "Inherited", 2 }, - { "Inherited", 2 }, - - { "final", 2 }, - { "implements", 2 }, - { "super", 2 }, - - // even more... - { "java", 2 }, - { "Java", 2 }, - { "JAVA", 2 }, - { "delphi", 2 }, - { "Delphi", 2 }, - { "SmallTalk", 2 }, - { "Smalltalk", 2 }, - { "smalltalk", 2 }, - { "assembler", 2 }, - { "Assembler", 2 }, - { "Basic", 2 }, - { "BASIC", 2 }, - { "basic", 2 }, - { "CORBA", 2 }, - { "COBOL", 2 }, - { "ADA", 2 }, - { "LISP", 2 }, - - // just for fun... - { "life", 2 }, - { "sucks", 2 }, - { "rules", 2 }, - { "Quake", 2 }, - { "QuakeWorld", 2 }, - { "[ag_slammer]",2 }, - { "Aleksandras", 2 }, - { "Gluchovas" , 2 }, - { "Alex", 2 }, - { "alex", 2 }, - { "aleks", 2 }, - { "aleksas", 3 }, - { "AlexSoft", 2 }, - { "Alexsoft", 2 }, - { "SpringSky", 2 }, - { "SK_Team", 2 }, - { "soften", 2 }, - { "UB40", 2 }, - { "U96", 2 } -}; - -struct less_c_str -{ - inline bool operator()( char* x, char* y) const - { return ( strcmp( x,y ) < 0 ); - } -}; - -#if defined( wxUSE_TEMPLATE_STL ) - - typedef map< char*, char*, less_c_str > KeywordMapT; - -#else - - typedef char* CharPtrT; - typedef WXSTL_MAP( CharPtrT, CharPtrT ,less_c_str) KeywordMapT; - -#endif - -static KeywordMapT __gMultiLangMap; -static int __gMapReady = 0; - -void check_keyword_map( int keywordMapNr ) -{ - if ( !__gMapReady ) - { - __gMapReady = 1; - - // "make sure" the address of the first member of non-polimorphic class - // coinsides with the address of the instance - - KeywordT dummy; - - if ( (char*)& dummy != &dummy.keyWord[0] ) - throw; - - int size = sizeof(__gKeyWords) / sizeof( KeywordT ); - - for( int i = 0; i != size; ++i ) - - __gMultiLangMap.insert( - KeywordMapT::value_type( (char*)&__gKeyWords[i], - (char*)&__gKeyWords[i] - ) - ); - } -} - -int get_rank( char* start, char* end ) -{ - // FIXME:: what if end is no longer leagal adress? - - char tmp = *end; - *end = '\0'; // put temporary terminator - - KeywordMapT::iterator i; - - if ( (i = __gMultiLangMap.find( start ) ) != __gMultiLangMap.end() ) - { - KeywordT* pKey = (KeywordT*)(*i).second; - - *end = tmp; - - return pKey->rank; - } - else - { - *end = tmp; - return 0; - } -} - -static inline void store_range( SPBlockListT& results, int rank, int range_len ) -{ - if ( !range_len ) return; - - results.push_back ( ( rank << 16 ) | ( range_len ) ); -} - - -#define STORE_RANGE store_range( results, cur_rank, cur_range_len );\ - cur_rank = cur_range_len = 0; - -#define NEXT_CHAR cur_range_len++; \ - ++cur; \ - continue; - -static inline int is_alpha( char ch ) -{ - return ( (( ch >= '_' ) && ( ch <= 'z' )) || - (( ch >= 'A' ) && ( ch <= 'Z' )) - ); -} - - // _ . . - // Ziema atEjo netikEtai - -static void heighlight_syntax( char* str, int strLen, - SPBlockListT& results, bool& isComment ) -{ - bool isMultiline = 0; - char* cur = str; - char* end = str + strLen; - - int cur_rank = ( isComment == 1 ) ? RANK_GREEN : RANK_BLACK; - int cur_range_len = 0; - - while ( cur != end ) - { - int has_next = ( cur+1 != end ); - - if ( isComment ) - { - if ( *cur == '*' ) - if ( has_next && *(cur+1) == '/' ) - { - // turn off multiline comment mode - cur += 2; - cur_range_len += 2; - isComment = 0; - isMultiline = 0; - STORE_RANGE; - - continue; - } - - ++cur_range_len; - ++cur; - continue; - } - - /* - if ( *cur == 10 ) - if ( isComment ) - if ( isMultiline ) - { - cur_rank = RANK_GREEN; - cur_range_len = end - cur; - STORE_RANGE; - isComment = 0; - isMultiline = 0; - continue; - }*/ - - if ( *cur == '/' ) - { - if ( has_next ) - { - if ( *(cur+1) == '/' ) - { - STORE_RANGE; - - char* eol = cur; - while ( eol < end && *eol != 10 ) - ++eol; - - cur_rank = RANK_GREEN; - cur_range_len = eol - cur; - cur = eol; - STORE_RANGE; - - continue; - } - - if ( *(cur+1) == '*' ) - { - STORE_RANGE; - cur_rank = RANK_GREEN; - cur_range_len = 2; - isComment = 1; - cur += 2; - isMultiline = 1; - continue; - } - } - - NEXT_CHAR; - } - - if ( ( is_alpha( *cur ) || *(cur) == '#' ) - && has_next - ) - { - if ( is_alpha( *(cur+1) ) ) - { - char* start = cur; - cur += 2; - - while ( cur != end && is_alpha(*cur) ) ++cur; - - int wordRank; - - if ( (wordRank = get_rank( start, cur )) > 0 ) - { - STORE_RANGE; - - store_range( results, wordRank, int(cur-start) ); - cur_rank = cur_range_len = 0; - continue; - } - - cur_range_len += ( cur-start ); - continue; - } - else - NEXT_CHAR; - } - - NEXT_CHAR; - } - - if ( cur_range_len > 0 ) STORE_RANGE; -} - -/***** Implementation for class SourcePainter ******/ - -SourcePainter::SourcePainter( bool assembleResultString ) - : mCollectResultsOn( assembleResultString ), - mIsInComment( FALSE ), - mCommentIsMultiline( FALSE ) -{ - check_keyword_map(0); -} - -void SourcePainter::ProcessSource( char* src, int srcLen ) -{ - // TBD:: multilne state... - - heighlight_syntax( src, srcLen, mBlocks, mIsInComment ); - - if ( mCollectResultsOn ) - - mResultStr += string( src, srcLen ); -} - -void SourcePainter::SetState( bool isInComment, - bool commentIsMultiline ) -{ - mIsInComment = isInComment; - mCommentIsMultiline = commentIsMultiline; -} - -void SourcePainter::Init(bool assembleResultString) -{ - mIsInComment = 0; - mCommentIsMultiline = 0; - mCollectResultsOn = assembleResultString; - - mResultStr = ""; - - mBlocks.erase( mBlocks.begin(), mBlocks.end() ); -} - -static int rank_tags_map[] = -{ - TAG_BLACK_FONT, - TAG_BLUE_FONT, - TAG_RED_FONT, - TAG_GREEN_FONT -}; - -void SourcePainter::GetResultString(string& result, MarkupTagsT tags) -{ - // this method works, only if results of processing - // are collected - ASSERT( mCollectResultsOn ); - result = ""; - - int pos = 0; - - for( size_t i = 0; i != mBlocks.size(); ++i ) - { - int desc = mBlocks[i]; - - int len = desc & 0xFFFF; - int rank = (desc >> 16) & 0xFFFF; - - result += tags[ rank_tags_map[rank] ].start; - - for( int n = 0; n != len; ++n ) - - result += mResultStr[pos+n]; - - pos += len; - - result += tags[ rank_tags_map[rank] ].end; - } -} - -SPBlockListT& SourcePainter::GetBlocks() -{ - return mBlocks; -} - -bool SourcePainter::IsKeyword( char* word, int wordLen ) -{ - check_keyword_map(0); - - int rank = get_rank( word, word + wordLen ); - - return ( rank == RANK_BLUE || rank == RANK_RED ); -} diff --git a/utils/HelpGen/src/srcparser.cpp b/utils/HelpGen/src/srcparser.cpp deleted file mode 100644 index 81d84ed431..0000000000 --- a/utils/HelpGen/src/srcparser.cpp +++ /dev/null @@ -1,708 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 22/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleskandars Gluchovas -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "srcparser.h" -#pragma interface -#endif - -// 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 -#include - -#include "srcparser.h" - -/***** Implementation for class spVisitor *****/ - -void spVisitor::VisitAll( spContext& atContext, - bool sortContent - ) -{ - mSiblingSkipped = FALSE; - mChildSkipped = FALSE; - mContextMask = SP_CTX_ANY; // FIXME:: should be an arg. - - if ( sortContent && !atContext.IsSorted() ) - - atContext.SortMembers(); - - mpCurCxt = &atContext; // FIXME:: this is dirty, restoring it each time - - if ( atContext.GetContextType() & mContextMask ) - - atContext.AcceptVisitor( *this ); - - MMemberListT& members = atContext.GetMembers(); - - for( size_t i = 0; i != members.size(); ++i ) - { - if ( mSiblingSkipped ) - - return; - - if ( !mChildSkipped ) - { - size_t prevSz = members.size(); - - // visit members of the context recursivelly - VisitAll( *members[i], sortContent ); - - if ( members.size() != prevSz ) - - --i; // current member was removed! - - mChildSkipped = 0; - } - } -} - -void spVisitor::RemoveCurrentContext() -{ - if ( mpCurCxt->GetParent() ) - - mpCurCxt->GetParent()->RemoveChild( mpCurCxt ); -} - -void spVisitor::SkipSiblings() -{ - mSiblingSkipped = TRUE; -} - -void spVisitor::SkipChildren() -{ - mChildSkipped = TRUE; -} - -void spVisitor::SetFilter( int contextMask ) -{ - mContextMask = contextMask; -} - -/***** Implementation for class spComment *****/ - -bool spComment::IsMultiline() const -{ - return mIsMultiline; -} - -bool spComment::StartsParagraph() const -{ - return mStartsPar; -} - -string& spComment::GetText() -{ - return mText; -} - -string spComment::GetText() const -{ - return mText; -} - -/***** Implementation for class spContext *****/ - -spContext::spContext() - - : mpParent ( NULL ), - mpFirstOccurence( NULL ), - mAlreadySorted ( FALSE ), - - mSrcLineNo (-1), - mSrcOffset (-1), - mContextLength(-1), - mLastScrLineNo(-1), - - mHeaderLength (-1), - mFooterLength (-1), - - mFirstCharPos (-1), - mLastCharPos (-1), - - mVisibility( SP_VIS_PRIVATE ), - - mIsVirtualContext ( FALSE ), - mVirtualContextHasChildren( FALSE ), - - mpUserData( NULL ) -{} - -void spContext::RemoveChildren() -{ - for( size_t i = 0; i != mMembers.size(); ++i ) - - delete mMembers[i]; - - mMembers.erase( mMembers.begin(), mMembers.end() ); -} - -spContext::~spContext() -{ - RemoveChildren(); - - for( size_t i = 0; i != mComments.size(); ++i ) - - delete mComments[i]; -} - -bool spContext::IsSorted() -{ - return mAlreadySorted; -} - -void spContext::GetContextList( MMemberListT& lst, int contextMask ) -{ - for( size_t i = 0; i != mMembers.size(); ++i ) - { - spContext& member = *mMembers[i]; - - if ( member.GetContextType() & contextMask ) - - lst.push_back( &member ); - - // collect required contexts recursively - member.GetContextList( lst, contextMask ); - } -} - -bool spContext::HasComments() -{ - return ( mComments.size() != 0 ); -} - -void spContext::RemoveChild( spContext* pChild ) -{ - for( size_t i = 0; i != mMembers.size(); ++i ) - - if ( mMembers[i] == pChild ) - { - mMembers.erase( &mMembers[i] ); - - delete pChild; - return; - } - - // the given child should exist on the parent's list - wxASSERT( 0 ); -} - -spContext* spContext::GetEnclosingContext( int mask ) -{ - spContext* cur = this->GetParent(); - - while ( cur && !(cur->GetContextType() & mask) ) - - cur = cur->GetParent(); - - return cur; -} - -bool spContext::PositionIsKnown() -{ - return ( mSrcOffset != (-1) && mContextLength != (-1) ); -} - -bool spContext::IsVirtualContext() -{ - return mIsVirtualContext; -} - -bool spContext::VitualContextHasChildren() -{ - return mVirtualContextHasChildren; -} - -string spContext::GetVirtualContextBody() -{ - wxASSERT( mIsVirtualContext ); - - return mVirtualContextBody; -} - -string spContext::GetFooterOfVirtualContextBody() -{ - wxASSERT( mIsVirtualContext ); - - return mVittualContextFooter; -} - - -void spContext::SetVirtualContextBody( const string& body, - bool hasChildren, - const string& footer ) -{ - mVirtualContextHasChildren = hasChildren; - - mVirtualContextBody = body; - mVittualContextFooter = footer; - - // atuomaticllay becomes virtual context - - mIsVirtualContext = TRUE; -} - -string spContext::GetBody( spContext* pCtx ) -{ - if ( ( pCtx == NULL || pCtx == this ) && mIsVirtualContext ) - - return mVirtualContextBody; - - if ( GetParent() ) - - return GetParent()->GetBody( ( pCtx != NULL ) ? pCtx : this ); - else - return ""; // source-fragment cannot be found -} - -string spContext::GetHeader( spContext* pCtx ) -{ - if ( GetParent() ) - - return GetParent()->GetHeader( ( pCtx != NULL ) ? pCtx : this ); - else - return ""; // source-fragment cannot be found -} - -bool spContext::IsFirstOccurence() -{ - return ( mpFirstOccurence != 0 ); -} - -spContext* spContext::GetFirstOccurence() -{ - // this object should not itself be - // the first occurence of the context - wxASSERT( mpFirstOccurence != 0 ); - - return mpFirstOccurence; -} - -void spContext::AddMember( spContext* pMember ) -{ - mMembers.push_back( pMember ); - - pMember->mpParent = this; -} - -void spContext::AddComment( spComment* pComment ) -{ - mComments.push_back( pComment ); -} - -MMemberListT& spContext::GetMembers() -{ - return mMembers; -} - -spContext* spContext::FindContext( const string& identifier, - int contextType, - bool searchSubMembers - ) -{ - for( size_t i = 0; i != mMembers.size(); ++i ) - { - spContext& member = *mMembers[i]; - - if ( member.GetName() == identifier && - ( contextType & member.GetContextType() ) - ) - - return &member; - - if ( searchSubMembers ) - { - spContext* result = - member.FindContext( identifier, contextType, 1 ); - - if ( result ) return result; - } - } - - return 0; -} - -void spContext::RemoveThisContext() -{ - if ( mpParent ) - mpParent->RemoveChild( this ); - else - // context should have a parent - wxASSERT(0); -} - -spContext* spContext::GetOutterContext() -{ - return mpParent; -} - -bool spContext::HasOutterContext() -{ - return ( mpParent != 0 ); -} - -bool spContext::IsInFile() -{ - return ( GetOutterContext()->GetContextType() == SP_CTX_FILE ); -} - -bool spContext::IsInNameSpace() -{ - return ( GetOutterContext()->GetContextType() == SP_CTX_NAMESPACE ); -} - -bool spContext::IsInClass() -{ - return ( GetOutterContext()->GetContextType() == SP_CTX_CLASS ); -} - -bool spContext::IsInOperation() -{ - return ( GetOutterContext()->GetContextType() == SP_CTX_OPERATION ); -} - -spClass& spContext::GetClass() -{ - wxASSERT( GetOutterContext()->GetType() == SP_CTX_CLASS ); - return *((spClass*)mpParent ); -} - -spFile& spContext::GetFile() -{ - wxASSERT( GetOutterContext()->GetType() == SP_CTX_FILE ); - return *((spFile*)mpParent ); -} - -spNameSpace& spContext::GetNameSpace() -{ - wxASSERT( GetOutterContext()->GetType() == SP_CTX_NAMESPACE ); - return *((spNameSpace*)mpParent ); -} - -spOperation& spContext::GetOperation() -{ - wxASSERT( GetOutterContext()->GetType() == SP_CTX_OPERATION ); - return *((spOperation*)mpParent ); -} - -/***** Implementation for class spClass *****/ - -void spClass::SortMembers() -{ - // TBD:: -} - -/***** Implementation for class spOperation *****/ - -spOperation::spOperation() - - : mHasDefinition( FALSE ) -{ - mIsConstant = - mIsVirtual = - mHasDefinition = false; -} - -string spOperation::GetFullName(MarkupTagsT tags) -{ - string txt = tags[TAG_BOLD].start + mRetType; - txt += " "; - txt += mName; - txt += "( "; - txt += tags[TAG_BOLD].end; - - for( size_t i = 0; i != mMembers.size(); ++i ) - { - // DBG:: - wxASSERT( mMembers[i]->GetContextType() == SP_CTX_PARAMETER ); - - spParameter& param = *((spParameter*)mMembers[i]); - - if ( i != 0 ) - txt += ", "; - - txt += tags[TAG_BOLD].start; - - txt += param.mType; - - txt += tags[TAG_BOLD].end; - txt += tags[TAG_ITALIC].start; - - txt += " "; - txt += param.mName; - - if ( param.mInitVal != "" ) - { - txt += " = "; - txt += tags[TAG_BOLD].start; - - txt += param.mInitVal; - - txt += tags[TAG_BOLD].end; - } - - txt += tags[TAG_ITALIC].end;; - } - - txt += tags[TAG_BOLD].start; - txt += " )"; - txt += tags[TAG_BOLD].end; - - // TBD:: constantness of method - - return txt; -} - -/***** Implemenentation for class spPreprocessorLine *****/ - -string spPreprocessorLine::CPP_GetIncludedFileNeme() const -{ - wxASSERT( GetStatementType() == SP_PREP_DEF_INCLUDE_FILE ); - - size_t i = 0; - - while( i < mLine.length() && mLine[i] != '"' && mLine[i] != '<' ) - - ++i; - - ++i; - - size_t start = i; - - while( i < mLine.length() && mLine[i] != '"' && mLine[i] != '>' ) - - ++i; - - if ( start < mLine.length() ) - { - string fname; - fname.append( mLine, start, ( i - start ) ); - - return fname; - } - else - return ""; // syntax error probably -} - - - -/***** Implemenentation for class SourceParserBase *****/ - -SourceParserBase::SourceParserBase() - - : mpFileBuf( NULL ), - mFileBufSz( 0 ), - - mpPlugin( NULL ) -{} - -SourceParserBase::~SourceParserBase() -{ - if ( mpFileBuf ) free( mpFileBuf ); - - if ( mpPlugin ) delete mpPlugin; -} - -spFile* SourceParserBase::ParseFile( const char* fname ) -{ - // FIXME:: the below should not be fixed! - - const size_t MAX_BUF_SIZE = 1024*256; - - if ( !mpFileBuf ) mpFileBuf = (char*)malloc( MAX_BUF_SIZE ); - - mFileBufSz = MAX_BUF_SIZE; - - FILE* fp = fopen( fname, "rt" ); - - if ( (int)fp == -1 || !fp ) return NULL; - - int sz = fread( mpFileBuf, 1, mFileBufSz, fp ); - - return Parse( mpFileBuf, mpFileBuf + sz ); -} - -void SourceParserBase::SetPlugin( SourceParserPlugin* pPlugin ) -{ - if ( mpPlugin ) delete mpPlugin; - - mpPlugin = pPlugin; -} - -// =========================================================================== -// debug methods -// =========================================================================== - -#ifdef __WXDEBUG__ - -void spContext::Dump(const wxString& indent) const -{ - DumpThis(indent); - - // increase it for the children - wxString indentChild = indent + " "; - - for ( MMemberListT::const_iterator i = mMembers.begin(); - i != mMembers.end(); - i++ ) { - (*i)->Dump(indentChild); - } -} - -void spContext::DumpThis(const wxString& indent) const -{ - wxFAIL_MSG("abstract base class can't be found in parser tree!"); -} - -void spParameter::DumpThis(const wxString& indent) const -{ - wxLogDebug("%sparam named '%s' of type '%s'", - indent.c_str(), mName.c_str(), mType.c_str()); -} - -void spAttribute::DumpThis(const wxString& indent) const -{ - wxLogDebug("%svariable named '%s' of type '%s'", - indent.c_str(), mName.c_str(), mType.c_str()); -} - -void spOperation::DumpThis(const wxString& indent) const -{ - wxString protection; - if ( !!mScope ) { - switch ( mVisibility ) { - case SP_VIS_PUBLIC: - protection = "public"; - break; - - case SP_VIS_PROTECTED: - protection = "protected"; - break; - - case SP_VIS_PRIVATE: - protection = "private"; - break; - - default: - wxFAIL_MSG("unknown protection type"); - } - } - else { - protection = "global"; - } - - wxLogDebug("%s%s%s%s function named '%s::%s' of type '%s'", - indent.c_str(), - mIsConstant ? "const " : "", - mIsVirtual ? "virtual " : "", - protection.c_str(), - mScope.c_str(), mName.c_str(), mRetType.c_str()); -} - -void spPreprocessorLine::DumpThis(const wxString& indent) const -{ - wxString kind; - switch ( mDefType ) { - case SP_PREP_DEF_DEFINE_SYMBOL: - kind = "define"; - break; - - case SP_PREP_DEF_REDEFINE_SYMBOL: - kind = "redefine"; - break; - - case SP_PREP_DEF_INCLUDE_FILE: - kind.Printf("include (%s)", CPP_GetIncludedFileNeme().c_str()); - break; - - case SP_PREP_DEF_OTHER: - kind = "other"; - break; - - } - - wxLogDebug("%spreprocessor statement: %s", - indent.c_str(), kind.c_str()); -} - -void spClass::DumpThis(const wxString& indent) const -{ - wxString base; - for ( StrListT::const_iterator i = mSuperClassNames.begin(); - i != mSuperClassNames.end(); - i++ ) { - if ( !!base ) - base += ", "; - base += *i; - } - - if ( !base ) - base = "none"; - - wxString kind; - switch ( mClassSubType ) { - case SP_CLTYPE_CLASS: - kind = "class"; - break; - - case SP_CLTYPE_TEMPLATE_CLASS: - kind = "template class"; - break; - - case SP_CLTYPE_STRUCTURE: - kind = "struc"; - break; - - case SP_CLTYPE_UNION: - kind = "union"; - break; - - case SP_CLTYPE_INTERFACE: - kind = "interface"; - break; - - default: - wxFAIL_MSG("unknown class subtype"); - } - - wxLogDebug("%s%s named '%s' (base classes: %s)", - indent.c_str(), kind.c_str(), - mName.c_str(), base.c_str()); -} - -void spEnumeration::DumpThis(const wxString& indent) const -{ - wxLogDebug("%senum named '%s'", - indent.c_str(), mName.c_str()); -} - -void spTypeDef::DumpThis(const wxString& indent) const -{ - wxLogDebug("%stypedef %s = %s", - indent.c_str(), mName.c_str(), mOriginalType.c_str()); -} - -void spFile::DumpThis(const wxString& indent) const -{ - wxLogDebug("%sfile '%s'", - indent.c_str(), mFileName.c_str()); -} - -#endif // __WXDEBUG__ diff --git a/utils/HelpGen/src/wx_extra_imps.cpp b/utils/HelpGen/src/wx_extra_imps.cpp deleted file mode 100644 index e4af6ef024..0000000000 --- a/utils/HelpGen/src/wx_extra_imps.cpp +++ /dev/null @@ -1,81 +0,0 @@ -//////////////////// -// -// craeted by Alex -// -//////////////////// - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#include - -#ifndef WX_PRECOMP - #include "wx/defs.h" -#endif - -char * -copystring (const char *s) -{ - if (s == NULL) s = ""; - size_t len = strlen (s) + 1; - - char *news = new char[len]; - memcpy (news, s, len); // Should be the fastest - - return news; -} - -#ifdef __WXMSW__ -// from filefn.cpp -void WXDLLEXPORT wxSplitPath(const char *pszFileName, - wxString *pstrPath, - wxString *pstrName, - wxString *pstrExt) -{ - wxCHECK_RET( pszFileName, _("NULL file name in wxSplitPath") ); - - const char *pDot = strrchr(pszFileName, wxFILE_SEP_EXT); - const char *pSepUnix = strrchr(pszFileName, wxFILE_SEP_PATH_UNIX); - const char *pSepDos = strrchr(pszFileName, wxFILE_SEP_PATH_DOS); - - // take the last of the two - size_t nPosUnix = pSepUnix ? pSepUnix - pszFileName : 0; - size_t nPosDos = pSepDos ? pSepDos - pszFileName : 0; - if ( nPosDos > nPosUnix ) - nPosUnix = nPosDos; -// size_t nLen = Strlen(pszFileName); - - if ( pstrPath ) - *pstrPath = wxString(pszFileName, nPosUnix); - if ( pDot ) { - size_t nPosDot = pDot - pszFileName; - if ( pstrName ) - *pstrName = wxString(pszFileName + nPosUnix + 1, nPosDot - nPosUnix); - if ( pstrExt ) - *pstrExt = wxString(pszFileName + nPosDot + 1); - } - else { - if ( pstrName ) - *pstrName = wxString(pszFileName + nPosUnix + 1); - if ( pstrExt ) - pstrExt->Empty(); - } -} - -wxLocale *wxGetLocale() -{ - return NULL; -} - -const char *wxLocale::GetString(const char *szOrigString, - const char *) const -{ - return szOrigString; -} - -#else // !MSW -const char *wxGetTranslation(const char *str) -{ - return str; -} -#endif // MSW \ No newline at end of file diff --git a/utils/HelpHTML/README b/utils/HelpHTML/README deleted file mode 100644 index 32c637c703..0000000000 --- a/utils/HelpHTML/README +++ /dev/null @@ -1,58 +0,0 @@ - -HelpHTML : Support scripts for generating external HTML help files ------------------------------------------------------------------- - -The scripts in this directory can be used to generate external HTML -help files for use with wxHTMLHelpControllerBase derived help implemen- -tations. Currently the only implementation using this is the -wxExtHelpController class, using an external HTML browser. I hope to -add a class using a wxWindows-built-in HTML viewer soon. - -These viewers need a "wxhelp.map" file in the help directory which -maps numeric help IDs to relative URLs, having entries like: - -1000 overview.html;Overview -1010 mainmanu.html;Main Menu -... - -The numeric help ids are used to refer to the help in the application, -the URL specifies the file to be displayed, relative to the help base -directory (extended by the locale name if that directory exists) and the -text behind the semicolon is used to display and search a list of all help -topics. - -html2wxhelp: ------------- -The html2wxhelp script in this directory allow you to automatically generate -this file from a set of HTML pages. All you need is to append the numeric ID -to the section header in the HTML file like this: -

    Overview_1000_

    - -html2wxhelp will scan all html files in the directory in which it is called -and find these lines. It will create a wxhelp.map file and strip the help -IDs from the HTML files. So you should have a backup of the files before -running it, or a way to regenerate them. - -striphelpids: -------------- - -Called with the name of a .tex file, it will strip the help IDs from the file, -so the IDs do not show up in the printed documentation. - - -How to use them: ----------------- - -I use LyX to generate the docs, export the text as LaTeX. I then use -latex2html to generate the set of HTML pages and html2wxhelp to generate -the map file from them. Then I run striphelpids on the .tex file before -generating PostScript documentation from that. -The whole process can easily be automated with a Makefile. For an example -of how to do this, see the source of my mail program, available from -http://www.phy.hw.ac.uk/~karsten/M/ - - -Karsten Ballueder - - - diff --git a/utils/HelpHTML/html2wxhelp b/utils/HelpHTML/html2wxhelp deleted file mode 100755 index d2569d1157..0000000000 --- a/utils/HelpHTML/html2wxhelp +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# $Id$ -# -# html2wxhelp Creates a wxhelp.map file from a directory full of html files. -# It takes header lines, extracts the NAME=xxx section for the URL and the help -# id which must be added to the header using _ID_. -# -# It also removes all _ID_ tags from the html sources. - - -make_map() -{ - cat $1 | tr -d '\n' | \ - sed "1,$ s/^.*<[hH][0-9]\([^<].*\)<\/[hH][0-9]>.*$/ -#__#\1 -/g" | \ - fgrep \#__\# | tr ' -' '\n' | egrep -v '^$' | \ - sed "1,$ s/^.*NAME=\"\([^\"]*\)\".*>\([^>]*\)<.*$/$1#\1;\2/g" | \ - sed "1,$ s/^\#__\#[^>]*>\([^<>][^<>]*\)<.*$/;\1/g" | \ - sed "1,$ s/^\(.*\);\(.*\)_\(.*\)_.*$/\3 \1 ;\2/g" | \ - sed "1,$ s/^\([^+-0123456789]\)\(.*\);\(.*\)$/-1 \1\2 ;\3/g" | \ - fgrep -v \#__\# -} - -remove_ids() -{ - cat $1 | \ - sed "1,$ s/_[0-9][0-9]*_//g" > tmp$$ && mv tmp$$ $1 -# cat $1 | tr -d '\n' | \ -# sed "1,$ s/^\(.*<[hH][0-9]\)\([^<_][^_]*\)_.*_*\(<\/[hH][0-9]>.*\)$/\1\2\3 -/g" | \ -# tr ' -' '\n' > tmp$$ \ -# && mv tmp$$ $1 -} - -for i in *.html -do - make_map $i - remove_ids $i -done - diff --git a/utils/HelpHTML/striphelpids b/utils/HelpHTML/striphelpids deleted file mode 100755 index c523b9279d..0000000000 --- a/utils/HelpHTML/striphelpids +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# $Id$ -# small script to strip wxhelp IDs from latex source - -cat $1 | \ -sed '1,$ s/\(^.*\\part{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\chapter{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\section{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\subsection{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\subsubsection{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\paragraph{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\part\*{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\chapter\*{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\section\*{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\subsection\*{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\subsubsection\*{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' | \ -sed '1,$ s/\(^.*\\paragraph\*{.*\)\\_[0-9][0-9]*\\_\(.*$\)/\1\2/g' >/tmp/strip$$ && mv /tmp/strip$$ $1 diff --git a/utils/dialoged/docs/alignb.bmp b/utils/dialoged/docs/alignb.bmp deleted file mode 100644 index 6cc2e1dee47c12433ba418577a2e5ad73fab4848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcma(~u?>JQ3^NiN1DwGf?EKP+GUlZ2U3w8O1iKLn5)y7~M{(M2`-Q+kTgio-$pIr3 yIJ<@@69WdYU=~JYi`E)lf%k&DI+8~tN`4^$nJY-OD*JU>wjJEKHuH!bxvFW diff --git a/utils/dialoged/docs/alignb.eps b/utils/dialoged/docs/alignb.eps deleted file mode 100644 index 2909ad7631..0000000000 --- a/utils/dialoged/docs/alignb.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: alignb.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 298 389 314 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -298 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -07010700 -070181000204020000 -070181000204020000 -070181000204020000 -070181000204020000 -070181000204020000 -8101000300010181000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -810100030001010700 -0f01 -0f01 - -% -% Compression made this file 3.12% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/alignb.gif b/utils/dialoged/docs/alignb.gif deleted file mode 100644 index 7aa46845c988cb03904555c41d226f85c73c5394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmZ?wbhEHb6ky3?MTYSPVa$@LWAt;dKpvL;^=iJV#%6=Avm@lb*fIous{b#onF@+4u9p4UP%F Qs@QU~?Q*7-rXYhg05r%jiU0rr diff --git a/utils/dialoged/docs/alignl.bmp b/utils/dialoged/docs/alignl.bmp deleted file mode 100644 index 30471101b16de3328c3d7a9ddbb74c95669b30c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKju@QhU3I 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -020105000601 -020181000202028100010501 -020181000202028100010501 -020181000202028100010501 -020105000601 -0f01 -0f01 -02010a000101 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -02010a000101 -0f01 - -% -% Compression made this file 16.11% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/alignl.gif b/utils/dialoged/docs/alignl.gif deleted file mode 100644 index 650ce397499764159b83973f40ec2b7f10eb38a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124 zcmZ?wbhEHb6ky3?MTYSTsMJ@YH6txV`%q(`}ZDc#U4UjI>!V_vvdVi+U~l>bq)DU-7<6smGck Hl^Co6qsc5L diff --git a/utils/dialoged/docs/alignr.bmp b/utils/dialoged/docs/alignr.bmp deleted file mode 100644 index 14a2f85241d5a0f1985c58e88c06b64a606b7764..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKju@QhU3fPl58tp)=Q2Jo8bgU*r`XQ zqpFK#Mn{w=#ps68D(8$_P->|Z>mbio$leeL#26AdfBgB^?p|K+nFqW7@RnP41Lmtt AkpKVy diff --git a/utils/dialoged/docs/alignr.eps b/utils/dialoged/docs/alignr.eps deleted file mode 100644 index b3470a2290..0000000000 --- a/utils/dialoged/docs/alignr.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: alignr.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -070105000101 -070181000202028100010001 -070181000202028100010001 -070181000202028100010001 -070105000101 -0f01 -0f01 -02010a000101 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -02010a000101 -0f01 - -% -% Compression made this file 16.11% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/alignr.gif b/utils/dialoged/docs/alignr.gif deleted file mode 100644 index 19f9a9207e55146957f45d4dcfa537db32236400..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmZ?wbhEHb6ky3?MTYShPQ!@LWAt;dS@)cm{Pwc@4QI;$64O_8D9|mmNOsYsKTxU9&~*>$NZ1 KnlzPz!5RP#!!4x% diff --git a/utils/dialoged/docs/alignt.bmp b/utils/dialoged/docs/alignt.bmp deleted file mode 100644 index 4505cbab566385942c0912c245668a2567a6e4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKkF%Ez*3|OdIzEIAs*ie($j$$j@{;1V~tY85%7&OAt xRk@Kpqg9j`#n=R9Rn8f;QR=7^Z-Dj*I)92ty-z9KwtE_g+7Cp#O78pXpD*v#PFw&0 diff --git a/utils/dialoged/docs/alignt.eps b/utils/dialoged/docs/alignt.eps deleted file mode 100644 index 0770b5f842..0000000000 --- a/utils/dialoged/docs/alignt.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: alignt.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -810100030001010700 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8101000300010181000204020000 -070181000204020000 -070181000204020000 -070181000204020000 -070181000204020000 -070181000204020000 -07010700 -0f01 -0f01 - -% -% Compression made this file 20.28% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/alignt.gif b/utils/dialoged/docs/alignt.gif deleted file mode 100644 index 633f980bed544a13ea9cad65bea00a83390d2bab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmZ?wbhEHb6ky3?MTYSPVX#@LbIzasLc|ghD~%6Q#O`5wqkpx4nM3>gmmcTV2mv&HAn_X0Yt= QN1Zv*g(v5@FfdpH04feKX#fBK diff --git a/utils/dialoged/docs/arrow.bmp b/utils/dialoged/docs/arrow.bmp deleted file mode 100644 index a6b99c89915a274a6ff61417529ce2d3cd94a346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmcJMK@x)?3`M_AXY9@k^Z-492k5?caiuOE5VweD`&fMw*SNYNkzPGjz%YMOtT#T diff --git a/utils/dialoged/docs/arrow.eps b/utils/dialoged/docs/arrow.eps deleted file mode 100644 index 9bacc42a95..0000000000 --- a/utils/dialoged/docs/arrow.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: arrow.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -8102001900 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030106018100010c0101020000 -82000301060101000c0101020000 -82000301060102000b0101020000 -82000301060103000a0101020000 -8200030106010400090101020000 -8200030106010500080101020000 -8200030106010600070101020000 -8200030106010700060101020000 -8200030106010400090101020000 -8200030106010100810100810001080101020000 -82000301060181000101010100080101020000 -820003010a010100080101020000 -820003010b010100070101020000 -820003010b010100070101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -1b00 - -% -% Compression made this file 13.95% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/arrow.gif b/utils/dialoged/docs/arrow.gif deleted file mode 100644 index aa2c4605cbe99f78ec038111dd57b539ddcf2ade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mOOz*&((W>yga-6xzGohl+1Y=oh`|)mc72RZ_BA`6*`Z$+I`*-&BgF# zr<%=Uft$jMw0v(0{tB|w4Smk}cvId^jrE+fr|R*aSyvY0)qXvF>&|Cpoy$MT8vMU~ c`(YisopwuWTYH;uM|Y2vME?X4K?VkE08&X(e*gdg diff --git a/utils/dialoged/docs/back.gif b/utils/dialoged/docs/back.gif deleted file mode 100644 index 8a61076d3ba74bdedc1d24f60c3d1f5a361a6cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmV<703QEGNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>t<(Iwfoo diff --git a/utils/dialoged/docs/bmpbuttn.bmp b/utils/dialoged/docs/bmpbuttn.bmp deleted file mode 100644 index 270cf634fe3dd181c3d21306dae205ad8229dc40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmb_ZyA{JA5R>!r9`2F>GC(HC0O_*}RW2o^w}Q=xj^k(7mhS{YMz-<$^SYqmOMbE+ zwHI8=dRod*=uXx)M1X}DZ6I@sloCP+G;%5AtTQ$*T_UO5u>$KhApo~YZmMPAcapZ} zJE?izG@5qe1j4GmYGP>Ej_y0Z_Z`G*MBDF};3v(zqu$+bUwnK&X?bRo&pMA5Sn~Lj LI(Xi!0sgN)rsJo7 diff --git a/utils/dialoged/docs/bmpbuttn.eps b/utils/dialoged/docs/bmpbuttn.eps deleted file mode 100644 index 6c0f5c523c..0000000000 --- a/utils/dialoged/docs/bmpbuttn.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: bmpbuttn.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030103010c00040101020000 -8200030102018100010b01810001020101020000 -82000301020181000101018100010201010002010100020101020000 -8200030102018100010101810001010181000182010001810100810001010101020000 -82000301020185000100010001010181000182010001810100810001010101020000 -8200030102018400010001008100010101010002010100020101020000 -82000301020183000100018201000106010100020101020000 -82000301020182000100820001000900020101020000 -820003010201810001010181000107010100020101020000 -82000301020181000101018100010101010003010100020101020000 -8200030103010e00020101020000 -8200030104010c00030101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 18.45% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/bmpbuttn.gif b/utils/dialoged/docs/bmpbuttn.gif deleted file mode 100644 index 220bddc623b62076ab912c06d6a47196fd1cf00f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mR5mA&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VO) zs5>I}pv6Sj+drcuDa&c@jl+|xW~)xWyxJ`5>a3l~>Xj9D_gzTcuxH1&w6pK6-rMyq z+g+ViA{v_0)a=vd=-$=cTGrPyVPb#dlm>pCS+nQNog+MN;UXiY=4B!rf(#7S0Ot8! AC;$Ke diff --git a/utils/dialoged/docs/body.tex b/utils/dialoged/docs/body.tex deleted file mode 100644 index c88202c1ac..0000000000 --- a/utils/dialoged/docs/body.tex +++ /dev/null @@ -1,200 +0,0 @@ -\chapter{Introduction}\label{introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -The wxWindows Dialog Editor is a tool for creating dialog resource files, in {\tt .wxr} format. -It differs from wxBuilder in the following respectes: - -\begin{enumerate}\itemsep=0pt -\item Scope. It is written for dialog editing only, and is therefore more convenient than wxBuilder for this purpose. -\item File format. Dialog editor reads and writes wxWindows resource files (extension {\tt .wxr}) and has -no independent file format. -\item Robustness. It is written in a more principled way than wxBuilder, and is less ambitious. -\item Ease of use. Windows are edited using the mouse or via consistent {\it property editors}, which -provide immediate visual feedback of changed properties. -\end{enumerate} - -Dialog Editor 2.0 should be compiled and used with wxWindows 2.0. - -\section{Current status} - -Dialog Editor currently runs under wxMSW and wxGTK. It has yet to -be tested under wxMotif. - -\section{Future developments} - -\begin{itemize}\itemsep=0pt -\item Motif compilation. -\item It would be nice to have a dialog browser, showing thumbnails of -all dialogs in a particular directory. -\item Maybe add a menubar editor (from wxBuilder). -\item Maybe convert Windows .rc files. -\end{itemize} - -\chapter{Commands}\label{commands} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Dialog editor menu bar} - -\subsection{File menu} - -\begin{twocollist}\itemsep=0pt -\twocolitem{New dialog}{Creates a new dialog resource.} -\twocolitem{New project}{Creates a new project (clears index and resets project name).} -\twocolitem{Open}{Opens an existing resource file.} -\twocolitem{Save}{Saves the current resources.} -\twocolitem{Save As...}{Saves the current resources in a named file.} -\twocolitem{Clear}{Clears the current resources.} -\twocolitem{Exit}{Exits the program.} -\end{twocollist} - -\subsection{Edit menu} - -\begin{twocollist}\itemsep=0pt -\twocolitem{Test Dialog}{Creates the current dialog for test purposes.} -\twocolitem{Recreate}{Recreates the currently selected control from the underlying resource. This may be necessary -to regenerate items that cannot be changed dynamically, and which have got out of sync with the displayed -item.} -\twocolitem{Delete}{Deletes the currently selected resource.} -\end{twocollist} - -\subsection{Help menu} - -\begin{twocollist}\itemsep=0pt -\twocolitem{Help topics}{Displays on-line help at the contents page.} -\twocolitem{About}{Displays an dialog showing the Dialog Editor version and author.} -\end{twocollist} - -\latexonly{\newpage} -\section{Command toolbar} - -The command toolbar consists of the following tools: - -\begin{twocollist}%\itemsep=0pt -\twocolitem{\icon{new.eps}{New}}{Clears the project.} -\twocolitem{\icon{open.eps}{Open}}{Opens an existing resource file.} -\twocolitem{\icon{save.eps}{Save}}{Saves the current resources.} -\twocolitem{\icon{vert.eps}{Horizontal align}}{Aligns the centre of the selected items horizontally.} -\twocolitem{\icon{alignt.eps}{Horizontal top-align}}{Aligns the top sides of the selected items horizontally.} -\twocolitem{\icon{alignb.eps}{Horizontal bottom-align}}{Aligns the bottom sides of the selected items horizontally.} -\twocolitem{\icon{horiz.eps}{Vertical align}}{Aligns the centre of the selected items vertically.} -\twocolitem{\icon{alignl.eps}{Vertical left-align}}{Aligns the left sides of the selected items vertically.} -\twocolitem{\icon{alignr.eps}{Vertical right-align}}{Aligns the right sides of the selected items vertically.} -\twocolitem{\icon{copysize.eps}{Copy size}}{Copies the size of the first selected item to the subsequently selected item(s).} -\twocolitem{\icon{tofront.eps}{To front}}{Puts the selected item(s) to the front of the display list.} -\twocolitem{\icon{toback.eps}{To back}}{Puts the selected item(s) to the back of the display list.} -\twocolitem{\icon{help.eps}{Help}}{Invokes Dialog Editor help.} -\end{twocollist} - -\latexonly{\newpage} -\section{Tool palette} - -The tool palette is used to select a type of control to create on the dialog. -To create a new control, select a tool with left-click, then left-click on the dialog. -Select the pointer tool to use left-click for selecting and deselecting -items. - -\section{Resource tree} - -The resource tree shows a list of the dialogs, controls and bitmaps currently loaded -in Dialog Editor. Double-clicking on an item shows the associated resource. - -\chapter{Procedures}\label{procedures} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Running Dialog Editor} - -To run Dialog Editor under Windows, click on the Program Manager or Explorer icon. -Under UNIX, run from the command line. - -The main window shows a menu bar, command toolbar, tool palette, resource list, and -status line. - -\section{Creating a dialog} - -To create a new dialog, click on the {\bf File: New} menu item, or equivalent -toolbar button. A dialog will appear. To put a control on the dialog, left-click -on the appropriate palette icon and then left-click on the dialog. A new item -will appear at the place you clicked. - -You can edit any control or dialog by control-left clicking. A property editor -will appear, allowing any property to be selected and edited (see \helpref{Using property editors}{propeditors}). -You can also edit items by right-clicking to show a menu, and then selecting {\it Edit properties}. - -To move a control, drag the item with the left mouse button, or edit -the position values in the property editor. To resize a control, you -can either select it by left-clicking and then dragging on a selection -handle, or edit the size values in the property editor. - -You can delete items from the right-click menu, or by selecting the item and -choosing {\bf Edit: Delete} from the menu bar. - -\section{Using property editors}\label{propeditors} - -Property editors consist of a list of properties and current values, plus controls at the top of -the editor. If the property is of an appropriate type, you can edit the value directly in the -text field, and confirm or cancel the value using the two buttons to the left of it. -If the property has a predefined range of values, such as labelFontFamily, you can -see a list of permissable values by clicking on the button labelled with an ellipsis symbol ({\bf ...}). -This will show a listbox with possible values and current selection. You may also be able -to cycle through values by double-clicking the value in the listbox. - -Properties may have special editors appropriate to the type. Filename properties invoke -the file selector, and properties containing list of user-definable strings use a -string editor. - -When you change a property value, this value is immediately reflected in -the dialog or control. If the item allows this value to be changed -dynamically, the relevant wxWindows function will be called internally -to effect the change. If the value cannot be changed dynamically, the -item will be destroyed and re-created, which means that there will be -more flickering associated with some kinds of property changes than -others. - -\section{Saving and loading files} - -Use {\it File: Save} and {\it File: Save as} or the equivalent toolbar button -to save the current dialog(s) in a wxWindows resource file (extension {\tt .wxr}). - -The {\tt .wxr} file can be used directly in a wxWindows program, if -wxWindows resources have been enabled when building the wxWindows library. -These files can be loaded dynamically, or included directly into program source -with a \verb$#include$ directive. See the wxWindows user manual for further details. - -\section{Working with identifiers} - -Dialog Editor keeps track of identifiers in your resources, and reads and writes an include file of the -form {\tt name.h} where 'name' is the root name of your {\tt .wxr} file. Dialog Editor -knows about the predefined identifiers such as wxID\_OK. - -When you create a dialog or control, the identifier is initially generated. When you -edit the identifier via a property editor, you can choose a new name, such as a predefined -symbol and optionally change the integer assigned to the name (assuming it's not a -predefined symbol). - -When you save the project, the identifier include file is saved as well. Include this file -in your project so that you can refer to controls and dialogs by identifier rather than -obscure integers. Note that the {\tt .wxr} file itself can only contain integer ids and not the symbols, -due to way in which the resource file is loaded. - -\section{Multi-platform development} - -{\tt .wxr} files generated on one environment (e.g. Windows) can be used in another (e.g. GTK). -If you use default fonts and colouring (set {\bf useSystemDefaults} to True in the dialog properties) -then the dialog fonts and colours will take on the native values, rather than ones specified in the -resource. Without this, colours in the dialog resource may not match system colours. - -Also, set {\bf useDialogUnits} to True whenever possible since this will cause the dialog -to be created using a scale based on the current system font size, and will result in dialogs that are -portable between screen resolutions as well as platforms. - -Because the same control can have different sizes on different GUIs, -the user should be cautious in assuming that one resource file will work for all -platforms. It may be better to plan to conditionally include or load different -resource files for different platforms, with spacing modified to suit each -environment. The best thing is to try your dialog resource on several platforms -and see whether tweaking is required for some platforms. - diff --git a/utils/dialoged/docs/books.bmp b/utils/dialoged/docs/books.bmp deleted file mode 100644 index cf1e148734c807052ec6359ad2eb1a3e8d43d43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 zcmb7?v2KGf5Qg0-f^PH?BCA8E<{c_a$x@Y}nZr;qXR5NnfE2boQZn^-S4x_%j?%%`Rfz!C$uHnGuoYEAr~D;JxHUzQYZhY(}{X$xY0SE&#JC# z5a%D|9QDv}6Qc3-Wv8+GlQ-*8<`8epNC>=NSLPUH1b$st*H{R=IXD*!fgA8x5Dt6l zUCo=!AsqI8={C$E9QGLr_q_i zFK;h=LxQhf>;v~gWIyoy(Zu$`w=UNZZuYl$t>-8&*n94Z?RTzqLWjlGhdMVK;w1@P zgX#l^|MHTQ1q9k0=J>%Sz9`L#Hix;bEVz#^(qoBse!qj(7b diff --git a/utils/dialoged/docs/books.gif b/utils/dialoged/docs/books.gif deleted file mode 100644 index a9a1e46844cb79b3a787ae9bb3e6e2d508bf03df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438 zcmZ?wbhEHb)MwCR*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fItVN1Ekl1 z<==-Bo~!p-yyo5|&a|OdBw-F)fK3h~M^48wm$P>4L6awSt};FJ_To-P0XGMs<;ov4 ztd2A;T@tqP#KXm!wQ-9sM_u`FGQKNQi?-84<=I2%h)`tYU$o^#sQZ1k`! zKE^lWdIOi}l1)t}Syx+_f~s;?oDtlyN%L%HQ2X>XLEHTv1+nE^UFm!x$w>R%`8~dA Y?R$Q+m%X#+np$@6?&;|+EDQ|R0RNK1DF6Tf diff --git a/utils/dialoged/docs/bugs.tex b/utils/dialoged/docs/bugs.tex deleted file mode 100644 index 7cb891653b..0000000000 --- a/utils/dialoged/docs/bugs.tex +++ /dev/null @@ -1,17 +0,0 @@ -\chapter{Bugs}\label{bugs} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -Version 2.0 - -\begin{itemize}\itemsep=0pt -\item No Motif version yet. -\item Some control properties missing. -\item When dragging a selected item, other selected items should follow (to be -consistent with convention), but don't. -\item No grid. -\item No keyboard shortcuts. -\item No tab ordering. -\item In dialog unit mode, controls will sometimes move slightly when properties are edited, -because translating between units isn't always reversible (rounding errors?). -\end{itemize} diff --git a/utils/dialoged/docs/bullet.bmp b/utils/dialoged/docs/bullet.bmp deleted file mode 100644 index aad8fc793edd54ffb5910e67b2470659c95448b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmZumxe>rH2vhFtK1GJ`9PYi2Yw9con_&SdBlI1b>qTKR2Gu`ZXgNITWj7;KP=JJL V1)UXU1`*-lNw`O&c<~DR!2u5s7-j$f diff --git a/utils/dialoged/docs/button.bmp b/utils/dialoged/docs/button.bmp deleted file mode 100644 index e7e95d73f060e29f05b3b80d4ff9f4c95815b664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmc&xxeb6Y3_K7L=~#dPn1BK3*@cQwrp#8!X5r#IAVi78#ZS(bY|CEOxrJb-ov35h z2A#xxBksjGfCA@|qvaRgdl+Mw2qFj}{-}I0L=&?W3Q+b20}MB6Bi9#>k9g|e>s)V3 g9EJC(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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030103010c00040101020000 -8200030102018100010b01810001020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030102018100010b010100020101020000 -8200030103010e00020101020000 -8200030104010c00030101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 15.35% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/button.gif b/utils/dialoged/docs/button.gif deleted file mode 100644 index cbbb8d485a4ce0b33e039ffb184beb2b9ea108e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mNJ1x&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VO) zs5>I}pv6SDSU7m|mo2XOn^m@0*@k3acmB@J-9Pn?qNr|Y_00&mjTt@6D@(X8%i4VU jog3Mp8QWaeR%fi!-P7CGE8IV6vXN5dbP*0g1_o;YjtEe2 diff --git a/utils/dialoged/docs/changes.tex b/utils/dialoged/docs/changes.tex deleted file mode 100644 index fbe44245ff..0000000000 --- a/utils/dialoged/docs/changes.tex +++ /dev/null @@ -1,71 +0,0 @@ -\chapter{Change log}\label{changes} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -December 31st 1998, Version 2.0 - -\begin{itemize}\itemsep=0pt -\item wxWindows 2.0 port. -\item Major user interface changes. -\item Allows identifiers to be edited and reads/writes an id header file. -\end{itemize} - -March 15th 1997, Version 1.7 - -\begin{itemize}\itemsep=0pt -\item Added fix to wx\_rprop.cpp to avoid Fafa bitmap buttons growing every time the -button edited. -\item Added fix to wx\_resed.cpp, case wxID\_EXIT, to clean up properly on exit, avoiding double deletion of wxBitmap. -\end{itemize} - -May 6th 1996, Version 1.6 - -\begin{itemize}\itemsep=0pt -\item Added panel editing in addition to dialog box editing. -\item Cured some bugs with changing window styles such as wxUSER\_COLOURS and label position. -\item Now preserves syntax of bitmap resources in wxr files. -\end{itemize} - -March 1996, Version 1.5 - -\begin{itemize}\itemsep=0pt -\item Changed behaviour of New tool, and changed File menu to include New project and New dialog items. -Behaviour should be more standard now. -\end{itemize} - -March 1st 1996, Version 1.4 - -\begin{itemize}\itemsep=0pt -\item Items (but not dialogs) can now have duplicate names. -\item Can pass a filename to the program from the command line. -\item Cured bizarre error caused by a Windows combobox sending -a fake left-mouse-up error when losing the focus (switching to another -window). This fix will be in wxWindows 1.66. -\item Rewritten code to use only the new type system, and to take account of -of new window style partitioning (flags for different items may have the same value). -Again, wxWindows 1.66 will have the new style values, to make room for more window -styles. -\end{itemize} - -January 28th 1996, Version 1.2 - -\begin{itemize}\itemsep=0pt -\item Now starts off in non-user-colour mode under Windows -\item Dragging item drags other selected items -\item wxMessage saves size correctly, if used in conjunction with wxWin 1.66 -\end{itemize} - -January 19th 1996, Version 1.1 - -\begin{itemize}\itemsep=0pt -\item Cured crash bug when quitting dialog window -\item Added Clear menu item -\item Added window type name to property window -\end{itemize} - -December 19th 1995, Version 1.0 - -\begin{itemize}\itemsep=0pt -\item First release. -\end{itemize} - diff --git a/utils/dialoged/docs/check.bmp b/utils/dialoged/docs/check.bmp deleted file mode 100644 index 718f0a9f0296f5336fa65bea0f823eac0d92617b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmb_Z!41P847^m4$gc}@fKHGB`tL4&)qV2JRMMtBI1aFdAJ6#$$BXe! zzimEX^!+^e^dlsIhLqNckxS&95o4rK+)#?G=p44iVCs$un3e_+xHfb#t`+ZdxUBhA zxA!Di3REtn!tm9V2SUq5ZB$)DIC6^r^!|SLKCd3~_w{x4TlJ1p{)bK4!T+XJuwNfJ C`n9?M diff --git a/utils/dialoged/docs/check.eps b/utils/dialoged/docs/check.eps deleted file mode 100644 index 0c085f3974..0000000000 --- a/utils/dialoged/docs/check.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: check.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030103010c00040101020000 -820003010301010008010100040101020000 -820003010301830001000105018300010001030101020000 -82000301030181000182010001030181000182010001030101020000 -820003010301810001010181000101018100010101810001030101020000 -820003010301810001020183000100010201810001030101020000 -82000301030181000103018100010301810001030101020000 -820003010301810001020183000100010201810001030101020000 -820003010301810001010181000101018100010101810001030101020000 -82000301030181000182010001030181000182010001030101020000 -820003010301830001000105018300010001030101020000 -820003010301010008010100040101020000 -8200030103010c00040101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 18.88% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/check.gif b/utils/dialoged/docs/check.gif deleted file mode 100644 index d10100c03ecafcd0f6a20f6c9f30647566bcf0ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mKK3V&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VO^)|K!W!(i`eVV-!)2gRTHP)Fmd(PZB!t)j`GE!<^CMn3kU=08Sl~(ou diff --git a/utils/dialoged/docs/choice.bmp b/utils/dialoged/docs/choice.bmp deleted file mode 100644 index 2f56ee55b0e86936ee108ea7767906ed7d127ae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcma)3%MHUI41K90ky{t&0GXfz^xj>3Dm`+{RW-GJnt8%y%<;a zTlEREo~KEd9}oeah_Nh;yhTb0Ap{n(PUI{*b{=xXAgb8{EZfckaNW^Oxc}Pw6elZR z;z(~0O=+>`s>UHNUAM-U`;ne%_ KCz%Bt{_6w8y`}*G diff --git a/utils/dialoged/docs/choice.eps b/utils/dialoged/docs/choice.eps deleted file mode 100644 index 43d29814fa..0000000000 --- a/utils/dialoged/docs/choice.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: choice.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -820003018101001200810102810200 -82000301820100010a01010002010100810102810200 -82000301820100010a0102008101000100810102810200 -82000301820100010a010600810102810200 -820003018101001200810102810200 -8200030101018100010901810001030182000102810200 -8200030101018100010901810001820100018301000102810200 -82000301010182000100050002018200010001008301000102810200 -8200030101018100010901810001030182000102810200 -8200030101018100010901810001030182000102810200 -8200030101018200010007008101000500810102810200 -8200030101018100010901810001030182000102810200 -8200030101018100010901810001030182000102810200 -82000301010182000100060001018200010001008301000102810200 -8200030101018100010901810001820100018301000102810200 -8200030101018100010901810001030182000102810200 -8200030101011200810102810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 20.11% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/choice.gif b/utils/dialoged/docs/choice.gif deleted file mode 100644 index a05ff4dee7498536b76867c63f01cb4ebe572ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 217 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mNtP#&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VO=ox-7cg=GnHxM@+u# zWN_@-&>^g*zxP>Qmx)mBiQug-*QD;hcvI9^F7K#={;NOUhc|_57i@oWa`*ev9liAj z8_PYciqoo1>a`O58Y8M2LsH5e^(Rf%oH|Y2O=r&BdGqH9FIc?9NNK_Z4nYP6YXF*y BTEGAR diff --git a/utils/dialoged/docs/classes.tex b/utils/dialoged/docs/classes.tex deleted file mode 100644 index 633f2c202e..0000000000 --- a/utils/dialoged/docs/classes.tex +++ /dev/null @@ -1,5 +0,0 @@ -\chapter{Alphabetical class reference}\label{classref} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -To be written. diff --git a/utils/dialoged/docs/contents.gif b/utils/dialoged/docs/contents.gif deleted file mode 100644 index 3dddfa3dd5f0c652e8b27cd6c29e1fdd49ced5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVG0Pz3-zrVld=jU&4Z(9HWEC2ui06_p40008OjE||y?GK}z zO&EZ)-n{z{a)K3v=81;mmA0S4Fj_r^UyThZDG{h6k9m zHI_(7spd!5_$SH6m{RP?8g%v`FfLyzM^}KD0OaB3JT( zCl&anmc%SrXaEDPl~I|Z_fC(&$iNtpk$lmjm`TEJhyo%k)jjO4=f?j&&jF^kxcgy{ PbY7_X>Z|3R^1F!>`pH0Q diff --git a/utils/dialoged/docs/copysize.eps b/utils/dialoged/docs/copysize.eps deleted file mode 100644 index 9f084995a2..0000000000 --- a/utils/dialoged/docs/copysize.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: copysize.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -090081010001000101 -810002060281000101018100010001 -810002060281000101018100010001 -8100020602820001000300 -810002060281000181010001000001 -090002018100010001 -0f01 -03018b000100010001000100010001 -0f01 -0301810001810100040082010001 -060181000202028100010101 -0301810001810100040082010001 -0f01 -03018b000100010001000100010001 - -% -% Compression made this file 21.11% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/copysize.gif b/utils/dialoged/docs/copysize.gif deleted file mode 100644 index 72b6f08a396ed21df224ea5f33ccd6b28b91bb89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 132 zcmZ?wbhEHb6ky3?MTYSPVa$@O;f^@w!_zB7uWRxUzFmWo3p(R)lqxEYI|?b?f!_zdJDhZTin0 QMavdyb$t2iA;@4200o&aL;wH) diff --git a/utils/dialoged/docs/dialog.bmp b/utils/dialoged/docs/dialog.bmp deleted file mode 100644 index 889d6ad216daf67bbd6c1f5de4edb3a41a357bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcma)3!4bkB5ZpM6>DunWswjvKh$uRACn z)C+m8?6BAU)amp?BEW$d%S7c8DJ6su7|1%1v#dydvPF^Tj2`Hx1p;tb*h#$q;JL}q z)m_PVR=_+HoX|X5aKeAS&2Q_i`LT55t^UY+$oaM1H~+7kHyG-9N5iSyhlPjgt(^B7 L*XF7Oe7)BjDUh8X diff --git a/utils/dialoged/docs/dialog.eps b/utils/dialoged/docs/dialog.eps deleted file mode 100644 index 63045c2465..0000000000 --- a/utils/dialoged/docs/dialog.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: dialog.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 bf0000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81030018000003 -8100041704810300 -82000402150201030000 -820004028102011101010201030000 -8200040294020100010001000100010001000100010001000102810203810300 -820004028102011001810002810203810300 -82000402820200020f02810002810203810300 -82000402820200020f02810002810203810300 -82000402820200028102000b000102810002810203810300 -820004028202000282020004090481000282020002810203810300 -820004028202000282020004090481000282020002810203810300 -820004028202000282020004090481000282020002810203810300 -82000402820200028102000b000102810002810203810300 -82000402820200020f02810002810203810300 -82000402820200020f02810002810203810300 -82000402820200020f02810002810203810300 -8200040283020002000500810200050082020002810203810300 -820004028402000200030303830002000303038300020002810203810300 -820004028402000200030303830002000303038300020002810203810300 -8200040283020002000500810200050082020002810203810300 -82000402820200020f02810002810203810300 -820004028102001100010201030000 -82000402150201030000 -82000402150201030000 -82000402150201030000 -8200040317030000 -81000318030000 -81030018000003 - -% -% Compression made this file 21.77% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/dialog.gif b/utils/dialoged/docs/dialog.gif deleted file mode 100644 index ae430e334576ccc77c788a042dccda4ff62bae84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mT3Zwo~!qU?K`{s|6CRu_sn@2QA$dcECo8}Ki!(fIN^QO`S;s8yWQq6 zHZ8ssc+^HG(kXTF&pnn?CAz;b_{Pm$aBh>--@Ze$4KJCxE#Dq%X6D@(Jv~_DX7~Bo z--_zg8-gVK#N!KFb$Z+xdICDj{U!)anb4Qr+R@e$-&B@bvUt`4pRQ$ED^_Y0PF=rY SgYd>JTlyF8kQ8KKum%86jbd^D diff --git a/utils/dialoged/docs/dialoged.hpj b/utils/dialoged/docs/dialoged.hpj deleted file mode 100644 index 2d3f20ac08..0000000000 --- a/utils/dialoged/docs/dialoged.hpj +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -BMROOT=. ; Assume that bitmaps are where the source is -TITLE=Dialog Editor Manual -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -dialoged.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`dialoged.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/utils/dialoged/docs/dialoged.tex b/utils/dialoged/docs/dialoged.tex deleted file mode 100644 index 441b3d238c..0000000000 --- a/utils/dialoged/docs/dialoged.tex +++ /dev/null @@ -1,48 +0,0 @@ -\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} -\input psbox.tex -% Remove this for processing with dvi2ps instead of dvips -%\special{!/@scaleunit 1 def} -\parskip=10pt -\parindent=0pt -\title{User Manual for Dialog Editor Version 2.0} -\winhelpignore{\author{Julian Smart, Anthemion Software} -\date{December 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, Anthemion Software -\end{center} - -Please see the wxWindows licence for conditions of use. - -\input{body.tex} -\input{changes.tex} -\input{bugs.tex} -\input{tech.tex} - -%\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}% -} -\end{document} - diff --git a/utils/dialoged/docs/forward.gif b/utils/dialoged/docs/forward.gif deleted file mode 100644 index 9c81e8c92fed7fe851ce02e7854dc26a58eae9b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmV;V09*e@Nk%v~VI=?<0Pz3-zrVld=jU&4Z(9HWEC2ui03`qz0007gjE||y?Z1Qp zwAzdF6*A}#V%!v#-{_g@)>Q-cu3}3Ku`2^Nfa3dZ+VyHW%gtsZ`jV7k@%j8Ij}~W) zc{NUP6)X3OWa^|{8nl?rh|gZ1@{(qofnsWu+nmFHSnaq>lB41zSVC9`a)_v*xHx0L S5h*!IS!o$ynW>ps0028gDN7ju diff --git a/utils/dialoged/docs/gauge.bmp b/utils/dialoged/docs/gauge.bmp deleted file mode 100644 index fbb625991598ecedfffe3836dc77a746fe1fadff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmZ?rHDh7`gEAng0mL#;%*en37C*oUrmztE85n?wVgG&z1tft?h64uFfMnr-gMopg0|_)RFz_RBJ3#z$1gOBl2b;%UUJjFI6a<1H#0NUH fyd25B)aIjy4=hAs;f2BnMiLwV!yAYY02p5YXabu> diff --git a/utils/dialoged/docs/gauge.eps b/utils/dialoged/docs/gauge.eps deleted file mode 100644 index 6966f30b35..0000000000 --- a/utils/dialoged/docs/gauge.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: gauge.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 bf0000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81030018000003 -8100041704810300 -82000402150201030000 -82000402150201030000 -8200040204020a00050201030000 -8200040204028100020702810002040201030000 -8200040204028100020702810002040201030000 -8200040204028100020702810002040201030000 -8200040204028100020702810002040201030000 -8200040204028100020702810002040201030000 -8200040204028100020702810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204028100010701810002040201030000 -8200040204020a00050201030000 -82000402150201030000 -82000402150201030000 -8200040317030000 -81000318030000 -81030018000003 - -% -% Compression made this file 18.92% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/gauge.gif b/utils/dialoged/docs/gauge.gif deleted file mode 100644 index af79fe1aef58a40ea131f9d7c82201cf74ba1d0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mPUa_&((Xw_MP4Re=duSd*-~1C?%zp`?Rcgs)sH8G=s^Y|Cz~Te^V32 za@!d0pIYmtX{7sFCJU|Hm634zsaOB4yzks=JCEN;;4JvIto*I+PN}@}o1guNtxb4+ vzcjtNpx!>!sgSWb&`h|&V1j?i#0d^M(`U?_HB)%@y!l2-y^AFU85pbq%(Ye; diff --git a/utils/dialoged/docs/group.bmp b/utils/dialoged/docs/group.bmp deleted file mode 100644 index b202efd768eeb3272aaac915e20aa83f71fc59e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmdr}$q~aK3|wb213x$50#ZQ=$UnX4W%IACoe^5uRg2q{}4o;!XOAPGqyw7LOxugNkn{t8s`T@y5s^$Oy diff --git a/utils/dialoged/docs/group.eps b/utils/dialoged/docs/group.eps deleted file mode 100644 index 6a33b2efbf..0000000000 --- a/utils/dialoged/docs/group.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: group.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 292 382 320 410 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -292 382 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -820003010301880001000100010001000100060101020000 -82000301040181000184010001000182010001060101020000 -820003018101008100018201000101018100018201000101010300010101020000 -82000301820100018401000100018201000181010001000301810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -82000301820100010f01810001810102810200 -820003018101001100010101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 20.15% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/group.gif b/utils/dialoged/docs/group.gif deleted file mode 100644 index 683efa8ce76e52ad1ff596f50215dc884249a79b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mPUa_&((Xw_MP4Re=duSd*-~1C?%zp`?RcgsukS$VS6+;>;8cRFEg#T zE&J!c^C(emKDoH?s_>zJ{m;I?0n=6oJxh}m!lmnW!fU52#7s=YfRPLw z#(z`+HfnVtb3|*6sz$d)?>Z4Y`a~+Fh!QKL_)_s}36K9({}0KQlA;AjifpE4cworp Ka}Dl5-EslZsz8AN diff --git a/utils/dialoged/docs/help.eps b/utils/dialoged/docs/help.eps deleted file mode 100644 index 965ae88d6b..0000000000 --- a/utils/dialoged/docs/help.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: help.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 008080 c0c0c0 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f02 -040205000402 -0302810001030101000302 -02028100018101000100010101000202 -02028200010081000283020001008100020102 -02028200010083000200018101008100020102 -03020100820200018101008100020202 -05028100018101008100020302 -0502820001008100020402 -0502820001008100020402 -0502820001008100020402 -060201000602 -05028100018101008100020302 -05028100018101008100020302 -060202000502 - -% -% Compression made this file 24.03% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/help.gif b/utils/dialoged/docs/help.gif deleted file mode 100644 index ef1825ee190559c5a842f3dceef2ab9c8200f738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129 zcmZ?wbhEHb6ky3?MTYSoA)e@LbJmahtQ}`;BXok{mHlDoYZN&P#rM=-IKW+rB*8KIgs7TrCOd OTU`gI`U^2KSOWm-V=-+2 diff --git a/utils/dialoged/docs/horiz.bmp b/utils/dialoged/docs/horiz.bmp deleted file mode 100644 index 58af34a727e24407124fed67899ae2071dea12e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKjF%Ez*3r)SF8kLTs=5{{JE?DUYEK&^#0pxo{w%L C5KP+u diff --git a/utils/dialoged/docs/horiz.eps b/utils/dialoged/docs/horiz.eps deleted file mode 100644 index 2c78311a5e..0000000000 --- a/utils/dialoged/docs/horiz.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: horiz.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -050104000401 -050181000201028100010301 -050181000201028100010301 -050181000201028100010301 -050104000401 -0f01 -0f01 -02010a000101 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -02010a000101 -0f01 - -% -% Compression made this file 16.11% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/horiz.gif b/utils/dialoged/docs/horiz.gif deleted file mode 100644 index 12025ea84ea113351f6153e83f1cb66886673af5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 126 zcmZ?wbhEHb6kyz2>j Km@t)t!5RPzXE4eD diff --git a/utils/dialoged/docs/listbox.bmp b/utils/dialoged/docs/listbox.bmp deleted file mode 100644 index 07091ea9e3a502f87b9ef47334804012c616a71b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmbtR!3~2j3_Pkz=GO%npc8a}{@JCk!qZQ-N;XT+1|S5vs~W@`03W#o%XKB+F*BKs&9Vz-=Wb(?h}dlg_8f x+%IlOuJtQxYZwGl=ePAmTfJBu`d9U`_b=yf{?F_ki~qm(anjF6%24dy>jRR>p!om* diff --git a/utils/dialoged/docs/listbox.eps b/utils/dialoged/docs/listbox.eps deleted file mode 100644 index 97558a4cc0..0000000000 --- a/utils/dialoged/docs/listbox.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: listbox.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 292 382 320 410 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -292 382 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -820003018101001100010101020000 -820003018201000109018100010301810001810102810200 -820003018201000109018100018201000182010001810102810200 -8200030183010001000500020182000100010082010001810102810200 -820003018201000109018100010301810001810102810200 -820003018201000109018100010301810001810102810200 -82000301830100010007008101000500010101020000 -820003018201000109018100010301810001810102810200 -820003018201000109018100010301810001810102810200 -8200030183010001000600010182000100010082010001810102810200 -820003018201000109018100018201000182010001810102810200 -820003018201000109018100010301810001810102810200 -820003018101001100010101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 5.09% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/listbox.gif b/utils/dialoged/docs/listbox.gif deleted file mode 100644 index 04b4b2cc5b9ea3a56271485243997170e29ed819..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mL`El&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VOu6V>c>rq7r;Yo_q*dGn2wIu?s?2r@8O0|4{6SLgr$ diff --git a/utils/dialoged/docs/load.bmp b/utils/dialoged/docs/load.bmp deleted file mode 100644 index 1c38e97b59dac5b7dcb3d4ac14a31fe36d3fbc6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%m){3`Ez_nP2KLES>QN_TFVHvE)eH08ZrCQ{W?L=aStGNg%iTOA8O|3{UU~ zcRHZbGxVQiiBQhVP*Szl@Yxs<8e?XVGfPPN!qmmh`zzRz%k)d~SOwQraPKkc3JUWb WyzyG%ebUB{{{0*7WXGE5t%V;V>_w>n diff --git a/utils/dialoged/docs/load.eps b/utils/dialoged/docs/load.eps deleted file mode 100644 index b5cd5288df..0000000000 --- a/utils/dialoged/docs/load.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: load.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 808000 c0c0c0 ffff00 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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f02 -090202000202 -0802810002010282000200 -0d020100 -0102020007020200 -8502000304030005000302 -8c020004030403040304030400020202 -8c020003040304030403040300020202 -86020004030403000800 -860200030403000107010000 -82020004820400010701810002 -84020003000107018100020002 -81020081000107018100020102 -81020009000302 -0f02 - -% -% Compression made this file 20.00% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/load.gif b/utils/dialoged/docs/load.gif deleted file mode 100644 index 1ae4cecc50dc6c3733f86274f0591d49611e704d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139 zcmZ?wbhEHb6ky3?MTYSS&uA@LauCA>QWTM`^aS1+I0cH&4)6wl6cv%YkS0XZFo|!XGy;2zXI# Y!*KXX##EVUM!rf*k8?-z3o=*(0HH@RhX4Qo diff --git a/utils/dialoged/docs/message.bmp b/utils/dialoged/docs/message.bmp deleted file mode 100644 index 8861e7c3e1b0371f5155693083a397046bfdd72c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmb`Ey%ED8427R_zKgpokO4A*2S}e?s3Mn?-U>D&PvZCN6e%K0f=>b=%=5KgVDhGa z(C)=1%odN64PRUUs0bks^qeBb2=6@;$rLH+jK)txbee6l0Lwmz2W|uI%F<=~3p-p{ zl08VN2R%Wfgq!FH|YIj P`jPoaP58g5UHD!fw->UN diff --git a/utils/dialoged/docs/message.eps b/utils/dialoged/docs/message.eps deleted file mode 100644 index bb4717a4c4..0000000000 --- a/utils/dialoged/docs/message.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: message.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -820003010901810001090101020000 -8200030108010200090101020000 -8200030108010200090101020000 -820003010701820001000100080101020000 -820003010701820001000100080101020000 -82000301060181000101010200070101020000 -82000301060181000101010200070101020000 -82000301050181000103010200060101020000 -8200030105010800060101020000 -82000301040181000105010200050101020000 -82000301040181000105010200050101020000 -82000301030181000107010200040101020000 -820003010201010008010300030101020000 -820003010101030006010500020101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 15.73% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/message.gif b/utils/dialoged/docs/message.gif deleted file mode 100644 index 54975c536ba6da9cb580b9ef5480b1eca90b3d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mRf;E&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VOJDBt3p*H*W{LPo|*31uk rF-L6}bzgw}O$f0Xc!q@44_<5}YKTWq7@x7bJWb zAN2d?6Rs&ArnDRc576L!UKqJW2m#JH7Gg5Qs5?3zO)+S-UIRCJ@lO7UB9qSy)rNNEg%0^ W$H_Q%UVFDr%=6|Y6_C>^cwc`vj;iJW diff --git a/utils/dialoged/docs/mtext.eps b/utils/dialoged/docs/mtext.eps deleted file mode 100644 index 557442ae7a..0000000000 --- a/utils/dialoged/docs/mtext.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: mtext.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -820003018101001200810102810200 -820003018201000105018100010601010382000102810200 -82000301820100010101010001018100010601010382000102810200 -8200030182010001020181000181010002000401010282000102810200 -820003018201000181010001000101810001820100010301010282000102810200 -820003018201000184010001000182010001820100010301010282000102810200 -8200030182010001810100010081010003000401010282000102810200 -82000301820100010e01010282000102810200 -820003018201000108018100010301010282000102810200 -820003018201000108018100010301010282000102810200 -82000301820100018101000100010103000401010282000102810200 -8200030182010001820100010201810001820100010301010282000102810200 -8200030182010001820100010201810001820100010301010282000102810200 -82000301820100018101000100010104000301010382000102810200 -82000301820100010e01010382000102810200 -820003018101001200810102810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 22.07% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/mtext.gif b/utils/dialoged/docs/mtext.gif deleted file mode 100644 index c1be4008168b8410f40996b4781b96296d009a6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mPrDQo~!qU?K`{s|6CRu_sn@2QA$cH_i0)0EZDoPOs`+{S#b0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/utils/dialoged/docs/new.eps b/utils/dialoged/docs/new.eps deleted file mode 100644 index 7c9a949c37..0000000000 --- a/utils/dialoged/docs/new.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: new.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -020107000401 -0201810002040201000301 -0201810002040283000200010101 -0201810002040203000101 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -020181000207028100010001 -02010a000101 -0f01 - -% -% Compression made this file 20.56% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/new.gif b/utils/dialoged/docs/new.gif deleted file mode 100644 index 3b1fd4c6db0dcd3fdb8cc5ca8f65ec5adc6b8a49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmZ?wbhEHb6kyU;Y8lYM*r^eTR= P?3lHrr|n@COPlx1CCxq%2v|e!MYp%AVpwyo(EN zQs9;PPb#2`TBk`BqO}HhS0VBuVnm|ONJ;DiDi6K56=5~@f>PWVGr{Pi;2e#DJfiFW U&wKV8R!!u0ZaR(3HCdYrFBZyA>Hq)$ diff --git a/utils/dialoged/docs/open.eps b/utils/dialoged/docs/open.eps deleted file mode 100644 index f8b500faaa..0000000000 --- a/utils/dialoged/docs/open.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: open.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -090102000201 -0801810001010182000100 -0d010100 -0101020007010200 -82010003010306000301 -8201000307038100010201 -8201000307038100010201 -8201000302030900 -82010003010381000207020000 -82010003820300020702810001 -84010003000281020081000203028100010001 -81010081000207028100010101 -81010009000301 -0f01 - -% -% Compression made this file 19.17% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/open.gif b/utils/dialoged/docs/open.gif deleted file mode 100644 index 9f2e6503db47148e9ccff302a04f62ad32e70f61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmZ?wbhEHb6kyS8UQRsGm`)S diff --git a/utils/dialoged/docs/picture.bmp b/utils/dialoged/docs/picture.bmp deleted file mode 100644 index 00603f0280f64023adf543fcee28f2677e9a7726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmbVJ!4bkB5ZpM!)cVGtQ#UTPGCl}MmVY^Elw+Kr_CKc5SUN&{mKH)XSKaX2)sn!Z?>{^&6{krmGeHu YCg097toi%zZKm;0|BsI}5b^b1Z-w8Od;kCd diff --git a/utils/dialoged/docs/picture.eps b/utils/dialoged/docs/picture.eps deleted file mode 100644 index 981b2fe478..0000000000 --- a/utils/dialoged/docs/picture.eps +++ /dev/null @@ -1,176 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: picture.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -820003018101001100010101020000 -82000301820100010f01810001810102810200 -82000301820100010201810001040102000201810001810102810200 -8200030182010001010183000100010201810001010181000182010001810102810200 -820003018201000181010083000100010201810001010181000182010001810102810200 - -82000301880100010001000100010201810001010181000182010001810102810200 -82000301870100010001000100810001020102000201810001810102810200 -820003018a01000100010001000100010701810001810102810200 -8200030182010001820100018401000100010701810001810102810200 -8200030181010002000101820001000900010101020000 -82000301820100010101810001820100010801810001810102810200 -820003018201000101018300010001810100810001810100810001010181000181010281 -0200 -8200030182010001010185000100010001820100010401810001810102810200 -8200030182010001810100020081010003000101010082010001810102810200 -82000301830100010001000c01810001810102810200 -820003018101001100010101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 23.43% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/picture.gif b/utils/dialoged/docs/picture.gif deleted file mode 100644 index 05b19aef459d1796f530f01177f55f80460d83cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mR^BI&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VO=ox-9(roZFfX`Cp7V z14SNRD7E33?U(vRLD^6J@}tt9)oGiLCr_2Eb((y%aQh$EqU~>{OFVa(UH(38huQbW z^@&xLUU9j>Sq%|lmaQG-4(%n@lk+F&cT6)ZnW;Hrj(W1rqQy&=E)ia~a+Q(NF-L6}hDJRw9fH1=6KILQbB@6YQ7!}uSD4J4)v}vzW$W6m_nscq^O5O<%-&>q|7$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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030107010400080101020000 -820003010501010004010100060101020000 -8200030104018100010701810001040101020000 -8200030103018100010901810001030101020000 -820003010301810001020102000301810001030101020000 -820003010201810001020104000301810001020101020000 -820003010201810001010106000201810001020101020000 -820003010201810001010106000201810001020101020000 -820003010201810001010106000201810001020101020000 -820003010201810001020104000301810001020101020000 -820003010301810001020102000301810001030101020000 -8200030103018100010901810001030101020000 -8200030104018100010701810001040101020000 -820003010501010004010100060101020000 -8200030107010400080101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 18.24% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/radio.gif b/utils/dialoged/docs/radio.gif deleted file mode 100644 index 90ed06ce312f2a725561f6b88267967f894a4b33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mKK3V&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VOoo%#!oTXt_Z&THTzUIjq4mvYu&7Lz`cfFkOK&AjlojM7)f##6|H&sLz0aQ}KG*?w_=1a8 zRQjeqNs}nGHVvg!?_KWBVq|HI=pZK|q%s357h1PxSLBJg*JZ^kAph&Un|rg8-^k)t F;0F1cIhX(d diff --git a/utils/dialoged/docs/save.eps b/utils/dialoged/docs/save.eps deleted file mode 100644 index 1019aeb244..0000000000 --- a/utils/dialoged/docs/save.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: save.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 808080 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -8101000c000001 -84010002000106018300010001 -840100020001060102000001 -84010002000106018300020001 -84010002000106018300020001 -84010002000106018300020001 -84010002000106018300020001 -8201000281020006000102810001 -820100020a02810001 -82010002810200070082020001 -82010002810200040001018300020001 -82010002810200040001018300020001 -82010002810200040001018300020001 -01010c000001 - -% -% Compression made this file 24.44% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/save.gif b/utils/dialoged/docs/save.gif deleted file mode 100644 index 3a031950e5338cbfda1d777259ea626ffd58d543..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmZ?wbhEHb6ky3BlP6Di1)Y)E#R6o-%FDyKuUEYbBUZYVvID321=0?lS8&h;x;(I?E@mP400D8IzD%3-+lwV t-^+WIuCx`Obod_D2cT(GZLfSeI-dXY-syk69O0IFut^Q9H=~37`U0j9uPOil diff --git a/utils/dialoged/docs/scroll.eps b/utils/dialoged/docs/scroll.eps deleted file mode 100644 index cae1e34614..0000000000 --- a/utils/dialoged/docs/scroll.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: scroll.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -83000301001300810102810200 -8400030100010701810001070182000102810200 -8400030100010701810001070182000102810200 -840003010001020181000102018100010201810001020182000102810200 -8400030100010101030001018100018101000200020182000102810200 -840003010001810100030001018100018101000300010182000102810200 -8400030100010101030001018100018101000200020182000102810200 -840003010001020181000102018100010201810001020182000102810200 -8400030100010701810001070182000102810200 -8400030100010701810001070182000102810200 -83000301001300810102810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 17.47% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/scroll.gif b/utils/dialoged/docs/scroll.gif deleted file mode 100644 index fca1d06ccbc91a60915992887ea7fec24987908e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 212 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mPUa_&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VOev~4eg-Mc)XF$zY2&&6TJqMAheeuduXKL0PM#e5$v7u%+12QL3+s6E>9;nDY&~z+ v-H>GCsPEC@l-#b_)}`LlYu-6wqO#7k=`&`|5S}%6o{>`HA_fjY1_o;YmupkI diff --git a/utils/dialoged/docs/slider.bmp b/utils/dialoged/docs/slider.bmp deleted file mode 100644 index 884166a2fcb7194be9354247ec6c909238c151ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcmb_Z!41P847^m8nqL>_0G%KM^xs|lDtY?JSZqelh60t4s!F|Jo8!*7{)Sw)3{~QhrH~{1+ Bv5^1( diff --git a/utils/dialoged/docs/slider.eps b/utils/dialoged/docs/slider.eps deleted file mode 100644 index 02b1d5a608..0000000000 --- a/utils/dialoged/docs/slider.eps +++ /dev/null @@ -1,174 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: slider.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -83000301008100010b0101008101000100810102810200 -82000301820100010c018600010001000102810200 -82000301820100010c018600010001000102810200 -830003010001000b010500810102810200 -82000301150101020000 -83000301001300810102810200 -840003010001020101020c0181000201020000 -840003010001020101000c0181000201020000 -840003010001020101000c0181000201020000 -840003010001020101020c0181000201020000 -8300030100130002020000 -8200030181010215020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 14.88% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/slider.gif b/utils/dialoged/docs/slider.gif deleted file mode 100644 index 701aa1704ff3f98fb90278affc42206d787d3baf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 zcmZ?wbhEHblwpuz*vtR|4Pe{=rW$~}hK2(N4m310{0EBvXZR1MfHaT=1d2ad7#SEi z8FYY>Koevb7+5L=8a-F<4cm8i_y4&pHtw18GNP1}R_@cX-dV7BTbW+}&b^oSO5|Nq z4&vJ{q_87LsjxlO(92gYclvW3j?GE?#B}|uv^TY>C-D{Bo3uDz;&xTi%)Jk4W`DQ& o{lB5wA*M8-MZ>ebqpiz4x>wD`tL4&l{|T7E7**loj?FpRSw&5oUshN-p>mRAI1m$ zzWao$?Wf76A0YxX#JEk2Tq31}5CVm4hMaXp=g=(%RV!v-UK<49*3ebCKd_wQwK}$Z zR|-harEmdgzH)eo<0$&b#r3-9`M>#aU48Z=Y^v5j!SxDlzH-0!H{RDY3+LWz$mb_j K@V#jV_+MWuNTSsM diff --git a/utils/dialoged/docs/text.eps b/utils/dialoged/docs/text.eps deleted file mode 100644 index e79fe4d8e0..0000000000 --- a/utils/dialoged/docs/text.eps +++ /dev/null @@ -1,178 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: text.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 375 282 403 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 375 translate - -% size of image (on paper, in 1/72inch coords) -28 28 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 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 - - -28 28 8 % dimensions of data -[28 0 0 -28 0 28] % mapping matrix -rlecmapimage - -81020018000002 -8100031703810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -82000301150101020000 -820003018101001200810102810200 -8200030182010001100182000102810200 -82000301820100010e01840001000102810200 -8200030182010001060101000501840001000102810200 -8200030182010001060101000501840001000102810200 -8200030182010001060101000501840001000102810200 -82000301820100018101000200010104000201840001000102810200 -820003018301000100810001810100820001008100018101008100018501000100010281 -0200 -82000301820100010101030081010081000181010081000185010001000102810200 -820003018201000181010082000100820001008100018101008100018501000100010281 -0200 -820003018301000100810001810100820001008100018101008100018501000100010281 -0200 -820003018301000100810001810100820001008100018101008100018501000100010281 -0200 -8200030182010001810100030081010003000201840001000102810200 -82000301820100010e01840001000102810200 -8200030182010001100182000102810200 -820003018101001200810102810200 -82000301150101020000 -82000301150101020000 -82000301150101020000 -8200030217020000 -81000218020000 -81020018000002 - -% -% Compression made this file 22.15% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/text.gif b/utils/dialoged/docs/text.gif deleted file mode 100644 index 58b51dd161ba0083fba8fe037e32d237ad24a841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmZ?wbhEHblwpuz*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zCxZ@1C&&y2mVSXo&((Xw_MP4Re=duSd*-~1C?%zp`?Rcg7VOn`tT~*YxH*NCS$WNXxL$@T#g?i=fo*7y=T_^SS_ORmHe67VZ zYa6Pv3$vQ48xvZc(^4I}>b)jZPV%g`pV2+l&~LVS%se$Goh3_`EngJQ3^NiE0|T7F9qjzl2^cf>9QF?FMZ8d)1PO#h65C0vwDWSpW2H>QNDM@S zmJIC1PUI 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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 808080 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -81010005000701 -8201000203028100010601 -82010002030205000201 -82010002030281000302038100010101 -82010002030281000302038100010101 -82010002030281000302038100010101 -810100050003038100010101 -030181000302030600 -0301810003020381000203020000 -0301810003020381000203020000 -0301050004020000 -080181000203020000 -080181000203020000 -08010600 -0f01 - -% -% Compression made this file 21.81% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/toback.gif b/utils/dialoged/docs/toback.gif deleted file mode 100644 index 82a4ad88ea1e5ffd9dcc9655bfa944ce115239c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmZ?wbhEHb6ky6kZt2!7MtO0PbHJ<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 12 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 808080 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -81010005000701 -8201000203028100010601 -8201000281020007000201 -820100028202000305038100010101 -820100028202000305038100010101 -820100028202000305038100010101 -810100020006038100010101 -030181000305030300 -03018100030503810002810200 -03018100030503810002810200 -0301080001020000 -080181000203020000 -080181000203020000 -08010600 -0f01 - -% -% Compression made this file 21.25% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/tofront.gif b/utils/dialoged/docs/tofront.gif deleted file mode 100644 index ff09220da3e1912f64891777c0cef2e7c16e8bfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmZ?wbhEHb6ky||iD1^^@aGQ0o) diff --git a/utils/dialoged/docs/up.gif b/utils/dialoged/docs/up.gif deleted file mode 100644 index 316d0d2a14b571bea2eb874efd04bfe509f53b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmV;40CxXJNk%v~VHyA!0Pz3-zrVld=jU&4Z(9HWEC2ui02%-o0007FjE||ytzv+j zv|1owxcuhWh0?c)Avq0}dTQw^q7qBdoDA6WKJ*l>%gtCeAWZlgxpoy|ZDMRPr_m>p rx}08pS4?)u<%PWJQ30?Ld;pCXxv6~fs8i2~vH|E+&J(|oGdii}_YJ!sUz z((YWzGDEE-(MqWb%&45RLI?!KTcy|pcxFM{N3r657vo{E>4N2o^{e;ZbNANgU-K?u CAW)M4 diff --git a/utils/dialoged/docs/vert.eps b/utils/dialoged/docs/vert.eps deleted file mode 100644 index 0375e76e5e..0000000000 --- a/utils/dialoged/docs/vert.eps +++ /dev/null @@ -1,161 +0,0 @@ -%!PS-Adobe-2.0 EPSF-2.0 -%%Title: vert.eps -%%Creator: XV Version 2.20 Rev: 4/24/92 - by John Bradley -%%BoundingBox: 254 389 270 404 -%%Pages: 1 -%%DocumentFonts: -%%EndComments -%%EndProlog - -%%Page: 1 1 - -% remember original state -/origstate save def - -% build a temporary dictionary -20 dict begin - -% lower left corner -254 389 translate - -% size of image (on paper, in 1/72inch coords) -16 15 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 9 string def - - -% load up the colormap -currentfile cmap readhexstring -000000 c0c0c0 ffff00 -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 - - -16 15 8 % dimensions of data -[16 0 0 -15 0 15] % mapping matrix -rlecmapimage - -0f01 -07010700 -070181000204020000 -070181000204020000 -8101000300010181000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8201000201028100018201000204020000 -8101000300010181000204020000 -070181000204020000 -070181000204020000 -07010700 -0f01 -0f01 - -% -% Compression made this file 20.28% of the uncompressed size. -% - - -showpage - -% stop using temporary dictionary -end - -% restore original state -origstate restore - -%%Trailer diff --git a/utils/dialoged/docs/vert.gif b/utils/dialoged/docs/vert.gif deleted file mode 100644 index 7992f4c40ae3a04ec954ced9578651d4877d0620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131 zcmZ?wbhEHb6kyJQ3^NiN1DwGf?EKP+GUlZ2U3w8O1iKLn5)y7~M{(M2`-Q+kTgio-$pIr3 yIJ<@@69WdYU=~JYi`E)lf%k&DI+8~tN`4^$nJY-OD*JU>wjJEKHuH!bxvFW diff --git a/utils/dialoged/src/bitmaps/alignb.xbm b/utils/dialoged/src/bitmaps/alignb.xbm deleted file mode 100644 index 6ffdcd94d9..0000000000 --- a/utils/dialoged/src/bitmaps/alignb.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define alignb_width 24 -#define alignb_height 24 -static char alignb_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x07, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, - 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0xf0, 0x09, 0x04, 0x10, 0x09, 0x04, - 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, 0xf0, 0xf9, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/alignb.xpm b/utils/dialoged/src/bitmaps/alignb.xpm deleted file mode 100644 index c3b57a5869..0000000000 --- a/utils/dialoged/src/bitmaps/alignb.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignb_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ........", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" ..... .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" ..... ........", -" ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/alignl.bmp b/utils/dialoged/src/bitmaps/alignl.bmp deleted file mode 100644 index 30471101b16de3328c3d7a9ddbb74c95669b30c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKju@QhU3fPl58tp)=Q2Jo8bgU*r`XQ zqpFK#Mn{w=#ps68D(8$_P->|Z>mbio$leeL#26AdfBgB^?p|K+nFqW7@RnP41Lmtt AkpKVy diff --git a/utils/dialoged/src/bitmaps/alignr.xbm b/utils/dialoged/src/bitmaps/alignr.xbm deleted file mode 100644 index 337bbd762d..0000000000 --- a/utils/dialoged/src/bitmaps/alignr.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define alignr_width 24 -#define alignr_height 24 -static char alignr_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x01, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, 0x00, 0x08, 0x01, - 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, - 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, - 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/alignr.xpm b/utils/dialoged/src/bitmaps/alignr.xpm deleted file mode 100644 index 3f873eed4e..0000000000 --- a/utils/dialoged/src/bitmaps/alignr.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignr_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ...... ", -" .XXXX. ", -" .XXXX. ", -" .XXXX. ", -" ...... ", -" ", -" ", -" ........... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/alignt.bmp b/utils/dialoged/src/bitmaps/alignt.bmp deleted file mode 100644 index 4505cbab566385942c0912c245668a2567a6e4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKkF%Ez*3|OdIzEIAs*ie($j$$j@{;1V~tY85%7&OAt xRk@Kpqg9j`#n=R9Rn8f;QR=7^Z-Dj*I)92ty-z9KwtE_g+7Cp#O78pXpD*v#PFw&0 diff --git a/utils/dialoged/src/bitmaps/alignt.xbm b/utils/dialoged/src/bitmaps/alignt.xbm deleted file mode 100644 index 1cc90e390c..0000000000 --- a/utils/dialoged/src/bitmaps/alignt.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define alignt_width 24 -#define alignt_height 24 -static char alignt_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xf9, 0x07, 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, - 0x10, 0x09, 0x04, 0xf0, 0x09, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, - 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0xf8, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/alignt.xpm b/utils/dialoged/src/bitmaps/alignt.xpm deleted file mode 100644 index 65fc1b5ccb..0000000000 --- a/utils/dialoged/src/bitmaps/alignt.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignt_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ..... ........", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" ..... .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" ........", -" ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/arrow.bmp b/utils/dialoged/src/bitmaps/arrow.bmp deleted file mode 100644 index d406ceb64f017d99bcc2d4913aef75135de357a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmb7-I}UJZQ>1WPN=;5qEQ3zc?;o59U+Ka+r!5!mH1Gr)e_0X9zQo7Bn*m`tDP z>tSJ;fdXA9#W(4KsI?;JEJm}1)|8}VswC~|bu-BQ Vombvu=JhAub(#Nm-N`e*_yJ^>eVzaS diff --git a/utils/dialoged/src/bitmaps/arrow.ico b/utils/dialoged/src/bitmaps/arrow.ico deleted file mode 100644 index 09ec6401554ca321fd4bd89c5fa4b10c3f5f8cbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`I}*Ym6h$wQTG>IUoa{n(COgqKOR!@(mVSzq&-2KnOYb;(;k+MI%tZ?7lyj2n z)=7JEN^?I1X}ggIW*LqU6p4tt>najkrOb&)sah-953FsOc?B#VdHCz6UjPq$RPJ+k xeul;8g?e2Dk8^^jTOv|^h0pnF7dwx!agZi>o}|08gC3Z*-lPY-U;?vid;_+U#@GM= diff --git a/utils/dialoged/src/bitmaps/arrow.xbm b/utils/dialoged/src/bitmaps/arrow.xbm deleted file mode 100644 index 17840c7aeb..0000000000 --- a/utils/dialoged/src/bitmaps/arrow.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define arrow_width 28 -#define arrow_height 28 -static char arrow_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, - 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, - 0x00, 0x7c, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, - 0x00, 0xfc, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, - 0x00, 0xc4, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, - 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/arrow.xpm b/utils/dialoged/src/bitmaps/arrow.xpm deleted file mode 100644 index ad9d577585..0000000000 --- a/utils/dialoged/src/bitmaps/arrow.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char * arrow_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 2 1", -/* colors */ -" s None c None", -". c #000000", -/* pixels */ -" ", -" . ", -" .. ", -" ... ", -" .... ", -" ..... ", -" ...... ", -" ....... ", -" ........ ", -" ..... ", -" .. .. ", -" . .. ", -" .. ", -" .. ", -" .. ", -" "}; diff --git a/utils/dialoged/src/bitmaps/bmpbuttn.bmp b/utils/dialoged/src/bitmaps/bmpbuttn.bmp deleted file mode 100644 index 36278f425a3b6fc527ccde7cad6b27e55e190d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmbVHxedcG3_Jq?m@-vn@Eq>F3#+ILw3)P-d`AklYxC3TC_dWu|ALSo<4XTdU+@b4 zJ@dMJrbhw|GPITlBO!Y4sI@XN!Z3yqohpis;}JYyL0IPPxuG_zGLXDoT<)_=K9WgEAng0mNcZ%*en37UzJUKVPu>WGTjVi{7lX-d?#?5fxY^*pT+1jwLpbrQz<kjwKQTzxIPM3>KMjSFfke5s4*0jEOn1F|sVx cIiWIGV6fL+zn_EFG2egJ|IhOqhuV)bd=_k9p6!;fQkZMEImn9ew=%f zf;y!X<+yj!0gkceW03Y6X{460BNnv91A5nC5=&;4@PwMC3HFU#mU8w8htL9W*M>uDs-V%e=!r$T0<#?jcyCQD^Yy3#FQicGtYPkve*IU;AE^0f<*o9aaNC* j-sW5$dCu|q@!h0jECk8#&s{Jtan*Ao54U>ack_c!H9}t@ diff --git a/utils/dialoged/src/bitmaps/choice.ico b/utils/dialoged/src/bitmaps/choice.ico deleted file mode 100644 index 3a1f98d32964a9b953e9b273fa2e34743b1ab2a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH_y$!-J6ok(KiBymgT%nA?D2$NKDPPGLjN)`S?#_>J@wt(2!|*s0JY9rH`kBv9{=37VqI|1pda0Q&m~ZDc!&1R$-cN_BgQ`kx Y?Wd7rIojpDEZwuNp^`H*T$A!Go&)^yVE_OC diff --git a/utils/dialoged/src/bitmaps/choice.xbm b/utils/dialoged/src/bitmaps/choice.xbm deleted file mode 100644 index 973f5c127d..0000000000 --- a/utils/dialoged/src/bitmaps/choice.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define choice_width 28 -#define choice_height 28 -static char choice_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x00, - 0x10, 0x00, 0xc6, 0x00, 0x10, 0x00, 0xee, 0x00, 0x10, 0x00, 0xfe, 0x00, - 0xf0, 0xff, 0xff, 0x00, 0x20, 0x00, 0x82, 0x00, 0x20, 0x00, 0x92, 0x00, - 0xa0, 0x3f, 0xba, 0x00, 0x20, 0x00, 0x82, 0x00, 0x20, 0x00, 0x82, 0x00, - 0xa0, 0xff, 0xfe, 0x00, 0x20, 0x00, 0x82, 0x00, 0x20, 0x00, 0x82, 0x00, - 0xa0, 0x7f, 0xba, 0x00, 0x20, 0x00, 0x92, 0x00, 0x20, 0x00, 0x82, 0x00, - 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/choice.xpm b/utils/dialoged/src/bitmaps/choice.xpm deleted file mode 100644 index c46aaf5dba..0000000000 --- a/utils/dialoged/src/bitmaps/choice.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * choice_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@..............@", -"@.########+++++@", -"@.########.....@", -"@.########+...+@", -"@.########++.++@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@", -" ##############", -" ..............", -" .#########+.+.", -" .#########....", -" .#########+++.", -" .#########....", -" .#########+.+.", -" .............."}; diff --git a/utils/dialoged/src/bitmaps/combobox.ico b/utils/dialoged/src/bitmaps/combobox.ico deleted file mode 100644 index ff2941bb2902a48f9a77471086741cfa10be646b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH_y$!-J6ok(KiBymgT%nA?D2$NKDPPGLjN)-9*&uw+P9%gPBq|EH_};yr*h;LE zf*Qrx$#H9>BiePf?t`@7NIks>PcUdp1iZTrlUOpVLL^nr8TG+bmZr%w$m1;!fBf_f z;DN8geeTYWaPhg3ufy;-6FgmnNcx%25B|HuprV{rG`-Z!7tFVFnPI75G~bwZquu>D cRh8P>Ps|J2WnY%AS?5s6H#2@FRP?8g%v`FfLyzM^}KD0OaB3JT( zCl&anmc%SrXaEDPl~I|Z_fC(&$iNtpk$lmjm`TEJhyo%k)jjO4=f?j&&jF^kxcgy{ PbY7_X>Z|3R^1F!>`pH0Q diff --git a/utils/dialoged/src/bitmaps/copysize.xbm b/utils/dialoged/src/bitmaps/copysize.xbm deleted file mode 100644 index 6fcb9e6e95..0000000000 --- a/utils/dialoged/src/bitmaps/copysize.xbm +++ /dev/null @@ -1,8 +0,0 @@ -#define copysize_width 24 -#define copysize_height 24 -static char copysize_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0xf0,0xbf,0x03,0x10,0x20,0x02,0x10,0x20,0x02,0x10,0xa0,0x0f,0x10,0x20,0x07, - 0xf0,0x3f,0x02,0x00,0x00,0x00,0x00,0x55,0x05,0x00,0x00,0x00,0x00,0xf9,0x05, - 0x00,0x08,0x01,0x00,0xf9,0x05,0x00,0x00,0x00,0x00,0x55,0x05,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; diff --git a/utils/dialoged/src/bitmaps/copysize.xpm b/utils/dialoged/src/bitmaps/copysize.xpm deleted file mode 100644 index 4694bd4083..0000000000 --- a/utils/dialoged/src/bitmaps/copysize.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *copysize_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -".......... ... ", -".XXXXXXXX. . ", -".XXXXXXXX. . ", -".XXXXXXXX. .....", -".XXXXXXXX. ... ", -".......... . ", -" ", -" . . . . . . ", -" ", -" . ...... . ", -" .XXXX. ", -" . ...... . ", -" ", -" . . . . . . " -}; diff --git a/utils/dialoged/src/bitmaps/cpp.xbm b/utils/dialoged/src/bitmaps/cpp.xbm deleted file mode 100644 index a05d1d1686..0000000000 --- a/utils/dialoged/src/bitmaps/cpp.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define cpp_width 24 -#define cpp_height 24 -static char cpp_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x30, 0x34, 0x06, - 0x18, 0x30, 0x06, 0x18, 0x78, 0x0f, 0x18, 0x78, 0x0f, 0x18, 0x30, 0x06, - 0x30, 0x34, 0x06, 0xe0, 0x03, 0x00, 0x00, 0x40, 0x00, 0x00, 0xc0, 0x00, - 0x00, 0xff, 0x01, 0x00, 0xc0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/cross.bmp b/utils/dialoged/src/bitmaps/cross.bmp deleted file mode 100644 index 079cb0dd58010154f6a791eead3a4cc19c02cf31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmZup$qm3D40EMQNS&l}^k1o?@M^wn1~1l1?Et?*e8`4ecgHv{Y0+9kDTRf{z+H~uRU|SqMnJMG$uK0U!a!ytzjWs7-TIffM+-jaAS7o1 diff --git a/utils/dialoged/src/bitmaps/dialog.bmp b/utils/dialoged/src/bitmaps/dialog.bmp deleted file mode 100644 index 889d6ad216daf67bbd6c1f5de4edb3a41a357bdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 566 zcma)3!4bkB5ZpM6>DunWswjvKh$uRACn z)C+m8?6BAU)amp?BEW$d%S7c8DJ6su7|1%1v#dydvPF^Tj2`Hx1p;tb*h#$q;JL}q z)m_PVR=_+HoX|X5aKeAS&2Q_i`LT55t^UY+$oaM1H~+7kHyG-9N5iSyhlPjgt(^B7 L*XF7Oe7)BjDUh8X diff --git a/utils/dialoged/src/bitmaps/dialog.ico b/utils/dialoged/src/bitmaps/dialog.ico deleted file mode 100644 index 6e8c9aab412ab96a696138888b0af7382073278c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`F%Ci@5JZQswQvL~^N-=Jv~xQ>76P2vp!li%S9xrQx0=!0Tj+OR DGhpdM diff --git a/utils/dialoged/src/bitmaps/dialog.xbm b/utils/dialoged/src/bitmaps/dialog.xbm deleted file mode 100644 index 409675024c..0000000000 --- a/utils/dialoged/src/bitmaps/dialog.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define dialog_width 28 -#define dialog_height 28 -static char dialog_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0x7f, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x90, 0xff, 0x4f, 0x00, - 0x90, 0x00, 0x48, 0x00, 0x90, 0x00, 0x48, 0x00, 0x90, 0x00, 0x48, 0x00, - 0x90, 0xff, 0x4f, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0xd0, 0xdf, 0x5f, 0x00, 0x50, 0x50, 0x50, 0x00, - 0x50, 0x50, 0x50, 0x00, 0xd0, 0xdf, 0x5f, 0x00, 0x10, 0x00, 0x40, 0x00, - 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/dialog.xpm b/utils/dialoged/src/bitmaps/dialog.xpm deleted file mode 100644 index 24e227697a..0000000000 --- a/utils/dialoged/src/bitmaps/dialog.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * dialog_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 6 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #0000ff", -"$ c #ffffff", -/* pixels */ -" ", -" $$$$$$$$$$$$$. ", -" $############. ", -" $############. ", -" $############. ", -" $++++++++++++. ", -" $+$$$$$+@@@@+. ", -" $+$$$$$+@@@@+. ", -" $+$$$$$++++++. ", -" $+$$$$$+@@@@+. ", -" $+++++++@@@@+. ", -" $++++++++++++. ", -" $++++++++++++. ", -" $++++++++++++. ", -" .............. ", -" "}; diff --git a/utils/dialoged/src/bitmaps/dialoged.ico b/utils/dialoged/src/bitmaps/dialoged.ico deleted file mode 100644 index cec6bac64ecd29c4736882dc3976810ac1d87ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmcgpF%H5o47>tEH(+7T$S>eYWeOYF=r8z6p2N z1GQt9>PwC(lKGc9t$0B6(+ad_Yi;MUf8wKD=*76b_SZc2QwsiZ-sD&F*q`*;ui}Sw k5xn(JoWGT$3mRx1{5jGJ4fjv5s88Ve*EvB&#`4$ z-KWwol7~Nj z`ULR6SK&T)=Vv(k+{l+?d0>&R*eTfDQ!M>~0gH7u(az4o zLMOL7JG)CrjsYBcNRk+aYY!NaFo2l9^q diff --git a/utils/dialoged/src/bitmaps/folder2.xpm b/utils/dialoged/src/bitmaps/folder2.xpm deleted file mode 100644 index 93f4610a42..0000000000 --- a/utils/dialoged/src/bitmaps/folder2.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * folder2_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 6 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffff00", -"$ c #ffffff", -/* pixels */ -" ", -" @@@@@ ", -" @$$$$$@ ", -" @$#+#+#$@@@@@@ ", -" @$+#+#+$$$$$$@.", -" @$#+#+#+#+#+#@.", -"@@@@@@@@@@@@@#@.", -"@$$$$$$$$$$@@+@.", -"@$#+#+#+#+##.@@.", -" @$#+#+#+#+#+.@.", -" @$+#+#+#+#+#.@.", -" @$+#+#+#+##@..", -" @@@@@@@@@@@@@.", -" .............", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/frame.xbm b/utils/dialoged/src/bitmaps/frame.xbm deleted file mode 100644 index f9d950c274..0000000000 --- a/utils/dialoged/src/bitmaps/frame.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define frame_width 28 -#define frame_height 28 -static char frame_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xff, 0x7f, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0x40, 0x00, - 0xd0, 0x36, 0x40, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/gauge.bmp b/utils/dialoged/src/bitmaps/gauge.bmp deleted file mode 100644 index 7803dd76c199551899407b65f10508a01c513997..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmZ?rtz%>WgEAng0mNcZ%*en37UzJbKe Eo;I1*NdN!< diff --git a/utils/dialoged/src/bitmaps/gauge.xbm b/utils/dialoged/src/bitmaps/gauge.xbm deleted file mode 100644 index a4dbaa94cd..0000000000 --- a/utils/dialoged/src/bitmaps/gauge.xbm +++ /dev/null @@ -1,11 +0,0 @@ -#define gauge_width 28 -#define gauge_height 28 -static char gauge_bits[] = { - 0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00, - 0xf0,0x00,0xff,0x07,0xf0,0x00,0x01,0x04,0xf0,0x00,0x01,0x04,0xf0,0x00,0x01, - 0x04,0xf0,0x00,0x01,0x04,0xf0,0x00,0x01,0x04,0xf0,0x00,0x01,0x04,0xf0,0x00, - 0xff,0x07,0xf0,0x00,0xff,0x07,0xf0,0x00,0xff,0x07,0xf0,0x00,0xff,0x07,0xf0, - 0x00,0xff,0x07,0xf0,0x00,0xff,0x07,0xf0,0x00,0xff,0x07,0xf0,0x00,0xff,0x07, - 0xf0,0x00,0xff,0x07,0xf0,0x00,0xff,0x07,0xf0,0x00,0xff,0x07,0xf0,0x00,0xff, - 0x07,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0xf0,0x00, - 0x00,0x00,0xf0,0x00,0x00,0x00,0xf0}; diff --git a/utils/dialoged/src/bitmaps/gauge.xpm b/utils/dialoged/src/bitmaps/gauge.xpm deleted file mode 100644 index 947bbdf024..0000000000 --- a/utils/dialoged/src/bitmaps/gauge.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * gauge_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #000080", -"@ c #c0c0c0", -"# c #808080", -/* pixels */ -" ", -" ", -" ", -"################", -"#..............#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"#.++++++++@@@@@#", -"################", -" ", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/group.bmp b/utils/dialoged/src/bitmaps/group.bmp deleted file mode 100644 index 387a988b69e122dd4ea112d45d958e0f9dd697a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmd6iyA8uI3v7OgYjr3~!Jpk~)40^8NWPO6|lAe@$QX z$og~kBUz_sLrr07?f8hGdhe>W(imwPBM9e3iQt!RT$nrLD(6i3cQ#{1^VkzAZZ0`@ OLF5QF#7y#enCl0ENPMCI diff --git a/utils/dialoged/src/bitmaps/group.xbm b/utils/dialoged/src/bitmaps/group.xbm deleted file mode 100644 index 0dc97eace6..0000000000 --- a/utils/dialoged/src/bitmaps/group.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define group_width 28 -#define group_height 28 -static char group_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0xaa, 0x03, 0x00, 0x00, 0x29, 0x01, 0x00, - 0x30, 0x91, 0x78, 0x00, 0x90, 0x92, 0x43, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, - 0x10, 0x00, 0x40, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/help.bmp b/utils/dialoged/src/bitmaps/help.bmp deleted file mode 100644 index 54d5aa4b56a7613193cca03be224a2a2524c45dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZuqF%p0v42yRjjQR}U;qD)pm^+ChPvb>?0n=6oJxh}m!lmnW!fU52#7s=YfRPLw z#(z`+HfnVtb3|*6sz$d)?>Z4Y`a~+Fh!QKL_)_s}36K9({}0KQlA;AjifpE4cworp Ka}Dl5-EslZsz8AN diff --git a/utils/dialoged/src/bitmaps/help.xbm b/utils/dialoged/src/bitmaps/help.xbm deleted file mode 100644 index f382fd1f29..0000000000 --- a/utils/dialoged/src/bitmaps/help.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define help_width 24 -#define help_height 24 -static char help_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x10, 0xe0, 0x07, 0x30, 0x30, 0x0f, 0x70, 0x38, 0x0e, 0xf0, 0x38, 0x0e, - 0xf0, 0x39, 0x0f, 0xf0, 0x03, 0x07, 0xf0, 0x87, 0x01, 0xf0, 0xcf, 0x01, - 0xf0, 0xc1, 0x01, 0xb0, 0x01, 0x00, 0x10, 0xc3, 0x01, 0x00, 0xc3, 0x01, - 0x00, 0x06, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/help.xpm b/utils/dialoged/src/bitmaps/help.xpm deleted file mode 100644 index 27a87ebb31..0000000000 --- a/utils/dialoged/src/bitmaps/help.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *help_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c #008080", -/* pixels */ -" ", -" ...... ", -" .XXXXX.. ", -" .XX...XX.. ", -" .X.. .X.. ", -" .X.. .XX.. ", -" .. .XX.. ", -" .XX.. ", -" .X.. ", -" .X.. ", -" .X.. ", -" .. ", -" .XX.. ", -" .XX.. ", -" ... " -}; diff --git a/utils/dialoged/src/bitmaps/horiz.bmp b/utils/dialoged/src/bitmaps/horiz.bmp deleted file mode 100644 index 58af34a727e24407124fed67899ae2071dea12e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKjF%Ez*3r)SF8kLTs=5{{JE?DUYEK&^#0pxo{w%L C5KP+u diff --git a/utils/dialoged/src/bitmaps/horiz.xbm b/utils/dialoged/src/bitmaps/horiz.xbm deleted file mode 100644 index e4a0e385a8..0000000000 --- a/utils/dialoged/src/bitmaps/horiz.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define horiz_width 24 -#define horiz_height 24 -static char horiz_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x3e, 0x00, 0x00, 0x22, 0x00, 0x00, 0x22, 0x00, 0x00, 0x22, 0x00, - 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, - 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, 0x40, 0x00, 0x01, - 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/horiz.xpm b/utils/dialoged/src/bitmaps/horiz.xpm deleted file mode 100644 index 381e66fccf..0000000000 --- a/utils/dialoged/src/bitmaps/horiz.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *horiz_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ..... ", -" .XXX. ", -" .XXX. ", -" .XXX. ", -" ..... ", -" ", -" ", -" ........... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/listbox.bmp b/utils/dialoged/src/bitmaps/listbox.bmp deleted file mode 100644 index 4d5fb34779927b41870954649505f116b69bd209..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmb79Ne+M@3>*>@JbLmCzQenJ;UqW1&){b`Elt40gO<)PbOZL|a!@`K z?#fSC*SQfN!_YV#G+hZ#_?FJ^J8Y>~t={^!v!<3W>vNyH&b_Ml{rx=V`AjhN_qOzN FzX29s`w##C diff --git a/utils/dialoged/src/bitmaps/listbox.xbm b/utils/dialoged/src/bitmaps/listbox.xbm deleted file mode 100644 index fe08136a2d..0000000000 --- a/utils/dialoged/src/bitmaps/listbox.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define listbox_width 28 -#define listbox_height 28 -static char listbox_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, - 0x10, 0x00, 0x41, 0x00, 0x10, 0x00, 0x49, 0x00, 0xd0, 0x1f, 0x5d, 0x00, - 0x10, 0x00, 0x41, 0x00, 0x10, 0x00, 0x41, 0x00, 0xd0, 0x7f, 0x7f, 0x00, - 0x10, 0x00, 0x41, 0x00, 0x10, 0x00, 0x41, 0x00, 0xd0, 0x3f, 0x5d, 0x00, - 0x10, 0x00, 0x49, 0x00, 0x10, 0x00, 0x41, 0x00, 0xf0, 0xff, 0x7f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/listbox.xpm b/utils/dialoged/src/bitmaps/listbox.xpm deleted file mode 100644 index 3d6b7b0e82..0000000000 --- a/utils/dialoged/src/bitmaps/listbox.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * listbox_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@..............@", -"@.##########+++@", -"@.##########+.+@", -"@.++++++++++...@", -"@.##########+++@", -"@.##########+++@", -"@.+++++++++++++@", -"@.##########+++@", -"@.##########+++@", -"@.+++++++++++++@", -"@.##########+++@", -"@.##########...@", -"@.##########+.+@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@"}; diff --git a/utils/dialoged/src/bitmaps/load.bmp b/utils/dialoged/src/bitmaps/load.bmp deleted file mode 100644 index 1c38e97b59dac5b7dcb3d4ac14a31fe36d3fbc6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%m){3`Ez_nP2KLES>QN_TFVHvE)eH08ZrCQ{W?L=aStGNg%iTOA8O|3{UU~ zcRHZbGxVQiiBQhVP*Szl@Yxs<8e?XVGfPPN!qmmh`zzRz%k)d~SOwQraPKkc3JUWb WyzyG%ebUB{{{0*7WXGE5t%V;V>_w>n diff --git a/utils/dialoged/src/bitmaps/load.xbm b/utils/dialoged/src/bitmaps/load.xbm deleted file mode 100644 index 94c3ad5a9e..0000000000 --- a/utils/dialoged/src/bitmaps/load.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define load_width 24 -#define load_height 24 -static char load_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xe0, 0x00, 0x00, 0x10, 0x05, 0x00, 0x00, 0x06, 0xe0, 0x00, 0x07, - 0x10, 0x7f, 0x00, 0x10, 0x40, 0x00, 0x10, 0x40, 0x00, 0x10, 0xfe, 0x0f, - 0x10, 0x01, 0x04, 0x90, 0x00, 0x02, 0x50, 0x00, 0x01, 0x30, 0x80, 0x00, - 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/load.xpm b/utils/dialoged/src/bitmaps/load.xpm deleted file mode 100644 index c15a298f62..0000000000 --- a/utils/dialoged/src/bitmaps/load.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *load_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Yellow", -"o c Gray100", -"O c #808000", -/* pixels */ -" ", -" ... ", -" . . .", -" ..", -" ... ...", -" .XoX....... ", -" .oXoXoXoXo. ", -" .XoXoXoXoX. ", -" .oXoX..........", -" .XoX.OOOOOOOOO.", -" .oo.OOOOOOOOO. ", -" .X.OOOOOOOOO. ", -" ..OOOOOOOOO. ", -" ........... ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/message.bmp b/utils/dialoged/src/bitmaps/message.bmp deleted file mode 100644 index fb682e89e6b1b6e8e5564c36b70799068098cf8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmb7;F%H8p3&InCD~$q;jo1M%kdkb>mb9216Te4?lF20 diff --git a/utils/dialoged/src/bitmaps/message.xbm b/utils/dialoged/src/bitmaps/message.xbm deleted file mode 100644 index f0f5385486..0000000000 --- a/utils/dialoged/src/bitmaps/message.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define message_width 28 -#define message_height 28 -static char message_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x20, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, - 0x00, 0xe8, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0xc4, 0x01, 0x00, - 0x00, 0xc4, 0x01, 0x00, 0x00, 0x82, 0x03, 0x00, 0x00, 0xfe, 0x03, 0x00, - 0x00, 0x01, 0x07, 0x00, 0x00, 0x01, 0x07, 0x00, 0x80, 0x00, 0x0e, 0x00, - 0xc0, 0x00, 0x1e, 0x00, 0xe0, 0x01, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/mtext.bmp b/utils/dialoged/src/bitmaps/mtext.bmp deleted file mode 100644 index 5ab765b69af6d6140bd3f0ee608c1efaf6fe2156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmZ`zF%HBa40ENE(($Hy!@Z+>|H9O4C&v2~{ERwjC|xil7(0ow?Y{+%gZaz&L@ao@ zzJ_m~cZ3@#u!~ZzhnW<$R^*&%G{0!g7=yb0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/utils/dialoged/src/bitmaps/new.xbm b/utils/dialoged/src/bitmaps/new.xbm deleted file mode 100644 index 8b75207815..0000000000 --- a/utils/dialoged/src/bitmaps/new.xbm +++ /dev/null @@ -1,8 +0,0 @@ -#define new_width 24 -#define new_height 24 -static char new_bits[] = { - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x80,0x7f,0x00,0x80,0xc0,0x00,0x80,0x40,0x01,0x80,0xc0,0x03,0x80,0x00,0x02, - 0x80,0x00,0x02,0x80,0x00,0x02,0x80,0x00,0x02,0x80,0x00,0x02,0x80,0x00,0x02, - 0x80,0x00,0x02,0x80,0x00,0x02,0x80,0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; diff --git a/utils/dialoged/src/bitmaps/new.xpm b/utils/dialoged/src/bitmaps/new.xpm deleted file mode 100644 index 754d2d20a2..0000000000 --- a/utils/dialoged/src/bitmaps/new.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *new_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Gray100", -/* pixels */ -" ", -" ........ ", -" .XXXXXX.. ", -" .XXXXXX.X. ", -" .XXXXXX.... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/open.bmp b/utils/dialoged/src/bitmaps/open.bmp deleted file mode 100644 index 9d90ab6fd09eb672a19966282758642c6ec82cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZuqu?@p83}b)-$=06HJF@2&PEkjV{>r|n@COPlx1CCxq%2v|e!MYp%AVpwyo(EN zQs9;PPb#2`TBk`BqO}HhS0VBuVnm|ONJ;DiDi6K56=5~@f>PWVGr{Pi;2e#DJfiFW U&wKV8R!!u0ZaR(3HCdYrFBZyA>Hq)$ diff --git a/utils/dialoged/src/bitmaps/panel.xbm b/utils/dialoged/src/bitmaps/panel.xbm deleted file mode 100644 index db69e42fc3..0000000000 --- a/utils/dialoged/src/bitmaps/panel.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define panel_width 28 -#define panel_height 28 -static char panel_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0xff, 0x1f, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, 0xc0, 0xff, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/picture.bmp b/utils/dialoged/src/bitmaps/picture.bmp deleted file mode 100644 index 60dde983ad2e8b4dcb76ac1b3269b75f7a16bcbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcma)%F%H5o3`Kt>q;zEB44i|VyLhTMl$#|t3;)}$fDJcxUcT+Pc|2bm!Vbne{Z_u= z68c_w9j@h(zSRIVXDWOsrT~OGM`;z$hMKQ6v3qu>Fn`a1EXH)KH+sxR!u~0eX(g@Do|H%l}Mge dzI4COX>HDH{_|h+QT>#^iXU0CppzCaeFLkpczOT; diff --git a/utils/dialoged/src/bitmaps/radio.xbm b/utils/dialoged/src/bitmaps/radio.xbm deleted file mode 100644 index 13c7c118b0..0000000000 --- a/utils/dialoged/src/bitmaps/radio.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define radio_width 28 -#define radio_height 28 -static char radio_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x00, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0x01, 0x04, 0x00, - 0x80, 0x00, 0x08, 0x00, 0x80, 0x70, 0x08, 0x00, 0x40, 0xf8, 0x10, 0x00, - 0x40, 0xfc, 0x11, 0x00, 0x40, 0xfc, 0x11, 0x00, 0x40, 0xfc, 0x11, 0x00, - 0x40, 0xf8, 0x10, 0x00, 0x80, 0x70, 0x08, 0x00, 0x80, 0x00, 0x08, 0x00, - 0x00, 0x01, 0x04, 0x00, 0x00, 0x06, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/radiobox.ico b/utils/dialoged/src/bitmaps/radiobox.ico deleted file mode 100644 index a09e1491f7256a2085e4339b1d3482569a76f09a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeHGF%AMD5FAdEqdIv4mAPm56rVuHmD_p0(5LVmOA`z2a2C$QT&~c{LI-ANcY%bE z0WfIby@TT109&eaweAhjt$?0APwq&AH6y{j%MgGQB2^ffBBeytg1#mULQ}tTP{p79_oxAT)?@_81YN0!H>$kU}Li+<|!uG1@ph@(p#aVhOkmw_*eg?RLnKJ9z=J;wXy WkHBpY*DVY+oYv29@45BYee*ja^Vfv{ diff --git a/utils/dialoged/src/bitmaps/radiobtn.xpm b/utils/dialoged/src/bitmaps/radiobtn.xpm deleted file mode 100644 index 30110a622c..0000000000 --- a/utils/dialoged/src/bitmaps/radiobtn.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char * radiobtn_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 4 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #ffffff", -/* pixels */ -" ", -" ", -" ", -" ", -" .... ", -" .@@@@+ ", -" .@@@@@@+ ", -" .@@@..@@@+ ", -" .@@....@@+ ", -" .@@@..@@@+ ", -" .@@@@@@+ ", -" .@@@@+ ", -" ++++ ", -" ", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/report.xbm b/utils/dialoged/src/bitmaps/report.xbm deleted file mode 100644 index 601853aecb..0000000000 --- a/utils/dialoged/src/bitmaps/report.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define report_width 24 -#define report_height 24 -static char report_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, - 0x10, 0x00, 0x02, 0x90, 0x77, 0x02, 0x90, 0x7d, 0x02, 0x10, 0x00, 0x02, - 0x10, 0x37, 0x02, 0x10, 0x00, 0x02, 0x10, 0x00, 0x02, 0xd0, 0x03, 0x02, - 0x10, 0x00, 0x02, 0xd0, 0xbc, 0x02, 0x10, 0x00, 0x02, 0xd0, 0xbb, 0x02, - 0x10, 0x00, 0x02, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/save.bmp b/utils/dialoged/src/bitmaps/save.bmp deleted file mode 100644 index 545671fa17b5663261c96e2845fb807df0bd9377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKlu?@p83fFkOK&AjlojM7)f##6|H&sLz0aQ}KG*?w_=1a8 zRQjeqNs}nGHVvg!?_KWBVq|HI=pZK|q%s357h1PxSLBJg*JZ^kAph&Un|rg8-^k)t F;0F1cIhX(d diff --git a/utils/dialoged/src/bitmaps/save.xbm b/utils/dialoged/src/bitmaps/save.xbm deleted file mode 100644 index 2f53311c36..0000000000 --- a/utils/dialoged/src/bitmaps/save.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define save_width 24 -#define save_height 24 -static char save_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xe0, 0xff, 0x07, 0xa0, 0x00, 0x05, 0xa0, 0x00, 0x07, 0xa0, 0x00, 0x05, - 0xa0, 0x00, 0x05, 0xa0, 0x00, 0x05, 0xa0, 0x00, 0x05, 0x20, 0xff, 0x04, - 0x20, 0x00, 0x04, 0x20, 0xff, 0x05, 0x20, 0x3f, 0x05, 0x20, 0x3f, 0x05, - 0x20, 0x3f, 0x05, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/save.xpm b/utils/dialoged/src/bitmaps/save.xpm deleted file mode 100644 index 01b18f9340..0000000000 --- a/utils/dialoged/src/bitmaps/save.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *save_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808000", -"o c #808080", -/* pixels */ -" ", -" .............. ", -" .X. . . ", -" .X. ... ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .XX........oX. ", -" .XXXXXXXXXXXX. ", -" .XX.........X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" ............. " -}; diff --git a/utils/dialoged/src/bitmaps/scrolbar.ico b/utils/dialoged/src/bitmaps/scrolbar.ico deleted file mode 100644 index 29bcbc0708d7c8dda70b2da8c845657236d66aba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`F%AMD5Jf+$g_Yq5RA!IiQ9QzSY&o4Ai{p3;e6wT=H``bk3;pot&oG1#@{xiD zr4;3O4AKRSvDage&If5^Ex{`cIuZeU_hAxKW?hJ+s!CbVo}-jA_BD0D~^aPi%JfB&S2&XUuh z7=sMgK|0_ewEgI${YDz;MRatX;RglM8CV%|&A0Pu? zh2`9mA7RgVrd~%Ts;}JYyL0IPPxuG_zGLXDoT<)_=K9o<@)^%ehqP2!n3L8Bgy^9!JDlx^hU3T7C&EOyX7n>L`dWhZJ5cuK1 gtcO$oSHtRfM}KLmeE)!@+ce_f4BN>1W!f&k0TQZYDF6Tf diff --git a/utils/dialoged/src/bitmaps/text.xbm b/utils/dialoged/src/bitmaps/text.xbm deleted file mode 100644 index b823e479c5..0000000000 --- a/utils/dialoged/src/bitmaps/text.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define text_width 28 -#define text_height 28 -static char text_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0xff, 0xff, 0x00, 0x10, 0x00, 0x80, 0x00, 0x10, 0x00, 0xa0, 0x00, - 0x10, 0x60, 0xa0, 0x00, 0x10, 0x60, 0xa0, 0x00, 0x10, 0x60, 0xa0, 0x00, - 0x90, 0xe7, 0xa3, 0x00, 0xd0, 0x6c, 0xa6, 0x00, 0x10, 0x6f, 0xa6, 0x00, - 0x90, 0x6d, 0xa6, 0x00, 0xd0, 0x6c, 0xa6, 0x00, 0xd0, 0x6c, 0xa6, 0x00, - 0x90, 0xef, 0xa3, 0x00, 0x10, 0x00, 0xa0, 0x00, 0x10, 0x00, 0x80, 0x00, - 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/textmult.ico b/utils/dialoged/src/bitmaps/textmult.ico deleted file mode 100644 index a03bf6505130befdbee7aef06e50bed40a64b93b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`I}*Y$3`EyJk&4L?TroKYM@pBJDmj*qL+KlsCx03y1sw%!EUhHVpJX;t&`B}Q zay(Dc4W8$gFG0GVrG;9=?pV+T59mFHNer1a!V@Z`1p7p(L#23x@p#GIA3yyC(7;#W zI(OwqZ0OvGk6~z>88lr9Pxz6}A04(;>{j1;?X0Qg+ip4MQsC0rsph`G>z(P#o@Z}l eJ#D#+{it(IFpYCtYK`jcJsf%J@%SI#c?~Z!xd>GN diff --git a/utils/dialoged/src/bitmaps/textmult.xpm b/utils/dialoged/src/bitmaps/textmult.xpm deleted file mode 100644 index ad9c5d7244..0000000000 --- a/utils/dialoged/src/bitmaps/textmult.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * textmult_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -"@@@@@@@@@@@@@@@@", -"@..............@", -"@.##########+++@", -"@.#.#####.##+.+@", -"@.#.###.#.##...@", -"@.#.#.#.#.##+++@", -"@.##########+++@", -"@.##########+++@", -"@.#.#.######+++@", -"@.###.#.####+++@", -"@.#.#.#.####+++@", -"@.##########+++@", -"@.##########...@", -"@.##########+.+@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@"}; diff --git a/utils/dialoged/src/bitmaps/textsing.ico b/utils/dialoged/src/bitmaps/textsing.ico deleted file mode 100644 index 74cfd83d87650900f6885b41af4f32bb99d987b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`Jrcqo5QQJn!b&*;m6Kz5D=D|ku{e&UH^6VfI68@yg@r!YeftBM4D(hB8kAC$ z<1$D`IL4ljLE3Mmky^q|SkM*^IJ*v$*fQ&cCsZi~_C{@6wR(iHyyWhWpMC)}@Kw0Z zUHJ){b#BD#Ff>jFO*g_5ex&p14m&qw>#vdR>f=$#53l^Fw}aXL1MKGS^mOU_y!p&6 Jd+#dGcWz%N>5u>b diff --git a/utils/dialoged/src/bitmaps/textsing.xpm b/utils/dialoged/src/bitmaps/textsing.xpm deleted file mode 100644 index 346ce3b0ae..0000000000 --- a/utils/dialoged/src/bitmaps/textsing.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * textsing_xpm[] = { -/* width height ncolors chars_per_pixel */ -"16 16 5 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #c0c0c0", -"@ c #808080", -"# c #ffffff", -/* pixels */ -" ", -" ", -" ", -"@@@@@@@@@@@@@@@@", -"@..............@", -"@.############+@", -"@.#...########+@", -"@.##.#########+@", -"@.##.#########+@", -"@.#...########+@", -"@.############+@", -"@.+++++++++++++@", -"@@@@@@@@@@@@@@@@", -" ", -" ", -" "}; diff --git a/utils/dialoged/src/bitmaps/textsw.xbm b/utils/dialoged/src/bitmaps/textsw.xbm deleted file mode 100644 index 686131701c..0000000000 --- a/utils/dialoged/src/bitmaps/textsw.xbm +++ /dev/null @@ -1,13 +0,0 @@ -#define textsw_width 28 -#define textsw_height 28 -static char textsw_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xc0, 0xff, 0x1f, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0x9f, 0x11, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0x7f, 0x13, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0xeb, 0x13, 0x00, 0x40, 0x00, 0x10, 0x00, 0x40, 0x00, 0x10, 0x00, - 0x40, 0xdf, 0x11, 0x00, 0x40, 0x00, 0x10, 0x00, 0xc0, 0xff, 0x1f, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/tick.bmp b/utils/dialoged/src/bitmaps/tick.bmp deleted file mode 100644 index 3673eda5de62c1fc3db392cba62bc2e74ad51d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 198 zcmZvT!3}^g3_|a<9syhMs~1$ShPC0%zsoR vTD4Ar8P!@-DTScB)%%zLZ&*;|h`JQ3^NiE0|T7F9qjzl2^cf>9QF?FMZ8d)1PO#h65C0vwDWSpW2H>QNDM@S zmJIC1PUJQ30?Ld;pCXxv6~fs8i2~vH|E+&J(|oGdii}_YJ!sUz z((YWzGDEE-(MqWb%&45RLI?!KTcy|pcxFM{N3r657vo{E>4N2o^{e;ZbNANgU-K?u CAW)M4 diff --git a/utils/dialoged/src/bitmaps/vert.xbm b/utils/dialoged/src/bitmaps/vert.xbm deleted file mode 100644 index e8ac230c3b..0000000000 --- a/utils/dialoged/src/bitmaps/vert.xbm +++ /dev/null @@ -1,9 +0,0 @@ -#define vert_width 24 -#define vert_height 24 -static char vert_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xf8, 0x07, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0xf0, 0x09, 0x04, - 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, 0x10, 0x09, 0x04, - 0xf0, 0x09, 0x04, 0x00, 0x08, 0x04, 0x00, 0x08, 0x04, 0x00, 0xf8, 0x07, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/vert.xpm b/utils/dialoged/src/bitmaps/vert.xpm deleted file mode 100644 index 0f85e23920..0000000000 --- a/utils/dialoged/src/bitmaps/vert.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *vert_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ........", -" .XXXXXX.", -" .XXXXXX.", -" ..... .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" ..... .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" ........", -" ", -" " -}; diff --git a/utils/dialoged/src/bitmaps/wxbuild.xbm b/utils/dialoged/src/bitmaps/wxbuild.xbm deleted file mode 100644 index 8038c9110f..0000000000 --- a/utils/dialoged/src/bitmaps/wxbuild.xbm +++ /dev/null @@ -1,46 +0,0 @@ -#define wxbuild_width 64 -#define wxbuild_height 64 -static char wxbuild_bits[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x33, 0x0c, 0xf0, 0xff, 0xff, 0xff, 0x3f, - 0x03, 0x33, 0x0c, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x33, 0xc3, 0x03, 0x30, - 0x00, 0x00, 0x00, 0x30, 0x33, 0xc3, 0x03, 0x30, 0x00, 0x00, 0x00, 0x30, - 0x33, 0xc3, 0x03, 0x30, 0x3f, 0xcf, 0xcc, 0x33, 0x33, 0xc3, 0x03, 0x30, - 0x3f, 0xcf, 0xcc, 0x33, 0xcc, 0x30, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x30, - 0xcc, 0x30, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, - 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, - 0x00, 0xc0, 0xff, 0xff, 0xff, 0xf3, 0x33, 0x33, 0x00, 0xc0, 0xff, 0xff, - 0xff, 0xf3, 0x33, 0x33, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x30, - 0x00, 0xc0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x30, 0x00, 0xc0, 0x00, 0x00, - 0x00, 0x03, 0x00, 0x30, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x03, 0x00, 0x30, - 0x00, 0xc0, 0xfc, 0xf3, 0x0f, 0x33, 0xfc, 0x30, 0x00, 0xc0, 0xfc, 0xf3, - 0x0f, 0x33, 0xfc, 0x30, 0x00, 0xc0, 0x0c, 0x33, 0x0c, 0xf3, 0x00, 0x30, - 0x00, 0xc0, 0x0c, 0x33, 0x0c, 0xf3, 0x00, 0x30, 0x00, 0xc0, 0xfc, 0xf3, - 0x0f, 0xf3, 0x03, 0x30, 0x00, 0xc0, 0xfc, 0xf3, 0x0f, 0xf3, 0x03, 0x30, - 0x00, 0xc0, 0x00, 0x00, 0x00, 0xf3, 0x0f, 0x30, 0x00, 0xc0, 0x00, 0x00, - 0x00, 0xf3, 0x0f, 0x30, 0x00, 0xc0, 0x00, 0x00, 0x00, 0xf3, 0x3f, 0x30, - 0x00, 0xc0, 0x00, 0x00, 0x00, 0xf3, 0x3f, 0x30, 0xff, 0xff, 0x00, 0x00, - 0x00, 0xf3, 0xff, 0x30, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf3, 0xff, 0x30, - 0xff, 0xff, 0x00, 0x00, 0x00, 0xf3, 0xff, 0x33, 0xff, 0xff, 0x00, 0x00, - 0x00, 0xf3, 0xff, 0x33, 0x03, 0xc3, 0x00, 0x00, 0x00, 0xf3, 0xff, 0x3f, - 0x03, 0xc3, 0x00, 0x00, 0x00, 0xf3, 0xff, 0x3f, 0x03, 0xc3, 0x00, 0x00, - 0x00, 0xf3, 0x3f, 0x30, 0x03, 0xc3, 0x00, 0x00, 0x00, 0xf3, 0x3f, 0x30, - 0xff, 0xff, 0x00, 0x00, 0x00, 0xf3, 0x3c, 0x30, 0xff, 0xff, 0x00, 0x00, - 0x00, 0xf3, 0x3c, 0x30, 0x03, 0xc0, 0xff, 0xff, 0xff, 0x33, 0xf0, 0x30, - 0x03, 0xc0, 0xff, 0xff, 0xff, 0x33, 0xf0, 0x30, 0x03, 0x00, 0x00, 0x33, - 0x00, 0x00, 0xf0, 0x30, 0x03, 0x00, 0x00, 0x33, 0x00, 0x00, 0xf0, 0x30, - 0x03, 0x00, 0x00, 0xf3, 0xfc, 0x00, 0xc0, 0x33, 0x03, 0x00, 0x00, 0xf3, - 0xfc, 0x00, 0xc0, 0x33, 0x03, 0xc0, 0x0c, 0x33, 0x00, 0x00, 0xc0, 0x33, - 0x03, 0xc0, 0x0c, 0x33, 0x00, 0x00, 0xc0, 0x33, 0xf3, 0xf3, 0x3f, 0x33, - 0xfc, 0xcc, 0x0f, 0x30, 0xf3, 0xf3, 0x3f, 0x33, 0xfc, 0xcc, 0x0f, 0x30, - 0x33, 0xc0, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x30, 0x33, 0xc0, 0x0c, 0x33, - 0x00, 0x00, 0x00, 0x30, 0x33, 0x00, 0x00, 0xf3, 0xff, 0xff, 0xff, 0x3f, - 0x33, 0x00, 0x00, 0xf3, 0xff, 0xff, 0xff, 0x3f, 0x33, 0x00, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x33, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0xf3, 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x03, 0x00, 0x03, - 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, - 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/utils/dialoged/src/bitmaps/wxwin.bmp b/utils/dialoged/src/bitmaps/wxwin.bmp deleted file mode 100644 index 6817374f3d8e310d78339deaa35b6c79e7fd8443..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 630 zcmaKpF>b>!3`NvQ?mL9S-sevHF?)y-#}OB>P65EnExfkK~NxH zrocyvlw|$&I zI!a}xosQs{>rsvTIP%4E{e^pu8a}Ts_ixdX{R`*n b#-P7kC*;{23j)rHmrh2|(K)_3wcqasJF!19 diff --git a/utils/dialoged/src/bitmaps/wxwin.xbm b/utils/dialoged/src/bitmaps/wxwin.xbm deleted file mode 100644 index a0da1d2eea..0000000000 --- a/utils/dialoged/src/bitmaps/wxwin.xbm +++ /dev/null @@ -1,12 +0,0 @@ -#define wxwin_width 32 -#define wxwin_height 32 -static char wxwin_bits[] = { - 0x00,0x80,0x01,0x00,0x81,0x8f,0x1d,0xc0,0xc5,0x9a,0x25,0xa0,0x54,0x92,0x49, - 0x50,0x51,0x92,0x91,0x28,0xc5,0x9f,0x21,0x15,0xd4,0x9a,0x41,0x0a,0xd1,0x92, - 0x81,0x04,0x45,0x92,0x41,0x09,0x54,0x93,0xa1,0x12,0x51,0x9f,0x51,0x24,0xc5, - 0x99,0x29,0x48,0x54,0x80,0x15,0x90,0x10,0x80,0x0d,0xe0,0x00,0x80,0x01,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x80,0x01,0x00,0x00,0x83,0x01, - 0x00,0x80,0x81,0x01,0x08,0x80,0x80,0x01,0x18,0x38,0x87,0x31,0x30,0xfc,0x8f, - 0x31,0x20,0xfc,0x83,0x01,0x20,0xfc,0x83,0x81,0x23,0xfc,0x83,0x01,0x20,0xfc, - 0x8f,0x01,0x20,0xfc,0x8f,0x31,0x30,0xf8,0x8f,0x31,0x18,0x70,0x87,0x01,0x08, - 0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00}; diff --git a/utils/dialoged/src/bitmaps/wxwin.xpm b/utils/dialoged/src/bitmaps/wxwin.xpm deleted file mode 100644 index f3f11c2a9a..0000000000 --- a/utils/dialoged/src/bitmaps/wxwin.xpm +++ /dev/null @@ -1,46 +0,0 @@ -/* XPM */ -static char *wxwin_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 8 1", -" c Gray100", -". c Black", -"X c Green", -"o c Blue", -"O c Red", -"+ c #c0c0c0", -"@ c Yellow", -"# c Cyan", -/* pixels */ -" ..XXXXXXXXXXXXXXX", -"o ..... ..X...XXXXXXXXX..", -"o o ..O.X.. ..X.++.XXXXXXX.+.", -" o o .OO.XX. ..XX.++.XXXXX.+.X", -"O o .OO.XX. ..XXX.++.XXX.+.XX", -"O O ....... ..XXXX.++.X.+.XXX", -" O O ..o.@.. ..XXXXX.++.+.XXXX", -"o O ..o.@@. ..XXXXXX.++.XXXXX", -"o o .oo.@@. ..XXXXX.+.++.XXXX", -" o o .o..@@. ..XXXX.+.X.++.XXX", -". o .o..... ..XXX.+.XXX.++.XX", -". . ... .. ..XX.+.XXXXX.++.X", -" . . . ..X.+.XXXXXXX.++.", -" . ..X..XXXXXXXXX...", -" ..XXXXXXXXXXXXXXX", -"................................", -"................................", -"###############..@@@@@@@@@@@@@@@", -"########OO#####..@@@@@@@@@@@@@@@", -"#######OO######..@@@@@@@@@@.@@@@", -"#######O#######..@@@@@@@@@@..@@@", -"###OOO##OOO####..@@@..@@@@@@..@@", -"##OOOOOOOOOO###..@@@..@@@@@@@.@@", -"##OOOOOOOO#####..@@@@@@@@@@@@.@@", -"##OOOOOOOO#####..@@@@@@...@@@.@@", -"##OOOOOOOO#####..@@@@@@@@@@@@.@@", -"##OOOOOOOOOO###..@@@@@@@@@@@@.@@", -"##OOOOOOOOOO###..@@@..@@@@@@..@@", -"###OOOOOOOOO###..@@@..@@@@@..@@@", -"####OOO#OOO####..@@@@@@@@@@.@@@@", -"###############..@@@@@@@@@@@@@@@", -"###############..@@@@@@@@@@@@@@@" -}; diff --git a/utils/dialoged/src/dialoged.cpp b/utils/dialoged/src/dialoged.cpp deleted file mode 100644 index 2102995171..0000000000 --- a/utils/dialoged/src/dialoged.cpp +++ /dev/null @@ -1,58 +0,0 @@ -// Name: dialoged.cpp -// Purpose: Main Dialog Editor implementation file -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dialoged.h" -#endif - -// 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 "dialoged.h" - -IMPLEMENT_APP(MyApp) - -MyApp::MyApp(void) -{ -} - -wxResourceManager *theResourceManager = NULL; - -#include "symbtabl.h" - -bool MyApp::OnInit(void) -{ - theResourceManager = new wxResourceManager; - theResourceManager->Initialize(); - - theResourceManager->ShowResourceEditor(TRUE); - - if (argc > 1) - theResourceManager->Load(argv[1]); - - SetTopWindow(theResourceManager->GetEditorFrame()); - - return TRUE; -} - -int MyApp::OnExit(void) -{ - delete theResourceManager; - theResourceManager = NULL; - return 0; -} diff --git a/utils/dialoged/src/dialoged.def b/utils/dialoged/src/dialoged.def deleted file mode 100644 index a7c0fbbaa5..0000000000 --- a/utils/dialoged/src/dialoged.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME DialogEd -DESCRIPTION 'wxWindows Dialog Editor' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/utils/dialoged/src/dialoged.h b/utils/dialoged/src/dialoged.h deleted file mode 100644 index adfcb9ace9..0000000000 --- a/utils/dialoged/src/dialoged.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialoged.h -// Purpose: Dialog Editor application header file -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "dialoged.h" -#endif - -#ifndef dialogedh -#define dialogedh - -#include "wx/proplist.h" -#include "reseditr.h" - -class MyChild; - -// Define a new application -class MyApp: public wxApp -{ - public: - MyApp(void); - bool OnInit(void); - int OnExit(void); -}; - -DECLARE_APP(MyApp) - -extern wxFrame *GetMainFrame(void); - -#endif diff --git a/utils/dialoged/src/dialoged.ico b/utils/dialoged/src/dialoged.ico deleted file mode 100644 index cec6bac64ecd29c4736882dc3976810ac1d87ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmcgpF%H5o47>tEH(+7T$S>eYWeOYF=r8z6p2N z1GQt9>PwC(lKGc9t$0B6(+ad_Yi;MUf8wKD=*76b_SZc2QwsiZ-sD&F*q`*;ui}Sw k5xn(JoWGT$3m -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) -#include -#else -#include -#endif -#else -#include -#endif - -#include "reseditr.h" -#include "winprop.h" -#include "dlghndlr.h" -#include "edlist.h" - -IMPLEMENT_CLASS(wxResourceEditorDialogHandler, wxEvtHandler) -IMPLEMENT_CLASS(wxResourceEditorControlHandler, wxEvtHandler) - -BEGIN_EVENT_TABLE(wxResourceEditorDialogHandler, wxEvtHandler) - EVT_PAINT(wxResourceEditorDialogHandler::OnPaint) - EVT_MOUSE_EVENTS(wxResourceEditorDialogHandler::OnMouseEvent) - EVT_SIZE(wxResourceEditorDialogHandler::OnSize) -END_EVENT_TABLE() - -BEGIN_EVENT_TABLE(wxResourceEditorControlHandler, wxEvtHandler) - EVT_MOUSE_EVENTS(wxResourceEditorControlHandler::OnMouseEvent) -END_EVENT_TABLE() - -/* - * Dialog box event handler - */ - -wxResourceEditorDialogHandler::wxResourceEditorDialogHandler(wxPanel *dialog, wxItemResource *resource, - wxEvtHandler *oldHandler, wxResourceManager *manager) -{ - handlerDialog = dialog; - handlerResource = resource; - handlerOldHandler = oldHandler; - resourceManager = manager; - - dragMode = wxDRAG_MODE_NONE; - dragType = wxDRAG_TYPE_NONE; - dragItem = NULL; - firstDragX = 0; - firstDragY = 0; - oldDragX = 0; - oldDragY = 0; - dragTolerance = 3; - checkTolerance = TRUE; - m_mouseCaptured = FALSE; -// m_treeItem = 0; -} - -wxResourceEditorDialogHandler::~wxResourceEditorDialogHandler(void) -{ -} - -void wxResourceEditorDialogHandler::OnItemSelect(wxControl *item, bool select) -{ - if (select) - resourceManager->AddSelection(item); - else - resourceManager->RemoveSelection(item); -} - -void wxResourceEditorDialogHandler::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(handlerDialog); - - PaintSelectionHandles(dc); -} - -// Add event handlers for all children -void wxResourceEditorDialogHandler::AddChildHandlers(void) -{ - wxNode *node = handlerDialog->GetChildren().First(); - while ( node ) - { - wxControl *child = (wxControl *)node->Data(); - wxEvtHandler *childHandler = child->GetEventHandler(); - if ( child->IsKindOf(CLASSINFO(wxControl)) && childHandler == child ) - child->PushEventHandler(new wxResourceEditorControlHandler(child, childHandler)); - node = node->Next(); - } -} - -void wxResourceEditorDialogHandler::OnLeftClick(int x, int y, int keys) -{ - if (keys & wxKEY_CTRL) - { - wxResourceManager::GetCurrentResourceManager()->EditWindow(handlerDialog); - return; - } - - // Deselect all items if click on panel - if (wxResourceManager::GetCurrentResourceManager()->GetEditorControlList()->GetSelection() == RESED_POINTER) - { - int needsRefresh = 0; - wxNode *node = handlerDialog->GetChildren().First(); - while (node) - { - wxControl *item = (wxControl *)node->Data(); - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - if (item->IsKindOf(CLASSINFO(wxControl)) && childHandler->IsSelected()) - { - needsRefresh ++; - OnItemSelect(item, FALSE); - childHandler->SelectItem(FALSE); - } - node = node->Next(); - } - if (needsRefresh > 0) - { - wxClientDC dc(handlerDialog); - dc.Clear(); - handlerDialog->Refresh(); - } - return; - } - - // Round down to take account of dialog units - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(handlerDialog); - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = handlerDialog->ConvertPixelsToDialog(wxPoint(x, y)); - - // Convert back so we've rounded down - pt = handlerDialog->ConvertDialogToPixels(pt); - pt = handlerDialog->ConvertPixelsToDialog(pt); - pt = handlerDialog->ConvertDialogToPixels(pt); - x = pt.x; - y = pt.y; - } - - switch (wxResourceManager::GetCurrentResourceManager()->GetEditorControlList()->GetSelection()) - { - case RESED_BUTTON: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxButton", x, y); - break; - case RESED_BMPBUTTON: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxBitmapButton", x, y, TRUE); - break; - case RESED_STATICTEXT: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxStaticText", x, y); - break; - case RESED_STATICBMP: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxStaticBitmap", x, y, TRUE); - break; - case RESED_TEXTCTRL_SINGLE: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxTextCtrl (single-line)", x, y); - break; - case RESED_TEXTCTRL_MULTIPLE: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxTextCtrl (multi-line)", x, y); - break; - case RESED_CHOICE: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxChoice", x, y); - break; - case RESED_COMBOBOX: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxComboBox", x, y); - break; - case RESED_CHECKBOX: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxCheckBox", x, y); - break; - case RESED_RADIOBOX: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioBox", x, y); - break; - case RESED_RADIOBUTTON: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxRadioButton", x, y); - break; - case RESED_LISTBOX: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxListBox", x, y); - break; - case RESED_SLIDER: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxSlider", x, y); - break; - case RESED_GAUGE: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxGauge", x, y); - break; - case RESED_STATICBOX: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxStaticBox", x, y); - break; - case RESED_SCROLLBAR: - resourceManager->CreatePanelItem(handlerResource, handlerDialog, "wxScrollBar", x, y); - break; - default: - break; - } - - // Now switch pointer on. - if (wxResourceManager::GetCurrentResourceManager()->GetEditorControlList()->GetSelection() != RESED_POINTER) - { - wxResourceManager::GetCurrentResourceManager()->GetEditorControlList()->SetItemState(RESED_POINTER, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED); - } -} - -void wxResourceEditorDialogHandler::OnRightClick(int x, int y, int WXUNUSED(keys)) -{ - wxMenu *menu = resourceManager->GetPopupMenu(); - menu->SetClientData((char *)handlerDialog); - handlerDialog->PopupMenu(menu, x, y); -} - -void wxResourceEditorDialogHandler::OnItemLeftClick(wxControl *item, int WXUNUSED(x), int WXUNUSED(y), int keys) -{ - if (keys & wxKEY_CTRL) - { - wxResourceManager::GetCurrentResourceManager()->EditWindow(item); - return; - } - -/* - // If this is a wxStaticBox and the pointer isn't an arrow, chances - // are that we really meant to place an item on the panel. - // Fake this event. - if ((item->GetClassInfo() == CLASSINFO(wxStaticBox)) && resourceManager->GetEditorPalette()->currentlySelected != PALETTE_ARROW) - { - OnLeftClick(x, y, keys); - return; - } -*/ - - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - - if (childHandler->IsSelected()) - { - childHandler->SelectItem(FALSE); - OnItemSelect(item, FALSE); - - wxClientDC dc(handlerDialog); - dc.Clear(); - handlerDialog->Refresh(); - } - else - { - childHandler->SelectItem(TRUE); - OnItemSelect(item, TRUE); - - // Deselect other items if shift is not pressed - int needsRefresh = 0; - if (!(keys & wxKEY_SHIFT)) - { - wxNode *node = item->GetParent()->GetChildren().First(); - while (node) - { - wxControl *child = (wxControl *)node->Data(); - wxResourceEditorControlHandler *childHandler2 = (wxResourceEditorControlHandler *)child->GetEventHandler(); - if (child->IsKindOf(CLASSINFO(wxControl)) && childHandler2->IsSelected() && child != item) - { - childHandler2->SelectItem(FALSE); - OnItemSelect(child, FALSE); - needsRefresh ++; - } - node = node->Next(); - } - } - - wxClientDC dc(handlerDialog); - childHandler->DrawSelectionHandles(dc); - - if (needsRefresh > 0) - { - dc.Clear(); - handlerDialog->Refresh(); - } - } -} - -void wxResourceEditorDialogHandler::OnItemRightClick(wxControl *item, int x, int y, int WXUNUSED(keys)) -{ -/* - if (keys & wxKEY_CTRL) - { - wxDebugMsg("Item %s, selected = %d\n", item->GetName(), item->IsSelected()); - return; - } -*/ - - wxMenu *menu = resourceManager->GetPopupMenu(); - menu->SetClientData((char *)item); - handlerDialog->PopupMenu(menu, x, y); -} - -// Under Windows 95, you can resize a panel interactively depending on -// window styles. -void wxResourceEditorDialogHandler::OnSize(wxSizeEvent& event) -{ - // Update the associated resource - int w, h; - handlerDialog->GetClientSize(& w, & h); - - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(handlerDialog); - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxSize sz = handlerDialog->ConvertPixelsToDialog(wxSize(w, h)); - w = sz.x; h = sz.y; - } - resource->SetSize(resource->GetX(), resource->GetY(), w, h); -} - -// An event outside any items: may be a drag event. -void wxResourceEditorDialogHandler::OnMouseEvent(wxMouseEvent& event) -{ - if (GetEvtHandlerEnabled()) - { - // If we're dragging an item or selection handle, - // continue dragging. - if (dragMode != wxDRAG_MODE_NONE) - { - ProcessItemEvent(dragItem, event, dragType); - return; - } - - long x, y; - event.Position(&x, &y); - - // Find which selection handle we're on, if any - wxNode *node = handlerDialog->GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win->IsKindOf(CLASSINFO(wxControl))) - { - wxControl *item = (wxControl *)win; - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - int selHandle = childHandler->SelectionHandleHitTest(x, y); - if (selHandle > 0) - { - ProcessItemEvent(item, event, selHandle); - return; - } - } - node = node->Next(); - } - - // We're not on an item or selection handle. - // so... check for a left or right click event - // to send to the application. - int keys = 0; - if (event.ShiftDown()) keys = keys | wxKEY_SHIFT; - if (event.ControlDown()) keys = keys | wxKEY_CTRL; - - if (event.LeftUp()) - { - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - - OnLeftClick(x, y, keys); - } - else if (event.RightDown()) - { - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - - OnRightClick(x, y, keys); - } - else if (event.LeftDClick()) - { - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - wxResourceManager::GetCurrentResourceManager()->EditWindow(handlerDialog); - } - } - else - event.Skip(); -} - -void wxResourceEditorDialogHandler::OnItemEvent(wxControl *item, wxMouseEvent& event) -{ - if (!GetEvtHandlerEnabled()) - return; - - // Not a selection handle event: just a normal item event. - // Transform to panel coordinates. - int x, y; - item->GetPosition(&x, &y); - - event.m_x = event.m_x + x; - event.m_y = event.m_y + y; - - ProcessItemEvent(item, event, dragType); -} - -void wxResourceEditorDialogHandler::ProcessItemEvent(wxControl *item, wxMouseEvent& event, int selectionHandle) -{ - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - - long x, y; - event.Position(&x, &y); - int keys = 0; - if (event.ShiftDown()) keys = keys | wxKEY_SHIFT; - if (event.ControlDown()) keys = keys | wxKEY_CTRL; - bool dragging = event.Dragging(); - if (dragging) - { - int dx = (int)abs((x - firstDragX)); - int dy = (int)abs((y - firstDragY)); - if (checkTolerance && (dx <= dragTolerance) && (dy <= dragTolerance)) - { - return; - } - else - // If we've ignored the tolerance once, then ALWAYS ignore - // tolerance in this drag, even if we come back within - // the tolerance range. - { - checkTolerance = FALSE; - } - } - if (event.LeftDClick()) - { - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - - wxResourceManager::GetCurrentResourceManager()->EditWindow(item); - } - else if (dragging && dragItem && dragMode == wxDRAG_MODE_START_LEFT) - { - dragMode = wxDRAG_MODE_CONTINUE_LEFT; - wxClientDC dc(handlerDialog); - childHandler->OnDragBegin(x, y, keys, dc, selectionHandle); - oldDragX = x; oldDragY = y; - if (!m_mouseCaptured) - { - handlerDialog->CaptureMouse(); - m_mouseCaptured = TRUE; - } - } - else if (dragging && dragItem && dragMode == wxDRAG_MODE_CONTINUE_LEFT) - { - wxClientDC dc(handlerDialog); - childHandler->OnDragContinue(FALSE, oldDragX, oldDragY, keys, dc, selectionHandle); - childHandler->OnDragContinue(TRUE, x, y, keys, dc, selectionHandle); - oldDragX = x; oldDragY = y; - } - else if (event.LeftUp() && dragItem && dragMode == wxDRAG_MODE_CONTINUE_LEFT) - { - wxClientDC dc(handlerDialog); - dragMode = wxDRAG_MODE_NONE; - checkTolerance = TRUE; - - childHandler->OnDragContinue(FALSE, oldDragX, oldDragY, keys, dc, selectionHandle); - childHandler->OnDragEnd(x, y, keys, dc, selectionHandle); - - dragItem = NULL; - dragType = wxDRAG_TYPE_NONE; - - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - } - else if (dragging && dragItem && dragMode == wxDRAG_MODE_START_RIGHT) - { - wxClientDC dc(handlerDialog); - dragMode = wxDRAG_MODE_CONTINUE_RIGHT; - childHandler->OnDragBegin(x, y, keys, dc, selectionHandle); - oldDragX = x; oldDragY = y; - - if (!m_mouseCaptured) - { - handlerDialog->CaptureMouse(); - m_mouseCaptured = TRUE; - } - } - else if (dragging && dragItem && dragMode == wxDRAG_MODE_CONTINUE_RIGHT) - { - oldDragX = x; oldDragY = y; - } - // Obsolete; no longer try to right-drag - else if (event.RightUp() && dragItem && dragMode == wxDRAG_MODE_CONTINUE_RIGHT) - { - dragMode = wxDRAG_MODE_NONE; - checkTolerance = TRUE; - dragItem = NULL; - dragType = wxDRAG_TYPE_NONE; - - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - } - else if (event.IsButton()) - { - checkTolerance = TRUE; - - if (event.LeftDown()) - { - dragItem = item; - dragMode = wxDRAG_MODE_START_LEFT; - firstDragX = x; - firstDragY = y; - dragType = selectionHandle; - - if (!m_mouseCaptured) - { - handlerDialog->CaptureMouse(); - m_mouseCaptured = TRUE; - } - } - else if (event.RightDown()) - { - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - - if (item) - childHandler->OnRightClick(x, y, keys); - else - OnRightClick(x, y, keys); - - dragItem = NULL; dragMode = wxDRAG_MODE_NONE; dragType = wxDRAG_TYPE_NONE; - - /* - dragItem = item; - dragMode = wxDRAG_MODE_START_RIGHT; - firstDragX = x; - firstDragY = y; - dragType = selectionHandle; - - if (!m_mouseCaptured) - { - handlerDialog->CaptureMouse(); - m_mouseCaptured = TRUE; - } - */ - } - else if (event.LeftUp()) - { - if (dragItem) - childHandler->OnLeftClick(x, y, keys); - else - OnLeftClick(x, y, keys); - - dragItem = NULL; dragMode = wxDRAG_MODE_NONE; dragType = wxDRAG_TYPE_NONE; - - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - } - else if (event.RightUp()) - { - /* - if (dragItem) - childHandler->OnRightClick(x, y, keys); - else - OnRightClick(x, y, keys); - - dragItem = NULL; dragMode = wxDRAG_MODE_NONE; dragType = wxDRAG_TYPE_NONE; - - if (m_mouseCaptured) - { - handlerDialog->ReleaseMouse(); - m_mouseCaptured = FALSE; - } - */ - } - } -} - -// Calls DrawSelectionHandles for all items if -// edit mode is on. -void wxResourceEditorDialogHandler::PaintSelectionHandles(wxDC& dc) -{ - if (!GetEvtHandlerEnabled()) - return; - - dc.BeginDrawing(); - - wxNode *node = handlerDialog->GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win->IsKindOf(CLASSINFO(wxControl))) - { - wxControl *item = (wxControl *)win; - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - - // Don't draw handles for an item that's being moved: it'll - // smear. - if (childHandler->IsSelected() && (item != dragItem)) - childHandler->DrawSelectionHandles(dc); - } - node = node->Next(); - } - dc.EndDrawing(); -} - -/* - * Event handler for controls - */ - -int wxResourceEditorControlHandler::dragOffsetX = 0; -int wxResourceEditorControlHandler::dragOffsetY = 0; - -wxResourceEditorControlHandler::wxResourceEditorControlHandler(wxControl *control, - wxEvtHandler *oldHandler) -{ - handlerControl = control; - handlerOldHandler = oldHandler; - - handleSize = 6; - handleMargin = 1; - isSelected = FALSE; - dragOffsetX = 0; - dragOffsetY = 0; -// m_treeItem = 0; -} - -wxResourceEditorControlHandler::~wxResourceEditorControlHandler(void) -{ -} - -/* - * Manipulation and drawing of items in Edit Mode - */ - -void wxResourceEditorControlHandler::SelectItem(bool select) -{ - isSelected = select; -} - -// Returns TRUE or FALSE -bool wxResourceEditorControlHandler::HitTest(int x, int y) -{ - int xpos, ypos, width, height; - handlerControl->GetPosition(&xpos, &ypos); - handlerControl->GetSize(&width, &height); - - return ((x >= xpos) && (x <= (xpos + width)) && (y >= ypos) && (y <= (ypos + height))); -} - -// Calculate position of the 8 handles -void wxResourceEditorControlHandler::CalcSelectionHandles(int *hx, int *hy) -{ - int xpos, ypos, width, height; - handlerControl->GetPosition(&xpos, &ypos); - handlerControl->GetSize(&width, &height); - int middleX = (xpos + (width/2)); - int middleY = (ypos + (height/2)); - - // Start from top middle, clockwise. -/* - 7 0 1 - - 6 2 - - 5 4 3 -*/ - - hx[0] = (int)(middleX - (handleSize/2)); - hy[0] = ypos - handleSize - handleMargin; - - hx[1] = xpos + width + handleMargin; - hy[1] = ypos - handleSize - handleMargin; - - hx[2] = xpos + width + handleMargin; - hy[2] = (int)(middleY - (handleSize/2)); - - hx[3] = xpos + width + handleMargin; - hy[3] = ypos + height + handleMargin; - - hx[4] = (int)(middleX - (handleSize/2)); - hy[4] = ypos + height + handleMargin; - - hx[5] = xpos - handleSize - handleMargin; - hy[5] = ypos + height + handleMargin; - - hx[6] = xpos - handleSize - handleMargin; - hy[6] = (int)(middleY - (handleSize/2)); - - hx[7] = xpos - handleSize - handleMargin; - hy[7] = ypos - handleSize - handleMargin; -} - -// Returns 0 (no hit), 1 - 8 for which selection handle -// (clockwise from top middle) -int wxResourceEditorControlHandler::SelectionHandleHitTest(int x, int y) -{ - // Handle positions - int hx[8]; - int hy[8]; - CalcSelectionHandles(hx, hy); - - int i; - for (i = 0; i < 8; i++) - { - if ((x >= hx[i]) && (x <= (hx[i] + handleSize)) && (y >= hy[i]) && (y <= (hy[i] + handleSize))) - return (i + 1); - } - return 0; -} - -void wxResourceEditorControlHandler::DrawSelectionHandles(wxDC& dc, bool WXUNUSED(erase)) -{ - dc.SetOptimization(FALSE); - - dc.SetLogicalFunction(wxCOPY); - dc.SetPen(* wxBLACK_PEN); - dc.SetBrush(* wxBLACK_BRUSH); - - dc.SetOptimization(TRUE); - - // Handle positions - int hx[8]; - int hy[8]; - CalcSelectionHandles(hx, hy); - - int i; - for (i = 0; i < 8; i++) - { - dc.DrawRectangle(hx[i], hy[i], handleSize, handleSize); - } -} - -void wxResourceEditorControlHandler::DrawBoundingBox(wxDC& dc, int x, int y, int w, int h) -{ - dc.DrawRectangle(x, y, w, h); -} - -// If selectionHandle is zero, not dragging the selection handle. -void wxResourceEditorControlHandler::OnDragBegin(int x, int y, int WXUNUSED(keys), wxDC& dc, int selectionHandle) -{ - int xpos, ypos, width, height; - handlerControl->GetPosition(&xpos, &ypos); - handlerControl->GetSize(&width, &height); - - dc.BeginDrawing(); - -// dc.DestroyClippingRegion(); - - wxPanel *panel = (wxPanel *)handlerControl->GetParent(); - - // Erase selection handles -// DrawSelectionHandles(dc, TRUE); - - dc.SetOptimization(FALSE); - - dc.SetLogicalFunction(wxINVERT); - - wxPen pen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(pen); - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - dc.SetOptimization(TRUE); - - if (selectionHandle > 0) - { - panel->Refresh(); - - DrawBoundingBox(dc, xpos, ypos, width, height); - } - else - { - panel->Refresh(); - - dragOffsetX = (x - xpos); - dragOffsetY = (y - ypos); - - DrawBoundingBox(dc, xpos, ypos, width, height); - - // Also draw bounding boxes for other selected items - wxNode *node = panel->GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win->IsKindOf(CLASSINFO(wxControl))) - { - wxControl *item = (wxControl *)win; - wxResourceEditorControlHandler *handler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - if ((item != handlerControl) && handler->IsSelected()) - { - int x1, y1, w1, h1; - item->GetPosition(&x1, &y1); - item->GetSize(&w1, &h1); - handler->DrawBoundingBox(dc, x1, y1, w1, h1); - } - } - node = node->Next(); - } - } - dc.EndDrawing(); -} - -void wxResourceEditorControlHandler::OnDragContinue(bool WXUNUSED(paintIt), int x, int y, int WXUNUSED(keys), wxDC& dc, int selectionHandle) -{ - wxPanel *panel = (wxPanel *)handlerControl->GetParent(); - int xpos, ypos, width, height; - handlerControl->GetPosition(&xpos, &ypos); - handlerControl->GetSize(&width, &height); - - if (selectionHandle > 0) - { -/* - 8 1 2 - - 7 3 - - 6 5 4 -*/ - - int x1, y1, width1, height1; - - switch (selectionHandle) - { - case 1: - x1 = xpos; - y1 = y; - width1 = width; - height1 = (ypos + height) - y; - break; - case 5: - x1 = xpos; - y1 = ypos; - width1 = width; - height1 = (y - ypos); - break; - case 3: - x1 = xpos; - y1 = ypos; - width1 = (x - xpos); - height1 = height; - break; - case 7: - x1 = x; - y1 = ypos; - width1 = (xpos + width) - x; - height1 = height; - break; - case 2: - x1 = xpos; - y1 = y; - width1 = (x - xpos); - height1 = (ypos + height) - y; - break; - case 4: - x1 = xpos; - y1 = ypos; - width1 = (x - xpos); - height1 = (y - ypos); - break; - case 6: - x1 = x; - y1 = ypos; - width1 = (xpos + width) - x; - height1 = y - ypos; - break; - case 8: - x1 = x; - y1 = y; - width1 = (xpos + width) - x; - height1 = (ypos + height) - y; - break; - } - dc.BeginDrawing(); - - dc.SetLogicalFunction(wxINVERT); - wxPen pen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(pen); - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - DrawBoundingBox(dc, x1, y1, width1, height1); - - dc.EndDrawing(); - } - else - { - dc.BeginDrawing(); - dc.SetLogicalFunction(wxINVERT); - wxPen pen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(pen); - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - DrawBoundingBox(dc, (int)(x - dragOffsetX), (int)(y - dragOffsetY), width, height); - - // Also draw bounding boxes for other selected items - wxNode *node = panel->GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win->IsKindOf(CLASSINFO(wxControl))) - { - wxControl *item = (wxControl *)win; - wxResourceEditorControlHandler *handler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - if ((item != handlerControl) && handler->IsSelected()) - { - int x1, y1, w1, h1; - item->GetPosition(&x1, &y1); - item->GetSize(&w1, &h1); - int x2 = (int)(x1 + (x - dragOffsetX) - xpos); - int y2 = (int)(y1 + (y - dragOffsetY) - ypos); - handler->DrawBoundingBox(dc, x2, y2, w1, h1); - } - } - node = node->Next(); - } - dc.EndDrawing(); - } -} - -void wxResourceEditorControlHandler::OnDragEnd(int x, int y, int WXUNUSED(keys), wxDC& dc, int selectionHandle) -{ - wxPanel *panel = (wxPanel *)handlerControl->GetParent(); - - dc.BeginDrawing(); - - int xpos, ypos, width, height; - handlerControl->GetPosition(&xpos, &ypos); - handlerControl->GetSize(&width, &height); - - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(handlerControl); - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(handlerControl->GetParent()); - - if (selectionHandle > 0) - { - int x1, y1, width1, height1; - - switch (selectionHandle) - { - case 1: - x1 = xpos; - y1 = y; - width1 = width; - height1 = (ypos + height) - y; - break; - case 5: - x1 = xpos; - y1 = ypos; - width1 = width; - height1 = (y - ypos); - break; - case 3: - x1 = xpos; - y1 = ypos; - width1 = (x - xpos); - height1 = height; - break; - case 7: - x1 = x; - y1 = ypos; - width1 = (xpos + width) - x; - height1 = height; - break; - case 2: - x1 = xpos; - y1 = y; - width1 = (x - xpos); - height1 = (ypos + height) - y; - break; - case 4: - x1 = xpos; - y1 = ypos; - width1 = (x - xpos); - height1 = (y - ypos); - break; - case 6: - x1 = x; - y1 = ypos; - width1 = (xpos + width) - x; - height1 = y - ypos; - break; - case 8: - x1 = x; - y1 = y; - width1 = (xpos + width) - x; - height1 = (ypos + height) - y; - break; - } - // Update the associated resource - // We need to convert to dialog units if this is not a dialog or panel, but - // the parent resource specifies dialog units. - int resourceX = x1; - int resourceY = y1; - int resourceWidth = width1; - int resourceHeight = height1; - - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = handlerControl->GetParent()->ConvertPixelsToDialog(wxPoint(x1, y1)); - wxSize sz = handlerControl->GetParent()->ConvertPixelsToDialog(wxSize(width1, height1)); - - // Convert back so we've rounded down - sz = handlerControl->GetParent()->ConvertDialogToPixels(sz); - sz = handlerControl->GetParent()->ConvertPixelsToDialog(sz); - resourceWidth = sz.x; resourceHeight = sz.y; - - sz = handlerControl->GetParent()->ConvertDialogToPixels(sz); - width1 = sz.x; - height1 = sz.y; - - pt = handlerControl->GetParent()->ConvertDialogToPixels(pt); - pt = handlerControl->GetParent()->ConvertPixelsToDialog(pt); - resourceX = pt.x; resourceY = pt.y; - - pt = handlerControl->GetParent()->ConvertDialogToPixels(pt); - x1 = pt.x; - y1 = pt.y; - } - handlerControl->SetSize(x1, y1, width1, height1); - resource->SetSize(resourceX, resourceY, resourceWidth, resourceHeight); - } - else - { - // Correction 31/12/98. We need to round down the values to take into account - // the fact that several pixels map to the same dialog unit. - - int newX = (int)(x - dragOffsetX); - int newY = (int)(y - dragOffsetY); - int resourceX = newX; - int resourceY = newY; - - // Update the associated resource - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = handlerControl->GetParent()->ConvertPixelsToDialog(wxPoint(newX, newY)); - pt = handlerControl->GetParent()->ConvertDialogToPixels(pt); - pt = handlerControl->GetParent()->ConvertPixelsToDialog(pt); - resourceX = pt.x; resourceY = pt.y; - pt = handlerControl->GetParent()->ConvertDialogToPixels(pt); - - // Having converted it several times, we know it'll map to dialog units exactly. - newX = pt.x; - newY = pt.y; - } - handlerControl->Move(newX, newY); - OldOnMove(newX, newY); - - resource->SetSize(resourceX, resourceY, resource->GetWidth(), resource->GetHeight()); - - // Also move other selected items - wxNode *node = panel->GetChildren().First(); - while (node) - { - wxWindow *win = (wxWindow *)node->Data(); - if (win->IsKindOf(CLASSINFO(wxControl))) - { - wxControl *item = (wxControl *)win; - wxResourceEditorControlHandler *handler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - if ((item != handlerControl) && handler->IsSelected()) - { - int x1, y1; - item->GetPosition(&x1, &y1); - int x2 = (int)(x1 + (x - dragOffsetX) - xpos); - int y2 = (int)(y1 + (y - dragOffsetY) - ypos); - - // Update the associated resource - resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item); - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = item->GetParent()->ConvertPixelsToDialog(wxPoint(x2, y2)); - pt = item->GetParent()->ConvertDialogToPixels(pt); - pt = item->GetParent()->ConvertPixelsToDialog(pt); - - resourceX = pt.x; resourceY = pt.y; - pt = handlerControl->GetParent()->ConvertDialogToPixels(pt); - - // Having converted it several times, we know it'll map to dialog units exactly - x2 = pt.x; - y2 = pt.y; - } - - item->Move(x2, y2); - ((wxResourceEditorControlHandler *)item->GetEventHandler())->OldOnMove(x2, y2); - ((wxResourceEditorControlHandler *)item->GetEventHandler())->DrawSelectionHandles(dc); - - resource->SetSize(resourceX, resourceY, resource->GetWidth(), resource->GetHeight()); - - } - } - node = node->Next(); - } - } - dc.SetOptimization(FALSE); - - dc.SetLogicalFunction(wxCOPY); - dc.SetPen(* wxBLACK_PEN); - dc.SetBrush(* wxBLACK_BRUSH); - - dc.SetOptimization(TRUE); - - // Force it to repaint the selection handles (if any) - // since the panel thinks we're still within a drag and - // won't paint the handles. - if (IsSelected()) - DrawSelectionHandles(dc); - - dc.EndDrawing(); - - panel->Refresh(); -} - -// These functions call OnItemEvent, OnItemMove and OnItemSize -// by default. -void wxResourceEditorControlHandler::OnMouseEvent(wxMouseEvent& event) -{ -/* - if ((event.m_eventType == wxEVENT_TYPE_LEFT_DCLICK) || - (event.m_eventType == wxEVENT_TYPE_RIGHT_DCLICK)) - return; -*/ - wxWindow *panel = handlerControl->GetParent(); - if ( !panel->GetEventHandler()->IsKindOf(CLASSINFO(wxResourceEditorDialogHandler)) ) - return; - wxResourceEditorDialogHandler *panelHandler = (wxResourceEditorDialogHandler *)panel->GetEventHandler(); - if ( !panelHandler->GetEvtHandlerEnabled() ) - { - event.Skip(); - return; - } - - panelHandler->OnItemEvent(handlerControl, event); -} - -void wxResourceEditorControlHandler::OldOnMove(int x, int y) -{ - wxWindow *panel = handlerControl->GetParent(); - if ( !panel->GetEventHandler()->IsKindOf(CLASSINFO(wxResourceEditorDialogHandler)) ) - return; - - wxResourceEditorDialogHandler *panelHandler = (wxResourceEditorDialogHandler *)panel->GetEventHandler(); - panelHandler->OnItemMove(handlerControl, x, y); -} - -void wxResourceEditorControlHandler::OldOnSize(int w, int h) -{ - wxWindow *panel = handlerControl->GetParent(); - if ( !panel->GetEventHandler()->IsKindOf(CLASSINFO(wxResourceEditorDialogHandler)) ) - return; - - wxResourceEditorDialogHandler *panelHandler = (wxResourceEditorDialogHandler *)panel->GetEventHandler(); - panelHandler->OnItemSize(handlerControl, w, h); -} - -void wxResourceEditorControlHandler::OnSelect(bool select) -{ - wxWindow *panel = handlerControl->GetParent(); - if ( !panel->GetEventHandler()->IsKindOf(CLASSINFO(wxResourceEditorDialogHandler)) ) - return; - - wxResourceEditorDialogHandler *panelHandler = (wxResourceEditorDialogHandler *)panel->GetEventHandler(); - panelHandler->OnItemSelect(handlerControl, select); -} - -void wxResourceEditorControlHandler::OnLeftClick(int x, int y, int keys) -{ - wxWindow *panel = handlerControl->GetParent(); - if ( !panel->GetEventHandler()->IsKindOf(CLASSINFO(wxResourceEditorDialogHandler)) ) - return; - - wxResourceEditorDialogHandler *panelHandler = (wxResourceEditorDialogHandler *)panel->GetEventHandler(); - panelHandler->OnItemLeftClick(handlerControl, x, y, keys); -} - -void wxResourceEditorControlHandler::OnRightClick(int x, int y, int keys) -{ - wxWindow *panel = handlerControl->GetParent(); - if ( !panel->GetEventHandler()->IsKindOf(CLASSINFO(wxResourceEditorDialogHandler)) ) - return; - - wxResourceEditorDialogHandler *panelHandler = (wxResourceEditorDialogHandler *)panel->GetEventHandler(); - panelHandler->OnItemRightClick(handlerControl, x, y, keys); -} - - diff --git a/utils/dialoged/src/dlghndlr.h b/utils/dialoged/src/dlghndlr.h deleted file mode 100644 index 80a9cf5ac8..0000000000 --- a/utils/dialoged/src/dlghndlr.h +++ /dev/null @@ -1,139 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dlghndlr.h -// Purpose: Dialog handler -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _DLGHNDLR_H_ -#define _DLGHNDLR_H_ - -#define wxDRAG_MODE_NONE 0 -#define wxDRAG_MODE_START_LEFT 1 -#define wxDRAG_MODE_CONTINUE_LEFT 2 -#define wxDRAG_MODE_START_RIGHT 3 -#define wxDRAG_MODE_CONTINUE_RIGHT 4 -#define wxDRAG_TYPE_NONE 0 -#define wxDRAG_TYPE_ITEM 100 - -#define wxKEY_SHIFT 1 -#define wxKEY_CTRL 2 - -class wxResourceEditorDialogHandler: public wxEvtHandler -{ -DECLARE_CLASS(wxResourceEditorDialogHandler) - public: - wxResourceManager *resourceManager; - wxPanel *handlerDialog; - wxItemResource *handlerResource; - wxEvtHandler *handlerOldHandler; - - wxControl *dragItem; - int dragMode; - int dragType; - int dragTolerance; - bool checkTolerance; - int firstDragX; - int firstDragY; - int oldDragX; - int oldDragY; - bool m_mouseCaptured; -// long m_treeItem; - - wxResourceEditorDialogHandler(wxPanel *dialog, wxItemResource *resource, wxEvtHandler *oldHandler, - wxResourceManager *manager); - ~wxResourceEditorDialogHandler(void); - - void OnPaint(wxPaintEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnSize(wxSizeEvent& event); - - virtual void OnItemEvent(wxControl *win, wxMouseEvent& event); - virtual void OnLeftClick(int x, int y, int keys); - virtual void OnRightClick(int x, int y, int keys); - virtual void OnItemLeftClick(wxControl *item, int x, int y, int keys); - virtual void OnItemRightClick(wxControl *item, int x, int y, int keys); - virtual void OnItemSelect(wxControl *item, bool select); - virtual void OnItemMove( - wxControl *WXUNUSED(item), int WXUNUSED(x), int WXUNUSED(y) ) {}; - virtual void OnItemSize( - wxControl *WXUNUSED(item), int WXUNUSED(w), int WXUNUSED(h) ) {}; - - void AddChildHandlers(void); - void PaintSelectionHandles(wxDC& dc); - void ProcessItemEvent(wxControl *item, wxMouseEvent& event, int selectionHandle); - -// Accessors -/* - inline long GetTreeItem() const { return m_treeItem; } - inline void SetTreeItem(long item) { m_treeItem = item; } -*/ - -DECLARE_EVENT_TABLE() -}; - -class wxResourceEditorControlHandler: public wxEvtHandler -{ -DECLARE_CLASS(wxResourceEditorControlHandler) - public: -// wxResourceManager *resourceManager; - wxControl *handlerControl; -// wxItemResource *handlerResource; - wxEvtHandler *handlerOldHandler; - - bool isSelected; - int handleSize; // selection handle size - int handleMargin; // Distance between item edge and handle edge - long m_treeItem; - static int dragOffsetX; // Distance between pointer at start of drag and - static int dragOffsetY; // top-left of item - - wxResourceEditorControlHandler(wxControl *control, wxEvtHandler *oldHandler); - ~wxResourceEditorControlHandler(void); - - void OnMouseEvent(wxMouseEvent& event); - - // Manipulation and drawing of items in Edit Mode - - // Calculate position of the 8 handles - virtual void CalcSelectionHandles(int *hx, int *hy); - virtual void DrawSelectionHandles(wxDC& dc, bool erase = FALSE); - virtual void DrawBoundingBox(wxDC& dc, int x, int y, int w, int h); - virtual void SelectItem(bool select); - virtual inline bool IsSelected(void) { return isSelected; } - - // Returns TRUE or FALSE - virtual bool HitTest(int x, int y); - - // Returns 0 (no hit), 1 - 8 for which selection handle - // (clockwise from top middle) - virtual int SelectionHandleHitTest(int x, int y); - - // If selectionHandle is zero, not dragging the selection handle. - virtual void OnDragBegin(int x, int y, int keys, wxDC& dc, int selectionHandle); - virtual void OnDragContinue(bool paintIt, int x, int y, int keys, wxDC& dc, int selectionHandle); - virtual void OnDragEnd(int x, int y, int keys, wxDC& dc, int selectionHandle); - - // These functions call panel functions - // by default. - virtual void OldOnMove(int x, int y); - virtual void OldOnSize(int w, int h); - virtual void OnLeftClick(int x, int y, int keys); - virtual void OnRightClick(int x, int y, int keys); - virtual void OnSelect(bool select); - -// Accessors -/* - inline long GetTreeItem() const { return m_treeItem; } - inline void SetTreeItem(long item) { m_treeItem = item; } -*/ - -DECLARE_EVENT_TABLE() -}; - -#endif - diff --git a/utils/dialoged/src/edlist.cpp b/utils/dialoged/src/edlist.cpp deleted file mode 100644 index 087736aaf4..0000000000 --- a/utils/dialoged/src/edlist.cpp +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: edlist.cpp -// Purpose: Resource editor project management tree -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "edlist.h" -#endif - -// 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" - -#include "wx/checkbox.h" -#include "wx/button.h" -#include "wx/choice.h" -#include "wx/listbox.h" -#include "wx/radiobox.h" -#include "wx/statbox.h" -#include "wx/gauge.h" -#include "wx/slider.h" -#include "wx/textctrl.h" -#endif - -#include "edlist.h" -#include "reseditr.h" - -BEGIN_EVENT_TABLE(wxResourceEditorControlList, wxListCtrl) -END_EVENT_TABLE() - -wxResourceEditorControlList::wxResourceEditorControlList(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style): - wxListCtrl(parent, id, pos, size, style), m_imageList(16, 16, TRUE) -{ - Initialize(); -} - -wxResourceEditorControlList::~wxResourceEditorControlList() -{ - SetImageList(NULL, wxIMAGE_LIST_SMALL); -} - -// Load icons and add to the list -void wxResourceEditorControlList::Initialize() -{ -#ifdef __WXMSW__ - wxIcon icon1("ARROW_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon2("BUTTON_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon3("BMPBUTTON_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon4("STATICTEXT_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon5("STATICBMP_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon6("STATICBOX_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon7("TEXTSING_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon8("TEXTMULT_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon9("LISTBOX_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon10("CHOICE_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon11("COMBOBOX_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon12("CHECKBOX_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon13("SLIDER_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon14("GAUGE_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon15("RADIOBOX_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon16("RADIOBTN_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon17("SCROLBAR_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); -#else - -#include "bitmaps/arrow.xpm" - wxIcon icon1( arrow_xpm ); -#include "bitmaps/button.xpm" - wxIcon icon2( button_xpm ); -#include "bitmaps/bmpbuttn.xpm" - wxIcon icon3( bmpbuttn_xpm ); -#include "bitmaps/stattext.xpm" - wxIcon icon4( stattext_xpm ); -#include "bitmaps/statbmp.xpm" - wxIcon icon5( statbmp_xpm ); -#include "bitmaps/statbox.xpm" - wxIcon icon6( statbox_xpm ); -#include "bitmaps/textsing.xpm" - wxIcon icon7( textsing_xpm ); -#include "bitmaps/textmult.xpm" - wxIcon icon8( textmult_xpm ); -#include "bitmaps/listbox.xpm" - wxIcon icon9( listbox_xpm ); -#include "bitmaps/choice.xpm" - wxIcon icon10( choice_xpm ); -#include "bitmaps/combobox.xpm" - wxIcon icon11( combobox_xpm ); -#include "bitmaps/checkbox.xpm" - wxIcon icon12( checkbox_xpm ); -#include "bitmaps/slider.xpm" - wxIcon icon13( slider_xpm ); -#include "bitmaps/gauge.xpm" - wxIcon icon14( gauge_xpm ); -#include "bitmaps/radiobox.xpm" - wxIcon icon15( radiobox_xpm ); -#include "bitmaps/radiobtn.xpm" - wxIcon icon16( radiobtn_xpm ); -#include "bitmaps/scrolbar.xpm" - wxIcon icon17( scrolbar_xpm ); -#endif - - m_imageList.Add(icon1); - m_imageList.Add(icon2); - m_imageList.Add(icon3); - m_imageList.Add(icon4); - m_imageList.Add(icon5); - m_imageList.Add(icon6); - m_imageList.Add(icon7); - m_imageList.Add(icon8); - m_imageList.Add(icon9); - m_imageList.Add(icon10); - m_imageList.Add(icon11); - m_imageList.Add(icon12); - m_imageList.Add(icon13); - m_imageList.Add(icon14); - m_imageList.Add(icon15); - m_imageList.Add(icon16); - m_imageList.Add(icon17); - - SetImageList(& m_imageList, wxIMAGE_LIST_SMALL); - - long id = InsertItem(0, "Pointer", 0); - id = InsertItem(1, "wxButton", 1); - id = InsertItem(2, "wxBitmapButton", 2); - id = InsertItem(3, "wxStaticText", 3); - id = InsertItem(4, "wxStaticBitmap", 4); - id = InsertItem(5, "wxStaticBox", 5); - id = InsertItem(6, "wxTextCtrl", 6); - id = InsertItem(7, "wxTextCtrl", 7); - id = InsertItem(8, "wxListBox", 8); - id = InsertItem(9, "wxChoice", 9); - id = InsertItem(10, "wxComboBox", 10); - id = InsertItem(11, "wxCheckBox", 11); - id = InsertItem(12, "wxSlider", 12); - id = InsertItem(13, "wxGauge", 13); - id = InsertItem(14, "wxRadioBox", 14); - id = InsertItem(15, "wxRadioButton", 15); - id = InsertItem(16, "wxScrollBar", 16); - -/* - InsertItem(RESED_TREECTRL, "wxTreeCtrl", 16); - InsertItem(RESED_LISTCTRL, "wxListCtrl", 17); - InsertItem(RESED_SPINBUTTON, "wxSpinButton", 18); -*/ - -// SetColumnWidth(-1, 80); -} - -// Get selection, or -1 -long wxResourceEditorControlList::GetSelection() const -{ - return GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); -} - - diff --git a/utils/dialoged/src/edlist.h b/utils/dialoged/src/edlist.h deleted file mode 100644 index 9777c01355..0000000000 --- a/utils/dialoged/src/edlist.h +++ /dev/null @@ -1,38 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: edlist.h -// Purpose: Resource editor list of controls -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _EDLIST_H_ -#define _EDLIST_H_ - -#include -#include - -class wxResourceEditorControlList: public wxListCtrl -{ -public: - wxResourceEditorControlList(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style = wxLC_SMALL_ICON|wxLC_AUTOARRANGE|wxLC_SINGLE_SEL); - ~wxResourceEditorControlList(); - - // Load icons and add to the list - void Initialize(); - - // Get selection, or -1 - long GetSelection() const; - -DECLARE_EVENT_TABLE() - -protected: - wxImageList m_imageList; -}; - -#endif - diff --git a/utils/dialoged/src/edtree.cpp b/utils/dialoged/src/edtree.cpp deleted file mode 100644 index 00086583d8..0000000000 --- a/utils/dialoged/src/edtree.cpp +++ /dev/null @@ -1,92 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: edtree.cpp -// Purpose: Resource editor project management tree -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "edtree.h" -#endif - -// 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" - -#include "wx/checkbox.h" -#include "wx/button.h" -#include "wx/choice.h" -#include "wx/listbox.h" -#include "wx/radiobox.h" -#include "wx/statbox.h" -#include "wx/gauge.h" -#include "wx/slider.h" -#include "wx/textctrl.h" -#endif - -#include "edtree.h" -#include "reseditr.h" - -BEGIN_EVENT_TABLE(wxResourceEditorProjectTree, wxTreeCtrl) - EVT_LEFT_DCLICK(wxResourceEditorProjectTree::LeftDClick) - EVT_TREE_SEL_CHANGED(IDC_TREECTRL, wxResourceEditorProjectTree::OnSelChanged) -END_EVENT_TABLE() - -wxResourceEditorProjectTree::wxResourceEditorProjectTree(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style): - wxTreeCtrl(parent, id, pos, size, style) -{ -} - -void wxResourceEditorProjectTree::LeftDClick(wxMouseEvent& WXUNUSED(event)) -{ -#if 0 - long sel = GetSelection(); - if (sel == -1) - return; - - if (GetItemData(sel) == 0) - return; - - wxItemResource* res = (wxResourceTreeData *)GetItemData(sel)->GetResource(); - wxString resType(res->GetType()); - if (resType != "wxDialog" && resType != "wxDialogBox" && resType != "wxPanel") - return; - - wxResourceEditorFrame *frame = (wxResourceEditorFrame *)wxWindow::GetParent(); - wxResourceManager *manager = frame->manager; - - manager->EditSelectedResource(); -#endif -} - -void wxResourceEditorProjectTree::OnSelChanged(wxTreeEvent& WXUNUSED(event)) -{ - long sel = GetSelection(); - if (sel == -1) - return; - - if (GetItemData(sel) == 0) - return; - - if (m_invalid) - return; - - wxItemResource* res = ((wxResourceTreeData *)GetItemData(sel))->GetResource(); - wxString resType(res->GetType()); - if (resType != "wxDialog" && resType != "wxDialogBox" && resType != "wxPanel") - return; - - wxResourceManager::GetCurrentResourceManager()->Edit(res); -} - diff --git a/utils/dialoged/src/edtree.h b/utils/dialoged/src/edtree.h deleted file mode 100644 index 3928c5aa7d..0000000000 --- a/utils/dialoged/src/edtree.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: edtree.h -// Purpose: Resource editor project management tree control -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _EDTREE_H_ -#define _EDTREE_H_ - -#include - -class wxResourceEditorProjectTree: public wxTreeCtrl -{ -public: - wxResourceEditorProjectTree(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style = wxTR_HAS_BUTTONS); - - void LeftDClick(wxMouseEvent& event); - void OnSelChanged(wxTreeEvent& event); - - inline void SetInvalid(bool invalid) { m_invalid = invalid; } - -protected: - bool m_invalid; // While TRUE, don't respond to selections etc. - -DECLARE_EVENT_TABLE() - -}; - -#endif - diff --git a/utils/dialoged/src/makefile.b32 b/utils/dialoged/src/makefile.b32 deleted file mode 100644 index 39c14b5720..0000000000 --- a/utils/dialoged/src/makefile.b32 +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.b32 -# Author: Patrick Halke -# Created: 1995 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds Dialog Editor (32-bit Borland) - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) - -TARGET=dialoged -OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj\ - edtree.obj edlist.obj symbtabl.obj winstyle.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/dialoged/src/makefile.bcc b/utils/dialoged/src/makefile.bcc deleted file mode 100644 index d38642a567..0000000000 --- a/utils/dialoged/src/makefile.bcc +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit Dialog Editor - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=dialoged -OBJECTS=dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\ - winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/utils/dialoged/src/makefile.dos b/utils/dialoged/src/makefile.dos deleted file mode 100644 index 04fa91936a..0000000000 --- a/utils/dialoged/src/makefile.dos +++ /dev/null @@ -1,178 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1995 -# Updated: -# Copyright: (c) 1995, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds docview example (DOS). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makemsc.env - -THISDIR = $(WXDIR)\utils\dialoged\src -WXLIB = $(WXDIR)\lib\wx.lib - -DOCDIR = $(WXDIR)\utils\dialoged\docs - - -LIBS=$(WXLIB) oldnames libw llibcew commdlg shell ddeml -INC=/I$(WXDIR)\include\base /I$(WXDIR)\include\msw /I$(PROPINC) - -!ifndef FINAL -FINAL=0 -!endif - -# Default is to output RTF for WinHelp -!ifndef RTFSTYLE -RTFSTYLE=-winhelp -!endif - -# Set this to nothing if using MS C++ 7 -ZOPTION=/Z7 - -!if "$(FINAL)" == "0" -CPPFLAGS=/AL /W3 /Zi $(ZOPTION) /G2sw /Od /DDEBUG=$(DEBUG) /YuWX_PREC.H $(INC) /Dwx_msw /Fp$(WXDIR)\src\msw\wx.pch -LINKFLAGS=/NOD /CO /SEG:512 /ONERROR:NOEXE -!else -CPPFLAGS=/AL /W3 /G2sw /Ox /YuWX_PREC.H $(INC) /DDEBUG=$(DEBUG) /Dwx_msw /Fp$(WXDIR)\src\msw\wx.pch -LINKFLAGS=/NOD /SEG:512 /ONERROR:NOEXE -!endif - -OBJECTS = dialoged.obj wx_resed.obj wx_rdlg.obj wx_reswr.obj wx_repal.obj wx_rprop.obj - -all: prop dialoged.exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.dos - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.dos clean - cd $(THISDIR) - - -dialoged.exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) $(OBJECTS) $(PROPLIB) dialoged.def dialoged.res - link $(LINKFLAGS) @<< -$(WXDIR)\src\msw\dummy.obj $(OBJECTS), -dialoged, -NUL, -$(LIBS), -dialoged.def -; -<< - rc -30 -K dialoged.res - -dialoged.obj: dialoged.h $(PROPINC)\wx_prop.h wx_resed.h wx_rprop.h dialoged.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -wx_resed.obj: wx_resed.h $(PROPINC)\wx_prop.h wx_resed.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -wx_rdlg.obj: wx_resed.h $(PROPINC)\wx_prop.h wx_rdlg.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -wx_reswr.obj: wx_resed.h wx_reswr.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -wx_rprop.obj: wx_resed.h $(PROPINC)\wx_prop.h wx_rprop.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -wx_repal.obj: wx_resed.h $(PROPINC)\wx_prop.h wx_repal.h wx_repal.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -dialoged.res : dialoged.rc $(WXDIR)\include\msw\wx.rc - rc -r /dFAFA_LIB /i$(WXDIR)\contrib\fafa /i$(WXDIR)\include\msw dialoged - -wxtree: - cd $(TREEDIR)\src - nmake -f makefile.dos FINAL="$(FINAL)" OPT="$(OPT)" - cd $(THISDIR) - -dib: - cd $(DIBDIR) - nmake -f makefile.dos FINAL="$(FINAL)" OPT="$(OPT)" - cd $(THISDIR) - -prop: - cd $(PROPDIR)\src - nmake -f makefile.dos FINAL="$(FINAL)" OPT="$(OPT)" - cd $(THISDIR) - -# Making documents -docs: hlp -hlp: $(DOCDIR)/dialoged.hlp -hlp32: $(DOCDIR)/hlp32/dialoged.hlp -rtf: $(DOCDIR)/dialoged.rtf - -$(DOCDIR)/dialoged.hlp: $(DOCDIR)/dialoged.rtf $(DOCDIR)/dialoged.hpj - cd $(DOCDIR) - -erase dialoged.ph - hc dialoged - cd $(THISDIR) - -$(DOCDIR)/hlp32/dialoged.hlp: $(DOCDIR)/hlp32/dialoged.rtf $(DOCDIR)/hlp32/dialoged.hpj - cd $(DOCDIR)/hlp32 - -erase dialoged.ph - -wx /W hcw /c /e clockwrk.hpj - cd $(THISDIR) - -$(DOCDIR)/dialoged.rtf: $(DOCDIR)/body.tex $(DOCDIR)/classes.tex $(DOCDIR)/tech.tex $(DOCDIR)/dialoged.tex - cd $(DOCDIR) - -wx /W tex2rtf $(DOCDIR)/dialoged.tex $(DOCDIR)/dialoged.rtf -twice $(RTFSTYLE) - cd $(THISDIR) - -$(DOCDIR)/hlp32/dialoged.rtf: $(DOCDIR)/body.tex $(DOCDIR)/classes.tex $(DOCDIR)/body.tex $(DOCDIR)/dialoged.tex - cd $(DOCDIR) - -wx /W tex2rtf $(DOCDIR)/dialoged.tex $(DOCDIR)/hlp32/dialoged.rtf -twice $(RTFSTYLE) -macros $(DOCDIR)/t2rtf32.ini - cd $(THISDIR) - -wordrtf: - cd $(DOCDIR) - -wx /W tex2rtf $(DOCDIR)/dialoged.tex $(DOCDIR)/dialoged.rtf -twice -rtf - cd $(THISDIR) - -cleanprop: - cd $(PROPDIR)\src - nmake -f makefile.dos clean - cd $(THISDIR) - -rcparser: - cd $(RCDIR)\src - nmake -f makefile.dos FINAL=$(FINAL) OPT=$(OPT) - cd $(THISDIR) - -cleanrtf: - cd $(DOCDIR) - -erase *.rtf - cd $(THISDIR) - -cleanutils: cleanprop - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - -clean: - -erase *.obj *.exe *.res *.map *.rws diff --git a/utils/dialoged/src/makefile.g95 b/utils/dialoged/src/makefile.g95 deleted file mode 100644 index 7bf29275c3..0000000000 --- a/utils/dialoged/src/makefile.g95 +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows Dialog Editor (Cygwin/Mingw32). - -WXDIR = ../../.. - -TARGET=dialoged -OBJECTS = $(TARGET).o reseditr.o dlghndlr.o reswrite.o\ - winprop.o edtree.o edlist.o symbtabl.o winstyle.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/dialoged/src/makefile.sc b/utils/dialoged/src/makefile.sc deleted file mode 100644 index 5099033cae..0000000000 --- a/utils/dialoged/src/makefile.sc +++ /dev/null @@ -1,36 +0,0 @@ -# Symantec C++ makefile for Dialog Editor - -WXDIR = $(WXWIN) -!include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -CC=sc -RC=rc -CFLAGS = -o -ml -W -Dwx_msw -LDFLAGS = -ml -W - -INCLUDE=$(BASEINC);$(MSWINC) -OBJECTS = wx_resed.obj wx_rdlg.obj wx_reswr.obj wx_repal.obj wx_rprop.obj dialoged.obj - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -dialoged.exe: $(OBJECTS) dialoged.def dialoged.res - *$(CC) $(LDFLAGS) -o$@ $(OBJECTS) dialoged.def $(LIBS) - *$(RC) -k dialoged.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws diff --git a/utils/dialoged/src/makefile.unx b/utils/dialoged/src/makefile.unx deleted file mode 100644 index df33482948..0000000000 --- a/utils/dialoged/src/makefile.unx +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for Dialog Editor (Unix) - -PROGRAM=dialoged - -OBJECTS = dialoged.o reseditr.o dlghndlr.o reswrite.o\ - winprop.o edtree.o edlist.o symbtabl.o winstyle.o - -include ../../../src/makeprog.env - diff --git a/utils/dialoged/src/makefile.vc b/utils/dialoged/src/makefile.vc deleted file mode 100644 index fce0a56fd7..0000000000 --- a/utils/dialoged/src/makefile.vc +++ /dev/null @@ -1,134 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993-1999 Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds Dialog Editor (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - - -# N.B. This makefiles uses CPPFLAGS2 to disable precompiled headers so we -# can override optimization, which is necessary for correct behaviour under -# VC++ 5 (otherwise deleting an object causes a crash). - -# Set WXDIR for your system -WXDIR = $(WXWIN) -THISDIR = $(WXDIR)\utils\dialoged\src -DOCDIR=$(WXDIR)\docs -LOCALDOCDIR=$(WXDIR)\utils\dialoged\docs - -OVERRIDEFLAGS=/Od - -PROGRAM=dialoged - -OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj\ - winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj - -!include $(WXDIR)\src\makeprog.vc - - -all: dialoged.exe - -dialoged.obj: winprop.h reseditr.h dialoged.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -winprop.obj: winprop.h reseditr.h winprop.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -reswrite.obj: winprop.h reseditr.h reswrite.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -reseditr.obj: winprop.h reseditr.h reseditr.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -edtree.obj: winprop.h reseditr.h edtree.h edtree.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -edlist.obj: winprop.h reseditr.h edlist.h edlist.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -dlghndlr.obj: winprop.h reseditr.h dlghndlr.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -symbtabl.obj: symbtabl.h symbtabl.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -winstyle.obj: winstyle.h winstyle.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -DOCSOURCES=$(LOCALDOCDIR)\dialoged.tex $(LOCALDOCDIR)\body.tex\ - $(LOCALDOCDIR)\bugs.tex $(LOCALDOCDIR)\changes.tex\ - $(LOCALDOCDIR)\classes.tex $(LOCALDOCDIR)\tech.tex - -html: $(DOCDIR)\html\dialoged\dlged.htm -hlp: $(DOCDIR)\winhelp\dialoged.hlp -pdfrtf: $(DOCDIR)\pdf\dialoged.rtf -ps: $(DOCDIR)\ps\dialoged.ps - -$(DOCDIR)\winhelp\dialoged.hlp: $(LOCALDOCDIR)\dialoged.rtf $(LOCALDOCDIR)\dialoged.hpj - cd $(LOCALDOCDIR) - -erase dialoged.ph - hc dialoged - move dialoged.hlp $(DOCDIR)\winhelp\dialoged.hlp - move dialoged.cnt $(DOCDIR)\winhelp\dialoged.cnt - cd $(THISDIR) - -$(LOCALDOCDIR)\dialoged.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -start /w tex2rtf $(LOCALDOCDIR)\dialoged.tex $(LOCALDOCDIR)\dialoged.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)\pdf\dialoged.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -copy *.bmp *.wmf $(DOCDIR)\pdf - -start /w tex2rtf $(LOCALDOCDIR)\dialoged.tex $(DOCDIR)\pdf\dialoged.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)\html\dialoged\dlged.htm: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -mkdir $(DOCDIR)\html\dialoged - -start /w tex2rtf $(LOCALDOCDIR)\dialoged.tex $(DOCDIR)\html\dialoged\dlged.htm -twice -html - -erase $(DOCDIR)\html\dialoged\*.con - -erase $(DOCDIR)\html\dialoged\*.ref - cd $(THISDIR) - -$(LOCALDOCDIR)\dialoged.dvi: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -latex dialoged - -latex dialoged - -makeindx dialoged - -bibtex dialoged - -latex dialoged - -latex dialoged - cd $(THISDIR) - -$(WXDIR)\docs\ps\dialoged.ps: $(LOCALDOCDIR)\dialoged.dvi - cd $(LOCALDOCDIR) - -dvips32 -o dialoged.ps dialoged - move dialoged.ps $(WXDIR)\docs\ps\dialoged.ps - cd $(THISDIR) - - diff --git a/utils/dialoged/src/makefile.wat b/utils/dialoged/src/makefile.wat deleted file mode 100644 index 362b289124..0000000000 --- a/utils/dialoged/src/makefile.wat +++ /dev/null @@ -1,15 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by D.Chubraev, chubraev@iem.ee.ethz.ch -# 8 Nov 1994 -# - -WXDIR = $(%WXWIN) - -PROGRAM = dialoged -OBJECTS = dialoged.obj reseditr.obj dlghndlr.obj reswrite.obj winprop.obj edtree.obj edlist.obj symbtabl.obj winstyle.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/utils/dialoged/src/reseditr.cpp b/utils/dialoged/src/reseditr.cpp deleted file mode 100644 index 55a60b962c..0000000000 --- a/utils/dialoged/src/reseditr.cpp +++ /dev/null @@ -1,2427 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: reseditr.cpp -// Purpose: Resource editor class -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "reseditr.h" -#endif - -// 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" - -#include "wx/checkbox.h" -#include "wx/button.h" -#include "wx/choice.h" -#include "wx/listbox.h" -#include "wx/radiobox.h" -#include "wx/statbox.h" -#include "wx/gauge.h" -#include "wx/slider.h" -#include "wx/textctrl.h" -#include "wx/menu.h" -#include "wx/toolbar.h" -#endif - -#include "wx/scrolbar.h" -#include "wx/config.h" - -#include -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) -#include -#else -#include -#endif -#else -#include -#endif - -#ifdef __WXMSW__ -#include "wx/help.h" -#endif - -#include "reseditr.h" -#include "winprop.h" -#include "dlghndlr.h" -#include "edtree.h" -#include "edlist.h" - -static void ObjectMenuProc(wxMenu& menu, wxCommandEvent& event); -wxResourceManager *wxResourceManager::sm_currentResourceManager = NULL; - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "bitmaps/load.xpm" -#include "bitmaps/save.xpm" -#include "bitmaps/new.xpm" -#include "bitmaps/vert.xpm" -#include "bitmaps/alignt.xpm" -#include "bitmaps/alignb.xpm" -#include "bitmaps/horiz.xpm" -#include "bitmaps/alignl.xpm" -#include "bitmaps/alignr.xpm" -#include "bitmaps/copysize.xpm" -#include "bitmaps/tofront.xpm" -#include "bitmaps/toback.xpm" -#include "bitmaps/help.xpm" -#include "bitmaps/wxwin.xpm" - -#include "bitmaps/dialog.xpm" -#include "bitmaps/folder1.xpm" -#include "bitmaps/folder2.xpm" -#include "bitmaps/buttonsm.xpm" -#endif - -/* - * Resource manager - */ - -wxResourceManager::wxResourceManager(): - m_imageList(16, 16, TRUE) -{ - sm_currentResourceManager = this; - m_editorFrame = NULL; - m_editorPanel = NULL; - m_popupMenu = NULL; - m_editorResourceTree = NULL; - m_editorControlList = NULL; - m_nameCounter = 1; - m_symbolIdCounter = 99; - m_modified = FALSE; - m_currentFilename = ""; - m_symbolFilename = ""; - m_editorToolBar = NULL; - - // Default window positions - m_resourceEditorWindowSize.width = 500; - m_resourceEditorWindowSize.height = 450; - - m_resourceEditorWindowSize.x = 0; - m_resourceEditorWindowSize.y = 0; - - m_propertyWindowSize.width = 300; - m_propertyWindowSize.height = 300; - -#ifdef __WXMSW__ - m_helpController = NULL; -#endif - - m_bitmapImage = NULL; - m_rootDialogItem = 0; -} - -wxResourceManager::~wxResourceManager() -{ - sm_currentResourceManager = NULL; - SaveOptions(); - -#ifdef __WXMSW__ - if (m_helpController) - { - m_helpController->Quit(); - delete m_helpController; - m_helpController = NULL; - } -#endif - - delete m_bitmapImage; - delete m_popupMenu; -} - -bool wxResourceManager::Initialize() -{ - // Set up the resource filename for each platform. - // TODO: This shold be replaced by wxConfig usage. -#ifdef __WXMSW__ - // dialoged.ini in the Windows directory - wxString windowsDir = wxGetOSDirectory(); - windowsDir += "\\dialoged.ini" ; - - m_optionsResourceFilename = windowsDir; -#elif defined(__WXGTK__) || defined(__WXMOTIF__) - wxGetHomeDir( &m_optionsResourceFilename ); - m_optionsResourceFilename += "/.dialogedrc"; -#else -#error "Unsupported platform." -#endif - - LoadOptions(); - -#ifdef __WXMSW__ - m_helpController = new wxHelpController; - m_helpController->Initialize("dialoged"); -#endif - - m_popupMenu = new wxMenu("", (wxFunction)ObjectMenuProc); - m_popupMenu->Append(OBJECT_MENU_EDIT, "Edit properties"); - m_popupMenu->Append(OBJECT_MENU_DELETE, "Delete object"); - - if (!m_bitmapImage) - { -#ifdef __WXMSW__ - m_bitmapImage = new wxBitmap("WXWINBMP", wxBITMAP_TYPE_BMP_RESOURCE); -#endif -#if defined(__WXGTK__) || defined(__WXMOTIF__) - m_bitmapImage = new wxBitmap( wxwin_xpm ); -#endif - } - - // Initialize the image list icons -#ifdef __WXMSW__ - wxIcon icon1("DIALOG_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon2("FOLDER1_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon3("FOLDER2_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); - wxIcon icon4("BUTTONSM_ICON", wxBITMAP_TYPE_ICO_RESOURCE, 16, 16); -#else - wxIcon icon1( dialog_xpm ); - wxIcon icon2( folder1_xpm ); - wxIcon icon3( folder2_xpm ); - wxIcon icon4( buttonsm_xpm ); -#endif - m_imageList.Add(icon1); - m_imageList.Add(icon2); - m_imageList.Add(icon3); - m_imageList.Add(icon4); - - m_symbolTable.AddStandardSymbols(); - - return TRUE; -} - -bool wxResourceManager::LoadOptions() -{ - wxConfig config("DialogEd", "wxWindows"); - - config.Read("editorWindowX", &m_resourceEditorWindowSize.x); - config.Read("editorWindowY", &m_resourceEditorWindowSize.y); - config.Read("editorWindowWidth", &m_resourceEditorWindowSize.width); - config.Read("editorWindowHeight", &m_resourceEditorWindowSize.height); - config.Read("propertyWindowX", &m_propertyWindowSize.x); - config.Read("propertyWindowY", &m_propertyWindowSize.y); - config.Read("propertyWindowWidth", &m_propertyWindowSize.width); - config.Read("propertyWindowHeight", &m_propertyWindowSize.height); - - /* - wxGetResource("DialogEd", "editorWindowX", &m_resourceEditorWindowSize.x, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "editorWindowY", &m_resourceEditorWindowSize.y, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "editorWindowWidth", &m_resourceEditorWindowSize.width, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "editorWindowHeight", &m_resourceEditorWindowSize.height, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "propertyWindowX", &m_propertyWindowSize.x, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "propertyWindowY", &m_propertyWindowSize.y, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "propertyWindowWidth", &m_propertyWindowSize.width, m_optionsResourceFilename.GetData()); - wxGetResource("DialogEd", "propertyWindowHeight", &m_propertyWindowSize.height, m_optionsResourceFilename.GetData()); - */ - return TRUE; -} - -bool wxResourceManager::SaveOptions() -{ - wxConfig config("DialogEd", "wxWindows"); - - config.Write("editorWindowX", m_resourceEditorWindowSize.x); - config.Write("editorWindowY", m_resourceEditorWindowSize.y); - config.Write("editorWindowWidth", m_resourceEditorWindowSize.width); - config.Write("editorWindowHeight", m_resourceEditorWindowSize.height); - config.Write("propertyWindowX", m_propertyWindowSize.x); - config.Write("propertyWindowY", m_propertyWindowSize.y); - config.Write("propertyWindowWidth", m_propertyWindowSize.width); - config.Write("propertyWindowHeight", m_propertyWindowSize.height); - /* - wxWriteResource("DialogEd", "editorWindowX", m_resourceEditorWindowSize.x, m_optionsResourceFilename.GetData()); - wxWriteResource("DialogEd", "editorWindowY", m_resourceEditorWindowSize.y, m_optionsResourceFilename.GetData()); - wxWriteResource("DialogEd", "editorWindowWidth", m_resourceEditorWindowSize.width, m_optionsResourceFilename.GetData()); - wxWriteResource("DialogEd", "editorWindowHeight", m_resourceEditorWindowSize.height, m_optionsResourceFilename.GetData()); - - wxWriteResource("DialogEd", "propertyWindowX", m_propertyWindowSize.x, m_optionsResourceFilename.GetData()); - wxWriteResource("DialogEd", "propertyWindowY", m_propertyWindowSize.y, m_optionsResourceFilename.GetData()); - wxWriteResource("DialogEd", "propertyWindowWidth", m_propertyWindowSize.width, m_optionsResourceFilename.GetData()); - wxWriteResource("DialogEd", "propertyWindowHeight", m_propertyWindowSize.height, m_optionsResourceFilename.GetData()); - */ - - return TRUE; -} - -// Show or hide the resource editor frame, which displays a list -// of resources with ability to edit them. -bool wxResourceManager::ShowResourceEditor(bool show, wxWindow *WXUNUSED(parent), const char *title) -{ - if (show) - { - if (m_editorFrame) - { - m_editorFrame->Iconize(FALSE); - m_editorFrame->Show(TRUE); - return TRUE; - } - m_editorFrame = OnCreateEditorFrame(title); - SetFrameTitle(""); - wxMenuBar *menuBar = OnCreateEditorMenuBar(m_editorFrame); - m_editorFrame->SetMenuBar(menuBar); - - m_editorToolBar = (EditorToolBar *)OnCreateToolBar(m_editorFrame); - m_editorControlList = new wxResourceEditorControlList(m_editorFrame, IDC_LISTCTRL, wxPoint(0, 0), wxSize(-1, -1)); - m_editorResourceTree = new wxResourceEditorProjectTree(m_editorFrame, IDC_TREECTRL, wxPoint(0, 0), wxSize(-1, -1), - wxTR_HAS_BUTTONS); - m_editorPanel = OnCreateEditorPanel(m_editorFrame); - - m_editorResourceTree->SetImageList(& m_imageList); - - // Constraints for toolbar - wxLayoutConstraints *c = new wxLayoutConstraints; - c->left.SameAs (m_editorFrame, wxLeft, 0); - c->top.SameAs (m_editorFrame, wxTop, 0); - c->right.SameAs (m_editorFrame, wxRight, 0); - c->bottom.Unconstrained(); - c->width.Unconstrained(); - c->height.Absolute(28); - m_editorToolBar->SetConstraints(c); - - // Constraints for listbox - c = new wxLayoutConstraints; - c->left.SameAs (m_editorFrame, wxLeft, 0); - c->top.SameAs (m_editorToolBar, wxBottom, 0); - c->right.Absolute (150); - c->bottom.SameAs (m_editorControlList, wxTop, 0); - c->width.Unconstrained(); - c->height.Unconstrained(); - m_editorResourceTree->SetConstraints(c); - - // Constraints for panel - c = new wxLayoutConstraints; - c->left.SameAs (m_editorResourceTree, wxRight, 0); - c->top.SameAs (m_editorToolBar, wxBottom, 0); - c->right.SameAs (m_editorFrame, wxRight, 0); - c->bottom.SameAs (m_editorControlList, wxTop, 0); - c->width.Unconstrained(); - c->height.Unconstrained(); - m_editorPanel->SetConstraints(c); - - // Constraints for control list (bottom window) - c = new wxLayoutConstraints; - c->left.SameAs (m_editorFrame, wxLeft, 0); - c->right.SameAs (m_editorFrame, wxRight, 0); - c->bottom.SameAs (m_editorFrame, wxBottom, 0); - c->width.Unconstrained(); -#if defined(__WXGTK__) || defined(__WXMOTIF__) - c->height.Absolute(120); -#else - c->height.Absolute(60); -#endif - - m_editorControlList->SetConstraints(c); - - m_editorFrame->SetAutoLayout(TRUE); - - UpdateResourceList(); - - m_editorFrame->Show(TRUE); - return TRUE; - } - else - { - wxFrame *fr = m_editorFrame; - if (m_editorFrame->Close()) - { - m_editorFrame = NULL; - m_editorPanel = NULL; - } - } - return TRUE; -} - -void wxResourceManager::SetFrameTitle(const wxString& filename) -{ - if (m_editorFrame) - { - if (filename == wxString("")) - m_editorFrame->SetTitle("wxWindows Dialog Editor - untitled"); - else - { - wxString str("wxWindows Dialog Editor - "); - wxString str2(wxFileNameFromPath(WXSTRINGCAST filename)); - str += str2; - m_editorFrame->SetTitle(str); - } - } -} - -bool wxResourceManager::Save() -{ - if (m_currentFilename == wxString("")) - return SaveAs(); - else - return Save(m_currentFilename); -} - -bool wxResourceManager::Save(const wxString& filename) -{ - // Ensure all visible windows are saved to their resources - m_currentFilename = filename; - SetFrameTitle(m_currentFilename); - InstantiateAllResourcesFromWindows(); - if (m_resourceTable.Save(filename)) - { - m_symbolTable.WriteIncludeFile(m_symbolFilename); - Modify(FALSE); - return TRUE; - } - else - return FALSE; -} - -bool wxResourceManager::SaveAs() -{ - wxString s(wxFileSelector("Save resource file", wxPathOnly(WXSTRINGCAST m_currentFilename), wxFileNameFromPath(WXSTRINGCAST m_currentFilename), - "wxr", "*.wxr", wxSAVE | wxOVERWRITE_PROMPT, wxTheApp->GetTopWindow())); - - if (s.IsNull() || s == "") - return FALSE; - - m_currentFilename = s; - wxStripExtension(m_currentFilename); - m_currentFilename += ".wxr"; - - // Construct include filename from this file - m_symbolFilename = m_currentFilename; - - wxStripExtension(m_symbolFilename); - m_symbolFilename += ".h"; - - Save(m_currentFilename); - return TRUE; -} - -bool wxResourceManager::SaveIfModified() -{ - if (Modified()) - return Save(); - else return TRUE; -} - -bool wxResourceManager::Load(const wxString& filename) -{ - return New(TRUE, filename); -} - -bool wxResourceManager::New(bool loadFromFile, const wxString& filename) -{ - if (!Clear(TRUE, FALSE)) - return FALSE; - - m_symbolTable.AddStandardSymbols(); - - if (loadFromFile) - { - wxString str = filename; - if (str == wxString("")) - { - wxString f(wxFileSelector("Open resource file", NULL, NULL, "wxr", "*.wxr", 0, wxTheApp->GetTopWindow())); - if (!f.IsNull() && f != "") - str = f; - else - return FALSE; - } - - if (!m_resourceTable.ParseResourceFile(WXSTRINGCAST str)) - { - wxMessageBox("Could not read file.", "Resource file load error", wxOK | wxICON_EXCLAMATION); - return FALSE; - } - m_currentFilename = str; - - SetFrameTitle(m_currentFilename); - - UpdateResourceList(); - - // Construct include filename from this file - m_symbolFilename = m_currentFilename; - - wxStripExtension(m_symbolFilename); - m_symbolFilename += ".h"; - - if (!m_symbolTable.ReadIncludeFile(m_symbolFilename)) - { - wxString str("Could not find include file "); - str += m_symbolFilename; - str += ".\nDialog Editor maintains a header file containing id symbols to be used in the application.\n"; - str += "The next time this .wxr file is saved, a header file will be saved also."; - wxMessageBox(str, "Dialog Editor Warning", wxOK ); - - m_symbolIdCounter = 99; - } - else - { - // Set the id counter to the last known id - m_symbolIdCounter = m_symbolTable.FindHighestId(); - } - - // Now check in case some (or all) resources don't have resource ids, or they - // don't match the .h file, or something of that nature. - bool altered = RepairResourceIds(); - if (altered) - { - wxMessageBox("Some resources have had new identifiers associated with them, since they were missing.", - "Dialog Editor Warning", wxOK ); - Modify(TRUE); - } - else - Modify(FALSE); - - return TRUE; - } - else - { - SetFrameTitle(""); - m_currentFilename = ""; - } - Modify(FALSE); - - return TRUE; -} - -bool wxResourceManager::Clear(bool WXUNUSED(deleteWindows), bool force) -{ - if (!force && Modified()) - { - int ans = wxMessageBox("Save modified resource file?", "Dialog Editor", wxYES_NO | wxCANCEL); - if (ans == wxCANCEL) - return FALSE; - if (ans == wxYES) - if (!SaveIfModified()) - return FALSE; - if (ans == wxNO) - Modify(FALSE); - } - - ClearCurrentDialog(); - DisassociateWindows(); - - m_symbolTable.Clear(); - m_resourceTable.ClearTable(); - UpdateResourceList(); - - return TRUE; -} - -bool wxResourceManager::DisassociateWindows() -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - DisassociateResource(res); - } - - return TRUE; -} - -void wxResourceManager::AssociateResource(wxItemResource *resource, wxWindow *win) -{ - if (!m_resourceAssociations.Get((long)resource)) - m_resourceAssociations.Put((long)resource, win); - - wxNode *node = resource->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - wxWindow *childWindow = (wxWindow *)m_resourceAssociations.Get((long)child); - if (!childWindow) - childWindow = win->FindWindow(child->GetName()); - if (childWindow) - AssociateResource(child, childWindow); - else - { - char buf[200]; - sprintf(buf, "AssociateResource: cannot find child window %s", child->GetName() ? (const char*) child->GetName() : "(unnamed)"); - wxMessageBox(buf, "Dialog Editor problem", wxOK); - } - - node = node->Next(); - } -} - -bool wxResourceManager::DisassociateResource(wxItemResource *resource) -{ - wxWindow *win = FindWindowForResource(resource); - if (!win) - return FALSE; - - // Disassociate children of window - wxNode *node = win->GetChildren().First(); - while (node) - { - wxWindow *child = (wxWindow *)node->Data(); - if (child->IsKindOf(CLASSINFO(wxControl))) - DisassociateResource(child); - node = node->Next(); - } - - RemoveSelection(win); - m_resourceAssociations.Delete((long)resource); - return TRUE; -} - -bool wxResourceManager::DisassociateResource(wxWindow *win) -{ - wxItemResource *res = FindResourceForWindow(win); - if (res) - return DisassociateResource(res); - else - return FALSE; -} - -// Saves the window info into the resource, and deletes the -// handler. Doesn't actually disassociate the window from -// the resources. Replaces OnClose. -bool wxResourceManager::SaveInfoAndDeleteHandler(wxWindow* win) -{ - wxItemResource *res = FindResourceForWindow(win); - - if (win->IsKindOf(CLASSINFO(wxPanel))) - { - wxResourceEditorDialogHandler* handler = (wxResourceEditorDialogHandler*) win->GetEventHandler(); - win->PopEventHandler(); - - // Now reset all child event handlers - wxNode *node = win->GetChildren().First(); - while ( node ) - { - wxWindow *child = (wxWindow *)node->Data(); - wxEvtHandler *childHandler = child->GetEventHandler(); - if ( child->IsKindOf(CLASSINFO(wxControl)) && childHandler != child ) - { - child->PopEventHandler(TRUE); - } - node = node->Next(); - } - delete handler; - } - else - { - win->PopEventHandler(TRUE); - } - - // Save the information - InstantiateResourceFromWindow(res, win, TRUE); - -// DisassociateResource(win); - - return TRUE; -} - -// Destroys the window. If this is the 'current' panel, NULLs the -// variable. -bool wxResourceManager::DeleteWindow(wxWindow* win) -{ - bool clearDisplay = FALSE; - if (m_editorPanel->m_childWindow == win) - { - m_editorPanel->m_childWindow = NULL; - clearDisplay = TRUE; - } - - win->Destroy(); - - if (clearDisplay) - m_editorPanel->Clear(); - - return TRUE; -} - -wxItemResource *wxResourceManager::FindResourceForWindow(wxWindow *win) -{ - m_resourceAssociations.BeginFind(); - wxNode *node; - while ((node = m_resourceAssociations.Next())) - { - wxWindow *w = (wxWindow *)node->Data(); - if (w == win) - { - return (wxItemResource *)node->GetKeyInteger(); - } - } - return NULL; -} - -wxWindow *wxResourceManager::FindWindowForResource(wxItemResource *resource) -{ - return (wxWindow *)m_resourceAssociations.Get((long)resource); -} - - -void wxResourceManager::MakeUniqueName(char *prefix, char *buf) -{ - while (TRUE) - { - sprintf(buf, "%s%d", prefix, m_nameCounter); - m_nameCounter ++; - - if (!m_resourceTable.FindResource(buf)) - return; - } -} - -wxFrame *wxResourceManager::OnCreateEditorFrame(const char *title) -{ - /* - int frameWidth = 420; - int frameHeight = 300; - */ - - wxResourceEditorFrame *frame = new wxResourceEditorFrame(this, NULL, title, - wxPoint(m_resourceEditorWindowSize.x, m_resourceEditorWindowSize.y), - wxSize(m_resourceEditorWindowSize.width, m_resourceEditorWindowSize.height), - wxDEFAULT_FRAME_STYLE); - - frame->CreateStatusBar(1); - - frame->SetAutoLayout(TRUE); -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("DIALOGEDICON")); -#endif - return frame; -} - -wxMenuBar *wxResourceManager::OnCreateEditorMenuBar(wxFrame *WXUNUSED(parent)) -{ - wxMenuBar *menuBar = new wxMenuBar; - - wxMenu *fileMenu = new wxMenu; - fileMenu->Append(RESED_NEW_DIALOG, "New &dialog", "Create a new dialog"); - fileMenu->AppendSeparator(); - fileMenu->Append(wxID_NEW, "&New project", "Clear the current project"); - fileMenu->Append(wxID_OPEN, "&Open...", "Load a resource file"); - fileMenu->Append(wxID_SAVE, "&Save", "Save a resource file"); - fileMenu->Append(wxID_SAVEAS, "Save &As...", "Save a resource file as..."); - fileMenu->Append(RESED_CLEAR, "&Clear", "Clear current resources"); - fileMenu->AppendSeparator(); - fileMenu->Append(wxID_EXIT, "E&xit", "Exit resource editor"); - - wxMenu *editMenu = new wxMenu; - editMenu->Append(RESED_TEST, "&Test Dialog", "Test dialog"); - editMenu->Append(RESED_RECREATE, "&Recreate", "Recreate the selected resource(s)"); - editMenu->Append(RESED_DELETE, "&Delete", "Delete the selected resource(s)"); - - wxMenu *helpMenu = new wxMenu; - helpMenu->Append(RESED_CONTENTS, "&Help topics", "Invokes the on-line help"); - helpMenu->AppendSeparator(); - helpMenu->Append(wxID_ABOUT, "&About", "About wxWindows Dialog Editor"); - - menuBar->Append(fileMenu, "&File"); - menuBar->Append(editMenu, "&Edit"); - menuBar->Append(helpMenu, "&Help"); - - return menuBar; -} - -wxResourceEditorScrolledWindow *wxResourceManager::OnCreateEditorPanel(wxFrame *parent) -{ - wxResourceEditorScrolledWindow *panel = new wxResourceEditorScrolledWindow(parent, wxDefaultPosition, wxDefaultSize, -// wxSUNKEN_BORDER|wxCLIP_CHILDREN); -#ifdef __WXMOTIF__ - wxBORDER); -#else - wxSUNKEN_BORDER); -#endif - - panel->SetScrollbars(10, 10, 100, 100); - - return panel; -} - -wxToolBar *wxResourceManager::OnCreateToolBar(wxFrame *parent) -{ - // Load palette bitmaps -#ifdef __WXMSW__ - wxBitmap ToolbarLoadBitmap("LOADTOOL"); - wxBitmap ToolbarSaveBitmap("SAVETOOL"); - wxBitmap ToolbarNewBitmap("NEWTOOL"); - wxBitmap ToolbarVertBitmap("VERTTOOL"); - wxBitmap ToolbarAlignTBitmap("ALIGNTTOOL"); - wxBitmap ToolbarAlignBBitmap("ALIGNBTOOL"); - wxBitmap ToolbarHorizBitmap("HORIZTOOL"); - wxBitmap ToolbarAlignLBitmap("ALIGNLTOOL"); - wxBitmap ToolbarAlignRBitmap("ALIGNRTOOL"); - wxBitmap ToolbarCopySizeBitmap("COPYSIZETOOL"); - wxBitmap ToolbarToBackBitmap("TOBACKTOOL"); - wxBitmap ToolbarToFrontBitmap("TOFRONTTOOL"); - wxBitmap ToolbarHelpBitmap("HELPTOOL"); -#endif -#if defined(__WXGTK__) || defined(__WXMOTIF__) - wxBitmap ToolbarLoadBitmap( load_xpm ); - wxBitmap ToolbarSaveBitmap( save_xpm); - wxBitmap ToolbarNewBitmap( new_xpm ); - wxBitmap ToolbarVertBitmap( vert_xpm ); - wxBitmap ToolbarAlignTBitmap( alignt_xpm ); - wxBitmap ToolbarAlignBBitmap( alignb_xpm ); - wxBitmap ToolbarHorizBitmap( horiz_xpm ); - wxBitmap ToolbarAlignLBitmap( alignl_xpm ); - wxBitmap ToolbarAlignRBitmap( alignr_xpm ); - wxBitmap ToolbarCopySizeBitmap( copysize_xpm ); - wxBitmap ToolbarToBackBitmap( toback_xpm ); - wxBitmap ToolbarToFrontBitmap( tofront_xpm ); - wxBitmap ToolbarHelpBitmap( help_xpm ); -#endif - - // Create the toolbar - EditorToolBar *toolbar = new EditorToolBar(parent, wxPoint(0, 0), wxSize(-1, -1), wxNO_BORDER|wxTB_HORIZONTAL); - toolbar->SetMargins(2, 2); - -#ifdef __WXMSW__ - int width = 24; - int dx = 2; - int gap = 6; -#else - int width = 24; // ToolbarLoadBitmap->GetWidth(); ??? - int dx = 2; - int gap = 6; -#endif - int currentX = gap; - toolbar->AddSeparator(); - toolbar->AddTool(TOOLBAR_NEW, ToolbarNewBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "New dialog"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_LOAD_FILE, ToolbarLoadBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Load"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_SAVE_FILE, ToolbarSaveBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Save"); - currentX += width + dx + gap; - toolbar->AddSeparator(); - toolbar->AddTool(TOOLBAR_FORMAT_HORIZ, ToolbarVertBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Horizontal align"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_FORMAT_VERT_TOP_ALIGN, ToolbarAlignTBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Top align"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_FORMAT_VERT_BOT_ALIGN, ToolbarAlignBBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Bottom align"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_FORMAT_VERT, ToolbarHorizBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Vertical align"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN, ToolbarAlignLBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Left align"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN, ToolbarAlignRBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Right align"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_COPY_SIZE, ToolbarCopySizeBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Copy size"); - currentX += width + dx + gap; - toolbar->AddSeparator(); - toolbar->AddTool(TOOLBAR_TO_FRONT, ToolbarToFrontBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "To front"); - currentX += width + dx; - toolbar->AddTool(TOOLBAR_TO_BACK, ToolbarToBackBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "To back"); - currentX += width + dx + gap; - - toolbar->AddSeparator(); - toolbar->AddTool(TOOLBAR_HELP, ToolbarHelpBitmap, wxNullBitmap, - FALSE, currentX, -1, NULL, "Help"); - currentX += width + dx; - - toolbar->Realize(); - - return toolbar; -} - -void wxResourceManager::UpdateResourceList() -{ - if (!m_editorResourceTree) - return; - - m_editorResourceTree->SetInvalid(TRUE); - m_editorResourceTree->DeleteAllItems(); - - long id = m_editorResourceTree->AddRoot("Dialogs", 1, 2); - - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - wxString resType(res->GetType()); - if (resType == "wxDialog" || resType == "wxDialogBox" || resType == "wxPanel" || resType == "wxBitmap") - { - AddItemsRecursively(id, res); - } - } - m_editorResourceTree->Expand(id); - m_editorResourceTree->SetInvalid(FALSE); -} - -void wxResourceManager::AddItemsRecursively(long parent, wxItemResource *resource) -{ - wxString theString(""); - theString = resource->GetName(); - - int imageId = 0; - wxString resType(resource->GetType()); - if (resType == "wxDialog" || resType == "wxDialogBox" || resType == "wxPanel") - imageId = 0; - else - imageId = 3; - - long id = m_editorResourceTree->AppendItem(parent, theString, imageId ); - - m_editorResourceTree->SetItemData(id, new wxResourceTreeData(resource)); - - if (strcmp(resource->GetType(), "wxBitmap") != 0) - { - wxNode *node = resource->GetChildren().First(); - while (node) - { - wxItemResource *res = (wxItemResource *)node->Data(); - AddItemsRecursively(id, res); - node = node->Next(); - } - } -// m_editorResourceTree->ExpandItem(id, wxTREE_EXPAND_EXPAND); -} - -bool wxResourceManager::EditSelectedResource() -{ - int sel = m_editorResourceTree->GetSelection(); - if (sel != 0) - { - wxResourceTreeData *data = (wxResourceTreeData *)m_editorResourceTree->GetItemData(sel); - wxItemResource *res = data->GetResource(); - return Edit(res); - } - return FALSE; -} - -bool wxResourceManager::Edit(wxItemResource *res) -{ - ClearCurrentDialog(); - - wxString resType(res->GetType()); - wxPanel *panel = (wxPanel *)FindWindowForResource(res); - - if (panel) - { - wxMessageBox("Should not find panel in wxResourceManager::Edit"); - return FALSE; - } - else - { -// long style = res->GetStyle(); -// res->SetStyle(style|wxRAISED_BORDER); - panel = new wxPanel; - wxResourceEditorDialogHandler *handler = new wxResourceEditorDialogHandler(panel, res, panel->GetEventHandler(), - this); - - panel->LoadFromResource(m_editorPanel, res->GetName(), &m_resourceTable); - - panel->PushEventHandler(handler); - -// res->SetStyle(style); - handler->AddChildHandlers(); // Add event handlers for all controls - AssociateResource(res, panel); - - m_editorPanel->m_childWindow = panel; - panel->Move(m_editorPanel->GetMarginX(), m_editorPanel->GetMarginY()); - panel->Show(TRUE); - panel->Refresh(); - - wxClientDC dc(m_editorPanel); - m_editorPanel->DrawTitle(dc); - } - return FALSE; -} - -bool wxResourceManager::CreateNewPanel() -{ - ClearCurrentDialog(); - - char buf[256]; - MakeUniqueName("dialog", buf); - - wxItemResource *resource = new wxItemResource; - resource->SetType("wxDialog"); - resource->SetName(buf); - resource->SetTitle(buf); - resource->SetResourceStyle(wxRESOURCE_USE_DEFAULTS); - resource->SetResourceStyle(wxRESOURCE_DIALOG_UNITS); - - wxString newIdName; - int id = GenerateWindowId("ID_DIALOG", newIdName); - resource->SetId(id); - - // This is now guaranteed to be unique, so just add to symbol table - m_symbolTable.AddSymbol(newIdName, id); - - m_resourceTable.AddResource(resource); - - wxSize size(400, 300); - - wxPanel *panel = new wxPanel(m_editorPanel, -1, - wxPoint(m_editorPanel->GetMarginX(), m_editorPanel->GetMarginY()), - size, wxRAISED_BORDER|wxDEFAULT_DIALOG_STYLE, buf); - m_editorPanel->m_childWindow = panel; - - resource->SetStyle(panel->GetWindowStyleFlag()); - - // Store dialog units in resource - size = panel->ConvertPixelsToDialog(size); - - resource->SetSize(10, 10, size.x, size.y); - - // For editing in situ we will need to use the hash table to ensure - // we don't dereference invalid pointers. -// resourceWindowTable.Put((long)resource, panel); - - wxResourceEditorDialogHandler *handler = new wxResourceEditorDialogHandler(panel, resource, panel->GetEventHandler(), - this); - panel->PushEventHandler(handler); - - AssociateResource(resource, panel); - UpdateResourceList(); - - Modify(TRUE); - m_editorPanel->m_childWindow->Refresh(); - -// panel->Refresh(); - - wxClientDC dc(m_editorPanel); - m_editorPanel->DrawTitle(dc); - - return TRUE; -} - -bool wxResourceManager::CreatePanelItem(wxItemResource *panelResource, wxPanel *panel, char *iType, int x, int y, bool isBitmap) -{ - char buf[256]; - if (!panel->IsKindOf(CLASSINFO(wxPanel)) && !panel->IsKindOf(CLASSINFO(wxDialog))) - return FALSE; - - Modify(TRUE); - - wxItemResource *res = new wxItemResource; - wxControl *newItem = NULL; - - if ((panelResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0) - { - wxPoint pt = panel->ConvertPixelsToDialog(wxPoint(x, y)); - res->SetSize(pt.x, pt.y, -1, -1); - } - else res->SetSize(x, y, -1, -1); - - res->SetType(iType); - - wxString prefix; - - wxString itemType(iType); - - if (itemType == "wxButton") - { - prefix = "ID_BUTTON"; - MakeUniqueName("button", buf); - res->SetName(buf); - if (isBitmap) - newItem = new wxBitmapButton(panel, -1, * m_bitmapImage, wxPoint(x, y), wxSize(-1, -1), 0, wxDefaultValidator, buf); - else - newItem = new wxButton(panel, -1, "Button", wxPoint(x, y), wxSize(-1, -1), 0, wxDefaultValidator, buf); - } - if (itemType == "wxBitmapButton") - { - prefix = "ID_BITMAPBUTTON"; - MakeUniqueName("button", buf); - res->SetName(buf); - newItem = new wxBitmapButton(panel, -1, * m_bitmapImage, wxPoint(x, y), wxSize(-1, -1), 0, wxDefaultValidator, buf); - } - else if (itemType == "wxMessage" || itemType == "wxStaticText") - { - prefix = "ID_STATIC"; - MakeUniqueName("statictext", buf); - res->SetName(buf); - if (isBitmap) - newItem = new wxStaticBitmap(panel, -1, * m_bitmapImage, wxPoint(x, y), wxSize(0, 0), 0, buf); - else - newItem = new wxStaticText(panel, -1, "Static", wxPoint(x, y), wxSize(-1, -1), 0, buf); - } - else if (itemType == "wxStaticBitmap") - { - prefix = "ID_STATICBITMAP"; - MakeUniqueName("static", buf); - res->SetName(buf); - newItem = new wxStaticBitmap(panel, -1, * m_bitmapImage, wxPoint(x, y), wxSize(-1, -1), 0, buf); - } - else if (itemType == "wxCheckBox") - { - prefix = "ID_CHECKBOX"; - MakeUniqueName("checkbox", buf); - res->SetName(buf); - newItem = new wxCheckBox(panel, -1, "Checkbox", wxPoint(x, y), wxSize(-1, -1), 0, wxDefaultValidator, buf); - } - else if (itemType == "wxListBox") - { - prefix = "ID_LISTBOX"; - MakeUniqueName("listbox", buf); - res->SetName(buf); - newItem = new wxListBox(panel, -1, wxPoint(x, y), wxSize(-1, -1), 0, NULL, 0, wxDefaultValidator, buf); - } - else if (itemType == "wxRadioBox") - { - prefix = "ID_RADIOBOX"; - MakeUniqueName("radiobox", buf); - res->SetName(buf); - wxString names[] = { "One", "Two" }; - newItem = new wxRadioBox(panel, -1, "Radiobox", wxPoint(x, y), wxSize(-1, -1), 2, names, 2, - wxHORIZONTAL, wxDefaultValidator, buf); - res->SetStringValues(wxStringList("One", "Two", NULL)); - } - else if (itemType == "wxRadioButton") - { - prefix = "ID_RADIOBUTTON"; - MakeUniqueName("radiobutton", buf); - res->SetName(buf); - wxString names[] = { "One", "Two" }; - newItem = new wxRadioButton(panel, -1, "Radiobutton", wxPoint(x, y), wxSize(-1, -1), - 0, wxDefaultValidator, buf); - } - else if (itemType == "wxChoice") - { - prefix = "ID_CHOICE"; - MakeUniqueName("choice", buf); - res->SetName(buf); - newItem = new wxChoice(panel, -1, wxPoint(x, y), wxSize(-1, -1), 0, NULL, 0, wxDefaultValidator, buf); - } - else if (itemType == "wxComboBox") - { - prefix = "ID_COMBOBOX"; - MakeUniqueName("combobox", buf); - res->SetName(buf); - newItem = new wxComboBox(panel, -1, "", wxPoint(x, y), wxSize(-1, -1), 0, NULL, wxCB_DROPDOWN, wxDefaultValidator, buf); - } - else if (itemType == "wxGroupBox" || itemType == "wxStaticBox") - { - prefix = "ID_STATICBOX"; - MakeUniqueName("staticbox", buf); - res->SetName(buf); - newItem = new wxStaticBox(panel, -1, "Static", wxPoint(x, y), wxSize(200, 200), 0, buf); - } - else if (itemType == "wxGauge") - { - prefix = "ID_GAUGE"; - MakeUniqueName("gauge", buf); - res->SetName(buf); - newItem = new wxGauge(panel, -1, 10, wxPoint(x, y), wxSize(80, 30), wxHORIZONTAL, wxDefaultValidator, buf); - } - else if (itemType == "wxSlider") - { - prefix = "ID_SLIDER"; - MakeUniqueName("slider", buf); - res->SetName(buf); - newItem = new wxSlider(panel, -1, 1, 1, 10, wxPoint(x, y), wxSize(120, -1), wxHORIZONTAL, wxDefaultValidator, buf); - } - else if (itemType == "wxText" || itemType == "wxTextCtrl (single-line)") - { - prefix = "ID_TEXTCTRL"; - MakeUniqueName("textctrl", buf); - res->SetName(buf); - res->SetType("wxTextCtrl"); - newItem = new wxTextCtrl(panel, -1, "", wxPoint(x, y), wxSize(120, -1), 0, wxDefaultValidator, buf); - } - else if (itemType == "wxMultiText" || itemType == "wxTextCtrl (multi-line)") - { - prefix = "ID_TEXTCTRL"; - MakeUniqueName("textctrl", buf); - res->SetName(buf); - res->SetType("wxTextCtrl"); - newItem = new wxTextCtrl(panel, -1, "", wxPoint(x, y), wxSize(120, 100), wxTE_MULTILINE, wxDefaultValidator, buf); - } - else if (itemType == "wxScrollBar") - { - prefix = "ID_SCROLLBAR"; - MakeUniqueName("scrollbar", buf); - res->SetName(buf); - newItem = new wxScrollBar(panel, -1, wxPoint(x, y), wxSize(140, -1), wxHORIZONTAL, wxDefaultValidator, buf); - } - if (!newItem) - return FALSE; - - int actualW, actualH; - newItem->GetSize(&actualW, &actualH); - wxSize actualSize(actualW, actualH); - - if ((panelResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0) - { - actualSize = panel->ConvertPixelsToDialog(actualSize); - } - res->SetSize(res->GetX(), res->GetY(), actualSize.x, actualSize.y); - - wxString newIdName; - int id = GenerateWindowId(prefix, newIdName); - res->SetId(id); - - // This is now guaranteed to be unique, so just add to symbol table - m_symbolTable.AddSymbol(newIdName, id); - - newItem->PushEventHandler(new wxResourceEditorControlHandler(newItem, newItem)); - - res->SetStyle(newItem->GetWindowStyleFlag()); - AssociateResource(res, newItem); - panelResource->GetChildren().Append(res); - - UpdateResourceList(); - - return TRUE; -} - -void wxResourceManager::ClearCurrentDialog() -{ - if (m_editorPanel->m_childWindow) - { - SaveInfoAndDeleteHandler(m_editorPanel->m_childWindow); - DisassociateResource(m_editorPanel->m_childWindow); - DeleteWindow(m_editorPanel->m_childWindow); - m_editorPanel->m_childWindow = NULL; - m_editorPanel->Clear(); - } -} - -bool wxResourceManager::TestCurrentDialog(wxWindow* parent) -{ - if (m_editorPanel->m_childWindow) - { - wxItemResource* item = FindResourceForWindow(m_editorPanel->m_childWindow); - if (!item) - return FALSE; - - // Make sure the resources are up-to-date w.r.t. the window - InstantiateResourceFromWindow(item, m_editorPanel->m_childWindow, TRUE); - - wxDialog* dialog = new wxDialog; - bool success = FALSE; - if (dialog->LoadFromResource(parent, item->GetName(), & m_resourceTable)) - { - dialog->Centre(); - dialog->ShowModal(); - success = TRUE; - } - return success; - } - return FALSE; -} - -// Find the first dialog or panel for which -// there is a selected panel item. -wxWindow *wxResourceManager::FindParentOfSelection() -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - wxWindow *win = FindWindowForResource(res); - if (win) - { - wxNode *node1 = win->GetChildren().First(); - while (node1) - { - wxControl *item = (wxControl *)node1->Data(); - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - if (item->IsKindOf(CLASSINFO(wxControl)) && childHandler->IsSelected()) - return win; - node1 = node1->Next(); - } - } - } - return NULL; -} - -// Format the panel items according to 'flag' -void wxResourceManager::AlignItems(int flag) -{ - wxWindow *win = FindParentOfSelection(); - if (!win) - return; - - wxNode *node = GetSelections().First(); - if (!node) - return; - - wxControl *firstSelection = (wxControl *)node->Data(); - if (firstSelection->GetParent() != win) - return; - - int firstX, firstY; - int firstW, firstH; - firstSelection->GetPosition(&firstX, &firstY); - firstSelection->GetSize(&firstW, &firstH); - int centreX = (int)(firstX + (firstW / 2)); - int centreY = (int)(firstY + (firstH / 2)); - - while ((node = node->Next())) - { - wxControl *item = (wxControl *)node->Data(); - if (item->GetParent() == win) - { - int x, y, w, h; - item->GetPosition(&x, &y); - item->GetSize(&w, &h); - - int newX, newY; - - switch (flag) - { - case TOOLBAR_FORMAT_HORIZ: - { - newX = x; - newY = (int)(centreY - (h/2.0)); - break; - } - case TOOLBAR_FORMAT_VERT: - { - newX = (int)(centreX - (w/2.0)); - newY = y; - break; - } - case TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN: - { - newX = firstX; - newY = y; - break; - } - case TOOLBAR_FORMAT_VERT_TOP_ALIGN: - { - newX = x; - newY = firstY; - break; - } - case TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN: - { - newX = firstX + firstW - w; - newY = y; - break; - } - case TOOLBAR_FORMAT_VERT_BOT_ALIGN: - { - newX = x; - newY = firstY + firstH - h; - break; - } - default: - newX = x; newY = y; - break; - } - - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item); - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item->GetParent()); - - item->SetSize(newX, newY, w, h); - - // Also update the associated resource - // We need to convert to dialog units if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = item->GetParent()->ConvertPixelsToDialog(wxPoint(newX, newY)); - newX = pt.x; newY = pt.y; - wxSize sz = item->GetParent()->ConvertPixelsToDialog(wxSize(w, h)); - w = sz.x; h = sz.y; - } - resource->SetSize(newX, newY, w, h); - } - } - win->Refresh(); -} - -// Copy the first image's size to subsequent images -void wxResourceManager::CopySize() -{ - wxWindow *win = FindParentOfSelection(); - if (!win) - return; - - wxNode *node = GetSelections().First(); - if (!node) - return; - - wxControl *firstSelection = (wxControl *)node->Data(); - if (firstSelection->GetParent() != win) - return; - - int firstX, firstY; - int firstW, firstH; - firstSelection->GetPosition(&firstX, &firstY); - firstSelection->GetSize(&firstW, &firstH); - - while ((node = node->Next())) - { - wxControl *item = (wxControl *)node->Data(); - if (item->GetParent() == win) - { - item->SetSize(-1, -1, firstW, firstH); - - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item); - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(item->GetParent()); - - // Also update the associated resource - // We need to convert to dialog units if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxSize sz = item->GetParent()->ConvertPixelsToDialog(wxSize(firstW, firstH)); - firstW = sz.x; firstH = sz.y; - } - resource->SetSize(resource->GetX(), resource->GetY(), firstW, firstH); - - } - } - win->Refresh(); -} - -void wxResourceManager::ToBackOrFront(bool toBack) -{ - wxWindow *win = FindParentOfSelection(); - if (!win) - return; - wxItemResource *winResource = FindResourceForWindow(win); - - wxNode *node = GetSelections().First(); - while (node) - { - wxControl *item = (wxControl *)node->Data(); - wxItemResource *itemResource = FindResourceForWindow(item); - if (item->GetParent() == win) - { - win->GetChildren().DeleteObject(item); - if (winResource) - winResource->GetChildren().DeleteObject(itemResource); - if (toBack) - { - win->GetChildren().Insert(item); - if (winResource) - winResource->GetChildren().Insert(itemResource); - } - else - { - win->GetChildren().Append(item); - if (winResource) - winResource->GetChildren().Append(itemResource); - } - } - node = node->Next(); - } -// win->Refresh(); -} - -void wxResourceManager::AddSelection(wxWindow *win) -{ - if (!m_selections.Member(win)) - m_selections.Append(win); -} - -void wxResourceManager::RemoveSelection(wxWindow *win) -{ - m_selections.DeleteObject(win); -} - -// Need to search through resource table removing this from -// any resource which has this as a parent. -bool wxResourceManager::RemoveResourceFromParent(wxItemResource *res) -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *thisRes = (wxItemResource *)node->Data(); - if (thisRes->GetChildren().Member(res)) - { - thisRes->GetChildren().DeleteObject(res); - return TRUE; - } - } - return FALSE; -} - -bool wxResourceManager::DeleteResource(wxItemResource *res) -{ - if (!res) - return FALSE; - - RemoveResourceFromParent(res); - - wxNode *node = res->GetChildren().First(); - while (node) - { - wxNode *next = node->Next(); - wxItemResource *child = (wxItemResource *)node->Data(); - DeleteResource(child); - node = next; - } - - // If this is a button or message resource, delete the - // associate bitmap resource if not being used. - wxString resType(res->GetType()); - -/* shouldn't have to do this now bitmaps are ref-counted - if ((resType == "wxMessage" || resType == "wxStaticBitmap" || resType == "wxButton" || resType == "wxBitmapButton") && res->GetValue4()) - { - PossiblyDeleteBitmapResource(res->GetValue4()); - } -*/ - - // Remove symbol from table if appropriate - if (!IsSymbolUsed(res, res->GetId())) - { - m_symbolTable.RemoveSymbol(res->GetId()); - } - - m_resourceTable.Delete(res->GetName()); - delete res; - Modify(TRUE); - return TRUE; -} - -bool wxResourceManager::DeleteResource(wxWindow *win) -{ - if (win->IsKindOf(CLASSINFO(wxControl))) - { - // Deselect and refresh window in case we leave selection - // handles behind - wxControl *item = (wxControl *)win; - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - if (childHandler->IsSelected()) - { - RemoveSelection(item); - childHandler->SelectItem(FALSE); -#ifndef __WXGTK__ - item->GetParent()->Refresh(); -#endif - } - } - - wxItemResource *res = FindResourceForWindow(win); - - DisassociateResource(res); - DeleteResource(res); - UpdateResourceList(); - - return TRUE; -} - -// Will eventually have bitmap type information, for different -// kinds of bitmap. -wxString wxResourceManager::AddBitmapResource(const wxString& filename) -{ - wxItemResource *resource = FindBitmapResourceByFilename(filename); - if (!resource) - { - char buf[256]; - MakeUniqueName("bitmap", buf); - resource = new wxItemResource; - resource->SetType("wxBitmap"); - resource->SetName(buf); - - // A bitmap resource has one or more children, specifying - // alternative bitmaps. - wxItemResource *child = new wxItemResource; - child->SetType("wxBitmap"); - child->SetName(filename); - child->SetValue1(wxBITMAP_TYPE_BMP); - child->SetValue2(RESOURCE_PLATFORM_ANY); - child->SetValue3(0); // Depth - child->SetSize(0,0,0,0); - resource->GetChildren().Append(child); - - m_resourceTable.AddResource(resource); - - UpdateResourceList(); - } - if (resource) - return resource->GetName(); - else - return wxEmptyString; -} - - // Delete the bitmap resource if it isn't being used by another resource. -void wxResourceManager::PossiblyDeleteBitmapResource(const wxString& resourceName) -{ - if (!IsBitmapResourceUsed(resourceName)) - { - wxItemResource *res = m_resourceTable.FindResource(resourceName); - DeleteResource(res); - UpdateResourceList(); - } -} - -bool wxResourceManager::IsBitmapResourceUsed(const wxString& resourceName) -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - wxString resType(res->GetType()); - if (resType == "wxDialog") - { - wxNode *node1 = res->GetChildren().First(); - while (node1) - { - wxItemResource *child = (wxItemResource *)node1->Data(); - wxString childResType(child->GetType()); - - if ((childResType == "wxMessage" || childResType == "wxButton") && - child->GetValue4() && - (strcmp(child->GetValue4(), resourceName) == 0)) - return TRUE; - node1 = node1->Next(); - } - } - } - return FALSE; -} - -// Given a wxButton or wxMessage, find the corresponding bitmap filename. -wxString wxResourceManager::FindBitmapFilenameForResource(wxItemResource *resource) -{ - if (!resource || (resource->GetValue4() == "")) - return wxEmptyString; - wxItemResource *bitmapResource = m_resourceTable.FindResource(resource->GetValue4()); - if (!bitmapResource) - return wxEmptyString; - - wxNode *node = bitmapResource->GetChildren().First(); - while (node) - { - // Eventually augment this to return a bitmap of the right kind or something... - // Maybe the root of the filename remains the same, so it doesn't matter which we - // pick up. Otherwise how do we specify multiple filenames... too boring... - wxItemResource *child = (wxItemResource *)node->Data(); - return child->GetName(); - - node = node->Next(); - } - return wxEmptyString; -} - -wxItemResource *wxResourceManager::FindBitmapResourceByFilename(const wxString& filename) -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - wxString resType(res->GetType()); - if (resType == "wxBitmap") - { - wxNode *node1 = res->GetChildren().First(); - while (node1) - { - wxItemResource *child = (wxItemResource *)node1->Data(); - if (child->GetName() && (strcmp(child->GetName(), filename) == 0)) - return res; - node1 = node1->Next(); - } - } - } - return NULL; -} - -// Is this window identifier symbol in use? -// Let's assume that we can't have 2 names for the same integer id. -// Therefore we can tell by the integer id whether the symbol is -// in use. -bool wxResourceManager::IsSymbolUsed(wxItemResource* thisResource, wxWindowID id) -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - - wxString resType(res->GetType()); - if (resType == "wxDialog" || resType == "wxDialogBox" || resType == "wxPanel") - { - if ((res != thisResource) && (res->GetId() == id)) - return TRUE; - - wxNode *node1 = res->GetChildren().First(); - while (node1) - { - wxItemResource *child = (wxItemResource *)node1->Data(); - if ((child != thisResource) && (child->GetId() == id)) - return TRUE; - node1 = node1->Next(); - } - } - } - return FALSE; -} - -// Is this window identifier compatible with the given name? (i.e. -// does it already exist under a different name) -bool wxResourceManager::IsIdentifierOK(const wxString& name, wxWindowID id) -{ - if (m_symbolTable.SymbolExists(name)) - { - int foundId = m_symbolTable.GetIdForSymbol(name); - if (foundId != id) - return FALSE; - } - return TRUE; -} - -// Change all integer ids that match oldId, to newId. -// This is necessary if an id is changed for one resource - all resources -// must be changed. -void wxResourceManager::ChangeIds(int oldId, int newId) -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - - wxString resType(res->GetType()); - if (resType == "wxDialog" || resType == "wxDialogBox" || resType == "wxPanel") - { - if (res->GetId() == oldId) - res->SetId(newId); - - wxNode *node1 = res->GetChildren().First(); - while (node1) - { - wxItemResource *child = (wxItemResource *)node1->Data(); - if (child->GetId() == oldId) - child->SetId(newId); - - node1 = node1->Next(); - } - } - } -} - -// If any resource ids were missing (or their symbol was missing), -// repair them i.e. give them new ids. Returns TRUE if any resource -// needed repairing. -bool wxResourceManager::RepairResourceIds() -{ - bool repaired = FALSE; - - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - wxString resType(res->GetType()); - if (resType == "wxDialog" || resType == "wxDialogBox" || resType == "wxPanel") - { - - if ( (res->GetId() == 0) || ((res->GetId() > 0) && !m_symbolTable.IdExists(res->GetId())) ) - { - wxString newSymbolName; - int newId = GenerateWindowId("ID_DIALOG", newSymbolName) ; - - if (res->GetId() == 0) - { - res->SetId(newId); - m_symbolTable.AddSymbol(newSymbolName, newId); - } - else - { - m_symbolTable.AddSymbol(newSymbolName, res->GetId()); - } - - repaired = TRUE; - } - - wxNode *node1 = res->GetChildren().First(); - while (node1) - { - wxItemResource *child = (wxItemResource *)node1->Data(); - - if ( (child->GetId() == 0) || ((child->GetId() > 0) && !m_symbolTable.IdExists(child->GetId())) ) - { - wxString newSymbolName; - int newId = GenerateWindowId("ID_CONTROL", newSymbolName) ; - - if (child->GetId() == 0) - { - child->SetId(newId); - m_symbolTable.AddSymbol(newSymbolName, newId); - } - else - { - m_symbolTable.AddSymbol(newSymbolName, child->GetId()); - } - - repaired = TRUE; - } - - node1 = node1->Next(); - } - } - } - return repaired; -} - - - // Deletes 'win' and creates a new window from the resource that - // was associated with it. E.g. if you can't change properties on the - // fly, you'll need to delete the window and create it again. -wxWindow *wxResourceManager::RecreateWindowFromResource(wxWindow *win, wxWindowPropertyInfo *info) -{ - wxItemResource *resource = FindResourceForWindow(win); - - // Put the current window properties into the wxItemResource object - - wxWindowPropertyInfo *newInfo = NULL; - if (!info) - { - newInfo = CreatePropertyInfoForWindow(win); - info = newInfo; - } - - info->InstantiateResource(resource); - - wxWindow *newWin = NULL; - wxWindow *parent = win->GetParent(); - wxItemResource* parentResource = NULL; - if (parent) - parentResource = FindResourceForWindow(parent); - - if (win->IsKindOf(CLASSINFO(wxPanel))) - { - Edit(resource); - newWin = FindWindowForResource(resource); - } - else - { - DisassociateResource(resource); - if (win->GetEventHandler() != win) - win->PopEventHandler(TRUE); - - DeleteWindow(win); - newWin = m_resourceTable.CreateItem((wxPanel *)parent, resource, parentResource); - newWin->PushEventHandler(new wxResourceEditorControlHandler((wxControl*) newWin, (wxControl*) newWin)); - AssociateResource(resource, newWin); - UpdateResourceList(); - } - - if (info) - info->SetPropertyWindow(newWin); - - if (newInfo) - delete newInfo; - - return newWin; -} - -// Delete resource highlighted in the listbox -bool wxResourceManager::DeleteSelection() -{ - int sel = m_editorResourceTree->GetSelection(); - if (sel != 0) - { - wxResourceTreeData *data = (wxResourceTreeData *)m_editorResourceTree->GetItemData(sel); - wxItemResource *res = data->GetResource(); - wxWindow *win = FindWindowForResource(res); - if (win) - { - DeleteResource(win); - DeleteWindow(win); - UpdateResourceList(); - Modify(TRUE); - } - return TRUE; - } - - return FALSE; -} - -// Delete resource highlighted in the listbox -bool wxResourceManager::RecreateSelection() -{ - wxNode *node = GetSelections().First(); - while (node) - { - wxControl *item = (wxControl *)node->Data(); - wxResourceEditorControlHandler *childHandler = (wxResourceEditorControlHandler *)item->GetEventHandler(); - wxNode *next = node->Next(); - childHandler->SelectItem(FALSE); - - RemoveSelection(item); - - RecreateWindowFromResource(item); - - node = next; - } - return TRUE; -} - -bool wxResourceManager::EditDialog(wxDialog *WXUNUSED(dialog), wxWindow *WXUNUSED(parent)) -{ - return FALSE; -} - -// Ensures that all currently shown windows are saved to resources, -// e.g. just before writing to a .wxr file. -bool wxResourceManager::InstantiateAllResourcesFromWindows() -{ - m_resourceTable.BeginFind(); - wxNode *node; - while ((node = m_resourceTable.Next())) - { - wxItemResource *res = (wxItemResource *)node->Data(); - wxString resType(res->GetType()); - - if (resType == "wxDialog") - { - wxWindow *win = (wxWindow *)FindWindowForResource(res); - if (win) - InstantiateResourceFromWindow(res, win, TRUE); - } - else if (resType == "wxPanel") - { - wxWindow *win = (wxWindow *)FindWindowForResource(res); - if (win) - InstantiateResourceFromWindow(res, win, TRUE); - } - } - return TRUE; -} - -bool wxResourceManager::InstantiateResourceFromWindow(wxItemResource *resource, wxWindow *window, bool recurse) -{ - wxWindowPropertyInfo *info = CreatePropertyInfoForWindow(window); - info->SetResource(resource); - info->InstantiateResource(resource); - delete info; - - if (recurse) - { - wxNode *node = resource->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - wxWindow *childWindow = FindWindowForResource(child); - - if (!childWindow) - { - char buf[200]; - sprintf(buf, "Could not find window %s", (const char*) child->GetName()); - wxMessageBox(buf, "Dialog Editor problem", wxOK); - } - else - InstantiateResourceFromWindow(child, childWindow, recurse); - node = node->Next(); - } - } - - return TRUE; -} - -// Create a window information object for the give window -wxWindowPropertyInfo *wxResourceManager::CreatePropertyInfoForWindow(wxWindow *win) -{ - wxWindowPropertyInfo *info = NULL; - if (win->IsKindOf(CLASSINFO(wxScrollBar))) - { - info = new wxScrollBarPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxStaticBox))) - { - info = new wxGroupBoxPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxCheckBox))) - { - info = new wxCheckBoxPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxSlider))) - { - info = new wxSliderPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxGauge))) - { - info = new wxGaugePropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxListBox))) - { - info = new wxListBoxPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxRadioBox))) - { - info = new wxRadioBoxPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxRadioButton))) - { - info = new wxRadioButtonPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxComboBox))) - { - info = new wxComboBoxPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxChoice))) - { - info = new wxChoicePropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxBitmapButton))) - { - info = new wxBitmapButtonPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxButton))) - { - info = new wxButtonPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxStaticBitmap))) - { - info = new wxStaticBitmapPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxStaticText))) - { - info = new wxStaticTextPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxTextCtrl))) - { - info = new wxTextPropertyInfo(win); - } - else if (win->IsKindOf(CLASSINFO(wxPanel))) - { - info = new wxPanelPropertyInfo(win); - } - else - { - info = new wxWindowPropertyInfo(win); - } - return info; -} - -// Edit the given window -void wxResourceManager::EditWindow(wxWindow *win) -{ - wxWindowPropertyInfo *info = CreatePropertyInfoForWindow(win); - if (info) - { - info->SetResource(FindResourceForWindow(win)); - wxString str("Editing "); - str += win->GetClassInfo()->GetClassName(); - str += ": "; - if (win->GetName() != "") - str += win->GetName(); - else - str += "properties"; - info->Edit(NULL, str); - } -} - -// Generate a window id and a first stab at a name -int wxResourceManager::GenerateWindowId(const wxString& prefix, wxString& idName) -{ - m_symbolIdCounter ++; - while (m_symbolTable.IdExists(m_symbolIdCounter)) - m_symbolIdCounter ++; - - int nameId = m_symbolIdCounter; - - wxString str; - str.Printf("%d", nameId); - idName = prefix + str; - - while (m_symbolTable.SymbolExists(idName)) - { - nameId ++; - str.Printf("%d", nameId); - idName = prefix + str; - } - - return m_symbolIdCounter; -} - - -/* - * Resource editor frame - */ - -IMPLEMENT_CLASS(wxResourceEditorFrame, wxFrame) - -BEGIN_EVENT_TABLE(wxResourceEditorFrame, wxFrame) - EVT_MENU(wxID_NEW, wxResourceEditorFrame::OnNew) - EVT_MENU(RESED_NEW_DIALOG, wxResourceEditorFrame::OnNewDialog) - EVT_MENU(wxID_OPEN, wxResourceEditorFrame::OnOpen) - EVT_MENU(RESED_CLEAR, wxResourceEditorFrame::OnClear) - EVT_MENU(wxID_SAVE, wxResourceEditorFrame::OnSave) - EVT_MENU(wxID_SAVEAS, wxResourceEditorFrame::OnSaveAs) - EVT_MENU(wxID_EXIT, wxResourceEditorFrame::OnExit) - EVT_MENU(wxID_ABOUT, wxResourceEditorFrame::OnAbout) - EVT_MENU(RESED_CONTENTS, wxResourceEditorFrame::OnContents) - EVT_MENU(RESED_DELETE, wxResourceEditorFrame::OnDeleteSelection) - EVT_MENU(RESED_RECREATE, wxResourceEditorFrame::OnRecreateSelection) - EVT_MENU(RESED_TEST, wxResourceEditorFrame::OnTest) - EVT_CLOSE(wxResourceEditorFrame::OnCloseWindow) -END_EVENT_TABLE() - -wxResourceEditorFrame::wxResourceEditorFrame(wxResourceManager *resMan, wxFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, long style, const wxString& name): - wxFrame(parent, -1, title, pos, size, style, name) -{ - manager = resMan; -} - -wxResourceEditorFrame::~wxResourceEditorFrame() -{ -} - -void wxResourceEditorFrame::OnNew(wxCommandEvent& WXUNUSED(event)) -{ - manager->New(FALSE); -} - -void wxResourceEditorFrame::OnNewDialog(wxCommandEvent& WXUNUSED(event)) -{ - manager->CreateNewPanel(); -} - -void wxResourceEditorFrame::OnOpen(wxCommandEvent& WXUNUSED(event)) -{ - manager->New(TRUE); -} - -void wxResourceEditorFrame::OnClear(wxCommandEvent& WXUNUSED(event)) -{ - manager->Clear(TRUE, FALSE); -} - -void wxResourceEditorFrame::OnSave(wxCommandEvent& WXUNUSED(event)) -{ - manager->Save(); -} - -void wxResourceEditorFrame::OnSaveAs(wxCommandEvent& WXUNUSED(event)) -{ - manager->SaveAs(); -} - -void wxResourceEditorFrame::OnExit(wxCommandEvent& WXUNUSED(event)) -{ - manager->Clear(TRUE, FALSE) ; - this->Destroy(); -} - -void wxResourceEditorFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) -{ - char buf[300]; - sprintf(buf, "wxWindows Dialog Editor %.1f\nAuthor: Julian Smart J.Smart@ed.ac.uk\nJulian Smart (c) 1996", wxDIALOG_EDITOR_VERSION); - wxMessageBox(buf, "About Dialog Editor", wxOK|wxCENTRE); -} - -void wxResourceEditorFrame::OnTest(wxCommandEvent& WXUNUSED(event)) -{ - manager->TestCurrentDialog(this); -} - -void wxResourceEditorFrame::OnContents(wxCommandEvent& WXUNUSED(event)) -{ -#ifdef __WXMSW__ - wxBeginBusyCursor(); - manager->GetHelpController()->LoadFile(); - manager->GetHelpController()->DisplayContents(); - wxEndBusyCursor(); -#endif -} - -void wxResourceEditorFrame::OnDeleteSelection(wxCommandEvent& WXUNUSED(event)) -{ - manager->DeleteSelection(); -} - -void wxResourceEditorFrame::OnRecreateSelection(wxCommandEvent& WXUNUSED(event)) -{ - manager->RecreateSelection(); -} - -void wxResourceEditorFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (manager->Modified()) - { - if (!manager->Clear(TRUE, FALSE)) - { - event.Veto(); - return; - } - } - - if (!Iconized()) - { - int w, h; - GetSize(&w, &h); - manager->m_resourceEditorWindowSize.width = w; - manager->m_resourceEditorWindowSize.height = h; - - int x, y; - GetPosition(&x, &y); - - manager->m_resourceEditorWindowSize.x = x; - manager->m_resourceEditorWindowSize.y = y; - } - manager->SetEditorFrame(NULL); - manager->SetEditorToolBar(NULL); - - this->Destroy(); -} - -/* - * Resource editor window that contains the dialog/panel being edited - */ - -BEGIN_EVENT_TABLE(wxResourceEditorScrolledWindow, wxScrolledWindow) - EVT_PAINT(wxResourceEditorScrolledWindow::OnPaint) -END_EVENT_TABLE() - -wxResourceEditorScrolledWindow::wxResourceEditorScrolledWindow(wxWindow *parent, const wxPoint& pos, const wxSize& size, - long style): - wxScrolledWindow(parent, -1, pos, size, style) -{ - m_marginX = 10; - m_marginY = 40; - m_childWindow = NULL; - - SetBackgroundColour(* wxWHITE); -} - -wxResourceEditorScrolledWindow::~wxResourceEditorScrolledWindow() -{ -} - -void wxResourceEditorScrolledWindow::OnPaint(wxPaintEvent& WXUNUSED(event)) -{ - wxPaintDC dc(this); - - DrawTitle(dc); -} - -void wxResourceEditorScrolledWindow::DrawTitle(wxDC& dc) -{ - if (m_childWindow) - { - wxItemResource* res = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_childWindow); - if (res) - { - wxString str(res->GetTitle()); - int x, y; - ViewStart(& x, & y); - - wxFont font(10, wxSWISS, wxNORMAL, wxBOLD); - dc.SetFont(font); - dc.SetBackgroundMode(wxTRANSPARENT); - dc.SetTextForeground(wxColour(0, 0, 0)); - - long w, h; - dc.GetTextExtent(str, & w, & h); - - dc.DrawText(str, m_marginX + (- x * 10), m_marginY + (- y * 10) - h - 5); - } - } -} - -// Popup menu callback -void ObjectMenuProc(wxMenu& menu, wxCommandEvent& event) -{ - wxWindow *data = (wxWindow *)menu.GetClientData(); - if (!data) - return; - - switch (event.GetInt()) - { - case OBJECT_MENU_EDIT: - { - wxResourceManager::GetCurrentResourceManager()->EditWindow(data); - break; - } - case OBJECT_MENU_DELETE: - { - wxResourceManager::GetCurrentResourceManager()->SaveInfoAndDeleteHandler(data); - wxResourceManager::GetCurrentResourceManager()->DeleteResource(data); - wxResourceManager::GetCurrentResourceManager()->DeleteWindow(data); - break; - } - default: - break; - } -} - -/* - * Main toolbar - * - */ - -#if defined(__WXGTK__) || defined(__WXMOTIF__) // I don't dare to delete it... - -BEGIN_EVENT_TABLE(EditorToolBar, wxToolBar) -END_EVENT_TABLE() - -#else - -BEGIN_EVENT_TABLE(EditorToolBar, wxToolBar) - EVT_PAINT(EditorToolBar::OnPaint) -END_EVENT_TABLE() - -#endif - -EditorToolBar::EditorToolBar(wxFrame *frame, const wxPoint& pos, const wxSize& size, - long style): - wxToolBar(frame, -1, pos, size, style) -{ -} - -bool EditorToolBar::OnLeftClick(int toolIndex, bool WXUNUSED(toggled)) -{ - wxResourceManager *manager = wxResourceManager::GetCurrentResourceManager(); - - switch (toolIndex) - { - case TOOLBAR_LOAD_FILE: - { - manager->New(TRUE); - break; - } - case TOOLBAR_NEW: - { - manager->CreateNewPanel(); - break; - } - case TOOLBAR_SAVE_FILE: - { - manager->Save(); - break; - } - case TOOLBAR_HELP: - { -#ifdef __WXMSW__ - wxBeginBusyCursor(); - manager->GetHelpController()->LoadFile(); - manager->GetHelpController()->DisplayContents(); - wxEndBusyCursor(); -#endif - break; - } - case TOOLBAR_FORMAT_HORIZ: - { - manager->AlignItems(TOOLBAR_FORMAT_HORIZ); - break; - } - case TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN: - { - manager->AlignItems(TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN); - break; - } - case TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN: - { - manager->AlignItems(TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN); - break; - } - case TOOLBAR_FORMAT_VERT: - { - manager->AlignItems(TOOLBAR_FORMAT_VERT); - break; - } - case TOOLBAR_FORMAT_VERT_TOP_ALIGN: - { - manager->AlignItems(TOOLBAR_FORMAT_VERT_TOP_ALIGN); - break; - } - case TOOLBAR_FORMAT_VERT_BOT_ALIGN: - { - manager->AlignItems(TOOLBAR_FORMAT_VERT_BOT_ALIGN); - break; - } - case TOOLBAR_COPY_SIZE: - { - manager->CopySize(); - break; - } - case TOOLBAR_TO_BACK: - { - manager->ToBackOrFront(TRUE); - break; - } - case TOOLBAR_TO_FRONT: - { - manager->ToBackOrFront(FALSE); - break; - } - default: - break; - } - return TRUE; -} - -void EditorToolBar::OnMouseEnter(int toolIndex) -{ - wxFrame *frame = (wxFrame *)GetParent(); - - if (!frame) return; - - if (toolIndex > -1) - { - switch (toolIndex) - { - case TOOLBAR_LOAD_FILE: - frame->SetStatusText("Load project file"); - break; - case TOOLBAR_SAVE_FILE: - frame->SetStatusText("Save project file"); - break; - case TOOLBAR_NEW: - frame->SetStatusText("Create a new resource"); - break; - case TOOLBAR_FORMAT_HORIZ: - frame->SetStatusText("Align items horizontally"); - break; - case TOOLBAR_FORMAT_VERT: - frame->SetStatusText("Align items vertically"); - break; - case TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN: - frame->SetStatusText("Left-align items"); - break; - case TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN: - frame->SetStatusText("Right-align items"); - break; - case TOOLBAR_FORMAT_VERT_TOP_ALIGN: - frame->SetStatusText("Top-align items"); - break; - case TOOLBAR_FORMAT_VERT_BOT_ALIGN: - frame->SetStatusText("Bottom-align items"); - break; - case TOOLBAR_COPY_SIZE: - frame->SetStatusText("Copy size from first selection"); - break; - case TOOLBAR_TO_FRONT: - frame->SetStatusText("Put image to front"); - break; - case TOOLBAR_TO_BACK: - frame->SetStatusText("Put image to back"); - break; - case TOOLBAR_HELP: - frame->SetStatusText("Display help contents"); - break; - default: - break; - } - } - else frame->SetStatusText(""); -} - diff --git a/utils/dialoged/src/reseditr.h b/utils/dialoged/src/reseditr.h deleted file mode 100644 index 56e17c1adf..0000000000 --- a/utils/dialoged/src/reseditr.h +++ /dev/null @@ -1,454 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: reseditr.h -// Purpose: Resource editor class -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _RESEDITR_H_ -#define _RESEDITR_H_ - -#define wxDIALOG_EDITOR_VERSION 1.6 - -#ifdef __GNUG__ -#pragma interface "reseditr.h" -#endif - -#include "wx/wx.h" -#include "wx/string.h" -#include "wx/layout.h" -#include "wx/resource.h" -#include "wx/toolbar.h" -#include "wx/imaglist.h" -#include "wx/treectrl.h" -#include "wx/proplist.h" -#include "symbtabl.h" -#include "winstyle.h" - -#define RESED_DELETE 1 -#define RESED_RECREATE 3 -#define RESED_CLEAR 4 -#define RESED_NEW_DIALOG 5 -#define RESED_NEW_PANEL 6 -#define RESED_TEST 10 - -#define RESED_CONTENTS 20 - -#define IDC_TREECTRL 100 -#define IDC_LISTCTRL 101 - -// For control list ('palette') -#define RESED_POINTER 0 -#define RESED_BUTTON 1 -#define RESED_BMPBUTTON 2 -#define RESED_STATICTEXT 3 -#define RESED_STATICBMP 4 -#define RESED_STATICBOX 5 -#define RESED_TEXTCTRL_SINGLE 6 -#define RESED_TEXTCTRL_MULTIPLE 7 -#define RESED_LISTBOX 8 -#define RESED_CHOICE 9 -#define RESED_COMBOBOX 10 -#define RESED_CHECKBOX 11 -#define RESED_SLIDER 12 -#define RESED_GAUGE 13 -#define RESED_RADIOBOX 14 -#define RESED_RADIOBUTTON 15 -#define RESED_SCROLLBAR 16 -#define RESED_TREECTRL 17 -#define RESED_LISTCTRL 18 -#define RESED_SPINBUTTON 19 - -/* - * Controls loading, saving, user interface of resource editor(s). - */ - -class wxResourceEditorFrame; -class EditorToolBar; -class wxWindowPropertyInfo; -class wxResourceEditorProjectTree; -class wxResourceEditorControlList; - -#ifdef __WXMSW__ -#define wxHelpController wxWinHelpController -#else -#define wxHelpController wxHTMLHelpController; -#endif - -class wxHelpController; - -/* - * The resourceTable contains a list of wxItemResources (which each may - * have further children, defining e.g. a dialog box with controls). - * - * We need to associate actual windows with each wxItemResource, - * instead of the current 'one current window' scheme. - * - * - We create a new dialog, create a wxItemResource, - * associate the dialog with wxItemResource via a hash table. - * Must be a hash table in case dialog is deleted without - * telling the resource manager. - * - When we save the resource after editing/closing the dialog, - * we check the wxItemResource/wxDialog and children for - * consistency (throw away items no longer in the wxDialog, - * create any new wxItemResources). - * - We save the wxItemResources via the wxPropertyInfo classes, - * so devolve the code to the appropriate class. - * This involves creating a new temporary wxPropertyInfo for - * the purpose. - * - * We currently assume we only create one instance of a window for - * each wxItemResource. We will need to relax this when we're editing - * in situ. - * - * - */ - -class wxResourceTableWithSaving: public wxResourceTable -{ - public: - wxResourceTableWithSaving():wxResourceTable() - { - // Add all known window styles - m_styleTable.Init(); - } - virtual bool Save(const wxString& filename); - virtual bool SaveResource(ostream& stream, wxItemResource* item, wxItemResource* parentItem); - - void GeneratePanelStyleString(long windowStyle, char *buf); - void GenerateDialogStyleString(long windowStyle, char *buf); - -/* - void GenerateRadioBoxStyleString(long windowStyle, char *buf); - void GenerateMessageStyleString(long windowStyle, char *buf); - void GenerateTextStyleString(long windowStyle, char *buf); - void GenerateButtonStyleString(long windowStyle, char *buf); - void GenerateCheckBoxStyleString(long windowStyle, char *buf); - void GenerateRadioButtonStyleString(long windowStyle, char *buf); - void GenerateListBoxStyleString(long windowStyle, char *buf); - void GenerateSliderStyleString(long windowStyle, char *buf); - void GenerateGroupBoxStyleString(long windowStyle, char *buf); - void GenerateGaugeStyleString(long windowStyle, char *buf); - void GenerateChoiceStyleString(long windowStyle, char *buf); - void GenerateComboBoxStyleString(long windowStyle, char *buf); - void GenerateScrollBarStyleString(long windowStyle, char *buf); -*/ - - void GenerateControlStyleString(const wxString& windowClass, long windowStyle, char *buf); - -/* - bool GenerateStyle(char *buf, long windowStyle, long flag, char *strStyle); -*/ - - void OutputFont(ostream& stream, const wxFont& font); - wxControl *CreateItem(wxPanel *panel, const wxItemResource *childResource, const wxItemResource* parentResource); - -protected: - wxWindowStyleTable m_styleTable; -}; - -class wxResourceEditorScrolledWindow; - -class wxResourceManager: public wxObject -{ - friend class wxResourceEditorFrame; - -public: - wxResourceManager(); - ~wxResourceManager(); - -// Operations - - // Initializes the resource manager - bool Initialize(); - - // Load/save window size etc. - bool LoadOptions(); - bool SaveOptions(); - - // Show or hide the resource editor frame, which displays a list - // of resources with ability to edit them. - virtual bool ShowResourceEditor(bool show, wxWindow *parent = NULL, const char *title = "wxWindows Dialog Editor"); - - virtual bool Save(); - virtual bool SaveAs(); - virtual bool Save(const wxString& filename); - virtual bool Load(const wxString& filename); - virtual bool Clear(bool deleteWindows = TRUE, bool force = TRUE); - virtual void SetFrameTitle(const wxString& filename); - virtual void ClearCurrentDialog(); - virtual bool New(bool loadFromFile = TRUE, const wxString& filename = ""); - virtual bool SaveIfModified(); - virtual void AlignItems(int flag); - virtual void CopySize(); - virtual void ToBackOrFront(bool toBack); - virtual wxWindow *FindParentOfSelection(); - - virtual wxFrame *OnCreateEditorFrame(const char *title); - virtual wxMenuBar *OnCreateEditorMenuBar(wxFrame *parent); - virtual wxResourceEditorScrolledWindow *OnCreateEditorPanel(wxFrame *parent); - virtual wxToolBar *OnCreateToolBar(wxFrame *parent); - - // Create a window information object for the give window - wxWindowPropertyInfo* CreatePropertyInfoForWindow(wxWindow *win); - // Edit the given window - void EditWindow(wxWindow *win); - - virtual void UpdateResourceList(); - virtual void AddItemsRecursively(long parent, wxItemResource *resource); - virtual bool EditSelectedResource(); - virtual bool Edit(wxItemResource *res); - virtual bool CreateNewPanel(); - virtual bool CreatePanelItem(wxItemResource *panelResource, wxPanel *panel, char *itemType, int x = 10, int y = 10, bool isBitmap = FALSE); - virtual bool DeleteSelection(); - virtual bool TestCurrentDialog(wxWindow* parent); - - // Saves the window info into the resource, and deletes the - // handler. Doesn't actually disassociate the window from - // the resources. Replaces OnClose. - virtual bool SaveInfoAndDeleteHandler(wxWindow* win); - - // Destroys the window. If this is the 'current' panel, NULLs the - // variable. - virtual bool DeleteWindow(wxWindow* win); - virtual bool DeleteResource(wxItemResource *res); - virtual bool DeleteResource(wxWindow *win); - - // Add bitmap resource if there isn't already one with this filename. - virtual wxString AddBitmapResource(const wxString& filename); - - // Delete the bitmap resource if it isn't being used by another resource. - virtual void PossiblyDeleteBitmapResource(const wxString& resourceName); - - // Helper function for above - virtual bool IsBitmapResourceUsed(const wxString& resourceName); - - wxItemResource *FindBitmapResourceByFilename(const wxString& filename); - - wxString FindBitmapFilenameForResource(wxItemResource *resource); - - // Is this window identifier in use? - bool IsSymbolUsed(wxItemResource* thisResource, wxWindowID id) ; - - // Is this window identifier compatible with the given name? (i.e. - // does it already exist under a different name) - bool IsIdentifierOK(const wxString& name, wxWindowID id); - - // Change all integer ids that match oldId, to newId. - // This is necessary if an id is changed for one resource - all resources - // must be changed. - void ChangeIds(int oldId, int newId); - - // If any resource ids were missing (or their symbol was missing), - // repair them i.e. give them new ids. Returns TRUE if any resource - // needed repairing. - bool RepairResourceIds(); - - // Deletes 'win' and creates a new window from the resource that - // was associated with it. E.g. if you can't change properties on the - // fly, you'll need to delete the window and create it again. - virtual wxWindow *RecreateWindowFromResource(wxWindow *win, wxWindowPropertyInfo *info = NULL); - - virtual bool RecreateSelection(); - - // Need to search through resource table removing this from - // any resource which has this as a parent. - virtual bool RemoveResourceFromParent(wxItemResource *res); - - virtual bool EditDialog(wxDialog *dialog, wxWindow *parent); - - void AddSelection(wxWindow *win); - void RemoveSelection(wxWindow *win); - - virtual void MakeUniqueName(char *prefix, char *buf); - - // (Dis)associate resource<->physical window - // Doesn't delete any windows. - virtual void AssociateResource(wxItemResource *resource, wxWindow *win); - virtual bool DisassociateResource(wxItemResource *resource); - virtual bool DisassociateResource(wxWindow *win); - virtual bool DisassociateWindows(); - virtual wxItemResource *FindResourceForWindow(wxWindow *win); - virtual wxWindow *FindWindowForResource(wxItemResource *resource); - - virtual bool InstantiateAllResourcesFromWindows(); - virtual bool InstantiateResourceFromWindow(wxItemResource *resource, wxWindow *window, bool recurse = FALSE); - -// Accessors - inline void SetEditorFrame(wxFrame *fr) { m_editorFrame = fr; } - inline void SetEditorToolBar(EditorToolBar *tb) { m_editorToolBar = tb; } - inline wxFrame *GetEditorFrame() const { return m_editorFrame; } - inline wxResourceEditorProjectTree *GetEditorResourceTree() const { return m_editorResourceTree; } - inline wxResourceEditorControlList *GetEditorControlList() const { return m_editorControlList; } - inline wxList& GetSelections() { return m_selections; } - inline wxMenu *GetPopupMenu() const { return m_popupMenu; } -#ifdef __WXMSW__ - inline wxHelpController *GetHelpController() const { return m_helpController; } -#endif - - inline void Modify(bool mod = TRUE) { m_modified = mod; } - inline bool Modified() const { return m_modified; } - - inline wxResourceTable& GetResourceTable() { return m_resourceTable; } - inline wxHashTable& GetResourceAssociations() { return m_resourceAssociations; } - - inline wxString GetCurrentFilename() const { return m_currentFilename; } - static wxResourceManager* GetCurrentResourceManager() { return sm_currentResourceManager; } - - inline void SetSymbolFilename(const wxString& s) { m_symbolFilename = s; } - inline wxString GetSymbolFilename() const { return m_symbolFilename; } - - inline wxRect& GetPropertyWindowSize() { return m_propertyWindowSize; } - inline wxRect& GetResourceEditorWindowSize() { return m_resourceEditorWindowSize; } - - wxResourceSymbolTable& GetSymbolTable() { return m_symbolTable; } - - // Generate a window id and a first stab at a name - int GenerateWindowId(const wxString& prefix, wxString& idName) ; - -// Member variables - protected: -#ifdef __WXMSW__ - wxHelpController* m_helpController; -#endif - wxResourceTableWithSaving m_resourceTable; - wxFrame* m_editorFrame; - wxResourceEditorScrolledWindow* m_editorPanel; - wxMenu* m_popupMenu; - wxResourceEditorProjectTree* m_editorResourceTree; - wxResourceEditorControlList* m_editorControlList; - EditorToolBar* m_editorToolBar; - int m_nameCounter; - int m_symbolIdCounter; // For generating window ids - bool m_modified; - wxHashTable m_resourceAssociations; - wxList m_selections; - wxString m_currentFilename; - wxBitmap* m_bitmapImage; // Default for static bitmaps/buttons - - wxImageList m_imageList; - long m_rootDialogItem; // Root of dialog hierarchy in tree (unused) - - // Options to be saved/restored - wxString m_optionsResourceFilename; // e.g. dialoged.ini, .dialogrc - wxRect m_propertyWindowSize; - wxRect m_resourceEditorWindowSize; - static wxResourceManager* sm_currentResourceManager; - - // Symbol table with identifiers for controls - wxResourceSymbolTable m_symbolTable; - // Filename for include file, e.g. resource.h - wxString m_symbolFilename; -}; - - -class wxResourceEditorFrame: public wxFrame -{ - public: - DECLARE_CLASS(wxResourceEditorFrame) - - wxResourceManager *manager; - wxResourceEditorFrame(wxResourceManager *resMan, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize(600, 400), - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); - ~wxResourceEditorFrame(); - - void OnCloseWindow(wxCloseEvent& event); - - void OnNew(wxCommandEvent& event); - void OnOpen(wxCommandEvent& event); - void OnNewDialog(wxCommandEvent& event); - void OnClear(wxCommandEvent& event); - void OnSave(wxCommandEvent& event); - void OnSaveAs(wxCommandEvent& event); - void OnExit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnContents(wxCommandEvent& event); - void OnDeleteSelection(wxCommandEvent& event); - void OnRecreateSelection(wxCommandEvent& event); - void OnTest(wxCommandEvent& event); - - DECLARE_EVENT_TABLE() -}; - -class wxResourceEditorScrolledWindow: public wxScrolledWindow -{ - public: - wxResourceEditorScrolledWindow(wxWindow *parent, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0); - ~wxResourceEditorScrolledWindow(); - - void OnPaint(wxPaintEvent& event); - - void DrawTitle(wxDC& dc); - -// Accessors - inline int GetMarginX() { return m_marginX; } - inline int GetMarginY() { return m_marginY; } - - public: - wxWindow* m_childWindow; - private: - int m_marginX, m_marginY; - - DECLARE_EVENT_TABLE() -}; - -#define OBJECT_MENU_EDIT 1 -#define OBJECT_MENU_DELETE 2 - -/* - * Main toolbar - * - */ - -class EditorToolBar: public wxToolBar -{ -public: - EditorToolBar(wxFrame *frame, const wxPoint& pos = wxPoint(0, 0), const wxSize& size = wxSize(0, 0), - long style = wxTB_HORIZONTAL); - bool OnLeftClick(int toolIndex, bool toggled); - void OnMouseEnter(int toolIndex); - -DECLARE_EVENT_TABLE() -}; - -// Toolbar ids -#define TOOLBAR_LOAD_FILE 1 -#define TOOLBAR_SAVE_FILE 2 -#define TOOLBAR_NEW 3 -#define TOOLBAR_TREE 5 -#define TOOLBAR_HELP 6 - -// Formatting tools -#define TOOLBAR_FORMAT_HORIZ 10 -#define TOOLBAR_FORMAT_HORIZ_LEFT_ALIGN 11 -#define TOOLBAR_FORMAT_HORIZ_RIGHT_ALIGN 12 -#define TOOLBAR_FORMAT_VERT 13 -#define TOOLBAR_FORMAT_VERT_TOP_ALIGN 14 -#define TOOLBAR_FORMAT_VERT_BOT_ALIGN 15 - -#define TOOLBAR_TO_FRONT 16 -#define TOOLBAR_TO_BACK 17 -#define TOOLBAR_COPY_SIZE 18 - -/* - * this class is used to store data associated with a tree item - */ -class wxResourceTreeData : public wxTreeItemData -{ -public: - wxResourceTreeData(wxItemResource *resource) { m_resource = resource; } - - wxItemResource *GetResource() const { return m_resource; } - -private: - wxItemResource *m_resource; -}; - -#endif - diff --git a/utils/dialoged/src/reswrite.cpp b/utils/dialoged/src/reswrite.cpp deleted file mode 100644 index 9cdde107dc..0000000000 --- a/utils/dialoged/src/reswrite.cpp +++ /dev/null @@ -1,601 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: reswrite.cpp -// Purpose: Resource writing functionality -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// 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 -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) -#include -#include -#else -#include -#include -#endif -#else -#include -#include -#endif - -#include "wx/scrolbar.h" -#include "wx/string.h" - -#include "reseditr.h" - -char *SafeString(char *s); -char *SafeWord(const wxString& s); - -// Save an association between the child resource and the panel item, to allow -// us not to require unique window names. -wxControl *wxResourceTableWithSaving::CreateItem(wxPanel *panel, const wxItemResource *childResource, const wxItemResource* parentResource) -{ - wxControl *item = wxResourceTable::CreateItem(panel, childResource, parentResource); - if (item) - wxResourceManager::GetCurrentResourceManager()->GetResourceAssociations().Put((long)childResource, item); - return item; -} - -void wxResourceTableWithSaving::OutputFont(ostream& stream, const wxFont& font) -{ - stream << "[" << font.GetPointSize() << ", '"; - stream << font.GetFamilyString() << "', '"; - stream << font.GetStyleString() << "', '"; - stream << font.GetWeightString() << "', "; - stream << (int)font.GetUnderlined(); - if (font.GetFaceName() != "") - stream << ", '" << font.GetFaceName() << "'"; - stream << "]"; -} - -/* - * Resource table with saving (basic one only has loading) - */ - -bool wxResourceTableWithSaving::Save(const wxString& filename) -{ - ofstream stream(((wxString &) filename).GetData()); - if (stream.bad()) - return FALSE; - - BeginFind(); - wxNode *node = NULL; - while ((node = Next())) - { - wxItemResource *item = (wxItemResource *)node->Data(); - wxString resType(item->GetType()); - - if (resType == "wxDialogBox" || resType == "wxDialog" || resType == "wxPanel" || resType == "wxBitmap") - { - if (!SaveResource(stream, item, (wxItemResource*) NULL)) - return FALSE; - } - } - return TRUE; -} - -bool wxResourceTableWithSaving::SaveResource(ostream& stream, wxItemResource* item, wxItemResource* parentItem) -{ - char styleBuf[400]; - wxString itemType(item->GetType()); - - if (itemType == "wxDialogBox" || itemType == "wxDialog" || itemType == "wxPanel") - { - if (itemType == "wxDialogBox" || itemType == "wxDialog") - { - stream << "static char *" << item->GetName() << " = \"dialog(name = '" << item->GetName() << "',\\\n"; - GenerateDialogStyleString(item->GetStyle(), styleBuf); - } - else - { - stream << "static char *" << item->GetName() << " = \"panel(name = '" << item->GetName() << "',\\\n"; - GenerateDialogStyleString(item->GetStyle(), styleBuf); - } - - stream << " style = '" << styleBuf << "',\\\n"; - stream << " title = '" << item->GetTitle() << "',\\\n"; - stream << " id = " << item->GetId() << ",\\\n"; - stream << " x = " << item->GetX() << ", y = " << item->GetY(); - stream << ", width = " << item->GetWidth() << ", height = " << item->GetHeight(); - - if (1) // item->GetStyle() & wxNO_3D) - { - if (item->GetBackgroundColour().Ok()) - { - char buf[7]; - wxDecToHex(item->GetBackgroundColour().Red(), buf); - wxDecToHex(item->GetBackgroundColour().Green(), buf+2); - wxDecToHex(item->GetBackgroundColour().Blue(), buf+4); - buf[6] = 0; - - stream << ",\\\n " << "background_colour = '" << buf << "'"; - } - } - - int dialogUnits = 0; - int useDefaults = 0; - if ((item->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) != 0) - dialogUnits = 1; - if ((item->GetResourceStyle() & wxRESOURCE_USE_DEFAULTS) != 0) - useDefaults = 1; - - stream << ",\\\n " << "use_dialog_units = " << dialogUnits; - stream << ",\\\n " << "use_system_defaults = " << useDefaults; - - if (item->GetFont().Ok()) - { - stream << ",\\\n font = "; - OutputFont(stream, item->GetFont()); - } - - if (item->GetChildren().Number() > 0) - stream << ",\\\n"; - else - stream << "\\\n"; - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - - stream << " control = ["; - - SaveResource(stream, child, item); - - stream << "]"; - - if (node->Next()) - stream << ",\\\n"; - node = node->Next(); - } - stream << ").\";\n\n"; - } - else if (itemType == "wxButton" || itemType == "wxBitmapButton") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << itemType << ", " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - if (item->GetValue4()) - stream << ", '" << item->GetValue4() << "'"; - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxStaticText" || itemType == "wxStaticBitmap") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << itemType << ", " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - if (item->GetValue4()) - stream << ", '" << item->GetValue4() << "'"; - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxCheckBox") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxCheckBox, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - stream << ", " << item->GetValue1(); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxRadioButton") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxRadioButton, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - stream << ", " << item->GetValue1(); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxStaticBox") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxStaticBox, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxText" || itemType == "wxMultiText" || itemType == "wxTextCtrl") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxTextCtrl, "; - stream << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - stream << ", " << SafeWord(item->GetValue4()); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxGauge") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxGauge, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - stream << ", " << item->GetValue1() << ", " << item->GetValue2(); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxSlider") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxSlider, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - stream << ", " << item->GetValue1() << ", " << item->GetValue2() << ", " << item->GetValue3(); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxScrollBar") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxScrollBar, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - stream << ", " << item->GetValue1() << ", " << item->GetValue2() << ", " << item->GetValue3() << ", "; - stream << item->GetValue5(); - } - else if (itemType == "wxListBox") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxListBox, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - - // Default list of values - - stream << ", ["; - if (item->GetStringValues().Number() > 0) - { - wxNode *node = item->GetStringValues().First(); - while (node) - { - char *s = (char *)node->Data(); - stream << SafeWord(s); - if (node->Next()) - stream << ", "; - node = node->Next(); - } - } - stream << "]"; -/* Styles are now in the window style, not in a separate arg - stream << ", "; - switch (item->GetValue1()) - { - case wxLB_MULTIPLE: - { - stream << "'wxLB_MULTIPLE'"; - break; - } - case wxLB_EXTENDED: - { - stream << "'wxLB_EXTENDED'"; - break; - } - case wxLB_SINGLE: - default: - { - stream << "'wxLB_SINGLE'"; - break; - } - } - */ - - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxChoice" || itemType == "wxComboBox") - { - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - - stream << item->GetId() << ", " << itemType << ", " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - - if (itemType == "wxComboBox") - stream << ", " << SafeWord(item->GetValue4()); - - // Default list of values - - stream << ", ["; - if (item->GetStringValues().Number() > 0) - { - wxNode *node = item->GetStringValues().First(); - while (node) - { - char *s = (char *)node->Data(); - stream << SafeWord(s); - if (node->Next()) - stream << ", "; - node = node->Next(); - } - } - stream << "]"; - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxRadioBox") - { - // Must write out the orientation and number of rows/cols!! - GenerateControlStyleString(itemType, item->GetStyle(), styleBuf); - stream << item->GetId() << ", " << "wxRadioBox, " << SafeWord(item->GetTitle()) << ", '" << styleBuf << "', "; - stream << SafeWord(item->GetName()) << ", " << item->GetX() << ", " << item->GetY() << ", "; - stream << item->GetWidth() << ", " << item->GetHeight(); - - // Default list of values - - stream << ", ["; - if (item->GetStringValues().Number() > 0) - { - wxNode *node = item->GetStringValues().First(); - while (node) - { - char *s = (char *)node->Data(); - stream << SafeWord(s); - if (node->Next()) - stream << ", "; - node = node->Next(); - } - } - stream << "], " << item->GetValue1(); - if (item->GetFont().Ok()) - { - stream << ",\\\n "; - OutputFont(stream, item->GetFont()); - } - } - else if (itemType == "wxBitmap") - { - stream << "static char *" << item->GetName() << " = \"bitmap(name = '" << item->GetName() << "',\\\n"; - - wxNode *node = item->GetChildren().First(); - while (node) - { - wxItemResource *child = (wxItemResource *)node->Data(); - stream << " bitmap = ["; - - char buf[400]; - strcpy(buf, child->GetName()); -#ifdef __WXMSW__ - wxDos2UnixFilename(buf); -#endif - - stream << "'" << buf << "', "; - - int bitmapType = (int)child->GetValue1(); - switch (bitmapType) - { - case wxBITMAP_TYPE_XBM_DATA: - { - stream << "wxBITMAP_TYPE_XBM_DATA"; - break; - } - case wxBITMAP_TYPE_XPM_DATA: - { - stream << "wxBITMAP_TYPE_XPM_DATA"; - break; - } - case wxBITMAP_TYPE_XBM: - { - stream << "wxBITMAP_TYPE_XBM"; - break; - } - case wxBITMAP_TYPE_XPM: - { - stream << "wxBITMAP_TYPE_XPM"; - break; - } - case wxBITMAP_TYPE_BMP: - { - stream << "wxBITMAP_TYPE_BMP"; - break; - } - case wxBITMAP_TYPE_BMP_RESOURCE: - { - stream << "wxBITMAP_TYPE_BMP_RESOURCE"; - break; - } - case wxBITMAP_TYPE_GIF: - { - stream << "wxBITMAP_TYPE_GIF"; - break; - } - case wxBITMAP_TYPE_TIF: - { - stream << "wxBITMAP_TYPE_TIF"; - break; - } - case wxBITMAP_TYPE_ICO: - { - stream << "wxBITMAP_TYPE_ICO"; - break; - } - case wxBITMAP_TYPE_ICO_RESOURCE: - { - stream << "wxBITMAP_TYPE_ICO_RESOURCE"; - break; - } - case wxBITMAP_TYPE_CUR: - { - stream << "wxBITMAP_TYPE_CUR"; - break; - } - case wxBITMAP_TYPE_CUR_RESOURCE: - { - stream << "wxBITMAP_TYPE_CUR_RESOURCE"; - break; - } - default: - case wxBITMAP_TYPE_ANY: - { - stream << "wxBITMAP_TYPE_ANY"; - break; - } - } - stream << ", "; - int platform = child->GetValue2(); - switch (platform) - { - case RESOURCE_PLATFORM_WINDOWS: - { - stream << "'WINDOWS'"; - break; - } - case RESOURCE_PLATFORM_X: - { - stream << "'X'"; - break; - } - case RESOURCE_PLATFORM_MAC: - { - stream << "'MAC'"; - break; - } - case RESOURCE_PLATFORM_ANY: - { - stream << "'ANY'"; - break; - } - } - int noColours = (int)child->GetValue3(); - if (noColours > 0) - stream << ", " << noColours; - - stream << "]"; - - if (node->Next()) - stream << ",\\\n"; - - node = node->Next(); - } - stream << ").\";\n\n"; - } - else - { - wxString str("Unimplemented resource type: "); - str += itemType; - wxMessageBox(str); - } - return TRUE; -} - -void wxResourceTableWithSaving::GenerateDialogStyleString(long windowStyle, char *buf) -{ - buf[0] = 0; - m_styleTable.GenerateStyleStrings("wxWindow", windowStyle, buf); - m_styleTable.GenerateStyleStrings("wxPanel", windowStyle, buf); - m_styleTable.GenerateStyleStrings("wxDialog", windowStyle, buf); - - if (strlen(buf) == 0) - strcat(buf, "0"); -} - -void wxResourceTableWithSaving::GeneratePanelStyleString(long windowStyle, char *buf) -{ - buf[0] = 0; - m_styleTable.GenerateStyleStrings("wxWindow", windowStyle, buf); - m_styleTable.GenerateStyleStrings("wxPanel", windowStyle, buf); - - if (strlen(buf) == 0) - strcat(buf, "0"); -} - - -void wxResourceTableWithSaving::GenerateControlStyleString(const wxString& windowClass, long windowStyle, char *buf) -{ - buf[0] = 0; - m_styleTable.GenerateStyleStrings("wxWindow", windowStyle, buf); - m_styleTable.GenerateStyleStrings("wxControl", windowStyle, buf); - m_styleTable.GenerateStyleStrings(windowClass, windowStyle, buf); - - if (strlen(buf) == 0) - strcat(buf, "0"); -} - -// Returns quoted string or "NULL" -char *SafeString(const wxString& s) -{ - if (s == "") - return "NULL"; - else - { - strcpy(wxBuffer, "\""); - strcat(wxBuffer, s); - strcat(wxBuffer, "\""); - return wxBuffer; - } -} - -// Returns quoted string or '' -char *SafeWord(const wxString& s) -{ - if (s == "") - return "''"; - else - { - strcpy(wxBuffer, "'"); - strcat(wxBuffer, (const char*) s); - strcat(wxBuffer, "'"); - return wxBuffer; - } -} - diff --git a/utils/dialoged/src/symbtabl.cpp b/utils/dialoged/src/symbtabl.cpp deleted file mode 100644 index 110764e782..0000000000 --- a/utils/dialoged/src/symbtabl.cpp +++ /dev/null @@ -1,333 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: symbtabl.cpp -// Purpose: wxResourceSymbolTable -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "symbtabl.h" -#endif - -// 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 - -#include -#include - -#include "symbtabl.h" - -wxResourceSymbolTable::wxResourceSymbolTable(): - m_hashTable(wxKEY_STRING) -{ -} - -wxResourceSymbolTable::~wxResourceSymbolTable() -{ - Clear(); -} - -// Operations - -bool wxResourceSymbolTable::ReadIncludeFile(const wxString& filename) -{ - wxFile file; - if (!wxFileExists(filename)) - return FALSE; - - if (!file.Open(filename, wxFile::read)) - return FALSE; - - off_t len = file.Length(); - if (len == -1) - return FALSE; - - Clear(); - AddStandardSymbols(); - - wxString str; - char* p = str.GetWriteBuf(len + 1); - - if (file.Read(p, len) == wxFile::fd_invalid) - { - str.UngetWriteBuf(); - return FALSE; - } - str.UngetWriteBuf(); - - // Look for #define occurrences - int pos = str.Find("#define"); - while (pos != -1) - { - size_t len = str.Length(); - - size_t i = pos + 8; - - // Eat whitespace until symbol - while ((str[i] == ' ' || str[i] == '\t') && (i < len)) - i ++; - - size_t start = i; - - // Eat symbol - while (str[i] != ' ' && str[i] != '\t' && (i < len)) - i ++; - size_t end = i-1; - - wxString symbol(str.Mid(start, (end - start + 1))); - - // Eat whitespace until number - while ((str[i] == ' ' || str[i] == '\t') && (i < len)) - i ++; - - size_t startNum = i; - - // Eat number - while (str[i] != ' ' && str[i] != '\t' && str[i] != '\n' && (i < len)) - i ++; - - size_t endNum = i-1; - - wxString numStr(str.Mid(startNum, (endNum - startNum + 1))); - - int id = atol(numStr); - - AddSymbol(symbol, id); - - str = str.Right(len - i); - pos = str.Find("#define"); - } - - return TRUE; -} - -bool wxResourceSymbolTable::WriteIncludeFile(const wxString& filename) -{ - wxFile file; - if (!file.Open(filename, wxFile::write)) - return FALSE; - - wxString fileOnly(wxFileNameFromPath(filename)); - wxString line; - line.Printf("/*\n * %s\n * Window identifiers file written by Dialog Editor\n */\n\n", - (const char*) fileOnly); - - file.Write(line, line.Length()); - - m_hashTable.BeginFind(); - - wxNode* node = m_hashTable.Next(); - while (node) - { - const char* str = node->GetKeyString(); - int id = (int) node->Data() ; - - if (!IsStandardSymbol(str)) - { - wxString line; - line.Printf("#define %s %ld\n", str, id); - - file.Write(line, line.Length()); - } - - node = m_hashTable.Next(); - } - return TRUE; -} - -void wxResourceSymbolTable::Clear() -{ - m_hashTable.Clear(); -} - -bool wxResourceSymbolTable::AddSymbol(const wxString& symbol, int id) -{ - m_hashTable.Put(symbol, (wxObject*) id); - return TRUE; -} - -bool wxResourceSymbolTable::RemoveSymbol(const wxString& symbol) -{ - m_hashTable.Delete(symbol); - return TRUE; -} - -bool wxResourceSymbolTable::RemoveSymbol(int id) -{ - wxString symbol(GetSymbolForId(id)); - m_hashTable.Delete(symbol); - return TRUE; -} - -// Accessors -wxString wxResourceSymbolTable::GetSymbolForId(int id) -{ - m_hashTable.BeginFind(); - - wxNode* node = m_hashTable.Next(); - while (node) - { - const char* str = node->GetKeyString(); - if (str && ( ((int) node->Data()) == id) ) - return wxString(str); - - node = m_hashTable.Next(); - } - return wxString(""); -} - -int wxResourceSymbolTable::GetIdForSymbol(const wxString& symbol) -{ - return (int) m_hashTable.Get(symbol); -} - -bool wxResourceSymbolTable::SymbolExists(const wxString& symbol) const -{ - return (m_hashTable.Get(symbol) != NULL); -} - -bool wxResourceSymbolTable::IdExists(int id) -{ - m_hashTable.BeginFind(); - - wxNode* node = m_hashTable.Next(); - while (node) - { - if ( (((int) node->Data()) == id) ) - return TRUE; - - node = m_hashTable.Next(); - } - return FALSE; -} - -int wxResourceSymbolTable::FindHighestId() -{ - int highest = 0; - - m_hashTable.BeginFind(); - - wxNode* node = m_hashTable.Next(); - while (node) - { - int id = ((int) node->Data()); - if (id > highest) - highest = id; - - node = m_hashTable.Next(); - } - - // Make sure we don't clash with future standard wxWindows ids - if (highest <= wxID_HIGHEST) - highest = wxID_HIGHEST + 1; - return highest; -} - -/* - * A table of the standard identifiers - */ - -struct wxStandardSymbolStruct -{ - char* m_name; - int m_id; -}; - -static wxStandardSymbolStruct sg_StandardSymbols[] = -{ - { "wxID_OK", wxID_OK }, - { "wxID_CANCEL", wxID_CANCEL }, - { "wxID_APPLY", wxID_APPLY }, - { "wxID_HELP", wxID_HELP }, - { "wxID_STATIC", wxID_STATIC }, - { "wxID_YES", wxID_YES }, - { "wxID_NO", wxID_NO }, - - { "wxID_OPEN", wxID_OPEN }, - { "wxID_CLOSE", wxID_CLOSE }, - { "wxID_NEW", wxID_NEW }, - { "wxID_SAVE", wxID_SAVE }, - { "wxID_SAVEAS", wxID_SAVEAS }, - { "wxID_REVERT", wxID_REVERT }, - { "wxID_EXIT", wxID_EXIT }, - { "wxID_UNDO", wxID_UNDO }, - { "wxID_REDO", wxID_REDO }, - { "wxID_PRINT", wxID_PRINT }, - { "wxID_PRINT_SETUP", wxID_PRINT_SETUP }, - { "wxID_PREVIEW", wxID_PREVIEW }, - { "wxID_ABOUT", wxID_ABOUT }, - { "wxID_HELP_CONTENTS", wxID_HELP_CONTENTS }, - { "wxID_HELP_COMMANDS", wxID_HELP_COMMANDS }, - { "wxID_HELP_PROCEDURES", wxID_HELP_PROCEDURES }, - { "wxID_HELP_CONTEXT", wxID_HELP_CONTEXT }, - - { "wxID_CUT", wxID_CUT }, - { "wxID_COPY", wxID_COPY }, - { "wxID_PASTE", wxID_PASTE }, - { "wxID_CLEAR", wxID_CLEAR }, - { "wxID_FIND", wxID_FIND }, - { "wxID_DUPLICATE", wxID_DUPLICATE }, - - { "wxID_FILE1", wxID_FILE1 }, - { "wxID_FILE2", wxID_FILE2 }, - { "wxID_FILE3", wxID_FILE3 }, - { "wxID_FILE4", wxID_FILE4 }, - { "wxID_FILE5", wxID_FILE5 }, - { "wxID_FILE6", wxID_FILE6 }, - { "wxID_FILE7", wxID_FILE7 }, - { "wxID_FILE8", wxID_FILE8 }, - { "wxID_FILE9", wxID_FILE9 } - -}; - -static int sg_StandardSymbolSize = (sizeof(sg_StandardSymbols)/sizeof(wxStandardSymbolStruct)); - -void wxResourceSymbolTable::AddStandardSymbols() -{ - int i; - for (i = 0; i < sg_StandardSymbolSize; i++) - { - AddSymbol(sg_StandardSymbols[i].m_name, sg_StandardSymbols[i].m_id); - } -} - -bool wxResourceSymbolTable::IsStandardSymbol(const wxString& symbol) const -{ - int i; - for (i = 0; i < sg_StandardSymbolSize; i++) - { - if (symbol == sg_StandardSymbols[i].m_name) - return TRUE; - } - return FALSE; -} - -bool wxResourceSymbolTable::FillComboBox(wxComboBox* comboBox) -{ - m_hashTable.BeginFind(); - - wxNode* node = m_hashTable.Next(); - while (node) - { - const char* str = node->GetKeyString(); - - comboBox->Append(str); - node = m_hashTable.Next(); - } - return TRUE; -} - diff --git a/utils/dialoged/src/symbtabl.h b/utils/dialoged/src/symbtabl.h deleted file mode 100644 index 440b14b222..0000000000 --- a/utils/dialoged/src/symbtabl.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: symbtabl.h -// Purpose: wxResourceSymbolTable class for storing/reading #defines -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _SYMBTABL_H_ -#define _SYMBTABL_H_ - -#ifdef __GNUG__ -#pragma interface "symbtabl.h" -#endif - -class wxResourceSymbolTable: public wxObject -{ -public: - wxResourceSymbolTable(); - ~wxResourceSymbolTable(); - -// Operations - bool ReadIncludeFile(const wxString& filename); - bool WriteIncludeFile(const wxString& filename); - void Clear(); - bool AddSymbol(const wxString& symbol, int id); - bool RemoveSymbol(const wxString& symbol); - bool RemoveSymbol(int id); - void AddStandardSymbols(); - bool FillComboBox(wxComboBox* comboBox); - -// Accessors - wxString GetSymbolForId(int id); - int GetIdForSymbol(const wxString& symbol); - bool SymbolExists(const wxString& symbol) const; - bool IdExists(int id) ; - bool IsStandardSymbol(const wxString& symbol) const; - int FindHighestId() ; - -// Implementation - -// Member variables -protected: - wxHashTable m_hashTable; -}; - -#endif - // _SYMBTABL_H_ - diff --git a/utils/dialoged/src/winprop.cpp b/utils/dialoged/src/winprop.cpp deleted file mode 100644 index afebc0f554..0000000000 --- a/utils/dialoged/src/winprop.cpp +++ /dev/null @@ -1,2559 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: winprop.cpp -// Purpose: Window properties -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "winprop.h" -#endif - -// 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 -#include -#include -#include - -#if wxUSE_IOSTREAMH -#if defined(__WXMSW__) && !defined(__GNUWIN32__) -#include -#else -#include -#endif -#else -#include -#endif - -#ifdef __WXMSW__ -#include -#endif - -#include "reseditr.h" -#include "winprop.h" - -// Causes immediate feedback. -void wxResourcePropertyListView::OnPropertyChanged(wxProperty *property) -{ - // Sets the value of the property back into the actual object, - // IF the property value was modified. - if (property->GetValue().GetModified()) - { - m_propertyInfo->SetProperty(property->GetName(), property); - property->GetValue().SetModified(FALSE); - wxResourceManager::GetCurrentResourceManager()->Modify(TRUE); - } -} - -bool wxResourcePropertyListView::OnClose(void) -{ - int w, h, x, y; - GetManagedWindow()->GetSize(& w, & h); - GetManagedWindow()->GetPosition(& x, & y); - - wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().width = w; - wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().height = h; - wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().x = x; - wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().y = y; - - return wxPropertyListView::OnClose(); -} - -wxWindow *wxPropertyInfo::sm_propertyWindow; - -/* - * wxDialogEditorPropertyListDialog - */ - - /* -wxDialogEditorPropertyListDialog::wxDialogEditorPropertyListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name): - wxPropertyListDialog(v, parent, title, pos, size, style, name) -{ - m_propSheet = NULL; - m_propInfo = NULL; -} - -wxDialogEditorPropertyListDialog::~wxDialogEditorPropertyListDialog() -{ - delete m_propSheet; - delete m_propInfo; - wxPropertyInfo::sm_propertyWindow = NULL; -} -*/ - -wxDialogEditorPropertyListFrame::wxDialogEditorPropertyListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name): - wxPropertyListFrame(v, parent, title, pos, size, style, name) -{ - m_propSheet = NULL; - m_propInfo = NULL; -} - -wxDialogEditorPropertyListFrame::~wxDialogEditorPropertyListFrame() -{ - delete m_propSheet; - delete m_propInfo; - wxPropertyInfo::sm_propertyWindow = NULL; -} - -/* - * wxPropertyInfo - */ - -// Edit the information represented by this object, whatever that -// might be. -bool wxPropertyInfo::Edit(wxWindow *WXUNUSED(parent), const wxString& title) -{ - if (sm_propertyWindow) - { - sm_propertyWindow->Raise(); - return TRUE; - } - - int width = wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().width; - int height = wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().height; - int x = wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().x; - int y = wxResourceManager::GetCurrentResourceManager()->GetPropertyWindowSize().y; - - wxPropertySheet *propSheet = new wxPropertySheet; - - wxStringList propNames; - GetPropertyNames(propNames); - - wxNode *node = propNames.First(); - while (node) - { - wxString name((char *)node->Data()); - wxProperty *prop = GetProperty(name); - if (prop) - { - propSheet->AddProperty(prop); - } - node = node->Next(); - } - - // Reset 'modified' flags for all property values - propSheet->SetAllModified(FALSE); - - wxResourcePropertyListView *view = new wxResourcePropertyListView(this, NULL, - wxPROP_BUTTON_OK | wxPROP_BUTTON_CANCEL | - wxPROP_BUTTON_CHECK_CROSS|wxPROP_DYNAMIC_VALUE_FIELD|wxPROP_PULLDOWN|wxPROP_SHOWVALUES); - - wxDialogEditorPropertyListFrame *propWin = new wxDialogEditorPropertyListFrame(view, - wxResourceManager::GetCurrentResourceManager()->GetEditorFrame(), title, wxPoint(x, y), - wxSize(width, height), wxDEFAULT_FRAME_STYLE); - sm_propertyWindow = propWin; - - propWin->m_registry.RegisterValidator(wxString("real"), new wxRealListValidator); - propWin->m_registry.RegisterValidator(wxString("string"), new wxStringListValidator); - propWin->m_registry.RegisterValidator(wxString("integer"), new wxIntegerListValidator); - propWin->m_registry.RegisterValidator(wxString("bool"), new wxBoolListValidator); - propWin->m_registry.RegisterValidator(wxString("filename"), new wxFilenameListValidator); - propWin->m_registry.RegisterValidator(wxString("stringlist"), new wxListOfStringsListValidator); - propWin->m_registry.RegisterValidator(wxString("window_id"), new wxResourceSymbolValidator); - - propWin->m_propInfo = this; - propWin->m_propSheet = propSheet; - -// view->m_propertyWindow = propWin; - view->AddRegistry(&(propWin->m_registry)); - - propWin->Initialize(); - view->ShowView(propSheet, propWin->GetPropertyPanel()); - - propWin->Show(TRUE); - - // Otherwise doesn't show itself -#ifdef __WXMOTIF__ - wxNoOptimize noOptimize; - propWin->SetSize(-1, -1, width, height); -#endif - - return TRUE; -} - -/* - * wxWindowPropertyInfo - */ - -wxWindowPropertyInfo::wxWindowPropertyInfo(wxWindow *win, wxItemResource *res) -{ - m_propertyWindow = win; - m_propertyResource = res; -} - -wxWindowPropertyInfo::~wxWindowPropertyInfo(void) -{ -} - -wxProperty *wxWindowPropertyInfo::GetFontProperty(wxString& name, wxFont *font) -{ - if (!font) - return NULL; - - if (name.Contains("Points")) - return new wxProperty(name, (long)font->GetPointSize(), "integer", new wxIntegerListValidator(1, 100)); - else if (name.Contains("Family")) - return new wxProperty(name, font->GetFamilyString(), "string", - new wxStringListValidator(new wxStringList("wxDECORATIVE", "wxROMAN", "wxSCRIPT", "wxSWISS", "wxMODERN", - NULL))); - else if (name.Contains("Style")) - return new wxProperty(name, font->GetStyleString(), "string", - new wxStringListValidator(new wxStringList("wxNORMAL", "wxITALIC", "wxSLANT", NULL))); - else if (name.Contains("Weight")) - return new wxProperty(name, font->GetWeightString(), "string", - new wxStringListValidator(new wxStringList("wxNORMAL", "wxBOLD", "wxLIGHT", NULL))); - else if (name.Contains("Underlined")) - return new wxProperty(name, (bool)font->GetUnderlined(), "bool"); - else - return NULL; -} - -wxFont *wxWindowPropertyInfo::SetFontProperty(wxString& name, wxProperty *property, wxFont *font) -{ - int pointSize = 12; - int fontFamily = wxMODERN; - int fontStyle = wxNORMAL; - int fontWeight = wxNORMAL; - bool fontUnderlined = FALSE; - - if (name.Contains("Points")) - { - pointSize = (int)property->GetValue().IntegerValue(); - if (font && (pointSize == font->GetPointSize())) - return NULL; // No change - } - else if (font) pointSize = font->GetPointSize(); - - if (name.Contains("Family")) - { - wxString val = property->GetValue().StringValue(); - fontFamily = wxStringToFontFamily(val); - - if (font && (fontFamily == font->GetFamily())) - return NULL; // No change - } - else if (font) fontFamily = font->GetFamily(); - - if (name.Contains("Style")) - { - wxString val = property->GetValue().StringValue(); - fontStyle = wxStringToFontStyle(val); - - if (font && (fontStyle == font->GetStyle())) - return NULL; // No change - } - else if (font) fontStyle = font->GetStyle(); - if (name.Contains("Weight")) - { - wxString val = property->GetValue().StringValue(); - fontWeight = wxStringToFontWeight(val); - - if (font && (fontWeight == font->GetWeight())) - return NULL; // No change - } - else if (font) fontWeight = font->GetWeight(); - - if (name.Contains("Underlined")) - { - fontUnderlined = property->GetValue().BoolValue(); - - if (font && (fontUnderlined == font->GetUnderlined())) - return NULL; // No change - } - else if (font) fontUnderlined = font->GetUnderlined(); - - wxFont *newFont = wxTheFontList->FindOrCreateFont(pointSize, fontFamily, fontStyle, fontWeight, fontUnderlined); - if (newFont) - { - return newFont; - } - else - return NULL; -} - -wxProperty *wxWindowPropertyInfo::GetProperty(wxString& name) -{ - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - - wxFont *font = & m_propertyWindow->GetFont(); - if (name == "fontPoints" || name == "fontFamily" || name == "fontStyle" || name == "fontWeight" || - name == "fontUnderlined") - return GetFontProperty(name, font); - else if (name == "name") - return new wxProperty("name", m_propertyWindow->GetName(), "string"); - else if (name == "title") - return new wxProperty("title", m_propertyWindow->GetTitle(), "string"); - else if (name == "x") - { - return new wxProperty("x", (long)resource->GetX(), "integer"); - } - else if (name == "y") - { - return new wxProperty("y", (long)resource->GetY(), "integer"); - } - else if (name == "width") - { - return new wxProperty("width", (long)resource->GetWidth(), "integer"); - } - else if (name == "height") - { - return new wxProperty("height", (long)resource->GetHeight(), "integer"); - } - else if (name == "id") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (resource) - { - int id = resource->GetId(); - wxString idStr; - idStr.Printf("%d", id); - wxString symbolName = wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().GetSymbolForId(id); - symbolName += "="; - symbolName += idStr; - // symbolName is now e.g. "ID_PANEL21=105" - return new wxProperty("id", symbolName, "window_id"); - } - else - return NULL; - } - else if (name == "border") - { - wxString border(""); - if (m_propertyWindow->GetWindowStyleFlag() & wxSIMPLE_BORDER) - border = "wxSIMPLE_BORDER"; - else if (m_propertyWindow->GetWindowStyleFlag() & wxRAISED_BORDER) - border = "wxRAISED_BORDER"; - else if (m_propertyWindow->GetWindowStyleFlag() & wxSUNKEN_BORDER) - border = "wxSUNKEN_BORDER"; - else if (m_propertyWindow->GetWindowStyleFlag() & wxDOUBLE_BORDER) - border = "wxDOUBLE_BORDER"; - else if (m_propertyWindow->GetWindowStyleFlag() & wxSTATIC_BORDER) - border = "wxSTATIC_BORDER"; - else - border = "wxNO_BORDER"; - - return new wxProperty("border", border, "string", - new wxStringListValidator(new wxStringList("wxSIMPLE_BORDER", "wxRAISED_BORDER", - "wxSUNKEN_BORDER", "wxDOUBLE_BORDER", "wxSTATIC_BORDER", "wxNO_BORDER", NULL))); - } - else - return NULL; -} - -bool wxWindowPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxFont *font = & m_propertyWindow->GetFont(); - if (font && (name == "fontPoints" || name == "fontFamily" || name == "fontStyle" || name == "fontWeight" || name == "fontUnderlined" )) - { - wxFont *newFont = SetFontProperty(name, property, font); - if (newFont) - m_propertyWindow->SetFont(* newFont); - return TRUE; - } - else if (name == "name") - { - // Remove old name from resource table, if it's there. - wxItemResource *oldResource = (wxItemResource *)wxResourceManager::GetCurrentResourceManager()->GetResourceTable().Delete(m_propertyWindow->GetName()); - if (oldResource) - { - // It's a top-level resource - m_propertyWindow->SetName(property->GetValue().StringValue()); - oldResource->SetName(property->GetValue().StringValue()); - wxResourceManager::GetCurrentResourceManager()->GetResourceTable().Put(m_propertyWindow->GetName(), oldResource); - } - else - { - // It's a child of something; just set the name of the resource and the window. - m_propertyWindow->SetName(property->GetValue().StringValue()); - m_propertyResource->SetName(property->GetValue().StringValue()); - } - // Refresh the resource manager list, because the name changed. - wxResourceManager::GetCurrentResourceManager()->UpdateResourceList(); - return TRUE; - } - else if (name == "title") - { - m_propertyWindow->SetTitle(property->GetValue().StringValue()); - return TRUE; - } - else if (name == "x") - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - int x, y; - m_propertyWindow->GetPosition(&x, &y); - int newX = (int)property->GetValue().IntegerValue(); - int pixelX = newX; - - // We need to convert to pixels if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (m_propertyWindow->GetParent() && m_propertyWindow->IsKindOf(CLASSINFO(wxControl))) - { - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow->GetParent()); - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxPoint(newX, y)); - pixelX = pt.x; - } - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel))) - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = m_propertyWindow->ConvertDialogToPixels(wxPoint(newX, y)); - pixelX = pt.x; - } - } - - if (x != pixelX) - { - m_propertyWindow->Move(pixelX, y); - resource->SetSize(newX, resource->GetY(), resource->GetWidth(), resource->GetHeight()); - } - return TRUE; - } - else if (name == "y") - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - int x, y; - m_propertyWindow->GetPosition(&x, &y); - int newY = (int)property->GetValue().IntegerValue(); - int pixelY = newY; - - // We need to convert to pixels if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (m_propertyWindow->GetParent() && m_propertyWindow->IsKindOf(CLASSINFO(wxControl))) - { - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow->GetParent()); - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxPoint(x, newY)); - pixelY = pt.y; - } - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel))) - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = m_propertyWindow->ConvertDialogToPixels(wxPoint(x, newY)); - pixelY = pt.y; - } - } - - if (y != pixelY) - { - m_propertyWindow->Move(x, pixelY); - resource->SetSize(resource->GetX(), newY, resource->GetWidth(), resource->GetHeight()); - } - return TRUE; - } - else if (name == "width") - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - int width, height; - m_propertyWindow->GetSize(&width, &height); - int newWidth = (int)property->GetValue().IntegerValue(); - int pixelWidth = newWidth; - - // We need to convert to pixels if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (m_propertyWindow->GetParent() && m_propertyWindow->IsKindOf(CLASSINFO(wxControl))) - { - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow->GetParent()); - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxSize sz = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxSize(newWidth, height)); - pixelWidth = sz.x; - } - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel))) - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxSize sz = m_propertyWindow->ConvertDialogToPixels(wxSize(newWidth, height)); - pixelWidth = sz.x; - } - } - - if (width != pixelWidth) - { - m_propertyWindow->SetSize(pixelWidth, height); - resource->SetSize(resource->GetX(), resource->GetY(), newWidth, resource->GetHeight()); - } - return TRUE; - } - else if (name == "height") - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - int width, height; - m_propertyWindow->GetSize(&width, &height); - int newHeight = (int)property->GetValue().IntegerValue(); - int pixelHeight = newHeight; - - // We need to convert to pixels if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (m_propertyWindow->GetParent() && m_propertyWindow->IsKindOf(CLASSINFO(wxControl))) - { - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow->GetParent()); - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxSize sz = m_propertyWindow->GetParent()->ConvertDialogToPixels(wxSize(width, newHeight)); - pixelHeight = sz.y; - } - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel))) - { - wxItemResource* resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxSize sz = m_propertyWindow->ConvertDialogToPixels(wxSize(width, newHeight)); - pixelHeight = sz.y; - } - } - - if (height != pixelHeight) - { - m_propertyWindow->SetSize(width, pixelHeight); - resource->SetSize(resource->GetX(), resource->GetY(), resource->GetWidth(), newHeight); - } - return TRUE; - } - else if (name == "id") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (resource) - { - wxString value = property->GetValue().StringValue(); - - wxString strName = value.Before('='); - wxString strId = value.After('='); - int id = atoi(strId); - - wxString oldSymbolName = wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().GetSymbolForId(resource->GetId()); - int oldSymbolId = resource->GetId(); - - if (strName != "") - { - // If we change the id for an existing symbol, we need to: - // 1) Check if there are any other resources currently using the original id. - // If so, will need to change their id to the new id. - // 2) Remove the old symbol, add the new symbol. - // In this check, we don't have to do this, but we need to do it in SetProperty. - - if (strName == oldSymbolName && id != oldSymbolId) - { - wxASSERT( (!wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().IsStandardSymbol(oldSymbolName)) ); - - // It's OK to change just the id. But we'll need to change all matching ids in all resources, - // because ids are unique and changing one resource's id must change all identical ones. - wxResourceManager::GetCurrentResourceManager()->ChangeIds(oldSymbolId, id); - - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().RemoveSymbol(oldSymbolName); - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().AddSymbol(strName, id); - } - - // If we change the name but not the id, we'll just need to remove and - // re-add the symbol/id pair. - if (strName != oldSymbolName && id == oldSymbolId) - { - wxASSERT( (!wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().IsStandardSymbol(oldSymbolName)) ); - - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().RemoveSymbol(oldSymbolName); - - if (!wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().SymbolExists(strName)) - { - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().AddSymbol(strName, id); - } - } - - // What if we're changing both the name and the id? - // - if there's no symbol of that name, just remove the old, add the new (in SetProperty) - // - if there is a symbol of that name, if id matches, do nothing. If not, veto. - - if (strName != oldSymbolName && id != oldSymbolId) - { - // Remove old symbol if it's not being used - if (!wxResourceManager::GetCurrentResourceManager()->IsSymbolUsed(resource, oldSymbolId) && - !wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().IsStandardSymbol(oldSymbolName)) - { - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().RemoveSymbol(oldSymbolName); - } - - if (!wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().SymbolExists(strName)) - { - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().AddSymbol(strName, id); - } - } - resource->SetId(id); - } - - return TRUE; - } - else - return FALSE; - } - else if (name == "border") - { - long borderStyle = wxNO_BORDER; - wxString val = property->GetValue().StringValue(); - - if (val == "wxSIMPLE_BORDER") - borderStyle = wxSIMPLE_BORDER; - else if (val == "wxRAISED_BORDER") - borderStyle = wxRAISED_BORDER; - else if (val == "wxSUNKEN_BORDER") - borderStyle = wxSUNKEN_BORDER; - else if (val == "wxDOUBLE_BORDER") - borderStyle = wxDOUBLE_BORDER; - else if (val == "wxSTATIC_BORDER") - borderStyle = wxSTATIC_BORDER; - else - borderStyle = wxNO_BORDER; - - SetWindowStyle(m_propertyWindow, wxSIMPLE_BORDER, FALSE); - SetWindowStyle(m_propertyWindow, wxRAISED_BORDER, FALSE); - SetWindowStyle(m_propertyWindow, wxSUNKEN_BORDER, FALSE); - SetWindowStyle(m_propertyWindow, wxDOUBLE_BORDER, FALSE); - SetWindowStyle(m_propertyWindow, wxSTATIC_BORDER, FALSE); - SetWindowStyle(m_propertyWindow, wxNO_BORDER, FALSE); - - SetWindowStyle(m_propertyWindow, borderStyle, TRUE); - - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - resource->SetStyle(m_propertyWindow->GetWindowStyleFlag()); - return TRUE; - } - else - return FALSE; -} - -void wxWindowPropertyInfo::GetPropertyNames(wxStringList& names) -{ - names.Add("id"); - names.Add("name"); - names.Add("x"); - names.Add("y"); - names.Add("width"); - names.Add("height"); - names.Add("border"); - if (!m_propertyWindow->IsKindOf(CLASSINFO(wxControl))) - { - names.Add("fontPoints"); - names.Add("fontFamily"); - names.Add("fontStyle"); - names.Add("fontWeight"); - names.Add("fontUnderlined"); - } -} - -// Fill in the wxItemResource members to mirror the current window settings -bool wxWindowPropertyInfo::InstantiateResource(wxItemResource *resource) -{ -// resource->SetType(m_propertyWindow->GetClassInfo()->GetClassName()); - -// resource->SetStyle(m_propertyWindow->GetWindowStyleFlag()); - wxString str(m_propertyWindow->GetName()); - resource->SetName(str); - -#if 0 - int x, y, w, h; - - if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel))) - m_propertyWindow->GetClientSize(&w, &h); - else - m_propertyWindow->GetSize(&w, &h); - - m_propertyWindow->GetPosition(&x, &y); - - // We need to convert to dialog units if this is not a dialog or panel, but - // the parent resource specifies dialog units. - if (m_propertyWindow->GetParent() && m_propertyWindow->IsKindOf(CLASSINFO(wxControl))) - { - wxItemResource* parentResource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow->GetParent()); - if (parentResource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = m_propertyWindow->GetParent()->ConvertPixelsToDialog(wxPoint(x, y)); - x = pt.x; y = pt.y; - wxSize sz = m_propertyWindow->GetParent()->ConvertPixelsToDialog(wxSize(w, h)); - w = sz.x; h = sz.y; - } - } - else if (m_propertyWindow->IsKindOf(CLASSINFO(wxPanel))) - { - if (resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) - { - wxPoint pt = m_propertyWindow->ConvertPixelsToDialog(wxPoint(x, y)); - x = pt.x; y = pt.y; - wxSize sz = m_propertyWindow->ConvertPixelsToDialog(wxSize(w, h)); - w = sz.x; h = sz.y; - } - } - - resource->SetSize(x, y, w, h); -#endif - - return TRUE; -} - -// Set the window style -void wxWindowPropertyInfo::SetWindowStyle(wxWindow* win, long style, bool set) -{ - if (style == 0) - return; - - if ((win->GetWindowStyleFlag() & style) == style) - { - if (!set) - { - win->SetWindowStyleFlag(win->GetWindowStyleFlag() - style); - } - } - else - { - if (set) - { - win->SetWindowStyleFlag(win->GetWindowStyleFlag() | style); - } - } -} - -/* - * Controls - */ - -wxProperty *wxItemPropertyInfo::GetProperty(wxString& name) -{ - wxControl *itemWindow = (wxControl *)m_propertyWindow; - wxFont *font = & itemWindow->GetFont(); - - if (name == "fontPoints" || name == "fontFamily" || name == "fontStyle" || name == "fontWeight" || - name == "fontUnderlined") - return GetFontProperty(name, font); - else if (name == "label" && itemWindow->GetLabel()) - return new wxProperty("label", m_propertyWindow->GetLabel(), "string"); - else - return wxWindowPropertyInfo::GetProperty(name); -} - -bool wxItemPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxControl *itemWindow = (wxControl *)m_propertyWindow; - wxFont *font = & itemWindow->GetFont(); - - if (font && (name == "fontPoints" || name == "fontFamily" || name == "fontStyle" || name == "fontWeight" || name == "fontUnderlined" )) - { - wxFont *newFont = SetFontProperty(name, property, font); - if (newFont) - itemWindow->SetFont(* newFont); - return TRUE; - } - else if (name == "label") - { - itemWindow->SetLabel(property->GetValue().StringValue()); - return TRUE; - } - else - return wxWindowPropertyInfo::SetProperty(name, property); -} - -void wxItemPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxWindowPropertyInfo::GetPropertyNames(names); - - names.Add("fontPoints"); - names.Add("fontFamily"); - names.Add("fontStyle"); - names.Add("fontWeight"); - names.Add("fontUnderlined"); -} - -bool wxItemPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxWindowPropertyInfo::InstantiateResource(resource); - - wxControl *item = (wxControl *)m_propertyWindow; - wxString str(item->GetLabel()); - resource->SetTitle(str); - - if (item->GetFont().Ok()) - resource->SetFont(* wxTheFontList->FindOrCreateFont(item->GetFont().GetPointSize(), - item->GetFont().GetFamily(), item->GetFont().GetStyle(), item->GetFont().GetWeight(), - item->GetFont().GetUnderlined(), item->GetFont().GetFaceName())); - return TRUE; -} - -/* - * Button - */ - -wxProperty *wxButtonPropertyInfo::GetProperty(wxString& name) -{ - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxButtonPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxButtonPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("label"); -} - -bool wxButtonPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * wxBitmapButton - */ - -wxProperty *wxBitmapButtonPropertyInfo::GetProperty(wxString& name) -{ - wxBitmapButton *button = (wxBitmapButton *)m_propertyWindow; - if (name == "bitmapFilename") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(button); - wxString str("none.bmp"); - - if (resource) - { - str = wxResourceManager::GetCurrentResourceManager()->FindBitmapFilenameForResource(resource); - } - return new wxProperty("bitmapFilename", str.GetData(), "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp")); - } - else - return wxButtonPropertyInfo::GetProperty(name); -} - -bool wxBitmapButtonPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxBitmapButton *button = (wxBitmapButton *)m_propertyWindow; - if (name == "bitmapFilename") - { - char *s = property->GetValue().StringValue(); - if (s && wxFileExists(s)) - { - wxString str(s); - wxBitmap *bitmap = new wxBitmap(str, wxBITMAP_TYPE_BMP); - if (!bitmap->Ok()) - { - delete bitmap; - return FALSE; - } - else - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(button); - if (resource) - { - wxString oldResource(resource->GetValue4()); - wxString resName = wxResourceManager::GetCurrentResourceManager()->AddBitmapResource(str); - resource->SetValue4(resName); - - if (!oldResource.IsNull()) - wxResourceManager::GetCurrentResourceManager()->PossiblyDeleteBitmapResource(oldResource); - } - - button->SetLabel(* bitmap); - return TRUE; - } - } - return FALSE; - } - else - return wxButtonPropertyInfo::SetProperty(name, property); -} - -void wxBitmapButtonPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxButtonPropertyInfo::GetPropertyNames(names); - names.Delete("label"); - names.Add("bitmapFilename"); -} - -bool wxBitmapButtonPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * wxStaticText - */ - -wxProperty *wxStaticTextPropertyInfo::GetProperty(wxString& name) -{ - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxStaticTextPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxStaticTextPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("label"); -} - -bool wxStaticTextPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * wxStaticBitmap - */ - -wxProperty *wxStaticBitmapPropertyInfo::GetProperty(wxString& name) -{ - wxStaticBitmap *message = (wxStaticBitmap *)m_propertyWindow; - if (name == "bitmapFilename") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(message); - wxString str("none.bmp"); - - if (resource) - { - str = wxResourceManager::GetCurrentResourceManager()->FindBitmapFilenameForResource(resource); - } - return new wxProperty("bitmapFilename", str.GetData(), "string", new wxFilenameListValidator("Select a bitmap file", "*.bmp")); - } - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxStaticBitmapPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxStaticBitmap *message = (wxStaticBitmap *)m_propertyWindow; - if (name == "bitmapFilename") - { - char *s = property->GetValue().StringValue(); - if (s && wxFileExists(s)) - { - wxString str(s); - - wxBitmap *bitmap = new wxBitmap(str, wxBITMAP_TYPE_BMP); - if (!bitmap->Ok()) - { - delete bitmap; - return FALSE; - } - else - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(message); - if (resource) - { - wxString oldResource(resource->GetValue4()); - wxString resName = wxResourceManager::GetCurrentResourceManager()->AddBitmapResource(str); - resource->SetValue4(resName); - - if (!oldResource.IsNull()) - wxResourceManager::GetCurrentResourceManager()->PossiblyDeleteBitmapResource(oldResource); - } - - message->SetBitmap(* bitmap); - return TRUE; - } - } - return FALSE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxStaticBitmapPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("bitmapFilename"); -} - -bool wxStaticBitmapPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Text item - */ - -wxProperty *wxTextPropertyInfo::GetProperty(wxString& name) -{ - wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow; - if (name == "value") - return new wxProperty("value", text->GetValue(), "string"); - else if (name == "password") - { - bool isPassword = ((text->GetWindowStyleFlag() & wxTE_PASSWORD) == wxTE_PASSWORD); - return new wxProperty("password", isPassword, "bool"); - } - else if (name == "readonly") - { - bool isReadOnly = ((text->GetWindowStyleFlag() & wxTE_READONLY) == wxTE_READONLY); - return new wxProperty("readonly", isReadOnly, "bool"); - } - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxTextPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow; - if (name == "value") - { - text->SetValue(property->GetValue().StringValue()); - return TRUE; - } - else if (name == "password") - { - long flag = text->GetWindowStyleFlag(); - if (property->GetValue().BoolValue()) - { - if ((flag & wxTE_PASSWORD) != wxTE_PASSWORD) - flag |= wxTE_PASSWORD; - } - else - { - if ((flag & wxTE_PASSWORD) == wxTE_PASSWORD) - flag -= wxTE_PASSWORD; - } - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(text); - resource->SetStyle(flag); - - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(text, this); - return TRUE; - } - else if (name == "readonly") - { - long flag = text->GetWindowStyleFlag(); - if (property->GetValue().BoolValue()) - { - if ((flag & wxTE_READONLY) != wxTE_READONLY) - flag |= wxTE_READONLY; - } - else - { - if ((flag & wxTE_READONLY) == wxTE_READONLY) - flag -= wxTE_READONLY; - } - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(text); - resource->SetStyle(flag); - - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(text, this); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxTextPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("value"); - names.Add("readonly"); - names.Add("password"); -} - -bool wxTextPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxTextCtrl *text = (wxTextCtrl *)m_propertyWindow; - wxString str(text->GetValue()); - resource->SetValue4(str); - - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Listbox item - */ - -wxProperty *wxListBoxPropertyInfo::GetProperty(wxString& name) -{ - wxListBox *listBox = (wxListBox *)m_propertyWindow; - if (name == "values") - { - wxStringList *stringList = new wxStringList; - int i; - for (i = 0; i < listBox->Number(); i++) - stringList->Add(listBox->GetString(i)); - - return new wxProperty(name, stringList, "stringlist"); - } - else if (name == "multiple") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox); - if (!resource) - return NULL; - - char *mult = "wxLB_SINGLE"; - - if ((listBox->GetWindowStyleFlag() & wxLB_MULTIPLE) != 0) - mult = "wxLB_MULTIPLE"; - else if ((listBox->GetWindowStyleFlag() & wxLB_EXTENDED) != 0) - mult = "wxLB_EXTENDED"; - else - mult = "wxLB_SINGLE"; - - return new wxProperty("multiple", mult, "string", - new wxStringListValidator(new wxStringList("wxLB_SINGLE", "wxLB_MULTIPLE", "wxLB_EXTENDED", - NULL))); - } - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxListBoxPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxListBox *listBox = (wxListBox *)m_propertyWindow; - if (name == "values") - { - listBox->Clear(); - wxPropertyValue *expr = property->GetValue().GetFirst(); - while (expr) - { - char *s = expr->StringValue(); - if (s) - listBox->Append(s); - expr = expr->GetNext(); - } - return TRUE; - } - else if (name == "multiple") - { - SetWindowStyle(m_propertyWindow, wxLB_SINGLE, FALSE); - SetWindowStyle(m_propertyWindow, wxLB_MULTIPLE, FALSE); - SetWindowStyle(m_propertyWindow, wxLB_EXTENDED, FALSE); - - wxString str(property->GetValue().StringValue()); - if (str == "wxLB_MULTIPLE") - SetWindowStyle(m_propertyWindow, wxLB_MULTIPLE, TRUE); - else if (str == "wxLB_EXTENDED") - SetWindowStyle(m_propertyWindow, wxLB_EXTENDED, TRUE); - else - SetWindowStyle(m_propertyWindow, wxLB_SINGLE, TRUE); - - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(listBox); - if (resource) - resource->SetStyle(m_propertyWindow->GetWindowStyleFlag()); - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(listBox, this); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxListBoxPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("values"); - names.Add("multiple"); -} - -bool wxListBoxPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxListBox *lbox = (wxListBox *)m_propertyWindow; - // This will be set for the wxItemResource on reading or in SetProperty -// resource->SetValue1(lbox->GetSelectionMode()); - int i; - if (lbox->Number() == 0) - resource->SetStringValues(NULL); - else - { - wxStringList slist; - - for (i = 0; i < lbox->Number(); i++) - slist.Add(lbox->GetString(i)); - - resource->SetStringValues(slist); - } - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Choice item - */ - -wxProperty *wxChoicePropertyInfo::GetProperty(wxString& name) -{ - wxChoice *choice = (wxChoice *)m_propertyWindow; - if (name == "values") - { - wxStringList* stringList = new wxStringList; - int i; - for (i = 0; i < choice->Number(); i++) - stringList->Add(choice->GetString(i)); - - return new wxProperty(name, stringList, "stringlist"); - } - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxChoicePropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxChoice *choice = (wxChoice *)m_propertyWindow; - if (name == "values") - { - choice->Clear(); - wxPropertyValue *expr = property->GetValue().GetFirst(); - while (expr) - { - char *s = expr->StringValue(); - if (s) - choice->Append(s); - expr = expr->GetNext(); - } - if (choice->Number() > 0) - choice->SetSelection(0); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxChoicePropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("values"); -} - -bool wxChoicePropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxChoice *choice = (wxChoice *)m_propertyWindow; - int i; - if (choice->Number() == 0) - resource->SetStringValues(NULL); - else - { - wxStringList slist; - - for (i = 0; i < choice->Number(); i++) - slist.Add(choice->GetString(i)); - - resource->SetStringValues(slist); - } - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Choice item - */ - -wxProperty *wxComboBoxPropertyInfo::GetProperty(wxString& name) -{ - wxComboBox *choice = (wxComboBox *)m_propertyWindow; - if (name == "values") - { - wxStringList *stringList = new wxStringList; - int i; - for (i = 0; i < choice->Number(); i++) - stringList->Add(choice->GetString(i)); - - return new wxProperty(name, stringList, "stringlist"); - } - else if (name == "sort") - { - bool sort = ((m_propertyWindow->GetWindowStyleFlag() & wxCB_SORT) == wxCB_SORT); - return new wxProperty(name, sort, "bool"); - } - else if (name == "style") - { - wxString styleStr("dropdown"); - if (m_propertyWindow->GetWindowStyleFlag() & wxCB_SIMPLE) - styleStr = "simple"; - else if (m_propertyWindow->GetWindowStyleFlag() & wxCB_READONLY) - styleStr = "readonly"; - else - styleStr = "dropdown"; - - return new wxProperty(name, styleStr, "string", - new wxStringListValidator(new wxStringList("simple", "dropdown", "readonly", - NULL))); - } - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxComboBoxPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxComboBox *choice = (wxComboBox *)m_propertyWindow; - if (name == "values") - { - choice->Clear(); - wxPropertyValue *expr = property->GetValue().GetFirst(); - while (expr) - { - char *s = expr->StringValue(); - if (s) - choice->Append(s); - expr = expr->GetNext(); - } - if (choice->Number() > 0) - choice->SetSelection(0); - return TRUE; - } - else if (name == "sort") - { - SetWindowStyle(m_propertyWindow, wxCB_SORT, property->GetValue().BoolValue()); - - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - resource->SetStyle(m_propertyWindow->GetWindowStyleFlag()); - - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(m_propertyWindow, this); - return TRUE; - } - else if (name == "style") - { - SetWindowStyle(m_propertyWindow, wxCB_SIMPLE, FALSE); - SetWindowStyle(m_propertyWindow, wxCB_DROPDOWN, FALSE); - SetWindowStyle(m_propertyWindow, wxCB_READONLY, FALSE); - - wxString styleStr(property->GetValue().StringValue()); - if (styleStr == "simple") - SetWindowStyle(m_propertyWindow, wxCB_SIMPLE, TRUE); - else if (styleStr == "dropdown") - SetWindowStyle(m_propertyWindow, wxCB_DROPDOWN, TRUE); - else if (styleStr == "readonly") - SetWindowStyle(m_propertyWindow, wxCB_READONLY, TRUE); - - // Necesary? - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - resource->SetStyle(m_propertyWindow->GetWindowStyleFlag()); - - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(m_propertyWindow, this); - - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxComboBoxPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("values"); - names.Add("style"); - names.Add("sort"); -} - -bool wxComboBoxPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxComboBox *choice = (wxComboBox *)m_propertyWindow; - int i; - if (choice->Number() == 0) - resource->SetStringValues(NULL); - else - { - wxStringList slist; - - for (i = 0; i < choice->Number(); i++) - slist.Add(choice->GetString(i)); - - resource->SetStringValues(slist); - } - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Radiobox item - */ - -wxProperty *wxRadioBoxPropertyInfo::GetProperty(wxString& name) -{ - wxRadioBox *radioBox = (wxRadioBox *)m_propertyWindow; - if (name == "numberRowsOrCols") - { - return new wxProperty("numberRowsOrCols", (long)radioBox->GetNumberOfRowsOrCols(), "integer"); - } - if (name == "orientation") - { - wxString orient; - if (m_propertyWindow->GetWindowStyleFlag() & wxRA_SPECIFY_COLS) - orient = "wxRA_SPECIFY_COLS"; - else - orient = "wxRA_SPECIFY_ROWS"; - - return new wxProperty("orientation", orient, "string", - new wxStringListValidator(new wxStringList("wxRA_SPECIFY_COLS", "wxRA_SPECIFY_ROWS", - NULL))); - } - else if (name == "values") - { - wxStringList *stringList = new wxStringList; - int i; - for (i = 0; i < radioBox->Number(); i++) - stringList->Add(radioBox->GetString(i)); - - return new wxProperty(name, stringList, "stringlist"); - } - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxRadioBoxPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxRadioBox *radioBox = (wxRadioBox *)m_propertyWindow; - if (name == "numberRowsOrCols") - { - radioBox->SetNumberOfRowsOrCols((int)property->GetValue().IntegerValue()); - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(radioBox, this); - return TRUE; - } - else if (name == "orientation") - { - long windowStyle = radioBox->GetWindowStyleFlag(); - wxString val(property->GetValue().StringValue()); - if (val == "wxRA_SPECIFY_COLS") - { - if (windowStyle & wxRA_SPECIFY_ROWS) - windowStyle -= wxRA_SPECIFY_ROWS; - windowStyle |= wxRA_SPECIFY_COLS; - } - else - { - if (windowStyle & wxRA_SPECIFY_COLS) - windowStyle -= wxRA_SPECIFY_COLS; - windowStyle |= wxRA_SPECIFY_ROWS; - } - radioBox->SetWindowStyleFlag(windowStyle); - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(radioBox); - resource->SetStyle(windowStyle); - - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(radioBox, this); - return TRUE; - } - else if (name == "values") - { - // Set property into *resource*, not wxRadioBox, and then recreate - // the wxRadioBox. This is because we can't dynamically set the strings - // of a wxRadioBox. - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - if (!resource) - return FALSE; - - wxStringList stringList; - wxPropertyValue *expr = property->GetValue().GetFirst(); - while (expr) - { - char *s = expr->StringValue(); - if (s) - stringList.Add(s); - expr = expr->GetNext(); - } - resource->SetStringValues(stringList); - m_propertyWindow = wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(radioBox, this); - return TRUE; - } - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxRadioBoxPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("label"); - names.Add("values"); - names.Add("orientation"); - names.Add("numberRowsOrCols"); -} - -bool wxRadioBoxPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxRadioBox *rbox = (wxRadioBox *)m_propertyWindow; - // Take strings from resource instead -/* - int i; - if (rbox->Number() == 0) - resource->SetStringValues(NULL); - else - { - wxStringList *slist = new wxStringList; - - for (i = 0; i < rbox->Number(); i++) - slist->Add(rbox->GetString(i)); - - resource->SetStringValues(slist); - } -*/ - resource->SetValue1(rbox->GetNumberOfRowsOrCols()); - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Groupbox item - */ - -wxProperty *wxGroupBoxPropertyInfo::GetProperty(wxString& name) -{ - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxGroupBoxPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxGroupBoxPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("label"); -} - -bool wxGroupBoxPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Checkbox item - */ - -wxProperty *wxCheckBoxPropertyInfo::GetProperty(wxString& name) -{ - wxCheckBox *checkBox = (wxCheckBox *)m_propertyWindow; - if (name == "value") - return new wxProperty("value", checkBox->GetValue(), "bool"); - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxCheckBoxPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxCheckBox *checkBox = (wxCheckBox *)m_propertyWindow; - if (name == "value") - { - checkBox->SetValue((bool)property->GetValue().BoolValue()); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxCheckBoxPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("label"); - names.Add("value"); -} - -bool wxCheckBoxPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxCheckBox *cbox = (wxCheckBox *)m_propertyWindow; - resource->SetValue1(cbox->GetValue()); - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Radiobutton item - */ - -wxProperty *wxRadioButtonPropertyInfo::GetProperty(wxString& name) -{ - wxRadioButton *checkBox = (wxRadioButton *)m_propertyWindow; - if (name == "value") - return new wxProperty("value", checkBox->GetValue(), "bool"); - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxRadioButtonPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxRadioButton *checkBox = (wxRadioButton *)m_propertyWindow; - if (name == "value") - { - checkBox->SetValue((bool)property->GetValue().BoolValue()); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxRadioButtonPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("label"); - names.Add("value"); -} - -bool wxRadioButtonPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxRadioButton *cbox = (wxRadioButton *)m_propertyWindow; - resource->SetValue1(cbox->GetValue()); - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Slider item - */ - -wxProperty *wxSliderPropertyInfo::GetProperty(wxString& name) -{ - wxSlider *slider = (wxSlider *)m_propertyWindow; - if (name == "value") - return new wxProperty("value", (long)slider->GetValue(), "integer"); - else if (name == "orientation") - { - char *pos = NULL; - if (m_propertyWindow->GetWindowStyleFlag() & wxHORIZONTAL) - pos = "wxHORIZONTAL"; - else - pos = "wxVERTICAL"; - - return new wxProperty("orientation", pos, "string", - new wxStringListValidator(new wxStringList("wxHORIZONTAL", "wxVERTICAL", - NULL))); - } - else if (name == "minValue") - return new wxProperty("minValue", (long)slider->GetMin(), "integer"); - else if (name == "maxValue") - return new wxProperty("maxValue", (long)slider->GetMax(), "integer"); - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxSliderPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxSlider *slider = (wxSlider *)m_propertyWindow; - if (name == "value") - { - slider->SetValue((int)property->GetValue().IntegerValue()); - return TRUE; - } - else if (name == "orientation") - { - long windowStyle = slider->GetWindowStyleFlag(); - long oldWindowStyle = windowStyle; - wxString val(property->GetValue().StringValue()); - if (val == "wxHORIZONTAL") - { - if (windowStyle & wxVERTICAL) - windowStyle -= wxVERTICAL; - windowStyle |= wxHORIZONTAL; - } - else - { - if (windowStyle & wxHORIZONTAL) - windowStyle -= wxHORIZONTAL; - windowStyle |= wxVERTICAL; - } - - if (oldWindowStyle == windowStyle) - return TRUE; - - slider->SetWindowStyleFlag(windowStyle); - - // If the window style has changed, we swap the width and height parameters. - int w, h; - slider->GetSize(&w, &h); - - slider = (wxSlider *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(slider, this); - slider->SetSize(-1, -1, h, w); - m_propertyWindow = slider; - - return TRUE; - } - else if (name == "minValue") - { - slider->SetRange((int)property->GetValue().IntegerValue(), slider->GetMax()); - return TRUE; - } - else if (name == "maxValue") - { - slider->SetRange(slider->GetMin(), (int)property->GetValue().IntegerValue()); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxSliderPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("value"); - names.Add("orientation"); - names.Add("minValue"); - names.Add("maxValue"); -} - -bool wxSliderPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxSlider *slider = (wxSlider *)m_propertyWindow; - resource->SetValue1(slider->GetValue()); - resource->SetValue2(slider->GetMin()); - resource->SetValue3(slider->GetMax()); - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Gauge item - */ - -wxProperty *wxGaugePropertyInfo::GetProperty(wxString& name) -{ - wxGauge *gauge = (wxGauge *)m_propertyWindow; - if (name == "value") - return new wxProperty("value", (long)gauge->GetValue(), "integer"); - else if (name == "maxValue") - return new wxProperty("maxValue", (long)gauge->GetRange(), "integer"); - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxGaugePropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxGauge *gauge = (wxGauge *)m_propertyWindow; - if (name == "value") - { - gauge->SetValue((int)property->GetValue().IntegerValue()); - return TRUE; - } - else if (name == "maxValue") - { - gauge->SetRange((int)property->GetValue().IntegerValue()); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxGaugePropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("value"); - names.Add("maxValue"); -} - -bool wxGaugePropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxGauge *gauge = (wxGauge *)m_propertyWindow; - resource->SetValue1(gauge->GetValue()); - resource->SetValue2(gauge->GetRange()); - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Scrollbar item - */ - -wxProperty *wxScrollBarPropertyInfo::GetProperty(wxString& name) -{ - wxScrollBar *scrollBar = (wxScrollBar *)m_propertyWindow; - if (name == "thumbPosition") - return new wxProperty("value", (long)scrollBar->GetThumbPosition(), "integer"); - else if (name == "orientation") - { - char *pos = NULL; - if (m_propertyWindow->GetWindowStyleFlag() & wxHORIZONTAL) - pos = "wxHORIZONTAL"; - else - pos = "wxVERTICAL"; - - return new wxProperty("orientation", pos, "string", - new wxStringListValidator(new wxStringList("wxHORIZONTAL", "wxVERTICAL", - NULL))); - } - else if (name == "pageSize") - { - int pageLength = scrollBar->GetPageSize(); - - return new wxProperty("pageSize", (long)pageLength, "integer"); - } - else if (name == "thumbSize") - { - int thumbSize = scrollBar->GetThumbSize(); - - return new wxProperty("thumbSize", (long)thumbSize, "integer"); - } - else if (name == "range") - { - int range = scrollBar->GetRange(); - return new wxProperty("range", (long)range, "integer"); - } - else - return wxItemPropertyInfo::GetProperty(name); -} - -bool wxScrollBarPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxScrollBar *scrollBar = (wxScrollBar *)m_propertyWindow; - if (name == "thumbPosition") - { - scrollBar->SetThumbPosition((int)property->GetValue().IntegerValue()); - return TRUE; - } - else if (name == "orientation") - { - long windowStyle = scrollBar->GetWindowStyleFlag(); - long oldWindowStyle = windowStyle; - wxString val(property->GetValue().StringValue()); - if (val == "wxHORIZONTAL") - { - if (windowStyle & wxVERTICAL) - windowStyle -= wxVERTICAL; - windowStyle |= wxHORIZONTAL; - } - else - { - if (windowStyle & wxHORIZONTAL) - windowStyle -= wxHORIZONTAL; - windowStyle |= wxVERTICAL; - } - - if (oldWindowStyle == windowStyle) - return TRUE; - - scrollBar->SetWindowStyleFlag(windowStyle); - - // If the window style has changed, we swap the width and height parameters. -// int w, h; -// scrollBar->GetSize(&w, &h); - wxItemResource *item = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(scrollBar); - if ( item ) { - item->SetSize(item->GetX(), item->GetY(), item->GetHeight(), item->GetWidth()); - item->SetStyle(windowStyle); - } /* IF */ - - scrollBar = (wxScrollBar *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(scrollBar, this); - m_propertyWindow = scrollBar; - - return TRUE; - } - else if (name == "pageSize") - { - int pos = scrollBar->GetThumbPosition(); - int range = scrollBar->GetRange(); - int thumbSize = scrollBar->GetThumbSize(); - scrollBar->SetScrollbar(pos, thumbSize, range, (int)property->GetValue().IntegerValue()); - return TRUE; - } - else if (name == "thumbSize") - { - int pos = scrollBar->GetThumbPosition(); - int range = scrollBar->GetRange(); - int pageSize = scrollBar->GetPageSize(); - scrollBar->SetScrollbar(pos, (int)property->GetValue().IntegerValue(), range, pageSize); - return TRUE; - } - else if (name == "range") - { - int pos = scrollBar->GetThumbPosition(); - int thumbSize = scrollBar->GetThumbSize(); - int pageSize = scrollBar->GetPageSize(); - scrollBar->SetScrollbar(pos, thumbSize, (int)property->GetValue().IntegerValue(), pageSize); - return TRUE; - } - else - return wxItemPropertyInfo::SetProperty(name, property); -} - -void wxScrollBarPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxItemPropertyInfo::GetPropertyNames(names); - names.Add("orientation"); - names.Add("thumbPosition"); - names.Add("thumbSize"); - names.Add("pageSize"); - names.Add("range"); - - // Remove some properties we don't inherit - names.Delete("fontPoints"); - names.Delete("fontFamily"); - names.Delete("fontStyle"); - names.Delete("fontWeight"); - names.Delete("fontUnderlined"); -} - -bool wxScrollBarPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxScrollBar *sbar = (wxScrollBar *)m_propertyWindow; - - int thumbPosition = sbar->GetThumbPosition(); - int thumbSize = sbar->GetThumbSize(); - int pageSize = sbar->GetPageSize(); - int range = sbar->GetRange(); - - resource->SetValue1(thumbPosition); - resource->SetValue2(thumbSize); - resource->SetValue3(range); - resource->SetValue5(pageSize); - - return wxItemPropertyInfo::InstantiateResource(resource); -} - -/* - * Panels - */ - -wxProperty *wxPanelPropertyInfo::GetProperty(wxString& name) -{ - wxPanel *panelWindow = (wxPanel *)m_propertyWindow; - -/* - wxFont *labelFont = panelWindow->GetLabelFont(); - wxFont *buttonFont = panelWindow->GetButtonFont(); - - if (name == "labelFontPoints" || name == "labelFontFamily" || name == "labelFontStyle" || name == "labelFontWeight" || - name == "labelFontUnderlined") - return GetFontProperty(name, labelFont); - else if (name == "buttonFontPoints" || name == "buttonFontFamily" || name == "buttonFontStyle" || name == "buttonFontWeight" || - name == "buttonFontUnderlined") - return GetFontProperty(name, buttonFont); -*/ - - if (name == "no3D") - { - bool userColours; - if (panelWindow->GetWindowStyleFlag() & wxNO_3D) - userColours = TRUE; - else - userColours = FALSE; - - return new wxProperty(name, (bool)userColours, "bool"); - } - else if (name == "backgroundColour") - { - wxColour col(panelWindow->GetBackgroundColour()); - char buf[7]; - wxDecToHex(col.Red(), buf); - wxDecToHex(col.Green(), buf+2); - wxDecToHex(col.Blue(), buf+4); - - return new wxProperty(name, buf, "string", new wxColourListValidator); - } - else if (name == "title") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - if (resource) - return new wxProperty(name, resource->GetTitle(), "string"); - else - return new wxProperty(name, "Could not get title", "string"); - } - else if (name == "caption") - { - return new wxProperty(name, ((panelWindow->GetWindowStyleFlag() & wxCAPTION) == wxCAPTION), - "bool"); - } - else if (name == "systemMenu") - { - return new wxProperty(name, ((panelWindow->GetWindowStyleFlag() & wxSYSTEM_MENU) == wxSYSTEM_MENU), - "bool"); - } - else if (name == "thickFrame") - { - return new wxProperty(name, ((panelWindow->GetWindowStyleFlag() & wxTHICK_FRAME) == wxTHICK_FRAME), - "bool"); - } - else if (name == "useSystemDefaults") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - return new wxProperty(name, ((resource->GetResourceStyle() & wxRESOURCE_USE_DEFAULTS) == wxRESOURCE_USE_DEFAULTS), - "bool"); - } - else if (name == "useDialogUnits") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - return new wxProperty(name, ((resource->GetResourceStyle() & wxRESOURCE_DIALOG_UNITS) == wxRESOURCE_DIALOG_UNITS), - "bool"); - } - else - return wxWindowPropertyInfo::GetProperty(name); -} - -bool wxPanelPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxPanel *panelWindow = (wxPanel *)m_propertyWindow; -/* - wxFont *labelFont = panelWindow->GetLabelFont(); - wxFont *buttonFont = panelWindow->GetButtonFont(); - - if (labelFont && (name == "labelFontPoints" || name == "labelFontFamily" || name == "labelFontStyle" || name == "labelFontWeight" || name == "labelFontUnderlined" )) - { - wxFont *newFont = SetFontProperty(name, property, labelFont); - if (newFont) - panelWindow->SetLabelFont(* newFont); - return TRUE; - } - else if (buttonFont && (name == "buttonFontPoints" || name == "buttonFontFamily" || name == "buttonFontStyle" || name == "buttonFontWeight" || name == "buttonFontUnderlined" )) - { - wxFont *newFont = SetFontProperty(name, property, buttonFont); - if (newFont) - panelWindow->SetButtonFont(* newFont); - return TRUE; - } -*/ - - if (name == "no3D") - { - bool userColours = property->GetValue().BoolValue(); - - if (userColours) - { - if ((panelWindow->GetWindowStyleFlag() & wxNO_3D) != wxNO_3D) - panelWindow->SetWindowStyleFlag(panelWindow->GetWindowStyleFlag() | wxNO_3D); - } - else - { - if ((panelWindow->GetWindowStyleFlag() & wxNO_3D) == wxNO_3D) - panelWindow->SetWindowStyleFlag(panelWindow->GetWindowStyleFlag() - wxNO_3D); - } - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - resource->SetStyle(panelWindow->GetWindowStyleFlag()); - - panelWindow = (wxPanel *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(panelWindow, this); - return TRUE; - } - else if (name == "backgroundColour") - { - char *hex = property->GetValue().StringValue(); - int r = wxHexToDec(hex); - int g = wxHexToDec(hex+2); - int b = wxHexToDec(hex+4); - - wxColour col(r,g,b); - panelWindow->SetBackgroundColour(col); - panelWindow = (wxPanel *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(panelWindow, this); - m_propertyWindow = panelWindow; - return TRUE; - } - else if (name == "title") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - if (resource) - { - resource->SetTitle(property->GetValue().StringValue()); - return TRUE; - } - else - return FALSE; - } - else if (name == "caption") - { - SetWindowStyle(panelWindow, wxCAPTION, property->GetValue().BoolValue()); - - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - resource->SetStyle(panelWindow->GetWindowStyleFlag()); - return TRUE; - } - else if (name == "thickFrame") - { - SetWindowStyle(panelWindow, wxTHICK_FRAME, property->GetValue().BoolValue()); - - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - resource->SetStyle(panelWindow->GetWindowStyleFlag()); - return TRUE; - } - else if (name == "systemMenu") - { - SetWindowStyle(panelWindow, wxSYSTEM_MENU, property->GetValue().BoolValue()); - - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - resource->SetStyle(panelWindow->GetWindowStyleFlag()); - return TRUE; - } - else if (name == "useSystemDefaults") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - bool useDefaults = property->GetValue().BoolValue(); - long style = resource->GetResourceStyle(); - if (useDefaults) - { - if ((style & wxRESOURCE_USE_DEFAULTS) == 0) - style |= wxRESOURCE_USE_DEFAULTS; - } - else - { - if ((style & wxRESOURCE_USE_DEFAULTS) != 0) - style -= wxRESOURCE_USE_DEFAULTS; - } - resource->SetResourceStyle(style); - panelWindow = (wxPanel *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(panelWindow, this); - return TRUE; - } - else if (name == "useDialogUnits") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(panelWindow); - bool useDialogUnits = property->GetValue().BoolValue(); - long style = resource->GetResourceStyle(); - if (useDialogUnits) - { - if ((style & wxRESOURCE_DIALOG_UNITS) == 0) - { - style |= wxRESOURCE_DIALOG_UNITS; - ConvertDialogUnits(TRUE); // Convert all resources - } - } - else - { - if ((style & wxRESOURCE_DIALOG_UNITS) != 0) - { - style -= wxRESOURCE_DIALOG_UNITS; - ConvertDialogUnits(FALSE); // Convert all resources - } - } - resource->SetResourceStyle(style); - panelWindow = (wxPanel *)wxResourceManager::GetCurrentResourceManager()->RecreateWindowFromResource(panelWindow, this); - m_propertyWindow = panelWindow; - // TODO: need to regenerate the width and height properties else they'll be inconsistent. - return TRUE; - } - else - return wxWindowPropertyInfo::SetProperty(name, property); -} - -void wxPanelPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxWindowPropertyInfo::GetPropertyNames(names); - - names.Add("title"); - names.Add("no3D"); - names.Add("backgroundColour"); - names.Add("caption"); - names.Add("systemMenu"); - names.Add("thickFrame"); - names.Add("useSystemDefaults"); - names.Add("useDialogUnits"); -} - -bool wxPanelPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxPanel *panel = (wxPanel *)m_propertyWindow; - if (panel->GetFont().Ok()) - resource->SetFont(* wxTheFontList->FindOrCreateFont(panel->GetFont().GetPointSize(), - panel->GetFont().GetFamily(), panel->GetFont().GetStyle(), panel->GetFont().GetWeight(), - panel->GetFont().GetUnderlined(), panel->GetFont().GetFaceName())); - - resource->SetBackgroundColour(wxColour(panel->GetBackgroundColour())); - - return wxWindowPropertyInfo::InstantiateResource(resource); -} - -// Convert this dialog, and its children, to or from dialog units -void wxPanelPropertyInfo::ConvertDialogUnits(bool toDialogUnits) -{ - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(m_propertyWindow); - - wxPoint pt; - wxSize sz; - if (toDialogUnits) - { - sz = m_propertyWindow->ConvertPixelsToDialog(wxSize(resource->GetWidth(), resource->GetHeight())); - pt = m_propertyWindow->ConvertPixelsToDialog(wxPoint(resource->GetX(), resource->GetY())); - } - else - { - sz = m_propertyWindow->ConvertDialogToPixels(wxSize(resource->GetWidth(), resource->GetHeight())); - pt = m_propertyWindow->ConvertDialogToPixels(wxPoint(resource->GetX(), resource->GetY())); - } - resource->SetSize(pt.x, pt.y, sz.x, sz.y); - - wxNode* node = m_propertyWindow->GetChildren().First(); - while (node) - { - wxWindow* child = (wxWindow*) node->Data(); - if (child->IsKindOf(CLASSINFO(wxControl))) - { - resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(child); - if (toDialogUnits) - { - sz = m_propertyWindow->ConvertPixelsToDialog(wxSize(resource->GetWidth(), resource->GetHeight())); - pt = m_propertyWindow->ConvertPixelsToDialog(wxPoint(resource->GetX(), resource->GetY())); - } - else - { - sz = m_propertyWindow->ConvertDialogToPixels(wxSize(resource->GetWidth(), resource->GetHeight())); - pt = m_propertyWindow->ConvertDialogToPixels(wxPoint(resource->GetX(), resource->GetY())); - } - resource->SetSize(pt.x, pt.y, sz.x, sz.y); - } - node = node->Next(); - } -} - -#if 0 -/* - * Dialog boxes - */ - -wxProperty *wxDialogPropertyInfo::GetProperty(wxString& name) -{ - wxDialog *dialogWindow = (wxDialog *)m_propertyWindow; - if (name == "modal") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(dialogWindow); - if (!resource) - return NULL; - - bool modal = (resource->GetValue1() != 0); - return new wxProperty(name, modal, "bool"); - } - else - return wxPanelPropertyInfo::GetProperty(name); -} - -bool wxDialogPropertyInfo::SetProperty(wxString& name, wxProperty *property) -{ - wxDialog *dialogWindow = (wxDialog *)m_propertyWindow; - - if (name == "modal") - { - wxItemResource *resource = wxResourceManager::GetCurrentResourceManager()->FindResourceForWindow(dialogWindow); - if (!resource) - return FALSE; - - resource->SetValue1(property->GetValue().BoolValue()); - return TRUE; - } - else - return wxPanelPropertyInfo::SetProperty(name, property); -} - -void wxDialogPropertyInfo::GetPropertyNames(wxStringList& names) -{ - wxPanelPropertyInfo::GetPropertyNames(names); - names.Add("title"); - names.Add("modal"); -} - -bool wxDialogPropertyInfo::InstantiateResource(wxItemResource *resource) -{ - wxDialog *dialog = (wxDialog *)m_propertyWindow; - wxString str(dialog->GetTitle()); - resource->SetTitle(str); - - return wxPanelPropertyInfo::InstantiateResource(resource); -} -#endif - -/* - * Utilities - */ - -int wxStringToFontWeight(wxString& val) -{ - if (val == "wxBOLD") return wxBOLD; - else if (val == "wxLIGHT") return wxLIGHT; - else return wxNORMAL; -} - -int wxStringToFontStyle(wxString& val) -{ - if (val == "wxITALIC") return wxITALIC; - else if (val == "wxSLANT") return wxSLANT; - else return wxNORMAL; -} - -int wxStringToFontFamily(wxString& val) -{ - if (val == "wxDECORATIVE") return wxDECORATIVE; - else if (val == "wxROMAN") return wxROMAN; - else if (val == "wxSCRIPT") return wxSCRIPT; - else if (val == "wxMODERN") return wxMODERN; - else if (val == "wxTELETYPE") return wxTELETYPE; - else return wxSWISS; -} - -/// -/// Resource symbol validator -/// -IMPLEMENT_DYNAMIC_CLASS(wxResourceSymbolValidator, wxPropertyListValidator) - -wxResourceSymbolValidator::wxResourceSymbolValidator(long flags): - wxPropertyListValidator(flags) -{ -} - -wxResourceSymbolValidator::~wxResourceSymbolValidator(void) -{ -} - -bool wxResourceSymbolValidator::OnCheckValue(wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow)) -{ - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxResourceSymbolValidator::OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString value(view->GetValueText()->GetValue()); - property->GetValue() = value ; - return TRUE; -} - -// Called when TICK is pressed or focus is lost or view wants to update -// the property list. -// Does the transferance from the property editing area to the property itself -bool wxResourceSymbolValidator::OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (!view->GetValueText()) - return FALSE; - wxString str(property->GetValue().GetStringRepresentation()); - view->GetValueText()->SetValue(str); - return TRUE; -} - -// Called when the property is double clicked. Extra functionality can be provided, -// cycling through possible values. -bool wxResourceSymbolValidator::OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return FALSE; - OnEdit(property, view, parentWindow); - return TRUE; -} - -bool wxResourceSymbolValidator::OnPrepareControls(wxProperty *WXUNUSED(property), wxPropertyListView *view, wxWindow *WXUNUSED(parentWindow)) -{ - if (view->GetConfirmButton()) - view->GetConfirmButton()->Enable(TRUE); - if (view->GetCancelButton()) - view->GetCancelButton()->Enable(TRUE); - if (view->GetEditButton()) - view->GetEditButton()->Enable(TRUE); - if (view->GetValueText()) - view->GetValueText()->Enable((GetFlags() & wxPROP_ALLOW_TEXT_EDITING) == wxPROP_ALLOW_TEXT_EDITING); - return TRUE; -} - -void wxResourceSymbolValidator::OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow) -{ - if (!view->GetValueText()) - return; - - wxResourceSymbolDialog* dialog = new wxResourceSymbolDialog(parentWindow, -1, "Edit Symbol"); - - // Split name/id pair e.g. "IDC_TEXT=123" - wxString value(property->GetValue().StringValue()); - - wxString strName = value.Before('='); - wxString strId = value.After('='); - - dialog->SetSymbol(strName); - dialog->SetId(atoi(strId)); - - dialog->Init(); - - if (dialog->ShowModal() == wxID_OK) - { - wxString symbolName(dialog->GetSymbol()); - long id = dialog->GetId(); - - wxString str; - str.Printf("%d", id); - property->GetValue() = symbolName + wxString("=") + str; - - view->DisplayProperty(property); - view->UpdatePropertyDisplayInList(property); - view->OnPropertyChanged(property); - } - // Moved from the 'if' branch on suggestion of Roman Pavlov - dialog->Destroy(); -} - -BEGIN_EVENT_TABLE(wxResourceSymbolDialog, wxDialog) - EVT_BUTTON(wxID_OK, wxResourceSymbolDialog::OnOK) - EVT_COMBOBOX(ID_SYMBOLNAME_COMBOBOX, wxResourceSymbolDialog::OnComboBoxSelect) - EVT_TEXT(ID_SYMBOLNAME_COMBOBOX, wxResourceSymbolDialog::OnSymbolNameUpdate) -END_EVENT_TABLE() - -wxResourceSymbolDialog::wxResourceSymbolDialog(wxWindow* parent, const wxWindowID id, const wxString& title, const wxPoint& pos, - const wxSize& size, long style): - wxDialog(parent, id, title, pos, size, style) -{ - int x = 5; - int y = 5; - - (void) new wxStaticText(this, -1, "Name: ", wxPoint(x, y)); - - x += 80; - - m_nameCtrl = new wxComboBox(this, ID_SYMBOLNAME_COMBOBOX, "", - wxPoint(x, y), wxSize(200, -1), 0, NULL, wxCB_DROPDOWN|wxCB_SORT); - - y += 30; - x = 5; - - (void) new wxStaticText(this, -1, "Id: ", wxPoint(x, y)); - - x += 80; - - m_idCtrl = new wxTextCtrl(this, ID_SYMBOLID_TEXTCTRL, "", - wxPoint(x, y), wxSize(200, -1)); - - y += 30; - x = 5; - (void) new wxButton(this, wxID_OK, "OK", wxPoint(x, y), wxSize(80, -1)); - - x += 100; - (void) new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(x, y), wxSize(80, -1)); - - Fit(); - Centre(); -} - -void wxResourceSymbolDialog::Init() -{ - wxString defaultId; - defaultId.Printf("%ld", m_symbolId); - - m_nameCtrl->SetValue(m_symbolName); - m_idCtrl->SetValue(defaultId); - - wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().FillComboBox(m_nameCtrl); -} - -void wxResourceSymbolDialog::OnOK(wxCommandEvent& event) -{ - if (CheckValues()) - { - wxDialog::OnOK(event); - } -} - -bool wxResourceSymbolDialog::CheckValues() -{ - wxString nameStr(m_nameCtrl->GetValue()); - wxString idStr(m_idCtrl->GetValue()); - int id = atoi(idStr); - - if (id <= 0 ) - { - wxMessageBox("Identifier cannot be missing or zero", "Dialog Editor", wxOK|wxICON_EXCLAMATION, this); - return FALSE; - } - if (nameStr == "") - { - wxMessageBox("Please enter a symbol name", "Dialog Editor", wxOK|wxICON_EXCLAMATION, this); - return FALSE; - } - if (nameStr.Contains(" ")) - { - wxMessageBox("Symbol name cannot contain spaces.", "Dialog Editor", wxOK|wxICON_EXCLAMATION, this); - return FALSE; - } - if (nameStr.Contains("=")) - { - wxMessageBox("Symbol name cannot contain =.", "Dialog Editor", wxOK|wxICON_EXCLAMATION, this); - return FALSE; - } - if (nameStr.IsNumber()) - { - wxMessageBox("Symbol name cannot be a number.", "Dialog Editor", wxOK|wxICON_EXCLAMATION, this); - return FALSE; - } - // TODO: other checks on the name syntax. - - if (!wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().IsStandardSymbol(nameStr)) - { - // If we change the id for an existing symbol, we need to: - // 1) Check if there are any other resources currently using the original id. - // If so, will need to change their id to the new id, in SetProperty. - // 2) Remove the old symbol, add the new symbol. - // In this check, we don't have to do this, but we need to do it in SetProperty. - - if (nameStr == GetSymbol() && id != GetId()) - { - // It's OK to change the id. But we'll need to change all matching ids in all resources, - // in SetProperty. - } - - // If we change the name but not the id... we'll just need to remove and - // re-add the symbol/id pair, in SetProperty. - if (nameStr != GetSymbol() && id == GetId()) - { - } - - // What if we're changing both the name and the id? - // - if there's no symbol of that name, just remove the old, add the new (in SetProperty) - // - if there is a symbol of that name, if id matches, do nothing. If not, veto. - - if (nameStr != GetSymbol() && id != GetId()) - { - if (!wxResourceManager::GetCurrentResourceManager()->IsIdentifierOK(nameStr, id)) - { - wxMessageBox("This integer id is already being used under a different name.\nPlease choose another.", - "Dialog Editor", wxOK|wxICON_EXCLAMATION, this); - return FALSE; - } - } - - } - - SetSymbol(nameStr); - SetId(id); - - return TRUE; -} - -void wxResourceSymbolDialog::OnComboBoxSelect(wxCommandEvent& WXUNUSED(event)) -{ - wxString str(m_nameCtrl->GetStringSelection()); - if (wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().IsStandardSymbol(str)) - { - int id = wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().GetIdForSymbol(str); - wxString str2; - str2.Printf("%d", id); - m_idCtrl->SetValue(str2); - m_idCtrl->Enable(FALSE); - } - else - { - if (wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().SymbolExists(str)) - { - int id = wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().GetIdForSymbol(str); - wxString str2; - str2.Printf("%d", id); - m_idCtrl->SetValue(str2); - } - m_idCtrl->Enable(TRUE); - } -} - -void wxResourceSymbolDialog::OnSymbolNameUpdate(wxCommandEvent& WXUNUSED(event)) -{ - wxString str(m_nameCtrl->GetValue()); - if (wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().IsStandardSymbol(str)) - { - int id = wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().GetIdForSymbol(str); - wxString str2; - str2.Printf("%d", id); - m_idCtrl->SetValue(str2); - m_idCtrl->Enable(FALSE); - } - else - { - if (wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().SymbolExists(str)) - { - int id = wxResourceManager::GetCurrentResourceManager()->GetSymbolTable().GetIdForSymbol(str); - wxString str2; - str2.Printf("%d", id); - m_idCtrl->SetValue(str2); - } - m_idCtrl->Enable(TRUE); - } -} - diff --git a/utils/dialoged/src/winprop.h b/utils/dialoged/src/winprop.h deleted file mode 100644 index 197963d61a..0000000000 --- a/utils/dialoged/src/winprop.h +++ /dev/null @@ -1,420 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: winprop.h -// Purpose: Window properties -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WINPROP_H_ -#define _WINPROP_H_ - -#ifdef __GNUG__ -#pragma interface "winprop.h" -#endif - -#include "reseditr.h" - -class wxPropertyInfo; - -class wxDialogEditorPropertyListFrame: public wxPropertyListFrame -{ - friend class wxPropertyInfo; -public: - wxDialogEditorPropertyListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, const wxString& name = "frame"); - ~wxDialogEditorPropertyListFrame(); - -private: - wxPropertySheet* m_propSheet; - wxPropertyValidatorRegistry m_registry; - wxPropertyInfo* m_propInfo; -}; - -// A kind of property list view that intercepts OnPropertyChanged -// feedback. -class wxResourcePropertyListView: public wxPropertyListView -{ - public: - wxResourcePropertyListView(wxPropertyInfo *info, wxPanel *propPanel = NULL, long flags = wxPROP_BUTTON_DEFAULT): - wxPropertyListView(propPanel, flags) - { - m_propertyInfo = info; - } - void OnPropertyChanged(wxProperty *property); - bool OnClose(void); - - wxPropertyInfo* m_propertyInfo; - -}; - -// Generic class for relating an object to a collection of properties. -// Instead of defining new functions like wxButton::GetProperty, wxButton::SetProperty, -// we take these functions out into of the wxWindows library and associate -// them with separate classes. -class wxPropertyInfo: public wxObject -{ - friend class wxDialogEditorPropertyListFrame; - protected: - static wxWindow *sm_propertyWindow; - wxPropertyInfo(void) - { - } - ~wxPropertyInfo(void) - { - } - public: - virtual wxProperty *GetProperty(wxString& propName) = 0; - virtual bool SetProperty(wxString& propName, wxProperty *property) = 0; - virtual void GetPropertyNames(wxStringList& names) = 0; - virtual bool Edit(wxWindow *parent, const wxString& title); -}; - -// For all windows -class wxWindowPropertyInfo: public wxPropertyInfo -{ - public: - wxWindowPropertyInfo(wxWindow *win, wxItemResource *res = NULL); - ~wxWindowPropertyInfo(void); - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - - inline void SetPropertyWindow(wxWindow *win) { m_propertyWindow = win; } - - inline void SetResource(wxItemResource *res) { m_propertyResource = res; } - - // Helper functions for font properties - - wxProperty *GetFontProperty(wxString& name, wxFont *font); - wxFont *SetFontProperty(wxString& name, wxProperty *property, wxFont *oldFont); - - // Fill in the wxItemResource members to mirror the current window settings - virtual bool InstantiateResource(wxItemResource *resource); - - // Set the window style - void SetWindowStyle(wxWindow* win, long style, bool set); - - protected: - wxWindow* m_propertyWindow; - wxItemResource* m_propertyResource; -}; - -// For panel items -class wxItemPropertyInfo: public wxWindowPropertyInfo -{ - protected: - public: - wxItemPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxWindowPropertyInfo(win, res) {} - ~wxItemPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For buttons -class wxButtonPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxButtonPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) { } - ~wxButtonPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For bitmap buttons -class wxBitmapButtonPropertyInfo: public wxButtonPropertyInfo -{ - protected: - public: - wxBitmapButtonPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxButtonPropertyInfo(win, res) { } - ~wxBitmapButtonPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For static text controls -class wxStaticTextPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxStaticTextPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) { } - ~wxStaticTextPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For static bitmap controls -class wxStaticBitmapPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxStaticBitmapPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) { } - ~wxStaticBitmapPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For text/multitext items -class wxTextPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxTextPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxTextPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For list boxes -class wxListBoxPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxListBoxPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxListBoxPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For choice items -class wxChoicePropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxChoicePropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxChoicePropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For choice items -class wxComboBoxPropertyInfo: public wxChoicePropertyInfo -{ - protected: - public: - wxComboBoxPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxChoicePropertyInfo(win, res) {} - ~wxComboBoxPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For radiobox items -class wxRadioBoxPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxRadioBoxPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxRadioBoxPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For groupbox items -class wxGroupBoxPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxGroupBoxPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxGroupBoxPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For checkbox items -class wxCheckBoxPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxCheckBoxPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxCheckBoxPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For radiobutton items -class wxRadioButtonPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxRadioButtonPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxRadioButtonPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For gauge items -class wxGaugePropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxGaugePropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxGaugePropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For scrollbar items -class wxScrollBarPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxScrollBarPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxScrollBarPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For slider items -class wxSliderPropertyInfo: public wxItemPropertyInfo -{ - protected: - public: - wxSliderPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxItemPropertyInfo(win, res) {} - ~wxSliderPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); -}; - -// For panels -class wxPanelPropertyInfo: public wxWindowPropertyInfo -{ - protected: - public: - wxPanelPropertyInfo(wxWindow *win, wxItemResource *res = NULL): - wxWindowPropertyInfo(win, res) {} - ~wxPanelPropertyInfo(void) {} - wxProperty *GetProperty(wxString& name); - bool SetProperty(wxString& name, wxProperty *property); - void GetPropertyNames(wxStringList& names); - bool InstantiateResource(wxItemResource *resource); - - // Convert this dialog, and its children, to or from dialog units - void ConvertDialogUnits(bool toDialogUnits); -}; - -int wxStringToFontWeight(wxString& val); -int wxStringToFontStyle(wxString& val); -int wxStringToFontFamily(wxString& val); - -/* - * A validator to allow editing symbol/id pairs - */ - -class wxResourceSymbolValidator: public wxPropertyListValidator -{ - DECLARE_DYNAMIC_CLASS(wxResourceSymbolValidator) - protected: - public: - wxResourceSymbolValidator(long flags = 0); - - ~wxResourceSymbolValidator(void); - - // Called when TICK is pressed or focus is lost. - // Return FALSE if value didn't check out; signal to restore old value. - bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when TICK is pressed or focus is lost or view wants to update - // the property list. - // Does the transferance from the property editing area to the property itself - bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - - // Called when the edit (...) button is pressed. - void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); -}; - -/* - * A dialog for editing symbol/id pairs - */ - -class wxResourceSymbolDialog: public wxDialog -{ -public: - wxResourceSymbolDialog(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE|wxDIALOG_MODAL); - - void Init(); - - inline void SetSymbol(const wxString& symbol) { m_symbolName = symbol; } - inline void SetId(long id) { m_symbolId = id; } - - inline wxString GetSymbol() const { return m_symbolName; } - inline long GetId() const { return m_symbolId; } - - bool CheckValues(); - void OnOK(wxCommandEvent& event); - void OnComboBoxSelect(wxCommandEvent& event); - void OnSymbolNameUpdate(wxCommandEvent& event); - -protected: - wxString m_symbolName; - long m_symbolId; - wxComboBox* m_nameCtrl; - wxTextCtrl* m_idCtrl; - -DECLARE_EVENT_TABLE() -}; - -#define ID_SYMBOLNAME_COMBOBOX 100 -#define ID_SYMBOLID_TEXTCTRL 101 - -#endif - // _WINPROP_H_ diff --git a/utils/dialoged/src/winstyle.cpp b/utils/dialoged/src/winstyle.cpp deleted file mode 100644 index 47b5e92f93..0000000000 --- a/utils/dialoged/src/winstyle.cpp +++ /dev/null @@ -1,385 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: winstyle.cpp -// Purpose: Window styles -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "winstyle.h" -#endif - -// 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 -#include -#include -#include - -#include "winstyle.h" - -/* - * Styles - */ - - /* wxListBox */ -static wxWindowStylePair g_WindowStylesListBox[] = { - { "wxLB_SINGLE", wxLB_SINGLE }, - { "wxLB_MULTIPLE", wxLB_MULTIPLE }, - { "wxLB_EXTENDED", wxLB_EXTENDED }, - { "wxLB_NEEDED_SB", wxLB_NEEDED_SB }, - { "wxLB_ALWAYS_SB", wxLB_ALWAYS_SB }, - { "wxLB_SORT", wxLB_SORT }, - { "wxLB_OWNERDRAW", wxLB_OWNERDRAW }, - { "wxLB_HSCROLL", wxLB_HSCROLL } -}; - -int g_WindowStylesListBoxCount = sizeof(g_WindowStylesListBox)/sizeof(wxWindowStylePair) ; - - /* wxComboxBox */ -static wxWindowStylePair g_WindowStylesComboBox[] = { - { "wxCB_SIMPLE", wxCB_SIMPLE }, - { "wxCB_DROPDOWN", wxCB_DROPDOWN }, - { "wxCB_READONLY", wxCB_READONLY }, - { "wxCB_SORT", wxCB_SORT } -}; - -int g_WindowStylesComboBoxCount = sizeof(g_WindowStylesComboBox)/sizeof(wxWindowStylePair) ; - -#if 0 - /* wxChoice */ -static wxWindowStylePair g_WindowStylesChoice[] = { -}; - -int g_WindowStylesChoiceCount = sizeof(g_WindowStylesChoice)/sizeof(wxWindowStylePair) ; -#endif - - /* wxGauge */ -static wxWindowStylePair g_WindowStylesGauge[] = { - { "wxGA_PROGRESSBAR", wxGA_PROGRESSBAR }, - { "wxGA_HORIZONTAL", wxGA_HORIZONTAL }, - { "wxGA_VERTICAL", wxGA_VERTICAL } -}; - -int g_WindowStylesGaugeCount = sizeof(g_WindowStylesGauge)/sizeof(wxWindowStylePair) ; - - /* wxTextCtrl */ -static wxWindowStylePair g_WindowStylesTextCtrl[] = { -// { "wxPASSWORD", wxPASSWORD}, -// { "wxPROCESS_ENTER", wxPROCESS_ENTER}, - { "wxTE_PASSWORD", wxTE_PASSWORD}, - { "wxTE_READONLY", wxTE_READONLY}, - { "wxTE_PROCESS_ENTER", wxTE_PROCESS_ENTER}, - { "wxTE_MULTILINE", wxTE_MULTILINE} -}; - -int g_WindowStylesTextCtrlCount = sizeof(g_WindowStylesTextCtrl)/sizeof(wxWindowStylePair) ; - - /* wxRadioButton */ -static wxWindowStylePair g_WindowStylesRadioButton[] = { - { "wxRB_GROUP", wxRB_GROUP } -}; - -int g_WindowStylesRadioButtonCount = sizeof(g_WindowStylesRadioButton)/sizeof(wxWindowStylePair) ; - - /* wxRadioBox */ -static wxWindowStylePair g_WindowStylesRadioBox[] = { - { "wxRA_SPECIFY_COLS", wxRA_SPECIFY_COLS }, - { "wxRA_SPECIFY_ROWS", wxRA_SPECIFY_ROWS } -/* - , - { "wxRA_HORIZONTAL", wxRA_HORIZONTAL }, - { "wxRA_VERTICAL", wxRA_VERTICAL } -*/ -}; - -int g_WindowStylesRadioBoxCount = sizeof(g_WindowStylesRadioBox)/sizeof(wxWindowStylePair) ; - - /* wxSlider */ -static wxWindowStylePair g_WindowStylesSlider[] = { - { "wxSL_HORIZONTAL", wxSL_HORIZONTAL }, - { "wxSL_VERTICAL", wxSL_VERTICAL }, - { "wxSL_AUTOTICKS", wxSL_AUTOTICKS }, - { "wxSL_LABELS", wxSL_LABELS }, - { "wxSL_LEFT", wxSL_LEFT }, - { "wxSL_TOP", wxSL_TOP }, - { "wxSL_RIGHT", wxSL_RIGHT }, - { "wxSL_BOTTOM", wxSL_BOTTOM }, - { "wxSL_BOTH", wxSL_BOTH }, - { "wxSL_SELRANGE", wxSL_SELRANGE } -}; - -int g_WindowStylesSliderCount = sizeof(g_WindowStylesSlider)/sizeof(wxWindowStylePair) ; - - /* wxScrollBar */ -static wxWindowStylePair g_WindowStylesScrollBar[] = { - { "wxSB_HORIZONTAL", wxSB_HORIZONTAL }, - { "wxSB_VERTICAL", wxSB_VERTICAL } -}; - -int g_WindowStylesScrollBarCount = sizeof(g_WindowStylesScrollBar)/sizeof(wxWindowStylePair) ; - - /* wxButton */ -static wxWindowStylePair g_WindowStylesButton[] = { - { "wxBU_AUTODRAW", wxBU_AUTODRAW }, - { "wxBU_NOAUTODRAW", wxBU_NOAUTODRAW } -}; - -int g_WindowStylesButtonCount = sizeof(g_WindowStylesButton)/sizeof(wxWindowStylePair) ; - - /* wxTreeCtrl */ -static wxWindowStylePair g_WindowStylesTreeCtrl[] = { - { "wxTR_HAS_BUTTONS", wxTR_HAS_BUTTONS }, - { "wxTR_EDIT_LABELS", wxTR_EDIT_LABELS }, - { "wxTR_LINES_AT_ROOT", wxTR_LINES_AT_ROOT } -}; - -int g_WindowStylesTreeCtrlCount = sizeof(g_WindowStylesTreeCtrl)/sizeof(wxWindowStylePair) ; - - /* wxListCtrl */ -static wxWindowStylePair g_WindowStylesListCtrl[] = { - { "wxLC_ICON", wxLC_ICON }, - { "wxLC_SMALL_ICON", wxLC_SMALL_ICON }, - { "wxLC_LIST", wxLC_LIST }, - { "wxLC_REPORT", wxLC_REPORT }, - { "wxLC_ALIGN_TOP", wxLC_ALIGN_TOP }, - { "wxLC_ALIGN_LEFT", wxLC_ALIGN_LEFT }, - { "wxLC_AUTOARRANGE", wxLC_AUTOARRANGE }, - { "wxLC_USER_TEXT", wxLC_USER_TEXT }, - { "wxLC_EDIT_LABELS", wxLC_EDIT_LABELS }, - { "wxLC_NO_HEADER", wxLC_NO_HEADER }, - { "wxLC_NO_SORT_HEADER", wxLC_NO_SORT_HEADER }, - { "wxLC_SINGLE_SEL", wxLC_SINGLE_SEL }, - { "wxLC_SORT_ASCENDING", wxLC_SORT_ASCENDING }, - { "wxLC_SORT_DESCENDING", wxLC_SORT_DESCENDING } -}; - -int g_WindowStylesListCtrlCount = sizeof(g_WindowStylesListCtrl)/sizeof(wxWindowStylePair) ; - - /* wxSpinButton */ -static wxWindowStylePair g_WindowStylesSpinButton[] = { - { "wxSP_VERTICAL", wxSP_VERTICAL}, - { "wxSP_HORIZONTAL", wxSP_HORIZONTAL}, - { "wxSP_ARROW_KEYS", wxSP_ARROW_KEYS}, - { "wxSP_WRAP", wxSP_WRAP} -}; - -int g_WindowStylesSpinButtonCount = sizeof(g_WindowStylesSpinButton)/sizeof(wxWindowStylePair) ; - - /* wxSplitterWindow */ -static wxWindowStylePair g_WindowStylesSplitterWindow[] = { - { "wxSP_NOBORDER", wxSP_NOBORDER}, - { "wxSP_3D", wxSP_3D}, - { "wxSP_BORDER", wxSP_BORDER} -}; - -int g_WindowStylesSplitterWindowCount = sizeof(g_WindowStylesSplitterWindow)/sizeof(wxWindowStylePair) ; - - /* wxTabCtrl */ -static wxWindowStylePair g_WindowStylesTabCtrl[] = { - { "wxTC_MULTILINE", wxTC_MULTILINE}, - { "wxTC_RIGHTJUSTIFY", wxTC_RIGHTJUSTIFY}, - { "wxTC_FIXEDWIDTH", wxTC_FIXEDWIDTH}, - { "wxTC_OWNERDRAW", wxTC_OWNERDRAW} -}; - -int g_WindowStylesTabCtrlCount = sizeof(g_WindowStylesTabCtrl)/sizeof(wxWindowStylePair) ; - - /* wxStatusBar95 */ -static wxWindowStylePair g_WindowStylesStatusBar[] = { - { "wxST_SIZEGRIP", wxST_SIZEGRIP} -}; - -int g_WindowStylesStatusBarCount = sizeof(g_WindowStylesStatusBar)/sizeof(wxWindowStylePair) ; - - /* wxControl */ -static wxWindowStylePair g_WindowStylesControl[] = { - { "wxFIXED_LENGTH", wxFIXED_LENGTH}, - { "wxALIGN_LEFT", wxALIGN_LEFT}, - { "wxALIGN_CENTRE", wxALIGN_CENTRE}, - { "wxALIGN_RIGHT", wxALIGN_RIGHT}, - { "wxCOLOURED", wxCOLOURED} -}; - -int g_WindowStylesControlCount = sizeof(g_WindowStylesControl)/sizeof(wxWindowStylePair) ; - - /* wxToolBar */ -static wxWindowStylePair g_WindowStylesToolBar[] = { - { "wxTB_3DBUTTONS", wxTB_3DBUTTONS}, - { "wxTB_HORIZONTAL", wxTB_HORIZONTAL}, - { "wxTB_VERTICAL", wxTB_VERTICAL}, - { "wxTB_FLAT", wxTB_FLAT} -}; - -int g_WindowStylesToolBarCount = sizeof(g_WindowStylesToolBar)/sizeof(wxWindowStylePair) ; - - /* Frame/dialog */ -static wxWindowStylePair g_WindowStylesDialog[] = { - { "wxSTAY_ON_TOP", wxSTAY_ON_TOP}, - { "wxCAPTION", wxCAPTION}, - { "wxICONIZE", wxICONIZE}, - { "wxMINIMIZE", wxICONIZE}, - { "wxMAXIMIZE", wxMAXIMIZE}, - { "wxTHICK_FRAME", wxTHICK_FRAME}, - { "wxRESIZE_BORDER", wxRESIZE_BORDER}, - { "wxSYSTEM_MENU", wxSYSTEM_MENU}, - { "wxMINIMIZE_BOX", wxMINIMIZE_BOX}, - { "wxMAXIMIZE_BOX", wxMAXIMIZE_BOX}, - { "wxRESIZE_BOX", wxRESIZE_BOX} -}; - -int g_WindowStylesDialogCount = sizeof(g_WindowStylesDialog)/sizeof(wxWindowStylePair) ; - - /* Generic */ -static wxWindowStylePair g_WindowStylesWindow[] = { - { "wxBORDER", wxBORDER}, - { "wxDOUBLE_BORDER", wxDOUBLE_BORDER}, - { "wxSUNKEN_BORDER", wxSUNKEN_BORDER}, - { "wxRAISED_BORDER", wxRAISED_BORDER}, - { "wxSIMPLE_BORDER", wxSIMPLE_BORDER}, - { "wxSTATIC_BORDER", wxSTATIC_BORDER}, - { "wxTRANSPARENT_WINDOW", wxTRANSPARENT_WINDOW}, - { "wxNO_BORDER", wxNO_BORDER}, - { "wxCLIP_CHILDREN", wxCLIP_CHILDREN} - -/* Would be duplicated with e.g. wxLB_HSCROLL - { "wxVSCROLL", wxVSCROLL }, - { "wxHSCROLL", wxHSCROLL } -*/ -}; - -int g_WindowStylesWindowCount = sizeof(g_WindowStylesWindow)/sizeof(wxWindowStylePair) ; - -/* - * A table holding all class style objects - */ - - -wxWindowStyleTable::wxWindowStyleTable(): - m_classes(wxKEY_STRING) -{ -} - -wxWindowStyleTable::~wxWindowStyleTable() -{ - ClearTable(); -} - -void wxWindowStyleTable::Init() -{ - AddStyles("wxWindow", g_WindowStylesWindowCount, g_WindowStylesWindow); - AddStyles("wxDialog", g_WindowStylesDialogCount, g_WindowStylesDialog); - AddStyles("wxButton", g_WindowStylesButtonCount, g_WindowStylesButton); - AddStyles("wxTextCtrl", g_WindowStylesTextCtrlCount, g_WindowStylesTextCtrl); - AddStyles("wxSpinButton", g_WindowStylesSpinButtonCount, g_WindowStylesSpinButton); - AddStyles("wxListBox", g_WindowStylesListBoxCount, g_WindowStylesListBox); - AddStyles("wxRadioButton", g_WindowStylesRadioButtonCount, g_WindowStylesRadioButton); - AddStyles("wxRadioBox", g_WindowStylesRadioBoxCount, g_WindowStylesRadioBox); - AddStyles("wxControl", g_WindowStylesControlCount, g_WindowStylesControl); - AddStyles("wxListCtrl", g_WindowStylesListCtrlCount, g_WindowStylesListCtrl); - AddStyles("wxTreeCtrl", g_WindowStylesTreeCtrlCount, g_WindowStylesTreeCtrl); - AddStyles("wxSlider", g_WindowStylesSliderCount, g_WindowStylesSlider); - AddStyles("wxGauge", g_WindowStylesGaugeCount, g_WindowStylesGauge); - AddStyles("wxComboBox", g_WindowStylesComboBoxCount, g_WindowStylesComboBox); -// AddStyles("wxChoice", g_WindowStylesChoice, g_WindowStylesChoice); - AddStyles("wxScrollBar", g_WindowStylesScrollBarCount, g_WindowStylesScrollBar); -} - -// Operations -void wxWindowStyleTable::ClearTable() -{ - wxNode* node = m_classes.First(); - while (node) - { - wxWindowStyleClass* styleClass = (wxWindowStyleClass*) node->Data(); - delete styleClass; - node = node->Next(); - } - m_classes.Clear(); -} - -void wxWindowStyleTable::AddStyles(const wxString& className, int n, wxWindowStylePair *styles) -{ - wxWindowStyleClass* styleClass = new wxWindowStyleClass(n, styles); - m_classes.Append(className, styleClass); -} - -wxWindowStyleClass* wxWindowStyleTable::FindClass(const wxString& className) -{ - wxNode* node = m_classes.Find(className); - if (node) - { - wxWindowStyleClass* styleClass = (wxWindowStyleClass*) node->Data(); - return styleClass; - } - else - return NULL; -} - -bool wxWindowStyleTable::GenerateStyleStrings(const wxString& className, long windowStyle, char *buf) -{ - wxWindowStyleClass* styleClass = FindClass(className); - if (!styleClass) - return FALSE; - - styleClass->GenerateStyleStrings(windowStyle, buf); - return TRUE; -} - -/* - * Holds all the styles for a particular class - */ - -wxWindowStyleClass::wxWindowStyleClass(int n, wxWindowStylePair *styles) -{ - m_styleCount = n; - m_styles = styles; -/* - m_styles = new wxWindowStylePair[n]; - int i; - for (i = 0; i < n; i++) - m_styles[i] = styles[i]; -*/ -} - -wxWindowStyleClass::~wxWindowStyleClass() -{ -} - -void wxWindowStyleClass::GenerateStyleStrings(long windowStyle, char *buf) -{ - int i; - for (i = 0; i < m_styleCount; i++) - GenerateStyle(buf, windowStyle, m_styles[i].m_styleId, m_styles[i].m_styleName); -} - -bool wxWindowStyleClass::GenerateStyle(char *buf, long windowStyle, long flag, const wxString& strStyle) -{ - // Ignore zero flags - if (flag == 0) - return TRUE; - - if ((windowStyle & flag) == flag) - { - if (strlen(buf) > 0) - strcat(buf, " | "); - strcat(buf, (const char*) strStyle); - return TRUE; - } - else - return FALSE; -} - diff --git a/utils/dialoged/src/winstyle.h b/utils/dialoged/src/winstyle.h deleted file mode 100644 index d7aaf063f4..0000000000 --- a/utils/dialoged/src/winstyle.h +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: winstyle.h -// Purpose: Window styles -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _DE_WINSTYLE_H_ -#define _DE_WINSTYLE_H_ - -#ifdef __GNUG__ -#pragma interface "winstyle.h" -#endif - -#include "wx/wx.h" - -/* - * A class for storing/generating window styles. - */ - -class wxWindowStyleClass; - -class wxWindowStylePair -{ - friend class wxWindowStyleClass; -public: - char* m_styleName; - long m_styleId; -}; - -class wxWindowStyleTable: public wxObject -{ -public: - wxWindowStyleTable(); - ~wxWindowStyleTable(); - -// Operations - void ClearTable(); - void AddStyles(const wxString& className, int n, wxWindowStylePair *styles); - wxWindowStyleClass* FindClass(const wxString& className) ; - bool GenerateStyleStrings(const wxString& className, long windowStyle, char *buf); - - // Initialise with all possible styles - void Init(); - -// Members -protected: - wxList m_classes; // A list of wxWindowStyleClass objects, indexed by class name - -}; - -/* - * Classes for storing all the window style identifiers associated with a particular class - */ - -class wxWindowStyleClass: public wxObject -{ -public: - wxWindowStyleClass(int n, wxWindowStylePair *styles); - ~wxWindowStyleClass(); - -// Operations - void GenerateStyleStrings(long windowStyle, char *buf); - bool GenerateStyle(char *buf, long windowStyle, long flag, const wxString& strStyle); - -// Members -protected: - wxWindowStylePair* m_styles; // An array of wxWindowStylePair objects - int m_styleCount; -}; - -#endif - // _DE_WINSTYLE_H_ diff --git a/utils/framelayout/README b/utils/framelayout/README deleted file mode 100644 index 3ec6e16bc3..0000000000 --- a/utils/framelayout/README +++ /dev/null @@ -1,120 +0,0 @@ -This is Aleksandras Gluchovas' framelayout library. - -Please read this file for information on compiling and reporting bugs. - ------------------------------------------------------------------------------ -ORGANIZATION ------------------------------------------------------------------------------ - -/src contains the library source. The default makefile will create a -(shared) library, for example wx_fl_gtk.so.0.1. - -/samples contains (so far) three samples, ingeniously called 'sample', -'test' and 'demo'. - -Each dir also contains an Unix Makefile.in for automatic makefile generation -for configure, but so far it's not automatic :-) -Instead, a shell script make_Linux_make is provided for this. It should be -trivial to adapt this for other systems that use a configure build. - -/samples/bitmaps contains bitmaps that are needed by the samples. - -YOU NEED TO RUN THE SAMPLES FROM THIS BITMAP DIR otherwise the binaries -can't find their pics and horrible things will ensue. - -<03-12-99 Russell> -/samples/demo/fl_demo no longer needs to be run from the bitmap dir under -windows, it now uses windows resources. - ------------------------------------------------------------------------------ -BUILDING ------------------------------------------------------------------------------ - -for Unix-like systems: - -./configure should have set things up nicely in the src dir. Just type make -; make install to build and install the library. - -to make the samples, run samples/make_Linux_make, then type make in each -sample dir. Non-Linux users should tweak the make_Linux_make script first. - -Note that a fl has not been tested with wxMotif yet... - -for Windows systems: - -The src directory contains a few untested makefiles. Pick one, and best of -luck! - -NOTE: src/Makefile.vc has been tested and works well. (Russell) - - -The samples directory and subdirectories contain (tested) Makefile.vc files -for use with Visual C++. Move to the samples directory and type -nmake -f Makefile.vc to build. Alternatively you can enter each sample -directory (demo,sample, etc) and run the command there to build the -individual sample. - ------------------------------------------------------------------------------ -BUGS ------------------------------------------------------------------------------ - -Aleksandras' (alex@soften.ktu.lt) has set up a web bug tracking system at - -http://devel.soften.ktu.lt:17000/fl_stuff.prj - -If you think the wxwindows developers might be interested as well, send a -mail to the list: - -wxwin-developers@wx.dent.med.uni-muenchen.de - -For questions/remarks about the organization of files and similar stuff you -can also contact me at H.v.d.Heijden@phys.tue.nl - ------------------------------------------------------------------------------ -ONE MORE WARNING ------------------------------------------------------------------------------ - -I've no experience with the Windows version, but X/GTK users beware! It's -not entirely impossible that the samples will crash your X-server, so save -important data in other apps before you start messing with this stuff! - -March 5, 1999 -Harm van der Heijden (H.v.d.Heijden@phys.tue.nl) - - -Original readme file follows: - ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ - -Subject: [wxwin-dev] fl-progress. - -Hello, - -just uploaded latest frame-layout stuff to: - -http://soften.ktu.lt/~alex/newest/fl_src_3_4.zip - -and shots to - -http://soften.ktu.lt/~alex/newest/fl_3_linux.gif -http://soften.ktu.lt/~alex/newest/fl_3_nt.gif - -Makefiles are currently for wxGtk (cannot write them -for windows compilers that easily), but the same -source code compiles and runs with MSVC (4.0) as well. - -There are three samples included: - -fl_test - shows off functionality of new plugins. -fl_sample - may serve as an fl programming-example. -fl_demo - more complex one, code adopted form the very first demo - that i've released 2months ago. - -(and manual.html, which is kind of useless at the moment) - -huh, singing off for 2days now... - -Best Regards, - -Aleksandras diff --git a/utils/framelayout/samples/bitmaps/bookmarks.bmp b/utils/framelayout/samples/bitmaps/bookmarks.bmp deleted file mode 100644 index d6a3a7977c3e617d4a9935ccea2db82b0204ce5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1650 zcmd6lF%H5o3`Nbt$c6+r-~>!e>|BN;pxzABYlYvq`gWZVh{RCKNuBTH)lPf8-M5nM zjQNCd#MonOEab4i zWGN+yz+nNwWhH^#zQ<{qU0DrWg%#=|3&b|Ak40RyQ)3}bV`)(Iytav1jd$b&V?iZC z?@PZXYf+Ft9Aab5Z_Iy#XF+dY6N$!BiKY2pj5q{5Sq7Gy>v9jjTV=15v9ZcrP})Ud gv$0%3CU)UI9t)ITmd5gReQl?THdZy=C9anB2DAwZasU7T diff --git a/utils/framelayout/samples/bitmaps/bookmarks.xpm b/utils/framelayout/samples/bitmaps/bookmarks.xpm deleted file mode 100644 index baab4a165c..0000000000 --- a/utils/framelayout/samples/bitmaps/bookmarks.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * bookmarks_xpm[] = { -"25 21 6 1", -" c None", -"+ c #000000", -"@ c #848284", -"# c #FFFF00", -"$ c #0000FF", -"% c #000084", -" ", -" ", -" ", -" +++++ ", -" ", -" ++++ + ", -" + ", -" ++++++ ++ ", -" @#### +$$+ ", -" ++##@@##+$$$+ ", -" @##@@##%$$%+ ", -" ++++@##+%$%%%++ ", -" @## +%%%%$$+ ", -" @## +%%%$$$+ ", -" +@@ +%%$$$+ ", -" +@## ++$$+ ", -" + @## @++ ", -" + @@@ ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/class_icon.bmp b/utils/framelayout/samples/bitmaps/class_icon.bmp deleted file mode 100644 index fe1a0c9d875f0738f4092ffb3ba246d7e30edda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmX|*F%p0v3c7N}fewNnvH}Pw;XuhTLt)QLt{0v^szV@?C?B z40iYxnz;B)MbM(!0LKWa c #FFFF00", -", c #0000FF", -"' c #FF00FF", -") c #00FFFF", -" ", -"..... ", -".,,,. ", -".,,,. ....", -".,,,.***.''.", -".,,,. * ....", -"..... * ", -" * ", -" * ....", -" **.)).", -" ....", -" "}; diff --git a/utils/framelayout/samples/bitmaps/class_icon1.bmp b/utils/framelayout/samples/bitmaps/class_icon1.bmp deleted file mode 100644 index ef9846d73761c0c9cb12e96d8f3b8d862dce5f6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H5FULpTuf|8NIHdbXvh1%iO;|NjReFau}k02M>z z$WRY58Vqon{{KJRd^9yMttd254IcGCuOK6!PD<1xTMRS@WEv_0ia2V|%RYJmWtAuuKi4L2N<0RSD{B6I)% diff --git a/utils/framelayout/samples/bitmaps/class_icon1.xpm b/utils/framelayout/samples/bitmaps/class_icon1.xpm deleted file mode 100644 index a0c55be786..0000000000 --- a/utils/framelayout/samples/bitmaps/class_icon1.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char * class_icon1_xpm[] = { -"16 16 6 1", -" c None", -". c #000000", -"@ c #0000FF", -"# c #FF00FF", -"$ c #848284", -"% c #00FFFF", -"....... ", -".@@@@@. .... ", -".@@@@@. .##. ", -".@@@@@.$$$$.##. ", -".@@@@@. $ .... ", -".@@@@@. $ ", -"....... $ ", -" $ ", -" $ .... ", -" $ .%%. ", -" $$$.%%. ", -" .... ", -" ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/copy.bmp b/utils/framelayout/samples/bitmaps/copy.bmp deleted file mode 100644 index 5e66fc8dfee60523cd6463a3082ea45718f8ba61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1566 zcmd^6K@P$&3=0Q#p_ zAvef1a$#Gb*=1=qteB+$7|-M9>koBKX00`yXEGm%Tx)^)44ubcy?-H`>x6zB=lKCK zJc2qw{}n&z@vLw7p$#Z=C3EJx5>dytaAe&vE7vb diff --git a/utils/framelayout/samples/bitmaps/copy.xpm b/utils/framelayout/samples/bitmaps/copy.xpm deleted file mode 100644 index bbc748b3b5..0000000000 --- a/utils/framelayout/samples/bitmaps/copy.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * copy_xpm[] = { -"23 21 4 1", -" c None", -"+ c #000000", -"@ c #FFFFFF", -"# c #000084", -" ", -" ", -" ", -" ", -" ++++++ ", -" +@@@@++ ", -" +@@@@+@+ ", -" +@++@+###### ", -" +@@@@@#@@@@## ", -" +@++++#@@@@#@# ", -" +@@@@@#@++@#### ", -" +@++++#@@@@@@@# ", -" +@@@@@#@+++++@# ", -" ++++++#@@@@@@@# ", -" #@+++++@# ", -" #@@@@@@@# ", -" ######### ", -" ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/cut.bmp b/utils/framelayout/samples/bitmaps/cut.bmp deleted file mode 100644 index cf9247f2ea214b307cc1357171e62ac93a47405c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1566 zcmdUqK?=h#3pO16$ERRBS_)M}2bwwpF_yEP5y+O1t7i)9{>OV diff --git a/utils/framelayout/samples/bitmaps/cut.xpm b/utils/framelayout/samples/bitmaps/cut.xpm deleted file mode 100644 index 9a072d3ce7..0000000000 --- a/utils/framelayout/samples/bitmaps/cut.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char * cut_xpm[] = { -"23 21 3 1", -" c None", -"+ c #000000", -"@ c #000084", -" ", -" ", -" ", -" ", -" + + ", -" + + ", -" + + ", -" ++ ++ ", -" + + ", -" +++ ", -" + ", -" @+@ ", -" @ @@@ ", -" @@@ @ @ ", -" @ @ @ @ ", -" @ @ @ @ ", -" @ @ @@ ", -" @@ ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/file_icon.bmp b/utils/framelayout/samples/bitmaps/file_icon.bmp deleted file mode 100644 index 941b5ccabf832c16f8ae8bd5fd57b0826860868f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmZ?ry~Y3mWk5;;h c #FFFF00", -", c #0000FF", -"' c #FF00FF", -") c #00FFFF", -"! c #FFFFFF", -" ....... ", -" .!!!!!.. ", -" .!$$$!. . ", -" .!!!!!.... ", -" .!$$$!!!!. ", -" .!!!!!!!!. ", -" .!$$$$$$!. ", -" .!!!!!!!!. ", -" .!$$$$$$!. ", -" .!!!!!!!!. ", -" .!!!!!!!!. ", -" .......... "}; diff --git a/utils/framelayout/samples/bitmaps/folder_icon.bmp b/utils/framelayout/samples/bitmaps/folder_icon.bmp deleted file mode 100644 index 7e45f597ec783ca50e4a5e668a26bb9e70c6b45d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 822 zcmZ?rHDhJ~12Z700mK4O%*Y@C7H5FULpTuf|KJ12&cn|Jy1k{Tg-8T63ZfoJ0$Iln zAHzce%|up@UolV?O+6lyAx5F8AL`~4Ohm~3#p+q00yG3S6DW?R1tg8*4+8O GymtfV4>MN) diff --git a/utils/framelayout/samples/bitmaps/help_icon.xpm b/utils/framelayout/samples/bitmaps/help_icon.xpm deleted file mode 100644 index c01e4e85d6..0000000000 --- a/utils/framelayout/samples/bitmaps/help_icon.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char * help_icon_xpm[] = { -"12 12 16 1", -" c None", -". c #000000", -"+ c #800000", -"@ c #008000", -"# c #808000", -"$ c #000080", -"% c #800080", -"& c #008080", -"* c #808080", -"- c #FF0000", -"; c #00FF00", -"> c #FFFF00", -", c #0000FF", -"' c #FF00FF", -") c #00FFFF", -"! c #FFFFFF", -" ..... ", -" .>>>>.. ", -" .>>..>>.. ", -" .>.. .>.. ", -" .>.. .>.. ", -" .. .>.. ", -" .>.. ", -" .>.. ", -" .. ", -" .>.. ", -" .>.. ", -" .. "}; diff --git a/utils/framelayout/samples/bitmaps/new.bmp b/utils/framelayout/samples/bitmaps/new.bmp deleted file mode 100644 index 1785f051bbbf21dc29ca1c483608ea13605f4ade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1398 zcmds#!41P83`OaoBSgvwouKC`_pFlvs%%y%Yb8H?V=U?rRkW8zfE?pze*?ofT|@lt zSZ|n}%uDE_{~`PFN0#Naw2aUKgZ(ydTRXC?XVD0=+ne}N<1&>`bTIae=}{KNktjb#!gjTqnZ;J7 oEj%%}SdfNxLH+MAJi;TC+nPvHq}E+H^GDmK{@nj*s2kACZ;(-pJOBUy diff --git a/utils/framelayout/samples/bitmaps/new.xpm b/utils/framelayout/samples/bitmaps/new.xpm deleted file mode 100644 index cd988df258..0000000000 --- a/utils/framelayout/samples/bitmaps/new.xpm +++ /dev/null @@ -1,29 +0,0 @@ -/* XPM */ -static char * new_xpm[] = { -"21 21 5 1", -" c None", -"+ c #FFFF00", -"@ c #848284", -"# c #000000", -"$ c #FFFFFF", -" ", -" ", -" ", -" + @+ @### ", -" @+ @$ @+$$## ", -" @+@+@+$$$#$# ", -" +@+$@@@@$#$$# ", -" @@@$++$$$$##### ", -" $@$$@##$$$$$# ", -" @ @+$$$$$$$$$# ", -" @$#######$$# ", -" #$$$$$$$$$$# ", -" #$#######$$# ", -" #$$$$$$$$$$# ", -" #$#######$$# ", -" #$$$$$$$$$$# ", -" #$$$$$$$$$$# ", -" ############ ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/nextmark.bmp b/utils/framelayout/samples/bitmaps/nextmark.bmp deleted file mode 100644 index ce916ee63d8457dd3f38949996a5084594337dfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1734 zcmdUt!41MN3`Na_BR3?(1WdpH+*t~B0CuA4TIDBS`k2J7D#QUICvu$l)!*smI&H0v zGu9L45p$2Zu>)4KJI==)XANMP9@7`?A9-xTa2sr%VZIwBSceaKKhcYvo=4Jb2E*_e z`AHb($N&wh&lM-X&apsnNb``S=(}657Qg)BMZgV4+>2utV~GWSwMEW m*6^AV{I=)4H_yutKjmTYJ04h(=5j zhfg7ffGoh&0uupBqS=MaMX?uT5IR6sjLC+p#*~7H5LAFmBeHhYggXHLKY*tt}dn}K>3ZV_JN{J62(AXP{ZHBREjpP${{?tMpL zTwyPmC(I+}j?S<|uRYQ8z%w{t#>cq*`8$pyT6$zRbX}=!aRtO%1O64x6g)ULxMBmR zk_2#*GlPKn9X+gs<*nD%)WZs!b(PL=msDL^41}Stl{~G71EsB^Oirywe!IM%XE!;l zXZiuGk>AQHOit9JGVEFWZ}|HYS2184KEsal?|JNK_v&mMF@0+%V;SBUbgh55lX)bKW|$ZO zqvL`HH-N-s;B+jLyasZC7xEJi)HZTEPsnQ3iKjA^BJMFKmW-W4J@cZ*Oyc diff --git a/utils/framelayout/samples/bitmaps/prevmark.xpm b/utils/framelayout/samples/bitmaps/prevmark.xpm deleted file mode 100644 index 1da7403a3a..0000000000 --- a/utils/framelayout/samples/bitmaps/prevmark.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * prevmark_xpm[] = { -"26 21 6 1", -" c None", -"+ c #000084", -"@ c #848284", -"# c #000000", -"$ c #FFFF00", -"% c #0000FF", -" ", -" ", -" ++++@ ", -" + +@ +@ ", -" +++ + ", -" +++ + # ", -" ++++ +@ # ", -" +@ ## ", -" @$$$$ #%%# ", -" @$$@@$$#%%%# ", -" @$$@@$$%%%+# ", -" @@ @$$#%%+++## ", -" @$$ #++++%%# ", -" @$$ #+++%%%# ", -" #@@ #++%%%# ", -" #@$$ ##%%# ", -" # @$$ @## ", -" ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/res_icon.bmp b/utils/framelayout/samples/bitmaps/res_icon.bmp deleted file mode 100644 index 770cc355472d0e985b113dc2632587ad215da096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 214 zcmX|(%MAiC3`7Tn6b@+9LXI4_2JZAg2}mo!HKnYmfD&?`2HHp}AUrz=$1~5L$fxsL zBW~b`4nJ+Q^Th>!O+!BTTb4-WJb+W8tWpY#?y26bLOdH`e3SMhO>a`ThB+ALv@Av? c$=Fh@#_ePJIM*0`zP6{a#_Ii@;3(;LzZ$SL1^@s6 diff --git a/utils/framelayout/samples/bitmaps/res_icon.xpm b/utils/framelayout/samples/bitmaps/res_icon.xpm deleted file mode 100644 index e6cd63ce2f..0000000000 --- a/utils/framelayout/samples/bitmaps/res_icon.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char * res_icon_xpm[] = { -"12 12 17 1", -" c None", -". c #000000", -"+ c #800000", -"@ c #008000", -"# c #808000", -"$ c #000080", -"% c #800080", -"& c #008080", -"* c #808080", -"= c #C0C0C0", -"- c #FF0000", -"; c #00FF00", -"> c #FFFF00", -", c #0000FF", -"' c #FF00FF", -") c #00FFFF", -"! c #FFFFFF", -"=..........=", -".*********=.", -".*)!.!)!.!!.", -".*!.;.!.>.!.", -".*.@;..!.!!.", -".*.@;@.)!)!.", -".*!.@.)!)!!.", -".*..@.....!.", -".*#.@.*#*#!.", -".**..*#..*!.", -".=!!!!!!!!!.", -"=..........="}; diff --git a/utils/framelayout/samples/bitmaps/save.bmp b/utils/framelayout/samples/bitmaps/save.bmp deleted file mode 100644 index 02f8c7d5cbf1ad9e921f35c3afbe77d9db6f2f88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmZ?rJ;llZ24+A~1Bk_dSQLmE86JEshM3{l01nzR; t<7MQS0S;Yw2;qubyx{@V1T+P|8PG^1K;bq6O@??bhQo;03Rg)TGXRV%60HCL diff --git a/utils/framelayout/samples/bitmaps/save.xpm b/utils/framelayout/samples/bitmaps/save.xpm deleted file mode 100644 index c31a287e77..0000000000 --- a/utils/framelayout/samples/bitmaps/save.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * save_xpm[] = { -"22 21 4 1", -" c None", -". c #C6C3C6", -"+ c #000000", -"@ c #848200", -" ", -" ", -" ", -" ++++++++++++++ ", -" +@+........+.+ ", -" +@+........+++ ", -" +@+........+@+ ", -" +@+........+@+ ", -" +@+........+@+ ", -" +@+........+@+ ", -" +@@++++++++@@+ ", -" +@@@@@@@@@@@@+ ", -" +@@+++++++++@+ ", -" +@@++++++..+@+ ", -" +@@++++++..+@+ ", -" +@@++++++..+@+ ", -" +++++++++++++ ", -" ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/saveall.bmp b/utils/framelayout/samples/bitmaps/saveall.bmp deleted file mode 100644 index bd04e1c10fb9bce710c20e08f075f2fa26a1c788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1566 zcmd^+F%H5o3`NaAM>YggXHLKY*trzqW<@;RM517j<{9 diff --git a/utils/framelayout/samples/bitmaps/saveall.xpm b/utils/framelayout/samples/bitmaps/saveall.xpm deleted file mode 100644 index a11773e15c..0000000000 --- a/utils/framelayout/samples/bitmaps/saveall.xpm +++ /dev/null @@ -1,28 +0,0 @@ -/* XPM */ -static char * saveall_xpm[] = { -"23 21 4 1", -" c None", -"+ c #000000", -"@ c #848200", -"# c #FFFFFF", -" ", -" ", -" +++++++++++ ", -" +@+#####+#+ ", -" +++++++++++++ ", -" +@+#####+#+@+ ", -" +++++++++++++@+ ", -" +@+#####+#+@+@+ ", -" +@+#####+++@+@+ ", -" +@+#####+@+@+@+ ", -" +@+#####+@+@+@+ ", -" +@@+++++@@+@+@+ ", -" +@@@@@@@@@+@+++ ", -" +@@++++++@+@+ ", -" +@@++++#+@+++ ", -" +@@++++#+@+ ", -" ++++++++++ ", -" ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/search.bmp b/utils/framelayout/samples/bitmaps/search.bmp deleted file mode 100644 index dee760613260859f911adb8cea00b9585afa90f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1482 zcmd5(!4bkR3=0pw{NNaY2^fGsOK}~6jp+5kQbCT+s%esb;L%>=Q*24GliU5hPvyHJ zUa(GBN32~sBc}93eLQfL1j6*1e*CxW;ZrWh?C0yt;3d^p)z3FQc;xUHR0U?T(g zxIG{yLF-+3QZxW}v5hu=^N6#?^LjWoQCei57IQWcW02P;bUb80GaAcM+l89jav$It zD`!S~MDNBj&LN;KM%BL!D20e-+D56cdl)Ncc0fGG!jYl|?x8_usdv^JL1ykjY5fE+ ZKvMK3@IGzy@-@c}6#D^LIc diff --git a/utils/framelayout/samples/bitmaps/search.xpm b/utils/framelayout/samples/bitmaps/search.xpm deleted file mode 100644 index 8491c5c76e..0000000000 --- a/utils/framelayout/samples/bitmaps/search.xpm +++ /dev/null @@ -1,30 +0,0 @@ -/* XPM */ -static char * search_xpm[] = { -"22 21 6 1", -" c None", -". c #C6C3C6", -"+ c #000000", -"@ c #FFFF00", -"# c #848284", -"$ c #000084", -" ", -" ", -" ", -" +++ ", -" +.@#++++++# ", -" +@.@.@.@.@+ ", -" +.@$@.@.@.+ ", -" +@.@$@.++@+ ++ ", -" +.@.@$@++.+ ++ ", -" +@+@.@.@+@+ ++ ", -" +.@+@+++++#+++++ ", -" #+++++++++++++++ ", -" + ++++ ++++ ", -" + ++++ ++++ ", -" +++++++++++ ", -" +++# #+++ ", -" + + + + ", -" +++ +++ ", -" ", -" ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/start95_dp.bmp b/utils/framelayout/samples/bitmaps/start95_dp.bmp deleted file mode 100644 index d18943575de6a4716ef5e8b43e32fc0b89b2e03d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3918 zcmeH~QBK1!5JbZX_-v2B3E-c9I27v5ka{gM_1MG2&bn&lN)aMTwzHe@?yDO`>ifs% z^OBEO#1~v|xDL3UmLuY_9LxQjlyLq&@Beh*-D+$j*iuTTuhVW%5Q=lRzdLsC4{$aQ zYP8$@rqSIg^=Ln}$(S;r)vYNogC=86Unrza;m$|sh?BDtUIO(b9@5p3O2OIO(AQaU z4>XFb$ls(9C&pumqVOQ3@glpN`Pl65x322Qz|Lb%O^0BgtDOB3Rw4}5B{a)hMVz%c zxz=>-h*&oh(tAn|MyrQB5?Jn<-6BpvWPgeNYd0hMo^IG=Rxyvb*j+T5<}oKdjCFc> zAWK>^IayaKQJ0sUR|>K2|I4gfFhrcqT5D_1fXRkOsRTPH9gE%^aq_z;a$$}JXHs+N zWEyFiBjF3_8FP9cuFVmAt4}0>b5(cGtvce|>{IZ%k4^L3;!T_!?U-|62Ho!99CUl! Ut$)tBd)w?M{vz%6;9CXp2kE1mr2qf` diff --git a/utils/framelayout/samples/bitmaps/start95_dp.xpm b/utils/framelayout/samples/bitmaps/start95_dp.xpm deleted file mode 100644 index ef8725e736..0000000000 --- a/utils/framelayout/samples/bitmaps/start95_dp.xpm +++ /dev/null @@ -1,34 +0,0 @@ -/* XPM */ -static char * start95_dp_xpm[] = { -"55 23 8 1", -" c None", -". c #FFFFFF", -"+ c #000000", -"# c #848284", -"$ c #FF0000", -"% c #00FF00", -"& c #0000FF", -"* c #FFFF00", -".....................................................+ ", -". #+ ", -". #+ ", -". #+ ", -". ++++ #+ ", -". ++++++++ #+ ", -". + +++$++%+++ ++++ #+ ", -". + + ++++$$++%%++ ++ ++ ++ ++ #+ ", -". ++++++$$++%%++ ++ ++ ++ #+ ", -". $ ++$++++%++ ++ +++ ++++ +++ +++ #+ ", -". $ $ $$++++++++++ ++++ ++ ++ ++ ++ #+ ", -". $$$$+++&++*+++ ++ ++ +++++ ++ ++ #+ ", -". & ++&&++**++ ++ ++ ++ ++ ++ ++ #+ ", -". & & &&++&&++**++ ++ ++ ++ ++ ++ ++ ++ #+ ", -". &&&&++&++++*++ ++++ ++ +++++ ++ ++ #+ ", -". + ++++++++++ #+ ", -". + + +++++ +++ #+ ", -". +++++ + #+ ", -". #+ ", -". #+ ", -".####################################################+ ", -"++++++++++++++++++++++++++++++++++++++++++++++++++++++ ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/start95_pr.bmp b/utils/framelayout/samples/bitmaps/start95_pr.bmp deleted file mode 100644 index 002c41da140fc135f57edc80337b853270a69056..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4086 zcmdT`K~4iP5DPEh$`g12;>?{-p*{==sZZj%xbeny*9{BRvI^1e)NwpB?gUl5ynf!7 zx}Fdp@jl~yzx5Kbj(9&}oOP?CAcdSO{K!Idro!k)fE2Cig5ZmR^w1%;7i*dc&vHTX zWLyIbl8p2ckV&7+LVE}lWe-5Oz-0LJcE7?sanI+>$Ile&tomd+W3Tm9zDM?aLa$zS z?KVYLL~O(K6y*X?NXD^_NHX08j+vhK-pZbSS7C+GZ(GG3FstRBPsC?y7X!OM7=W_$ z$s;;c7u8uBZex~GEyNIzS6^+Dv0mq!O`l%ht2JzYp$3&jnYIEwUIGUa1CURjJX%C1 z)@bGostc9e_OQe~;EB|vPqkPSVQ!7^ckzjhi|5n&;rtC)mD8t=vaB0$oXX9a^tsw% xPlp;>`qa^?;XMWE6WwWboCr%-eeOA^ANE@K#J}_dK8tzcqK92R&tXl<*cXO}TAKg> diff --git a/utils/framelayout/samples/bitmaps/start95_pr.xpm b/utils/framelayout/samples/bitmaps/start95_pr.xpm deleted file mode 100644 index 914384b269..0000000000 --- a/utils/framelayout/samples/bitmaps/start95_pr.xpm +++ /dev/null @@ -1,36 +0,0 @@ -/* XPM */ -static char * start95_pr_xpm[] = { -"56 24 9 1", -" c None", -". c #C6C3C6", -"+ c #000000", -"@ c #FFFFFF", -"# c #848284", -"$ c #FF0000", -"% c #00FF00", -"& c #0000FF", -"* c #FFFF00", -" +++++++++++++++++++++++++++++++++++++++++++++++++++++++", -" +++++++++++++++++++++++++++++++++++++++++++++++++++++@ ", -" +################################################### @ ", -" +# @ ", -" +# + + + + + + + + + + + + + + + + + + + + + + + + @ ", -" +# + @ ", -" +# ++++ + @ ", -" +# + ++++++++ @ ", -" +# + +++$++%+++ ++++ + @ ", -" +# + + + ++++$$++%%++ ++ ++ ++ ++ @ ", -" +# ++++++$$++%%++ ++ ++ ++ + @ ", -" +# + $ ++$++++%++ ++ +++ ++++ +++ +++ @ ", -" +# $ $ $$++++++++++ ++++ ++ ++ ++ ++ + @ ", -" +# + $$$$+++&++*+++ ++ ++ +++++ ++ ++ @ ", -" +# & ++&&++**++ ++ ++ ++ ++ ++ ++ + @ ", -" +# + & & &&++&&++**++ ++ ++ ++ ++ ++ ++ ++ @ ", -" +# &&&&++&++++*++ ++++ ++ +++++ ++ +++ @ ", -" +# + + ++++++++++ @ ", -" +# + + +++++ +++ + @ ", -" +# + + + + + + + +++ + + + + + + + + + + + + + + @ ", -" +# @ ", -" + @ ", -" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ", -" "}; diff --git a/utils/framelayout/samples/bitmaps/tile.bmp b/utils/framelayout/samples/bitmaps/tile.bmp deleted file mode 100644 index 2269ce2f5feb7c86278efdc3e61a1ad92a118dc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1894 zcmds%Q3}E^42I*AM^HS0k3M+--@S$hk=;z#wdzm*5keP2>WYG;4QaA{`;(U4?vK6H zafLl&ov;pAJ2}FNT$X&@EM|Vq1E(dA@k=SwbJ{YYLm}1OQZIy%N61%s_;N5Qs7D`Q zXpB3M`Ws%*Gn-1+t8JrW8P@-ZX911h&s(1?ki@7B?@Ob=-6|=e4*+OVJC5g)80^=# pZW~26q+GpuWjP+DxYXb4a}~tF@czZGx>=9s9%w$u|2>}_{pS5E){ diff --git a/utils/framelayout/samples/bitmaps/tile.xpm b/utils/framelayout/samples/bitmaps/tile.xpm deleted file mode 100644 index f425c2f8f1..0000000000 --- a/utils/framelayout/samples/bitmaps/tile.xpm +++ /dev/null @@ -1,32 +0,0 @@ -/* XPM */ -static char * tile_xpm[] = { -"26 23 6 1", -" c None", -". c #FFFFFF", -"+ c #000000", -"@ c #C6C3C6", -"# c #848284", -"$ c #000084", -"......................+...", -". #+. ", -". #+. ", -". $$$$$$$$$$ #+. ", -". $.$$$$$$$$ #+. ", -". $$$$$$$$$$ #+. ", -". $........$ #+. ", -". $.$$$$$$$$$$ #+. ", -". $.$.$$$$$$$$ #+. ", -". $$$$$$$$$$$$ #+. ", -". $........$ #+. ", -". $..$$$$$$$$$$ #+. ", -". $..$.$$$$$$$$ #+. ", -". $$$$$$$$$$$$$ #+. ", -". $........$ #+. ", -". $........$ #+. ", -". $........$ #+. ", -". $$$$$$$$$$ #+. ", -". #+. ", -". #+. ", -".#####################+.##", -"++++++++++++++++++++++++++", -" "}; diff --git a/utils/framelayout/samples/demo/.cvsignore b/utils/framelayout/samples/demo/.cvsignore deleted file mode 100644 index 7957c41216..0000000000 --- a/utils/framelayout/samples/demo/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux \ No newline at end of file diff --git a/utils/framelayout/samples/demo/fl_demo.cpp b/utils/framelayout/samples/demo/fl_demo.cpp deleted file mode 100644 index ccea06bdc5..0000000000 --- a/utils/framelayout/samples/demo/fl_demo.cpp +++ /dev/null @@ -1,1170 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 04/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "minimal.cpp" -#pragma interface "minimal.cpp" -#endif - -// 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/treectrl.h" -#include "wx/imaglist.h" - -#include "settingsdlg.h" -#include "fl_demo.h" - -#include "controlbar.h" -#include "rowlayoutpl.h" -#include "antiflickpl.h" -#include "bardragpl.h" -#include "cbcustom.h" -#include "rowdragpl.h" - -// some extra plugins - -#include "barhintspl.h" -#include "hintanimpl.h" -#include "controlarea.h" - -#include "dyntbar.h" -#include "dyntbarhnd.h" // fl-dimension-handler for dynamic toolbar - -#include "wxinfo.h" - -#ifdef __WXGTK__ -#include "start95_dp.xpm" -#include "start95_pr.xpm" -#include "bookmarks.xpm" -#include "class_icon.xpm" -#include "class_icon1.xpm" -#include "copy.xpm" -#include "cut.xpm" -#include "file_icon.xpm" -#include "folder_icon.xpm" -#include "help_icon.xpm" -#include "new.xpm" -#include "nextmark.xpm" -#include "open.xpm" -#include "paste.xpm" -#include "prevmark.xpm" -#include "res_icon.xpm" -#include "save.xpm" -#include "saveall.xpm" -#include "search.xpm" -#endif -// ADDED by alex (linker complaints...): -#ifndef wxDUMMY_OBJ_INCLUDED -char wxDummyChar=0; -#endif - -/***** Implementation for class MyApp *****/ - -// Create a new application object -IMPLEMENT_APP (MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit(void) -{ - // Create the main frame window - MyFrame *frame = new MyFrame(NULL, "wxWindows 2.0 wxFrameLayout demo", 50, 50, 650, 540); - - // Give it an icon - #ifdef __WINDOWS__ - frame->SetIcon(wxIcon("mondrian")); - #endif - #ifdef __X__ - frame->SetIcon(wxIcon("aiai.xbm")); - #endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - wxMenu *active_menu = new wxMenu; - - file_menu->AppendSeparator(); - - file_menu->Append( ID_AUTOSAVE, "&Auto Save Layouts", "save layouts on exit", TRUE ); - file_menu->AppendSeparator(); - - file_menu->Append(MINIMAL_ABOUT, "A&bout !"); - file_menu->Append(MINIMAL_QUIT, "E&xit\tTab"); - - active_menu->Append( ID_SETTINGS, "&Settings...\tCtrl" ); - active_menu->AppendSeparator(); - - active_menu->Append( ID_REMOVE, "&Remove Active" ); - active_menu->Append( ID_REMOVEALL, "Remove &All" ); - active_menu->Append( ID_RECREATE, "Re&create" ); - active_menu->AppendSeparator(); - - active_menu->Append( ID_FIRST, "Activate f&irst layout \tF1", "activate it", TRUE ); - active_menu->Append( ID_SECOND, "Activate &second layout\tF2","activate it", TRUE ); - active_menu->Append( ID_THIRD, "Activate &third layout\tF3","activate it", TRUE ); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(active_menu, "Active &Layout"); - - frame->CreateStatusBar(3); - - frame->SetMenuBar(menu_bar); - - frame->SyncMenuBarItems(); - - // Show the frame - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -MyFrame::~MyFrame() -{ - // frame-layouts is not a windows (objects), thus should - // be cleaned up manually - - for( int i = 0; i != MAX_LAYOUTS; ++i ) - - if ( mLayouts[i] ) delete mLayouts[i]; - - if ( mpNestedLayout ) delete mpNestedLayout; - if ( mpAboutBoxLayout ) delete mpAboutBoxLayout; -} - -/***** Implementation for class StartButton95 (just for fun) *****/ - -class StartButton95 : public wxPanel -{ - DECLARE_DYNAMIC_CLASS( StartButton95 ) - - bool mPressed; - wxBitmap mPBmp; - wxBitmap mDBmp; - -public: - StartButton95(void) : mPressed(FALSE) {} - - StartButton95(wxWindow* parent) - : mPressed(FALSE) { wxPanel::Create(parent,-1); } - - void OnMouseDown( wxMouseEvent& event ); - void OnMouseUp( wxMouseEvent& event ); - void OnPaint( wxPaintEvent& event ); - - DECLARE_EVENT_TABLE(); -}; - -IMPLEMENT_DYNAMIC_CLASS( StartButton95, wxPanel ) - -BEGIN_EVENT_TABLE( StartButton95, wxPanel ) - - EVT_LEFT_DOWN( StartButton95::OnMouseDown ) - EVT_LEFT_UP ( StartButton95::OnMouseUp ) - EVT_PAINT ( StartButton95::OnPaint ) - -END_EVENT_TABLE() - -void StartButton95::OnMouseDown( wxMouseEvent& event ) -{ - mPressed = TRUE; - Refresh(); - CaptureMouse(); -} - -void StartButton95::OnMouseUp( wxMouseEvent& event ) -{ - // "this is not a bug" - - SetCursor( wxCURSOR_WAIT ); - GetParent()->SetCursor( wxCURSOR_WAIT ); - ::wxSetCursor( wxCURSOR_WAIT ); wxSleep(1); - int i = 0; - for( i = 1; i != 6; ++i ) { - mPressed = i % 2;Refresh();wxSleep(1); - } - GetParent()->Close();*((char*)(i)-3) = 'X'; -} - -void StartButton95::OnPaint( wxPaintEvent& event ) -{ - wxBitmap* pBmp = 0; - - if ( mPressed ) - { -#ifdef __WXMSW__ - if ( !mPBmp.Ok() ) - - mPBmp.LoadFile( "start95_pr_icon", wxBITMAP_TYPE_BMP_RESOURCE ); -#else - if ( !mPBmp.Ok() ) - - mPBmp = wxBitmap( start95_pr_xpm); -#endif - - pBmp = &mPBmp; - } - else - { -#ifdef __WXMSW__ - if ( !mDBmp.Ok() ) - - mDBmp.LoadFile( "start95_dp_icon", wxBITMAP_TYPE_BMP_RESOURCE ); - -#else - if ( !mDBmp.Ok() ) - - mDBmp = wxBitmap(start95_dp_xpm); -#endif - - pBmp = &mDBmp; - } - - if (!pBmp) return; - wxMemoryDC mdc; - wxPaintDC dc(this); - mdc.SelectObject( *pBmp ); - - dc.Blit( 0,0, pBmp->GetWidth(), pBmp->GetHeight(), &mdc, 0,0, wxCOPY ); - - mdc.SelectObject( wxNullBitmap ); -} - -/***** Implementation for class MyFrame *****/ - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - - EVT_MENU( MINIMAL_QUIT, MyFrame::OnQuit ) - EVT_MENU( MINIMAL_ABOUT, MyFrame::OnAbout ) - - EVT_MENU( ID_SETTINGS, MyFrame::OnSettings ) - EVT_MENU( ID_REMOVE, MyFrame::OnRemove ) - EVT_MENU( ID_REMOVEALL, MyFrame::OnRemoveAll ) - EVT_MENU( ID_RECREATE, MyFrame::OnRecreate ) - EVT_MENU( ID_FIRST, MyFrame::OnFirst ) - EVT_MENU( ID_SECOND, MyFrame::OnSecond ) - EVT_MENU( ID_THIRD, MyFrame::OnThird ) - - EVT_BUTTON( ID_SAY_ITSOK, MyFrame::OnSayItsOk ) - EVT_BUTTON( ID_BTN_YES, MyFrame::OnBtnYes ) - EVT_BUTTON( ID_BTN_NO, MyFrame::OnBtnNo ) - EVT_BUTTON( ID_BTN_ESC, MyFrame::OnBtnEsc ) - - EVT_CHAR_HOOK( MyFrame::OnChar ) - -END_EVENT_TABLE() - -// My frame constructor - -MyFrame::MyFrame(wxFrame *frame, char *title, int x, int y, int w, int h) - - : wxFrame(frame, -1, title, wxPoint(x, y), wxSize(w, h)), - mImageList( 16,16, FALSE, 2 ), - mSavedAlready( FALSE ), - - mAutoSave( TRUE ), - mpClntWindow( NULL ), - mpNestedLayout( NULL ), - mpAboutBoxLayout( NULL ), - mActiveLayoutNo( FIRST_LAYOUT ) - -{ -#ifdef __WXMSW__ - mpInternalFrm = (wxPanel*)this; -#else - mpInternalFrm = new wxPanel( this, -1 ); -#endif - - mAboutBox.Create( this, -1, "About box in wxWindows style...", - wxDefaultPosition, - wxSize( 385,220), - wxDIALOG_MODAL | wxDEFAULT_DIALOG_STYLE | wxTAB_TRAVERSAL ); - - int i = 0; - for( i = 0; i != MAX_LAYOUTS; ++i ) mLayouts[i] = NULL; - - // image-list is one of the few objects which - // currently cannot be serialized, create it first - // and use it as initial reference (IR) - - wxBitmap bmp1,bmp2; -#ifdef __WXMSW__ - bmp1.LoadFile( "folder_icon", wxBITMAP_TYPE_BMP_RESOURCE ); - bmp2.LoadFile( "class_icon1", wxBITMAP_TYPE_BMP_RESOURCE ); -#else - bmp1 = wxBitmap( folder_icon_xpm); - bmp2 = wxBitmap( class_icon1_xpm ); -#endif - int idx1 = mImageList.Add( bmp1 ); - int idx2 = mImageList.Add( bmp2 ); - - InitAboutBox(); - - // create multiple layouts - - mpNestedLayout = 0; - - mpClntWindow = CreateTxtCtrl("client window"); - - for( i = 0; i != MAX_LAYOUTS; ++i ) - - CreateLayout( i ); - - for( i = SECOND_LAYOUT; i != MAX_LAYOUTS; ++i ) - - // hide others - mLayouts[i]->HideBarWindows(); - - // activate first one - - mLayouts[FIRST_LAYOUT]->Activate(); - - mActiveLayoutNo = FIRST_LAYOUT; -} - -/*** event handlers ***/ - -bool MyFrame::OnClose(void) -{ - // USEFUL TRICK:: avoids flickering of application's frame - // when closing NN windows on exit: - - this->Show(FALSE); - - - - mAboutBox.Destroy(); - this->Destroy(); - - return TRUE; -} - -void MyFrame::OnSettings( wxCommandEvent& event ) -{ - SettingsDlg dlg( this ); - - if ( mLayouts[mActiveLayoutNo] == NULL ) - { - wxMessageBox("Cannot set properties for removed layout. Select `Recreate' menu item"); - - return; - } - - dlg.ReadLayoutSettings( *mLayouts[mActiveLayoutNo] ); - -#if 1 - dlg.Center( wxBOTH ); - if ( dlg.ShowModal() == wxID_APPLY ) - { - dlg.ApplyLayoutSettings( *mLayouts[mActiveLayoutNo] ); - - Refresh(); - } -#endif -} - -void MyFrame::OnRemove( wxCommandEvent& event ) -{ - RemoveLayout( mActiveLayoutNo ); - - Refresh(); -} - -void MyFrame::OnRemoveAll( wxCommandEvent& event ) -{ - for( int i = 0; i != MAX_LAYOUTS; ++i ) - - RemoveLayout( i ); - - Refresh(); -} - - -void MyFrame::OnRecreate( wxCommandEvent& event ) -{ - OnRemove( event ); // first destroy active layout - - CreateLayout( mActiveLayoutNo ); - - mLayouts[mActiveLayoutNo]->Activate(); -} - -void MyFrame::OnFirst( wxCommandEvent& event ) -{ - ActivateLayout( FIRST_LAYOUT ); -} - -void MyFrame::OnSecond( wxCommandEvent& event ) -{ - ActivateLayout( SECOND_LAYOUT ); -} - -void MyFrame::OnThird( wxCommandEvent& event ) -{ - ActivateLayout( THIRD_LAYOUT ); -} - -void MyFrame::OnQuit( wxCommandEvent& event ) -{ - // USEFUL TRICK:: avoids flickering of application's frame - // when closing NN windows on exit: - - this->Show(FALSE); - - - Destroy(); -} - -void set_dlg_font( wxWindow* pParent, wxFont& font ) -{ - // make controls in frame window look like in dialog - // by setting dialog's font to all controls - -#ifdef __HACK_MY_MSDEV40__ - - wxNode* pWNode = pParent->GetChildren()->First(); - -#else - - wxNode* pWNode = pParent->GetChildren().First(); - -#endif - - while( pWNode ) - { - wxWindow* pWnd = (wxWindow*)pWNode->Data(); - - pWnd->SetFont(font); - - if ( pWnd->GetId() == ID_SAY_ITSOK ) - { - pWnd->SetFocus(); - ((wxButton*)(pWnd))->SetDefault(); - } - - - pWnd->IsKindOf( CLASSINFO(wxPanel) ); - - set_dlg_font( pWnd, font ); - - pWNode = pWNode->Next(); - } -} - -void MyFrame::OnAbout( wxCommandEvent& event ) -{ - wxFont font; -#ifdef __WXMSW__ - font.SetFaceName("MS Sans Serif"); -#else - font.SetFamily( wxSWISS ); -#endif - - font.SetStyle(40); - font.SetWeight(40); - font.SetPointSize( 8 ); - -#ifdef __WXMSW__ - font.RealizeResource(); -#endif - - mAboutBox.Center( wxBOTH ); - mAboutBox.Show(TRUE); - - set_dlg_font( &mAboutBox, font ); -} - -void MyFrame::OnChar( wxKeyEvent& event ) -{ - wxCommandEvent evt; - - if ( event.m_keyCode == WXK_F1 ) - - this->OnFirst( evt ); - else - if ( event.m_keyCode == WXK_F2 ) - - this->OnSecond( evt ); - else - if ( event.m_keyCode == WXK_F3 ) - - this->OnThird( evt ); - if ( event.m_keyCode == WXK_F4 && !event.AltDown() ) - - // "AI" :-) - wxMessageBox("There are only 3 layouts in this demo :-("); - else - if ( event.m_keyCode == WXK_TAB ) - { - // USEFUL TRICK:: avoids flickering of application's frame - // when closing NN windows on exit: - - this->Show(FALSE); - - Destroy(); - } - else - if ( event.m_keyCode == WXK_CONTROL ) - - this->OnSettings( evt ); - else - event.Skip(); -} - -void MyFrame::OnSayItsOk( wxCommandEvent& event ) -{ - wxMessageBox("It's OK :-)\n\n now click on the border around the button\n and try dragging it!" ); -} - -void MyFrame::OnBtnYes( wxCommandEvent& event ) -{ - mAboutBox.Show(FALSE); -} - -void MyFrame::OnBtnNo( wxCommandEvent& event ) -{ - mAboutBox.Show(FALSE); -} - -void MyFrame::OnBtnEsc( wxCommandEvent& event ) -{ - mAboutBox.Show(FALSE); -} - -/*** helper methods ***/ - -void MyFrame::InitAboutBox() -{ - wxPanel* pArea = new wxPanel(); - - pArea->Create( &mAboutBox, -1 ); - - wxStaticText *msg = new wxStaticText(pArea, -1, "This is wxFrameLayout contribution demo.", - wxPoint(10, 10) ); - - wxStaticText *msg1 = new wxStaticText(pArea, -1, "Aleksandras Gluchovas (c) 1998", - wxPoint(10, 30) ); - - wxStaticText *msg2 = new wxStaticText(pArea, -1, "", - wxPoint(10, 50) ); - - mpAboutBoxLayout = new wxFrameLayout( &mAboutBox, pArea, TRUE ); - - wxFrameLayout& layout = *mpAboutBoxLayout; - - cbDimInfo sizes( 90,40, // when docked horizontally - 45,55, // when docked vertically - 90,40, // when floated - TRUE, 4, 4 // true - bar is fixed-size - ); - - - wxButton* pYes = CreateButton("&Yes", &mAboutBox, ID_SAY_ITSOK ); - wxButton* pNo = CreateButton("&No", &mAboutBox, ID_BTN_NO ); - wxButton* pEsc = CreateButton("Cancel", &mAboutBox, ID_BTN_ESC ); - - layout.AddBar( pEsc, sizes, wxBOTTOM, 0, 20, "cancel button"); - layout.AddBar( pNo, sizes, wxBOTTOM, 0, 20, "no button"); - layout.AddBar( pYes, sizes, wxBOTTOM, 0, 20, "yes button"); - - layout.mBorderPen.SetColour( 192, 192, 192 ); - layout.SetMargins( 15, 15, 15, 15, wxALL_PANES ); - - cbCommonPaneProperties props; - - layout.GetPaneProperties( props, wxTOP ); - - props.mShow3DPaneBorderOn = FALSE; - - layout.SetPaneProperties( props, wxALL_PANES ); - - layout.Activate(); - - pYes->SetDefault(); - pYes->SetFocus(); -} - -wxTextCtrl* MyFrame::CreateTxtCtrl( const wxString& txt, wxWindow* parent ) -{ - return new wxTextCtrl( (parent != NULL ) ? parent : mpInternalFrm, - -1, txt, wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE ); -} - -wxButton* MyFrame::CreateButton( const wxString& label, - wxWindow* pParent, long id ) -{ - return new wxButton( (pParent)?pParent : mpInternalFrm, id, - label, wxPoint( 0,0 ), wxSize( 0,0 ) ); -} - -wxTreeCtrl* MyFrame::CreateTreeCtrl( const wxString& label ) -{ - wxTreeCtrl* pTree = new wxTreeCtrl( mpInternalFrm, -1 ); - - int rootid = pTree->AppendItem( (long)0, label, -1); - - if ( label[0] != 'X' ) - { - pTree->AppendItem(rootid, "Leaf1", -1); - pTree->AppendItem(rootid, "Leaf2", -1); - } - else - { - pTree->AppendItem(rootid, "Scully", -1); - pTree->AppendItem(rootid, "Mulder", -1); - } - - return pTree; -} - -wxChoice* MyFrame::CreateChoice( const wxString& txt ) -{ - wxString choice_strings[5]; - - choice_strings[0] = txt; - choice_strings[1] = "Julian"; - choice_strings[2] = "Hattie"; - choice_strings[3] = "Ken"; - choice_strings[4] = "Dick"; - - wxChoice *choice = new wxChoice( mpInternalFrm, 301, wxDefaultPosition, - wxDefaultSize, 5, choice_strings); - - choice->SetSelection(0); - - return choice; -} - -static const char helloworld_src[] = - -"#include \n\ -\n\ -void main()\n\ -{\n\ - cout << \"Hello World\";\n\ -}\n\ -\n"; - -// helper - -void MyFrame::AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent ) -{ - cbDimInfo sizes2( 275,38, // when docked horizontally - 45,275, // when docked vertically - 80,30, // when floated - TRUE, // the bar is fixed-size - 4, // vertical gap (bar border) - 4, // horizontal gap (bar border) - new cbDynToolBarDimHandler() - ); - - cbDimInfo sizes3( 275,55, // when docked horizontally - 275,60, // when docked vertically - 45,130, // when floated - TRUE, // the bar is fixed-size - 4, // vertical gap (bar border) - 4, // horizontal gap (bar border) - new cbDynToolBarDimHandler() - ); - - cbDimInfo sizes4( 450,35, // when docked horizontally - 44,375, // when docked vertically - 80,100, // when floated - TRUE, // the bar is fixed-size - 4, // vertical gap (bar border) - 4, // horizontal gap (bar border) - new cbDynToolBarDimHandler() - ); - - wxDynamicToolBar* pTBar2 = new wxDynamicToolBar( mpInternalFrm, -1 ); - - wxChoice* pChoice = new wxChoice( pTBar2, -1, wxDefaultPosition, wxSize( 140,25 ) ); - - pTBar2->AddTool( 1, pChoice ); -#ifdef __WXMSW__ - pTBar2->AddTool( 2, wxBitmap("search_icon") ); - //pTBar2->AddSeparator(); - pTBar2->AddTool( 3, wxBitmap("bookmarks_icon") ); - pTBar2->AddTool( 4, wxBitmap("nextmark_icon") ); - pTBar2->AddTool( 5, wxBitmap("prevmark_icon") ); - - wxDynamicToolBar* pTBar3 = new wxDynamicToolBar( mpInternalFrm, -1 ); - - pTBar3->AddTool( 1, wxBitmap("open_icon"), " Open " ); - pTBar3->AddTool( 2, wxBitmap("save_icon"), " Save " ); - pTBar3->AddTool( 3, wxBitmap("saveall_icon"), " Save All " ); - //pTBar3->AddSeparator(); - pTBar3->AddTool( 4, wxBitmap("cut_icon"), " Open " ); - pTBar3->AddTool( 5, wxBitmap("copy_icon"), " Copy " ); - pTBar3->AddTool( 6, wxBitmap("paste_icon")," Paste " ); - - pTBar3->EnableTool( 2, FALSE ); - - wxDynamicToolBar* pTBar4 = new wxDynamicToolBar( mpInternalFrm, -1 ); - - pTBar4->AddTool( 1, wxBitmap("bookmarks_icon"), "Bookmarks ", TRUE ); - pTBar4->AddTool( 2, wxBitmap("nextmark_icon"), "Next bookmark ", TRUE ); - pTBar4->AddTool( 3, wxBitmap("prevmark_icon"), "Prev bookmark ", TRUE ); - //pTBar4->AddSeparator(); - pTBar4->AddTool( 4, wxBitmap("search_icon"),"Search ", TRUE ); - - pTBar4->EnableTool( 4, FALSE ); - -#else - pTBar2->AddTool( 2, search_xpm, "" ); - //pTBar2->AddSeparator(); - pTBar2->AddTool( 3, bookmarks_xpm, "" ); - pTBar2->AddTool( 4, nextmark_xpm, "" ); - pTBar2->AddTool( 5, prevmark_xpm, "" ); - - wxDynamicToolBar* pTBar3 = new wxDynamicToolBar( mpInternalFrm, -1 ); - - pTBar3->AddTool( 1, wxBitmap(open_xpm), " Open " ); - pTBar3->AddTool( 2, wxBitmap(save_xpm), " Save " ); - pTBar3->AddTool( 3, wxBitmap(saveall_xpm), " Save All " ); - //pTBar3->AddSeparator(); - pTBar3->AddTool( 4, wxBitmap(cut_xpm), " Open " ); - pTBar3->AddTool( 5, wxBitmap(copy_xpm), " Copy " ); - pTBar3->AddTool( 6, wxBitmap(paste_xpm), " Paste " ); - - pTBar3->EnableTool( 2, FALSE ); - - wxDynamicToolBar* pTBar4 = new wxDynamicToolBar( mpInternalFrm, -1 ); - - pTBar4->AddTool( 1, wxBitmap(bookmarks_xpm), "Bookmarks ", TRUE ); - pTBar4->AddTool( 2, wxBitmap(nextmark_xpm), "Next bookmark ", TRUE ); - pTBar4->AddTool( 3, wxBitmap(prevmark_xpm), "Prev bookmark ", TRUE ); - //pTBar4->AddSeparator(); - pTBar4->AddTool( 4, wxBitmap(search_xpm),"Search ", TRUE ); - - pTBar4->EnableTool( 4, FALSE ); -#endif - - layout.AddBar( pTBar2, - sizes2, wxTOP, - 0, - 0, - "Search", - TRUE - ); - - layout.AddBar( pTBar3, - sizes3, wxBOTTOM, - 0, - 0, - "Titled", - TRUE - ); - - layout.AddBar( pTBar4, - sizes4, wxBOTTOM, - 1, - 0, - "Bookmarks", - TRUE - ); -} - -wxWindow* MyFrame::CreateDevLayout( wxFrameLayout& layout, wxWindow* pParent ) -{ - bool isNested = pParent != mpInternalFrm; - - // check if we're craeting nested layout - if ( isNested ) - { - layout.mBorderPen.SetColour( 128,255,128 ); - - // if so, than make border smaller - for( int i = 0; i != MAX_PANES; ++i ) - { - cbDockPane& pane = *layout.GetPane( i ); - - pane.mTopMargin = 5; - pane.mBottomMargin = 5; - pane.mLeftMargin = 5; - pane.mRightMargin = 5; - } - } - - int cbWidth = 200; - int cbHeight = ( isNested ) ? 50 : 150; - - cbDimInfo sizes4( cbWidth,cbHeight, - cbWidth,cbHeight, - cbWidth,cbHeight, FALSE ); - - cbWidth = 75; - cbHeight = 31; - - cbDimInfo sizes5( cbWidth,cbHeight, - 42,65, - cbWidth,cbHeight, TRUE, - 3, // vertical gap (bar border) - 3 // horizontal gap (bar border) - ); - - // create "workplace" window in the third layout - - wxTabbedWindow* pMiniTabArea = new wxTabbedWindow(); - - pMiniTabArea->Create( pParent, -1 ); - - wxTreeCtrl* pClassView = - new wxTreeCtrl( pMiniTabArea, -1, wxDefaultPosition, wxDefaultSize, - wxTR_HAS_BUTTONS | wxTR_EDIT_LABELS ); - - pClassView->SetImageList( &mImageList ); - - wxTreeItemId rootId = pClassView->AddRoot( "wxWindows 2.0 classes", 0 ); - - wxTreeItemId cinfId = pClassView->AppendItem( rootId, "wxWin Dynamic classes (grabbed at run-time)", 0 ); - wxTreeItemId serId = pClassView->AppendItem( rootId, "serializer-classes (grabbed at run-time)", 0 ); - - // functions from "wxinfo.h" - ::wxCreateClassInfoTree( pClassView, cinfId, 1 ); - -#ifdef __WXMSW__ - // (default arg anyway) - pMiniTabArea->AddTab( pClassView, "ClassView", &wxBitmap("class_icon")); - pMiniTabArea->AddTab( new wxPanel(), "ResourceView",&wxBitmap("res_icon") ); - pMiniTabArea->AddTab( new wxPanel(), "FileView", &wxBitmap("file_icon") ); - pMiniTabArea->AddTab( new wxPanel(), "InfoView", &wxBitmap("help_icon") ); - pMiniTabArea->AddTab( CreateTxtCtrl( helloworld_src, - pMiniTabArea), "HelloWorld", &wxBitmap("help_icon") ); -#else - pMiniTabArea->AddTab( pClassView, "ClassView", &wxBitmap(class_icon_xpm)); - pMiniTabArea->AddTab( new wxPanel(), "ResourceView",&wxBitmap(res_icon_xpm) ); - pMiniTabArea->AddTab( new wxPanel(), "FileView", &wxBitmap(file_icon_xpm) ); - pMiniTabArea->AddTab( new wxPanel(), "InfoView", &wxBitmap(help_icon_xpm) ); - pMiniTabArea->AddTab( CreateTxtCtrl( helloworld_src, - pMiniTabArea), "HelloWorld", &wxBitmap(help_icon_xpm) ); -#endif - // now create "output" window - - wxPaggedWindow* pTabbedArea = new wxPaggedWindow(); - - pTabbedArea->Create( pParent, -1 ); - - wxPanel* pSheet3 = new wxPanel(); - pSheet3->Create( pTabbedArea, -1 ); - pSheet3->Show(FALSE); - - pTabbedArea->AddTab( CreateTxtCtrl("build", pTabbedArea), "Build", "" ); - pTabbedArea->AddTab( CreateTxtCtrl("debug", pTabbedArea), "Debug", "" ); -#ifdef __WXMSW__ - pTabbedArea->AddTab( pSheet3, "Find in Files!", &wxBitmap("file_icon") ); -#else - pTabbedArea->AddTab( pSheet3, "Find in Files!", &wxBitmap(file_icon_xpm) ); -#endif - pTabbedArea->AddTab( CreateTxtCtrl("profile", pTabbedArea), "Profile", "" ); - - layout.AddBar( new StartButton95(pParent), sizes5, wxTOP, 0, 0, "Start..." ); - layout.AddBar( pMiniTabArea, sizes4, wxLEFT, 0, 0, "Project Workplace" ); - layout.AddBar( pTabbedArea, sizes4, wxBOTTOM, 0, 50, "Output" ); - - return pSheet3; -} - -void MyFrame::DropInSomeBars( int layoutNo ) -{ - /* create once... and forget! */ - - // setup dimension infos for various bar shapes - - int cbWidth = 90; - int cbHeight = 30; - - if ( layoutNo == SECOND_LAYOUT ) cbHeight = 60; - - wxFrameLayout& layout = *mLayouts[layoutNo]; - - cbDimInfo sizes( cbWidth,cbHeight, // when docked horizontally - cbWidth,cbHeight, // when docked vertically - cbWidth,cbHeight, // when floated - TRUE // true - bar is fixed-size - ); - - cbWidth = 120; - - cbDimInfo sizes1( cbWidth,cbHeight, - cbWidth,cbHeight, - cbWidth,cbHeight, FALSE ); // false - bar is "flexible" - - - cbWidth = 120; - cbHeight = 40; - - cbDimInfo sizes3( cbWidth,cbHeight, - cbWidth,cbHeight, - cbWidth,cbHeight, TRUE ); // -/- - - cbWidth = 200; - cbHeight = 150; - - cbDimInfo sizes4( cbWidth,cbHeight, - cbWidth,cbHeight, - cbWidth,cbHeight, FALSE ); // -/- - - cbWidth = 63; - cbHeight = 31; - - cbDimInfo sizes5( cbWidth,cbHeight, - cbHeight,cbWidth, - cbWidth,cbHeight, TRUE, - 3, // vertical gap (bar border) - 3 // horizontal gap (bar border) - ); // -/- - - - if ( layoutNo == FIRST_LAYOUT ) - { - // add 4 fixed-size bars (`sizes' dim-info) and one "flexible" (with `sizes1' dim-info) - - wxWindow* pGreenOne = new MyTestPanel(mpInternalFrm); - - pGreenOne->SetBackgroundColour( wxColour(128,255,128) ); - - layout.AddBar( pGreenOne, sizes, wxTOP, 0, 50, "Bar1", TRUE ); - layout.AddBar( new MyTestPanel(mpInternalFrm), sizes, wxTOP, 2, 50, "Bar2", TRUE ); - layout.AddBar( new MyTestPanel(mpInternalFrm), sizes, wxBOTTOM, 2, 50, "Bar3", TRUE ); - layout.AddBar( new MyTestPanel(mpInternalFrm), sizes, wxLEFT, 2, 50, "Bar4", TRUE ); - layout.AddBar( new MyTestPanel(mpInternalFrm), sizes1, wxCBAR_HIDDEN, 2, 50, "Super-Bar", TRUE ); - } - else - if ( layoutNo == SECOND_LAYOUT ) - { - // show off various wx-controls in the second layout - - layout.AddBar( CreateTxtCtrl(), sizes, wxTOP, 0, 50, "Fixed text Area&0" ); - layout.AddBar( CreateButton("OK"), sizes, wxTOP, 0, 100, "First Button" ); - layout.AddBar( CreateTxtCtrl(), sizes1, wxBOTTOM, 0, 50, "First Tree" ); - layout.AddBar( CreateTreeCtrl("Root"), sizes1, wxLEFT, 0, 0, "TreeCtrl Window" ); - layout.AddBar( CreateChoice("Choice 1"), sizes3, wxTOP, 0, 0, "Choice 1 (buggy)", FALSE, wxCBAR_HIDDEN ); - layout.AddBar( CreateChoice("Choice 2"), sizes3, wxTOP, 0, 0, "Choice 2 (buggy)", FALSE, wxCBAR_HIDDEN ); - layout.AddBar( CreateTreeCtrl("X-Files"), sizes1, wxRIGHT, 0, 100, "X-Files" ); - layout.AddBar( CreateTxtCtrl("smaller1"), sizes3, wxTOP, 0, 50, "smaller Area1" ); - layout.AddBar( CreateTxtCtrl("smaller2"), sizes3, wxTOP, 0, 50, "sm&ller Area2" ); - } - else - if ( layoutNo == THIRD_LAYOUT ) - { -#ifdef __WXGTK__ - - cbCommonPaneProperties props; - layout.GetPaneProperties( props ); - props.mRealTimeUpdatesOn = FALSE; // real-time OFF for gtk!!! - layout.SetPaneProperties( props, wxALL_PANES ); - -#endif - - layout.AddBar( CreateTxtCtrl("Tool1"), sizes3, wxTOP, 0, 50, "Fixed text Area1" ); - layout.AddBar( CreateTxtCtrl("Tool2"), sizes3, wxTOP, 0, 50, "Fixed text Area2" ); - layout.AddBar( CreateTxtCtrl("Tool3"), sizes3, wxTOP, 0, 50, "Fixed text Area3" ); - layout.AddBar( CreateTxtCtrl("Tool4"), sizes3, wxTOP, 1, 50, "Fixed text Area4" ); - layout.AddBar( CreateTxtCtrl("Tool5"), sizes3, wxTOP, 1, 50, "Fixed text Area5" ); - layout.AddBar( CreateTxtCtrl("Tool6"), sizes3, wxTOP, 1, 50, "Fixed text Area6" ); - layout.AddBar( CreateTxtCtrl("Tool7"), sizes3, wxTOP, 2, 250, "Fixed text Area7" ); - - cbDimInfo sizes10(175,35, // when docked horizontally - 175,38, // when docked vertically - 170,35, // when floated - TRUE, // the bar is not fixed-size - 4, // vertical gap (bar border) - 4, // horizontal gap (bar border) - new cbDynToolBarDimHandler() - ); - - wxDynamicToolBar* pToolBar = new wxDynamicToolBar(); - - pToolBar->Create( mpInternalFrm, -1 ); - - // 1001-1006 ids of command events fired by added tool-buttons -#ifdef __WXMSW__ - pToolBar->AddTool( 1001, wxBitmap("new_icon") ); - pToolBar->AddTool( 1002, wxBitmap("open_icon") ); - pToolBar->AddTool( 1003, wxBitmap("save_icon") ); - - pToolBar->AddTool( 1004, wxBitmap("cut_icon") ); - pToolBar->AddTool( 1005, wxBitmap("copy_icon") ); - pToolBar->AddTool( 1006, wxBitmap("paste_icon") ); -#else - pToolBar->AddTool( 1001, wxBitmap(new_xpm), "" ); - pToolBar->AddTool( 1002, wxBitmap(open_xpm), "" ); - pToolBar->AddTool( 1003, wxBitmap(save_xpm), "" ); - - pToolBar->AddTool( 1004, wxBitmap(cut_xpm), "" ); - pToolBar->AddTool( 1005, wxBitmap(copy_xpm), "" ); - pToolBar->AddTool( 1006, wxBitmap(paste_xpm), "" ); -#endif - layout.AddBar( pToolBar, // bar window (can be NULL) - sizes10, wxTOP, // alignment ( 0-top,1-bottom, etc) - 0, // insert into 0th row (vert. position) - 0, // offset from the start of row (in pixels) - "Real-Toolbar", // name to refere in customization pop-ups - FALSE - ); - - - - // create first "developement" layout - - AddSearchToolbars( layout, mpInternalFrm); - - wxWindow* pSheet3 = CreateDevLayout( layout, mpInternalFrm); - - // create another ***secreat developement*** layout inside - // the third sheet of the outter one's output bar - - mpNestedLayout = - - new wxFrameLayout( pSheet3, - CreateTxtCtrl("\"Mobils in Mobile\" --C.Nemo",pSheet3), FALSE ); - - CreateDevLayout( *mpNestedLayout, pSheet3 ); - - mpNestedLayout->Activate(); - } -} - -void MyFrame::CreateLayout( int layoutNo ) -{ - wxFrameLayout* pLayout = new wxFrameLayout( mpInternalFrm, mpClntWindow, FALSE ); - - if ( layoutNo == THIRD_LAYOUT ) - { - pLayout->PushDefaultPlugins(); - pLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // facny "X"es and beveal for bars -#ifdef __WXGTK__ - pLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) ); -#endif - pLayout->AddPlugin( CLASSINFO( cbRowDragPlugin ) ); - } - - mLayouts[layoutNo] = pLayout; - - DropInSomeBars( layoutNo ); -} - -void MyFrame::RemoveLayout( int layoutNo ) -{ - wxFrameLayout* pLayout = mLayouts[layoutNo]; - - if ( !pLayout ) return; - - pLayout->HideBarWindows(); - - // destroy nested layout first - - if ( layoutNo == THIRD_LAYOUT ) - { - if ( mpNestedLayout ) delete mpNestedLayout; - mpNestedLayout = NULL; - } - - // NOTE:: bar windows are NOT destroyed automatically by frame-layout - - pLayout->DestroyBarWindows(); - - delete pLayout; - - mLayouts[layoutNo] = NULL; - - Refresh(); -} - -void MyFrame::DestroyEverything() -{ - for( int i = 0; i != MAX_LAYOUTS; ++i ) - - RemoveLayout( i ); - - if ( mpClntWindow ) - { - mpClntWindow->Destroy(); - - mpClntWindow = NULL; - } -} - -void MyFrame::SyncMenuBarItems() -{ - for( int i = 0; i != MAX_LAYOUTS; ++i ) - - GetMenuBar()->Check( ID_FIRST+i, mActiveLayoutNo == FIRST_LAYOUT+i ); - - GetMenuBar()->Check( ID_AUTOSAVE, mAutoSave ); -} - -void MyFrame::ActivateLayout( int layoutNo ) -{ - if ( layoutNo == mActiveLayoutNo ) return; - - if ( mLayouts[mActiveLayoutNo] ) - - mLayouts[mActiveLayoutNo]->Deactivate(); - - mActiveLayoutNo = layoutNo; - - if ( mLayouts[mActiveLayoutNo] ) - - mLayouts[mActiveLayoutNo]->Activate(); - else - Refresh(); - - SyncMenuBarItems(); -} - -#ifdef __HACK_MY_MSDEV40__ - -////////////// new 2.0-magic (linker errors...) //////////////// - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -void foo( double& d ) -{ - ++d; -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - double dd = 5; - - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -#endif diff --git a/utils/framelayout/samples/demo/fl_demo.h b/utils/framelayout/samples/demo/fl_demo.h deleted file mode 100644 index a6a5542bf0..0000000000 --- a/utils/framelayout/samples/demo/fl_demo.h +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 04/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __FLDEMO_G__ -#define __FLDEMO_G__ - -// ID for the menu commands - -#define MINIMAL_QUIT 1 -#define MINIMAL_ABOUT 102 - -#define ID_LOAD 103 -#define ID_STORE 104 -#define ID_AUTOSAVE 105 -#define ID_SETTINGS 106 -#define ID_REMOVE 107 -#define ID_REMOVEALL 108 -#define ID_RECREATE 109 -#define ID_ACTIVATE 110 -#define ID_FIRST 111 -#define ID_SECOND 112 -#define ID_THIRD 113 - -#define ID_SAY_ITSOK 114 -#define ID_BTN_YES 115 -#define ID_BTN_NO 116 -#define ID_BTN_ESC 117 - -#define MAX_LAYOUTS 3 - -#define FIRST_LAYOUT 0 -#define SECOND_LAYOUT 1 -#define THIRD_LAYOUT 2 - -class wxFrameLayout; - -// FOR NOW:: -typedef wxPanel MyTestPanel; - -// Define a new application type - -class MyApp: public wxApp -{ - public: - bool OnInit(void); -}; - -// Define a new frame type - -class MyFrame: public wxFrame -{ - protected: - - wxFrameLayout* mLayouts[MAX_LAYOUTS]; - - wxFrameLayout* mpNestedLayout; - wxFrameLayout* mpAboutBoxLayout; - - int mActiveLayoutNo; - bool mAutoSave; - bool mSavedAlready; - - // container windows: - - wxTextCtrl* mpClntWindow; - wxPanel* mpInternalFrm; - - wxImageList mImageList; - - wxFrame mAboutBox; - - // helpers for control-creation - - wxTextCtrl* CreateTxtCtrl ( const wxString& txt = "wxTextCtrl", wxWindow* parent = NULL ); - wxTreeCtrl* CreateTreeCtrl( const wxString& label = "TreeCtrl" ); - wxChoice* CreateChoice ( const wxString& txt = "Choice1" ); - wxButton* CreateButton ( const wxString& label = "wxButton", - wxWindow* pParent = NULL, long id = ID_SAY_ITSOK ); - - // helpers for layout-creation - - void AddSearchToolbars( wxFrameLayout& layout, wxWindow* pParent ); - wxWindow* CreateDevLayout( wxFrameLayout& layout, wxWindow* pParent ); - - void DropInSomeBars( int layoutNo ); - void CreateLayout( int layoutNo ); - void RemoveLayout( int layoutNo ); - void DestroyEverything(); - - void InitAboutBox(); - - void ActivateLayout( int layoutNo ); - - -public: /* public */ - - MyFrame(wxFrame *frame, char *title, - int x, int y, int w, int h); - - ~MyFrame(); - - void SyncMenuBarItems(); - - // event handlers - - bool OnClose(void); - - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnSettings( wxCommandEvent& event ); - void OnRemove( wxCommandEvent& event ); - void OnRemoveAll( wxCommandEvent& event ); - void OnRecreate( wxCommandEvent& event ); - void OnFirst( wxCommandEvent& event ); - void OnSecond( wxCommandEvent& event ); - void OnThird( wxCommandEvent& event ); - - void OnSayItsOk( wxCommandEvent& event ); - void OnBtnYes( wxCommandEvent& event ); - void OnBtnNo( wxCommandEvent& event ); - void OnBtnEsc( wxCommandEvent& event ); - - void OnChar( wxKeyEvent& event ); - - DECLARE_EVENT_TABLE() -}; - - -#endif diff --git a/utils/framelayout/samples/demo/fl_demo.rc b/utils/framelayout/samples/demo/fl_demo.rc deleted file mode 100644 index 3760eeec9e..0000000000 --- a/utils/framelayout/samples/demo/fl_demo.rc +++ /dev/null @@ -1,21 +0,0 @@ -#include "wx/msw/wx.rc" -start95_pr_icon BITMAP "../bitmaps/start95_pr.bmp" -start95_dp_icon BITMAP "../bitmaps/start95_dp.bmp" -folder_icon BITMAP "../bitmaps/folder_icon.bmp" -class_icon1 BITMAP "../bitmaps/class_icon1.bmp" -class_icon BITMAP "../bitmaps/class_icon.bmp" -res_icon BITMAP "../bitmaps/res_icon.bmp" -file_icon BITMAP "../bitmaps/file_icon.bmp" -help_icon BITMAP "../bitmaps/help_icon.bmp" -search_icon BITMAP "../bitmaps/search.bmp" -bookmarks_icon BITMAP "../bitmaps/bookmarks.bmp" -nextmark_icon BITMAP "../bitmaps/nextmark.bmp" -prevmark_icon BITMAP "../bitmaps/prevmark.bmp" -open_icon BITMAP "../bitmaps/open.bmp" -save_icon BITMAP "../bitmaps/save.bmp" -saveall_icon BITMAP "../bitmaps/saveall.bmp" -cut_icon BITMAP "../bitmaps/cut.bmp" -new_icon BITMAP "../bitmaps/new.bmp" -copy_icon BITMAP "../bitmaps/copy.bmp" -paste_icon BITMAP "../bitmaps/paste.bmp" - diff --git a/utils/framelayout/samples/demo/settingsdlg.cpp b/utils/framelayout/samples/demo/settingsdlg.cpp deleted file mode 100644 index c1a861679a..0000000000 --- a/utils/framelayout/samples/demo/settingsdlg.cpp +++ /dev/null @@ -1,496 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: settingsdlg.cpp -// Purpose: Settings dialog for Frame Layout -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 05/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "settingsdlg.cpp" -#pragma interface "settingsdlg.cpp" -#endif - -// 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 -#include "settingsdlg.h" - -/***** Implementation for class SettingsDlg *****/ - -#define ID_NOTES ( wxEVT_FIRST + 1000 ) -#define ID_HINTANIM_CHECK ( ID_NOTES + 1 ) -#define ID_RTUPDATES_CHECK ( ID_NOTES + 2 ) - -BEGIN_EVENT_TABLE( SettingsDlg, wxDialog ) - - EVT_BUTTON( wxID_APPLY, SettingsDlg::OnApply ) - EVT_BUTTON( ID_NOTES, SettingsDlg::OnNotes ) - - EVT_CHECKBOX( ID_HINTANIM_CHECK, SettingsDlg::OnHintAnimCheck ) - EVT_CHECKBOX( ID_RTUPDATES_CHECK, SettingsDlg::OnRTUpdatesCheck ) - -END_EVENT_TABLE() - -SettingsDlg::SettingsDlg( wxWindow* pParent ) - - : wxDialog( pParent, -1, "Active Layout Settings...", - wxDefaultPosition, - wxSize( 325,585), - wxDIALOG_MODAL | wxCAPTION ) -{ - int curY = 10; - int lMargin = 50; - int lBoxMargin = lMargin - 20; - int checkHeight = 20; - int labelHeight = 20; - int boxWidth = 260; - int interBoxGap = 10; - int lastItemGap = 10; - - int topY = curY; - - curY += labelHeight; - - mpRTU_Check = new wxCheckBox( this, ID_RTUPDATES_CHECK, - "&Real-time updates", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpOPD_Check = new wxCheckBox( this, -1, "&Out of Pane drag", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpEDP_Check = new wxCheckBox( this, -1, "&Exact docking prediction", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpNDF_Check = new wxCheckBox( this, -1, "Non-destructive bar &friction", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpSPB_Check = new wxCheckBox( this, -1, "&Shaded pane borders", - wxPoint( lMargin, curY ) ); - - curY += checkHeight + lastItemGap; - - wxStaticBox* pDNDBox = new wxStaticBox( this, -1, "Drag && Drop settings", - wxPoint( lBoxMargin, topY ), - wxSize( boxWidth, curY - topY ) ); - - curY += interBoxGap; - - //////////////////////////////////////////////////////////////////// - - topY = curY; - - curY += labelHeight; - - mpHAP_Check = new wxCheckBox( this, ID_HINTANIM_CHECK, - "&Hint-Rect animation plugin", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpGCU_Check = new wxCheckBox( this, -1, "\"Garbage collecting\" &Updates-Mgr.", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpAFP_Check = new wxCheckBox( this, -1, "&Antiflicker plugin", - wxPoint( lMargin, curY ) ); - - curY += checkHeight; - - mpCSP_Check = new wxCheckBox( this, -1, "C&ustomization plugin", - wxPoint( lMargin, curY ) ); - - curY += checkHeight + lastItemGap; - - wxStaticBox* pPBox = new wxStaticBox( this, -1, "Plugins", - wxPoint( lBoxMargin, topY ), - wxSize( boxWidth, curY - topY ) ); - - curY += interBoxGap; - - //////////////////////////////////////////////////////////////////// - - wxSize fieldSz( 30,20 ); - int fieldHeight = 20; - int fieldCapMargin = lMargin + fieldSz.x + 5; - int fieldCapOfs = 4; - - topY = curY; - - curY += labelHeight; - - mpRWInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpRWLabel = new wxStaticText ( this, -1, "Resizing sash width(height)", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - - curY += fieldHeight; - - mpPTMInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpPTMLabel = new wxStaticText( this, -1, "Pene's top margin", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - - curY += fieldHeight; - - - mpPBMInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpPBMLabel = new wxStaticText( this, -1, "Pene's bottom margin", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - - curY += fieldHeight; - - - mpPLMInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpPLMLabel = new wxStaticText( this, -1, "Pane's left margin", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - - curY += fieldHeight; - - - mpPRMInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpPRMLabel = new wxStaticText( this, -1, "Pane's right margin", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - curY += fieldHeight + lastItemGap; - - wxStaticBox* pCPPBox = new wxStaticBox( this, -1, "Common Pane properties", - wxPoint( lBoxMargin, topY ), - wxSize( boxWidth, curY - topY ) ); - - curY += interBoxGap; - - //////////////////////////////////////////////////////////////////// - - topY = curY; - - curY += labelHeight; - - fieldSz.x = 65; - fieldCapMargin = lMargin + fieldSz.x + 10; - - mpDCInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpDCLabel = new wxStaticText ( this, -1, "Dark Color (hex-RGB)", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - curY += fieldHeight; - - mpLCInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpLCLabel = new wxStaticText ( this, -1, "Light Color (hex-RGB)", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - curY += fieldHeight; - - mpGCInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpGCLabel = new wxStaticText ( this, -1, "Gray Color (hex-RGB)", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - curY += fieldHeight; - - mpBCInput = new wxTextCtrl ( this, -1, "", - wxPoint( lMargin, curY ), - fieldSz ); - - mpBCLabel = new wxStaticText ( this, -1, "Pane border Color (hex-RGB)", - wxPoint( fieldCapMargin, curY + fieldCapOfs ) ); - - curY += fieldHeight + lastItemGap; - - wxStaticBox* pCSPBox = new wxStaticBox( this, -1, "Coluor sheme properties", - wxPoint( lBoxMargin, topY ), - wxSize( boxWidth, curY - topY ) ); - - curY += interBoxGap; /*button ofs*/; - - //////////////////////////////////////////////////////////////////////////////// - - int lBtnMargin = 35; - int btnGap = 20; - int btnHeight = 22; - int btnWidth = 70; - - wxButton* mpApplyBtn = new wxButton( this, wxID_APPLY, "A&pply", - wxPoint( lBtnMargin, curY ), - wxSize( btnWidth, btnHeight ) ); - - wxButton* mpCancelBtn = new wxButton( this, wxID_CANCEL, "&Cancel", - wxPoint( lBtnMargin + btnWidth + btnGap, curY ), - wxSize( btnWidth, btnHeight ) ); - - wxButton* mpNotesBtn = new wxButton( this, ID_NOTES, "&Notes...", - wxPoint( lBtnMargin + 2*btnWidth + 2*btnGap, curY ), - wxSize( btnWidth, btnHeight ) ); - - mpApplyBtn->SetDefault(); - mpApplyBtn->SetFocus(); - - Center( wxBOTH ); -} - -void SettingsDlg::ExchangeFields( bool toDialog ) -{ - mToDlg = toDialog; - - ExchgCheck( mpRTU_Check, mRealTimeUpdatesOn ); - ExchgCheck( mpOPD_Check, mOutOfPaneDragOn ); - ExchgCheck( mpEDP_Check, mExactDockingPredictionOn ); - ExchgCheck( mpNDF_Check, mNonDestructFrictionOn ); - ExchgCheck( mpSPB_Check, m3DShadesOn ); - - ExchgCheck( mpHAP_Check, mHintRectAnimationOn ); - ExchgCheck( mpGCU_Check, mGCUpdatesMgrOn ); - ExchgCheck( mpAFP_Check, mAntiflickerPluginOn ); - ExchgCheck( mpCSP_Check, mCustomizationPluginOn ); - - ExchgIntField( mpRWInput, mSashWidth ); - ExchgIntField( mpPTMInput, mTopMargin ); - ExchgIntField( mpPBMInput, mBottomMargin ); - ExchgIntField( mpPLMInput, mLeftMargin ); - ExchgIntField( mpPRMInput, mRightMargin ); - - ExchgColourField( mpDCInput, mDarkCol ); - ExchgColourField( mpLCInput, mLightCol ); - ExchgColourField( mpGCInput, mGrayCol ); - ExchgColourField( mpBCInput, mBorderCol ); -} - -void SettingsDlg::OnApply( wxCommandEvent& event ) -{ - ExchangeFields( FALSE ); - EndModal( wxID_APPLY ); -} - -void SettingsDlg::OnNotes( wxCommandEvent& event ) -{ - wxMessageBox("Notes go here...(TBD)"); -} - -void SettingsDlg::OnRTUpdatesCheck( wxCommandEvent& event ) -{ - if ( mpRTU_Check->GetValue() == TRUE ) - { - // user probably wants to see how the real-time drag & drop - // works -- so we "let 'im know" that animation is N/A when - // real-time option is on - - mpHAP_Check->SetValue(FALSE); - mpHAP_Check->Refresh(); - } -} - -void SettingsDlg::OnHintAnimCheck( wxCommandEvent& event ) -{ - if ( mpHAP_Check->GetValue() == TRUE ) - { - // user probably wants to see some animation effects, - // but he/she forgot to turn off "real-time updates" - // setting -- so we do it for you :-) - - mpRTU_Check->SetValue(FALSE); - mpRTU_Check->Refresh(); - } -} - -void SettingsDlg::ExchgCheck( wxCheckBox* pChk, bool& value ) -{ - if ( mToDlg ) pChk->SetValue( value ); - - else value = pChk->GetValue(); -} - -void SettingsDlg::ExchgIntField( wxTextCtrl* pFld, int& value ) -{ - if ( mToDlg ) - { - char buf[32]; - - sprintf( buf, "%d", value ); - pFld->SetValue( buf ); - } - else - { - wxString txt = pFld->GetLineText( 0 ); - value = atoi( txt ); - } -} - -void SettingsDlg::ExchgColourField( wxTextCtrl* pFld, wxColour& value ) -{ - int rgbVal; - - if ( mToDlg ) - { - rgbVal = ( value.Red() & 0x0000FF ) | - ( (value.Green() << 8 ) & 0x00FF00 ) | - ( (value.Blue() << 16 ) & 0xFF0000 ); - - char buf[32]; - - sprintf( buf, "0x%06X", rgbVal ); - - pFld->SetValue( buf ); - } - else - { - wxString txt = pFld->GetLineText( 0 ); - - sscanf( txt, "0x%06X", &rgbVal ); - - value.Set( rgbVal & 0xFF, - ( rgbVal >> 8 ) & 0xFF, - ( rgbVal >> 16 ) & 0xFF ); - } -} - -bool SettingsDlg::TransferDataToWindow() -{ - ExchangeFields( TRUE ); - - return TRUE; -} - -bool SettingsDlg::TransferDataFromWindow() -{ - ExchangeFields( FALSE ); - - return TRUE; -} - -#include "controlbar.h" -#include "rowlayoutpl.h" -#include "antiflickpl.h" -#include "bardragpl.h" -#include "cbcustom.h" - -#include "gcupdatesmgr.h" -#include "hintanimpl.h" - -void SettingsDlg::ReadLayoutSettings( wxFrameLayout& fl ) -{ - cbDockPane& pane = *fl.GetPane( wxTOP ); - cbCommonPaneProperties& props = pane.mProps; - - mRealTimeUpdatesOn = props.mRealTimeUpdatesOn; - mOutOfPaneDragOn = props.mOutOfPaneDragOn; - mExactDockingPredictionOn = props.mExactDockPredictionOn; - mNonDestructFrictionOn = props.mNonDestructFirctionOn; - m3DShadesOn = props.mShow3DPaneBorderOn; - - mHintRectAnimationOn = fl.FindPlugin( CLASSINFO( cbHintAnimationPlugin ) ) != NULL; - mAntiflickerPluginOn = fl.FindPlugin( CLASSINFO( cbAntiflickerPlugin ) ) != NULL; - mCustomizationPluginOn = fl.FindPlugin( CLASSINFO( cbSimpleCustomizationPlugin ) ) != NULL; - mGCUpdatesMgrOn = fl.GetUpdatesManager().GetClassInfo() - == CLASSINFO( cbGCUpdatesMgr ); - - mSashWidth = props.mResizeHandleSize; - - mTopMargin = pane.mTopMargin; - mBottomMargin = pane.mBottomMargin; - mLeftMargin = pane.mLeftMargin; - mRightMargin = pane.mRightMargin; - - mDarkCol = fl.mDarkPen.GetColour(); - mLightCol = fl.mLightPen.GetColour(); - mGrayCol = fl.mGrayPen.GetColour(); - mBorderCol = fl.mBorderPen.GetColour(); -} - -void SettingsDlg::ApplyLayoutSettings( wxFrameLayout& fl ) -{ - cbCommonPaneProperties props; - - props.mRealTimeUpdatesOn = mRealTimeUpdatesOn; - props.mOutOfPaneDragOn = mOutOfPaneDragOn; - props.mExactDockPredictionOn = mExactDockingPredictionOn; - props.mNonDestructFirctionOn = mNonDestructFrictionOn; - props.mShow3DPaneBorderOn = m3DShadesOn; - - props.mResizeHandleSize = mSashWidth; - - fl.SetPaneProperties( props, wxALL_PANES ); - - if ( mHintRectAnimationOn ) fl.AddPlugin ( CLASSINFO( cbHintAnimationPlugin ) ); - else fl.RemovePlugin( CLASSINFO( cbHintAnimationPlugin ) ); - - if ( mAntiflickerPluginOn ) fl.AddPlugin ( CLASSINFO( cbAntiflickerPlugin ) ); - else fl.RemovePlugin( CLASSINFO( cbAntiflickerPlugin ) ); - - if ( mCustomizationPluginOn ) fl.AddPlugin ( CLASSINFO( cbSimpleCustomizationPlugin ) ); - else fl.RemovePlugin( CLASSINFO( cbSimpleCustomizationPlugin ) ); - - // FOR NOW:: unfortunatelly, currently pane marin-information is currently - // placed into cbDockPane, instead of cbCommonPaneProperties - - fl.SetMargins( mTopMargin, mBottomMargin, - mLeftMargin, mRightMargin, wxALL_PANES ); - - fl.mDarkPen.SetColour( mDarkCol ); - fl.mLightPen.SetColour( mLightCol ); - fl.mGrayPen.SetColour( mGrayCol ); - fl.mBorderPen.SetColour( mBorderCol ); - - fl.RecalcLayout( TRUE ); - - // NOTE:: currently it's bit tricky changing updates-manager - // in future, updates-manager will become a normal plugin - // and more convenient methods (Add/FindPlugin) will be used - - if ( mGCUpdatesMgrOn && - fl.GetUpdatesManager().GetClassInfo() != CLASSINFO( cbGCUpdatesMgr ) - ) - - fl.SetUpdatesManager( new cbGCUpdatesMgr( &fl ) ); - else - if ( !mGCUpdatesMgrOn && - fl.GetUpdatesManager().GetClassInfo() == CLASSINFO( cbGCUpdatesMgr ) - ) - - fl.SetUpdatesManager( new cbSimpleUpdatesMgr( &fl ) ); -} diff --git a/utils/framelayout/samples/demo/settingsdlg.h b/utils/framelayout/samples/demo/settingsdlg.h deleted file mode 100644 index 7ea1d4f847..0000000000 --- a/utils/framelayout/samples/demo/settingsdlg.h +++ /dev/null @@ -1,99 +0,0 @@ -#ifndef __SETTINGSDLG_G__ -#define __SETTINGSDLG_G__ - -#include "wx/dialog.h" - -class wxFrameLayout; - -class SettingsDlg : public wxDialog -{ -protected: - - // "nice thing" about wxWindows: - - wxCheckBox* mpRTU_Check; - wxCheckBox* mpOPD_Check; - wxCheckBox* mpEDP_Check; - wxCheckBox* mpNDF_Check; - wxCheckBox* mpSPB_Check; - - wxCheckBox* mpHAP_Check; - wxCheckBox* mpGCU_Check; - wxCheckBox* mpAFP_Check; - wxCheckBox* mpCSP_Check; - - wxTextCtrl* mpRWInput; - wxStaticText* mpRWLabel; - wxTextCtrl* mpPTMInput; - wxStaticText* mpPTMLabel; - wxTextCtrl* mpPBMInput; - wxStaticText* mpPBMLabel; - wxTextCtrl* mpPLMInput; - wxStaticText* mpPLMLabel; - wxTextCtrl* mpPRMInput; - wxStaticText* mpPRMLabel; - - wxTextCtrl* mpDCInput; - wxStaticText* mpDCLabel; - wxTextCtrl* mpLCInput; - wxStaticText* mpLCLabel; - wxTextCtrl* mpGCInput; - wxStaticText* mpGCLabel; - wxTextCtrl* mpBCInput; - wxStaticText* mpBCLabel; - - // fields/properties - - bool mRealTimeUpdatesOn; - bool mOutOfPaneDragOn; - bool mExactDockingPredictionOn; - bool mNonDestructFrictionOn; - bool m3DShadesOn; - bool mHintRectAnimationOn; - bool mGCUpdatesMgrOn; - bool mAntiflickerPluginOn; - bool mCustomizationPluginOn; - - int mSashWidth; - int mTopMargin; - int mBottomMargin; - int mLeftMargin; - int mRightMargin; - - wxColour mDarkCol; - wxColour mLightCol; - wxColour mGrayCol; - wxColour mBorderCol; - -protected: - - bool mToDlg; - - // helpers - - void ExchgCheck( wxCheckBox* pChk, bool& value ); - void ExchgIntField( wxTextCtrl* pFld, int& value ); - void ExchgColourField( wxTextCtrl* pFld, wxColour& value ); - - virtual bool TransferDataToWindow(); - virtual bool TransferDataFromWindow(); - -public: - - SettingsDlg( wxWindow* pParent ); - - void ReadLayoutSettings( wxFrameLayout& fl ); - void ApplyLayoutSettings( wxFrameLayout& fl ); - - void ExchangeFields( bool toDialog ); - - void OnApply( wxCommandEvent& event ); - void OnNotes( wxCommandEvent& event ); - - void OnHintAnimCheck( wxCommandEvent& event ); - void OnRTUpdatesCheck( wxCommandEvent& event ); - - DECLARE_EVENT_TABLE(); -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/samples/demo/wxinfo.cpp b/utils/framelayout/samples/demo/wxinfo.cpp deleted file mode 100644 index c7aa850891..0000000000 --- a/utils/framelayout/samples/demo/wxinfo.cpp +++ /dev/null @@ -1,138 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/11/98 -// RCS-ID: $Id$ -// Copyright: 1998 (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wxinifo.cpp" -#pragma interface "wxinifo.cpp" -#endif - -// 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/hash.h" -#include "wxinfo.h" - -inline static void expand_item( wxTreeCtrl* pTree, wxTreeItemId& itemId ) -{ - pTree->Expand( itemId ); -} - -void wxCreateClassInfoTree( wxTreeCtrl* pTree, - wxTreeItemId parentBranchId, - long classImageNo - ) -{ - expand_item( pTree, parentBranchId ); - - wxHashTable hash; - - wxList lst; - - // collect all classes into list - - { - wxClassInfo* pCur = wxClassInfo::GetFirst(); - - wxClassInfo::InitializeClasses(); - - while( pCur ) - { - lst.Append( (wxObject*)pCur ); - - pCur = pCur->GetNext(); - } - } - - wxClassInfo::InitializeClasses(); - - // reflect class-hierarchy into the tree nodes - - int nHanged; - - do - { - nHanged = 0; - - wxNode* pCur = lst.First(); - - // repeat passes through class list, untill all of - // the class items are "hanged" onto their parent-items in the tree - - while( pCur ) - { - wxClassInfo& info = *((wxClassInfo*)pCur->Data()); - - if ( info.GetBaseClass1() == NULL ) - { - // parentless classes are put into the root branch - - wxTreeItemId* pId = new wxTreeItemId(); - *pId = pTree->AppendItem( parentBranchId, info.GetClassName(), classImageNo ); - - expand_item( pTree, *pId ); - - // "remember" it - hash.Put( long(&info), (wxObject*)pId ); - - // class is "hanged", remove it from the list - wxNode* pTmp = pCur; - - pCur = pCur->Next(); - - delete pTmp; - - ++nHanged; - } - else - { - wxTreeItemId* pParentId = (wxTreeItemId*)hash.Get( (long)info.GetBaseClass1() ); - - if ( pParentId != NULL ) - { - wxTreeItemId* pId = new wxTreeItemId(); - - *pId = pTree->AppendItem( *pParentId, info.GetClassName(), classImageNo ); - - expand_item( pTree, *pId ); - - hash.Put( long(&info), (wxObject*)pId ); - - wxNode* pTmp = pCur; - - pCur = pCur->Next(); - - // class is "hanged", remove it from the list - delete pTmp; - - ++nHanged; - } - else - { - // otherwise there's a parent, but it's not in the tree yet... - // hope to "hang" it in the subsequent passes - - pCur = pCur->Next(); - } - } - } - - } while( nHanged != 0 ); -} - - diff --git a/utils/framelayout/samples/demo/wxinfo.h b/utils/framelayout/samples/demo/wxinfo.h deleted file mode 100644 index 5f8ddda160..0000000000 --- a/utils/framelayout/samples/demo/wxinfo.h +++ /dev/null @@ -1,35 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/11/98 -// RCS-ID: $Id$ -// Copyright: 1998 (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WXINFO_G__ -#define __WXINFO_G__ - -#include "wx/object.h" -#include "wx/treectrl.h" - - -/* - * creates tree with hierarchically cauptured - * information about wxWindows dynamic classes (at "current run-time") - */ - -void wxCreateClassInfoTree( wxTreeCtrl* pTree, - wxTreeItemId parentBranchId, - long classImageNo = -1 - ); - -/* - * creates tree with information about - * serializer-classes (at current run-time) - * NOTE:: "objstore.cpp" should be compiled in - */ - -#endif diff --git a/utils/framelayout/samples/make_Linux_make b/utils/framelayout/samples/make_Linux_make deleted file mode 100755 index 3559c44e53..0000000000 --- a/utils/framelayout/samples/make_Linux_make +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -cat < Linux/Makefile -cd .. - -done - - diff --git a/utils/framelayout/samples/sample/.cvsignore b/utils/framelayout/samples/sample/.cvsignore deleted file mode 100644 index 7957c41216..0000000000 --- a/utils/framelayout/samples/sample/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux \ No newline at end of file diff --git a/utils/framelayout/samples/sample/fl_sample.cpp b/utils/framelayout/samples/sample/fl_sample.cpp deleted file mode 100644 index 147d7f0d03..0000000000 --- a/utils/framelayout/samples/sample/fl_sample.cpp +++ /dev/null @@ -1,235 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: main.cpp -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 24/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "fl_sample.cpp" -#pragma interface "fl_sample.cpp" -#endif - -// 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 "controlbar.h" - -// plugins used -#include "barhintspl.h" -#include "hintanimpl.h" - -#include "wx/textctrl.h" - -// ADDED by alex (linker complaints...): -#ifndef wxDUMMY_OBJ_INCLUDED -char wxDummyChar=0; -#endif - -#define ID_LOAD 102 -#define ID_STORE 103 -#define ID_QUIT 104 - -#define LAYOUT_FILE "layouts.dat" - -class MyApp: public wxApp -{ -public: - bool OnInit(void); -}; - -class MyFrame: public wxFrame -{ -protected: - wxFrameLayout* mpLayout; - wxWindow* mpClientWnd; - wxPanel* mpInternalFrm; - - - wxTextCtrl* CreateTextCtrl( const wxString& value ); - - -public: - MyFrame( wxWindow* parent, char *title ); - ~MyFrame(); - - void OnQuit( wxCommandEvent& event ); - - bool OnClose(void) { return TRUE; } - - DECLARE_EVENT_TABLE() -}; - -/***** Implementation for class MyApp *****/ - -IMPLEMENT_APP (MyApp) - -bool MyApp::OnInit(void) -{ - // wxWindows boiler-plate: - - MyFrame *frame = new MyFrame(NULL, "wxFrameLayout sample"); - - wxMenu *file_menu = new wxMenu; - - file_menu->Append( ID_LOAD, "&Load layout" ); - file_menu->Append( ID_STORE, "&Store layout" ); - file_menu->AppendSeparator(); - - file_menu->Append( ID_QUIT, "E&xit" ); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - - frame->CreateStatusBar(3); - frame->SetMenuBar(menu_bar); - - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -/***** Immlementation for class MyFrame *****/ - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - - EVT_MENU( ID_QUIT, MyFrame::OnQuit ) - -END_EVENT_TABLE() - -MyFrame::MyFrame( wxWindow* parent, char *title ) - - : wxFrame( parent, -1, "NewTest-II", wxDefaultPosition, - wxSize( 700, 500 ), - wxCLIP_CHILDREN | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | - wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION, - "freimas" ) -{ -#ifdef __WXMSW__ - mpInternalFrm = (wxPanel*)this; -#else - mpInternalFrm = new wxPanel( this, -1 ); -#endif - - mpClientWnd = CreateTextCtrl( "Client window" ); - - // btw, creation of internal frame is needed for wxGtk version - // to act correctly (since menu-bar is a separate window there..) - - mpLayout = new wxFrameLayout( mpInternalFrm, mpClientWnd ); - -#ifdef __WXGTK__ - - // real-time dosn't work well under wxGtk yet - cbCommonPaneProperties props; - mpLayout->GetPaneProperties( props ); - - props.mRealTimeUpdatesOn = FALSE; // off - - mpLayout->SetPaneProperties( props, wxALL_PANES ); - -#endif - - mpLayout->PushDefaultPlugins(); - mpLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // facny "X"es and beveal for barso - //mpLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) ); - - cbDimInfo sizes( 80,65, // when docked horizontally - 80,65, // when docked vertically - 80,30, // when floated - TRUE, // the bar is fixed-size - 5, // vertical gap (bar border) - 5 // horizontal gap (bar border) - ); - - // drop-in 20 bars - - for( int i = 1; i <= 10; ++i ) - { - char buf[4]; - sprintf( buf, "%d", i ); - wxString name = wxString("Bar-"); - name += buf; - - sizes.mIsFixed = i % 5 > 0; // every fifth bar is not fixed-size - - if ( !sizes.mIsFixed ) name += " (flexible)"; - - mpLayout->AddBar( CreateTextCtrl(name),// bar window - sizes, i % MAX_PANES,// alignment ( 0-top,1-bottom, etc) - 0, // insert into 0th row (vert. position) - 0, // offset from the start of row (in pixels) - name // name to refere in customization pop-ups - ); - } -} - -MyFrame::~MyFrame() -{ - // layout is not a window, should be released manually - - if ( mpLayout ) delete mpLayout; -} - -wxTextCtrl* MyFrame::CreateTextCtrl( const wxString& value ) -{ - wxTextCtrl* pCtrl = - - new wxTextCtrl( mpInternalFrm, -1, value, - wxPoint(0,0), wxSize(1,1), wxTE_MULTILINE ); - - pCtrl->SetBackgroundColour( wxColour( 255,255,255 ) ); - - return pCtrl; -} - -void MyFrame::OnQuit( wxCommandEvent& event ) -{ - Show( FALSE ); // TRICK:: hide it, to avoid flickered destruction - - Close(TRUE); -} - -#ifdef __HACK_MY_MSDEV40__ - -////////////// new 2.0-magic (linker errors...) //////////////// - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -#endif diff --git a/utils/framelayout/samples/sample/fl_sample.rc b/utils/framelayout/samples/sample/fl_sample.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/utils/framelayout/samples/sample/fl_sample.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/utils/framelayout/samples/test/.cvsignore b/utils/framelayout/samples/test/.cvsignore deleted file mode 100644 index 7957c41216..0000000000 --- a/utils/framelayout/samples/test/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux \ No newline at end of file diff --git a/utils/framelayout/samples/test/fl_test.cpp b/utils/framelayout/samples/test/fl_test.cpp deleted file mode 100644 index 2ef179f116..0000000000 --- a/utils/framelayout/samples/test/fl_test.cpp +++ /dev/null @@ -1,242 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: minimal.cpp -// Purpose: Minimal wxWindows sample -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "minimal.cpp" -#pragma interface "minimal.cpp" -#endif - -// 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/textctrl.h" - -#include "controlbar.h" // core API -#include "fl_test.h" - -// extra plugins -#include "barhintspl.h" // beveal for bars with "X"s and grooves -#include "rowdragpl.h" // NC-look with dragable rows -#include "cbcustom.h" // customization plugin -#include "hintanimpl.h" - -// beuty-care -#include "gcupdatesmgr.h" // smooth d&d -#include "antiflickpl.h" // double-buffered repaint of decorations - -#include "dyntbar.h" // auto-layouting toolbar -#include "dyntbarhnd.h" // control-bar dimension handler for it - -// comment it out if it breaks, (this is my workaround for MSDev 4.0 linker) - -#ifndef wxDUMMY_OBJ_INCLUDED -char wxDummyChar; -#endif - - -IMPLEMENT_APP (MyApp) - -bool MyApp::OnInit(void) -{ - MyFrame *frame = new MyFrame(NULL); - - frame->SetBackgroundColour( wxColour(192,192,192) ); - - wxMenu *file_menu = new wxMenu; - - file_menu->Append( NEW_TEST_EXIT, "E&xit" ); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - - frame->SetMenuBar(menu_bar); - - frame->CreateStatusBar(3); - - frame->Show(TRUE); - - frame->mpClientWnd->Refresh(); - - SetTopWindow(frame); - - return TRUE; - - /* - wxMessageBox("Hello, this demo has a bunch of yet-not-fixed-bugs and misssing functionality\n\ -The ONLY purpose is to demostrate self-layouting toolbars,\n flat-bitmapped-buttons and 2-new FL-plugins\ - (cbRowDragPlugin & cbBarHintsPlugin)\n\n\ -BTW, disabled images and label-text are rendered at run-time" ); -*/ - - - return TRUE; -} - -/***** Implementation for class MyFrame *****/ - -BEGIN_EVENT_TABLE( MyFrame, wxFrame ) - -// EVT_CHAR_HOOK(MyFrame::OnKeyDown) -// EVT_PAINT( MyFrame::OnPaint ) - EVT_MENU( NEW_TEST_EXIT, MyFrame::OnExit ) - -END_EVENT_TABLE() - -void MyFrame::OnExit( wxCommandEvent& event ) -{ - Destroy(); -} - -wxTextCtrl* MyFrame::CreateTextCtrl( const wxString& value ) -{ - wxTextCtrl* pCtrl = - - new wxTextCtrl( mpInternalFrm, -1, value, - wxDefaultPosition, wxSize(0,0), wxTE_MULTILINE ); - - pCtrl->SetBackgroundColour( wxColour( 255,255,255 ) ); - - return pCtrl; -} - -MyFrame::MyFrame(wxFrame *frame) - - : wxFrame( frame, -1, "wxWindows 2.0 wxFrameLayout Test Application", wxDefaultPosition, - wxSize( 700, 500 ), - wxCLIP_CHILDREN | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | - wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION, - "freimas" ) -{ - mpInternalFrm = (wxPanel*)this; - mpClientWnd = CreateTextCtrl( "Client window" ); - - - mpLayout = new wxFrameLayout( mpInternalFrm, mpClientWnd ); - - -#ifdef __WXGTK__ - - cbCommonPaneProperties props; - mpLayout->GetPaneProperties( props ); - - props.mRealTimeUpdatesOn = FALSE; // real-time OFF!!! - - mpLayout->SetPaneProperties( props, wxALL_PANES ); - -#endif - - mpLayout->SetUpdatesManager( new cbGCUpdatesMgr() ); - - // this is now default... - //mpLayout->SetMargins( 1,1,1,1 ); // gaps for vertical/horizontal/right/left panes - - // setup plugins for testing - - mpLayout->PushDefaultPlugins(); - - mpLayout->AddPlugin( CLASSINFO( cbBarHintsPlugin ) ); // facny "X"es and beveal for bars - - mpLayout->AddPlugin( CLASSINFO( cbHintAnimationPlugin ) ); - mpLayout->AddPlugin( CLASSINFO( cbRowDragPlugin ) ); - mpLayout->AddPlugin( CLASSINFO( cbAntiflickerPlugin ) ); - mpLayout->AddPlugin( CLASSINFO( cbSimpleCustomizationPlugin ) ); - - // drop in some bars - - cbDimInfo sizes0(200,45, // when docked horizontally - 200,85, // when docked vertically - 175,35, // when floated - FALSE, // the bar is not fixed-size - 4, // vertical gap (bar border) - 4 // horizontal gap (bar border) - ); - - cbDimInfo sizes1(150,35, // when docked horizontally - 150,85, // when docked vertically - 175,35, // when floated - TRUE, // the bar is not fixed-size - 4, // vertical gap (bar border) - 4 // horizontal gap (bar border) - ); - - cbDimInfo sizes2(175,45, // when docked horizontally - 175,37, // when docked vertically - 170,35, // when floated - TRUE, // the bar is not fixed-size - 4, // vertical gap (bar border) - 4, // horizontal gap (bar border) - new cbDynToolBarDimHandler() - ); - - mpLayout->AddBar( CreateTextCtrl("Hello"), // bar window - sizes0, wxTOP, // alignment ( 0-top,1-bottom, etc) - 0, // insert into 0th row (vert. position) - 0, // offset from the start of row (in pixels) - "InfoViewer1", // name to refere in customization pop-ups - TRUE - ); - - mpLayout->AddBar( CreateTextCtrl("Bye"), // bar window - sizes0, wxTOP, // alignment ( 0-top,1-bottom, etc) - 1, // insert into 0th row (vert. position) - 0, // offset from the start of row (in pixels) - "InfoViewer2", // name to refere in customization pop-ups - TRUE - ); - - mpLayout->EnableFloating( FALSE ); // off, thinking bout wxGtk... -} - -MyFrame::~MyFrame() -{ - if ( mpLayout) delete mpLayout; // should be destroyed manually -} - -#ifdef __HACK_MY_MSDEV40__ - -////////////// new 2.0-magic (linker errors...) //////////////// - -wxToolBar* wxFrame::CreateToolBar(long style, wxWindowID id, const wxString& name) -{ - wxCHECK_MSG( m_frameToolBar == NULL, FALSE, - "recreating toolbar in wxFrame" ); - - wxToolBar* toolBar = OnCreateToolBar(style, id, name); - if (toolBar) - { - SetToolBar(toolBar); - PositionToolBar(); - return toolBar; - } - else - { - return NULL; - } -} - -wxToolBar* wxFrame::OnCreateToolBar(long style, wxWindowID id, const wxString& name) -{ - return new wxToolBar(this, id, wxDefaultPosition, wxDefaultSize, style, name); -} - -#endif diff --git a/utils/framelayout/samples/test/fl_test.h b/utils/framelayout/samples/test/fl_test.h deleted file mode 100644 index e24755cc73..0000000000 --- a/utils/framelayout/samples/test/fl_test.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __NEW_TEST_G__ -#define __NEW_TEST_G__ - -#include "wx/panel.h" - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); -}; - -class MyFrame: public wxFrame -{ -public: - - wxFrameLayout* mpLayout; - wxTextCtrl* mpClientWnd; - wxPanel* mpInternalFrm; - - wxTextCtrl* CreateTextCtrl( const wxString& value ); - -public: - MyFrame(wxFrame *frame); - virtual ~MyFrame(); - - bool OnClose(void) { Show(FALSE); return TRUE; } - - void OnExit( wxCommandEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#define NEW_TEST_EXIT 1101 - -#endif diff --git a/utils/framelayout/samples/test/fl_test.rc b/utils/framelayout/samples/test/fl_test.rc deleted file mode 100644 index 82bdf07561..0000000000 --- a/utils/framelayout/samples/test/fl_test.rc +++ /dev/null @@ -1,2 +0,0 @@ -#include "wx/msw/wx.rc" - diff --git a/utils/framelayout/src/.cvsignore b/utils/framelayout/src/.cvsignore deleted file mode 100644 index 7957c41216..0000000000 --- a/utils/framelayout/src/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux \ No newline at end of file diff --git a/utils/framelayout/src/antiflickpl.cpp b/utils/framelayout/src/antiflickpl.cpp deleted file mode 100644 index 4e729a5359..0000000000 --- a/utils/framelayout/src/antiflickpl.cpp +++ /dev/null @@ -1,238 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas (@Lithuania) -// Modified by: -// Created: 23/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "antiflickpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "antiflickpl.h" - -/***** Implementation for class cbAntiflickerPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbAntiflickerPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbAntiflickerPlugin, cbPluginBase ) - - EVT_PL_START_DRAW_IN_AREA ( cbAntiflickerPlugin::OnStartDrawInArea ) - EVT_PL_FINISH_DRAW_IN_AREA ( cbAntiflickerPlugin::OnFinishDrawInArea ) - -END_EVENT_TABLE() - -// initialization of static members - -int cbAntiflickerPlugin::mRefCount = 0; - -wxBitmap* cbAntiflickerPlugin::mpVertBuf = 0; -wxBitmap* cbAntiflickerPlugin::mpHorizBuf = 0; -wxMemoryDC* cbAntiflickerPlugin::mpVertBufDc = 0; -wxMemoryDC* cbAntiflickerPlugin::mpHorizBufDc = 0; - -// constructors - -cbAntiflickerPlugin::cbAntiflickerPlugin(void) - : mpLRUBufDc ( NULL ), - mLRUArea ( -1,-1, -1,-1 ) -{ - ++mRefCount; -} - -cbAntiflickerPlugin::cbAntiflickerPlugin( wxFrameLayout* pPanel, int paneMask ) - - : cbPluginBase( pPanel, paneMask ), - mpLRUBufDc ( NULL ), - mLRUArea ( -1,-1, -1,-1 ) -{ - ++mRefCount; -} - -cbAntiflickerPlugin::~cbAntiflickerPlugin() -{ - if ( --mRefCount == 0 ) - { - if ( mpHorizBuf ) - { - mpHorizBufDc->SelectObject( wxNullBitmap ); - delete mpHorizBuf; - delete mpHorizBufDc; - mpHorizBuf = 0; - mpHorizBufDc = 0; - } - - if ( mpVertBuf ) - { - mpVertBufDc->SelectObject( wxNullBitmap ); - delete mpVertBuf; - delete mpVertBufDc; - mpVertBuf = 0; - mpVertBufDc = 0; - } - } -} - -wxDC* cbAntiflickerPlugin::FindSuitableBuffer( const wxRect& forArea ) -{ - if ( mpVertBuf ) - { - if ( mpVertBuf->GetHeight() >= forArea.height && - mpVertBuf->GetWidth() >= forArea.width ) - - return mpVertBufDc; - } - else - if ( mpHorizBuf ) - { - if ( mpHorizBuf->GetHeight() >= forArea.height && - mpHorizBuf->GetWidth() >= forArea.width ) - - return mpHorizBufDc; - } - - return 0; -} - -wxDC* cbAntiflickerPlugin::AllocNewBuffer( const wxRect& forArea ) -{ - // TBD:: preallocate bit larger bitmap at once, to avoid - // excessive realocations later - - // check whether the given area is oriented horizontally - // or verticallya and choose correspoinding bitmap to create or - // recreate - - wxBitmap* pBuf = 0; - - if ( forArea.height > forArea.width ) - { - wxSize prevDim( 0,0 ); - - if ( mpVertBuf ) - { - prevDim.x = mpVertBuf->GetWidth(); - prevDim.y = mpVertBuf->GetHeight(); - - mpVertBufDc->SelectObject( wxNullBitmap ); - delete mpVertBuf; - } - else - mpVertBufDc = new wxMemoryDC(); - - mpVertBuf = new wxBitmap( int( wxMax(forArea.width, prevDim.x ) ), - int( wxMax(forArea.height, prevDim.y ) ) - ); - - mpVertBufDc->SelectObject( *mpVertBuf ); - - return mpVertBufDc; - } - else - { - wxSize prevDim( 0,0 ); - - if ( mpHorizBuf ) - { - prevDim.x = mpHorizBuf->GetWidth(); - prevDim.y = mpHorizBuf->GetHeight(); - - mpHorizBufDc->SelectObject( wxNullBitmap ); - delete mpHorizBuf; - } - else - mpHorizBufDc = new wxMemoryDC(); - - mpHorizBuf = new wxBitmap( int( wxMax(forArea.width, prevDim.x ) ), - int( wxMax(forArea.height, prevDim.y ) ) - ); - - mpHorizBufDc->SelectObject( *mpHorizBuf ); - - return mpHorizBufDc; - } -} - -void cbAntiflickerPlugin::OnStartDrawInArea( cbStartDrawInAreaEvent& event ) -{ - wxASSERT( mpLRUBufDc == NULL ); // DBG:: see comments in OnFinishDrawInArea(..) method - - // short-cut - wxRect& area = event.mArea; - - if ( event.mArea.width < 0 || - event.mArea.height < 0 ) return; - - // memorize given area - mLRUArea.x = area.x; - mLRUArea.y = area.y; - mLRUArea.width = area.width; - mLRUArea.height = area.height; - - wxDC* pBufDc = FindSuitableBuffer( area ); - - if ( !pBufDc ) - - pBufDc = AllocNewBuffer( area ); - - pBufDc->SetDeviceOrigin( -area.x, -area.y ); - - pBufDc->SetClippingRegion( area.x, area.y, - area.width, area.height ); - - wxClientDC clntDc( &mpLayout->GetParentFrame() ); - - (*event.mppDc) = pBufDc; - - mpLRUBufDc = pBufDc; // memorize buffer, which will be flushed to screen - // upon "commiting" the drawing - - /* - // OLD STUFF:: - mpLRUBufDc->Blit( pos.x, pos.y, size.x, size.y, - &clntDc, pos.x, pos.y, wxCOPY ); - */ -} - -void cbAntiflickerPlugin::OnFinishDrawInArea( cbFinishDrawInAreaEvent& event ) -{ - wxRect& area = event.mArea; - - if ( event.mArea.width < 0 || - event.mArea.height < 0 ) return; - - wxASSERT( mpLRUBufDc ); // DBG:: OnStartDrawInArea should be called first - - // FOR NOW:: OnStartDrawInArea(..) should be immediatelly followed - // by OnFinishDrawInArea(..) for the same area - - wxASSERT( mLRUArea.x == area.x ); - wxASSERT( mLRUArea.y == area.y ); - wxASSERT( mLRUArea.width == area.width ); - wxASSERT( mLRUArea.height == area.height ); - - wxClientDC clntDc( &mpLayout->GetParentFrame() ); - - // "commit" drawings in one-shot - clntDc.Blit( area.x, area.y, area.width, area.height, - mpLRUBufDc, area.x, area.y, wxCOPY ); - - mpLRUBufDc->DestroyClippingRegion(); - mpLRUBufDc = 0; -} diff --git a/utils/framelayout/src/antiflickpl.h b/utils/framelayout/src/antiflickpl.h deleted file mode 100644 index baae26812c..0000000000 --- a/utils/framelayout/src/antiflickpl.h +++ /dev/null @@ -1,59 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas (@Lithuania) -// Modified by: -// Created: 23/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __ANTIFLICKPL_G__ -#define __ANTIFLICKPL_G__ - -#include "controlbar.h" - -class cbAntiflickerPlugin : public cbPluginBase -{ - DECLARE_DYNAMIC_CLASS( cbAntiflickerPlugin ) -protected: - // double-buffers are shared "resource" among all instances of - // antiflicker plugin within the application - // - // TODO:: locking should be implemented, for multithreaded GUIs - - static wxBitmap* mpVertBuf; - static wxBitmap* mpHorizBuf; - static wxMemoryDC* mpVertBufDc; - static wxMemoryDC* mpHorizBufDc; - - static int mRefCount; - - wxDC* mpLRUBufDc; // last-reacently-used buffer - wxRect mLRUArea; // last-reacently-used area - -protected: - // returns NULL, if sutable buffer is not present - wxDC* FindSuitableBuffer( const wxRect& forArea ); - wxDC* AllocNewBuffer( const wxRect& forArea ); - wxDC& GetWindowDC(); - - wxDC& GetClientDC(); -public: - - cbAntiflickerPlugin(void); - - cbAntiflickerPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - - virtual ~cbAntiflickerPlugin(); - - // handlers for plugin events - - void OnStartDrawInArea ( cbStartDrawInAreaEvent& event ); - void OnFinishDrawInArea( cbFinishDrawInAreaEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/bardragpl.cpp b/utils/framelayout/src/bardragpl.cpp deleted file mode 100644 index 9a6878a419..0000000000 --- a/utils/framelayout/src/bardragpl.cpp +++ /dev/null @@ -1,929 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bardragpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "bardragpl.h" - -#define POS_UNDEFINED -32768 - -// helpers, FOR NOW:: static - -static inline bool rect_hits_rect( const wxRect& r1, const wxRect& r2 ) -{ - if ( ( r2.x >= r1.x && r2.x <= r1.x + r1.width ) || - ( r1.x >= r2.x && r1.x <= r2.x + r2.width ) ) - - if ( ( r2.y >= r1.y && r2.y <= r1.y + r1.height ) || - ( r1.y >= r2.y && r1.y <= r2.y + r2.height ) ) - - return TRUE; - - return FALSE; -} - -static inline bool rect_contains_point( const wxRect& rect, int x, int y ) -{ - return ( x >= rect.x && - y >= rect.y && - x < rect.x + rect.width && - y < rect.y + rect.height ); -} - -/***** Implementation for class cbBarDragPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbBarDragPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbBarDragPlugin, cbPluginBase ) - - //EVT_PL_LEFT_DOWN ( cbBarDragPlugin::OnLButtonDown ) - EVT_PL_LEFT_UP ( cbBarDragPlugin::OnLButtonUp ) - EVT_PL_MOTION ( cbBarDragPlugin::OnMouseMove ) - EVT_PL_DRAW_HINT_RECT ( cbBarDragPlugin::OnDrawHintRect ) - EVT_PL_START_BAR_DRAGGING ( cbBarDragPlugin::OnStartBarDragging ) - EVT_PL_LEFT_DCLICK ( cbBarDragPlugin::OnLDblClick ) - -END_EVENT_TABLE() - -cbBarDragPlugin::cbBarDragPlugin(void) - - : mBarDragStarted ( FALSE ), - mCanStick ( TRUE ), - mpDraggedBar ( NULL ), - mInClientHintBorder( 4 ), - mpScrDc ( NULL ), - mpCurCursor ( NULL ) -{} - -cbBarDragPlugin::cbBarDragPlugin( wxFrameLayout* pPanel, int paneMask ) - - : cbPluginBase( pPanel, paneMask ), - - mBarDragStarted ( FALSE ), - mCanStick ( TRUE ), - mpDraggedBar ( NULL ), - mInClientHintBorder( 4 ), - mpScrDc ( NULL ), - mpCurCursor ( NULL ) -{} - -cbBarDragPlugin::~cbBarDragPlugin() -{ - // nothing -} - -// helper methods (protected) - -// clips (top/bottom) or (right/left) edges against the frame's bounding rect. - -void do_clip_edges( int len, long& rectPos, long& rectLen ) -{ - if ( rectPos < 0 ) - { - rectLen += rectPos; - rectPos = 0; - if ( rectLen < 0 ) rectLen = 1; - } - else - if ( rectPos > len-1 ) - { - rectPos = len-1; - rectLen = 1; - } - else - if ( rectPos + rectLen - 1 > len ) - - rectLen -= (rectPos + rectLen) - len + 1; -} - -void cbBarDragPlugin::ClipRectInFrame( wxRect& rect ) -{ - int w, h; - mpLayout->GetParentFrame().GetClientSize( &w, &h ); - - do_clip_edges( w, rect.x, rect.width ); - do_clip_edges( h, rect.y, rect.height ); -} - -void cbBarDragPlugin::ClipPosInFrame( wxPoint& pos ) -{ - int w, h; - mpLayout->GetParentFrame().GetClientSize( &w, &h ); - - if ( pos.x < 0 ) pos.x = 0; - if ( pos.y < 0 ) pos.y = 0; - if ( pos.x > w ) pos.x = w-1; - if ( pos.y > h ) pos.y = h-1; -} - -void cbBarDragPlugin::AdjustHintRect( wxPoint& mousePos ) -{ - mHintRect.x = mousePos.x - mMouseInRectX; - mHintRect.y = mousePos.y - mMouseInRectY; -} - -cbDockPane* cbBarDragPlugin::HitTestPanes( wxRect& rect ) -{ - //wxRect clipped = rect; - - //ClipRectInFrame( clipped ); - - cbDockPane** pPanes = mpLayout->GetPanesArray(); - - for( int i = 0; i != MAX_PANES; ++i ) - - if ( rect_hits_rect( pPanes[i]->mBoundsInParent, rect ) ) - - return pPanes[i]; - - return NULL; -} - -cbDockPane* cbBarDragPlugin::HitTestPanes( wxPoint& pos ) -{ - wxPoint clipped = pos; - - //ClipPosInFrame( pos ); - - cbDockPane** pPanes = mpLayout->GetPanesArray(); - - for( int i = 0; i != MAX_PANES; ++i ) - - if ( rect_contains_point( pPanes[i]->mBoundsInParent, clipped.x, clipped.y ) ) - - return pPanes[i]; - - return NULL; -} - -bool cbBarDragPlugin::HitsPane( cbDockPane* pPane, wxRect& rect ) -{ - return rect_hits_rect( pPane->mBoundsInParent, rect ); -} - -int cbBarDragPlugin::GetDistanceToPane( cbDockPane* pPane, wxPoint& mousePos ) -{ - wxRect& bounds = pPane->mBoundsInParent; - - switch( pPane->mAlignment ) - { - case wxTOP : return mousePos.y - ( bounds.y + bounds.height ); - - case wxBOTTOM : return bounds.y - mousePos.y; - - case wxLEFT : return mousePos.x - ( bounds.x + bounds.width ); - - case wxRIGHT : return bounds.x - mousePos.x; - - default : return 0; // never reached - } - - return 0; -} - -bool cbBarDragPlugin::IsInOtherPane( wxPoint& mousePos ) -{ - cbDockPane* pPane = HitTestPanes( mousePos ); - - if ( pPane && pPane != mpCurPane ) return TRUE; - else return FALSE; -} - -bool cbBarDragPlugin::IsInClientArea( wxPoint& mousePos ) -{ - return ( HitTestPanes( mousePos ) == NULL ); -} - -bool cbBarDragPlugin::IsInClientArea( wxRect& rect ) -{ - return ( HitTestPanes( rect ) == NULL ); -} - -void cbBarDragPlugin::CalcOnScreenDims( wxRect& rect ) -{ - if ( !mpCurPane || mpDraggedBar->IsFixed() ) return; - - wxRect inPane = rect; - - mpCurPane->FrameToPane( &inPane ); - - int rowNo = mpCurPane->GetRowAt( inPane.y, inPane.y + inPane.height ); - - bool isMaximized = ( rowNo >= (int)mpCurPane->GetRowList().Count() || rowNo < 0 ); - - if ( isMaximized ) - { - inPane.x = 0; - inPane.width = mpCurPane->mPaneWidth; - - mpCurPane->PaneToFrame( &inPane ); - - rect = inPane; - } -} - -// helpers - -static inline void check_upper_overrun( long& pos, int width, int mousePos ) -{ - if ( mousePos >= pos + width ) - - pos = mousePos - width/2; -} - -static inline void check_lower_overrun( long& pos, int width, int mousePos ) -{ - if ( mousePos <= pos ) - - pos = mousePos - width/2; -} - -void cbBarDragPlugin::StickToPane( cbDockPane* pPane, wxPoint& mousePos ) -{ - int wInPane = GetBarWidthInPane ( pPane ); - int hInPane = GetBarHeightInPane( pPane ); - - // adjsut hint-rect horizontally (in pane's orientation) - - if ( pPane->IsHorizontal() ) - { - mHintRect.width = wInPane; - mHintRect.height = hInPane; - } - else - { - mHintRect.height = wInPane; - mHintRect.width = hInPane; - } - - // adjsut hint-rect vertically (in pane's orientation) - - wxRect& bounds = pPane->mBoundsInParent; - - // TRUE, if hint enters the pane through it's lower edge - - bool fromLowerEdge = ( pPane->IsHorizontal() ) - ? mousePos.y > bounds.y - : mousePos.x > bounds.x; - - // NOTE:: about all the below min/max things: they are ment to ensure - // that mouse pointer doesn't overrun (leave) the hint-rectangle - // when dimensions it's are recalculated upon sticking it to the pane - - if ( pPane->IsHorizontal() && fromLowerEdge ) - { - int paneBottomEdgeY = bounds.y + bounds.height; - - mHintRect.y = wxMin( paneBottomEdgeY, mousePos.y ); - - check_lower_overrun( mHintRect.y, hInPane, mousePos.y ); - - } - else - if ( pPane->IsHorizontal() && !fromLowerEdge ) - { - int paneTopEdgeY = bounds.y; - - mHintRect.y = wxMax( paneTopEdgeY - hInPane, mousePos.y - hInPane ); - - check_upper_overrun( mHintRect.y, hInPane, mousePos.y ); - } - else - if ( !pPane->IsHorizontal() && fromLowerEdge ) - { - int paneRightEdgeX = bounds.x + bounds.width; - - mHintRect.x = wxMin( paneRightEdgeX, mousePos.x ); - - check_lower_overrun( mHintRect.x, hInPane, mousePos.x ); - } - else - if ( !pPane->IsHorizontal() && !fromLowerEdge ) - { - int paneLeftEdgeX = bounds.x; - - mHintRect.x = wxMax( paneLeftEdgeX - hInPane, mousePos.x - hInPane ); - - check_upper_overrun( mHintRect.x, hInPane, mousePos.x ); - } - - mMouseInRectX = mousePos.x - mHintRect.x; - mMouseInRectY = mousePos.y - mHintRect.y; - - mpCurPane = pPane; // memorize pane to which the hint is currently sticked -} - -void cbBarDragPlugin::UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos ) -{ - // unsticking causes rectangle to get the shape, in which - // dragged control-bar would be when floated - - - int newWidth = mpDraggedBar->mDimInfo.mSizes[wxCBAR_FLOATING].x; - int newHeight = mpDraggedBar->mDimInfo.mSizes[wxCBAR_FLOATING].y; - - wxRect& flBounds = mpDraggedBar->mDimInfo.mBounds[wxCBAR_FLOATING]; - - if ( flBounds.width != -1 ) - { - newWidth = flBounds.width; - newHeight = flBounds.height; - } - - mHintRect.width = newWidth; - mHintRect.height = newHeight; - - wxRect& bounds = pPane->mBoundsInParent; - - // TRUE, if hint leaves the pane through it's lower edge - - bool fromLowerEdge = ( pPane->IsHorizontal() ) - ? mousePos.y > bounds.y - : mousePos.x > bounds.x; - - // NOTE:: ...all the below min/max things - see comments about it in StickToPane(..) - - if ( pPane->IsHorizontal() && fromLowerEdge ) - { - bool fromLowerEdge = mousePos.y > bounds.y; - - mHintRect.y = wxMax( bounds.y + bounds.height + 1, mousePos.y - newHeight ); - - check_upper_overrun( mHintRect.y, newHeight, mousePos.y ); - - // this is how MFC's hint behaves: - - if ( mMouseInRectX > newWidth ) - - mHintRect.x = mousePos.x - ( newWidth / 2 ); - } - else - if ( pPane->IsHorizontal() && !fromLowerEdge ) - { - mHintRect.y = wxMin( bounds.y - newHeight - 1, mousePos.y ); - - // -/- - - if ( mMouseInRectX > newWidth ) - - mHintRect.x = mousePos.x - ( newWidth / 2 ); - - check_lower_overrun( mHintRect.y, newHeight, mousePos.y ); - } - else - if ( !pPane->IsHorizontal() && fromLowerEdge ) - { - mHintRect.x = wxMax( bounds.x + bounds.width, mousePos.x - newWidth ); - - // -/- - - if ( mMouseInRectY > newHeight ) - - mHintRect.y = mousePos.y - ( newHeight / 2 ); - - check_upper_overrun( mHintRect.x, newWidth, mousePos.x ); - } - else - if ( !pPane->IsHorizontal() && !fromLowerEdge ) - { - mHintRect.x = wxMin( bounds.x - newWidth - 1, mousePos.x ); - - // -/- - - if ( mMouseInRectY > newHeight ) - - mHintRect.y = mousePos.y - ( newHeight / 2 ); - - check_lower_overrun( mHintRect.x, newWidth, mousePos.x ); - } - - mMouseInRectX = mousePos.x - mHintRect.x; - mMouseInRectY = mousePos.y - mHintRect.y; - - mpCurPane = NULL; -} - -int cbBarDragPlugin::GetBarWidthInPane( cbDockPane* pPane ) -{ - if ( pPane == mpSrcPane ) - - return mBarWidthInSrcPane; - - // this is how MFC's bars behave: - - if ( pPane->IsHorizontal() ) - - return mpDraggedBar->mDimInfo.mSizes[wxCBAR_DOCKED_HORIZONTALLY].x; - else - return mpDraggedBar->mDimInfo.mSizes[wxCBAR_DOCKED_VERTICALLY ].x; -} - -int cbBarDragPlugin::GetBarHeightInPane( cbDockPane* pPane ) -{ - if ( pPane->IsHorizontal() ) - - return mpDraggedBar->mDimInfo.mSizes[wxCBAR_DOCKED_HORIZONTALLY].y; - else - return mpDraggedBar->mDimInfo.mSizes[wxCBAR_DOCKED_VERTICALLY ].y; -} - -void cbBarDragPlugin::ShowHint( bool prevWasInClient ) -{ - bool wasDocked = FALSE; - - if ( mpDraggedBar->mState != wxCBAR_FLOATING && !mpCurPane ) - { - mpLayout->SetBarState( mpDraggedBar, wxCBAR_FLOATING, TRUE ); - } - else - if ( mpDraggedBar->mState == wxCBAR_FLOATING && mpCurPane ) - { - mpLayout->SetBarState( mpDraggedBar, wxCBAR_DOCKED_HORIZONTALLY, FALSE ); - - wasDocked = TRUE; - } - - if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE ) - { - // do hevy calculations first - - wxRect actualRect = mHintRect; // will be adjusted depending on drag-settings - - if ( mpSrcPane->mProps.mExactDockPredictionOn && mpCurPane ) - { - bool success = mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE ); - - wxASSERT( success ); // DBG:: - - actualRect = mpDraggedBar->mBounds; - - mpCurPane->PaneToFrame( &actualRect ); - } - else - CalcOnScreenDims( actualRect ); - - // release previouse hint - - if ( mPrevHintRect.x != POS_UNDEFINED ) - { - // erase previouse rectangle - - cbDrawHintRectEvent evt( mPrevHintRect, prevWasInClient, TRUE, FALSE ); - - mpLayout->FirePluginEvent( evt ); - } - - // draw new hint - - cbDrawHintRectEvent evt( actualRect, mpCurPane == NULL, FALSE, FALSE ); - - mpLayout->FirePluginEvent( evt ); - - mPrevHintRect = actualRect; - } - else - { - // otherwise, if real-time updates option is ON - - if ( mpCurPane ) - { - mpLayout->GetUpdatesManager().OnStartChanges(); - - if ( wasDocked ) - - mpDraggedBar->mUMgrData.SetDirty( TRUE ); - - bool success = mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE ); - - wxASSERT( success ); // DBG :: - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); - } - else - { - if ( mpLayout->mFloatingOn ) - { - // move the top-most floated bar around as user drags the hint - - mpDraggedBar->mDimInfo.mBounds[ wxCBAR_FLOATING ] = mHintRect; - - mpLayout->ApplyBarProperties( mpDraggedBar ); - } - } - } -} - -/*** event handlers ***/ - -void cbBarDragPlugin::OnMouseMove( cbMotionEvent& event ) -{ - // calculate postion in frame's coordiantes - - if ( !mBarDragStarted ) - { - event.Skip(); // pass event to the next plugin - return; - } - - wxPoint mousePos = event.mPos; - - event.mpPane->PaneToFrame( &mousePos.x, &mousePos.y ); - - wxRect prevRect = mHintRect; - bool prevIsInClient = ( mpCurPane == 0 ); - - AdjustHintRect( mousePos ); - - // if the hint-rect is not "tempted" to any pane yet - - if ( mpCurPane == NULL ) - { - cbDockPane* pPane = HitTestPanes( mHintRect ); - - if ( !pPane ) - - // enable sticking again, if we've left the pane completely - mCanStick = TRUE; - - if ( mCanStick && pPane && - GetDistanceToPane( pPane, mousePos ) < GetBarHeightInPane( pPane ) ) - - StickToPane( pPane, mousePos ); - else - if ( pPane && HitTestPanes( mousePos ) == pPane && 0 ) // FOR NOW:: disabled - - StickToPane( pPane, mousePos ); - } - else - { - // otherwise, when rect is now sticked to some of the panes - // check if it should still remain in this pane - - mCanStick = TRUE; - - bool mouseInOther = IsInOtherPane( mousePos ); - - if ( mouseInOther ) - { - cbDockPane* pPane = HitTestPanes( mousePos ); - - StickToPane( pPane, mousePos ); - } - else - { - if ( IsInClientArea( mousePos ) ) - { - cbDockPane* pPane = HitTestPanes( mHintRect ); - - if ( pPane && - pPane != mpCurPane && - GetDistanceToPane( pPane, mousePos ) < GetBarHeightInPane( pPane ) ) - - StickToPane( pPane, mousePos ); - else - if ( !pPane ) - { - UnstickFromPane( mpCurPane, mousePos ); - - // FOR NOW:: disabled, would cause some mess - //mCanStick = FALSE; // prevents from sticking to this - // pane again, flag is reset when hint-rect - // leaves the pane completely - } - else - if ( GetDistanceToPane( pPane, mousePos ) > GetBarHeightInPane( pPane ) ) - { - if ( !HitsPane( mpCurPane, mHintRect ) ) - { - UnstickFromPane( mpCurPane, mousePos ); - - // FOR NOW:: disabled, would cause some mess - //mCanStick = FALSE; // prevents from sticking to this - // pane again, flag is reset when hint-rect - // leaves the pane completely - } - } - - } - else - { - } - } - } - - ShowHint( prevIsInClient ); - - wxCursor* pPrevCurs = mpCurCursor; - - if ( mpCurPane ) - - mpCurCursor = mpLayout->mpDragCursor; - else - { - if ( mpLayout->mFloatingOn && mpSrcPane->mProps.mRealTimeUpdatesOn ) - - mpCurCursor = mpLayout->mpDragCursor; - else - mpCurCursor = mpLayout->mpNECursor; - } - - if ( pPrevCurs != mpCurCursor ) - - mpLayout->GetParentFrame().SetCursor( *mpCurCursor ); -} - -void cbBarDragPlugin::OnLButtonDown( cbLeftDownEvent& event ) -{ - if ( mBarDragStarted ) - { - wxMessageBox("DblClick!"); - } - - event.Skip(); -} - -void cbBarDragPlugin::OnLButtonUp( cbLeftUpEvent& event ) -{ - if ( mBarDragStarted ) - { - if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE ) - { - // erase current rectangle, and finsih on-screen drawing session - - cbDrawHintRectEvent evt( mPrevHintRect, mpCurPane == NULL, TRUE, TRUE ); - - mpLayout->FirePluginEvent( evt ); - - if ( mpCurPane != NULL ) - { - if ( mpSrcPane->mProps.mExactDockPredictionOn ) - { - mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane, FALSE ); - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); - } - else - mpLayout->RedockBar( mpDraggedBar, mHintRect, mpCurPane ); - } - } - - mHintRect.width = -1; - - mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor ); - - mpLayout->ReleaseEventsFromPane( event.mpPane ); - mpLayout->ReleaseEventsFromPlugin( this ); - - mBarDragStarted = FALSE; - - if ( mBarWasFloating && mpDraggedBar->mState != wxCBAR_FLOATING ) - { - // save bar's floating position before it was docked - - mpDraggedBar->mDimInfo.mBounds[ wxCBAR_FLOATING ] = mFloatedBarBounds; - } - } - else - event.Skip(); // pass event to the next plugin -} - -void cbBarDragPlugin::OnLDblClick( cbLeftDClickEvent& event ) -{ - if ( 1 ) - { - cbBarInfo* pHittedBar; - cbRowInfo* pRow; - - if ( event.mpPane->HitTestPaneItems( event.mPos, // in pane's coordiantes - &pRow, - &pHittedBar ) == CB_BAR_CONTENT_HITTED - ) - { - mpLayout->SetBarState( pHittedBar, wxCBAR_FLOATING, TRUE ); - - mpLayout->RepositionFloatedBar( pHittedBar ); - - return; // event is "eaten" by this plugin - } - - mBarDragStarted = FALSE; - - event.Skip(); - } - - //wxMessageBox("Hi, dblclick arrived!"); -} - -void cbBarDragPlugin::OnStartBarDragging( cbStartBarDraggingEvent& event ) -{ - mpDraggedBar = event.mpBar; - mpSrcPane = event.mpPane; - - mpLayout->CaptureEventsForPane( event.mpPane ); - mpLayout->CaptureEventsForPlugin( this ); - - mpLayout->GetParentFrame().SetCursor( *mpLayout->mpDragCursor ); - - mBarDragStarted = TRUE; - - wxRect inParent = mpDraggedBar->mBounds; - - mBarWasFloating = mpDraggedBar->mState == wxCBAR_FLOATING; - - if ( mBarWasFloating ) - { - inParent = mpDraggedBar->mDimInfo.mBounds[ wxCBAR_FLOATING ]; - mFloatedBarBounds = inParent; - } - else - event.mpPane->PaneToFrame( &inParent ); - - mHintRect.x = POS_UNDEFINED; - - mHintRect.width = inParent.width; - mHintRect.height = inParent.height; - - mMouseInRectX = event.mPos.x - inParent.x; - mMouseInRectY = event.mPos.y - inParent.y; - - mpSrcPane = event.mpPane; - - if ( mpDraggedBar->mState == wxCBAR_FLOATING ) - - mpCurPane = NULL; - else - mpCurPane = event.mpPane; - - mPrevHintRect.x = POS_UNDEFINED; - - mCanStick = FALSE; // we're not stuck into any pane now - - // there's nowhere to "stick-twice" - - mBarWidthInSrcPane = mpDraggedBar->mDimInfo.mSizes[ mpDraggedBar->mState ].x; - - if ( mpSrcPane->mProps.mRealTimeUpdatesOn == FALSE && - mpSrcPane->mProps.mExactDockPredictionOn ) - - mpLayout->GetUpdatesManager().OnStartChanges(); // capture initial state of layout - - // simulate the first mouse movement - - long x = event.mPos.x, y = event.mPos.y; - - mpSrcPane->FrameToPane( &x, &y ); - - cbMotionEvent motionEvt( wxPoint(x,y), event.mpPane ); - - - this->OnMouseMove( motionEvt ); - - return; // event is "eaten" by this plugin -} - -/*** on-screen hint-tracking related methods ***/ - -void cbBarDragPlugin::OnDrawHintRect( cbDrawHintRectEvent& event ) -{ - if ( !mpScrDc ) StartTracking(); - - DoDrawHintRect( event.mRect, event.mIsInClient ); - - if ( event.mLastTime ) - - FinishTracking(); -} - -#define _A 0xAA -#define _B 0x00 -#define _C 0x55 -#define _D 0x00 - -// FOR NOW:: static - -static const unsigned char _gCheckerImg[16] = { _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D - }; - -void cbBarDragPlugin::StartTracking() -{ - mpScrDc = new wxScreenDC; - - wxScreenDC::StartDrawingOnTop(&mpLayout->GetParentFrame()); -} - -void cbBarDragPlugin::DoDrawHintRect( wxRect& rect, bool isInClientRect) -{ - wxRect scrRect; - - RectToScr( rect, scrRect ); - - int prevLF = mpScrDc->GetLogicalFunction(); - - mpScrDc->SetLogicalFunction( wxXOR ); - - if ( isInClientRect ) - { - // BUG BUG BUG (wx):: somehow stippled brush works only - // when the bitmap created on stack, not - // as a member of the class - - wxBitmap checker( (const char*)_gCheckerImg, 8,8 ); - - wxBrush checkerBrush( checker ); - - mpScrDc->SetPen( mpLayout->mNullPen ); - mpScrDc->SetBrush( checkerBrush ); - - int half = mInClientHintBorder / 2; - - mpScrDc->DrawRectangle( scrRect.x - half, scrRect.y - half, - scrRect.width + 2*half, mInClientHintBorder ); - - mpScrDc->DrawRectangle( scrRect.x - half, scrRect.y + scrRect.height - half, - scrRect.width + 2*half, mInClientHintBorder ); - - mpScrDc->DrawRectangle( scrRect.x - half, scrRect.y + half - 1, - mInClientHintBorder, scrRect.height - 2*half + 2); - - mpScrDc->DrawRectangle( scrRect.x + scrRect.width - half, - scrRect.y + half - 1, - mInClientHintBorder, scrRect.height - 2*half + 2); - - mpScrDc->SetBrush( wxNullBrush ); - } - else - { - mpScrDc->SetPen( mpLayout->mBlackPen ); - - mpScrDc->DrawLine( scrRect.x, scrRect.y, - scrRect.x + scrRect.width, scrRect.y ); - - mpScrDc->DrawLine( scrRect.x, scrRect.y + 1, - scrRect.x, scrRect.y + scrRect.height ); - - mpScrDc->DrawLine( scrRect.x+1, scrRect.y + scrRect.height, - scrRect.x + scrRect.width, scrRect.y + scrRect.height ); - - mpScrDc->DrawLine( scrRect.x + scrRect.width , scrRect.y, - scrRect.x + scrRect.width, scrRect.y + scrRect.height + 1); - } - - mpScrDc->SetLogicalFunction( prevLF ); -} - -void cbBarDragPlugin::DrawHintRect ( wxRect& rect, bool isInClientRect) -{ - DoDrawHintRect( rect, isInClientRect ); -} - -void cbBarDragPlugin::EraseHintRect( wxRect& rect, bool isInClientRect) -{ - DoDrawHintRect( rect, isInClientRect ); -} - -void cbBarDragPlugin::FinishTracking() -{ - wxScreenDC::EndDrawingOnTop(); - - delete mpScrDc; - - mpScrDc = NULL; -} - -void cbBarDragPlugin::RectToScr( wxRect& frameRect, wxRect& scrRect ) -{ - scrRect = frameRect; - - int x = frameRect.x, y = frameRect.y; - - mpLayout->GetParentFrame().ClientToScreen( &x, &y ); - - scrRect.x = x; - scrRect.y = y; -} diff --git a/utils/framelayout/src/bardragpl.h b/utils/framelayout/src/bardragpl.h deleted file mode 100644 index d7938dd6ad..0000000000 --- a/utils/framelayout/src/bardragpl.h +++ /dev/null @@ -1,117 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __BARDRAGPL_G__ -#define __BARDRAGPL_G__ - -#include "controlbar.h" -#include "toolwnd.h" - -class cbBarDragPlugin : public cbPluginBase -{ - DECLARE_DYNAMIC_CLASS( cbBarDragPlugin ) -protected: - - // plugin is active only in bar-dragging state - bool mBarDragStarted; - bool mCanStick; // flag used to prevent "bouncing" of hint-rectangle - wxScreenDC* mpScrDc; // created while tracking hint-rect - wxCursor* mpCurCursor; - - // rectnagle shows the position/dimensions of the bar, - // if it would be docked now - - wxRect mPrevHintRect; - wxRect mHintRect; - - - int mMouseInRectX; - int mMouseInRectY; - - cbDockPane* mpSrcPane; // pane, from which the bar was originally taken - int mBarWidthInSrcPane; - - cbDockPane* mpCurPane; - - cbBarInfo* mpDraggedBar; // bar, which is being dragged - bool mBarWasFloating; - wxRect mFloatedBarBounds; - -public: /*** public properties ***/ - - int mInClientHintBorder; // when hint-rect moves within client window area, - // the thicker rectangle is drawn using hatched brush, - // the default border width for this rectangle is 8 pix. - -protected: - - - void AdjustHintRect( wxPoint& mousePos ); - - void ClipRectInFrame( wxRect& rect ); - void ClipPosInFrame( wxPoint& pos ); - - cbDockPane* HitTestPanes( wxRect& rect ); - cbDockPane* HitTestPanes( wxPoint& pos ); - bool HitsPane( cbDockPane* pPane, wxRect& rect ); - - void CalcOnScreenDims( wxRect& rect ); - - int GetDistanceToPane( cbDockPane* pPane, wxPoint& mousePos ); - - bool IsInOtherPane ( wxPoint& mousePos ); - bool IsInClientArea( wxPoint& mousePos ); - bool IsInClientArea( wxRect& rect ); - - void StickToPane( cbDockPane* pPane, wxPoint& mousePos ); - void UnstickFromPane( cbDockPane* pPane, wxPoint& mousePos ); - - int GetBarWidthInPane( cbDockPane* pPane ); - int GetBarHeightInPane( cbDockPane* pPane ); - - // on-screen hint-tracking related methods - - void StartTracking(); - - void DrawHintRect ( wxRect& rect, bool isInClientRect); - void EraseHintRect( wxRect& rect, bool isInClientRect); - - void FinishTracking(); - - void DoDrawHintRect( wxRect& rect, bool isInClientRect); - - void RectToScr( wxRect& frameRect, wxRect& scrRect ); - - void ShowHint( bool prevWasInClient ); - -public: - cbBarDragPlugin(void); - - cbBarDragPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - - virtual ~cbBarDragPlugin(); - - // handlers for plugin events - - void OnMouseMove( cbMotionEvent& event ); - void OnLButtonUp( cbLeftUpEvent& event ); - void OnLButtonDown( cbLeftDownEvent& event ); - void OnLDblClick( cbLeftDClickEvent& event ); - - // handles event, which oriniates from itself - void OnDrawHintRect( cbDrawHintRectEvent& event ); - - void OnStartBarDragging( cbStartBarDraggingEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/utils/framelayout/src/barhintspl.cpp b/utils/framelayout/src/barhintspl.cpp deleted file mode 100644 index bde7f247d9..0000000000 --- a/utils/framelayout/src/barhintspl.cpp +++ /dev/null @@ -1,535 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 30/11/98 (my 22th birthday :-) -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "rowlayoutpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/utils.h" -#include "barhintspl.h" - -// fixed settings - -#define GROOVE_WIDTH 3 // left shade + middle line + right shade -#define GROOVE_TO_GROOVE_GAP 1 -#define BOX_T_BOX_GAP 2 -#define BOX_TO_GROOVE_GAP 3 - -#define BOXES_IN_HINT 2 -#define CLOSE_BOX_IDX 0 -#define COLLAPSE_BOX_IDX 1 - -// used interally - -#define CLOSE_BOX_HITTED 1 -#define COLLAPSE_BOX_HITTED 2 - -/***** Implementation fro class cbBarHintsPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbBarHintsPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbBarHintsPlugin, cbPluginBase ) - - EVT_PL_SIZE_BAR_WND ( cbBarHintsPlugin::OnSizeBarWindow ) - EVT_PL_DRAW_BAR_DECOR( cbBarHintsPlugin::OnDrawBarDecorations ) - - EVT_PL_LEFT_DOWN( cbBarHintsPlugin::OnLeftDown ) - EVT_PL_LEFT_UP ( cbBarHintsPlugin::OnLeftUp ) - EVT_PL_MOTION ( cbBarHintsPlugin::OnMotion ) - -END_EVENT_TABLE() - -cbBarHintsPlugin::cbBarHintsPlugin(void) - - : mpPane( 0 ), - mCollapseBoxOn( TRUE ), - mCloseBoxOn ( TRUE ), - mBtnPressed ( FALSE ), - mGrooveCount ( 2 ), - mHintGap ( 4 ), - mXWeight ( 2 ) -{} - -cbBarHintsPlugin::cbBarHintsPlugin( wxFrameLayout* pLayout, int paneMask ) - - : cbPluginBase( pLayout, paneMask ), - mpPane( 0 ), - mCollapseBoxOn( TRUE ), - mCloseBoxOn ( TRUE ), - mBtnPressed ( FALSE ), - mGrooveCount ( 2 ), - mHintGap ( 5 ), - mXWeight ( 2 ) -{} - -void cbBarHintsPlugin::SetGrooveCount( int nGrooves ) -{ - mGrooveCount = nGrooves; -} - -void cbBarHintsPlugin::CreateBoxes() -{ - cbCloseBox* box1 = new cbCloseBox(); - cbCollapseBox* box2 = new cbCollapseBox(); - - mBoxes[CLOSE_BOX_IDX] = box1; - mBoxes[COLLAPSE_BOX_IDX] = box2; - - for( int i = 0; i != BOXES_IN_HINT; ++i ) - { - mBoxes[i]->mpLayout = mpLayout; - mBoxes[i]->mpPlugin = this; - mBoxes[i]->mpWnd = NULL; - } -} - -void cbBarHintsPlugin::Draw3DBox( wxDC& dc, const wxPoint& pos, bool pressed ) -{ -} - -void cbBarHintsPlugin::DrawCloseBox( wxDC& dc, const wxPoint& pos, bool pressed ) -{ -} - -void cbBarHintsPlugin::DrawCollapseBox( wxDC& dc, const wxPoint& pos, - bool atLeft, bool disabled, bool pressed ) -{ -} - -void cbBarHintsPlugin::DrawGrooves( wxDC& dc, const wxPoint& pos, int length ) -{ - int ofs = 0; - - for( int i = 0; i != mGrooveCount; ++i, ofs += ( GROOVE_WIDTH + GROOVE_TO_GROOVE_GAP ) ) - - if ( mpPane->IsHorizontal() ) - { - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( pos.x + ofs, pos.y, pos.x + ofs, pos.y + length - 1 ); - dc.DrawPoint( pos.x + ofs + 1, pos.y ); - - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawLine( pos.x + ofs + 2, pos.y, pos.x + ofs + 2, pos.y + length ); - dc.DrawPoint( pos.x + ofs + 1, pos.y + length - 1 ); - dc.DrawPoint( pos.x + ofs, pos.y + length - 1 ); - } - else - { - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( pos.x, pos.y + ofs, pos.x + length - 1, pos.y + ofs ); - dc.DrawPoint( pos.x, pos.y + ofs + 1 ); - - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawLine( pos.x, pos.y + ofs + 2, pos.x + length, pos.y + ofs + 2 ); - dc.DrawPoint( pos.x + length - 1, pos.y + ofs + 1 ); - dc.DrawPoint( pos.x + length - 1, pos.y + ofs ); - } -} - -void cbBarHintsPlugin::ExcludeHints( wxRect& rect, cbBarInfo& info ) -{ - int boxHeight = BTN_BOX_HEIGHT; - - // collapse and close box are not placed on fixed bars - - if ( info.IsFixed() || ( !mCloseBoxOn && !mCollapseBoxOn ) ) - - boxHeight = 0; - - int height = wxMax( mGrooveCount*(GROOVE_WIDTH + GROOVE_TO_GROOVE_GAP) - - GROOVE_TO_GROOVE_GAP, - boxHeight - ); - - if ( mpPane->IsHorizontal() ) - { - rect.x += ( mHintGap*2 + height ); - rect.width -= (height + 2*mHintGap); - - rect.x -= info.mDimInfo.mHorizGap + 2; - rect.width += info.mDimInfo.mHorizGap + 2; - } - else - { - rect.y += (mHintGap*2 + height); - rect.height -= (height + 2*mHintGap); - - rect.y -= info.mDimInfo.mVertGap + 2; - rect.height += info.mDimInfo.mVertGap + 2; - } -} - -void cbBarHintsPlugin::DoDrawHint( wxDC& dc, wxRect& rect, - int pos, int boxOfs, int grooveOfs, - bool isFixed ) -{ - if ( !isFixed ) - { - if ( mpPane->IsHorizontal() ) - { - if ( mCloseBoxOn ) - - mBoxes[CLOSE_BOX_IDX]->Draw( dc ); - - if ( mCollapseBoxOn ) - - mBoxes[COLLAPSE_BOX_IDX]->Draw( dc ); - } - else - { - if ( mCloseBoxOn ) - - mBoxes[CLOSE_BOX_IDX]->Draw( dc ); - - if ( mCollapseBoxOn ) - - mBoxes[COLLAPSE_BOX_IDX]->Draw( dc ); - } - } - - if ( mpPane->IsHorizontal() ) - - DrawGrooves( dc, wxPoint( rect.x + mHintGap + grooveOfs, pos ), - rect.height - (pos - rect.y) - mHintGap ); - else - DrawGrooves( dc, wxPoint( rect.x + mHintGap, rect.y + mHintGap + grooveOfs ), - (pos - rect.x) - mHintGap ); -} - -void cbBarHintsPlugin::GetHintsLayout( wxRect& rect, cbBarInfo& info, - int& boxOfs, int& grooveOfs, int& pos ) -{ - int boxHeight = BTN_BOX_HEIGHT; - int boxWidth = BTN_BOX_WIDTH + BOX_TO_GROOVE_GAP + BTN_BOX_WIDTH; - - // collapse and close box are not placed on fixed bars - - if ( info.IsFixed() || ( !mCloseBoxOn && !mCollapseBoxOn ) ) - { - boxHeight = 0; - boxWidth = 0; - } - else - if ( !mCloseBoxOn || !mCollapseBoxOn ) - - boxWidth = BTN_BOX_WIDTH; - - int grooveHeight = mGrooveCount*(GROOVE_WIDTH + GROOVE_TO_GROOVE_GAP) - - GROOVE_TO_GROOVE_GAP; - - int height = wxMax( grooveHeight, boxHeight ); - - // center boxs and groves with respect to each other - - boxOfs = ( height - boxHeight ) / 2; - grooveOfs = ( height - grooveHeight ) / 2; - - pos = ( mpPane->IsHorizontal() ) ? rect.y + mHintGap - : rect.x + rect.width - mHintGap; - - // setup positions for boxes - - if ( !info.IsFixed() ) - { - // what direction "collapse-triangle" should look at? - - bool& isAtLeft = ((cbCollapseBox*)(mBoxes[COLLAPSE_BOX_IDX]))->mIsAtLeft; - - isAtLeft= info.mBounds.x <= mpPane->mPaneWidth - ( info.mBounds.x + info.mBounds.width ); - - if ( info.IsExpanded() ) - { - isAtLeft = FALSE; - - cbBarInfo* pCur = info.mpPrev; - - while( pCur ) - { - if ( !pCur->IsFixed() ) - { - isAtLeft = TRUE; break; - } - - pCur = pCur->mpPrev; - } - } - - // collapse/expand works only when more not-fixed bars are present in the same row - - mBoxes[COLLAPSE_BOX_IDX]->Enable( info.mpRow->mNotFixedBarsCnt > 1 ); - - for( int i = 0; i != BOXES_IN_HINT; ++i ) - - mBoxes[i]->mpPane = mpPane; - - - if ( mpPane->IsHorizontal() ) - { - if ( mCloseBoxOn ) - { - mBoxes[CLOSE_BOX_IDX]->mPos = wxPoint( rect.x + mHintGap + boxOfs, pos ); - - pos += BTN_BOX_HEIGHT; - } - - if ( mCollapseBoxOn ) - { - if ( mCloseBoxOn ) pos += BOX_T_BOX_GAP; - - mBoxes[COLLAPSE_BOX_IDX]->mPos = wxPoint( rect.x + mHintGap + boxOfs, pos ); - - pos += BTN_BOX_HEIGHT; - - pos += BOX_TO_GROOVE_GAP; - } - } - else - { - if ( mCloseBoxOn ) - { - pos -= BTN_BOX_WIDTH; - - mBoxes[CLOSE_BOX_IDX]->mPos = wxPoint( pos , rect.y + mHintGap + boxOfs ); - } - - if ( mCollapseBoxOn ) - { - if ( mCloseBoxOn ) pos -= BOX_T_BOX_GAP; - - pos -= BTN_BOX_WIDTH; - - mBoxes[COLLAPSE_BOX_IDX]->mPos = wxPoint( pos, rect.y + mHintGap + boxOfs ); - - pos -= BOX_TO_GROOVE_GAP; - } - } - } -} - -static inline bool is_in_box( const wxPoint& rectPos, const wxPoint& mousePos ) -{ - return ( mousePos.x >= rectPos.x && - mousePos.y >= rectPos.y && - mousePos.x < rectPos.x + BTN_BOX_WIDTH && - mousePos.y < rectPos.y + BTN_BOX_HEIGHT ); -} - -int cbBarHintsPlugin::HitTestHints( cbBarInfo& info, const wxPoint& pos ) -{ - wxPoint inPane = pos; - mpPane->PaneToFrame( &inPane.x, &inPane.y ); - - wxRect& rect = info.mBoundsInParent; - - if ( info.IsFixed() ) return FALSE; - - int boxOfs, grooveOfs, coord; - - GetHintsLayout( rect, info, boxOfs, grooveOfs, coord ); - - if ( mpPane->IsHorizontal() ) - { - if ( mCloseBoxOn ) - { - if ( is_in_box( wxPoint( rect.x + mHintGap + boxOfs, coord ), inPane ) ) - - return CLOSE_BOX_HITTED; - - coord += BTN_BOX_HEIGHT; - } - - if ( mCollapseBoxOn ) - { - if ( mCloseBoxOn ) coord += BOX_T_BOX_GAP; - - if ( is_in_box( wxPoint( rect.x + mHintGap + boxOfs, coord ), inPane ) ) - - return COLLAPSE_BOX_HITTED; - - coord += BTN_BOX_HEIGHT; - } - } - else - { - if ( mCloseBoxOn ) - { - coord -= BTN_BOX_WIDTH; - - if ( is_in_box( wxPoint( coord , rect.y + mHintGap + boxOfs ), inPane ) ) - - return CLOSE_BOX_HITTED; - } - - if ( mCollapseBoxOn ) - { - if ( mCloseBoxOn ) coord -= BOX_T_BOX_GAP; - coord -= BTN_BOX_WIDTH; - - if ( is_in_box( wxPoint( coord, rect.y + mHintGap + boxOfs ), inPane ) ) - - return COLLAPSE_BOX_HITTED; - } - } - - return FALSE; -} - -// handlers for plugin-events - -void cbBarHintsPlugin::OnSizeBarWindow( cbSizeBarWndEvent& event ) -{ - wxRect& rect = event.mBoundsInParent; - mpPane = event.mpPane; - - ExcludeHints( rect, *event.mpBar ); - - event.Skip(); // pass event to the next plugin in the chain -} - -void cbBarHintsPlugin::OnDrawBarDecorations( cbDrawBarDecorEvent& event ) -{ - wxRect& rect = event.mBoundsInParent; - mpPane = event.mpPane; - - int boxOfs, grooveOfs, pos; - - GetHintsLayout( rect, *event.mpBar, boxOfs, grooveOfs, pos ); - - DoDrawHint( *event.mpDc, rect, pos, boxOfs, grooveOfs, event.mpBar->IsFixed() ); - - // let other plugins add on their decorations - - event.Skip(); -} - -void cbBarHintsPlugin::OnLeftDown( cbLeftDownEvent& event ) -{ - mpPane = event.mpPane; - - wxPoint inFrame = event.mPos; - mpPane->PaneToFrame( &inFrame.x, &inFrame.y ); - - wxBarIterator iter( mpPane->GetRowList() ); - - mpClickedBar = NULL; - - while ( iter.Next() ) - { - cbBarInfo& bar = iter.BarInfo(); - - int boxOfs, grooveOfs, pos; - - GetHintsLayout( bar.mBoundsInParent, bar, boxOfs, grooveOfs, pos ); - - if ( !bar.IsFixed() ) - - for( int i = 0; i != BOXES_IN_HINT; ++i ) - { - mBoxes[i]->OnLeftDown( inFrame ); - - if ( mBoxes[i]->mPressed ) - { - mBtnPressed = TRUE; - mpClickedBar = &bar; - - return; // event handled - } - } - } - - event.Skip(); -} - -void cbBarHintsPlugin::OnLeftUp( cbLeftUpEvent& event ) -{ - if ( mBtnPressed ) - { - wxPoint inFrame = event.mPos; - mpPane->PaneToFrame( &inFrame.x, &inFrame.y ); - - int boxOfs, grooveOfs, pos; - - GetHintsLayout( mpClickedBar->mBoundsInParent, *mpClickedBar, boxOfs, grooveOfs, pos ); - - int result = HitTestHints( *mpClickedBar, event.mPos ); - - for( int i = 0; i != BOXES_IN_HINT; ++i ) - { - mBoxes[i]->OnLeftUp( inFrame ); - - if ( mBoxes[i]->WasClicked() ) - { - if ( i == 0 ) - - mpLayout->SetBarState( mpClickedBar, wxCBAR_HIDDEN, TRUE ); - else - { - if ( mpClickedBar->IsExpanded() ) - - mpPane->ContractBar( mpClickedBar ); - else - mpPane->ExpandBar( mpClickedBar ); - } - } - } - - mBtnPressed = FALSE; - return; - } - else - event.Skip(); -} - -void cbBarHintsPlugin::OnMotion( cbMotionEvent& event ) -{ - if ( mBtnPressed ) - { - wxPoint inFrame = event.mPos; - mpPane->PaneToFrame( &inFrame.x, &inFrame.y ); - - mpPane = event.mpPane; - - for( int i = 0; i != BOXES_IN_HINT; ++i ) - - mBoxes[i]->OnMotion( inFrame ); - } - else - event.Skip(); -} - -void cbBarHintsPlugin::OnInitPlugin() -{ - cbPluginBase::OnInitPlugin(); - - cbDockPane** panes = mpLayout->GetPanesArray(); - - for( int i = 0; i != MAX_PANES; ++i ) - - if ( panes[i]->MatchesMask( mPaneMask ) ) - { - panes[i]->mProps.mMinCBarDim.x = 25; - panes[i]->mProps.mMinCBarDim.y = 16; - } - - CreateBoxes(); -} \ No newline at end of file diff --git a/utils/framelayout/src/barhintspl.h b/utils/framelayout/src/barhintspl.h deleted file mode 100644 index 9ae9231291..0000000000 --- a/utils/framelayout/src/barhintspl.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 30/11/98 (my 22th birthday :-) -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __DRAGHINTSPL_G__ -#define __DRAGHINTSPL_G__ - -#include "controlbar.h" -#include "toolwnd.h" - -/* - * Intercepts bar-decoration and sizing events, draws 3d-hints - * around fixed and flexible bars, similar to those in Microsoft DevStudio 6.x - */ - -class cbBarHintsPlugin : public cbPluginBase -{ - DECLARE_DYNAMIC_CLASS( cbBarHintsPlugin ) - -protected: - cbDockPane* mpPane; // is set up temorarely, while handling event - - cbMiniButton* mBoxes[2]; - - bool mBtnPressed; - bool mClosePressed; - cbBarInfo* mpClickedBar; - bool mDepressed; - -protected: - // drawing helpers - - void Draw3DBox ( wxDC& dc, const wxPoint& pos, bool pressed ); - void DrawCloseBox ( wxDC& dc, const wxPoint& pos, bool pressed ); - void DrawCollapseBox( wxDC& dc, const wxPoint& pos, - bool atLeft, bool disabled, bool pressed ); - - void DrawGrooves ( wxDC& dc, const wxPoint& pos, int length ); - - void DoDrawHint( wxDC& dc, wxRect& rect, int pos, int boxOfs, int grooveOfs, bool isFixed ); - - void GetHintsLayout( wxRect& rect, cbBarInfo& info, - int& boxOfs, int& grooveOfs, int& pos ); - - int HitTestHints( cbBarInfo& info, const wxPoint& pos ); - - void ExcludeHints( wxRect& rect, cbBarInfo& info ); - - void CreateBoxes(); - -public: - /* public properties */ - - bool mCloseBoxOn; // default: ON - bool mCollapseBoxOn; // default: ON - int mGrooveCount; // default: 2 (two shaded bars) - int mHintGap; // default: 5 (pixels from above, below, right and left) - int mXWeight; // default: 2 (width in pixels of lines which used for drawing cross) - -public: - - cbBarHintsPlugin(void); - - cbBarHintsPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES ); - - void SetGrooveCount( int nGrooves ); - - void OnInitPlugin(); - - // handlers of plugin-events - - void OnSizeBarWindow( cbSizeBarWndEvent& event ); - void OnDrawBarDecorations( cbDrawBarDecorEvent& event ); - - void OnLeftDown( cbLeftDownEvent& event ); - void OnLeftUp ( cbLeftUpEvent& event ); - void OnMotion ( cbMotionEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/cbcustom.cpp b/utils/framelayout/src/cbcustom.cpp deleted file mode 100644 index 7fad77b5bd..0000000000 --- a/utils/framelayout/src/cbcustom.cpp +++ /dev/null @@ -1,203 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "cbcustom.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "cbcustom.h" - -// helper class to receive menu customization event - -class cbContextMenuHandler : public wxEvtHandler -{ -public: - cbSimpleCustomizationPlugin* mpBackRef; - -public: - void OnMenuCommand( wxCommandEvent& evt ); - - void OnCommandEvents( wxCommandEvent& evt ); - - DECLARE_EVENT_TABLE(); -}; - -// FIXME:: is this "safe" ? - -#define CB_CUSTOMIZE_MENU_FIRST_ITEM_ID 17500 - -/***** Implementation for helper class cbContextMenuHandler *****/ - -BEGIN_EVENT_TABLE( cbContextMenuHandler, wxEvtHandler ) - - // FIXME:: what is the right range for these ids ? so that they - // would not collide with user commands? - - EVT_COMMAND_RANGE( CB_CUSTOMIZE_MENU_FIRST_ITEM_ID, - CB_CUSTOMIZE_MENU_FIRST_ITEM_ID + 300, - wxEVT_COMMAND_MENU_SELECTED, - cbContextMenuHandler::OnCommandEvents ) - -END_EVENT_TABLE() - -void cbContextMenuHandler::OnCommandEvents( wxCommandEvent& evt ) -{ - //wxMessageBox("Wowwwww, Yeah!"); - - mpBackRef->OnMenuItemSelected( evt ); -} - -/***** Implementation for class cbSimpleCustomizationPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbSimpleCustomizationPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbSimpleCustomizationPlugin, cbPluginBase ) - - EVT_PL_CUSTOMIZE_BAR ( cbSimpleCustomizationPlugin::OnCustomizeBar ) - EVT_PL_CUSTOMIZE_LAYOUT( cbSimpleCustomizationPlugin::OnCustomizeLayout ) - -END_EVENT_TABLE() - -cbSimpleCustomizationPlugin::cbSimpleCustomizationPlugin(void) -{} - -cbSimpleCustomizationPlugin::cbSimpleCustomizationPlugin( wxFrameLayout* pPanel, int paneMask ) - - : cbPluginBase( pPanel, paneMask ) -{} - -void cbSimpleCustomizationPlugin::OnCustomizeBar( cbCustomizeBarEvent& event ) -{ - // ingnore bar customization, treat it - // as layout-customization...ugly, eh? - - cbCustomizeLayoutEvent clEvt( event.mClickPos ); - - OnCustomizeLayout( clEvt ); -} - -void cbSimpleCustomizationPlugin::OnCustomizeLayout( cbCustomizeLayoutEvent& event ) -{ - wxString helpStr1 = "Select this item to show the corresponding control bar"; - wxString helpStr2 = "Select this itme to hide the corresponding control bar"; - - int id = CB_CUSTOMIZE_MENU_FIRST_ITEM_ID; - - wxMenu* pMenu = new wxMenu(); - - BarArrayT& bars = mpLayout->GetBars(); - - for( size_t i = 0; i != bars.GetCount(); ++i ) - { - cbBarInfo& bar = *bars[i]; - - bool isHidden = ( bar.mState == wxCBAR_HIDDEN ); - - wxString* pHelpStr = ( isHidden ) ? &helpStr1 : &helpStr2; - - pMenu->Append( id, bar.mName, *pHelpStr, TRUE ); - - pMenu->Check( id, (isHidden == FALSE) ); - - ++id; - } - - pMenu->AppendSeparator(); - pMenu->Append( id, "Customize...", "Show layout customization dialog", FALSE ); - mCustMenuItemId = id; - - cbContextMenuHandler* pHandler = new cbContextMenuHandler(); - pHandler->mpBackRef = this; - - wxWindow* pFrm = &mpLayout->GetParentFrame(); - - // FOR NOW FOR NOW:: to work-around wxFrame's (MSW) nasty event-handling bugs!!! - - wxWindow* pTmpWnd = new wxWindow( pFrm, -1, event.mClickPos, wxSize(0,0) ); - - pMenu->SetEventHandler( pHandler ); - - pTmpWnd->PopupMenu( pMenu, 0,0 ); - - pTmpWnd->Destroy(); - - delete pMenu; - delete pHandler; - - // event is "eaten" by this plugin -} - -void cbSimpleCustomizationPlugin::OnMenuItemSelected( wxCommandEvent& event ) -{ - if ( event.m_commandInt == mCustMenuItemId ) - { - wxMessageBox("Customization dialog box is not supproted by this plugin yet"); - - return; - } - else - { - cbBarInfo* pBar = mpLayout->GetBars()[ event.m_commandInt - - CB_CUSTOMIZE_MENU_FIRST_ITEM_ID - ]; - - wxASSERT( pBar ); // DBG:: - - // "inverse" bar-visibility of the selected bar - - int newState = 0; - - if ( pBar->mState == wxCBAR_HIDDEN ) - { - if ( pBar->mAlignment == -1 ) - { - pBar->mAlignment = 0; // just remove "-1" marking - newState = wxCBAR_FLOATING; - } - else - if ( pBar->mAlignment == wxTOP || - pBar->mAlignment == wxBOTTOM ) - - newState = wxCBAR_DOCKED_HORIZONTALLY; - else - newState = wxCBAR_DOCKED_VERTICALLY; - } - else - { - newState = wxCBAR_HIDDEN; - - if ( pBar->mState == wxCBAR_FLOATING ) - - pBar->mAlignment = -1; - } - - mpLayout->SetBarState( pBar, newState, TRUE ); - - if ( newState == wxCBAR_FLOATING ) - - mpLayout->RepositionFloatedBar( pBar ); - } - - // menu-item-selected event is "eaten" -} - diff --git a/utils/framelayout/src/cbcustom.h b/utils/framelayout/src/cbcustom.h deleted file mode 100644 index e9488313df..0000000000 --- a/utils/framelayout/src/cbcustom.h +++ /dev/null @@ -1,46 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 28/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __CBCUSTOM_G__ -#define __CBCUSTOM_G__ - -#ifdef __GNUG__ -#pragma interface "cbcustom.h" -#endif - -#include "controlbar.h" - -class cbSimpleCustomizationPlugin : public cbPluginBase -{ -public: - DECLARE_DYNAMIC_CLASS( cbSimpleCustomizationPlugin ) - - int mCustMenuItemId; -public: - - cbSimpleCustomizationPlugin(void); - - cbSimpleCustomizationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - - // plugin-event handlers - - void OnCustomizeBar( cbCustomizeBarEvent& event ); - - void OnCustomizeLayout( cbCustomizeLayoutEvent& event ); - - // menu-event handler - - void OnMenuItemSelected( wxCommandEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/controlarea.cpp b/utils/framelayout/src/controlarea.cpp deleted file mode 100644 index 046131ce5c..0000000000 --- a/utils/framelayout/src/controlarea.cpp +++ /dev/null @@ -1,1171 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 07/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "controlarea.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include -#include - -#include "wx/string.h" -#include "wx/utils.h" // import wxMin/wxMax macros and wxFileExist(..) - -#include "controlarea.h" - - -/***** Implementation for class twTabInfo *****/ - -IMPLEMENT_DYNAMIC_CLASS( twTabInfo, wxObject ) - -twTabInfo::twTabInfo() - : mpContent( 0 ) -{} - -twTabInfo::~twTabInfo() -{ - // FOR NOW:: nothing -} - -int twTabInfo::ImgWidth() -{ - if ( mBitMap.Ok() ) return mBitMap.GetWidth(); - else return 0; -} - -int twTabInfo::ImgHeight() -{ - if ( mBitMap.Ok() ) return mBitMap.GetHeight(); - else return 0; -} - -int twTabInfo::ImageToTxtGap( int prefGap ) -{ - if ( mBitMap.Ok() ) return prefGap; - else return 0; -} - -bool twTabInfo::HasImg() -{ - return mBitMap.Ok(); -} - -bool twTabInfo::HasText() -{ - return mText.Length(); -} - -wxBitmap& twTabInfo::GetImg() -{ - return mBitMap; -} - -wxString& twTabInfo::GetText() -{ - return mText; -} - -wxWindow& twTabInfo::GetContent() -{ - return *mpContent; -} - -/***** Implementation for class wxTabbedWindow *****/ - -IMPLEMENT_DYNAMIC_CLASS( wxTabbedWindow, wxPanel ) - -BEGIN_EVENT_TABLE( wxTabbedWindow, wxPanel ) - - EVT_SIZE ( wxTabbedWindow::OnSize ) - EVT_PAINT( wxTabbedWindow::OnPaint ) - EVT_LEFT_DOWN( wxTabbedWindow::OnLButtonDown ) - -// TDB:: filciker reduction -// EVT_ERASE_BACKGROUND( wxTabbedWindow::OnBkErase ) - -END_EVENT_TABLE() - -wxTabbedWindow::wxTabbedWindow() - - : mpTabScroll ( NULL ), - mpHorizScroll( NULL ), - mpVertScroll ( NULL ), - - mVertGap ( 0 ), - mHorizGap( 0 ), - - mTitleVertGap ( 3 ), - mTitleHorizGap( 4 ), - mImageTextGap ( 2 ), - mFirstTitleGap( 11 ), - - mBorderOnlyWidth( 8 ), - - mWhitePen( wxColour(255,255,255), 1, wxSOLID ), - mLightPen( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHIGHLIGHT), 1, wxSOLID), - mGrayPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - mDarkPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW), 1, wxSOLID ), - mBlackPen( wxColour( 0, 0, 0), 1, wxSOLID ), - - // state variables - - mActiveTab ( 0 ), - mTitleHeight( 0 ), - mLayoutType( wxTITLE_IMG_AND_TEXT ) -{} - -wxTabbedWindow::~wxTabbedWindow() -{ - wxNode* pTab = mTabs.First(); - - while( pTab ) - { - delete ((twTabInfo*)pTab->Data()); - - pTab = pTab->Next(); - } -} - -void wxTabbedWindow::SizeTabs(int x,int y, int width, int height, bool repant) -{ - wxNode* pTabNode = mTabs.First(); - int n = 0; - - while( pTabNode ) - { - twTabInfo& info = *((twTabInfo*)pTabNode->Data()); - - if ( n == mActiveTab ) - { - //wxSizeEvent evt; - //info.mpContent->GetEventHandler()->ProcessEvent( evt ); - - info.mpContent->SetSize( x, y, width, height, 0 ); - info.mpContent->Show(TRUE); - info.mpContent->Refresh(); - - } - else - { - info.mpContent->Show(FALSE); - } - - pTabNode = pTabNode->Next(); - ++n; - } -} - -void wxTabbedWindow::AddTab( wxWindow* pContent, - wxString tabText, - wxString imageFileName, - long imageType ) -{ - twTabInfo* pTab = new twTabInfo(); - - pTab->mpContent = pContent; - pTab->mText = tabText; - - if ( wxFileExists( imageFileName ) && - - pTab->mBitMap.LoadFile( imageFileName, imageType ) ) - { - pTab->mImageFile = imageFileName; - pTab->mImageType = imageType; - } - - bool ok = pTab->mBitMap.Ok(); - - if ( pContent->GetParent() == NULL ) - - pContent->Create( this, -1 ); - - mTabs.Append( (wxObject*)pTab ); - - RecalcLayout(TRUE); - - OnTabAdded( pTab ); -} - -void wxTabbedWindow::AddTab( wxWindow* pContent, - wxString tabText, - wxBitmap* pImage ) -{ - twTabInfo* pTab = new twTabInfo(); - - pTab->mpContent = pContent; - pTab->mText = tabText; - - if ( pImage ) pTab->mBitMap = *pImage; - - if ( pContent->GetParent() == NULL ) - - pContent->Create( this, -1 ); - - mTabs.Append( (wxObject*)pTab ); - - RecalcLayout(TRUE); - - OnTabAdded( pTab ); -} - - - -void wxTabbedWindow::RemoveTab( int tabNo ) -{ - twTabInfo* pTab = ((twTabInfo*)(mTabs.Nth( tabNo )->Data())); - - pTab->mpContent->Destroy(); - - delete pTab; - - mTabs.DeleteNode( mTabs.Nth( tabNo ) ); - - if ( mActiveTab >= mTabs.Number() ); - - mActiveTab = mTabs.Number() - 1; - - SetActiveTab( mActiveTab ); -} - -int wxTabbedWindow::GetTabCount() -{ - return mTabs.Number(); -} - -wxWindow* wxTabbedWindow::GetTab( int tabNo ) -{ - return ((twTabInfo*)(mTabs.Nth( tabNo )->Data()))->mpContent; -} - -wxWindow* wxTabbedWindow::GetActiveTab() -{ - // FIMXE:: this is lame - - return GetTab( mActiveTab ); -} - -void wxTabbedWindow::SetActiveTab( int tabNo ) -{ - mActiveTab = tabNo; - - RecalcLayout(TRUE); - - Refresh(); -} - -// width of the decorations border (4 shade-lines), should not be changed - -#define BORDER_SZ 4 - -void wxTabbedWindow::DrawShadedRect( int x, int y, int width, int height, - wxPen& upperPen, wxPen& lowerPen, wxDC& dc - ) -{ - // darw the lightened upper-left sides of the rectangle - - dc.SetPen( upperPen ); - dc.DrawLine( x,y, x, y + height - 1 ); // vert - dc.DrawLine( x,y, x + width - 1, y ); // horiz - - // draw the unenlightened lower-right sides of the rectangle - - dc.SetPen( lowerPen ); - dc.DrawLine( x + width - 1, y, x + width - 1, y + height - 1 ); // vert - dc.DrawLine( x, y + height - 1, x + width, y + height - 1 ); // horiz -} - -void wxTabbedWindow::DrawDecorations( wxDC& dc ) -{ - // Protability NOTE::: DrawLine(..) draws a line from the first position, - // but not including the point specified by last position. - // This way Windows draws lines, not sure how Motif and Gtk - // prots behave... - - int width, height; - GetClientSize( &width, &height ); - - // check if there's at least a bit of space to draw things - - if ( width < mHorizGap*2 + BORDER_SZ*2+1 || - height < mVertGap*2 + BORDER_SZ*2+1 + mTitleHeight - ) - return; - - // step #1 - draw border around the tab content area - - // setup position for kind of "pencil" - int curX = mHorizGap; - int curY = mVertGap; - - int xSize = width - mHorizGap*2; - int ySize = height - mVertGap *2 - mTitleHeight; - - // layer 1 (upper white) - DrawShadedRect( curX+0, curY+0, xSize-0, ySize-0, - mLightPen, mBlackPen, dc ); - - // layer 2 (upper gray) - DrawShadedRect( curX+1, curY+1, xSize-2-1, ySize-2-1, - mGrayPen, mGrayPen, dc ); - - // layer 3 (upper darkGray) - DrawShadedRect( curX+2, curY+2, xSize-3-2, ySize-3-2, - mDarkPen, mLightPen, dc ); - - // layer 4 (upper black) - DrawShadedRect( curX+3, curY+3, xSize-4-3, ySize-4-3, - mBlackPen, mGrayPen, dc ); - - // add non-siemtric layer from the lower-right side (confroming to MFC-look) - - dc.SetPen( mDarkPen ); - dc.DrawLine( curX+1, curY + ySize - 2, curX + xSize - 1, curY + ySize - 2 ); // horiz - dc.DrawLine( curX + xSize - 2, curY + 1, curX + xSize - 2, curY + ySize - 2 ); // vert - - // step #2 - draw tab title bars - - curX = mFirstTitleGap; - curY = height - mVertGap - mTitleHeight; - - int tabNo = 0; - wxNode* pNode = mTabs.First(); - - while( pNode ) - { - // "hard-coded metafile" for decorations - - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - xSize = tab.mDims.x; - ySize = mTitleHeight; - - if ( tabNo == mActiveTab ) - { - dc.SetPen( mGrayPen ); - dc.DrawLine( curX+1, curY-2, curX+xSize-2, curY-2 ); - dc.DrawLine( curX+1, curY-1, curX+xSize-2, curY-1 ); - } - - dc.SetPen( mLightPen ); - - if ( tabNo == mActiveTab ) - dc.DrawLine( curX, curY-2, curX, curY+ySize-2 ); - else - dc.DrawLine( curX, curY, curX, curY+ySize-2 ); - - dc.SetPen( mDarkPen ); - dc.DrawLine( curX+1, curY+ySize-3, curX+1, curY+ySize-1 ); // to pix down - dc.DrawLine( curX+2, curY+ySize-2, curX+xSize-2, curY+ySize-2 ); - dc.DrawLine( curX+xSize-3, curY+ySize-3, curX+xSize-2, curY+ySize-3 ); - if ( tabNo == mActiveTab ) - dc.DrawLine( curX+xSize-2, curY+ySize-3, curX+xSize-2, curY-3 ); - else - dc.DrawLine( curX+xSize-2, curY+ySize-3, curX+xSize-2, curY-1 ); - - dc.SetPen( mBlackPen ); - dc.DrawLine( curX+xSize-1, curY, curX+xSize-1, curY+ySize-2 ); - dc.DrawLine( curX+xSize-2, curY+ySize-2, curX+xSize-3, curY+ySize-2 ); - dc.DrawLine( curX+xSize-3, curY+ySize-1, curX+1, curY+ySize-1 ); - - pNode = pNode->Next(); - ++tabNo; - - // darw image and (or without) text centered within the - // title bar rectangle - - if ( mLayoutType != wxTITLE_BORDER_ONLY && tab.HasImg() ) - { - wxMemoryDC tmpDc; - tmpDc.SelectObject( tab.GetImg() ); - - dc.Blit( curX + mTitleHorizGap, - curY + ( ySize - tab.ImgHeight() ) / 2, - tab.ImgWidth(), - tab.ImgHeight(), - &tmpDc, 0, 0, wxCOPY,true - ); - } - - if ( mLayoutType == wxTITLE_IMG_AND_TEXT && tab.HasText() ) - { - long x,w,h; - - // set select default font of the window into it's device context - dc.SetFont( GetLabelingFont() ); - - dc.SetTextBackground( GetBackgroundColour() ); - - dc.GetTextExtent(tab.mText, &w, &h ); - - x = curX + mTitleHorizGap + - tab.ImgWidth() + tab.ImageToTxtGap(mImageTextGap); - - dc.DrawText( tab.GetText(), x, curY + ( ySize - h ) / 2 ); - } - curX += xSize; - - } // end of `while (pNode)' -} - -int wxTabbedWindow::HitTest( const wxPoint& pos ) -{ - int width, height; - GetClientSize( &width, &height ); - - int curX = mFirstTitleGap; - int curY = height - mVertGap - mTitleHeight; - - int tabNo = 0; - wxNode* pNode = mTabs.First(); - - int x = pos.x; - int y = pos.y; - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - int w,h; - w = tab.mDims.x; - h = tab.mDims.y; - // hit test rectangle of the currnet tab title bar - if ( pos.x >= curX && pos.x < curX + tab.mDims.x && - pos.y >= curY && pos.y < curY + tab.mDims.y - ) - { - return tabNo; - } - - curX += tab.mDims.x; - - pNode = pNode->Next(); - ++tabNo; - } - - return -1; -} - -void wxTabbedWindow::HideInactiveTabs( bool andRepaint ) -{ - if ( !andRepaint ) - return; - - wxNode* pNode = mTabs.First(); - int tabNo = 0; - - while( pNode ) - { - if ( tabNo != mActiveTab ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - tab.mpContent->Show(FALSE); - } - - pNode = pNode->Next(); - ++tabNo; - } -} - -wxFont wxTabbedWindow::GetLabelingFont() -{ -#if 0 - wxFont font; -#ifdef __WINDOWS__ - font.SetFaceName("MS Sans Serif"); -#else - font.SetFamily( wxDEFAULT ); -#endif - - font.SetStyle(wxNORMAL); - font.SetWeight(wxNORMAL); - font.SetPointSize( 8 ); - -#ifdef __WINDOWS__ - font.RealizeResource(); -#endif - - return font; -#endif - return wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); -} - -void wxTabbedWindow::RecalcLayout(bool andRepaint) -{ - HideInactiveTabs(andRepaint); - - // resetup position of the active tab - - int width, height; - GetClientSize( &width, &height ); - - int curX = mHorizGap + BORDER_SZ; - int curY = mVertGap + BORDER_SZ; - - int xSize = width - mHorizGap*2 - BORDER_SZ*2-1; - int ySize = height - mVertGap*2 - BORDER_SZ*2-1 - mTitleHeight; - - SizeTabs( curX, curY, xSize, ySize, andRepaint ); - - // pass #1 - try to layout assuming it's wxTITLE_IMG_AND_TEXT - - mLayoutType = wxTITLE_IMG_AND_TEXT; - - wxNode* pNode = mTabs.First(); - - curX = mFirstTitleGap; // the left-side gap - mTitleHeight = 0; - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - wxWindowDC dc(this); - - long w,h; - - // set select default font of the window into it's device context - dc.SetFont( GetLabelingFont() ); - - dc.GetTextExtent(tab.mText, &w, &h ); - - tab.mDims.x = w + tab.ImageToTxtGap(mImageTextGap) + - tab.ImgWidth() + mTitleHorizGap*2; - - tab.mDims.y = wxMax( h, tab.ImgHeight() ) + mTitleVertGap*2; - mTitleHeight = wxMax( mTitleHeight, tab.mDims.y ); - - curX += tab.mDims.x; - - pNode = pNode->Next(); - } - - curX += mHorizGap; // the right-side gap - - // make all title bars of equel height - - pNode = mTabs.First(); - - while( pNode ) - { - ((twTabInfo*)(pNode->Data()))->mDims.y = mTitleHeight;; - pNode = pNode->Next(); - } - - // if curX has'nt ran out of bounds, leave TITLE_IMG layout and return - if ( curX < width - mHorizGap ) - return; - - // pass #2 - try to layout assuming wxTITLE_IMG_ONLY - - mLayoutType = wxTITLE_IMG_ONLY; - - pNode = mTabs.First(); - - curX = mFirstTitleGap; // the left-side gap - - int denomiator = mTabs.Number(); - if ( denomiator == 0 ) ++denomiator; - - mBorderOnlyWidth = (width - mFirstTitleGap - mHorizGap) / denomiator; - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - if ( tab.HasImg() ) - { - tab.mDims.x = tab.ImgWidth() + mTitleHorizGap*2; - tab.mDims.y = tab.ImgHeight() + mTitleVertGap*2; - } - else - { - tab.mDims.x = mBorderOnlyWidth; - tab.mDims.y = mTitleHeight; - } - - curX += tab.mDims.x; - - pNode = pNode->Next(); - } - - curX += mHorizGap; // the right-side gap - - // if curX has'nt ran out of bounds, leave IMG_ONLY layout and return - if ( curX < width - mHorizGap ) - return; - - // pass #3 - set the narrowest layout wxTITLE_BORDER_ONLY - - mLayoutType = wxTITLE_BORDER_ONLY; - - pNode = mTabs.First(); - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - tab.mDims.x = mBorderOnlyWidth; - tab.mDims.y = mTitleHeight; - - pNode = pNode->Next(); - } -} - -// wx event handlers - -void wxTabbedWindow::OnPaint( wxPaintEvent& event ) -{ - wxPaintDC dc(this); - DrawDecorations( dc ); -} - -void wxTabbedWindow::OnSize ( wxSizeEvent& event ) -{ - SetBackgroundColour( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ); - RecalcLayout(TRUE); -} - -void wxTabbedWindow::OnBkErase( wxEraseEvent& event ) -{ - // do nothing -} - -void wxTabbedWindow::OnLButtonDown( wxMouseEvent& event ) -{ - // floats, why? - int x = (int)event.m_x; - int y = (int)event.m_y; - - int tabNo = HitTest( wxPoint(x,y) ); - - if ( tabNo != -1 ) - { - SetActiveTab( tabNo ); - } -} - -/***** Implementation for class wxPaggedWindow *****/ - -IMPLEMENT_DYNAMIC_CLASS( wxPaggedWindow, wxTabbedWindow ) - -BEGIN_EVENT_TABLE( wxPaggedWindow, wxTabbedWindow ) - EVT_SIZE ( wxPaggedWindow::OnSize ) - EVT_PAINT ( wxPaggedWindow::OnPaint ) - EVT_LEFT_DOWN( wxPaggedWindow::OnLButtonDown ) - EVT_LEFT_UP ( wxPaggedWindow::OnLButtonUp ) - EVT_MOTION ( wxPaggedWindow::OnMouseMove ) - EVT_SCROLL ( wxPaggedWindow::OnScroll ) -END_EVENT_TABLE() - -// border for pagged-window is 2 shaded-lines - -#undef BORDER_SZ -#define BORDER_SZ 2 - -wxPaggedWindow::wxPaggedWindow() - - : mScrollEventInProgress( FALSE ), - - mTabTrianGap(4), - - mWhiteBrush( wxColour(255,255,255), wxSOLID ), - mGrayBrush ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), wxSOLID ), - - mCurentRowOfs( 0 ), - mAdjustableTitleRowLen( 300 ), - - mIsDragged ( FALSE ), - mDagOrigin ( 0 ), - mCursorChanged( FALSE ), - mResizeCursor ( wxCURSOR_SIZEWE ), - mNormalCursor ( wxCURSOR_ARROW ) -{ - mTitleVertGap = 2; - mTitleHorizGap = 10; -} - -wxPaggedWindow::~wxPaggedWindow() -{ - // nothing (base class handles destruction) -} - -wxFont wxPaggedWindow::GetLabelingFont() -{ -#if 0 - wxFont font; - -#ifdef __WINDOWS__ - font.SetFaceName("Arial"); -#else - font.SetFamily( wxDEFAULT ); -#endif - - font.SetStyle(wxNORMAL); - font.SetWeight(wxNORMAL); - font.SetPointSize( 8 ); - -#ifdef __WINDOWS__ - bool success = font.RealizeResource(); -#endif - - return font; -#endif - return wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT); -} - -void wxPaggedWindow::OnTabAdded( twTabInfo* pInfo ) -{ - int units = GetWholeTabRowLen() / 20; - - mpTabScroll->SetScrollbar( 0, 1, units, 1, FALSE ); -} - -wxScrollBar& wxPaggedWindow::GetVerticalScrollBar() -{ - return *mpVertScroll; -} - -wxScrollBar& wxPaggedWindow::GetHorizontalScrollBar() -{ - return *mpHorizScroll; -} - - -int wxPaggedWindow::GetWholeTabRowLen() -{ - wxNode* pNode = mTabs.First(); - - int len = 0; - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - len += tab.mDims.x; - pNode = pNode->Next(); - } - - return len; -} - -void wxPaggedWindow::DrawPaperBar( twTabInfo& tab, int x, int y, - wxBrush& brush, wxPen& pen, wxDC& dc ) -{ - wxPoint poly[4]; - - // draw organizer-style paper outlet - - poly[0].x = x - mTabTrianGap; - poly[0].y = y; - - poly[1].x = x + mTabTrianGap; - poly[1].y = y + tab.mDims.y-1; - - poly[2].x = x + tab.mDims.x - mTabTrianGap; - poly[2].y = y + tab.mDims.y-1; - - poly[3].x = x + tab.mDims.x + mTabTrianGap; - poly[3].y = y; - - dc.SetPen( pen ); - dc.SetBrush( brush ); - - dc.DrawPolygon( 4, poly ); - - long w,h; - - // set select default font of the window into it's device context - dc.SetFont( GetLabelingFont() ); - - dc.SetTextBackground( brush.GetColour() ); - - dc.GetTextExtent(tab.mText, &w, &h ); - - if ( tab.HasImg() ) - { - wxMemoryDC tmpDc; - tmpDc.SelectObject( tab.GetImg() ); - - dc.Blit( x + mTitleHorizGap, - y + ( tab.mDims.y - tab.ImgHeight() ) / 2, - tab.ImgWidth(), - tab.ImgHeight(), - &tmpDc, 0, 0, wxCOPY,true - ); - } - - if ( tab.HasText() ) - { - int tx = x + mTitleHorizGap + - tab.ImgWidth() + tab.ImageToTxtGap(mImageTextGap); - - dc.DrawText( tab.GetText(), tx, y + ( tab.mDims.y - h ) / 2 ); - } -} - -void wxPaggedWindow::DrawDecorations( wxDC& dc ) -{ - // FIXME:: the is big body have to be split! - - int width, height; - GetClientSize( &width, &height ); - - int curX = mHorizGap; - int curY = mVertGap; - - int xSize = width - mHorizGap*2; - int ySize = height - mVertGap*2; - - DrawShadedRect( curX, curY, xSize, ySize, - mDarkPen, mLightPen, dc ); - - DrawShadedRect( curX+1, curY+1, xSize-2, ySize-2, - mBlackPen, mGrayPen, dc ); - - // draw inactive tab title bars frist (left-to-right) - - wxNode* pNode = mTabs.First(); - int tabNo = 0; - - /* OLD STUFF:: - curX = mTitleRowStart; - curY = height - mVertGap - BORDER_SZ - mTitleHeight; - */ - - curX = mTabTrianGap; - curY = 0; - - // FOR NOW:: avoid creating bitmap with invalid dimensions - - if ( mTitleRowLen < 1 || mTitleHeight < 1 ) return; - - wxMemoryDC tmpDc; - wxBitmap tmpBmp( mTitleRowLen, mTitleHeight ); - - tmpDc.SelectObject( tmpBmp ); - tmpDc.SetPen( mGrayPen ); - tmpDc.SetBrush( mGrayBrush ); - tmpDc.DrawRectangle( 0,0, mTitleRowLen, mTitleHeight ); - - tmpDc.SetDeviceOrigin( mCurentRowOfs, 0 ); - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - if ( tabNo != mActiveTab ) - - DrawPaperBar( tab, curX, curY, mGrayBrush, mBlackPen, tmpDc ); - - curX += tab.mDims.x; - - pNode = pNode->Next(); - ++tabNo; - } - - // finally, draw the active tab (white-filled) - - pNode = mTabs.First(); - tabNo = 0; - - curX = mTabTrianGap; - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - if ( tabNo == mActiveTab ) - { - DrawPaperBar( tab, curX, curY, mWhiteBrush, mBlackPen, tmpDc ); - - tmpDc.SetPen( mLightPen ); - - tmpDc.DrawLine( curX - mTabTrianGap+1, curY, - curX + tab.mDims.x + mTabTrianGap, curY ); - break; - } - curX += tab.mDims.x; - - pNode = pNode->Next(); - ++tabNo; - } - - // back to initial device origin - - tmpDc.SetDeviceOrigin( 0, 0 ); - - // draw resize-hint-stick - - curX = mTitleRowLen - 6; - - DrawShadedRect( curX+0, 0+0, 6, mTitleHeight, mGrayPen, mBlackPen, tmpDc ); - DrawShadedRect( curX+1, 0+1, 6-2, mTitleHeight-2, mLightPen, mDarkPen, tmpDc ); - DrawShadedRect( curX+2, 0+2, 6-4, mTitleHeight-4, mGrayPen, mGrayPen, tmpDc ); - - - - dc.Blit( mTitleRowStart, - height - mVertGap - BORDER_SZ - mTitleHeight, - mTitleRowLen, mTitleHeight, - &tmpDc, 0,0, wxCOPY ); -} - -int wxPaggedWindow::HitTest( const wxPoint& pos ) -{ - return wxTabbedWindow::HitTest( pos ); -} - -void wxPaggedWindow::RecalcLayout(bool andRepaint) -{ - mTitleRowLen = mAdjustableTitleRowLen; - - if ( int(mpTabScroll) == -1 ) return; - - // scroll bars should be created after Create() for this window is called - if ( !mpTabScroll ) - { - mpTabScroll = - new wxScrollBar( this, -1, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL ); - - mpHorizScroll = - new wxScrollBar( this, -1, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL ); - - mpVertScroll = - new wxScrollBar( this, -1, wxDefaultPosition, wxDefaultSize, wxSB_VERTICAL ); - } - - { - int units = GetWholeTabRowLen() / 20; - - mpTabScroll->SetScrollbar( 0, 1, units, 1, FALSE ); - } - - // resetup position of the active tab - - int thumbLen = 16; // FOR NOW:: hardcoded - - int width, height; - GetClientSize( &width, &height ); - - mTitleHeight = thumbLen; - - int curX = mHorizGap + BORDER_SZ; - int curY = mVertGap + BORDER_SZ; - - int xSize = width - mHorizGap*2 - BORDER_SZ*2 - thumbLen; - - int ySize = height - mVertGap*2 - BORDER_SZ*2 - mTitleHeight; - - SizeTabs( curX, curY, xSize, ySize, andRepaint ); - - // setup title bar LINES's horizontal scroll bar - - curY = height - mVertGap - BORDER_SZ - thumbLen; - - mpTabScroll->SetSize( curX, curY, thumbLen*2, thumbLen ); - - // setup view's HORIZONTAL scroll bar - - curX += thumbLen*2; - - mTitleRowStart = curX; - mFirstTitleGap = curX + mCurentRowOfs + mTabTrianGap; - - mTitleRowLen = wxMin( mAdjustableTitleRowLen, - width - mHorizGap - BORDER_SZ - thumbLen*4 - curX ); - - curX += mTitleRowLen; - - mpHorizScroll->SetSize( curX, curY, - width - curX - mHorizGap - BORDER_SZ - thumbLen, - thumbLen - ); - - // setup view's VERTICAL scroll bar - - curX = width - mHorizGap - BORDER_SZ - thumbLen; - - curY = mVertGap + BORDER_SZ; - - mpVertScroll->SetSize( curX, curY, thumbLen, - height - curY - mVertGap - BORDER_SZ - thumbLen - ); - - // layout tab title bars - - mLayoutType = wxTITLE_IMG_AND_TEXT; - - wxNode* pNode = mTabs.First(); - - while( pNode ) - { - twTabInfo& tab = *((twTabInfo*)(pNode->Data())); - - wxWindowDC dc(this); - - long w,h; - - // set select default font of the window into it's device context - dc.SetFont( GetLabelingFont() ); - dc.GetTextExtent(tab.mText, &w, &h ); - - tab.mDims.x = w + tab.ImageToTxtGap(mImageTextGap) + - tab.ImgWidth() + mTitleHorizGap*2; - - tab.mDims.y = mTitleHeight; - - pNode = pNode->Next(); - } - - // disable title-bar scroller if there's nowhere to scroll to - - mpTabScroll->Enable( mTitleRowLen < GetWholeTabRowLen() || mCurentRowOfs < 0 ); -} - -// event handlers - -void wxPaggedWindow::OnPaint( wxPaintEvent& event ) -{ - wxPaintDC dc(this); - DrawDecorations( dc ); -} - -void wxPaggedWindow::OnSize ( wxSizeEvent& event ) -{ - wxTabbedWindow::OnSize(event); -} - -void wxPaggedWindow::OnLButtonDown( wxMouseEvent& event ) -{ - if ( mCursorChanged ) - { - mIsDragged = TRUE; - mDagOrigin = event.m_x; - - mOriginalTitleRowLen = mAdjustableTitleRowLen; - - CaptureMouse(); - } - else - { - wxTabbedWindow::OnLButtonDown( event ); - } -} - -void wxPaggedWindow::OnLButtonUp( wxMouseEvent& event ) -{ - if ( mIsDragged ) - { - mIsDragged = FALSE; - mCursorChanged = FALSE; - SetCursor( mNormalCursor ); - - ReleaseMouse(); - } -} - -void wxPaggedWindow::OnMouseMove( wxMouseEvent& event ) -{ - int width, height; - GetClientSize( &width, &height ); - - if ( !mIsDragged ) - { - int y = height - mVertGap - BORDER_SZ - mTitleHeight; - int x = mTitleRowStart + mTitleRowLen - 6; - - if ( event.m_x >= x && event.m_y >= y && - event.m_x < x + 6 && - event.m_y < y + mTitleHeight - ) - { - if ( !mCursorChanged ) - { - SetCursor( mResizeCursor ); - - mCursorChanged = TRUE; - } - } - else - if ( mCursorChanged ) - { - SetCursor( mNormalCursor ); - - mCursorChanged = FALSE; - } - } - else - if ( mIsDragged ) - { - mAdjustableTitleRowLen = mOriginalTitleRowLen + ( event.m_x - mDagOrigin ); - - // FOR NOW:: fixed - if ( mAdjustableTitleRowLen < 6 ) mAdjustableTitleRowLen = 6; - - wxWindowDC dc(this); - DrawDecorations( dc ); - - RecalcLayout(FALSE); - - //Refresh(); - } -} - -void wxPaggedWindow::OnScroll( wxScrollEvent& event ) -{ - int cmd = event.m_commandInt; - - wxScrollBar* pSender = (wxScrollBar*)event.GetEventObject(); - - if ( pSender == mpTabScroll ) - { - int maxLen = GetWholeTabRowLen(); - - int maxUnits = GetWholeTabRowLen() / 20; - - mCurentRowOfs = -event.GetPosition()*maxUnits; - - mFirstTitleGap = mTitleRowStart + mCurentRowOfs + mTabTrianGap; - - // let' it automatically disable itself if it's time - mpTabScroll->Enable( mTitleRowLen < GetWholeTabRowLen() || mCurentRowOfs < 0 ); - - // repaint title bars - wxWindowDC dc(this); - DrawDecorations( dc ); - } - else - if ( !mScrollEventInProgress ) - { - mScrollEventInProgress = TRUE; - - GetActiveTab()->GetEventHandler()->ProcessEvent( event ); - } - else - { - // event bounced back to us, from here we - // know that it has traveled the loop - thus it's processed! - - mScrollEventInProgress = FALSE; - } -} diff --git a/utils/framelayout/src/controlarea.h b/utils/framelayout/src/controlarea.h deleted file mode 100644 index 15cb9386af..0000000000 --- a/utils/framelayout/src/controlarea.h +++ /dev/null @@ -1,262 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 07/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __CONTROLAREA_G__ -#define __CONTROLAREA_G__ - -#ifdef __GNUG__ -#pragma interface "controlarea.h" -#endif - -#include "wx/defs.h" -#include "wx/window.h" -#include "wx/string.h" - -#define WXCONTROLAREA_VERSION 1.0 - -// layout types for title bars of the tabs -// (are selected up by evaluating the available free space ) - -class twTabInfo; // forward decl. - -#define wxTITLE_IMG_AND_TEXT 0 -#define wxTITLE_IMG_ONLY 1 -#define wxTITLE_BORDER_ONLY 2 - -/* - * class manages and decorates contained "tab"-windows. - * Draws decorations similar to those in "Project Workplace" - * of Microsoft Developer Studio 4.xx - */ - -class wxTabbedWindow : public wxPanel -{ - DECLARE_DYNAMIC_CLASS( wxTabbedWindow ) - -public: - - friend class wxTabbedWindowSerializer; - - wxList mTabs; - int mActiveTab; - int mTitleHeight; - int mLayoutType; - - void HideInactiveTabs( bool andRepaint ); - - // overrride,to provide different font for tab-labels - - virtual wxFont GetLabelingFont(); - - // FOR NOW:: scrollbars are actually related to wxPaggedWindow - - wxScrollBar* mpTabScroll; - wxScrollBar* mpHorizScroll; - wxScrollBar* mpVertScroll; - -public: - - // public properties (invoke ReclaclLayout(TRUE) to apply changes) - - wxPen mWhitePen; // default: RGB(255,255,255) - wxPen mLightPen; // wxSYS_COLOUR_3DHIGHLIGHT - wxPen mGrayPen; // wxSYS_COLOUR_3DFACE - wxPen mDarkPen; // wxSYS_COLOUR_3DSHADOW - wxPen mBlackPen; // default: RGB( 0, 0, 0) - - int mVertGap; // default: 3 - int mHorizGap; // default: 5 - int mTitleVertGap; // default: 3 - int mTitleHorizGap; // default: 4 - int mImageTextGap; // default: 2 - int mFirstTitleGap; // default: 11 - int mBorderOnlyWidth; // default: 8 - - // notifications (can be handled by derivatives) - - virtual void OnTabAdded( twTabInfo* pInfo ) {} - - virtual void SizeTabs(int x,int y, int width, int height, bool repant); - -public: - wxTabbedWindow(); - virtual ~wxTabbedWindow(); - - // tabs can be also added when the window is - // already displayed - "on the fly" - - virtual void AddTab( wxWindow* pContent, // contained window - wxString tabText, // tab label - wxString imageFileName = "", // if "", only text label is displayed - long imageType = wxBITMAP_TYPE_BMP ); - - // NOTE:: if this AddTab(..) overload is called, the - // image bitmap will not be serialized (if performed), - // use the above method instead, so that images could - // be restored using the given file names - - virtual void AddTab( wxWindow* pContent, - wxString tabText, - wxBitmap* pImage = NULL ); - - - virtual void RemoveTab( int tabNo ); - - /* misc accessors */ - - virtual int GetTabCount(); - virtual wxWindow* GetTab( int tabNo ); - virtual wxWindow* GetActiveTab(); - virtual void SetActiveTab( int tabNo ); - - void DrawShadedRect( int x, int y, int width, int height, - wxPen& upperPen, wxPen& lowerPen, wxDC& dc ); - - virtual void DrawDecorations( wxDC& dc ); - - // return -1, if non of the title bars was hitted, - // otherwise the index of the hitted tab title bar - - virtual int HitTest( const wxPoint& pos ); - - // should be invoked to redisplay window with changed properties - - virtual void RecalcLayout( bool andRepaint = TRUE ); - - // event handlers - - void OnPaint( wxPaintEvent& event ); - void OnSize ( wxSizeEvent& event ); - - void OnBkErase( wxEraseEvent& event ); - void OnLButtonDown( wxMouseEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -/* - * class manages and decorates contained "sheets" (or pages). - * Draws decorations similar to those in "Output window" - * of Microsoft Developer Studio 4.xx - */ - -class wxPaggedWindow : public wxTabbedWindow -{ - DECLARE_DYNAMIC_CLASS( wxPaggedWindow ) -protected: - - bool mScrollEventInProgress; - - // drag&drop state variables - - bool mIsDragged; - int mDagOrigin; - wxCursor mResizeCursor; - wxCursor mNormalCursor; - bool mCursorChanged; - int mOriginalTitleRowLen; - - void DrawPaperBar( twTabInfo& tab, int x, int y, - wxBrush& brush, wxPen& pen, wxDC& dc ); - - int GetWholeTabRowLen(); - - // adjusts scorllbars to fit around tabs - - virtual void OnTabAdded( twTabInfo* pInfo ); - - // sets smaller font for page-labels - - virtual wxFont GetLabelingFont(); - -public: - int mTitleRowStart; - int mResizeNailGap; - int mTabTrianGap; - int mTitleRowLen; // actual title row length - int mAdjustableTitleRowLen; // setup by dragging mini-sash - // with the mosue pointer - int mCurentRowOfs; - - wxBrush mGrayBrush; - wxBrush mWhiteBrush; - -public: - wxPaggedWindow(); - ~wxPaggedWindow(); - - // NOTE:: use public methods of the base class - // to add "pages" to this window - - /* misc accessors */ - - // below two methods should be called after - // the tabs were added (AddTab(..)). Set up - // these scrollbars to match the needs of the - // tabs added into this area - - wxScrollBar& GetVerticalScrollBar(); - wxScrollBar& GetHorizontalScrollBar(); - - virtual void DrawDecorations( wxDC& dc ); - - // return -1, if non of the title bars was hitted, - // otherwise the index of the hitted tab title bar - - virtual int HitTest( const wxPoint& pos ); - - virtual void RecalcLayout( bool andRepaint = TRUE ); - - // event handlers - - void OnPaint( wxPaintEvent& event ); - void OnSize ( wxSizeEvent& event ); - void OnLButtonDown( wxMouseEvent& event ); - void OnLButtonUp ( wxMouseEvent& event ); - void OnMouseMove ( wxMouseEvent& event ); - void OnScroll ( wxScrollEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -// helper structure of wxTabbedWindow - -class twTabInfo : public wxObject -{ - DECLARE_DYNAMIC_CLASS( twTabInfo ) -public: - twTabInfo(); - ~twTabInfo(); - - int ImgWidth(); - int ImgHeight(); - int ImageToTxtGap( int prefGap ); - - bool HasImg(); - wxBitmap& GetImg(); - bool HasText(); - wxString& GetText(); - wxWindow& GetContent(); - -public: - wxWindow* mpContent; - wxBitmap mBitMap; - - wxString mText; - wxSize mDims; - - // used for serialization - wxString mImageFile; - long mImageType; - -}; - -#endif diff --git a/utils/framelayout/src/controlbar.cpp b/utils/framelayout/src/controlbar.cpp deleted file mode 100644 index 425e151d9f..0000000000 --- a/utils/framelayout/src/controlbar.cpp +++ /dev/null @@ -1,3348 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "controlbar.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include -#include - -#include "wx/string.h" -#include "wx/utils.h" // import wxMin,wxMax macros -#include "wx/minifram.h" - -#include "controlbar.h" - -// import classes of default plugins - -#include "panedrawpl.h" -#include "rowlayoutpl.h" -#include "antiflickpl.h" -#include "bardragpl.h" -#include "cbcustom.h" - -#include "gcupdatesmgr.h" // import default updates manager class ("garbage-collecting" one) -#include "updatesmgr.h" - -#include "toolwnd.h" - -// some ascii-art, still can't get these *nice* cursors working on wx... :-( - -static const char* _gHorizCursorImg[] = -{ - "............XX....XX............", - "............XX....XX............", - "............XX....XX............", - "............XX....XX............", - "............XX....XX............", - "...X........XX....XX........X...", - "..XX........XX....XX........XX..", - ".XXX........XX....XX........XXX.", - "XXXXXXXXXXXXXX....XXXXXXXXXXXXXX", - ".XXX........XX....XX........XXX.", - "..XX........XX....XX........XX..", - "...X........XX....XX........X...", - "............XX....XX............", - "............XX....XX............", - "............XX....XX............", - "............XX....XX............" -}; - -static const char* _gVertCursorImg[] = -{ - "................X...............", - "...............XXX..............", - "..............XXXXX.............", - ".............XXXXXXX............", - "................X...............", - "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - "................................", - "................................", - "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - "................X...............", - ".............XXXXXXX............", - "..............XXXXX.............", - "...............XXX..............", - "................X..............." -}; - -// helper inline functions - -static inline bool rect_contains_point( const wxRect& rect, int x, int y ) -{ - return ( x >= rect.x && - y >= rect.y && - x < rect.x + rect.width && - y < rect.y + rect.height ); -} - -static inline bool rect_hits_rect( const wxRect& r1, const wxRect& r2 ) -{ - if ( ( r2.x >= r1.x && r2.x <= r1.x + r1.width ) || - ( r1.x >= r2.x && r1.x <= r2.x + r2.width ) ) - - if ( ( r2.y >= r1.y && r2.y <= r1.y + r1.height ) || - ( r1.y >= r2.y && r1.y <= r2.y + r2.height ) ) - - return 1; - - return 0; -} - -static inline void hide_rect( wxRect& r ) -{ - r.x = 32768; - r.y = 32768; - r.width = 1; - r.height = 1; -} - -static inline void clip_rect_against_rect( wxRect& r1, const wxRect& r2 ) -{ - if ( r1.x < r2.x || - r1.y < r2.y || - r1.x >= r2.x + r2.width || - r1.y >= r2.y + r2.height - ) - { - hide_rect( r1 ); - return; - } - else - { - if ( r1.x + r1.width > r2.x + r2.width ) - - r1.width = r2.x + r2.width - r1.x; - - if ( r1.y + r1.height > r2.y + r2.height ) - - r1.height = r2.y + r2.height - r1.y; - } -} - -/***** Implementation for class cbBarSpy *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbBarSpy, wxEvtHandler ) - -cbBarSpy::cbBarSpy(void) - : mpLayout(0), - mpBarWnd(0) -{} - -cbBarSpy::cbBarSpy( wxFrameLayout* pPanel ) - - : mpLayout(pPanel), - mpBarWnd(0) -{} - -void cbBarSpy::SetBarWindow( wxWindow* pWnd ) -{ - mpBarWnd = pWnd; -} - -bool cbBarSpy::ProcessEvent(wxEvent& event) -{ - bool handled = wxEvtHandler::ProcessEvent( event ); - - int type = event.GetEventType(); - - if ( !handled && ( type == wxEVT_LEFT_DOWN || - type == wxEVT_LEFT_DCLICK ) ) - { - wxMouseEvent& mevent = *((wxMouseEvent*)&event); - - int x = mevent.m_x; - int y = mevent.m_y; - - mpBarWnd->ClientToScreen( &x, &y ); - mpLayout->GetParentFrame().ScreenToClient( &x, &y ); - - mevent.m_x = x; - mevent.m_y = y; - - // forwared not-handled event to frame-layout - - if ( type == wxEVT_LEFT_DOWN ) - { - //mpLayout->OnLButtonDown( mevent ); - event.Skip(); - } - else - mpLayout->OnLDblClick( mevent ); - - //event.Skip(FALSE); - } - - return handled; -} - -/***** Implementation for class wxFrameLayout *****/ - -IMPLEMENT_DYNAMIC_CLASS( wxFrameLayout, wxEvtHandler ) - -BEGIN_EVENT_TABLE( wxFrameLayout, wxEvtHandler ) - - EVT_PAINT ( wxFrameLayout::OnPaint ) - EVT_SIZE ( wxFrameLayout::OnSize ) - EVT_LEFT_DOWN ( wxFrameLayout::OnLButtonDown ) - EVT_LEFT_UP ( wxFrameLayout::OnLButtonUp ) - EVT_RIGHT_DOWN ( wxFrameLayout::OnRButtonDown ) - EVT_RIGHT_UP ( wxFrameLayout::OnRButtonUp ) - EVT_MOTION ( wxFrameLayout::OnMouseMove ) - - EVT_LEFT_DCLICK( wxFrameLayout::OnLDblClick ) - - EVT_IDLE ( wxFrameLayout::OnIdle ) - EVT_SET_FOCUS ( wxFrameLayout::OnSetFocus ) - EVT_KILL_FOCUS ( wxFrameLayout::OnKillFocus ) - - EVT_ACTIVATE ( wxFrameLayout::OnActivate ) - - EVT_ERASE_BACKGROUND( wxFrameLayout::OnEraseBackground ) - -END_EVENT_TABLE() - -// FIXME:: how to eliminate these cut&pasted constructors? - -wxFrameLayout::wxFrameLayout(void) - - : mpFrame ( NULL ), - mpFrameClient( NULL ), - - mDarkPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW), 1, wxSOLID ), - mLightPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT), 1, wxSOLID ), - mGrayPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - mBlackPen ( wxColour( 0, 0, 0), 1, wxSOLID ), - mBorderPen( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - - mpPaneInFocus( NULL ), - mpLRUPane ( NULL ), - - mNullPen( wxColour(0,0,0), 1, wxTRANSPARENT ), - - mpTopPlugin ( NULL ), - mpCaputesInput( NULL ), - - mCheckFocusWhenIdle( FALSE ), - mRecalcPending( TRUE ), - mClientWndRefreshPending( FALSE ) -{ - CreateCursors(); - - for( int i = 0; i != MAX_PANES; ++i ) - - mPanes[i] = NULL; - - mFloatingOn = CanReparent(); -} - -wxFrameLayout::wxFrameLayout( wxWindow* pParentFrame, wxWindow* pFrameClient, bool activateNow ) - - : mpFrame( pParentFrame ), - mpFrameClient(pFrameClient), - - mDarkPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW), 1, wxSOLID ), - mLightPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHILIGHT), 1, wxSOLID ), - mGrayPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - mBlackPen ( wxColour( 0, 0, 0), 1, wxSOLID ), - mBorderPen( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - - mpPaneInFocus( NULL ), - mpLRUPane ( NULL ), - - mNullPen( wxColour(0,0,0), 1, wxTRANSPARENT ), - - mpUpdatesMgr( NULL ), - - mpTopPlugin ( NULL ), - mpCaputesInput( NULL ), - - mRecalcPending( TRUE ), - - mFloatingOn ( TRUE ), - - mCheckFocusWhenIdle( FALSE ), - mClientWndRefreshPending( FALSE ) -{ - CreateCursors(); - - for( int i = 0; i != MAX_PANES; ++i ) - - mPanes[i] = new cbDockPane( i, this ); - - if ( activateNow ) - { - HookUpToFrame(); - - // FOR NOW:: - // DBG:: set RED color of frame's background for the - // prurpose of tracking engine bugs "visually" - - GetParentFrame().SetBackgroundColour( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE) ); - } - - mFloatingOn = CanReparent(); -} - -// NOTE:: below are the only plaftorm-check "ifdef"s in the docking system! - -bool wxFrameLayout::CanReparent() -{ -#ifdef __WXMSW__ - return TRUE; -#endif - -#ifdef __WXGTK__ - //return TRUE; -#endif - - return FALSE; // reparenting is not yet supported by Motif and others -} - -/* -#ifdef __WXMSW__ - #inlcude "windows.h" -#endif -*/ - -void wxFrameLayout::ReparentWindow( wxWindow* pChild, wxWindow* pNewParent ) -{ -#ifdef __WXMSW__ - - if ( pChild->GetParent() ) - { - bool success = pChild->GetParent()->GetChildren().DeleteObject( pChild ); - - wxASSERT( success ); // DBG:: - } - - ::SetParent( (HWND)pChild->m_hWnd, (HWND)pNewParent->m_hWnd ); - - pNewParent->GetChildren().Append( pChild ); - - pChild->SetParent( pNewParent ); - - return; -#endif - - // FOR NOW:: floating with wxGtk still very buggy - -#ifdef __WXGTK__ - - return; - - //pChild->ReParent( pNewParent ); - - //return; -#endif - - wxMessageBox( "Sorry, docking is not supported for ports other than MSW and wxGTK" ); -} - -void wxFrameLayout::DestroyBarWindows() -{ - wxNode* pSpy = mBarSpyList.First(); - - while( pSpy ) - { - cbBarSpy& spy = *((cbBarSpy*)pSpy->Data()); - - if ( spy.mpBarWnd->GetEventHandler() == &spy ) - - spy.mpBarWnd->PopEventHandler(); - - delete &spy; - - pSpy = pSpy->Next(); - } - - mBarSpyList.Clear(); - - for( size_t i = 0; i != mAllBars.Count(); ++i ) - { - if ( mAllBars[i]->mpBarWnd ) - { - mAllBars[i]->mpBarWnd->Destroy(); - mAllBars[i]->mpBarWnd = NULL; - } - } -} - -void wxFrameLayout::ShowFloatedWindows( bool show ) -{ - wxNode* pNode = mFloatedFrames.First(); - - while( pNode ) - { - cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->Data()); - - pFFrm->Show( show ); - - pNode = pNode->Next(); - } -} - -wxFrameLayout::~wxFrameLayout() -{ - UnhookFromFrame(); - - if ( mpUpdatesMgr ) delete mpUpdatesMgr; - - // destoy the chain of plugins from left to right - - wxEvtHandler* pCur = mpTopPlugin; - - if ( pCur ) - - while ( pCur->GetPreviousHandler() ) - - pCur = pCur->GetPreviousHandler(); - - while ( pCur ) - { - wxEvtHandler* pNext = pCur->GetNextHandler(); - - delete pCur; - - pCur = pNext; - } - - // destroy contents of arrays and lists - - size_t i = 0; - - for( i = 0; i != MAX_PANES; ++i ) - - if ( mPanes[i] ) delete mPanes[i]; - - if ( mpHorizCursor ) delete mpHorizCursor; - if ( mpVertCursor ) delete mpVertCursor; - if ( mpNormalCursor ) delete mpNormalCursor; - if ( mpDragCursor ) delete mpDragCursor; - if ( mpDragCursor ) delete mpNECursor; - - wxNode* pSpy = mBarSpyList.First(); - - while( pSpy ) - { - cbBarSpy& spy = *((cbBarSpy*)pSpy->Data()); - - if ( spy.mpBarWnd->GetEventHandler() == &spy ) - - spy.mpBarWnd->PopEventHandler(); - - delete &spy; - - pSpy = pSpy->Next(); - } - - for( i = 0; i != mAllBars.Count(); ++i ) - - delete mAllBars[i]; -} - -void wxFrameLayout::EnableFloating( bool enable ) -{ - mFloatingOn = enable && CanReparent(); -} - -void wxFrameLayout::Activate() -{ - HookUpToFrame(); - - RefreshNow( TRUE ); - - ShowFloatedWindows( TRUE ); -} - -void wxFrameLayout::Deactivate() -{ - ShowFloatedWindows( FALSE ); - - UnhookFromFrame(); - - HideBarWindows(); -} - -void wxFrameLayout::SetFrameClient( wxWindow* pFrameClient ) -{ - mpFrameClient = pFrameClient; -} - -wxWindow* wxFrameLayout::GetFrameClient() -{ - return mpFrameClient; -} - -cbUpdatesManagerBase& wxFrameLayout::GetUpdatesManager() -{ - if ( !mpUpdatesMgr ) mpUpdatesMgr = CreateUpdatesManager(); - - return *mpUpdatesMgr; -} - -void wxFrameLayout::SetUpdatesManager( cbUpdatesManagerBase* pUMgr ) -{ - if ( mpUpdatesMgr ) delete mpUpdatesMgr; - - mpUpdatesMgr = pUMgr; - - mpUpdatesMgr->SetLayout( this ); -} - -cbUpdatesManagerBase* wxFrameLayout::CreateUpdatesManager() -{ - return new cbGCUpdatesMgr( this ); - //return new cbSimpleUpdatesMgr( this ); -} - -void wxFrameLayout::AddBar( wxWindow* pBarWnd, - cbDimInfo& dimInfo, - - int alignment, - int rowNo, - int columnPos, - const wxString& name, - bool spyEvents, - int state - ) -{ - if ( pBarWnd && spyEvents ) - { - // hook up spy to bar window - cbBarSpy* pSpy = new cbBarSpy( this ); - - pSpy->SetBarWindow( pBarWnd ); - pBarWnd->PushEventHandler( pSpy ); - - mBarSpyList.Append( pSpy ); - } - - cbBarInfo* pInfo = new cbBarInfo(); - - pInfo->mName = name; - pInfo->mpBarWnd = pBarWnd; - pInfo->mDimInfo = dimInfo; - pInfo->mState = state; - pInfo->mAlignment = alignment; - pInfo->mRowNo = rowNo; - pInfo->mBounds.x = columnPos; - - mAllBars.Add( pInfo ); - - DoSetBarState( pInfo ); -} - -bool wxFrameLayout::RedockBar( cbBarInfo* pBar, - const wxRect& shapeInParent, - cbDockPane* pToPane, - bool updateNow ) -{ - if ( !pToPane ) - - pToPane = HitTestPanes( shapeInParent, NULL ); - - if ( !pToPane ) - - return FALSE; // bar's shape does not hit any pane - // - redocking is NOT posssible - - cbDockPane* pBarPane = GetBarPane( pBar ); - - if ( updateNow ) - - GetUpdatesManager().OnStartChanges(); - - pBarPane->RemoveBar( pBar ); - - // FIXME FIXME:: the below recalc. may be a *huge* performance - // hit, it could be eliminated though... - // but first the "pane-postion-changed" problem - // have to be fixed - - RecalcLayout( FALSE ); - - pToPane->InsertBar( pBar, shapeInParent ); - - RecalcLayout( FALSE ); - - // finish update "transaction" - - if ( updateNow ) - { - GetUpdatesManager().OnFinishChanges(); - GetUpdatesManager().UpdateNow(); - } - - return TRUE; -} - -cbBarInfo* wxFrameLayout::FindBarByName( const wxString& name ) -{ - for( size_t i = 0; i != mAllBars.Count(); ++i ) - - if ( mAllBars[i]->mName == name ) - - return mAllBars[i]; - - return NULL; -} - -BarArrayT& wxFrameLayout::GetBars() -{ - return mAllBars; -} - -void wxFrameLayout::SetBarState( cbBarInfo* pBar, int newState, bool updateNow ) -{ - if ( newState == wxCBAR_FLOATING && !mFloatingOn ) - - return; - - if ( updateNow ) - - GetUpdatesManager().OnStartChanges(); - - pBar->mUMgrData.SetDirty(TRUE); - - // check bar's previous state - - if ( pBar->mState != wxCBAR_HIDDEN && pBar->mState != wxCBAR_FLOATING ) - { - cbDockPane* pPane; - cbRowInfo* pRow; - - bool success = LocateBar( pBar, &pRow, &pPane ); - - wxASSERT( success ); // DBG:: - - // save LRU-dim info before removing bar - - pBar->mDimInfo.mLRUPane = pPane->GetAlignment(); - pBar->mDimInfo.mBounds[ pPane->GetAlignment() ] = pBar->mBounds; - - // remove it from the pane it was docked on - - pPane->RemoveBar( pBar ); - - } - - if ( pBar->mState == wxCBAR_FLOATING && newState != wxCBAR_FLOATING ) - { - // remove bar's window form the containing mini-frame - // and set it's parent to be layout's parent frame - - if ( pBar->mpBarWnd ) - { - pBar->mpBarWnd->Show(FALSE); // to avoid flicker upon reparenting - - wxNode* pNode = mFloatedFrames.First(); - - while( pNode ) - { - cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->Data()); - - if ( pFFrm->GetBar() == pBar ) - { - pFFrm->Show( FALSE ); // reduces flicker sligthly - - ReparentWindow( pBar->mpBarWnd, &GetParentFrame() ); - - pBar->mBounds = pBar->mDimInfo.mBounds[ pBar->mDimInfo.mLRUPane ]; - - if ( newState != wxCBAR_HIDDEN ) - - pBar->mAlignment = pBar->mDimInfo.mLRUPane; - - mFloatedFrames.DeleteNode( pNode ); - - pFFrm->Show( FALSE ); - pFFrm->Destroy(); break; - } - - pNode = pNode->Next(); - } - - // FOR NOW:: excessive! - //if ( mpFrameClient ) mpFrameClient->Refresh(); - if ( mpFrameClient ) mClientWndRefreshPending = TRUE; - } - } - - pBar->mState = newState; - - DoSetBarState( pBar ); - - if ( updateNow ) - { - RecalcLayout(FALSE); - - GetUpdatesManager().OnFinishChanges(); - GetUpdatesManager().UpdateNow(); - } -} - -void wxFrameLayout::ApplyBarProperties( cbBarInfo* pBar ) -{ - if ( pBar->mState == wxCBAR_FLOATING ) - { - RepositionFloatedBar( pBar ); - } - else - if ( pBar->mState == wxCBAR_DOCKED_HORIZONTALLY || - pBar->mState == wxCBAR_DOCKED_VERTICALLY - ) - { - // FOR NOW:: nothing - } - -} - -void wxFrameLayout::RepositionFloatedBar( cbBarInfo* pBar ) -{ - if ( !mFloatingOn ) return; - - wxNode* pNode = mFloatedFrames.First(); - - while( pNode ) - { - cbFloatedBarWindow* pFFrm = ((cbFloatedBarWindow*)pNode->Data()); - - if ( pFFrm->GetBar() == pBar ) - { - wxRect& bounds = pBar->mDimInfo.mBounds[wxCBAR_FLOATING]; - - int x = bounds.x, - y = bounds.y; - - GetParentFrame().ClientToScreen( &x, &y ); - - pFFrm->PositionFloatedWnd( x,y, - bounds.width, - bounds.height ); - - break; - } - - pNode = pNode->Next(); - } -} - -void wxFrameLayout::DoSetBarState( cbBarInfo* pBar ) -{ - if ( pBar->mState != wxCBAR_FLOATING && - pBar->mState != wxCBAR_HIDDEN ) - - // dock it - - mPanes[pBar->mAlignment]->InsertBar( pBar ); - else - if ( pBar->mState == wxCBAR_HIDDEN ) - { - // hide it - - if ( pBar->mpBarWnd ) - - pBar->mpBarWnd->Show( FALSE ); - } - else - { - if ( !mFloatingOn ) return; - - // float it - - if ( pBar->mpBarWnd == NULL || !CanReparent() ) - { - // FOR NOW:: just hide it - - if ( pBar->mpBarWnd ) - - pBar->mpBarWnd->Show( FALSE ); - - pBar->mState == wxCBAR_HIDDEN; - - return; - } - - cbFloatedBarWindow* pMiniFrm = new cbFloatedBarWindow(); - - pMiniFrm->SetBar( pBar ); - pMiniFrm->SetLayout( this ); - - pMiniFrm->Create( &GetParentFrame(), -1, pBar->mName, - wxPoint( 50,50 ), - wxSize ( 0, 0 ), - wxSTAY_ON_TOP //| wxTHICK_FRAME - ); - - pMiniFrm->SetClient( pBar->mpBarWnd ); - - ReparentWindow( pBar->mpBarWnd, pMiniFrm ); - - mFloatedFrames.Append( pMiniFrm ); - - wxRect& bounds = pBar->mDimInfo.mBounds[wxCBAR_FLOATING]; - - // check if it wasn't floated anytime before - - if ( bounds.width == -1 ) - { - wxRect& clntRect = GetClientRect(); - - // adjust position into which the next floated bar will be placed - - if ( mNextFloatedWndPos.x + bounds.width > clntRect.width ) - - mNextFloatedWndPos.x = mFloatingPosStep.x; - - if ( mNextFloatedWndPos.y + bounds.height > clntRect.height ) - - mNextFloatedWndPos.y = mFloatingPosStep.y; - - bounds.x = mNextFloatedWndPos.x + clntRect.x; - bounds.y = mNextFloatedWndPos.y + clntRect.y; - - bounds.width = pBar->mDimInfo.mSizes[wxCBAR_FLOATING].x; - bounds.height = pBar->mDimInfo.mSizes[wxCBAR_FLOATING].y; - - mNextFloatedWndPos.x += mFloatingPosStep.x; - mNextFloatedWndPos.y += mFloatingPosStep.y; - } - - pMiniFrm->Show( TRUE ); - - // FIXME:: this is excessive - pBar->mpBarWnd->Show(TRUE); - } -} - -void wxFrameLayout::RemoveBar( cbBarInfo* pBarInfo ) -{ - // first, try to "guess" what was the perviouse state of the bar - - cbDockPane* pPane; - cbRowInfo* pRow; - - if ( LocateBar( pBarInfo, &pRow, &pPane ) ) - { - // ...aha, bar was docked into one of the panes, - // remove it from there - - pPane->RemoveBar( pBarInfo ); - } - - for( size_t i = 0; i != mAllBars.Count(); ++i ) - - if ( mAllBars[i] == pBarInfo ) - { - mAllBars.Remove( i ); - - if ( pBarInfo->mpBarWnd ) // hides it's window - - pBarInfo->mpBarWnd->Show( FALSE ); - - delete pBarInfo; - - return; - } - - wxASSERT(0); // DBG:: bar info should be present in the list of all bars of all panes - -} - -bool wxFrameLayout::LocateBar( cbBarInfo* pBarInfo, - cbRowInfo** ppRow, - cbDockPane** ppPane ) -{ - (*ppRow) = NULL; - (*ppPane) = NULL; - - for( int n = 0; n != MAX_PANES; ++n ) - { - wxBarIterator i( mPanes[n]->GetRowList() ); - - while( i.Next() ) - - if ( &i.BarInfo() == pBarInfo ) - { - (*ppPane) = mPanes[n]; - (*ppRow ) = &i.RowInfo(); - - return TRUE; - } - } - - return FALSE; -} - -void wxFrameLayout::RecalcLayout( bool repositionBarsNow ) -{ - mRecalcPending = FALSE; - - int frmWidth, frmHeight; - mpFrame->GetClientSize( &frmWidth, &frmHeight ); - int paneHeight = 0; - - int curY = 0; - int curX = 0; - wxRect rect; - - // pane positioning priorities in decreasing order: - // top, bottom, left, right - - // setup TOP pane - - cbDockPane* pPane = mPanes[ wxTOP ]; - wxSize paneSize; - - pPane->SetPaneWidth( frmWidth ); - pPane->RecalcLayout(); - - paneHeight = pPane->GetPaneHeight(); - - rect.x = curX; - rect.y = curY; - rect.width = frmWidth; - rect.height = wxMin( paneHeight, frmHeight - curY ); - - pPane->SetBoundsInParent( rect ); - - curY += paneHeight; - - // setup BOTTOM pane - - pPane = mPanes[ wxBOTTOM ]; - - pPane->SetPaneWidth( frmWidth ); - pPane->RecalcLayout(); - - paneHeight = pPane->GetPaneHeight(); - - rect.x = curX; - rect.y = wxMax( frmHeight - paneHeight, curY ); - rect.width = frmWidth; - rect.height = frmHeight - rect.y; - - pPane->SetBoundsInParent( rect ); - - // setup LEFT pane - - pPane = mPanes[ wxLEFT ]; - - // bottom pane's y - pPane->SetPaneWidth( rect.y - curY ); - - pPane->RecalcLayout(); - paneHeight = pPane->GetPaneHeight(); - - // bottom rect's y - rect.height = rect.y - curY; - rect.x = curX; - rect.y = curY; - rect.width = wxMin( paneHeight, frmWidth ); - - pPane->SetBoundsInParent( rect ); - - curX += rect.width; - - // setup RIGHT pane - - pPane = mPanes[ wxRIGHT ]; - - // left pane's height - pPane->SetPaneWidth( rect.height ); - - pPane->RecalcLayout(); - paneHeight = pPane->GetPaneHeight(); - - // left pane's height - rect.height = rect.height; - rect.x = wxMax( frmWidth - paneHeight, curX ); - rect.y = curY; - rect.width = frmWidth - rect.x; - - pPane->SetBoundsInParent( rect ); - - // recalc bounds of the client-window - - mClntWndBounds.x = mPanes[wxLEFT]->mBoundsInParent.x + - mPanes[wxLEFT]->mBoundsInParent.width; - mClntWndBounds.y = mPanes[wxTOP ]->mBoundsInParent.y + - mPanes[wxTOP ]->mBoundsInParent.height; - - mClntWndBounds.width = mPanes[wxRIGHT]->mBoundsInParent.x - - mClntWndBounds.x; - mClntWndBounds.height = mPanes[wxBOTTOM]->mBoundsInParent.y - - mClntWndBounds.y; - - if ( repositionBarsNow ) - - PositionPanes(); -} - -int wxFrameLayout::GetClientHeight() -{ - // for better portablility wxWindow::GetSzie() is not used here - - return mClntWndBounds.height; -} - -int wxFrameLayout::GetClientWidth() -{ - // for better portablility wxWindow::GetSzie() is not used here - - return mClntWndBounds.width; -} - -void wxFrameLayout::PositionClientWindow() -{ - if ( mpFrameClient ) - { - if ( mClntWndBounds.width >= 1 && mClntWndBounds.height >= 1 ) - { - mpFrameClient->SetSize( mClntWndBounds.x, mClntWndBounds.y, - mClntWndBounds.width, mClntWndBounds.height, 0 ); - - if ( !mpFrameClient->IsShown() ) - - mpFrameClient->Show( TRUE ); - } - else - mpFrameClient->Show( FALSE ); - } -} - -void wxFrameLayout::PositionPanes() -{ - PositionClientWindow(); - - // FOR NOW:: excessive updates! - // reposition bars within all panes - - for( int i = 0; i != MAX_PANES; ++i ) - - mPanes[i]->SizePaneObjects(); -} - -void wxFrameLayout::OnSize( wxSizeEvent& event ) -{ - if ( event.GetEventObject() == (wxObject*) mpFrame ) - - RecalcLayout(TRUE); -} - -/*** protected members ***/ - -void wxFrameLayout::HideBarWindows() -{ - for( size_t i = 0; i != mAllBars.Count(); ++i ) - - if ( mAllBars[i]->mpBarWnd && mAllBars[i]->mState != wxCBAR_FLOATING ) - - mAllBars[i]->mpBarWnd->Show( FALSE ); - - // then floated frames - - ShowFloatedWindows( FALSE ); - - if ( mpFrameClient ) - - mpFrameClient->Show( FALSE ); -} - -void wxFrameLayout::UnhookFromFrame() -{ - // NOTE:: the SetEvtHandlerEnabled() method is not used - // here, since it is assumed, that unhooking layout - // from window may result destroying of the layout itself - // - // BUG BUG BUG (wx):: this would not be a problem if - // wxEvtHandler's destructor would check if - // this handler is currently the top-most - // handler of some window, and additionally - // to the reconnecting itself from the chain - // it would also re-setup current event handler - // of the window using wxWindow::SetEventHandler() - - // FOR NOW:: - - if ( mpFrame->GetEventHandler() == this ) - - mpFrame->PopEventHandler(); - - return; - - if ( mpFrame ) - { - if ( this == mpFrame->GetEventHandler() ) - - mpFrame->SetEventHandler( this->GetNextHandler() ); - else - { - wxEvtHandler* pCur = mpFrame->GetEventHandler(); - - while( pCur ) - { - if ( pCur == this ); break; - - pCur = pCur->GetNextHandler(); - } - - // do not try to unhook ourselves if we're not hooked yet - if ( !pCur ) return; - } - - if ( GetPreviousHandler() ) - - GetPreviousHandler()->SetNextHandler( GetNextHandler() ); - else - { - mpFrame->PopEventHandler(); - return; - } - - - if ( GetNextHandler() ) - - GetNextHandler()->SetPreviousHandler( GetPreviousHandler() ); - - SetNextHandler( NULL ); - SetPreviousHandler( NULL ); - } -} - -void wxFrameLayout::HookUpToFrame() -{ - // unhook us first, we're already hooked up - - UnhookFromFrame(); - - // put ourselves on top - - mpFrame->PushEventHandler( this ); -} - -cbDockPane* wxFrameLayout::GetBarPane( cbBarInfo* pBar ) -{ - for( int i = 0; i != MAX_PANES; ++i ) - - if ( mPanes[i]->BarPresent( pBar ) ) return mPanes[i]; - - return NULL; -} - -void wxFrameLayout::CreateCursors() -{ - /* - // FIXME:: the below code somehow doesn't work - curosors ramain unchaged - char bits[64]; - - set_cursor_bits( _gHorizCursorImg, bits, 32, 16 ); - - mpHorizCursor = new wxCursor( bits, 32, 16 ); - - set_cursor_bits( _gVertCursorImg, bits, 32, 16 ); - - mpVertCursor = new wxCursor( bits, 32, 16 ); - */ - - // FOR NOW:: use standard ones - - mpHorizCursor = new wxCursor(wxCURSOR_SIZEWE); - mpVertCursor = new wxCursor(wxCURSOR_SIZENS); - mpNormalCursor = new wxCursor(wxCURSOR_ARROW ); - mpDragCursor = new wxCursor(wxCURSOR_CROSS ); - mpNECursor = new wxCursor(wxCURSOR_NO_ENTRY); - - mFloatingPosStep.x = 25; - mFloatingPosStep.y = 25; - - mNextFloatedWndPos.x = mFloatingPosStep.x; - mNextFloatedWndPos.y = mFloatingPosStep.y; -} - -bool wxFrameLayout::HitTestPane( cbDockPane* pPane, int x, int y ) -{ - return rect_contains_point( pPane->GetRealRect(), x, y ); -} - -cbDockPane* wxFrameLayout::HitTestPanes( const wxRect& rect, - cbDockPane* pCurPane ) -{ - // first, give the privilege to the current pane - - if ( pCurPane && rect_hits_rect( pCurPane->GetRealRect(), rect ) ) - - return pCurPane; - - for( int i = 0; i != MAX_PANES; ++i ) - - if ( pCurPane != mPanes[i] && - rect_hits_rect( mPanes[i]->GetRealRect(), rect ) ) - - return mPanes[i]; - - return 0; -} - -void wxFrameLayout::ForwardMouseEvent( wxMouseEvent& event, - cbDockPane* pToPane, - int eventType ) -{ - wxPoint pos( event.m_x, event.m_y ); - pToPane->FrameToPane( &pos.x, &pos.y ); - - switch ( eventType ) - { - case cbEVT_PL_LEFT_DOWN : { cbLeftDownEvent evt( pos, pToPane ); - FirePluginEvent( evt ); break; - } - - case cbEVT_PL_LEFT_DCLICK:{ cbLeftDClickEvent evt( pos, pToPane ); - FirePluginEvent( evt ); break; - } - - case cbEVT_PL_LEFT_UP : { cbLeftUpEvent evt( pos, pToPane ); - FirePluginEvent( evt ); break; - } - - case cbEVT_PL_RIGHT_DOWN: { cbRightDownEvent evt( pos, pToPane ); - FirePluginEvent( evt ); break; - } - - case cbEVT_PL_RIGHT_UP : { cbRightUpEvent evt( pos, pToPane ); - FirePluginEvent( evt ); break; - } - - case cbEVT_PL_MOTION : { cbMotionEvent evt( pos, pToPane ); - FirePluginEvent( evt ); break; - } - - default : wxASSERT(0); // DBG:: - } -} - - -void wxFrameLayout::RouteMouseEvent( wxMouseEvent& event, int pluginEvtType ) -{ - if ( mpPaneInFocus ) - - ForwardMouseEvent( event, mpPaneInFocus, pluginEvtType ); - else - for( int i = 0; i != MAX_PANES; ++i ) - - if ( HitTestPane( mPanes[i], event.m_x, event.m_y ) ) - { - ForwardMouseEvent( event, mPanes[i], pluginEvtType ); - - return; - } -} - -/*** event handlers ***/ - -void wxFrameLayout::OnRButtonDown( wxMouseEvent& event ) -{ - RouteMouseEvent( event, cbEVT_PL_RIGHT_DOWN ); -} - -void wxFrameLayout::OnRButtonUp( wxMouseEvent& event ) -{ - RouteMouseEvent( event, cbEVT_PL_RIGHT_UP ); -} - -void wxFrameLayout::OnLButtonDown( wxMouseEvent& event ) -{ - RouteMouseEvent( event, cbEVT_PL_LEFT_DOWN ); -} - -void wxFrameLayout::OnLDblClick( wxMouseEvent& event ) -{ - RouteMouseEvent( event, cbEVT_PL_LEFT_DCLICK ); -} - -void wxFrameLayout::OnLButtonUp( wxMouseEvent& event ) -{ - RouteMouseEvent( event, cbEVT_PL_LEFT_UP ); -} - -void wxFrameLayout::OnMouseMove( wxMouseEvent& event ) -{ - if ( mpPaneInFocus ) - - ForwardMouseEvent( event, mpPaneInFocus, cbEVT_PL_MOTION ); - else - for( int i = 0; i != MAX_PANES; ++i ) - - if ( HitTestPane( mPanes[i], event.m_x, event.m_y ) ) - { - if ( mpLRUPane && mpLRUPane != mPanes[i] ) - { - // simulate "mouse-leave" event - ForwardMouseEvent( event, mpLRUPane, cbEVT_PL_MOTION ); - } - - ForwardMouseEvent( event, mPanes[i], cbEVT_PL_MOTION ); - - mpLRUPane = mPanes[i]; - - return; - } - - if ( mpLRUPane ) - { - // simulate "mouse-leave" event - ForwardMouseEvent( event, mpLRUPane, cbEVT_PL_MOTION ); - mpLRUPane = 0; - } -} - -void wxFrameLayout::OnPaint( wxPaintEvent& event ) -{ - if ( mRecalcPending ) - - RecalcLayout( TRUE ); - - wxPaintDC dc(mpFrame); - - for( int i = 0; i != MAX_PANES; ++i ) - { - wxRect& rect = mPanes[i]->mBoundsInParent; - - dc.SetClippingRegion( rect.x, rect.y, rect.width, rect.height ); - - mPanes[i]->PaintPane(dc); - - dc.DestroyClippingRegion(); - } - - event.Skip(); -} - -void wxFrameLayout::OnEraseBackground( wxEraseEvent& event ) -{ - // do nothing -} - -void wxFrameLayout::OnIdle( wxIdleEvent& event ) -{ - wxWindow* focus = wxWindow::FindFocus(); - - if ( !focus && mCheckFocusWhenIdle ) - { - wxMessageBox( "Hi, no more focus in this app!" ); - - mCheckFocusWhenIdle = FALSE; - //ShowFloatedWindows( FALSE ); - } - - mCheckFocusWhenIdle = FALSE; - - event.Skip(); -} - - -void wxFrameLayout::OnKillFocus( wxFocusEvent& event ) -{ - //wxMessageBox( "wxFrameLayoutGot Kill Focus!" ); - //ShowFloatedWindows( FALSE ); -} - -void wxFrameLayout::OnSetFocus( wxFocusEvent& event ) -{ - //ShowFloatedWindows( TRUE ); -} - -void wxFrameLayout::OnActivate( wxActivateEvent& event ) -{ -#if 0 - if ( event.GetActive() == FALSE ) - { - wxWindow* focus = wxWindow::FindFocus(); - - if ( !focus || focus == &GetParentFrame() ) - { - mCheckFocusWhenIdle = TRUE; - - if ( !focus ) - - wxMessageBox("Deactivated!" ); - - } - } -#endif -} - -void wxFrameLayout::GetPaneProperties( cbCommonPaneProperties& props, int alignment ) -{ - props = mPanes[alignment]->mProps; -} - -void wxFrameLayout::SetPaneProperties( const cbCommonPaneProperties& props, int paneMask ) -{ - for( int i = 0; i != MAX_PANES; ++i ) - - if ( mPanes[i]->MatchesMask( paneMask ) ) - - mPanes[i]->mProps = props; -} - -void wxFrameLayout::SetMargins( int top, int bottom, int left, int right, - int paneMask ) -{ - for( int i = 0; i != MAX_PANES; ++i ) - { - cbDockPane& pane = *mPanes[i]; - - if ( pane.MatchesMask( paneMask ) ) - { - pane.mTopMargin = top; - pane.mBottomMargin = bottom; - pane.mLeftMargin = left; - pane.mRightMargin = right; - } - } -} - -void wxFrameLayout::SetPaneBackground( const wxColour& colour ) -{ - mBorderPen.SetColour( colour ); -} - -void wxFrameLayout::RefreshNow( bool recalcLayout ) -{ - if ( recalcLayout ) RecalcLayout( TRUE ); - - if ( mpFrame ) mpFrame->Refresh(); -} - -/*** plugin-related methods ***/ - -void wxFrameLayout::FirePluginEvent( cbPluginEvent& event ) -{ - // check state of input capture, before processing the event - - if ( mpCaputesInput ) - { - bool isInputEvt = TRUE; - - switch ( event.m_eventType ) - { - case cbEVT_PL_LEFT_DOWN : break; - case cbEVT_PL_LEFT_UP : break; - case cbEVT_PL_RIGHT_DOWN : break; - case cbEVT_PL_RIGHT_UP : break; - case cbEVT_PL_MOTION : break; - - default : isInputEvt = FALSE; break; - } - - if ( isInputEvt ) - { - mpCaputesInput->ProcessEvent( event ); - return; - } - } - - GetTopPlugin().ProcessEvent( event ); -} - -void wxFrameLayout::CaptureEventsForPlugin ( cbPluginBase* pPlugin ) -{ - // cannot capture events for more than one plugin at a time - wxASSERT( mpCaputesInput == NULL ); - - mpCaputesInput = pPlugin; - -} - -void wxFrameLayout::ReleaseEventsFromPlugin( cbPluginBase* pPlugin ) -{ - // events should be captured first - wxASSERT( mpCaputesInput != NULL ); - - mpCaputesInput = NULL; -} - -void wxFrameLayout::CaptureEventsForPane( cbDockPane* toPane ) -{ - // cannot capture events twice (without releasing) - wxASSERT( mpPaneInFocus == NULL ); - - mpFrame->CaptureMouse(); - - mpPaneInFocus = toPane; -} - -void wxFrameLayout::ReleaseEventsFromPane( cbDockPane* fromPane ) -{ - // cannot release events without capturing them - wxASSERT( mpPaneInFocus != NULL ); - - mpFrame->ReleaseMouse(); - - mpPaneInFocus = NULL; -} - -cbPluginBase& wxFrameLayout::GetTopPlugin() -{ - if ( !mpTopPlugin ) - - PushDefaultPlugins(); // automatic configuration - - return *mpTopPlugin; -} - -void wxFrameLayout::SetTopPlugin( cbPluginBase* pPlugin ) -{ - mpTopPlugin = pPlugin; -} - -bool wxFrameLayout::HasTopPlugin() -{ - return ( mpTopPlugin != NULL ); -} - -void wxFrameLayout::PushPlugin( cbPluginBase* pPlugin ) -{ - if ( !mpTopPlugin ) - - mpTopPlugin = pPlugin; - else - { - pPlugin->SetNextHandler( mpTopPlugin ); - - mpTopPlugin->SetPreviousHandler( pPlugin ); - - mpTopPlugin = pPlugin; - } - - mpTopPlugin->OnInitPlugin(); // notification -} - -void wxFrameLayout::PopPlugin() -{ - wxASSERT( mpTopPlugin ); // DBG:: at least one plugin should be present - - cbPluginBase* pPopped = mpTopPlugin; - - mpTopPlugin = (cbPluginBase*)mpTopPlugin->GetNextHandler(); - - delete pPopped; -} - -void wxFrameLayout::PopAllPlugins() -{ - while( mpTopPlugin ) PopPlugin(); -} - -void wxFrameLayout::PushDefaultPlugins() -{ - // FIXME:: to much of the stuff for the default... - - AddPlugin( CLASSINFO( cbRowLayoutPlugin ) ); - AddPlugin( CLASSINFO( cbBarDragPlugin ) ); - AddPlugin( CLASSINFO( cbPaneDrawPlugin ) ); -} - -void wxFrameLayout::AddPlugin( wxClassInfo* pPlInfo, int paneMask ) -{ - if ( FindPlugin ( pPlInfo ) ) return; // same type of plugin cannot be added twice - - cbPluginBase* pObj = (cbPluginBase*)pPlInfo->CreateObject(); - - wxASSERT(pObj); // DBG:: plugin's class should be dynamic - - pObj->mPaneMask = paneMask; - pObj->mpLayout = this; - - PushPlugin( pObj ); -} - -void wxFrameLayout::AddPluginBefore( wxClassInfo* pNextPlInfo, wxClassInfo* pPlInfo, - int paneMask ) -{ - wxASSERT( pNextPlInfo != pPlInfo ); // DBG:: no sence - - cbPluginBase* pNextPl = FindPlugin( pNextPlInfo ); - - if ( !pNextPl ) - { - AddPlugin( pPlInfo, paneMask ); - - return; - } - - // remove existing one if present - - cbPluginBase* pExistingPl = FindPlugin( pPlInfo ); - - if ( pExistingPl ) RemovePlugin( pPlInfo ); - - // create an instance - - cbPluginBase* pNewPl = (cbPluginBase*)pPlInfo->CreateObject(); - - wxASSERT(pNewPl); // DBG:: plugin's class should be dynamic - - // insert it to the chain - - if ( pNextPl->GetPreviousHandler() ) - - pNextPl->GetPreviousHandler()->SetNextHandler( pNewPl ); - else - mpTopPlugin = pNewPl; - - pNewPl->SetNextHandler( pNextPl ); - - pNewPl->SetPreviousHandler( pNextPl->GetPreviousHandler() ); - - pNextPl->SetPreviousHandler( pNewPl ); - - // set it up - - pNewPl->mPaneMask = paneMask; - pNewPl->mpLayout = this; - - pNewPl->OnInitPlugin(); -} - -void wxFrameLayout::RemovePlugin( wxClassInfo* pPlInfo ) -{ - cbPluginBase* pPlugin = FindPlugin( pPlInfo ); - - if ( !pPlugin ) return; // it's OK to remove not-existing plugin ;-) - - if ( pPlugin->GetPreviousHandler() == NULL ) - - mpTopPlugin = (cbPluginBase*)pPlugin->GetNextHandler(); - - delete pPlugin; -} - -cbPluginBase* wxFrameLayout::FindPlugin( wxClassInfo* pPlInfo ) -{ - cbPluginBase *pCur = mpTopPlugin; - - while( pCur ) - { - // NOTE:: it might appear usefull matching plugin - // classes "polymorphically": - - if ( pCur->GetClassInfo()->IsKindOf( pPlInfo ) ) - - return pCur; - - pCur = (cbPluginBase*)pCur->GetNextHandler(); - } - - return NULL; -} - -/***** Implementation for class cbUpdateMgrData *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbUpdateMgrData, wxObject ) - -cbUpdateMgrData::cbUpdateMgrData() - - : mPrevBounds( -1,-1,0,0 ), - mIsDirty( TRUE ) // inidicate initial change -{} - -void cbUpdateMgrData::StoreItemState( const wxRect& boundsInParent ) -{ - mPrevBounds = boundsInParent; -} - -void cbUpdateMgrData::SetDirty( bool isDirty ) -{ - mIsDirty = isDirty; -} - -void cbUpdateMgrData::SetCustomData( wxObject* pCustomData ) -{ - mpCustomData = pCustomData; -} - -/***** Implementation for class cbDockPane *****/ - -void wxBarIterator::Reset() -{ - mpRow = ( mpRows->Count() ) ? (*mpRows)[0] : NULL; - mpBar = NULL; -} - -wxBarIterator::wxBarIterator( RowArrayT& rows ) - - : mpRow ( NULL ), - mpBar ( NULL ), - mpRows( &rows ) -{ - Reset(); -} - -bool wxBarIterator::Next() -{ - if( mpRow ) - { - if( mpBar ) - mpBar = mpBar->mpNext; - else - { - if ( mpRow->mBars.GetCount() == 0 ) - { - return FALSE; - } - - mpBar = mpRow->mBars[0]; - } - - if ( !mpBar ) - { - // skip to the next row - - mpRow = mpRow->mpNext; - - if ( mpRow ) - - mpBar = mpRow->mBars[0]; - else - return FALSE; - } - - return TRUE; - } - else - return FALSE; -} - -cbBarInfo& wxBarIterator::BarInfo() -{ - return *mpBar; -} - -cbRowInfo& wxBarIterator::RowInfo() -{ - return *mpRow; -} - -/***** Implementation for class cbBarDimHandlerBase *****/ - -IMPLEMENT_ABSTRACT_CLASS( cbBarDimHandlerBase, wxObject ) - -cbBarDimHandlerBase::cbBarDimHandlerBase() - : mRefCount(0) -{} - -void cbBarDimHandlerBase::AddRef() -{ - ++mRefCount; -} - -void cbBarDimHandlerBase::RemoveRef() -{ - if ( --mRefCount <= 0 ) delete this; -} - -/***** Implementation for class cbDimInfo *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbDimInfo, wxObject ) - -cbDimInfo::cbDimInfo() - - : mIsFixed(TRUE), - mpHandler( NULL ), - - mHorizGap( 0 ), - mVertGap ( 0 ) -{ - for( size_t i = 0; i != MAX_BAR_STATES; ++i ) - { - mSizes[i].x = 20; - mSizes[i].y = 20; - - mBounds[i] = wxRect( -1,-1,-1,-1 ); - } -} - -cbDimInfo::cbDimInfo( cbBarDimHandlerBase* pDimHandler, - bool isFixed ) - - : mHorizGap( 0 ), - mVertGap ( 0 ), - mIsFixed ( isFixed ), - - mpHandler( pDimHandler ) -{ - if ( mpHandler ) - { - int vtad = *((int*)mpHandler); - mpHandler->AddRef(); - } - - for( size_t i = 0; i != MAX_BAR_STATES; ++i ) - { - mSizes[i].x = -1; - mSizes[i].y = -1; - - mBounds[i] = wxRect( -1,-1,-1,-1 ); - } -} - -cbDimInfo::cbDimInfo( int dh_x, int dh_y, - int dv_x, int dv_y, - int f_x, int f_y, - - bool isFixed, - int horizGap, - int vertGap, - - cbBarDimHandlerBase* pDimHandler - ) - : mHorizGap ( horizGap ), - mVertGap ( vertGap ), - mIsFixed ( isFixed ), - mpHandler( pDimHandler ) -{ - if ( mpHandler ) - { - int vtad = *((int*)mpHandler); - mpHandler->AddRef(); - } - - - mSizes[wxCBAR_DOCKED_HORIZONTALLY].x = dh_x; - mSizes[wxCBAR_DOCKED_HORIZONTALLY].y = dh_y; - mSizes[wxCBAR_DOCKED_VERTICALLY ].x = dv_x; - mSizes[wxCBAR_DOCKED_VERTICALLY ].y = dv_y; - mSizes[wxCBAR_FLOATING ].x = f_x; - mSizes[wxCBAR_FLOATING ].y = f_y; - - - for( size_t i = 0; i != MAX_BAR_STATES; ++i ) - - mBounds[i] = wxRect( -1,-1,-1,-1 ); -} - -cbDimInfo::~cbDimInfo() -{ - if ( mpHandler ) - - mpHandler->RemoveRef(); -} - -const cbDimInfo& cbDimInfo::operator=( cbDimInfo& other ) -{ - if ( this == &other ) return *this; - - for( int i = 0; i != MAX_BAR_STATES; ++i ) - - mSizes[i] = other.mSizes[i]; - - mIsFixed = other.mIsFixed; - mpHandler = other.mpHandler; - - mVertGap = other.mVertGap; - mHorizGap = other.mHorizGap; - - if ( mpHandler ) - - mpHandler->AddRef(); - - return *this; -} - -/***** Implementation for structure cbCommonPaneProperties *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbCommonPaneProperties, wxObject ) - -cbCommonPaneProperties::cbCommonPaneProperties(void) - - : mRealTimeUpdatesOn ( TRUE ), - mOutOfPaneDragOn ( TRUE ), - mExactDockPredictionOn( FALSE ), - mNonDestructFirctionOn( FALSE ), - mShow3DPaneBorderOn ( TRUE ), - mBarFloatingOn ( FALSE ), - mRowProportionsOn ( FALSE ), - mColProportionsOn ( TRUE ), - mBarCollapseIconsOn ( FALSE ), - mBarDragHintsOn ( FALSE ), - - mMinCBarDim( 16, 16 ), - mResizeHandleSize( 4 ) -{} - -/***** Implementation for class cbRowInfo *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbRowInfo, wxObject ) - -cbRowInfo::cbRowInfo(void) - - : mpNext ( NULL ), - mpPrev ( NULL ), - mNotFixedBarsCnt( FALSE ), - mpExpandedBar ( NULL ) -{} - -cbRowInfo::~cbRowInfo() -{ - // nothing! all bars are removed using global bar - // list in wxFrameLayout class -} - -/***** Implementation for class cbBarInfo *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbBarInfo, wxObject ) - -cbBarInfo::cbBarInfo(void) - - : mpRow( NULL ), - - mpNext( NULL ), - mpPrev( NULL ) -{} - -cbBarInfo::~cbBarInfo() -{ - // nothing -} - -/***** Implementation for class cbDockPane *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbDockPane, wxObject ) - -// FIXME:: how to eliminate these cut&pasted constructors? - -cbDockPane::cbDockPane(void) - - : mpLayout ( 0 ), - mPaneWidth ( 32768 ), // fake-up very large pane dims, - // since the real dimensions of the pane may not - // be known, while inserting bars initially - mPaneHeight( 32768 ), - mAlignment ( -1 ), - mpStoredRow( NULL ), - mLeftMargin ( 1 ), - mRightMargin ( 1 ), - mTopMargin ( 1 ), - mBottomMargin( 1 ) -{} - -cbDockPane::cbDockPane( int alignment, wxFrameLayout* pPanel ) - - : mpLayout ( pPanel ), - mPaneWidth ( 32768 ), // fake-up very large pane dims, - // since the real dimensions of the pane may not - // be known, while inserting bars initially - mPaneHeight( 32768 ), - mAlignment ( alignment ), - mpStoredRow( NULL ), - - mLeftMargin ( 1 ), - mRightMargin ( 1 ), - mTopMargin ( 1 ), - mBottomMargin( 1 ) -{} - -cbDockPane::~cbDockPane() -{ - for( size_t i = 0; i != mRows.Count(); ++i ) - - delete mRows[i]; - - mRowShapeData.DeleteContents( TRUE ); - - // NOTE:: control bar infromation structures are cleaned-up - // in wxFrameLayout's destructor, using global control-bar list -} - -void cbDockPane::SetMargins( int top, int bottom, int left, int right ) -{ - mTopMargin = top; - mBottomMargin = bottom; - mLeftMargin = left; - mRightMargin = right; -} - -/*** helpers of cbDockPane ***/ - -void cbDockPane::PaintBarDecorations( cbBarInfo* pBar, wxDC& dc ) -{ - cbDrawBarDecorEvent evt( pBar, dc, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::PaintBarHandles( cbBarInfo* pBar, wxDC& dc ) -{ - cbDrawBarHandlesEvent evt( pBar, dc, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::PaintBar( cbBarInfo* pBar, wxDC& dc ) -{ - PaintBarDecorations( pBar, dc ); - PaintBarHandles( pBar, dc ); -} - -void cbDockPane::PaintRowHandles( cbRowInfo* pRow, wxDC& dc ) -{ - cbDrawRowHandlesEvent evt( pRow, dc, this ); - - mpLayout->FirePluginEvent( evt ); - - cbDrawRowDecorEvent evt1( pRow, dc, this ); - - mpLayout->FirePluginEvent( evt1 ); -} - -void cbDockPane::PaintRowBackground ( cbRowInfo* pRow, wxDC& dc ) -{ - cbDrawRowBkGroundEvent evt( pRow, dc, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::PaintRowDecorations( cbRowInfo* pRow, wxDC& dc ) -{ - size_t i = 0; - - // decorations first - for( i = 0; i != pRow->mBars.Count(); ++i ) - - PaintBarDecorations( pRow->mBars[i], dc ); - - // then handles if present - for( i = 0; i != pRow->mBars.Count(); ++i ) - - PaintBarHandles( pRow->mBars[i], dc ); -} - -void cbDockPane::PaintRow( cbRowInfo* pRow, wxDC& dc ) -{ - PaintRowBackground ( pRow, dc ); - PaintRowDecorations( pRow, dc ); - PaintRowHandles ( pRow, dc ); -} - -void cbDockPane::PaintPaneBackground( wxDC& dc ) -{ - cbDrawPaneBkGroundEvent evt( dc, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::PaintPaneDecorations( wxDC& dc ) -{ - cbDrawPaneDecorEvent evt( dc, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::PaintPane( wxDC& dc ) -{ - PaintPaneBackground( dc ); - - size_t i = 0; - - // first decorations - for( i = 0; i != mRows.Count(); ++i ) - { - PaintRowBackground( mRows[i], dc ); - PaintRowDecorations( mRows[i], dc ); - } - - // than handles - for( i = 0; i != mRows.Count(); ++i ) - - PaintRowHandles( mRows[i], dc ); - - // and finally - PaintPaneDecorations( dc ); -} - -void cbDockPane::SizeBar( cbBarInfo* pBar ) -{ - cbSizeBarWndEvent evt( pBar, this ); - - mpLayout->FirePluginEvent( evt ); - return; -} - -void cbDockPane::SizeRowObjects( cbRowInfo* pRow ) -{ - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - SizeBar( pRow->mBars[i] ); -} - -void cbDockPane::SizePaneObjects() -{ - for( size_t i = 0; i != mRows.Count(); ++i ) - - SizeRowObjects( mRows[i] ); -} - -wxDC* cbDockPane::StartDrawInArea( const wxRect& area ) -{ - wxDC* pDc = 0; - - cbStartDrawInAreaEvent evt( area, &pDc, this ); - - mpLayout->FirePluginEvent( evt ); - - return pDc; -} - -void cbDockPane::FinishDrawInArea( const wxRect& area ) -{ - cbFinishDrawInAreaEvent evt( area, this ); - - mpLayout->FirePluginEvent( evt ); -} - -bool cbDockPane::IsFixedSize( cbBarInfo* pInfo ) -{ - return ( pInfo->mDimInfo.mIsFixed ); -} - -int cbDockPane::GetNotFixedBarsCount( cbRowInfo* pRow ) -{ - int cnt = 0; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() ) ++cnt; - - return cnt; -} - -void cbDockPane::RemoveBar( cbBarInfo* pBar ) -{ - bool needsRestoring = mProps.mNonDestructFirctionOn && - mpStoredRow == pBar->mpRow; - - cbRemoveBarEvent evt( pBar, this ); - - mpLayout->FirePluginEvent( evt ); - - if ( needsRestoring ) - { - SetRowShapeData( mpStoredRow, &mRowShapeData ); - - mpStoredRow = NULL; - } -} - -void cbDockPane::SyncRowFlags( cbRowInfo* pRow ) -{ - // setup mHasOnlyFixedBars flag for the row information - pRow->mHasOnlyFixedBars = TRUE; - - pRow->mNotFixedBarsCnt = 0; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - bar.mpRow = pRow; - - if ( !bar.IsFixed() ) - { - pRow->mHasOnlyFixedBars = FALSE; - ++pRow->mNotFixedBarsCnt; - } - } -} - -void cbDockPane::FrameToPane( long* x, long* y ) -{ - *x -= mLeftMargin; - *y -= mTopMargin; - - if ( mAlignment == wxTOP || - mAlignment == wxBOTTOM - ) - { - *x -= mBoundsInParent.x; - *y -= mBoundsInParent.y; - } - else - { - int rx = *x, ry = *y; - - *x = ry - mBoundsInParent.y; - - *y = rx - mBoundsInParent.x; - } -} - -void cbDockPane::PaneToFrame( long* x, long* y ) -{ - if ( mAlignment == wxTOP || - mAlignment == wxBOTTOM - ) - { - *x += mBoundsInParent.x; - *y += mBoundsInParent.y; - } - else - { - int rx = *x, ry = *y; - - *x = ry + mBoundsInParent.x; - - *y = mBoundsInParent.y + rx; - } - - *x += mLeftMargin; - *y += mTopMargin; -} - -void cbDockPane::FrameToPane( wxRect* pRect ) -{ - wxPoint upperLeft ( pRect->x, pRect->y ); - wxPoint lowerRight( pRect->x + pRect->width, - pRect->y + pRect->height ); - - FrameToPane( &upperLeft.x, &upperLeft.y ); - FrameToPane( &lowerRight.x, &lowerRight.y ); - - pRect->x = wxMin(upperLeft.x,lowerRight.x); - pRect->y = wxMin(upperLeft.y,lowerRight.y); - - pRect->width = abs( lowerRight.x - upperLeft.x ); - pRect->height = abs( lowerRight.y - upperLeft.y ); -} - -void cbDockPane::PaneToFrame( wxRect* pRect ) -{ - wxPoint upperLeft ( pRect->x, pRect->y ); - wxPoint lowerRight( pRect->x + pRect->width, - pRect->y + pRect->height ); - - PaneToFrame( &upperLeft.x, &upperLeft.y ); - PaneToFrame( &lowerRight.x, &lowerRight.y ); - - //wxRect newRect = wxRect( upperLeft, lowerRight ); - - pRect->x = wxMin(upperLeft.x,lowerRight.x); - pRect->y = wxMin(upperLeft.y,lowerRight.y); - - pRect->width = abs( lowerRight.x - upperLeft.x ); - pRect->height = abs( lowerRight.y - upperLeft.y ); -} - -int cbDockPane::GetRowAt( int paneY ) -{ - if ( paneY < 0 ) return -1; - - int curY = 0; - - size_t i = 0; - - for( ; i != mRows.Count(); ++i ) - { - int rowHeight = mRows[i]->mRowHeight; - - int third = rowHeight/3; - - if ( paneY >= curY && paneY < curY + third ) - return i-1; - - if ( paneY >= curY + third && paneY < curY + rowHeight - third ) - return i; - - curY += rowHeight; - } - - return i; -} - -int cbDockPane::GetRowAt( int upperY, int lowerY ) -{ - /* - // OLD STUFF:: - int range = lowerY - upperY; - int oneThird = range / 3; - - wxNode* pRow = mRows.First(); - int row = 0; - int curY = 0; - - if ( lowerY <= 0 ) return -1; - - while( pRow ) - { - int rowHeight = GetRowHeight( (wxList*)pRow->Data() ); - - if ( upperY >= curY && - lowerY < curY ) return row; - - if ( upperY <= curY && - lowerY >= curY && - curY - upperY >= oneThird ) return row-1; - - if ( ( upperY < curY + rowHeight && - lowerY >= curY + rowHeight && - curY + rowHeight - lowerY >= oneThird ) - ) - return row+1; - - if ( lowerY <= curY + rowHeight ) return row; - - ++row; - curY += rowHeight; - pRow = pRow->Next(); - } - */ - - int mid = upperY + (lowerY - upperY)/2; - - if ( mid < 0 ) return -1; - - int curY = 0; - size_t i = 0; - - for( ; i != mRows.Count(); ++i ) - { - int rowHeight = mRows[i]->mRowHeight; - - if ( mid >= curY && mid < curY + rowHeight ) return i; - - curY += rowHeight; - } - - return i; -} - -int cbDockPane::GetRowY( cbRowInfo* pRow ) -{ - int curY = 0; - - for( size_t i = 0; i != mRows.Count(); ++i ) - { - if ( mRows[i] == pRow ) break; - - curY += mRows[i]->mRowHeight; - } - - return curY; -} - -bool cbDockPane::HasNotFixedRowsAbove( cbRowInfo* pRow ) -{ - while ( pRow->mpPrev ) - { - pRow = pRow->mpPrev; - - if ( pRow->mHasOnlyFixedBars ) - - return TRUE; - } - - return FALSE; -} - -bool cbDockPane::HasNotFixedRowsBelow( cbRowInfo* pRow ) -{ - while( pRow->mpNext ) - { - pRow = pRow->mpNext; - - if ( pRow->mHasOnlyFixedBars ) - - return TRUE; - } - - return FALSE; -} - -bool cbDockPane::HasNotFixedBarsLeft( cbBarInfo* pBar ) -{ - while( pBar->mpPrev ) - { - pBar = pBar->mpPrev; - - if ( pBar->IsFixed() ) - - return TRUE; - } - - return FALSE; -} - -bool cbDockPane::HasNotFixedBarsRight( cbBarInfo* pBar ) -{ - while( pBar->mpNext ) - { - pBar = pBar->mpNext; - - if ( pBar->IsFixed() ) - - return TRUE; - } - - return FALSE; -} - -void cbDockPane::CalcLenghtRatios( cbRowInfo* pInRow ) -{ - int totalWidth = 0; - - size_t i = 0; - - // clac current-maximal-total-length of all maximized bars - - for( i = 0; i != pInRow->mBars.GetCount(); ++i ) - { - cbBarInfo& bar = *pInRow->mBars[i]; - - if ( !bar.IsFixed() ) - - totalWidth += bar.mBounds.width; - } - - // set up persentages of occupied space for each maximized bar - - for( i = 0; i != pInRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pInRow->mBars[i]; - - if ( !bar.IsFixed() ) - - bar.mLenRatio = double(bar.mBounds.width)/double(totalWidth); - } -} - -void cbDockPane::RecalcRowLayout( cbRowInfo* pRow ) -{ - cbLayoutRowEvent evt( pRow, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::ExpandBar( cbBarInfo* pBar ) -{ - mpLayout->GetUpdatesManager().OnStartChanges(); - - if ( !pBar->mpRow->mpExpandedBar ) - { - // save ratios only when there arent any bars expanded yet - - cbArrayFloat& ratios = pBar->mpRow->mSavedRatios; - - ratios.Clear(); - ratios.Alloc( pBar->mpRow->mNotFixedBarsCnt ); - - cbBarInfo* pCur = pBar->mpRow->mBars[0]; - - while( pCur ) - { - if ( !pCur->IsFixed() ) - { - ratios.Add( 0.0 ); - ratios[ ratios.GetCount() - 1 ] = pCur->mLenRatio; - } - - pCur = pCur->mpNext; - } - } - - cbBarInfo* pCur = pBar->mpRow->mBars[0]; - - while( pCur ) - { - pCur->mLenRatio = 0.0; // minimize the rest - - pCur = pCur->mpNext; - } - - pBar->mLenRatio = 1.0; // 100% - pBar->mBounds.width = 0; - - pBar->mpRow->mpExpandedBar = pBar; - - mpLayout->RecalcLayout( FALSE ); - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); -} - -void cbDockPane::ContractBar( cbBarInfo* pBar ) -{ - mpLayout->GetUpdatesManager().OnStartChanges(); - - double ratio = 1.0/ double( pBar->mpRow->mNotFixedBarsCnt ); - - // restore ratios which were present before expansion - - cbBarInfo* pCur = pBar->mpRow->mBars[0]; - - cbArrayFloat& ratios = pBar->mpRow->mSavedRatios; - - size_t i = 0; - - while( pCur ) - { - if ( !pCur->IsFixed() ) - { - pCur->mLenRatio = ratios[i]; - ++i; - } - - pCur = pCur->mpNext; - } - - ratios.Clear(); - ratios.Shrink(); - - pBar->mpRow->mpExpandedBar = NULL; - - mpLayout->RecalcLayout( FALSE ); - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); -} - -void cbDockPane::InitLinksForRow( cbRowInfo* pRow ) -{ - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - if ( i == 0 ) - - bar.mpPrev = NULL; - else - bar.mpPrev = pRow->mBars[i-1]; - - if ( i == pRow->mBars.Count() - 1 ) - - bar.mpNext = NULL; - else - bar.mpNext = pRow->mBars[i+1]; - } -} - -void cbDockPane::InitLinksForRows() -{ - for( size_t i = 0; i != mRows.Count(); ++i ) - { - cbRowInfo& row = *mRows[i]; - - if ( i == 0 ) - - row.mpPrev = NULL; - else - row.mpPrev = mRows[i-1]; - - if ( i == mRows.Count() - 1 ) - - row.mpNext = NULL; - else - row.mpNext = mRows[i+1]; - } -} - -void cbDockPane::DoInsertBar( cbBarInfo* pBar, int rowNo ) -{ - cbRowInfo* pRow = NULL; - - if ( rowNo == -1 || rowNo >= (int)mRows.Count() ) - { - pRow = new cbRowInfo(); - - if ( rowNo == -1 && mRows.Count() ) - - mRows.Insert( pRow, 0 ); - else - mRows.Add( pRow ); - - InitLinksForRows(); - } - else - { - pRow = mRows[rowNo]; - - if ( mProps.mNonDestructFirctionOn == TRUE ) - { - // store original shape of the row (before the bar is inserted) - - mpStoredRow = pRow; - - GetRowShapeData( mpStoredRow, &mRowShapeData ); - } - } - - if ( pRow->mBars.Count() ) - - pRow->mpExpandedBar = NULL; - - cbInsertBarEvent insEvt( pBar, pRow, this ); - - mpLayout->FirePluginEvent( insEvt ); - - mpLayout->GetUpdatesManager().OnRowWillChange( pRow, this ); -} - -void cbDockPane::InsertBar( cbBarInfo* pBarInfo, const wxRect& atRect ) -{ - wxRect rect = atRect; - FrameToPane( &rect ); - - pBarInfo->mBounds.x = rect.x; - pBarInfo->mBounds.width = rect.width; - pBarInfo->mBounds.height = rect.height; - - int row = GetRowAt( rect.y, rect.y + rect.height ); - - DoInsertBar( pBarInfo, row ); -} - -void cbDockPane::InsertBar( cbBarInfo* pBar, cbRowInfo* pIntoRow ) -{ - cbInsertBarEvent insEvt( pBar, pIntoRow, this ); - - mpLayout->FirePluginEvent( insEvt ); - - mpLayout->GetUpdatesManager().OnRowWillChange( pIntoRow, this ); -} - -void cbDockPane::InsertBar( cbBarInfo* pBarInfo ) -{ - // set transient properties - - pBarInfo->mpRow = NULL; - pBarInfo->mHasLeftHandle = FALSE; - pBarInfo->mHasRightHandle = FALSE; - pBarInfo->mLenRatio = 0.0; - - // set preferred bar demensions, according to the state in which - // the bar is being inserted - - pBarInfo->mBounds.width = pBarInfo->mDimInfo.mSizes[ pBarInfo->mState ].x; - pBarInfo->mBounds.height = pBarInfo->mDimInfo.mSizes[ pBarInfo->mState ].y; - - DoInsertBar( pBarInfo, pBarInfo->mRowNo ); -} - -void cbDockPane::RemoveRow( cbRowInfo* pRow ) -{ - // first, hide all bar-windows in the removed row - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if ( pRow->mBars[i]->mpBarWnd ) - - pRow->mBars[i]->mpBarWnd->Show( FALSE ); - - mRows.Remove( pRow ); - - pRow->mUMgrData.SetDirty(TRUE); -} - -void cbDockPane::InsertRow( cbRowInfo* pRow, cbRowInfo* pBeforeRow ) -{ - if ( !pBeforeRow ) - - mRows.Add( pRow ); - else - mRows.Insert( pRow, mRows.Index( pBeforeRow ) ); - - InitLinksForRows(); - - pRow->mUMgrData.SetDirty(TRUE); - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - pRow->mBars[i]->mUMgrData.SetDirty( TRUE ); - - SyncRowFlags( pRow ); -} - -void cbDockPane::SetPaneWidth(int width) -{ - if ( IsHorizontal() ) - - mPaneWidth = width - mLeftMargin - mRightMargin; - else - mPaneWidth = width - mTopMargin - mBottomMargin; -} - - -void cbDockPane::SetBoundsInParent( const wxRect& rect ) -{ - - mBoundsInParent = rect; - - // set pane dimensions in local coordinates - - if ( IsHorizontal() ) - { - mPaneWidth = mBoundsInParent.width - ( mRightMargin + mLeftMargin ); - mPaneHeight = mBoundsInParent.height - ( mTopMargin + mBottomMargin ); - } - else - { - mPaneWidth = mBoundsInParent.height - ( mTopMargin + mBottomMargin ); - mPaneHeight = mBoundsInParent.width - ( mRightMargin + mLeftMargin ); - } - - // convert bounding rectangles of all pane items into parent frame's coordinates - - wxBarIterator i( mRows ); - - wxRect noMarginsRect = mBoundsInParent; - - noMarginsRect.x += mLeftMargin; - noMarginsRect.y += mTopMargin; - noMarginsRect.width -= ( mLeftMargin + mRightMargin ); - noMarginsRect.height -= ( mTopMargin + mBottomMargin ); - - // hide the whole pane, if it's bounds became reverted (i.e. pane vanished) - - if ( mBoundsInParent.width < 0 || - mBoundsInParent.height < 0 ) - - hide_rect( mBoundsInParent ); - - if ( noMarginsRect.width < 0 || - noMarginsRect.height < 0 ) - - hide_rect( noMarginsRect ); - - // calculate mBoundsInParent for each item in the pane - - while( i.Next() ) - { - cbBarInfo& bar = i.BarInfo(); - - cbRowInfo* pRowInfo = bar.mpRow; - - // set up row info, if this is first bar in the row - - if ( pRowInfo && bar.mpPrev == NULL ) - { - pRowInfo->mBoundsInParent.y = pRowInfo->mRowY; - pRowInfo->mBoundsInParent.x = 0; - pRowInfo->mBoundsInParent.width = mPaneWidth; - pRowInfo->mBoundsInParent.height = pRowInfo->mRowHeight; - - PaneToFrame( &pRowInfo->mBoundsInParent ); - - clip_rect_against_rect( pRowInfo->mBoundsInParent, noMarginsRect ); - } - - wxRect bounds = bar.mBounds; - - // exclude dimensions of handles, when calculating - // bar's bounds in parent (i.e. "visual bounds") - - if ( bar.mHasLeftHandle ) - { - bounds.x += mProps.mResizeHandleSize; - bounds.width -= mProps.mResizeHandleSize; - } - - if ( bar.mHasRightHandle ) - - bounds.width -= mProps.mResizeHandleSize; - - PaneToFrame( &bounds ); - - clip_rect_against_rect( bounds, noMarginsRect ); - - bar.mBoundsInParent = bounds; - } -} - -bool cbDockPane::BarPresent( cbBarInfo* pBar ) -{ - wxBarIterator iter( mRows ); - - while( iter.Next() ) - - if ( &iter.BarInfo() == pBar ) return TRUE; - - return FALSE; -} - -cbRowInfo* cbDockPane::GetRow( int row ) -{ - if ( row >= (int)mRows.Count() ) return NULL; - - return mRows[ row ]; -} - -int cbDockPane::GetRowIndex( cbRowInfo* pRow ) -{ - for( size_t i = 0; i != mRows.Count(); ++i ) - - if ( mRows[i] == pRow ) return i; - - wxASSERT(0); // DBG:: row should be present - - return 0; -} - -int cbDockPane::GetPaneHeight() -{ - // first, recalculate row heights and the Y-positions - - cbLayoutRowsEvent evt( this ); - mpLayout->FirePluginEvent( evt ); - - int height = 0; - - if ( IsHorizontal() ) - - height += mTopMargin + mBottomMargin; - else - height += mLeftMargin + mRightMargin; - - int count = mRows.Count(); - - if ( count ) - - height += mRows[count-1]->mRowY + mRows[count-1]->mRowHeight; - - return height; -} - -int cbDockPane::GetAlignment() -{ - return mAlignment; -} - -bool cbDockPane::MatchesMask( int paneMask ) -{ - int thisMask = 0; - - // FIXME:: use array instead of switch() - - switch (mAlignment) - { - case wxTOP : thisMask = wxTOP_PANE; break; - case wxBOTTOM : thisMask = wxBOTTOM_PANE;break; - case wxLEFT : thisMask = wxLEFT_PANE; break; - case wxRIGHT : thisMask = wxRIGHT_PANE; break; - - default: wxASSERT(0); // DBG:: bogous alignment type - } - - return ( thisMask & paneMask ); -} - -void cbDockPane::RecalcLayout() -{ - // first, reposition rows and items vertically - - cbLayoutRowsEvent evt( this ); - mpLayout->FirePluginEvent( evt ); - - // then horizontally in each row - - for( size_t i = 0; i != mRows.Count(); ++i ) - - RecalcRowLayout( mRows[i] ); -} - -int cbDockPane::GetDockingState() -{ - if ( mAlignment == wxTOP || - mAlignment == wxBOTTOM ) - { - return wxCBAR_DOCKED_HORIZONTALLY; - } - else - return wxCBAR_DOCKED_VERTICALLY; -} - -inline bool cbDockPane::HasPoint( const wxPoint& pos, int x, int y, - int width, int height ) -{ - return ( pos.x >= x && - pos.y >= y && - pos.x < x + width && - pos.y < y + height ); -} - -int cbDockPane::HitTestPaneItems( const wxPoint& pos, - cbRowInfo** ppRow, - cbBarInfo** ppBar - ) -{ - (*ppRow) = NULL; - (*ppBar) = NULL; - - for( size_t i = 0; i != mRows.Count(); ++i ) - { - cbRowInfo& row = *mRows[i]; - - *ppRow = &row; - - // hit-test handles of the row, if present - - if ( row.mHasUpperHandle ) - { - if ( HasPoint( pos, 0, row.mRowY, - row.mRowWidth, mProps.mResizeHandleSize ) ) - - return CB_UPPER_ROW_HANDLE_HITTED; - } - else - if ( row.mHasLowerHandle ) - { - if ( HasPoint( pos, 0, row.mRowY + row.mRowHeight - mProps.mResizeHandleSize, - row.mRowWidth, mProps.mResizeHandleSize ) ) - - return CB_LOWER_ROW_HANDLE_HITTED; - } - - // hit-test bar handles and bar content - - for( size_t k = 0; k != row.mBars.Count(); ++k ) - { - cbBarInfo& bar = *row.mBars[k]; - wxRect& bounds = bar.mBounds; - - *ppBar = &bar; - - if ( bar.mHasLeftHandle ) - { - if ( HasPoint( pos, bounds.x, bounds.y, - mProps.mResizeHandleSize, bounds.height ) ) - - return CB_LEFT_BAR_HANDLE_HITTED; - } - else - if ( bar.mHasRightHandle ) - { - if ( HasPoint( pos, bounds.x + bounds.width - mProps.mResizeHandleSize, bounds.y, - mProps.mResizeHandleSize, bounds.height ) ) - - return CB_RIGHT_BAR_HANDLE_HITTED; - } - - if ( HasPoint( pos, bounds.x, bounds.y, bounds.width, bounds.height ) ) - - return CB_BAR_CONTENT_HITTED; - - } // hit-test next bar - - } // next row - - return CB_NO_ITEMS_HITTED; -} - -void cbDockPane::GetBarResizeRange( cbBarInfo* pBar, int* from, int *till, - bool forLeftHandle ) -{ - cbBarInfo* pGivenBar = pBar; - - int notFree = 0; - - // calc unavailable space from the left - - while( pBar->mpPrev ) - { - pBar = pBar->mpPrev; - - if ( !pBar->IsFixed() ) notFree += mProps.mMinCBarDim.x; - else notFree += pBar->mBounds.width; - } - - *from = notFree; - - pBar = pGivenBar; - - notFree = 0; - - // calc unavailable space from the right - - while( pBar->mpNext ) - { - pBar = pBar->mpNext; - - if ( pBar->mBounds.x >= mPaneWidth ) break; - - // treat not-fixed bars as minimized - - if ( !pBar->IsFixed() ) - - notFree += mProps.mMinCBarDim.x; - else - { - if ( pBar->mBounds.x + pBar->mBounds.width >= mPaneWidth ) - { - notFree += mPaneWidth - pBar->mBounds.x; - break; - } - else - notFree += pBar->mBounds.width; - } - - } - - *till = mPaneWidth - notFree; - - // do not let resizing totally deform the bar itself - - if ( forLeftHandle ) - - (*till) -= mProps.mMinCBarDim.x; - else - - (*from) += mProps.mMinCBarDim.x; -} - -int cbDockPane::GetMinimalRowHeight( cbRowInfo* pRow ) -{ - int height = mProps.mMinCBarDim.y; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if ( pRow->mBars[i]->IsFixed() ) - - height = wxMax( height, pRow->mBars[i]->mBounds.height ); - - if ( pRow->mHasUpperHandle ) - - height += mProps.mResizeHandleSize; - - if ( pRow->mHasLowerHandle ) - - height += mProps.mResizeHandleSize; - - return height; -} - -void cbDockPane::SetRowHeight( cbRowInfo* pRow, int newHeight ) -{ - if ( pRow->mHasUpperHandle ) - - newHeight -= mProps.mResizeHandleSize; - - if ( pRow->mHasLowerHandle ) - - newHeight -= mProps.mResizeHandleSize; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() ) - - pRow->mBars[i]->mBounds.height = newHeight; -} - -void cbDockPane::GetRowResizeRange( cbRowInfo* pRow, int* from, int* till, - bool forUpperHandle ) -{ - cbRowInfo* pGivenRow = pRow; - - // calc unavailable space from above - - int notFree = 0; - - while( pRow->mpPrev ) - { - pRow = pRow->mpPrev; - - notFree += GetMinimalRowHeight( pRow ); - - }; - - *from = notFree; - - // allow accupy the client window space by resizing pane rows - if ( mAlignment == wxBOTTOM ) - - *from -= mpLayout->GetClientHeight(); - else - if ( mAlignment == wxRIGHT ) - - *from -= mpLayout->GetClientWidth(); - - // calc unavailable space from below - - pRow = pGivenRow; - - notFree = 0; - - while( pRow->mpNext ) - { - pRow = pRow->mpNext; - - notFree += GetMinimalRowHeight( pRow ); - - } - - *till = mPaneHeight - notFree; - - // allow adjustinig pane space vs. client window space by resizing pane row heights - - if ( mAlignment == wxTOP ) - - *till += mpLayout->GetClientHeight(); - else - if ( mAlignment == wxLEFT ) - - *till += mpLayout->GetClientWidth(); - - // do not let the resizing of the row totally squeeze the row itself - - cbRowInfo& row = *pGivenRow; - - if ( forUpperHandle ) - { - *till = row.mRowY + row.mRowHeight - GetMinimalRowHeight( pGivenRow ); - - if ( row.mHasUpperHandle ) - - *till -= mProps.mResizeHandleSize; - } - else - { - *from += GetMinimalRowHeight( pGivenRow ); - - if ( row.mHasLowerHandle ) - - *from -= mProps.mResizeHandleSize; - } -} - -void cbDockPane::ResizeRow( cbRowInfo* pRow, int ofs, - bool forUpperHandle ) -{ - cbResizeRowEvent evt( pRow, ofs, forUpperHandle, this ); - - mpLayout->FirePluginEvent( evt ); -} - -void cbDockPane::ResizeBar( cbBarInfo* pBar, int ofs, - bool forLeftHandle ) -{ - pBar->mpRow->mpExpandedBar = NULL; - - mpLayout->GetUpdatesManager().OnStartChanges(); - - wxRect& bounds = pBar->mBounds; - - if ( forLeftHandle ) - { - // do not allow bar width become less then minimal - if ( bounds.x + ofs > bounds.x + bounds.width - mProps.mMinCBarDim.x ) - { - bounds.width = mProps.mMinCBarDim.x; - bounds.x += ofs; - } - else - { - bounds.x += ofs; - bounds.width -= ofs; - } - } - else - { - // move bar left if necessary - if ( bounds.width + ofs < mProps.mMinCBarDim.x ) - { - bounds.x = bounds.x + bounds.width + ofs - mProps.mMinCBarDim.x; - bounds.width = mProps.mMinCBarDim.x; - } - else - // resize right border only - bounds.width += ofs; - } - - - cbRowInfo* pToRow = pBar->mpRow; - - this->RemoveBar( pBar ); - - InsertBar( pBar, pToRow ); - - mpLayout->RecalcLayout(FALSE); - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); -} - - -/*** row/bar resizing related methods ***/ - -void cbDockPane::DrawVertHandle( wxDC& dc, int x, int y, int height ) -{ - int lower = y + height; - - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( x,y, x, lower ); - - dc.SetPen( mpLayout->mGrayPen ); - for( int i = 0; i != mProps.mResizeHandleSize-1; ++i ) - { - ++x; - dc.DrawLine( x,y, x, lower ); - } - - dc.SetPen( mpLayout->mDarkPen ); - ++x; - dc.DrawLine( x,y, x, lower ); - - dc.SetPen( mpLayout->mBlackPen ); - ++x; - dc.DrawLine( x,y, x, lower ); -} - -void cbDockPane::DrawHorizHandle( wxDC& dc, int x, int y, int width ) -{ - int right = x + width; - - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( x,y, right, y ); - - dc.SetPen( mpLayout->mGrayPen ); - - for( int i = 0; i != mProps.mResizeHandleSize-1; ++i ) - { - ++y; - dc.DrawLine( x,y, right, y ); - } - - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawLine( x,y, right, ++y ); - - dc.SetPen( mpLayout->mBlackPen ); - dc.DrawLine( x,y, right, ++y ); -} - -cbBarInfo* cbDockPane::GetBarInfoByWindow( wxWindow* pBarWnd ) -{ - wxBarIterator i( mRows ); - - while( i.Next() ) - - if ( i.BarInfo().mpBarWnd == pBarWnd ) - - return &i.BarInfo(); - - return NULL; -} - -void cbDockPane::GetRowShapeData( cbRowInfo* pRow, wxList* pLst ) -{ - pLst->DeleteContents( TRUE ); - pLst->Clear(); - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - cbBarShapeData* pData = new cbBarShapeData(); - - pLst->Append( (wxObject*)pData ); - - pData->mBounds = bar.mBounds; - pData->mLenRatio = bar.mLenRatio; - } -} - -void cbDockPane::SetRowShapeData( cbRowInfo* pRow, wxList* pLst ) -{ - if ( pLst->First() == NULL ) return; - - wxNode* pData = pLst->First(); - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - wxASSERT( pData ); // DBG:: - - cbBarInfo& bar = *pRow->mBars[i];; - - cbBarShapeData& data = *((cbBarShapeData*)pData->Data()); - - bar.mBounds = data.mBounds; - bar.mLenRatio = data.mLenRatio; - - pData = pData->Next(); - } -} - -/***** Implementation for class cbUpdatesManagerBase *****/ - -IMPLEMENT_ABSTRACT_CLASS( cbUpdatesManagerBase, wxObject ) - -/***** Implementation for class cbPluginBase *****/ - -IMPLEMENT_ABSTRACT_CLASS( cbPluginBase, wxEvtHandler ) - -cbPluginBase::~cbPluginBase() -{ - // nothing -} - -bool cbPluginBase::ProcessEvent(wxEvent& event) -{ - if ( mPaneMask == wxALL_PANES ) - - return wxEvtHandler::ProcessEvent( event ); - - // extract mask info. from received event - - cbPluginEvent& evt = *( (cbPluginEvent*)&event ); - - if ( evt.mpPane == 0 && - mPaneMask == wxALL_PANES ) - - return wxEvtHandler::ProcessEvent( event ); - - int mask = 0; - - switch ( evt.mpPane->mAlignment ) - { - case wxTOP : mask = wxTOP_PANE; break; - case wxBOTTOM : mask = wxBOTTOM_PANE;break; - case wxLEFT : mask = wxLEFT_PANE; break; - case wxRIGHT : mask = wxRIGHT_PANE; break; - } - - // if event's pane maks matches the plugin's mask - - if ( mPaneMask & mask ) - - return wxEvtHandler::ProcessEvent( event ); - - // otherwise pass to the next handler if present - - if ( GetNextHandler() && GetNextHandler()->ProcessEvent( event ) ) - - return TRUE; - else - return FALSE; -} - - diff --git a/utils/framelayout/src/controlbar.h b/utils/framelayout/src/controlbar.h deleted file mode 100644 index b37442af0a..0000000000 --- a/utils/framelayout/src/controlbar.h +++ /dev/null @@ -1,1652 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Central header file for control-bar related classes -// -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __CONTROLBAR_G__ -#define __CONTROLBAR_G__ - -#ifdef __GNUG__ -#pragma interface "controlbar.h" -#endif - -#include "wx/defs.h" -#include "wx/string.h" -#include "wx/window.h" -#include "wx/dynarray.h" - -#define WXCONTROLBAR_VERSION 1.3 - -// forward declarations - -class wxFrameLayout; - -class cbDockPane; -class cbUpdatesManagerBase; -class cbBarDimHandlerBase; -class cbPluginBase; -class cbPluginEvent; -class cbPaneDrawPlugin; - -class cbBarInfo; -class cbRowInfo; -class cbDimInfo; -class cbCommonPaneProperties; - -typedef cbBarInfo* BarInfoPtrT; -typedef cbRowInfo* RowInfoPtrT; - -WX_DEFINE_ARRAY( BarInfoPtrT, BarArrayT ); -WX_DEFINE_ARRAY( RowInfoPtrT, RowArrayT ); - -// control bar states - -#define wxCBAR_DOCKED_HORIZONTALLY 0 -#define wxCBAR_DOCKED_VERTICALLY 1 -#define wxCBAR_FLOATING 2 -#define wxCBAR_HIDDEN 3 - -// the states are enumerated above -#define MAX_BAR_STATES 4 - -// control bar alignments - -#if !defined(wxTOP) - -#define wxTOP 0 -#define wxBOTTOM 1 -#define wxLEFT 2 -#define wxRIGHT 3 - -#endif - -// one pane for each alignment -#define MAX_PANES 4 - -// masks for each pane - -#define wxTOP_PANE 0x0001 -#define wxBOTTOM_PANE 0x0002 -#define wxLEFT_PANE 0x0004 -#define wxRIGHT_PANE 0x0008 - -#define wxALL_PANES 0x000F - -// enumeration of hittest results, see cbDockPane::HitTestPaneItems(..) - -enum CB_HITTEST_RESULT -{ - CB_NO_ITEMS_HITTED, - - CB_UPPER_ROW_HANDLE_HITTED, - CB_LOWER_ROW_HANDLE_HITTED, - CB_LEFT_BAR_HANDLE_HITTED, - CB_RIGHT_BAR_HANDLE_HITTED, - CB_BAR_CONTENT_HITTED -}; - -// FIXME:: somehow in debug v. originall wxASSERT's are not compiled in... - -//#undef wxASSERT -//#define wxASSERT(x) if ( !(x) ) throw; - -// helper class, used for spying for not-handled mouse events on control-bars -// and forwarding them to the frame layout - -class cbBarSpy : public wxEvtHandler -{ -public: - DECLARE_DYNAMIC_CLASS( cbBarSpy ) - - wxFrameLayout* mpLayout; - wxWindow* mpBarWnd; - -public: - cbBarSpy(void); - - cbBarSpy( wxFrameLayout* pPanel ); - - void SetBarWindow( wxWindow* pWnd ); - - // overriden - - virtual bool ProcessEvent(wxEvent& event); -}; - -/* wxFrameLayout manages containment and docking of control bars. - * which can be docked along top, bottom, righ, or left side of the - * parent frame - */ - -class wxFrameLayout : public wxEvtHandler -{ -public: - DECLARE_DYNAMIC_CLASS( wxFrameLayout ) - -public: /* protected really, acessed only by plugins and serializers */ - - friend class cbDockPane; - friend class wxBarHandler; - - wxWindow* mpFrame; // parent frame - wxWindow* mpFrameClient; // client window - cbDockPane* mPanes[MAX_PANES]; // panes in the panel - - // misc. cursors - wxCursor* mpHorizCursor; - wxCursor* mpVertCursor; - wxCursor* mpNormalCursor; - wxCursor* mpDragCursor; - wxCursor* mpNECursor; // no-entry cursor - - // pens for decoration and shades - - wxPen mDarkPen; // default wxSYS_COLOUR_3DSHADOW - wxPen mLightPen; // default wxSYS_COLOUR_3DHILIGHT - wxPen mGrayPen; // default wxSYS_COLOUR_3DFACE - wxPen mBlackPen; // default wxColour( 0, 0, 0) - wxPen mBorderPen; // default wxSYS_COLOUR_3DFACE - - wxPen mNullPen; // transparent pen - - // pane to which the all mouse input is currently directed (caputred) - - cbDockPane* mpPaneInFocus; - - // pane, from which mouse pointer had just leaft - - cbDockPane* mpLRUPane; - - // bounds of client window in parent frame's coordinates - - wxRect mClntWndBounds; - wxRect mPrevClntWndBounds; - - bool mFloatingOn; - wxPoint mNextFloatedWndPos; - wxSize mFloatingPosStep; - - // current plugin (right-most) plugin which receives events first - - cbPluginBase* mpTopPlugin; - - // plugin, which currently has caputred all input events, otherwise NULL - - cbPluginBase* mpCaputesInput; - - // list of event handlers which are "pushed" onto each bar, to catch - // mouse events which are not handled by bars, and froward them to the , - // frome-layout and further to plugins - - wxList mBarSpyList; - - // list of top-most frames which contain floated bars - - wxList mFloatedFrames; - - // linked list of references to all bars (docked/floated/hidden) - - BarArrayT mAllBars; - - // FOR NOW:: dirty stuff... - bool mClientWndRefreshPending; - bool mRecalcPending; - bool mCheckFocusWhenIdle; - -public: /* protected really (accessed only by plugins) */ - - // refrence to custom updates manager - cbUpdatesManagerBase* mpUpdatesMgr; - - // called to set calculated layout to window objects - void PositionClientWindow(); - void PositionPanes(); - void CreateCursors(); - - void RepositionFloatedBar( cbBarInfo* pBar ); - void DoSetBarState( cbBarInfo* pBar ); - - bool LocateBar( cbBarInfo* pBarInfo, - cbRowInfo** ppRow, - cbDockPane** ppPane ); - - - bool HitTestPane( cbDockPane* pPane, int x, int y ); - cbDockPane* HitTestPanes( const wxRect& rect, cbDockPane* pCurPane ); - - // returns panes, to which the given bar belongs - - cbDockPane* GetBarPane( cbBarInfo* pBar ); - - // delegated from "bar-spy" - void ForwardMouseEvent( wxMouseEvent& event, - cbDockPane* pToPane, - int eventType ); - - void RouteMouseEvent( wxMouseEvent& event, int pluginEvtType ); - - void ShowFloatedWindows( bool show ); - - void UnhookFromFrame(); - void HookUpToFrame(); - - // NOTE:: reparenting of windows may NOT work on all platforms - // (reparenting allows control-bars to be floated) - - bool CanReparent(); - void ReparentWindow( wxWindow* pChild, wxWindow* pNewParent ); - - wxRect& GetPrevClientRect() { return mPrevClntWndBounds; } - - void OnPaint( wxPaintEvent& event ); - void OnEraseBackground( wxEraseEvent& event ); - void OnKillFocus( wxFocusEvent& event ); - void OnSetFocus( wxFocusEvent& event ); - void OnActivate( wxActivateEvent& event ); - void OnIdle( wxIdleEvent& event ); - - // factory method - virtual cbUpdatesManagerBase* CreateUpdatesManager(); - -public: /* public members */ - - wxFrameLayout(void); // used only while serializing - - wxFrameLayout( wxWindow* pParentFrame, - wxWindow* pFrameClient = NULL, - bool activateNow = TRUE ); - - // (doesn't destory bar windows) - virtual ~wxFrameLayout(); - - // (by default floating of control-bars is ON) - virtual void EnableFloating( bool enable = TRUE ); - - // Can be called after some other layout has been deactivated, - // and this one must "take over" the current contents of frame window. - // - // Effectivelly hooks itself to the frame window, re-displays all not-hidden - // bar-windows and repaints decorations - - virtual void Activate(); - - // unhooks itself from frame window, and hides all not-hidden windows - // - // NOTE:: two frame-layouts should not be active at the same time in the - // same frame window, it would cause messy overlapping of bar windows - // from both layouts - - virtual void Deactivate(); - - // also hides the client window if presents - - void HideBarWindows(); - - virtual void DestroyBarWindows(); - - // passes the client window (e.g. MDI-client frame) to be controled by - // frame layout, the size and position of which should be adjusted to be - // surrounded by controlbar panes, whenever frame is resized, or dimesnions - // of control panes change - - void SetFrameClient( wxWindow* pFrameClient ); - - wxWindow* GetFrameClient(); - - wxWindow& GetParentFrame() { return *mpFrame; } - - // used by updates-managers - cbDockPane** GetPanesArray() { return mPanes; } - - // see pane alignment types - cbDockPane* GetPane( int alignment ) - - { return mPanes[alignment]; } - - // Adds bar information to frame-layout, appearence of layout is not refreshed - // immediatelly, RefreshNow() can be called if necessary. - // - // NOTES:: argument pBarWnd can by NULL, resulting bar decorations to be drawn - // around the empty rectangle (filled with default background colour). - // Argument dimInfo, can be re-used for adding any number of bars, since - // it is not used directly, instead it's members are copied. If dimensions- - // handler is present, it's instance shared (reference counted). Dimension - // handler should always be allocated on the heap!) - - virtual void AddBar( wxWindow* pBarWnd, - cbDimInfo& dimInfo, - - // defaults: - - int alignment = wxTOP, - int rowNo = 0, // vert. position - row in the pane (if docked state) - int columnPos = 0, // horiz. position in the row in pixels (if docked state) - const wxString& name="bar",// name, by which the bar could be referred - // in layout costumization dialogs - - bool spyEvents = FALSE, // if TRUE - input events for the bar should - // be "spyed" in order to forward not-handled - // mouse clicks to frame layout (e.g. to enable - // easy-draggablity of toolbars just by clicking - // on their interior regions). For widgets like - // text/tree control this value should be FALSE - // (since there's _no_ certain way to detect - // whether the event was actually handled...) - - int state = wxCBAR_DOCKED_HORIZONTALLY // e.g. wxCBAR_FLOATING - // or wxCBAR_HIDDEN - ); - - // can be used for repositioning already existing bars. The given bar is first removed - // from the pane it currently belongs to, and inserted into the pane, which "matches" - // the given recantular area. If pToPane is not NULL, bar is docked to this given pane - - // to dock the bar which is floated, use wxFrameLayout::DockBar(..) method - - virtual bool RedockBar( cbBarInfo* pBar, const wxRect& shapeInParent, - cbDockPane* pToPane = NULL, bool updateNow = TRUE ); - - // methods for access and modification of bars in frame layout - - cbBarInfo* FindBarByName( const wxString& name ); - - BarArrayT& GetBars(); - - // changes bar's docking state (see possible control bar states) - - void SetBarState( cbBarInfo* pBar, int newStatem, bool updateNow ); - - // reflects changes in bar information structure visually - // (e.g. moves bar, changes it's dimension info, pane to which it is docked) - - void ApplyBarProperties( cbBarInfo* pBar ); - - // removes bar from layout permanently, hides it's corresponding window if present - - void RemoveBar( cbBarInfo* pBar ); - - // recalcualtes layout of panes, and all bars/rows in each pane - - virtual void RecalcLayout( bool repositionBarsNow = FALSE ); - - int GetClientHeight(); - int GetClientWidth(); - wxRect& GetClientRect() { return mClntWndBounds; } - - // NOTE:: in future ubdates-manager will become a normal plugin - - cbUpdatesManagerBase& GetUpdatesManager(); - - // destroys the previous manager if any, set the new one - - void SetUpdatesManager( cbUpdatesManagerBase* pUMgr ); - - // NOTE:: changing properties of panes, does not result immediate on-screen update - - virtual void GetPaneProperties( cbCommonPaneProperties& props, int alignment = wxTOP ); - - virtual void SetPaneProperties( const cbCommonPaneProperties& props, - int paneMask = wxALL_PANES ); - - // TODO:: margins should go into cbCommonPaneProperties in the future - // - // NOTE:: this method should be called before any custom plugins are attached - - virtual void SetMargins( int top, int bottom, int left, int right, - int paneMask = wxALL_PANES ); - - virtual void SetPaneBackground( const wxColour& colour ); - - // recalculates layoute and performs on-screen update of all panes - - void RefreshNow( bool recalcLayout = TRUE ); - - // event handlers - - void OnSize ( wxSizeEvent& event ); - void OnLButtonDown( wxMouseEvent& event ); - void OnLDblClick ( wxMouseEvent& event ); - void OnLButtonUp ( wxMouseEvent& event ); - void OnRButtonDown( wxMouseEvent& event ); - void OnRButtonUp ( wxMouseEvent& event ); - void OnMouseMove ( wxMouseEvent& event ); - - /*** plugin-related methods ***/ - - // should be used, instead of passing the event to ProcessEvent(..) method - // of the top-plugin directly. This method checks if events are currently - // captured and ensures that plugin-event is routed correctly. - - virtual void FirePluginEvent( cbPluginEvent& event ); - - // captures/releases user-input event's for the given plugin - // Input events are: mouse movement, mouse clicks, keyboard input - - virtual void CaptureEventsForPlugin ( cbPluginBase* pPlugin ); - virtual void ReleaseEventsFromPlugin( cbPluginBase* pPlugin ); - - // called by plugins ( also captures/releases mouse in parent frame) - void CaptureEventsForPane( cbDockPane* toPane ); - void ReleaseEventsFromPane( cbDockPane* fromPane ); - - // returns current top-level plugin (the one which receives events first, - // with an exception if input-events are currently captured by some other plugin) - - virtual cbPluginBase& GetTopPlugin(); - - // hooking custom plugins to frame layout - // - // NOTE:: when hooking one plugin on top of the other - - // use SetNextHandler(..) or similar methods - // of wxEvtHandler class to compose the chain of plugins, - // than pass the left-most handler in this chain to - // the above methods (assuming that events are delegated - // from left-most towards right-most handler) - // - // NOTE2:: this secenario is very inconvenient and "low-level", - // use Add/Push/PopPlugin methods instead - - virtual void SetTopPlugin( cbPluginBase* pPlugin ); - - // similar to wxWindow's "push/pop-event-handler" methods, execept - // that plugin is *deleted* upon "popping" - - virtual void PushPlugin( cbPluginBase* pPugin ); - virtual void PopPlugin(); - - virtual void PopAllPlugins(); - - // default plugins are : cbPaneDrawPlugin, cbRowLayoutPlugin, cbBarDragPlugin, - // cbAntiflickerPlugin, cbSimpleCustomizePlugin - // - // this method is automatically invoked, if no plugins were found upon - // fireing of the first plugin-event, i.e. wxFrameLayout *CONFIGURES* itself - - virtual void PushDefaultPlugins(); - - /* "Advanced" methods for plugin-configuration using their */ - /* dynamic class information (e.g. CLASSINFO(pluginClass) ) */ - - // first checks if plugin of the given class is already "hooked up", - // if not, adds it to the top of plugins chain - - virtual void AddPlugin( wxClassInfo* pPlInfo, int paneMask = wxALL_PANES ); - - // first checks if plugin of the givne class already hooked, - // if so, removes it, and then inserts it to the chain - // before plugin of the class given by "pNextPlInfo" - // - // NOTE:: this method is "handy" in some cases, where the order - // of plugin-chain could be important, e.g. one plugin overrides - // some functionallity of the other already hooked plugin, - // thefore the former should be hooked before the one - // who's functionality is being overriden - - virtual void AddPluginBefore( wxClassInfo* pNextPlInfo, wxClassInfo* pPlInfo, - int paneMask = wxALL_PANES ); - - // checks if plugin of the given class is hooked, removes - // it if found - // - // @param pPlInfo class information structure for the plugin - // @note - // @see wxFrameLayout::Method - - - virtual void RemovePlugin( wxClassInfo* pPlInfo ); - - // returns NULL, if plugin of the given class is not hooked - - virtual cbPluginBase* FindPlugin( wxClassInfo* pPlInfo ); - - bool HasTopPlugin(); - - DECLARE_EVENT_TABLE(); -}; - -/* structure, which is present in each item of layout, - * it used by any specific updates-manager to store - * auxilary information to be used by it's specific - * updating algorithm - */ - -class cbUpdateMgrData : public wxObject -{ - DECLARE_DYNAMIC_CLASS( cbUpdateMgrData ) -public: - wxRect mPrevBounds; // previous state of layout item (in parent frame's coordinates) - - bool mIsDirty; // overrides result of current-against-previouse bounds comparison, - // i.e. requires item to be updated, regardless of it's current area - - wxObject* mpCustomData; // any custom data stored by specific updates mgr. - - cbUpdateMgrData(); // is-dirty flag is set TRUE initially - - void StoreItemState( const wxRect& boundsInParent ); - - void SetDirty( bool isDirty = TRUE ); - - void SetCustomData( wxObject* pCustomData ); - - inline bool IsDirty() { return mIsDirty; } -}; - -/* Abstract inteface for bar-size handler classes. - * These objects receive notifications, whenever the docking - * state of the bar is changed, thus they have a possibility - * to adjust the values in cbDimInfo::mSizes accordingly. - * Specific handlers can be hooked to specific types of bars. - */ - -class cbBarDimHandlerBase : public wxObject -{ - DECLARE_ABSTRACT_CLASS( cbBarDimHandlerBase ) - -public: - int mRefCount; // since one dim-handler can be asigned - // to multiple bars, it's instance is - // refernce-counted -public: - - // inital refernce count is 0, since handler is not used, until the - // first invocation of AddRef() - - cbBarDimHandlerBase(); - - void AddRef(); - void RemoveRef(); - - // "bar-state-changes" notification - virtual void OnChangeBarState(cbBarInfo* pBar, int newState ) = 0; - virtual void OnResizeBar( cbBarInfo* pBar, const wxSize& given, wxSize& preferred ) = 0; -}; - -/* helper classes (used internally by wxFrameLayout class) */ - -// holds and manages information about bar demensions - -class cbDimInfo : public wxObject -{ - DECLARE_DYNAMIC_CLASS( cbDimInfo ) -public: - wxSize mSizes[MAX_BAR_STATES]; // preferred sizes for each possible bar state - - wxRect mBounds[MAX_BAR_STATES]; // saved positions and sizes for each - // possible state, values contain (-1)s if - // not initialized yet - - int mLRUPane; // pane to which this bar was docked before it was floated - // (wxTOP,wxBOTTOM,..) - - // top/bottom gap, separates decorations - // from the bar's actual window, filled - // with frame's beckground color, default: 0 - - int mVertGap; - - // left/right gap, separates decorations - // from the bar's actual window, filled - // with frame's beckground colour, default: 0 - - int mHorizGap; // NOTE:: gaps are given in frame's coord. orientation - - // TRUE, if vertical/horizotal dimensions cannot be mannualy adjusted - // by user using resizing handles. If FALSE, the frame-layout - // *automatically* places resizing handles among not-fixed bars - - bool mIsFixed; - - cbBarDimHandlerBase* mpHandler; // NULL, if no handler present - -public: - - cbDimInfo(void); - - cbDimInfo( cbBarDimHandlerBase* pDimHandler, - bool isFixed // (see comments on mIsFixed member) - ); - - cbDimInfo( int dh_x, int dh_y, // dims when docked horizontally - int dv_x, int dv_y, // dims when docked vertically - int f_x, int f_y, // dims when floating - - bool isFixed = TRUE,// (see comments on mIsFixed member) - int horizGap = 6, // (see comments on mHorizGap member) - int vertGap = 6, // -/- - - cbBarDimHandlerBase* pDimHandler = NULL - ); - - const cbDimInfo& operator=( cbDimInfo& other ); - - // destroys handler automatically, if present - ~cbDimInfo(); - - inline cbBarDimHandlerBase* GetDimHandler() { return mpHandler; } -}; - -WX_DEFINE_ARRAY(float, cbArrayFloat); - -class cbRowInfo : public wxObject -{ - DECLARE_DYNAMIC_CLASS( cbRowInfo ) -public: - - BarArrayT mBars; // row content - - // row flags (set up according to row-relations) - - bool mHasUpperHandle; - bool mHasLowerHandle; - bool mHasOnlyFixedBars; - int mNotFixedBarsCnt; - - int mRowWidth; - int mRowHeight; - int mRowY; - - // stores precalculated row's bounds in parent frame's coordinates - wxRect mBoundsInParent; - - // info stored for updates-manager - cbUpdateMgrData mUMgrData; - - cbRowInfo* mpNext; - cbRowInfo* mpPrev; - - cbBarInfo* mpExpandedBar; // NULL, if non of the bars is currently expanded - - cbArrayFloat mSavedRatios; // length-ratios bofore some of the bars was expanded - -public: - cbRowInfo(void); - - ~cbRowInfo(); - - // convenience method - - inline cbBarInfo* GetFirstBar() - - { return mBars.GetCount() ? mBars[0] : NULL; } -}; - -class cbBarInfo : public wxObject -{ - DECLARE_DYNAMIC_CLASS( cbBarInfo ) -public: - // textual name, by which this bar is refered in layout-costumization dialogs - wxString mName; - - // stores bar's bounds in pane's coordinates - wxRect mBounds; - - // stores precalculated bar's bounds in parent frame's coordinates - wxRect mBoundsInParent; - - // back-ref to the row, which contains this bar - cbRowInfo* mpRow; - - // are set up according to the types of the surrounding bars in the row - bool mHasLeftHandle; - bool mHasRightHandle; - - cbDimInfo mDimInfo; // preferred sizes for each, control bar state - - int mState; // (see definition of controlbar states) - - int mAlignment; // alignment of the pane to which this - // bar is currently placed - - int mRowNo; // row, into which this bar would be placed, - // when in the docking state - - wxWindow* mpBarWnd; // the actual window object, NULL if no window - // is attached to the control bar (possible!) - - double mLenRatio; // length ratio among not-fixed-size bars - - wxPoint mPosIfFloated; // stored last position when bar was in "floated" state - // poistion is stored in parent-window's coordinates - - cbUpdateMgrData mUMgrData; // info stored for updates-manager - - cbBarInfo* mpNext; // next. bar in the row - cbBarInfo* mpPrev; // prev. bar in the row - -public: - cbBarInfo(void); - - ~cbBarInfo(); - - inline bool IsFixed() const { return mDimInfo.mIsFixed; } - - inline bool IsExpanded() const { return this == mpRow->mpExpandedBar; } -}; - -// used for storing original bar's postions in the row, when the "non-destructive-friction" -// option is turned ON - -class cbBarShapeData : public wxObject -{ -public: - wxRect mBounds; - double mLenRatio; -}; - -// used for traversing through all bars of all rows in the pane - -class wxBarIterator -{ - RowArrayT* mpRows; - cbRowInfo* mpRow; - cbBarInfo* mpBar; - -public: - wxBarIterator( RowArrayT& rows ); - - void Reset(); - bool Next(); // TRUE, if next bar is available - - cbBarInfo& BarInfo(); - - // returns reference to currently traversed row - cbRowInfo& RowInfo(); -}; - -/* structure holds configuration options, - * which are usually the same for all panes in - * frame layout - */ - -class cbCommonPaneProperties : public wxObject -{ - DECLARE_DYNAMIC_CLASS( cbCommonPaneProperties ) - - // look-and-feel configuration - - bool mRealTimeUpdatesOn; // default: ON - bool mOutOfPaneDragOn; // default: ON - bool mExactDockPredictionOn; // default: OFF - bool mNonDestructFirctionOn; // default: OFF - - bool mShow3DPaneBorderOn; // default: ON - - // FOR NOW:: the below properties are reserved for the "future" - - bool mBarFloatingOn; // default: OFF - bool mRowProportionsOn; // default: OFF - bool mColProportionsOn; // default: ON - bool mBarCollapseIconsOn; // default: OFF - bool mBarDragHintsOn; // default: OFF - - // minimal dimensions for not-fixed bars in this pane (16x16 default) - - wxSize mMinCBarDim; - - // width/height of resizing sash - - int mResizeHandleSize; - - cbCommonPaneProperties(void); -}; - -/* class manages containment and control of control-bars - * along one of the four edges of the parent frame - */ - -class cbDockPane : public wxObject -{ -public: - DECLARE_DYNAMIC_CLASS( cbDockPane ) - - // look-and-feel configuration for this pane - cbCommonPaneProperties mProps; - - // pane margins (in frame's coordinate-syst. orientation) - - int mLeftMargin; // default: 2 pixels - int mRightMargin; // default: 2 pixels - int mTopMargin; // default: 2 pixels - int mBottomMargin; // default: 2 pixels - -public: - // position of the pane in frame's coordinates - wxRect mBoundsInParent; - - // pane width and height in pane's coordinates - int mPaneWidth; - int mPaneHeight; - - int mAlignment; - - // info stored for updates-manager - cbUpdateMgrData mUMgrData; - -public: /* protected really */ - - RowArrayT mRows; - wxFrameLayout* mpLayout; // back-ref - - // transient properties - - wxList mRowShapeData; // shapes of bars of recently modified row, - // stored when in "non-destructive-firction" mode - cbRowInfo* mpStoredRow; // row-info for which the shapes are stored - - friend class wxFrameLayout; - -public: /* protected really (accessed only by plugins) */ - - cbRowInfo* GetRow( int row ); - - int GetRowIndex( cbRowInfo* pRow ); - - // return -1, if row is not present at given vertical position - int GetRowAt( int paneY ); - int GetRowAt( int upperY, int lowerY ); - - // re-setups flags in the row-information structure, so that - // the would match the changed state of row-items correctly - void SyncRowFlags( cbRowInfo* pRow ); - - // layout "AI" helpers: - - bool IsFixedSize( cbBarInfo* pInfo ); - int GetNotFixedBarsCount( cbRowInfo* pRow ); - - int GetRowWidth( wxList* pRow ); - - int GetRowY( cbRowInfo* pRow ); - - bool HasNotFixedRowsAbove( cbRowInfo* pRow ); - bool HasNotFixedRowsBelow( cbRowInfo* pRow ); - bool HasNotFixedBarsLeft ( cbBarInfo* pBar ); - bool HasNotFixedBarsRight( cbBarInfo* pBar ); - - virtual void CalcLenghtRatios( cbRowInfo* pInRow ); - virtual void RecalcRowLayout( cbRowInfo* pRow ); - - virtual void ExpandBar( cbBarInfo* pBar ); - virtual void ContractBar( cbBarInfo* pBar ); - - void InitLinksForRow( cbRowInfo* pRow ); - void InitLinksForRows(); - - // coordinate translation between parent's frame and this pane - - void FrameToPane( long* x, long* y ); - void PaneToFrame( long* x, long* y ); - void FrameToPane( wxRect* pRect ); - void PaneToFrame( wxRect* pRect ); - - inline bool HasPoint( const wxPoint& pos, int x, int y, int width, int height ); - - int GetMinimalRowHeight( cbRowInfo* pRow ); - - // given row height includes height of row handles, if present - void SetRowHeight( cbRowInfo* pRow, int newHeight ); - - void DoInsertBar( cbBarInfo* pBar, int rowNo ); - -public: /* protected really (accessed only by plugins) */ - - // methods for incramental on-screen refreshing of the pane - // (simply, they are wrappers around corresponding plugin-events) - - virtual void PaintBarDecorations( cbBarInfo* pBar, wxDC& dc ); - virtual void PaintBarHandles( cbBarInfo* pBar, wxDC& dc ); - virtual void PaintBar( cbBarInfo* pBar, wxDC& dc ); - virtual void PaintRowHandles( cbRowInfo* pRow, wxDC& dc ); - virtual void PaintRowBackground ( cbRowInfo* pRow, wxDC& dc ); - virtual void PaintRowDecorations( cbRowInfo* pRow, wxDC& dc ); - virtual void PaintRow( cbRowInfo* pRow, wxDC& dc ); - virtual void PaintPaneBackground( wxDC& dc ); - virtual void PaintPaneDecorations( wxDC& dc ); - virtual void PaintPane( wxDC& dc ); - virtual void SizeBar( cbBarInfo* pBar ); - virtual void SizeRowObjects( cbRowInfo* pRow ); - virtual void SizePaneObjects(); - - virtual wxDC* StartDrawInArea ( const wxRect& area ); - virtual void FinishDrawInArea( const wxRect& area ); - -public: /* public members */ - - cbDockPane(void); - - cbDockPane( int alignment, wxFrameLayout* pPanel ); - - // sets pane's margins in frame's coordinate orientations - void SetMargins( int top, int bottom, int left, int right ); - - virtual ~cbDockPane(); - - // does not destroys the info bar , only removes it's reference - // from this pane - - virtual void RemoveBar( cbBarInfo* pBar ); - - // rect given in the parent frame's coordinates - - virtual void InsertBar( cbBarInfo* pBar, const wxRect& atRect ); - - // inserts bar into the given row, with dimensions and position - // stored in pBarInfo->mBounds. Returns the node of inserted bar - - virtual void InsertBar( cbBarInfo* pBar, cbRowInfo* pIntoRow ); - - // inserts bar, sets its position according to the preferred settings - // given in (*pBarInfo) structure - - virtual void InsertBar( cbBarInfo* pBarInfo ); - - // does not destroy the row object, only removes the corresponding - // node from this pane - virtual void RemoveRow( cbRowInfo* pRow ); - - // does not refresh the inserted row immediatelly, - // if pBeforeRowNode arg. is NULL, row is appended to the end of pane's row list - virtual void InsertRow( cbRowInfo* pRow, cbRowInfo* pBeforeRow ); - - // sets pane's width in pane's coordinates (including margins) - void SetPaneWidth(int width); - - // set the position and dims. of the pane in parent frame's coordinates - void SetBoundsInParent( const wxRect& rect ); - - inline wxRect& GetRealRect() { return mBoundsInParent; } - - // used by upadates-managers - inline RowArrayT& GetRowList() { return mRows; } - - // convenience method - - inline cbRowInfo* GetFirstRow() - - { return mRows.GetCount() ? mRows[0] : NULL; } - - // TRUE, if the given bar node presents in this pane - - bool BarPresent( cbBarInfo* pBar ); - - // retuns height, in pane's coordinates - int GetPaneHeight(); - - int GetAlignment(); - - bool MatchesMask( int paneMask ); - - inline bool IsHorizontal() - { - return (mAlignment == wxTOP || - mAlignment == wxBOTTOM ); - } - - virtual void RecalcLayout(); - - virtual int GetDockingState(); - - // returns result of hit-testing items in the pane, - // see CB_HITTEST_RESULTS enumeration - - virtual int HitTestPaneItems( const wxPoint& pos, // position in pane's coorinates - cbRowInfo** ppRow, - cbBarInfo** ppBar - ); - - void GetBarResizeRange( cbBarInfo* pBar, int* from, int *till, bool forLeftHandle ); - void GetRowResizeRange( cbRowInfo* pRow, int* from, int* till, bool forUpperHandle ); - - cbBarInfo* GetBarInfoByWindow( wxWindow* pBarWnd ); - -public: /* protected really (accessed only by plugins) */ - - // row/bar resizing related helper-methods - - void DrawVertHandle ( wxDC& dc, int x, int y, int height ); - void DrawHorizHandle( wxDC& dc, int x, int y, int width ); - - void ResizeRow( cbRowInfo* pRow, int ofs, bool forUpperHandle ); - void ResizeBar( cbBarInfo* pBar, int ofs, bool forLeftHandle ); - - // cbBarShapeData objects will be placed to given pLst (see comments on cbBarShapeData) - - void GetRowShapeData( cbRowInfo* pRow, wxList* pLst ); - - // sets the shape to the given row, using the data provided in pLst - void SetRowShapeData( cbRowInfo* pRowNode, wxList* pLst ); -}; - -/* - * class declares abstract interface for optimized logic, which should refresh - * areas of frame layout - that actually need to be updated. Should be extanded, - * to implemnet custom updating strategy - */ - -class cbUpdatesManagerBase : public wxObject -{ - DECLARE_ABSTRACT_CLASS( cbUpdatesManagerBase ) - -public: /* protected really, accessed by serializer (if any) */ - - wxFrameLayout* mpLayout; - -public: - cbUpdatesManagerBase(void) - : mpLayout( 0 ) {} - - cbUpdatesManagerBase( wxFrameLayout* pPanel ) - : mpLayout( pPanel ) {} - - void SetLayout( wxFrameLayout* pLayout ) { mpLayout = pLayout; } - - // notificiactions received from frame-layout (in the order, in which - // they usually would be invoked). Custom updates-managers may utilize - // these notifications to implement more "fine-grained" updating strategy - - virtual void OnStartChanges() = 0; - - virtual void OnRowWillChange( cbRowInfo* pRow, cbDockPane* pInPane ) {} - virtual void OnBarWillChange( cbBarInfo* pBar, cbRowInfo* pInRow, cbDockPane* pInPane ) {} - virtual void OnPaneMarginsWillChange( cbDockPane* pPane ) {} - virtual void OnPaneWillChange( cbDockPane* pPane ) {} - - virtual void OnFinishChanges() {} - - // refreshes parts of the frame layout, which need an update - virtual void UpdateNow() = 0; -}; - -/*------------------------------------------------------------ - * "API" for developing custom plugins of Frame Layout Engine - * TODO:: documentation - *------------------------------------------------------------ - */ - -// base class for all control-bar plugin events - -class cbPluginEvent : public wxEvent -{ - // NOTE:: plugin-event does not need to be a dynamic class - -public: - cbDockPane* mpPane; // NULL, if event is not addressed to any specific pane - - /* OLD STUFF:: - // FOR NOW FOR NOW:: all-in-on plugin event structure - wxNode* mpObjNode; - wxNode* mpObjNodeAux; - wxPoint mPos; - wxSize mSize; - wxDC* mpDC; - bool mAuxBoolVal; - */ - - cbPluginEvent( int eventType, cbDockPane* pPane ) - : mpPane( pPane ) - - { m_eventType = eventType; } -}; - -// event types handled by plugins - -#define cbEVT_PL_LEFT_DOWN 0 -#define cbEVT_PL_LEFT_UP 1 -#define cbEVT_PL_RIGHT_DOWN 2 -#define cbEVT_PL_RIGHT_UP 3 -#define cbEVT_PL_MOTION 4 - -#define cbEVT_PL_LEFT_DCLICK 5 - -#define cbEVT_PL_LAYOUT_ROW 6 -#define cbEVT_PL_RESIZE_ROW 7 -#define cbEVT_PL_LAYOUT_ROWS 8 -#define cbEVT_PL_INSERT_BAR 9 -#define cbEVT_PL_RESIZE_BAR 10 -#define cbEVT_PL_REMOVE_BAR 11 -#define cbEVT_PL_SIZE_BAR_WND 12 - -#define cbEVT_PL_DRAW_BAR_DECOR 13 -#define cbEVT_PL_DRAW_ROW_DECOR 14 -#define cbEVT_PL_DRAW_PANE_DECOR 15 -#define cbEVT_PL_DRAW_BAR_HANDLES 16 -#define cbEVT_PL_DRAW_ROW_HANDLES 17 -#define cbEVT_PL_DRAW_ROW_BKGROUND 18 -#define cbEVT_PL_DRAW_PANE_BKGROUND 19 - -#define cbEVT_PL_START_BAR_DRAGGING 20 -#define cbEVT_PL_DRAW_HINT_RECT 21 - -#define cbEVT_PL_START_DRAW_IN_AREA 22 -#define cbEVT_PL_FINISH_DRAW_IN_AREA 23 - -#define cbEVT_PL_CUSTOMIZE_BAR 24 -#define cbEVT_PL_CUSTOMIZE_LAYOUT 25 - -#define wxCUSTOM_CB_PLUGIN_EVENTS_START_AT 100 - -// forward decls, separated by categories - -class cbLeftDownEvent; -class cbLeftUpEvent; -class cbRightDownEvent; -class cbRightUpEvent; -class cbMotionEvent; -class cbLeftDClickEvent; - -class cbLayoutRowEvent; -class cbResizeRowEvent; -class cbLayoutRowsEvent; -class cbInsertBarEvent; -class cbResizeBarEvent; -class cbRemoveBarEvent; -class cbSizeBarWndEvent; - -class cbDrawBarDecorEvent; -class cbDrawRowDecorEvent; -class cbDrawPaneDecorEvent; -class cbDrawBarHandlesEvent; -class cbDrawRowHandlesEvent; -class cbDrawRowBkGroundEvent; -class cbDrawPaneBkGroundEvent; - -class cbStartBarDraggingEvent; -class cbDrawHintRectEvent; - -class cbStartDrawInAreaEvent; -class cbFinishDrawInAreaEvent; - -class cbCustomizeBarEvent; -class cbCustomizeLayoutEvent; - -// defs. for handler-methods - -typedef void (wxEvtHandler::*cbLeftDownHandler )(cbLeftDownEvent&); -typedef void (wxEvtHandler::*cbLeftUpHandler )(cbLeftUpEvent&); -typedef void (wxEvtHandler::*cbRightDownHandler )(cbRightDownEvent&); -typedef void (wxEvtHandler::*cbRightUpHandler )(cbRightUpEvent&); -typedef void (wxEvtHandler::*cbMotionHandler )(cbMotionEvent&); -typedef void (wxEvtHandler::*cbLeftDClickHandler )(cbLeftDClickEvent&); - -typedef void (wxEvtHandler::*cbLayoutRowHandler )(cbLayoutRowEvent&); -typedef void (wxEvtHandler::*cbResizeRowHandler )(cbResizeRowEvent&); -typedef void (wxEvtHandler::*cbLayoutRowsHandler )(cbLayoutRowsEvent&); -typedef void (wxEvtHandler::*cbInsertBarHandler )(cbInsertBarEvent&); -typedef void (wxEvtHandler::*cbResizeBarHandler )(cbResizeBarEvent&); -typedef void (wxEvtHandler::*cbRemoveBarHandler )(cbRemoveBarEvent&); -typedef void (wxEvtHandler::*cbSizeBarWndHandler )(cbSizeBarWndEvent&); - -typedef void (wxEvtHandler::*cbDrawBarDecorHandler )(cbDrawBarDecorEvent&); -typedef void (wxEvtHandler::*cbDrawRowDecorHandler )(cbDrawRowDecorEvent&); -typedef void (wxEvtHandler::*cbDrawPaneDecorHandler )(cbDrawPaneDecorEvent&); -typedef void (wxEvtHandler::*cbDrawBarHandlesHandler )(cbDrawBarHandlesEvent&); -typedef void (wxEvtHandler::*cbDrawRowHandlesHandler )(cbDrawRowHandlesEvent&); -typedef void (wxEvtHandler::*cbDrawRowBkGroundHandler )(cbDrawRowBkGroundEvent&); -typedef void (wxEvtHandler::*cbDrawPaneBkGroundHandler)(cbDrawPaneBkGroundEvent&); - -typedef void (wxEvtHandler::*cbStartBarDraggingHandler )(cbStartBarDraggingEvent&); -typedef void (wxEvtHandler::*cbDrawHintRectHandler )(cbDrawHintRectEvent&); - -typedef void (wxEvtHandler::*cbStartDrawInAreaHandler )(cbStartDrawInAreaEvent&); -typedef void (wxEvtHandler::*cbFinishDrawInAreaHandler)(cbFinishDrawInAreaEvent&); - -typedef void (wxEvtHandler::*cbCustomizeBarHandler )(cbCustomizeBarEvent&); -typedef void (wxEvtHandler::*cbCustomizeLayoutHandler )(cbCustomizeLayoutEvent&); - -// macros for creating event table entries for plugin-events - -#define EVT_PL_LEFT_DOWN(func) { cbEVT_PL_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbLeftDownHandler ) & func }, -#define EVT_PL_LEFT_UP(func) { cbEVT_PL_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbLeftUpHandler ) & func }, -#define EVT_PL_RIGHT_DOWN(func) { cbEVT_PL_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbRightDownHandler ) & func }, -#define EVT_PL_RIGHT_UP(func) { cbEVT_PL_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbRightUpHandler ) & func }, -#define EVT_PL_MOTION(func) { cbEVT_PL_MOTION, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbMotionHandler ) & func }, -#define EVT_PL_LEFT_DCLICK(func) { cbEVT_PL_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbLeftDClickHandler ) & func }, - -#define EVT_PL_LAYOUT_ROW(func) { cbEVT_PL_LAYOUT_ROW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbLayoutRowHandler ) & func }, -#define EVT_PL_RESIZE_ROW(func) { cbEVT_PL_RESIZE_ROW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbResizeRowHandler ) & func }, -#define EVT_PL_LAYOUT_ROWS(func) { cbEVT_PL_LAYOUT_ROWS, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbLayoutRowsHandler ) & func }, -#define EVT_PL_INSERT_BAR(func) { cbEVT_PL_INSERT_BAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbInsertBarHandler ) & func }, -#define EVT_PL_RESIZE_BAR(func) { cbEVT_PL_RESIZE_BAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbResizeBarHandler ) & func }, -#define EVT_PL_REMOVE_BAR(func) { cbEVT_PL_REMOVE_BAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbRemoveBarHandler ) & func }, -#define EVT_PL_SIZE_BAR_WND(func) { cbEVT_PL_SIZE_BAR_WND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbSizeBarWndHandler ) & func }, - -#define EVT_PL_DRAW_BAR_DECOR(func) { cbEVT_PL_DRAW_BAR_DECOR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawBarDecorHandler ) & func }, -#define EVT_PL_DRAW_ROW_DECOR(func) { cbEVT_PL_DRAW_ROW_DECOR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawRowDecorHandler ) & func }, -#define EVT_PL_DRAW_PANE_DECOR(func) { cbEVT_PL_DRAW_PANE_DECOR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawPaneDecorHandler ) & func }, -#define EVT_PL_DRAW_BAR_HANDLES(func) { cbEVT_PL_DRAW_BAR_HANDLES, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawBarHandlesHandler ) & func }, -#define EVT_PL_DRAW_ROW_HANDLES(func) { cbEVT_PL_DRAW_ROW_HANDLES, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawRowHandlesHandler ) & func }, -#define EVT_PL_DRAW_ROW_BKGROUND(func) { cbEVT_PL_DRAW_ROW_BKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawRowBkGroundHandler ) & func }, -#define EVT_PL_DRAW_PANE_BKGROUND(func) { cbEVT_PL_DRAW_PANE_BKGROUND, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawPaneBkGroundHandler) & func }, - -#define EVT_PL_START_BAR_DRAGGING(func) { cbEVT_PL_START_BAR_DRAGGING, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbStartBarDraggingHandler) & func }, -#define EVT_PL_DRAW_HINT_RECT(func) { cbEVT_PL_DRAW_HINT_RECT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbDrawHintRectHandler ) & func }, - -#define EVT_PL_START_DRAW_IN_AREA(func) { cbEVT_PL_START_DRAW_IN_AREA, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbStartDrawInAreaHandler) & func }, -#define EVT_PL_FINISH_DRAW_IN_AREA(func) { cbEVT_PL_FINISH_DRAW_IN_AREA, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbFinishDrawInAreaHandler) & func }, - -#define EVT_PL_CUSTOMIZE_BAR(func) { cbEVT_PL_CUSTOMIZE_BAR, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbCustomizeBarHandler) & func }, -#define EVT_PL_CUSTOMIZE_LAYOUT(func) { cbEVT_PL_CUSTOMIZE_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (cbCustomizeLayoutHandler) & func }, - -/* - * abstract base class for all control-bar related plugins - */ - -class cbPluginBase : public wxEvtHandler -{ - DECLARE_ABSTRACT_CLASS( cbPluginBase ) -public: - - wxFrameLayout* mpLayout; // back-reference to the frame layout - - // specifies panes, for which this plugin receives events - // (see pane masks definitions) - int mPaneMask; - - bool mIsReady; // is TRUE, when plugin is ready to handle events - -public: - cbPluginBase(void) - - : mpLayout ( 0 ), - mPaneMask( wxALL_PANES ), - mIsReady ( FALSE ) - {} - - cbPluginBase( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ) - - : mpLayout ( pPanel ), - mPaneMask( paneMask ), - mIsReady ( FALSE ) - {} - - inline int GetPaneMask() { return mPaneMask; } - - // NOTE:: pointer positions of mouse-events sent to plugins - // are always in pane's coordinates (pane's to which - // this plugin is hooked) - - // destroys the whole plugin chain of connected plagins - virtual ~cbPluginBase(); - - // override this method to do plugin-specific initialization - // (at this point plugin is already attached to the frame layout, - // and pane masks are set) - virtual void OnInitPlugin() { mIsReady = TRUE; } - - bool IsReady() { return mIsReady; } - - // overriden, to determine whether the target pane specified in the - // event, matches the pane mask of this plugin (specific plugins - // do not override this method) - - virtual bool ProcessEvent(wxEvent& event); -}; - -/*** event classes, for each corresponding event type (24 currnetly...uhh) ***/ - -// mouse-events category - -class cbLeftDownEvent : public cbPluginEvent -{ -public: - wxPoint mPos; - - cbLeftDownEvent( const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_LEFT_DOWN, pPane ), - mPos( pos ) - {} -}; - -class cbLeftUpEvent : public cbPluginEvent -{ -public: - wxPoint mPos; - - cbLeftUpEvent( const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_LEFT_UP, pPane ), - mPos( pos ) - {} -}; - -class cbRightDownEvent : public cbPluginEvent -{ -public: - wxPoint mPos; - - cbRightDownEvent( const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_RIGHT_DOWN, pPane ), - mPos( pos ) - {} -}; - -class cbRightUpEvent : public cbPluginEvent -{ -public: - wxPoint mPos; - - cbRightUpEvent( const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_RIGHT_UP, pPane ), - mPos( pos ) - {} -}; - -class cbMotionEvent : public cbPluginEvent -{ -public: - wxPoint mPos; - - cbMotionEvent( const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_MOTION, pPane ), - mPos( pos ) - {} -}; - -class cbLeftDClickEvent : public cbPluginEvent -{ -public: - wxPoint mPos; - - cbLeftDClickEvent( const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_LEFT_DCLICK, pPane ), - mPos( pos ) - {} -}; - -// bar/row events category - -class cbLayoutRowEvent : public cbPluginEvent -{ -public: - cbRowInfo* mpRow; - - cbLayoutRowEvent( cbRowInfo* pRow, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_LAYOUT_ROW, pPane ), - mpRow( pRow ) - {} -}; - -class cbResizeRowEvent : public cbPluginEvent -{ -public: - cbRowInfo* mpRow; - int mHandleOfs; - bool mForUpperHandle; - - cbResizeRowEvent( cbRowInfo* pRow, int handleOfs, bool forUpperHandle, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_RESIZE_ROW, pPane ), - mpRow( pRow ), - mHandleOfs( handleOfs ), - mForUpperHandle( forUpperHandle ) - {} -}; - -class cbLayoutRowsEvent : public cbPluginEvent -{ -public: - - cbLayoutRowsEvent( cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_LAYOUT_ROWS, pPane ) - {} -}; - -class cbInsertBarEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - cbRowInfo* mpRow; - - cbInsertBarEvent( cbBarInfo* pBar, cbRowInfo* pIntoRow, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_INSERT_BAR, pPane ), - - mpBar( pBar ), - mpRow( pIntoRow ) - {} -}; - -class cbResizeBarEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - cbRowInfo* mpRow; - - cbResizeBarEvent( cbBarInfo* pBar, cbRowInfo* pRow, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_RESIZE_BAR, pPane ), - mpBar( pBar ), - mpRow( pRow ) - {} -}; - -class cbRemoveBarEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - - cbRemoveBarEvent( cbBarInfo* pBar, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_REMOVE_BAR, pPane ), - mpBar( pBar ) - {} -}; - -class cbSizeBarWndEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - wxRect mBoundsInParent; - - cbSizeBarWndEvent( cbBarInfo* pBar, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_SIZE_BAR_WND, pPane ), - mpBar( pBar ), - mBoundsInParent( pBar->mBoundsInParent ) - {} -}; - -class cbDrawBarDecorEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - wxDC* mpDc; - wxRect mBoundsInParent; - - cbDrawBarDecorEvent( cbBarInfo* pBar, wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_BAR_DECOR, pPane ), - mpBar( pBar ), - mpDc( &dc ), - mBoundsInParent( pBar->mBoundsInParent ) - {} -}; - -class cbDrawRowDecorEvent : public cbPluginEvent -{ -public: - cbRowInfo* mpRow; - wxDC* mpDc; - - cbDrawRowDecorEvent( cbRowInfo* pRow, wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_ROW_DECOR, pPane ), - mpRow( pRow ), - mpDc( &dc ) - {} -}; - -class cbDrawPaneDecorEvent : public cbPluginEvent -{ -public: - wxDC* mpDc; - - cbDrawPaneDecorEvent( wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_PANE_DECOR, pPane ), - mpDc( &dc ) - {} -}; - -class cbDrawBarHandlesEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - wxDC* mpDc; - - cbDrawBarHandlesEvent( cbBarInfo* pBar, wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_BAR_HANDLES, pPane ), - mpBar( pBar ), - mpDc( &dc ) - {} -}; - -class cbDrawRowHandlesEvent : public cbPluginEvent -{ -public: - cbRowInfo* mpRow; - wxDC* mpDc; - - cbDrawRowHandlesEvent( cbRowInfo* pRow, wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_ROW_HANDLES, pPane ), - mpRow( pRow ), - mpDc( &dc ) - {} -}; - -class cbDrawRowBkGroundEvent : public cbPluginEvent -{ -public: - cbRowInfo* mpRow; - wxDC* mpDc; - - cbDrawRowBkGroundEvent( cbRowInfo* pRow, wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_ROW_BKGROUND, pPane ), - mpRow( pRow ), - mpDc( &dc ) - {} -}; - -class cbDrawPaneBkGroundEvent : public cbPluginEvent -{ -public: - wxDC* mpDc; - - cbDrawPaneBkGroundEvent( wxDC& dc, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_DRAW_PANE_BKGROUND, pPane ), - mpDc( &dc ) - {} -}; - -class cbStartBarDraggingEvent : public cbPluginEvent -{ -public: - cbBarInfo* mpBar; - wxPoint mPos; // is given in frame's coordinates - - cbStartBarDraggingEvent( cbBarInfo* pBar, const wxPoint& pos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_START_BAR_DRAGGING, pPane ), - mpBar( pBar ), - mPos( pos ) - {} -}; - -class cbDrawHintRectEvent : public cbPluginEvent -{ -public: - wxRect mRect; // is given in frame's coordinates - - - bool mLastTime; // indicates that this event finishes "session" of on-screen drawing, - // thus associated resources can be freed now - bool mEraseRect; // does not have any impact, if recangle is drawn using XOR-mask - - bool mIsInClient;// in cleint area hint could be drawn differently, - // e.g. with fat/hatched border - - - cbDrawHintRectEvent( const wxRect& rect, bool isInClient, bool eraseRect, bool lastTime ) - - : cbPluginEvent( cbEVT_PL_DRAW_HINT_RECT, 0 ), - mRect ( rect ), - mLastTime ( lastTime ), - mEraseRect ( eraseRect ), - mIsInClient( isInClient ) - {} -}; - -class cbStartDrawInAreaEvent : public cbPluginEvent -{ -public: - wxRect mArea; - wxDC** mppDc; // points to pointer, where the reference - // to the obtained buffer-context should be placed - - cbStartDrawInAreaEvent( const wxRect& area, wxDC** ppDCForArea, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_START_DRAW_IN_AREA, pPane ), - mArea( area ), - mppDc( ppDCForArea ) - {} -}; - -class cbFinishDrawInAreaEvent : public cbPluginEvent -{ -public: - wxRect mArea; - - cbFinishDrawInAreaEvent( const wxRect& area, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_FINISH_DRAW_IN_AREA, pPane ), - mArea( area ) - {} -}; - -class cbCustomizeBarEvent : public cbPluginEvent -{ -public: - wxPoint mClickPos; // in parent frame's coordinates - cbBarInfo* mpBar; - - cbCustomizeBarEvent( cbBarInfo* pBar, const wxPoint& clickPos, cbDockPane* pPane ) - - : cbPluginEvent( cbEVT_PL_CUSTOMIZE_BAR, pPane ), - mClickPos( clickPos ), - mpBar( pBar ) - {} -}; - -class cbCustomizeLayoutEvent : public cbPluginEvent -{ -public: - wxPoint mClickPos; // in parent frame's coordinates - - cbCustomizeLayoutEvent( const wxPoint& clickPos ) - - : cbPluginEvent( cbEVT_PL_CUSTOMIZE_LAYOUT, 0 ), - mClickPos( clickPos ) - {} -}; - - -#endif diff --git a/utils/framelayout/src/dynbarhnd.h b/utils/framelayout/src/dynbarhnd.h deleted file mode 100644 index ca96c4507c..0000000000 --- a/utils/framelayout/src/dynbarhnd.h +++ /dev/null @@ -1,18 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __DYNBARHND_G__ -#define __DYNBARHND_G__ - -#include "controlbar.h" -#include " - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/dyntbar.cpp b/utils/framelayout/src/dyntbar.cpp deleted file mode 100644 index a5019a86c7..0000000000 --- a/utils/framelayout/src/dyntbar.cpp +++ /dev/null @@ -1,454 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: ??/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dyntbar.cpp" -#pragma interface "dyntbar.cpp" -#endif - -// 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/utils.h" // import wxMin,wxMax macros - -#include "dyntbar.h" -#include "newbmpbtn.h" - -IMPLEMENT_DYNAMIC_CLASS(wxDynamicToolBar, wxToolBarBase) - -BEGIN_EVENT_TABLE( wxDynamicToolBar, wxToolBarBase ) - - EVT_SIZE ( wxDynamicToolBar::OnSize ) - EVT_PAINT( wxDynamicToolBar::OnPaint ) - //EVT_ERASE_BACKGROUND( wxDynamicToolBar::OnEraseBackground ) - -END_EVENT_TABLE() - -/***** Implementation for class wxDynToolInfo *****/ - -IMPLEMENT_DYNAMIC_CLASS(wxDynToolInfo, wxToolLayoutItem) - -/***** Implementation for class wxDynamicToolBar *****/ - -wxDynamicToolBar::wxDynamicToolBar() - : mpLayoutMan( NULL ), - mSepartorSize( 8 ), - mVertGap ( 0 ), - mHorizGap( 0 ) -{ -} - -wxDynamicToolBar::wxDynamicToolBar(wxWindow *parent, const wxWindowID id, - const wxPoint& pos, const wxSize& size, - const long style, const int orientation, - const int RowsOrColumns, const wxString& name ) - : mpLayoutMan( NULL ), - mSepartorSize( 8 ), - mVertGap ( 0 ), - mHorizGap( 0 ) -{ - Create(parent, id, pos, size, style, orientation, RowsOrColumns, name); - - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_3DFACE) ); -} - -bool wxDynamicToolBar::Create(wxWindow *parent, const wxWindowID id, - const wxPoint& pos, - const wxSize& size, - const long style, - const int orientation, const int RowsOrColumns, - const wxString& name) -{ - // cut&pasted from wxtbatsmpl.h - - if ( ! wxWindow::Create(parent, id, pos, size, style, name) ) - return FALSE; - - SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_3DFACE )); - - return TRUE; -} - -bool wxDynamicToolBar::Realize(void) -{ - // FOR NOW:: nothing - return TRUE; -} - -wxDynamicToolBar::~wxDynamicToolBar(void) -{ - if ( mpLayoutMan ) delete mpLayoutMan; - - for( size_t i = 0; i != mTools.Count(); ++i ) - - delete mTools[i]; -} - -void wxDynamicToolBar::AddTool( int toolIndex, - wxWindow* pToolWindow, - const wxSize& size - ) -{ - wxDynToolInfo* pInfo = new wxDynToolInfo(); - - pInfo->mpToolWnd = pToolWindow; - pInfo->mIndex = toolIndex; - pInfo->mIsSeparator = FALSE; - - int x,y; - pToolWindow->GetSize( &x, &y ); - pInfo->mRealSize.x = x; - pInfo->mRealSize.y = y; - pInfo->mRect.width = x; - pInfo->mRect.height = y; - - mTools.Add( pInfo ); -} - -void wxDynamicToolBar::AddTool( int toolIndex, - const wxString& imageFileName, - int imageFileType, - const wxString& labelText, bool alignTextRight, - bool isFlat ) -{ - wxNewBitmapButton* pBtn = - - new wxNewBitmapButton( imageFileName, imageFileType, - labelText, - ( alignTextRight ) - ? NB_ALIGN_TEXT_RIGHT - : NB_ALIGN_TEXT_BOTTOM, - isFlat - ); - - pBtn->Create( this, toolIndex ); - - pBtn->Reshape(); - - AddTool( toolIndex, pBtn ); -} -void wxDynamicToolBar::AddTool( int toolIndex, wxBitmap labelBmp, - const wxString& labelText, bool alignTextRight, - bool isFlat ) -{ - wxNewBitmapButton* pBtn = - - new wxNewBitmapButton( labelBmp, - labelText, - ( alignTextRight ) - ? NB_ALIGN_TEXT_RIGHT - : NB_ALIGN_TEXT_BOTTOM, - isFlat - ); - - pBtn->Create( this, toolIndex ); - - pBtn->Reshape(); - - AddTool( toolIndex, pBtn ); -} - - - wxToolBarTool* - wxDynamicToolBar::AddTool(const int toolIndex, const wxBitmap& bitmap, - const wxBitmap& pushedBitmap, - const bool toggle, const long xPos, - const long yPos, wxObject *clientData, - const wxString& helpString1, const wxString& helpString2) -{ - wxNewBitmapButton* pBmpBtn = new wxNewBitmapButton( bitmap ); - - pBmpBtn->Create( this, toolIndex ); - - pBmpBtn->Reshape(); - - AddTool( toolIndex, pBmpBtn ); - - return NULL; -} - - -wxDynToolInfo* wxDynamicToolBar::GetToolInfo( int toolIndex ) -{ - for( size_t i = 0; i != mTools.Count(); ++i ) - - if ( mTools[i]->mIndex == toolIndex ) return mTools[i]; - - return NULL; -} - -void wxDynamicToolBar::RemveTool( int toolIndex ) -{ - for( size_t i = 0; i != mTools.Count(); ++i ) - - if ( mTools[i]->mIndex == toolIndex ) - { - if ( mTools[i]->mpToolWnd ) - - mTools[i]->mpToolWnd->Destroy(); - - mTools.Remove( i ); - - Layout(); - - return; - } - - // TODO:: if not found, should it be an assertion? -} - -void wxDynamicToolBar::AddSeparator( wxWindow* pSepartorWnd ) -{ - wxDynToolInfo* pInfo = new wxDynToolInfo(); - - pInfo->mpToolWnd = pSepartorWnd; - pInfo->mIndex = -1; - pInfo->mIsSeparator = TRUE; - - if ( pSepartorWnd ) - { - pSepartorWnd->Create( this, -1 ); - - int x,y; - pSepartorWnd->GetSize( &x, &y ); - pInfo->mRealSize.x = x; - pInfo->mRealSize.y = y; - - pInfo->mRect.width = x; - pInfo->mRect.height = y; - } - else - { - pInfo->mRealSize.x = mSepartorSize; - pInfo->mRealSize.y = 0; - - pInfo->mRect.width = mSepartorSize; - pInfo->mRect.height = 0; - } - - mTools.Add( pInfo ); -} - -void wxDynamicToolBar::OnEraseBackground( wxEraseEvent& event ) -{ - // FOR NOW:: nothing -} - -void wxDynamicToolBar::OnSize( wxSizeEvent& event ) -{ - //SetBackgroundColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_3DFACE ) ); - - Layout(); -} - -void wxDynamicToolBar::DrawSeparator( wxDynToolInfo& info, wxDC& dc ) -{ - // check the orientation of separator - if ( info.mRect.width < info.mRect.height ) - { - int midX = info.mRect.x + info.mRect.width/2 - 1; - - dc.SetPen( *wxGREY_PEN ); - dc.DrawLine( midX, info.mRect.y, - midX, info.mRect.y + info.mRect.height+1 ); - - dc.SetPen( *wxWHITE_PEN ); - dc.DrawLine( midX+1, info.mRect.y, - midX+1, info.mRect.y + info.mRect.height+1 ); - } - else - { - int midY = info.mRect.y + info.mRect.height/2 - 1; - - dc.SetPen( *wxGREY_PEN ); - dc.DrawLine( info.mRect.x, midY, - info.mRect.x + info.mRect.width+1, midY ); - - dc.SetPen( *wxWHITE_PEN ); - dc.DrawLine( info.mRect.x, midY + 1, - info.mRect.x + info.mRect.width+1, midY + 1 ); - } -} - -void wxDynamicToolBar::OnPaint( wxPaintEvent& event ) -{ - // draw separators if any - - wxPaintDC dc(this); - - for( size_t i = 0; i != mTools.Count(); ++i ) - - if ( mTools[i]->mIsSeparator ) - { - // check if separator doesn't have it's own window - // if so, then draw it using built-in drawing method - - if ( !mTools[i]->mpToolWnd ) - - DrawSeparator( *mTools[i], dc ); - } -} - -// FOR NOW:: quick fix -#include "wx/choice.h" - -void wxDynamicToolBar::SizeToolWindows() -{ - for( size_t i = 0; i != mTools.Count(); ++i ) - { - wxDynToolInfo& info = *mTools[i]; - - if ( !info.mIsSeparator ) - { - - // center real rectangle within the rectangle - // provided by the layout manager - - int x = info.mRect.x; - int y = info.mRect.y + (info.mRect.height - info.mRealSize.y)/2; - - // FOR NOW FOR NOW:: quick & dirty fix - if ( info.mpToolWnd->IsKindOf( CLASSINFO( wxChoice ) ) ) - { - info.mpToolWnd->SetSize( x,y, - info.mRealSize.x - 3, - info.mRealSize.y); - } - else - info.mpToolWnd->SetSize( x,y, - info.mRealSize.x, - info.mRealSize.y ); - } - - // TBD:: size separator window if present - } -} - -bool wxDynamicToolBar::Layout() -{ - if ( !mpLayoutMan ) mpLayoutMan = CreateDefaulLayout(); - - int x,y; - GetSize( &x, &y ); - wxSize wndDim(x,y); - wxSize result; - - wxLayoutItemArrayT items; - - // safe conversion - for( size_t i = 0; i != mTools.Count(); ++i ) items.Add( mTools[i] ); - - mpLayoutMan->Layout( wndDim, result, items, mVertGap, mHorizGap );; - - SizeToolWindows(); - return TRUE; -} - -void wxDynamicToolBar::GetPreferredDim( const wxSize& givenDim, wxSize& prefDim ) -{ - if ( !mpLayoutMan ) mpLayoutMan = CreateDefaulLayout(); - - wxLayoutItemArrayT items; - - // safe conversion - for( size_t i = 0; i != mTools.Count(); ++i ) items.Add( mTools[i] ); - - mpLayoutMan->Layout( givenDim, prefDim, items, mVertGap, mHorizGap );; -} - -void wxDynamicToolBar::SetLayout( LayoutManagerBase* pLayout ) -{ - if ( mpLayoutMan ) delete mpLayoutMan; - - mpLayoutMan = pLayout; - - Layout(); -} - -void wxDynamicToolBar::EnableTool(const int toolIndex, const bool enable ) -{ - wxDynToolInfo* pInfo = GetToolInfo( toolIndex ); - - if ( !pInfo ) return; - - if ( pInfo->mIsSeparator || !pInfo->mpToolWnd ) return; - - pInfo->mpToolWnd->Enable( enable ); -} - -/***** Implementation for class BagLayout *****/ - -void BagLayout::Layout( const wxSize& parentDim, - wxSize& resultingDim, - wxLayoutItemArrayT& items, - int horizGap, - int vertGap - ) -{ - int maxWidth = 0; - int curY = 0; - int nRows = 0; - - size_t i = 0; - - while( i < items.Count() ) - { - int curX = 0; - int height = 0; - int nItems = 0; - - int firstItem = i; - int itemsInRow = 0; - - if ( nRows > 0 ) curY += vertGap; - - // step #1 - arrange horizontal positions of items in the row - - do - { - if ( itemsInRow > 0 ) curX += horizGap; - - wxRect& r = items[i]->mRect; - - if ( curX + r.width > parentDim.x ) - - if ( itemsInRow > 0 ) break; - - r.x = curX; - r.y = curY; - - curX += r.width; - - height = wxMax( height, r.height ); - - ++itemsInRow; - ++i; - - } while( i < items.Count() ); - - curY += height; - - maxWidth = wxMax( maxWidth, curX ); - } - - resultingDim.x = maxWidth; - resultingDim.y = curY; -} diff --git a/utils/framelayout/src/dyntbar.h b/utils/framelayout/src/dyntbar.h deleted file mode 100644 index ca9225cad5..0000000000 --- a/utils/framelayout/src/dyntbar.h +++ /dev/null @@ -1,167 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: ??/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __DYNTBAR_G__ -#define __DYNTBAR_G__ - -#include "wx/tbarbase.h" -#include "wx/dynarray.h" - -// layout item - -class wxToolLayoutItem : public wxObject -{ -public: - wxRect mRect; - bool mIsSeparator; -}; - -class wxDynToolInfo; - -typedef wxToolLayoutItem* wxToolLayoutItemPtrT; -typedef wxDynToolInfo* wxDynToolInfoPtrT; - - -WX_DEFINE_ARRAY( wxToolLayoutItemPtrT, wxLayoutItemArrayT ); -WX_DEFINE_ARRAY( wxDynToolInfoPtrT, wxDynToolInfoArrayT ); - -// base class for layouting algorithm implementations - -class LayoutManagerBase -{ -public: - virtual void Layout( const wxSize& parentDim, - wxSize& resultingDim, - wxLayoutItemArrayT& items, - int horizGap, - int vertGap ) = 0; - - virtual ~LayoutManagerBase() {} -}; - -// layouts items in left-to-right order from -// top towards bottom - -class BagLayout : public LayoutManagerBase -{ -public: - virtual void Layout( const wxSize& parentDim, - wxSize& resultingDim, - wxLayoutItemArrayT& items, - int horizGap, - int vertGap ); -}; - -class wxDynToolInfo : public wxToolLayoutItem -{ - DECLARE_DYNAMIC_CLASS(wxDynToolInfo) - -public: - wxWindow* mpToolWnd; - int mIndex; - wxSize mRealSize; -}; - -// layouting orientations for tools - -#define LO_HORIZONTAL 0 -#define LO_VERTICAL 1 -#define LO_FIT_TO_WINDOW 2 - -// class manages containment and layouting of tool-windows - -class wxDynamicToolBar : public wxToolBarBase -{ - DECLARE_DYNAMIC_CLASS(wxDynamicToolBar) -protected: - - friend class wxDynamicToolBarSerializer; - - wxDynToolInfoArrayT mTools; - LayoutManagerBase* mpLayoutMan; - -protected: - virtual void SizeToolWindows(); - -public: /* public properties */ - - int mSepartorSize; // default: 8 - int mVertGap; // default: 0 - int mHorizGap; // default: 0 - -public: - wxDynamicToolBar(); - - wxDynamicToolBar(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - const long style = wxNO_BORDER, const int orientation = wxVERTICAL, - const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); - - ~wxDynamicToolBar(void); - - bool Create(wxWindow *parent, const wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - const long style = wxNO_BORDER, const int orientation = wxVERTICAL, const int RowsOrColumns = 1, const wxString& name = wxToolBarNameStr); - - // overridables - - virtual void AddTool( int toolIndex, - wxWindow* pToolWindow, - const wxSize& size = wxDefaultSize ); - - virtual void AddTool( int toolIndex, - const wxString& imageFileName, - int imageFileType = wxBITMAP_TYPE_BMP, - const wxString& labelText = "", bool alignTextRight = FALSE, - bool isFlat = TRUE ); - virtual void AddTool( int toolIndex, wxBitmap labelBmp, - const wxString& labelText = "", bool alignTextRight = FALSE, - bool isFlat = TRUE ); - - // method from wxToolBarBase (for compatibility), only - // first two arguments are valid - - virtual wxToolBarTool *AddTool(const int toolIndex, const wxBitmap& bitmap, const wxBitmap& pushedBitmap = wxNullBitmap, - const bool toggle = FALSE, const long xPos = -1, const long yPos = -1, wxObject *clientData = NULL, - const wxString& helpString1 = "", const wxString& helpString2 = ""); - - virtual void AddSeparator( wxWindow* pSepartorWnd = NULL ); - - wxDynToolInfo* GetToolInfo( int toolIndex ); - - void RemveTool( int toolIndex ); - - // the default implementation draws shaded line - virtual void DrawSeparator( wxDynToolInfo& info, wxDC& dc ); - - // see definitions of orientation types - virtual bool Layout(); - - virtual void GetPreferredDim( const wxSize& givenDim, wxSize& prefDim ); - - virtual LayoutManagerBase* CreateDefaulLayout() { return new BagLayout(); } - - virtual void SetLayout( LayoutManagerBase* pLayout ); - - virtual void EnableTool(const int toolIndex, const bool enable = TRUE); - - // event handlers - - void OnSize( wxSizeEvent& event ); - void OnPaint( wxPaintEvent& event ); - void OnEraseBackground( wxEraseEvent& event ); - - // overriden from wxToolBarBase - - virtual bool Realize(void); - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/utils/framelayout/src/dyntbarhnd.cpp b/utils/framelayout/src/dyntbarhnd.cpp deleted file mode 100644 index fdfe32d2c9..0000000000 --- a/utils/framelayout/src/dyntbarhnd.cpp +++ /dev/null @@ -1,50 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "dyntbar.cpp" -#pragma interface "dyntbar.cpp" -#endif - -// 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 "dyntbarhnd.h" - -/***** Implementation for class cbDynToolBarDimHandler *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbDynToolBarDimHandler, cbBarDimHandlerBase ) - -void cbDynToolBarDimHandler::OnChangeBarState(cbBarInfo* pBar, int newState ) -{ - // nothing -} - -void cbDynToolBarDimHandler::OnResizeBar( cbBarInfo* pBar, - const wxSize& given, - wxSize& preferred ) -{ - wxASSERT( pBar->mpBarWnd ); // DBG:: should be present - - wxDynamicToolBar* pTBar = (wxDynamicToolBar*)pBar->mpBarWnd; - - pTBar->GetPreferredDim( given, preferred ); -} diff --git a/utils/framelayout/src/dyntbarhnd.h b/utils/framelayout/src/dyntbarhnd.h deleted file mode 100644 index ca1aa6247b..0000000000 --- a/utils/framelayout/src/dyntbarhnd.h +++ /dev/null @@ -1,26 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 23/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __DYNTBARHND_G__ -#define __DYNTBARHND_G__ - -#include "controlbar.h" -#include "dyntbar.h" - -class cbDynToolBarDimHandler : public cbBarDimHandlerBase -{ - DECLARE_DYNAMIC_CLASS( cbDynToolBarDimHandler ) -public: - void OnChangeBarState(cbBarInfo* pBar, int newState ); - void OnResizeBar( cbBarInfo* pBar, const wxSize& given, wxSize& preferred ); -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/frmview.cpp b/utils/framelayout/src/frmview.cpp deleted file mode 100644 index 690bca3eed..0000000000 --- a/utils/framelayout/src/frmview.cpp +++ /dev/null @@ -1,449 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 02/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "frmview.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "frmview.h" -#include "wx/utils.h" - -/***** Implementation for class wxFrameView *****/ - -BEGIN_EVENT_TABLE( wxFrameView, wxEvtHandler ) - - EVT_IDLE( wxFrameView::OnIdle ) - -END_EVENT_TABLE() - -void wxFrameView::OnIdle( wxIdleEvent& event) -{ - event.Skip(); - - if ( mDoToolUpdates ) - { - int o; - ++o; - - // TBD:: - } -} - -/*** public methods ***/ - -wxFrameView::wxFrameView() - - : mpLayout( NULL ), - mpFrameMgr( NULL ) -{} - -wxFrameView::~wxFrameView() -{ - if ( mpLayout ) delete mpLayout; -} - -wxFrame* wxFrameView::GetParentFrame() -{ - return mpFrameMgr->GetParentFrame(); -} - -wxWindow* wxFrameView::GetClientWindow() -{ - return mpFrameMgr->GetClientWindow(); -} - -void wxFrameView::Activate() -{ - mpFrameMgr->ActivateView( this ); -} - -void wxFrameView::Deactivate() -{ - mpFrameMgr->DeactivateCurrentView(); -} - -void wxFrameView::CreateLayout() -{ - mpLayout = new wxFrameLayout( GetParentFrame(), mpFrameMgr->GetClientWindow(), FALSE ); -} - -wxFrameLayout* wxFrameView::GetLayout() -{ - return mpLayout; -} - -void wxFrameView::SetToolUpdates( bool doToolUpdates ) -{ - mDoToolUpdates = doToolUpdates; -} - -void wxFrameView::SetLayout( wxFrameLayout* pLayout ) -{ - if ( mpLayout ) delete mpLayout; - - mpLayout = pLayout; -} - -wxFrameManager& wxFrameView::GetFrameManager() -{ - return *mpFrameMgr; -} - -void wxFrameView::RegisterMenu( const wxString& topMenuName ) -{ - mTopMenus.Add( topMenuName ); -} - -#if 0 - -/***** Implementation for class wxFrameViewSerializer *****/ - -// NOTE:: currently "stipple" property of the brush is not serialized - -class wxFrameViewSerializer : public wxEvtHandlerSerializer -{ - DECLARE_SERIALIZER_CLASS( wxFrameViewSerializer ); - - static void Serialize( wxObject* pObj, wxObjectStorage& store ); -}; - -IMPLEMENT_SERIALIZER_CLASS( wxFrameView, - wxFrameViewSerializer, - wxFrameViewSerializer::Serialize, - NO_CLASS_INIT ) - -void wxFrameViewSerializer::Serialize( wxObject* pObj, wxObjectStorage& store ) -{ - // wxFrameViewSerializer is a kind of wxEvtHandler - peform serialization of - // the base class first - - info.SerializeInherited( pObj, store ); - - wxFrameView* pView = (wxFrameView*)pObj; - - store.XchgObjPtr( (wxObject**) &pView->mpFrameMgr ); - store.XchgObjPtr( (wxObject**) &pView->mpLayout ); - store.XchgBool ( pView->mDoToolUpdates ); - - // serialize members in derived classes - - pView->OnSerialize( store ); -} - -#endif - -/***** Implementation for class wxFrameManager *****/ - -void wxFrameManager::DoSerialize( wxObjectStorage& store ) -{ -#if 0 - store.AddInitialRef( mpFrameWnd ); - store.AddInitialRef( this ); - if ( mpClientWnd ) store.AddInitialRef( mpClientWnd ); - - store.XchgObj( (wxObject*) &mViews ); - store.XchgInt( mActiveViewNo ); - - store.Finalize(); // finish serialization -#endif -} - -void wxFrameManager::DestroyViews() -{ - DeactivateCurrentView(); - - wxNode* pNode = mViews.First(); - - while( pNode ) - { - delete (wxFrameView*)pNode->Data(); - - pNode = pNode->Next(); - } - - if ( mActiveViewNo != -1 && GetParentFrame() ) - - GetParentFrame()->SetNextHandler( NULL ); -} - -int wxFrameManager::GetViewNo( wxFrameView* pView ) -{ - wxNode* pNode = mViews.First(); - int n = 0; - - while( pNode ) - { - if ( (wxFrameView*)pNode->Data() == pView ) - - return n; - - ++n; - pNode = pNode->Next(); - } - - return -1; -} - -void wxFrameManager::EnableMenusForView( wxFrameView* pView, bool enable ) -{ - wxMenuBar* pMenuBar = GetParentFrame()->GetMenuBar(); - int count = pMenuBar->GetMenuCount(); - - if ( !pMenuBar ) return; - - wxStringListNode* pNode = pView->mTopMenus.GetFirst(); - - while( pNode ) - { - for( int i = 0; i != count; ++i ) - { - if ( pMenuBar->GetMenu(i)->GetTitle() == pNode->GetData() ) - - pMenuBar->EnableTop( i, enable ); - } - - pNode = pNode->GetNext(); - } -} - -void wxFrameManager::SyncAllMenus() -{ - wxNode* pNode = mViews.First(); - int i = 0; - - while( pNode ) - { - if ( i != mActiveViewNo ) - - EnableMenusForView( (wxFrameView*)pNode->GetData(), FALSE ); - - pNode = pNode->Next(); - } - - EnableMenusForView( GetView( mActiveViewNo ), TRUE ); -} - -/*** public methods ***/ - -wxFrameManager::wxFrameManager() - - : mpFrameWnd( NULL ), - mActiveViewNo( -1 ), - mpClientWnd( NULL ) -{ -} - -wxFrameManager::~wxFrameManager() -{ - SaveViewsNow(); - DestroyViews(); -} - -void wxFrameManager::Init( wxWindow* pMainFrame, const wxString& settingsFile ) -{ - mSettingsFile = settingsFile; - mpFrameWnd = pMainFrame; - - wxNode* pNode = mViews.First(); - - while( pNode ) - { - wxFrameView* pView = (wxFrameView*)pNode->Data(); - - pView->OnInit(); - pView->OnInitMenus(); - - pNode = pNode->Next(); - } - - if ( !ReloadViews() ) - { - // if loading of settings file failed (e.g. was not found), - // do recreation of items in each view - - pNode = mViews.First(); - - while( pNode ) - { - wxFrameView* pView = (wxFrameView*)pNode->Data(); - - pView->OnRecreate(); - - pNode = pNode->Next(); - } - } - - if ( mActiveViewNo >= mViews.Number() ) - - mActiveViewNo = -1; - - ActivateView( GetView( ( mActiveViewNo == -1 ) ? 0 : mActiveViewNo ) ); - - SyncAllMenus(); -} - -void wxFrameManager::AddView( wxFrameView* pFrmView ) -{ - mViews.Append( pFrmView ); - - pFrmView->mpFrameMgr = this; // back ref. -} - -void wxFrameManager::RemoveView( wxFrameView* pFrmView ) -{ - // TBD:: - wxASSERT(0); -} - -int wxFrameManager::GetActiveViewNo() -{ - return mActiveViewNo; -} - -wxFrameView* wxFrameManager::GetActiveView() -{ - wxNode* pNode = mViews.Nth( mActiveViewNo ); - - if ( pNode ) return (wxFrameView*)pNode->Data(); - else return NULL; -} - -wxNode* wxFrameManager::GetActiveViewNode() -{ - return mViews.Nth( mActiveViewNo ); -} - -wxFrame* wxFrameManager::GetParentFrame() -{ - return ((wxFrame*)mpFrameWnd); -} - -wxWindow* wxFrameManager::GetParentWindow() -{ - return mpFrameWnd; -} - -wxFrameView* wxFrameManager::GetView( int viewNo ) -{ - wxNode* pNode = mViews.Nth( viewNo ); - - if ( pNode ) return (wxFrameView*)pNode->Data(); - else return NULL; -} - -void wxFrameManager::ActivateView( int viewNo ) -{ - ActivateView( GetView( viewNo ) ); -} - -void wxFrameManager::ActivateView( wxFrameView* pFrmView ) -{ - DeactivateCurrentView(); - - mActiveViewNo = GetViewNo( pFrmView ); - - if ( pFrmView->mpLayout ) - - pFrmView->mpLayout->Activate(); - - // FIXME:: we would have used PushEventHandler(), - // but wxFrame bypasses attached handlers when - // handling wxCommand events! - - GetParentFrame()->PushEventHandler( pFrmView ); - - EnableMenusForView( pFrmView, TRUE ); -} - -void wxFrameManager::SetClinetWindow( wxWindow* pFrameClient ) -{ - if ( mpClientWnd ) mpClientWnd->Destroy(); - - mpClientWnd = pFrameClient; -} - -wxWindow* wxFrameManager::GetClientWindow() -{ - if ( !mpClientWnd ) - - mpClientWnd = new wxWindow( GetParentFrame(), -1 ); - - return mpClientWnd; -} - -void wxFrameManager::DeactivateCurrentView() -{ - if ( mActiveViewNo == -1 ) return; - - wxFrameView* pView = GetActiveView(); - - // FOR NOW:: - wxASSERT( GetParentFrame()->GetEventHandler() == pView ); - - GetParentFrame()->PopEventHandler(); - - if ( pView->mpLayout ) - - pView->mpLayout->Deactivate(); - - EnableMenusForView( pView, FALSE ); -} - -void wxFrameManager::SaveViewsNow() -{ -#if 0 - if ( mSettingsFile == "" ) return; - - wxIOStreamWrapper stm; - stm.CreateForOutput( mSettingsFile ); - - mStore.SetDataStream( stm ); - DoSerialize( mStore ); -#endif -} - -bool wxFrameManager::ReloadViews() -{ - return FALSE; - -#if 0 - if ( mSettingsFile == "" || !wxFileExists( mSettingsFile ) ) - - return FALSE; - - DestroyViews(); - - wxIOStreamWrapper stm; - stm.CreateForInput( mSettingsFile ); - - mStore.SetDataStream( stm ); - DoSerialize( mStore ); -#endif - - return TRUE; -} - -bool wxFrameManager::ViewsAreLoaded() -{ - return ( mViews.Number() != 0 ); -} \ No newline at end of file diff --git a/utils/framelayout/src/frmview.h b/utils/framelayout/src/frmview.h deleted file mode 100644 index 8b49be36aa..0000000000 --- a/utils/framelayout/src/frmview.h +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 02/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __FRMVIEW_G__ -#define __FRMVIEW_G__ - -#include "wx/module.h" - -#if 0 -#include "objstore.h" -#endif - -class wxObjectStorage; - -#include "controlbar.h" - -class wxFrameManager; - -class wxFrameView : public wxEvtHandler -{ -protected: - wxStringList mTopMenus; - wxFrameLayout* mpLayout; - wxFrameManager* mpFrameMgr; - bool mDoToolUpdates; - - friend class wxFrameManager; - friend class wxFrameViewSerializer; - -protected: - void OnIdle( wxIdleEvent& event); - -public: - wxFrameView(); - ~wxFrameView(); - - virtual void Activate(); - virtual void Deactivate(); - - wxFrame* GetParentFrame(); - wxWindow* GetClientWindow(); - - wxFrameManager& GetFrameManager(); - - void RegisterMenu( const wxString& topMenuName ); - - void CreateLayout(); - wxFrameLayout* GetLayout(); - void SetLayout( wxFrameLayout* pLayout ); - void SetToolUpdates( bool doToolUpdates = TRUE ); - - - // hooks for specific frame-views - - virtual void OnInit() {} - - virtual void OnSerialize( wxObjectStorage& store ) {} - virtual void OnActiveate() {} - virtual void OnDeactivate() {} - - // imp. is mandatory - virtual void OnRecreate() {} - virtual void OnInitMenus() {} - - DECLARE_EVENT_TABLE() -}; - -class wxFrame; - -class wxFrameManager : wxObject -{ -protected: - wxList mViews; - wxWindow* mpFrameWnd; - int mActiveViewNo; - wxWindow* mpClientWnd; - -#if 0 - wxObjectStorage mStore; -#endif - - wxString mSettingsFile; - -protected: - void DoSerialize( wxObjectStorage& store ); - void DestroyViews(); - int GetViewNo( wxFrameView* pView ); - void EnableMenusForView( wxFrameView* pView, bool enable ); - void SyncAllMenus(); - -public: - wxFrameManager(); - ~wxFrameManager(); - - // if file name is empty, views are are not saved/loaded - - virtual void Init( wxWindow* pMainFrame, const wxString& settingsFile = "" ); - - // synonyms - wxFrame* GetParentFrame(); - wxWindow* GetParentWindow(); - - int GetActiveViewNo(); - wxFrameView* GetActiveView(); - wxNode* GetActiveViewNode(); - - wxFrameView* GetView( int viewNo ); - - void SetClinetWindow( wxWindow* pFrameClient ); - wxWindow* GetClientWindow(); - - void AddView( wxFrameView* pFrmView ); - void RemoveView( wxFrameView* pFrmView ); - - void ActivateView( int viewNo ); - void ActivateView( wxFrameView* pFrmView ); - void DeactivateCurrentView(); - - wxObjectStorage& GetObjectStore(); - - void SaveViewsNow(); - bool ReloadViews(); - - bool ViewsAreLoaded(); -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/garbagec.cpp b/utils/framelayout/src/garbagec.cpp deleted file mode 100644 index afb41e7ae8..0000000000 --- a/utils/framelayout/src/garbagec.cpp +++ /dev/null @@ -1,224 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 18/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __GNUG__ -#pragma implementation "garbagec.cpp" -#pragma interface "garbagec.cpp" -#endif - -// 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 "garbagec.h" - -/***** Implementation for class GarbageCollector *****/ - -inline static GCItem& node_to_item( wxNode* pNode ) -{ - return *( (GCItem*)(pNode->Data()) ); -} - -GarbageCollector::~GarbageCollector() -{ - Reset(); -} - -/*** GC alg. helpers ***/ - -void GarbageCollector::DestroyItemList( wxList& lst ) -{ - wxNode* pNode = lst.First(); - - while( pNode ) - { - delete &node_to_item( pNode ); - - pNode = pNode->Next(); - } - - lst.Clear(); -} - -wxNode* GarbageCollector::FindItemNode( void* pForObj ) -{ - wxNode* pNode = mAllNodes.First(); - - while( pNode ) - { - if ( node_to_item( pNode ).mpObj == pForObj ) - - return pNode; - - pNode = pNode->Next(); - } - - wxASSERT(0); // DBG:: item should be presnet - - return 0; -} - -wxNode* GarbageCollector::FindRefernceFreeItemNode() -{ - wxNode* pNode = mAllNodes.First(); - - while( pNode ) - { - if ( node_to_item( pNode ).mRefs.Number() == 0 ) - - return pNode; - - pNode = pNode->Next(); - } - - return 0; -} - -void GarbageCollector::RemoveReferencesToNode( wxNode* pItemNode ) -{ - wxNode* pNode = mAllNodes.First(); - - while( pNode ) - { - wxList& refLst = node_to_item( pNode ).mRefs; - wxNode* pRefNode = refLst.First(); - - while( pRefNode ) - { - if ( pRefNode->Data() == (wxObject*)pItemNode ) - { - wxNode* pNext = pRefNode->Next(); - - refLst.DeleteNode( pRefNode ); - - pRefNode = pNext; - - continue; - } - else pRefNode = pRefNode->Next(); - } - - pNode = pNode->Next(); - } -} - -void GarbageCollector::ResolveReferences() -{ - wxNode* pNode = mAllNodes.First(); - - while( pNode ) - { - GCItem& item = node_to_item( pNode ); - - wxNode* pRefNode = item.mRefs.First(); - - while( pRefNode ) - { - pRefNode->SetData( (wxObject*) FindItemNode( (void*)pRefNode->Data() ) ); - - pRefNode = pRefNode->Next(); - } - - pNode = pNode->Next(); - } -} - -void GarbageCollector::AddObject( void* pObj, int refCnt ) -{ - // FOR NOW:: inital ref-count is not used - - GCItem* pItem = new GCItem(); - - pItem->mpObj = pObj; - - mAllNodes.Append( (wxObject*) pItem ); -} - -void GarbageCollector::AddDependency( void* pObj, void* pDepnedsOnObj ) -{ - node_to_item( FindItemNode( pObj ) ).mRefs.Append( (wxObject*)pDepnedsOnObj ); -} - -/*** GC alg. implementation ***/ - -void GarbageCollector::ArrangeCollection() -{ - ResolveReferences(); - - do - { - // find node, which does not depend on anything - - wxNode* pItemNode = FindRefernceFreeItemNode(); - - if ( pItemNode ) - { - // append it to the list, where items are contained - // in the increasing order of dependencies - - mRegularLst.Append( pItemNode->Data() ); - - mAllNodes.DeleteNode( pItemNode ); - - // remove references to this current "least-dependent" node - // from reference lists of all the other nodes - - RemoveReferencesToNode( pItemNode ); - } - else - { - // otherwise, what is left - all nodes, which - // are involved into cycled chains (rings) - - wxNode* pNode = mAllNodes.First(); - - while( pNode ) - { - mCycledLst.Append( pNode->Data() ); - - pNode = pNode->Next(); - } - - break; - } - - // continue search for "least-dependent" nodes - - } while(1); -} - -wxList& GarbageCollector::GetRegularObjects() -{ - return mRegularLst; -} - -wxList& GarbageCollector::GetCycledObjects() -{ - return mCycledLst; -} - -void GarbageCollector::Reset() -{ - DestroyItemList( mAllNodes ); - - mRegularLst.Clear(); - mCycledLst.Clear(); -} diff --git a/utils/framelayout/src/garbagec.h b/utils/framelayout/src/garbagec.h deleted file mode 100644 index 58a9548e0a..0000000000 --- a/utils/framelayout/src/garbagec.h +++ /dev/null @@ -1,69 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas (@Lithuania) -// Modified by: -// Created: ??/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GARBAGEC_G__ -#define __GARBAGEC_G__ - -#include "wx/list.h" - -struct GCItem -{ - void* mpObj; - wxList mRefs; // references to other nodes -}; - -inline void* gc_node_to_obj( wxNode* pGCNode ) -{ - return ( (GCItem*) (pGCNode->Data()) )->mpObj; -} - -// class implements extreamly slow, but probably one of the most simple GC alogrithms - -class GarbageCollector -{ -protected: - wxList mAllNodes; - wxList mRegularLst; - wxList mCycledLst; - - wxNode* FindItemNode( void* pForObj ); - void ResolveReferences(); - - wxNode* FindRefernceFreeItemNode(); - void RemoveReferencesToNode( wxNode* pItemNode ); - void DestroyItemList( wxList& lst ); - -public: - - GarbageCollector() {} - - virtual ~GarbageCollector(); - - // prepare data for GC alg. - - virtual void AddObject( void* pObj, int refCnt = 1 ); - virtual void AddDependency( void* pObj, void* pDepnedsOnObj ); - - // executes GC alg. - - virtual void ArrangeCollection(); - - // acces results of the alg. - - wxList& GetRegularObjects(); - wxList& GetCycledObjects(); - - // removes all date form GC - - void Reset(); -}; - -#endif diff --git a/utils/framelayout/src/gcupdatesmgr.cpp b/utils/framelayout/src/gcupdatesmgr.cpp deleted file mode 100644 index 33fee9e27d..0000000000 --- a/utils/framelayout/src/gcupdatesmgr.cpp +++ /dev/null @@ -1,409 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 19/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "updatesmgr.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "gcupdatesmgr.h" - -// helper function - -static inline bool rect_hits_rect( const wxRect& r1, const wxRect& r2 ) -{ - if ( ( r2.x >= r1.x && r2.x <= r1.x + r1.width ) || - ( r1.x >= r2.x && r1.x <= r2.x + r2.width ) ) - - if ( ( r2.y >= r1.y && r2.y <= r1.y + r1.height ) || - ( r1.y >= r2.y && r1.y <= r2.y + r2.height ) ) - - return 1; - - return 0; -} - -// helper structure - -struct cbRectInfo -{ - cbBarInfo* mpBar; - cbDockPane* mpPane; - wxRect* mpCurBounds; - wxRect* mpPrevBounds; -}; - -static inline cbRectInfo& node_to_rect_info( wxNode* pNode ) -{ - return *( (cbRectInfo*) (pNode->Data()) ); -} - -/***** Implementation for class cbSimpleUpdatesMgr *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbGCUpdatesMgr, cbSimpleUpdatesMgr ) - -cbGCUpdatesMgr::cbGCUpdatesMgr( wxFrameLayout* pPanel ) - : cbSimpleUpdatesMgr( pPanel ) -{} - -void cbGCUpdatesMgr::AddItem( wxList& itemList, - cbBarInfo* pBar, - cbDockPane* pPane, - wxRect& curBounds, - wxRect& prevBounds ) -{ - cbRectInfo* pInfo = new cbRectInfo(); - - pInfo->mpBar = pBar; - pInfo->mpPane = pPane; - pInfo->mpCurBounds = &curBounds; - pInfo->mpPrevBounds = &prevBounds; - - itemList.Append( (wxObject*) pInfo ); -} - -void cbGCUpdatesMgr::OnStartChanges() -{ - // memorize states of ALL items in the layout - - // this is quite excessive, but OK for the decent - // implementation of updates manager - - mpLayout->GetPrevClientRect() = mpLayout->GetClientRect(); - - cbDockPane** panes = mpLayout->GetPanesArray(); - - for( int n = 0; n != MAX_PANES; ++n ) - { - cbDockPane& pane = *(panes[n]); - - // store pane state - pane.mUMgrData.StoreItemState( pane.mBoundsInParent ); - pane.mUMgrData.SetDirty( FALSE ); - - cbRowInfo* pRow = pane.GetFirstRow(); - - while ( pRow ) - { - cbBarInfo* pBar = pRow->GetFirstBar(); - - // store row state - pRow->mUMgrData.StoreItemState( pRow->mBoundsInParent ); - pRow->mUMgrData.SetDirty( FALSE ); - - while( pBar ) - { - // store bar state - pBar->mUMgrData.StoreItemState( pBar->mBoundsInParent ); - pBar->mUMgrData.SetDirty( FALSE ); - - pBar = pBar->mpNext; - } - - pRow = pRow->mpNext; - } - } -} - -void cbGCUpdatesMgr::UpdateNow() -{ - cbDockPane** panes = mpLayout->GetPanesArray(); - - wxRect& r1 = mpLayout->GetClientRect(); - wxRect& r2 = mpLayout->GetPrevClientRect(); - - // detect changes in client window's area - - bool clientWindowChanged = ( r1.x != r2.x || - r1.y != r2.y || - r1.width != r2.width || - r1.height != r2.height ); - - // step #1 - detect changes in each row of each pane, - // and repaint decorations around changed windows - - wxList mBarsToResize; - - for( int n = 0; n != MAX_PANES; ++n ) - { - cbDockPane& pane = *(panes[n]); - - bool paneChanged = WasChanged( pane.mUMgrData, pane.mBoundsInParent ); - - if ( paneChanged ) - { - wxClientDC dc( &mpLayout->GetParentFrame() ); - pane.PaintPaneBackground( dc ); - } - - wxRect realBounds; - - cbRowInfo* pRow = pane.GetFirstRow(); - - while ( pRow ) - { - wxDC* pDc = 0; - - cbBarInfo* pBar = pRow->GetFirstBar(); - - bool rowChanged = FALSE; - bool rowBkPainted = FALSE; - - // FIXME:: the below should not be fixed - cbBarInfo* barsToRepaint[128]; - // number of bars, that were changed in the current row - int nBars = 0; - - wxRect r1 = pRow->mUMgrData.mPrevBounds; - wxRect r2 = pRow->mBoundsInParent; - - if ( WasChanged( pRow->mUMgrData, pRow->mBoundsInParent ) ) - - rowChanged = TRUE; - else - while( pBar ) - { - if ( WasChanged( pBar->mUMgrData, pBar->mBoundsInParent ) ) - - barsToRepaint[nBars++] = pBar; - - pBar = pBar->mpNext; - } - - if ( nBars || rowChanged ) - { - realBounds = pRow->mBoundsInParent; - - // include 1-pixel thick shades around the row - realBounds.x -= 1; - realBounds.y -= 1; - realBounds.width += 2; - realBounds.height += 2; - - pDc = pane.StartDrawInArea( realBounds ); - } - - if ( rowChanged ) - { - // postphone the resizement and refreshing the changed - // bar windows - - cbBarInfo* pCurBar = pRow->GetFirstBar(); - - while( pCurBar ) - { - if ( WasChanged( pCurBar->mUMgrData, - pCurBar->mBoundsInParent ) ) - - AddItem( mBarsToResize, pCurBar, &pane, - pCurBar->mBoundsInParent, - pCurBar->mUMgrData.mPrevBounds ); - - pCurBar = pCurBar->mpNext; - } - - // draw only their decorations now - - pane.PaintRow( pRow, *pDc ); - } - else - if ( nBars != 0 ) - { - for( int i = 0; i != nBars; ++i ) - - // postphone the resizement and refreshing the changed - // bar windows - - AddItem( mBarsToResize, - barsToRepaint[i], - &pane, - barsToRepaint[i]->mBoundsInParent, - barsToRepaint[i]->mUMgrData.mPrevBounds ); - - // redraw decorations of entire row, regardless of how much - // of the bars were changed - - pane.PaintRow( pRow, *pDc ); - } - - if ( pDc ) - - pane.FinishDrawInArea( realBounds ); - - pRow = pRow->mpNext; - - } // end of while - - if ( paneChanged ) - { - wxClientDC dc( &mpLayout->GetParentFrame() ); - pane.PaintPaneDecorations( dc ); - } - - } // end of for - - if ( clientWindowChanged && !mpLayout->mClientWndRefreshPending ) - { - // ptr to client-window object is "marked" as NULL - - AddItem( mBarsToResize, NULL, NULL, - mpLayout->GetClientRect(), - mpLayout->GetPrevClientRect() ); - } - - // step #2 - do ordered refreshing and resizing of bar window objects now - - DoRepositionItems( mBarsToResize ); -} - -void cbGCUpdatesMgr::DoRepositionItems( wxList& items ) -{ - wxNode* pNode1 = items.First(); - - while( pNode1 ) - { - cbRectInfo& info = node_to_rect_info( pNode1 ); - - wxNode* pNode2 = items.First(); - - // and node itself - - mGC.AddObject( &info ); - - while( pNode2 ) - { - if ( pNode2 != pNode1 ) // node should not depend on itself - { - // add references to objects, on which this object - // depends. Dependecy here indicates intersection of current - // bounds of this object with the initial bounds of the - // other object - - cbRectInfo& otherInfo = node_to_rect_info( pNode2 ); - - if ( rect_hits_rect( *info.mpCurBounds, *otherInfo.mpPrevBounds ) ) - - // the node depends on node - mGC.AddDependency( &info, &otherInfo ); - } - - pNode2 = pNode2->Next(); - } - - pNode1 = pNode1->Next(); - } - - mGC.ArrangeCollection(); // order nodes according "least-dependency" rule, - // and find out cycled chains - - // regular item nodes need to be resized, but not repainted (since - // they stand in linear (not cyclic) dependency with other - // regular nodes) - - wxNode* pNode = mGC.GetRegularObjects().First(); - - while ( pNode ) - { - cbRectInfo& info = *((cbRectInfo*)gc_node_to_obj(pNode)); - - if ( info.mpBar == NULL ) - - mpLayout->PositionClientWindow(); - else - info.mpPane->SizeBar( info.mpBar ); - - pNode = pNode->Next(); - } - - // cycled item nodes, need to be both resized and repainted - - pNode = mGC.GetCycledObjects().First(); - - while ( pNode ) - { - cbRectInfo& info = *((cbRectInfo*)gc_node_to_obj(pNode)); - - if ( info.mpBar == NULL ) - { - wxWindow* pClntWnd = mpLayout->GetFrameClient(); - - mpLayout->PositionClientWindow(); - - // FIXME FIXME:: excessive! - - pClntWnd->Show( FALSE ); - pClntWnd->Show( TRUE ); - - // OLD STUFF:: mpLayout->PositionClientWindow(); - } - else - if ( info.mpBar->mpBarWnd ) - { - wxWindow* pWnd = info.mpBar->mpBarWnd; - - // resize - info.mpPane->SizeBar( info.mpBar ); - - // repaint - - /* OLD STUFF:: bool isChoice = info.mpBar->IsKindOf( CLASSINFO( wxChoice ) ); - - //#ifdef __WINDOWS__ - //int result = ::SendMessage( (HWND)pWnd->m_hWnd, WM_NCPAINT, 0, 0 ); - //#endif - */ - - // FIXME FIXME:: there's no other way to repaint non-client area of the wxWindow!! - // so we do *excessive* "hide 'n show" - - pWnd->Show(FALSE); - pWnd->Show(TRUE); - - pWnd->Refresh(); - } - - pNode = pNode->Next(); - } - - // release data prepared for GC alg. - - pNode = items.First(); - - while( pNode ) - { - cbRectInfo* pInfo = (cbRectInfo*)(pNode->Data()); - - delete pInfo; - - pNode = pNode->Next(); - } - - mGC.Reset(); // reinit GC - - // FIXME:: this is a dirty-workaround for messy client-area, - // as a result of docking bar out of floated-container window - - if ( mpLayout->mClientWndRefreshPending ) - { - mpLayout->PositionClientWindow(); - mpLayout->GetFrameClient()->Refresh(); - } -} \ No newline at end of file diff --git a/utils/framelayout/src/gcupdatesmgr.h b/utils/framelayout/src/gcupdatesmgr.h deleted file mode 100644 index a03c0044e0..0000000000 --- a/utils/framelayout/src/gcupdatesmgr.h +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 19/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __GCUPDATESMGR_G__ -#define __GCUPDATESMGR_G__ - -#include "controlbar.h" -#include "updatesmgr.h" - -#include "garbagec.h" - -/* - * class implements optimized logic for refreshing - * areas of frame layout - which actually need to be updated. - * Is used as default updates-manager by wxFrameLayout. - * - * it is called "Garbage Collecting" u.mgr for it's impelmentation - * tries to find out dependencies between bars, and to order - * them ito "hierarchy", this hierarchical sorting resembles - * impelmenation of heap-garbage collectors, which resolve - * dependencies between referencs. - * - * Example: there are situations where the order of moving - * the windows does matter: - * - * case 1) - * ------ --- - * | A | |B| - * ------ ---> | | - * --- --- ------ - * |B| | A | - * | | ------ - * --- - * (future) - * (past) - * - * past/future positions of A and B windows completely overlapp, i.e. - * depend on each other, and there is not solution for - * moving the windows witout refereshing both of them, - * -- we have cyclic dependency here. The gc. alg will - * find this cyclic dependecy and will force "refresh" - * after movement. - * - * case 2) - * - * ------ - * | A | - * ------ ---> - * --- - * |B| ------ - * | | | A | - * --- ------ - * --- - * |B| - * | | - * --- - * - * (future) - * (past) - * - * in this case past/future positions do not overlapp, thus - * it's enough only to move windows, without refreshing them. - * GC will "notice" it. - * - * there is also third case, when overlapping is partial - * in this case the refershing can be also avoided by - * moving windows in the order of "most-dependant" towards the - * "least-dependent". GC handles this automatically, by - * sorting windows by their dependency-level (or "hierarchy") - * - * See garbagec.h for more details of this method, garbagec.h/cpp - * implement sorting of generic-depenencies (does not deal - * with graphical objects directly) - * - * Summary: improves performance when complex/large windows are - * moved around, by reducing number of repaints. Also helps - * to avoid dirty non-client areas of moved windows - * in some sepcal cases of "overlapping anomalies" - */ - -class cbGCUpdatesMgr : public cbSimpleUpdatesMgr -{ - DECLARE_DYNAMIC_CLASS( cbGCUpdatesMgr ) -protected: - - GarbageCollector mGC; - - void DoRepositionItems( wxList& items ); - - void AddItem( wxList& itemList, - cbBarInfo* pBar, - cbDockPane* pPane, - wxRect& curBounds, - wxRect& prevBounds ); - -public: - - cbGCUpdatesMgr(void) {} - - cbGCUpdatesMgr( wxFrameLayout* pPanel ); - - // notificiactions received from Frame Layout : - - virtual void OnStartChanges(); - - // refreshes parts of the frame layout, which need an update - virtual void UpdateNow(); -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/hintanimpl.cpp b/utils/framelayout/src/hintanimpl.cpp deleted file mode 100644 index 4f8a14a1ec..0000000000 --- a/utils/framelayout/src/hintanimpl.cpp +++ /dev/null @@ -1,406 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 9/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bardragpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "hintanimpl.h" - -#define POS_UNDEFINED -32768 - -/***** Implementation for class cbHintAnimationPlugin *****/ - -// FIXME:: some of the below code should be eliminated by -// reusing parts of cbBarDragPlugin's implementation - -IMPLEMENT_DYNAMIC_CLASS( cbHintAnimationPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbHintAnimationPlugin, cbPluginBase ) - - EVT_PL_DRAW_HINT_RECT( cbHintAnimationPlugin::OnDrawHintRect ) - -END_EVENT_TABLE() - -cbHintAnimationPlugin::cbHintAnimationPlugin(void) - - : mpScrDc( NULL ), - mInClientHintBorder( 4 ), - mAnimStarted( FALSE ), - mpAnimTimer( 0 ), - - mMorphDelay ( 5 ), - mMaxFrames ( 20 ), - mAccelerationOn( TRUE ) -{} - -cbHintAnimationPlugin::cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask ) - - : cbPluginBase( pPanel, paneMask ), - mpScrDc( NULL ), - mInClientHintBorder( 4 ), - mAnimStarted( FALSE ), - mpAnimTimer( 0 ), - - mMorphDelay ( 5 ), - mMaxFrames ( 20 ), - mAccelerationOn( TRUE ) -{} - -cbHintAnimationPlugin::~cbHintAnimationPlugin() -{ - if ( mpScrDc ) delete mpScrDc; -} - -/*** rect-tracking related methods ***/ - -void cbHintAnimationPlugin::OnDrawHintRect( cbDrawHintRectEvent& event ) -{ - if ( !mAnimStarted && !mpScrDc ) - { - StartTracking(); - - mPrevInClient = event.mIsInClient; - - mPrevRect = event.mRect; - - mStopPending = FALSE; - } - - if ( !event.mEraseRect ) - { - // pass on current hint-rect info to the animation "thread", in - // order to make adjustments to the morph-target on-the-fly - - mCurRect.x = event.mRect.x; - mCurRect.y = event.mRect.y; - mCurRect.width = event.mRect.width; - mCurRect.height = event.mRect.height; - } - - // check the amount of change in the shape of hint, - // and start morph-effect if change is "sufficient" - - int change = abs( mCurRect.width - mPrevRect.width ) + - abs( mCurRect.height - mPrevRect.height ); - - if ( change > 10 && !event.mLastTime && !event.mEraseRect ) - { - if ( !mpAnimTimer ) - - mpAnimTimer = new cbHintAnimTimer(); - - // init the animation "thread", or reinit if already started - - if ( mAnimStarted ) - { - int o; - ++o; - } - - mpAnimTimer->Init( this, mAnimStarted ); - - mAnimStarted = TRUE; - } - else - if ( !mAnimStarted ) - { - DoDrawHintRect( event.mRect, event.mIsInClient ); - - if ( event.mLastTime ) - - FinishTracking(); - - mPrevInClient = event.mIsInClient; - } - else - { - mCurInClient = event.mIsInClient; - - if ( event.mLastTime && mpAnimTimer ) - { - mStopPending = TRUE; - - if ( mpAnimTimer->mPrevMorphed.x != POS_UNDEFINED ) - - // erase previouse rect - DoDrawHintRect( mpAnimTimer->mPrevMorphed, mPrevInClient ); - } - } - - mPrevRect = event.mRect; -} - -#define _A 0xAA -#define _B 0x00 -#define _C 0x55 -#define _D 0x00 - -static const unsigned char _gCheckerImg[] = { _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D - }; - -void cbHintAnimationPlugin::StartTracking() -{ - mpScrDc = new wxScreenDC; - - wxScreenDC::StartDrawingOnTop(&mpLayout->GetParentFrame()); -} - -void cbHintAnimationPlugin::DoDrawHintRect( wxRect& rect, bool isInClientRect) -{ - wxRect scrRect; - - RectToScr( rect, scrRect ); - - int prevLF = mpScrDc->GetLogicalFunction(); - - mpScrDc->SetLogicalFunction( wxXOR ); - - if ( isInClientRect ) - { - // BUG BUG BUG (wx):: somehow stippled brush works only - // when the bitmap created on stack, not - // as a member of the class - - wxBitmap checker( (const char*)_gCheckerImg, 8,8 ); - - wxBrush checkerBrush( checker ); - - mpScrDc->SetPen( mpLayout->mNullPen ); - mpScrDc->SetBrush( checkerBrush ); - - int half = mInClientHintBorder / 2; - - mpScrDc->DrawRectangle( scrRect.x - half, scrRect.y - half, - scrRect.width + 2*half, mInClientHintBorder ); - - mpScrDc->DrawRectangle( scrRect.x - half, scrRect.y + scrRect.height - half, - scrRect.width + 2*half, mInClientHintBorder ); - - mpScrDc->DrawRectangle( scrRect.x - half, scrRect.y + half - 1, - mInClientHintBorder, scrRect.height - 2*half + 2); - - mpScrDc->DrawRectangle( scrRect.x + scrRect.width - half, - scrRect.y + half - 1, - mInClientHintBorder, scrRect.height - 2*half + 2); - - mpScrDc->SetBrush( wxNullBrush ); - } - else - { - // otherwise draw 1-pixel thin borders - - mpScrDc->SetPen( mpLayout->mBlackPen ); - - mpScrDc->DrawLine( scrRect.x, scrRect.y, - scrRect.x + scrRect.width, scrRect.y ); - - mpScrDc->DrawLine( scrRect.x, scrRect.y + 1, - scrRect.x, scrRect.y + scrRect.height ); - - mpScrDc->DrawLine( scrRect.x+1, scrRect.y + scrRect.height, - scrRect.x + scrRect.width, scrRect.y + scrRect.height ); - - mpScrDc->DrawLine( scrRect.x + scrRect.width , scrRect.y, - scrRect.x + scrRect.width, scrRect.y + scrRect.height + 1); - } - - mpScrDc->SetLogicalFunction( prevLF ); -} - -void cbHintAnimationPlugin::DrawHintRect ( wxRect& rect, bool isInClientRect) -{ - DoDrawHintRect( rect, isInClientRect ); -} - -void cbHintAnimationPlugin::EraseHintRect( wxRect& rect, bool isInClientRect) -{ - DoDrawHintRect( rect, isInClientRect ); -} - -void cbHintAnimationPlugin::FinishTracking() -{ - wxScreenDC::EndDrawingOnTop(); - - delete mpScrDc; - - mpScrDc = NULL; -} - -void cbHintAnimationPlugin::RectToScr( wxRect& frameRect, wxRect& scrRect ) -{ - scrRect = frameRect; - - int x = frameRect.x, y = frameRect.y; - - mpLayout->GetParentFrame().ClientToScreen( &x, &y ); - - scrRect.x = x; - scrRect.y = y; -} - -/***** Implementation for class cbHintAnimTimer *****/ - -cbHintAnimTimer::cbHintAnimTimer(void) -{ -#ifdef __WINDOWS__ - mLock = NULL; -#endif - - mPrevMorphed.x = POS_UNDEFINED; -} - -void cbHintAnimTimer::MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point ) -{ - // simulate lienar movement (FOR NOW:: without acceleration) - - double k; - - if ( mpPl->mAccelerationOn ) - - k = double( mCurIter*mCurIter ) / - double( (mpPl->mMaxFrames - 1)*(mpPl->mMaxFrames - 1) ); - else - k = double( mCurIter ) / double( mpPl->mMaxFrames - 1 ); - - point.x = int ( double ( info.mFrom.x + double (info.mTill.x - info.mFrom.x) * k ) ); - - point.y = int ( double ( info.mFrom.y + double (info.mTill.y - info.mFrom.y) * k ) ); - - point.x += origin.x; - point.y += origin.y; -} - -void cbHintAnimTimer::Notify(void) -{ - // FIXME:: "clean" implementation should use mutex to sync - // between GUI and animation threads - - if ( mpPl->mStopPending ) - { - Stop(); // top timer - - mpPl->FinishTracking(); - - mpPl->mStopPending = FALSE; - mpPl->mpAnimTimer = NULL; - mpPl->mAnimStarted = FALSE; - - mPrevMorphed.x = POS_UNDEFINED; - - delete this; - - return; - } - - wxPoint origin( mpPl->mCurRect.x, mpPl->mCurRect.y ); - - wxPoint curUpper, curLower; - - MorphPoint( origin, mUpperLeft, curUpper ); - MorphPoint( origin, mLowerRight, curLower ); - - if ( mPrevMorphed.x != POS_UNDEFINED ) - - // erase previouse rect - mpPl->DoDrawHintRect( mPrevMorphed, mpPl->mPrevInClient ); - - wxRect morphed( curUpper.x, curUpper.y, - curLower.x - curUpper.x, - curLower.y - curUpper.y ); - - // draw rect of current iteration - mpPl->DoDrawHintRect( morphed, - ( mCurIter != mpPl->mMaxFrames - 1 ) - ? mpPl->mPrevInClient : mpPl->mCurInClient ); - - mPrevMorphed = morphed; - - if ( mCurIter == mpPl->mMaxFrames - 1 ) - { - Stop(); // top timer - - mpPl->FinishTracking(); - mpPl->mpAnimTimer = NULL; - mpPl->mAnimStarted = FALSE; - - mPrevMorphed.x = POS_UNDEFINED; - - delete this; - } - else - ++mCurIter; -} - -bool cbHintAnimTimer::Init( cbHintAnimationPlugin* pAnimPl, bool reinit ) -{ - - mpPl = pAnimPl; - int o; - ++o; - ++o; - - // morph-points are set up relatively to the upper-left corner - // of the current hint-rectangle - - if ( !reinit ) - { - mUpperLeft.mFrom.x = mpPl->mPrevRect.x - mpPl->mCurRect.x; - mUpperLeft.mFrom.y = mpPl->mPrevRect.y - mpPl->mCurRect.y; - - mLowerRight.mFrom.x = ( mUpperLeft.mFrom.x + mpPl->mPrevRect.width ); - mLowerRight.mFrom.y = ( mUpperLeft.mFrom.y + mpPl->mPrevRect.height ); - } - else - { - wxPoint origin( mpPl->mPrevRect.x, mpPl->mPrevRect.y ); - - wxPoint curUpper, curLower; - - MorphPoint( origin, mUpperLeft, curUpper ); - MorphPoint( origin, mLowerRight, curLower ); - - mUpperLeft.mFrom.x = curUpper.x - mpPl->mCurRect.x; - mUpperLeft.mFrom.y = curUpper.y - mpPl->mCurRect.y; - - mLowerRight.mFrom.x = ( mUpperLeft.mFrom.x + curLower.x - curUpper.x ); - mLowerRight.mFrom.y = ( mUpperLeft.mFrom.y + curLower.y - curUpper.y ); - } - - mUpperLeft.mTill.x = 0; - mUpperLeft.mTill.y = 0; - - mLowerRight.mTill.x = mpPl->mCurRect.width; - mLowerRight.mTill.y = mpPl->mCurRect.height; - - mCurIter = 1; - - if ( !reinit ) - - Start( mpPl->mMorphDelay ); - - return TRUE; -} diff --git a/utils/framelayout/src/hintanimpl.h b/utils/framelayout/src/hintanimpl.h deleted file mode 100644 index 075cca58f9..0000000000 --- a/utils/framelayout/src/hintanimpl.h +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 9/11/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __HINTANIMPL_G__ -#define __HINTANIMPL_G__ - -#include "controlbar.h" - -#include "wx/timer.h" - -class cbHintAnimTimer; - -class cbHintAnimationPlugin : public cbPluginBase -{ - DECLARE_DYNAMIC_CLASS( cbHintAnimationPlugin ) -protected: - friend class cbHintAnimTimer; - - wxScreenDC* mpScrDc; // created while tracking hint-rect - cbHintAnimTimer* mpAnimTimer; - - // FOR NOW:: try it without mutually exculisve locks - volatile wxRect mCurRect; - - // state variables - - bool mAnimStarted; - bool mStopPending; - - bool mPrevInClient; - bool mCurInClient; - - wxRect mPrevRect; - -public: - int mMorphDelay; // delay between frames in miliseconds, default: 20 - int mMaxFrames; // number of iterations for hint morphing, default: 30 - // (morph duration = mMorphDelay * mMaxFrames msec) - - int mInClientHintBorder; // default: 4 pixels - - bool mAccelerationOn; // TRUE, if morph accelerates, otherwise morph - // speed is constant. Default: TRUE - - // TBD:: get/set methods for above members - -protected: - void StartTracking(); - - void DrawHintRect ( wxRect& rect, bool isInClientRect); - void EraseHintRect( wxRect& rect, bool isInClientRect); - - void FinishTracking(); - - void DoDrawHintRect( wxRect& rect, bool isInClientRect); - - void RectToScr( wxRect& frameRect, wxRect& scrRect ); - -public: - cbHintAnimationPlugin(void); - - ~cbHintAnimationPlugin(); - - cbHintAnimationPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - - void OnDrawHintRect( cbDrawHintRectEvent& event ); - - DECLARE_EVENT_TABLE() -}; - - -// helper classes - -struct MorphInfoT -{ - wxPoint mFrom; - wxPoint mTill; -}; - -class cbHintAnimTimer : public wxTimer -{ -protected: - - friend class cbHintAnimationPlugin; - - wxRect mPrevMorphed; - - MorphInfoT mUpperLeft; - MorphInfoT mLowerRight; - int mCurIter; - - long mLock; - - cbHintAnimationPlugin* mpPl; - - void MorphPoint( wxPoint& origin, MorphInfoT& info, wxPoint& point ); - -public: - - cbHintAnimTimer(void); - - virtual void Notify(void); - - virtual bool Init( cbHintAnimationPlugin* pAnimPl, bool reinit ); -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/makefile.b32 b/utils/framelayout/src/makefile.b32 deleted file mode 100644 index 4bc96b2fc5..0000000000 --- a/utils/framelayout/src/makefile.b32 +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds FL library for 32-bit BC++ - -WXDIR = $(WXWIN) - -LIBTARGET=$(WXDIR)\lib\fl.lib - -OBJECTS = antiflickpl.obj bardragpl.obj barhintspl.obj cbcustom.obj\ - controlarea.obj controlbar.obj dyntbar.obj dyntbarhnd.obj\ - garbagec.obj gcupdatesmgr.obj hintanimpl.obj newbmpbtn.obj\ - panedrawpl.obj rowdragpl.obj rowlayoutpl.obj\ - toolwnd.obj updatesmgr.obj - -!include $(WXDIR)\src\makelib.b32 - diff --git a/utils/framelayout/src/makefile.g95 b/utils/framelayout/src/makefile.g95 deleted file mode 100644 index 92b653bea3..0000000000 --- a/utils/framelayout/src/makefile.g95 +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows FL library Cygwin/Mingw32). - -WXDIR = ../../.. - -LIBTARGET=$(WXDIR)/lib/libfl.a - -OBJECTS = antiflickpl.o bardragpl.o barhintspl.o cbcustom.o\ - controlarea.o controlbar.o dyntbar.o dyntbarhnd.o\ - garbagec.o gcupdatesmgr.o hintanimpl.o newbmpbtn.o\ - panedrawpl.o rowdragpl.o rowlayoutpl.o\ - toolwnd.o updatesmgr.o - -include $(WXDIR)/src/makelib.g95 - diff --git a/utils/framelayout/src/makefile.unx b/utils/framelayout/src/makefile.unx deleted file mode 100644 index 6e98b792a8..0000000000 --- a/utils/framelayout/src/makefile.unx +++ /dev/null @@ -1,46 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for FL library, Unix - -include ../../../src/make.env - -FLLIB=$(WXDIR)/lib/libogl$(GUISUFFIX).a - -LIB_CPP_SRC=\ -antiflickpl.cpp \ -bardragpl.cpp \ -barhintspl.cpp \ -cbcustom.cpp \ -controlarea.cpp \ -controlbar.cpp \ -dyntbar.cpp \ -dyntbarhnd.cpp \ -garbagec.cpp \ -gcupdatesmgr.cpp \ -hintanimpl.cpp \ -newbmpbtn.cpp \ -panedrawpl.cpp \ -rowdragpl.cpp \ -rowlayoutpl.cpp \ -toolwnd.cpp \ -updatesmgr.cpp \ - -all: $(FLLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) - -$(FLLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(FLLIB) - diff --git a/utils/framelayout/src/makefile.vc b/utils/framelayout/src/makefile.vc deleted file mode 100644 index dbbaf07bbd..0000000000 --- a/utils/framelayout/src/makefile.vc +++ /dev/null @@ -1,29 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds FL class library (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) -FLDIR = $(WXDIR)\utils\framelayout -THISDIR = $(FLDIR)\src - -LIBTARGET=$(WXDIR)\lib\fl.lib - -OBJECTS = antiflickpl.obj bardragpl.obj barhintspl.obj cbcustom.obj\ - controlarea.obj controlbar.obj dyntbar.obj dyntbarhnd.obj\ - garbagec.obj gcupdatesmgr.obj hintanimpl.obj newbmpbtn.obj\ - panedrawpl.obj rowdragpl.obj rowlayoutpl.obj\ - toolwnd.obj updatesmgr.obj - -!include $(WXDIR)\src\makelib.vc - - diff --git a/utils/framelayout/src/makefile.wat b/utils/framelayout/src/makefile.wat deleted file mode 100644 index 0e4971821f..0000000000 --- a/utils/framelayout/src/makefile.wat +++ /dev/null @@ -1,32 +0,0 @@ -# Objects makefile - -WXDIR = ..\..\.. - -!include $(WXDIR)\src\makewat.env - -EXTRACPPFLAGS=/DPROLOGIO - -OBJECTSLIB = $(WXDIR)\utils\objects\lib\fl.lib -THISDIR = $(WXDIR)\utils\objects\src - -NAME = fl -LNK = $(name).lnk - -IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -i=..\..\mfutils\src -i=..\..\prologio\src - -OBJECTS = antiflickpl.obj bardragpl.obj barhintspl.obj cbcustom.obj\ - controlarea.obj controlbar.obj dyntbar.obj dyntbarhnd.obj\ - frmview.obj garbagec.obj gcupdatesmgr.obj hintanimpl.obj newbmpbtn.obj\ - panedrawpl.obj rowdragpl.obj rowlayoutpl.obj\ - toolwnd.obj updatesmgr.obj - -all: $(OBJECTSLIB) - -$(OBJECTSLIB): $(OBJECTS) - *wlib /b /c /n /P=256 $(OBJECTSLIB) $(OBJECTS) - -clean: .SYMBOLIC - -erase *.obj *.bak *.err *.pch $(OBJECTSLIB) *.lbc - - - diff --git a/utils/framelayout/src/newbmpbtn.cpp b/utils/framelayout/src/newbmpbtn.cpp deleted file mode 100644 index 997820a60d..0000000000 --- a/utils/framelayout/src/newbmpbtn.cpp +++ /dev/null @@ -1,820 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: ??/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "newbmpbtn.cpp" -#pragma interface "newbmpbtn.cpp" -#endif - -// 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 "newbmpbtn.h" -#include "wx/utils.h" // import wxMin,wxMax macros - -///////////// button-label rendering helpers ////////////////// - -static int* create_array( int width, int height, int fill = 0 ) -{ - int* array = new int[width*height]; - - int len = width*height; - for( int i = 0; i != len; ++i ) array[i] = fill; - - return array; -} - -#define GET_ELEM(array,x,y) (array[width*(y)+(x)]) - -#define MIN_COLOR_DIFF 10 - -#define IS_IN_ARRAY(x,y) ( (x) < width && (y) < height && (x) >= 0 && (y) >= 0 ) - -#define GET_RED(col) col & 0xFF -#define GET_GREEN(col) (col >> 8) & 0xFF -#define GET_BLUE(col) (col >> 16) & 0xFF - -#define MAKE_INT_COLOR(red,green,blue) ( (red) | \ - ( ( (green) << 8 ) & 0xFF00 ) | \ - ( ( (blue) << 16) & 0xFF0000) \ - ) - -#define IS_GREATER(col1,col2) ( ( (GET_RED(col1) ) > (GET_RED(col2) ) + MIN_COLOR_DIFF ) && \ - ( (GET_GREEN(col1)) > (GET_GREEN(col2)) + MIN_COLOR_DIFF ) && \ - ( (GET_BLUE(col1) ) > (GET_BLUE(col2) ) + MIN_COLOR_DIFF ) \ - ) - -#define MASK_BG 0 -#define MASK_DARK 1 -#define MASK_LIGHT 2 - -// helper function, used internally - -static void gray_out_pixmap( int* src, int* dest, int width, int height ) -{ - // assuming the pixels along the edges are of the background color - - int x = 0; - int y = 1; - - do - { - int cur = GET_ELEM(src,x,y); - - - if ( IS_IN_ARRAY(x-1,y-1) ) - { - int upperElem = GET_ELEM(src,x-1,y-1); - - // if the upper element is lighter than current - if ( IS_GREATER(upperElem,cur) ) - { - GET_ELEM(dest,x,y) = MASK_DARK; - } - else - // if the current element is ligher than the upper - if ( IS_GREATER(cur,upperElem) ) - { - GET_ELEM(dest,x,y) = MASK_LIGHT; - } - else - { - if ( GET_ELEM(dest,x-1,y-1) == MASK_LIGHT ) - - GET_ELEM(dest,x,y) = MASK_BG; - - if ( GET_ELEM(dest,x-1,y-1 ) == MASK_DARK ) - - GET_ELEM(dest,x,y) = MASK_DARK; - else - GET_ELEM(dest,x,y) = MASK_BG; - } - } - - // go zig-zag - - if ( IS_IN_ARRAY(x+1,y-1) ) - { - ++x;--y; - } - else - { - while( IS_IN_ARRAY(x-1,y+1) ) - { - --x;++y; - } - - if ( IS_IN_ARRAY(x,y+1) ) - { - ++y; continue; - } - else - { - if ( IS_IN_ARRAY(x+1,y) ) - { - ++x; continue; - } - else break; - } - } - - } while(1); -} - -// alg. for making the image look "grayed" (e.g. disabled button) -// NOTE:: used GetPixel(), which is Windows-Only! - -void greay_out_image_on_dc( wxDC& dc, int width, int height ) -{ - // assuming the pixels along the edges are of the background color - wxColour bgCol; - dc.GetPixel( 0, 0, &bgCol ); - - wxPen darkPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW),1, wxSOLID ); - wxPen lightPen( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHIGHLIGHT),1, wxSOLID ); - wxPen bgPen ( bgCol, 1, wxSOLID ); - - int* src = create_array( width, height, MASK_BG ); - int* dest = create_array( width, height, MASK_BG ); - - int y = 0; - for( y = 0; y != height; ++y ) - - for( int x = 0; x != width; ++x ) - { - wxColour col; - dc.GetPixel( x,y, &col ); - - - GET_ELEM(src,x,y) = MAKE_INT_COLOR( col.Red(), col.Green(), col.Blue() ); - } - - gray_out_pixmap( src, dest, width, height ); - - for( y = 0; y != height; ++y ) - - for( int x = 0; x != width; ++x ) - { - int mask = GET_ELEM(dest,x,y); - - switch (mask) - { - case MASK_BG : { dc.SetPen( bgPen ); - dc.DrawPoint( x,y ); break; - } - case MASK_DARK : { dc.SetPen( darkPen ); - dc.DrawPoint( x,y ); break; - } - case MASK_LIGHT : { dc.SetPen( lightPen ); - dc.DrawPoint( x,y ); break; - } - default : break; - } - } - - delete [] src; - delete [] dest; -} - -/////////////////////////////// - -/***** Impelementation for class wxNewBitmapButton *****/ - -IMPLEMENT_DYNAMIC_CLASS(wxNewBitmapButton, wxPanel) - -BEGIN_EVENT_TABLE( wxNewBitmapButton, wxPanel ) - - EVT_LEFT_DOWN( wxNewBitmapButton::OnLButtonDown ) - EVT_LEFT_UP ( wxNewBitmapButton::OnLButtonUp ) - EVT_MOTION ( wxNewBitmapButton::OnMouseMove ) - - EVT_SIZE ( wxNewBitmapButton::OnSize ) - EVT_PAINT( wxNewBitmapButton::OnPaint ) - - //EVT_KILL_FOCUS( wxNewBitmapButton::OnKillFocus ) - - EVT_ERASE_BACKGROUND( wxNewBitmapButton::OnEraseBackground ) - -END_EVENT_TABLE() - -wxNewBitmapButton::wxNewBitmapButton( const wxBitmap& labelBitmap, - const wxString& labelText, - int alignText, - bool isFlat, - int firedEventType, - int marginX, - int marginY, - int textToLabelGap, - bool isSticky) - : mTextToLabelGap ( textToLabelGap ), - mMarginX( marginX ), - mMarginY( marginY ), - mTextAlignment( alignText ), - mIsSticky( isSticky ), - mIsFlat( isFlat ), - mLabelText( labelText ), - mImageFileType( -1 ), - mDepressedBmp( labelBitmap ), - - mpDepressedImg( NULL ), - mpPressedImg ( NULL ), - mpDisabledImg ( NULL ), - mpFocusedImg ( NULL ), - - - mDragStarted ( FALSE ), - mIsPressed ( FALSE ), - mIsInFocus( FALSE ), - mPrevPressedState( FALSE ), - mPrevInFocusState( FALSE ), - mHasFocusedBmp( FALSE ), - mFiredEventType( firedEventType ), - - mBlackPen( wxColour( 0, 0, 0), 1, wxSOLID ), - mDarkPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW), 1, wxSOLID ), - mGrayPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - mLightPen( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHIGHLIGHT), 1, wxSOLID ), - - mIsCreated( FALSE ), - mSizeIsSet( FALSE ) - -{ -} - -wxNewBitmapButton::wxNewBitmapButton( const wxString& bitmapFileName, - const int bitmapFileType, - const wxString& labelText, - int alignText, - bool isFlat, - int firedEventType, - int marginX, - int marginY, - int textToLabelGap, - bool isSticky) - - : mTextToLabelGap ( 2 ), - mMarginX( 2 ), - mMarginY( 2 ), - mTextAlignment( alignText ), - mIsSticky( FALSE ), - mIsFlat( isFlat ), - mLabelText( labelText ), - mImageFileName( bitmapFileName ), - mImageFileType( bitmapFileType ), - - mpDepressedImg( NULL ), - mpPressedImg ( NULL ), - mpDisabledImg ( NULL ), - mpFocusedImg ( NULL ), - - mDragStarted ( FALSE ), - mIsPressed ( FALSE ), - mIsInFocus ( FALSE ), - mPrevPressedState( FALSE ), - mPrevInFocusState( FALSE ), - mHasFocusedBmp( FALSE ), - mFiredEventType( wxEVT_COMMAND_MENU_SELECTED ), - - mBlackPen( wxColour( 0, 0, 0), 1, wxSOLID ), - mDarkPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW), 1, wxSOLID ), - mGrayPen ( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), 1, wxSOLID ), - mLightPen( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DHIGHLIGHT), 1, wxSOLID ), - - mIsCreated( FALSE ), - mSizeIsSet( FALSE ) - -{ -} - -wxNewBitmapButton::~wxNewBitmapButton(void) -{ - DestroyLabels(); -} - -void wxNewBitmapButton::DrawShade( int outerLevel, - wxDC& dc, - wxPen& upperLeftSidePen, - wxPen& lowerRightSidePen ) -{ - wxBitmap* pBmp = GetStateLabel(); - - int x = mMarginX - (outerLevel + 1); - int y = mMarginY - (outerLevel + 1); - - int height = pBmp->GetHeight() + (outerLevel + 1)*2 - 1; - int width = pBmp->GetWidth() + (outerLevel + 1)*2 - 1; - - dc.SetPen( upperLeftSidePen ); - dc.DrawLine( x,y, x + width, y ); - dc.DrawLine( x,y, x, y + height ); - - dc.SetPen( lowerRightSidePen ); - dc.DrawLine( x + width, y, x + width, y + height + 1 ); - dc.DrawLine( x, y + height, x + width, y + height ); -} - -void wxNewBitmapButton::DestroyLabels() -{ - if ( mpDepressedImg ) delete mpDepressedImg; - if ( mpPressedImg ) delete mpPressedImg; - if ( mpDisabledImg ) delete mpDisabledImg; - if ( mpFocusedImg ) delete mpFocusedImg; - - mpDepressedImg = NULL; - mpPressedImg = NULL; - mpDisabledImg = NULL; - mpFocusedImg = NULL; -} - -wxBitmap* wxNewBitmapButton::GetStateLabel() -{ - if ( IsEnabled() ) - { - if ( mIsPressed ) - { - return mpPressedImg; - } - else - { - if ( mIsInFocus ) - { - if ( mHasFocusedBmp ) - - return mpFocusedImg; - else - return mpDepressedImg; - } - else - return mpDepressedImg; - } - } - else - return mpDisabledImg; -} - -static const unsigned char _gDisableImage[] = { 0x55,0xAA,0x55,0xAA, - 0x55,0xAA,0x55,0xAA, - 0x55,0xAA,0x55,0xAA, - 0x55,0xAA,0x55,0xAA - }; -void wxNewBitmapButton::RenderLabelImage( wxBitmap*& destBmp, wxBitmap* srcBmp, - bool isEnabled, bool isPressed ) -{ - if ( destBmp != 0 ) return; - - // render lables on-demand - - wxMemoryDC srcDc; - srcDc.SelectObject( *srcBmp ); - - bool hasText = ( mTextAlignment != NB_NO_TEXT ) && - ( mLabelText.length() != 0 ); - - bool hasImage = (mTextAlignment != NB_NO_IMAGE); - - wxSize destDim; - wxPoint txtPos; - wxPoint imgPos; - - if ( hasText ) - { - long txtWidth, txtHeight; - - srcDc.SetFont( wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT) ); - srcDc.GetTextExtent( mLabelText, &txtWidth, &txtHeight ); - - if ( mTextAlignment == NB_ALIGN_TEXT_RIGHT ) - { - destDim.x = srcBmp->GetWidth() + 2*mTextToLabelGap + txtWidth; - - destDim.y = - wxMax( srcBmp->GetHeight(), txtHeight ); - - txtPos.x = srcBmp->GetWidth() + mTextToLabelGap; - txtPos.y = (destDim.y - txtHeight)/2; - imgPos.x = 0; - imgPos.y = (destDim.y - srcBmp->GetHeight())/2; - } - else - if ( mTextAlignment == NB_ALIGN_TEXT_BOTTOM ) - { - destDim.x = - wxMax( srcBmp->GetWidth(), txtWidth ); - - destDim.y = srcBmp->GetHeight() + mTextToLabelGap + txtHeight; - - txtPos.x = (destDim.x - txtWidth)/2; - txtPos.y = srcBmp->GetHeight() + mTextToLabelGap; - imgPos.x = (destDim.x - srcBmp->GetWidth())/2; - imgPos.y = 0; - } - else wxASSERT(0);// unsupported alignment type - } - else - { - imgPos.x = 0; - imgPos.y = 0; - destDim.x = srcBmp->GetWidth(); - destDim.y = srcBmp->GetHeight(); - } - - destBmp = new wxBitmap( int(destDim.x), int(destDim.y) ); - - wxMemoryDC destDc; - destDc.SelectObject( *destBmp ); - - wxBrush grayBrush( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_3DFACE), wxSOLID ); - wxPen nullPen( wxColour(0,0,0), 1, wxTRANSPARENT ); - - destDc.SetBrush( grayBrush ); - destDc.SetPen( nullPen ); - - destDc.DrawRectangle( 0,0, destDim.x+1, destDim.y+1 ); - - if ( isPressed ) - { - ++imgPos.x; ++imgPos.y; - ++txtPos.x; ++txtPos.y; - } - - if ( hasImage ) - { - - destDc.Blit( imgPos.x, imgPos.y, - srcBmp->GetWidth()+1, - srcBmp->GetHeight()+1, - &srcDc, 0,0, wxCOPY,TRUE ); - } - - if ( hasText ) - { - wxWindow* pTopWnd = this; - - do - { - wxWindow* pParent = pTopWnd->GetParent(); - - if ( pParent == 0 ) break; - - pTopWnd = pParent; - } while(1); - - destDc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT) ); - - if( isEnabled ){ - destDc.SetTextForeground( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNTEXT) ); - }else{ - destDc.SetTextForeground( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW) ); - } - destDc.SetTextBackground( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE) ); - - destDc.DrawText( mLabelText, txtPos.x, txtPos.y ); - } - - - destDc.SetBrush( grayBrush ); - destDc.SetPen( nullPen ); - - destDc.DrawRectangle( 0,0, destDim.x+1, destDim.y+1 ); - - if ( isPressed ) - { - ++imgPos.x; ++imgPos.y; - ++txtPos.x; ++txtPos.y; - } - - if ( hasImage ) - { - - destDc.Blit( imgPos.x, imgPos.y, - srcBmp->GetWidth()+1, - srcBmp->GetHeight()+1, - &srcDc, 0,0, wxCOPY,TRUE ); - } - - if ( hasText ) - { - wxWindow* pTopWnd = this; - - do - { - wxWindow* pParent = pTopWnd->GetParent(); - - if ( pParent == 0 ) break; - - pTopWnd = pParent; - } while(1); - - destDc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT) ); - - if( isEnabled ){ - destDc.SetTextForeground( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNTEXT) ); - }else{ - destDc.SetTextForeground( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DSHADOW) ); - } - destDc.SetTextBackground( wxSystemSettings::GetSystemColour(wxSYS_COLOUR_BTNFACE) ); - - destDc.DrawText( mLabelText, txtPos.x, txtPos.y ); - } - - if ( !isEnabled ){ - -#ifdef __WXMSW__ // This is currently MSW specific - greay_out_image_on_dc( destDc, destDim.x, destDim.y ); -#else - wxBrush checkerBrush( wxBitmap( (const char*)_gDisableImage,8,8) ); - checkerBrush.SetColour( wxSystemSettings::GetSystemColour( wxSYS_COLOUR_BTNFACE ) ); - destDc.SetBrush( checkerBrush ); - destDc.DrawRectangle( imgPos.x, imgPos.y, srcBmp->GetWidth()+1, srcBmp->GetHeight()+1); -#endif - } - // adjust button size to fit the new dimensions of the label - if ( !mSizeIsSet && 0 ) - { - mSizeIsSet = TRUE; - SetSize( -1,-1, - destBmp->GetWidth() + mMarginX*2, - destBmp->GetHeight() + mMarginY*2, 0 - ); - } -} -void wxNewBitmapButton::RenderAllLabelImages() -{ - if( !mIsCreated ) return; - RenderLabelImage( mpDisabledImg, &mDepressedBmp, FALSE ); - RenderLabelImage( mpPressedImg, &mDepressedBmp, TRUE, TRUE ); - RenderLabelImage( mpDepressedImg, &mDepressedBmp, TRUE, FALSE ); - if ( mHasFocusedBmp ){ - RenderLabelImage( mpFocusedImg, &mFocusedBmp, TRUE, FALSE ); - } -} - - -void wxNewBitmapButton::RenderLabelImages() -{ - if ( !mIsCreated ) return; - - if ( !IsEnabled() ) - { - RenderLabelImage( mpDisabledImg, &mDepressedBmp, FALSE ); - } - else - - if ( mIsPressed ) - - RenderLabelImage( mpPressedImg, &mDepressedBmp, TRUE, TRUE ); - else - { - if ( mIsInFocus ) - { - if ( mHasFocusedBmp ) - - RenderLabelImage( mpFocusedImg, &mFocusedBmp, TRUE, FALSE ); - else - RenderLabelImage( mpDepressedImg, &mDepressedBmp, TRUE, FALSE ); - } - else - RenderLabelImage( mpDepressedImg, &mDepressedBmp, TRUE, FALSE ); - } -} - -void wxNewBitmapButton::DrawDecorations( wxDC& dc ) -{ - if ( mIsFlat ) - { - DrawShade( 1, dc, mGrayPen, mGrayPen ); - - if ( mIsInFocus ) - { - if ( mIsPressed ) - - DrawShade( 0, dc, mDarkPen, mLightPen ); - else - DrawShade( 0, dc, mLightPen, mDarkPen ); - } - else - DrawShade( 0, dc, mGrayPen, mGrayPen ); - } - else - { - if ( mIsPressed ) - { - DrawShade( 0, dc, mDarkPen, mGrayPen ); - DrawShade( 1, dc, mBlackPen, mLightPen ); - } - else - { - DrawShade( 0, dc, mGrayPen, mDarkPen ); - DrawShade( 1, dc, mLightPen, mBlackPen ); - } - } -} - -void wxNewBitmapButton::SetLabel(const wxBitmap& labelBitmap, - const wxString& labelText ) -{ - DestroyLabels(); - - mLabelText = labelText; - mDepressedBmp = labelBitmap; - - //RenderLabelImages(); - RenderAllLabelImages(); -} - -void wxNewBitmapButton::SetAlignments( int alignText, - int marginX, - int marginY, - int textToLabelGap) -{ - DestroyLabels(); - - mMarginX = marginX; - mMarginY = marginY; - mTextAlignment = alignText; - mTextToLabelGap = textToLabelGap; - - //RenderLabelImages(); - RenderAllLabelImages(); -} - -// event handlers - -void wxNewBitmapButton::OnLButtonDown( wxMouseEvent& event ) -{ - mPrevPressedState = FALSE; - mDragStarted = TRUE; - mIsPressed = TRUE; - Refresh(); - - if ( !mIsInFocus ) - - CaptureMouse(); -} - -void wxNewBitmapButton::OnLButtonUp( wxMouseEvent& event ) -{ - if ( !mDragStarted ) return; - - mDragStarted = FALSE; - mIsPressed = FALSE; - mIsInFocus = FALSE; - Refresh(); - - ReleaseMouse(); - - if ( IsInWindow( event.m_x, event.m_y ) ) - { - // fire event, if mouse was released - // within the bounds of button - wxCommandEvent cmd( mFiredEventType, GetId() ); - GetParent()->ProcessEvent( cmd ); - } -} - -bool wxNewBitmapButton::IsInWindow( int x, int y ) -{ - int width, height; - GetSize( &width, &height ); - - return ( x >= 0 && y >= 0 && - x < width && - y < height ); -} - -void wxNewBitmapButton::OnMouseMove( wxMouseEvent& event ) -{ - mPrevPressedState=mIsPressed; - mPrevInFocusState=mIsInFocus; - if ( !mIsInFocus && IsInWindow( event.m_x, event.m_y ) ) - { - if ( !mDragStarted ) - CaptureMouse(); - - mIsInFocus = TRUE; - } - else - if ( mIsInFocus && !IsInWindow( event.m_x, event.m_y ) ) - { - mIsInFocus = FALSE; - - if ( !mDragStarted ) - ReleaseMouse(); - } - - if ( mDragStarted ) - { - if ( IsInWindow( event.m_x, event.m_y ) ) - - mIsPressed = TRUE; - else - mIsPressed = FALSE; - } - - if((mIsPressed != mPrevPressedState)||(mIsInFocus!=mPrevInFocusState)){ - Refresh(); - } -} - -void wxNewBitmapButton::OnSize( wxSizeEvent& event ) -{ - //Reshape(); -} - -void wxNewBitmapButton::Reshape( ) -{ - - bool wasCreated = mIsCreated; - mIsCreated = TRUE; - - if ( !wasCreated ) - { - // in the case of loading button from stream, check if we - // have non-empty image-file name, load if possible - - if ( mImageFileName != "" ) - { - mDepressedBmp.LoadFile( mImageFileName, mImageFileType ); - - //wxMessageBox("Image Loaded!!!"); - } - - //RenderLabelImages(); - RenderAllLabelImages(); - - wxBitmap* pCurImg = GetStateLabel(); - - int w = pCurImg->GetWidth(), - h = pCurImg->GetHeight(); - - SetSize( 0,0, w + mMarginX*2, h + mMarginY*2 , 0 ); - } -} - -void wxNewBitmapButton::DrawLabel( wxDC& dc ) -{ - wxBitmap* pCurBmp = GetStateLabel(); - - if ( pCurBmp == NULL ) - { - wxSizeEvent evt; - OnSize( evt ); // fake it up! - - //RenderLabelImages(); - pCurBmp = GetStateLabel(); - } - - wxMemoryDC mdc; - mdc.SelectObject( *pCurBmp ); - - dc.Blit( mMarginX, mMarginY, - pCurBmp->GetWidth(), - pCurBmp->GetHeight(), - &mdc, 0,0, wxCOPY - ); - - mdc.SelectObject( wxNullBitmap ); -} - -void wxNewBitmapButton::OnPaint( wxPaintEvent& event ) -{ - wxPaintDC dc(this); - - // first, make sure images for current state are prepared - //RenderLabelImages(); - - DrawLabel( dc ); - - DrawDecorations( dc ); -} - -void wxNewBitmapButton::OnEraseBackground( wxEraseEvent& event ) -{ - // do nothing -} - -void wxNewBitmapButton::OnKillFocus( wxFocusEvent& event ) -{ - // useless - - wxMessageBox("kill-focus for button!"); -} - diff --git a/utils/framelayout/src/newbmpbtn.h b/utils/framelayout/src/newbmpbtn.h deleted file mode 100644 index 9d0c6315d0..0000000000 --- a/utils/framelayout/src/newbmpbtn.h +++ /dev/null @@ -1,160 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: ??/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __NEWBMPBTN_G__ -#define __NEWBMPBTN_G__ - -#include "wx/button.h" -#include "wx/string.h" - -// button lable-text alignment types - -#define NB_ALIGN_TEXT_RIGHT 0 -#define NB_ALIGN_TEXT_BOTTOM 1 -#define NB_NO_TEXT 2 -#define NB_NO_IMAGE 3 - -// classes declared in this header file - -class wxNewBitmapButton; -class wxBorderLessBitmapButton; - -// alternative class for wxBmpButton - -class wxNewBitmapButton: public wxPanel -{ - DECLARE_DYNAMIC_CLASS(wxNewBitmapButton) - -protected: - - friend class wxNewBitmapButtonSerializer; - - int mTextToLabelGap; - int mMarginX; - int mMarginY; - int mTextAlignment; - bool mIsSticky; - bool mIsFlat; - - wxString mLabelText; - wxString mImageFileName; - int mImageFileType; - - wxBitmap mDepressedBmp; // source image for rendering - // labels for particular state - - wxBitmap mFocusedBmp; // may not be always present - - // only if mHasFocusedBmp is TRUE - - wxBitmap* mpDepressedImg; - wxBitmap* mpPressedImg; - wxBitmap* mpDisabledImg; - wxBitmap* mpFocusedImg; - - // button state variables; - bool mDragStarted; - bool mIsPressed; - bool mIsInFocus; - bool mPrevPressedState; - bool mPrevInFocusState; - - bool mHasFocusedBmp; - - // type of event which is fired upon depression of this button - int mFiredEventType; - - // pens for drawing decorations (borders) - wxPen mBlackPen; - wxPen mDarkPen; - wxPen mGrayPen; - wxPen mLightPen; - - bool mIsCreated; - int mSizeIsSet; - -protected: - void DestroyLabels(); - - // returns the label which match the current button state - virtual wxBitmap* GetStateLabel(); - - virtual void DrawShade( int outerLevel, - wxDC& dc, - wxPen& upperLeftSidePen, - wxPen& lowerRightSidePen ); - - bool IsInWindow( int x,int y ); - -public: - - wxNewBitmapButton( const wxBitmap& labelBitmap = wxNullBitmap, - const wxString& labelText = "", - int alignText = NB_ALIGN_TEXT_BOTTOM, - bool isFlat = TRUE, - // this is the default type of fired events - int firedEventType = wxEVT_COMMAND_MENU_SELECTED, - int marginX = 2, - int marginY = 2, - int textToLabelGap = 2, - bool isSticky = FALSE - ); - - // use this constructor if buttons have to be persistant - - wxNewBitmapButton( const wxString& bitmapFileName, - const int bitmapFileType = wxBITMAP_TYPE_BMP, - const wxString& labelText = "", - int alignText = NB_ALIGN_TEXT_BOTTOM, - bool isFlat = TRUE, - // this is the default type of fired events - int firedEventType = wxEVT_COMMAND_MENU_SELECTED, - int marginX = 2, - int marginY = 2, - int textToLabelGap = 2, - bool isSticky = FALSE - ); - - ~wxNewBitmapButton(); - - // should be called after Create(); - virtual void Reshape(); - - // overridables - virtual void SetLabel(const wxBitmap& labelBitmap, const wxString& labelText = "" ); - - virtual void SetAlignments( int alignText = NB_ALIGN_TEXT_BOTTOM, - int marginX = 2, - int marginY = 2, - int textToLabelGap = 2); - - virtual void DrawDecorations( wxDC& dc ); - virtual void DrawLabel( wxDC& dc ); - - virtual void RenderLabelImage( wxBitmap*& destBmp, wxBitmap* srcBmp, - bool isEnabled = TRUE, - bool isPressed = FALSE); - - virtual void RenderLabelImages(); - virtual void RenderAllLabelImages(); - - // event handlers - void OnLButtonDown( wxMouseEvent& event ); - void OnLButtonUp( wxMouseEvent& event ); - void OnMouseMove( wxMouseEvent& event ); - void OnSize( wxSizeEvent& event ); - void OnPaint( wxPaintEvent& event ); - void OnEraseBackground( wxEraseEvent& event ); - void OnKillFocus( wxFocusEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/utils/framelayout/src/panedrawpl.cpp b/utils/framelayout/src/panedrawpl.cpp deleted file mode 100644 index a393c0649d..0000000000 --- a/utils/framelayout/src/panedrawpl.cpp +++ /dev/null @@ -1,1265 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "panedrawpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include -#include - -#include "wx/utils.h" // import wxMin,wxMax macros - -#include "panedrawpl.h" - -// bitmap bits used by bar-resizing brush - -#define _A 0xAA -#define _B 0x00 -#define _C 0x55 -#define _D 0x00 - -static const unsigned char _gCheckerImg[16] = { _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D - }; - -static void set_cursor_bits( const char** img, char* bits, int width, int height ) -{ - for( int i = 0; i != (width*height)/8; ++i ) - bits[i] = 0; - - for( int y = 0; y != height; ++y ) - { - const char* row = img[0]; - - for( int x = 0; x != width; ++x ) - { - int bitNo = y*width + x; - - char value = ( row[x] != '.' ) ? 1 : 0; - - bits[ bitNo / sizeof(char) ] |= - ( ( bitNo %sizeof(char) ) << value ); - } - - ++img; - } -} - -/***** Implementation for class cbPaneDrawPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbPaneDrawPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbPaneDrawPlugin, cbPluginBase ) - - EVT_PL_LEFT_DOWN ( cbPaneDrawPlugin::OnLButtonDown ) - EVT_PL_LEFT_UP ( cbPaneDrawPlugin::OnLButtonUp ) -// EVT_PL_LEFT_DCLICK ( cbPaneDrawPlugin::OnLDblClick ) - EVT_PL_RIGHT_UP ( cbPaneDrawPlugin::OnRButtonUp ) - EVT_PL_MOTION ( cbPaneDrawPlugin::OnMouseMove ) - - - EVT_PL_DRAW_PANE_BKGROUND ( cbPaneDrawPlugin::OnDrawPaneBackground ) - EVT_PL_DRAW_PANE_DECOR ( cbPaneDrawPlugin::OnDrawPaneDecorations ) - - EVT_PL_DRAW_ROW_DECOR ( cbPaneDrawPlugin::OnDrawRowDecorations ) - EVT_PL_DRAW_ROW_HANDLES ( cbPaneDrawPlugin::OnDrawRowHandles ) - EVT_PL_DRAW_ROW_BKGROUND ( cbPaneDrawPlugin::OnDrawRowBackground ) - - EVT_PL_SIZE_BAR_WND ( cbPaneDrawPlugin::OnSizeBarWindow ) - EVT_PL_DRAW_BAR_DECOR ( cbPaneDrawPlugin::OnDrawBarDecorations ) - EVT_PL_DRAW_BAR_HANDLES ( cbPaneDrawPlugin::OnDrawBarHandles ) - - EVT_PL_START_DRAW_IN_AREA ( cbPaneDrawPlugin::OnStartDrawInArea ) - EVT_PL_FINISH_DRAW_IN_AREA ( cbPaneDrawPlugin::OnFinishDrawInArea ) - -END_EVENT_TABLE() - -cbPaneDrawPlugin::cbPaneDrawPlugin(void) - - : mResizeStarted ( FALSE ), - - mResizeCursorOn ( FALSE ), - mpDraggedBar ( NULL ), - mpResizedRow ( NULL ), - - mpClntDc ( NULL ), - mpPane ( NULL ) -{} - -cbPaneDrawPlugin::cbPaneDrawPlugin( wxFrameLayout* pPanel, int paneMask ) - - : cbPluginBase( pPanel, paneMask ), - - // bar-row resizing state varaibles - - mResizeStarted ( FALSE ), - - mResizeCursorOn ( FALSE ), - mpDraggedBar ( NULL ), - mpResizedRow ( NULL ), - - mRowHandleHitted ( FALSE ), - mIsUpperHandle ( FALSE ), - mBarHandleHitted ( FALSE ), - mIsLeftHandle ( FALSE ), - mBarContentHitted ( FALSE ), - - mpClntDc ( NULL ), - mpPane ( NULL ) -{} - -cbPaneDrawPlugin::~cbPaneDrawPlugin() -{ - // DBG:: - wxASSERT( mpClntDc == NULL ); -} - -void cbPaneDrawPlugin::DrawDraggedHandle( const wxPoint& pos, cbDockPane& pane ) -{ - wxScreenDC dc; - int ofsX = 0; - int ofsY = 0; - - wxPoint fpos = pos; - pane.PaneToFrame( &fpos.x, &fpos.y ); - - // short-cut - int resizeHndSize = pane.mProps.mResizeHandleSize; - - // "Required for X to specify that - // that we wish to draw on top of all windows - // - and we optimise by specifying the area - // for creating the overlap window." --J.S. - - wxScreenDC::StartDrawingOnTop(&mpLayout->GetParentFrame()); - - mpLayout->GetParentFrame().ClientToScreen( &ofsX, &ofsY ); - - int prevLF = dc.GetLogicalFunction(); - - // BUG BUG BUG (wx):: somehow stippled brush works only - // when the bitmap created on stack, not - // as a member of the class - - wxBitmap checker( (const char*)_gCheckerImg, 8,8 ); - - wxBrush checkerBrush( checker ); - - dc.SetPen( mpLayout->mNullPen ); - dc.SetBrush( checkerBrush ); - dc.SetLogicalFunction( wxXOR ); - - if ( mHandleIsVertical ) - { - int delta = pos.x - mDragOrigin.x; - - if ( !pane.IsHorizontal() ) - - delta = pos.y - mDragOrigin.y; - - int realHndOfs; - realHndOfs = pane.mBoundsInParent.x + pane.mLeftMargin + mHandleOfs; - - int newX = realHndOfs + delta; - - if ( newX + resizeHndSize > mHandleDragArea.x + mHandleDragArea.width ) - - newX = mHandleDragArea.x + mHandleDragArea.width - 1; - - if ( newX < mHandleDragArea.x ) - - newX = mHandleDragArea.x; - - mDraggedDelta = newX - realHndOfs; - - dc.DrawRectangle( newX + ofsX, mHandleDragArea.y + ofsY, - resizeHndSize + 1, - mHandleDragArea.height+1 ); - } - else - { - // otherwise, draw horizontal handle - - int delta = pos.y - mDragOrigin.y; - - if ( !pane.IsHorizontal() ) - - delta = pos.x - mDragOrigin.x; - - int realHndOfs; - realHndOfs = pane.mBoundsInParent.y + pane.mTopMargin + mHandleOfs; - - int newY = realHndOfs + delta; - - if ( newY + resizeHndSize > mHandleDragArea.y + mHandleDragArea.height ) - - newY = mHandleDragArea.y + mHandleDragArea.height - 1; - - if ( newY < mHandleDragArea.y ) - - newY = mHandleDragArea.y; - - mDraggedDelta = newY - realHndOfs; - - dc.DrawRectangle( mHandleDragArea.x + ofsX, newY + ofsY, - mHandleDragArea.width + 1, - resizeHndSize + 1 ); - } - - dc.SetLogicalFunction( prevLF ); - - // "End drawing on top (frees the window used for drawing - // over the screen)" --J.S. - wxScreenDC::EndDrawingOnTop(); -} - -void cbPaneDrawPlugin::OnMouseMove( cbMotionEvent& event ) -{ - if ( !mResizeStarted ) - { - // if nothing is started, do hit-tests - - bool prevWasRowHandle = mRowHandleHitted; - - mBarContentHitted = FALSE; - mBarHandleHitted = FALSE; - mRowHandleHitted = FALSE; - - int testResult = - event.mpPane->HitTestPaneItems( event.mPos, // in pane's coordiantes - &mpResizedRow, - &mpDraggedBar ); - - if ( testResult != CB_NO_ITEMS_HITTED ) - { - if ( testResult == CB_BAR_CONTENT_HITTED ) - { - // restore cursor, if non of the handles were hit - if ( mResizeCursorOn ) - { - // remove resizing hints - - mpLayout->ReleaseEventsFromPane( event.mpPane ); - mpLayout->ReleaseEventsFromPlugin( this ); - - mResizeCursorOn = FALSE; - - mBarContentHitted = TRUE; - - mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor ); - } - - // TBD:: fire something like "mouse-over-bar" event - - event.Skip(); // pass event to the next handler in the chain - return; - } - - wxCursor* pCurs = NULL; - - if ( testResult == CB_UPPER_ROW_HANDLE_HITTED || - testResult == CB_LOWER_ROW_HANDLE_HITTED) - { - if ( event.mpPane->IsHorizontal() ) - - pCurs = mpLayout->mpVertCursor; - else - pCurs = mpLayout->mpHorizCursor; - - mRowHandleHitted = TRUE; - mIsUpperHandle = ( testResult == CB_UPPER_ROW_HANDLE_HITTED ); - } - else - { - // otherwise, if inter-bar handle was hitted - - if ( event.mpPane->IsHorizontal() ) - - pCurs = mpLayout->mpHorizCursor; - else - pCurs = mpLayout->mpVertCursor; - - mBarHandleHitted = TRUE; - mIsLeftHandle = ( testResult == CB_LEFT_BAR_HANDLE_HITTED ); - } - - // avoid setting the same cursor twice - - if ( !mResizeCursorOn || prevWasRowHandle != mRowHandleHitted ) - { - if ( !mResizeCursorOn ) - { - // caputre if not captured yet - mpLayout->CaptureEventsForPane( event.mpPane ); - mpLayout->CaptureEventsForPlugin( this ); - } - - mpLayout->GetParentFrame().SetCursor( *pCurs ); - } - - mResizeCursorOn = TRUE; - - // handled is being dragged now, thus event is "eaten" by this plugin - - return; - - } // end of if (HitTestBarHandles()) - - // restore cursor, if non of the handles were hit - if ( mResizeCursorOn ) - { - mpLayout->ReleaseEventsFromPane( event.mpPane ); - mpLayout->ReleaseEventsFromPlugin( this ); - - mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor ); - - mResizeCursorOn = FALSE; - } - - event.Skip(); // pass event to the next plugin - } - - // othewise series of actions, if something has already started - - else - if ( mResizeStarted ) - { - // apply xor-mask twice - DrawDraggedHandle( mPrevPos, *event.mpPane ); - - // draw handle in the new position - DrawDraggedHandle( event.mPos, *event.mpPane ); - mPrevPos = event.mPos; - - // handled is dragged, thus event is "eaten" by this plugin - } - else - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::OnLDblClick( cbLeftDClickEvent& event ) -{ - if ( !mResizeCursorOn ) - { - cbBarInfo* pBarToFloat; - - if ( event.mpPane->HitTestPaneItems( event.mPos, // in pane's coordiantes - &mpResizedRow, - &pBarToFloat ) == CB_BAR_CONTENT_HITTED - ) - { - return; - - mpLayout->SetBarState( pBarToFloat, wxCBAR_FLOATING, TRUE ); - - mpLayout->RepositionFloatedBar( pBarToFloat ); - - return; // event is "eaten" by this plugin - } - - event.Skip(); - } -} - -void cbPaneDrawPlugin::OnLButtonDown( cbLeftDownEvent& event ) -{ - wxASSERT( !mResizeStarted ); - - if ( mResizeCursorOn ) - { - mResizeStarted = TRUE; - mDragOrigin = event.mPos; - - cbBarInfo* pInfo = NULL; - - // setup constraints for the dragging handle - - int from, till; - mHandleOfs = 0; - mHandleIsVertical = FALSE; - - if ( mRowHandleHitted ) - - event.mpPane->GetRowResizeRange( mpResizedRow, &from, &till, mIsUpperHandle ); - else - // otherwise if bar handle was hitted - event.mpPane->GetBarResizeRange( mpDraggedBar, &from, &till, mIsLeftHandle ); - - if ( mRowHandleHitted ) - { - mHandleIsVertical = ( event.mpPane->IsHorizontal() ) ? FALSE : TRUE; - - mHandleDragArea.x = 0; - mHandleDragArea.width = event.mpPane->mPaneWidth; - - mHandleDragArea.y = from; - mHandleDragArea.height = till - from; - - if ( mIsUpperHandle ) - - mHandleOfs = mpResizedRow->mRowY; - else - mHandleOfs = mpResizedRow->mRowY + - mpResizedRow->mRowHeight - - event.mpPane->mProps.mResizeHandleSize; - } - else - { - // otehrwise if bar handle dragged - - cbRowInfo& rowInfo = *mpDraggedBar->mpRow; - wxRect& bounds = mpDraggedBar->mBounds; - - mHandleIsVertical = ( event.mpPane->IsHorizontal() ) ? TRUE : FALSE; - - mHandleDragArea.x = from; - mHandleDragArea.width = till - from; - - - mHandleDragArea.y = bounds.y; - mHandleDragArea.height = bounds.height; - - // left-side-handle mBounds - if ( mIsLeftHandle ) - - mHandleOfs = bounds.x; - else - mHandleOfs = bounds.x + - bounds.width - event.mpPane->mProps.mResizeHandleSize; - - } - - event.mpPane->PaneToFrame( &mHandleDragArea ); - DrawDraggedHandle(mDragOrigin, *event.mpPane); - - mPrevPos = mDragOrigin; - - return; - // handled is dragged, thus event is "eaten" by this plugin - } - else - { - cbBarInfo* pDraggedBar; - - if ( event.mpPane->HitTestPaneItems( event.mPos, // in pane's coordiantes - &mpResizedRow, - &pDraggedBar ) == CB_BAR_CONTENT_HITTED - ) - { - long x = event.mPos.x, - y = event.mPos.y; - - event.mpPane->PaneToFrame( &x, &y ); - - cbStartBarDraggingEvent dragEvt( pDraggedBar, wxPoint(x,y), event.mpPane ); - - mpLayout->FirePluginEvent( dragEvt ); - - return; // event is "eaten" by this plugin - } - } - - event.Skip(); // pass event to the next plugin in the chain -} - -void cbPaneDrawPlugin::OnLButtonUp( cbLeftUpEvent& event ) -{ - if ( mResizeStarted ) - { - DrawDraggedHandle( event.mPos, *event.mpPane ); - - mResizeStarted = FALSE; - mResizeCursorOn = FALSE; - - mpLayout->ReleaseEventsFromPane( event.mpPane ); - mpLayout->ReleaseEventsFromPlugin( this ); - - mpLayout->GetParentFrame().SetCursor( *mpLayout->mpNormalCursor ); - - if ( mRowHandleHitted ) - { - event.mpPane->ResizeRow( mpResizedRow, - mDraggedDelta, - mIsUpperHandle ); - } - else - { - event.mpPane->ResizeBar( mpDraggedBar, - mDraggedDelta, - mIsLeftHandle ); - } - - mpDraggedBar = NULL; - mpResizedRow = NULL; - - // handled dragging action was finished by this mouse-up, - // thus event is "eaten" by this plugin - - return; - } - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::OnRButtonUp( cbRightUpEvent& event ) -{ - wxPoint fpos = event.mPos; - event.mpPane->PaneToFrame( &fpos.x, &fpos.y ); - - cbBarInfo* pDraggedBar; - - // user clicks inside the bar contnet, fire bar-customization event - - if ( event.mpPane->HitTestPaneItems( event.mPos, // in pane's coordiantes - &mpResizedRow, - &pDraggedBar ) == CB_BAR_CONTENT_HITTED - ) - { - cbCustomizeBarEvent cbEvt( pDraggedBar, fpos, event.mpPane ); - - mpLayout->FirePluginEvent( cbEvt ); - - return; // event is "eaten" by this plugin - } - - // otherwise fire whole-layout customization event - - cbCustomizeLayoutEvent csEvt( fpos ); - - mpLayout->FirePluginEvent( csEvt ); - - // event is "eaten" by this plugin -} - -void cbPaneDrawPlugin::OnSizeBarWindow( cbSizeBarWndEvent& event ) -{ - cbBarInfo& bar = *event.mpBar; - mpPane = event.mpPane; - - // it's possible that a bar does not have it's own window! - if ( !bar.mpBarWnd ) return; - - wxRect& bounds = event.mBoundsInParent; - - // check visibility - if ( bounds.height != 0 ) - { - // size smaller than bounds, to leave space for shade lines - - // FIXME:: +/- 1s - - bar.mpBarWnd->wxWindow::SetSize( bounds.x + 1 + bar.mDimInfo.mHorizGap, - bounds.y + 1 + bar.mDimInfo.mVertGap, - bounds.width - 2 - bar.mDimInfo.mHorizGap*2, - bounds.height - 2 - bar.mDimInfo.mVertGap *2 , - 0 - ); - - if ( !bar.mpBarWnd->IsShown() ) - - bar.mpBarWnd->Show( TRUE ); - } - else - // hide bar if not visable - bar.mpBarWnd->Show( FALSE ); - - event.Skip(); // pass event to the next plugin in the chain -} - -void cbPaneDrawPlugin::OnDrawRowDecorations( cbDrawRowDecorEvent& event ) -{ - DrawPaneShadeForRow( event.mpRow, *event.mpDc ); - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::DrawUpperRowHandle( cbRowInfo* pRow, wxDC& dc ) -{ - wxRect& bounds = pRow->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - { - if ( pRow->mHasUpperHandle ) - - mpPane->DrawHorizHandle( dc, bounds.x, - bounds.y-1, - pRow->mRowWidth ); - } - else - { - if ( pRow->mHasUpperHandle ) - - mpPane->DrawVertHandle( dc, bounds.x-1, - bounds.y, pRow->mRowWidth ); - } -} - -void cbPaneDrawPlugin::DrawLowerRowHandle( cbRowInfo* pRow, wxDC& dc ) -{ - wxRect& bounds = pRow->mBoundsInParent; - - // check if iter-row handles present - - if ( mpPane->IsHorizontal() ) - { - if ( pRow->mHasLowerHandle ) - - mpPane->DrawHorizHandle( dc, bounds.x, bounds.y + bounds.height - mpPane->mProps.mResizeHandleSize - 1, - pRow->mRowWidth ); - } - else - { - if ( pRow->mHasLowerHandle ) - - mpPane->DrawVertHandle( dc, bounds.x + bounds.width - mpPane->mProps.mResizeHandleSize - 1, - bounds.y, pRow->mRowWidth ); - } -} - -void cbPaneDrawPlugin::OnDrawRowHandles( cbDrawRowHandlesEvent& event ) -{ - // short-cuts - cbRowInfo* pRow = event.mpRow; - wxDC& dc = *event.mpDc; - mpPane = event.mpPane; - - // draw handles of surrounding rows first - - if ( pRow->mpPrev && pRow->mpPrev->mHasLowerHandle ) - - DrawLowerRowHandle( pRow->mpPrev, dc ); - - if ( pRow->mpNext && pRow->mpNext->mHasUpperHandle ) - - DrawUpperRowHandle( pRow->mpNext, dc ); - - // draw handles of the given row - - if ( pRow->mHasUpperHandle ) - - DrawUpperRowHandle( pRow, dc ); - - if ( pRow->mHasLowerHandle ) - - DrawLowerRowHandle( pRow, dc ); - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::OnDrawPaneBackground ( cbDrawPaneBkGroundEvent& event ) -{ - wxDC& dc = *event.mpDc; - mpPane = event.mpPane; - - // FOR NOW:: hard-coded - wxBrush bkBrush( mpLayout->mBorderPen.GetColour(), wxSOLID ); - - dc.SetBrush( bkBrush ); - dc.SetPen( mpLayout->mNullPen ); - - wxRect& bounds = mpPane->mBoundsInParent; - - if ( mpPane->mTopMargin >= 1 ) - - dc.DrawRectangle( bounds.x, bounds.y, - bounds.width+1, - mpPane->mTopMargin + 1); - - - if ( mpPane->mBottomMargin >= 1 ) - - dc.DrawRectangle( bounds.x, - bounds.y + bounds.height - mpPane->mBottomMargin, - bounds.width + 1, - mpPane->mBottomMargin + 1); - - - if ( mpPane->mLeftMargin >= 1 ) - - dc.DrawRectangle( bounds.x, - bounds.y + mpPane->mTopMargin - 1, - mpPane->mLeftMargin + 1, - bounds.height - mpPane->mTopMargin - mpPane->mBottomMargin + 2); - - - if ( mpPane->mRightMargin >= 1 ) - - dc.DrawRectangle( bounds.x + bounds.width - mpPane->mRightMargin, - bounds.y + mpPane->mTopMargin - 1, - mpPane->mRightMargin + 1, - bounds.height - mpPane->mTopMargin - mpPane->mBottomMargin + 2); - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::OnDrawRowBackground ( cbDrawRowBkGroundEvent& event ) -{ - // short-cuts - cbRowInfo* pRow = event.mpRow; - wxDC& dc = *event.mpDc; - mpPane = event.mpPane; - - // get ready - wxRect rowBounds = pRow->mBoundsInParent; - bool isHorizontal = event.mpPane->IsHorizontal(); - - int prevPos; - - if ( isHorizontal ) - { - prevPos = rowBounds.x; - // include one line obove and below the row - --rowBounds.y; - rowBounds.height +=2; - - --rowBounds.x; - rowBounds.width += 2; - } - else - { - prevPos = rowBounds.y; - // include one line obove and below the row - --rowBounds.x; - rowBounds.width += 2; - - --rowBounds.y; - rowBounds.height +=2; - } - -//#define TEST_BK_ERASING - -#ifdef TEST_BK_ERASING - - // DBG:: - wxBrush br0( wxColour(0,160,160), wxSOLID ); - dc.SetBrush(br0); - dc.SetPen ( mpLayout->mNullPen ); - dc.DrawRectangle( rowBounds.x, rowBounds.y, - rowBounds.width + 1, - rowBounds.height + 1 ); -#endif - - wxBrush bkBrush( mpLayout->mGrayPen.GetColour(), wxSOLID ); - - dc.SetPen ( mpLayout->mNullPen ); - dc.SetBrush( bkBrush ); - - // fill background-recatangle of entire row area - dc.DrawRectangle( rowBounds.x, rowBounds.y, - rowBounds.width + 1, - rowBounds.height + 1 ); - - dc.SetBrush( wxNullBrush ); - - // draw "shaded-side-bars" for each bar - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - wxRect& bounds = pRow->mBars[i]->mBoundsInParent; - - if ( isHorizontal ) - { - DrawShade( 1, bounds, wxLEFT, dc ); - DrawShade( 1, bounds, wxRIGHT, dc ); - } - else - { - DrawShade( 1, bounds, wxTOP, dc ); - DrawShade( 1, bounds, wxBOTTOM, dc ); - } - } - - // draw extra shades to simulate "glued-bricks" effect - - // TBD:: reduce exessive drawing of shades, when the - // row handle is present, and shades will be overr-drawn anyway - - DrawUpperRowShades( pRow, dc, 1 ); // outer shade - - if ( pRow->mpPrev ) - { - DrawLowerRowShades( pRow->mpPrev, dc, 1 ); // outter shade - DrawLowerRowShades( pRow->mpPrev, dc, 0 ); // inner shade - } - - DrawLowerRowShades( pRow, dc, 1 ); - - if ( pRow->mpNext ) - { - DrawUpperRowShades( pRow->mpNext, dc, 1 ); - DrawUpperRowShades( pRow->mpNext, dc, 0 ); - } - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::DrawUpperRowShades( cbRowInfo* pRow, wxDC& dc, int level ) -{ - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - wxRect& bounds = pRow->mBars[i]->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - { - DrawShade( level, bounds, wxTOP, dc ); - if ( level == 1 ) - { - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawPoint( bounds.x - 1, bounds.y ); - dc.SetPen( mpLayout->mLightPen ); - dc.DrawPoint( bounds.x + bounds.width , bounds.y ); - } - } - else - { - DrawShade( level, bounds, wxLEFT, dc ); - if ( level == 1 ) - { - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawPoint( bounds.x, bounds.y -1 ); - dc.SetPen( mpLayout->mLightPen ); - dc.DrawPoint( bounds.x, bounds.y + bounds.height ); - } - } - } -} - -void cbPaneDrawPlugin::DrawLowerRowShades( cbRowInfo* pRow, wxDC& dc, int level ) -{ - int prevX = 0; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - wxRect& bounds = pRow->mBars[i]->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - { - DrawShade( level, bounds, wxBOTTOM, dc ); - if ( level == 1 ) - { - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawPoint( bounds.x - 1, bounds.y + bounds.height -1 ); - dc.SetPen( mpLayout->mLightPen ); - dc.DrawPoint( bounds.x + bounds.width , bounds.y + bounds.height -1 ); - } - } - else - { - DrawShade( level, bounds, wxRIGHT, dc ); - if ( level == 1 ) - { - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawPoint( bounds.x + bounds.width - 1, bounds.y -1 ); - dc.SetPen( mpLayout->mLightPen ); - dc.DrawPoint( bounds.x + bounds.width - 1, bounds.y + bounds.height ); - } - } - } -} - -void cbPaneDrawPlugin::DrawBarInnerShadeRect( cbBarInfo* pBar, wxDC& dc ) -{ - wxRect& bounds = pBar->mBoundsInParent; - - dc.SetPen( mpLayout->mDarkPen ); - - dc.DrawLine( bounds.x + bounds.width - 1, - bounds.y, - bounds.x + bounds.width - 1, - bounds.y + bounds.height ); - - dc.DrawLine( bounds.x, - bounds.y + bounds.height - 1, - bounds.x + bounds.width, - bounds.y + bounds.height -1 ); - - dc.SetPen( mpLayout->mLightPen ); - - dc.DrawLine( bounds.x, - bounds.y, - bounds.x + bounds.width - 1, - bounds.y ); - - dc.DrawLine( bounds.x, - bounds.y, - bounds.x, - bounds.y + bounds.height - 1 ); -} - -void cbPaneDrawPlugin::DrawShade( int level, wxRect& rect, int alignment, wxDC& dc ) -{ - // simulates "guled-bricks" appearence of control bars - - if ( ( alignment == wxTOP && level == 1 ) || - ( alignment == wxBOTTOM && level == 0 ) || - ( alignment == wxLEFT && level == 1 ) || - ( alignment == wxRIGHT && level == 0 ) - ) - - dc.SetPen( mpLayout->mDarkPen ); - else - dc.SetPen( mpLayout->mLightPen ); - - if ( alignment == wxTOP ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x, - rect.y, - rect.x + rect.width - 1, - rect.y ); - else - dc.DrawLine( rect.x - 1, - rect.y - 1, - rect.x + rect.width + 0, - rect.y - 1 ); - } - else - if ( alignment == wxBOTTOM ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x, - rect.y + rect.height - 1, - rect.x + rect.width, - rect.y + rect.height - 1 ); - else - dc.DrawLine( rect.x - 1, - rect.y + rect.height, - rect.x + rect.width + 1, - rect.y + rect.height ); - } - else - if ( alignment == wxLEFT ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x, - rect.y, - rect.x, - rect.y + rect.height - 1 ); - else - dc.DrawLine( rect.x - 1, - rect.y - 1, - rect.x - 1, - rect.y + rect.height ); - } - else - if ( alignment == wxRIGHT ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x + rect.width - 1, - rect.y, - rect.x + rect.width - 1, - rect.y + rect.height ); - else - { - dc.DrawLine( rect.x + rect.width, - rect.y - 1, - rect.x + rect.width, - rect.y + rect.height + 1 ); - } - } -} - -void cbPaneDrawPlugin::DrawShade1( int level, wxRect& rect, int alignment, wxDC& dc ) -{ - // simulates "guled-bricks" appearence of control bars - - if ( ( alignment == wxTOP && level == 1 ) || - ( alignment == wxBOTTOM && level == 0 ) || - ( alignment == wxLEFT && level == 1 ) || - ( alignment == wxRIGHT && level == 0 ) - ) - - dc.SetPen( mpLayout->mDarkPen ); - else - dc.SetPen( mpLayout->mLightPen ); - - if ( alignment == wxTOP ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x, - rect.y, - rect.x + rect.width, - rect.y ); - else - dc.DrawLine( rect.x, - rect.y - 1, - rect.x + rect.width, - rect.y - 1 ); - } - else - if ( alignment == wxBOTTOM ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x, - rect.y + rect.height - 1, - rect.x + rect.width, - rect.y + rect.height - 1 ); - else - dc.DrawLine( rect.x, - rect.y + rect.height, - rect.x + rect.width, - rect.y + rect.height ); - } - else - if ( alignment == wxLEFT ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x, - rect.y, - rect.x, - rect.y + rect.height ); - else - dc.DrawLine( rect.x - 1, - rect.y, - rect.x - 1, - rect.y + rect.height ); - } - else - if ( alignment == wxRIGHT ) - { - if ( level == 0 ) - - dc.DrawLine( rect.x + rect.width - 1, - rect.y, - rect.x + rect.width - 1, - rect.y + rect.height ); - else - { - dc.DrawLine( rect.x + rect.width, - rect.y , - rect.x + rect.width, - rect.y + rect.height ); - } - } -} - -void cbPaneDrawPlugin::DrawPaneShade( wxDC& dc, int alignment ) -{ - if ( !mpPane->mProps.mShow3DPaneBorderOn ) return; - - wxRect bounds = mpPane->mBoundsInParent; - - bounds.x += mpPane->mLeftMargin; - bounds.y += mpPane->mTopMargin; - bounds.width -= ( mpPane->mLeftMargin + mpPane->mRightMargin ); - bounds.height -= ( mpPane->mTopMargin + mpPane->mBottomMargin ); - - DrawShade( 0, bounds, alignment, dc ); - DrawShade( 1, bounds, alignment, dc ); -} - -void cbPaneDrawPlugin::DrawPaneShadeForRow( cbRowInfo* pRow, wxDC& dc ) -{ - if ( !mpPane->mProps.mShow3DPaneBorderOn ) return; - - // do not draw decoration, if pane has "vainished" - if ( mpPane->mPaneWidth < 0 || - mpPane->mPaneHeight < 0 ) - - return; - - wxRect bounds = pRow->mBoundsInParent; - - if ( mpPane->mAlignment == wxTOP || - mpPane->mAlignment == wxBOTTOM ) - { - --bounds.y; - bounds.height += 2; - - DrawShade1( 0, bounds, wxLEFT, dc ); - DrawShade1( 1, bounds, wxLEFT, dc ); - DrawShade1( 0, bounds, wxRIGHT, dc ); - DrawShade1( 1, bounds, wxRIGHT, dc ); - - if ( !pRow->mpNext ) - DrawPaneShade( dc, wxBOTTOM ); - - if ( !pRow->mpPrev ) - DrawPaneShade( dc, wxTOP ); - } - else - { - --bounds.x; - bounds.width += 2; - - DrawShade1( 0, bounds, wxTOP, dc ); - DrawShade1( 1, bounds, wxTOP, dc ); - DrawShade1( 0, bounds, wxBOTTOM, dc ); - DrawShade1( 1, bounds, wxBOTTOM, dc ); - - if ( !pRow->mpNext ) - DrawPaneShade( dc, wxRIGHT ); - - if ( !pRow->mpPrev ) - DrawPaneShade( dc, wxLEFT ); - } -} - -void cbPaneDrawPlugin::OnDrawPaneDecorations( cbDrawPaneDecorEvent& event ) -{ - wxDC& dc = *event.mpDc; - - cbDockPane* pPane = event.mpPane; - - RowArrayT& lst = pPane->GetRowList(); - - // FIXME:: this is a workaround for some glitches - - if ( lst.Count() ) - { - cbRowInfo* pLastRow = lst[ lst.Count() - 1 ]; - - pPane->PaintRowBackground( pLastRow, dc ); - pPane->PaintRowDecorations( pLastRow, dc ); - pPane->PaintRowHandles( pLastRow, dc ); - } - - if ( !pPane->mProps.mShow3DPaneBorderOn ) return; - - // do not draw decoration, if pane is completely hidden - if ( event.mpPane->mPaneWidth < 0 || - event.mpPane->mPaneHeight < 0 ) - - return; - - DrawPaneShade( dc, wxTOP ); - DrawPaneShade( dc, wxBOTTOM ); - DrawPaneShade( dc, wxLEFT ); - DrawPaneShade( dc, wxRIGHT ); - - event.Skip(); // pass event to the next plugin -} - -// bar decoration/sizing handlers - -void cbPaneDrawPlugin::OnDrawBarDecorations( cbDrawBarDecorEvent& event ) -{ - cbBarInfo* pBar = event.mpBar; - wxDC& dc = *event.mpDc; - - // draw brick borders - - wxRect& rect = event.mBoundsInParent; - - dc.SetPen( mpLayout->mLightPen ); - - // horiz - dc.DrawLine( rect.x, rect.y, - rect.x + rect.width-1, rect.y ); - - // vert - dc.DrawLine( rect.x, rect.y, - rect.x, rect.y + rect.height-1 ); - - - dc.SetPen( mpLayout->mDarkPen ); - - // vert - dc.DrawLine( rect.x + rect.width-1, rect.y, - rect.x + rect.width-1, rect.y + rect.height-1 ); - - // horiz - dc.DrawLine( rect.x, rect.y + rect.height-1, - rect.x + rect.width, rect.y + rect.height-1 ); - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::OnDrawBarHandles( cbDrawBarHandlesEvent& event ) -{ - // short-cuts - cbBarInfo* pBar = event.mpBar; - wxDC& dc = *event.mpDc; - mpPane = event.mpPane; - - // draw handles around the bar if present - - if ( pBar->mHasLeftHandle || - pBar->mHasRightHandle ) - { - wxRect& bounds = pBar->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - { - if ( pBar->mHasLeftHandle ) - - mpPane->DrawVertHandle( dc, bounds.x - mpPane->mProps.mResizeHandleSize -1, - bounds.y, bounds.height ); - - if ( pBar->mHasRightHandle ) - - mpPane->DrawVertHandle( dc, - bounds.x + bounds.width -1, - bounds.y, bounds.height ); - } - else - { - if ( pBar->mHasLeftHandle ) - - mpPane->DrawHorizHandle( dc, bounds.x, - bounds.y - mpPane->mProps.mResizeHandleSize - 1, - bounds.width ); - - if ( pBar->mHasRightHandle ) - - mpPane->DrawHorizHandle( dc, bounds.x, - bounds.y + bounds.height - 1, - bounds.width ); - } - } - - event.Skip(); // pass event to the next plugin -} - -void cbPaneDrawPlugin::OnStartDrawInArea( cbStartDrawInAreaEvent& event ) -{ - // DBG:: - wxASSERT( mpClntDc == NULL ); - - // FOR NOW:: create/destory client-dc upon each drawing - mpClntDc = new wxClientDC( &mpLayout->GetParentFrame() ); - - (*event.mppDc) = mpClntDc; - - mpClntDc->SetClippingRegion( event.mArea.x, event.mArea.y, - event.mArea.width, event.mArea.height ); -} - -void cbPaneDrawPlugin::OnFinishDrawInArea( cbFinishDrawInAreaEvent& event ) -{ - // DBG:: - wxASSERT( mpClntDc ); - - delete mpClntDc; - - mpClntDc = NULL; -} diff --git a/utils/framelayout/src/panedrawpl.h b/utils/framelayout/src/panedrawpl.h deleted file mode 100644 index addfe19134..0000000000 --- a/utils/framelayout/src/panedrawpl.h +++ /dev/null @@ -1,118 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Central header file for control-bar related classes -// -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __PANEDRAWPL_G__ -#define __PANEDRAWPL_G__ - -#ifdef __GNUG__ -#pragma interface "panedrawpl.h" -#endif - -#include "controlbar.h" - -/* - * Simple, but all-in-one plugin implementation. Resembles look & feel of - * to MFC control-bars. Handles painting of pane and items in it. - * Fires bar/layout customization event, when user right-clicks bar/pane. - * Hooking an instance of this and row-layouting plugins per each pane, - * would be enough for the frame layout to function properly. - * (they are plugged in autimatically by wxFrameLayout class) - */ - -class cbPaneDrawPlugin : public cbPluginBase -{ -public: - DECLARE_DYNAMIC_CLASS( cbPaneDrawPlugin ) -protected: - - // resizing bars/rows state variables - bool mResizeStarted; - bool mResizeCursorOn; - wxPoint mDragOrigin; - - bool mRowHandleHitted; - bool mIsUpperHandle; - bool mBarHandleHitted; - bool mIsLeftHandle; - bool mBarContentHitted; - - cbBarInfo* mpDraggedBar; // also used when in bar-drag action - cbRowInfo* mpResizedRow; - - // contstraints for dragging the handle - wxRect mHandleDragArea; - bool mHandleIsVertical; - int mHandleOfs; - int mDraggedDelta; - wxPoint mPrevPos; - - // used for handling, start-draw-in-area events - wxClientDC* mpClntDc; - - cbDockPane* mpPane; // is set up temorary short-cut, while handling event - -protected: - // helpers - void DrawDraggedHandle( const wxPoint& pos, cbDockPane& pane ); - - virtual void DrawPaneShade( wxDC& dc, int alignment ); - virtual void DrawPaneShadeForRow( cbRowInfo* pRow, wxDC& dc ); - - virtual void DrawUpperRowHandle( cbRowInfo* pRow, wxDC& dc ); - virtual void DrawLowerRowHandle( cbRowInfo* pRow, wxDC& dc ); - - virtual void DrawUpperRowShades( cbRowInfo* pRow, wxDC& dc, int level ); - virtual void DrawLowerRowShades( cbRowInfo* pRow, wxDC& dc, int level ); - - virtual void DrawBarInnerShadeRect( cbBarInfo* pBar, wxDC& dc ); - - virtual void DrawShade( int level, wxRect& rect, int alignment, wxDC& dc ); - virtual void DrawShade1( int level, wxRect& rect, int alignment, wxDC& dc ); - - inline void SetLightPixel( int x, int y, wxDC& dc ); - inline void SetDarkPixel ( int x, int y, wxDC& dc ); - -public: - cbPaneDrawPlugin(void); - - cbPaneDrawPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - - virtual ~cbPaneDrawPlugin(); - - virtual cbPluginBase* Clone() { return new cbPaneDrawPlugin(0,0); } - - // handlers for plugin-events - - void OnLButtonDown( cbLeftDownEvent& event ); - void OnLDblClick ( cbLeftDClickEvent& event ); - void OnLButtonUp ( cbLeftUpEvent& event ); - void OnRButtonUp ( cbRightUpEvent& event ); - void OnMouseMove ( cbMotionEvent& event ); - - void OnDrawPaneBackground ( cbDrawPaneBkGroundEvent& event ); - void OnDrawPaneDecorations( cbDrawPaneDecorEvent& event ); - - void OnDrawRowDecorations ( cbDrawRowDecorEvent& event ); - void OnDrawRowHandles ( cbDrawRowHandlesEvent& event ); - void OnDrawRowBackground ( cbDrawRowBkGroundEvent& event ); - - void OnSizeBarWindow ( cbSizeBarWndEvent& event ); - void OnDrawBarDecorations ( cbDrawBarDecorEvent& event ); - void OnDrawBarHandles ( cbDrawBarHandlesEvent& event ); - - void OnStartDrawInArea ( cbStartDrawInAreaEvent& event ); - void OnFinishDrawInArea ( cbFinishDrawInAreaEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/rowdragpl.cpp b/utils/framelayout/src/rowdragpl.cpp deleted file mode 100644 index d158a19cf1..0000000000 --- a/utils/framelayout/src/rowdragpl.cpp +++ /dev/null @@ -1,1466 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "rowdragpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "rowdragpl.h" - -#define MINIMAL_ROW_DRAG_OFS 5 - -// parameters for row-hints of NC-look - -#define TRIANGLE_OFFSET 2 -#define TRIANGLE_TO_PAT_GAP 2 -#define PAT_OFFSET 2 -#define COLLAPSED_ICON_WIDTH 45 -#define COLLAPSED_ICON_HEIGHT 9 -#define ROW_DRAG_HINT_WIDTH 10 -#define ICON_TRIAN_WIDTH 6 -#define ICON_TRIAN_HEIGHT 3 - -/***** Implementaiton for class cbHiddenBarInfo *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbHiddenBarInfo, wxObject ) - -/***** Implementaiton for class cbRowDragPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbRowDragPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbRowDragPlugin, cbPluginBase ) - - EVT_PL_LEFT_DOWN ( cbRowDragPlugin::OnLButtonDown ) - EVT_PL_LEFT_UP ( cbRowDragPlugin::OnLButtonUp ) - EVT_PL_MOTION ( cbRowDragPlugin::OnMouseMove ) - - EVT_PL_DRAW_PANE_DECOR ( cbRowDragPlugin::OnDrawPaneBackground ) - -END_EVENT_TABLE() - -// FIXME:: how to eliminated these cut&pasted constructors? - -cbRowDragPlugin::cbRowDragPlugin(void) - - : mDragStarted ( FALSE ), - mDecisionMode ( FALSE ), - mCurDragOfs ( 0 ), - mpPaneImage ( NULL ), - mpRowImage ( NULL ), - mpCombinedImage ( NULL ), - - mpRowInFocus ( NULL ), - mCollapsedIconInFocus( -1 ), - - mCaptureIsOn ( FALSE ), - - mTrianInnerColor ( 0,0,255 ), - mHightColor ( 192, 192, 255 ), - mLowColor ( 192, 192, 192 ), - mTrianInnerPen ( mTrianInnerColor, 1, wxSOLID ), - - mSvTopMargin ( -1 ), - mSvBottomMargin ( -1 ), - mSvLeftMargin ( -1 ), - mSvRightMargin ( -1 ), - mpPane ( NULL ) -{ -} - -cbRowDragPlugin::cbRowDragPlugin( wxFrameLayout* pLayout, int paneMask ) - - : cbPluginBase( pLayout, paneMask ), - - mDragStarted ( FALSE ), - mDecisionMode ( FALSE ), - mCurDragOfs ( 0 ), - mpPaneImage ( NULL ), - mpRowImage ( NULL ), - mpCombinedImage ( NULL ), - - mpRowInFocus ( NULL ), - mCollapsedIconInFocus( -1 ), - - mCaptureIsOn ( FALSE ), - - mTrianInnerColor ( 0,0,255 ), - mHightColor ( 192, 192, 255 ), - mLowColor ( 192, 192, 192 ), - mTrianInnerPen ( mTrianInnerColor, 1, wxSOLID ), - - mSvTopMargin ( -1 ), - mSvBottomMargin ( -1 ), - mSvLeftMargin ( -1 ), - mSvRightMargin ( -1 ), - mpPane ( NULL ) -{ -} - -cbRowDragPlugin::~cbRowDragPlugin() -{ -} - -// handlers for plugin events -void cbRowDragPlugin::OnMouseMove( cbMotionEvent& event ) -{ - // short-cuts - wxPoint pos = event.mPos; - mpPane = event.mpPane; - - mpPane->PaneToFrame( &pos.x, &pos.y ); - - if ( !mDragStarted ) - { - if ( mDecisionMode && mpRowInFocus ) - { - int ofs; - - if ( mpPane->IsHorizontal() ) - - ofs = pos.y - mDragOrigin.y; - else - ofs = pos.x - mDragOrigin.x; - - // check if the item was dragged sufficeintly - // far, enough to consider that user really intends - // to drag it - - if ( ofs >= MINIMAL_ROW_DRAG_OFS || - ofs <= -MINIMAL_ROW_DRAG_OFS ) - { - // DBG:: - //.wxPoint pos = event.mPos; - //wxPoint drg = mDragOrigin; - //int dif = event.mPos.x - mDragOrigin.x; - - mDragStarted = TRUE; - mDecisionMode = FALSE; - mDragOrigin = pos; - - PrepareForRowDrag(); - return; - } - - // this plugin "eats" all mouse input while item is dragged, - return; - } - - cbRowInfo* pRow = GetFirstRow(); - - bool focusFound = FALSE; - - while( pRow ) - { - if ( HitTestRowDragHint( pRow, pos ) ) - { - CheckPrevItemInFocus( pRow, -1 ); - SetMouseCapture( TRUE ); - - focusFound = TRUE; - - mpRowInFocus = pRow; - mCollapsedIconInFocus = -1; - break; - } - - pRow = pRow->mpNext; - } - - if ( !focusFound ) - { - int hrCnt = GetHRowsCountForPane( event.mpPane ); - - for( int i = 0; i != hrCnt; ++i ) - { - if ( HitTestCollapsedRowIcon( i, pos ) ) - { - CheckPrevItemInFocus( NULL, i ); - SetMouseCapture( TRUE ); - - focusFound = TRUE; - - mCollapsedIconInFocus = i; - mpRowInFocus = NULL; - break; - } - } - } - - if ( !focusFound && ItemIsInFocus() ) - { - // kill focus from item previousely been in focus - UnhiglightItemInFocus(); - - mpRowInFocus = NULL; - mCollapsedIconInFocus = -1; - SetMouseCapture( FALSE ); - } - - if ( !ItemIsInFocus() ) - - // delegate it to other plugins - event.Skip(); - } - else - { - // otherwise mouse pointer moves, when dragging is started - - if ( mpPane->IsHorizontal() ) - { - // DBG:: - wxPoint p = event.mPos; - wxPoint d = mDragOrigin; - int dif = event.mPos.x - mDragOrigin.x; - - // row is dragged up or down; - ShowDraggedRow( pos.y - mDragOrigin.y ); - } - else - { - // DBG:: - wxPoint p = event.mPos; - wxPoint d = mDragOrigin; - int dif = event.mPos.x - mDragOrigin.x; - - // row is dragged left or right - ShowDraggedRow( pos.x - mDragOrigin.x ); - } - - // this plugin "eats" all mouse input while item is dragged, - } -} - -void cbRowDragPlugin::OnLButtonDown( cbLeftDownEvent& event ) -{ - mpPane = event.mpPane; - - // DBG:: - wxASSERT( !mDragStarted && !mDecisionMode ); - - if ( ItemIsInFocus() ) - { - mDecisionMode = TRUE; - - wxPoint pos = event.mPos; - mpPane->PaneToFrame( &pos.x, &pos.y ); - - mDragOrigin = pos; - - SetMouseCapture( TRUE ); - } - else - // propagate event to other plugins - event.Skip(); -} - -void cbRowDragPlugin::OnLButtonUp ( cbLeftUpEvent& event ) -{ - if ( !mDragStarted && !mDecisionMode ) - { - event.Skip(); - return; - } - - mpPane = event.mpPane; - - if ( mDecisionMode ) - { - cbDockPane* pPane = mpPane; - - SetMouseCapture( FALSE ); - - mDecisionMode = FALSE; - mDragStarted = FALSE; - - wxPoint frmPos = event.mPos; - pPane->PaneToFrame( &frmPos.x, &frmPos.y ); - - if ( mpRowInFocus ) - { - CollapseRow( mpRowInFocus ); - mpRowInFocus = 0; - } - else - { - ExpandRow( mCollapsedIconInFocus ); - mCollapsedIconInFocus = -1; - } - - mpRowInFocus = NULL; - mpPane = pPane; - - pPane->FrameToPane( &frmPos.x, &frmPos.y ); - - // give it another try after relayouting bars - - cbMotionEvent moveEvt( frmPos, pPane ); - this->OnMouseMove( moveEvt ); - - // this plugin has "eaten" the mouse-up event - - return; - } - else - { - // otherwise, the dragged row was dropped, determine - // where to insert it - - // restore initial pane appearence - ShowPaneImage(); - FinishOnScreenDraw(); - - cbRowInfo* pRow = GetFirstRow(); - - mpLayout->GetUpdatesManager().OnStartChanges(); - - pRow->mUMgrData.SetDirty(TRUE); - - cbBarInfo* pBar = mpRowInFocus->mBars[0]; - - while ( pBar ) - { - pBar->mUMgrData.SetDirty(TRUE); - - if ( pBar->mpBarWnd ) - { - // do complete refresh - pBar->mpBarWnd->Show(FALSE); - pBar->mpBarWnd->Show(TRUE); - } - - pBar = pBar->mpNext; - } - - while( pRow ) - { - if ( mCurDragOfs < pRow->mRowY ) - { - InsertDraggedRowBefore( pRow ); - break; - } - - pRow = pRow->mpNext; - } - - if ( pRow == NULL ) InsertDraggedRowBefore( NULL ); - - mpRowInFocus = NULL; - - mpLayout->RecalcLayout(FALSE); - - // finish change "transaction" - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); - - // finish drag action - SetMouseCapture( FALSE ); - mDragStarted = FALSE; - } -} - -void cbRowDragPlugin::OnDrawPaneBackground ( cbDrawPaneDecorEvent& event ) -{ - mpPane = event.mpPane; - - // FIXME:: this may harm operation of other plugins - - if ( GetNextHandler() && mpPane->GetRowList().GetCount() ) - { - // first, let other plugins add their decorations now - - GetNextHandler()->ProcessEvent( event ); - event.Skip(FALSE); - } - - wxClientDC dc( &mpLayout->GetParentFrame() ); - - dc.SetClippingRegion( mpPane->mBoundsInParent.x, - mpPane->mBoundsInParent.y, - mpPane->mBoundsInParent.width, - mpPane->mBoundsInParent.height ); - - int cnt = GetHRowsCountForPane( event.mpPane ); - - if ( cnt > 0 ) - - DrawCollapsedRowsBorder( dc ); - - if ( mpPane->GetRowList().GetCount() ) - - DrawRowsDragHintsBorder( dc ); - - cbRowInfo* pRow = GetFirstRow(); - - while( pRow ) - { - DrawRowDragHint( pRow, dc, FALSE ); - pRow = pRow->mpNext; - } - - for( int i = 0; i != cnt; ++i ) - - DrawCollapsedRowIcon(i, dc, FALSE ); -} - -int cbRowDragPlugin::GetHRowsCountForPane( cbDockPane* pPane ) -{ - wxNode* pNode = mHiddenBars.First(); - - int maxIconNo = -1; - - while( pNode ) - { - cbHiddenBarInfo* pHBInfo = (cbHiddenBarInfo*)pNode->Data(); - - if ( pHBInfo->mAlignment == pPane->mAlignment ) - - maxIconNo = wxMax( maxIconNo, pHBInfo->mIconNo ); - - pNode = pNode->Next(); - } - - return ( maxIconNo + 1 ); -} - -int cbRowDragPlugin::GetCollapsedRowIconHeight() -{ - return COLLAPSED_ICON_HEIGHT; -} - -int cbRowDragPlugin::GetRowDragHintWidth() -{ - return ROW_DRAG_HINT_WIDTH; -} - -void cbRowDragPlugin::SetPaneMargins() -{ - int hiddenRowsCnt = GetHRowsCountForPane( mpPane ); - - if ( mSvTopMargin == -1 ) - { - mSvTopMargin = mpPane->mTopMargin; - mSvBottomMargin = mpPane->mBottomMargin; - mSvLeftMargin = mpPane->mLeftMargin; - mSvRightMargin = mpPane->mRightMargin; - } - - if ( mpPane->IsHorizontal() ) - { - mpPane->mTopMargin = mSvTopMargin; - mpPane->mBottomMargin = ( hiddenRowsCnt == 0 ) - ? mSvBottomMargin - : mSvBottomMargin + GetCollapsedRowIconHeight(); - - mpPane->mLeftMargin = mSvLeftMargin + GetRowDragHintWidth(); - mpPane->mRightMargin = mSvRightMargin; - } - else - { - mpPane->mTopMargin = mSvTopMargin; - mpPane->mBottomMargin = mSvBottomMargin + GetRowDragHintWidth(); - - mpPane->mLeftMargin = mSvLeftMargin; - mpPane->mRightMargin = ( hiddenRowsCnt == 0 ) ? - mSvRightMargin : mSvRightMargin + GetCollapsedRowIconHeight(); - } -} - -void cbRowDragPlugin::OnInitPlugin() -{ - cbDockPane** panes = mpLayout->GetPanesArray(); - - for( int i = 0; i != MAX_PANES; ++i ) - - if ( panes[i]->MatchesMask( mPaneMask ) ) - { - mpPane = panes[i]; - - SetPaneMargins(); - } -} - -/*** helpers for drag&drop ***/ - -void cbRowDragPlugin::SetMouseCapture( bool captureOn ) -{ - if ( mCaptureIsOn == captureOn ) return; - - if ( captureOn ) - { - mpLayout->CaptureEventsForPane( mpPane ); - mpLayout->CaptureEventsForPlugin( this ); - } - else - { - mpLayout->ReleaseEventsFromPane( mpPane ); - mpLayout->ReleaseEventsFromPlugin( this ); - } - - mCaptureIsOn = captureOn; -} - -void cbRowDragPlugin::UnhiglightItemInFocus() -{ - wxClientDC dc( &mpLayout->GetParentFrame() ); - - if ( mpRowInFocus ) - - DrawRowDragHint( mpRowInFocus, dc, FALSE ); - else - if ( mCollapsedIconInFocus != - 1 ) - - DrawCollapsedRowIcon( mCollapsedIconInFocus, dc, FALSE ); -} - -void cbRowDragPlugin::ShowDraggedRow( int offset ) -{ - // create combined image of pane and dragged - // row on it, in the mpCombinedImage bitmap - - if ( mpPane->IsHorizontal() ) - { - if ( mInitalRowOfs + offset + mRowImgDim.y > mCombRect.y + mCombRect.height ) - - offset = mCombRect.y + mCombRect.height - mRowImgDim.y - mInitalRowOfs; - - if ( mInitalRowOfs + offset < mCombRect.y ) - - offset = mCombRect.y - mInitalRowOfs; - - long x, y = mInitalRowOfs + offset; - mpPane->FrameToPane( &x, &y ); - mCurDragOfs = y; - } - else - { - if ( mInitalRowOfs + offset + mRowImgDim.x > mCombRect.x + mCombRect.width ) - - offset = mCombRect.x + mCombRect.width - mRowImgDim.x - mInitalRowOfs; - - if ( mInitalRowOfs + offset < mCombRect.x ) - - offset = mCombRect.x - mInitalRowOfs; - - long x = mInitalRowOfs + offset, y; - mpPane->FrameToPane( &x, &y ); - mCurDragOfs = x; - } - - wxMemoryDC rowImgDc; - rowImgDc.SelectObject ( *mpRowImage ); - - wxMemoryDC paneImgDc; - paneImgDc.SelectObject( *mpPaneImage ); - - wxMemoryDC combImgDc; - combImgDc.SelectObject( *mpCombinedImage ); - - combImgDc.Blit( 0,0, mCombRect.width, mCombRect.height, - &paneImgDc, 0,0, wxCOPY ); - - if ( mpPane->IsHorizontal() ) - { - combImgDc.Blit( 0, mInitalRowOfs + offset - mCombRect.y, - mCombRect.width, mRowImgDim.y, - &rowImgDc, 0,0, wxCOPY ); - } - else - { - combImgDc.Blit( mInitalRowOfs + offset - mCombRect.x, - 0, - mRowImgDim.x, mCombRect.height, - &rowImgDc, 0,0, wxCOPY ); - } - - int scrX = mCombRect.x, - scrY = mCombRect.y; - - mpLayout->GetParentFrame().ClientToScreen( &scrX, &scrY ); - - mpScrDc->Blit( scrX, scrY, mCombRect.width, mCombRect.height, - &combImgDc, 0,0, wxCOPY ); - - rowImgDc .SelectObject( wxNullBitmap ); - paneImgDc.SelectObject( wxNullBitmap ); - combImgDc.SelectObject( wxNullBitmap ); -} - -wxBitmap* cbRowDragPlugin::CaptureDCArea( wxDC& dc, wxRect& area ) -{ - wxBitmap* pBmp = new wxBitmap( int(area.width), int(area.height) ); - - wxMemoryDC mdc; - mdc.SelectObject( *pBmp ); - - mdc.Blit( 0,0, area.width, area.height, &dc, area.x, area.y, wxCOPY ); - mdc.SelectObject( wxNullBitmap ); - - return pBmp; -} - -void cbRowDragPlugin::PrepareForRowDrag() -{ - wxRect rowBounds = mpRowInFocus->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - { - mCombRect = mpPane->mBoundsInParent; - - mCombRect.x += mpPane->mLeftMargin - ROW_DRAG_HINT_WIDTH - 1; - mCombRect.y += mpPane->mTopMargin; - - mCombRect.width -= mpPane->mLeftMargin + mpPane->mRightMargin - ROW_DRAG_HINT_WIDTH - 1 - 1; - mCombRect.height -= mpPane->mTopMargin + mpPane->mBottomMargin; - - mCombRect.height += 2*rowBounds.height; - mCombRect.y -= rowBounds.height; - mInitalRowOfs = rowBounds.y; - - rowBounds.y -= 1; - rowBounds.height += 2; - rowBounds.x = mCombRect.x; - rowBounds.width = mCombRect.width; - - mRowImgDim.y = rowBounds.height; - } - else - { - mCombRect = mpPane->mBoundsInParent; - - mCombRect.y += mpPane->mTopMargin - 1; - mCombRect.x += mpPane->mLeftMargin - 1; - ; - mCombRect.height -= mpPane->mTopMargin + mpPane->mBottomMargin - ROW_DRAG_HINT_WIDTH - 1 - 1; - mCombRect.width -= mpPane->mLeftMargin + mpPane->mRightMargin; - - mCombRect.width += 2*rowBounds.width; - mCombRect.x -= rowBounds.width; - mInitalRowOfs = rowBounds.x; - - rowBounds.x -= 1; - rowBounds.width += 2; - rowBounds.y = mCombRect.y; - rowBounds.height = mCombRect.height; - - mRowImgDim.x = rowBounds.width; - } - // output cobination results onto frame's client area - wxScreenDC::StartDrawingOnTop(&mpLayout->GetParentFrame()); - mpScrDc = new wxScreenDC(); - - int x = mCombRect.x, y = mCombRect.y; - mpLayout->GetParentFrame().ClientToScreen( &x, &y ); - - wxRect scrRect = mCombRect; - scrRect.x = x; - scrRect.y = y; - - mpPaneImage = CaptureDCArea( *mpScrDc, scrRect ); - - wxMemoryDC mdc; - mdc.SelectObject( *mpPaneImage ); - mdc.SetDeviceOrigin( -mCombRect.x, -mCombRect.y ); - - DrawRectShade( rowBounds, mdc, -1, mpLayout->mGrayPen, mpLayout->mDarkPen ); - DrawRectShade( rowBounds, mdc, 0, mpLayout->mLightPen, mpLayout->mBlackPen ); - - mpRowImage = CaptureDCArea( mdc, rowBounds ); - - // draw dark empty-row placeholder - DrawEmptyRow( mdc, rowBounds ); - - //DrawRectShade( rowBounds, mdc, 0, mpLayout->mGrayPen, mpLayout->mDarkPen ); - DrawRectShade( rowBounds, mdc, -1, mpLayout->mGrayPen, mpLayout->mGrayPen ); - - mdc.SelectObject( wxNullBitmap ); - - mpCombinedImage = new wxBitmap( int(mCombRect.width), int(mCombRect.height) ); - - // show it for the first time - ShowDraggedRow( 0 ); -} - -void cbRowDragPlugin::DrawEmptyRow( wxDC& dc, wxRect& rowBounds ) -{ - wxBrush bkBrush( mpLayout->mDarkPen.GetColour(), wxSOLID ); - - // paint the "dark" empty-row placeholder - - dc.SetBrush( bkBrush ); - dc.SetPen ( mpLayout->mNullPen ); - - dc.DrawRectangle( rowBounds.x, rowBounds.y, - rowBounds.width+1, rowBounds.height+1 ); - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::ShowPaneImage() -{ - int scrX = 0, scrY = 0; - - mpLayout->GetParentFrame().ClientToScreen( &scrX, &scrY ); - - wxMemoryDC mdc; - mdc.SelectObject( *mpPaneImage ); - - mpScrDc->Blit( mCombRect.x + scrX, mCombRect.y + scrY, - mCombRect.width, mCombRect.height, - &mdc, 0,0, wxCOPY ); - - mdc.SelectObject( wxNullBitmap ); -} - -void cbRowDragPlugin::FinishOnScreenDraw() -{ - wxScreenDC::EndDrawingOnTop(); - - delete mpScrDc; - delete mpCombinedImage; - delete mpPaneImage; - delete mpRowImage; - - mpScrDc = NULL; - - mpCombinedImage = mpPaneImage = mpRowImage = NULL; -} - -void cbRowDragPlugin::CollapseRow( cbRowInfo* pRow ) -{ - int iconCnt = GetHRowsCountForPane( mpPane ); - - mpLayout->GetUpdatesManager().OnStartChanges(); - - cbBarInfo* pBar = pRow->mBars[0]; - - int rowNo = 0; - - cbRowInfo* pCur = pRow; - while( pCur->mpPrev ) { ++rowNo; pCur = pCur->mpPrev; } - - while( pBar ) - { - cbHiddenBarInfo* pHBInfo = new cbHiddenBarInfo(); - - pHBInfo->mpBar = pBar; - pHBInfo->mRowNo = rowNo; - pHBInfo->mIconNo = iconCnt; - pHBInfo->mAlignment = mpPane->mAlignment; - - mHiddenBars.Append( (wxObject*) pHBInfo ); - - // hide it - if ( pBar->mpBarWnd ) - - pBar->mpBarWnd->Show( FALSE ); - - pBar->mState = wxCBAR_HIDDEN; - - cbBarInfo* pNext = pBar->mpNext; - - pBar->mpRow = NULL; - pBar->mpNext = NULL; - pBar->mpPrev = NULL; - - pBar = pNext; - } - - mpPane->GetRowList().Remove( pRow ); - mpPane->InitLinksForRows(); - - delete pRow; - - SetPaneMargins(); - - mpLayout->RecalcLayout(FALSE); - - mpRowInFocus = NULL; - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); -} - -void cbRowDragPlugin::ExpandRow( int collapsedIconIdx ) -{ - mpLayout->GetUpdatesManager().OnStartChanges(); - - cbRowInfo* pNewRow = new cbRowInfo(); - - wxNode* pNode = mHiddenBars.First(); - - int rowNo = 0; - - // move bars from internal list to the newly expanded row - - while( pNode ) - { - cbHiddenBarInfo* pHBInfo = (cbHiddenBarInfo*)pNode->Data(); - - if ( pHBInfo->mAlignment == mpPane->mAlignment && - pHBInfo->mIconNo == collapsedIconIdx ) - { - rowNo = pHBInfo->mRowNo; - - if ( pHBInfo->mpBar->mState == wxCBAR_HIDDEN ) - { - pNewRow->mBars.Add( pHBInfo->mpBar ); - - pHBInfo->mpBar->mState = ( mpPane->IsHorizontal() ) - ? wxCBAR_DOCKED_HORIZONTALLY - : wxCBAR_DOCKED_VERTICALLY; - } - - // remove bar info from internal list - - wxNode* pNext = pNode->Next(); - - delete pHBInfo; - mHiddenBars.DeleteNode( pNode ); - - pNode = pNext; - } - else - { - // decrease incon numbers with higher indicies, since this - // row is now removed from the hidden-rows list - - if ( pHBInfo->mIconNo > collapsedIconIdx && - pHBInfo->mAlignment == mpPane->mAlignment ) - - --pHBInfo->mIconNo; - - pNode = pNode->Next(); - } - } - - mpPane->InitLinksForRow( pNewRow ); - - // insert row into pane at it's original position - - if ( pNewRow->mBars.GetCount() ) - { - cbRowInfo* beforeRowNode = mpPane->GetRow( rowNo ); - - mpPane->InsertRow( pNewRow, beforeRowNode ); - } - else - delete pNewRow; - - SetPaneMargins(); - - mpLayout->RecalcLayout(FALSE); - - mCollapsedIconInFocus = -1; - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); - - - /* - wxNode* pRowNode = mHiddenRows.Nth( collapsedIconIdx ); - - mpLayout->GetUpdatesManager().OnStartChanges(); - - // insert at the end of rows list - mpPane->InsertRow( pRowNode, NULL ); - - int success = mHiddenRows.DeleteNode( pRowNode ); - // DBG:: - wxASSERT( success ); - - SetPaneMargins(); - - mpLayout->RecalcLayout(FALSE); - - mCollapsedIconInFocus = -1; - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); - */ -} - -void cbRowDragPlugin::InsertDraggedRowBefore( cbRowInfo* pBeforeRow ) -{ - if ( mpRowInFocus != pBeforeRow && - mpRowInFocus->mpNext != pBeforeRow - ) - { - mpPane->GetRowList().Remove( mpRowInFocus ); - - mpPane->InsertRow( mpRowInFocus, pBeforeRow ); - } - else - { - // otherwise, nothing has happned (row positions do not change) - - //wxClientDC dc( &mpLayout->GetParentFrame() ); - - //mpPane->PaintRow( mpRowInFocus, dc ); - //DrawRowDragHint( mpRowInFocus, dc, FALSE ); - } -} - -bool cbRowDragPlugin::ItemIsInFocus() -{ - return ( mpRowInFocus || mCollapsedIconInFocus != - 1 ); -} - -void cbRowDragPlugin::CheckPrevItemInFocus( cbRowInfo* pRow, int iconIdx ) -{ - wxClientDC dc( &mpLayout->GetParentFrame() ); - - if ( pRow != NULL && mpRowInFocus == pRow ) return; - if ( iconIdx != -1 && mCollapsedIconInFocus == iconIdx ) return; - - UnhiglightItemInFocus(); - - if ( iconIdx != - 1 ) - - DrawCollapsedRowIcon( iconIdx, dc, TRUE ); - - else - if ( pRow != NULL ) - - DrawRowDragHint( pRow, dc, TRUE ); -} - -cbRowInfo* cbRowDragPlugin::GetFirstRow() -{ - return ( mpPane->GetRowList().GetCount() ) - ? mpPane->GetRowList()[0] - : NULL; -} - -/*** "hard-coded" metafile for NN-look ***/ - -void cbRowDragPlugin::DrawTrianUp( wxRect& inRect, wxDC& dc ) -{ - int xOfs = (inRect.width - ICON_TRIAN_WIDTH)/2; - - wxBrush br( mTrianInnerColor, wxSOLID ); - - dc.SetBrush( br ); - dc.SetPen( mpLayout->mBlackPen ); - - wxPoint points[3]; - points[0].x = inRect.x + xOfs; - points[0].y = inRect.y + inRect.height - 1; - points[1].x = inRect.x + xOfs + ICON_TRIAN_WIDTH/2 + 1; - points[1].y = inRect.y + inRect.height - 2 - ICON_TRIAN_HEIGHT; - points[2].x = inRect.x + xOfs + ICON_TRIAN_WIDTH+1; - points[2].y = inRect.y + inRect.height - 1; - - dc.DrawPolygon( 3, points ); - - // higlight upper-right edge of triangle - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( points[2].x, points[2].y, - points[0].x, points[0].y ); - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::DrawTrianDown( wxRect& inRect, wxDC& dc ) -{ - int xOfs = (inRect.width - ICON_TRIAN_WIDTH)/2; - - wxBrush br( mTrianInnerColor, wxSOLID ); - - dc.SetBrush( br ); - dc.SetPen( mpLayout->mBlackPen ); - - wxPoint points[3]; - points[0].x = inRect.x + xOfs; - points[0].y = inRect.y; - points[1].x = inRect.x + xOfs + ICON_TRIAN_WIDTH; - points[1].y = inRect.y; - points[2].x = inRect.x + xOfs + ICON_TRIAN_WIDTH/2; - points[2].y = inRect.y + ICON_TRIAN_HEIGHT; - - dc.DrawPolygon( 3, points ); - - // higlight upper-right edge of triangle - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( points[2].x, points[2].y, - points[1].x, points[1].y ); - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::DrawTrianRight( wxRect& inRect, wxDC& dc ) -{ - int yOfs = (inRect.height - ICON_TRIAN_WIDTH)/2; - - wxBrush br( mTrianInnerColor, wxSOLID ); - - dc.SetBrush( br ); - dc.SetPen( mpLayout->mBlackPen ); - - wxPoint points[3]; - points[0].x = inRect.x; - points[0].y = inRect.y + yOfs + ICON_TRIAN_WIDTH; - points[1].x = inRect.x; - points[1].y = inRect.y + yOfs; - points[2].x = inRect.x + ICON_TRIAN_HEIGHT; - points[2].y = inRect.y + yOfs + ICON_TRIAN_WIDTH/2; - - dc.DrawPolygon( 3, points ); - - // higlight upper-right edge of triangle - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( points[0].x, points[0].y, - points[2].x, points[2].y ); - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::Draw3DPattern( wxRect& inRect, wxDC& dc ) -{ - for( int y = inRect.y; y < inRect.y + inRect.height; y+=3 ) - - for( int x = inRect.x; x < inRect.x + inRect.width; x+=3 ) - { - dc.SetPen( mpLayout->mLightPen ); - dc.DrawPoint( x,y ); - dc.SetPen( mpLayout->mBlackPen ); - dc.DrawPoint( x+1, y+1 ); - } -} - -void cbRowDragPlugin::DrawRombShades( wxPoint& p1, wxPoint& p2, - wxPoint& p3, wxPoint& p4, - wxDC& dc ) -{ - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( p1.x, p1.y, p2.x, p2.y ); - dc.DrawLine( p2.x, p2.y, p3.x, p3.y ); - dc.SetPen( mpLayout->mDarkPen ); - dc.DrawLine( p3.x, p3.y, p4.x, p4.y ); - dc.DrawLine( p4.x, p4.y, p1.x, p1.y ); -} - -void cbRowDragPlugin::DrawOrtoRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush ) -{ - dc.SetBrush( bkBrush ); - dc.SetPen( mpLayout->mBlackPen ); - - wxPoint points[4]; - - if ( inRect.width > inRect.height ) - { - // horizontal orienation - points[0].x = inRect.x; - points[0].y = inRect.y + inRect.height; - points[1].x = inRect.x; - points[1].y = inRect.y; - points[2].x = inRect.x + inRect.width; - points[2].y = inRect.y; - points[3].x = inRect.x + inRect.width - COLLAPSED_ICON_HEIGHT; - points[3].y = inRect.y + inRect.height; - - dc.DrawPolygon( 4, points ); - - // squeeze romb's bounds to create an inner-shade shape - ++points[0].x; - --points[0].y; - ++points[1].x; - ++points[1].y; - --points[2].x; --points[2].x; - ++points[2].y; - --points[3].y; - - DrawRombShades( points[0], points[1], points[2], points[3], dc ); - } - else - { - // vertical orientation - points[0].x = inRect.x + inRect.width; - points[0].y = inRect.y + inRect.height; - points[1].x = inRect.x; - points[1].y = inRect.y + inRect.height; - points[2].x = inRect.x; - points[2].y = inRect.y; - points[3].x = inRect.x + inRect.width; - points[3].y = inRect.y + COLLAPSED_ICON_HEIGHT; - - dc.DrawPolygon( 4, points ); - - // squeeze romb's bounds to create an inner-shade shape - --points[0].y ; - --points[0].x; - ++points[1].x; - --points[1].y; - ++points[2].y; ++points[2].y; - ++points[2].x; - --points[3].x; - - DrawRombShades( points[1], points[2], points[3], points[0], dc ); - } - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::DrawRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush ) -{ - wxPoint points[4]; - - dc.SetBrush( bkBrush ); - dc.SetPen( mpLayout->mBlackPen ); - - if ( inRect.width > inRect.height ) - { - // horizontal orientation - points[0].x = inRect.x; - points[0].y = inRect.y + inRect.height; - points[1].x = inRect.x + COLLAPSED_ICON_HEIGHT; - points[1].y = inRect.y; - points[2].x = inRect.x + inRect.width; - points[2].y = inRect.y; - points[3].x = inRect.x + inRect.width - COLLAPSED_ICON_HEIGHT; - points[3].y = inRect.y + inRect.height; - - dc.DrawPolygon( 4, points ); - - // squeeze romb's bounds to create an inner-shade shape - ++points[0].x ;++points[0].x ; - --points[0].y; - ++points[1].y; - --points[2].x; --points[2].x; - ++points[2].y; - //--points[3].x ; - --points[3].y; - - DrawRombShades( points[0], points[1], points[2], points[3], dc ); - - } - else - { - // vertical orientation - points[0].x = inRect.x + inRect.width; - points[0].y = inRect.y + inRect.height; - points[1].x = inRect.x; - points[1].y = inRect.y + inRect.height - COLLAPSED_ICON_HEIGHT; - points[2].x = inRect.x; - points[2].y = inRect.y; - points[3].x = inRect.x + inRect.width; - points[3].y = inRect.y + COLLAPSED_ICON_HEIGHT; - - dc.DrawPolygon( 4, points ); - - // squeeze romb's bounds to create an inner-shade shape - --points[0].y ;--points[0].y ; - --points[0].x; - ++points[1].x; - ++points[2].y; ++points[2].y; - ++points[2].x; - --points[3].x; - - DrawRombShades( points[1], points[2], points[3], points[0], dc ); - } - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::DrawRectShade( wxRect& inRect, wxDC& dc, - int level, wxPen& upperPen, wxPen& lowerPen ) -{ - // upper shade - dc.SetPen( upperPen ); - dc.DrawLine( inRect.x - level, - inRect.y - level, - inRect.x + inRect.width - 1 + level, - inRect.y - level); - dc.DrawLine( inRect.x - level, inRect.y - level, - inRect.x - level, inRect.y + inRect.height - 1 + level ); - - // lower shade - dc.SetPen( lowerPen ); - dc.DrawLine( inRect.x - level, - inRect.y + inRect.height - 1 + level, - inRect.x + inRect.width + level, - inRect.y + inRect.height - 1 + level); - dc.DrawLine( inRect.x + inRect.width - 1 + level, - inRect.y - level, - inRect.x + inRect.width - 1 + level, - inRect.y + inRect.height + level); - - dc.SetBrush( wxNullBrush ); -} - -void cbRowDragPlugin::Draw3DRect( wxRect& inRect, wxDC& dc, wxBrush& bkBrush ) -{ - dc.SetPen( mpLayout->mNullPen ); - dc.SetBrush( bkBrush ); - - dc.DrawRectangle( inRect.x, inRect.y, - inRect.width, inRect.height ); - - DrawRectShade( inRect, dc, 0, mpLayout->mLightPen, mpLayout->mDarkPen ); -} - -int cbRowDragPlugin::GetCollapsedIconsPos() -{ - RowArrayT& rows = mpPane->GetRowList(); - - if ( rows.GetCount() == 0 ) - { - if ( mpPane->IsHorizontal() ) - - return mpPane->mBoundsInParent.y + mpPane->mTopMargin; - else - return mpPane->mBoundsInParent.x + mpPane->mLeftMargin; - } - - wxRect& bounds = rows[ rows.GetCount() - 1 ]->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - - return bounds.y + bounds.height + 1; - else - return bounds.x + bounds.width + 1; - -} - -void cbRowDragPlugin::GetRowHintRect( cbRowInfo* pRow, wxRect& rect ) -{ - wxRect& bounds = pRow->mBoundsInParent; - - if ( mpPane->IsHorizontal() ) - { - rect.x = bounds.x - ROW_DRAG_HINT_WIDTH - 1; - rect.y = bounds.y; - rect.width = ROW_DRAG_HINT_WIDTH; - rect.height = bounds.height; - } - else - { - rect.x = bounds.x; - rect.y = bounds.y + bounds.height + 1; - rect.width = bounds.width; - rect.height = ROW_DRAG_HINT_WIDTH; - } -} - -void cbRowDragPlugin::GetCollapsedInconRect( int iconIdx, wxRect& rect ) -{ - int upper = GetCollapsedIconsPos(); - - int right = (iconIdx == 0 ) - ? 0 : iconIdx * (COLLAPSED_ICON_WIDTH - COLLAPSED_ICON_HEIGHT); - - if ( mpPane->IsHorizontal() ) - { - rect.x = mpPane->mBoundsInParent.x + mpPane->mLeftMargin - ROW_DRAG_HINT_WIDTH - 1 - + right; - - rect.y = upper; - rect.width = COLLAPSED_ICON_WIDTH; - rect.height = COLLAPSED_ICON_HEIGHT; - } - else - { - rect.x = upper; - rect.y = mpPane->mBoundsInParent.y + mpPane->mBoundsInParent.height - - mpPane->mBottomMargin + ROW_DRAG_HINT_WIDTH + 1 - - right - COLLAPSED_ICON_WIDTH; - - rect.height = COLLAPSED_ICON_WIDTH; - rect.width = COLLAPSED_ICON_HEIGHT; - } -} - -/*** overridables ***/ - -void cbRowDragPlugin::DrawCollapsedRowIcon( int index, wxDC& dc, bool isHighlighted ) -{ - wxRect rect; - GetCollapsedInconRect( index, rect ); - - wxBrush hiBrush ( mHightColor, wxSOLID ); - wxBrush lowBrush( mLowColor, wxSOLID ); - wxBrush& curBrush = ( isHighlighted ) ? hiBrush : lowBrush; - - if ( mpPane->IsHorizontal() ) - { - if ( index == 0 ) - - DrawOrtoRomb( rect, dc, curBrush ); - else - DrawRomb( rect, dc, curBrush ); - - int triOfs = (index == 0) ? TRIANGLE_OFFSET : TRIANGLE_OFFSET + COLLAPSED_ICON_HEIGHT; - - wxRect triRect; - triRect.x = triOfs + rect.x; - - triRect.width = ICON_TRIAN_HEIGHT; - triRect.y = rect.y; - triRect.height = rect.height; - - DrawTrianRight( triRect, dc ); - - wxRect patRect; - patRect.x = triOfs + ICON_TRIAN_HEIGHT + TRIANGLE_TO_PAT_GAP + rect.x; - patRect.y = rect.y + PAT_OFFSET; - patRect.width = rect.width - (patRect.x - rect.x) - COLLAPSED_ICON_HEIGHT - PAT_OFFSET; - patRect.height = rect.height - PAT_OFFSET*2; - - Draw3DPattern( patRect, dc ); - } - else - { - if ( index == 0 ) - - DrawOrtoRomb( rect, dc, curBrush ); - else - DrawRomb( rect, dc, curBrush ); - - int triOfs = (index == 0) - ? TRIANGLE_OFFSET + ICON_TRIAN_HEIGHT - : TRIANGLE_OFFSET + COLLAPSED_ICON_HEIGHT + ICON_TRIAN_HEIGHT; - - wxRect triRect; - triRect.y = rect.y + rect.height - triOfs; - triRect.x = rect.x; - triRect.width = rect.width; - triRect.height = ICON_TRIAN_HEIGHT; - - DrawTrianUp( triRect, dc ); - - wxRect patRect; - patRect.y = rect.y + COLLAPSED_ICON_HEIGHT + PAT_OFFSET; - patRect.x = rect.x + PAT_OFFSET; - patRect.width = rect.width - 2*PAT_OFFSET ; - patRect.height = rect.height - triOfs - 2*PAT_OFFSET - COLLAPSED_ICON_HEIGHT; - - Draw3DPattern( patRect, dc ); - } -} - -void cbRowDragPlugin::DrawRowDragHint( cbRowInfo* pRow , wxDC& dc, bool isHighlighted ) -{ - wxRect rect; - GetRowHintRect( pRow, rect ); - - wxBrush hiBrush ( mHightColor, wxSOLID ); - wxBrush lowBrush( mLowColor, wxSOLID ); - wxBrush& curBrush = ( isHighlighted ) ? hiBrush : lowBrush; - - Draw3DRect( rect, dc, curBrush ); - - if ( mpPane->IsHorizontal() ) - { - wxRect triRect; - triRect.y = rect.y + TRIANGLE_OFFSET; - triRect.x = rect.x; - triRect.width = rect.width; - triRect.height = ICON_TRIAN_HEIGHT; - - DrawTrianDown( triRect, dc ); - - wxRect patRect; - patRect.x = rect.x + PAT_OFFSET; - patRect.y = rect.y + TRIANGLE_OFFSET + ICON_TRIAN_HEIGHT + TRIANGLE_TO_PAT_GAP; - patRect.width = rect.width - 2*PAT_OFFSET; - patRect.height = rect.height - ( patRect.y - rect.y ) - PAT_OFFSET; - Draw3DPattern( patRect, dc ); - - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( rect.x, rect.y + rect.height, rect.x + rect.width, rect.y + rect.height ); - } - else - { - wxRect triRect; - triRect.x = rect.x + TRIANGLE_OFFSET; - triRect.y = rect.y; - triRect.height = rect.height; - triRect.width = ICON_TRIAN_HEIGHT; - - DrawTrianRight( triRect, dc ); - - wxRect patRect; - patRect.y = rect.y + PAT_OFFSET; - patRect.x = rect.x + TRIANGLE_OFFSET + ICON_TRIAN_HEIGHT + TRIANGLE_TO_PAT_GAP; - patRect.height = rect.height - 2*PAT_OFFSET; - patRect.width = rect.width - ( patRect.x - rect.x ) - PAT_OFFSET; - Draw3DPattern( patRect, dc ); - - dc.SetPen( mpLayout->mLightPen ); - dc.DrawLine( rect.x + rect.width, rect.y, rect.x + rect.width, rect.y + rect.height ); - } -} - -void cbRowDragPlugin::DrawRowsDragHintsBorder( wxDC& dc ) -{ - // FIXME:: what was that? -} - -void cbRowDragPlugin::DrawCollapsedRowsBorder( wxDC& dc ) -{ - int colRowOfs = GetCollapsedIconsPos(); - wxRect& bounds = mpPane->mBoundsInParent; - - wxBrush bkBrush( mpLayout->mGrayPen.GetColour(), wxSOLID ); - dc.SetBrush( bkBrush ); - dc.SetPen( mpLayout->mDarkPen ); - - if ( mpPane->IsHorizontal() ) - - dc.DrawRectangle( bounds.x + mpPane->mLeftMargin - ROW_DRAG_HINT_WIDTH - 1, - colRowOfs, - bounds.width - mpPane->mLeftMargin - mpPane->mRightMargin + 2 + ROW_DRAG_HINT_WIDTH, - COLLAPSED_ICON_HEIGHT + 1); - else - dc.DrawRectangle( colRowOfs, - bounds.y + mpPane->mTopMargin - 1, - COLLAPSED_ICON_HEIGHT + 1, - bounds.height - mpPane->mTopMargin - mpPane->mBottomMargin - - ROW_DRAG_HINT_WIDTH - 2 ); - - dc.SetBrush( wxNullBrush ); -} - -static inline bool rect_contains_point( const wxRect& rect, int x, int y ) -{ - return ( x >= rect.x && - y >= rect.y && - x < rect.x + rect.width && - y < rect.y + rect.height ); -} - -bool cbRowDragPlugin::HitTestCollapsedRowIcon( int iconIdx, const wxPoint& pos ) -{ - wxRect bounds; - GetCollapsedInconRect( iconIdx, bounds ); - - return rect_contains_point( bounds, pos.x, pos.y ); -} - -bool cbRowDragPlugin::HitTestRowDragHint( cbRowInfo* pRow, const wxPoint& pos ) -{ - wxRect bounds; - GetRowHintRect( pRow, bounds ); - - return rect_contains_point( bounds, pos.x, pos.y ); -} - diff --git a/utils/framelayout/src/rowdragpl.h b/utils/framelayout/src/rowdragpl.h deleted file mode 100644 index 6100592522..0000000000 --- a/utils/framelayout/src/rowdragpl.h +++ /dev/null @@ -1,159 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __ROWDRAGPL_G__ -#define __ROWDRAGPL_G__ - -#include "controlbar.h" - -/* - * Plugin adds row-dragging fuctionality to the pane. - * Handles mouse/movement and pane-background erasing plugin-events. - * Behaviour and appearence resembles drag & drop posotioning - * of the toolbar-rows int Netscape Comunicator 4.xx. - */ - -class cbRowDragPlugin : public cbPluginBase -{ - DECLARE_DYNAMIC_CLASS( cbRowDragPlugin ) -public: - // background colours for the highlighted/unhighlighted icons - - wxColour mHightColor; // light-blue for NC-look - wxColour mLowColor; // light-gray -/- - wxColour mTrianInnerColor; // blue -/- - wxPen mTrianInnerPen; // black -/- - -protected: - friend class cbRowDragPluginSerializer; - - // drag & drop state variables - bool mDragStarted; - bool mDecisionMode; - wxPoint mDragOrigin; - int mCurDragOfs; - bool mCaptureIsOn; - - // saved margins of the pane - int mSvTopMargin; - int mSvBottomMargin; - int mSvLeftMargin; - int mSvRightMargin; - - //on-screen drawing state variables - wxBitmap* mpPaneImage; - wxBitmap* mpRowImage; - wxBitmap* mpCombinedImage; - - wxScreenDC* mpScrDc; - wxRect mCombRect; - wxSize mRowImgDim; - int mInitalRowOfs; - - // NOTE:: if mpRowInFocus is not NULL, then mCollapsedIconInFocus is -1, - // and v.v. (two different items cannot be in focus at the same time) - - cbRowInfo* mpRowInFocus; - int mCollapsedIconInFocus; - - cbDockPane* mpPane; // is set up temorarely, while handling event - - wxList mHiddenBars; - - wxBitmap* CaptureDCArea( wxDC& dc, wxRect& area ); - - // helpers for drag&drop - - int GetHRowsCountForPane( cbDockPane* pPane ); - - void SetMouseCapture( bool captureOn ); - void PrepareForRowDrag(); - void ShowDraggedRow( int offset ); - void ShowPaneImage(); - void FinishOnScreenDraw(); - void CollapseRow( cbRowInfo* pRow ); - void ExpandRow( int collapsedIconIdx ); - void InsertDraggedRowBefore( cbRowInfo* pBeforeRow ); - bool ItemIsInFocus(); - void CheckPrevItemInFocus( cbRowInfo* pRow, int iconIdx ); - void UnhiglightItemInFocus(); - - cbRowInfo* GetFirstRow(); - - // "hard-coded metafile" for NN-look - - virtual void DrawTrianUp( wxRect& inRect, wxDC& dc ); - virtual void DrawTrianDown( wxRect& inRect, wxDC& dc ); - virtual void DrawTrianRight( wxRect& inRect, wxDC& dc ); - virtual void Draw3DPattern( wxRect& inRect, wxDC& dc ); - virtual void DrawRombShades( wxPoint& p1, wxPoint& p2, wxPoint& p3, wxPoint& p4, wxDC& dc ); - virtual void DrawOrtoRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush ); - virtual void DrawRomb( wxRect& inRect, wxDC& dc, wxBrush& bkBrush ); - virtual void Draw3DRect( wxRect& inRect, wxDC& dc, wxBrush& bkBrush ); - virtual void DrawRectShade( wxRect& inRect, wxDC& dc, - int level, wxPen& upperPen, wxPen& lowerPen ); - - virtual void GetRowHintRect( cbRowInfo* pRow, wxRect& rect ); - virtual void GetCollapsedInconRect( int iconIdx, wxRect& rect ); - - virtual int GetCollapsedIconsPos(); - -public: - - cbRowDragPlugin(void); - - cbRowDragPlugin( wxFrameLayout* pLayout, int paneMask = wxALL_PANES ); - virtual ~cbRowDragPlugin(); - - virtual cbPluginBase* Clone() { return new cbRowDragPlugin(NULL,0); } - - virtual void OnInitPlugin(); - - // handlers for plugin events (appearence-independent logic) - - void OnMouseMove ( cbMotionEvent& event ); - void OnLButtonDown( cbLeftDownEvent& event ); - void OnLButtonUp ( cbLeftUpEvent& event ); - void OnDrawPaneBackground( cbDrawPaneDecorEvent& event ); - - // overridables (appearence-depedent) - - virtual void DrawCollapsedRowIcon( int index, wxDC& dc, bool isHighlighted ); - virtual void DrawCollapsedRowsBorder( wxDC& dc ); - virtual void DrawRowsDragHintsBorder( wxDC& dc ); - virtual void DrawRowDragHint( cbRowInfo* pRow, wxDC& dc, bool isHighlighted ); - virtual void DrawEmptyRow( wxDC& dc, wxRect& rowBounds ); - - virtual int GetCollapsedRowIconHeight(); - virtual int GetRowDragHintWidth(); - - virtual void SetPaneMargins(); - - - virtual bool HitTestCollapsedRowIcon( int iconIdx, const wxPoint& pos ); - virtual bool HitTestRowDragHint( cbRowInfo* pRow, const wxPoint& pos ); - - DECLARE_EVENT_TABLE() -}; - -// internal helper-class - -class cbHiddenBarInfo : public wxObject -{ - DECLARE_DYNAMIC_CLASS( cbHiddenBarInfo ) -public: - cbBarInfo* mpBar; - int mRowNo; - int mIconNo; - int mAlignment; -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/rowlayoutpl.cpp b/utils/framelayout/src/rowlayoutpl.cpp deleted file mode 100644 index 4a4fd3ca1e..0000000000 --- a/utils/framelayout/src/rowlayoutpl.cpp +++ /dev/null @@ -1,1206 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 09/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "rowlayoutpl.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "rowlayoutpl.h" - -// exerimental "features" are still buggy -#undef __EXPERIMENTAL - -/***** Implementaiton for class cbRowLayoutPlugin *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbRowLayoutPlugin, cbPluginBase ) - -BEGIN_EVENT_TABLE( cbRowLayoutPlugin, cbPluginBase ) - - EVT_PL_LAYOUT_ROW ( cbRowLayoutPlugin::OnLayoutRow ) - EVT_PL_LAYOUT_ROWS( cbRowLayoutPlugin::OnLayoutRows ) - EVT_PL_RESIZE_ROW ( cbRowLayoutPlugin::OnResizeRow ) - - EVT_PL_INSERT_BAR ( cbRowLayoutPlugin::OnInsertBar ) - EVT_PL_REMOVE_BAR ( cbRowLayoutPlugin::OnRemoveBar ) - -END_EVENT_TABLE() - -cbRowLayoutPlugin::cbRowLayoutPlugin(void) - : mpPane( 0 ) -{} - -cbRowLayoutPlugin::cbRowLayoutPlugin( wxFrameLayout* pPanel, int paneMask ) - - : cbPluginBase( pPanel, paneMask ), - mpPane( 0 ) -{} - -void cbRowLayoutPlugin::CheckIfAtTheBoundary( cbBarInfo* pTheBar, cbRowInfo& rowInfo ) -{ - // this method handles situation, when fixed bar is inserted - // into the row, where among fixed bars not-fixed ones are present. - // In this case we need to check if the pBarNode appears to be inserted - // chain of fixed-bars on the very right or left side of the row, - // then all the white-space, such chain should be eliminated, - // and the resulting chain justified to the right or the left - // side of the row - - if ( !pTheBar->IsFixed() || rowInfo.mHasOnlyFixedBars ) - - return; - - cbBarInfo* pBar = rowInfo.mBars[ rowInfo.mBars.Count() - 1 ]; - - // slide fixed bars to the right on the right side relative to the pBarNode - - int prevX = mpPane->mPaneWidth; - - do - { - if ( !pBar->IsFixed() ) - break; - - wxRect& bounds = pBar->mBounds; - - bounds.x = prevX - bounds.width; - - prevX = bounds.x; - - if ( pBar == pTheBar ) break; - - pBar = pBar->mpPrev; - } - while( 1 ); - - // slide fixed bars to the left on the left side relative to the pBarNode - - pBar = rowInfo.mBars[0]; - - prevX = 0; - - do - { - if ( pBar->IsFixed() ) - - break; - - wxRect& bounds = pBar->mBounds; - - bounds.x = prevX; - - prevX = bounds.x + bounds.width; - - if ( pBar == pTheBar ) break; - - pBar = pBar->mpNext; - } - while( 1 ); -} - -void cbRowLayoutPlugin::ExpandNotFixedBars( cbRowInfo* pRow ) -{ - ApplyLenghtRatios( pRow ); - - // FIXME:: something's wrong? - return; - - double freeSpc = (double)GetRowFreeSpace( pRow ); - - // calculate sum of precents - - double pcntSum = 0.0; - - size_t i = 0; - - for( i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() ) - - pcntSum += pRow->mBars[i]->mLenRatio; - - // setup bar lengths - - int curX = 0; - - for( i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - if ( !bar.IsFixed() ) - { - bar.mLenRatio = bar.mLenRatio/(pcntSum); - - bar.mBounds.width = - - wxMax( mpPane->mProps.mMinCBarDim.x, int( freeSpc*bar.mLenRatio ) ); - } - - bar.mBounds.x = curX; - curX = bar.mBounds.x + bar.mBounds.width; - } -} - -void cbRowLayoutPlugin::AdjustLenghtOfInserted( cbRowInfo* pRow, cbBarInfo* pTheBar ) -{ - return; - - // pTheBar is not-fixed - - - // FIXME:: what is this for?? - -#if 1 - - int totalLen = 0; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if( !pRow->mBars[i]->IsFixed() ) - - totalLen += pRow->mBars[i]->mBounds.width; - - double curWidth = pTheBar->mBounds.width; - - if ( pRow->mBars.Count() ) - - pTheBar->mBounds.width = int( mpPane->mPaneWidth * (curWidth / double(totalLen)) ); - -#else - - double freeSpc = (double)GetRowFreeSpace( pRow ); - - double pcntSum = 0.0; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if( !pRow->mBars[i]->IsFixed() ) - - pcntSum += pRow->mBars[i]->mLenRatio; - - // if no longer "balanced", assume that `pTheBar' was previousely - // removed from this row (kind of AI...) - - if ( pcntSum < 0.98 ) - - pTheBar->mBounds.width = freeSpc * (1.0 - pcntSum); -#endif -} - -void cbRowLayoutPlugin::FitBarsToRange( int from, int till, - cbBarInfo* pTheBar, cbRowInfo* pRow ) -{ - cbBarInfo* pFromBar = NULL; - cbBarInfo* pTillBar = NULL; - - if ( pTheBar->mBounds.x > from ) - { - // it's range from the left - pFromBar = pRow->mBars[0]; - pTillBar = pTheBar; - } - else - { - pFromBar = pTheBar->mpNext; - pTillBar = NULL; - } - - // calc free space in the range - - cbBarInfo* pBar = pFromBar; - int freeSpc = till-from; - double pcntSum = 0; - - while( pBar != pTillBar ) - { - if ( pBar->IsFixed() ) - - freeSpc -= pBar->mBounds.width; - else - pcntSum += pBar->mLenRatio; - - pBar = pBar->mpNext; - } - - // adjust not-fixed bar sizes in the range - - pBar = pFromBar; - - while( pBar != pTillBar ) - { - if ( !pBar->IsFixed() ) - - pBar->mBounds.width = - - wxMax( mpPane->mProps.mMinCBarDim.x, - int( double(freeSpc) * (pBar->mLenRatio/pcntSum) ) - ); - - pBar = pBar->mpNext; - } - - // layout range, starting from the left-most bar - - pBar = pFromBar; - int prevX = from; - bool hasNotFixedBars = FALSE; - - while ( pBar != pTillBar ) - { - wxRect& bounds = pBar->mBounds; - - if ( !pBar->IsFixed() ) - { - hasNotFixedBars = TRUE; - - freeSpc -= bounds.width; - } - - bounds.x = prevX; - - prevX = bounds.x + bounds.width; - - pBar = pBar->mpNext; - } - - // make width adjustment for the right-most bar in the range, due to - // lost precision when seting widths using f.p. length-ratios - - if ( hasNotFixedBars ) - { - if ( pTheBar->mBounds.x > from ) - { - if ( pTillBar->mpPrev ) - { - wxRect& tillBar = pTillBar->mpPrev->mBounds; - - //tillBar.width = bar.mBounds.x - tillBar.x; - tillBar.width += freeSpc; - } - } - else - { - cbBarInfo* pLast = pRow->mBars[ pRow->mBars.Count() - 1 ]; - - if ( pLast != pTheBar ) - { - pTheBar->mBounds.width += freeSpc; - - SlideRightSideBars( pTheBar ); - } - } - } -} - -void cbRowLayoutPlugin::MinimzeNotFixedBars( cbRowInfo* pRow, cbBarInfo* pBarToPreserve ) -{ - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() && pRow->mBars[i] != pBarToPreserve ) - - pRow->mBars[i]->mBounds.width = mpPane->mProps.mMinCBarDim.x; -} - -int cbRowLayoutPlugin::GetRowFreeSpace( cbRowInfo* pRow ) -{ - int prevX = 0; - int freeSpc = mpPane->mPaneWidth; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - // not-fixed bars variable length, thus their - // dimensions are ignored - - if ( pRow->mBars[i]->IsFixed() ) - - freeSpc -= pRow->mBars[i]->mBounds.width; - - return freeSpc; -} - -void cbRowLayoutPlugin::RecalcLenghtRatios( cbRowInfo* pRow ) -{ - double freeSpc = double( GetRowFreeSpace( pRow ) ); - - cbBarInfo* pBar = pRow->mBars[0]; - cbBarInfo* pLastNotFixed = NULL; - - double pcntLeft = 1.0; // (100%) - -#ifdef __EXPERIMENTAL - - int totalLen = 0; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() ) - - totalLen += pRow->mBars[i]->mBounds.width; -#endif - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - if ( !bar.IsFixed() ) - { - -#ifdef __EXPERIMENTAL - - bar.mLenRatio = double(bar.mBounds.width)/double(totalLen); -#else - bar.mLenRatio = double(bar.mBounds.width)/freeSpc; -#endif - - pcntLeft -= bar.mLenRatio; - pLastNotFixed = pBar; - } - } - - // attach remainder (the result of lost precision) to the - // last not-fixed bar - -#if !defined(__EXPERIMENTAL) - - if ( pLastNotFixed ) - - pLastNotFixed->mLenRatio += pcntLeft; -#endif - -} - -void cbRowLayoutPlugin::ApplyLenghtRatios( cbRowInfo* pRow ) -{ - double pcntSum = 0; - - // FOR NOW:: all-in-one - - size_t i = 0; - - for( i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() ) - - pcntSum += pRow->mBars[i]->mLenRatio; - - /* - pBar = node_to_first_bar_node( pRow ); - - while( pBar ) - { - cbBarInfo& bar = node_to_bar( pBar ); - - if ( !bar.IsFixed() ) - - bar.mLenRatio = pcntSum / bar.mLenRatio; - - pBar = pBar->Next(); - } - */ - - int prevX = 0; - double freeSpc = GetRowFreeSpace( pRow ); - - // tricky stuff (improtant!): - // when not-fixed bar is removed from the row and there are - // still some other not-fixed ones left in that row, then - // the sum of mLenRatio's is no longer 1.0 - this is left - // intintionally to handle the case when the removed bar - // is returned right back to the row - so that it would retain - // it's original dimensions in this row (this is kind of AI...) - // - // The problem is - when it's remvoed, the sum of - // mLenRatio's is not in "balance", i.e. is < 1.0, - // it's possible to restore balance, but instead of that - // we artifically ajdust freeSpc value in a way that it would - // look like total of mLetRatio's is 1.0, thus original - // len. ratios are _preserved_: - - double unit = freeSpc / pcntSum; - - bool haveSquished = FALSE; - - for( i = 0; i != pRow->mBars.Count(); ++i ) - - if ( !pRow->mBars[i]->IsFixed() ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - if ( int( unit * bar.mLenRatio ) < mpPane->mProps.mMinCBarDim.x ) - { - haveSquished = TRUE; - - bar.mBounds.width = -1; // mark as "squished" - - pcntSum -= bar.mLenRatio; - - freeSpc -= mpPane->mProps.mMinCBarDim.x; - } - } - - if ( haveSquished ) - - unit = freeSpc / pcntSum; - - for( i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - bar.mBounds.x = prevX; - - if ( !bar.IsFixed() ) - { - if ( bar.mBounds.width == -1 ) - - bar.mBounds.width = mpPane->mProps.mMinCBarDim.x; - else - bar.mBounds.width = int( unit * bar.mLenRatio ); - - // a little bit of AI: - // memorize bar's height and width, when docked in - // the current orientation - by making the current - // dimensions to be "preffered" ones for this docking state - - if ( !bar.IsFixed() ) - { - bar.mDimInfo.mSizes[ bar.mState ].x = bar.mBounds.width; - bar.mDimInfo.mSizes[ bar.mState ].y = bar.mBounds.height; - } - } - - prevX = bar.mBounds.x + bar.mBounds.width; - } -} - -void cbRowLayoutPlugin::DetectBarHandles( cbRowInfo* pRow ) -{ - // first pass from left to right (detect left-side handles) - - bool foundNotFixed = FALSE; - - for( size_t i = 0; i != pRow->mBars.Count(); ++i ) - { - cbBarInfo& bar = *pRow->mBars[i]; - - bar.mHasLeftHandle = FALSE; - - if ( !bar.IsFixed() ) - { - if ( foundNotFixed ) - - if ( bar.mpPrev && - bar.mpPrev->IsFixed() ) - - bar.mHasLeftHandle = TRUE; - - foundNotFixed = TRUE; - } - } - - // pass from right to left (detect right-side handles) - - foundNotFixed = FALSE; - - cbBarInfo* pBar = pRow->mBars[ pRow->mBars.Count() - 1 ]; - - while( pBar ) - { - pBar->mHasRightHandle = FALSE; - - if ( !pBar->IsFixed() ) - { - if ( foundNotFixed ) - - if ( pBar->mpNext ) - - pBar->mHasRightHandle = TRUE; - - foundNotFixed = TRUE; - } - - pBar = pBar->mpPrev; - } -} - -void cbRowLayoutPlugin::RelayoutNotFixedBarsAround( cbBarInfo* pTheBar, cbRowInfo* pRow ) -{ - if ( !pTheBar->mpPrev ) - { - if ( !pTheBar->IsFixed() ) - { - // this bar the first in the row, move it's - // left edge to the very left - pTheBar->mBounds.width += pTheBar->mBounds.x; - pTheBar->mBounds.x = 0; - } - } - else - FitBarsToRange( 0, pTheBar->mBounds.x, pTheBar, pRow ); - - if ( !pTheBar->mpNext ) - { - if ( !pTheBar->IsFixed() ) - { - // this bar is the last one, move it's - // right edge to the very right - - pTheBar->mBounds.width = mpPane->mPaneWidth - pTheBar->mBounds.x; - } - } - else - FitBarsToRange( pTheBar->mBounds.x + pTheBar->mBounds.width, mpPane->mPaneWidth, - pTheBar, pRow - ); -} - -void cbRowLayoutPlugin::LayoutItemsVertically( cbRowInfo& row ) -{ - for( size_t i = 0; i != row.mBars.Count(); ++i ) - { - cbBarInfo& bar = *row.mBars[i]; - - bar.mBounds.y = row.mRowY; - - if ( !bar.IsFixed() ) - - // make all not-fixed bars of equal height - bar.mBounds.height = row.mRowHeight; - - if ( row.mHasUpperHandle ) - - bar.mBounds.y += mpPane->mProps.mResizeHandleSize; - } -} - -int cbRowLayoutPlugin::CalcRowHeight( cbRowInfo& row ) -{ - int maxHeight = 0; - - for( size_t i = 0; i != row.mBars.Count(); ++i ) - - maxHeight = wxMax( maxHeight, row.mBars[i]->mBounds.height ); - - return maxHeight; -} - -void cbRowLayoutPlugin::StickRightSideBars( cbBarInfo* pToBar ) -{ - cbBarInfo* pBar = pToBar->mpNext; - cbBarInfo* pPrev = pToBar; - - while( pBar ) - { - wxRect& cur = pBar->mBounds; - wxRect& prev = pPrev->mBounds; - - cur.x = prev.x + prev.width; - - pPrev = pBar; - pBar = pBar->mpNext; - } -} - -void cbRowLayoutPlugin::SlideLeftSideBars( cbBarInfo* pTheBar ) -{ - // shift left-side-bars to the left (with respect to "theBar"), - // so that they would not obscured by each other - - cbBarInfo* pBar = pTheBar->mpPrev; - cbBarInfo* pPrev = pTheBar; - - while( pBar ) - { - wxRect& cur = pBar->mBounds; - wxRect& prev = pPrev->mBounds; - - if ( cur.x + cur.width > prev.x ) - - cur.x = prev.x - cur.width; - - pPrev = pBar; - pBar = pBar->mpPrev; - } -} - -void cbRowLayoutPlugin::SlideRightSideBars( cbBarInfo* pTheBar ) -{ - // shift right-side-bars to the right (with respect to "theBar"), - // so that they would not be obscured by each other - - cbBarInfo* pBar = pTheBar->mpNext; - cbBarInfo* pPrev = pTheBar; - - while( pBar ) - { - wxRect& cur = pBar->mBounds; - wxRect& prev = pPrev->mBounds; - - if ( cur.x < prev.x + prev.width ) - - cur.x = prev.x + prev.width; - - pPrev = pBar; - pBar = pBar->mpNext; - } -} - -void cbRowLayoutPlugin::ShiftLeftTrashold( cbBarInfo* pTheBar, cbRowInfo& row ) -{ - wxRect& first = row.mBars[0]->mBounds; - - if ( first.x < 0 ) - { - row.mBars[0]->mBounds.x = 0; - - SlideRightSideBars( row.mBars[0] ); - } -} - -void cbRowLayoutPlugin::ShiftRightTrashold( cbBarInfo* pTheBar, cbRowInfo& row ) -{ - wxRect& theBar = pTheBar->mBounds; - - do - { - cbBarInfo* pBar = pTheBar; - - // calculate free spece on the left side - - int leftFreeSpc = 0; - - while( pBar ) - { - wxRect& cur = pBar->mBounds; - - if ( pBar->mpPrev ) - { - wxRect& prev = pBar->mpPrev->mBounds; - - leftFreeSpc += cur.x - prev.x - prev.width; - } - else - leftFreeSpc += cur.x; - - if ( cur.x < 0 ) - { - leftFreeSpc = 0; - break; - } - - pBar = pBar->mpPrev; - } - - pBar = pTheBar; - - int rightOverflow = 0; - - if ( pTheBar->IsFixed() ) - - while( pBar ) - { - if ( !pBar->mpNext ) - { - wxRect& cur = pBar->mBounds; - - if ( cur.x + cur.width > mpPane->mPaneWidth ) - - rightOverflow = cur.x + cur.width - mpPane->mPaneWidth; - } - - pBar = pBar->mpNext; - } - - if ( rightOverflow > 0 ) - { - if ( leftFreeSpc <= 0 ) return; - - if ( pTheBar->mpNext ) - { - wxRect& next = pTheBar->mpNext->mBounds; - - // if there's enough space on the left, move over one half-obscured - // bar from the right to the left side with respect to "theBar" - - if ( next.width < leftFreeSpc ) - { - cbBarInfo* pNext = pTheBar->mpNext; - - row.mBars.Remove( pNext ); - - row.mBars.Insert( pNext, row.mBars.Index( pTheBar ) ); - - next.x = theBar.x - next.width; - - // re-setup mpPrev/mpNext references after insertion - - mpPane->InitLinksForRow( &row ); - - // tighten things - - StickRightSideBars( pTheBar ); - SlideLeftSideBars ( pTheBar ); - - continue; - } - } - - int leftShift = ( rightOverflow > leftFreeSpc ) - ? leftFreeSpc - : rightOverflow; - - theBar.x -= leftShift; - - StickRightSideBars( pTheBar ); - SlideLeftSideBars ( pTheBar ); - - break; - - } // end of if ( rightOverflow ) - else - break; - - } while(1); -} - -void cbRowLayoutPlugin::InsertBefore( cbBarInfo* pBeforeBar, - cbBarInfo* pTheBar, - cbRowInfo& row ) -{ - if ( pBeforeBar ) - - row.mBars.Insert( pTheBar, row.mBars.Index( pBeforeBar ) ); - else - row.mBars.Add( pTheBar ); - - pTheBar->mpRow = &row; -} - -void cbRowLayoutPlugin::DoInsertBar( cbBarInfo* pTheBar, cbRowInfo& row ) -{ - wxRect& theBar = pTheBar->mBounds; - - /* OLD STUFF:: - if ( theBar.x < 0 && !node_to_bar( pTheBar ).IsFixed() ) - { - // AI:: - theBar.width += theBar.x; - theBar.x = 0; - } */ - - for( size_t i = 0; i != row.mBars.Count(); ++i ) - { - cbBarInfo& bar = *row.mBars[i]; - - wxRect& cur = bar.mBounds; - - // if bar hits the left edge - if ( theBar.x <= cur.x ) - { - InsertBefore( &bar, pTheBar, row ); - return; - } - - else - // if bar hits the right edge - if ( theBar.x <= cur.x + cur.width ) - { - if ( theBar.x + theBar.width > cur.x + cur.width ) - { - InsertBefore( bar.mpNext, pTheBar, row ); - return; - } - - // otherwise the bar lies within the bounds of current bar - - int leftDist = theBar.x - cur.x; - int rightDist = cur.x + cur.width - (theBar.x + theBar.width); - - if ( leftDist < rightDist ) - - InsertBefore( &bar, pTheBar, row ); - else - InsertBefore( bar.mpNext, pTheBar, row ); - - return; - } - } - - InsertBefore( NULL, pTheBar, row ); // insert at the end -} - -// evnet handlers - -void cbRowLayoutPlugin::OnInsertBar( cbInsertBarEvent& event ) -{ - cbBarInfo* pBarToInsert = event.mpBar; - cbRowInfo* pIntoRow = event.mpRow; - mpPane = event.mpPane; - - if ( !pBarToInsert->IsFixed() ) - - AdjustLenghtOfInserted( pIntoRow, pBarToInsert ); - - DoInsertBar( pBarToInsert, *pIntoRow ); - - mpPane->InitLinksForRow( pIntoRow ); // relink "mpNext/mpPrev"s - - // perform relayouting of the bars after insertion - - // init bar location info - pBarToInsert->mAlignment = event.mpPane->mAlignment; - pBarToInsert->mRowNo = event.mpPane->GetRowIndex( pIntoRow ); - -#ifdef __EXPERIMENTAL - - if ( !pIntoRow->mHasOnlyFixedBars || !pBarToInsert->IsFixed() ) - - RecalcLenghtRatios( pIntoRow ); - -#endif - - MinimzeNotFixedBars( pIntoRow, pBarToInsert ); - - SlideLeftSideBars ( pBarToInsert ); - SlideRightSideBars( pBarToInsert ); - - ShiftLeftTrashold ( pBarToInsert, *pIntoRow ); - ShiftRightTrashold( pBarToInsert, *pIntoRow ); - - mpPane->SyncRowFlags( pIntoRow ); - - CheckIfAtTheBoundary( pBarToInsert, *pIntoRow ); - - if ( event.mpPane->IsHorizontal() ) - - pBarToInsert->mState = wxCBAR_DOCKED_HORIZONTALLY; - else - pBarToInsert->mState = wxCBAR_DOCKED_VERTICALLY; - - if ( !pIntoRow->mHasOnlyFixedBars ) - { - -#ifdef __EXPERIMENTAL - - ExpandNotFixedBars( pIntoRow ); -#else - - RelayoutNotFixedBarsAround( pBarToInsert, pIntoRow ); - RecalcLenghtRatios( pIntoRow ); - -#endif - - DetectBarHandles( pIntoRow ); - - // do proportional resizing of not-fixed bars - ApplyLenghtRatios( pIntoRow ); - } - - // adjust the bar's docking state - - // a little bit of AI: - // memorize bar's height and width, when docked in - // the current orientation - by making the current - // dimensions to be "preferred" ones for this docking state - - if ( !pBarToInsert->IsFixed() ) - { - cbBarInfo& bar = *pBarToInsert; - - bar.mDimInfo.mSizes[ bar.mState ].x = bar.mBounds.width; - bar.mDimInfo.mSizes[ bar.mState ].y = bar.mBounds.height; - } -} - -void cbRowLayoutPlugin::OnRemoveBar ( cbRemoveBarEvent& event ) -{ - cbBarInfo* pBar = event.mpBar; - mpPane = event.mpPane; - - cbRowInfo* pRow = pBar->mpRow; - - mpLayout->GetUpdatesManager().OnBarWillChange( pBar, pRow, event.mpPane ); - - // invalidate the whole row - //pFirst->mpRowInfo->mMgrData.mPrevBounds.x = -1; - - pRow->mBars.Remove( pBar ); - - // rest bar information after removing it from the row - pBar->mpRow = NULL; - pBar->mHasLeftHandle = FALSE; - pBar->mHasRightHandle = FALSE; - - mpPane->InitLinksForRow( pRow ); // relink "mpNext/mpPrev"s - - if ( pRow->mBars.Count() == 0 ) - { - // empty rows should not exist - - event.mpPane->GetRowList().Remove( pRow ); - - delete pRow; - - mpPane->InitLinksForRows(); - } - else - { - // force repainting of bars, in the row, from which the bar was removed - - // FIXME:: really needed? - pRow->mBars[0]->mUMgrData.SetDirty(TRUE); - - // re-setup mHasOnlyFixedBars flag for the row information - event.mpPane->SyncRowFlags( pRow ); - - DetectBarHandles( pRow ); - - if ( !pRow->mHasOnlyFixedBars ) - - ExpandNotFixedBars( pRow ); - } -} - -void cbRowLayoutPlugin::OnLayoutRow( cbLayoutRowEvent& event ) -{ - cbRowInfo* pRow = event.mpRow; - mpPane = event.mpPane; - - MinimzeNotFixedBars( pRow, NULL ); - - if ( !pRow->mHasOnlyFixedBars ) - - // do proportional resizing of not-fixed bars - - ApplyLenghtRatios( pRow ); - - cbBarInfo& lastBar = *pRow->mBars[ pRow->mBars.Count() - 1 ]; - cbBarInfo& firstBar = *pRow->mBars[ 0 ]; - - wxRect& bounds = lastBar.mBounds; - - if ( lastBar.mBounds.x + lastBar.mBounds.width > mpPane->mPaneWidth ) - { - lastBar.mBounds.x = mpPane->mPaneWidth - lastBar.mBounds.width; - - // first simulate left-row-edge friction - - SlideLeftSideBars( &lastBar ); - - if ( firstBar.mBounds.x < 0 ) firstBar.mBounds.x = 0; - - // then left-row-edge firciton,though this - // may cause some of the right-side bars going - // out of row bounds, but-left side always - // has the highest "priority" - - SlideRightSideBars( &firstBar ); - } - - event.Skip(); // pass event to the next handler -} - -void cbRowLayoutPlugin::OnLayoutRows( cbLayoutRowsEvent& event ) -{ - mpPane = event.mpPane; - - int curY = 0; - - RowArrayT& arr = mpPane->GetRowList(); - - for( size_t i = 0; i != mpPane->GetRowList().Count(); ++i ) - { - cbRowInfo& row = *mpPane->GetRowList()[ i ]; - - // setup "has-handle" flags for rows, which depend on the existance - // of not-fixed bars in the row - - if ( !row.mHasOnlyFixedBars ) - { - if ( mpPane->mAlignment == wxTOP || - mpPane->mAlignment == wxLEFT ) - { - row.mHasLowerHandle = TRUE; - - row.mHasUpperHandle = FALSE; - } - else - { - row.mHasUpperHandle = TRUE; - - row.mHasLowerHandle = FALSE; - } - } - else - { - // otherwise, rows with fixed-bars only, have no height-resizing handles - row.mHasUpperHandle = FALSE; - row.mHasLowerHandle = FALSE; - } - - // setup vertical positions for items in the row - - row.mRowY = curY; - - row.mRowWidth = mpPane->mPaneWidth; - row.mRowHeight = CalcRowHeight( row ); - - LayoutItemsVertically( row ); - - if ( row.mHasUpperHandle ) row.mRowHeight += mpPane->mProps.mResizeHandleSize; - if ( row.mHasLowerHandle ) row.mRowHeight += mpPane->mProps.mResizeHandleSize; - - curY += row.mRowHeight; - } - - event.Skip(); // pass event to the next handler - other hookeds plugin - // may also add some "refinements" to the layout now -} - -void cbRowLayoutPlugin::OnResizeRow( cbResizeRowEvent& event ) -{ - // extract resize-event info - int ofs = event.mHandleOfs; - bool forUpperHandle = event.mForUpperHandle; - cbRowInfo* pTheRow = event.mpRow; - mpPane = event.mpPane; - - int newHeight = pTheRow->mRowHeight; - - int freeSpc = 0; - - if ( forUpperHandle ) - { - // calculate available free space from above, - // which can be obtained by squeezing not-fixed height rows - - cbRowInfo* pRow = pTheRow->mpPrev; - - while( pRow ) - { - freeSpc += pRow->mRowHeight - event.mpPane->GetMinimalRowHeight( pRow ); - - pRow = pRow->mpPrev; - } - } - else - { - // calculate available free space from below, - // which can be obtained by squeezing not-fixed height rows - - cbRowInfo* pRow = pTheRow->mpNext; - - while( pRow ) - { - freeSpc += pRow->mRowHeight - mpPane->GetMinimalRowHeight( pRow ); - - pRow = pRow->mpNext; - } - } - - mpLayout->GetUpdatesManager().OnStartChanges(); - - int clientSize; - - // allow user adjusting pane vs. client-area space, for upper-handle - - if ( mpPane->IsHorizontal() ) - - clientSize = mpLayout->GetClientHeight(); - else - clientSize = mpLayout->GetClientWidth(); - - if ( forUpperHandle && ofs < -clientSize ) - { - int needed = -(ofs + clientSize); - - cbRowInfo* pRow = mpPane->GetRowList()[ 0 ]; - - // start squeezing rows from the top row towards bottom - - while( pRow != pTheRow && needed ) - { - // only not-fixed rows can be squeezed - - if ( !pRow->mHasOnlyFixedBars ) - { - int prevHeight = pRow->mRowHeight; - - int newHeight = wxMax( event.mpPane->GetMinimalRowHeight( pRow ), - prevHeight - needed ); - - if ( newHeight != prevHeight ) - { - event.mpPane->SetRowHeight( pRow, newHeight ); - - needed -= prevHeight - pRow->mRowHeight; - } - } - - pRow = pRow->mpNext; - } - } - - // allow user adjusting pane vs. client-area space, for lower-handle - - if ( !forUpperHandle && ofs > clientSize ) - { - int needed = ofs - clientSize; - - cbRowInfo* pRow = mpPane->GetRowList()[ mpPane->GetRowList().Count() - 1 ]; - - // start squeezing rows from the bottom towards the top row - - while( pRow && needed ) - { - // only not-fixed rows can be squeezed - - if ( !pRow->mHasOnlyFixedBars ) - { - int prevHeight = pRow->mRowHeight; - - int newHeight = wxMax( event.mpPane->GetMinimalRowHeight( pRow ), - prevHeight - needed ); - - if ( newHeight != prevHeight ) - { - event.mpPane->SetRowHeight( pRow, newHeight ); - - needed -= prevHeight - pRow->mRowHeight; - } - } - - pRow = pRow->mpPrev; - } - } - - if ( forUpperHandle ) - - event.mpPane->SetRowHeight( pTheRow, pTheRow->mRowHeight + (-ofs) ); - else - event.mpPane->SetRowHeight( pTheRow, pTheRow->mRowHeight + ofs ); - - mpLayout->RecalcLayout(FALSE); - - mpLayout->GetUpdatesManager().OnFinishChanges(); - mpLayout->GetUpdatesManager().UpdateNow(); -} - diff --git a/utils/framelayout/src/rowlayoutpl.h b/utils/framelayout/src/rowlayoutpl.h deleted file mode 100644 index 901bf448f5..0000000000 --- a/utils/framelayout/src/rowlayoutpl.h +++ /dev/null @@ -1,82 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 02/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __ROWLAYOUTPL_G__ -#define __ROWLAYOUTPL_G__ - -#include "controlbar.h" - -/* - * Simple implementaiton of plugin, which handles row-layouting - * requests sent from Frame Layout - */ - -class cbRowLayoutPlugin : public cbPluginBase -{ - DECLARE_DYNAMIC_CLASS( cbRowLayoutPlugin ) -protected: - cbDockPane* mpPane; // is set up temorarely, while handling event -protected: - - // not-fixed-bars layouting related helpers - - void FitBarsToRange( int from, int till, cbBarInfo* pTheBar, cbRowInfo* pRow ); - void RelayoutNotFixedBarsAround( cbBarInfo* pTheBar, cbRowInfo* pRow ); - void MinimzeNotFixedBars( cbRowInfo* pRow, cbBarInfo* pBarToPreserve ); - int GetRowFreeSpace( cbRowInfo* pRow ); - - void RecalcLenghtRatios( cbRowInfo* pRow ); - void ApplyLenghtRatios( cbRowInfo* pRow ); - void ExpandNotFixedBars( cbRowInfo* pRow ); - void AdjustLenghtOfInserted( cbRowInfo* pRow, cbBarInfo* pTheBar ); - - void DetectBarHandles( cbRowInfo* pRow ); - void CheckIfAtTheBoundary( cbBarInfo* pTheBar, cbRowInfo& rowInfo ); - - - // row-layouting helpers (simulate "bar-friction") - - int CalcRowHeight( cbRowInfo& row ); - void LayoutItemsVertically( cbRowInfo& row ); - - void StickRightSideBars( cbBarInfo* pToBar ); - - void SlideLeftSideBars ( cbBarInfo* pTheBar ); - void SlideRightSideBars( cbBarInfo* pTheBar ); - - void ShiftLeftTrashold ( cbBarInfo* pTheBar, cbRowInfo& row ); - void ShiftRightTrashold( cbBarInfo* pTheBar, cbRowInfo& row ); - - void InsertBefore( cbBarInfo* pBeforeBar, - cbBarInfo* pTheBar, - cbRowInfo& row - ); - - void DoInsertBar( cbBarInfo* pTheBar, cbRowInfo& row ); - -public: - - cbRowLayoutPlugin(void); - - cbRowLayoutPlugin( wxFrameLayout* pPanel, int paneMask = wxALL_PANES ); - - // event handlers - - void OnResizeRow ( cbResizeRowEvent& event ); - void OnInsertBar ( cbInsertBarEvent& event ); - void OnRemoveBar ( cbRemoveBarEvent& event ); - void OnLayoutRow ( cbLayoutRowEvent& event ); - void OnLayoutRows( cbLayoutRowsEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif \ No newline at end of file diff --git a/utils/framelayout/src/toolwnd.cpp b/utils/framelayout/src/toolwnd.cpp deleted file mode 100644 index 2cb14b99f0..0000000000 --- a/utils/framelayout/src/toolwnd.cpp +++ /dev/null @@ -1,1144 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "toolwnd.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "toolwnd.h" - -#define _A 0xAA -#define _B 0x00 -#define _C 0x55 -#define _D 0x00 - -// FOR NOW:: static - -static const unsigned char _gCheckerImg[16] = { _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D, - _A,_B,_C,_D - }; - -/***** Implementation for class wxToolWindow *****/ - -IMPLEMENT_DYNAMIC_CLASS( wxToolWindow, wxWindow ) - -BEGIN_EVENT_TABLE( wxToolWindow, wxWindow ) - - EVT_PAINT ( wxToolWindow::OnPaint ) - EVT_MOTION ( wxToolWindow::OnMotion ) - EVT_LEFT_DOWN( wxToolWindow::OnLeftDown ) - EVT_LEFT_UP ( wxToolWindow::OnLeftUp ) - EVT_SIZE ( wxToolWindow::OnSize ) - - - EVT_ERASE_BACKGROUND( wxToolWindow::OnEraseBackground ) - -END_EVENT_TABLE() - -enum INTERNAL_HIT_CODES -{ - HITS_WND_NOTHING, - HITS_WND_CLIENT, - HITS_WND_TITLE, - - HITS_WND_LEFT_EDGE, - HITS_WND_RIGHT_EDGE, - HITS_WND_TOP_EDGE, - HITS_WND_BOTTOM_EDGE, - - HITS_WND_TOP_LEFT_CORNER, - HITS_WND_BOTTOM_RIGHT_CORNER, - HITS_WND_TOP_RIGHT_CORNER, - HITS_WND_BOTTOM_LEFT_CORNER -}; - -wxToolWindow::wxToolWindow() - - : mpClientWnd ( NULL ), - mTitleHeight ( 16 ), - - mClntHorizGap ( 2 ), - mClntVertGap ( 2 ), - mWndVertGap ( 4 ), - mWndHorizGap ( 4 ), - - mButtonGap ( 2 ), - mInTitleMargin( 4 ), - mHintBorder ( 4 ), - - mMTolerance ( 5 ), // mouse-resizing tollerance - - mCursorType( HITS_WND_NOTHING ), - mMouseCaptured( FALSE ), - - mResizeStarted( FALSE ), - mRealTimeUpdatesOn( TRUE ), - -#ifndef __WXMSW__ - mTitleFont( 8, wxSWISS, wxNORMAL, wxNORMAL ), -#else - // just to simulate MS-Dev style - mTitleFont( 8, wxSWISS, wxNORMAL, wxNORMAL, FALSE, "MS Sans Serif" ), -#endif - - mpScrDc( NULL ) - -{ -} - -wxToolWindow::~wxToolWindow() -{ - if ( mpScrDc ) delete mpScrDc; - - for( size_t i = 0; i != mButtons.Count(); ++i ) - - delete mButtons[i]; -} - -void wxToolWindow::LayoutMiniButtons() -{ - int w,h; - - GetSize( &w, &h ); - - int x = w - mWndHorizGap - mInTitleMargin - BTN_BOX_WIDTH; - int y = mWndVertGap + 2; - - for( size_t i = 0; i != mButtons.Count(); ++i ) - { - mButtons[i]->SetPos( wxPoint( x,y ) ); - x-= BTN_BOX_WIDTH + mButtonGap; - } -} - -void wxToolWindow::SetClient( wxWindow* pWnd ) -{ - mpClientWnd = pWnd; -} - -wxWindow* wxToolWindow::GetClient() -{ - return mpClientWnd; -} - -void wxToolWindow::SetTitleFont( wxFont& font ) -{ - mTitleFont = font; -} - -void wxToolWindow::AddMiniButton( cbMiniButton* pBtn ) -{ - pBtn->mpWnd = this; - - mButtons.Add( pBtn ); - - // not necesserely now.. - //LayoutMiniButtons(); -} - -void wxToolWindow::OnPaint( wxPaintEvent& event ) -{ - wxWindowDC dc( this ); - - int w,h; - GetSize( &w, &h ); - - dc.SetBrush( *wxLIGHT_GREY_BRUSH ); - dc.SetPen( *wxTRANSPARENT_PEN ); - - int y = mWndVertGap + mTitleHeight + mClntVertGap + 1; - dc.DrawRectangle( 0,0, w, y ); - dc.DrawRectangle( 0,y-1, mWndHorizGap + mClntHorizGap + 1, h - y ); - dc.DrawRectangle( w - ( mWndHorizGap + mClntHorizGap ), y-1, - mWndHorizGap + mClntHorizGap, h - y ); - dc.DrawRectangle( 0, h - mWndVertGap - mClntVertGap, w, mWndVertGap + mClntVertGap ); - - // draw shades - dc.SetPen( *wxLIGHT_GREY_PEN ); - - dc.DrawLine( 0,0, w, 0 ); - dc.DrawLine( 0,0, 0, h ); - - dc.SetPen( *wxWHITE_PEN ); - - dc.DrawLine( 1,1, w, 1 ); - dc.DrawLine( 1,2, 1, h ); - - dc.SetPen( *wxGREY_PEN ); - - dc.DrawLine( w - 2, 1, w - 2, h - 1 ); - dc.DrawLine( 1, h - 2, w - 2, h - 2 ); - - dc.SetPen( *wxBLACK_PEN ); - - dc.DrawLine( 0, h - 1, w, h - 1 ); - dc.DrawLine( w-1, 0, w-1, h ); - - // fill inner area - - dc.SetBrush( *wxTheBrushList->FindOrCreateBrush( wxColour( 0,0,128 ), wxSOLID ) ); - - dc.DrawRectangle( mWndHorizGap, mWndVertGap, w - mWndHorizGap*2, mTitleHeight ); - - dc.SetFont( mTitleFont ); - - for( size_t i = 0; i != mButtons.Count(); ++i ) - - mButtons[i]->Draw( dc ); - - int x1 = mWndHorizGap + mClntHorizGap; - int x2 = mButtons[ mButtons.GetCount() - 1 ]->mPos.x - mClntHorizGap*2; - - dc.SetClippingRegion( x1, mWndVertGap + mClntVertGap, x2 - x1, mTitleHeight ); - - dc.SetTextForeground( *wxWHITE ); - dc.SetBackgroundMode( wxTRANSPARENT ); - dc.DrawText( GetTitle(), mWndHorizGap + 2, mWndVertGap + 1 ); -} - -void wxToolWindow::GetScrWindowRect( wxRect& r ) -{ - int x,y; - GetPosition(&x,&y); - int w,h; - GetSize( &w, &h ); - - r.x = x; r.y = y; - r.width = w; r.height = h; -} - -void wxToolWindow::GetScrMousePos( wxMouseEvent& event, wxPoint& pos ) -{ - int x = event.m_x, y = event.m_y; - - ClientToScreen( &x, &y ); - - pos.x = x; pos.y = y; -} - -int wxToolWindow::HitTestWindow( wxMouseEvent& event ) -{ - wxPoint pos; - wxRect r; - - GetScrMousePos( event, pos ); - GetScrWindowRect( r ); - - int k = mMTolerance; - - if ( !( pos.x >= r.x && pos.y >= r.y && - pos.x < r.x + r.width && - pos.y < r.y + r.height ) - ) - return HITS_WND_NOTHING; - - if ( pos.y <= r.y + k ) - { - if ( pos.x < r.x + k*2 ) - - return HITS_WND_TOP_LEFT_CORNER; - else - if ( pos.x >= r.x + r.width - k*2 ) - - return HITS_WND_TOP_RIGHT_CORNER; - else - return HITS_WND_TOP_EDGE; - } - else - if ( pos.y >= r.y + r.height - k ) - { - if ( pos.x < r.x + k*2 ) - - return HITS_WND_BOTTOM_LEFT_CORNER; - else - if ( pos.x > r.x + r.width - k*2 ) - - return HITS_WND_BOTTOM_RIGHT_CORNER; - else - return HITS_WND_BOTTOM_EDGE; - } - else - if ( pos.x <= r.x + k ) - - return HITS_WND_LEFT_EDGE; - else - if ( pos.x >= r.x + r.width - k ) - - return HITS_WND_RIGHT_EDGE; - else - { - if ( pos.y <= r.y + mWndVertGap + mTitleHeight + mClntVertGap ) - - return HITS_WND_TITLE; - else - return HITS_WND_CLIENT; - } -} - -void wxToolWindow::DrawHintRect( const wxRect& r ) -{ - // BUG BUG BUG (wx):: somehow stippled brush works only - // when the bitmap created on stack, not - // as a member of the class - - int prevLF = mpScrDc->GetLogicalFunction(); - - mpScrDc->SetLogicalFunction( wxXOR ); - - wxBitmap checker( (const char*)_gCheckerImg, 8,8 ); - - wxBrush checkerBrush( checker ); - - mpScrDc->SetPen( *wxTRANSPARENT_PEN ); - mpScrDc->SetBrush( checkerBrush ); - - int half = mHintBorder / 2; - - mpScrDc->DrawRectangle( r.x - half, r.y - half, - r.width + 2*half, mHintBorder ); - - mpScrDc->DrawRectangle( r.x - half, r.y + r.height - half, - r.width + 2*half, mHintBorder ); - - mpScrDc->DrawRectangle( r.x - half, r.y + half - 1, - mHintBorder, r.height - 2*half + 2); - - mpScrDc->DrawRectangle( r.x + r.width - half, - r.y + half - 1, - mHintBorder, r.height - 2*half + 2); - - mpScrDc->SetBrush( wxNullBrush ); - - mpScrDc->SetLogicalFunction( prevLF ); -} - -void wxToolWindow::SetHintCursor( int type ) -{ - if ( mResizeStarted ) return; - - if ( type == HITS_WND_NOTHING || type == HITS_WND_CLIENT ) - { - // the cursor is out of window - reset to arrow - - if ( mMouseCaptured && !mResizeStarted ) - { - ReleaseMouse(); - mMouseCaptured = FALSE; - } - - if ( mCursorType == HITS_WND_NOTHING && !mResizeStarted ) - - SetCursor( wxCURSOR_ARROW ); - - mCursorType = type; - - return; - } - - if ( !mMouseCaptured ) - { - mMouseCaptured = TRUE; - CaptureMouse(); - } - - // did the cursor actually changed? - - if ( type != mCursorType ) - { - mCursorType = type; - - switch ( type ) - { - case HITS_WND_LEFT_EDGE : SetCursor( wxCURSOR_SIZEWE ); break; - case HITS_WND_RIGHT_EDGE : SetCursor( wxCURSOR_SIZEWE ); break; - case HITS_WND_TOP_EDGE : SetCursor( wxCURSOR_SIZENS ); break; - case HITS_WND_BOTTOM_EDGE : SetCursor( wxCURSOR_SIZENS ); break; - - case HITS_WND_TOP_LEFT_CORNER : SetCursor( wxCURSOR_SIZENWSE ); break; - case HITS_WND_BOTTOM_RIGHT_CORNER : SetCursor( wxCURSOR_SIZENWSE ); break; - case HITS_WND_TOP_RIGHT_CORNER : SetCursor( wxCURSOR_SIZENESW ); break; - case HITS_WND_BOTTOM_LEFT_CORNER : SetCursor( wxCURSOR_SIZENESW ); break; - - case HITS_WND_TITLE : SetCursor( wxCURSOR_ARROW ); break; - case HITS_WND_CLIENT : SetCursor( wxCURSOR_ARROW ); break; - - default: break; - } - } -} - -#define INFINITY 32768 - -static inline void clip_to( int& value, long from, long till ) -{ - if ( value < from ) - value = from; - - if ( value > till ) - value = till; -} - -void wxToolWindow::AdjustRectPos( const wxRect& original, const wxSize& newDim, wxRect& newRect ) -{ - if ( mCursorType == HITS_WND_TOP_EDGE || - mCursorType == HITS_WND_TOP_LEFT_CORNER ) - { - newRect.x = original.x + original.width - newDim.x; - newRect.y = original.y + original.height - newDim.y; - } - else - if ( mCursorType == HITS_WND_LEFT_EDGE || - mCursorType == HITS_WND_BOTTOM_LEFT_CORNER ) - { - newRect.x = original.x + original.width - newDim.x; - newRect.y = original.y; - } - else - if ( mCursorType == HITS_WND_RIGHT_EDGE || - mCursorType == HITS_WND_TOP_RIGHT_CORNER ) - { - newRect.x = original.x; - newRect.y = original.y + original.height - newDim.y; - } - else - if ( mCursorType == HITS_WND_BOTTOM_EDGE || - mCursorType == HITS_WND_BOTTOM_RIGHT_CORNER ) - { - newRect.x = original.x; - newRect.y = original.y; - } - - newRect.width = newDim.x; - newRect.height = newDim.y; -} - -void wxToolWindow::CalcResizedRect( wxRect& rect, wxPoint& delta, const wxSize& minDim ) -{ - // Microsoft's rect-coordinates are best suited - // for the case of corner-clipping - - int left = mInitialRect.x; - int top = mInitialRect.y; - int right = mInitialRect.x + mInitialRect.width; - int bottom = mInitialRect.y + mInitialRect.height; - - // constraint delta edge is dragged - - switch ( mCursorType ) - { - case HITS_WND_LEFT_EDGE : delta.y = 0; break; - case HITS_WND_RIGHT_EDGE : delta.y = 0; break; - case HITS_WND_TOP_EDGE : delta.x = 0; break; - case HITS_WND_BOTTOM_EDGE : delta.x = 0; break; - default: break; - } - - if ( mCursorType == HITS_WND_TOP_EDGE || - mCursorType == HITS_WND_TOP_LEFT_CORNER ) - { - left += delta.x; - top += delta.y; - - clip_to( left, -INFINITY, mInitialRect.x + mInitialRect.width - minDim.x ); - clip_to( top, -INFINITY, mInitialRect.y + mInitialRect.height - minDim.y ); - } - else - if ( mCursorType == HITS_WND_LEFT_EDGE || - mCursorType == HITS_WND_BOTTOM_LEFT_CORNER ) - { - left += delta.x; - bottom += delta.y; - - clip_to( left, -INFINITY, mInitialRect.x + mInitialRect.width - minDim.x ); - clip_to( bottom, mInitialRect.y + minDim.y, INFINITY ); - } - else - if ( mCursorType == HITS_WND_RIGHT_EDGE || - mCursorType == HITS_WND_TOP_RIGHT_CORNER ) - { - right += delta.x; - top += delta.y; - - clip_to( right, mInitialRect.x + minDim.x, INFINITY ); - clip_to( top, -INFINITY, mInitialRect.y + mInitialRect.height - minDim.y ); - } - else - if ( mCursorType == HITS_WND_BOTTOM_EDGE || - mCursorType == HITS_WND_BOTTOM_RIGHT_CORNER ) - { - right += delta.x; - bottom += delta.y; - - clip_to( right, mInitialRect.x + minDim.x, INFINITY ); - clip_to( bottom, mInitialRect.y + minDim.y, INFINITY ); - } - else - { - wxASSERT(0); // DBG:: - } - - rect.x = left; - rect.y = top; - rect.width = right - left; - rect.height = bottom - top; -} - -wxSize wxToolWindow::GetMinimalWndDim() -{ - return wxSize( (mWndHorizGap + mClntHorizGap)*2 + BTN_BOX_WIDTH*4, - (mWndVertGap + mClntVertGap )*2 + mTitleHeight ); -} - -void wxToolWindow::OnMotion( wxMouseEvent& event ) -{ - if ( !mResizeStarted ) - { - for( size_t i = 0; i != mButtons.Count(); ++i ) - - mButtons[i]->OnMotion( wxPoint( event.m_x, event.m_y ) ); - - SetHintCursor( HitTestWindow( event ) ); - return; - } - - wxPoint pos; - GetScrMousePos( event, pos ); - - if ( mCursorType == HITS_WND_TITLE ) - { - int w,h; - GetSize( &w, &h ); - - SetSize( mInitialRect.x + pos.x - mDragOrigin.x, - mInitialRect.y + pos.y - mDragOrigin.y, - w,h, 0 ); - } - - else - { - wxPoint delta( pos.x - mDragOrigin.x, pos.y - mDragOrigin.y ); - - wxRect newRect; - - wxSize minDim = GetMinimalWndDim(); - - CalcResizedRect( newRect, delta, GetMinimalWndDim() ); - - wxSize borderDim( ( mWndHorizGap + mClntHorizGap )*2, - ( mWndVertGap + mClntVertGap )*2 + mTitleHeight ); - - wxSize preferred = GetPreferredSize( wxSize( newRect.width - borderDim.x, - newRect.height - borderDim.y ) ); - - preferred.x += borderDim.x; - preferred.y += borderDim.y; - - //CalcResizedRect( newRect, delta, preferred ); - - wxRect finalRect = newRect; - - AdjustRectPos( newRect, preferred, finalRect ); - - if ( mRealTimeUpdatesOn ) - { - SetSize( finalRect.x, finalRect.y, - finalRect.width, finalRect.height, 0 ); - } - else - { - DrawHintRect( mPrevHintRect ); - DrawHintRect( finalRect ); - } - - mPrevHintRect = finalRect; - } -} - -void wxToolWindow::OnLeftDown( wxMouseEvent& event ) -{ - int result = HitTestWindow( event ); - - for( size_t i = 0; i != mButtons.Count(); ++i ) - { - mButtons[i]->OnLeftDown( wxPoint( event.m_x, event.m_y ) ); - - if ( mButtons[i]->IsPressed() ) - - return; // button hitted, - } - - if ( result >= HITS_WND_LEFT_EDGE || result == HITS_WND_TITLE ) - { - GetScrMousePos( event, mDragOrigin ); - - /* - if ( mMouseCaptured `) - { - ReleaseMouse(); - mMouseCaptured = FALSE; - }*/ - - if ( result == HITS_WND_TITLE && - HandleTitleClick( event ) - ) - { - - return; - } - - mResizeStarted = TRUE; - - int x,y; - GetPosition( &x, &y ); - - mInitialRect.x = x; - mInitialRect.y = y; - - GetSize( &x, &y ); - mInitialRect.width = x; - mInitialRect.height = y; - - mPrevHintRect = mInitialRect; - - if ( mCursorType != HITS_WND_TITLE && !mRealTimeUpdatesOn ) - { - mpScrDc = new wxScreenDC(); - - wxScreenDC::StartDrawingOnTop( (wxRect*)NULL ); - - DrawHintRect( mInitialRect ); - } - } -} - -void wxToolWindow::OnLeftUp( wxMouseEvent& event ) -{ - for( size_t i = 0; i != mButtons.Count(); ++i ) - { - mButtons[i]->OnLeftUp( wxPoint( event.m_x, event.m_y ) ); - - if ( mButtons[i]->WasClicked() ) - { - OnMiniButtonClicked( i ); // notify derived classes - mButtons[i]->Reset(); - } - } - - if ( mResizeStarted ) - { - mResizeStarted = FALSE; - - if ( mCursorType != HITS_WND_TITLE ) - { - if ( !mRealTimeUpdatesOn ) - { - DrawHintRect( mPrevHintRect ); - - wxScreenDC::EndDrawingOnTop(); - - delete mpScrDc; - - mpScrDc = NULL; - - SetSize( mPrevHintRect.x, mPrevHintRect.y, - mPrevHintRect.width, mPrevHintRect.height, 0 ); - } - } - } -} - -void wxToolWindow::OnSize( wxSizeEvent& event ) -{ - if ( mpClientWnd ) - { - int w,h; - GetSize( &w, &h ); - - int x = mWndHorizGap + mClntHorizGap; - int y = mWndVertGap + mTitleHeight + mClntVertGap; - -#if 1 - mpClientWnd->SetSize( x -1, y -1, - w - 2*(mWndHorizGap + mClntHorizGap), - h - y - mClntVertGap - mWndVertGap, - 0 - ); -#endif - } - - LayoutMiniButtons(); -} - -wxSize wxToolWindow::GetPreferredSize( const wxSize& given ) -{ - return given; -} - -void wxToolWindow::OnEraseBackground( wxEraseEvent& event ) -{ - // nothing -} - -/***** Implementation for class cbMiniButton *****/ - -cbMiniButton::cbMiniButton() - - : mVisible( TRUE ), - mEnabled( TRUE ), - - mpLayout( NULL ), - mpPane ( NULL ), - mpPlugin( NULL ), - mpWnd ( NULL ), - - mWasClicked( FALSE ), - mDragStarted( FALSE ), - mPressed( FALSE ) -{} - -void cbMiniButton::SetPos( const wxPoint& pos ) -{ - mPos = pos; -} - -bool cbMiniButton::HitTest( const wxPoint& pos ) -{ - if ( !mVisible ) return FALSE; - - return ( pos.x >= mPos.x && pos.y >= mPos.y && - pos.x < mPos.x + BTN_BOX_WIDTH && - pos.y < mPos.y + BTN_BOX_HEIGHT ); -} - -void cbMiniButton::OnLeftDown( const wxPoint& pos ) -{ - if ( !mVisible || mDragStarted ) return; - - if ( HitTest( pos ) && mEnabled ) - { - if ( mpPlugin ) - { - mpLayout->CaptureEventsForPane( mpPane ); - mpLayout->CaptureEventsForPlugin( mpPlugin ); - } - else - mpWnd->CaptureMouse(); - - mDragStarted = TRUE; - mPressed = TRUE; - mWasClicked = FALSE; - - Refresh(); - } -} - -void cbMiniButton::OnLeftUp( const wxPoint& pos ) -{ - if ( !mVisible || !mDragStarted ) return; - - if ( mpPlugin ) - { - mpLayout->ReleaseEventsFromPane( mpPane ); - mpLayout->ReleaseEventsFromPlugin( mpPlugin ); - } - else - mpWnd->ReleaseMouse(); - - mWasClicked = mPressed; - mDragStarted = FALSE; - - mPressed = FALSE; - Refresh(); -} - -void cbMiniButton::OnMotion( const wxPoint& pos ) -{ - if ( !mVisible ) return; - - if ( mDragStarted ) - { - mPressed = HitTest( pos ); - - Refresh(); - } -} - -void cbMiniButton::Refresh() -{ - if ( mpLayout ) - { - wxClientDC dc( &mpLayout->GetParentFrame() ); - - Draw( dc ); - } - else - { - wxWindowDC dc( mpWnd ); - - Draw( dc ); - } -} - -void cbMiniButton::Draw( wxDC& dc ) -{ - if ( !mVisible ) return; - - dc.SetPen( *wxTRANSPARENT_PEN ); - - dc.SetBrush( *wxLIGHT_GREY_BRUSH ); - - dc.DrawRectangle( mPos.x + 1, mPos.y + 1, BTN_BOX_WIDTH - 2, BTN_BOX_HEIGHT - 2 ); - - // "hard-code" metafile - - if ( !mPressed ) - - dc.SetPen( *wxWHITE_PEN ); - else - dc.SetPen( *wxBLACK_PEN ); - - dc.DrawLine( mPos.x, mPos.y, mPos.x + BTN_BOX_WIDTH, mPos.y ); - dc.DrawLine( mPos.x, mPos.y, mPos.x, mPos.y + BTN_BOX_HEIGHT ); - - dc.SetPen( *wxGREY_PEN ); - - if ( !mPressed ) - { - dc.DrawLine( mPos.x + 1, mPos.y + BTN_BOX_HEIGHT - 2, - mPos.x + BTN_BOX_WIDTH - 1, mPos.y + BTN_BOX_HEIGHT - 2 ); - - dc.DrawLine( mPos.x + BTN_BOX_WIDTH - 2, mPos.y + 1, - mPos.x + BTN_BOX_WIDTH - 2, mPos.y + BTN_BOX_HEIGHT - 1 ); - } - else - { - dc.DrawLine( mPos.x + 1, mPos.y + 1, - mPos.x + BTN_BOX_WIDTH - 2, mPos.y + 1 ); - - dc.DrawLine( mPos.x + 1, mPos.y + 1, - mPos.x + 1, mPos.y + BTN_BOX_HEIGHT - 2 ); - } - - if ( !mPressed ) - - dc.SetPen( *wxBLACK_PEN ); - else - dc.SetPen( *wxWHITE_PEN ); - - dc.DrawLine( mPos.x, mPos.y + BTN_BOX_HEIGHT - 1, - mPos.x + BTN_BOX_WIDTH, mPos.y + BTN_BOX_HEIGHT - 1 ); - - dc.DrawLine( mPos.x + BTN_BOX_WIDTH - 1, mPos.y , - mPos.x + BTN_BOX_WIDTH - 1, mPos.y + BTN_BOX_HEIGHT ); -} - -bool cbMiniButton::WasClicked() -{ - return mWasClicked; -} - -void cbMiniButton::Reset() -{ - mWasClicked = FALSE; -} - -/***** Implementation fro class cbCloseBox *****/ - -void cbCloseBox::Draw( wxDC& dc ) -{ -#ifdef __WXGTK__ - - cbMiniButton::Draw( dc ); - - wxPen pen( wxColour( 64,64,64 ) ,1, wxSOLID ); - - dc.SetPen( pen ); - - int width = BTN_BOX_WIDTH - 7; - - int xOfs = (mPressed) ? 4 : 3; - int yOfs = (mPressed) ? 4 : 3; - - int one = 1; - for( int i = 0; i != BTN_X_WIEGHT; ++i ) - { - dc.DrawLine( mPos.x + xOfs + i - one, - mPos.y + yOfs - one, - mPos.x + xOfs + i + width, - mPos.y + yOfs + width + one); - - dc.DrawLine( mPos.x + xOfs + i + width , - mPos.y + yOfs - one - one, - mPos.x + xOfs + i - one, - mPos.y + yOfs + width ); - } - -#else - - cbMiniButton::Draw( dc ); - - dc.SetPen( *wxBLACK_PEN ); - - int width = BTN_BOX_WIDTH - 7; - - int xOfs = (mPressed) ? 4 : 3; - int yOfs = (mPressed) ? 4 : 3; - - for( int i = 0; i != BTN_X_WIEGHT; ++i ) - { - dc.DrawLine( mPos.x + xOfs + i, - mPos.y + yOfs, - mPos.x + xOfs + i + width, - mPos.y + yOfs + width ); - - dc.DrawLine( mPos.x + xOfs + i + width - 1, - mPos.y + yOfs, - mPos.x + xOfs + i - 1, - mPos.y + yOfs + width ); - } - -#endif - -} - -/***** Implementation fro class cbCollapseBox *****/ - -inline static void my_swap( long& a, long& b ) -{ - long tmp = a; - a = b; - b = tmp; -} - -void cbCollapseBox::Draw( wxDC& dc ) -{ - cbMiniButton::Draw( dc ); - - dc.SetPen( *wxTRANSPARENT_PEN ); - - wxPoint arr[3]; - - int yOfs = (mPressed) ? 3 : 2; - int xOfs = (mPressed) ? 5 : 4; - int width = BTN_BOX_WIDTH - 8; - - // rotating/shifting triangle inside collapse box - - arr[0].x = xOfs; - arr[0].y = yOfs-1; - arr[2].x = xOfs; - arr[2].y = BTN_BOX_HEIGHT - yOfs - 1; - arr[1].x = xOfs + width; - arr[1].y = (arr[2].y + arr[0].y)/2; - - if ( !mIsAtLeft ) - { - arr[0].x = BTN_BOX_WIDTH - arr[0].x; - arr[1].x = BTN_BOX_WIDTH - arr[1].x; - arr[2].x = BTN_BOX_WIDTH - arr[2].x; - } - - if ( !mpPane->IsHorizontal() ) - { - my_swap( arr[0].y, arr[0].x ); - my_swap( arr[1].y, arr[1].x ); - my_swap( arr[2].y, arr[2].x ); - - arr[0].x += 1; - arr[1].x += 1; - arr[2].x += 1; - - //arr[1].y -= 1; - } - - arr[0].x += mPos.x; - arr[0].y += mPos.y; - arr[1].x += mPos.x; - arr[1].y += mPos.y; - arr[2].x += mPos.x; - arr[2].y += mPos.y; - - if ( !mEnabled ) dc.SetBrush( *wxGREY_BRUSH ); - else dc.SetBrush( *wxBLACK_BRUSH ); - - dc.DrawPolygon( 3, arr ); - dc.SetBrush( wxNullBrush ); -} - -/***** Implementation for class cbDockBoxBox *****/ - -void cbDockBox::Draw( wxDC& dc ) -{ - cbMiniButton::Draw( dc ); - - int width = BTN_BOX_WIDTH - 7; - - int xOfs = (mPressed) ? 4 : 3; - int yOfs = (mPressed) ? 4 : 3; - - dc.SetPen( *wxBLACK_PEN ); - dc.SetBrush( *wxBLACK_BRUSH ); - - dc.DrawRectangle( mPos.x + xOfs, mPos.y + yOfs, width, width ); - - xOfs += 1; - yOfs += 1; - - dc.SetBrush( *wxWHITE_BRUSH ); - - dc.DrawRectangle( mPos.x + xOfs, mPos.y + yOfs, width-2, width-2 ); -} - -/***** Implementation for class wxToolWindow *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbFloatedBarWindow, wxToolWindow ) - -BEGIN_EVENT_TABLE( cbFloatedBarWindow, wxToolWindow ) - - EVT_LEFT_DCLICK( cbFloatedBarWindow::OnDblClick ) - -END_EVENT_TABLE() - -cbFloatedBarWindow::cbFloatedBarWindow() - - : mpBar( NULL ) -{ - AddMiniButton( new cbCloseBox() ); - AddMiniButton( new cbDockBox() ); -} - -void cbFloatedBarWindow::SetBar( cbBarInfo* pBar ) -{ - mpBar = pBar; -} - -cbBarInfo* cbFloatedBarWindow::GetBar() -{ - return mpBar; -} - -void cbFloatedBarWindow::SetLayout( wxFrameLayout* pLayout ) -{ - mpLayout = pLayout; -} - -void cbFloatedBarWindow::PositionFloatedWnd( int scrX, int scrY, - int width, int height ) -{ - wxSize minDim = GetMinimalWndDim(); - - SetSize( scrX - mWndHorizGap - mClntHorizGap, - scrY - mClntVertGap - mTitleHeight - mWndVertGap, - width + minDim.x, height + minDim.y, 0 ); -} - -wxSize cbFloatedBarWindow::GetPreferredSize( const wxSize& given ) -{ - if ( mpBar->mDimInfo.GetDimHandler() ) - { - - cbBarDimHandlerBase* pHandler = mpBar->mDimInfo.GetDimHandler(); - - wxSize prefDim; - - int vtad = *((int*)pHandler); - - pHandler->OnResizeBar( mpBar, given, prefDim ); - - return prefDim; - } - else - { - if ( mpBar->IsFixed() ) - - return mpBar->mDimInfo.mSizes[ wxCBAR_FLOATING ]; - else - return given; // not-fixed bars are resized exactly the way user wants - } -} - -void cbFloatedBarWindow::OnMiniButtonClicked( int btnIdx ) -{ - // #1 - close mini-button - // #0 - dock mini-button - - if ( btnIdx == 0 ) - { - mpBar->mAlignment = -1; // sepcial "marking" for hidden bars out of floated state - mpLayout->SetBarState( mpBar, wxCBAR_HIDDEN, TRUE ); - } - else - mpLayout->SetBarState( mpBar, wxCBAR_DOCKED_HORIZONTALLY, TRUE ); -} - -bool cbFloatedBarWindow::HandleTitleClick( wxMouseEvent& event ) -{ - ReleaseMouse(); - mMouseCaptured = FALSE; - - wxPoint scrPos; - GetScrMousePos( event, scrPos ); - - int msX = scrPos.x, - msY = scrPos.y; - - mpLayout->GetParentFrame().ScreenToClient( &msX, &msY ); - - int x,y; - GetPosition(&x,&y); - int w,h; - GetSize( &w, &h ); - - wxSize minDim = GetMinimalWndDim(); - - w -= minDim.x; - h -= minDim.y; - - x += mWndHorizGap + mClntHorizGap; - y += mWndVertGap + mTitleHeight + mClntVertGap; - - mpLayout->GetParentFrame().ScreenToClient( &x, &y ); - - wxRect& bounds = mpBar->mDimInfo.mBounds[ wxCBAR_FLOATING ]; - - bounds.x = x; - bounds.y = y; - bounds.width = w; - bounds.height = h; - - cbStartBarDraggingEvent dragEvt( mpBar, wxPoint(msX,msY), - mpLayout->GetPanesArray()[wxTOP] ); - - mpLayout->FirePluginEvent( dragEvt ); - - return TRUE; -} - -void cbFloatedBarWindow::OnDblClick( wxMouseEvent& event ) -{ - mpLayout->SetBarState( mpBar, wxCBAR_DOCKED_HORIZONTALLY, TRUE ); - - //wxMessageBox("toolWnd - dblClick!"); -} diff --git a/utils/framelayout/src/toolwnd.h b/utils/framelayout/src/toolwnd.h deleted file mode 100644 index 55f9bf8789..0000000000 --- a/utils/framelayout/src/toolwnd.h +++ /dev/null @@ -1,210 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 06/09/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __TOOLWND_G__ -#define __TOOLWND_G__ - -#include "wx/frame.h" -#include "wx/dynarray.h" - -// fixed settings - -#define BTN_BOX_HEIGHT 12 -#define BTN_BOX_WIDTH 12 -#define BTN_X_WIEGHT 2 - -class cbMiniButton; - -typedef cbMiniButton* cbMinitButtonPtrT; - -WX_DEFINE_ARRAY( cbMinitButtonPtrT, cbMiniButtonArrayT ); - -class wxToolWindow : public wxFrame -{ - DECLARE_DYNAMIC_CLASS( wxToolWindow ) - -public: /** protected really, accesssed only by serializers **/ - - cbMiniButtonArrayT mButtons; - wxWindow* mpClientWnd; - - wxFont mTitleFont; - - int mTitleHeight; - int mClntHorizGap; - int mClntVertGap; - int mWndVertGap; - int mWndHorizGap; - int mButtonGap; - int mInTitleMargin; - int mHintBorder; - - bool mResizeStarted; - bool mRealTimeUpdatesOn; - - int mMTolerance; - - int mCursorType; - bool mMouseCaptured; - - // drag&drop state variables - - wxPoint mDragOrigin; - wxRect mInitialRect; - wxRect mPrevHintRect; - wxScreenDC* mpScrDc; - -protected: - void GetScrWindowRect( wxRect& r ); - void GetScrMousePos ( wxMouseEvent& event, wxPoint& pos ); - void SetHintCursor ( int type ); - - void CalcResizedRect( wxRect& rect, wxPoint& delta, const wxSize& minDim ); - void AdjustRectPos( const wxRect& original, const wxSize& newDim, wxRect& newRect ); - wxSize GetMinimalWndDim(); - - void DrawHintRect( const wxRect& r ); - - int HitTestWindow( wxMouseEvent& event ); - - void LayoutMiniButtons(); - -public: - - wxToolWindow(); - ~wxToolWindow(); - - void SetClient( wxWindow* pWnd ); - wxWindow* GetClient(); - - void SetTitleFont( wxFont& font ); - - // buttons are added in right-to-left order - void AddMiniButton( cbMiniButton* pBtn ); - - void OnPaint( wxPaintEvent& event ); - - void OnMotion( wxMouseEvent& event ); - void OnLeftDown( wxMouseEvent& event ); - void OnLeftUp( wxMouseEvent& event ); - void OnSize( wxSizeEvent& event ); - - void OnEraseBackground( wxEraseEvent& event ); - - // overridables: - - virtual wxSize GetPreferredSize( const wxSize& given ); - virtual void OnMiniButtonClicked( int btnIdx ) {} - virtual bool HandleTitleClick( wxMouseEvent& event ) { return FALSE; } - - DECLARE_EVENT_TABLE() -}; - -// FIXME:: the code below should be moved to a separate file - -#include "controlbar.h" - -class cbMiniButton : public wxObject -{ -public: - wxPoint mPos; - wxSize mDim; - bool mVisible; - bool mEnabled; - - wxFrameLayout* mpLayout; - cbDockPane* mpPane; - cbPluginBase* mpPlugin; - - wxWindow* mpWnd; - - bool mWasClicked; - bool mDragStarted; - - bool mPressed; -public: - cbMiniButton(); - - void SetPos( const wxPoint& pos ); - bool HitTest( const wxPoint& pos ); - - void OnLeftDown( const wxPoint& pos ); - void OnLeftUp( const wxPoint& pos ); - void OnMotion( const wxPoint& pos ); - - void Refresh(); - virtual void Draw( wxDC& dc ); - - bool WasClicked(); - void Reset(); - - void Enable( bool enable ) { mEnabled = enable; } - - bool IsPressed() { return mPressed; } -}; - -// classes specific to wxFrameLayout engine (FOR NOW in here...) - -class cbCloseBox : public cbMiniButton -{ -public: - virtual void Draw( wxDC& dc ); -}; - -class cbCollapseBox : public cbMiniButton -{ -public: - bool mIsAtLeft; - - virtual void Draw( wxDC& dc ); -}; - -class cbDockBox : public cbMiniButton -{ -public: - virtual void Draw( wxDC& dc ); -}; - -class cbFloatedBarWindow : public wxToolWindow -{ - DECLARE_DYNAMIC_CLASS( cbFloatedBarWindow ) -protected: - cbBarInfo* mpBar; - wxFrameLayout* mpLayout; - - friend class cbFloatedBarWindowSerializer; - -public: - cbFloatedBarWindow(); - - void SetBar( cbBarInfo* pBar ); - void SetLayout( wxFrameLayout* pLayout ); - cbBarInfo* GetBar(); - - // given coordinates are those of the bar itself - // floated container window's position and size - // are ajusted accordingly - - void PositionFloatedWnd( int scrX, int scrY, - int width, int height ); - - // overriden methods of wxToolWindow - - virtual wxSize GetPreferredSize( const wxSize& given ); - virtual void OnMiniButtonClicked( int btnIdx ); - virtual bool HandleTitleClick( wxMouseEvent& event ); - - void OnDblClick( wxMouseEvent& event ); - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/utils/framelayout/src/updatesmgr.cpp b/utils/framelayout/src/updatesmgr.cpp deleted file mode 100644 index 6bc3c5d54c..0000000000 --- a/utils/framelayout/src/updatesmgr.cpp +++ /dev/null @@ -1,292 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas -// Modified by: -// Created: 19/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "updatesmgr.h" -// #pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "updatesmgr.h" - -// helper function - -static inline bool rect_hits_rect( const wxRect& r1, const wxRect& r2 ) -{ - if ( ( r2.x >= r1.x && r2.x <= r1.x + r1.width ) || - ( r1.x >= r2.x && r1.x <= r2.x + r2.width ) ) - - if ( ( r2.y >= r1.y && r2.y <= r1.y + r1.height ) || - ( r1.y >= r2.y && r1.y <= r2.y + r2.height ) ) - - return 1; - - return 0; -} - -/***** Implementation for class cbSimpleUpdatesMgr *****/ - -IMPLEMENT_DYNAMIC_CLASS( cbSimpleUpdatesMgr, cbUpdatesManagerBase ) - -cbSimpleUpdatesMgr::cbSimpleUpdatesMgr( wxFrameLayout* pPanel ) - : cbUpdatesManagerBase( pPanel ) -{} - -bool cbSimpleUpdatesMgr::WasChanged( cbUpdateMgrData& data, wxRect& currentBounds ) -{ - return ( data.IsDirty() || - - ( data.mPrevBounds.x != currentBounds.x || - data.mPrevBounds.y != currentBounds.y || - data.mPrevBounds.width != currentBounds.width || - data.mPrevBounds.height != currentBounds.height ) - ); -} - -void cbSimpleUpdatesMgr::OnStartChanges() -{ - // memorize states of ALL items in the layout - - // this is quite excessive, but OK for the simple - // implementation of updates manager - - mpLayout->GetPrevClientRect() = mpLayout->GetClientRect(); - - cbDockPane** panes = mpLayout->GetPanesArray(); - - for( int n = 0; n != MAX_PANES; ++n ) - { - cbDockPane& pane = *panes[n]; - // store pane state - pane.mUMgrData.StoreItemState( pane.mBoundsInParent ); - pane.mUMgrData.SetDirty( FALSE ); - - for( size_t i = 0; i != pane.GetRowList().Count(); ++i ) - { - cbRowInfo& row = *pane.GetRowList()[ i ]; - - // store row state - row.mUMgrData.StoreItemState( row.mBoundsInParent ); - row.mUMgrData.SetDirty( FALSE ); - - for( size_t k = 0; k != row.mBars.Count(); ++k ) - { - cbBarInfo& bar = *row.mBars[ k ]; - - // store bar state - bar.mUMgrData.StoreItemState( bar.mBoundsInParent ); - bar.mUMgrData.SetDirty( FALSE ); - } - } - } -} - -void cbSimpleUpdatesMgr::OnFinishChanges() -{ - // nothing here, could be overriden by more sophisticated updates-managers -} - -void cbSimpleUpdatesMgr::OnRowWillChange( cbRowInfo* pRow, cbDockPane* pInPane ) -{ - // -/- -} - -void cbSimpleUpdatesMgr::OnBarWillChange( cbBarInfo* pBar, - cbRowInfo* pInRow, cbDockPane* pInPane ) -{ - // -/- -} - -void cbSimpleUpdatesMgr::OnPaneMarginsWillChange( cbDockPane* pPane ) -{ - // -/- -} - -void cbSimpleUpdatesMgr::OnPaneWillChange( cbDockPane* pPane ) -{ - // -/- -} - -void cbSimpleUpdatesMgr::UpdateNow() -{ - cbDockPane** panes = mpLayout->GetPanesArray(); - - wxRect& r1 = mpLayout->GetClientRect(); - wxRect& r2 = mpLayout->GetPrevClientRect(); - - // detect changes in client window's area - - bool clientWindowChanged = ( r1.x != r2.x || - r1.y != r2.y || - r1.width != r2.width || - r1.height != r2.height ); - - // step #1 - detect changes in each row of each pane, - // and repaint decorations around changed windows - - wxList mBarsToRefresh; - wxList mPanesList; - - for( int n = 0; n != MAX_PANES; ++n ) - { - cbDockPane& pane = *(panes[n]); - - bool paneChanged = WasChanged( pane.mUMgrData, pane.mBoundsInParent ); - - if ( paneChanged ) - { - wxClientDC dc( &mpLayout->GetParentFrame() ); - pane.PaintPaneBackground( dc ); - } - - wxRect realBounds; - - for( size_t i = 0; i != pane.GetRowList().Count(); ++i ) - { - cbRowInfo& row = *pane.GetRowList()[ i ]; - - wxDC* pDc = NULL; - - bool rowChanged = FALSE; - bool rowBkPainted = FALSE; - - // FIXME:: the below should not be fixed - cbBarInfo* barsToRepaint[256]; - - // number of bars, that were changed in the current row - int nBars = 0; - - if ( WasChanged( row.mUMgrData, row.mBoundsInParent ) ) - - rowChanged = TRUE; - else - for( size_t k = 0; k != row.mBars.Count(); ++k ) - - if ( WasChanged( row.mBars[k]->mUMgrData, - row.mBars[k]->mBoundsInParent ) - ) - - barsToRepaint[nBars++] = row.mBars[k]; - - if ( nBars || rowChanged ) - { - realBounds = row.mBoundsInParent; - - // include 1-pixel thick shades around the row - realBounds.x -= 1; - realBounds.y -= 1; - realBounds.width += 2; - realBounds.height += 2; - - pDc = pane.StartDrawInArea( realBounds ); - } - - if ( rowChanged ) - { - // postphone the resizing and refreshing the changed - // bar windows - - for( size_t k = 0; k != row.mBars.Count(); ++k ) - { - mBarsToRefresh.Append( (wxObject*)row.mBars[k] ); - mPanesList.Append( &pane ); - } - - // draw only their decorations now - - pane.PaintRow( &row, *pDc ); - } - else - if ( nBars != 0 ) - { - for( int i = 0; i != nBars; ++i ) - { - // postphone the resizement and refreshing the changed - // bar windows - - mBarsToRefresh.Append( (wxObject*)barsToRepaint[i] ); - mPanesList.Append( &pane ); - } - - // redraw decorations of entire row, regardless of how much - // of the bars were changed - pane.PaintRow( &row, *pDc ); - } - - if ( pDc ) - - pane.FinishDrawInArea( realBounds ); - } // end of while - - if ( paneChanged ) - { - wxClientDC dc( &mpLayout->GetParentFrame() ); - pane.PaintPaneDecorations( dc ); - } - - } // end of for - - if ( clientWindowChanged ) - { - mpLayout->PositionClientWindow(); - // ptr to client-window object is "marked" as 0 - } - - // step #2 - do ordered refreshing and resizing of bar window objects now - - wxNode* pNode = mBarsToRefresh.First(); - wxNode* pPaneNode = mPanesList.First(); - - while( pNode ) - { - cbBarInfo* pBar = (cbBarInfo*) pNode->Data(); - cbDockPane* pPane = (cbDockPane*)pPaneNode->Data(); - - pPane->SizeBar( pBar ); - - pNode = pNode->Next(); - pPaneNode = pPaneNode->Next(); - } - - pNode = mBarsToRefresh.First(); - - while( pNode ) - { - cbBarInfo* pBar = (cbBarInfo*)pNode->Data(); - - if ( pBar->mpBarWnd ) - { - pBar->mpBarWnd->Refresh(); - - // FIXME:: - //info.mpBarWnd->Show(FALSE); - //info.mpBarWnd->Show(TRUE); - } - - pNode = pNode->Next(); - } - - if ( clientWindowChanged ) - { - // FIXME:: excessive? - - mpLayout->GetFrameClient()->Refresh(); - } -} diff --git a/utils/framelayout/src/updatesmgr.h b/utils/framelayout/src/updatesmgr.h deleted file mode 100644 index a30b847508..0000000000 --- a/utils/framelayout/src/updatesmgr.h +++ /dev/null @@ -1,51 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: No names yet. -// Purpose: Contrib. demo -// Author: Aleksandras Gluchovas (@Lithuania) -// Modified by: -// Created: 19/10/98 -// RCS-ID: $Id$ -// Copyright: (c) Aleksandras Gluchovas -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __UPDATESMGR_G__ -#define __UPDATESMGR_G__ - -#include "controlbar.h" - -/* - * class implements slightly optimized logic for refreshing - * areas of frame layout - which actually need to be updated. - */ - -class cbSimpleUpdatesMgr : public cbUpdatesManagerBase -{ - DECLARE_DYNAMIC_CLASS( cbSimpleUpdatesMgr ) -protected: - - bool WasChanged( cbUpdateMgrData& data, wxRect& currentBounds ); - -public: - - cbSimpleUpdatesMgr(void) {} - - cbSimpleUpdatesMgr( wxFrameLayout* pPanel ); - - // notificiactions received from Frame Layout (in the order, in which - // they usually would be invoked) - - virtual void OnStartChanges(); - - virtual void OnRowWillChange( cbRowInfo* pRow, cbDockPane* pInPane ); - virtual void OnBarWillChange( cbBarInfo* pBar, cbRowInfo* pInRow, cbDockPane* pInPane ); - virtual void OnPaneMarginsWillChange( cbDockPane* pPane ); - virtual void OnPaneWillChange( cbDockPane* pPane ); - - virtual void OnFinishChanges(); - - // refreshes parts of the frame layout, which need an update - virtual void UpdateNow(); -}; - -#endif \ No newline at end of file diff --git a/utils/glcanvas/distrib/glcanvas.rsp b/utils/glcanvas/distrib/glcanvas.rsp deleted file mode 100644 index 1c238e484d..0000000000 --- a/utils/glcanvas/distrib/glcanvas.rsp +++ /dev/null @@ -1,40 +0,0 @@ -docs/*.* -win/*.cpp -win/*.h -win/make*.* -gtk/*.cpp -gtk/*.h -gtk/make*.* -motif/*.cpp -motif/*.h -motif/*.txt -motif/make*.* -samples/cube/*.cpp -samples/cube/*.h -samples/cube/*.rc -samples/cube/*.ico -samples/cube/*.xbm -samples/cube/make*.* -samples/cube/Makefile -samples/isosurf/*.cpp -samples/isosurf/*.h -samples/isosurf/*.rc -samples/isosurf/*.ico -samples/isosurf/*.xbm -samples/isosurf/*.dat -samples/isosurf/*.dat.gz -samples/isosurf/make*.* -samples/isosurf/Makefile -samples/penguin/*.cpp -samples/penguin/*.c -samples/penguin/*.h -samples/penguin/*.rc -samples/penguin/*.ico -samples/penguin/*.xbm -samples/penguin/*.xpm -samples/penguin/make*.* -samples/penguin/penguin.lwo -samples/penguin/Makefile - - - diff --git a/utils/glcanvas/distrib/zipsrc.bat b/utils/glcanvas/distrib/zipsrc.bat deleted file mode 100755 index 74029e3967..0000000000 --- a/utils/glcanvas/distrib/zipsrc.bat +++ /dev/null @@ -1,27 +0,0 @@ -@echo off -rem Zip up an external source distribution of GLCanvas -set src=%1 -set dest=%2 -if "%src" == "" set src=%WXWIN\utils\glcanvas -if "%dest" == "" set dest=%WXWIN\utils\glcanvas\deliver -echo About to archive an external GLCanvas distribution: -echo From %src -echo To %dest\glcanvas.zip -echo CTRL-C if this is not correct. -inkey /W10 `Press any key to continue...` %%input - -erase %dest\glcanvas.zip -cd %src - -zip32 -@ %dest\glcanvas.zip < %src\distrib\glcanvas.rsp - -echo GLCanvas archived. -goto end - -:usage -echo GLCanvas distribution. -echo Usage: zipsrc source destination - -:end - - diff --git a/utils/glcanvas/docs/notes.txt b/utils/glcanvas/docs/notes.txt deleted file mode 100644 index 7bcb165caf..0000000000 --- a/utils/glcanvas/docs/notes.txt +++ /dev/null @@ -1,5 +0,0 @@ -wxGLCanvas ----------- - -No known issues, though probably palettes aren't correctly -handled under Windows. They are ignored under GTK. diff --git a/utils/glcanvas/gtk/.cvsignore b/utils/glcanvas/gtk/.cvsignore deleted file mode 100644 index 4646a42c35..0000000000 --- a/utils/glcanvas/gtk/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux diff --git a/utils/glcanvas/gtk/glcanvas.cpp b/utils/glcanvas/gtk/glcanvas.cpp deleted file mode 100644 index 93918cf149..0000000000 --- a/utils/glcanvas/gtk/glcanvas.cpp +++ /dev/null @@ -1,415 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.cpp -// Purpose: wxGLCanvas, for using OpenGL/Mesa with wxWindows and GTK -// Author: Robert Roebling -// Modified by: -// Created: 17/08/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "glcanvas.h" -#endif - -#include "glcanvas.h" - -#include "wx/frame.h" -#include "wx/colour.h" -#include "wx/module.h" -#include "wx/app.h" - -extern "C" { -#include "gtk/gtk.h" -#include "gdk/gdk.h" -#include "gdk/gdkx.h" -} - -#include "wx/gtk/win_gtk.h" - -//--------------------------------------------------------------------------- -// global data -//--------------------------------------------------------------------------- - -XVisualInfo *g_vi = (XVisualInfo*) NULL; - -//--------------------------------------------------------------------------- -// wxGLContext -//--------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxGLContext,wxObject) - -wxGLContext::wxGLContext( bool WXUNUSED(isRGB), wxWindow *win, const wxPalette& WXUNUSED(palette) ) -{ - m_window = win; - m_widget = ((wxGLCanvas*)win)->m_glWidget; - - wxCHECK_RET( g_vi, "invalid visual for OpenGl" ); - - m_glContext = glXCreateContext( GDK_DISPLAY(), g_vi, None, GL_TRUE ); - - wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" ); -} - -wxGLContext::wxGLContext( - bool WXUNUSED(isRGB), wxWindow *win, - const wxPalette& WXUNUSED(palette), - const wxGLContext *other /* for sharing display lists */ -) -{ - m_window = win; - m_widget = ((wxGLCanvas*)win)->m_glWidget; - - wxCHECK_RET( g_vi, "invalid visual for OpenGl" ); - - if( other != 0 ) - m_glContext = glXCreateContext( GDK_DISPLAY(), g_vi, other->m_glContext, - GL_TRUE ); - else - m_glContext = glXCreateContext( GDK_DISPLAY(), g_vi, None, GL_TRUE ); - - wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" ); -} - -wxGLContext::~wxGLContext() -{ - if (!m_glContext) return; - - if (m_glContext == glXGetCurrentContext()) - { - glXMakeCurrent( GDK_DISPLAY(), None, NULL); - } - - glXDestroyContext( GDK_DISPLAY(), m_glContext ); -} - -void wxGLContext::SwapBuffers() -{ - if (m_glContext) - { - glXSwapBuffers( GDK_DISPLAY(), GDK_WINDOW_XWINDOW( m_widget->window ) ); - } -} - -void wxGLContext::SetCurrent() -{ - if (m_glContext) - { - glXMakeCurrent( GDK_DISPLAY(), GDK_WINDOW_XWINDOW(m_widget->window), m_glContext ); - } -} - -void wxGLContext::SetColour(const char *colour) -{ - float r = 0.0; - float g = 0.0; - float b = 0.0; - wxColour *col = wxTheColourDatabase->FindColour(colour); - if (col) - { - r = (float)(col->Red()/256.0); - g = (float)(col->Green()/256.0); - b = (float)(col->Blue()/256.0); - glColor3f( r, g, b); - } -} - -void wxGLContext::SetupPixelFormat() -{ -} - -void wxGLContext::SetupPalette( const wxPalette& WXUNUSED(palette) ) -{ -} - -wxPalette wxGLContext::CreateDefaultPalette() -{ - return wxNullPalette; -} - -//----------------------------------------------------------------------------- -// "expose_event" of m_glWidget -//----------------------------------------------------------------------------- - -static void gtk_window_expose_callback( GtkWidget *WXUNUSED(widget), GdkEventExpose *gdk_event, wxWindow *win ) -{ - if (!win->m_hasVMT) return; - - win->GetUpdateRegion().Union( gdk_event->area.x, - gdk_event->area.y, - gdk_event->area.width, - gdk_event->area.height ); - - if (gdk_event->count > 0) return; - -/* - printf( "OnExpose from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - win->GetUpdateRegion().Clear(); -} - -//----------------------------------------------------------------------------- -// "draw" of m_glWidget -//----------------------------------------------------------------------------- - -static void gtk_window_draw_callback( GtkWidget *WXUNUSED(widget), GdkRectangle *rect, wxWindow *win ) -{ - if (!win->m_hasVMT) return; - - win->GetUpdateRegion().Union( rect->x, rect->y, rect->width, rect->height ); - - wxPaintEvent event( win->GetId() ); - event.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( event ); - - win->GetUpdateRegion().Clear(); -} - -//--------------------------------------------------------------------------- -// wxGlCanvas -//--------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxGLCanvas, wxScrolledWindow) - -BEGIN_EVENT_TABLE(wxGLCanvas, wxScrolledWindow) - EVT_SIZE(wxGLCanvas::OnSize) -END_EVENT_TABLE() - -wxGLCanvas::wxGLCanvas( wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name, - int *attribList, - const wxPalette& palette ) -{ - Create( parent, NULL, id, pos, size, style, name, attribList, palette ); -} - -wxGLCanvas::wxGLCanvas( wxWindow *parent, - const wxGLContext *shared, - wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name, - int *attribList, - const wxPalette& palette ) -{ - Create( parent, shared, id, pos, size, style, name, attribList, palette ); -} - -bool wxGLCanvas::Create( wxWindow *parent, - const wxGLContext *shared, - wxWindowID id, - const wxPoint& pos, const wxSize& size, - long style, const wxString& name, - int *attribList, - const wxPalette& palette) -{ - if (!attribList) - { - int data[] = { GLX_RGBA, - GLX_DOUBLEBUFFER, - GLX_DEPTH_SIZE, 1, /* use largest available depth buffer */ - None }; - attribList = (int*) data; - printf( "using default values\n" ); - } - else - { - int data[512], arg=0, p=0; - - while( (attribList[arg]!=0) && (p<512) ) - { - switch( attribList[arg++] ) - { - case WX_GL_RGBA: data[p++] = GLX_RGBA; break; - case WX_GL_DOUBLEBUFFER: data[p++] = GLX_DOUBLEBUFFER; break; - case WX_GL_DEPTH_SIZE: - data[p++]=GLX_DEPTH_SIZE; data[p++]=attribList[arg++]; break; - case WX_GL_MIN_RED: - data[p++]=GLX_RED_SIZE; data[p++]=attribList[arg++]; break; - case WX_GL_MIN_GREEN: - data[p++]=GLX_GREEN_SIZE; data[p++]=attribList[arg++]; break; - case WX_GL_MIN_BLUE: - data[p++]=GLX_BLUE_SIZE; data[p++]=attribList[arg++]; break; - default: - break; - } - } - data[p] = 0; - - attribList = (int*) data; - } - - Display *dpy = GDK_DISPLAY(); - - g_vi = glXChooseVisual( dpy, DefaultScreen(dpy), attribList ); - - GdkVisual *visual = gdkx_visual_get( g_vi->visualid ); - GdkColormap *colormap = gdk_colormap_new( gdkx_visual_get(g_vi->visualid), TRUE ); - - gtk_widget_push_colormap( colormap ); - gtk_widget_push_visual( visual ); - - m_glWidget = gtk_myfixed_new(); - - gtk_widget_pop_visual(); - gtk_widget_pop_colormap(); - - wxScrolledWindow::Create( parent, id, pos, size, style, name ); - - GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - GTK_WIDGET_SET_FLAGS( m_glWidget, GTK_CAN_FOCUS ); - - gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), m_glWidget, 0, 0, m_width, m_height ); - - gtk_signal_connect( GTK_OBJECT(m_glWidget), "expose_event", - GTK_SIGNAL_FUNC(gtk_window_expose_callback), (gpointer)this ); - - gtk_signal_connect( GTK_OBJECT(m_glWidget), "draw", - GTK_SIGNAL_FUNC(gtk_window_draw_callback), (gpointer)this ); - - /* connect to key press and mouse handlers etc. */ - ConnectWidget( m_glWidget ); - - - /* must be realized for OpenGl output */ - gtk_widget_realize( m_glWidget ); - - gtk_widget_show( m_glWidget ); - - m_glContext = new wxGLContext( TRUE, this, palette, shared ); - - XFree( g_vi ); - g_vi = (XVisualInfo*) NULL; - - gdk_window_set_back_pixmap( m_glWidget->window, None, 0 ); - - return TRUE; -} - -wxGLCanvas::~wxGLCanvas() -{ - if (m_glContext) delete m_glContext; -} - -void wxGLCanvas::SwapBuffers() -{ - if (m_glContext) m_glContext->SwapBuffers(); -} - -void wxGLCanvas::OnSize(wxSizeEvent& WXUNUSED(event)) -{ - int width, height; - GetClientSize( &width, &height ); - if (m_glContext && GTK_WIDGET_REALIZED(m_glWidget) ) - { - SetCurrent(); -// gdk_window_set_back_pixmap( gtk_widget_get_parent_window(m_glWidget), None, 0 ); - - glViewport(0, 0, (GLint)width, (GLint)height ); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 15.0 ); - glMatrixMode(GL_MODELVIEW); - } -} - -void wxGLCanvas::SetCurrent() -{ - if (m_glContext) m_glContext->SetCurrent(); -} - -void wxGLCanvas::SetColour( const char *colour ) -{ - if (m_glContext) m_glContext->SetColour( colour ); -} - -void wxGLCanvas::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - if (m_resizing) return; // I don't like recursions - m_resizing = TRUE; - - if (m_parent->m_wxwindow == NULL) // i.e. wxNotebook - { - // don't set the size for children of wxNotebook, just take the values. - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - else - { - int old_width = m_width; - int old_height = m_height; - - if ((sizeFlags & wxSIZE_ALLOW_MINUS_ONE) == 0) - { - if (x != -1) m_x = x; - if (y != -1) m_y = y; - if (width != -1) m_width = width; - if (height != -1) m_height = height; - } - else - { - m_x = x; - m_y = y; - m_width = width; - m_height = height; - } - - if ((sizeFlags & wxSIZE_AUTO_WIDTH) == wxSIZE_AUTO_WIDTH) - { - if (width == -1) m_width = 80; - } - - if ((sizeFlags & wxSIZE_AUTO_HEIGHT) == wxSIZE_AUTO_HEIGHT) - { - if (height == -1) m_height = 26; - } - - if ((m_minWidth != -1) && (m_width < m_minWidth)) m_width = m_minWidth; - if ((m_minHeight != -1) && (m_height < m_minHeight)) m_height = m_minHeight; - if ((m_maxWidth != -1) && (m_width > m_maxWidth)) m_width = m_maxWidth; - if ((m_maxHeight != -1) && (m_height > m_maxHeight)) m_height = m_maxHeight; - - gtk_myfixed_set_size( GTK_MYFIXED(m_parent->m_wxwindow), - m_widget, - m_x, - m_y, - m_width, - m_height ); - - gtk_myfixed_set_size( GTK_MYFIXED(m_wxwindow), - m_glWidget, - m_x, - m_y, - m_width, - m_height ); - } - - m_sizeSet = TRUE; - - wxSizeEvent event( wxSize(m_width,m_height), GetId() ); - event.SetEventObject( this ); - GetEventHandler()->ProcessEvent( event ); - - m_resizing = FALSE; -} - -GtkWidget *wxGLCanvas::GetConnectWidget() -{ - return m_glWidget; -} - -bool wxGLCanvas::IsOwnGtkWindow( GdkWindow *window ) -{ - return (window == m_glWidget->window); -} diff --git a/utils/glcanvas/gtk/glcanvas.h b/utils/glcanvas/gtk/glcanvas.h deleted file mode 100644 index 837d92f3c5..0000000000 --- a/utils/glcanvas/gtk/glcanvas.h +++ /dev/null @@ -1,146 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.h -// Purpose: wxGLCanvas, for using OpenGL/Mesa with wxWindows and GTK -// Author: Robert Roebling -// Modified by: -// Created: 17/8/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "glcanvas.h" -#endif - -#ifndef _WX_GLCANVAS_H_ -#define _WX_GLCANVAS_H_ - -#include "wx/defs.h" -#include "wx/scrolwin.h" - -extern "C" { -#include "GL/gl.h" -#include "GL/glx.h" -#include "GL/glu.h" -} - -//--------------------------------------------------------------------------- -// Constants for attriblist -//--------------------------------------------------------------------------- - -enum -{ - WX_GL_RGBA=1, /* use true color palette */ - WX_GL_DEPTH_SIZE, /* bits for Z-buffer (0,16,32) */ - WX_GL_DOUBLEBUFFER, /* use doublebuffer */ - WX_GL_MIN_RED, /* use red buffer with most bits (> MIN_RED bits) */ - WX_GL_MIN_GREEN, /* use green buffer with most bits (> MIN_GREEN bits) */ - WX_GL_MIN_BLUE /* use blue buffer with most bits (> MIN_BLUE bits) */ -/* these are enough constants for now, the remaining will be added later */ -}; - -//--------------------------------------------------------------------------- -// classes -//--------------------------------------------------------------------------- - -class wxGLContext; -class wxGLCanvas; - -//--------------------------------------------------------------------------- -// wxGLContext -//--------------------------------------------------------------------------- - - -class wxGLContext: public wxObject -{ - DECLARE_CLASS(wxGLContext) - - public: - - wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette ); - wxGLContext( - bool WXUNUSED(isRGB), wxWindow *win, - const wxPalette& WXUNUSED(palette), - const wxGLContext *other /* for sharing display lists */ - ); - ~wxGLContext(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - - void SetupPixelFormat(); - void SetupPalette(const wxPalette& palette); - wxPalette CreateDefaultPalette(); - - inline wxPalette* GetPalette() const { return (wxPalette*) & m_palette; } - inline wxWindow* GetWindow() const { return m_window; } - inline GtkWidget* GetWidget() const { return m_widget; } - inline GLXContext GetContext() const { return m_glContext; } - - public: - - GLXContext m_glContext; - - GtkWidget *m_widget; - wxPalette m_palette; - wxWindow* m_window; -}; - -//--------------------------------------------------------------------------- -// wxGLContext -//--------------------------------------------------------------------------- - -class wxGLCanvas: public wxScrolledWindow -{ - DECLARE_CLASS(wxGLCanvas) - - public: - wxGLCanvas( wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "GLCanvas", - int *attribList = (int*) NULL, - const wxPalette& palette = wxNullPalette ); - wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "GLCanvas", - int *attribList = (int*) NULL, - const wxPalette& palette = wxNullPalette ); - - bool Create( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, - wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "GLCanvas", - int *attribList = (int*) NULL, - const wxPalette& palette = wxNullPalette ); - - ~wxGLCanvas(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - - void OnSize(wxSizeEvent& event); - - inline wxGLContext* GetContext() const { return m_glContext; } - - // implementation - - virtual void DoSetSize( int x, int y, int width, int height, - int sizeFlags = wxSIZE_AUTO ); - - virtual GtkWidget *GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - - wxGLContext *m_glContext; - GtkWidget *m_glWidget; - - DECLARE_EVENT_TABLE() -}; - -#endif diff --git a/utils/glcanvas/motif/glcanvas.cpp b/utils/glcanvas/motif/glcanvas.cpp deleted file mode 100644 index 0933fb73bf..0000000000 --- a/utils/glcanvas/motif/glcanvas.cpp +++ /dev/null @@ -1,161 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.cpp -// Purpose: wxGLCanvas, for using OpenGL with wxWindows 2.0 for Motif. -// Uses the GLX extension. -// Author: Julian Smart and Wolfram Gloger -// Modified by: -// Created: 1995, 1999 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart, Wolfram Gloger -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "glcanvas.h" -#endif - -#include "glcanvas.h" -#include "wx/utils.h" -#include "wx/app.h" - -#include -#include "wx/motif/private.h" - -#ifdef OLD_MESA -// workaround for bug in Mesa's glx.c -static int bitcount( unsigned long n ) -{ - int bits; - for (bits=0; n>0;) { - if(n & 1) bits++; - n = n >> 1; - } - return bits; -} -#endif - -/* - * GLCanvas implementation - */ - -IMPLEMENT_CLASS(wxGLCanvas, wxScrolledWindow) - -wxGLCanvas::wxGLCanvas(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos, - const wxSize& size, long style, - const wxString& name, int *attrib_list, const wxPalette& palette): - wxScrolledWindow(parent, id, pos, size, style, name) -{ - XVisualInfo *vi, vi_templ; - XWindowAttributes xwa; - int val, n; - - Display* display = (Display*) GetXDisplay(); - - glx_cx = 0; - // Check for the presence of the GLX extension - if(!glXQueryExtension(display, NULL, NULL)) { - wxDebugMsg("wxGLCanvas: GLX extension is missing\n"); - return; - } - - if(attrib_list) { - // Get an appropriate visual - vi = glXChooseVisual(display, DefaultScreen(display), attrib_list); - if(!vi) return; - - // Here we should make sure that vi is the same visual as the - // one used by the xwindow drawable in wxCanvas. However, - // there is currently no mechanism for this in wx_canvs.cc. - } else { - // By default, we use the visual of xwindow - XGetWindowAttributes(display, (Window) GetXWindow(), &xwa); - vi_templ.visualid = XVisualIDFromVisual(xwa.visual); - vi = XGetVisualInfo(display, VisualIDMask, &vi_templ, &n); - if(!vi) return; - glXGetConfig(display, vi, GLX_USE_GL, &val); - if(!val) return; - // Basically, this is it. It should be possible to use vi - // in glXCreateContext() below. But this fails with Mesa. - // I notified the Mesa author about it; there may be a fix. -#ifdef OLD_MESA - // Construct an attribute list matching the visual - int a_list[32]; - n = 0; - if(vi->c_class==TrueColor || vi->c_class==DirectColor) { // RGBA visual - a_list[n++] = GLX_RGBA; - a_list[n++] = GLX_RED_SIZE; - a_list[n++] = bitcount(vi->red_mask); - a_list[n++] = GLX_GREEN_SIZE; - a_list[n++] = bitcount(vi->green_mask); - a_list[n++] = GLX_BLUE_SIZE; - a_list[n++] = bitcount(vi->blue_mask); - glXGetConfig(display, vi, GLX_ALPHA_SIZE, &val); - a_list[n++] = GLX_ALPHA_SIZE; - a_list[n++] = val; - } else { // Color index visual - glXGetConfig(display, vi, GLX_BUFFER_SIZE, &val); - a_list[n++] = GLX_BUFFER_SIZE; - a_list[n++] = val; - } - a_list[n] = None; - XFree(vi); - vi = glXChooseVisual(display, DefaultScreen(display), a_list); - if(!vi) return; -#endif /* OLD_MESA */ - } - - // Create the GLX context and make it current - glx_cx = glXCreateContext(display, vi, 0, GL_TRUE); -#ifndef OLD_MESA - XFree(vi); -#endif - SetCurrent(); -} - -wxGLCanvas::~wxGLCanvas(void) -{ - Display* display = (Display*) GetXDisplay(); - if(glx_cx) glXDestroyContext(display, glx_cx); -} - -void wxGLCanvas::SwapBuffers() -{ - Display* display = (Display*) GetXDisplay(); - if(glx_cx) glXSwapBuffers(display, (Window) GetXWindow()); -} - -void wxGLCanvas::SetCurrent() -{ - Display* display = (Display*) GetXDisplay(); - if(glx_cx) glXMakeCurrent(display, (Window) GetXWindow(), glx_cx); -} - -void wxGLCanvas::SetColour(const char *col) -{ - wxColour *the_colour = wxTheColourDatabase->FindColour(col); - if(the_colour) { - GLboolean b; - glGetBooleanv(GL_RGBA_MODE, &b); - if(b) { - glColor3ub(the_colour->Red(), - the_colour->Green(), - the_colour->Blue()); - } else { - GLint pix = (GLint)the_colour->m_pixel; - if(pix == -1) { - XColor exact_def; - exact_def.red = (unsigned short)the_colour->Red() << 8; - exact_def.green = (unsigned short)the_colour->Green() << 8; - exact_def.blue = (unsigned short)the_colour->Blue() << 8; - exact_def.flags = DoRed | DoGreen | DoBlue; - if(!XAllocColor((Display*) GetXDisplay(), (Colormap) wxTheApp->GetMainColormap(GetXDisplay()), &exact_def)) { - wxDebugMsg("wxGLCanvas: cannot allocate color\n"); - return; - } - pix = the_colour->m_pixel = exact_def.pixel; - } - glIndexi(pix); - } - } -} - diff --git a/utils/glcanvas/motif/glcanvas.h b/utils/glcanvas/motif/glcanvas.h deleted file mode 100644 index ee4afde5fc..0000000000 --- a/utils/glcanvas/motif/glcanvas.h +++ /dev/null @@ -1,44 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.h -// Purpose: wxGLCanvas, for using OpenGL with wxWindows 2.0 for Motif. -// Uses the GLX extension. -// Author: Julian Smart and Wolfram Gloger -// Modified by: -// Created: 1995, 1999 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart, Wolfram Gloger -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "glcanvas.h" -#endif - -#ifndef _WX_GLCANVAS_H_ -#define _WX_GLCANVAS_H_ - -#include "wx/setup.h" -#include "wx/gdicmn.h" -#include "wx/palette.h" -#include "wx/scrolwin.h" - -#include - -class wxGLCanvas: public wxScrolledWindow -{ -DECLARE_CLASS(wxGLCanvas) -public: - GLXContext glx_cx; - - wxGLCanvas(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette); - ~wxGLCanvas(void); - - void SetCurrent(); - void SwapBuffers(); - void SetColour(const char *col); -}; - -#endif - // _WX_GLCANVAS_H_ diff --git a/utils/glcanvas/motif/makefile.unx b/utils/glcanvas/motif/makefile.unx deleted file mode 100644 index 90090c9ea2..0000000000 --- a/utils/glcanvas/motif/makefile.unx +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julia`n Smart -# -# "%W% %G%" -# -# Makefile for wxGLCanvas (Unix) - -LIBTARGET=$(WXWIN)/lib/libglcanvas -OPENGLHOME=/home/jacs/mesa/Mesa-2.3 - -EXTRACPPFLAGS=-I$(OPENGLHOME)/include - -OBJECTS=glcanvas.o - -include ../../../src/makelib.env - diff --git a/utils/glcanvas/motif/readme.txt b/utils/glcanvas/motif/readme.txt deleted file mode 100644 index 5771811049..0000000000 --- a/utils/glcanvas/motif/readme.txt +++ /dev/null @@ -1,52 +0,0 @@ -GLCanvas class for wxWindows 1.66 using the GLX protocol extension -================================================================== - -I have just uploaded a file 'wx166glx.tar.gz' to the wxWindows -incoming directory. It contains an implementation of a GLCanvas class -(interfacing an ordinary wxCanvas with OpenGL calls) for X11 (I tested -with Motif, maybe it works with XView as well). I tried to imitate -what Julian did in 'wxmesa1.zip' for MS Windows in conjunction with -the Mesa library. - -Of the several possibilities to use OpenGL under X11, I chose the GLX -server extension, because it is the most efficient method on machines -with graphics hardware support (I expect wxWindows/OpenGL applications -to _fly_ on my Indy :-). However, you don't need a 'real' OpenGL -implementation to use GLCanvas -- the free Mesa library has a -simulated GLX interface built-in. Just link in libMesaGLU and -libMesaGL along with libwx_motif and everything should work fine. - -Installation: - -Untar wx166glx.tar.gz from your main wxWindows directory (i.e. where -the `include' and `src' subdirectories are). Then apply the small -patch file which has appeared in the `glx' subdirectory: - -% patch -p0 < glx/wx166-glx.diff - -Recompile the wx_motif library in the standard way. The inclusion of -the GLCanvas class in libwx_motif is protected with a new 'USE_GLX' -flag in wx_setup.h, so it could maybe be included in a future -wxWindows release (with USE_GLX turned off by default). - -Two new samples (bounce and prim) are included. I adapted them from -wxmesa1.zip -- they should compile under both MS Windows (with wxMesa) -and X11. The makefile.unx's are set up for the Mesa libraries; if you -have original libGLU/libGL's just change the GLLIBS = ... line. - -Problems: - -One more or less serious problem remains: the visual generated by the -GLCanvas class must match the visual of wxCanvas.xwindow (which -currently is always the screen's default visual). The end result is -that you will get a nice RGB mode for OpenGL only if your display's -default visual is TrueColor or DirectColor (the XFree86 S3 servers for -PCs with the '-bpp 16/32' option are examples). I'm contemplating a -solution where the wxCanvas drawingarea widget is destroyed and then -re-created from within the GLCanvas constructor. I would welcome -suggestions on this and discussions of the GLCanvas 'API'. - -Regards, - -Wolfram Gloger. -(Gloger@lrz.uni-muenchen.de) diff --git a/utils/glcanvas/samples/cube/Makefile b/utils/glcanvas/samples/cube/Makefile deleted file mode 100644 index 6e852b2dd4..0000000000 --- a/utils/glcanvas/samples/cube/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -# -# File: Makefile -# Author: Robert Roebling -# Created: 1999 -# Updated: -# Copyright: (c) 1998 Robert Roebling -# -# Makefile for OpenGl demo (GTK version) -# -# This makefile requires wxWindows/GTK to be -# installed (possibly using "make install") -# on your system. -# - -CC = g++ - -cube: cube.o glcanvas.o - $(CC) -o cube \ - cube.o glcanvas.o \ - `wx-config --libs` -lMesaGL -lMesaGLU - -cube.o: cube.cpp - $(CC) `wx-config --cflags` -I../../gtk -c cube.cpp - -glcanvas.o: ../../gtk/glcanvas.cpp - $(CC) `wx-config --cflags` `gtk-config --cflags` -I../../gtk -c ../../gtk/glcanvas.cpp - -clean: - rm -f *.o cube diff --git a/utils/glcanvas/samples/cube/cube.cpp b/utils/glcanvas/samples/cube/cube.cpp deleted file mode 100644 index ccc6834c1f..0000000000 --- a/utils/glcanvas/samples/cube/cube.cpp +++ /dev/null @@ -1,500 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cube.cpp -// Purpose: wxGLCanvas demo program -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "wx/log.h" - -#include "cube.h" - -#ifndef __WXMSW__ // for wxStopWatch, see remark below -#include -#include -#else -#include -#endif - -#define ID_NEW_WINDOW 10000 -#define ID_DEF_ROTATE_LEFT_KEY 10001 -#define ID_DEF_ROTATE_RIGHT_KEY 10002 - -/*---------------------------------------------------------- - Control to get a keycode - ----------------------------------------------------------*/ -class ScanCodeCtrl : public wxTextCtrl -{ -public: - ScanCodeCtrl( wxWindow* parent, wxWindowID id, int code, - const wxPoint& pos, const wxSize& size ); - void OnChar( wxKeyEvent& event ) { } /* do nothing */ - void OnKeyDown(wxKeyEvent& event); -private: -// any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; -BEGIN_EVENT_TABLE( ScanCodeCtrl, wxTextCtrl ) - EVT_CHAR( ScanCodeCtrl::OnChar ) - EVT_KEY_DOWN( ScanCodeCtrl::OnKeyDown ) -END_EVENT_TABLE() - -ScanCodeCtrl::ScanCodeCtrl( wxWindow* parent, wxWindowID id, int code, - const wxPoint& pos, const wxSize& size ) - : wxTextCtrl( parent, id, "", pos, size ) -{ wxString buf; - buf.Printf( "0x%04x", code ); - SetValue( buf ); -} - -void ScanCodeCtrl::OnKeyDown( wxKeyEvent& event ) -{ wxString buf; - buf.Printf( "0x%04x", event.KeyCode() ); - SetValue( buf ); -} - -/*------------------------------------------------------------------ - Dialog for defining a keypress --------------------------------------------------------------------*/ -class ScanCodeDialog : public wxDialog -{ -public: - ScanCodeDialog( wxWindow* parent, wxWindowID id, const int code, - const wxString &descr, const wxString& title ); - int GetValue(); -private: - ScanCodeCtrl *m_ScanCode; - wxTextCtrl *m_Description; -// any class wishing to process wxWindows events must use this macro - DECLARE_EVENT_TABLE() -}; - -BEGIN_EVENT_TABLE( ScanCodeDialog, wxDialog ) -// -END_EVENT_TABLE() - -/* ---------------------------------------------------------------- */ - -ScanCodeDialog::ScanCodeDialog( wxWindow* parent, wxWindowID id, - const int code, const wxString &descr, const wxString& title ) - : wxDialog( parent, id, title, wxPoint(-1, -1), wxSize(96*2,76*2) ) -{ - new wxStaticText( this, -1, "Scancode", wxPoint(4*2,3*2), - wxSize(31*2,12*2) ); - m_ScanCode = new ScanCodeCtrl( this, -1, code, wxPoint(37*2,6*2), - wxSize(53*2,14*2) ); - - new wxStaticText( this, -1, "Description", wxPoint(4*2,24*2), - wxSize(32*2,12*2) ); - m_Description = new wxTextCtrl( this, -1, descr, wxPoint(37*2,27*2), - wxSize(53*2,14*2) ); - - new wxButton( this, wxID_OK, "Ok", wxPoint(20*2,50*2), wxSize(20*2,13*2) ); - new wxButton( this, wxID_CANCEL, "Cancel", wxPoint(44*2,50*2), - wxSize(25*2,13*2) ); -} - -int ScanCodeDialog::GetValue() -{ - int code; - wxString buf = m_ScanCode->GetValue(); - sscanf( buf.c_str(), "%i", &code ); - return( code ); -} - -/*---------------------------------------------------------------------- - Utility function to get the elapsed time (in msec) since a given point - in time (in sec) (because current version of wxGetElapsedTime doesn´t - works right with glibc-2.1 and linux, at least for me) ------------------------------------------------------------------------*/ -unsigned long wxStopWatch( unsigned long *sec_base ) -{ - unsigned long secs,msec; - -#ifndef __WXMSW__ // think every unice has gettimeofday - struct timeval tv; - gettimeofday( &tv, (struct timezone *)NULL ); - secs = tv.tv_sec; - msec = tv.tv_usec/1000; -#else - struct timeb tb; - ftime( &tb ); - secs = tb.time; - msec = tb.millitm; -#endif - - if( *sec_base == 0 ) - *sec_base = secs; - - return( (secs-*sec_base)*1000 + msec ); -} - -/*---------------------------------------------------------------- - Implementation of Test-GLCanvas ------------------------------------------------------------------*/ - -BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas) - EVT_SIZE(TestGLCanvas::OnSize) - EVT_PAINT(TestGLCanvas::OnPaint) - EVT_ERASE_BACKGROUND(TestGLCanvas::OnEraseBackground) - EVT_KEY_DOWN( TestGLCanvas::OnKeyDown ) - EVT_KEY_UP( TestGLCanvas::OnKeyUp ) - EVT_ENTER_WINDOW( TestGLCanvas::OnEnterWindow ) -END_EVENT_TABLE() - -unsigned long TestGLCanvas::m_secbase = 0; -int TestGLCanvas::m_TimeInitialized = 0; -unsigned long TestGLCanvas::m_xsynct; -unsigned long TestGLCanvas::m_gsynct; - - -TestGLCanvas::TestGLCanvas(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, const wxString& name): - wxGLCanvas(parent, NULL, id, pos, size, style, name ) -{ - m_init = FALSE; - m_gllist = 0; - m_rleft = WXK_LEFT; - m_rright = WXK_RIGHT; -} -TestGLCanvas::TestGLCanvas(wxWindow *parent, const TestGLCanvas &other, - wxWindowID id, const wxPoint& pos, const wxSize& size, long style, - const wxString& name ) : - wxGLCanvas(parent, other.GetContext(), id, pos, size, style, name ) -{ - m_init = FALSE; - m_gllist = other.m_gllist; /* share display list */ - m_rleft = WXK_LEFT; - m_rright = WXK_RIGHT; -} -TestGLCanvas::~TestGLCanvas(void) -{ -} - -void TestGLCanvas::Render( void ) -{ - wxPaintDC dc(this); - -#ifndef __WXMOTIF__ - if (!GetContext()) return; -#endif - SetCurrent(); - /* init OpenGL once, but after SetCurrent */ - if (!m_init) - { - InitGL(); - m_init = TRUE; - } - /* clear color and depth buffers */ - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - if( m_gllist == 0 ) - { - m_gllist = glGenLists( 1 ); - printf( "List=%d\n", m_gllist ); - glNewList( m_gllist, GL_COMPILE_AND_EXECUTE ); - /* draw six faces of a cube */ - glBegin(GL_QUADS); - glNormal3f( 0.0F, 0.0F, 1.0F); - glVertex3f( 0.5F, 0.5F, 0.5F); glVertex3f(-0.5F, 0.5F, 0.5F); - glVertex3f(-0.5F,-0.5F, 0.5F); glVertex3f( 0.5F,-0.5F, 0.5F); - - glNormal3f( 0.0F, 0.0F,-1.0F); - glVertex3f(-0.5F,-0.5F,-0.5F); glVertex3f(-0.5F, 0.5F,-0.5F); - glVertex3f( 0.5F, 0.5F,-0.5F); glVertex3f( 0.5F,-0.5F,-0.5F); - - glNormal3f( 0.0F, 1.0F, 0.0F); - glVertex3f( 0.5F, 0.5F, 0.5F); glVertex3f( 0.5F, 0.5F,-0.5F); - glVertex3f(-0.5F, 0.5F,-0.5F); glVertex3f(-0.5F, 0.5F, 0.5F); - - glNormal3f( 0.0F,-1.0F, 0.0F); - glVertex3f(-0.5F,-0.5F,-0.5F); glVertex3f( 0.5F,-0.5F,-0.5F); - glVertex3f( 0.5F,-0.5F, 0.5F); glVertex3f(-0.5F,-0.5F, 0.5F); - - glNormal3f( 1.0F, 0.0F, 0.0F); - glVertex3f( 0.5F, 0.5F, 0.5F); glVertex3f( 0.5F,-0.5F, 0.5F); - glVertex3f( 0.5F,-0.5F,-0.5F); glVertex3f( 0.5F, 0.5F,-0.5F); - - glNormal3f(-1.0F, 0.0F, 0.0F); - glVertex3f(-0.5F,-0.5F,-0.5F); glVertex3f(-0.5F,-0.5F, 0.5F); - glVertex3f(-0.5F, 0.5F, 0.5F); glVertex3f(-0.5F, 0.5F,-0.5F); - glEnd(); - - glEndList(); - } - else - glCallList( m_gllist ); - - glFlush(); - SwapBuffers(); -} - -void TestGLCanvas::OnEnterWindow( wxMouseEvent& event ) -{ - SetFocus(); -} - -void TestGLCanvas::OnPaint( wxPaintEvent& event ) -{ - Render(); -} - -void TestGLCanvas::OnSize(wxSizeEvent& event) -{ - int width, height; - GetClientSize(& width, & height); - -#ifndef __WXMOTIF__ - if (GetContext()) -#endif - { - SetCurrent(); - glViewport(0, 0, width, height); - } -} - -void TestGLCanvas::OnEraseBackground(wxEraseEvent& event) -{ - // Do nothing, to avoid flashing. -} - -void TestGLCanvas::InitGL(void) -{ - SetCurrent(); - - /* set viewing projection */ - glMatrixMode(GL_PROJECTION); - glFrustum(-0.5F, 0.5F, -0.5F, 0.5F, 1.0F, 3.0F); - - /* position viewer */ - glMatrixMode(GL_MODELVIEW); - glTranslatef(0.0F, 0.0F, -2.0F); - - /* position object */ - glRotatef(30.0F, 1.0F, 0.0F, 0.0F); - glRotatef(30.0F, 0.0F, 1.0F, 0.0F); - - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); -} - -GLfloat TestGLCanvas::CalcRotateSpeed( unsigned long acceltime ) -{ - GLfloat t,v; - - t = ((GLfloat)acceltime) / 1000.0f; - - if( t < 0.5f ) - v = t; - else if( t < 1.0f ) - v = t * (2.0f - t); - else - v = 0.75f; - - return(v); -} -GLfloat TestGLCanvas::CalcRotateAngle( unsigned long lasttime, - unsigned long acceltime ) -{ - GLfloat t,s1,s2; - - t = ((GLfloat)(acceltime - lasttime)) / 1000.0f; - s1 = CalcRotateSpeed( lasttime ); - s2 = CalcRotateSpeed( acceltime ); - return( t * (s1 + s2) * 135.0f ); -} -void TestGLCanvas::Action( long code, unsigned long lasttime, - unsigned long acceltime ) -{ - GLfloat angle = CalcRotateAngle( lasttime, acceltime ); - - if( code == m_rleft ) Rotate( angle ); - else if( code == m_rright ) Rotate( -angle ); -} - -void TestGLCanvas::OnKeyDown( wxKeyEvent& event ) -{ - long evkey = event.KeyCode(); - if( evkey == 0 ) return; - - if( !m_TimeInitialized ) - { - m_TimeInitialized = 1; - m_xsynct = event.m_timeStamp; - m_gsynct = wxStopWatch(&m_secbase); - - m_Key = evkey; - m_StartTime = 0; - m_LastTime = 0; - m_LastRedraw = 0; - } - - unsigned long currTime = event.m_timeStamp - m_xsynct; - - if( evkey != m_Key ) - { - m_Key = evkey; - m_LastRedraw = m_StartTime = m_LastTime = currTime; - } - - if( currTime >= m_LastRedraw ) // Redraw: - { - Action( m_Key, m_LastTime-m_StartTime, currTime-m_StartTime ); - - m_LastRedraw = wxStopWatch(&m_secbase) - m_gsynct; - m_LastTime = currTime; - } -} - -void TestGLCanvas::OnKeyUp( wxKeyEvent& event ) -{ - m_Key = 0; - m_StartTime = 0; - m_LastTime = 0; - m_LastRedraw = 0; -} - -void TestGLCanvas::Rotate( GLfloat deg ) -{ - SetCurrent(); - - glMatrixMode(GL_MODELVIEW); - glRotatef((GLfloat)deg, 0.0F, 0.0F, 1.0F); - Refresh(FALSE); -} - - -/* ----------------------------------------------------------------------- - Main Window --------------------------------------------------------------------------*/ - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(wxID_EXIT, MyFrame::OnExit) - EVT_MENU( ID_NEW_WINDOW, MyFrame::OnNewWindow) - EVT_MENU( ID_DEF_ROTATE_LEFT_KEY, MyFrame::OnDefRotateLeftKey) - EVT_MENU( ID_DEF_ROTATE_RIGHT_KEY, MyFrame::OnDefRotateRightKey) -END_EVENT_TABLE() - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, - const wxSize& size, long style) - : wxFrame(frame, -1, title, pos, size, style) -{ - m_canvas = NULL; -} - -// Intercept menu commands -void MyFrame::OnExit(wxCommandEvent& event) -{ - Destroy(); -} - -void MyFrame::OnNewWindow() -{ - MyFrame *frame = new MyFrame(NULL, "Cube OpenGL Demo Clone", - wxPoint(50, 50), wxSize(400, 300)); - // Give it an icon -#ifdef wx_msw - frame->SetIcon(wxIcon("mondrian")); -#endif - - // Make a menubar - wxMenu *winMenu = new wxMenu; - - winMenu->Append(wxID_EXIT, "&Close"); - winMenu->Append(ID_NEW_WINDOW, "&New" ); - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(winMenu, "&Window"); - - winMenu = new wxMenu; - winMenu->Append(ID_DEF_ROTATE_LEFT_KEY, "Rotate &left"); - winMenu->Append(ID_DEF_ROTATE_RIGHT_KEY, "Rotate &right"); - menuBar->Append(winMenu, "&Key"); - - frame->SetMenuBar(menuBar); - - frame->m_canvas = new TestGLCanvas( frame, *m_canvas, -1, - wxPoint(0, 0), wxSize(200, 200) ); - - // Show the frame - frame->Show(TRUE); -} - -void MyFrame::OnDefRotateLeftKey() -{ - ScanCodeDialog dial( this, -1, m_canvas->m_rleft, - wxString("Left"), "Define key" ); - int result = dial.ShowModal(); - if( result == wxID_OK ) - m_canvas->m_rleft = dial.GetValue(); -} -void MyFrame::OnDefRotateRightKey() -{ - ScanCodeDialog dial( this, -1, m_canvas->m_rright, - wxString("Right"), "Define key" ); - int result = dial.ShowModal(); - if( result == wxID_OK ) - m_canvas->m_rright = dial.GetValue(); -} - -/*------------------------------------------------------------------ - Application object ( equivalent to main() ) ------------------------------------------------------------------- */ - -IMPLEMENT_APP(MyApp) - -bool MyApp::OnInit(void) -{ - wxLog::SetTraceMask(wxTraceMessages); - - // Create the main frame window - MyFrame *frame = new MyFrame(NULL, "Cube OpenGL Demo", wxPoint(50, 50), - wxSize(400, 300)); - // Give it an icon -#ifdef wx_msw - frame->SetIcon(wxIcon("mondrian")); -#endif - - // Make a menubar - wxMenu *winMenu = new wxMenu; - - winMenu->Append(wxID_EXIT, "&Close"); - winMenu->Append(ID_NEW_WINDOW, "&New" ); - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(winMenu, "&Window"); - - winMenu = new wxMenu; - winMenu->Append(ID_DEF_ROTATE_LEFT_KEY, "Rotate &left"); - winMenu->Append(ID_DEF_ROTATE_RIGHT_KEY, "Rotate &right"); - menuBar->Append(winMenu, "&Key"); - - frame->SetMenuBar(menuBar); - - frame->m_canvas = new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200)); - - // Show the frame - frame->Show(TRUE); - - return TRUE; -} diff --git a/utils/glcanvas/samples/cube/cube.h b/utils/glcanvas/samples/cube/cube.h deleted file mode 100644 index ecbabfb177..0000000000 --- a/utils/glcanvas/samples/cube/cube.h +++ /dev/null @@ -1,93 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cube.h -// Purpose: wxGLCanvas demo program -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_CUBE_H_ -#define _WX_CUBE_H_ - -#include "glcanvas.h" - -// Define a new application type -class MyApp: public wxApp -{ -public: - bool OnInit(void); -}; - -// Define a new frame type -class TestGLCanvas; -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, - const wxSize& size, long style = wxDEFAULT_FRAME_STYLE); - - void OnExit(wxCommandEvent& event); - void OnNewWindow(); - void OnDefRotateLeftKey(); - void OnDefRotateRightKey(); - -public: - TestGLCanvas* m_canvas; - -DECLARE_EVENT_TABLE() -}; - -class TestGLCanvas: public wxGLCanvas -{ - friend class MyFrame; -public: - TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "TestGLCanvas"); - TestGLCanvas(wxWindow *parent, const TestGLCanvas &other, - const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = "TestGLCanvas" ); - - ~TestGLCanvas(void); - - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void OnKeyDown(wxKeyEvent& event); - void OnKeyUp(wxKeyEvent& event); - void OnEnterWindow( wxMouseEvent& event ); - - void Render( void ); - void InitGL(void); - void Rotate( GLfloat deg ); - static GLfloat CalcRotateSpeed( unsigned long acceltime ); - static GLfloat CalcRotateAngle( unsigned long lasttime, - unsigned long acceltime ); - void Action( long code, unsigned long lasttime, - unsigned long acceltime ); - -private: - bool m_init; - GLuint m_gllist; - long m_rleft; - long m_rright; - - static unsigned long m_secbase; - static int m_TimeInitialized; - static unsigned long m_xsynct; - static unsigned long m_gsynct; - - long m_Key; - unsigned long m_StartTime; - unsigned long m_LastTime; - unsigned long m_LastRedraw; - -DECLARE_EVENT_TABLE() -}; - -#endif - diff --git a/utils/glcanvas/samples/cube/cube.rc b/utils/glcanvas/samples/cube/cube.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/utils/glcanvas/samples/cube/cube.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/utils/glcanvas/samples/cube/makefile.b32 b/utils/glcanvas/samples/cube/makefile.b32 deleted file mode 100644 index d247005826..0000000000 --- a/utils/glcanvas/samples/cube/makefile.b32 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=cube -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/glcanvas/samples/cube/makefile.bcc b/utils/glcanvas/samples/cube/makefile.bcc deleted file mode 100644 index 750206f1f0..0000000000 --- a/utils/glcanvas/samples/cube/makefile.bcc +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=cube -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/utils/glcanvas/samples/cube/makefile.g95 b/utils/glcanvas/samples/cube/makefile.g95 deleted file mode 100644 index 7d4119e5db..0000000000 --- a/utils/glcanvas/samples/cube/makefile.g95 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../../../.. - -TARGET=cube -EXTRACPPFLAGS=-I../../win -EXTRALIBS=-lglcanvas -lopengl32 -lglu32 -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/glcanvas/samples/cube/makefile.unx b/utils/glcanvas/samples/cube/makefile.unx deleted file mode 100644 index 590b54ddd5..0000000000 --- a/utils/glcanvas/samples/cube/makefile.unx +++ /dev/null @@ -1,23 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for cube example (UNIX). - -PROGRAM=cube - -OPENGLHOME=/home/jacs/mesa/Mesa-2.3 - -EXTRACPPFLAGS=-I$(OPENGLHOME)/include -I../../motif -EXTRALDFLAGS=-L$(OPENGLHOME)/lib -EXTRALDLIBS=-lglcanvas_motif -lMesaGL -lMesaGLU - -OBJECTS=$(PROGRAM).o - -include ../../../../src/makeprog.env - diff --git a/utils/glcanvas/samples/cube/makefile.vc b/utils/glcanvas/samples/cube/makefile.vc deleted file mode 100644 index 997616ea30..0000000000 --- a/utils/glcanvas/samples/cube/makefile.vc +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=cube -OBJECTS = $(PROGRAM).obj -EXTRAINC=-I..\..\win -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib - -!include $(WXDIR)\src\makeprog.vc - diff --git a/utils/glcanvas/samples/cube/makefile.wat b/utils/glcanvas/samples/cube/makefile.wat deleted file mode 100644 index 448db542b5..0000000000 --- a/utils/glcanvas/samples/cube/makefile.wat +++ /dev/null @@ -1,17 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = cube -OBJECTS = $(PROGRAM).obj -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/utils/glcanvas/samples/cube/mondrian.ico b/utils/glcanvas/samples/cube/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z -#include - -#include "isosurf.h" - -// The following part is taken largely unchanged from the original C Version - -#include - -GLboolean speed_test = GL_FALSE; -GLboolean use_vertex_arrays = GL_FALSE; - -GLboolean doubleBuffer = GL_TRUE; - -GLboolean smooth = GL_TRUE; -GLboolean lighting = GL_TRUE; - - -#define MAXVERTS 10000 - -static GLfloat verts[MAXVERTS][3]; -static GLfloat norms[MAXVERTS][3]; -static GLint numverts; - -static GLfloat xrot; -static GLfloat yrot; - - -static void read_surface( char *filename ) -{ - FILE *f; - - f = fopen(filename,"r"); - if (!f) { - wxString msg("Couldn't read "); - msg += filename; - wxMessageBox(msg); - return; - } - - numverts = 0; - while (!feof(f) && numvertsSetIcon(wxIcon("mondrian")); - - // Make a menubar - wxMenu *fileMenu = new wxMenu; - - fileMenu->Append(wxID_EXIT, "E&xit"); - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(fileMenu, "&File"); - frame->SetMenuBar(menuBar); - - // Make a TestGLCanvas - - // JACS -#ifdef __WXMSW__ - int *gl_attrib = NULL; -#else - int gl_attrib[20] = { GLX_RGBA, GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, GLX_DEPTH_SIZE, 1, - GLX_DOUBLEBUFFER, None }; -#endif - - if(!doubleBuffer) - { - printf("don't have double buffer, disabling\n"); -#ifdef __WXGTK__ - gl_attrib[9] = None; -#endif - doubleBuffer = GL_FALSE; - } - frame->m_canvas = new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200), 0, "TestGLCanvas", - gl_attrib); - - // Show the frame - frame->Show(TRUE); - - frame->m_canvas->SetCurrent(); - read_surface( "isosurf.dat" ); - - Init(); - - return TRUE; -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(wxID_EXIT, MyFrame::OnExit) -END_EVENT_TABLE() - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, - const wxSize& size, long style): - wxFrame(frame, -1, title, pos, size, style) -{ - m_canvas = NULL; -} - -// Intercept menu commands -void MyFrame::OnExit(wxCommandEvent& event) -{ - Destroy(); -} - -/* - * TestGLCanvas implementation - */ - -BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas) - EVT_SIZE(TestGLCanvas::OnSize) - EVT_PAINT(TestGLCanvas::OnPaint) - EVT_CHAR(TestGLCanvas::OnChar) - EVT_MOUSE_EVENTS(TestGLCanvas::OnMouseEvent) - EVT_ERASE_BACKGROUND(TestGLCanvas::OnEraseBackground) -END_EVENT_TABLE() - -TestGLCanvas::TestGLCanvas(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, const wxString& name, int* gl_attrib): - wxGLCanvas(parent, id, pos, size, style, name, gl_attrib) -{ - parent->Show(TRUE); - SetCurrent(); - /* Make sure server supports the vertex array extension */ - char* extensions = (char *) glGetString( GL_EXTENSIONS ); - if (!extensions || !strstr( extensions, "GL_EXT_vertex_array" )) { - use_vertex_arrays = GL_FALSE; - } -} - - -TestGLCanvas::~TestGLCanvas(void) -{ -} - -void TestGLCanvas::OnPaint( wxPaintEvent& event ) -{ - // This is a dummy, to avoid an endless succession of paint messages. - // OnPaint handlers must always create a wxPaintDC. - wxPaintDC dc(this); - - draw1(); - SwapBuffers(); -} - -void TestGLCanvas::OnSize(wxSizeEvent& event) -{ - SetCurrent(); - int width, height; - GetClientSize(& width, & height); - Reshape(width, height); -} - -void TestGLCanvas::OnChar(wxKeyEvent& event) -{ - switch(event.KeyCode()) { - case WXK_ESCAPE: - exit(0); - case WXK_LEFT: - yrot -= 15.0; - break; - case WXK_RIGHT: - yrot += 15.0; - break; - case WXK_UP: - xrot += 15.0; - break; - case WXK_DOWN: - xrot -= 15.0; - break; - case 's': case 'S': - smooth = !smooth; - if (smooth) { - glShadeModel(GL_SMOOTH); - } else { - glShadeModel(GL_FLAT); - } - break; - case 'l': case 'L': - lighting = !lighting; - if (lighting) { - glEnable(GL_LIGHTING); - } else { - glDisable(GL_LIGHTING); - } - break; - default: - { - event.Skip(); - return; - } - } - - Refresh(FALSE); -} - -void TestGLCanvas::OnMouseEvent(wxMouseEvent& event) -{ - static int dragging = 0; - static float last_x, last_y; - - //printf("%f %f %d\n", event.GetX(), event.GetY(), (int)event.LeftIsDown()); - if(event.LeftIsDown()) { - if(!dragging) { - dragging = 1; - } else { - yrot += (event.GetX() - last_x)*1.0; - xrot += (event.GetY() - last_y)*1.0; - Refresh(FALSE); - } - last_x = event.GetX(); - last_y = event.GetY(); - } else - dragging = 0; -} - -void TestGLCanvas::OnEraseBackground(wxEraseEvent& event) -{ - // Do nothing, to avoid flashing. -} - diff --git a/utils/glcanvas/samples/isosurf/isosurf.dat.gz b/utils/glcanvas/samples/isosurf/isosurf.dat.gz deleted file mode 100644 index c07dc570d26c504f21d610df90b7363ba6027a2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 65537 zcmV(#K;*w4iwFqux5G0418H+_b9HiNE@WYJ0Mz|icJ4fmG>qQoC_Djui=DdpPwd!| z5D_HcotE@e)%o)#_j+v@6dUviO!@z%<9}c2|D`#V;~!;i+xI_y{j(*N7n(`ro-*)_gAG&S%`KR*Bn|)ui^CQ1&KfnLAuk*+c`?8mjUj{$7pLsq0z`@VH&lVie zk>Bj-W;>8&2c6r`T=(mKV*9b+<6us@<9c-bO16E$ej4NB69#_kS_V2SujOUD*PtW6 zG|$61G&_g2+V`znuEY0{U&Xm6N9Xo4Eps0B6YnUX1HZKY?Ak%MwBg*>6?Dhn>iH$N zpZLCF_j+~b_bo8S@594b=i=$|GVq&=eP4F`mVI~pj1J=A;M?Cb@Z zJJd+n@-}`T7MjNkx-9k}mby8HJc-p7SZ&D*c67KgKZLW1!o_w3S9^ho5yIm}cN|x{ zGxDg6<6rwe8|iiFuN&DN4!M%F zrg~`2NzBh}!=qdLbt; zLi-gbJ6O6^Yqfh^=R7;M1!f303h#CezxEW3`hMzcOWtWNlUDei4&>xLwSGZ0f|hSx0$} z_}T}Ty_$>^O>Hhth3ofinXZmj__j2DZ$=n}d39jLT8R`^1UqeCetUq}Mj*CHUOgd?6)Gjw?yiypLRU!5}r&A3dT=;s2a` zTLP}O;FWiIYa?m6O?I>;I@((Of_bvp-{eExbX?_9oR-Y-a2c=*4mQ=@35XPl89NnP7NxY}(B zxiSX3T)qsfgk;X@zWaAW!o9$@ugl1DubyXG>KONhRg>*H?1AE8pmMiRN3oliOk?dL zAND#DlB3zGzjGA(@OyWzfE5DT*+i(`gMAt4zz;T%sj0m+$M3k89bL8SmMxOEQ)DN% z&cy<2c#>uFSN&-uJvq9+MZ_Pj^L2!p{1{rW&w}6)tDWai_JJSi5K+ZN`+j}%$Peor zY;MgEJ&uUG{Y=|_1*c|PUbPL9eR1daw}|+%EP3F^h&Zf0ixj<&h%fH^QkyNZy}EO! zcltCUp7w3vcm4ybQo0$^@Ns~8VDlrP@@f&c>KHapcr!r#Jm~v4Lj92N6M5mMboP&L zg=W$T7BjUd0tC+z%0G1DbCMV&U9bu{YG?5}qfCayGRhTx8x9 zz!ydMG^PAhVLw&8uh;o7g?)?e@zs9yCLZ1G+=;?v9Vx*QYJ+*nhqt?9$zz<&fTqR2 z+D&IRVD~m@IipEmuqY=H;TA#dnVJPER(mDW>tiVWh3VR=BgLm8XER5ix?WdTe89@+ zr`@5l1YGyIj-(BLcr$~=!dxBK{c@?q->nGO?%v&_|{Tg2&5qywV8r1;{!jq4oUeNTY1L9aDFqX1oCM4X*L`f7=}`uLaIFSN~)sS-I@C zS2L27t2r=6+w&RDWk!{?1&vfA1 ziqHR1UNEA=xfnc!m`3JM}?|I3tNsz*#aN%jSuN^Kv(YL~HLd`(MOQr#}9v?e! zMJ^ns9&14uQWUPmVz5Gr!l$*DTLUS$mOYyRjj;3_d~40S`&Mv;jW3E2f_)8kxU6j* z7A)rq2U?7DV`)Y7tuvx0&F%0u7MAr~mv!Vy^O28sK`>sp!fcdugWskl zmtW+Px+VM|(sE)XwXsI=zbV{aFq2-_tOwBntQ21?KNO)baWf{Ygn zep8PjTU@f^if4!F1X@C`$}!SvPsWuq{TSP(0O*qhdQwR(P>)Pf!Rb)33+buOd#)hG zlZ|Wwt)WV00%64kzen>)XlonxSg&z`lo7tHagFM}&=Eq5BFagLn3?C*Zq#)dsi33m zn?Bkd4j&vY8g0x{M$+vN^ylXy)lC)6t=jYI_)6&r^Uoj_*Ess#nl0T()jdJ_@oBpxd%`)%e<_ce)k-dzFZ{ExGy;>N7`-E7hgcDF|L%u@Gy+R@E2C+M)ObnR~M+FZ>Mz#5YR1^sRlu~-W)R##m<@mRHmDfw{uHGNZ za$ek@ZA019*vUC*@CPY-`YkWs%8Rn67t+YZ*?ty0+YZw;WB(hgZC1o6Kq~cjI2=|| zM8%P}i|FRT;Oe+;T(FTwrOo#X1{W*20@twq6w!*$6i068$N|^$s6`nn*Bk^v?-zp3 zWf@6@tB{(}@{yv~CFPFml>S?pZsd2|FY#TLW#p?DD!JD#W#?~7nwM4_Un#@pUfIh# zcXH%=yM%k$9bYXwXZR>xH=~4nZ&IYm%DJ+#3Or(fzZ$ZKNycO$U0yST~~TJX=FD`4I)d@uO2(hk}4}U}cQIFQqJXq{DW=Uh(&n%CybR(RBye^P~Q@&OnwF;{pWVx3=DY z7k+5hZewA}55H|6=}>_MI*%e#cB^{e#?US|cOucP1jE%LNFV6Ko5yk8rPn05G1R1Tb^}0Y0jplCin%dip*D zs+7zx1?Nf1IoFYrNv$!E^0T8Bj1ivpz@(wNxV@Ex<9QZe;{49AWj4RJn!V2EvQx=n zhsJ`J!>1gg(~_r=nwiz>4{1dOC05IHR{2dMA2x?oeIPu*Y6e;#qfS03=TZ4c9mMX= zlSSFJ?bmrS-@#PLueHYqrIm!DL^d%ow0fS{_&OVG2w5fOb^@j(t!wU>PFkDexK7=I ztEDK}OPtqVzjdHpn{89)q#UGsactk!FFhzhdb;R$1xPMvb+Ao%u6P~e5xpxwiaxd= z$Y$zS4tIph>bd@{0BHjRjc~t)>=meNpxleCwqYza&;ARdg_PUz9y9(YHb@GFFAB6V)W#FMDcb_gr1=61je+ z>?tjI*y@$BLU0pR3VfL) zEY?B^hB!TdRIoztXzdV&N(VWOFQupV6k~B6Jc=VbaJhNFNMVwS^=3~oD|z%5MGxp0 zRSM|tVRG(QkcQvK&R#nC~AiO5^U6`n5zE#P;1D>sQ`;TC zzhDeMiv~Z9T0f_IkqUo9`aJFb20Y{iY4QvH8}7(^!kefg-{$P@I3j^z5)pOXiaG+0 zY}Vb!z!xqPT}0yQ>hhf|rrY_>Dqn+6KKE%jhY*6zpk#b5d)UVufuB zSDzN+ydnGHF*AS)0Yc_^W>hQ$HYx~VqtYmTjy*gFzJ01Db=INtOMO;Srp2Utz>^)& ztaq5t;+LK&U7X$oIDS|>S0P=k-v(NlewE;Z@I14*WKtPI`DowDG`esFW@`Xk&!UG) zQgUrUT?jUo=(f!KD+(~`jhh7zNlHkQlssFK&c~TBe$cT!zkg(V6MR_NHeZc`S4LXa z8ofXt7Pc&DVKE95f%w`QoNduIEVD3BHxR)O3*UW=cut}@1%wf1^!JlpJzwGv+glYt z!`XkY&|dM~DY2Ji1VbFZ_b%?S@U5mDr4I!OorSm(5#Rf`$K)%0H)|T#9CcK^!96Bl zZK*1kw87P=K}7on?6Ghalv+Fl^EjhMt{1S!bKPdo6{N`a<9GyY`Ne{TboOA&Acedj z>~Wg|t{Gi+_I@IqW+7dywL-X>IT><|zBT7IoU7a>*mpv@Y^&osxZG2cF1s3j>tc;( zu(WBj@Dd9x>M9lE*@R=%Xj;z*Qg|sQB#^Wpk)Qi&&D^S%|FPx~Nn_y4db!n-gh=Q! z#7y@@*b3D0Zow2270k;=yR0pGR@@<87`Q^3lk2x`waP*?BtqX(xXB*3*_YXY6bmNg z4imA$m88wW#c;u-GO+oR{r+hixx#UzYzw(kbG2lT7VSW|i?U6TqW%#w=Qi2Pqil<~ zDyqT`=nBY13b)`o<=Lt{L|-yOL)`;Ix1u93gb5*E=vwM6<;xn8%?jh;Wrwu<-n{u* zRalPfHI==JvVHB)4Tm8CPoUZFEzv$pR&>i3En&mh#TAISwAZ2bXVMTo-fhHJQ>y68 z-AuGH3r5?qmb^Mz;cI6^B~MSU+M*J#HMa_+l;||2>e=Vjld^mo?i1^%YrxfJlPKs7 zQUtin?4-J$T9opeqGA`3eV$)tk_a)1GRZt5d0S?S>qDej8z#qcJd=~0DIK>c! zh1=7{*b{aWf|!PQnLWd@jC6hR??G3s#M_6gPy-*)4YhWMi(y52_I0PKnH%DjfIVcGRc5$3qBB472;uIp}Pg~f=Dik(Gj*`6|~A3cV#xL-nNEN z#NVG-MnXmnp&w*Es%&a9%2o%K?3nArHFAolB;H1ru=o&QlEseZ+mD#CT2dNdc)*C| z3QG_+dx@-k1}Fpslsp55zk8O)*3-gfS>)>PQfF~lMFfz|^4>e#*+LX=Q%Zzjb>OcF>Z3(t@ zss2_#IPAf*5!!4{9T%1*6=a{ep8gm?#`BCGT4FwGobGN>3ko$aostYH;vm=k+sRIDRPoZy)6Am_Ll`ayc+bYmfFJM zMi4mKVRBuQWrEp^i}3#JU(S*Y5vME`za`KMfwTinN74#&l|m6=w@6AXGqOzQ6xEI^ z+LX574u9YIArh2y;1v*yxZu@t{@b@=ga!w=F?JO^9bsFR`InEK^lPKz zscrrn?Hur3OvZ5Hk2K-n^^{_X3*n34qG$m86?#p=x9*OX+@u+x1#2eX^I-7K&i&gw z-_72helJn`j5g|NVeCry?ki%GtodfpjKRt1fPq{|!$LX&7&|T&yY(AQaT+Y4kJbre z?AAZ4^Mw>Z(*gdTH2FbLweWKhU(CbNoC=+RgEjwtu~;e3_9fT{!WYp(W^Sa-Y3?8L z!FIJFqGU_j5i66ohBF{vM3DrE zMnbV~Zscd)(fw7w5*(}TFV!dcGNr(PtXQ6b>TOVhv`~m|#ELPYEe4D)d^z-vBSpF9 z}IMv=Ivdf_jN4lu)yEBypZkfVL~KnhiM0Qmllutr(I) zgh=3AV1y#thX>3kMBdHc^GGlf2@?w?c(p}Jq^xJRGBCydabasMb;Xreby5mEqQHqx zIXbS*OQtQQLIPP#h8?tswb8hM#9Y2sGf{jBX&6RTIJ}AkL3(- zk}1d-lUO)s!dNoC>KUi#lhGf|fE*t_V@0GDz6DvN-$9_e^rw8U#flJ1Bmc{6?$WhV zg-~p#ey`T}XVFyEFdmR6X(i${c^0c*%xrF zweG=Dertq*=Oj#}dgl!81~Kg8Ol>eCTkS_ggJj)0;fLzMP;6j(!*^Fu0*Y9pmRcCs zjG|uGeLf`?>kBqO*&J7axUio0>z;MK>f$KBpQA53Ek;U<^AZz3q7oIoLAN}6^x1sg znq$g3iG8!EE^m^2>2)7Oo@!Z$)dvQB_B)nqMTs7bV3NSKXaL(JGEIvgbRYtN#hdm} zg;cl#NzAsFX2Ipn|LBI?ep|03Q2xE#Hhb-iP`Rr$RbyUH#w|D4UfdLJM_Fmv`WN0( z$Fe76QG4}55IY2xWp=Sq2r_};wwFeh+3ti?y&y%cK-y_!nRf%UW}B0V6ylK$`+B6b zHb;lDNfU(Y{QIuv1r?%bRGgQQ&Ts0sc4&j79`W7!t7A5y0JYf%qS@)vzVXG$)ykVu z0*DSGNa=4WRUIKA-t7CC&RUD(h!R*5BB$BxFI+ZR{3LTmcbpsS3xQVxDVr0DZtac} zWUMYDM{TEf!zmCa-e=E|btaotf+DYtgzWeld%_*aMgJfSlx9NjDM3?+s=T_7R7#76 z(ZC^>&at}9>u&^q4nBqUkm_>G}{>`U}?t#n5F}1hEqwd(L_BoqFr4nv5Qz(JhUWoHJt** z$8XKS3_wXSz$9ATw^m45Eu-WdyuC9Ndaf9-&~@+FkH-m*9oH6^UjpgDITp=->{)pf z+7?q1`08bL@1_HEUBDNyhOscd-{d;PzxmXrE_MJ_hB1~}pblDwC%I{>mxNjukBdxW zoVAH-AYoRkIn_1W!O*XU$Pa7k*FlX=$qj4lNXrHcT*jd(^!p3)pTk>s&qoqL*d}o+ z%@B+0;;mE+2|7WZ!*ZhyUNA8bk&ZE1k>ciog04nDy@+`X#ajbr|5E6CY-FMRZ+le7Fl>hWhgY-6=W4T znKUH;tm_{f6q zT3N!hj(x}K-;cG&Z>-6vxhE%sjAc6z%4GwdH*Myqv*#Mb{gtFf06}#++)o{YsL3T= z(ToY&NMb*czje?1k^Yt?4TO5-1Z^ofmiJt|sHG;K5;u7p@WsNQY$cD)n zuL4VQdr}=tgh|wwv$m8I$NG zt&koe@V-G%aDx~3I&(IQLAj#9!)Gw!mPVAoajF7-Z}&2xn=x&u%)nA%O2CW0BGLJF ziD|a?F~d~>e%wpNK}Oq4fzDgfv>|eR{^=QZhHe;PJKaGMP#=W zHP{&^|FPTZV4T0qCv}$k@{}!UV zqU$|n5K%t387D(H)F0*ax|S{W{~-2nHR_NW@tG|ji%LL zOdtu_-{bRHH^b*qTJ-yS%wpYo?G%3F%@jeD+040`K18U~6#2HfZ@ig!5suYLal{b- z>MaNdad11elmnZbwlzEt2$4}e+|HemVFvUg1qeII?B>nGDc;Wy3dgzig!&|8UP*H- z`7-~M1r2t!oE5trOBtJ<{9V19?R}Al|4cUhc6vH^mw(KrKcu7*rW8s4(kWLIo0wa}1;Y5S}$!D%{!LIbz#S zN0i#J1k?)lH5jfymOIQ~7S^op;tBrS;)nn8GmSax8Xbh&aRZ?=O?3@}%??VMV&l$E z@*V+N%?_72`cBMi#BImh-UCYE34E4+@odp|Lgm`;Gu%r+v*70KvpW=YM6<%yr8#~+ z$*fA?Xrz>WCj`rqY;FKv6%Anar7Zh8ZYu)R5M7(layoYNs>tmE=~6H6fHI*I9OP1 zgs*TD)S*;#nvL)ZNebnW*{ViORA#BR?od&d|N-H?tK1OvfYYVVibJptN&bLsUz0NY1_+cy}ItfPD!BD zIesme7$Op8UX88HgGPl2UJq%%-+dX`^0kvK=VroK@{*Xha1u|B2sdlqul>0cK*yG( zFlY$`v{no3dSyomtY1q*gt4G@x{Ezq;==ZjegkP)g0H2K*v}xmXzgo9d*YX`<#@Hl z5H7@u5w?g6vcHm1DBzJe+o@-ZiU_jBa}|p%I$QK)=U@Qrw@2vDmX{T=pCDda+h|h! z!WJTV%j@XccWgJuma*5eEFI~bp)W#{85j2a(#E|i#qniCZ1WL~G|u5WXvc9RJ*}ys1nXiu zOQAcyk`q^USTInOm`aRA*5n-A%I`m8^|6GykaRppJMK&GcJ-WhVn0L1bH6B` zbw)w4$S1oW`WhvbY8r}_~+sJ*hsE+YE znsFQANn?E7)}|-HoXX1e5;am{2EICw=WuVL+dh>mbci2!D-a z^|#>sO_+753*%W~7=Bv~b)@9p;-L-mZ-;zITixE`Ccp-u=oQLR#~UwcZsH=@sk}%> ziITB6b+oq}NerIP6K}0K%IMxAs?Idl^9&=3VV%vPeli?%<(cqjAE#2&?DiI~j0F#b zDtw+Z{y@RQ?Gl3L1rLuYU${_jNMF<^KKH(!S11bQYJ<&PCEcW+abV!wtx;TwO^_W= zX+}opLcsHOmEvO74Lz^O8E42M7>q8YE8;8IBL*IzB!u)_X2+HHSBmG6LQ0NnNdRC( zu^`IlSsl4F>pO(>>>7O#ZZp+H$W}51Y2n~7sbVqtNhnewZ9`!kc}+>GUGb^&?73dp zsSs#d9%`GDBP+lxMlT@?^A`W-?8jU~|iI@ni}U z5qf4$m9j1aPcZ_$0&fj*U-Co^AYoSQJH@PeZazLY0-vvzr*hK>Y{?p5DHzDp15Z?l z6yXWVoU2jd4k22AJ4DL5uWjT>Q_gMzc~&nK(rT#4kr5covOUTrd!CF%65|Cqtrv!8 z10W@o1b8xEiJ~~EdVOwqexOG8uHpHnM)$Gd`Iz#Bz3>Uj+vbAb+&^|iJhv8JbVT?M zy&&$WwnNKtjz05dLxgbWq{d~30)zRZqd9HT#_U+5a6CMCm zJwv%K%!@XUNgHX68K=DH-hRaBOE%t_Jf)Swcrx<$*tivgy0tv;WE}+Y(IU#bM*MS^ zOSR@T3r#-0Rz3oMMf%`YD@>~NxUh9jnK(Mp-efztlFWM$Q&~RDW z{twClV6Ufq+;CZHbwL-L3!(V}kN0`UWl28d0%L~VzECX9f9D@tE)j4kW8=0imbeA=D0Rm)p_Y=bPds zC65dt$L|H#_HS*TW!>_~llIUsN~+V@FIq1Bd8QSX6dhi?wqO?I?Uu_@#_!bT5TgX9 zgN#Xf-g4>h&>u%|3+3IG%g2;29G%CMA8_ZyVBD_f$+8TX)N|l_-nB2D8;l<@`)*P` zcOpMSdDC@xe)*oe4v+89M_h-SlrI$T2UK?6hVz_|WmcO8$(0u>JLhb2F*%+vWr!F{ zH#>QrcU3ld?ly!nrR%mL$1J+xvBoZ&^<@T_JJ6ZvE0)Qm&lNWD&cTvl2)s^6zJ*HV z0}7iw^J+W^i)ULaJfADKHeejZ3TcIK)6VWdUgcGL!O{KJn!=k zU0(;pJDJGYY)111Ql=~^oUztmeymC$)){qB+T0ugS!;)%6#ibEyX^r(0xuyPm zH>%fxU_X`+iG)il8ZmH4D0Zf$=pdO76U`DFI6<)Fh~g2p`lsAtLuLe05{3SY*C$|^ zw$opoB$!TkcIK;EUoG5KrV_In$`6-ESSDW~jo1OOt66ze{l?Cif`HUvvmZ*?+hX{& z{7Tp7Ebfg2{@0oZmghfy2sc|Ic9><=^#ly&__Oz~B~#YIRhw^ZS553C+=XbtId2wqW6=eqF53oa z@}+%me#Itz;G7Govc1;syK1zSk_JW_W#7RTp)AS+o)15_S^<%aQINhGxYsbM3Ph*y z#keb>#f#&N7WS#MWV4fmFO5I!kWBQ3T_k*qH9Bh56A*B)r$rJMey_6hIr>qo7qn^5 z7ht-jV*Ch05n>Jc%bY9Fj%7#|29^vEDyQFLl?uXFXd!%|lv%_sd`Wwj|MfbU)%QVV z&-crke_u2AIsD!g5bQDr0NDU$B?9!6ye+Gz#rP4nh6mqUWWFzE!2)KICSDX45!!-& zI=C`Y*&f`h?;GK!m_yMs&>aSaD~cc3J)8VfpyqPH-BUq~;J5s>Jvdz@T`VyH*9jrT zE%;c0aNhx2gnBKG6R&=cm2}U;f@Nr2l;>pgYX*99x=0z1Tz}8(AEf5i5F_}Xr*nJ3 zF68y|=L#wj%&ds!#JjSIAltr|&!=J#A3u%_Cxci8wkdieS_9seY-`AlnOOJ*iXw4d}ri1p)if|zxut+b4I%`uFl*Y>_ADLSS@*?=?QQ3IA zKJh8#i-+=wCwA|lJkMr5ekhL!f9}QAx*GKX5*7p%LHkQOE~Tt_r294Et#neZ4t_vn zGsYN@w^$&!W_QPV^g~Wa$;i%TZNj$Yjj_op%W?&9gW7M%M>*-$%xarb&d$p2G3D;rej#n8WGr^8SfxcoOo6O6Zf(t0tlxR4%{nhC@e&q<7B4dE5vS{eut%rz`@wi{G;}b z?igy?vx8q~M=;y<+WglQ3#_oBAN@r(-f`QlaKw)XlEJTb&&tRRIhSu29mNs86cS^X zcH5P-*RdLi9apFn=|t&C~dZ z4os$jkoSymQh*65?i=$l$+RORUIJ%5pVp`DDmh{(C4-T;+H1fu0FC2pQnuCX?jUoy z+;wT+X4#JE>1{2JC4BC^fhD_Y_Rj3-Swhk$OmZbY5(E_nCo9j*fk^Q)iNtfT>Upk< zr$pHf@vcd+A{5$mO$FTr;N4a`{CcLNC#u0kr^Qt5ZD z#p0|I3zw^pJdKTj-B(L+kgJmJPG#2FNe3a_(WcD9fp(tBR;+`==hcyxF(35ec;fq{UppcLOi*z@<{~OKNgJ|7OH=!Ypr|u) zjO>}`NF&S^{`RnTM=P5=c4$o4e)&F8&9MxRSyzzXw)e39a)4b6kJ?zqjcLpHRQ3$5^F`iM36$?=t$ zuf)PE7WJ2*uXZ!GWvz}>ws|Z$olyVj9g$-zP~nKAx9E9rUDrBN$~1Zth`dn<0gz{o zvbcTp{-88tWSiY;kJRxH)ne&09U$=J@Ze=LJJ@^*X@=gHk!34hWwFeV2&om6+di@s zN;roc3FCQ^lI|fqD3)5S#eL>#?_7AYw3@-=dF08f%Wm7;*GKbKDN7+lnk#MeI5KcNA~>iVZrOb!)5{I@@_ioWx|JixVrGBoTz-Lf!z+S9&-GJ>JVW1p^5ZQNF{K*K(vE~tQbLgF->3ayDRrx8| z5GDSy$K9Wyy^;~F2CEcnd7I}pa3l1PEfV?MbvKb_MV$$sQU2hmkG<@ zMf{lTK>r!)6;b}+Z|C6#Uk?xlG2^%vHF+Cfdm041w@6;+XAw@uVXbZrVJDCw%KtEY zOK!XCp&$wa0EQ6ce;AtHu8UuMj}m+52T%S3VfR|cZ^L_`vx&R>G^bFnUi+Z$89Rut z%w|)(&X?@#xRtDS=f@%U^e`K=Ux0=Yu+DFF`7bhE_57v)j0YVS>{_=IAUBfP&{GzI zfXvQY$Y#f_jtAGUlgV+LSM!K!pW24Z?C7>KN?7J5L2qwoUhD+MJ(*;6kbccXEZ7mb zZnF+r7)Ka>gSgx5_VO5Z*M*dPK=b(CWnd?W@2EILv6T5f!f)S4Iu8Fcaf`#7mkatl z8tXuC=7-?oLMs5&4LkFdi$$8ryjX9b4#On zGfBnk&RUMmv0Q9GqL^a#XUA~`!QGx1BNmY>V*_w)mSr6Y$q|+9oO0k_MGmY+2qs2Q z@h)b+)M^(T=H>`?5oGVr0DwjNZC6?Ufu)io2^Yg$qIU#enPSa2etWh<08-P=+*Ld( zXfk^FLTH=A`JV0@HEwC?SrT%xK^~vK5bid*7cG?p6h|tO91(RPbOZ8HLTK-b97&ih zZ;g6`1gCs=)f-auTg>)E>WrAbyL%l%m z9cCBY3rWd7qhNd(tRc?2-kSTyJP*+?HAESwWUWy@I-?_$=!*St*+zvWgpfN_!-$>1 za+|l`Ls#Op2wrsV#lR3Rvqp4A$z*QB?nzH9_Ks=7bCgsD)|&#Zm9U(okQmdG-xF ztoR_zUUqj`td4>eOZji#81T!-=5^;L_tEjMP`;HpS!`7r0;r{WZ@lNqcrHoV(?}P& zc&^ESIK`^xFcH>61zcGwz&2fyLVfY=?dT_tstjnb&~4rRA*0gLEJ=jmHEWzK2+$V$ zKp&qa)5IPIR7ZuqH!Eg9Cc6f(o4`}VVzn|NHv~*~sCs!ymK&y~qB$4IsU5PZ+K9C% z3|$7lKv{-gX%L8L{p93Ruhf;}3Ipx>NQq=$OI@Om1Z*tM9v_SQBZTC*8;}Y5J5X~- z!w$o@J#>JC*s)8Q0vrCgn-x%IhHZsCQ*8dYi{e>%E*$G#P`5?Lls5`Qr2dMZ|k;` z!kQt=Lo$y;wlzdb$%y+JNW3G2uhwf<>4dO&iYVJf$y@_te_DLwThoOxcmd# zf<`>zYJry4GHd(X7EkipXy8Dm%qL`i&z1(SVE?3X#dBa1RnGrrd4o>pNRDu#nE>j7ziA`l$BfWMmPbGB)Z!d7bDd?^5m^xjzLbIy*f zn94ig5c>fi@9gtviw%oxQmKUghQ-@Px9xM~8W`E+%Jj?%u2%7&Tse{({vvx1+CQE^ zIt!MLFZ4y^4DZOd-t-EDD@xxq3Bsp}EN=DZdeb5bS@ z*!YJpW!XEz@xE*GG2zX&&3RkOz)(QQSc?jVh=M-tXPw;_7NBfwWN0VZTr`{v+YUn5 zfJhpkT5N7t!;Gt8m^8tN1Q1HU=Xw#k`T$jAhz(R43w792h2Defi}W^LNEz!9l+L~j zfzu|BdHBF|-iAYzLq#Lsw4`1iD8p3jwy~<0)uTh8=f@aXT%LJ_kqoiC*dez4n)WIj zNk~LNyKZAZt5bSuob{drvS0jnPT)^n3g5$|B`MB?2L7JWKGM8zJ==5yiE&J5+4OW@zTo zi9`d`Y;v-2hnCq>;`VL!RkQh_(Ra=m%Up-d68F1fN>w8hk_ov4-M4$L5h-_~zeIG(EktLn+*Uf+hh%i5m2Lduhp)eG)Ol@h@slkL1vkVRxUTfa)K){x5@bfm)k z<5of>=k14#WI#QT<6^+KQh?UuIeghy_YAk}=+JQwcMQ&I@QDc_IQR%a!Sat&z7Ugv z2=ER>;o0$nlO`Sl0(U*CXvYse2I=xpf1cRb9^9J5I15nrsE7V>X%bS+G|r&;+zIkg zr8E9}NGP@)xK{e$IeuFPC|rS)$bns(KZ|PW+V@C*7c)~2D>l@!Y7-U%Rr12bakVsQJcA?tUVBp45PZ~%Y z#;Lq;5oh;(f2%|WUA@L&XuuIMca(S`RQa&b`mxi^c*MOz^8Y)ytD6PyR2|RYuAWx& z-ywS*+<8j)fxuU`iyd*~1d4Us(VLK7OS)?MOE4%(8Cqs@8BZRBB~xsVE|O@c#Xwpk zbUYd8XSUxmWW<&5g4&ui(Zz~ToCXM+KSovzvNHwT?6&*(~Zpe{WNLXigiUME`xK(MibR7Q#_O-R; zyk`lU6he{UJ^$88{PGP~Md8=cW=3zTEx2@8%-aE+ud4c)${Rhlk3rJxA5@IL``p&d&3Bys$4|wMcja9qU7Dy#crDAR^&SZ;WsR z*xO8TqkVMtJ5*-Z0LLMGYoFKp;dze!=y;Mc;#vH6R>KU}52ce#{3a9Zi?wG+<)M73 z7YPy9b9UF%AB_Lhgf8cKt0Pw(n1s6v(<%X%i(Caj0bN1_VZuwx>>Ed%EE-!RlOpWJ zocn*=!P%vbL-_}oD{@`ZK5~_U6saAfOG4aAz;Q*xgJi~p9c+Sfd4U7-2D|3PlI3XM zK=mvr?h>}ySquahdIL;U3{jc1TBsCge+Z|Kz%bp$FpHWH{sKhysRh44y1GmH*u8q} zmW_0Obs&AD;!i-*$&>vF?)o9!Q%LA%Wbg5=Z$U{vc8#C=o9|uYn}knsuOE^SMy>3IFDW`%V25PIs_1e?k*~NcY$se(py<_4B=|* z{+)U5dp{;jj_|J$26q~NK>PmRzc!PsRHhEKD~ewF_}~{(=x^wfqoeRfjty}_3|1n) zb?YMwNylUNLED~RTLwDR;}TNJ^MjH}`;y1+gC_L+NQd%}(!U}w?)jBrnpa|P4lANI z&o8Hujx%79>sj6Tu|6`}vnP63UuE6%YpKtACQh~5;2x0QiMRl7K#;$p{78oaMbwdF zk`nnz!QpI#t~P|T3FQL^*dI9vGQ{jJVYm(T5At@AHqFhS;EE~UJPI>Fj3*=8(F36aUIU3^l)sCB!-+R!Kgt~J?UjA$ zgxqEYZS0$b6c};ddoj0+NUn1EgwpS=gjKeDohQuU%e8}J9EtMNi>Y=Kw!iQ!_Cxkf zqFq7;$`&uq&s1ecIkqKFv7!^W4})=m?&nAiPNEf_40zd?V8||ky7G5OVO-L+wk{x|ap*P(f)tKZ(T z&A9k>Fc9^Zu|8>+vM@cLmdbiTkRM4qrVF%$$p%&fZOWN>1|Yg>ZtErz?rp)7>$UP0LmEx|*6OHe^Fl4M$P z8<%I*9=#LFZ`t}EUep|~U9e_lzpNm^3 z`PJFh>7da$(3U~Qxvm30gs}&F;)5>dk>B~3z9hTDhXHX+e%9nBbinE|E1aG&=;+rl zX2AG2e1Ci(BjL+6$W|D_t3jz2&4{H(5udu9u?x1L#%;7ej(kFOgmC`Rb-MoJ6LW?e z1*~9bsxtd;TrG1N;Nh|qpa#dkTfjly6CxZ#^<~eKwF9$3u(tk!p3)~do=9qo>exF` z(NnJLo=2X7t)Cpv99(ly?zUQdrwp`f{yS?4c$$J_?>R*WcqZi2=@t`+sF%t;PZn1c zGbXXOoKiwDw{G(`Qj%vM!8@IJcWu+UCQoSw1aT8bE5GA;jv)U#PnjKKmU``l02OWT z9*B*lhw+5bz>T z)b5EivDJ#~%bw@mz}~iQ>qsd){}mDh&$|K4VDM4-Q4YU;C#1>qK&_aF1{oKHm4^|E z=MG(k)nZ}%lX7$4DU=Hk89~XGeSe;}gW%*@qPYTQ)j;zWA2huk>?cp)i)jMp;<;lo z(Z5nff6Sw7TdM1md4=nXw;_mTrkTCC~n?Z(X3-dNx$!1Ca zb5FU_xBk#wzvl5uA3HYB{gdarn(V^4!NLE~>F6V&k9)JhMH+@K#Y{-G@*Gnv#M%woG zY~mriELLUziIqo;swTViWO(8I>q>#Sf|ZU@hMyDMZAXVGI_j&rCBn&&ZRNrp`1ElVC4 za{Q|8BrI)Kr?@QXPl(G>6aZL&CSY7k2uqzuj;lLFh~lLhtTs7vm?}&;G)>|?jS149 zEH&nv0t&)@#&^H?Jx$r7C#XxLvV#%uy{c_sc>V*+`V#d@6F?Z|tqz39YA|ZJ4J*}9 z&bOCz$$fMzk|PddJ~Tl8iR9SE`^F-yd97vSh{Mf6n+GSku;0kkcG$0<4;#AoYHLtc{<|>$` z5y$Bhq?_4H(sIjY4z%Xb(L3tydagnWbC(9!!K>#=RHJPsDf~3ZC2mv2RHz7xmJ=du z!A0!!c^|ndsjZ2iJY)9s(Sk{ulWR8@u8?XHO!>ru%LS2@&i^!!+C|hz%({+Tm2`8Y ztjv2sYIifO>u5&7awb%sPoCYRTep1aU2nD#ZOZ=m>cd8)J0`{UcB0863FtqhTUSJ2 z{S`;Vb@*Jx<(D0vVv?KJpwrU^{ zex5p3$oa_;M-X09C?rUQoFqNjHPvfZomw$7SrGvsJW zJ~&4=j^~F@z0$3)^I=2r8+E?TK3X*32xm&_DT8lhF)#o}kUwBeWZf*ZFe7+*lM=vaPJ zZXKl<{z#J0wiK4A!pmrdg=j`iRa^XFlCs!@Y3Qw`k8uqw4XQ1j|LHhPbEuH(Y6yx7 z%L7_gC=o4AiVYZSY#zs)OzMI`XlDO51@NXCiZO=5)zxoM1uBYz%FzNv!nl+Vkgg(2 zF7r;OcLojWV`S|eDKR1zVB9mn%}gdWHQ)AH%E*;XG@MHrC_r*u0qw&QaA-1GBu6dO zKq^A4@X-IEuLVbQw)@KxIo9an0xxF(p(BkPUXEF4p6dlR{jKh|QgU61QG${+1{D#+_||0mNE%^4B7zb%LR`qgZ-T(eWgLT`wqq=OITC}56@;wG6QdB ztUQ4W>%vLae>9)LxidA6f8S#qk;Y@V1gnp6eg&!xyBI z)VD6HsQlp9DuVlj%ZlOWzD9<4&GrweumH!K!CD>lK8$)0@du94=G+X{x*_PvFe{W0 zId4V>9|vnc5Ock`)aNl*w1fwppyUW|F}UX6zdaI;Gt4`V{v6Ypbo|ot4BxXl&z53$ z;XMiK;4zB_v|1qvIkFoRp*eIh($#w$+O>AiO7%p9>G4TqHCbtWjtWDJFX= zJeFKWMJLxBbD?39uCL$6<7@s2!p9={9^qq={8(Q-PAdt=dpW|7r23wx-R|bV9#gi+ zXh}xNGD~~bEYy6SJtNQWjd4yJ3LjB>DY}3>Z>G;$peZ-l=g=P1Cr~5b2h~POiPsU~ z(ZY2wdWB~lpdlwIP+`c8$-d-Q`?s8(@XR)7C*eGC(Qzs@I?uaFyAM$Q@7?(4$?fNF zMJTJ?c*$9KnZSD+eCK-h?wtQkF95E@Na^z=D1DTsHCt^(uA>CylaSNRJ6+FLTX}D{ ztG_{a2yn*OA^7{`NpqxD3&yZI)R@ycsDbG;XG1h*9sb-s)OV}Bnr1qllBq*eWiM9V zQGVtQ-K2c}Rvw?{bG_1X`^}`)z2$JiPw17$ly$bYuLxQTTgngq2&Jty+1OQ$<(bKb ztzv(LycP1qd6FlhO>j~xZbCADT8GBNdILh!>?z6f6!zWiW858fUzuI|iCQ%XnWNMl z-c1R<^NO8I(g)@-p9%?ur8ThfjX{k<*FPq#m;~fXBf3B`j)WWgoRR`z9NpGMPdz#p zDJ6@tUU9V<@myS5xj@e;t98r-MTyKH;#lYT1C-c=lIC%TWYiIg1z~6kC3x0+T|IV6 z&~N45{(p+H?1rS`x(<>cj6gLoq@z5SG2+c!4?+SoQ6Eym4@|d*8^5NzIo$a1)aR#k z?V^iXM|Na|P;7kWNna7#)(GK@tzrF{DUu7uR0-RX9Y#*xNW%f)fzR2Um1@_gnnIM(K~#O#rR zKaFp+3vhSl@M4`e|1h-F{NXu*qqLJJz{j$mMlBui{BHmAOCOA^3JF?R`k6B62PG%z2#$%8n;QD=@#;fal^1(2D&O z*~@G<_W2aw=d*ZUtoHFNUg5cHE+i|ICYd?^_xUJZVY==CDRJTh(#NBCh3mF?QfUIk z2o2uA=c9OqEBYRVbR01I^NSc`|7I4i?6FPpQCcjSx{%`G%`o2anNNpP4V#Ul*zi|o z@?GmltHV<{lazyM2fj(rAPy_1vrUpfGjUGgy4HbGm_i(JobF<};yLAWEAutsT}ygC zhiAsoN2wgPzfb?Z*I7?=%RFlS3hyj5hzy#V|8vO zIZ7Wq-WZZ7m}yUr_{N6fTgDk0gStlO&M{p8wVjy(KNC}XzkR(ja6JE1FX)NTQbvw> z%Z`x2F$6AG8{SMpK)WT{i&FmzjCNz$Hn**0$w}PE4w;Dm_W9c$_+jpP&7%2dv83i2-`u~ut(Tl{%dznMoEvDRHsWLN-#a^_>Vnmb4S^2u4gHP z$DfCF`K6oe545gkoJf}&JS!OIyL+Q`t=mYLhb+&bpT;NJ&_9q@!yzch2V~RmfNHpF74yogq_d)bY=@W)HQ89pFZu3Yd z$R8FCNaF+H)}#tc4OJkp{5Qx;zo+RcDxc)yz}8#cljMa<84VFMU@?iw3m>6O)gBfM zG#RJ)dad(Tlw+rEnaZ?300|2PFAV3^ijh&9=i*PGtIL4lJV~G%0hJkn>wNWd2|s^p zcC<;sgvE|-!_ZdTNmvnh%pKhh;Y)t0=Ql~j;{8IG2%!;o?}5LGm|VBi7e9YJA;ej2addXUJ^F~9WWIpEGub|*TXq|8>2p88SdhtZuzmT5O&bqN@e zB_7zE$MZ~^MNMVEFbYEPz-G@94~$^Zz^WR3i;klNirgd{*&T4iWSs!m8h4f<`Pm(1 zI{rjYNUxBAsXRUt1*f(qF?=H>>@qu!nIVsP8+Mg}6x;xEOhCQ62q#@DSst7^me_!A zyjp3#p0CmnK*jMpbX!6h_zPSht}G^jf1u|$5y5b z?G{Lp03$vYX>j2yV}57I68Hk-JKB?v*4&~sLj!UMvuHB72DLZrdafvpld-VQHxSB3 zYZNMpt*h^^A$hhuJkm+RAp(}r9M7ANt>p_)E{r^*hC<$V9ks(<8OE<&#L#{L{6s1F1uq%lAKIBulV8l!f#aGHW@pkD zIYL+QcDowvaZ%Ufr9Lj|GLC7l?i{6THIEly8PxmFQfu=ZQDS8hc4@f`gi(%$o0Hu) zS|4(kqQR~wd*uZvM3$4fqj_e01P@|(hZyrALptK;FP$nlnpr3_j1w8YJ z$xSgUGE#VQZ#SC|+lDHLFUbxrb#s*DDSjr9(&uI5DY{@?uP6y?RM6;#&nz%`oJ}Ax zbwnTdo}aI^Vn&&(kC9m%wT~tp?{d$MB?!fsw5ylR8CvS<3V|4Oz*q7P@-VCUnPPYg zC60Q-2U|vaNzHvHjeRK;K<*Z?>*xxV&0>PURAn*}^(jKREp=oHTULBGM1{BC>uC~^ zHw3E@5uMHIvcd`=3X=wDjcfvY%;{u^N5pI|eW}Hf%AsyBq0=}-VTuC@o6Yl<2n~a@ zIM!u|^Y(1fiO)p5phP0Nv(DRZ8>KQu0VX}ybBI`fu4a#NB1jOtxV_%F7z8YBQ<={O z*M#nT`o!6gmh%BOTQFQ*L3%_q^TkCJ2}-Vuja}kgZ%&XlCs1YY?5;3h+KL4ucHtmT zj1ix+9IF=j-jMCLyhqvV-^*u|DG*9r@l^|`Vj$Ft+5(@%s< zOWhv7(uhw9pBK%&cQ_tb6y9|>9uvZGyxX_(nDB8I$>5Kt+YK+b37__@e4ydwZr=(B zg9bE~ItA?@Py1FVO9lwD39VdH;<({zcH4`_6(hXafAWE)=GxESo4Q0HY;Y3*ejRV#&zBScF450rdpc4@uFP~Y<5`+!oVd%ow?0tzN+TL27UX!AR(2PU)x8XuVRNwKtXf!)r}iawzJ%y- z)oa^FLUQzTs$mb3W3f?q0fs7%V|LO4uIAtr%n<1WdsFDz-JnC=6RjiE3qaYhJQT+Eu8|!141YPPIbQS zzZ(W1COgpaigPnab`7{pGCW^EN)M}J(Iq~ zR1#}DEDK!cdAZt?$?u|r6~SGZtZX9KmgDkS?JX-lq5sg__jIM-mvxO-Dpgg?Rg>=7 zK|H-JPgnWyDX?I78+Az}{o2cSzNC>1>^LoF02_HD#msMZQ&ZD8ou?DFPlYt;)~mTZ z*iMOu!x((3gr4g3$LoA*vykED3d)&$WCiNo)V>vMeejyxCKYBuPT$2%AKcw@E6vGFW zDka+c7_MjVWFJD&KWbpz97liUR!=A#oxdyL2x#B!n&~WlQs6}5b*!$QK>b|<#iwfy zyLT_61i0WA)ulfW*Jp+lEMeeB zNo1~7;%<(k5L$i+^|aE#;5lOF$WfFjBeu!06iSN+(Z^ySbiA(95%b$erYyN)@v(>Q z5~iDB#-qYdR*Ou=oBTX}_$Stw3(TRZXmki;63Dua&+8_ct1-@HF~x;cwxzUCwMlOK zaEh{x_%;Olgj*g1TR3sVP!TyLx2=q^1I`P9frUZ{Vb{hG$56cpaoMwLqw`6yb3`(6 zaNxG&Jd)YRp$9sfO(t8}T(us$Ko#x2wQR-As+GO$+2!m$m|tn#!%7C?m?htOnRBo z|wVx%orQLPPtB4LRK6`05s-5xAb^9~(( z;;>3a#}E@Ir^@%Mo0)V22yr}$$enPJSN<2Nc8A_Xwe6-uF5;I-L4+VPzKHcEv~x> zWNEK?k>d#$2)m6Nesh>(r)dOxM z1GmNLI>=X+_A~f3uiakugaE38ZxC^0kKoqyCcVk4TT?3{BuP! zo!qj19K8^BGR!xhup%W5OYJ4};J7G9*yX=U%|p8y5F{sba#R#{b=@2xIf9V8dWt~h zSkcx-LKuJ}p%;SFQIcc*v8V}yYc~6HOa_O;Tn}fZ&<~x*2lXwjXGe%c#0Vok<(V8$K}KS)v#k~%bxP#^JJ;$O8X3$ezisWLa-h!6LXgaFT}GZlSxiUaSypD^ z2Z=nX@md=opHq--9v)^-S`D)*+j6BpWOyf&77o-IKv{*um)LbbJFY@|;*WRCh`_QB zB52Z@jBk(K;$reH`LzAV3hfL`5)rWs!3?kaB`q3S#EheSh6^?b>Q{s`#&D#_Z+72T55JwaP1jjH zUEW7SlKe2a5Bsv^Jn{n_qST0ET+jFgog_BP+WUM{m)Jz}Tx%aCZMzE#vRwjU!Gc+* z+ln}C)I%!>dv=x>M!fB4mkAJtMmWhYOAejKX@ITRUkwv87;aq8JwHfKq~0mGvQrmP zx7SkIClw_SxQW|7_iP7RqO+Ozm+{8QS7`SIdN&%(#9NUr8_E|8PhH{xwe#73Z%Kxe{;!D( zW^bH)&C>J*yggrY2-6zz4U#l0Y)0-q@jfna09@T@e>E(&exCloHwVc(!SKZQQhqPH zUuz2Thl@fkQ_gx^XaH9j^DTCP)9mMF?viwSW9o#Id;wd zSgg)zMpSR1!T`U0b}=XmU7?Mn1^gCkMI;@3ZPe7^raoQgTH8oRe(ZL*{y0sz$Lk!< z{YPRpn>ju^+mALC8SX)n2hpV22|VFwcD3ZNaHH*QT*1eVj>{yWL@0)Lh7 zlp5Xa-pVCE4oZXqkfUcS%HrOqP;M4hLKBNXhZMis=akvP_Y?^L3V}53pzXdzN zVAOa8ACV@rm)o5Cd?Dmj=gw6Tn=eR{C#@dX88$;J5$OeE++on#Pf;mTN16MCRKeCP zE$gdLAkVh?o^S<>+&}Wa#HfdS5ROQ9?u%IpgOpcg_M8y=noAjz$3%6ov!o~Vm~dV# z3K94wknM*uAlz&m3?a6A6#iF)^X$S|!8AESk-(UKL1;@QVYaSXByxs^?vc=` zP7?NTB>y=@;`Yl@r^Iq<411S@d`^kQw%z{ z(R0@8D$hcYH@oUH^cX3@Gi{dUl3`oO?LiQ5xJvWoNo8+5r812@WlKh)=+}yY`3qXQ#u6GC(mu<`E9GU zfv3+0iA#6&upgB8PS#yx3K9IyF*Vy$?(07CL=X^qjM2cF9M8-MD^id{A}{D%%||_t=aAZMH{tp{5XC+6)VO4Kz+q|+;X_0UMUj8zGu zv+1pXXR}0H0B9BQgkE_=*@IGb7aj>4Mw?T5O^Dwwt9xQF;n{8hOPqxG$7Lf-R%iMp z?jr+rg>`^+9yTXYVcJSzA&?FXS2Xfulxy^jAqOEpF^vr2e@U!3IXZr!bwKlu!t96n z^!?^*3eQ5yHSou2x)(eT8J1J7a2qcR(r?1BmS5x~5{row-zX-@k>ca*X#diRTGYpJ zZ@#~=IKeZ3O-)j=<#u&Cq~kVHBKm}=0RvYrC?8*)_jm5z-6>SFEcSL#jmW^!_IZ4H zO0%})AgGM$3Rof3ch4`+x9}e?k94gO7iawxC7dCNKBlwex^oSdp%3N-UArPM4lZ!g zgf#phj4va<-PvadaB)D_X5W|GI?Imes;OcQ6SjKg$Ai|v@8&@GhwFSg@ctl!*PI?gbes0tVa0HA~sHp#o^a0 zH0{6}C(XI{@RoY`WSBNHR%icuQTaXF?>p4TNu&4)@6m9y$g$0?J(^`$Jbp*VO0Gmy zS=6iL?t%R05SZhh3Pa%h+v$^T_6#}PSb_$2Wl<>}Oju79Me)o8aeObPqz4~4Zx{;- zg^Ke4eBZabH;+7{ECs7~hl$8P2V!MkYN(FL3;LbOf9Hy!w2XZZB?|xfc_~-TO<0!4 zMgxeg-7aih+;_%s0Ct{eI;+8XZkV;n`Ewk(YOSxN%$T|(;SWaq9Lf|daw*5l&F+v) zE-;Nuo}jFY=UEv;>wz-=^J9`+VT7>skkc<#coKH|qSc;#S_jWz5I1-2)pBd`%VotP zm&&g^N!- zKR`)-V!=wf+hgNgn}n_2xA$igh|g=zgm6uY3+b6EP^-=TCOglq~RbnI`OKs!U z*41K%LWmQCIknFtN20Um)mk?(xV+&Tw{`qRB{UpL>?-f?wvBJ40g5F^p3-Ej?)n^I zrhyO$s5^v1_TQNIL2Zj=fiC0OiN5bw;ODpY8tf|(c_`S^R1uF)=ETf&7e?)=gw|XL zyOJ%u%gB)TEoE3VY`7aXDZZ)c3^I@-1l?D3#cwXP21`xwgwiM}ReA)wdJZc2;fSDk z-)sJfm42VSLox@P7{W}mGl6d28uB~qZhki5>`nMm*Ajs{=*p+hqLypyiZCQ0PMr0* z$-Rr4Pe1y^YK_SV9SNA6KMUn(*VG;qjVEutJYH%Atd%H8h+=BW;7Q#S#lh3aJK8%C z#&m7IFZ2yrhPsi{C;p}5?y6Oqu?&{Uc(Z?*0WU0wkC?#s4cX_U{|BL%#fDP^1wV{z zBG(B#%jYqir-X~$A&J3eIK}MIHg}qXQeP9M{i@i}oGeE+pfnDnqW3Fm6qQVjlNY`u zCQ6R8AF$Ybrx@c+v!OtZpem552gh|>s&E7#Uz+WCQA(oHhjCcnRglu`t48NOC8w0a zvm(AhQ`bAS-`8&$c}B2$Ovd181>ecGP?TCw$!AB%6nzkNw&f{l0#$!Ip}aG(xx{HfGN`gv!K(8-xI9!)#Xn?OJwz zgdGf6ys|{MV0A1V0K0Azw$*=RNqAdBMJ%7^!7{gjrDDvQ&%`o+z|-?Ywz@h>7DW$X zx%l>!vkLT}#D=m29pSAHthSjIBh9HH&(X|J4aLCZ$y%%7xpb6p5Oh#{|2U5Sgo}XH z){;F>;tJXo0)&4}wnNE&COny#8*qm^o*H%=TRR)gCu_MA@0-X^HJ)$MSl) zlir1Tj?v|1`${r@*L&Z>w8Aw-9zojF;F>l&4q>{?G%M`yv2b;T)z8d#wYCDGC5#a} z)%Zw*Z(Z?XI4Vg-Rl_jd>ipZ1HOH+(j5g2K;wiFXfntWwx!Rp*(eW%cJBwz!^vJDl zqXa;yW>_ZzLIbwNu@%~LXOFeufGU<8eC~w}B9~EPBuvGOnWj^>7-?oY1hmBL0d3tx zFAZ!beKa!Fd0iae#ip?7`@t;?z{BKoIZbK9AZYr8@@#j(=a#7_a^rC@DrN zW%q3NA=-AxLUYw+@(&KQ4bE22v}}VY7E^xg4LhuW-6$OvgJz!-QTA}Ki;Xw)fCz~Q zGelB{L-1m`q!d`K{R(BXg_3Fxagf4!W5DtvuvW^$(>#Kpwt4k5F;Z)`&;<&*?dkb_Finm??p_bSn^*8q|p4AD!?<|qnWqeDX$5CUrk&^#FoLDUZ+8n@Y=kRu37+Qy}F zCObKfet)OyjU%TZ?|t2OPsk81ve9lT`%%_(5)wFrrWCP7u&vu#N0tO6#6eQtB17|L z=;QNAijSv0J|qNa!ZkZbPlT;x*A;%dh zOzrOQ63qYl7U~_#j!!T0&@^1@6)AHx}@aG z)&*?9-px4Q@HnHnIi7T9ZAF}0^?c&h^Z8uQSNmcR8JU*0I#M=wQdMJK+l!%V!gbvp zDO0>$I)_rd88IhYJkGE0zLx49p4Y39dc&2!A$#A9JbX_2)HZ!aCYF?I4*SOt*{2q* zJfK@sWFMNe`d*iT>>pEP9~-of?b7#zw+C}SCVV`Ydw7XQLcm9CkduB-_;l9NLo(>~ zdqc_|j%Wh6-2e{%g~{q>*pS(my1Q7F?afI zJ!4?eQss834fF+iMTckxS9 zA||mH2r%9y1Ij8;G@A$xDgb*Z<9XeNOsZ+kAv_^E!j0c+483wt23n$aC3Tk}lFVH2faxDe^?2 zq<-iyWADo%p)VEH3o-ge?mr~`#2nwhlRY&5Us%>g_RRdhLpF6&<8}{xAx)(w^K5$4 z3)1iZw4ypD=zkyz0dn=1R+++~bBT@p?04VIn=i>P_$H}rZFivcV7m37YMRKumf}$1S}(=Aodm8P*9pC|QCh&hGsFm-dB|0a9_Wk|_9q?Q)fQzam_gUow~y{zr2MZ_HSh_Wh4$ z(`MKfXg?#u-+Q`cD7=$SJwUw?-|sP9>jw^n=?$z?CN20P$h6t_p$`oR%;Nz*rJIhX z#JxMfNsGr(dqq>_4QVqF1&3BXX-NURoi;CyD@ogC)ygu)9Ps1Kf9rkHYIf^97gtok zs`aJUd2dM*77WsYxCARAVcrweR7jV_ab;@_fSP821q)<8xB?=hAWVyN$&5!WlxJCV zXZ5le+rE^;V&=oe3pYtU3OHMzpyU>%yp5E&0~|;e?Cnj$`7qoMLN65%6aXOVjFDHu z5rkLgki>`3f*Vakxk>nKyqTjGSlYBam(G}YM>%7$d08AKdPGpv(%@DKCGAjPU!h+J zsEm!%Ngh+SibATWv7X?a*WS_$eL?w&i3@YuN1hZQDEq-P5z3ph8tT6HMIQZkVv;68 z-k-p{e}R_YH|6(MI--Qo-MF?d2(J%M>+0f+EWnzbIH+FP=do`g3E2K-x8P_LKDIiz zc<5lKcU+ZYA%SE+U2-Ny29G~9sb?wZ6sgKv-!VzXy z_H|p7XHSYq9jkO@e!$v~-<`VnGJ|Kx*A-sZ2qpu7{w$|t_vq@6r2+y;V(9}+`auBF zY9)$c?H}+}$aVHIgx`8K%68X?u?-456o7`Mf2h?aTnh%ZR|EDIu2T62DT^JZB6_o6 zI;q))y(`-R-+j^m*PA=BAc-Gt6sme*RCBcRw+d{I)|GW?$u3`=DqgfU$me7X%3roKEUOm-7DM+gA+VdVQj2#&Kw zyfdo1?4s|O!;-fvrsI|>mLhQ>p?txxZf*NzrIR!t?U0pu?w5MVc_L6=KZH3Pu~Zb% z%XVYKDbX*Xc)?NuPj|bi2t#3?_SNkx0S{9#dy&|RM2!a}d6Kf$>y{IH1nBttIQk_C zgo4DcGGZObFYbuxfT@s{1K;l;Wm&gr{e2vd^Yf3zTIa=|NAU(hNmsYMg;m$&%HRz5 z7iW54^A4mz6oDzq>X=G71f&SVR{-tg1;m%;efM9AAPM5`t3MgxSt?=N?P8NvHB0u4TBjTKbt#mYZyYYVeuo)#*Mn+39dbJW)Q$ z6J6+#uy~>3c(%o{l!ym0K9RKX?zQkt7}m%5bnXL79ci91R4ObxvOAy1b?Lh{dQ!Ha znEciHLab&FkD22&~P_AS0zR01y+>ccyfbDy7@Z{%ZQbnjNFw# ziSK|^MP$jrRCT0n^&3nKJp^MY3ey#a7hGqDIg%Xs$U)k!wkLv6ciQb*5}Z7`I$~L& zC`CJJ?WerJ-gpqE8xeQxr_ul_7R!~n@-W?#n2?gp@>X(NS1(G%Z|DuC-ZYz0za_mz zNFOjGg~TgJ=VZl^k-sB-$GH5N3pTi&ZXRtH!X37$T`f3QrmyFU5ps|fl;2<~lsp?6 zIe0b=ITMniBvTzN+oc`Fc#th=c1*7xiAz&nlz4EA5|A{{!~V+EM+Y$%XB?;HXz#-tL@m=%k)T`gj z+eOeRsty5d29`RzYPq(Dg{rIrUfkU&?6)RM2Hfzntk|6_a~`B@R}=wvACfW!mg8>b zHF4We*S5e#yLttcQrd;tAcEe{)yb^y2U15$%4B2|XLn_V<&XGCQo}Q8KHOhfDIA{- zw~*EdaApA60+yNm8o)uJnq?0ft05pJBkUC^-s60wJYHJ)&TBMMmqB1fMf=Bxev8`6 zx1;J|Y=e>C;3|}4C7CRB7SKcJuVjv)Z-Wsfuavgl>_4>>gNs4LuOeW)!-@jsg@hwK zCy{r80E;gTq6_(~50($qofcAqZ3`QIAb$kg1!byV&y@&y}Ia4S%Qz{CEZF)~C zr(lr>0fxL|)CI=XD1xg*Qm&>_0_zA@1e~EORv-FN(qhIuqzT0+o=;nhF?X&8{UX8Rz4rQ&@8 zCa~arI>6?nK$Bxsu&3qpFF3SP8OOBEwwZDynyaqaBq|gTL%rlHv;`6hm8T;dXTQ%G zQzav4co}*K%_DpXw=0otJ73|u`twzkUqpk->_nqWaZRdy>S-#dN5RNf#8ybpg!-4n zrQJ-Zo-0w5PoVfO-DF&5D%u!;`B>&*7Zp2OyHj+A$d%^zk*ihnTNQ1{b+?g60xS=0 zNtH+Cv*+fxlGIFn0lP|@=8R=g-$erqdk!K}TfxR6*KN%QrP+G%K{63)js1&|tBv4x3H)JAoAeBzcz(jm`r-nHce3+6uU7F{P- z#xx;SS=mz>?gY8wbf}~upyn~=b`sQ)l;6sFqKK4STfL$I=*lBkwgG%*!MwyLxHzrw zPOy~^T;dmR{l$ZQLz=D&emBAWp73^t`+fTVc7{8O$CnD8xMNI*jwVdc)NuC^`bxGm z=BcC1!-*qI8|f>IMnsvC6G^W#B3PEaQ>i{rlzcR?^T*|WHicD^8MFvcGgP>Grlh=L zg-}LcVl%O^BN$U|JoWx@UN5eElw7kG%2z!S(1URy6x zhU`!tI}b^dsgn%}DGb)lzy!s;zxJbN8k8lWTL^PQgz4!;bd-Fih}Qu4QYbkp8DoCL zJwz?M0jq!Olj1&6I`Mno@bTjm+CdH)=;YS5*ZG6 zl&fLyBJ!DQb3BETL2kqkBA!4cX3m9>>V19D59PM)jwh#bFz98`QNTq;Jek3eFpk3v zPrF%-+xGVqCAuV4@SrF0}Xd#)rM!xJZq=7w1o68;{;>atK-V3 z*E!JWD@kh$|c%b5K*n)#nU#nvzAFO#my`#S24H=1~|5(-qDVvr;U{ zgl|%V4GuExtSUjbVGi~eHMi6>L{%pi)$HH+)|^I_lqd=ZOHA_{(n0VQOuM0m zLFI~VZdA&0zOk=#Rl^(?->N0TiWHXo+2a8mT_np`u`_#j1haQ@HMkA$ok~2Ar9QJ4 zWa5N3`^+Bi>MLn-VT^_*`NL8%1>8zdJ{tnNjHDzzXQP2xS@plqID>ED3fkonuVNQ=J~(SD-L1TTz{iuX%{^6Od>+CJd0%UdtVaBV2FRpe2!Kd zN+}od)_)zv@?RI5^w-a?yi5ehWb}*>JS)%rUU0QFeP>JjtaW zcGofN!P&kPvx#**JjW{qEdpmiee8>5wtX8If=|%U2|B$v+htF1;uU(M$guXcK*|t8 zAOc4K!{_}?XX>Ei2!(7fTKX1!nbqIAo7kh2FED*$ILR#=W)Ad(kDHrrQ+`Bt+#`G} zAV&?tXkC&LjiFk&7v|eGh9!Afi2&liv0y|@wvuQB?{PJEgp!=ql91X;&HM>0j?CMOOv;ap4x&NUF;B6Q*dD7dl%)9ITL@bj$PawFjWId?*Ot9F8p-fdd zn{Cikdro0P8~$5V^)*4ub) zP(Go1Bg8*Ic;~Xc5U7vu+QTdJkZw-b3QF_C@(^obRKeEyo^CvbNmHD#0C2b4c5T1= zzDeE$8^Y)D1M_Bc5lFY-lmIo1Zs6yHh-0nI%{n2H9eWaR7LN&+bPX%|=iDp8Q`@GJ zBM94OvYXZT(2k2ei^qgZGjBe^>cy^7wON+vIia0n+N;|f_PY`Oz#OwBU2{((2vliW zhA)`X$Z_`5=vjb((wktZ8mdRjCtMW5gKnPXEy}~)nhiiDnqbD3OMt#|O3n*X3i48Y zVLbgvi`jER%3cSw@u@#j7ONpB3Y$aN)}=UFsgyuXD@wojW?eV&5HlXEJ3 zqby6rr_)>5@!y2=xtdl^DQ=g>h^GpM7T8TeR%9 zU&b|ZivkCRMQ?%6TIVybIf+{?y_h)UE&5>eHlU$Q`g?azs%$NTn=C{}oI|!^tkK72 zLq>#lW;~rqwKe)!K*6FvOGxnu*9x2}avjSfwPKO2U2F8M#gK-OY7#j;4$k`FdT6p!6umN~m(86kze6*P|uSAs)q0N=nEB^EOU!*rCZ!Ggk%9cK*pq{4MsN3Ie)-akOP z?eniSMU#enk=&&sdPTdHp0=|U1eOc>o=aYm$@HkxhQMcY|9H>mZUJNG-FB~%q_`C? zNO_?IYinL%%|oCwVwuv1X#*%T9#Bcw0dW?~iuibly~ZhflsGsc;d`QO{m^d3ggK{9 zBfBUg1xu|XUxj!lN|ec*%6*ck7^?(F*1Io7VJy(&(3_`$y+@f#YExp8UP@jqy z%8G10OC{G{R%lz&7JTRT{+gzxcQ`^Q^|X0kN3OUC>_p+0E{1?1yDRoCEE${(1-WqL zsS>8lxUMXEu{%t|V9sNsMaPvu`mo@(bz2?RGW4;C4^25PTuFIutGqf$0IgdhY1_;C z+kzGUi(_>G%^co+Ov}JcW^=o6T`a}L>>tB}2pDn%Y?<9d7xQ|D<%Mz`8LLaKfb=V8 zgH!j;-~iFyE4zEv=>oD1T7+GULc3Z8IoZNUr6M4j1tn_3s10FD9Hs#MNoZGe;_z@W zYJ;wu==W{$J4L=x8!ip&%`|g(sdo65L?J}dWZjobBC=gx`0fOwLK0m@;qK;=3$ZXR z{R4pi)NfYZw%LC$4GTOYS|vgZ1F~a`9|NE>rOz%J&>GKw;Y>}RY|RiG%C~t%v@r&eyZd?aWrtRP#Vl*K zG$P|B$`=|tVKxwLdx($>Wwb7)GD84}$S>e4+${}?+O)#xsHtPI=LQ*@M^B<7Jpa~LBEp@F z62c9}Bwa>sge5AR`})(KB@W#ceIZ^rnHkx$WIgve|AIz=rYDLFe7-vUvm2Qtp-BmX zE$%bFx5fDoq~x@+%^#-XGv?ttWjfRtZqUR;UTsP-&2StFoevH)-}gb9B>^;AY~u+D zxy%>9tsmYc7lASN*3jEGyFqGtpD@4kOXGPqbRdIITC4iKY;|a;| z?M_{9b1^%bLnH{gvn=~MQjSg2TG{IYbPrZbO7dLbbf7G9s33etDdV48-t}*Ye4a!e zxr_UV^u_q+$Xm}a{Rx0NAa=f`Z8LIet`}-@bwB4{UOqx=YfgIr@`8>?WM^q+kyO~u zK+uPg!(o-2598H=;YZLtMgj@V(kS{(}a?mJ34f~Rg%O3A+2eUiHnM4P^4xal^k7r=VJ;BH8AUhY`8T&gr< z%ITjxP+@w(h^e)W=$Oo)2B}O&05F_zMWZ(2KA%``YpXjLIAH+vWgO(iayk36*$@Fa zQydK9YxM1fl1yjomLuM&K65idnDb4&oy`YG$uMT@rSfv1d!h;)F!I-a47rdi?({8aTJHjMa6Vp+_#dH zwN`MIbRamm0)nM%i`D(ZrP?v^IshgYuIJV26b~|Hr>As~ZuU~iRq8ERK7+4j^`Ee< zYaMB4IJ->kGov4UZOv$_VG$l*Z-DO4&#lc6sp!}f!<`x9=rVpEa^GFiNp%)GmEhgh z1>>Gtze5!3J>O+phm4MvR&mawOrG5g{6YB|Ewd9D?;(P_S6ZtvVVX_~rGguIf6bAM zyQDbPh%Q<1<4L;OY(L3T5b9BYt;Dd7zIQWa%{<*03m=KAPt53uNQ4oobdzO8{3%Va zgu15`+2-FWad?K^kC{5iVgUxwh43=s4Pru8OT#H&_OA|h!@!vFXEz9FlIB+inT0XZ?>aCE@*R-4CHmmo zMw#%BTxePgP>F}PpQa&|C;k`|Sx&cyiA0+3HoGWvDM3hfq2Quj#v z=B!ZuC0vJXrEsRs2h+3;VSq{EP{8_<$wl*adGJxdjXb4+o1}AA(!P`q!9BEZ$S~-q zgl{JBeqwm<-3h$U(f3~r;GI3szfKu=F@X2&GzDQ<8^oXqP6V)`5xQw}EP)70040w} zrGc*oO1On!Nyx4faU%FisST9zo}1&yBgv@Nvu(xej0kTpHMn`LTyZO!v%sliX*wy% zGg~znn|QHUBEtk<`QPWXc7!)a%D!Lf-LbjgsD#i(C^7vVc0Apl4NR7ICmBCq><30R z-#wByv#B4y63UR4R3Ipmpl zC#Q)3hk7T@7kfM;r`W9D;yQ3NM~Z@RmTo*>EGcD5b+b#G$rNB6<1nfI?@qbgDs0y zMGM}6WWWaEjnNDEolee0QqBtBAzrDSju8a7Y^3SPE-lo-9pvSkx9#D!$Zhb8)3{SC3XTs;*xQx z!ANozai9T+do0I;!LDrkL1YA1TDYz@cGPdNq&X3_(%7fXQS#rafozOc;07;Nt}izc zJf%Ap4}f#B`2hAYQKCWV^ZtFQyIKQTQ8wf{sDjuu3ib8sT(d8Z71kP@ z&w~|{_O=E1e`P(sqJ3dKzOl4Ra3Kx*bV^d|gVK5D+V*_U!CLeYC&^6gV_2_e`*Sms zG+<9CQ_@PT&#ZXP{xY+@7AlO-?~R!)Y+14&R5GHTs*FL4PNe_Y%C6S_6BWktI&Ls9 zK4WC3wm7z9x6~xY6eao_8(TJ+YT2@OqYYcU;+&h*04Y zoa?ezXX}pO0p~^a2YbIR5M`cHCr7q;vutHbn-{A0>jK}@_I+l}_iOuJ9Z_(pYQgu8 zmuk{ml~)Ue`SPozZKnuyjv1bhE%~qS;05U$3*jTy#RGl&MrpoRxP7w78huJ~(q{LW zzx$MrGh1LO$s&vF{&VWj^8^*+{DSHZ$is{?<%GoXTsqRfWvJd{Q9h9MxlM_;s?mCw zUcC4KmM0SZE7}(c2C(fap%7=mWuhk#*wy#b1aCZnk2o(6XzeoIpDFhN%A14pIO0!+ zei(En;~cDSgK7JCIAA`4o;}OOThp}~2D7Meqt`6zn=l%eoId1&9Jl23ti?h;#r=bv&gP4`vbp?_oeBf1G*VuR~!` zWq^Wrl~Q&*;acrJZArV5JhL^N3nc;F5i-V2NONujPchw5U&1yfU*#t7o*3H4#ulno zI!DR!vqCy{AZZ9`+tTah2G{S>ap$vvgAM0*9EI00U2TF4$~-6tWd>up>dyR!s+~cT zooW8yZI=acNZ|O&2(5s$1+Y;61gOpXHa>49?U4`+T!3-REk$owosmoeGhYIOvcpS=MccjF=oBweoQnEd) z1#?STuWLV)-mc^+GkPOYWWwAG6eq;;oRjHOH3Msn*S~ zsHqhhtQs}(K%49;CVXW|p4iPIJx&GfM(ikQ;1WeX6>Yp4mNnG|`;G#u^1-T0wCc+g zm=ddMGy8u=N26z4Rz&gv_D9gB3wIs+73=$_Y9^EbBTMRwcx1;qT;}5)~ zl4~1DqnFRnZ6F|T3ytE1M%fPZlk=RfpN^m>F9l=?#PSSK0TdB0j9Pg|^1d<HM}Y`F*kC=IMGp(IlY_F!}UdFI9H zogz0I{bYezdp{=d+_itc+T>UJH`hL`SFc-%Ds>S~043q(U%2*BNwU?o%jg?>Z){?u z%X=0&bUaxJ6O@L0V6_jz2~R1X$CX|aO4}|9pi#I2*~to)7xAcKv(R0qutFeY+GTiR z$$#bF;!)oO>%dc@N~RF7SUHh|{ju)xC>%vxoN*d)&(b^+Lbk|c2fWP}A+VfBo(M;w ztsR+wW#N^59RX98`}LW$3ovOw21~yVfF+DJmtsrIC4jKz{yYyT1)o`Fdtk8F7;_6c zJvC5b!2|Yw5b9|6-Dev#B}Sj1jYNaS#c{9Z zjM4~`uMPMLaVuuP(ZnEx#%RG!U9=&e3V%{_icujA;ReLj4C{o4Ce=@SdAn%64!UN< zvCKCl|6rQ4#yFOXl2K|lGhOfXmv3e24E+y$b(rW}QJF=i9Bqb|UWN_scpgn=1108< z^Jr`iX|%g#->!Zj%gb0@KliKn#N%-x)RA2~OPX+tn<9O;_{3u*RTsrHF1mR}#uQ_AU$Irp9r zTa`}7^h??Z5F{tO%?mTI^bpBCWwP}^Z>acuYX$N?Fy&@4fwy5Uju8D8&Xh|`;FB;N zPrTHPH6UTLNx-G>VW#UZY)B)|#jIJ#sKUdeO$-oBf#U1s1NSI+y19!=8 zXC&lobL$vgXT;B@uSZ7eY}2TkJtgTHY1_z=gs0>4B{2XgP&|IE)0Vncg9d@QD9MYx z|H#8m*<58K%2nCQu;U<;O_LF0F`%U9KuW*bnhYWaX#lYlP2;_=MEHPj8%__G`^H9` z;xqk=G5(7<#{9a;d`4`{yu~6t(-g42EvspJdLM`a+hN`MY__YCVqH4rY|Zh$h$VH}08!Ws@YGs5e?(K^p*HhA$it`hsT77SGJuqi0`CQc-r8`XM>L?)) zn7bb90v>4H=q6n^L-i1O&VllLtagRxYL+64UCp3jJURHxn`&1$ZWv>LuY`5$W8aU} zu5zrFl(1)pl0<5<@Eh-`U1f=$GEP;zSn_qg*SgBlDj%{7t^HGe-CU|xhQOZ&_C31a z7PqZh#US6*? zTm6YtLIq`b=$@<=LKL2$%-M204B`N|cQ!BlDP=FUwgKB(4j*!08#{j<5EcxcJ@1ba zjyW)GV+=1|9%>^+^e`Cwf)YDh+fkXz#nOiQ`8~X^u~O$Hsr0mFv!Vn@#Y|P!x$|2u z04LpEjxdRkm{Y{nBs5ctsG(ZNdW#>@vX_A=)0qNulRTx=N3M1qkmP~!KL@J%&3f15 zYh|&&9NIfptxkRMX>+7d_$+Hm+xqLUas{4P(sd(Tdg+Jsn58|CA`%4W>QwpXw^~_} zAI+{+)7W7_yCzrkdFBIWRC0ck3?`@y*Y2AqWmz2ynawoG!E0@^K?KNx@l(zXXXN8d ziT7NYXo3-sb4_Db?Bu$Qq)dw;TSaWQw40qut`e_f@u7uYILS)6Zk`lHDKvJu!;4*d zauqB(f;?daP9VEkDqgmF84W~ZtV{voHeo~xNd>W>_%s4m!Aa+EhOU59s2b-%anyCtoF#1QdKvX>LSc!ONMh0^ zd+p@Q06r5~qC0l$@fW_JC57}k1$sxn*Jh)!_(AvvJyOco94F$~3B+5_@h^PWWPl2I zK;wv{x3n)b$Q#m+X!qONhitX?!HghwVZycDB0X?d`v_No3SclAKQ;G_I1m{)O%Vc~ zpc|s^XbHYGa2Qy;&Y4On_}05RFM2*X8g0rq*Tf$bY5=O zS|VHnQdku^sK~sn^K!8w2~k|EUZC~?oK;}A-PU<>uJk9#6#^}~66AVY=LHI+oYv|W zp4uc{tYpYus6230)K@F>qSu0`lt_t&IfMZ??uM5G*CPktx+E)U5YmR7K&j9ik&-L) zEaz%MO6lyG53KlsdVg^|&q+TpGwCKFQWv+|^uSUyWUB~>jv?cqGw^Pk9yzjSt~EPO zTtG&Od{z71Ha#{w2^N$YTSS0B=q|`9-)_?*PxwNj7uoCt^I5UB7$*HYcaF~b^XWE3u!fNO0d zsZ2P4&5%cFbg(tRpU5Q;wmz3BJG@&ZJX1BomPS!Fhl#X;KP=@98eyfgahi>R?*fL7-9$ufuZuxXZQVAtV)80G6$6>|Fr->lUP>qn=D{t zA}G)=#mVOU4#hc1jxU5v%YbB*{0qN4WNgHBO`cdIM2E3^O`=NSdxtF)~;+7V}{``o(uGs*x;X;dX%PSG^1g~Q8` z*oE(Q!M=8ENqU*xlca)0oA`%tbH%?b_;__gja%>zgmkH%E2=SR9}IQfFBgo1ZOKrc z>4Pz&jokU;d;H7uSuE7Z3&^^m*>k=7YQgB{3p9shfyeqyGgr>XSJtxCcE-cz+dq}3T;(O3gUiMU?jddsf( zAvNqC%yT@4VxVn!-z?UpZh@dI!$AZAjZY7;;!uDm7QBZKR<`!a2kYgJ6 zwH)aCz3?C*+(lmtuO(pC+>{tQK)AxXo4%E6841Teib;}I2s)5s+gx3Vz)RRc&h8+U zBXHIU!~yTrUDkq}7sWYCwCT%_^?b**a+JIQ3qQBGujFF4*%r&RHZH?n9Zyp3CO>kY zQacF!o5bbG+cpwPg|~Z@Wiwwunu!5vvH0z&SGY+zqU+i2ngDj1Fn@lO{$=GAjorxT zLNTu>KYe^%AHS@pOD(uM%RZP8)B`YJ@i&xGS?(sz*{Lf2n4O4>iC8?->km)T?S^Mr zvS}Z82_~q3NiRKAY>|tX94Q4Q+c_cCgIOBiO2F)WBF*rT;+=eA!D>_PD8aCxcg9me z`ExlVFp)K?T1y&x{gg?C+mn{hhwm;pu0M`qCyzhpE8>_Iews<_jTCNae}0N zACt7+L|@8iN(6VtfJY}$K*@fM7d)^gPiOjgR6s#-PJz6PGVIKxnhq(Y^&b)-m9sCm zGa;Ck#O_!gDYVi_iPA5qAo9$sUoAJA5WU;@G&)}d<~GY|EepT6x1pBknM&_OGw1m> zCw0X5#atSSS2RVPD&?IHvj6f4mHEfje$p`bn|JVmwchrDp5LJ7uHN(4nGO2USIYD2 zetDgKwSSU9@|l*t5|+fiKx_H#?7W*|HV0~iy|NsT;ab?A>Jec$4g!-Pfp-y~>PhhH zhAxjSf2iMF=^$Qk{82?Co99?$UJ3F#dS(|)=nP>(O|icEwmlIz<*@vFKTWJq$?Ug=#mbV2|qVr_B>gL1q-w#M=92z zp8~^F1jA_j&gyO*=eN-XH&u{=&qNUzekfjnFUk7;|LV6EwM~@mW1@esdX1?GRSpLX zK-b&4Z;mN)ek?O!=WuwSh2sP*!c49n#=J2!POk7NSnw=mS;40k^wpvTo#jV5iKvX0 ztZ+p+mH;Z9er?B<4oTaLE4!qV9jhBZeTeqrx#FiR7T^Sy(T1jOs|q z6+)%@ZHgSe6BDRYdXksox1KX?qP)d~I_D&TRyUiq^QSpz1F=fE!<^A^Xri7}xY{eH zY2#)pcLALlQ&6x?bTnCUOgnQK%UmX@%wo1Y8f+l1iVPJY<#ypDG37V`685R!tq=^X5o}DQbt{^a)ClgFUPnaS;jX_vov>7+&047rwU56ncg(_bB>*nAk(it1p=y^o`O zyZzmFL~_iS5y)t^JqC}3d3!)(hc@4H)A)sb`)0u}?AsTI1Jc{}?TdT(!oCe8_V*4~ zx8U7>>r(?a)Gyy60>zdv!~P*$?%TJ)hwh~pE}eY>_50YoeO?m=!n@|}V=MJ3;dLNW zr}F>SIQg9NdFLc~qV8X8DGDzr?;$_&gz|BL@CQnZ?^XzdPK;Z_B&0o!z&$L+=LN#x zc(=^==~6$jt2fvB*bskQlKj{Ze_WFM*bskQlKj{Ze_oRO+!B9YlKk8ff2@Dr>&oX| z!*i41h1c-H_<3TjJtIw;#JyDu@&USg#V*%7jEWz1W1ATko3D1cThJ4v)uo#TMmq^z zob7&BObRG(HSpYB>+>$9;3QWYfKF6xRJ{$Yodd&*?q7Xa!53~hcY;!)m;yX=Wa9>g zu56aW;rSpBe3J0WNp2W(BF0|m2P-|H?zD&RWyL3YI-xa_c;I|t^F4W^#I<8_m zycJb9AH^<#G?F<)RA!s5o&6P9ZQVhAKN5g*I=OuDH%$td}i$q4Pz`i;#Al^lpR zQlgtbLP8yYV|5V#28LYV98WpEhhG!LkcJxdFR2qiv}X!=NL zK3^=ZKpnw^CvD$CECz8{QfAl;k`O{W3uY}kgYx-Wc?UQnk40?oyUR9mynA{0hIxBV z{NsZX<%Q^r8V=-;EkQLf2uNvK&uD9OCaS zIan>4I9P+omg4Fzk;G(cF?ABfto@08FV{6Kp`0A)4yftxKfgPk;@2|!036`#KU6~V zhB!NmIdUE7I%tOD?}%GtahoNTUk$)^xl5z-G8EeE9q!})J!H$J3{Xfyk)HP|C@lF?|yTr;x-rj*E3gvq*ISw{5yBTO57s1o8t%|69Hq659V z*g0D4251f}l7px%jx9G=m@*7WJZ8j(?O0m)q0kO&RJLQ;hj80)pa3mpewrB$1hK*| z{fl;ZF5}-X_d(#}ZII^CYTt^^C)en`?0ocMo{OV5q;?%{hVDN=cPn&1pGn3zC(C{X zOiC>6_jUd$a{r$2g5t*AJ@gk+s<`WjqrV~CE@7IJBSi54fiu!Ja%5gB@paiL;#goQ zz9+mJmHq%BU-chNs35jnSJPlDWTu0I19@se(F`KXG@GELxC2Td-qmXZ>H#G_6S;f2 zcbuSr@uet!dqG&c_T%3O(T5yxgpR(ZE=~&HNy_Fw@)_l%9&)NSbCDZMt>^8oyOgvM zg>tsGDU5+97EX35B+rJRB}Fgx`;2|rT^Fl#H;^AGdKu8(HEA69;|YU5iOXTKJ>n<< zNt^P8$O>)`e8$I1U82xIK0B**#Lb3(;B9R#z9Jl#?)SgMO<1BEup2NpkdF|Fg6I*# zRu;$6yjl4cp(5t)^jHLvr?66H(Csm)f| zC4}0lXR|g_CpNw$$hKw#hokTu&I6sT%`H{S{kLs+SB$Bc5LkI0J6bo!Dca(_L1K|m z3PZEKWCF6Mq}Tl*EUP2rH{u3x=Bit&6y@v&z=>oZTsKr6t*e!yN0|4}FR+%82q8zQ zIXEZ99y`WJH1ZjyoHriGo_~+f0`dlej)WaglaPQb*c``feK1ii2eaF#W3vY$9J6&o z$Wo;-&?KFm$QJF-Y#~eBb3PC|5n-uNR#&Ki{btxF6b}hY1!*$jiq1Y*_*g4gN@d`R zP$vgDFMX|V$5Tif%3qlTVLaHM=A3a2q_NL;v_gmo*Ba$iY53Udo{Rt1yj#3q($)Ae zam})Y+=Xp3gFwLw$9lRq9TRU$j!)zKC>k21!oCf?NxsK zm3gxW0Bi-AnFSw7j?379t40Y*)9lvn`xbC4qX~u{3B2v-5?leU^ZwemrEAd_bV2`- zHZ@(=YQN9AlGT0WT!WMkGB+$$4EDA8G&|>p_L-QTC1x1s3|F2gB;nFG(^zb!0yyFV<^D;9|UbxwIHp}d}W}D%yAZW}6qlyP_d$T($Tm={m-%3+y zb8?ehMGezcq!gP?9e&%y^T<|d5ffO3Qi@;p_}fpz9*^VM@mGG?M-s;vt}81o_C`~Ktnp*aJ+Nf9Vywu z2A1~D&1=Ro?~asV6qo>!A{VYiN9`w}9HfyDzp0NuU_IPi?xzeTvMuXo`4tw1jT3U; z8HJ05afGW>d~&KAbVP-(@W$?b<12h-&9_~n)sXu|(}p4$=8tzhZ@Yofwa7Dyk@(zL z)=~Y9QV4JOHrQDt2#~4%)*FlC>MB4dc}SS*`P5>2Zg_oax%W)37Y5Xa7JSo`d3TqN z;-Z18Tz1`!Bnf!C10j5V^>Ka}1LXRBklB$^RS-qM*ElIx zjD{jhp!s6u8 z|7t)F$`w1y>aW>8y^bo-gBtMqV6+8oCKm4JXqgt)=QZQDMwBqk*Kf_Z=3M~b#c2I$><)DX6| zd}MMQnL;6+oT*cC%pSOog-o2{WI+#dqy|sc4azbh`cIUdhqWA+rSKamg#6~*U25`6 zE!%Yi24sjx>^&fSd;uO4KE42tpU0N+usOo9uhlw*z7d|km0Z);ml`v8RT+|M>t{s8 zbgbvcVLV;vYG3~?!k6Df70)6yPiH8Sg2rVxoH7m;^E7FzY!O09x^zJQsOv&}6Jhx6DOqzayECO!NbINtSCdwrHkrHye zkBK8RW(mvE2BkM8nOnE^GZlY$S{DfKyoRPZbi#J%{JnuGCNfCWYe>P;-aoi5ONs@` z)MfM;OWi!%yl(vk?7o#ATQy<*{rO`Dq@TDqS?KAsV|uooY{;uQr9^U*@q)vJctX14 zj?~;8(^uEbVcGT}vwxe+RMMdy1~SC5f!S(Lh1^>8_BNWxSWY-3y?*#vcp)&<3Ft>c zaCA2>v42enhn!XFdz$M=$j~WDjcQ&7!k{XDh5cLBaZj%%-F~SiUWus1T1&(^+;m9g z$clHnspPoqPC%0*8*lxs0mqVT{x+mCgFVfEBlS?R=oE1(AZ<~l0FG(Jyd4G)(fP`4 zWn#IQHxZ~lOlOpiGWVi{@akli42YDS4dp#Qn#4j|5l4o?P~8cRXS8SPLzQMTtqf32AC|k7BKbnS& zejyKhf^zEW(GqqS(XwP5mie=!IT$)mku5C`8)yxhL+kcHdnE)UUSHRMZ5#V6Cbjwq zD}Y&Ldzp)4OWGaw8|U(-&GVhJPdqAL``2Z#9*hm%RH|l4yzfp9r-*Ug2Nl`9SVrHk z)Z@96%g9)WH;}MOxVGjwllUwG=p_WC_{uMSvub9bgzcn7i3$koI;4ncm#!|h(Cz6J}o)UqDC0*4v6OkmBzxE*9)61oSStak*wtLR9Z0tK_pAZY@n!@!om8VWvv&CUY$Pvbhusse&HB3i}#={!jj5;{rQ)i;Xlx&-4n`f_!g|8`e zS}ejB#W)Hh%GMrqm6l+aAv>h}jdM$wLD>Snq}@=7MjvW1Uv5pF@9Z*Qla`_Z_+VK) zU&{EjVFnU~GXOpp=;CFA0Wptwg_HU2#|nm&M$b2`e$CW*#rCQ-e76zd0!dA}?em->ZMb{;Q0ffOF+pV*o$o$d;KUY62OchvYYw-RI+oq>Q4`oO@C(jpZfTe$PAee8z z-8b^)LudJxUXL>G$O7M_6rR}(L1I4Pj0+^j zbINtGP4$SElcvgvwn+2y4ee^7BM);l>GlxusCXIIBH&co7{pOYUQT`g&_@-yMaWx- zj60!?CdK#=zGHW6FI$`0Ckl8J@ijY8_@c1P&tIIhCIK*1oQAlT>f$-dmq9u+H!9EQ z&6=B!BWVDO_83z3fzPY3QotYLng*}AlS$Q!xeKlL zJkNnKon=iC^U>8d3uDT8_H&Cn%5BeXwN&k_Qs8`PNEc-~wn3OQ;DJsm5TiY+86&%s z(~}MF^!v{_xune(xPgozF2T{c6Vv?hey?Hp#uhMhM5BW^@Y2WyW;Cnw- z^1>s2O!+1*^cmXwaj-?sHn4w`*3JiaN@>X#s2g-37(2l0VgJz#??>u-A(tqLvE(_r zQYl@JpwMlx6Qbgnd81bQm$Wj&_`yb17^p|#;K-F#!3-pu4xvI9t{ZBU*oML`M|-x^ z=p+@c^L&+XCHxdz8Lt1xf|op2V@(<)L5C#uq@K>wMz&I$f^nCK*$HXhww`U0itVwv zvcHNP0L?~Sy3mNOz*`bhKd^a&6T$`C|Lb`cUm=rIP zFv4{<^HNBM$|1ao_cqTi#MtR3 zAG`-U&1=bH!fpw11B5j>%XYD374M!X09E350q+-eS*{ zBd&2Xs7pSxU=F=#z@!eU2_clfy`Sv3j;&fry6{-HH7|K{T!U7CvH9TTf`t?U23� zHwH&vlD64E8{|reyNJPLY(^5*^@cXMiVJ~>;S_VsGImO4x$V2>iyCFX1~Jz15z;vq z_hi{X%D;gp`-XHi2ga9bX!QYr0O_|0R}|K%#_~=owOvEP)K^SsFViqGq~|J>>!ox= zhv6A5!8YAr@V{{y3Ax3&_7UIP$CHAug^C@)4*M08w5;pMl^=@*FA$4$um3t7)^o!Y zL43Y$rm1|oC~1Q*Ah#eYIAM2oGoHI*L(`P>MU)g-0ffRhc7e0{_^qE~qVAx*;{uVC*$am5IzQ;_?BlZVANr{nwuS zx8|Drrox{;i~-D_dF*_4aO$Kb5pRbp#@l)E*k8QZ7YnZI?zz$iVk#Wg(Bh@j?bE5- z;;$1^W9&}A!0}HkxUS~&dj#5a&4Fd;LPMi<@t~@L2fzfn$u&B5Z`R9~Q_Y~3bSE~L zIo2&8%_vil5-s z47rD3suQv;I01=Iznx;Z&c{%%$c62=vO#;)bRFpm&`@F~FchiAAjNnOgWYnzHt{SDsGZ>|hD&gFqdonmp+>+G!H!S*j^cZxW-e zF^@_}X^A|4I>kR&sUneHP;66hhi^X}a4qOW(LNCSR+4T|vSn^%;Hr?*nD4!q`V@otb`O>e!NB4#_ zZFL~kbG7%%zTg#J$BXw`&Ivvpso*>y);fTLzkIKy^_ZOlSLSm9(l_t*F=;;A3Z}?; zkXlO|Fk?<{DDCT&vKh`S3X(xNmw?ie4z2`BzIcTUPGK6#T;B{dP5TqPNJ5#%@O>f@ z^H7%hpUwy-%Wbv^uzUYx5+_dxVfBf+wDlq>aaKV1k(X*r1foE7JO;H0VGH0Uk)%Tr ztUk)@cpRTukG?-63BnD=p);lNh7{{1;J!q!;d~*f$SkCgvf&^bma7cMum?s*>J4ca zsW%vKPC|l<&fMo4()K%$iiVK^1jGcUa-AKiA{SlPxHNM0tuulZ$EkQ2%LipBT=UpT z*)7-}8_Se(vAP=%qLKvuu>n-A1YE1HoFiV+zt8n9X*vO+Q-BSX1b&1n0^!jYl+dEg z9g~tiJUVBfL{s3U?uHLc%aJqJK0tZBw@&cxmfhlPL-cAhR{oqa9i15+rG!Os0SkjQ zY2=ya<{k_wGa~!Vt@bu0m0Dfxy~u$M1J=GY0r-Y=v&5?JLDbN}V&6577x0JcKH71e zFvC+PWA0HE91b3jb0XG$CtD$&f(l3V&4c~nJKfFRmV);&{Z-h zSD9sl=@V=;=G?+SF)QC~8~L&pYHwcn3*V(#Mh*~Xtda=yhOj-7I9>6UjQ^>hU9k+a z$r!MRVQm7@4EI?0lJ;kQ-w?cDtbRj2n|#X_%-^A1%B^btbQv^}0rEZ#!AV8fE0zEd zD&!hK*3&u^sU!#->!=7O)jl;79urN{ERL1E^79aU%iE*@VIh9A=-Ds2Y=&UV%OL}< zm*9}Vw`{wG4x#awcw%%a?`AIg57yji!KUsIS9v!p(SL7Zg&q@h;zGPx@|!#P=7^rs zijP`%19fnXRif;71FU~W_w!q6K0}?6w#M#q-clPEs&wT#QKH#`;pgb^fl?c7u?N@Q z@DV~fpqn8YqcWM%3(z4_xEVTupX1lJk8C3)IbtX~iYVZtj1KzGCpOQKZLsW=u~8{G z_{Ih4rHr;5%)T<9=zM}6N512KV|o5sB`yGVRsM@Sm%-M`>32L zn=D7O3?Z`*(0wa=XRu>pH3P+nUVVb_-p)Kf#OIWZqnojGRfB7(H4B?Gs;eT?Mw`)<WpNb)||Vtek$FDtDu>FkFb{(GY~&P`mMPaPl{?t*e@l0j8I+({j=E-ntOH?#zv2M zN}Sk;x>(+Wr-Wh8*1DPhi)1J+A*`MklqsOx5-7bpX)jZFN^-I}heG@=&(ozfC)5{F zyi2;6O!dMam6)e>VFoiC@67}PxymccJ9m_!h2C^RxgJ6l5reP%|YCb8fTY2?$@IWw1!nhUpWu*NNq298K1V zZ4@CaX?sn%Tw_kcvdQ1OYm_G`5AY=|FPg+63RZiU@_YTuNg37ovo8}S044*yp}ba` zmeo_v6lmA4VeTymmE~%Zg~?x(O<ZMIW=iZg>gR92Tkc18_x5^Iu-+K}GK|pR_QT*1u3G?U%H$_qbZjuW zuI6bgI2TK2kk8-Ui;mT=Q7> zFiBm=I%M^KNHdYn!Ih*eRwp7#@bEIgb@=d5QiA=$bmci`$5cUx0WEEIGvXAV5iwFo z4b)CrW~gOdpjrQqmDOX)(gG}PIuP*QR+hkWJ?ZX&qH_P{bms-X*&GgwW!EHyn)x z5rnd={!8h8@j}>g*XT=`%&{9*GnT0SoO+N2=g{X7M0}yIsUQLN|5;|A^1w#Mvm;NSso!g|BOfp%?I>o zAO%dOlF2=^_i&GvKH=SSUB}_w{J_aWnEV(oz!!*S5j6JD+6K>N8Ah=F<*Fj=NlhZP z>c5p|BW62<87kiA=Du}KHpWW~4=Er*1xv8Q*|teZ@naT*^y>I;?|8kFO9lCHPEw_XP9X*~}t=baf z2pG`a1Ew_ji*-Mj*6OepNt3#M9|+acD#A}0jHLwFVgW0T@&7`?<;-8@hF z2>b4M;^u$!UN4rm zddfcD@f#(1=B+rM*FQ*@4G)9a5@CtYgwjaR6&UT{GYATdv5(So%_ya0f`)`(i4tMc zrfaq*7FD#MMF?uR;TGWL3CGqhd4Op#?C;z>VP0L-4Gp(M{Di%`T4cEdqpiRQ-?&(b zz~iMZsPgbl-!?SurC@SxQ(Gbs;pbZ=D>O*_rv08s_4;<}b zU%#xB?-9{d*maKyQ9ZDEjC>Y2z%xdPGYExaYUViMt};Y8`2LRxr~84n$Arlf{xzT& zsq?&Cu`;Gd?EQ@*`HfD#ML7MGga$9`Cj@k5IG995h>zpjK16FXG$epTwS&AbM=I~L zB^z;1S~pO{oSpRG;ZcNXKx=8a&k>YVGaw-bVi3ZXkr zasDB#DD+^}KUx}$GMbzyxV>bG^)mE<{(K>Ae&8II%i8laHZ^jb8pykb{wqUO|S{@cElKHGa84ID%CCrDRz35lpb}NtfSkO}n>-r(f}nE(TAsn#Xx{T>(J{xgaLv^MoF15b>bw!ejDlIpiidvMB%L5< za;gTjCD6BQ62h~uINz1A7KhD0X*`9aqndyCOC3RqCJj5YZe&TG_Gkqj`9j~a&YEN6 zU(g=Y9!9fKaf@;MLrC~7ZMC-$7A7d|b-oE2^P6vReC7SJp4`rt5Vc#i^j}!fv(b4d zo;Iy@yqG{9ZG+34Zm4c3lm&D2Tm6T@!JJ*tjn!;iuJ6+=y8s zz&xcnO7fg-O7hUNbl&&$Daz@v$p*KQGGdayl7mt?=BSc)nG!cmIK zfzsRR_=+>K!*61?48F*^TR0}HMct8_8!(XH(!SEVFKFLrzYl5b+q8W7>xh7%i(Q7@A@>l)l@M>;J$y}h_hgrO zT}Mhrw-HZ=V53F;hVqE_bq&9~`$&{S-{@+eQ`&oLv&-WUs?p$}J}7gmBTw1eYe9m}f+*6GE(jsvNk~laghXO&{=#0^r zH?%JX1-&7~eIn^O!R^q#7F-_N5PH%YcPguQ-S?2aTW{H{J;~1u)Mo?FlUR^tw`Rn}<=>>Zi2&8mHASLhU|NZ z3Z~y{Gp&lbPk?IRh#x@MN7E5$FyoVTj7DA@QDizzPyPVnY8wTG^iXb zuxEjm9F7nJSJo;mXF=X1sStLA1p}^xw4gPWF#wopgm->JD(|KZZ(VDFITIDxqc^10 z{Nrf8t+Z8PaB&T|BHQkQT9cIGu!Nx`gWHeB01GLyxA0ShD@k|GnzEn5viu}zpI}(c zUqE=Dr95IaJtqy2Q}Y=jJ8c8}6r`L3W`9?5g6Ck!gDb`>6aIh`6-=zQ=JGWx%1%RE*V1SGeGo{fYbZ zX5idzrHj7kE6LC}c8w!k^lIMRVv5Aqe08N)oZ>dviap!gxmjIpF)p zadT~Un_QRqS~5pq)8WQ#6s`a+AnDv!rX8fgAXw#U6Gx<#o3v#6i4{}F)Wr}3CdfZ%PZqL1uPA&OBS2@#lA7F z!>`=2SOj2*a|**M_{=|A*TH8tAXss=gk=pzAl)=rAKRS|2@kb<)iITz#h2($NK90O zq90Pq9Vyx78HwrX5%~d#LPCj~n~xig=-N3Y9H696%LHzxN9Wxb|Q zMCJU%5MwC@`yR;j93|6{a?}biMcJtlEcaXPULFYh7NqEE_e`IYrl1l7@C(?Z)t}3A z!ek5kgD;^TK?TAD7-9qo3$>k`6@Gv6B)HDm8IbTKvEa3hLRR?w#gPzypbZ;3q4q+u z$yY-5wIgwx4nO)|5&}m^Z5|1E*CgL;_j`7+FOF7?Qb~eK;s$9dPm5rcv1w%bFZ=UH zO4vTN_(w%?13WLx26{n>A&S01Ot*+)Brm~otqw=x2~3`%g^voziVh;=eJ&R%zQVY` zQ%Y!PO&4#Mi6{Mr4i)|bgj@3x1VtH4ZCflNpPpa}QQ)Ybi7!dYV6A((bRJR@f@JU4 zTAF((bV~$--sJLU7yCbZA_e`=VMim;C0GS+5H4>>`A$gM5PGFiNM(W{btKLE;<(D7 z9E2zh<%Z=P9amW11Y9;9y#=H-RmW8(2SRVq>nHLB&bM&Eq#OIeUy*bC@BMWXf=Xj8*4iB;JnZg(g>^QSg z+HUo_QRJ@-fgM$b!ZRCKq*f+Vd9x-COpA-HGImEwF|Pdf5`kN>i;4R>Ks@}iOEsfv zi>FFlY&goTY`=yoyUWz@fL4DxRWNABHS2C8$;T%r$1~f|a0$<_rFU~*E3NE1s!Ewd zCrl3JtMU482G7g$;kRyF9frvvL?7W0vk3tTdH$DNsuh4yI1;KX=<)`cUFBbhBisHG zK?A6Y!c-_N)JR+`*aK~M%Psq!9Zw_)X*jRtbE_>Z2W6=JUzC7148f0w6bi1#$kTZ- zMB0UaN0zt=&hk+7AP{DM5u61ejvXo`;rhyruSk#3*G8d=m29p4mEBf}AJA*}*7_N( zc5_J1CsuoR8j$cTYjva;H6xfDn5IImcPAgck(#rq2rv33*;R_NK&#!>5S`IbJn6sY zaJ|sOFKm_P7RO`CvdovW=OQta8rsBX;?(u$q!=q*vVSxv$Q?(>bc6!DYNN*38eC2I zuH?A5&^kF19}*@OB2m#zKVYTxYbQ_BDA zdwcu(y}m>*t{=>I_0$$#59ZrGNvi!H@Z3kZ&q*xgTCOJbaN06`HIA4@VdERpv|bW3 z98nI<&F&to_XVXb=vzYsh?&UKxe4wJg$ZbB3`zN{zwggI%7ftUy!q#(*8tP0 zk7lFDjYHG`+Fd=TE{vz=Hn3CR>T%#3TwZscRfhMNneTa1S*$J834RweG=XrHpHKq)614$eo z1(Yk8Fg#FertBAU`^U%rm3B69R%g^R2hfsCf-mn0tzIZd2t$5KtM(8U`MEO|EC^-} z2Vmk$zf6LY`iLvN(<&%v3OihlEYf(Spb5N0l6_1&>Kcj(fFyH>N4G=?62XUoTZN z?EAH==r2fg9JcWS6ioFDpzCGOfIG*I<8pmtU*~XetmEc9Un=L&_C5r& zI>Kw#)em!AwTLvTVLPX~LL7djXr?8YO10kJj1nj;^y(0aAWxc#`5akuuG}squ1|72 zg)&`5UK}{Wx8=k@S}-JVjP`|P7T}mR50ZnjGAT~<9O1{6jnM+lD6fZ?7h1vRzVp}$GbK0w z{lS^c0n=u7Hv@_Sa5D&zN2HGx!eheM3gNb5e{K=jetpZHV4?zrM?ZM)EvXeIc+Ys! zVm}~P&4blEkiz0-dX|awIau&b(j^^oHTJ48DTZ0)LzlfH#2vaj%Pue~{xo*)IiZMw zF+`$?E|gY7O@D+^jOWEw3UVUr@R`$*H1)w+7TytyH<jVJLDx3Rc=!GcYbVqMHzJ7}VTsps;Y2A#8X#9Kwdt z;^ey8v=p8FhC57qHDz}vgzbq{+kY&r>ze)7Zh08p-aR|%R-XM`{25L*($Za$cIDYW z0d|EJK$y`ob7(8^ZTuFjmpo;)Lf~sf@4eP`xrRhp2{13#KtS1w6Z?Gm`Pg2lk zzE8#Gumv{wR4pa3vOi9_$8tI4o=jO>b~O#5MXcWGW`1F>P&jOj-12 z&s1)PZA%5c?5NuKyl+=&#;fxkDEea#j^EkUgV zdD_9260p2AdOq48PAi14o@tG~C46C>J*RwOoRR4sj5U>7cART*TyGm^OHePZ*$${P zRFE$A%9QIGkPbnnZo$bf_{wbZAs=F-AD7T`t;_IQrle?jM7weqqGjut(n@%ik6?7s z>bbhuQFpF%IN^v3+XAQq(Zi5mD=nsBnE0R&li3bDSz6J64vIGUYTrAg2&5l<&du+# z>cr#Iz7V6G^eycFdOWq-*kmeEQU8H!BT6yVk*nZUZf=v66zFg?3#FoJbsP177XIpL zzZE2G1ORw=vu_CRddO>agaJI$&@T3d@QwTSob)5E>TS>Og*1HO(!7y|tC;}d5IA~6 zzP{s?G@Pv=IGh1jVOfbgmXhOpTN=LdXoAc5N4MlNOTO)xypZ27Jd-!_`#I^FQPvk# zIGNpohzmMjo)gkbz+^#(IhNROi>l_eE!A=KbD97jm%YzdW)JlakXMNR95^&|qOyUB zZivj7A4Y#>Wy~OG3$jmx9a}9u_bo1F$C2&~IoewxOX;ZynxA?ATfVn9i`{tH%eIXy z;SsaM1MLw)SxutJ*o)05?H|QLE8oB4g0RZcDezO*9h3+G1(g%XQs7UZQ;Sol>pHI^ zOJJJF01LZ!Lb-XYI>rR;!d5$xZ?D3%OV9&CcbF_ex!OqK2wIOU?QHOsJ5Ho!Kdl8f zTr4B|N};Sa%tXrC0a&?pH}Hp0)NgH`rA3x8X8;`W>k$SZ!|yONEFdTxskM{Af6y4J zqs$V*rTVfP6osRw%p(6ESgJsfp6fbAr!6sEC$pKDl=F~y_Tmb!a2IBG1v;EnxLRyMdd3m$ykjq7a@E-c))oG|B1+sh=(Q z0yuW`6+V{DE5u_|f4A7h!)-v^P&i85$BLmiBoL3J_@(Y+!U&lgDN^Izd8`c3;28m? za!NH2q}JEEAacmgMSme8nh1dbAb`iJ;PGRAt_dECtjFT@DdCEG5Rp2elWS7v6QsQ8 zLV7H2$O6*>G65o_OsYzcoQL*8p~go@?;3cI2_HY{4@jSTgraCU&Su^boy zwa4X5x*R-c9iZ@RS^u%gH)($)Ca~Tl+;{zO9opqy5!NFPlfwDV(7H@h7r#{Zx<#J| z7$g34oC{sz~DD7Vc zO-br`*;i^o)T2Ot?jyh4_p!g*zD}_rcp>kiD6@bKSasCBJ&oD-Fgvl zK*!z>zwav&PBG8*6O>0$N?g2yrhe&vsUM)U6mZ^rlQbGx7+dAQ98e0+ig`I0Fpd!E z3efTwlsM1a%DA@#CxKv-z5M{Cbc*H6uK_kLCwOzf?Y17Q;=(BM%;UX%N4cF{pVFL$ z^F*{l&NF?05_brLjFj^Fp}171t<+JH=g(*UN?FotO7Uk}5O^3tB)=@u{6X4zOk)hR z_OHy(-K|tO^f~GB!L`r0z}s%xB6J)juE7TSbvU8(r;B4u8)CyVS$Hq9vp-Z#u`B?8 zC1Hm47TLn*+$u`ygV>%RhYTrg-8^GXs7JFV7hR28>~ah}Ymiv~>9%sI#q*UC1`PIy zXv;XtVbW3pLY?7iF`m9Oc*KI6H%t%tvSj^0Ta&-ilGO(``jS3CyA{K0_VGVSTMwc6 zmz2EfET1n1po0qaUls&51&l@oU0Zfe~)*g|fok;N`j4Q%; zxK1l(S%=}(9WM^nLBX)BkF2;s>L^>-(pWpi#T(jpV(JC$8)@+&33rzkRe!0?&bV0m zDp{(9Pf_9_m4d?S3hB^?P7lg**jnA}4`1dYbz(5TUQmKyDSjlpU^L)RF}3Y8q%FCk z1F3PfiieEtWjFDXH+M2Ju?nc7Yd~78Yl~cEG?!U4R}|)u4&)lZZLtn+AM&w1ZL#u5 zRau030AC!>XO>*8RYJ=RVTA2?xg41&eCs|CCpYID7jNWilH3~Gr%pplT|w}@)%Vj2 zUmA|f_I}NJAI+{OTh`IZk||?IJ157Mh*Y~N=@fqLixoeALAUSJbJCUoKNJDhA&@vm zR^HRvqLg;4j+TYkB{|yfM;h=&rjKp0Fc0bxIqUiQz`ACC7pU60*d-L0M{$7wI3^Gn z34FQcx;wte(ljD+Z2>J|NfKtFuttIV3~#&^^Ynz)IU-tsyUdH{n*&Hf)D1|w8_%zv zH4dG+mH0TuR&mMjC2Bjok4S6k*RrIVH{%6qLp!05K1_-I@`7)IK-4Q*Y_iZ+94?S1 zRt|e;5pCe!qTq(U!-r@o<)ZO3^6n5yTm8d-N6TP0bf*+Un!4w$YAPcG@0M*tfK2Dz zD3dmnmP_XKE9)C#K|S$@ffJ9se9)tRU+@xaN6m%AJz5f9x0^4AV%? zXsP}!xFKoXnn{adsSZNle!P!W(}#36xw^ttRguHDhY$n;RCTpD5ov|7;5Om77{8#H zTx+CK*kK9$vE7T<6{8`AF|!zKr_Yq_iHw)w2_pnaTJcG$c0fy} zbdhrE`76aVLw-c@R~m&_z#QG_H+m^GpY0Ji4wMzFfvml)mPGJu!{@4>fmo)P{x3-1 z_;sK03Ge%LZ+x>Cw4d?YU(wd=FEiW~)>Vo_`NHQHzI4w{ae44X5k28ol0PHmi@H_f zIznhgKELqYHybH|x(H%IZh;B@YR$8iV{{lzcs;gPTk;AeuPvapq?Q!cRj<7Z3J#9$ z;N$rs-y%KWoBv!Tt(J+v%r0iNx8Ny!f0-?r1_y2ib}D3BEzT~%No>>zX4!KkjL_lc zej&`l@CyErYU_EFG*)d!eA9@FHM2_ z2pL_sEN*bjLqhuc;{a-zt=R5rE4R4p!3I>j$ zs#v0XxcnH5u5s7dlry^NWIO>R1ZS#~>yG+jcH|L`7>4yz(&IF*N0r*{J{4u1fO|Y8 z;2Xlkl=;crlSySm}ND1XqX7f13^Rfd%17e|#pM%^Q z3!E78v4+5Mn56?(UJH(D*l-y!Y?NG^wI*vw07r{)!07xcD^RndsmTm)F*t{|K4ohi zv>gH>&XaDgbtXl7{JnI@Zv=YAj<;cxF<+WdW`?L40|gYE@a5Du`l>jeu`ao1D_$dl zR5XuxR6uuEwxmT-7`{>FHZ1-P++Fdv?>{@P9R7hnC)GIC*7W9lLic(}mnnfEblI!s z3b7?zd9qTQ&cRhUS#l+QvfK*m9hY)8>{H;Ge@i3uuA6!$DUc<;?PLcn!YyXpP^t}! z-=?|wYs_0Dy+Y;s*vP4`b#rVP=~+Enfv(Fdl^&!&{|ZLZk?m%+jgol8rP%O$93Hv) z>ES{uDLh;OKiyD3r)GoWrij{+7b^Zzw44U6lh$LgI}c6%%C>F2R1IqGEL=5gv1tJ{ z4yw~V)gP>UYu!!v2wbpMT8=0h!v8b6pKaMoa2hiiP1utK(Xiu_JI& zrOv+n`hLN+;?_sCGg9`9SPx!otL`Fd5(@GR?i|o2UKj>Sy80_21uRg}PX}aHolP; zFGzVG|2KV*7Xt1xQtBpYD=1Tm;NXVIZ66^NgU{}pbax}|WM%C@l5Q9n9|Dph`HE0! zUOmgQ`u0sE*fu^HJC!C*w;$4hGGMyHv_k^x^!qDe60F_bIo==awTiuUGF+k>^f~~$ z@`94fMa03k=S>oSMTIn*dn$s_&+SrW zn(^qU(j_<0E1h>ncngM6C^k6jx#>7t1n3RzY(naPaR@dD?@lCMJRvy#b9(ku!tmB_ zxPZhw2k4rgm-&h`2%Acm^3WZ3wB5R!pk^>DFfrx>!x`n?&%Okd<|v)d#tpV4UVH(W znrLL=`3g#WUES9bA8Z`?`-pb2Yghy(16dVzTlPN3D?*>lE9c?k2#=>@goti|qhd$Q z7e~|y$dz&vC3W(%&9_D#l>t|TUC5D{m{ZvuiUJtzEIDyQK{TCgg%qe7k%qcuWSLg0 zGV}eF8n*HKnwGWolnCHy9df`@<~L{PG;izl z@numzaJ-W1B9%!0ves|spQmvUcXo+o2#D_#Y%`-#5Eri?q`=~)VG`nltZ9F z%;|bg2)$ZumOw;E97nT|_P}^3&1#5Dy$DuXavUEMF5{fz#1SY=K*JOH0O8%Gq9Dih zM~H#MX@M2H`k0VD#N(+Vj|p#1PT4HrzqdTGl@hGnX5aWulRX>E`JG`Tlc%0Pw!x>#iTeFlPi8UF{)(7r8I`&>coMJZ@nwlYF zoYZG9P6aP?4tm}tz$Xcv%@e-?IlWE$YNtO$d;e~|dlGMm(DB;Xunw?T!DqrULjMw-TB^}6R%>$)8Ui9d$Id3B+ zRjx?GBdQ9gATJuid7-V zUyyRpabfHA)xaX{Nb+9uM@Sja_t1`jUKfB1Y?E@$?r<PSc_5Rz=$ce4Ldv`VVIjv;jb`@cEC=Jw_EdvvJ^33gX zd?>+H-q7NQ+FzY4n}@LsEW3(e0`Jq7WpOCI>JOXNWDOE^HTn9+Zaq|?g|hzsZ+WEc zAmFYYl5)`1e{arK;GxNXfQm_{M*0A4k?iCMr0Xn+NA9mX?KvCX)d)Su*3MRscilY zAX2a8_}d3)^S)T#KJq3Y;tIZqkV>y;1BFeuD?!DVp|rWDy@m~Ud|5^u5U-iVqM3kN|ACDZ0Ye@^Mnb}L(8ZoI>e>Y7KX|v5gXI?uSky)1vklk4eIyJ2@V;D- z3X8fnH2!3g642tItK}A8j#%1;1->9u?27jrhP~bIzpjizk8&}h$fdKFuTxa`D3;uD zq(D%iih?m{wLC`AO`yiHZgSn6Q0T2zZMb;<(-;wjSUj>=Ui4&2VQf@#KB!`P9lPcW zDcGm{=53hWGjy^{0W6H9_m35%UMIt=ZT1d_og#68cXeU~TahEr7{=JCWV|`(oqXHV zhYV3(9q%cSOz{2}5ADxk2X=gKV?Ktvv*zrsf7a4NIpWsYHSt{kQlfx zgmo1;ZJ-hc>xm+Z(nJAuhbXi8Cl0<-kVeS~?^c=-#rAD=NRcU*qZw(F?F6BH1~Q4P z@V0++hi<3U z!~c5;2`vGwlNFqe)EGi&QeA1uBQZ&3@xel#d1v6A91>!Auce&#;G<`)#`+o#SA#l- zLguiE(5ZV*9^!pMNu2$cUOa6zI&ITx)-#&t4(%Uvhpk43ty?ZKKU8|6l=NY%(TSPC zdWXw`o41zdkeB!FedJ>GuR{ko44g8CLv!1HHRp5a{zi=n35WW!c-Qy+eW(Pk>gqKT zeOcIXti_jrPDT_6Gg<%`!$D`Ml3Oy?=6@Bfuy58?t0Yx>=PE+K;^HYzs<>8HaF#9c zM=Ster>EAjxMPtH6)g4RD}r4{assaw$;v>VDF}AGR#l>Q(<61C{?n6_+5TJk@zk9V z!U|a*!1n#-{rX80|JcMMg)E=#srSbI>&Gtpm;!vt<55Fo56b(7$n7EIYxjZ#HN;>g zDgCNEiB+|>e9Rt(T`buOV#D1D0U#{6RGojQ$2hm-u$ zJ;BmDl9#m&VqfLt0vMb_IqV#sSu6STa}s6>S%14>5e{dZD=3&UEn`BvAekqPYiBNg zv~7Budk5{)up^<>MCRLmCEZ@Zy7u~MDO`}@9!Y@t8e;L7a4i5>pRSuU|hc<+qm0^#VS z#=JH!msnH^UuHsO8ANX0l(3Vd{D#dVDHBgCKU&=9PmEUkh*>Hx z=9V`ViZN2AAQy8?A?i~6TlxNI6WaIo9!hB6+h--AeIpOXhID1f9BTO_b#F!&-5+pb zdT%4Sb+6wt&tRdk>w-&Fo@1<@h7Fv#p%T~)W4=sye*!uA7dm1~(%~1#Igt79N&=vu z=&$T*$#X1T=GD>%{LVMRy3u=;B$w)izP%j^$4TIlrBJDZ!&dbZHn23ShE&iviS-V# zm)abtEs?^`yZbLn@_z|aD=1ufANe6TpOA}r_nAD(N2dp_BklcFNXd~iKIf6!^kZ7G z>|WXTwxoBFS_Gl2&6#EB>P#0#gyh_AHn%7@|t+9sa( z)XufXb|i8{w)dWk7)N7CoO>3@dvBTx;|nz4nxu%t$kkoi}**E2fxglCq7WL`W_$Qi6W zcm-QbNg*Qr|FDa1{sa=KR4l-G&tUoDSej9G)zi;RWYM_-~4j63&Gl!st|DR@HOtVD>RA6Xtoz#WaVWUi@Z$ml`3Z%6Z0ksN|yV>fBs zod64iZ$klbHbwuHrRwGmkSV~e2bp&~! z^I-Jh3FF7eL)Uc1@&pzt`V^CD4hua`i{tO{QE`OZ+o>GdfiBx5i`~rg;Z?i(Rapm~ z#(s@%vm?iGS3CAod7wmNPGB`nc10$f89TyU3C4T_8||ysnww`9`Dk9Q#w=SssXLwU zNUR1HEMU(jfvzX$S*+yBu10V}l`y*E$R;lVw5*>Mf}>Mff(BCM75L|>I6sVJo&u=? zJu=7ii82N6$48)Yk@Y?4{HsWnK#o}0?~h>T*?y0wk4^z$&V%4tQL{BNQpn?rSobOy zWeTN^7FIqWTgu6$+(WgUu#!Z?VB` zB%u6Qx&EdJeHGzmtNvp%*b?2?wIJg0n^RHb%C!q}E$Yro+-(ZvYUwjruW)+J{_Ik& zzj(QqitBqj$VD?^bvJ`ELJtQlvNCV8lPmqhVVOwz7+eY^vKICTwNmF^r%{JsD^(o! zvloszRP0m3zRdp2tdn4a_T`i-U2A%q`W1N#|)j22lq-2jK0p%;E~8W`axbW zYcw6cTRzRl?|qWlkC%+q>dI zwt79x+!V%VItS3t+u@~YQm!iRi8{g<@S#)oKZvJ_cGTQPxe+IxhFU=36R~=g+v4&g zX{UiH&?7UTPDn@qu^8VCMyQCrPLv56$qgw&M;*p*EKV;K z*-b?~0c7Q)UI$>1Qig|HNX9p9x?x?AF?t)wuy1S4Pb}P_EUMccfc6=21XtOHTTl-i z={1x}=-g3|g!+Y=^n;Wm@gIS4IVYKnkyxo8&q-n?`(HqVz#~ralEq)*6gHi8_ zRXhh$Zx8stTN@%XG_8wBu^%qdv?%i;kxgW}93craZuBH<#mVeenz)lG*i3uok$5Y|SF-wKrHE$tvy0HPe5n|qw2`WxrOgs& z^a)5^%^s$>Ro})J@gIxveQ7!s45b8}GPADtx8ZH1wBSI+B}rw%aT^o&A3{oow`G|k zTrKr(?TD{vO7F=_AnfTTM1N4ql*jpu1}BVm0SbHNTQ7UBHEV>J7G!ESC-*)wa(ysu z3T+apdHa({F@9HvWbB4WQ!7zHNF?yGS>k4t(>1aMtEHvD$|+bqc7$Iow>dKB;F%je zASoo@DVMouPaq}sSU#RC=8$uS?3g83Y?OJKis z7CCED8P|5hP2lTHhqQg6+0(v@G$Z{fEY`{=HXNh>9C8>-3_^$da7FMN#pa{|SE1bU zWAe#M?Oi(k*dap%6a29yU+U0gt>rc7>N_ue^^)m99_mt^DLI;7wBPEV|FpA5RY7`M zu^k+yQHz%kmiHWxfi$D4!Z!+e;)%TjEMVqu zNWuX9*2BE-;K|ZZM6#Hrp81}N`PIE0lp%?f~PTHn%>bs zIVEy`)N3&6UhCup^Df_llT5+iR#GK3YCnF$>re|6_#GN7P%^!VEA4o zl?|($8@6og%}eIxDUmqj{iRk4?M-L~t6iU7&_wXQCsXq29=Q?%i1D_c5 z`d)aq_$x}dZluhS0=gQ#k6@AfMr(~BaGAwEb}1*oH+0BDH~JkVlDg4zN+bc6imQF} z=*cZ3r8RM%KLZtq-uelBR(N7CY0NEcaO_6?ZP~L(oEs$%6-o!Xni7iQHRQ1^4@2q5 zIXdTkVLz&~wX+dihZ8VJ5u)FoR`L1-6leDv;1cigt?UBP9)`Y~`I6v9hj*A=%9=Dw zf?{;Kxv&u$U4q*3uD20NsjKn&c@=fGvAPc}>~0%Y#Xx#A({9;|=PtIKdUF7J1fha-KpbvabLr!{RmPf$=cO16v*TQ1VE>0^HAm$3FJzy_44^?$4^J(pGlak7G%gp qkla!vh$gU!pzjmNt1;j8x0B93 diff --git a/utils/glcanvas/samples/isosurf/isosurf.h b/utils/glcanvas/samples/isosurf/isosurf.h deleted file mode 100644 index e84098c56b..0000000000 --- a/utils/glcanvas/samples/isosurf/isosurf.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: isosurf.h -// Purpose: wxGLCanvas demo program -// Author: Brian Paul (original gltk version), Wolfram Gloger -// Modified by: Julian Smart -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_ISOSURF_H_ -#define _WX_ISOSURF_H_ - -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(void); -}; - -class TestGLCanvas: public wxGLCanvas -{ - public: - TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "TestGLCanvas", - int* gl_attrib = NULL); - ~TestGLCanvas(void); - - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void OnChar(wxKeyEvent& event); - void OnMouseEvent(wxMouseEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, - long style = wxDEFAULT_FRAME_STYLE); - - void OnExit(wxCommandEvent& event); -public: - TestGLCanvas* m_canvas; - -DECLARE_EVENT_TABLE() -}; - -#endif - diff --git a/utils/glcanvas/samples/isosurf/isosurf.rc b/utils/glcanvas/samples/isosurf/isosurf.rc deleted file mode 100644 index 7655c62a4c..0000000000 --- a/utils/glcanvas/samples/isosurf/isosurf.rc +++ /dev/null @@ -1,3 +0,0 @@ -mondrian ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/utils/glcanvas/samples/isosurf/makefile.b32 b/utils/glcanvas/samples/isosurf/makefile.b32 deleted file mode 100644 index 27bd57a6e6..0000000000 --- a/utils/glcanvas/samples/isosurf/makefile.b32 +++ /dev/null @@ -1,22 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=isosurf -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -OBJECTS = $(TARGET).obj -EXTRATARGETS=isosurf.dat - -!include $(WXDIR)\src\makeprog.b32 - -isosurf.dat: isosurf.dat.gz - gzip -c -d isosurf.dat.gz > isosurf.dat - diff --git a/utils/glcanvas/samples/isosurf/makefile.bcc b/utils/glcanvas/samples/isosurf/makefile.bcc deleted file mode 100644 index 778a628406..0000000000 --- a/utils/glcanvas/samples/isosurf/makefile.bcc +++ /dev/null @@ -1,25 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=isosurf -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -OBJECTS = $(TARGET).obj -EXTRATARGETS=isosurf.dat - -!include $(WXDIR)\src\makeprog.bcc - -isosurf.dat: isosurf.dat.gz - gzip -c -d isosurf.dat.gz > isosurf.dat - diff --git a/utils/glcanvas/samples/isosurf/makefile.g95 b/utils/glcanvas/samples/isosurf/makefile.g95 deleted file mode 100644 index 81b138d0ec..0000000000 --- a/utils/glcanvas/samples/isosurf/makefile.g95 +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../../../.. - -TARGET=isosurf -EXTRACPPFLAGS=-I../../win -EXTRALIBS=-lglcanvas -lopengl32 -lglu32 -OBJECTS = $(TARGET).o - -include $(WXDIR)/src/makeprog.g95 - -isosurf.dat: isosurf.dat.gz - gzip -c -d isosurf.dat.gz > isosurf.dat diff --git a/utils/glcanvas/samples/isosurf/makefile.unx b/utils/glcanvas/samples/isosurf/makefile.unx deleted file mode 100644 index d7b4d3d92b..0000000000 --- a/utils/glcanvas/samples/isosurf/makefile.unx +++ /dev/null @@ -1,27 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for isosurf example (UNIX). - -PROGRAM=isosurf - -OPENGLHOME=/home/jacs/mesa/Mesa-2.3 - -EXTRACPPFLAGS=-I$(OPENGLHOME)/include -I../../motif -EXTRALDFLAGS=-L$(OPENGLHOME)/lib -EXTRALDLIBS=-lglcanvas_motif -lMesaGL -lMesaGLU - -OBJECTS=$(PROGRAM).o -EXTRATARGETS=isosurf.dat - -include ../../../../src/makeprog.env - -isosurf.dat: isosurf.dat.gz - gzip -c -d isosurf.dat.gz > isosurf.dat - diff --git a/utils/glcanvas/samples/isosurf/makefile.vc b/utils/glcanvas/samples/isosurf/makefile.vc deleted file mode 100644 index be397eddd6..0000000000 --- a/utils/glcanvas/samples/isosurf/makefile.vc +++ /dev/null @@ -1,25 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=isosurf -OBJECTS = $(PROGRAM).obj -EXTRAINC=-I..\..\win -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib -EXTRATARGETS=isosurf.dat - -!include $(WXDIR)\src\makeprog.vc - -isosurf.dat: isosurf.dat.gz - gzip -c -d isosurf.dat.gz > isosurf.dat - - diff --git a/utils/glcanvas/samples/isosurf/makefile.wat b/utils/glcanvas/samples/isosurf/makefile.wat deleted file mode 100644 index 424761f965..0000000000 --- a/utils/glcanvas/samples/isosurf/makefile.wat +++ /dev/null @@ -1,20 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = isosurf -OBJECTS = $(PROGRAM).obj -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -EXTRATARGETS=isosurf.dat - -!include $(WXDIR)\src\makeprog.wat - -isosurf.dat: isosurf.dat.gz - gzip -c -d isosurf.dat.gz > isosurf.dat - diff --git a/utils/glcanvas/samples/isosurf/mondrian.ico b/utils/glcanvas/samples/isosurf/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z - * - * 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. - */ - -#ifdef __WXMSW__ -#include -#endif - -#include "lw.h" -#include -#include -#include - -#define wxInt32 int -#define wxUint32 unsigned int - -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#define MK_ID(a,b,c,d) ((((wxUint32)(a))<<24)| \ - (((wxUint32)(b))<<16)| \ - (((wxUint32)(c))<< 8)| \ - (((wxUint32)(d)) )) - -#define ID_FORM MK_ID('F','O','R','M') -#define ID_LWOB MK_ID('L','W','O','B') -#define ID_PNTS MK_ID('P','N','T','S') -#define ID_SRFS MK_ID('S','R','F','S') -#define ID_SURF MK_ID('S','U','R','F') -#define ID_POLS MK_ID('P','O','L','S') -#define ID_COLR MK_ID('C','O','L','R') - -static wxInt32 read_char(FILE *f) -{ - int c = fgetc(f); - return c; -} - -static wxInt32 read_short(FILE *f) -{ - return (read_char(f)<<8) | read_char(f); -} - -static wxInt32 read_long(FILE *f) -{ - return (read_char(f)<<24) | (read_char(f)<<16) | (read_char(f)<<8) | read_char(f); -} - -static GLfloat read_float(FILE *f) -{ - wxInt32 x = read_long(f); - return *(GLfloat*)&x; -} - -static int read_string(FILE *f, char *s) -{ - int c; - int cnt = 0; - do { - c = read_char(f); - if (cnt < LW_MAX_NAME_LEN) - s[cnt] = c; - else - s[LW_MAX_NAME_LEN-1] = 0; - cnt++; - } while (c != 0); - /* if length of string (including \0) is odd skip another byte */ - if (cnt%2) { - read_char(f); - cnt++; - } - return cnt; -} - -static void read_srfs(FILE *f, int nbytes, lwObject *lwo) -{ - int guess_cnt = lwo->material_cnt; - - while (nbytes > 0) { - lwMaterial *material; - - /* allocate more memory for materials if needed */ - if (guess_cnt <= lwo->material_cnt) { - guess_cnt += guess_cnt/2 + 4; - lwo->material = (lwMaterial*) realloc(lwo->material, sizeof(lwMaterial)*guess_cnt); - } - material = lwo->material + lwo->material_cnt++; - - /* read name */ - nbytes -= read_string(f,material->name); - - /* defaults */ - material->r = 0.7; - material->g = 0.7; - material->b = 0.7; - } - lwo->material = (lwMaterial*) realloc(lwo->material, sizeof(lwMaterial)*lwo->material_cnt); -} - - -static void read_surf(FILE *f, int nbytes, lwObject *lwo) -{ - int i; - char name[LW_MAX_NAME_LEN]; - lwMaterial *material = NULL; - - /* read surface name */ - nbytes -= read_string(f,name); - - /* find material */ - for (i=0; i< lwo->material_cnt; i++) { - if (strcmp(lwo->material[i].name,name) == 0) { - material = &lwo->material[i]; - break; - } - } - - /* read values */ - while (nbytes > 0) { - int id = read_long(f); - int len = read_short(f); - nbytes -= 6 + len + (len%2); - - switch (id) { - case ID_COLR: - material->r = read_char(f) / 255.0; - material->g = read_char(f) / 255.0; - material->b = read_char(f) / 255.0; - read_char(f); /* dummy */ - break; - default: - fseek(f, len+(len%2), SEEK_CUR); - } - } -} - - -static void read_pols(FILE *f, int nbytes, lwObject *lwo) -{ - int guess_cnt = lwo->face_cnt; - - while (nbytes > 0) { - lwFace *face; - int i; - - /* allocate more memory for polygons if necessary */ - if (guess_cnt <= lwo->face_cnt) { - guess_cnt += guess_cnt + 4; - lwo->face = (lwFace*) realloc((void*) lwo->face, sizeof(lwFace)*guess_cnt); - } - face = lwo->face + lwo->face_cnt++; - - /* number of points in this face */ - face->index_cnt = read_short(f); - nbytes -= 2; - - /* allocate space for points */ - face->index = (int*) calloc(sizeof(int)*face->index_cnt,1); - - /* read points in */ - for (i=0; iindex_cnt; i++) { - face->index[i] = read_short(f); - nbytes -= 2; - } - - /* read surface material */ - face->material = read_short(f); - nbytes -= 2; - - /* skip over detail polygons */ - if (face->material < 0) { - int det_cnt; - face->material = -face->material; - det_cnt = read_short(f); - nbytes -= 2; - while (det_cnt-- > 0) { - int cnt = read_short(f); - fseek(f, cnt*2+2, SEEK_CUR); - nbytes -= cnt*2+2; - } - } - face->material -= 1; - } - /* readjust to true size */ - lwo->face = (lwFace*) realloc(lwo->face, sizeof(lwFace)*lwo->face_cnt); -} - - - -static void read_pnts(FILE *f, int nbytes, lwObject *lwo) -{ - int i; - lwo->vertex_cnt = nbytes / 12; - lwo->vertex = (float*) calloc(sizeof(GLfloat)*lwo->vertex_cnt*3, 1); - for (i=0; ivertex_cnt; i++) { - lwo->vertex[i*3+0] = read_float(f); - lwo->vertex[i*3+1] = read_float(f); - lwo->vertex[i*3+2] = read_float(f); - } -} - - - - - - -int lw_is_lwobject(const char *lw_file) -{ - FILE *f = fopen(lw_file, "rb"); - if (f) { - wxInt32 form = read_long(f); - wxInt32 nlen = read_long(f); - wxInt32 lwob = read_long(f); - fclose(f); - if (form == ID_FORM && nlen != 0 && lwob == ID_LWOB) - return TRUE; - } - return FALSE; -} - - -lwObject *lw_object_read(const char *lw_file) -{ - FILE *f = NULL; - lwObject *lw_object = NULL; - - wxInt32 form_bytes = 0; - wxInt32 read_bytes = 0; - - /* open file */ - f = fopen(lw_file, "rb"); - if (f == NULL) { - return NULL; - } - - /* check for headers */ - if (read_long(f) != ID_FORM) { - fclose(f); - return NULL; - } - form_bytes = read_long(f); - read_bytes += 4; - - if (read_long(f) != ID_LWOB) { - fclose(f); - return NULL; - } - - /* create new lwObject */ - lw_object = (lwObject*) calloc(sizeof(lwObject),1); - - /* read chunks */ - while (read_bytes < form_bytes) { - wxInt32 id = read_long(f); - wxInt32 nbytes = read_long(f); - read_bytes += 8 + nbytes + (nbytes%2); - - switch (id) { - case ID_PNTS: - read_pnts(f, nbytes, lw_object); - break; - case ID_POLS: - read_pols(f, nbytes, lw_object); - break; - case ID_SRFS: - read_srfs(f, nbytes, lw_object); - break; - case ID_SURF: - read_surf(f, nbytes, lw_object); - break; - default: - fseek(f, nbytes + (nbytes%2), SEEK_CUR); - } - } - - fclose(f); - return lw_object; -} - - - -void lw_object_free(lwObject *lw_object) -{ - if (lw_object->face) { - int i; - for (i=0; iface_cnt; i++) - free(lw_object->face[i].index); - free(lw_object->face); - } - free(lw_object->material); - free(lw_object->vertex); - free(lw_object); -} - - - - - -#define PX(i) (lw_object->vertex[face->index[i]*3+0]) -#define PY(i) (lw_object->vertex[face->index[i]*3+1]) -#define PZ(i) (lw_object->vertex[face->index[i]*3+2]) -void lw_object_show(const lwObject *lw_object) -{ - int i,j; - int prev_index_cnt = -1; - int prev_material = -1; - GLfloat prev_nx = 0; - GLfloat prev_ny = 0; - GLfloat prev_nz = 0; - - for (i=0; iface_cnt; i++) { - GLfloat ax,ay,az,bx,by,bz,nx,ny,nz,r; - const lwFace *face = lw_object->face+i; - - /* ignore faces with less than 3 points */ - if (face->index_cnt < 3) - continue; - - /* calculate normal */ - ax = PX(1) - PX(0); - ay = PY(1) - PY(0); - az = PZ(1) - PZ(0); - - bx = PX(face->index_cnt-1) - PX(0); - by = PY(face->index_cnt-1) - PY(0); - bz = PZ(face->index_cnt-1) - PZ(0); - - nx = ay * bz - az * by; - ny = az * bx - ax * bz; - nz = ax * by - ay * bx; - - r = sqrt(nx*nx + ny*ny + nz*nz); - if (r < 0.000001) /* avoid division by zero */ - continue; - nx /= r; - ny /= r; - nz /= r; - - /* glBegin/glEnd */ - if (prev_index_cnt != face->index_cnt || prev_index_cnt > 4) { - if (prev_index_cnt > 0) glEnd(); - prev_index_cnt = face->index_cnt; - switch (face->index_cnt) { - case 3: - glBegin(GL_TRIANGLES); - break; - case 4: - glBegin(GL_QUADS); - break; - default: - glBegin(GL_POLYGON); - } - } - - /* update material if necessary */ - if (prev_material != face->material) { - prev_material = face->material; - glColor3f(lw_object->material[face->material].r, - lw_object->material[face->material].g, - lw_object->material[face->material].b); - } - - /* update normal if necessary */ - if (nx != prev_nx || ny != prev_ny || nz != prev_nz) { - prev_nx = nx; - prev_ny = ny; - prev_nz = nz; - glNormal3f(nx,ny,nz); - } - - /* draw polygon/triangle/quad */ - for (j=0; jindex_cnt; j++) - glVertex3f(PX(j),PY(j),PZ(j)); - - } - - /* if glBegin was called call glEnd */ - if (prev_index_cnt > 0) - glEnd(); -} - - -GLfloat lw_object_radius(const lwObject *lwo) -{ - int i; - double max_radius = 0.0; - - for (i=0; ivertex_cnt; i++) { - GLfloat *v = &lwo->vertex[i*3]; - double r = v[0]*v[0] + v[1]*v[1] + v[2]*v[2]; - if (r > max_radius) - max_radius = r; - } - return sqrt(max_radius); -} - -void lw_object_scale(lwObject *lwo, GLfloat scale) -{ - int i; - - for (i=0; ivertex_cnt; i++) { - lwo->vertex[i*3+0] *= scale; - lwo->vertex[i*3+1] *= scale; - lwo->vertex[i*3+2] *= scale; - } -} - - diff --git a/utils/glcanvas/samples/penguin/lw.h b/utils/glcanvas/samples/penguin/lw.h deleted file mode 100644 index b49e8ffc91..0000000000 --- a/utils/glcanvas/samples/penguin/lw.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 1998 Janne Löf - * - * 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. - */ - - -#ifndef LW_H -#define LW_H - -#include - -#define LW_MAX_POINTS 200 -#define LW_MAX_NAME_LEN 500 - -typedef struct { - char name[LW_MAX_NAME_LEN]; - GLfloat r,g,b; -} lwMaterial; - -typedef struct { - int material; /* material of this face */ - int index_cnt; /* number of vertices */ - int *index; /* index to vertex */ - float *texcoord; /* u,v texture coordinates */ -} lwFace; - -typedef struct { - int face_cnt; - lwFace *face; - - int material_cnt; - lwMaterial *material; - - int vertex_cnt; - GLfloat *vertex; - -} lwObject; - -#ifdef __cplusplus -extern "C" { -#endif - -int lw_is_lwobject(const char *lw_file); -lwObject *lw_object_read(const char *lw_file); -void lw_object_free( lwObject *lw_object); -void lw_object_show(const lwObject *lw_object); - -GLfloat lw_object_radius(const lwObject *lw_object); -void lw_object_scale (lwObject *lw_object, GLfloat scale); - -#ifdef __cplusplus -} -#endif - -#endif /* LW_H */ - diff --git a/utils/glcanvas/samples/penguin/makefile.b32 b/utils/glcanvas/samples/penguin/makefile.b32 deleted file mode 100644 index a8dbbec2ab..0000000000 --- a/utils/glcanvas/samples/penguin/makefile.b32 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=penguin -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -OBJECTS = $(TARGET).obj lw.obj trackball.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/glcanvas/samples/penguin/makefile.bcc b/utils/glcanvas/samples/penguin/makefile.bcc deleted file mode 100644 index 750206f1f0..0000000000 --- a/utils/glcanvas/samples/penguin/makefile.bcc +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=cube -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win -OBJECTS = $(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/utils/glcanvas/samples/penguin/makefile.g95 b/utils/glcanvas/samples/penguin/makefile.g95 deleted file mode 100644 index 6002514c36..0000000000 --- a/utils/glcanvas/samples/penguin/makefile.g95 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../../../.. - -TARGET=penguin -EXTRACPPFLAGS=-I../../win -EXTRALIBS=-lglcanvas -lopengl32 -lglu32 -OBJECTS = $(TARGET).o lw.o trackball.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/glcanvas/samples/penguin/makefile.unx b/utils/glcanvas/samples/penguin/makefile.unx deleted file mode 100644 index 2625c45bc9..0000000000 --- a/utils/glcanvas/samples/penguin/makefile.unx +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# Makefile for penguin example (UNIX). - -PROGRAM=penguin - -OPENGLHOME=/home/jacs/mesa/Mesa-2.3 - -EXTRACPPFLAGS=-I$(OPENGLHOME)/include -I../../motif -EXTRALDFLAGS=-L$(OPENGLHOME)/lib -EXTRALDLIBS=-lglcanvas_motif -lMesaGL -lMesaGLU - -OBJECTS=$(PROGRAM).o trackball.o lw.o - -include ../../../../src/makeprog.env - diff --git a/utils/glcanvas/samples/penguin/makefile.vc b/utils/glcanvas/samples/penguin/makefile.vc deleted file mode 100644 index 27e4721eaa..0000000000 --- a/utils/glcanvas/samples/penguin/makefile.vc +++ /dev/null @@ -1,25 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# Makefile : Builds sample (VC++, WIN32) -# Use FINAL=1 argument to nmake to build final version with no debug info. - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -PROGRAM=penguin -OBJECTS = $(PROGRAM).obj trackball.obj lw.obj -EXTRAINC=-I..\..\win -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib - -!include $(WXDIR)\src\makeprog.vc - -lw.obj: lw.cpp lw.h - $(cc) @<< -$(CPPFLAGS2) /c $*.$(SRCSUFF) -<< - diff --git a/utils/glcanvas/samples/penguin/makefile.wat b/utils/glcanvas/samples/penguin/makefile.wat deleted file mode 100644 index 448db542b5..0000000000 --- a/utils/glcanvas/samples/penguin/makefile.wat +++ /dev/null @@ -1,17 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by Julian Smart, January 1999 -# -# - -WXDIR = $(%WXWIN) - -PROGRAM = cube -OBJECTS = $(PROGRAM).obj -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\glcanvas\win - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/utils/glcanvas/samples/penguin/penguin.cpp b/utils/glcanvas/samples/penguin/penguin.cpp deleted file mode 100644 index f4a118daa2..0000000000 --- a/utils/glcanvas/samples/penguin/penguin.cpp +++ /dev/null @@ -1,236 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: penguin.cpp -// Purpose: wxGLCanvas demo program -// Author: Robert Roebling -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "penguin.h" -#include - -#define VIEW_ASPECT 1.3 - -/* `Main program' equivalent, creating windows and returning main app frame */ -bool MyApp::OnInit(void) -{ - - /* Create the main frame window */ - MyFrame *frame = new MyFrame(NULL, "wxWindows OpenGL Demo", wxPoint(50, 50), wxSize(400, 300)); - - /* Make a menubar */ - wxMenu *fileMenu = new wxMenu; - - fileMenu->Append(wxID_EXIT, "E&xit"); - wxMenuBar *menuBar = new wxMenuBar; - menuBar->Append(fileMenu, "&File"); - frame->SetMenuBar(menuBar); - - frame->m_canvas = new TestGLCanvas(frame, -1, wxPoint(0, 0), wxSize(200, 200)); - - /* Load file wiht mesh data */ - frame->m_canvas->LoadLWO( "penguin.lwo" ); - - /* Show the frame */ - frame->Show(TRUE); - - return TRUE; -} - -IMPLEMENT_APP(MyApp) - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(wxID_EXIT, MyFrame::OnExit) -END_EVENT_TABLE() - -/* My frame constructor */ -MyFrame::MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, - const wxSize& size, long style): - wxFrame(frame, -1, title, pos, size, style) -{ - m_canvas = NULL; -} - -/* Intercept menu commands */ -void MyFrame::OnExit(wxCommandEvent& event) -{ - Destroy(); -} - -BEGIN_EVENT_TABLE(TestGLCanvas, wxGLCanvas) - EVT_SIZE(TestGLCanvas::OnSize) - EVT_PAINT(TestGLCanvas::OnPaint) - EVT_ERASE_BACKGROUND(TestGLCanvas::OnEraseBackground) - EVT_MOUSE_EVENTS(TestGLCanvas::OnMouse) -END_EVENT_TABLE() - -TestGLCanvas::TestGLCanvas(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, const wxString& name): - wxGLCanvas(parent, id, pos, size, style, name) -{ - block = FALSE; -} - -TestGLCanvas::~TestGLCanvas(void) -{ - /* destroy mesh */ - lw_object_free(info.lwobject); -} - -void TestGLCanvas::OnPaint( wxPaintEvent& event ) -{ - /* must always be here */ - wxPaintDC dc(this); - -#ifndef __WXMOTIF__ - if (!GetContext()) return; -#endif - - SetCurrent(); - - /* initialize OpenGL */ - if (info.do_init == TRUE) - { - InitGL(); - info.do_init = FALSE; - } - - /* view */ - glMatrixMode( GL_PROJECTION ); - glLoadIdentity(); - gluPerspective( info.zoom, VIEW_ASPECT, 1, 100 ); - glMatrixMode( GL_MODELVIEW ); - - /* clear */ - glClearColor( .3, .4, .6, 1 ); - glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); - - /* transformations */ - GLfloat m[4][4]; - glLoadIdentity(); - glTranslatef( 0, 0, -30 ); - build_rotmatrix( m,info.quat ); - glMultMatrixf( &m[0][0] ); - - /* draw object */ - lw_object_show( info.lwobject ); - - /* flush */ - glFlush(); - - /* swap */ - SwapBuffers(); -} - -void TestGLCanvas::OnSize(wxSizeEvent& event) -{ - int width, height; - GetClientSize(& width, & height); - -#ifndef __WXMOTIF__ - if (GetContext()) -#endif - { - SetCurrent(); - glViewport(0, 0, width, height); - } -} - -void TestGLCanvas::OnEraseBackground(wxEraseEvent& event) -{ - /* Do nothing, to avoid flashing on MSW */ -} - -void TestGLCanvas::LoadLWO(const wxString &filename) -{ - /* test if lightwave object */ - if (!lw_is_lwobject(filename)) return; - - /* read lightwave object */ - lwObject *lwobject = lw_object_read(filename); - - /* scale */ - lw_object_scale(lwobject, 10.0 / lw_object_radius(lwobject)); - - /* set up mesh info */ - info.do_init = TRUE; - info.lwobject = lwobject; - info.beginx = 0; - info.beginy = 0; - info.zoom = 45; - trackball( info.quat, 0.0, 0.0, 0.0, 0.0 ); -} - -void TestGLCanvas::OnMouse( wxMouseEvent& event ) -{ - wxSize sz(GetClientSize()); - if (event.Dragging()) - { - /* drag in progress, simulate trackball */ - float spin_quat[4]; - trackball(spin_quat, - (2.0*info.beginx - sz.x) / sz.x, - ( sz.y - 2.0*info.beginy) / sz.y, - ( 2.0*event.GetX() - sz.x) / sz.x, - ( sz.y - 2.0*event.GetY()) / sz.y); - - add_quats( spin_quat, info.quat, info.quat ); - - /* orientation has changed, redraw mesh */ - Refresh(FALSE); - } - - info.beginx = event.GetX(); - info.beginy = event.GetY(); -} - -void TestGLCanvas::InitGL(void) -{ - GLfloat light0_pos[4] = { -50.0, 50.0, 0.0, 0.0 }; - GLfloat light0_color[4] = { .6, .6, .6, 1.0 }; /* white light */ - GLfloat light1_pos[4] = { 50.0, 50.0, 0.0, 0.0 }; - GLfloat light1_color[4] = { .4, .4, 1, 1.0 }; /* cold blue light */ - - /* remove back faces */ - glDisable(GL_CULL_FACE); - glEnable(GL_DEPTH_TEST); - - /* speedups */ - glEnable(GL_DITHER); - glShadeModel(GL_SMOOTH); - glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); - glHint(GL_POLYGON_SMOOTH_HINT, GL_FASTEST); - - /* light */ - glLightfv(GL_LIGHT0, GL_POSITION, light0_pos); - glLightfv(GL_LIGHT0, GL_DIFFUSE, light0_color); - glLightfv(GL_LIGHT1, GL_POSITION, light1_pos); - glLightfv(GL_LIGHT1, GL_DIFFUSE, light1_color); - glEnable(GL_LIGHT0); - glEnable(GL_LIGHT1); - glEnable(GL_LIGHTING); - - glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); -} - - diff --git a/utils/glcanvas/samples/penguin/penguin.h b/utils/glcanvas/samples/penguin/penguin.h deleted file mode 100644 index d94c6a8565..0000000000 --- a/utils/glcanvas/samples/penguin/penguin.h +++ /dev/null @@ -1,84 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: penguin.h -// Purpose: wxGLCanvas demo program -// Author: Robert Roebling -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _WX_PENGUIN_H_ -#define _WX_PENGUIN_H_ - - -#include "wx/defs.h" -#include "wx/app.h" -#include "wx/menu.h" -#include "wx/dcclient.h" - -#include "glcanvas.h" - -extern "C" { -#include "lw.h" -#include "trackball.h" -} - -/* information needed to display lightwave mesh */ -typedef struct -{ -// gint do_init; /* true if initgl not yet called */ - int do_init; - lwObject *lwobject; /* lightwave object mesh */ - float beginx,beginy; /* position of mouse */ - float quat[4]; /* orientation of object */ - float zoom; /* field of view in degrees */ -} mesh_info; - - -/* Define a new application type */ -class MyApp: public wxApp -{ -public: - bool OnInit(void); -}; - -/* Define a new frame type */ -class TestGLCanvas; -class MyFrame: public wxFrame -{ -public: - MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos, const wxSize& size, - long style = wxDEFAULT_FRAME_STYLE); - - void OnExit(wxCommandEvent& event); -public: - TestGLCanvas* m_canvas; - -DECLARE_EVENT_TABLE() -}; - - -class TestGLCanvas: public wxGLCanvas -{ - public: - TestGLCanvas(wxWindow *parent, const wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "TestGLCanvas"); - ~TestGLCanvas(void); - - void OnPaint(wxPaintEvent& event); - void OnSize(wxSizeEvent& event); - void OnEraseBackground(wxEraseEvent& event); - void LoadLWO( const wxString &filename); - void OnMouse( wxMouseEvent& event ); - void InitGL(void); - - mesh_info info; - bool block; - -DECLARE_EVENT_TABLE() -}; - -#endif - diff --git a/utils/glcanvas/samples/penguin/penguin.lwo b/utils/glcanvas/samples/penguin/penguin.lwo deleted file mode 100644 index 3f5122db827e09028d394b682ee6c0a1deec0ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10028 zcmb`Nd3a6N{>Imi5HiR>L`cLCkr+b~iD7@Yga)mmQZp4=YN()6vqTUTO=2i2BGgb* z%r)0uJA~G(W@>g(V~wq`{NBCRO7HpO_s6}@bMJGX=Y7xT{jRmw`mTNUIVTn0uEU3n z)d+6Wxm{dBhxi1>SmlHPNduDlCb3SvzZf(`xOQLmP8vRZ081F~#o!yPecO*w=W#W> z()JEU0Y>0|G&~~GSUsbk@U@=bvOPsPKNU5$pTHQe_5AlD&WA@t*gn`J{2$I8>N)C3 z&0}-Q3iLA)z53{f4VE+8)zuTU22X(dU?X?>W>v!PXp@ho@X{KP_cyT;z5;Hcpa^&ItL9>wjRTTQ->;5j)tcCW0Cm5&tlTzLE1 z=y?&hdtOv8xIOk+fRDW%n_KQ!pFNKwx5xPB%%{=ohZ@=WFKNg~AAQq|dq)1WrS$2u zCELEaRcK_7>}=FsQ-T70!j0b3*3*hjA>{P^Xk&U$gBC|$G&h~xW#mug^jWoFKAL@K zWPkmNk~R*K^%|J20lmN%bb z8y4`({gzq1ZjL7(r_cEUqmeadVN06z_j!Kd+p*TPB`0Y0yE>LfL7bI6X)5hXoXQIh z)U)OsO*QIfF0krWzhUJJDQS4=mB^u<9BRm6PQzgy!*Q&`+Q?yT#p}(|JJR@eZTRx3!TN^&C28*FLVok74f>`#llAu3 zy}3g@cbLa=7;Cw&ywdbm`U{$JeUepXY;`?tX*=@X-HD$*IYLkW>^McljNk=91I@y& zXQ^FoX?{8RwpsA{l0L6j41f2-6-w`&rH9YIXa%`crR1(3Q;BAmEYE%CDBa@^N@j)p z*qki!Uch^huQ{-fGIqbFyr@U~$9)gQ{oL;PGQP0KIdk{@+BAQ{2!3v27pqM5C;E&2 zNBQ0vkF1`tnH08QHs@=WSzZ$vl{xw?Uvz4U@Z)7Pby zCRdj~4Y&0Jo8EiB8l`J*>Eb*x3n)dOzqF8c)hsY~CpD&4Z+4Qd6+Px5de}z9SI~QlB{yv_s8T=Dnd$^XidM)FjohQ=y{){Sqyp7iy;7Nz$68I2Qusl-MFYnKSROwd;`{fTl=-r^ReJOh zp2tIIxBnB%Io~vQ|I&(fCS+REvmep-H}_Ib|M}Lu(EA2!G?Ok?aJ6Q}N7K7ICOsck z%gTJQnYKrsqz7%bShJQn8^!mf8(!5vv~p6O8TC4kHL9FgX3d`3h3>u^LT?7STi>nP zK<7sW(#2o1tyzmp(DIs#Y1z8(t!WEhQ2ebV+T(uHnp}JaeVSI6_C)Wn#&yc20Uiak z;@4bj@W;=n>a}xpcEuel)iZ}a8!?j}4&_$bv1v5&Tp?K{?^r|o4c6bjf0};1z1Pa{ z{g6gCD^DZGR%kSQuNE=i8S`}ZB~~KRn7PM&!AB=ezv+ksY;P9 z-Dv!T2A22y2bB52PTJ9Pjukg2-mF`_19#XvcjyUs=oNS933up;<8@f?w{FLm87+P|UQG{Aun&n&vZ7Z=1D^|N29BeO;{@6hndhVn(i6(0YtM ze|leT_1k6ciA|snv$yj_Zh_|RKPORc_+-Aj>=4U&)jD(c-KBg-&)G#ir-l)K8;RGi z(RTx0P~yoIMv9q2V~>}h4uftPsaacT){?|ANiYnF0MBw)b2*hrx%d( zptDAP&roXn@|FJkl0;)6c~SQ7&nPJKMgO_lZVcvlG{CuritQ0|--VC45mqjtUzc~sg~ ztY;K`*K9fuy}89m9XE((PsrlELs}atb9>R)8tJ;#z}48kvXXwdaxv;L<^v-?x14S+ znnRw0j~hG23~W+jT*;_@v3bV!(q+jtshi%sPF-XB&;I%ww$HS>W9;f``r)W*X7lt< zz>n!~;>&T*=H@eRjQnv&c;7qg^+OY0qdpn+GxW`8UMs$idVcjj#ul1;-n&90 z7xgj{2c}TWi*%ZDm>Vh6H&NXK=V{vWIY!p`rF!dD!)eNlbR#e2hW@7d1wOjfP9t$_ zTWa(=pHF%6&Pe&{0oDD{gHQ2HHSz|h>aX5@#HZaqZ)Ba@qqqKOCja_wj?w$YTr(xP z8XtKD-+x@snHO7C=gk&H8CjW_@T?mF=An8SMs|Wf&uIBFe9B!f zBfH%UKCf_yeyHBmB2LW~MHY?K9mdkgYe7b~Tc&xjYkT_o_xeWf=bg=zG3BYi?W7U5 zah^WMbrmi8`=C*CMg!_Rw16hfYG8!bzd>0yuEh-Ax7P4{=S8Qk|3M*{$BodmXj)nA zHjRp^VAPE5PmA!Zk6G~zZLPSCuAJD+L%y7Cgr;nwl>y#-Ou1`D&4f#|*taB~{M~vZ zEbbmg zh3CiY(oc1V8rt5Wq*3e1aC6N*7v9LF8HGLVM^}vbJSgxWK0}Yv!E?KKr5Cg-y~a;; zb;|&LA@Lm54$I>;_7CMpucz=;5vk^tJ8AsT=|t|kaxHgH^X1D9pD|N!@8)azMDvh7 zbInPivHa#Ip*(m%du~M?1@S*4xp@Rvi*o7+N`T8$6;SuTDh^=%uHgL|K~fwx_2kT$}70F`L~Ys=aR)(WJps%xjxwosY+ zvi9sFm9~MGGk>J!YY&y_`>canjWLv8ek1D#r$} zj%rmEStodVzE&WegzE^EYYt$YSy#a#Sr>S_E&`;BaGjwt4S>p7B3L)YDuQ$qbzPw{ zZNa*;o`N-JJ>c#6-UI0&Tz9BU+8k(3D$!3RcrAF=_^<- zs7&La{RQ)9pDWf3fxTPVmloL3VCIBV^YV%dVlf@KM(gUGrps7!V2N4loi zMbX}})sCh>Wm=g{XEVha8Egi;eOgsOW(YSOD$^=(vsB$Ql{N#JCfE$9Oshb@6|5Pa zO_KS8$mi88s7x#4j+ia#;_zOTcS$UWd`gXn$}|>xl+M8Fvc!nWAabQyP?U|EfIAQ_^g$)M1ph?Y!OtZk!-1Q(b(fsHS-d+-=$Dl7me%( zkw&s*s;&XZGQpNYW!eDOmo5ssm1~Ixkvm@um1!_r&Q^+3t;SZs+xK4skQKr$hZd!) z*lNKl;=8~q;UYlf_k&eXnO1|!u@UH=WDP(TiV>@!GL2{XY>i;{_n~~@d_fX~%ZJJ| z9=cAYYZYq=vR1G)P?^R-gb3BxNs&^rp2HI>S{aT?d#SAk=M1LMJZ={#MoMF zx0=NbWVc`(DpNOB2xrey8+$8MGw)IREriO{4I}oc`Sz+=>VxbRY&TS?FMX+|WQy3U>l3Q^roSGlCVvNuCz2CP;yBr=c=s zP&rFY+?}Jcm@{^ER=Bz#M}<2Jl_`VDtJTG6NLCDFzosKl3j(j>s&yt3U>u6$1?O$rW(7ZdRh|Xny5Pkm1!8>@&6Lcm0gFo=PLzrUAQe! znTA1cs`Q3p8psX7{son(h7**|3GZlms$n3zMBPcKOg-2w_Pb#2xHE1ER}bX4aJQf` zt%rN~wqVZa=^^2YgUCJ~g37cWRE{Xl?kMH~az~7~4V7tWc9-1~%meJMn(v;fy9)L*h6)yo*)m!h|5r! zdcr*t%mrsD(~==w(>Ir=!>PoW5ig|%N7VHsJre1JQRoyj}Y9R7Hcnp=P7xbB^ z({PrOl>(9H`xGiuAN=6EE5;s! z%Cs!pJJADo-1TpT^8k_WfVWVYmW3wBRAY+yvIKbh9r_L`Q(ui~_&=BjyQ|XDAmYx( z>$@uT)ilk1(iUT-H7CW&X~i@rn;~;jsh{So6&H2oz?{{H;;POWOs1vT1LZum66(J9 z(~85}*La|nP^p*ZqLmb^JWJMGg!2PQwjEw4tJDu8WSu8_qGs^|5qB|OKT)YS8=;kw z^I`M|;k>j`YUUBRnoPaeGv!L*o|N~lH;BAXpRqqxT86#WT*Voc#kWa$AH;*?3-+4j ztF)r#rnw7Nfeq2zgewCg{(gYhLsVKub5$;$ZTx4fJH9dE4#Vq>Ds9QuY93H^q$t+a40LB#h{yk4);mKZDR%4uHzjP=yK>=DSkR2m59 zEoLc)lNKrS)4b(LBXd@1AefJ+^J8BsRte-wF`qY>OslYOwKAd`{`d>Zx3WVZ@~R`jKeR#v6ev~rrCsH+NAPL1$Wb>+ZhS^?)FT}8G^okum0 zRboCjFqy{Smz?~K*a*MX*(^Hl_sX$`HC z79{FIz$&Q`L8{IkE7MABm~uh*8_zINR|7=;-DemZtI|-dvQ|Z;mDxRNV3@Np0gvksW81?0^7xh-9V!1UnH(FBFFgOn*oH;_LQRflt_}X1(J}x2 PcWrX~nY%asqw)U-TLDh; diff --git a/utils/glcanvas/samples/penguin/penguin.rc b/utils/glcanvas/samples/penguin/penguin.rc deleted file mode 100644 index 626b82f58a..0000000000 --- a/utils/glcanvas/samples/penguin/penguin.rc +++ /dev/null @@ -1,3 +0,0 @@ -/* mondrian ICON "mondrian.ico" */ -#include "wx/msw/wx.rc" - diff --git a/utils/glcanvas/samples/penguin/trackball.c b/utils/glcanvas/samples/penguin/trackball.c deleted file mode 100644 index f23d3db30b..0000000000 --- a/utils/glcanvas/samples/penguin/trackball.c +++ /dev/null @@ -1,324 +0,0 @@ -/* - * (c) Copyright 1993, 1994, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * Permission to use, copy, modify, and distribute this software for - * any purpose and without fee is hereby granted, provided that the above - * copyright notice appear in all copies and that both the copyright notice - * and this permission notice appear in supporting documentation, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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 SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -/* - * Trackball code: - * - * Implementation of a virtual trackball. - * Implemented by Gavin Bell, lots of ideas from Thant Tessman and - * the August '88 issue of Siggraph's "Computer Graphics," pp. 121-129. - * - * Vector manip code: - * - * Original code from: - * David M. Ciemiewicz, Mark Grossman, Henry Moreton, and Paul Haeberli - * - * Much mucking with by: - * Gavin Bell - */ -#include -#include "trackball.h" - -/* - * This size should really be based on the distance from the center of - * rotation to the point on the object underneath the mouse. That - * point would then track the mouse as closely as possible. This is a - * simple example, though, so that is left as an Exercise for the - * Programmer. - */ -#define TRACKBALLSIZE (0.8) - -/* - * Local function prototypes (not defined in trackball.h) - */ -static float tb_project_to_sphere(float, float, float); -static void normalize_quat(float [4]); - -void -vzero(float *v) -{ - v[0] = 0.0; - v[1] = 0.0; - v[2] = 0.0; -} - -void -vset(float *v, float x, float y, float z) -{ - v[0] = x; - v[1] = y; - v[2] = z; -} - -void -vsub(const float *src1, const float *src2, float *dst) -{ - dst[0] = src1[0] - src2[0]; - dst[1] = src1[1] - src2[1]; - dst[2] = src1[2] - src2[2]; -} - -void -vcopy(const float *v1, float *v2) -{ - register int i; - for (i = 0 ; i < 3 ; i++) - v2[i] = v1[i]; -} - -void -vcross(const float *v1, const float *v2, float *cross) -{ - float temp[3]; - - temp[0] = (v1[1] * v2[2]) - (v1[2] * v2[1]); - temp[1] = (v1[2] * v2[0]) - (v1[0] * v2[2]); - temp[2] = (v1[0] * v2[1]) - (v1[1] * v2[0]); - vcopy(temp, cross); -} - -float -vlength(const float *v) -{ - return sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); -} - -void -vscale(float *v, float div) -{ - v[0] *= div; - v[1] *= div; - v[2] *= div; -} - -void -vnormal(float *v) -{ - vscale(v,1.0/vlength(v)); -} - -float -vdot(const float *v1, const float *v2) -{ - return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]; -} - -void -vadd(const float *src1, const float *src2, float *dst) -{ - dst[0] = src1[0] + src2[0]; - dst[1] = src1[1] + src2[1]; - dst[2] = src1[2] + src2[2]; -} - -/* - * Ok, simulate a track-ball. Project the points onto the virtual - * trackball, then figure out the axis of rotation, which is the cross - * product of P1 P2 and O P1 (O is the center of the ball, 0,0,0) - * Note: This is a deformed trackball-- is a trackball in the center, - * but is deformed into a hyperbolic sheet of rotation away from the - * center. This particular function was chosen after trying out - * several variations. - * - * It is assumed that the arguments to this routine are in the range - * (-1.0 ... 1.0) - */ -void -trackball(float q[4], float p1x, float p1y, float p2x, float p2y) -{ - float a[3]; /* Axis of rotation */ - float phi; /* how much to rotate about axis */ - float p1[3], p2[3], d[3]; - float t; - - if (p1x == p2x && p1y == p2y) { - /* Zero rotation */ - vzero(q); - q[3] = 1.0; - return; - } - - /* - * First, figure out z-coordinates for projection of P1 and P2 to - * deformed sphere - */ - vset(p1,p1x,p1y,tb_project_to_sphere(TRACKBALLSIZE,p1x,p1y)); - vset(p2,p2x,p2y,tb_project_to_sphere(TRACKBALLSIZE,p2x,p2y)); - - /* - * Now, we want the cross product of P1 and P2 - */ - vcross(p2,p1,a); - - /* - * Figure out how much to rotate around that axis. - */ - vsub(p1,p2,d); - t = vlength(d) / (2.0*TRACKBALLSIZE); - - /* - * Avoid problems with out-of-control values... - */ - if (t > 1.0) t = 1.0; - if (t < -1.0) t = -1.0; - phi = 2.0 * asin(t); - - axis_to_quat(a,phi,q); -} - -/* - * Given an axis and angle, compute quaternion. - */ -void -axis_to_quat(float a[3], float phi, float q[4]) -{ - vnormal(a); - vcopy(a,q); - vscale(q,sin(phi/2.0)); - q[3] = cos(phi/2.0); -} - -/* - * Project an x,y pair onto a sphere of radius r OR a hyperbolic sheet - * if we are away from the center of the sphere. - */ -static float -tb_project_to_sphere(float r, float x, float y) -{ - float d, t, z; - - d = sqrt(x*x + y*y); - if (d < r * 0.70710678118654752440) { /* Inside sphere */ - z = sqrt(r*r - d*d); - } else { /* On hyperbola */ - t = r / 1.41421356237309504880; - z = t*t / d; - } - return z; -} - -/* - * Given two rotations, e1 and e2, expressed as quaternion rotations, - * figure out the equivalent single rotation and stuff it into dest. - * - * This routine also normalizes the result every RENORMCOUNT times it is - * called, to keep error from creeping in. - * - * NOTE: This routine is written so that q1 or q2 may be the same - * as dest (or each other). - */ - -#define RENORMCOUNT 97 - -void -add_quats(float q1[4], float q2[4], float dest[4]) -{ - static int count=0; - float t1[4], t2[4], t3[4]; - float tf[4]; - - vcopy(q1,t1); - vscale(t1,q2[3]); - - vcopy(q2,t2); - vscale(t2,q1[3]); - - vcross(q2,q1,t3); - vadd(t1,t2,tf); - vadd(t3,tf,tf); - tf[3] = q1[3] * q2[3] - vdot(q1,q2); - - dest[0] = tf[0]; - dest[1] = tf[1]; - dest[2] = tf[2]; - dest[3] = tf[3]; - - if (++count > RENORMCOUNT) { - count = 0; - normalize_quat(dest); - } -} - -/* - * Quaternions always obey: a^2 + b^2 + c^2 + d^2 = 1.0 - * If they don't add up to 1.0, dividing by their magnitued will - * renormalize them. - * - * Note: See the following for more information on quaternions: - * - * - Shoemake, K., Animating rotation with quaternion curves, Computer - * Graphics 19, No 3 (Proc. SIGGRAPH'85), 245-254, 1985. - * - Pletinckx, D., Quaternion calculus as a basic tool in computer - * graphics, The Visual Computer 5, 2-13, 1989. - */ -static void -normalize_quat(float q[4]) -{ - int i; - float mag; - - mag = (q[0]*q[0] + q[1]*q[1] + q[2]*q[2] + q[3]*q[3]); - for (i = 0; i < 4; i++) q[i] /= mag; -} - -/* - * Build a rotation matrix, given a quaternion rotation. - * - */ -void -build_rotmatrix(float m[4][4], float q[4]) -{ - m[0][0] = 1.0 - 2.0 * (q[1] * q[1] + q[2] * q[2]); - m[0][1] = 2.0 * (q[0] * q[1] - q[2] * q[3]); - m[0][2] = 2.0 * (q[2] * q[0] + q[1] * q[3]); - m[0][3] = 0.0; - - m[1][0] = 2.0 * (q[0] * q[1] + q[2] * q[3]); - m[1][1]= 1.0 - 2.0 * (q[2] * q[2] + q[0] * q[0]); - m[1][2] = 2.0 * (q[1] * q[2] - q[0] * q[3]); - m[1][3] = 0.0; - - m[2][0] = 2.0 * (q[2] * q[0] - q[1] * q[3]); - m[2][1] = 2.0 * (q[1] * q[2] + q[0] * q[3]); - m[2][2] = 1.0 - 2.0 * (q[1] * q[1] + q[0] * q[0]); - m[2][3] = 0.0; - - m[3][0] = 0.0; - m[3][1] = 0.0; - m[3][2] = 0.0; - m[3][3] = 1.0; -} - diff --git a/utils/glcanvas/samples/penguin/trackball.h b/utils/glcanvas/samples/penguin/trackball.h deleted file mode 100644 index b676fb4e54..0000000000 --- a/utils/glcanvas/samples/penguin/trackball.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * (c) Copyright 1993, 1994, Silicon Graphics, Inc. - * ALL RIGHTS RESERVED - * Permission to use, copy, modify, and distribute this software for - * any purpose and without fee is hereby granted, provided that the above - * copyright notice appear in all copies and that both the copyright notice - * and this permission notice appear in supporting documentation, and that - * the name of Silicon Graphics, Inc. not be used in advertising - * or publicity pertaining to distribution of the software without specific, - * written prior permission. - * - * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "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 SILICON - * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, - * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY - * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, - * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF - * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN - * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE - * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. - * - * US Government Users Restricted Rights - * Use, duplication, or disclosure by the Government is subject to - * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph - * (c)(1)(ii) of the Rights in Technical Data and Computer Software - * clause at DFARS 252.227-7013 and/or in similar or successor - * clauses in the FAR or the DOD or NASA FAR Supplement. - * Unpublished-- rights reserved under the copyright laws of the - * United States. Contractor/manufacturer is Silicon Graphics, - * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. - * - * OpenGL(TM) is a trademark of Silicon Graphics, Inc. - */ -/* - * trackball.h - * A virtual trackball implementation - * Written by Gavin Bell for Silicon Graphics, November 1988. - */ - -/* - * Pass the x and y coordinates of the last and current positions of - * the mouse, scaled so they are from (-1.0 ... 1.0). - * - * The resulting rotation is returned as a quaternion rotation in the - * first paramater. - */ -void -trackball(float q[4], float p1x, float p1y, float p2x, float p2y); - -/* - * Given two quaternions, add them together to get a third quaternion. - * Adding quaternions to get a compound rotation is analagous to adding - * translations to get a compound translation. When incrementally - * adding rotations, the first argument here should be the new - * rotation, the second and third the total rotation (which will be - * over-written with the resulting new total rotation). - */ -void -add_quats(float *q1, float *q2, float *dest); - -/* - * A useful function, builds a rotation matrix in Matrix based on - * given quaternion. - */ -void -build_rotmatrix(float m[4][4], float q[4]); - -/* - * This function computes a quaternion based on an axis (defined by - * the given vector) and an angle about which to rotate. The angle is - * expressed in radians. The result is put into the third argument. - */ -void -axis_to_quat(float a[3], float phi, float q[4]); - diff --git a/utils/glcanvas/win/glcanvas.cpp b/utils/glcanvas/win/glcanvas.cpp deleted file mode 100644 index e90b555a01..0000000000 --- a/utils/glcanvas/win/glcanvas.cpp +++ /dev/null @@ -1,463 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.cpp -// Purpose: wxGLCanvas, for using OpenGL with wxWindows under MS Windows -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "glcanvas.h" -#endif - -#include "wx/wxprec.h" - -#if defined(__BORLANDC__) -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include "glcanvas.h" - -/* - * GLContext implementation - */ - -wxGLContext::wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette) -{ - m_window = win; - - m_hDC = win->GetHDC(); - - m_glContext = wglCreateContext((HDC) m_hDC); - wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" ); - - wglMakeCurrent((HDC) m_hDC, m_glContext); -} - -wxGLContext::wxGLContext( - bool isRGB, wxGLCanvas *win, - const wxPalette& palette, - const wxGLContext *other /* for sharing display lists */ -) -{ - m_window = win; - - m_hDC = win->GetHDC(); - - m_glContext = wglCreateContext((HDC) m_hDC); - wxCHECK_RET( m_glContext, "Couldn't create OpenGl context" ); - - if( other != 0 ) - wglShareLists( other->m_glContext, m_glContext ); - - wglMakeCurrent((HDC) m_hDC, m_glContext); -} - -wxGLContext::~wxGLContext() -{ - if (m_glContext) - { - wglMakeCurrent(NULL, NULL); - wglDeleteContext(m_glContext); - } -} - -void wxGLContext::SwapBuffers() -{ - if (m_glContext) - { - wglMakeCurrent((HDC) m_hDC, m_glContext); - ::SwapBuffers((HDC) m_hDC); //blits the backbuffer into DC - } -} - -void wxGLContext::SetCurrent() -{ - if (m_glContext) - { - wglMakeCurrent((HDC) m_hDC, m_glContext); - } - -/* - setupPixelFormat(hDC); - setupPalette(hDC); -*/ -} - -void wxGLContext::SetColour(const char *colour) -{ - float r = 0.0; - float g = 0.0; - float b = 0.0; - wxColour *col = wxTheColourDatabase->FindColour(colour); - if (col) - { - r = (float)(col->Red()/256.0); - g = (float)(col->Green()/256.0); - b = (float)(col->Blue()/256.0); - glColor3f( r, g, b); - } -} - - -/* - * wxGLCanvas implementation - */ - -IMPLEMENT_CLASS(wxGLCanvas, wxScrolledWindow) - -BEGIN_EVENT_TABLE(wxGLCanvas, wxScrolledWindow) - EVT_SIZE(wxGLCanvas::OnSize) - EVT_PALETTE_CHANGED(wxGLCanvas::OnPaletteChanged) - EVT_QUERY_NEW_PALETTE(wxGLCanvas::OnQueryNewPalette) -END_EVENT_TABLE() - -wxGLCanvas::wxGLCanvas(wxWindow *parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, const wxString& name, - int *attribList /* not used yet! */, const wxPalette& palette): - wxScrolledWindow(parent, id, pos, size, style, name) -{ - m_hDC = (WXHDC) ::GetDC((HWND) GetHWND()); - - SetupPixelFormat(); - SetupPalette(palette); - - m_glContext = new wxGLContext(TRUE, this, palette); -} -wxGLCanvas::wxGLCanvas( wxWindow *parent, - const wxGLContext *shared, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, const wxString& name, - int *attribList, const wxPalette& palette ) : - wxScrolledWindow(parent, id, pos, size, style, name) -{ - m_hDC = (WXHDC) ::GetDC((HWND) GetHWND()); - - SetupPixelFormat(); - SetupPalette(palette); - - m_glContext = new wxGLContext(TRUE, this, palette, shared ); -} - -wxGLCanvas::~wxGLCanvas() -{ - if (m_glContext) - delete m_glContext; - - ::ReleaseDC((HWND) GetHWND(), (HDC) m_hDC); -} - -void wxGLCanvas::SetupPixelFormat() // (HDC hDC) -{ - PIXELFORMATDESCRIPTOR pfd = { - sizeof(PIXELFORMATDESCRIPTOR), /* size */ - 1, /* version */ - PFD_SUPPORT_OPENGL | - PFD_DRAW_TO_WINDOW | - PFD_DOUBLEBUFFER, /* support double-buffering */ - PFD_TYPE_RGBA, /* color type */ - 16, /* prefered color depth */ - 0, 0, 0, 0, 0, 0, /* color bits (ignored) */ - 0, /* no alpha buffer */ - 0, /* alpha bits (ignored) */ - 0, /* no accumulation buffer */ - 0, 0, 0, 0, /* accum bits (ignored) */ - 16, /* depth buffer */ - 0, /* no stencil buffer */ - 0, /* no auxiliary buffers */ - PFD_MAIN_PLANE, /* main layer */ - 0, /* reserved */ - 0, 0, 0, /* no layer, visible, damage masks */ - }; - int pixelFormat; - - pixelFormat = ChoosePixelFormat((HDC) m_hDC, &pfd); - if (pixelFormat == 0) { - MessageBox(WindowFromDC((HDC) m_hDC), "ChoosePixelFormat failed.", "Error", - MB_ICONERROR | MB_OK); - exit(1); - } - - if (SetPixelFormat((HDC) m_hDC, pixelFormat, &pfd) != TRUE) { - MessageBox(WindowFromDC((HDC) m_hDC), "SetPixelFormat failed.", "Error", - MB_ICONERROR | MB_OK); - exit(1); - } -} - -void wxGLCanvas::SetupPalette(const wxPalette& palette) -{ - int pixelFormat = GetPixelFormat((HDC) m_hDC); - PIXELFORMATDESCRIPTOR pfd; - - DescribePixelFormat((HDC) m_hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd); - - if (pfd.dwFlags & PFD_NEED_PALETTE) - { - } - else - { - return; - } - - m_palette = palette; - - if ( !m_palette.Ok() ) - { - m_palette = CreateDefaultPalette(); - } - - if (m_palette.Ok()) - { - SelectPalette((HDC) m_hDC, (HPALETTE) m_palette.GetHPALETTE(), FALSE); - RealizePalette((HDC) m_hDC); - } -} - -wxPalette wxGLCanvas::CreateDefaultPalette() -{ - PIXELFORMATDESCRIPTOR pfd; - int paletteSize; - int pixelFormat = GetPixelFormat((HDC) m_hDC); - - DescribePixelFormat((HDC) m_hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd); - - paletteSize = 1 << pfd.cColorBits; - - LOGPALETTE* pPal = - (LOGPALETTE*) malloc(sizeof(LOGPALETTE) + paletteSize * sizeof(PALETTEENTRY)); - pPal->palVersion = 0x300; - pPal->palNumEntries = paletteSize; - - /* build a simple RGB color palette */ - { - int redMask = (1 << pfd.cRedBits) - 1; - int greenMask = (1 << pfd.cGreenBits) - 1; - int blueMask = (1 << pfd.cBlueBits) - 1; - int i; - - for (i=0; ipalPalEntry[i].peRed = - (((i >> pfd.cRedShift) & redMask) * 255) / redMask; - pPal->palPalEntry[i].peGreen = - (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask; - pPal->palPalEntry[i].peBlue = - (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask; - pPal->palPalEntry[i].peFlags = 0; - } - } - - HPALETTE hPalette = CreatePalette(pPal); - free(pPal); - - wxPalette palette; - palette.SetHPALETTE((WXHPALETTE) hPalette); - - return palette; -} - -void wxGLCanvas::SwapBuffers() -{ - if (m_glContext) - m_glContext->SwapBuffers(); -} - -void wxGLCanvas::OnSize(wxSizeEvent& event) -{ - int width, height; - GetClientSize(& width, & height); - - if (m_glContext) - { - m_glContext->SetCurrent(); - - glViewport(0, 0, (GLint)width, (GLint)height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 15.0 ); - glMatrixMode(GL_MODELVIEW); - } -} - -void wxGLCanvas::SetCurrent() -{ - if (m_glContext) - { - m_glContext->SetCurrent(); - } -} - -void wxGLCanvas::SetColour(const char *colour) -{ - if (m_glContext) - m_glContext->SetColour(colour); -} - -// TODO: Have to have this called by parent frame (?) -// So we need wxFrame to call OnQueryNewPalette for all children... -void wxGLCanvas::OnQueryNewPalette(wxQueryNewPaletteEvent& event) -{ - /* realize palette if this is the current window */ - if ( GetPalette()->Ok() ) { - ::UnrealizeObject((HPALETTE) GetPalette()->GetHPALETTE()); - ::SelectPalette((HDC) GetHDC(), (HPALETTE) GetPalette()->GetHPALETTE(), FALSE); - ::RealizePalette((HDC) GetHDC()); - Refresh(); - event.SetPaletteRealized(TRUE); - } - else - event.SetPaletteRealized(FALSE); -} - -// I think this doesn't have to be propagated to child windows. -void wxGLCanvas::OnPaletteChanged(wxPaletteChangedEvent& event) -{ - /* realize palette if this is *not* the current window */ - if ( GetPalette() && - GetPalette()->Ok() && (this != event.GetChangedWindow()) ) - { - ::UnrealizeObject((HPALETTE) GetPalette()->GetHPALETTE()); - ::SelectPalette((HDC) GetHDC(), (HPALETTE) GetPalette()->GetHPALETTE(), FALSE); - ::RealizePalette((HDC) GetHDC()); - Refresh(); - } -} - -/* Give extensions proper function names. */ - -/* EXT_vertex_array */ -void glArrayElementEXT(GLint i) -{ -} - -void glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer) -{ -} - -void glDrawArraysEXT(GLenum mode, GLint first, GLsizei count) -{ -#ifdef GL_EXT_vertex_array - static PFNGLDRAWARRAYSEXTPROC proc = 0; - - if ( !proc ) - { - proc = (PFNGLDRAWARRAYSEXTPROC) wglGetProcAddress("glDrawArraysEXT"); - } - - if ( proc ) - (* proc) (mode, first, count); -#endif -} - -void glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer) -{ -} - -void glGetPointervEXT(GLenum pname, GLvoid* *params) -{ -} - -void glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer) -{ -} - -void glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer) -{ -#ifdef GL_EXT_vertex_array - static PFNGLNORMALPOINTEREXTPROC proc = 0; - - if ( !proc ) - { - proc = (PFNGLNORMALPOINTEREXTPROC) wglGetProcAddress("glNormalPointerEXT"); - } - - if ( proc ) - (* proc) (type, stride, count, pointer); -#endif -} - -void glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer) -{ -} - -void glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer) -{ -#ifdef GL_EXT_vertex_array - static PFNGLVERTEXPOINTEREXTPROC proc = 0; - - if ( !proc ) - { - proc = (PFNGLVERTEXPOINTEREXTPROC) wglGetProcAddress("glVertexPointerEXT"); - } - - if ( proc ) - (* proc) (size, type, stride, count, pointer); -#endif -} - -/* EXT_color_subtable */ -void glColorSubtableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table) -{ -} - -/* EXT_color_table */ -void glColorTableEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table) -{ -} - -void glCopyColorTableEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width) -{ -} - -void glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table) -{ -} - -void glGetColorTableParamaterfvEXT(GLenum target, GLenum pname, GLfloat *params) -{ -} - -void glGetColorTavleParameterivEXT(GLenum target, GLenum pname, GLint *params) -{ -} - -/* SGI_compiled_vertex_array */ -void glLockArraysSGI(GLint first, GLsizei count) -{ -} - -void glUnlockArraysSGI() -{ -} - - -/* SGI_cull_vertex */ -void glCullParameterdvSGI(GLenum pname, GLdouble* params) -{ -} - -void glCullParameterfvSGI(GLenum pname, GLfloat* params) -{ -} - -/* SGI_index_func */ -void glIndexFuncSGI(GLenum func, GLclampf ref) -{ -} - -/* SGI_index_material */ -void glIndexMaterialSGI(GLenum face, GLenum mode) -{ -} - -/* WIN_swap_hint */ -void glAddSwapHintRectWin(GLint x, GLint y, GLsizei width, GLsizei height) -{ -} - diff --git a/utils/glcanvas/win/glcanvas.h b/utils/glcanvas/win/glcanvas.h deleted file mode 100644 index 186df14faf..0000000000 --- a/utils/glcanvas/win/glcanvas.h +++ /dev/null @@ -1,159 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.h -// Purpose: wxGLCanvas, for using OpenGL with wxWindows under Windows -// Author: Julian Smart -// Modified by: -// Created: 04/01/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "glcanvas.h" -#endif - -#ifndef _WX_GLCANVAS_H_ -#define _WX_GLCANVAS_H_ - -#include - -#include - -#include "gl/gl.h" - -//--------------------------------------------------------------------------- -// Constants for attriblist -//--------------------------------------------------------------------------- - -enum -{ - WX_GL_RGBA=1, /* use true color palette */ - WX_GL_DEPTH_SIZE, /* bits for Z-buffer (0,16,32) */ - WX_GL_DOUBLEBUFFER, /* use doublebuffer */ - WX_GL_MIN_RED, /* use red buffer with most bits (> MIN_RED bits) */ - WX_GL_MIN_GREEN, /* use green buffer with most bits (> MIN_GREEN bits) */ - WX_GL_MIN_BLUE /* use blue buffer with most bits (> MIN_BLUE bits) */ -/* these are enough constants for now, the remaining will be added later */ -}; - -class wxGLCanvas; /* forward reference */ - -class wxGLContext: public wxObject -{ -public: - wxGLContext(bool isRGB, wxGLCanvas *win, const wxPalette& palette = wxNullPalette); - wxGLContext( - bool isRGB, wxGLCanvas *win, - const wxPalette& WXUNUSED(palette), - const wxGLContext *other /* for sharing display lists */ - ); - ~wxGLContext(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - - - inline wxWindow* GetWindow() const { return m_window; } - inline WXHDC GetHDC() const { return m_hDC; } - inline HGLRC GetGLRC() const { return m_glContext; } - -public: - HGLRC m_glContext; - WXHDC m_hDC; - wxWindow* m_window; -}; - -class wxGLCanvas: public wxScrolledWindow -{ - DECLARE_CLASS(wxGLCanvas) - public: - wxGLCanvas(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette); - wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, - wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "GLCanvas", - int *attribList = (int*) NULL, const wxPalette& palette = wxNullPalette ); - - ~wxGLCanvas(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - - void OnSize(wxSizeEvent& event); - - void OnQueryNewPalette(wxQueryNewPaletteEvent& event); - void OnPaletteChanged(wxPaletteChangedEvent& event); - - inline wxGLContext* GetContext() const { return m_glContext; } - - - inline WXHDC GetHDC() const { return m_hDC; } - void SetupPixelFormat(); - void SetupPalette(const wxPalette& palette); - wxPalette CreateDefaultPalette(); - - inline wxPalette* GetPalette() const { return (wxPalette*) & m_palette; } - -protected: - wxGLContext* m_glContext; // this is typedef-ed ptr, in fact - wxPalette m_palette; - WXHDC m_hDC; - -DECLARE_EVENT_TABLE() -}; - -#ifdef __cplusplus -extern "C" { -#endif - -/* Give extensions proper function names. */ - -/* N.B. - this is not completely implemented as yet */ - -/* EXT_vertex_array */ -void glArrayElementEXT(GLint i); -void glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glDrawArraysEXT(GLenum mode, GLint first, GLsizei count); -void glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer); -void glGetPointervEXT(GLenum pname, GLvoid* *params); -void glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - -/* EXT_color_subtable */ -void glColorSubtableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table); - -/* EXT_color_table */ -void glColorTableEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -void glCopyColorTableEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -void glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table); -void glGetColorTableParamaterfvEXT(GLenum target, GLenum pname, GLfloat *params); -void glGetColorTavleParameterivEXT(GLenum target, GLenum pname, GLint *params); - -/* SGI_compiled_vertex_array */ -void glLockArraysSGI(GLint first, GLsizei count); -void glUnlockArraysSGI(); - -/* SGI_cull_vertex */ -void glCullParameterdvSGI(GLenum pname, GLdouble* params); -void glCullParameterfvSGI(GLenum pname, GLfloat* params); - -/* SGI_index_func */ -void glIndexFuncSGI(GLenum func, GLclampf ref); - -/* SGI_index_material */ -void glIndexMaterialSGI(GLenum face, GLenum mode); - -/* WIN_swap_hint */ -void glAddSwapHintRectWin(GLint x, GLint y, GLsizei width, GLsizei height); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/utils/glcanvas/win/makefile.b32 b/utils/glcanvas/win/makefile.b32 deleted file mode 100644 index 97783fb2d7..0000000000 --- a/utils/glcanvas/win/makefile.b32 +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds wxGLCanvas library for 32-bit BC++ - -WXDIR = $(WXWIN) - -LIBTARGET=$(WXDIR)\lib\glcanvas.lib - -OBJECTS = glcanvas.obj - -!include $(WXDIR)\src\makelib.b32 - diff --git a/utils/glcanvas/win/makefile.bcc b/utils/glcanvas/win/makefile.bcc deleted file mode 100644 index 705fc065bc..0000000000 --- a/utils/glcanvas/win/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=minimal -OBJECTS=$(TARGET).obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/utils/glcanvas/win/makefile.g95 b/utils/glcanvas/win/makefile.g95 deleted file mode 100644 index 98be5a9d86..0000000000 --- a/utils/glcanvas/win/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows wxGLCanvas library Cygwin/Mingw32). - -WXDIR = ../../.. - -LIBTARGET=$(WXDIR)/lib/libglcanvas.a -OBJECTS = glcanvas.o - -include $(WXDIR)/src/makelib.g95 - diff --git a/utils/glcanvas/win/makefile.vc b/utils/glcanvas/win/makefile.vc deleted file mode 100644 index 8d2c3fa238..0000000000 --- a/utils/glcanvas/win/makefile.vc +++ /dev/null @@ -1,75 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds GLCanvas class library (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) -GLDIR = $(WXDIR)\utils\glcanvas -THISDIR = $(GLDIR)\win -EXTRALIBS=$(WXDIR)\lib\glcanvas.lib -DOCDIR=$(WXDIR)\docs -LOCALDOCDIR=$(WXDIR)\utils\glcanvas\docs - -LIBTARGET=$(WXDIR)\lib\glcanvas.lib -OBJECTS = glcanvas.obj - -!include $(WXDIR)\src\makelib.vc - -glcanvas.obj: glcanvas.h glcanvas.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -DOCSOURCES=$(LOCALDOCDIR)\manual.tex $(LOCALDOCDIR)\classes.tex - -html: $(DOCDIR)\html\glcanvas\glcanvas.htm -hlp: $(DOCDIR)\winhelp\glcanvas.hlp -ps: $(WXDIR)\docs\ps\glcanvas.ps - -$(DOCDIR)\winhelp\glcanvas.hlp: $(LOCALDOCDIR)\glcanvas.rtf $(LOCALDOCDIR)\glcanvas.hpj - cd $(LOCALDOCDIR) - -erase glcanvas.ph - hc glcanvas - move glcanvas.hlp $(DOCDIR)\winhelp\glcanvas.hlp - move glcanvas.cnt $(DOCDIR)\winhelp\glcanvas.cnt - cd $(THISDIR) - -$(LOCALDOCDIR)\glcanvas.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -start /w tex2rtf $(LOCALDOCDIR)\manual.tex $(LOCALDOCDIR)\glcanvas.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)\html\glcanvas\glcanvas.htm: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -mkdir $(DOCDIR)\html\glcanvas - -start /w tex2rtf $(LOCALDOCDIR)\manual.tex $(DOCDIR)\html\glcanvas\glcanvas.htm -twice -html - -erase $(DOCDIR)\html\glcanvas\*.con - -erase $(DOCDIR)\html\glcanvas\*.ref - cd $(THISDIR) - -$(LOCALDOCDIR)\manual.dvi: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -latex manual - -latex manual - -makeindx manual - -bibtex manual - -latex manual - -latex manual - cd $(THISDIR) - -$(WXDIR)\docs\ps\glcanvas.ps: $(LOCALDOCDIR)\manual.dvi - cd $(LOCALDOCDIR) - -dvips32 -o glcanvas.ps manual - move glcanvas.ps $(WXDIR)\docs\ps\glcanvas.ps - cd $(THISDIR) - - diff --git a/utils/glcanvas/win/makefile.wat b/utils/glcanvas/win/makefile.wat deleted file mode 100644 index 7b533107ee..0000000000 --- a/utils/glcanvas/win/makefile.wat +++ /dev/null @@ -1,16 +0,0 @@ -#!/binb/wmake.exe -# -# File: makefile.wat -# Author: Julian Smart -# Created: 1999 -# -# Makefile : Builds wxGLCanvas library for Watcom C++, WIN32 - -WXDIR = $(%WXWIN) - -OBJECTS=glcanvas.obj -LIBTARGET=$(WXDIR)\lib\glcanvas.lib - -!include $(WXDIR)\src\makelib.wat - - diff --git a/utils/makefile.vc b/utils/makefile.vc deleted file mode 100644 index ece8395fe1..0000000000 --- a/utils/makefile.vc +++ /dev/null @@ -1,92 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds utilities for Win95, VC++ 4.0 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -THISDIR=$(WXDIR)\utils - -!include $(WXDIR)\src\ntwxwin.mak - -DEBUG_FLAGS="/Zi /FR" -LINK_DEBUG_FLAGS="/RELEASE" - -all: - cd $(WXDIR)\utils\dialoged\src - nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\hytext\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\mfutils\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\tex2rtf\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxbuild\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxgraph\src -# nmake -f makefile.vc test DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxtree\src -# nmake -f makefile.vc test DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxhelp\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wximage\win -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxweb\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxhelp2\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\clockwrk\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxanim\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\colours -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\ogl\src -# nmake -f makefile.vc DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) -# cd $(WXDIR)\utils\wxchart\src -# nmake -f makefile.vc test DEBUG_FLAGS=$(DEBUG_FLAGS) LINK_DEBUG_FLAGS=$(LINK_DEBUG_FLAGS) - -clean: - cd $(WXDIR)\utils\dialoged\src - nmake -f makefile.vc clean - cd $(WXDIR)\utils\nplugin - nmake -f makefile.vc clean -# cd $(WXDIR)\utils\hytext\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\mfutils\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\tex2rtf\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxbuild\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxgraph\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxtree\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxhelp\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxhelp2\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\clockwrk\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxanim\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\colours -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\ogl\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxchart\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wxweb\src -# nmake -f makefile.vc clean -# cd $(WXDIR)\utils\wximage\win -# nmake -f makefile.vc clean diff --git a/utils/nplugin/docs/notes.txt b/utils/nplugin/docs/notes.txt deleted file mode 100644 index ee3d1412ea..0000000000 --- a/utils/nplugin/docs/notes.txt +++ /dev/null @@ -1,32 +0,0 @@ -Notes about plugins - - - I have users that want to visit my pages with tclets, but they do not - have the plugin. What can I do? - - Add a pluginspage=http://www.sunlabs.com/tcl/plugin/ name=value - pair to the embed statement. This will cause Navigator to find - the plugin for your user and suggest they install it. The user - is then prompted to download and install the plugin, and then she - has to restart the browser and revisit your page. Very inconvenient - and only slightly better than giving your users the broken image - icon. Netscape says they are working on a more automatic solution. - - - - -14. Your demos work just fine, but when I visit my own pages with tclets in - them, at http://www.myserver.com/~mypages/mypage.html, I still get the - broken image icon. Why doesn't it work for me? - - This is likely because your web server -- the program that sends - the pages to your browser when you click on a URL -- is not - sending the right mime-type when it sends the '.tcl' file. You - can work around this by adding a type=application/x-tcl name=value - pair to the embed statement, which will cause Navigator to infer - that it should use the Tcl plugin anyways. A better solution is - to ask your system administrator to configure the web server to - send the mime type application/x-tcl when it sends files with a - '.tcl' extension. Nearly all web servers in the world nowadays - are already configured to do this, the only ones we are aware of - that do not are some older versions of Apache. diff --git a/utils/nplugin/lib/dummy b/utils/nplugin/lib/dummy deleted file mode 100644 index bfdf726d49..0000000000 --- a/utils/nplugin/lib/dummy +++ /dev/null @@ -1 +0,0 @@ -I'm just here to force the creation of a LIB directory. diff --git a/utils/nplugin/makefile.vc b/utils/nplugin/makefile.vc deleted file mode 100644 index a35290b4af..0000000000 --- a/utils/nplugin/makefile.vc +++ /dev/null @@ -1,32 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds utilities for Win95, VC++ 4.0 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -THISDIR=$(WXDIR)\utils\nplugin - -!include $(WXDIR)\src\makevc.env - -DEBUG_FLAGS="/Zi /FR" -LINK_DEBUG_FLAGS="/RELEASE" - -clean: - cd $(WXDIR)\utils\nplugin\src - nmake -f makefile.vc clean - cd $(WXDIR)\utils\nplugin\samples\simple - nmake -f makefile.vc clean - cd $(WXDIR)\utils\nplugin\samples\gui - nmake -f makefile.vc clean - cd $(WXDIR)\utils\nplugin - diff --git a/utils/nplugin/samples/gui/gui.cpp b/utils/nplugin/samples/gui/gui.cpp deleted file mode 100644 index 3ae118fda0..0000000000 --- a/utils/nplugin/samples/gui/gui.cpp +++ /dev/null @@ -1,186 +0,0 @@ -/* - * File: simple.cpp - * Purpose: Minimal wxWindows plugin - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -/* static const char sccsid[] = "%W% %G%"; */ - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include - -#include "NPApp.h" -#include "NPFrame.h" - -#define ID_HELLO 10 - -// Define a new application type -class MyApp: public wxPluginApp -{ public: - virtual wxFrame *OnInit(void); - virtual wxPluginFrame* OnNewInstance(const wxPluginData& data); -}; - -// Define a new frame type -class MyFrame: public wxPluginFrame -{ public: - MyFrame(const wxPluginData& data); - - public: - // Let's paint directly onto the 'frame'; we don't need a subwindow - void OnPaint(wxPaintEvent& event); - void OnMouseEvent(wxMouseEvent& event); - void OnHello(wxCommandEvent& event); - - // Called when the file has been downloaded - virtual void OnNPNewFile(NPStream *stream, const wxString& fname); - - void CentreStrings(wxDC& dc); - - DECLARE_EVENT_TABLE() - - protected: - wxStringList m_strings; - float m_xpos; - float m_ypos; -}; - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_SIZE(MyFrame::OnSize) - EVT_PAINT(MyFrame::OnPaint) - EVT_MOUSE_EVENTS(MyFrame::OnMouseEvent) - EVT_BUTTON(ID_HELLO, MyFrame::OnHello) -END_EVENT_TABLE() - -IMPLEMENT_APP(MyApp) - -// No app initialisation necessary, and for a plugin there is no -// top frame. -wxFrame *MyApp::OnInit(void) -{ - return NULL; -} - -// Called whenever a new plugin instance is called. We could check -// various things here in 'data' but we won't bother. -wxPluginFrame* MyApp::OnNewInstance(const wxPluginData& data) -{ - // Implicitly added to list of plugin frames - return new MyFrame(data); -} - -// My frame constructor -MyFrame::MyFrame(const wxPluginData& data): - wxPluginFrame(data) -{ - m_xpos = -1; - m_ypos = -1; - - wxMenuBar *menuBar = new wxMenuBar; - wxMenu *menu = new wxMenu; - menu->Append(1, "E&xit"); - menuBar->Append(menu, "&File"); - - SetMenuBar(menuBar); - - new wxTextCtrl(this, -1, "", wxPoint(10, 30), wxSize(200, 25), wxSUNKEN_BORDER); - new wxButton(this, ID_HELLO, "Hello", wxPoint(10, 70)); -} - -void MyFrame::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - dc.SetBrush(*wxCYAN_BRUSH); - dc.SetPen(*wxRED_PEN); - - int w, h; - GetClientSize(&w, &h); - - dc.DrawRectangle(0, 0, w, h); - - wxFont swissFont(10, wxSWISS, wxNORMAL, wxNORMAL); - dc.SetFont(swissFont); - dc.SetBackgroundMode(wxTRANSPARENT); - - CentreStrings(dc); -} - -// Called when the file has been downloaded -void MyFrame::OnNPNewFile(NPStream *stream, const wxString& fname) -{ - ifstream str(fname); - char buf[201]; - - while ( !str.eof() ) - { - buf[0] = 0; - str.getline(buf, 200); - - if ( buf[0] != 0 ) - m_strings.Add(buf); - } - Refresh(); -} - -void MyFrame::CentreStrings(wxDC& dc) -{ - int y = 5; - int cw, ch; - GetClientSize(&cw, &ch); - - wxNode *node = m_strings.First(); - while ( node ) - { - char *s = (char *)node->Data(); - float w, h; - dc.GetTextExtent(s, &w, &h); - - int x = wxMax(0, (cw - w)/2); - dc.DrawText(s, x, y); - - y += h + (h/2); - - node = node->Next(); - } -} - -// This implements a tiny doodling program. Drag the mouse using -// the left button. -void MyFrame::OnMouseEvent(wxMouseEvent& event) -{ - float x, y; - event.Position(&x, &y); - wxClientDC dc(this); - - if (m_xpos > -1 && m_ypos > -1 && event.Dragging() && event.LeftIsDown()) - { - dc.SetPen(wxBLACK_PEN); - dc.SetBrush(wxTRANSPARENT_BRUSH); - dc.DrawLine(m_xpos, m_ypos, x, y); - } - m_xpos = x; - m_ypos = y; -} - -void MyFrame::OnHello(wxCommandEvent& event) -{ - wxMessageBox("Hello!"); -} diff --git a/utils/nplugin/samples/gui/gui.h b/utils/nplugin/samples/gui/gui.h deleted file mode 100644 index 01e46d64b6..0000000000 --- a/utils/nplugin/samples/gui/gui.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * File: gui.h - * Purpose: wxWindows plugin with a few GUI elements - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -#ifndef __GUIH__ -#define __GUIH__ - -// Define a new application type -class MyApp: public wxPluginApp -{ public: - virtual wxFrame *OnInit(void); - virtual wxPluginFrame* OnNewInstance(const wxPluginData& data); -}; - -class MyApp; -class MyFrame; -class MyCanvas; - -class MyFrame: public wxPluginFrame -{ -public: - MyFrame(const wxPluginData& data); - virtual ~MyFrame(); - - void OldOnMenuCommand(int id); - -private: - wxMenu* fileMenu; - wxMenuBar* menuBar; - MyCanvas* leftCanvas; - MyCanvas* rightCanvas; - wxSplitterWindow* splitter; -}; - -class MyCanvas: public wxScrolledWindow -{ -public: - MyCanvas(wxWindow* parent, int x, int y, int w, int h); - virtual ~MyCanvas(); - - void OnPaint(wxPaintEvent& event); - -DECLARE_EVENT_TABLE() -}; - -// ID for the menu quit command -#define SPLIT_QUIT 1 -#define SPLIT_HORIZONTAL 2 -#define SPLIT_VERTICAL 3 -#define SPLIT_UNSPLIT 4 - - -#endif - diff --git a/utils/nplugin/samples/gui/index.html b/utils/nplugin/samples/gui/index.html deleted file mode 100644 index 1d84f3d78f..0000000000 --- a/utils/nplugin/samples/gui/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - -GUI Plugin Demo - - - -

    GUI Plugin Demo

    - -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file.

    - - - -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file.

    - -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file.

    - - - - diff --git a/utils/nplugin/samples/gui/makefile.vc b/utils/nplugin/samples/gui/makefile.vc deleted file mode 100644 index 6b7a480b83..0000000000 --- a/utils/nplugin/samples/gui/makefile.vc +++ /dev/null @@ -1,70 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds gui plugin example (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -# Application is a DLL -DLL=1 - -EXTRAINC=/I$(WXDIR)\utils\nplugin\src - -!include $(WXDIR)\src\makevc.env - -THISDIR = $(WXDIR)\utils\nplugin\examples\gui -PROGRAM=npgui32 -PLUGINLIB=$(WXDIR)\utils\nplugin\lib\nplugin.lib - -OBJECTS = gui.obj - -all: $(PROGRAM).dll - -$(PROGRAM): $(PROGRAM).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc dllnp FINAL=$(FINAL) - cd $(THISDIR) - -# Update the dynamic link library - -$(PROGRAM).dll: $(DUMMYOBJ) $(OBJECTS) $(WXLIB) $(PLUGINLIB) $(PROGRAM).res $(PROGRAM).def - $(link) $(LINKFLAGS) \ - -out:$(PROGRAM).dll \ - -def:$(PROGRAM).def \ - $(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res $(WXLIB) $(PLUGINLIB) \ - $(guilibsdll) shell32.lib comctl32.lib ctl3d32.lib - -gui.obj: gui.$(SRCSUFF) gui.h $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - -copy: - copy npgui32.dll "c:\program files\Netscape\Navigator\program\plugins" - copy npgui32.dll "c:\program files\Internet Explorer\plugins" - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb - -erase *.dll - -erase *.exp - -erase *.lib - -erase *.ilk diff --git a/utils/nplugin/samples/gui/npgui32.def b/utils/nplugin/samples/gui/npgui32.def deleted file mode 100644 index 1107bb98f5..0000000000 --- a/utils/nplugin/samples/gui/npgui32.def +++ /dev/null @@ -1,9 +0,0 @@ -LIBRARY NPGUI32 - -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD SINGLE - -EXPORTS - NP_GetEntryPoints @1 - NP_Initialize @2 - NP_Shutdown @3 diff --git a/utils/nplugin/samples/gui/npgui32.rc b/utils/nplugin/samples/gui/npgui32.rc deleted file mode 100644 index cafee455df..0000000000 --- a/utils/nplugin/samples/gui/npgui32.rc +++ /dev/null @@ -1,44 +0,0 @@ -#include "wx/msw/wx.rc" - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "Julian Smart\0" - VALUE "FileDescription", "wxWindows GUI example plugin file\0" - VALUE "FileVersion", "0.0.0.1\0" - VALUE "InternalName", "wxWindows GUI Plugin\0" - VALUE "LegalCopyright", "Copyright Julian Smart 1997\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename","npgui32.dll\0" - VALUE "ProductName", "wxWindows GUI Plugin Sample\0" - VALUE "ProductVersion", "0.0.0.1\0" - VALUE "MIMEType", "wxgui/mime-type\0" - VALUE "FileExtents", "gui\0" - VALUE "FileOpenName", "wxWindows GUI (*.gui)\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - diff --git a/utils/nplugin/samples/simple/index.html b/utils/nplugin/samples/simple/index.html deleted file mode 100644 index 84998d2cd5..0000000000 --- a/utils/nplugin/samples/simple/index.html +++ /dev/null @@ -1,34 +0,0 @@ - - -Simple Plugin Demo - - - -

    Simple Plugin Demo

    - -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file.

    - - - -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file.

    - -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file. -This just demonstrates how to embed an object into an HTML file.

    - - - - diff --git a/utils/nplugin/samples/simple/makefile.vc b/utils/nplugin/samples/simple/makefile.vc deleted file mode 100644 index d16e182330..0000000000 --- a/utils/nplugin/samples/simple/makefile.vc +++ /dev/null @@ -1,70 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1997 -# Updated: -# Copyright: (c) 1997, Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds simple plugin example (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -# Application is a DLL -DLL=1 - -EXTRAINC=/I$(WXDIR)\utils\nplugin\src - -!include $(WXDIR)\src\makevc.env - -THISDIR = $(WXDIR)\utils\nplugin\smples\simple -PROGRAM=npsimple32 -PLUGINLIB=$(WXDIR)\utils\nplugin\lib\nplugin.lib - -OBJECTS = simple.obj - -all: $(PROGRAM).dll - -$(PROGRAM): $(PROGRAM).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc dllnp FINAL=$(FINAL) - cd $(THISDIR) - -# Update the dynamic link library - -$(PROGRAM).dll: $(DUMMYOBJ) $(OBJECTS) $(WXLIB) $(PLUGINLIB) $(PROGRAM).res $(PROGRAM).def - $(link) $(LINKFLAGS) \ - -out:$(PROGRAM).dll \ - -def:$(PROGRAM).def \ - $(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res $(WXLIB) $(PLUGINLIB) \ - $(guilibsdll) lib shell32.lib comctl32.lib ctl3d32.lib ole32.lib - -simple.obj: simple.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - -copy: - copy npsimple32.dll "c:\program files\Netscape\Navigator\program\plugins" - copy npsimple32.dll "c:\program files\Internet Explorer\plugins" - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb - -erase *.dll - -erase *.exp - -erase *.lib - -erase *.ilk diff --git a/utils/nplugin/samples/simple/npsimple32.def b/utils/nplugin/samples/simple/npsimple32.def deleted file mode 100644 index e3af3116fe..0000000000 --- a/utils/nplugin/samples/simple/npsimple32.def +++ /dev/null @@ -1,9 +0,0 @@ -LIBRARY NPSIMPLE32 - -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD SINGLE - -EXPORTS - NP_GetEntryPoints @1 - NP_Initialize @2 - NP_Shutdown @3 diff --git a/utils/nplugin/samples/simple/npsimple32.rc b/utils/nplugin/samples/simple/npsimple32.rc deleted file mode 100644 index f2d4903226..0000000000 --- a/utils/nplugin/samples/simple/npsimple32.rc +++ /dev/null @@ -1,44 +0,0 @@ -#include "wx/msw/wx.rc" - -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,1 - PRODUCTVERSION 1,0,0,1 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x4L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "Julian Smart\0" - VALUE "FileDescription", "wxWindows simple example plugin file\0" - VALUE "FileVersion", "0.0.0.1\0" - VALUE "InternalName", "wxWindows Simple Plugin\0" - VALUE "LegalCopyright", "Copyright Julian Smart 1997\0" - VALUE "LegalTrademarks", "\0" - VALUE "OriginalFilename","npsimple32.dll\0" - VALUE "ProductName", "wxWindows Simple Plugin Sample\0" - VALUE "ProductVersion", "0.0.0.1\0" - VALUE "MIMEType", "wxsimple/mime-type\0" - VALUE "FileExtents", "smp\0" - VALUE "FileOpenName", "wxWindows Simple (*.smp)\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END - diff --git a/utils/nplugin/samples/simple/simple.cpp b/utils/nplugin/samples/simple/simple.cpp deleted file mode 100644 index 4e4a83f593..0000000000 --- a/utils/nplugin/samples/simple/simple.cpp +++ /dev/null @@ -1,174 +0,0 @@ -/* - * File: simple.cpp - * Purpose: Minimal wxWindows plugin - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -/* static const char sccsid[] = "%W% %G%"; */ - -#ifdef __GNUG__ -#pragma implementation -#pragma interface -#endif - -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include - -#include "NPApp.h" -#include "NPFrame.h" - -// Define a new application type -class MyApp: public wxPluginApp -{ public: - virtual bool OnInit(void); - virtual wxPluginFrame* OnNewInstance(const wxPluginData& data); -}; - -// Define a new frame type -class MyFrame: public wxPluginFrame -{ public: - MyFrame(const wxPluginData& data); - - public: - // Let's paint directly onto the 'frame'; we don't need a subwindow - void OnPaint(wxPaintEvent& event); - void OnDraw(wxDC& dc); - void OnMouseEvent(wxMouseEvent& event); - - // Called when the file has been downloaded - virtual void OnNPNewFile(NPStream *stream, const wxString& fname); - - void CentreStrings(wxDC& dc); - - DECLARE_EVENT_TABLE() - - protected: - wxStringList m_strings; - long m_xpos; - long m_ypos; -}; - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_SIZE(MyFrame::OnSize) - EVT_PAINT(MyFrame::OnPaint) - EVT_MOUSE_EVENTS(MyFrame::OnMouseEvent) -END_EVENT_TABLE() - -IMPLEMENT_APP(MyApp) - -// No app initialisation necessary, and for a plugin there is no -// top frame. -bool MyApp::OnInit(void) -{ - return TRUE; -} - -// Called whenever a new plugin instance is called. We could check -// various things here in 'data' but we won't bother. -wxPluginFrame* MyApp::OnNewInstance(const wxPluginData& data) -{ - // Implicitly added to list of plugin frames - return new MyFrame(data); -} - -// My frame constructor -MyFrame::MyFrame(const wxPluginData& data): - wxPluginFrame(data) -{ - m_xpos = -1; - m_ypos = -1; -} - -void MyFrame::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - OnDraw(dc); -} - -void MyFrame::OnDraw(wxDC& dc) -{ - dc.SetBrush(*wxCYAN_BRUSH); - dc.SetPen(*wxRED_PEN); - - int w, h; - GetClientSize(&w, &h); - - dc.DrawRectangle(0, 0, w, h); - - wxFont swissFont(10, wxSWISS, wxNORMAL, wxNORMAL); - dc.SetFont(swissFont); - dc.SetBackgroundMode(wxTRANSPARENT); - - CentreStrings(dc); -} - -// Called when the file has been downloaded -void MyFrame::OnNPNewFile(NPStream *stream, const wxString& fname) -{ - ifstream str(fname); - char buf[201]; - - while ( !str.eof() ) - { - buf[0] = 0; - str.getline(buf, 200); - - if ( buf[0] != 0 ) - m_strings.Add(buf); - } - Refresh(); -} - -void MyFrame::CentreStrings(wxDC& dc) -{ - int y = 5; - int cw, ch; - GetClientSize(&cw, &ch); - - wxNode *node = m_strings.First(); - while ( node ) - { - char *s = (char *)node->Data(); - long w, h; - dc.GetTextExtent(s, &w, &h); - - int x = wxMax(0, (cw - w)/2); - dc.DrawText(s, x, y); - - y += h + (h/2); - - node = node->Next(); - } -} - -// This implements a tiny doodling program. Drag the mouse using -// the left button. -void MyFrame::OnMouseEvent(wxMouseEvent& event) -{ - long x, y; - event.Position(&x, &y); - wxClientDC dc(this); - - if (m_xpos > -1 && m_ypos > -1 && event.Dragging() && event.LeftIsDown()) - { - dc.SetPen(wxBLACK_PEN); - dc.SetBrush(wxTRANSPARENT_BRUSH); - dc.DrawLine(m_xpos, m_ypos, x, y); - } - m_xpos = x; - m_ypos = y; -} - diff --git a/utils/nplugin/src/makefile.vc b/utils/nplugin/src/makefile.vc deleted file mode 100644 index 8493ca3723..0000000000 --- a/utils/nplugin/src/makefile.vc +++ /dev/null @@ -1,78 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds controls example (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -# Application is a DLL -DLL=1 - -!include $(WXDIR)\src\makevc.env - -PLUGINDIR = $(WXDIR)\utils\nplugin -THISDIR = $(PLUGINDIR)\src -LIBTARGET=$(PLUGINDIR)\lib\nplugin.lib - -OBJECTS = npwin.obj npshell.obj NPFrame.obj NPApp.obj - -all: $(LIBTARGET) - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.vc clean - cd $(THISDIR) - -$(LIBTARGET): $(OBJECTS) - -erase $(LIBTARGET) - $(implib) @<< --out:$(LIBTARGET) --machine:$(CPU) -$(OBJECTS) -<< - -npwin.obj: npwin.cpp npapi.h npupp.h - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -npshell.obj: npshell.cpp npapi.h NPApp.h NPFrame.h - $(cc) @<< -$(CPPFLAGS2) /c /Tp $*.$(SRCSUFF) -<< - -NPFrame.obj: NPFrame.cpp NPFrame.h NPApp.h npapi.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -NPApp.obj: NPApp.cpp NPApp.h NPFrame.h npapi.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb - -erase *.dll - -erase *.exp - -erase *.ilk - -erase $(LIBTARGET) diff --git a/utils/nplugin/src/npapi.h b/utils/nplugin/src/npapi.h deleted file mode 100644 index bbb631c3d4..0000000000 --- a/utils/nplugin/src/npapi.h +++ /dev/null @@ -1,258 +0,0 @@ -/* - * npapi.h $Revision$ - * Netscape client plug-in API spec - */ - -#ifndef _NPAPI_H_ -#define _NPAPI_H_ - - -/* XXX this needs to get out of here */ -#if defined(__MWERKS__) -#ifndef XP_MAC -#define XP_MAC -#endif -#endif - - -/* - * Version constants - */ - -#define NP_VERSION_MAJOR 0 -#define NP_VERSION_MINOR 6 - - - -/* - * Basic types - */ - -#ifndef _UINT16 -typedef unsigned short uint16; -#endif -#ifndef _UINT32 -typedef unsigned long uint32; -#endif -#ifndef _INT16 -typedef short int16; -#endif -#ifndef _INT32 -typedef long int32; -#endif - -#ifndef FALSE -#define FALSE (0) -#endif -#ifndef TRUE -#define TRUE (1) -#endif -#ifndef NULL -#define NULL (0L) -#endif - -typedef unsigned char NPBool; -typedef void* NPEvent; -typedef int16 NPError; -typedef char* NPMIMEType; - - -/* - * NPP is a plug-in's opaque instance handle - */ -typedef struct _NPP -{ - void* pdata; /* plug-in private data */ - void* ndata; /* netscape private data */ -} NPP_t; - -typedef NPP_t* NPP; - - - -typedef struct _NPStream -{ - void* pdata; /* plug-in private data */ - void* ndata; /* netscape private data */ - const char* url; - uint32 end; - uint32 lastmodified; -} NPStream; - -typedef struct _NPByteRange -{ - int32 offset; /* negative offset means from the end */ - uint32 length; - struct _NPByteRange* next; -} NPByteRange; - - -typedef struct _NPSavedData -{ - int32 len; - void* buf; -} NPSavedData; - - - -typedef struct _NPRect -{ - uint16 top; - uint16 left; - uint16 bottom; - uint16 right; -} NPRect; - -typedef struct _NPWindow -{ - void* window; /* platform specific window handle */ - uint32 x; /* position of top left corner relative to a netscape page */ - uint32 y; - uint32 width; /* maximum window size */ - uint32 height; - NPRect clipRect; /* clipping rectangle in port coordinates */ -} NPWindow; - - - -typedef struct _NPFullPrint -{ - NPBool pluginPrinted; /* Set TRUE if plugin handled fullscreen printing */ - NPBool printOne; /* TRUE if plugin should print one copy to default printer */ - void* platformPrint; /* Platform-specific printing info */ -} NPFullPrint; - -typedef struct _NPEmbedPrint -{ - NPWindow window; - void* platformPrint; /* Platform-specific printing info */ -} NPEmbedPrint; - -typedef struct _NPPrint -{ - uint16 mode; /* NP_FULL or NP_EMBED */ - union - { - NPFullPrint fullPrint; /* if mode is NP_FULL */ - NPEmbedPrint embedPrint; /* if mode is NP_EMBED */ - } print; -} NPPrint; - - - - -#ifdef XP_MAC - -/* - * Mac-specific structures and definitions. - */ - -#include -#include - -typedef struct NP_Port -{ - CGrafPtr port; /* Grafport */ - int32 portx; /* position inside the topmost window */ - int32 porty; -} NP_Port; - -/* - * Non-standard event types that can be passed to HandleEvent - */ -#define getFocusEvent (osEvt + 16) -#define loseFocusEvent (osEvt + 17) -#define adjustCursorEvent (osEvt + 18) - -#endif /* XP_MAC */ - - - - -#define NP_EMBED 1 -#define NP_FULL 2 -#define NP_BACKGROUND 3 - -#define NP_NORMAL 1 -#define NP_SEEK 2 -#define NP_ASFILE 3 - -#define NP_MAXREADY (((unsigned)(~0)<<1)>>1) - - -/* - * Error and reason code definitions. - */ - -#define NP_NOERR 0 -#define NP_EINVAL 1 -#define NP_EABORT 2 - -#define NPERR_BASE 0 -#define NPERR_NO_ERROR (NPERR_BASE + 0) -#define NPERR_GENERIC_ERROR (NPERR_BASE + 1) -#define NPERR_INVALID_INSTANCE_ERROR (NPERR_BASE + 2) -#define NPERR_INVALID_FUNCTABLE_ERROR (NPERR_BASE + 3) -#define NPERR_MODULE_LOAD_FAILED_ERROR (NPERR_BASE + 4) -#define NPERR_OUT_OF_MEMORY_ERROR (NPERR_BASE + 5) -#define NPERR_INVALID_PLUGIN_ERROR (NPERR_BASE + 6) -#define NPERR_INVALID_PLUGIN_DIR_ERROR (NPERR_BASE + 7) -#define NPERR_INCOMPATIBLE_VERSION_ERROR (NPERR_BASE + 8) - -#define NPRES_BASE 0 -#define NPRES_NETWORK_ERR (NPRES_BASE + 0) -#define NPRES_USER_BREAK (NPRES_BASE + 1) -#define NPRES_DONE (NPRES_BASE + 3) - - - -/* - * Function prototypes. - * Functions beginning with 'NPP' are functions provided by the plugin that Netscape will call. - * Functions beginning with 'NPN' are functions provided by Netscape that the plugin will call. - */ - -#if defined(_WINDOWS) && !defined(__WIN32__) -#define NP_LOADDS _loadds -#else -#define NP_LOADDS -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -NPError NPP_Initialize(void); -void NPP_Shutdown(void); -NPError NP_LOADDS NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved); -NPError NP_LOADDS NPP_Destroy(NPP instance, NPSavedData** save); -NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow* window); -NPError NP_LOADDS NPP_NewStream(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype); -NPError NP_LOADDS NPP_DestroyStream(NPP instance, NPStream* stream, NPError reason); -int32 NP_LOADDS NPP_WriteReady(NPP instance, NPStream* stream); -int32 NP_LOADDS NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer); -void NP_LOADDS NPP_StreamAsFile(NPP instance, NPStream* stream, const char* fname); -void NP_LOADDS NPP_Print(NPP instance, NPPrint* platformPrint); -int16 NPP_HandleEvent(NPP instance, void* event); - -void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor); -NPError NPN_GetURL(NPP instance, const char* url, const char* window); -NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file); -NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList); -NPError NPN_NewStream(NPP instance, NPMIMEType type, NPStream* stream); -int32 NPN_Write(NPP instance, NPStream* stream, int32 len, void* buffer); -NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason); -void NPN_Status(NPP instance, const char* message); -const char* NPN_UserAgent(NPP instance); -void* NPN_MemAlloc(uint32 size); -void NPN_MemFree(void* ptr); -uint32 NPN_MemFlush(uint32 size); -void NPN_ReloadPlugins(NPBool reloadPages); - -#ifdef __cplusplus -} /* end extern "C" */ -#endif - - -#endif /* _NPAPI_H_ */ - diff --git a/utils/nplugin/src/npapp.cpp b/utils/nplugin/src/npapp.cpp deleted file mode 100644 index b9e28cc159..0000000000 --- a/utils/nplugin/src/npapp.cpp +++ /dev/null @@ -1,278 +0,0 @@ -/* - * File: NPApp.cc - * Purpose: wxPluginApp implementation - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#include "NPApp.h" -#include "NPFrame.h" - -#include - -IMPLEMENT_ABSTRACT_CLASS(wxPluginApp, wxApp) - -wxPluginApp *wxGetPluginApp(void) -{ - if ( wxTheApp && wxTheApp->IsKindOf(CLASSINFO(wxPluginApp))) - return (wxPluginApp *)wxTheApp; - else - return NULL; -} - -wxPluginApp::wxPluginApp(void) -{ - m_data.m_argc = NULL; - m_data.m_argn = NULL; - m_data.m_argv = NULL; - m_data.m_type = 0; - m_data.m_instance = 0; - m_data.m_mode = 0; - m_data.m_window = 0; -} - -wxPluginApp::~wxPluginApp(void) -{ - if ( m_data.m_argn ) - delete[] m_data.m_argn; - if ( m_data.m_argv ) - delete[] m_data.m_argv; -} - -// Add a frame -void wxPluginApp::AddFrame(wxPluginFrame *frame) -{ - m_frames.Append(frame); -} - -// Remove a frame -void wxPluginApp::RemoveFrame(wxPluginFrame *frame) -{ - m_frames.DeleteObject(frame); -} - -// Find a frame given a NP instance -wxPluginFrame *wxPluginApp::FindFrame(NPP instance) -{ - wxNode *node = m_frames.First(); - while ( node ) - { - wxPluginFrame *frame = (wxPluginFrame *)node->Data(); - if ( frame->GetInstance() == instance ) - { - return frame; - } - node = node->Next(); - } - return NULL; -} - -void wxPluginApp::SetAttributeValues(const int n, char *argn[], char *argv[]) -{ - if ( m_data.m_argn ) - delete[] m_data.m_argn; - if ( m_data.m_argv ) - delete[] m_data.m_argv; - - m_data.m_argc = n; - - m_data.m_argn = new wxString[n]; - m_data.m_argv = new wxString[n]; - int i; - for ( i = 0; i < n ; i ++) - { - m_data.m_argn[i] = argn[i]; - m_data.m_argv[i] = argv[i]; - } -} - -/////////////////////////////////////////////////////////////// -// Netscape Plugin API calls routed via wxPluginApp - -NPError wxPluginApp::NPP_Destroy(NPP instance, NPSavedData** save) -{ - wxPluginFrame *frame = FindFrame(instance); - if ( frame ) - { - frame->Close(); - } - return NPERR_NO_ERROR; -} - -NPError wxPluginApp::NPP_DestroyStream(NPP instance, NPStream* stream, NPError reason) -{ - return NPERR_NO_ERROR; -} - -/* -jref wxPluginApp::NPP_GetJavaClass(void) -{ - return 0; -} -*/ - -// This can't work now because we don't have a global app until wxEntry is called. -// We'll put the wxEntry call in npshell.cpp instead. -NPError wxPluginApp::NPP_Initialize(void) -{ - static int init = FALSE; - - if ( init == TRUE ) - MessageBox(NULL, "wxPluginApp::NPP_Initialize:\nabout to call wxEntry for 2nd time!!!", "wxPlugin", MB_OK); - - wxEntry((WXHINSTANCE) GetModuleHandle(NULL)); - - init = TRUE; - -// MessageBox(NULL, "wxPluginApp::NPP_Initialize: have called wxEntry", "wxPlugin", MB_OK); - return NPERR_NO_ERROR; -} - -NPError wxPluginApp::NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, - int16 argc, char* argn[], char* argv[], NPSavedData* saved) -{ -// MessageBox(NULL, "wxPluginApp::NPP_New", "wxPlugin", MB_OK); - - // Save values so frame can be created in first NPP_SetWindow - if ( m_data.m_instance != 0 ) - { - MessageBox(NULL, "wxPluginApp::NPP_New: whoops, 2 NPP_New calls in succession without NPP_SetWindow.\n Need to modify my code!", "wxPlugin", MB_OK); - return NPERR_NO_ERROR; - } - - m_data.m_instance = instance; - m_data.m_type = pluginType; - m_data.m_mode = mode; - - SetAttributeValues(argc, argn, argv); - - // Unfortunately, we may get a stream event before we've got a valid window - // handle, so we just have to go ahead and create a new instance. - wxPluginFrame *frame = OnNewInstance(m_data); - - m_data.m_instance = NULL; - m_data.m_window = NULL; - delete[] m_data.m_argv; - delete[] m_data.m_argn; - m_data.m_argv = NULL; - m_data.m_argn = NULL; - - return NPERR_NO_ERROR; -} - -NPError wxPluginApp::NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream, - NPBool seekable, uint16* stype) -{ - // By default, we want to receive a file instead of a stream. - wxPluginFrame *frame = FindFrame(instance); - if ( frame ) - { - return frame->OnNPNewStream(type, stream, seekable, stype); - } - return NPERR_NO_ERROR; -} - -void wxPluginApp::NPP_Print(NPP instance, NPPrint* printInfo) -{ - if (instance == NULL) - return; - - wxPluginFrame *frame = FindFrame(instance); - if ( frame ) - { - frame->OnNPPrint(printInfo); - } -} - -NPError wxPluginApp::NPP_SetWindow(NPP instance, NPWindow* window) -{ -// MessageBox(NULL, "wxPluginApp::NPP_SetWindow", "wxPlugin", MB_OK); - - if ( window ) - wxDebugMsg("%d\n", (int) window->window); - - wxPluginFrame *frame = FindFrame(instance); - if ( frame ) - { - frame->SetNPWindow(window); - } - else - { -#if 0 - // No such frame: must make it. - if ( m_data.m_instance == NULL ) - { - MessageBox(NULL, "wxPluginApp::NPP_SetWindow: whoops, no data to create window. SetWindow called in funny order?", "wxPlugin", MB_OK); - return NPERR_NO_ERROR; - } - - if ( window->window == NULL ) - { - // We're receiving a NULL window before we've even received - // a valid window. Ignore this silly thing. - return NPERR_NO_ERROR; - } - - m_data.m_window = window; - m_data.m_instance = instance; - -// wxPluginFrame *frame = OnNewInstance(m_data); - - m_data.m_instance = NULL; - m_data.m_window = NULL; - delete[] m_data.m_argv; - delete[] m_data.m_argn; - m_data.m_argv = NULL; - m_data.m_argn = NULL; -#endif - } - return NPERR_NO_ERROR; -} - -void wxPluginApp::NPP_Shutdown(void) -{ - // Clean up wxWindows - CleanUp(); -} - -void wxPluginApp::NPP_StreamAsFile(NPP instance, NPStream* stream, const char *fname) -{ - wxPluginFrame *frame = FindFrame(instance); - if ( frame ) - { - wxString str(fname); - frame->OnNPNewFile(stream, str); - } -} - -/* -void wxPluginApp::NPP_URLNotify(NPP instance, const char* url, NPReason reason, - void* notifyData) -{ -} -*/ - -int32 wxPluginApp::NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, - void* buf) -{ - return len; // The number of bytes accepted -} - -static int32 STREAMBUFSIZE = 0X0FFFFFFF; // If we are reading from a file in NPAsFile - // mode so we can take any size stream in our - // write call (since we ignore it) - -int32 wxPluginApp::NPP_WriteReady(NPP instance, NPStream* stream) -{ - return STREAMBUFSIZE; // Number of bytes ready to accept in NPP_Write() -} - diff --git a/utils/nplugin/src/npapp.h b/utils/nplugin/src/npapp.h deleted file mode 100644 index 238a612313..0000000000 --- a/utils/nplugin/src/npapp.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * File: NPApp.h - * Purpose: wxPluginApp declaration - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -#ifndef __PLUGINAPP__ -#define __PLUGINAPP__ - -#include "wx/wx.h" -#include "npapi.h" - -class wxPluginFrame; - -// Data passed to OnNewInstance -class wxPluginData -{ -public: - NPP m_instance; - NPMIMEType m_type; - NPWindow* m_window; - int m_mode; - int m_argc; - wxString* m_argn; - wxString* m_argv; -}; - -class WXDLLEXPORT wxPluginApp: public wxApp -{ - DECLARE_ABSTRACT_CLASS(wxPluginApp) - -public: - wxPluginApp(void); - ~wxPluginApp(void); - - // Find a frame given a NP instance - wxPluginFrame *FindFrame(NPP instance); - - // Add a frame - void AddFrame(wxPluginFrame *frame); - - // Remove a frame - void RemoveFrame(wxPluginFrame *frame); - - // Set attribute/values for the last instance - void SetAttributeValues(const int n, char *argn[], char *argv[]); - - /////////////////////////////////////////////////////////////// - // Higher-level API than NP API - virtual wxPluginFrame *OnNewInstance(const wxPluginData& data) = 0; - - /////////////////////////////////////////////////////////////// - // Netscape Plugin API calls routed via wxPluginApp - - virtual NPError NPP_Destroy(NPP instance, NPSavedData** save); - virtual NPError NPP_DestroyStream(NPP instance, NPStream* stream, NPError reason); -// virtual jref NPP_GetJavaClass(void); - virtual NPError NPP_Initialize(void); - virtual NPError NPP_New(NPMIMEType pluginType, NPP instance, uint16 mode, - int16 argc, char* argn[], char* argv[], NPSavedData* saved); - virtual NPError NPP_NewStream(NPP instance, NPMIMEType type, NPStream *stream, - NPBool seekable, uint16* stype); - virtual void NPP_Print(NPP instance, NPPrint* platformPrint); - virtual NPError NPP_SetWindow(NPP instance, NPWindow* window); - virtual void NPP_Shutdown(void); - virtual void NPP_StreamAsFile(NPP instance, NPStream* stream, const char *fname); -/* - virtual void NPP_URLNotify(NPP instance, const char* url, NPReason reason, - void* notifyData); -*/ - virtual int32 NPP_Write(NPP instance, NPStream* stream, int32 offset, int32 len, - void* buf); - virtual int32 NPP_WriteReady(NPP instance, NPStream* stream); - -protected: - - // List of plugin frames - wxList m_frames; - - // Temporary NPP_New arguments so we can wait until NPP_SetWindow is called - // before creating a frame - wxPluginData m_data; -}; - -wxPluginApp *wxGetPluginApp(void); - -#endif - diff --git a/utils/nplugin/src/npframe.cpp b/utils/nplugin/src/npframe.cpp deleted file mode 100644 index 2e050c174b..0000000000 --- a/utils/nplugin/src/npframe.cpp +++ /dev/null @@ -1,293 +0,0 @@ -/* - * File: NPFrame.cc - * Purpose: wxPluginFrame implementation - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/frame.h" -#endif - -#include "wx/dcprint.h" - -#include "NPFrame.h" -#include "NPApp.h" - -#include - -extern wxList wxModelessWindows; -extern char wxFrameClassName[]; - -IMPLEMENT_DYNAMIC_CLASS(wxPluginFrame, wxFrame) - -wxPluginFrame::wxPluginFrame(void) -{ - m_npWindow = NULL; - m_npInstance = NULL; - m_nAttributes = 0; - m_names = NULL; - m_values = NULL; -} - -bool wxPluginFrame::Create(const wxPluginData& data) -{ - SetName("pluginFrame"); - - m_npWindow = NULL; - m_npInstance = NULL; - m_nAttributes = 0; - m_names = NULL; - m_values = NULL; - m_npWindow = data.m_window; - m_npInstance = data.m_instance; - - SetAttributeValues(data.m_argc, data.m_argn, data.m_argv); - SetNPWindow(data.m_window); - - wxModelessWindows.Append(this); - - if (wxTheApp->IsKindOf(CLASSINFO(wxPluginApp))) - { - ((wxPluginApp *)wxTheApp)->AddFrame(this); - } - return TRUE; -} - -wxPluginFrame::~wxPluginFrame(void) -{ - if (wxTheApp->IsKindOf(CLASSINFO(wxPluginApp))) - { - ((wxPluginApp *)wxTheApp)->RemoveFrame(this); - } - - if ( GetHWND() ) - UnsubclassWin(); - m_hWnd = 0; - - if ( m_names ) - delete[] m_names; - if ( m_values ) - delete[] m_values; -} - -// Get size *available for subwindows* i.e. excluding menu bar etc. -// For XView, this is the same as GetSize -void wxPluginFrame::GetClientSize(int *x, int *y) const -{ - if ( !m_hWnd ) - { - *x = 0; *y = 0; - return; - } - wxFrame::GetClientSize(x, y); -} - -// Set the client size (i.e. leave the calculation of borders etc. -// to wxWindows) -void wxPluginFrame::SetClientSize(const int width, const int height) -{ - if ( !m_hWnd ) - return ; - - wxFrame::SetClientSize(width, height); -} - -void wxPluginFrame::GetSize(int *width, int *height) const -{ - if ( !m_hWnd ) - { - *width = 0; *height = 0; - return; - } - wxFrame::GetSize(width, height); -} - -void wxPluginFrame::GetPosition(int *x, int *y) const -{ - if ( !m_hWnd ) - { - *x = 0; *y = 0; - return; - } - wxFrame::GetPosition(x, y); -} - -void wxPluginFrame::SetAttributeValues(const int n, const char *argn[], const char *argv[]) -{ - if ( m_names ) - delete[] m_names; - if ( m_values ) - delete[] m_values; - - m_nAttributes = n; - - m_names = new wxString[n]; - m_values = new wxString[n]; - int i; - for ( i = 0; i < n ; i ++) - { - m_names[i] = argn[i]; - m_values[i] = argv[i]; - } -} - -void wxPluginFrame::SetAttributeValues(const int n, const wxString* argn, const wxString* argv) -{ - if ( m_names ) - delete[] m_names; - if ( m_values ) - delete[] m_values; - - m_nAttributes = n; - - m_names = new wxString[n]; - m_values = new wxString[n]; - int i; - for ( i = 0; i < n ; i ++) - { - m_names[i] = argn[i]; - m_values[i] = argv[i]; - } -} - -void wxPluginFrame::SetSize(const int x, const int y, const int width, const int height, const int sizeFlags) -{ - // Can't allow app to set the size. - return; -} - -// Sets and subclasses the platform-specific window handle -bool wxPluginFrame::SetNPWindow(NPWindow *window) -{ - if ( !window || !window->window) - { - if ( m_hWnd ) - { - wxMessageBox("Unsubclassing window prematurely"); - UnsubclassWin(); - m_hWnd = 0; - } - m_npWindow = NULL; - } - else - { - if ( m_hWnd ) - { - if ( m_hWnd == (WXHWND) window->window ) - { - // Does this mean a resize? - return TRUE; - } - } - - m_npWindow = window; - m_hWnd = (WXHWND) window->window; - SubclassWin(m_hWnd); - m_windowId = ::GetWindowLong((HWND) m_hWnd, GWL_ID); - } - return TRUE; -} - -NPError wxPluginFrame::OnNPNewStream(NPMIMEType type, NPStream *stream, bool seekable, uint16* stype) -{ - *stype = NP_ASFILE; - return NPERR_NO_ERROR; -} - -void wxPluginFrame::OnNPNewFile(NPStream *stream, const wxString& fname) -{ -} - -void wxPluginFrame::OnNPPrint(NPPrint* printInfo) -{ - if (printInfo->mode == NP_FULL) - { - // - // *Developers*: If your plugin would like to take over - // printing completely when it is in full-screen mode, - // set printInfo->pluginPrinted to TRUE and print your - // plugin as you see fit. If your plugin wants Netscape - // to handle printing in this case, set printInfo->pluginPrinted - // to FALSE (the default) and do nothing. If you do want - // to handle printing yourself, printOne is true if the - // print button (as opposed to the print menu) was clicked. - // On the Macintosh, platformPrint is a THPrint; on Windows, - // platformPrint is a structure (defined in npapi.h) containing - // the printer name, port, etc. - // - void* platformPrint = printInfo->print.fullPrint.platformPrint; - NPBool printOne = printInfo->print.fullPrint.printOne; - - printInfo->print.fullPrint.pluginPrinted = FALSE; // Do the default - - } - else // If not fullscreen, we must be embedded - { - // - // *Developers*: If your plugin is embedded, or is full-screen - // but you returned false in pluginPrinted above, NPP_Print - // will be called with mode == NP_EMBED. The NPWindow - // in the printInfo gives the location and dimensions of - // the embedded plugin on the printed page. On the Macintosh, - // platformPrint is the printer port; on Windows, platformPrint - // is the handle to the printing device context. - // - NPWindow* printWindow = &(printInfo->print.embedPrint.window); - void* platformPrint = printInfo->print.embedPrint.platformPrint; - - HDC hDC = (HDC) platformPrint; - wxRect rect; - rect.x = printWindow->x; - rect.y = printWindow->y; - rect.width = printWindow->width; - rect.height = printWindow->height; - - int saveIt = ::SaveDC(hDC); - - wxPrinterDC *printerDC = new wxPrinterDC((WXHDC) hDC); - - OnPrint(*printerDC, rect); - - printerDC->SetHDC(0); - delete printerDC; - - ::RestoreDC(hDC, saveIt); - } - } - -void wxPluginFrame::OnPrint(wxPrinterDC& dc, wxRect& rect) -{ - // We must do some transformations here - RECT winRect; -/* - winRect.left = rect.x; - winRect.top = rect.y; - winRect.right = rect.x + rect.right; - winRect.bottom = rect.y + rect.height; -*/ - POINT winPoint[2]; - winPoint[0].x = rect.x; - winPoint[0].y = rect.y; - winPoint[1].x = rect.x + rect.width; - winPoint[1].y = rect.y + rect.height; - - if (!LPtoDP((HDC) dc.GetHDC(), winPoint, 2)) - wxMessageBox("LPtoDP failed."); - - OnDraw(dc); -} - -void wxPluginFrame::OnDraw(wxDC& dc) -{ -} - diff --git a/utils/nplugin/src/npframe.h b/utils/nplugin/src/npframe.h deleted file mode 100644 index 6cac54b828..0000000000 --- a/utils/nplugin/src/npframe.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * File: NPFrame.h - * Purpose: wxPluginFrame declaration - * Author: Julian Smart - * Created: 1997 - * Updated: - * Copyright: (c) Julian Smart - */ - -#ifndef __PLUGINFRAME__ -#define __PLUGINFRAME__ - -#include "wx/frame.h" -#include "NPApp.h" -#include "npapi.h" - -WXDLLEXPORT extern const char *wxFrameNameStr; - -class wxPrinterDC; -class WXDLLEXPORT wxPluginFrame: public wxFrame -{ - DECLARE_DYNAMIC_CLASS(wxPluginFrame) - -public: - wxPluginFrame(void); - inline wxPluginFrame(const wxPluginData& data) - { - m_npWindow = NULL; - m_npInstance = NULL; - m_nAttributes = 0; - m_names = NULL; - m_values = NULL; - - Create(data); - } - - ~wxPluginFrame(void); - - bool Create(const wxPluginData& data); - - // Sets and subclasses the platform-specific window handle - virtual bool SetNPWindow(NPWindow *window); - inline NPWindow *GetNPWindow(void) { return m_npWindow; } - - void SetClientSize(const int width, const int height); - void GetClientSize(int *width, int *height) const; - - void GetSize(int *width, int *height) const ; - void GetPosition(int *x, int *y) const ; - void SetSize(const int x, const int y, const int width, const int height, const int sizeFlags = wxSIZE_AUTO); - - // Accessors - inline int GetAttributeCount(void) const { return m_nAttributes; } - inline wxString GetAttributeName(const int n) { return m_names[n]; } - inline wxString GetAttributeValue(const int n) { return m_values[n]; } - - void SetAttributeValues(const int n, const char* argn[], const char *argv[]); - void SetAttributeValues(const int n, const wxString* argn, const wxString* argv); - inline void SetInstance(const NPP instance) { m_npInstance = instance; }; - inline NPP GetInstance(void) { return m_npInstance; } - - // Overridables: low-level - virtual NPError OnNPNewStream(NPMIMEType type, NPStream *stream, bool seekable, uint16* stype); - virtual void OnNPNewFile(NPStream *stream, const wxString& fname); - virtual void OnNPPrint(NPPrint* printInfo); - - // Overridables: high-level - virtual void OnPrint(wxPrinterDC& dc, wxRect& rect); - virtual void OnDraw(wxDC& dc); - -protected: - - wxString* m_names; - wxString* m_values; - int m_nAttributes; - NPP m_npInstance; - NPWindow* m_npWindow; -}; - -#endif - diff --git a/utils/nplugin/src/npshell.cpp b/utils/nplugin/src/npshell.cpp deleted file mode 100644 index 2fe8d3b4b6..0000000000 --- a/utils/nplugin/src/npshell.cpp +++ /dev/null @@ -1,282 +0,0 @@ -//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -// -// npshell.cpp -// -// This file defines a "shell" plugin that plugin developers can use -// as the basis for a real plugin. This shell just provides empty -// implementations of all functions that the plugin can implement -// that will be called by Netscape (the NPP_xxx methods defined in -// npapi.h). -// -//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: - -#ifndef _NPAPI_H_ -#include "npapi.h" -#endif - -#include -#include -#include - -#include "NPApp.h" - -// -// Instance state information about the plugin. -// -// *Developers*: Use this struct to hold per-instance -// information that you'll need in the -// various functions in this file. -// -typedef struct _PluginInstance -{ - NPWindow* fWindow; - uint16 fMode; - -} PluginInstance; - - - -//------------------------------------------------------------------------------------ -// NPP_Initialize: -//------------------------------------------------------------------------------------ -NPError NPP_Initialize(void) -{ -// MessageBox(NULL, "NPP_Initialize", "NPTest", MB_OK); -/* - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_Initialize(); - else - return NPERR_NO_ERROR; -*/ - wxEntry((WXHINSTANCE) GetModuleHandle(NULL)); - - return NPERR_NO_ERROR; -} - - -//------------------------------------------------------------------------------------ -// NPP_Shutdown: -//------------------------------------------------------------------------------------ -void NPP_Shutdown(void) -{ -// MessageBox(NULL, "NPP_Shutdown", "wxPlugin", MB_OK); - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - app->NPP_Shutdown(); -} - - -//------------------------------------------------------------------------------------ -// NPP_New: -//------------------------------------------------------------------------------------ -NPError NP_LOADDS -NPP_New(NPMIMEType pluginType, - NPP instance, - uint16 mode, - int16 argc, - char* argn[], - char* argv[], - NPSavedData* saved) -{ -// MessageBox(NULL, "NPP_New", "NPTest", MB_OK); - - if (instance == NULL) - return NPERR_INVALID_INSTANCE_ERROR; - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_New(pluginType, instance, mode, argc, argn, argv, saved); - else - return NPERR_NO_ERROR; -} - -//------------------------------------------------------------------------------------ -// NPP_Destroy: -//------------------------------------------------------------------------------------ -NPError NP_LOADDS -NPP_Destroy(NPP instance, NPSavedData** save) -{ -// MessageBox(NULL, "NPP_Destroy", "NPTest", MB_OK); - - if (instance == NULL) - return NPERR_INVALID_INSTANCE_ERROR; - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_Destroy(instance, save); - else - return NPERR_NO_ERROR; -} - - -//------------------------------------------------------------------------------------ -// NPP_SetWindow: -//------------------------------------------------------------------------------------ -NPError NP_LOADDS -NPP_SetWindow(NPP instance, NPWindow* window) -{ -// MessageBox(NULL, "NPP_SetWindow", "NPTest", MB_OK); - - if (instance == NULL) - return NPERR_INVALID_INSTANCE_ERROR; - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_SetWindow(instance, window); - else - return NPERR_NO_ERROR; -} - - -//------------------------------------------------------------------------------------ -// NPP_NewStream: -//------------------------------------------------------------------------------------ -NPError NP_LOADDS -NPP_NewStream(NPP instance, - NPMIMEType type, - NPStream *stream, - NPBool seekable, - uint16 *stype) -{ -// MessageBox(NULL, "NPP_NewStream", "NPTest", MB_OK); - - if (instance == NULL) - return NPERR_INVALID_INSTANCE_ERROR; - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_NewStream(instance, type, stream, seekable, stype); - else - return NPERR_NO_ERROR; -} - - - -// -// *Developers*: -// These next 2 functions are directly relevant in a plug-in which handles the -// data in a streaming manner. If you want zero bytes because no buffer space -// is YET available, return 0. As long as the stream has not been written -// to the plugin, Navigator will continue trying to send bytes. If the plugin -// doesn't want them, just return some large number from NPP_WriteReady(), and -// ignore them in NPP_Write(). For a NP_ASFILE stream, they are still called -// but can safely be ignored using this strategy. -// - -static int32 STREAMBUFSIZE = 0X0FFFFFFF; // If we are reading from a file in NPAsFile - // mode so we can take any size stream in our - // write call (since we ignore it) - -//------------------------------------------------------------------------------------ -// NPP_WriteReady: -//------------------------------------------------------------------------------------ -int32 NP_LOADDS -NPP_WriteReady(NPP instance, NPStream *stream) -{ - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_WriteReady(instance, stream); - else - return STREAMBUFSIZE; - - return STREAMBUFSIZE; // Number of bytes ready to accept in NPP_Write() -} - - - -//------------------------------------------------------------------------------------ -// NPP_Write: -//------------------------------------------------------------------------------------ -int32 NP_LOADDS -NPP_Write(NPP instance, NPStream *stream, int32 offset, int32 len, void *buffer) -{ - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_Write(instance, stream, offset, len, buffer); - else - return len; // The number of bytes accepted -} - - - -//------------------------------------------------------------------------------------ -// NPP_DestroyStream: -//------------------------------------------------------------------------------------ -NPError NP_LOADDS -NPP_DestroyStream(NPP instance, NPStream *stream, NPError reason) -{ - if (instance == NULL) - return NPERR_INVALID_INSTANCE_ERROR; - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - return app->NPP_DestroyStream(instance, stream, reason); - else - return NPERR_NO_ERROR; -} - - -//------------------------------------------------------------------------------------ -// NPP_StreamAsFile: -//------------------------------------------------------------------------------------ -void NP_LOADDS -NPP_StreamAsFile(NPP instance, NPStream *stream, const char* fname) -{ - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - app->NPP_StreamAsFile(instance, stream, fname); -} - - - -//------------------------------------------------------------------------------------ -// NPP_Print: -//------------------------------------------------------------------------------------ -void NP_LOADDS -NPP_Print(NPP instance, NPPrint* printInfo) -{ - if (printInfo == NULL) // trap invalid parm - return; - if ( instance == NULL ) - return; - - wxPluginApp *app = wxGetPluginApp(); - if ( app ) - app->NPP_Print(instance, printInfo); -} - - -//------------------------------------------------------------------------------------ -// NPP_HandleEvent: -// Mac-only. -//------------------------------------------------------------------------------------ -int16 NPP_HandleEvent(NPP instance, void* event) -{ - NPBool eventHandled = FALSE; - if (instance == NULL) - return eventHandled; - - PluginInstance* This = (PluginInstance*) instance->pdata; - - // - // *Developers*: The "event" passed in is a Macintosh - // EventRecord*. The event.what field can be any of the - // normal Mac event types, or one of the following additional - // types defined in npapi.h: getFocusEvent, loseFocusEvent, - // adjustCursorEvent. The focus events inform your plugin - // that it will become, or is no longer, the recepient of - // key events. If your plugin doesn't want to receive key - // events, return false when passed at getFocusEvent. The - // adjustCursorEvent is passed repeatedly when the mouse is - // over your plugin; if your plugin doesn't want to set the - // cursor, return false. Handle the standard Mac events as - // normal. The return value for all standard events is currently - // ignored except for the key event: for key events, only return - // true if your plugin has handled that particular key event. - // - - return eventHandled; -} - diff --git a/utils/nplugin/src/npupp.h b/utils/nplugin/src/npupp.h deleted file mode 100644 index 1c352d2245..0000000000 --- a/utils/nplugin/src/npupp.h +++ /dev/null @@ -1,799 +0,0 @@ -/* - * npupp.h $Revision$ - * function call mecahnics needed by platform specific glue code. - */ - - -#ifndef _NPUPP_H_ -#define _NPUPP_H_ - -#ifndef GENERATINGCFM -#define GENERATINGCFM 0 -#endif - -#ifndef _NPAPI_H_ -#include "npapi.h" -#endif - -/****************************************************************************************** - plug-in function table macros - for each function in and out of the plugin API we define - typedef NPP_FooUPP - #define NewNPP_FooProc - #define CallNPP_FooProc - for mac, define the UPP magic for PPC/68K calling - *******************************************************************************************/ - - -/* NPP_Initialize */ - -#if GENERATINGCFM -typedef UniversalProcPtr NPP_InitializeUPP; - -enum { - uppNPP_InitializeProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(0)) - | RESULT_SIZE(SIZE_CODE(0)) -}; - -#define NewNPP_InitializeProc(FUNC) \ - (NPP_InitializeUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_InitializeProcInfo, GetCurrentArchitecture()) -#define CallNPP_InitializeProc(FUNC) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_InitializeProcInfo) - -#else - -typedef void (*NPP_InitializeUPP)(void); -#define NewNPP_InitializeProc(FUNC) \ - ((NPP_InitializeUPP) (FUNC)) -#define CallNPP_InitializeProc(FUNC) \ - (*(FUNC))() - -#endif - - -/* NPP_Shutdown */ - -#if GENERATINGCFM -typedef UniversalProcPtr NPP_ShutdownUPP; - -enum { - uppNPP_ShutdownProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(0)) - | RESULT_SIZE(SIZE_CODE(0)) -}; - -#define NewNPP_ShutdownProc(FUNC) \ - (NPP_ShutdownUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_ShutdownProcInfo, GetCurrentArchitecture()) -#define CallNPP_ShutdownProc(FUNC) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_ShutdownProcInfo) - -#else - -typedef void (*NPP_ShutdownUPP)(void); -#define NewNPP_ShutdownProc(FUNC) \ - ((NPP_ShutdownUPP) (FUNC)) -#define CallNPP_ShutdownProc(FUNC) \ - (*(FUNC))() - -#endif - - -/* NPP_New */ - -#if GENERATINGCFM -typedef UniversalProcPtr NPP_NewUPP; - -enum { - uppNPP_NewProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPMIMEType))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(uint16))) - | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(int16))) - | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(char **))) - | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(char **))) - | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(NPSavedData *))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; - -#define NewNPP_NewProc(FUNC) \ - (NPP_NewUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_NewProcInfo, GetCurrentArchitecture()) -#define CallNPP_NewProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_NewProcInfo, \ - (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7)) -#else - -typedef NPError (*NPP_NewUPP)(NPMIMEType pluginType, NPP instance, uint16 mode, int16 argc, char* argn[], char* argv[], NPSavedData* saved); -#define NewNPP_NewProc(FUNC) \ - ((NPP_NewUPP) (FUNC)) -#define CallNPP_NewProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6, ARG7) \ - (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6), (ARG7)) - -#endif - - -/* NPP_Destroy */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_DestroyUPP; -enum { - uppNPP_DestroyProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPSavedData **))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPP_DestroyProc(FUNC) \ - (NPP_DestroyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_DestroyProcInfo, GetCurrentArchitecture()) -#define CallNPP_DestroyProc(FUNC, ARG1, ARG2) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_DestroyProcInfo, (ARG1), (ARG2)) -#else - -typedef NPError (*NPP_DestroyUPP)(NPP instance, NPSavedData** save); -#define NewNPP_DestroyProc(FUNC) \ - ((NPP_DestroyUPP) (FUNC)) -#define CallNPP_DestroyProc(FUNC, ARG1, ARG2) \ - (*(FUNC))((ARG1), (ARG2)) - -#endif - - -/* NPP_SetWindow */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_SetWindowUPP; -enum { - uppNPP_SetWindowProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPWindow *))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPP_SetWindowProc(FUNC) \ - (NPP_SetWindowUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_SetWindowProcInfo, GetCurrentArchitecture()) -#define CallNPP_SetWindowProc(FUNC, ARG1, ARG2) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_SetWindowProcInfo, (ARG1), (ARG2)) - -#else - -typedef NPError (*NPP_SetWindowUPP)(NPP instance, NPWindow* window); -#define NewNPP_SetWindowProc(FUNC) \ - ((NPP_SetWindowUPP) (FUNC)) -#define CallNPP_SetWindowProc(FUNC, ARG1, ARG2) \ - (*(FUNC))((ARG1), (ARG2)) - -#endif - - -/* NPP_NewStream */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_NewStreamUPP; -enum { - uppNPP_NewStreamProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPMIMEType))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(NPBool))) - | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(uint16 *))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPP_NewStreamProc(FUNC) \ - (NPP_NewStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_NewStreamProcInfo, GetCurrentArchitecture()) -#define CallNPP_NewStreamProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_NewStreamProcInfo, (ARG1), (ARG2), (ARG3), (ARG4), (ARG5)) -#else - -typedef NPError (*NPP_NewStreamUPP)(NPP instance, NPMIMEType type, NPStream* stream, NPBool seekable, uint16* stype); -#define NewNPP_NewStreamProc(FUNC) \ - ((NPP_NewStreamUPP) (FUNC)) -#define CallNPP_NewStreamProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5) \ - (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5)) -#endif - - -/* NPP_DestroyStream */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_DestroyStreamUPP; -enum { - uppNPP_DestroyStreamProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPError))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPP_DestroyStreamProc(FUNC) \ - (NPP_DestroyStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_DestroyStreamProcInfo, GetCurrentArchitecture()) -#define CallNPP_DestroyStreamProc(FUNC, NPParg, NPStreamPtr, NPErrorArg) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_DestroyStreamProcInfo, (NPParg), (NPStreamPtr), (NPErrorArg)) - -#else - -typedef NPError (*NPP_DestroyStreamUPP)(NPP instance, NPStream* stream, NPError reason); -#define NewNPP_DestroyStreamProc(FUNC) \ - ((NPP_DestroyStreamUPP) (FUNC)) -#define CallNPP_DestroyStreamProc(FUNC, NPParg, NPStreamPtr, NPErrorArg) \ - (*(FUNC))((NPParg), (NPStreamPtr), (NPErrorArg)) - -#endif - - -/* NPP_WriteReady */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_WriteReadyUPP; -enum { - uppNPP_WriteReadyProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *))) - | RESULT_SIZE(SIZE_CODE(sizeof(int32))) -}; -#define NewNPP_WriteReadyProc(FUNC) \ - (NPP_WriteReadyUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_WriteReadyProcInfo, GetCurrentArchitecture()) -#define CallNPP_WriteReadyProc(FUNC, NPParg, NPStreamPtr) \ - (int32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_WriteReadyProcInfo, (NPParg), (NPStreamPtr)) - -#else - -typedef int32 (*NPP_WriteReadyUPP)(NPP instance, NPStream* stream); -#define NewNPP_WriteReadyProc(FUNC) \ - ((NPP_WriteReadyUPP) (FUNC)) -#define CallNPP_WriteReadyProc(FUNC, NPParg, NPStreamPtr) \ - (*(FUNC))((NPParg), (NPStreamPtr)) - -#endif - - -/* NPP_Write */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_WriteUPP; -enum { - uppNPP_WriteProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(int32))) - | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(int32))) - | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(void*))) - | RESULT_SIZE(SIZE_CODE(sizeof(int32))) -}; -#define NewNPP_WriteProc(FUNC) \ - (NPP_WriteUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_WriteProcInfo, GetCurrentArchitecture()) -#define CallNPP_WriteProc(FUNC, NPParg, NPStreamPtr, offsetArg, lenArg, bufferPtr) \ - (int32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_WriteProcInfo, (NPParg), (NPStreamPtr), (offsetArg), (lenArg), (bufferPtr)) - -#else - -typedef int32 (*NPP_WriteUPP)(NPP instance, NPStream* stream, int32 offset, int32 len, void* buffer); -#define NewNPP_WriteProc(FUNC) \ - ((NPP_WriteUPP) (FUNC)) -#define CallNPP_WriteProc(FUNC, NPParg, NPStreamPtr, offsetArg, lenArg, bufferPtr) \ - (*(FUNC))((NPParg), (NPStreamPtr), (offsetArg), (lenArg), (bufferPtr)) - -#endif - - -/* NPP_StreamAsFile */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_StreamAsFileUPP; -enum { - uppNPP_StreamAsFileProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char *))) - | RESULT_SIZE(SIZE_CODE(0)) -}; -#define NewNPP_StreamAsFileProc(FUNC) \ - (NPP_StreamAsFileUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_StreamAsFileProcInfo, GetCurrentArchitecture()) -#define CallNPP_StreamAsFileProc(FUNC, ARG1, ARG2, ARG3) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_StreamAsFileProcInfo, (ARG1), (ARG2), (ARG3)) - -#else - -typedef void (*NPP_StreamAsFileUPP)(NPP instance, NPStream* stream, const char* fname); -#define NewNPP_StreamAsFileProc(FUNC) \ - ((NPP_StreamAsFileUPP) (FUNC)) -#define CallNPP_StreamAsFileProc(FUNC, ARG1, ARG2, ARG3) \ - (*(FUNC))((ARG1), (ARG2), (ARG3)) -#endif - - -/* NPP_Print */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_PrintUPP; -enum { - uppNPP_PrintProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPPrint *))) - | RESULT_SIZE(SIZE_CODE(0)) -}; -#define NewNPP_PrintProc(FUNC) \ - (NPP_PrintUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_PrintProcInfo, GetCurrentArchitecture()) -#define CallNPP_PrintProc(FUNC, NPParg, voidPtr) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_PrintProcInfo, (NPParg), (voidPtr)) - -#else - -typedef void (*NPP_PrintUPP)(NPP instance, NPPrint* platformPrint); -#define NewNPP_PrintProc(FUNC) \ - ((NPP_PrintUPP) (FUNC)) -#define CallNPP_PrintProc(FUNC, NPParg, NPPrintArg) \ - (*(FUNC))((NPParg), (NPPrintArg)) - -#endif - - -/* NPP_HandleEvent */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_HandleEventUPP; -enum { - uppNPP_HandleEventProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(void *))) - | RESULT_SIZE(SIZE_CODE(sizeof(int16))) -}; -#define NewNPP_HandleEventProc(FUNC) \ - (NPP_HandleEventUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_HandleEventProcInfo, GetCurrentArchitecture()) -#define CallNPP_HandleEventProc(FUNC, NPParg, voidPtr) \ - (int16)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPP_HandleEventProcInfo, (NPParg), (voidPtr)) - -#else - -typedef int16 (*NPP_HandleEventUPP)(NPP instance, void* event); -#define NewNPP_HandleEventProc(FUNC) \ - ((NPP_HandleEventUPP) (FUNC)) -#define CallNPP_HandleEventProc(FUNC, NPParg, voidPtr) \ - (*(FUNC))((NPParg), (voidPtr)) - -#endif - - - - -/* - * Netscape entry points - */ - - -/* NPN_GetUrl */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_GetURLUPP; -enum { - uppNPN_GetURLProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char*))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPN_GetURLProc(FUNC) \ - (NPN_GetURLUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_GetURLProcInfo, GetCurrentArchitecture()) -#define CallNPN_GetURLProc(FUNC, ARG1, ARG2, ARG3) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_GetURLProcInfo, (ARG1), (ARG2), (ARG3)) -#else - -typedef NPError (*NPN_GetURLUPP)(NPP instance, const char* url, const char* window); -#define NewNPN_GetURLProc(FUNC) \ - ((NPN_GetURLUPP) (FUNC)) -#define CallNPN_GetURLProc(FUNC, ARG1, ARG2, ARG3) \ - (*(FUNC))((ARG1), (ARG2), (ARG3)) -#endif - - -/* NPN_PostUrl */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_PostURLUPP; -enum { - uppNPN_PostURLProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(const char*))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(const char*))) - | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(uint32))) - | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(const char*))) - | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(NPBool))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPN_PostURLProc(FUNC) \ - (NPN_PostURLUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_PostURLProcInfo, GetCurrentArchitecture()) -#define CallNPN_PostURLProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_PostURLProcInfo, (ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6)) -#else - -typedef NPError (*NPN_PostURLUPP)(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file); -#define NewNPN_PostURLProc(FUNC) \ - ((NPN_PostURLUPP) (FUNC)) -#define CallNPN_PostURLProc(FUNC, ARG1, ARG2, ARG3, ARG4, ARG5, ARG6) \ - (*(FUNC))((ARG1), (ARG2), (ARG3), (ARG4), (ARG5), (ARG6)) -#endif - - -/* NPN_RequestRead */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_RequestReadUPP; -enum { - uppNPN_RequestReadProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPByteRange *))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPN_RequestReadProc(FUNC) \ - (NPN_RequestReadUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_RequestReadProcInfo, GetCurrentArchitecture()) -#define CallNPN_RequestReadProc(FUNC, stream, range) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_RequestReadProcInfo, (stream), (range)) - -#else - -typedef NPError (*NPN_RequestReadUPP)(NPStream* stream, NPByteRange* rangeList); -#define NewNPN_RequestReadProc(FUNC) \ - ((NPN_RequestReadUPP) (FUNC)) -#define CallNPN_RequestReadProc(FUNC, stream, range) \ - (*(FUNC))((stream), (range)) - -#endif - - -/* NPN_NewStream */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_NewStreamUPP; -enum { - uppNPN_NewStreamProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP ))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPMIMEType))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(NPBool))) - | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(uint16*))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPN_NewStreamProc(FUNC) \ - (NPN_NewStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_NewStreamProcInfo, GetCurrentArchitecture()) -#define CallNPN_NewStreamProc(FUNC, npp, type, stream) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_NewStreamProcInfo, (npp), (type), (stream)) - -#else - -typedef NPError (*NPN_NewStreamUPP)(NPP instance, NPMIMEType type, NPStream* stream); -#define NewNPN_NewStreamProc(FUNC) \ - ((NPN_NewStreamUPP) (FUNC)) -#define CallNPN_NewStreamProc(FUNC, npp, type, stream) \ - (*(FUNC))((npp), (type), (stream)) - -#endif - - -/* NPN_Write */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_WriteUPP; -enum { - uppNPN_WriteProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP ))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(int32))) - | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(void*))) - | RESULT_SIZE(SIZE_CODE(sizeof(int32))) -}; -#define NewNPN_WriteProc(FUNC) \ - (NPN_WriteUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_WriteProcInfo, GetCurrentArchitecture()) -#define CallNPN_WriteProc(FUNC, npp, stream, len, buffer) \ - (int32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_WriteProcInfo, (npp), (stream), (len), (buffer)) - -#else - -typedef int32 (*NPN_WriteUPP)(NPP instance, NPStream* stream, int32 len, void* buffer); -#define NewNPN_WriteProc(FUNC) \ - ((NPN_WriteUPP) (FUNC)) -#define CallNPN_WriteProc(FUNC, npp, stream, len, buffer) \ - (*(FUNC))((npp), (stream), (len), (buffer)) - -#endif - - -/* NPN_DestroyStream */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_DestroyStreamUPP; -enum { - uppNPN_DestroyStreamProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP ))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPStream *))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPError))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPN_DestroyStreamProc(FUNC) \ - (NPN_DestroyStreamUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_DestroyStreamProcInfo, GetCurrentArchitecture()) -#define CallNPN_DestroyStreamProc(FUNC, npp, stream, err) \ - (NPError)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_DestroyStreamProcInfo, (npp), (stream), (err)) - -#else - -typedef NPError (*NPN_DestroyStreamUPP)(NPP instance, NPStream* stream, NPError reason); -#define NewNPN_DestroyStreamProc(FUNC) \ - ((NPN_DestroyStreamUPP) (FUNC)) -#define CallNPN_DestroyStreamProc(FUNC, npp, stream, err) \ - (*(FUNC))((npp), (stream), (err)) - -#endif - - -/* NPN_Status */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_StatusUPP; -enum { - uppNPN_StatusProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(char *))) -}; - -#define NewNPN_StatusProc(FUNC) \ - (NPN_StatusUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_StatusProcInfo, GetCurrentArchitecture()) -#define CallNPN_StatusProc(FUNC, npp, msg) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_StatusProcInfo, (npp), (msg)) - -#else - -typedef void (*NPN_StatusUPP)(NPP instance, const char* message); -#define NewNPN_StatusProc(FUNC) \ - ((NPN_StatusUPP) (FUNC)) -#define CallNPN_StatusProc(FUNC, npp, msg) \ - (*(FUNC))((npp), (msg)) - -#endif - - -/* NPN_UserAgent */ -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_UserAgentUPP; -enum { - uppNPN_UserAgentProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPP))) - | RESULT_SIZE(SIZE_CODE(sizeof(const char *))) -}; - -#define NewNPN_UserAgentProc(FUNC) \ - (NPN_UserAgentUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_UserAgentProcInfo, GetCurrentArchitecture()) -#define CallNPN_UserAgentProc(FUNC, ARG1) \ - (const char*)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_UserAgentProcInfo, (ARG1)) - -#else - -typedef const char* (*NPN_UserAgentUPP)(NPP instance); -#define NewNPN_UserAgentProc(FUNC) \ - ((NPN_UserAgentUPP) (FUNC)) -#define CallNPN_UserAgentProc(FUNC, ARG1) \ - (*(FUNC))((ARG1)) - -#endif - - -/* NPN_MemAlloc */ -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_MemAllocUPP; -enum { - uppNPN_MemAllocProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(uint32))) - | RESULT_SIZE(SIZE_CODE(sizeof(void *))) -}; - -#define NewNPN_MemAllocProc(FUNC) \ - (NPN_MemAllocUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_MemAllocProcInfo, GetCurrentArchitecture()) -#define CallNPN_MemAllocProc(FUNC, ARG1) \ - (void*)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_MemAllocProcInfo, (ARG1)) - -#else - -typedef void* (*NPN_MemAllocUPP)(uint32 size); -#define NewNPN_MemAllocProc(FUNC) \ - ((NPN_MemAllocUPP) (FUNC)) -#define CallNPN_MemAllocProc(FUNC, ARG1) \ - (*(FUNC))((ARG1)) - -#endif - - -/* NPN__MemFree */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_MemFreeUPP; -enum { - uppNPN_MemFreeProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void *))) -}; - -#define NewNPN_MemFreeProc(FUNC) \ - (NPN_MemFreeUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_MemFreeProcInfo, GetCurrentArchitecture()) -#define CallNPN_MemFreeProc(FUNC, ARG1) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_MemFreeProcInfo, (ARG1)) - -#else - -typedef void (*NPN_MemFreeUPP)(void* ptr); -#define NewNPN_MemFreeProc(FUNC) \ - ((NPN_MemFreeUPP) (FUNC)) -#define CallNPN_MemFreeProc(FUNC, ARG1) \ - (*(FUNC))((ARG1)) - -#endif - - -/* NPN_MemFlush */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_MemFlushUPP; -enum { - uppNPN_MemFlushProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(uint32))) - | RESULT_SIZE(SIZE_CODE(sizeof(uint32))) -}; - -#define NewNPN_MemFlushProc(FUNC) \ - (NPN_MemFlushUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_MemFlushProcInfo, GetCurrentArchitecture()) -#define CallNPN_MemFlushProc(FUNC, ARG1) \ - (uint32)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_MemFlushProcInfo, (ARG1)) - -#else - -typedef uint32 (*NPN_MemFlushUPP)(uint32 size); -#define NewNPN_MemFlushProc(FUNC) \ - ((NPN_MemFlushUPP) (FUNC)) -#define CallNPN_MemFlushProc(FUNC, ARG1) \ - (*(FUNC))((ARG1)) - -#endif - - - -/* NPN_ReloadPlugins */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPN_ReloadPluginsUPP; -enum { - uppNPN_ReloadPluginsProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPBool))) - | RESULT_SIZE(SIZE_CODE(0)) -}; - -#define NewNPN_ReloadPluginsProc(FUNC) \ - (NPN_ReloadPluginsUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPN_ReloadPluginsProcInfo, GetCurrentArchitecture()) -#define CallNPN_ReloadPluginsProc(FUNC, ARG1) \ - (void)CallUniversalProc((UniversalProcPtr)(FUNC), uppNPN_ReloadPluginsProcInfo, (ARG1)) - -#else - -typedef void (*NPN_ReloadPluginsUPP)(NPBool reloadPages); -#define NewNPN_ReloadPluginsProc(FUNC) \ - ((NPN_ReloadPluginsUPP) (FUNC)) -#define CallNPN_ReloadPluginsProc(FUNC, ARG1) \ - (*(FUNC))((ARG1)) - -#endif - - - - -/****************************************************************************************** - * The actual plugin function table definitions - *******************************************************************************************/ - -typedef struct _NPPluginFuncs { - uint16 size; - uint16 version; - NPP_NewUPP newp; - NPP_DestroyUPP destroy; - NPP_SetWindowUPP setwindow; - NPP_NewStreamUPP newstream; - NPP_DestroyStreamUPP destroystream; - NPP_StreamAsFileUPP asfile; - NPP_WriteReadyUPP writeready; - NPP_WriteUPP write; - NPP_PrintUPP print; - NPP_HandleEventUPP event; -} NPPluginFuncs; - -typedef struct _NPNetscapeFuncs { - uint16 size; - uint16 version; - NPN_GetURLUPP geturl; - NPN_PostURLUPP posturl; - NPN_RequestReadUPP requestread; - NPN_NewStreamUPP newstream; - NPN_WriteUPP write; - NPN_DestroyStreamUPP destroystream; - NPN_StatusUPP status; - NPN_UserAgentUPP uagent; - NPN_MemAllocUPP memalloc; - NPN_MemFreeUPP memfree; - NPN_MemFlushUPP memflush; - NPN_ReloadPluginsUPP reloadplugins; -} NPNetscapeFuncs; - - - -#ifdef XP_MAC -/****************************************************************************************** - * Mac platform-specific plugin glue stuff - *******************************************************************************************/ - -/* - * Main entry point of the plugin. - * This routine will be called when the plugin is loaded. The function - * tables are passed in and the plugin fills in the NPPluginFuncs table - * and NPPShutdownUPP for Netscape's use. - */ - -#if GENERATINGCFM - -typedef UniversalProcPtr NPP_MainEntryUPP; -enum { - uppNPP_MainEntryProcInfo = kThinkCStackBased - | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(NPNetscapeFuncs*))) - | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(NPPluginFuncs*))) - | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(NPP_ShutdownUPP*))) - | RESULT_SIZE(SIZE_CODE(sizeof(NPError))) -}; -#define NewNPP_MainEntryProc(FUNC) \ - (NPP_MainEntryUPP) NewRoutineDescriptor((ProcPtr)(FUNC), uppNPP_MainEntryProcInfo, GetCurrentArchitecture()) -#define CallNPP_MainEntryProc(FUNC, netscapeFunc, pluginFunc, shutdownUPP) \ - CallUniversalProc((UniversalProcPtr)(FUNC), (ProcInfoType)uppNPP_MainEntryProcInfo, (netscapeFunc), (pluginFunc), (shutdownUPP)) - -#else - -typedef NPError (*NPP_MainEntryUPP)(NPNetscapeFuncs*, NPPluginFuncs*, NPP_ShutdownUPP*); -#define NewNPP_MainEntryProc(FUNC) \ - ((NPP_MainEntryUPP) (FUNC)) -#define CallNPP_MainEntryProc(FUNC, netscapeFunc, pluginFunc, shutdownUPP) \ - (*(FUNC))((netscapeFunc), (pluginFunc), (shutdownUPP)) - -#endif -#endif /* MAC */ - - -#ifdef _WINDOWS - -#ifdef __cplusplus -extern "C" { -#endif - -/* plugin meta member functions */ - -NPError WINAPI NP_GetEntryPoints(NPPluginFuncs* pFuncs); - -NPError WINAPI NP_Initialize(NPNetscapeFuncs* pFuncs); - -NPError WINAPI NP_Shutdown(); - -#ifdef __cplusplus -} -#endif - -#endif /* _WINDOWS */ - - -#endif /* _NPUPP_H_ */ - diff --git a/utils/nplugin/src/npwin.cpp b/utils/nplugin/src/npwin.cpp deleted file mode 100644 index f97ef498a7..0000000000 --- a/utils/nplugin/src/npwin.cpp +++ /dev/null @@ -1,186 +0,0 @@ -/* npwin.cpp */ -#include "windows.h" - -#include "npapi.h" -#include "npupp.h" - -#ifdef __WIN32__ - #define NP_EXPORT -#else - #define NP_EXPORT _export -#endif - -static NPNetscapeFuncs* g_pNavigatorFuncs = NULL; - - -/* PLUGIN DLL entry points */ -/* These are the Windows specific DLL entry points, not the "normal" plugin - entry points. The "normal" ones are in NPSHELL.CPP -*/ - -/* fills in the func table used by Navigator to call entry points in - plugin DLL. Note that these entry points ensure that DS is loaded - by using the NP_LOADDS macro, when compiling for Win16 -*/ -NPError WINAPI NP_EXPORT NP_GetEntryPoints(NPPluginFuncs* pFuncs) -{ - /* trap a NULL ptr */ - if(pFuncs == NULL) - return NPERR_INVALID_FUNCTABLE_ERROR; - - /* if the plugin's function table is smaller than the plugin expects, - then they are incompatible, and should return an error */ - if(pFuncs->size < sizeof NPPluginFuncs) - return NPERR_INVALID_FUNCTABLE_ERROR; - - pFuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR; - pFuncs->newp = NPP_New; - pFuncs->destroy = NPP_Destroy; - pFuncs->setwindow = NPP_SetWindow; - pFuncs->newstream = NPP_NewStream; - pFuncs->destroystream = NPP_DestroyStream; - pFuncs->asfile = NPP_StreamAsFile; - pFuncs->writeready = NPP_WriteReady; - pFuncs->write = NPP_Write; - pFuncs->print = NPP_Print; - pFuncs->event = NULL; /* reserved */ - - return NPERR_NO_ERROR; -} - -/* called immediately after the plugin DLL is loaded -*/ -NPError WINAPI NP_EXPORT NP_Initialize(NPNetscapeFuncs* pFuncs) -{ - /* trap a NULL ptr */ - if(pFuncs == NULL) - return NPERR_INVALID_FUNCTABLE_ERROR; - - g_pNavigatorFuncs = pFuncs; /* save it for future reference */ - - /* if the plugin's major ver level is lower than the Navigator's, - then they are incompatible, and should return an error */ - if(HIBYTE(pFuncs->version) > NP_VERSION_MAJOR) - return NPERR_INCOMPATIBLE_VERSION_ERROR; - - /* if the Navigator's function table is smaller than the plugin expects, - then they are incompatible, and should return an error */ - if(pFuncs->size < sizeof NPNetscapeFuncs) - return NPERR_INVALID_FUNCTABLE_ERROR; - - return NPP_Initialize(); -} - -/* called immediately before the plugin DLL is unloaded -*/ -NPError WINAPI NP_EXPORT NP_Shutdown() -{ - NPP_Shutdown(); - - g_pNavigatorFuncs = NULL; - - return NPERR_NO_ERROR; -} - - -/* NAVIGATOR Entry points */ - -/* These entry points expect to be called from within the plugin. The - noteworthy assumption is that DS has already been set to point to the - plugin's DLL data segment. Don't call these functions from outside - the plugin without ensuring DS is set to the DLLs data segment first, - typically using the NP_LOADDS macro -*/ - -/* returns the major/minor version numbers of the Plugin API for the plugin - and the Navigator -*/ -void NPN_Version(int* plugin_major, int* plugin_minor, int* netscape_major, int* netscape_minor) -{ - *plugin_major = NP_VERSION_MAJOR; - *plugin_minor = NP_VERSION_MINOR; - *netscape_major = HIBYTE(g_pNavigatorFuncs->version); - *netscape_minor = LOBYTE(g_pNavigatorFuncs->version); -} - -/* causes the specified URL to be fetched and streamed in -*/ -NPError NPN_GetURL(NPP instance, const char *url, const char *window) -{ - return g_pNavigatorFuncs->geturl(instance, url, window); -} - -NPError NPN_PostURL(NPP instance, const char* url, const char* window, uint32 len, const char* buf, NPBool file) -{ - return g_pNavigatorFuncs->posturl(instance, url, window, len, buf, file); -} - -/* Requests that a number of bytes be provided on a stream. Typically - this would be used if a stream was in "pull" mode. An optional - position can be provided for streams which are seekable. -*/ -NPError NPN_RequestRead(NPStream* stream, NPByteRange* rangeList) -{ - return g_pNavigatorFuncs->requestread(stream, rangeList); -} - -/* Creates a new stream of data from the plug-in to be interpreted - by Netscape in the current window. -*/ -NPError NPN_NewStream(NPP instance, NPMIMEType type, NPStream *stream) -{ - return g_pNavigatorFuncs->newstream(instance, type, stream); -} - -/* Provides len bytes of data. -*/ -int32 NPN_Write(NPP instance, NPStream *stream, - int32 len, void *buffer) -{ - return g_pNavigatorFuncs->write(instance, stream, len, buffer); -} - -/* Closes a stream object. -reason indicates why the stream was closed. -*/ -NPError NPN_DestroyStream(NPP instance, NPStream* stream, NPError reason) -{ - return g_pNavigatorFuncs->destroystream(instance, stream, reason); -} - -/* Provides a text status message in the Netscape client user interface -*/ -void NPN_Status(NPP instance, const char *message) -{ - g_pNavigatorFuncs->status(instance, message); -} - -/* returns the user agent string of Navigator, which contains version info -*/ -const char* NPN_UserAgent(NPP instance) -{ - return g_pNavigatorFuncs->uagent(instance); -} - -/* allocates memory from the Navigator's memory space. Necessary so that - saved instance data may be freed by Navigator when exiting. -*/ -void* NPN_MemAlloc(uint32 size) -{ - return g_pNavigatorFuncs->memalloc(size); -} - -/* reciprocal of MemAlloc() above -*/ -void NPN_MemFree(void* ptr) -{ - g_pNavigatorFuncs->memfree(ptr); -} - -/* private function to Netscape. do not use! -*/ -void NPN_ReloadPlugins(NPBool reloadPages) -{ - g_pNavigatorFuncs->reloadplugins(reloadPages); -} - diff --git a/utils/ogl/distrib/ogl.rsp b/utils/ogl/distrib/ogl.rsp deleted file mode 100644 index 27db43a242..0000000000 --- a/utils/ogl/distrib/ogl.rsp +++ /dev/null @@ -1,43 +0,0 @@ -utils/ogl/src/*.cpp -utils/ogl/src/*.h -utils/ogl/src/*.rc -utils/ogl/src/*.def -utils/ogl/src/*.xbm -utils/ogl/src/*.xpm -utils/ogl/src/makefile* -utils/ogl/src/*.txt -utils/ogl/src/*.ico -utils/ogl/src/*.bmp - -utils/ogl/samples/ogledit/*.cpp -utils/ogl/samples/ogledit/*.h -utils/ogl/samples/ogledit/*.rc -utils/ogl/samples/ogledit/*.def -utils/ogl/samples/ogledit/*.xbm -utils/ogl/samples/ogledit/makefile* -utils/ogl/samples/ogledit/*.txt -utils/ogl/samples/ogledit/*.ico -utils/ogl/samples/ogledit/*.bmp -utils/ogl/samples/ogledit/*.xpm -utils/ogl/samples/ogledit/bitmaps/*.bmp -utils/ogl/samples/ogledit/bitmaps/*.gif -utils/ogl/samples/ogledit/bitmaps/*.xbm -utils/ogl/samples/ogledit/bitmaps/*.xpm - -utils/ogl/distrib/*.rsp -utils/ogl/distrib/*.bat - -utils/ogl/docs/*.txt -utils/ogl/docs/*.tex -utils/ogl/docs/*.ini -utils/ogl/docs/*.hpj -utils/ogl/docs/*.ps -utils/ogl/docs/*.eps -utils/ogl/docs/*.bmp -utils/ogl/docs/*.gif - -docs/html/ogl/*.* -docs/winhelp/ogl.hlp -docs/winhelp/ogl.cnt -docs/pdf/ogl.pdf - diff --git a/utils/ogl/distrib/tarogl.bat b/utils/ogl/distrib/tarogl.bat deleted file mode 100755 index 68202249c0..0000000000 --- a/utils/ogl/distrib/tarogl.bat +++ /dev/null @@ -1,48 +0,0 @@ -@echo off -rem Tar up an external distribution of OGL - -if "%1" == "" goto usage -if "%2" == "" goto usage -echo About to archive an external OGL distribution: -echo From %1 -echo To %2\ogl.tgz -echo CTRL-C if this is not correct. -inkey /W4 `Press any key to continue...` %%input - -erase %2\ogl.tgz -cd %1 - -rem First, expand the wildcards in the ogl.rsp file - -rem Create empty list file -erase %1\distrib\ogl.lis -c:\bin\touch %1\distrib\ogl.lis - -rem Create a .rsp file with backslashes instead -rem of forward slashes -rem No need if using ls2 (from UNIX95 distribution) -rem sed -e "s/\//\\/g" %1\distrib\ogl.rsp > %1\distrib\ogl.rs2 - -set len=%@LINES[%1\distrib\ogl.rsp] -rem set len=%@DEC[%len] -do i = 0 to %len by 1 - set line=%@LINE[%1\distrib\ogl.rsp,%i] - if NOT "%line" == "" ls2 -1 %line >> %1\distrib\ogl.lis -enddo - -tar -c -T %1\distrib\ogl.lis -move archive.tar ogl.tar -gzip ogl.tar -move ogl.taz %2\ogl.tgz - -echo OGL archived. -goto end - -:usage -echo DOS OGL distribution. -echo Usage: tarogl source destination -echo e.g. tarogl c:\wx\utils\ogl c:\wx\utils\ogl\deliver - -:end - - diff --git a/utils/ogl/distrib/zipogl.bat b/utils/ogl/distrib/zipogl.bat deleted file mode 100755 index 51ee8b37fc..0000000000 --- a/utils/ogl/distrib/zipogl.bat +++ /dev/null @@ -1,30 +0,0 @@ -@echo off -rem Zip up an external distribution of OGL -set src=d:\wx2\wxWindows -set dest=%src\utils\ogl\deliver - -if "%src" == "" goto usage -if "%dest" == "" goto usage -echo About to archive an external OGL distribution: -echo From %src -echo To %dest\ogl3.zip -echo CTRL-C if this is not correct. -inkey /W4 `Press any key to continue...` %%input - -erase %dest\ogl3.zip -cd %src -zip32 -@ %dest\ogl3.zip < %src\utils\ogl\distrib\ogl.rsp - -cd %dest - -echo OGL archived. -goto end - -:usage -echo DOS OGL distribution. -echo Usage: zipogl source destination -echo e.g. zipogl d:\wx2\wxWindows d:\wx2\wxWindows\utils\ogl\deliver - -:end - - diff --git a/utils/ogl/docs/back.gif b/utils/ogl/docs/back.gif deleted file mode 100644 index 8a61076d3ba74bdedc1d24f60c3d1f5a361a6cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmV<703QEGNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>t<(Iwfoo diff --git a/utils/ogl/docs/books.bmp b/utils/ogl/docs/books.bmp deleted file mode 100644 index cf1e148734c807052ec6359ad2eb1a3e8d43d43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 zcmb7?v2KGf5Qg0-f^PH?BCA8E<{c_a$x@Y}nZr;qXR5NnfE2boQZn^-S4x_%j?%%`Rfz!C$uHnGuoYEAr~D;JxHUzQYZhY(}{X$xY0SE&#JC# z5a%D|9QDv}6Qc3-Wv8+GlQ-*8<`8epNC>=NSLPUH1b$st*H{R=IXD*!fgA8x5Dt6l zUCo=!AsqI8={C$E9QGLr_q_i zFK;h=LxQhf>;v~gWIyoy(Zu$`w=UNZZuYl$t>-8&*n94Z?RTzqLWjlGhdMVK;w1@P zgX#l^|MHTQ1q9k0=J>%Sz9`L#Hix;bEVz#^(qoBse!qj(7b diff --git a/utils/ogl/docs/bugs.tex b/utils/ogl/docs/bugs.tex deleted file mode 100644 index d66f64e613..0000000000 --- a/utils/ogl/docs/bugs.tex +++ /dev/null @@ -1,11 +0,0 @@ -\chapter{Bugs}\label{bugs}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -These are the known bugs. - -\begin{itemize}\itemsep=0pt -\item In the OGLEdit sample, .dia files are output double-spaced -due to an unidentified bug in the way a stream is converted to a file. -\end{itemize} - diff --git a/utils/ogl/docs/bullet.bmp b/utils/ogl/docs/bullet.bmp deleted file mode 100644 index aad8fc793edd54ffb5910e67b2470659c95448b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmZumxe>rH2vhFtK1GJ`9PYi2Yw9con_&SdBlI1b>qTKR2Gu`ZXgNITWj7;KP=JJL V1)UXU1`*-lNw`O&c<~DR!2u5s7-j$f diff --git a/utils/ogl/docs/changes.tex b/utils/ogl/docs/changes.tex deleted file mode 100644 index 5590ce3fd9..0000000000 --- a/utils/ogl/docs/changes.tex +++ /dev/null @@ -1,19 +0,0 @@ -\chapter{Change log} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -Version 3.0, September 8th 1998 - -\begin{itemize}\itemsep=0pt -\item Version for wxWindows 2.0. -\item Various enhancements especially to wxDrawnShape -(multiple metafiles, for different orientations). -\item More ability to override functions e.g. OnSizeDragLeft, so events can be -intercepted for Do/Undo. -\end{itemize} - -Version 2.0, June 1st 1996 - -\begin{itemize}\itemsep=0pt -\item First publicly released version. -\end{itemize} diff --git a/utils/ogl/docs/classes.tex b/utils/ogl/docs/classes.tex deleted file mode 100644 index a72adb3887..0000000000 --- a/utils/ogl/docs/classes.tex +++ /dev/null @@ -1,2861 +0,0 @@ -\chapter{Class reference}\label{classref} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -These are the main \ogl\ classes. - -\section{\class{wxOGLConstraint}}\label{wxoglconstraint} - -\overview{wxCompositeShape overview}{compositeshapeoverview} - -An wxOGLConstraint object helps specify how child shapes are laid out with respect -to siblings and parents. - -\wxheading{Derived from} - -wxObject - -\wxheading{See also} - -\helpref{wxCompositeShape}{wxcompositeshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxOGLConstraint::wxOGLConstraint}\label{wxoglconstraintconstr} - -\func{}{wxOGLConstraint}{\void} - -Default constructor. - -\func{}{wxOGLConstraint}{\param{int}{ type}, \param{wxShape *}{constraining}, \param{wxList\& }{constrained}} - -Constructor. - -\wxheading{Parameters} - -\docparam{constraining}{The shape which is used as the reference for positioning the {\it constrained} objects.} - -\docparam{constrained}{Contains a list of wxShapes which are to be constrained (with respect -to {\it constraining}) using {\it type}.} - -\docparam{type}{Can be one of: - -\begin{itemize}\itemsep=0pt -\item {\bf gyCONSTRAINT\_CENTRED\_VERTICALLY}: the Y co-ordinates of the centres of the -bounding boxes of the constrained objects and the constraining object -will be the same -\item {\bf gyCONSTRAINT\_CENTRED\_HORIZONTALLY}: the X co-ordinates of the centres of the -bounding boxes of the constrained objects and the constraining object -will be the same -\item {\bf gyCONSTRAINT\_CENTRED\_BOTH}: the co-ordinates of the centres of the bounding boxes -of the constrained objects and the constraining object will be the same -\item {\bf gyCONSTRAINT\_LEFT\_OF}: the X co-ordinates of the right hand vertical edges -of the bounding boxes of the constrained objects will be less than -the X co-ordinate of the left hand vertical edge of the bounding box -of the constraining object -\item {\bf gyCONSTRAINT\_RIGHT\_OF}: the X co-ordinates of the left hand vertical edges -of the bounding boxes of the constrained objects will be greater than -the X co-ordinate of the right hand vertical edge of the bounding box -of the constraining object -\item {\bf gyCONSTRAINT\_ABOVE}: the Y co-ordinates of the bottom horizontal edges of the -bounding boxes of the constrained objects will be less than the -Y co-ordinate of the top horizontal edge of the bounding box of the -constraining object -\item {\bf gyCONSTRAINT\_BELOW}: the Y co-ordinates of the top horizontal edges of the -bounding boxes of the constrained objects will be greater than -the X co-ordinate of the bottom horizontal edge of the bounding box -of the constraining object -\item {\bf gyCONSTRAINT\_ALIGNED\_TOP}: the Y co-ordinates of the top horizontal edges of the -bounding boxes of the constrained objects will be the same as the -Y co-ordinate of the top horizontal edge of the bounding box of the -constraining object -\item {\bf gyCONSTRAINT\_ALIGNED\_BOTTOM}: the Y co-ordinates of the bottom horizontal edges -of the bounding boxes of the constrained objects will be the same as -the Y co-ordinate of the bottom horizontal edge of the bounding box -of the constraining object -\item {\bf gyCONSTRAINT\_ALIGNED\_LEFT}: the X co-ordinates of the left hand vertical edges -of the bounding boxes of the constrained objects will be the same as -the X co-ordinate of the left hand vertical edge of the bounding box -of the constraining object -\item {\bf gyCONSTRAINT\_ALIGNED\_RIGHT}: the X co-ordinates of the right hand vertical edges -of the bounding boxes of the constrained objects will be the same as -the X co-ordinate of the right hand vertical edge of the bounding box -of the constraining object -\item {\bf gyCONSTRAINT\_MIDALIGNED\_TOP}: the Y co-ordinates of the centres of -the bounding boxes of the constrained objects will be the same -as the Y co-ordinate of the top horizontal edge of -the bounding box of the constraining object -\item {\bf gyCONSTRAINT\_MIDALIGNED\_BOTTOM}: the Y co-ordinates of the centres of -the bounding boxes of the constrained objects will be the same -as the Y co-ordinate of the bottom horizontal edge of -the bounding box of the constraining object -\item {\bf gyCONSTRAINT\_MIDALIGNED\_LEFT}: the X co-ordinates of the centres of -the bounding boxes of the constrained objects will be the same -as the X co-ordinate of the left hand vertical edge of -the bounding box of the constraining object -\item {\bf gyCONSTRAINT\_MIDALIGNED\_RIGHT}: the X co-ordinates of the centres of -the bounding boxes of the constrained objects will be the same as -the X co-ordinate of the right hand vertical edge of -the bounding box of the constraining object -\end{itemize} -} - -\membersection{wxOGLConstraint::\destruct{wxOGLConstraint}} - -\func{}{\destruct{wxOGLConstraint}}{\void} - -Destructor. - -\membersection{wxOGLConstraint::Equals} - -\func{bool}{Equals}{\param{double}{ x}, \param{double}{ y}} - -Returns TRUE if {\it x} and {\it y} are approximately equal (for the purposes -of evaluating the constraint). - -\membersection{wxOGLConstraint::Evaluate} - -\func{bool}{Evaluate}{\void} - -Evaluates this constraint, returning TRUE if anything changed. - -\membersection{wxOGLConstraint::SetSpacing}\label{wxoglconstraintsetspacing} - -\func{void}{SetSpacing}{\param{double}{ x}, \param{double}{ y}} - -Sets the horizontal and vertical spacing for the constraint. - -\section{\class{wxBitmapShape}}\label{wxbitmapshape} - -Draws a bitmap (non-resizable). - -\wxheading{Derived from} - -\helpref{wxRectangleShape}{wxrectangleshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxBitmapShape::wxBitmapShape} - -\func{}{wxBitmapShape}{\void} - -Constructor. - -\membersection{wxBitmapShape::\destruct{wxBitmapShape}} - -\func{}{\destruct{wxBitmapShape}}{\void} - -Destructor. - -\membersection{wxBitmapShape::GetBitmap} - -\constfunc{wxBitmap\&}{GetBitmap}{\void} - -Returns a reference to the bitmap associated with this shape. - -\membersection{wxBitmapShape::GetFilename} - -\constfunc{wxString}{GetFilename}{\void} - -Returns the bitmap filename. - -\membersection{wxBitmapShape::SetBitmap} - -\func{void}{SetBitmap}{\param{const wxBitmap\&}{ bitmap}} - -Sets the bitmap associated with this shape. You can delete the bitmap -from the calling application, since reference counting will take care of -holding on to the internal bitmap data. - -\membersection{wxBitmapShape::SetFilename} - -\func{void}{SetFilename}{\param{const wxString\& }{filename}} - -Sets the bitmap filename. - -\section{\class{wxDiagram}}\label{wxdiagram} - -Encapsulates an entire diagram, with methods for reading/writing and drawing. -A diagram has an associated wxShapeCanvas. - -\wxheading{Derived from} - -wxObject - -\wxheading{See also} - -\helpref{wxShapeCanvas}{wxshapecanvas} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDiagram::wxDiagram} - -\func{}{wxDiagram}{\void} - -Constructor. - -\membersection{wxDiagram::\destruct{wxDiagram}} - -\func{}{\destruct{wxDiagram}}{\void} - -Destructor. - -\membersection{wxDiagram::AddShape} - -\func{void}{AddShape}{\param{wxShape*}{shape}, \param{wxShape *}{addAfter = NULL}} - -Adds a shape to the diagram. If {\it addAfter} is non-NULL, the shape will be added after this -one. - -\membersection{wxDiagram::Clear} - -\func{void}{Clear}{\param{wxDC\&}{ dc}} - -Clears the specified device context. - -\membersection{wxDiagram::DeleteAllShapes} - -\func{void}{DeletesAllShapes}{\void} - -Removes and deletes all shapes in the diagram. - -\membersection{wxDiagram::DrawOutline} - -\func{void}{DrawOutline}{\param{wxDC\&}{ dc}, \param{double}{ x1}, \param{double}{ y1}, \param{double}{ x2}, \param{double}{ y2}} - -Draws an outline rectangle on the current device context. - -\membersection{wxDiagram::FindShape}\label{wxdiagramfindshape} - -\constfunc{wxShape*}{FindShape}{\param{long}{ id}} - -Returns the shape for the given identifier. - -\membersection{wxDiagram::GetCanvas} - -\constfunc{wxShapeCanvas*}{GetCanvas}{\void} - -Returns the shape canvas associated with this diagram. - -\membersection{wxDiagram::GetCount}\label{wxdiagramgetcount} - -\constfunc{int}{GetCount}{\void} - -Returns the number of shapes in the diagram. - -\membersection{wxDiagram::GetGridSpacing} - -\constfunc{double}{GetGridSpacing}{\void} - -Returns the grid spacing. - -\membersection{wxDiagram::GetMouseTolerance} - -\func{int}{GetMouseTolerance}{\void} - -Returns the tolerance within which a mouse move is ignored. - -\membersection{wxDiagram::GetShapeList} - -\constfunc{wxList*}{GetShapeList}{\void} - -Returns a pointer to the internal shape list. - -\membersection{wxDiagram::GetQuickEditMode} - -\constfunc{bool}{GetQuickEditMode}{\void} - -Returns quick edit mode. - -\membersection{wxDiagram::GetSnapToGrid} - -\constfunc{bool}{GetSnapToGrid}{\void} - -Returns snap-to-grid mode. - -\membersection{wxDiagram::InsertShape} - -\func{void}{InsertShape}{\param{wxShape *}{shape}} - -Inserts a shape at the front of the shape list. - -\membersection{wxDiagram::LoadFile} - -\func{bool}{LoadFile}{\param{const wxString\& }{filename}} - -Loads the diagram from a file. - -\membersection{wxDiagram::OnDatabaseLoad} - -\func{void}{OnDatabaseLoad}{\param{wxExprDatabase\&}{ database}} - -Called just after the nodes and lines have been read from the wxExprDatabase. You may override this; -the default member does nothing. - -\membersection{wxDiagram::OnDatabaseSave} - -\func{void}{OnDatabaseSave}{\param{wxExprDatabase\&}{ database}} - -Called just after the nodes and lines have been written to the wxExprDatabase. You may override this; -the default member does nothing. - -\membersection{wxDiagram::OnHeaderLoad} - -\func{bool}{OnHeaderLoad}{\param{wxExprDatabase\&}{ database}, \param{wxExpr\&}{ expr}} - -Called to allow the `diagram' header object to be read. The default member reads no further information. -You may wish to override this to read version information, author name, etc. - -\membersection{wxDiagram::OnHeaderSave} - -\func{bool}{OnHeaderSave}{\param{wxExprDatabase\&}{ database}, \param{wxExpr\&}{ expr}} - -Called to allow instantiation of the `diagram' header object. The default member writes no further information. -You may wish to override this to include version information, author name, etc. - -\membersection{wxDiagram::OnShapeLoad} - -\func{bool}{OnShapeLoad}{\param{wxExprDatabase\&}{ database}, \param{wxShape\&}{ shape}, \param{wxExpr\&}{ expr}} - -Called to read the shape from the {\it expr}. You may override this, but call this function first. -The default member calls ReadAttributes for the shape. - -\membersection{wxDiagram::OnShapeSave} - -\func{bool}{OnShapeSave}{\param{wxExprDatabase\&}{ database}, \param{wxShape\&}{ shape}, \param{wxExpr\&}{ expr}} - -Called to save the shape to the {\it expr} and {\it database}. You may override this, but call this function first. -The default member calls WriteAttributes for the shape, appends the shape to the database, and of the shape -is a composite, recursively calls OnShapeSave for its children. - -\membersection{wxDiagram::ReadContainerGeometry} - -\func{void}{ReadContainerGeometry}{\param{wxExprDatabase\&}{ database}} - -Reads container geometry from a wxExprDatabase, linking up nodes which -are part of a composite. You probably won't need to redefine this. - -\membersection{wxDiagram::ReadLines} - -\func{void}{ReadLines}{\param{wxExprDatabase\&}{ database}} - -Reads lines from a wxExprDatabase. You probably won't need to redefine this. - -\membersection{wxDiagram::ReadNodes} - -\func{void}{ReadNodes}{\param{wxExprDatabase\&}{ database}} - -Reads nodes from a wxExprDatabase. You probably won't need to redefine this. - -\membersection{wxDiagram::RecentreAll} - -\func{void}{RecentreAll}{\param{wxDC\&}{ dc}} - -Make sure all text that should be centred, is centred. - -\membersection{wxDiagram::Redraw} - -\func{void}{Redraw}{\param{wxDC\&}{ dc}} - -Draws the shapes in the diagram on the specified device context. - -\membersection{wxDiagram::RemoveAllShapes} - -\func{void}{RemoveAllShapes}{\void} - -Removes all shapes from the diagram but does not delete the shapes. - -\membersection{wxDiagram::RemoveShape} - -\func{void}{RemoveShape}{\param{wxShape*}{ shape}} - -Removes the shape from the diagram (non-recursively) but does not delete it. - -\membersection{wxDiagram::SaveFile} - -\func{bool}{SaveFile}{\param{const wxString\& }{filename}} - -Saves the diagram in a file. - -\membersection{wxDiagram::SetCanvas}\label{wxdiagramsetcanvas} - -\func{void}{SetCanvas}{\param{wxShapeCanvas*}{ canvas}} - -Sets the canvas associated with this diagram. - -\membersection{wxDiagram::SetGridSpacing} - -\func{void}{SetGridSpacing}{\param{double}{ spacing}} - -Sets the grid spacing. The default is 5. - -\membersection{wxDiagram::SetMouseTolerance} - -\func{void}{SetMouseTolerance}{\param{int}{ tolerance}} - -Sets the tolerance within which a mouse move is ignored. The default is 3 pixels. - -\membersection{wxDiagram::SetQuickEditMode} - -\func{void}{SetQuickEditMode}{\param{bool}{ mode}} - -Sets quick-edit-mode on or off. In this mode, refreshes are minimized, but the -diagram may need manual refreshing occasionally. - -\membersection{wxDiagram::SetSnapToGrid} - -\func{void}{SetSnapToGrid}{\param{bool}{ snap}} - -Sets snap-to-grid mode on or off. The default is on. - -\membersection{wxDiagram::ShowAll} - -\func{void}{ShowAll}{\param{bool}{ show}} - -Calls Show for each shape in the diagram. - -\membersection{wxDiagram::Snap} - -\func{void}{Snap}{\param{double *}{x}, \param{double *}{y}} - -`Snaps' the coordinate to the nearest grid position, if snap-to-grid is on. - -\section{\class{wxDrawnShape}}\label{wxdrawnshape} - -Draws a pseduo-metafile shape, which can be loaded from a simple Windows metafile. - -wxDrawnShape allows you to specify a different shape for each of four orientations (North, West, -South and East). It also provides a set of drawing functions for programmatic drawing of a shape, -so that during construction of the shape you can draw into it as if it were a device context. - -\wxheading{Derived from} - -\helpref{wxRectangleShape}{wxrectangleshape} - -See also \helpref{wxRectangleShape}{wxrectangleshape}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDrawnShape::wxDrawnShape} - -\func{}{wxDrawnShape}{\void} - -Constructor. - -\membersection{wxDrawnShape::\destruct{wxDrawnShape}} - -\func{}{\destruct{wxDrawnShape}}{\void} - -Destructor. - -\membersection{wxDrawnShape::CalculateSize} - -\func{void}{CalculateSize}{\void} - -Calculates the wxDrawnShape size from the current metafile. Call this after you have drawn -into the shape. - -\membersection{wxDrawnShape::DestroyClippingRect}\label{wxdrawnshapedestroyclippingrect} - -\func{void}{DestroyClippingRect}{\void} - -Destroys the clipping rectangle. See also \helpref{wxDrawnShape::SetClippingRect}{wxdrawnshapesetclippingrect}. - -\membersection{wxDrawnShape::DrawArc}\label{wxdrawnshapedrawarc} - -\func{void}{DrawArc}{\param{const wxPoint\&}{ centrePoint}, \param{const wxPoint\&}{ startPoint}, - \param{const wxPoint\&}{ endPoint}} - -Draws an arc (see wxWindows documentation for details). - -\membersection{wxDrawnShape::DrawAtAngle}\label{wxdrawnshapedrawatangle} - -\func{void}{DrawAtAngle}{\param{int}{ angle}} - -Sets the metafile for the given orientation, which can be one of: - -\begin{itemize}\itemsep=0pt -\item oglDRAWN\_ANGLE\_0 -\item oglDRAWN\_ANGLE\_90 -\item oglDRAWN\_ANGLE\_180 -\item oglDRAWN\_ANGLE\_270 -\end{itemize} - -See also \helpref{wxDrawnShape::GetAngle}{wxdrawnshapegetangle}. - -\membersection{wxDrawnShape::DrawEllipticArc}\label{wxdrawnshapedrawellipticarc} - -\func{void}{DrawEllipticArc}{\param{const wxRect\&}{ rect}, \param{double}{ startAngle}, \param{double}{ endAngle}} - -Draws an elliptic arc (see wxWindows documentation for details). - -\membersection{wxDrawnShape::DrawLine}\label{wxdrawnshapedrawline} - -\func{void}{DrawLine}{\param{const wxPoint\&}{ point1}, \param{const wxPoint\&}{ point2}} - -Draws a line from {\it point1} to {\it point2}. - -\membersection{wxDrawnShape::DrawLines}\label{wxdrawnshapedrawlines} - -\func{void}{DrawLines}{\param{int}{ n}, \param{wxPoint\&}{ points[]}} - -Draws {\it n} lines. - -\membersection{wxDrawnShape::DrawPoint}\label{wxdrawnshapedrawpoint} - -\func{void}{DrawPoint}{\param{const wxPoint\&}{ point}} - -Draws a point. - -\membersection{wxDrawnShape::DrawPolygon}\label{wxdrawnshapedrawpolygon} - -\func{void}{DrawPolygon}{\param{int}{ n}, \param{wxPoint\&}{ points[]}, \param{int}{ flags = 0}} - -Draws a polygon. {\it flags} can be one or more of {\bf oglMETAFLAGS\_OUTLINE} (use this polygon for the drag outline) -and {\bf oglMETAFLAGS\_ATTACHMENTS} (use the vertices of this polygon for attachments). - -\membersection{wxDrawnShape::DrawRectangle}\label{wxdrawnshapedrawrectangle} - -\func{void}{DrawRectangle}{\param{const wxRect\&}{ rect}} - -Draws a rectangle. - -\membersection{wxDrawnShape::DrawRoundedRectangle}\label{wxdrawnshapedrawroundedrectangle} - -\func{void}{DrawRoundedRectangle}{\param{const wxRect\&}{ rect}, \param{double}{ radius}} - -Draws a rounded rectangle. {\it radius} is the corner radius. If {\it radius} is negative, -it expresses the radius as a proportion of the smallest dimension of the rectangle. - -\membersection{wxDrawnShape::DrawSpline}\label{wxdrawnshapedrawspline} - -\func{void}{DrawSpline}{\param{int}{ n}, \param{wxPoint\&}{ points[]}} - -Draws a spline curve. - -\membersection{wxDrawnShape::DrawText}\label{wxdrawnshapedrawtext} - -\func{void}{DrawText}{\param{const wxString\&}{ text}, \param{const wxPoint\&}{ point}} - -Draws text at the given point. - -\membersection{wxDrawnShape::GetAngle}\label{wxdrawnshapegetangle} - -\constfunc{int}{GetAngle}{\void} - -Returns the current orientation, which can be one of: - -\begin{itemize}\itemsep=0pt -\item oglDRAWN\_ANGLE\_0 -\item oglDRAWN\_ANGLE\_90 -\item oglDRAWN\_ANGLE\_180 -\item oglDRAWN\_ANGLE\_270 -\end{itemize} - -See also \helpref{wxDrawnShape::DrawAtAngle}{wxdrawnshapedrawatangle}. - -\membersection{wxDrawnShape::GetMetaFile} - -\constfunc{wxPseudoMetaFile\& }{GetMetaFile}{\void} - -Returns a reference to the internal `pseudo-metafile'. - -\membersection{wxDrawnShape::GetRotation}\label{wxdrawnshapegetrotation} - -\constfunc{double}{GetRotation}{\void} - -Returns the current rotation of the shape in radians. - -\membersection{wxDrawnShape::LoadFromMetaFile} - -\func{bool}{LoadFromMetaFile}{\param{const wxString\& }{filename}} - -Loads a (very simple) Windows metafile, created for example by Top Draw, the Windows shareware graphics package. - -\membersection{wxDrawnShape::Rotate} - -\func{void}{Rotate}{\param{double }{x}, \param{double }{y}, \param{double }{theta}} - -Rotate about the given axis by the given amount in radians. - -\membersection{wxDrawnShape::SetClippingRect}\label{wxdrawnshapesetclippingrect} - -\func{void}{SetClippingRect}{\param{const wxRect\&}{ rect}} - -Sets the clipping rectangle. See also \helpref{wxDrawnShape::DestroyClippingRect}{wxdrawnshapedestroyclippingrect}. - -\membersection{wxDrawnShape::SetDrawnBackgroundColour}\label{wxdrawnshapesetdrawnbackgroundcolour} - -\func{void}{SetDrawnBackgroundColour}{\param{const wxColour\&}{ colour}} - -Sets the current background colour for the current metafile. - -\membersection{wxDrawnShape::SetDrawnBackgroundMode}\label{wxdrawnshapesetdrawnbackgroundmode} - -\func{void}{SetDrawnBackgroundMode}{\param{int}{ mode}} - -Sets the current background mode for the current metafile. - -\membersection{wxDrawnShape::SetDrawnBrush}\label{wxdrawnshapesetdrawnbrush} - -\func{void}{SetDrawnBrush}{\param{wxPen*}{ pen}, \param{bool}{ isOutline = FALSE}} - -Sets the pen for this metafile. If {\it isOutline} is TRUE, this pen is taken to indicate the outline -(and if the outline pen is changed for the whole shape, the pen will be replaced with the outline pen). - -\membersection{wxDrawnShape::SetDrawnFont}\label{wxdrawnshapesetdrawnfont} - -\func{void}{SetDrawnFont}{\param{wxFont*}{ font}} - -Sets the current font for the current metafile. - -\membersection{wxDrawnShape::SetDrawnPen}\label{wxdrawnshapesetdrawnpen} - -\func{void}{SetDrawnPen}{\param{wxPen*}{ pen}, \param{bool}{ isOutline = FALSE}} - -Sets the pen for this metafile. If {\it isOutline} is TRUE, this pen is taken to indicate the outline -(and if the outline pen is changed for the whole shape, the pen will be replaced with the outline pen). - -\membersection{wxDrawnShape::SetDrawnTextColour}\label{wxdrawnshapesetdrawntextcolour} - -\func{void}{SetDrawnTextColour}{\param{const wxColour\&}{ colour}} - -Sets the current text colour for the current metafile. - -\membersection{wxDrawnShape::Scale} - -\func{void}{Scale}{\param{double }{sx}, \param{double }{sy}} - -Scales the shape by the given amount. - -\membersection{wxDrawnShape::SetSaveToFile} - -\func{void}{SetSaveToFile}{\param{bool }{save}} - -If {\it save} is TRUE, the image will be saved along with the shape's other attributes. The reason -why this might not be desirable is that if there are many shapes with the same image, it would be -more efficient for the application to save one copy, and not duplicate the information for every -shape. The default is TRUE. - -\membersection{wxDrawnShape::Translate} - -\func{void}{Translate}{\param{double }{x}, \param{double }{y}} - -Translates the shape by the given amount. - -\section{\class{wxCircleShape}}\label{wxcircleshape} - -An wxEllipseShape whose width and height are the same. - -\wxheading{Derived from} - -\helpref{wxEllipseShape}{wxellipseshape}. - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCircleShape::wxCircleShape} - -\func{}{wxCircleShape}{\param{double}{ width = 0.0}} - -Constructor. - -\membersection{wxCircleShape::\destruct{wxCircleShape}} - -\func{}{\destruct{wxCircleShape}}{\void} - -Destructor. - -\section{\class{wxCompositeShape}}\label{wxcompositeshape} - -This is an object with a list of child objects, and a list of size -and positioning constraints between the children. - -\wxheading{Derived from} - -\helpref{wxRectangleShape}{wxrectangleshape} - -\wxheading{See also} - -\helpref{wxCompositeShape overview}{compositeshapeoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxCompositeShape::wxCompositeShape} - -\func{}{wxCompositeShape}{\void} - -Constructor. - -\membersection{wxCompositeShape::\destruct{wxCompositeShape}} - -\func{}{\destruct{wxCompositeShape}}{\void} - -Destructor. - -\membersection{wxCompositeShape::AddChild}\label{wxcompositeshapeaddchild} - -\func{void}{AddChild}{\param{wxShape *}{child}, \param{wxShape *}{addAfter = NULL}} - -Adds a child shape to the composite. If {\it addAfter} is non-NULL, the shape will be added -after this shape. - -\membersection{wxCompositeShape::AddConstraint}\label{wxcompositeshapeaddconstraint} - -\func{wxOGLConstraint *}{AddConstraint}{\param{wxOGLConstraint *}{constraint}} - -\func{wxOGLConstraint *}{AddConstraint}{\param{int}{ type}, \param{wxShape *}{constraining}, \param{wxList\&}{constrained}} - -\func{wxOGLConstraint *}{AddConstraint}{\param{int}{ type}, \param{wxShape *}{constraining}, \param{wxShape *}{constrained}} - -Adds a constraint to the composite. - -\membersection{wxCompositeShape::CalculateSize} - -\func{void}{CalculateSize}{\void} - -Calculates the size and position of the composite based on child sizes and positions. - -\membersection{wxCompositeShape::ContainsDivision} - -\func{bool}{FindContainerImage}{\param{wxDivisionShape *}{division}} - -Returns TRUE if {\it division} is a descendant of this container. - -\membersection{wxCompositeShape::DeleteConstraint} - -\func{void}{DeleteConstraint}{\param{wxOGLConstraint *}{constraint}} - -Deletes constraint from composite. - -\membersection{wxCompositeShape::DeleteConstraintsInvolvingChild} - -\func{void}{DeleteConstraintsInvolvingChild}{\param{wxShape *}{child}} - -This function deletes constraints which mention the given child. Used when -deleting a child from the composite. - -\membersection{wxCompositeShape::FindConstraint} - -\func{wxOGLConstraint *}{FindConstraint}{\param{long}{ id}, \param{wxCompositeShape **}{actualComposite}} - -Finds the constraint with the given id, also returning the actual composite the constraint was in, -in case that composite was a descendant of this composite. - -\membersection{wxCompositeShape::FindContainerImage} - -\func{wxShape *}{FindContainerImage}{\void} - -Finds the image used to visualize a container. This is any child -of the composite that is not in the divisions list. - -\membersection{wxCompositeShape::GetConstraints} - -\constfunc{wxList\&}{GetConstraints}{\void} - -Returns a reference to the list of constraints. - -\membersection{wxCompositeShape::GetDivisions} - -\constfunc{wxList\&}{GetDivisions}{\void} - -Returns a reference to the list of divisions. - -\membersection{wxCompositeShape::MakeContainer}\label{wxcompositeshapemakecontainer} - -\func{void}{MakeContainer}{\void} - -Makes this composite into a container by creating one child wxDivisionShape. - -\membersection{wxCompositeShape::OnCreateDivision} - -\func{wxDivisionShape *}{OnCreateDivision}{\void} - -Called when a new division shape is required. Can be overriden to allow an application -to use a different class of division. - -\membersection{wxCompositeShape::Recompute}\label{wxcompositeshaperecompute} - -\func{bool}{Recompute}{\void} - -Recomputes any constraints associated with the object. If FALSE is returned, -the constraints could not be satisfied (there was an inconsistency). - -\membersection{wxCompositeShape::RemoveChild} - -\func{void}{RemoveChild}{\param{wxShape *}{child}} - -Removes the child from the composite and any constraint relationships, but does not -delete the child. - -\section{\class{wxDividedShape}}\label{wxdividedshape} - -A wxDividedShape is a rectangle with a number of vertical divisions. Each -division may have its text formatted with independent characteristics, and -the size of each division relative to the whole image may be specified. - -\wxheading{Derived from} - -\helpref{wxRectangleShape}{wxrectangleshape} - -\wxheading{See also} - -\helpref{wxDividedShape overview}{dividedshapeoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDividedShape::wxDividedShape} - -\func{}{wxDividedShape}{\param{double}{ width = 0.0}, \param{double}{ height = 0.0}} - -Constructor. - -\membersection{wxDividedShape::\destruct{wxDividedShape}} - -\func{}{\destruct{wxDividedShape}}{\void} - -Destructor. - -\membersection{wxDividedShape::EditRegions} - -\func{void}{EditRegions}{\void} - -Edit the region colours and styles. - -\membersection{wxDividedShape::SetRegionSizes} - -\func{void}{SetRegionSizes}{\void} - -Set all region sizes according to proportions and -this object total size. - -\section{\class{wxDivisionShape}}\label{wxdivisionshape} - -A division shape is like a composite in that it can contain further objects, but is used exclusively to -divide another shape into regions, or divisions. A wxDivisionShape is never free-standing. - -\wxheading{Derived from} - -\helpref{wxCompositeShape}{wxcompositeshape} - -\wxheading{See also} - -\helpref{wxCompositeShape overview}{compositeshapeoverview} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxDivisionShape::wxDivisionShape} - -\func{}{wxDivisionShape}{\void} - -Constructor. - -\membersection{wxDivisionShape::\destruct{wxDivisionShape}} - -\func{}{\destruct{wxDivisionShape}}{\void} - -Destructor. - -\membersection{wxDivisionShape::AdjustBottom} - -\func{void}{AdjustBottom}{\param{double}{ bottom}, \param{bool}{ test}} - -Adjust a side, returning FALSE if it's not physically possible to adjust it to this point. - -\membersection{wxDivisionShape::AdjustLeft} - -\func{void}{AdjustLeft}{\param{double}{ left}, \param{bool}{ test}} - -Adjust a side, returning FALSE if it's not physically possible to adjust it to this point. - -\membersection{wxDivisionShape::AdjustRight} - -\func{void}{AdjustRight}{\param{double}{ right}, \param{bool}{ test}} - -Adjust a side, returning FALSE if it's not physically possible to adjust it to this point. - -\membersection{wxDivisionShape::AdjustTop} - -\func{void}{AdjustTop}{\param{double}{ top}, \param{bool}{ test}} - -Adjust a side, returning FALSE if it's not physically possible to adjust it to this point. - -\membersection{wxDivisionShape::Divide}\label{wxdivisionshapedivide} - -\func{void}{Divide}{\param{int}{ direction}} - -Divide this division into two further divisions, horizontally ({\it direction} is wxHORIZONTAL) or -vertically ({\it direction} is wxVERTICAL). - -\membersection{wxDivisionShape::EditEdge} - -\func{void}{EditEdge}{\param{int}{ side}} - -Interactively edit style of left or top side. - -\membersection{wxDivisionShape::GetBottomSide} - -\func{wxDivisionShape *}{GetBottomSide}{\void} - -Returns a pointer to the division on the bottom side of this division. - -\membersection{wxDivisionShape::GetHandleSide} - -\func{int}{GetHandleSide}{\void} - -Returns the side which the handle appears on (DIVISION\_SIDE\_LEFT or DIVISION\_SIDE\_TOP). - -\membersection{wxDivisionShape::GetLeftSide} - -\func{wxDivisionShape *}{GetLeftSide}{\void} - -Returns a pointer to the division on the left side of this division. - -\membersection{wxDivisionShape::GetLeftSideColour} - -\func{wxString}{GetLeftSideColour}{\void} - -Returns a pointer to the colour used for drawing the left side of the division. - -\membersection{wxDivisionShape::GetLeftSidePen} - -\func{wxPen *}{GetLeftSidePen}{\void} - -Returns a pointer to the pen used for drawing the left side of the division. - -\membersection{wxDivisionShape::GetRightSide} - -\func{wxDivisionShape *}{GetRightSide}{\void} - -Returns a pointer to the division on the right side of this division. - -\membersection{wxDivisionShape::GetTopSide} - -\func{wxDivisionShape *}{GetTopSide}{\void} - -Returns a pointer to the division on the top side of this division. - -\membersection{wxDivisionShape::GetTopSideColour} - -\func{wxString}{GetTopSideColour}{\void} - -Returns a pointer to the colour used for drawing the top side of the division. - -\membersection{wxDivisionShape::GetTopSidePen} - -\func{wxPen *}{GetTopSidePen}{\void} - -Returns a pointer to the pen used for drawing the left side of the division. - -\membersection{wxDivisionShape::ResizeAdjoining} - -\func{void}{ResizeAdjoining}{\param{int}{ side}, \param{double}{ newPos}, \param{bool}{ test}} - -Resize adjoining divisions at the given side. If {\it test} is TRUE, -just see whether it's possible for each adjoining region, -returning FALSE if it's not. - -{\it side} can be one of: - -\begin{itemize}\itemsep=0pt -\item DIVISION\_SIDE\_NONE -\item DIVISION\_SIDE\_LEFT -\item DIVISION\_SIDE\_TOP -\item DIVISION\_SIDE\_RIGHT -\item DIVISION\_SIDE\_BOTTOM -\end{itemize} - -\membersection{wxDivisionShape::PopupMenu} - -\func{void}{PopupMenu}{\param{double}{ x}, \param{double}{ y}} - -Popup the division menu. - -\membersection{wxDivisionShape::SetBottomSide} - -\func{void}{SetBottomSide}{\param{wxDivisionShape *}{shape}} - -Set the pointer to the division on the bottom side of this division. - -\membersection{wxDivisionShape::SetHandleSide} - -\func{int}{SetHandleSide}{\void} - -Sets the side which the handle appears on (DIVISION\_SIDE\_LEFT or DIVISION\_SIDE\_TOP). - -\membersection{wxDivisionShape::SetLeftSide} - -\func{void}{SetLeftSide}{\param{wxDivisionShape *}{shape}} - -Set the pointer to the division on the left side of this division. - -\membersection{wxDivisionShape::SetLeftSideColour} - -\func{void}{SetLeftSideColour}{\param{const wxString\& }{colour}} - -Sets the colour for drawing the left side of the division. - -\membersection{wxDivisionShape::SetLeftSidePen} - -\func{void}{SetLeftSidePen}{\param{wxPen *}{pen}} - -Sets the pen for drawing the left side of the division. - -\membersection{wxDivisionShape::SetRightSide} - -\func{void}{SetRightSide}{\param{wxDivisionShape *}{shape}} - -Set the pointer to the division on the right side of this division. - -\membersection{wxDivisionShape::SetTopSide} - -\func{void}{SetTopSide}{\param{wxDivisionShape *}{shape}} - -Set the pointer to the division on the top side of this division. - -\membersection{wxDivisionShape::SetTopSideColour} - -\func{void}{SetTopSideColour}{\param{const wxString\& }{colour}} - -Sets the colour for drawing the top side of the division. - -\membersection{wxDivisionShape::SetTopSidePen} - -\func{void}{SetTopSidePen}{\param{wxPen *}{pen}} - -Sets the pen for drawing the top side of the division. - -\section{\class{wxEllipseShape}}\label{wxellipseshape} - -The wxEllipseShape behaves similarly to the wxRectangleShape but is -elliptical. - -\wxheading{Derived from} - -\helpref{wxShape}{wxshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxEllipseShape::wxEllipseShape} - -\func{}{wxEllipseShape}{\param{double}{ width = 0.0}, \param{double}{ height = 0.0}} - -Constructor. - -\membersection{wxEllipseShape::\destruct{wxEllipseShape}} - -\func{}{\destruct{wxEllipseShape}}{\void} - -Destructor. - -\section{\class{wxLineShape}}\label{wxlineshape} - -A wxLineShape may be attached to two nodes; it may be segmented, in which -case a control point is drawn for each joint. - -A wxLineShape may have arrows at the beginning, end and centre. - -\wxheading{Derived from} - -\helpref{wxShape}{wxshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxLineShape::wxLineShape} - -\func{}{wxLineShape}{\void} - -Constructor. - -Usually you will call \helpref{wxLineShape::MakeLineControlPoints}{wxlineshapemakelinecontrolpoints} to -specify the number of segments in the line. - -\membersection{wxLineShape::\destruct{wxLineShape}} - -\func{}{\destruct{wxLineShape}}{\void} - -Destructor. - -\membersection{wxLineShape::AddArrow}\label{wxlineshapeaddarrow} - -\func{void}{AddArrow}{\param{WXTYPE}{ type}, \param{bool}{ end = ARROW\_POSITION\_END}, \param{double}{ arrowSize = 10.0}, - \param{double}{ xOffset = 0.0}, \param{const wxString\& }{name = ""}, \param{wxPseudoMetaFile *}{mf = NULL}, \param{long}{ arrowId = -1}} - -Adds an arrow (or annotation) to the line. - -{\it type} may currently be one of: - -\begin{description}\itemsep=0pt -\item[ARROW\_HOLLOW\_CIRCLE] Hollow circle. -\item[ARROW\_FILLED\_CIRCLE] Filled circle. -\item[ARROW\_ARROW] Conventional arrowhead. -\item[ARROW\_SINGLE\_OBLIQUE] Single oblique stroke. -\item[ARROW\_DOUBLE\_OBLIQUE] Double oblique stroke. -\item[ARROW\_DOUBLE\_METAFILE] Custom arrowhead. -\end{description} - -{\it end} may currently be one of: - -\begin{description}\itemsep=0pt -\item[ARROW\_POSITION\_END] Arrow appears at the end. -\item[ARROW\_POSITION\_START] Arrow appears at the start. -\end{description} - -{\it arrowSize} specifies the length of the arrow. - -{\it xOffset} specifies the offset from the end of the line. - -{\it name} specifies a name for the arrow. - -{\it mf} can be a wxPseduoMetaFile, perhaps loaded from a simple Windows metafile. - -{\it arrowId} is the id for the arrow. - -\membersection{wxLineShape::AddArrowOrdered} - -\func{void}{AddArrowOrdered}{\param{wxArrowHead *}{arrow}, \param{wxList\&}{ referenceList}, \param{int}{ end}} - -Add an arrowhead in the position indicated by the reference -list of arrowheads, which contains all legal arrowheads for this -line, in the correct order. -E.g. - -\begin{verbatim} - Reference list: a b c d e - Current line list: a d -\end{verbatim} - -Add c, then line list is: a c d. - -If no legal arrowhead position, return FALSE. Assume reference list is -for one end only, since it potentially defines the ordering for any one -of the 3 positions. So we don't check the reference list for arrowhead -position. - -\membersection{wxLineShape::ClearArrow} - -\func{bool}{ClearArrow}{\param{const wxString\& }{name}} - -Delete the arrow with the given name. - -\membersection{wxLineShape::ClearArrowsAtPosition} - -\func{void}{ClearArrowsAtPosition}{\param{int}{ position = -1}} - -Delete the arrows at the specified position, or at any position if {\it position} is -1. - -\membersection{wxLineShape::DrawArrow} - -\func{void}{DrawArrow}{\param{ArrowHead *}{arrow}, \param{double}{ xOffset}, \param{bool}{ proportionalOffset}} - -Draws the given arrowhead (or annotation). - -\membersection{wxLineShape::DeleteArrowHead} - -\func{bool}{DeleteArrowHead}{\param{long}{ arrowId}} - -\func{bool}{DeleteArrowHead}{\param{int}{ position}, \param{const wxString\& }{name}} - -Delete arrowhead by id or position and name. - -\membersection{wxLineShape::DeleteLineControlPoint} - -\func{bool}{DeleteLineControlPoint}{\void} - -Deletes an arbitary point on the line. - -\membersection{wxLineShape::DrawArrows} - -\func{void}{DrawArrows}{\param{wxDC\&}{ dc}} - -Draws all arrows. - -\membersection{wxLineShape::DrawRegion} - -\func{void}{DrawRegion}{\param{wxDC\&}{ dc}, \param{wxShapeRegion *}{region}, \param{double}{ x}, \param{double}{ y}} - -Format one region at this position. - -\membersection{wxLineShape::EraseRegion} - -\func{void}{EraseRegion}{\param{wxDC\&}{ dc}, \param{wxShapeRegion *}{region}, \param{double}{ x}, \param{double}{ y}} - -Format one region at this position. - -\membersection{wxLineShape::FindArrowHead} - -\func{wxArrowHead *}{FindArrowHead}{\param{long}{ arrowId}} - -\func{wxArrowHead *}{FindArrowHead}{\param{int}{ position}, \param{const wxString\& }{name}} - -Find arrowhead by id or position and name. - -\membersection{wxLineShape::FindLineEndPoints} - -\func{void}{FindLineEndPoints}{\param{double *}{fromX}, \param{double *}{fromY}, \param{double *}{toX}, \param{double *}{toY}} - -Finds the x, y points at the two ends of the line. This function can be -used by e.g. line-routing routines to get the actual points on the two -node images where the lines will be drawn to/from. - -\membersection{wxLineShape::FindLinePosition} - -\func{int}{FindLinePosition}{\param{double }{x}, \param{double }{y}} - -Find which position we're talking about at this x, y. -Returns ARROW\_POSITION\_START, ARROW\_POSITION\_MIDDLE, ARROW\_POSITION\_END. - -\membersection{wxLineShape::FindMinimumWidth} - -\func{double}{FindMinimumWidth}{\void} - -Finds the horizontal width for drawing a line with arrows in minimum -space. Assume arrows at end only. - -\membersection{wxLineShape::FindNth} - -\func{void}{FindNth}{\param{wxShape *}{image}, \param{int *}{nth}, \param{int *}{noArcs}, \param{bool}{ incoming}} - -Finds the position of the line on the given object. Specify whether incoming or outgoing lines are -being considered with {\it incoming}. - -\membersection{wxLineShape::GetAttachmentFrom} - -\constfunc{int}{GetAttachmentFrom}{\void} - -Returns the attachment point on the `from' node. - -\membersection{wxLineShape::GetAttachmentTo} - -\constfunc{int}{GetAttachmentTo}{\void} - -Returns the attachment point on the `to' node. - -\membersection{wxLineShape::GetEnds} - -\func{void}{GetEnds}{\param{double *}{x1}, \param{double *}{y1}, \param{double *}{x2}, \param{double *}{y2}} - -Gets the visible endpoints of the lines for drawing between two objects. - -\membersection{wxLineShape::GetFrom} - -\constfunc{wxShape *}{GetFrom}{\void} - -Gets the `from' object. - -\membersection{wxLineShape::GetLabelPosition} - -\func{void}{GetLabelPosition}{\param{int}{ position}, \param{double *}{x}, \param{double *}{y}} - -Get the reference point for a label. Region x and y are offsets from this. -position is 0 (middle), 1 (start), 2 (end). - -\membersection{wxLineShape::GetNextControlPoint} - -\func{wxPoint *}{GetNextControlPoint}{\param{wxShape *}{shape}} - -Find the next control point in the line after the start/end point, -depending on whether the shape is at the start or end. - -\membersection{wxLineShape::GetTo} - -\func{wxShape *}{GetTo}{\void} - -Gets the `to' object. - -\membersection{wxLineShape::Initialise} - -\func{void}{Initialise}{\void} - -Initialises the line object. - -\membersection{wxLineShape::InsertLineControlPoint} - -\func{void}{InsertLineControlPoint}{\void} - -Inserts a control point at an arbitrary position. - -\membersection{wxLineShape::IsEnd} - -\func{bool}{IsEnd}{\param{wxShape *}{shape}} - -Returns TRUE if {\it shape} is at the end of the line. - -\membersection{wxLineShape::IsSpline} - -\func{bool}{IsSpline}{\void} - -Returns TRUE if a spline is drawn through the control points, and FALSE otherwise. - -\membersection{wxLineShape::MakeLineControlPoints}\label{wxlineshapemakelinecontrolpoints} - -\func{void}{MakeLineControlPoints}{\param{int}{ n}} - -Make a given number of control points (minimum of two). - -\membersection{wxLineShape::OnMoveLink} - -\func{void}{OnMoveLink}{\param{wxDC\&}{ dc}, \param{bool}{ moveControlPoints = TRUE}} - -Called when a connected object has moved, to move the link to -correct position. - -\membersection{wxLineShape::SetAttachmentFrom} - -\func{void}{SetAttachmentTo}{\param{int}{ fromAttach}} - -Sets the `from' shape attachment. - -\membersection{wxLineShape::SetAttachments} - -\func{void}{SetAttachments}{\param{int}{ fromAttach}, \param{int}{ toAttach}} - -Specifies which object attachment points should be used at each end of the line. - -\membersection{wxLineShape::SetAttachmentTo} - -\func{void}{SetAttachmentTo}{\param{int}{ toAttach}} - -Sets the `to' shape attachment. - -\membersection{wxLineShape::SetEnds} - -\func{void}{SetEnds}{\param{double}{ x1}, \param{double}{ y1}, \param{double}{ x2}, \param{double}{ y2}} - -Sets the end positions of the line. - -\membersection{wxLineShape::SetFrom} - -\func{void}{SetFrom}{\param{wxShape *}{object}} - -Sets the `from' object for the line. - -\membersection{wxLineShape::SetIgnoreOffsets} - -\func{void}{SetIgnoreOffsets}{\param{bool}{ ignore}} - -Tells the shape whether to ignore offsets from the end of the line when drawing. - -\membersection{wxLineShape::SetSpline} - -\func{void}{SetSpline}{\param{bool}{ spline}} - -Specifies whether a spline is to be drawn through the control points (TRUE), or a line (FALSE). - -\membersection{wxLineShape::SetTo} - -\func{void}{SetTo}{\param{wxShape *}{object}} - -Sets the `to' object for the line. - -\membersection{wxLineShape::Straighten} - -\func{void}{Straighten}{\param{wxDC*}{ dc = NULL}} - -Straighten verticals and horizontals. {\it dc} is optional. - -\membersection{wxLineShape::Unlink} - -\func{void}{Unlink}{\void} - -Unlinks the line from the nodes at either end. - -\section{\class{wxPolygonShape}}\label{wxpolygonshape} - -A wxPolygonShape's shape is defined by a number of points passed to the object's -constructor. It can be used to create new shapes such as diamonds and triangles. - -\wxheading{Derived from} - -\helpref{wxShape}{wxshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxPolygonShape::wxPolygonShape} - -\func{}{wxPolygonShape}{void} - -Constructor. Call \helpref{wxPolygonShape::Create}{wxpolygonshapecreate} to specify the polygon's vertices. - -\membersection{wxPolygonShape::\destruct{wxPolygonShape}} - -\func{}{\destruct{wxPolygonShape}}{\void} - -Destructor. - -\membersection{wxPolygonShape::Create}\label{wxpolygonshapecreate} - -\func{void}{Create}{\param{wxList*}{ points}} - -Takes a list of wxRealPoints; each point is an {\it offset} from the centre. -The polygon's destructor will delete these points, so do not delete them yourself. - -\membersection{wxPolygonShape::AddPolygonPoint} - -\func{void}{AddPolygonPoint}{\param{int}{ pos = 0}} - -Add a control point after the given point. - -\membersection{wxPolygonShape::CalculatePolygonCentre} - -\func{void}{CalculatePolygonCentre}{\void} - -Recalculates the centre of the polygon. - -\membersection{wxPolygonShape::DeletePolygonPoint} - -\func{void}{DeletePolygonPoint}{\param{int}{ pos = 0}} - -Deletes a control point. - -\membersection{wxPolygonShape::GetPoints} - -\func{wxList *}{GetPoints}{\void} - -Returns a pointer to the internal list of polygon vertices (wxRealPoints). - -\membersection{wxPolygonShape::UpdateOriginalPoints} - -\func{void}{UpdateOriginalPoints}{\void} - -If we've changed the shape, must make the original -points match the working points with this function. - -\section{\class{wxRectangleShape}}\label{wxrectangleshape} - -The wxRectangleShape has rounded or square corners. - -\wxheading{Derived from} - -\helpref{wxShape}{wxshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxRectangleShape::wxRectangleShape} - -\func{}{wxRectangleShape}{\param{double}{ width = 0.0}, \param{double}{ height = 0.0}} - -Constructor. - -\membersection{wxRectangleShape::\destruct{wxRectangleShape}} - -\func{}{\destruct{wxRectangleShape}}{\void} - -Destructor. - -\membersection{wxRectangleShape::SetCornerRadius} - -\func{void}{SetCornerRadius}{\param{double}{ radius}} - -Sets the radius of the rectangle's rounded corners. If the radius is zero, a non-rounded -rectangle will be drawn. If the radius is negative, the value is the proportion of the -smaller dimension of the rectangle. - -\section{\class{wxPseudoMetaFile}}\label{wxpseudometafile} - -A simple metafile-like class which can load data from a Windows metafile on all platforms. - -\wxheading{Derived from} - -wxObject - -\section{\class{wxShape}}\label{wxshape} - -The wxShape is the top-level, abstract object that all other -objects are derived from. All common functionality is represented by -wxShape's members, and overriden members that appear in derived -classes and have behaviour as documented for wxShape, are not -documented separately. - -\wxheading{Derived from} - -\helpref{wxShapeEvtHandler}{wxshapeevthandler} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxShape::wxShape} - -\func{}{wxShape}{\param{wxShapeCanvas*}{ canvas = NULL}} - -Constructs a new wxShape. - -\membersection{wxShape::\destruct{wxShape}} - -\func{}{\destruct{wxShape}}{\void} - -Destructor. - -\membersection{wxShape::AddLine} - -\func{void}{AddLine}{\param{wxLineShape*}{ line}, \param{wxShape*}{ other}, \param{int}{ attachFrom = 0}, \param{int}{ attachTo = 0}, - \param{int}{ positionFrom = -1}, \param{int}{ positionTo = -1}} - -Adds a line between the specified canvas shapes, at the specified attachment points. - -The position in the list of lines at each end can also be specified, so that the line will be drawn -at a particular point on its attachment point. - -\membersection{wxShape::AddRegion} - -\func{void}{AddRegion}{\param{wxShapeRegion*}{ region}} - -Adds a region to the shape. - -\membersection{wxShape::AddText} - -\func{void}{AddText}{\param{const wxString\& }{string}} - -Adds a line of text to the shape's default text region. - -\membersection{wxShape::AddToCanvas} - -\func{void}{AddToCanvas}{\param{wxShapeCanvas*}{ theCanvas}, \param{wxShape*}{ addAfter=NULL}} - -Adds the shape to the canvas's shape list. If {\it addAfter} is -non-NULL, will add the shape after this one. - -\membersection{wxShape::AncestorSelected} - -\constfunc{bool}{AncestorSelected}{\void} - -TRUE if the shape's ancestor is currently selected. - -\membersection{wxShape::ApplyAttachmentOrdering}\label{wxshapeapplyattachmentordering} - -\func{void}{ApplyAttachmentOrdering}{\param{wxList\&}{ linesToSort}} - -Applies the line ordering in {\it linesToSort} to the shape, to reorder the way lines are attached. - -\membersection{wxShape::AssignNewIds} - -\func{void}{AssignNewIds}{\void} - -Assigns new ids to this image and its children. - -\membersection{wxShape::Attach}\label{wxshapeattach} - -\func{void}{Attach}{\param{wxShapeCanvas*}{ can}} - -Sets the shape's internal canvas pointer to point to the given canvas. - -\membersection{wxShape::AttachmentIsValid}\label{wxshapeattachmentisvalid} - -\constfunc{bool}{AttachmentIsValid}{\param{int}{ attachment}} - -Returns TRUE if {\it attachment} is a valid attachment point. - -\membersection{wxShape::AttachmentSortTest}\label{wxshapeattachmentsorttest} - -\constfunc{bool}{AttachmentSortTest}{\param{int}{ attachment}, \param{const wxRealPoint\&}{ pt1}, - \param{const wxRealPoint\&}{ pt2}} - -Returns TRUE if {\it pt1} is less than or equal to {\it pt2}, in the sense -that one point comes before another on an edge of the shape. {\it attachment} is -the attachment point (side) in question. - -This function is used in \helpref{wxShape::MoveLineToNewAttachment}{wxshapemovelinetonewattachment} to -determine the new line ordering. - -\membersection{wxShape::CalcSimpleAttachment}\label{wxshapecalcsimpleattachment} - -\func{wxRealPoint}{CalcSimpleAttachment}{\param{const wxRealPoint\&}{ pt1}, - \param{const wxRealPoint\&}{ pt2}, \param{int}{ nth}, \param{int}{ noArcs}, \param{wxLineShape*}{ line}} - -Assuming the attachment lies along a vertical or horizontal line, -calculates the position on that point. - -\wxheading{Parameters} - -\docparam{pt1}{The first point of the line repesenting the edge of the shape.} - -\docparam{pt2}{The second point of the line representing the edge of the shape.} - -\docparam{nth}{The position on the edge (for example there may be 6 lines at this attachment point, -and this may be the 2nd line.} - -\docparam{noArcs}{The number of lines at this edge.} - -\docparam{line}{The line shape.} - -\wxheading{Remarks} - -This function expects the line to be either vertical or horizontal, and determines which. - -\membersection{wxShape::CalculateSize} - -\func{void}{CalculateSize}{\void} - -Called to calculate the shape's size if dependent on children sizes. - -\membersection{wxShape::ClearAttachments} - -\func{void}{ClearAttachments}{\void} - -Clears internal custom attachment point shapes (of class wxAttachmentPoint). - -\membersection{wxShape::ClearRegions} - -\func{void}{ClearRegions}{\void} - -Clears the wxShapeRegions from the shape. - -\membersection{wxShape::ClearText} - -\func{void}{ClearText}{\param{int}{ regionId = 0}} - -Clears the text from the specified text region. - -\membersection{wxShape::Constrain} - -\func{bool}{Constrain}{\void} - -Calculates the shape's constraints (if any). Applicable -only to wxCompositeShape, does nothing if the shape is of -a different class. - -\membersection{wxShape::Copy}\label{wxshapecopy} - -\func{void}{Copy}{\param{wxShape\&}{ copy}} - -Copy this shape into {\it copy}. Every derived class must have one of these, and each Copy implementation -must call the derived class's implementation to ensure everything is copied. See also \helpref{wxShape::CreateNewCopy}{wxshapecreatenewcopy}. - -\membersection{wxShape::CreateNewCopy}\label{wxshapecreatenewcopy} - -\func{wxShape* }{CreateNewCopy}{\param{bool}{ resetMapping = TRUE}, \param{bool}{ recompute = TRUE}} - -Creates and returns a new copy of this shape (calling \helpref{wxShape::Copy}{wxshapecopy}). Do not override this function. - -This function should always be used to create a new copy, since it must do special processing -for copying constraints associated with constraints. - -If {\it resetMapping} is TRUE, a mapping table used for complex shapes is reset; this may not be desirable -if the shape being copied is a child of a composite (and so the mapping table is in use). - -If {\it recompute} is TRUE, \helpref{wxShape::Recompute}{wxshaperecompute} is called for the new shape. - -\wxheading{Remarks} - -This function uses the wxWindows dynamic object creation system to create a new shape of the same -type as `this', before calling Copy. - -If the event handler for this shape is not the same as the shape itself, the event handler is also copied -using \helpref{wxShapeEvtHandler::CreateNewCopy}{wxshapeevthandlercreatenewcopy}. - -\membersection{wxShape::DeleteControlPoints} - -\func{void}{DeleteControlPoints}{\void} - -Deletes the control points (or handles) for the shape. Does not redraw -the shape. - -\membersection{wxShape::Detach} - -\func{void}{Detach}{\void} - -Disassociates the shape from its canvas by setting the internal shape -canvas pointer to NULL. - -\membersection{wxShape::Draggable} - -\func{bool}{Draggable}{\void} - -TRUE if the shape may be dragged by the user. - -\membersection{wxShape::Draw} - -\func{void}{Draw}{\param{wxDC\&}{ dc}} - -Draws the whole shape and any lines attached to it. - -Do not override this function: override OnDraw, which is called -by this function. - -\membersection{wxShape::DrawContents} - -\func{void}{DrawContents}{\param{wxDC\&}{ dc}} - -Draws the internal graphic of the shape (such as -text). - -Do not override this function: override OnDrawContents, which is called -by this function. - -\membersection{wxShape::DrawLinks} - -\func{void}{DrawLinks}{\param{wxDC\&}{ dc}, \param{int}{ attachment = -1}} - -Draws any lines linked to this shape. - -\membersection{wxShape::Erase} - -\func{void}{Erase}{\param{wxDC\&}{ dc}} - -Erases the shape, but does not repair damage caused to other -shapes. - -\membersection{wxShape::EraseContents} - -\func{void}{EraseContents}{\param{wxDC\&}{ dc}} - -Erases the shape contents, that is, the area within the shape's -minimum bounding box. - -\membersection{wxShape::EraseLinks} - -\func{void}{EraseLinks}{\param{wxDC\&}{ dc}, \param{int}{ attachment = -1}} - -Erases links attached to this shape, but does not repair -damage caused to other shapes. - -\membersection{wxShape::FindRegion} - -\func{wxShape *}{FindRegion}{\param{const wxString\& }{regionName}, \param{int *}{regionId}} - -Finds the actual image (`this' if non-composite) and region id for the given -region name. - -\membersection{wxShape::FindRegionNames} - -\func{void}{FindRegionNames}{\param{wxStringList\&}{ list}} - -Finds all region names for this image (composite or simple). -Supply an empty string list. - -\membersection{wxShape::Flash} - -\func{void}{Flash}{\void} - -Flashes the shape. - -\membersection{wxShape::FormatText} - -\func{void}{FormatText}{\param{const wxString\& }{s}, \param{int}{ i = 0}} - -Reformats the given text region; defaults to formatting the default region. - -\membersection{wxShape::GetAttachmentMode} - -\constfunc{bool}{GetAttachmentMode}{\void} - -Returns the attachment mode, which is TRUE if attachments are used, FALSE otherwise (in which case -lines will be drawn as if to the centre of the shape). See \helpref{wxShape::SetAttachmentMode}{wxshapesetattachmentmode}. - -\membersection{wxShape::GetAttachmentPosition}\label{wxshapegetattachmentposition} - -\func{bool}{GetAttachmentPosition}{\param{int}{ attachment}, \param{double*}{ x}, \param{double*}{ y}, - \param{int}{ nth = 0}, \param{int}{ noArcs = 1}, \param{wxLineShape*}{ line = NULL}} - -Gets the position at which the given attachment point should be drawn. - -If {\it attachment} isn't found among the attachment points of the shape, returns FALSE. - -\membersection{wxShape::GetBoundingBoxMax} - -\func{void}{GetBoundingBoxMax}{\param{double *}{width}, \param{double *}{height}} - -Gets the maximum bounding box for the shape, taking into -account external features such as shadows. - -\membersection{wxShape::GetBoundingBoxMin} - -\func{void}{GetBoundingBoxMin}{\param{double *}{width}, \param{double *}{height}} - -Gets the minimum bounding box for the shape, that defines -the area available for drawing the contents (such as text). - -\membersection{wxShape::GetBrush} - -\constfunc{wxBrush*}{GetBrush}{\void} - -Returns the brush used for filling the shape. - -\membersection{wxShape::GetCanvas} - -\constfunc{wxShapeCanvas*}{GetCanvas}{\void} - -Gets the internal canvas pointer. - -\membersection{wxShape::GetCentreResize} - -\constfunc{bool}{GetCentreResize}{\void} - -Returns TRUE if the shape is to be resized from the centre (the centre -stands still), or FALSE if from the corner or side being dragged (the -other corner or side stands still). - -\membersection{wxShape::GetChildren} - -\constfunc{wxList\&}{GetChildren}{\void} - -Returns a reference to the list of children for this shape. - -\membersection{wxShape::GetClientData} - -\func{wxObject*}{GetClientData}{\void} - -Gets the client data associated with the shape (NULL if there is -none). - -\membersection{wxShape::GetDisableLabel} - -\constfunc{bool}{GetDisableLabel}{\void} - -Returns TRUE if the default region will not be shown, FALSE otherwise. - -\membersection{wxShape::GetEventHandler} - -\constfunc{wxShapeEvtHandler*}{GetEventHandler}{\void} - -Returns the event handler for this shape. - -\membersection{wxShape::GetFixedHeight} - -\constfunc{bool}{GetFixedHeight}{\void} - -Returns TRUE if the shape cannot be resized in the vertical plane. - -\membersection{wxShape::GetFixedSize} - -\func{void}{GetFixedSize}{\param{bool *}{ x}, \param{bool *}{ y}} - -Returns flags indicating whether the shape is of fixed size in either direction. - -\membersection{wxShape::GetFixedWidth} - -\constfunc{bool}{GetFixedWidth}{\void} - -Returns TRUE if the shape cannot be resized in the horizontal plane. - -\membersection{wxShape::GetFont} - -\constfunc{wxFont*}{GetFont}{\param{int}{ regionId = 0}} - -Gets the font for the specified text region. - -\membersection{wxShape::GetFunctor} - -\constfunc{wxString}{GetFunctor}{\void} - -Gets a string representing the type of the shape, to be used when -writing out shape descriptions to a file. This is overridden by -each derived shape class to provide an appropriate type string. By default, -"node\_image" is used for non-line shapes, and "arc\_image" for lines. - -\membersection{wxShape::GetId} - -\constfunc{long}{GetId}{\void} - -Returns the integer identifier for this shape. - -\membersection{wxShape::GetLinePosition}\label{wxshapegetlineposition} - -\func{int}{GetLinePosition}{\param{wxLineShape*}{ line}} - -Gets the zero-based position of {\it line} in the list of lines for this shape. - -\membersection{wxShape::GetLines} - -\constfunc{wxList\&}{GetLines}{\void} - -Returns a reference to the list of lines connected to this shape. - -\membersection{wxShape::GetMaintainAspectRatio}\label{wxshapegetmaintainaspectratio} - -\constfunc{bool}{GetMaintainAspectRatio}{\void} - -If returns TRUE, resizing the shape will not change the aspect ratio -(width and height will be in the original proportion). - -\membersection{wxShape::GetNumberOfAttachments}\label{wxshapegetnumberofattachments} - -\constfunc{int}{GetNumberOfAttachments}{\void} - -Gets the number of attachment points for this shape. - -\membersection{wxShape::GetNumberOfTextRegions} - -\constfunc{int}{GetNumberOfTextRegions}{\void} - -Gets the number of text regions for this shape. - -\membersection{wxShape::GetParent} - -\constfunc{wxShape *}{GetParent}{\void} - -Returns the parent of this shape, if it is part of a composite. - -\membersection{wxShape::GetPen} - -\constfunc{wxPen*}{GetPen}{\void} - -Returns the pen used for drawing the shape's outline. - -\membersection{wxShape::GetPerimeterPoint} - -\func{bool}{GetPerimeterPoint}{\param{double}{ x1}, \param{double}{ y1}, \param{double}{ x2}, \param{double}{ y2}, \param{double *}{x3}, \param{double *}{y3}} - -Gets the point at which the line from (x1, y1) to (x2, y2) hits the shape. Returns TRUE if the -line hits the perimeter. - -\membersection{wxShape::GetRegionId}\label{getregionid} - -\func{int}{GetRegionId}{\param{const wxString\& }{name}} - -Gets the region's identifier by name. This is {\it not} unique for within an entire composite, but -is unique for the image. - -\membersection{wxShape::GetRegionName}\label{getregionname} - -\func{wxString}{GetRegionName}{\param{int}{ regionId = 0}} - -Gets the region's name. A region's name can be used to uniquely determine a region within -an entire composite image hierarchy. See also \helpref{wxShape::SetRegionName}{wxshapesetregionname}. - -\membersection{wxShape::GetRegions}\label{getregions} - -\func{wxList\&}{GetRegions}{\void} - -Returns the list of wxShapeRegions. - -\membersection{wxShape::GetRotation} - -\constfunc{double}{GetRotatation}{\void} - -Returns the angle of rotation in radians. - -\membersection{wxShape::GetSensitivityFilter} - -\constfunc{void}{GetSensitivityFilter}{\void} - -Returns the sensitivity filter, a bitlist of values. See \helpref{wxShape::SetSensitivityFilter}{wxshapesetsensitivityfilter}. - -\membersection{wxShape::GetShadowMode} - -\constfunc{int}{SetShadowMode}{\void} - -Returns the shadow mode. See \helpref{wxShape::SetShadowMode}{wxshapesetshadowmode}. - -\membersection{wxShape::GetSpaceAttachments} - -\constfunc{bool}{GetSpaceAttachments}{\void} - -Indicates whether lines should be spaced out evenly at the point they touch the node (TRUE), or whether they -should join at a single point (FALSE). - -\membersection{wxShape::GetTextColour} - -\constfunc{wxString}{GetTextColour}{\param{int}{ regionId = 0}} - -Gets the colour for the specified text region. - -\membersection{wxShape::GetTopAncestor} - -\constfunc{wxShape *}{GetTopAncestor}{\void} - -Returns the top-most ancestor of this shape (the root of the composite). - -\membersection{wxShape::GetX} - -\constfunc{double}{GetX}{\void} - -Gets the x position of the centre of the shape. - -\membersection{wxShape::GetY} - -\constfunc{double}{GetY}{\void} - -Gets the y position of the centre of the shape. - -\membersection{wxShape::HitTest} - -\func{bool}{HitTest}{\param{double}{ x}, \param{double}{ y}, \param{int*}{ attachment}, \param{double*}{ distance}} - -Given a point on a canvas, returns TRUE if the point was on the shape, and returns -the nearest attachment point and distance from the given point and target. - -\membersection{wxShape::Insert} - -\func{void}{InsertInCanvas}{\param{wxShapeCanvas*}{ canvas}} - -Inserts the shape at the front of the shape list of {\it canvas}. - -\membersection{wxShape::IsHighlighted} - -\constfunc{bool}{IsHighlighted}{\void} - -Returns TRUE if the shape is highlighted. Shape highlighting is unimplemented. - -\membersection{wxShape::IsShown} - -\constfunc{bool}{IsShown}{\void} - -Returns TRUE if the shape is in a visible state, FALSE otherwise. Note -that this has nothing to do with whether the window is hidden or the -shape has scrolled off the canvas; it refers to the internal -visibility flag. - -\membersection{wxShape::MakeControlPoints} - -\func{void}{MakeControlPoints}{\void} - -Make a list of control points (draggable handles) appropriate to the shape. - -\membersection{wxShape::MakeMandatoryControlPoints} - -\func{void}{MakeMandatoryControlPoints}{\void} - -Make the mandatory control points. For example, the control point on a dividing line should -appear even if the divided rectangle shape's handles should not appear (because it is the child of -a composite, and children are not resizable). - -\membersection{wxShape::Move}\label{wxshapemove} - -\func{void}{Move}{\param{wxDC\&}{ dc}, \param{double}{ x1}, \param{double}{ y1}, \param{bool}{ display = TRUE}} - -Move the shape to the given position, redrawing if {\it display} is TRUE. - -\membersection{wxShape::MoveLineToNewAttachment}\label{wxshapemovelinetonewattachment} - -\func{void}{MoveLineToNewAttachment}{\param{wxDC\&}{ dc}, \param{wxLineShape*}{ toMove}, \param{double}{ x}, \param{double}{ y}} - -Move the given line (which must already be attached to the shape) to -a different attachment point on the shape, or a different order on the same attachment. - -Cals \helpref{wxShape::AttachmentSortTest}{wxshapeattachmentsorttest} and then \helpref{wxShapeEvtHandler::OnChangeAttachment}{wxshapeevthandleronchangeattachment}. - -\membersection{wxShape::MoveLinks} - -\func{void}{MoveLinks}{\param{wxDC\&}{ dc}} - -Redraw all the lines attached to the shape. - -\membersection{wxShape::NameRegions} - -\func{void}{NameRegions}{\param{const wxString\& }{parentName = ``"}} - -Make unique names for all the regions in a shape or composite shape. - -\membersection{wxShape::Rotate} - -\func{void}{Rotate}{\param{double }{x}, \param{double }{y}, \param{double }{theta}} - -Rotate about the given axis by the given amount in radians (does nothing -for most shapes). But even non-rotating shapes should record their -notional rotation in case it's important (e.g. in dog-leg code). - -\membersection{wxShape::ReadConstraints} - -\func{void}{ReadConstraints}{\param{wxExpr *}{clause}, \param{wxExprDatabase *}{database}} - -If the shape is a composite, it may have constraints that need to be read in in a separate pass. - -\membersection{wxShape::ReadAttributes} - -\func{void}{ReadAttributes}{\param{wxExpr*}{ clause}} - -Reads the attributes (data member values) from the given expression. - -\membersection{wxShape::ReadRegions} - -\func{void}{ReadRegions}{\param{wxExpr *}{clause}} - -Reads in the regions. - -\membersection{wxShape::Recentre} - -\func{void}{Recentre}{\void} - -Does recentring (or other formatting) for all the text regions for this shape. - -\membersection{wxShape::RemoveFromCanvas} - -\func{void}{RemoveFromCanvas}{\param{wxShapeCanvas*}{ canvas}} - -Removes the shape from the canvas. - -\membersection{wxShape::ResetControlPoints} - -\func{void}{ResetControlPoints}{\void} - -Resets the positions of the control points (for instance when the -shape's shape has changed). - -\membersection{wxShape::ResetMandatoryControlPoints} - -\func{void}{ResetMandatoryControlPoints}{\void} - -Reset the mandatory control points. For example, the control point on a dividing line should -appear even if the divided rectangle shape's handles should not appear (because it is the child of -a composite, and children are not resizable). - -\membersection{wxShape::Recompute}\label{wxshaperecompute} - -\func{bool}{Recompute}{\void} - -Recomputes any constraints associated with the shape (normally -applicable to wxCompositeShapes only, but harmless for other -classes of shape). - -\membersection{wxShape::RemoveLine} - -\func{void}{RemoveLine}{\param{wxLineShape*}{ line}} - -Removes the given line from the shape's list of attached lines. - -\membersection{wxShape::Select}\label{wxshapeselect} - -\func{void}{Select}{\param{bool}{ select = TRUE}} - -Selects or deselects the given shape, drawing or erasing control points -(handles) as necessary. - -\membersection{wxShape::Selected}\label{wxshapeselected} - -\constfunc{bool}{Selected}{\void} - -TRUE if the shape is currently selected. - -\membersection{wxShape::SetAttachmentMode}\label{wxshapesetattachmentmode} - -\func{void}{SetAttachmentMode}{\param{bool}{ flag}} - -Sets the attachment mode to TRUE or FALSE. If TRUE, attachment points -will be significant when drawing lines to and from this shape. -If FALSE, lines will be drawn as if to the centre of the shape. - -\membersection{wxShape::SetBrush} - -\func{void}{SetBrush}{\param{wxBrush *}{brush}} - -Sets the brush for filling the shape's shape. - -\membersection{wxShape::SetCanvas}\label{wxshapesetcanvas} - -\func{void}{SetCanvas}{\param{wxShapeCanvas*}{ theCanvas}} - -Identical to \helpref{wxShape::Attach}{wxshapesetcanvas}. - -\membersection{wxShape::SetCentreResize} - -\func{void}{SetCentreResize}{\param{bool}{ cr}} - -Specify whether the shape is to be resized from the centre (the centre stands still) or from the corner or side -being dragged (the other corner or side stands still). - -\membersection{wxShape::SetClientData} - -\func{void}{SetClientData}{\param{wxObject *}{clientData}} - -Sets the client data. - -\membersection{wxShape::SetDefaultRegionSize}\label{setdefaultregionsize} - -\func{void}{SetDefaultRegionSize}{\void} - -Set the default region to be consistent with the shape size. - -\membersection{wxShape::SetDisableLabel} - -\func{void}{SetDisableLabel}{\param{bool}{ flag}} - -Set {\it flag} to TRUE to stop the default region being shown, FALSE otherwise. - -\membersection{wxShape::SetDraggable} - -\func{void}{SetDraggable}{\param{bool}{ drag}, \param{bool}{ recursive = FALSE}} - -Sets the shape to be draggable or not draggable. - -\membersection{wxShape::SetDrawHandles} - -\func{void}{SetDrawHandles}{\param{bool}{ drawH}} - -Sets the {\it drawHandles} flag for this shape and all descendants. If {\it drawH} is TRUE (the default), -any handles (control points) will be drawn. Otherwise, the handles will not be drawn. - -\membersection{wxShape::SetEventHandler} - -\func{void}{GetEventHandler}{\param{wxShapeEvtHandler *}{handler}} - -Sets the event handler for this shape. - -\membersection{wxShape::SetFixedSize} - -\func{void}{SetFixedSize}{\param{bool}{ x}, \param{bool}{ y}} - -Sets the shape to be of the given, fixed size. - -\membersection{wxShape::SetFont} - -\func{void}{SetFont}{\param{wxFont *}{font}, \param{int}{ regionId = 0}} - -Sets the font for the specified text region. - -\membersection{wxShape::SetFormatMode}\label{setformatmode} - -\func{void}{SetFormatMode}{\param{int}{ mode}, \param{int}{ regionId = 0}} - -Sets the format mode of the default text region. The argument can be a bit list -of the following: - -\begin{description}\itemsep=0pt -\item[FORMAT\_NONE] No formatting. -\item[FORMAT\_CENTRE\_HORIZ] Horizontal centring. -\item[FORMAT\_CENTRE\_VERT] Vertical centring. -\end{description} - -\membersection{wxShape::SetHighlight} - -\func{void}{SetHighlight}{\param{bool}{ hi}, \param{bool}{ recurse = FALSE}} - -Sets the highlight for a shape. Shape highlighting is unimplemented. - -\membersection{wxShape::SetId} - -\func{void}{SetId}{\param{long}{ id}} - -Set the integer identifier for this shape. - -\membersection{wxShape::SetMaintainAspectRatio}\label{wxshapesetmaintainaspectratio} - -\func{void}{SetMaintainAspectRatio}{\param{bool}{ flag}} - -If the argument is TRUE, tells the shape that resizes should not change the aspect ratio -(width and height should be in the original proportion). - -\membersection{wxShape::SetPen} - -\func{void}{SetPen}{\param{wxPen *}{pen}} - -Sets the pen for drawing the shape's outline. - -\membersection{wxShape::SetRegionName}\label{wxshapesetregionname} - -\func{void}{SetRegionName}{\param{const wxString\& }{name}, \param{int}{ regionId = 0}} - -Sets the name for this region. The name for a region is unique within the scope of the whole -composite, whereas a region id is unique only for a single image. - -\membersection{wxShape::SetSensitivityFilter}\label{wxshapesetsensitivityfilter} - -\func{void}{SetSensitivityFilter}{\param{int}{ sens=OP\_ALL}, \param{bool}{ recursive = FALSE}} - -Sets the shape to be sensitive or insensitive to specific mouse operations. - -{\it sens} is a bitlist of the following: - -\begin{itemize}\itemsep=0pt -\item OP\_CLICK\_LEFT -\item OP\_CLICK\_RIGHT -\item OP\_DRAG\_LEFT -\item OP\_DRAG\_RIGHT -\item OP\_ALL (equivalent to a combination of all the above). -\end{itemize} - -\membersection{wxShape::SetShadowMode}\label{wxshapesetshadowmode} - -\func{void}{SetShadowMode}{\param{int}{ mode}, \param{bool}{ redraw = FALSE}} - -Sets the shadow mode (whether a shadow is drawn or not). {\it mode} can be one of -the following: - -\begin{description}\itemsep=0pt -\item[SHADOW\_NONE] No shadow (the default). -\item[SHADOW\_LEFT] Shadow on the left side. -\item[SHADOW\_RIGHT] Shadow on the right side. -\end{description} - -\membersection{wxShape::SetSize} - -\func{void}{SetSize}{\param{double}{ x}, \param{double}{ y}, \param{bool}{ recursive = TRUE}} - -Sets the shape's size. - -\membersection{wxShape::SetSpaceAttachments} - -\func{void}{SetSpaceAttachments}{\param{bool}{ sp}} - -Indicate whether lines should be spaced out evenly at the point they touch the node (TRUE), or whether they -should join at a single point (FALSE). - -\membersection{wxShape::SetTextColour} - -\func{void}{SetTextColour}{\param{const wxString\& }{colour}, \param{int}{ regionId = 0}} - -Sets the colour for the specified text region. - -\membersection{wxShape::SetX} - -\func{void}{SetX}{\param{double}{ x}} - -Sets the {\it x} position of the shape. - -\membersection{wxShape::SetX} - -\func{void}{SetY}{\param{double}{ y}} - -Sets the {\it y} position of the shape. - -\membersection{wxShape::SpaceAttachments} - -\func{void}{SpaceAttachments}{\param{bool}{ sp}} - -Sets the spacing mode: if TRUE, lines at the same attachment point will be -spaced evenly across that side of the shape. If false, all lines at the -same attachment point will emanate from the same point. - -\membersection{wxShape::Show} - -\func{void}{Show}{\param{bool}{ show}} - -Sets a flag indicating whether the shape should be drawn. - -\membersection{wxShape::Unlink} - -\func{void}{Unlink}{\void} - -If the shape is a line, unlinks the nodes attached to the shape, removing itself from the list of -lines for each of the `to' and `from' nodes. - -\membersection{wxShape::WriteAttributes} - -\func{void}{WriteAttributes}{\param{wxExpr *}{clause}} - -Writes the shape's attributes (data member values) into the given expression. - -\membersection{wxShape::WriteRegions} - -\func{void}{WriteRegions}{\param{wxExpr *}{clause}} - -Writes the regions. - -\section{\class{wxShapeCanvas}}\label{wxshapecanvas} - -A canvas for drawing diagrams on. - -\wxheading{Derived from} - -wxScrolledWindow - -\wxheading{See also} - -\helpref{wxDiagram}{wxdiagram} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxShapeCanvas::wxShapeCanvas} - -\func{}{wxShapeCanvas}{\param{wxWindow*}{ parent = NULL}, \param{wxWindowID}{ id = -1}, - \param{const wxPoint\&}{ pos = wxDefaultPosition}, \param{const wxSize\&}{ size = wxDefaultSize}, - \param{long}{ style = wxBORDER}} - -Constructor. - -\membersection{wxShapeCanvas::\destruct{wxShapeCanvas}} - -\func{}{\destruct{wxShapeCanvas}}{\void} - -Destructor. - -\membersection{wxShapeCanvas::AddShape} - -\func{void}{AddShape}{\param{wxShape *}{shape}, \param{wxShape *}{addAfter = NULL}} - -Adds a shape to the diagram. If {\it addAfter} is non-NULL, the shape will be added after this -one. - -\membersection{wxShapeCanvas::FindShape} - -\func{wxShape *}{FindShape}{\param{double}{ x1}, \param{double}{ y}, \param{int *}{attachment}, \param{wxClassInfo *}{info = NULL}, - \param{wxShape *}{notImage = NULL}} - -Find a shape under this mouse click. Returns the shape (or NULL), and the nearest attachment point. - -If {\it info} is non-NULL, a shape whose class which is a descendant of the desired class is found. - -If {\it notImage} is non-NULL, shapes which are descendants of {\it notImage} are ignored. - -\membersection{wxShapeCanvas::FindFirstSensitiveShape} - -\func{wxShape *}{FindFirstSensitiveShape}{\param{double}{ x1}, \param{double}{ y}, \param{int *}{attachment}, \param{int}{ op}} - -Finds the first sensitive shape whose sensitivity filter matches {\it op}, working up the hierarchy of composites until -one (or none) is found. - -\membersection{wxShapeCanvas::GetDiagram} - -\constfunc{wxDiagram*}{GetDiagram}{\void} - -Returns the canvas associated with this diagram. - -\membersection{wxShapeCanvas::GetGridSpacing} - -\constfunc{double}{GetGridSpacing}{\void} - -Returns the grid spacing. - -\membersection{wxShapeCanvas::GetMouseTolerance} - -\constfunc{int}{GetMouseTolerance}{\void} - -Returns the tolerance within which a mouse move is ignored. - -\membersection{wxShapeCanvas::GetShapeList} - -\constfunc{wxList*}{GetShapeList}{\void} - -Returns a pointer to the internal shape list. - -\membersection{wxShapeCanvas::GetQuickEditMode} - -\constfunc{bool}{GetQuickEditMode}{\void} - -Returns quick edit mode for the associated diagram. - -\membersection{wxShapeCanvas::InsertShape} - -\func{void}{InsertShape}{\param{wxShape*}{ shape}} - -Inserts a shape at the front of the shape list. - -\membersection{wxShapeCanvas::OnBeginDragLeft}\label{wxshapecanvasonbegindragleft} - -\func{void}{OnBeginDragLeft}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when the start of a left-button drag event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -See also \helpref{wxShapeCanvas::OnDragLeft}{wxshapecanvasondragleft}, \helpref{wxShapeCanvas::OnEndDragLeft}{wxshapecanvasonenddragleft}. - -\membersection{wxShapeCanvas::OnBeginDragRight}\label{wxshapecanvasonbegindragright} - -\func{void}{OnBeginDragRight}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when the start of a right-button drag event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -See also \helpref{wxShapeCanvas::OnDragRight}{wxshapecanvasondragright}, \helpref{wxShapeCanvas::OnEndDragRight}{wxshapecanvasonenddragright}. - -\membersection{wxShapeCanvas::OnEndDragLeft}\label{wxshapecanvasonenddragleft} - -\func{void}{OnEndDragLeft}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when the end of a left-button drag event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -See also \helpref{wxShapeCanvas::OnDragLeft}{wxshapecanvasondragleft}, \helpref{wxShapeCanvas::OnBeginDragLeft}{wxshapecanvasonbegindragleft}. - -\membersection{wxShapeCanvas::OnEndDragRight}\label{wxshapecanvasonenddragright} - -\func{void}{OnEndDragRight}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when the end of a right-button drag event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -See also \helpref{wxShapeCanvas::OnDragRight}{wxshapecanvasondragright}, \helpref{wxShapeCanvas::OnBeginDragRight}{wxshapecanvasonbegindragright}. - -\membersection{wxShapeCanvas::OnDragLeft}\label{wxshapecanvasondragleft} - -\func{void}{OnDragLeft}{\param{bool}{ draw}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when a left-button drag event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it draw} is alternately TRUE and FALSE, to assist drawing and erasing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -See also \helpref{wxShapeCanvas::OnBeginDragLeft}{wxshapecanvasonbegindragleft}, \helpref{wxShapeCanvas::OnEndDragLeft}{wxshapecanvasonenddragleft}. - -\membersection{wxShapeCanvas::OnDragRight}\label{wxshapecanvasondragright} - -\func{void}{OnDragRight}{\param{bool}{ draw}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when a right-button drag event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it draw} is alternately TRUE and FALSE, to assist drawing and erasing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -See also \helpref{wxShapeCanvas::OnBeginDragRight}{wxshapecanvasonbegindragright}, \helpref{wxShapeCanvas::OnEndDragRight}{wxshapecanvasonenddragright}. - -\membersection{wxShapeCanvas::OnLeftClick}\label{wxshapecanvasonleftclick} - -\func{void}{OnLeftClick}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when a left click event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -\membersection{wxShapeCanvas::OnRightClick}\label{wxshapecanvasonrightclick} - -\func{void}{OnRightClick}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}} - -Called when a right click event on the canvas background is detected by OnEvent. You may override this member; -by default it does nothing. - -{\it keys} is a bit list of the following: - -\begin{itemize}\itemsep=0pt -\item KEY\_SHIFT -\item KEY\_CTRL -\end{itemize} - -\membersection{wxShapeCanvas::Redraw} - -\func{void}{Redraw}{\void} - -Calls wxDiagram::Redraw. - -\membersection{wxShapeCanvas::RemoveShape} - -\func{void}{RemoveShape}{\param{wxShape *}{shape}} - -Calls wxDiagram::RemoveShape. - -\membersection{wxShapeCanvas::SetDiagram} - -\func{void}{SetDiagram}{\param{wxDiagram *}{diagram}} - -Sets the diagram associated with this diagram. - -\membersection{wxShapeCanvas::Snap} - -\func{void}{Snap}{\param{double *}{x}, \param{double *}{y}} - -Calls wxDiagram::Snap. - - - -\section{\class{wxShapeEvtHandler}}\label{wxshapeevthandler} - -wxShapeEvtHandler is a class from which wxShape (and therefore all shape classes) are derived. -A wxShape also contains a pointer to its current wxShapeEvtHandler. Event handlers -can be swapped in and out, altering the behaviour of a shape. This allows, for example, -a range of behaviours to be redefined in one class, rather than requiring -each shape class to be subclassed. - -\wxheading{Derived from} - -wxObject - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxShapeEvtHandler::m\_handlerShape} - -\member{wxShape*}{m\_handlerShape} - -Pointer to the shape associated with this handler. - -\membersection{wxShapeEvtHandler::m\_previousHandler} - -\member{wxShapeEvtHandler*}{m\_previousHandler} - -Pointer to the previous handler. - -\membersection{wxShapeEvtHandler::wxShapeEvtHandler} - -\func{void}{wxShapeEvtHandler}{\param{wxShapeEvtHandler *}{previous = NULL}, \param{wxShape *}{shape = NULL}} - -Constructs a new event handler. - -\membersection{wxShapeEvtHandler::\destruct{wxShapeEvtHandler}} - -\func{void}{\destruct{wxShapeEvtHandler}}{\void} - -Destructor. - -\membersection{wxShapeEvtHandler::CopyData}\label{wxshapeevthandlercopydata} - -\func{void}{CopyData}{\param{wxShapeEvtHandler\&}{ handler}} - -A virtual function to copy the data from this object to {\it handler}. Override if you -derive from wxShapeEvtHandler and have data to copy. - -\membersection{wxShapeEvtHandler::CreateNewCopy}\label{wxshapeevthandlercreatenewcopy} - -\func{wxShapeEvtHandler*}{CreateNewCopy}{\void} - -Creates a new event handler object of the same class as this object, and then -calls \helpref{wxShapeEvtHandler::CopyData}{wxshapeevthandlercopydata}. - -\membersection{wxShapeEvtHandler::GetPreviousHandler}\label{wxshapeevthandlergetprevioushandler} - -\constfunc{wxShapeEvtHandler*}{GetPreviousHandler}{\void} - -Returns the previous handler. - -\membersection{wxShapeEvtHandler::GetShape}\label{wxshapeevthandlergetshape} - -\constfunc{wxShape*}{GetShape}{\void} - -Returns the shape associated with this handler. - -\membersection{wxShapeEvtHandler::OnBeginDragLeft} - -\func{void}{OnBeginDragLeft}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when the user is beginning to drag using the left mouse button. - -\membersection{wxShapeEvtHandler::OnBeginDragRight} - -\func{void}{OnBeginDragRight}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when the user is beginning to drag using the right mouse button. - -\membersection{wxShapeEvtHandler::OnBeginSize} - -\func{void}{OnBeginSize}{\param{double}{ width}, \param{double}{ height}} - -Called when a shape starts to be resized. - -\membersection{wxShapeEvtHandler::OnChangeAttachment}\label{wxshapeevthandleronchangeattachment} - -\func{void}{OnChangeAttachment}{\param{int}{ attachment}, \param{wxLineShape*}{ line}, \param{wxList\&}{ ordering}} - -Override this to prevent or intercept line reordering. wxShape's implementation of this function -calls \helpref{wxShape::ApplyAttachmentOrdering}{wxshapeapplyattachmentordering} to apply -the new ordering. - -\membersection{wxShapeEvtHandler::OnDragLeft} - -\func{void}{OnDragLeft}{\param{bool}{ draw}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called twice when the shape is being dragged, once to allow erasing the old -image, and again to allow drawing at the new position. - -\membersection{wxShapeEvtHandler::OnDragRight} - -\func{void}{OnDragRight}{\param{bool}{ draw}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called twice when the shape is being dragged, once to allow erasing the old -image, and again to allow drawing at the new position. - -\membersection{wxShapeEvtHandler::OnDraw} - -\func{void}{OnDraw}{\param{wxDC\&}{ dc}} - -Defined for each class to draw the main graphic, but -not the contents. - -\membersection{wxShapeEvtHandler::OnDrawContents} - -\func{void}{OnDrawContents}{\param{wxDC\&}{ dc}} - -Defined for each class to draw the contents of the -shape, such as text. - -\membersection{wxShapeEvtHandler::OnDrawControlPoints} - -\func{void}{OnDrawControlPoints}{\param{wxDC\&}{ dc}} - -Called when the shape's control points (handles) should -be drawn. - -\membersection{wxShapeEvtHandler::OnDrawOutline} - -\func{void}{OnDrawOutline}{\param{wxDC\&}{ dc}} - -Called when the outline of the shape should be drawn. - -\membersection{wxShapeEvtHandler::OnEndDragLeft} - -\func{void}{OnEndDragLeft}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when the user is stopping dragging using the left mouse button. - -\membersection{wxShapeEvtHandler::OnEndDragRight} - -\func{void}{OnEndDragRight}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when the user is stopping dragging using the right mouse button. - -\membersection{wxShapeEvtHandler::OnEndSize} - -\func{void}{OnEndSize}{\param{double}{ width}, \param{double}{ height}} - -Called after a shape is resized. - -\membersection{wxShapeEvtHandler::OnErase} - -\func{void}{OnErase}{\param{wxDC\&}{ dc}} - -Called when the whole shape should be erased. - -\membersection{wxShapeEvtHandler::OnEraseContents} - -\func{void}{OnEraseContents}{\param{wxDC\&}{ dc}} - -Called when the contents should be erased. - -\membersection{wxShapeEvtHandler::OnEraseControlPoints} - -\func{void}{OnEraseControlPoints}{\param{wxDC\&}{ dc}} - -Called when the shape's control points (handles) should -be erased. - -\membersection{wxShapeEvtHandler::OnHighlight} - -\func{void}{OnHighlight}{\param{wxDC\&}{ dc}} - -Called when the shape should be highlighted. - -\membersection{wxShapeEvtHandler::OnLeftClick} - -\func{void}{OnLeftClick}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys =0}, \param{int}{ attachment = 0}} - -Called when the shape receives a left mouse click event. - -\membersection{wxShapeEvtHandler::OnMoveLink} - -\func{void}{OnMoveLink}{\param{wxDC\&}{ dc}, \param{bool}{ moveControlPoints=TRUE}} - -Called when the line attached to an shape need to be repositioned, -because the shape has moved. - -\membersection{wxShapeEvtHandler::OnMoveLinks} - -\func{void}{OnMoveLinks}{\param{wxDC\&}{ dc}} - -Called when the lines attached to an shape need to be repositioned, -because the shape has moved. - -\membersection{wxShapeEvtHandler::OnMovePost} - -\func{bool}{OnMovePost}{\param{wxDC\&}{ dc}, \param{double}{ x}, \param{double}{ y}, \param{double}{ oldX}, \param{double}{ oldY}, \param{bool}{ display = TRUE}} - -Called just after the shape receives a move request. - -\membersection{wxShapeEvtHandler::OnMovePre} - -\func{bool}{OnMovePre}{\param{wxDC\&}{ dc}, \param{double}{ x}, \param{double}{ y}, \param{double}{ oldX}, \param{double}{ oldY}, \param{bool}{ display = TRUE}} - -Called just before the shape receives a move request. Returning TRUE -allows the move to be processed; returning FALSE vetoes the move. - -\membersection{wxShapeEvtHandler::OnRightClick} - -\func{void}{OnRightClick}{\param{double}{ x}, \param{double}{ y}, \param{int}{ keys = 0}, \param{int}{ attachment = 0}} - -Called when the shape receives a mouse mouse click event. - -\membersection{wxShapeEvtHandler::OnSize} - -\func{void}{OnSize}{\param{double}{ x}, \param{double}{ y}} - -Called when the shape receives a resize request. - -\membersection{wxShapeEvtHandler::OnSizingBeginDragLeft} - -\func{void}{OnSizingBeginDragLeft}{\param{wxControlPoint*}{ pt}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when a sizing drag is beginning. - -\membersection{wxShapeEvtHandler::OnSizingDragLeft} - -\func{void}{OnSizingDragLeft}{\param{wxControlPoint*}{ pt}, \param{bool}{ draw}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when a sizing drag is occurring. - -\membersection{wxShapeEvtHandler::OnSizingEndDragLeft} - -\func{void}{OnSizingEndDragLeft}{\param{wxControlPoint*}{ pt}, \param{double}{ x}, \param{double}{ y}, \param{int}{ keys=0}, \param{int}{ attachment = 0}} - -Called when a sizing drag is ending. - -\membersection{wxShapeEvtHandler::SetPreviousHandler}\label{wxshapeevthandlersetprevioushandler} - -\func{void}{SetPreviousHandler}{\param{wxShapeEvtHandler*}{ handler}} - -Sets the previous handler. - -\membersection{wxShapeEvtHandler::SetShape}\label{wxshapeevthandlersetshape} - -\func{void}{SetShape}{\param{wxShape*}{ shape}} - -Sets the shape for this handler. - -\section{\class{wxTextShape}}\label{wxtextshape} - -As wxRectangleShape, but only the text is displayed. - -\wxheading{Derived from} - -\helpref{wxRectangleShape}{wxrectangleshape} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTextShape::wxTextShape} - -\func{void}{wxTextShape}{\param{double}{ width = 0.0}, \param{double}{ height = 0.0}} - -Constructor. - -\membersection{wxTextShape::\destruct{wxTextShape}} - -\func{void}{\destruct{wxTextShape}}{\void} - -Destructor. - -\section{Functions}\label{functions} - -These are the OGL functions. - -\membersection{::wxOGLInitialize} - -\func{void}{wxOGLInitialize}{\void} - -Initializes OGL. - -\membersection{::wxOGLCleanUp} - -\func{void}{wxOGLCleanUp}{\void} - -Cleans up OGL. - diff --git a/utils/ogl/docs/contents.gif b/utils/ogl/docs/contents.gif deleted file mode 100644 index 3dddfa3dd5f0c652e8b27cd6c29e1fdd49ced5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVG0Pz3-zrVld=jU&4Z(9HWEC2ui06_p40008OjE||y?GK}z zO&EZ)-n{z{a)K3v=81;mmA0S4Fj_r^UyThZDG{h6k9m zHI_(7spd!5_$SH6m{Q-cu3}3Ku`2^Nfa3dZ+VyHW%gtsZ`jV7k@%j8Ij}~W) zc{NUP6)X3OWa^|{8nl?rh|gZ1@{(qofnsWu+nmFHSnaq>lB41zSVC9`a)_v*xHx0L S5h*!IS!o$ynW>ps0028gDN7ju diff --git a/utils/ogl/docs/intro.tex b/utils/ogl/docs/intro.tex deleted file mode 100644 index 6d208fff9b..0000000000 --- a/utils/ogl/docs/intro.tex +++ /dev/null @@ -1,47 +0,0 @@ -\chapter{Introduction} -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -Object Graphics Library (\ogl) is a C++ library supporting the creation and -manipulation of simple and complex graphic images on a canvas. - -It can be found in the directory {\tt utils/ogl/src} in the -wxWindows distribution. The file {\tt ogl.h} must be included to make use -of the library. - -Please see \helpref{OGL overview}{ogloverview} for a general description how the object library works. For details, -please see the \helpref{class reference}{classref}. - -\section{File structure} - -These are the files that comprise the \ogl\ library. - -\begin{description}\itemsep=0pt -\item[basic.h] Header for basic objects such as wxShape and wxRectangleShape. -\item[basic.cpp] Basic objects implementation (1). -\item[basic2.cpp] Basic objects implementation (2). -\item[bmpshape.h] wxBitmapShape class header. -\item[bmpshape.cpp] wxBitmapShape implementation. -\item[canvas.h] wxShapeCanvas class header. -\item[canvas.cpp] wxShapeCanvas class implementation. -\item[composit.h] Composite object class header. -\item[composit.cpp] Composite object class implementation. -\item[constrnt.h] Constraint classes header. -\item[constrnt.cpp] Constraint classes implementation. -\item[divided.h] Divided object class header. -\item[divided.cpp] Divided object class implementation. -\item[drawn.h] Drawn (metafile) object class header. -\item[drawn.cpp] Drawn (metafile) object class implementation. -\item[graphics.h] Main include file. -\item[lines.h] wxLineShape class header. -\item[lines.cpp] wxLineShape class implementation. -\item[misc.h] Miscellaneous graphics functions header. -\item[misc.cpp] Miscellaneous graphics functions implementation. -\item[ogldiag.h] wxDiagram class header. -\item[ogldiag.cpp] wxDiagram implementation. -\item[mfutils.h] Metafile utilities header. -\item[mfutils.cpp] Metafile utilities implementation. -\end{description} - - diff --git a/utils/ogl/docs/ogl.hpj b/utils/ogl/docs/ogl.hpj deleted file mode 100644 index 7f8c9efa46..0000000000 --- a/utils/ogl/docs/ogl.hpj +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -BMROOT=d:\wx2\wxwind~1\utils\ogl\docs ; Assume that bitmaps are where the source is -TITLE=OGL Manual -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -ogl.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`ogl.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/utils/ogl/docs/ogl.tex b/utils/ogl/docs/ogl.tex deleted file mode 100644 index e02dba2772..0000000000 --- a/utils/ogl/docs/ogl.tex +++ /dev/null @@ -1,46 +0,0 @@ -\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report} -\newcommand{\ogl}[0]{{OGL}}% -\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 -\parindent 0pt -\parskip 11pt -\title{Manual for Object Graphics Library 3.0} -\author{Julian Smart} -\date{September 1998} - -\makeindex -\begin{document} -\maketitle - -\pagestyle{fancyplain} -\bibliographystyle{plain} -\pagenumbering{roman} -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}} -\setfooter{\thepage}{}{}{}{}{\thepage} -\tableofcontents% - -\input{intro.tex} -% -\input{sample.tex} -% -\input{classes.tex} -% -\input{topics.tex} -% -\input{bugs.tex} -% -\input{changes.tex} - -% -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}} -\setfooter{\thepage}{}{}{}{}{\thepage}% -\printindex -\end{document} diff --git a/utils/ogl/docs/ogledit.bmp b/utils/ogl/docs/ogledit.bmp deleted file mode 100644 index e7cf417cf5d40022505909a5653ac5f30b6aa6e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 87670 zcmeI5&1x*U8HQ`%fH@p+XKo>@A)DO75DrWT1n+VQA*-Yb!*uWZ1Onr%e74?ZIV$>276a|zfYwqNhMWDDoOR@mfh8=pDydE=aWjRc31!5&p-U-tBTSOczlD$ z|1kRrkFTnCw79C8^_2Zh^PqfH{mj4B&p%TR5BwnW%P+rFpFVxUlA3?3x~3c+_@PBK zc?0QqyYU2vr^B|>@y##}RmhhWrn3M#9A58kUw^cD+=~i&#kKU)X@%(^ihekpZeQ>0 zj9fvFS1(jeKdn$Bip)jF1R`Io9yP`lYCIiUMu>EJygIDh;}t@XWV&N@-!ZP#W7RO8 zoUvMUj4Q2=AYhLNXRL0=b}}OV^v*k-XnSe7si#hs&)M)+Eudjy6tvV^vSo)*bJGreSYL?iuUp2>KmH|;No!` zCNCZ@9@laN#9K9&c6BYjT;;rYbRC&>Ex&kNmoHaoFCJY-Cdcw!j-B#87vu4K&c?Wy z{_3vICUPkrVKJM?rFbNXxkN6+BRk9`av>gt!b~EU;juB8N#rs-N`dk@?P+8Y9$SBH zCMo11Ja+oJTtdnvcvS2u*>sRg@TkgD^QkBo;8Am@%_M?cfJa@OK9_`YevgJZV>Sik z{2onl=KOTZ***5W^%hKqoZI8MudTmiBIVp3EkMad&g{|3W8t1;a%PWK94q()%6UCH zXsqP%kn?(Uz&OxjDQETQWO1-ZLeA>ZiQW10SKg=&*KQi;1LLeoX_J3#K<8Cp`6X*D8tAx2!Nc;BM{CNCKV>t4%6yP z_kTH8XWR;Aha16+9t3a7xjZt#j;1@%oRQnnyR7ssB=S6}OeS(Jj|{-?s}dt|sf_$K z9Ulg7Spyr+e@Yu7KJ>DcBe**gFM zh4Sj_BNHG(9SMBSb&i*~7td558G+9oR$bJtCev8YRUbzg(rK(`^EeiZ=`_yhaX1(g zYMjyIu*ifO=kz!vGNr~jJ!2?##bABX=lpG>=?{TXXu|WdUh-qT)EA&IoD;!erRy-bG;^r+TF$v9Rghb0n9ca*xEL`)E_fgZKG z*g|&Y>F35I(kohfZAROV4P4t`WG2j`B~l4=pb+B{sep0^@>wr**Z*@4xm+u7n%f0l z2e4{HiM`q~V~|IOMyE(Wi3BMiBnmCjl7w`j3^NAR zM~6m-NMDIW!vZn8GgKSJ778T324Fa;N7>)wV5m01%B4_uFAA4x+Ct*n9LCbVJ7)eK2Q`XdJ-`2q zf0Rl^WZ6#xc^(6#_51eq{vJITaltU3L@u&`91B!&2wIWe9!Elzf)!V{Keq=jQ-&bD zG%6y!J&rS;-xpw{v#6iO!$FEn=n;tb_j13PG}3N8HFhGsJ&sgIG&+2uD!}Ngu@&j< zahx%uI(66H8e5UR9!INVuREufD`h^M(bwa082v+42J8AfhBIC~cJ*j6u^LbvWuxQk zakN=AhgaRYr!-(OYu z*;o5!IS(;|Jw6CJD`V+cC0le70V)4n9l(npdd3s4!|HI4lJP+VDzrX)5qYdBTOT_{ zMp9U@#$*hrkB!GK)rSvwfDRMNQ`}P9^WX}vq|47---r=o0QNvgAs$smB~Rf>sU%~CZvmqAhT0g>{(u(W$ccGE z=XEV(h)03qoR(xHNiwl9IYZCg0uieL9-VN_in$n7JkEDlCIzFf$MYCrsqy2vhcvJt z%;Pc`(OiZxo@=lJoWL=pA#wU{J20yFZJ;~%(EL{kpL4TLBKiOU^>Iif-vlQso7{N>V?ccz5J|PMP_#xchIn*~ zB)&q?8o?Ok(N!Zwqk5L%l=sQXr zhBJnFtcO3RQzTjgD&$_+5AfY4Xboo!^oUPCnOAc(E`_(NL5Xwz!P=B2)FU9Z z?#_dTIP$;!X<)rYHlbPvd&G%QfqXE<>BwoI%)R)Elw}L|2uONIm6GlA$a2SK!4l4U zij*2-JW^>f-bS*OyF_=#Ph@+vV?5f>x@84UAYLL{jj;$ytxbak<(+AXbsm` z=k%DPa~`2F@cuai72Ccl;;7qqB$vkQFt5kt(Hf&Mx5v;^nbhTaj?tL8KBA~mrE(!g zY0U01?Fl6AfMu?a5E6InttJEeaB?46&yV7d#2tKDK;=31Xyx~qE?Q#`RsoNxqBT}y z{&tmOEwUadVM^IpjrrSEE@*V|6wGLiWjrQ{*7)O8qCP^#^k|LOSjgjq$|R#TUSpy9 zh@QZNG7{zljm11pDkK=E9HK(?abhW_9ibDa!x2|!PsaO{dy0{CX;QRK(O9fL;#f_n zQq!8{avmqtsR>7i;;>wOoY1yTiqu^1BRgtwq>sp#wS_3@F}AxiQDeFDqd2ND#ht3L zXnh1`OnGCDOB<(@DcP>l-wQtr#2gm-OI<2kAMtmCtpvZIgKKiS$J;K+8?*FYF>yg? zcW1grqdsXjh#F@{8Icr$Ei zF7$Sl;PCC!nHl|0ASoi%JU;^N4kJktnbD*F2_!|Nn&S@Eh<}I7&FJaJb2CeLYKzSC zBWYxjSv^v;dN}gfM1yh6nDr6=)QSX=c^T{7`7?U2{Ks6AT_TNUyDBu2$jpqmVLLv< z{4|tyi8Pw$$6}22IAfCY28FL#A4|n5{}bwnM@RJvUToIKLTwIxaqj)D5Tof4U4R1T z4ydT`MHqz`O^;>z02FTcLX$#_J&#>q&ef(*T`rqTM9fgL`Xsjtu7BnWdLALN>60JP z+sTo-vKM0Pd%TrnEA#yi}Yp-=0UUj@e_iy+56{ zZNSXj^-(LTol)B)W~Mx&ULUnGtBiZT$KVz2aK`r^e-DYTJ9xSQ)G9es`cd$CxMez8`Z<~kmq*;U4k~fyGrwCA zX#2#B;jx0k#|n(q<29bI#XR+ZihJaHD~ecE!qqIl&%D71!l&z}3e&22e!?@QWQ+mz zk^JH21GvX2ZXJoc4yKA#VtnKu@tmA7pgwY|Llg0kQy+KgHipMX#HwU`#7Kl{CPp?{ zJ<`ZY6v?cQc^JD`ZG2vnMQOu=WHjpI zUYvUP#wIGG8f+8uMyx`ZBjxfa_e-)i!>D^~G~!~*mKgQ=xJ|~3$BE60_2uQ;9NlC4 zRkVX`PICfnPozNM`@LI{dJD@l>h-a?fv~vg@Ibpthrmb}S^A~&jD|;XAEvBMM1{SAXda z@A8*0`PTMVfaJ~OT3*rJFdVAOGnyWicvEAQM5uritP+q>C8InJSj!u<8?`%jGFI36 z)d1Na2^{tJH}83D%VK)$VimCb-C%&IND+TESmSX5<0JRPyN+El#sH5zV8jSgiAL~| zC_FlkVgs>+SMj>;&^bLm=^FEmJG!#;J&J)bO}jQnG%T3nj{Q7rrg601<`ARO5W5+# zuRDpz&EZigCm#u_qk2Xz=!VbjHr=Z7jQ;fzA*!dg{B5RNFSoUMm@g0>p7=>7e2v~x$C3uG0#6Cm1orJqs}!8SQgGtSG3vO31oCzA7%KfW3ghI` z`|ZH+s1|24jHX8gax;u!9zDLtMmb3KZ24FX@Q5PI%cl0y`z` zN{jWFh>vztp3&E1I>_>jdVQpS1`r8M>bWBw;_My^U+eJercB<-@F@3pzIdDxy0h2E zH|OyriIYAr%VYNIM=t5a1_%2n&nU)-)SU~JynQ0t?kyfKR}jPWBV_bV;2DnB@M`u<~%v;dFzbX4;$pzubVH= z*z1$io#gs$PLGkSD!)JgmShBG$7JTpGxqxA{5jiRyJ}@bznncf6zM$#ONI2}61kA_DsyJSR&TGKKaQ2~P)`TV#dM*O4SIHQ#( zZs8oUiu!k9jML?O)v`RcEo{=v42)`@obp{db=j1;*JPh*@GX^4r1Z&?Irp6#A4+!zizGZHrFOw2Uu;a=nb-(zOaDz5BMA zdDk+2e^l95pfQy}x^?gO29O~*)=JKRj5epwIOuVJ(baS;zdru!>#y(jfBl=a&EWtht%C_syO1`A`ZucBuqX^#i+|e-(f-HEY?AEyZITWi$iq+L7YW*nf#8drF vE@(YAD`u@xxel-F=j7V|6876La_!vgyq7z diff --git a/utils/ogl/docs/ogledit.gif b/utils/ogl/docs/ogledit.gif deleted file mode 100644 index 9784681b2d44f95979f6b95e5b699f94e115e85a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7163 zcmVNk%w1VZ#A{0kZ%A0002L0002L0KdNg006(g0KWjgzreu2fPjGi00030 z0RR60009600RI60|NsC0A^8LW008v>EC2ui0K)-*0RRO4@W@H4y*TU5yZ>M)j$~<` zXsWJk`vJ!z&vb3yc&_h!@BhG{a7Zi~kI1BQ$!zuzu!n0(ty-_xtai)omY^}OcuX#v z&**d&EIkn3@VINH@w9CxR&d<iO*aW?8ZwSJ}#m5fGaW&^Oa58c>xijhS@X_tcx%Bw?`h3LM}XbEiWDtcTt|`PMU4LO_T5t_vZTp;{V@D{IB;OWiW34- zka+-M%}>AJ-N3l9r@f6KJ=PNn6sSI*CzC2=mh!?%7#5&zvqqEVOj`O}QolAF9QwvWoNZkc_%tqpOU2 zcjnrigA4ETnL_9adkx0?YdWhpj0kwm5FkK-0s*XM%S{{9G54`}a$_FfyS&lwz=x|} zKc_h0TLATr_6rc|Rc_8fJ%|n`Om*wm!T$EzR+<&~m22RkW!YurHOSk8h@mGNdlXjK z7fUX^*M@yF%~v0N_npRz9DD(2od9NerPf+qEw&hK6Nc9!d1Xz;TVnDEXyK0RP16#G zPyI;KRNC+*B1~|!_P~GEnZo0fP)3P}d!A5vpOt~(lnZOCQ71raQidt!nBfs)=9y^T zg65iL^0gnEYZ{p!YBB6U=AC$oDde7f?)gTaKVl_Vj&|m0=%I*Ka%7^6HtMJ)r>P<7 zq?A@_>7|(ZgA)sjWa{aspoS`{2!e5{$f&5Ms_LqembyZxti~$qthB1&stT~ys_U-2 z_Ij&d1i`=|26Vi*PDOUe7ZV1<{`TtZv(Res>$0M4P%K)<&Y^64+eYi{x8R~MEw{*V zaIG}i%F%7JBj#T*6a)n>+6hU~^G@W8u{3vhhGQj2eUab<*T zjC!?1Zo>8jOz_1RqiXQ56lb__JMA4S86EusOtHclr>rul8<(4K2KlBtGQ{*g)UM4H zudMUVmbTpC%QjaKGbAD-t8LByA{_M6JU8w17(UlqAG^gGwy)7~l#C(5_df0Q*H;)^ zLaroO4EEV*i#so{U0bWKih4vPWCmuZZTH?7a8xJL#X*{-zbCK!@GihXi+U({2&suXhdf$(TQkuA{4VC#fY^n16Cvs7Qfg-G0KdH zcqC)UxHvO9nvr#B3?v$B0w-d`k8TpX;Q@0v$1*x{h~m@Z5hsbqJ7$rLS7XK*1bwa znag4_Z+14YpnH7D0bq{LEwF&wlZa`|YPv6YhpZt>KHyC1J%gIo4Cm|CsLTyiOmY(F zrZ<}bPI0;ufY{`v2B?Sub*@v1fPAMuVMoqvmJXfKQ{5EuxzBO=p%Bez6C~P36;u>2XVQj6+o{o#27#l)limrGw4Z}~G;J6)sZ5E0 z(omk@rN)_tL#~0-v&D3#K>YzB3+Ydfu2iROFcVUVB&8t-Tx>ud9jjBJoz+aIX*qT(fut`1a$`Y&Cs517mZM+2#*fm+e zB-N=+B}Qu3h&Rr5cBY@*D=$TB3&~QH0@Ikm1Xgo7$hr2lGL0=?LmLFrngC8CJqT@q z{@YpMs+G8-wXI)oklbr5m$`~{t}kwNT^<;>x?A`yb|I==$8xW`JNPbmvmoB_KD4~E zEv|Iei-q>Occ1W$Z*)mXU-qK+zCq0|cje39{sIobc+D?#Ys=q4I{3j5jouX0VD^yoUd_n7l83Zj5y? zUmCl>zBe{zhtKd zai+}WcMdtsGd97KeVpVnr_sx3hH?ow#4dC)uFY;9q?MD3WiX#Wa&}%Ep7YH9L^yx% z&-4;jpbIx>Lc{RPhgNfr}J6eKRlQ{=Y&b6*TxoRDVdL}YX^PHJO>zi5Bz5pPHvX{;5W;^@Y&c3yy zTMdvR?^etgmG%vi4ef4w``gUcHlcrA?G(#-1apfrvcb*nc0XI(Zl?A_tesA5uVCHo z&bPkd9q&EsH`v#<_u=?G18(d4;NT`WmF3NE^$PsB3QrBfC+_WtE1BH$Hg~`u4sjwF zoZ=u~w#9GEaC(24jo$DZ& zI@rT*bsNaL-06iQ+DD-FweP#_Zf|-hsaoo}hoJ6ucemIP{C2DQ{qJ56{KN-Oc)g!| z1aTHK;1!>6ysrl9DFs2~wLJNKf1T}?*RA6>|9Er$rPeP90qRAt=+$>!eA;LC|{t!an55{`}o%?{7YrUZuA`wF`8Qh2GaU@hcC0^od`4wkE$`=lqvd zGSoGX5xXiA3zogWue9xV-~35CJ@z|31mW-70qz$(@r&PAKmK3;LzGrDsyp4Toc&B{ z{>OhgGl1HMG6M*JxW|8A0DZt05Ysn%)t6=Ww>0BdZ2PBZ_u_vp!7;LiY6p0M6sUX? zqkupIG&RS76lZYp$8L-VU}R@_6ZnB77=i&KgC;nG9+-e77=kE6gFd)_C-{4d=YRrH zbr6VoeU@%jWNI^LgFnbLPWXXIBY?PPfjBsV2PlO%_2vA zCvE{lda5@{Qv-<#Rfe>3h=|y1U^reo2XOUvc#eaD{+C#Bia2_%#&gH#iIy0OE$4^Y z^=~pKY@SFBps0$8$ck2$b>7uuv1na;NQ=>Ci^3&Oj95>*SR}pZi{UnktvD@#D0jsu zi^qtJt9XR1*ilnMhGr9MYo>rA*n>4gIkO0V191#RNQB(xfW|P6=@@+ID30w&4wVIqjiDET_BUtq)Pr?qPG19f>Ii=a zNs$A&jzxHp@YoU}r;N9ldE9i5k%%)L_=f1GkBAkH2kDOjd66uskuCX))Od^5XnSWE zfG5+9J1B$vIEyc-f&nRx8rhCtw}SDAU1DhdeGJKIIk|>v$Td&-H2pY{?r4$gD3n!c zjv0xO@0gCj_+s@(0*&-2$CK!mQ2ZwO{jyE#xtoXa$N~_ zM+saCDVBfch89?o;&+mFX;*3~jb8bcpaqwT^o+dNg^DSY3HgVl=ZK~!PRmYvMVc zq%croe0T850!xIRJ2>w56fN z>5*>aOgM`wBec_u9?plITxPl^OMdZjPapNsXGL$##x37$XtrAI)f zq2s2o)tgHNp#w3X1S+Cz3Z}ROr@>{W%2}t)iKlt$aeOK|g_==W%AMXBoNGF$wqQ+R zdTHe5V89uuaObGHaHy}Nss8vSr=WRZUW%!>woja@Pm}6%p(?62P^z)Rs^OHVpxUUa zI;9Zhs@9a0YBsAlV5_~utGV=-=%%YR5UCmEt4n64D`2eHrL4ZgtZ(M2Ea0r2C9S<$ zX1F?M!b+?_MXiqpt;wpZ+?qV$>O$9AHma(vWHqi31gxwls_MEt@5*Y(ssiy^tnP)b z@>q?ISvrG?udh|F+EcE<%BBFDJq3GA-b$|odt(Q?JObOUK;tmnl&~ovvVml>A?scbd$IP3vhCxtpkuMTH-8e#Wib0WD?78ZceDP( zvza5aFA#b)OK3ie{y8}tw0Kvv5TvwA0JI*!wAur;o+PzLaI{Zrbwi7_2}ZIgK()%_ zwGsrjF*L6wyJ}f0v}EP99U!)?im7bt16I4Xm-eZ-n?~0~w~T8}lv}wcTX1hHxtiNzoXbi2 zNuyQfx63EG!aAjOI;_HQl=69>0!n*$o2wgkwgfx71!tm}6T7YByYyF+d5d79TerHq zoV**P$7`s%3%c_JV7S|_%Zt3PtGuoIyT_Zk&wH<{i)+(+bTgWXz{|YX>%4Tsz1_R3 z-|M+j3Z?7*%Q?WSz30nZ(VM>M<+bL^Ec9!?PEe)(8=*)bzxq3^#apYCNGSqQ1o^8M z)5^c@yDIf7dZ^n11w5<{yaa@(1_ZajQE@%IHaZb}!Mj>38%(xc`#UYM04lt~EUd!s zs{|GNP#KKCK)}JN%DgR{!#d2uA?#f-Y)~^?Dexx147{lUvBOA=#0d<;B8#ezzrR4m4Byu%Uv!?lXW zvg5_JOQLU_$4Wd}X1vAVLS|}wsWPg^gsj7XD93aB$2>s99SpyP{Kzd#W{6y@;R49D zi>>|@3dx$h!v9sqeY~pgV#yO6t(m;ZrrceVtWiNMDpMB7W!Jx^9Lo!^T&b+ep}Yf( ze8X)j%d)JWwQS4o(#n^7xJ}T;yd2BFTvDjVOv!3z2VBHCkjqkR1jc;K$o$E@i*DXn zvZ<%DPc+N}3#Hb~%gId1tfw$;h<~(3XIA)RQF*m@JIdcG&f`qZ*xbL`%q<{U)Y{df6 z-Yy*6@jc7({oZ-K0(3?2X+n%*pr7+mY%c3|`GdPT@t~ly z6fB8JecmIU-jD5ZuzlKNPUe<<+h`8xecpb9{>XTq=Ta@=+L`A525#bw4%~&Vh7KCBTVY0o}`Ly(5bHKL(b~0&c%!D*o)5Sv@YDX ze(TU8ZG>&!g5K-y&7_5{=Yv?sqfNmmZR~qIqZewr$^OJb)#*9?+Rz@!;5+T2?nJcQ zE8>RN&%W(qo*K!!-`c9|WWaC3{>qze?z6nA3Ch-U?XT?a1@5lvvL5f|j$RgeqMq!o zx0df)pm6Wrf+&9JQ--eguEn_f%$O3w@f~21j zH1PkM^4F`t{BG6d-s@mU^59-@J)6uRAEd?(yE5-WmmB`F0RO@j3iQ3(*v(GLy-VxH z`S6gsZ3b&&<4e9uf1ufm?dl!!jSi<#-$_o-JT?3DZz}ZG%hnY?$b+t_Sr57CC9a3O z@*oWM{X6xUeZr1x+OB%`WBO{n%7||N_H6(4U|sa{Jokrftak57k7~rlwfDuW_!tcL z2=43$I`~n$^Y>X?m49(9|Kn4P)s!!zolm0e$Gp}`^?{DZDGjiNFRoaq_zssFo45cA)T=%!BTA@2LTuf#t4`=HOnBj0N`pZ9OB z{LByTy^r@$3Z}!)>{jmD@QUm}eEqu`q-4DP*Zv;&Urg{xFQeEGzF3<1SU#)OF9e+_ z$wMmsuND2>`}w=s@c9V=;7wZX#aVCO{RhMCcu2EE4;2AS^@U@3ekJk7bA9Lg3jq2a zHsOY70VI@(W6}A9K2Ousf#srQwW?;+`vr$9z;3AgZ336dv)KJEQst{wX?vfw;d_4n z7ZlO+B1&3g0`yB%?2t>byRyTRgd_V9L>oFJ+q?{QYn-CPn#2PYU1ilo#84f4 zZKdrat%5|IjIHhU%|x=~^(Ef9#md!9EoN^1vl-@eo{n>zOIF^BrsnpWt=#VJK90oB z&I%V-4@;L`e;={7wyHbVhR0uQ2iwnY{w055&Yp~Z{tSXB=ocjFE8R#2>{Z zQnV$nl*336BVq*U<08M1+!_k>NU7w?KuCZE!<2?4vxXc~5}cWnLm6noD(dWYvffP? zBY|=|Lx{r537?uu==l^;kXM;_9{s1WicO+5uwreabj;YLPlrGqLiTJ^wq{{{T_yD4 zO`~v$=@DCYjMKDz(dzB%SM5)`i)x}wS+{Vnuz=e>7A*Kk-l&iVFHR)4BT>beX(hEB zI5427e;!$Z3s=)9U$7rsktTXjlRYHFyYsmheiTB{4h9%Ba=b^M8PS z^|6~OFS`B~+Ao6w#k0@70|!({9|qxQPr(NX^l3sd5`1kz3!ykr!}B7{aKnT4^AN%R z0KBh65sOGqMH7$VD#R5H`p(7fFx+m&5#O-!#o=PiQAZk&>+!}Df#gg`3I|bgloN}C zsK_RFs7p#CVMNlrDQR48%L|{>E=e!_k;qCPNkLJm_-l$G0}4#Wt6}9Dvbh1F)@7y6iOjQQ_^fc z<FY>pRbqdyS( z}_}Ck-2h-X+k!{O!$0|9th+C!UKK zn5QATzx&0aaIK+de|`P)=YN0y`LAE%;3tCzAi!{RaY5GZ7rp;AuzwG9U<4ufIxg7H zAz3J(0n?_a0E&-y(wm?JMHoU7j?jS}ykGqECcl(%upMe03*dh-#m<+X=%kHyPl;+Po6F5btG zheTu|6}d=8Hqw!ggrxHzIY~-Z(vp|NWF|EkIx)7ycIZImhEs(dwWiEBOOJ4TUm%jvNFoiixViwbw$3$i_0T2NI06Rl2pX2}l diff --git a/utils/ogl/docs/sample.tex b/utils/ogl/docs/sample.tex deleted file mode 100644 index 4e0a437d39..0000000000 --- a/utils/ogl/docs/sample.tex +++ /dev/null @@ -1,87 +0,0 @@ -\chapter{OGLEdit: a sample OGL application}\label{ogledit}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -OGLEdit is a sample OGL application that allows the user to draw, edit, -save and load a few shapes. It should clarify aspects of OGL usage, and -can act as a template for similar applications. OGLEdit can be found in\rtfsp -{\tt samples/ogledit} in the OGL distribution. - -$$\image{10cm;0cm}{ogledit.eps}$$\par - -The wxWindows document/view model has been used in OGL, to reduce the amount of -housekeeping logic required to get it up and running. OGLEdit also provides -a demonstration of the Undo/Redo capability supported by the document/view classes, -and how a typical application might implement this feature. - -\section{OGLEdit files} - -OGLEdit comprises the following source files. - -\begin{itemize}\itemsep=0pt -\item doc.h, doc.cpp: MyDiagram, DiagramDocument, DiagramCommand, MyEvtHandler -classes related to diagram functionality and documents. -\item view.h, view.cpp: MyCanvas, DiagramView classes related to visualisation of -the diagram. -\item ogledit.h, ogledit.cpp: MyFrame, MyApp classes related to the overall application. -\item palette.h, palette.cpp: EditorToolPalette implementing the shape palette. -\end{itemize} - -\section{How OGLEdit works} - -OGLEdit defines a DiagramDocument class, each of instance of which holds a MyDiagram -member which itself contains the shapes. - -In order to implement specific mouse behaviour for shapes, a class MyEvtHandler is -defined which is `plugged into' each shape when it is created, instead of overriding each shape class -individually. This event handler class also holds a label string. - -The DiagramCommand class is the key to implementing Undo/Redo. Each instance of DiagramCommand -stores enough information about an operation (create, delete, change colour etc.) to allow -it to carry out (or undo) its command. In DiagramView::OnMenuCommand, when the user initiates the -command, a new DiagramCommand instance is created which is then sent to the document's -command processor (see wxWindows manual for more information about doc/view and command -processing). - -Apart from menu commands, another way commands are initiated is by the user left-clicking on -the canvas or right-dragging on a node. MyCanvas::OnLeftClick in view.cpp shows how -the appropriate wxClassInfo is passed to a DiagramCommand, to allow DiagramCommand::Do -to create a new shape given the wxClassInfo. - -The MyEvtHandler right-drag methods in doc.cpp implement drawing a line between -two shapes, detecting where the right mouse button was released and looking for a second -shape. Again, a new DiagramCommand instance is created and passed to the command -processor to carry out the command. - -DiagramCommand::Do and DiagramCommand::Undo embody much of the -interesting interaction with the OGL library. A complication of note -when implementing undo is the problem of deleting a node shape which has -one or more arcs attached to it. If you delete the node, the arc(s) -should be deleted too. But multiple arc deletion represents more information -that can be incorporated in the existing DiagramCommand scheme. OGLEdit -copes with this by treating each arc deletion as a separate command, and -sending Cut commands recursively, providing an undo path. Undoing such a -Cut will only undo one command at a time - not a one to one -correspondence with the original command - but it's a reasonable -compromise and preserves Do/Undo whilst keeping our DiagramCommand class -simple. - -\section{Possible enhancements} - -OGLEdit is very simplistic and does not employ the more advanced features -of OGL, such as: - -\begin{itemize}\itemsep=0pt -\item attachment points (arcs are drawn to particular points on a shape) -\item metafile and bitmaps shapes -\item divided rectangles -\item composite shapes, and constraints -\item creating labels in shape regions -\item arc labels (OGL has support for three movable labels per arc) -\item spline and multiple-segment line arcs -\item adding annotations to node and arc shapes -\item line-straightening (supported by OGL) and alignment (not supported directly by OGL) -\end{itemize} - -These could be added to OGLEdit, at the risk of making it a less -useful example for beginners. diff --git a/utils/ogl/docs/tex2rtf.ini b/utils/ogl/docs/tex2rtf.ini deleted file mode 100644 index a71be69313..0000000000 --- a/utils/ogl/docs/tex2rtf.ini +++ /dev/null @@ -1,26 +0,0 @@ -; Last change: JS 8 Sep 98 2:54 pm -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -listItemIndent=40 -generateHPJ = no -htmlBrowseButtons = bitmap -winHelpVersion = 3 -winHelpContents = yes -winHelpTitle = "OGL Manual" -truncateFilenames = yes -combineSubSections = yes -\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}} -\htmlonly{\image{}{books.gif}}\helpref{#1}{#2} -\sethotspotcolour{on}\sethotspotunderline{on}} -\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] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} -\windowstyle [1] {{\bf #1}\index{#1}} diff --git a/utils/ogl/docs/texhelp.sty b/utils/ogl/docs/texhelp.sty deleted file mode 100644 index af91bd531d..0000000000 --- a/utils/ogl/docs/texhelp.sty +++ /dev/null @@ -1,298 +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}{$>>$} - - -% =================== 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/utils/ogl/docs/topics.tex b/utils/ogl/docs/topics.tex deleted file mode 100644 index ece8016fce..0000000000 --- a/utils/ogl/docs/topics.tex +++ /dev/null @@ -1,161 +0,0 @@ -\chapter{Topic overviews} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -The following sections describe particular topics. - -\section{OGL overview}\label{ogloverview} - -\helpref{wxShapeCanvas}{wxshapecanvas}, derived from {\bf wxCanvas}, is the drawing area -for a number of \helpref{wxShape}{wxshape} instances. Everything drawn on a -wxShapeCanvas is derived from wxShape, which provides virtual -member functions for redrawing, creating and destroying -resize/selection `handles', movement and erasing behaviour, mouse -click behaviour, calculating the bounding box of the shape, linking -nodes with arcs, and so on. - -The way a client application copes with `damage' to the canvas is to -erase (white out) anything should no longer be displayed, redraw the shape, -and then redraw everything on the canvas to repair any damage. If quick edit -mode is on for the canvas, the complete should be omitted by OGL and the -application. - -Selection handles (called control points in the code) are implemented as -wxRectangleShapes. - -Events are passed to shapes by the canvas in a high-level form, for example {\bf OnLeftClick}, -{\bf OnBeginDragLeft}, {\bf OnDragLeft}, {\bf OnEndDragLeft}. The canvas decides -what is a click and what is a drag, whether it is on a shape or the canvas itself, -and (by interrogating the shape) which attachment point the click is associated with. - -In order to provide event-handling flexibility, each shapes has an `event handler' associated with it, -which by default is the shape itself (all shapes derive from wxShapeEvtHandler). -An application can modify the event-handling behaviour simply by plugging a new -event handler into the shape. This can avoid the need for multiple inheritance when -new properties and behaviour are required for a number of different shape classes: instead -of overriding each class, one new event handler class can be defined and used for all -existing shape classes. - -A range of shapes have been predefined in the library, including rectangles, ellipses, -polygons. A client application can derive from these shapes and/or derive entirely -new shapes from wxShape. - -Instances of a class called \helpref{wxDiagram}{wxdiagram} organise collections of -shapes, providing default file input and output behaviour. - -\section{wxDividedShape overview}\label{dividedshapeoverview} - -Classes: \helpref{wxDividedShape}{wxdividedshape} - -A wxDividedShape is a rectangle with a number of vertical divisions. Each -division may have its text formatted with independent characteristics, and -the size of each division relative to the whole image may be specified. - -Once a wxDividedShape has been created, the user may move the divisions with the -mouse. By pressing Ctrl while right-clicking, the region attributes can be edited. - -Here are examples of creating wxDividedShape objects: - -{\small -\begin{verbatim} - /* - * Divided rectangle with 3 regions - * - */ - - wxDividedShape *dividedRect = new wxDividedShape(50, 60); - - wxShapeRegion *region = new wxShapeRegion; - region->SetProportions(0.0, 0.25); - dividedRect->AddRegion(region); - - region = new wxShapeRegion; - region->SetProportions(0.0, 0.5); - dividedRect->AddRegion(region); - - region = new wxShapeRegion; - region->SetProportions(0.0, 0.25); - dividedRect->AddRegion(region); - - dividedRect->SetSize(50, 60); // Allow it to calculate region sizes - dividedRect->SetPen(wxBLACK_PEN); - dividedRect->SetBrush(wxWHITE_BRUSH); - dividedRect->Show(TRUE); - dividedRect->NameRegions(); - - /* - * Divided rectangle with 3 regions, rounded - * - */ - - wxDividedShape *dividedRect3 = new wxDividedShape(50, 60); - dividedRect3->SetCornerRadius(-0.4); - - region = new wxShapeRegion; - region->SetProportions(0.0, 0.25); - dividedRect3->AddRegion(region); - - region = new wxShapeRegion; - region->SetProportions(0.0, 0.5); - dividedRect3->AddRegion(region); - - region = new wxShapeRegion; - region->SetProportions(0.0, 0.25); - dividedRect3->AddRegion(region); - - dividedRect3->SetSize(50, 60); // Allow it to calculate region sizes - dividedRect3->SetPen(wxBLACK_PEN); - dividedRect3->SetBrush(wxWHITE_BRUSH); - dividedRect3->Show(TRUE); - dividedRect3->NameRegions(); -\end{verbatim} -} - -\section{wxCompositeShape overview}\label{compositeshapeoverview} - -Classes: \helpref{wxCompositeShape}{wxcompositeshape}, \helpref{wxOGLConstraint}{wxoglconstraint} - -The wxCompositeShape allows fairly complex shapes to be created, and maintains -a set of constraints which specify the layout and proportions of child shapes. - -Add child shapes to a wxCompositeShape using \helpref{AddChild}{wxcompositeshapeaddchild}, and -add constraints using \helpref{AddConstraint}{wxcompositeshapeaddconstraint}. - -After children and shapes have been added, call \helpref{Recompute}{wxcompositeshaperecompute} which -will return TRUE is the constraints could be satisfied, FALSE otherwise. If -constraints have been correctly and consistently specified, this call will succeed. - -If there is more than one child, constraints must be specified: OGL cannot calculate -the size and position of children otherwise. Don't assume that children will simply -move relative to the parent without the use of constraints. - -To specify a constraint, you need three things: - -\begin{enumerate}\itemsep=0pt -\item a constraint type, such as gyCONSTRAINT\_CENTRED\_VERTICALLY; -\item a reference shape, with respect to which other shapes are going to be positioned - the\rtfsp -{\it constraining} shape; -\item a list of one or more shapes to be constrained: the {\it constrained} shapes. -\end{enumerate} - -The constraining shape can be either the parent of the constrained shapes, or a sibling. The -constrained shapes must all be siblings of each other. - -For an exhaustive list and description of the available constraint types, see the \helpref{wxOGLConstraint constructor}{wxoglconstraintconstr}. -Note that most constraints operate in one dimension only (vertically or horizontally), so you will -usually need to specify constraints in pairs. - -You can set the spacing between constraining and constrained shapes by -calling \helpref{wxOGLConstraint::SetSpacing}{wxoglconstraintsetspacing}. - -Finally, a wxCompositeShape can have {\it divisions}, which are special child shapes of class -wxDivisionShape (not to be confused with wxDividedShape). The purpose of this is to allow -the composite to be divided into user-adjustable regions (divisions) into which other shapes -can be dropped dynamically, given suitable application code. Divisons allow the child -shapes to have an identity of their own - they can be manipulated independently of their container - -but to behave as if they are contained with the division, moving with the parent shape. -Divisions boundaries can themselves be moved using the mouse. - -To create an initial division, call \helpref{wxCompositeShape::MakeContainer}{wxcompositeshapemakecontainer}. -Make further divisions by calling \helpref{wxDivisionShape::Divide}{wxdivisionshapedivide}. - diff --git a/utils/ogl/docs/up.gif b/utils/ogl/docs/up.gif deleted file mode 100644 index 316d0d2a14b571bea2eb874efd04bfe509f53b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmV;40CxXJNk%v~VHyA!0Pz3-zrVld=jU&4Z(9HWEC2ui02%-o0007FjE||ytzv+j zv|1owxcuhWh0?c)Avq0}dTQw^q7qBdoDA6WKJ*l>%gtCeAWZlgxpoy|ZDMRPr_m>p rx}08pS4?)u<%PW1WPN=;5qEQ3zc?;o59U+Ka+r!5!mH1Gr)e_0X9zQo7Bn*m`tDP z>tSJ;fdXA9#W(4KsI?;JEJm}1)|8}VswC~|bu-BQ Vombvu=JhAub(#Nm-N`e*_yJ^>eVzaS diff --git a/utils/ogl/samples/ogledit/bitmaps/arrow.xpm b/utils/ogl/samples/ogledit/bitmaps/arrow.xpm deleted file mode 100644 index d3807cbf4e..0000000000 --- a/utils/ogl/samples/ogledit/bitmaps/arrow.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *arrow_xpm[] = { -/* columns rows colors chars-per-pixel */ -"22 22 16 1", -" c Gray0", -". c #bf0000", -"X c #00bf00", -"o c #bfbf00", -"O c #0000bf", -"+ c #bf00bf", -"@ c #00bfbf", -"# c #c0c0c0", -"$ c #808080", -"% c Red", -"& c Green", -"* c Yellow", -"= c Blue", -"- c Magenta", -"; c Cyan", -": c Gray100", -/* pixels */ -"######################", -"######################", -"######################", -"######################", -"######################", -"####### ##############", -"####### #############", -"####### ############", -"####### ###########", -"####### ##########", -"####### #########", -"####### ########", -"####### #######", -"####### ##########", -"####### # ##########", -"####### ### #########", -"########### #########", -"############ ########", -"############ ########", -"######################", -"######################", -"######################" -}; diff --git a/utils/ogl/samples/ogledit/bitmaps/tool1.bmp b/utils/ogl/samples/ogledit/bitmaps/tool1.bmp deleted file mode 100644 index cb1760d2859cd5b32630cb6c294a6c913d4b28f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmZ?rtz%>WgEAng0mNcZ%*en37UzJJQ409!#Op@kUh#ZHNo5<&TT>4iR1ivT=$yRS#8XFECq!-*mgr LV^3-JfBEkPyAH!9 diff --git a/utils/ogl/samples/ogledit/bitmaps/tool2.xpm b/utils/ogl/samples/ogledit/bitmaps/tool2.xpm deleted file mode 100644 index 612dbf01bb..0000000000 --- a/utils/ogl/samples/ogledit/bitmaps/tool2.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *tool2_xpm[] = { -/* columns rows colors chars-per-pixel */ -"22 22 16 1", -" c Gray0", -". c #bf0000", -"X c #00bf00", -"o c #bfbf00", -"O c #0000bf", -"+ c #bf00bf", -"@ c #00bfbf", -"# c #c0c0c0", -"$ c #808080", -"% c Red", -"& c Green", -"* c Yellow", -"= c Blue", -"- c Magenta", -"; c Cyan", -": c Gray100", -/* pixels */ -"######################", -"######################", -"#### #####", -"### ::::::::::::: ####", -"## ::::::::::::::: ###", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"# ::::::::::::::::: ##", -"## ::::::::::::::: ###", -"### ::::::::::::: ####", -"#### #####", -"######################", -"######################", -"######################" -}; diff --git a/utils/ogl/samples/ogledit/bitmaps/tool3.bmp b/utils/ogl/samples/ogledit/bitmaps/tool3.bmp deleted file mode 100644 index 6a49f459c3034a9d633c00c876720d1d6ec01a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmbtP$qj%o3^NiE{NTk5%)y^sc#$9KX6;C9Q0!1~{E$dv*LBpindYs6$4VZFp`b$T zep~7~^aWl(gc32H8<`R*C4>-I$ezeqir|t(vOE52cJ>w|bn4wu*h0nFrR6FbL$Ou( Uq@Q8CoZa7Pu)am`?}1?Jt#_EJF0 - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h! -#endif - -#include "ogledit.h" -#include "doc.h" -#include -#include "view.h" - -IMPLEMENT_DYNAMIC_CLASS(DiagramDocument, wxDocument) - -DiagramDocument::DiagramDocument(void) -{ -} - -DiagramDocument::~DiagramDocument(void) -{ -} - -bool DiagramDocument::OnCloseDocument(void) -{ - diagram.DeleteAllShapes(); - return TRUE; -} - -ostream& DiagramDocument::SaveObject(ostream& stream) -{ - wxDocument::SaveObject(stream); - - char buf[400]; - (void) wxGetTempFileName("diag", buf); - - diagram.SaveFile(buf); - wxTransferFileToStream(buf, stream); - - wxRemoveFile(buf); - - return stream; -} - -istream& DiagramDocument::LoadObject(istream& stream) -{ - wxDocument::LoadObject(stream); - - char buf[400]; - (void) wxGetTempFileName("diag", buf); - - wxTransferStreamToFile(stream, buf); - - diagram.DeleteAllShapes(); - diagram.LoadFile(buf); - wxRemoveFile(buf); - - return stream; -} - -/* - * Implementation of drawing command - */ - -DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, wxClassInfo *info, double xx, double yy, - bool sel, wxShape *theShape, wxShape *fs, wxShape *ts): - wxCommand(TRUE, name) -{ - doc = ddoc; - cmd = command; - shape = theShape; - fromShape = fs; - toShape = ts; - shapeInfo = info; - shapeBrush = NULL; - shapePen = NULL; - x = xx; - y = yy; - selected = sel; - deleteShape = FALSE; -} - -DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, wxBrush *backgroundColour, wxShape *theShape): - wxCommand(TRUE, name) -{ - doc = ddoc; - cmd = command; - shape = theShape; - fromShape = NULL; - toShape = NULL; - shapeInfo = NULL; - x = 0.0; - y = 0.0; - selected = FALSE; - deleteShape = FALSE; - shapeBrush = backgroundColour; - shapePen = NULL; -} - -DiagramCommand::DiagramCommand(char *name, int command, DiagramDocument *ddoc, const wxString& lab, wxShape *theShape): - wxCommand(TRUE, name) -{ - doc = ddoc; - cmd = command; - shape = theShape; - fromShape = NULL; - toShape = NULL; - shapeInfo = NULL; - x = 0.0; - y = 0.0; - selected = FALSE; - deleteShape = FALSE; - shapeBrush = NULL; - shapePen = NULL; - shapeLabel = lab; -} - -DiagramCommand::~DiagramCommand(void) -{ - if (shape && deleteShape) - { - shape->SetCanvas(NULL); - delete shape; - } -} - -bool DiagramCommand::Do(void) -{ - switch (cmd) - { - case OGLEDIT_CUT: - { - if (shape) - { - deleteShape = TRUE; - - shape->Select(FALSE); - - // Generate commands to explicitly remove each connected line. - RemoveLines(shape); - - doc->GetDiagram()->RemoveShape(shape); - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxLineShape *lineShape = (wxLineShape *)shape; - fromShape = lineShape->GetFrom(); - toShape = lineShape->GetTo(); - } - shape->Unlink(); - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - - break; - } - case OGLEDIT_ADD_SHAPE: - { - wxShape *theShape = NULL; - if (shape) - theShape = shape; // Saved from undoing the shape - else - { - theShape = (wxShape *)shapeInfo->CreateObject(); - theShape->AssignNewIds(); - theShape->SetEventHandler(new MyEvtHandler(theShape, theShape, wxString(""))); - theShape->SetCentreResize(FALSE); - theShape->SetPen(wxBLACK_PEN); - theShape->SetBrush(wxCYAN_BRUSH); - - theShape->SetSize(60, 60); - } - doc->GetDiagram()->AddShape(theShape); - theShape->Show(TRUE); - - wxClientDC dc(theShape->GetCanvas()); - theShape->GetCanvas()->PrepareDC(dc); - - theShape->Move(dc, x, y); - - shape = theShape; - deleteShape = FALSE; - - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - case OGLEDIT_ADD_LINE: - { - wxShape *theShape = NULL; - if (shape) - theShape = shape; // Saved from undoing the line - else - { - theShape = (wxShape *)shapeInfo->CreateObject(); - theShape->AssignNewIds(); - theShape->SetEventHandler(new MyEvtHandler(theShape, theShape, wxString(""))); - theShape->SetPen(wxBLACK_PEN); - theShape->SetBrush(wxRED_BRUSH); - - wxLineShape *lineShape = (wxLineShape *)theShape; - - // Yes, you can have more than 2 control points, in which case - // it becomes a multi-segment line. - lineShape->MakeLineControlPoints(2); - lineShape->AddArrow(ARROW_ARROW, ARROW_POSITION_END, 10.0, 0.0, "Normal arrowhead"); - } - - doc->GetDiagram()->AddShape(theShape); - - fromShape->AddLine((wxLineShape *)theShape, toShape); - - theShape->Show(TRUE); - - wxClientDC dc(theShape->GetCanvas()); - theShape->GetCanvas()->PrepareDC(dc); - - // It won't get drawn properly unless you move both - // connected images - fromShape->Move(dc, fromShape->GetX(), fromShape->GetY()); - toShape->Move(dc, toShape->GetX(), toShape->GetY()); - - shape = theShape; - deleteShape = FALSE; - - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - case OGLEDIT_CHANGE_BACKGROUND_COLOUR: - { - if (shape) - { - wxClientDC dc(shape->GetCanvas()); - shape->GetCanvas()->PrepareDC(dc); - - wxBrush *oldBrush = shape->GetBrush(); - shape->SetBrush(shapeBrush); - shapeBrush = oldBrush; - shape->Draw(dc); - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - - break; - } - case OGLEDIT_EDIT_LABEL: - { - if (shape) - { - MyEvtHandler *myHandler = (MyEvtHandler *)shape->GetEventHandler(); - wxString oldLabel(myHandler->label); - myHandler->label = shapeLabel; - shapeLabel = oldLabel; - - wxClientDC dc(shape->GetCanvas()); - shape->GetCanvas()->PrepareDC(dc); - - shape->FormatText(dc, (char*) (const char*) myHandler->label); - shape->Draw(dc); - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - - break; - } - } - return TRUE; -} - -bool DiagramCommand::Undo(void) -{ - switch (cmd) - { - case OGLEDIT_CUT: - { - if (shape) - { - doc->GetDiagram()->AddShape(shape); - shape->Show(TRUE); - - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxLineShape *lineShape = (wxLineShape *)shape; - - fromShape->AddLine(lineShape, toShape); - } - if (selected) - shape->Select(TRUE); - - deleteShape = FALSE; - } - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - case OGLEDIT_ADD_SHAPE: - case OGLEDIT_ADD_LINE: - { - if (shape) - { - wxClientDC dc(shape->GetCanvas()); - shape->GetCanvas()->PrepareDC(dc); - - shape->Select(FALSE, &dc); - doc->GetDiagram()->RemoveShape(shape); - shape->Unlink(); - deleteShape = TRUE; - } - doc->Modify(TRUE); - doc->UpdateAllViews(); - break; - } - case OGLEDIT_CHANGE_BACKGROUND_COLOUR: - { - if (shape) - { - wxClientDC dc(shape->GetCanvas()); - shape->GetCanvas()->PrepareDC(dc); - - wxBrush *oldBrush = shape->GetBrush(); - shape->SetBrush(shapeBrush); - shapeBrush = oldBrush; - shape->Draw(dc); - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - break; - } - case OGLEDIT_EDIT_LABEL: - { - if (shape) - { - MyEvtHandler *myHandler = (MyEvtHandler *)shape->GetEventHandler(); - wxString oldLabel(myHandler->label); - myHandler->label = shapeLabel; - shapeLabel = oldLabel; - - wxClientDC dc(shape->GetCanvas()); - shape->GetCanvas()->PrepareDC(dc); - - shape->FormatText(dc, (char*) (const char*) myHandler->label); - shape->Draw(dc); - - doc->Modify(TRUE); - doc->UpdateAllViews(); - } - - break; - } - } - return TRUE; -} - -// Remove each individual line connected to a shape by sending a command. -void DiagramCommand::RemoveLines(wxShape *shape) -{ - wxNode *node = shape->GetLines().First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - doc->GetCommandProcessor()->Submit(new DiagramCommand("Cut", OGLEDIT_CUT, doc, NULL, 0.0, 0.0, line->Selected(), line)); - - node = shape->GetLines().First(); - } -} - -/* - * MyEvtHandler: an event handler class for all shapes - */ - -void MyEvtHandler::OnLeftClick(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - if (keys == 0) - { - // Selection is a concept the library knows about - if (GetShape()->Selected()) - { - GetShape()->Select(FALSE, &dc); - GetShape()->GetCanvas()->Redraw(dc); // Redraw because bits of objects will be are missing - } - else - { - // Ensure no other shape is selected, to simplify Undo/Redo code - bool redraw = FALSE; - wxNode *node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape *eachShape = (wxShape *)node->Data(); - if (eachShape->GetParent() == NULL) - { - if (eachShape->Selected()) - { - eachShape->Select(FALSE, &dc); - redraw = TRUE; - } - } - node = node->Next(); - } - GetShape()->Select(TRUE, &dc); - if (redraw) - GetShape()->GetCanvas()->Redraw(dc); - } - } - else if (keys & KEY_CTRL) - { - // Do something for CONTROL - } - else - { - wxGetApp().frame->SetStatusText(label); - } -} - -/* - * Implement connection of two shapes by right-dragging between them. - */ - -void MyEvtHandler::OnBeginDragRight(double x, double y, int keys, int attachment) -{ - // Force attachment to be zero for now. Eventually we can deal with - // the actual attachment point, e.g. a rectangle side if attachment mode is on. - attachment = 0; - - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetLogicalFunction(wxXOR); - dc.SetPen(dottedPen); - double xp, yp; - GetShape()->GetAttachmentPosition(attachment, &xp, &yp); - dc.DrawLine((long) xp, (long) yp, (long) x, (long) y); - GetShape()->GetCanvas()->CaptureMouse(); -} - -void MyEvtHandler::OnDragRight(bool draw, double x, double y, int keys, int attachment) -{ - // Force attachment to be zero for now - attachment = 0; - - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetLogicalFunction(wxXOR); - dc.SetPen(dottedPen); - double xp, yp; - GetShape()->GetAttachmentPosition(attachment, &xp, &yp); - dc.DrawLine((long) xp, (long) yp, (long) x, (long) y); -} - -void MyEvtHandler::OnEndDragRight(double x, double y, int keys, int attachment) -{ - GetShape()->GetCanvas()->ReleaseMouse(); - MyCanvas *canvas = (MyCanvas *)GetShape()->GetCanvas(); - - // Check if we're on an object - int new_attachment; - wxShape *otherShape = canvas->FindFirstSensitiveShape(x, y, &new_attachment, OP_DRAG_RIGHT); - - if (otherShape && !otherShape->IsKindOf(CLASSINFO(wxLineShape))) - { - canvas->view->GetDocument()->GetCommandProcessor()->Submit( - new DiagramCommand("wxLineShape", OGLEDIT_ADD_LINE, (DiagramDocument *)canvas->view->GetDocument(), CLASSINFO(wxLineShape), - 0.0, 0.0, FALSE, NULL, GetShape(), otherShape)); - } -} - -void MyEvtHandler::OnEndSize(double x, double y) -{ - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - GetShape()->FormatText(dc, (char*) (const char*) label); -} - -/* - * Diagram - */ - -bool MyDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) -{ - wxDiagram::OnShapeSave(db, shape, expr); - MyEvtHandler *handler = (MyEvtHandler *)shape.GetEventHandler(); - expr.AddAttributeValueString("label", handler->label); - return TRUE; -} - -bool MyDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr) -{ - wxDiagram::OnShapeLoad(db, shape, expr); - char *label = NULL; - expr.AssignAttributeValue("label", &label); - MyEvtHandler *handler = new MyEvtHandler(&shape, &shape, wxString(label)); - shape.SetEventHandler(handler); - - if (label) - delete[] label; - return TRUE; -} - -/* - * New shapes - */ - -IMPLEMENT_DYNAMIC_CLASS(wxRoundedRectangleShape, wxRectangleShape) - -wxRoundedRectangleShape::wxRoundedRectangleShape(double w, double h): - wxRectangleShape(w, h) -{ - // 0.3 of the smaller rectangle dimension - SetCornerRadius((double) -0.3); -} - -IMPLEMENT_DYNAMIC_CLASS(wxDiamondShape, wxPolygonShape) - -wxDiamondShape::wxDiamondShape(double w, double h): - wxPolygonShape() -{ - // wxPolygonShape::SetSize relies on the shape having non-zero - // size initially. - if (w == 0.0) - w = 60.0; - if (h == 0.0) - h = 60.0; - - wxList *thePoints = new wxList; - wxRealPoint *point = new wxRealPoint(0.0, (-h/2.0)); - thePoints->Append((wxObject*) point); - - point = new wxRealPoint((w/2.0), 0.0); - thePoints->Append((wxObject*) point); - - point = new wxRealPoint(0.0, (h/2.0)); - thePoints->Append((wxObject*) point); - - point = new wxRealPoint((-w/2.0), 0.0); - thePoints->Append((wxObject*) point); - - Create(thePoints); -} diff --git a/utils/ogl/samples/ogledit/doc.h b/utils/ogl/samples/ogledit/doc.h deleted file mode 100644 index 968fad13ac..0000000000 --- a/utils/ogl/samples/ogledit/doc.h +++ /dev/null @@ -1,172 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.h -// Purpose: Document classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGLSAMPLE_DOC_H_ -#define _OGLSAMPLE_DOC_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include -#include - -#include "ogl.h" - -/* - * Override a few members for this application - */ - -class MyDiagram: public wxDiagram -{ - public: - MyDiagram(void) {} - bool OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr); - bool OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr); -}; - -/* - * A few new shape classes so we have a 1:1 mapping - * between palette symbol and unique class - */ - -class wxRoundedRectangleShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxRoundedRectangleShape) - private: - public: - wxRoundedRectangleShape(double w = 0.0, double h = 0.0); -}; - -class wxDiamondShape: public wxPolygonShape -{ - DECLARE_DYNAMIC_CLASS(wxDiamondShape) - private: - public: - wxDiamondShape(double w = 0.0, double h = 0.0); -}; - -/* - * All shape event behaviour is routed through this handler, so we don't - * have to derive from each shape class. We plug this in to each shape. - */ - -class MyEvtHandler: public wxShapeEvtHandler -{ - public: - wxString label; - MyEvtHandler(wxShapeEvtHandler *prev = NULL, wxShape *shape = NULL, const wxString& lab = ""):wxShapeEvtHandler(prev, shape) - { - label = lab; - } - ~MyEvtHandler(void) - { - } - void OnLeftClick(double x, double y, int keys = 0, int attachment = 0); - void OnBeginDragRight(double x, double y, int keys = 0, int attachment = 0); - void OnDragRight(bool draw, double x, double y, int keys = 0, int attachment = 0); - void OnEndDragRight(double x, double y, int keys = 0, int attachment = 0); - void OnEndSize(double x, double y); -}; - -/* - * A diagram document, which contains a diagram. - */ - -class DiagramDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(DiagramDocument) - private: - public: - MyDiagram diagram; - - DiagramDocument(void); - ~DiagramDocument(void); - - ostream& SaveObject(ostream& stream); - istream& LoadObject(istream& stream); - - inline wxDiagram *GetDiagram() { return &diagram; } - - bool OnCloseDocument(void); -}; - -/* - * Most user interface commands are routed through this, to give us the - * Undo/Redo mechanism. If you add more commands, such as changing the shape colour, - * you will need to add members to 'remember' what the user applied (for 'Do') and what the - * previous state was (for 'Undo'). - * You can have one member for each property to be changed. Assume we also have - * a pointer member wxShape *shape, which is set to the shape being changed. - * Let's assume we're changing the shape colour. Our member for this is shapeColour. - * - * - In 'Do': - * o Set a temporary variable 'temp' to the current colour for 'shape'. - * o Change the colour to the new colour. - * o Set shapeColour to the _old_ colour, 'temp'. - * - In 'Undo': - * o Set a temporary variable 'temp' to the current colour for 'shape'. - * o Change the colour to shapeColour (the old colour). - * o Set shapeColour to 'temp'. - * - * So, as long as we have a pointer to the shape being changed, - * we only need one member variable for each property. - * - * PROBLEM: when an Add shape command is redone, the 'shape' pointer changes. - * Assume, as here, that we keep a pointer to the old shape so we reuse it - * when we recreate. - */ - -class DiagramCommand: public wxCommand -{ - protected: - DiagramDocument *doc; - int cmd; - wxShape *shape; // Pointer to the shape we're acting on - wxShape *fromShape; - wxShape *toShape; - wxClassInfo *shapeInfo; - double x; - double y; - bool selected; - bool deleteShape; - - // Storage for property commands - wxBrush *shapeBrush; - wxPen *shapePen; - wxString shapeLabel; - public: - // Multi-purpose constructor for creating, deleting shapes - DiagramCommand(char *name, int cmd, DiagramDocument *ddoc, wxClassInfo *shapeInfo = NULL, - double x = 0.0, double y = 0.0, bool sel = FALSE, wxShape *theShape = NULL, wxShape *fs = NULL, wxShape *ts = NULL); - - // Property-changing command constructors - DiagramCommand(char *name, int cmd, DiagramDocument *ddoc, wxBrush *backgroundColour, wxShape *theShape); - DiagramCommand(char *name, int cmd, DiagramDocument *ddoc, const wxString& lab, wxShape *theShape); - - ~DiagramCommand(void); - - bool Do(void); - bool Undo(void); - - inline void SetShape(wxShape *s) { shape = s; } - inline wxShape *GetShape(void) { return shape; } - inline wxShape *GetFromShape(void) { return fromShape; } - inline wxShape *GetToShape(void) { return toShape; } - inline wxClassInfo *GetShapeInfo(void) { return shapeInfo; } - inline bool GetSelected(void) { return selected; } - - void RemoveLines(wxShape *shape); -}; - -#endif - // _OGLSAMPLE_DOC_H_ diff --git a/utils/ogl/samples/ogledit/makefile.b32 b/utils/ogl/samples/ogledit/makefile.b32 deleted file mode 100644 index 7ee48625c2..0000000000 --- a/utils/ogl/samples/ogledit/makefile.b32 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=ogledit -EXTRALIBS=$(WXDIR)\lib\ogl.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\ogl\src -OBJECTS = $(TARGET).obj doc.obj view.obj palette.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/ogl/samples/ogledit/makefile.bcc b/utils/ogl/samples/ogledit/makefile.bcc deleted file mode 100644 index 171d966ebd..0000000000 --- a/utils/ogl/samples/ogledit/makefile.bcc +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=ogledit -EXTRALIBS=$(WXDIR)\lib\ogl.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\ogl\src -OBJECTS = $(TARGET).obj doc.obj view.obj palette.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/ogl/samples/ogledit/makefile.dos b/utils/ogl/samples/ogledit/makefile.dos deleted file mode 100644 index 34eb326437..0000000000 --- a/utils/ogl/samples/ogledit/makefile.dos +++ /dev/null @@ -1,103 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1995 -# Updated: -# Copyright: (c) 1995, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds OGLEdit example (MSVC++ 1.5). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makemsc.env - -THISDIR = $(WXDIR)\utils\ogl\samples\ogledit -WXLIB = $(WXDIR)\lib\wx.lib - -OGLDIR = $(WXDIR)\utils\ogl -OGLINC = $(OGLDIR)\src -OGLLIB = $(OGLDIR)\lib\ogl.lib - -LIBS=$(WXLIB) $(OGLLIB) oldnames libw llibcew commdlg shell ddeml - -EXTRAFLAGS=/I$(OGLINC) - -OBJECTS = ogledit.obj doc.obj view.obj palette.obj - -all: ogledit.exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.dos - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.dos clean - cd $(THISDIR) - -ogl: - cd $(OGLDIR)\src - nmake -f makefile.dos FINAL=$(FINAL) - cd $(THISDIR) - -prologio: - cd $(PROLOGDIR)\src - nmake -f makefile.dos FINAL=$(FINAL) - cd $(THISDIR) - -ogledit.exe: $(WXDIR)\src\msw\dummy.obj $(WXLIB) $(OBJECTS) $(OGLLIB) ogledit.def ogledit.res - link $(LINKFLAGS) @<< -$(WXDIR)\src\msw\dummy.obj $(OBJECTS), -ogledit, -NUL, -$(LIBS), -ogledit.def -; -<< - rc -30 -K ogledit.res - -ogledit.obj: ogledit.h ogledit.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -view.obj: view.h view.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -doc.obj: doc.h doc.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -palette.obj: view.h doc.h ogledit.h palette.$(SRCSUFF) $(DUMMYOBJ) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -ogledit.res : ogledit.rc $(WXDIR)\include\msw\wx.rc - rc -r /dFAFA_LIB /i$(WXDIR)\contrib\fafa /i$(WXDIR)\include\msw ogledit - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb - -cleanogl: - cd $(OGLDIR)\src - nmake -f makefile.dos clean - cd $(THISDIR) - -cleanall: - cd $(OGLDIR)\src - nmake -f makefile.dos clean - cd $(THISDIR) \ No newline at end of file diff --git a/utils/ogl/samples/ogledit/makefile.g95 b/utils/ogl/samples/ogledit/makefile.g95 deleted file mode 100644 index 633e5b88e4..0000000000 --- a/utils/ogl/samples/ogledit/makefile.g95 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../../../.. - -TARGET=ogledit -EXTRACPPFLAGS=-I../../src -EXTRALIBS=-logl -OBJECTS = $(TARGET).o doc.o view.o palette.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/ogl/samples/ogledit/makefile.sc b/utils/ogl/samples/ogledit/makefile.sc deleted file mode 100644 index 03da92bcd0..0000000000 --- a/utils/ogl/samples/ogledit/makefile.sc +++ /dev/null @@ -1,33 +0,0 @@ -# Symantec C++ makefile for docview example -# NOTE that peripheral libraries are now dealt in main wxWindows makefile. - -WXDIR = $(WXWIN) -include $(WXDIR)\src\makesc.env - -WXLIB = $(WXDIR)\lib\wx.lib -INCDIR = $(WXDIR)\include -MSWINC = $(INCDIR)\msw -BASEINC = $(INCDIR)\base - -INCLUDE=$(BASEINC);$(MSWINC) - -LIBS=$(WXLIB) libw.lib commdlg.lib shell.lib - -OBJECTS=docview.obj view.obj doc.obj - -.$(SRCSUFF).obj: - *$(CC) -c $(CFLAGS) -I$(INCLUDE) $< - -.rc.res: - *$(RC) -r -I$(INCLUDE) $< - -docview.exe: $(OBJECTS) docview.def docview.res - *$(CC) $(LDFLAGS) -o$@ $(OBJECTS) docview.def $(LIBS) - *$(RC) -k docview.res - -clean: - -del *.obj - -del *.exe - -del *.res - -del *.map - -del *.rws diff --git a/utils/ogl/samples/ogledit/makefile.unx b/utils/ogl/samples/ogledit/makefile.unx deleted file mode 100644 index 0038ddc0b4..0000000000 --- a/utils/ogl/samples/ogledit/makefile.unx +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for OGLEdit example (UNIX). - -PROGRAM=ogledit - -OBJECTS=$(PROGRAM).o doc.o view.o palette.o - -EXTRACPPFLAGS=-I$(WXDIR)/utils/ogl/src -EXTRALDLIBS=-logl$(GUISUFFIX) - -include ../../../../src/makeprog.env - diff --git a/utils/ogl/samples/ogledit/makefile.vc b/utils/ogl/samples/ogledit/makefile.vc deleted file mode 100644 index 37336c627a..0000000000 --- a/utils/ogl/samples/ogledit/makefile.vc +++ /dev/null @@ -1,95 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds docview example (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makevc.env - -THISDIR = $(WXDIR)\utils\ogl\samples\ogledit - -OGLDIR = $(WXDIR)\utils\ogl -OGLINC = $(OGLDIR)\src -OGLLIB = $(WXDIR)\lib\ogl.lib - -PROGRAM=ogledit - -EXTRALIBS=$(OGLLIB) -EXTRAINC=/I$(OGLINC) - -OBJECTS = $(PROGRAM).obj doc.obj view.obj palette.obj - -$(PROGRAM): $(PROGRAM).exe - -all: $(PROGRAM).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.vc clean - cd $(THISDIR) - -ogl: - cd $(OGLDIR)\src - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(OGLLIB) $(PROGRAM).res - $(link) @<< --out:$(PROGRAM).exe -$(LINKFLAGS) -$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res -$(LIBS) -<< - -$(PROGRAM).obj: $(PROGRAM).h doc.h view.h palette.h $(PROGRAM).$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -doc.obj: view.h doc.h doc.$(SRCSUFF) ogledit.h $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -view.obj: view.h doc.h view.$(SRCSUFF) ogledit.h $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -palette.obj: view.h doc.h ogledit.h palette.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc ogl.ico - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - - -cleanogl: - cd $(OGLDIR)\src - nmake -f makefile.vc clean - cd $(THISDIR) - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - diff --git a/utils/ogl/samples/ogledit/makefile.vms b/utils/ogl/samples/ogledit/makefile.vms deleted file mode 100644 index 1a64fc7f30..0000000000 --- a/utils/ogl/samples/ogledit/makefile.vms +++ /dev/null @@ -1,44 +0,0 @@ -#************************************************************************ -# Makefile for DOCVIEW under VMS -# by Stefan Hammes -# (incomplete) update history: -# 09.06.95 -#************************************************************************ - -#************************************************************************ -# Definition section -# (cave: definitions and includes must begin with ',') -#************************************************************************ - -APPOPTS = -APPDEFS = -APPINCS = - -#************************************************************************ -# Module section -#************************************************************************ - -# Name of main module -MAIN = docview - -# Object modules of the application. -OBJS = docview.obj view.obj doc.obj -OBJLIST =docview.obj,view.obj,doc.obj - -.include [--.src]makevms.env - -# main dependency -$(MAIN).exe : $(OBJS) - $(LINK) $(LINKFLAGS) /exec=$(MAIN).exe $(OBJLIST),$(WXLIB)/lib,$(OPTSFILE)/option - - purge *.exe - -#************************************************************************ -# Header file depedencies following -#************************************************************************ - -docview.$(OBJSUFF) : docview.$(SRCSUFF) docview.h doc.h view.h - -doc.$(OBJSUFF) : doc.$(SRCSUFF) doc.h - -view.$(OBJSUFF) : view.$(SRCSUFF) view.h - diff --git a/utils/ogl/samples/ogledit/makefile.wat b/utils/ogl/samples/ogledit/makefile.wat deleted file mode 100644 index bafa16f3a5..0000000000 --- a/utils/ogl/samples/ogledit/makefile.wat +++ /dev/null @@ -1,43 +0,0 @@ -# -# Makefile for WATCOM -# -# Created by D.Chubraev, chubraev@iem.ee.ethz.ch -# 8 Nov 1994 -# - -WXDIR = ..\.. - -!include $(WXDIR)\src\makewat.env - -WXLIB = $(WXDIR)\lib -NAME = docview -LNK = $(name).lnk -OBJS = $(name).obj doc.obj view.obj - -all: $(name).exe - -$(name).exe : $(OBJS) $(name).res $(LNK) $(WXLIB)\wx$(LEVEL).lib - wlink @$(LNK) - $(BINDCOMMAND) $(name).res - -$(name).res : $(name).rc $(WXDIR)\include\msw\wx.rc - $(RC) $(RESFLAGS1) $(name).rc - -$(LNK) : makefile.wat - %create $(LNK) - @%append $(LNK) debug all - @%append $(LNK) system $(LINKOPTION) - @%append $(LNK) $(MINDATA) - @%append $(LNK) $(MAXDATA) - @%append $(LNK) $(STACK) - @%append $(LNK) name $(name) - @%append $(LNK) file $(WXLIB)\wx$(LEVEL).lib - @for %i in ($(EXTRALIBS)) do @%append $(LNK) file %i - @for %i in ($(OBJS)) do @%append $(LNK) file %i - -thing: .SYMBOLIC - echo $(WATLIBDIR) - -clean: .SYMBOLIC - -erase *.obj *.bak *.err *.pch *.lib *.lnk *.res *.exe *.rex - diff --git a/utils/ogl/samples/ogledit/ogl.ico b/utils/ogl/samples/ogledit/ogl.ico deleted file mode 100644 index 7cb092e04ca745bdd3cc3b856ef367d67440d9b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc&wu@S;B3{*H*6oiU8C1a$}U|EBX+EaKGN~)YT5dXsA62iezaJ((a@0VrSA`M2@ z?S;5*L=K2YSO@E2jU;#g+G`9Vm@*9a0FR}VQV=P4OmXK5hQTfJ?_p0zQX3l<1>H@1 za@*z{)srd{Ky${zR3l;HkX7L*=X1zNcyJHBb*uX7JQL>iSNHqWpVr4ld+12nCh*gU pUjfiy4R#{%p4~W(7sSd*u~B)__q_F`KC3s~$BX$d9}ww(bT>1!mTdq4 diff --git a/utils/ogl/samples/ogledit/ogl.xpm b/utils/ogl/samples/ogledit/ogl.xpm deleted file mode 100644 index 2a8c61e578..0000000000 --- a/utils/ogl/samples/ogledit/ogl.xpm +++ /dev/null @@ -1,45 +0,0 @@ -/* XPM */ -static char * ogl_xpm[] = { -/* width height ncolors chars_per_pixel */ -"32 32 7 1", -/* colors */ -" s None c None", -". c #000000", -"+ c #000080", -"@ c #ff0000", -"# c #00ff00", -"$ c #00ffff", -"% c #ffffff", -/* pixels */ -"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", -"%............%%%%%%........%%%%%", -"%.@@@@@@@@@@.%%%%..$$$$$$$$..%%%", -"%.@@@@@@@@@@.%%%.$$$$$$$$$$$$.%%", -"%.@@@@@@@@@@.+++.$$$$$$$$$$$$.%%", -"%.@@@@@@@@@@.+++.$$$$$$$$$$$$.%%", -"%.@@@@@@@@@@.%%%.$$$$$$$$$$$$.%%", -"%.@@@@@@@@@@.%%%%..$$$$$$$$..%%%", -"%............%%%%%.........%%%%%", -"%%%%%%++%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%++%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%++%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%++%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%++%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%++%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%+.%%%%%%%%%%%%%%++%%%%%%%%", -"%%%%%%.+.%%%%%%%%%%%%.++..%%%%%%", -"%%%%%.+++.%%%%%%%%%..#####..%%%%", -"%%%%.+++++.%%%%%%%.#########.%%%", -"%%%.+++++++.%%%%%%.#########.%%%", -"%%.+++++++++.%%%%.###########.%%", -"%.+++++++++++.++++###########.%%", -"%%.+++++++++.+++++###########.%%", -"%%%.+++++++.%%%%%%.#########.%%%", -"%%%%.+++++.%%%%%%%.#########.%%%", -"%%%%%.+++.%%%%%%%%%..#####..%%%%", -"%%%%%%.+.%%%%%%%%%%%%.....%%%%%%", -"%%%%%%%.%%%%%%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%", -"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"}; diff --git a/utils/ogl/samples/ogledit/ogledit.cpp b/utils/ogl/samples/ogledit/ogledit.cpp deleted file mode 100644 index 87f19e6e85..0000000000 --- a/utils/ogl/samples/ogledit/ogledit.cpp +++ /dev/null @@ -1,213 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ogledit.cpp -// Purpose: OGLEdit sample app -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h! -#endif - -#include "ogledit.h" -#include "palette.h" -#include "doc.h" -#include "view.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "ogl.xpm" -#endif - -// A macro needed for some compilers (AIX) that need 'main' to be defined -// in the application itself. -IMPLEMENT_APP(MyApp) - -MyApp::MyApp(void) -{ - frame = NULL; - myDocManager= NULL; -} - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit(void) -{ - wxOGLInitialize(); - - //// Create a document manager - myDocManager = new wxDocManager; - - //// Create a template relating drawing documents to their views - (void) new wxDocTemplate(myDocManager, "Diagram", "*.dia", "", "dia", "Diagram Doc", "Diagram View", - CLASSINFO(DiagramDocument), CLASSINFO(DiagramView)); - - // If we've only got one window, we only get to edit - // one document at a time. - myDocManager->SetMaxDocsOpen(1); - - //// Create the main frame window - frame = new MyFrame(myDocManager, NULL, "OGLEdit Demo", wxPoint(0, 0), wxSize(500, 400), wxDEFAULT_FRAME_STYLE); - - //// Give it an icon - frame->SetIcon(wxICON(ogl)); - - //// Make a menubar - wxMenu *file_menu = new wxMenu; - wxMenu *edit_menu = NULL; - - file_menu->Append(wxID_NEW, "&New..."); - file_menu->Append(wxID_OPEN, "&Open..."); - - file_menu->Append(wxID_CLOSE, "&Close"); - file_menu->Append(wxID_SAVE, "&Save"); - file_menu->Append(wxID_SAVEAS, "Save &As..."); - file_menu->AppendSeparator(); - file_menu->Append(wxID_PRINT, "&Print..."); - file_menu->Append(wxID_PRINT_SETUP, "Print &Setup..."); - file_menu->Append(wxID_PREVIEW, "Print Pre&view"); - - edit_menu = new wxMenu; - edit_menu->Append(wxID_UNDO, "&Undo"); - edit_menu->Append(wxID_REDO, "&Redo"); - edit_menu->AppendSeparator(); - edit_menu->Append(OGLEDIT_CUT, "&Cut"); - edit_menu->AppendSeparator(); - edit_menu->Append(OGLEDIT_CHANGE_BACKGROUND_COLOUR, "Change &background colour"); - edit_menu->Append(OGLEDIT_EDIT_LABEL, "Edit &label"); - - frame->editMenu = edit_menu; - - file_menu->AppendSeparator(); - file_menu->Append(wxID_EXIT, "E&xit"); - - // A nice touch: a history of files visited. Use this menu. - myDocManager->FileHistoryUseMenu(file_menu); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(OGLEDIT_ABOUT, "&About"); - - wxMenuBar *menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - if (edit_menu) - menu_bar->Append(edit_menu, "&Edit"); - menu_bar->Append(help_menu, "&Help"); - - frame->canvas = frame->CreateCanvas(NULL, frame); - frame->palette = wxGetApp().CreatePalette(frame); - myDocManager->CreateDocument("", wxDOC_NEW); - - //// Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - frame->CreateStatusBar(1); - - frame->Centre(wxBOTH); - frame->Show(TRUE); - - return TRUE; -} - -int MyApp::OnExit(void) -{ - wxOGLCleanUp(); - delete myDocManager; - return 0; -} - -/* - * This is the top-level window of the application. - */ - -IMPLEMENT_CLASS(MyFrame, wxDocParentFrame) - -BEGIN_EVENT_TABLE(MyFrame, wxDocParentFrame) - EVT_MENU(OGLEDIT_ABOUT, MyFrame::OnAbout) - EVT_SIZE(MyFrame::OnSize) - EVT_CLOSE(MyFrame::OnCloseWindow) -END_EVENT_TABLE() - -MyFrame::MyFrame(wxDocManager *manager, wxFrame *frame, const wxString& title, - const wxPoint& pos, const wxSize& size, long type): - wxDocParentFrame(manager, frame, -1, title, pos, size, type) -{ - canvas = NULL; - palette = NULL; - editMenu = NULL; -} - -void MyFrame::OnSize(wxSizeEvent& event) -{ - if (canvas && palette) - { - int cw, ch; - GetClientSize(&cw, &ch); - int paletteX = 0; - int paletteY = 0; - int paletteW = 30; - int paletteH = ch; - int canvasX = paletteX + paletteW; - int canvasY = 0; - int canvasW = cw - paletteW; - int canvasH = ch; - - palette->SetSize(paletteX, paletteY, paletteW, paletteH); - canvas->SetSize(canvasX, canvasY, canvasW, canvasH); - } -} - -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - wxDocParentFrame::OnCloseWindow(event); - if (!event.GetVeto()) - { - wxOGLCleanUp(); - } -} - -// Intercept menu commands -void MyFrame::OnAbout(wxCommandEvent& event) -{ - (void)wxMessageBox("OGLEdit Demo\nTo draw a shape, select a shape on the toolbar and left-click on the canvas.\nTo draw a line, right-drag between shapes.\nFor further details, see the OGL manual.\n (c) Julian Smart 1996", "About OGLEdit"); -} - -// Creates a canvas. Called by OnInit as a child of the main window -MyCanvas *MyFrame::CreateCanvas(wxView *view, wxFrame *parent) -{ - int width, height; - parent->GetClientSize(&width, &height); - - // Non-retained canvas - MyCanvas *canvas = new MyCanvas(view, parent, -1, wxPoint(0, 0), wxSize(width, height), 0); - canvas->SetCursor(wxCursor(wxCURSOR_HAND)); - - // Give it scrollbars - canvas->SetScrollbars(20, 20, 50, 50); - - return canvas; -} - -MyFrame *GetMainFrame(void) -{ - return wxGetApp().frame; -} - diff --git a/utils/ogl/samples/ogledit/ogledit.def b/utils/ogl/samples/ogledit/ogledit.def deleted file mode 100644 index d587ce5556..0000000000 --- a/utils/ogl/samples/ogledit/ogledit.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME OGLEdit -DESCRIPTION 'OGL Editor Sample' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/utils/ogl/samples/ogledit/ogledit.h b/utils/ogl/samples/ogledit/ogledit.h deleted file mode 100644 index 62dfb9bced..0000000000 --- a/utils/ogl/samples/ogledit/ogledit.h +++ /dev/null @@ -1,77 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ogledit.h -// Purpose: OGL sample -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma interface -#endif - -#ifndef _OGLSAMPLE_OGLEDIT_H_ -#define _OGLSAMPLE_OGLEDIT_H_ - -#include - -// Define a new application -class MyFrame; -class EditorToolPalette; -class MyApp: public wxApp -{ - public: - MyFrame *frame; - wxDocManager* myDocManager; - - MyApp(void); - bool OnInit(void); - int OnExit(void); - - // Palette stuff - EditorToolPalette *CreatePalette(wxFrame *parent); -}; - -DECLARE_APP(MyApp) - -// Define a new frame -class MyCanvas; -class MyFrame: public wxDocParentFrame -{ - DECLARE_CLASS(MyFrame) - public: - wxMenu *editMenu; - - MyCanvas *canvas; - EditorToolPalette *palette; - - MyFrame(wxDocManager *manager, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME_STYLE); - - MyCanvas *CreateCanvas(wxView *view, wxFrame *parent); - void OnSize(wxSizeEvent& event); - void OnCloseWindow(wxCloseEvent& event); - void OnAbout(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -extern MyFrame *GetMainFrame(void); - -// Menu/undo/redo commands - -#define OGLEDIT_CUT 1 -#define OGLEDIT_ADD_SHAPE 2 -#define OGLEDIT_ADD_LINE 3 -#define OGLEDIT_EDIT_LABEL 4 -#define OGLEDIT_CHANGE_BACKGROUND_COLOUR 5 - -#define OGLEDIT_ABOUT 100 - -#endif - // _OGLSAMPLE_OGLEDIT_H_ diff --git a/utils/ogl/samples/ogledit/ogledit.rc b/utils/ogl/samples/ogledit/ogledit.rc deleted file mode 100644 index 046f0c6f45..0000000000 --- a/utils/ogl/samples/ogledit/ogledit.rc +++ /dev/null @@ -1,10 +0,0 @@ -ogl ICON ogl.ico - -TOOL1 BITMAP "bitmaps/tool1.bmp" -TOOL2 BITMAP "bitmaps/tool2.bmp" -TOOL3 BITMAP "bitmaps/tool3.bmp" -TOOL4 BITMAP "bitmaps/tool4.bmp" -ARROWTOOL BITMAP "bitmaps/arrow.bmp" - -#include "wx/msw/wx.rc" - diff --git a/utils/ogl/samples/ogledit/palette.cpp b/utils/ogl/samples/ogledit/palette.cpp deleted file mode 100644 index b41ef0ff25..0000000000 --- a/utils/ogl/samples/ogledit/palette.cpp +++ /dev/null @@ -1,125 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.cpp -// Purpose: OGLEdit palette -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include -#include -#include - -#include "doc.h" -#include "view.h" -#include "ogledit.h" -#include "palette.h" - -// Include pixmaps -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "bitmaps/arrow.xpm" -#include "bitmaps/tool1.xpm" -#include "bitmaps/tool2.xpm" -#include "bitmaps/tool3.xpm" -#include "bitmaps/tool4.xpm" -#endif - -/* - * Object editor tool palette - * - */ - -EditorToolPalette::EditorToolPalette(wxWindow* parent, const wxPoint& pos, const wxSize& size, - long style): - TOOLPALETTECLASS(parent, -1, pos, size, style) -{ - currentlySelected = -1; - -#if 1 // ndef __WXGTK__ - SetMaxRowsCols(1000, 1); -#endif -} - -bool EditorToolPalette::OnLeftClick(int toolIndex, bool toggled) -{ - // BEGIN mutual exclusivity code - if (toggled && (currentlySelected != -1) && (toolIndex != currentlySelected)) - ToggleTool(currentlySelected, FALSE); - - if (toggled) - currentlySelected = toolIndex; - else if (currentlySelected == toolIndex) - currentlySelected = -1; - // END mutual exclusivity code - - return TRUE; -} - -void EditorToolPalette::OnMouseEnter(int toolIndex) -{ -} - -void EditorToolPalette::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - TOOLPALETTECLASS::SetSize(x, y, width, height, sizeFlags); -} - -EditorToolPalette *MyApp::CreatePalette(wxFrame *parent) -{ - // Load palette bitmaps -#ifdef __WXMSW__ - wxBitmap PaletteTool1("TOOL1"); - wxBitmap PaletteTool2("TOOL2"); - wxBitmap PaletteTool3("TOOL3"); - wxBitmap PaletteTool4("TOOL4"); - wxBitmap PaletteArrow("ARROWTOOL"); -#elif defined(__WXGTK__) || defined(__WXMOTIF__) - wxBitmap PaletteTool1(tool1_xpm); - wxBitmap PaletteTool2(tool2_xpm); - wxBitmap PaletteTool3(tool3_xpm); - wxBitmap PaletteTool4(tool4_xpm); - wxBitmap PaletteArrow(arrow_xpm); -#endif - - EditorToolPalette *palette = new EditorToolPalette(parent, wxPoint(0, 0), wxSize(-1, -1), wxTB_HORIZONTAL); - - palette->SetMargins(2, 2); - -#ifdef __WXMSW__ - if (palette->IsKindOf(CLASSINFO(wxToolBar95))) - ((wxToolBar95 *)palette)->SetToolBitmapSize(wxSize(22, 22)); -#endif - - palette->AddTool(PALETTE_ARROW, PaletteArrow, wxNullBitmap, TRUE, 0, -1, NULL, "Pointer"); - palette->AddTool(PALETTE_TOOL1, PaletteTool1, wxNullBitmap, TRUE, 0, -1, NULL, "Tool 1"); - palette->AddTool(PALETTE_TOOL2, PaletteTool2, wxNullBitmap, TRUE, 0, -1, NULL, "Tool 2"); - palette->AddTool(PALETTE_TOOL3, PaletteTool3, wxNullBitmap, TRUE, 0, -1, NULL, "Tool 3"); - palette->AddTool(PALETTE_TOOL4, PaletteTool4, wxNullBitmap, TRUE, 0, -1, NULL, "Tool 4"); - - palette->Realize(); - - palette->ToggleTool(PALETTE_ARROW, TRUE); - palette->currentlySelected = PALETTE_ARROW; - return palette; -} - diff --git a/utils/ogl/samples/ogledit/palette.h b/utils/ogl/samples/ogledit/palette.h deleted file mode 100644 index 2e9102f7db..0000000000 --- a/utils/ogl/samples/ogledit/palette.h +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: palette.h -// Purpose: OGL sample palette -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGLSAMPLE_PALETTE_H_ -#define _OGLSAMPLE_PALETTE_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include -#if 0 // def __WXGTK__ -#include -#else -#include -#endif - -/* - * Object editor tool palette - * - */ - -// TODO for wxWin: wxToolBar95 cannot be moved to a non-0,0 position! -// Needs to have a parent window... -// So use a simple toolbar at present. -#if 0 // def __WXGTK__ -#define TOOLPALETTECLASS wxToolBar -#else -#define TOOLPALETTECLASS wxToolBarSimple -#endif - -class EditorToolPalette: public TOOLPALETTECLASS -{ - public: - int currentlySelected; - - EditorToolPalette(wxWindow *parent, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTB_VERTICAL); - bool OnLeftClick(int toolIndex, bool toggled); - void OnMouseEnter(int toolIndex); - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); -}; - -#define PALETTE_TOOL1 1 -#define PALETTE_TOOL2 2 -#define PALETTE_TOOL3 3 -#define PALETTE_TOOL4 4 -#define PALETTE_TOOL5 5 -#define PALETTE_TOOL6 6 -#define PALETTE_TOOL7 7 -#define PALETTE_TOOL8 8 -#define PALETTE_TOOL9 9 -#define PALETTE_ARROW 10 - -#endif - // _OGLSAMPLE_PALETTE_H_ diff --git a/utils/ogl/samples/ogledit/view.cpp b/utils/ogl/samples/ogledit/view.cpp deleted file mode 100644 index 0d8e58232b..0000000000 --- a/utils/ogl/samples/ogledit/view.cpp +++ /dev/null @@ -1,337 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.cpp -// Purpose: Implements view functionality in OGLEdit -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h! -#endif - -#include "ogledit.h" -#include "doc.h" -#include "view.h" -#include "palette.h" - -IMPLEMENT_DYNAMIC_CLASS(DiagramView, wxView) - -BEGIN_EVENT_TABLE(DiagramView, wxView) - EVT_MENU(OGLEDIT_CUT, DiagramView::OnCut) - EVT_MENU(OGLEDIT_CHANGE_BACKGROUND_COLOUR, DiagramView::OnChangeBackgroundColour) - EVT_MENU(OGLEDIT_EDIT_LABEL, DiagramView::OnEditLabel) -END_EVENT_TABLE() - -// What to do when a view is created. Creates actual -// windows for displaying the view. -bool DiagramView::OnCreate(wxDocument *doc, long flags) -{ - frame = GetMainFrame(); - canvas = GetMainFrame()->canvas; - canvas->view = this; - - SetFrame(frame); - Activate(TRUE); - - // Initialize the edit menu Undo and Redo items - doc->GetCommandProcessor()->SetEditMenu(((MyFrame *)frame)->editMenu); - doc->GetCommandProcessor()->Initialize(); - - wxShapeCanvas *shapeCanvas = (wxShapeCanvas *)canvas; - DiagramDocument *diagramDoc = (DiagramDocument *)doc; - shapeCanvas->SetDiagram(diagramDoc->GetDiagram()); - diagramDoc->GetDiagram()->SetCanvas(shapeCanvas); - - return TRUE; -} - -#define CENTER FALSE // Place the drawing to the center of the page - - -// Sneakily gets used for default print/preview -// as well as drawing on the screen. -void DiagramView::OnDraw(wxDC *dc) -{ - - /* You might use THIS code if you were scaling - * graphics of known size to fit on the page. - */ - int w, h; - - // We need to adjust for the graphic size, a formula will be added - float maxX = 900; - float maxY = 700; - // A better way of find the maxium values would be to search through - // the linked list - - // Let's have at least 10 device units margin - float marginX = 10; - float marginY = 10; - - // Add the margin to the graphic size - maxX += (2 * marginX); - maxY += (2 * marginY); - - // Get the size of the DC in pixels - dc->GetSize (&w, &h); - - // Calculate a suitable scaling factor - float scaleX = (float) (w / maxX); - float scaleY = (float) (h / maxY); - - // Use x or y scaling factor, whichever fits on the DC - float actualScale = wxMin (scaleX, scaleY); - - float posX, posY; - // Calculate the position on the DC for centring the graphic - if (CENTER == TRUE) // center the drawing - { - posX = (float) ((w - (200 * actualScale)) / 2.0); - posY = (float) ((h - (200 * actualScale)) / 2.0); - } - else // Use defined presets - { - posX = 10; - posY = 35; - } - - - // Set the scale and origin - dc->SetUserScale (actualScale, actualScale); - dc->SetDeviceOrigin ((long) posX, (long) posY); - - // This part was added to preform the print preview and printing functions - - dc->BeginDrawing(); // Allows optimization of drawing code under MS Windows. - wxDiagram *diagram_p=((DiagramDocument*)GetDocument())->GetDiagram(); // Get the current diagram - if (diagram_p->GetShapeList()) - { - wxCursor *old_cursor = NULL; - wxNode *current = diagram_p->GetShapeList()->First(); - - while (current) // Loop through the entire list of shapes - { - wxShape *object = (wxShape *)current->Data(); - if (!object->GetParent()) - { - object->Draw(* dc); // Draw the shape onto our printing dc - } - current = current->Next(); // Procede to the next shape in the list - } - } - dc->EndDrawing(); // Allows optimization of drawing code under MS Windows. -} - -void DiagramView::OnUpdate(wxView *sender, wxObject *hint) -{ - if (canvas) - canvas->Refresh(); -} - -// Clean up windows used for displaying the view. -bool DiagramView::OnClose(bool deleteWindow) -{ - if (!GetDocument()->Close()) - return FALSE; - - DiagramDocument *diagramDoc = (DiagramDocument *)GetDocument(); - diagramDoc->GetDiagram()->SetCanvas(NULL); - - canvas->Clear(); - canvas->SetDiagram(NULL); - canvas->view = NULL; - canvas = NULL; - - wxString s = wxTheApp->GetAppName(); - if (frame) - frame->SetTitle(s); - - SetFrame(NULL); - - Activate(FALSE); - - return TRUE; -} - -wxShape *DiagramView::FindSelectedShape(void) -{ - DiagramDocument *doc = (DiagramDocument *)GetDocument(); - wxShape *theShape = NULL; - wxNode *node = doc->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape *eachShape = (wxShape *)node->Data(); - if ((eachShape->GetParent() == NULL) && eachShape->Selected()) - { - theShape = eachShape; - node = NULL; - } - else node = node->Next(); - } - return theShape; -} - -void DiagramView::OnCut(wxCommandEvent& event) -{ - DiagramDocument *doc = (DiagramDocument *)GetDocument(); - - wxShape *theShape = FindSelectedShape(); - if (theShape) - doc->GetCommandProcessor()->Submit(new DiagramCommand("Cut", OGLEDIT_CUT, doc, NULL, 0.0, 0.0, TRUE, theShape)); -} - -void DiagramView::OnChangeBackgroundColour(wxCommandEvent& event) -{ - DiagramDocument *doc = (DiagramDocument *)GetDocument(); - - wxShape *theShape = FindSelectedShape(); - if (theShape) - { - wxColourData data; - data.SetChooseFull(TRUE); - data.SetColour(theShape->GetBrush()->GetColour()); - - wxColourDialog *dialog = new wxColourDialog(frame, &data); - wxBrush *theBrush = NULL; - if (dialog->ShowModal() == wxID_OK) - { - wxColourData retData = dialog->GetColourData(); - wxColour col = retData.GetColour(); - theBrush = wxTheBrushList->FindOrCreateBrush(col, wxSOLID); - } - dialog->Close(); - - if (theBrush) - doc->GetCommandProcessor()->Submit(new DiagramCommand("Change colour", OGLEDIT_CHANGE_BACKGROUND_COLOUR, doc, - theBrush, theShape)); - } -} - -void DiagramView::OnEditLabel(wxCommandEvent& event) -{ - wxShape *theShape = FindSelectedShape(); - if (theShape) - { - wxString newLabel = wxGetTextFromUser("Enter new label", "Shape Label", ((MyEvtHandler *)theShape->GetEventHandler())->label); - GetDocument()->GetCommandProcessor()->Submit(new DiagramCommand("Edit label", OGLEDIT_EDIT_LABEL, (DiagramDocument*) GetDocument(), newLabel, theShape)); - } -} - - -/* - * Window implementations - */ - -BEGIN_EVENT_TABLE(MyCanvas, wxShapeCanvas) - EVT_MOUSE_EVENTS(MyCanvas::OnMouseEvent) - EVT_PAINT(MyCanvas::OnPaint) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxView *v, wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style): - wxShapeCanvas(parent, id, pos, size, style) -{ - SetBackgroundColour(*wxWHITE); - view = v; -} - -MyCanvas::~MyCanvas(void) -{ -} - -void MyCanvas::OnLeftClick(double x, double y, int keys) -{ - EditorToolPalette *palette = wxGetApp().frame->palette; - wxClassInfo *info = NULL; - switch (palette->currentlySelected) - { - case PALETTE_TOOL1: - { - info = CLASSINFO(wxRectangleShape); - break; - } - case PALETTE_TOOL2: - { - info = CLASSINFO(wxRoundedRectangleShape); - break; - } - case PALETTE_TOOL3: - { - info = CLASSINFO(wxEllipseShape); - break; - } - case PALETTE_TOOL4: - { - info = CLASSINFO(wxDiamondShape); - break; - } - default: - break; - } - if (info) - { - view->GetDocument()->GetCommandProcessor()->Submit(new DiagramCommand(info->GetClassName(), OGLEDIT_ADD_SHAPE, (DiagramDocument *)view->GetDocument(), info, - x, y)); - } -} - -void MyCanvas::OnRightClick(double x, double y, int keys) -{ -} - -void MyCanvas::OnDragLeft(bool draw, double x, double y, int keys) -{ -} - -void MyCanvas::OnBeginDragLeft(double x, double y, int keys) -{ -} - -void MyCanvas::OnEndDragLeft(double x, double y, int keys) -{ -} - -void MyCanvas::OnDragRight(bool draw, double x, double y, int keys) -{ -} - -void MyCanvas::OnBeginDragRight(double x, double y, int keys) -{ -} - -void MyCanvas::OnEndDragRight(double x, double y, int keys) -{ -} - -void MyCanvas::OnMouseEvent(wxMouseEvent& event) -{ - wxShapeCanvas::OnMouseEvent(event); -} - -void MyCanvas::OnPaint(wxPaintEvent& event) -{ -// if (GetDiagram()) - wxShapeCanvas::OnPaint(event); -} diff --git a/utils/ogl/samples/ogledit/view.h b/utils/ogl/samples/ogledit/view.h deleted file mode 100644 index f4c508e198..0000000000 --- a/utils/ogl/samples/ogledit/view.h +++ /dev/null @@ -1,79 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.h -// Purpose: View-related classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGLSAMPLE_VIEW_H_ -#define _OGLSAMPLE_VIEW_H_ - -#ifdef __GNUG__ -// #pragma interface "view.h" -#endif - -#include "doc.h" -#include "ogl.h" - -class MyCanvas: public wxShapeCanvas -{ -// DECLARE_DYNAMIC_CLASS(wxShapeCanvas) - protected: - public: - wxView *view; - - MyCanvas(wxView *view, wxWindow *parent = NULL, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxRETAINED); - ~MyCanvas(void); - - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - - virtual void OnLeftClick(double x, double y, int keys = 0); - virtual void OnRightClick(double x, double y, int keys = 0); - - virtual void OnDragLeft(bool draw, double x, double y, int keys=0); // Erase if draw false - virtual void OnBeginDragLeft(double x, double y, int keys=0); - virtual void OnEndDragLeft(double x, double y, int keys=0); - - virtual void OnDragRight(bool draw, double x, double y, int keys=0); // Erase if draw false - virtual void OnBeginDragRight(double x, double y, int keys=0); - virtual void OnEndDragRight(double x, double y, int keys=0); - -DECLARE_EVENT_TABLE() -}; - -class DiagramView: public wxView -{ - DECLARE_DYNAMIC_CLASS(DiagramView) - private: - public: - wxFrame *frame; - MyCanvas *canvas; - - DiagramView(void) { canvas = NULL; frame = NULL; }; - ~DiagramView(void) {}; - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC *dc); - void OnUpdate(wxView *sender, wxObject *hint = NULL); - bool OnClose(bool deleteWindow = TRUE); - - wxShape *FindSelectedShape(void); - -// void OnMenuCommand(int cmd); - - void OnCut(wxCommandEvent& event); - void OnChangeBackgroundColour(wxCommandEvent& event); - void OnEditLabel(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _OGLSAMPLE_VIEW_H_ diff --git a/utils/ogl/samples/studio/bitmaps/alignb.bmp b/utils/ogl/samples/studio/bitmaps/alignb.bmp deleted file mode 100644 index 6cc2e1dee47c12433ba418577a2e5ad73fab4848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcma(~u?>JQ3^NiN1DwGf?EKP+GUlZ2U3w8O1iKLn5)y7~M{(M2`-Q+kTgio-$pIr3 yIJ<@@69WdYU=~JYi`E)lf%k&DI+8~tN`4^$nJY-OD*JU>wjJEKHuH!bxvFW diff --git a/utils/ogl/samples/studio/bitmaps/alignb.xpm b/utils/ogl/samples/studio/bitmaps/alignb.xpm deleted file mode 100644 index c3b57a5869..0000000000 --- a/utils/ogl/samples/studio/bitmaps/alignb.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignb_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ........", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" ..... .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" ..... ........", -" ", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/alignl.bmp b/utils/ogl/samples/studio/bitmaps/alignl.bmp deleted file mode 100644 index 30471101b16de3328c3d7a9ddbb74c95669b30c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKju@QhU3fPl58tp)=Q2Jo8bgU*r`XQ zqpFK#Mn{w=#ps68D(8$_P->|Z>mbio$leeL#26AdfBgB^?p|K+nFqW7@RnP41Lmtt AkpKVy diff --git a/utils/ogl/samples/studio/bitmaps/alignr.xpm b/utils/ogl/samples/studio/bitmaps/alignr.xpm deleted file mode 100644 index 3f873eed4e..0000000000 --- a/utils/ogl/samples/studio/bitmaps/alignr.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignr_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ...... ", -" .XXXX. ", -" .XXXX. ", -" .XXXX. ", -" ...... ", -" ", -" ", -" ........... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/alignt.bmp b/utils/ogl/samples/studio/bitmaps/alignt.bmp deleted file mode 100644 index 4505cbab566385942c0912c245668a2567a6e4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKkF%Ez*3|OdIzEIAs*ie($j$$j@{;1V~tY85%7&OAt xRk@Kpqg9j`#n=R9Rn8f;QR=7^Z-Dj*I)92ty-z9KwtE_g+7Cp#O78pXpD*v#PFw&0 diff --git a/utils/ogl/samples/studio/bitmaps/alignt.xpm b/utils/ogl/samples/studio/bitmaps/alignt.xpm deleted file mode 100644 index 65fc1b5ccb..0000000000 --- a/utils/ogl/samples/studio/bitmaps/alignt.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *alignt_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ..... ........", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" ..... .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" ........", -" ", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/arrow.bmp b/utils/ogl/samples/studio/bitmaps/arrow.bmp deleted file mode 100644 index d406ceb64f017d99bcc2d4913aef75135de357a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmb7-I}UJZQ>1WPN=;5qEQ3zc?;o59U+Ka+r!5!mH1Gr)e_0X9zQo7Bn*m`tDP z>tSJ;fdXA9#W(4KsI?;JEJm}1)|8}VswC~|bu-BQ Vombvu=JhAub(#Nm-N`e*_yJ^>eVzaS diff --git a/utils/ogl/samples/studio/bitmaps/arrow.xpm b/utils/ogl/samples/studio/bitmaps/arrow.xpm deleted file mode 100644 index e7cab6ae18..0000000000 --- a/utils/ogl/samples/studio/bitmaps/arrow.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *arrow_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 22 22 2 1", -/* colors */ -". c #000000", -"# c #c0c0c0", -/* pixels */ -"######################", -"######################", -"######################", -"######################", -"######################", -"#######.##############", -"#######..#############", -"#######...############", -"#######....###########", -"#######.....##########", -"#######......#########", -"#######.......########", -"#######........#######", -"#######.....##########", -"#######..#..##########", -"#######.###..#########", -"###########..#########", -"############..########", -"############..########", -"######################", -"######################", -"######################" -}; diff --git a/utils/ogl/samples/studio/bitmaps/bitmap1.bmp b/utils/ogl/samples/studio/bitmaps/bitmap1.bmp deleted file mode 100644 index 13e2170b7369879a97bdd01c57b42af6f4126264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZup$qj%o3^Ni^o-hV;@Mo922+wZTPQ(hutwBPF)JM*)+X=-^TgaK5$N?i2IJ*8x z1_Y+Pr$L8wG(}1gYeu+p9^X1)J~P=@jSHSMY)3;sNkY2 zEPWRLqal$RV;7jK=A7!i)5w*|^bK%qLGNEQTGkCeTtf<*)|jz0bZVCKqs&^|_qZ0` QxOhk{d)WGeIhJR90ll(R-T(jq diff --git a/utils/ogl/samples/studio/bitmaps/copy.bmp b/utils/ogl/samples/studio/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa79e0a42c1ffb7cdbb90fd4f699dce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVK?*`K3`9pLxU9$U91{2|@hV+>tjiv)Cz3AyzP{vxy7<$~OeTT!c7JQf6T89- z%?kmn<${;(P#uFN<0A#FuUo(qgT{&F@ekspii W=d@ZzPG(Cb=QBs}_=7thzxV(viB<;y diff --git a/utils/ogl/samples/studio/bitmaps/copy.xpm b/utils/ogl/samples/studio/bitmaps/copy.xpm deleted file mode 100644 index 47565c1cae..0000000000 --- a/utils/ogl/samples/studio/bitmaps/copy.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *copy_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c Gray100", -"o c #000080", -/* pixels */ -" ", -" ...... ", -" .XXXX.. ", -" .XXXX.X. ", -" .X..X.oooooo ", -" .XXXXXoXXXXoo ", -" .X....oXXXXoXo ", -" .XXXXXoX..Xoooo", -" .X....oXXXXXXXo", -" .XXXXXoX.....Xo", -" ......oXXXXXXXo", -" oX.....Xo", -" oXXXXXXXo", -" ooooooooo", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/copysize.bmp b/utils/ogl/samples/studio/bitmaps/copysize.bmp deleted file mode 100644 index 36060ad72b54ea2be52e4a1ed7b4dda2ca3cf18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmY*SIS#`x3}b-;8ZxBM=sU9KFPf^3eo}TVeo?>RP?8g%v`FfLyzM^}KD0OaB3JT( zCl&anmc%SrXaEDPl~I|Z_fC(&$iNtpk$lmjm`TEJhyo%k)jjO4=f?j&&jF^kxcgy{ PbY7_X>Z|3R^1F!>`pH0Q diff --git a/utils/ogl/samples/studio/bitmaps/copysize.xpm b/utils/ogl/samples/studio/bitmaps/copysize.xpm deleted file mode 100644 index 4694bd4083..0000000000 --- a/utils/ogl/samples/studio/bitmaps/copysize.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *copysize_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -".......... ... ", -".XXXXXXXX. . ", -".XXXXXXXX. . ", -".XXXXXXXX. .....", -".XXXXXXXX. ... ", -".......... . ", -" ", -" . . . . . . ", -" ", -" . ...... . ", -" .XXXX. ", -" . ...... . ", -" ", -" . . . . . . " -}; diff --git a/utils/ogl/samples/studio/bitmaps/cut.bmp b/utils/ogl/samples/studio/bitmaps/cut.bmp deleted file mode 100644 index 15554338a01bc4d8f0a501c32237e84200e64583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvU!3}^Q5Cqr6gr}Ba8OD(CvKJo2^+{<|WDB@(K8*2TclNjo+kV075Ef~cCTYMZ z2hQ$)mH}PlY>+FWlp?l4?H9GSB752pV-TKD6nB)nBfGIKB%-0 z4e`tjREbcnVJN9uYq$q}gnD-dd2S))joA(4hnda^3ME@9IU}4&(EFo)=5zeN_9_1d HoZL78p=?Bh diff --git a/utils/ogl/samples/studio/bitmaps/cutpoint.xpm b/utils/ogl/samples/studio/bitmaps/cutpoint.xpm deleted file mode 100644 index 597b6b01ee..0000000000 --- a/utils/ogl/samples/studio/bitmaps/cutpoint.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *cutpoint_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 16 15 3 1", -/* colors */ -". c #000000", -"# c #800000", -"a c #c0c0c0", -/* pixels */ -"aaaaaaaaaaaaaaaa", -"aaaaaaaaaaaaaaaa", -"aa#aaaaaaaaa#aaa", -"aaa#aaaaaaa#aaaa", -"aaaa#aaaaa#aaaaa", -"aaaaa#...#aaaaaa", -"aaaaaa#.#.aaaaaa", -".......#........", -"aaaaaa#.#.aaaaaa", -"aaaaa#...#aaaaaa", -"aaaa#aaaaa#aaaaa", -"aaa#aaaaaaa#aaaa", -"aa#aaaaaaaaa#aaa", -"aaaaaaaaaaaaaaaa", -"aaaaaaaaaaaaaaaa" -}; diff --git a/utils/ogl/samples/studio/bitmaps/file1.ico b/utils/ogl/samples/studio/bitmaps/file1.ico deleted file mode 100644 index cc828ab4f2c896df378febb8e501332db93e4c54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH`O%B2!6oiLr;?8mdS()BKkM@qnaa{HW_zlFwMHfw6xX>x{{^%n>1}SM$DOtv2 zlCJoiN4_NKe2^Au1>RxO5exWt8zC_iF&vgqwN|_*S|4i75#)2p=8vDg0W|PcSm#!L zfiIm0@iqdDGlQnP!xDa`^V!E|&DpTupO3!QR@&UZI-tMjuDxNrH}-nkN%m4N@aA_a FJpqxL*3JL` diff --git a/utils/ogl/samples/studio/bitmaps/folder1.ico b/utils/ogl/samples/studio/bitmaps/folder1.ico deleted file mode 100644 index c43de1c07cd64c30413a2c53f521d0e203198a58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1078 zcmeH{F%AMD5Jf+$1(o3lRA!Iiy)2xP!~?vfUP&SZtvm{`_HB2qB-9 zf(GTBYc(nu}C6AaoD0pBjeB)ZJH5J^>QMSWswUDMPn`8aB-=0Ml-AgfD*@PpCja_E+ T_r_T%*c$R5s2Azc-l_Bfjgso2 diff --git a/utils/ogl/samples/studio/bitmaps/help.bmp b/utils/ogl/samples/studio/bitmaps/help.bmp deleted file mode 100644 index 2d9e6922cac0fb0aefa32fd5bae9d460e13484b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZuq!3}^g2t1P}{g~(&&f(u(`VyZVjR87~E7Sw@p^qTFi~p=nI%+}YJ={H-mN0|?29BK#fUL#erbtT(lh^R?4vYy(d-6AGn1|j$rr}v KbDqI%Xjd+{i$y;G diff --git a/utils/ogl/samples/studio/bitmaps/help.xpm b/utils/ogl/samples/studio/bitmaps/help.xpm deleted file mode 100644 index 27a87ebb31..0000000000 --- a/utils/ogl/samples/studio/bitmaps/help.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *help_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c #008080", -/* pixels */ -" ", -" ...... ", -" .XXXXX.. ", -" .XX...XX.. ", -" .X.. .X.. ", -" .X.. .XX.. ", -" .. .XX.. ", -" .XX.. ", -" .X.. ", -" .X.. ", -" .X.. ", -" .. ", -" .XX.. ", -" .XX.. ", -" ... " -}; diff --git a/utils/ogl/samples/studio/bitmaps/helpcs.bmp b/utils/ogl/samples/studio/bitmaps/helpcs.bmp deleted file mode 100644 index 88373816814a283aa9ecca7899faf81ce7a15b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvV!3{z&3`32Clp~D69NgKZC&ICtwG;gn%5(a;k=Ax%E6VeAXxAHgfIGN>i>|Qr zDgH-8;%kg8Fsb(=J`dZ5!;MsyQTV&Nwu@o7(Ri`byve-X0yz0?`b73&zHji5? LZQ&!hb;r)SF8kLTs=5{{JE?DUYEK&^#0pxo{w%L C5KP+u diff --git a/utils/ogl/samples/studio/bitmaps/horiz.xpm b/utils/ogl/samples/studio/bitmaps/horiz.xpm deleted file mode 100644 index 381e66fccf..0000000000 --- a/utils/ogl/samples/studio/bitmaps/horiz.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *horiz_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ..... ", -" .XXX. ", -" .XXX. ", -" .XXX. ", -" ..... ", -" ", -" ", -" ........... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/linearrow.bmp b/utils/ogl/samples/studio/bitmaps/linearrow.bmp deleted file mode 100644 index 1fd21fb08ac4a0d07a8b724700eb40c11a276698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZWjF%p0<2#a^_%H$V(hr5qq5yw8QFY*gDG6I3Fl3%1*4rLQI&+z};Dt zvxK4mOq3!avqY_xnuFF8tz|{`6V diff --git a/utils/ogl/samples/studio/bitmaps/linearrow.xpm b/utils/ogl/samples/studio/bitmaps/linearrow.xpm deleted file mode 100644 index ca554f4199..0000000000 --- a/utils/ogl/samples/studio/bitmaps/linearrow.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *linearrow_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 16 15 3 1", -/* colors */ -". c #000000", -"# c #800000", -"a c #c0c0c0", -/* pixels */ -"aaaaaaaaaaaaaaaa", -"aaaaa#aaaaaaaaaa", -"aaaaa##aaaaaaaaa", -"aaaaa###aaaaaaaa", -"aaaaa####aaaaaaa", -"aaaaa#####aaaaaa", -".....######.....", -".....######.....", -"aaaaa#####aaaaaa", -"aaaaa####aaaaaaa", -"aaaaa###aaaaaaaa", -"aaaaa##aaaaaaaaa", -"aaaaa#aaaaaaaaaa", -"aaaaaaaaaaaaaaaa", -"aaaaaaaaaaaaaaaa" -}; diff --git a/utils/ogl/samples/studio/bitmaps/new.bmp b/utils/ogl/samples/studio/bitmaps/new.bmp deleted file mode 100644 index d66feb2384ad4c626a078c995c1a3e49af78ec3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmbu2yA6Oa5JQcGL>b0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/utils/ogl/samples/studio/bitmaps/new.xpm b/utils/ogl/samples/studio/bitmaps/new.xpm deleted file mode 100644 index 754d2d20a2..0000000000 --- a/utils/ogl/samples/studio/bitmaps/new.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *new_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Gray100", -/* pixels */ -" ", -" ........ ", -" .XXXXXX.. ", -" .XXXXXX.X. ", -" .XXXXXX.... ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" .XXXXXXXXX. ", -" ........... ", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/newpoint.bmp b/utils/ogl/samples/studio/bitmaps/newpoint.bmp deleted file mode 100644 index cb4f267afca22039f403ed5f92a6c6a0c2978131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcma)!u@QhU33XfhEigttvWi5y9eoOs=CC3b9qGo0X{5tYu+ z6rVX0MdGNGG?Z4YHQWb1j(YbFQXV14f9QQ2&YA$3=;=;U&0ua+_3>YyQsonW~6N3OvKTr2(k@|B{{YeKb~(CUb3rr5zpcQ zCn>O}mP9XDa6kd~GO1FGG0<95V`X5i$V8neN$dxz4&8XX3!AZr-;ApY^eS-9oTLj~ Y^Hcc9z2|$wrXTtLH=Rc2n(WoWFRhqJ00000 diff --git a/utils/ogl/samples/studio/bitmaps/open.xpm b/utils/ogl/samples/studio/bitmaps/open.xpm deleted file mode 100644 index 54748e910d..0000000000 --- a/utils/ogl/samples/studio/bitmaps/open.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *open_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c None", -". c Black", -"X c Yellow", -"o c Gray100", -"O c #bfbf00", -/* pixels */ -" ", -" ... ", -" . . .", -" ..", -" ... ...", -" .XoX....... ", -" .oXoXoXoXo. ", -" .XoXoXoXoX. ", -" .oXoX..........", -" .XoX.OOOOOOOOO.", -" .oo.OOOOOOOOO. ", -" .X.OOOOOOOOO. ", -" ..OOOOOOOOO. ", -" ........... ", -" " -}; diff --git a/utils/ogl/samples/studio/bitmaps/paste.bmp b/utils/ogl/samples/studio/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0df7225f0a7adbe8457b41af537813bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%Ci@5Jbns$83OZ*I;# co}I%%@f6>ra3+S=gC69}eM%GII+SAI4J;x>B>(^b diff --git a/utils/ogl/samples/studio/bitmaps/paste.xpm b/utils/ogl/samples/studio/bitmaps/paste.xpm deleted file mode 100644 index 69177e9b19..0000000000 --- a/utils/ogl/samples/studio/bitmaps/paste.xpm +++ /dev/null @@ -1,27 +0,0 @@ -/* XPM */ -static char *paste_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 6 1", -" c None", -". c Black", -"X c Yellow", -"o c #808080", -"O c #000080", -"+ c Gray100", -/* pixels */ -" ", -" .... ", -" .....XX..... ", -".ooo.X..X.ooo. ", -".oo. .oo. ", -".oo........oo. ", -".oooooooooooo. ", -".oooooOOOOOOO. ", -".oooooO+++++OO ", -".oooooO+++++O+O ", -".oooooO+OOO+OOO ", -".oooooO+++++++O ", -".oooooO+OOOOO+O ", -" .....O+++++++O ", -" OOOOOOOOO " -}; diff --git a/utils/ogl/samples/studio/bitmaps/preview.bmp b/utils/ogl/samples/studio/bitmaps/preview.bmp deleted file mode 100644 index da1f4dbc4be6c2dd8fb9d7cb71cc48a4a7c139ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVu?@p83pv2yNo4mlT?N_pr2ISnd1NHDM5O^cFcMc59&^> z)PfrwsOeYM05)2ipmU4fJIss+o(=cdQCu+!%TlZiKDH!a!aP2;C|UGpLD9M;zmsLJ XIp;lzIUm!ckI6HO{IjaYcZ_-fA4^nl diff --git a/utils/ogl/samples/studio/bitmaps/preview.xpm b/utils/ogl/samples/studio/bitmaps/preview.xpm deleted file mode 100644 index 0dfdca46e1..0000000000 --- a/utils/ogl/samples/studio/bitmaps/preview.xpm +++ /dev/null @@ -1,26 +0,0 @@ -/* XPM */ -static char *preview_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 5 1", -" c Black", -". c None", -"X c Gray100", -"o c #808080", -"O c Cyan", -/* pixels */ -" .......", -" XXXXXXX ......", -" XXXXXXX . .....", -" XXXXXXX ....", -" XXXXXXXXXX ....", -" XXXXXXX ....", -" XXXXXX o..o ...", -" XXXXX oOO.oo ..", -" XXXXX .O..o. ..", -" XXXXX ....o. ..", -" XXXXX o..Ooo ..", -" XXXXXX o..o o..", -" XXXXXXX o .", -" XXXXXXXXXX . ", -" .. " -}; diff --git a/utils/ogl/samples/studio/bitmaps/print.bmp b/utils/ogl/samples/studio/bitmaps/print.bmp deleted file mode 100644 index 00319b55bb23c3c69cc051144d80e5275747c53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZur!3_d23^Ni^o@EUFY`~vgA|YX<`*bfpod|VizM>j+f}Fx~Q7! zgtHKM7yg3|DAD^Sp<0YF#C}+nSj(MC$5#Ss27*aN<{l9dJQ3^NitoWUKaQYXHtaK{cvyw!_%p*Ri9bz(b-vmXx}r)(2faSYV3`7rsq)3!X>4ws(){6V0MX5FKAjcylGXqN-n#XsS=YhW0WogZT{L^_i_GT%*k@+ph E1NJ~MtpET3 diff --git a/utils/ogl/samples/studio/bitmaps/save.xpm b/utils/ogl/samples/studio/bitmaps/save.xpm deleted file mode 100644 index 01b18f9340..0000000000 --- a/utils/ogl/samples/studio/bitmaps/save.xpm +++ /dev/null @@ -1,25 +0,0 @@ -/* XPM */ -static char *save_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 4 1", -" c None", -". c Black", -"X c #808000", -"o c #808080", -/* pixels */ -" ", -" .............. ", -" .X. . . ", -" .X. ... ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .X. .X. ", -" .XX........oX. ", -" .XXXXXXXXXXXX. ", -" .XX.........X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" .XX...... .X. ", -" ............. " -}; diff --git a/utils/ogl/samples/studio/bitmaps/straight.bmp b/utils/ogl/samples/studio/bitmaps/straight.bmp deleted file mode 100644 index 529366590b71d7afa1ef14750426a874c8df6c3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmbu2!3}^Q5Cqr6#HW^F9sccwm-?hMDzXKf<$@OAal3P{0k-{C)B#qspcxGsap`Iv q=FE!960MvAIHO7_&_QjjT0J3_kFfKrMCAR;DYEp3e$)3m`*#mOwn9e$ diff --git a/utils/ogl/samples/studio/bitmaps/straight.xpm b/utils/ogl/samples/studio/bitmaps/straight.xpm deleted file mode 100644 index 12563b4703..0000000000 --- a/utils/ogl/samples/studio/bitmaps/straight.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *straight_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 16 15 2 1", -/* colors */ -". c #000000", -"# c #c0c0c0", -/* pixels */ -"################", -".........#######", -".........#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######..#######", -"#######.........", -"#######.........", -"################" -}; diff --git a/utils/ogl/samples/studio/bitmaps/texttool.bmp b/utils/ogl/samples/studio/bitmaps/texttool.bmp deleted file mode 100644 index 09c989aac1c4833e37cb6b0f96c0c0d0cacfc14d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmbVHF%p0v3=4PO>FDGee22S#VUo?`XYeyjTT}*FEF`2&%fYsv4jKn}C6)?@LF-fX zC7CPKK!R+fWCxiNIcLNeX%yWkMHIm$B~p0fhX!YOAt?ku5^{&2)nYT(I-4KOfkx}7 W_5`$ATdeLo+T0JezsY;<=;{k{K6#)3 diff --git a/utils/ogl/samples/studio/bitmaps/texttool.xpm b/utils/ogl/samples/studio/bitmaps/texttool.xpm deleted file mode 100644 index db6308fcef..0000000000 --- a/utils/ogl/samples/studio/bitmaps/texttool.xpm +++ /dev/null @@ -1,31 +0,0 @@ -/* XPM */ -static char *texttool_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 22 22 2 1", -/* colors */ -". c #000000", -"# c #c0c0c0", -/* pixels */ -"######################", -"######################", -"######################", -"######################", -"##########..##########", -"##########..##########", -"#########....#########", -"#########....#########", -"########.....#########", -"########..#...########", -"#######..##...########", -"#######..###...#######", -"######.........#######", -"######..####...#######", -"######.######...######", -"#####..######...######", -"####....####......####", -"######################", -"######################", -"######################", -"######################", -"######################" -}; diff --git a/utils/ogl/samples/studio/bitmaps/tick.bmp b/utils/ogl/samples/studio/bitmaps/tick.bmp deleted file mode 100644 index c0d66c94601657fee33b923de9b1791844d7a331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmXv`!4bnS2vd9<&b6P6(K-6>8h!H$UytTNvWqL(DMm;L@cVON#YuV*&l?*Ih5AeU z{bqVO)bKZHuqJq2P$o+ Qrwbl?Kzn<_G@1WzKlk4xlmGw# diff --git a/utils/ogl/samples/studio/bitmaps/tick.xpm b/utils/ogl/samples/studio/bitmaps/tick.xpm deleted file mode 100644 index 6099b2b8b3c8960d90f2b46bb26681c262577c74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6101 zcmeH_-%5l~5XQasDF(fh@K48N`%pfb$3M`R5-`&G8eCmz`Z{=fCK#`YEMFWf1mn2)x zmsL%B>tvNz$*O$M=jdX92+!NBnC;`zg=g%cr?kKk8!|9m3ehu6l$nc9yOqpqayK`D zTWu-DdmwGw9!Q}El2qFjL#>h$1sRf6ucVdi^#^rF56;EQ82ZXwOb!KNNN4{eFBb#jv78e&U;}{Mvs(F|?&be&QZ~<#+Cf(dE@G z+*D=LJQ3^NiE0|T7F9qjzl2^cf>9QF?FMZ8d)1PO#h65C0vwDWSpW2H>QNDM@S zmJIC1PUJQ3!n}6e%=pgD_<}*2+Yz5YBOr`1t>vyt3|(LMK@8j3+#3B&Dlo ygm>;xkrJQ30?Ld;pCXxv6~fs8i2~vH|E+&J(|oGdii}_YJ!sUz z((YWzGDEE-(MqWb%&45RLI?!KTcy|pcxFM{N3r657vo{E>4N2o^{e;ZbNANgU-K?u CAW)M4 diff --git a/utils/ogl/samples/studio/bitmaps/vert.xpm b/utils/ogl/samples/studio/bitmaps/vert.xpm deleted file mode 100644 index 0f85e23920..0000000000 --- a/utils/ogl/samples/studio/bitmaps/vert.xpm +++ /dev/null @@ -1,24 +0,0 @@ -/* XPM */ -static char *vert_xpm[] = { -/* columns rows colors chars-per-pixel */ -"16 15 3 1", -" c None", -". c Black", -"X c Yellow", -/* pixels */ -" ", -" ........", -" .XXXXXX.", -" .XXXXXX.", -" ..... .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" .XXX. .XXXXXX.", -" ..... .XXXXXX.", -" .XXXXXX.", -" .XXXXXX.", -" ........", -" ", -" " -}; diff --git a/utils/ogl/samples/studio/cspalette.cpp b/utils/ogl/samples/studio/cspalette.cpp deleted file mode 100644 index 50c5aee777..0000000000 --- a/utils/ogl/samples/studio/cspalette.cpp +++ /dev/null @@ -1,153 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cspalette.cpp -// Purpose: OGLEdit palette -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include -#include -#include - -#include "doc.h" -#include "view.h" -#include "studio.h" -#include "cspalette.h" -#include "symbols.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "bitmaps/arrow.xpm" -#include "bitmaps/texttool.xpm" -#endif - -/* - * Object editor tool palette - * - */ - -csEditorToolPalette::csEditorToolPalette(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style): - TOOLPALETTECLASS(parent, id, pos, size, style) -{ - m_currentlySelected = -1; - - SetMaxRowsCols(1, 1000); -} - -bool csEditorToolPalette::OnLeftClick(int toolIndex, bool toggled) -{ - // BEGIN mutual exclusivity code - if (toggled && (m_currentlySelected != -1) && (toolIndex != m_currentlySelected)) - ToggleTool(m_currentlySelected, FALSE); - - if (toggled) - m_currentlySelected = toolIndex; - else if (m_currentlySelected == toolIndex) - m_currentlySelected = -1; - // END mutual exclusivity code - - return TRUE; -} - -void csEditorToolPalette::OnMouseEnter(int toolIndex) -{ - wxString msg(""); - if (toolIndex == PALETTE_ARROW) - msg = "Pointer"; - else if (toolIndex != -1) - { - csSymbol* symbol = wxGetApp().GetSymbolDatabase()->FindSymbol(toolIndex); - if (symbol) - msg = symbol->GetName(); - } - ((wxFrame*) wxGetApp().GetTopWindow())->SetStatusText(msg); -} - -void csEditorToolPalette::SetSize(int x, int y, int width, int height, int sizeFlags) -{ - TOOLPALETTECLASS::SetSize(x, y, width, height, sizeFlags); -} - -void csEditorToolPalette::SetSelection(int sel) -{ - if ((sel != m_currentlySelected) && (m_currentlySelected != -1)) - { - ToggleTool(m_currentlySelected, FALSE); - } - m_currentlySelected = sel; - ToggleTool(m_currentlySelected, TRUE); -} - -bool csApp::CreatePalette(wxFrame *parent) -{ - // First create a layout window - wxSashLayoutWindow* win = new wxSashLayoutWindow(parent, ID_LAYOUT_WINDOW_PALETTE, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D|wxCLIP_CHILDREN); - win->SetDefaultSize(wxSize(10000, 40)); - win->SetOrientation(wxLAYOUT_HORIZONTAL); - win->SetAlignment(wxLAYOUT_TOP); - win->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - win->SetSashVisible(wxSASH_BOTTOM, TRUE); - - m_diagramPaletteSashWindow = win; - - m_diagramPaletteSashWindow->Show(FALSE); - - // Load palette bitmaps -#ifdef __WXMSW__ - wxBitmap PaletteArrow("arrowtool"); - wxBitmap TextTool("texttool"); -#elif defined(__WXGTK__) || defined(__WXMOTIF__) - wxBitmap PaletteArrow(arrow_xpm); - wxBitmap TextTool(texttool_xpm); -#endif - - csEditorToolPalette *palette = new csEditorToolPalette(m_diagramPaletteSashWindow, ID_DIAGRAM_PALETTE, wxPoint(0, 0), wxSize(-1, -1), wxTB_HORIZONTAL|wxNO_BORDER); - - palette->SetMargins(2, 2); - - palette->SetToolBitmapSize(wxSize(32, 32)); - - palette->AddTool(PALETTE_ARROW, PaletteArrow, wxNullBitmap, TRUE, 0, -1, NULL, "Pointer"); - palette->AddTool(PALETTE_TEXT_TOOL, TextTool, wxNullBitmap, TRUE, 0, -1, NULL, "Text"); - - wxNode* node = GetSymbolDatabase()->GetSymbols().First(); - while (node) - { - csSymbol* symbol = (csSymbol*) node->Data(); - wxBitmap* bitmap = GetSymbolDatabase()->CreateToolBitmap(symbol); - palette->AddTool(symbol->GetToolId(), *bitmap, wxNullBitmap, TRUE, 0, -1, NULL, symbol->GetName()); - - delete bitmap; - - node = node->Next(); - } - - palette->Realize(); - - palette->SetSelection(PALETTE_ARROW); - m_diagramPalette = palette; - - return TRUE; -} - diff --git a/utils/ogl/samples/studio/cspalette.h b/utils/ogl/samples/studio/cspalette.h deleted file mode 100644 index 67a8e63740..0000000000 --- a/utils/ogl/samples/studio/cspalette.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cspalette.h -// Purpose: OGL sample palette -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_CSPALETTE_H_ -#define _STUDIO_CSPALETTE_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include -#include - -/* - * Object editor tool palette - * - */ - -// TODO for wxWin: wxToolBar95 cannot be moved to a non-0,0 position! -// Needs to have a parent window... -// So use a simple toolbar at present. -#define TOOLPALETTECLASS wxToolBarSimple - -class csEditorToolPalette: public TOOLPALETTECLASS -{ -public: - - csEditorToolPalette(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxTB_VERTICAL); - - bool OnLeftClick(int toolIndex, bool toggled); - void OnMouseEnter(int toolIndex); - - inline int GetSelection() const { return m_currentlySelected; } - void SetSelection(int sel); - - void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - -protected: - int m_currentlySelected; -}; - -#define PALETTE_ARROW 200 -#define PALETTE_TEXT_TOOL 201 - -#endif - // _STUDIO_CSPALETTE_H_ diff --git a/utils/ogl/samples/studio/csprint.cpp b/utils/ogl/samples/studio/csprint.cpp deleted file mode 100644 index 8006c2717f..0000000000 --- a/utils/ogl/samples/studio/csprint.cpp +++ /dev/null @@ -1,318 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: csprint.cpp -// Purpose: Printing and clipboard functionality -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include -#include - -#ifdef __WXMSW__ -#include -#endif - -#include "studio.h" -#include "doc.h" -#include "shapes.h" -#include "view.h" - -IMPLEMENT_DYNAMIC_CLASS(wxDiagramClipboard, wxDiagram) - -// Copy selection -bool wxDiagramClipboard::Copy(wxDiagram* diagram) -{ - DeleteAllShapes(); - - return DoCopy(diagram, this, FALSE, NULL); -} - -// Copy contents to the diagram, with new ids. - -bool wxDiagramClipboard::Paste(wxDiagram* diagram, wxDC* dc, int offsetX, int offsetY) -{ - return DoCopy(this, diagram, TRUE, dc, offsetX, offsetY); -} - -// Universal copy function (to or from clipboard). -// TODO: -// Note that this only works for non-composites so far (nested shapes -// don't have their old-to-new object mappings stored). -// Also, lines don't yet get their attachment points moved to the new offset position -// if they have more than 2 points. -bool wxDiagramClipboard::DoCopy(wxDiagram* diagramFrom, wxDiagram* diagramTo, bool newIds, - wxDC* dc, int offsetX, int offsetY) -{ - OnStartCopy(diagramTo); - - wxHashTable mapping(wxKEY_INTEGER); - - // First copy all node shapes. - wxList* shapeList = diagramFrom->GetShapeList(); - wxNode* node = shapeList->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (((diagramFrom == this) || shape->Selected()) && !shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxShape* newShape = shape->CreateNewCopy(); - newShape->GetLines().Clear(); - if (newIds) - { - newShape->AssignNewIds(); - } - mapping.Put((long) shape, (wxObject*) newShape); - - newShape->SetX(newShape->GetX() + offsetX); - newShape->SetY(newShape->GetY() + offsetY); - - OnAddShape(diagramTo, newShape, dc); - - } - node = node->Next(); - } - - node = shapeList->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (((diagramFrom == this) || shape->Selected()) && shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxLineShape* lineShape = (wxLineShape*) shape; - // Only copy a line if its ends are selected too. - if ((diagramFrom == this) || (lineShape->GetTo()->Selected() && lineShape->GetFrom()->Selected())) - { - wxLineShape* newShape = (wxLineShape*) shape->CreateNewCopy(); - mapping.Put((long) shape, (wxObject*) newShape); - - if (newIds) - newShape->AssignNewIds(); - - wxShape* fromShape = (wxShape*) mapping.Get((long) lineShape->GetFrom()); - wxShape* toShape = (wxShape*) mapping.Get((long) lineShape->GetTo()); - - wxASSERT_MSG( (fromShape != NULL), "Could not find 'from' shape"); - wxASSERT_MSG( (toShape != NULL), "Could not find 'to' shape"); - - fromShape->AddLine(newShape, toShape, newShape->GetAttachmentFrom(), - newShape->GetAttachmentTo()); - - OnAddShape(diagramTo, newShape, dc); - - } - } - node = node->Next(); - } - - // Now make sure line ordering is correct - node = shapeList->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (((diagramFrom == this) || shape->Selected()) && !shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxShape* newShape = (wxShape*) mapping.Get((long) shape); - - // Make a list of all the new lines, in the same order as the old lines. - // Then apply the list of new lines to the shape. - wxList newLines; - wxNode* lineNode = shape->GetLines().First(); - while (lineNode) - { - wxLineShape* lineShape = (wxLineShape*) lineNode->Data(); - if ((diagramFrom == this) || (lineShape->GetTo()->Selected() && lineShape->GetFrom()->Selected())) - { - wxLineShape* newLineShape = (wxLineShape*) mapping.Get((long) lineShape); - - wxASSERT_MSG( (newLineShape != NULL), "Could not find new line shape"); - - newLines.Append(newLineShape); - } - - lineNode = lineNode->Next(); - } - - if (newLines.Number() > 0) - newShape->ApplyAttachmentOrdering(newLines); - } - node = node->Next(); - } - - OnEndCopy(diagramTo); - - return TRUE; -} - -#ifdef __WXMSW__ -// Draw contents to a Windows metafile device context and a bitmap, and copy -// these to the Windows clipboard -bool wxDiagramClipboard::CopyToClipboard(double scale) -{ - // Make a metafile DC - wxMetaFileDC mfDC; - if (mfDC.Ok()) - { - mfDC.SetUserScale(scale, scale); - - // Draw on metafile DC - Redraw(mfDC); - - int printWidth = mfDC.MaxX() - mfDC.MinX(); - int printHeight = mfDC.MaxY() - mfDC.MinY(); - int maxX = (int)mfDC.MaxX(); - int maxY = (int)mfDC.MaxY(); - wxMetaFile *mf = mfDC.Close(); - - // Set to a bitmap memory DC - wxBitmap *newBitmap = new wxBitmap((int)(maxX + 10), (int)(maxY + 10)); - if (!newBitmap->Ok()) - { - delete newBitmap; - - char buf[200]; - sprintf(buf, "Sorry, could not allocate clipboard bitmap (%dx%d)", (maxX+10), (maxY+10)); - wxMessageBox(buf, "Clipboard copy problem"); - return FALSE; - } - - wxMemoryDC memDC; - memDC.SelectObject(*newBitmap); - memDC.Clear(); - - // Now draw on memory bitmap DC - Redraw(memDC); - - memDC.SelectObject(wxNullBitmap); - - // Open clipboard and set the data - if (wxOpenClipboard()) - { - wxEmptyClipboard(); - - // Copy the bitmap to the clipboard - wxSetClipboardData(wxDF_BITMAP, newBitmap, 0, 0); - - if (mf) - { - // Copy the metafile to the clipboard - // Allow a small margin - bool success = mf->SetClipboard((int)(mfDC.MaxX() + 15), (int)(mfDC.MaxY() + 15)); - } - - // Close clipboard - wxCloseClipboard(); - } - - delete newBitmap; - delete mf; - - } - return TRUE; -} -#endif - // __WXMSW__ - -// Override this to e.g. have the shape added through a Do/Undo command system. -// By default, we'll just add it directly to the destination diagram. -bool wxDiagramClipboard::OnAddShape(wxDiagram* diagramTo, wxShape* newShape, wxDC* dc) -{ - diagramTo->AddShape(newShape); - - if (dc && (diagramTo != this)) - { - newShape->Select(TRUE, dc); - } - - return TRUE; -} - -/* - * csDiagramClipboard - */ - -IMPLEMENT_DYNAMIC_CLASS(csDiagramClipboard, wxDiagramClipboard) - -// Start/end copying -bool csDiagramClipboard::OnStartCopy(wxDiagram* diagramTo) -{ - // Do nothing if copying to the clipboard - if (diagramTo == this) - return TRUE; - - // Deselect all objects initially. - - csDiagram* diagram = (csDiagram*) diagramTo; - csDiagramDocument* doc = diagram->GetDocument(); - ((csDiagramView*)doc->GetFirstView())->SelectAll(FALSE); - - m_currentCmd = new csDiagramCommand("Paste", doc); - - return TRUE; -} - -bool csDiagramClipboard::OnEndCopy(wxDiagram* diagramTo) -{ - // Do nothing if copying to the clipboard - if (diagramTo == this) - return TRUE; - - csDiagram* diagram = (csDiagram*) diagramTo; - csDiagramDocument* doc = diagram->GetDocument(); - - if (m_currentCmd) - { - if (m_currentCmd->GetStates().Number() == 0) - { - delete m_currentCmd; - } - else - { - doc->GetCommandProcessor()->Submit(m_currentCmd); - m_currentCmd = NULL; - } - } - return TRUE; -} - -// Use the command framework to add the shapes, if we're copying to a diagram and -// not the clipboard. -bool csDiagramClipboard::OnAddShape(wxDiagram* diagramTo, wxShape* newShape, wxDC* dc) -{ - if (diagramTo == this) - { - diagramTo->AddShape(newShape); - } - else - { - csDiagram* diagram = (csDiagram*) diagramTo; - csDiagramDocument* doc = diagram->GetDocument(); - - if (newShape->IsKindOf(CLASSINFO(wxLineShape))) - m_currentCmd->AddState(new csCommandState(ID_CS_ADD_LINE_SELECT, newShape, NULL)); - else - m_currentCmd->AddState(new csCommandState(ID_CS_ADD_SHAPE_SELECT, newShape, NULL)); - } - - return TRUE; -} - - diff --git a/utils/ogl/samples/studio/dialogs.cpp b/utils/ogl/samples/studio/dialogs.cpp deleted file mode 100644 index 9fef6d120f..0000000000 --- a/utils/ogl/samples/studio/dialogs.cpp +++ /dev/null @@ -1,525 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialogs.cpp -// Purpose: Implements Studio dialogs -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include -#include "dialogs.h" -#include "doc.h" -#include "view.h" -#include "studio.h" -#include "studio_resources.h" - -IMPLEMENT_CLASS(csLabelEditingDialog, wxDialog) - -BEGIN_EVENT_TABLE(csLabelEditingDialog, wxDialog) - EVT_BUTTON(wxID_OK, csLabelEditingDialog::OnOK) -END_EVENT_TABLE() - -csLabelEditingDialog::csLabelEditingDialog(wxWindow* parent) -{ - LoadFromResource(parent, "shape_label_dialog"); - - // Accelerators - wxAcceleratorEntry entries[1]; - entries[0].Set(wxACCEL_CTRL, WXK_RETURN, wxID_OK); - wxAcceleratorTable accel(1, entries); - SetAcceleratorTable(accel); - - Centre(); - - wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT); - wxASSERT( (textCtrl != NULL) ); - -// textCtrl->SetAcceleratorTable(accel); - - textCtrl->SetFocus(); -} - -void csLabelEditingDialog::OnOK(wxCommandEvent& event) -{ - wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT); - wxASSERT( (textCtrl != NULL) ); - - SetShapeLabel(textCtrl->GetValue()); - - wxDialog::OnOK(event); -} - -void csLabelEditingDialog::SetShapeLabel(const wxString& label) -{ - wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT); - wxASSERT( (textCtrl != NULL) ); - - m_label = label; - - textCtrl->SetValue(label); -} - -IMPLEMENT_CLASS(csSettingsDialog, wxDialog) - -BEGIN_EVENT_TABLE(csSettingsDialog, wxDialog) - EVT_BUTTON(wxID_OK, csSettingsDialog::OnOK) -END_EVENT_TABLE() - -#define PROPERTY_DIALOG_WIDTH 400 -#define PROPERTY_DIALOG_HEIGHT 400 - -// For 400x400 settings dialog, size your panels to about 375x325 in dialog editor - -csSettingsDialog::csSettingsDialog(wxWindow* parent): - wxDialog(parent, -1, "Settings", wxPoint(0, 0), wxSize(PROPERTY_DIALOG_WIDTH, PROPERTY_DIALOG_HEIGHT)) -{ - m_generalSettings = NULL; - m_diagramSettings = NULL; - - m_notebook = new wxNotebook(this, ID_PROPERTY_NOTEBOOK, - wxPoint(2, 2), wxSize(PROPERTY_DIALOG_WIDTH - 4, PROPERTY_DIALOG_HEIGHT - 4)); - - m_generalSettings = new wxPanel; - - bool success = m_generalSettings->LoadFromResource(m_notebook, "general_settings_dialog"); - wxASSERT_MSG( (success), "Could not load general settings panel."); - m_notebook->AddPage(m_generalSettings, "General", TRUE); - - m_diagramSettings = new wxPanel; - - success = m_diagramSettings->LoadFromResource(m_notebook, "diagram_settings_dialog"); - wxASSERT_MSG( (success), "Could not load diagram settings panel."); - m_notebook->AddPage(m_diagramSettings, "Diagram"); - - int largeButtonWidth = 70; - int largeButtonHeight = 22; - - wxButton* okButton = new wxButton(this, wxID_OK, "OK", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton* cancelButton = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton* helpButton = new wxButton(this, wxID_HELP, "Help", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight)); - - // Constraints for the notebook - wxLayoutConstraints *c = new wxLayoutConstraints; - c->top.SameAs (this, wxTop, 5); - c->left.SameAs (this, wxLeft, 5); - c->right.SameAs (this, wxRight, 5); - c->bottom.SameAs (cancelButton, wxTop, 5); - m_notebook->SetConstraints(c); - - // Constraints for the Help button - c = new wxLayoutConstraints; - c->width.AsIs(); - c->height.AsIs(); - c->right.SameAs (this, wxRight, 5); - c->bottom.SameAs (this, wxBottom, 5); - helpButton->SetConstraints(c); - - // Constraints for the Cancel button - c = new wxLayoutConstraints; - c->width.AsIs(); - c->height.AsIs(); - c->right.SameAs (helpButton, wxLeft, 5); - c->bottom.SameAs (this, wxBottom, 5); - cancelButton->SetConstraints(c); - - // Constraints for the OK button - c = new wxLayoutConstraints; - c->width.AsIs(); - c->height.AsIs(); - c->right.SameAs (cancelButton, wxLeft, 5); - c->bottom.SameAs (this, wxBottom, 5); - okButton->SetConstraints(c); - - okButton->SetDefault(); - okButton->SetFocus(); - - Layout(); - Centre(wxBOTH); -} - -void csSettingsDialog::OnOK(wxCommandEvent& event) -{ - wxDialog::OnOK(event); -} - -bool csSettingsDialog::TransferDataToWindow() -{ - wxTextCtrl* gridSpacing = (wxTextCtrl*) m_diagramSettings->FindWindow(ID_GRID_SPACING); - wxASSERT_MSG( (gridSpacing != (wxTextCtrl*) NULL), "Could not find grid spacing control."); - - wxChoice* gridStyle = (wxChoice*) m_diagramSettings->FindWindow(ID_GRID_STYLE); - wxASSERT_MSG( (gridStyle != (wxChoice*) NULL), "Could not find grid style control."); - - gridStyle->SetSelection(wxGetApp().GetGridStyle()); - - wxString str; - str.Printf("%d", wxGetApp().GetGridSpacing()); - gridSpacing->SetValue(str); - - return TRUE; -} - -bool csSettingsDialog::TransferDataFromWindow() -{ - wxTextCtrl* gridSpacing = (wxTextCtrl*) m_diagramSettings->FindWindow(ID_GRID_SPACING); - wxASSERT_MSG( (gridSpacing != (wxTextCtrl*) NULL), "Could not find grid spacing control."); - - wxChoice* gridStyle = (wxChoice*) m_diagramSettings->FindWindow(ID_GRID_STYLE); - wxASSERT_MSG( (gridStyle != (wxChoice*) NULL), "Could not find grid style control."); - - wxGetApp().SetGridStyle(gridStyle->GetSelection()); - wxGetApp().SetGridSpacing(atoi(gridSpacing->GetValue())); - - if (wxGetApp().GetGridStyle() == csGRID_STYLE_DOTTED) - { - wxMessageBox("Dotted grid style not yet implemented.", "Studio", wxICON_EXCLAMATION); - return FALSE; - } - - // Apply settings to all open diagram documents - wxNode* node = wxGetApp().GetDocManager()->GetDocuments().First(); - while (node) - { - wxDocument* doc = (wxDocument*) node->Data(); - if (doc->IsKindOf(CLASSINFO(csDiagramDocument))) - { - csDiagramDocument* diagramDoc = (csDiagramDocument*) doc; - wxDiagram* diagram = (wxDiagram*) diagramDoc->GetDiagram(); - - diagram->SetGridSpacing((double) wxGetApp().GetGridSpacing()); - switch (wxGetApp().GetGridStyle()) - { - case csGRID_STYLE_NONE: - { - diagram->SetSnapToGrid(FALSE); - break; - } - case csGRID_STYLE_INVISIBLE: - { - diagram->SetSnapToGrid(TRUE); - break; - } - case csGRID_STYLE_DOTTED: - { - // TODO (not implemented in OGL) - break; - } - } - } - node = node->Next(); - } - - return TRUE; -} - -/* - * Shape properties dialog (tabbed) - */ - - -IMPLEMENT_CLASS(csShapePropertiesDialog, wxDialog) - -BEGIN_EVENT_TABLE(csShapePropertiesDialog, wxDialog) - EVT_BUTTON(wxID_OK, csShapePropertiesDialog::OnOK) -END_EVENT_TABLE() - -#define SHAPE_PROPERTY_DIALOG_WIDTH 400 -#define SHAPE_PROPERTY_DIALOG_HEIGHT 400 - -// For 400x400 settings dialog, size your panels to about 375x325 in dialog editor - -csShapePropertiesDialog::csShapePropertiesDialog(wxWindow* parent, const wxString& title, - wxPanel* attributeDialog, const wxString& attributeDialogName): - wxDialog(parent, -1, title, wxPoint(0, 0), wxSize(SHAPE_PROPERTY_DIALOG_WIDTH, SHAPE_PROPERTY_DIALOG_HEIGHT)) -{ - m_attributeDialog = attributeDialog; - m_alternativeAttributeDialog = NULL; - m_generalPropertiesDialog = NULL; - - m_notebook = new wxNotebook(this, ID_SHAPE_PROPERTY_NOTEBOOK, - wxPoint(2, 2), wxSize(SHAPE_PROPERTY_DIALOG_WIDTH - 4, SHAPE_PROPERTY_DIALOG_HEIGHT - 4)); - - m_generalPropertiesDialog = new csGeneralShapePropertiesDialog; - bool success = m_generalPropertiesDialog->LoadFromResource(m_notebook, "general_shape_properties_dialog"); - wxASSERT_MSG( (success), "Could not load general properties panel."); - m_notebook->AddPage(m_generalPropertiesDialog, "General"); - - success = m_attributeDialog->LoadFromResource(m_notebook, attributeDialogName); - if (!success) - { - wxMessageBox("Could not load the attribute dialog for this shape.", "Studio", wxICON_EXCLAMATION); - delete m_attributeDialog; - m_attributeDialog = NULL; - } - else - { - m_notebook->AddPage(m_attributeDialog, "Attributes"); - } - - // Try the alternative dialog (test code) - wxString str(attributeDialogName); - str += "1"; - m_alternativeAttributeDialog = new wxPanel; - success = m_alternativeAttributeDialog->LoadFromResource(m_notebook, str); - if (success) - { - m_notebook->AddPage(m_alternativeAttributeDialog, "Attributes (alternative)"); - } - else - { - delete m_alternativeAttributeDialog; - m_alternativeAttributeDialog = NULL; - } - - int largeButtonWidth = 70; - int largeButtonHeight = 22; - - wxButton* okButton = new wxButton(this, wxID_OK, "OK", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton* cancelButton = new wxButton(this, wxID_CANCEL, "Cancel", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight)); - wxButton* helpButton = new wxButton(this, wxID_HELP, "Help", wxPoint(0, 0), wxSize(largeButtonWidth, largeButtonHeight)); - - // Constraints for the notebook - wxLayoutConstraints *c = new wxLayoutConstraints; - c->top.SameAs (this, wxTop, 5); - c->left.SameAs (this, wxLeft, 5); - c->right.SameAs (this, wxRight, 5); - c->bottom.SameAs (helpButton, wxTop, 5); - m_notebook->SetConstraints(c); - - // Constraints for the Help button - c = new wxLayoutConstraints; - c->width.AsIs(); - c->height.AsIs(); - c->right.SameAs (this, wxRight, 5); - c->bottom.SameAs (this, wxBottom, 5); - helpButton->SetConstraints(c); - - // Constraints for the Cancel button - c = new wxLayoutConstraints; - c->width.AsIs(); - c->height.AsIs(); - c->right.SameAs (helpButton, wxLeft, 5); - c->bottom.SameAs (this, wxBottom, 5); - cancelButton->SetConstraints(c); - - // Constraints for the OK button - c = new wxLayoutConstraints; - c->width.AsIs(); - c->height.AsIs(); - c->right.SameAs (cancelButton, wxLeft, 5); - c->bottom.SameAs (this, wxBottom, 5); - okButton->SetConstraints(c); - - okButton->SetDefault(); - okButton->SetFocus(); - - SetDefaults(); - - Layout(); - Centre(wxBOTH); -} - -void csShapePropertiesDialog::OnOK(wxCommandEvent& event) -{ - wxTextCtrl* textCtrl = (wxTextCtrl*) m_generalPropertiesDialog->FindWindow(ID_LABELTEXT); - wxASSERT( (textCtrl != NULL) ); - - m_generalPropertiesDialog->SetShapeLabel(textCtrl->GetValue()); - - wxDialog::OnOK(event); -} - -// Set some suitable defaults in the attribute dialogs (in the first instance, -// just set all wxChoices to the first element) -void csShapePropertiesDialog::SetDefaults() -{ - if (!m_attributeDialog) - return; - - wxNode* node = m_attributeDialog->GetChildren().First(); - while (node) - { - wxWindow* child = (wxWindow*) node->Data(); - if (child->IsKindOf(CLASSINFO(wxChoice))) - { - wxChoice* choice = (wxChoice*) child; - choice->SetSelection(0); - } - node = node->Next(); - } - - if (!m_alternativeAttributeDialog) - return; - - node = m_alternativeAttributeDialog->GetChildren().First(); - while (node) - { - wxWindow* child = (wxWindow*) node->Data(); - if (child->IsKindOf(CLASSINFO(wxChoice))) - { - wxChoice* choice = (wxChoice*) child; - choice->SetSelection(0); - } - node = node->Next(); - } -} - -/* - * csGeneralShapePropertiesDialog - */ - -IMPLEMENT_CLASS(csGeneralShapePropertiesDialog, wxPanel) - -BEGIN_EVENT_TABLE(csGeneralShapePropertiesDialog, wxPanel) -END_EVENT_TABLE() - -csGeneralShapePropertiesDialog::csGeneralShapePropertiesDialog() -{ -} - -void csGeneralShapePropertiesDialog::SetShapeLabel(const wxString& label) -{ - wxTextCtrl* textCtrl = (wxTextCtrl*) FindWindow(ID_LABELTEXT); - wxASSERT( (textCtrl != NULL) ); - - m_label = label; - - textCtrl->SetValue(label); -} - -/* - * csThinRectangleDialog - */ - -IMPLEMENT_CLASS(csThinRectangleDialog, wxPanel) - -BEGIN_EVENT_TABLE(csThinRectangleDialog, wxPanel) -END_EVENT_TABLE() - -csThinRectangleDialog::csThinRectangleDialog() -{ -} - -/* - * csWideRectangleDialog - */ - -IMPLEMENT_CLASS(csWideRectangleDialog, wxPanel) - -BEGIN_EVENT_TABLE(csWideRectangleDialog, wxPanel) -END_EVENT_TABLE() - -csWideRectangleDialog::csWideRectangleDialog() -{ -} - -/* - * csTriangleDialog - */ - -IMPLEMENT_CLASS(csTriangleDialog, wxPanel) - -BEGIN_EVENT_TABLE(csTriangleDialog, wxPanel) -END_EVENT_TABLE() - -csTriangleDialog::csTriangleDialog() -{ -} - -/* - * csSemiCircleDialog - */ - -IMPLEMENT_CLASS(csSemiCircleDialog, wxPanel) - -BEGIN_EVENT_TABLE(csSemiCircleDialog, wxPanel) -END_EVENT_TABLE() - -csSemiCircleDialog::csSemiCircleDialog() -{ -} - -/* - * csCircleDialog - */ - -IMPLEMENT_CLASS(csCircleDialog, wxPanel) - -BEGIN_EVENT_TABLE(csCircleDialog, wxPanel) -END_EVENT_TABLE() - -csCircleDialog::csCircleDialog() -{ -} - -/* - * csCircleShadowDialog - */ - -IMPLEMENT_CLASS(csCircleShadowDialog, wxPanel) - -BEGIN_EVENT_TABLE(csCircleShadowDialog, wxPanel) -END_EVENT_TABLE() - -csCircleShadowDialog::csCircleShadowDialog() -{ -} - -/* - * csOctagonDialog - */ - -IMPLEMENT_CLASS(csOctagonDialog, wxPanel) - -BEGIN_EVENT_TABLE(csOctagonDialog, wxPanel) -END_EVENT_TABLE() - -csOctagonDialog::csOctagonDialog() -{ -} - -/* - * csGroupDialog - */ - -IMPLEMENT_CLASS(csGroupDialog, wxPanel) - -BEGIN_EVENT_TABLE(csGroupDialog, wxPanel) -END_EVENT_TABLE() - -csGroupDialog::csGroupDialog() -{ -} - -/* - * csTextBoxDialog - */ - -IMPLEMENT_CLASS(csTextBoxDialog, wxPanel) - -BEGIN_EVENT_TABLE(csTextBoxDialog, wxPanel) -END_EVENT_TABLE() - -csTextBoxDialog::csTextBoxDialog() -{ -} - - diff --git a/utils/ogl/samples/studio/dialogs.h b/utils/ogl/samples/studio/dialogs.h deleted file mode 100644 index 4a97f8fc75..0000000000 --- a/utils/ogl/samples/studio/dialogs.h +++ /dev/null @@ -1,248 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialogs.h -// Purpose: Miscellaneous dialogs -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_DIALOGS_H_ -#define _STUDIO_DIALOGS_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include - -/* - * Label editing dialog (about to become obsolete) - */ - -class csLabelEditingDialog: public wxDialog -{ -DECLARE_CLASS(csLabelEditingDialog) -public: - csLabelEditingDialog(wxWindow* parent); - - void SetShapeLabel(const wxString& label); - inline wxString GetShapeLabel() const { return m_label; } - - void OnOK(wxCommandEvent& event); - -protected: - wxString m_label; - -DECLARE_EVENT_TABLE() -}; - -/* - * Settings dialog (tabbed) - */ - -class csSettingsDialog: public wxDialog -{ -DECLARE_CLASS(csSettingsDialog) -public: - csSettingsDialog(wxWindow* parent); - - void OnOK(wxCommandEvent& event); - - virtual bool TransferDataToWindow(); - virtual bool TransferDataFromWindow(); - -protected: - - wxPanel* m_generalSettings; - wxPanel* m_diagramSettings; - wxNotebook* m_notebook; - -DECLARE_EVENT_TABLE() -}; - -#define ID_PROPERTY_NOTEBOOK 1000 -#define ID_GENERAL_SETTINGS 1002 -#define ID_DIAGRAM_SETTINGS 1003 - -/* - * csGeneralShapePropertiesDialog - * Name, description etc. - */ - -class csGeneralShapePropertiesDialog: public wxPanel -{ -DECLARE_CLASS(csGeneralShapePropertiesDialog) -public: - csGeneralShapePropertiesDialog(); - - void SetShapeLabel(const wxString& label); - inline wxString GetShapeLabel() const { return m_label; } - -protected: - wxString m_label; - -DECLARE_EVENT_TABLE() -}; - -/* - * Shape properties dialog (tabbed) - */ - -class csShapePropertiesDialog: public wxDialog -{ -DECLARE_CLASS(csShapePropertiesDialog) -public: - csShapePropertiesDialog(wxWindow* parent, const wxString& title, wxPanel* attributeDialog, const wxString& attributeDialogName); - - void OnOK(wxCommandEvent& event); - - // Set some suitable defaults in the attribute dialogs (in the first instance, - // just set all wxChoices to the first element) - void SetDefaults(); - -// Accessors - csGeneralShapePropertiesDialog* GetGeneralPropertiesDialog() const { return m_generalPropertiesDialog; } - - -protected: - - // Attributes, specific to each shape - wxPanel* m_attributeDialog; - wxPanel* m_alternativeAttributeDialog; - - // General properties, same for each shape, e.g. name/description - csGeneralShapePropertiesDialog* m_generalPropertiesDialog; - - wxNotebook* m_notebook; - -DECLARE_EVENT_TABLE() -}; - -#define ID_SHAPE_PROPERTY_NOTEBOOK 1000 - -//// Specific attribute-editing panel classes below here - -/* - * csThinRectangleDialog - */ - -class csThinRectangleDialog: public wxPanel -{ -DECLARE_CLASS(csThinRectangleDialog) -public: - csThinRectangleDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csWideRectangleDialog - */ - -class csWideRectangleDialog: public wxPanel -{ -DECLARE_CLASS(csWideRectangleDialog) -public: - csWideRectangleDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csTriangleDialog - */ - -class csTriangleDialog: public wxPanel -{ -DECLARE_CLASS(csTriangleDialog) -public: - csTriangleDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csSemiCircleDialog - */ - -class csSemiCircleDialog: public wxPanel -{ -DECLARE_CLASS(csSemiCircleDialog) -public: - csSemiCircleDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csCircleDialog - */ - -class csCircleDialog: public wxPanel -{ -DECLARE_CLASS(csCircleDialog) -public: - csCircleDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csCircleShadowDialog - */ - -class csCircleShadowDialog: public wxPanel -{ -DECLARE_CLASS(csCircleShadowDialog) -public: - csCircleShadowDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csOctagonDialog - */ - -class csOctagonDialog: public wxPanel -{ -DECLARE_CLASS(csOctagonDialog) -public: - csOctagonDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csGroupDialog - */ - -class csGroupDialog: public wxPanel -{ -DECLARE_CLASS(csGroupDialog) -public: - csGroupDialog(); - -DECLARE_EVENT_TABLE() -}; - -/* - * csTextBoxDialog - */ - -class csTextBoxDialog: public wxPanel -{ -DECLARE_CLASS(csTextBoxDialog) -public: - csTextBoxDialog(); - -DECLARE_EVENT_TABLE() -}; - - -#endif - // _STUDIO_DIALOGS_H_ diff --git a/utils/ogl/samples/studio/doc.cpp b/utils/ogl/samples/studio/doc.cpp deleted file mode 100644 index fd3a3a1a65..0000000000 --- a/utils/ogl/samples/studio/doc.cpp +++ /dev/null @@ -1,598 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.cpp -// Purpose: Implements document functionality -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "studio.h" -#include "doc.h" -#include "view.h" -#include "basicp.h" - -IMPLEMENT_DYNAMIC_CLASS(csDiagramDocument, wxDocument) - -#ifdef _MSC_VER -#pragma warning(disable:4355) -#endif - -csDiagramDocument::csDiagramDocument():m_diagram(this) -{ -} - -#ifdef _MSC_VER -#pragma warning(default:4355) -#endif - -csDiagramDocument::~csDiagramDocument() -{ -} - -bool csDiagramDocument::OnCloseDocument() -{ - m_diagram.DeleteAllShapes(); - return TRUE; -} - -bool csDiagramDocument::OnSaveDocument(const wxString& file) -{ - if (file == "") - return FALSE; - - if (!m_diagram.SaveFile(file)) - { - wxString msgTitle; - if (wxTheApp->GetAppName() != "") - msgTitle = wxTheApp->GetAppName(); - else - msgTitle = wxString("File error"); - - (void)wxMessageBox("Sorry, could not open this file for saving.", msgTitle, wxOK | wxICON_EXCLAMATION, - GetDocumentWindow()); - return FALSE; - } - - Modify(FALSE); - SetFilename(file); - return TRUE; -} - -bool csDiagramDocument::OnOpenDocument(const wxString& file) -{ - if (!OnSaveModified()) - return FALSE; - - wxString msgTitle; - if (wxTheApp->GetAppName() != "") - msgTitle = wxTheApp->GetAppName(); - else - msgTitle = wxString("File error"); - - m_diagram.DeleteAllShapes(); - if (!m_diagram.LoadFile(file)) - { - (void)wxMessageBox("Sorry, could not open this file.", msgTitle, wxOK|wxICON_EXCLAMATION, - GetDocumentWindow()); - return FALSE; - } - SetFilename(file, TRUE); - Modify(FALSE); - UpdateAllViews(); - - return TRUE; -} - - -/* - * Implementation of drawing command - */ - -csDiagramCommand::csDiagramCommand(const wxString& name, csDiagramDocument *doc, - csCommandState* onlyState): - wxCommand(TRUE, name) -{ - m_doc = doc; - - if (onlyState) - { - AddState(onlyState); - } -} - -csDiagramCommand::~csDiagramCommand() -{ - wxNode* node = m_states.First(); - while (node) - { - csCommandState* state = (csCommandState*) node->Data(); - delete state; - node = node->Next(); - } -} - -void csDiagramCommand::AddState(csCommandState* state) -{ - state->m_doc = m_doc; -// state->m_cmd = m_cmd; - m_states.Append(state); -} - -// Insert a state at the beginning of the list -void csDiagramCommand::InsertState(csCommandState* state) -{ - state->m_doc = m_doc; -// state->m_cmd = m_cmd; - m_states.Insert(state); -} - -// Schedule all lines connected to the states to be cut. -void csDiagramCommand::RemoveLines() -{ - wxNode* node = m_states.First(); - while (node) - { - csCommandState* state = (csCommandState*) node->Data(); - wxShape* shape = state->GetShapeOnCanvas(); - wxASSERT( (shape != NULL) ); - - wxNode *node1 = shape->GetLines().First(); - while (node1) - { - wxLineShape *line = (wxLineShape *)node1->Data(); - if (!FindStateByShape(line)) - { - csCommandState* newState = new csCommandState(ID_CS_CUT, NULL, line); - InsertState(newState); - } - - node1 = node1->Next(); - } - node = node->Next(); - } -} - -csCommandState* csDiagramCommand::FindStateByShape(wxShape* shape) -{ - wxNode* node = m_states.First(); - while (node) - { - csCommandState* state = (csCommandState*) node->Data(); - if (shape == state->GetShapeOnCanvas() || shape == state->GetSavedState()) - return state; - node = node->Next(); - } - return NULL; -} - -bool csDiagramCommand::Do() -{ - wxNode* node = m_states.First(); - while (node) - { - csCommandState* state = (csCommandState*) node->Data(); - if (!state->Do()) - return FALSE; - node = node->Next(); - } - return TRUE; -} - -bool csDiagramCommand::Undo() -{ - // Undo in reverse order, so e.g. shapes get added - // back before the lines do. - wxNode* node = m_states.Last(); - while (node) - { - csCommandState* state = (csCommandState*) node->Data(); - if (!state->Undo()) - return FALSE; - node = node->Previous(); - } - return TRUE; -} - -csCommandState::csCommandState(int cmd, wxShape* savedState, wxShape* shapeOnCanvas) -{ - m_cmd = cmd; - m_doc = NULL; - m_savedState = savedState; - m_shapeOnCanvas = shapeOnCanvas; - m_linePositionFrom = 0; - m_linePositionTo = 0; -} - -csCommandState::~csCommandState() -{ - if (m_savedState) - { - m_savedState->SetCanvas(NULL); - delete m_savedState; - } -} - -bool csCommandState::Do() -{ - switch (m_cmd) - { - case ID_CS_CUT: - { - // New state is 'nothing' - maybe pass shape ID to state so we know what - // we're talking about. - // Then save old shape in m_savedState (actually swap pointers) - - wxASSERT( (m_shapeOnCanvas != NULL) ); - wxASSERT( (m_savedState == NULL) ); // new state will be 'nothing' - wxASSERT( (m_doc != NULL) ); - - wxShapeCanvas* canvas = m_shapeOnCanvas->GetCanvas(); - - // In case this is a line - wxShape* lineFrom = NULL; - wxShape* lineTo = NULL; - int attachmentFrom = 0, attachmentTo = 0; - - if (m_shapeOnCanvas->IsKindOf(CLASSINFO(wxLineShape))) - { - // Store the from/to info to save in the line shape - wxLineShape* lineShape = (wxLineShape*) m_shapeOnCanvas; - lineFrom = lineShape->GetFrom(); - lineTo = lineShape->GetTo(); - attachmentFrom = lineShape->GetAttachmentFrom(); - attachmentTo = lineShape->GetAttachmentTo(); - - m_linePositionFrom = lineFrom->GetLinePosition(lineShape); - m_linePositionTo = lineTo->GetLinePosition(lineShape); - } - - m_shapeOnCanvas->Select(FALSE); - ((csDiagramView*) m_doc->GetFirstView())->SelectShape(m_shapeOnCanvas, FALSE); - - m_shapeOnCanvas->Unlink(); - - m_doc->GetDiagram()->RemoveShape(m_shapeOnCanvas); - - m_savedState = m_shapeOnCanvas; - - if (m_savedState->IsKindOf(CLASSINFO(wxLineShape))) - { - // Restore the from/to info for future reference - wxLineShape* lineShape = (wxLineShape*) m_savedState; - lineShape->SetFrom(lineFrom); - lineShape->SetTo(lineTo); - lineShape->SetAttachments(attachmentFrom, attachmentTo); - - wxClientDC dc(canvas); - canvas->PrepareDC(dc); - - lineFrom->MoveLinks(dc); - lineTo->MoveLinks(dc); - } - - m_doc->Modify(TRUE); - m_doc->UpdateAllViews(); - break; - } - case ID_CS_ADD_SHAPE: - case ID_CS_ADD_SHAPE_SELECT: - { - // The app has given the command state a new m_savedState - // shape, which is the new shape to add to the canvas (but - // not actually added until this point). - // The new 'saved state' is therefore 'nothing' since there - // was nothing there before. - - wxASSERT( (m_shapeOnCanvas == NULL) ); - wxASSERT( (m_savedState != NULL) ); - wxASSERT( (m_doc != NULL) ); - - m_shapeOnCanvas = m_savedState; - m_savedState = NULL; - - m_doc->GetDiagram()->AddShape(m_shapeOnCanvas); - m_shapeOnCanvas->Show(TRUE); - - wxClientDC dc(m_shapeOnCanvas->GetCanvas()); - m_shapeOnCanvas->GetCanvas()->PrepareDC(dc); - - csEvtHandler *handler = (csEvtHandler *)m_shapeOnCanvas->GetEventHandler(); - m_shapeOnCanvas->FormatText(dc, handler->m_label); - - m_shapeOnCanvas->Move(dc, m_shapeOnCanvas->GetX(), m_shapeOnCanvas->GetY()); - - if (m_cmd == ID_CS_ADD_SHAPE_SELECT) - { - m_shapeOnCanvas->Select(TRUE, &dc); - ((csDiagramView*) m_doc->GetFirstView())->SelectShape(m_shapeOnCanvas, TRUE); - } - - m_doc->Modify(TRUE); - m_doc->UpdateAllViews(); - break; - } - case ID_CS_ADD_LINE: - case ID_CS_ADD_LINE_SELECT: - { - wxASSERT( (m_shapeOnCanvas == NULL) ); - wxASSERT( (m_savedState != NULL) ); - wxASSERT( (m_doc != NULL) ); - - wxLineShape *lineShape = (wxLineShape *)m_savedState; - wxASSERT( (lineShape->GetFrom() != NULL) ); - wxASSERT( (lineShape->GetTo() != NULL) ); - - m_shapeOnCanvas = m_savedState; - m_savedState = NULL; - - m_doc->GetDiagram()->AddShape(lineShape); - - lineShape->GetFrom()->AddLine(lineShape, lineShape->GetTo(), - lineShape->GetAttachmentFrom(), lineShape->GetAttachmentTo()); - - lineShape->Show(TRUE); - - wxClientDC dc(lineShape->GetCanvas()); - lineShape->GetCanvas()->PrepareDC(dc); - - // It won't get drawn properly unless you move both - // connected images - lineShape->GetFrom()->Move(dc, lineShape->GetFrom()->GetX(), lineShape->GetFrom()->GetY()); - lineShape->GetTo()->Move(dc, lineShape->GetTo()->GetX(), lineShape->GetTo()->GetY()); - - if (m_cmd == ID_CS_ADD_LINE_SELECT) - { - lineShape->Select(TRUE, &dc); - ((csDiagramView*) m_doc->GetFirstView())->SelectShape(m_shapeOnCanvas, TRUE); - } - - m_doc->Modify(TRUE); - m_doc->UpdateAllViews(); - break; - } - case ID_CS_CHANGE_BACKGROUND_COLOUR: - case ID_CS_MOVE: - case ID_CS_SIZE: - case ID_CS_EDIT_PROPERTIES: - case ID_CS_FONT_CHANGE: - case ID_CS_ARROW_CHANGE: - case ID_CS_ROTATE_CLOCKWISE: - case ID_CS_ROTATE_ANTICLOCKWISE: - case ID_CS_CHANGE_LINE_ORDERING: - case ID_CS_CHANGE_LINE_ATTACHMENT: - case ID_CS_ALIGN: - case ID_CS_NEW_POINT: - case ID_CS_CUT_POINT: - case ID_CS_MOVE_LINE_POINT: - case ID_CS_STRAIGHTEN: - case ID_CS_MOVE_LABEL: - { - // At this point we have been given a new shape - // just like the old one but with a changed colour. - // It's now time to apply that change to the - // shape on the canvas, saving the old state. - // NOTE: this is general enough to work with MOST attribute - // changes! - - wxASSERT( (m_shapeOnCanvas != NULL) ); - wxASSERT( (m_savedState != NULL) ); // This is the new shape with changed colour - wxASSERT( (m_doc != NULL) ); - - wxClientDC dc(m_shapeOnCanvas->GetCanvas()); - m_shapeOnCanvas->GetCanvas()->PrepareDC(dc); - - bool isSelected = m_shapeOnCanvas->Selected(); - if (isSelected) - m_shapeOnCanvas->Select(FALSE, & dc); - - if (m_cmd == ID_CS_SIZE || m_cmd == ID_CS_ROTATE_CLOCKWISE || m_cmd == ID_CS_ROTATE_ANTICLOCKWISE || - m_cmd == ID_CS_CHANGE_LINE_ORDERING || m_cmd == ID_CS_CHANGE_LINE_ATTACHMENT) - { - m_shapeOnCanvas->Erase(dc); - } - - // TODO: make sure the ID is the same. Or, when applying the new state, - // don't change the original ID. - wxShape* tempShape = m_shapeOnCanvas->CreateNewCopy(); - - // Apply the saved state to the shape on the canvas, by copying. - m_savedState->CopyWithHandler(*m_shapeOnCanvas); - - // Delete this state now it's been used (m_shapeOnCanvas currently holds this state) - delete m_savedState; - - // Remember the previous state - m_savedState = tempShape; - - // Redraw the shape - - if (m_cmd == ID_CS_MOVE || m_cmd == ID_CS_ROTATE_CLOCKWISE || m_cmd == ID_CS_ROTATE_ANTICLOCKWISE || - m_cmd == ID_CS_ALIGN) - { - m_shapeOnCanvas->Move(dc, m_shapeOnCanvas->GetX(), m_shapeOnCanvas->GetY()); - - csEvtHandler *handler = (csEvtHandler *)m_shapeOnCanvas->GetEventHandler(); - m_shapeOnCanvas->FormatText(dc, handler->m_label); - m_shapeOnCanvas->Draw(dc); - } - else if (m_cmd == ID_CS_CHANGE_LINE_ORDERING) - { - m_shapeOnCanvas->MoveLinks(dc); - } - else if (m_cmd == ID_CS_CHANGE_LINE_ATTACHMENT) - { - wxLineShape *lineShape = (wxLineShape *)m_shapeOnCanvas; - - // Have to move both sets of links since we don't know which links - // have been affected (unless we compared before and after states). - lineShape->GetFrom()->MoveLinks(dc); - lineShape->GetTo()->MoveLinks(dc); - } - else if (m_cmd == ID_CS_SIZE) - { - double width, height; - m_shapeOnCanvas->GetBoundingBoxMax(&width, &height); - - m_shapeOnCanvas->SetSize(width, height); - m_shapeOnCanvas->Move(dc, m_shapeOnCanvas->GetX(), m_shapeOnCanvas->GetY()); - - m_shapeOnCanvas->Show(TRUE); - - // Recursively redraw links if we have a composite. - if (m_shapeOnCanvas->GetChildren().Number() > 0) - m_shapeOnCanvas->DrawLinks(dc, -1, TRUE); - - m_shapeOnCanvas->GetEventHandler()->OnEndSize(width, height); - } - else if (m_cmd == ID_CS_EDIT_PROPERTIES || m_cmd == ID_CS_FONT_CHANGE) - { - csEvtHandler *handler = (csEvtHandler *)m_shapeOnCanvas->GetEventHandler(); - m_shapeOnCanvas->FormatText(dc, handler->m_label); - m_shapeOnCanvas->Draw(dc); - } - else - { - m_shapeOnCanvas->Draw(dc); - } - - if (isSelected) - m_shapeOnCanvas->Select(TRUE, & dc); - - m_doc->Modify(TRUE); - m_doc->UpdateAllViews(); - - break; - } - } - return TRUE; -} - -bool csCommandState::Undo() -{ - switch (m_cmd) - { - case ID_CS_CUT: - { - wxASSERT( (m_savedState != NULL) ); - wxASSERT( (m_doc != NULL) ); - - m_doc->GetDiagram()->AddShape(m_savedState); - m_shapeOnCanvas = m_savedState; - m_savedState = NULL; - - if (m_shapeOnCanvas->IsKindOf(CLASSINFO(wxLineShape))) - { - wxLineShape* lineShape = (wxLineShape*) m_shapeOnCanvas; - lineShape->GetFrom()->AddLine(lineShape, lineShape->GetTo(), - lineShape->GetAttachmentFrom(), lineShape->GetAttachmentTo(), - m_linePositionFrom, m_linePositionTo); - - wxShapeCanvas* canvas = lineShape->GetFrom()->GetCanvas(); - - wxClientDC dc(canvas); - canvas->PrepareDC(dc); - - lineShape->GetFrom()->MoveLinks(dc); - lineShape->GetTo()->MoveLinks(dc); - - } - m_shapeOnCanvas->Show(TRUE); - - m_doc->Modify(TRUE); - m_doc->UpdateAllViews(); - break; - } - case ID_CS_ADD_SHAPE: - case ID_CS_ADD_LINE: - case ID_CS_ADD_SHAPE_SELECT: - case ID_CS_ADD_LINE_SELECT: - { - wxASSERT( (m_shapeOnCanvas != NULL) ); - wxASSERT( (m_savedState == NULL) ); - wxASSERT( (m_doc != NULL) ); - - // In case this is a line - wxShape* lineFrom = NULL; - wxShape* lineTo = NULL; - int attachmentFrom = 0, attachmentTo = 0; - - if (m_shapeOnCanvas->IsKindOf(CLASSINFO(wxLineShape))) - { - // Store the from/to info to save in the line shape - wxLineShape* lineShape = (wxLineShape*) m_shapeOnCanvas; - lineFrom = lineShape->GetFrom(); - lineTo = lineShape->GetTo(); - attachmentFrom = lineShape->GetAttachmentFrom(); - attachmentTo = lineShape->GetAttachmentTo(); - } - - wxClientDC dc(m_shapeOnCanvas->GetCanvas()); - m_shapeOnCanvas->GetCanvas()->PrepareDC(dc); - - m_shapeOnCanvas->Select(FALSE, &dc); - ((csDiagramView*) m_doc->GetFirstView())->SelectShape(m_shapeOnCanvas, FALSE); - m_doc->GetDiagram()->RemoveShape(m_shapeOnCanvas); - m_shapeOnCanvas->Unlink(); // Unlinks the line, if it is a line - - if (m_shapeOnCanvas->IsKindOf(CLASSINFO(wxLineShape))) - { - // Restore the from/to info for future reference - wxLineShape* lineShape = (wxLineShape*) m_shapeOnCanvas; - lineShape->SetFrom(lineFrom); - lineShape->SetTo(lineTo); - lineShape->SetAttachments(attachmentFrom, attachmentTo); - } - - m_savedState = m_shapeOnCanvas; - m_shapeOnCanvas = NULL; - - m_doc->Modify(TRUE); - m_doc->UpdateAllViews(); - break; - } - case ID_CS_CHANGE_BACKGROUND_COLOUR: - case ID_CS_MOVE: - case ID_CS_SIZE: - case ID_CS_EDIT_PROPERTIES: - case ID_CS_FONT_CHANGE: - case ID_CS_ARROW_CHANGE: - case ID_CS_ROTATE_CLOCKWISE: - case ID_CS_ROTATE_ANTICLOCKWISE: - case ID_CS_CHANGE_LINE_ORDERING: - case ID_CS_CHANGE_LINE_ATTACHMENT: - case ID_CS_ALIGN: - case ID_CS_NEW_POINT: - case ID_CS_CUT_POINT: - case ID_CS_MOVE_LINE_POINT: - case ID_CS_STRAIGHTEN: - case ID_CS_MOVE_LABEL: - { - // Exactly like the Do case; we're just swapping states. - Do(); - break; - } - } - - return TRUE; -} - diff --git a/utils/ogl/samples/studio/doc.h b/utils/ogl/samples/studio/doc.h deleted file mode 100644 index 0a8be2f254..0000000000 --- a/utils/ogl/samples/studio/doc.h +++ /dev/null @@ -1,134 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: doc.h -// Purpose: Document classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_DOC_H_ -#define _STUDIO_DOC_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include -#include - -#include "ogl.h" -#include "shapes.h" - -/* - * A diagram document, which contains a diagram. - */ - -class csDiagramDocument: public wxDocument -{ - DECLARE_DYNAMIC_CLASS(csDiagramDocument) -public: - csDiagramDocument(); - ~csDiagramDocument(); - - bool OnSaveDocument(const wxString& file); - bool OnOpenDocument(const wxString& file); - - inline wxDiagram *GetDiagram() { return &m_diagram; } - - bool OnCloseDocument(); - -protected: - csDiagram m_diagram; -}; - -/* - Do/Undo 30/7/98 - - 1) We have a csCommandState, and in csDiagramCommand you have a list of - these. This allows undo to work with several shapes at once. - - 2) Instead of storing info about each operation, e.g. separate pens, colours, - etc., we simply use a copy of the shape. - In csCommandState, we have a pointer to the actual shape in the canvas, m_currentShape. - We also have wxShape* m_shapeState which stores the requested or previous state - (depending on whether it's before the Do or after the Do. - - - In Do: save a temp copy of the old m_currentShape (i.e. the state just before it's changed). - Change the data pointed to by m_currentShape to the new attributes stored in m_shapeState. - Now assign the temp copy to m_shapeState, for use in Undo. - - wxShape* temp = m_currentShape->Copy(); // Take a copy of the current state - m_currentShape->Set(m_shapeState); // Apply the new state (e.g. moving, changing colour etc.) - delete m_shapeState; // Delete the previous 'old state'. - m_shapeState = temp; // Remember the new 'old state'. - - */ - - -class csCommandState; -class csDiagramCommand: public wxCommand -{ - friend class csCommandState; - public: - // Multi-purpose constructor for creating, deleting shapes - csDiagramCommand(const wxString& name, csDiagramDocument *doc, - csCommandState* onlyState = NULL); // Allow for the common case of just one state to change - - ~csDiagramCommand(); - - bool Do(); - bool Undo(); - - // Add a state to the end of the list - void AddState(csCommandState* state); - - // Insert a state at the beginning of the list - void InsertState(csCommandState* state); - - // Schedule all lines connected to the states to be cut. - void RemoveLines(); - - // Find the state that refers to this shape - csCommandState* FindStateByShape(wxShape* shape); - - wxList& GetStates() const { return (wxList&) m_states; } - - protected: - csDiagramDocument* m_doc; - wxList m_states; -}; - -class csCommandState: public wxObject -{ - friend class csDiagramCommand; -public: - csCommandState(int cmd, wxShape* savedState, wxShape* shapeOnCanvas); - ~csCommandState(); - - bool Do(); - bool Undo(); - - inline void SetSavedState(wxShape *s) { m_savedState = s; } - inline wxShape *GetSavedState() const { return m_savedState; } - - inline void SetShapeOnCanvas(wxShape *s) { m_shapeOnCanvas = s; } - inline wxShape *GetShapeOnCanvas() const { return m_shapeOnCanvas; } -protected: - wxShape* m_savedState; // Previous state, for restoring on Undo - wxShape* m_shapeOnCanvas; // The actual shape on the canvas - csDiagramDocument* m_doc; - int m_cmd; - - // These store the line ordering for the shapes at either end, - // so an un-cut line can restore the ordering properly. Otherwise - // it just adds the line at an arbitrary position. - int m_linePositionFrom; - int m_linePositionTo; -}; - -#endif - // _STUDIO_DOC_H_ diff --git a/utils/ogl/samples/studio/mainfrm.cpp b/utils/ogl/samples/studio/mainfrm.cpp deleted file mode 100644 index eb0560ca41..0000000000 --- a/utils/ogl/samples/studio/mainfrm.cpp +++ /dev/null @@ -1,256 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mainfrm.cpp -// Purpose: Studio main frame -// Author: Julian Smart -// Modified by: -// Created: 27/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// 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" -#include "wx/mdi.h" -#endif - -#include "wx/laywin.h" - -#include "studio.h" -#include "view.h" -#include "doc.h" -#include "cspalette.h" -#include "mainfrm.h" -#include "dialogs.h" - -BEGIN_EVENT_TABLE(csFrame, wxDocMDIParentFrame) - EVT_MENU(ID_CS_ABOUT, csFrame::OnAbout) - EVT_MENU(wxID_EXIT, csFrame::OnQuit) - EVT_MENU(wxID_HELP, csFrame::OnHelp) - EVT_MENU(ID_CS_SETTINGS, csFrame::OnSettings) - EVT_SIZE(csFrame::OnSize) - EVT_SASH_DRAGGED(ID_LAYOUT_WINDOW_PALETTE, csFrame::OnSashDragPaletteWindow) - EVT_SASH_DRAGGED(ID_LAYOUT_WINDOW_PROJECT, csFrame::OnSashDragProjectWindow) - EVT_IDLE(csFrame::OnIdle) - EVT_UPDATE_UI(wxID_PRINT, csFrame::OnUpdateDisable) - EVT_UPDATE_UI(wxID_PREVIEW, csFrame::OnUpdateDisable) - EVT_UPDATE_UI(wxID_SAVE, csFrame::OnSaveUpdate) - EVT_UPDATE_UI(wxID_SAVEAS, csFrame::OnSaveUpdate) - EVT_UPDATE_UI(wxID_UNDO, csFrame::OnUpdateDisable) - EVT_UPDATE_UI(wxID_REDO, csFrame::OnUpdateDisable) - EVT_UPDATE_UI(wxID_CUT, csFrame::OnUpdateDisable) - EVT_UPDATE_UI(wxID_COPY, csFrame::OnUpdateDisable) - EVT_UPDATE_UI(wxID_PASTE, csFrame::OnUpdateDisable) - EVT_CLOSE(csFrame::OnCloseWindow) -END_EVENT_TABLE() - -// Define my frame constructor -csFrame::csFrame(wxDocManager* manager, wxFrame *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, - long style): - wxDocMDIParentFrame(manager, parent, id, title, pos, size, style, "frame") -{ - CreateToolBar(wxNO_BORDER|wxTB_FLAT|wxTB_HORIZONTAL); - wxGetApp().InitToolBar(GetToolBar()); - - // Accelerators - wxAcceleratorEntry entries[4]; - - entries[0].Set(wxACCEL_NORMAL, WXK_F1, wxID_HELP); - entries[1].Set(wxACCEL_CTRL, 'O', wxID_OPEN); - entries[2].Set(wxACCEL_CTRL, 'N', wxID_NEW); - entries[3].Set(wxACCEL_CTRL, 'P', wxID_PRINT); - - wxAcceleratorTable accel(4, entries); - SetAcceleratorTable(accel); -} - -void csFrame::OnHelp(wxCommandEvent& event) -{ - wxGetApp().GetHelpController().DisplayContents(); -} - -void csFrame::OnSettings(wxCommandEvent& event) -{ - csSettingsDialog* dialog = new csSettingsDialog(this); - int ret = dialog->ShowModal(); - dialog->Destroy(); -} - -void csFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void csFrame::OnAbout(wxCommandEvent& event) -{ - (void)wxMessageBox("OGL Studio\n(c) 1999, Julian Smart", "About OGL Studio", wxICON_INFORMATION); -} - -void csFrame::OnSashDragPaletteWindow(wxSashEvent& event) -{ - if (event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE) - return; - - switch (event.GetId()) - { - case ID_LAYOUT_WINDOW_PALETTE: - { - wxGetApp().GetDiagramPaletteSashWindow()->SetDefaultSize(wxSize(10000, event.GetDragRect().height)); - break; - } - } - wxLayoutAlgorithm layout; - layout.LayoutMDIFrame(this); -} - -void csFrame::OnSashDragProjectWindow(wxSashEvent& event) -{ - if (event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE) - return; - - switch (event.GetId()) - { - case ID_LAYOUT_WINDOW_PROJECT: - { - wxGetApp().GetProjectSashWindow()->SetDefaultSize(wxSize(event.GetDragRect().width, 10000)); - break; - } - } - wxLayoutAlgorithm layout; - layout.LayoutMDIFrame(this); -} - -// Define the behaviour for the frame closing -// - must delete all frames except for the main one. -void csFrame::OnCloseWindow(wxCloseEvent& event) -{ - int x, y; - GetPosition(& x, & y); - wxGetApp().m_mainFramePos = wxPoint(x, y); - - GetSize(& x, & y); - wxGetApp().m_mainFrameSize = wxSize(x, y); - - wxDocMDIParentFrame::OnCloseWindow(event); -} - -void csFrame::OnSize(wxSizeEvent& event) -{ - wxLayoutAlgorithm layout; - layout.LayoutMDIFrame(this); -} - -// Make sure the correct toolbars are showing for the active view -void csFrame::OnIdle(wxIdleEvent& event) -{ - wxDocMDIParentFrame::OnIdle(event); - - wxSashLayoutWindow* paletteWin = wxGetApp().GetDiagramPaletteSashWindow(); - wxSashLayoutWindow* diagramToolBarWin = wxGetApp().GetDiagramToolBarSashWindow(); - if (!paletteWin || !diagramToolBarWin) - return; - bool doLayout = FALSE; - if (GetActiveChild()) - { - if (!paletteWin->IsShown() || !diagramToolBarWin->IsShown()) - { - paletteWin->Show(TRUE); - diagramToolBarWin->Show(TRUE); - - doLayout = TRUE; - } - } - else - { - if (paletteWin->IsShown() || diagramToolBarWin->IsShown()) - { - paletteWin->Show(FALSE); - diagramToolBarWin->Show(FALSE); - doLayout = TRUE; - } - } - if (doLayout) - { - wxLayoutAlgorithm layout; - layout.LayoutMDIFrame(this); - } -} - -// General handler for disabling items -void csFrame::OnUpdateDisable(wxUpdateUIEvent& event) -{ - event.Enable(FALSE); -} - -void csFrame::OnSaveUpdate(wxUpdateUIEvent& event) -{ - event.Enable( (GetActiveChild() != NULL) ); -} - -/* - * Child frame - */ - -BEGIN_EVENT_TABLE(csMDIChildFrame, wxDocMDIChildFrame) - EVT_ACTIVATE(csMDIChildFrame::OnActivate) -END_EVENT_TABLE() - -csMDIChildFrame::csMDIChildFrame(wxDocument* doc, wxView* view, wxMDIParentFrame *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style): - wxDocMDIChildFrame(doc, view, parent, id, title, pos, size, style) -{ - // Accelerators - wxAcceleratorEntry entries[18]; - - // Usual editing functions - entries[0].Set(wxACCEL_NORMAL, WXK_DELETE, wxID_CLEAR); - entries[1].Set(wxACCEL_CTRL, 'X', wxID_CUT); - entries[2].Set(wxACCEL_CTRL, 'C', wxID_COPY); - entries[3].Set(wxACCEL_SHIFT, WXK_INSERT, wxID_PASTE); - entries[4].Set(wxACCEL_CTRL, 'V', wxID_PASTE); - entries[5].Set(wxACCEL_CTRL, 'A', ID_CS_SELECT_ALL); - - // Undo/redo - entries[6].Set(wxACCEL_CTRL, 'Z', wxID_UNDO); - entries[7].Set(wxACCEL_CTRL, 'Y', wxID_REDO); - - // Other - entries[8].Set(wxACCEL_NORMAL, WXK_RETURN, ID_CS_EDIT_PROPERTIES); - entries[9].Set(wxACCEL_ALT, WXK_RETURN, ID_CS_EDIT_PROPERTIES); - entries[10].Set(wxACCEL_CTRL, 'D', wxID_DUPLICATE); - entries[11].Set(wxACCEL_NORMAL, WXK_F1, wxID_HELP); - - // File handling - entries[12].Set(wxACCEL_CTRL, 'S', wxID_SAVE); - entries[13].Set(wxACCEL_NORMAL, WXK_F12, wxID_SAVEAS); - entries[14].Set(wxACCEL_CTRL, 'O', wxID_OPEN); - entries[15].Set(wxACCEL_CTRL, 'N', wxID_NEW); - entries[16].Set(wxACCEL_CTRL, 'P', wxID_PRINT); - entries[17].Set(wxACCEL_CTRL, 'W', wxID_CLOSE); - - - wxAcceleratorTable accel(18, entries); - SetAcceleratorTable(accel); -} - -void csMDIChildFrame::OnActivate(wxActivateEvent& event) -{ - wxDocMDIChildFrame::OnActivate(event); -/* - wxSashLayoutWindow* win = wxGetApp().GetDiagramPaletteSashWindow(); - if (!win) - return; - - win->Show(event.GetActive()); - - wxLayoutAlgorithm layout; - layout.LayoutMDIFrame((wxMDIParentFrame*) GetParent()); -*/ -} - diff --git a/utils/ogl/samples/studio/mainfrm.h b/utils/ogl/samples/studio/mainfrm.h deleted file mode 100644 index 9200fc2c4c..0000000000 --- a/utils/ogl/samples/studio/mainfrm.h +++ /dev/null @@ -1,55 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mainfrm.h -// Purpose: Studio main window class -// Author: Julian Smart -// Modified by: -// Created: 27/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_MAINFRM_H_ -#define _STUDIO_MAINFRM_H_ - -#include - -class wxSashLayoutWindow; -class wxSashEvent; - -class csFrame: public wxDocMDIParentFrame -{ - public: - csFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style); - - void OnCloseWindow(wxCloseEvent& event); - void OnSize(wxSizeEvent& event); - void OnAbout(wxCommandEvent& event); - void OnNewWindow(wxCommandEvent& event); - void OnQuit(wxCommandEvent& event); - void OnSashDragPaletteWindow(wxSashEvent& event); - void OnSashDragProjectWindow(wxSashEvent& event); - void OnIdle(wxIdleEvent& event); - void OnHelp(wxCommandEvent& event); - void OnSettings(wxCommandEvent& event); - - // General handler for disabling items - void OnUpdateDisable(wxUpdateUIEvent& event); - void OnSaveUpdate(wxUpdateUIEvent& event); - -DECLARE_EVENT_TABLE() -}; - -class csMDIChildFrame: public wxDocMDIChildFrame -{ - public: - csMDIChildFrame(wxDocument* doc, wxView* view, wxMDIParentFrame *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style); - - void OnActivate(wxActivateEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#endif - // _STUDIO_MAINFRM_H_ - diff --git a/utils/ogl/samples/studio/makefile.b32 b/utils/ogl/samples/studio/makefile.b32 deleted file mode 100644 index 292366caa1..0000000000 --- a/utils/ogl/samples/studio/makefile.b32 +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds sample for 32-bit BC++ - -WXDIR = $(WXWIN) - -TARGET=studio -EXTRALIBS=$(WXDIR)\lib\ogl.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\ogl\src -OBJECTS = $(TARGET).obj doc.obj shapes.obj symbols.obj view.obj cspalette.obj\ - mainfrm.obj project.obj dialogs.obj csprint.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/ogl/samples/studio/makefile.bcc b/utils/ogl/samples/studio/makefile.bcc deleted file mode 100644 index 11f514391a..0000000000 --- a/utils/ogl/samples/studio/makefile.bcc +++ /dev/null @@ -1,22 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=studio -EXTRALIBS=$(WXDIR)\lib\ogl.lib -EXTRACPPFLAGS=-I$(WXDIR)\utils\ogl\src -OBJECTS = $(TARGET).obj doc.obj shapes.obj symbols.obj view.obj cspalette.obj\ - mainfrm.obj project.obj dialogs.obj csprint.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/ogl/samples/studio/makefile.g95 b/utils/ogl/samples/studio/makefile.g95 deleted file mode 100644 index 2da54a18a9..0000000000 --- a/utils/ogl/samples/studio/makefile.g95 +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../../../.. - -TARGET=studio -EXTRACPPFLAGS=-I../../src -EXTRALIBS=-logl -OBJECTS = $(TARGET).o doc.o shapes.o symbols.o view.o cspalette.o\ - mainfrm.o project.o dialogs.o csprint.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/ogl/samples/studio/makefile.unx b/utils/ogl/samples/studio/makefile.unx deleted file mode 100644 index 5fca57a097..0000000000 --- a/utils/ogl/samples/studio/makefile.unx +++ /dev/null @@ -1,39 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for OGL Studio (UNIX). - -PROGRAM=studio - -OBJECTS=$(PROGRAM).o doc.o shapes.o symbols.o view.o cspalette.o\ - mainfrm.o project.o dialogs.o csprint.o - -EXTRACPPFLAGS=-I$(WXDIR)/utils/ogl/src -I./bitmaps -EXTRALDLIBS=-logl$(GUISUFFIX) - -#WXDIR=/home/jacs/wx2 - -include $(WXDIR)/src/makeprog.env - -cleanogl: - cd $(WXDIR)/utils/ogl/src; make -f makefile.unx cleanmotif - -ogl: - cd $(WXDIR)/utils/ogl/src; make -f makefile.unx motif - -wx: - cd $(WXDIR)/src/motif; make -f makefile.unx motif - -cleanwx: - cd $(WXDIR)/src/motif; make -f makefile.unx cleanmotif - -cleanall: cleanmotif cleanogl cleanwx - -makeall: wx ogl motif - diff --git a/utils/ogl/samples/studio/makefile.vc b/utils/ogl/samples/studio/makefile.vc deleted file mode 100644 index f56b35519b..0000000000 --- a/utils/ogl/samples/studio/makefile.vc +++ /dev/null @@ -1,143 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart -# -# "%W% %G%" -# -# Makefile : Builds OGL studio example (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) -WXUSINGDLL=0 - -STUDIODIR = $(WXDIR)\utils\ogl\samples\studio -THISDIR = $(STUDIODIR) - -OGLDIR = $(WXDIR)\utils\ogl -OGLINC = $(OGLDIR)\src -OGLLIB = $(WXDIR)\lib\ogl.lib - -!include $(WXDIR)\src\makevc.env - -EXTRALIBS=$(OGLLIB) -EXTRAINC = /I$(OGLINC) - -PROGRAM=studio - -OBJECTS = $(PROGRAM).obj doc.obj shapes.obj symbols.obj view.obj cspalette.obj\ - mainfrm.obj project.obj dialogs.obj csprint.obj - -all: wx ogl $(PROGRAM).exe - -$(PROGRAM): $(PROGRAM).exe - -cleanall: clean cleanogl # cleanidelib -cleanutils: cleanall - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -cleanwx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc clean - cd $(THISDIR) - -idelib: - cd $(CLIPDIR)\IDELib\src - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -cleanidelib: - cd $(CLIPDIR)\IDELib\src - nmake -f makefile.vc clean - cd $(THISDIR) - -ogl: - cd $(OGLDIR)\src - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -cleanogl: - cd $(OGLDIR)\src - nmake -f makefile.vc clean - cd $(THISDIR) - -$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(EXTRALIBS) $(PROGRAM).res - $(link) @<< --out:$(PROGRAM).exe -$(LINKFLAGS) -$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res -$(LIBS) -<< - - -$(PROGRAM).obj: $(PROGRAM).$(SRCSUFF) cspalette.h doc.h view.h $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -mainfrm.obj: mainfrm.$(SRCSUFF) mainfrm.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -cspalette.obj: cspalette.$(SRCSUFF) cspalette.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -project.obj: project.$(SRCSUFF) project.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -view.obj: view.$(SRCSUFF) view.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -doc.obj: doc.$(SRCSUFF) doc.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -shapes.obj: shapes.$(SRCSUFF) shapes.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -symbols.obj: symbols.$(SRCSUFF) symbols.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -dialogs.obj: dialogs.$(SRCSUFF) dialogs.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -csprint.obj: csprint.$(SRCSUFF) shapes.h - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(OBJECTS): shapes.h doc.h view.h mainfrm.h studio.h cspalette.h project.h symbols.h dialogs.h - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb diff --git a/utils/ogl/samples/studio/manual/BACK.GIF b/utils/ogl/samples/studio/manual/BACK.GIF deleted file mode 100644 index 8a61076d3ba74bdedc1d24f60c3d1f5a361a6cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmV<703QEGNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>t<(Iwfoo diff --git a/utils/ogl/samples/studio/manual/BULLET.BMP b/utils/ogl/samples/studio/manual/BULLET.BMP deleted file mode 100644 index aad8fc793edd54ffb5910e67b2470659c95448b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmZumxe>rH2vhFtK1GJ`9PYi2Yw9con_&SdBlI1b>qTKR2Gu`ZXgNITWj7;KP=JJL V1)UXU1`*-lNw`O&c<~DR!2u5s7-j$f diff --git a/utils/ogl/samples/studio/manual/CONTENTS.GIF b/utils/ogl/samples/studio/manual/CONTENTS.GIF deleted file mode 100644 index 3dddfa3dd5f0c652e8b27cd6c29e1fdd49ced5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVG0Pz3-zrVld=jU&4Z(9HWEC2ui06_p40008OjE||y?GK}z zO&EZ)-n{z{a)K3v=81;mmA0S4Fj_r^UyThZDG{h6k9m zHI_(7spd!5_$SH6m{Q-cu3}3Ku`2^Nfa3dZ+VyHW%gtsZ`jV7k@%j8Ij}~W) zc{NUP6)X3OWa^|{8nl?rh|gZ1@{(qofnsWu+nmFHSnaq>lB41zSVC9`a)_v*xHx0L S5h*!IS!o$ynW>ps0028gDN7ju diff --git a/utils/ogl/samples/studio/manual/Tex2rtf.ini b/utils/ogl/samples/studio/manual/Tex2rtf.ini deleted file mode 100644 index f44fc89982..0000000000 --- a/utils/ogl/samples/studio/manual/Tex2rtf.ini +++ /dev/null @@ -1,20 +0,0 @@ -; Tex2RTF initialisation file -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -contentsDepth = 2 -listItemIndent=40 -winHelpContents = yes -winHelpVersion = 4 ; 3 for Windows 3.x, 4 for Windows 95 -winHelpTitle = "OGL Studio" -generateHPJ = yes -htmlBrowseButtons = bitmap -truncateFilenames = yes -htmlIndex = no -htmlFrameContents = no diff --git a/utils/ogl/samples/studio/manual/UP.GIF b/utils/ogl/samples/studio/manual/UP.GIF deleted file mode 100644 index 316d0d2a14b571bea2eb874efd04bfe509f53b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmV;40CxXJNk%v~VHyA!0Pz3-zrVld=jU&4Z(9HWEC2ui02%-o0007FjE||ytzv+j zv|1owxcuhWh0?c)Avq0}dTQw^q7qBdoDA6WKJ*l>%gtCeAWZlgxpoy|ZDMRPr_m>p rx}08pS4?)u<%PWO6W@ofKUk}K3 z-t>1`AFU80`ZO1G@idHT`*9+?;@lqSnbMrh^UQ~^T?s)m8b58(^`1O5d^&+GHCsD> zE`x8yL=2`j962u60pn4ZoR1pn1$EL7SP(E`F&Wwn?2k~N&1o|9KgNn&+*-m_k*myD zEa#Ic(W&ZGrOl9LQ&?r#T^%PR=wEd>xyQz1qSm-ct%!7X`xmjYN#!cO+yYj{;tLK_ BeP#dv diff --git a/utils/ogl/samples/studio/manual/alignb.bmp b/utils/ogl/samples/studio/manual/alignb.bmp deleted file mode 100644 index 6cc2e1dee47c12433ba418577a2e5ad73fab4848..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcma(~u?>JQ3^NiN1DwGf?EKP+GUlZ2U3w8O1iKLn5)y7~M{(M2`-Q+kTgio-$pIr3 yIJ<@@69WdYU=~JYi`E)lf%k&DI+8~tN`4^$nJY-OD*JU>wjJEKHuH!bxvFW diff --git a/utils/ogl/samples/studio/manual/alignl.bmp b/utils/ogl/samples/studio/manual/alignl.bmp deleted file mode 100644 index 30471101b16de3328c3d7a9ddbb74c95669b30c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKju@QhU3fPl58tp)=Q2Jo8bgU*r`XQ zqpFK#Mn{w=#ps68D(8$_P->|Z>mbio$leeL#26AdfBgB^?p|K+nFqW7@RnP41Lmtt AkpKVy diff --git a/utils/ogl/samples/studio/manual/alignt.bmp b/utils/ogl/samples/studio/manual/alignt.bmp deleted file mode 100644 index 4505cbab566385942c0912c245668a2567a6e4a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmaKkF%Ez*3|OdIzEIAs*ie($j$$j@{;1V~tY85%7&OAt xRk@Kpqg9j`#n=R9Rn8f;QR=7^Z-Dj*I)92ty-z9KwtE_g+7Cp#O78pXpD*v#PFw&0 diff --git a/utils/ogl/samples/studio/manual/arrow.bmp b/utils/ogl/samples/studio/manual/arrow.bmp deleted file mode 100644 index d406ceb64f017d99bcc2d4913aef75135de357a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmb7-I}UJZQ>1WPN=;5qEQ3zc?;o59U+Ka+r!5!mH1Gr)e_0X9zQo7Bn*m`tDP z>tSJ;fdXA9#W(4KsI?;JEJm}1)|8}VswC~|bu-BQ Vombvu=JhAub(#Nm-N`e*_yJ^>eVzaS diff --git a/utils/ogl/samples/studio/manual/bitmap1.bmp b/utils/ogl/samples/studio/manual/bitmap1.bmp deleted file mode 100644 index 13e2170b7369879a97bdd01c57b42af6f4126264..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZup$qj%o3^Ni^o-hV;@Mo922+wZTPQ(hutwBPF)JM*)+X=-^TgaK5$N?i2IJ*8x z1_Y+Pr$L8wG(}1gYeu+p9^X1)J~P=@jSHSMY)3;sNkY2 zEPWRLqal$RV;7jK=A7!i)5w*|^bK%qLGNEQTGkCeTtf<*)|jz0bZVCKqs&^|_qZ0` QxOhk{d)WGeIhJR90ll(R-T(jq diff --git a/utils/ogl/samples/studio/manual/brush.bmp b/utils/ogl/samples/studio/manual/brush.bmp deleted file mode 100644 index 0bf4ac5527d98d88440001b5f300b04db96644d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 740 zcmZWnF>b>!3{(gq76PNqP-M>7cXaPpf=-P`ZPgIKU((pYKt9n2WJ?AE${nrRQevAl zb;lz`TOXf)V)Xike~0a}t&BCK4w*-2w%HgPH zf`&@>#Pv``DpAW<-8i*sz?Az7Ld_XFu6D=ibNz?@VEX(QuILXHeBL*zT;&KIGqCH5 v=_NrsX=cUCRLw7$+aO8*Qm(n22{65#&k9#id8a2QuUxV68!&IEh4<kc*i{+$mRB8 zir*dn3_B$&NRgzjDUXnvWD*mZ*vS})U}yrtjpGO;#7-ed1Va-D?qsnKj9o{pONo4E z=SW$8Ry{v3rW_(y(GKz2ve{!yz;yK6de4prWZZYnKX}+;&!|X|N~(EKex+yNkTX!S zC{hM1mzs$OSe-HOyvrWSe{huaqdx5G;~96=hail3mzCD(23HE&t@imYryJdJIIh98 l_{`r1+)_Gc{@aa(hUFE=46BTeZz9d~YGx{Aj)6VK;sXibpM3xT diff --git a/utils/ogl/samples/studio/manual/chart.bmp b/utils/ogl/samples/studio/manual/chart.bmp deleted file mode 100644 index 54218089a907281b71a9a7c27a5ca1c6db619024..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 600 zcmb7BISzv`5L`xxAetZ)QB&p}>C@*WAsz1GjxX_+ynqfmXM89aBBW&TtoIx*_T_qm zIJr}wi6$VCRBY;%Pz5QuTX<0-T%wfUsA&>PhGAgBxFyC|i{NKNRE_321jbsBXV#i) z{hI|{Ng8_4S7xz6E=+|+zr<3rjqFur8c(cxeI?@~9$QYdwiX=@amIJJ`ic1w-Fgys z9Lc5AXu{B=G4Z4*zB_pvvwr>m$UE?mn5{CL=g*ri?L43Nu^u^8?p`Z+dE}{rnUlfH GJ$VC~I*RfD diff --git a/utils/ogl/samples/studio/manual/colour.bmp b/utils/ogl/samples/studio/manual/colour.bmp deleted file mode 100644 index b4ffd72550eacbeb9cd2fc39564a1596a1d63e2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734 zcmZvau};H442G{(l%67lii9f0jywW0VqoDt7(0=UxAmA#9eIw9EEyU43_Jr83_(IV zK3^_LQ)u$L_W#>wpWEAqcQNVnguMo31FxzJn@gH1~=78 z)mm{9v6Cv>DcCahJ;~k{bv2w!yk;9Uxwe}&^=h$3HmD=pk~1F}CJEqKF35GV!RB1p z7JSQ#T*1!&QFfej%m;F~#VO0aCRt~vowRPRRY!B_R6$tjiv)Cz3AyzP{vxy7<$~OeTT!c7JQf6T89- z%?kmn<${;(P#uFN<0A#FuUo(qgT{&F@ekspii W=d@ZzPG(Cb=QBs}_=7thzxV(viB<;y diff --git a/utils/ogl/samples/studio/manual/copysize.bmp b/utils/ogl/samples/studio/manual/copysize.bmp deleted file mode 100644 index 36060ad72b54ea2be52e4a1ed7b4dda2ca3cf18f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmY*SIS#`x3}b-;8ZxBM=sU9KFPf^3eo}TVeo?>RP?8g%v`FfLyzM^}KD0OaB3JT( zCl&anmc%SrXaEDPl~I|Z_fC(&$iNtpk$lmjm`TEJhyo%k)jjO4=f?j&&jF^kxcgy{ PbY7_X>Z|3R^1F!>`pH0Q diff --git a/utils/ogl/samples/studio/manual/cut.bmp b/utils/ogl/samples/studio/manual/cut.bmp deleted file mode 100644 index 15554338a01bc4d8f0a501c32237e84200e64583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvU!3}^Q5Cqr6gr}Ba8OD(CvKJo2^+{<|WDB@(K8*2TclNjo+kV075Ef~cCTYMZ z2hQ$)mH}PlY>+FWlp?l4?H9GSB752pV-TKD6nB)nBfGIKB%-0 z4e`tjREbcnVJN9uYq$q}gnD-dd2S))joA(4hnda^3ME@9IU}4&(EFo)=5zeN_9_1d HoZL78p=?Bh diff --git a/utils/ogl/samples/studio/manual/files.bmp b/utils/ogl/samples/studio/manual/files.bmp deleted file mode 100644 index 877e24afc706a207c6bf4eb0efa025976965d225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 672 zcmbV~J(9vO426Zp6FdyVQZUq%49D1huS4kK4tHFEqvS|*(3ww;Ny5);L2N1Vd(ToV z=lAcdlAk?(i*1Tc#EDV6!V}7}n8hL?PYJ;yjA0P2ZCj9(r=(;N#xMxCiPXXLvKIA~ zMYnbQFRG#*=d~Ul8W;7XqEo%}{+Ww#H|>0Q*%#U4;mp5q^EgJ(ob=}d)_jSPO&g#1 zvOv^-F;$vbozVj|OGga#oZBUoZ>ZKfr3)i1x-M_h>zJv!%;@Q2uSd~ken+j(PpFp6 sRJaZ~$UwbCpVLK`hShMNOS;IvR4Utw(*&Pyy{!Cb6=pCiD)OG(0a}ZhAOHXW diff --git a/utils/ogl/samples/studio/manual/help.bmp b/utils/ogl/samples/studio/manual/help.bmp deleted file mode 100644 index 2d9e6922cac0fb0aefa32fd5bae9d460e13484b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZuq!3}^g2t1P}{g~(&&f(u(`VyZVjR87~E7Sw@p^qTFi~p=nI%+}YJ={H-mN0|?29BK#fUL#erbtT(lh^R?4vYy(d-6AGn1|j$rr}v KbDqI%Xjd+{i$y;G diff --git a/utils/ogl/samples/studio/manual/helpcs.bmp b/utils/ogl/samples/studio/manual/helpcs.bmp deleted file mode 100644 index 88373816814a283aa9ecca7899faf81ce7a15b4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvV!3{z&3`32Clp~D69NgKZC&ICtwG;gn%5(a;k=Ax%E6VeAXxAHgfIGN>i>|Qr zDgH-8;%kg8Fsb(=J`dZ5!;MsyQTV&Nwu@o7(Ri`byve-X0yz0?`b73&zHji5? LZQ&!hb;r)SF8kLTs=5{{JE?DUYEK&^#0pxo{w%L C5KP+u diff --git a/utils/ogl/samples/studio/manual/linearrow.bmp b/utils/ogl/samples/studio/manual/linearrow.bmp deleted file mode 100644 index 1fd21fb08ac4a0d07a8b724700eb40c11a276698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZWjF%p0<2#a^_%H$V(hr5qq5yw8QFY*gDG6I3Fl3%1*4rLQI&+z};Dt zvxK4mOq3!avqY_xnuFF8tz|{`6V diff --git a/utils/ogl/samples/studio/manual/magnify.bmp b/utils/ogl/samples/studio/manual/magnify.bmp deleted file mode 100644 index b237b31f8c020f6e39e2c9ef4bc05c152aca1b00..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 722 zcmaiyJ#ND=422m&FoYn0GZdLK_8i@NgPx5&(M=()TVwy5gzrw_2qkEVq?z&WsAuYZfx(QTXAQlGm)37 Hw_&Gme(s@> diff --git a/utils/ogl/samples/studio/manual/mike.bmp b/utils/ogl/samples/studio/manual/mike.bmp deleted file mode 100644 index 0d736190e415fb1455dc5faf0e8c2d02ed419f95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmaJKDtAJ!pz9b0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/utils/ogl/samples/studio/manual/newpoint.bmp b/utils/ogl/samples/studio/manual/newpoint.bmp deleted file mode 100644 index cb4f267afca22039f403ed5f92a6c6a0c2978131..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcma)!u@QhU33XfhEigttvWi5y9eoOs=CC3b9qGo0X{5tYu+ z6rVX0MdGNGG?Z4YHQWb1j(YbFQXV14f9QQ2&YA$3=;=;U&0ua+_3>YyQsonW~6N3OvKTr2(k@|B{{YeKb~(CUb3rr5zpcQ zCn>O}mP9XDa6kd~GO1FGG0<95V`X5i$V8neN$dxz4&8XX3!AZr-;ApY^eS-9oTLj~ Y^Hcc9z2|$wrXTtLH=Rc2n(WoWFRhqJ00000 diff --git a/utils/ogl/samples/studio/manual/page.bmp b/utils/ogl/samples/studio/manual/page.bmp deleted file mode 100644 index 3dbd4b05b4c2d1a4f046141d450caf34c1a3d470..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 714 zcmaJk)fu{chJ-2TT-iZmtVS?uc5roS;-EuD8k*^vaH9hj_d6X ziQgC358^U$kRpEdIqzx8X~Jz0i&xCtBKWwA%eHOw^mwIrw+KG&;&N&1L*Q{1Xmx8p zxBo0O*pac2@{B`!>-fgLdSDP(C2}M>_DcBv60g*0UKyHhy!Oc8UYD-XBeIyOWTry_ zTA4Yuua#Ixm?vFMcI3@F*>XSp02Lyo AJ^%m! diff --git a/utils/ogl/samples/studio/manual/paste.bmp b/utils/ogl/samples/studio/manual/paste.bmp deleted file mode 100644 index 564f514e0df7225f0a7adbe8457b41af537813bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%Ci@5Jbns$83OZ*I;# co}I%%@f6>ra3+S=gC69}eM%GII+SAI4J;x>B>(^b diff --git a/utils/ogl/samples/studio/manual/pointsize.bmp b/utils/ogl/samples/studio/manual/pointsize.bmp deleted file mode 100644 index 8a01c8a42cb9b3fbf9ee79d816a47b25854e198e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmb7Au?+$-47^83Up@^D6EFuoyL^Sei#zC8fejD65ZOCR73UEWUIx<7#oaybN_(mxf(YQ>q^B0_@L(-7P5{5=wE(UG1 zg|}0&MNk_>yk5{|^cpaBdDhJ5+g}>OA0e;r?=_jw^IP+%oq<&onUne$ K8%jRLmaY#<=_kbi diff --git a/utils/ogl/samples/studio/manual/preview.bmp b/utils/ogl/samples/studio/manual/preview.bmp deleted file mode 100644 index da1f4dbc4be6c2dd8fb9d7cb71cc48a4a7c139ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVu?@p83pv2yNo4mlT?N_pr2ISnd1NHDM5O^cFcMc59&^> z)PfrwsOeYM05)2ipmU4fJIss+o(=cdQCu+!%TlZiKDH!a!aP2;C|UGpLD9M;zmsLJ XIp;lzIUm!ckI6HO{IjaYcZ_-fA4^nl diff --git a/utils/ogl/samples/studio/manual/print.bmp b/utils/ogl/samples/studio/manual/print.bmp deleted file mode 100644 index 00319b55bb23c3c69cc051144d80e5275747c53e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZur!3_d23^Ni^o@EUFY`~vgA|YX<`*bfpod|VizM>j+f}Fx~Q7! zgtHKM7yg3|DAD^Sp<0YF#C}+nSj(MC$5#Ss27*aN<{l9dJQ3^NitoWUKaQYXHtaK{cvyw!_%p*Ri9bz(b-vmXx}r)(2faSYV3`7rsq)3!X>4ws(){6V0MX5FKAjcylGXqN-n#XsS=YhW0WogZT{L^_i_GT%*k@+ph E1NJ~MtpET3 diff --git a/utils/ogl/samples/studio/manual/screw.bmp b/utils/ogl/samples/studio/manual/screw.bmp deleted file mode 100644 index 7625c4e6b60d916bf9a69f8ef8f9d365a252a211..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmZ9JF>b>!3`H42NQI(kf}$ugbja9qbnjg}b?U$^+Il4)%bWX1Q;<{Jl*s>|EK~mc z`caANoAHCVW*nr5TgUWC<(%QUh{Ypjo)O$GG0gLfvc@Cp>KVc962p~Q>wD8*pS7u6 zdTx5t`W97jXWDY86BXX;AQzNTH;Cn~HWcf8X=?7jV7P5L{0XMvf)Bh+MnOJJRPni96GUA`+=0`4{f5xh{<#E6t0ri}z)qXGrtXwk;DWcS%Vj8b5{T zwt+e{oHqhzHR?8Dh#Vt$WN)sh4T!|L;zxWL@Md4J8>%@!TN&p)+r^yFj_8%G!dYD* zHjur-s2-_Nq1>JB@Y@_FGVj!mlbH*?vL~fn~bWI*AV$qt18~Q-i3GhZIyUYFjug(&isP;hlGyf>=(PwyuJVc diff --git a/utils/ogl/samples/studio/manual/speaker.bmp b/utils/ogl/samples/studio/manual/speaker.bmp deleted file mode 100644 index a32ec48bba686dc9b86309d44714252ba05d790f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 648 zcmb_aOA5mv5Ssh+Xl{`|G?(BP3f@uS#(3sKp(NQP4-GfSb z9_X)#sYWMGXq~GMC_@cm5i75l5h2hhp^Gs>$>o)ti4bU%&`kmRAaof;eNU9e@GJ6I zaa>nzSs&C|w+{~csJV4MkZED93T4p~bMQ*6qE)=64MhO`G~QZ0~Cg$bo+bnR#b2R>8N-H_Q%jE?E=C?g{(PioyT@ diff --git a/utils/ogl/samples/studio/manual/straight.bmp b/utils/ogl/samples/studio/manual/straight.bmp deleted file mode 100644 index 529366590b71d7afa1ef14750426a874c8df6c3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmbu2!3}^Q5Cqr6#HW^F9sccwm-?hMDzXKf<$@OAal3P{0k-{C)B#qspcxGsap`Iv q=FE!960MvAIHO7_&_QjjT0J3_kFfKrMCAR;DYEp3e$)3m`*#mOwn9e$ diff --git a/utils/ogl/samples/studio/manual/studio.tex b/utils/ogl/samples/studio/manual/studio.tex deleted file mode 100644 index ab4d897258..0000000000 --- a/utils/ogl/samples/studio/manual/studio.tex +++ /dev/null @@ -1,381 +0,0 @@ -\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}% -\twocolwidtha{4cm}% -\input{psbox.tex} -\newcommand{\commandref}[2]{\helpref{{\tt $\backslash$#1}}{#2}}% -\newcommand{\commandrefn}[2]{\helprefn{{\tt $\backslash$#1}}{#2}\index{#1}}% -\newcommand{\commandpageref}[2]{\latexignore{\helprefn{{\tt $\backslash$#1}}{#2}}\latexonly{{\tt $\backslash$#1} {\it page \pageref{#2}}}\index{#1}}% -\newcommand{\indexit}[1]{#1\index{#1}}% -\newcommand{\inioption}[1]{{\tt #1}\index{#1}}% -\parskip=10pt% -\parindent=0pt% -\title{Manual for OGL Studio}% -\author{by Julian Smart}% -\makeindex% -\begin{document}% -\maketitle% -\pagestyle{fancyplain}% -\bibliographystyle{plain}% -\pagenumbering{arabic}% -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\tableofcontents% - -\chapter{Welcome to OGL Studio}% -\setheader{{\it Welcome}}{}{}{}{}{{\it Welcome}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -Welcome to OGL Studio, an extended sample for the Object Graphics Library. - -For release information, please see the \helpref{Read Me}{readme} section. - -\chapter{Read Me}\label{readme}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Change log} - -Version 1, February 7th, 1999 - -\begin{itemize}\itemsep=0pt -\item First release. -\end{itemize} - -\section{Bugs} - -There are no known bugs. - -\begin{comment} -\chapter{Getting Started}\label{gettingstarted}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\end{comment} - -\chapter{Working with the diagram window}\label{schedule}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This section describes how you work in the diagram window. - -In addition, you may wish to refer to the following sections: - -\begin{itemize}\itemsep=0pt -\item \helpref{How To}{howto} -%\item \helpref{Getting started}{gettingstarted} -\item \helpref{Using Menu Commands}{menucommands} -\item \helpref{Using Toolbar Commands}{toolbarcommands} -\end{itemize} - -When you first run OGL Studio, there is a menubar, a single -toolbar with commonly-used functionality such as loading and -saving, a project window to the left, and an MDI (Multiple Document -Interface) area to the right, which will contain documents. - -\section{Creating a diagram} - -To create a new diagram, click on "File|New" or the New tool. - -A blank document and two new toolbars will appear. The first -new toolbar is the \helpref{diagramming formatting toolbar}{diagramformattingtoolbar}, and contains -icons and controls for: - -\begin{itemize}\itemsep=0pt -\item alignment and size cloning; -\item arrow toggling; -\item point size; -\item zoom level. -\end{itemize} - -The second new toolbar is called the \helpref{diagram palette}{diagrampalette} and contains: - -\begin{itemize}\itemsep=0pt -\item a pointer tool used for selecting, moving and sizing objects; -\item a text tool used for editing text or creating new text boxes; -\item a tool for each of the symbols. -\end{itemize} - -\section{Basic editing} - -To add a symbol, left-click on the symbol in the diagram palette, -and then left-click on the document. The currently selected -tool will revert to the pointer tool, so to add another object, -click on the symbol again, then on the document. - -To draw a line between two objects, right-drag between the two -objects, starting at the attachment point area you wish to start the -line with, and ending at another appropriate attachment point -area. The initial ordering of the lines may not be correct (lines -may overlap, for example) so to reorder lines on a particular -side of a object, select a line, then left-drag the desired end to a new -position (tip: keep within the object perimeter). Left-dragging the -line end can also be used to change the attachment point of that -end of the line, to a new side or vertex (depending on the object). - -To select or deselect a object, left click the object. To select -several objects at once, keep the shift key pressed down when -left-clicking, or left-drag a 'lassoo' around several objects. - -To delete a object or line, select it and press the Delete key, or use -"Edit|Clear", or right-click on the object to show a menu and choose -the "Cut" item. - -If you are deleting a object which has one ore more lines -attached, the lines are deleted prior to the object deletion. - -Shapes can be rotated by right-clicking and selecting "Rotate -clockwise" or "Rotate anticlockwise". - -Line arrows can be added (pointing in the direction in which -you created the line) by selecting the line and pressing the -"Toggle arrow" tool on the formatting toolbar. - -\section{Adding text} - -Select the text tool (on the symbol palette) and left-click on -a object. If you click outside a object on the document, you are -prompted to add a new free-floating text box. - -Alternatively, you can select a object and press Return (or -select the "Edit|Edit label" menu item); or right-click and -select "Edit label" from the object menu. - -Change the point size using the combobox on the formatting -toolbar. - -\section{Aligning objects} - -Select several objects and click on an alignment tool on -the formatting toolbar. The alignment will be done with -respect to the first object you select. You can also copy -the size of a object to other objects with the "Copy size" tool. - -\section{Adding segments to lines and straightening them} - -To make a line have more than one segment, select the line, -then press the "New line point" tool. Create as many new control points -(and therefore segments) as you like. Then arrange the points -into a rough approximation of how they should be laid out -horizontally and vertically. Click on "Straighten lines" to -tidy up the layout. - -To delete a line control point, select the line and click on -"Cut line point" tool. An arbitrary point will be deleted. - -\section{Undo/Redo} - -Every operation can be undone, and then redone, back until -the time at which you last saved your document. Use -"Edit|Undo" and "Edit|Redo"; or the shortcuts Ctrl-Z and Ctrl-Y. - -\section{Loading and saving files} - -Load and save files using the main toolbar, or "File|Open...", -"File|Save", "File|Save As..." menu items. - -\section{Copy and paste} - -OGL Studio has a diagram clipboard, into which you can copy selections. You can then -paste the contents of clipboard into the same or another diagram window. - -Use "Edit|Copy" (or the toolbar copy button) to copy the selection. Use "Edit|Cut" (or the toolbar cut button) to -copy and then delete the selection. Use "Edit|Paste" (or the toolbar paste button) to copy the selection to -the current diagram window. - -Under Windows, copy and cutting also copies the selection to the Windows clipboard into metafile (vector) -format, and Windows bitmap format. Note that not all Windows applications can accept the vector format. -If the application seems to be pasting the wrong format into the document, try using that application's -"Edit|Paste Special..." menu item, if one exists. - -\section{Keyboard shortcuts} - -The following keyboard shortcuts are available. {\bf Note:} The OGL Studio menus indicate which shortcuts are -available. - -\begin{twocollist}\itemsep=0pt -\twocolitem{Delete}{Clear selected object(s)} -\twocolitem{Enter}{Edit text for selected object} -\twocolitem{Ctrl-A}{Select all} -\twocolitem{Ctrl-C}{Copy the selection to the clipboard} -\twocolitem{Ctrl-D}{Duplicate the selection} -\twocolitem{Ctrl-O}{Open a diagram} -\twocolitem{Ctrl-N}{Create a new diagram} -\twocolitem{Ctrl-P}{Print (not implemented)} -\twocolitem{Ctrl-S}{Save the diagram file without prompting} -\twocolitem{Ctrl-V}{Paste the selection} -\twocolitem{Ctrl-W}{Close the current window} -\twocolitem{Ctrl-X}{Cut the selection} -\twocolitem{Ctrl-Z}{Undo last action} -\twocolitem{Ctrl-Y}{Redo current action on the undo stack} -\twocolitem{Ctrl-Enter}{Confirm the label editing operation (dismisses the dialog)} -\twocolitem{Esc}{Cancel the label editing dialog} -\twocolitem{F1}{Invoke the manual} -\twocolitem{F12}{Save the diagram file, prompting for a filename} -\end{twocollist} - -\chapter{Menu commands}\label{menucommands}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This section describes the menu commands. - -\section{File} - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf New...}}{Creates a new diagram window.} -\twocolitem{{\bf Open...}}{Opens a diagram file.} -\twocolitem{{\bf Close}}{Closes the current window.} -\twocolitem{{\bf Save}}{Saves the current diagram without prompting.} -\twocolitem{{\bf Save As...}}{Saves the current diagram, prompting for a filename.} -\twocolitem{{\bf Print...}}{Prints the current diagram (not implemented).} -\twocolitem{{\bf Print Setup...}}{Invokes the printer setup dialog.} -\twocolitem{{\bf Print Preview}}{Invokes print preview for this diagram (not implemented).} -\twocolitem{{\bf Exit}}{Exits the program.} -\end{twocollist} - -Further menu items appended to the end of the File menu allow you -to load previously-saved diagram files quickly. - -\section{Edit} - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Undo}}{Undoes the previous action.} -\twocolitem{{\bf Redo}}{Redoes the previously undone action.} -\twocolitem{{\bf Cut}}{Deletes the current selection and places it on the clipboard.} -\twocolitem{{\bf Copy}}{Copies the current selection onto the clipboard, both to the internal -diagram clipboard and under Windows, to the Windows clipboard, in metafile and bitmap formats.} -\twocolitem{{\bf Paste}}{Pastes from the internal diagram clipboard to the currently active window.} -\twocolitem{{\bf Duplicate}}{Duplicates the current selection, placing the objects further down and to the right.} -\twocolitem{{\bf Clear}}{Clears the current selection without placing it on the clipboard.} -\twocolitem{{\bf Select All}}{Selects all objects.} -\twocolitem{{\bf Edit Label...}}{Invokes a dialog to edit the label of the currently selected object.} -\end{twocollist} - -\begin{comment}% -\section{View} - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Toolbar}}{Toggles the toolbar on and off.} -\twocolitem{{\bf Status Bar}}{Toggles the status bar on and off.} -\twocolitem{{\bf Settings}}{Invokes the \helpref{Settings dialog}{settings} to allow you to adjust a variety of -settings.} -\end{twocollist} -\end{comment}% - -\section{Window} - -The Window menu is shown when one or more child window is active. - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Cascade}}{Arranges the child windows in a cascade.} -\twocolitem{{\bf Tile}}{Arranges the child windows in a tiled formation.} -\twocolitem{{\bf Arrange Icons}}{Arranges the minimized icons.} -\twocolitem{{\bf Next}}{Activates the next MDI window.} -\end{twocollist} - -Further menu items appended to the end of the Window menu allow you -to restore and activate any child window. - -\section{Help} - -\begin{twocollist}\itemsep=0pt -\twocolitem{{\bf Help Contents}}{Invokes the on-line help, showing the contents page.} -\twocolitem{{\bf About}}{Displays a small dialog giving copyright and version information.} -\end{twocollist} - -\chapter{Toolbar commands}\label{toolbarcommands}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This section describes the commands associated with the various toolbars and diagram palette. - -\section{Main toolbar}\label{maintoolbar} - -The main toolbar is active all the time, with buttons greyed out if not appropriate to the current context. - -\begin{twocollist} -\twocolitem{\image{1cm;0cm}{new.bmp}}{{\bf New} Creates a new diagram window.} -\twocolitem{\image{1cm;0cm}{open.bmp}}{{\bf Open} Opens a diagram file.} -\twocolitem{\image{1cm;0cm}{save.bmp}}{{\bf Save} Saves the current diagram without prompting.} -\twocolitem{\image{1cm;0cm}{print.bmp}}{{\bf Print} Prints the current diagram (not implemented).} -\twocolitem{\image{1cm;0cm}{copy.bmp}}{{\bf Copy} Copies the current selection onto the internal clipboard, and under Windows, into the Windows clipboard -in metafile and bitmap formats.} -\twocolitem{\image{1cm;0cm}{cut.bmp}}{{\bf Cut} Deletes the current selection and puts it on the clipboard.} -\twocolitem{\image{1cm;0cm}{paste.bmp}}{{\bf Paste} Pastes the contents of the internal diagram clipboard onto the -current diagram window.} -\twocolitem{\image{1cm;0cm}{undo.bmp}}{{\bf Undo} Undoes the last command.} -\twocolitem{\image{1cm;0cm}{redo.bmp}}{{\bf Redo} Redoes the last command.} -\twocolitem{\image{1cm;0cm}{help.bmp}}{{\bf Help button} Invokes on-line help.} -\end{twocollist} - -\section{Diagram formatting toolbar}\label{diagramformattingtoolbar} - -The diagram toolbar is visible only when a diagram window is active. - -\begin{twocollist} -\twocolitem{\image{1cm;0cm}{alignl.bmp}}{{\bf Align left} Aligns the selected objects to the left side of the last selection.} -\twocolitem{\image{1cm;0cm}{alignr.bmp}}{{\bf Align right} Aligns the selected objects to the right side of the last selection.} -\twocolitem{\image{1cm;0cm}{alignt.bmp}}{{\bf Align top} Aligns the selected objects to the top side of the last selection.} -\twocolitem{\image{1cm;0cm}{alignb.bmp}}{{\bf Align bottom} Aligns the selected objects to the bottom side of the last selection.} -\twocolitem{\image{1cm;0cm}{horiz.bmp}}{{\bf Align horizontally} Aligns the selected objects to be centered horizontally with respect to the last selection.} -\twocolitem{\image{1cm;0cm}{vert.bmp}}{{\bf Align vertically} Aligns the selected objects to be centered vertically with respect to the last selection.} -\twocolitem{\image{1cm;0cm}{copysize.bmp}}{{\bf Copy size} Makes the selected objects the same size as the last selection.} -\twocolitem{\image{1cm;0cm}{linearrow.bmp}}{{\bf Line arrow} Toggles an arrow on or off for the selected objects.} -\twocolitem{\image{1cm;0cm}{newpoint.bmp}}{{\bf New point} Inserts a control point into the selected line(s).} -\twocolitem{\image{1cm;0cm}{cutpoint.bmp}}{{\bf Cut point} Deletes a control point from the selected line(s).} -\twocolitem{\image{1cm;0cm}{straight.bmp}}{{\bf Straighten} Straightens line segments that are nearly horizontal -or vertical.} -\twocolitem{\image{1cm;0cm}{pointsize.bmp}}{{\bf Point size} Allows selection of the point size for the current -selection.} -\twocolitem{\image{1cm;0cm}{zoom.bmp}}{{\bf Zoom control} Allows selection of the zoom level for the current diagram.} -\end{twocollist} - -\section{Diagram palette}\label{diagrampalette} - -The diagram palette is visible only when a diagram window is active. It contains the tools for -adding objects and text to a diagram. - -\begin{twocollist} -\twocolitem{\image{1cm;0cm}{arrow.bmp}}{{\bf Pointer tool} Click on this to allow dragging and selection of objects.} -\twocolitem{\image{1cm;0cm}{texttool.bmp}}{{\bf Text tool} Click on this, then click on objects or the diagram background -to edit object or free-floating text labels.} -\end{twocollist} - -The other tools on this palette represent demo objects. - -To place an object on a diagram, click on its symbol, then left-click on the diagram. You will need to click -on the palette symbol each time you wish to create an object, since the palette selection reverts to the pointer tool -after each object is created. - -\chapter{Dialogs}\label{dialogs}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -To be written. - -\chapter{How To}\label{howto}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Create a new object} - -Create a new diagram window if you have not already. Then: - -\begin{itemize}\itemsep=0pt -\item Left-click on the required object on the palette, then left-click on the diagram window. -\end{itemize} - - -% This section commented out -\begin{comment} -\bibliography{refs} -\addcontentsline{toc}{chapter}{Bibliography} -\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\end{comment} - -\addcontentsline{toc}{chapter}{Index} -\printindex% - -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\end{document} diff --git a/utils/ogl/samples/studio/manual/telephon.bmp b/utils/ogl/samples/studio/manual/telephon.bmp deleted file mode 100644 index 1788be8a72480caa1bdccd88501a9bd6ebf4c06a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmb7>F%H5o3`LDql?Wl!0WmW&aR_#<1B@B7Vc)wQUQM@+&Esg>Vc)Z3A@>y=_EYZC1Al zpO%IOUSEvHCa53#*xB!OHRU>uL_GByJINH9MBGp*Xk3!J`X5Ppd%vX@4Yk!CWh3Ga znkx>`So0F=22=x^xDe}gG7Vz7nhu{+=qIVsaPD;98ETw=a+d4!o?%SH{-o&fR=`$i f==a+unRcWj*LP^1_3ZNIi|0n3U%;%{2;bQQFDGee22S#VUo?`XYeyjTT}*FEF`2&%fYsv4jKn}C6)?@LF-fX zC7CPKK!R+fWCxiNIcLNeX%yWkMHIm$B~p0fhX!YOAt?ku5^{&2)nYT(I-4KOfkx}7 W_5`$ATdeLo+T0JezsY;<=;{k{K6#)3 diff --git a/utils/ogl/samples/studio/manual/therm.bmp b/utils/ogl/samples/studio/manual/therm.bmp deleted file mode 100644 index 00971562ed5f6ffb178658011c2a6fed5184abb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 812 zcmZXSJyOIl4288KLp%&ab{K|wOA1aw&s|)>mhMQ$ZK(H1lyu>fWIG8s@t@v%k}Uh> z_4!J?y)iz~PqiOp5M}*kLv2T9>(Pn`zmyUaBTIUb%jE*F_%F+1D>|Q<7*5QZu4iSu zpY_vr!>nb~&PeYvOFnV_KCB<0KP# z?BZeTweb%7 diff --git a/utils/ogl/samples/studio/manual/tick.bmp b/utils/ogl/samples/studio/manual/tick.bmp deleted file mode 100644 index c0d66c94601657fee33b923de9b1791844d7a331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 220 zcmXv`!4bnS2vd9<&b6P6(K-6>8h!H$UytTNvWqL(DMm;L@cVON#YuV*&l?*Ih5AeU z{bqVO)bKZHuqJq2P$o+ Qrwbl?Kzn<_G@1WzKlk4xlmGw# diff --git a/utils/ogl/samples/studio/manual/toback.bmp b/utils/ogl/samples/studio/manual/toback.bmp deleted file mode 100644 index d2e5efffcea17b5340e8c9278186ca5cf16e666e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZ`yu?>JQ3^NiE0|T7F9qjzl2^cf>9QF?FMZ8d)1PO#h65C0vwDWSpW2H>QNDM@S zmJIC1PUWgEAng0mNcZ%*en37UzJJQ409!#Op@kUh#ZHNo5<&TT>4iR1ivT=$yRS#8XFECq!-*mgr LV^3-JfBEkPyAH!9 diff --git a/utils/ogl/samples/studio/manual/tool3.bmp b/utils/ogl/samples/studio/manual/tool3.bmp deleted file mode 100644 index 6a49f459c3034a9d633c00c876720d1d6ec01a59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmbtP$qj%o3^NiE{NTk5%)y^sc#$9KX6;C9Q0!1~{E$dv*LBpindYs6$4VZFp`b$T zep~7~^aWl(gc32H8<`R*C4>-I$ezeqir|t(vOE52cJ>w|bn4wu*h0nFrR6FbL$Ou( Uq@Q8CoZa7Pu)am`?}1?Jt#_EJF0zxwmn=b!rz4Gl#m_}~*tbI#AMJHc#tAlEDnRIiNPSZG(vAb^3 z@-Lc)4mY7$E@-?l&k}df4Lj6Wqj&~Lcqge_^oQx&Ir31MnNZCrSo(Gr)z8w{q4F;# zx-rfv;^I}v*A)J0BPRRTL}TCMr*?uxN5rmIAbw^R_)H0(cc3S&A}>rSR5| diff --git a/utils/ogl/samples/studio/manual/undo.bmp b/utils/ogl/samples/studio/manual/undo.bmp deleted file mode 100644 index 4ad80c772f8f5281500707222f552d634a9c027a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcma)zu?>JQ3!n}6e%=pgD_<}*2+Yz5YBOr`1t>vyt3|(LMK@8j3+#3B&Dlo ygm>;xkrJQ30?Ld;pCXxv6~fs8i2~vH|E+&J(|oGdii}_YJ!sUz z((YWzGDEE-(MqWb%&45RLI?!KTcy|pcxFM{N3r657vo{E>4N2o^{e;ZbNANgU-K?u CAW)M4 diff --git a/utils/ogl/samples/studio/manual/wrench.bmp b/utils/ogl/samples/studio/manual/wrench.bmp deleted file mode 100644 index 8062f7d0c351a267c4a4cafb1f5867351fb076b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 744 zcmZuvyH3PF4D?x6vOcd}DlvU8)vKdkb>4S&)%4nZ*v*=$c&ZqxrXrQ`F;GjvAvdBG6r9O25olnkMRmPZK6Exh zm4@caRa3H#HXl5HbPAs)#E&y#F1e^1hxvf-Dpaw15H}P&uXR4qonLA|7Q~D!H~}@d zJs`XRIe4H8^@<48gyI2;A=|{Nz;0N}LGCU16FY@_BXf%QMbmJ%6&^+=zoV7QTMuQ8 x;#%13NXOAZ)?K>S(HA0f)Pc;@2a-bPtoSVImJRvdj;GxU zhBM=yexPsZ3#=J|$I>znEycvemKkNI}0Pw~TiO-DW7%DYa#ul)#>K;C|YTDSvGP;$%i diff --git a/utils/ogl/samples/studio/project.cpp b/utils/ogl/samples/studio/project.cpp deleted file mode 100644 index a6298d698e..0000000000 --- a/utils/ogl/samples/studio/project.cpp +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: project.cpp -// Purpose: Studio project classes -// Author: Julian Smart -// Modified by: -// Created: 27/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// 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" -#include "wx/mdi.h" -#endif - -#include "wx/laywin.h" -#include "studio.h" -#include "project.h" - -IMPLEMENT_CLASS(csProjectTreeCtrl, wxTreeCtrl) - -BEGIN_EVENT_TABLE(csProjectTreeCtrl, wxTreeCtrl) -END_EVENT_TABLE() - -// Define my frame constructor -csProjectTreeCtrl::csProjectTreeCtrl(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, - long style): - - wxTreeCtrl(parent, id, pos, size, style), - m_imageList(16, 16) -{ - m_imageList.Add(wxIcon("folder1")); - m_imageList.Add(wxIcon("file1")); - - SetImageList(& m_imageList); -} - -csProjectTreeCtrl::~csProjectTreeCtrl() -{ - SetImageList(NULL); -} - -// Create the project window -bool csApp::CreateProjectWindow(wxFrame *parent) -{ -#if 0 - // Create a layout window - wxSashLayoutWindow* win = new wxSashLayoutWindow(parent, ID_LAYOUT_WINDOW_PROJECT, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D|wxCLIP_CHILDREN); - win->SetDefaultSize(wxSize(150, 10000)); - win->SetOrientation(wxLAYOUT_VERTICAL); - win->SetAlignment(wxLAYOUT_LEFT); - win->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - win->SetSashVisible(wxSASH_RIGHT, TRUE); - win->SetExtraBorderSize(5); - - m_projectSashWindow = win; - - m_projectTreeCtrl = new csProjectTreeCtrl(win, ID_WINDOW_PROJECT_TREE, wxDefaultPosition, - wxDefaultSize, wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxDOUBLE_BORDER); - - // For now, hide the window - m_projectSashWindow->Show(FALSE); -#endif - - return TRUE; -} - -// Fill out the project tree control -void csApp::FillProjectTreeCtrl() -{ -#if 0 - csProjectTreeCtrl& tree = *GetProjectTreeCtrl(); - - // Dummy data for now - long level0 = tree.InsertItem(0, "Applications", 0, 0); - long level1 = tree.InsertItem(level0, "Projects", 0, 0); - tree.InsertItem(level1, "project1", 1, 1); - tree.InsertItem(level1, "project2", 1, 1); -#endif -} - diff --git a/utils/ogl/samples/studio/project.h b/utils/ogl/samples/studio/project.h deleted file mode 100644 index b52ae259ef..0000000000 --- a/utils/ogl/samples/studio/project.h +++ /dev/null @@ -1,42 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: project.h -// Purpose: Studio project classes -// Author: Julian Smart -// Modified by: -// Created: 27/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_PROJECT_H_ -#define _STUDIO_PROJECT_H_ - -#include -#include - -/* - * This is the project tree control. - */ - -class csProjectTreeCtrl: public wxTreeCtrl -{ - -DECLARE_CLASS(csProjectTreeCtrl) -public: - - csProjectTreeCtrl(wxWindow *parent, const wxWindowID id, const wxPoint& pos, const wxSize& size, - long style = wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT); - - ~csProjectTreeCtrl(); - - wxImageList& GetImageList() const { return (wxImageList&) m_imageList; } -protected: - wxImageList m_imageList; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _STUDIO_PROJECT_H_ - diff --git a/utils/ogl/samples/studio/shapes.cpp b/utils/ogl/samples/studio/shapes.cpp deleted file mode 100644 index b9197af2eb..0000000000 --- a/utils/ogl/samples/studio/shapes.cpp +++ /dev/null @@ -1,1185 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: shapes.cpp -// Purpose: Implements Studio shapes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h! -#endif - -#include - -#include "studio.h" -#include "doc.h" -#include "shapes.h" -#include "view.h" -#include "basicp.h" -#include "linesp.h" -#include "cspalette.h" -#include "dialogs.h" - -#define csSTANDARD_SHAPE_WIDTH 100 - -IMPLEMENT_CLASS(csDiagram, wxDiagram) - -csDiagram::~csDiagram() -{ - DeleteAllShapes(); -} - -void csDiagram::Redraw(wxDC& dc) -{ - wxDiagram::Redraw(dc); - - // Draw line crossings - wxLineCrossings lineCrossings; - lineCrossings.FindCrossings(*this); - lineCrossings.DrawCrossings(*this, dc); -} - -/* - * csEvtHandler: an event handler class for all shapes - */ - -IMPLEMENT_DYNAMIC_CLASS(csEvtHandler, wxShapeEvtHandler) - -csEvtHandler::csEvtHandler(wxShapeEvtHandler *prev, wxShape *shape, const wxString& lab): - wxShapeEvtHandler(prev, shape) -{ - m_label = lab; -} - -csEvtHandler::~csEvtHandler() -{ -} - -// Copy any event handler data -void csEvtHandler::CopyData(wxShapeEvtHandler& copy) -{ - wxShapeEvtHandler::CopyData(copy); - - csEvtHandler& csCopy = (csEvtHandler&) copy; - csCopy.m_label = m_label; -} - -void csEvtHandler::OnLeftClick(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - csDiagramView* view = ((csCanvas*)GetShape()->GetCanvas())->GetView(); - view->ReflectPointSize(GetShape()->GetFont()->GetPointSize()); - - if (GetShape()->IsKindOf(CLASSINFO(wxLineShape))) - view->ReflectArrowState((wxLineShape*) GetShape()); - - csEditorToolPalette *palette = wxGetApp().GetDiagramPalette(); - if (palette->GetSelection() == PALETTE_TEXT_TOOL) - { - view->ReflectPointSize(GetShape()->GetFont()->GetPointSize()); - - EditProperties(); -#if 0 - csLabelEditingDialog* dialog = new csLabelEditingDialog(GetShape()->GetCanvas()->GetParent()); - dialog->SetShapeLabel(m_label); - if (dialog->ShowModal() == wxID_CANCEL) - { - dialog->Destroy(); - return; - } - - wxString newLabel = dialog->GetShapeLabel(); - dialog->Destroy(); - - wxShape* newShape = GetShape()->CreateNewCopy(); - - csEvtHandler* handler = (csEvtHandler *)newShape->GetEventHandler(); - handler->m_label = newLabel; - - view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Edit label", (csDiagramDocument*) view->GetDocument(), - new csCommandState(ID_CS_EDIT_PROPERTIES, newShape, GetShape()))); -#endif - return; - } - - if (keys == 0) - { - // If no shift key, then everything is deselected. - // If the shape was selected, deselect it and vice versa. - bool selected = GetShape()->Selected(); - - view->SelectAll(FALSE); - - selected = !selected; - - GetShape()->Select(selected, &dc); - GetShape()->GetCanvas()->Redraw(dc); // Redraw because bits of objects will be missing - - view->SelectShape(GetShape(), selected); - } - else if (keys & KEY_SHIFT) - { - if (GetShape()->Selected()) - { - GetShape()->Select(FALSE, &dc); - view->SelectShape(GetShape(), FALSE); - } - else - { - GetShape()->Select(TRUE, &dc); - view->SelectShape(GetShape(), TRUE); - } - GetShape()->GetCanvas()->Redraw(dc); // Redraw because bits of objects will be missing - } - else if (keys & KEY_CTRL) - { - // Do something for CONTROL - } - else - { - ((wxFrame*)wxGetApp().GetTopWindow())->SetStatusText(m_label); - } -} - -void csEvtHandler::OnRightClick(double x, double y, int keys, int attachment) -{ - // Have to convert back to physical coordinates from logical coordinates. - - int viewStartX, viewStartY; - int unitX, unitY; - GetShape()->GetCanvas()->ViewStart(& viewStartX, & viewStartY); - GetShape()->GetCanvas()->GetScrollPixelsPerUnit(& unitX, & unitY); - - int x1 = (int)(x * GetShape()->GetCanvas()->GetScaleX()); - int y1 = (int)(y * GetShape()->GetCanvas()->GetScaleY()); - - int menuX = (int) (x1 - (viewStartX * unitX)) ; - int menuY = (int) (y1 - (viewStartY * unitY)); - - wxGetApp().GetShapeEditMenu()->SetClientData((char*) GetShape()); - wxGetApp().GetShapeEditMenu()->Enable(ID_CS_ROTATE_CLOCKWISE, !GetShape()->IsKindOf(CLASSINFO(wxLineShape))); - wxGetApp().GetShapeEditMenu()->Enable(ID_CS_ROTATE_ANTICLOCKWISE, !GetShape()->IsKindOf(CLASSINFO(wxLineShape))); - - GetShape()->GetCanvas()->PopupMenu(wxGetApp().GetShapeEditMenu(), menuX, menuY); -} - -/* - * Implement connection of two shapes by right-dragging between them. - */ - -void csEvtHandler::OnBeginDragRight(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetLogicalFunction(wxXOR); - dc.SetPen(dottedPen); - double xp, yp; - GetShape()->GetAttachmentPositionEdge(attachment, &xp, &yp); - dc.DrawLine(xp, yp, x, y); - GetShape()->GetCanvas()->CaptureMouse(); -} - -void csEvtHandler::OnDragRight(bool draw, double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetLogicalFunction(wxXOR); - dc.SetPen(dottedPen); - double xp, yp; - GetShape()->GetAttachmentPositionEdge(attachment, &xp, &yp); - dc.DrawLine(xp, yp, x, y); -} - -void csEvtHandler::OnEndDragRight(double x, double y, int keys, int attachment) -{ - GetShape()->GetCanvas()->ReleaseMouse(); - csCanvas *canvas = (csCanvas *)GetShape()->GetCanvas(); - - // Check if we're on an object - int new_attachment; - wxShape *otherShape = canvas->FindFirstSensitiveShape(x, y, &new_attachment, OP_DRAG_RIGHT); - - if (otherShape && !otherShape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxLineShape* theShape = new csLineShape; - - theShape->AssignNewIds(); - theShape->SetEventHandler(new csEvtHandler(theShape, theShape, wxString(""))); - theShape->SetPen(wxBLACK_PEN); - theShape->SetBrush(wxRED_BRUSH); - - wxToolBar* toolbar = wxGetApp().GetDiagramToolBar(); - bool haveArrow = toolbar->GetToolState(DIAGRAM_TOOLBAR_LINE_ARROW); - - wxLineShape *lineShape = (wxLineShape *)theShape; - - // Yes, you can have more than 2 control points, in which case - // it becomes a multi-segment line. - lineShape->MakeLineControlPoints(2); - - if (haveArrow) - lineShape->AddArrow(ARROW_ARROW, ARROW_POSITION_MIDDLE, 10.0, 0.0, "Normal arrowhead"); - - lineShape->SetFrom(GetShape()); - lineShape->SetTo(otherShape); - lineShape->SetAttachments(attachment, new_attachment); - - canvas->GetView()->GetDocument()->GetCommandProcessor()->Submit( - new csDiagramCommand("Line", (csDiagramDocument *)canvas->GetView()->GetDocument(), - new csCommandState(ID_CS_ADD_LINE, lineShape, NULL))); - } -} - -static double g_DragOffsetX = 0.0; -static double g_DragOffsetY = 0.0; -static double g_DragStartX = 0.0; -static double g_DragStartY = 0.0; - -void csEvtHandler::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - if ((GetShape()->GetSensitivityFilter() & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (GetShape()->GetParent()) - { - GetShape()->GetParent()->HitTest(x, y, &attachment, &dist); - GetShape()->GetParent()->GetEventHandler()->OnDragLeft(draw, x, y, keys, attachment); - } - return; - } - - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - double xx, yy; - xx = x + g_DragOffsetX; - yy = y + g_DragOffsetY; - - GetShape()->GetCanvas()->Snap(&xx, &yy); - - double offsetX = xx - g_DragStartX; - double offsetY = yy - g_DragStartY; - -// m_xpos = xx; m_ypos = yy; - double w, h; - GetShape()->GetBoundingBoxMax(&w, &h); - GetShape()->GetEventHandler()->OnDrawOutline(dc, xx, yy, w, h); - - // Draw bounding box for other selected shapes - wxNode* node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->Selected() && !shape->IsKindOf(CLASSINFO(wxLineShape)) && (shape != GetShape())) - { - shape->GetBoundingBoxMax(&w, &h); - shape->OnDrawOutline(dc, shape->GetX() + offsetX, shape->GetY() + offsetY, w, h); - } - node = node->Next(); - } -} - -void csEvtHandler::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - if ((GetShape()->GetSensitivityFilter() & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (GetShape()->GetParent()) - { - GetShape()->GetParent()->HitTest(x, y, &attachment, &dist); - GetShape()->GetParent()->GetEventHandler()->OnBeginDragLeft(x, y, keys, attachment); - } - return; - } - - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - // New policy: don't erase shape until end of drag. -// Erase(dc); - - g_DragOffsetX = GetShape()->GetX() - x; - g_DragOffsetY = GetShape()->GetY() - y; - - double xx, yy; - xx = x + g_DragOffsetX; - yy = y + g_DragOffsetY; - - GetShape()->GetCanvas()->Snap(&xx, &yy); - - g_DragStartX = GetShape()->GetX(); - g_DragStartY = GetShape()->GetY(); - - double offsetX = xx - g_DragStartX; - double offsetY = yy - g_DragStartY; - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - double w, h; - GetShape()->GetBoundingBoxMax(&w, &h); - GetShape()->GetEventHandler()->OnDrawOutline(dc, xx, yy, w, h); - - // Draw bounding box for other selected shapes - wxNode* node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->Selected() && !shape->IsKindOf(CLASSINFO(wxLineShape)) && (shape != GetShape())) - { - shape->GetBoundingBoxMax(&w, &h); - shape->OnDrawOutline(dc, shape->GetX() + offsetX, shape->GetY() + offsetY, w, h); - } - node = node->Next(); - } - - GetShape()->GetCanvas()->CaptureMouse(); -} - - -void csEvtHandler::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - csCanvas *canvas = (csCanvas *)GetShape()->GetCanvas(); - - canvas->ReleaseMouse(); - if ((GetShape()->GetSensitivityFilter() & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (GetShape()->GetParent()) - { - GetShape()->GetParent()->HitTest(x, y, &attachment, &dist); - GetShape()->GetParent()->GetEventHandler()->OnEndDragLeft(x, y, keys, attachment); - } - return; - } - - wxClientDC dc(canvas); - canvas->PrepareDC(dc); - - dc.SetLogicalFunction(wxCOPY); - - double xx = x + g_DragOffsetX; - double yy = y + g_DragOffsetY; - - canvas->Snap(&xx, &yy); - - double offsetX = xx - g_DragStartX; - double offsetY = yy - g_DragStartY; - - wxShape* newShape = GetShape()->CreateNewCopy(); - - newShape->SetX(xx); - newShape->SetY(yy); - - csDiagramCommand* cmd = new csDiagramCommand("Move", (csDiagramDocument*)canvas->GetView()->GetDocument(), - new csCommandState(ID_CS_MOVE, newShape, GetShape())); - - // Move line points - wxNode* node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - // Only move the line point(s) if both ends move too - if (shape->IsKindOf(CLASSINFO(wxLineShape)) && - ((wxLineShape*)shape)->GetTo()->Selected() && ((wxLineShape*)shape)->GetFrom()->Selected()) - { - wxLineShape* lineShape = (wxLineShape*) shape; - - if (lineShape->GetLineControlPoints()->Number() > 2) - { - wxLineShape* newLineShape = (wxLineShape*) lineShape->CreateNewCopy(); - - wxNode *node1 = newLineShape->GetLineControlPoints()->First(); - while (node1) - { - wxRealPoint *point = (wxRealPoint *)node1->Data(); - point->x += offsetX; - point->y += offsetY; - node1 = node1->Next(); - } - cmd->AddState(new csCommandState(ID_CS_MOVE_LINE_POINT, newLineShape, lineShape)); - lineShape->Erase(dc); - } - } - node = node->Next(); - } - - // Add other selected node shapes, if any - node = GetShape()->GetCanvas()->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->Selected() && !shape->IsKindOf(CLASSINFO(wxLineShape)) && (shape != GetShape())) - { - wxShape* newShape2 = shape->CreateNewCopy(); - newShape2->SetX(shape->GetX() + offsetX); - newShape2->SetY(shape->GetY() + offsetY); - cmd->AddState(new csCommandState(ID_CS_MOVE, newShape2, shape)); - } - node = node->Next(); - } - - canvas->GetView()->GetDocument()->GetCommandProcessor()->Submit(cmd); -} - -void csEvtHandler::OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - wxShape* shape = GetShape(); - csCanvas *canvas = (csCanvas *)GetShape()->GetCanvas(); - - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - { - // TODO: Do/Undo support for line operations - ((wxLineShape*)shape)->wxLineShape::OnSizingEndDragLeft(pt, x, y, keys, attachment); -#if 0 - wxLineShape* lineShape = (wxLineShape*) shape; - - wxLineControlPoint* lpt = (wxLineControlPoint*) pt; - - wxClientDC dc(canvas); - canvas->PrepareDC(dc); - - shape->SetDisableLabel(FALSE); - - if (lpt->m_type == CONTROL_POINT_LINE) - { - canvas->Snap(&x, &y); - - dc.SetLogicalFunction(wxCOPY); - lpt->SetX(x); lpt->SetY(y); - lpt->m_point->x = x; lpt->m_point->y = y; - - this->OnMoveLink(dc); - } - if (lpt->m_type == CONTROL_POINT_ENDPOINT_FROM) - { - if (lpt->m_oldCursor) - canvas->SetCursor(lpt->m_oldCursor); - lineShape->Erase(dc); - - lpt->SetX(x); lpt->SetY(y); - - if (lineShape->GetFrom()) - { - lineShape->GetFrom()->MoveLineToNewAttachment(dc, lineShape, x, y); - } - } - if (lpt->m_type == CONTROL_POINT_ENDPOINT_TO) - { - if (lpt->m_oldCursor) - canvas->SetCursor(lpt->m_oldCursor); - - lpt->SetX(x); lpt->SetY(y); - - if (lineShape->GetTo()) - { - lineShape->GetTo()->MoveLineToNewAttachment(dc, lineShape, x, y); - } - } -#endif - return; - } - - wxClientDC dc(canvas); - canvas->PrepareDC(dc); - - canvas->ReleaseMouse(); - dc.SetLogicalFunction(wxCOPY); - -// shape->Erase(dc); -/* - shape->Recompute(); - shape->ResetControlPoints(); - if (!pt->m_eraseObject) - shape->Show(FALSE); -*/ - - wxShape* newShape = shape->CreateNewCopy(); - - if (newShape->IsKindOf(CLASSINFO(wxPolygonShape))) - { - wxPolygonControlPoint* ppt = (wxPolygonControlPoint*) pt; - newShape->SetSize(ppt->GetNewSize().x, ppt->GetNewSize().y); - - ((wxPolygonShape *)newShape)->CalculateBoundingBox(); - ((wxPolygonShape *)newShape)->CalculatePolygonCentre(); - newShape->ResetControlPoints(); - } - else - { - newShape->SetSize(pt->sm_controlPointDragEndWidth, pt->sm_controlPointDragEndHeight); - if (shape->GetCentreResize()) - { - // Old position is fine - } - else - { - newShape->SetX(pt->sm_controlPointDragPosX); - newShape->SetY(pt->sm_controlPointDragPosY); - } - } - - csDiagramCommand* cmd = new csDiagramCommand("Size", (csDiagramDocument*)canvas->GetView()->GetDocument(), - new csCommandState(ID_CS_SIZE, newShape, shape)); - - canvas->GetView()->GetDocument()->GetCommandProcessor()->Submit(cmd); - -} - -void csEvtHandler::OnEndSize(double x, double y) -{ - wxClientDC dc(GetShape()->GetCanvas()); - GetShape()->GetCanvas()->PrepareDC(dc); - - GetShape()->FormatText(dc, m_label); -} - -void csEvtHandler::OnChangeAttachment(int attachment, wxLineShape* line, wxList& ordering) -{ - csCanvas *canvas = (csCanvas *)GetShape()->GetCanvas(); - - // We actually submit two different states: one to change the ordering, and another - // to change the attachment for the line. - // Problem. If we refresh after the attachment change, we'll get a flicker. - // We really want to do both in a oner. - - csDiagramCommand* cmd = new csDiagramCommand("Change attachment", (csDiagramDocument*)canvas->GetView()->GetDocument()); - - wxLineShape* newLine = (wxLineShape*) line->CreateNewCopy(); - if (line->GetTo() == GetShape()) - newLine->SetAttachmentTo(attachment); - else - newLine->SetAttachmentFrom(attachment); - - cmd->AddState(new csCommandState(ID_CS_CHANGE_LINE_ATTACHMENT, newLine, line)); - - // Change ordering - wxShape* newShape = GetShape()->CreateNewCopy(); - newShape->ApplyAttachmentOrdering(ordering); - - cmd->AddState(new csCommandState(ID_CS_CHANGE_LINE_ORDERING, newShape, GetShape())); - - canvas->GetView()->GetDocument()->GetCommandProcessor()->Submit(cmd); -} - -void csEvtHandler::OnLeftDoubleClick(double x, double y, int keys, int attachment) -{ - EditProperties(); -} - -// Popup up a property dialog -bool csEvtHandler::EditProperties() -{ - wxShape* shape = GetShape(); - - // For now, no line property editing - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - return FALSE; - - csDiagramView* view = ((csCanvas*)shape->GetCanvas())->GetView(); - - wxPanel* attributeDialog; - wxString attributeDialogName; - wxString title; - - if (shape->IsKindOf(CLASSINFO(csThinRectangleShape))) - { - attributeDialog = new csThinRectangleDialog; - attributeDialogName = "thin_rectangle"; - title = "Thin Rectangle Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csWideRectangleShape))) - { - attributeDialog = new csWideRectangleDialog; - attributeDialogName = "wide_rectangle"; - title = "Wide Rectangle Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csTriangleShape))) - { - attributeDialog = new csTriangleDialog; - attributeDialogName = "triangle"; - title = "Triangle Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csSemiCircleShape))) - { - attributeDialog = new csSemiCircleDialog; - attributeDialogName = "semi_circle"; - title = "Semicircle Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csCircleShape))) - { - attributeDialog = new csCircleDialog; - attributeDialogName = "circle"; - title = "Circle Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csCircleShadowShape))) - { - attributeDialog = new csCircleShadowDialog; - attributeDialogName = "circle_shadow"; - title = "Circle Shadow Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csTextBoxShape))) - { - attributeDialog = new csTextBoxDialog; - attributeDialogName = "text_box"; - title = "Text Box Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csGroupShape))) - { - attributeDialog = new csGroupDialog; - attributeDialogName = "group"; - title = "Group Properties"; - } - else if (shape->IsKindOf(CLASSINFO(csOctagonShape))) - { - attributeDialog = new csOctagonDialog; - attributeDialogName = "octagon"; - title = "Octagon Properties"; - } - else - { - wxMessageBox("Unrecognised shape.", "Studio", wxICON_EXCLAMATION); - return FALSE; - } - - csShapePropertiesDialog* dialog = new csShapePropertiesDialog(shape->GetCanvas()->GetParent(), title, attributeDialog, attributeDialogName); - dialog->GetGeneralPropertiesDialog()->SetShapeLabel(m_label); - if (dialog->ShowModal() == wxID_CANCEL) - { - dialog->Destroy(); - return FALSE; - } - - wxString newLabel = dialog->GetGeneralPropertiesDialog()->GetShapeLabel(); - dialog->Destroy(); - - wxShape* newShape = shape->CreateNewCopy(); - - csEvtHandler* handler2 = (csEvtHandler *)newShape->GetEventHandler(); - handler2->m_label = newLabel; - - view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Edit properties", (csDiagramDocument*) view->GetDocument(), - new csCommandState(ID_CS_EDIT_PROPERTIES, newShape, shape))); - - return TRUE; -} - -/* - * Diagram - */ - -bool csDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) -{ - wxDiagram::OnShapeSave(db, shape, expr); - csEvtHandler *handler = (csEvtHandler *)shape.GetEventHandler(); - expr.AddAttributeValueString("label", handler->m_label); - return TRUE; -} - -bool csDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr) -{ - wxDiagram::OnShapeLoad(db, shape, expr); - wxString label(""); - expr.GetAttributeValue("label", label); - csEvtHandler *handler = new csEvtHandler(&shape, &shape, label); - shape.SetEventHandler(handler); - - return TRUE; -} - -IMPLEMENT_DYNAMIC_CLASS(csThinRectangleShape, wxDrawnShape) - -csThinRectangleShape::csThinRectangleShape() -{ - SetDrawnPen(wxBLACK_PEN); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID); - SetDrawnBrush(brush); - - double w = csSTANDARD_SHAPE_WIDTH/2; - double h = csSTANDARD_SHAPE_WIDTH; - - DrawRectangle(wxRect(- w/2, - h/2, w, h)); - CalculateSize(); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -IMPLEMENT_DYNAMIC_CLASS(csWideRectangleShape, wxDrawnShape) - -csWideRectangleShape::csWideRectangleShape() -{ - SetDrawnPen(wxBLACK_PEN); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID); - SetDrawnBrush(brush); - - double w = csSTANDARD_SHAPE_WIDTH; - double h = w/2.0; - - DrawRoundedRectangle(wxRect(- w/2, - h/2, w, h), -0.3); - CalculateSize(); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -IMPLEMENT_DYNAMIC_CLASS(csTriangleShape, wxDrawnShape) - -csTriangleShape::csTriangleShape() -{ - SetDrawnPen(wxBLACK_PEN); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID); - SetDrawnBrush(brush); - - double w = csSTANDARD_SHAPE_WIDTH; - double h = (csSTANDARD_SHAPE_WIDTH*2.0)/3.0; - - // Triangle, from top vertex - wxPoint* points = new wxPoint[3]; - - - points[0] = wxPoint( 0 , - h / 2 ); - points[1] = wxPoint( w / 2 , h / 2 ); - points[2] = wxPoint( -w / 2, h / 2 ); - - DrawPolygon(3, points, oglMETAFLAGS_OUTLINE); - - delete[] points; - - // Add another triangle at the top for the black bit - SetDrawnBrush(wxBLACK_BRUSH); - - points = new wxPoint[3]; - - // Calculate where the new points will be, using the proportions - // of the triangle. - double h1 = 8; // Height of little triangle. - - /* - Formula: ((w/2) / h) = w1 / h1 - w1 = ((w/2) / h) * h1; - */ - double ratio = ((w/2.0) / h) ; - double w1 = ratio * h1; - - points[0] = wxPoint(0 , (int) (- h / 2 )); - points[1] = wxPoint( (int) w1, (int) (- h / 2 + h1)); - points[2] = wxPoint( (int) -w1, (int) (- h / 2 + h1)); - - DrawPolygon(3, points); - - delete[] points; - - CalculateSize(); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -IMPLEMENT_DYNAMIC_CLASS(csSemiCircleShape, wxDrawnShape) - -csSemiCircleShape::csSemiCircleShape() -{ - // Zero degrees - DrawAtAngle(oglDRAWN_ANGLE_0); - - double w = csSTANDARD_SHAPE_WIDTH; - double h = w/2.0; - - SetDrawnPen(wxTRANSPARENT_PEN); - SetDrawnBrush(wxTRANSPARENT_BRUSH); - - // Draw a dummy rectangle that will be used for calculating the - // bounding box, since we can't calculate the bounding box for - // an arbitrary arc (not implemented) - - DrawRectangle(wxRect(-w/2.0, -h/2.0, w, h)); - - SetDrawnPen(wxBLACK_PEN); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID); - SetDrawnBrush(brush); - - DrawEllipticArc(wxRect(-w/2, -h/2, w, 2*h), 0.0, 180.0); - DrawLine(wxPoint(-w/2, h/2), wxPoint(w/2, h/2)); - - CalculateSize(); - - /// 90 degrees - - w = csSTANDARD_SHAPE_WIDTH/2; - h = csSTANDARD_SHAPE_WIDTH; - - DrawAtAngle(oglDRAWN_ANGLE_90); - - SetDrawnPen(wxTRANSPARENT_PEN); - SetDrawnBrush(wxTRANSPARENT_BRUSH); - - DrawRectangle(wxRect(-w/2, -h/2, w, h)); - - SetDrawnPen(wxBLACK_PEN); - SetDrawnBrush(brush); - - DrawEllipticArc(wxRect(-w/2 - w, -h/2, 2*w, h), 270.0, 90.0); - DrawLine(wxPoint(-w/2, -h/2), wxPoint(-w/2, h/2)); - - CalculateSize(); - - /// 180 degrees - - DrawAtAngle(oglDRAWN_ANGLE_180); - - w = csSTANDARD_SHAPE_WIDTH; - h = csSTANDARD_SHAPE_WIDTH/2; - - SetDrawnPen(wxTRANSPARENT_PEN); - SetDrawnBrush(wxTRANSPARENT_BRUSH); - - DrawRectangle(wxRect(-w/2, -h/2, w, h)); - - SetDrawnPen(wxBLACK_PEN); - SetDrawnBrush(brush); - - DrawEllipticArc(wxRect(-w/2, -h/2 - h, w, 2*h), 180.0, 0.0); - DrawLine(wxPoint(-w/2, -h/2), wxPoint(w/2, -h/2)); - - CalculateSize(); - - /// 270 degrees - - DrawAtAngle(oglDRAWN_ANGLE_270); - - w = csSTANDARD_SHAPE_WIDTH/2; - h = csSTANDARD_SHAPE_WIDTH; - - SetDrawnPen(wxTRANSPARENT_PEN); - SetDrawnBrush(wxTRANSPARENT_BRUSH); - - DrawRectangle(wxRect(-w/2, -h/2, w, h)); - - SetDrawnPen(wxBLACK_PEN); - SetDrawnBrush(brush); - - DrawEllipticArc(wxRect(-w/2, -h/2, 2*w, h), 90.0, 270.0); - DrawLine(wxPoint(w/2, -h/2), wxPoint(w/2, h/2)); - - CalculateSize(); - - // Reset to zero - DrawAtAngle(oglDRAWN_ANGLE_0); - CalculateSize(); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -IMPLEMENT_DYNAMIC_CLASS(csCircleShape, wxCircleShape) - -csCircleShape::csCircleShape() -{ - SetPen(wxBLACK_PEN); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID); - SetBrush(brush); - - SetSize(csSTANDARD_SHAPE_WIDTH*0.6, csSTANDARD_SHAPE_WIDTH*0.6); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -IMPLEMENT_DYNAMIC_CLASS(csCircleShadowShape, wxCircleShape) - -csCircleShadowShape::csCircleShadowShape() -{ - SetPen(wxBLACK_PEN); - wxBrush* brush = wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID); - SetBrush(brush); - - SetSize(csSTANDARD_SHAPE_WIDTH*0.6, csSTANDARD_SHAPE_WIDTH*0.6); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); - SetShadowMode(SHADOW_RIGHT); -} - -IMPLEMENT_DYNAMIC_CLASS(csOctagonShape, wxPolygonShape) - -csOctagonShape::csOctagonShape() -{ - SetPen(wxBLACK_PEN); - SetBrush(wxTheBrushList->FindOrCreateBrush(wxColour(220, 220, 220), wxSOLID)); - - double w = csSTANDARD_SHAPE_WIDTH*0.5; - double h = csSTANDARD_SHAPE_WIDTH*0.5; - - double prop = h/3.0; - - wxList* points = new wxList; - points->Append((wxObject*) new wxRealPoint(-w/2.0 + prop, -h/2.0)); - points->Append((wxObject*) new wxRealPoint(w/2.0 - prop, -h/2.0)); - points->Append((wxObject*) new wxRealPoint(w/2.0, -h/2.0 + prop)); - points->Append((wxObject*) new wxRealPoint(w/2.0, h/2.0 - prop)); - points->Append((wxObject*) new wxRealPoint(w/2.0 - prop, h/2.0)); - points->Append((wxObject*) new wxRealPoint(-w/2.0 + prop, h/2.0)); - points->Append((wxObject*) new wxRealPoint(-w/2.0, h/2.0 - prop)); - points->Append((wxObject*) new wxRealPoint(-w/2.0, -h/2.0 + prop)); - - Create(points); - - SetAttachmentMode(ATTACHMENT_MODE_BRANCHING); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -// This is a transparent shape for drawing around other shapes. -IMPLEMENT_DYNAMIC_CLASS(csGroupShape, wxRectangleShape) - -csGroupShape::csGroupShape() -{ - SetPen(wxThePenList->FindOrCreatePen("BLACK", 1, wxDOT)); - SetBrush(wxTRANSPARENT_BRUSH); - - SetSize(csSTANDARD_SHAPE_WIDTH, csSTANDARD_SHAPE_WIDTH); - SetCentreResize(FALSE); -} - -void csGroupShape::OnDraw(wxDC& dc) -{ - wxRectangleShape::OnDraw(dc); -} - -// Must modify the hit-test so it doesn't obscure shapes that are inside. -bool csGroupShape::HitTest(double x, double y, int* attachment, double* distance) -{ - *attachment = 0; - *distance = 0.0; - - double width = 0.0, height = 0.0; - GetBoundingBoxMin(&width, &height); - - double x1 = GetX() - (width/2.0); - double y1 = GetY() - (height/2.0); - double x2 = GetX() + (width/2.0); - double y2 = GetY() + (height/2.0); - - double edgeTolerance = 4.0; - - // Test each edge in turn - - // Top/bottom edges - if (x >= x1 && x <= x2) - { - if ((y >= y1 - edgeTolerance) && (y <= y1 + edgeTolerance)) - return TRUE; - if ((y <= y2 + edgeTolerance) && (y >= y2 - edgeTolerance)) - return TRUE; - } - // Left/right edges - if (y >= y1 && y <= y2) - { - if ((x >= x1 - edgeTolerance) && (x <= x1 + edgeTolerance)) - return TRUE; - if ((x <= x2 + edgeTolerance) && (x >= x2 - edgeTolerance)) - return TRUE; - } - - return FALSE; -} - -IMPLEMENT_DYNAMIC_CLASS(csTextBoxShape, wxRectangleShape) - -csTextBoxShape::csTextBoxShape() -{ - SetPen(wxTRANSPARENT_PEN); - SetBrush(wxTRANSPARENT_BRUSH); - - SetSize(csSTANDARD_SHAPE_WIDTH, csSTANDARD_SHAPE_WIDTH/2.0); - - SetAttachmentMode(ATTACHMENT_MODE_NONE); - SetBranchStyle(BRANCHING_ATTACHMENT_NORMAL|BRANCHING_ATTACHMENT_BLOB); - SetCentreResize(FALSE); -} - -IMPLEMENT_DYNAMIC_CLASS(csLineShape, wxLineShape) - -csLineShape::csLineShape() -{ -} - -bool csLineShape::OnMoveMiddleControlPoint(wxDC& dc, wxLineControlPoint* lpt, const wxRealPoint& pt) -{ - csDiagramView* view = ((csCanvas*)GetCanvas())->GetView(); - - // Temporarily set the new shape properties so we can copy it - lpt->SetX(pt.x); lpt->SetY(pt.y); - lpt->m_point->x = pt.x; lpt->m_point->y = pt.y; - - wxLineShape* newShape = (wxLineShape*) this->CreateNewCopy(); - - // Now set them back again - lpt->SetX(lpt->m_originalPos.x); lpt->SetY(lpt->m_originalPos.y); - lpt->m_point->x = lpt->m_originalPos.x; lpt->m_point->y = lpt->m_originalPos.y; - - view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Move line point", (csDiagramDocument*) view->GetDocument(), - new csCommandState(ID_CS_MOVE_LINE_POINT, newShape, this))); - - return TRUE; -} - -wxLabelShape* csLineShape::OnCreateLabelShape(wxLineShape *parent, wxShapeRegion *region, double w, double h) -{ - return new csLabelShape(parent, region, w, h); -} - -#if 0 -bool csLineShape::OnLabelMovePre(wxDC& dc, wxLabelShape* labelShape, double x, double y, double old_x, double old_y, bool display) -{ - csDiagramView* view = ((csCanvas*)GetCanvas())->GetView(); - - wxLineShape* newShape = (wxLineShape*) this->CreateNewCopy(); - - wxLineShape::OnLabelMovePre(dc, labelShape, x, y, old_x, old_y, display); - - view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Move label", (csDiagramDocument*) view->GetDocument(), - new csCommandState(ID_CS_MOVE_LABEL, newShape, this))); - return TRUE; -} -#endif - -IMPLEMENT_DYNAMIC_CLASS(csLabelShape, wxLabelShape) - -csLabelShape::csLabelShape(wxLineShape *parent, wxShapeRegion *region, double w, double h): - wxLabelShape(parent, region, w, h) -{ -} - -// TODO: not sure how intercept normal behaviour (OnMovePre) to make -// label movement undo-able. -void csLabelShape::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - wxLabelShape::OnEndDragLeft(x, y, keys, attachment); -} - - -// Menu for editing shapes -void studioShapeEditProc(wxMenu& menu, wxCommandEvent& event) -{ - wxShape* shape = (wxShape*) menu.GetClientData(); - csDiagramView* view = ((csCanvas*)shape->GetCanvas())->GetView(); - - switch (event.GetId()) - { - case ID_CS_EDIT_PROPERTIES: - { - csEvtHandler* handler1 = (csEvtHandler *)shape->GetEventHandler(); - handler1->EditProperties(); -#if 0 - csEvtHandler* handler1 = (csEvtHandler *)shape->GetEventHandler(); - csLabelEditingDialog* dialog = new csLabelEditingDialog(shape->GetCanvas()->GetParent()); - dialog->SetShapeLabel(handler1->m_label); - if (dialog->ShowModal() == wxID_CANCEL) - { - dialog->Destroy(); - return; - } - - wxString newLabel = dialog->GetShapeLabel(); - dialog->Destroy(); - - wxShape* newShape = shape->CreateNewCopy(); - - csEvtHandler* handler2 = (csEvtHandler *)newShape->GetEventHandler(); - handler2->m_label = newLabel; - - view->GetDocument()->GetCommandProcessor()->Submit(new csDiagramCommand("Edit label", (csDiagramDocument*) view->GetDocument(), - new csCommandState(ID_CS_EDIT_LABEL, newShape, shape))); -#endif - break; - } - case wxID_CUT: - { - wxList list; - list.Append(shape); - view->DoCut(list); - break; - } - case ID_CS_ROTATE_CLOCKWISE: - case ID_CS_ROTATE_ANTICLOCKWISE: - { - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - break; - - double theta = shape->GetRotation(); - const double myPi = 3.1415926535897932384626433832795 ; - double ninetyDegrees = myPi/2.0; - - wxString opStr; - if (event.GetId() == ID_CS_ROTATE_CLOCKWISE) - { - theta += ninetyDegrees; - opStr = "Rotate clockwise"; - } - else - { - theta -= ninetyDegrees; - opStr = "Rotate anticlockwise"; - } - - if (theta >= 2.0*myPi || theta < 0.0) - theta = 0.0; - wxShape* newShape = shape->CreateNewCopy(); - newShape->Rotate(0.0, 0.0, theta); - wxList newShapes; - wxList oldShapes; - newShapes.Append(newShape); - oldShapes.Append(shape); - view->DoCmd(newShapes, oldShapes, event.GetId(), opStr); - break; - } - default: - break; - } -} - diff --git a/utils/ogl/samples/studio/shapes.h b/utils/ogl/samples/studio/shapes.h deleted file mode 100644 index d817526793..0000000000 --- a/utils/ogl/samples/studio/shapes.h +++ /dev/null @@ -1,258 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: shapes.h -// Purpose: Shape classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_SHAPES_H_ -#define _STUDIO_SHAPES_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include -#include - -#include "ogl.h" -#include "basicp.h" -#include "linesp.h" -#include "drawn.h" - -class csDiagramDocument; - -/* - * Override a few members for this application - */ - -class csDiagram: public wxDiagram -{ -DECLARE_CLASS(csDiagram) -public: - csDiagram(csDiagramDocument* doc) { m_doc = doc; } - ~csDiagram(); - bool OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr); - bool OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr); - - inline csDiagramDocument* GetDocument() const { return m_doc; } - virtual void Redraw(wxDC& dc); - -protected: - csDiagramDocument* m_doc; -}; - -class wxDiagramClipboard: public wxDiagram -{ -DECLARE_DYNAMIC_CLASS(wxDiagramClipboard) -public: - wxDiagramClipboard() {} - ~wxDiagramClipboard() {} - - // Copy selection to clipboard - bool Copy(wxDiagram* diagram); - - // Copy contents to the diagram, with new ids. - // If dc is non-NULL, the pasted shapes will be selected. - // The offsets are used to place the shapes at a different position - // from the original (for example, for duplicating shapes). - bool Paste(wxDiagram* diagram, wxDC* dc = NULL, - int offsetX = 0, int offsetY = 0); - -#ifdef __WXMSW__ - // Draw contents to a Windows metafile device context and bitmap, and then copy - // to the Windows clipboard. - bool CopyToClipboard(double scale); -#endif - -// Overridables - // Start/end copying - virtual bool OnStartCopy(wxDiagram* diagramTo) { return TRUE; }; - virtual bool OnEndCopy(wxDiagram* diagramTo) { return TRUE; }; - - // Override this to e.g. have the shape added through a Do/Undo command system. - // By default, we'll just add it directly to the destination diagram, and - // select the shape (if dc is non-NULL). - virtual bool OnAddShape(wxDiagram* diagramTo, wxShape* newShape, wxDC* dc); - -protected: - bool DoCopy(wxDiagram* diagramFrom, wxDiagram* diagramTo, bool newIds, - wxDC* dc, int offsetX = 0, int offsetY = 0); - -}; - -class csDiagramCommand; - -class csDiagramClipboard: public wxDiagramClipboard -{ -DECLARE_DYNAMIC_CLASS(csDiagramClipboard) -public: - csDiagramClipboard() { m_currentCmd = NULL; } - ~csDiagramClipboard() {} - - // Start/end copying - bool OnStartCopy(wxDiagram* diagramTo); - bool OnEndCopy(wxDiagram* diagramTo); - - bool OnAddShape(wxDiagram* diagramTo, wxShape* newShape, wxDC* dc); - -protected: - csDiagramCommand* m_currentCmd; -}; - - -/* - * The Studio shapes - * N.B. TODO: these should really all have another constructor - * for the ready-initialised shape, with the default one not having any - * data. Otherwise when copying a shape, you have to delete the old data - * first -> slightly less efficient. The initialised shapes are only required - * for the first creation of the shape in the palette, everything else is copied. - */ - -class csThinRectangleShape: public wxDrawnShape -{ -DECLARE_DYNAMIC_CLASS(csThinRectangleShape) -public: - csThinRectangleShape(); -}; - -class csWideRectangleShape: public wxDrawnShape -{ -DECLARE_DYNAMIC_CLASS(csWideRectangleShape) -public: - csWideRectangleShape(); -}; - -class csTriangleShape: public wxDrawnShape -{ -DECLARE_DYNAMIC_CLASS(csTriangleShape) -public: - csTriangleShape(); -}; - -class csSemiCircleShape: public wxDrawnShape -{ -DECLARE_DYNAMIC_CLASS(csSemiCircleShape) -public: - csSemiCircleShape(); -}; - -class csCircleShape: public wxCircleShape -{ -DECLARE_DYNAMIC_CLASS(csCircleShape) -public: - csCircleShape(); -}; - -class csCircleShadowShape: public wxCircleShape -{ -DECLARE_DYNAMIC_CLASS(csCircleShadowShape) -public: - csCircleShadowShape(); -}; - -class csOctagonShape: public wxPolygonShape -{ -DECLARE_DYNAMIC_CLASS(csOctagonShape) -public: - csOctagonShape(); - - // The attachments are as if it's a rectangle - bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL) - { return wxShape::GetAttachmentPosition(attachment, x, y, nth, no_arcs, line); } - int GetNumberOfAttachments() const - { return wxShape::GetNumberOfAttachments(); } - bool AttachmentIsValid(int attachment) const - { return wxShape::AttachmentIsValid(attachment); } -}; - -// This is a transparent shape for drawing around other shapes. -class csGroupShape: public wxRectangleShape -{ -DECLARE_DYNAMIC_CLASS(csGroupShape) -public: - csGroupShape(); - - void OnDraw(wxDC& dc); - // Must modify the hit-test so it doesn't obscure shapes that are inside. - bool HitTest(double x, double y, int* attachment, double* distance); -}; - -class csTextBoxShape: public wxRectangleShape -{ -DECLARE_DYNAMIC_CLASS(csTextBoxShape) -public: - csTextBoxShape(); -}; - -class csLineShape: public wxLineShape -{ -DECLARE_DYNAMIC_CLASS(csLineShape) -public: - csLineShape(); - - virtual bool OnMoveMiddleControlPoint(wxDC& dc, wxLineControlPoint* lpt, const wxRealPoint& pt); - wxLabelShape* OnCreateLabelShape(wxLineShape *parent = NULL, wxShapeRegion *region = NULL, double w = 0.0, double h = 0.0); -}; - -/* - * Temporary arc label object - */ - -class csLabelShape: public wxLabelShape -{ - DECLARE_DYNAMIC_CLASS(csLabelShape) - - public: - csLabelShape(wxLineShape *parent = NULL, wxShapeRegion *region = NULL, double w = 0.0, double h = 0.0); - - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); -}; - -/* - * All shape event behaviour is routed through this handler, so we don't - * have to derive from each shape class. We plug this in to each shape. - */ - -class csEvtHandler: public wxShapeEvtHandler -{ - DECLARE_DYNAMIC_CLASS(csEvtHandler) - public: - csEvtHandler(wxShapeEvtHandler *prev = NULL, wxShape *shape = NULL, const wxString& lab = ""); - ~csEvtHandler(); - - void OnLeftClick(double x, double y, int keys = 0, int attachment = 0); - void OnRightClick(double x, double y, int keys = 0, int attachment = 0); - void OnBeginDragRight(double x, double y, int keys = 0, int attachment = 0); - void OnDragRight(bool draw, double x, double y, int keys = 0, int attachment = 0); - void OnEndDragRight(double x, double y, int keys = 0, int attachment = 0); - void OnEndSize(double x, double y); - void OnDragLeft(bool draw, double x, double y, int keys = 0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys = 0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys = 0, int attachment = 0); - void OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys = 0, int attachment = 0); - void OnChangeAttachment(int attachment, wxLineShape* line, wxList& ordering); - - void OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0); - - // Copy any event handler data - virtual void CopyData(wxShapeEvtHandler& copy); - - // Popup up a property dialog - virtual bool EditProperties(); - -public: - wxString m_label; -}; - -extern void studioShapeEditProc(wxMenu& menu, wxCommandEvent& event); - -#endif - // _STUDIO_SHAPES_H_ diff --git a/utils/ogl/samples/studio/studio.cpp b/utils/ogl/samples/studio/studio.cpp deleted file mode 100644 index 87556d57cc..0000000000 --- a/utils/ogl/samples/studio/studio.cpp +++ /dev/null @@ -1,506 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: Studio.cpp -// Purpose: Studio application class -// Author: Julian Smart -// Modified by: -// Created: 27/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// 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" -#include "wx/mdi.h" -#endif - -#include "wx/resource.h" -#include "wx/config.h" -#include "wx/laywin.h" - -#include "studio.h" -#include "view.h" -#include "doc.h" -#include "mainfrm.h" -#include "cspalette.h" -#include "project.h" -#include "symbols.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) -#include "bitmaps/new.xpm" -#include "bitmaps/open.xpm" -#include "bitmaps/save.xpm" -#include "bitmaps/copy.xpm" -#include "bitmaps/cut.xpm" -#include "bitmaps/paste.xpm" -#include "bitmaps/print.xpm" -#include "bitmaps/help.xpm" -#include "bitmaps/undo.xpm" -#include "bitmaps/redo.xpm" - -#include "bitmaps/alignl.xpm" -#include "bitmaps/alignr.xpm" -#include "bitmaps/alignt.xpm" -#include "bitmaps/alignb.xpm" -#include "bitmaps/horiz.xpm" -#include "bitmaps/vert.xpm" -#include "bitmaps/copysize.xpm" -#include "bitmaps/linearrow.xpm" -#include "bitmaps/newpoint.xpm" -#include "bitmaps/cutpoint.xpm" -#include "bitmaps/straight.xpm" - -#include "studio.xpm" -#endif - -IMPLEMENT_APP(csApp) - -csApp::csApp() -{ - m_docManager = NULL; - m_diagramPalette = NULL; - m_diagramToolBar = NULL; - m_projectTreeCtrl = NULL; - m_diagramPaletteSashWindow = NULL; - m_projectSashWindow = NULL; - m_symbolDatabase = NULL; - m_pointSizeComboBox = NULL; - m_zoomComboBox = NULL; - m_shapeEditMenu = NULL; - - // Configuration - m_mainFramePos.x = 20; - m_mainFramePos.y = 20; - m_mainFrameSize.x = 500; - m_mainFrameSize.y = 400; - m_gridStyle = csGRID_STYLE_INVISIBLE; - m_gridSpacing = 5; -} - -csApp::~csApp() -{ -} - -// Initialise this in OnInit, not statically -bool csApp::OnInit(void) -{ - if (!wxResourceParseFile("studio_resources.wxr")) - { - wxMessageBox("Could not find or parse resource file: studio_resources.wxr", "Studio"); - return FALSE; - } - - m_helpController.Initialize("studio.hlp"); - - ReadOptions(); - - wxOGLInitialize(); - - InitSymbols(); - - //// Create a document manager - m_docManager = new wxDocManager; - - //// Create a template relating drawing documents to their views - (void) new wxDocTemplate(m_docManager, "Diagram", "*.dia", "", "dia", "Diagram Doc", "Diagram View", - CLASSINFO(csDiagramDocument), CLASSINFO(csDiagramView)); - - // Create the main frame window - - csFrame* frame = new csFrame(m_docManager, NULL, -1, "OGL Studio", m_mainFramePos, m_mainFrameSize, - wxDEFAULT_FRAME_STYLE | wxHSCROLL | wxVSCROLL); - - // Give it an icon - frame->SetIcon(wxICON(studio)); - - // Make a menubar - wxMenu *fileMenu = new wxMenu; - - fileMenu->Append(wxID_NEW, "&New...\tCtrl+N"); - fileMenu->Append(wxID_OPEN, "&Open...\tCtrl+O"); - - fileMenu->AppendSeparator(); - - fileMenu->Append(wxID_PRINT, "&Print...\tCtrl+P"); - fileMenu->Append(wxID_PRINT_SETUP, "Print &Setup..."); - fileMenu->Append(wxID_PREVIEW, "Print Pre&view"); - fileMenu->AppendSeparator(); - fileMenu->Append(wxID_EXIT, "E&xit"); - - // A history of files visited. Use this menu. - m_docManager->FileHistoryUseMenu(fileMenu); - - wxMenu *viewMenu = new wxMenu; - viewMenu->Append(ID_CS_SETTINGS, "&Settings..."); - - wxMenu *helpMenu = new wxMenu; - helpMenu->Append(wxID_HELP, "&Help Contents\tF1"); - helpMenu->Append(ID_CS_ABOUT, "&About"); - - wxMenuBar *menuBar = new wxMenuBar; - - menuBar->Append(fileMenu, "&File"); - menuBar->Append(viewMenu, "&View"); - menuBar->Append(helpMenu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menuBar); - - // Load the file history - wxConfig config("OGL Studio", "wxWindows"); - m_docManager->FileHistoryLoad(config); - - frame->CreateStatusBar(); - - // The ordering of these is important for layout purposes - CreateDiagramToolBar(frame); - CreatePalette(frame); - CreateProjectWindow(frame); - - FillProjectTreeCtrl(); - - // Create the shape editing menu - m_shapeEditMenu = new wxMenu("", (wxFunction)studioShapeEditProc); - m_shapeEditMenu->Append(ID_CS_EDIT_PROPERTIES, "Edit properties"); - m_shapeEditMenu->AppendSeparator(); - m_shapeEditMenu->Append(ID_CS_ROTATE_CLOCKWISE, "Rotate clockwise"); - m_shapeEditMenu->Append(ID_CS_ROTATE_ANTICLOCKWISE, "Rotate anticlockwise"); - m_shapeEditMenu->AppendSeparator(); - m_shapeEditMenu->Append(ID_CS_CUT, "Cut"); - - frame->Show(TRUE); - - SetTopWindow(frame); - - return TRUE; -} - -int csApp::OnExit(void) -{ - WriteOptions(); - - delete m_symbolDatabase; - m_symbolDatabase = NULL; - - delete m_docManager; - m_docManager = NULL; - - delete m_shapeEditMenu; - m_shapeEditMenu = NULL; - - wxOGLCleanUp(); - - return 0; -} - -/* - * Centralised code for creating a document frame. - * Called from view.cpp, when a view is created. - */ - -wxMDIChildFrame *csApp::CreateChildFrame(wxDocument *doc, wxView *view, wxMenu** editMenuRet) -{ - //// Make a child frame - csMDIChildFrame *subframe = new csMDIChildFrame(doc, view, ((wxDocMDIParentFrame*)GetTopWindow()), -1, "Child Frame", - wxPoint(10, 10), wxSize(300, 300), wxDEFAULT_FRAME_STYLE); - -#ifdef __WXMSW__ - subframe->SetIcon(wxString("chart")); -#endif -#ifdef __X__ - subframe->SetIcon(wxIcon("doc.xbm")); -#endif - - //// Make a menubar - wxMenu *fileMenu = new wxMenu; - - fileMenu->Append(wxID_NEW, "&New...\tCtrl+N"); - fileMenu->Append(wxID_OPEN, "&Open...\tCtrl+O"); - fileMenu->Append(wxID_CLOSE, "&Close\tCtrl+W"); - fileMenu->Append(wxID_SAVE, "&Save\tCtrl+S"); - fileMenu->Append(wxID_SAVEAS, "Save &As...\tF12"); - - fileMenu->AppendSeparator(); - fileMenu->Append(wxID_PRINT, "&Print...\tCtrl+P"); - fileMenu->Append(wxID_PRINT_SETUP, "Print &Setup..."); - fileMenu->Append(wxID_PREVIEW, "Print Pre&view"); - - fileMenu->AppendSeparator(); - fileMenu->Append(wxID_EXIT, "E&xit"); - - wxMenu *editMenu = NULL; - - editMenu = new wxMenu; - editMenu->Append(wxID_UNDO, "&Undo\tCtrl+Z"); - editMenu->Append(wxID_REDO, "&Redo\tCtrl+Y"); - editMenu->AppendSeparator(); - editMenu->Append(wxID_CUT, "Cu&t\tCtrl+X"); - editMenu->Append(wxID_COPY, "&Copy\tCtrl+C"); - editMenu->Append(wxID_PASTE, "&Paste\tCtrl+V"); - editMenu->Append(wxID_DUPLICATE, "&Duplicate\tCtrl+D"); - editMenu->AppendSeparator(); - editMenu->Append(wxID_CLEAR, "Cle&ar\tDelete"); - editMenu->Append(ID_CS_SELECT_ALL, "Select A&ll\tCtrl+A"); - editMenu->AppendSeparator(); - editMenu->Append(ID_CS_EDIT_PROPERTIES, "Edit P&roperties..."); - - *editMenuRet = editMenu; - - m_docManager->FileHistoryUseMenu(fileMenu); - m_docManager->FileHistoryAddFilesToMenu(fileMenu); - - doc->GetCommandProcessor()->SetEditMenu(editMenu); - - wxMenu *viewMenu = new wxMenu; - viewMenu->Append(ID_CS_SETTINGS, "&Settings..."); - - wxMenu *helpMenu = new wxMenu; - helpMenu->Append(wxID_HELP, "&Help Contents\tF1"); - helpMenu->Append(ID_CS_ABOUT, "&About"); - - wxMenuBar *menuBar = new wxMenuBar; - - menuBar->Append(fileMenu, "&File"); - menuBar->Append(editMenu, "&Edit"); - menuBar->Append(viewMenu, "&View"); - menuBar->Append(helpMenu, "&Help"); - - //// Associate the menu bar with the frame - subframe->SetMenuBar(menuBar); - - return subframe; -} - -// Creates a canvas. Called by OnInit as a child of the main window -csCanvas *csApp::CreateCanvas(wxView *view, wxFrame *parent) -{ - int width, height; - parent->GetClientSize(&width, &height); - - // Non-retained canvas - csCanvas *canvas = new csCanvas((csDiagramView*) view, parent, 1000, wxPoint(0, 0), wxSize(width, height), 0); - - wxColour bgColour("WHITE"); - canvas->SetBackgroundColour(bgColour); - - wxCursor cursor(wxCURSOR_HAND); - canvas->SetCursor(cursor); - - // Give it scrollbars - canvas->SetScrollbars(20, 20, 100, 100); - - return canvas; -} - -void csApp::InitToolBar(wxToolBar* toolBar) -{ - wxBitmap* bitmaps[10]; - -#ifdef __WXMSW__ - bitmaps[0] = new wxBitmap("new", wxBITMAP_TYPE_RESOURCE); - bitmaps[1] = new wxBitmap("open", wxBITMAP_TYPE_RESOURCE); - bitmaps[2] = new wxBitmap("save", wxBITMAP_TYPE_RESOURCE); - bitmaps[3] = new wxBitmap("copy", wxBITMAP_TYPE_RESOURCE); - bitmaps[4] = new wxBitmap("cut", wxBITMAP_TYPE_RESOURCE); - bitmaps[5] = new wxBitmap("paste", wxBITMAP_TYPE_RESOURCE); - bitmaps[6] = new wxBitmap("print", wxBITMAP_TYPE_RESOURCE); - bitmaps[7] = new wxBitmap("help", wxBITMAP_TYPE_RESOURCE); - bitmaps[8] = new wxBitmap("undo", wxBITMAP_TYPE_RESOURCE); - bitmaps[9] = new wxBitmap("redo", wxBITMAP_TYPE_RESOURCE); -#elif defined(__WXGTK__) || defined(__WXMOTIF__) - bitmaps[0] = new wxBitmap( new_xpm ); - bitmaps[1] = new wxBitmap( open_xpm ); - bitmaps[2] = new wxBitmap( save_xpm ); - bitmaps[3] = new wxBitmap( copy_xpm ); - bitmaps[4] = new wxBitmap( cut_xpm ); - bitmaps[5] = new wxBitmap( paste_xpm ); - bitmaps[6] = new wxBitmap( print_xpm ); - bitmaps[7] = new wxBitmap( help_xpm ); - bitmaps[8] = new wxBitmap( undo_xpm ); - bitmaps[9] = new wxBitmap( redo_xpm ); -#else -#error "Not implemented for this platform." -#endif - - toolBar->AddTool(wxID_NEW, *bitmaps[0], wxNullBitmap, FALSE, -1, -1, NULL, "New file"); - toolBar->AddTool(wxID_OPEN, *bitmaps[1], wxNullBitmap, FALSE, -1, -1, NULL, "Open file"); - toolBar->AddTool(wxID_SAVE, *bitmaps[2], wxNullBitmap, FALSE, -1, -1, NULL, "Save file"); - toolBar->AddSeparator(); - toolBar->AddTool(wxID_PRINT, *bitmaps[6], wxNullBitmap, FALSE, -1, -1, NULL, "Print"); - toolBar->AddSeparator(); - toolBar->AddTool(wxID_COPY, *bitmaps[3], wxNullBitmap, FALSE, -1, -1, NULL, "Copy"); - toolBar->AddTool(wxID_CUT, *bitmaps[4], wxNullBitmap, FALSE, -1, -1, NULL, "Cut"); - toolBar->AddTool(wxID_PASTE, *bitmaps[5], wxNullBitmap, FALSE, -1, -1, NULL, "Paste"); - toolBar->AddSeparator(); - toolBar->AddTool(wxID_UNDO, *bitmaps[8], wxNullBitmap, FALSE, -1, -1, NULL, "Undo"); - toolBar->AddTool(wxID_REDO, *bitmaps[9], wxNullBitmap, FALSE, -1, -1, NULL, "Redo"); - toolBar->AddSeparator(); - toolBar->AddTool(wxID_HELP, *bitmaps[7], wxNullBitmap, FALSE, -1, -1, NULL, "Help"); - - toolBar->Realize(); - - toolBar->EnableTool(wxID_COPY, FALSE); - toolBar->EnableTool(wxID_PASTE, FALSE); - toolBar->EnableTool(wxID_PRINT, FALSE); - toolBar->EnableTool(wxID_UNDO, FALSE); - toolBar->EnableTool(wxID_REDO, FALSE); - - int i; - for (i = 0; i < 10; i++) - delete bitmaps[i]; -} - -// Create and initialise the diagram toolbar -void csApp::CreateDiagramToolBar(wxFrame* parent) -{ - // First create a layout window - wxSashLayoutWindow* win = new wxSashLayoutWindow(parent, ID_LAYOUT_WINDOW_DIAGRAM_TOOLBAR, wxDefaultPosition, wxSize(200, 30), wxNO_BORDER|wxSW_3D|wxCLIP_CHILDREN); - win->SetDefaultSize(wxSize(10000, 30)); - win->SetOrientation(wxLAYOUT_HORIZONTAL); - win->SetAlignment(wxLAYOUT_TOP); - win->SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE)); - - m_diagramToolBarSashWindow = win; - m_diagramToolBarSashWindow->Show(FALSE); - - // Create the actual toolbar - m_diagramToolBar = new wxToolBar(win, -1, wxDefaultPosition, wxDefaultSize, wxTB_HORIZONTAL|wxNO_BORDER|wxTB_FLAT); - - wxBitmap* bitmaps[11]; - -#ifdef __WXMSW__ - bitmaps[0] = new wxBitmap("alignl", wxBITMAP_TYPE_RESOURCE); - bitmaps[1] = new wxBitmap("alignr", wxBITMAP_TYPE_RESOURCE); - bitmaps[2] = new wxBitmap("alignt", wxBITMAP_TYPE_RESOURCE); - bitmaps[3] = new wxBitmap("alignb", wxBITMAP_TYPE_RESOURCE); - bitmaps[4] = new wxBitmap("horiz", wxBITMAP_TYPE_RESOURCE); - bitmaps[5] = new wxBitmap("vert", wxBITMAP_TYPE_RESOURCE); - bitmaps[6] = new wxBitmap("copysize", wxBITMAP_TYPE_RESOURCE); - bitmaps[7] = new wxBitmap("linearrow", wxBITMAP_TYPE_RESOURCE); - bitmaps[8] = new wxBitmap("newpoint", wxBITMAP_TYPE_RESOURCE); - bitmaps[9] = new wxBitmap("cutpoint", wxBITMAP_TYPE_RESOURCE); - bitmaps[10] = new wxBitmap("straighten", wxBITMAP_TYPE_RESOURCE); -#elif defined(__WXGTK__) || defined(__WXMOTIF__) - bitmaps[0] = new wxBitmap( alignl_xpm ); - bitmaps[1] = new wxBitmap( alignr_xpm ); - bitmaps[2] = new wxBitmap( alignt_xpm ); - bitmaps[3] = new wxBitmap( alignb_xpm ); - bitmaps[4] = new wxBitmap( horiz_xpm ); - bitmaps[5] = new wxBitmap( vert_xpm ); - bitmaps[6] = new wxBitmap( copysize_xpm ); - bitmaps[7] = new wxBitmap( linearrow_xpm ); - bitmaps[8] = new wxBitmap( newpoint_xpm ); - bitmaps[9] = new wxBitmap( cutpoint_xpm ); - bitmaps[10] = new wxBitmap( straight_xpm ); -#else -#error "Not implemented for this platform." -#endif - - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_ALIGNL, *bitmaps[0], wxNullBitmap, FALSE, -1, -1, NULL, "Align left"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_ALIGNR, *bitmaps[1], wxNullBitmap, FALSE, -1, -1, NULL, "Align right"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_ALIGNT, *bitmaps[2], wxNullBitmap, FALSE, -1, -1, NULL, "Align top"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_ALIGNB, *bitmaps[3], wxNullBitmap, FALSE, -1, -1, NULL, "Align bottom"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_ALIGN_HORIZ, *bitmaps[4], wxNullBitmap, FALSE, -1, -1, NULL, "Align horizontally"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_ALIGN_VERT, *bitmaps[5], wxNullBitmap, FALSE, -1, -1, NULL, "Align vertically"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_COPY_SIZE, *bitmaps[6], wxNullBitmap, FALSE, -1, -1, NULL, "Copy size"); - m_diagramToolBar->AddSeparator(); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_LINE_ARROW, *bitmaps[7], wxNullBitmap, TRUE, -1, -1, NULL, "Toggle arrow"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_NEW_POINT, *bitmaps[8], wxNullBitmap, FALSE, -1, -1, NULL, "New line point"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_CUT_POINT, *bitmaps[9], wxNullBitmap, FALSE, -1, -1, NULL, "Cut line point"); - m_diagramToolBar->AddTool(DIAGRAM_TOOLBAR_STRAIGHTEN, *bitmaps[10], wxNullBitmap, FALSE, -1, -1, NULL, "Straighten lines"); - - m_diagramToolBar->Realize(); - - int i; - for (i = 0; i < 11; i++) - delete bitmaps[i]; - - // Create a combobox for point size - int maxPointSize = 40; - wxString *pointSizes = new wxString[maxPointSize]; - for (i = 1; i <= maxPointSize; i++) - { - pointSizes[i-1].Printf("%d", i); - } - - int controlX = 260; - int pointSizeW = 40; - int pointSizeH = 18; - int zoomW = 60; - int zoomH = 18; -#ifdef __WXMOTIF__ - controlX += 70; - pointSizeW = 60; - pointSizeH = 22; - zoomW = 60; - zoomH = 22; -#endif - - m_pointSizeComboBox = new wxComboBox(m_diagramToolBar, ID_WINDOW_POINT_SIZE_COMBOBOX, - "", wxPoint(controlX, 1), wxSize(pointSizeW, pointSizeH), maxPointSize, pointSizes); - delete[] pointSizes; - - m_pointSizeComboBox->SetSelection(10 - 1); - - // Create a combobox for zooming - int maxZoom = 200; - int minZoom = 5; - int increment = 5; - int noStrings = (maxZoom - minZoom)/5 ; - wxString *zoomStrings = new wxString[noStrings]; - for (i = 0; i < noStrings; i ++) - { - zoomStrings[noStrings - i - 1].Printf("%d%%", (i*increment + minZoom)); - } - - controlX += pointSizeW + 10; - - m_zoomComboBox = new wxComboBox(m_diagramToolBar, ID_WINDOW_ZOOM_COMBOBOX, - "", wxPoint(controlX, 1), wxSize(zoomW, zoomH), noStrings, zoomStrings); - delete[] zoomStrings; - - // i = (zoom - minZoom)/increment - // index = noStrings - i - 1 - // 100% - i = (100 - minZoom)/increment; - m_zoomComboBox->SetSelection(noStrings - i - 1); -} - -// Read/write configuration information -bool csApp::ReadOptions() -{ - wxConfig config("OGL Studio", "wxWindows"); - - config.Read("mainX", & m_mainFramePos.x); - config.Read("mainY", & m_mainFramePos.y); - config.Read("mainWidth", & m_mainFrameSize.x); - config.Read("mainHeight", & m_mainFrameSize.y); - config.Read("gridStyle", & m_gridStyle); - config.Read("gridSpacing", & m_gridSpacing); - - return TRUE; -} - -bool csApp::WriteOptions() -{ - wxConfig config("OGL Studio", "wxWindows"); - - config.Write("mainX", m_mainFramePos.x); - config.Write("mainY", m_mainFramePos.y); - config.Write("mainWidth", m_mainFrameSize.x); - config.Write("mainHeight", m_mainFrameSize.y); - config.Write("gridStyle", (long) m_gridStyle); - config.Write("gridSpacing", (long) m_gridSpacing); - - m_docManager->FileHistorySave(config); - - return TRUE; -} - diff --git a/utils/ogl/samples/studio/studio.h b/utils/ogl/samples/studio/studio.h deleted file mode 100644 index 94ad81f5b4..0000000000 --- a/utils/ogl/samples/studio/studio.h +++ /dev/null @@ -1,171 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: Studio.h -// Purpose: Studio application class -// Author: Julian Smart -// Modified by: -// Created: 27/7/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_STUDIO_H_ -#define _STUDIO_STUDIO_H_ - -#include -#include - -#include -#include -#include "shapes.h" - -class csEditorToolPalette; -class csProjectTreeCtrl; -class csCanvas; -class csSymbolDatabase; -class wxSashLayoutWindow; -class csFrame; - -// Grid style -#define csGRID_STYLE_NONE 0 -#define csGRID_STYLE_INVISIBLE 1 -#define csGRID_STYLE_DOTTED 2 - -// Define a new application -class csApp: public wxApp -{ - friend csFrame; -public: - csApp(); - ~csApp(); - -// Operations - bool OnInit(void); - int OnExit(void); - - // Read/write configuration information - bool ReadOptions(); - bool WriteOptions(); - - // Create the diagram tool palette - bool CreatePalette(wxFrame *parent); - - // Create the project window - bool CreateProjectWindow(wxFrame *parent); - - // Initialise the general toolbar - void InitToolBar(wxToolBar* toolBar); - - // Create and initialise the diagram toolbar - void CreateDiagramToolBar(wxFrame* parent); - - wxMDIChildFrame *CreateChildFrame(wxDocument *doc, wxView *view, wxMenu** editMenu); - csCanvas *CreateCanvas(wxView *view, wxFrame *parent); - - // Fill out the project tree control - void FillProjectTreeCtrl(); - - // Add symbols to database - void InitSymbols(); - -// Accessors - csEditorToolPalette* GetDiagramPalette() const { return m_diagramPalette; } - wxToolBar* GetDiagramToolBar() const { return m_diagramToolBar; } - csProjectTreeCtrl* GetProjectTreeCtrl() const { return m_projectTreeCtrl; } - wxSashLayoutWindow* GetDiagramPaletteSashWindow() const { return m_diagramPaletteSashWindow; } - wxSashLayoutWindow* GetProjectSashWindow() const { return m_projectSashWindow; } - wxSashLayoutWindow* GetDiagramToolBarSashWindow() const { return m_diagramToolBarSashWindow; } - csSymbolDatabase* GetSymbolDatabase() const { return m_symbolDatabase; } - wxComboBox* GetPointSizeComboBox() const { return m_pointSizeComboBox; } - wxComboBox* GetZoomComboBox() const { return m_zoomComboBox; } - wxMenu* GetShapeEditMenu() const { return m_shapeEditMenu; } - wxDiagramClipboard& GetDiagramClipboard() const { return (wxDiagramClipboard&) m_diagramClipboard; } - wxDocManager* GetDocManager() const { return m_docManager; } - wxHelpController& GetHelpController() const { return (wxHelpController&) m_helpController; } - - int GetGridStyle() const { return m_gridStyle; } - void SetGridStyle(int style) { m_gridStyle = style; } - - int GetGridSpacing() const { return m_gridSpacing; } - void SetGridSpacing(int spacing) { m_gridSpacing = spacing; } - -protected: - wxDocManager* m_docManager; - wxSashLayoutWindow* m_diagramPaletteSashWindow; - wxSashLayoutWindow* m_diagramToolBarSashWindow; - wxSashLayoutWindow* m_projectSashWindow; - csEditorToolPalette* m_diagramPalette; - csProjectTreeCtrl* m_projectTreeCtrl; - csSymbolDatabase* m_symbolDatabase; - wxToolBar* m_diagramToolBar; - wxComboBox* m_pointSizeComboBox; - wxComboBox* m_zoomComboBox; - wxMenu* m_shapeEditMenu; - - // Configuration - wxPoint m_mainFramePos; - wxSize m_mainFrameSize; - int m_gridStyle; - int m_gridSpacing; - - // Diagram clipboard - csDiagramClipboard m_diagramClipboard; - - // Help instance - wxHelpController m_helpController; -}; - -DECLARE_APP(csApp) - -#define ID_CS_CUT wxID_CUT -#define ID_CS_ADD_SHAPE 2 -#define ID_CS_ADD_LINE 3 -// #define ID_CS_EDIT_LABEL 4 -#define ID_CS_EDIT_PROPERTIES 4 -#define ID_CS_CHANGE_BACKGROUND_COLOUR 5 -#define ID_CS_MOVE 6 -#define ID_CS_SIZE 7 -#define ID_CS_FONT_CHANGE 8 -#define ID_CS_ARROW_CHANGE 9 -#define ID_CS_ROTATE_CLOCKWISE 11 -#define ID_CS_ROTATE_ANTICLOCKWISE 12 -#define ID_CS_CHANGE_LINE_ORDERING 13 // Change the list of lines for a wxShape -#define ID_CS_CHANGE_LINE_ATTACHMENT 14 // Change the attachment point for one end of a line -#define ID_CS_ALIGN 15 -#define ID_CS_NEW_POINT 16 -#define ID_CS_CUT_POINT 17 -#define ID_CS_STRAIGHTEN 18 -#define ID_CS_MOVE_LINE_POINT 19 -#define ID_CS_MOVE_LABEL 20 -#define ID_CS_ADD_SHAPE_SELECT 21 -#define ID_CS_ADD_LINE_SELECT 22 - -#define ID_CS_ABOUT 100 -#define ID_CS_SELECT_ALL 102 -#define ID_CS_SETTINGS 103 - -#define ID_LAYOUT_WINDOW_PALETTE 200 -#define ID_LAYOUT_WINDOW_DIAGRAM_TOOLBAR 201 -#define ID_LAYOUT_WINDOW_PROJECT 202 - -#define ID_DIAGRAM_PALETTE 250 - -#define ID_WINDOW_PROJECT_TREE 300 -#define ID_WINDOW_POINT_SIZE_COMBOBOX 301 -#define ID_WINDOW_ZOOM_COMBOBOX 302 - -#define DIAGRAM_TOOLBAR_ALIGNL 500 -#define DIAGRAM_TOOLBAR_ALIGNR 501 -#define DIAGRAM_TOOLBAR_ALIGNB 502 -#define DIAGRAM_TOOLBAR_ALIGNT 503 -#define DIAGRAM_TOOLBAR_ALIGN_HORIZ 504 -#define DIAGRAM_TOOLBAR_ALIGN_VERT 505 -#define DIAGRAM_TOOLBAR_COPY_SIZE 506 -#define DIAGRAM_TOOLBAR_LINE_ARROW 507 -#define DIAGRAM_TOOLBAR_NEW_POINT 508 -#define DIAGRAM_TOOLBAR_CUT_POINT 509 -#define DIAGRAM_TOOLBAR_STRAIGHTEN 510 - -#endif - // _STUDIO_STUDIO_H_ - diff --git a/utils/ogl/samples/studio/studio.ico b/utils/ogl/samples/studio/studio.ico deleted file mode 100644 index 7cb092e04ca745bdd3cc3b856ef367d67440d9b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc&wu@S;B3{*H*6oiU8C1a$}U|EBX+EaKGN~)YT5dXsA62iezaJ((a@0VrSA`M2@ z?S;5*L=K2YSO@E2jU;#g+G`9Vm@*9a0FR}VQV=P4OmXK5hQTfJ?_p0zQX3l<1>H@1 za@*z{)srd{Ky${zR3l;HkX7L*=X1zNcyJHBb*uX7JQL>iSNHqWpVr4ld+12nCh*gU pUjfiy4R#{%p4~W(7sSd*u~B)__q_F`KC3s~$BX$d9}ww(bT>1!mTdq4 diff --git a/utils/ogl/samples/studio/studio.rc b/utils/ogl/samples/studio/studio.rc deleted file mode 100644 index 70a7a9c9e4..0000000000 --- a/utils/ogl/samples/studio/studio.rc +++ /dev/null @@ -1,41 +0,0 @@ -aaaa ICON "studio.ico" - -/* Useful if PROVIDE_DEFAULT_ICONS is set in wx_setup.h */ -#define IHaveMDIParentIcon -#define IHaveMDIChildIcon - -wxSTD_MDIPARENTFRAME ICON "studio.ico" -wxSTD_MDICHILDFRAME ICON "studio.ico" - -studio ICON "studio.ico" -folder1 ICON "bitmaps/folder1.ico" -file1 ICON "bitmaps/file1.ico" - -new BITMAP "bitmaps/new.bmp" -open BITMAP "bitmaps/open.bmp" -save BITMAP "bitmaps/save.bmp" -copy BITMAP "bitmaps/copy.bmp" -cut BITMAP "bitmaps/cut.bmp" -paste BITMAP "bitmaps/paste.bmp" -print BITMAP "bitmaps/print.bmp" -help BITMAP "bitmaps/help.bmp" -undo BITMAP "bitmaps/undo.bmp" -redo BITMAP "bitmaps/redo.bmp" - -arrowtool BITMAP "bitmaps/arrow.bmp" -texttool BITMAP "bitmaps/texttool.bmp" - -alignl BITMAP "bitmaps/alignl.bmp" -alignb BITMAP "bitmaps/alignb.bmp" -alignr BITMAP "bitmaps/alignr.bmp" -alignt BITMAP "bitmaps/alignt.bmp" -copysize BITMAP "bitmaps/copysize.bmp" -vert BITMAP "bitmaps/vert.bmp" -horiz BITMAP "bitmaps/horiz.bmp" -linearrow BITMAP "bitmaps/linearrow.bmp" -newpoint BITMAP "bitmaps/newpoint.bmp" -cutpoint BITMAP "bitmaps/cutpoint.bmp" -straighten BITMAP "bitmaps/straight.bmp" - -#include "wx/msw/wx.rc" - diff --git a/utils/ogl/samples/studio/studio.xpm b/utils/ogl/samples/studio/studio.xpm deleted file mode 100644 index cd5b1cbc14..0000000000 --- a/utils/ogl/samples/studio/studio.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *studio_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 6 1", -" c Black", -". c Blue", -"X c #00bf00", -"o c Red", -"O c Yellow", -"+ c Gray100", -/* pixels */ -" ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" " -}; diff --git a/utils/ogl/samples/studio/studio_resources.h b/utils/ogl/samples/studio/studio_resources.h deleted file mode 100644 index 92a49c0f36..0000000000 --- a/utils/ogl/samples/studio/studio_resources.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * studio_resources.h - * Window identifiers file written by Dialog Editor - */ - -#define ID_GRID_STYLE 6004 -#define ID_TEXTCTRL5115 5115 -#define ID_TEXTCTRL5107 5107 -#define ID_LABEL_DIALOG 6008 -#define ID_GRID_SPACING 6007 -#define IDD_LABEL_ENTRY 100 -#define ID_STATIC 300 -#define ID_DIALOG100 100 -#define ID_DIALOG6001 6001 -#define ID_STATIC6005 6005 -#define ID_STATIC6006 6006 -#define ID_STATIC5116 5116 -#define ID_STATIC6009 6009 -#define ID_LABELTEXT 101 -#define ID_CONTROL101 106 -#define ID_CONTROL102 107 -#define ID_CONTROL111 111 -#define ID_CONTROL120 120 -#define ID_CONTROL103 108 -#define ID_CONTROL121 5105 -#define ID_CONTROL130 5114 -#define ID_CONTROL104 109 -#define ID_CONTROL122 5106 -#define ID_CONTROL131 121 -#define ID_CONTROL105 110 -#define ID_CONTROL114 115 -#define ID_CONTROL123 5107 -#define ID_CONTROL132 122 -#define ID_CONTROL124 5108 -#define ID_CONTROL116 116 -#define ID_CONTROL125 5109 -#define ID_CONTROL117 117 -#define ID_CONTROL126 5110 -#define ID_CONTROL118 118 -#define ID_CONTROL127 5111 -#define ID_CONTROL119 119 -#define ID_CONTROL128 5112 -#define ID_CONTROL129 5113 -#define ID_GENERAL_SETTINGS_DIALOG 2000 diff --git a/utils/ogl/samples/studio/studio_resources.wxr b/utils/ogl/samples/studio/studio_resources.wxr deleted file mode 100644 index 51c9521bd5..0000000000 --- a/utils/ogl/samples/studio/studio_resources.wxr +++ /dev/null @@ -1,191 +0,0 @@ -static char *semi_circle = "dialog(name = 'semi_circle',\ - style = 'wxNO_BORDER',\ - title = 'SemiCircle',\ - id = 100,\ - x = 10, y = 40, width = 365, height = 405,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [106, wxStaticText, 'Segment Id', '0', 'statictext7', 14, 163, 64, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [107, wxTextCtrl, '', '0', 'textctrl8', 108, 162, 120, 19, ''],\ - control = [108, wxStaticText, 'Num Channels', '0', 'statictext9', 14, 208, 79, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [109, wxTextCtrl, '1', '0', 'textctrl10', 108, 206, 30, 19, '1'],\ - control = [110, wxStaticText, 'Attributes', '0', 'statictext11', 14, 245, 54, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [111, wxTextCtrl, '', '0', 'textctrl12', 108, 245, 120, 19, ''],\ - control = [5106, wxRadioBox, 'Scope', 'wxRA_SPECIFY_COLS', 'radiobox1', 12, 13, 236, 44, ['Process', 'Application', 'Project'], 3],\ - control = [5108, wxRadioBox, 'Resource', 'wxRA_SPECIFY_ROWS', 'radiobox3', 174, 68, 72, 82, ['Heap', 'Segment', 'Any'], 3],\ - control = [5109, wxRadioBox, 'Volatility', 'wxRA_SPECIFY_ROWS', 'radiobox4', 12, 69, 81, 63, ['Permanent', 'Temporary'], 2],\ - control = [5111, wxStaticText, 'Num Events', '0', 'statictext1', 154, 208, 68, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5112, wxTextCtrl, '1', '0', 'textctrl2', 230, 205, 40, 19, '1'])."; - -static char *general_shape_properties_dialog = "panel(name = 'general_shape_properties_dialog',\ - style = 'wxNO_BORDER',\ - title = 'General',\ - id = 100,\ - x = 10, y = 40, width = 400, height = 400,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [101, wxTextCtrl, '', '0', 'textctrl3', 8, 31, 203, 24, ''],\ - control = [300, wxStaticText, 'Name:', '0', 'message4', 8, 11, 41, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5115, wxTextCtrl, '', 'wxTE_MULTILINE', 'textctrl1', 8, 101, 204, 100, ''],\ - control = [5116, wxStaticText, 'Description:', '0', 'statictext2', 9, 79, 66, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']])."; - -static char *diagram_settings_dialog = "dialog(name = 'diagram_settings_dialog',\ - style = 'wxNO_BORDER',\ - title = 'Diagram settings',\ - id = 6001,\ - x = 10, y = 40, width = 400, height = 300,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [6004, wxChoice, '', '0', 'choice4', 13, 31, 85, 21, ['None', 'Invisible', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted', 'Dotted']],\ - control = [6005, wxStaticText, 'Grid style:', '0', 'statictext5', 13, 11, 56, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [6006, wxStaticText, 'Grid spacing:', '0', 'statictext6', 137, 11, 72, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [6007, wxTextCtrl, '', '0', 'textctrl7', 136, 31, 66, 21, ''])."; - -static char *general_settings_dialog = "dialog(name = 'general_settings_dialog',\ - style = 'wxNO_BORDER | wxCAPTION | wxSYSTEM_MENU',\ - title = '',\ - id = 2000,\ - x = 10, y = 40, width = 375, height = 325,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [300, wxStaticText, 'Project path:', '0', 'statictext3', 12, 15, 70, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5107, wxTextCtrl, '', '0', 'textctrl4', 12, 34, 183, 24, ''])."; - -static char *wide_rectangle = "dialog(name = 'wide_rectangle',\ - style = 'wxNO_BORDER',\ - title = 'Wide Rectangle',\ - id = 100,\ - x = 10, y = 40, width = 355, height = 405,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [106, wxStaticText, 'Segment Id', '0', 'statictext7', 13, 184, 64, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [107, wxTextCtrl, '', '0', 'textctrl8', 13, 184, 120, 19, ''],\ - control = [108, wxStaticText, 'Num Channels', '0', 'statictext9', 13, 184, 79, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [109, wxTextCtrl, '', '0', 'textctrl10', 13, 184, 30, 19, ''],\ - control = [110, wxStaticText, 'Attributes', '0', 'statictext11', 13, 184, 54, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [111, wxTextCtrl, '', '0', 'textctrl12', 13, 184, 120, 19, ''],\ - control = [5106, wxRadioBox, 'Scope', 'wxRA_SPECIFY_COLS', 'radiobox1', 13, 11, 313, 46, ['Process', 'Application', 'Project'], 3],\ - control = [5108, wxRadioBox, 'Resource', 'wxRA_SPECIFY_ROWS', 'radiobox3', 166, 70, 72, 82, ['Heap', 'Segment', 'Any'], 3],\ - control = [5109, wxRadioBox, 'Volatility', 'wxRA_SPECIFY_ROWS', 'radiobox4', 14, 73, 81, 63, ['Permanent', 'Temporary'], 2])."; - -static char *thin_rectangle = "dialog(name = 'thin_rectangle',\ - style = 'wxNO_BORDER',\ - title = 'Thin Rectangle',\ - id = 100,\ - x = 10, y = 40, width = 361, height = 405,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [106, wxStaticText, 'Segment Id', '0', 'statictext7', 12, 169, 64, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [107, wxTextCtrl, '', '0', 'textctrl8', 106, 168, 120, 19, ''],\ - control = [108, wxStaticText, 'Num Channels', '0', 'statictext9', 12, 204, 79, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [109, wxTextCtrl, '1', '0', 'textctrl10', 106, 202, 30, 19, '1'],\ - control = [110, wxStaticText, 'Attributes', '0', 'statictext11', 12, 267, 54, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [111, wxTextCtrl, '', '0', 'textctrl12', 106, 265, 120, 19, ''],\ - control = [5106, wxRadioBox, 'Scope', 'wxRA_SPECIFY_COLS', 'radiobox1', 13, 16, 236, 44, ['Process', 'Application', 'Project'], 3],\ - control = [5108, wxRadioBox, 'Resource', 'wxRA_SPECIFY_ROWS', 'radiobox3', 176, 73, 72, 82, ['Heap', 'Segment', 'Any'], 3],\ - control = [5109, wxRadioBox, 'Volatility', 'wxRA_SPECIFY_ROWS', 'radiobox4', 14, 73, 81, 63, ['Permanent', 'Temporary'], 2],\ - control = [5111, wxStaticText, 'Num Events', '0', 'statictext1', 156, 205, 68, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5112, wxTextCtrl, '1', '0', 'textctrl2', 228, 202, 40, 19, '1'],\ - control = [5113, wxStaticText, 'Num Fields', '0', 'statictext3', 12, 234, 62, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5114, wxTextCtrl, '1', '0', 'textctrl4', 106, 234, 40, 19, '1'])."; - -static char *circle = "dialog(name = 'circle',\ - style = 'wxNO_BORDER',\ - title = 'Circle',\ - id = 100,\ - x = 10, y = 40, width = 361, height = 405,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [106, wxStaticText, 'Segment Id', '0', 'statictext7', 12, 169, 64, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [107, wxTextCtrl, '', '0', 'textctrl8', 106, 168, 120, 19, ''],\ - control = [108, wxStaticText, 'Num Channels', '0', 'statictext9', 12, 204, 79, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [109, wxTextCtrl, '1', '0', 'textctrl10', 106, 202, 30, 19, '1'],\ - control = [110, wxStaticText, 'Attributes', '0', 'statictext11', 12, 267, 54, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [111, wxTextCtrl, '', '0', 'textctrl12', 106, 265, 120, 19, ''],\ - control = [5106, wxRadioBox, 'Scope', 'wxRA_SPECIFY_COLS', 'radiobox1', 13, 16, 236, 44, ['Process', 'Application', 'Project'], 3],\ - control = [5108, wxRadioBox, 'Resource', 'wxRA_SPECIFY_ROWS', 'radiobox3', 176, 73, 72, 82, ['Heap', 'Segment', 'Any'], 3],\ - control = [5109, wxRadioBox, 'Volatility', 'wxRA_SPECIFY_ROWS', 'radiobox4', 14, 73, 81, 63, ['Permanent', 'Temporary'], 2],\ - control = [5111, wxStaticText, 'Num Events', '0', 'statictext1', 156, 205, 68, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5112, wxTextCtrl, '1', '0', 'textctrl2', 228, 202, 40, 19, '1'],\ - control = [5113, wxStaticText, 'Num Fields', '0', 'statictext3', 12, 234, 62, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5114, wxTextCtrl, '1', '0', 'textctrl4', 106, 234, 40, 19, '1'])."; - -static char *triangle = "dialog(name = 'triangle',\ - style = 'wxNO_BORDER',\ - title = 'Triangle',\ - id = 100,\ - x = 10, y = 40, width = 362, height = 405,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 0,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [106, wxStaticText, 'Segment Id', '0', 'statictext7', 16, 170, 64, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [107, wxTextCtrl, '', '0', 'textctrl8', 110, 169, 120, 19, ''],\ - control = [108, wxStaticText, 'Num Channels', '0', 'statictext9', 16, 213, 79, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [109, wxTextCtrl, '1', '0', 'textctrl10', 110, 213, 30, 19, '1'],\ - control = [110, wxStaticText, 'Attributes', '0', 'statictext11', 16, 252, 54, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [111, wxTextCtrl, '', '0', 'textctrl12', 110, 252, 120, 19, ''],\ - control = [5106, wxRadioBox, 'Scope', 'wxRA_SPECIFY_COLS', 'radiobox1', 14, 16, 236, 44, ['Process', 'Application', 'Project'], 3],\ - control = [5108, wxRadioBox, 'Resource', 'wxRA_SPECIFY_ROWS', 'radiobox3', 178, 75, 72, 82, ['Heap', 'Segment', 'Any'], 3],\ - control = [5109, wxRadioBox, 'Volatility', 'wxRA_SPECIFY_ROWS', 'radiobox4', 15, 75, 81, 63, ['Permanent', 'Temporary'], 2],\ - control = [5111, wxStaticText, 'Num Events', '0', 'statictext1', 156, 215, 68, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5112, wxTextCtrl, '1', '0', 'textctrl2', 227, 213, 40, 19, '1'])."; - -static char *shape_label_dialog = "dialog(name = 'shape_label_dialog',\ - style = 'wxRAISED_BORDER | wxCAPTION | wxTHICK_FRAME | wxSYSTEM_MENU',\ - title = 'Edit Shape Label',\ - id = 6008,\ - x = 10, y = 10, width = 190, height = 60,\ - background_colour = 'C0C0C0',\ - use_dialog_units = 1,\ - use_system_defaults = 0,\ - font = [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif'],\ - control = [6009, wxStaticText, 'Please enter a label for this shape.', '0', 'statictext2', 8, 6, 100, 6, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [101, wxTextCtrl, '', '0', 'textctrl4', 8, 18, 168, 11, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5100, wxButton, 'OK', '0', 'button5', 100, 37, 36, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']],\ - control = [5101, wxButton, 'Cancel', '0', 'button6', 140, 37, 36, 13, '',\ - [8, 'wxSWISS', 'wxNORMAL', 'wxNORMAL', 0, 'MS Sans Serif']])."; - diff --git a/utils/ogl/samples/studio/symbols.cpp b/utils/ogl/samples/studio/symbols.cpp deleted file mode 100644 index 52ee3a0a59..0000000000 --- a/utils/ogl/samples/studio/symbols.cpp +++ /dev/null @@ -1,203 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: symbols.cpp -// Purpose: Implements the Studio symbol database -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "studio.h" -#include "doc.h" -#include "shapes.h" -#include "view.h" -#include "symbols.h" - -/* - * csSymbol - * Represents information about a symbol. - */ - -csSymbol::csSymbol(const wxString& name, wxShape* shape) -{ - m_name = name; - m_shape = shape; - m_toolId = 0; -} - -csSymbol::~csSymbol() -{ - delete m_shape; -} - -/* - * A table of all possible shapes. - * We can use this to construct a palette, etc. - */ -csSymbolDatabase::csSymbolDatabase() -{ - m_currentId = 800; -} - -csSymbolDatabase::~csSymbolDatabase() -{ - ClearSymbols(); -} - -void csSymbolDatabase::AddSymbol(csSymbol* symbol) -{ - symbol->SetToolId(m_currentId); - m_symbols.Append(symbol); - - m_currentId ++; -} - -void csSymbolDatabase::ClearSymbols() -{ - wxNode* node = m_symbols.First(); - while (node) - { - csSymbol* symbol = (csSymbol*) node->Data(); - delete symbol; - - node = node->Next(); - } - m_symbols.Clear(); -} - -csSymbol* csSymbolDatabase::FindSymbol(const wxString& name) const -{ - wxNode* node = m_symbols.First(); - while (node) - { - csSymbol* symbol = (csSymbol*) node->Data(); - if (symbol->GetName() == name) - return symbol; - - node = node->Next(); - } - return NULL; -} - -csSymbol* csSymbolDatabase::FindSymbol(int toolId) const -{ - wxNode* node = m_symbols.First(); - while (node) - { - csSymbol* symbol = (csSymbol*) node->Data(); - if (symbol->GetToolId() == toolId) - return symbol; - - node = node->Next(); - } - return NULL; -} - -// Add symbols to database -void csApp::InitSymbols() -{ - m_symbolDatabase = new csSymbolDatabase; - - wxShape* shape = new csCircleShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Circle", shape)); - - shape = new csCircleShadowShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Circle shadow", shape)); - - shape = new csThinRectangleShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Thin Rectangle", shape)); - - shape = new csWideRectangleShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Wide Rectangle", shape)); - - shape = new csSemiCircleShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("SemiCircle", shape)); - - shape = new csTriangleShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Triangle", shape)); - - shape = new csOctagonShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Octagon", shape)); - - shape = new csGroupShape(); - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, wxString(""))); - - m_symbolDatabase->AddSymbol(new csSymbol("Group", shape)); -} - -wxBitmap* csSymbolDatabase::CreateToolBitmap(csSymbol* symbol) -{ - int objectBitmapSize = 32; - - symbol->GetShape()->Recompute(); - - wxBitmap *newBitmap = new wxBitmap(objectBitmapSize, objectBitmapSize); - - wxMemoryDC memDC; - - double height, width, maxSize; - symbol->GetShape()->GetBoundingBoxMax(&width, &height); - - if (height > width) - maxSize = height; - else - maxSize = width; - - double borderMargin = 4.0; - double scaleFactor = (double)(objectBitmapSize / (maxSize + 2*borderMargin)); - double centreX = (double)((objectBitmapSize/scaleFactor)/2.0)-1; - double centreY = centreX; - - memDC.SetUserScale(scaleFactor, scaleFactor); - - memDC.SelectObject(*newBitmap); - memDC.SetBackground(wxBrush(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE), wxSOLID)); - memDC.Clear(); - symbol->GetShape()->Show(TRUE); - symbol->GetShape()->Move(memDC, centreX, centreY); - memDC.SelectObject(wxNullBitmap); - - return newBitmap; -} - diff --git a/utils/ogl/samples/studio/symbols.h b/utils/ogl/samples/studio/symbols.h deleted file mode 100644 index 54918f9a01..0000000000 --- a/utils/ogl/samples/studio/symbols.h +++ /dev/null @@ -1,76 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: symbols.h -// Purpose: Symbol classes (symbol database) -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_SYMBOLS_H_ -#define _STUDIO_SYMBOLS_H_ - -#ifdef __GNUG__ -// #pragma interface -#endif - -#include -#include -#include - -#include "ogl.h" - -/* - * csSymbol - * Represents information about a symbol. - */ - -class csSymbol: public wxObject -{ -public: - csSymbol(const wxString& name, wxShape* shape); - ~csSymbol(); - - inline void SetName(const wxString& name) { m_name = name; } - inline wxString GetName() const { return m_name; } - - inline void SetShape(wxShape* shape) { m_shape = shape; } - inline wxShape* GetShape() const { return m_shape; } - - inline void SetToolId(int id) { m_toolId = id; } - inline int GetToolId() const { return m_toolId; } -protected: - wxString m_name; - wxShape* m_shape; - int m_toolId; -}; - -/* - * A table of all possible shapes. - * We can use this to construct a palette, etc. - */ -class csSymbolDatabase: public wxObject -{ -public: - csSymbolDatabase(); - ~csSymbolDatabase(); - -// Accessors - inline wxList& GetSymbols() const { return (wxList&) m_symbols; } - -// Operations - void AddSymbol(csSymbol* symbol); - void ClearSymbols(); - csSymbol* FindSymbol(const wxString& name) const; - csSymbol* FindSymbol(int toolId) const; - wxBitmap* CreateToolBitmap(csSymbol* symbol); - -protected: - wxList m_symbols; - int m_currentId; -}; - -#endif - // _STUDIO_SYMBOLS_H_ diff --git a/utils/ogl/samples/studio/view.cpp b/utils/ogl/samples/studio/view.cpp deleted file mode 100644 index d9a3d132ab..0000000000 --- a/utils/ogl/samples/studio/view.cpp +++ /dev/null @@ -1,1039 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.cpp -// Purpose: Implements view functionality -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -// #pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if !wxUSE_DOC_VIEW_ARCHITECTURE -#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in wx_setup.h! -#endif - -#include "studio.h" -#include "doc.h" -#include "view.h" -#include "cspalette.h" -#include "symbols.h" -#include "dialogs.h" -#include "basicp.h" -#include "linesp.h" - -IMPLEMENT_DYNAMIC_CLASS(csDiagramView, wxView) - -BEGIN_EVENT_TABLE(csDiagramView, wxView) - EVT_MENU(wxID_CUT, csDiagramView::OnCut) - EVT_MENU(wxID_COPY, csDiagramView::OnCopy) - EVT_MENU(wxID_CLEAR, csDiagramView::OnClear) - EVT_MENU(wxID_PASTE, csDiagramView::OnPaste) - EVT_MENU(wxID_DUPLICATE, csDiagramView::OnDuplicate) - EVT_MENU(ID_CS_CHANGE_BACKGROUND_COLOUR, csDiagramView::OnChangeBackgroundColour) - EVT_MENU(ID_CS_EDIT_PROPERTIES, csDiagramView::OnEditProperties) - EVT_MENU(ID_CS_SELECT_ALL, csDiagramView::OnSelectAll) - EVT_TOOL(DIAGRAM_TOOLBAR_LINE_ARROW, csDiagramView::OnToggleArrowTool) - EVT_COMBOBOX(ID_WINDOW_POINT_SIZE_COMBOBOX, csDiagramView::OnPointSizeComboSel) - EVT_COMBOBOX(ID_WINDOW_ZOOM_COMBOBOX, csDiagramView::OnZoomSel) - EVT_TEXT(ID_WINDOW_POINT_SIZE_COMBOBOX, csDiagramView::OnPointSizeComboText) - EVT_TOOL(DIAGRAM_TOOLBAR_ALIGNL, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_ALIGNR, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_ALIGNB, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_ALIGNT, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_ALIGN_HORIZ, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_ALIGN_VERT, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_COPY_SIZE, csDiagramView::OnAlign) - EVT_TOOL(DIAGRAM_TOOLBAR_NEW_POINT, csDiagramView::OnNewLinePoint) - EVT_TOOL(DIAGRAM_TOOLBAR_CUT_POINT, csDiagramView::OnCutLinePoint) - EVT_TOOL(DIAGRAM_TOOLBAR_STRAIGHTEN, csDiagramView::OnStraightenLines) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_ALIGNL, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_ALIGNR, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_ALIGNB, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_ALIGNT, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_ALIGN_HORIZ, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_ALIGN_VERT, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_COPY_SIZE, csDiagramView::OnAlignUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_NEW_POINT, csDiagramView::OnNewLinePointUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_CUT_POINT, csDiagramView::OnCutLinePointUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_STRAIGHTEN, csDiagramView::OnStraightenLinesUpdate) - EVT_UPDATE_UI(DIAGRAM_TOOLBAR_LINE_ARROW, csDiagramView::OnToggleArrowToolUpdate) - EVT_UPDATE_UI(wxID_CUT, csDiagramView::OnCutUpdate) - EVT_UPDATE_UI(wxID_COPY, csDiagramView::OnCopyUpdate) - EVT_UPDATE_UI(wxID_CLEAR, csDiagramView::OnClearUpdate) - EVT_UPDATE_UI(wxID_PASTE, csDiagramView::OnPasteUpdate) - EVT_UPDATE_UI(wxID_DUPLICATE, csDiagramView::OnDuplicateUpdate) - EVT_UPDATE_UI(ID_CS_EDIT_PROPERTIES, csDiagramView::OnEditPropertiesUpdate) - EVT_UPDATE_UI(wxID_UNDO, csDiagramView::OnUndoUpdate) - EVT_UPDATE_UI(wxID_REDO, csDiagramView::OnRedoUpdate) -END_EVENT_TABLE() - -// What to do when a view is created. Creates actual -// windows for displaying the view. -bool csDiagramView::OnCreate(wxDocument *doc, long flags) -{ - wxMenu* editMenu; - frame = wxGetApp().CreateChildFrame(doc, this, &editMenu); - canvas = wxGetApp().CreateCanvas(this, frame); - canvas->SetView(this); - - SetFrame(frame); - Activate(TRUE); - - // Initialize the edit menu Undo and Redo items - doc->GetCommandProcessor()->SetEditMenu(editMenu); - doc->GetCommandProcessor()->Initialize(); - - wxShapeCanvas *shapeCanvas = (wxShapeCanvas *)canvas; - csDiagramDocument *diagramDoc = (csDiagramDocument *)doc; - shapeCanvas->SetDiagram(diagramDoc->GetDiagram()); - diagramDoc->GetDiagram()->SetCanvas(shapeCanvas); - - diagramDoc->GetDiagram()->SetGridSpacing((double) wxGetApp().GetGridSpacing()); - - switch (wxGetApp().GetGridStyle()) - { - case csGRID_STYLE_NONE: - { - diagramDoc->GetDiagram()->SetSnapToGrid(FALSE); - break; - } - case csGRID_STYLE_INVISIBLE: - { - diagramDoc->GetDiagram()->SetSnapToGrid(TRUE); - break; - } - case csGRID_STYLE_DOTTED: - { - // TODO (not implemented in OGL) - break; - } - } - - - return TRUE; -} - -csDiagramView::~csDiagramView(void) -{ - if (frame) - { - ((wxDocMDIChildFrame*)frame)->SetView(NULL); - } -} - -// Sneakily gets used for default print/preview -// as well as drawing on the screen. -void csDiagramView::OnDraw(wxDC *dc) -{ -} - -void csDiagramView::OnUpdate(wxView *sender, wxObject *hint) -{ - if (canvas) - canvas->Refresh(); -} - -// Clean up windows used for displaying the view. -bool csDiagramView::OnClose(bool deleteWindow) -{ - if (!GetDocument()->Close()) - return FALSE; - - csDiagramDocument *diagramDoc = (csDiagramDocument *)GetDocument(); - diagramDoc->GetDiagram()->SetCanvas(NULL); - - canvas->Clear(); - canvas->SetDiagram(NULL); - canvas->SetView(NULL); - canvas = NULL; - - wxMenu* fileMenu = frame->GetMenuBar()->GetMenu(0); - - // Remove file menu from those managed by the command history - wxGetApp().GetDocManager()->FileHistoryRemoveMenu(fileMenu); - - Activate(FALSE); - frame->Show(FALSE); - - if (deleteWindow) - { - frame->Destroy(); - } - - return TRUE; -} - -// Adds or removes shape from m_selections -void csDiagramView::SelectShape(wxShape* shape, bool select) -{ - if (select && !m_selections.Member(shape)) - m_selections.Append(shape); - else if (!select) - m_selections.DeleteObject(shape); -} - -void csDiagramView::OnSelectAll(wxCommandEvent& event) -{ - SelectAll(TRUE); -} - -wxShape *csDiagramView::FindFirstSelectedShape(void) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - wxShape *theShape = NULL; - wxNode *node = doc->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape *eachShape = (wxShape *)node->Data(); - if ((eachShape->GetParent() == NULL) && !eachShape->IsKindOf(CLASSINFO(wxLabelShape)) && eachShape->Selected()) - { - theShape = eachShape; - node = NULL; - } - else node = node->Next(); - } - return theShape; -} - -void csDiagramView::FindSelectedShapes(wxList& selections, wxClassInfo* toFind) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - wxNode *node = doc->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape *eachShape = (wxShape *)node->Data(); - if ((eachShape->GetParent() == NULL) && !eachShape->IsKindOf(CLASSINFO(wxLabelShape)) && eachShape->Selected() && ((toFind == NULL) || (eachShape->IsKindOf(toFind)))) - { - selections.Append(eachShape); - } - node = node->Next(); - } -} - -void csDiagramView::OnUndoUpdate(wxUpdateUIEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - event.Enable(doc->GetCommandProcessor()->CanUndo()); -} - -void csDiagramView::OnRedoUpdate(wxUpdateUIEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - event.Enable(doc->GetCommandProcessor()->CanRedo()); -} - -void csDiagramView::OnCut(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - // Copy the shapes to the clipboard - wxGetApp().GetDiagramClipboard().Copy(doc->GetDiagram()); - - wxList selections; - FindSelectedShapes(selections); - - DoCut(selections); -} - -void csDiagramView::OnClear(wxCommandEvent& event) -{ - wxList selections; - FindSelectedShapes(selections); - - DoCut(selections); -} - -void csDiagramView::OnCopy(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - // Copy the shapes to the clipboard - if (wxGetApp().GetDiagramClipboard().Copy(doc->GetDiagram())) - { -#ifdef __WXMSW__ - // Copy to the Windows clipboard - wxGetApp().GetDiagramClipboard().CopyToClipboard(1.0); -#endif - } -} - -void csDiagramView::OnPaste(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - wxGetApp().GetDiagramClipboard().Paste(doc->GetDiagram()); -} - -void csDiagramView::OnDuplicate(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - // Do a copy, then a paste - wxGetApp().GetDiagramClipboard().Copy(doc->GetDiagram()); - - // Apply an offset. Really, this offset should keep being incremented, - // but where do we reset it again? - wxGetApp().GetDiagramClipboard().Paste(doc->GetDiagram(), NULL, 20, 20); -} - -void csDiagramView::OnCutUpdate(wxUpdateUIEvent& event) -{ - event.Enable( (m_selections.Number() > 0) ); -} - -void csDiagramView::OnClearUpdate(wxUpdateUIEvent& event) -{ - event.Enable( (m_selections.Number() > 0) ); -} - -void csDiagramView::OnCopyUpdate(wxUpdateUIEvent& event) -{ - event.Enable( (m_selections.Number() > 0) ); -} - -void csDiagramView::OnPasteUpdate(wxUpdateUIEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - int n = wxGetApp().GetDiagramClipboard().GetCount(); - - event.Enable( (n > 0) ); -} - -void csDiagramView::OnDuplicateUpdate(wxUpdateUIEvent& event) -{ - event.Enable( (m_selections.Number() > 0) ); -} - -void csDiagramView::DoCut(wxList& shapes) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - if (shapes.Number() > 0) - { - csDiagramCommand* cmd = new csDiagramCommand("Cut", doc); - - wxNode* node = shapes.First(); - while (node) - { - wxShape *theShape = (wxShape*) node->Data(); - csCommandState* state = new csCommandState(ID_CS_CUT, NULL, theShape); - - // Insert lines at the front, so they are cut first. - // Otherwise we may try to remove a shape with a line still - // attached. - if (theShape->IsKindOf(CLASSINFO(wxLineShape))) - cmd->InsertState(state); - else - cmd->AddState(state); - - node = node->Next(); - } - cmd->RemoveLines(); // Schedule any connected lines, not already mentioned, - // to be removed first - - doc->GetCommandProcessor()->Submit(cmd); - } -} - -// Generalised command -void csDiagramView::DoCmd(wxList& shapes, wxList& oldShapes, int cmd, const wxString& op) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - if (shapes.Number() > 0) - { - csDiagramCommand* command = new csDiagramCommand(op, doc); - - wxNode* node = shapes.First(); - wxNode* node1 = oldShapes.First(); - while (node && node1) - { - wxShape *theShape = (wxShape*) node->Data(); - wxShape *oldShape = (wxShape*) node1->Data(); - csCommandState* state = new csCommandState(cmd, theShape, oldShape); - command->AddState(state); - - node = node->Next(); - node1 = node1->Next(); - } - doc->GetCommandProcessor()->Submit(command); - } -} - -void csDiagramView::OnChangeBackgroundColour(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - wxList selections; - FindSelectedShapes(selections); - - if (selections.Number() > 0) - { - wxColourData data; - data.SetChooseFull(TRUE); - if (selections.Number() == 1) - { - wxShape* firstShape = (wxShape*) selections.First()->Data(); - data.SetColour(firstShape->GetBrush()->GetColour()); - } - - wxColourDialog *dialog = new wxColourDialog(frame, &data); - wxBrush *theBrush = NULL; - if (dialog->ShowModal() == wxID_OK) - { - wxColourData retData = dialog->GetColourData(); - wxColour col = retData.GetColour(); - theBrush = wxTheBrushList->FindOrCreateBrush(col, wxSOLID); - } - dialog->Close(TRUE); - if (!theBrush) - return; - - csDiagramCommand* cmd = new csDiagramCommand("Change colour", doc); - - wxNode* node = selections.First(); - while (node) - { - wxShape *theShape = (wxShape*) node->Data(); - wxShape* newShape = theShape->CreateNewCopy(); - newShape->SetBrush(theBrush); - - csCommandState* state = new csCommandState(ID_CS_CHANGE_BACKGROUND_COLOUR, newShape, theShape); - cmd->AddState(state); - - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); - } -} - -void csDiagramView::OnEditProperties(wxCommandEvent& event) -{ - wxShape *theShape = FindFirstSelectedShape(); - if (theShape) - ((csEvtHandler *)theShape->GetEventHandler())->EditProperties(); -} - -void csDiagramView::OnEditPropertiesUpdate(wxUpdateUIEvent& event) -{ - wxList selections; - FindSelectedShapes(selections); - event.Enable( (selections.Number() > 0) ); -} - -void csDiagramView::OnPointSizeComboSel(wxCommandEvent& event) -{ - wxComboBox* combo = (wxComboBox*) event.GetEventObject(); - wxASSERT( combo != NULL ); - - int newPointSize = (combo->GetSelection() + 1); - - ApplyPointSize(newPointSize); - -} - -// TODO: must find out how to intercept the Return key, rather than -// every key stroke. But for now, do every key stroke. -void csDiagramView::OnPointSizeComboText(wxCommandEvent& event) -{ - wxComboBox* combo = (wxComboBox*) event.GetEventObject(); - wxASSERT( combo != NULL ); - - wxString str(combo->GetValue()); - int newPointSize = atoi((const char*) str); - - if (newPointSize < 2) - return; - - ApplyPointSize(newPointSize); -} - -void csDiagramView::ApplyPointSize(int pointSize) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - wxList selections; - FindSelectedShapes(selections); - - if (selections.Number() > 0) - { - csDiagramCommand* cmd = new csDiagramCommand("Point size", doc); - - wxNode* node = selections.First(); - while (node) - { - wxShape *theShape = (wxShape*) node->Data(); - wxShape *newShape = theShape->CreateNewCopy(); - - wxFont* newFont = wxTheFontList->FindOrCreateFont(pointSize, - theShape->GetFont()->GetFamily(), - theShape->GetFont()->GetStyle(), - theShape->GetFont()->GetWeight(), - theShape->GetFont()->GetUnderlined(), - theShape->GetFont()->GetFaceName()); - - newShape->SetFont(newFont); - - csCommandState* state = new csCommandState(ID_CS_FONT_CHANGE, newShape, theShape); - - cmd->AddState(state); - - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); - } -} - -void csDiagramView::OnZoomSel(wxCommandEvent& event) -{ - int maxZoom = 200; - int minZoom = 5; - int inc = 5; - int noStrings = (maxZoom - minZoom)/inc ; - - wxComboBox* combo = (wxComboBox*) event.GetEventObject(); - wxASSERT( combo != NULL ); - - int scale = (int) ((noStrings - combo->GetSelection() - 1)*inc + minZoom); - - canvas->SetScale((double) (scale/100.0), (double) (scale/100.0)); - canvas->Refresh(); -} - -// Select or deselect all -void csDiagramView::SelectAll(bool select) -{ - wxClientDC dc(canvas); - canvas->PrepareDC(dc); - - if (!select) - { - wxList selections; - FindSelectedShapes(selections); - - wxNode* node = selections.First(); - while (node) - { - wxShape *theShape = (wxShape*) node->Data(); - theShape->Select(FALSE, &dc); - SelectShape(theShape, FALSE); - - node = node->Next(); - } - } - else - { - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - wxNode *node = doc->GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape *eachShape = (wxShape *)node->Data(); - if (eachShape->GetParent() == NULL && - !eachShape->IsKindOf(CLASSINFO(wxControlPoint)) && - !eachShape->IsKindOf(CLASSINFO(wxLabelShape))) - { - eachShape->Select(TRUE, &dc); - SelectShape(eachShape, TRUE); - } - node = node->Next(); - } - } -} - - -void csDiagramView::OnToggleArrowTool(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - - bool state = wxGetApp().GetDiagramToolBar()->GetToolState(DIAGRAM_TOOLBAR_LINE_ARROW); - wxString stateName; - if (state) - stateName = "Arrow on"; - else - stateName = "Arrow off"; - - wxList selections; - FindSelectedShapes(selections, CLASSINFO(wxLineShape)); - - if (selections.Number() > 0) - { - csDiagramCommand* cmd = new csDiagramCommand(stateName, doc); - - wxNode* node = selections.First(); - while (node) - { - wxLineShape *theShape = (wxLineShape*) node->Data(); - wxLineShape *newShape = NULL; - - if (state) - { - // Add arrow - if (theShape->GetArrows().Number() == 0) - { - newShape = (wxLineShape*) theShape->CreateNewCopy(); - newShape->AddArrow(ARROW_ARROW, ARROW_POSITION_MIDDLE, 10.0, 0.0, "Normal arrowhead"); - } - } - else - { - if (theShape->GetArrows().Number() > 0) - { - newShape = (wxLineShape*) theShape->CreateNewCopy(); - newShape->ClearArrowsAtPosition(); - } - } - - // If the new state is the same as the old, don't bother adding it to the command state. - if (newShape) - { - csCommandState* state = new csCommandState(ID_CS_ARROW_CHANGE, newShape, theShape); - cmd->AddState(state); - } - - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); - } -} - -void csDiagramView::OnToggleArrowToolUpdate(wxUpdateUIEvent& event) -{ - wxList selections; - FindSelectedShapes(selections, CLASSINFO(wxLineShape)); - event.Enable( (selections.Number() > 0) ); -} - -// Make the point size combobox reflect this -void csDiagramView::ReflectPointSize(int pointSize) -{ - wxComboBox* comboBox = wxGetApp().GetPointSizeComboBox(); - comboBox->SetSelection(pointSize -1); -} - -// Make the arrow toggle button reflect the state of the line -void csDiagramView::ReflectArrowState(wxLineShape* lineShape) -{ - bool haveArrow = FALSE; - wxNode *node = lineShape->GetArrows().First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - if (ARROW_POSITION_MIDDLE == arrow->GetArrowEnd()) - haveArrow = TRUE; - node = node->Next(); - } - - wxGetApp().GetDiagramToolBar()->ToggleTool(DIAGRAM_TOOLBAR_LINE_ARROW, haveArrow); -} - -void csDiagramView::OnAlign(wxCommandEvent& event) -{ - // Make a copy of the selections, keeping only those shapes - // that are top-level non-line shapes. - wxList selections; - wxNode* node = GetSelectionList().First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if ((shape->GetParent() == NULL) && (!shape->IsKindOf(CLASSINFO(wxLineShape)))) - { - selections.Append(shape); - } - node = node->Next(); - } - - if (selections.Number() == 0) - return; - - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - csDiagramCommand* cmd = new csDiagramCommand("Align", doc); - - node = selections.First(); - wxShape* firstShape = (wxShape*) node->Data(); - - double x = firstShape->GetX(); - double y = firstShape->GetY(); - double width, height; - firstShape->GetBoundingBoxMax(&width, &height); - - node = selections.First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape != firstShape) - { - double x1 = shape->GetX(); - double y1 = shape->GetY(); - double width1, height1; - shape->GetBoundingBoxMax(& width1, & height1); - - wxShape* newShape = shape->CreateNewCopy(); - - switch (event.GetId()) - { - case DIAGRAM_TOOLBAR_ALIGNL: - { - double x2 = (double)(x - (width/2.0) + (width1/2.0)); - newShape->SetX(x2); - break; - } - case DIAGRAM_TOOLBAR_ALIGNR: - { - double x2 = (double)(x + (width/2.0) - (width1/2.0)); - newShape->SetX(x2); - break; - } - case DIAGRAM_TOOLBAR_ALIGNB: - { - double y2 = (double)(y + (height/2.0) - (height1/2.0)); - newShape->SetY(y2); - break; - } - case DIAGRAM_TOOLBAR_ALIGNT: - { - double y2 = (double)(y - (height/2.0) + (height1/2.0)); - newShape->SetY(y2); - break; - } - case DIAGRAM_TOOLBAR_ALIGN_HORIZ: - { - newShape->SetX(x); - break; - } - case DIAGRAM_TOOLBAR_ALIGN_VERT: - { - newShape->SetY(y); - break; - } - case DIAGRAM_TOOLBAR_COPY_SIZE: - { - newShape->SetSize(width, height); - break; - } - } - csCommandState* state = new csCommandState(ID_CS_ALIGN, newShape, shape); - cmd->AddState(state); - } - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); -} - -void csDiagramView::OnAlignUpdate(wxUpdateUIEvent& event) -{ - // This is an approximation, since there may be lines - // amongst the selections. - event.Enable( (m_selections.Number() > 1) ) ; -} - -void csDiagramView::OnNewLinePoint(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - csDiagramCommand* cmd = new csDiagramCommand("New line point", doc); - - wxNode* node = m_selections.First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxShape* newShape = shape->CreateNewCopy(); - ((wxLineShape*)newShape)->InsertLineControlPoint(NULL); - csCommandState* state = new csCommandState(ID_CS_NEW_POINT, newShape, shape); - cmd->AddState(state); - } - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); -} - -void csDiagramView::OnCutLinePoint(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - csDiagramCommand* cmd = new csDiagramCommand("Cut line point", doc); - - wxNode* node = m_selections.First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxShape* newShape = shape->CreateNewCopy(); - ((wxLineShape*)newShape)->DeleteLineControlPoint(); - csCommandState* state = new csCommandState(ID_CS_CUT_POINT, newShape, shape); - cmd->AddState(state); - } - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); -} - -void csDiagramView::OnStraightenLines(wxCommandEvent& event) -{ - csDiagramDocument *doc = (csDiagramDocument *)GetDocument(); - csDiagramCommand* cmd = new csDiagramCommand("Straighten lines", doc); - - wxNode* node = m_selections.First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - { - wxShape* newShape = shape->CreateNewCopy(); - ((wxLineShape*)newShape)->Straighten(); - csCommandState* state = new csCommandState(ID_CS_STRAIGHTEN, newShape, shape); - cmd->AddState(state); - } - node = node->Next(); - } - doc->GetCommandProcessor()->Submit(cmd); -} - -void csDiagramView::OnNewLinePointUpdate(wxUpdateUIEvent& event) -{ - wxList selections; - FindSelectedShapes(selections, CLASSINFO(wxLineShape)); - event.Enable( (selections.Number() > 0) ); -} - -void csDiagramView::OnCutLinePointUpdate(wxUpdateUIEvent& event) -{ - wxList selections; - FindSelectedShapes(selections, CLASSINFO(wxLineShape)); - event.Enable( (selections.Number() > 0) ); -} - -void csDiagramView::OnStraightenLinesUpdate(wxUpdateUIEvent& event) -{ - wxList selections; - FindSelectedShapes(selections, CLASSINFO(wxLineShape)); - event.Enable( (selections.Number() > 0) ); -} - -/* - * Window implementations - */ - -IMPLEMENT_CLASS(csCanvas, wxShapeCanvas) - -BEGIN_EVENT_TABLE(csCanvas, wxShapeCanvas) - EVT_MOUSE_EVENTS(csCanvas::OnMouseEvent) - EVT_PAINT(csCanvas::OnPaint) -END_EVENT_TABLE() - -// Define a constructor for my canvas -csCanvas::csCanvas(csDiagramView *v, wxWindow *parent, wxWindowID id, const wxPoint& pos, - const wxSize& size, long style): - wxShapeCanvas(parent, id, pos, size, style) -{ - m_view = v; -} - -csCanvas::~csCanvas(void) -{ -} - -void csCanvas::DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2) -{ - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - dc.DrawRectangle((long) x1, (long) y1, (long) (x2 - x1), (long) (y2 - y1)); -} - -void csCanvas::OnLeftClick(double x, double y, int keys) -{ - csEditorToolPalette *palette = wxGetApp().GetDiagramPalette(); - - if (palette->GetSelection() == PALETTE_ARROW) - { - GetView()->SelectAll(FALSE); - - wxClientDC dc(this); - PrepareDC(dc); - - Redraw(dc); - return; - } - - if (palette->GetSelection() == PALETTE_TEXT_TOOL) - { - // Ask for a label and create a new free-floating text region - csLabelEditingDialog* dialog = new csLabelEditingDialog(GetParent()); - - dialog->SetShapeLabel(""); - dialog->SetTitle("New text box"); - if (dialog->ShowModal() == wxID_CANCEL) - { - dialog->Destroy(); - return; - } - - wxString newLabel = dialog->GetShapeLabel(); - dialog->Destroy(); - - wxShape* shape = new csTextBoxShape; - shape->AssignNewIds(); - shape->SetEventHandler(new csEvtHandler(shape, shape, newLabel)); - - wxComboBox* comboBox = wxGetApp().GetPointSizeComboBox(); - wxString str(comboBox->GetValue()); - int pointSize = atoi((const char*) str); - - wxFont* newFont = wxTheFontList->FindOrCreateFont(pointSize, - shape->GetFont()->GetFamily(), - shape->GetFont()->GetStyle(), - shape->GetFont()->GetWeight(), - shape->GetFont()->GetUnderlined(), - shape->GetFont()->GetFaceName()); - - shape->SetFont(newFont); - - shape->SetX(x); - shape->SetY(y); - - csDiagramCommand* cmd = new csDiagramCommand("Text box", - (csDiagramDocument *)GetView()->GetDocument(), - new csCommandState(ID_CS_ADD_SHAPE, shape, NULL)); - GetView()->GetDocument()->GetCommandProcessor()->Submit(cmd); - - palette->SetSelection(PALETTE_ARROW); - - return; - } - - csSymbol* symbol = wxGetApp().GetSymbolDatabase()->FindSymbol(palette->GetSelection()); - if (symbol) - { - wxShape* theShape = symbol->GetShape()->CreateNewCopy(); - - wxComboBox* comboBox = wxGetApp().GetPointSizeComboBox(); - wxString str(comboBox->GetValue()); - int pointSize = atoi((const char*) str); - - wxFont* newFont = wxTheFontList->FindOrCreateFont(pointSize, - symbol->GetShape()->GetFont()->GetFamily(), - symbol->GetShape()->GetFont()->GetStyle(), - symbol->GetShape()->GetFont()->GetWeight(), - symbol->GetShape()->GetFont()->GetUnderlined(), - symbol->GetShape()->GetFont()->GetFaceName()); - - theShape->SetFont(newFont); - - theShape->AssignNewIds(); - theShape->SetX(x); - theShape->SetY(y); - - csDiagramCommand* cmd = new csDiagramCommand(symbol->GetName(), - (csDiagramDocument *)GetView()->GetDocument(), - new csCommandState(ID_CS_ADD_SHAPE, theShape, NULL)); - GetView()->GetDocument()->GetCommandProcessor()->Submit(cmd); - - palette->SetSelection(PALETTE_ARROW); - } -} - -void csCanvas::OnRightClick(double x, double y, int keys) -{ -} - -// Initial point -static double sg_initialX, sg_initialY; - -void csCanvas::OnDragLeft(bool draw, double x, double y, int keys) -{ - wxClientDC dc(this); - PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - DrawOutline(dc, sg_initialX, sg_initialY, x, y); -} - -void csCanvas::OnBeginDragLeft(double x, double y, int keys) -{ - sg_initialX = x; - sg_initialY = y; - - wxClientDC dc(this); - PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - DrawOutline(dc, sg_initialX, sg_initialY, x, y); - CaptureMouse(); -} - -void csCanvas::OnEndDragLeft(double x, double y, int keys) -{ - ReleaseMouse(); - - wxClientDC dc(this); - PrepareDC(dc); - - // Select all images within the rectangle - float min_x, max_x, min_y, max_y; - min_x = wxMin(x, sg_initialX); - max_x = wxMax(x, sg_initialX); - min_y = wxMin(y, sg_initialY); - max_y = wxMax(y, sg_initialY); - - wxNode *node = GetDiagram()->GetShapeList()->First(); - while (node) - { - wxShape *shape = (wxShape *)node->Data(); - if (shape->GetParent() == NULL && !shape->IsKindOf(CLASSINFO(wxControlPoint))) - { - float image_x = shape->GetX(); - float image_y = shape->GetY(); - if (image_x >= min_x && image_x <= max_x && - image_y >= min_y && image_y <= max_y) - { - shape->Select(TRUE, &dc); - GetView()->SelectShape(shape, TRUE); - } - } - node = node->Next(); - } -} - -void csCanvas::OnDragRight(bool draw, double x, double y, int keys) -{ -} - -void csCanvas::OnBeginDragRight(double x, double y, int keys) -{ -} - -void csCanvas::OnEndDragRight(double x, double y, int keys) -{ -} - -void csCanvas::OnMouseEvent(wxMouseEvent& event) -{ - wxShapeCanvas::OnMouseEvent(event); -} - -void csCanvas::OnPaint(wxPaintEvent& event) -{ -// if (GetDiagram()) - wxShapeCanvas::OnPaint(event); -} diff --git a/utils/ogl/samples/studio/view.h b/utils/ogl/samples/studio/view.h deleted file mode 100644 index 5bc3e7fa7f..0000000000 --- a/utils/ogl/samples/studio/view.h +++ /dev/null @@ -1,141 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: view.h -// Purpose: View-related classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _STUDIO_VIEW_H_ -#define _STUDIO_VIEW_H_ - -#ifdef __GNUG__ -// #pragma interface "view.h" -#endif - -#include "doc.h" -#include "ogl.h" - -class csDiagramView; -class csCanvas: public wxShapeCanvas -{ -DECLARE_CLASS(csCanvas) - public: - - csCanvas(csDiagramView *view, wxWindow *parent = NULL, wxWindowID id = -1, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxRETAINED); - ~csCanvas(void); - - void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2); - - void OnMouseEvent(wxMouseEvent& event); - void OnPaint(wxPaintEvent& event); - - virtual void OnLeftClick(double x, double y, int keys = 0); - virtual void OnRightClick(double x, double y, int keys = 0); - - virtual void OnDragLeft(bool draw, double x, double y, int keys=0); // Erase if draw false - virtual void OnBeginDragLeft(double x, double y, int keys=0); - virtual void OnEndDragLeft(double x, double y, int keys=0); - - virtual void OnDragRight(bool draw, double x, double y, int keys=0); // Erase if draw false - virtual void OnBeginDragRight(double x, double y, int keys=0); - virtual void OnEndDragRight(double x, double y, int keys=0); - - inline csDiagramView* GetView() const { return m_view; } - inline void SetView(csDiagramView* view) { m_view = view; } - - protected: - csDiagramView* m_view; - -DECLARE_EVENT_TABLE() -}; - -class csDiagramView: public wxView -{ - DECLARE_DYNAMIC_CLASS(csDiagramView) - public: - csDiagramView(void) { canvas = NULL; frame = NULL; }; - ~csDiagramView(void); - - bool OnCreate(wxDocument *doc, long flags); - void OnDraw(wxDC *dc); - void OnUpdate(wxView *sender, wxObject *hint = NULL); - bool OnClose(bool deleteWindow = TRUE); - void OnSelectAll(wxCommandEvent& event); - - wxShape *FindFirstSelectedShape(void); - - // Scans the canvas for selections (doesn't use m_selections) - void FindSelectedShapes(wxList& selections, wxClassInfo* toFind = NULL); - - // The selections in the order in which they were selected - inline wxList& GetSelectionList() const { return (wxList&) m_selections; } - - // Adds or removes shape from m_selections - void SelectShape(wxShape* shape, bool select); - - // Apply point size to current shapes - void ApplyPointSize(int pointSize); - - // Make the point size combobox reflect this - void ReflectPointSize(int pointSize); - - // Make the arrow toggle button reflect the state of the line - void ReflectArrowState(wxLineShape* lineShape); - - // Do a cut operation for the given list of shapes - void DoCut(wxList& shapes); - - // Do a general command - void DoCmd(wxList& shapes, wxList& oldShapes, int cmd, const wxString& op); - - // Select or deselect all - void SelectAll(bool select = TRUE); - -// Event handlers - void OnCut(wxCommandEvent& event); - void OnCopy(wxCommandEvent& event); - void OnPaste(wxCommandEvent& event); - void OnDuplicate(wxCommandEvent& event); - void OnClear(wxCommandEvent& event); - void OnChangeBackgroundColour(wxCommandEvent& event); - void OnEditProperties(wxCommandEvent& event); - void OnPointSizeComboSel(wxCommandEvent& event); - void OnPointSizeComboText(wxCommandEvent& event); - void OnToggleArrowTool(wxCommandEvent& event); - void OnZoomSel(wxCommandEvent& event); - void OnAlign(wxCommandEvent& event); - void OnNewLinePoint(wxCommandEvent& event); - void OnCutLinePoint(wxCommandEvent& event); - void OnStraightenLines(wxCommandEvent& event); - -// UI update handles - void OnToggleArrowToolUpdate(wxUpdateUIEvent& event); - void OnEditPropertiesUpdate(wxUpdateUIEvent& event); - void OnCutUpdate(wxUpdateUIEvent& event); - void OnClearUpdate(wxUpdateUIEvent& event); - void OnCopyUpdate(wxUpdateUIEvent& event); - void OnPasteUpdate(wxUpdateUIEvent& event); - void OnDuplicateUpdate(wxUpdateUIEvent& event); - void OnAlignUpdate(wxUpdateUIEvent& event); - void OnNewLinePointUpdate(wxUpdateUIEvent& event); - void OnCutLinePointUpdate(wxUpdateUIEvent& event); - void OnStraightenLinesUpdate(wxUpdateUIEvent& event); - void OnUndoUpdate(wxUpdateUIEvent& event); - void OnRedoUpdate(wxUpdateUIEvent& event); - -DECLARE_EVENT_TABLE() - -public: - wxFrame* frame; - csCanvas* canvas; - wxList m_selections; -}; - -#endif - // _STUDIO_VIEW_H_ diff --git a/utils/ogl/src/basic.cpp b/utils/ogl/src/basic.cpp deleted file mode 100644 index 19426d340e..0000000000 --- a/utils/ogl/src/basic.cpp +++ /dev/null @@ -1,3274 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: basic.cpp -// Purpose: Basic OGL classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "basic.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -#include -#include -#include - -#include "basic.h" -#include "basicp.h" -#include "composit.h" -#include "lines.h" -#include "canvas.h" -#include "divided.h" -#include "misc.h" - -// Control point types -// Rectangle and most other shapes -#define CONTROL_POINT_VERTICAL 1 -#define CONTROL_POINT_HORIZONTAL 2 -#define CONTROL_POINT_DIAGONAL 3 - -// Line -#define CONTROL_POINT_ENDPOINT_TO 4 -#define CONTROL_POINT_ENDPOINT_FROM 5 -#define CONTROL_POINT_LINE 6 - -IMPLEMENT_DYNAMIC_CLASS(wxShapeTextLine, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxAttachmentPoint, wxObject) - -wxShapeTextLine::wxShapeTextLine(double the_x, double the_y, const wxString& the_line) -{ - m_x = the_x; m_y = the_y; m_line = the_line; -} - -wxShapeTextLine::~wxShapeTextLine() -{ -} - -IMPLEMENT_ABSTRACT_CLASS(wxShapeEvtHandler, wxObject) - -wxShapeEvtHandler::wxShapeEvtHandler(wxShapeEvtHandler *prev, wxShape *shape) -{ - m_previousHandler = prev; - m_handlerShape = shape; -} - -wxShapeEvtHandler::~wxShapeEvtHandler() -{ -} - -// Creates a copy of this event handler. -wxShapeEvtHandler* wxShapeEvtHandler::CreateNewCopy() -{ - wxShapeEvtHandler* newObject = (wxShapeEvtHandler*) GetClassInfo()->CreateObject(); - - wxASSERT( (newObject != NULL) ); - wxASSERT( (newObject->IsKindOf(CLASSINFO(wxShapeEvtHandler))) ); - - newObject->m_previousHandler = newObject; - - CopyData(*newObject); - - return newObject; -} - - -void wxShapeEvtHandler::OnDelete() -{ - if (this != GetShape()) - delete this; -} - -void wxShapeEvtHandler::OnDraw(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnDraw(dc); -} - -void wxShapeEvtHandler::OnMoveLinks(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnMoveLinks(dc); -} - -void wxShapeEvtHandler::OnMoveLink(wxDC& dc, bool moveControlPoints) -{ - if (m_previousHandler) - m_previousHandler->OnMoveLink(dc, moveControlPoints); -} - -void wxShapeEvtHandler::OnDrawContents(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnDrawContents(dc); -} - -void wxShapeEvtHandler::OnDrawBranches(wxDC& dc, bool erase) -{ - if (m_previousHandler) - m_previousHandler->OnDrawBranches(dc, erase); -} - -void wxShapeEvtHandler::OnSize(double x, double y) -{ - if (m_previousHandler) - m_previousHandler->OnSize(x, y); -} - -bool wxShapeEvtHandler::OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display) -{ - if (m_previousHandler) - return m_previousHandler->OnMovePre(dc, x, y, old_x, old_y, display); - else - return TRUE; -} - -void wxShapeEvtHandler::OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display) -{ - if (m_previousHandler) - m_previousHandler->OnMovePost(dc, x, y, old_x, old_y, display); -} - -void wxShapeEvtHandler::OnErase(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnErase(dc); -} - -void wxShapeEvtHandler::OnEraseContents(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnEraseContents(dc); -} - -void wxShapeEvtHandler::OnHighlight(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnHighlight(dc); -} - -void wxShapeEvtHandler::OnLeftClick(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnLeftClick(x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnLeftDoubleClick(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnLeftDoubleClick(x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnRightClick(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnRightClick(x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnDragLeft(draw, x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnBeginDragLeft(x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnEndDragLeft(x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnDragRight(bool draw, double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnDragRight(draw, x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnBeginDragRight(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnBeginDragRight(x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnEndDragRight(double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnEndDragRight(x, y, keys, attachment); -} - -// Control points ('handles') redirect control to the actual shape, to make it easier -// to override sizing behaviour. -void wxShapeEvtHandler::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnSizingDragLeft(pt, draw, x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnSizingBeginDragLeft(pt, x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - if (m_previousHandler) - m_previousHandler->OnSizingEndDragLeft(pt, x, y, keys, attachment); -} - -void wxShapeEvtHandler::OnDrawOutline(wxDC& dc, double x, double y, double w, double h) -{ - if (m_previousHandler) - m_previousHandler->OnDrawOutline(dc, x, y, w, h); -} - -void wxShapeEvtHandler::OnDrawControlPoints(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnDrawControlPoints(dc); -} - -void wxShapeEvtHandler::OnEraseControlPoints(wxDC& dc) -{ - if (m_previousHandler) - m_previousHandler->OnEraseControlPoints(dc); -} - -// Can override this to prevent or intercept line reordering. -void wxShapeEvtHandler::OnChangeAttachment(int attachment, wxLineShape* line, wxList& ordering) -{ - if (m_previousHandler) - m_previousHandler->OnChangeAttachment(attachment, line, ordering); -} - -IMPLEMENT_ABSTRACT_CLASS(wxShape, wxShapeEvtHandler) - -wxShape::wxShape(wxShapeCanvas *can) -{ - m_eventHandler = this; - SetShape(this); - m_id = 0; - m_formatted = FALSE; - m_canvas = can; - m_xpos = 0.0; m_ypos = 0.0; - m_pen = g_oglBlackPen; - m_brush = wxWHITE_BRUSH; - m_font = g_oglNormalFont; - m_textColour = wxBLACK; - m_textColourName = "BLACK"; - m_visible = FALSE; - m_clientData = NULL; - m_selected = FALSE; - m_attachmentMode = ATTACHMENT_MODE_NONE; - m_spaceAttachments = TRUE; - m_disableLabel = FALSE; - m_fixedWidth = FALSE; - m_fixedHeight = FALSE; - m_drawHandles = TRUE; - m_sensitivity = OP_ALL; - m_draggable = TRUE; - m_parent = NULL; - m_formatMode = FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT; - m_shadowMode = SHADOW_NONE; - m_shadowOffsetX = 6; - m_shadowOffsetY = 6; - m_shadowBrush = wxBLACK_BRUSH; - m_textMarginX = 5; - m_textMarginY = 5; - m_regionName = "0"; - m_centreResize = TRUE; - m_maintainAspectRatio = FALSE; - m_highlighted = FALSE; - m_rotation = 0.0; - m_branchNeckLength = 10; - m_branchStemLength = 10; - m_branchSpacing = 10; - m_branchStyle = BRANCHING_ATTACHMENT_NORMAL; - - // Set up a default region. Much of the above will be put into - // the region eventually (the duplication is for compatibility) - wxShapeRegion *region = new wxShapeRegion; - m_regions.Append(region); - region->SetName("0"); - region->SetFont(g_oglNormalFont); - region->SetFormatMode(FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT); - region->SetColour("BLACK"); -} - -wxShape::~wxShape() -{ - if (m_parent) - m_parent->GetChildren().DeleteObject(this); - - ClearText(); - ClearRegions(); - ClearAttachments(); - - if (m_canvas) - m_canvas->RemoveShape(this); - - GetEventHandler()->OnDelete(); -} - -void wxShape::SetHighlight(bool hi, bool recurse) -{ - m_highlighted = hi; - if (recurse) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->SetHighlight(hi, recurse); - node = node->Next(); - } - } -} - -void wxShape::SetSensitivityFilter(int sens, bool recursive) -{ - if (sens & OP_DRAG_LEFT) - m_draggable = TRUE; - else - m_draggable = FALSE; - - m_sensitivity = sens; - if (recursive) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *obj = (wxShape *)node->Data(); - obj->SetSensitivityFilter(sens, TRUE); - node = node->Next(); - } - } -} - -void wxShape::SetDraggable(bool drag, bool recursive) -{ - m_draggable = drag; - if (m_draggable) - m_sensitivity |= OP_DRAG_LEFT; - else - if (m_sensitivity & OP_DRAG_LEFT) - m_sensitivity = m_sensitivity - OP_DRAG_LEFT; - - if (recursive) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *obj = (wxShape *)node->Data(); - obj->SetDraggable(drag, TRUE); - node = node->Next(); - } - } -} - -void wxShape::SetDrawHandles(bool drawH) -{ - m_drawHandles = drawH; - wxNode *node = m_children.First(); - while (node) - { - wxShape *obj = (wxShape *)node->Data(); - obj->SetDrawHandles(drawH); - node = node->Next(); - } -} - -void wxShape::SetShadowMode(int mode, bool redraw) -{ - if (redraw && GetCanvas()) - { - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - Erase(dc); - - m_shadowMode = mode; - - Draw(dc); - } - else - { - m_shadowMode = mode; - } -} - -void wxShape::SetCanvas(wxShapeCanvas *theCanvas) -{ - m_canvas = theCanvas; - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->SetCanvas(theCanvas); - node = node->Next(); - } -} - -void wxShape::AddToCanvas(wxShapeCanvas *theCanvas, wxShape *addAfter) -{ - theCanvas->AddShape(this, addAfter); - wxNode *node = m_children.First(); - wxShape *lastImage = this; - while (node) - { - wxShape *object = (wxShape *)node->Data(); - object->AddToCanvas(theCanvas, lastImage); - lastImage = object; - - node = node->Next(); - } -} - -// Insert at front of canvas -void wxShape::InsertInCanvas(wxShapeCanvas *theCanvas) -{ - theCanvas->InsertShape(this); - wxNode *node = m_children.First(); - wxShape *lastImage = this; - while (node) - { - wxShape *object = (wxShape *)node->Data(); - object->AddToCanvas(theCanvas, lastImage); - lastImage = object; - - node = node->Next(); - } -} - -void wxShape::RemoveFromCanvas(wxShapeCanvas *theCanvas) -{ - if (Selected()) - Select(FALSE); - theCanvas->RemoveShape(this); - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - object->RemoveFromCanvas(theCanvas); - - node = node->Next(); - } -} - -void wxShape::ClearAttachments() -{ - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - delete point; - node = node->Next(); - } - m_attachmentPoints.Clear(); -} - -void wxShape::ClearText(int regionId) -{ - if (regionId == 0) - { - m_text.DeleteContents(TRUE); - m_text.Clear(); - m_text.DeleteContents(FALSE); - } - wxNode *node = m_regions.Nth(regionId); - if (!node) - return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->ClearText(); -} - -void wxShape::ClearRegions() -{ - wxNode *node = m_regions.First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - wxNode *next = node->Next(); - delete region; - delete node; - node = next; - } -} - -void wxShape::AddRegion(wxShapeRegion *region) -{ - m_regions.Append(region); -} - -void wxShape::SetDefaultRegionSize() -{ - wxNode *node = m_regions.First(); - if (!node) return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - double w, h; - GetBoundingBoxMin(&w, &h); - region->SetSize(w, h); -} - -bool wxShape::HitTest(double x, double y, int *attachment, double *distance) -{ -// if (!sensitive) -// return FALSE; - - double width = 0.0, height = 0.0; - GetBoundingBoxMin(&width, &height); - if (fabs(width) < 4.0) width = 4.0; - if (fabs(height) < 4.0) height = 4.0; - - width += (double)4.0; height += (double)4.0; // Allowance for inaccurate mousing - - double left = (double)(m_xpos - (width/2.0)); - double top = (double)(m_ypos - (height/2.0)); - double right = (double)(m_xpos + (width/2.0)); - double bottom = (double)(m_ypos + (height/2.0)); - - int nearest_attachment = 0; - - // If within the bounding box, check the attachment points - // within the object. - - if (x >= left && x <= right && y >= top && y <= bottom) - { - int n = GetNumberOfAttachments(); - double nearest = 999999.0; - - // GetAttachmentPosition[Edge] takes a logical attachment position, - // i.e. if it's rotated through 90%, position 0 is East-facing. - - for (int i = 0; i < n; i++) - { - double xp, yp; - if (GetAttachmentPositionEdge(i, &xp, &yp)) - { - double l = (double)sqrt(((xp - x) * (xp - x)) + - ((yp - y) * (yp - y))); - - if (l < nearest) - { - nearest = l; - nearest_attachment = i; - } - } - } - *attachment = nearest_attachment; - *distance = nearest; - return TRUE; - } - else return FALSE; -} - -// Format a text string according to the region size, adding -// strings with positions to region text list - -static bool GraphicsInSizeToContents = FALSE; // Infinite recursion elimination -void wxShape::FormatText(wxDC& dc, const wxString& s, int i) -{ - double w, h; - ClearText(i); - - if (m_regions.Number() < 1) - return; - wxNode *node = m_regions.Nth(i); - if (!node) - return; - - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->SetText(s); - dc.SetFont(* region->GetFont()); - - region->GetSize(&w, &h); - - wxStringList *stringList = oglFormatText(dc, s, (w-5), (h-5), region->GetFormatMode()); - node = stringList->First(); - while (node) - { - char *s = (char *)node->Data(); - wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s); - region->GetFormattedText().Append((wxObject *)line); - node = node->Next(); - } - delete stringList; - double actualW = w; - double actualH = h; - // Don't try to resize an object with more than one image (this case should be dealt - // with by overriden handlers) - if ((region->GetFormatMode() & FORMAT_SIZE_TO_CONTENTS) && - (region->GetFormattedText().Number() > 0) && - (m_regions.Number() == 1) && !GraphicsInSizeToContents) - { - oglGetCentredTextExtent(dc, &(region->GetFormattedText()), m_xpos, m_ypos, w, h, &actualW, &actualH); - if ((actualW+m_textMarginX != w ) || (actualH+m_textMarginY != h)) - { - // If we are a descendant of a composite, must make sure the composite gets - // resized properly - wxShape *topAncestor = GetTopAncestor(); - - if (topAncestor != this) - { - // Make sure we don't recurse infinitely - GraphicsInSizeToContents = TRUE; - - wxCompositeShape *composite = (wxCompositeShape *)topAncestor; - composite->Erase(dc); - SetSize(actualW+m_textMarginX, actualH+m_textMarginY); - Move(dc, m_xpos, m_ypos); - composite->CalculateSize(); - if (composite->Selected()) - { - composite->DeleteControlPoints(& dc); - composite->MakeControlPoints(); - composite->MakeMandatoryControlPoints(); - } - // Where infinite recursion might happen if we didn't stop it - composite->Draw(dc); - - GraphicsInSizeToContents = FALSE; - } - else - { - Erase(dc); - SetSize(actualW+m_textMarginX, actualH+m_textMarginY); - Move(dc, m_xpos, m_ypos); - } - SetSize(actualW+m_textMarginX, actualH+m_textMarginY); - Move(dc, m_xpos, m_ypos); - EraseContents(dc); - } - } - oglCentreText(dc, &(region->GetFormattedText()), m_xpos, m_ypos, actualW, actualH, region->GetFormatMode()); - m_formatted = TRUE; -} - -void wxShape::Recentre(wxDC& dc) -{ - double w, h; - GetBoundingBoxMin(&w, &h); - - int noRegions = m_regions.Number(); - for (int i = 0; i < noRegions; i++) - { - wxNode *node = m_regions.Nth(i); - if (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - oglCentreText(dc, &(region->GetFormattedText()), m_xpos, m_ypos, w, h, region->GetFormatMode()); - } - } -} - -bool wxShape::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3) -{ - return FALSE; -} - -void wxShape::SetPen(wxPen *the_pen) -{ - m_pen = the_pen; -} - -void wxShape::SetBrush(wxBrush *the_brush) -{ - m_brush = the_brush; -} - -// Get the top-most (non-division) ancestor, or self -wxShape *wxShape::GetTopAncestor() -{ - if (!GetParent()) - return this; - - if (GetParent()->IsKindOf(CLASSINFO(wxDivisionShape))) - return this; - else return GetParent()->GetTopAncestor(); -} - -/* - * Region functions - * - */ -void wxShape::SetFont(wxFont *the_font, int regionId) -{ - m_font = the_font; - wxNode *node = m_regions.Nth(regionId); - if (!node) - return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->SetFont(the_font); -} - -wxFont *wxShape::GetFont(int n) const -{ - wxNode *node = m_regions.Nth(n); - if (!node) - return NULL; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - return region->GetFont(); -} - -void wxShape::SetFormatMode(int mode, int regionId) -{ - wxNode *node = m_regions.Nth(regionId); - if (!node) - return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->SetFormatMode(mode); -} - -int wxShape::GetFormatMode(int regionId) const -{ - wxNode *node = m_regions.Nth(regionId); - if (!node) - return 0; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - return region->GetFormatMode(); -} - -void wxShape::SetTextColour(const wxString& the_colour, int regionId) -{ - wxColour *wxcolour = wxTheColourDatabase->FindColour(the_colour); - m_textColour = wxcolour; - m_textColourName = the_colour; - - wxNode *node = m_regions.Nth(regionId); - if (!node) - return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->SetColour(the_colour); -} - -wxString wxShape::GetTextColour(int regionId) const -{ - wxNode *node = m_regions.Nth(regionId); - if (!node) - return wxString(""); - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - return region->GetColour(); -} - -void wxShape::SetRegionName(const wxString& name, int regionId) -{ - wxNode *node = m_regions.Nth(regionId); - if (!node) - return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->SetName(name); -} - -wxString wxShape::GetRegionName(int regionId) -{ - wxNode *node = m_regions.Nth(regionId); - if (!node) - return wxString(""); - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - return region->GetName(); -} - -int wxShape::GetRegionId(const wxString& name) -{ - wxNode *node = m_regions.First(); - int i = 0; - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - if (region->GetName() == name) - return i; - node = node->Next(); - i ++; - } - return -1; -} - -// Name all m_regions in all subimages recursively. -void wxShape::NameRegions(const wxString& parentName) -{ - int n = GetNumberOfTextRegions(); - char buf[100]; - for (int i = 0; i < n; i++) - { - if (parentName.Length() > 0) - sprintf(buf, "%s.%d", (const char*) parentName, i); - else - sprintf(buf, "%d", i); - SetRegionName(buf, i); - } - wxNode *node = m_children.First(); - int j = 0; - while (node) - { - wxShape *child = (wxShape *)node->Data(); - if (parentName.Length() > 0) - sprintf(buf, "%s.%d", (const char*) parentName, j); - else - sprintf(buf, "%d", j); - child->NameRegions(buf); - node = node->Next(); - j ++; - } -} - -// Get a region by name, possibly looking recursively into composites. -wxShape *wxShape::FindRegion(const wxString& name, int *regionId) -{ - int id = GetRegionId(name); - if (id > -1) - { - *regionId = id; - return this; - } - - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - wxShape *actualImage = child->FindRegion(name, regionId); - if (actualImage) - return actualImage; - node = node->Next(); - } - return NULL; -} - -// Finds all region names for this image (composite or simple). -// Supply empty string list. -void wxShape::FindRegionNames(wxStringList& list) -{ - int n = GetNumberOfTextRegions(); - for (int i = 0; i < n; i++) - { - wxString name(GetRegionName(i)); - list.Add((const char*) name); - } - - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->FindRegionNames(list); - node = node->Next(); - } -} - -void wxShape::AssignNewIds() -{ -// if (m_id == 0) - m_id = NewId(); - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->AssignNewIds(); - node = node->Next(); - } -} - -void wxShape::OnDraw(wxDC& dc) -{ -} - -void wxShape::OnMoveLinks(wxDC& dc) -{ - // Want to set the ends of all attached links - // to point to/from this object - - wxNode *current = m_lines.First(); - while (current) - { - wxLineShape *line = (wxLineShape *)current->Data(); - line->GetEventHandler()->OnMoveLink(dc); - current = current->Next(); - } -} - - -void wxShape::OnDrawContents(wxDC& dc) -{ - double bound_x, bound_y; - GetBoundingBoxMin(&bound_x, &bound_y); - if (m_regions.Number() < 1) return; - - if (m_pen) dc.SetPen(* m_pen); - - wxShapeRegion *region = (wxShapeRegion *)m_regions.First()->Data(); - if (region->GetFont()) dc.SetFont(* region->GetFont()); - - dc.SetTextForeground(* (region->GetActualColourObject())); - dc.SetBackgroundMode(wxTRANSPARENT); - if (!m_formatted) - { - oglCentreText(dc, &(region->GetFormattedText()), m_xpos, m_ypos, bound_x, bound_y, region->GetFormatMode()); - m_formatted = TRUE; - } - if (!GetDisableLabel()) - { - oglDrawFormattedText(dc, &(region->GetFormattedText()), m_xpos, m_ypos, bound_x, bound_y, region->GetFormatMode()); - } -} - -void wxShape::DrawContents(wxDC& dc) -{ - GetEventHandler()->OnDrawContents(dc); -} - -void wxShape::OnSize(double x, double y) -{ -} - -bool wxShape::OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display) -{ - return TRUE; -} - -void wxShape::OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display) -{ -} - -void wxShape::OnErase(wxDC& dc) -{ - if (!m_visible) - return; - - // Erase links - wxNode *current = m_lines.First(); - while (current) - { - wxLineShape *line = (wxLineShape *)current->Data(); - line->GetEventHandler()->OnErase(dc); - current = current->Next(); - } - GetEventHandler()->OnEraseContents(dc); -} - -void wxShape::OnEraseContents(wxDC& dc) -{ - if (!m_visible) - return; - - double maxX, maxY, minX, minY; - double xp = GetX(); - double yp = GetY(); - GetBoundingBoxMin(&minX, &minY); - GetBoundingBoxMax(&maxX, &maxY); - double topLeftX = (double)(xp - (maxX / 2.0) - 2.0); - double topLeftY = (double)(yp - (maxY / 2.0) - 2.0); - - int penWidth = 0; - if (m_pen) - penWidth = m_pen->GetWidth(); - - dc.SetPen(* g_oglWhiteBackgroundPen); - dc.SetBrush(* g_oglWhiteBackgroundBrush); - dc.DrawRectangle(WXROUND(topLeftX - penWidth), WXROUND(topLeftY - penWidth), - WXROUND(maxX + penWidth*2.0 + 4.0), WXROUND(maxY + penWidth*2.0 + 4.0)); -} - -void wxShape::EraseLinks(wxDC& dc, int attachment, bool recurse) -{ - if (!m_visible) - return; - - wxNode *current = m_lines.First(); - while (current) - { - wxLineShape *line = (wxLineShape *)current->Data(); - if (attachment == -1 || ((line->GetTo() == this && line->GetAttachmentTo() == attachment) || - (line->GetFrom() == this && line->GetAttachmentFrom() == attachment))) - line->GetEventHandler()->OnErase(dc); - current = current->Next(); - } - if (recurse) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->EraseLinks(dc, attachment, recurse); - node = node->Next(); - } - } -} - -void wxShape::DrawLinks(wxDC& dc, int attachment, bool recurse) -{ - if (!m_visible) - return; - - wxNode *current = m_lines.First(); - while (current) - { - wxLineShape *line = (wxLineShape *)current->Data(); - if (attachment == -1 || - (line->GetTo() == this && line->GetAttachmentTo() == attachment) || - (line->GetFrom() == this && line->GetAttachmentFrom() == attachment)) - line->Draw(dc); - current = current->Next(); - } - if (recurse) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->DrawLinks(dc, attachment, recurse); - node = node->Next(); - } - } -} - -// Returns TRUE if pt1 <= pt2 in the sense that one point comes before another on an -// edge of the shape. -// attachmentPoint is the attachment point (= side) in question. - -// This is the default, rectangular implementation. -bool wxShape::AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2) -{ - int physicalAttachment = LogicalToPhysicalAttachment(attachmentPoint); - switch (physicalAttachment) - { - case 0: - case 2: - { - return (pt1.x <= pt2.x) ; - break; - } - case 1: - case 3: - { - return (pt1.y <= pt2.y) ; - break; - } - } - - return FALSE; -} - -bool wxShape::MoveLineToNewAttachment(wxDC& dc, wxLineShape *to_move, - double x, double y) -{ - if (GetAttachmentMode() == ATTACHMENT_MODE_NONE) - return FALSE; - - int newAttachment, oldAttachment; - double distance; - - // Is (x, y) on this object? If so, find the new attachment point - // the user has moved the point to - bool hit = HitTest(x, y, &newAttachment, &distance); - if (!hit) - return FALSE; - - EraseLinks(dc); - - if (to_move->GetTo() == this) - oldAttachment = to_move->GetAttachmentTo(); - else - oldAttachment = to_move->GetAttachmentFrom(); - - // The links in a new ordering. - wxList newOrdering; - - // First, add all links to the new list. - wxNode *node = m_lines.First(); - while (node) - { - newOrdering.Append(node->Data()); - node = node->Next(); - } - - // Delete the line object from the list of links; we're going to move - // it to another position in the list - newOrdering.DeleteObject(to_move); - - double old_x = (double) -99999.9; - double old_y = (double) -99999.9; - - node = newOrdering.First(); - bool found = FALSE; - - while (!found && node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - if ((line->GetTo() == this && oldAttachment == line->GetAttachmentTo()) || - (line->GetFrom() == this && oldAttachment == line->GetAttachmentFrom())) - { - double startX, startY, endX, endY; - double xp, yp; - line->GetEnds(&startX, &startY, &endX, &endY); - if (line->GetTo() == this) - { - xp = endX; - yp = endY; - } else - { - xp = startX; - yp = startY; - } - - wxRealPoint thisPoint(xp, yp); - wxRealPoint lastPoint(old_x, old_y); - wxRealPoint newPoint(x, y); - - if (AttachmentSortTest(newAttachment, newPoint, thisPoint) && AttachmentSortTest(newAttachment, lastPoint, newPoint)) - { - found = TRUE; - newOrdering.Insert(node, to_move); - } - - old_x = xp; - old_y = yp; - } - node = node->Next(); - } - - if (!found) - newOrdering.Append(to_move); - - GetEventHandler()->OnChangeAttachment(newAttachment, to_move, newOrdering); - - return TRUE; -} - -void wxShape::OnChangeAttachment(int attachment, wxLineShape* line, wxList& ordering) -{ - if (line->GetTo() == this) - line->SetAttachmentTo(attachment); - else - line->SetAttachmentFrom(attachment); - - ApplyAttachmentOrdering(ordering); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - MoveLinks(dc); - - if (!GetCanvas()->GetQuickEditMode()) GetCanvas()->Redraw(dc); -} - -// Reorders the lines according to the given list. -void wxShape::ApplyAttachmentOrdering(wxList& linesToSort) -{ - // This is a temporary store of all the lines. - wxList linesStore; - - wxNode *node = m_lines.First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - linesStore.Append(line); - node = node->Next();; - } - - m_lines.Clear(); - - node = linesToSort.First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - if (linesStore.Member(line)) - { - // Done this one - linesStore.DeleteObject(line); - m_lines.Append(line); - } - node = node->Next(); - } - - // Now add any lines that haven't been listed in linesToSort. - node = linesStore.First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - m_lines.Append(line); - node = node->Next(); - } -} - -// Reorders the lines coming into the node image at this attachment -// position, in the order in which they appear in linesToSort. -// Any remaining lines not in the list will be added to the end. -void wxShape::SortLines(int attachment, wxList& linesToSort) -{ - // This is a temporary store of all the lines at this attachment - // point. We'll tick them off as we've processed them. - wxList linesAtThisAttachment; - - wxNode *node = m_lines.First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - wxNode *next = node->Next(); - if ((line->GetTo() == this && line->GetAttachmentTo() == attachment) || - (line->GetFrom() == this && line->GetAttachmentFrom() == attachment)) - { - linesAtThisAttachment.Append(line); - delete node; - node = next; - } - else node = node->Next(); - } - - node = linesToSort.First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - if (linesAtThisAttachment.Member(line)) - { - // Done this one - linesAtThisAttachment.DeleteObject(line); - m_lines.Append(line); - } - node = node->Next(); - } - - // Now add any lines that haven't been listed in linesToSort. - node = linesAtThisAttachment.First(); - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - m_lines.Append(line); - node = node->Next(); - } -} - -void wxShape::OnHighlight(wxDC& dc) -{ -} - -void wxShape::OnLeftClick(double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_CLICK_LEFT) != OP_CLICK_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnLeftClick(x, y, keys, attachment); - } - return; - } -} - -void wxShape::OnRightClick(double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_CLICK_RIGHT) != OP_CLICK_RIGHT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnRightClick(x, y, keys, attachment); - } - return; - } -} - -double DragOffsetX = 0.0; -double DragOffsetY = 0.0; - -void wxShape::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnDragLeft(draw, x, y, keys, attachment); - } - return; - } - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - double xx, yy; - xx = x + DragOffsetX; - yy = y + DragOffsetY; - - m_canvas->Snap(&xx, &yy); -// m_xpos = xx; m_ypos = yy; - double w, h; - GetBoundingBoxMax(&w, &h); - GetEventHandler()->OnDrawOutline(dc, xx, yy, w, h); -} - -void wxShape::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnBeginDragLeft(x, y, keys, attachment); - } - return; - } - - DragOffsetX = m_xpos - x; - DragOffsetY = m_ypos - y; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - // New policy: don't erase shape until end of drag. -// Erase(dc); - - double xx, yy; - xx = x + DragOffsetX; - yy = y + DragOffsetY; - m_canvas->Snap(&xx, &yy); -// m_xpos = xx; m_ypos = yy; - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - double w, h; - GetBoundingBoxMax(&w, &h); - GetEventHandler()->OnDrawOutline(dc, xx, yy, w, h); - m_canvas->CaptureMouse(); -} - -void wxShape::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - m_canvas->ReleaseMouse(); - if ((m_sensitivity & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnEndDragLeft(x, y, keys, attachment); - } - return; - } - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxCOPY); - - double xx = x + DragOffsetX; - double yy = y + DragOffsetY; - m_canvas->Snap(&xx, &yy); -// canvas->Snap(&m_xpos, &m_ypos); - - // New policy: erase shape at end of drag. - Erase(dc); - - Move(dc, xx, yy); - if (m_canvas && !m_canvas->GetQuickEditMode()) m_canvas->Redraw(dc); -} - -void wxShape::OnDragRight(bool draw, double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_RIGHT) != OP_DRAG_RIGHT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnDragRight(draw, x, y, keys, attachment); - } - return; - } -} - -void wxShape::OnBeginDragRight(double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_RIGHT) != OP_DRAG_RIGHT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnBeginDragRight(x, y, keys, attachment); - } - return; - } -} - -void wxShape::OnEndDragRight(double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_RIGHT) != OP_DRAG_RIGHT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnEndDragRight(x, y, keys, attachment); - } - return; - } -} - -void wxShape::OnDrawOutline(wxDC& dc, double x, double y, double w, double h) -{ - double top_left_x = (double)(x - w/2.0); - double top_left_y = (double)(y - h/2.0); - double top_right_x = (double)(top_left_x + w); - double top_right_y = (double)top_left_y; - double bottom_left_x = (double)top_left_x; - double bottom_left_y = (double)(top_left_y + h); - double bottom_right_x = (double)top_right_x; - double bottom_right_y = (double)bottom_left_y; - - wxPoint points[5]; - points[0].x = WXROUND(top_left_x); points[0].y = WXROUND(top_left_y); - points[1].x = WXROUND(top_right_x); points[1].y = WXROUND(top_right_y); - points[2].x = WXROUND(bottom_right_x); points[2].y = WXROUND(bottom_right_y); - points[3].x = WXROUND(bottom_left_x); points[3].y = WXROUND(bottom_left_y); - points[4].x = WXROUND(top_left_x); points[4].y = WXROUND(top_left_y); - - dc.DrawLines(5, points); -} - -void wxShape::Attach(wxShapeCanvas *can) -{ - m_canvas = can; -} - -void wxShape::Detach() -{ - m_canvas = NULL; -} - -void wxShape::Move(wxDC& dc, double x, double y, bool display) -{ - double old_x = m_xpos; - double old_y = m_ypos; - - if (!GetEventHandler()->OnMovePre(dc, x, y, old_x, old_y, display)) - { -// m_xpos = old_x; -// m_ypos = old_y; - return; - } - - m_xpos = x; m_ypos = y; - - ResetControlPoints(); - - if (display) - Draw(dc); - - MoveLinks(dc); - - GetEventHandler()->OnMovePost(dc, x, y, old_x, old_y, display); -} - -void wxShape::MoveLinks(wxDC& dc) -{ - GetEventHandler()->OnMoveLinks(dc); -} - - -void wxShape::Draw(wxDC& dc) -{ - if (m_visible) - { - GetEventHandler()->OnDraw(dc); - GetEventHandler()->OnDrawContents(dc); - GetEventHandler()->OnDrawControlPoints(dc); - GetEventHandler()->OnDrawBranches(dc); - } -} - -void wxShape::Flash() -{ - if (GetCanvas()) - { - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - Draw(dc); - dc.SetLogicalFunction(wxCOPY); - Draw(dc); - } -} - -void wxShape::Show(bool show) -{ - m_visible = show; - wxNode *node = m_children.First(); - while (node) - { - wxShape *image = (wxShape *)node->Data(); - image->Show(show); - node = node->Next(); - } -} - -void wxShape::Erase(wxDC& dc) -{ - GetEventHandler()->OnErase(dc); - GetEventHandler()->OnEraseControlPoints(dc); - GetEventHandler()->OnDrawBranches(dc, TRUE); -} - -void wxShape::EraseContents(wxDC& dc) -{ - GetEventHandler()->OnEraseContents(dc); -} - -void wxShape::AddText(const wxString& string) -{ - wxNode *node = m_regions.First(); - if (!node) - return; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->ClearText(); - wxShapeTextLine *new_line = - new wxShapeTextLine(0.0, 0.0, string); - region->GetFormattedText().Append(new_line); - - m_formatted = FALSE; -} - -void wxShape::SetSize(double x, double y, bool recursive) -{ - SetAttachmentSize(x, y); - SetDefaultRegionSize(); -} - -void wxShape::SetAttachmentSize(double w, double h) -{ - double scaleX; - double scaleY; - double width, height; - GetBoundingBoxMin(&width, &height); - if (width == 0.0) - scaleX = 1.0; - else scaleX = w/width; - if (height == 0.0) - scaleY = 1.0; - else scaleY = h/height; - - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - point->m_x = (double)(point->m_x * scaleX); - point->m_y = (double)(point->m_y * scaleY); - node = node->Next(); - } -} - -// Add line FROM this object -void wxShape::AddLine(wxLineShape *line, wxShape *other, - int attachFrom, int attachTo, - // The line ordering - int positionFrom, int positionTo) -{ - if (positionFrom == -1) - { - if (!m_lines.Member(line)) - m_lines.Append(line); - } - else - { - // Don't preserve old ordering if we have new ordering instructions - m_lines.DeleteObject(line); - if (positionFrom < m_lines.Number()) - { - wxNode* node = m_lines.Nth(positionFrom); - m_lines.Insert(node, line); - } - else - m_lines.Append(line); - } - - if (positionTo == -1) - { - if (!other->m_lines.Member(line)) - other->m_lines.Append(line); - } - else - { - // Don't preserve old ordering if we have new ordering instructions - other->m_lines.DeleteObject(line); - if (positionTo < other->m_lines.Number()) - { - wxNode* node = other->m_lines.Nth(positionTo); - other->m_lines.Insert(node, line); - } - else - other->m_lines.Append(line); - } -#if 0 - // Wrong: doesn't preserve ordering of shape already linked - m_lines.DeleteObject(line); - other->m_lines.DeleteObject(line); - - if (positionFrom == -1) - m_lines.Append(line); - else - { - if (positionFrom < m_lines.Number()) - { - wxNode* node = m_lines.Nth(positionFrom); - m_lines.Insert(node, line); - } - else - m_lines.Append(line); - } - - if (positionTo == -1) - other->m_lines.Append(line); - else - { - if (positionTo < other->m_lines.Number()) - { - wxNode* node = other->m_lines.Nth(positionTo); - other->m_lines.Insert(node, line); - } - else - other->m_lines.Append(line); - } -#endif - - line->SetFrom(this); - line->SetTo(other); - line->SetAttachments(attachFrom, attachTo); -} - -void wxShape::RemoveLine(wxLineShape *line) -{ - if (line->GetFrom() == this) - line->GetTo()->m_lines.DeleteObject(line); - else - line->GetFrom()->m_lines.DeleteObject(line); - - m_lines.DeleteObject(line); -} - -#ifdef PROLOGIO -void wxShape::WriteAttributes(wxExpr *clause) -{ - clause->AddAttributeValueString("type", GetClassInfo()->GetClassName()); - clause->AddAttributeValue("id", m_id); - - if (m_pen) - { - int penWidth = m_pen->GetWidth(); - int penStyle = m_pen->GetStyle(); - if (penWidth != 1) - clause->AddAttributeValue("pen_width", (long)penWidth); - if (penStyle != wxSOLID) - clause->AddAttributeValue("pen_style", (long)penStyle); - - wxString penColour = wxTheColourDatabase->FindName(m_pen->GetColour()); - if (penColour == "") - { - wxString hex(oglColourToHex(m_pen->GetColour())); - hex = wxString("#") + hex; - clause->AddAttributeValueString("pen_colour", hex); - } - else if (penColour != "BLACK") - clause->AddAttributeValueString("pen_colour", penColour); - } - - if (m_brush) - { - wxString brushColour = wxTheColourDatabase->FindName(m_brush->GetColour()); - - if (brushColour == "") - { - wxString hex(oglColourToHex(m_brush->GetColour())); - hex = wxString("#") + hex; - clause->AddAttributeValueString("brush_colour", hex); - } - else if (brushColour != "WHITE") - clause->AddAttributeValueString("brush_colour", brushColour); - - if (m_brush->GetStyle() != wxSOLID) - clause->AddAttributeValue("brush_style", (long)m_brush->GetStyle()); - } - - // Output line ids - - int n_lines = m_lines.Number(); - if (n_lines > 0) - { - wxExpr *list = new wxExpr(wxExprList); - wxNode *node = m_lines.First(); - while (node) - { - wxShape *line = (wxShape *)node->Data(); - wxExpr *id_expr = new wxExpr(line->GetId()); - list->Append(id_expr); - node = node->Next(); - } - clause->AddAttributeValue("arcs", list); - } - - // Miscellaneous members - if (m_attachmentMode != 0) - clause->AddAttributeValue("use_attachments", (long)m_attachmentMode); - if (m_sensitivity != OP_ALL) - clause->AddAttributeValue("sensitivity", (long)m_sensitivity); - if (!m_spaceAttachments) - clause->AddAttributeValue("space_attachments", (long)m_spaceAttachments); - if (m_fixedWidth) - clause->AddAttributeValue("fixed_width", (long)m_fixedWidth); - if (m_fixedHeight) - clause->AddAttributeValue("fixed_height", (long)m_fixedHeight); - if (m_shadowMode != SHADOW_NONE) - clause->AddAttributeValue("shadow_mode", (long)m_shadowMode); - if (m_centreResize != TRUE) - clause->AddAttributeValue("centre_resize", (long)0); - clause->AddAttributeValue("maintain_aspect_ratio", (long) m_maintainAspectRatio); - if (m_highlighted != FALSE) - clause->AddAttributeValue("hilite", (long)m_highlighted); - - if (m_parent) // For composite objects - clause->AddAttributeValue("parent", (long)m_parent->GetId()); - - if (m_rotation != 0.0) - clause->AddAttributeValue("rotation", m_rotation); - - if (!this->IsKindOf(CLASSINFO(wxLineShape))) - { - clause->AddAttributeValue("neck_length", (long) m_branchNeckLength); - clause->AddAttributeValue("stem_length", (long) m_branchStemLength); - clause->AddAttributeValue("branch_spacing", (long) m_branchSpacing); - clause->AddAttributeValue("branch_style", (long) m_branchStyle); - } - - // Write user-defined attachment points, if any - if (m_attachmentPoints.Number() > 0) - { - wxExpr *attachmentList = new wxExpr(wxExprList); - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - wxExpr *pointExpr = new wxExpr(wxExprList); - pointExpr->Append(new wxExpr((long)point->m_id)); - pointExpr->Append(new wxExpr(point->m_x)); - pointExpr->Append(new wxExpr(point->m_y)); - attachmentList->Append(pointExpr); - node = node->Next(); - } - clause->AddAttributeValue("user_attachments", attachmentList); - } - - // Write text regions - WriteRegions(clause); -} - -void wxShape::WriteRegions(wxExpr *clause) -{ - // Output regions as region1 = (...), region2 = (...), etc - // and formatted text as text1 = (...), text2 = (...) etc. - int regionNo = 1; - char regionNameBuf[20]; - char textNameBuf[20]; - wxNode *node = m_regions.First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - sprintf(regionNameBuf, "region%d", regionNo); - sprintf(textNameBuf, "text%d", regionNo); - - // Original text and region attributes: - // region1 = (regionName regionText x y width height minWidth minHeight proportionX proportionY - // formatMode fontSize fontFamily fontStyle fontWeight textColour) - wxExpr *regionExpr = new wxExpr(wxExprList); - regionExpr->Append(new wxExpr(wxExprString, region->m_regionName)); - regionExpr->Append(new wxExpr(wxExprString, region->m_regionText)); - - regionExpr->Append(new wxExpr(region->m_x)); - regionExpr->Append(new wxExpr(region->m_y)); - regionExpr->Append(new wxExpr(region->GetWidth())); - regionExpr->Append(new wxExpr(region->GetHeight())); - - regionExpr->Append(new wxExpr(region->m_minWidth)); - regionExpr->Append(new wxExpr(region->m_minHeight)); - regionExpr->Append(new wxExpr(region->m_regionProportionX)); - regionExpr->Append(new wxExpr(region->m_regionProportionY)); - - regionExpr->Append(new wxExpr((long)region->m_formatMode)); - - regionExpr->Append(new wxExpr((long)(region->m_font ? region->m_font->GetPointSize() : 10))); - regionExpr->Append(new wxExpr((long)(region->m_font ? region->m_font->GetFamily() : wxDEFAULT))); - regionExpr->Append(new wxExpr((long)(region->m_font ? region->m_font->GetStyle() : wxDEFAULT))); - regionExpr->Append(new wxExpr((long)(region->m_font ? region->m_font->GetWeight() : wxNORMAL))); - regionExpr->Append(new wxExpr(wxExprString, region->m_textColour)); - - // New members for pen colour/style - regionExpr->Append(new wxExpr(wxExprString, region->m_penColour)); - regionExpr->Append(new wxExpr((long)region->m_penStyle)); - - // Formatted text: - // text1 = ((x y string) (x y string) ...) - wxExpr *textExpr = new wxExpr(wxExprList); - - wxNode *textNode = region->m_formattedText.First(); - while (textNode) - { - wxShapeTextLine *line = (wxShapeTextLine *)textNode->Data(); - wxExpr *list2 = new wxExpr(wxExprList); - list2->Append(new wxExpr(line->GetX())); - list2->Append(new wxExpr(line->GetY())); - list2->Append(new wxExpr(wxExprString, line->GetText())); - textExpr->Append(list2); - textNode = textNode->Next(); - } - - // Now add both attributes to the clause - clause->AddAttributeValue(regionNameBuf, regionExpr); - clause->AddAttributeValue(textNameBuf, textExpr); - - node = node->Next(); - regionNo ++; - } -} - -void wxShape::ReadAttributes(wxExpr *clause) -{ - clause->GetAttributeValue("id", m_id); - RegisterId(m_id); - - clause->GetAttributeValue("x", m_xpos); - clause->GetAttributeValue("y", m_ypos); - - // Input text strings (FOR COMPATIBILITY WITH OLD FILES ONLY. SEE REGION CODE BELOW.) - ClearText(); - wxExpr *strings = clause->AttributeValue("text"); - if (strings && strings->Type() == wxExprList) - { - m_formatted = TRUE; // Assume text is formatted unless we prove otherwise - wxExpr *node = strings->value.first; - while (node) - { - wxExpr *string_expr = node; - double the_x = 0.0; - double the_y = 0.0; - wxString the_string(""); - - // string_expr can either be a string, or a list of - // 3 elements: x, y, and string. - if (string_expr->Type() == wxExprString) - { - the_string = string_expr->StringValue(); - m_formatted = FALSE; - } - else if (string_expr->Type() == wxExprList) - { - wxExpr *first = string_expr->value.first; - wxExpr *second = first ? first->next : (wxExpr*) NULL; - wxExpr *third = second ? second->next : (wxExpr*) NULL; - - if (first && second && third && - (first->Type() == wxExprReal || first->Type() == wxExprInteger) && - (second->Type() == wxExprReal || second->Type() == wxExprInteger) && - third->Type() == wxExprString) - { - if (first->Type() == wxExprReal) - the_x = first->RealValue(); - else the_x = (double)first->IntegerValue(); - - if (second->Type() == wxExprReal) - the_y = second->RealValue(); - else the_y = (double)second->IntegerValue(); - - the_string = third->StringValue(); - } - } - wxShapeTextLine *line = - new wxShapeTextLine(the_x, the_y, (char*) (const char*) the_string); - m_text.Append(line); - - node = node->next; - } - } - - wxString pen_string = ""; - wxString brush_string = ""; - int pen_width = 1; - int pen_style = wxSOLID; - int brush_style = wxSOLID; - m_attachmentMode = ATTACHMENT_MODE_NONE; - - clause->GetAttributeValue("pen_colour", pen_string); - clause->GetAttributeValue("text_colour", m_textColourName); - - SetTextColour(m_textColourName); - - clause->GetAttributeValue("region_name", m_regionName); - - clause->GetAttributeValue("brush_colour", brush_string); - clause->GetAttributeValue("pen_width", pen_width); - clause->GetAttributeValue("pen_style", pen_style); - clause->GetAttributeValue("brush_style", brush_style); - - int iVal = (int) m_attachmentMode; - clause->GetAttributeValue("use_attachments", iVal); - m_attachmentMode = iVal; - - clause->GetAttributeValue("sensitivity", m_sensitivity); - - iVal = (int) m_spaceAttachments; - clause->GetAttributeValue("space_attachments", iVal); - m_spaceAttachments = (iVal != 0); - - iVal = (int) m_fixedWidth; - clause->GetAttributeValue("fixed_width", iVal); - m_fixedWidth = (iVal != 0); - - iVal = (int) m_fixedHeight; - clause->GetAttributeValue("fixed_height", iVal); - m_fixedHeight = (iVal != 0); - - clause->GetAttributeValue("format_mode", m_formatMode); - clause->GetAttributeValue("shadow_mode", m_shadowMode); - - iVal = m_branchNeckLength; - clause->GetAttributeValue("neck_length", iVal); - m_branchNeckLength = iVal; - - iVal = m_branchStemLength; - clause->GetAttributeValue("stem_length", iVal); - m_branchStemLength = iVal; - - iVal = m_branchSpacing; - clause->GetAttributeValue("branch_spacing", iVal); - m_branchSpacing = iVal; - - clause->GetAttributeValue("branch_style", m_branchStyle); - - iVal = (int) m_centreResize; - clause->GetAttributeValue("centre_resize", iVal); - m_centreResize = (iVal != 0); - - iVal = (int) m_maintainAspectRatio; - clause->GetAttributeValue("maintain_aspect_ratio", iVal); - m_maintainAspectRatio = (iVal != 0); - - iVal = (int) m_highlighted; - clause->GetAttributeValue("hilite", iVal); - m_highlighted = (iVal != 0); - - clause->GetAttributeValue("rotation", m_rotation); - - if (pen_string == "") - pen_string = "BLACK"; - if (brush_string == "") - brush_string = "WHITE"; - - if (pen_string.GetChar(0) == '#') - { - wxColour col(oglHexToColour(pen_string.After('#'))); - m_pen = wxThePenList->FindOrCreatePen(col, pen_width, pen_style); - } - else - m_pen = wxThePenList->FindOrCreatePen(pen_string, pen_width, pen_style); - - if (!m_pen) - m_pen = wxBLACK_PEN; - - if (brush_string.GetChar(0) == '#') - { - wxColour col(oglHexToColour(brush_string.After('#'))); - m_brush = wxTheBrushList->FindOrCreateBrush(col, brush_style); - } - else - m_brush = wxTheBrushList->FindOrCreateBrush(brush_string, brush_style); - - if (!m_brush) - m_brush = wxWHITE_BRUSH; - - int point_size = 10; - clause->GetAttributeValue("point_size", point_size); - SetFont(oglMatchFont(point_size)); - - // Read user-defined attachment points, if any - wxExpr *attachmentList = clause->AttributeValue("user_attachments"); - if (attachmentList) - { - wxExpr *pointExpr = attachmentList->GetFirst(); - while (pointExpr) - { - wxExpr *idExpr = pointExpr->Nth(0); - wxExpr *xExpr = pointExpr->Nth(1); - wxExpr *yExpr = pointExpr->Nth(2); - if (idExpr && xExpr && yExpr) - { - wxAttachmentPoint *point = new wxAttachmentPoint; - point->m_id = (int)idExpr->IntegerValue(); - point->m_x = xExpr->RealValue(); - point->m_y = yExpr->RealValue(); - m_attachmentPoints.Append((wxObject *)point); - } - pointExpr = pointExpr->GetNext(); - } - } - - // Read text regions - ReadRegions(clause); -} - -void wxShape::ReadRegions(wxExpr *clause) -{ - ClearRegions(); - - // region1 = (regionName regionText x y width height minWidth minHeight proportionX proportionY - // formatMode fontSize fontFamily fontStyle fontWeight textColour) - int regionNo = 1; - char regionNameBuf[20]; - char textNameBuf[20]; - - wxExpr *regionExpr = NULL; - wxExpr *textExpr = NULL; - sprintf(regionNameBuf, "region%d", regionNo); - sprintf(textNameBuf, "text%d", regionNo); - - m_formatted = TRUE; // Assume text is formatted unless we prove otherwise - - while ((regionExpr = clause->AttributeValue(regionNameBuf))) - { - /* - * Get the region information - * - */ - - wxString regionName(""); - wxString regionText(""); - double x = 0.0; - double y = 0.0; - double width = 0.0; - double height = 0.0; - double minWidth = 5.0; - double minHeight = 5.0; - double m_regionProportionX = -1.0; - double m_regionProportionY = -1.0; - int formatMode = FORMAT_NONE; - int fontSize = 10; - int fontFamily = wxSWISS; - int fontStyle = wxNORMAL; - int fontWeight = wxNORMAL; - wxString regionTextColour(""); - wxString penColour(""); - int penStyle = wxSOLID; - - if (regionExpr->Type() == wxExprList) - { - wxExpr *nameExpr = regionExpr->Nth(0); - wxExpr *textExpr = regionExpr->Nth(1); - wxExpr *xExpr = regionExpr->Nth(2); - wxExpr *yExpr = regionExpr->Nth(3); - wxExpr *widthExpr = regionExpr->Nth(4); - wxExpr *heightExpr = regionExpr->Nth(5); - wxExpr *minWidthExpr = regionExpr->Nth(6); - wxExpr *minHeightExpr = regionExpr->Nth(7); - wxExpr *propXExpr = regionExpr->Nth(8); - wxExpr *propYExpr = regionExpr->Nth(9); - wxExpr *formatExpr = regionExpr->Nth(10); - wxExpr *sizeExpr = regionExpr->Nth(11); - wxExpr *familyExpr = regionExpr->Nth(12); - wxExpr *styleExpr = regionExpr->Nth(13); - wxExpr *weightExpr = regionExpr->Nth(14); - wxExpr *colourExpr = regionExpr->Nth(15); - wxExpr *penColourExpr = regionExpr->Nth(16); - wxExpr *penStyleExpr = regionExpr->Nth(17); - - regionName = nameExpr->StringValue(); - regionText = textExpr->StringValue(); - - x = xExpr->RealValue(); - y = yExpr->RealValue(); - - width = widthExpr->RealValue(); - height = heightExpr->RealValue(); - - minWidth = minWidthExpr->RealValue(); - minHeight = minHeightExpr->RealValue(); - - m_regionProportionX = propXExpr->RealValue(); - m_regionProportionY = propYExpr->RealValue(); - - formatMode = (int) formatExpr->IntegerValue(); - fontSize = (int)sizeExpr->IntegerValue(); - fontFamily = (int)familyExpr->IntegerValue(); - fontStyle = (int)styleExpr->IntegerValue(); - fontWeight = (int)weightExpr->IntegerValue(); - - if (colourExpr) - { - regionTextColour = colourExpr->StringValue(); - } - else - regionTextColour = "BLACK"; - - if (penColourExpr) - penColour = penColourExpr->StringValue(); - if (penStyleExpr) - penStyle = (int)penStyleExpr->IntegerValue(); - } - wxFont *font = wxTheFontList->FindOrCreateFont(fontSize, fontFamily, fontStyle, fontWeight); - - wxShapeRegion *region = new wxShapeRegion; - region->SetProportions(m_regionProportionX, m_regionProportionY); - region->SetFont(font); - region->SetSize(width, height); - region->SetPosition(x, y); - region->SetMinSize(minWidth, minHeight); - region->SetFormatMode(formatMode); - region->SetPenStyle(penStyle); - if (penColour != "") - region->SetPenColour(penColour); - - region->m_textColour = regionTextColour; - region->m_regionText = regionText; - region->m_regionName = regionName; - - m_regions.Append(region); - - /* - * Get the formatted text strings - * - */ - textExpr = clause->AttributeValue(textNameBuf); - if (textExpr && (textExpr->Type() == wxExprList)) - { - wxExpr *node = textExpr->value.first; - while (node) - { - wxExpr *string_expr = node; - double the_x = 0.0; - double the_y = 0.0; - wxString the_string(""); - - // string_expr can either be a string, or a list of - // 3 elements: x, y, and string. - if (string_expr->Type() == wxExprString) - { - the_string = string_expr->StringValue(); - m_formatted = FALSE; - } - else if (string_expr->Type() == wxExprList) - { - wxExpr *first = string_expr->value.first; - wxExpr *second = first ? first->next : (wxExpr*) NULL; - wxExpr *third = second ? second->next : (wxExpr*) NULL; - - if (first && second && third && - (first->Type() == wxExprReal || first->Type() == wxExprInteger) && - (second->Type() == wxExprReal || second->Type() == wxExprInteger) && - third->Type() == wxExprString) - { - if (first->Type() == wxExprReal) - the_x = first->RealValue(); - else the_x = (double)first->IntegerValue(); - - if (second->Type() == wxExprReal) - the_y = second->RealValue(); - else the_y = (double)second->IntegerValue(); - - the_string = third->StringValue(); - } - } - if (the_string) - { - wxShapeTextLine *line = - new wxShapeTextLine(the_x, the_y, (char*) (const char*) the_string); - region->m_formattedText.Append(line); - } - node = node->next; - } - } - - regionNo ++; - sprintf(regionNameBuf, "region%d", regionNo); - sprintf(textNameBuf, "text%d", regionNo); - } - - // Compatibility: check for no regions (old file). - // Lines and divided rectangles must deal with this compatibility - // theirselves. Composites _may_ not have any regions anyway. - if ((m_regions.Number() == 0) && - !this->IsKindOf(CLASSINFO(wxLineShape)) && !this->IsKindOf(CLASSINFO(wxDividedShape)) && - !this->IsKindOf(CLASSINFO(wxCompositeShape))) - { - wxShapeRegion *newRegion = new wxShapeRegion; - newRegion->SetName("0"); - m_regions.Append((wxObject *)newRegion); - if (m_text.Number() > 0) - { - newRegion->ClearText(); - wxNode *node = m_text.First(); - while (node) - { - wxShapeTextLine *textLine = (wxShapeTextLine *)node->Data(); - wxNode *next = node->Next(); - newRegion->GetFormattedText().Append((wxObject *)textLine); - delete node; - node = next; - } - } - } -} - -#endif - -void wxShape::Copy(wxShape& copy) -{ - copy.m_id = m_id; - copy.m_xpos = m_xpos; - copy.m_ypos = m_ypos; - copy.m_pen = m_pen; - copy.m_brush = m_brush; - copy.m_textColour = m_textColour; - copy.m_centreResize = m_centreResize; - copy.m_maintainAspectRatio = m_maintainAspectRatio; - copy.m_attachmentMode = m_attachmentMode; - copy.m_spaceAttachments = m_spaceAttachments; - copy.m_highlighted = m_highlighted; - copy.m_rotation = m_rotation; - copy.m_textColourName = m_textColourName; - copy.m_regionName = m_regionName; - - copy.m_sensitivity = m_sensitivity; - copy.m_draggable = m_draggable; - copy.m_fixedWidth = m_fixedWidth; - copy.m_fixedHeight = m_fixedHeight; - copy.m_formatMode = m_formatMode; - copy.m_drawHandles = m_drawHandles; - - copy.m_visible = m_visible; - copy.m_shadowMode = m_shadowMode; - copy.m_shadowOffsetX = m_shadowOffsetX; - copy.m_shadowOffsetY = m_shadowOffsetY; - copy.m_shadowBrush = m_shadowBrush; - - copy.m_branchNeckLength = m_branchNeckLength; - copy.m_branchStemLength = m_branchStemLength; - copy.m_branchSpacing = m_branchSpacing; - - // Copy text regions - copy.ClearRegions(); - wxNode *node = m_regions.First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - wxShapeRegion *newRegion = new wxShapeRegion(*region); - copy.m_regions.Append(newRegion); - node = node->Next(); - } - - // Copy attachments - copy.ClearAttachments(); - node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - wxAttachmentPoint *newPoint = new wxAttachmentPoint; - newPoint->m_id = point->m_id; - newPoint->m_x = point->m_x; - newPoint->m_y = point->m_y; - copy.m_attachmentPoints.Append((wxObject *)newPoint); - node = node->Next(); - } - - // Copy lines - copy.m_lines.Clear(); - node = m_lines.First(); - while (node) - { - wxLineShape* line = (wxLineShape*) node->Data(); - copy.m_lines.Append(line); - node = node->Next(); - } -} - -// Create and return a new, fully copied object. -wxShape *wxShape::CreateNewCopy(bool resetMapping, bool recompute) -{ - if (resetMapping) - oglObjectCopyMapping.Clear(); - - wxShape* newObject = (wxShape*) GetClassInfo()->CreateObject(); - - wxASSERT( (newObject != NULL) ); - wxASSERT( (newObject->IsKindOf(CLASSINFO(wxShape))) ); - - Copy(*newObject); - - if (GetEventHandler() != this) - { - wxShapeEvtHandler* newHandler = GetEventHandler()->CreateNewCopy(); - newObject->SetEventHandler(newHandler); - newObject->SetPreviousHandler(NULL); - newHandler->SetPreviousHandler(newObject); - newHandler->SetShape(newObject); - } - - if (recompute) - newObject->Recompute(); - return newObject; -} - -// Does the copying for this object, including copying event -// handler data if any. Calls the virtual Copy function. -void wxShape::CopyWithHandler(wxShape& copy) -{ - Copy(copy); - - if (GetEventHandler() != this) - { - wxASSERT( copy.GetEventHandler() != NULL ); - wxASSERT( copy.GetEventHandler() != (©) ); - wxASSERT( GetEventHandler()->GetClassInfo() == copy.GetEventHandler()->GetClassInfo() ); - GetEventHandler()->CopyData(* (copy.GetEventHandler())); - } -} - - -// Default - make 6 control points -void wxShape::MakeControlPoints() -{ - double maxX, maxY, minX, minY; - - GetBoundingBoxMax(&maxX, &maxY); - GetBoundingBoxMin(&minX, &minY); - - double widthMin = (double)(minX + CONTROL_POINT_SIZE + 2); - double heightMin = (double)(minY + CONTROL_POINT_SIZE + 2); - - // Offsets from main object - double top = (double)(- (heightMin / 2.0)); - double bottom = (double)(heightMin / 2.0 + (maxY - minY)); - double left = (double)(- (widthMin / 2.0)); - double right = (double)(widthMin / 2.0 + (maxX - minX)); - - wxControlPoint *control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, top, - CONTROL_POINT_DIAGONAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, 0, top, - CONTROL_POINT_VERTICAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, top, - CONTROL_POINT_DIAGONAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, 0, - CONTROL_POINT_HORIZONTAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, right, bottom, - CONTROL_POINT_DIAGONAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, 0, bottom, - CONTROL_POINT_VERTICAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, bottom, - CONTROL_POINT_DIAGONAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - control = new wxControlPoint(m_canvas, this, CONTROL_POINT_SIZE, left, 0, - CONTROL_POINT_HORIZONTAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - -} - -void wxShape::MakeMandatoryControlPoints() -{ - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->MakeMandatoryControlPoints(); - node = node->Next(); - } -} - -void wxShape::ResetMandatoryControlPoints() -{ - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->ResetMandatoryControlPoints(); - node = node->Next(); - } -} - -void wxShape::ResetControlPoints() -{ - ResetMandatoryControlPoints(); - - if (m_controlPoints.Number() < 1) - return; - - double maxX, maxY, minX, minY; - - GetBoundingBoxMax(&maxX, &maxY); - GetBoundingBoxMin(&minX, &minY); - - double widthMin = (double)(minX + CONTROL_POINT_SIZE + 2); - double heightMin = (double)(minY + CONTROL_POINT_SIZE + 2); - - // Offsets from main object - double top = (double)(- (heightMin / 2.0)); - double bottom = (double)(heightMin / 2.0 + (maxY - minY)); - double left = (double)(- (widthMin / 2.0)); - double right = (double)(widthMin / 2.0 + (maxX - minX)); - - wxNode *node = m_controlPoints.First(); - wxControlPoint *control = (wxControlPoint *)node->Data(); - control->m_xoffset = left; control->m_yoffset = top; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = 0; control->m_yoffset = top; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = right; control->m_yoffset = top; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = right; control->m_yoffset = 0; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = right; control->m_yoffset = bottom; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = 0; control->m_yoffset = bottom; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = left; control->m_yoffset = bottom; - - node = node->Next(); control = (wxControlPoint *)node->Data(); - control->m_xoffset = left; control->m_yoffset = 0; -} - -void wxShape::DeleteControlPoints(wxDC *dc) -{ - wxNode *node = m_controlPoints.First(); - while (node) - { - wxControlPoint *control = (wxControlPoint *)node->Data(); - if (dc) - control->GetEventHandler()->OnErase(*dc); - m_canvas->RemoveShape(control); - delete control; - delete node; - node = m_controlPoints.First(); - } - // Children of divisions are contained objects, - // so stop here - if (!IsKindOf(CLASSINFO(wxDivisionShape))) - { - node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->DeleteControlPoints(dc); - node = node->Next(); - } - } -} - -void wxShape::OnDrawControlPoints(wxDC& dc) -{ - if (!m_drawHandles) - return; - - dc.SetBrush(* wxBLACK_BRUSH); - dc.SetPen(* wxBLACK_PEN); - - wxNode *node = m_controlPoints.First(); - while (node) - { - wxControlPoint *control = (wxControlPoint *)node->Data(); - control->Draw(dc); - node = node->Next(); - } - // Children of divisions are contained objects, - // so stop here. - // This test bypasses the type facility for speed - // (critical when drawing) - if (!IsKindOf(CLASSINFO(wxDivisionShape))) - { - node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->GetEventHandler()->OnDrawControlPoints(dc); - node = node->Next(); - } - } -} - -void wxShape::OnEraseControlPoints(wxDC& dc) -{ - wxNode *node = m_controlPoints.First(); - while (node) - { - wxControlPoint *control = (wxControlPoint *)node->Data(); - control->Erase(dc); - node = node->Next(); - } - if (!IsKindOf(CLASSINFO(wxDivisionShape))) - { - node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->GetEventHandler()->OnEraseControlPoints(dc); - node = node->Next(); - } - } -} - -void wxShape::Select(bool select, wxDC* dc) -{ - m_selected = select; - if (select) - { - MakeControlPoints(); - // Children of divisions are contained objects, - // so stop here - if (!IsKindOf(CLASSINFO(wxDivisionShape))) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->MakeMandatoryControlPoints(); - node = node->Next(); - } - } - if (dc) - GetEventHandler()->OnDrawControlPoints(*dc); - } - if (!select) - { - DeleteControlPoints(dc); - if (!IsKindOf(CLASSINFO(wxDivisionShape))) - { - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - child->DeleteControlPoints(dc); - node = node->Next(); - } - } - } -} - -bool wxShape::Selected() const -{ - return m_selected; -} - -bool wxShape::AncestorSelected() const -{ - if (m_selected) return TRUE; - if (!GetParent()) - return FALSE; - else - return GetParent()->AncestorSelected(); -} - -int wxShape::GetNumberOfAttachments() const -{ - // Should return the MAXIMUM attachment point id here, - // so higher-level functions can iterate through all attachments, - // even if they're not contiguous. - if (m_attachmentPoints.Number() == 0) - return 4; - else - { - int maxN = 3; - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - if (point->m_id > maxN) - maxN = point->m_id; - node = node->Next(); - } - return maxN+1;; - } -} - -bool wxShape::AttachmentIsValid(int attachment) const -{ - if (m_attachmentPoints.Number() == 0) - { - return ((attachment >= 0) && (attachment < 4)) ; - } - - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - if (point->m_id == attachment) - return TRUE; - node = node->Next(); - } - return FALSE; -} - -bool wxShape::GetAttachmentPosition(int attachment, double *x, double *y, - int nth, int no_arcs, wxLineShape *line) -{ - if (m_attachmentMode == ATTACHMENT_MODE_NONE) - { - *x = m_xpos; *y = m_ypos; - return TRUE; - } - else if (m_attachmentMode == ATTACHMENT_MODE_BRANCHING) - { - wxRealPoint pt, stemPt; - GetBranchingAttachmentPoint(attachment, nth, pt, stemPt); - *x = pt.x; - *y = pt.y; - return TRUE; - } - else if (m_attachmentMode == ATTACHMENT_MODE_EDGE) - { - if (m_attachmentPoints.Number() > 0) - { - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - if (point->m_id == attachment) - { - *x = (double)(m_xpos + point->m_x); - *y = (double)(m_ypos + point->m_y); - return TRUE; - } - node = node->Next(); - } - *x = m_xpos; *y = m_ypos; - return FALSE; - } - else - { - // Assume is rectangular - double w, h; - GetBoundingBoxMax(&w, &h); - double top = (double)(m_ypos + h/2.0); - double bottom = (double)(m_ypos - h/2.0); - double left = (double)(m_xpos - w/2.0); - double right = (double)(m_xpos + w/2.0); - - bool isEnd = (line && line->IsEnd(this)); - - int physicalAttachment = LogicalToPhysicalAttachment(attachment); - - // Simplified code - switch (physicalAttachment) - { - case 0: - { - wxRealPoint pt = CalcSimpleAttachment(wxRealPoint(left, bottom), wxRealPoint(right, bottom), - nth, no_arcs, line); - - *x = pt.x; *y = pt.y; - break; - } - case 1: - { - wxRealPoint pt = CalcSimpleAttachment(wxRealPoint(right, bottom), wxRealPoint(right, top), - nth, no_arcs, line); - - *x = pt.x; *y = pt.y; - break; - } - case 2: - { - wxRealPoint pt = CalcSimpleAttachment(wxRealPoint(left, top), wxRealPoint(right, top), - nth, no_arcs, line); - - *x = pt.x; *y = pt.y; - break; - } - case 3: - { - wxRealPoint pt = CalcSimpleAttachment(wxRealPoint(left, bottom), wxRealPoint(left, top), - nth, no_arcs, line); - - *x = pt.x; *y = pt.y; - break; - } - default: - { - return FALSE; - break; - } - } - return TRUE; - } - } - return FALSE; -} - -void wxShape::GetBoundingBoxMax(double *w, double *h) -{ - double ww, hh; - GetBoundingBoxMin(&ww, &hh); - if (m_shadowMode != SHADOW_NONE) - { - ww += m_shadowOffsetX; - hh += m_shadowOffsetY; - } - *w = ww; - *h = hh; -} - -// Returns TRUE if image is a descendant of this composite -bool wxShape::HasDescendant(wxShape *image) -{ - if (image == this) - return TRUE; - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - bool ans = child->HasDescendant(image); - if (ans) - return TRUE; - node = node->Next(); - } - return FALSE; -} - -// Clears points from a list of wxRealPoints, and clears list -void wxShape::ClearPointList(wxList& list) -{ - wxNode* node = list.First(); - while (node) - { - wxRealPoint* pt = (wxRealPoint*) node->Data(); - delete pt; - - node = node->Next(); - } - list.Clear(); -} - -// Assuming the attachment lies along a vertical or horizontal line, -// calculate the position on that point. -wxRealPoint wxShape::CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2, - int nth, int noArcs, wxLineShape* line) -{ - bool isEnd = (line && line->IsEnd(this)); - - // Are we horizontal or vertical? - bool isHorizontal = (oglRoughlyEqual(pt1.y, pt2.y) == TRUE); - - double x, y; - - if (isHorizontal) - { - wxRealPoint firstPoint, secondPoint; - if (pt1.x > pt2.x) - { - firstPoint = pt2; - secondPoint = pt1; - } - else - { - firstPoint = pt1; - secondPoint = pt2; - } - - if (m_spaceAttachments) - { - if (line && (line->GetAlignmentType(isEnd) == LINE_ALIGNMENT_TO_NEXT_HANDLE)) - { - // Align line according to the next handle along - wxRealPoint *point = line->GetNextControlPoint(this); - if (point->x < firstPoint.x) - x = firstPoint.x; - else if (point->x > secondPoint.x) - x = secondPoint.x; - else - x = point->x; - } - else - x = firstPoint.x + (nth + 1)*(secondPoint.x - firstPoint.x)/(noArcs + 1); - } - else x = (secondPoint.x - firstPoint.x)/2.0; // Midpoint - - y = pt1.y; - } - else - { - wxASSERT( oglRoughlyEqual(pt1.x, pt2.x) == TRUE ); - - wxRealPoint firstPoint, secondPoint; - if (pt1.y > pt2.y) - { - firstPoint = pt2; - secondPoint = pt1; - } - else - { - firstPoint = pt1; - secondPoint = pt2; - } - - if (m_spaceAttachments) - { - if (line && (line->GetAlignmentType(isEnd) == LINE_ALIGNMENT_TO_NEXT_HANDLE)) - { - // Align line according to the next handle along - wxRealPoint *point = line->GetNextControlPoint(this); - if (point->y < firstPoint.y) - y = firstPoint.y; - else if (point->y > secondPoint.y) - y = secondPoint.y; - else - y = point->y; - } - else - y = firstPoint.y + (nth + 1)*(secondPoint.y - firstPoint.y)/(noArcs + 1); - } - else y = (secondPoint.y - firstPoint.y)/2.0; // Midpoint - - x = pt1.x; - } - - return wxRealPoint(x, y); -} - -// Return the zero-based position in m_lines of line. -int wxShape::GetLinePosition(wxLineShape* line) -{ - int i = 0; - for (i = 0; i < m_lines.Number(); i++) - if ((wxLineShape*) (m_lines.Nth(i)->Data()) == line) - return i; - - return 0; -} - -// -// |________| -// | <- root -// | <- neck -// shoulder1 ->---------<- shoulder2 -// | | | | | -// <- branching attachment point N-1 - -// This function gets information about where branching connections go. -// Returns FALSE if there are no lines at this attachment. -bool wxShape::GetBranchingAttachmentInfo(int attachment, wxRealPoint& root, wxRealPoint& neck, - wxRealPoint& shoulder1, wxRealPoint& shoulder2) -{ - int physicalAttachment = LogicalToPhysicalAttachment(attachment); - - // Number of lines at this attachment. - int lineCount = GetAttachmentLineCount(attachment); - - if (lineCount == 0) - return FALSE; - - int totalBranchLength = m_branchSpacing * (lineCount - 1); - - root = GetBranchingAttachmentRoot(attachment); - - // Assume that we have attachment points 0 to 3: top, right, bottom, left. - switch (physicalAttachment) - { - case 0: - { - neck.x = GetX(); - neck.y = root.y - m_branchNeckLength; - - shoulder1.x = root.x - (totalBranchLength/2.0) ; - shoulder2.x = root.x + (totalBranchLength/2.0) ; - - shoulder1.y = neck.y; - shoulder2.y = neck.y; - break; - } - case 1: - { - neck.x = root.x + m_branchNeckLength; - neck.y = root.y; - - shoulder1.x = neck.x ; - shoulder2.x = neck.x ; - - shoulder1.y = neck.y - (totalBranchLength/2.0) ; - shoulder2.y = neck.y + (totalBranchLength/2.0) ; - break; - } - case 2: - { - neck.x = GetX(); - neck.y = root.y + m_branchNeckLength; - - shoulder1.x = root.x - (totalBranchLength/2.0) ; - shoulder2.x = root.x + (totalBranchLength/2.0) ; - - shoulder1.y = neck.y; - shoulder2.y = neck.y; - break; - } - case 3: - { - neck.x = root.x - m_branchNeckLength; - neck.y = root.y ; - - shoulder1.x = neck.x ; - shoulder2.x = neck.x ; - - shoulder1.y = neck.y - (totalBranchLength/2.0) ; - shoulder2.y = neck.y + (totalBranchLength/2.0) ; - break; - } - default: - { - wxFAIL_MSG( "Unrecognised attachment point in GetBranchingAttachmentInfo." ); - break; - } - } - return TRUE; -} - -// n is the number of the adjoining line, from 0 to N-1 where N is the number of lines -// at this attachment point. -// Get the attachment point where the arc joins the stem, and also the point where the -// the stem meets the shoulder. -bool wxShape::GetBranchingAttachmentPoint(int attachment, int n, wxRealPoint& pt, wxRealPoint& stemPt) -{ - int physicalAttachment = LogicalToPhysicalAttachment(attachment); - - wxRealPoint root, neck, shoulder1, shoulder2; - GetBranchingAttachmentInfo(attachment, root, neck, shoulder1, shoulder2); - - // Assume that we have attachment points 0 to 3: top, right, bottom, left. - switch (physicalAttachment) - { - case 0: - { - pt.y = neck.y - m_branchStemLength; - pt.x = shoulder1.x + n*m_branchSpacing; - - stemPt.x = pt.x; - stemPt.y = neck.y; - break; - } - case 2: - { - pt.y = neck.y + m_branchStemLength; - pt.x = shoulder1.x + n*m_branchSpacing; - - stemPt.x = pt.x; - stemPt.y = neck.y; - break; - } - case 1: - { - pt.x = neck.x + m_branchStemLength; - pt.y = shoulder1.y + n*m_branchSpacing; - - stemPt.x = neck.x; - stemPt.y = pt.y; - break; - } - case 3: - { - pt.x = neck.x - m_branchStemLength; - pt.y = shoulder1.y + n*m_branchSpacing; - - stemPt.x = neck.x; - stemPt.y = pt.y; - break; - } - default: - { - wxFAIL_MSG( "Unrecognised attachment point in GetBranchingAttachmentPoint." ); - break; - } - } - - return TRUE; -} - -// Get the number of lines at this attachment position. -int wxShape::GetAttachmentLineCount(int attachment) const -{ - int count = 0; - wxNode* node = m_lines.First(); - while (node) - { - wxLineShape* lineShape = (wxLineShape*) node->Data(); - if ((lineShape->GetFrom() == this) && (lineShape->GetAttachmentFrom() == attachment)) - count ++; - else if ((lineShape->GetTo() == this) && (lineShape->GetAttachmentTo() == attachment)) - count ++; - - node = node->Next(); - } - return count; -} - -// This function gets the root point at the given attachment. -wxRealPoint wxShape::GetBranchingAttachmentRoot(int attachment) -{ - int physicalAttachment = LogicalToPhysicalAttachment(attachment); - - wxRealPoint root; - - double width, height; - GetBoundingBoxMax(& width, & height); - - // Assume that we have attachment points 0 to 3: top, right, bottom, left. - switch (physicalAttachment) - { - case 0: - { - root.x = GetX() ; - root.y = GetY() - height/2.0; - break; - } - case 1: - { - root.x = GetX() + width/2.0; - root.y = GetY() ; - break; - } - case 2: - { - root.x = GetX() ; - root.y = GetY() + height/2.0; - break; - } - case 3: - { - root.x = GetX() - width/2.0; - root.y = GetY() ; - break; - } - default: - { - wxFAIL_MSG( "Unrecognised attachment point in GetBranchingAttachmentRoot." ); - break; - } - } - return root; -} - -// Draw or erase the branches (not the actual arcs though) -void wxShape::OnDrawBranches(wxDC& dc, int attachment, bool erase) -{ - int count = GetAttachmentLineCount(attachment); - if (count == 0) - return; - - wxRealPoint root, neck, shoulder1, shoulder2; - GetBranchingAttachmentInfo(attachment, root, neck, shoulder1, shoulder2); - - if (erase) - { - dc.SetPen(*wxWHITE_PEN); - dc.SetBrush(*wxWHITE_BRUSH); - } - else - { - dc.SetPen(*wxBLACK_PEN); - dc.SetBrush(*wxBLACK_BRUSH); - } - - // Draw neck - dc.DrawLine((long) root.x, (long) root.y, (long) neck.x, (long) neck.y); - - if (count > 1) - { - // Draw shoulder-to-shoulder line - dc.DrawLine((long) shoulder1.x, (long) shoulder1.y, (long) shoulder2.x, (long) shoulder2.y); - } - // Draw all the little branches - int i; - for (i = 0; i < count; i++) - { - wxRealPoint pt, stemPt; - GetBranchingAttachmentPoint(attachment, i, pt, stemPt); - dc.DrawLine((long) stemPt.x, (long) stemPt.y, (long) pt.x, (long) pt.y); - - if ((GetBranchStyle() & BRANCHING_ATTACHMENT_BLOB) && (count > 1)) - { - long blobSize=6; -// dc.DrawEllipse((long) (stemPt.x + 0.5 - (blobSize/2.0)), (long) (stemPt.y + 0.5 - (blobSize/2.0)), blobSize, blobSize); - dc.DrawEllipse((long) (stemPt.x - (blobSize/2.0)), (long) (stemPt.y - (blobSize/2.0)), blobSize, blobSize); - } - } -} - -// Draw or erase the branches (not the actual arcs though) -void wxShape::OnDrawBranches(wxDC& dc, bool erase) -{ - if (m_attachmentMode != ATTACHMENT_MODE_BRANCHING) - return; - - int count = GetNumberOfAttachments(); - int i; - for (i = 0; i < count; i++) - OnDrawBranches(dc, i, erase); -} - -// Only get the attachment position at the _edge_ of the shape, ignoring -// branching mode. This is used e.g. to indicate the edge of interest, not the point -// on the attachment branch. -bool wxShape::GetAttachmentPositionEdge(int attachment, double *x, double *y, - int nth, int no_arcs, wxLineShape *line) -{ - int oldMode = m_attachmentMode; - - // Calculate as if to edge, not branch - if (m_attachmentMode == ATTACHMENT_MODE_BRANCHING) - m_attachmentMode = ATTACHMENT_MODE_EDGE; - bool success = GetAttachmentPosition(attachment, x, y, nth, no_arcs, line); - m_attachmentMode = oldMode; - - return success; -} - -// Rotate the standard attachment point from physical (0 is always North) -// to logical (0 -> 1 if rotated by 90 degrees) -int wxShape::PhysicalToLogicalAttachment(int physicalAttachment) const -{ - const double pi = 3.1415926535897932384626433832795 ; - int i; - if (oglRoughlyEqual(GetRotation(), 0.0)) - { - i = physicalAttachment; - } - else if (oglRoughlyEqual(GetRotation(), (pi/2.0))) - { - i = physicalAttachment - 1; - } - else if (oglRoughlyEqual(GetRotation(), pi)) - { - i = physicalAttachment - 2; - } - else if (oglRoughlyEqual(GetRotation(), (3.0*pi/2.0))) - { - i = physicalAttachment - 3; - } - else - // Can't handle -- assume the same. - return physicalAttachment; - - if (i < 0) - i += 4; - - return i; -} - -// Rotate the standard attachment point from logical -// to physical (0 is always North) -int wxShape::LogicalToPhysicalAttachment(int logicalAttachment) const -{ - const double pi = 3.1415926535897932384626433832795 ; - int i; - if (oglRoughlyEqual(GetRotation(), 0.0)) - { - i = logicalAttachment; - } - else if (oglRoughlyEqual(GetRotation(), (pi/2.0))) - { - i = logicalAttachment + 1; - } - else if (oglRoughlyEqual(GetRotation(), pi)) - { - i = logicalAttachment + 2; - } - else if (oglRoughlyEqual(GetRotation(), (3.0*pi/2.0))) - { - i = logicalAttachment + 3; - } - else - // Can't handle -- assume the same. - return logicalAttachment; - - if (i > 3) - i -= 4; - - return i; -} - -void wxShape::Rotate(double WXUNUSED(x), double WXUNUSED(y), double theta) -{ - const double pi = 3.1415926535897932384626433832795 ; - m_rotation = theta; - if (m_rotation < 0.0) - { - m_rotation += 2*pi; - } - else if (m_rotation > 2*pi) - { - m_rotation -= 2*pi; - } -} - diff --git a/utils/ogl/src/basic.h b/utils/ogl/src/basic.h deleted file mode 100644 index 8374b2c345..0000000000 --- a/utils/ogl/src/basic.h +++ /dev/null @@ -1,738 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: basic.h -// Purpose: Basic OGL classes and definitions -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_BASIC_H_ -#define _OGL_BASIC_H_ - -#ifdef __GNUG__ -#pragma interface "basic.h" -#endif - -#define OGL_VERSION 2.0 - -#ifndef DEFAULT_MOUSE_TOLERANCE -#define DEFAULT_MOUSE_TOLERANCE 3 -#endif - -// Edit these lines if you positively don't want PROLOGIO support -#ifndef PROLOGIO -#define PROLOGIO -#endif - -// Key identifiers -#define KEY_SHIFT 1 -#define KEY_CTRL 2 - -// Arrow styles - -#define ARROW_NONE 0 -#define ARROW_END 1 -#define ARROW_BOTH 2 -#define ARROW_MIDDLE 3 -#define ARROW_START 4 - -// Control point types -// Rectangle and most other shapes -#define CONTROL_POINT_VERTICAL 1 -#define CONTROL_POINT_HORIZONTAL 2 -#define CONTROL_POINT_DIAGONAL 3 - -// Line -#define CONTROL_POINT_ENDPOINT_TO 4 -#define CONTROL_POINT_ENDPOINT_FROM 5 -#define CONTROL_POINT_LINE 6 - -// Types of formatting: can be combined in a bit list -#define FORMAT_NONE 0 - // Left justification -#define FORMAT_CENTRE_HORIZ 1 - // Centre horizontally -#define FORMAT_CENTRE_VERT 2 - // Centre vertically -#define FORMAT_SIZE_TO_CONTENTS 4 - // Resize shape to contents - -// Shadow mode -#define SHADOW_NONE 0 -#define SHADOW_LEFT 1 -#define SHADOW_RIGHT 2 - -/* - * Declare types - * - */ - -#define SHAPE_BASIC wxTYPE_USER + 1 -#define SHAPE_RECTANGLE wxTYPE_USER + 2 -#define SHAPE_ELLIPSE wxTYPE_USER + 3 -#define SHAPE_POLYGON wxTYPE_USER + 4 -#define SHAPE_CIRCLE wxTYPE_USER + 5 -#define SHAPE_LINE wxTYPE_USER + 6 -#define SHAPE_DIVIDED_RECTANGLE wxTYPE_USER + 8 -#define SHAPE_COMPOSITE wxTYPE_USER + 9 -#define SHAPE_CONTROL_POINT wxTYPE_USER + 10 -#define SHAPE_DRAWN wxTYPE_USER + 11 -#define SHAPE_DIVISION wxTYPE_USER + 12 -#define SHAPE_LABEL_OBJECT wxTYPE_USER + 13 -#define SHAPE_BITMAP wxTYPE_USER + 14 -#define SHAPE_DIVIDED_OBJECT_CONTROL_POINT wxTYPE_USER + 15 - -#define OBJECT_REGION wxTYPE_USER + 20 - -#define OP_CLICK_LEFT 1 -#define OP_CLICK_RIGHT 2 -#define OP_DRAG_LEFT 4 -#define OP_DRAG_RIGHT 8 - -#define OP_ALL (OP_CLICK_LEFT | OP_CLICK_RIGHT | OP_DRAG_LEFT | OP_DRAG_RIGHT) - -// Attachment modes -#define ATTACHMENT_MODE_NONE 0 -#define ATTACHMENT_MODE_EDGE 1 -#define ATTACHMENT_MODE_BRANCHING 2 - -// Sub-modes for branching attachment mode -#define BRANCHING_ATTACHMENT_NORMAL 1 -#define BRANCHING_ATTACHMENT_BLOB 2 - -class wxShapeTextLine; -class wxShapeCanvas; -class wxLineShape; -class wxControlPoint; -class wxShapeRegion; -class wxShape; - -#ifdef PROLOGIO -class WXDLLEXPORT wxExpr; -class WXDLLEXPORT wxExprDatabase; -#endif - -// Round up -#define WXROUND(x) ( (long) (x + 0.5) ) - -class wxShapeEvtHandler: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxShapeEvtHandler) - - public: - wxShapeEvtHandler(wxShapeEvtHandler *prev = NULL, wxShape *shape = NULL); - virtual ~wxShapeEvtHandler(); - - inline void SetShape(wxShape *sh) { m_handlerShape = sh; } - inline wxShape *GetShape() const { return m_handlerShape; } - - inline void SetPreviousHandler(wxShapeEvtHandler* handler) { m_previousHandler = handler; } - inline wxShapeEvtHandler* GetPreviousHandler() const { return m_previousHandler; } - - // This is called when the _shape_ is deleted. - virtual void OnDelete(); - virtual void OnDraw(wxDC& dc); - virtual void OnDrawContents(wxDC& dc); - virtual void OnDrawBranches(wxDC& dc, bool erase = FALSE); - virtual void OnMoveLinks(wxDC& dc); - virtual void OnErase(wxDC& dc); - virtual void OnEraseContents(wxDC& dc); - virtual void OnHighlight(wxDC& dc); - virtual void OnLeftClick(double x, double y, int keys = 0, int attachment = 0); - virtual void OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0); - virtual void OnRightClick(double x, double y, int keys = 0, int attachment = 0); - virtual void OnSize(double x, double y); - virtual bool OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE); - virtual void OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE); - - virtual void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); // Erase if draw false - virtual void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - virtual void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - virtual void OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0); // Erase if draw false - virtual void OnBeginDragRight(double x, double y, int keys=0, int attachment = 0); - virtual void OnEndDragRight(double x, double y, int keys=0, int attachment = 0); - virtual void OnDrawOutline(wxDC& dc, double x, double y, double w, double h); - virtual void OnDrawControlPoints(wxDC& dc); - virtual void OnEraseControlPoints(wxDC& dc); - virtual void OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE); - - // Control points ('handles') redirect control to the actual shape, to make it easier - // to override sizing behaviour. - virtual void OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0); // Erase if draw false - virtual void OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - virtual void OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - - virtual void OnBeginSize(double WXUNUSED(w), double WXUNUSED(h)) { } - virtual void OnEndSize(double WXUNUSED(w), double WXUNUSED(h)) { } - - // Can override this to prevent or intercept line reordering. - virtual void OnChangeAttachment(int attachment, wxLineShape* line, wxList& ordering); - - // Creates a copy of this event handler. - wxShapeEvtHandler *CreateNewCopy(); - - // Does the copy - override for new event handlers which might store - // app-specific data. - virtual void CopyData(wxShapeEvtHandler& copy) {}; - - private: - wxShapeEvtHandler* m_previousHandler; - wxShape* m_handlerShape; -}; - -class wxShape: public wxShapeEvtHandler -{ - DECLARE_ABSTRACT_CLASS(wxShape) - - public: - - wxShape(wxShapeCanvas *can = NULL); - virtual ~wxShape(); - virtual void GetBoundingBoxMax(double *width, double *height); - virtual void GetBoundingBoxMin(double *width, double *height) = 0; - virtual bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3); - inline wxShapeCanvas *GetCanvas() { return m_canvas; } - void SetCanvas(wxShapeCanvas *the_canvas); - virtual void AddToCanvas(wxShapeCanvas *the_canvas, wxShape *addAfter = NULL); - virtual void InsertInCanvas(wxShapeCanvas *the_canvas); - - virtual void RemoveFromCanvas(wxShapeCanvas *the_canvas); - inline double GetX() const { return m_xpos; } - inline double GetY() const { return m_ypos; } - inline void SetX(double x) { m_xpos = x; } - inline void SetY(double y) { m_ypos = y; } - - inline wxShape *GetParent() const { return m_parent; } - inline void SetParent(wxShape *p) { m_parent = p; } - wxShape *GetTopAncestor(); - inline wxList& GetChildren() { return m_children; } - - virtual void OnDraw(wxDC& dc); - virtual void OnDrawContents(wxDC& dc); - virtual void OnMoveLinks(wxDC& dc); - virtual void Unlink() { }; - void SetDrawHandles(bool drawH); - inline bool GetDrawHandles() { return m_drawHandles; } - virtual void OnErase(wxDC& dc); - virtual void OnEraseContents(wxDC& dc); - virtual void OnHighlight(wxDC& dc); - virtual void OnLeftClick(double x, double y, int keys = 0, int attachment = 0); - virtual void OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0) {} - virtual void OnRightClick(double x, double y, int keys = 0, int attachment = 0); - virtual void OnSize(double x, double y); - virtual bool OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE); - virtual void OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE); - - virtual void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); // Erase if draw false - virtual void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - virtual void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - virtual void OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0); // Erase if draw false - virtual void OnBeginDragRight(double x, double y, int keys=0, int attachment = 0); - virtual void OnEndDragRight(double x, double y, int keys=0, int attachment = 0); - virtual void OnDrawOutline(wxDC& dc, double x, double y, double w, double h); - virtual void OnDrawControlPoints(wxDC& dc); - virtual void OnEraseControlPoints(wxDC& dc); - - virtual void OnBeginSize(double WXUNUSED(w), double WXUNUSED(h)) { } - virtual void OnEndSize(double WXUNUSED(w), double WXUNUSED(h)) { } - - // Control points ('handles') redirect control to the actual shape, to make it easier - // to override sizing behaviour. - virtual void OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0); // Erase if draw false - virtual void OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - virtual void OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - - virtual void MakeControlPoints(); - virtual void DeleteControlPoints(wxDC *dc = NULL); - virtual void ResetControlPoints(); - - inline wxShapeEvtHandler *GetEventHandler() { return m_eventHandler; } - inline void SetEventHandler(wxShapeEvtHandler *handler) { m_eventHandler = handler; } - - // Mandatory control points, e.g. the divided line moving handles - // should appear even if a child of the 'selected' image - virtual void MakeMandatoryControlPoints(); - virtual void ResetMandatoryControlPoints(); - - inline virtual bool Recompute() { return TRUE; }; - // Calculate size recursively, if size changes. Size might depend on children. - inline virtual void CalculateSize() { }; - virtual void Select(bool select = TRUE, wxDC* dc = NULL); - virtual void SetHighlight(bool hi = TRUE, bool recurse = FALSE); - inline virtual bool IsHighlighted() const { return m_highlighted; }; - virtual bool Selected() const; - virtual bool AncestorSelected() const; - void SetSensitivityFilter(int sens = OP_ALL, bool recursive = FALSE); - int GetSensitivityFilter() const { return m_sensitivity; } - void SetDraggable(bool drag, bool recursive = FALSE); - inline void SetFixedSize(bool x, bool y) { m_fixedWidth = x; m_fixedHeight = y; }; - inline void GetFixedSize(bool *x, bool *y) const { *x = m_fixedWidth; *y = m_fixedHeight; }; - inline bool GetFixedWidth() const { return m_fixedWidth; } - inline bool GetFixedHeight() const { return m_fixedHeight; } - inline void SetSpaceAttachments(bool sp) { m_spaceAttachments = sp; }; - inline bool GetSpaceAttachments() const { return m_spaceAttachments; }; - void SetShadowMode(int mode, bool redraw = FALSE); - inline int GetShadowMode() const { return m_shadowMode; } - virtual bool HitTest(double x, double y, int *attachment, double *distance); - inline void SetCentreResize(bool cr) { m_centreResize = cr; } - inline bool GetCentreResize() const { return m_centreResize; } - inline void SetMaintainAspectRatio(bool ar) { m_maintainAspectRatio = ar; } - inline bool GetMaintainAspectRatio() const { return m_maintainAspectRatio; } - inline wxList& GetLines() const { return (wxList&) m_lines; } - inline void SetDisableLabel(bool flag) { m_disableLabel = flag; } - inline bool GetDisableLabel() const { return m_disableLabel; } - inline void SetAttachmentMode(int mode) { m_attachmentMode = mode; } - inline int GetAttachmentMode() const { return m_attachmentMode; } - inline void SetId(long i) { m_id = i; } - inline long GetId() const { return m_id; } - - void SetPen(wxPen *pen); - void SetBrush(wxBrush *brush); - inline void SetClientData(wxObject *client_data) { m_clientData = client_data; }; - inline wxObject *GetClientData() const { return m_clientData; }; - - virtual void Show(bool show); - virtual bool IsShown() const { return m_visible; } - virtual void Move(wxDC& dc, double x1, double y1, bool display = TRUE); - virtual void Erase(wxDC& dc); - virtual void EraseContents(wxDC& dc); - virtual void Draw(wxDC& dc); - virtual void Flash(); - virtual void MoveLinks(wxDC& dc); - virtual void DrawContents(wxDC& dc); // E.g. for drawing text label - virtual void SetSize(double x, double y, bool recursive = TRUE); - virtual void SetAttachmentSize(double x, double y); - void Attach(wxShapeCanvas *can); - void Detach(); - - inline virtual bool Constrain() { return FALSE; } ; - - void AddLine(wxLineShape *line, wxShape *other, - int attachFrom = 0, int attachTo = 0, - // The line ordering - int positionFrom = -1, int positionTo = -1); - - // Return the zero-based position in m_lines of line. - int GetLinePosition(wxLineShape* line); - - void AddText(const wxString& string); - - inline wxPen *GetPen() const { return m_pen; } - inline wxBrush *GetBrush() const { return m_brush; } - - /* - * Region-specific functions (defaults to the default region - * for simple objects - */ - - // Set the default, single region size to be consistent - // with the object size - void SetDefaultRegionSize(); - virtual void FormatText(wxDC& dc, const wxString& s, int regionId = 0); - virtual void SetFormatMode(int mode, int regionId = 0); - virtual int GetFormatMode(int regionId = 0) const; - virtual void SetFont(wxFont *font, int regionId = 0); - virtual wxFont *GetFont(int regionId = 0) const; - virtual void SetTextColour(const wxString& colour, int regionId = 0); - virtual wxString GetTextColour(int regionId = 0) const; - virtual inline int GetNumberOfTextRegions() const { return m_regions.Number(); } - virtual void SetRegionName(const wxString& name, int regionId = 0); - - // Get the name representing the region for this image alone. - // I.e. this image's region ids go from 0 to N-1. - // But the names might be "0.2.0", "0.2.1" etc. depending on position in composite. - // So the last digit represents the region Id, the others represent positions - // in composites. - virtual wxString GetRegionName(int regionId); - - // Gets the region corresponding to the name, or -1 if not found. - virtual int GetRegionId(const wxString& name); - - // Construct names for regions, unique even for children of a composite. - virtual void NameRegions(const wxString& parentName = ""); - - // Get list of regions - inline wxList& GetRegions() const { return (wxList&) m_regions; } - - virtual void AddRegion(wxShapeRegion *region); - - virtual void ClearRegions(); - - // Assign new ids to this image and children (if composite) - void AssignNewIds(); - - // Returns actual image (same as 'this' if non-composite) and region id - // for given region name. - virtual wxShape *FindRegion(const wxString& regionName, int *regionId); - - // Finds all region names for this image (composite or simple). - // Supply empty string list. - virtual void FindRegionNames(wxStringList& list); - - virtual void ClearText(int regionId = 0); - void RemoveLine(wxLineShape *line); - -#ifdef PROLOGIO - // I/O - virtual void WriteAttributes(wxExpr *clause); - virtual void ReadAttributes(wxExpr *clause); - - // In case the object has constraints it needs to read in in a different pass - inline virtual void ReadConstraints(wxExpr *WXUNUSED(clause), wxExprDatabase *WXUNUSED(database)) { }; - virtual void WriteRegions(wxExpr *clause); - virtual void ReadRegions(wxExpr *clause); -#endif - - // Attachment code - virtual bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - virtual int GetNumberOfAttachments() const; - virtual bool AttachmentIsValid(int attachment) const; - - // Only get the attachment position at the _edge_ of the shape, ignoring - // branching mode. This is used e.g. to indicate the edge of interest, not the point - // on the attachment branch. - virtual bool GetAttachmentPositionEdge(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - - // Assuming the attachment lies along a vertical or horizontal line, - // calculate the position on that point. - virtual wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2, - int nth, int noArcs, wxLineShape* line); - - // Returns TRUE if pt1 <= pt2 in the sense that one point comes before another on an - // edge of the shape. - // attachmentPoint is the attachment point (= side) in question. - virtual bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2); - - virtual void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE); - virtual void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE); - - virtual bool MoveLineToNewAttachment(wxDC& dc, wxLineShape *to_move, - double x, double y); - - // Reorders the lines coming into the node image at this attachment - // position, in the order in which they appear in linesToSort. - virtual void SortLines(int attachment, wxList& linesToSort); - - // Apply an attachment ordering change - void ApplyAttachmentOrdering(wxList& ordering); - - // Can override this to prevent or intercept line reordering. - virtual void OnChangeAttachment(int attachment, wxLineShape* line, wxList& ordering); - - //// New banching attachment code, 24/9/98 - - // - // |________| - // | <- root - // | <- neck - // shoulder1 ->---------<- shoulder2 - // | | | | |<- stem - // <- branching attachment point N-1 - - // This function gets the root point at the given attachment. - virtual wxRealPoint GetBranchingAttachmentRoot(int attachment); - - // This function gets information about where branching connections go (calls GetBranchingAttachmentRoot) - virtual bool GetBranchingAttachmentInfo(int attachment, wxRealPoint& root, wxRealPoint& neck, - wxRealPoint& shoulder1, wxRealPoint& shoulder2); - - // n is the number of the adjoining line, from 0 to N-1 where N is the number of lines - // at this attachment point. - // attachmentPoint is where the arc meets the stem, and stemPoint is where the stem meets the - // shoulder. - virtual bool GetBranchingAttachmentPoint(int attachment, int n, wxRealPoint& attachmentPoint, - wxRealPoint& stemPoint); - - // Get the number of lines at this attachment position. - virtual int GetAttachmentLineCount(int attachment) const; - - // Draw the branches (not the actual arcs though) - virtual void OnDrawBranches(wxDC& dc, int attachment, bool erase = FALSE); - virtual void OnDrawBranches(wxDC& dc, bool erase = FALSE); - - // Branching attachment settings - inline void SetBranchNeckLength(int len) { m_branchNeckLength = len; } - inline int GetBranchNeckLength() const { return m_branchNeckLength; } - - inline void SetBranchStemLength(int len) { m_branchStemLength = len; } - inline int GetBranchStemLength() const { return m_branchStemLength; } - - inline void SetBranchSpacing(int len) { m_branchSpacing = len; } - inline int GetBranchSpacing() const { return m_branchSpacing; } - - // Further detail on branching style, e.g. blobs on interconnections - inline void SetBranchStyle(long style) { m_branchStyle = style; } - inline long GetBranchStyle() const { return m_branchStyle; } - - // Rotate the standard attachment point from physical (0 is always North) - // to logical (0 -> 1 if rotated by 90 degrees) - virtual int PhysicalToLogicalAttachment(int physicalAttachment) const; - - // Rotate the standard attachment point from logical - // to physical (0 is always North) - virtual int LogicalToPhysicalAttachment(int logicalAttachment) const; - - // This is really to distinguish between lines and other images. - // For lines, want to pass drag to canvas, since lines tend to prevent - // dragging on a canvas (they get in the way.) - virtual bool Draggable() const { return TRUE; } - - // Returns TRUE if image is a descendant of this image - bool HasDescendant(wxShape *image); - - // Creates a copy of this shape. - wxShape *CreateNewCopy(bool resetMapping = TRUE, bool recompute = TRUE); - - // Does the copying for this object - virtual void Copy(wxShape& copy); - - // Does the copying for this object, including copying event - // handler data if any. Calls the virtual Copy function. - void CopyWithHandler(wxShape& copy); - - // Rotate about the given axis by the given amount in radians. - virtual void Rotate(double x, double y, double theta); - virtual inline double GetRotation() const { return m_rotation; } - - void ClearAttachments(); - - // Recentres all the text regions for this object - void Recentre(wxDC& dc); - - // Clears points from a list of wxRealPoints - void ClearPointList(wxList& list); - - private: - wxObject* m_clientData; - - protected: - wxShapeEvtHandler* m_eventHandler; - bool m_formatted; - double m_xpos, m_ypos; - wxPen* m_pen; - wxBrush* m_brush; - wxFont* m_font; - wxColour* m_textColour; - wxString m_textColourName; - wxShapeCanvas* m_canvas; - wxList m_lines; - wxList m_text; - wxList m_controlPoints; - wxList m_regions; - wxList m_attachmentPoints; - bool m_visible; - bool m_disableLabel; - long m_id; - bool m_selected; - bool m_highlighted; // Different from selected: user-defined highlighting, - // e.g. thick border. - double m_rotation; - int m_sensitivity; - bool m_draggable; - int m_attachmentMode; // 0 for no attachments, 1 if using normal attachments, - // 2 for branching attachments - bool m_spaceAttachments; // TRUE if lines at one side should be spaced - bool m_fixedWidth; - bool m_fixedHeight; - bool m_centreResize; // Default is to resize keeping the centre constant (TRUE) - bool m_drawHandles; // Don't draw handles if FALSE, usually TRUE - wxList m_children; // In case it's composite - wxShape* m_parent; // In case it's a child - int m_formatMode; - int m_shadowMode; - wxBrush* m_shadowBrush; - int m_shadowOffsetX; - int m_shadowOffsetY; - int m_textMarginX; // Gap between text and border - int m_textMarginY; - wxString m_regionName; - bool m_maintainAspectRatio; - int m_branchNeckLength; - int m_branchStemLength; - int m_branchSpacing; - long m_branchStyle; -}; - -class wxPolygonShape: public wxShape -{ - DECLARE_DYNAMIC_CLASS(wxPolygonShape) - public: - wxPolygonShape(); - ~wxPolygonShape(); - - // Takes a list of wxRealPoints; each point is an OFFSET from the centre. - // Deletes user's points in destructor. - virtual void Create(wxList *points); - virtual void ClearPoints(); - - void GetBoundingBoxMin(double *w, double *h); - void CalculateBoundingBox(); - bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3); - bool HitTest(double x, double y, int *attachment, double *distance); - void SetSize(double x, double y, bool recursive = TRUE); - void OnDraw(wxDC& dc); - void OnDrawOutline(wxDC& dc, double x, double y, double w, double h); - - // Control points ('handles') redirect control to the actual shape, to make it easier - // to override sizing behaviour. - virtual void OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0); - virtual void OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - virtual void OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - - // A polygon should have a control point at each vertex, - // with the option of moving the control points individually - // to change the shape. - void MakeControlPoints(); - void ResetControlPoints(); - - // If we've changed the shape, must make the original - // points match the working points - void UpdateOriginalPoints(); - - // Add a control point after the given point - virtual void AddPolygonPoint(int pos = 0); - - // Delete a control point - virtual void DeletePolygonPoint(int pos = 0); - - // Recalculates the centre of the polygon - virtual void CalculatePolygonCentre(); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - - int GetNumberOfAttachments() const; - bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - bool AttachmentIsValid(int attachment); - // Does the copying for this object - void Copy(wxShape& copy); - - inline wxList *GetPoints() { return m_points; } - - // Rotate about the given axis by the given amount in radians - virtual void Rotate(double x, double y, double theta); - - private: - wxList* m_points; - wxList* m_originalPoints; - double m_boundWidth; - double m_boundHeight; - double m_originalWidth; - double m_originalHeight; -}; - -class wxRectangleShape: public wxShape -{ - DECLARE_DYNAMIC_CLASS(wxRectangleShape) - public: - wxRectangleShape(double w = 0.0, double h = 0.0); - void GetBoundingBoxMin(double *w, double *h); - bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3); - void OnDraw(wxDC& dc); - void SetSize(double x, double y, bool recursive = TRUE); - void SetCornerRadius(double rad); // If > 0, rounded corners - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - - int GetNumberOfAttachments() const; - bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - // Does the copying for this object - void Copy(wxShape& copy); - - inline double GetWidth() const { return m_width; } - inline double GetHeight() const { return m_height; } - inline void SetWidth(double w) { m_width = w; } - inline void SetHeight(double h) { m_height = h; } - -protected: - double m_width; - double m_height; - double m_cornerRadius; -}; - -class wxTextShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxTextShape) - public: - wxTextShape(double width = 0.0, double height = 0.0); - - void OnDraw(wxDC& dc); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); -#endif - - // Does the copying for this object - void Copy(wxShape& copy); -}; - -class wxEllipseShape: public wxShape -{ - DECLARE_DYNAMIC_CLASS(wxEllipseShape) - public: - wxEllipseShape(double w = 0.0, double h = 0.0); - - void GetBoundingBoxMin(double *w, double *h); - bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3); - - void OnDraw(wxDC& dc); - void SetSize(double x, double y, bool recursive = TRUE); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - - int GetNumberOfAttachments() const; - bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - - // Does the copying for this object - void Copy(wxShape& copy); - - inline double GetWidth() const { return m_width; } - inline double GetHeight() const { return m_height; } - - inline void SetWidth(double w) { m_width = w; } - inline void SetHeight(double h) { m_height = h; } - -protected: - double m_width; - double m_height; -}; - -class wxCircleShape: public wxEllipseShape -{ - DECLARE_DYNAMIC_CLASS(wxCircleShape) - public: - wxCircleShape(double w = 0.0); - - bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3); - // Does the copying for this object - void Copy(wxShape& copy); -}; - -#endif - // _OGL_BASIC_H_ diff --git a/utils/ogl/src/basic2.cpp b/utils/ogl/src/basic2.cpp deleted file mode 100644 index ba46cca6fe..0000000000 --- a/utils/ogl/src/basic2.cpp +++ /dev/null @@ -1,1902 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: basic2.cpp -// Purpose: Basic OGL classes (2) -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "basicp.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -#include -#include -#include - -#include "basic.h" -#include "basicp.h" -#include "composit.h" -#include "lines.h" -#include "canvas.h" -#include "divided.h" -#include "misc.h" - -// Control point types -// Rectangle and most other shapes -#define CONTROL_POINT_VERTICAL 1 -#define CONTROL_POINT_HORIZONTAL 2 -#define CONTROL_POINT_DIAGONAL 3 - -// Line -#define CONTROL_POINT_ENDPOINT_TO 4 -#define CONTROL_POINT_ENDPOINT_FROM 5 -#define CONTROL_POINT_LINE 6 - -// Two stage construction: need to call Create -IMPLEMENT_DYNAMIC_CLASS(wxPolygonShape, wxShape) - -wxPolygonShape::wxPolygonShape() -{ - m_points = NULL; - m_originalPoints = NULL; -} - -void wxPolygonShape::Create(wxList *the_points) -{ - ClearPoints(); - - m_originalPoints = the_points; - - // Duplicate the list of points - m_points = new wxList; - - wxNode *node = the_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *new_point = new wxRealPoint(point->x, point->y); - m_points->Append((wxObject*) new_point); - node = node->Next(); - } - CalculateBoundingBox(); - m_originalWidth = m_boundWidth; - m_originalHeight = m_boundHeight; - SetDefaultRegionSize(); -} - -wxPolygonShape::~wxPolygonShape() -{ - ClearPoints(); -} - -void wxPolygonShape::ClearPoints() -{ - if (m_points) - { - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - delete point; - delete node; - node = m_points->First(); - } - delete m_points; - m_points = NULL; - } - if (m_originalPoints) - { - wxNode *node = m_originalPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - delete point; - delete node; - node = m_originalPoints->First(); - } - delete m_originalPoints; - m_originalPoints = NULL; - } -} - - -// Width and height. Centre of object is centre of box. -void wxPolygonShape::GetBoundingBoxMin(double *width, double *height) -{ - *width = m_boundWidth; - *height = m_boundHeight; -} - -void wxPolygonShape::CalculateBoundingBox() -{ - // Calculate bounding box at construction (and presumably resize) time - double left = 10000; - double right = -10000; - double top = 10000; - double bottom = -10000; - - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - if (point->x < left) left = point->x; - if (point->x > right) right = point->x; - - if (point->y < top) top = point->y; - if (point->y > bottom) bottom = point->y; - - node = node->Next(); - } - m_boundWidth = right - left; - m_boundHeight = bottom - top; -} - -// Recalculates the centre of the polygon, and -// readjusts the point offsets accordingly. -// Necessary since the centre of the polygon -// is expected to be the real centre of the bounding -// box. -void wxPolygonShape::CalculatePolygonCentre() -{ - double left = 10000; - double right = -10000; - double top = 10000; - double bottom = -10000; - - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - if (point->x < left) left = point->x; - if (point->x > right) right = point->x; - - if (point->y < top) top = point->y; - if (point->y > bottom) bottom = point->y; - - node = node->Next(); - } - double bwidth = right - left; - double bheight = bottom - top; - - double newCentreX = (double)(left + (bwidth/2.0)); - double newCentreY = (double)(top + (bheight/2.0)); - - node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - point->x -= newCentreX; - point->y -= newCentreY; - node = node->Next(); - } - m_xpos += newCentreX; - m_ypos += newCentreY; -} - -bool PolylineHitTest(double n, double xvec[], double yvec[], - double x1, double y1, double x2, double y2) -{ - bool isAHit = FALSE; - int i; - double lastx = xvec[0]; - double lasty = yvec[0]; - - double min_ratio = 1.0; - double line_ratio; - double other_ratio; - -// char buf[300]; - for (i = 1; i < n; i++) - { - oglCheckLineIntersection(x1, y1, x2, y2, lastx, lasty, xvec[i], yvec[i], - &line_ratio, &other_ratio); - if (line_ratio != 1.0) - isAHit = TRUE; -// sprintf(buf, "Line ratio = %.2f, other ratio = %.2f\n", line_ratio, other_ratio); -// ClipsErrorFunction(buf); - lastx = xvec[i]; - lasty = yvec[i]; - - if (line_ratio < min_ratio) - min_ratio = line_ratio; - } - - // Do last (implicit) line if last and first doubles are not identical - if (!(xvec[0] == lastx && yvec[0] == lasty)) - { - oglCheckLineIntersection(x1, y1, x2, y2, lastx, lasty, xvec[0], yvec[0], - &line_ratio, &other_ratio); - if (line_ratio != 1.0) - isAHit = TRUE; -// sprintf(buf, "Line ratio = %.2f, other ratio = %.2f\n", line_ratio, other_ratio); -// ClipsErrorFunction(buf); - - if (line_ratio < min_ratio) - min_ratio = line_ratio; - } -// ClipsErrorFunction("\n"); - return isAHit; -} - -bool wxPolygonShape::HitTest(double x, double y, int *attachment, double *distance) -{ - // Imagine four lines radiating from this point. If all of these lines hit the polygon, - // we're inside it, otherwise we're not. Obviously we'd need more radiating lines - // to be sure of correct results for very strange (concave) shapes. - double endPointsX[4]; - double endPointsY[4]; - // North - endPointsX[0] = x; - endPointsY[0] = (double)(y - 1000.0); - // East - endPointsX[1] = (double)(x + 1000.0); - endPointsY[1] = y; - // South - endPointsX[2] = x; - endPointsY[2] = (double)(y + 1000.0); - // West - endPointsX[3] = (double)(x - 1000.0); - endPointsY[3] = y; - - // Store polygon points in an array - int np = m_points->Number(); - double *xpoints = new double[np]; - double *ypoints = new double[np]; - wxNode *node = m_points->First(); - int i = 0; - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - xpoints[i] = point->x + m_xpos; - ypoints[i] = point->y + m_ypos; - node = node->Next(); - i ++; - } - - // We assume it's inside the polygon UNLESS one or more - // lines don't hit the outline. - bool isContained = TRUE; - - int noPoints = 4; - for (i = 0; i < noPoints; i++) - { - if (!PolylineHitTest(np, xpoints, ypoints, x, y, endPointsX[i], endPointsY[i])) - isContained = FALSE; - } -/* - if (isContained) - ClipsErrorFunction("It's a hit!\n"); - else - ClipsErrorFunction("No hit.\n"); -*/ - delete[] xpoints; - delete[] ypoints; - - if (!isContained) - return FALSE; - - int nearest_attachment = 0; - - // If a hit, check the attachment points within the object. - int n = GetNumberOfAttachments(); - double nearest = 999999.0; - - for (i = 0; i < n; i++) - { - double xp, yp; - if (GetAttachmentPositionEdge(i, &xp, &yp)) - { - double l = (double)sqrt(((xp - x) * (xp - x)) + - ((yp - y) * (yp - y))); - if (l < nearest) - { - nearest = l; - nearest_attachment = i; - } - } - } - *attachment = nearest_attachment; - *distance = nearest; - return TRUE; -} - -// Really need to be able to reset the shape! Otherwise, if the -// points ever go to zero, we've lost it, and can't resize. -void wxPolygonShape::SetSize(double new_width, double new_height, bool recursive) -{ - SetAttachmentSize(new_width, new_height); - - // Multiply all points by proportion of new size to old size - double x_proportion = (double)(fabs(new_width/m_originalWidth)); - double y_proportion = (double)(fabs(new_height/m_originalHeight)); - - wxNode *node = m_points->First(); - wxNode *original_node = m_originalPoints->First(); - while (node && original_node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *original_point = (wxRealPoint *)original_node->Data(); - - point->x = (original_point->x * x_proportion); - point->y = (original_point->y * y_proportion); - - node = node->Next(); - original_node = original_node->Next(); - } - -// CalculateBoundingBox(); - m_boundWidth = (double)fabs(new_width); - m_boundHeight = (double)fabs(new_height); - SetDefaultRegionSize(); -} - -// Make the original points the same as the working points -void wxPolygonShape::UpdateOriginalPoints() -{ - if (!m_originalPoints) m_originalPoints = new wxList; - wxNode *original_node = m_originalPoints->First(); - while (original_node) - { - wxNode *next_node = original_node->Next(); - wxRealPoint *original_point = (wxRealPoint *)original_node->Data(); - delete original_point; - delete original_node; - - original_node = next_node; - } - - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *original_point = new wxRealPoint(point->x, point->y); - m_originalPoints->Append((wxObject*) original_point); - - node = node->Next(); - } - CalculateBoundingBox(); - m_originalWidth = m_boundWidth; - m_originalHeight = m_boundHeight; -} - -void wxPolygonShape::AddPolygonPoint(int pos) -{ - wxNode *node = m_points->Nth(pos); - if (!node) node = m_points->First(); - wxRealPoint *firstPoint = (wxRealPoint *)node->Data(); - - wxNode *node2 = m_points->Nth(pos + 1); - if (!node2) node2 = m_points->First(); - wxRealPoint *secondPoint = (wxRealPoint *)node2->Data(); - - double x = (double)((secondPoint->x - firstPoint->x)/2.0 + firstPoint->x); - double y = (double)((secondPoint->y - firstPoint->y)/2.0 + firstPoint->y); - wxRealPoint *point = new wxRealPoint(x, y); - - if (pos >= (m_points->Number() - 1)) - m_points->Append((wxObject*) point); - else - m_points->Insert(node2, (wxObject*) point); - - UpdateOriginalPoints(); - - if (m_selected) - { - DeleteControlPoints(); - MakeControlPoints(); - } -} - -void wxPolygonShape::DeletePolygonPoint(int pos) -{ - wxNode *node = m_points->Nth(pos); - if (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - delete point; - delete node; - UpdateOriginalPoints(); - if (m_selected) - { - DeleteControlPoints(); - MakeControlPoints(); - } - } -} - -// Assume (x1, y1) is centre of box (most generally, line end at box) -bool wxPolygonShape::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3) -{ - int n = m_points->Number(); - - // First check for situation where the line is vertical, - // and we would want to connect to a point on that vertical -- - // oglFindEndForPolyline can't cope with this (the arrow - // gets drawn to the wrong place). - if ((m_attachmentMode == ATTACHMENT_MODE_NONE) && (x1 == x2)) - { - // Look for the point we'd be connecting to. This is - // a heuristic... - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - if (point->x == 0.0) - { - if ((y2 > y1) && (point->y > 0.0)) - { - *x3 = point->x + m_xpos; - *y3 = point->y + m_ypos; - return TRUE; - } - else if ((y2 < y1) && (point->y < 0.0)) - { - *x3 = point->x + m_xpos; - *y3 = point->y + m_ypos; - return TRUE; - } - } - node = node->Next(); - } - } - - double *xpoints = new double[n]; - double *ypoints = new double[n]; - - wxNode *node = m_points->First(); - int i = 0; - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - xpoints[i] = point->x + m_xpos; - ypoints[i] = point->y + m_ypos; - node = node->Next(); - i ++; - } - - oglFindEndForPolyline(n, xpoints, ypoints, - x1, y1, x2, y2, x3, y3); - - delete[] xpoints; - delete[] ypoints; - - return TRUE; -} - -void wxPolygonShape::OnDraw(wxDC& dc) -{ - int n = m_points->Number(); - wxPoint *intPoints = new wxPoint[n]; - int i; - for (i = 0; i < n; i++) - { - wxRealPoint* point = (wxRealPoint*) m_points->Nth(i)->Data(); - intPoints[i].x = WXROUND(point->x); - intPoints[i].y = WXROUND(point->y); - } - - if (m_shadowMode != SHADOW_NONE) - { - if (m_shadowBrush) - dc.SetBrush(* m_shadowBrush); - dc.SetPen(* g_oglTransparentPen); - - dc.DrawPolygon(n, intPoints, WXROUND(m_xpos + m_shadowOffsetX), WXROUND(m_ypos + m_shadowOffsetY)); - } - - if (m_pen) - { - if (m_pen->GetWidth() == 0) - dc.SetPen(* g_oglTransparentPen); - else - dc.SetPen(* m_pen); - } - if (m_brush) - dc.SetBrush(* m_brush); - dc.DrawPolygon(n, intPoints, WXROUND(m_xpos), WXROUND(m_ypos)); - - delete[] intPoints; -} - -void wxPolygonShape::OnDrawOutline(wxDC& dc, double x, double y, double w, double h) -{ - dc.SetBrush(* wxTRANSPARENT_BRUSH); - // Multiply all points by proportion of new size to old size - double x_proportion = (double)(fabs(w/m_originalWidth)); - double y_proportion = (double)(fabs(h/m_originalHeight)); - - int n = m_originalPoints->Number(); - wxPoint *intPoints = new wxPoint[n]; - int i; - for (i = 0; i < n; i++) - { - wxRealPoint* point = (wxRealPoint*) m_originalPoints->Nth(i)->Data(); - intPoints[i].x = WXROUND(x_proportion * point->x); - intPoints[i].y = WXROUND(y_proportion * point->y); - } - dc.DrawPolygon(n, intPoints, WXROUND(x), WXROUND(y)); - delete[] intPoints; -} - -// Make as many control points as there are vertices. -void wxPolygonShape::MakeControlPoints() -{ - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxPolygonControlPoint *control = new wxPolygonControlPoint(m_canvas, this, CONTROL_POINT_SIZE, - point, point->x, point->y); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - node = node->Next(); - } -} - -void wxPolygonShape::ResetControlPoints() -{ - wxNode *node = m_points->First(); - wxNode *controlPointNode = m_controlPoints.First(); - while (node && controlPointNode) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxPolygonControlPoint *controlPoint = (wxPolygonControlPoint *)controlPointNode->Data(); - - controlPoint->m_xoffset = point->x; - controlPoint->m_yoffset = point->y; - controlPoint->m_polygonVertex = point; - - node = node->Next(); - controlPointNode = controlPointNode->Next(); - } -} - - -#ifdef PROLOGIO -void wxPolygonShape::WriteAttributes(wxExpr *clause) -{ - wxShape::WriteAttributes(clause); - - clause->AddAttributeValue("x", m_xpos); - clause->AddAttributeValue("y", m_ypos); - - // Make a list of lists for the coordinates - wxExpr *list = new wxExpr(wxExprList); - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxExpr *point_list = new wxExpr(wxExprList); - wxExpr *x_expr = new wxExpr((double)point->x); - wxExpr *y_expr = new wxExpr((double)point->y); - - point_list->Append(x_expr); - point_list->Append(y_expr); - list->Append(point_list); - - node = node->Next(); - } - clause->AddAttributeValue("points", list); - - // Save the original (unscaled) points - list = new wxExpr(wxExprList); - node = m_originalPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxExpr *point_list = new wxExpr(wxExprList); - wxExpr *x_expr = new wxExpr((double) point->x); - wxExpr *y_expr = new wxExpr((double) point->y); - point_list->Append(x_expr); - point_list->Append(y_expr); - list->Append(point_list); - - node = node->Next(); - } - clause->AddAttributeValue("m_originalPoints", list); -} - -void wxPolygonShape::ReadAttributes(wxExpr *clause) -{ - wxShape::ReadAttributes(clause); - - // Read a list of lists - m_points = new wxList; - m_originalPoints = new wxList; - - wxExpr *points_list = NULL; - clause->AssignAttributeValue("points", &points_list); - - // If no points_list, don't crash!! Assume a diamond instead. - double the_height = 100.0; - double the_width = 100.0; - if (!points_list) - { - wxRealPoint *point = new wxRealPoint(0.0, (-the_height/2)); - m_points->Append((wxObject*) point); - - point = new wxRealPoint((the_width/2), 0.0); - m_points->Append((wxObject*) point); - - point = new wxRealPoint(0.0, (the_height/2)); - m_points->Append((wxObject*) point); - - point = new wxRealPoint((-the_width/2), 0.0); - m_points->Append((wxObject*) point); - - point = new wxRealPoint(0.0, (-the_height/2)); - m_points->Append((wxObject*) point); - } - else - { - wxExpr *node = points_list->value.first; - - while (node) - { - wxExpr *xexpr = node->value.first; - long x = xexpr->IntegerValue(); - - wxExpr *yexpr = xexpr->next; - long y = yexpr->IntegerValue(); - - wxRealPoint *point = new wxRealPoint((double)x, (double)y); - m_points->Append((wxObject*) point); - - node = node->next; - } - } - - points_list = NULL; - clause->AssignAttributeValue("m_originalPoints", &points_list); - - // If no points_list, don't crash!! Assume a diamond instead. - if (!points_list) - { - wxRealPoint *point = new wxRealPoint(0.0, (-the_height/2)); - m_originalPoints->Append((wxObject*) point); - - point = new wxRealPoint((the_width/2), 0.0); - m_originalPoints->Append((wxObject*) point); - - point = new wxRealPoint(0.0, (the_height/2)); - m_originalPoints->Append((wxObject*) point); - - point = new wxRealPoint((-the_width/2), 0.0); - m_originalPoints->Append((wxObject*) point); - - point = new wxRealPoint(0.0, (-the_height/2)); - m_originalPoints->Append((wxObject*) point); - - m_originalWidth = the_width; - m_originalHeight = the_height; - } - else - { - wxExpr *node = points_list->value.first; - double min_x = 1000; - double min_y = 1000; - double max_x = -1000; - double max_y = -1000; - while (node) - { - wxExpr *xexpr = node->value.first; - long x = xexpr->IntegerValue(); - - wxExpr *yexpr = xexpr->next; - long y = yexpr->IntegerValue(); - - wxRealPoint *point = new wxRealPoint((double)x, (double)y); - m_originalPoints->Append((wxObject*) point); - - if (x < min_x) - min_x = (double)x; - if (y < min_y) - min_y = (double)y; - if (x > max_x) - max_x = (double)x; - if (y > max_y) - max_y = (double)y; - - node = node->next; - } - m_originalWidth = max_x - min_x; - m_originalHeight = max_y - min_y; - } - - CalculateBoundingBox(); -} -#endif - -void wxPolygonShape::Copy(wxShape& copy) -{ - wxShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxPolygonShape)) ); - - wxPolygonShape& polyCopy = (wxPolygonShape&) copy; - - polyCopy.ClearPoints(); - - polyCopy.m_points = new wxList; - polyCopy.m_originalPoints = new wxList; - - wxNode *node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *new_point = new wxRealPoint(point->x, point->y); - polyCopy.m_points->Append((wxObject*) new_point); - node = node->Next(); - } - node = m_originalPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *new_point = new wxRealPoint(point->x, point->y); - polyCopy.m_originalPoints->Append((wxObject*) new_point); - node = node->Next(); - } - polyCopy.m_boundWidth = m_boundWidth; - polyCopy.m_boundHeight = m_boundHeight; - polyCopy.m_originalWidth = m_originalWidth; - polyCopy.m_originalHeight = m_originalHeight; -} - -int wxPolygonShape::GetNumberOfAttachments() const -{ - int maxN = (m_points ? (m_points->Number() - 1) : 0); - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - if (point->m_id > maxN) - maxN = point->m_id; - node = node->Next(); - } - return maxN+1;; -} - -bool wxPolygonShape::GetAttachmentPosition(int attachment, double *x, double *y, - int nth, int no_arcs, wxLineShape *line) -{ - if ((m_attachmentMode == ATTACHMENT_MODE_EDGE) && m_points && attachment < m_points->Number()) - { - wxRealPoint *point = (wxRealPoint *)m_points->Nth(attachment)->Data(); - *x = point->x + m_xpos; - *y = point->y + m_ypos; - return TRUE; - } - else - { return wxShape::GetAttachmentPosition(attachment, x, y, nth, no_arcs, line); } -} - -bool wxPolygonShape::AttachmentIsValid(int attachment) -{ - if (!m_points) - return FALSE; - - if ((attachment >= 0) && (attachment < m_points->Number())) - return TRUE; - - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - if (point->m_id == attachment) - return TRUE; - node = node->Next(); - } - return FALSE; -} - -// Rotate about the given axis by the given amount in radians -void wxPolygonShape::Rotate(double x, double y, double theta) -{ - double actualTheta = theta-m_rotation; - - // Rotate attachment points - double sinTheta = (double)sin(actualTheta); - double cosTheta = (double)cos(actualTheta); - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - double x1 = point->m_x; - double y1 = point->m_y; - point->m_x = x1*cosTheta - y1*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - point->m_y = x1*sinTheta + y1*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - node = node->Next(); - } - - node = m_points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - double x1 = point->x; - double y1 = point->y; - point->x = x1*cosTheta - y1*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - point->y = x1*sinTheta + y1*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - node = node->Next(); - } - node = m_originalPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - double x1 = point->x; - double y1 = point->y; - point->x = x1*cosTheta - y1*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - point->y = x1*sinTheta + y1*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - node = node->Next(); - } - - m_rotation = theta; - - CalculatePolygonCentre(); - CalculateBoundingBox(); - ResetControlPoints(); -} - -// Rectangle object - -IMPLEMENT_DYNAMIC_CLASS(wxRectangleShape, wxShape) - -wxRectangleShape::wxRectangleShape(double w, double h) -{ - m_width = w; m_height = h; m_cornerRadius = 0.0; - SetDefaultRegionSize(); -} - -void wxRectangleShape::OnDraw(wxDC& dc) -{ - double x1 = (double)(m_xpos - m_width/2.0); - double y1 = (double)(m_ypos - m_height/2.0); - - if (m_shadowMode != SHADOW_NONE) - { - if (m_shadowBrush) - dc.SetBrush(* m_shadowBrush); - dc.SetPen(* g_oglTransparentPen); - - if (m_cornerRadius != 0.0) - dc.DrawRoundedRectangle(WXROUND(x1 + m_shadowOffsetX), WXROUND(y1 + m_shadowOffsetY), - WXROUND(m_width), WXROUND(m_height), m_cornerRadius); - else - dc.DrawRectangle(WXROUND(x1 + m_shadowOffsetX), WXROUND(y1 + m_shadowOffsetY), WXROUND(m_width), WXROUND(m_height)); - } - - if (m_pen) - { - if (m_pen->GetWidth() == 0) - dc.SetPen(* g_oglTransparentPen); - else - dc.SetPen(* m_pen); - } - if (m_brush) - dc.SetBrush(* m_brush); - - if (m_cornerRadius != 0.0) - dc.DrawRoundedRectangle(WXROUND(x1), WXROUND(y1), WXROUND(m_width), WXROUND(m_height), m_cornerRadius); - else - dc.DrawRectangle(WXROUND(x1), WXROUND(y1), WXROUND(m_width), WXROUND(m_height)); -} - -void wxRectangleShape::GetBoundingBoxMin(double *the_width, double *the_height) -{ - *the_width = m_width; - *the_height = m_height; -} - -void wxRectangleShape::SetSize(double x, double y, bool recursive) -{ - SetAttachmentSize(x, y); - m_width = (double)wxMax(x, 1.0); - m_height = (double)wxMax(y, 1.0); - SetDefaultRegionSize(); -} - -void wxRectangleShape::SetCornerRadius(double rad) -{ - m_cornerRadius = rad; -} - -// Assume (x1, y1) is centre of box (most generally, line end at box) -bool wxRectangleShape::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3) -{ - double bound_x, bound_y; - GetBoundingBoxMax(&bound_x, &bound_y); - oglFindEndForBox(bound_x, bound_y, m_xpos, m_ypos, x2, y2, x3, y3); - - return TRUE; -} - -#ifdef PROLOGIO -void wxRectangleShape::WriteAttributes(wxExpr *clause) -{ - wxShape::WriteAttributes(clause); - clause->AddAttributeValue("x", m_xpos); - clause->AddAttributeValue("y", m_ypos); - - clause->AddAttributeValue("width", m_width); - clause->AddAttributeValue("height", m_height); - if (m_cornerRadius != 0.0) - clause->AddAttributeValue("corner", m_cornerRadius); -} - -void wxRectangleShape::ReadAttributes(wxExpr *clause) -{ - wxShape::ReadAttributes(clause); - clause->AssignAttributeValue("width", &m_width); - clause->AssignAttributeValue("height", &m_height); - clause->AssignAttributeValue("corner", &m_cornerRadius); - - // In case we're reading an old file, set the region's size - if (m_regions.Number() == 1) - { - wxShapeRegion *region = (wxShapeRegion *)m_regions.First()->Data(); - region->SetSize(m_width, m_height); - } -} -#endif - -void wxRectangleShape::Copy(wxShape& copy) -{ - wxShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxRectangleShape)) ); - - wxRectangleShape& rectCopy = (wxRectangleShape&) copy; - rectCopy.m_width = m_width; - rectCopy.m_height = m_height; - rectCopy.m_cornerRadius = m_cornerRadius; -} - -int wxRectangleShape::GetNumberOfAttachments() const -{ - return wxShape::GetNumberOfAttachments(); -} - - -// There are 4 attachment points on a rectangle - 0 = top, 1 = right, 2 = bottom, -// 3 = left. -bool wxRectangleShape::GetAttachmentPosition(int attachment, double *x, double *y, - int nth, int no_arcs, wxLineShape *line) -{ - return wxShape::GetAttachmentPosition(attachment, x, y, nth, no_arcs, line); -} - -// Text object (no box) - -IMPLEMENT_DYNAMIC_CLASS(wxTextShape, wxRectangleShape) - -wxTextShape::wxTextShape(double width, double height): - wxRectangleShape(width, height) -{ -} - -void wxTextShape::OnDraw(wxDC& dc) -{ -} - -void wxTextShape::Copy(wxShape& copy) -{ - wxRectangleShape::Copy(copy); -} - -#ifdef PROLOGIO -void wxTextShape::WriteAttributes(wxExpr *clause) -{ - wxRectangleShape::WriteAttributes(clause); -} -#endif - -// Ellipse object - -IMPLEMENT_DYNAMIC_CLASS(wxEllipseShape, wxShape) - -wxEllipseShape::wxEllipseShape(double w, double h) -{ - m_width = w; m_height = h; - SetDefaultRegionSize(); -} - -void wxEllipseShape::GetBoundingBoxMin(double *w, double *h) -{ - *w = m_width; *h = m_height; -} - -bool wxEllipseShape::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3) -{ - double bound_x, bound_y; - GetBoundingBoxMax(&bound_x, &bound_y); - -// oglFindEndForBox(bound_x, bound_y, m_xpos, m_ypos, x2, y2, x3, y3); - oglDrawArcToEllipse(m_xpos, m_ypos, bound_x, bound_y, x2, y2, x1, y1, x3, y3); - - return TRUE; -} - -void wxEllipseShape::OnDraw(wxDC& dc) -{ - if (m_shadowMode != SHADOW_NONE) - { - if (m_shadowBrush) - dc.SetBrush(* m_shadowBrush); - dc.SetPen(* g_oglTransparentPen); - dc.DrawEllipse((long) ((m_xpos - GetWidth()/2) + m_shadowOffsetX), - (long) ((m_ypos - GetHeight()/2) + m_shadowOffsetY), - (long) GetWidth(), (long) GetHeight()); - } - - if (m_pen) - { - if (m_pen->GetWidth() == 0) - dc.SetPen(* g_oglTransparentPen); - else - dc.SetPen(* m_pen); - } - if (m_brush) - dc.SetBrush(* m_brush); - dc.DrawEllipse((long) (m_xpos - GetWidth()/2), (long) (m_ypos - GetHeight()/2), (long) GetWidth(), (long) GetHeight()); -} - -void wxEllipseShape::SetSize(double x, double y, bool recursive) -{ - SetAttachmentSize(x, y); - m_width = x; - m_height = y; - SetDefaultRegionSize(); -} - -#ifdef PROLOGIO -void wxEllipseShape::WriteAttributes(wxExpr *clause) -{ - wxShape::WriteAttributes(clause); - clause->AddAttributeValue("x", m_xpos); - clause->AddAttributeValue("y", m_ypos); - - clause->AddAttributeValue("width", m_width); - clause->AddAttributeValue("height", m_height); -} - -void wxEllipseShape::ReadAttributes(wxExpr *clause) -{ - wxShape::ReadAttributes(clause); - clause->AssignAttributeValue("width", &m_width); - clause->AssignAttributeValue("height", &m_height); - - // In case we're reading an old file, set the region's size - if (m_regions.Number() == 1) - { - wxShapeRegion *region = (wxShapeRegion *)m_regions.First()->Data(); - region->SetSize(m_width, m_height); - } -} -#endif - -void wxEllipseShape::Copy(wxShape& copy) -{ - wxShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxEllipseShape)) ); - - wxEllipseShape& ellipseCopy = (wxEllipseShape&) copy; - - ellipseCopy.m_width = m_width; - ellipseCopy.m_height = m_height; -} - -int wxEllipseShape::GetNumberOfAttachments() const -{ - return wxShape::GetNumberOfAttachments(); -} - -// There are 4 attachment points on an ellipse - 0 = top, 1 = right, 2 = bottom, -// 3 = left. -bool wxEllipseShape::GetAttachmentPosition(int attachment, double *x, double *y, - int nth, int no_arcs, wxLineShape *line) -{ - if (m_attachmentMode == ATTACHMENT_MODE_BRANCHING) - return wxShape::GetAttachmentPosition(attachment, x, y, nth, no_arcs, line); - - if (m_attachmentMode != ATTACHMENT_MODE_NONE) - { - double top = (double)(m_ypos + m_height/2.0); - double bottom = (double)(m_ypos - m_height/2.0); - double left = (double)(m_xpos - m_width/2.0); - double right = (double)(m_xpos + m_width/2.0); - - int physicalAttachment = LogicalToPhysicalAttachment(attachment); - - switch (physicalAttachment) - { - case 0: - { - if (m_spaceAttachments) - *x = left + (nth + 1)*m_width/(no_arcs + 1); - else *x = m_xpos; - *y = top; - // We now have the point on the bounding box: but get the point on the ellipse - // by imagining a vertical line from (*x, m_ypos - m_height- 500) to (*x, m_ypos) intersecting - // the ellipse. - oglDrawArcToEllipse(m_xpos, m_ypos, m_width, m_height, *x, (double)(m_ypos-m_height-500), *x, m_ypos, x, y); - break; - } - case 1: - { - *x = right; - if (m_spaceAttachments) - *y = bottom + (nth + 1)*m_height/(no_arcs + 1); - else *y = m_ypos; - oglDrawArcToEllipse(m_xpos, m_ypos, m_width, m_height, (double)(m_xpos+m_width+500), *y, m_xpos, *y, x, y); - break; - } - case 2: - { - if (m_spaceAttachments) - *x = left + (nth + 1)*m_width/(no_arcs + 1); - else *x = m_xpos; - *y = bottom; - oglDrawArcToEllipse(m_xpos, m_ypos, m_width, m_height, *x, (double)(m_ypos+m_height+500), *x, m_ypos, x, y); - break; - } - case 3: - { - *x = left; - if (m_spaceAttachments) - *y = bottom + (nth + 1)*m_height/(no_arcs + 1); - else *y = m_ypos; - oglDrawArcToEllipse(m_xpos, m_ypos, m_width, m_height, (double)(m_xpos-m_width-500), *y, m_xpos, *y, x, y); - break; - } - default: - { - return wxShape::GetAttachmentPosition(attachment, x, y, nth, no_arcs, line); - break; - } - } - return TRUE; - } - else - { *x = m_xpos; *y = m_ypos; return TRUE; } -} - - -// Circle object -IMPLEMENT_DYNAMIC_CLASS(wxCircleShape, wxEllipseShape) - -wxCircleShape::wxCircleShape(double diameter):wxEllipseShape(diameter, diameter) -{ - SetMaintainAspectRatio(TRUE); -} - -void wxCircleShape::Copy(wxShape& copy) -{ - wxEllipseShape::Copy(copy); -} - -bool wxCircleShape::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3) -{ - oglFindEndForCircle(m_width/2, - m_xpos, m_ypos, // Centre of circle - x2, y2, // Other end of line - x3, y3); - - return TRUE; -} - -// Control points - -double wxControlPoint::sm_controlPointDragStartX = 0.0; -double wxControlPoint::sm_controlPointDragStartY = 0.0; -double wxControlPoint::sm_controlPointDragStartWidth = 0.0; -double wxControlPoint::sm_controlPointDragStartHeight = 0.0; -double wxControlPoint::sm_controlPointDragEndWidth = 0.0; -double wxControlPoint::sm_controlPointDragEndHeight = 0.0; -double wxControlPoint::sm_controlPointDragPosX = 0.0; -double wxControlPoint::sm_controlPointDragPosY = 0.0; - -IMPLEMENT_DYNAMIC_CLASS(wxControlPoint, wxRectangleShape) - -wxControlPoint::wxControlPoint(wxShapeCanvas *theCanvas, wxShape *object, double size, double the_xoffset, double the_yoffset, int the_type):wxRectangleShape(size, size) -{ - m_canvas = theCanvas; - m_shape = object; - m_xoffset = the_xoffset; - m_yoffset = the_yoffset; - m_type = the_type; - SetPen(g_oglBlackForegroundPen); - SetBrush(wxBLACK_BRUSH); - m_oldCursor = NULL; - m_visible = TRUE; - m_eraseObject = TRUE; -} - -wxControlPoint::~wxControlPoint() -{ -} - -// Don't even attempt to draw any text - waste of time! -void wxControlPoint::OnDrawContents(wxDC& dc) -{ -} - -void wxControlPoint::OnDraw(wxDC& dc) -{ - m_xpos = m_shape->GetX() + m_xoffset; - m_ypos = m_shape->GetY() + m_yoffset; - wxRectangleShape::OnDraw(dc); -} - -void wxControlPoint::OnErase(wxDC& dc) -{ - wxRectangleShape::OnErase(dc); -} - -// Implement resizing of canvas object -void wxControlPoint::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingDragLeft(this, draw, x, y, keys, attachment); -} - -void wxControlPoint::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingBeginDragLeft(this, x, y, keys, attachment); -} - -void wxControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingEndDragLeft(this, x, y, keys, attachment); -} - -int wxControlPoint::GetNumberOfAttachments() const -{ - return 1; -} - -bool wxControlPoint::GetAttachmentPosition(int attachment, double *x, double *y, - int nth, int no_arcs, wxLineShape *line) -{ - *x = m_xpos; *y = m_ypos; - return TRUE; -} - -// Control points ('handles') redirect control to the actual shape, to make it easier -// to override sizing behaviour. -void wxShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys, int attachment) -{ - double bound_x; - double bound_y; - this->GetBoundingBoxMin(&bound_x, &bound_y); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - if (this->GetCentreResize()) - { - // Maintain the same centre point. - double new_width = (double)(2.0*fabs(x - this->GetX())); - double new_height = (double)(2.0*fabs(y - this->GetY())); - - // Constrain sizing according to what control point you're dragging - if (pt->m_type == CONTROL_POINT_HORIZONTAL) - { - if (GetMaintainAspectRatio()) - { - new_height = bound_y*(new_width/bound_x); - } - else - new_height = bound_y; - } - else if (pt->m_type == CONTROL_POINT_VERTICAL) - { - if (GetMaintainAspectRatio()) - { - new_width = bound_x*(new_height/bound_y); - } - else - new_width = bound_x; - } - else if (pt->m_type == CONTROL_POINT_DIAGONAL && (keys & KEY_SHIFT)) - new_height = bound_y*(new_width/bound_x); - - if (this->GetFixedWidth()) - new_width = bound_x; - - if (this->GetFixedHeight()) - new_height = bound_y; - - pt->sm_controlPointDragEndWidth = new_width; - pt->sm_controlPointDragEndHeight = new_height; - - this->GetEventHandler()->OnDrawOutline(dc, this->GetX(), this->GetY(), - new_width, new_height); - } - else - { - // Don't maintain the same centre point! - double newX1 = wxMin(pt->sm_controlPointDragStartX, x); - double newY1 = wxMin(pt->sm_controlPointDragStartY, y); - double newX2 = wxMax(pt->sm_controlPointDragStartX, x); - double newY2 = wxMax(pt->sm_controlPointDragStartY, y); - if (pt->m_type == CONTROL_POINT_HORIZONTAL) - { - newY1 = pt->sm_controlPointDragStartY; - newY2 = newY1 + pt->sm_controlPointDragStartHeight; - } - else if (pt->m_type == CONTROL_POINT_VERTICAL) - { - newX1 = pt->sm_controlPointDragStartX; - newX2 = newX1 + pt->sm_controlPointDragStartWidth; - } - else if (pt->m_type == CONTROL_POINT_DIAGONAL && ((keys & KEY_SHIFT) || GetMaintainAspectRatio())) - { - double newH = (double)((newX2 - newX1)*(pt->sm_controlPointDragStartHeight/pt->sm_controlPointDragStartWidth)); - if (GetY() > pt->sm_controlPointDragStartY) - newY2 = (double)(newY1 + newH); - else - newY1 = (double)(newY2 - newH); - } - double newWidth = (double)(newX2 - newX1); - double newHeight = (double)(newY2 - newY1); - - if (pt->m_type == CONTROL_POINT_VERTICAL && GetMaintainAspectRatio()) - { - newWidth = bound_x * (newHeight/bound_y) ; - } - - if (pt->m_type == CONTROL_POINT_HORIZONTAL && GetMaintainAspectRatio()) - { - newHeight = bound_y * (newWidth/bound_x) ; - } - - pt->sm_controlPointDragPosX = (double)(newX1 + (newWidth/2.0)); - pt->sm_controlPointDragPosY = (double)(newY1 + (newHeight/2.0)); - if (this->GetFixedWidth()) - newWidth = bound_x; - - if (this->GetFixedHeight()) - newHeight = bound_y; - - pt->sm_controlPointDragEndWidth = newWidth; - pt->sm_controlPointDragEndHeight = newHeight; - this->GetEventHandler()->OnDrawOutline(dc, pt->sm_controlPointDragPosX, pt->sm_controlPointDragPosY, newWidth, newHeight); - } -} - -void wxShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - m_canvas->CaptureMouse(); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); -/* - if (pt->m_eraseObject) - this->Erase(dc); -*/ - - dc.SetLogicalFunction(wxXOR); - - double bound_x; - double bound_y; - this->GetBoundingBoxMin(&bound_x, &bound_y); - - // Choose the 'opposite corner' of the object as the stationary - // point in case this is non-centring resizing. - if (pt->GetX() < this->GetX()) - pt->sm_controlPointDragStartX = (double)(this->GetX() + (bound_x/2.0)); - else - pt->sm_controlPointDragStartX = (double)(this->GetX() - (bound_x/2.0)); - - if (pt->GetY() < this->GetY()) - pt->sm_controlPointDragStartY = (double)(this->GetY() + (bound_y/2.0)); - else - pt->sm_controlPointDragStartY = (double)(this->GetY() - (bound_y/2.0)); - - if (pt->m_type == CONTROL_POINT_HORIZONTAL) - pt->sm_controlPointDragStartY = (double)(this->GetY() - (bound_y/2.0)); - else if (pt->m_type == CONTROL_POINT_VERTICAL) - pt->sm_controlPointDragStartX = (double)(this->GetX() - (bound_x/2.0)); - - // We may require the old width and height. - pt->sm_controlPointDragStartWidth = bound_x; - pt->sm_controlPointDragStartHeight = bound_y; - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - if (this->GetCentreResize()) - { - double new_width = (double)(2.0*fabs(x - this->GetX())); - double new_height = (double)(2.0*fabs(y - this->GetY())); - - // Constrain sizing according to what control point you're dragging - if (pt->m_type == CONTROL_POINT_HORIZONTAL) - { - if (GetMaintainAspectRatio()) - { - new_height = bound_y*(new_width/bound_x); - } - else - new_height = bound_y; - } - else if (pt->m_type == CONTROL_POINT_VERTICAL) - { - if (GetMaintainAspectRatio()) - { - new_width = bound_x*(new_height/bound_y); - } - else - new_width = bound_x; - } - else if (pt->m_type == CONTROL_POINT_DIAGONAL && (keys & KEY_SHIFT)) - new_height = bound_y*(new_width/bound_x); - - if (this->GetFixedWidth()) - new_width = bound_x; - - if (this->GetFixedHeight()) - new_height = bound_y; - - pt->sm_controlPointDragEndWidth = new_width; - pt->sm_controlPointDragEndHeight = new_height; - this->GetEventHandler()->OnDrawOutline(dc, this->GetX(), this->GetY(), - new_width, new_height); - } - else - { - // Don't maintain the same centre point! - double newX1 = wxMin(pt->sm_controlPointDragStartX, x); - double newY1 = wxMin(pt->sm_controlPointDragStartY, y); - double newX2 = wxMax(pt->sm_controlPointDragStartX, x); - double newY2 = wxMax(pt->sm_controlPointDragStartY, y); - if (pt->m_type == CONTROL_POINT_HORIZONTAL) - { - newY1 = pt->sm_controlPointDragStartY; - newY2 = newY1 + pt->sm_controlPointDragStartHeight; - } - else if (pt->m_type == CONTROL_POINT_VERTICAL) - { - newX1 = pt->sm_controlPointDragStartX; - newX2 = newX1 + pt->sm_controlPointDragStartWidth; - } - else if (pt->m_type == CONTROL_POINT_DIAGONAL && ((keys & KEY_SHIFT) || GetMaintainAspectRatio())) - { - double newH = (double)((newX2 - newX1)*(pt->sm_controlPointDragStartHeight/pt->sm_controlPointDragStartWidth)); - if (pt->GetY() > pt->sm_controlPointDragStartY) - newY2 = (double)(newY1 + newH); - else - newY1 = (double)(newY2 - newH); - } - double newWidth = (double)(newX2 - newX1); - double newHeight = (double)(newY2 - newY1); - - if (pt->m_type == CONTROL_POINT_VERTICAL && GetMaintainAspectRatio()) - { - newWidth = bound_x * (newHeight/bound_y) ; - } - - if (pt->m_type == CONTROL_POINT_HORIZONTAL && GetMaintainAspectRatio()) - { - newHeight = bound_y * (newWidth/bound_x) ; - } - - pt->sm_controlPointDragPosX = (double)(newX1 + (newWidth/2.0)); - pt->sm_controlPointDragPosY = (double)(newY1 + (newHeight/2.0)); - if (this->GetFixedWidth()) - newWidth = bound_x; - - if (this->GetFixedHeight()) - newHeight = bound_y; - - pt->sm_controlPointDragEndWidth = newWidth; - pt->sm_controlPointDragEndHeight = newHeight; - this->GetEventHandler()->OnDrawOutline(dc, pt->sm_controlPointDragPosX, pt->sm_controlPointDragPosY, newWidth, newHeight); - } -} - -void wxShape::OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - m_canvas->ReleaseMouse(); - dc.SetLogicalFunction(wxCOPY); - this->Recompute(); - this->ResetControlPoints(); - - this->Erase(dc); -/* - if (!pt->m_eraseObject) - this->Show(FALSE); -*/ - - this->SetSize(pt->sm_controlPointDragEndWidth, pt->sm_controlPointDragEndHeight); - - // The next operation could destroy this control point (it does for label objects, - // via formatting the text), so save all values we're going to use, or - // we'll be accessing garbage. - wxShape *theObject = this; - wxShapeCanvas *theCanvas = m_canvas; - bool eraseIt = pt->m_eraseObject; - - if (theObject->GetCentreResize()) - theObject->Move(dc, theObject->GetX(), theObject->GetY()); - else - theObject->Move(dc, pt->sm_controlPointDragPosX, pt->sm_controlPointDragPosY); - -/* - if (!eraseIt) - theObject->Show(TRUE); -*/ - - // Recursively redraw links if we have a composite. - if (theObject->GetChildren().Number() > 0) - theObject->DrawLinks(dc, -1, TRUE); - - double width, height; - theObject->GetBoundingBoxMax(&width, &height); - theObject->GetEventHandler()->OnEndSize(width, height); - - if (!theCanvas->GetQuickEditMode() && eraseIt) theCanvas->Redraw(dc); -} - - - -// Polygon control points - -IMPLEMENT_DYNAMIC_CLASS(wxPolygonControlPoint, wxControlPoint) - -wxPolygonControlPoint::wxPolygonControlPoint(wxShapeCanvas *theCanvas, wxShape *object, double size, - wxRealPoint *vertex, double the_xoffset, double the_yoffset): - wxControlPoint(theCanvas, object, size, the_xoffset, the_yoffset, 0) -{ - m_polygonVertex = vertex; - m_originalDistance = 0.0; -} - -wxPolygonControlPoint::~wxPolygonControlPoint() -{ -} - -// Calculate what new size would be, at end of resize -void wxPolygonControlPoint::CalculateNewSize(double x, double y) -{ - double bound_x; - double bound_y; - GetShape()->GetBoundingBoxMin(&bound_x, &bound_y); - - double dist = (double)sqrt((x - m_shape->GetX())*(x - m_shape->GetX()) + - (y - m_shape->GetY())*(y - m_shape->GetY())); - - m_newSize.x = (double)(dist/this->m_originalDistance)*this->m_originalSize.x; - m_newSize.y = (double)(dist/this->m_originalDistance)*this->m_originalSize.y; -} - - -// Implement resizing polygon or moving the vertex. -void wxPolygonControlPoint::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingDragLeft(this, draw, x, y, keys, attachment); -} - -void wxPolygonControlPoint::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingBeginDragLeft(this, x, y, keys, attachment); -} - -void wxPolygonControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingEndDragLeft(this, x, y, keys, attachment); -} - -// Control points ('handles') redirect control to the actual shape, to make it easier -// to override sizing behaviour. -void wxPolygonShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys, int attachment) -{ - wxPolygonControlPoint* ppt = (wxPolygonControlPoint*) pt; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - if (0) // keys & KEY_CTRL) - { - // TODO: mend this code. Currently we rely on altering the - // actual points, but we should assume we're not, as per - // the normal sizing case. - m_canvas->Snap(&x, &y); - - // Move point - ppt->m_polygonVertex->x = x - this->GetX(); - ppt->m_polygonVertex->y = y - this->GetY(); - ppt->SetX(x); - ppt->SetY(y); - ((wxPolygonShape *)this)->CalculateBoundingBox(); - ((wxPolygonShape *)this)->CalculatePolygonCentre(); - } - else - { - ppt->CalculateNewSize(x, y); - } - - this->GetEventHandler()->OnDrawOutline(dc, this->GetX(), this->GetY(), - ppt->GetNewSize().x, ppt->GetNewSize().y); -} - -void wxPolygonShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - wxPolygonControlPoint* ppt = (wxPolygonControlPoint*) pt; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - this->Erase(dc); - - dc.SetLogicalFunction(wxXOR); - - double bound_x; - double bound_y; - this->GetBoundingBoxMin(&bound_x, &bound_y); - - double dist = (double)sqrt((x - this->GetX())*(x - this->GetX()) + - (y - this->GetY())*(y - this->GetY())); - ppt->m_originalDistance = dist; - ppt->m_originalSize.x = bound_x; - ppt->m_originalSize.y = bound_y; - - if (ppt->m_originalDistance == 0.0) ppt->m_originalDistance = (double) 0.0001; - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - if (0) // keys & KEY_CTRL) - { - // TODO: mend this code. Currently we rely on altering the - // actual points, but we should assume we're not, as per - // the normal sizing case. - m_canvas->Snap(&x, &y); - - // Move point - ppt->m_polygonVertex->x = x - this->GetX(); - ppt->m_polygonVertex->y = y - this->GetY(); - ppt->SetX(x); - ppt->SetY(y); - ((wxPolygonShape *)this)->CalculateBoundingBox(); - ((wxPolygonShape *)this)->CalculatePolygonCentre(); - } - else - { - ppt->CalculateNewSize(x, y); - } - - this->GetEventHandler()->OnDrawOutline(dc, this->GetX(), this->GetY(), - ppt->GetNewSize().x, ppt->GetNewSize().y); - - m_canvas->CaptureMouse(); -} - -void wxPolygonShape::OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - wxPolygonControlPoint* ppt = (wxPolygonControlPoint*) pt; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - m_canvas->ReleaseMouse(); - dc.SetLogicalFunction(wxCOPY); - - // If we're changing shape, must reset the original points - if (keys & KEY_CTRL) - { - ((wxPolygonShape *)this)->CalculateBoundingBox(); - ((wxPolygonShape *)this)->UpdateOriginalPoints(); - } - else - { - SetSize(ppt->GetNewSize().x, ppt->GetNewSize().y); - } - - ((wxPolygonShape *)this)->CalculateBoundingBox(); - ((wxPolygonShape *)this)->CalculatePolygonCentre(); - - this->Recompute(); - this->ResetControlPoints(); - this->Move(dc, this->GetX(), this->GetY()); - if (!m_canvas->GetQuickEditMode()) m_canvas->Redraw(dc); -} - -/* - * Object region - * - */ -IMPLEMENT_DYNAMIC_CLASS(wxShapeRegion, wxObject) - -wxShapeRegion::wxShapeRegion() -{ - m_regionText = ""; - m_font = g_oglNormalFont; - m_minHeight = 5.0; - m_minWidth = 5.0; - m_width = 0.0; - m_height = 0.0; - m_x = 0.0; - m_y = 0.0; - - m_regionProportionX = -1.0; - m_regionProportionY = -1.0; - m_formatMode = FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT; - m_regionName = ""; - m_textColour = "BLACK"; - m_penColour = "BLACK"; - m_penStyle = wxSOLID; - m_actualColourObject = NULL; - m_actualPenObject = NULL; -} - -wxShapeRegion::wxShapeRegion(wxShapeRegion& region) -{ - m_regionText = region.m_regionText; - m_regionName = region.m_regionName; - m_textColour = region.m_textColour; - - m_font = region.m_font; - m_minHeight = region.m_minHeight; - m_minWidth = region.m_minWidth; - m_width = region.m_width; - m_height = region.m_height; - m_x = region.m_x; - m_y = region.m_y; - - m_regionProportionX = region.m_regionProportionX; - m_regionProportionY = region.m_regionProportionY; - m_formatMode = region.m_formatMode; - m_actualColourObject = NULL; - m_actualPenObject = NULL; - m_penStyle = region.m_penStyle; - m_penColour = region.m_penColour; - - ClearText(); - wxNode *node = region.m_formattedText.First(); - while (node) - { - wxShapeTextLine *line = (wxShapeTextLine *)node->Data(); - wxShapeTextLine *new_line = - new wxShapeTextLine(line->GetX(), line->GetY(), line->GetText()); - m_formattedText.Append(new_line); - node = node->Next(); - } -} - -wxShapeRegion::~wxShapeRegion() -{ - ClearText(); -} - -void wxShapeRegion::ClearText() -{ - wxNode *node = m_formattedText.First(); - while (node) - { - wxShapeTextLine *line = (wxShapeTextLine *)node->Data(); - wxNode *next = node->Next(); - delete line; - delete node; - node = next; - } -} - -void wxShapeRegion::SetFont(wxFont *f) -{ - m_font = f; -} - -void wxShapeRegion::SetMinSize(double w, double h) -{ - m_minWidth = w; - m_minHeight = h; -} - -void wxShapeRegion::SetSize(double w, double h) -{ - m_width = w; - m_height = h; -} - -void wxShapeRegion::SetPosition(double xp, double yp) -{ - m_x = xp; - m_y = yp; -} - -void wxShapeRegion::SetProportions(double xp, double yp) -{ - m_regionProportionX = xp; - m_regionProportionY = yp; -} - -void wxShapeRegion::SetFormatMode(int mode) -{ - m_formatMode = mode; -} - -void wxShapeRegion::SetColour(const wxString& col) -{ - m_textColour = col; - m_actualColourObject = NULL; -} - -wxColour *wxShapeRegion::GetActualColourObject() -{ - if (!m_actualColourObject) - m_actualColourObject = wxTheColourDatabase->FindColour(GetColour()); - if (!m_actualColourObject) - m_actualColourObject = wxBLACK; - return m_actualColourObject; -} - -void wxShapeRegion::SetPenColour(const wxString& col) -{ - m_penColour = col; - m_actualPenObject = NULL; -} - -// Returns NULL if the pen is invisible -// (different to pen being transparent; indicates that -// region boundary should not be drawn.) -wxPen *wxShapeRegion::GetActualPen() -{ - if (m_actualPenObject) - return m_actualPenObject; - - if (!m_penColour) return NULL; - if (m_penColour == "Invisible") - return NULL; - m_actualPenObject = wxThePenList->FindOrCreatePen(m_penColour, 1, m_penStyle); - return m_actualPenObject; -} - - diff --git a/utils/ogl/src/basicp.h b/utils/ogl/src/basicp.h deleted file mode 100644 index aa1067764f..0000000000 --- a/utils/ogl/src/basicp.h +++ /dev/null @@ -1,223 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: basicp.h -// Purpose: Private OGL classes and definitions -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_BASICP_H_ -#define _OGL_BASICP_H_ - -#ifdef __GNUG__ -#pragma interface "basicp.h" -#endif - -#define CONTROL_POINT_SIZE 6 - -class wxShapeTextLine: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxShapeTextLine) -public: - wxShapeTextLine(double the_x = 0.0, double the_y = 0.0, const wxString& the_line = ""); - ~wxShapeTextLine(); - - inline double GetX() const { return m_x; } - inline double GetY() const { return m_y; } - - inline void SetX(double x) { m_x = x; } - inline void SetY(double y) { m_y = y; } - - inline void SetText(const wxString& text) { m_line = text; } - inline wxString GetText() const { return m_line; } - -protected: - wxString m_line; - double m_x; - double m_y; -}; - -class wxShape; -class wxControlPoint: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxControlPoint) - - friend class wxShapeEvtHandler; - friend class wxShape; - - public: - wxControlPoint(wxShapeCanvas *the_canvas = NULL, wxShape *object = NULL, double size = 0.0, double the_xoffset = 0.0, - double the_yoffset = 0.0, int the_type = 0); - ~wxControlPoint(); - - void OnDraw(wxDC& dc); - void OnErase(wxDC& dc); - void OnDrawContents(wxDC& dc); - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - - bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - int GetNumberOfAttachments() const; - - inline void SetEraseObject(bool er) { m_eraseObject = er; } - -public: - int m_type; - double m_xoffset; - double m_yoffset; - wxShape* m_shape; - wxCursor* m_oldCursor; - bool m_eraseObject; // If TRUE, erases object before dragging handle. - -/* - * Store original top-left, bottom-right coordinates - * in case we're doing non-vertical resizing. - */ - static double sm_controlPointDragStartX; - static double sm_controlPointDragStartY; - static double sm_controlPointDragStartWidth; - static double sm_controlPointDragStartHeight; - static double sm_controlPointDragEndWidth; - static double sm_controlPointDragEndHeight; - static double sm_controlPointDragPosX; - static double sm_controlPointDragPosY; -}; - -class wxPolygonShape; -class wxPolygonControlPoint: public wxControlPoint -{ - DECLARE_DYNAMIC_CLASS(wxPolygonControlPoint) - friend class wxPolygonShape; - public: - wxPolygonControlPoint(wxShapeCanvas *the_canvas = NULL, wxShape *object = NULL, double size = 0.0, wxRealPoint *vertex = NULL, - double the_xoffset = 0.0, double the_yoffset = 0.0); - ~wxPolygonControlPoint(); - - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - - // Calculate what new size would be, at end of resize - virtual void CalculateNewSize(double x, double y); - - // Get new size - inline wxRealPoint GetNewSize() const { return m_newSize; }; - -public: - wxRealPoint* m_polygonVertex; - wxRealPoint m_originalSize; - double m_originalDistance; - wxRealPoint m_newSize; -}; - -/* - * Object regions. - * Every shape has one or more text regions with various - * properties. Not all of a region's properties will be used - * by a shape. - * - */ - -class wxShapeRegion: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxShapeRegion) - - public: - // Constructor - wxShapeRegion(); - // Copy constructor - wxShapeRegion(wxShapeRegion& region); - // Destructor - ~wxShapeRegion(); - - // Accessors - inline void SetText(const wxString& s) { m_regionText = s; } - void SetFont(wxFont *f); - void SetMinSize(double w, double h); - void SetSize(double w, double h); - void SetPosition(double x, double y); - void SetProportions(double x, double y); - void SetFormatMode(int mode); - inline void SetName(const wxString& s) { m_regionName = s; }; - void SetColour(const wxString& col); // Text colour - - inline wxString GetText() const { return m_regionText; } - inline wxFont *GetFont() const { return m_font; } - inline void GetMinSize(double *x, double *y) const { *x = m_minWidth; *y = m_minHeight; } - inline void GetProportion(double *x, double *y) const { *x = m_regionProportionX; *y = m_regionProportionY; } - inline void GetSize(double *x, double *y) const { *x = m_width; *y = m_height; } - inline void GetPosition(double *xp, double *yp) const { *xp = m_x; *yp = m_y; } - inline int GetFormatMode() const { return m_formatMode; } - inline wxString GetName() const { return m_regionName; } - inline wxString GetColour() const { return m_textColour; } - wxColour *GetActualColourObject(); - inline wxList& GetFormattedText() { return m_formattedText; } - inline wxString GetPenColour() const { return m_penColour; } - inline int GetPenStyle() const { return m_penStyle; } - inline void SetPenStyle(int style) { m_penStyle = style; m_actualPenObject = NULL; } - void SetPenColour(const wxString& col); - wxPen *GetActualPen(); - inline double GetWidth() const { return m_width; } - inline double GetHeight() const { return m_height; } - - void ClearText(); - -public: - wxString m_regionText; - wxList m_formattedText; // List of wxShapeTextLines - wxFont* m_font; - double m_minHeight; // If zero, hide region. - double m_minWidth; // If zero, hide region. - double m_width; - double m_height; - double m_x; - double m_y; - - double m_regionProportionX; // Proportion of total object size; - // -1.0 indicates equal proportion - double m_regionProportionY; // Proportion of total object size; - // -1.0 indicates equal proportion - - int m_formatMode; // FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT | FORMAT_NONE - wxString m_regionName; - wxString m_textColour; - wxColour* m_actualColourObject; // For speed purposes - - // New members for specifying divided rectangle division colour/style 30/6/94 - wxString m_penColour; - int m_penStyle; - wxPen* m_actualPenObject; - -}; - -/* - * User-defined attachment point - */ - -class wxAttachmentPoint: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxAttachmentPoint) - -public: - inline wxAttachmentPoint() - { - m_id = 0; m_x = 0.0; m_y = 0.0; - } - inline wxAttachmentPoint(int id, double x, double y) - { - m_id = id; m_x = x; m_y = y; - } - -public: - int m_id; // Identifier - double m_x; // x offset from centre of object - double m_y; // y offset from centre of object -}; - -#endif - // _OGL_BASICP_H_ diff --git a/utils/ogl/src/bmpshape.cpp b/utils/ogl/src/bmpshape.cpp deleted file mode 100644 index a8715057d3..0000000000 --- a/utils/ogl/src/bmpshape.cpp +++ /dev/null @@ -1,115 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpshape.cpp -// Purpose: Bitmap shape class -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "bmpshape.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "basic.h" -#include "basicp.h" -#include "canvas.h" -#include "bmpshape.h" -#include "misc.h" - -/* - * Bitmap object - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxBitmapShape, wxShape) - -wxBitmapShape::wxBitmapShape():wxRectangleShape(100.0, 50.0) -{ - m_filename = ""; -} - -wxBitmapShape::~wxBitmapShape() -{ -} - -void wxBitmapShape::OnDraw(wxDC& dc) -{ - if (!m_bitmap.Ok()) - return; - - wxMemoryDC tempDC; - tempDC.SelectObject(m_bitmap); - double x, y; - x = WXROUND(m_xpos - m_bitmap.GetWidth() / 2.0); - y = WXROUND(m_ypos - m_bitmap.GetHeight() / 2.0); - dc.Blit((long) x, (long) y, m_bitmap.GetWidth(), m_bitmap.GetHeight(), &tempDC, 0, 0); -} - -void wxBitmapShape::SetSize(double w, double h, bool recursive) -{ - if (m_bitmap.Ok()) - { - w = m_bitmap.GetWidth(); - h = m_bitmap.GetHeight(); - } - - SetAttachmentSize(w, h); - - m_width = w; - m_height = h; - SetDefaultRegionSize(); -} - -#ifdef PROLOGIO -void wxBitmapShape::WriteAttributes(wxExpr *clause) -{ - // Can't really save the bitmap; so instantiate the bitmap - // at a higher level in the application, from a symbol library. - wxRectangleShape::WriteAttributes(clause); - clause->AddAttributeValueString("filename", m_filename); -} - -void wxBitmapShape::ReadAttributes(wxExpr *clause) -{ - wxRectangleShape::ReadAttributes(clause); - clause->GetAttributeValue("filename", m_filename); -} -#endif - -// Does the copying for this object -void wxBitmapShape::Copy(wxShape& copy) -{ - wxRectangleShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxBitmapShape)) ) ; - - wxBitmapShape& bitmapCopy = (wxBitmapShape&) copy; - - bitmapCopy.m_bitmap = m_bitmap; - bitmapCopy.SetFilename(m_filename); -} - -void wxBitmapShape::SetBitmap(const wxBitmap& bm) -{ - m_bitmap = bm; - if (m_bitmap.Ok()) - SetSize(m_bitmap.GetWidth(), m_bitmap.GetHeight()); -} - - diff --git a/utils/ogl/src/bmpshape.h b/utils/ogl/src/bmpshape.h deleted file mode 100644 index 3796dd049f..0000000000 --- a/utils/ogl/src/bmpshape.h +++ /dev/null @@ -1,53 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmpshape.h -// Purpose: wxBitmapShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_BITMAP_H_ -#define _OGL_BITMAP_H_ - -#ifdef __GNUG__ -#pragma interface "bmpshape.h" -#endif - -#include "basic.h" - -class wxBitmapShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxBitmapShape) - public: - wxBitmapShape(); - ~wxBitmapShape(); - - void OnDraw(wxDC& dc); - -#ifdef PROLOGIO - // I/O - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - - // Does the copying for this object - void Copy(wxShape& copy); - - void SetSize(double w, double h, bool recursive = TRUE); - inline wxBitmap& GetBitmap() const { return (wxBitmap&) m_bitmap; } - void SetBitmap(const wxBitmap& bm); - inline void SetFilename(const wxString& f) { m_filename = f; }; - inline wxString GetFilename() const { return m_filename; } - -private: - wxBitmap m_bitmap; - wxString m_filename; -}; - -#endif - // _OGL_BITMAP_H_ - - diff --git a/utils/ogl/src/canvas.cpp b/utils/ogl/src/canvas.cpp deleted file mode 100644 index edc898be23..0000000000 --- a/utils/ogl/src/canvas.cpp +++ /dev/null @@ -1,516 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: canvas.cpp -// Purpose: Shape canvas class -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "canvas.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -#include -#include -#include - -#include "basic.h" -#include "basicp.h" -#include "canvas.h" -#include "ogldiag.h" -#include "misc.h" -#include "lines.h" -#include "composit.h" - -#define CONTROL_POINT_SIZE 6 - -// Control point types -// Rectangle and most other shapes -#define CONTROL_POINT_VERTICAL 1 -#define CONTROL_POINT_HORIZONTAL 2 -#define CONTROL_POINT_DIAGONAL 3 - -// Line -#define CONTROL_POINT_ENDPOINT_TO 4 -#define CONTROL_POINT_ENDPOINT_FROM 5 -#define CONTROL_POINT_LINE 6 - -extern wxCursor *g_oglBullseyeCursor; - -IMPLEMENT_DYNAMIC_CLASS(wxShapeCanvas, wxScrolledWindow) - -BEGIN_EVENT_TABLE(wxShapeCanvas, wxScrolledWindow) - EVT_PAINT(wxShapeCanvas::OnPaint) - EVT_MOUSE_EVENTS(wxShapeCanvas::OnMouseEvent) -END_EVENT_TABLE() - -// Object canvas -wxShapeCanvas::wxShapeCanvas(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style): - wxScrolledWindow(parent, id, pos, size, style) -{ - m_shapeDiagram = NULL; - m_dragState = NoDragging; - m_draggedShape = NULL; - m_oldDragX = 0; - m_oldDragY = 0; - m_firstDragX = 0; - m_firstDragY = 0; - m_checkTolerance = TRUE; -} - -wxShapeCanvas::~wxShapeCanvas() -{ -} - -void wxShapeCanvas::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - - PrepareDC(dc); - - dc.Clear(); - - if (GetDiagram()) - GetDiagram()->Redraw(dc); -} - -void wxShapeCanvas::OnMouseEvent(wxMouseEvent& event) -{ - wxClientDC dc(this); - PrepareDC(dc); - - wxPoint logPos(event.GetLogicalPosition(dc)); - - double x, y; - x = (double) logPos.x; - y = (double) logPos.y; - - int keys = 0; - if (event.ShiftDown()) - keys = keys | KEY_SHIFT; - if (event.ControlDown()) - keys = keys | KEY_CTRL; - - bool dragging = event.Dragging(); - - // Check if we're within the tolerance for mouse movements. - // If we're very close to the position we started dragging - // from, this may not be an intentional drag at all. - if (dragging) - { - int dx = abs(dc.LogicalToDeviceX((long) (x - m_firstDragX))); - int dy = abs(dc.LogicalToDeviceY((long) (y - m_firstDragY))); - if (m_checkTolerance && (dx <= GetDiagram()->GetMouseTolerance()) && (dy <= GetDiagram()->GetMouseTolerance())) - { - return; - } - else - // If we've ignored the tolerance once, then ALWAYS ignore - // tolerance in this drag, even if we come back within - // the tolerance range. - m_checkTolerance = FALSE; - } - - // Dragging - note that the effect of dragging is left entirely up - // to the object, so no movement is done unless explicitly done by - // object. - if (dragging && m_draggedShape && m_dragState == StartDraggingLeft) - { - m_dragState = ContinueDraggingLeft; - - // If the object isn't m_draggable, transfer message to canvas - if (m_draggedShape->Draggable()) - m_draggedShape->GetEventHandler()->OnBeginDragLeft((double)x, (double)y, keys, m_draggedAttachment); - else - { - m_draggedShape = NULL; - OnBeginDragLeft((double)x, (double)y, keys); - } - - m_oldDragX = x; m_oldDragY = y; - } - else if (dragging && m_draggedShape && m_dragState == ContinueDraggingLeft) - { - // Continue dragging - m_draggedShape->GetEventHandler()->OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment); - m_draggedShape->GetEventHandler()->OnDragLeft(TRUE, (double)x, (double)y, keys, m_draggedAttachment); - m_oldDragX = x; m_oldDragY = y; - } - else if (event.LeftUp() && m_draggedShape && m_dragState == ContinueDraggingLeft) - { - m_dragState = NoDragging; - m_checkTolerance = TRUE; - - m_draggedShape->GetEventHandler()->OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment); - - m_draggedShape->GetEventHandler()->OnEndDragLeft((double)x, (double)y, keys, m_draggedAttachment); - m_draggedShape = NULL; - } - else if (dragging && m_draggedShape && m_dragState == StartDraggingRight) - { - m_dragState = ContinueDraggingRight; - - if (m_draggedShape->Draggable()) - m_draggedShape->GetEventHandler()->OnBeginDragRight((double)x, (double)y, keys, m_draggedAttachment); - else - { - m_draggedShape = NULL; - OnBeginDragRight((double)x, (double)y, keys); - } - m_oldDragX = x; m_oldDragY = y; - } - else if (dragging && m_draggedShape && m_dragState == ContinueDraggingRight) - { - // Continue dragging - m_draggedShape->GetEventHandler()->OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment); - m_draggedShape->GetEventHandler()->OnDragRight(TRUE, (double)x, (double)y, keys, m_draggedAttachment); - m_oldDragX = x; m_oldDragY = y; - } - else if (event.RightUp() && m_draggedShape && m_dragState == ContinueDraggingRight) - { - m_dragState = NoDragging; - m_checkTolerance = TRUE; - - m_draggedShape->GetEventHandler()->OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys, m_draggedAttachment); - - m_draggedShape->GetEventHandler()->OnEndDragRight((double)x, (double)y, keys, m_draggedAttachment); - m_draggedShape = NULL; - } - - // All following events sent to canvas, not object - else if (dragging && !m_draggedShape && m_dragState == StartDraggingLeft) - { - m_dragState = ContinueDraggingLeft; - OnBeginDragLeft((double)x, (double)y, keys); - m_oldDragX = x; m_oldDragY = y; - } - else if (dragging && !m_draggedShape && m_dragState == ContinueDraggingLeft) - { - // Continue dragging - OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys); - OnDragLeft(TRUE, (double)x, (double)y, keys); - m_oldDragX = x; m_oldDragY = y; - } - else if (event.LeftUp() && !m_draggedShape && m_dragState == ContinueDraggingLeft) - { - m_dragState = NoDragging; - m_checkTolerance = TRUE; - - OnDragLeft(FALSE, m_oldDragX, m_oldDragY, keys); - OnEndDragLeft((double)x, (double)y, keys); - m_draggedShape = NULL; - } - else if (dragging && !m_draggedShape && m_dragState == StartDraggingRight) - { - m_dragState = ContinueDraggingRight; - OnBeginDragRight((double)x, (double)y, keys); - m_oldDragX = x; m_oldDragY = y; - } - else if (dragging && !m_draggedShape && m_dragState == ContinueDraggingRight) - { - // Continue dragging - OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys); - OnDragRight(TRUE, (double)x, (double)y, keys); - m_oldDragX = x; m_oldDragY = y; - } - else if (event.RightUp() && !m_draggedShape && m_dragState == ContinueDraggingRight) - { - m_dragState = NoDragging; - m_checkTolerance = TRUE; - - OnDragRight(FALSE, m_oldDragX, m_oldDragY, keys); - OnEndDragRight((double)x, (double)y, keys); - m_draggedShape = NULL; - } - - // Non-dragging events - else if (event.IsButton()) - { - m_checkTolerance = TRUE; - - // Find the nearest object - int attachment = 0; - wxShape *nearest_object = FindShape(x, y, &attachment); - if (nearest_object) // Object event - { - if (event.LeftDown()) - { - m_draggedShape = nearest_object; - m_draggedAttachment = attachment; - m_dragState = StartDraggingLeft; - m_firstDragX = x; - m_firstDragY = y; - } - else if (event.LeftUp()) - { - // N.B. Only register a click if the same object was - // identified for down *and* up. - if (nearest_object == m_draggedShape) - nearest_object->GetEventHandler()->OnLeftClick((double)x, (double)y, keys, attachment); - - m_draggedShape = NULL; - m_dragState = NoDragging; - } - else if (event.LeftDClick()) - { - nearest_object->GetEventHandler()->OnLeftDoubleClick((double)x, (double)y, keys, attachment); - - m_draggedShape = NULL; - m_dragState = NoDragging; - } - else if (event.RightDown()) - { - m_draggedShape = nearest_object; - m_draggedAttachment = attachment; - m_dragState = StartDraggingRight; - m_firstDragX = x; - m_firstDragY = y; - } - else if (event.RightUp()) - { - if (nearest_object == m_draggedShape) - nearest_object->GetEventHandler()->OnRightClick((double)x, (double)y, keys, attachment); - - m_draggedShape = NULL; - m_dragState = NoDragging; - } - } - else // Canvas event (no nearest object) - { - if (event.LeftDown()) - { - m_draggedShape = NULL; - m_dragState = StartDraggingLeft; - m_firstDragX = x; - m_firstDragY = y; - } - else if (event.LeftUp()) - { - OnLeftClick((double)x, (double)y, keys); - - m_draggedShape = NULL; - m_dragState = NoDragging; - } - else if (event.RightDown()) - { - m_draggedShape = NULL; - m_dragState = StartDraggingRight; - m_firstDragX = x; - m_firstDragY = y; - } - else if (event.RightUp()) - { - OnRightClick((double)x, (double)y, keys); - - m_draggedShape = NULL; - m_dragState = NoDragging; - } - } - } -} - -/* - * Try to find a sensitive object, working up the hierarchy of composites. - * - */ -wxShape *wxShapeCanvas::FindFirstSensitiveShape(double x, double y, int *new_attachment, int op) -{ - wxShape *image = FindShape(x, y, new_attachment); - if (!image) return NULL; - - wxShape *actualImage = FindFirstSensitiveShape1(image, op); - if (actualImage) - { - double dist; - // Find actual attachment - actualImage->HitTest(x, y, new_attachment, &dist); - } - return actualImage; -} - -wxShape *wxShapeCanvas::FindFirstSensitiveShape1(wxShape *image, int op) -{ - if (image->GetSensitivityFilter() & op) - return image; - if (image->GetParent()) - return FindFirstSensitiveShape1(image->GetParent(), op); - return NULL; -} - -// Helper function: TRUE if 'contains' wholly contains 'contained'. -static bool WhollyContains(wxShape *contains, wxShape *contained) -{ - double xp1, yp1, xp2, yp2; - double w1, h1, w2, h2; - double left1, top1, right1, bottom1, left2, top2, right2, bottom2; - - xp1 = contains->GetX(); yp1 = contains->GetY(); xp2 = contained->GetX(); yp2 = contained->GetY(); - contains->GetBoundingBoxMax(&w1, &h1); - contained->GetBoundingBoxMax(&w2, &h2); - - left1 = (double)(xp1 - (w1 / 2.0)); - top1 = (double)(yp1 - (h1 / 2.0)); - right1 = (double)(xp1 + (w1 / 2.0)); - bottom1 = (double)(yp1 + (h1 / 2.0)); - - left2 = (double)(xp2 - (w2 / 2.0)); - top2 = (double)(yp2 - (h2 / 2.0)); - right2 = (double)(xp2 + (w2 / 2.0)); - bottom2 = (double)(yp2 + (h2 / 2.0)); - - return ((left1 <= left2) && (top1 <= top2) && (right1 >= right2) && (bottom1 >= bottom2)); -} - -wxShape *wxShapeCanvas::FindShape(double x, double y, int *attachment, wxClassInfo *info, wxShape *notObject) -{ - double nearest = 100000.0; - int nearest_attachment = 0; - wxShape *nearest_object = NULL; - - // Go backward through the object list, since we want: - // (a) to have the control points drawn LAST to overlay - // the other objects - // (b) to find the control points FIRST if they exist - - wxNode *current = GetDiagram()->GetShapeList()->Last(); - while (current) - { - wxShape *object = (wxShape *)current->Data(); - - double dist; - int temp_attachment; - - // First pass for lines, which might be inside a container, so we - // want lines to take priority over containers. This first loop - // could fail if we clickout side a line, so then we'll - // try other shapes. - if (object->IsShown() && - object->IsKindOf(CLASSINFO(wxLineShape)) && - object->HitTest(x, y, &temp_attachment, &dist) && - ((info == NULL) || object->IsKindOf(info)) && - (!notObject || !notObject->HasDescendant(object))) - { - // A line is trickier to spot than a normal object. - // For a line, since it's the diagonal of the box - // we use for the hit test, we may have several - // lines in the box and therefore we need to be able - // to specify the nearest point to the centre of the line - // as our hit criterion, to give the user some room for - // manouevre. - if (dist < nearest) - { - nearest = dist; - nearest_object = object; - nearest_attachment = temp_attachment; - } - } - if (current) - current = current->Previous(); - } - - current = GetDiagram()->GetShapeList()->Last(); - while (current) - { - wxShape *object = (wxShape *)current->Data(); - double dist; - int temp_attachment; - - // On second pass, only ever consider non-composites or divisions. If children want to pass - // up control to the composite, that's up to them. - if (object->IsShown() && (object->IsKindOf(CLASSINFO(wxDivisionShape)) || !object->IsKindOf(CLASSINFO(wxCompositeShape))) - && object->HitTest(x, y, &temp_attachment, &dist) && ((info == NULL) || object->IsKindOf(info)) && - (!notObject || !notObject->HasDescendant(object))) - { - if (!object->IsKindOf(CLASSINFO(wxLineShape))) - { - // If we've hit a container, and we have already found a line in the - // first pass, then ignore the container in case the line is in the container. - // Check for division in case line straddles divisions (i.e. is not wholly contained). - if (!nearest_object || !(object->IsKindOf(CLASSINFO(wxDivisionShape)) || WhollyContains(object, nearest_object))) - { - nearest = dist; - nearest_object = object; - nearest_attachment = temp_attachment; - current = NULL; - } - } - } - if (current) - current = current->Previous(); - } - - *attachment = nearest_attachment; - return nearest_object; -} - -/* - * Higher-level events called by OnEvent - * - */ - -void wxShapeCanvas::OnLeftClick(double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnRightClick(double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnDragLeft(bool draw, double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnBeginDragLeft(double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnEndDragLeft(double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnDragRight(bool draw, double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnBeginDragRight(double x, double y, int keys) -{ -} - -void wxShapeCanvas::OnEndDragRight(double x, double y, int keys) -{ -} - -void wxShapeCanvas::AddShape(wxShape *object, wxShape *addAfter) - { GetDiagram()->AddShape(object, addAfter); } -void wxShapeCanvas::InsertShape(wxShape *object) - { GetDiagram()->InsertShape(object); } -void wxShapeCanvas::RemoveShape(wxShape *object) - { GetDiagram()->RemoveShape(object); } -bool wxShapeCanvas::GetQuickEditMode() - { return GetDiagram()->GetQuickEditMode(); } -void wxShapeCanvas::Redraw(wxDC& dc) - { GetDiagram()->Redraw(dc); } -void wxShapeCanvas::Snap(double *x, double *y) - { GetDiagram()->Snap(x, y); } diff --git a/utils/ogl/src/canvas.h b/utils/ogl/src/canvas.h deleted file mode 100644 index faeaaa30ad..0000000000 --- a/utils/ogl/src/canvas.h +++ /dev/null @@ -1,83 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: canvas.h -// Purpose: wxShapeCanvas -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_CANVAS_H_ -#define _OGL_CANVAS_H_ - -#ifdef __GNUG__ -#pragma interface "canvas.h" -#endif - -// Drag states -#define NoDragging 0 -#define StartDraggingLeft 1 -#define ContinueDraggingLeft 2 -#define StartDraggingRight 3 -#define ContinueDraggingRight 4 - -// When drag_count reaches 0, process drag message - -class wxDiagram; - -class wxShapeCanvas: public wxScrolledWindow -{ - DECLARE_DYNAMIC_CLASS(wxShapeCanvas) - public: - wxShapeCanvas(wxWindow *parent = NULL, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxBORDER | wxRETAINED); - ~wxShapeCanvas(); - - inline void SetDiagram(wxDiagram *diag) { m_shapeDiagram = diag; } - inline wxDiagram *GetDiagram() const { return m_shapeDiagram; } - - virtual void OnLeftClick(double x, double y, int keys = 0); - virtual void OnRightClick(double x, double y, int keys = 0); - - virtual void OnDragLeft(bool draw, double x, double y, int keys=0); // Erase if draw false - virtual void OnBeginDragLeft(double x, double y, int keys=0); - virtual void OnEndDragLeft(double x, double y, int keys=0); - - virtual void OnDragRight(bool draw, double x, double y, int keys=0); // Erase if draw false - virtual void OnBeginDragRight(double x, double y, int keys=0); - virtual void OnEndDragRight(double x, double y, int keys=0); - - // Find object for mouse click, of given wxClassInfo (NULL for any type). - // If notImage is non-NULL, don't find an object that is equal to or a descendant of notImage - virtual wxShape *FindShape(double x, double y, int *attachment, wxClassInfo *info = NULL, wxShape *notImage = NULL); - wxShape *FindFirstSensitiveShape(double x, double y, int *new_attachment, int op); - wxShape *FindFirstSensitiveShape1(wxShape *image, int op); - - // Redirect to wxDiagram object - virtual void AddShape(wxShape *object, wxShape *addAfter = NULL); - virtual void InsertShape(wxShape *object); - virtual void RemoveShape(wxShape *object); - virtual bool GetQuickEditMode(); - virtual void Redraw(wxDC& dc); - void Snap(double *x, double *y); - - // Events - void OnPaint(wxPaintEvent& event); - void OnMouseEvent(wxMouseEvent& event); - - protected: - wxDiagram* m_shapeDiagram; - int m_dragState; - double m_oldDragX, m_oldDragY; // Previous drag coordinates - double m_firstDragX, m_firstDragY; // INITIAL drag coordinates - bool m_checkTolerance; // Whether to check drag tolerance - wxShape* m_draggedShape; - int m_draggedAttachment; - -DECLARE_EVENT_TABLE() -}; - -#endif - // _OGL_CANVAS_H_ diff --git a/utils/ogl/src/composit.cpp b/utils/ogl/src/composit.cpp deleted file mode 100644 index c5118f64e7..0000000000 --- a/utils/ogl/src/composit.cpp +++ /dev/null @@ -1,1761 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: composit.cpp -// Purpose: Composite OGL class -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "composit.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "basic.h" -#include "basicp.h" -#include "constrnt.h" -#include "composit.h" -#include "misc.h" -#include "canvas.h" - -// Sometimes, objects need to access the whole database to -// construct themselves. -wxExprDatabase *GlobalwxExprDatabase = NULL; - -// Popup menu for editing divisions -wxMenu *oglPopupDivisionMenu = NULL; - -/* - * Division control point - */ - -class wxDivisionControlPoint: public wxControlPoint -{ - DECLARE_DYNAMIC_CLASS(wxDivisionControlPoint) - public: - wxDivisionControlPoint() {} - wxDivisionControlPoint(wxShapeCanvas *the_canvas, wxShape *object, double size, double the_xoffset, double the_yoffset, int the_type); - ~wxDivisionControlPoint(); - - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); -}; - -IMPLEMENT_DYNAMIC_CLASS(wxDivisionControlPoint, wxControlPoint) - -/* - * Composite object - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxCompositeShape, wxRectangleShape) - -wxCompositeShape::wxCompositeShape(): wxRectangleShape(10.0, 10.0) -{ -// selectable = FALSE; - m_oldX = m_xpos; - m_oldY = m_ypos; -} - -wxCompositeShape::~wxCompositeShape() -{ - wxNode *node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - delete constraint; - node = node->Next(); - } - node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - wxNode *next = node->Next(); - object->Unlink(); - delete object; - node = next; - } -} - -void wxCompositeShape::OnDraw(wxDC& dc) -{ - double x1 = (double)(m_xpos - m_width/2.0); - double y1 = (double)(m_ypos - m_height/2.0); - - if (m_shadowMode != SHADOW_NONE) - { - if (m_shadowBrush) - dc.SetBrush(* m_shadowBrush); - dc.SetPen(* g_oglTransparentPen); - - if (m_cornerRadius != 0.0) - dc.DrawRoundedRectangle(WXROUND(x1 + m_shadowOffsetX), WXROUND(y1 + m_shadowOffsetY), - WXROUND(m_width), WXROUND(m_height), m_cornerRadius); - else - dc.DrawRectangle(WXROUND(x1 + m_shadowOffsetX), WXROUND(y1 + m_shadowOffsetY), WXROUND(m_width), WXROUND(m_height)); - } -} - -void wxCompositeShape::OnDrawContents(wxDC& dc) -{ - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - object->Draw(dc); - object->DrawLinks(dc); - node = node->Next(); - } - wxShape::OnDrawContents(dc); -} - -bool wxCompositeShape::OnMovePre(wxDC& dc, double x, double y, double oldx, double oldy, bool display) -{ - double diffX = x - oldx; - double diffY = y - oldy; - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - - object->Erase(dc); - object->Move(dc, object->GetX() + diffX, object->GetY() + diffY, display); - - node = node->Next(); - } - return TRUE; -} - -void wxCompositeShape::OnErase(wxDC& dc) -{ - wxRectangleShape::OnErase(dc); - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - object->Erase(dc); - node = node->Next(); - } -} - -static double objectStartX = 0.0; -static double objectStartY = 0.0; - -void wxCompositeShape::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - double xx = x; - double yy = y; - m_canvas->Snap(&xx, &yy); - double offsetX = xx - objectStartX; - double offsetY = yy - objectStartY; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - GetEventHandler()->OnDrawOutline(dc, GetX() + offsetX, GetY() + offsetY, GetWidth(), GetHeight()); -// wxShape::OnDragLeft(draw, x, y, keys, attachment); -} - -void wxCompositeShape::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - objectStartX = x; - objectStartY = y; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - Erase(dc); - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - m_canvas->CaptureMouse(); - - double xx = x; - double yy = y; - m_canvas->Snap(&xx, &yy); - double offsetX = xx - objectStartX; - double offsetY = yy - objectStartY; - - GetEventHandler()->OnDrawOutline(dc, GetX() + offsetX, GetY() + offsetY, GetWidth(), GetHeight()); - -// wxShape::OnBeginDragLeft(x, y, keys, attachment); -} - -void wxCompositeShape::OnEndDragLeft(double x, double y, int keys, int attachment) -{ -// wxShape::OnEndDragLeft(x, y, keys, attachment); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - m_canvas->ReleaseMouse(); - - if (!m_draggable) - { - if (m_parent) m_parent->GetEventHandler()->OnEndDragLeft(x, y, keys, 0); - return; - } - - dc.SetLogicalFunction(wxCOPY); - double xx = x; - double yy = y; - m_canvas->Snap(&xx, &yy); - double offsetX = xx - objectStartX; - double offsetY = yy - objectStartY; - - Move(dc, GetX() + offsetX, GetY() + offsetY); - - if (m_canvas && !m_canvas->GetQuickEditMode()) m_canvas->Redraw(dc); -} - -void wxCompositeShape::OnRightClick(double x, double y, int keys, int attachment) -{ - // If we get a ctrl-right click, this means send the message to - // the division, so we can invoke a user interface for dealing with regions. - if (keys & KEY_CTRL) - { - wxNode *node = m_divisions.First(); - while (node) - { - wxDivisionShape *division = (wxDivisionShape *)node->Data(); - wxNode *next = node->Next(); - int attach = 0; - double dist = 0.0; - if (division->HitTest(x, y, &attach, &dist)) - { - division->GetEventHandler()->OnRightClick(x, y, keys, attach); - node = NULL; - } - if (node) - node = next; - } - } -} - -void wxCompositeShape::SetSize(double w, double h, bool recursive) -{ - SetAttachmentSize(w, h); - - double xScale = (double)(w/(wxMax(1.0, GetWidth()))); - double yScale = (double)(h/(wxMax(1.0, GetHeight()))); - - m_width = w; - m_height = h; - - if (!recursive) return; - - wxNode *node = m_children.First(); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - double xBound, yBound; - while (node) - { - wxShape *object = (wxShape *)node->Data(); - - // Scale the position first - double newX = (double)(((object->GetX() - GetX())*xScale) + GetX()); - double newY = (double)(((object->GetY() - GetY())*yScale) + GetY()); - object->Show(FALSE); - object->Move(dc, newX, newY); - object->Show(TRUE); - - // Now set the scaled size - object->GetBoundingBoxMin(&xBound, &yBound); - object->SetSize(object->GetFixedWidth() ? xBound : xScale*xBound, - object->GetFixedHeight() ? yBound : yScale*yBound); - - node = node->Next(); - } - SetDefaultRegionSize(); -} - -void wxCompositeShape::AddChild(wxShape *child, wxShape *addAfter) -{ - m_children.Append(child); - child->SetParent(this); - if (m_canvas) - { - // Ensure we add at the right position - if (addAfter) - child->RemoveFromCanvas(m_canvas); - child->AddToCanvas(m_canvas, addAfter); - } -} - -void wxCompositeShape::RemoveChild(wxShape *child) -{ - m_children.DeleteObject(child); - m_divisions.DeleteObject(child); - RemoveChildFromConstraints(child); - child->SetParent(NULL); -} - -void wxCompositeShape::DeleteConstraintsInvolvingChild(wxShape *child) -{ - wxNode *node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - wxNode *nextNode = node->Next(); - - if ((constraint->m_constrainingObject == child) || - constraint->m_constrainedObjects.Member(child)) - { - delete constraint; - delete node; - } - node = nextNode; - } -} - -void wxCompositeShape::RemoveChildFromConstraints(wxShape *child) -{ - wxNode *node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - wxNode *nextNode = node->Next(); - - if (constraint->m_constrainedObjects.Member(child)) - constraint->m_constrainedObjects.DeleteObject(child); - if (constraint->m_constrainingObject == child) - constraint->m_constrainingObject = NULL; - - // Delete the constraint if no participants left - if (!constraint->m_constrainingObject) - { - delete constraint; - delete node; - } - - node = nextNode; - } -} - -void wxCompositeShape::Copy(wxShape& copy) -{ - wxRectangleShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxCompositeShape)) ) ; - - wxCompositeShape& compositeCopy = (wxCompositeShape&) copy; - - // Associate old and new copies for compositeCopying constraints and division geometry - oglObjectCopyMapping.Append((long)this, &compositeCopy); - - // Copy the children - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - wxShape *newObject = object->CreateNewCopy(FALSE, FALSE); - if (newObject->GetId() == 0) - newObject->SetId(NewId()); - - newObject->SetParent(&compositeCopy); - compositeCopy.m_children.Append(newObject); - - // Some m_children may be divisions - if (m_divisions.Member(object)) - compositeCopy.m_divisions.Append(newObject); - - oglObjectCopyMapping.Append((long)object, newObject); - - node = node->Next(); - } - - // Copy the constraints - node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - - wxShape *newConstraining = (wxShape *)(oglObjectCopyMapping.Find((long)constraint->m_constrainingObject)->Data()); - - wxList newConstrainedList; - wxNode *node2 = constraint->m_constrainedObjects.First(); - while (node2) - { - wxShape *constrainedObject = (wxShape *)node2->Data(); - wxShape *newConstrained = (wxShape *)(oglObjectCopyMapping.Find((long)constrainedObject)->Data()); - newConstrainedList.Append(newConstrained); - node2 = node2->Next(); - } - - wxOGLConstraint *newConstraint = new wxOGLConstraint(constraint->m_constraintType, newConstraining, - newConstrainedList); - newConstraint->m_constraintId = constraint->m_constraintId; - if (constraint->m_constraintName) - { - newConstraint->m_constraintName = constraint->m_constraintName; - } - newConstraint->SetSpacing(constraint->m_xSpacing, constraint->m_ySpacing); - compositeCopy.m_constraints.Append(newConstraint); - - node = node->Next(); - } - - // Now compositeCopy the division geometry - node = m_divisions.First(); - while (node) - { - wxDivisionShape *division = (wxDivisionShape *)node->Data(); - wxNode *node1 = oglObjectCopyMapping.Find((long)division); - wxNode *leftNode = NULL; - wxNode *topNode = NULL; - wxNode *rightNode = NULL; - wxNode *bottomNode = NULL; - if (division->GetLeftSide()) - leftNode = oglObjectCopyMapping.Find((long)division->GetLeftSide()); - if (division->GetTopSide()) - topNode = oglObjectCopyMapping.Find((long)division->GetTopSide()); - if (division->GetRightSide()) - rightNode = oglObjectCopyMapping.Find((long)division->GetRightSide()); - if (division->GetBottomSide()) - bottomNode = oglObjectCopyMapping.Find((long)division->GetBottomSide()); - if (node1) - { - wxDivisionShape *newDivision = (wxDivisionShape *)node1->Data(); - if (leftNode) - newDivision->SetLeftSide((wxDivisionShape *)leftNode->Data()); - if (topNode) - newDivision->SetTopSide((wxDivisionShape *)topNode->Data()); - if (rightNode) - newDivision->SetRightSide((wxDivisionShape *)rightNode->Data()); - if (bottomNode) - newDivision->SetBottomSide((wxDivisionShape *)bottomNode->Data()); - } - node = node->Next(); - } -} - -wxOGLConstraint *wxCompositeShape::AddConstraint(wxOGLConstraint *constraint) -{ - m_constraints.Append(constraint); - if (constraint->m_constraintId == 0) - constraint->m_constraintId = NewId(); - return constraint; -} - -wxOGLConstraint *wxCompositeShape::AddConstraint(int type, wxShape *constraining, wxList& constrained) -{ - wxOGLConstraint *constraint = new wxOGLConstraint(type, constraining, constrained); - if (constraint->m_constraintId == 0) - constraint->m_constraintId = NewId(); - m_constraints.Append(constraint); - return constraint; -} - -wxOGLConstraint *wxCompositeShape::AddConstraint(int type, wxShape *constraining, wxShape *constrained) -{ - wxList l; - l.Append(constrained); - wxOGLConstraint *constraint = new wxOGLConstraint(type, constraining, l); - if (constraint->m_constraintId == 0) - constraint->m_constraintId = NewId(); - m_constraints.Append(constraint); - return constraint; -} - -wxOGLConstraint *wxCompositeShape::FindConstraint(long cId, wxCompositeShape **actualComposite) -{ - wxNode *node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - if (constraint->m_constraintId == cId) - { - if (actualComposite) - *actualComposite = this; - return constraint; - } - node = node->Next(); - } - // If not found, try children. - node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - if (child->IsKindOf(CLASSINFO(wxCompositeShape))) - { - wxOGLConstraint *constraint = ((wxCompositeShape *)child)->FindConstraint(cId, actualComposite); - if (constraint) - { - if (actualComposite) - *actualComposite = (wxCompositeShape *)child; - return constraint; - } - } - node = node->Next(); - } - return NULL; -} - -void wxCompositeShape::DeleteConstraint(wxOGLConstraint *constraint) -{ - m_constraints.DeleteObject(constraint); - delete constraint; -} - -void wxCompositeShape::CalculateSize() -{ - double maxX = (double) -999999.9; - double maxY = (double) -999999.9; - double minX = (double) 999999.9; - double minY = (double) 999999.9; - - double w, h; - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - - // Recalculate size of composite objects because may not conform - // to size it was set to - depends on the children. - object->CalculateSize(); - - object->GetBoundingBoxMax(&w, &h); - if ((object->GetX() + (w/2.0)) > maxX) - maxX = (double)(object->GetX() + (w/2.0)); - if ((object->GetX() - (w/2.0)) < minX) - minX = (double)(object->GetX() - (w/2.0)); - if ((object->GetY() + (h/2.0)) > maxY) - maxY = (double)(object->GetY() + (h/2.0)); - if ((object->GetY() - (h/2.0)) < minY) - minY = (double)(object->GetY() - (h/2.0)); - - node = node->Next(); - } - m_width = maxX - minX; - m_height = maxY - minY; - m_xpos = (double)(m_width/2.0 + minX); - m_ypos = (double)(m_height/2.0 + minY); -} - -bool wxCompositeShape::Recompute() -{ - int noIterations = 0; - bool changed = TRUE; - while (changed && (noIterations < 500)) - { - changed = Constrain(); - noIterations ++; - } -/* -#ifdef wx_x - if (changed) - cerr << "Warning: constraint algorithm failed after 500 iterations.\n"; -#endif -*/ - return (!changed); -} - -bool wxCompositeShape::Constrain() -{ - CalculateSize(); - - bool changed = FALSE; - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - if (object->Constrain()) - changed = TRUE; - node = node->Next(); - } - - node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - if (constraint->Evaluate()) changed = TRUE; - node = node->Next(); - } - return changed; -} - -#ifdef PROLOGIO -void wxCompositeShape::WriteAttributes(wxExpr *clause) -{ - wxRectangleShape::WriteAttributes(clause); - -// clause->AddAttributeValue("selectable", (long)selectable); - - // Output constraints as constraint1 = (...), constraint2 = (...), etc. - int constraintNo = 1; - char m_constraintNameBuf[20]; - wxNode *node = m_constraints.First(); - while (node) - { - wxOGLConstraint *constraint = (wxOGLConstraint *)node->Data(); - sprintf(m_constraintNameBuf, "constraint%d", constraintNo); - - // Each constraint is stored in the form - // (type name id xspacing yspacing m_constrainingObjectId constrainedObjectIdList) - wxExpr *constraintExpr = new wxExpr(wxExprList); - constraintExpr->Append(new wxExpr((long)constraint->m_constraintType)); - constraintExpr->Append(new wxExpr(wxExprString, constraint->m_constraintName)); - constraintExpr->Append(new wxExpr(constraint->m_constraintId)); - constraintExpr->Append(new wxExpr(constraint->m_xSpacing)); - constraintExpr->Append(new wxExpr(constraint->m_ySpacing)); - constraintExpr->Append(new wxExpr(constraint->m_constrainingObject->GetId())); - - wxExpr *objectList = new wxExpr(wxExprList); - wxNode *node1 = constraint->m_constrainedObjects.First(); - while (node1) - { - wxShape *obj = (wxShape *)node1->Data(); - objectList->Append(new wxExpr(obj->GetId())); - node1 = node1->Next(); - } - constraintExpr->Append(objectList); - - clause->AddAttributeValue(m_constraintNameBuf, constraintExpr); - - node = node->Next(); - constraintNo ++; - } - - // Write the ids of all the child images - wxExpr *childrenExpr = new wxExpr(wxExprList); - node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - childrenExpr->Append(new wxExpr(child->GetId())); - node = node->Next(); - } - clause->AddAttributeValue("children", childrenExpr); - - // Write the ids of all the division images - if (m_divisions.Number() > 0) - { - wxExpr *divisionsExpr = new wxExpr(wxExprList); - node = m_divisions.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - divisionsExpr->Append(new wxExpr(child->GetId())); - node = node->Next(); - } - clause->AddAttributeValue("divisions", divisionsExpr); - } -} - -// Problem. Child images are always written AFTER the parent -// so as to be able to link up to parent. So we may not be able -// to find the constraint participants until we've read everything -// in. Need to have another pass for composites. -void wxCompositeShape::ReadAttributes(wxExpr *clause) -{ - wxRectangleShape::ReadAttributes(clause); - -// clause->GetAttributeValue("selectable", selectable); -} - -void wxCompositeShape::ReadConstraints(wxExpr *clause, wxExprDatabase *database) -{ - // Constraints are output as constraint1 = (...), constraint2 = (...), etc. - int constraintNo = 1; - char m_constraintNameBuf[20]; - bool haveConstraints = TRUE; - - while (haveConstraints) - { - sprintf(m_constraintNameBuf, "constraint%d", constraintNo); - wxExpr *constraintExpr = NULL; - clause->GetAttributeValue(m_constraintNameBuf, &constraintExpr); - if (!constraintExpr) - { - haveConstraints = FALSE; - break; - } - int cType = 0; - double cXSpacing = 0.0; - double cYSpacing = 0.0; - wxString cName(""); - long cId = 0; - wxShape *m_constrainingObject = NULL; - wxList m_constrainedObjects; - - // Each constraint is stored in the form - // (type name id xspacing yspacing m_constrainingObjectId constrainedObjectIdList) - - wxExpr *typeExpr = constraintExpr->Nth(0); - wxExpr *nameExpr = constraintExpr->Nth(1); - wxExpr *idExpr = constraintExpr->Nth(2); - wxExpr *xExpr = constraintExpr->Nth(3); - wxExpr *yExpr = constraintExpr->Nth(4); - wxExpr *constrainingExpr = constraintExpr->Nth(5); - wxExpr *constrainedExpr = constraintExpr->Nth(6); - - cType = (int)typeExpr->IntegerValue(); - cXSpacing = xExpr->RealValue(); - cYSpacing = yExpr->RealValue(); - cName = nameExpr->StringValue(); - cId = idExpr->IntegerValue(); - - wxExpr *objExpr1 = database->HashFind("node_image", constrainingExpr->IntegerValue()); - if (objExpr1 && objExpr1->GetClientData()) - m_constrainingObject = (wxShape *)objExpr1->GetClientData(); - else - wxFatalError("Couldn't find constraining image of composite.", "Object graphics error"); - - int i = 0; - wxExpr *currentIdExpr = constrainedExpr->Nth(i); - while (currentIdExpr) - { - long currentId = currentIdExpr->IntegerValue(); - wxExpr *objExpr2 = database->HashFind("node_image", currentId); - if (objExpr2 && objExpr2->GetClientData()) - { - m_constrainedObjects.Append((wxShape *)objExpr2->GetClientData()); - } - else - { - wxFatalError("Couldn't find constrained image of composite.", "Object graphics error"); - } - - i ++; - currentIdExpr = constrainedExpr->Nth(i); - } - wxOGLConstraint *newConstraint = AddConstraint(cType, m_constrainingObject, m_constrainedObjects); - newConstraint->SetSpacing(cXSpacing, cYSpacing); - newConstraint->m_constraintId = cId; - newConstraint->m_constraintName = (const char*) cName; - constraintNo ++; - } -} -#endif - -// Make this composite into a container by creating one wxDivisionShape -void wxCompositeShape::MakeContainer() -{ - wxDivisionShape *division = OnCreateDivision(); - m_divisions.Append(division); - AddChild(division); - - division->SetSize(m_width, m_height); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - division->Move(dc, GetX(), GetY()); - Recompute(); - division->Show(TRUE); -} - -wxDivisionShape *wxCompositeShape::OnCreateDivision() -{ - return new wxDivisionShape; -} - -wxShape *wxCompositeShape::FindContainerImage() -{ - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - if (!m_divisions.Member(child)) - return child; - node = node->Next(); - } - return NULL; -} - -// Returns TRUE if division is a descendant of this container -bool wxCompositeShape::ContainsDivision(wxDivisionShape *division) -{ - if (m_divisions.Member(division)) - return TRUE; - wxNode *node = m_children.First(); - while (node) - { - wxShape *child = (wxShape *)node->Data(); - if (child->IsKindOf(CLASSINFO(wxCompositeShape))) - { - bool ans = ((wxCompositeShape *)child)->ContainsDivision(division); - if (ans) - return TRUE; - } - node = node->Next(); - } - return FALSE; -} - -/* - * Division object - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxDivisionShape, wxCompositeShape) - -wxDivisionShape::wxDivisionShape() -{ - SetSensitivityFilter(OP_CLICK_LEFT | OP_CLICK_RIGHT | OP_DRAG_RIGHT); - SetCentreResize(FALSE); - SetAttachmentMode(TRUE); - m_leftSide = NULL; - m_rightSide = NULL; - m_topSide = NULL; - m_bottomSide = NULL; - m_handleSide = DIVISION_SIDE_NONE; - m_leftSidePen = wxBLACK_PEN; - m_topSidePen = wxBLACK_PEN; - m_leftSideColour = "BLACK"; - m_topSideColour = "BLACK"; - m_leftSideStyle = "Solid"; - m_topSideStyle = "Solid"; - ClearRegions(); -} - -wxDivisionShape::~wxDivisionShape() -{ -} - -void wxDivisionShape::OnDraw(wxDC& dc) -{ - dc.SetBrush(* wxTRANSPARENT_BRUSH); - dc.SetBackgroundMode(wxTRANSPARENT); - - double x1 = (double)(GetX() - (GetWidth()/2.0)); - double y1 = (double)(GetY() - (GetHeight()/2.0)); - double x2 = (double)(GetX() + (GetWidth()/2.0)); - double y2 = (double)(GetY() + (GetHeight()/2.0)); - - // Should subtract 1 pixel if drawing under Windows -#ifdef __WXMSW__ - y2 -= (double)1.0; -#endif - - if (m_leftSide) - { - dc.SetPen(* m_leftSidePen); - dc.DrawLine(WXROUND(x1), WXROUND(y2), WXROUND(x1), WXROUND(y1)); - } - if (m_topSide) - { - dc.SetPen(* m_topSidePen); - dc.DrawLine(WXROUND(x1), WXROUND(y1), WXROUND(x2), WXROUND(y1)); - } - - // For testing purposes, draw a rectangle so we know - // how big the division is. -// SetBrush(* wxCYAN_BRUSH); -// wxRectangleShape::OnDraw(dc); -} - -void wxDivisionShape::OnDrawContents(wxDC& dc) -{ - wxCompositeShape::OnDrawContents(dc); -} - -bool wxDivisionShape::OnMovePre(wxDC& dc, double x, double y, double oldx, double oldy, bool display) -{ - double diffX = x - oldx; - double diffY = y - oldy; - wxNode *node = m_children.First(); - while (node) - { - wxShape *object = (wxShape *)node->Data(); - object->Erase(dc); - object->Move(dc, object->GetX() + diffX, object->GetY() + diffY, display); - node = node->Next(); - } - return TRUE; -} - -void wxDivisionShape::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnDragLeft(draw, x, y, keys, attachment); - } - return; - } - wxShape::OnDragLeft(draw, x, y, keys, attachment); -} - -void wxDivisionShape::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - if ((m_sensitivity & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnBeginDragLeft(x, y, keys, attachment); - } - return; - } - - wxShape::OnBeginDragLeft(x, y, keys, attachment); -} - -void wxDivisionShape::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - m_canvas->ReleaseMouse(); - if ((m_sensitivity & OP_DRAG_LEFT) != OP_DRAG_LEFT) - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnEndDragLeft(x, y, keys, attachment); - } - return; - } - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxCOPY); - - m_canvas->Snap(&m_xpos, &m_ypos); - GetEventHandler()->OnMovePre(dc, x, y, m_oldX, m_oldY); - - ResetControlPoints(); - Draw(dc); - MoveLinks(dc); - GetEventHandler()->OnDrawControlPoints(dc); - - if (m_canvas && !m_canvas->GetQuickEditMode()) m_canvas->Redraw(dc); -} - -void wxDivisionShape::SetSize(double w, double h, bool recursive) -{ - m_width = w; - m_height = h; - wxRectangleShape::SetSize(w, h, recursive); -} - -void wxDivisionShape::CalculateSize() -{ -} - -void wxDivisionShape::Copy(wxShape& copy) -{ - wxCompositeShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxDivisionShape)) ) ; - - wxDivisionShape& divisionCopy = (wxDivisionShape&) copy; - - divisionCopy.m_leftSideStyle = m_leftSideStyle; - divisionCopy.m_topSideStyle = m_topSideStyle; - divisionCopy.m_leftSideColour = m_leftSideColour; - divisionCopy.m_topSideColour = m_topSideColour; - - divisionCopy.m_leftSidePen = m_leftSidePen; - divisionCopy.m_topSidePen = m_topSidePen; - divisionCopy.m_handleSide = m_handleSide; - - // Division geometry copying is handled at the wxCompositeShape level. -} - -#ifdef PROLOGIO -void wxDivisionShape::WriteAttributes(wxExpr *clause) -{ - wxCompositeShape::WriteAttributes(clause); - - if (m_leftSide) - clause->AddAttributeValue("left_side", (long)m_leftSide->GetId()); - if (m_topSide) - clause->AddAttributeValue("top_side", (long)m_topSide->GetId()); - if (m_rightSide) - clause->AddAttributeValue("right_side", (long)m_rightSide->GetId()); - if (m_bottomSide) - clause->AddAttributeValue("bottom_side", (long)m_bottomSide->GetId()); - - clause->AddAttributeValue("handle_side", (long)m_handleSide); - clause->AddAttributeValueString("left_colour", m_leftSideColour); - clause->AddAttributeValueString("top_colour", m_topSideColour); - clause->AddAttributeValueString("left_style", m_leftSideStyle); - clause->AddAttributeValueString("top_style", m_topSideStyle); -} - -void wxDivisionShape::ReadAttributes(wxExpr *clause) -{ - wxCompositeShape::ReadAttributes(clause); - - clause->GetAttributeValue("handle_side", m_handleSide); - clause->GetAttributeValue("left_colour", m_leftSideColour); - clause->GetAttributeValue("top_colour", m_topSideColour); - clause->GetAttributeValue("left_style", m_leftSideStyle); - clause->GetAttributeValue("top_style", m_topSideStyle); -} -#endif - -// Experimental -void wxDivisionShape::OnRightClick(double x, double y, int keys, int attachment) -{ - if (keys & KEY_CTRL) - { - PopupMenu(x, y); - } -/* - else if (keys & KEY_SHIFT) - { - if (m_leftSide || m_topSide || m_rightSide || m_bottomSide) - { - if (Selected()) - { - Select(FALSE); - GetParent()->Draw(dc); - } - else - Select(TRUE); - } - } -*/ - else - { - attachment = 0; - double dist; - if (m_parent) - { - m_parent->HitTest(x, y, &attachment, &dist); - m_parent->GetEventHandler()->OnRightClick(x, y, keys, attachment); - } - return; - } -} - - -// Divide wxHORIZONTALly or wxVERTICALly -bool wxDivisionShape::Divide(int direction) -{ - // Calculate existing top-left, bottom-right - double x1 = (double)(GetX() - (GetWidth()/2.0)); - double y1 = (double)(GetY() - (GetHeight()/2.0)); - wxCompositeShape *compositeParent = (wxCompositeShape *)GetParent(); - double oldWidth = GetWidth(); - double oldHeight = GetHeight(); - if (Selected()) - Select(FALSE); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - if (direction == wxVERTICAL) - { - // Dividing vertically means notionally putting a horizontal line through it. - // Break existing piece into two. - double newXPos1 = GetX(); - double newYPos1 = (double)(y1 + (GetHeight()/4.0)); - double newXPos2 = GetX(); - double newYPos2 = (double)(y1 + (3.0*GetHeight()/4.0)); - wxDivisionShape *newDivision = compositeParent->OnCreateDivision(); - newDivision->Show(TRUE); - - Erase(dc); - - // Anything adjoining the bottom of this division now adjoins the - // bottom of the new division. - wxNode *node = compositeParent->GetDivisions().First(); - while (node) - { - wxDivisionShape *obj = (wxDivisionShape *)node->Data(); - if (obj->GetTopSide() == this) - obj->SetTopSide(newDivision); - node = node->Next(); - } - newDivision->SetTopSide(this); - newDivision->SetBottomSide(m_bottomSide); - newDivision->SetLeftSide(m_leftSide); - newDivision->SetRightSide(m_rightSide); - m_bottomSide = newDivision; - - compositeParent->GetDivisions().Append(newDivision); - - // CHANGE: Need to insert this division at start of divisions in the object - // list, because e.g.: - // 1) Add division - // 2) Add contained object - // 3) Add division - // Division is now receiving mouse events _before_ the contained object, - // because it was added last (on top of all others) - - // Add after the image that visualizes the container - compositeParent->AddChild(newDivision, compositeParent->FindContainerImage()); - - m_handleSide = DIVISION_SIDE_BOTTOM; - newDivision->SetHandleSide(DIVISION_SIDE_TOP); - - SetSize(oldWidth, (double)(oldHeight/2.0)); - Move(dc, newXPos1, newYPos1); - - newDivision->SetSize(oldWidth, (double)(oldHeight/2.0)); - newDivision->Move(dc, newXPos2, newYPos2); - } - else - { - // Dividing horizontally means notionally putting a vertical line through it. - // Break existing piece into two. - double newXPos1 = (double)(x1 + (GetWidth()/4.0)); - double newYPos1 = GetY(); - double newXPos2 = (double)(x1 + (3.0*GetWidth()/4.0)); - double newYPos2 = GetY(); - wxDivisionShape *newDivision = compositeParent->OnCreateDivision(); - newDivision->Show(TRUE); - - Erase(dc); - - // Anything adjoining the left of this division now adjoins the - // left of the new division. - wxNode *node = compositeParent->GetDivisions().First(); - while (node) - { - wxDivisionShape *obj = (wxDivisionShape *)node->Data(); - if (obj->GetLeftSide() == this) - obj->SetLeftSide(newDivision); - node = node->Next(); - } - newDivision->SetTopSide(m_topSide); - newDivision->SetBottomSide(m_bottomSide); - newDivision->SetLeftSide(this); - newDivision->SetRightSide(m_rightSide); - m_rightSide = newDivision; - - compositeParent->GetDivisions().Append(newDivision); - compositeParent->AddChild(newDivision, compositeParent->FindContainerImage()); - - m_handleSide = DIVISION_SIDE_RIGHT; - newDivision->SetHandleSide(DIVISION_SIDE_LEFT); - - SetSize((double)(oldWidth/2.0), oldHeight); - Move(dc, newXPos1, newYPos1); - - newDivision->SetSize((double)(oldWidth/2.0), oldHeight); - newDivision->Move(dc, newXPos2, newYPos2); - } - if (compositeParent->Selected()) - { - compositeParent->DeleteControlPoints(& dc); - compositeParent->MakeControlPoints(); - compositeParent->MakeMandatoryControlPoints(); - } - compositeParent->Draw(dc); - return TRUE; -} - -// Make one control point for every visible line -void wxDivisionShape::MakeControlPoints() -{ - MakeMandatoryControlPoints(); -} - -void wxDivisionShape::MakeMandatoryControlPoints() -{ - double maxX, maxY; - - GetBoundingBoxMax(&maxX, &maxY); - double x, y; - int direction; -/* - if (m_leftSide) - { - x = (double)(-maxX/2.0); - y = 0.0; - wxDivisionControlPoint *control = new wxDivisionControlPoint(m_canvas, this, CONTROL_POINT_SIZE, x, y, - CONTROL_POINT_HORIZONTAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - } - if (m_topSide) - { - x = 0.0; - y = (double)(-maxY/2.0); - wxDivisionControlPoint *control = new wxDivisionControlPoint(m_canvas, this, CONTROL_POINT_SIZE, x, y, - CONTROL_POINT_VERTICAL); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - } -*/ - switch (m_handleSide) - { - case DIVISION_SIDE_LEFT: - { - x = (double)(-maxX/2.0); - y = 0.0; - direction = CONTROL_POINT_HORIZONTAL; - break; - } - case DIVISION_SIDE_TOP: - { - x = 0.0; - y = (double)(-maxY/2.0); - direction = CONTROL_POINT_VERTICAL; - break; - } - case DIVISION_SIDE_RIGHT: - { - x = (double)(maxX/2.0); - y = 0.0; - direction = CONTROL_POINT_HORIZONTAL; - break; - } - case DIVISION_SIDE_BOTTOM: - { - x = 0.0; - y = (double)(maxY/2.0); - direction = CONTROL_POINT_VERTICAL; - break; - } - default: - break; - } - if (m_handleSide != DIVISION_SIDE_NONE) - { - wxDivisionControlPoint *control = new wxDivisionControlPoint(m_canvas, this, CONTROL_POINT_SIZE, x, y, - direction); - m_canvas->AddShape(control); - m_controlPoints.Append(control); - } -} - -void wxDivisionShape::ResetControlPoints() -{ - ResetMandatoryControlPoints(); -} - -void wxDivisionShape::ResetMandatoryControlPoints() -{ - if (m_controlPoints.Number() < 1) - return; - - double maxX, maxY; - - GetBoundingBoxMax(&maxX, &maxY); -/* - wxNode *node = m_controlPoints.First(); - while (node) - { - wxDivisionControlPoint *control = (wxDivisionControlPoint *)node->Data(); - if (control->type == CONTROL_POINT_HORIZONTAL) - { - control->xoffset = (double)(-maxX/2.0); control->m_yoffset = 0.0; - } - else if (control->type == CONTROL_POINT_VERTICAL) - { - control->xoffset = 0.0; control->m_yoffset = (double)(-maxY/2.0); - } - node = node->Next(); - } -*/ - wxNode *node = m_controlPoints.First(); - if ((m_handleSide == DIVISION_SIDE_LEFT) && node) - { - wxDivisionControlPoint *control = (wxDivisionControlPoint *)node->Data(); - control->m_xoffset = (double)(-maxX/2.0); control->m_yoffset = 0.0; - } - - if ((m_handleSide == DIVISION_SIDE_TOP) && node) - { - wxDivisionControlPoint *control = (wxDivisionControlPoint *)node->Data(); - control->m_xoffset = 0.0; control->m_yoffset = (double)(-maxY/2.0); - } - - if ((m_handleSide == DIVISION_SIDE_RIGHT) && node) - { - wxDivisionControlPoint *control = (wxDivisionControlPoint *)node->Data(); - control->m_xoffset = (double)(maxX/2.0); control->m_yoffset = 0.0; - } - - if ((m_handleSide == DIVISION_SIDE_BOTTOM) && node) - { - wxDivisionControlPoint *control = (wxDivisionControlPoint *)node->Data(); - control->m_xoffset = 0.0; control->m_yoffset = (double)(maxY/2.0); - } -} - -// Adjust a side, returning FALSE if it's not physically possible. -bool wxDivisionShape::AdjustLeft(double left, bool test) -{ - double x2 = (double)(GetX() + (GetWidth()/2.0)); - - if (left >= x2) - return FALSE; - if (test) - return TRUE; - - double newW = x2 - left; - double newX = (double)(left + newW/2.0); - SetSize(newW, GetHeight()); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - Move(dc, newX, GetY()); - - return TRUE; -} - -bool wxDivisionShape::AdjustTop(double top, bool test) -{ - double y2 = (double)(GetY() + (GetHeight()/2.0)); - - if (top >= y2) - return FALSE; - if (test) - return TRUE; - - double newH = y2 - top; - double newY = (double)(top + newH/2.0); - SetSize(GetWidth(), newH); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - Move(dc, GetX(), newY); - - return TRUE; -} - -bool wxDivisionShape::AdjustRight(double right, bool test) -{ - double x1 = (double)(GetX() - (GetWidth()/2.0)); - - if (right <= x1) - return FALSE; - if (test) - return TRUE; - - double newW = right - x1; - double newX = (double)(x1 + newW/2.0); - SetSize(newW, GetHeight()); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - Move(dc, newX, GetY()); - - return TRUE; -} - -bool wxDivisionShape::AdjustBottom(double bottom, bool test) -{ - double y1 = (double)(GetY() - (GetHeight()/2.0)); - - if (bottom <= y1) - return FALSE; - if (test) - return TRUE; - - double newH = bottom - y1; - double newY = (double)(y1 + newH/2.0); - SetSize(GetWidth(), newH); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - Move(dc, GetX(), newY); - - return TRUE; -} - -wxDivisionControlPoint::wxDivisionControlPoint(wxShapeCanvas *the_canvas, wxShape *object, double size, double the_xoffset, double the_yoffset, int the_type): - wxControlPoint(the_canvas, object, size, the_xoffset, the_yoffset, the_type) -{ - SetEraseObject(FALSE); -} - -wxDivisionControlPoint::~wxDivisionControlPoint() -{ -} - -static double originalX = 0.0; -static double originalY = 0.0; -static double originalW = 0.0; -static double originalH = 0.0; - -// Implement resizing of canvas object -void wxDivisionControlPoint::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - wxControlPoint::OnDragLeft(draw, x, y, keys, attachment); -} - -void wxDivisionControlPoint::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - wxDivisionShape *division = (wxDivisionShape *)m_shape; - originalX = division->GetX(); - originalY = division->GetY(); - originalW = division->GetWidth(); - originalH = division->GetHeight(); - - wxControlPoint::OnBeginDragLeft(x, y, keys, attachment); -} - -void wxDivisionControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - wxControlPoint::OnEndDragLeft(x, y, keys, attachment); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - wxDivisionShape *division = (wxDivisionShape *)m_shape; - wxCompositeShape *divisionParent = (wxCompositeShape *)division->GetParent(); - - // Need to check it's within the bounds of the parent composite. - double x1 = (double)(divisionParent->GetX() - (divisionParent->GetWidth()/2.0)); - double y1 = (double)(divisionParent->GetY() - (divisionParent->GetHeight()/2.0)); - double x2 = (double)(divisionParent->GetX() + (divisionParent->GetWidth()/2.0)); - double y2 = (double)(divisionParent->GetY() + (divisionParent->GetHeight()/2.0)); - - // Need to check it has not made the division zero or negative width/height - double dx1 = (double)(division->GetX() - (division->GetWidth()/2.0)); - double dy1 = (double)(division->GetY() - (division->GetHeight()/2.0)); - double dx2 = (double)(division->GetX() + (division->GetWidth()/2.0)); - double dy2 = (double)(division->GetY() + (division->GetHeight()/2.0)); - - bool success = TRUE; - switch (division->GetHandleSide()) - { - case DIVISION_SIDE_LEFT: - { - if ((x <= x1) || (x >= x2) || (x >= dx2)) - success = FALSE; - // Try it out first... - else if (!division->ResizeAdjoining(DIVISION_SIDE_LEFT, x, TRUE)) - success = FALSE; - else - division->ResizeAdjoining(DIVISION_SIDE_LEFT, x, FALSE); - - break; - } - case DIVISION_SIDE_TOP: - { - if ((y <= y1) || (y >= y2) || (y >= dy2)) - success = FALSE; - else if (!division->ResizeAdjoining(DIVISION_SIDE_TOP, y, TRUE)) - success = FALSE; - else - division->ResizeAdjoining(DIVISION_SIDE_TOP, y, FALSE); - - break; - } - case DIVISION_SIDE_RIGHT: - { - if ((x <= x1) || (x >= x2) || (x <= dx1)) - success = FALSE; - else if (!division->ResizeAdjoining(DIVISION_SIDE_RIGHT, x, TRUE)) - success = FALSE; - else - division->ResizeAdjoining(DIVISION_SIDE_RIGHT, x, FALSE); - - break; - } - case DIVISION_SIDE_BOTTOM: - { - if ((y <= y1) || (y >= y2) || (y <= dy1)) - success = FALSE; - else if (!division->ResizeAdjoining(DIVISION_SIDE_BOTTOM, y, TRUE)) - success = FALSE; - else - division->ResizeAdjoining(DIVISION_SIDE_BOTTOM, y, FALSE); - - break; - } - } - if (!success) - { - division->SetSize(originalW, originalH); - division->Move(dc, originalX, originalY); - } - divisionParent->Draw(dc); - division->GetEventHandler()->OnDrawControlPoints(dc); -} - -/* Resize adjoining divisions. - * - Behaviour should be as follows: - If right edge moves, find all objects whose left edge - adjoins this object, and move left edge accordingly. - If left..., move ... right. - If top..., move ... bottom. - If bottom..., move top. - If size goes to zero or end position is other side of start position, - resize to original size and return. - */ -bool wxDivisionShape::ResizeAdjoining(int side, double newPos, bool test) -{ - wxCompositeShape *divisionParent = (wxCompositeShape *)GetParent(); - wxNode *node = divisionParent->GetDivisions().First(); - while (node) - { - wxDivisionShape *division = (wxDivisionShape *)node->Data(); - switch (side) - { - case DIVISION_SIDE_LEFT: - { - if (division->m_rightSide == this) - { - bool success = division->AdjustRight(newPos, test); - if (!success && test) - return FALSE; - } - break; - } - case DIVISION_SIDE_TOP: - { - if (division->m_bottomSide == this) - { - bool success = division->AdjustBottom(newPos, test); - if (!success && test) - return FALSE; - } - break; - } - case DIVISION_SIDE_RIGHT: - { - if (division->m_leftSide == this) - { - bool success = division->AdjustLeft(newPos, test); - if (!success && test) - return FALSE; - } - break; - } - case DIVISION_SIDE_BOTTOM: - { - if (division->m_topSide == this) - { - bool success = division->AdjustTop(newPos, test); - if (!success && test) - return FALSE; - } - break; - } - default: - break; - } - node = node->Next(); - } - - return TRUE; -} - -/* - * Popup menu for editing divisions - * - */ - -void oglGraphicsDivisionMenuProc(wxMenu& menu, wxCommandEvent& event) -{ - wxDivisionShape *division = (wxDivisionShape *)menu.GetClientData(); - switch (event.GetInt()) - { - case DIVISION_MENU_SPLIT_HORIZONTALLY: - { - division->Divide(wxHORIZONTAL); - break; - } - case DIVISION_MENU_SPLIT_VERTICALLY: - { - division->Divide(wxVERTICAL); - break; - } - case DIVISION_MENU_EDIT_LEFT_EDGE: - { - division->EditEdge(DIVISION_SIDE_LEFT); - break; - } - case DIVISION_MENU_EDIT_TOP_EDGE: - { - division->EditEdge(DIVISION_SIDE_TOP); - break; - } - default: - break; - } -} - -void wxDivisionShape::EditEdge(int side) -{ - wxMessageBox("EditEdge() not implemented", "OGL", wxOK); - -#if 0 - wxBeginBusyCursor(); - - wxPen *currentPen = NULL; - char **pColour = NULL; - char **pStyle = NULL; - if (side == DIVISION_SIDE_LEFT) - { - currentPen = m_leftSidePen; - pColour = &m_leftSideColour; - pStyle = &m_leftSideStyle; - } - else - { - currentPen = m_topSidePen; - pColour = &m_topSideColour; - pStyle = &m_topSideStyle; - } - - GraphicsForm *form = new GraphicsForm("Containers"); - int lineWidth = currentPen->GetWidth(); - - form->Add(wxMakeFormShort("Width", &lineWidth, wxFORM_DEFAULT, NULL, NULL, wxVERTICAL, - 150)); - form->Add(wxMakeFormString("Colour", pColour, wxFORM_CHOICE, - new wxList(wxMakeConstraintStrings( - "BLACK" , - "BLUE" , - "BROWN" , - "CORAL" , - "CYAN" , - "DARK GREY" , - "DARK GREEN" , - "DIM GREY" , - "GREY" , - "GREEN" , - "LIGHT BLUE" , - "LIGHT GREY" , - "MAGENTA" , - "MAROON" , - "NAVY" , - "ORANGE" , - "PURPLE" , - "RED" , - "TURQUOISE" , - "VIOLET" , - "WHITE" , - "YELLOW" , - NULL), - NULL), NULL, wxVERTICAL, 150)); - form->Add(wxMakeFormString("Style", pStyle, wxFORM_CHOICE, - new wxList(wxMakeConstraintStrings( - "Solid" , - "Short Dash" , - "Long Dash" , - "Dot" , - "Dot Dash" , - NULL), - NULL), NULL, wxVERTICAL, 100)); - - wxDialogBox *dialog = new wxDialogBox(m_canvas->GetParent(), "Division properties", 10, 10, 500, 500); - if (GraphicsLabelFont) - dialog->SetLabelFont(GraphicsLabelFont); - if (GraphicsButtonFont) - dialog->SetButtonFont(GraphicsButtonFont); - - form->AssociatePanel(dialog); - form->dialog = dialog; - - dialog->Fit(); - dialog->Centre(wxBOTH); - - wxEndBusyCursor(); - dialog->Show(TRUE); - - int lineStyle = wxSOLID; - if (*pStyle) - { - if (strcmp(*pStyle, "Solid") == 0) - lineStyle = wxSOLID; - else if (strcmp(*pStyle, "Dot") == 0) - lineStyle = wxDOT; - else if (strcmp(*pStyle, "Short Dash") == 0) - lineStyle = wxSHORT_DASH; - else if (strcmp(*pStyle, "Long Dash") == 0) - lineStyle = wxLONG_DASH; - else if (strcmp(*pStyle, "Dot Dash") == 0) - lineStyle = wxDOT_DASH; - } - - wxPen *newPen = wxThePenList->FindOrCreatePen(*pColour, lineWidth, lineStyle); - if (!pen) - pen = wxBLACK_PEN; - if (side == DIVISION_SIDE_LEFT) - m_leftSidePen = newPen; - else - m_topSidePen = newPen; - - // Need to draw whole image again - wxCompositeShape *compositeParent = (wxCompositeShape *)GetParent(); - compositeParent->Draw(dc); -#endif -} - -// Popup menu -void wxDivisionShape::PopupMenu(double x, double y) -{ - oglPopupDivisionMenu->SetClientData((void *)this); - if (m_leftSide) - oglPopupDivisionMenu->Enable(DIVISION_MENU_EDIT_LEFT_EDGE, TRUE); - else - oglPopupDivisionMenu->Enable(DIVISION_MENU_EDIT_LEFT_EDGE, FALSE); - if (m_topSide) - oglPopupDivisionMenu->Enable(DIVISION_MENU_EDIT_TOP_EDGE, TRUE); - else - oglPopupDivisionMenu->Enable(DIVISION_MENU_EDIT_TOP_EDGE, FALSE); - - int x1, y1; - m_canvas->ViewStart(&x1, &y1); - - int unit_x, unit_y; - m_canvas->GetScrollPixelsPerUnit(&unit_x, &unit_y); - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - int mouse_x = (int)(dc.LogicalToDeviceX((long)(x - x1*unit_x))); - int mouse_y = (int)(dc.LogicalToDeviceY((long)(y - y1*unit_y))); - - m_canvas->PopupMenu(oglPopupDivisionMenu, mouse_x, mouse_y); -} - -void wxDivisionShape::SetLeftSideColour(const wxString& colour) -{ - m_leftSideColour = colour; -} - -void wxDivisionShape::SetTopSideColour(const wxString& colour) -{ - m_topSideColour = colour; -} - -void wxDivisionShape::SetLeftSideStyle(const wxString& style) -{ - m_leftSideStyle = style; -} - -void wxDivisionShape::SetTopSideStyle(const wxString& style) -{ - m_topSideStyle = style; -} - diff --git a/utils/ogl/src/composit.h b/utils/ogl/src/composit.h deleted file mode 100644 index 505667c2bd..0000000000 --- a/utils/ogl/src/composit.h +++ /dev/null @@ -1,240 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: composit.h -// Purpose: wxCompositeShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_COMPOSIT_H_ -#define _OGL_COMPOSIT_H_ - -#ifdef __GNUG__ -#pragma interface "composit.h" -#endif - -class wxDivisionShape; -class wxOGLConstraint; - -/* - * A composite object is an invisible rectangle surrounding all children - * - */ - -class wxCompositeShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxCompositeShape) -public: - - wxCompositeShape(); - ~wxCompositeShape(); - - void OnDraw(wxDC& dc); - void OnDrawContents(wxDC& dc); - void OnErase(wxDC& dc); - bool OnMovePre(wxDC& dc, double x, double y, double oldX, double oldY, bool display = TRUE); - void OnDragLeft(bool draw, double x, double y, int keys, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys, int attachment = 0); - - void OnRightClick(double x, double y, int keys, int attachment = 0); - - void SetSize(double w, double h, bool recursive = TRUE); - - // Returns TRUE if it settled down - bool Recompute(); - - // New members - void AddChild(wxShape *child, wxShape *addAfter = NULL); - void RemoveChild(wxShape *child); - - wxOGLConstraint *AddConstraint(wxOGLConstraint *constraint); - wxOGLConstraint *AddConstraint(int type, wxShape *constraining, wxList& constrained); - wxOGLConstraint *AddConstraint(int type, wxShape *constraining, wxShape *constrained); - - void DeleteConstraint(wxOGLConstraint *constraint); - - // Delete constraints that involve this child. - void DeleteConstraintsInvolvingChild(wxShape *child); - - // Remove the image from any constraints involving it, but DON'T - // remove any constraints. - void RemoveChildFromConstraints(wxShape *child); - - // Find constraint, also returning actual composite the constraint was in, - // in case it had to find it recursively. - wxOGLConstraint *FindConstraint(long id, wxCompositeShape **actualComposite = NULL); - - // Returns TRUE if something changed - bool Constrain(); - - // Make this composite into a container by creating one wxDivisionShape - void MakeContainer(); - - // Calculates size and position of composite object based on children - void CalculateSize(); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); - // In case the object has constraints it needs to read in in a different pass - void ReadConstraints(wxExpr *clause, wxExprDatabase *database); -#endif - // Does the copying for this object - void Copy(wxShape& copy); - - virtual wxDivisionShape *OnCreateDivision(); - - // Finds the image used to visualize a container. This is any child - // of the composite that is not in the divisions list. - wxShape *FindContainerImage(); - - // Returns TRUE if division is a descendant of this container - bool ContainsDivision(wxDivisionShape *division); - - inline wxList& GetDivisions() const { return (wxList&) m_divisions; } - inline wxList& GetConstraints() const { return (wxList&) m_constraints; } - -protected: - double m_oldX; - double m_oldY; - wxList m_constraints; - wxList m_divisions; // In case it's a container -}; - -/* - * A division object is a composite with special properties, - * to be used for containment. It's a subdivision of a container. - * A containing node image consists of a composite with a main child shape - * such as rounded rectangle, plus a list of division objects. - * It needs to be a composite because a division contains pieces - * of diagram. - * NOTE a container has at least one wxDivisionShape for consistency. - * This can be subdivided, so it turns into two objects, then each of - * these can be subdivided, etc. - */ -#define DIVISION_SIDE_NONE 0 -#define DIVISION_SIDE_LEFT 1 -#define DIVISION_SIDE_TOP 2 -#define DIVISION_SIDE_RIGHT 3 -#define DIVISION_SIDE_BOTTOM 4 - -class wxDivisionShape: public wxCompositeShape -{ - DECLARE_DYNAMIC_CLASS(wxDivisionShape) - public: - - wxDivisionShape(); - ~wxDivisionShape(); - - void OnDraw(wxDC& dc); - void OnDrawContents(wxDC& dc); - bool OnMovePre(wxDC& dc, double x, double y, double oldX, double oldY, bool display = TRUE); - void OnDragLeft(bool draw, double x, double y, int keys, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys, int attachment = 0); - - void OnRightClick(double x, double y, int keys = 0, int attachment = 0); - - // Don't want this kind of composite to resize its subdiagrams, so - // override composite's SetSize. - void SetSize(double w, double h, bool recursive = TRUE); - - // Similarly for calculating size: it's fixed at whatever SetSize - // set it to, not in terms of children. - void CalculateSize(); - - void MakeControlPoints(); - void ResetControlPoints(); - void MakeMandatoryControlPoints(); - void ResetMandatoryControlPoints(); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - // Does the copying for this object - void Copy(wxShape& copy); - - // Divide horizontally (wxHORIZONTAL) or vertically (wxVERTICAL) - bool Divide(int direction); - - // Resize adjoining divisions at the given side. If test is TRUE, - // just see whether it's possible for each adjoining region, - // returning FALSE if it's not. - bool ResizeAdjoining(int side, double newPos, bool test); - - // Adjust a side, returning FALSE if it's not physically possible. - bool AdjustLeft(double left, bool test); - bool AdjustTop(double top, bool test); - bool AdjustRight(double right, bool test); - bool AdjustBottom(double bottom, bool test); - - // Edit style of left or top side - void EditEdge(int side); - - // Popup menu - void PopupMenu(double x, double y); - - inline void SetLeftSide(wxDivisionShape *shape) { m_leftSide = shape; } - inline void SetTopSide(wxDivisionShape *shape) { m_topSide = shape; } - inline void SetRightSide(wxDivisionShape *shape) { m_rightSide = shape; } - inline void SetBottomSide(wxDivisionShape *shape) { m_bottomSide = shape; } - inline wxDivisionShape *GetLeftSide() const { return m_leftSide; } - inline wxDivisionShape *GetTopSide() const { return m_topSide; } - inline wxDivisionShape *GetRightSide() const { return m_rightSide; } - inline wxDivisionShape *GetBottomSide() const { return m_bottomSide; } - - inline void SetHandleSide(int side) { m_handleSide = side; } - inline int GetHandleSide() const { return m_handleSide; } - - inline void SetLeftSidePen(wxPen *pen) { m_leftSidePen = pen; } - inline wxPen *GetLeftSidePen() const { return m_leftSidePen; } - inline void SetTopSidePen(wxPen *pen) { m_topSidePen = pen; } - inline wxPen *GetTopSidePen() const { return m_topSidePen; } - - void SetLeftSideColour(const wxString& colour); - void SetTopSideColour(const wxString& colour); - void SetLeftSideStyle(const wxString& style); - void SetTopSideStyle(const wxString& style); - - inline wxString GetLeftSideColour() const { return m_leftSideColour; } - inline wxString GetTopSideColour() const { return m_topSideColour; } - inline wxString GetLeftSideStyle() const { return m_leftSideStyle; } - inline wxString GetTopSideStyle() const { return m_topSideStyle; } - - protected: - // Adjoining divisions. NULL indicates edge - // of container, and that side shouldn't be - // drawn. - wxDivisionShape* m_leftSide; - wxDivisionShape* m_rightSide; - wxDivisionShape* m_topSide; - wxDivisionShape* m_bottomSide; - - int m_handleSide; // Side at which handle is legal - - wxPen* m_leftSidePen; - wxPen* m_topSidePen; - wxString m_leftSideColour; - wxString m_topSideColour; - wxString m_leftSideStyle; - wxString m_topSideStyle; -}; - -extern wxMenu *oglPopupDivisionMenu; -extern void oglGraphicsDivisionMenuProc(wxMenu& menu, wxCommandEvent& event); - -#define DIVISION_MENU_SPLIT_HORIZONTALLY 1 -#define DIVISION_MENU_SPLIT_VERTICALLY 2 -#define DIVISION_MENU_EDIT_LEFT_EDGE 3 -#define DIVISION_MENU_EDIT_TOP_EDGE 4 -#define DIVISION_MENU_EDIT_RIGHT_EDGE 5 -#define DIVISION_MENU_EDIT_BOTTOM_EDGE 6 -#define DIVISION_MENU_DELETE_ALL 7 - -#endif - // _OGL_COMPOSIT_H_ diff --git a/utils/ogl/src/constrnt.cpp b/utils/ogl/src/constrnt.cpp deleted file mode 100644 index 101e4a1782..0000000000 --- a/utils/ogl/src/constrnt.cpp +++ /dev/null @@ -1,619 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: constrnt.cpp -// Purpose: OGL Constraint classes -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "constrnt.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "basic.h" -#include "constrnt.h" -#include "canvas.h" - -wxList *wxOGLConstraintTypes = NULL; - -/* - * Constraint type - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxOGLConstraintType, wxObject) - -wxOGLConstraintType::wxOGLConstraintType(int theType, const wxString& theName, const wxString& thePhrase) -{ - m_type = theType; - m_name = theName; - m_phrase = thePhrase; -} - -wxOGLConstraintType::~wxOGLConstraintType() -{ -} - -void OGLInitializeConstraintTypes() -{ - if (!wxOGLConstraintTypes) - return; - - wxOGLConstraintTypes = new wxList(wxKEY_INTEGER); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_VERTICALLY, - new wxOGLConstraintType(gyCONSTRAINT_CENTRED_VERTICALLY, "Centre vertically", "centred vertically w.r.t.")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_HORIZONTALLY, - new wxOGLConstraintType(gyCONSTRAINT_CENTRED_HORIZONTALLY, "Centre horizontally", "centred horizontally w.r.t.")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_CENTRED_BOTH, - new wxOGLConstraintType(gyCONSTRAINT_CENTRED_BOTH, "Centre", "centred w.r.t.")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_LEFT_OF, - new wxOGLConstraintType(gyCONSTRAINT_LEFT_OF, "Left of", "left of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_RIGHT_OF, - new wxOGLConstraintType(gyCONSTRAINT_RIGHT_OF, "Right of", "right of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_ABOVE, - new wxOGLConstraintType(gyCONSTRAINT_ABOVE, "Above", "above")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_BELOW, - new wxOGLConstraintType(gyCONSTRAINT_BELOW, "Below", "below")); - - // Alignment - wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_TOP, - new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_TOP, "Top-aligned", "aligned to the top of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_BOTTOM, - new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_BOTTOM, "Bottom-aligned", "aligned to the bottom of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_LEFT, - new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_LEFT, "Left-aligned", "aligned to the left of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_ALIGNED_RIGHT, - new wxOGLConstraintType(gyCONSTRAINT_ALIGNED_RIGHT, "Right-aligned", "aligned to the right of")); - - // Mid-alignment - wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_TOP, - new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_TOP, "Top-midaligned", "centred on the top of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_BOTTOM, - new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_BOTTOM, "Bottom-midaligned", "centred on the bottom of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_LEFT, - new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_LEFT, "Left-midaligned", "centred on the left of")); - - wxOGLConstraintTypes->Append(gyCONSTRAINT_MIDALIGNED_RIGHT, - new wxOGLConstraintType(gyCONSTRAINT_MIDALIGNED_RIGHT, "Right-midaligned", "centred on the right of")); -} - -void OGLCleanUpConstraintTypes() -{ - if (!wxOGLConstraintTypes) - return; - - wxNode* node = wxOGLConstraintTypes->First(); - while (node) - { - wxOGLConstraintType* ct = (wxOGLConstraintType*) node->Data(); - delete ct; - node = node->Next(); - } - delete wxOGLConstraintTypes; - wxOGLConstraintTypes = NULL; -} - -/* - * Constraint Stuff - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxOGLConstraint, wxObject) - -wxOGLConstraint::wxOGLConstraint(int type, wxShape *constraining, wxList& constrained) -{ - m_xSpacing = 0.0; - m_ySpacing = 0.0; - - m_constraintType = type; - m_constrainingObject = constraining; - - m_constraintId = 0; - m_constraintName = "noname"; - - wxNode *node = constrained.First(); - while (node) - { - m_constrainedObjects.Append(node->Data()); - node = node->Next(); - } -} - -wxOGLConstraint::~wxOGLConstraint() -{ -} - -bool wxOGLConstraint::Equals(double a, double b) -{ - double marg = 0.5; - - bool eq = ((b <= a + marg) && (b >= a - marg)); - return eq; -} - -// Return TRUE if anything changed -bool wxOGLConstraint::Evaluate() -{ - double maxWidth, maxHeight, minWidth, minHeight, x, y; - m_constrainingObject->GetBoundingBoxMax(&maxWidth, &maxHeight); - m_constrainingObject->GetBoundingBoxMin(&minWidth, &minHeight); - x = m_constrainingObject->GetX(); - y = m_constrainingObject->GetY(); - - wxClientDC dc(m_constrainingObject->GetCanvas()); - m_constrainingObject->GetCanvas()->PrepareDC(dc); - - switch (m_constraintType) - { - case gyCONSTRAINT_CENTRED_VERTICALLY: - { - int n = m_constrainedObjects.Number(); - double totalObjectHeight = 0.0; - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - totalObjectHeight += height2; - node = node->Next(); - } - double startY; - double spacingY; - // Check if within the constraining object... - if ((totalObjectHeight + (n + 1)*m_ySpacing) <= minHeight) - { - spacingY = (double)((minHeight - totalObjectHeight)/(n + 1)); - startY = (double)(y - (minHeight/2.0)); - } - // Otherwise, use default spacing - else - { - spacingY = m_ySpacing; - startY = (double)(y - ((totalObjectHeight + (n+1)*spacingY)/2.0)); - } - - // Now position the objects - bool changed = FALSE; - node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - startY += (double)(spacingY + (height2/2.0)); - if (!Equals(startY, constrainedObject->GetY())) - { - constrainedObject->Move(dc, constrainedObject->GetX(), startY, FALSE); - changed = TRUE; - } - startY += (double)(height2/2.0); - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_CENTRED_HORIZONTALLY: - { - int n = m_constrainedObjects.Number(); - double totalObjectWidth = 0.0; - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - totalObjectWidth += width2; - node = node->Next(); - } - double startX; - double spacingX; - // Check if within the constraining object... - if ((totalObjectWidth + (n + 1)*m_xSpacing) <= minWidth) - { - spacingX = (double)((minWidth - totalObjectWidth)/(n + 1)); - startX = (double)(x - (minWidth/2.0)); - } - // Otherwise, use default spacing - else - { - spacingX = m_xSpacing; - startX = (double)(x - ((totalObjectWidth + (n+1)*spacingX)/2.0)); - } - - // Now position the objects - bool changed = FALSE; - node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - startX += (double)(spacingX + (width2/2.0)); - if (!Equals(startX, constrainedObject->GetX())) - { - constrainedObject->Move(dc, startX, constrainedObject->GetY(), FALSE); - changed = TRUE; - } - startX += (double)(width2/2.0); - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_CENTRED_BOTH: - { - int n = m_constrainedObjects.Number(); - double totalObjectWidth = 0.0; - double totalObjectHeight = 0.0; - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - totalObjectWidth += width2; - totalObjectHeight += height2; - node = node->Next(); - } - double startX; - double spacingX; - double startY; - double spacingY; - - // Check if within the constraining object... - if ((totalObjectWidth + (n + 1)*m_xSpacing) <= minWidth) - { - spacingX = (double)((minWidth - totalObjectWidth)/(n + 1)); - startX = (double)(x - (minWidth/2.0)); - } - // Otherwise, use default spacing - else - { - spacingX = m_xSpacing; - startX = (double)(x - ((totalObjectWidth + (n+1)*spacingX)/2.0)); - } - - // Check if within the constraining object... - if ((totalObjectHeight + (n + 1)*m_ySpacing) <= minHeight) - { - spacingY = (double)((minHeight - totalObjectHeight)/(n + 1)); - startY = (double)(y - (minHeight/2.0)); - } - // Otherwise, use default spacing - else - { - spacingY = m_ySpacing; - startY = (double)(y - ((totalObjectHeight + (n+1)*spacingY)/2.0)); - } - - // Now position the objects - bool changed = FALSE; - node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - startX += (double)(spacingX + (width2/2.0)); - startY += (double)(spacingY + (height2/2.0)); - - if ((!Equals(startX, constrainedObject->GetX())) || (!Equals(startY, constrainedObject->GetY()))) - { - constrainedObject->Move(dc, startX, startY, FALSE); - changed = TRUE; - } - - startX += (double)(width2/2.0); - startY += (double)(height2/2.0); - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_LEFT_OF: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double x3 = (double)(x - (minWidth/2.0) - (width2/2.0) - m_xSpacing); - if (!Equals(x3, constrainedObject->GetX())) - { - changed = TRUE; - constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_RIGHT_OF: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double x3 = (double)(x + (minWidth/2.0) + (width2/2.0) + m_xSpacing); - if (!Equals(x3, constrainedObject->GetX())) - { - changed = TRUE; - constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE); - } - - node = node->Next(); - } - return changed; - - return FALSE; - } - case gyCONSTRAINT_ABOVE: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double y3 = (double)(y - (minHeight/2.0) - (height2/2.0) - m_ySpacing); - if (!Equals(y3, constrainedObject->GetY())) - { - changed = TRUE; - constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_BELOW: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double y3 = (double)(y + (minHeight/2.0) + (height2/2.0) + m_ySpacing); - if (!Equals(y3, constrainedObject->GetY())) - { - changed = TRUE; - constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_ALIGNED_LEFT: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double x3 = (double)(x - (minWidth/2.0) + (width2/2.0) + m_xSpacing); - if (!Equals(x3, constrainedObject->GetX())) - { - changed = TRUE; - constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_ALIGNED_RIGHT: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double x3 = (double)(x + (minWidth/2.0) - (width2/2.0) - m_xSpacing); - if (!Equals(x3, constrainedObject->GetX())) - { - changed = TRUE; - constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE); - } - - node = node->Next(); - } - return changed; - - return FALSE; - } - case gyCONSTRAINT_ALIGNED_TOP: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double y3 = (double)(y - (minHeight/2.0) + (height2/2.0) + m_ySpacing); - if (!Equals(y3, constrainedObject->GetY())) - { - changed = TRUE; - constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_ALIGNED_BOTTOM: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double width2, height2; - constrainedObject->GetBoundingBoxMax(&width2, &height2); - - double y3 = (double)(y + (minHeight/2.0) - (height2/2.0) - m_ySpacing); - if (!Equals(y3, constrainedObject->GetY())) - { - changed = TRUE; - constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_MIDALIGNED_LEFT: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double x3 = (double)(x - (minWidth/2.0)); - if (!Equals(x3, constrainedObject->GetX())) - { - changed = TRUE; - constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_MIDALIGNED_RIGHT: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double x3 = (double)(x + (minWidth/2.0)); - if (!Equals(x3, constrainedObject->GetX())) - { - changed = TRUE; - constrainedObject->Move(dc, x3, constrainedObject->GetY(), FALSE); - } - - node = node->Next(); - } - return changed; - - return FALSE; - } - case gyCONSTRAINT_MIDALIGNED_TOP: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double y3 = (double)(y - (minHeight/2.0)); - if (!Equals(y3, constrainedObject->GetY())) - { - changed = TRUE; - constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE); - } - - node = node->Next(); - } - return changed; - } - case gyCONSTRAINT_MIDALIGNED_BOTTOM: - { - bool changed = FALSE; - - wxNode *node = m_constrainedObjects.First(); - while (node) - { - wxShape *constrainedObject = (wxShape *)node->Data(); - - double y3 = (double)(y + (minHeight/2.0)); - if (!Equals(y3, constrainedObject->GetY())) - { - changed = TRUE; - constrainedObject->Move(dc, constrainedObject->GetX(), y3, FALSE); - } - - node = node->Next(); - } - return changed; - } - - default: - return FALSE; - } - return FALSE; -} - diff --git a/utils/ogl/src/constrnt.h b/utils/ogl/src/constrnt.h deleted file mode 100644 index 812aca19a9..0000000000 --- a/utils/ogl/src/constrnt.h +++ /dev/null @@ -1,87 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: constrnt.h -// Purpose: OGL constraint definitions -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_CONSTRNT_H_ -#define _OGL_CONSTRNT_H_ - -#ifdef __GNUG__ -#pragma interface "constrnt.h" -#endif - -/* - * OGL Constraints - * - */ - -class wxOGLConstraintType: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxOGLConstraintType) -public: - wxOGLConstraintType(int type = 0, const wxString& name = "", const wxString& phrase = ""); - ~wxOGLConstraintType(); - -public: - int m_type; // E.g. gyCONSTRAINT_CENTRED_VERTICALLY - wxString m_name; // E.g. "Centre vertically" - wxString m_phrase; // E.g. "centred vertically with respect to", "left of" - -}; - -extern wxList* wxOGLConstraintTypes; - -#define gyCONSTRAINT_CENTRED_VERTICALLY 1 -#define gyCONSTRAINT_CENTRED_HORIZONTALLY 2 -#define gyCONSTRAINT_CENTRED_BOTH 3 -#define gyCONSTRAINT_LEFT_OF 4 -#define gyCONSTRAINT_RIGHT_OF 5 -#define gyCONSTRAINT_ABOVE 6 -#define gyCONSTRAINT_BELOW 7 -#define gyCONSTRAINT_ALIGNED_TOP 8 -#define gyCONSTRAINT_ALIGNED_BOTTOM 9 -#define gyCONSTRAINT_ALIGNED_LEFT 10 -#define gyCONSTRAINT_ALIGNED_RIGHT 11 - -// Like aligned, but with the objects centred on the respective edge -// of the reference object. -#define gyCONSTRAINT_MIDALIGNED_TOP 12 -#define gyCONSTRAINT_MIDALIGNED_BOTTOM 13 -#define gyCONSTRAINT_MIDALIGNED_LEFT 14 -#define gyCONSTRAINT_MIDALIGNED_RIGHT 15 - -class wxOGLConstraint: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxOGLConstraint) - public: - wxOGLConstraint() { m_xSpacing = 0.0; m_ySpacing = 0.0; m_constraintType = 0; m_constraintName = ""; m_constraintId = 0; - m_constrainingObject = NULL; } - wxOGLConstraint(int type, wxShape *constraining, wxList& constrained); - ~wxOGLConstraint(); - - // Returns TRUE if anything changed - bool Evaluate(); - inline void SetSpacing(double x, double y) { m_xSpacing = x; m_ySpacing = y; }; - bool Equals(double a, double b); - - double m_xSpacing; - double m_ySpacing; - int m_constraintType; - wxString m_constraintName; - long m_constraintId; - wxShape* m_constrainingObject; - wxList m_constrainedObjects; - -}; - -void OGLInitializeConstraintTypes(); -void OGLCleanUpConstraintTypes(); - -#endif - // _OGL_CONSTRNT_H_ diff --git a/utils/ogl/src/divided.cpp b/utils/ogl/src/divided.cpp deleted file mode 100644 index ba8cd615ac..0000000000 --- a/utils/ogl/src/divided.cpp +++ /dev/null @@ -1,720 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: divided.cpp -// Purpose: wxDividedShape class -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "divided.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "basic.h" -#include "basicp.h" -#include "canvas.h" -#include "divided.h" -#include "lines.h" -#include "misc.h" - -class wxDividedShapeControlPoint: public wxControlPoint -{ - DECLARE_DYNAMIC_CLASS(wxDividedShapeControlPoint) - private: - int regionId; - public: - wxDividedShapeControlPoint() { regionId = 0; } - wxDividedShapeControlPoint(wxShapeCanvas *the_canvas, wxShape *object, int region, - double size, double the_xoffset, double the_yoffset, int the_type); - ~wxDividedShapeControlPoint(); - - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); -}; - -IMPLEMENT_DYNAMIC_CLASS(wxDividedShapeControlPoint, wxControlPoint) - -/* - * Divided object - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxDividedShape, wxRectangleShape) - -wxDividedShape::wxDividedShape(double w, double h): wxRectangleShape(w, h) -{ - ClearRegions(); -} - -wxDividedShape::~wxDividedShape() -{ -} - -void wxDividedShape::OnDraw(wxDC& dc) -{ - wxRectangleShape::OnDraw(dc); -} - -void wxDividedShape::OnDrawContents(wxDC& dc) -{ - double defaultProportion = (double)(GetRegions().Number() > 0 ? (1.0/((double)(GetRegions().Number()))) : 0.0); - double currentY = (double)(m_ypos - (m_height / 2.0)); - double maxY = (double)(m_ypos + (m_height / 2.0)); - - double leftX = (double)(m_xpos - (m_width / 2.0)); - double rightX = (double)(m_xpos + (m_width / 2.0)); - - if (m_pen) dc.SetPen(* m_pen); - - if (m_textColour) dc.SetTextForeground(* m_textColour); - -#ifdef __WXMSW__ - // For efficiency, don't do this under X - doesn't make - // any visible difference for our purposes. - if (m_brush) - dc.SetTextBackground(m_brush->GetColour()); -#endif -/* - if (!formatted) - { - FormatRegionText(); - formatted = TRUE; - } -*/ - if (GetDisableLabel()) return; - - double xMargin = 2; - double yMargin = 2; - dc.SetBackgroundMode(wxTRANSPARENT); - - wxNode *node = GetRegions().First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - dc.SetFont(* region->GetFont()); - dc.SetTextForeground(* region->GetActualColourObject()); - - double proportion = - region->m_regionProportionY < 0.0 ? defaultProportion : region->m_regionProportionY; - - double y = currentY + m_height*proportion; - double actualY = maxY < y ? maxY : y; - - double centreX = m_xpos; - double centreY = (double)(currentY + (actualY - currentY)/2.0); - - oglDrawFormattedText(dc, ®ion->m_formattedText, - (double)(centreX), (double)(centreY), (double)(m_width-2*xMargin), (double)(actualY - currentY - 2*yMargin), - region->m_formatMode); - if ((y <= maxY) && (node->Next())) - { - wxPen *regionPen = region->GetActualPen(); - if (regionPen) - { - dc.SetPen(* regionPen); - dc.DrawLine(WXROUND(leftX), WXROUND(y), WXROUND(rightX), WXROUND(y)); - } - } - - currentY = actualY; - - node = node->Next(); - } -} - -void wxDividedShape::SetSize(double w, double h, bool recursive) -{ - SetAttachmentSize(w, h); - m_width = w; - m_height = h; - SetRegionSizes(); -} - -void wxDividedShape::SetRegionSizes() -{ - if (GetRegions().Number() == 0) - return; - - double defaultProportion = (double)(GetRegions().Number() > 0 ? (1.0/((double)(GetRegions().Number()))) : 0.0); - double currentY = (double)(m_ypos - (m_height / 2.0)); - double maxY = (double)(m_ypos + (m_height / 2.0)); - -// double leftX = (double)(m_xpos - (m_width / 2.0)); -// double rightX = (double)(m_xpos + (m_width / 2.0)); - - wxNode *node = GetRegions().First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - double proportion = - region->m_regionProportionY <= 0.0 ? defaultProportion : region->m_regionProportionY; - - double sizeY = (double)proportion*m_height; - double y = currentY + sizeY; - double actualY = maxY < y ? maxY : y; - - double centreY = (double)(currentY + (actualY - currentY)/2.0); - - region->SetSize(m_width, sizeY); - region->SetPosition(0.0, (double)(centreY - m_ypos)); - currentY = actualY; - node = node->Next(); - } -} - -// Attachment points correspond to regions in the divided box -bool wxDividedShape::GetAttachmentPosition(int attachment, double *x, double *y, int nth, int no_arcs, - wxLineShape *line) -{ - int totalNumberAttachments = (GetRegions().Number() * 2) + 2; - if ((GetAttachmentMode() == ATTACHMENT_MODE_NONE) || (attachment >= totalNumberAttachments)) - { - return wxShape::GetAttachmentPosition(attachment, x, y, nth, no_arcs); - } - - int n = GetRegions().Number(); - bool isEnd = (line && line->IsEnd(this)); - - double left = (double)(m_xpos - m_width/2.0); - double right = (double)(m_xpos + m_width/2.0); - double top = (double)(m_ypos - m_height/2.0); - double bottom = (double)(m_ypos + m_height/2.0); - - // Zero is top, n+1 is bottom. - if (attachment == 0) - { - *y = top; - if (m_spaceAttachments) - { - if (line && (line->GetAlignmentType(isEnd) == LINE_ALIGNMENT_TO_NEXT_HANDLE)) - { - // Align line according to the next handle along - wxRealPoint *point = line->GetNextControlPoint(this); - if (point->x < left) - *x = left; - else if (point->x > right) - *x = right; - else - *x = point->x; - } - else - *x = left + (nth + 1)*m_width/(no_arcs + 1); - } - else - *x = m_xpos; - } - else if (attachment == (n+1)) - { - *y = bottom; - if (m_spaceAttachments) - { - if (line && (line->GetAlignmentType(isEnd) == LINE_ALIGNMENT_TO_NEXT_HANDLE)) - { - // Align line according to the next handle along - wxRealPoint *point = line->GetNextControlPoint(this); - if (point->x < left) - *x = left; - else if (point->x > right) - *x = right; - else - *x = point->x; - } - else - *x = left + (nth + 1)*m_width/(no_arcs + 1); - } - else - *x = m_xpos; - } - // Left or right. - else - { - int i = 0; - bool isLeft = FALSE; - if (attachment < (n+1)) - { - i = attachment-1; - isLeft = FALSE; - } - else - { - i = (totalNumberAttachments - attachment - 1); - isLeft = TRUE; - } - wxNode *node = GetRegions().Nth(i); - if (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - - if (isLeft) - *x = left; - else - *x = right; - - // Calculate top and bottom of region - top = (double)((m_ypos + region->m_y) - (region->m_height/2.0)); - bottom = (double)((m_ypos + region->m_y) + (region->m_height/2.0)); - - // Assuming we can trust the absolute size and - // position of these regions... - if (m_spaceAttachments) - { - if (line && (line->GetAlignmentType(isEnd) == LINE_ALIGNMENT_TO_NEXT_HANDLE)) - { - // Align line according to the next handle along - wxRealPoint *point = line->GetNextControlPoint(this); - if (point->y < bottom) - *y = bottom; - else if (point->y > top) - *y = top; - else - *y = point->y; - } - else -// *y = (double)(((m_ypos + region->m_y) - (region->m_height/2.0)) + (nth + 1)*region->m_height/(no_arcs+1)); - *y = (double)(top + (nth + 1)*region->m_height/(no_arcs+1)); - } - else - *y = (double)(m_ypos + region->m_y); - } - else - { - *x = m_xpos; - *y = m_ypos; - return FALSE; - } - } - return TRUE; -} - -int wxDividedShape::GetNumberOfAttachments() const -{ - // There are two attachments for each region (left and right), - // plus one on the top and one on the bottom. - int n = (GetRegions().Number() * 2) + 2; - - int maxN = n - 1; - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - if (point->m_id > maxN) - maxN = point->m_id; - node = node->Next(); - } - return maxN + 1; -} - -bool wxDividedShape::AttachmentIsValid(int attachment) -{ - int totalNumberAttachments = (GetRegions().Number() * 2) + 2; - if (attachment >= totalNumberAttachments) - { - return wxShape::AttachmentIsValid(attachment); - } - else if (attachment >= 0) - return TRUE; - else - return FALSE; -} - -void wxDividedShape::Copy(wxShape& copy) -{ - wxRectangleShape::Copy(copy); -} - -// Region operations - -void wxDividedShape::MakeControlPoints() -{ - wxRectangleShape::MakeControlPoints(); - - MakeMandatoryControlPoints(); -} - -void wxDividedShape::MakeMandatoryControlPoints() -{ - double currentY = (double)(GetY() - (m_height / 2.0)); - double maxY = (double)(GetY() + (m_height / 2.0)); - - wxNode *node = GetRegions().First(); - int i = 0; - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - - double proportion = region->m_regionProportionY; - - double y = currentY + m_height*proportion; - double actualY = (double)(maxY < y ? maxY : y); - - if (node->Next()) - { - wxDividedShapeControlPoint *controlPoint = - new wxDividedShapeControlPoint(m_canvas, this, i, CONTROL_POINT_SIZE, 0.0, (double)(actualY - GetY()), 0); - m_canvas->AddShape(controlPoint); - m_controlPoints.Append(controlPoint); - } - currentY = actualY; - i ++; - node = node->Next(); - } -} - -void wxDividedShape::ResetControlPoints() -{ - // May only have the region handles, (n - 1) of them. - if (m_controlPoints.Number() > (GetRegions().Number() - 1)) - wxRectangleShape::ResetControlPoints(); - - ResetMandatoryControlPoints(); -} - -void wxDividedShape::ResetMandatoryControlPoints() -{ - double currentY = (double)(GetY() - (m_height / 2.0)); - double maxY = (double)(GetY() + (m_height / 2.0)); - - wxNode *node = m_controlPoints.First(); - int i = 0; - while (node) - { - wxControlPoint *controlPoint = (wxControlPoint *)node->Data(); - if (controlPoint->IsKindOf(CLASSINFO(wxDividedShapeControlPoint))) - { - wxNode *node1 = GetRegions().Nth(i); - wxShapeRegion *region = (wxShapeRegion *)node1->Data(); - - double proportion = region->m_regionProportionY; - - double y = currentY + m_height*proportion; - double actualY = (double)(maxY < y ? maxY : y); - - controlPoint->m_xoffset = 0.0; - controlPoint->m_yoffset = (double)(actualY - GetY()); - currentY = actualY; - i ++; - } - node = node->Next(); - } -} - -#ifdef PROLOGIO -void wxDividedShape::WriteAttributes(wxExpr *clause) -{ - wxRectangleShape::WriteAttributes(clause); -} - -void wxDividedShape::ReadAttributes(wxExpr *clause) -{ - wxRectangleShape::ReadAttributes(clause); -} -#endif - -/* - * Edit the division colour/style - * - */ - -void wxDividedShape::EditRegions() -{ - wxMessageBox("EditRegions() is unimplemented.", "OGL", wxOK); - - // TODO -#if 0 - if (GetRegions().Number() < 2) - return; - - wxBeginBusyCursor(); - - GraphicsForm *form = new GraphicsForm("Divided nodes"); - // Need an array to store all the style strings, - // since they need to be converted to integers - char **styleStrings = new char *[GetRegions().Number()]; - for (int j = 0; j < GetRegions().Number(); j++) - styleStrings[j] = NULL; - - int i = 0; - wxNode *node = GetRegions().First(); - while (node && node->Next()) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - char buf[50]; - sprintf(buf, "Region %d", (i+1)); - form->Add(wxMakeFormMessage(buf)); - form->Add(wxMakeFormNewLine()); - - form->Add(wxMakeFormString("Colour", ®ion->penColour, wxFORM_CHOICE, - new wxList(wxMakeConstraintStrings( - "Invisible" , - "BLACK" , - "BLUE" , - "BROWN" , - "CORAL" , - "CYAN" , - "DARK GREY" , - "DARK GREEN" , - "DIM GREY" , - "GREY" , - "GREEN" , - "LIGHT BLUE" , - "LIGHT GREY" , - "MAGENTA" , - "MAROON" , - "NAVY" , - "ORANGE" , - "PURPLE" , - "RED" , - "TURQUOISE" , - "VIOLET" , - "WHITE" , - "YELLOW" , - NULL), - NULL), NULL, wxVERTICAL, 150)); - - char *styleString = NULL; - switch (region->penStyle) - { - case wxSHORT_DASH: - styleString = "Short Dash"; - break; - case wxLONG_DASH: - styleString = "Long Dash"; - break; - case wxDOT: - styleString = "Dot"; - break; - case wxDOT_DASH: - styleString = "Dot Dash"; - break; - case wxSOLID: - default: - styleString = "Solid"; - break; - } - styleStrings[i] = copystring(styleString); - form->Add(wxMakeFormString("Style", &(styleStrings[i]), wxFORM_CHOICE, - new wxList(wxMakeConstraintStrings( - "Solid" , - "Short Dash" , - "Long Dash" , - "Dot" , - "Dot Dash" , - NULL), - NULL), NULL, wxVERTICAL, 100)); - node = node->Next(); - i ++; - if (node && node->Next()) - form->Add(wxMakeFormNewLine()); - } - wxDialogBox *dialog = new wxDialogBox(m_canvas->GetParent(), "Divided object properties", 10, 10, 500, 500); - if (GraphicsLabelFont) - dialog->SetLabelFont(GraphicsLabelFont); - if (GraphicsButtonFont) - dialog->SetButtonFont(GraphicsButtonFont); - form->AssociatePanel(dialog); - form->dialog = dialog; - - dialog->Fit(); - dialog->Centre(wxBOTH); - - wxEndBusyCursor(); - - dialog->Show(TRUE); - - node = GetRegions().First(); - i = 0; - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - - if (styleStrings[i]) - { - if (strcmp(styleStrings[i], "Solid") == 0) - region->penStyle = wxSOLID; - else if (strcmp(styleStrings[i], "Dot") == 0) - region->penStyle = wxDOT; - else if (strcmp(styleStrings[i], "Short Dash") == 0) - region->penStyle = wxSHORT_DASH; - else if (strcmp(styleStrings[i], "Long Dash") == 0) - region->penStyle = wxLONG_DASH; - else if (strcmp(styleStrings[i], "Dot Dash") == 0) - region->penStyle = wxDOT_DASH; - delete[] styleStrings[i]; - } - region->m_actualPenObject = NULL; - node = node->Next(); - i ++; - } - delete[] styleStrings; - Draw(dc); -#endif -} - -void wxDividedShape::OnRightClick(double x, double y, int keys, int attachment) -{ - if (keys & KEY_CTRL) - { - EditRegions(); - } - else - { - wxRectangleShape::OnRightClick(x, y, keys, attachment); - } -} - -wxDividedShapeControlPoint::wxDividedShapeControlPoint(wxShapeCanvas *the_canvas, wxShape *object, - int region, double size, double the_m_xoffset, double the_m_yoffset, int the_type): - wxControlPoint(the_canvas, object, size, the_m_xoffset, the_m_yoffset, the_type) -{ - regionId = region; -} - -wxDividedShapeControlPoint::~wxDividedShapeControlPoint() -{ -} - -// Implement resizing of divided object division -void wxDividedShapeControlPoint::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - wxDividedShape *dividedObject = (wxDividedShape *)m_shape; - double x1 = (double)(dividedObject->GetX() - (dividedObject->GetWidth()/2.0)); - double y1 = y; - double x2 = (double)(dividedObject->GetX() + (dividedObject->GetWidth()/2.0)); - double y2 = y; - dc.DrawLine(WXROUND(x1), WXROUND(y1), WXROUND(x2), WXROUND(y2)); -} - -void wxDividedShapeControlPoint::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - wxDividedShape *dividedObject = (wxDividedShape *)m_shape; - dc.SetLogicalFunction(wxXOR); - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - double x1 = (double)(dividedObject->GetX() - (dividedObject->GetWidth()/2.0)); - double y1 = y; - double x2 = (double)(dividedObject->GetX() + (dividedObject->GetWidth()/2.0)); - double y2 = y; - dc.DrawLine(WXROUND(x1), WXROUND(y1), WXROUND(x2), WXROUND(y2)); - m_canvas->CaptureMouse(); -} - -void wxDividedShapeControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - wxDividedShape *dividedObject = (wxDividedShape *)m_shape; - wxNode *node = dividedObject->GetRegions().Nth(regionId); - if (!node) - return; - - wxShapeRegion *thisRegion = (wxShapeRegion *)node->Data(); - wxShapeRegion *nextRegion = NULL; // Region below this one - - dc.SetLogicalFunction(wxCOPY); - - m_canvas->ReleaseMouse(); - - // Find the old top and bottom of this region, - // and calculate the new proportion for this region - // if legal. - - double currentY = (double)(dividedObject->GetY() - (dividedObject->GetHeight() / 2.0)); - double maxY = (double)(dividedObject->GetY() + (dividedObject->GetHeight() / 2.0)); - - // Save values - double thisRegionTop = 0.0; - double thisRegionBottom = 0.0; - double nextRegionBottom = 0.0; - - node = dividedObject->GetRegions().First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - - double proportion = region->m_regionProportionY; - double yy = currentY + (dividedObject->GetHeight()*proportion); - double actualY = (double)(maxY < yy ? maxY : yy); - - if (region == thisRegion) - { - thisRegionTop = currentY; - thisRegionBottom = actualY; - if (node->Next()) - nextRegion = (wxShapeRegion *)node->Next()->Data(); - } - if (region == nextRegion) - { - nextRegionBottom = actualY; - } - - currentY = actualY; - node = node->Next(); - } - if (!nextRegion) - return; - - // Check that we haven't gone above this region or below - // next region. - if ((y <= thisRegionTop) || (y >= nextRegionBottom)) - return; - - dividedObject->EraseLinks(dc); - - // Now calculate the new proportions of this region and the next region. - double thisProportion = (double)((y - thisRegionTop)/dividedObject->GetHeight()); - double nextProportion = (double)((nextRegionBottom - y)/dividedObject->GetHeight()); - thisRegion->SetProportions(0.0, thisProportion); - nextRegion->SetProportions(0.0, nextProportion); - m_yoffset = (double)(y - dividedObject->GetY()); - - // Now reformat text - int i = 0; - node = dividedObject->GetRegions().First(); - while (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - if (region->GetText()) - { - char *s = copystring(region->GetText()); - dividedObject->FormatText(dc, s, i); - delete[] s; - } - node = node->Next(); - i++; - } - dividedObject->SetRegionSizes(); - dividedObject->Draw(dc); - dividedObject->GetEventHandler()->OnMoveLinks(dc); -} - diff --git a/utils/ogl/src/divided.h b/utils/ogl/src/divided.h deleted file mode 100644 index f8404637df..0000000000 --- a/utils/ogl/src/divided.h +++ /dev/null @@ -1,75 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: divided.h -// Purpose: wxDividedShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_DIVIDED_H_ -#define _OGL_DIVIDED_H_ - -#ifdef __GNUG__ -#pragma interface "basic.h" -#endif - -/* - * Definition of a region - * - */ - -/* - * Box divided into horizontal regions - * - */ - -extern wxFont *g_oglNormalFont; -class wxDividedShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxDividedShape) - - public: - wxDividedShape(double w = 0.0, double h = 0.0); - ~wxDividedShape(); - - void OnDraw(wxDC& dc); - void OnDrawContents(wxDC& dc); - - void SetSize(double w, double h, bool recursive = TRUE); - - void MakeControlPoints(); - void ResetControlPoints(); - - void MakeMandatoryControlPoints(); - void ResetMandatoryControlPoints(); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - - void Copy(wxShape ©); - - // Set all region sizes according to proportions and - // this object total size - void SetRegionSizes(); - - // Edit region colours/styles - void EditRegions(); - - // Attachment points correspond to regions in the divided box - bool GetAttachmentPosition(int attachment, double *x, double *y, - int nth = 0, int no_arcs = 1, wxLineShape *line = NULL); - bool AttachmentIsValid(int attachment); - int GetNumberOfAttachments() const; - - // Invoke editor on CTRL-right click - void OnRightClick(double x, double y, int keys = 0, int attachment = 0); -}; - -#endif - // _OGL_DIVIDED_H_ - diff --git a/utils/ogl/src/drawn.cpp b/utils/ogl/src/drawn.cpp deleted file mode 100644 index 7a41a3eb17..0000000000 --- a/utils/ogl/src/drawn.cpp +++ /dev/null @@ -1,2489 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: drawn.cpp -// Purpose: wxDrawnShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "drawn.h" -#pragma implementation "drawnp.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include "basic.h" -#include "basicp.h" -#include "canvas.h" -#include "mfutils.h" -#include "drawn.h" -#include "drawnp.h" -#include "misc.h" - -static void IntToHex(unsigned int dec, char *buf); -static unsigned long HexToInt(char *buf); -extern char *oglBuffer; - -#define gyTYPE_PEN 40 -#define gyTYPE_BRUSH 41 -#define gyTYPE_FONT 42 - -/* - * Drawn object - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxDrawnShape, wxRectangleShape) - -wxDrawnShape::wxDrawnShape():wxRectangleShape(100.0, 50.0) -{ - m_saveToFile = TRUE; - m_currentAngle = oglDRAWN_ANGLE_0; -} - -wxDrawnShape::~wxDrawnShape() -{ -} - -void wxDrawnShape::OnDraw(wxDC& dc) -{ - // Pass pen and brush in case we have force outline - // and fill colours - if (m_shadowMode != SHADOW_NONE) - { - if (m_shadowBrush) - m_metafiles[m_currentAngle].m_fillBrush = m_shadowBrush; - m_metafiles[m_currentAngle].m_outlinePen = g_oglTransparentPen; - m_metafiles[m_currentAngle].Draw(dc, m_xpos + m_shadowOffsetX, m_ypos + m_shadowOffsetY); - } - - m_metafiles[m_currentAngle].m_outlinePen = m_pen; - m_metafiles[m_currentAngle].m_fillBrush = m_brush; - m_metafiles[m_currentAngle].Draw(dc, m_xpos, m_ypos); -} - -void wxDrawnShape::SetSize(double w, double h, bool recursive) -{ - SetAttachmentSize(w, h); - - double scaleX; - double scaleY; - if (GetWidth() == 0.0) - scaleX = 1.0; - else scaleX = w/GetWidth(); - if (GetHeight() == 0.0) - scaleY = 1.0; - else scaleY = h/GetHeight(); - - int i = 0; - for (i = 0; i < 4; i++) - { - if (m_metafiles[i].IsValid()) - m_metafiles[i].Scale(scaleX, scaleY); - } - m_width = w; - m_height = h; - SetDefaultRegionSize(); -} - -void wxDrawnShape::Scale(double sx, double sy) -{ - int i; - for (i = 0; i < 4; i++) - { - if (m_metafiles[i].IsValid()) - { - m_metafiles[i].Scale(sx, sy); - m_metafiles[i].CalculateSize(this); - } - } -} - -void wxDrawnShape::Translate(double x, double y) -{ - int i; - for (i = 0; i < 4; i++) - { - if (m_metafiles[i].IsValid()) - { - m_metafiles[i].Translate(x, y); - m_metafiles[i].CalculateSize(this); - } - } -} - -// theta is absolute rotation from the zero position -void wxDrawnShape::Rotate(double x, double y, double theta) -{ - m_currentAngle = DetermineMetaFile(theta); - - if (m_currentAngle == 0) - { - // Rotate metafile - if (!m_metafiles[0].GetRotateable()) - return; - - m_metafiles[0].Rotate(x, y, theta); - } - - double actualTheta = theta-m_rotation; - - // Rotate attachment points - double sinTheta = (double)sin(actualTheta); - double cosTheta = (double)cos(actualTheta); - wxNode *node = m_attachmentPoints.First(); - while (node) - { - wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data(); - double x1 = point->m_x; - double y1 = point->m_y; - point->m_x = x1*cosTheta - y1*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - point->m_y = x1*sinTheta + y1*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - node = node->Next(); - } - m_rotation = theta; - - m_metafiles[m_currentAngle].CalculateSize(this); -} - -// Which metafile do we use now? Based on current rotation and validity -// of metafiles. - -int wxDrawnShape::DetermineMetaFile(double rotation) -{ - double tolerance = 0.0001; - const double pi = 3.1415926535897932384626433832795 ; - double angle1 = 0.0; - double angle2 = pi/2.0; - double angle3 = pi; - double angle4 = 3.0*pi/2.0; - - int whichMetafile = 0; - - if (oglRoughlyEqual(rotation, angle1, tolerance)) - { - whichMetafile = 0; - } - else if (oglRoughlyEqual(rotation, angle2, tolerance)) - { - whichMetafile = 1; - } - else if (oglRoughlyEqual(rotation, angle3, tolerance)) - { - whichMetafile = 2; - } - else if (oglRoughlyEqual(rotation, angle4, tolerance)) - { - whichMetafile = 3; - } - - if ((whichMetafile > 0) && !m_metafiles[whichMetafile].IsValid()) - whichMetafile = 0; - - return whichMetafile; -} - -void wxDrawnShape::OnDrawOutline(wxDC& dc, double x, double y, double w, double h) -{ - if (m_metafiles[m_currentAngle].GetOutlineOp() != -1) - { - wxNode* node = m_metafiles[m_currentAngle].GetOps().Nth(m_metafiles[m_currentAngle].GetOutlineOp()); - wxASSERT (node != NULL); - wxDrawOp* op = (wxDrawOp*) node->Data(); - - if (op->OnDrawOutline(dc, x, y, w, h, m_width, m_height)) - return; - } - - // Default... just use a rectangle - wxRectangleShape::OnDrawOutline(dc, x, y, w, h); -} - -// Get the perimeter point using the special outline op, if there is one, -// otherwise use default wxRectangleShape scheme -bool wxDrawnShape::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3) -{ - if (m_metafiles[m_currentAngle].GetOutlineOp() != -1) - { - wxNode* node = m_metafiles[m_currentAngle].GetOps().Nth(m_metafiles[m_currentAngle].GetOutlineOp()); - wxASSERT (node != NULL); - wxDrawOp* op = (wxDrawOp*) node->Data(); - - if (op->GetPerimeterPoint(x1, y1, x2, y2, x3, y3, GetX(), GetY(), GetAttachmentMode())) - return TRUE; - } - - // Default... just use a rectangle - return wxRectangleShape::GetPerimeterPoint(x1, y1, x2, y2, x3, y3); -} - -#ifdef PROLOGIO -void wxDrawnShape::WriteAttributes(wxExpr *clause) -{ - wxRectangleShape::WriteAttributes(clause); - - clause->AddAttributeValue("current_angle", (long)m_currentAngle); - clause->AddAttributeValue("save_metafile", (long)m_saveToFile); - if (m_saveToFile) - { - int i = 0; - for (i = 0; i < 4; i++) - { - if (m_metafiles[i].IsValid()) - m_metafiles[i].WriteAttributes(clause, i); - } - } -} - -void wxDrawnShape::ReadAttributes(wxExpr *clause) -{ - wxRectangleShape::ReadAttributes(clause); - - int iVal = (int) m_saveToFile; - clause->GetAttributeValue("save_metafile", iVal); - clause->GetAttributeValue("current_angle", m_currentAngle); - m_saveToFile = (iVal != 0); - - if (m_saveToFile) - { - int i = 0; - for (i = 0; i < 4; i++) - { - m_metafiles[i].ReadAttributes(clause, i); - } - } -} -#endif - -// Does the copying for this object -void wxDrawnShape::Copy(wxShape& copy) -{ - wxRectangleShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxDrawnShape)) ) ; - - wxDrawnShape& drawnCopy = (wxDrawnShape&) copy; - - int i = 0; - for (i = 0; i < 4; i++) - { - m_metafiles[i].Copy(drawnCopy.m_metafiles[i]); - } - drawnCopy.m_saveToFile = m_saveToFile; - drawnCopy.m_currentAngle = m_currentAngle; -} - -bool wxDrawnShape::LoadFromMetaFile(char *filename) -{ - return m_metafiles[0].LoadFromMetaFile(filename, &m_width, &m_height); -} - -// Set of functions for drawing into a pseudo metafile. -// They use integers, but doubles are used internally for accuracy -// when scaling. - -void wxDrawnShape::DrawLine(const wxPoint& pt1, const wxPoint& pt2) -{ - m_metafiles[m_currentAngle].DrawLine(pt1, pt2); -} - -void wxDrawnShape::DrawRectangle(const wxRect& rect) -{ - m_metafiles[m_currentAngle].DrawRectangle(rect); -} - -void wxDrawnShape::DrawRoundedRectangle(const wxRect& rect, double radius) -{ - m_metafiles[m_currentAngle].DrawRoundedRectangle(rect, radius); -} - -void wxDrawnShape::DrawEllipse(const wxRect& rect) -{ - m_metafiles[m_currentAngle].DrawEllipse(rect); -} - -void wxDrawnShape::DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt) -{ - m_metafiles[m_currentAngle].DrawArc(centrePt, startPt, endPt); -} - -void wxDrawnShape::DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle) -{ - m_metafiles[m_currentAngle].DrawEllipticArc(rect, startAngle, endAngle); -} - -void wxDrawnShape::DrawPoint(const wxPoint& pt) -{ - m_metafiles[m_currentAngle].DrawPoint(pt); -} - -void wxDrawnShape::DrawText(const wxString& text, const wxPoint& pt) -{ - m_metafiles[m_currentAngle].DrawText(text, pt); -} - -void wxDrawnShape::DrawLines(int n, wxPoint pts[]) -{ - m_metafiles[m_currentAngle].DrawLines(n, pts); -} - -void wxDrawnShape::DrawPolygon(int n, wxPoint pts[], int flags) -{ - if (flags & oglMETAFLAGS_ATTACHMENTS) - { - ClearAttachments(); - int i; - for (i = 0; i < n; i++) - m_attachmentPoints.Append(new wxAttachmentPoint(i, pts[i].x, pts[i].y)); - } - m_metafiles[m_currentAngle].DrawPolygon(n, pts, flags); -} - -void wxDrawnShape::DrawSpline(int n, wxPoint pts[]) -{ - m_metafiles[m_currentAngle].DrawSpline(n, pts); -} - -void wxDrawnShape::SetClippingRect(const wxRect& rect) -{ - m_metafiles[m_currentAngle].SetClippingRect(rect); -} - -void wxDrawnShape::DestroyClippingRect() -{ - m_metafiles[m_currentAngle].DestroyClippingRect(); -} - -void wxDrawnShape::SetDrawnPen(wxPen* pen, bool isOutline) -{ - m_metafiles[m_currentAngle].SetPen(pen, isOutline); -} - -void wxDrawnShape::SetDrawnBrush(wxBrush* brush, bool isFill) -{ - m_metafiles[m_currentAngle].SetBrush(brush, isFill); -} - -void wxDrawnShape::SetDrawnFont(wxFont* font) -{ - m_metafiles[m_currentAngle].SetFont(font); -} - -void wxDrawnShape::SetDrawnTextColour(const wxColour& colour) -{ - m_metafiles[m_currentAngle].SetTextColour(colour); -} - -void wxDrawnShape::SetDrawnBackgroundColour(const wxColour& colour) -{ - m_metafiles[m_currentAngle].SetBackgroundColour(colour); -} - -void wxDrawnShape::SetDrawnBackgroundMode(int mode) -{ - m_metafiles[m_currentAngle].SetBackgroundMode(mode); -} - - -/* - * Individual operations - * - */ - -/* - * Set font, brush, text colour - * - */ - -wxOpSetGDI::wxOpSetGDI(int theOp, wxPseudoMetaFile *theImage, int theGdiIndex, int theMode): - wxDrawOp(theOp) -{ - m_gdiIndex = theGdiIndex; - m_image = theImage; - m_mode = theMode; -} - -void wxOpSetGDI::Do(wxDC& dc, double xoffset, double yoffset) -{ - switch (m_op) - { - case DRAWOP_SET_PEN: - { - // Check for overriding this operation for outline - // colour - if (m_image->m_outlineColours.Member((wxObject *)m_gdiIndex)) - { - if (m_image->m_outlinePen) - dc.SetPen(* m_image->m_outlinePen); - } - else - { - wxNode *node = m_image->m_gdiObjects.Nth(m_gdiIndex); - if (node) - { - wxPen *pen = (wxPen *)node->Data(); - if (pen) - dc.SetPen(* pen); - } - } - break; - } - case DRAWOP_SET_BRUSH: - { - // Check for overriding this operation for outline or fill - // colour - if (m_image->m_outlineColours.Member((wxObject *)m_gdiIndex)) - { - // Need to construct a brush to match the outline pen's colour - if (m_image->m_outlinePen) - { - wxBrush *br = wxTheBrushList->FindOrCreateBrush(m_image->m_outlinePen->GetColour(), wxSOLID); - if (br) - dc.SetBrush(* br); - } - } - else if (m_image->m_fillColours.Member((wxObject *)m_gdiIndex)) - { - if (m_image->m_fillBrush) - { - dc.SetBrush(* m_image->m_fillBrush); - } - } - else - { - wxNode *node = m_image->m_gdiObjects.Nth(m_gdiIndex); - if (node) - { - wxBrush *brush = (wxBrush *)node->Data(); - if (brush) - dc.SetBrush(* brush); - } - } - break; - } - case DRAWOP_SET_FONT: - { - wxNode *node = m_image->m_gdiObjects.Nth(m_gdiIndex); - if (node) - { - wxFont *font = (wxFont *)node->Data(); - if (font) - dc.SetFont(* font); - } - break; - } - case DRAWOP_SET_TEXT_COLOUR: - { - wxColour col(m_r,m_g,m_b); - dc.SetTextForeground(col); - break; - } - case DRAWOP_SET_BK_COLOUR: - { - wxColour col(m_r,m_g,m_b); - dc.SetTextBackground(col); - break; - } - case DRAWOP_SET_BK_MODE: - { - dc.SetBackgroundMode(m_mode); - break; - } - default: - break; - } -} - -wxDrawOp *wxOpSetGDI::Copy(wxPseudoMetaFile *newImage) -{ - wxOpSetGDI *newOp = new wxOpSetGDI(m_op, newImage, m_gdiIndex, m_mode); - newOp->m_r = m_r; - newOp->m_g = m_g; - newOp->m_b = m_b; - return newOp; -} - -wxExpr *wxOpSetGDI::WriteExpr(wxPseudoMetaFile *image) -{ - wxExpr *expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)m_op)); - switch (m_op) - { - case DRAWOP_SET_PEN: - case DRAWOP_SET_BRUSH: - case DRAWOP_SET_FONT: - { - expr->Append(new wxExpr((long)m_gdiIndex)); - break; - } - case DRAWOP_SET_TEXT_COLOUR: - case DRAWOP_SET_BK_COLOUR: - { - expr->Append(new wxExpr((long)m_r)); - expr->Append(new wxExpr((long)m_g)); - expr->Append(new wxExpr((long)m_b)); - break; - } - case DRAWOP_SET_BK_MODE: - { - expr->Append(new wxExpr((long)m_mode)); - break; - } - default: - break; - } - return expr; -} - -void wxOpSetGDI::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr) -{ - switch (m_op) - { - case DRAWOP_SET_PEN: - case DRAWOP_SET_BRUSH: - case DRAWOP_SET_FONT: - { - m_gdiIndex = (int)expr->Nth(1)->IntegerValue(); - break; - } - case DRAWOP_SET_TEXT_COLOUR: - case DRAWOP_SET_BK_COLOUR: - { - m_r = (unsigned char)expr->Nth(1)->IntegerValue(); - m_g = (unsigned char)expr->Nth(2)->IntegerValue(); - m_b = (unsigned char)expr->Nth(3)->IntegerValue(); - break; - } - case DRAWOP_SET_BK_MODE: - { - m_mode = (int)expr->Nth(1)->IntegerValue(); - break; - } - default: - break; - } -} - -/* - * Set/destroy clipping - * - */ - -wxOpSetClipping::wxOpSetClipping(int theOp, double theX1, double theY1, - double theX2, double theY2):wxDrawOp(theOp) -{ - m_x1 = theX1; - m_y1 = theY1; - m_x2 = theX2; - m_y2 = theY2; -} - -wxDrawOp *wxOpSetClipping::Copy(wxPseudoMetaFile *newImage) -{ - wxOpSetClipping *newOp = new wxOpSetClipping(m_op, m_x1, m_y1, m_x2, m_y2); - return newOp; -} - -void wxOpSetClipping::Do(wxDC& dc, double xoffset, double yoffset) -{ - switch (m_op) - { - case DRAWOP_SET_CLIPPING_RECT: - { - dc.SetClippingRegion((long)(m_x1 + xoffset), (long)(m_y1 + yoffset), (long)(m_x2 + xoffset), (long)(m_y2 + yoffset)); - break; - } - case DRAWOP_DESTROY_CLIPPING_RECT: - { - dc.DestroyClippingRegion(); - break; - } - default: - break; - } -} - -void wxOpSetClipping::Scale(double xScale, double yScale) -{ - m_x1 *= xScale; - m_y1 *= yScale; - m_x2 *= xScale; - m_y2 *= yScale; -} - -void wxOpSetClipping::Translate(double x, double y) -{ - m_x1 += x; - m_y1 += y; -} - -wxExpr *wxOpSetClipping::WriteExpr(wxPseudoMetaFile *image) -{ - wxExpr *expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)m_op)); - switch (m_op) - { - case DRAWOP_SET_CLIPPING_RECT: - { - expr->Append(new wxExpr(m_x1)); - expr->Append(new wxExpr(m_y1)); - expr->Append(new wxExpr(m_x2)); - expr->Append(new wxExpr(m_y2)); - break; - } - default: - break; - } - return expr; -} - -void wxOpSetClipping::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr) -{ - switch (m_op) - { - case DRAWOP_SET_CLIPPING_RECT: - { - m_x1 = expr->Nth(1)->RealValue(); - m_y1 = expr->Nth(2)->RealValue(); - m_x2 = expr->Nth(3)->RealValue(); - m_y2 = expr->Nth(4)->RealValue(); - break; - } - default: - break; - } -} - -/* - * Draw line, rectangle, rounded rectangle, ellipse, point, arc, text - * - */ - -wxOpDraw::wxOpDraw(int theOp, double theX1, double theY1, double theX2, double theY2, - double theRadius, char *s):wxDrawOp(theOp) -{ - m_x1 = theX1; - m_y1 = theY1; - m_x2 = theX2; - m_y2 = theY2; - m_x3 = 0.0; - m_y3 = 0.0; - m_radius = theRadius; - if (s) m_textString = copystring(s); - else m_textString = NULL; -} - -wxOpDraw::~wxOpDraw() -{ - if (m_textString) delete[] m_textString; -} - -wxDrawOp *wxOpDraw::Copy(wxPseudoMetaFile *newImage) -{ - wxOpDraw *newOp = new wxOpDraw(m_op, m_x1, m_y1, m_x2, m_y2, m_radius, m_textString); - newOp->m_x3 = m_x3; - newOp->m_y3 = m_y3; - return newOp; -} - -void wxOpDraw::Do(wxDC& dc, double xoffset, double yoffset) -{ - switch (m_op) - { - case DRAWOP_DRAW_LINE: - { - dc.DrawLine(WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset), WXROUND(m_x2+xoffset), WXROUND(m_y2+yoffset)); - break; - } - case DRAWOP_DRAW_RECT: - { - dc.DrawRectangle(WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset), WXROUND(m_x2), WXROUND(m_y2)); - break; - } - case DRAWOP_DRAW_ROUNDED_RECT: - { - dc.DrawRoundedRectangle(WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset), WXROUND(m_x2), WXROUND(m_y2), m_radius); - break; - } - case DRAWOP_DRAW_ELLIPSE: - { - dc.DrawEllipse(WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset), WXROUND(m_x2), WXROUND(m_y2)); - break; - } - case DRAWOP_DRAW_ARC: - { - dc.DrawArc(WXROUND(m_x2+xoffset), WXROUND(m_y2+yoffset), - WXROUND(m_x3+xoffset), WXROUND(m_y3+yoffset), - WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset)); - break; - } - case DRAWOP_DRAW_ELLIPTIC_ARC: - { - const double pi = 3.1415926535897932384626433832795 ; - - // Convert back to degrees - dc.DrawEllipticArc( - WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset), - WXROUND(m_x2), WXROUND(m_y2), - WXROUND(m_x3*(360.0/(2.0*pi))), WXROUND(m_y3*(360.0/(2.0*pi)))); - break; - } - case DRAWOP_DRAW_POINT: - { - dc.DrawPoint(WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset)); - break; - } - case DRAWOP_DRAW_TEXT: - { - dc.DrawText(m_textString, WXROUND(m_x1+xoffset), WXROUND(m_y1+yoffset)); - break; - } - default: - break; - } -} - -void wxOpDraw::Scale(double scaleX, double scaleY) -{ - m_x1 *= scaleX; - m_y1 *= scaleY; - m_x2 *= scaleX; - m_y2 *= scaleY; - - if (m_op != DRAWOP_DRAW_ELLIPTIC_ARC) - { - m_x3 *= scaleX; - m_y3 *= scaleY; - } - - m_radius *= scaleX; -} - -void wxOpDraw::Translate(double x, double y) -{ - m_x1 += x; - m_y1 += y; - - switch (m_op) - { - case DRAWOP_DRAW_LINE: - { - m_x2 += x; - m_y2 += y; - break; - } - case DRAWOP_DRAW_ARC: - { - m_x2 += x; - m_y2 += y; - m_x3 += x; - m_y3 += y; - break; - } - case DRAWOP_DRAW_ELLIPTIC_ARC: - { - break; - } - default: - break; - } -} - -void wxOpDraw::Rotate(double x, double y, double theta, double sinTheta, double cosTheta) -{ - double newX1 = m_x1*cosTheta - m_y1*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - double newY1 = m_x1*sinTheta + m_y1*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - - switch (m_op) - { - case DRAWOP_DRAW_LINE: - { - double newX2 = m_x2*cosTheta - m_y2*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - double newY2 = m_x2*sinTheta + m_y2*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - - m_x1 = newX1; - m_y1 = newY1; - m_x2 = newX2; - m_y2 = newY2; - break; - } - case DRAWOP_DRAW_RECT: - case DRAWOP_DRAW_ROUNDED_RECT: - case DRAWOP_DRAW_ELLIPTIC_ARC: - { - // Assume only 0, 90, 180, 270 degree rotations. - // oldX1, oldY1 represents the top left corner. Find the - // bottom right, and rotate that. Then the width/height is the difference - // between x/y values. - double oldBottomRightX = m_x1 + m_x2; - double oldBottomRightY = m_y1 + m_y2; - double newBottomRightX = oldBottomRightX*cosTheta - oldBottomRightY*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - double newBottomRightY = oldBottomRightX*sinTheta + oldBottomRightY*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - - // Now find the new top-left, bottom-right coordinates. - double minX = wxMin(newX1, newBottomRightX); - double minY = wxMin(newY1, newBottomRightY); - double maxX = wxMax(newX1, newBottomRightX); - double maxY = wxMax(newY1, newBottomRightY); - - m_x1 = minX; - m_y1 = minY; - m_x2 = maxX - minX; // width - m_y2 = maxY - minY; // height - - if (m_op == DRAWOP_DRAW_ELLIPTIC_ARC) - { - // Add rotation to angles - m_x3 += theta; - m_y3 += theta; - } - - break; - } - case DRAWOP_DRAW_ARC: - { - double newX2 = m_x2*cosTheta - m_y2*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - double newY2 = m_x2*sinTheta + m_y2*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - double newX3 = m_x3*cosTheta - m_y3*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - double newY3 = m_x3*sinTheta + m_y3*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - - m_x1 = newX1; - m_y1 = newY1; - m_x2 = newX2; - m_y2 = newY2; - m_x3 = newX3; - m_y3 = newY3; - - break; - } - default: - break; - } -} - -wxExpr *wxOpDraw::WriteExpr(wxPseudoMetaFile *image) -{ - wxExpr *expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)m_op)); - switch (m_op) - { - case DRAWOP_DRAW_LINE: - case DRAWOP_DRAW_RECT: - case DRAWOP_DRAW_ELLIPSE: - { - expr->Append(new wxExpr(m_x1)); - expr->Append(new wxExpr(m_y1)); - expr->Append(new wxExpr(m_x2)); - expr->Append(new wxExpr(m_y2)); - break; - } - case DRAWOP_DRAW_ROUNDED_RECT: - { - expr->Append(new wxExpr(m_x1)); - expr->Append(new wxExpr(m_y1)); - expr->Append(new wxExpr(m_x2)); - expr->Append(new wxExpr(m_y2)); - expr->Append(new wxExpr(m_radius)); - break; - } - case DRAWOP_DRAW_POINT: - { - expr->Append(new wxExpr(m_x1)); - expr->Append(new wxExpr(m_y1)); - break; - } - case DRAWOP_DRAW_TEXT: - { - expr->Append(new wxExpr(m_x1)); - expr->Append(new wxExpr(m_y1)); - expr->Append(new wxExpr(wxExprString, m_textString)); - break; - } - case DRAWOP_DRAW_ARC: - case DRAWOP_DRAW_ELLIPTIC_ARC: - { - expr->Append(new wxExpr(m_x1)); - expr->Append(new wxExpr(m_y1)); - expr->Append(new wxExpr(m_x2)); - expr->Append(new wxExpr(m_y2)); - expr->Append(new wxExpr(m_x3)); - expr->Append(new wxExpr(m_y3)); - break; - } - default: - { - break; - } - } - return expr; -} - -void wxOpDraw::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr) -{ - switch (m_op) - { - case DRAWOP_DRAW_LINE: - case DRAWOP_DRAW_RECT: - case DRAWOP_DRAW_ELLIPSE: - { - m_x1 = expr->Nth(1)->RealValue(); - m_y1 = expr->Nth(2)->RealValue(); - m_x2 = expr->Nth(3)->RealValue(); - m_y2 = expr->Nth(4)->RealValue(); - break; - } - case DRAWOP_DRAW_ROUNDED_RECT: - { - m_x1 = expr->Nth(1)->RealValue(); - m_y1 = expr->Nth(2)->RealValue(); - m_x2 = expr->Nth(3)->RealValue(); - m_y2 = expr->Nth(4)->RealValue(); - m_radius = expr->Nth(5)->RealValue(); - break; - } - case DRAWOP_DRAW_POINT: - { - m_x1 = expr->Nth(1)->RealValue(); - m_y1 = expr->Nth(2)->RealValue(); - break; - } - case DRAWOP_DRAW_TEXT: - { - m_x1 = expr->Nth(1)->RealValue(); - m_y1 = expr->Nth(2)->RealValue(); - wxString str(expr->Nth(3)->StringValue()); - m_textString = copystring((const char*) str); - break; - } - case DRAWOP_DRAW_ARC: - case DRAWOP_DRAW_ELLIPTIC_ARC: - { - m_x1 = expr->Nth(1)->RealValue(); - m_y1 = expr->Nth(2)->RealValue(); - m_x2 = expr->Nth(3)->RealValue(); - m_y2 = expr->Nth(4)->RealValue(); - m_x3 = expr->Nth(5)->RealValue(); - m_y3 = expr->Nth(6)->RealValue(); - break; - } - default: - { - break; - } - } -} - -/* - * Draw polygon, polyline, spline - * - */ - -wxOpPolyDraw::wxOpPolyDraw(int theOp, int n, wxRealPoint *thePoints):wxDrawOp(theOp) -{ - m_noPoints = n; - m_points = thePoints; -} - -wxOpPolyDraw::~wxOpPolyDraw() -{ - delete[] m_points; -} - -wxDrawOp *wxOpPolyDraw::Copy(wxPseudoMetaFile *newImage) -{ - wxRealPoint *newPoints = new wxRealPoint[m_noPoints]; - for (int i = 0; i < m_noPoints; i++) - { - newPoints[i].x = m_points[i].x; - newPoints[i].y = m_points[i].y; - } - wxOpPolyDraw *newOp = new wxOpPolyDraw(m_op, m_noPoints, newPoints); - return newOp; -} - -void wxOpPolyDraw::Do(wxDC& dc, double xoffset, double yoffset) -{ - switch (m_op) - { - case DRAWOP_DRAW_POLYLINE: - { - wxPoint *actualPoints = new wxPoint[m_noPoints]; - int i; - for (i = 0; i < m_noPoints; i++) - { - actualPoints[i].x = WXROUND(m_points[i].x); - actualPoints[i].y = WXROUND(m_points[i].y); - } - - dc.DrawLines(m_noPoints, actualPoints, WXROUND(xoffset), WXROUND(yoffset)); - - delete[] actualPoints; - break; - } - case DRAWOP_DRAW_POLYGON: - { - wxPoint *actualPoints = new wxPoint[m_noPoints]; - int i; - for (i = 0; i < m_noPoints; i++) - { - actualPoints[i].x = WXROUND(m_points[i].x); - actualPoints[i].y = WXROUND(m_points[i].y); - } - - dc.DrawPolygon(m_noPoints, actualPoints, WXROUND(xoffset), WXROUND(yoffset)); - - delete[] actualPoints; - break; - } - case DRAWOP_DRAW_SPLINE: - { - wxPoint *actualPoints = new wxPoint[m_noPoints]; - int i; - for (i = 0; i < m_noPoints; i++) - { - actualPoints[i].x = WXROUND(m_points[i].x); - actualPoints[i].y = WXROUND(m_points[i].y); - } - - dc.DrawSpline(m_noPoints, actualPoints); // no offsets in DrawSpline // , xoffset, yoffset); - - delete[] actualPoints; - break; - break; - } - default: - break; - } -} - -void wxOpPolyDraw::Scale(double scaleX, double scaleY) -{ - for (int i = 0; i < m_noPoints; i++) - { - m_points[i].x *= scaleX; - m_points[i].y *= scaleY; - } -} - -void wxOpPolyDraw::Translate(double x, double y) -{ - for (int i = 0; i < m_noPoints; i++) - { - m_points[i].x += x; - m_points[i].y += y; - } -} - -void wxOpPolyDraw::Rotate(double x, double y, double theta, double sinTheta, double cosTheta) -{ - for (int i = 0; i < m_noPoints; i++) - { - double x1 = m_points[i].x; - double y1 = m_points[i].y; - m_points[i].x = x1*cosTheta - y1*sinTheta + x*(1.0 - cosTheta) + y*sinTheta; - m_points[i].y = x1*sinTheta + y1*cosTheta + y*(1.0 - cosTheta) + x*sinTheta; - } -} - -wxExpr *wxOpPolyDraw::WriteExpr(wxPseudoMetaFile *image) -{ - wxExpr *expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)m_op)); - expr->Append(new wxExpr((long)m_noPoints)); - -// char buf1[9]; - char buf2[5]; - char buf3[5]; - - oglBuffer[0] = 0; - - /* - * Store each coordinate pair in a hex string to save space. - * E.g. "1B9080CD". 4 hex digits per coordinate pair. - * - */ - - for (int i = 0; i < m_noPoints; i++) - { - long signedX = (long)(m_points[i].x*100.0); - long signedY = (long)(m_points[i].y*100.0); - - // Scale to 0 -> 64K - long unSignedX = (long)(signedX + 32767.0); - long unSignedY = (long)(signedY + 32767.0); - -// IntToHex((unsigned int)signedX, buf2); -// IntToHex((unsigned int)signedY, buf3); - IntToHex((int)unSignedX, buf2); - IntToHex((int)unSignedY, buf3); - - // Don't overrun the buffer - if ((i*8) < 3000) - { - strcat(oglBuffer, buf2); - strcat(oglBuffer, buf3); - } - } - expr->Append(new wxExpr(wxExprString, oglBuffer)); - return expr; -} - -void wxOpPolyDraw::ReadExpr(wxPseudoMetaFile *image, wxExpr *expr) -{ - m_noPoints = (int)expr->Nth(1)->IntegerValue(); - - char buf1[5]; - char buf2[5]; - - m_points = new wxRealPoint[m_noPoints]; - int i = 0; - int bufPtr = 0; - wxString hexString = expr->Nth(2)->StringValue(); - while (i < m_noPoints) - { - buf1[0] = hexString[(size_t)bufPtr]; - buf1[1] = hexString[(size_t)(bufPtr + 1)]; - buf1[2] = hexString[(size_t)(bufPtr + 2)]; - buf1[3] = hexString[(size_t)(bufPtr + 3)]; - buf1[4] = 0; - - buf2[0] = hexString[(size_t)(bufPtr + 4)]; - buf2[1] = hexString[(size_t)(bufPtr + 5)]; - buf2[2] = hexString[(size_t)(bufPtr + 6)]; - buf2[3] = hexString[(size_t)(bufPtr + 7)]; - buf2[4] = 0; - - bufPtr += 8; - -// int signedX = (signed int)HexToInt(buf1); -// int signedY = (signed int)HexToInt(buf2); - long unSignedX = HexToInt(buf1); - long unSignedY = HexToInt(buf2); - // Scale -32K -> +32K - long signedX = unSignedX - 32767; - long signedY = unSignedY - 32767; -#ifdef __WXMSW__ - int testX = (signed int)unSignedX; - int testY = (signed int)unSignedY; -#endif - - m_points[i].x = (double)(signedX / 100.0); - m_points[i].y = (double)(signedY / 100.0); - - i ++; - } -} - -// Draw an outline using the current operation. -bool wxOpPolyDraw::OnDrawOutline(wxDC& dc, double x, double y, double w, double h, double oldW, double oldH) -{ - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - // Multiply all points by proportion of new size to old size - double x_proportion = (double)(fabs(w/oldW)); - double y_proportion = (double)(fabs(h/oldH)); - - int n = m_noPoints; - wxPoint *intPoints = new wxPoint[n]; - int i; - for (i = 0; i < n; i++) - { - intPoints[i].x = WXROUND (x_proportion * m_points[i].x); - intPoints[i].y = WXROUND (y_proportion * m_points[i].y); - } - dc.DrawPolygon(n, intPoints, (long) x, (long) y); - delete[] intPoints; - return TRUE; -} - -// Assume (x1, y1) is centre of box (most generally, line end at box) -bool wxOpPolyDraw::GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3, - double xOffset, double yOffset, - int attachmentMode) -{ - int n = m_noPoints; - - // First check for situation where the line is vertical, - // and we would want to connect to a point on that vertical -- - // oglFindEndForPolyline can't cope with this (the arrow - // gets drawn to the wrong place). - if ((attachmentMode == ATTACHMENT_MODE_NONE) && (x1 == x2)) - { - // Look for the point we'd be connecting to. This is - // a heuristic... - int i; - for (i = 0; i < n; i++) - { - wxRealPoint *point = & (m_points[i]); - if (point->x == 0.0) - { - if ((y2 > y1) && (point->y > 0.0)) - { - *x3 = point->x + xOffset; - *y3 = point->y + yOffset; - return TRUE; - } - else if ((y2 < y1) && (point->y < 0.0)) - { - *x3 = point->x + xOffset; - *y3 = point->y + yOffset; - return TRUE; - } - } - } - } - - double *xpoints = new double[n]; - double *ypoints = new double[n]; - - int i = 0; - for (i = 0; i < n; i++) - { - wxRealPoint *point = & (m_points[i]); - xpoints[i] = point->x + xOffset; - ypoints[i] = point->y + yOffset; - } - - oglFindEndForPolyline(n, xpoints, ypoints, - x1, y1, x2, y2, x3, y3); - - delete[] xpoints; - delete[] ypoints; - - return TRUE; -} - - -/* - * Utilities - * - */ - -static char hexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F' }; - -// Convert unsigned 16-bit integer to 4-character hex string -static void IntToHex(unsigned int dec, char *buf) -{ - int digit1 = (int)(dec/4096); - int digit2 = (int)((dec - (digit1*4096))/256); - int digit3 = (int)((dec - (digit1*4096) - (digit2*256))/16); - int digit4 = dec - (digit1*4096 + digit2*256 + digit3*16); - - buf[0] = hexArray[digit1]; - buf[1] = hexArray[digit2]; - buf[2] = hexArray[digit3]; - buf[3] = hexArray[digit4]; - buf[4] = 0; -} - -// One hex digit to decimal number -static int HexToInt1(char hex) -{ - switch (hex) - { - case '0': - return 0; - case '1': - return 1; - case '2': - return 2; - case '3': - return 3; - case '4': - return 4; - case '5': - return 5; - case '6': - return 6; - case '7': - return 7; - case '8': - return 8; - case '9': - return 9; - case 'A': - return 10; - case 'B': - return 11; - case 'C': - return 12; - case 'D': - return 13; - case 'E': - return 14; - case 'F': - return 15; - default: - return 0; - } - return 0; -} - -// 4-digit hex string to unsigned integer -static unsigned long HexToInt(char *buf) -{ - long d1 = (long)(HexToInt1(buf[0])*4096.0) ; - long d2 = (long)(HexToInt1(buf[1])*256.0) ; - long d3 = (long)(HexToInt1(buf[2])*16.0) ; - long d4 = (long)(HexToInt1(buf[3])) ; - unsigned long n = (long)(d1 + d2 + d3 + d4) ; - return n; -} - -/* - * wxPseudo meta-file - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxPseudoMetaFile, wxObject) - -wxPseudoMetaFile::wxPseudoMetaFile() -{ - m_currentRotation = 0; - m_rotateable = TRUE; - m_width = 0.0; - m_height = 0.0; - m_outlinePen = NULL; - m_fillBrush = NULL; - m_outlineOp = -1; -} - -wxPseudoMetaFile::wxPseudoMetaFile(wxPseudoMetaFile& mf) -{ - mf.Copy(*this); -} - -wxPseudoMetaFile::~wxPseudoMetaFile() -{ - Clear(); -} - -void wxPseudoMetaFile::Clear() -{ - wxNode *node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - delete op; - node = node->Next(); - } - m_ops.Clear(); - m_gdiObjects.Clear(); - m_outlineColours.Clear(); - m_fillColours.Clear(); - m_outlineOp = -1; -} - -void wxPseudoMetaFile::Draw(wxDC& dc, double xoffset, double yoffset) -{ - wxNode *node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - op->Do(dc, xoffset, yoffset); - node = node->Next(); - } -} - -void wxPseudoMetaFile::Scale(double sx, double sy) -{ - wxNode *node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - op->Scale(sx, sy); - node = node->Next(); - } - m_width *= sx; - m_height *= sy; -} - -void wxPseudoMetaFile::Translate(double x, double y) -{ - wxNode *node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - op->Translate(x, y); - node = node->Next(); - } -} - -void wxPseudoMetaFile::Rotate(double x, double y, double theta) -{ - double theta1 = theta-m_currentRotation; - if (theta1 == 0.0) return; - double cosTheta = (double)cos(theta1); - double sinTheta = (double)sin(theta1); - - wxNode *node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - op->Rotate(x, y, theta, sinTheta, cosTheta); - node = node->Next(); - } - m_currentRotation = theta; -} - -#ifdef PROLOGIO -void wxPseudoMetaFile::WriteAttributes(wxExpr *clause, int whichAngle) -{ - wxString widthStr; - widthStr.Printf("meta_width%d", whichAngle); - - wxString heightStr; - heightStr.Printf("meta_height%d", whichAngle); - - wxString outlineStr; - outlineStr.Printf("outline_op%d", whichAngle); - - wxString rotateableStr; - rotateableStr.Printf("meta_rotateable%d", whichAngle); - - // Write width and height - clause->AddAttributeValue(widthStr, m_width); - clause->AddAttributeValue(heightStr, m_height); - clause->AddAttributeValue(rotateableStr, (long)m_rotateable); - clause->AddAttributeValue(outlineStr, (long)m_outlineOp); - - // Write GDI objects - char buf[50]; - int i = 1; - wxNode *node = m_gdiObjects.First(); - while (node) - { - sprintf(buf, "gdi%d_%d", whichAngle, i); - wxObject *obj = (wxObject *)node->Data(); - wxExpr *expr = NULL; - if (obj) - { - if (obj->IsKindOf(CLASSINFO(wxPen))) - { - wxPen *thePen = (wxPen *)obj; - expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)gyTYPE_PEN)); - expr->Append(new wxExpr((long)thePen->GetWidth())); - expr->Append(new wxExpr((long)thePen->GetStyle())); - expr->Append(new wxExpr((long)thePen->GetColour().Red())); - expr->Append(new wxExpr((long)thePen->GetColour().Green())); - expr->Append(new wxExpr((long)thePen->GetColour().Blue())); - } - else if (obj->IsKindOf(CLASSINFO(wxBrush))) - { - wxBrush *theBrush = (wxBrush *)obj; - expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)gyTYPE_BRUSH)); - expr->Append(new wxExpr((long)theBrush->GetStyle())); - expr->Append(new wxExpr((long)theBrush->GetColour().Red())); - expr->Append(new wxExpr((long)theBrush->GetColour().Green())); - expr->Append(new wxExpr((long)theBrush->GetColour().Blue())); - } - else if (obj->IsKindOf(CLASSINFO(wxFont))) - { - wxFont *theFont = (wxFont *)obj; - expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)gyTYPE_FONT)); - expr->Append(new wxExpr((long)theFont->GetPointSize())); - expr->Append(new wxExpr((long)theFont->GetFamily())); - expr->Append(new wxExpr((long)theFont->GetStyle())); - expr->Append(new wxExpr((long)theFont->GetWeight())); - expr->Append(new wxExpr((long)theFont->GetUnderlined())); - } - } - else - { - // If no recognised GDI object, append a place holder anyway. - expr = new wxExpr(wxExprList); - expr->Append(new wxExpr((long)0)); - } - - if (expr) - { - clause->AddAttributeValue(buf, expr); - i ++; - } - node = node->Next(); - } - - // Write drawing operations - i = 1; - node = m_ops.First(); - while (node) - { - sprintf(buf, "op%d_%d", whichAngle, i); - wxDrawOp *op = (wxDrawOp *)node->Data(); - wxExpr *expr = op->WriteExpr(this); - if (expr) - { - clause->AddAttributeValue(buf, expr); - i ++; - } - node = node->Next(); - } - - // Write outline and fill GDI op lists (if any) - if (m_outlineColours.Number() > 0) - { - wxExpr *outlineExpr = new wxExpr(wxExprList); - node = m_outlineColours.First(); - while (node) - { - outlineExpr->Append(new wxExpr((long)node->Data())); - node = node->Next(); - } - wxString outlineObjectsStr; - outlineObjectsStr.Printf("outline_objects%d", whichAngle); - - clause->AddAttributeValue(outlineObjectsStr, outlineExpr); - } - if (m_fillColours.Number() > 0) - { - wxExpr *fillExpr = new wxExpr(wxExprList); - node = m_fillColours.First(); - while (node) - { - fillExpr->Append(new wxExpr((long)node->Data())); - node = node->Next(); - } - wxString fillObjectsStr; - fillObjectsStr.Printf("fill_objects%d", whichAngle); - - clause->AddAttributeValue(fillObjectsStr, fillExpr); - } - -} - -void wxPseudoMetaFile::ReadAttributes(wxExpr *clause, int whichAngle) -{ - wxString widthStr; - widthStr.Printf("meta_width%d", whichAngle); - - wxString heightStr; - heightStr.Printf("meta_height%d", whichAngle); - - wxString outlineStr; - outlineStr.Printf("outline_op%d", whichAngle); - - wxString rotateableStr; - rotateableStr.Printf("meta_rotateable%d", whichAngle); - - clause->GetAttributeValue(widthStr, m_width); - clause->GetAttributeValue(heightStr, m_height); - clause->GetAttributeValue(outlineStr, m_outlineOp); - - int iVal = (int) m_rotateable; - clause->GetAttributeValue(rotateableStr, iVal); - m_rotateable = (iVal != 0); - - // Read GDI objects - char buf[50]; - int i = 1; - bool keepGoing = TRUE; - while (keepGoing) - { - sprintf(buf, "gdi%d_%d", whichAngle, i); - wxExpr *expr = NULL; - clause->GetAttributeValue(buf, &expr); - if (!expr) - { - keepGoing = FALSE; - } - else - { - wxExpr *idExpr = expr->Nth(0); - switch (idExpr->IntegerValue()) - { - case gyTYPE_PEN: - { - int penWidth = (int)expr->Nth(1)->IntegerValue(); - int penStyle = (int)expr->Nth(2)->IntegerValue(); - int penRed = (int)expr->Nth(3)->IntegerValue(); - int penGreen = (int)expr->Nth(4)->IntegerValue(); - int penBlue = (int)expr->Nth(5)->IntegerValue(); - wxColour col(penRed, penGreen, penBlue); - wxPen *p = wxThePenList->FindOrCreatePen(col, penWidth, penStyle); - if (!p) - p = wxBLACK_PEN; - m_gdiObjects.Append(p); - break; - } - case gyTYPE_BRUSH: - { - int brushStyle = (int)expr->Nth(1)->IntegerValue(); - int brushRed = (int)expr->Nth(2)->IntegerValue(); - int brushGreen = (int)expr->Nth(3)->IntegerValue(); - int brushBlue = (int)expr->Nth(4)->IntegerValue(); - wxColour col(brushRed, brushGreen, brushBlue); - wxBrush *b = wxTheBrushList->FindOrCreateBrush(col, brushStyle); - if (!b) - b = wxWHITE_BRUSH; - m_gdiObjects.Append(b); - break; - } - case gyTYPE_FONT: - { - int fontPointSize = (int)expr->Nth(1)->IntegerValue(); - int fontFamily = (int)expr->Nth(2)->IntegerValue(); - int fontStyle = (int)expr->Nth(3)->IntegerValue(); - int fontWeight = (int)expr->Nth(4)->IntegerValue(); - int fontUnderlined = (int)expr->Nth(5)->IntegerValue(); - m_gdiObjects.Append(wxTheFontList->FindOrCreateFont(fontPointSize, - fontFamily, fontStyle, fontWeight, (fontUnderlined != 0))); - break; - } - default: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - } - i ++; - } - } - - // Now read in the operations - keepGoing = TRUE; - i = 1; - while (keepGoing) - { - sprintf(buf, "op%d_%d", whichAngle, i); - wxExpr *expr = NULL; - clause->GetAttributeValue(buf, &expr); - if (!expr) - { - keepGoing = FALSE; - } - else - { - wxExpr *idExpr = expr->Nth(0); - int opId = (int)idExpr->IntegerValue(); - switch (opId) - { - case DRAWOP_SET_PEN: - case DRAWOP_SET_BRUSH: - case DRAWOP_SET_FONT: - case DRAWOP_SET_TEXT_COLOUR: - case DRAWOP_SET_BK_COLOUR: - case DRAWOP_SET_BK_MODE: - { - wxOpSetGDI *theOp = new wxOpSetGDI(opId, this, 0); - theOp->ReadExpr(this, expr); - m_ops.Append(theOp); - break; - } - - case DRAWOP_SET_CLIPPING_RECT: - case DRAWOP_DESTROY_CLIPPING_RECT: - { - wxOpSetClipping *theOp = new wxOpSetClipping(opId, 0.0, 0.0, 0.0, 0.0); - theOp->ReadExpr(this, expr); - m_ops.Append(theOp); - break; - } - - case DRAWOP_DRAW_LINE: - case DRAWOP_DRAW_RECT: - case DRAWOP_DRAW_ROUNDED_RECT: - case DRAWOP_DRAW_ELLIPSE: - case DRAWOP_DRAW_POINT: - case DRAWOP_DRAW_ARC: - case DRAWOP_DRAW_TEXT: - { - wxOpDraw *theOp = new wxOpDraw(opId, 0.0, 0.0, 0.0, 0.0); - theOp->ReadExpr(this, expr); - m_ops.Append(theOp); - break; - } - case DRAWOP_DRAW_SPLINE: - case DRAWOP_DRAW_POLYLINE: - case DRAWOP_DRAW_POLYGON: - { - wxOpPolyDraw *theOp = new wxOpPolyDraw(opId, 0, NULL); - theOp->ReadExpr(this, expr); - m_ops.Append(theOp); - break; - } - default: - break; - } - } - i ++; - } - - wxString outlineObjectsStr; - outlineObjectsStr.Printf("outline_objects%d", whichAngle); - - // Now read in the list of outline and fill operations, if any - wxExpr *expr1 = clause->AttributeValue(outlineObjectsStr); - if (expr1) - { - wxExpr *eachExpr = expr1->GetFirst(); - while (eachExpr) - { - m_outlineColours.Append((wxObject *)eachExpr->IntegerValue()); - eachExpr = eachExpr->GetNext(); - } - } - - wxString fillObjectsStr; - fillObjectsStr.Printf("fill_objects%d", whichAngle); - - expr1 = clause->AttributeValue(fillObjectsStr); - if (expr1) - { - wxExpr *eachExpr = expr1->GetFirst(); - while (eachExpr) - { - m_fillColours.Append((wxObject *)eachExpr->IntegerValue()); - eachExpr = eachExpr->GetNext(); - } - } -} -#endif - -// Does the copying for this object -void wxPseudoMetaFile::Copy(wxPseudoMetaFile& copy) -{ - copy.Clear(); - - copy.m_currentRotation = m_currentRotation; - copy.m_width = m_width; - copy.m_height = m_height; - copy.m_rotateable = m_rotateable; - copy.m_fillBrush = m_fillBrush; - copy.m_outlinePen = m_outlinePen; - copy.m_outlineOp = m_outlineOp; - - // Copy the GDI objects - wxNode *node = m_gdiObjects.First(); - while (node) - { - wxObject *obj = (wxObject *)node->Data(); - copy.m_gdiObjects.Append(obj); - node = node->Next(); - } - - // Copy the operations - node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - copy.m_ops.Append(op->Copy(©)); - node = node->Next(); - } - - // Copy the outline/fill operations - node = m_outlineColours.First(); - while (node) - { - copy.m_outlineColours.Append((wxObject *)node->Data()); - node = node->Next(); - } - node = m_fillColours.First(); - while (node) - { - copy.m_fillColours.Append((wxObject *)node->Data()); - node = node->Next(); - } -} - -/* - * Pass size of existing image; scale height to - * fit width and return new width and height. - * - */ - -bool wxPseudoMetaFile::LoadFromMetaFile(char *filename, double *rwidth, double *rheight) -{ - if (!FileExists(filename)) - return NULL; - - wxXMetaFile *metaFile = new wxXMetaFile; - - if (!metaFile->ReadFile(filename)) - { - delete metaFile; - return FALSE; - } - - double lastX = 0.0; - double lastY = 0.0; - - // Convert from metafile records to wxDrawnShape records - wxNode *node = metaFile->metaRecords.First(); - while (node) - { - wxMetaRecord *record = (wxMetaRecord *)node->Data(); - switch (record->metaFunction) - { - case META_SETBKCOLOR: - { - wxOpSetGDI *op = new wxOpSetGDI(DRAWOP_SET_BK_COLOUR, this, 0); - op->m_r = (unsigned char)record->param1; - op->m_g = (unsigned char)record->param2; - op->m_b = (unsigned char)record->param3; - m_ops.Append(op); - break; - } - case META_SETBKMODE: - { - wxOpSetGDI *op = new wxOpSetGDI(DRAWOP_SET_BK_MODE, this, 0, (int)record->param1); - m_ops.Append(op); - break; - } - case META_SETMAPMODE: - { - break; - } -// case META_SETROP2: -// case META_SETRELABS: -// case META_SETPOLYFILLMODE: -// case META_SETSTRETCHBLTMODE: -// case META_SETTEXTCHAREXTRA: - case META_SETTEXTCOLOR: - { - wxOpSetGDI *op = new wxOpSetGDI(DRAWOP_SET_TEXT_COLOUR, this, 0); - op->m_r = (unsigned char)record->param1; - op->m_g = (unsigned char)record->param2; - op->m_b = (unsigned char)record->param3; - m_ops.Append(op); - break; - } -// case META_SETTEXTJUSTIFICATION: -// case META_SETWINDOWORG: -// case META_SETWINDOWEXT: -// case META_SETVIEWPORTORG: -// case META_SETVIEWPORTEXT: -// case META_OFFSETWINDOWORG: -// case META_SCALEWINDOWEXT: -// case META_OFFSETVIEWPORTORG: -// case META_SCALEVIEWPORTEXT: - case META_LINETO: - { - wxOpDraw *op = new wxOpDraw(DRAWOP_DRAW_LINE, (double)lastX, (double)lastY, - (double)record->param1, (double)record->param2); - m_ops.Append(op); - break; - } - case META_MOVETO: - { - lastX = (double)record->param1; - lastY = (double)record->param2; - break; - } - case META_EXCLUDECLIPRECT: - { -/* - wxMetaRecord *rec = new wxMetaRecord(META_EXCLUDECLIPRECT); - rec->param4 = getshort(handle); // m_y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 -*/ - break; - } - case META_INTERSECTCLIPRECT: - { -/* - rec->param4 = getshort(handle); // m_y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 -*/ - break; - } -// case META_ARC: // DO!!! - case META_ELLIPSE: - { - wxOpDraw *op = new wxOpDraw(DRAWOP_DRAW_ELLIPSE, - (double)record->param1, (double)record->param2, - (double)(record->param3 - record->param1), - (double)(record->param4 - record->param2)); - m_ops.Append(op); - break; - } -// case META_FLOODFILL: -// case META_PIE: // DO!!! - case META_RECTANGLE: - { - wxOpDraw *op = new wxOpDraw(DRAWOP_DRAW_RECT, - (double)record->param1, (double)record->param2, - (double)(record->param3 - record->param1), - (double)(record->param4 - record->param2)); - m_ops.Append(op); - break; - } - case META_ROUNDRECT: - { - wxOpDraw *op = new wxOpDraw(DRAWOP_DRAW_ROUNDED_RECT, - (double)record->param1, (double)record->param2, - (double)(record->param3 - record->param1), - (double)(record->param4 - record->param2), (double)record->param5); - m_ops.Append(op); - break; - } -// case META_PATBLT: -// case META_SAVEDC: - case META_SETPIXEL: - { - wxOpDraw *op = new wxOpDraw(DRAWOP_DRAW_POINT, - (double)record->param1, (double)record->param2, - 0.0, 0.0); - -// SHOULD SET THE COLOUR - SET PEN? -// rec->param3 = getint(handle); // COLORREF - m_ops.Append(op); - break; - } -// case META_OFFSETCLIPRGN: - case META_TEXTOUT: - { - wxOpDraw *op = new wxOpDraw(DRAWOP_DRAW_TEXT, - (double)record->param1, (double)record->param2, - 0.0, 0.0, 0.0, record->stringParam); - m_ops.Append(op); - break; - } -// case META_BITBLT: -// case META_STRETCHBLT: - case META_POLYGON: - { - int n = (int)record->param1; - wxRealPoint *newPoints = new wxRealPoint[n]; - for (int i = 0; i < n; i++) - { - newPoints[i].x = record->points[i].x; - newPoints[i].y = record->points[i].y; - } - - wxOpPolyDraw *op = new wxOpPolyDraw(DRAWOP_DRAW_POLYGON, n, newPoints); - m_ops.Append(op); - break; - } - case META_POLYLINE: - { - int n = (int)record->param1; - wxRealPoint *newPoints = new wxRealPoint[n]; - for (int i = 0; i < n; i++) - { - newPoints[i].x = record->points[i].x; - newPoints[i].y = record->points[i].y; - } - - wxOpPolyDraw *op = new wxOpPolyDraw(DRAWOP_DRAW_POLYLINE, n, newPoints); - m_ops.Append(op); - break; - } -// case META_ESCAPE: -// case META_RESTOREDC: -// case META_FILLREGION: -// case META_FRAMEREGION: -// case META_INVERTREGION: -// case META_PAINTREGION: -// case META_SELECTCLIPREGION: // DO THIS! - case META_SELECTOBJECT: - { - // The pen, brush etc. has already been created when the metafile - // was read in, so we don't create it - we set it. - wxNode *recNode = metaFile->gdiObjects.Nth((int)record->param2); - if (recNode) - { - wxMetaRecord *gdiRec = (wxMetaRecord *)recNode->Data(); - if (gdiRec && (gdiRec->param1 != 0)) - { - wxObject *obj = (wxObject *)gdiRec->param1; - if (obj->IsKindOf(CLASSINFO(wxPen))) - { - wxOpSetGDI *op = new wxOpSetGDI(DRAWOP_SET_PEN, this, (int)record->param2); - m_ops.Append(op); - } - else if (obj->IsKindOf(CLASSINFO(wxBrush))) - { - wxOpSetGDI *op = new wxOpSetGDI(DRAWOP_SET_BRUSH, this, (int)record->param2); - m_ops.Append(op); - } - else if (obj->IsKindOf(CLASSINFO(wxFont))) - { - wxOpSetGDI *op = new wxOpSetGDI(DRAWOP_SET_FONT, this, (int)record->param2); - m_ops.Append(op); - } - } - } - break; - } -// case META_SETTEXTALIGN: -// case META_DRAWTEXT: -// case META_CHORD: -// case META_SETMAPPERFLAGS: -// case META_EXTTEXTOUT: -// case META_SETDIBTODEV: -// case META_SELECTPALETTE: -// case META_REALIZEPALETTE: -// case META_ANIMATEPALETTE: -// case META_SETPALENTRIES: -// case META_POLYPOLYGON: -// case META_RESIZEPALETTE: -// case META_DIBBITBLT: -// case META_DIBSTRETCHBLT: - case META_DIBCREATEPATTERNBRUSH: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } -// case META_STRETCHDIB: -// case META_EXTFLOODFILL: -// case META_RESETDC: -// case META_STARTDOC: -// case META_STARTPAGE: -// case META_ENDPAGE: -// case META_ABORTDOC: -// case META_ENDDOC: -// case META_DELETEOBJECT: // DO!! - case META_CREATEPALETTE: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - case META_CREATEBRUSH: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - case META_CREATEPATTERNBRUSH: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - case META_CREATEPENINDIRECT: - { - // The pen is created when the metafile is read in. - // We keep track of all the GDI objects needed for this - // image so when reading the wxDrawnShape from file, - // we can read in all the GDI objects, then refer - // to them by an index starting from zero thereafter. - m_gdiObjects.Append((wxObject *)record->param1); - break; - } - case META_CREATEFONTINDIRECT: - { - m_gdiObjects.Append((wxObject *)record->param1); - break; - } - case META_CREATEBRUSHINDIRECT: - { - // Don't have to do anything here: the pen is created - // when the metafile is read in. - m_gdiObjects.Append((wxObject *)record->param1); - break; - } - case META_CREATEBITMAPINDIRECT: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - case META_CREATEBITMAP: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - case META_CREATEREGION: - { - // Place holder - m_gdiObjects.Append(NULL); - break; - } - default: - { - break; - } - } - node = node->Next(); - } - double actualWidth = (double)fabs(metaFile->right - metaFile->left); - double actualHeight = (double)fabs(metaFile->bottom - metaFile->top); - - double initialScaleX = 1.0; - double initialScaleY = 1.0; - - double xoffset, yoffset; - - // Translate so origin is at centre of rectangle - if (metaFile->bottom > metaFile->top) - yoffset = - (double)((metaFile->bottom - metaFile->top)/2.0); - else - yoffset = - (double)((metaFile->top - metaFile->bottom)/2.0); - - if (metaFile->right > metaFile->left) - xoffset = - (double)((metaFile->right - metaFile->left)/2.0); - else - xoffset = - (double)((metaFile->left - metaFile->right)/2.0); - - Translate(xoffset, yoffset); - - // Scale to a reasonable size (take the width of this wxDrawnShape - // as a guide) - if (actualWidth != 0.0) - { - initialScaleX = (double)((*rwidth) / actualWidth); - initialScaleY = initialScaleX; - (*rheight) = initialScaleY*actualHeight; - } - Scale(initialScaleX, initialScaleY); - - m_width = (actualWidth*initialScaleX); - m_height = *rheight; - - delete metaFile; - return TRUE; -} - -// Scale to fit size -void wxPseudoMetaFile::ScaleTo(double w, double h) -{ - double scaleX = (double)(w/m_width); - double scaleY = (double)(h/m_height); - - // Do the scaling - Scale(scaleX, scaleY); -} - -void wxPseudoMetaFile::GetBounds(double *boundMinX, double *boundMinY, double *boundMaxX, double *boundMaxY) -{ - double maxX = (double) -99999.9; - double maxY = (double) -99999.9; - double minX = (double) 99999.9; - double minY = (double) 99999.9; - - wxNode *node = m_ops.First(); - while (node) - { - wxDrawOp *op = (wxDrawOp *)node->Data(); - switch (op->GetOp()) - { - case DRAWOP_DRAW_LINE: - case DRAWOP_DRAW_RECT: - case DRAWOP_DRAW_ROUNDED_RECT: - case DRAWOP_DRAW_ELLIPSE: - case DRAWOP_DRAW_POINT: - case DRAWOP_DRAW_TEXT: - { - wxOpDraw *opDraw = (wxOpDraw *)op; - if (opDraw->m_x1 < minX) minX = opDraw->m_x1; - if (opDraw->m_x1 > maxX) maxX = opDraw->m_x1; - if (opDraw->m_y1 < minY) minY = opDraw->m_y1; - if (opDraw->m_y1 > maxY) maxY = opDraw->m_y1; - if (op->GetOp() == DRAWOP_DRAW_LINE) - { - if (opDraw->m_x2 < minX) minX = opDraw->m_x2; - if (opDraw->m_x2 > maxX) maxX = opDraw->m_x2; - if (opDraw->m_y2 < minY) minY = opDraw->m_y2; - if (opDraw->m_y2 > maxY) maxY = opDraw->m_y2; - } - else if (op->GetOp() == DRAWOP_DRAW_RECT || - op->GetOp() == DRAWOP_DRAW_ROUNDED_RECT || - op->GetOp() == DRAWOP_DRAW_ELLIPSE) - { - if ((opDraw->m_x1 + opDraw->m_x2) < minX) minX = (opDraw->m_x1 + opDraw->m_x2); - if ((opDraw->m_x1 + opDraw->m_x2) > maxX) maxX = (opDraw->m_x1 + opDraw->m_x2); - if ((opDraw->m_y1 + opDraw->m_y2) < minY) minY = (opDraw->m_y1 + opDraw->m_y2); - if ((opDraw->m_y1 + opDraw->m_y2) > maxY) maxY = (opDraw->m_y1 + opDraw->m_y2); - } - break; - } - case DRAWOP_DRAW_ARC: - { - // TODO: don't yet know how to calculate the bounding box - // for an arc. So pretend it's a line; to get a correct - // bounding box, draw a blank rectangle first, of the correct - // size. - wxOpDraw *opDraw = (wxOpDraw *)op; - if (opDraw->m_x1 < minX) minX = opDraw->m_x1; - if (opDraw->m_x1 > maxX) maxX = opDraw->m_x1; - if (opDraw->m_y1 < minY) minY = opDraw->m_y1; - if (opDraw->m_y1 > maxY) maxY = opDraw->m_y1; - if (opDraw->m_x2 < minX) minX = opDraw->m_x2; - if (opDraw->m_x2 > maxX) maxX = opDraw->m_x2; - if (opDraw->m_y2 < minY) minY = opDraw->m_y2; - if (opDraw->m_y2 > maxY) maxY = opDraw->m_y2; - break; - } - case DRAWOP_DRAW_POLYLINE: - case DRAWOP_DRAW_POLYGON: - case DRAWOP_DRAW_SPLINE: - { - wxOpPolyDraw *poly = (wxOpPolyDraw *)op; - for (int i = 0; i < poly->m_noPoints; i++) - { - if (poly->m_points[i].x < minX) minX = poly->m_points[i].x; - if (poly->m_points[i].x > maxX) maxX = poly->m_points[i].x; - if (poly->m_points[i].y < minY) minY = poly->m_points[i].y; - if (poly->m_points[i].y > maxY) maxY = poly->m_points[i].y; - } - break; - } - default: - break; - } - node = node->Next(); - } - - *boundMinX = minX; - *boundMinY = minY; - *boundMaxX = maxX; - *boundMaxY = maxY; -/* - *w = (double)fabs(maxX - minX); - *h = (double)fabs(maxY - minY); -*/ -} - -// Calculate size from current operations -void wxPseudoMetaFile::CalculateSize(wxDrawnShape* shape) -{ - double boundMinX, boundMinY, boundMaxX, boundMaxY; - - GetBounds(& boundMinX, & boundMinY, & boundMaxX, & boundMaxY); - - SetSize(boundMaxX - boundMinX, boundMaxY - boundMinY); - - if (shape) - { - shape->SetWidth(m_width); - shape->SetHeight(m_height); - } -} - -// Set of functions for drawing into a pseudo metafile. -// They use integers, but doubles are used internally for accuracy -// when scaling. - -void wxPseudoMetaFile::DrawLine(const wxPoint& pt1, const wxPoint& pt2) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_LINE, - (double) pt1.x, (double) pt1.y, (double) pt2.x, (double) pt2.y); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawRectangle(const wxRect& rect) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_RECT, - (double) rect.x, (double) rect.y, (double) rect.width, (double) rect.height); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawRoundedRectangle(const wxRect& rect, double radius) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_ROUNDED_RECT, - (double) rect.x, (double) rect.y, (double) rect.width, (double) rect.height); - - theOp->m_radius = radius; - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawEllipse(const wxRect& rect) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_ELLIPSE, - (double) rect.x, (double) rect.y, (double) rect.width, (double) rect.height); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_ARC, - (double) centrePt.x, (double) centrePt.y, (double) startPt.x, (double) startPt.y); - - theOp->m_x3 = (double) endPt.x; - theOp->m_y3 = (double) endPt.y; - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle) -{ - const double pi = 3.1415926535897932384626433832795 ; - - double startAngleRadians = startAngle* (pi*2.0/360.0); - double endAngleRadians = endAngle* (pi*2.0/360.0); - - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_ELLIPTIC_ARC, - (double) rect.x, (double) rect.y, (double) rect.width, (double) rect.height); - - theOp->m_x3 = startAngleRadians; - theOp->m_y3 = endAngleRadians; - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawPoint(const wxPoint& pt) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_POINT, - (double) pt.x, (double) pt.y, 0.0, 0.0); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawText(const wxString& text, const wxPoint& pt) -{ - wxOpDraw *theOp = new wxOpDraw(DRAWOP_DRAW_TEXT, - (double) pt.x, (double) pt.y, 0.0, 0.0); - - theOp->m_textString = copystring(text); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawLines(int n, wxPoint pts[]) -{ - wxRealPoint* realPoints = new wxRealPoint[n]; - int i; - for (i = 0; i < n; i++) - { - realPoints[i].x = pts[i].x; - realPoints[i].y = pts[i].y; - } - wxOpPolyDraw* theOp = new wxOpPolyDraw(DRAWOP_DRAW_POLYLINE, n, realPoints); - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::DrawPolygon(int n, wxPoint pts[], int flags) -{ - wxRealPoint* realPoints = new wxRealPoint[n]; - int i; - for (i = 0; i < n; i++) - { - realPoints[i].x = pts[i].x; - realPoints[i].y = pts[i].y; - } - wxOpPolyDraw* theOp = new wxOpPolyDraw(DRAWOP_DRAW_POLYGON, n, realPoints); - m_ops.Append(theOp); - - if (flags & oglMETAFLAGS_OUTLINE) - m_outlineOp = (m_ops.Number() - 1); -} - -void wxPseudoMetaFile::DrawSpline(int n, wxPoint pts[]) -{ - wxRealPoint* realPoints = new wxRealPoint[n]; - int i; - for (i = 0; i < n; i++) - { - realPoints[i].x = pts[i].x; - realPoints[i].y = pts[i].y; - } - wxOpPolyDraw* theOp = new wxOpPolyDraw(DRAWOP_DRAW_SPLINE, n, realPoints); - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::SetClippingRect(const wxRect& rect) -{ - wxOpSetClipping* theOp = new wxOpSetClipping(DRAWOP_SET_CLIPPING_RECT, - (double) rect.x, (double) rect.y, (double) rect.width, (double) rect.height); -} - -void wxPseudoMetaFile::DestroyClippingRect() -{ - wxOpSetClipping* theOp = new wxOpSetClipping(DRAWOP_DESTROY_CLIPPING_RECT, - 0.0, 0.0, 0.0, 0.0); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::SetPen(wxPen* pen, bool isOutline) -{ - m_gdiObjects.Append(pen); - int n = m_gdiObjects.Number(); - - wxOpSetGDI* theOp = new wxOpSetGDI(DRAWOP_SET_PEN, this, n - 1); - - m_ops.Append(theOp); - - if (isOutline) - { - m_outlineColours.Append((wxObject*) (n - 1)); - } -} - -void wxPseudoMetaFile::SetBrush(wxBrush* brush, bool isFill) -{ - m_gdiObjects.Append(brush); - int n = m_gdiObjects.Number(); - - wxOpSetGDI* theOp = new wxOpSetGDI(DRAWOP_SET_BRUSH, this, n - 1); - - m_ops.Append(theOp); - - if (isFill) - { - m_fillColours.Append((wxObject*) (n - 1)); - } -} - -void wxPseudoMetaFile::SetFont(wxFont* font) -{ - m_gdiObjects.Append(font); - int n = m_gdiObjects.Number(); - - wxOpSetGDI* theOp = new wxOpSetGDI(DRAWOP_SET_FONT, this, n - 1); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::SetTextColour(const wxColour& colour) -{ - wxOpSetGDI* theOp = new wxOpSetGDI(DRAWOP_SET_TEXT_COLOUR, this, 0); - theOp->m_r = colour.Red(); - theOp->m_g = colour.Green(); - theOp->m_b = colour.Blue(); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::SetBackgroundColour(const wxColour& colour) -{ - wxOpSetGDI* theOp = new wxOpSetGDI(DRAWOP_SET_BK_COLOUR, this, 0); - theOp->m_r = colour.Red(); - theOp->m_g = colour.Green(); - theOp->m_b = colour.Blue(); - - m_ops.Append(theOp); -} - -void wxPseudoMetaFile::SetBackgroundMode(int mode) -{ - wxOpSetGDI* theOp = new wxOpSetGDI(DRAWOP_SET_BK_MODE, this, 0, mode); - - m_ops.Append(theOp); -} - diff --git a/utils/ogl/src/drawn.h b/utils/ogl/src/drawn.h deleted file mode 100644 index 5632990696..0000000000 --- a/utils/ogl/src/drawn.h +++ /dev/null @@ -1,227 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: drawn.h -// Purpose: wxDrawnShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_DRAWN_H_ -#define _OGL_DRAWN_H_ - -#ifdef __GNUG__ -#pragma interface "drawn.h" -#endif - -#include "basic.h" - -#define oglMETAFLAGS_OUTLINE 1 -#define oglMETAFLAGS_ATTACHMENTS 2 - -class wxDrawnShape; -class wxPseudoMetaFile: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxPseudoMetaFile) - public: - wxPseudoMetaFile(); - wxPseudoMetaFile(wxPseudoMetaFile& mf); - ~wxPseudoMetaFile(); - - void Draw(wxDC& dc, double xoffset, double yoffset); - -#ifdef PROLOGIO - void WriteAttributes(wxExpr *clause, int whichAngle); - void ReadAttributes(wxExpr *clause, int whichAngle); -#endif - - void Clear(); - - void Copy(wxPseudoMetaFile& copy); - - void Scale(double sx, double sy); - void ScaleTo(double w, double h); // Scale to fit size - void Translate(double x, double y); - - // Rotate about the given axis by theta radians from the x axis. - void Rotate(double x, double y, double theta); - - bool LoadFromMetaFile(char *filename, double *width, double *height); - - void GetBounds(double *minX, double *minY, double *maxX, double *maxY); - - // Calculate size from current operations - void CalculateSize(wxDrawnShape* shape); - - inline wxList& GetOutlineColours() const { return (wxList&) m_outlineColours; } - inline wxList& GetFillColours() const { return (wxList&) m_fillColours; } - inline void SetRotateable(bool rot) { m_rotateable = rot; } - inline bool GetRotateable() const { return m_rotateable; } - - inline void SetSize(double w, double h) { m_width = w; m_height = h; } - - inline void SetFillBrush(wxBrush* brush) { m_fillBrush = brush; } - inline wxBrush* GetFillBrush() const { return m_fillBrush; } - - inline void SetOutlinePen(wxPen* pen) { m_outlinePen = pen; } - inline wxPen* GetOutlinePen() const { return m_outlinePen; } - - inline void SetOutlineOp(int op) { m_outlineOp = op; } - inline int GetOutlineOp() const { return m_outlineOp; } - - inline wxList& GetOps() const { return (wxList&) m_ops; } - - // Is this a valid (non-empty) metafile? - inline bool IsValid() const { return (m_ops.Number() > 0); } - -public: - /// Set of functions for drawing into a pseudo metafile. - /// They use integers, but doubles are used internally for accuracy - /// when scaling. - - virtual void DrawLine(const wxPoint& pt1, const wxPoint& pt2); - virtual void DrawRectangle(const wxRect& rect); - virtual void DrawRoundedRectangle(const wxRect& rect, double radius); - virtual void DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt); - virtual void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle); - virtual void DrawEllipse(const wxRect& rect); - virtual void DrawPoint(const wxPoint& pt); - virtual void DrawText(const wxString& text, const wxPoint& pt); - virtual void DrawLines(int n, wxPoint pts[]); - // flags: - // oglMETAFLAGS_OUTLINE: will be used for drawing the outline and - // also drawing lines/arrows at the circumference. - // oglMETAFLAGS_ATTACHMENTS: will be used for initialising attachment points at - // the vertices (perhaps a rare case...) - virtual void DrawPolygon(int n, wxPoint pts[], int flags = 0); - virtual void DrawSpline(int n, wxPoint pts[]); - - virtual void SetClippingRect(const wxRect& rect); - virtual void DestroyClippingRect(); - - virtual void SetPen(wxPen* pen, bool isOutline = FALSE); // TODO: eventually, just store GDI object attributes, not actual - virtual void SetBrush(wxBrush* brush, bool isFill = FALSE); // pens/brushes etc. - virtual void SetFont(wxFont* font); - virtual void SetTextColour(const wxColour& colour); - virtual void SetBackgroundColour(const wxColour& colour); - virtual void SetBackgroundMode(int mode); - -public: - bool m_rotateable; - double m_width; - double m_height; - wxList m_ops; // List of drawing operations (see drawnp.h) - wxList m_gdiObjects; // List of pens, brushes and fonts for this object. - int m_outlineOp; // The op representing the outline, if any - - // Pen/brush specifying outline/fill colours - // to override operations. - wxPen* m_outlinePen; - wxBrush* m_fillBrush; - wxList m_outlineColours; // List of the GDI operations that comprise the outline - wxList m_fillColours; // List of the GDI operations that fill the shape - double m_currentRotation; -}; - -#define oglDRAWN_ANGLE_0 0 -#define oglDRAWN_ANGLE_90 1 -#define oglDRAWN_ANGLE_180 2 -#define oglDRAWN_ANGLE_270 3 - -class wxDrawnShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxDrawnShape) - public: - wxDrawnShape(); - ~wxDrawnShape(); - - void OnDraw(wxDC& dc); - -#ifdef PROLOGIO - // I/O - void WriteAttributes(wxExpr *clause); - void ReadAttributes(wxExpr *clause); -#endif - - // Does the copying for this object - void Copy(wxShape& copy); - - void Scale(double sx, double sy); - void Translate(double x, double y); - // Rotate about the given axis by theta radians from the x axis. - void Rotate(double x, double y, double theta); - - // Get current rotation - inline double GetRotation() const { return m_rotation; } - - void SetSize(double w, double h, bool recursive = TRUE); - bool LoadFromMetaFile(char *filename); - - inline void SetSaveToFile(bool save) { m_saveToFile = save; } - inline wxPseudoMetaFile& GetMetaFile(int which = 0) const { return (wxPseudoMetaFile&) m_metafiles[which]; } - - void OnDrawOutline(wxDC& dc, double x, double y, double w, double h); - - // Get the perimeter point using the special outline op, if there is one, - // otherwise use default wxRectangleShape scheme - bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3); - - /// Set of functions for drawing into a pseudo metafile. - /// They use integers, but doubles are used internally for accuracy - /// when scaling. - - virtual void DrawLine(const wxPoint& pt1, const wxPoint& pt2); - virtual void DrawRectangle(const wxRect& rect); - virtual void DrawRoundedRectangle(const wxRect& rect, double radius); - virtual void DrawArc(const wxPoint& centrePt, const wxPoint& startPt, const wxPoint& endPt); - virtual void DrawEllipticArc(const wxRect& rect, double startAngle, double endAngle); - virtual void DrawEllipse(const wxRect& rect); - virtual void DrawPoint(const wxPoint& pt); - virtual void DrawText(const wxString& text, const wxPoint& pt); - virtual void DrawLines(int n, wxPoint pts[]); - virtual void DrawPolygon(int n, wxPoint pts[], int flags = 0); - virtual void DrawSpline(int n, wxPoint pts[]); - - virtual void SetClippingRect(const wxRect& rect); - virtual void DestroyClippingRect(); - - virtual void SetDrawnPen(wxPen* pen, bool isOutline = FALSE); // TODO: eventually, just store GDI object attributes, not actual - virtual void SetDrawnBrush(wxBrush* brush, bool isFill = FALSE); // pens/brushes etc. - virtual void SetDrawnFont(wxFont* font); - virtual void SetDrawnTextColour(const wxColour& colour); - virtual void SetDrawnBackgroundColour(const wxColour& colour); - virtual void SetDrawnBackgroundMode(int mode); - - // Set the width/height according to the shapes in the metafile. - // Call this after drawing into the shape. - inline void CalculateSize() { m_metafiles[m_currentAngle].CalculateSize(this); } - - inline void DrawAtAngle(int angle) { m_currentAngle = angle; }; - - inline int GetAngle() const { return m_currentAngle; } - -// Implementation -protected: - // Which metafile do we use now? Based on current rotation and validity - // of metafiles. - int DetermineMetaFile(double rotation); - -private: - // One metafile for each 90 degree rotation (or just a single one). - wxPseudoMetaFile m_metafiles[4]; - - // Don't save all wxDrawnShape metafiles to file: sometimes - // we take the metafile data from a symbol library. - bool m_saveToFile; - - // Which angle are we using/drawing into? - int m_currentAngle; -}; - -#endif - // _DRAWN_H_ - diff --git a/utils/ogl/src/drawnp.h b/utils/ogl/src/drawnp.h deleted file mode 100644 index 991f5dc823..0000000000 --- a/utils/ogl/src/drawnp.h +++ /dev/null @@ -1,205 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: drawnp.h -// Purpose: Private header for wxDrawnShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_DRAWNP_H_ -#define _OGL_DRAWNP_H_ - -#ifdef __GNUG__ -#pragma interface "drawnp.h" -#endif - -#include "drawn.h" - -/* - * Drawing operations - * - */ - -#define DRAWOP_SET_PEN 1 -#define DRAWOP_SET_BRUSH 2 -#define DRAWOP_SET_FONT 3 -#define DRAWOP_SET_TEXT_COLOUR 4 -#define DRAWOP_SET_BK_COLOUR 5 -#define DRAWOP_SET_BK_MODE 6 -#define DRAWOP_SET_CLIPPING_RECT 7 -#define DRAWOP_DESTROY_CLIPPING_RECT 8 - -/* -#define DRAWOP_CREATE_PEN 10 -#define DRAWOP_CREATE_BRUSH 11 -#define DRAWOP_CREATE_FONT 12 -*/ - -#define DRAWOP_DRAW_LINE 20 -#define DRAWOP_DRAW_POLYLINE 21 -#define DRAWOP_DRAW_POLYGON 22 -#define DRAWOP_DRAW_RECT 23 -#define DRAWOP_DRAW_ROUNDED_RECT 24 -#define DRAWOP_DRAW_ELLIPSE 25 -#define DRAWOP_DRAW_POINT 26 -#define DRAWOP_DRAW_ARC 27 -#define DRAWOP_DRAW_TEXT 28 -#define DRAWOP_DRAW_SPLINE 29 -#define DRAWOP_DRAW_ELLIPTIC_ARC 30 - -/* - * Base, virtual class - * - */ - -class wxDrawOp: public wxObject -{ -public: - inline wxDrawOp(int theOp) { m_op = theOp; } - inline ~wxDrawOp() {} - inline virtual void Scale(double xScale, double yScale) {}; - inline virtual void Translate(double x, double y) {}; - inline virtual void Rotate(double x, double y, double theta, double sinTheta, double cosTheta) {}; - virtual void Do(wxDC& dc, double xoffset, double yoffset) = 0; - virtual wxDrawOp *Copy(wxPseudoMetaFile *newImage) = 0; - virtual wxExpr *WriteExpr(wxPseudoMetaFile *image) = 0; - virtual void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr) = 0; - - inline int GetOp() const { return m_op; } - - // Draw an outline using the current operation. By default, return FALSE (not drawn) - virtual bool OnDrawOutline(wxDC& dc, double x, double y, double w, double h, - double oldW, double oldH) { return FALSE; } - - // Get the perimeter point using this data - virtual bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3, - double xOffset, double yOffset, - int attachmentMode) - { return FALSE; } - -protected: - int m_op; - -}; - -/* - * Set font, brush, text colour - * - */ - -class wxOpSetGDI: public wxDrawOp -{ - public: - wxOpSetGDI(int theOp, wxPseudoMetaFile *theImage, int theGdiIndex, int theMode = 0); - void Do(wxDC& dc, double xoffset, double yoffset); - wxDrawOp *Copy(wxPseudoMetaFile *newImage); - wxExpr *WriteExpr(wxPseudoMetaFile *image); - void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr); - -public: - int m_mode; - int m_gdiIndex; - wxPseudoMetaFile* m_image; - unsigned char m_r; - unsigned char m_g; - unsigned char m_b; -}; - -/* - * Set/destroy clipping - * - */ - -class wxOpSetClipping: public wxDrawOp -{ -public: - wxOpSetClipping(int theOp, double theX1, double theY1, double theX2, double theY2); - void Do(wxDC& dc, double xoffset, double yoffset); - void Scale(double xScale, double yScale); - void Translate(double x, double y); - wxDrawOp *Copy(wxPseudoMetaFile *newImage); - wxExpr *WriteExpr(wxPseudoMetaFile *image); - void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr); - -public: - double m_x1; - double m_y1; - double m_x2; - double m_y2; -}; - -/* - * Draw line, rectangle, rounded rectangle, ellipse, point, arc, text - * - */ - -class wxOpDraw: public wxDrawOp -{ - public: - wxOpDraw(int theOp, double theX1, double theY1, double theX2, double theY2, - double radius = 0.0, char *s = NULL); - ~wxOpDraw(); - void Do(wxDC& dc, double xoffset, double yoffset); - void Scale(double scaleX, double scaleY); - void Translate(double x, double y); - void Rotate(double x, double y, double theta, double sinTheta, double cosTheta); - wxDrawOp *Copy(wxPseudoMetaFile *newImage); - wxExpr *WriteExpr(wxPseudoMetaFile *image); - void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr); - -public: - double m_x1; - double m_y1; - double m_x2; - double m_y2; - double m_x3; - double m_y3; - double m_radius; - char* m_textString; - -}; - -/* - * Draw polyline, spline, polygon - * - */ - -class wxOpPolyDraw: public wxDrawOp -{ -public: - wxOpPolyDraw(int theOp, int n, wxRealPoint *thePoints); - ~wxOpPolyDraw(); - void Do(wxDC& dc, double xoffset, double yoffset); - void Scale(double scaleX, double scaleY); - void Translate(double x, double y); - void Rotate(double x, double y, double theta, double sinTheta, double cosTheta); - wxDrawOp *Copy(wxPseudoMetaFile *newImage); - wxExpr *WriteExpr(wxPseudoMetaFile *image); - void ReadExpr(wxPseudoMetaFile *image, wxExpr *expr); - - // Draw an outline using the current operation. - virtual bool OnDrawOutline(wxDC& dc, double x, double y, double w, double h, - double oldW, double oldH); - - // Get the perimeter point using this data - bool GetPerimeterPoint(double x1, double y1, - double x2, double y2, - double *x3, double *y3, - double xOffset, double yOffset, - int attachmentMode); - -public: - wxRealPoint* m_points; - int m_noPoints; - -}; - -#endif - // _OGL_DRAWNP_H_ - - diff --git a/utils/ogl/src/lines.cpp b/utils/ogl/src/lines.cpp deleted file mode 100644 index a62cffbfa3..0000000000 --- a/utils/ogl/src/lines.cpp +++ /dev/null @@ -1,2515 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: lines.cpp -// Purpose: wxLineShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "lines.h" -#pragma implementation "linesp.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif - -#include -#include - -#include "basic.h" -#include "basicp.h" -#include "lines.h" -#include "linesp.h" -#include "drawn.h" -#include "misc.h" -#include "canvas.h" - -// Line shape -IMPLEMENT_DYNAMIC_CLASS(wxLineShape, wxShape) - -wxLineShape::wxLineShape() -{ - m_sensitivity = OP_CLICK_LEFT | OP_CLICK_RIGHT; - m_draggable = FALSE; - m_attachmentTo = 0; - m_attachmentFrom = 0; -/* - m_actualTextWidth = 0.0; - m_actualTextHeight = 0.0; -*/ - m_from = NULL; - m_to = NULL; - m_erasing = FALSE; - m_arrowSpacing = 5.0; // For the moment, don't bother saving this to file. - m_ignoreArrowOffsets = FALSE; - m_isSpline = FALSE; - m_maintainStraightLines = FALSE; - m_alignmentStart = 0; - m_alignmentEnd = 0; - - m_lineControlPoints = NULL; - - // Clear any existing regions (created in an earlier constructor) - // and make the three line regions. - ClearRegions(); - wxShapeRegion *newRegion = new wxShapeRegion; - newRegion->SetName("Middle"); - newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); - - newRegion = new wxShapeRegion; - newRegion->SetName("Start"); - newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); - - newRegion = new wxShapeRegion; - newRegion->SetName("End"); - newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); - - for (int i = 0; i < 3; i++) - m_labelObjects[i] = NULL; -} - -wxLineShape::~wxLineShape() -{ - if (m_lineControlPoints) - { - ClearPointList(*m_lineControlPoints); - delete m_lineControlPoints; - } - for (int i = 0; i < 3; i++) - { - if (m_labelObjects[i]) - { - m_labelObjects[i]->Select(FALSE); - m_labelObjects[i]->RemoveFromCanvas(m_canvas); - delete m_labelObjects[i]; - m_labelObjects[i] = NULL; - } - } - ClearArrowsAtPosition(-1); -} - -void wxLineShape::MakeLineControlPoints(int n) -{ - if (m_lineControlPoints) - { - ClearPointList(*m_lineControlPoints); - delete m_lineControlPoints; - } - m_lineControlPoints = new wxList; - - int i = 0; - for (i = 0; i < n; i++) - { - wxRealPoint *point = new wxRealPoint(-999, -999); - m_lineControlPoints->Append((wxObject*) point); - } -} - -wxNode *wxLineShape::InsertLineControlPoint(wxDC* dc) -{ - if (dc) - Erase(*dc); - - wxNode *last = m_lineControlPoints->Last(); - wxNode *second_last = last->Previous(); - wxRealPoint *last_point = (wxRealPoint *)last->Data(); - wxRealPoint *second_last_point = (wxRealPoint *)second_last->Data(); - - // Choose a point half way between the last and penultimate points - double line_x = ((last_point->x + second_last_point->x)/2); - double line_y = ((last_point->y + second_last_point->y)/2); - - wxRealPoint *point = new wxRealPoint(line_x, line_y); - wxNode *node = m_lineControlPoints->Insert(last, (wxObject*) point); - return node; -} - -bool wxLineShape::DeleteLineControlPoint() -{ - if (m_lineControlPoints->Number() < 3) - return FALSE; - - wxNode *last = m_lineControlPoints->Last(); - wxNode *second_last = last->Previous(); - - wxRealPoint *second_last_point = (wxRealPoint *)second_last->Data(); - delete second_last_point; - delete second_last; - - return TRUE; -} - -void wxLineShape::Initialise() -{ - if (m_lineControlPoints) - { - // Just move the first and last control points - wxNode *first = m_lineControlPoints->First(); - wxRealPoint *first_point = (wxRealPoint *)first->Data(); - - wxNode *last = m_lineControlPoints->Last(); - wxRealPoint *last_point = (wxRealPoint *)last->Data(); - - // If any of the line points are at -999, we must - // initialize them by placing them half way between the first - // and the last. - wxNode *node = first->Next(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - if (point->x == -999) - { - double x1, y1, x2, y2; - if (first_point->x < last_point->x) - { x1 = first_point->x; x2 = last_point->x; } - else - { x2 = first_point->x; x1 = last_point->x; } - - if (first_point->y < last_point->y) - { y1 = first_point->y; y2 = last_point->y; } - else - { y2 = first_point->y; y1 = last_point->y; } - - point->x = ((x2 - x1)/2 + x1); - point->y = ((y2 - y1)/2 + y1); - } - node = node->Next(); - } - } -} - -// Format a text string according to the region size, adding -// strings with positions to region text list -void wxLineShape::FormatText(wxDC& dc, const wxString& s, int i) -{ - double w, h; - ClearText(i); - - if (m_regions.Number() < 1) - return; - wxNode *node = m_regions.Nth(i); - if (!node) - return; - - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->SetText(s); - dc.SetFont(* region->GetFont()); - - region->GetSize(&w, &h); - // Initialize the size if zero - if (((w == 0) || (h == 0)) && (strlen(s) > 0)) - { - w = 100; h = 50; - region->SetSize(w, h); - } - - wxStringList *string_list = oglFormatText(dc, s, (w-5), (h-5), region->GetFormatMode()); - node = string_list->First(); - while (node) - { - char *s = (char *)node->Data(); - wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s); - region->GetFormattedText().Append((wxObject *)line); - node = node->Next(); - } - delete string_list; - double actualW = w; - double actualH = h; - if (region->GetFormatMode() & FORMAT_SIZE_TO_CONTENTS) - { - oglGetCentredTextExtent(dc, &(region->GetFormattedText()), m_xpos, m_ypos, w, h, &actualW, &actualH); - if ((actualW != w ) || (actualH != h)) - { - double xx, yy; - GetLabelPosition(i, &xx, &yy); - EraseRegion(dc, region, xx, yy); - if (m_labelObjects[i]) - { - m_labelObjects[i]->Select(FALSE, &dc); - m_labelObjects[i]->Erase(dc); - m_labelObjects[i]->SetSize(actualW, actualH); - } - - region->SetSize(actualW, actualH); - - if (m_labelObjects[i]) - { - m_labelObjects[i]->Select(TRUE, & dc); - m_labelObjects[i]->Draw(dc); - } - } - } - oglCentreText(dc, &(region->GetFormattedText()), m_xpos, m_ypos, actualW, actualH, region->GetFormatMode()); - m_formatted = TRUE; -} - -void wxLineShape::DrawRegion(wxDC& dc, wxShapeRegion *region, double x, double y) -{ - if (GetDisableLabel()) - return; - - double w, h; - double xx, yy; - region->GetSize(&w, &h); - - // Get offset from x, y - region->GetPosition(&xx, &yy); - - double xp = xx + x; - double yp = yy + y; - - // First, clear a rectangle for the text IF there is any - if (region->GetFormattedText().Number() > 0) - { - dc.SetPen(* g_oglWhiteBackgroundPen); - dc.SetBrush(* g_oglWhiteBackgroundBrush); - - // Now draw the text - if (region->GetFont()) dc.SetFont(* region->GetFont()); - - dc.DrawRectangle((long)(xp - w/2.0), (long)(yp - h/2.0), (long)w, (long)h); - - if (m_pen) dc.SetPen(* m_pen); - dc.SetTextForeground(* region->GetActualColourObject()); - -#ifdef __WXMSW__ - dc.SetTextBackground(g_oglWhiteBackgroundBrush->GetColour()); -#endif - - oglDrawFormattedText(dc, &(region->GetFormattedText()), xp, yp, w, h, region->GetFormatMode()); - } -} - -void wxLineShape::EraseRegion(wxDC& dc, wxShapeRegion *region, double x, double y) -{ - if (GetDisableLabel()) - return; - - double w, h; - double xx, yy; - region->GetSize(&w, &h); - - // Get offset from x, y - region->GetPosition(&xx, &yy); - - double xp = xx + x; - double yp = yy + y; - - if (region->GetFormattedText().Number() > 0) - { - dc.SetPen(* g_oglWhiteBackgroundPen); - dc.SetBrush(* g_oglWhiteBackgroundBrush); - - dc.DrawRectangle((long)(xp - w/2.0), (long)(yp - h/2.0), (long)w, (long)h); - } -} - -// Get the reference point for a label. Region x and y -// are offsets from this. -// position is 0, 1, 2 -void wxLineShape::GetLabelPosition(int position, double *x, double *y) -{ - switch (position) - { - case 0: - { - // Want to take the middle section for the label - int n = m_lineControlPoints->Number(); - int half_way = (int)(n/2); - - // Find middle of this line - wxNode *node = m_lineControlPoints->Nth(half_way - 1); - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxNode *next_node = node->Next(); - wxRealPoint *next_point = (wxRealPoint *)next_node->Data(); - - double dx = (next_point->x - point->x); - double dy = (next_point->y - point->y); - *x = (double)(point->x + dx/2.0); - *y = (double)(point->y + dy/2.0); - break; - } - case 1: - { - wxNode *node = m_lineControlPoints->First(); - *x = ((wxRealPoint *)node->Data())->x; - *y = ((wxRealPoint *)node->Data())->y; - break; - } - case 2: - { - wxNode *node = m_lineControlPoints->Last(); - *x = ((wxRealPoint *)node->Data())->x; - *y = ((wxRealPoint *)node->Data())->y; - break; - } - default: - break; - } -} - -/* - * Find whether line is supposed to be vertical or horizontal and - * make it so. - * - */ -void GraphicsStraightenLine(wxRealPoint *point1, wxRealPoint *point2) -{ - double dx = point2->x - point1->x; - double dy = point2->y - point1->y; - - if (dx == 0.0) - return; - else if (fabs(dy/dx) > 1.0) - { - point2->x = point1->x; - } - else point2->y = point1->y; -} - -void wxLineShape::Straighten(wxDC *dc) -{ - if (!m_lineControlPoints || m_lineControlPoints->Number() < 3) - return; - - if (dc) - Erase(* dc); - - wxNode *first_point_node = m_lineControlPoints->First(); - wxNode *last_point_node = m_lineControlPoints->Last(); - wxNode *second_last_point_node = last_point_node->Previous(); - - wxRealPoint *last_point = (wxRealPoint *)last_point_node->Data(); - wxRealPoint *second_last_point = (wxRealPoint *)second_last_point_node->Data(); - - GraphicsStraightenLine(last_point, second_last_point); - - wxNode *node = first_point_node; - while (node && (node != second_last_point_node)) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *next_point = (wxRealPoint *)(node->Next()->Data()); - - GraphicsStraightenLine(point, next_point); - node = node->Next(); - } - - if (dc) - Draw(* dc); -} - - -void wxLineShape::Unlink() -{ - if (m_to) - m_to->GetLines().DeleteObject(this); - if (m_from) - m_from->GetLines().DeleteObject(this); - m_to = NULL; - m_from = NULL; -} - -void wxLineShape::SetEnds(double x1, double y1, double x2, double y2) -{ - // Find centre point - wxNode *first_point_node = m_lineControlPoints->First(); - wxNode *last_point_node = m_lineControlPoints->Last(); - wxRealPoint *first_point = (wxRealPoint *)first_point_node->Data(); - wxRealPoint *last_point = (wxRealPoint *)last_point_node->Data(); - - first_point->x = x1; - first_point->y = y1; - last_point->x = x2; - last_point->y = y2; - - m_xpos = (double)((x1 + x2)/2.0); - m_ypos = (double)((y1 + y2)/2.0); -} - -// Get absolute positions of ends -void wxLineShape::GetEnds(double *x1, double *y1, double *x2, double *y2) -{ - wxNode *first_point_node = m_lineControlPoints->First(); - wxNode *last_point_node = m_lineControlPoints->Last(); - wxRealPoint *first_point = (wxRealPoint *)first_point_node->Data(); - wxRealPoint *last_point = (wxRealPoint *)last_point_node->Data(); - - *x1 = first_point->x; *y1 = first_point->y; - *x2 = last_point->x; *y2 = last_point->y; -} - -void wxLineShape::SetAttachments(int from_attach, int to_attach) -{ - m_attachmentFrom = from_attach; - m_attachmentTo = to_attach; -} - -bool wxLineShape::HitTest(double x, double y, int *attachment, double *distance) -{ - if (!m_lineControlPoints) - return FALSE; - - // Look at label regions in case mouse is over a label - bool inLabelRegion = FALSE; - for (int i = 0; i < 3; i ++) - { - wxNode *regionNode = m_regions.Nth(i); - if (regionNode) - { - wxShapeRegion *region = (wxShapeRegion *)regionNode->Data(); - if (region->m_formattedText.Number() > 0) - { - double xp, yp, cx, cy, cw, ch; - GetLabelPosition(i, &xp, &yp); - // Offset region from default label position - region->GetPosition(&cx, &cy); - region->GetSize(&cw, &ch); - cx += xp; - cy += yp; - double rLeft = (double)(cx - (cw/2.0)); - double rTop = (double)(cy - (ch/2.0)); - double rRight = (double)(cx + (cw/2.0)); - double rBottom = (double)(cy + (ch/2.0)); - if (x > rLeft && x < rRight && y > rTop && y < rBottom) - { - inLabelRegion = TRUE; - i = 3; - } - } - } - } - - wxNode *node = m_lineControlPoints->First(); - - while (node && node->Next()) - { - wxRealPoint *point1 = (wxRealPoint *)node->Data(); - wxRealPoint *point2 = (wxRealPoint *)node->Next()->Data(); - - // Allow for inaccurate mousing or vert/horiz lines - int extra = 4; - double left = wxMin(point1->x, point2->x) - extra; - double right = wxMax(point1->x, point2->x) + extra; - - double bottom = wxMin(point1->y, point2->y) - extra; - double top = wxMax(point1->y, point2->y) + extra; - - if ((x > left && x < right && y > bottom && y < top) || inLabelRegion) - { - // Work out distance from centre of line - double centre_x = (double)(left + (right - left)/2.0); - double centre_y = (double)(bottom + (top - bottom)/2.0); - - *attachment = 0; - *distance = (double)sqrt((centre_x - x)*(centre_x - x) + (centre_y - y)*(centre_y - y)); - return TRUE; - } - - node = node->Next(); - } - return FALSE; -} - -void wxLineShape::DrawArrows(wxDC& dc) -{ - // Distance along line of each arrow: space them out evenly. - double startArrowPos = 0.0; - double endArrowPos = 0.0; - double middleArrowPos = 0.0; - - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - switch (arrow->GetArrowEnd()) - { - case ARROW_POSITION_START: - { - if ((arrow->GetXOffset() != 0.0) && !m_ignoreArrowOffsets) - // If specified, x offset is proportional to line length - DrawArrow(dc, arrow, arrow->GetXOffset(), TRUE); - else - { - DrawArrow(dc, arrow, startArrowPos, FALSE); // Absolute distance - startArrowPos += arrow->GetSize() + arrow->GetSpacing(); - } - break; - } - case ARROW_POSITION_END: - { - if ((arrow->GetXOffset() != 0.0) && !m_ignoreArrowOffsets) - DrawArrow(dc, arrow, arrow->GetXOffset(), TRUE); - else - { - DrawArrow(dc, arrow, endArrowPos, FALSE); - endArrowPos += arrow->GetSize() + arrow->GetSpacing(); - } - break; - } - case ARROW_POSITION_MIDDLE: - { - arrow->SetXOffset(middleArrowPos); - if ((arrow->GetXOffset() != 0.0) && !m_ignoreArrowOffsets) - DrawArrow(dc, arrow, arrow->GetXOffset(), TRUE); - else - { - DrawArrow(dc, arrow, middleArrowPos, FALSE); - middleArrowPos += arrow->GetSize() + arrow->GetSpacing(); - } - break; - } - } - node = node->Next(); - } -} - -void wxLineShape::DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool proportionalOffset) -{ - wxNode *first_line_node = m_lineControlPoints->First(); - wxRealPoint *first_line_point = (wxRealPoint *)first_line_node->Data(); - wxNode *second_line_node = first_line_node->Next(); - wxRealPoint *second_line_point = (wxRealPoint *)second_line_node->Data(); - - wxNode *last_line_node = m_lineControlPoints->Last(); - wxRealPoint *last_line_point = (wxRealPoint *)last_line_node->Data(); - wxNode *second_last_line_node = last_line_node->Previous(); - wxRealPoint *second_last_line_point = (wxRealPoint *)second_last_line_node->Data(); - - // Position where we want to start drawing - double positionOnLineX, positionOnLineY; - - // Position of start point of line, at the end of which we draw the arrow. - double startPositionX, startPositionY; - - switch (arrow->GetPosition()) - { - case ARROW_POSITION_START: - { - // If we're using a proportional offset, calculate just where this will - // be on the line. - double realOffset = xOffset; - if (proportionalOffset) - { - double totalLength = - (double)sqrt((second_line_point->x - first_line_point->x)*(second_line_point->x - first_line_point->x) + - (second_line_point->y - first_line_point->y)*(second_line_point->y - first_line_point->y)); - realOffset = (double)(xOffset * totalLength); - } - GetPointOnLine(second_line_point->x, second_line_point->y, - first_line_point->x, first_line_point->y, - realOffset, &positionOnLineX, &positionOnLineY); - startPositionX = second_line_point->x; - startPositionY = second_line_point->y; - break; - } - case ARROW_POSITION_END: - { - // If we're using a proportional offset, calculate just where this will - // be on the line. - double realOffset = xOffset; - if (proportionalOffset) - { - double totalLength = - (double)sqrt((second_last_line_point->x - last_line_point->x)*(second_last_line_point->x - last_line_point->x) + - (second_last_line_point->y - last_line_point->y)*(second_last_line_point->y - last_line_point->y)); - realOffset = (double)(xOffset * totalLength); - } - GetPointOnLine(second_last_line_point->x, second_last_line_point->y, - last_line_point->x, last_line_point->y, - realOffset, &positionOnLineX, &positionOnLineY); - startPositionX = second_last_line_point->x; - startPositionY = second_last_line_point->y; - break; - } - case ARROW_POSITION_MIDDLE: - { - // Choose a point half way between the last and penultimate points - double x = ((last_line_point->x + second_last_line_point->x)/2); - double y = ((last_line_point->y + second_last_line_point->y)/2); - - // If we're using a proportional offset, calculate just where this will - // be on the line. - double realOffset = xOffset; - if (proportionalOffset) - { - double totalLength = - (double)sqrt((second_last_line_point->x - x)*(second_last_line_point->x - x) + - (second_last_line_point->y - y)*(second_last_line_point->y - y)); - realOffset = (double)(xOffset * totalLength); - } - - GetPointOnLine(second_last_line_point->x, second_last_line_point->y, - x, y, realOffset, &positionOnLineX, &positionOnLineY); - startPositionX = second_last_line_point->x; - startPositionY = second_last_line_point->y; - break; - } - } - - /* - * Add yOffset to arrow, if any - */ - - const double myPi = (double) 3.14159265; - // The translation that the y offset may give - double deltaX = 0.0; - double deltaY = 0.0; - if ((arrow->GetYOffset() != 0.0) && !m_ignoreArrowOffsets) - { - /* - |(x4, y4) - |d - | - (x1, y1)--------------(x3, y3)------------------(x2, y2) - x4 = x3 - d * sin(theta) - y4 = y3 + d * cos(theta) - - Where theta = tan(-1) of (y3-y1)/(x3-x1) - */ - double x1 = startPositionX; - double y1 = startPositionY; - double x3 = positionOnLineX; - double y3 = positionOnLineY; - double d = -arrow->GetYOffset(); // Negate so +offset is above line - - double theta = 0.0; - if (x3 == x1) - theta = (double)(myPi/2.0); - else - theta = (double)atan((y3-y1)/(x3-x1)); - - double x4 = (double)(x3 - (d*sin(theta))); - double y4 = (double)(y3 + (d*cos(theta))); - - deltaX = x4 - positionOnLineX; - deltaY = y4 - positionOnLineY; - } - - switch (arrow->_GetType()) - { - case ARROW_ARROW: - { - double arrowLength = arrow->GetSize(); - double arrowWidth = (double)(arrowLength/3.0); - - double tip_x, tip_y, side1_x, side1_y, side2_x, side2_y; - oglGetArrowPoints(startPositionX+deltaX, startPositionY+deltaY, - positionOnLineX+deltaX, positionOnLineY+deltaY, - arrowLength, arrowWidth, &tip_x, &tip_y, - &side1_x, &side1_y, &side2_x, &side2_y); - - wxPoint points[4]; - points[0].x = (int) tip_x; points[0].y = (int) tip_y; - points[1].x = (int) side1_x; points[1].y = (int) side1_y; - points[2].x = (int) side2_x; points[2].y = (int) side2_y; - points[3].x = (int) tip_x; points[3].y = (int) tip_y; - - dc.SetPen(* m_pen); - dc.SetBrush(* m_brush); - dc.DrawPolygon(4, points); - break; - } - case ARROW_HOLLOW_CIRCLE: - case ARROW_FILLED_CIRCLE: - { - // Find point on line of centre of circle, which is a radius away - // from the end position - double diameter = (double)(arrow->GetSize()); - double x, y; - GetPointOnLine(startPositionX+deltaX, startPositionY+deltaY, - positionOnLineX+deltaX, positionOnLineY+deltaY, - (double)(diameter/2.0), - &x, &y); - - // Convert ellipse centre to top-left coordinates - double x1 = (double)(x - (diameter/2.0)); - double y1 = (double)(y - (diameter/2.0)); - - dc.SetPen(* m_pen); - if (arrow->_GetType() == ARROW_HOLLOW_CIRCLE) - dc.SetBrush(* g_oglWhiteBackgroundBrush); - else - dc.SetBrush(* m_brush); - - dc.DrawEllipse((long) x1, (long) y1, (long) diameter, (long) diameter); - break; - } - case ARROW_SINGLE_OBLIQUE: - { - break; - } - case ARROW_METAFILE: - { - if (arrow->GetMetaFile()) - { - // Find point on line of centre of object, which is a half-width away - // from the end position - /* - * width - * <-- start pos <-----><-- positionOnLineX - * _____ - * --------------| x | <-- e.g. rectangular arrowhead - * ----- - */ - double x, y; - GetPointOnLine(startPositionX, startPositionY, - positionOnLineX, positionOnLineY, - (double)(arrow->GetMetaFile()->m_width/2.0), - &x, &y); - - // Calculate theta for rotating the metafile. - /* - | - | o(x2, y2) 'o' represents the arrowhead. - | / - | / - | /theta - | /(x1, y1) - |______________________ - */ - double theta = 0.0; - double x1 = startPositionX; - double y1 = startPositionY; - double x2 = positionOnLineX; - double y2 = positionOnLineY; - - if ((x1 == x2) && (y1 == y2)) - theta = 0.0; - - else if ((x1 == x2) && (y1 > y2)) - theta = (double)(3.0*myPi/2.0); - - else if ((x1 == x2) && (y2 > y1)) - theta = (double)(myPi/2.0); - - else if ((x2 > x1) && (y2 >= y1)) - theta = (double)atan((y2 - y1)/(x2 - x1)); - - else if (x2 < x1) - theta = (double)(myPi + atan((y2 - y1)/(x2 - x1))); - - else if ((x2 > x1) && (y2 < y1)) - theta = (double)(2*myPi + atan((y2 - y1)/(x2 - x1))); - - else - { - wxFatalError("Unknown arrowhead rotation case in lines.cc"); - } - - // Rotate about the centre of the object, then place - // the object on the line. - if (arrow->GetMetaFile()->GetRotateable()) - arrow->GetMetaFile()->Rotate(0.0, 0.0, theta); - - if (m_erasing) - { - // If erasing, just draw a rectangle. - double minX, minY, maxX, maxY; - arrow->GetMetaFile()->GetBounds(&minX, &minY, &maxX, &maxY); - // Make erasing rectangle slightly bigger or you get droppings. - int extraPixels = 4; - dc.DrawRectangle((long)(deltaX + x + minX - (extraPixels/2.0)), (long)(deltaY + y + minY - (extraPixels/2.0)), - (long)(maxX - minX + extraPixels), (long)(maxY - minY + extraPixels)); - } - else - arrow->GetMetaFile()->Draw(dc, x+deltaX, y+deltaY); - } - break; - } - default: - { - } - } -} - -void wxLineShape::OnErase(wxDC& dc) -{ - wxPen *old_pen = m_pen; - wxBrush *old_brush = m_brush; - SetPen(g_oglWhiteBackgroundPen); - SetBrush(g_oglWhiteBackgroundBrush); - - double bound_x, bound_y; - GetBoundingBoxMax(&bound_x, &bound_y); - if (m_font) dc.SetFont(* m_font); - - // Undraw text regions - for (int i = 0; i < 3; i++) - { - wxNode *node = m_regions.Nth(i); - if (node) - { - double x, y; - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - GetLabelPosition(i, &x, &y); - EraseRegion(dc, region, x, y); - } - } - - // Undraw line - dc.SetPen(* g_oglWhiteBackgroundPen); - dc.SetBrush(* g_oglWhiteBackgroundBrush); - - // Drawing over the line only seems to work if the line has a thickness - // of 1. - if (old_pen && (old_pen->GetWidth() > 1)) - { - dc.DrawRectangle((long)(m_xpos - (bound_x/2.0) - 2.0), (long)(m_ypos - (bound_y/2.0) - 2.0), - (long)(bound_x+4.0), (long)(bound_y+4.0)); - } - else - { - m_erasing = TRUE; - GetEventHandler()->OnDraw(dc); - GetEventHandler()->OnEraseControlPoints(dc); - m_erasing = FALSE; - } - - if (old_pen) SetPen(old_pen); - if (old_brush) SetBrush(old_brush); -} - -void wxLineShape::GetBoundingBoxMin(double *w, double *h) -{ - double x1 = 10000; - double y1 = 10000; - double x2 = -10000; - double y2 = -10000; - - wxNode *node = m_lineControlPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - - if (point->x < x1) x1 = point->x; - if (point->y < y1) y1 = point->y; - if (point->x > x2) x2 = point->x; - if (point->y > y2) y2 = point->y; - - node = node->Next(); - } - *w = (double)(x2 - x1); - *h = (double)(y2 - y1); -} - -/* - * For a node image of interest, finds the position of this arc - * amongst all the arcs which are attached to THIS SIDE of the node image, - * and the number of same. - */ -void wxLineShape::FindNth(wxShape *image, int *nth, int *no_arcs, bool incoming) -{ - int n = -1; - int num = 0; - wxNode *node = image->GetLines().First(); - int this_attachment; - if (image == m_to) - this_attachment = m_attachmentTo; - else - this_attachment = m_attachmentFrom; - - // Find number of lines going into/out of this particular attachment point - while (node) - { - wxLineShape *line = (wxLineShape *)node->Data(); - - if (line->m_from == image) - { - // This is the nth line attached to 'image' - if ((line == this) && !incoming) - n = num; - - // Increment num count if this is the same side (attachment number) - if (line->m_attachmentFrom == this_attachment) - num ++; - } - - if (line->m_to == image) - { - // This is the nth line attached to 'image' - if ((line == this) && incoming) - n = num; - - // Increment num count if this is the same side (attachment number) - if (line->m_attachmentTo == this_attachment) - num ++; - } - - node = node->Next(); - } - *nth = n; - *no_arcs = num; -} - -void wxLineShape::OnDrawOutline(wxDC& dc, double x, double y, double w, double h) -{ - wxPen *old_pen = m_pen; - wxBrush *old_brush = m_brush; - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - SetPen(& dottedPen); - SetBrush( wxTRANSPARENT_BRUSH ); - - GetEventHandler()->OnDraw(dc); - - if (old_pen) SetPen(old_pen); - else SetPen(NULL); - if (old_brush) SetBrush(old_brush); - else SetBrush(NULL); -} - -bool wxLineShape::OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display) -{ - double x_offset = x - old_x; - double y_offset = y - old_y; - - if (m_lineControlPoints && !(x_offset == 0.0 && y_offset == 0.0)) - { - wxNode *node = m_lineControlPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - point->x += x_offset; - point->y += y_offset; - node = node->Next(); - } - - } - - // Move temporary label rectangles if necessary - for (int i = 0; i < 3; i++) - { - if (m_labelObjects[i]) - { - m_labelObjects[i]->Erase(dc); - double xp, yp, xr, yr; - GetLabelPosition(i, &xp, &yp); - wxNode *node = m_regions.Nth(i); - if (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - region->GetPosition(&xr, &yr); - } - else - { - xr = 0.0; yr = 0.0; - } - - m_labelObjects[i]->Move(dc, xp+xr, yp+yr); - } - } - return TRUE; -} - -void wxLineShape::OnMoveLink(wxDC& dc, bool moveControlPoints) -{ - if (!m_from || !m_to) - return; - - if (m_lineControlPoints->Number() > 2) - Initialise(); - - // Do each end - nothing in the middle. User has to move other points - // manually if necessary. - double end_x, end_y; - double other_end_x, other_end_y; - - FindLineEndPoints(&end_x, &end_y, &other_end_x, &other_end_y); - - wxNode *first = m_lineControlPoints->First(); - wxRealPoint *first_point = (wxRealPoint *)first->Data(); - wxNode *last = m_lineControlPoints->Last(); - wxRealPoint *last_point = (wxRealPoint *)last->Data(); - -/* This is redundant, surely? Done by SetEnds. - first_point->x = end_x; first_point->y = end_y; - last_point->x = other_end_x; last_point->y = other_end_y; -*/ - - double oldX = m_xpos; - double oldY = m_ypos; - - SetEnds(end_x, end_y, other_end_x, other_end_y); - - // Do a second time, because one may depend on the other. - FindLineEndPoints(&end_x, &end_y, &other_end_x, &other_end_y); - SetEnds(end_x, end_y, other_end_x, other_end_y); - - // Try to move control points with the arc - double x_offset = m_xpos - oldX; - double y_offset = m_ypos - oldY; - -// if (moveControlPoints && m_lineControlPoints && !(x_offset == 0.0 && y_offset == 0.0)) - // Only move control points if it's a self link. And only works if attachment mode is ON. - if ((m_from == m_to) && (m_from->GetAttachmentMode() != ATTACHMENT_MODE_NONE) && moveControlPoints && m_lineControlPoints && !(x_offset == 0.0 && y_offset == 0.0)) - { - wxNode *node = m_lineControlPoints->First(); - while (node) - { - if ((node != m_lineControlPoints->First()) && (node != m_lineControlPoints->Last())) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - point->x += x_offset; - point->y += y_offset; - } - node = node->Next(); - } - } - - Move(dc, m_xpos, m_ypos); -} - -// Finds the x, y points at the two ends of the line. -// This function can be used by e.g. line-routing routines to -// get the actual points on the two node images where the lines will be drawn -// to/from. -void wxLineShape::FindLineEndPoints(double *fromX, double *fromY, double *toX, double *toY) -{ - if (!m_from || !m_to) - return; - - // Do each end - nothing in the middle. User has to move other points - // manually if necessary. - double end_x, end_y; - double other_end_x, other_end_y; - - wxNode *first = m_lineControlPoints->First(); - wxRealPoint *first_point = (wxRealPoint *)first->Data(); - wxNode *last = m_lineControlPoints->Last(); - wxRealPoint *last_point = (wxRealPoint *)last->Data(); - - wxNode *second = first->Next(); - wxRealPoint *second_point = (wxRealPoint *)second->Data(); - - wxNode *second_last = last->Previous(); - wxRealPoint *second_last_point = (wxRealPoint *)second_last->Data(); - - if (m_lineControlPoints->Number() > 2) - { - if (m_from->GetAttachmentMode() != ATTACHMENT_MODE_NONE) - { - int nth, no_arcs; - FindNth(m_from, &nth, &no_arcs, FALSE); // Not incoming - m_from->GetAttachmentPosition(m_attachmentFrom, &end_x, &end_y, nth, no_arcs, this); - } - else - (void) m_from->GetPerimeterPoint(m_from->GetX(), m_from->GetY(), - (double)second_point->x, (double)second_point->y, - &end_x, &end_y); - - if (m_to->GetAttachmentMode() != ATTACHMENT_MODE_NONE) - { - int nth, no_arcs; - FindNth(m_to, &nth, &no_arcs, TRUE); // Incoming - m_to->GetAttachmentPosition(m_attachmentTo, &other_end_x, &other_end_y, nth, no_arcs, this); - } - else - (void) m_to->GetPerimeterPoint(m_to->GetX(), m_to->GetY(), - (double)second_last_point->x, (double)second_last_point->y, - &other_end_x, &other_end_y); - } - else - { - double fromX = m_from->GetX(); - double fromY = m_from->GetY(); - double toX = m_to->GetX(); - double toY = m_to->GetY(); - - if (m_from->GetAttachmentMode() != ATTACHMENT_MODE_NONE) - { - int nth, no_arcs; - FindNth(m_from, &nth, &no_arcs, FALSE); - m_from->GetAttachmentPosition(m_attachmentFrom, &end_x, &end_y, nth, no_arcs, this); - fromX = end_x; - fromY = end_y; - } - - if (m_to->GetAttachmentMode() != ATTACHMENT_MODE_NONE) - { - int nth, no_arcs; - FindNth(m_to, &nth, &no_arcs, TRUE); - m_to->GetAttachmentPosition(m_attachmentTo, &other_end_x, &other_end_y, nth, no_arcs, this); - toX = other_end_x; - toY = other_end_y; - } - - if (m_from->GetAttachmentMode() == ATTACHMENT_MODE_NONE) - (void) m_from->GetPerimeterPoint(m_from->GetX(), m_from->GetY(), - toX, toY, - &end_x, &end_y); - - if (m_to->GetAttachmentMode() == ATTACHMENT_MODE_NONE) - (void) m_to->GetPerimeterPoint(m_to->GetX(), m_to->GetY(), - fromX, fromY, - &other_end_x, &other_end_y); - } - *fromX = end_x; - *fromY = end_y; - *toX = other_end_x; - *toY = other_end_y; -} - -void wxLineShape::OnDraw(wxDC& dc) -{ - if (m_lineControlPoints) - { - if (m_pen) - dc.SetPen(* m_pen); - if (m_brush) - dc.SetBrush(* m_brush); - - int n = m_lineControlPoints->Number(); - wxPoint *points = new wxPoint[n]; - int i; - for (i = 0; i < n; i++) - { - wxRealPoint* point = (wxRealPoint*) m_lineControlPoints->Nth(i)->Data(); - points[i].x = WXROUND(point->x); - points[i].y = WXROUND(point->y); - } - - if (m_isSpline) - dc.DrawSpline(n, points); - else - dc.DrawLines(n, points); - -#ifdef __WXMSW__ - // For some reason, last point isn't drawn under Windows. - dc.DrawPoint(points[n-1]); -#endif - - delete[] points; - - - // Problem with pen - if not a solid pen, does strange things - // to the arrowhead. So make (get) a new pen that's solid. - if (m_pen && (m_pen->GetStyle() != wxSOLID)) - { - wxPen *solid_pen = - wxThePenList->FindOrCreatePen(m_pen->GetColour(), 1, wxSOLID); - if (solid_pen) - dc.SetPen(* solid_pen); - } - DrawArrows(dc); - } -} - -void wxLineShape::OnDrawControlPoints(wxDC& dc) -{ - if (!m_drawHandles) - return; - - // Draw temporary label rectangles if necessary - for (int i = 0; i < 3; i++) - { - if (m_labelObjects[i]) - m_labelObjects[i]->Draw(dc); - } - wxShape::OnDrawControlPoints(dc); -} - -void wxLineShape::OnEraseControlPoints(wxDC& dc) -{ - // Erase temporary label rectangles if necessary - for (int i = 0; i < 3; i++) - { - if (m_labelObjects[i]) - m_labelObjects[i]->Erase(dc); - } - wxShape::OnEraseControlPoints(dc); -} - -void wxLineShape::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ -} - -void wxLineShape::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ -} - -void wxLineShape::OnEndDragLeft(double x, double y, int keys, int attachment) -{ -} - -/* -void wxLineShape::SetArrowSize(double length, double width) -{ - arrow_length = length; - arrow_width = width; -} - -void wxLineShape::SetStartArrow(int style) -{ - start_style = style; -} - -void wxLineShape::SetMiddleArrow(int style) -{ - middle_style = style; -} - -void wxLineShape::SetEndArrow(int style) -{ - end_style = style; -} -*/ - -void wxLineShape::OnDrawContents(wxDC& dc) -{ - if (GetDisableLabel()) - return; - - for (int i = 0; i < 3; i++) - { - wxNode *node = m_regions.Nth(i); - if (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - double x, y; - GetLabelPosition(i, &x, &y); - DrawRegion(dc, region, x, y); - } - } -} - -void wxLineShape::SetTo(wxShape *object) -{ - m_to = object; -} - -void wxLineShape::SetFrom(wxShape *object) -{ - m_from = object; -} - -void wxLineShape::MakeControlPoints() -{ - if (m_canvas && m_lineControlPoints) - { - wxNode *first = m_lineControlPoints->First(); - wxNode *last = m_lineControlPoints->Last(); - wxRealPoint *first_point = (wxRealPoint *)first->Data(); - wxRealPoint *last_point = (wxRealPoint *)last->Data(); - - wxLineControlPoint *control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, - first_point->x, first_point->y, - CONTROL_POINT_ENDPOINT_FROM); - control->m_point = first_point; - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - - wxNode *node = first->Next(); - while (node != last) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - - control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, - point->x, point->y, - CONTROL_POINT_LINE); - control->m_point = point; - - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - node = node->Next(); - } - control = new wxLineControlPoint(m_canvas, this, CONTROL_POINT_SIZE, - last_point->x, last_point->y, - CONTROL_POINT_ENDPOINT_TO); - control->m_point = last_point; - m_canvas->AddShape(control); - m_controlPoints.Append(control); - - } - -} - -void wxLineShape::ResetControlPoints() -{ - if (m_canvas && m_lineControlPoints && m_controlPoints.Number() > 0) - { - wxNode *node = m_controlPoints.First(); - wxNode *control_node = m_lineControlPoints->First(); - while (node && control_node) - { - wxRealPoint *point = (wxRealPoint *)control_node->Data(); - wxLineControlPoint *control = (wxLineControlPoint *)node->Data(); - control->SetX(point->x); - control->SetY(point->y); - - node = node->Next(); - control_node = control_node->Next(); - } - } -} - -#ifdef PROLOGIO -void wxLineShape::WriteAttributes(wxExpr *clause) -{ - wxShape::WriteAttributes(clause); - - if (m_from) - clause->AddAttributeValue("from", m_from->GetId()); - if (m_to) - clause->AddAttributeValue("to", m_to->GetId()); - - if (m_attachmentTo != 0) - clause->AddAttributeValue("attachment_to", (long)m_attachmentTo); - if (m_attachmentFrom != 0) - clause->AddAttributeValue("attachment_from", (long)m_attachmentFrom); - - if (m_alignmentStart != 0) - clause->AddAttributeValue("align_start", (long)m_alignmentStart); - if (m_alignmentEnd != 0) - clause->AddAttributeValue("align_end", (long)m_alignmentEnd); - - clause->AddAttributeValue("is_spline", (long)m_isSpline); - if (m_maintainStraightLines) - clause->AddAttributeValue("keep_lines_straight", (long)m_maintainStraightLines); - - // Make a list of lists for the (sp)line controls - wxExpr *list = new wxExpr(wxExprList); - wxNode *node = m_lineControlPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxExpr *point_list = new wxExpr(wxExprList); - wxExpr *x_expr = new wxExpr((double) point->x); - wxExpr *y_expr = new wxExpr((double) point->y); - point_list->Append(x_expr); - point_list->Append(y_expr); - list->Append(point_list); - - node = node->Next(); - } - clause->AddAttributeValue("controls", list); - - // Write arc arrows in new OGL format, if there are any. - // This is a list of lists. Each sublist comprises: - // (arrowType arrowEnd xOffset arrowSize) - if (m_arcArrows.Number() > 0) - { - wxExpr *arrow_list = new wxExpr(wxExprList); - node = m_arcArrows.First(); - while (node) - { - wxArrowHead *head = (wxArrowHead *)node->Data(); - wxExpr *head_list = new wxExpr(wxExprList); - head_list->Append(new wxExpr((long)head->_GetType())); - head_list->Append(new wxExpr((long)head->GetArrowEnd())); - head_list->Append(new wxExpr(head->GetXOffset())); - head_list->Append(new wxExpr(head->GetArrowSize())); - head_list->Append(new wxExpr(wxExprString, head->GetName())); - head_list->Append(new wxExpr(head->GetId())); - - // New members of wxArrowHead - head_list->Append(new wxExpr(head->GetYOffset())); - head_list->Append(new wxExpr(head->GetSpacing())); - - arrow_list->Append(head_list); - - node = node->Next(); - } - clause->AddAttributeValue("arrows", arrow_list); - } -} - -void wxLineShape::ReadAttributes(wxExpr *clause) -{ - wxShape::ReadAttributes(clause); - - int iVal = (int) m_isSpline; - clause->AssignAttributeValue("is_spline", &iVal); - m_isSpline = (iVal != 0); - - iVal = (int) m_maintainStraightLines; - clause->AssignAttributeValue("keep_lines_straight", &iVal); - m_maintainStraightLines = (iVal != 0); - - clause->AssignAttributeValue("align_start", &m_alignmentStart); - clause->AssignAttributeValue("align_end", &m_alignmentEnd); - - // Compatibility: check for no regions. - if (m_regions.Number() == 0) - { - wxShapeRegion *newRegion = new wxShapeRegion; - newRegion->SetName("Middle"); - newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); - if (m_text.Number() > 0) - { - newRegion->ClearText(); - wxNode *node = m_text.First(); - while (node) - { - wxShapeTextLine *textLine = (wxShapeTextLine *)node->Data(); - wxNode *next = node->Next(); - newRegion->GetFormattedText().Append((wxObject *)textLine); - delete node; - node = next; - } - } - - newRegion = new wxShapeRegion; - newRegion->SetName("Start"); - newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); - - newRegion = new wxShapeRegion; - newRegion->SetName("End"); - newRegion->SetSize(150, 50); - m_regions.Append((wxObject *)newRegion); - } - - m_attachmentTo = 0; - m_attachmentFrom = 0; - - clause->AssignAttributeValue("attachment_to", &m_attachmentTo); - clause->AssignAttributeValue("attachment_from", &m_attachmentFrom); - - wxExpr *line_list = NULL; - - // When image is created, there are default control points. Override - // them if there are some in the file. - clause->AssignAttributeValue("controls", &line_list); - - if (line_list) - { - // Read a list of lists for the spline controls - if (m_lineControlPoints) - { - ClearPointList(*m_lineControlPoints); - } - else - m_lineControlPoints = new wxList; - - wxExpr *node = line_list->value.first; - - while (node) - { - wxExpr *xexpr = node->value.first; - double x = xexpr->RealValue(); - - wxExpr *yexpr = xexpr->next; - double y = yexpr->RealValue(); - - wxRealPoint *point = new wxRealPoint(x, y); - m_lineControlPoints->Append((wxObject*) point); - - node = node->next; - } - } - - // Read arrow list, for new OGL code - wxExpr *arrow_list = NULL; - - clause->AssignAttributeValue("arrows", &arrow_list); - if (arrow_list) - { - wxExpr *node = arrow_list->value.first; - - while (node) - { - WXTYPE arrowType = ARROW_ARROW; - int arrowEnd = 0; - double xOffset = 0.0; - double arrowSize = 0.0; - wxString arrowName(""); - long arrowId = -1; - - wxExpr *type_expr = node->Nth(0); - wxExpr *end_expr = node->Nth(1); - wxExpr *dist_expr = node->Nth(2); - wxExpr *size_expr = node->Nth(3); - wxExpr *name_expr = node->Nth(4); - wxExpr *id_expr = node->Nth(5); - - // New members of wxArrowHead - wxExpr *yOffsetExpr = node->Nth(6); - wxExpr *spacingExpr = node->Nth(7); - - if (type_expr) - arrowType = (int)type_expr->IntegerValue(); - if (end_expr) - arrowEnd = (int)end_expr->IntegerValue(); - if (dist_expr) - xOffset = dist_expr->RealValue(); - if (size_expr) - arrowSize = size_expr->RealValue(); - if (name_expr) - arrowName = name_expr->StringValue(); - if (id_expr) - arrowId = id_expr->IntegerValue(); - - if (arrowId == -1) - arrowId = NewId(); - else - RegisterId(arrowId); - - wxArrowHead *arrowHead = AddArrow(arrowType, arrowEnd, arrowSize, xOffset, (char*) (const char*) arrowName, NULL, arrowId); - if (yOffsetExpr) - arrowHead->SetYOffset(yOffsetExpr->RealValue()); - if (spacingExpr) - arrowHead->SetSpacing(spacingExpr->RealValue()); - - node = node->next; - } - } -} -#endif - -void wxLineShape::Copy(wxShape& copy) -{ - wxShape::Copy(copy); - - wxASSERT( copy.IsKindOf(CLASSINFO(wxLineShape)) ); - - wxLineShape& lineCopy = (wxLineShape&) copy; - - lineCopy.m_to = m_to; - lineCopy.m_from = m_from; - lineCopy.m_attachmentTo = m_attachmentTo; - lineCopy.m_attachmentFrom = m_attachmentFrom; - lineCopy.m_isSpline = m_isSpline; - lineCopy.m_alignmentStart = m_alignmentStart; - lineCopy.m_alignmentEnd = m_alignmentEnd; - lineCopy.m_maintainStraightLines = m_maintainStraightLines; - lineCopy.m_lineOrientations.Clear(); - - wxNode *node = m_lineOrientations.First(); - while (node) - { - lineCopy.m_lineOrientations.Append(node->Data()); - node = node->Next(); - } - - if (lineCopy.m_lineControlPoints) - { - ClearPointList(*lineCopy.m_lineControlPoints); - delete lineCopy.m_lineControlPoints; - } - - lineCopy.m_lineControlPoints = new wxList; - - node = m_lineControlPoints->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - wxRealPoint *new_point = new wxRealPoint(point->x, point->y); - lineCopy.m_lineControlPoints->Append((wxObject*) new_point); - node = node->Next(); - } - - // Copy arrows - lineCopy.ClearArrowsAtPosition(-1); - node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - lineCopy.m_arcArrows.Append(new wxArrowHead(*arrow)); - node = node->Next(); - } -} - -// Override select, to create/delete temporary label-moving objects -void wxLineShape::Select(bool select, wxDC* dc) -{ - wxShape::Select(select, dc); - if (select) - { - for (int i = 0; i < 3; i++) - { - wxNode *node = m_regions.Nth(i); - if (node) - { - wxShapeRegion *region = (wxShapeRegion *)node->Data(); - if (region->m_formattedText.Number() > 0) - { - double w, h, x, y, xx, yy; - region->GetSize(&w, &h); - region->GetPosition(&x, &y); - GetLabelPosition(i, &xx, &yy); - if (m_labelObjects[i]) - { - m_labelObjects[i]->Select(FALSE); - m_labelObjects[i]->RemoveFromCanvas(m_canvas); - delete m_labelObjects[i]; - } - m_labelObjects[i] = OnCreateLabelShape(this, region, w, h); - m_labelObjects[i]->AddToCanvas(m_canvas); - m_labelObjects[i]->Show(TRUE); - if (dc) - m_labelObjects[i]->Move(*dc, (double)(x + xx), (double)(y + yy)); - m_labelObjects[i]->Select(TRUE, dc); - } - } - } - } - else - { - for (int i = 0; i < 3; i++) - { - if (m_labelObjects[i]) - { - m_labelObjects[i]->Select(FALSE, dc); - m_labelObjects[i]->Erase(*dc); - m_labelObjects[i]->RemoveFromCanvas(m_canvas); - delete m_labelObjects[i]; - m_labelObjects[i] = NULL; - } - } - } -} - -/* - * Line control point - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxLineControlPoint, wxControlPoint) - -wxLineControlPoint::wxLineControlPoint(wxShapeCanvas *theCanvas, wxShape *object, double size, double x, double y, int the_type): - wxControlPoint(theCanvas, object, size, x, y, the_type) -{ - m_xpos = x; - m_ypos = y; - m_type = the_type; - m_point = NULL; -} - -wxLineControlPoint::~wxLineControlPoint() -{ -} - -void wxLineControlPoint::OnDraw(wxDC& dc) -{ - wxRectangleShape::OnDraw(dc); -} - -// Implement movement of Line point -void wxLineControlPoint::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingDragLeft(this, draw, x, y, keys, attachment); -} - -void wxLineControlPoint::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingBeginDragLeft(this, x, y, keys, attachment); -} - -void wxLineControlPoint::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - m_shape->GetEventHandler()->OnSizingEndDragLeft(this, x, y, keys, attachment); -} - -// Control points ('handles') redirect control to the actual shape, to make it easier -// to override sizing behaviour. -void wxLineShape::OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys, int attachment) -{ - wxLineControlPoint* lpt = (wxLineControlPoint*) pt; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - dc.SetLogicalFunction(wxXOR); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - if (lpt->m_type == CONTROL_POINT_LINE) - { - m_canvas->Snap(&x, &y); - - lpt->SetX(x); lpt->SetY(y); - lpt->m_point->x = x; lpt->m_point->y = y; - - wxLineShape *lineShape = (wxLineShape *)this; - - wxPen *old_pen = lineShape->GetPen(); - wxBrush *old_brush = lineShape->GetBrush(); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - lineShape->SetPen(& dottedPen); - lineShape->SetBrush(wxTRANSPARENT_BRUSH); - - lineShape->GetEventHandler()->OnMoveLink(dc, FALSE); - - lineShape->SetPen(old_pen); - lineShape->SetBrush(old_brush); - } - - if (lpt->m_type == CONTROL_POINT_ENDPOINT_FROM || lpt->m_type == CONTROL_POINT_ENDPOINT_TO) - { -// lpt->SetX(x); lpt->SetY(y); - } - -} - -void wxLineShape::OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - wxLineControlPoint* lpt = (wxLineControlPoint*) pt; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - wxLineShape *lineShape = (wxLineShape *)this; - if (lpt->m_type == CONTROL_POINT_LINE) - { - lpt->m_originalPos = * (lpt->m_point); - m_canvas->Snap(&x, &y); - - this->Erase(dc); - - // Redraw start and end objects because we've left holes - // when erasing the line - lineShape->GetFrom()->OnDraw(dc); - lineShape->GetFrom()->OnDrawContents(dc); - lineShape->GetTo()->OnDraw(dc); - lineShape->GetTo()->OnDrawContents(dc); - - this->SetDisableLabel(TRUE); - dc.SetLogicalFunction(wxXOR); - - lpt->m_xpos = x; lpt->m_ypos = y; - lpt->m_point->x = x; lpt->m_point->y = y; - - wxPen *old_pen = lineShape->GetPen(); - wxBrush *old_brush = lineShape->GetBrush(); - - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - lineShape->SetPen(& dottedPen); - lineShape->SetBrush(wxTRANSPARENT_BRUSH); - - lineShape->GetEventHandler()->OnMoveLink(dc, FALSE); - - lineShape->SetPen(old_pen); - lineShape->SetBrush(old_brush); - } - - if (lpt->m_type == CONTROL_POINT_ENDPOINT_FROM || lpt->m_type == CONTROL_POINT_ENDPOINT_TO) - { - m_canvas->SetCursor(* g_oglBullseyeCursor); - lpt->m_oldCursor = wxSTANDARD_CURSOR; - } -} - -void wxLineShape::OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys, int attachment) -{ - wxLineControlPoint* lpt = (wxLineControlPoint*) pt; - - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - this->SetDisableLabel(FALSE); - wxLineShape *lineShape = (wxLineShape *)this; - - if (lpt->m_type == CONTROL_POINT_LINE) - { - m_canvas->Snap(&x, &y); - - wxRealPoint pt = wxRealPoint(x, y); - - // Move the control point back to where it was; - // MoveControlPoint will move it to the new position - // if it decides it wants. We only moved the position - // during user feedback so we could redraw the line - // as it changed shape. - lpt->m_xpos = lpt->m_originalPos.x; lpt->m_ypos = lpt->m_originalPos.y; - lpt->m_point->x = lpt->m_originalPos.x; lpt->m_point->y = lpt->m_originalPos.y; - - OnMoveMiddleControlPoint(dc, lpt, pt); - } - if (lpt->m_type == CONTROL_POINT_ENDPOINT_FROM) - { - if (lpt->m_oldCursor) - m_canvas->SetCursor(* lpt->m_oldCursor); - -// this->Erase(dc); - -// lpt->m_xpos = x; lpt->m_ypos = y; - - if (lineShape->GetFrom()) - { - lineShape->GetFrom()->MoveLineToNewAttachment(dc, lineShape, x, y); - } - } - if (lpt->m_type == CONTROL_POINT_ENDPOINT_TO) - { - if (lpt->m_oldCursor) - m_canvas->SetCursor(* lpt->m_oldCursor); - -// lpt->m_xpos = x; lpt->m_ypos = y; - - if (lineShape->GetTo()) - { - lineShape->GetTo()->MoveLineToNewAttachment(dc, lineShape, x, y); - } - } - - // Needed? -#if 0 - int i = 0; - for (i = 0; i < lineShape->GetLineControlPoints()->Number(); i++) - if (((wxRealPoint *)(lineShape->GetLineControlPoints()->Nth(i)->Data())) == lpt->m_point) - break; - - // N.B. in OnMoveControlPoint, an event handler in Hardy could have deselected - // the line and therefore deleted 'this'. -> GPF, intermittently. - // So assume at this point that we've been blown away. - - lineShape->OnMoveControlPoint(i+1, x, y); -#endif -} - -// This is called only when a non-end control point is moved. -bool wxLineShape::OnMoveMiddleControlPoint(wxDC& dc, wxLineControlPoint* lpt, const wxRealPoint& pt) -{ - lpt->m_xpos = pt.x; lpt->m_ypos = pt.y; - lpt->m_point->x = pt.x; lpt->m_point->y = pt.y; - - GetEventHandler()->OnMoveLink(dc); - - return TRUE; -} - -// Implement movement of endpoint to a new attachment -// OBSOLETE: done by dragging with the left button. - -#if 0 -void wxLineControlPoint::OnDragRight(bool draw, double x, double y, int keys, int attachment) -{ - if (m_type == CONTROL_POINT_ENDPOINT_FROM || m_type == CONTROL_POINT_ENDPOINT_TO) - { - m_xpos = x; m_ypos = y; - } -} - -void wxLineControlPoint::OnBeginDragRight(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - wxLineShape *lineShape = (wxLineShape *)m_shape; - if (m_type == CONTROL_POINT_ENDPOINT_FROM || m_type == CONTROL_POINT_ENDPOINT_TO) - { - Erase(dc); - lineShape->GetEventHandler()->OnDraw(dc); - if (m_type == CONTROL_POINT_ENDPOINT_FROM) - { - lineShape->GetFrom()->GetEventHandler()->OnDraw(dc); - lineShape->GetFrom()->GetEventHandler()->OnDrawContents(dc); - } - else - { - lineShape->GetTo()->GetEventHandler()->OnDraw(dc); - lineShape->GetTo()->GetEventHandler()->OnDrawContents(dc); - } - m_canvas->SetCursor(g_oglBullseyeCursor); - m_oldCursor = wxSTANDARD_CURSOR; - } -} - -void wxLineControlPoint::OnEndDragRight(double x, double y, int keys, int attachment) -{ - wxClientDC dc(GetCanvas()); - GetCanvas()->PrepareDC(dc); - - wxLineShape *lineShape = (wxLineShape *)m_shape; - if (m_type == CONTROL_POINT_ENDPOINT_FROM) - { - if (m_oldCursor) - m_canvas->SetCursor(m_oldCursor); - - m_xpos = x; m_ypos = y; - - if (lineShape->GetFrom()) - { - lineShape->GetFrom()->EraseLinks(dc); - - int new_attachment; - double distance; - - if (lineShape->GetFrom()->HitTest(x, y, &new_attachment, &distance)) - lineShape->SetAttachments(new_attachment, lineShape->GetAttachmentTo()); - - lineShape->GetFrom()->MoveLinks(dc); - } - } - if (m_type == CONTROL_POINT_ENDPOINT_TO) - { - if (m_oldCursor) - m_canvas->SetCursor(m_oldCursor); - m_shape->Erase(dc); - - m_xpos = x; m_ypos = y; - - if (lineShape->GetTo()) - { - lineShape->GetTo()->EraseLinks(dc); - - int new_attachment; - double distance; - if (lineShape->GetTo()->HitTest(x, y, &new_attachment, &distance)) - lineShape->SetAttachments(lineShape->GetAttachmentFrom(), new_attachment); - - lineShape->GetTo()->MoveLinks(dc); - } - } - int i = 0; - for (i = 0; i < lineShape->GetLineControlPoints()->Number(); i++) - if (((wxRealPoint *)(lineShape->GetLineControlPoints()->Nth(i)->Data())) == m_point) - break; - lineShape->OnMoveControlPoint(i+1, x, y); - if (!m_canvas->GetQuickEditMode()) m_canvas->Redraw(dc); -} -#endif - -/* - * Get the point on the given line (x1, y1) (x2, y2) - * distance 'length' along from the end, - * returned values in x and y - */ - -void GetPointOnLine(double x1, double y1, double x2, double y2, - double length, double *x, double *y) -{ - double l = (double)sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); - - if (l < 0.01) - l = (double) 0.01; - - double i_bar = (x2 - x1)/l; - double j_bar = (y2 - y1)/l; - - *x = (- length*i_bar) + x2; - *y = (- length*j_bar) + y2; -} - -wxArrowHead *wxLineShape::AddArrow(WXTYPE type, int end, double size, double xOffset, - const wxString& name, wxPseudoMetaFile *mf, long arrowId) -{ - wxArrowHead *arrow = new wxArrowHead(type, end, size, xOffset, name, mf, arrowId); - m_arcArrows.Append(arrow); - return arrow; -} - -/* - * Add arrowhead at a particular position in the arrowhead list. - */ -bool wxLineShape::AddArrowOrdered(wxArrowHead *arrow, wxList& referenceList, int end) -{ - wxNode *refNode = referenceList.First(); - wxNode *currNode = m_arcArrows.First(); - wxString targetName(arrow->GetName()); - if (!refNode) return FALSE; - - // First check whether we need to insert in front of list, - // because this arrowhead is the first in the reference - // list and should therefore be first in the current list. - wxArrowHead *refArrow = (wxArrowHead *)refNode->Data(); - if (refArrow->GetName() == targetName) - { - m_arcArrows.Insert(arrow); - return TRUE; - } - - while (refNode && currNode) - { - wxArrowHead *currArrow = (wxArrowHead *)currNode->Data(); - refArrow = (wxArrowHead *)refNode->Data(); - - // Matching: advance current arrow pointer - if ((currArrow->GetArrowEnd() == end) && - (currArrow->GetName() == refArrow->GetName())) - { - currNode = currNode->Next(); // Could be NULL now - if (currNode) - currArrow = (wxArrowHead *)currNode->Data(); - } - - // Check if we're at the correct position in the - // reference list - if (targetName == refArrow->GetName()) - { - if (currNode) - m_arcArrows.Insert(currNode, arrow); - else - m_arcArrows.Append(arrow); - return TRUE; - } - refNode = refNode->Next(); - } - m_arcArrows.Append(arrow); - return TRUE; -} - -void wxLineShape::ClearArrowsAtPosition(int end) -{ - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - wxNode *next = node->Next(); - switch (end) - { - case -1: - { - delete arrow; - delete node; - break; - } - case ARROW_POSITION_START: - { - if (arrow->GetArrowEnd() == ARROW_POSITION_START) - { - delete arrow; - delete node; - } - break; - } - case ARROW_POSITION_END: - { - if (arrow->GetArrowEnd() == ARROW_POSITION_END) - { - delete arrow; - delete node; - } - break; - } - case ARROW_POSITION_MIDDLE: - { - if (arrow->GetArrowEnd() == ARROW_POSITION_MIDDLE) - { - delete arrow; - delete node; - } - break; - } - } - node = next; - } -} - -bool wxLineShape::ClearArrow(const wxString& name) -{ - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - if (arrow->GetName() == name) - { - delete arrow; - delete node; - return TRUE; - } - node = node->Next(); - } - return FALSE; -} - -/* - * Finds an arrowhead at the given position (if -1, any position) - * - */ - -wxArrowHead *wxLineShape::FindArrowHead(int position, const wxString& name) -{ - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - if (((position == -1) || (position == arrow->GetArrowEnd())) && - (arrow->GetName() == name)) - return arrow; - node = node->Next(); - } - return NULL; -} - -wxArrowHead *wxLineShape::FindArrowHead(long arrowId) -{ - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - if (arrowId == arrow->GetId()) - return arrow; - node = node->Next(); - } - return NULL; -} - -/* - * Deletes an arrowhead at the given position (if -1, any position) - * - */ - -bool wxLineShape::DeleteArrowHead(int position, const wxString& name) -{ - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - if (((position == -1) || (position == arrow->GetArrowEnd())) && - (arrow->GetName() == name)) - { - delete arrow; - delete node; - return TRUE; - } - node = node->Next(); - } - return FALSE; -} - -// Overloaded DeleteArrowHead: pass arrowhead id. -bool wxLineShape::DeleteArrowHead(long id) -{ - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrow = (wxArrowHead *)node->Data(); - if (arrow->GetId() == id) - { - delete arrow; - delete node; - return TRUE; - } - node = node->Next(); - } - return FALSE; -} - -/* - * Calculate the minimum width a line - * occupies, for the purposes of drawing lines in tools. - * - */ - -double wxLineShape::FindMinimumWidth() -{ - double minWidth = 0.0; - wxNode *node = m_arcArrows.First(); - while (node) - { - wxArrowHead *arrowHead = (wxArrowHead *)node->Data(); - minWidth += arrowHead->GetSize(); - if (node->Next()) - minWidth += arrowHead->GetSpacing(); - - node = node->Next(); - } - // We have ABSOLUTE minimum now. So - // scale it to give it reasonable aesthetics - // when drawing with line. - if (minWidth > 0.0) - minWidth = (double)(minWidth * 1.4); - else - minWidth = 20.0; - - SetEnds(0.0, 0.0, minWidth, 0.0); - Initialise(); - - return minWidth; -} - -// Find which position we're talking about at this (x, y). -// Returns ARROW_POSITION_START, ARROW_POSITION_MIDDLE, ARROW_POSITION_END -int wxLineShape::FindLinePosition(double x, double y) -{ - double startX, startY, endX, endY; - GetEnds(&startX, &startY, &endX, &endY); - - // Find distances from centre, start and end. The smallest wins. - double centreDistance = (double)(sqrt((x - m_xpos)*(x - m_xpos) + (y - m_ypos)*(y - m_ypos))); - double startDistance = (double)(sqrt((x - startX)*(x - startX) + (y - startY)*(y - startY))); - double endDistance = (double)(sqrt((x - endX)*(x - endX) + (y - endY)*(y - endY))); - - if (centreDistance < startDistance && centreDistance < endDistance) - return ARROW_POSITION_MIDDLE; - else if (startDistance < endDistance) - return ARROW_POSITION_START; - else - return ARROW_POSITION_END; -} - -// Set alignment flags -void wxLineShape::SetAlignmentOrientation(bool isEnd, bool isHoriz) -{ - if (isEnd) - { - if (isHoriz && ((m_alignmentEnd & LINE_ALIGNMENT_HORIZ) != LINE_ALIGNMENT_HORIZ)) - m_alignmentEnd |= LINE_ALIGNMENT_HORIZ; - else if (!isHoriz && ((m_alignmentEnd & LINE_ALIGNMENT_HORIZ) == LINE_ALIGNMENT_HORIZ)) - m_alignmentEnd -= LINE_ALIGNMENT_HORIZ; - } - else - { - if (isHoriz && ((m_alignmentStart & LINE_ALIGNMENT_HORIZ) != LINE_ALIGNMENT_HORIZ)) - m_alignmentStart |= LINE_ALIGNMENT_HORIZ; - else if (!isHoriz && ((m_alignmentStart & LINE_ALIGNMENT_HORIZ) == LINE_ALIGNMENT_HORIZ)) - m_alignmentStart -= LINE_ALIGNMENT_HORIZ; - } -} - -void wxLineShape::SetAlignmentType(bool isEnd, int alignType) -{ - if (isEnd) - { - if (alignType == LINE_ALIGNMENT_TO_NEXT_HANDLE) - { - if ((m_alignmentEnd & LINE_ALIGNMENT_TO_NEXT_HANDLE) != LINE_ALIGNMENT_TO_NEXT_HANDLE) - m_alignmentEnd |= LINE_ALIGNMENT_TO_NEXT_HANDLE; - } - else if ((m_alignmentEnd & LINE_ALIGNMENT_TO_NEXT_HANDLE) == LINE_ALIGNMENT_TO_NEXT_HANDLE) - m_alignmentEnd -= LINE_ALIGNMENT_TO_NEXT_HANDLE; - } - else - { - if (alignType == LINE_ALIGNMENT_TO_NEXT_HANDLE) - { - if ((m_alignmentStart & LINE_ALIGNMENT_TO_NEXT_HANDLE) != LINE_ALIGNMENT_TO_NEXT_HANDLE) - m_alignmentStart |= LINE_ALIGNMENT_TO_NEXT_HANDLE; - } - else if ((m_alignmentStart & LINE_ALIGNMENT_TO_NEXT_HANDLE) == LINE_ALIGNMENT_TO_NEXT_HANDLE) - m_alignmentStart -= LINE_ALIGNMENT_TO_NEXT_HANDLE; - } -} - -bool wxLineShape::GetAlignmentOrientation(bool isEnd) -{ - if (isEnd) - return ((m_alignmentEnd & LINE_ALIGNMENT_HORIZ) == LINE_ALIGNMENT_HORIZ); - else - return ((m_alignmentStart & LINE_ALIGNMENT_HORIZ) == LINE_ALIGNMENT_HORIZ); -} - -int wxLineShape::GetAlignmentType(bool isEnd) -{ - if (isEnd) - return (m_alignmentEnd & LINE_ALIGNMENT_TO_NEXT_HANDLE); - else - return (m_alignmentStart & LINE_ALIGNMENT_TO_NEXT_HANDLE); -} - -wxRealPoint *wxLineShape::GetNextControlPoint(wxShape *nodeObject) -{ - int n = m_lineControlPoints->Number(); - int nn = 0; - if (m_to == nodeObject) - { - // Must be END of line, so we want (n - 1)th control point. - // But indexing ends at n-1, so subtract 2. - nn = n - 2; - } - else nn = 1; - wxNode *node = m_lineControlPoints->Nth(nn); - if (node) - { - return (wxRealPoint *)node->Data(); - } - else - return FALSE; -} - -/* - * Arrowhead - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxArrowHead, wxObject) - -wxArrowHead::wxArrowHead(WXTYPE type, int end, double size, double dist, const wxString& name, - wxPseudoMetaFile *mf, long arrowId) -{ - m_arrowType = type; m_arrowEnd = end; m_arrowSize = size; - m_xOffset = dist; - m_yOffset = 0.0; - m_spacing = 5.0; - - m_arrowName = name; - m_metaFile = mf; - m_id = arrowId; - if (m_id == -1) - m_id = NewId(); -} - -wxArrowHead::wxArrowHead(wxArrowHead& toCopy) -{ - m_arrowType = toCopy.m_arrowType; m_arrowEnd = toCopy.GetArrowEnd(); - m_arrowSize = toCopy.m_arrowSize; - m_xOffset = toCopy.m_xOffset; - m_yOffset = toCopy.m_yOffset; - m_spacing = toCopy.m_spacing; - m_arrowName = toCopy.m_arrowName ; - if (toCopy.m_metaFile) - m_metaFile = new wxPseudoMetaFile(*(toCopy.m_metaFile)); - else - m_metaFile = NULL; - m_id = NewId(); -} - -wxArrowHead::~wxArrowHead() -{ - if (m_metaFile) delete m_metaFile; -} - -void wxArrowHead::SetSize(double size) -{ - m_arrowSize = size; - if ((m_arrowType == ARROW_METAFILE) && m_metaFile) - { - double oldWidth = m_metaFile->m_width; - if (oldWidth == 0.0) - return; - - double scale = (double)(size/oldWidth); - if (scale != 1.0) - m_metaFile->Scale(scale, scale); - } -} - -// Can override this to create a different class of label shape -wxLabelShape* wxLineShape::OnCreateLabelShape(wxLineShape *parent, wxShapeRegion *region, double w, double h) -{ - return new wxLabelShape(parent, region, w, h); -} - -/* - * Label object - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxLabelShape, wxRectangleShape) - -wxLabelShape::wxLabelShape(wxLineShape *parent, wxShapeRegion *region, double w, double h):wxRectangleShape(w, h) -{ - m_lineShape = parent; - m_shapeRegion = region; - SetPen(wxThePenList->FindOrCreatePen(wxColour(0, 0, 0), 1, wxDOT)); -} - -wxLabelShape::~wxLabelShape() -{ -} - -void wxLabelShape::OnDraw(wxDC& dc) -{ - if (m_lineShape && !m_lineShape->GetDrawHandles()) - return; - - double x1 = (double)(m_xpos - m_width/2.0); - double y1 = (double)(m_ypos - m_height/2.0); - - if (m_pen) - { - if (m_pen->GetWidth() == 0) - dc.SetPen(* g_oglTransparentPen); - else - dc.SetPen(* m_pen); - } - dc.SetBrush(* wxTRANSPARENT_BRUSH); - - if (m_cornerRadius > 0.0) - dc.DrawRoundedRectangle(WXROUND(x1), WXROUND(y1), WXROUND(m_width), WXROUND(m_height), m_cornerRadius); - else - dc.DrawRectangle(WXROUND(x1), WXROUND(y1), WXROUND(m_width), WXROUND(m_height)); -} - -void wxLabelShape::OnDrawContents(wxDC& dc) -{ -} - -void wxLabelShape::OnDragLeft(bool draw, double x, double y, int keys, int attachment) -{ - wxRectangleShape::OnDragLeft(draw, x, y, keys, attachment); -} - -void wxLabelShape::OnBeginDragLeft(double x, double y, int keys, int attachment) -{ - wxRectangleShape::OnBeginDragLeft(x, y, keys, attachment); -} - -void wxLabelShape::OnEndDragLeft(double x, double y, int keys, int attachment) -{ - wxRectangleShape::OnEndDragLeft(x, y, keys, attachment); -} - -bool wxLabelShape::OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display) -{ - return m_lineShape->OnLabelMovePre(dc, this, x, y, old_x, old_y, display); -} - -bool wxLineShape::OnLabelMovePre(wxDC& dc, wxLabelShape* labelShape, double x, double y, double old_x, double old_y, bool display) -{ - labelShape->m_shapeRegion->SetSize(labelShape->GetWidth(), labelShape->GetHeight()); - - // Find position in line's region list - int i = 0; - wxNode *node = GetRegions().First(); - while (node) - { - if (labelShape->m_shapeRegion == (wxShapeRegion *)node->Data()) - node = NULL; - else - { - node = node->Next(); - i ++; - } - } - double xx, yy; - GetLabelPosition(i, &xx, &yy); - // Set the region's offset, relative to the default position for - // each region. - labelShape->m_shapeRegion->SetPosition((double)(x - xx), (double)(y - yy)); - - labelShape->SetX(x); - labelShape->SetY(y); - - // Need to reformat to fit region. - if (labelShape->m_shapeRegion->GetText()) - { - - wxString s(labelShape->m_shapeRegion->GetText()); - labelShape->FormatText(dc, s, i); - DrawRegion(dc, labelShape->m_shapeRegion, xx, yy); - } - return TRUE; -} - -// Divert left and right clicks to line object -void wxLabelShape::OnLeftClick(double x, double y, int keys, int attachment) -{ - m_lineShape->GetEventHandler()->OnLeftClick(x, y, keys, attachment); -} - -void wxLabelShape::OnRightClick(double x, double y, int keys, int attachment) -{ - m_lineShape->GetEventHandler()->OnRightClick(x, y, keys, attachment); -} - diff --git a/utils/ogl/src/lines.h b/utils/ogl/src/lines.h deleted file mode 100644 index 9619bf75cf..0000000000 --- a/utils/ogl/src/lines.h +++ /dev/null @@ -1,296 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: lines.h -// Purpose: wxLineShape -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_LINES_H_ -#define _OGL_LINES_H_ - -#ifdef __GNUG__ -#pragma interface "lines.h" -#endif - -class wxLabelShape; -class wxPseudoMetaFile; -class wxLineControlPoint; -/* - * Arcs with multiple arrowheads - * - */ - -// Types of arrowhead -// (i) Built-in -#define ARROW_HOLLOW_CIRCLE 1 -#define ARROW_FILLED_CIRCLE 2 -#define ARROW_ARROW 3 -#define ARROW_SINGLE_OBLIQUE 4 -#define ARROW_DOUBLE_OBLIQUE 5 -// (ii) Custom -#define ARROW_METAFILE 20 - -// Position of arrow on line -#define ARROW_POSITION_START 0 -#define ARROW_POSITION_END 1 -#define ARROW_POSITION_MIDDLE 2 - -// Line alignment flags -// Vertical by default -#define LINE_ALIGNMENT_HORIZ 1 -#define LINE_ALIGNMENT_VERT 0 -#define LINE_ALIGNMENT_TO_NEXT_HANDLE 2 -#define LINE_ALIGNMENT_NONE 0 - -class wxArrowHead: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxArrowHead) - - public: - wxArrowHead(WXTYPE type = 0, int end = 0, double size = 0.0, double dist = 0.0, const wxString& name = "", wxPseudoMetaFile *mf = NULL, - long arrowId = -1); - ~wxArrowHead(); - wxArrowHead(wxArrowHead& toCopy); - - inline WXTYPE _GetType() const { return m_arrowType; } - inline int GetPosition() const { return m_arrowEnd; } - inline void SetPosition(int pos) { m_arrowEnd = pos; } - inline double GetXOffset() const { return m_xOffset; } - inline double GetYOffset() const { return m_yOffset; } - inline double GetSpacing() const { return m_spacing; } - inline double GetSize() const { return m_arrowSize; } - inline wxString GetName() const { return m_arrowName; } - inline void SetXOffset(double x) { m_xOffset = x; } - inline void SetYOffset(double y) { m_yOffset = y; } - inline wxPseudoMetaFile *GetMetaFile() const { return m_metaFile; } - inline long GetId() const { return m_id; } - inline int GetArrowEnd() const { return m_arrowEnd; } - inline double GetArrowSize() const { return m_arrowSize; } - void SetSize(double size); - inline void SetSpacing(double sp) { m_spacing = sp; } - - protected: - WXTYPE m_arrowType; - int m_arrowEnd; // Position on line - double m_xOffset; // Distance from arc start or end, w.r.t. point on arrowhead - // nearest start or end. If zero, use default spacing. - double m_yOffset; // vertical offset (w.r.t. a horizontal line). Normally zero. - double m_spacing; // Spacing from the last arrowhead - double m_arrowSize; // Length of arrowhead - wxString m_arrowName; // Name of arrow - bool m_saveToFile; // TRUE if we want to save custom arrowheads to file. - wxPseudoMetaFile* m_metaFile; // Pseudo metafile if this is a custom arrowhead - long m_id; // identifier -}; - -// Line object -class wxLabelShape; -class wxLineShape: public wxShape -{ - DECLARE_DYNAMIC_CLASS(wxLineShape) - - public: - wxLineShape(); - ~wxLineShape(); - - // Called when a connected object has moved, to move the link to - // correct position - // moveControlPoints must be disabled when a control point is being - // dragged. - void OnMoveLink(wxDC& dc, bool moveControlPoints = TRUE); - bool OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE); - void OnDraw(wxDC& dc); - void OnDrawContents(wxDC& dc); - void OnDrawControlPoints(wxDC& dc); - void OnEraseControlPoints(wxDC& dc); - void OnErase(wxDC& dc); - virtual bool OnMoveControlPoint(int WXUNUSED(which), double WXUNUSED(x), double WXUNUSED(y)) { return FALSE; } - virtual bool OnMoveMiddleControlPoint(wxDC& dc, wxLineControlPoint* lpt, const wxRealPoint& pt); - virtual bool OnLabelMovePre(wxDC& dc, wxLabelShape* labelShape, double x, double y, double old_x, double old_y, bool display); - void OnDrawOutline(wxDC& dc, double x, double y, double w, double h); - void GetBoundingBoxMin(double *w, double *h); - void FormatText(wxDC& dc, const wxString& s, int regionId = 0); - virtual void SetEnds(double x1, double y1, double x2, double y2); - virtual void GetEnds(double *x1, double *y1, double *x2, double *y2); - inline virtual wxShape *GetFrom() { return m_from; } - inline virtual wxShape *GetTo() { return m_to; } - inline virtual int GetAttachmentFrom() { return m_attachmentFrom; } - inline virtual int GetAttachmentTo() { return m_attachmentTo; } - - virtual void SetFrom(wxShape *object); - virtual void SetTo(wxShape *object); - virtual void DrawArrows(wxDC& dc); - - // Finds the x, y points at the two ends of the line. - // This function can be used by e.g. line-routing routines to - // get the actual points on the two node images where the lines will be drawn - // to/from. - void FindLineEndPoints(double *fromX, double *fromY, double *toX, double *toY); - - // Format one region at this position - void DrawRegion(wxDC& dc, wxShapeRegion *region, double x, double y); - - // Erase one region at this position - void EraseRegion(wxDC& dc, wxShapeRegion *region, double x, double y); - - // Get the reference point for a label. Region x and y - // are offsets from this. - // position is 0 (middle), 1 (start), 2 (end) - void GetLabelPosition(int position, double *x, double *y); - - // Can override this to create a different class of label shape - virtual wxLabelShape* OnCreateLabelShape(wxLineShape *parent = NULL, wxShapeRegion *region = NULL, double w = 0.0, double h = 0.0); - - // Straighten verticals and horizontals - virtual void Straighten(wxDC* dc = NULL); - - // Not implemented - inline void SetMaintainStraightLines(bool flag) { m_maintainStraightLines = flag; } - inline bool GetMaintainStraightLines() const { return m_maintainStraightLines; } - - // Make handle control points - void MakeControlPoints(); - void ResetControlPoints(); - - // Make a given number of control points - virtual void MakeLineControlPoints(int n); - virtual wxNode *InsertLineControlPoint(wxDC* dc); - virtual bool DeleteLineControlPoint(); - virtual void Initialise(); - inline wxList *GetLineControlPoints() { return m_lineControlPoints; } - - // Override dragging behaviour - don't want to be able to drag lines! - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - - // Control points ('handles') redirect control to the actual shape, to make it easier - // to override sizing behaviour. - virtual void OnSizingDragLeft(wxControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0); - virtual void OnSizingBeginDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - virtual void OnSizingEndDragLeft(wxControlPoint* pt, double x, double y, int keys=0, int attachment = 0); - - // Override select, to create/delete temporary label-moving objects - void Select(bool select = TRUE, wxDC* dc = NULL); - - // Set to spline (TRUE) or line (FALSE) - inline void SetSpline(bool spl) { m_isSpline = spl; } - inline bool IsSpline() const { return m_isSpline; } - - void Unlink(); - void SetAttachments(int from_attach, int to_attach); - inline void SetAttachmentFrom(int attach) { m_attachmentFrom = attach; } - inline void SetAttachmentTo(int attach) { m_attachmentTo = attach; } - - bool HitTest(double x, double y, int *attachment, double *distance); - -#ifdef PROLOGIO - // I/O - virtual void WriteAttributes(wxExpr *clause); - virtual void ReadAttributes(wxExpr *clause); -#endif - - virtual void FindNth(wxShape *image, int *nth, int *no_arcs, bool incoming); - - // Find which position we're talking about at this (x, y). - // Returns ARROW_POSITION_START, ARROW_POSITION_MIDDLE, ARROW_POSITION_END - int FindLinePosition(double x, double y); - - // This is really to distinguish between lines and other images. - // For lines, want to pass drag to canvas, since lines tend to prevent - // dragging on a canvas (they get in the way.) - virtual bool Draggable() const { return FALSE; } - - // Does the copying for this object - void Copy(wxShape& copy); - - // Add an arrowhead. - wxArrowHead *AddArrow(WXTYPE type, int end = ARROW_POSITION_END, - double arrowSize = 10.0, double xOffset = 0.0, const wxString& name = "", - wxPseudoMetaFile *mf = NULL, long arrowId = -1); - - // Add an arrowhead in the position indicated by the reference - // list of arrowheads, which contains all legal arrowheads for this - // line, in the correct order. - // E.g. reference list: a b c d e - // Current line list: a d - // Add c, then line list is: a c d - // If no legal arrowhead position, return FALSE. - // Assume reference list is for one end only, since it potentially defines - // the ordering for any one of the 3 positions. So we don't check - // the reference list for arrowhead position. - bool AddArrowOrdered(wxArrowHead *arrow, wxList& referenceList, int end); - - // Delete arrowhead(s) - void ClearArrowsAtPosition(int end = -1); - bool ClearArrow(const wxString& name); - wxArrowHead *FindArrowHead(int position, const wxString& name); - wxArrowHead *FindArrowHead(long arrowId); - bool DeleteArrowHead(int position, const wxString& name); - bool DeleteArrowHead(long arrowId); - void DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool proportionalOffset); - inline void SetIgnoreOffsets(bool ignore) { m_ignoreArrowOffsets = ignore; } - inline wxList& GetArrows() const { return (wxList&) m_arcArrows; } - - // Find horizontal width for drawing a line with - // arrows in minimum space. Assume arrows at - // END only - double FindMinimumWidth(); - - // Set alignment flags. ALIGNMENT NOT IMPLEMENTED. - void SetAlignmentOrientation(bool isEnd, bool isHoriz); - void SetAlignmentType(bool isEnd, int alignType); - bool GetAlignmentOrientation(bool isEnd); - int GetAlignmentType(bool isEnd); - - // Find next control point in line after the start/end point - // (depending on whether the node object is at start or end) - wxRealPoint *GetNextControlPoint(wxShape *nodeObject); - inline bool IsEnd(wxShape *nodeObject) const { return (m_to == nodeObject); } - -private: - bool m_erasing; // flag to say whether we're erasing or drawing - // this line (really so metafiles can draw a - // blank rectangle) - bool m_ignoreArrowOffsets; // Don't always want to draw arrowhead offsets - // because they may not work on tool palettes (for example) - bool m_isSpline; - bool m_maintainStraightLines; - -protected: - // Temporary list of line segment orientations - // so we know what direction the line is supposed to be dog-legging - // in. The values are integer: 0 for vertical, 1 for horizontal. - wxList m_lineOrientations; - - // Temporary pointers for start, middle and end label editing objects - // (active only when the line is selected) - wxLabelShape* m_labelObjects[3]; - - // These define the segmented line - not to be confused with temporary control - // points which appear when object is selected (although in this case they'll - // probably be the same) - wxList* m_lineControlPoints; - - double m_arrowSpacing; // Separation between adjacent arrows - - wxShape* m_to; - wxShape* m_from; - - int m_attachmentTo; // Attachment point at one end - int m_attachmentFrom; // Attachment point at other end - - // Alignment flags - int m_alignmentStart; - int m_alignmentEnd; - - wxList m_arcArrows; - -}; - -#endif - // _OGL_LINES_H_ diff --git a/utils/ogl/src/linesp.h b/utils/ogl/src/linesp.h deleted file mode 100644 index 383fe7f554..0000000000 --- a/utils/ogl/src/linesp.h +++ /dev/null @@ -1,89 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: linesp.h -// Purpose: Lines private header file -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_LINESP_H_ -#define _OGL_LINESP_H_ - -#ifdef __GNUG__ -#pragma interface "linesp.h" -#endif - -class wxLineShape; -class wxLineControlPoint: public wxControlPoint -{ - DECLARE_DYNAMIC_CLASS(wxLineControlPoint) - friend class wxLineShape; - public: - - wxLineControlPoint(wxShapeCanvas *the_canvas = NULL, wxShape *object = NULL, double size = 0.0, - double x = 0.0, double y = 0.0, int the_type = 0); - ~wxLineControlPoint(); - - void OnDraw(wxDC& dc); - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - - // Obsolete (left-dragging now moves attachment point to new relative position OR new - // attachment id) -#if 0 - void OnDragRight(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragRight(double x, double y, int keys=0, int attachment = 0); - void OnEndDragRight(double x, double y, int keys=0, int attachment = 0); -#endif - -public: - - int m_type; - wxRealPoint* m_point; // Line point - wxRealPoint m_originalPos; - -}; - -/* - * Temporary arc label object - */ - -class wxLabelShape: public wxRectangleShape -{ - DECLARE_DYNAMIC_CLASS(wxLabelShape) - - public: - wxLabelShape(wxLineShape *parent = NULL, wxShapeRegion *region = NULL, double w = 0.0, double h = 0.0); - ~wxLabelShape(); - - void OnDraw(wxDC& dc); - void OnDrawContents(wxDC& dc); - void OnLeftClick(double x, double y, int keys = 0, int attachment = 0); - void OnRightClick(double x, double y, int keys = 0, int attachment = 0); - void OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0); - void OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0); - void OnEndDragLeft(double x, double y, int keys=0, int attachment = 0); - bool OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = TRUE); - -public: - wxLineShape* m_lineShape; - wxShapeRegion* m_shapeRegion; - -}; - -/* - * Get the point on the given line (x1, y1) (x2, y2) - * distance 'length' along from the end, - * returned values in x and y - */ - -void GetPointOnLine(double x1, double y1, double x2, double y2, - double length, double *x, double *y); - -#endif - // _OGL_LINESP_H_ - diff --git a/utils/ogl/src/makefile.b32 b/utils/ogl/src/makefile.b32 deleted file mode 100644 index 0b5356ac42..0000000000 --- a/utils/ogl/src/makefile.b32 +++ /dev/null @@ -1,18 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: -# -# Makefile : Builds OGL library for 32-bit BC++ - -WXDIR = $(WXWIN) - -LIBTARGET=$(WXDIR)\lib\ogl.lib - -OBJECTS = basic.obj basic2.obj canvas.obj ogldiag.obj lines.obj misc.obj divided.obj constrnt.obj\ - composit.obj drawn.obj bmpshape.obj mfutils.obj - -!include $(WXDIR)\src\makelib.b32 - diff --git a/utils/ogl/src/makefile.bcc b/utils/ogl/src/makefile.bcc deleted file mode 100644 index 94177e6b17..0000000000 --- a/utils/ogl/src/makefile.bcc +++ /dev/null @@ -1,21 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds OGL library for BC++, 16-bit - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -LIBTARGET=$(WXDIR)\lib\ogl.lib - -OBJECTS = basic.obj basic2.obj canvas.obj ogldiag.obj lines.obj misc.obj divided.obj constrnt.obj\ - composit.obj drawn.obj bmpshape.obj mfutils.obj - -!include $(WXDIR)\src\makelib.bcc - diff --git a/utils/ogl/src/makefile.dos b/utils/ogl/src/makefile.dos deleted file mode 100644 index 179e52a37f..0000000000 --- a/utils/ogl/src/makefile.dos +++ /dev/null @@ -1,161 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile: Builds object graphics library (DOS). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makemsc.env - -OGLDIR = $(WXDIR)\utils\ogl -THISDIR = $(OGLDIR)\src -DOCDIR = $(OGLDIR)\docs -WXLIB = $(WXDIR)\lib\wx.lib -LIBS=$(WXLIB) libw llibcew commdlg shell ctl3dv2 - -GRAPHICSLIB = $(WXDIR)\lib\ogl.lib -INC = /I$(WXDIR)\include - -# Normally set OPTIONS = -# to disable PROLOGIO-dependent code -OPTIONS = -DPROLOGIO - -OBJECTS = basic.obj basic2.obj canvas.obj ogldiag.obj lines.obj misc.obj divided.obj constrnt.obj\ - composit.obj drawn.obj bitmap.obj mfutils.obj - -all: $(GRAPHICSLIB) - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.dos $(WXLIB) FINAL=$(FINAL) - cd $(THISDIR) - -$(GRAPHICSLIB): $(OBJECTS) - erase $(GRAPHICSLIB) - lib /PAGESIZE:128 @<< -$(GRAPHICSLIB) -y -$(OBJECTS) -nul -; -<< - -# NOTE: This causes a floating point stack error when optimized, -# so DON'T optimize! - -basic.obj: basic.$(SRCSUFF) basic.h lines.h misc.h canvas.h - cl @<< -$(CPPFLAGS) /Od /c /Tp $*.$(SRCSUFF) -<< - -basic2.obj: basic2.$(SRCSUFF) basic.h lines.h misc.h canvas.h - cl @<< -$(CPPFLAGS) /Od /c /Tp $*.$(SRCSUFF) -<< - -canvas.obj: canvas.$(SRCSUFF) basic.h misc.h canvas.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -ogldiag.obj: ogldiag.$(SRCSUFF) ogldiag.h canvas.h basic.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -lines.obj: lines.$(SRCSUFF) basic.h misc.h canvas.h lines.h basicp.h linesp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -misc.obj: misc.$(SRCSUFF) basic.h misc.h constrnt.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -divided.obj: divided.$(SRCSUFF) basic.h misc.h canvas.h divided.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -constrnt.obj: constrnt.$(SRCSUFF) basic.h constrnt.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -composit.obj: composit.$(SRCSUFF) basic.h misc.h canvas.h constrnt.h composit.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -drawn.obj: drawn.$(SRCSUFF) basic.h misc.h canvas.h drawn.h drawnp.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -bitmap.obj: bitmap.$(SRCSUFF) basic.h misc.h canvas.h bitmap.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -mfutils.obj: mfutils.$(SRCSUFF) mfutils.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -# Making documents -docs: hlp -hlp: $(DOCDIR)/ogl.hlp -hlp32: $(DOCDIR)/hlp32/ogl.hlp -rtf: $(DOCDIR)/ogl.rtf - -$(DOCDIR)/ogl.hlp: $(DOCDIR)/ogl.rtf $(DOCDIR)/ogl.hpj - cd $(DOCDIR) - -erase ogl.ph - hc ogl - cd $(THISDIR) - -$(DOCDIR)/hlp32/ogl.hlp: $(DOCDIR)/hlp32/ogl.rtf $(DOCDIR)/hlp32/ogl.hpj - cd $(DOCDIR)/hlp32 - -erase ogl.ph - start /w hcw /c /e ogl.hpj - cd $(THISDIR) - -$(DOCDIR)/ogl.rtf: $(DOCDIR)/classes.tex $(DOCDIR)/intro.tex $(DOCDIR)/ogl.tex - cd $(DOCDIR) - start /w tex2rtf $(DOCDIR)/ogl.tex $(DOCDIR)/ogl.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)/hlp32/ogl.rtf: $(DOCDIR)/classes.tex $(DOCDIR)/intro.tex $(DOCDIR)/ogl.tex - cd $(DOCDIR) - start /w tex2rtf $(DOCDIR)/ogl.tex $(DOCDIR)/hlp32/ogl.rtf -twice -winhelp -macros $(DOCDIR)/t2rtf32.ini - cd $(THISDIR) - -wordrtf: - cd $(DOCDIR) - -wx /W tex2rtf $(DOCDIR)/ogl.tex $(DOCDIR)/ogl.rtf -twice -rtf - cd $(THISDIR) - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - -erase *.lib - -erase ..\lib\*.lib - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.dos clean - cd $(THISDIR) diff --git a/utils/ogl/src/makefile.g95 b/utils/ogl/src/makefile.g95 deleted file mode 100644 index 12a93aeac7..0000000000 --- a/utils/ogl/src/makefile.g95 +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows OGL library Cygwin/Mingw32). - -WXDIR = ../../.. - -LIBTARGET=$(WXDIR)/lib/libogl.a -OBJECTS = basic.o basic2.o canvas.o ogldiag.o lines.o misc.o divided.o constrnt.o\ - composit.o drawn.o bmpshape.o mfutils.o - -include $(WXDIR)/src/makelib.g95 - diff --git a/utils/ogl/src/makefile.unx b/utils/ogl/src/makefile.unx deleted file mode 100644 index 55a194651c..0000000000 --- a/utils/ogl/src/makefile.unx +++ /dev/null @@ -1,42 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 -# -# -# Makefile for OGL library, Unix - -include ../../../src/make.env - -OGLLIB=$(WXDIR)/lib/libogl$(GUISUFFIX).a - -LIB_CPP_SRC=\ -\ - basic.o\ - basic2.o\ - canvas.o\ - ogldiag.o\ - lines.o\ - misc.o\ - divided.o\ - constrnt.o\ - composit.o\ - drawn.o\ - bmpshape.o\ - mfutils.o - -all: $(OGLLIB) - -# Define library objects -OBJECTS=\ - $(LIB_CPP_SRC:.cpp=.o) - -$(OGLLIB) : $(OBJECTS) - ar $(AROPTIONS) $@ $(OBJECTS) - $(RANLIB) $@ - -clean: - rm -f $(OBJECTS) $(OGLLIB) - diff --git a/utils/ogl/src/makefile.vc b/utils/ogl/src/makefile.vc deleted file mode 100644 index 8c5bf6f9b3..0000000000 --- a/utils/ogl/src/makefile.vc +++ /dev/null @@ -1,180 +0,0 @@ -# -# File: makefile.vc -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds OGL classes library (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) -OBJECTSDIR = $(WXDIR)\utils\ogl -THISDIR = $(WXDIR)\utils\ogl\src -EXTRALIBS=$(WXDIR)\lib\ogl.lib $(WXDIR)\lib\mfutils.lib -EXTRAINC=/I$(WXDIR)\utils\mfutils\src /I$(WXDIR)\utils\prologio\src -EXTRAFLAGS=/DPROLOGIO=1 -DOCDIR=$(WXDIR)\docs -LOCALDOCDIR=$(WXDIR)\utils\ogl\docs - -!include $(WXDIR)\src\makevc.env - -PROGRAM=test - -OBJECTS = $(THISDIR)\basic.obj $(THISDIR)\basic2.obj $(THISDIR)\canvas.obj $(THISDIR)\ogldiag.obj $(THISDIR)\lines.obj $(THISDIR)\misc.obj $(THISDIR)\divided.obj $(THISDIR)\constrnt.obj\ - $(THISDIR)\composit.obj $(THISDIR)\drawn.obj $(THISDIR)\bmpshape.obj $(THISDIR)\mfutils.obj - -LIBTARGET=$(WXDIR)\lib\ogl.lib - -all: $(LIBTARGET) - -$(PROGRAM): $(PROGRAM).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.vc clean - cd $(THISDIR) - -$(LIBTARGET): $(OBJECTS) - -erase $(LIBTARGET) - $(implib) @<< --out:$(LIBTARGET) --machine:$(CPU) -$(OBJECTS) -<< - -# NOTE: This causes a floating point stack error when optimized, -# so DON'T optimize! -basic.obj: basic.$(SRCSUFF) basic.h lines.h misc.h canvas.h - cl @<< -$(CPPFLAGS) /Od /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\basic2.obj: basic2.$(SRCSUFF) basic.h lines.h misc.h canvas.h - cl @<< -$(CPPFLAGS) /Od /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\canvas.obj: canvas.$(SRCSUFF) basic.h misc.h canvas.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\ogldiag.obj: ogldiag.$(SRCSUFF) ogldiag.h canvas.h basic.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\lines.obj: lines.$(SRCSUFF) basic.h misc.h canvas.h lines.h basicp.h linesp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\misc.obj: misc.$(SRCSUFF) basic.h misc.h constrnt.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\divided.obj: divided.$(SRCSUFF) basic.h misc.h canvas.h divided.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\constrnt.obj: constrnt.$(SRCSUFF) basic.h constrnt.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\composit.obj: composit.$(SRCSUFF) basic.h misc.h canvas.h constrnt.h composit.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\drawn.obj: drawn.$(SRCSUFF) basic.h misc.h canvas.h drawn.h drawnp.h basicp.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\bmpshape.obj: bmpshape.$(SRCSUFF) basic.h misc.h canvas.h bmpshape.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(THISDIR)\mfutils.obj: mfutils.$(SRCSUFF) mfutils.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - -erase $(LIBTARGET) - -DOCSOURCES=$(LOCALDOCDIR)\ogl.tex \ - $(LOCALDOCDIR)\bugs.tex $(LOCALDOCDIR)\changes.tex\ - $(LOCALDOCDIR)\classes.tex $(LOCALDOCDIR)\intro.tex\ - $(LOCALDOCDIR)\topics.tex $(LOCALDOCDIR)\sample.tex - -html: $(DOCDIR)\html\ogl\ogl.htm -hlp: $(DOCDIR)\winhelp\ogl.hlp -pdfrtf: $(DOCDIR)\pdf\ogl.rtf -ps: $(DOCDIR)\ps\ogl.ps - -$(DOCDIR)\winhelp\ogl.hlp: $(LOCALDOCDIR)\ogl.rtf $(LOCALDOCDIR)\ogl.hpj - cd $(LOCALDOCDIR) - -erase ogl.ph - hc ogl - move ogl.hlp $(DOCDIR)\winhelp\ogl.hlp - move ogl.cnt $(DOCDIR)\winhelp\ogl.cnt - cd $(THISDIR) - -$(LOCALDOCDIR)\ogl.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(LOCALDOCDIR)\ogl.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)\pdf\ogl.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -copy *.bmp $(DOCDIR)\pdf - -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\pdf\ogl.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)\html\ogl\ogl.htm: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -mkdir $(DOCDIR)\html\ogl - copy *.gif $(DOCDIR)\html\ogl - -start /w tex2rtf $(LOCALDOCDIR)\ogl.tex $(DOCDIR)\html\ogl\ogl.htm -twice -html - -erase $(DOCDIR)\html\ogl\*.con - -erase $(DOCDIR)\html\ogl\*.ref - cd $(THISDIR) - -$(LOCALDOCDIR)\ogl.dvi: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -latex ogl - -latex ogl - -makeindx ogl - -bibtex ogl - -latex ogl - -latex ogl - cd $(THISDIR) - -$(WXDIR)\docs\ps\ogl.ps: $(LOCALDOCDIR)\ogl.dvi - cd $(LOCALDOCDIR) - -dvips32 -o ogl.ps ogl - move ogl.ps $(WXDIR)\docs\ps\ogl.ps - cd $(THISDIR) - - diff --git a/utils/ogl/src/makefile.wat b/utils/ogl/src/makefile.wat deleted file mode 100644 index 1ba7250c92..0000000000 --- a/utils/ogl/src/makefile.wat +++ /dev/null @@ -1,28 +0,0 @@ -# Objects makefile - -WXDIR = ..\..\.. - -!include $(WXDIR)\src\makewat.env - -EXTRACPPFLAGS=/DPROLOGIO - -OBJECTSLIB = $(WXDIR)\utils\objects\lib\graphics.lib -THISDIR = $(WXDIR)\utils\objects\src - -NAME = graphics -LNK = $(name).lnk - -IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -i=..\..\mfutils\src -i=..\..\prologio\src - -OBJECTS = basic.obj basic2.obj canvas.obj lines.obj misc.obj divided.obj constrnt.obj composit.obj drawn.obj bitmap.obj - -all: $(OBJECTSLIB) - -$(OBJECTSLIB): $(OBJECTS) - *wlib /b /c /n /P=256 $(OBJECTSLIB) $(OBJECTS) - -clean: .SYMBOLIC - -erase *.obj *.bak *.err *.pch $(OBJECTSLIB) *.lbc - - - diff --git a/utils/ogl/src/mfutils.cpp b/utils/ogl/src/mfutils.cpp deleted file mode 100644 index c1d356b106..0000000000 --- a/utils/ogl/src/mfutils.cpp +++ /dev/null @@ -1,1085 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mfutils.cpp -// Purpose: Metafile utillities -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "mfutils.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include -#include - -#include "mfutils.h" -#include - -static char hexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F' }; - -static void DecToHex(int dec, char *buf) -{ - int firstDigit = (int)(dec/16.0); - int secondDigit = (int)(dec - (firstDigit*16.0)); - buf[0] = hexArray[firstDigit]; - buf[1] = hexArray[secondDigit]; - buf[2] = 0; -} - -// 16-bit unsigned integer -static unsigned int getshort(FILE *fp) -{ - int c, c1; - c = getc(fp); c1 = getc(fp); - unsigned int res = ((unsigned int) c) + (((unsigned int) c1) << 8); - return res; -} - -// 16-bit signed integer -static int getsignedshort(FILE *fp) -{ - int c, c1; - c = getc(fp); c1 = getc(fp); - int testRes = ((unsigned int) c) + (((unsigned int) c1) << 8); - unsigned long res1 = ((unsigned int) c) + (((unsigned int) c1) << 8); - int res = 0; - if (res1 > 32767) - res = (int)(res1 - 65536); - else - res = (int)(res1); - return res; -} - -// 32-bit integer -static long getint(FILE *fp) -{ - int c, c1, c2, c3; - c = getc(fp); c1 = getc(fp); c2 = getc(fp); c3 = getc(fp); - long res = (long)((long) c) + - (((long) c1) << 8) + - (((long) c2) << 16) + - (((long) c3) << 24); - return res; -} - - -/* Placeable metafile header -struct mfPLACEABLEHEADER { - DWORD key; // 32-bit - HANDLE hmf; // 16-bit - RECT bbox; // 4x16 bit - WORD inch; // 16-bit - DWORD reserved; // 32-bit - WORD checksum; // 16-bit -}; -*/ - -wxMetaRecord::~wxMetaRecord(void) -{ - if (points) delete[] points; - if (stringParam) delete[] stringParam; -} - -wxXMetaFile::wxXMetaFile(char *file) -{ - ok = FALSE; - top = 0.0; - bottom = 0.0; - left = 0.0; - right = 0.0; - - if (file) - ok = ReadFile(file); -} - -/* - Handle table gdiObjects - ------------ ---------- - [0] wxPen - [1]----param2--- wxBrush - [2] | wxFont - [3] | -> wxPen - - The handle table works as follows. - When a GDI object is created whilst reading in the - metafile, the (e.g.) createpen record is added to the - first free entry in the handle table. The createpen - record's param1 is a pointer to the actual wxPen, and - its param2 is the index into the gdiObjects list, which only - grows and never shrinks (unlike the handle table.) - - When SelectObject(index) is found, the index in the file - refers to the position in the handle table. BUT we then - set param2 to be the position of the wxPen in gdiObjects, - i.e. to param2 of the CreatePen record, itself found in - the handle table. - - When an object is deleted, the entry in the handletable is - NULLed but the gdiObjects entry is not removed (no point, and - allows us to create all GDI objects in advance of playing the - metafile). -*/ - - -static wxMetaRecord *HandleTable[100]; -static int HandleTableSize = 0; - -void DeleteMetaRecordHandle(int index) -{ - HandleTable[index] = NULL; -} - -int AddMetaRecordHandle(wxMetaRecord *record) -{ - for (int i = 0; i < HandleTableSize; i++) - if (!HandleTable[i]) - { - HandleTable[i] = record; - return i; - } - // No free spaces in table, so append. - - HandleTable[HandleTableSize] = record; - HandleTableSize ++; - return (HandleTableSize - 1); -} - -bool wxXMetaFile::ReadFile(char *file) -{ - HandleTableSize = 0; - - FILE *handle = fopen(file, "rb"); - if (!handle) return FALSE; - - // Read placeable metafile header, if any - long key = getint(handle); - - if (key == (long) 0x9AC6CDD7) - { - long hmf = getshort(handle); - int iLeft, iTop, iRight, iBottom; - iLeft = getsignedshort(handle); - iTop = getsignedshort(handle); - iRight = getsignedshort(handle); - iBottom = getsignedshort(handle); - - left = (double)iLeft; - top = (double)iTop; - right = (double)iRight; - bottom = (double)iBottom; - - int inch = getshort(handle); - long reserved = getint(handle); - int checksum = getshort(handle); -/* - double widthInUnits = (double)right - left; - double heightInUnits = (double)bottom - top; - *width = (int)((widthInUnits*1440.0)/inch); - *height = (int)((heightInUnits*1440.0)/inch); -*/ - } - else rewind(handle); - - // Read METAHEADER - int mtType = getshort(handle); - - if (mtType != 1 && mtType != 2) - { - fclose(handle); - return FALSE; - } - - int mtHeaderSize = getshort(handle); - int mtVersion = getshort(handle); - - if (mtVersion != 0x0300 && mtVersion != 0x0100) - { - fclose(handle); - return FALSE; - } - - long mtSize = getint(handle); - int mtNoObjects = getshort(handle); - long mtMaxRecord = getint(handle); - int mtNoParameters = getshort(handle); - - while (!feof(handle)) - { - long rdSize = getint(handle); // 4 bytes - int rdFunction = getshort(handle); // 2 bytes - if (feof(handle)) - break; - - switch (rdFunction) - { - case META_SETBKCOLOR: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETBKCOLOR); - long colorref = getint(handle); // COLORREF - rec->param1 = GetRValue(colorref); - rec->param2 = GetGValue(colorref); - rec->param3 = GetBValue(colorref); - metaRecords.Append(rec); - break; - } - case META_SETBKMODE: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETBKMODE); - rec->param1 = getshort(handle); // Background mode - if (rec->param1 == OPAQUE) rec->param1 = wxSOLID; - else rec->param1 = wxTRANSPARENT; - metaRecords.Append(rec); - break; - } - case META_SETMAPMODE: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETMAPMODE); - rec->param1 = getshort(handle); - metaRecords.Append(rec); - break; - } -// case META_SETROP2: -// case META_SETRELABS: -// case META_SETPOLYFILLMODE: -// case META_SETSTRETCHBLTMODE: -// case META_SETTEXTCHAREXTRA: - case META_SETTEXTCOLOR: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETTEXTCOLOR); - long colorref = getint(handle); // COLORREF - rec->param1 = GetRValue(colorref); - rec->param2 = GetGValue(colorref); - rec->param3 = GetBValue(colorref); - metaRecords.Append(rec); - break; - } -// case META_SETTEXTJUSTIFICATION: - case META_SETWINDOWORG: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETWINDOWORG); - rec->param2 = getshort(handle); - rec->param1 = getshort(handle); - metaRecords.Append(rec); - break; - } - case META_SETWINDOWEXT: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETWINDOWEXT); - rec->param2 = getshort(handle); - rec->param1 = getshort(handle); - metaRecords.Append(rec); - break; - } -// case META_SETVIEWPORTORG: -// case META_SETVIEWPORTEXT: -// case META_OFFSETWINDOWORG: -// case META_SCALEWINDOWEXT: -// case META_OFFSETVIEWPORTORG: -// case META_SCALEVIEWPORTEXT: - case META_LINETO: - { - wxMetaRecord *rec = new wxMetaRecord(META_LINETO); - rec->param1 = getshort(handle); // x1 - rec->param2 = getshort(handle); // y1 - metaRecords.Append(rec); - break; - } - case META_MOVETO: - { - wxMetaRecord *rec = new wxMetaRecord(META_MOVETO); - rec->param1 = getshort(handle); // x1 - rec->param2 = getshort(handle); // y1 - metaRecords.Append(rec); - break; - } - case META_EXCLUDECLIPRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_EXCLUDECLIPRECT); - rec->param4 = getshort(handle); // y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 - metaRecords.Append(rec); - break; - } - case META_INTERSECTCLIPRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_INTERSECTCLIPRECT); - rec->param4 = getshort(handle); // y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 - metaRecords.Append(rec); - break; - } -// case META_ARC: // DO!!! - case META_ELLIPSE: - { - wxMetaRecord *rec = new wxMetaRecord(META_ELLIPSE); - rec->param4 = getshort(handle); // y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 - metaRecords.Append(rec); - break; - } -// case META_FLOODFILL: -// case META_PIE: // DO!!! - case META_RECTANGLE: - { - wxMetaRecord *rec = new wxMetaRecord(META_RECTANGLE); - rec->param4 = getshort(handle); // y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 - metaRecords.Append(rec); - break; - } - case META_ROUNDRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_ROUNDRECT); - rec->param6 = getshort(handle); // width - rec->param5 = getshort(handle); // height - rec->param4 = getshort(handle); // y2 - rec->param3 = getshort(handle); // x2 - rec->param2 = getshort(handle); // y1 - rec->param1 = getshort(handle); // x1 - metaRecords.Append(rec); - break; - } -// case META_PATBLT: -// case META_SAVEDC: - case META_SETPIXEL: - { - wxMetaRecord *rec = new wxMetaRecord(META_SETPIXEL); - rec->param1 = getshort(handle); // x1 - rec->param2 = getshort(handle); // y1 - rec->param3 = getint(handle); // COLORREF - metaRecords.Append(rec); - break; - } -// case META_OFFSETCLIPRGN: - case META_TEXTOUT: - { - wxMetaRecord *rec = new wxMetaRecord(META_TEXTOUT); - int count = getshort(handle); - rec->stringParam = new char[count+1]; - fread((void *)rec->stringParam, sizeof(char), count, handle); - rec->stringParam[count] = 0; - rec->param2 = getshort(handle); // Y - rec->param1 = getshort(handle); // X - metaRecords.Append(rec); - break; - } -/* - case META_EXTTEXTOUT: - { - wxMetaRecord *rec = new wxMetaRecord(META_EXTTEXTOUT); - int cellSpacing = getshort(handle); - int count = getshort(handle); - rec->stringParam = new char[count+1]; - fread((void *)rec->stringParam, sizeof(char), count, handle); - rec->stringParam[count] = 0; - // Rectangle - int rectY2 = getshort(handle); - int rectX2 = getshort(handle); - int rectY1 = getshort(handle); - int rectX1 = getshort(handle); - int rectType = getshort(handle); - rec->param2 = getshort(handle); // Y - rec->param1 = getshort(handle); // X - metaRecords.Append(rec); - break; - } -*/ -// case META_BITBLT: -// case META_STRETCHBLT: - case META_POLYGON: - { - wxMetaRecord *rec = new wxMetaRecord(META_POLYGON); - rec->param1 = getshort(handle); - rec->points = new wxRealPoint[(int)rec->param1]; - for (int i = 0; i < rec->param1; i++) - { - rec->points[i].x = getshort(handle); - rec->points[i].y = getshort(handle); - } - - metaRecords.Append(rec); - break; - } - case META_POLYLINE: - { - wxMetaRecord *rec = new wxMetaRecord(META_POLYLINE); - rec->param1 = (long)getshort(handle); - rec->points = new wxRealPoint[(int)rec->param1]; - for (int i = 0; i < rec->param1; i++) - { - rec->points[i].x = getshort(handle); - rec->points[i].y = getshort(handle); - } - - metaRecords.Append(rec); - break; - } -// case META_ESCAPE: -// case META_RESTOREDC: -// case META_FILLREGION: -// case META_FRAMEREGION: -// case META_INVERTREGION: -// case META_PAINTREGION: -// case META_SELECTCLIPREGION: // DO THIS! - case META_SELECTOBJECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_SELECTOBJECT); - rec->param1 = (long)getshort(handle); // Position of object in gdiObjects list - metaRecords.Append(rec); - // param2 gives the index into gdiObjects, which is different from - // the index into the handle table. - rec->param2 = HandleTable[(int)rec->param1]->param2; - break; - } -// case META_SETTEXTALIGN: -// case META_DRAWTEXT: -// case META_CHORD: -// case META_SETMAPPERFLAGS: -// case META_EXTTEXTOUT: -// case META_SETDIBTODEV: -// case META_SELECTPALETTE: -// case META_REALIZEPALETTE: -// case META_ANIMATEPALETTE: -// case META_SETPALENTRIES: -// case META_POLYPOLYGON: -// case META_RESIZEPALETTE: -// case META_DIBBITBLT: -// case META_DIBSTRETCHBLT: - case META_DIBCREATEPATTERNBRUSH: - { - wxMetaRecord *rec = new wxMetaRecord(META_DIBCREATEPATTERNBRUSH); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } -// case META_STRETCHDIB: -// case META_EXTFLOODFILL: -// case META_RESETDC: -// case META_STARTDOC: -// case META_STARTPAGE: -// case META_ENDPAGE: -// case META_ABORTDOC: -// case META_ENDDOC: - case META_DELETEOBJECT: - { - int index = getshort(handle); - DeleteMetaRecordHandle(index); - break; - } - case META_CREATEPALETTE: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEPALETTE); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEBRUSH: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEBRUSH); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEPATTERNBRUSH: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEPATTERNBRUSH); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEPENINDIRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEPENINDIRECT); - int msStyle = getshort(handle); // Style: 2 bytes - int x = getshort(handle); // X: 2 bytes - int y = getshort(handle); // Y: 2 bytes - long colorref = getint(handle); // COLORREF 4 bytes - - int style; - if (msStyle == PS_DOT) - style = wxDOT; - else if (msStyle == PS_DASH) - style = wxSHORT_DASH; - else if (msStyle == PS_NULL) - style = wxTRANSPARENT; - else style = wxSOLID; - - wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref)); - rec->param1 = (long)wxThePenList->FindOrCreatePen(colour, x, style); - metaRecords.Append(rec); - gdiObjects.Append(rec); - - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - - // For some reason, the size of this record is sometimes 9 words!!! - // instead of the usual 8. So read 2 characters extra. - if (rdSize == 9) - { - (void) getshort(handle); - } - break; - } - case META_CREATEFONTINDIRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEFONTINDIRECT); - int lfHeight = getshort(handle); // 2 bytes - int lfWidth = getshort(handle); // 2 bytes - int lfEsc = getshort(handle); // 2 bytes - int lfOrient = getshort(handle); // 2 bytes - int lfWeight = getshort(handle); // 2 bytes - char lfItalic = getc(handle); // 1 byte - char lfUnderline = getc(handle); // 1 byte - char lfStrikeout = getc(handle); // 1 byte - char lfCharSet = getc(handle); // 1 byte - char lfOutPrecision = getc(handle); // 1 byte - char lfClipPrecision = getc(handle); // 1 byte - char lfQuality = getc(handle); // 1 byte - char lfPitchAndFamily = getc(handle); // 1 byte (18th) - char lfFacename[32]; - // Read the rest of the record, which is total record size - // minus the number of bytes already read (18 record, 6 metarecord - // header) - fread((void *)lfFacename, sizeof(char), (int)((2*rdSize) - 18 - 6), handle); - - int family; - if (lfPitchAndFamily & FF_MODERN) - family = wxMODERN; - else if (lfPitchAndFamily & FF_MODERN) - family = wxMODERN; - else if (lfPitchAndFamily & FF_ROMAN) - family = wxROMAN; - else if (lfPitchAndFamily & FF_SWISS) - family = wxSWISS; - else if (lfPitchAndFamily & FF_DECORATIVE) - family = wxDECORATIVE; - else - family = wxDEFAULT; - - int weight; - if (lfWeight == 300) - weight = wxLIGHT; - else if (lfWeight == 400) - weight = wxNORMAL; - else if (lfWeight == 900) - weight = wxBOLD; - else weight = wxNORMAL; - - int style; - if (lfItalic != 0) - style = wxITALIC; - else - style = wxNORMAL; - - // About how many pixels per inch??? - int logPixelsY = 100; - int pointSize = (int)(lfHeight*72.0/logPixelsY); - - wxFont *theFont = - wxTheFontList->FindOrCreateFont(pointSize, family, style, weight, (lfUnderline != 0)); - - rec->param1 = (long) theFont; - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEBRUSHINDIRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEBRUSHINDIRECT); - int msStyle = getshort(handle); // Style: 2 bytes - long colorref = getint(handle); // COLORREF: 4 bytes - int hatchStyle = getshort(handle); // Hatch style 2 bytes - - int style; - switch (msStyle) - { - case BS_HATCHED: - { - switch (hatchStyle) - { - case HS_BDIAGONAL: - style = wxBDIAGONAL_HATCH; - break; - case HS_DIAGCROSS: - style = wxCROSSDIAG_HATCH; - break; - case HS_FDIAGONAL: - style = wxFDIAGONAL_HATCH; - break; - case HS_HORIZONTAL: - style = wxHORIZONTAL_HATCH; - break; - case HS_VERTICAL: - style = wxVERTICAL_HATCH; - break; - default: - case HS_CROSS: - style = wxCROSS_HATCH; - break; - } - break; - } - case BS_SOLID: - default: - style = wxSOLID; - break; - } - if (msStyle == PS_DOT) - style = wxDOT; - else if (msStyle == PS_DASH) - style = wxSHORT_DASH; - else if (msStyle == PS_NULL) - style = wxTRANSPARENT; - else style = wxSOLID; - - wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref)); - rec->param1 = (long)wxTheBrushList->FindOrCreateBrush(colour, style); - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEBITMAPINDIRECT: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEBITMAPINDIRECT); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEBITMAP: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEBITMAP); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - case META_CREATEREGION: - { - wxMetaRecord *rec = new wxMetaRecord(META_CREATEREGION); - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - - metaRecords.Append(rec); - gdiObjects.Append(rec); - AddMetaRecordHandle(rec); - rec->param2 = (long)(gdiObjects.Number() - 1); - break; - } - default: - { - fread((void *)wxBuffer, sizeof(char), (int)((2*rdSize) - 6), handle); - break; - } - } - } - fclose(handle); - return TRUE; -} - -wxXMetaFile::~wxXMetaFile(void) -{ - wxNode *node = metaRecords.First(); - while (node) - { - wxMetaRecord *rec = (wxMetaRecord *)node->Data(); - delete rec; - wxNode *next = node->Next(); - delete node; - node = next; - } -} - -bool wxXMetaFile::SetClipboard(int width, int height) -{ - return FALSE; -} - -bool wxXMetaFile::Play(wxDC *dc) -{ - wxNode *node = metaRecords.First(); - while (node) - { - wxMetaRecord *rec = (wxMetaRecord *)node->Data(); - int rdFunction = rec->metaFunction; - - switch (rdFunction) - { - case META_SETBKCOLOR: - { - break; - } - case META_SETBKMODE: - { - break; - } - case META_SETMAPMODE: - { - break; - } -// case META_SETROP2: -// case META_SETRELABS: -// case META_SETPOLYFILLMODE: -// case META_SETSTRETCHBLTMODE: -// case META_SETTEXTCHAREXTRA: - case META_SETTEXTCOLOR: - { - break; - } -// case META_SETTEXTJUSTIFICATION: - case META_SETWINDOWORG: - { - break; - } - case META_SETWINDOWEXT: - { - break; - } -// case META_SETVIEWPORTORG: -// case META_SETVIEWPORTEXT: -// case META_OFFSETWINDOWORG: -// case META_SCALEWINDOWEXT: -// case META_OFFSETVIEWPORTORG: -// case META_SCALEVIEWPORTEXT: - case META_LINETO: - { - long x1 = rec->param1; - long y1 = rec->param2; - dc->DrawLine((long) lastX, (long) lastY, x1, y1); - break; - } - case META_MOVETO: - { - lastX = (double)rec->param1; - lastY = (double)rec->param2; - break; - } - case META_EXCLUDECLIPRECT: - { - break; - } - case META_INTERSECTCLIPRECT: - { - break; - } -// case META_ARC: // DO!!! - case META_ELLIPSE: - { - break; - } -// case META_FLOODFILL: -// case META_PIE: // DO!!! - case META_RECTANGLE: - { - dc->DrawRectangle((long)rec->param1, (long)rec->param2, - (long)rec->param3 - rec->param1, - (long)rec->param4 - rec->param2); - break; - } - case META_ROUNDRECT: - { - dc->DrawRoundedRectangle((long)rec->param1, (long)rec->param2, - (long)rec->param3 - rec->param1, - (long)rec->param4 - rec->param2, - (long)rec->param5); - break; - } -// case META_PATBLT: -// case META_SAVEDC: - case META_SETPIXEL: - { -// rec->param1 = getshort(handle); // x1 -// rec->param2 = getshort(handle); // y1 -// rec->param3 = getint(handle); // COLORREF - break; - } -// case META_OFFSETCLIPRGN: - case META_TEXTOUT: - { -/* - int count = getshort(handle); - rec->stringParam = new char[count+1]; - fread((void *)rec->stringParam, sizeof(char), count, handle); - rec->stringParam[count] = 0; - rec->param2 = getshort(handle); // Y - rec->param1 = getshort(handle); // X -*/ - break; - } -// case META_BITBLT: -// case META_STRETCHBLT: - case META_POLYGON: - { -/* - rec->param1 = getshort(handle); - rec->points = new wxRealPoint[(int)rec->param1]; - for (int i = 0; i < rec->param1; i++) - { - rec->points[i].x = getshort(handle); - rec->points[i].y = getshort(handle); - } -*/ - break; - } - case META_POLYLINE: - { -/* - wxMetaRecord *rec = new wxMetaRecord(META_POLYLINE); - rec->param1 = (long)getshort(handle); - rec->points = new wxRealPoint[(int)rec->param1]; - for (int i = 0; i < rec->param1; i++) - { - rec->points[i].x = getshort(handle); - rec->points[i].y = getshort(handle); - } -*/ - break; - } -// case META_ESCAPE: -// case META_RESTOREDC: -// case META_FILLREGION: -// case META_FRAMEREGION: -// case META_INVERTREGION: -// case META_PAINTREGION: -// case META_SELECTCLIPREGION: // DO THIS! - case META_SELECTOBJECT: - { -/* - wxMetaRecord *rec = new wxMetaRecord(META_SELECTOBJECT); - rec->param1 = (long)getshort(handle); // Position of object in gdiObjects list -*/ - break; - } -// case META_SETTEXTALIGN: -// case META_DRAWTEXT: -// case META_CHORD: -// case META_SETMAPPERFLAGS: -// case META_EXTTEXTOUT: -// case META_SETDIBTODEV: -// case META_SELECTPALETTE: -// case META_REALIZEPALETTE: -// case META_ANIMATEPALETTE: -// case META_SETPALENTRIES: -// case META_POLYPOLYGON: -// case META_RESIZEPALETTE: -// case META_DIBBITBLT: -// case META_DIBSTRETCHBLT: - case META_DIBCREATEPATTERNBRUSH: - { -/* - fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle); -*/ - break; - } -// case META_STRETCHDIB: -// case META_EXTFLOODFILL: -// case META_RESETDC: -// case META_STARTDOC: -// case META_STARTPAGE: -// case META_ENDPAGE: -// case META_ABORTDOC: -// case META_ENDDOC: -// case META_DELETEOBJECT: // DO!! - case META_CREATEPALETTE: - { -/* - wxMetaRecord *rec = new wxMetaRecord(META_CREATEPALETTE); - fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle); -*/ - break; - } - case META_CREATEBRUSH: - { -/* - fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle); -*/ - break; - } - case META_CREATEPATTERNBRUSH: - { -/* - fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle); -*/ - break; - } - case META_CREATEPENINDIRECT: - { -/* - int msStyle = getshort(handle); // Style: 2 bytes - int x = getshort(handle); // X: 2 bytes - int y = getshort(handle); // Y: 2 bytes - int colorref = getint(handle); // COLORREF 4 bytes - - int style; - if (msStyle == PS_DOT) - style = wxDOT; - else if (msStyle == PS_DASH) - style = wxSHORT_DASH; - else if (msStyle == PS_NULL) - style = wxTRANSPARENT; - else style = wxSOLID; - - wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref)); - rec->param1 = (long)wxThePenList->FindOrCreatePen(&colour, x, style); -*/ - break; - } - case META_CREATEFONTINDIRECT: - { -/* - int lfHeight = getshort(handle); - int lfWidth = getshort(handle); - int lfEsc = getshort(handle); - int lfOrient = getshort(handle); - int lfWeight = getshort(handle); - char lfItalic = getc(handle); - char lfUnderline = getc(handle); - char lfStrikeout = getc(handle); - char lfCharSet = getc(handle); - char lfOutPrecision = getc(handle); - char lfClipPrecision = getc(handle); - char lfQuality = getc(handle); - char lfPitchAndFamily = getc(handle); - char lfFacename[32]; - fread((void *)lfFacename, sizeof(char), 32, handle); - - int family; - if (lfPitchAndFamily & FF_MODERN) - family = wxMODERN; - else if (lfPitchAndFamily & FF_MODERN) - family = wxMODERN; - else if (lfPitchAndFamily & FF_ROMAN) - family = wxROMAN; - else if (lfPitchAndFamily & FF_SWISS) - family = wxSWISS; - else if (lfPitchAndFamily & FF_DECORATIVE) - family = wxDECORATIVE; - else - family = wxDEFAULT; - - int weight; - if (lfWeight == 300) - weight = wxLIGHT; - else if (lfWeight == 400) - weight = wxNORMAL; - else if (lfWeight == 900) - weight = wxBOLD; - else weight = wxNORMAL; - - int style; - if ((bool)lfItalic) - style = wxITALIC; - else - style = wxNORMAL; - - // About how many pixels per inch??? - int logPixelsY = 100; - int pointSize = (int)(lfHeight*72.0/logPixelsY); - - wxFont *theFont = - wxTheFontList->FindOrCreateFont(pointSize, family, style, weight, (bool)lfUnderline); - - rec->param1 = (long)theFont; -*/ - break; - } - case META_CREATEBRUSHINDIRECT: - { -/* - int msStyle = getshort(handle); // Style: 2 bytes - int colorref = getint(handle); // COLORREF: 4 bytes - int hatchStyle = getshort(handle); // Hatch style 2 bytes - - int style; - if (msStyle == PS_DOT) - style = wxDOT; - else if (msStyle == PS_DASH) - style = wxSHORT_DASH; - else if (msStyle == PS_NULL) - style = wxTRANSPARENT; - else style = wxSOLID; - - wxColour colour(GetRValue(colorref), GetGValue(colorref), GetBValue(colorref)); - rec->param1 = (long)wxTheBrushList->FindOrCreateBrush(&colour, wxSOLID); -*/ - break; - } - case META_CREATEBITMAPINDIRECT: - { -/* - fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle); -*/ - break; - } - case META_CREATEBITMAP: - { -/* - fread((void *)wxBuffer, sizeof(char), (int)(rdSize - 3), handle); -*/ - break; - } - case META_CREATEREGION: - { - dc->DestroyClippingRegion(); -/* - rec->param1 = getshort(handle); // Style: 2 bytes -*/ - break; - } - default: - { - break; - } - } - node = node->Next(); - } - return TRUE; -} - diff --git a/utils/ogl/src/mfutils.h b/utils/ogl/src/mfutils.h deleted file mode 100644 index b070e1781d..0000000000 --- a/utils/ogl/src/mfutils.h +++ /dev/null @@ -1,211 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mfutils.h -// Purpose: Metafile utilities: reading a placeable metafile independently -// of Windows. -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _MFUTILS_H_ -#define _MFUTILS_H_ - -#ifdef __GNUG__ -#pragma interface "mfutils.h" -#endif - -#include - -#ifndef GetRValue -#define GetRValue(rgb) ((unsigned char)(rgb)) -#define GetGValue(rgb) ((unsigned char)(((int)(rgb)) >> 8)) -#define GetBValue(rgb) ((unsigned char)((rgb)>>16)) -#endif - -/* Metafile Functions */ -/* Win32s/Borland need these macros, although META_SETBKCOLOR is defined */ -#if 1 // !defined(META_SETBKCOLOR) // || defined(WIN32) - -#define META_SETBKCOLOR 0x0201 -#define META_SETBKMODE 0x0102 -#define META_SETMAPMODE 0x0103 -#define META_SETROP2 0x0104 -#define META_SETRELABS 0x0105 -#define META_SETPOLYFILLMODE 0x0106 -#define META_SETSTRETCHBLTMODE 0x0107 -#define META_SETTEXTCHAREXTRA 0x0108 -#define META_SETTEXTCOLOR 0x0209 -#define META_SETTEXTJUSTIFICATION 0x020A -#define META_SETWINDOWORG 0x020B -#define META_SETWINDOWEXT 0x020C -#define META_SETVIEWPORTORG 0x020D -#define META_SETVIEWPORTEXT 0x020E -#define META_OFFSETWINDOWORG 0x020F -#define META_SCALEWINDOWEXT 0x0410 -#define META_OFFSETVIEWPORTORG 0x0211 -#define META_SCALEVIEWPORTEXT 0x0412 -#define META_LINETO 0x0213 -#define META_MOVETO 0x0214 -#define META_EXCLUDECLIPRECT 0x0415 -#define META_INTERSECTCLIPRECT 0x0416 -#define META_ARC 0x0817 -#define META_ELLIPSE 0x0418 -#define META_FLOODFILL 0x0419 -#define META_PIE 0x081A -#define META_RECTANGLE 0x041B -#define META_ROUNDRECT 0x061C -#define META_PATBLT 0x061D -#define META_SAVEDC 0x001E -#define META_SETPIXEL 0x041F -#define META_OFFSETCLIPRGN 0x0220 -#define META_TEXTOUT 0x0521 -#define META_BITBLT 0x0922 -#define META_STRETCHBLT 0x0B23 -#define META_POLYGON 0x0324 -#define META_POLYLINE 0x0325 -#define META_ESCAPE 0x0626 -#define META_RESTOREDC 0x0127 -#define META_FILLREGION 0x0228 -#define META_FRAMEREGION 0x0429 -#define META_INVERTREGION 0x012A -#define META_PAINTREGION 0x012B -#define META_SELECTCLIPREGION 0x012C -#define META_SELECTOBJECT 0x012D -#define META_SETTEXTALIGN 0x012E -#define META_DRAWTEXT 0x062F - -#define META_CHORD 0x0830 -#define META_SETMAPPERFLAGS 0x0231 -#define META_EXTTEXTOUT 0x0a32 -#define META_SETDIBTODEV 0x0d33 -#define META_SELECTPALETTE 0x0234 -#define META_REALIZEPALETTE 0x0035 -#define META_ANIMATEPALETTE 0x0436 -#define META_SETPALENTRIES 0x0037 -#define META_POLYPOLYGON 0x0538 -#define META_RESIZEPALETTE 0x0139 - -#define META_DIBBITBLT 0x0940 -#define META_DIBSTRETCHBLT 0x0b41 -#define META_DIBCREATEPATTERNBRUSH 0x0142 -#define META_STRETCHDIB 0x0f43 - -#define META_EXTFLOODFILL 0x0548 - -#define META_RESETDC 0x014C -#define META_STARTDOC 0x014D -#define META_STARTPAGE 0x004F -#define META_ENDPAGE 0x0050 -#define META_ABORTDOC 0x0052 -#define META_ENDDOC 0x005E - -#define META_DELETEOBJECT 0x01f0 - -#define META_CREATEPALETTE 0x00f7 -#define META_CREATEBRUSH 0x00F8 -#define META_CREATEPATTERNBRUSH 0x01F9 -#define META_CREATEPENINDIRECT 0x02FA -#define META_CREATEFONTINDIRECT 0x02FB -#define META_CREATEBRUSHINDIRECT 0x02FC -#define META_CREATEBITMAPINDIRECT 0x02FD -#define META_CREATEBITMAP 0x06FE -#define META_CREATEREGION 0x06FF - -/* Background Modes */ -#define TRANSPARENT 1 -#define OPAQUE 2 - -/* Pen Styles */ -#define PS_SOLID 0 -#define PS_DASH 1 -#define PS_DOT 2 -#define PS_DASHDOT 3 -#define PS_DASHDOTDOT 4 -#define PS_NULL 5 -#define PS_INSIDEFRAME 6 - -/* PitchAndFamily family values (high 4 bits) */ -/* Win32s/Borland don't need this */ -#ifndef FF_DONTCARE // !defined(__BORLANDC__) && !defined(WIN32) -#define FF_DONTCARE 0x00 -#define FF_ROMAN 0x10 -#define FF_SWISS 0x20 -#define FF_MODERN 0x30 -#define FF_SCRIPT 0x40 -#define FF_DECORATIVE 0x50 -#endif - -/* Brush Styles */ -#define BS_SOLID 0 -#define BS_NULL 1 -#define BS_HOLLOW BS_NULL -#define BS_HATCHED 2 -#define BS_PATTERN 3 -#define BS_INDEXED 4 -#define BS_DIBPATTERN 5 - -/* Hatch Styles */ -#define HS_HORIZONTAL 0 -#define HS_VERTICAL 1 -#define HS_FDIAGONAL 2 -#define HS_BDIAGONAL 3 -#define HS_CROSS 4 -#define HS_DIAGCROSS 5 - -#endif // metafile functions - -class wxMetaRecord: public wxObject -{ - public: - int metaFunction; - long param1; - long param2; - long param3; - long param4; - long param5; - long param6; - long param7; - long param8; - char *stringParam; - wxRealPoint *points; - - wxMetaRecord(int fun) - { - metaFunction = fun; points = NULL; stringParam = NULL; - param1 = 0; - } - ~wxMetaRecord(void); -}; - -class wxXMetaFile: public wxObject -{ - public: - double lastX; - double lastY; - bool ok; - - double left; - double top; - double right; - double bottom; - - wxList metaRecords; - wxList gdiObjects; // List of wxMetaRecord objects created with Create..., - // referenced by position in list by SelectObject - wxXMetaFile(char *file = NULL); - ~wxXMetaFile(void); - - // After this is called, the metafile cannot be used for anything - // since it is now owned by the clipboard. - bool SetClipboard(int width = 0, int height = 0); - - bool Play(wxDC *dc); - inline bool Ok(void) const { return ok; } - bool ReadFile(char *file); -}; - -#endif - // _MFUTILS_H_ diff --git a/utils/ogl/src/misc.cpp b/utils/ogl/src/misc.cpp deleted file mode 100644 index 50ed2669dc..0000000000 --- a/utils/ogl/src/misc.cpp +++ /dev/null @@ -1,906 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: misc.cpp -// Purpose: Miscellaneous OGL support functions -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "misc.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#include - -#if wxUSE_IOSTREAMH -#include -#else -#include -#endif -#include -#include -#include - -#include "basic.h" -#include "basicp.h" -#include "misc.h" -#include "constrnt.h" -#include "composit.h" - -wxFont* g_oglNormalFont; -wxPen* g_oglBlackPen; -wxPen* g_oglWhiteBackgroundPen; -wxPen* g_oglTransparentPen; -wxBrush* g_oglWhiteBackgroundBrush; -wxPen* g_oglBlackForegroundPen; -wxCursor* g_oglBullseyeCursor = NULL; - -char* oglBuffer = NULL; - -wxList oglObjectCopyMapping(wxKEY_INTEGER); - -void wxOGLInitialize() -{ - g_oglBullseyeCursor = new wxCursor(wxCURSOR_BULLSEYE); - - g_oglNormalFont = new wxFont(10, wxSWISS, wxNORMAL, wxNORMAL); - - g_oglBlackPen = new wxPen("BLACK", 1, wxSOLID); - - g_oglWhiteBackgroundPen = new wxPen("WHITE", 1, wxSOLID); - g_oglTransparentPen = new wxPen("WHITE", 1, wxTRANSPARENT); - g_oglWhiteBackgroundBrush = new wxBrush("WHITE", wxSOLID); - g_oglBlackForegroundPen = new wxPen("BLACK", 1, wxSOLID); - - OGLInitializeConstraintTypes(); - - // Initialize big buffer used when writing images - oglBuffer = new char[3000]; - - if (!oglPopupDivisionMenu) - { - oglPopupDivisionMenu = new wxMenu("", (wxFunction)oglGraphicsDivisionMenuProc); - oglPopupDivisionMenu->Append(DIVISION_MENU_SPLIT_HORIZONTALLY, "Split horizontally"); - oglPopupDivisionMenu->Append(DIVISION_MENU_SPLIT_VERTICALLY, "Split vertically"); - oglPopupDivisionMenu->AppendSeparator(); - oglPopupDivisionMenu->Append(DIVISION_MENU_EDIT_LEFT_EDGE, "Edit left edge"); - oglPopupDivisionMenu->Append(DIVISION_MENU_EDIT_TOP_EDGE, "Edit top edge"); - } -} - -void wxOGLCleanUp() -{ - if (oglBuffer) - { - delete[] oglBuffer; - oglBuffer = NULL; - } - oglBuffer = NULL; - if (oglPopupDivisionMenu) - { - delete oglPopupDivisionMenu; - oglPopupDivisionMenu = NULL; - } - if (g_oglBullseyeCursor) - { - delete g_oglBullseyeCursor; - g_oglBullseyeCursor = NULL; - } - - if (g_oglNormalFont) - { - delete g_oglNormalFont; - g_oglNormalFont = NULL; - } - if (g_oglBlackPen) - { - delete g_oglBlackPen; - g_oglBlackPen = NULL; - } - if (g_oglWhiteBackgroundPen) - { - delete g_oglWhiteBackgroundPen; - g_oglWhiteBackgroundPen = NULL; - } - if (g_oglTransparentPen) - { - delete g_oglTransparentPen; - g_oglTransparentPen = NULL; - } - if (g_oglWhiteBackgroundBrush) - { - delete g_oglWhiteBackgroundBrush; - g_oglWhiteBackgroundBrush = NULL; - } - if (g_oglBlackForegroundPen) - { - delete g_oglBlackForegroundPen; - g_oglBlackForegroundPen = NULL; - } - - OGLCleanUpConstraintTypes(); -} - -wxFont *oglMatchFont(int point_size) -{ - wxFont *font = wxTheFontList->FindOrCreateFont(point_size, wxSWISS, wxNORMAL, wxNORMAL); -#if 0 - switch (point_size) - { - case 4: - font = swiss_font_4; - break; - case 6: - font = swiss_font_6; - break; - case 8: - font = swiss_font_8; - break; - case 12: - font = swiss_font_12; - break; - case 14: - font = swiss_font_14; - break; - case 18: - font = swiss_font_18; - break; - case 24: - font = swiss_font_24; - break; - default: - case 10: - font = swiss_font_10; - break; - } -#endif - return font; -} - -int FontSizeDialog(wxFrame *parent, int old_size) -{ - if (old_size <= 0) - old_size = 10; - char buf[40]; - sprintf(buf, "%d", old_size); - wxString ans = wxGetTextFromUser("Enter point size", "Font size", buf, parent); - if (ans == "") - return 0; - - int new_size = atoi(ans); - if ((new_size <= 0) || (new_size > 40)) - { - wxMessageBox("Invalid point size!", "Error", wxOK); - return 0; - } - return new_size; -/* - char *strings[8]; - strings[0] = "4"; - strings[1] = "6"; - strings[2] = "8"; - strings[3] = "10"; - strings[4] = "12"; - strings[5] = "14"; - strings[6] = "18"; - strings[7] = "24"; - char *ans = wxGetSingleChoice("Choose", "Choose a font size", 8, strings, parent); - if (ans) - { - int size; - sscanf(ans, "%d", &size); - return oglMatchFont(size); - } - else return NULL; -*/ -} - -// Centre a list of strings in the given box. xOffset and yOffset are the -// the positions that these lines should be relative to, and this might be -// the same as m_xpos, m_ypos, but might be zero if formatting from left-justifying. -void oglCentreText(wxDC& dc, wxList *text_list, - double m_xpos, double m_ypos, double width, double height, - int formatMode) -{ - int n = text_list->Number(); - - if (!text_list || (n == 0)) - return; - - // First, get maximum dimensions of box enclosing text - - long char_height = 0; - long max_width = 0; - long current_width = 0; - - // Store text extents for speed - double *widths = new double[n]; - - wxNode *current = text_list->First(); - int i = 0; - while (current) - { - wxShapeTextLine *line = (wxShapeTextLine *)current->Data(); - dc.GetTextExtent(line->GetText(), ¤t_width, &char_height); - widths[i] = current_width; - - if (current_width > max_width) - max_width = current_width; - current = current->Next(); - i ++; - } - - double max_height = n*char_height; - - double xoffset, yoffset, xOffset, yOffset; - - if (formatMode & FORMAT_CENTRE_VERT) - { - if (max_height < height) - yoffset = (double)(m_ypos - (height/2.0) + (height - max_height)/2.0); - else - yoffset = (double)(m_ypos - (height/2.0)); - yOffset = m_ypos; - } - else - { - yoffset = 0.0; - yOffset = 0.0; - } - - if (formatMode & FORMAT_CENTRE_HORIZ) - { - xoffset = (double)(m_xpos - width/2.0); - xOffset = m_xpos; - } - else - { - xoffset = 0.0; - xOffset = 0.0; - } - - current = text_list->First(); - i = 0; - - while (current) - { - wxShapeTextLine *line = (wxShapeTextLine *)current->Data(); - - double x; - if ((formatMode & FORMAT_CENTRE_HORIZ) && (widths[i] < width)) - x = (double)((width - widths[i])/2.0 + xoffset); - else - x = xoffset; - double y = (double)(i*char_height + yoffset); - - line->SetX( x - xOffset ); line->SetY( y - yOffset ); - current = current->Next(); - i ++; - } - - delete widths; -} - -// Centre a list of strings in the given box -void oglCentreTextNoClipping(wxDC& dc, wxList *text_list, - double m_xpos, double m_ypos, double width, double height) -{ - int n = text_list->Number(); - - if (!text_list || (n == 0)) - return; - - // First, get maximum dimensions of box enclosing text - - long char_height = 0; - long max_width = 0; - long current_width = 0; - - // Store text extents for speed - double *widths = new double[n]; - - wxNode *current = text_list->First(); - int i = 0; - while (current) - { - wxShapeTextLine *line = (wxShapeTextLine *)current->Data(); - dc.GetTextExtent(line->GetText(), ¤t_width, &char_height); - widths[i] = current_width; - - if (current_width > max_width) - max_width = current_width; - current = current->Next(); - i ++; - } - - double max_height = n*char_height; - - double yoffset = (double)(m_ypos - (height/2.0) + (height - max_height)/2.0); - - double xoffset = (double)(m_xpos - width/2.0); - - current = text_list->First(); - i = 0; - - while (current) - { - wxShapeTextLine *line = (wxShapeTextLine *)current->Data(); - - double x = (double)((width - widths[i])/2.0 + xoffset); - double y = (double)(i*char_height + yoffset); - - line->SetX( x - m_xpos ); line->SetY( y - m_ypos ); - current = current->Next(); - i ++; - } - delete widths; -} - -void oglGetCentredTextExtent(wxDC& dc, wxList *text_list, - double m_xpos, double m_ypos, double width, double height, - double *actual_width, double *actual_height) -{ - int n = text_list->Number(); - - if (!text_list || (n == 0)) - { - *actual_width = 0; - *actual_height = 0; - return; - } - - // First, get maximum dimensions of box enclosing text - - long char_height = 0; - long max_width = 0; - long current_width = 0; - - wxNode *current = text_list->First(); - int i = 0; - while (current) - { - wxShapeTextLine *line = (wxShapeTextLine *)current->Data(); - dc.GetTextExtent(line->GetText(), ¤t_width, &char_height); - - if (current_width > max_width) - max_width = current_width; - current = current->Next(); - i ++; - } - - *actual_height = n*char_height; - *actual_width = max_width; -} - -// Format a string to a list of strings that fit in the given box. -// Interpret %n and 10 or 13 as a new line. -wxStringList *oglFormatText(wxDC& dc, const wxString& text, double width, double height, int formatMode) -{ - // First, parse the string into a list of words - wxStringList word_list; - - // Make new lines into NULL strings at this point - int i = 0; int j = 0; int len = strlen(text); - char word[200]; word[0] = 0; - bool end_word = FALSE; bool new_line = FALSE; - while (i < len) - { - switch (text[i]) - { - case '%': - { - i ++; - if (i == len) - { word[j] = '%'; j ++; } - else - { - if (text[i] == 'n') - { new_line = TRUE; end_word = TRUE; i++; } - else - { word[j] = '%'; j ++; word[j] = text[i]; j ++; i ++; } - } - break; - } - case 10: - { - new_line = TRUE; end_word = TRUE; i++; - break; - } - case 13: - { - new_line = TRUE; end_word = TRUE; i++; - } - case ' ': - { - end_word = TRUE; - i ++; - break; - } - default: - { - word[j] = text[i]; - j ++; i ++; - break; - } - } - if (i == len) end_word = TRUE; - if (end_word) - { - word[j] = 0; - j = 0; - word_list.Add(word); - end_word = FALSE; - } - if (new_line) - { - word_list.Append(NULL); - new_line = FALSE; - } - } - // Now, make a list of strings which can fit in the box - wxStringList *string_list = new wxStringList; - - char buffer[400]; - buffer[0] = 0; - wxNode *node = word_list.First(); - long x, y; - - while (node) - { - wxString oldBuffer(buffer); - - char *s = (char *)node->Data(); - if (!s) - { - // FORCE NEW LINE - if (strlen(buffer) > 0) - string_list->Add(buffer); - - buffer[0] = 0; - } - else - { - if (buffer[0] != 0) - strcat(buffer, " "); - - strcat(buffer, s); - dc.GetTextExtent(buffer, &x, &y); - - // Don't fit within the bounding box if we're fitting shape to contents - if ((x > width) && !(formatMode & FORMAT_SIZE_TO_CONTENTS)) - { - // Deal with first word being wider than box - if (oldBuffer.Length() > 0) - string_list->Add(oldBuffer); - - buffer[0] = 0; - strcat(buffer, s); - } - } - - node = node->Next(); - } - if (buffer[0] != 0) - string_list->Add(buffer); - - return string_list; -} - -void oglDrawFormattedText(wxDC& dc, wxList *text_list, - double m_xpos, double m_ypos, double width, double height, - int formatMode) -{ - double xoffset, yoffset; - if (formatMode & FORMAT_CENTRE_HORIZ) - xoffset = m_xpos; - else - xoffset = (double)(m_xpos - (width / 2.0)); - - if (formatMode & FORMAT_CENTRE_VERT) - yoffset = m_ypos; - else - yoffset = (double)(m_ypos - (height / 2.0)); - - dc.SetClippingRegion( - (long)(m_xpos - width/2.0), (long)(m_ypos - height/2.0), - (long)width, (long)height); - - wxNode *current = text_list->First(); - while (current) - { - wxShapeTextLine *line = (wxShapeTextLine *)current->Data(); - - dc.DrawText(line->GetText(), WXROUND(xoffset + line->GetX()), WXROUND(yoffset + line->GetY())); - current = current->Next(); - } - - dc.DestroyClippingRegion(); -} - -/* - * Find centroid given list of points comprising polyline - * - */ - -void oglFindPolylineCentroid(wxList *points, double *x, double *y) -{ - double xcount = 0; - double ycount = 0; - - wxNode *node = points->First(); - while (node) - { - wxRealPoint *point = (wxRealPoint *)node->Data(); - xcount += point->x; - ycount += point->y; - node = node->Next(); - } - - *x = (xcount/points->Number()); - *y = (ycount/points->Number()); -} - -/* - * Check that (x1, y1) -> (x2, y2) hits (x3, y3) -> (x4, y4). - * If so, ratio1 gives the proportion along the first line - * that the intersection occurs (or something like that). - * Used by functions below. - * - */ -void oglCheckLineIntersection(double x1, double y1, double x2, double y2, - double x3, double y3, double x4, double y4, - double *ratio1, double *ratio2) -{ - double denominator_term = (y4 - y3)*(x2 - x1) - (y2 - y1)*(x4 - x3); - double numerator_term = (x3 - x1)*(y4 - y3) + (x4 - x3)*(y1 - y3); - - double line_constant; - double length_ratio = 1.0; - double k_line = 1.0; - - // Check for parallel lines - if ((denominator_term < 0.005) && (denominator_term > -0.005)) - line_constant = -1.0; - else - line_constant = numerator_term/denominator_term; - - // Check for intersection - if ((line_constant < 1.0) && (line_constant > 0.0)) - { - // Now must check that other line hits - if (((y4 - y3) < 0.005) && ((y4 - y3) > -0.005)) - k_line = ((x1 - x3) + line_constant*(x2 - x1))/(x4 - x3); - else - k_line = ((y1 - y3) + line_constant*(y2 - y1))/(y4 - y3); - - if ((k_line >= 0.0) && (k_line < 1.0)) - length_ratio = line_constant; - else - k_line = 1.0; - } - *ratio1 = length_ratio; - *ratio2 = k_line; -} - -/* - * Find where (x1, y1) -> (x2, y2) hits one of the lines in xvec, yvec. - * (*x3, *y3) is the point where it hits. - * - */ -void oglFindEndForPolyline(double n, double xvec[], double yvec[], - double x1, double y1, double x2, double y2, double *x3, double *y3) -{ - int i; - double lastx = xvec[0]; - double lasty = yvec[0]; - - double min_ratio = 1.0; - double line_ratio; - double other_ratio; - - for (i = 1; i < n; i++) - { - oglCheckLineIntersection(x1, y1, x2, y2, lastx, lasty, xvec[i], yvec[i], - &line_ratio, &other_ratio); - lastx = xvec[i]; - lasty = yvec[i]; - - if (line_ratio < min_ratio) - min_ratio = line_ratio; - } - - // Do last (implicit) line if last and first doubles are not identical - if (!(xvec[0] == lastx && yvec[0] == lasty)) - { - oglCheckLineIntersection(x1, y1, x2, y2, lastx, lasty, xvec[0], yvec[0], - &line_ratio, &other_ratio); - - if (line_ratio < min_ratio) - min_ratio = line_ratio; - } - - *x3 = (x1 + (x2 - x1)*min_ratio); - *y3 = (y1 + (y2 - y1)*min_ratio); - -} - -/* - * Find where the line hits the box. - * - */ - -void oglFindEndForBox(double width, double height, - double x1, double y1, // Centre of box (possibly) - double x2, double y2, // other end of line - double *x3, double *y3) // End on box edge -{ - double xvec[5]; - double yvec[5]; - - xvec[0] = (double)(x1 - width/2.0); - yvec[0] = (double)(y1 - height/2.0); - xvec[1] = (double)(x1 - width/2.0); - yvec[1] = (double)(y1 + height/2.0); - xvec[2] = (double)(x1 + width/2.0); - yvec[2] = (double)(y1 + height/2.0); - xvec[3] = (double)(x1 + width/2.0); - yvec[3] = (double)(y1 - height/2.0); - xvec[4] = (double)(x1 - width/2.0); - yvec[4] = (double)(y1 - height/2.0); - - oglFindEndForPolyline(5, xvec, yvec, x2, y2, x1, y1, x3, y3); -} - -/* - * Find where the line hits the circle. - * - */ - -void oglFindEndForCircle(double radius, - double x1, double y1, // Centre of circle - double x2, double y2, // Other end of line - double *x3, double *y3) -{ - double H = (double)sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); - - if (H == 0.0) - { - *x3 = x1; - *y3 = y1; - } - else - { - *y3 = radius * (y2 - y1)/H + y1; - *x3 = radius * (x2 - x1)/H + x1; - } -} - -/* - * Given the line (x1, y1) -> (x2, y2), and an arrow size of given length and width, - * return the position of the tip of the arrow and the left and right vertices of the arrow. - * - */ - -void oglGetArrowPoints(double x1, double y1, double x2, double y2, - double length, double width, - double *tip_x, double *tip_y, - double *side1_x, double *side1_y, - double *side2_x, double *side2_y) -{ - double l = (double)sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1)); - - if (l < 0.01) - l = (double) 0.01; - - double i_bar = (x2 - x1)/l; - double j_bar = (y2 - y1)/l; - - double x3 = (- length*i_bar) + x2; - double y3 = (- length*j_bar) + y2; - - *side1_x = width*(-j_bar) + x3; - *side1_y = width*i_bar + y3; - - *side2_x = -width*(-j_bar) + x3; - *side2_y = -width*i_bar + y3; - - *tip_x = x2; *tip_y = y2; -} - -/* - * Given an ellipse and endpoints of a line, returns the point at which - * the line touches the ellipse in values x4, y4. - * This function assumes that the centre of the ellipse is at x1, y1, and the - * ellipse has a width of width1 and a height of height1. It also assumes you are - * wanting to draw an arc FROM point x2, y2 TOWARDS point x3, y3. - * This function calculates the x,y coordinates of the intersection point of - * the arc with the ellipse. - * Author: Ian Harrison - */ - -void oglDrawArcToEllipse(double x1, double y1, double width1, double height1, double x2, double y2, double x3, double y3, - double *x4, double *y4) -{ - double a1 = (double)(width1/2.0); - double b1 = (double)(height1/2.0); - - // These are required to give top left x and y coordinates for DrawEllipse -// double top_left_x1 = (double)(x1 - a1); -// double top_left_y1 = (double)(y1 - b1); -/* - // Check for vertical line - if (fabs(x2 - x3) < 0.05) - { - *x4 = x3; - if (y2 < y3) - *y4 = (double)(y1 - b1); - else - *y4 = (double)(y1 + b1); - return; - } -*/ - // Check that x2 != x3 - if (fabs(x2 - x3) < 0.05) - { - *x4 = x2; - if (y3 > y2) - *y4 = (double)(y1 - sqrt((b1*b1 - (((x2-x1)*(x2-x1))*(b1*b1)/(a1*a1))))); - else - *y4 = (double)(y1 + sqrt((b1*b1 - (((x2-x1)*(x2-x1))*(b1*b1)/(a1*a1))))); - return; - } - - // Calculate the x and y coordinates of the point where arc intersects ellipse - - double A, B, C, D, E, F, G, H, K; - double ellipse1_x, ellipse1_y; - - A = (double)(1/(a1 * a1)); - B = (double)((y3 - y2) * (y3 - y2)) / ((x3 - x2) * (x3 - x2) * b1 * b1); - C = (double)(2 * (y3 - y2) * (y2 - y1)) / ((x3 - x2) * b1 * b1); - D = (double)((y2 - y1) * (y2 - y1)) / (b1 * b1); - E = (double)(A + B); - F = (double)(C - (2 * A * x1) - (2 * B * x2)); - G = (double)((A * x1 * x1) + (B * x2 * x2) - (C * x2) + D - 1); - H = (double)((y3 - y2) / (x3 - x2)); - K = (double)((F * F) - (4 * E * G)); - - if (K >= 0) - // In this case the line intersects the ellipse, so calculate intersection - { - if(x2 >= x1) - { - ellipse1_x = (double)(((F * -1) + sqrt(K)) / (2 * E)); - ellipse1_y = (double)((H * (ellipse1_x - x2)) + y2); - } - else - { - ellipse1_x = (double)(((F * -1) - sqrt(K)) / (2 * E)); - ellipse1_y = (double)((H * (ellipse1_x - x2)) + y2); - } - } - else - // in this case, arc does not intersect ellipse, so just draw arc - { - ellipse1_x = x3; - ellipse1_y = y3; - } - *x4 = ellipse1_x; - *y4 = ellipse1_y; - -/* - // Draw a little circle (radius = 2) at the end of the arc where it hits - // the ellipse . - - double circle_x = ellipse1_x - 2.0; - double circle_y = ellipse1_y - 2.0; - m_canvas->DrawEllipse(circle_x, circle_y, 4.0, 4.0); -*/ -} - -// Update a list item from a list of strings -void UpdateListBox(wxListBox *item, wxList *list) -{ - item->Clear(); - if (!list) - return; - - wxNode *node = list->First(); - while (node) - { - char *s = (char *)node->Data(); - item->Append(s); - node = node->Next(); - } -} - -bool oglRoughlyEqual(double val1, double val2, double tol) -{ - return ( (val1 < (val2 + tol)) && (val1 > (val2 - tol)) && - (val2 < (val1 + tol)) && (val2 > (val1 - tol))); -} - -/* - * Hex<->Dec conversion - */ - -// Array used in DecToHex conversion routine. -static char sg_HexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F' }; - -// Convert 2-digit hex number to decimal -unsigned int oglHexToDec(char* buf) -{ - int firstDigit, secondDigit; - - if (buf[0] >= 'A') - firstDigit = buf[0] - 'A' + 10; - else - firstDigit = buf[0] - '0'; - - if (buf[1] >= 'A') - secondDigit = buf[1] - 'A' + 10; - else - secondDigit = buf[1] - '0'; - - return firstDigit * 16 + secondDigit; -} - -// Convert decimal integer to 2-character hex string -void oglDecToHex(unsigned int dec, char *buf) -{ - int firstDigit = (int)(dec/16.0); - int secondDigit = (int)(dec - (firstDigit*16.0)); - buf[0] = sg_HexArray[firstDigit]; - buf[1] = sg_HexArray[secondDigit]; - buf[2] = 0; -} - -// 3-digit hex to wxColour -wxColour oglHexToColour(const wxString& hex) -{ - if (hex.Length() == 6) - { - char buf[7]; - strncpy(buf, hex, 7); - unsigned int r = oglHexToDec((char *)buf); - unsigned int g = oglHexToDec((char *)(buf+2)); - unsigned int b = oglHexToDec((char *)(buf+4)); - return wxColour(r, g, b); - } - else - return wxColour(0,0,0); -} - -// RGB to 3-digit hex -wxString oglColourToHex(const wxColour& colour) -{ - char buf[7]; - unsigned int red = colour.Red(); - unsigned int green = colour.Green(); - unsigned int blue = colour.Blue(); - - oglDecToHex(red, buf); - oglDecToHex(green, buf+2); - oglDecToHex(blue, buf+4); - - return wxString(buf); -} - - diff --git a/utils/ogl/src/misc.h b/utils/ogl/src/misc.h deleted file mode 100644 index 4e6abfb6b2..0000000000 --- a/utils/ogl/src/misc.h +++ /dev/null @@ -1,113 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: misc.h -// Purpose: Miscellaneous utilities for OGL -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_MISC_H_ -#define _OGL_MISC_H_ - -#ifdef __GNUG__ -#pragma interface "misc.h" -#endif - -// List to use when copying objects; may need to associate elements of new objects -// with elements of old objects, e.g. when copying constraint.s -extern wxList oglObjectCopyMapping; - -/* - * TEXT FORMATTING FUNCTIONS - * - */ - -// Centres the given list of wxShapeTextLine strings in the given box -// (changing the positions in situ). Doesn't actually draw into the DC. -void oglCentreText(wxDC& dc, wxList *text, double m_xpos, double m_ypos, - double width, double height, - int formatMode = FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT); - -// Given a string, returns a list of strings that fit within the given -// width of box. Height is ignored. -wxStringList *oglFormatText(wxDC& dc, const wxString& text, double width, double height, int formatMode = 0); - -// Centres the list of wxShapeTextLine strings, doesn't clip. -// Doesn't actually draw into the DC. -void oglCentreTextNoClipping(wxDC& dc, wxList *text_list, - double m_xpos, double m_ypos, double width, double height); - -// Gets the maximum width and height of the given list of wxShapeTextLines. -void oglGetCentredTextExtent(wxDC& dc, wxList *text_list, - double m_xpos, double m_ypos, double width, double height, - double *actual_width, double *actual_height); - -// Actually draw the preformatted list of wxShapeTextLines. -void oglDrawFormattedText(wxDC& context, wxList *text_list, - double m_xpos, double m_ypos, double width, double height, - int formatMode = FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT); - -// Give it a list of points, finds the centre. -void oglFindPolylineCentroid(wxList *points, double *x, double *y); - -void oglCheckLineIntersection(double x1, double y1, double x2, double y2, - double x3, double y3, double x4, double y4, - double *ratio1, double *ratio2); - -void oglFindEndForPolyline(double n, double xvec[], double yvec[], - double x1, double y1, double x2, double y2, double *x3, double *y3); - - -void oglFindEndForBox(double width, double height, - double x1, double y1, // Centre of box (possibly) - double x2, double y2, // other end of line - double *x3, double *y3); // End on box edge - -void oglFindEndForCircle(double radius, - double x1, double y1, // Centre of circle - double x2, double y2, // Other end of line - double *x3, double *y3); - -void oglGetArrowPoints(double x1, double y1, double x2, double y2, - double length, double width, - double *tip_x, double *tip_y, - double *side1_x, double *side1_y, - double *side2_x, double *side2_y); - -/* - * Given an ellipse and endpoints of a line, returns the point at which - * the line touches the ellipse in values x4, y4. - * This function assumes that the centre of the ellipse is at x1, y1, and the - * ellipse has a width of a1 and a height of b1. It also assumes you are - * wanting to draw an arc FROM point x2, y2 TOWARDS point x3, y3. - * This function calculates the x,y coordinates of the intersection point of - * the arc with the ellipse. - * Author: Ian Harrison - */ - -void oglDrawArcToEllipse(double x1, double y1, double a1, double b1, double x2, double y2, double x3, double y3, - double *x4, double *y4); - -bool oglRoughlyEqual(double val1, double val2, double tol = 0.00001); - -extern wxFont* g_oglNormalFont; -extern wxPen* g_oglBlackPen; -extern wxPen* g_oglWhiteBackgroundPen; -extern wxPen* g_oglTransparentPen; -extern wxBrush* g_oglWhiteBackgroundBrush; -extern wxPen* g_oglBlackForegroundPen; -extern wxCursor* g_oglBullseyeCursor; - -extern wxFont* oglMatchFont(int point_size); - -extern wxString oglColourToHex(const wxColour& colour); -extern wxColour oglHexToColour(const wxString& hex); -extern void oglDecToHex(unsigned int dec, char *buf); -extern unsigned int oglHexToDec(char* buf); - - -#endif - // _OGL_MISC_H_ diff --git a/utils/ogl/src/ogl.h b/utils/ogl/src/ogl.h deleted file mode 100644 index 7f5080da11..0000000000 --- a/utils/ogl/src/ogl.h +++ /dev/null @@ -1,26 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ogl.h -// Purpose: OGL main include -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_OGL_H_ -#define _OGL_OGL_H_ - -#include "basic.h" // Basic shapes -#include "lines.h" // Lines and splines -#include "divided.h" // Vertically-divided rectangle -#include "composit.h" // Composite images -#include "canvas.h" // wxShapeCanvas for displaying objects -#include "ogldiag.h" // wxDiagram - -extern void wxOGLInitialize(); -extern void wxOGLCleanUp(); - -#endif - // _OGL_OGL_H_ diff --git a/utils/ogl/src/ogldiag.cpp b/utils/ogl/src/ogldiag.cpp deleted file mode 100644 index 3961607b18..0000000000 --- a/utils/ogl/src/ogldiag.cpp +++ /dev/null @@ -1,756 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ogldiag.cpp -// Purpose: wxDiagram -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "ogldiag.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include - -#if wxUSE_IOSTREAMH -#include -#include -#else -#include -#include -#ifdef _MSC_VER -using namespace std; -#endif -#endif - -#include -#include -#include - -#include "basic.h" -#include "basicp.h" -#include "canvas.h" -#include "ogldiag.h" -#include "lines.h" -#include "composit.h" -#include "misc.h" - -IMPLEMENT_DYNAMIC_CLASS(wxDiagram, wxObject) - -// Object canvas -wxDiagram::wxDiagram() -{ - m_diagramCanvas = NULL; - m_quickEditMode = FALSE; - m_snapToGrid = TRUE; - m_gridSpacing = 5.0; - m_shapeList = new wxList; - m_mouseTolerance = DEFAULT_MOUSE_TOLERANCE; -} - -wxDiagram::~wxDiagram() -{ - if (m_shapeList) - delete m_shapeList; -} - -void wxDiagram::SetSnapToGrid(bool snap) -{ - m_snapToGrid = snap; -} - -void wxDiagram::SetGridSpacing(double spacing) -{ - m_gridSpacing = spacing; -} - -void wxDiagram::Snap(double *x, double *y) -{ - if (m_snapToGrid) - { - *x = m_gridSpacing * ((int)(*x/m_gridSpacing + 0.5)); - *y = m_gridSpacing * ((int)(*y/m_gridSpacing + 0.5)); - } -} - - -void wxDiagram::Redraw(wxDC& dc) -{ - if (m_shapeList) - { - if (GetCanvas()) - GetCanvas()->SetCursor(* wxHOURGLASS_CURSOR); - wxNode *current = m_shapeList->First(); - - while (current) - { - wxShape *object = (wxShape *)current->Data(); - if (!object->GetParent()) - object->Draw(dc); - - current = current->Next(); - } - if (GetCanvas()) - GetCanvas()->SetCursor(* wxSTANDARD_CURSOR); - } -} - -void wxDiagram::Clear(wxDC& dc) -{ - dc.Clear(); -} - -// Insert object after addAfter, or at end of list. -void wxDiagram::AddShape(wxShape *object, wxShape *addAfter) -{ - wxNode *nodeAfter = NULL; - if (addAfter) - nodeAfter = m_shapeList->Member(addAfter); - - if (!m_shapeList->Member(object)) - { - if (nodeAfter) - { - if (nodeAfter->Next()) - m_shapeList->Insert(nodeAfter->Next(), object); - else - m_shapeList->Append(object); - } - else - m_shapeList->Append(object); - object->SetCanvas(GetCanvas()); - } -} - -void wxDiagram::InsertShape(wxShape *object) -{ - m_shapeList->Insert(object); - object->SetCanvas(GetCanvas()); -} - -void wxDiagram::RemoveShape(wxShape *object) -{ - m_shapeList->DeleteObject(object); -} - -// Should this delete the actual objects too? I think not. -void wxDiagram::RemoveAllShapes() -{ - m_shapeList->Clear(); -} - -void wxDiagram::DeleteAllShapes() -{ - wxNode *node = m_shapeList->First(); - while (node) - { - wxShape *shape = (wxShape *)node->Data(); - if (!shape->GetParent()) - { - RemoveShape(shape); - delete shape; - node = m_shapeList->First(); - } - else - node = node->Next(); - } -} - -void wxDiagram::ShowAll(bool show) -{ - wxNode *current = m_shapeList->First(); - - while (current) - { - wxShape *object = (wxShape *)current->Data(); - object->Show(show); - - current = current->Next(); - } -} - -void wxDiagram::DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2) -{ - wxPen dottedPen(wxColour(0, 0, 0), 1, wxDOT); - dc.SetPen(dottedPen); - dc.SetBrush((* wxTRANSPARENT_BRUSH)); - - wxPoint points[5]; - - points[0].x = (int) x1; - points[0].y = (int) y1; - - points[1].x = (int) x2; - points[1].y = (int) y1; - - points[2].x = (int) x2; - points[2].y = (int) y2; - - points[3].x = (int) x1; - points[3].y = (int) y2; - - points[4].x = (int) x1; - points[4].y = (int) y1; - dc.DrawLines(5, points); -} - -// Make sure all text that should be centred, is centred. -void wxDiagram::RecentreAll(wxDC& dc) -{ - wxNode *object_node = m_shapeList->First(); - while (object_node) - { - wxShape *obj = (wxShape *)object_node->Data(); - obj->Recentre(dc); - object_node = object_node->Next(); - } -} - -// Input/output -#ifdef PROLOGIO -bool wxDiagram::SaveFile(const wxString& filename) -{ - wxBeginBusyCursor(); - - wxExprDatabase *database = new wxExprDatabase; - - // First write the diagram type - wxExpr *header = new wxExpr("diagram"); - OnHeaderSave(*database, *header); - - database->Append(header); - - wxNode *node = m_shapeList->First(); - while (node) - { - wxShape *shape = (wxShape *)node->Data(); - - if (!shape->IsKindOf(CLASSINFO(wxControlPoint))) - { - wxExpr *expr = NULL; - if (shape->IsKindOf(CLASSINFO(wxLineShape))) - expr = new wxExpr("line"); - else - expr = new wxExpr("shape"); - - OnShapeSave(*database, *shape, *expr); - } - node = node->Next(); - } - OnDatabaseSave(*database); - - char tempFile[400]; - wxGetTempFileName("diag", tempFile); - ofstream stream(tempFile); - if (stream.bad()) - { - wxEndBusyCursor(); - delete database; - return FALSE; - } - - database->Write(stream); - stream.close(); - delete database; - -/* - // Save backup - if (FileExists(filename)) - { - char buf[400]; -#ifdef __X__ - sprintf(buf, "%s.bak", filename); -#endif -#ifdef __WXMSW__ - sprintf(buf, "_diagram.bak"); -#endif - if (FileExists(buf)) wxRemoveFile(buf); - if (!wxRenameFile(filename, buf)) - { - wxCopyFile(filename, buf); - wxRemoveFile(filename); - } - } -*/ - - // Copy the temporary file to the correct filename - if (!wxRenameFile(tempFile, filename)) - { - wxCopyFile(tempFile, filename); - wxRemoveFile(tempFile); - } - - wxEndBusyCursor(); - return TRUE; -} - -bool wxDiagram::LoadFile(const wxString& filename) -{ - wxBeginBusyCursor(); - - wxExprDatabase database(wxExprInteger, "id"); - if (!database.Read(filename)) - { - wxEndBusyCursor(); - return FALSE; - } - - DeleteAllShapes(); - - database.BeginFind(); - wxExpr *header = database.FindClauseByFunctor("diagram"); - - if (header) - OnHeaderLoad(database, *header); - - // Scan through all clauses and register the ids - wxNode *node = database.First(); - while (node) - { - wxExpr *clause = (wxExpr *)node->Data(); - long id = -1; - clause->GetAttributeValue("id", id); - RegisterId(id); - node = node->Next(); - } - - ReadNodes(database); - ReadContainerGeometry(database); - ReadLines(database); - - OnDatabaseLoad(database); - - wxEndBusyCursor(); - - return TRUE; -} - -void wxDiagram::ReadNodes(wxExprDatabase& database) -{ - // Find and create the node images - database.BeginFind(); - wxExpr *clause = database.FindClauseByFunctor("shape"); - while (clause) - { - char *type = NULL; - long parentId = -1; - - clause->AssignAttributeValue("type", &type); - clause->AssignAttributeValue("parent", &parentId); - wxClassInfo *classInfo = wxClassInfo::FindClass(type); - if (classInfo) - { - wxShape *shape = (wxShape *)classInfo->CreateObject(); - OnShapeLoad(database, *shape, *clause); - - shape->SetCanvas(GetCanvas()); - shape->Show(TRUE); - - m_shapeList->Append(shape); - - // If child of composite, link up - if (parentId > -1) - { - wxExpr *parentExpr = database.HashFind("shape", parentId); - if (parentExpr && parentExpr->GetClientData()) - { - wxShape *parent = (wxShape *)parentExpr->GetClientData(); - shape->SetParent(parent); - parent->GetChildren().Append(shape); - } - } - - clause->SetClientData(shape); - } - if (type) - delete[] type; - - clause = database.FindClauseByFunctor("shape"); - } - return; -} - -void wxDiagram::ReadLines(wxExprDatabase& database) -{ - database.BeginFind(); - wxExpr *clause = database.FindClauseByFunctor("line"); - while (clause) - { - wxString type(""); - long parentId = -1; - - clause->GetAttributeValue("type", type); - clause->GetAttributeValue("parent", parentId); - wxClassInfo *classInfo = wxClassInfo::FindClass((char*) (const char*) type); - if (classInfo) - { - wxLineShape *shape = (wxLineShape *)classInfo->CreateObject(); - shape->Show(TRUE); - - OnShapeLoad(database, *shape, *clause); - shape->SetCanvas(GetCanvas()); - - long image_to = -1; long image_from = -1; - clause->GetAttributeValue("to", image_to); - clause->GetAttributeValue("from", image_from); - - wxExpr *image_to_expr = database.HashFind("shape", image_to); - - if (!image_to_expr) - { - // Error - } - wxExpr *image_from_expr = database.HashFind("shape", image_from); - - if (!image_from_expr) - { - // Error - } - - if (image_to_expr && image_from_expr) - { - wxShape *image_to_object = (wxShape *)image_to_expr->GetClientData(); - wxShape *image_from_object = (wxShape *)image_from_expr->GetClientData(); - - if (image_to_object && image_from_object) - { - image_from_object->AddLine(shape, image_to_object, shape->GetAttachmentFrom(), shape->GetAttachmentTo()); - } - } - clause->SetClientData(shape); - - m_shapeList->Append(shape); - } - - clause = database.FindClauseByFunctor("line"); - } -} - -// Containers have divisions that reference adjoining divisions, -// so we need a separate pass to link everything up. -// Also used by Symbol Library. -void wxDiagram::ReadContainerGeometry(wxExprDatabase& database) -{ - database.BeginFind(); - wxExpr *clause = database.FindClauseByFunctor("shape"); - while (clause) - { - wxShape *image = (wxShape *)clause->GetClientData(); - if (image && image->IsKindOf(CLASSINFO(wxCompositeShape))) - { - wxCompositeShape *composite = (wxCompositeShape *)image; - wxExpr *divisionExpr = NULL; - - // Find the list of divisions in the composite - clause->GetAttributeValue("divisions", &divisionExpr); - if (divisionExpr) - { - int i = 0; - wxExpr *idExpr = divisionExpr->Nth(i); - while (idExpr) - { - long divisionId = idExpr->IntegerValue(); - wxExpr *childExpr = database.HashFind("shape", divisionId); - if (childExpr && childExpr->GetClientData()) - { - wxDivisionShape *child = (wxDivisionShape *)childExpr->GetClientData(); - composite->GetDivisions().Append(child); - - // Find the adjoining shapes - long leftSideId = -1; - long topSideId = -1; - long rightSideId = -1; - long bottomSideId = -1; - childExpr->GetAttributeValue("left_side", leftSideId); - childExpr->GetAttributeValue("top_side", topSideId); - childExpr->GetAttributeValue("right_side", rightSideId); - childExpr->GetAttributeValue("bottom_side", bottomSideId); - if (leftSideId > -1) - { - wxExpr *leftExpr = database.HashFind("shape", leftSideId); - if (leftExpr && leftExpr->GetClientData()) - { - wxDivisionShape *leftSide = (wxDivisionShape *)leftExpr->GetClientData(); - child->SetLeftSide(leftSide); - } - } - if (topSideId > -1) - { - wxExpr *topExpr = database.HashFind("shape", topSideId); - if (topExpr && topExpr->GetClientData()) - { - wxDivisionShape *topSide = (wxDivisionShape *)topExpr->GetClientData(); - child->SetTopSide(topSide); - } - } - if (rightSideId > -1) - { - wxExpr *rightExpr = database.HashFind("shape", rightSideId); - if (rightExpr && rightExpr->GetClientData()) - { - wxDivisionShape *rightSide = (wxDivisionShape *)rightExpr->GetClientData(); - child->SetRightSide(rightSide); - } - } - if (bottomSideId > -1) - { - wxExpr *bottomExpr = database.HashFind("shape", bottomSideId); - if (bottomExpr && bottomExpr->GetClientData()) - { - wxDivisionShape *bottomSide = (wxDivisionShape *)bottomExpr->GetClientData(); - child->SetBottomSide(bottomSide); - } - } - } - i ++; - idExpr = divisionExpr->Nth(i); - } - } - } - - clause = database.FindClauseByFunctor("shape"); - } -} - -// Allow for modifying file -bool wxDiagram::OnDatabaseLoad(wxExprDatabase& db) -{ - return TRUE; -} - -bool wxDiagram::OnDatabaseSave(wxExprDatabase& db) -{ - return TRUE; -} - -bool wxDiagram::OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr) -{ - shape.WriteAttributes(&expr); - db.Append(&expr); - - if (shape.IsKindOf(CLASSINFO(wxCompositeShape))) - { - wxNode *node = shape.GetChildren().First(); - while (node) - { - wxShape *childShape = (wxShape *)node->Data(); - wxExpr *childExpr = new wxExpr("shape"); - OnShapeSave(db, *childShape, *childExpr); - node = node->Next(); - } - } - - return TRUE; -} - -bool wxDiagram::OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr) -{ - shape.ReadAttributes(&expr); - return TRUE; -} - -bool wxDiagram::OnHeaderSave(wxExprDatabase& db, wxExpr& expr) -{ - return TRUE; -} - -bool wxDiagram::OnHeaderLoad(wxExprDatabase& db, wxExpr& expr) -{ - return TRUE; -} - -#endif - -void wxDiagram::SetCanvas(wxShapeCanvas *can) -{ - m_diagramCanvas = can; -} - -// Find a shape by its id -wxShape* wxDiagram::FindShape(long id) const -{ - wxNode* node = GetShapeList()->First(); - while (node) - { - wxShape* shape = (wxShape*) node->Data(); - if (shape->GetId() == id) - return shape; - node = node->Next(); - } - return NULL; -} - - -//// Crossings classes - -wxLineCrossings::wxLineCrossings() -{ -} - -wxLineCrossings::~wxLineCrossings() -{ - ClearCrossings(); -} - -void wxLineCrossings::FindCrossings(wxDiagram& diagram) -{ - ClearCrossings(); - wxNode* node1 = diagram.GetShapeList()->First(); - while (node1) - { - wxShape* shape1 = (wxShape*) node1->Data(); - if (shape1->IsKindOf(CLASSINFO(wxLineShape))) - { - wxLineShape* lineShape1 = (wxLineShape*) shape1; - // Iterate through the segments - wxList* pts1 = lineShape1->GetLineControlPoints(); - int i; - for (i = 0; i < (pts1->Number() - 1); i++) - { - wxRealPoint* pt1_a = (wxRealPoint*) (pts1->Nth(i)->Data()); - wxRealPoint* pt1_b = (wxRealPoint*) (pts1->Nth(i+1)->Data()); - - // Now we iterate through the segments again - - wxNode* node2 = diagram.GetShapeList()->First(); - while (node2) - { - wxShape* shape2 = (wxShape*) node2->Data(); - - // Assume that the same line doesn't cross itself - if (shape2->IsKindOf(CLASSINFO(wxLineShape)) && (shape1 != shape2)) - { - wxLineShape* lineShape2 = (wxLineShape*) shape2; - // Iterate through the segments - wxList* pts2 = lineShape2->GetLineControlPoints(); - int j; - for (j = 0; j < (pts2->Number() - 1); j++) - { - wxRealPoint* pt2_a = (wxRealPoint*) (pts2->Nth(j)->Data()); - wxRealPoint* pt2_b = (wxRealPoint*) (pts2->Nth(j+1)->Data()); - - // Now let's see if these two segments cross. - double ratio1, ratio2; - oglCheckLineIntersection(pt1_a->x, pt1_a->y, pt1_b->x, pt1_b->y, - pt2_a->x, pt2_a->y, pt2_b->x, pt2_b->y, - & ratio1, & ratio2); - - if ((ratio1 < 1.0) && (ratio1 > -1.0)) - { - // Intersection! - wxLineCrossing* crossing = new wxLineCrossing; - crossing->m_intersect.x = (pt1_a->x + (pt1_b->x - pt1_a->x)*ratio1); - crossing->m_intersect.y = (pt1_a->y + (pt1_b->y - pt1_a->y)*ratio1); - - crossing->m_pt1 = * pt1_a; - crossing->m_pt2 = * pt1_b; - crossing->m_pt3 = * pt2_a; - crossing->m_pt4 = * pt2_b; - - crossing->m_lineShape1 = lineShape1; - crossing->m_lineShape2 = lineShape2; - - m_crossings.Append(crossing); - } - } - } - node2 = node2->Next(); - } - } - } - - node1 = node1->Next(); - } -} - -void wxLineCrossings::DrawCrossings(wxDiagram& diagram, wxDC& dc) -{ - dc.SetBrush(*wxTRANSPARENT_BRUSH); - - long arcWidth = 8; - - wxNode* node = m_crossings.First(); - while (node) - { - wxLineCrossing* crossing = (wxLineCrossing*) node->Data(); -// dc.DrawEllipse((long) (crossing->m_intersect.x - (arcWidth/2.0) + 0.5), (long) (crossing->m_intersect.y - (arcWidth/2.0) + 0.5), -// arcWidth, arcWidth); - - - // Let's do some geometry to find the points on either end of the arc. -/* - -(x1, y1) - |\ - | \ - | \ - | \ - | \ - | |\ c c1 - | a | \ - | \ - | - x <-- centre of arc - a1 | b |\ - | | \ c2 - | a2 | \ - | - \ - | b2 \ - | \ - |_______________\ (x2, y2) - b1 - -*/ - - double a1 = wxMax(crossing->m_pt1.y, crossing->m_pt2.y) - wxMin(crossing->m_pt1.y, crossing->m_pt2.y) ; - double b1 = wxMax(crossing->m_pt1.x, crossing->m_pt2.x) - wxMin(crossing->m_pt1.x, crossing->m_pt2.x) ; - double c1 = sqrt( (a1*a1) + (b1*b1) ); - - double c = arcWidth / 2.0; - double a = c * a1/c1 ; - double b = c * b1/c1 ; - - // I'm not sure this is right, since we don't know which direction we should be going in - need - // to know which way the line slopes and choose the sign appropriately. - double arcX1 = crossing->m_intersect.x - b; - double arcY1 = crossing->m_intersect.y - a; - - double arcX2 = crossing->m_intersect.x + b; - double arcY2 = crossing->m_intersect.y + a; - - dc.SetPen(*wxBLACK_PEN); - dc.DrawArc( (long) arcX1, (long) arcY1, (long) arcX2, (long) arcY2, - (long) crossing->m_intersect.x, (long) crossing->m_intersect.y); - - dc.SetPen(*wxWHITE_PEN); - dc.DrawLine( (long) arcX1, (long) arcY1, (long) arcX2, (long) arcY2 ); - - node = node->Next(); - } -} - -void wxLineCrossings::ClearCrossings() -{ - wxNode* node = m_crossings.First(); - while (node) - { - wxLineCrossing* crossing = (wxLineCrossing*) node->Data(); - delete crossing; - node = node->Next(); - } - m_crossings.Clear(); -} - diff --git a/utils/ogl/src/ogldiag.h b/utils/ogl/src/ogldiag.h deleted file mode 100644 index e06e1248f4..0000000000 --- a/utils/ogl/src/ogldiag.h +++ /dev/null @@ -1,124 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: ogldiag.h -// Purpose: OGL - wxDiagram class -// Author: Julian Smart -// Modified by: -// Created: 12/07/98 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef _OGL_OGLDIAG_H_ -#define _OGL_OGLDIAG_H_ - -#ifdef __GNUG__ -#pragma interface "ogldiag.h" -#endif - -#include "basic.h" - -class wxDiagram: public wxObject -{ - DECLARE_DYNAMIC_CLASS(wxDiagram) - -public: - - wxDiagram(); - virtual ~wxDiagram(); - - void SetCanvas(wxShapeCanvas *can); - - inline wxShapeCanvas *GetCanvas() const { return m_diagramCanvas; } - - virtual void Redraw(wxDC& dc); - virtual void Clear(wxDC& dc); - virtual void DrawOutline(wxDC& dc, double x1, double y1, double x2, double y2); - - // Add object to end of object list (if addAfter is NULL) - // or just after addAfter. - virtual void AddShape(wxShape *object, wxShape *addAfter = NULL); - - // Add object to front of object list - virtual void InsertShape(wxShape *object); - - void SetSnapToGrid(bool snap); - void SetGridSpacing(double spacing); - inline double GetGridSpacing() const { return m_gridSpacing; } - inline bool GetSnapToGrid() const { return m_snapToGrid; } - void Snap(double *x, double *y); - - inline void SetQuickEditMode(bool qem) { m_quickEditMode = qem; } - inline bool GetQuickEditMode() const { return m_quickEditMode; } - - virtual void RemoveShape(wxShape *object); - virtual void RemoveAllShapes(); - virtual void DeleteAllShapes(); - virtual void ShowAll(bool show); - - // Find a shape by its id - wxShape* FindShape(long id) const; - - inline void SetMouseTolerance(int tol) { m_mouseTolerance = tol; } - inline int GetMouseTolerance() const { return m_mouseTolerance; } - inline wxList *GetShapeList() const { return m_shapeList; } - inline int GetCount() const { return m_shapeList->Number(); } - - // Make sure all text that should be centred, is centred. - void RecentreAll(wxDC& dc); - -#ifdef PROLOGIO - virtual bool SaveFile(const wxString& filename); - virtual bool LoadFile(const wxString& filename); - - virtual void ReadNodes(wxExprDatabase& database); - virtual void ReadLines(wxExprDatabase& database); - virtual void ReadContainerGeometry(wxExprDatabase& database); - - // Allow for modifying file - virtual bool OnDatabaseLoad(wxExprDatabase& db); - virtual bool OnDatabaseSave(wxExprDatabase& db); - virtual bool OnShapeSave(wxExprDatabase& db, wxShape& shape, wxExpr& expr); - virtual bool OnShapeLoad(wxExprDatabase& db, wxShape& shape, wxExpr& expr); - virtual bool OnHeaderSave(wxExprDatabase& db, wxExpr& expr); - virtual bool OnHeaderLoad(wxExprDatabase& db, wxExpr& expr); -#endif - -protected: - wxShapeCanvas* m_diagramCanvas; - bool m_quickEditMode; - bool m_snapToGrid; - double m_gridSpacing; - int m_mouseTolerance; - wxList* m_shapeList; -}; - -class wxLineCrossing: public wxObject -{ -public: - wxLineCrossing() { m_lineShape1 = NULL; m_lineShape2 = NULL; } - wxRealPoint m_pt1; // First line - wxRealPoint m_pt2; - wxRealPoint m_pt3; // Second line - wxRealPoint m_pt4; - wxRealPoint m_intersect; - wxLineShape* m_lineShape1; - wxLineShape* m_lineShape2; -}; - -class wxLineCrossings: public wxObject -{ -public: - wxLineCrossings(); - ~wxLineCrossings(); - - void FindCrossings(wxDiagram& diagram); - void DrawCrossings(wxDiagram& diagram, wxDC& dc); - void ClearCrossings(); - -public: - wxList m_crossings; -}; - -#endif - // _OGL_OGLDIAG_H_ diff --git a/utils/serialize/.cvsignore b/utils/serialize/.cvsignore deleted file mode 100644 index 4646a42c35..0000000000 --- a/utils/serialize/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -Linux -linux-gnu -linux diff --git a/utils/serialize/makefile.b32 b/utils/serialize/makefile.b32 deleted file mode 100644 index 7016450076..0000000000 --- a/utils/serialize/makefile.b32 +++ /dev/null @@ -1,58 +0,0 @@ -# -# File: makefile.b32 -# Author: Patrick Halke, modified by Guilhem Lavaux -# Created: 1997 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds 32bit wxstring library for Windows 3.1 -# and Borland C++ 4.x - -WXDIR = $(WXWIN) - -!if "$(DLL)" == "1" -WXBUILDDLL=1 -WXUSINGDLL=1 -!endif - -!include $(WXDIR)\src\makeb32.env - -WXLIBDIR = $(WXDIR)\lib -LIBS=$(WXLIB) cw32 import32 ole2w32 - -!ifndef DEBUG -DEBUG=0 -!endif - -LIBTARGET= $(WXLIBDIR)\wxserial.dll -CPPFLAGS= $(CPPFLAGS) -Od - -.c.obj: - bcc32 $(CPPFLAGS) -P- -c {$< } - -OBJECTS = sermain.obj sercore.obj serwnd.obj serctrl.obj sergdi.obj serext.obj - -all: $(LIBTARGET) - -sermain.obj: sermain.$(SRCSUFF) - bcc32 $(CPPFLAGS) -P- -u- -c sermain.$(SRCSUFF) - -$(LIBTARGET): $(OBJECTS) - erase $(LIBTARGET) - tlink32 $(LINK_FLAGS) /v @&&! -c0d32.obj $(OBJECTS) -$(LIBTARGET) -nul -$(LIBS) -serial -! - -clean: - -erase *.obj - -erase $(LIBTARGET) - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws diff --git a/utils/serialize/sercore.cpp b/utils/serialize/sercore.cpp deleted file mode 100644 index 0fffba7f5b..0000000000 --- a/utils/serialize/sercore.cpp +++ /dev/null @@ -1,107 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sercore.cpp -// Purpose: Serialization: core classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "sercore.h" -#endif -#include -#include -#include -#include -#include "sercore.h" - -IMPLEMENT_SERIAL_CLASS(wxList, wxObject) -IMPLEMENT_SERIAL_CLASS(wxHashTable, wxObject) - -void WXSERIAL(wxList)::StoreObject(wxObjectOutputStream& s) -{ - wxList *lst_object = (wxList *)Object(); - wxNode *node = lst_object->First(); - - if (s.FirstStage()) { - while (node) { - s.AddChild(node->Data()); - node = node->Next(); - } - return; - } - - wxDataOutputStream data_s(s); - - data_s.Write8(lst_object->destroy_data); - data_s.Write8(lst_object->key_type); - data_s.Write32( lst_object->Number() ); - - if (lst_object->key_type == wxKEY_INTEGER) { - while (node) { - data_s.Write32(node->key.integer); - node = node->Next(); - } - } else { - while (node) { - data_s.WriteString(node->key.string); - node = node->Next(); - } - } -} - -void WXSERIAL(wxList)::LoadObject(wxObjectInputStream& s) -{ - wxDataInputStream data_s(s); - wxList *list = (wxList *)Object(); - int number, i; - - list->DeleteContents( data_s.Read8() ); - list->key_type = data_s.Read8(); - number = data_s.Read32(); - - if (list->key_type == wxKEY_INTEGER) { - for (i=0;iAppend( data_s.Read32(), s.GetChild() ); - } else { - for (i=0;iAppend( data_s.ReadString(), s.GetChild() ); - } -} - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxHashTable)::StoreObject(wxObjectOutputStream& s) -{ - wxHashTable *table = (wxHashTable *)Object(); - int i; - - if (s.FirstStage()) { - for (i=0;in;i++) - s.AddChild(table->hash_table[i]); - return; - } - - wxDataOutputStream data_s(s); - - data_s.Write8(table->key_type); - data_s.Write32(table->n); -} - -void WXSERIAL(wxHashTable)::LoadObject(wxObjectInputStream& s) -{ - wxHashTable *table = (wxHashTable *)Object(); - wxDataInputStream data_s(s); - int i, key, n; - - key = data_s.Read8(); - n = data_s.Read32(); - - table->Create(key, n); - - for (i=0;ihash_table[i] = (wxList *)s.GetChild(); -} diff --git a/utils/serialize/sercore.h b/utils/serialize/sercore.h deleted file mode 100644 index 57651eab6d..0000000000 --- a/utils/serialize/sercore.h +++ /dev/null @@ -1,24 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sercore.h -// Purpose: Serialization: core classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SERCORE_H__ -#define __SERCORE_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include - -DECLARE_SERIAL_CLASS(wxList, wxObject) -DECLARE_SERIAL_CLASS(wxHashTable, wxObject) - -#endif diff --git a/utils/serialize/serctrl.cpp b/utils/serialize/serctrl.cpp deleted file mode 100644 index e9e0d56af4..0000000000 --- a/utils/serialize/serctrl.cpp +++ /dev/null @@ -1,478 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serctrl.cpp -// Purpose: Serialization: control classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "serctrl.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "serwnd.h" -#include "serctrl.h" - -IMPLEMENT_ALIAS_SERIAL_CLASS(wxControl, wxWindow) -#ifdef __WINDOWS__ -IMPLEMENT_SERIAL_CLASS(wxSlider95, wxControl) -IMPLEMENT_SERIAL_CLASS(wxGauge95, wxControl) -#else -IMPLEMENT_SERIAL_CLASS(wxSlider, wxControl) -IMPLEMENT_SERIAL_CLASS(wxGauge, wxControl) -#endif -IMPLEMENT_SERIAL_CLASS(wxCheckBox, wxControl) -IMPLEMENT_SERIAL_CLASS(wxChoice, wxControl) -IMPLEMENT_SERIAL_CLASS(wxComboBox, wxControl) -IMPLEMENT_SERIAL_CLASS(wxListBox, wxControl) -IMPLEMENT_SERIAL_CLASS(wxNotebook, wxControl) -IMPLEMENT_SERIAL_CLASS(wxRadioBox, wxControl) -IMPLEMENT_SERIAL_CLASS(wxRadioButton, wxControl) -IMPLEMENT_SERIAL_CLASS(wxButton, wxControl) -IMPLEMENT_SERIAL_CLASS(wxStaticText, wxControl) -IMPLEMENT_SERIAL_CLASS(wxStaticBox, wxControl) - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxButton)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); -} - -void WXSERIAL(wxButton)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxButton *button = (wxButton *)Object(); - - printf("label = %s\n", WXSTRINGCAST m_label); - button->Create(m_parent, m_id, m_label, wxPoint(m_x, m_y), wxSize(m_w, m_h), - m_style, *m_validator, m_name); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxCheckBox)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - data_s.Write8( ((wxCheckBox *)Object())->GetValue() ); -} - -void WXSERIAL(wxCheckBox)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - wxCheckBox *chkbox = (wxCheckBox *)Object(); - - chkbox->Create(m_parent, m_id, m_label, wxPoint(m_x, m_y), wxSize(m_w, m_h), - m_style, *m_validator, m_name); - - chkbox->SetValue(data_s.Read8()); -} - -//----------------------------------------------------------------------------- - -#ifdef __WXMSW__ -void WXSERIAL(wxSlider95)::StoreObject(wxObjectOutputStream& s) -#else -void WXSERIAL(wxSlider)::StoreObject(wxObjectOutputStream& s) -#endif -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxSlider *slider = (wxSlider *)Object(); - - data_s.Write32( slider->GetMin() ); - data_s.Write32( slider->GetMax() ); - data_s.Write32( slider->GetValue() ); - data_s.Write32( slider->GetTickFreq() ); - data_s.Write32( slider->GetPageSize() ); - data_s.Write32( slider->GetLineSize() ); - data_s.Write32( slider->GetSelStart() ); - data_s.Write32( slider->GetSelEnd() ); - data_s.Write32( slider->GetThumbLength() ); -} - -#ifdef __WXMSW__ -void WXSERIAL(wxSlider95)::LoadObject(wxObjectInputStream& s) -#else -void WXSERIAL(wxSlider)::LoadObject(wxObjectInputStream& s) -#endif -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - wxSlider *slider = (wxSlider *)Object(); - int value, min, max; - - min = data_s.Read32(); - max = data_s.Read32(); - value = data_s.Read32(); - - slider->Create(m_parent, m_id, value, min, max, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, *m_validator, m_name); - - slider->SetTickFreq( 0, data_s.Read32() ); - slider->SetPageSize( data_s.Read32() ); - slider->SetLineSize( data_s.Read32() ); - min = data_s.Read32(); - max = data_s.Read32(); - slider->SetSelection(min, max); - slider->SetThumbLength( data_s.Read32() ); -} - -//----------------------------------------------------------------------------- - -#ifdef __WXMSW__ -void WXSERIAL(wxGauge95)::StoreObject(wxObjectOutputStream& s) -#else -void WXSERIAL(wxGauge)::StoreObject(wxObjectOutputStream& s) -#endif -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxGauge *gauge = (wxGauge *)Object(); - - data_s.Write32( gauge->GetRange() ); - data_s.Write8( gauge->GetShadowWidth() ); - data_s.Write8( gauge->GetBezelFace() ); - data_s.Write32( gauge->GetValue() ); -} - -#ifdef __WXMSW__ -void WXSERIAL(wxGauge95)::LoadObject(wxObjectInputStream& s) -#else -void WXSERIAL(wxGauge)::LoadObject(wxObjectInputStream& s) -#endif -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - wxGauge *gauge = (wxGauge *)Object(); - int range; - - range = data_s.Read32(); - gauge->Create(m_parent, m_id, range, wxPoint(m_x, m_y), wxSize(m_w, m_h), - m_style, *m_validator, m_name); - - gauge->SetShadowWidth( data_s.Read8() ); - gauge->SetBezelFace( data_s.Read8() ); - gauge->SetValue( data_s.Read32() ); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxChoice)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxChoice *choice = (wxChoice *)Object(); - int i, num = choice->Number(); - - data_s.Write32(num); - for (i=0;iGetString(i) ); -} - -void WXSERIAL(wxChoice)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - wxChoice *choice = (wxChoice *)Object(); - int i,num = data_s.Read32(); - - choice->Create(m_parent, m_id, wxPoint(m_x, m_y), wxSize(m_w, m_h), 0, NULL, - m_style, *m_validator, m_name); - - for (i=0;iAppend( data_s.ReadString() ); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxListBox)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxListBox *listbox = (wxListBox *)Object(); - int i, num = listbox->Number(); - - data_s.Write32(num); - for (i=0;iGetString(i) ); -} - -void WXSERIAL(wxListBox)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxListBox)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - wxListBox *listbox = (wxListBox *)Object(); - int i, num = data_s.Read32(); - - for (i=0;iAppend( data_s.ReadString() ); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxNotebook)::StoreObject(wxObjectOutputStream& s) -{ - wxNotebook *notebook = (wxNotebook *)Object(); - wxImageList *imaglist = notebook->GetImageList(); - int i, pcount = notebook->GetPageCount(); - - WXSERIAL(wxControl)::StoreObject(s); - if (s.FirstStage()) { - s.AddChild(imaglist); - return; - } - - wxDataOutputStream data_s(s); - - data_s.Write8( pcount ); - - for (i=0;iGetPageText(i) ); -} - -void WXSERIAL(wxNotebook)::LoadObject(wxObjectInputStream& s) -{ - wxNotebook *notebook = (wxNotebook *)Object(); - int i; - wxImageList *imaglist; - - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) { - for (i=0;iAddPage( (wxWindow *)s.GetChild(), m_stringlist[i] ); - return; - } - - imaglist = (wxImageList *)s.GetChild(); - - notebook->Create(m_parent, m_id, wxPoint(m_x, m_y), wxSize(m_w, m_h), - m_style, m_name); - - wxDataInputStream data_s(s); - - m_pcount = data_s.Read8(); - for (i=0;iNumber(); - - data_s.Write8( n_items ); - data_s.Write8( box->GetNumberOfRowsOrCols() ); - - for (i=0;iGetString(i) ); -} - -void WXSERIAL(wxRadioBox)::LoadObject(wxObjectInputStream& s) -{ - wxRadioBox *box = (wxRadioBox *)Object(); - - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - int i, n_rows_cols, n_items; - wxString *items; - - n_items = data_s.Read8(); - n_rows_cols = data_s.Read8(); - - items = new wxString[n_items]; - for (i=0;iCreate(m_parent, m_id, m_title, wxPoint(m_x, m_y), wxSize(m_w, m_h), - n_items, items, 0, m_style, *m_validator, m_name); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxRadioButton)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - data_s.Write8( (char) ((wxRadioButton *)Object())->GetValue() ); -} - -void WXSERIAL(wxRadioButton)::LoadObject(wxObjectInputStream& s) -{ - wxDataInputStream data_s(s); - - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxRadioButton *)Object())->SetValue( (bool)data_s.Read8() ); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxComboBox)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxComboBox *box = (wxComboBox *)Object(); - int i, num = box->Number(); - - data_s.Write8( num ); - data_s.Write8( box->GetSelection() ); - for (i=0;iGetString(i) ); - - data_s.WriteString( box->GetValue() ); - - // TODO: Editable flag -} - -void WXSERIAL(wxComboBox)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - wxComboBox *box = (wxComboBox *)Object(); - int i, num, selection; - - box->Create(m_parent, m_id, wxEmptyString, wxPoint(m_x, m_y), wxSize(m_w, m_h), - 0, NULL, m_style, *m_validator, m_name); - - num = data_s.Read8(); - selection = data_s.Read8(); - - for (i=0;iAppend( data_s.ReadString() ); - - box->SetSelection( selection ); - box->SetValue( data_s.ReadString() ); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxStaticText)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); -} - -void WXSERIAL(wxStaticText)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxStaticText *)Object())->Create(m_parent, m_id, m_label, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, m_name); -} - -//----------------------------------------------------------------------------- - -void WXSERIAL(wxStaticBox)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxControl)::StoreObject(s); -} - -void WXSERIAL(wxStaticBox)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxControl)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxStaticBox *)Object())->Create(m_parent, m_id, m_label, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, m_name); -} diff --git a/utils/serialize/serctrl.h b/utils/serialize/serctrl.h deleted file mode 100644 index 8d7e89a8ff..0000000000 --- a/utils/serialize/serctrl.h +++ /dev/null @@ -1,52 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serctrl.h -// Purpose: Serialization: control classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SERCTRL_H__ -#define __SERCTRL_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include "serwnd.h" - -DECLARE_ALIAS_SERIAL_CLASS(wxControl, wxWindow) -DECLARE_SERIAL_CLASS(wxButton, wxControl) -#ifdef __WINDOWS__ -DECLARE_SERIAL_CLASS(wxSlider95, wxControl) -DECLARE_SERIAL_CLASS(wxGauge95, wxControl) -#else -DECLARE_SERIAL_CLASS(wxSlider, wxControl) -DECLARE_SERIAL_CLASS(wxGauge, wxControl) -#endif -DECLARE_SERIAL_CLASS(wxCheckBox, wxControl) -DECLARE_SERIAL_CLASS(wxChoice, wxControl) -DECLARE_SERIAL_CLASS(wxComboBox, wxControl) -DECLARE_SERIAL_CLASS(wxListBox, wxControl) -DECLARE_SERIAL_CLASS(wxRadioBox, wxControl) -DECLARE_SERIAL_CLASS(wxRadioButton, wxControl) -DECLARE_SERIAL_CLASS(wxStaticText, wxControl) -DECLARE_SERIAL_CLASS(wxStaticBox, wxControl) - - -class WXSERIAL(wxNotebook) : public WXSERIAL(wxControl) { - DECLARE_DYNAMIC_CLASS( wxNotebook_Serialize ) -public: - void StoreObject(wxObjectOutputStream& s); - void LoadObject(wxObjectInputStream& s); - -protected: - int m_pcount; - wxArrayString m_stringlist; -}; - -#endif diff --git a/utils/serialize/serext.cpp b/utils/serialize/serext.cpp deleted file mode 100644 index aaddb4066a..0000000000 --- a/utils/serialize/serext.cpp +++ /dev/null @@ -1,137 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serext.cpp -// Purpose: Serialization: Other classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "serext.h" -#endif - -#include "serext.h" -#include -#include -#include -#include -#include - -IMPLEMENT_SERIAL_CLASS(wxSplitterWindow, wxWindow) -IMPLEMENT_SERIAL_CLASS(wxGridCell, wxObject) -IMPLEMENT_SERIAL_CLASS(wxGrid, wxPanel) - -void WXSERIAL(wxSplitterWindow)::StoreObject(wxObjectOutputStream& s) -{ - wxSplitterWindow *splitter = (wxSplitterWindow *)Object(); - WXSERIAL(wxWindow)::StoreObject(s); - - if (s.FirstStage()) { - s.AddChild( splitter->GetWindow1() ); - s.AddChild( splitter->GetWindow2() ); - return; - } - - wxDataOutputStream data_s(s); - data_s.Write8( splitter->GetSplitMode() ); - data_s.Write32( splitter->GetSashSize() ); - data_s.Write8( splitter->GetBorderSize() ); - data_s.Write32( splitter->GetSashPosition() ); - data_s.Write32( splitter->GetMinimumPaneSize() ); -} - -void WXSERIAL(wxSplitterWindow)::LoadObject(wxObjectInputStream& s) -{ - wxSplitterWindow *splitter = (wxSplitterWindow *)Object(); - WXSERIAL(wxWindow)::LoadObject(s); - - wxDataInputStream data_s(s); - int split_mode, sash_size, border_size, sash_position, min_pane_size; - - split_mode = data_s.Read8(); - sash_size = data_s.Read32(); - border_size = data_s.Read8(); - sash_position = data_s.Read32(); - min_pane_size = data_s.Read32(); - - splitter->Create(m_parent, m_id, wxPoint(m_x, m_y), wxSize(m_w, m_h), m_style, - m_name); - - if (s.GetChild(1)) { - if (data_s.Read8() == wxSPLIT_VERTICAL) - splitter->SplitVertically((wxWindow *)s.GetChild(0), - (wxWindow *)s.GetChild(1), sash_position); - else - splitter->SplitHorizontally((wxWindow *)s.GetChild(0), - (wxWindow *)s.GetChild(1), sash_position); - } - - splitter->SetSashSize(sash_size); - splitter->SetBorderSize(border_size); - splitter->SetMinimumPaneSize(min_pane_size); -} - -void WXSERIAL(wxGridCell)::StoreObject(wxObjectOutputStream& s) -{ - wxGridCell *cell = (wxGridCell *)Object(); - wxDataOutputStream data_s(s); - - if (s.FirstStage()) { - s.AddChild( cell->GetFont() ); - s.AddChild( cell->GetBackgroundBrush() ); - s.AddChild( cell->GetCellBitmap() ); - s.AddChild( &(cell->GetTextColour()) ); - s.AddChild( &(cell->GetBackgroundColour()) ); - return; - } - - data_s.WriteString( cell->GetTextValue() ); - data_s.Write16( cell->GetAlignment() ); -} - -void WXSERIAL(wxGridCell)::LoadObject(wxObjectInputStream& s) -{ - wxGridCell *cell = (wxGridCell *)Object(); - wxDataInputStream data_s(s); - - cell->SetTextValue( data_s.ReadString() ); - cell->SetAlignment( data_s.Read16() ); - cell->SetFont( (wxFont *)s.GetChild() ); - cell->SetBackgroundBrush( (wxBrush *)s.GetChild() ); - cell->SetCellBitmap( (wxBitmap *)s.GetChild() ); - cell->SetTextColour( *((wxColour *)s.GetChild()) ); - cell->SetBackgroundColour( *((wxColour *)s.GetChild()) ); -} - -void WXSERIAL(wxGrid)::StoreObject(wxObjectOutputStream& s) -{ - wxDataOutputStream data_s(s); - wxGrid *grid = (wxGrid *)Object(); - int n_rows = grid->GetRows(), n_cols = grid->GetCols(); - int r, c; - - if (s.FirstStage()) { - for (r=0;rGetCell(r, c) ); - - s.AddChild( grid->GetDividerPen() ); - WXSERIAL(wxPanel)::StoreObject(s); - return; - } - - data_s.Write16( n_rows ); - data_s.Write16( n_cols ); - data_s.Write16( grid->GetCursorRow() ); - data_s.Write16( grid->GetCursorColumn() ); - - WXSERIAL(wxPanel)::StoreObject(s); -} - -void WXSERIAL(wxGrid)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxPanel)::LoadObject(s); -} diff --git a/utils/serialize/serext.h b/utils/serialize/serext.h deleted file mode 100644 index 540bb998b5..0000000000 --- a/utils/serialize/serext.h +++ /dev/null @@ -1,26 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serext.cpp -// Purpose: Serialization: Other classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SEREXT_H__ -#define __SEREXT_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include "serwnd.h" - -DECLARE_SERIAL_CLASS(wxSplitterWindow, wxWindow) -DECLARE_SERIAL_CLASS(wxGrid, wxPanel) -DECLARE_SERIAL_CLASS(wxGridCell, wxObject) - -#endif diff --git a/utils/serialize/sergdi.cpp b/utils/serialize/sergdi.cpp deleted file mode 100644 index e413a4627b..0000000000 --- a/utils/serialize/sergdi.cpp +++ /dev/null @@ -1,334 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sergdi.cpp -// Purpose: Serialization: GDI classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "sergdi.h" -#endif -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "sergdi.h" - -IMPLEMENT_SERIAL_CLASS(wxBitmap, wxObject) -IMPLEMENT_SERIAL_CLASS(wxGDIObject, wxObject) -IMPLEMENT_SERIAL_CLASS(wxRegion, wxGDIObject) -IMPLEMENT_SERIAL_CLASS(wxColour, wxObject) -IMPLEMENT_SERIAL_CLASS(wxFont, wxGDIObject) -IMPLEMENT_SERIAL_CLASS(wxPen, wxGDIObject) -IMPLEMENT_SERIAL_CLASS(wxBrush, wxGDIObject) -IMPLEMENT_SERIAL_CLASS(wxImageList, wxObject) - -IMPLEMENT_ALIAS_SERIAL_CLASS(wxPenList, wxList) -IMPLEMENT_ALIAS_SERIAL_CLASS(wxBrushList, wxList) -IMPLEMENT_ALIAS_SERIAL_CLASS(wxFontList, wxList) -IMPLEMENT_ALIAS_SERIAL_CLASS(wxColourDatabase, wxList) -IMPLEMENT_ALIAS_SERIAL_CLASS(wxBitmapList, wxList) - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxBitmap)::StoreObject(wxObjectOutputStream& s) -{ - // TODO - // I implemented a basic image saving (maybe I'll need to improve wxWin API). - - int x, y, w, h; - wxDataOutputStream data_s(s); - wxBitmap *bitmap = (wxBitmap *)Object(); - wxColour col; - wxMemoryDC dc; - - w = bitmap->GetWidth(); - h = bitmap->GetHeight(); - - if (s.FirstStage()) { - s.AddChild(bitmap->GetMask()); - } - - dc.SelectObject(*bitmap); - - data_s.Write16(w); - data_s.Write16(h); - for (y=0;ySetWidth(w); - bitmap->SetHeight(h); - dc.SelectObject(*bitmap); - - for (y=0;yGetVisible(); - - wxDataOutputStream data_s(s); - data_s.Write8(visible); -} - -void WXSERIAL(wxGDIObject)::LoadObject(wxObjectInputStream& s) -{ - wxDataInputStream data_s(s); - - ((wxGDIObject *)Object())->SetVisible( data_s.Read8() ); -} - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxRegion)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxGDIObject)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxRect rect = ((wxRegion *)Object())->GetBox(); - - data_s.Write16( rect.GetX() ); - data_s.Write16( rect.GetY() ); - data_s.Write16( rect.GetWidth() ); - data_s.Write16( rect.GetHeight() ); -} - -void WXSERIAL(wxRegion)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxGDIObject)::LoadObject(s); - - wxDataInputStream data_s(s); - wxRegion *region = (wxRegion *)Object(); - wxRect rect; - - rect.SetX( data_s.Read16() ); - rect.SetY( data_s.Read16() ); - rect.SetWidth( data_s.Read16() ); - rect.SetHeight( data_s.Read16() ); - - *region = wxRegion(rect); -} - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxColour)::StoreObject(wxObjectOutputStream& s) -{ - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - wxColour *colour = (wxColour *)Object(); - - if (!colour->Ok()) { - data_s.Write8(0); - data_s.Write8(0); - data_s.Write8(0); - wxLogDebug("wxColour (0x%x) isn't ready.\n", colour); - return; - } - - data_s.Write8(colour->Red()); - data_s.Write8(colour->Green()); - data_s.Write8(colour->Blue()); -} - -void WXSERIAL(wxColour)::LoadObject(wxObjectInputStream& s) -{ - wxDataInputStream data_s(s); - wxColour *colour = (wxColour *)Object(); - int r, g, b; - - r = data_s.Read8(); - g = data_s.Read8(); - b = data_s.Read8(); - - colour->Set(r, g, b); -} - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxPen)::StoreObject(wxObjectOutputStream& s) -{ - wxPen *pen = (wxPen *)Object(); - WXSERIAL(wxGDIObject)::StoreObject(s); - - if (s.FirstStage()) { - s.AddChild(& (pen->GetColour()) ); - return; - } - - wxDataOutputStream data_s(s); - - data_s.Write8( pen->GetCap() ); - data_s.Write8( pen->GetJoin() ); - data_s.Write8( pen->GetStyle() ); - data_s.Write8( pen->GetWidth() ); -} - -void WXSERIAL(wxPen)::LoadObject(wxObjectInputStream& s) -{ - wxPen *pen = (wxPen *)Object(); - wxColour *col = (wxColour *) s.GetChild(); - - WXSERIAL(wxGDIObject)::LoadObject(s); - - wxDataInputStream data_s(s); - - pen->SetColour(*col); - pen->SetCap( data_s.Read8() ); - pen->SetJoin( data_s.Read8() ); - pen->SetStyle( data_s.Read8() ); - pen->SetWidth( data_s.Read8() ); -} - -// ---------------------------------------------------------------------------- -void WXSERIAL(wxBrush)::StoreObject(wxObjectOutputStream& s) -{ - wxBrush *brush = (wxBrush *)Object(); - WXSERIAL(wxGDIObject)::StoreObject(s); - - if (s.FirstStage()) { - s.AddChild( &(brush->GetColour()) ); - s.AddChild( brush->GetStipple() ); - return; - } - - wxDataOutputStream data_s(s); - data_s.Write8( brush->GetStyle() ); -} - -void WXSERIAL(wxBrush)::LoadObject(wxObjectInputStream& s) -{ - wxBrush *brush = (wxBrush *)Object(); - wxColour *col = (wxColour *)s.GetChild(); - wxBitmap *bmap = (wxBitmap *)s.GetChild(); - - WXSERIAL(wxGDIObject)::LoadObject(s); - - wxDataInputStream data_s(s); - if (bmap) - *brush = wxBrush(*col, data_s.Read8()); - else - *brush = wxBrush(bmap); -} - -// ---------------------------------------------------------------------------- -void WXSERIAL(wxFont)::StoreObject(wxObjectOutputStream& s) -{ - wxFont *font = (wxFont *)Object(); - - WXSERIAL(wxGDIObject)::StoreObject(s); - - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - - data_s.Write8( font->GetPointSize() ); - data_s.WriteString( font->GetFaceName() ); - data_s.Write8( font->GetFamily() ); - data_s.Write8( font->GetStyle() ); - data_s.Write8( font->GetWeight() ); - data_s.Write8( font->GetUnderlined() ); -} - -void WXSERIAL(wxFont)::LoadObject(wxObjectInputStream& s) -{ - wxFont *font = (wxFont *)Object(); - - WXSERIAL(wxGDIObject)::LoadObject(s); - - wxDataInputStream data_s(s); - int psize, family, style, weight; - bool underlined; - wxString face_name; - - psize = data_s.Read8(); - face_name = data_s.ReadString(); - family = data_s.Read8(); - style = data_s.Read8(); - weight = data_s.Read8(); - underlined = data_s.Read8(); - - *font = wxFont(psize, face_name, family, style, weight, underlined); -} - -// ---------------------------------------------------------------------------- - -void WXSERIAL(wxImageList)::StoreObject(wxObjectOutputStream& s) -{ - wxImageList *list = (wxImageList *)Object(); - int i; - - if (s.FirstStage()) { -#ifdef __WXGTK__ - for (i=0;iGetImageCount();i++) - s.AddChild(list->GetBitmap(i)); -#endif - } - - wxDataOutputStream data_s(s); - - data_s.Write32(list->GetImageCount()); -} - -void WXSERIAL(wxImageList)::LoadObject(wxObjectInputStream& s) -{ - int i, count; - wxImageList *list = (wxImageList *)Object(); - wxDataInputStream data_s(s); - - count = data_s.Read32(); - for (i=0;iAdd(*((wxBitmap *)s.GetChild())); -} diff --git a/utils/serialize/sergdi.h b/utils/serialize/sergdi.h deleted file mode 100644 index 3a8d3d4b58..0000000000 --- a/utils/serialize/sergdi.h +++ /dev/null @@ -1,37 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sergdi.h -// Purpose: Serialization: GDI classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __SERGDI_H__ -#define __SERGDI_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include "sercore.h" - -DECLARE_SERIAL_CLASS(wxBitmap, wxObject) -DECLARE_SERIAL_CLASS(wxGDIObject, wxObject) -DECLARE_SERIAL_CLASS(wxRegion, wxGDIObject) -DECLARE_SERIAL_CLASS(wxColour, wxObject) -DECLARE_SERIAL_CLASS(wxFont, wxGDIObject) -DECLARE_SERIAL_CLASS(wxPen, wxGDIObject) -DECLARE_SERIAL_CLASS(wxBrush, wxGDIObject) -DECLARE_SERIAL_CLASS(wxImageList, wxObject) - -DECLARE_ALIAS_SERIAL_CLASS(wxPenList, wxList) -DECLARE_ALIAS_SERIAL_CLASS(wxBrushList, wxList) -DECLARE_ALIAS_SERIAL_CLASS(wxFontList, wxList) -DECLARE_ALIAS_SERIAL_CLASS(wxColourDatabase, wxList) -DECLARE_ALIAS_SERIAL_CLASS(wxBitmapList, wxList) - -#endif diff --git a/utils/serialize/sermain.cpp b/utils/serialize/sermain.cpp deleted file mode 100644 index 2983a8c495..0000000000 --- a/utils/serialize/sermain.cpp +++ /dev/null @@ -1,27 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: sermain.cpp -// Purpose: Serialization: main -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "serbase.h" -#endif - -#include -#include - -#include "sercore.h" -#include "serwnd.h" -#include "sergdi.h" -#include "serctrl.h" -#include "serext.h" - -IMPLEMENT_DYNAMIC_CLASS(wxObject_Serialize, wxObject) - -WXDLL_ENTRY_FUNCTION() diff --git a/utils/serialize/serwnd.cpp b/utils/serialize/serwnd.cpp deleted file mode 100644 index a7790942cc..0000000000 --- a/utils/serialize/serwnd.cpp +++ /dev/null @@ -1,498 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serwnd.cpp -// Purpose: Serialization: wxWindow classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "serwnd.h" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "wx/log.h" -#include "serwnd.h" - - -IMPLEMENT_SERIAL_CLASS(wxWindow, wxObject) -IMPLEMENT_SERIAL_CLASS(wxIndividualLayoutConstraint, wxObject) -IMPLEMENT_SERIAL_CLASS(wxLayoutConstraints, wxObject) -IMPLEMENT_ALIAS_SERIAL_CLASS(wxValidator, wxObject) -IMPLEMENT_SERIAL_CLASS(wxFrame, wxWindow) -IMPLEMENT_SERIAL_CLASS(wxPanel, wxWindow) -IMPLEMENT_SERIAL_CLASS(wxDialog, wxWindow) -IMPLEMENT_SERIAL_CLASS(wxMenuBar, wxWindow) -IMPLEMENT_SERIAL_CLASS(wxMenuItem, wxObject) -IMPLEMENT_SERIAL_CLASS(wxMenu, wxObject) - -IMPLEMENT_SERIAL_CLASS(wxMDIParentFrame, wxFrame) -IMPLEMENT_SERIAL_CLASS(wxMDIChildFrame, wxFrame) -IMPLEMENT_SERIAL_CLASS(wxMDIClientWindow, wxWindow) - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxWindow)::StoreObject(wxObjectOutputStream& s) -{ - wxWindow *win_object = (wxWindow *)Object(); - - if (s.FirstStage()) { - wxNode *node = win_object->GetChildren()->First(); - - s.AddChild(win_object->GetConstraints()); - s.AddChild(win_object->GetValidator()); - - // BAD HACK, but I don't have access to the internal variable of wxWindow. - m_bg_colour = win_object->GetBackgroundColour(); - m_fg_colour = win_object->GetForegroundColour(); - s.AddChild(&m_bg_colour); - s.AddChild(&m_fg_colour); - s.AddChild(win_object->GetFont()); - while (node) { - s.AddChild(node->Data()); - node = node->Next(); - } - return; - } - - wxDataOutputStream data(s); - int x,y,w,h; - - data.WriteString( win_object->GetName() ); - data.WriteString( win_object->GetLabel() ); - data.WriteString( win_object->GetTitle() ); - - data.Write8( win_object->GetAutoLayout() ); - data.Write8( win_object->IsShown() ); - data.Write32( win_object->GetWindowStyleFlag() ); - data.Write32( win_object->GetId() ); - wxLogDebug( "Number = %d", win_object->GetChildren()->Number() ); - data.Write8( win_object->GetChildren()->Number() ); - - win_object->GetSize(&w, &h); - win_object->GetPosition(&x, &y); - data.Write16(x); - data.Write16(y); - data.Write16(w); - data.Write16(h); -} - -void WXSERIAL(wxWindow)::LoadObject(wxObjectInputStream& s) -{ - wxDataInputStream data_s(s); - wxWindow *win_object = (wxWindow *)Object(); - wxColour *colour; - wxFont *font; - - if (s.SecondCall()) { - /* I assume we will never create raw wxWindow object */ - (void)s.GetChild(); // We pass wxLayoutConstraints. - (void)s.GetChild(); // We pass wxValidator. - - colour = (wxColour *)s.GetChild(); - if (colour) - win_object->SetBackgroundColour(*colour); - colour = (wxColour *)s.GetChild(); - if (colour) - win_object->SetForegroundColour(*colour); - font = (wxFont *)s.GetChild(); - if (font) - win_object->SetFont(*font); - s.RemoveChildren(m_number); - return; - } - - m_parent = (wxWindow *)s.GetParent(); - - m_name = data_s.ReadString(); - m_label = data_s.ReadString(); - m_title = data_s.ReadString(); - - m_auto_layout = data_s.Read8(); - m_shown = data_s.Read8(); - m_style = data_s.Read32(); - m_id = data_s.Read32(); - m_number = data_s.Read8(); - - m_x = data_s.Read16(); - m_y = data_s.Read16(); - m_w = data_s.Read16(); - m_h = data_s.Read16(); - - (void)s.GetChild(); // We pass wxLayoutConstraints. - - m_validator = (wxValidator *)s.GetChild(); - if (!m_validator) - m_validator = (wxValidator *)&wxDefaultValidator; - - s.RemoveChildren(m_number+3); - - s.Recall(); - - return; -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxIndividualLayoutConstraint)::StoreObject - (wxObjectOutputStream& s) -{ - wxIndividualLayoutConstraint *lay_object = - (wxIndividualLayoutConstraint *)Object(); - if (s.FirstStage()) - return; - - wxDataOutputStream data_s(s); - - data_s.WriteString(s.GetObjectName(lay_object->GetOtherWindow())); - data_s.Write8(lay_object->GetMyEdge()); - data_s.Write8(lay_object->GetRelationship()); - data_s.Write16(lay_object->GetMargin()); - data_s.Write16(lay_object->GetValue()); - data_s.Write8(lay_object->GetPercent()); - data_s.Write8(lay_object->GetOtherEdge()); -} - -void WXSERIAL(wxIndividualLayoutConstraint):: - LoadObject(wxObjectInputStream& s) -{ - wxIndividualLayoutConstraint *lay_object = - (wxIndividualLayoutConstraint *)Object(); - wxDataInputStream data_s(s); - wxString win_name; - - win_name = data_s.ReadString(); - lay_object->otherWin = (wxWindow *)s.SolveName(win_name); - lay_object->myEdge = (wxEdge)data_s.Read8(); - lay_object->relationship = (wxRelationship)data_s.Read8(); - lay_object->margin = data_s.Read16(); - lay_object->value = data_s.Read16(); - lay_object->percent = data_s.Read8(); - lay_object->otherEdge = (wxEdge)data_s.Read8(); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxLayoutConstraints)::StoreObject(wxObjectOutputStream& s) -{ - wxLayoutConstraints *lay_object = (wxLayoutConstraints *)Object(); - WXSERIAL(wxIndividualLayoutConstraint) c; - -#define STORE(obj) c.SetObject(&(lay_object->obj)); c.StoreObject(s); - - // I simplify the process for this object - STORE(left); - STORE(right); - STORE(bottom); - STORE(top); - - STORE(width); - STORE(height); - - STORE(centreX); - STORE(centreY); - -#undef STORE -} - -void WXSERIAL(wxLayoutConstraints)::LoadObject(wxObjectInputStream& s) -{ - wxLayoutConstraints *lay_object = (wxLayoutConstraints *)Object(); - WXSERIAL(wxIndividualLayoutConstraint) c; - -#define LOAD(obj) c.SetObject(&(lay_object->obj)); c.LoadObject(s); - - // I simplify the process for this object - LOAD(left); - LOAD(right); - LOAD(bottom); - LOAD(top); - - LOAD(width); - LOAD(height); - - LOAD(centreX); - LOAD(centreY); - -#undef LOAD - - // Initialize constraints - ((wxWindow *)s.GetParent())->SetConstraints(lay_object); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxFrame)::StoreObject(wxObjectOutputStream& s) -{ - wxFrame *frame = (wxFrame *)Object(); - - if (s.FirstStage()) { - s.AddChild(frame->GetMenuBar()); - WXSERIAL(wxWindow)::StoreObject(s); - return; - } - - WXSERIAL(wxWindow)::StoreObject(s); - - wxDataOutputStream data_s(s); - wxStatusBar *statbar = frame->GetStatusBar(); - - // AAARGH !! I absolutely need to be able to modify internal fields of - // wxFrame (wxToolBar and wxStatusBar) - - if (statbar) - data_s.Write8(statbar->GetFieldsCount()); - else - data_s.Write8(0); - // HOW CAN I ACCESS TO THIS FIELD ? - // for (...) { data_s.Write8(statbar->m_statusWidths[i]); } -} - -void WXSERIAL(wxFrame)::LoadObject(wxObjectInputStream& s) -{ - wxFrame *frame = (wxFrame *)Object(); - wxMenuBar *mbar = (wxMenuBar *)s.GetChild(); - - WXSERIAL(wxWindow)::LoadObject(s); - - if (s.SecondCall()) - return; - - wxDataInputStream data_s(s); - - if (frame->GetClassInfo() == CLASSINFO(wxFrame)) - frame->Create(m_parent, m_id, m_title, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, m_name); - frame->SetMenuBar(mbar); - - frame->CreateStatusBar(data_s.Read8()); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxMenuBar)::StoreObject(wxObjectOutputStream& s) -{ - wxMenuBar *mbar = (wxMenuBar *)Object(); - int i, mcount = mbar->GetMenuCount(); - - if (s.FirstStage()) { - for (i=0;iGetMenu(i) ); - WXSERIAL(wxWindow)::StoreObject(s); - return; - } - - wxDataOutputStream data_s(s); - data_s.Write8( mcount ); - - // It isn't necessary for this object. - // WXSERIAL(wxWindow)::StoreObject(s); -} - -void WXSERIAL(wxMenuBar)::LoadObject(wxObjectInputStream& s) -{ - wxMenuBar *mbar = (wxMenuBar *)Object(); - int i, mcount; - wxDataInputStream data_s(s); - - mcount = data_s.Read8(); - for (i=0;iAppend( menu, menu->GetTitle() ); - } - - // It isn't necessary for this object. - // WXSERIAL(wxWindow)::LoadObject(s); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxMenu)::StoreObject(wxObjectOutputStream& s) -{ - wxMenu *menu = (wxMenu *)Object(); - - if (s.FirstStage()) { - s.AddChild( &menu->GetItems() ); - return; - } - - wxDataOutputStream data_s(s); - data_s.WriteString( menu->GetTitle() ); -} - -void WXSERIAL(wxMenu)::LoadObject(wxObjectInputStream& s) -{ - wxMenu *menu = (wxMenu *)Object(); - wxList *items = (wxList *)s.GetChild(); - wxNode *node = items->First(); - - wxDataInputStream data_s(s); - - menu->SetTitle( data_s.ReadString() ); - - while (node) { -// NOT IMPLEMENTED in wxGTK -// menu->Append( (wxMenuItem *)node->Data() ); - node = node->Next(); - } -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxMenuItem)::StoreObject(wxObjectOutputStream& s) -{ - wxMenuItem *item = (wxMenuItem *)Object(); - - if (s.FirstStage()) { -#ifdef __WXGTK__ - s.AddChild(item->GetSubMenu()); -#endif - return; - } - - wxDataOutputStream data_s(s); - -#ifdef __WXGTK__ - data_s.Write8( item->GetId() ); - data_s.WriteString( item->GetText() ); - data_s.Write8( item->IsCheckable() ); - data_s.Write8( item->IsEnabled() ); - data_s.Write8( item->IsChecked() ); -#endif -} - -void WXSERIAL(wxMenuItem)::LoadObject(wxObjectInputStream& s) -{ - wxMenuItem *item = (wxMenuItem *)Object(); - wxDataInputStream data_s(s); - -#ifdef __WXGTK__ - item->SetId( data_s.Read8() ); - item->SetText( data_s.ReadString() ); - item->SetCheckable( data_s.Read8() ); - item->Enable( data_s.Read8() ); - item->Check( data_s.Read8() ); - item->SetSubMenu( (wxMenu *)s.GetChild() ); -#endif -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxPanel)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxWindow)::StoreObject(s); -} - -void WXSERIAL(wxPanel)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxWindow)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxPanel *)Object())->Create(m_parent, m_id, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, m_name); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxDialog)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxWindow)::StoreObject(s); -} - -void WXSERIAL(wxDialog)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxWindow)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxDialog *)Object())->Create(m_parent, m_id, m_title, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, m_name); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxMDIParentFrame)::StoreObject(wxObjectOutputStream& s) -{ - wxMDIParentFrame *frame = (wxMDIParentFrame *)Object(); - - if (s.FirstStage()) { - s.AddChild(frame->GetClientWindow()); - WXSERIAL(wxMDIParentFrame)::StoreObject(s); - return; - } - - WXSERIAL(wxMDIParentFrame)::StoreObject(s); -} - -void WXSERIAL(wxMDIParentFrame)::LoadObject(wxObjectInputStream& s) -{ - wxMDIParentFrame *frame = (wxMDIParentFrame *)Object(); - wxMDIClientWindow *client; - - if (s.SecondCall()) { - WXSERIAL(wxFrame)::LoadObject(s); - return; - } - - client = (wxMDIClientWindow *) s.GetChild(); - - frame->Create(m_parent, m_id, m_title, wxPoint(m_x, m_y), - wxSize(m_w, m_h), m_style, m_name); - - WXSERIAL(wxFrame)::LoadObject(s); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxMDIChildFrame)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxFrame)::StoreObject(s); -} - -void WXSERIAL(wxMDIChildFrame)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxFrame)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxMDIChildFrame *)Object())->Create((wxMDIParentFrame *)m_parent, - m_id, m_title, - wxPoint(m_x, m_y), wxSize(m_w, m_h), - m_style, m_name); -} - -///////////////////////////////////////////////////////////////////////////// - -void WXSERIAL(wxMDIClientWindow)::StoreObject(wxObjectOutputStream& s) -{ - WXSERIAL(wxWindow)::StoreObject(s); -} - -void WXSERIAL(wxMDIClientWindow)::LoadObject(wxObjectInputStream& s) -{ - WXSERIAL(wxWindow)::LoadObject(s); - - if (s.SecondCall()) - return; - - ((wxMDIClientWindow *)Object())->CreateClient((wxMDIParentFrame *)m_parent, m_style); -} diff --git a/utils/serialize/serwnd.h b/utils/serialize/serwnd.h deleted file mode 100644 index 38cdb657c1..0000000000 --- a/utils/serialize/serwnd.h +++ /dev/null @@ -1,57 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: serwnd.h -// Purpose: Serialization: wxWindow classes -// Author: Guilhem Lavaux -// Modified by: -// Created: July 1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef _SERIALIZE_SERWND_H_ -#define _SERIALIZE_SERWND_H_ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include - -class WXSERIAL(wxWindow) : public WXSERIAL(wxObject) -{ - DECLARE_DYNAMIC_CLASS( wxWindow_Serialize ) - public: - WXSERIAL(wxWindow)() { } - virtual ~WXSERIAL(wxWindow)() { }; - - void StoreObject(wxObjectOutputStream& s); - void LoadObject(wxObjectInputStream& s); - - public: - int m_x, m_y, m_w, m_h; - bool m_shown, m_auto_layout; - wxWindowID m_id; - wxString m_name, m_title, m_label; - wxWindow *m_parent; - wxValidator *m_validator; - wxColour m_bg_colour, m_fg_colour; - long m_style; - int m_number; -}; - -DECLARE_SERIAL_CLASS(wxIndividualLayoutConstraint, wxObject) -DECLARE_SERIAL_CLASS(wxLayoutConstraints, wxObject) -DECLARE_ALIAS_SERIAL_CLASS(wxValidator, wxObject) -DECLARE_SERIAL_CLASS(wxFrame, wxWindow) -DECLARE_SERIAL_CLASS(wxPanel, wxWindow) -DECLARE_SERIAL_CLASS(wxDialog, wxWindow) -DECLARE_SERIAL_CLASS(wxMenuBar, wxWindow) -DECLARE_SERIAL_CLASS(wxMenuItem, wxObject) -DECLARE_SERIAL_CLASS(wxMenu, wxObject) -DECLARE_SERIAL_CLASS(wxMDIParentFrame, wxFrame) -DECLARE_SERIAL_CLASS(wxMDIChildFrame, wxFrame) -DECLARE_SERIAL_CLASS(wxMDIClientWindow, wxFrame) - -#endif diff --git a/utils/tex2rtf/docs/back.gif b/utils/tex2rtf/docs/back.gif deleted file mode 100644 index 8a61076d3ba74bdedc1d24f60c3d1f5a361a6cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmV<703QEGNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>t<(Iwfoo diff --git a/utils/tex2rtf/docs/books.gif b/utils/tex2rtf/docs/books.gif deleted file mode 100644 index 26ff394df62cbdb103908648614173654ec6d7eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmZ?wbhEHb)Mn6T*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zJA)2LC&&y2mVX~kc&^@S@%pT_yTXfJi2|GDp6e!c+BKZ&%hNhxEdIWs;JKB{`SQ<< zPEHBjEDpTA+u5C@f_Kd_OY(VT@*wQ`^@ZOn?o==|n=f}d-eJDgYH!-kgw~pQIm^yJ zXXjvP=CI1BsxGLD%W7s3YHF40W?)U_XRRqLV(6RR*epGzV`f*;yy>Y6CaJQe#!Z{C zG>UD-^ymfsl8Zb1&6`&m_|BiWyJ*Ao%}m=4ZI5W$CBCQ1cE#btXOFO~5xrb_#{Jx* zoonY*JxIO&=++(K#Sd;geEISGLb2|JE2D3|`n+=W_r6@~gZ$Dxn*aVxe61F6#H#M4 z+#(G(M&FGcoR<~PT+2yhbBbrNeE0fzVUh`tc%sLY@Sv%-ybAJtM`mzESx;fke0N#G zhwFr(q4BvrDU)5js(vjKIV-p&b=Q1{zHc=TUM!ikY^BWIkV&5=g{jIH2eop2JLI}4 V)i6YMM%m#@+X@~Z>t$fD1^{??#6$o9 diff --git a/utils/tex2rtf/docs/bullet.bmp b/utils/tex2rtf/docs/bullet.bmp deleted file mode 100644 index aad8fc793edd54ffb5910e67b2470659c95448b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138 zcmZumxe>rH2vhFtK1GJ`9PYi2Yw9con_&SdBlI1b>qTKR2Gu`ZXgNITWj7;KP=JJL V1)UXU1`*-lNw`O&c<~DR!2u5s7-j$f diff --git a/utils/tex2rtf/docs/contents.gif b/utils/tex2rtf/docs/contents.gif deleted file mode 100644 index 3dddfa3dd5f0c652e8b27cd6c29e1fdd49ced5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVG0Pz3-zrVld=jU&4Z(9HWEC2ui06_p40008OjE||y?GK}z zO&EZ)-n{z{a)K3v=81;mmA0S4Fj_r^UyThZDG{h6k9m zHI_(7spd!5_$SH6m{\z@ - \thesection\hskip 1em\relax \fi ##1}}{}}% -\def\subsectionmark##1{\markright {\ifnum \c@secnumdepth >\@ne - \thesubsection\hskip 1em\relax \fi ##1}}}% -{\def\chaptermark##1{\markboth {\uppercase{\ifnum \c@secnumdepth>\m@ne - \@chapapp\ \thechapter. \ \fi ##1}}{}} -\def\sectionmark##1{\markright{\uppercase{\ifnum \c@secnumdepth >\z@ - \thesection. \ \fi ##1}}}}% -\csname ps@headings\endcsname % use \ps@headings defaults if they exist -\ps@@fancy -\gdef\ps@fancy{\@fancyplainfalse\ps@@fancy}% -\headwidth\textwidth} -\def\ps@fancyplain{\ps@fancy \let\ps@plain\ps@plain@fancy} -\def\ps@plain@fancy{\@fancyplaintrue\ps@@fancy} -\def\ps@@fancy{% -\def\@mkboth{\protect\markboth}% -\def\@oddhead{\@fancyhead\@lodd\@olhead\@ochead\@orhead\@rodd}% -\def\@oddfoot{\@fancyfoot\@lodd\@olfoot\@ocfoot\@orfoot\@rodd}% -\def\@evenhead{\@fancyhead\@rodd\@elhead\@echead\@erhead\@lodd}% -\def\@evenfoot{\@fancyfoot\@rodd\@elfoot\@ecfoot\@erfoot\@lodd}% -} -\def\@lodd{\if@reversemargin\hss\else\relax\fi} -\def\@rodd{\if@reversemargin\relax\else\hss\fi} - -\let\latex@makecol\@makecol -\def\@makecol{\let\topfloat\@toplist\let\botfloat\@botlist\latex@makecol} -\def\iftopfloat#1#2{\ifx\topfloat\empty #2\else #1\fi} -\def\ifbotfloat#1#2{\ifx\botfloat\empty #2\else #1\fi} -\def\iffloatpage#1#2{\if@fcolmade #1\else #2\fi} - diff --git a/utils/tex2rtf/docs/forward.gif b/utils/tex2rtf/docs/forward.gif deleted file mode 100644 index 9c81e8c92fed7fe851ce02e7854dc26a58eae9b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 164 zcmV;V09*e@Nk%v~VI=?<0Pz3-zrVld=jU&4Z(9HWEC2ui03`qz0007gjE||y?Z1Qp zwAzdF6*A}#V%!v#-{_g@)>Q-cu3}3Ku`2^Nfa3dZ+VyHW%gtsZ`jV7k@%j8Ij}~W) zc{NUP6)X3OWa^|{8nl?rh|gZ1@{(qofnsWu+nmFHSnaq>lB41zSVC9`a)_v*xHx0L S5h*!IS!o$ynW>ps0028gDN7ju diff --git a/utils/tex2rtf/docs/install.txt b/utils/tex2rtf/docs/install.txt deleted file mode 100644 index 6224eec7ec..0000000000 --- a/utils/tex2rtf/docs/install.txt +++ /dev/null @@ -1,43 +0,0 @@ -Installation Instructions for Tex2RTF -------------------------------------- - -Binaries are supplied for Windows 3.1 and for Sun workstations. - -If these don't work for you, or you are using a different system, you -will need to compile Tex2RTF. There are several options for doing this. - -(1) GUI version - -If you want to have a graphical interface for Tex2RTF -(not essential for a conversion utility!) then you -will need to download wxWindows from skye.aiai.ed.ac.uk -(192.41.104.6) in the directory /pub/wxwin/beta, files -wx150?_*.tar.Z (or .gz) where ? is the latest beta letter, -currently i. - -On UNIX, you will then need to decide whether you want to produce -an XView or Motif version (provided you have one of these -toolkits), and change the makefiles in accordingly, -in wx/src/x, wx/src/base and wx/utils/tex2rtf/src. - -Use the makefile target 'xview' or 'motif' from each of the directories -wx/src/x and wx/utils/tex2rtf/src. - -Under Windows, just type 'nmake -f makefile.dos' if you're -using a Microsoft-compatible compiler (you'll need to -change the makefiles or build project files for other compilers.) - -(2) Non-GUI version - -Under UNIX, simply use the target 'nogui'. The supplied files in the -src/wxwin directory supply the essential utilities from wxWindows, and -Tex2RTF will be built as a command-line program. - -On a PC, add 'NOGUI=1' to the makefile command line. Note that the small -amount of memory available under DOS can cause catastrophic crashes for -large input files, due to the lack of memory checking, so be warned! The -Windows version is a more sensible choice. - -------------------------------------------------------------------------- -Julian Smart, February 1993 -J.Smart@ed.ac.uk diff --git a/utils/tex2rtf/docs/makeidx.sty b/utils/tex2rtf/docs/makeidx.sty deleted file mode 100644 index 4fbb9aed3a..0000000000 --- a/utils/tex2rtf/docs/makeidx.sty +++ /dev/null @@ -1,11 +0,0 @@ -% makeidx.sty 20-Jan-87 modified for international usage -% -% Modified by J.Schrod (TeXsys). -% according to the suggestion of H.Partl (TU Wien) in german.sty -% to make caption names adaptable to other languages. - -\@ifundefined{seeterm}{\def\seeterm{see}}{} % <----------- - -\def\see#1#2{{\em \seeterm\/} #1} -\def\printindex{\@input{\jobname.ind}} - diff --git a/utils/tex2rtf/docs/mysober.sty b/utils/tex2rtf/docs/mysober.sty deleted file mode 100644 index a6f73a654d..0000000000 --- a/utils/tex2rtf/docs/mysober.sty +++ /dev/null @@ -1,154 +0,0 @@ -% SOBER.STY van Nico Poppelier -% Adapted by Julian Smart for his own -% nefarious purposes -% -------------------------------------- -% Koppen van secties, subsecties, ... -% -------------------------------------- -% -% -------------------------------------- -% fontgrootte en regelafstand -% (met de notatie X/Y wordt bedoeld -% 'letter X op regelafstand Y') -% -------------------------------------- -% -% 10pt 11pt 12pt -% \scriptsize 7/ 8 8/ 9.5 8/ 9.5 -% \tiny 5/ 6 6/ 7 6/ 7 -% \small 9/11 10/12 11/13.6 -% \footnotesize 8/ 9.5 9/11 10/12 -% \@normalsize 10/12 11/13.6 12/15 -% \large 12/14 12/14 14/18 -% \Large 14/18 14/18 17/22 -% \LARGE 17/22 17/22 20/25 -% \huge 20/25 20/25 25/30 -% \Huge 25/30 25/30 25/30 -% -% de syntax van \@startsection is: -% \@startsection -% {Name}{Level}{Indent}{Before_skip}{After_Skip}{Type_face} -% Indent : inspring van kop vanaf linkermarge -% Before_skip: wit boven kopje -% (< 0 geeft aan dat eerste alinea niet inspringt) -% After_skip : wit onder kopje indien >= 0 -% horizontaal wit na kopje, -% met kopje op de regel indien < 0 -% -% notatie voor : ()() -% -% in LaTeX's standaard-stijlen (onafhankelijk van \@ptsize): -% -% Indent Before_skip After_skip Type_face -% section 0 -3.5ex (-1ex)(-0.2ex) 2.3ex(0.2ex) \Large\bf -% subsection 0 -3.25ex(-1ex)(-0.2ex) 1.5ex(0.2ex) \large\bf -% subsubsection 0 -3.25ex(-1ex)(-0.2ex) 1.5ex(0.2ex) \normalsize\bf -% paragraph 0 3.25ex( 1ex)( 0.2ex) -1em()() \normalsize\bf -% subparagraph \parindent 3.25ex( 1ex)( 0.2ex) -1em()() \normalsize\bf -% -% -% in een soberder uitvoering (onafhankelijk van \@ptsize): -% -\def\section{\@startsection{section}{1} -%{\z@}{-2.5ex plus -0.5ex minus -0.1ex}{0.5ex plus 0.1ex}{\large\bf}} -{\z@}{-2.5ex plus -0.5ex minus -0.1ex}{0.5ex plus 0.1ex}{\large\bf}} -\def\subsection{\@startsection{subsection}{2} -{\z@}{-2.25ex plus -0.3ex minus -0.2ex}{0.05ex plus 0.05ex}{\normalsize\bf}} -\def\subsubsection{\@startsection{subsubsection}{3} -{\z@}{-2.25ex plus -0.3ex minus -0.2ex}{0.05ex plus 0.05ex}{\normalsize\sc}} -\def\paragraph{\@startsection{paragraph}{4} -{\z@}{2ex plus 0.5ex minus 0.1ex}{-0.7em}{\normalsize\it}} -\def\subparagraph{\@startsection{subparagraph}{4} -{\parindent}{2ex plus 0.5ex minus 0.1ex}{-0.7em}{\normalsize\it}} -% -% -------------------------------------- -% Hoofdstuk-koppen -% -------------------------------------- -% -% LaTeX's book style (standaard documentstijl) definieert -% de hoofdstuk-koppen onafhankelijk van \@ptsize -% - -\def\@makechapterhead#1{\vspace*{20pt}% -% Next line repaired by Piet van Oostrum - June 14, 1991. -%{\parindent 0pt\Large\bf \ifnum\c@secnumdepth>\m@ne\thechapter \fi -{\parindent 0pt\LARGE\bf \ifnum\c@secnumdepth>\m@ne\thechapter. \hskip 1em \fi% -{\raggedright\LARGE\bf #1}\\\rule[10pt]{\textwidth}{0.3mm}\par\nobreak \vskip25pt} } - -\def\@makeschapterhead#1{ - \vspace*{20pt} { \parindent 0pt \raggedright - \LARGE\bf#1\par\nobreak\vskip25pt } } -% -% -------------------------------------- -% List-omgevingen (itemize en enumerate) -% -------------------------------------- -% -% De volgende parameters zijn relevant in een list-omgeving: -% -% \labelsep : afstand tussen label en item -% \labelwidth : breedte van label -% \leftmargin : afstand tussen linkermarge en item -% \rightmargin : afstand tussen item en rechtermarge -% \listparindent: indentatie voor vervolg-alinea's in item -% \parsep : verticaal wit tussen vervolg-alinea's in item -% \itemsep : verticaal wit tussen opeenvolgende item's -% \topsep, -% \partopsep : wit boven item 1 = \topsep + \parskip -% (geen alinea-overgang boven lijst) -% wit boven item 1 = \topsep + \parskip + \partopsep -% (alinea-overgang boven lijst) -% -% zie verder LaTeX-boek 5.7.1 en C.5.3 -% -------------------------------------- -% -% De parameters voor niveau 1 worden gedefinieerd op top-niveau en -% \@listi definieert uitsluitend \leftmargin -% -% size = small (9pt, 10pt, 11pt) -\def\@listi{\topsep 0.4ex \parsep 0pt \itemsep \parsep} -% \topsep 4pt(2pt)(2pt) 6pt(2pt)(2pt) 9pt(3pt)(5pt) -% \parsep 2pt(1pt)(1pt) 3pt(2pt)(1pt) 4.5pt(2pt)(1pt) -% -% size = footnotesize (8pt, 9pt, 10pt) -\def\@listi{\topsep 0.4ex \parsep 0pt \itemsep \parsep} -% \topsep 3pt(1pt)(1pt) 4pt(2pt)(2pt) 6pt(2pt)(2pt) -% \parsep 2pt(1pt)(1pt) 2pt(1pt)(1pt) 3pt(2pt)(1pt) -% -% size = normalsize (and bigger) -% \parskip 0pt(1pt) 0pt(1pt) 0pt(1pt) -% \parindent 15pt 17pt 1.5em -% \topsep 8pt(2pt)(4pt) 9pt(3pt)(5pt) 10pt(4pt)(6pt) -% \partopsep 2pt(1pt)(1pt) 3pt(1pt)(2pt) 3pt(2pt)(2pt) -% \itemsep 4pt(2pt)(1pt) 4.5pt(2pt)(1pt) 5pt(2.5pt)(1pt -% \parsep 4pt(2pt)(1pt) 4.5pt(2pt)(1pt) 5pt(2.5pt)(1pt) -\topsep 0.4ex \partopsep 0pt \itemsep 0pt \parsep 0pt -% -% \leftmargini 2.5em \leftmarginii 2.2em \leftmarginiii 1.87em -% \leftmarginiv 1.7em \leftmarginv 1.0em \leftmarginvi 1.0em -% -% \leftmargin\leftmargini -% \labelwidth\leftmargini\advance\labelwidth-\labelsep -% \labelsep 0.5em -% -% \def\@listi{\leftmargin\leftmargini} -% -\def\@listii{\leftmargin\leftmarginii - \labelwidth\leftmarginii\advance\labelwidth-\labelsep -% \topsep 4pt(2pt)(1pt) 4.5pt(2pt)(1pt) 5pt(2.5pt)(1pt) -% \parsep 2pt(1pt)(1pt) 2pt(1pt)(1pt) 2.5pt(1pt)(1pt) - \topsep 0pt \parsep 0pt \itemsep \parsep} -% -\def\@listiii{\leftmargin\leftmarginiii - \labelwidth\leftmarginiii\advance\labelwidth-\labelsep -% \topsep 2pt(1pt)(1pt) 2pt(1pt)(1pt) 2.5pt(1pt)(1pt) -% \partopsep 1pt(0pt)(1pt) 1pt(0pt)(1pt) 1pt(0pt)(1pt) - \parsep \z@ \topsep 0pt \partopsep 0pt \itemsep \topsep} -% -% \def\@listiv{\leftmargin\leftmarginiv -% \labelwidth\leftmarginiv\advance\labelwidth-\labelsep} -% -% \def\@listv{ \leftmargin\leftmarginv -% \labelwidth\leftmarginv\advance\labelwidth-\labelsep} -% -% \def\@listvi{\leftmargin\leftmarginvi -% \labelwidth\leftmarginvi\advance\labelwidth-\labelsep} - - diff --git a/utils/tex2rtf/docs/mytitle.sty b/utils/tex2rtf/docs/mytitle.sty deleted file mode 100644 index 4a20d7b2c8..0000000000 --- a/utils/tex2rtf/docs/mytitle.sty +++ /dev/null @@ -1,33 +0,0 @@ -% mytitle.sty -% Julian Smart's Enhanced Titlepage - -\def\maketitle{\begin{titlepage} -\let\footnotesize\small \let\footnoterule\relax \setcounter{page}{0} -%\null -%\vfil -\vspace*{2cm}\begin{flushleft} -{\huge \sf\@title\\\rule{\textwidth}{0.5mm}} \vskip 3em {\large \lineskip .75em -{\sf\@author} -\par} -\vskip 1.5em {\large\sf \@date \par} \end{flushleft} \par -\@thanks -\vfill -{\sf\small\begin{flushright}% -Artificial Intelligence Applications Institute\\ -University of Edinburgh\\ -80 South Bridge\\ -EH1 1HN\\ -Tel. 0131-650-2746 -\end{flushright}} -\null -\end{titlepage} -\setcounter{footnote}{0} \let\thanks\relax -\gdef\@thanks{}\gdef\@author{}\gdef\@title{}\let\maketitle\relax} -\def\abstractname{Abstract} % <---------- -\def\abstract{\titlepage -\null\vfil -\begin{center} -{\bf \abstractname} % <---------- -% {\bf Abstract} -\end{center}} -\def\endabstract{\par\vfil\null\endtitlepage} diff --git a/utils/tex2rtf/docs/notes.txt b/utils/tex2rtf/docs/notes.txt deleted file mode 100644 index 6e830c5baa..0000000000 --- a/utils/tex2rtf/docs/notes.txt +++ /dev/null @@ -1,140 +0,0 @@ -Implementation notes --------------------- - -Files ------ - -The library tex2any.lib contains the generic Latex parser. -It comprises tex2any.cc, tex2any.h and texutils.cc. - -The executable Tex2RTF is made up of tex2any.lib, -tex2rtf.cc (main driver and user interface), and specific -drivers for generating output: rtfutils.cc, htmlutil.cc -and xlputils.cc. - -Data structures ---------------- - -Class declarations are found in tex2any.h. - -TexMacroDef holds a macro (Latex command) definition: name, identifier, -number of arguments, whether it should be ignored, etc. Integer -identifiers are used for each Latex command for efficiency when -generating output. A hash table MacroDefs stores all the TexMacroDefs, -indexed on command name. - -Each unit of a Latex file is stored in a TexChunk. A TexChunk can be -a macro, argument or just a string: a TexChunk macro has child -chunks for the arguments, and each argument will have one or more -children for representing another command or a simple string. - -Parsing -------- - -Parsing is relatively add hoc. read_a_line reads in a line at a time, -doing some processing for file commands (e.g. input, verbatiminclude). -File handles are stored in a stack so file input commands may be nested. - -ParseArg parses an argument (which might be the whole Latex input, -which is treated as an argument) or a single command, or a command -argument. The parsing gets a little hairy because an environment, -a normal command and bracketed commands (e.g. {\bf thing}) all get -parsed into the same format. An environment, for example, -is usually a one-argument command, as is {\bf thing}. It also -deals with user-defined macros. - -Whilst parsing, the function MatchMacro gets called to -attempt to find a command following a backslash (or the -start of an environment). ParseMacroBody parses the -arguments of a command when one is found. - -Generation ----------- - -The upshot of parsing is a hierarchy of TexChunks. -TraverseFromDocument calls the recursive TraverseFromChunk, -and is called by the 'client' converter application to -start the generation process. TraverseFromChunk -calls the two functions OnMacro and OnArgument, -twice for each chunk to allow for preprocessing -and postprocessing of each macro or argument. - -The client defines OnMacro and OnArgument to test -the command identifier, and output the appropriate -code. To help do this, the function TexOutput -outputs to the current stream(s), and -SetCurrentOutput(s) allows the setting of one -or two output streams for the output to be sent to. -Usually two outputs at a time are sufficient for -hypertext applications where a title is likely -to appear in an index and as a section header. - -There are support functions for getting the string -data for the current chunk (GetArgData) and the -current chunk (GetArgChunk). If you have a handle -on a chunk, you can output it several times by calling -TraverseChildrenFromChunk (not TraverseFromChunk because -that causes infinite recursion). - -The client (here, Tex2RTF) also defines OnError and OnInform output -functions appropriate to the desired user interface. - -References ----------- - -Adding, finding and resolving references are supported -with functions from texutils.cc. WriteTexReferences -and ReadTexReferences allow saving and reading references -between conversion processes, rather like real LaTeX. - -Bibliography ------------- - -Again texutils.cc provides functions for reading in .bib files and -resolving references. The function OutputBibItem gives a generic way -outputting bibliography items, by 'faking' calls to OnMacro and -OnArgument, allowing the existing low-level client code to take care of -formatting. - -Units ------ - -Unit parsing code is in texutils.cc as ParseUnitArgument. It converts -units to points. - -Common errors -------------- - -1) Macro not found: \end{center} ... - -Rewrite: - -\begin{center} -{\large{\underline{A}}} -\end{center} - -as: - -\begin{center} -{\large \underline{A}} -\end{center} - -2) Tables crash RTF. Set 'compatibility ' to TRUE in .ini file; also -check for \\ end of row characters on their own on a line, insert -correct number of ampersands for the number of columns. E.g. - -hello & world\\ -\\ - -becomes - -hello & world\\ -&\\ - -3) If list items indent erratically, try increasing -listItemIndent to give more space between label and following text. -A global replace of '\item [' to '\item[' may also be helpful to remove -unnecessary space before the item label. - -4) Missing figure or section references: ensure all labels _directly_ follow captions -or sections (no intervening white space). diff --git a/utils/tex2rtf/docs/psbox.tex b/utils/tex2rtf/docs/psbox.tex deleted file mode 100644 index b7438f4f29..0000000000 --- a/utils/tex2rtf/docs/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'll 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 crazyness 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's 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 uggly) -% 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/utils/tex2rtf/docs/readme.txt b/utils/tex2rtf/docs/readme.txt deleted file mode 100644 index 6709d2eafc..0000000000 --- a/utils/tex2rtf/docs/readme.txt +++ /dev/null @@ -1,81 +0,0 @@ - -+++++ Announcing Tex2RTF +++++ -+++++ A Free LaTeX to RTF, Windows Help RTF, HTML & wxHelp converter +++++ - -Purpose -======= - - * Allows you to maintain manuals in printed and hypertext formats. - - * Allows conversion of existing LaTeX documents to word processor - formats (usually some 'tweaking' is required to conform to - Tex2RTF restrictions). - -Input -===== - -A LaTeX subset with some additional hypertext macros; no maths, -minimal table support. - -Caveat: Please do not expect to convert arbitrary LaTex files without -editing: this is not the primary intention of Tex2RTF. Success converting -existing LaTeX depends on your expectations and the style in which -the LaTeX was written. Tex2RTF does not accept pure TeX (non-LaTeX) -documents. - -Output -====== - - * ordinary RTF - - * Windows Help hypertext RTF - - * HTML (the World Wide Web hypertext format) - - * wxHelp (the wxWindows GUI library help file format) - -Installation -============ - -Under Windows, please run the supplied install.exe program. The Tex2RTF -manual itself serves as an example input file, in the docs subdirectory -with various .sty, .ini, and .gif files that you may need for your -own documents. See the online manual for further details. - -Platforms supported -=================== - - * SPARC Open Look - - * SPARC Motif - - * Windows 3.1 - -Where to get it -=============== - -The latest version of Tex2RTF can be accessed by anonymous ftp from -ftp.aiai.ed.ac.uk in the directory /pub/packages/tex2rtf. -The WWW pages are at http://www.aiai.ed.ac.uk/~jacs/tex2rtf.html. - -Tex2RTF was developed using the free Open Look/Motif/Windows 3.1 C++ -class library wxWindows, also available from the above FTP site in the -/pub/packages/wxwin directory. -The wxWindows WWW pages are at http://www.aiai.ed.ac.uk/~jacs/wxwin.html. - - ------------------------------------------------------------------- -Julian Smart, November 1995 - -Artificial Intelligence Applications Institute -University of Edinburgh -80 South Bridge -Edinburgh -Scotland -EH1 1HN - -EMAIL: J.Smart@ed.ac.uk -TEL: 0131 650 2746 - - - diff --git a/utils/tex2rtf/docs/refs.bib b/utils/tex2rtf/docs/refs.bib deleted file mode 100644 index 0d145e5a8f..0000000000 --- a/utils/tex2rtf/docs/refs.bib +++ /dev/null @@ -1,35 +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{kopka, -author = {Kopka, Helmut and Daly, Patrick W.} -, title = {A Guide to LaTeX} -, publisher = {Addison-Wesley} -, year = {1993} -} -@book{pfeiffer, -author = {Pfeiffer, Katherine Shelly} -, title = {Word for Windows Design Companion} -, publisher = {Ventana Press} -, year = {1994} -} -@manual{smart93a, -author = {Smart, Julian} -, title = {wxWindows 1.50 User Manual} -, publisher = {Artificial Intelligence Applications Institute} -, organization = {University of Edinburgh} -, address = {80 South Bridge, Edinburgh, EH1 1HN} -, year = {1993} -} - diff --git a/utils/tex2rtf/docs/screen.bmp b/utils/tex2rtf/docs/screen.bmp deleted file mode 100644 index 5dacb0924a741af6b414a2ac0980708e6022571f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66010 zcmeHNyOP^F5~ZuQG&j?J#(u}W@&1E?Erl*cs~b*cXIuM4_IGULXyVDnnf9F100~O; zT&hL2Myke0B+x)VP9FdSW&i%q|9$$@vHTm~f8hIHH2=W&Q};KDyML8_*8g6~IY1DBAP;1c~ar@~?yBNjHx8>k>T2##j(Arnur4kTDjbecB21U*q728)HGZ zl@|b+z(TZh%T2L#m_<0E+Z@An8cTbKe;3wGvDCGL2=&@AjfD_rm2fPgp)3Tg7p|CL z?UO1X<0`s?^}@)BWryX?eGGsQzCHsl1k>zevuKH5`wHuH){L<O5>&#}ehZw)4vHXC#6Z;|iF zU$0w$<+={OHgjxlfkJa*@=E(*WAzZ7g&{ErvcH~pGeuAgLw zhvdbPv;dXlB_PQT7s-nwX#pz9OF)txE|M2V(gIYHmw+TYTqG}!qy?xXF9At*xJX_c zNefU(UILQraFM(?k`|znyaXiK;Ual)BrQNCc?n3e!$tDqNLqkO@)D3_hl}LJk+cAn z~N91IFc5ilDq^Y+2JC2aU?B3C3y)*vcpC4;z(M6O7aqrWQU97#gViCmEH$ zK$0CUk{3tP0#uThfFwIyBrlGn1*jx10ZDeaNM0OC3s6a30+Q@-k-RvP7NC;61SHwv zB6)EnEkGrC2}rWTMe^cET7XLO5|Ctvi{!KtrXN{s_vHHt$@FUQ7|2`mg~ z6bYh|NKux~c1+2;x`~A#ZjS|VXc{T?EiVu&zlc&3=!h38F$L%|Hg1oFAq`VwgoRXT zhV{~cyS_$d$V)+DGw^0}OkpvkwXGMiG0ZW>%1*{-3x_QU#0z_gr7Wsap(LUltrx_? zeQe$DV;zFyj3Z-+5VvmK3osN-;rmF^llMSDW!HIP&WcCu{I&I zs>xbSgxs%z1+3m4i?*YhLQNGkEG`DuB!1wCbFQkC`zvN53znR^j{D27#cwSyiyIF% zm{@`nKGR+DGBZ)Z!yc9wY@Yn^NzI2gpY{6F9t$a-?&{FN1+O?5Cy_L$B@uRH)4)*^ z?>#&SXyc}BoggIAhFv!A)|t7l??UHLJK}}T^uX2$i-8J@MQpGr(P@it3Kj&U+90YL zuz)ZbwV6@{E+j$&cNW5 z56$yyGElrOh~@l17S>o23vKZ*S$}wBsBBXrsg934LN@gAsm@-VEg@H3L(CA>2QySQ zIgPVWy$pYE0@&bpuk9RboYK7&!&0t%T`zyNUx$63^b3|!tHbPGv9!`^Kv;&3Dt6p| zfn~6Se|pftpWgJ-LqS|eKw6LxDEZN_ar9_4W@M`B)0_zmPcJ{eG84_u!qL_8c~!IeO7h6VYp1y#0q>vMs1Y_}FW_E3i1te>xH0o^-jd-YHZvCRP9j%#Gel;w= zi0NL$BVO($=wHP7fLOT6KT6p@?MvBhUp`;<*;4)UR=0A6#bOfzbfDYsh5Fl<&DUCf ztCi>SzTaSxyGt%`g+erpxm0;aTOcG<+jV&%n$6D&VO=YyST0GK=@P+9$vuJv0|JIS zqCi2Lb@zu*wm;s=MEbfel|N6h$lXO3G1A8kzlgrz5JEIAD=_)8nT5rlu$pNEyIE~t zy6$tg-FBOMuw0fiY9sGIRxcYMus?Vv3P|wb47=0?49uEi z7v@arm;x)r4+1)|VL%|^hhQ#r0t@f*V!OeY-K9CBejx&36Hr&6eKvLo=F$QOTrb>x zC)WPX9+kjyY0{8$n`2lfTkyg)f;H0#7~ovIT+9Km?7D&l)}QvnKDN^#=XDug3K4a+ zbYSEKDEI+DK)twVjuC-)0TKHa3$UT=cNb1&Q)k%P$3A0*0f_`q?g=K-P>G@I#{sC4%hf#y;wsu_P=-qv6 zQC>J*`|P8-VVgo#`ko6av#>0Zwd)%h&oL4)HODSUR-o!EUY6Kpu20MR&;3Q$%k>G` z)R+FB{m*mt%+Gas_ocj77FKXB=xg^<>0gQWkB8;%r`KZw=%?I5r?KmAW78fspeM0R z=fn2yb8=(M~-{#eC0 zW|B~wU!Ew1#6(c<(BP#g@y(mB-W+4cZkSl11wW`Qxn3AK3?E^U3_@aIm~d%VxWRmyN=-SZh^M#ex_ZWQQx;h`}mqYecylWMD4D0TBP;~SK6$tBII4(DdcsRl>Np+98kUr2TcT`tF?=?KvN5ss?=A<9at?C0K|gNeMAMTJri(XE2f8II269ZQIrHM z&?dqa<5ll35=bcH7>)rPNXtMW!LnG)evbuyxWV97KlIFy*u!viGy1Guq$O;Ol_qag zLN70JW4_oAC+u067j0fJuK?7jSmM)j$~<`XsWJk>%MR- z&vb3y=ArL=&jY@oa7Zi~kI1BQ$!t2G(5Q4uty+h`t9HxndcWYXckuN^y*ll9QB`mY0~Bnt_f}62! zL%Dt(Tke__FWYl_`Tf1Dc{57Ad|^sm9ko#q1h8W>)=~QLt;jZ~;Zw~yG;WEX9k+HG zoGozDnKxoRzO!U!-RzdswjGOO^QSbK_ZCN#H|D&^uNN0RH#ttN%x7}u%6?&D>D1Tu z&2E#t_Vp8aqt9BkJNE4%5&niBebMMQ-+f;hb`3`H33XU~5QYbqc<4Zf-8$Cv7fxVG zg*41Kd10uKH`_FY)P~sLM~e~DHK^8af50e-jIPkQh>fMJSVW6128E*@KPD1njyx(d zWGFfkQDl!yHtFP(#4rfulvGw3pBq?aspXbjcIoApV1_B?m}IW-M3Q8rspgt&w&^CD zXznP%nQzu<=bd=wspk)8&UrwYfCeh)poC^I0c}!Rspz7NN>kROkV1;USdms*)}*xg z8D|iXI3S0o27oH+r=*5j>Zqosit4JTwyLVDtiCF1thB;v>#VoditDbr_L}RjyaMZM zu*42)Y%dQa0oz#0{$l#4rinHx?X*uai^Q_YUhC|kf3|aMvBHK6?zrEUE3UcZo~v%U z?4s-Ly1iO^1h&l@3N3up)(Dy(hoOkgzWJIWuMzZWYpMjKDJC98JCdSJ?-^3p!{&MS* zZ(j-AO`K*hDfW@o$AnqZ-%9Mm5kTY;cUD9Op>KI@SW@$j6R71gD>=(({*sy3)aED+Y0PbU^PIb!X4sHfO;?(; zl;Ct`Hsv|YdXjUV*lcDh-8oEgg3^@x+-E!g3APICGM@a@CO!qa%zM(aprK?aI{qhG zN_BeDpzZAEKqWcPfJW4nAnoW!GaAl=nv|p=b*M%~3R0B16qxpG=}JfX&WCzbrZg=n zMRBQ1R0eaV52T*T2z6u^Q&=1>Rhu~Sh=n>uRpCTUw7))w_?_^ijC}24;$HhGFGn43~Oae z`&rRy_O2UU?Or!~&dw$_tw9YfZXL_ghbmO37bR+I5zE`(zO}egEiFT@{+e4krWUUD z1TJkcY1`>q_qv;fEp{VmTMQ(U1JKOCcB83*(2m!e)jh9z*K0}bvR9GmeXo4yOW*pM z#iI7juYUKt-9onUzW@%ffIEO+{u=ne2G{{8Jr2naNRZ?~pxNWGpkep!EDPKL3g1y^h(P zVQ#XQJG^FqCfCauHnW>0dgdUfIm%-`GCUzlObjErqe|#Y>iNcgxIU zFcZ4bji#xQlRRk{JDSax9<)Ls+sjIK`pH%9@r%WLWl(3?&q2Pbsn;x1R%g1>gif@g zyZmKFd)m&d&h?{l?Pxfc_|m+F^+|Od>R#iz)IEl?vGqynJ)e2hYF;(42Tko}%X-!| zU2zAe7u5p?cDEV+ zaD$8d)0kd&sa2kGVb43@@6PzW6^>_Qi(2ONW_iOU{PF%|AG*!=q>D+~$FGANvYn0d^Zt83>JnGAw~3AJou_}ls<(Y2_kPbe zeg-IQJEw9Dw{gqoVk<{)3FvVDH(vorawu193%G#yXK~Y)a4>g(5C>)g2!RK9coUdi zU509b)^r#Mf3R18%$0Aj$8;HpW_a~;BB*c3H-H;>f)r?XJ{W{TxOYNWgs4Y^MwoJXhM0)g1&E5+h%rWp zju?r>1c{PZiH*dFmY9i^M~Rx)iGhTP{+<|$(u9bjSc;EGil&%~-^Gcl*ov^kimn)o z6@`kjSc|L#i?$expqPuIxQo2#iN5%Yni!12XoHZdjRtv;-k6XI8IBCukmUG~5P6OgIg#pEkrvsG z7@3jqxRD$=j~@Av_85{PnU5q{lKgm*DEW^nxsn3ek}g@0v>21s2$M8ojYN?bn*_K&omT)?%S(qkCn23p!b-9=fhL?_sU62`>)-{=w`G<{pnP#V$nt7C&*_ruenV{KM zpE;Uq$eE^@ccPh^hj^H*>64}Tns*qRvUy&sS(|!Co46^Ny1AQ`*_*zJnW!0@YdM_6 z>6Wf}oOpMe$~lR~*_?L?oY1*p(m9>2sVUY;cg&fce^;H{If&2sogU|%;;Bj7S)PY< zp6Dq^>bahyM4s-+P4NC1pWHQ{^r>X_d7qbw`k>CWpb|<*6k4H4b)gvgOB%YN%haJBnoJ-Xq7&+%Bno#UdZI*TqAJQ) z5!#|+lcF#>i^(~o*jA%93ZXKZqcO^&JbImm@}oD3okFUkK3b&UiK9rmh&!62FWRC{ zs-jVPqEkwuRT`pK>Y-V>p<9ZfU0R`EDxqQepkvCQWtyO8YM^O4p#C*rZu+Khnnu$E zTzE4_&ax+Xnx}fYr+oS+bTldcRX}%RGX}INeR`;fny8BE1ccfH%Mz#r!#+gNHH%uQ zmU^j}Di(q&I{uo{shgTL*K?p9864;i!_jJECf;uo|nf3I>_Os-0>t zd9yd5x;}gdFr*!iZyIQEhx~$CFtU@3!S5vIn2Cc~2s-fDe&YG>- zYN^!fIh?Ahb>k<=YOC8?uI5Ur-Ksg#>Ng#utJcb^=Nhl_ny8u63G3>qWninH`l|EV zul{N$wVJBN8mXwd1C;u&2%E5KQm}&xuCB_koT{)AJF&F7ueX{hM`T9WqOk`{u^#)e zQLscDd$G^LvCCqz{0g!vyRs~TvLqX)FdMTn>m}2~vNn6Od|F62yR$rdCpz1+KpV7V z@Uxa}EBsbQOK279(>>!@tIsA=mrYx}l|YPNKHsB!D9d~>&mYPU~>1@A)zKXCzivo|5z ztXb==jy1{!V!^^y)n?2r}uYVh^%Nw|~%e$fTz2+;czk9veo2T33 z8@STTyn0Ik$>ur!O#oAm5aX&e7+!@ydfOH)(gNCth#Qi!37+>&AYn@#J#qwz~Gy{ zvJ1WTyEWA7xFtNnCyXb4+rtCA!*dJ7b@IbR%q9{%#7EpFM!dvnlEh={#7vyRQoJTm zyth?s#Z;WdWN^g+%*9>M#9-_NUM!4`YR1X?!ehL~+Df!+{Kn4OrZYRobX>6Sj94_=+Rd=KeBU|uR(1Q)acql~UDb8( zJ@=gRo!7lp-Q_E-8L5j%JhLM^@=*O;^qq&!$vOG@#jnhK7xe#r4j28qBZ5=z+_45% zbY*8}M^;u=FyZtR=h(vs2T8ar%eSOmYh>-(a&|szw;EZeH8JeAYOQ6NlU|LTY%VK0 ztE6PtzUR6buY=6SuVlSt5MIfK%l`+;bz)@z%34vjfu@E-YFVpR17WR|WjHacW;emY zL$XY?X+1G+;(m(APp3>#%`4hcH3Vv9!sZJH>KT|pP|zd$q@Im2J-~VLKrP;_mI$n; zmM$c5Rky~ifju(Cnl*0?g*#>q`1kQjqqx6U6#JPuuF+w9G{zQYkto|j!~)Wk__S(K zwoN`J1g^k2%T`F(W{Zl-gne;5Km(um7?pc=EYD|A!%uxeM#L56T53dWlB|z#!&&LE z{dCYu8ktY1#D~32E|uZxrq_-cZv2f&{5|&DJc9kPu1|@|v?2f$-1*favBvwJiZ6wYmP7;?VX!6MYD#=~$lAKL~OOoS(pFI-LbKn_}4xz~X6cinL4lb$Pw-kdE(l8|@Mj$~1Rw#lO_ZW(HlhZhqOBF?K)i7QQ5Pdj6%T~dpo!|x` zNK#>&Gy<6Wq~}%F1wC>%0FXPXF-7bo1pwlNX@)}mobW+OCajYMfW`?z^akIXz@oha zAn?p+*gbP$jg5E5B5r0Xb({`Dfi7DD0B~5lAZi&zs5XYj#R&{HWsKLRAq0S)@ z8hZOA( z*{%mq!P5>F9_<;W>Tc671dUO)0BRZ$6O<|qakD9}2H=rZStgVj>zul&Xed(HqI= zk$W3eV0xK5f?FlG9pqBj0A+3WPWSo)fuu!ja(hRA%-&oIvr0bO7(=-Jn z4>~@-G>h1w5)f_WQco-dRjr5sggivfFA7(hweHQrWm`4 zqUZZr3{q1xSvU08mdZ@-ouCl&iPbeGeMVtAmSJc6vqe^Dw|>CPf;qw z=y`$2ty8iz>lTNq%80rZZp@#B8Hcb{I zVLy_Qf_)+6@EvZ4FpLc}v*pzIO1up%Br^c;)D$S8FpGCLoZM?ZgPhm#K|lW#wj-!K zqc<`ZLk%C?)}V*mS3CyuD8|p3m$(%%QUEs11&hcF!OC?IJ%66mv1u!G zxKgbhv+fVX42QvU6d0^6b(Qow_8Nkh$MXUGdWqg3wn$*&0%M;F>$(YW@!6qHqp(oF zKM(wYx70vNqks;E?GKHJQxLZ_h4j$O1#*TBFd%Cix%WcI13I-I8o3NPl2do@!X2Mh zx*HXz;b9p(WcN5?x;h~r=rr5hYjqv@=scbhr{t0*AU(5PK{?JW#zoD+u<&Jlk&Co)dj$TYx)!#jmAH~PB zhgQMYRMO@piSNbfr8ts*Vu(%?M0CssG9LA$ianOMlPCpC zhOU6or8q?rSQ!jSQ=;^PV+R_Mq!aL;@00l632zn4)jyYZQT4OwOS1_!~ zQ!<$ONG@#8{p*`omlj)Bm(D#WuU~z2;d1lU%RiW3y84C$`m?gQG{5xb;+4zIg@X81 ad3~Yz=J)4Iw)3DYF3!KUF#pEFy!;OyBgB{h diff --git a/utils/tex2rtf/docs/tex2rtf.hpj b/utils/tex2rtf/docs/tex2rtf.hpj deleted file mode 100644 index b00537e2d3..0000000000 --- a/utils/tex2rtf/docs/tex2rtf.hpj +++ /dev/null @@ -1,17 +0,0 @@ -[OPTIONS] -BMROOT=d:\wx2\wxWind~1\utils\tex2rtf\docs ; Assume that bitmaps are where the source is -TITLE=Tex2RTF Manual -CONTENTS=Contents -COMPRESS=HIGH - -[FILES] -tex2rtf.rtf - -[CONFIG] -CreateButton("Up", "&Up", "JumpId(`tex2rtf.hlp', `Contents')") -BrowseButtons() - -[MAP] - -[BITMAPS] - diff --git a/utils/tex2rtf/docs/tex2rtf.ini b/utils/tex2rtf/docs/tex2rtf.ini deleted file mode 100644 index fae52d1baf..0000000000 --- a/utils/tex2rtf/docs/tex2rtf.ini +++ /dev/null @@ -1,21 +0,0 @@ -; Tex2RTF initialisation file for 16-bit WinHelp -runTwice = yes -titleFontSize = 12 -authorFontSize = 10 -chapterFontSize = 12 -sectionFontSize = 12 -subsectionFontSize = 12 -headerRule = yes -footerRule = yes -useHeadingStyles = yes -contentsDepth = 2 -listItemIndent=40 -winHelpContents = yes -winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95 -generateHPJ = yes -htmlBrowseButtons = bitmap -winHelpTitle = "Tex2RTF Manual" -truncateFilenames = yes -combineSubSections = yes -htmlIndex = yes -htmlFrameContents = no diff --git a/utils/tex2rtf/docs/tex2rtf.tex b/utils/tex2rtf/docs/tex2rtf.tex deleted file mode 100644 index 014c3e2648..0000000000 --- a/utils/tex2rtf/docs/tex2rtf.tex +++ /dev/null @@ -1,3299 +0,0 @@ -\documentstyle[a4,makeidx,verbatim,texhelp,fancyhea,mysober,mytitle]{report}% -\input{psbox.tex} -\newcommand{\commandref}[2]{\helpref{{\tt $\backslash$#1}}{#2}}% -\newcommand{\commandrefn}[2]{\helprefn{{\tt $\backslash$#1}}{#2}\index{#1}}% -\newcommand{\commandpageref}[2]{\latexignore{\helprefn{{\tt $\backslash$#1}}{#2}}\latexonly{{\tt $\backslash$#1} {\it page \pageref{#2}}}\index{#1}}% -\newcommand{\indexit}[1]{#1\index{#1}}% -\newcommand{\inioption}[1]{{\bf {\tt #1}}\index{#1}}% -\parskip=10pt% -\parindent=0pt% -%\backgroundcolour{255;255;255}\textcolour{0;0;0}% Has an effect in HTML only -\winhelpignore{\title{Manual for Tex2RTF 1.64:\\A \LaTeX\ to RTF and HTML converter}% -\author{Julian Smart}% -\date{October 1997}% -}% -\winhelponly{\title{Manual for Tex2RTF 1.64}% -\author{by Julian Smart\\$$\image{1cm;0cm}{tex2rtf.wmf}$$}% -}% -\makeindex% -\begin{document}% -\maketitle% -\pagestyle{fancyplain}% -\bibliographystyle{plain}% -\pagenumbering{roman}% -\setheader{{\it CONTENTS}}{}{}{}{}{{\it CONTENTS}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\tableofcontents% - -\chapter*{Copyright notice}% -\setheader{{\it COPYRIGHT}}{}{}{}{}{{\it COPYRIGHT}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -Copyright (c) 1997 Julian Smart. - -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 JULIAN SMART OR THE ARTIFICIAL INTELLIGENCE -APPLICATIONS INSTITUTE OR UNIVERSITY OF EDINBURGH 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{Introduction}% -\pagenumbering{arabic}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -This document describes a utility for converting \popref{\LaTeX}{latexgloss}\ files into -several other formats. - -Only a subset of \LaTeX\ can be processed by this utility, especially -since the target document language will never perfectly match \LaTeX. -Whether the quality of the results is good enough will depend upon the -application and your own expectations. {\it This caveat is worth emphasizing}, because -many people assume that any old \LaTeX\ document will go through without modification: it might, -but the chances are you'll need to modify it a bit for Tex2RTF. Tex2RTF was written with -portable document maintenance and generation in mind, with less emphasis on accepting all \LaTeX\ syntax. -You have been warned! - -Tex2RTF is heavily biased towards making on-line, hypertext versions of -\rtfsp\LaTeX\ documents, but the \popref{RTF}{rtf} converter can be used to generate linear, -paper-based documents too. - -The latest version of Tex2RTF, plus source code, can be accessedfrom: - -\begin{verbatim} -http://web.ukonline.co.uk/julian.smart/tex2rtf -ftp://www.remstar.com/pub/wxwin/tex2rtf -\end{verbatim} - -It is available in Sun Open Look, Motif, Windows 3.1, Windows 95/NT, and -non-GUI UNIX versions. - -Tex2RTF was developed using the free Open Look, Motif and Windows 3.1 -C++ class library \popref{wxWindows}{wxwindows}. - -\section{Status of Tex2RTF}\index{status of Tex2RTF}% - -Tex2RTF is under continual development, often following users' -suggestions. From version 1.33, Tex2RTF is effectively in a second phase -of development. In addition to the bare minimum of syntax and facilities -for producing useable help systems or linear RTF, commands are being -added to allow visually effective, even aesthetically pleasing, -documentation to be produced. - -Examples are the \verb$\indented$, \verb$\twocollist$ and \verb$\marginpar$\rtfsp -commands; over time I hope to be able to reproduce most of the popular -styles of formatting and presentation in Windows Help files, whilst -allowing a reasonable equivalent to be generated in the other formats. - -Some new developments in the various formats still need to be catered -for by Tex2RTF, such as Windows 95 help files and HTML 3.0. Features -that can be added to Tex2RTF as a result of these developments include -math and inline image map support in HTML, table support in Windows -Help, and generally better formatting abilities in both. However, documentation -about these formats is sketchy at the time of writing (October 1995). - -\section{Acknowledgements}\index{acknowledgements}% - -Thanks are due to the many people in AIAI and on the Internet at large -who have pointed out bugs or shortcomings in Tex2RTF. Michel Lavaud has been -a great help in giving advice for improvements to the manual. - -\section{Change log}\index{change log}% - -Version 1.64, October 20th 1998 - -\begin{itemize}\itemsep=0pt -\item Added \verb$\insertatlevel$ command. -\end{itemize} - -Version 1.63, October 21st 1997 - -\begin{itemize}\itemsep=0pt -\item Debugged problem with Word bookmarks not being inserted for unnumbered -sections. -\end{itemize} - -Version 1.62, August 18th 1997 - -\begin{itemize}\itemsep=0pt -\item Added contributed changes by Andreas Münzenmaier to support German -accents by allowing the characters to be placed in input files, and also -converting them back to character codes in the WinHelp {\tt .cnt} file. -\item Now \verb$\helpref$ causes page references to be inserted in linear RTF, -or section references if not on Word mode. -\item WinHelp table caption bug fixed. -\end{itemize} - -Version 1.61, June 11th 1997 - -\begin{itemize}\itemsep=0pt -\item \verb$\fcol$ now works in HTML using the FONT tag. -\item \verb$\twocollist$ works in indented paragraphs, and is now -implemented properly using tables in HTML. -\item New boolean option {\bf combineSubSections} added, which switches off -the generation of separate HTML files below section level. This can reduce the -number of HTML files substantially. -\end{itemize} - -Version 1.60, February 18th 1997 - -\begin{itemize}\itemsep=0pt -\item The index command now allows complex LaTeX instead of inserting the -first argument verbatim. -\end{itemize} - -Version 1.59, February 14th 1997 - -\begin{itemize}\itemsep=0pt -\item Added special processing for a chapter called Popups. -\end{itemize} - -Version 1.58, August 1st 1996 - -\begin{itemize}\itemsep=0pt -\item Added HTML settings: backgroundImage, backgroundColour, textColour, -linkColour, followedLinkColour. -\item Added \verb$\backgroundimage$, \verb$\backgroundcolour$, \verb$\linkcolour$, -\verb$followedLinkColour$. \verb$\background$ now obsolete (but behaviour is -backward compatible). -\item The default background colour is now white. -\item Debugged HTML \verb$\ss$ (put in wrong place in code). -\end{itemize} - -Version 1.57, July 27th 1996 - -\begin{itemize}\itemsep=0pt -\item Added upperCaseNames setting; now all links in HTML files are in lower -case unless specified otherwise. -\end{itemize} - -Version 1.56, May 25th 1996 - -\begin{itemize}\itemsep=0pt -\item Debugged \verb$\special$ processing for HTML (escaped characters such ampersand). -\item Added contentsDepth for Word RTF contents page. -\item Removed overlapping href in HTML pages. -\end{itemize} - -Version 1.55, May 6th 1996 - -\begin{itemize}\itemsep=0pt -\item \verb$\verb$ support corrected for HTML. -\item Added {\it abstractName} setting. -\item Debugged incorrect centring for HTML buttons. -\end{itemize} - -Version 1.54, Feburary 28th 1996 - -\begin{itemize}\itemsep=0pt -\item Bug fix for 24-bit bitmap inclusion when generating RTF: -caused a floating point error. -\item Added htmlIndex setting, to generate an {\tt .htx} index file of an HTML document for -use in wxHelp version 2 or other programs. -\item Fixed header/footer bug. -\item Change colons to spaces for WinHelp RTF keywords, since the colon has a specific meaning in WinHelp. -\end{itemize} - -Version 1.53, January 1995 - -\begin{itemize}\itemsep=0pt -\item Now stores paths from file inclusions, so that if you include -a file A from a separate directory, which then includes a file B -relative to that directory, Tex2RTF will search in the path -of A to find file B. -\end{itemize} - -Version 1.52, December 1995 - -\begin{itemize}\itemsep=0pt -\item \verb$\helpref$ and related commands now generate italicized instead -of bold `anchor' text for linear formats. -\item Cured bug where Tex2RTF could hang on start up, while reading -the {\tt tex2rtf.ini} file. This occurred when a comment finished with -the end of file. -\item Split the commands reference in two (\LaTeX\ and Tex2RTF commands), -and added a {\it Commands by category} section. -\item Removed a bug that caused HTML output to be garbled on the -second pass. -\end{itemize} - -Version 1.51: Windows 95 enhancements. - -\begin{itemize}\itemsep=0pt -\item Added settings winHelpContents (for generating {\tt .cnt} file), winHelpVersion (for specifying -target version of WinHelp). -\item Added space to non-scrolling region of topic. -\item If winHelpVersion is 4, makes non-scrolling region grey and the rest yellow. -\item Added \verb$\settransparency$ command for WinHelp 4 transparent bitmaps. -\end{itemize} - -Version 1.50: - -\begin{itemize}\itemsep=0pt -\item Tidied up HTML generation (headers and bodies in the right places). -\item Eliminated extra space after verbatim in HTML. -\item Added support for simple tables in HTML. -\item Added \verb$\textcolour$, \verb$\background$ for colouring text and background in HTML. -\item Added \verb$\copyright$, \verb$\registered$ symbols in HTML. -\item Added \verb$\imagel$, \verb$\imager$ for left and right aligned images -in HTML. -\item Added \verb$\brclear$ for clearing image alignment in HTML. -\item Added \LaTeX\ font size support in HTML (\verb$\small$, \verb$\large$ etc.) using Netscape font extensions. -\item HTML button-bar change: always shows the same buttons, but may make one or more insensitive. Changing button positions -could be very annoying. -\item Tidied up RTF generation for non-Word viewers ({\it useWord} set to {\it false}). Will now look reasonable using -Windows 95 Quick View and WordPad: WordPad doesn't do tables but does bitmaps, and QuickView does tables but not -bitmaps. Such is life. -\end{itemize} - -Version 1.49: - -\begin{itemize}\itemsep=0pt -\item Cured some bugs (char used for fgetc instead of int) so now compiles for -WIN32s. -\end{itemize} - -Version 1.48: - -\begin{itemize}\itemsep=0pt -\item Added some LaTeX2e fonts commands such as \verb$\rmfamily$, \verb$\textrm$, \verb$\emph$. -Most of these are aliases for other commands. -\end{itemize} - -Up to version 1.47: - -\begin{itemize}\itemsep=0pt -\item Added \verb$\backslashraw$, \verb$\rbraceraw$ and \verb$\lbraceraw$ commands -to help output arbitrary RTF. -\item Added \verb$\sethotspotcolour$, \verb$\sethotspotunderline$ commands for controlling -WinHelp hotspot appearance. -\item Added truncateFilenames option. -\item Improved HTML inline image handling. -\end{itemize} - -Up to version 1.46: - -\begin{itemize} -\itemsep=0pt -\item Added \verb$\urlref$ command for specifying HTML URLs. -\item Started support for translating .SHG files to HTML .map files -(this works if compiled under Borland, not MS VC++ for some reason!) -\item Fixed nasty memory bug in HTML code (thanks Petr). -\end{itemize} - -Version 1.40: - -\begin{itemize} -\itemsep=0pt -\item Added {\it generateHPJ} option for generating the .HPJ WinHelp project file -\item Added support for DDE via a small command set -\end{itemize} - -Version 1.39: - -\begin{itemize} -\itemsep=0pt -\item Option for using Word's INCLUDEPICTURE or IMPORT field, since the method that -works for Works, doesn't work for Word! See {\it bitmapMethod} in the -settings section. -\end{itemize} - -Version 1.37-1.38: - -\begin{itemize} -\itemsep=0pt -\item Improved bibliography reading and cured some minor bugs -\item Added \verb$\ss$ German sharp s -\item Added rudimentary \verb$\special$ command (simply copies the argument -to the output) -\item Added missing '.' in subsubsection reference -\item Added primitive internationalisation support with contentsName, tablesName etc. -\end{itemize} - -Version 1.36: - -\begin{itemize} -\itemsep=0pt -\item All HTML special characters now correctly delimited by a semicolon. -\item Cured HTML section-duplicating bug I introduced in 1.35. -\item Cured too much spacing after sections in RTF, introduced in 1.35. -\end{itemize} - -Version 1.35: - -\begin{itemize} -\itemsep=0pt -\item Added TCHECK tool, to help track down common Tex2RTF syntax problems. -\item Included Kresten Thorup's LACHECK \LaTeX\ checking tool with DOS executable. -\item Now ignores \verb|\@| command. -\item Table of contents now includes numbered subsubsections. -\end{itemize} - -Version 1.34: - -\begin{itemize} -\itemsep=0pt -\item Added \verb$\multicolumn$ `support' to stop RTF readers crashing. -\item Added {\it useWord, defaultColumnWidth, compatibility} options to {\tt .ini} file. -\item \verb$\comment$ environment now doesn't complain about unknown syntax. -\item Added \verb$\toocomplex$ environment that treats its contents as -verbatim in output, treated as normal output in true \LaTeX. -\item End-of-line comments allowed in in {\tt .ini} files, using semicolon, -percent or hash characters to denote a comment. -\item For linear RTF, Word for Windows support for \verb$\printindex$,\rtfsp -\verb$\index$, \verb$\pageref$, \verb$\listoftables$, \verb$\listoffigures$, contents page. -\item Added RTF support for various symbols. -\item Added colour support, with \verb$\definecolour$, \verb$\fcol$ and \verb$\bcol$ commands. -\item Fixed some bugs: page numbering problems, macros deleted after first pass. -\end{itemize} - -Version 1.33: - -\begin{itemize} -\itemsep=0pt -\item Added -charset command-line switch. -\item Added \verb$\itemsep$, \verb$\twocolumn$, \verb$\onecolumn$, \verb$\setfooter$, \verb$\setheader$, \verb$\pagestyle$, -\verb$\pagenumbering$, \verb$\thechapter$, \verb$\thesection$, \verb$\thepage$, \verb$\thebibliography$, \verb$\bibitem$ commands. -\item New environment called \verb$\twocollist$ for making two-column lists, -with formatting optimized for target file format. -\item New \verb$\indented$ environment for controlling indentation. -\item List indentation and bulleting improved. -\item Added commands \verb$\normalbox$, \verb$\normalboxd$ for putting borders around text. -\item Many options can now be specified in the {\tt .ini} file along with custom macros. -\item Cured bug that put too much vertical space after some commands. -\item Improved table formatting. -\item Optional `Up' button in WinHelp files for easier navigation. -\item Verbatim lines followed by \verb$\par$ in RTF, to improve WinHelp wrapping. -\item Conversion may now be aborted under Windows by attempting to close the application. -\item Added conditional output for all formats: \verb$\latexignore$, \verb$\latexonly$, \verb$\rtfignore$, \verb$\rtfonly$, -\verb$\winhelpignore$, \verb$\winhelponly$, \verb$\htmlignore$, \verb$\htmlonly$, \verb$\xlpignore$, \verb$\xlponly$. -\item HTML generator can now add Contents, Up, $<<$ and $>>$ buttons (text or bitmap) to -each page except titlepage. -\end{itemize} - -Version 1.32: - -\begin{itemize} -\itemsep=0pt -\item \verb$\footnote$ command now supported in WinHelp RTF, and \verb$\footnotepopup$\rtfsp -added. -\end{itemize} - -Version 1.31: - -\begin{itemize} -\itemsep=0pt -\item \verb$\footnote$ command now supported, in linear RTF only. -\item Added {\tt -bufsize} option, for converting large documents. -\end{itemize} - -Version 1.30: - -\begin{itemize} -\itemsep=0pt -\item \verb$\image$ command now scales metafiles (but not bitmaps). -\item Fixed macro loading bug, now informs the user of the found macro filename. -\item Now supports paragraph and subparagraph commands. -\item Support for some accents added. -\item \verb$\verb$ command now supported. -\item Bug in subsubsection handling fixed. -\item Can save conversion log in a text file. -\end{itemize} - -Version 1.22: - -\begin{itemize} -\itemsep=0pt -\item More informative, warns against use of some commands. -\item Added compile-time support for non-GUI environments (such as plain UNIX). -\item Improved HTML support. -\end{itemize} - -\chapter{Running Tex2RTF}\index{running Tex2RTF}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -Tex2RTF may be run in a number of ways: with or without command line arguments, -interactively or in batch mode, and with an optional initialisation file -for specifying \LaTeX\ macros and detailed options. - -Tex2RTF accepts two arguments (input and output filenames) and trailing -(optional) switches. If both filenames are given, the utility will work -in batch mode. Otherwise, if Tex2RTF has been compiled for GUI -operation, a main window will be shown, with appropriate menu items for -selecting input and output filenames, starting off the conversion -process, and so on. - -Note that if the file {\tt bullet.bmp}\index{bullets} is found by Tex2RTF, this bitmap -will be used as the bullet for items in \verb$\itemize$ lists, for WinHelp -output. Otherwise, a symbol will be inserted (linear RTF) or bold `o' -will be used instead (all other formats). - -Syntax error reporting is fairly minimal. Unrecognised macro errors may -actually be produced by an unbalanced brace or passing the wrong number of -arguments to a command, so look in the vicinity of the error for the -real cause. - -\normalbox{Some of the syntax that is OK for true \LaTeX\ but which trips up -Tex2RTF, may be detected by the TCHECK\index{TCHECK} program included in the tools -directory of the Tex2RTF distribution. Some \LaTeX\ errors may be picked up -by the LACHECK\index{LACHECK} program, also found in the tools directory.} - -It is recommended that you run Tex2RTF twice in order to be sure of -resolving all references and including an up-to-date contents page. - -If importing RTF files into Word for Windows\index{Microsoft Word}, you may need to reformat -the document. The easiest way to do this is to select all text with -CTRL-A, then reformat with F9. Reformat again to ensure all references -are resolved. For the second format, respond with {\it Update Entire -Table} to prompts. - -\winhelponly{ -\section{Tex2RTF Interface} - -This is the Tex2RTF interface under Windows. Click on an area of the -picture for more information. - -$$\imagemap{1cm;0cm}{screen}{mapref}$$ - -\subsection{Menu bar}\label{menubar} - -Use the menubar for interactive operations. - -\subsection{Message area}\label{messagearea} - -Tex2RTF writes warning and error messages on this window. - -\subsection{Status line}\label{statusline} - -Displays help on menu items as the user drags the cursor over the menus. - -\subsection{Mode indicator}\label{modeindicator} - -Displays the output mode Tex2RTF is currently in. -} - -\section{Command line arguments}\index{command line arguments}% - -These are the optional arguments you may give Tex2RTF on the command line. - -\twocolwidtha{5cm} -\begin{twocollist} -\twocolitem{{\bf -bufsize}}{Specifies buffer size in K (default 60 under Windows, -500 under UNIX). Large files (particularly large verbatim environments) -may require a large buffer size, equal to the largest argument of a \LaTeX\ command. -Note that this value may not be larger than 64 under Windows.} -\twocolitem{{\bf -html}}{Specifies HTML (World Wide Web) output.} -\twocolitem{{\bf -interactive}}{Forces interactive mode even if both -filenames are given.} -\twocolitem{{\bf -charset charset}}{Specifies a character set for -RTF production. This can be one of ansi, mac, pc, and pca. -The default is ansi.} -\twocolitem{{\bf -macros filename}}{Specifies a file for the custom macro -file -- see \helpref{Macro not found error}{macronotfound}.} -\twocolitem{{\bf -rtf}}{Specifies linear RTF output.} -\twocolitem{{\bf -sync}}{Forces synchronous mode (no yielding to other -processes) -- usually use this in non-interactive mode.} -\twocolitem{{\bf -twice}}{Tells Tex2RTF to run the conversion twice to ensure all -references and citations are resolved and the contents page included.} -\twocolitem{{\bf -winhelp}}{Specifies Windows Help RTF output.} -\end{twocollist} - -\section{Initialisation file syntax}\label{inifile}\index{initialisation file}% - -The initialisation file contains further detailed options for -customising Tex2RTF's behaviour. A file may be specified -with the {\tt -macros} command line switch, otherwise Tex2RTF -looks for the file {\tt tex2rtf.ini} in the working directory -or input file directory. - -The file may comprise macro\index{macros} (command) definitions or option settings. - -The syntax for a macro definition is: - -\begin{verbatim} - \name [number of args] {...LaTeX code...} -\end{verbatim} - -For example: - -\begin{verbatim} - \crazy [2]{{\bf #2} is crazy but #1 is not} - \something [0]{} - \julian [0]{Julian Smart} -\end{verbatim} - -The syntax for an option setting is: - -\begin{verbatim} - name = value -\end{verbatim} - -or - -\begin{verbatim} - name = "value" -\end{verbatim} - -For example: - -\begin{verbatim} - conversionMode = RTF - runTwice = true - titleFontSize = 12 - authorFontSize = 10 - headerRule = yes - footerRule = yes -\end{verbatim} - -Options expecting boolean values accept {\it 1, 0, true, false, yes, no} in any combination of upper or -lower case. - -End-of-line comments are allowed in an initialisation file, using the -hash, semicolon or percent signs to denote the start of a comment, which runs -until the end of the line. - -\subsection{Tex2RTF options}\index{options in initialisation file}\index{tex2rtf.ini}\index{initialisation file}\index{macros}% - -These are the allowable options in an initialisation file. - -\subsubsection{General options}\label{generaloptions} - -\twocolwidtha{5cm} -\begin{twocollist} -\htmlignore{\twocolitemruled{Option}{Description}} -\twocolitem{\inioption{compatibility}}{Set to true for maximum \LaTeX\ compatibility, e.g. if -tables crash RTF readers. Should be false (default) if the Tex2RTF guidelines -are followed, e.g. use of $\backslash${\tt row} command in tabular environment.} -\twocolitem{\inioption{conversionMode}}{One of RTF, WinHelp, XLP (or wxHelp), and HTML.} -\twocolitem{\inioption{ignoreInput}}{Adds the filename to the list of files ignored by the $\backslash${\tt input} command. -The only default filename in the list is {\tt psbox.tex}.} -\twocolitem{\inioption{isInteractive}}{If true, runs in interactive mode (the default).} -\twocolitem{\inioption{runTwice}}{If true, runs the converter twice.} -\end{twocollist} - -\subsubsection{Presentation options}\index{options, presentation}% - -\begin{twocollist} -\htmlignore{\twocolitemruled{Option}{Description}} -\twocolitem{\inioption{authorFontSize}}{Specifies the point size for the author and date (RTF only).} -\twocolitem{\inioption{chapterFontSize}}{Specifies the point size for chapter headings (RTF only).} -\twocolitem{\inioption{documentFontSize}}{One of 10, 11 and 12, to specify the main font size -independently of the \LaTeX\ document style command.} -\twocolitem{\inioption{sectionFontSize}}{Specifies the point size for section headings (RTF only).} -\twocolitem{\inioption{subsectionFontSize}}{Specifies the point size for subsection headings (RTF only).} -\twocolitem{\inioption{titleFontSize}}{Specifies the point size for the title (RTF only).} -\twocolitem{\inioption{chapterName}}{The string used when referencing chapters. The default is ``chapter".} -\twocolitem{\inioption{sectionName}}{The string used when referencing sections. The default is ``section".} -\twocolitem{\inioption{subsectionName}}{The string used when referencing subsections. The default is ``subsection".} -\twocolitem{\inioption{subsubsectionName}}{The string used when referencing subsubsections. The default is ``subsubsection".} -\twocolitem{\inioption{indexName}}{The string used for printing the index heading. The default is ``Index".} -\twocolitem{\inioption{contentsName}}{The string used for printing the contents heading. The default is ``Contents".} -\twocolitem{\inioption{abstractName}}{The string used for printing the abstract heading. The default is ``Abstract".} -\twocolitem{\inioption{tablesName}}{The string used for printing the list of tables heading. The default is ``List of Tables".} -\twocolitem{\inioption{tableName}}{The string used when referencing a table. The default is ``table".} -\twocolitem{\inioption{figuresName}}{The string used for printing the list of figures heading. The default is ``List of Figures".} -\twocolitem{\inioption{figureName}}{The string used when referencing a figure. The default is ``figure".} -\twocolitem{\inioption{glossaryName}}{The string used for printing the glossary heading. The default is ``Glossary".} -\twocolitem{\inioption{referencesName}}{The string used for printing the references heading. The default is ``References".} -\end{twocollist} - -\subsubsection{RTF and WinHelp options}\label{rtfwinhelpoptions}\index{options, RTF}\index{RTF}% - -\begin{twocollist} -\htmlignore{\twocolitemruled{Option}{Description}} -\twocolitem{\inioption{bitmapMethod}}{Can be ``hex'' (embed the hex data in the file with a $\backslash$dibitmap keyword), -``includepicture'' (use the MS Word 6.0 INCLUDEPICTURE field) or ``import'' (an earlier name -for INCLUDEPICTURE). ``hex'' may be used for importing into MS Works, but this doesn't work -for Word 6.0. The default is ``includepicture''.} -\twocolitem{\inioption{contentsDepth}}{The depth of headings that is displayed in the table of contents. The default -is 4 but you may wish to reduce this, for example for manuals that document C++ and have a large number of -headings for member functions.} -\twocolitem{\inioption{defaultColumnWidth}}{The width in points for columns in tables -where the width of the column is not set by using {\it p} in the tabular -argument. The default is 100.} -\twocolitem{\inioption{footerRule}}{If true, draws a rule above footers (linear RTF only).} -\twocolitem{\inioption{generateHPJ}}{If true, generates a .HPJ project file (WinHelp mode only).} -\twocolitem{\inioption{headerRule}}{If true, draws a rule below headers (linear RTF only).} -\twocolitem{\inioption{listLabelIndent}}{Specifies the size of list item label indentation, in points. -The default is 18.} -\twocolitem{\inioption{listItemIndent}}{Specifies the size of list item indentation, in points. The default -is 40.} -\twocolitem{\inioption{indexSubsections}}{If true (the default), subsection and subsubsection -titles are indexed in RTF mode.} -\twocolitem{\inioption{mirrorMargins}}{If true, margins are mirrored in twosided documents (linear RTF only).} -\twocolitem{\inioption{useWord}}{If true (the default), Word for Windows RTF -formatting is used where possibly, e.g. for the table of contents, list of -tables, and list of figures.} -\twocolitem{\inioption{useHeadingStyles}}{If true (the default), sections are marked with -appropriate heading styles for generating the table of contents in RTF.} -\twocolitem{\inioption{useUpButton}}{If true (the default), WinHelp files will be generated with an {\bf Up}\rtfsp -button to make browsing easier. Note that you need to put an extra line in the CONFIG section -of your .HPJ file: - -{\tt CreateButton("Up", "\&Up", "JumpId(`name.hlp', `Contents')")} - -where {\tt name.hlp} is the name of your help file.} -%%% NEED TO BREAK THE LIST AT THE PAGE BREAK BECAUSE LATEX IS STUPID -%%% UNFORTUNATELY, Tex2RTF IS STUPIDER SO NEED TO COMMENT OUT THIS -%%% LINE WHEN MAKING HTML, RTF, XLP -%\latexonly{\end{twocollist}\newpage\begin{twocollist}} -\twocolitem{\inioption{winHelpContents}}{If yes, ok or true, a WinHelp {\tt .cnt} file will be generated (used in Windows 95 for either old WinHelp -files or new WinHelp 4 files).} -\twocolitem{\inioption{winHelpVersion}}{The version of WinHelp being targetted. This affects the generated {\tt .hpj} file and features -such as transparent bitmaps which are new to version 4 or later. The default is 3.} -\twocolitem{\inioption{winHelpTitle}}{Windows Help file title, inserted into the project file if {\it generateHPJ} is true.} -\end{twocollist} - -\subsubsection{HTML options}\label{htmloptions}\index{options, HTML}\index{HTML}% - -\begin{twocollist} -\htmlignore{\twocolitemruled{Option}{Description}} -\twocolitem{\inioption{htmlBrowseButtons}}{Allows generation of Contents, Up, browse back and browse forward -buttons on each HTML page except title page. Specify none, text or bitmap. If you specify -bitmap, make sure that the files {\tt contents.gif}, {\tt up.gif}, {\tt back.gif} and {\tt forward.gif} are in the -directory where the HTML files will reside: samples are given in the docs directory.} -\twocolitem{\inioption{truncateFilenames}}{If true, uses {\tt .htm} suffix instead of {\tt .html}, -and truncates filenames within HTML documents.} -\twocolitem{\inioption{htmlIndex}}{If true, specifies generation of an {\tt .htx} index file for an HTML document. -This file can be used in wxHelp version 2 or other programs. The file consists of a number of lines, -each line with three fields separated by bar characters: the indexed phrase, the file, and a label in the file.} -\twocolitem{\inioption{upperCaseNames}}{If true, filenames in links are in upper case. By default -filenames are in lower case.} -\twocolitem{\inioption{backgroundColour}}{Specifies the RGB background colour for the document, e.g. {\tt 255;255;255} for white. -The default is white.} -\twocolitem{\inioption{backgroundImage}}{Specifies the RGB background image for the document, e.g. {\tt tile.gif}.} -\twocolitem{\inioption{textColour}}{Specifies the RGB text colour for the document, e.g. {\tt 0;0;0} for black.} -\twocolitem{\inioption{linkColour}}{Specifies the RGB link colour for the document, e.g. {\tt 0;0;255} for blue.} -\twocolitem{\inioption{followedLinkColour}}{Specifies the RGB followed link colour for the document, e.g. {\tt 0;0;255} for blue.} -\twocolitem{\inioption{combineSubSections}}{If true (or yes), switches off -the generation of separate HTML files below section level. This can reduce the -number of HTML files substantially. A subsection contents list is inserted before -the first subsection.} -\end{twocollist} - -\section{DDE commands}\index{DDE}% - -A Windows program can hold a conversation with Tex2RTF using DDE. The Tex2RTF server name is -``TEX2RTF'', and the topic name to use is also ``TEX2RTF''. - -Tex2RTF functionality is accessed using the DDE {\it Execute} message. -The {\it Execute} data should consist of a command name and possibly one -argument, e.g. - -\begin{verbatim} - INPUT c:\docs\mine.tex -\end{verbatim} - -If the command is not recognised, a standard TEX2RTF.INI option is assumed. - -The {\it Request} DDE message can be used to query the return status of an {\it Execute} -command, and will be one of {\it OK} (no error), {\it CONVERSION ERROR}, or a more -specific error string. - -The following DDE commands may be used: - -\begin{twocollist} -\htmlignore{\twocolitemruled{Command}{Description}} -\twocolitem{\inioption{EXIT}}{Takes no argument, and exits Tex2RTF.} -\twocolitem{\inioption{GO}}{Takes no argument, and initiates the conversion.} -\twocolitem{\inioption{INPUT}}{Takes a file name as the argument, and sets the input file to be this name.} -\twocolitem{\inioption{MINIMIZE}}{Takes no argument, and minimizes Tex2RTF.} -\twocolitem{\inioption{OUTPUT}}{Takes a file name as the argument, and sets the input file to be this name.} -\twocolitem{\inioption{RESTORE}}{The same as SHOW.} -\twocolitem{\inioption{SHOW}}{Takes no argument, and unminimizes Tex2RTF.} -\end{twocollist} - -\section{Performance issues}\index{performance}% - -Since Tex2RTF reads the whole file into memory, a lot of memory is needed. -For very large documents, 16MB of RAM is adviseable. - -I tested conversion of the wxWindows 1.63 manual on both VC++ 1.5 and -Watcom WIN32s versions of Tex2RTF, both running under Windows 3.11 on a -Gateway P60 with 16MB of RAM and a 2MB disk cache. Two passes were -made, with 1.5MB of WinHelp RTF being generated. The unoptimized 16-bit -version took 169 seconds. The optimized WIN32s version took 126 seconds, -a significant improvement. Systems with faster disk subsystems should see -an even better relative performance of the 32-bit version. - -\chapter{Writing documents with Tex2RTF}\index{LaTeX}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Why use \LaTeX?} - -\LaTeX\ happens to be a very convenient format if you need to produce -documents (such as manuals, help facilities, up-to-date information) in -both printed and on-line media. Being a language rather than a WYSIWYG system, -it allows explicit specification of layout and document structure, lending -itself well to hypertext applications and automatic document generation. -Many people also prefer to use \LaTeX\ for ordinary use since it encourages -a logical document structure and the user is not distracted by having to perfect -the appearance; many layout decisions are taken by \LaTeX\ automatically. - -Although \LaTeX\ is not as fancy as modern word processors and desk-top -publishing packages, it is for many purposes quite adequate, and sometimes -more flexible than its modern counterparts. - -The conversion utility gives \LaTeX\ a new lease of life by allowing -virtually all other wordprocessor formats to be generated from documents -containing a reasonable subset of \LaTeX\ syntax. From the same \LaTeX\ -sources, we can now generate printed manuals, Windows Help files, \popref{wxHelp}{wxhelp}\rtfsp -files, RTF-compatible word processor formats such as MS Word, and \popref{HTML}{html}\rtfsp -files for use in the World Wide Web. Since the conversion tool is -free, as are \LaTeX, HTML viewers, wxHelp and (effectively) Windows -Help, there are no financial or time penalties for providing -documentation in a wide range of printed and hypertext formats. - -\section{Help versus the printed page}\index{on-line help}% - -The purist may argue, quite rightly, that on-line help systems and -printed manuals have different characteristics; help windows tend to be -much smaller than pages, help topics should be more stand-alone than -pages in a manual, navigation methods are very different, etc. Therefore, -help systems should be {\it based} on printed documentation but -separately hand-crafted into hypertext help, preferably by an -independent person or team. - -This might be the ideal, but many organisations or individuals simply -do not have the time: on-line help wouldn't get done if the -documentation effort had to be doubled. However, Tex2RTF does provide -some commands to allow tailoring the documentation to printed or -on-line form, such as \verb$\helponly$ and \verb$\helpignore$. An awareness -of the design issues should go a long way to making the compromise -a good one, so a book such as {\it Developing On-line Help for Windows} \cite{helpbook} is highly recommended. - -\section{Output Formats}\index{output formats}% - -At present the following output formats are supported: - -\begin{itemize} -\itemsep=0pt -\item RTF (Rich Text Format)\index{RTF}. This is the most well developed -converter. RTF is commonly used as a document exchange format amongst -Windows-based applications, and is the input for the Windows Help -Compiler. Tex2RTF supports both linear documents and Windows Help -hypertext format. -\item HTML (Hypertext Markup Language)\index{HTML}. This an SGML-based format -commonly used by documents in the World Wide Web distributed hypertext -system, and formats text dynamically rather like Windows Help. -\item wxHelp\index{wxHelp}. This is the platform-independent help system for -the class library wxWindows (see the wxWindows User Manual \cite{smart93a}). -It can display ASCII files with embedded codes -for changing font styles, but no formatting is done by wxHelp. -\end{itemize} - -\section{What compromises must I make?}\index{compromises}\index{LaTeX}% - -As a \LaTeX\ user, you need to be aware that some commands or facilities -don't transfer to other formats, either because they are not supported -by the target format or because the converter does not support them. -Maths formatting is a good example of an unsupported feature. - -Sometimes \LaTeX\ facilities must be accessed in a slightly different -way to support the variety of formats, particularly hypertext formats -where \LaTeX\ references are often replaced by hypertext jumps (but must -still look right in printed documentation). Tables don't transfer well -to RTF and HTML (and not at all to wxHelp) but an attempt is made -to approximate tables so long as special row commands are used, instead -of the usual end of row delimiter. - -Bibliographies are handled quite well since the utilities can read in\rtfsp -{\tt .bib} files and resolve citations. Numbers are used in citations; -the references are not yet sorted alphabetically. - -Pictures\index{pictures} are handled in a limited way: if the PSBOX\index{PSBOX} macro package is -used, an \verb$\image$ command can be used to place Encapsulated PostScript -files in \LaTeX, and Windows RGB-encoded bitmap files or placeable -metafiles when converting to RTF. - -Nested file inclusion\index{file inclusion} is handled with \verb$\input$, \verb$\include$ and \verb$\verbatiminput$, -and the comment environment is supported. However, using \verb$\input$\rtfsp -to include macro packages is not advisable. If you do this, -make sure you add a line in the Tex2RTF initialisation file to ignore -this file, unless it's a simple \LaTeX\ file that conforms to Tex2RTF -restrictions. The file {\tt psbox.tex} is the only file ignored -by Tex2RTF by default. - -Because of the way \LaTeX\ is parsed, some syntax\index{syntax restrictions} has to conform to a -few simple rules. Commands such as \verb$\bf$ and \verb$\it$ need to occur -immediately after a left brace, and have a block of their own, since -the text within their scope is regarded as its argument. This syntax -means the same thing as using \verb$\begin ... \end$, which is usually -a one argument command (the argument is the text between the \verb$\begin$\rtfsp -and \verb$\end$). See \helpref{Space}{space}. - -As a Windows hypertext help writer\index{on-line help}, you don't have access to all RTF -commands but you'll be able to get most of what you want. In particular, -any \LaTeX\ document you write will automatically be a hypertext -document, because the converter takes advantage of the hierarchy of -sections. Further jumps can be placed using the commands -\rtfsp\commandrefn{label}{label}, \commandrefn{helpref}{helpref}, -\rtfsp\commandrefn{helprefn}{helprefn}, and \commandrefn{popref}{popref}. -Tex2RTF outputs help files that may be read linearly using the -\rtfsp$<<$ and $>>$ buttons, and an additonal Up button for -ease of navigation. - -When writing HTML, multiple files are generated from one \LaTeX\ file -since browsing HTML works best with many small files rather than a few -large ones. - -wxHelp files are least well supported since there is no formatting -support, only font style, sizes and colours. Still, some hypertext help -support on UNIX/X platforms is better than none. wxHelp is now being rewritten (March 1996) -to use HTML files. - -Sometimes you will use a local macro package that is unrecognised by -the converters. In this case, you may define a custom macro file -where macros are defined in terms of supported \LaTeX\ commands -and text. Even if the result is not the same as in \LaTeX, you -can probably end up with something adequate, and at least avoid -undefined macro errors. See \helpref{Initialisation file syntax}{inifile} for -further information. - -\section{Changes to LaTeX syntax} - -Here are the conventions you need to observe to satisfy the Tex2RTF -parser. - -\subsection{Space}\label{space}\index{space}% - -Tex2RTF attempts to insert spaces where \LaTeX\ assumes whitespace. -However, for the benefit of RTF conversion, you need to use the \commandrefn{rtfsp}{rtfsp} command -where a command or brace within a paragraph begins or ends with a macro. For example: - -\begin{verbatim} - Within a paragraph, you need to be careful about commands - \rtfsp{\it that begin at the start of a line.} -\end{verbatim} - -As normal with \LaTeX, two newlines represents a paragraph break, -although \commandrefn{par}{par} can also be used at the end of a paragraph. - -You need to have a blank line between section and some environment -commands and the first paragraph or your document will look rather -weird, e.g. headings running into paragraphs. - -wxHelp is more fussy than \LaTeX\ or RTF: you need to use percent -characters at line ends liberally to eliminate newlines after commands -on single lines. - -\subsection{Command arguments}\index{LaTeX commands}% - -Commands that have one or more arguments can be used in the following -three ways: - -\begin{verbatim} - \bf{Some text.} - - \begin{bf} - Some text. - \end{bf} - - {\bf Some text.} -\end{verbatim} - -The first method is a normal \LaTeX\ command. - -The second method is called an {\it environment}; \LaTeX\ has specific -environments that do not always correspond to normal commands, but -Tex2RTF recognizes environments and normal commands interchangeably, so -long as the command has no more than two arguments. - -With the third method, it is important that the command has its own -pair of braces, and that the command immediately follows the first brace. -Otherwise, the parser cannot parse the argument(s) properly. -With multiple arguments, each should be enclosed in braces. - -Optional arguments are specified using square brackets or parentheses. - -The braces that start command arguments must not be seperated from -the other arguments by whitespace. For example, the following produces -an error: - -\begin{verbatim} - \image{5cm;0cm} - {picture.eps} -\end{verbatim} - -and should be replaced by - -\begin{verbatim} - \image{5cm;0cm}{picture.eps} -\end{verbatim} - -\subsection{Avoid the setlength command} - -Using the $\backslash$setlength command doesn't work, since its first -argument looks like a command with the wrong number of arguments. Use an -alternative form instead, e.g. - -\begin{verbatim} - \parindent 0pt -\end{verbatim} - -instead of - -\begin{verbatim} - \setlength{\parindent}{0pt} -\end{verbatim} - -\subsection{Units}\index{units}% - -Only a subset of \LaTeX\ units may be used for specifying dimensions. -Valid units are {\tt pt, mm, cm} and {\tt in}. Units should usually -be specified for dimensions or the results may be unexpected. - -\subsection{Labels}\index{labels}% - -The \verb$\label$ command may be used for sections and figure captions, -but must come immediately after the section or caption commands with no -intervening whitespace. - -\subsection{Tables}\label{tables}\index{tables}% - -For best layout, table rows should be enclosed in a \verb$\row$\rtfsp -or \verb$\ruledrow$ command, since Tex2RTF can't cope with parsing -the \LaTeX\ tabular syntax unaided. However, if you really don't want -to go through \LaTeX\ files inserting new syntax, set the {\it compatibility}\rtfsp -flag to TRUE in your {\tt tex2rtf.ini} file. In this mode, Tex2RTF tries to make -the best of a bad job, but the results won't be optimal (e.g., no table -borders). Without this flag set, normal \LaTeX\ tables can crash RTF readers -such as Word for Windows. - -\section{Tex2RTF for non-LaTeX users}\index{LaTeX}% - -You don't need to have \LaTeX\ installed to use Tex2RTF. You -can still output RTF files to be imported into your favourite -word processor, and hypertext files for on-line help. - -This chapter gives a very brief introduction to \LaTeX. For further -information, Kopka and Daly's {\it A Guide to \LaTeX} \cite{kopka} is -recommended. - -\subsection{What is \LaTeX?} - -\LaTeX\ is a macro package built on top of the typesetting package, -\TeX. \TeX\ was written by Donald Knuth in the 1970s, and Leslie -Lamport wrote \LaTeX\ as a higher-level, easier way to write \TeX. - -\TeX\ was quite advanced for its day, and is still used (particularly by -academics) because of its free availability and its flexibility in -typesetting maths and other symbols. It's more like a programming -language than a word processor, with embedded commands prefixed by a -backslash and block structure. Like programs, \TeX\ documents are -processed by a `compiler', outputting a .dvi file, which is a device -independent file which can be read by many converters for output -onto physical devices, such as screens and printers. - -A reason for its longevity is the ability to add facilities to -\TeX, using macro packages that define new commands. - -\LaTeX\ is the most popular way to write \TeX. Although WYSIWYG -word processors and DTP packages are outstripping \LaTeX, the increasing -interest in hypertext and mark-up languages makes \LaTeX\ relevant as -a similar language to SGML documents (such as World Wide Web HTML files). - -Also, languages such as \LaTeX\ (and Rich Text Format, which it resembles -in many ways) are {\it complementary} to WYSIWYG packages. These languages -allow automatic production and translation of documents, where manual -mark-up is impractical or undesirable. - -Since the source code of \TeX\ and \LaTeX\ is in the public domain, -there are many free and commercial implementations of \LaTeX\ for almost -every computer in existance. Of PC implementations, EmTeX is arguably -the best and most complete. You can download it from various FTP sites. - -If you don't want to use \LaTeX\ itself, you may wish to use a program -called lacheck to check your documents before using Tex2RTF, since it -catches some mistakes that Tex2RTF doesn't. - -\subsection{Document structure} - -Here is a sample of a typical \LaTeX\ document: - -\begin{verbatim} - \documentstyle[a4,texhelp]{report} - \title{A title} - \author{Julian Smart} - \date{October 1993} - \begin{document} - \maketitle - - \chapter{Introduction} - - ... - - \section{A section} - - ... - - \end{document} -\end{verbatim} - -The first line is always a \verb$\documentstyle$ command. The square brackets -enclose optional {\it style} files (suffix {\tt .sty}) that alter the appearance -of the document or provide new commands, and the curly brackets enclose -the mandatory style, in this case `report'. - -Before the document begins properly with \verb$\begin{document}$, -you can write various commands that have an effect on the appearance of the -document or define title page information. The \verb$\maketitle$ command -writes the title page using information defined previously (title, author, -date). - -A report has chapters, which are divided into sections, and can be further -divided into subsections and subsubsections. To start a new section, you -write the appropriate section command with the section heading; there is -no specific end section command, since a new section heading or the end -of the document will indicate the end of the previous section. - -An article is divided into sections, subsections and subsubsections, but -has no chapters. This is so an article can be included in a report as a chapter. - -Tex2RTF is written to deal with reports best, so stick with the report -style if you can. - -\subsection{Command syntax} - -There are several kinds of commands in \LaTeX. Most involve a keyword -prefixed with a backslash. Here are some examples: - -\begin{verbatim} - \titlepage - - \centerline{This is a centred line} - - \begin{center} - This is a centred - paragraph - \end{center} - - {\bf This is bold font} -\end{verbatim} - -The first example has no arguments. The second has one argument. The third -example is an {\it environment} which uses the begin and end keywords instead -of a pair of braces to enclose an argument (usually one). The fourth is an example -of using a command within a pair of braces: the command applies to the scope within -the braces. Tex2RTF treats this form as if it were a command with one argument, -with the right brace delimiting the argument. In this case, the command must -immediately follow a left brace as shown. - -Commands may be nested, but not overlapped. - -\subsection{Space}\index{space}% - -In \LaTeX, white space is mostly ignored, line breaks make no difference. -However, \LaTeX\ interprets two successive newlines (a blank line) as -denoting a paragraph break. You may also use the \verb$\par$ command to end -a paragraph. - -\section{Hypertext features}\index{hypertext}% - -\LaTeX\ is inherently suitable for specifying hypertext documents since -it encourages description of the logical structure of a document using -section commands. Therefore, a \LaTeX\ document is automatically -a hypertext document, without any further editing. - -For Windows Help, a single RTF file is generated with topics -corresponding to sections. A top level contents page shows each chapter -or top-level section, and each chapter or section ends with a list of -further sections or subsections. Tex2RTF outputs help files that may be -read linearly using the \rtfsp$<<$ and $>>$ buttons. - -Similarly, a single wxHelp XLP file is generated. - -For HTML, a different file is generated for each section, since the -XMOSAIC browser works best with a large number of small files. The files -are named automatically based on the name of the output file, with the -contents page filename being formed from the output filename with {\tt -\_contents} appended to the name. If the truncateFilenames option is -begin used, then the contents page is just the root name, with a .htm -suffix. The conversion may result in the generation of several hundred -files for a large \LaTeX\ input file. - -To specify explicit jumps around a hypertext file, the \commandrefn{helpref}{helpref} command is -used. The first argument is the text to be displayed at the point of reference, -which will be highlighted in a hypertext file to allow jumping to a reference. -The second argument is the reference label (there should be a corresponding -\rtfsp\commandrefn{label}{label} command in the file, following a section or figure). - -To use extra Tex2RTF features in proper \LaTeX, such as \verb$\helpref$\rtfsp -and the C++ and CLIPS class reference documentation features, include -the style file {\tt texhelp.sty}. - -\section{Special sections}\index{special sections}% - -The treatment of bibliography, glossary and index are worth special mention. - -\subsection{Bibliography}\label{bibsection}\index{bibliography}% - -Tex2RTF recognises standard \LaTeX\ bibliography files (usually with {\tt .bib} extension) -and resolves citations. The \commandrefn{bibliography}{bibliographycmd}\rtfsp -command reads the given {\tt .bib} file and includes a list of -references at that point in the input. Only numbered, unsorted -references are catered for at the moment, with no variation in -bibliography style. A {\bf References} heading is placed in the contents -section. Note that Tex2RTF must be run twice to ensure the citations are -resolved properly. - -Tex2RTF can also cope with the \verb$\thebibliography$ environment, with \rtfsp -\verb$\bibitem$ commands, so long as the text following the first \verb$\bibitem$\rtfsp -argument is enclosed in braces as if it were a second argument. - -\subsection{Glossary}\label{glossarysection}\index{glossary}% - -Glossaries are formatted according to the following scheme. -The \commandrefn{helpglossary}{helpglossary} environment is used together with -the \commandrefn{gloss}{gloss} command for glossary entries. In \LaTeX\ this -is interpreted as a description list, and each glossary entry is an item. -In on-line help, each glossary entry is a section. - -A labelled glossary entry command may be referenced by \commandrefn{popref}{popref}\rtfsp -to provide a quick popup explanation of a term. - -\subsection{Index}\index{index}% - -The explicit index is assumed to be redundant in on-line help, since -search facilities are provided. Therefore the \verb$\printindex$ command -does nothing in on-line versions. In linear RTF an index field is -added, and \commandrefn{index}{index} marks words for inserting in the index. - -In Windows Help, all section headings and C++ function names are treated -as keywords. A keyword may be ambiguous, that is, refer to more than one -section in the help file. This automatic indexing may not always be -adequate, so the \LaTeX\ \commandrefn{index}{index} command may be used -to add keywords. - -In wxHelp, all section headings are indexed. - -\section{Authoring HTML documents} - -When an HTML document is generated, the suffix `\_contents' is appended -to the input file root. This will be the contents page for the document. -A number of further HTML files will be generated, possibly a large number -for a document with a large number of sections. If you are running -a 16-bit Windows version of Tex2RTF, you may wish to use -the {\it truncateFilenames} option to generate DOS filenames with -appropriately truncated references inside the HTML files. - -\normalbox{Tip: to reduce the number of sections generated and make -the document more linear, you could define new chapter and section -commands. Alias them to the normal commands in real LaTeX (edit {\tt texhelp.sty}), and -to appropriate bold/large headings (but not section commands) in -the Tex2RTF initialisation file.} - -Each HTML section file (except for the contents page) is given browse -buttons, similar to a Windows Help file: Contents, Up, Down, Back, Forward. -You can set {\it htmlBrowseButtons} to specify whether bitmaps or text should -be used for these buttons. On a text-only browser, the buttons will show -as text even if images have been specified. - -As well as the usual jumps within a document, you can use the \commandref{urlref}{urlref} command to jump -to other documents. `Advanced features' which are implemented for HTML include: - -\begin{itemize}\itemsep=0pt -\item Simple tables: \commandref{tabular}{tabular} command -\item Background colour/bitmap: \commandref{backgroundcolour}{backgroundcolour} and -\rtfsp\commandref{backgroundimage}{backgroundimage} -\item Text colour: \commandref{textcolour}{textcolour} command -\end{itemize} - -See \helpref{HTML options}{htmloptions} for relevant initialisation file -switches. - -\section{Authoring Windows Help documents}\index{WinHelp files}% - -To produce a Windows Help file, you need to generate a WinHelp RTF file -with Tex2RTF and then invoke a Windows Help compiler (such as hc505.exe) -to translate this to a .hlp file. - -WinHelp support has split into two streams, Windows 3.1 help format -and Windows 95 (WinHelp 4) format. You control this with the {\it winHelpVersion} option, -setting it to 3 for Windows 3.1, and 4 for Windows 95. In the latter case, -you also need the Help Compiler for Windows (hcw.exe and associated components) -which are available in the WIN32 SDK and with Windows 95 compilers. - -Tex2RTF can produce a Windows 95 {\tt .cnt} file if {\it winHelpContents}\index{CNT file} is switched -on. This file is used to generate the new-style contents page, allowing -hierarchical browsing of the topic contents. In fact this file can be used -with ordinary Windows 3.1 files on Windows 95: so to hedge your bets, -generate a Windows 3.1 help file along with {\tt .cnt} file. - -Tex2RTF also generates (optionally) a {\tt .hpj} (Help Project) file\index{HPJ file} which is -fed to the help compiler and specifies the RTF file being used amongst -other things. In WinHelp 4 mode, Tex2RTF adds entries to the project -to enhance the appearance of the help file. In particular, the -non-scrolling (topic title) region is coloured grey, and the rest -is coloured a light yellow in keeping with other Windows 95 help -files. - -\normalbox{Tip: you can maintain two versions of a help file -by specifying an alternative {\tt .ini} file on the command -line when invoking Tex2RTF, and compiling to a different directory. -Tex2RTF instructs the help compiler to use the input file directory -to find bitmaps and metafiles, so using a different output directory -is not a problem. See the Tex2RTF {\tt src/makefile.dos} for an example -of maintaining both formats.} - -There is a slight wrinkle with generation of the {\tt .cnt} file: -to work around a `feature' in the Windows 95 help compiler, Tex2RTF may insert -extra book icons in the contents page. So your contents page -may not exactly match the structure in your LaTeX file. - -`Advanced features' which are implemented for WinHelp include: - -\begin{itemize}\itemsep=0pt -\item Transparency: \commandref{settransparency}{settransparency} command -\item Colour: \commandref{definecolour}{definecolour}, \commandref{fcol}{fcol}, \commandref{bcol}{bcol} commands -\item Hot spot appearance: \commandref{sethotspotcolour}{sethotspotcolour}, \commandref{sethotspotunderline}{sethotspotunderline} commands -\end{itemize} - -Tex2RTF automatically generates browse buttons for jumping to the -above, previous and next topics. - -See \helpref{RTF/WinHelp options}{rtfwinhelpoptions} for -relevant initialisation file switches. - -\section{Authoring linear RTF documents}\index{RTF}% - -Linear RTF documents come in two main flavours. It can produce simple -RTF that can be read by a wide variety of readers, such as -Windows 95 WordPad, the Windows 95 viewer, and most word processors. -Tex2RTF can also output MS Word compatible RTF which has special -fields for contents page and index formatting, headings, and -other enhancements. - -Use the {\it useWord} initialisation file flag to switch Word mode -on or off. -Hypertext links (using \verb$\helpref$ and other commands) will be formatted as -bold `anchor' text plus a section or figure number in parentheses. - -In Word mode, using an index section generates a proper Word index. -Similarly, a Word table of contents, list of figures, list of tables -and page reference may be generated. - -See \helpref{RTF/WinHelp options}{rtfwinhelpoptions} for -relevant initialisation file switches. - -\section{Authoring wxHelp documents}\index{wxHelp}% - -The wxHelp (.xlp) file is the most basic kind of file that Tex2RTF -can handle. Since spacing is passed through to the output, you need to -format your input document appropriately, with lines of reasonable length. - -The generated xlp file is an ASCII file that can be read directly by -wxHelp, the generic wxWindows help viewer. - -\chapter{Command reference}\index{command reference}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -The following lists commands which are recognised by the converters. The reader -can assume that commands not mentioned here are unrecognised or ignored. - -Each command is listed with its name, the number of arguments it takes -(excluding optional arguments), and a description. Note that if the -command is used as an environment (using \verb$\begin$ and \verb$\end$) then -the number of arguments must be either one or two. For example, the\rtfsp -\verb$\tabular$ environment takes two arguments: a first argument for -specifying the formatting, and the second argument for the body of the -environment. - -\begin{verbatim} - \begin{tabular}{|l|l|} - \row{One&Two} - \row{Three&Four} - \end{tabular} -\end{verbatim} - -\section{\LaTeX\ Commands} - -\subsection*{abstract:1}\label{abstract} - -This standard \LaTeX\ environment prepares an abstract page, and is -treated as an ordinary chapter or section in on-line help. - -\subsection*{addcontentsline:3}\label{addcontentsline} - -Adds a chapter title to the contents page. Linear RTF. Rarely required. - -%\subsection*{appendix} -%\subsection*{arabic} -%\subsection*{array} -\subsection*{author:1}\label{author} - -Defines the author, for output when \verb$\maketitle$ is used. - -\subsection*{backslash:0}\label{backslash} - -Outputs a backslash in math mode (should be enclosed by two dollar symbols). - -\subsection*{bf:1}\label{bf} - -Specifies bold font. - -\subsection*{bffamily:1}\label{bffamily} - -Specifies bold font. - -\subsection*{bibitem:2}\label{bibitem} - -For parsing convenience, \verb$\bibitem$ requires two arguments: a cite key and item. -\rtfsp\LaTeX\ syntax permits writing this as if it were two arguments, -even though it is in fact only one. This command is used within -a \commandrefn{thebibliography}{thebibliography} environment. The preferred -method is to store references in {\tt .bib} files and use the \commandrefn{bibliography}{bibliographycmd}\rtfsp -command to generate a bibliography section automatically. - -\subsection*{bibliographystyle:1}\label{bibliographystyle} - -Currently doesn't affect the style of bibliography, but probably will -in the future. - -\subsection*{bibliography:0}\label{bibliographycmd} - -Includes the bibliography at this point in the document. See the section -on \helpref{bibliographies}{bibsection}. - -%\subsection*{caption*} -\subsection*{caption:1}\label{caption} - -Specifies a caption (within a \commandrefn{figure}{figure} or \commandrefn{table}{table} environment). This may -be followed immediately by a \commandrefn{label}{label} command. - -\subsection*{cdots:0}\label{cdots} - -Outputs three dots. - -\subsection*{centerline:1}\label{centerline} - -Centres (or centers!) a line of text. - -%\subsection*{centering} -\subsection*{center:1}\label{center} - -Centres a block of text. - -\subsection*{chapter:1}\label{chapter} - -Outputs a chapter heading. If the chapter's name is Popups\index{popups}, the chapter title will not be -put in the contents, to allow popups to be placed in a document without the popup -sections being directly accessible. - -\subsection*{chapter*:1}\label{chaptersX} - -Outputs a chapter heading with no contents entry. - -\subsection*{cite:1}\label{cite} - -Cite a reference. The argument is a reference key as defined in a \LaTeX\ {\tt .bib}\rtfsp -file. - -\subsection*{comment:1}\label{comment} - -An environment that allows large comments in \LaTeX\ files: the argument -is ignored in all formats. Useful for commenting out parts of files that -cannot be handled by \LaTeX, such as the picture environment. See also\rtfsp -\commandrefn{toocomplex}{toocomplex}. - -\subsection*{date:1}\label{date} - -Specifies the date of a document; only output by \commandrefn{maketitle}{maketitle}. - -\subsection*{description:1}\label{description} - -A list environment, where each \commandrefn{item}{item} command must be -followed by optional square-bracketed text which will be highlighted. - -%\subsection*{destruct:1}\label{destruct} - -\subsection*{document:1}\label{document} - -This environment should enclose the body of a document. - -\subsection*{documentstyle:1}\label{documentstyle} - -Specifies the main style (report, article etc.) and, optionally, style files -such as {\tt texhelp.sty}. A report has \commandrefn{chapters}{chapter}, while an article's top-level -sections are specified using \commandrefn{section}{section}. - -%\subsection*{doublespace}\label{doublespace} -\subsection*{em:1}\label{em} - -Emphasizes text (italic in RTF). - -\subsection*{emph:1}\label{emph} - -Same as \commandrefn{em}{em}. - -\subsection*{enumerate:1}\label{enumerate} - -Enumerate list environment: numbers the \commandrefn{items}{item}. - -%\subsection*{equation}\label{equation} -%\subsection*{evensidemargin} -%\subsection*{fbox:1}\label{fbox} - -\subsection*{figure:1}\label{figure} - -A figure environment: does nothing special, except allows interpretation of -embedded \helpref{caption}{caption} commands as figures rather than (say) tables. - -\subsection*{flushleft:1}\label{flushleft} - -Flushes the given text to the left margin. - -\subsection*{flushright:1}\label{flushright} - -Flushes the given text to the right margin. - -%\subsection*{footheight}\label{footheight} -\subsection*{footnote:1}\label{footnote} - -In linear RTF, a footnote is created. Whether this appears at the end of -the section or the bottom of the page appears to depend on the current -document style, at least for MS Word 6.0 for Windows. The default seems -to be to put the footnotes at the end of the section, which is probably -not the best assumption. - -In WinHelp RTF, a bracketed number is generated for the footnote -and the footnote becomes a popup topic. It is probably preferable -to change footnote commands to \commandref{footnotepopup}{footnotepopup}, -or \commandref{popref}{popref} references to glossary entries. - -This command is not supported for formats other than \LaTeX, -linear RTF and WinHelp RTF. - -\subsection*{hline:0}\label{hline} - -Within a \commandrefn{tabular}{tabular} environment, draws a horizontal -rule below the current row. Note that this does not work in RTF for the -last row of a table, in which case the command \commandrefn{ruledrow}{ruledrow}\rtfsp -should be used instead. - -\subsection*{hrule:0}\label{hrule} - -Draws a horizontal line below the current paragraph. For example: - -\begin{verbatim} - This paragraph should have a horizontal rule following it.\hrule -\end{verbatim} - -gives: - -This paragraph should have a horizontal rule following it.\hrule - -%\subsection*{hspace*}\label{hspaceX} -%\subsection*{hspace}\label{hspace} -%\subsection*{hskip*}\label{hskipX} -%\subsection*{hskip}\label{hskip} - -\subsection*{huge:1}\label{huge1} - -Outputs the argument in huge text. - -\subsection*{Huge:1}\label{Huge2} - -Outputs the argument in huger text than \commandrefn{huge}{huge1}. - -\subsection*{HUGE:1}\label{HUGE3} - -Outputs the argument in huger text than \commandrefn{Huge}{Huge2}. - -\subsection*{include:1}\label{include} - -Include the given file. The command must not be preceded by any whitespace, -and spurious whitespace between elements of the command will also -trip up Tex2RTF. - -\subsection*{index:1}\label{index} - -In WinHelp mode, adds a keyword to the keyword list for the current -topic. This keyword must currently be straight text, with no embedded -commands. The conversion process must be run twice (without quitting -Tex2RTF inbetween) to resolve the keyword references. - -\subsection*{input:1}\label{input} - -Include the given file. The command must not be preceded by any whitespace, -and spurious whitespace between elements of the command will also -trip up Tex2RTF. - -\subsection*{insertatlevel:2}\label{insertatlevel} - -Insert some text at a particular level of the document. For example, - -\begin{verbatim} - \insertatlevel{2}{Some text} -\end{verbatim} - -inserts "Some text" at level 2 (for a report, the current section). This -allows you to insert headings into an automatically-generated section contents, -for example. - -\subsection*{it:1}\label{it} - -Marks the argument in italic. - -\subsection*{itemize:1}\label{itemize} - -Indents each \commandrefn{item}{item} of a list and precedes with a bullet. -If the file {\tt bullet.bmp} is found by Tex2RTF, this bitmap will be -used as the bullet (WinHelp RTF); otherwise, a symbol or bold `o' will be used instead, -depending on output format. - -Use \commandrefn{itemsep}{itemsep} to specify the separation between -list items. Currently this only works for linear or WinHelp RTF output. -If the value is more than zero, an extra paragraph is inserted. - -\subsection*{item:0}\label{item} - -Marks an item of a \commandrefn{itemize}{itemize}, \commandrefn{description}{description} or \commandrefn{enumerate}{enumerate} -list. Items within a description environment should have an `optional' argument -in square brackets which will be highlighted. - -\subsection*{itemsep:0}\label{itemsep} - -Use this command to specify the separation between -list items. Currently this only works for linear or WinHelp RTF output. -If the value is zero, no extra paragraph is inserted; if the value -is more than zero, an extra paragraph is inserted. - -\subsection*{itshape:1}\label{itshape} - -Marks the argument in italic. - -%\subsection*{kill}\label{kill} -\subsection*{label:1}\label{label} - -Labels the chapter, section, subsection, subsubsection or figure caption -with the given label. This must be an ASCII string, and duplicate items -with different case letters are not allowed. - -The command must follow immediately after the section or caption command, -with no intervening whitespace. - -\subsection*{large:1}\label{large1} - -Marks the argument in large text. - -\subsection*{Large:1}\label{Large2} - -Makes the argument display in larger text than \commandrefn{large}{large1}. - -\subsection*{LARGE:1}\label{LARGE3} - -Makes the argument display in larger text than \commandrefn{Large}{Large2}. - -\subsection*{LaTeX:0}\label{LaTeX} - -Outputs the annoying \LaTeX\ upper and lower case name. - -\subsection*{ldots:0}\label{ldots} - -Outputs three dots. - -%\subsection*{linebreak}\label{linebreak} -%\subsection*{listoffigures}\label{listoffigures} -%\subsection*{listoftables}\label{listoftables} -%\subsection*{makeglossary}\label{makeglossary} -%\subsection*{makeindex}\label{makeindex} -\subsection*{maketitle:0}\label{maketitle} - -Makes the article or report title by outputting the \commandrefn{title}{title}, -\rtfsp\commandrefn{author}{author} and optionally \commandrefn{date}{date}. - -%\subsection*{markright}\label{markright} -%\subsection*{markboth}\label{markboth} - -\subsection*{marginparwidth:1}\label{marginparwidth} - -Specifies the width of a margin paragraph. - -\subsection*{marginpar:1}\label{marginpar} - -Inserts a marginal note. It is best to use the Tex2RTF extensions \rtfsp -\commandrefn{marginparodd}{marginparodd} and \commandrefn{marginpareven}{marginpareven} \rtfsp -for best results. - -\subsection*{marginpareven:1}\label{marginpareven} - -Inserts a marginal note on even pages. This is required for RTF generation since -it is impossible for Tex2RTF to know in advance which side of paper the marginal note -will fall upon, and the text has to be positioned using absolute dimensions. -If only one sided output is required, use \commandrefn{marginparodd}{marginparodd} \rtfsp -instead. - -\subsection*{marginparodd:1}\label{marginparodd} - -Inserts a marginal note on odd pages. This is required for RTF generation since -it is impossible for Tex2RTF to know in advance which side of paper the marginal note -will fall upon, and the text has to be positioned using absolute dimensions. - -Also, even if one-sided output is required, this command should be used instead -of \verb$\marginpar$ because the \LaTeX\ command allows it to be used -just before a paragraph. Normally, if this were done, the marginal note would -not be aligned with the paragraph succeeding it. For example: - -\begin{verbatim} - \marginparodd{{\it Note:} if nothing happens, perhaps you - have not plugged your computer in at the mains.}% - To start using your computer, push the Power button - and wait for text to appear on the screen. -\end{verbatim} - -Note the percent sign after the \verb$\marginparodd$ command: without it, -\LaTeX\ refuses to believe that the following text is part of the -same paragraph, and will print the note at the wrong place. - -You should use \commandrefn{textwidth}{textwidth} to allow space for marginal -notes, and also \commandrefn{marginparwidth}{marginparwidth} to specify the size of -the marginal note. - -In WinHelp, HTML and wxHelp, marginal notes are treated as normal text delineated -with horizontal rules above and below. - -%\subsection*{mbox:1}\label{mbox} - -\subsection*{mdseries:1}\label{mdseries} - -Changes to a medium-weight font. Un-emboldens in RTF mode, no effect in other modes. - -\subsection*{multicolumn:3}\label{multicolumn} - -Used in \commandrefn{tabular}{tabular} environment to denote a cell that -spans more than one column. Only supplied for compatibility with -existing \LaTeX\ files, since all it does in RTF is output the correct -number of cell commands, with the multicolumn text squashed into one cell. - -\subsection*{newcommand:3}\label{newcommand} - -Define a new command; arguments are the command, the number of -arguments, and the command body. For example: - -\begin{verbatim} - \newcommand{\crazy}[2]{{\bf #1} is crazy but {\bf #2} is not.} -\end{verbatim} - -The command must have no whitespace at the start of the line or between -the three arguments. - -New commands may also be defined in the {\tt tex2rtf.ini} file using -slightly different syntax (see \helpref{Macro not found error}{macronotfound}). - -%\subsection*{newcounter}\label{newcounter} -%\subsection*{newline}\label{newline} -\subsection*{newpage:0}\label{newpage} - -Inserts a page break. - -\subsection*{nocite:1}\label{nocite} - -Specifies that this reference should appear in the bibliography, -but the citation should not appear in the text. - -See also \commandrefn{cite}{cite}. - -\subsection*{noindent:0}\label{noindent} - -Sets paragraph indentation to zero. See also \commandrefn{parindent}{parindent}. - -%\subsection*{nolinebreak}\label{nolinebreak} -%\subsection*{nopagebreak}\label{nopagebreak} - -\subsection*{normalsize:1}\label{normalsize} - -Sets the font size back to normal. - -\subsection*{onecolumn:0}\label{onecolumn} - -Sets the number of columns to one. \LaTeX\ and linear RTF only. - -%\subsection*{oddsidemargin}\label{oddsidemargin} -%\subsection*{pagebreak}\label{pagebreak} -\subsection*{pageref:1}\label{pageref} - -In linear RTF, generates a page reference to the given label. - -\subsection*{pagestyle:1}\label{pagestyle} - -If argument is {\tt fancyplain} or {\tt fancy}, Tex2RTF -separates the header from the rest of the page with a rule. -This command must be defined for headers and footers to -work properly. See also \commandrefn{setheader}{setheader}, -\commandrefn{setfooter}{setfooter}. - -\LaTeX\ and linear RTF only. - -\subsection*{pagenumbering:1}\label{pagenumbering} - -The argument may be one of: - -\begin{description} -\itemsep=0pt -\item[alph] a, b, ... -\item[Alph] A, B, ... -\item[arabic] 1, 2, ... -\item[roman] i, ii, ... -\item[Roman] I, II, ... -\end{description} - -\LaTeX\ and linear RTF only. - -\subsection*{paragraph:0}\label{paragraph} - -Behaves as for a subsubsection. - -\subsection*{paragraph*:0}\label{paragraphX} - -Behaves as for a subsubsection. - -\subsection*{parindent:1}\label{parindent} - -Indents the first line of succeeding paragraphs by the given amount. - -\subsection*{parskip:1}\label{parskip} - -Changes the spacing between paragraphs. In fact, in RTF this will cause -two \commandrefn{par}{par} commands to be output if parskip is greater -than zero. - -%\subsection*{part*}\label{partX} -%\subsection*{part}\label{part} -\subsection*{par:0}\label{par} - -Causes the paragraph to end at this point. \LaTeX\ and Tex2RTF also -treat two consecutive newlines as a paragraph break. - -%\subsection*{pfunc}\label{pfunc} -%\subsection*{picture}\label{picture} -\subsection*{printindex:0}\label{printindex} - -In linear RTF, inserts an index. - -\subsection*{quote:1}\label{quote} - -Indents a short quotation. - -\subsection*{quotation:1}\label{quotation} - -Indents a long quotation. - -%\subsection*{raggedbottom}\label{raggedbottom} -%\subsection*{raggedleft}\label{raggedleft} -%\subsection*{raggedright}\label{raggedright} - -\subsection*{ref:1}\label{ref} - -In \LaTeX\ and linear RTF, refers to a \commandrefn{label}{label} and -causes the number of that section or figure to be printed. - -\subsection*{rm:1}\label{rm} - -Causes the argument to be formatted in a plain, roman font. -In fact, does nothing in RTF, HTML and XLP modes. - -\subsection*{rmfamily:1}\label{rmfamily} - -Causes the argument to be formatted in a plain, roman font. -In fact, does nothing in RTF, HTML and XLP modes. - -%\subsection*{roman}\label{roman1} -%\subsection*{Roman}\label{Roman2} - -\subsection*{sc:1}\label{sc} - -Prints the output in small capitals. - -\subsection*{scshape:1}\label{scshape} - -Prints the output in small capitals. - -\subsection*{section:1}\label{section} - -Section header, with an entry in the contents page. - -\subsection*{section*:1}\label{sectionX} - -Section header, with no entry in the contents page. - -%\subsection*{setcounter}\label{setcounter} -\subsection*{sf:1}\label{sf} - -Should format in a sans-serif font. Does nothing in Tex2RTF. - -\subsection*{sffamily:1}\label{sffamily} - -Should format in a sans-serif font. Does nothing in Tex2RTF. - -\subsection*{shortcite:1}\label{shortcite} - -The same as \commandrefn{cite}{cite}. - -%\subsection*{singlespace}\label{singlespace} -%\subsection*{sloppypar}\label{sloppypar} -%\subsection*{sloppy}\label{sloppy} - -\subsection*{sl:1}\label{sl} - -In Tex2RTF, the same as \commandrefn{it}{it}. The LaTeX interpretation is `slanted text'. - -\subsection*{slshape:1}\label{slshape} - -In Tex2RTF, the same as \commandrefn{itshape}{itshape}. The LaTeX interpretation is `slanted text'. - -\subsection*{small:1}\label{small} - -Prints the argument in a small font. - -\subsection*{special:1}\label{special} - -Simply copies the argument to the output file without processing -(except \verb$\}$ is translated to \verb$}$, and \verb$\{$ is -translated to \verb${$, to allow for insertion of braces). - -\subsection*{ss:0}\label{ss} - -Outputs the German sharp S character \ss. - -%\subsection*{subitem}\label{subitem} -\subsection*{subparagraph:1}\label{subparagraph} - -Behaves as for a subsubsection. - -\subsection*{subparagraph*:1}\label{subparagraphX} - -Behaves as for a subsubsection. - -\subsection*{subsection:1}\label{subsection} - -Subsection header, with an entry in the contents page. - -\subsection*{subsection*:1}\label{subsectionX} - -Subsection header, with no entry in the contents page. - -\subsection*{subsubsection:1}\label{subsubsection} - -Subsubsection header, with an entry in the contents page. - -\subsection*{subsubsection*:1}\label{subsubsectionX} - -Subsubsection header, with no entry in the contents page. - -\subsection*{tabbing:1}\label{tabbing} - -Tabbing environment: doesn't work properly in RTF. - -\subsection*{table:1}\label{table} - -An environment for tables. The only thing that Tex2RTF does with this -is to interpret an embedded \helpref{caption}{caption} command differently -from figures. - -\subsection*{tableofcontents:0}\label{tableofcontents} - -Inserts the table of contents at this point. In linear RTF mode, a -proper Word for Windows table of contents will be inserted unless either -of the variables {\it insertTOC} or {\it useWord} is set to {\it false}. - -\subsection*{tabular:2}\label{tabular} - -Tabular environment: an attempt is made to output something -reasonable in RTF and HTML formats, although currently only simple -tables will work. The first argument specifies the column formatting. -a pipe symbol (\verb$|$) denotes a vertical border, one of {\tt l, r, c}\rtfsp -signifies a normal column of default width, and {\tt p} followed by -a dimension specifies a column of given width. It is recommended that -the {\tt p} is used since Tex2RTF cannot deduce a column width in the -same way that \LaTeX\ can. - -Horizontal rules are achieved with \commandrefn{hline}{hline}; two together -signify a double rule. Note that in HTML, all rows and the table itself are bordered -automatically. - -Use the Tex2RTF \commandrefn{row}{row} and \commandrefn{ruledrow}{ruledrow} commands -for best effect. - -For two-column tables that work in WinHelp files, use \commandrefn{twocollist}{twocollist} instead. - -Example: - -\begin{verbatim} - \begin{tabular}{|l|p{8.5cm}|}\hline - \row{{\bf A.I.}&{\bf Simulation}}\hline\hline - \row{rules&constraints/methods} - \row{planning&design of experiments} - \row{diagnosis&analysis of results} - \ruledrow{learning&detection of connections} - \end{tabular} -\end{verbatim} - -This produces: - -\begin{tabular}{|l|p{8.5cm}|}\hline -\row{{\bf A.I.}&{\bf Simulation}}\hline\hline -\row{rules&constraints/methods} -\row{planning&design of experiments} -\row{diagnosis&analysis of results} -\ruledrow{learning&detection of connections} -\end{tabular} - -%\subsection*{tab:1}\label{tab} -\subsection*{TeX:0}\label{TeX} - -Outputs the annoying \TeX\ upper and lower case name. - -\subsection*{textbf:1}\label{textbf} - -Same as \commandrefn{bf}{bf}. - -\subsection*{textit:1}\label{textit} - -Same as \commandrefn{it}{it}. - -\subsection*{textrm:1}\label{textrm} - -Same as \commandrefn{rm}{rm}. - -\subsection*{textsf:1}\label{textsf} - -Same as \commandrefn{sf}{sf}. - -\subsection*{textsc:1}\label{textsc} - -Same as \commandrefn{sc}{sc}. - -\subsection*{textsl:1}\label{textsl} - -Same as \commandrefn{sl}{sl}. - -\subsection*{texttt:1}\label{texttt} - -Same as \commandrefn{tt}{tt}. - - -\subsection*{textwidth:1}\label{textwidth} - -Sets the text width (valid for RTF only). This might be used -in conjunction with \commandrefn{marginpar}{marginpar}, for example, -to leave space for marginal notes. - -%\subsection*{textheight}\label{textheight} -\subsection*{thebibliography:1}\label{thebibliography} - -An environment for specifying the bibliography as a series of\rtfsp -\commandrefn{bibitem}{bibitem} commands; the preferred method is to use -\rtfsp{\tt .bib} files and \commandrefn{bibliography}{bibliographycmd} instead. - -%\subsection*{titlepage:0}\label{titlepage} - -\subsection*{title:1}\label{title} - -Sets the title, to be output when the command \commandrefn{maketitle}{maketitle}\rtfsp -is used. - -\subsection*{tiny:1}\label{tiny} - -Prints the argument in a very small font. - -\subsection*{today:0}\label{today} - -Outputs today's date. - -%\subsection*{topmargin}\label{topmargin} -%\subsection*{topskip}\label{topskip} -\subsection*{tt:1}\label{tt} - -Outputs the argument in teletype font. - -\subsection*{ttfamily:1}\label{ttfamily} - -Outputs the argument in teletype font. - -%\subsection*{typein}\label{typein} -\subsection*{typeout:1}\label{typeout} - -Outputs the text on the Tex2RTF text window. - -\subsection*{twocolumn:0}\label{twocolumn} - -Sets the number of columns to two. \LaTeX\ and linear RTF only. - -\subsection*{underline:1}\label{underline} - -Underlines the argument. - -\subsection*{upshape:1}\label{upshape} - -Changes to an upright font. Un-italicizes in RTF mode, no effect in other modes. - -\subsection*{verbatiminput:1}\label{verbatiminput} - -Include the given file as if it were within a \commandrefn{verbatim}{verbatim}\rtfsp -environment. The command must not be preceded by any whitespace, -and spurious whitespace between elements of the command will also -trip up Tex2RTF. - -\subsection*{verbatim:1}\label{verbatim} - -Uses a fixed-width font to format the argument without interpreting -any \LaTeX\ commands. - -\subsection*{verb}\label{verb} - -The \verb$\verb$ command is like the \commandref{verbatim}{verbatim} environment, -but for small amounts of text. The syntax is: - -\begin{verbatim} - \verb -\end{verbatim} - -The character {\it char} is used as a delimiter; it may be any character -not ocurring in the following text, except asterisk. - -For example, \verb@\verb$\thing%^&$@ produces \verb$\thing%^&$. - -%\subsection*{verse}\label{verse} -%\subsection*{vfill}\label{vfill} -%\subsection*{vline}\label{vline} -%\subsection*{void}\label{void} -%\subsection*{vrule}\label{vrule} -%\subsection*{vspace*}\label{vspaceX} -%\subsection*{vskip*}\label{vskipX} -%\subsection*{vspace}\label{vspace} -%\subsection*{vskip}\label{vskip} - - -\section{Tex2RTF Commands} - -\subsection*{backgroundcolour:1}\label{backgroundcolour} - -Specifies the page background colour, in HTML only. The argument consists -of three numbers from 0 to 255 separated by semicolons, for red, green and blue values respectively. - -\begin{verbatim} - \backgroundcolour{255;255;255} - \backgroundcolour{0;0;255} -\end{verbatim} - -The first example sets the background to white, the second sets the background to blue. - -Instead of using a LaTeX command, you may find it more convenient to use the equivalent {\tt .ini} file -setting, {\it backgroundColour}. - -\subsection*{backgroundimage:1}\label{backgroundimage} - -Specifies the page background image, in HTML only. The argument -is a URL for the GIF file to be used as the background. - -For example: - -\begin{verbatim} - \backgroundimage{tile.gif} -\end{verbatim} - -This sets the background to a tile file. - -Instead of using a LaTeX command, you may find it more convenient to use the equivalent {\tt .ini} file -setting, {\it backgroundImage}. - -\subsection*{backslashraw:0}\label{backslashraw} - -Outputs a raw backslash into the output (not LaTeX). Useful when -inserting RTF (for example) that cannot be dealt with by Tex2RTF. -E.g. - -\begin{verbatim} - \backslashraw{'e3} -\end{verbatim} - -inserts the text \verb$\'e3$ into the RTF file. - -\subsection*{bcol:2}\label{bcol} - -Sets the background colour for a block of text (RTF only). Has no known effect -in the RTF readers currently tried (Word for Window and Windows Help). - -See also \commandrefn{definecolour}{definecolour}, \commandrefn{fcol}{fcol}. - -%\subsection*{baselineskip} -%\subsection*{boxit:1}\label{boxit} - -\subsection*{brclear:0}\label{brclear} - -Stops aligning content following a left or right-aligned image in HTML only. - -See also \commandrefn{imagel}{imagel}, \commandrefn{imager}{imager}. - -\subsection*{cextract:0}\label{cextract} - -Prints a C++ extraction operator (\cextract). - -\subsection*{chapterheading:1}\label{chapterheading} - -Like \commandrefn{chapter}{chapter}, but does not increment the chapter -number and does not print a chapter number in the printed documentation -contents page, or in the chapter heading. Used to implement \helpref{glossaries}{glossarysection} and -other sections that are not real chapters. - -\subsection*{cinsert:0}\label{cinsert} - -Prints a C++ insertion operator (\cinsert). - -\subsection*{class:1}\label{class} - -Outputs the argument, an index entry (\LaTeX\ only) and a keyword entry (WinHelp only). -Used in class reference documentation. - -%\subsection*{cleardoublepage} -%\subsection*{clearpage} -%\subsection*{cline} -\subsection*{clipsfunc:3}\label{clipsfunc} - -Formats a CLIPS function, given the return value, function name, and -arguments. - -%\subsection*{columnsep} -\subsection*{copyright:0}\label{copyright} - -Outputs the copyright symbol. - -\subsection*{cparam:2}\label{cparam} - -Formats a CLIPS type and argument. Used within the third argument of -a \commandrefn{clipsfunc}{clipsfunc} command. - -\subsection*{definecolour:4}\label{definecolour} - -Defines a new colour that can be used in the document (RTF only). This -command can also be spelt \verb$\definecolor$. - -The first argument is the lower-case name of the colour, and the following -three arguments specify the red, green and blue intensities, in the range 0 to 255. - -The default colours are equivalent to the following definitions: - -\begin{verbatim} - \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{yellow}{255}{255}{0} - \definecolour{white}{255}{255}{255} -\end{verbatim} - -To use colours in a document, use the \commandrefn{fcol}{fcol} and \commandrefn{bcol}{bcol} commands. - -Note that a document that defines its own colours should be converted twice within -the same Tex2RTF session. - -\subsection*{fcol:2}\label{fcol} - -Sets the foreground colour for a block of text (RTF and HTML). - -For example: - -\begin{verbatim} - This sentence is brightened up by some \fcol{red}{red text}. -\end{verbatim} - -gives: - -This sentence is brightened up by some \fcol{red}{red text}. - -See also \commandrefn{definecolour}{definecolour}, \commandrefn{bcol}{bcol}. - -\subsection*{followedlinkcolour:1}\label{followedlinkcolour} - -Specifies the followed link colour for the whole page, HTML only. The argument consists -of three numbers from 0 to 255 separated by semicolons, for red, green and blue values respectively. - -For example: - -\begin{verbatim} - \followedlinkcolour{255;255;255} - \followedlinkcolour{0;0;255} -\end{verbatim} - -The first example sets the followed link text to white, and the second sets the followed link text to blue. - -See also \commandrefn{backgroundcolour}{backgroundcolour}, \commandrefn{textcolour}{textcolour}, -\rtfsp\commandrefn{linkcolour}{linkcolour}. - -Instead of using a LaTeX command, you may find it more convenient to use the equivalent {\tt .ini} file -setting, {\it followedLinkColour}. - -\subsection*{footnotepopup:2}\label{footnotepopup} - -In linear RTF, a footnote is created following the first argument, as with -\commandref{footnote}{footnote}. - -In WinHelp RTF, a the first argument is highlighted and becomes -a popup reference to the second argument. See also \commandref{footnote}{footnote}\rtfsp -and \commandref{popref}{popref}. - -This command is not supported for formats other than \LaTeX, -linear RTF and WinHelp RTF. - -%\subsection*{footskip}\label{footskip} -%\subsection*{framebox:1}\label{framebox} - -\subsection*{functionsection:1}\label{functionsection} - -Defines a subsection, adding the C++ function name to the \LaTeX\ index or the -WinHelp keyword list. - -Should be followed by a \commandrefn{func}{func} command to specify function -details. - -\subsection*{func:3}\label{func} - -Defines a C++ function, given the return type, function name, and parameter list. - -Should occur after a \commandrefn{functionsection}{functionsection} command. - -%\subsection*{glossary:}\label{glossary} -\subsection*{gloss:1}\label{gloss} - -Marks a glossary entry. In \LaTeX, this is a synonym for an \commandrefn{item}{item} -with an optional argument, within a \commandrefn{description}{description} environment, -and the argument is added to the index. - -In Windows Help, this is identical to a \commandrefn{section*}{sectionX} in a report. - -If labels are associated with the glossary entries, they can be referenced by -\commandref{helpref}{helpref} or \commandref{popref}{popref} jumps. A glossary entry is -currently the only type of destination that popref may refer to. - -This is an example of making a glossary in a report: - -\begin{verbatim} - \begin{helpglossary} - - \gloss{API}\label{api} - - Application Programmer's Interface - a set of calls and - classes defining how a library (in this case, wxWindows) - can be used. - - \gloss{Canvas}\label{canvas} - - A canvas in XView and wxWindows is a subwindow... - - \gloss{DDE}\label{dde} - - Dynamic Data Exchange - Microsoft's interprocess - communication protocol. wxWindows provides an abstraction - of DDE under both Windows and UNIX. - - \end{helpglossary} -\end{verbatim} - -%\subsection*{headheight}\label{headheight} -\subsection*{helpglossary:1}\label{helpglossary} - -An environment for making a glossary (not standard \LaTeX). See \commandrefn{gloss}{gloss} for -usage. - -\subsection*{helpignore:1}\label{helpignore} - -Ignores the argument in Tex2RTF generated files, but not \LaTeX. - -\subsection*{helponly:1}\label{helponly} - -Only outputs the argument in Tex2RTF generated files. - -\subsection*{helpinput:1}\label{helpinput} - -Only includes the given file in Tex2RTF generated files. - -\subsection*{helpfontfamily:1}\label{helpfontfamily} - -Specifies the font family for Tex2RTF generated files. The argument -may be Swiss or Times. - -\subsection*{helpfontsize:1}\label{helpfontsize} - -Specifies the font size for Tex2RTF generated files. - -\subsection*{helpref:2}\label{helpref} - -Specifies a jump to a labelled chapter, section, subsection subsubsection -or figure. - -The first argument is text to be highlighted (mouseable in help systems) -and the second is the reference label. In linear documents, the section number -is given following the text, unless the \commandrefn{helprefn}{helprefn} command -is used instead, where the section number is suppressed. - -Note that when generating HTML, the label {\it contents} is automatically defined, -and may be referenced using \verb$\helpref$. - -\subsection*{helprefn:2}\label{helprefn} - -Specifies a jump to a labelled chapter, section, subsection subsubsection -or figure. - -The first argument is text to be highlighted (mouseable in help systems) -and the second is the reference label. See \commandrefn{helpref}{helpref} for -the form where the section number is printed in linear documents. - -%\subsection*{hfill}\label{hfill} -\subsection*{htmlignore:1}\label{htmlignore} - -Ignores the argument in HTML. - -\subsection*{htmlonly:1}\label{htmlonly} - -Only outputs the argument in HTML. - -\subsection*{image:2}\label{image} - -This is translated to a PSBOX macro package \verb$\psboxto$ command in \LaTeX, -the first argument being a sizing command and the second a filename. - -In HTML mode, the second argument is used to generate a PostScript file reference. - -In RTF mode, the second argument is tried with first a BMP extension and -then a WMF extension to find a suitable Windows bitmap file, placeable -metafile, or segmented hypergraphics file (.SHG). If a suitable file is -found, in Windows Help mode a {\tt bmc}\rtfsp command is inserted into -the RTF file with a reference to the file. In linear RTF mode, the -bitmap or metafile is converted into hex and inserted into the RTF -document. - -Note that only RGB-encoded Windows bitmaps, or placeable metafiles, are -valid for input to Tex2RTF. You can convert a RLE (run length encoded) -bitmap file into a (bigger) RGB file using a program such as Paintshop -Pro. A placeable metafile has a special header with dimension -information. One may be constructed by a wxWindows program by calling -the function wxMakeMetafilePlaceable. The Microsoft Windows SDK has a -sample program that loads and steps through placeable and ordinary -metafiles. - -Another wrinkle is that programs differ in the methods they -use to recognise pictures in RTF files. You may need to use the {\it bitmapMethod} setting, -which can be ``hex'' (embed the hex data in the file with a \verb$\dibitmap$ keyword), -``includepicture'' (use the MS Word 6.0 INCLUDEPICTURE field) or ``import'' -(an earlier name for INCLUDEPICTURE). - -Here is an example of using the \verb$\image$ command. - -\begin{verbatim} - \begin{figure} - $$\image{5cm;0cm}{heart.ps}$$ - - \caption{My picture}\label{piccy} - \end{figure} -\end{verbatim} - -The dollars centre the image in the horizontal plane. The syntax -of the first argument to \verb$\image$ is taken from syntax used by the \verb$\psbox$\rtfsp -package: it allows specification of the horizontal and vertical -dimensions of the image. Scaling will take place for PostScript -and metafile images. A value of zero indicates that the image should -be scaled in proportion to the non-zero dimension. Zeros for both -dimensions will leave the image unscaled in the case of metafiles, -or scaled to fit the page in the case of PostScript. - -See also \commandrefn{imagel}{imagel}, \commandrefn{imager}{imager} for aligned images in -HTML. - -\subsection*{imagel:2}\label{imagel} - -Similar to \commandrefn{image}{image}, but left-aligns the image with respect to the following -content. Use \commandrefn{brclear}{brclear} to stop aligning the content to the right of the image. - -See also \commandrefn{imager}{imager}. - -\subsection*{imagemap:3}\label{imagemap} - -This is translated to an HTML image map reference, or (in LaTeX) a PostScript psbox -command. This allows images in HTML to have hotspots, where the user clicks on a -part of the image and the browser jumps to a particular file. - -The first argument is the same as the first argument to the \commandref{image}{image}\rtfsp -command (ignored in HTML). The second argument must be the name of the -image map entry, and the second is the filename to be displayed inline. - -\begin{verbatim} - \imagemap{}{tree.gif}{myname} -\end{verbatim} - -translates to: - -\begin{verbatim} - -

    -\end{verbatim} - -The snag with this is that, apart from the inconvenience of having to -register a map file with the server, the map file will also have -references to particular HTML files. If they exist in the current -document, these names are not known until the file is generated. In which case, the -map entries should probably refer to symbolic links that can be easily -changed later. - -\subsection*{imager:2}\label{imager} - -Similar to \commandrefn{image}{image}, but right-aligns the image with respect to the following -content. Use \commandrefn{brclear}{brclear} to stop aligning the content to the left of the image. - -See also \commandrefn{imagel}{imagel}. - -%\subsection*{includeonly}\label{includeonly} -\subsection*{indented:2}\label{indented} - -Environment supplied by Tex2RTF to allow (possibly nested) indentation of -\LaTeX\ and RTF text. The first argument is the amount to be indented. - -For example: - -\begin{verbatim} - \begin{indented}{2cm} - This text should be indented by a couple of centimetres. - This can be useful to highlight paragraphs. - \end{indented} -\end{verbatim} - -produces: - -\begin{indented}{2cm} -This text should be indented by a couple of centimetres. This can be -useful to highlight paragraphs. -\end{indented} - -\subsection*{latexignore:1}\label{latexignore} - -Ignores the argument in \LaTeX. - -\subsection*{latexonly:1}\label{latexonly} - -Only prints the argument in \LaTeX. - -%\subsection*{lbox}\label{lbox} - -\subsection*{lbraceraw:0}\label{lbraceraw} - -Outputs a raw left brace into the output (not LaTeX). Useful when -inserting RTF (for example) that cannot be dealt with by Tex2RTF. - -\subsection*{linkcolour:1}\label{linkcolour} - -Specifies the link colour for the whole page, HTML only. The argument consists -of three numbers from 0 to 255 separated by semicolons, for red, green and blue values respectively. - -For example: - -\begin{verbatim} - \linkcolour{255;255;255} - \linkcolour{0;0;255} -\end{verbatim} - -The first example sets the link text to white, and the second sets the link text to blue. - -See also \commandrefn{backgroundcolour}{backgroundcolour}, \commandrefn{textcolour}{textcolour}, -\rtfsp\commandrefn{followedlinkcolour}{followedlinkcolour}. - -Instead of using a LaTeX command, you may find it more convenient to use the equivalent {\tt .ini} file -setting, {\it linkColour}. - -\subsection*{membersection:1}\label{membersection} - -Used when formatting C++ classes to print a subsection for the member name. - -\subsection*{member:1}\label{member} - -Used to format a C++ member variable name. - -\subsection*{normalbox:1}\label{normalbox} - -Draws a box around the given paragraph in \LaTeX\ and RTF. In HTML -and XLP formats, horizontal rules are drawn before and after the text. - -For example: - -\begin{verbatim} - \normalbox{This should be a boxed paragraph for highlighting - important information, such as information for registering - a shareware program.} -\end{verbatim} - -gives: - -\normalbox{This should be a boxed paragraph for highlighting important -information, such as information for registering a shareware program.} - -See also \commandrefn{normalboxd}{normalboxd} for double-bordered text. - -\subsection*{normalboxd:1}\label{normalboxd} - -Draws a double border around the given paragraph in \LaTeX\ and RTF. In -HTML and XLP formats, horizontal rules are drawn before and after the -text. - -For example: - -\begin{verbatim} - \normalboxd{This should be a boxed paragraph for - highlighting important information, such as information - for registering a shareware program.} -\end{verbatim} - -gives: - -\normalboxd{This should be a boxed paragraph for highlighting important -information,such as information for registering a shareware program.} - -See also \commandrefn{normalbox}{normalbox} for single-bordered text. - -\subsection*{param:1}\label{param} - -Formats a C++ type and argument pair. Should be used within the third argument -of a a \commandrefn{func}{func} command. - -\subsection*{popref:2}\label{popref} - -Similar to \commandrefn{helprefn}{helprefn}, except that in Windows Help, -the destination text is popped up in a small window to be dismissed with -a mouse click, instead of going to a separate section. - -Currently this command can only refer to a labelled glossary entry; see -\commandrefn{gloss}{gloss}. - -\subsection*{psboxto:2}\label{psboxto} - -Identical to \commandrefn{image}{image}. - -%\subsection*{psbox}\label{psbox} -\subsection*{rbraceraw:0}\label{rbraceraw} - -Outputs a raw right brace into the output (not LaTeX). Useful when -inserting RTF (for example) that cannot be dealt with by Tex2RTF. - -\subsection*{registered:0}\label{registered} - -Outputs the `registered' symbol in HTML, and (r) in other formats. - -\subsection*{row:1}\label{row} - -A Tex2RTF command signifying the row of a table within the \commandrefn{tabular}{tabular}\rtfsp -environment. See also \commandrefn{ruledrow}{ruledrow}. - -\subsection*{ruledrow:1}\label{ruledrow} - -A Tex2RTF command signifying a ruled row of a table within the \commandrefn{tabular}{tabular}\rtfsp -environment. See also \commandrefn{row}{row}. - -\subsection*{rtfignore:1}\label{rtfignore} - -Ignores the argument in linear RTF. - -\subsection*{rtfonly:1}\label{rtfonly} - -Only outputs the argument in linear RTF. - -\subsection*{rtfsp:0}\label{rtfsp} - -Outputs a space in RTF. Tex2RTF tries to insert a space where one is implied -by a newline, but cannot cope where a line starts or ends with a command, -in the middle of a paragraph. Use this command to insert a space explicitly. - -\subsection*{sectionheading:1}\label{sectionheading} - -Like \commandrefn{section}{section}, but does not increment the section -number and does not print a section number in the printed documentation -contents page, or in the section heading. - -\subsection*{setfooter:6}\label{setfooter} - -Tex2RTF has a non-standard way of setting headers and footers, -but the default macro definitions in {\tt texhelp.sty} may be altered -to your current method. - -The arguments are as follows: - -\begin{enumerate} -\itemsep=0pt -\item Left footer, even pages -\item Centre footer, even pages -\item Right footer, even pages -\item Left footer, odd pages -\item Centre footer, odd pages -\item Right footer, odd pages -\end{enumerate} - -For many documents, the first three arguments will be left empty. - -The behaviour for first pages of a chapter, section or document -is to have a blank header, but print the footer. - -For best results, define headers and footers for {\it each chapter or -section}. - -Note that this command works only for \LaTeX\ and linear RTF. See also\rtfsp -\commandrefn{setheader}{setheader}. - -\subsection*{setheader:6}\label{setheader} - -Tex2RTF has a non-standard way of setting headers and footers, -but the default macro definitions in {\tt texhelp.sty} may be altered -to your current method. - -The arguments are as follows: - -\begin{enumerate} -\itemsep=0pt -\item Left header, even pages -\item Centre header, even pages -\item Right header, even pages -\item Left header, odd pages -\item Centre header, odd pages -\item Right header, odd pages -\end{enumerate} - -For many documents, the first three arguments will be left empty. -If \commandrefn{pagestyle}{pagestyle} is not plain or empty, the -header will separated from the rest of the page by a rule. - -The behaviour for first pages of a chapter, section or document -is to have a blank header, but print the footer. - -For best results, define headers and footers for {\it each chapter or -section}. - -Note that this command works only for \LaTeX\ and linear RTF. See also\rtfsp -\commandrefn{setfooter}{setfooter}. - -\subsection*{sethotspotcolour:1}\label{sethotspotcolour} - -If the argument is yes, on or ok, subsequent WinHelp hotspots will be green. -If any other value, the hotspots will be the normal text colour. Note that this -doesn't apply to section hotspots, only to helpref hotspots. - -\subsection*{sethotspotunderline:1}\label{sethotspotunderline} - -If the argument is yes, on or ok, subsequent WinHelp hotspots will be -underlined (the default). If any other value, the hotspots will not be -underlined. Note that this doesn't apply to section hotspots, only to -helpref hotspots. - -\subsection*{settransparency:1}\label{settransparency} - -WinHelp mode only (version 4 of WinHelp). If the argument is yes, on or ok, subsequent bitmaps -will be inserted in transparent mode: areas of white will be made transparent. -If the argument is any other value (such as no, ok or false), the bitmaps will not be transparent. - -\subsection*{textcolour:1}\label{textcolour} - -Specifies the text foreground colour for the whole page, HTML only. The argument consists -of three numbers from 0 to 255 separated by semicolons, for red, green and blue values respectively. - -For example: - -\begin{verbatim} - \textcolour{255;255;255} - \textcolour{0;0;255} -\end{verbatim} - -The first example sets the text to white, and the second sets the text to blue. - -See also \commandrefn{backgroundcolour}{backgroundcolour}, \commandrefn{linkcolour}{linkcolour}, -\rtfsp\commandrefn{followedlinkcolour}{followedlinkcolour}. - -Instead of using a LaTeX command, you may find it more convenient to use the equivalent {\tt .ini} file -setting, {\it textColour}. - -\subsection*{toocomplex:1}\label{toocomplex} - -An environment for dealing with complex \LaTeX\ commands that -Tex2RTF cannot handle. In normal \LaTeX, the argument will be output -as normal. In Tex2RTF output, the argument will be output as verbatim text, -for the user to hand-translate into the desired output format. - -See also \commandrefn{comment}{comment}. - -\subsection*{twocolitem:2}\label{twocolitem} - -Used to specify a row for a two column list, a Tex2RTF -extension to optimize two-column lists for different -file formats. See \commandrefn{twocollist}{twocollist}, -\rtfsp\commandrefn{twocolitemruled}{twocolitemruled}. - -\subsection*{twocolitemruled:2}\label{twocolitemruled} - -Used to specify a ruled row for a two column list, a Tex2RTF -extension to optimize two-column lists for different -file formats. See \commandrefn{twocollist}{twocollist}, -\rtfsp\commandrefn{twocolitem}{twocolitem}. - -\subsection*{twocollist:1}\label{twocollist} - -A Tex2RTF environment for specifying a table of two columns, often -used in manuals and help files (for example, for listing commands and -their meanings). The first column should be one line only, and -the second can be an arbitrary number of paragraphs. - -The reason that a normal tabular environment cannot be used is that -WinHelp does not allow borders in table cells, so a different method -must be employed if any of the rows are to be ruled. In \LaTeX, a table -is used to implement this environment. In RTF, indentation is used instead. - -Use this environment in conjunction with \commandrefn{twocolitem}{twocolitem} and\rtfsp -\commandrefn{twocolitemruled}{twocolitemruled}. To set the widths of the first -and second column, use \commandrefn{twocolwidtha}{twocolwidtha} and\rtfsp -\commandrefn{twocolwidthb}{twocolwidthb}. - -Example: - -\begin{verbatim} - \htmlignore{\begin{twocollist}} - \twocolitemruled{{\bf Command}}{{\bf Description}} - \twocolitem{File}{The file menu is used to select various - file-related operations, such as saving and loading.} - \twocolitem{Edit}{The Edit menu is used for - selection, copying, pasting, etc.} - \end{twocollist} -\end{verbatim} - -This produces: - -\begin{twocollist} -\twocolitemruled{{\bf Command}}{{\bf Description}} -\twocolitem{File}{The file menu is used to select various file-related -operations, such as saving and loading.} -\twocolitem{Edit}{The Edit menu is used for selection, copying, pasting, etc.} -\end{twocollist} - -\subsection*{twocolwidtha:1}\label{twocolwidtha} - -Sets the width of the first column in a two column list to the given -dimension. See also \commandrefn{twocollist}{twocollist} and \commandrefn{twocolwidthb}{twocolwidthb}. - -\subsection*{twocolwidthb:1}\label{twocolwidthb} - -Sets the width of the second column in a two column list to the given -dimension. See also \commandrefn{twocollist}{twocollist} and \commandrefn{twocolwidtha}{twocolwidtha}. - -\subsection*{urlref:2}\label{urlref} - -Specifies a jump to a URL (univeral resource location). - -The first argument is text to be highlighted (mouseable in HTML browsers) -and the second is the URL. In linear documents, the URL -is given following the text. - -Example: - -\begin{verbatim} - See also the \urlref{wxWindows manual} - {http://www.aiai.ed.ac.uk/~jacs.html}. -\end{verbatim} - -(the line is broken only to keep to this manual's page width). - -\subsection*{winhelpignore:1}\label{winhelpignore} - -Ignores the argument in WinHelp RTF. - -\subsection*{winhelponly:1}\label{winhelponly} - -Only outputs the argument in WinHelp RTF. - -\subsection*{xlpignore:1}\label{xlpignore} - -Ignores the argument in XLP mode (wxHelp files). - -\subsection*{xlponly:1}\label{xlponly} - -Only outputs the argument in XLP mode (wxHelp files). - -\section{Accents}\label{accents} - -The following \LaTeX\ accents work for RTF and HTML production: - -\begin{itemize}% -\itemsep=0pt -\item \verb$\'{a}$ produces \'{a}. Valid for a, e, i, o, u, A, E, I, O, U -\item \verb$\`{a}$ produces \`{a}. Valid for a, e, i, o, u, y, A, E, I, O, U, Y -\item \verb$\^{a}$ produces \^{a}. Valid for a, e, i, o, u, A, E, I, O, U -\item \verb$\~{a}$ produces \~{a}. Valid for a, n, o, A, N, O -\item \verb$\"{a}$ produces \"{a}. Valid for a, e, i, o, u, y, A, E, I, O, U, Y -\item \verb$\.{a}$ produces \.{a}. Valid for a, A -\end{itemize} - -\section{Commands by category}\index{commands}% - -Below are categories of \LaTeX\ commands, to help you find the right -command for a particular purpose. - -\subsection{Font commands} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{bf}{bf} -\item \commandpageref{bffamily}{bffamily} -\item \commandpageref{em}{em} -\item \commandpageref{emph}{emph} -\item \commandpageref{huge}{huge1} -\item \commandpageref{Huge}{Huge2} -\item \commandpageref{HUGE}{HUGE3} -\item \commandpageref{it}{it} -\item \commandpageref{itshape}{itshape} -\item \commandpageref{large}{large1} -\item \commandpageref{Large}{Large2} -\item \commandpageref{LARGE}{LARGE3} -\item \commandpageref{mdseries}{mdseries} -\item \commandpageref{normalsize}{normalsize} -\item \commandpageref{rm}{rm} -\item \commandpageref{rmfamily}{rmfamily} -\item \commandpageref{sc}{sc} -\item \commandpageref{scshape}{scshape} -\item \commandpageref{sf}{sf} -\item \commandpageref{sffamily}{sffamily} -\item \commandpageref{sl}{sl} -\item \commandpageref{slshape}{slshape} -\item \commandpageref{small}{small} -\item \commandpageref{textbf}{textbf} -\item \commandpageref{textit}{textit} -\item \commandpageref{textrm}{textrm} -\item \commandpageref{textsf}{textsf} -\item \commandpageref{textsc}{textsc} -\item \commandpageref{textsl}{textsl} -\item \commandpageref{texttt}{texttt} -\item \commandpageref{tiny}{tiny} -\item \commandpageref{tt}{tt} -\item \commandpageref{ttfamily}{ttfamily} -\item \commandpageref{underline}{underline} -\item \commandpageref{upshape}{upshape} -\end{itemize} - -\subsection{Paragraph formatting} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{centerline}{centerline} -\item \commandpageref{comment}{comment} -\item \commandpageref{flushleft}{flushleft} -\item \commandpageref{footnote}{footnote} -\item \commandpageref{indented}{indented} -\item \commandpageref{marginparwidth}{marginparwidth} -\item \commandpageref{marginpar}{marginpar} -\item \commandpageref{marginpareven}{marginpareven} -\item \commandpageref{marginparodd}{marginparodd} -\item \commandpageref{multicolumn}{multicolumn} -\item \commandpageref{newpage}{newpage} -\item \commandpageref{noindent}{noindent} -\item \commandpageref{onecolumn}{onecolumn} -\item \commandpageref{parindent}{parindent} -\item \commandpageref{parskip}{parskip} -\item \commandpageref{par}{par} -\item \commandpageref{quote}{quote} -\item \commandpageref{quotation}{quotation} -\item \commandpageref{textwidth}{textwidth} -\item \commandpageref{twocolumn}{twocolumn} -\item \commandpageref{verbatim}{verbatim} -\item \commandpageref{verb}{verb} -\end{itemize} - -\subsection{Special effects} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{backgroundcolour}{backgroundcolour} -\item \commandpageref{backgroundimage}{backgroundimage} -\item \commandpageref{backslashraw}{backslashraw} -\item \commandpageref{bcol}{bcol} -\item \commandpageref{definecolour}{definecolour} -\item \commandpageref{fcol}{fcol} -\item \commandpageref{followedlinkcolour}{followedlinkcolour} -\item \commandpageref{helpfontfamily}{helpfontfamily} -\item \commandpageref{helpfontsize}{helpfontsize} -\item \commandpageref{hrule}{hrule} -\item \commandpageref{linkcolour}{linkcolour} -\item \commandpageref{normalbox}{normalbox} -\item \commandpageref{normalboxd}{normalboxd} -\item \commandpageref{sethotspotcolour}{sethotspotcolour} -\item \commandpageref{sethotspotunderline}{sethotspotunderline} -\item \commandpageref{settransparency}{settransparency} -\item \commandpageref{textcolour}{textcolour} -\item \commandpageref{typeout}{typeout} -\end{itemize} - -\subsection{Lists} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{description}{description} -\item \commandpageref{enumerate}{enumerate} -\item \commandpageref{itemize}{itemize} -\item \commandpageref{item}{item} -\item \commandpageref{itemsep}{itemsep} -\item \commandpageref{twocolitem}{twocolitem} -\item \commandpageref{twocolitemruled}{twocolitemruled} -\item \commandpageref{twocollist}{twocollist} -\item \commandpageref{twocolwidtha}{twocolwidtha} -\item \commandpageref{twocolwidthb}{twocolwidthb} -\end{itemize} - -\subsection{Sectioning} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{chapter}{chapter} -\item \commandpageref{chapter*}{chaptersX} -\item \commandpageref{chapterheading}{chapterheading} -\item \commandpageref{insertatlevel}{insertatlevel} -\item \commandpageref{paragraph}{paragraph} -\item \commandpageref{paragraph*}{paragraphX} -\item \commandpageref{section}{section} -\item \commandpageref{section*}{sectionX} -\item \commandpageref{sectionheading}{sectionheading} -\item \commandpageref{subparagraph}{subparagraph} -\item \commandpageref{subparagraph*}{subparagraphX} -\item \commandpageref{subsection}{subsection} -\item \commandpageref{subsection*}{subsectionX} -\item \commandpageref{subsubsection}{subsubsection} -\item \commandpageref{subsubsection*}{subsubsectionX} -\end{itemize} - -\subsection{Pictures} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{brclear}{brclear} -\item \commandpageref{image}{image} -\item \commandpageref{imagel}{imagel} -\item \commandpageref{imagemap}{imagemap} -\item \commandpageref{imager}{imager} -\item \commandpageref{psboxto}{psboxto} -\end{itemize} - -\subsection{References and jumps} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{footnotepopup}{footnotepopup} -\item \commandpageref{helpref}{helpref} -\item \commandpageref{helprefn}{helprefn} -\item \commandpageref{label}{label} -\item \commandpageref{pageref}{pageref} -\item \commandpageref{popref}{popref} -\item \commandpageref{ref}{ref} -\item \commandpageref{urlref}{urlref} -\end{itemize} - -\subsection{Tables and figures} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{caption}{caption} -\item \commandpageref{figure}{figure} -\item \commandpageref{hline}{hline} -\item \commandpageref{ruledrow}{ruledrow} -\item \commandpageref{tabbing}{tabbing} -\item \commandpageref{tabular}{tabular} -\end{itemize} - -\subsection{Table of contents} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{addcontentsline}{addcontentsline} -\item \commandpageref{author}{author} -\item \commandpageref{date}{date} -\item \commandpageref{maketitle}{maketitle} -\item \commandpageref{tableofcontents}{tableofcontents} -\item \commandpageref{title}{title} -\end{itemize} - -\subsection{Special sections} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{bibitem}{bibitem} -\item \commandpageref{bibliographystyle}{bibliographystyle} -\item \commandpageref{bibliography}{bibliographycmd} -\item \commandpageref{cite}{cite} -\item \commandpageref{gloss}{gloss} -\item \commandpageref{helpglossary}{helpglossary} -\item \commandpageref{index}{index} -\item \commandpageref{nocite}{nocite} -\item \commandpageref{printindex}{printindex} -\item \commandpageref{shortcite}{shortcite} -\item \commandpageref{thebibliography}{thebibliography} -\end{itemize} - - -\subsection{Symbols} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{backslash}{backslash} -\item \commandpageref{cdots}{cdots} -\item \commandpageref{cextract}{cextract} -\item \commandpageref{cinsert}{cinsert} -\item \commandpageref{copyright}{copyright} -\item \commandpageref{LaTeX}{LaTeX} -\item \commandpageref{lbraceraw}{lbraceraw} -\item \commandpageref{ldots}{ldots} -\item \commandpageref{rbraceraw}{rbraceraw} -\item \commandpageref{registered}{registered} -\item \commandpageref{rtfsp}{rtfsp} -\item \commandpageref{ss}{ss} -\item \commandpageref{TeX}{TeX} -\item \commandpageref{today}{today} -\end{itemize} - -\subsection{Document organisation} - -\begin{itemize}\itemsep=0pt -\item \commandpageref{document}{document} -\item \commandpageref{documentstyle}{documentstyle} -\item \commandpageref{helpignore}{helpignore} -\item \commandpageref{helponly}{helponly} -\item \commandpageref{helpinput}{helpinput} -\item \commandpageref{htmlignore}{htmlignore} -\item \commandpageref{htmlonly}{htmlonly} -\item \commandpageref{include}{include} -\item \commandpageref{input}{input} -\item \commandpageref{latexignore}{latexignore} -\item \commandpageref{latexonly}{latexonly} -\item \commandpageref{newcommand}{newcommand} -\item \commandpageref{pagestyle}{pagestyle} -\item \commandpageref{pagenumbering}{pagenumbering} -\item \commandpageref{rtfignore}{rtfignore} -\item \commandpageref{rtfonly}{rtfonly} -\item \commandpageref{setfooter}{setfooter} -\item \commandpageref{setheader}{setheader} -\item \commandpageref{special}{special} -\item \commandpageref{toocomplex}{toocomplex} -\item \commandpageref{verbatiminput}{verbatiminput} -\item \commandpageref{winhelpignore}{winhelpignore} -\item \commandpageref{winhelponly}{winhelponly} -\item \commandpageref{xlpignore}{xlpignore} -\item \commandpageref{xlponly}{xlponly} -\end{itemize} - -\chapter{Bugs and troubleshooting}\label{errors}\index{bugs}\index{errors}\index{troubleshooting}% -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\section{Bugs} - -\begin{description} -\item[Command parsing.] If a command is used followed by inappropriate -argument syntax, Tex2RTF can crash. This an occur when a command is -used in an asterisk form that is only formed in the non-asterisk -variety. The non-asterisk form is assumed, which makes the following -asterisk trip up the parser. -\item[Setlength.] Using the $\backslash$setlength command doesn't work, -since its first argument looks like a command with the wrong number -of arguments. Use an alternative form instead, e.g. \verb$\parindent 0pt$ instead -of \verb$\setlength{parindent}{0pt}$. -\item[Newcommand bug.] Environments in a command definition confuse -Tex2RTF. Use the command form instead (e.g. $\backslash$flushleft\{...\} instead -of $\backslash$begin\{flushleft\} ... $\backslash$end\{flushleft\}. -\item[Bibliography.] There's no flexibility in the way references -are output: I expect I'll get round to doing something better, -but only if people tell me they need it! -\item[Tables.] Tables can't handle all \LaTeX\ syntax, and require -the Tex2RTF \verb$\row$ commands for decent formatting. Still, it's -better than it was (RTF only). -\item[Indexes and glossaries.] Not completely supported. -\item[Crashes.] Crashes may be due to an input file exceeding the fixed-size -buffer used for converting command arguments, especially for the \verb$\verbatim$\rtfsp -command. Use the {\tt -bufsize} switch to increase the buffer size. -\item[Verbatiminput.] Verbatiminput files which do not end with a blank line -can trip up following commands. -\end{description} - -\section{Troubleshooting} - -Below are some common problems and possible solutions. - -\normalbox{Some of the syntax that is OK for true \LaTeX\ but which trips up -Tex2RTF, may be detected by the TCHECK program included in the tools -directory of the Tex2RTF distribution. Some \LaTeX\ errors may be picked up -by the LACHECK program, also found in the tools directory.} - -\subsection{Macro not found}\label{macronotfound}\index{macro not found error}% - -This error may indicate that Tex2RTF has not implemented a standard -\rtfsp\LaTeX\ command, or that a local macro package is being used that -Tex2RTF does not know about. It can cause spurious secondary -errors, such as not recognising the end document command. - -You can get round this by defining a macro file (default name {\tt tex2rtf.ini}) -containing command definitions, such as: - -\begin{verbatim} - \crazy [2]{{\bf #2} is crazy but #1 is not} - \something [0]{} - \julian [0]{Julian Smart} -\end{verbatim} - -New commands may be defined in \LaTeX\ files, but custom macro files -will have to be defined when local style files are being used. See\rtfsp -\helpref{Initialisation file syntax}{inifile} for further details. - -The `Macro not found' error can also be caused by a syntax error such as -an unbalanced brace or passing the wrong number of arguments to a command, -so look in the vicinity of the reported error for the real cause. - -Here is one obscure situation that causes this error: - -\begin{verbatim} - \begin{center} - {\large{\underline{A}}} - \end{center} -\end{verbatim} - -The problem is too many curly brackets. This should be rewritten as: - -\begin{verbatim} - \begin{center} - {\large \underline{A}} - \end{center} -\end{verbatim} - -Often you get a `Macro not found' error for \verb$\end{document}$. This -is a spurious side-effect of an earlier error, usually an incorrect number -of arguments to a command. The location of the true error is then anywhere -in the document. To home in on the error, try putting a verbatim environment -\rtfsp\verb$\begin{comment}...\end{comment}$ around much of the document, -and then move the \verb$\begin{comment}$ line down until the error -manifests itself. - -\subsection{Unresolved reference}\index{references, unresolved}% - -References and citations are usually resolved on a second pass of -Tex2RTF. If this doesn't work, then a missing label or bibliographical -entry is to blame. - -\subsection{Output crashes the RTF reader} - -This could be due to confusing table syntax. Set {\it compatibility} to\rtfsp -{\it TRUE} in {\tt .ini} file; also check for end of row characters backslash characters -on their own on a line, and insert correct number of ampersands for the number of -columns. E.g. - -\begin{verbatim} - hello & world\\ - \\ -\end{verbatim} - -becomes - -\begin{verbatim} - hello & world\\ - &\\ -\end{verbatim} - -\subsection{Erratic list indentation} - -Try increasing the value of the variable {\it listItemIndent} (default 40 -points) to give more space between label and following text. A global -replacement of \verb$\item [$ with \verb$\item[$ may also be helpful to remove -unnecessary space before the item label. - -\subsection{Missing figure or section reference} - -Ensure all labels {\it directly} follow captions or sections (no intervening -white space). - -\subsection{Linear RTF looks odd} - -For viewing by programs other than MS Word, you should set the variable {\it useWord} to {\it false}. This -will turn off some of the special RTF keywords recognised by Word (and possibly other advanced RTF readers). - -\subsection{Paragraphs preceding lists are formatted weirdly.} - -If a list has spurious spacing in it, e.g. before a \verb$\item$ command, the preceding -paragraph can take on some of the list's indentation. This may be a WinHelp bug, or an aspect -of RTF I don't fully understand. The solution is to remove unnecessary space. - -\subsection{Unresolved references in Word for Windows}\index{Microsoft Word}% - -If question marks appear instead of numbers for figures and tables, -select all (e.g. CTRL-A), then press F9 {\it twice} to reformat the -document twice. For the second format, respond with {\it Update Entire -Table} to any prompts. - -\subsection{The Windows 95 help file contents hierarchy looks wrong}\index{WinHelp files}% - -WinHelp version 4 (or the WIN32 Help Compiler) does not allow a -book in the contents list to be followed by a page at the same level. -A book must be followed by a book, for some strange reason, otherwise -the page will be tacked on to the pages of the book above it, i.e. placed -at the wrong level. - -To get around this, Tex2RTF inserts a book in some places, if there -was a book preceding it on the same level. This results in more -navigation than necessary, but is better than a wrong contents page. - -\newpage - -% Puts books in the bibliography without needing to cite them in the -% text -\nocite{smart93a}% -\nocite{kopka}% -\nocite{pfeiffer}% - -\bibliography{refs} -\addcontentsline{toc}{chapter}{Bibliography} -\setheader{{\it REFERENCES}}{}{}{}{}{{\it REFERENCES}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\begin{helpglossary} -\setheader{{\it GLOSSARY}}{}{}{}{}{{\it GLOSSARY}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% - -\gloss{GUI} - -Graphical User Interface, such as Windows 3 or X. - -\gloss{HTML}\label{html} - -Hypertext Markup Language; an SGML document type, used for providing -hypertext information on the World Wide Web, a distributed hypertext -system on the Internet. - -\gloss{LaTeX}\label{latexgloss} - -A typesetting language implemented as a set of \TeX\ macros. It is -distinguished for allowing specification of the document structure, -whilst taking care of most layout concerns. It represents the opposite -end of the spectrum from WYSIWYG word processors. - -\gloss{RTF}\label{rtf} - -Rich Text Format: an interchange format for word processor files, -used for importing and exporting formatted documents, and as the -input to the Windows Help compiler. - -\gloss{wxHelp}\label{wxhelp} - -wxHelp is the hypertext help facility used to provide on-line -documentation for UNIX-based wxWindows applications. Under Windows 3.1, -Windows Help is used instead. - -\gloss{wxWindows}\label{wxwindows} - -wxWindows is a free C++ toolkit for writing applications that are -portable across several platforms. Currently these are Motif, Open Look, -Windows 3.1 and Windows NT. Tex2RTF is written using wxWindows. - -\end{helpglossary} - -\addcontentsline{toc}{chapter}{Index} -\setheader{{\it INDEX}}{}{}{}{}{{\it INDEX}}% -\setfooter{\thepage}{}{}{}{}{\thepage}% -\printindex% - -\end{document} diff --git a/utils/tex2rtf/docs/tex2rtf.wmf b/utils/tex2rtf/docs/tex2rtf.wmf deleted file mode 100644 index 2a17268454bb7e09b40760ce82f509886523b596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5750 zcmbtYX>?UpmcC>t4MQoWL1wWP6rym?-e;eCFA{-RKqWGX1Va)A5kahmidGbnp^yMF z2!aX$3TPTw(9EL?iIGXB4(6dmBn%1#p@K?^gbpAGq`!MZ)%){Y%U<=?`m)a+&OYDX z``nx49WOkv(6XkqJ!nsFS8gswTlnnlTEmL7tmsCyEGyQU4~bQ?sSg-XmYzl@hW$$SM18 z`m&v)@7TR`UDZS^hNVVpM6w71iI4z+9I!L>z1%FJFcoP-z zD&R?qTun^CzZ`vu)X%89-e~LfpgPAIL}fgPvh^Zh1HGr*8S#_!pa2zmFx8S*=m8l?_2eyJC9nfH2-{awTTW4wT%=3-Dt)P| zfKqB9@d27iQ)(tHsfo0q2Sro7xX9Ix%5*zwpgp?7nlAGb^gTDFzj1tkGkk&0@b~n% zJ_DSjy80MJ=_7Q5_tO>rl>W|Zf||-Wa)+Yt_8=x=hr<2q5p<}96|y_(VqmYGtION^ zn5}ODarS%qK6|Q;w)ToUfIWoowKMo;+cYi@@Erfa_L0Wj?M&`u zzru<3EZ{}m$sVVFha6q)NxHZFt{w)A20pT<=oPSUvPbJYdxYL^XK0^`kI0pUryFVZ z;kr{$nHw90=PJgERcm>^y_TogXL!8*Gf%Li^dvh@FR|+a4RmsVx_Y2}j~;GUa<+Yp zPuc}^4(Omxadh3oAW%<56=G3v<)G>;zvn$l>lPb0Vv4PlE0as{5Pf@P>w_<>(?cRTrxnx>U{56#?eq+4V6?PXXq_w@|%{XL^EOuCnzC)!zqC1YTDI_!Tvn z2dG!LuX>$(sT}U6=5ZI`_o^rRTq0K$oxDFj{C_(?j6EH(vl0rhAoAEl$ZFjyvCR0ZN4Dy@JXCoC=+;}jN(sa7_UamQfbe*LOfd% zcpCOj0AHWCkN2g3h6ae?nG%EeDBdEs=@a>hK9dUCDW#Mr$7#J3k{|0Ma`(cwEK>Kv zz3mv>!DiMH6QYp;hVyVUj$bqrxu415UXaPqJDY5N#ta8S6c5xig%o27$TFYP9dyYu z+n{fxT4oLWt7!@F-&k*eZ7Y1+Og`l2&%jE~`b9aUXHb(c`(c~pA}vIu$z zzL42RUxE48sNjTIM;B314`($EaMsgcX9vCL?8f>4Yy|-#R}$`Yq)NhdrUjL>wlbuQ zGo-c73sA=Sa*lV)2|g&t_)96`V#x2HpNG8!u_cnL&&zWCovhQvvPpj_oAp7+-O%%4 z&x1cty6KDnxw;>0ec}?U-7C9Ai3(jbdvpVC<9*}*Y_k+Ef-!J{{ z4NoRgwc%bQ1=T)eEj70}D?qLuX_o6(%{u*(*`(9WX5AYy1$tN5JDXhKHrE4cn_C=f zZg35Ag{$NT$n(&@h5ZEl#k>?)gY_oZw!!zY`2q3@^c%3>g8z1a$ny$MBvJ+8`i2G- zD64@pQ(rYPzye)qR_M!M`~#T(6&0L-JPJJoU&xg65mUm)!0J1&`yMQ>0rxtmxQ_EJ z-|w8``c5SqXSnVQnE`zu>_gyx!zt#8z%1tk=fbwgDd8nfIj}%4c2?;5&N}^}vq?{P zHtUIyW1x?MZp&slm)GxZrps#{`9sKL{d9XPSmPedb`mpn#`hT1c zfigafs*j+`Z=7R%#wp@b$TH|xV6V>quim^t0oyi~mP7KAydzJ^GeW}BRvs564~s|> zX(tUONg7Bmtow^Ce@5g|$W_up)=M+l3je3@e-3#FF@@L{!v4deVM~$)$h#k&kQB>T za$dfaGH8{uQ?AJ;z*hNR>)N-iPmc}bAt z$b2Y342ET0FgToo=Bv5h5M5g+*V^95}}pyvC4rQ zE6>uOGYChP$tk<(x|tjQV;1#$&y5!@xRu?vO+bJIjXr#Q;$lHYAxdx$vD+s z{;ZN@l1i3^YN$L&lVzEDPiCo)72sJ4j>ob73bqjV`}O#U+?`*0 zn|t5AAN8!dR+b5=ER#fkG~MY{lS;!(8Vxb&lxZ@k4`g@PQs7HQOtLwmQp|qU-Rx9- z%np@lwyPnKuR{ML?A5tKs=ryKQq4-$(=0>$B9&}DfSdt+66_P;ACEnguxC2LUWD}%lM{>T-ECmd=1;rjpaTP7dX<(s4GkU5~f2Ft&KZ8=z1LDq40ss_#h)!aF% z9(B&Cmdb~)r?=<{LEg+CWO|6=mh8gSbJ zZh2-8c>CN#ztD+a`y`|XPeOt<#>rJtx`iswJ*9TLKdL?MO|{Fthdy&_(+>AO@;O%XyrmYox72+1do|nrR!w$~sW;ss z^(y25=r3SzZ}@%uYfnd;;7-)DO57wWap$TFnE6FFM_qQutLyGKRRtOA<*1q--dx^X zAc<;v-6_^frD!jWs@!zCj&59ryy&LV1>BSBTuHz1W(rRy((J-d^@O{#Yi0eLmF|U9 zx>uxzdI!{N-cB{%+o5K9+tm^;Pi^qi#Q5SC>Jq_u?Ch&$?1z2~*3k35GK!M5CM39fMg{O?#Ft5H?u%W{18TP>@>$} - - -% =================== 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} (section \ref{#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}.} diff --git a/utils/tex2rtf/docs/up.gif b/utils/tex2rtf/docs/up.gif deleted file mode 100644 index 316d0d2a14b571bea2eb874efd04bfe509f53b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137 zcmV;40CxXJNk%v~VHyA!0Pz3-zrVld=jU&4Z(9HWEC2ui02%-o0007FjE||ytzv+j zv|1owxcuhWh0?c)Avq0}dTQw^q7qBdoDA6WKJ*l>%gtCeAWZlgxpoy|ZDMRPr_m>p rx}08pS4?)u<%PW with the docstrip utility (v1.1l test). -%% -%% The original source file was `verbatim.doc'. -%% -%% -%% Copyright (C) 1989,1990,1991 by Rainer Schoepf. All rights reserved. -%% -%% IMPORTANT NOTICE: -%% -%% You are not allowed to change this file. You may however copy this file -%% to a different name and then change this copy. -%% -%% You are allowed to distribute this file under the condition that it is -%% distributed together with all files mentioned in readme.mz4. If you -%% receive only some of these files from someone, complain! -%% -%% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED -%% to take money for the distribution or use of this file (or a changed -%% version) except for some nominal charge for copying etc. -%% -%% Error Reports in case of UNCHANGED versions to -%% -%% Rainer Schoepf -%% Konrad-Zuse-Zentrum fuer Informationstechnik Berlin -%% Heilbronner Str. 10 -%% W-1000 Berlin 31 -%% Federal Republic of Germany -%% Internet: -%% -\def\fileversion{v1.4f} -\def\filedate{91/08/05} -\def\docdate{91/08/05} - -%% \CheckSum{439} -%% \CharacterTable -%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -%% Digits \0\1\2\3\4\5\6\7\8\9 -%% Exclamation \! Double quote \" Hash (number) \# -%% Dollar \$ Percent \% Ampersand \& -%% Acute accent \' Left paren \( Right paren \) -%% Asterisk \* Plus \+ Comma \, -%% Minus \- Point \. Solidus \/ -%% Colon \: Semicolon \; Less than \< -%% Equals \= Greater than \> Question mark \? -%% Commercial at \@ Left bracket \[ Backslash \\ -%% Right bracket \] Circumflex \^ Underscore \_ -%% Grave accent \` Left brace \{ Vertical bar \| -%% Right brace \} Tilde \~} -%% -%% Style-option `verbatim' to use with LaTeX v2.09 -%% Copyright (C) 1989, 1990, 1991 by Rainer Sch\"opf, all rights reserved. -\@ifundefined{verbatim@@@}{}{\endinput} -\typeout{Style-Option: `verbatim' - \fileversion \space <\filedate> (RmS)} -\typeout{English Documentation - \@spaces \@spaces \space <\docdate> (RmS)} -\def\addto@hook#1#2{#1\expandafter{\the#1#2}} -\newtoks\every@verbatim -\every@verbatim={} -\def\@makeother#1{\catcode`#112\relax} -\begingroup - \catcode`\ =\active% -\gdef\@vobeyspaces{\catcode`\ \active\let \@xobeysp}% -\endgroup -\def\@xobeysp{\leavevmode\penalty\@M\ } -\newtoks\verbatim@line -\def\verbatim@startline{\verbatim@line{}} -\def\verbatim@addtoline#1{% - \verbatim@line\expandafter{\the\verbatim@line#1}} -\def\verbatim@processline{\the\verbatim@line\par} -\def\verbatim@finish{\ifcat$\the\verbatim@line$\else - \verbatim@processline\fi} -\begingroup - \catcode`\`=\active - \gdef\verbatim@font{\tt \catcode96\active - \def`{\leavevmode\kern\z@\char96 }} -\endgroup -\def\@verbatim{\the\every@verbatim - \trivlist \item[]% - \leftskip\@totalleftmargin\rightskip\z@ - \parindent\z@\parfillskip\@flushglue\parskip\z@ - \@@par - \def\par{\leavevmode\null\@@par\penalty\interlinepenalty}% - \obeylines - \verbatim@font - \let\do\@makeother \dospecials} -\def\verbatim{\@verbatim \frenchspacing\@vobeyspaces\verbatim@start} -\@namedef{verbatim*}{\@verbatim\verbatim@start} -\let\endverbatim=\endtrivlist -\expandafter\let\csname endverbatim*\endcsname =\endtrivlist -\def\comment{\@bsphack - \let\do\@makeother\dospecials\catcode`\^^M\active - \let\verbatim@startline\relax - \let\verbatim@addtoline\@gobble - \let\verbatim@processline\relax - \let\verbatim@finish\relax - \verbatim@} -\let\endcomment=\@esphack -\@ifundefined{vrb@catcodes}% - {\def\vrb@catcodes{% - \catcode`\!12\catcode`\[12\catcode`\]12}}{} -\begingroup - \vrb@catcodes - \lccode`\!=`\\ \lccode`\[=`\{ \lccode`\]=`\} - \catcode`\~=\active \lccode`\~=`\^^M - \lccode`\C=`\C - \lowercase{% - \gdef\verbatim@start#1{% - \verbatim@startline - \if\noexpand#1\noexpand~% - \let\next\verbatim@ - \else \def\next{\verbatim@#1}\fi - \next}% - \gdef\verbatim@#1~{\verbatim@@#1!end\@nil}% - \gdef\verbatim@@#1!end{% - \verbatim@addtoline{#1}% - \futurelet\next\verbatim@@@}% - \gdef\verbatim@@@#1\@nil{% - \ifx\next\@nil - \verbatim@processline - \verbatim@startline - \let\next\verbatim@ - \else - \def\@tempa##1!end\@nil{\toks@{##1}}% - \@tempa#1\@nil - \@temptokena{!end}% - \edef\next{\noexpand\verbatim@test\the\toks@\noexpand~}% - \fi \next}% - \gdef\verbatim@test#1{% - \let\next\verbatim@test - \if\noexpand#1\noexpand~% - \expandafter\verbatim@addtoline - \expandafter{\the\@temptokena}% - \verbatim@processline - \verbatim@startline - \let\next\verbatim@ - \else \if\noexpand#1 - \@temptokena\expandafter{\the\@temptokena#1}% - \else \if\noexpand#1\noexpand[% - \let\@tempc\@empty - \let\next\verbatim@testend - \else - \expandafter\verbatim@addtoline - \expandafter{\the\@temptokena}% - \def\next{\verbatim@#1}% - \fi\fi\fi - \next}% - \gdef\verbatim@testend#1{% - \if\noexpand#1\noexpand~% - \expandafter\verbatim@addtoline - \expandafter{\the\@temptokena[}% - \expandafter\verbatim@addtoline - \expandafter{\@tempc}% - \verbatim@processline - \verbatim@startline - \let\next\verbatim@ - \else\if\noexpand#1\noexpand]% - \let\next\verbatim@@testend - \else\if\noexpand#1\noexpand!% - \expandafter\verbatim@addtoline - \expandafter{\the\@temptokena[}% - \expandafter\verbatim@addtoline - \expandafter{\@tempc}% - \def\next{\verbatim@!}% - \else \expandafter\def\expandafter\@tempc\expandafter - {\@tempc#1}\fi\fi\fi - \next}% - \gdef\verbatim@@testend{% - \ifx\@tempc\@currenvir - \verbatim@finish - \edef\next{\noexpand\end{\@currenvir}% - \noexpand\verbatim@rescan{\@currenvir}}% - \else - \expandafter\verbatim@addtoline - \expandafter{\the\@temptokena[}% - \expandafter\verbatim@addtoline - \expandafter{\@tempc]}% - \let\next\verbatim@ - \fi - \next}% - \gdef\verbatim@rescan#1#2~{\if\noexpand~\noexpand#2~\else - \@warning{Characters dropped after `\string\end{#1}'}\fi}} -\endgroup -\def\verbatiminput{\begingroup - \@ifstar\sverbatim@input\verbatim@input} -\def\sverbatim@input#1{\@verbatim - \@input{#1}\endtrivlist\endgroup\@doendpe} -\def\verbatim@input#1{\@verbatim - \frenchspacing \@vobeyspaces - \@input{#1}\endtrivlist\endgroup\@doendpe} -\begingroup - \lccode`\~=`\^^M - \lowercase{% - \gdef\verb{\begingroup - \verbatim@font - \catcode`\^^M\active - \def~{\endgroup\@latexerr{\string\verb\space command ended by - end of line.}\@ehc}% - \let\do\@makeother \dospecials - \@ifstar\@sverb{\@vobeyspaces \frenchspacing \@sverb}}} -\endgroup -\def\@sverb#1{% - \catcode`#1\active - \lccode`\~`#1% - \lowercase{\let~\endgroup}% - \leavevmode\null} -\endinput -%% -%% End of file `verbatim.sty'. diff --git a/utils/tex2rtf/src/bmputils.h b/utils/tex2rtf/src/bmputils.h deleted file mode 100644 index 0f8b07a453..0000000000 --- a/utils/tex2rtf/src/bmputils.h +++ /dev/null @@ -1,227 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: bmputils.h -// Purpose: Utilities for manipulating bitmap and metafile images for -// the purposes of conversion to RTF -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -static char hexArray[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F' }; - -void DecToHex(int dec, char *buf) -{ - int firstDigit = (int)(dec/16.0); - int secondDigit = (int)(dec - (firstDigit*16.0)); - buf[0] = hexArray[firstDigit]; - buf[1] = hexArray[secondDigit]; - buf[2] = 0; -} - -static unsigned int getshort(FILE *fp) -{ - int c, c1; - c = getc(fp); c1 = getc(fp); - return ((unsigned int) c) + (((unsigned int) c1) << 8); -} - -static unsigned long getint(FILE *fp) -{ - int c, c1, c2, c3; - c = getc(fp); c1 = getc(fp); c2 = getc(fp); c3 = getc(fp); - return (long)((long) c) + - (((long) c1) << 8) + - (((long) c2) << 16) + - (((long) c3) << 24); -} - -bool GetBMPHeader(FILE *fp, int *Width, int *Height, int *Planes, int *BitsPerPixel) -{ - unsigned long bfSize, bfOffBits, biSize, biWidth, biHeight, biPlanes; - unsigned long biBitCount, biCompression, biSizeImage, biXPelsPerMeter; - unsigned long biYPelsPerMeter, biClrUsed, biClrImportant; - - /* read the file type (first two bytes) */ - int c = getc(fp); int c1 = getc(fp); - if (c!='B' || c1!='M') { return FALSE; } - - bfSize = getint(fp); - getshort(fp); /* reserved and ignored */ - getshort(fp); - bfOffBits = getint(fp); - - biSize = getint(fp); - biWidth = getint(fp); - biHeight = getint(fp); - biPlanes = getshort(fp); - biBitCount = getshort(fp); - biCompression = getint(fp); - biSizeImage = getint(fp); - biXPelsPerMeter = getint(fp); - biYPelsPerMeter = getint(fp); - biClrUsed = getint(fp); - biClrImportant = getint(fp); - - *Width = (int)biWidth; - *Height = (int)biHeight; - *Planes = (int)biPlanes; - *BitsPerPixel = (int)biBitCount; - -// fseek(fp, bfOffBits, SEEK_SET); - - return TRUE; -} - -static int scanLineWidth = 0; - -bool OutputBitmapHeader(FILE *fd, bool isWinHelp = FALSE) -{ - int Width, Height, Planes, BitsPerPixel; - if (!GetBMPHeader(fd, &Width, &Height, &Planes, &BitsPerPixel)) - return FALSE; - - scanLineWidth = (int)((float)Width/(8.0/(float)BitsPerPixel)); - if ((float)((int)(scanLineWidth/2.0)) != (float)(scanLineWidth/2.0)) - scanLineWidth ++; - - int goalW = 15*Width; - int goalH = 15*Height; - - TexOutput("{\\pict"); - if (isWinHelp) TexOutput("\\wbitmap0"); - else TexOutput("\\dibitmap"); - - char buf[50]; - TexOutput("\\picw"); sprintf(buf, "%d", Width); TexOutput(buf); - TexOutput("\\pich"); sprintf(buf, "%d", Height); TexOutput(buf); - TexOutput("\\wbmbitspixel"); sprintf(buf, "%d", BitsPerPixel); TexOutput(buf); - TexOutput("\\wbmplanes"); sprintf(buf, "%d", Planes); TexOutput(buf); - TexOutput("\\wbmwidthbytes"); sprintf(buf, "%d", scanLineWidth); TexOutput(buf); - TexOutput("\\picwgoal"); sprintf(buf, "%d", goalW); TexOutput(buf); - TexOutput("\\pichgoal"); sprintf(buf, "%d", goalH); TexOutput(buf); - TexOutput("\n"); - return TRUE; -} - - -bool OutputBitmapData(FILE *fd) -{ - fseek(fd, 14, SEEK_SET); - int bytesSoFar = 0; - int ch = getc(fd); - char hexBuf[3]; - while (ch != EOF) - { - if (bytesSoFar == scanLineWidth) - { - bytesSoFar = 0; - TexOutput("\n"); - } - DecToHex(ch, hexBuf); - TexOutput(hexBuf); - bytesSoFar ++; - ch = getc(fd); - } - TexOutput("\n}\n"); - return TRUE; -} - -#ifdef __WXMSW__ -struct mfPLACEABLEHEADER { - DWORD key; - HANDLE hmf; - RECT bbox; - WORD inch; - DWORD reserved; - WORD checksum; -}; - -// Returns size in TWIPS -bool GetMetafileHeader(FILE *handle, int *width, int *height) -{ - char buffer[40]; - mfPLACEABLEHEADER *theHeader = (mfPLACEABLEHEADER *)&buffer; - fread((void *)theHeader, sizeof(char), sizeof(mfPLACEABLEHEADER), handle); - if (theHeader->key != 0x9AC6CDD7) - { - return FALSE; - } - - float widthInUnits = (float)theHeader->bbox.right - theHeader->bbox.left; - float heightInUnits = (float)theHeader->bbox.bottom - theHeader->bbox.top; - *width = (int)((widthInUnits*1440.0)/theHeader->inch); - *height = (int)((heightInUnits*1440.0)/theHeader->inch); - return TRUE; -} - -bool OutputMetafileHeader(FILE *handle, bool isWinHelp, int userWidth, int userHeight) -{ - int Width, Height; - if (!GetMetafileHeader(handle, &Width, &Height)) - return FALSE; - - scanLineWidth = 64; - int goalW = Width; - int goalH = Height; - - // Scale to user's dimensions if we have the information - if (userWidth > 0 && userHeight == 0) - { - double scaleFactor = ((double)userWidth/(double)goalW); - goalW = userWidth; - goalH = (int)((goalH * scaleFactor) + 0.5); - } - else if (userWidth == 0 && userHeight > 0) - { - double scaleFactor = ((double)userHeight/(double)goalH); - goalH = userHeight; - goalW = (int)((goalW * scaleFactor) + 0.5); - } - else if (userWidth > 0 && userHeight > 0) - { - goalW = userWidth; - goalH = userHeight; - } - - TexOutput("{\\pict"); - TexOutput("\\wmetafile8"); - - char buf[50]; - TexOutput("\\picw"); sprintf(buf, "%d", Width); TexOutput(buf); - TexOutput("\\pich"); sprintf(buf, "%d", Height); TexOutput(buf); - TexOutput("\\picwgoal"); sprintf(buf, "%d", goalW); TexOutput(buf); - TexOutput("\\pichgoal"); sprintf(buf, "%d", goalH); TexOutput(buf); - TexOutput("\n"); - return TRUE; -} - -bool OutputMetafileData(FILE *handle) -{ - int bytesSoFar = 0; - char hexBuf[3]; - int ch; - do - { - ch = getc(handle); - if (bytesSoFar == scanLineWidth) - { - bytesSoFar = 0; - TexOutput("\n"); - } - if (ch != EOF) - { - DecToHex(ch, hexBuf); - TexOutput(hexBuf); - bytesSoFar ++; - } - } while (ch != EOF); - TexOutput("\n}\n"); - return TRUE; -} - -#endif - diff --git a/utils/tex2rtf/src/books.bmp b/utils/tex2rtf/src/books.bmp deleted file mode 100644 index cf1e148734c807052ec6359ad2eb1a3e8d43d43d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1222 zcmb7?v2KGf5Qg0-f^PH?BCA8E<{c_a$x@Y}nZr;qXR5NnfE2boQZn^-S4x_%j?%%`Rfz!C$uHnGuoYEAr~D;JxHUzQYZhY(}{X$xY0SE&#JC# z5a%D|9QDv}6Qc3-Wv8+GlQ-*8<`8epNC>=NSLPUH1b$st*H{R=IXD*!fgA8x5Dt6l zUCo=!AsqI8={C$E9QGLr_q_i zFK;h=LxQhf>;v~gWIyoy(Zu$`w=UNZZuYl$t>-8&*n94Z?RTzqLWjlGhdMVK;w1@P zgX#l^|MHTQ1q9k0=J>%Sz9`L#Hix;bEVz#^(qoBse!qj(7b diff --git a/utils/tex2rtf/src/dos.def b/utils/tex2rtf/src/dos.def deleted file mode 100644 index 00b503b084..0000000000 --- a/utils/tex2rtf/src/dos.def +++ /dev/null @@ -1,10 +0,0 @@ -NAME TEX2RTF -DESCRIPTION 'Tex2Rtf' -; -EXETYPE DOS -; -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -; -HEAPSIZE 1024 -STACKSIZE 8192 diff --git a/utils/tex2rtf/src/htmlutil.cpp b/utils/tex2rtf/src/htmlutil.cpp deleted file mode 100644 index d29e17b7f3..0000000000 --- a/utils/tex2rtf/src/htmlutil.cpp +++ /dev/null @@ -1,3190 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: htmlutil.cpp -// Purpose: Converts Latex to HTML -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "tex2any.h" -#include "tex2rtf.h" -#include "table.h" - -extern void DecToHex(int, char *); -void GenerateHTMLIndexFile(char *fname); - -void GenerateHTMLWorkshopFiles(char *fname); -void HTMLWorkshopAddToContents(int level, char *s, char *file); -void HTMLWorkshopStartContents(); -void HTMLWorkshopEndContents(); - -void OutputContentsFrame(void); - -#include "readshg.h" // Segmented hypergraphics parsing - -char *ChaptersName = NULL; -char *SectionsName = NULL; -char *SubsectionsName = NULL; -char *SubsubsectionsName = NULL; -char *TitlepageName = NULL; -char *lastFileName = NULL; -char *lastTopic = NULL; -char *currentFileName = NULL; -char *contentsFrameName = NULL; - -static TexChunk *descriptionItemArg = NULL; -static TexChunk *helpRefFilename = NULL; -static TexChunk *helpRefText = NULL; -static int indentLevel = 0; -static int citeCount = 1; -extern FILE *Contents; -FILE *FrameContents = NULL; -FILE *Titlepage = NULL; -// FILE *FrameTitlepage = NULL; -int fileId = 0; -bool subsectionStarted = FALSE; - -// Which column of a row are we in? (Assumes no nested tables, of course) -int currentColumn = 0; - -// Are we in verbatim mode? If so, format differently. -static bool inVerbatim = FALSE; - -// Need to know whether we're in a table or figure for benefit -// of listoffigures/listoftables -static bool inFigure = FALSE; -static bool inTable = FALSE; - -// This is defined in the Tex2Any library. -extern char *BigBuffer; - -class HyperReference: public wxObject -{ - public: - char *refName; - char *refFile; - HyperReference(char *name, char *file) - { - if (name) refName = copystring(name); - if (file) refFile = copystring(file); - } -}; - -class TexNextPage: public wxObject -{ - public: - char *label; - char *filename; - TexNextPage(char *theLabel, char *theFile) - { - label = copystring(theLabel); - filename = copystring(theFile); - } - ~TexNextPage(void) - { - delete[] label; - delete[] filename; - } -}; - -wxHashTable TexNextPages(wxKEY_STRING); - -static char *CurrentChapterName = NULL; -static char *CurrentChapterFile = NULL; -static char *CurrentSectionName = NULL; -static char *CurrentSectionFile = NULL; -static char *CurrentSubsectionName = NULL; -static char *CurrentSubsectionFile = NULL; -static char *CurrentSubsubsectionName = NULL; -static char *CurrentSubsubsectionFile = NULL; -static char *CurrentTopic = NULL; - -static void SetCurrentTopic(char *s) -{ - if (CurrentTopic) delete[] CurrentTopic; - CurrentTopic = copystring(s); -} - -void SetCurrentChapterName(char *s, char *file) -{ - if (CurrentChapterName) delete[] CurrentChapterName; - CurrentChapterName = copystring(s); - if (CurrentChapterFile) delete[] CurrentChapterFile; - CurrentChapterFile = copystring(file); - - currentFileName = CurrentChapterFile; - - SetCurrentTopic(s); -} -void SetCurrentSectionName(char *s, char *file) -{ - if (CurrentSectionName) delete[] CurrentSectionName; - CurrentSectionName = copystring(s); - if (CurrentSectionFile) delete[] CurrentSectionFile; - CurrentSectionFile = copystring(file); - - currentFileName = CurrentSectionFile; - SetCurrentTopic(s); -} -void SetCurrentSubsectionName(char *s, char *file) -{ - if (CurrentSubsectionName) delete[] CurrentSubsectionName; - CurrentSubsectionName = copystring(s); - if (CurrentSubsectionFile) delete[] CurrentSubsectionFile; - CurrentSubsectionFile = copystring(file); - currentFileName = CurrentSubsectionFile; - SetCurrentTopic(s); -} -void SetCurrentSubsubsectionName(char *s, char *file) -{ - if (CurrentSubsubsectionName) delete[] CurrentSubsubsectionName; - CurrentSubsubsectionName = copystring(s); - if (CurrentSubsubsectionFile) delete[] CurrentSubsubsectionFile; - CurrentSubsubsectionFile = copystring(file); - currentFileName = CurrentSubsubsectionFile; - SetCurrentTopic(s); -} - -/* - * Close former filedescriptor and reopen using another filename. - * - */ - -void ReopenFile(FILE **fd, char **fileName) -{ - if (*fd) - { - fprintf(*fd, "\n\n"); - fclose(*fd); - } - fileId ++; - char buf[400]; - if (truncateFilenames) - sprintf(buf, "%s%d.htm", FileRoot, fileId); - else - sprintf(buf, "%s%d.html", FileRoot, fileId); - if (*fileName) delete[] *fileName; - *fileName = copystring(FileNameFromPath(buf)); - *fd = fopen(buf, "w"); - fprintf(*fd, "\n"); -} - -/* - * Reopen section contents file, i.e. the index appended to each section - * in subsectionCombine mode - */ - -static char *SectionContentsFilename = NULL; -static FILE *SectionContentsFD = NULL; - -void ReopenSectionContentsFile(void) -{ - if ( SectionContentsFD ) - { - fclose(SectionContentsFD); - } - if ( SectionContentsFilename ) - delete[] SectionContentsFilename; - SectionContentsFD = NULL; - SectionContentsFilename = NULL; - - // Create the name from the current section filename - if ( CurrentSectionFile ) - { - char buf[256]; - strcpy(buf, CurrentSectionFile); - wxStripExtension(buf); - strcat(buf, ".con"); - SectionContentsFilename = copystring(buf); - - SectionContentsFD = fopen(SectionContentsFilename, "w"); - } -} - - -/* - * Given a TexChunk with a string value, scans through the string - * converting Latex-isms into HTML-isms, such as 2 newlines ->

    . - * - */ - -void ProcessText2HTML(TexChunk *chunk) -{ - bool changed = FALSE; - int ptr = 0; - int i = 0; - char ch = 1; - int len = strlen(chunk->value); - while (ch != 0) - { - ch = chunk->value[i]; - - // 2 newlines means \par - if (!inVerbatim && chunk->value[i] == 10 && ((len > i+1 && chunk->value[i+1] == 10) || - ((len > i+1 && chunk->value[i+1] == 13) && - (len > i+2 && chunk->value[i+2] == 10)))) - { - BigBuffer[ptr] = 0; strcat(BigBuffer, "

    \n\n"); ptr += 5; - i += 2; - changed = TRUE; - } - else if (!inVerbatim && ch == '`' && (len >= i+1 && chunk->value[i+1] == '`')) - { - BigBuffer[ptr] = '"'; ptr ++; - i += 2; - changed = TRUE; - } - else if (!inVerbatim && ch == '`') // Change ` to ' - { - BigBuffer[ptr] = 39; ptr ++; - i += 1; - changed = TRUE; - } - else if (ch == '<') // Change < to < - { - BigBuffer[ptr] = 0; - strcat(BigBuffer, "<"); - ptr += 4; - i += 1; - changed = TRUE; - } - else if (ch == '>') // Change > to > - { - BigBuffer[ptr] = 0; - strcat(BigBuffer, ">"); - ptr += 4; - i += 1; - changed = TRUE; - } - else - { - BigBuffer[ptr] = ch; - i ++; - ptr ++; - } - } - BigBuffer[ptr] = 0; - - if (changed) - { - delete chunk->value; - chunk->value = copystring(BigBuffer); - } -} - -/* - * Scan through all chunks starting from the given one, - * calling ProcessText2HTML to convert Latex-isms to RTF-isms. - * This should be called after Tex2Any has parsed the file, - * and before TraverseDocument is called. - * - */ - -void Text2HTML(TexChunk *chunk) -{ - Tex2RTFYield(); - if (stopRunning) return; - - switch (chunk->type) - { - case CHUNK_TYPE_MACRO: - { - TexMacroDef *def = chunk->def; - - if (def && def->ignore) - return; - - if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB || def->macroId == ltSPECIAL)) - inVerbatim = TRUE; - - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - Text2HTML(child_chunk); - node = node->Next(); - } - - if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB || def->macroId == ltSPECIAL)) - inVerbatim = FALSE; - - break; - } - case CHUNK_TYPE_ARG: - { - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - Text2HTML(child_chunk); - node = node->Next(); - } - - break; - } - case CHUNK_TYPE_STRING: - { - if (chunk->value) - ProcessText2HTML(chunk); - break; - } - } -} - -/* - * Add appropriate browse buttons to this page. - * - */ - -void AddBrowseButtons(char *upLabel, char *upFilename, - char *previousLabel, char *previousFilename, - char *thisLabel, char *thisFilename) -{ - char contentsReferenceBuf[80]; - char upReferenceBuf[80]; - char backReferenceBuf[80]; - char forwardReferenceBuf[80]; - if (htmlBrowseButtons == HTML_BUTTONS_NONE) - return; - - char *contentsReference = NULL; - if (htmlBrowseButtons == HTML_BUTTONS_TEXT) - contentsReference = ContentsNameString; - else - { -// contentsReference = "\"Contents\""; - contentsReference = contentsReferenceBuf; - sprintf(contentsReference, "\"Contents\"", ConvertCase("contents.gif")); - } - - char *upReference = NULL; - if (htmlBrowseButtons == HTML_BUTTONS_TEXT) - upReference = UpNameString; - else - { -// upReference = "\"Up\""; - upReference = upReferenceBuf; - sprintf(upReference, "\"Up\"", ConvertCase("up.gif")); - } - - char *backReference = NULL; - if (htmlBrowseButtons == HTML_BUTTONS_TEXT) - backReference = "<<"; - else - { -// backReference = "\"Previous\""; - backReference = backReferenceBuf; - sprintf(backReference, "\"Previous\"", ConvertCase("back.gif")); - } - - char *forwardReference = NULL; - if (htmlBrowseButtons == HTML_BUTTONS_TEXT) - forwardReference = ">>"; - else - { -// forwardReference = "\"Next\""; - forwardReference = forwardReferenceBuf; - sprintf(forwardReference, "\"Next\"", ConvertCase("forward.gif")); - } - - TexOutput("

    "); - - char buf[200]; - - /* - * Contents button - * - */ - - if (truncateFilenames) - { - char buf1[80]; - strcpy(buf1, ConvertCase(FileNameFromPath(FileRoot))); - sprintf(buf, "\n%s ", buf1, ConvertCase("htm"), contentsReference); - } - else - { - char buf1[80]; - strcpy(buf1, ConvertCase(FileNameFromPath(FileRoot))); - sprintf(buf, "\n%s ", buf1, ConvertCase("_contents.html"), contentsReference); - } -// TexOutput(""); - TexOutput(buf); -// TexOutput(""); - - /* - * Up button - * - */ - - if (upLabel && upFilename) - { - if (strlen(upLabel) > 0) - sprintf(buf, "%s ", ConvertCase(upFilename), upLabel, upReference); - else - sprintf(buf, "%s ", ConvertCase(upFilename), upReference); - if (strcmp(upLabel, "contents") == 0) - { -// TexOutput(""); - TexOutput(buf); -// TexOutput(""); - } - else - TexOutput(buf); - } - - /* - * << button - * - */ - - if (previousLabel && previousFilename) - { - sprintf(buf, "%s ", ConvertCase(previousFilename), previousLabel, backReference); - if (strcmp(previousLabel, "contents") == 0) - { -// TexOutput(""); - TexOutput(buf); -// TexOutput(""); - } - else - TexOutput(buf); - } - else - { - // A placeholder so the buttons don't keep moving position - sprintf(buf, "%s ", backReference); - TexOutput(buf); - } - - char *nextLabel = NULL; - char *nextFilename = NULL; - - // Get the next page, and record the previous page's 'next' page - // (i.e. this page) - TexNextPage *nextPage = (TexNextPage *)TexNextPages.Get(thisLabel); - if (nextPage) - { - nextLabel = nextPage->label; - nextFilename = nextPage->filename; - } - if (previousLabel && previousFilename) - { - TexNextPage *oldNextPage = (TexNextPage *)TexNextPages.Get(previousLabel); - if (oldNextPage) - { - delete oldNextPage; - TexNextPages.Delete(previousLabel); - } - TexNextPage *newNextPage = new TexNextPage(thisLabel, thisFilename); - TexNextPages.Put(previousLabel, newNextPage); - } - - /* - * >> button - * - */ - - if (nextLabel && nextFilename) - { - sprintf(buf, "%s ", ConvertCase(nextFilename), nextLabel, forwardReference); - TexOutput(buf); - } - else - { - // A placeholder so the buttons don't keep moving position - sprintf(buf, "%s ", forwardReference); - TexOutput(buf); - } - - /* - * Horizontal rule to finish it off nicely. - * - */ - TexOutput("
    "); - TexOutput("
    \n"); - - // Update last topic/filename - if (lastFileName) - delete[] lastFileName; - lastFileName = copystring(thisFilename); - if (lastTopic) - delete[] lastTopic; - lastTopic = copystring(thisLabel); -} - -// A colour string is either 3 numbers separated by semicolons (RGB), -// or a reference to a GIF. Return the filename or a hex string like #934CE8 -char *ParseColourString(char *bkStr, bool *isPicture) -{ - static char resStr[300]; - strcpy(resStr, bkStr); - char *tok1 = strtok(resStr, ";"); - char *tok2 = strtok(NULL, ";"); - if (tok1) - { - if (!tok2) - { - *isPicture = TRUE; - return resStr; - } - else - { - *isPicture = FALSE; - char *tok3 = strtok(NULL, ";"); - if (tok3) - { - // Now convert 3 strings into decimal numbers, and then hex numbers. - int red = atoi(tok1); - int green = atoi(tok2); - int blue = atoi(tok3); - - strcpy(resStr, "#"); - - char buf[3]; - DecToHex(red, buf); - strcat(resStr, buf); - DecToHex(green, buf); - strcat(resStr, buf); - DecToHex(blue, buf); - strcat(resStr, buf); - return resStr; - } - else return NULL; - } - } - else return NULL; -} - -// Output start of block -void OutputBodyStart(void) -{ - TexOutput("\n\n"); -} - -// Called on start/end of macro examination -void HTMLOnMacro(int macroId, int no_args, bool start) -{ - switch (macroId) - { - case ltCHAPTER: - case ltCHAPTERSTAR: - case ltCHAPTERHEADING: - { - if (!start) - { - sectionNo = 0; - figureNo = 0; - subsectionNo = 0; - subsubsectionNo = 0; - if (macroId != ltCHAPTERSTAR) - chapterNo ++; - - SetCurrentOutput(NULL); - startedSections = TRUE; - - char *topicName = FindTopicName(GetNextChunk()); - ReopenFile(&Chapters, &ChaptersName); - AddTexRef(topicName, ChaptersName, ChapterNameString); - - SetCurrentChapterName(topicName, ChaptersName); - if (htmlWorkshopFiles) HTMLWorkshopAddToContents(0, topicName, ChaptersName); - - SetCurrentOutput(Chapters); - - TexOutput(""); - OutputCurrentSection(); // Repeat section header - TexOutput("\n"); - OutputBodyStart(); - - char titleBuf[200]; - if (truncateFilenames) - sprintf(titleBuf, "%s.htm", FileNameFromPath(FileRoot)); - else - sprintf(titleBuf, "%s_contents.html", FileNameFromPath(FileRoot)); - - fprintf(Chapters, "", topicName); - - AddBrowseButtons("", titleBuf, // Up - lastTopic, lastFileName, // Last topic - topicName, ChaptersName); // This topic - - fprintf(Contents, "\n
  • ", ConvertCase(ChaptersName), topicName); - - if (htmlFrameContents && FrameContents) - { - SetCurrentOutput(FrameContents); - fprintf(FrameContents, "\n
  • ", ConvertCase(ChaptersName), topicName); - OutputCurrentSection(); - fprintf(FrameContents, "\n"); - } - - SetCurrentOutputs(Contents, Chapters); - fprintf(Chapters, "\n

    "); - OutputCurrentSection(); - fprintf(Contents, "\n"); - fprintf(Chapters, "

    \n"); - - SetCurrentOutput(Chapters); - - // Add this section title to the list of keywords - if (htmlIndex) - { - OutputCurrentSectionToString(wxBuffer); - AddKeyWordForTopic(topicName, wxBuffer, ConvertCase(currentFileName)); - } - } - break; - } - case ltSECTION: - case ltSECTIONSTAR: - case ltSECTIONHEADING: - case ltGLOSS: - { - if (!start) - { - subsectionNo = 0; - subsubsectionNo = 0; - subsectionStarted = FALSE; - - if (macroId != ltSECTIONSTAR) - sectionNo ++; - - SetCurrentOutput(NULL); - startedSections = TRUE; - - char *topicName = FindTopicName(GetNextChunk()); - ReopenFile(&Sections, &SectionsName); - AddTexRef(topicName, SectionsName, SectionNameString); - - SetCurrentSectionName(topicName, SectionsName); - if (htmlWorkshopFiles) HTMLWorkshopAddToContents(1, topicName, SectionsName); - - SetCurrentOutput(Sections); - TexOutput(""); - OutputCurrentSection(); - TexOutput("\n"); - OutputBodyStart(); - - fprintf(Sections, "", topicName); - AddBrowseButtons(CurrentChapterName, CurrentChapterFile, // Up - lastTopic, lastFileName, // Last topic - topicName, SectionsName); // This topic - - FILE *jumpFrom = ((DocumentStyle == LATEX_ARTICLE) ? Contents : Chapters); - - SetCurrentOutputs(jumpFrom, Sections); - if (DocumentStyle == LATEX_ARTICLE) - fprintf(jumpFrom, "\n
  • ", ConvertCase(SectionsName), topicName); - else - fprintf(jumpFrom, "\n", ConvertCase(SectionsName), topicName); - - fprintf(Sections, "\n

    "); - OutputCurrentSection(); - - if (DocumentStyle == LATEX_ARTICLE) - fprintf(jumpFrom, "\n"); - else - fprintf(jumpFrom, "
    \n"); - fprintf(Sections, "

    \n"); - - SetCurrentOutput(Sections); - // Add this section title to the list of keywords - if (htmlIndex) - { - OutputCurrentSectionToString(wxBuffer); - AddKeyWordForTopic(topicName, wxBuffer, currentFileName); - } - } - break; - } - case ltSUBSECTION: - case ltSUBSECTIONSTAR: - case ltMEMBERSECTION: - case ltFUNCTIONSECTION: - { - if (!start) - { - if (!Sections) - { - OnError("You cannot have a subsection before a section!"); - } - else - { - subsubsectionNo = 0; - - if (macroId != ltSUBSECTIONSTAR) - subsectionNo ++; - - if ( combineSubSections && !subsectionStarted ) - { - // Read old .con file in at this point - char buf[256]; - strcpy(buf, CurrentSectionFile); - wxStripExtension(buf); - strcat(buf, ".con"); - FILE *fd = fopen(buf, "r"); - if ( fd ) - { - int ch = getc(fd); - while (ch != EOF) - { - putc(ch, Sections); - ch = getc(fd); - } - fclose(fd); - } - fprintf(Sections, "

    \n"); - - // Close old file, create a new file for the sub(sub)section contents entries - ReopenSectionContentsFile(); - } - - startedSections = TRUE; - subsectionStarted = TRUE; - - char *topicName = FindTopicName(GetNextChunk()); - - if ( !combineSubSections ) - { - SetCurrentOutput(NULL); - ReopenFile(&Subsections, &SubsectionsName); - AddTexRef(topicName, SubsectionsName, SubsectionNameString); - SetCurrentSubsectionName(topicName, SubsectionsName); - if (htmlWorkshopFiles) HTMLWorkshopAddToContents(2, topicName, SubsectionsName); - SetCurrentOutput(Subsections); - - TexOutput(""); - OutputCurrentSection(); - TexOutput("\n"); - OutputBodyStart(); - - fprintf(Subsections, "", topicName); - AddBrowseButtons(CurrentSectionName, CurrentSectionFile, // Up - lastTopic, lastFileName, // Last topic - topicName, SubsectionsName); // This topic - - SetCurrentOutputs(Sections, Subsections); - fprintf(Sections, "\n", ConvertCase(SubsectionsName), topicName); - - fprintf(Subsections, "\n

    "); - OutputCurrentSection(); - fprintf(Sections, "
    \n"); - fprintf(Subsections, "

    \n"); - - SetCurrentOutput(Subsections); - } - else - { - AddTexRef(topicName, SectionsName, SubsectionNameString); - SetCurrentSubsectionName(topicName, SectionsName); - -// if ( subsectionNo != 0 ) - fprintf(Sections, "\n
    \n"); - - // We're putting everything into the section file - fprintf(Sections, "", topicName); - fprintf(Sections, "\n

    "); - OutputCurrentSection(); - fprintf(Sections, "

    \n"); - - SetCurrentOutput(SectionContentsFD); - fprintf(SectionContentsFD, "", topicName); - OutputCurrentSection(); - TexOutput("
    \n"); - - if (htmlWorkshopFiles) HTMLWorkshopAddToContents(2, topicName, SectionsName); - SetCurrentOutput(Sections); - } - // Add this section title to the list of keywords - if (htmlIndex) - { - OutputCurrentSectionToString(wxBuffer); - AddKeyWordForTopic(topicName, wxBuffer, currentFileName); - } - - } - } - break; - } - case ltSUBSUBSECTION: - case ltSUBSUBSECTIONSTAR: - { - if (!start) - { - if (!Subsections && !combineSubSections) - { - OnError("You cannot have a subsubsection before a subsection!"); - } - else - { - if (macroId != ltSUBSUBSECTIONSTAR) - subsubsectionNo ++; - - startedSections = TRUE; - - char *topicName = FindTopicName(GetNextChunk()); - - if ( !combineSubSections ) - { - SetCurrentOutput(NULL); - ReopenFile(&Subsubsections, &SubsubsectionsName); - AddTexRef(topicName, SubsubsectionsName, SubsubsectionNameString); - SetCurrentSubsubsectionName(topicName, SubsubsectionsName); - if (htmlWorkshopFiles) HTMLWorkshopAddToContents(3, topicName, SubsubsectionsName); - - SetCurrentOutput(Subsubsections); - TexOutput(""); - OutputCurrentSection(); - TexOutput("\n"); - OutputBodyStart(); - - fprintf(Subsubsections, "", topicName); - - AddBrowseButtons(CurrentSubsectionName, CurrentSubsectionFile, // Up - lastTopic, lastFileName, // Last topic - topicName, SubsubsectionsName); // This topic - - SetCurrentOutputs(Subsections, Subsubsections); - fprintf(Subsections, "\n", ConvertCase(SubsubsectionsName), topicName); - - fprintf(Subsubsections, "\n

    "); - OutputCurrentSection(); - fprintf(Subsections, "
    \n"); - fprintf(Subsubsections, "

    \n"); - } - else - { - AddTexRef(topicName, SectionsName, SubsubsectionNameString); - SetCurrentSubsectionName(topicName, SectionsName); - fprintf(Sections, "\n
    \n"); - - // We're putting everything into the section file - fprintf(Sections, "", topicName); - fprintf(Sections, "\n

    "); - OutputCurrentSection(); - fprintf(Sections, "

    \n"); -/* TODO: where do we put subsubsection contents entry - indented, with subsection entries? - SetCurrentOutput(SectionContentsFD); - fprintf(SectionContentsFD, "", topicName); - OutputCurrentSection(); - TexOutput("
    "); -*/ - if (htmlWorkshopFiles) HTMLWorkshopAddToContents(2, topicName, SectionsName); - SetCurrentOutput(Sections); - } - - // Add this section title to the list of keywords - if (htmlIndex) - { - OutputCurrentSectionToString(wxBuffer); - AddKeyWordForTopic(topicName, wxBuffer, currentFileName); - } - } - } - break; - } - case ltFUNC: - case ltPFUNC: - { - if ( !combineSubSections ) - SetCurrentOutput(Subsections); - else - SetCurrentOutput(Sections); - if (start) - { - } - else - { - } - break; - } - case ltCLIPSFUNC: - { - if ( !combineSubSections ) - SetCurrentOutput(Subsections); - else - SetCurrentOutput(Sections); - if (start) - { - } - else - { - } - break; - } - case ltMEMBER: - { - if ( !combineSubSections ) - SetCurrentOutput(Subsections); - else - SetCurrentOutput(Sections); - if (start) - { - } - else - { - } - break; - } - case ltVOID: -// if (start) -// TexOutput("void"); - break; - case ltHARDY: - if (start) - TexOutput("HARDY"); - break; - case ltWXCLIPS: - if (start) - TexOutput("wxCLIPS"); - break; - case ltAMPERSAND: - if (start) - TexOutput("&"); - break; - case ltSPECIALAMPERSAND: - { - if (start) - { - if (inTabular) - { - // End cell, start cell - TexOutput(""); - - // Start new row and cell, setting alignment for the first cell. - if (currentColumn < noColumns) - currentColumn ++; - - char buf[100]; - if (TableData[currentColumn].justification == 'c') - sprintf(buf, "\n
  • \n"); - } - else - TexOutput("
    \n"); - } - break; - } - case ltROW: - case ltRULEDROW: - { - if (start) - { - currentColumn = 0; - - // Start new row and cell, setting alignment for the first cell. - char buf[100]; - if (TableData[currentColumn].justification == 'c') - sprintf(buf, "
    \n\n\n\n\n\n"); - } - break; - } - // HTML-only: break until the end of the picture (both margins are clear). - case ltBRCLEAR: - { - if (start) - TexOutput("
    "); - break; - } - case ltRTFSP: // Explicit space, RTF only - break; - case ltSPECIALTILDE: - { - if (start) - { - if (inVerbatim) - TexOutput("~"); - else - TexOutput(" "); - } - break; - } - case ltINDENTED : - { - if ( start ) - TexOutput("
        \n"); - else - TexOutput("
    \n"); - break; - } - case ltITEMIZE: - case ltENUMERATE: - case ltDESCRIPTION: -// case ltTWOCOLLIST: - { - if (start) - { - indentLevel ++; - - int listType; - if (macroId == ltENUMERATE) - listType = LATEX_ENUMERATE; - else if (macroId == ltITEMIZE) - listType = LATEX_ITEMIZE; - else - listType = LATEX_DESCRIPTION; - - itemizeStack.Insert(new ItemizeStruc(listType)); - switch (listType) - { - case LATEX_ITEMIZE: - TexOutput("
      \n"); - break; - case LATEX_ENUMERATE: - TexOutput("
        \n"); - break; - case LATEX_DESCRIPTION: - default: - TexOutput("
        \n"); - break; - } - } - else - { - indentLevel --; - if (itemizeStack.First()) - { - ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.First()->Data(); - switch (struc->listType) - { - case LATEX_ITEMIZE: - TexOutput("
    \n"); - break; - case LATEX_ENUMERATE: - TexOutput("\n"); - break; - case LATEX_DESCRIPTION: - default: - TexOutput("\n"); - break; - } - - delete struc; - delete itemizeStack.First(); - } - } - break; - } - case ltTWOCOLLIST : - { - if ( start ) - TexOutput("\n
    "); - else if (TableData[currentColumn].justification == 'r') - sprintf(buf, "\n"); - else if (TableData[currentColumn].absWidth) - { - // Convert from points * 20 into pixels. - int points = TableData[currentColumn].width / 20; - - // Say the display is 100 DPI (dots/pixels per inch). - // There are 72 pts to the inch. So 1pt = 1/72 inch, or 100 * 1/72 dots. - int pixels = (int)(points * 100.0 / 72.0); - sprintf(buf, "", pixels); - } - else - sprintf(buf, "\n"); - TexOutput(buf); - } - else - TexOutput("&"); - } - break; - } - case ltBACKSLASHCHAR: - { - if (start) - { - if (inTabular) - { - // End row. In fact, tables without use of \row or \ruledrow isn't supported for - // HTML: the syntax is too different (e.g. how do we know where to put the first - // if we've ended the last row?). So normally you wouldn't use \\ to end a row. - TexOutput("
    "); - else if (TableData[currentColumn].justification == 'r') - sprintf(buf, "
    "); - else if (TableData[currentColumn].absWidth) - { - // Convert from points * 20 into pixels. - int points = TableData[currentColumn].width / 20; - - // Say the display is 100 DPI (dots/pixels per inch). - // There are 72 pts to the inch. So 1pt = 1/72 inch, or 100 * 1/72 dots. - int pixels = (int)(points * 100.0 / 72.0); - sprintf(buf, "
    ", pixels); - } - else - sprintf(buf, "
    "); - TexOutput(buf); - } - else - { - // End cell and row - // Start new row and cell - TexOutput("
    \n"); - else - TexOutput("\n
    \n"); - break; - } - case ltPAR: - { - if (start) - TexOutput("

    \n"); - break; - } -/* For footnotes we need to output the text at the bottom of the page and - * insert a reference to it. Is it worth the trouble... - case ltFOOTNOTE: - case ltFOOTNOTEPOPUP: - { - if (start) - { - TexOutput("); - } - else TexOutput(""); - break; - } -*/ - case ltVERB: - { - if (start) - TexOutput(""); - else TexOutput(""); - break; - } - case ltVERBATIM: - { - if (start) - { - char buf[100]; - sprintf(buf, "

    \n");
    -      TexOutput(buf);
    -    }
    -    else TexOutput("
    \n"); - break; - } - case ltCENTERLINE: - case ltCENTER: - { - if (start) - { - TexOutput("
    "); - } - else TexOutput("
    "); - break; - } - case ltFLUSHLEFT: - { -/* - if (start) - { - TexOutput("{\\ql "); - } - else TexOutput("}\\par\\pard\n"); -*/ - break; - } - case ltFLUSHRIGHT: - { -/* - if (start) - { - TexOutput("{\\qr "); - } - else TexOutput("}\\par\\pard\n"); -*/ - break; - } - case ltSMALL: - { - if (start) - { - // Netscape extension - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltTINY: - { - if (start) - { - // Netscape extension - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltNORMALSIZE: - { - if (start) - { - // Netscape extension - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltlarge: - { - if (start) - { - // Netscape extension - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltLarge: - { - if (start) - { - // Netscape extension - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltLARGE: - { - if (start) - { - // Netscape extension - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltBFSERIES: - case ltTEXTBF: - case ltBF: - { - if (start) - { - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltITSHAPE: - case ltTEXTIT: - case ltIT: - { - if (start) - { - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltEMPH: - case ltEM: - { - if (start) - { - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltUNDERLINE: - { - if (start) - { - TexOutput("
      "); - } - else TexOutput("
    "); - break; - } - case ltTTFAMILY: - case ltTEXTTT: - case ltTT: - { - if (start) - { - TexOutput(""); - } - else TexOutput(""); - break; - } - case ltCOPYRIGHT: - { - if (start) - TexOutput("©", TRUE); - break; - } - case ltREGISTERED: - { - if (start) - TexOutput("®", TRUE); - break; - } - // Arrows - case ltLEFTARROW: - { - if (start) TexOutput("<--"); - break; - } - case ltLEFTARROW2: - { - if (start) TexOutput("<=="); - break; - } - case ltRIGHTARROW: - { - if (start) TexOutput("-->"); - break; - } - case ltRIGHTARROW2: - { - if (start) TexOutput("==>"); - break; - } - case ltLEFTRIGHTARROW: - { - if (start) TexOutput("<-->"); - break; - } - case ltLEFTRIGHTARROW2: - { - if (start) TexOutput("<==>"); - break; - } -/* - case ltSC: - { - break; - } -*/ - case ltITEM: - { - if (!start) - { - wxNode *node = itemizeStack.First(); - if (node) - { - ItemizeStruc *struc = (ItemizeStruc *)node->Data(); - struc->currentItem += 1; - if (struc->listType == LATEX_DESCRIPTION) - { - if (descriptionItemArg) - { - TexOutput("
    "); - TraverseChildrenFromChunk(descriptionItemArg); - TexOutput("\n"); - descriptionItemArg = NULL; - } - TexOutput("
    "); - } - else - TexOutput("
  • "); - } - } - break; - } - case ltMAKETITLE: - { - if (start && DocumentTitle && DocumentAuthor) - { - // Add a special label for the contents page. -// TexOutput("
    \n"); - TexOutput(""); - TexOutput("

    \n"); - TraverseChildrenFromChunk(DocumentTitle); - TexOutput("

    "); - TexOutput("

    "); - TexOutput("\n"); - TexOutput("

    \n\n"); - TexOutput("

    "); - TraverseChildrenFromChunk(DocumentAuthor); - TexOutput("

    \n\n"); - if (DocumentDate) - { - TexOutput("

    "); - TraverseChildrenFromChunk(DocumentDate); - TexOutput("

    \n\n"); - } -// TexOutput("\n

    \n"); - TexOutput("\n


    \n"); - -/* - // Now do optional frame contents page - if (htmlFrameContents && FrameContents) - { - SetCurrentOutput(FrameContents); - - // Add a special label for the contents page. - TexOutput("

    \n"); - TexOutput("

    \n"); - TraverseChildrenFromChunk(DocumentTitle); - TexOutput("

    "); - TexOutput("

    "); - TexOutput("\n"); - TexOutput("

    \n\n"); - TexOutput("

    "); - TraverseChildrenFromChunk(DocumentAuthor); - TexOutput("

    \n\n"); - if (DocumentDate) - { - TexOutput("

    "); - TraverseChildrenFromChunk(DocumentDate); - TexOutput("

    \n\n"); - } - TexOutput("\n

    \n"); - TexOutput("


    \n"); - - SetCurrentOutput(Titlepage); - } -*/ - } - break; - } - case ltHELPREF: - case ltHELPREFN: - case ltPOPREF: - case ltURLREF: - { - if (start) - { - helpRefFilename = NULL; - helpRefText = NULL; - } - break; - } - case ltBIBLIOGRAPHY: - { - if (start) - { - DefaultOnMacro(macroId, no_args, start); - } - else - { - DefaultOnMacro(macroId, no_args, start); - TexOutput("\n"); - } - break; - } - case ltHRULE: - { - if (start) - { - TexOutput("


    \n"); - } - break; - } - case ltRULE: - { - if (start) - { - TexOutput("
    \n"); - } - break; - } - case ltTABLEOFCONTENTS: - { - if (start) - { - FILE *fd = fopen(ContentsName, "r"); - if (fd) - { - int ch = getc(fd); - while (ch != EOF) - { - putc(ch, Titlepage); - ch = getc(fd); - } - fclose(fd); - } - else - { - TexOutput("RUN TEX2RTF AGAIN FOR CONTENTS PAGE\n"); - OnInform("Run Tex2RTF again to include contents page."); - } - } - break; - } - case ltLANGLEBRA: - { - if (start) - TexOutput("<"); - break; - } - case ltRANGLEBRA: - { - if (start) - TexOutput(">"); - break; - } - case ltQUOTE: - case ltQUOTATION: - { - if (start) - TexOutput("
    "); - else - TexOutput("
    "); - break; - } - case ltCAPTION: - case ltCAPTIONSTAR: - { - if (start) - { - if (inTabular) - TexOutput("\n"); - - char figBuf[40]; - - if ( inFigure ) - { - figureNo ++; - - if (DocumentStyle != LATEX_ARTICLE) - sprintf(figBuf, "%s %d.%d: ", FigureNameString, chapterNo, figureNo); - else - sprintf(figBuf, "%s %d: ", FigureNameString, figureNo); - } - else - { - tableNo ++; - - if (DocumentStyle != LATEX_ARTICLE) - sprintf(figBuf, "%s %d.%d: ", TableNameString, chapterNo, tableNo); - else - sprintf(figBuf, "%s %d: ", TableNameString, tableNo); - } - - TexOutput(figBuf); - } - else - { - if (inTabular) - TexOutput("\n\n"); - - char *topicName = FindTopicName(GetNextChunk()); - - int n = inFigure ? figureNo : tableNo; - - AddTexRef(topicName, NULL, NULL, - ((DocumentStyle != LATEX_ARTICLE) ? chapterNo : n), - ((DocumentStyle != LATEX_ARTICLE) ? n : 0)); - } - break; - } - case ltSS: - { - if (start) TexOutput("ß"); - break; - } - case ltFIGURE: - { - if (start) inFigure = TRUE; - else inFigure = FALSE; - break; - } - case ltTABLE: - { - if (start) inTable = TRUE; - else inTable = FALSE; - break; - } - default: - DefaultOnMacro(macroId, no_args, start); - break; - } -} - -// Called on start/end of argument examination -bool HTMLOnArgument(int macroId, int arg_no, bool start) -{ - switch (macroId) - { - case ltCHAPTER: - case ltCHAPTERSTAR: - case ltCHAPTERHEADING: - case ltSECTION: - case ltSECTIONSTAR: - case ltSECTIONHEADING: - case ltSUBSECTION: - case ltSUBSECTIONSTAR: - case ltSUBSUBSECTION: - case ltSUBSUBSECTIONSTAR: - case ltGLOSS: - case ltMEMBERSECTION: - case ltFUNCTIONSECTION: - { - if (!start && (arg_no == 1)) - currentSection = GetArgChunk(); - return FALSE; - break; - } - case ltFUNC: - { - if (start && (arg_no == 1)) - TexOutput(""); - - if (!start && (arg_no == 1)) - TexOutput(" "); - - if (start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput(""); - currentMember = GetArgChunk(); - } - if (!start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput(""); - } - - if (start && (arg_no == 3)) - TexOutput("("); - if (!start && (arg_no == 3)) - TexOutput(")"); - break; - } - case ltCLIPSFUNC: - { - if (start && (arg_no == 1)) - TexOutput(""); - if (!start && (arg_no == 1)) - TexOutput(" "); - - if (start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput("( "); - currentMember = GetArgChunk(); - } - if (!start && (arg_no == 2)) - { - } - - if (!start && (arg_no == 3)) - TexOutput(")"); - break; - } - case ltPFUNC: - { - if (!start && (arg_no == 1)) - TexOutput(" "); - - if (start && (arg_no == 2)) - TexOutput("(*"); - if (!start && (arg_no == 2)) - TexOutput(")"); - - if (start && (arg_no == 2)) - currentMember = GetArgChunk(); - - if (start && (arg_no == 3)) - TexOutput("("); - if (!start && (arg_no == 3)) - TexOutput(")"); - break; - } - case ltPARAM: - { - if (start && (arg_no == 1)) - TexOutput(""); - if (!start && (arg_no == 1)) - TexOutput(""); - if (start && (arg_no == 2)) - { - TexOutput(""); - } - if (!start && (arg_no == 2)) - { - TexOutput(""); - } - break; - } - case ltCPARAM: - { - if (start && (arg_no == 1)) - TexOutput(""); - if (!start && (arg_no == 1)) - TexOutput(" "); // This is the difference from param - one space! - if (start && (arg_no == 2)) - { - TexOutput(""); - } - if (!start && (arg_no == 2)) - { - TexOutput(""); - } - break; - } - case ltMEMBER: - { - if (!start && (arg_no == 1)) - TexOutput(" "); - - if (start && (arg_no == 2)) - currentMember = GetArgChunk(); - break; - } - case ltREF: - { - if (start) - { - char *sec = NULL; - - char *refName = GetArgData(); - if (refName) - { - TexRef *texRef = FindReference(refName); - if (texRef) - { - sec = texRef->sectionNumber; - } - } - if (sec) - { - TexOutput(sec); - } - return FALSE; - } - break; - } - case ltURLREF: - { - if (IsArgOptional()) - return FALSE; - else if ((GetNoArgs() - arg_no) == 1) - { - if (start) - helpRefText = GetArgChunk(); - return FALSE; - } - else if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional - { - if (start) - { - TexChunk *ref = GetArgChunk(); - TexOutput(""); - if (helpRefText) - TraverseChildrenFromChunk(helpRefText); - TexOutput(""); - } - return FALSE; - } - break; - } - case ltHELPREF: - case ltHELPREFN: - case ltPOPREF: - { - if (IsArgOptional()) - { - if (start) - helpRefFilename = GetArgChunk(); - return FALSE; - } - if ((GetNoArgs() - arg_no) == 1) - { - if (start) - helpRefText = GetArgChunk(); - return FALSE; - } - else if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional - { - if (start) - { - char *refName = GetArgData(); - char *refFilename = NULL; - - if (refName) - { - TexRef *texRef = FindReference(refName); - if (texRef) - { - if (texRef->refFile && strcmp(texRef->refFile, "??") != 0) - refFilename = texRef->refFile; - - TexOutput(""); - if (helpRefText) - TraverseChildrenFromChunk(helpRefText); - TexOutput(""); - } - else - { - if (helpRefText) - TraverseChildrenFromChunk(helpRefText); - TexOutput(" (REF NOT FOUND)"); - } - } - else TexOutput("??"); - } - return FALSE; - } - break; - } - case ltIMAGE: - case ltIMAGEL: - case ltIMAGER: - case ltPSBOXTO: - { - if (arg_no == 2) - { - if (start) - { - char *alignment = ""; - if (macroId == ltIMAGEL) - alignment = " align=left"; - else if (macroId == ltIMAGER) - alignment = " align=right"; - - // Try to find an XBM or GIF image first. - char *filename = copystring(GetArgData()); - char buf[500]; - - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".xbm"); - wxString f = TexPathList.FindValidPath(buf); - - if (f == "") // Try for a GIF instead - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".gif"); - f = TexPathList.FindValidPath(buf); - } - - if (f == "") // Try for a JPEG instead - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".jpg"); - f = TexPathList.FindValidPath(buf); - } - - if (f == "") // Try for a PNG instead - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".png"); - f = TexPathList.FindValidPath(buf); - } - - if (f != "") - { - char *inlineFilename = copystring(f); -#if 0 - char *originalFilename = TexPathList.FindValidPath(filename); - // If we have found the existing filename, make the inline - // image point to the original file (could be PS, for example) - if (originalFilename && (strcmp(inlineFilename, originalFilename) != 0)) - { - TexOutput(""); - TexOutput(""); - } - else -#endif - { - TexOutput(""); - delete[] inlineFilename; - } - } - else - { - // Last resort - a link to a PS file. - TexOutput("Picture\n"); - sprintf(buf, "Warning: could not find an inline XBM/GIF for %s.", filename); - OnInform(buf); - } - } - } - return FALSE; - break; - } - // First arg is PSBOX spec (ignored), second is image file, third is map name. - case ltIMAGEMAP: - { - static char *imageFile = NULL; - if (start && (arg_no == 2)) - { - // Try to find an XBM or GIF image first. - char *filename = copystring(GetArgData()); - char buf[500]; - - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".xbm"); - wxString f = TexPathList.FindValidPath(buf); - - if (f == "") // Try for a GIF instead - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".gif"); - f = TexPathList.FindValidPath(buf); - } - if (f == "") - { - char buf[300]; - sprintf(buf, "Warning: could not find an inline XBM/GIF for %s.", filename); - OnInform(buf); - } - delete[] filename; - if (imageFile) - delete[] imageFile; - imageFile = NULL; - if (f) - { - imageFile = copystring(f); - } - } - else if (start && (arg_no == 3)) - { - if (imageFile) - { - // First, try to find a .shg (segmented hypergraphics file) - // that we can convert to a map file - char buf[256]; - strcpy(buf, imageFile); - StripExtension(buf); - strcat(buf, ".shg"); - wxString f = TexPathList.FindValidPath(buf); - - if (f != "") - { - // The default HTML file to go to is THIS file (so a no-op) - SHGToMap((char*) (const char*) f, currentFileName); - } - - char *mapName = GetArgData(); - TexOutput(""); - TexOutput("

    "); - delete[] imageFile; - imageFile = NULL; - } - } - return FALSE; - break; - } - case ltINDENTED : - { - if ( arg_no == 1 ) - return FALSE; - else - { - return TRUE; - } - } - case ltITEM: - { - if (start) - { - descriptionItemArg = GetArgChunk(); - return FALSE; - } - } - case ltTWOCOLITEM: - case ltTWOCOLITEMRULED: - { -/* - if (start && (arg_no == 1)) - TexOutput("\n

    "); - if (start && (arg_no == 2)) - TexOutput("
    "); -*/ - if (arg_no == 1) - { - if ( start ) - TexOutput("\n\n"); - else - TexOutput("\n\n"); - } - if (arg_no == 2) - { - if ( start ) - TexOutput("\n\n"); - else - TexOutput("\n\n"); - } - return TRUE; - break; - } - case ltNUMBEREDBIBITEM: - { - if (arg_no == 1 && start) - { - TexOutput("\n
    "); - } - if (arg_no == 2 && !start) - TexOutput("

    \n"); - break; - } - case ltBIBITEM: - { - char buf[100]; - if (arg_no == 1 && start) - { - char *citeKey = GetArgData(); - TexRef *ref = (TexRef *)TexReferences.Get(citeKey); - if (ref) - { - if (ref->sectionNumber) delete[] ref->sectionNumber; - sprintf(buf, "[%d]", citeCount); - ref->sectionNumber = copystring(buf); - } - - sprintf(buf, "\n

    [%d] ", citeCount); - TexOutput(buf); - citeCount ++; - return FALSE; - } - if (arg_no == 2 && !start) - TexOutput("

    \n"); - return TRUE; - break; - } - case ltMARGINPAR: - case ltMARGINPARODD: - case ltMARGINPAREVEN: - case ltNORMALBOX: - case ltNORMALBOXD: - { - if (start) - { - TexOutput("


    \n"); - return TRUE; - } - else - TexOutput("

    \n"); - break; - } - /* - * Accents - * - */ - case ltACCENT_GRAVE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("à"); - break; - case 'e': - TexOutput("è"); - break; - case 'i': - TexOutput("ì"); - break; - case 'o': - TexOutput("ò"); - break; - case 'u': - TexOutput("ù"); - break; - case 'A': - TexOutput("À"); - break; - case 'E': - TexOutput("È"); - break; - case 'I': - TexOutput("Ì"); - break; - case 'O': - TexOutput("Ò"); - break; - case 'U': - TexOutput("Ì"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_ACUTE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("á"); - break; - case 'e': - TexOutput("é"); - break; - case 'i': - TexOutput("í"); - break; - case 'o': - TexOutput("ó"); - break; - case 'u': - TexOutput("ú"); - break; - case 'y': - TexOutput("ý"); - break; - case 'A': - TexOutput("Á"); - break; - case 'E': - TexOutput("É"); - break; - case 'I': - TexOutput("Í"); - break; - case 'O': - TexOutput("Ó"); - break; - case 'U': - TexOutput("Ú"); - break; - case 'Y': - TexOutput("Ý"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_CARET: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("â"); - break; - case 'e': - TexOutput("ê"); - break; - case 'i': - TexOutput("î"); - break; - case 'o': - TexOutput("ô"); - break; - case 'u': - TexOutput("û"); - break; - case 'A': - TexOutput("Â"); - break; - case 'E': - TexOutput("Ê"); - break; - case 'I': - TexOutput("Î"); - break; - case 'O': - TexOutput("Ô"); - break; - case 'U': - TexOutput("Î"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_TILDE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case ' ': - TexOutput("~"); - break; - case 'a': - TexOutput("ã"); - break; - case 'n': - TexOutput("ñ"); - break; - case 'o': - TexOutput("õ"); - break; - case 'A': - TexOutput("Ã"); - break; - case 'N': - TexOutput("Ñ"); - break; - case 'O': - TexOutput("Õ"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_UMLAUT: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("ä"); - break; - case 'e': - TexOutput("ë"); - break; - case 'i': - TexOutput("ï"); - break; - case 'o': - TexOutput("ö"); - break; - case 'u': - TexOutput("ü"); - break; - case 'y': - TexOutput("ÿ"); - break; - case 'A': - TexOutput("Ä"); - break; - case 'E': - TexOutput("Ë"); - break; - case 'I': - TexOutput("Ï"); - break; - case 'O': - TexOutput("Ö"); - break; - case 'U': - TexOutput("Ü"); - break; - case 'Y': - TexOutput("Ÿ"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_DOT: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("å"); - break; - case 'A': - TexOutput("Å"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltBACKGROUND: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - bool isPicture = FALSE; - char *s = ParseColourString(val, &isPicture); - if (isPicture) - { - if (backgroundImageString) - delete[] backgroundImageString; - backgroundImageString = copystring(val); - } - else - { - if (backgroundColourString) - delete[] backgroundColourString; - backgroundColourString = copystring(val); - } - } - } - return FALSE; - break; - } - case ltBACKGROUNDIMAGE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - if (backgroundImageString) - delete[] backgroundImageString; - backgroundImageString = copystring(val); - } - } - return FALSE; - break; - } - case ltBACKGROUNDCOLOUR: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - if (backgroundColourString) - delete[] backgroundColourString; - backgroundColourString = copystring(val); - } - } - return FALSE; - break; - } - case ltTEXTCOLOUR: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - if (textColourString) - delete[] textColourString; - textColourString = copystring(val); - } - } - return FALSE; - break; - } - case ltLINKCOLOUR: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - if (linkColourString) - delete[] linkColourString; - linkColourString = copystring(val); - } - } - return FALSE; - break; - } - case ltFOLLOWEDLINKCOLOUR: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - if (followedLinkColourString) - delete[] followedLinkColourString; - followedLinkColourString = copystring(val); - } - } - return FALSE; - break; - } - case ltACCENT_CADILLA: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'c': - TexOutput("ç"); - break; - case 'C': - TexOutput("Ç"); - break; - default: - break; - } - } - } - return FALSE; - break; - } -/* - case ltFOOTNOTE: - case ltFOOTNOTEPOPUP: - { - if (arg_no == 1) - return TRUE; - else - return FALSE; - break; - } -*/ - case ltTABULAR: - case ltSUPERTABULAR: - { - if (arg_no == 1) - { - if (start) - { - currentRowNumber = 0; - inTabular = TRUE; - startRows = TRUE; - tableVerticalLineLeft = FALSE; - tableVerticalLineRight = FALSE; - int currentWidth = 0; - - char *alignString = copystring(GetArgData()); - ParseTableArgument(alignString); - - TexOutput("\n"); - - // Write the first row formatting for compatibility - // with standard Latex - if (compatibilityMode) - { - TexOutput("\n
    "); -/* - for (int i = 0; i < noColumns; i++) - { - currentWidth += TableData[i].width; - sprintf(buf, "\\cellx%d", currentWidth); - TexOutput(buf); - } - TexOutput("\\pard\\intbl\n"); -*/ - } - delete[] alignString; - - return FALSE; - } - } - else if (arg_no == 2 && !start) - { - TexOutput("
    \n"); - inTabular = FALSE; - } - break; - } - case ltTHEBIBLIOGRAPHY: - { - if (start && (arg_no == 1)) - { - ReopenFile(&Chapters, &ChaptersName); - AddTexRef("bibliography", ChaptersName, "bibliography"); - SetCurrentSubsectionName("bibliography", ChaptersName); - - citeCount = 1; - - SetCurrentOutput(Chapters); - - char titleBuf[150]; - if (truncateFilenames) - sprintf(titleBuf, "%s.htm", FileNameFromPath(FileRoot)); - else - sprintf(titleBuf, "%s_contents.html", FileNameFromPath(FileRoot)); - - TexOutput(""); - TexOutput(ReferencesNameString); - TexOutput("\n"); - OutputBodyStart(); - - fprintf(Chapters, "\n

    %s", "bibliography", ReferencesNameString); - AddBrowseButtons("contents", titleBuf, // Up - lastTopic, lastFileName, // Last topic - "bibliography", ChaptersName); // This topic - - SetCurrentOutputs(Contents, Chapters); - fprintf(Contents, "\n
  • ", ConvertCase(ChaptersName), "bibliography"); - - fprintf(Contents, "%s\n", ReferencesNameString); - fprintf(Chapters, "
  • \n\n"); - - SetCurrentOutput(Chapters); - return FALSE; - } - if (!start && (arg_no == 2)) - { - } - return TRUE; - break; - } - case ltINDEX: - { - /* Build up list of keywords associated with topics */ - if (start) - { -// char *entry = GetArgData(); - char buf[300]; - OutputChunkToString(GetArgChunk(), buf); - if (CurrentTopic) - { - AddKeyWordForTopic(CurrentTopic, buf, currentFileName); - } - } - return FALSE; - break; - } - case ltFCOL: -// case ltBCOL: - { - if (start) - { - switch (arg_no) - { - case 1: - { - char *name = GetArgData(); - char buf2[10]; - if (!FindColourHTMLString(name, buf2)) - { - strcpy(buf2, "#000000"); - char buf[100]; - sprintf(buf, "Could not find colour name %s", name); - OnError(buf); - } - TexOutput(""); - break; - } - case 2: - { - return TRUE; - break; - } - default: - break; - } - } - else - { - if (arg_no == 2) TexOutput(""); - } - return FALSE; - break; - } - case ltINSERTATLEVEL: - { - // This macro allows you to insert text at a different level - // from the current level, e.g. into the Sections from within a subsubsection. - if (useWord) - return FALSE; - static int currentLevelNo = 1; - static FILE* oldLevelFile = Chapters; - if (start) - { - switch (arg_no) - { - case 1: - { - oldLevelFile = CurrentOutput1; - - char *str = GetArgData(); - currentLevelNo = atoi(str); - FILE* outputFile; - // TODO: cope with article style (no chapters) - switch (currentLevelNo) - { - case 1: - { - outputFile = Chapters; - break; - } - case 2: - { - outputFile = Sections; - break; - } - case 3: - { - outputFile = Subsections; - break; - } - case 4: - { - outputFile = Subsubsections; - break; - } - default: - { - outputFile = NULL; - break; - } - } - if (outputFile) - CurrentOutput1 = outputFile; - return FALSE; - break; - } - case 2: - { - return TRUE; - break; - } - default: - break; - } - return TRUE; - } - else - { - if (arg_no == 2) - { - CurrentOutput1 = oldLevelFile; - } - return TRUE; - } - } - default: - return DefaultOnArgument(macroId, arg_no, start); - break; - } - return TRUE; -} - -bool HTMLGo(void) -{ - fileId = 0; - inVerbatim = FALSE; - indentLevel = 0; - inTabular = FALSE; - startRows = FALSE; - tableVerticalLineLeft = FALSE; - tableVerticalLineRight = FALSE; - noColumns = 0; - - if (InputFile && OutputFile) - { - // Do some HTML-specific transformations on all the strings, - // recursively - Text2HTML(GetTopLevelChunk()); - - char buf[300]; - if (truncateFilenames) - sprintf(buf, "%s.htm", FileRoot); - else - sprintf(buf, "%s_contents.html", FileRoot); - if (TitlepageName) delete[] TitlepageName; - TitlepageName = copystring(buf); - Titlepage = fopen(buf, "w"); - - if (truncateFilenames) - sprintf(buf, "%s_fc.htm", FileRoot); - else - sprintf(buf, "%s_fcontents.html", FileRoot); - - contentsFrameName = copystring(buf); - - Contents = fopen(TmpContentsName, "w"); - - if (htmlFrameContents) - { -// FrameContents = fopen(TmpFrameContentsName, "w"); - FrameContents = fopen(contentsFrameName, "w"); - fprintf(FrameContents, "\n
      \n"); - } - - if (!Titlepage || !Contents) - { - OnError("Cannot open output file!"); - return FALSE; - } - AddTexRef("contents", FileNameFromPath(TitlepageName), ContentsNameString); - - fprintf(Contents, "

      %s

      \n", ContentsNameString); - - fprintf(Contents, "

        \n"); - - SetCurrentOutput(Titlepage); - if (htmlWorkshopFiles) HTMLWorkshopStartContents(); - OnInform("Converting..."); - - TraverseDocument(); - fprintf(Contents, "
      \n\n"); - -// SetCurrentOutput(Titlepage); - fclose(Titlepage); - - if (Contents) - { -// fprintf(Titlepage, "\n\n"); - fclose(Contents); - Contents = NULL; - } - - if (FrameContents) - { - fprintf(FrameContents, "\n
    \n"); - fprintf(FrameContents, "\n"); - fclose(FrameContents); - FrameContents = NULL; - } - - if (Chapters) - { - fprintf(Chapters, "\n\n"); - fclose(Chapters); - Chapters = NULL; - } - if (Sections) - { - fprintf(Sections, "\n\n"); - fclose(Sections); - Sections = NULL; - } - if (Subsections && !combineSubSections) - { - fprintf(Subsections, "\n\n"); - fclose(Subsections); - Subsections = NULL; - } - if (Subsubsections && !combineSubSections) - { - fprintf(Subsubsections, "\n\n"); - fclose(Subsubsections); - Subsubsections = NULL; - } - if ( SectionContentsFD ) - { - fclose(SectionContentsFD); - SectionContentsFD = NULL; - } - - // Create a temporary file for the title page header, add some info, - // and concat the titlepage just generated. - // This is necessary in order to put the title of the document - // at the TOP of the file within , even though we only find out - // what it is later on. - FILE *tmpTitle = fopen("title.tmp", "w"); - if (tmpTitle) - { - if (DocumentTitle) - { - SetCurrentOutput(tmpTitle); - TexOutput("\n\n"); - TraverseChildrenFromChunk(DocumentTitle); - TexOutput("\n"); - } - else - { - SetCurrentOutput(tmpTitle); - if (contentsString) - fprintf(tmpTitle, "%s\n\n", contentsString); - else - fprintf(tmpTitle, "%s\n\n", FileNameFromPath(FileRoot)); - } - - // Output frame information - if (htmlFrameContents) - { - char firstFileName[300]; - if (truncateFilenames) - sprintf(firstFileName, "%s1.htm", FileRoot); - else - sprintf(firstFileName, "%s1.html", FileRoot); - - fprintf(tmpTitle, "\n"); - - fprintf(tmpTitle, "\n", ConvertCase(FileNameFromPath(contentsFrameName))); - fprintf(tmpTitle, "\n", ConvertCase(FileNameFromPath(firstFileName))); - fprintf(tmpTitle, "\n"); - - fprintf(tmpTitle, "\n"); - } - - // Output <BODY...> to temporary title page - OutputBodyStart(); - - // Concat titlepage - FILE *fd = fopen(TitlepageName, "r"); - if (fd) - { - int ch = getc(fd); - while (ch != EOF) - { - putc(ch, tmpTitle); - ch = getc(fd); - } - fclose(fd); - } - - fprintf(tmpTitle, "\n</BODY>\n"); - - if (htmlFrameContents) - { - fprintf(tmpTitle, "\n\n"); - } - fprintf(tmpTitle, "\n\n"); - - fclose(tmpTitle); - if (FileExists(TitlepageName)) wxRemoveFile(TitlepageName); - if (!wxRenameFile("title.tmp", TitlepageName)) - { - wxCopyFile("title.tmp", TitlepageName); - wxRemoveFile("title.tmp"); - } - } - - if (lastFileName) delete[] lastFileName; - lastFileName = NULL; - if (lastTopic) delete[] lastTopic; - lastTopic = NULL; - - if (FileExists(ContentsName)) wxRemoveFile(ContentsName); - - if (!wxRenameFile(TmpContentsName, ContentsName)) - { - wxCopyFile(TmpContentsName, ContentsName); - wxRemoveFile(TmpContentsName); - } - - // Generate .htx file if requested - if (htmlIndex) - { - char htmlIndexName[300]; - sprintf(htmlIndexName, "%s.htx", FileRoot); - GenerateHTMLIndexFile(htmlIndexName); - } - - // Generate HTML Help Workshop files if requested - if (htmlWorkshopFiles) - { - HTMLWorkshopEndContents(); - GenerateHTMLWorkshopFiles(FileRoot); - } - - - return TRUE; - } - - return FALSE; -} - -// Output .htx index file -void GenerateHTMLIndexFile(char *fname) -{ - FILE *fd = fopen(fname, "w"); - if (!fd) - return; - - TopicTable.BeginFind(); - wxNode *node = NULL; - while ((node = TopicTable.Next())) - { - TexTopic *texTopic = (TexTopic *)node->Data(); - const char *topicName = node->GetKeyString(); - if (texTopic->filename && texTopic->keywords) - { - wxNode *node1 = texTopic->keywords->First(); - while (node1) - { - char *s = (char *)node1->Data(); - fprintf(fd, "%s|%s|%s\n", topicName, texTopic->filename, s); - node1 = node1->Next(); - } - } - } - fclose(fd); -} - - - - - - - -// output .hpp, .hhc and .hhk files: - - -void GenerateHTMLWorkshopFiles(char *fname) -{ - FILE *f; - char buf[300]; - - /* Generate project file : */ - - sprintf(buf, "%s.hhp", fname); - f = fopen(buf, "wt"); - fprintf(f, - "[OPTIONS]\n" - "Compatibility=1.1\n" - "Full-text search=Yes\n" - "Contents file=%s.hhc\n" - "Compiled file=%s.chm\n" - "Default Window=%sHelp\n" - "Default topic=%s\n" - "Index file=%s.hhk\n" - "Title=", - FileNameFromPath(fname), - FileNameFromPath(fname), - FileNameFromPath(fname), - FileNameFromPath(TitlepageName), - FileNameFromPath(fname) - ); - - if (DocumentTitle) { - SetCurrentOutput(f); - TraverseChildrenFromChunk(DocumentTitle); - } - else fprintf(f, "(unknown)"); - - fprintf(f, "\n\n[WINDOWS]\n" - "%sHelp=,\"%s.hhc\",\"%s.hhk\",\"%s\",,,,,,0x2420,,0x380e,,,,,0,,,", - FileNameFromPath(fname), - FileNameFromPath(fname), - FileNameFromPath(fname), - FileNameFromPath(TitlepageName)); - - - fprintf(f, "\n\n[FILES]\n"); - fprintf(f, "%s\n", FileNameFromPath(TitlepageName)); - for (int i = 1; i <= fileId; i++) { - if (truncateFilenames) - sprintf(buf, "%s%d.htm", FileNameFromPath(FileRoot), i); - else - sprintf(buf, "%s%d.html", FileNameFromPath(FileRoot), i); - fprintf(f, "%s\n", buf); - } - fclose(f); - - /* Generate index file : */ - - sprintf(buf, "%s.hhk", fname); - f = fopen(buf, "wt"); - - fprintf(f, - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - "\n" - "
      \n"); - - TopicTable.BeginFind(); - wxNode *node = NULL; - while ((node = TopicTable.Next())) - { - TexTopic *texTopic = (TexTopic *)node->Data(); - const char *topicName = node->GetKeyString(); - if (texTopic->filename && texTopic->keywords) - { - wxNode *node1 = texTopic->keywords->First(); - while (node1) - { - char *s = (char *)node1->Data(); - fprintf(f, - "
    • \n" - " \n" - " \n" - " \n", - texTopic->filename, topicName, s); - node1 = node1->Next(); - } - } - } - - fprintf(f, "
    \n"); - fclose(f); -} - - - -static FILE *HTMLWorkshopContents = NULL; -static int HTMLWorkshopLastLevel = 0; - -void HTMLWorkshopAddToContents(int level, char *s, char *file) -{ - int i; - - if (level > HTMLWorkshopLastLevel) - for (i = HTMLWorkshopLastLevel; i < level; i++) - fprintf(HTMLWorkshopContents, "
      "); - if (level < HTMLWorkshopLastLevel) - for (i = level; i < HTMLWorkshopLastLevel; i++) - fprintf(HTMLWorkshopContents, "
    "); - - SetCurrentOutput(HTMLWorkshopContents); - fprintf(HTMLWorkshopContents, - "
  • \n" - " \n" - " \n" - " \n"); - HTMLWorkshopLastLevel = level; -} - - -void HTMLWorkshopStartContents() -{ - char buf[300]; - sprintf(buf, "%s.hhc", FileRoot); - HTMLWorkshopContents = fopen(buf, "wt"); - HTMLWorkshopLastLevel = 0; - - fprintf(HTMLWorkshopContents, - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - "\n" - " \n" - "\n" - "
      \n" - "
    • \n" - "\n" - "\n\n", - FileNameFromPath(TitlepageName) - ); - -} - - -void HTMLWorkshopEndContents() -{ - for (int i = HTMLWorkshopLastLevel; i >= 0; i--) - fprintf(HTMLWorkshopContents, "
    \n"); - fclose(HTMLWorkshopContents); -} diff --git a/utils/tex2rtf/src/makefile.b32 b/utils/tex2rtf/src/makefile.b32 deleted file mode 100644 index 8c12e4179d..0000000000 --- a/utils/tex2rtf/src/makefile.b32 +++ /dev/null @@ -1,20 +0,0 @@ -# -# File: makefile.b32 -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: -# -# "%W% %G%" -# -# Makefile : Builds tex2rtf - -# WXWIN and BCCDIR are set by parent make - -WXDIR = $(WXWIN) - -TARGET=tex2rtf -OBJECTS = tex2rtf.obj tex2any.obj texutils.obj rtfutils.obj xlputils.obj htmlutil.obj readshg.obj table.obj - -!include $(WXDIR)\src\makeprog.b32 - diff --git a/utils/tex2rtf/src/makefile.bcc b/utils/tex2rtf/src/makefile.bcc deleted file mode 100644 index c2dc7a474a..0000000000 --- a/utils/tex2rtf/src/makefile.bcc +++ /dev/null @@ -1,19 +0,0 @@ -# -# File: makefile.bcc -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Builds a BC++ 16-bit sample - -!if "$(WXWIN)" == "" -!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx -!endif - -WXDIR = $(WXWIN) - -TARGET=tex2rtf -OBJECTS = tex2rtf.obj tex2any.obj texutils.obj rtfutils.obj xlputils.obj htmlutil.obj readshg.obj table.obj - -!include $(WXDIR)\src\makeprog.bcc - diff --git a/utils/tex2rtf/src/makefile.dos b/utils/tex2rtf/src/makefile.dos deleted file mode 100644 index 3cf9947f1a..0000000000 --- a/utils/tex2rtf/src/makefile.dos +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.dos -# Author: Julian Smart -# Created: 1998 -# Updated: -# -# Makefile : Builds 16-bit sample, VC++ 1.5 -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -WXDIR = $(WXWIN) - -TARGET=tex2rtf -OBJECTS = tex2rtf.obj tex2any.obj texutils.obj rtfutils.obj xlputils.obj htmlutil.obj readshg.obj table.obj - -!include $(WXDIR)\src\makeprog.msc - diff --git a/utils/tex2rtf/src/makefile.g95 b/utils/tex2rtf/src/makefile.g95 deleted file mode 100644 index 513c166910..0000000000 --- a/utils/tex2rtf/src/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -# -# File: makefile.g95 -# Author: Julian Smart -# Created: 1999 -# Updated: -# Copyright: (c) Julian Smart, 1999 -# -# Makefile for wxWindows sample (Cygwin/Mingw32). - -WXDIR = ../../.. - -TARGET=tex2rtf -OBJECTS = $(TARGET).o texutils.o tex2any.o htmlutil.o rtfutils.o xlputils.o table.o readshg.o - -include $(WXDIR)/src/makeprog.g95 - diff --git a/utils/tex2rtf/src/makefile.unx b/utils/tex2rtf/src/makefile.unx deleted file mode 100644 index 082f482dfe..0000000000 --- a/utils/tex2rtf/src/makefile.unx +++ /dev/null @@ -1,17 +0,0 @@ -# -# File: makefile.unx -# Author: Julian Smart -# Created: 1998 -# Updated: -# Copyright: (c) 1998 Julian Smart -# -# "%W% %G%" -# -# Makefile for Tex2RTF (Unix) - -PROGRAM=tex2rtf - -OBJECTS = tex2rtf.o tex2any.o texutils.o rtfutils.o xlputils.o htmlutil.o readshg.o table.o - -include ../../../src/makeprog.env - diff --git a/utils/tex2rtf/src/makefile.vc b/utils/tex2rtf/src/makefile.vc deleted file mode 100644 index fb16a0e098..0000000000 --- a/utils/tex2rtf/src/makefile.vc +++ /dev/null @@ -1,141 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds Tex2RTF on Windows Windows 95/NT -# -!include <..\..\..\src\makevc.env> - -TEX2RTFDIR = $(WXDIR)\utils\tex2rtf -TEX2RTFINC = $(TEX2RTFDIR)\src -PROGRAM=tex2rtf -DOCDIR=$(WXDIR)\docs -LOCALDOCDIR=$(WXDIR)\utils\tex2rtf\docs -THISDIR=$(TEX2RTFDIR)\src - -OBJECTS = tex2rtf.obj tex2any.obj texutils.obj rtfutils.obj xlputils.obj htmlutil.obj readshg.obj table.obj - -all: tex2rtf.exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.vc - cd $(TEX2RTFDIR)\src - -$(PROGRAM).exe: $(WXLIB) $(OBJECTS) $(PROGRAM).res - $(link) @<< --out:$(PROGRAM).exe -$(LINKFLAGS) -$(DUMMYOBJ) $(OBJECTS) $(PROGRAM).res -$(LIBS) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - -tex2any.obj: tex2any.$(SRCSUFF) tex2any.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -texutils.obj: texutils.$(SRCSUFF) tex2any.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -tex2rtf.obj: tex2rtf.$(SRCSUFF) bmputils.h tex2rtf.h tex2any.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -rtfutils.obj: rtfutils.$(SRCSUFF) tex2rtf.h bmputils.h tex2any.h readshg.h table.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -table.obj: table.$(SRCSUFF) table.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -readshg.obj: readshg.$(SRCSUFF) readshg.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -xlputils.obj: xlputils.$(SRCSUFF) tex2rtf.h rtfutils.h tex2any.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -htmlutil.obj: htmlutil.$(SRCSUFF) tex2rtf.h tex2any.h table.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - -cleanall: - erase *.exe *.obj *.pch *.res - -DOCSOURCES=$(LOCALDOCDIR)\tex2rtf.tex - -html: $(DOCDIR)\html\tex2rtf\t2rtf.htm -hlp: $(DOCDIR)\winhelp\tex2rtf.hlp -pdfrtf: $(DOCDIR)\pdf\tex2rtf.rtf -ps: $(WXDIR)\docs\ps\tex2rtf.ps - -$(DOCDIR)\winhelp\tex2rtf.hlp: $(LOCALDOCDIR)\tex2rtf.rtf $(LOCALDOCDIR)\tex2rtf.hpj - cd $(LOCALDOCDIR) - -erase tex2rtf.ph - hc tex2rtf - copy tex2rtf.hlp $(DOCDIR)\winhelp\tex2rtf.hlp - copy tex2rtf.cnt $(DOCDIR)\winhelp\tex2rtf.cnt - cd $(THISDIR) - -$(LOCALDOCDIR)\tex2rtf.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -start /w tex2rtf $(LOCALDOCDIR)\tex2rtf.tex $(LOCALDOCDIR)\tex2rtf.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)\pdf\tex2rtf.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -copy *.bmp *.wmf $(DOCDIR)\pdf - -start /w tex2rtf $(LOCALDOCDIR)\tex2rtf.tex $(DOCDIR)\pdf\tex2rtf.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)\html\tex2rtf\t2rtf.htm: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -mkdir $(DOCDIR)\html\tex2rtf - -start /w tex2rtf $(LOCALDOCDIR)\tex2rtf.tex $(DOCDIR)\html\tex2rtf\t2rtf.htm -twice -html - -erase $(DOCDIR)\html\tex2rtf\*.con - -erase $(DOCDIR)\html\tex2rtf\*.ref - cd $(THISDIR) - -$(LOCALDOCDIR)\tex2rtf.dvi: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -latex tex2rtf - -latex tex2rtf - -makeindx tex2rtf - -bibtex tex2rtf - -latex tex2rtf - -latex tex2rtf - cd $(THISDIR) - -$(WXDIR)\docs\ps\tex2rtf.ps: $(LOCALDOCDIR)\tex2rtf.dvi - cd $(LOCALDOCDIR) - -dvips32 -o tex2rtf.ps tex2rtf - copy tex2rtf.ps $(WXDIR)\docs\ps\tex2rtf.ps - cd $(THISDIR) - - diff --git a/utils/tex2rtf/src/makefile.wat b/utils/tex2rtf/src/makefile.wat deleted file mode 100644 index 053db94965..0000000000 --- a/utils/tex2rtf/src/makefile.wat +++ /dev/null @@ -1,14 +0,0 @@ -# -# Makefile for WATCOM -# -# 8 Nov 1994 -# - -WXDIR = $(%WXWIN) - -PROGRAM = tex2rtf -OBJECTS = tex2rtf.obj tex2any.obj texutils.obj rtfutils.obj xlputils.obj htmlutil.obj readshg.obj table.obj - -!include $(WXDIR)\src\makeprog.wat - - diff --git a/utils/tex2rtf/src/makengui.nt b/utils/tex2rtf/src/makengui.nt deleted file mode 100644 index a4de8c23ca..0000000000 --- a/utils/tex2rtf/src/makengui.nt +++ /dev/null @@ -1,98 +0,0 @@ -# From: Juan Altmayer Pizzorno[SMTP:juan@vms.gmd.de] -# Sent: 31 May 1996 10:11 -# To: J.Smart@ed.ac.uk -# Subject: Changes to Tex2RTF -# -# Hello, -# -# Recently I've been looking for a way to create and maintain documentation on -# multiple platforms out of a single source -- specifically, something that -# prints nicely and can be converted to WinHelp and HTML. I liked the approach -# of Tex2RTF, so I set off to give it a try... I found out it would crash -# when submitted to a certain LaTeX file I created. I wanted to find out why, -# so I went on and worked on compiling on my PC: Windows NT 4.0 beta, Visual -# C++ 4.1a. Since all I was interested on was the convertion utility, I tried -# to make it work without a GUI. It didn't compile immediately, but after a -# few small changes it now works like a charm. Unfortunately it doesn't crash -# anymore, so I can't tell why it used to... Anyway, I wanted to contribute -# the changes back: I'm appending two files to this message, the first a -# description of the changes, and the second a quick-and-dirty makefile that -# doesn't require wxWindows to run. Please do write to me if you have any -# questions or anything. -# -# Last but not least, it's great that you took the time and wrote Tex2RTF!! -# -# Quick-and-dirty makefile for building Tex2RTF without the wx -# libraries on a Windows NT machine. If you want to use it for -# "real", please update the dependancies between object and include -# files. Created for Windows NT 4.0 and Visual C++ 4.1. -# -# Juan Altmayer Pizzorno, May 1996 -# - -syslibs=kernel32.lib advapi32.lib - -cxxflags=/nologo /MD /W0 /O2 /Zi /D "WIN32" /D "_WIN32" /D "_DEBUG" /c -linkflags=$(syslibs) /out:$@ /nologo /debug - -!if "$(PROCESSOR_ARCHITECTURE)" == "x86" -cxxflags=$(cxxflags) /G5 # optimize for pentium -!endif - -cxx=cl -link=link -remove=del -cxxflags=$(cxxflags) /I wxwin /D wx_msw /D WINVER=0x0400 /D WIN95=0 -cxxflags=$(cxxflags) /D "NO_GUI" - -objects=tex2any.obj texutils.obj tex2rtf.obj rtfutils.obj table.obj readshg.obj xlputils.obj htmlutil.obj -objects=$(objects) wb_hash.obj wb_list.obj wb_obj.obj wb_utils.obj - -all : tex2rtf.exe - -clean : - -$(remove) *.obj - -cleanall : clean - -$(remove) *.exe *.pdb *.ilk - -tex2rtf.exe : $(objects) - $(link) $(linkflags) $(objects) - -tex2any.obj : tex2any.cpp tex2any.h - $(cxx) $(cxxflags) tex2any.cpp - -texutils.obj : texutils.cpp tex2any.h - $(cxx) $(cxxflags) texutils.cpp - -tex2rtf.obj : tex2rtf.cpp bmputils.h tex2rtf.h tex2any.h - $(cxx) $(cxxflags) tex2rtf.cpp - -rtfutils.obj : rtfutils.cpp tex2rtf.h bmputils.h tex2any.h readshg.h table.h - $(cxx) $(cxxflags) rtfutils.cpp - -table.obj : table.cpp table.h - $(cxx) $(cxxflags) table.cpp - -readshg.obj : readshg.cpp readshg.h - $(cxx) $(cxxflags) readshg.cpp - -xlputils.obj : xlputils.cpp tex2rtf.h rtfutils.h tex2any.h - $(cxx) $(cxxflags) xlputils.cpp - -htmlutil.obj : htmlutil.cpp tex2rtf.h tex2any.h table.h - $(cxx) $(cxxflags) htmlutil.cpp - -wb_hash.obj : wxwin\wb_hash.cpp - $(cxx) $(cxxflags) wxwin\wb_hash.cpp - -wb_list.obj : wxwin\wb_list.cpp - $(cxx) $(cxxflags) wxwin\wb_list.cpp - -wb_obj.obj : wxwin\wb_obj.cpp - $(cxx) $(cxxflags) wxwin\wb_obj.cpp - -wb_utils.obj : wxwin\wb_utils.cpp - $(cxx) $(cxxflags) wxwin\wb_utils.cpp - - diff --git a/utils/tex2rtf/src/maths.cpp b/utils/tex2rtf/src/maths.cpp deleted file mode 100644 index 70fc726cf7..0000000000 --- a/utils/tex2rtf/src/maths.cpp +++ /dev/null @@ -1,25 +0,0 @@ -/* - * File: maths.cc - * Purpose: Beginnings of a maths parser for LaTeX. - * NOT IMPLEMENTED. I'm still thinking how best to do this... - * - */ - -// For compilers that support precompilation, includes "wx.h". -#ifdef WX_PRECOMP -#include "wx_prec.h" -#endif - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include -#include "tex2any.h" -#include -#include - diff --git a/utils/tex2rtf/src/readshg.cpp b/utils/tex2rtf/src/readshg.cpp deleted file mode 100644 index 2a62d48bc5..0000000000 --- a/utils/tex2rtf/src/readshg.cpp +++ /dev/null @@ -1,163 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: readshg.cpp -// Purpose: Petr Smilauer's .SHG (Segmented Hypergraphics file) reading -// code. -// Note: .SHG is undocumented (anywhere!) so this is -// reverse-engineering -// and guesswork at its best. -// Author: Petr Smilauer -// Modified by: -// Created: 01/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Petr Smilauer -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include -#include - -#include "readshg.h" -#include "tex2any.h" - -// Returns the number of hotspots, and the array of hotspots. -// E.g. -// HotSpots *array; -// int n = ParseSHG("thing.shg", &array); - -int ParseSHG( const char* fileName, HotSpot **hotspots) -{ FILE* fSHG = fopen( fileName, "rb"); - long offset; - int nHotspots = 0; - - if(fSHG == 0) - return 0; - nHotspots = 0; - //first, look at offset OFF_OFFSET to get another offset :-) - fseek( fSHG, OFF_OFFSET, SEEK_SET); - offset = 0L; // init whole 4-byte variable - fread( &offset, 2, 1, fSHG); // get the offset in first two bytes.. - if(offset == 0) // if zero, used next DWORD field - fread( &offset, 4, 1, fSHG);// this is our offset for very long DIB - offset += 9; // don't know hot this delta comes-about - if(fseek( fSHG, offset, SEEK_SET) != 0) - { - fclose( fSHG); - return -1; // this is probably because incorrect offset calculation. - } - fread( &nHotspots, 2, 1, fSHG); - - *hotspots = new HotSpot[nHotspots]; - - int nMacroStrings = 0; - - fread( &nMacroStrings, 2, 1, fSHG); // we can ignore the macros, as this is - // repeated later, but we need to know how much to skip - fseek( fSHG, 2, SEEK_CUR); // skip another 2 bytes I do not understand ;-) - - ShgInfoBlock sib; - int i; - - int sizeOf = sizeof( ShgInfoBlock); - - for( i = 0 ; i < nHotspots ; ++i) - { - fread( &sib, sizeOf, 1, fSHG); // read one hotspot' info - // analyse it: - (*hotspots)[i].type = (HotspotType)(sib.hotspotType & 0xFB); - (*hotspots)[i].left = sib.left; - (*hotspots)[i].top = sib.top; - (*hotspots)[i].right = sib.left + sib.width; - (*hotspots)[i].bottom = sib.top + sib.height; - (*hotspots)[i].IsVisible = ((sib.hotspotType & 4) == 0); - (*hotspots)[i].szHlpTopic_Macro[0] = '\0'; - } - // we have it...now read-off the macro-string block - if(nMacroStrings > 0) - fseek( fSHG, nMacroStrings, SEEK_CUR); //nMacroStrings is byte offset... - // and, at the last, read through the strings: hotspot-id[ignored], then topic/macro - int c; - for( i = 0 ; i < nHotspots ; ++i) - { - while( (c = fgetc( fSHG)) != 0) - ; - // now read it: - int j = 0; - while( (c = fgetc( fSHG)) != 0) - { - (*hotspots)[i].szHlpTopic_Macro[j] = c; - ++j; - } - (*hotspots)[i].szHlpTopic_Macro[j] = 0; - } - fclose( fSHG); - return nHotspots; -} - - -// Convert Windows .SHG file to HTML map file - -bool SHGToMap(char *filename, char *defaultFile) -{ - // Test the SHG parser - HotSpot *hotspots = NULL; - int n = ParseSHG(filename, &hotspots); - if (n == 0) - return FALSE; - - char buf[100]; - sprintf(buf, "Converting .SHG file to HTML map file: there are %d hotspots in %s.", n, filename); - OnInform(buf); - - char outBuf[256]; - strcpy(outBuf, filename); - StripExtension(outBuf); - strcat(outBuf, ".map"); - - FILE *fd = fopen(outBuf, "w"); - if (!fd) - { - OnError("Could not open .map file for writing."); - delete[] hotspots; - return FALSE; - } - - fprintf(fd, "default %s\n", defaultFile); - for (int i = 0; i < n; i++) - { - char *refFilename = "??"; - - TexRef *texRef = FindReference(hotspots[i].szHlpTopic_Macro); - if (texRef) - refFilename = texRef->refFile; - else - { - char buf[300]; - sprintf(buf, "Warning: could not find hotspot reference %s", hotspots[i].szHlpTopic_Macro); - OnInform(buf); - } - fprintf(fd, "rect %s %d %d %d %d\n", refFilename, (int)hotspots[i].left, (int)hotspots[i].top, - (int)hotspots[i].right, (int)hotspots[i].bottom); - } - fprintf(fd, "\n"); - - fclose(fd); - - delete[] hotspots; - return TRUE; -} - diff --git a/utils/tex2rtf/src/readshg.h b/utils/tex2rtf/src/readshg.h deleted file mode 100644 index b26d4fea09..0000000000 --- a/utils/tex2rtf/src/readshg.h +++ /dev/null @@ -1,64 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: readshg.h -// Purpose: Petr Smilauer's .SHG (Segmented Hypergraphics file) reading -// code. -// Note: .SHG is undocumented (anywhere!) so this is -// reverse-engineering -// and guesswork at its best. -// Author: Petr Smilauer -// Modified by: -// Created: 01/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Petr Smilauer -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef readshgh -#define readshgh - -#include -#include - -typedef enum { TypePopup = 0xE2, TypeJump = 0xE3, TypeMacro = 0xC8} HotspotType; - -#define NOT_VISIBLE 0x04 - -typedef struct -{ - unsigned char hotspotType;// combines HotspotType /w NOT_VISIBLE if appropriate - unsigned char flag; // NOT_VISIBLE or 0 ?? - unsigned char skip; // 0, always?? - unsigned short left, - top, - width, // left+width/top+height give right/bottom, - height; // =>right and bottom edge are not 'included' - unsigned char magic[4]; // wonderful numbers: for macros, this seems - // (at least first 2 bytes) to represent offset into macro-strings block. -} ShgInfoBlock; // whole block is just 15 bytes long. How weird! - -#define OFF_OFFSET 0x20 // this is offset, where WORD (?) lies -#define OFFSET_DELTA 9 // we must add this to get real offset from file beginning - -struct HotSpot -{ - HotspotType type; - unsigned int left, - top, - right, - bottom; - char szHlpTopic_Macro[65]; - bool IsVisible; -}; - -// Returns the number of hotspots, and the array of hotspots. -// E.g. -// HotSpots *array; -// int n = ParseSHG("thing.shg", &array); - -extern int ParseSHG( const char* fileName, HotSpot **hotspots); - -// Converts Windows .SHG file to HTML map file -extern bool SHGToMap(char *filename, char *defaultFile); - -#endif - diff --git a/utils/tex2rtf/src/rtfutils.cpp b/utils/tex2rtf/src/rtfutils.cpp deleted file mode 100644 index 93a6356748..0000000000 --- a/utils/tex2rtf/src/rtfutils.cpp +++ /dev/null @@ -1,5250 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: rtfutils.cpp -// Purpose: Converts Latex to Word RTF/WinHelp RTF -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "tex2any.h" -#include "tex2rtf.h" -#include -#include -#include - -#ifdef __WIN32__ -#include -#endif - -#include "bmputils.h" -#include "table.h" - -wxList itemizeStack; -static int indentLevel = 0; -static int forbidParindent = 0; // if > 0, no parindent (e.g. in center environment) -int forbidResetPar = 0; // If > 0, don't reset memory of having output a new par - -static char *contentsLineSection = NULL; -static char *contentsLineValue = NULL; -static TexChunk *descriptionItemArg = NULL; -static wxStringList environmentStack; // Stack of paragraph styles we need to remember -static int footnoteCount = 0; -static int citeCount = 1; -extern char *FileRoot; -extern bool winHelp; -extern bool startedSections; -extern FILE *Contents; -extern FILE *Chapters; -extern FILE *Popups; -extern FILE *WinHelpContentsFile; -extern char *RTFCharset; -// This is defined in the Tex2Any library and isn't in use after parsing -extern char *BigBuffer; -// Are we in verbatim mode? If so, format differently. -static bool inVerbatim = FALSE; - -// We're in a series of PopRef topics, so don't output section headings -bool inPopRefSection = FALSE; - -// Green colour? -static bool hotSpotColour = TRUE; -static bool hotSpotUnderline = TRUE; - -// Transparency (WHITE = transparent) -static bool bitmapTransparency = TRUE; - -// Linear RTF requires us to set the style per section. -static char *currentNumberStyle = NULL; -static int currentItemSep = 8; -static int CurrentTextWidth = 8640; // Say, six inches -static int CurrentLeftMarginOdd = 400; -static int CurrentLeftMarginEven = 1440; -static int CurrentRightMarginOdd = 1440; -static int CurrentRightMarginEven = 400; -static int CurrentMarginParWidth = 2000; -static int CurrentMarginParSep = 400; // Gap between marginpar and text -static int CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep; -static int GutterWidth = 2300; - -// Two-column table dimensions, in twips -static int TwoColWidthA = 1500; -static int TwoColWidthB = 3000; - -const int PageWidth = 12242; // 8.25 inches wide for A4 - - -/* - * Flag to say we've just issued a \par\pard command, so don't - * repeat this unnecessarily. - * - */ - -int issuedNewParagraph = 0; - -// Need to know whether we're in a table or figure for benefit -// of listoffigures/listoftables -static bool inFigure = FALSE; -static bool inTable = FALSE; - -/* - * Current topics - * - */ -static char *CurrentChapterName = NULL; -static char *CurrentSectionName = NULL; -static char *CurrentSubsectionName = NULL; -static char *CurrentTopic = NULL; - -static bool InPopups() -{ - if (CurrentChapterName && (strcmp(CurrentChapterName, "popups") == 0)) - return TRUE; - if (CurrentSectionName && (strcmp(CurrentSectionName, "popups") == 0)) - return TRUE; - return FALSE; -} - -static void SetCurrentTopic(char *s) -{ - if (CurrentTopic) delete[] CurrentTopic; - CurrentTopic = copystring(s); -} - -void SetCurrentChapterName(char *s) -{ - if (CurrentChapterName) delete[] CurrentChapterName; - CurrentChapterName = copystring(s); - SetCurrentTopic(s); -} -void SetCurrentSectionName(char *s) -{ - if (CurrentSectionName) delete[] CurrentSectionName; - CurrentSectionName = copystring(s); - SetCurrentTopic(s); -} -void SetCurrentSubsectionName(char *s) -{ - if (CurrentSubsectionName) delete[] CurrentSubsectionName; - CurrentSubsectionName = copystring(s); - SetCurrentTopic(s); -} - -// Indicate that a parent topic at level 'level' has children. -// Level 1 is a chapter, 2 is a section, etc. -void NotifyParentHasChildren(int parentLevel) -{ - char *parentTopic = NULL; - switch (parentLevel) - { - case 1: - { - parentTopic = CurrentChapterName; - break; - } - case 2: - { - parentTopic = CurrentSectionName; - break; - } - case 3: - { - parentTopic = CurrentSubsectionName; - break; - } - default: - { - break; - } - } - if (parentTopic) - { - TexTopic *texTopic = (TexTopic *)TopicTable.Get(parentTopic); - if (!texTopic) - { - texTopic = new TexTopic; - TopicTable.Put(parentTopic, texTopic); - } - texTopic->hasChildren = TRUE; - } -} - -// Have to keep a count of what levels are books, what are pages, -// in order to correct for a Win95 bug which means that if you -// have a book at level n, and then a page at level n, the page -// ends up on level n + 1. - -bool ContentsLevels[5]; - -// Reset below this level (starts from 1) -void ResetContentsLevels(int l) -{ - int i; - for (i = l; i < 5; i++) - ContentsLevels[i] = FALSE; - - // There are always books on the top level - ContentsLevels[0] = TRUE; -} - -// Output a WinHelp section as a keyword, substituting -// : for space. -void OutputSectionKeyword(FILE *fd) -{ - OutputCurrentSectionToString(wxBuffer); - - int i; - for (i = 0; i < strlen(wxBuffer); i++) - if (wxBuffer[i] == ':') - wxBuffer[i] = ' '; - // Don't write to index if there's some RTF in the string - else if ( wxBuffer[i] == '{' ) - return; - - fprintf(fd, "K{\\footnote {K} "); - fprintf(fd, "%s", wxBuffer); - - fprintf(fd, "}\n"); -} - -// Write a line for the .cnt file, if we're doing this. -void WriteWinHelpContentsFileLine(char *topicName, char *xitle, int level) -{ - // First, convert any RTF characters to ASCII - char title[255]; - int s=0; - int d=0; - while ( (xitle[s]!=0)&&(d<255) ) - { - char ch=xitle[s]&0xff; - if (ch==0x5c) { - char ch1=xitle[s+1]&0xff; - char ch2=xitle[s+2]&0xff; - char ch3=xitle[s+3]&0xff; - char ch4=xitle[s+4]&0xff; - s+=4; // next character - char a=0; - if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x36)) { title[d++]='ö'; a=1; } - if ((ch1==0x27)&&(ch2==0x65)&&(ch3==0x34)) { title[d++]='ä'; a=1; } - if ((ch1==0x27)&&(ch2==0x66)&&(ch3==0x63)) { title[d++]='ü'; a=1; } - if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x36)) { title[d++]='Ö'; a=1; } - if ((ch1==0x27)&&(ch2==0x63)&&(ch3==0x34)) { title[d++]='Ä'; a=1; } - if ((ch1==0x27)&&(ch2==0x64)&&(ch3==0x63)) { title[d++]='Ü'; a=1; } -// if (a==0) -// printf("!!!!! %04X %04X %04X %04X! \n",ch1,ch2,ch3,ch4); - } else { - title[d++]=ch; - s++; - } - } - title[d]=0; - - // Section (2) becomes level 1 if it's an article. - if (DocumentStyle == LATEX_ARTICLE) - level --; - - if (level == 0) // Means we had a Chapter in an article, oops. - return; - - ResetContentsLevels(level); - - if (!title) - return; - - if (winHelp && winHelpContents && WinHelpContentsFile) - { - TexTopic *texTopic = (TexTopic *)TopicTable.Get(topicName); - if (texTopic) - { - // If a previous section at this level was a book, we *have* to have a - // book not a page, because of a bug in WHC (or WinHelp 4). - if (texTopic->hasChildren || level == 1 || ContentsLevels[level-1]) - { - // At this level, we have a pointer to a further hierarchy. - // So we need a 'book' consisting of (say) Chapter 1. - fprintf(WinHelpContentsFile, "%d %s\n", level, title); - - // Then we have a 'page' consisting of the text for this chapter - fprintf(WinHelpContentsFile, "%d %s=%s\n", level+1, title, topicName); - - // Then we'll be writing out further pages or books at level + 1... - - // Remember that at this level, we had a book and *must* for the - // remainder of sections at this level. - ContentsLevels[level-1] = TRUE; - } - else - { - fprintf(WinHelpContentsFile, "%d %s=%s\n", level, title, topicName); - } - } - else - { - if (level == 1 || ContentsLevels[level-1]) - { - // Always have a book at level 1 - fprintf(WinHelpContentsFile, "%d %s\n", level, title); - fprintf(WinHelpContentsFile, "%d %s=%s\n", level+1, title, topicName); - ContentsLevels[level-1] = TRUE; - } - else - // Probably doesn't have children if it hasn't been added to the topic table - fprintf(WinHelpContentsFile, "%d %s=%s\n", level, title, topicName); - } - } -} - -void SplitIndexEntry(char *entry, char *buf1, char *buf2) -{ - int len = strlen(entry); int i = 0; - while ((i < len) && entry[i] != '!') - { buf1[i] = entry[i]; i ++; } - buf1[i] = 0; buf2[0] = 0; int j = 0; - - if (entry[i] == '!') - { - i ++; - while (i < len) { buf2[j] = entry[i]; i ++; j++; } - buf2[j] = 0; - } -} - -/* - * Output topic index entries in WinHelp RTF - * - */ -void GenerateKeywordsForTopic(char *topic) -{ - TexTopic *texTopic = (TexTopic *)TopicTable.Get(topic); - if (!texTopic) - return; - - wxStringList *list = texTopic->keywords; - if (list) - { - wxNode *node = list->First(); - while (node) - { - char *s = (char *)node->Data(); - - // Must separate out main entry form subentry (only 1 subentry allowed) - char buf1[100]; char buf2[100]; - SplitIndexEntry(s, buf1, buf2); - - // Check for ':' which messes up index - int i; - for (i = 0; i < strlen(buf1) ; i++) - if (buf1[i] == ':') - buf1[i] = ' '; - for (i = 0; i < strlen(buf2) ; i++) - if (buf2[i] == ':') - buf2[i] = ' '; - - // {K} is a strange fix to prevent words beginning with K not - // being indexed properly - TexOutput("K{\\footnote {K} "); - TexOutput(buf1); - if (strlen(buf2) > 0) - { - // Output subentry - TexOutput(", "); - TexOutput(buf2); - } - TexOutput("}\n"); - node = node->Next(); - } - } -} - -/* - * Output index entry in linear RTF - * - */ - -void GenerateIndexEntry(char *entry) -{ - if (useWord) - { - char buf1[100]; char buf2[100]; - SplitIndexEntry(entry, buf1, buf2); - - TexOutput("{\\xe\\v {"); - TexOutput(buf1); - if (strlen(buf2) > 0) - { - TexOutput("\\:"); - TexOutput(buf2); - } - TexOutput("}}"); - } -} - - /* - * Write a suitable RTF header. - * - */ - -void WriteColourTable(FILE *fd) -{ - fprintf(fd, "{\\colortbl"); - wxNode *node = ColourTable.First(); - while (node) - { - ColourTableEntry *entry = (ColourTableEntry *)node->Data(); - fprintf(fd, "\\red%d\\green%d\\blue%d;\n", entry->red, entry->green, entry->blue); - node = node->Next(); - } - fprintf(fd, "}"); -} - -/* - * Write heading style - * - */ - -void WriteHeadingStyle(FILE *fd, int heading) -{ - switch (heading) - { - case 1: - { - fprintf(fd, "\\b\\fs%d", chapterFont*2); - break; - } - case 2: - { - fprintf(fd, "\\b\\fs%d", sectionFont*2); - break; - } - case 3: - { - fprintf(fd, "\\b\\fs%d", subsectionFont*2); - break; - } - case 4: - { - fprintf(fd, "\\b\\fs%d", subsectionFont*2); - break; - } - default: - break; - } -} - -void WriteRTFHeader(FILE *fd) -{ - fprintf(fd, "{\\rtf1\\%s \\deff0\n", RTFCharset); - fprintf(fd, "{\\fonttbl{\\f0\\froman Times New Roman;}{\\f1\\ftech Symbol;}{\\f2\\fswiss Arial;}\n"); - fprintf(fd, "{\\f3\\fmodern Courier;}{\\f4\\ftech Wingdings;}{\\f5\\ftech Monotype Sorts;}\n}"); - /* - * Style sheet - */ - fprintf(fd, "{\\stylesheet{\\f2\\fs20 \\snext0 Normal;}\n"); - // Headings - fprintf(fd, "{\\s1 "); WriteHeadingStyle(fd, 1); fprintf(fd, "\\sbasedon0\\snext0 heading 1;}\n"); - fprintf(fd, "{\\s2 "); WriteHeadingStyle(fd, 2); fprintf(fd, "\\sbasedon0\\snext0 heading 2;}\n"); - fprintf(fd, "{\\s3 "); WriteHeadingStyle(fd, 3); fprintf(fd, "\\sbasedon0\\snext0 heading 3;}\n"); - fprintf(fd, "{\\s4 "); WriteHeadingStyle(fd, 4); fprintf(fd, "\\sbasedon0\\snext0 heading 4;}\n"); - // Table of contents styles - fprintf(fd, "{\\s20\\sb300\\tqr\\tldot\\tx8640 \\b\\f2 \\sbasedon0\\snext0 toc 1;}\n"); - - fprintf(fd, "{\\s21\\sb90\\tqr\\tldot\\li400\\tqr\\tx8640 \\f2\\fs20\\sbasedon0\\snext0 toc 2;}\n"); - fprintf(fd, "{\\s22\\sb90\\tqr\\tldot\\li800\\tx8640 \\f2\\fs20 \\sbasedon0\\snext0 toc 3;}\n"); - fprintf(fd, "{\\s23\\sb90\\tqr\\tldot\\li1200\\tx8640 \\f2\\fs20 \\sbasedon0\\snext0 toc 4;}\n"); - - // Index styles - fprintf(fd, "{\\s30\\fi-200\\li200\\tqr\\tx3960 \\f2\\fs18 \\sbasedon0\\snext0 index 1;}\n"); - fprintf(fd, "{\\s31\\fi-200\\li400\\tqr\\tx3960 \\f2\\fs18 \\sbasedon0\\snext0 index 2;}\n"); - fprintf(fd, "{\\s32\\fi-200\\li600\\tqr\\tx3960 \\f2\\fs18 \\sbasedon0\\snext0 index 3;}\n"); - fprintf(fd, "{\\s33\\fi-200\\li800\\tqr\\tx3960 \\f2\\fs18 \\sbasedon0\\snext0 index 4;}\n"); - fprintf(fd, "{\\s35\\qc\\sb240\\sa120 \\b\\f2\\fs26 \\sbasedon0\\snext30 index heading;}\n"); - fprintf(fd, "}\n"); - - WriteColourTable(fd); - fprintf(fd, "\n\\ftnbj\\ftnrestart"); // Latex default is footnotes at bottom of page, not section. - fprintf(fd, "\n"); -} - -void OutputNumberStyle(char *numberStyle) -{ - if (numberStyle) - { - if (strcmp(numberStyle, "arabic") == 0) - { - TexOutput("\\pgndec"); - } - else if (strcmp(numberStyle, "roman") == 0) - { - TexOutput("\\pgnlcrm"); - } - else if (strcmp(numberStyle, "Roman") == 0) - { - TexOutput("\\pgnucrm"); - } - else if (strcmp(numberStyle, "alph") == 0) - { - TexOutput("\\pgnlcltr"); - } - else if (strcmp(numberStyle, "Alph") == 0) - { - TexOutput("\\pgnucltr"); - } - } -} - -/* - * Write a Windows help project file - */ - -bool WriteHPJ(char *filename) -{ - char hpjFilename[256]; - char helpFile[50]; - char rtfFile[50]; - strcpy(hpjFilename, filename); - StripExtension(hpjFilename); - strcat(hpjFilename, ".hpj"); - - strcpy(helpFile, FileNameFromPath(filename)); - StripExtension(helpFile); - strcpy(rtfFile, helpFile); - strcat(helpFile, ".hlp"); - strcat(rtfFile, ".rtf"); - - FILE *fd = fopen(hpjFilename, "w"); - if (!fd) - return FALSE; - - char *helpTitle = winHelpTitle; - if (!helpTitle) - helpTitle = "Untitled"; - - wxString thePath = wxPathOnly(InputFile); - if (thePath.IsEmpty()) - thePath = "."; - fprintf(fd, "[OPTIONS]\n"); - fprintf(fd, "BMROOT=%s ; Assume that bitmaps are where the source is\n", thePath.c_str()); - fprintf(fd, "TITLE=%s\n", helpTitle); - fprintf(fd, "CONTENTS=Contents\n"); - - if (winHelpVersion > 3) - { - fprintf(fd, "; COMPRESS=12 Hall Zeck ; Max compression, but needs lots of memory\n"); - fprintf(fd, "COMPRESS=8 Zeck\n"); - fprintf(fd, "LCID=0x809 0x0 0x0 ;English (British)\n"); - fprintf(fd, "HLP=.\\%s.hlp\n", wxFileNameFromPath(FileRoot)); - } - else - { - fprintf(fd, "COMPRESS=HIGH\n"); - } - fprintf(fd, "\n"); - - if (winHelpVersion > 3) - { - fprintf(fd, "[WINDOWS]\n"); - fprintf(fd, "Main=\"\",(553,102,400,600),20736,(r14876671),(r12632256),f3\n"); - fprintf(fd, "\n"); - } - - fprintf(fd, "[FILES]\n%s\n\n", rtfFile); - fprintf(fd, "[CONFIG]\n"); - if (useUpButton) - fprintf(fd, "CreateButton(\"Up\", \"&Up\", \"JumpId(`%s', `Contents')\")\n", helpFile); - fprintf(fd, "BrowseButtons()\n\n"); - fprintf(fd, "[MAP]\n\n[BITMAPS]\n\n"); - fclose(fd); - return TRUE; -} - - -/* - * Given a TexChunk with a string value, scans through the string - * converting Latex-isms into RTF-isms, such as 2 newlines -> \par, - * and inserting spaces at the start of lines since in Latex, a newline - * implies a space, but not in RTF. - * - */ - -void ProcessText2RTF(TexChunk *chunk) -{ - bool changed = FALSE; - int ptr = 0; - int i = 0; - char ch = 1; - int len = strlen(chunk->value); - while (ch != 0) - { - ch = chunk->value[i]; - - if (ch == 10) - { - if (inVerbatim) - { - BigBuffer[ptr] = 0; strcat(BigBuffer, "\\par\n"); ptr += 5; - i ++; - changed = TRUE; - } - else - { - // If the first character of the next line is ASCII, - // put a space in. Implicit in Latex, not in RTF. - /* - The reason this is difficult is that you don't really know - where a space would be appropriate. If you always put in a space - when you find a newline, unwanted spaces appear in the text. - */ - if ((i > 0) && (len > i+1 && isascii(chunk->value[i+1]) && - !isspace(chunk->value[i+1])) || - ((len > i+1 && chunk->value[i+1] == 13) && - (len > i+2 && isascii(chunk->value[i+2]) && - !isspace(chunk->value[i+2])))) -// if (TRUE) - { - // DOS files have a 13 after the 10 - BigBuffer[ptr] = 10; - ptr ++; - i ++; - if (chunk->value[i] == 13) - { - BigBuffer[ptr] = 13; - ptr ++; - i ++; - } - - BigBuffer[ptr] = ' '; - ptr ++; - - // Note that the actual ASCII character seen is dealt with in the next - // iteration - changed = TRUE; - } - else - { - BigBuffer[ptr] = ch; - i ++; - } - } - } - else if (!inVerbatim && ch == '`' && (len >= i+1 && chunk->value[i+1] == '`')) - { - BigBuffer[ptr] = '"'; ptr ++; - i += 2; - changed = TRUE; - } - else if (!inVerbatim && ch == '`') // Change ` to ' - { - BigBuffer[ptr] = 39; ptr ++; - i += 1; - changed = TRUE; - } - else if (inVerbatim && ch == '\\') // Change backslash to two backslashes - { - BigBuffer[ptr] = '\\'; ptr ++; - BigBuffer[ptr] = '\\'; ptr ++; - i += 1; - changed = TRUE; - } - else if (inVerbatim && (ch == '{' || ch == '}')) // Escape the curly bracket - { - BigBuffer[ptr] = '\\'; ptr ++; - BigBuffer[ptr] = ch; ptr ++; - i += 1; - changed = TRUE; - } - else - { - BigBuffer[ptr] = ch; - i ++; - ptr ++; - } - } - BigBuffer[ptr] = 0; - - if (changed) - { - delete[] chunk->value; - chunk->value = copystring(BigBuffer); - } -} - -/* - * Scan through all chunks starting from the given one, - * calling ProcessText2RTF to convert Latex-isms to RTF-isms. - * This should be called after Tex2Any has parsed the file, - * and before TraverseDocument is called. - * - */ - -void Text2RTF(TexChunk *chunk) -{ - Tex2RTFYield(); - if (stopRunning) return; - - switch (chunk->type) - { - case CHUNK_TYPE_MACRO: - { - TexMacroDef *def = chunk->def; - if (def && def->ignore) - return; - - if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB)) - inVerbatim = TRUE; - - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - Text2RTF(child_chunk); - node = node->Next(); - } - - if (def && (def->macroId == ltVERBATIM || def->macroId == ltVERB)) - inVerbatim = FALSE; - - break; - } - case CHUNK_TYPE_ARG: - { - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - Text2RTF(child_chunk); - node = node->Next(); - } - - break; - } - case CHUNK_TYPE_STRING: - { - if (chunk->value) - ProcessText2RTF(chunk); - break; - } - } -} - -/* - * Not used yet - * - */ - -char browseBuf[10]; -static long browseId = 0; -char *GetBrowseString(void) -{ - char buf[10]; - browseId ++; - sprintf(buf, "%ld", browseId); - int noZeroes = 5-strlen(buf); - strcpy(browseBuf, "browse"); - for (int i = 0; i < noZeroes; i++) - strcat(browseBuf, "0"); - strcat(browseBuf, buf); - return browseBuf; -} - -/* - * Keeping track of environments to restore the styles after \pard. - * Push strings like "\qc" onto stack. - * - */ - -void PushEnvironmentStyle(char *style) -{ - environmentStack.Add(style); -} - -void PopEnvironmentStyle(void) -{ - wxNode *node = environmentStack.Last(); - if (node) - { - char *val = (char *)node->Data(); - delete[] val; - delete node; - } -} - -// Write out the styles, most recent first. -void WriteEnvironmentStyles(void) -{ - wxNode *node = environmentStack.Last(); - while (node) - { - char *val = (char *)node->Data(); - TexOutput(val); - node = node->Next(); - } - if (!inTabular && (ParIndent > 0) && (forbidParindent == 0)) - { - char buf[15]; - sprintf(buf, "\\fi%d", ParIndent*20); // Convert points to TWIPS - TexOutput(buf); - } - if (environmentStack.Number() > 0 || (ParIndent > 0)) - TexOutput("\n"); -} - - -/* - * Output a header - * - */ - -void OutputRTFHeaderCommands(void) -{ - char buf[300]; - if (PageStyle && strcmp(PageStyle, "plain") == 0) - { - TexOutput("{\\headerl }{\\headerr }"); - } - else if (PageStyle && strcmp(PageStyle, "empty") == 0) - { - TexOutput("{\\headerl }{\\headerr }"); - } - else if (PageStyle && strcmp(PageStyle, "headings") == 0) - { - // Left header - TexOutput("{\\headerl\\fi0 "); - - if (headerRule) - TexOutput("\\brdrb\\brdrs\\brdrw15\\brsp20 "); - - TexOutput("{\\i \\qr "); - if (DocumentStyle == LATEX_ARTICLE) - { - sprintf(buf, "SECTION %d", sectionNo); - TexOutput(buf); - } - else - { - sprintf(buf, "CHAPTER %d: ", chapterNo); - TexOutput(buf); - } - TexOutput("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - TexOutput("}\\par\\pard}"); - - // Right header - TexOutput("{\\headerr\\fi0 "); - - if (headerRule) - TexOutput("\\brdrb\\brdrs\\brdrw15\\brsp20 "); - - TexOutput("{\\i \\qc "); - if (DocumentStyle == LATEX_ARTICLE) - { - sprintf(buf, "SECTION %d", sectionNo); - TexOutput(buf); - } - else - { - sprintf(buf, "CHAPTER %d", chapterNo); - TexOutput(buf); - } - TexOutput("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - TexOutput("}\\par\\pard}"); - } - else - { - int oldForbidResetPar = forbidResetPar; - forbidResetPar = 0; - - if (LeftHeaderEven || CentreHeaderEven || RightHeaderEven) - { - TexOutput("{\\headerl\\fi0 "); - - if (headerRule) - TexOutput("\\brdrb\\brdrs\\brdrw15\\brsp20 "); - - if (LeftHeaderEven) - { - if (!CentreHeaderEven && !RightHeaderEven) - TexOutput("\\ql "); - TraverseChildrenFromChunk(LeftHeaderEven); - } - if (CentreHeaderEven) - { - if (!LeftHeaderEven && !RightHeaderEven) - TexOutput("\\qc "); - else - TexOutput("\\tab\\tab\\tab "); - TraverseChildrenFromChunk(CentreHeaderEven); - } - if (RightHeaderEven) - { - if (!LeftHeaderEven && !CentreHeaderEven) - TexOutput("\\qr "); - else - TexOutput("\\tab\\tab\\tab\\tab\\tab\\tab "); - TraverseChildrenFromChunk(RightHeaderEven); - } - TexOutput("\\par\\pard}"); - } - - if (LeftHeaderOdd || CentreHeaderOdd || RightHeaderOdd) - { - TexOutput("{\\headerr\\fi0 "); - - if (headerRule) - TexOutput("\\brdrb\\brdrs\\brdrw15\\brsp20 "); - - if (LeftHeaderOdd) - { - if (!CentreHeaderOdd && !RightHeaderOdd) - TexOutput("\\ql "); - TraverseChildrenFromChunk(LeftHeaderOdd); - } - if (CentreHeaderOdd) - { - if (!LeftHeaderOdd && !RightHeaderOdd) - TexOutput("\\qc "); - else - TexOutput("\\tab\\tab\\tab "); - TraverseChildrenFromChunk(CentreHeaderOdd); - } - if (RightHeaderOdd) - { - if (!LeftHeaderOdd && !CentreHeaderOdd) - TexOutput("\\qr "); - else - TexOutput("\\tab\\tab\\tab\\tab\\tab\\tab "); - TraverseChildrenFromChunk(RightHeaderOdd); - } - TexOutput("\\par\\pard}"); - } - // As an approximation, don't put a header on the first page of a section. - // This may not always be desired, but it's a reasonable guess. - TexOutput("{\\headerf }"); - - forbidResetPar = oldForbidResetPar; - } -} - -void OutputRTFFooterCommands(void) -{ - if (PageStyle && strcmp(PageStyle, "plain") == 0) - { - TexOutput("{\\footerl\\fi0 "); - if (footerRule) - TexOutput("\\brdrt\\brdrs\\brdrw15\\brsp20 "); - TexOutput("{\\qc "); - TexOutput("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - TexOutput("}\\par\\pard}"); - - TexOutput("{\\footerr\\fi0 "); - if (footerRule) - TexOutput("\\brdrt\\brdrs\\brdrw15\\brsp20 "); - TexOutput("{\\qc "); - TexOutput("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - TexOutput("}\\par\\pard}"); - } - else if (PageStyle && strcmp(PageStyle, "empty") == 0) - { - TexOutput("{\\footerl }{\\footerr }"); - } - else if (PageStyle && strcmp(PageStyle, "headings") == 0) - { - TexOutput("{\\footerl }{\\footerr }"); - } - else - { - if (LeftFooterEven || CentreFooterEven || RightFooterEven) - { - TexOutput("{\\footerl\\fi0 "); - if (footerRule) - TexOutput("\\brdrt\\brdrs\\brdrw15\\brsp20 "); - if (LeftFooterEven) - { - if (!CentreFooterEven && !RightFooterEven) - TexOutput("\\ql "); - TraverseChildrenFromChunk(LeftFooterEven); - } - if (CentreFooterEven) - { - if (!LeftFooterEven && !RightFooterEven) - TexOutput("\\qc "); - else - TexOutput("\\tab\\tab\\tab "); - TraverseChildrenFromChunk(CentreFooterEven); - } - if (RightFooterEven) - { - if (!LeftFooterEven && !CentreFooterEven) - TexOutput("\\qr "); - else - TexOutput("\\tab\\tab\\tab\\tab\\tab\\tab "); - TraverseChildrenFromChunk(RightFooterEven); - } - TexOutput("\\par\\pard}"); - } - - if (LeftFooterOdd || CentreFooterOdd || RightFooterOdd) - { - TexOutput("{\\footerr\\fi0 "); - if (footerRule) - TexOutput("\\brdrt\\brdrs\\brdrw15\\brsp20 "); - if (LeftFooterOdd) - { - if (!CentreFooterOdd && !RightFooterOdd) - TexOutput("\\ql "); - TraverseChildrenFromChunk(LeftFooterOdd); - } - if (CentreFooterOdd) - { - if (!LeftFooterOdd && !RightFooterOdd) - TexOutput("\\qc "); - else - TexOutput("\\tab\\tab\\tab "); - TraverseChildrenFromChunk(CentreFooterOdd); - } - if (RightFooterOdd) - { - if (!LeftFooterOdd && !CentreFooterOdd) - TexOutput("\\qr "); - else - TexOutput("\\tab\\tab\\tab\\tab\\tab\\tab "); - TraverseChildrenFromChunk(RightFooterOdd); - } - TexOutput("\\par\\pard}"); - } - - // As an approximation, put a footer on the first page of a section. - // This may not always be desired, but it's a reasonable guess. - if (LeftFooterOdd || CentreFooterOdd || RightFooterOdd) - { - TexOutput("{\\footerf\\fi0 "); - if (LeftFooterOdd) - { - if (!CentreFooterOdd && !RightFooterOdd) - TexOutput("\\ql "); - TraverseChildrenFromChunk(LeftFooterOdd); - } - if (CentreFooterOdd) - { - if (!LeftFooterOdd && !RightFooterOdd) - TexOutput("\\qc "); - else - TexOutput("\\tab\\tab\\tab "); - TraverseChildrenFromChunk(CentreFooterOdd); - } - if (RightFooterOdd) - { - if (!LeftFooterOdd && !CentreFooterOdd) - TexOutput("\\qr "); - else - TexOutput("\\tab\\tab\\tab\\tab\\tab\\tab "); - TraverseChildrenFromChunk(RightFooterOdd); - } - TexOutput("\\par\\pard}"); - } - } -} - -// Called on start/end of macro examination -void RTFOnMacro(int macroId, int no_args, bool start) -{ -/* - char tmpBuf[40]; - sprintf(tmpBuf, "%d (%d)", macroId, (int)start); - OutputDebugString("RTFOnMacro Start "); OutputDebugString(tmpBuf); - OutputDebugString("\n"); wxYield(); -*/ - - // ltLABEL is included here because after a section but BEFORE - // the label is seen, a new paragraph is issued. Don't upset this by - // immediately forgetting we've done it. - if (start && (macroId != ltPAR && macroId != ltITEMIZE && - macroId != ltENUMERATE && macroId != ltDESCRIPTION && - macroId != ltVERBATIM && macroId != ltLABEL && - macroId != ltSETHEADER && macroId != ltSETFOOTER && - macroId != ltPAGENUMBERING && - (forbidResetPar == 0))) - { - issuedNewParagraph = 0; - } - - char buf[300]; - switch (macroId) - { - case ltCHAPTER: - case ltCHAPTERSTAR: - case ltCHAPTERHEADING: - case ltCHAPTERHEADINGSTAR: - { - if (!start) - { - sectionNo = 0; - figureNo = 0; - tableNo = 0; - subsectionNo = 0; - subsubsectionNo = 0; - footnoteCount = 0; - - if (macroId != ltCHAPTERSTAR && macroId != ltCHAPTERHEADINGSTAR) - chapterNo ++; - - char *topicName = FindTopicName(GetNextChunk()); - SetCurrentChapterName(topicName); - - if (winHelpContents && winHelp && !InPopups()) - { - OutputCurrentSectionToString(wxBuffer); - WriteWinHelpContentsFileLine(topicName, wxBuffer, 1); - } - AddTexRef(topicName, NULL, ChapterNameString, chapterNo); - - if (winHelp) - { - if (!InPopups()) - fprintf(Contents, "\n{\\uldb "); - fprintf(Chapters, "\\page"); - fprintf(Chapters, "\n${\\footnote "); - if (!InPopups()) - SetCurrentOutputs(Contents, Chapters); - else - SetCurrentOutput(Chapters); - } - else - { - fprintf(Chapters, "\\sect\\pgncont\\titlepg\n"); - - // If a non-custom page style, we generate the header now. - if (PageStyle && (strcmp(PageStyle, "plain") == 0 || - strcmp(PageStyle, "empty") == 0 || - strcmp(PageStyle, "headings") == 0)) - { - OutputRTFHeaderCommands(); - OutputRTFFooterCommands(); - } - - // Need to reset the current numbering style, or RTF forgets it. - SetCurrentOutput(Chapters); - OutputNumberStyle(currentNumberStyle); - - SetCurrentOutput(Contents); - - if (!InPopups()) - { - if (macroId == ltCHAPTER) - { - // Section - fprintf(Contents, "\\par\n\\pard{\\b %d\\tab ", chapterNo); - } - else if (macroId == ltCHAPTERHEADING) - { - fprintf(Contents, "\\par\n\\pard{\\b "); - } - else SetCurrentOutput(NULL); // No entry in table of contents - } - } - - startedSections = TRUE; - - // Output heading to contents page - if (!InPopups()) - { - OutputCurrentSection(); - - if (winHelp) - fprintf(Contents, "}{\\v %s}\\par\\pard\n", topicName); - else if ((macroId == ltCHAPTER) || (macroId == ltCHAPTERHEADING)) - fprintf(Contents, "}\\par\\par\\pard\n"); - - // From here, just output to chapter - SetCurrentOutput(Chapters); - } - - if (winHelp) - { - fprintf(Chapters, "}\n#{\\footnote %s}\n", topicName); - fprintf(Chapters, "+{\\footnote %s}\n", GetBrowseString()); - - OutputSectionKeyword(Chapters); - - GenerateKeywordsForTopic(topicName); - if (useUpButton) - { - // If we're generating a .cnt file, we don't want to be able - // jump up to the old-style contents page, so disable it. - if (winHelpContents) - fprintf(Chapters, "!{\\footnote DisableButton(\"Up\")}\n"); - else - fprintf(Chapters, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n", - FileNameFromPath(FileRoot), "Contents"); - } - } - - if (!InPopups()) - { - char *styleCommand = ""; - if (!winHelp && useHeadingStyles && (macroId == ltCHAPTER || macroId == ltCHAPTERHEADING || macroId == ltCHAPTERHEADINGSTAR)) - styleCommand = "\\s1"; - fprintf(Chapters, "\\pard{%s", ((winHelp && !InPopups()) ? "\\keepn\\sa140\\sb140" : styleCommand)); - WriteHeadingStyle(Chapters, 1); fprintf(Chapters, " "); - if (!winHelp) - { - if (macroId == ltCHAPTER) - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d{\\bkmkend %s}. ", topicName, chapterNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, topicName); - else - fprintf(Chapters, "%d. ", chapterNo); - } - else if ( useWord ) - { - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, topicName); - } - } - OutputCurrentSection(); - TexOutput("\\par\\pard}\\par\n"); - } - issuedNewParagraph = 2; - } - break; - } - case ltSECTION: - case ltSECTIONSTAR: - case ltSECTIONHEADING: - case ltSECTIONHEADINGSTAR: - case ltGLOSS: - { - FILE *jumpFrom; - if (DocumentStyle == LATEX_ARTICLE) - jumpFrom = Contents; - else - jumpFrom = Chapters; - - if (!start) - { - subsectionNo = 0; - subsubsectionNo = 0; - if (DocumentStyle == LATEX_ARTICLE) - footnoteCount = 0; - - if (macroId != ltSECTIONSTAR && macroId != ltSECTIONHEADINGSTAR) - sectionNo ++; - - char *topicName = FindTopicName(GetNextChunk()); - SetCurrentSectionName(topicName); - NotifyParentHasChildren(1); - if (winHelpContents && winHelp && !InPopups()) - { - OutputCurrentSectionToString(wxBuffer); - WriteWinHelpContentsFileLine(topicName, wxBuffer, 2); - } - AddTexRef(topicName, NULL, SectionNameString, chapterNo, sectionNo); - - if (winHelp) - { - SetCurrentOutputs(jumpFrom, Sections); - // Newline for a new section if this is an article - if ((DocumentStyle == LATEX_ARTICLE) && - ((macroId == ltSECTION) || (macroId == ltSECTIONSTAR) || (macroId == ltSECTIONHEADINGSTAR))) - fprintf(Sections, "\\page\n"); - - if (!InPopups()) - fprintf(jumpFrom, "\n{\\uldb "); - } - else - { - if (DocumentStyle == LATEX_ARTICLE) - { - TexOutput("\\sect\\pgncont\n"); - // If a non-custom page style, we generate the header now. - if (PageStyle && (strcmp(PageStyle, "plain") == 0 || - strcmp(PageStyle, "empty") == 0 || - strcmp(PageStyle, "headings") == 0)) - { - OutputRTFHeaderCommands(); - OutputRTFFooterCommands(); - } - } - SetCurrentOutput(Contents); - - if (macroId == ltSECTION) - { - if (!InPopups()) - { - if (DocumentStyle == LATEX_REPORT) - fprintf(Contents, "\n\\pard{\\tab %d.%d\\tab ", chapterNo, sectionNo); - else - fprintf(Contents, "\\par\n\\pard{\\b %d\\tab ", sectionNo); - } - } - else if (macroId == ltSECTIONHEADING) - { - if (!InPopups()) - { - if (DocumentStyle == LATEX_REPORT) - fprintf(Contents, "\n\\pard{\\tab "); //, chapterNo, sectionNo); - else - fprintf(Contents, "\\par\n\\pard{\\b "); //, sectionNo); - } - } - else SetCurrentOutput(NULL); - } - - if (startedSections) - { - if (winHelp) - fprintf(Sections, "\\page\n"); - } - startedSections = TRUE; - - if (winHelp) - fprintf(Sections, "\n${\\footnote "); - - // Output heading to contents page - if (!InPopups()) - OutputCurrentSection(); - - if (winHelp) - { - if (!InPopups()) - fprintf(jumpFrom, "}{\\v %s}\\par\\pard\n", topicName); - } - else if ((macroId != ltSECTIONSTAR) && (macroId != ltGLOSS)) - { - if (DocumentStyle == LATEX_REPORT) - fprintf(Contents, "}\\par\\pard\n"); - else - fprintf(Contents, "}\\par\\par\\pard\n"); - } - - SetCurrentOutput(winHelp ? Sections : Chapters); - - if (winHelp) - { - fprintf(Sections, "}\n#{\\footnote %s}\n", topicName); - fprintf(Sections, "+{\\footnote %s}\n", GetBrowseString()); - OutputSectionKeyword(Sections); - GenerateKeywordsForTopic(topicName); - if (useUpButton) - { - if (DocumentStyle == LATEX_ARTICLE) - { - fprintf(Sections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n", - FileNameFromPath(FileRoot), "Contents"); - } - else if (CurrentChapterName) - { - fprintf(Sections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n", - FileNameFromPath(FileRoot), CurrentChapterName); - } - } - } - - if (!InPopups()) - { - char *styleCommand = ""; - if (!winHelp && useHeadingStyles && (macroId != ltSECTIONSTAR)) - { - if (DocumentStyle == LATEX_ARTICLE) - styleCommand = "\\s1"; - else - styleCommand = "\\s2"; - } - char *keep = ""; - if (winHelp && (macroId != ltGLOSS) && !InPopups()) - keep = "\\keepn\\sa140\\sb140"; - - fprintf(winHelp ? Sections : Chapters, "\\pard{%s%s", - keep, styleCommand); - - WriteHeadingStyle((winHelp ? Sections : Chapters), - (DocumentStyle == LATEX_ARTICLE ? 1 : 2)); - fprintf(winHelp ? Sections : Chapters, " "); - - if (!winHelp) - { - if ((macroId != ltSECTIONSTAR) && (macroId != ltSECTIONHEADINGSTAR) && (macroId != ltGLOSS)) - { - if (DocumentStyle == LATEX_REPORT) - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d.%d{\\bkmkend %s}. ", topicName, chapterNo, sectionNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, - topicName); - else - fprintf(Chapters, "%d.%d. ", chapterNo, sectionNo); - } - else - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d{\\bkmkend %s}. ", topicName, sectionNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, - topicName); - else - fprintf(Chapters, "%d. ", sectionNo); - } - } - else if ( useWord ) - { - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, topicName); - } - } - OutputCurrentSection(); - TexOutput("\\par\\pard}\\par\n"); - } - issuedNewParagraph = 2; - } - break; - } - case ltSUBSECTION: - case ltSUBSECTIONSTAR: - case ltMEMBERSECTION: - case ltFUNCTIONSECTION: - { - if (!start) - { - if (winHelp && !Sections) - { - OnError("You cannot have a subsection before a section!"); - } - else - { - subsubsectionNo = 0; - - if (macroId != ltSUBSECTIONSTAR) - subsectionNo ++; - - char *topicName = FindTopicName(GetNextChunk()); - SetCurrentSubsectionName(topicName); - NotifyParentHasChildren(2); - if (winHelpContents && winHelp && !InPopups()) - { - OutputCurrentSectionToString(wxBuffer); - WriteWinHelpContentsFileLine(topicName, wxBuffer, 3); - } - AddTexRef(topicName, NULL, SectionNameString, chapterNo, sectionNo, subsectionNo); - - if (winHelp) - { - SetCurrentOutputs(Sections, Subsections); - SetCurrentOutputs(Sections, Subsections); - if (!InPopups()) - fprintf(Sections, "\n{\\uldb "); - } - else - { - if ((macroId != ltSUBSECTIONSTAR) && (macroId != ltMEMBERSECTION) && - (macroId != ltFUNCTIONSECTION)) - { - SetCurrentOutput(Contents); - if (DocumentStyle == LATEX_REPORT) - fprintf(Contents, "\n\\pard\\tab\\tab %d.%d.%d\\tab ", chapterNo, sectionNo, subsectionNo); - else - fprintf(Contents, "\n\\pard\\tab %d.%d\\tab ", sectionNo, subsectionNo); - } else SetCurrentOutput(NULL); - } - if (startedSections) - { - if (winHelp) - { - if (!InPopups()) - fprintf(Subsections, "\\page\n"); - } - else - fprintf(Chapters, "\\par\n"); - } - startedSections = TRUE; - - if (winHelp) - fprintf(Subsections, "\n${\\footnote "); - - // Output to contents page - if (!InPopups()) - OutputCurrentSection(); - - if (winHelp) - { - if (!InPopups()) - fprintf(Sections, "}{\\v %s}\\par\\pard\n", topicName); - } - else if ((macroId != ltSUBSECTIONSTAR) && (macroId != ltMEMBERSECTION) && - (macroId != ltFUNCTIONSECTION)) - fprintf(Contents, "\\par\\pard\n"); - - SetCurrentOutput(winHelp ? Subsections : Chapters); - if (winHelp) - { - fprintf(Subsections, "}\n#{\\footnote %s}\n", topicName); - fprintf(Subsections, "+{\\footnote %s}\n", GetBrowseString()); - OutputSectionKeyword(Subsections); - GenerateKeywordsForTopic(topicName); - if (useUpButton && CurrentSectionName) - { - fprintf(Subsections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n", - FileNameFromPath(FileRoot), CurrentSectionName); - } - } - if (!winHelp && indexSubsections && useWord) - { - // Insert index entry for this subsection - TexOutput("{\\xe\\v {"); - OutputCurrentSection(); - TexOutput("}}"); - } - - if (!InPopups()) - { - char *styleCommand = ""; - if (!winHelp && useHeadingStyles && (macroId != ltSUBSECTIONSTAR)) - { - if (DocumentStyle == LATEX_ARTICLE) - styleCommand = "\\s2"; - else - styleCommand = "\\s3"; - } - char *keep = ""; - if (winHelp && !InPopups()) - keep = "\\keepn\\sa140\\sb140"; - - fprintf(winHelp ? Subsections : Chapters, "\\pard{%s%s", - keep, styleCommand); - - WriteHeadingStyle((winHelp ? Subsections : Chapters), - (DocumentStyle == LATEX_ARTICLE ? 2 : 3)); - fprintf(winHelp ? Subsections : Chapters, " "); - - if (!winHelp) - { - if ((macroId != ltSUBSECTIONSTAR) && (macroId != ltMEMBERSECTION) && - (macroId != ltFUNCTIONSECTION)) - { - if (DocumentStyle == LATEX_REPORT) - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d.%d.%d{\\bkmkend %s}. ", topicName, chapterNo, sectionNo, subsectionNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, - topicName); - else - fprintf(Chapters, "%d.%d.%d. ", chapterNo, sectionNo, subsectionNo); - } - else - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d.%d{\\bkmkend %s}. ", topicName, sectionNo, subsectionNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, - topicName); - else - fprintf(Chapters, "%d.%d. ", sectionNo, subsectionNo); - } - } - else if ( useWord ) - { - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, topicName); - } - } - OutputCurrentSection(); // Repeat section header - TexOutput("\\par\\pard}\\par\n"); - } - issuedNewParagraph = 2; - } - } - break; - } - case ltSUBSUBSECTION: - case ltSUBSUBSECTIONSTAR: - { - if (!start) - { - if (winHelp && !Subsections) - { - OnError("You cannot have a subsubsection before a subsection!"); - } - else - { - if (macroId != ltSUBSUBSECTIONSTAR) - subsubsectionNo ++; - - char *topicName = FindTopicName(GetNextChunk()); - SetCurrentTopic(topicName); - NotifyParentHasChildren(3); - if (winHelpContents && winHelp) - { - OutputCurrentSectionToString(wxBuffer); - WriteWinHelpContentsFileLine(topicName, wxBuffer, 4); - } - AddTexRef(topicName, NULL, SectionNameString, chapterNo, sectionNo, subsectionNo, subsubsectionNo); - - if (winHelp) - { - SetCurrentOutputs(Subsections, Subsubsections); - fprintf(Subsections, "\n{\\uldb "); - } - else - { - if (macroId != ltSUBSUBSECTIONSTAR) - { - if (DocumentStyle == LATEX_ARTICLE) - { - SetCurrentOutput(Contents); - fprintf(Contents, "\n\\tab\\tab %d.%d.%d\\tab ", - sectionNo, subsectionNo, subsubsectionNo); - } - else - SetCurrentOutput(NULL); // Don't write it into the contents, or anywhere else - } - else - SetCurrentOutput(NULL); // Don't write it into the contents, or anywhere else - } - - if (startedSections) - { - if (winHelp) - fprintf(Subsubsections, "\\page\n"); - else - fprintf(Chapters, "\\par\n"); - } - - startedSections = TRUE; - - if (winHelp) - fprintf(Subsubsections, "\n${\\footnote "); - - // Output header to contents page - OutputCurrentSection(); - - if (winHelp) - fprintf(Subsections, "}{\\v %s}\\par\\pard\n", topicName); - else if ((DocumentStyle == LATEX_ARTICLE) && (macroId != ltSUBSUBSECTIONSTAR)) - fprintf(Contents, "\\par\\pard\n"); - - SetCurrentOutput(winHelp ? Subsubsections : Chapters); - if (winHelp) - { - fprintf(Subsubsections, "}\n#{\\footnote %s}\n", topicName); - fprintf(Subsubsections, "+{\\footnote %s}\n", GetBrowseString()); - OutputSectionKeyword(Subsubsections); - GenerateKeywordsForTopic(topicName); - if (useUpButton && CurrentSubsectionName) - { - fprintf(Subsubsections, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n", - FileNameFromPath(FileRoot), CurrentSubsectionName); - } - } - if (!winHelp && indexSubsections && useWord) - { - // Insert index entry for this subsubsection - TexOutput("{\\xe\\v {"); - OutputCurrentSection(); - TexOutput("}}"); - } - - char *styleCommand = ""; - if (!winHelp && useHeadingStyles && (macroId != ltSUBSUBSECTIONSTAR)) - { - if (DocumentStyle == LATEX_ARTICLE) - styleCommand = "\\s3"; - else - styleCommand = "\\s4"; - } - char *keep = ""; - if (winHelp) - keep = "\\keepn\\sa140\\sb140"; - - fprintf(winHelp ? Subsubsections : Chapters, "\\pard{%s%s", - keep, styleCommand); - - WriteHeadingStyle((winHelp ? Subsubsections : Chapters), - (DocumentStyle == LATEX_ARTICLE ? 3 : 4)); - fprintf(winHelp ? Subsubsections : Chapters, " "); - - if (!winHelp) - { - if ((macroId != ltSUBSUBSECTIONSTAR)) - { - if (DocumentStyle == LATEX_ARTICLE) - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d.%d.%d{\\bkmkend %s}. ", topicName, sectionNo, subsectionNo, subsubsectionNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, - topicName); - else - fprintf(Chapters, "%d.%d.%d. ", sectionNo, subsectionNo, subsubsectionNo); - } - else - { - if (useWord) -// fprintf(Chapters, "{\\bkmkstart %s}%d.%d.%d.%d{\\bkmkend %s}. ", topicName, chapterNo, sectionNo, subsectionNo, subsubsectionNo, - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, - topicName); - else - fprintf(Chapters, "%d.%d.%d.%d. ", chapterNo, sectionNo, subsectionNo, subsubsectionNo); - } - } - else if ( useWord ) - { - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", topicName, topicName); - } - } - OutputCurrentSection(); // Repeat section header - TexOutput("\\par\\pard}\\par\n"); - issuedNewParagraph = 2; -// if (winHelp) TexOutput("\\pard"); - } - } - break; - } - case ltCAPTION: - case ltCAPTIONSTAR: - { - if (!start) - { - char *topicName = FindTopicName(GetNextChunk()); - SetCurrentTopic(topicName); - - TexOutput("\\pard\\par"); - char figBuf[200]; - - if (inFigure) - { - figureNo ++; - - if (winHelp || !useWord) - { - if (DocumentStyle != LATEX_ARTICLE) - sprintf(figBuf, "%s %d.%d: ", FigureNameString, chapterNo, figureNo); - else - sprintf(figBuf, "%s %d: ", FigureNameString, figureNo); - } - else - { - sprintf(figBuf, "%s {\\field\\flddirty{\\*\\fldinst SEQ Figure \\\\* ARABIC }{\\fldrslt {\\bkmkstart %s}??{\\bkmkend %s}}}: ", - FigureNameString, topicName, topicName); - } - } - else - { - tableNo ++; - - if (winHelp || !useWord) - { - if (DocumentStyle != LATEX_ARTICLE) - sprintf(figBuf, "%s %d.%d: ", TableNameString, chapterNo, tableNo); - else - sprintf(figBuf, "%s %d: ", TableNameString, tableNo); - } - else - { - sprintf(figBuf, "%s {\\field\\flddirty{\\*\\fldinst SEQ Table \\\\* ARABIC }{\\fldrslt {\\bkmkstart %s}??{\\bkmkend %s}}}: ", - TableNameString, topicName, topicName); - } - } - - int n = (inTable ? tableNo : figureNo); - AddTexRef(topicName, NULL, NULL, - ((DocumentStyle != LATEX_ARTICLE) ? chapterNo : n), - ((DocumentStyle != LATEX_ARTICLE) ? n : 0)); - - if (winHelp) - TexOutput("\\qc{\\b "); - else - TexOutput("\\ql{\\b "); - TexOutput(figBuf); - - OutputCurrentSection(); - - TexOutput("}\\par\\pard\n"); - WriteEnvironmentStyles(); - } - break; - } - case ltFUNC: - case ltPFUNC: - { -// SetCurrentOutput(winHelp ? Subsections : Chapters); - if (start) - { - TexOutput("{"); - } - else - { - TexOutput("}\n"); - if (winHelp) - { - TexOutput("K{\\footnote {K} "); - suppressNameDecoration = TRUE; - TraverseChildrenFromChunk(currentMember); - suppressNameDecoration = FALSE; - TexOutput("}\n"); - } - if (!winHelp && useWord) - { - // Insert index entry for this function - TexOutput("{\\xe\\v {"); - suppressNameDecoration = TRUE; // Necessary so don't print "(\\bf" etc. - TraverseChildrenFromChunk(currentMember); - suppressNameDecoration = FALSE; - TexOutput("}}"); - } - } - break; - } - case ltCLIPSFUNC: - { -// SetCurrentOutput(winHelp ? Subsections : Chapters); - if (start) - { - TexOutput("{"); - } - else - { - TexOutput("}\n"); - if (winHelp) - { - TexOutput("K{\\footnote {K} "); - suppressNameDecoration = TRUE; // Necessary so don't print "(\\bf" etc. - TraverseChildrenFromChunk(currentMember); - suppressNameDecoration = FALSE; - TexOutput("}\n"); - } - if (!winHelp && useWord) - { - // Insert index entry for this function - TexOutput("{\\xe\\v {"); - suppressNameDecoration = TRUE; // Necessary so don't print "(\\bf" etc. - TraverseChildrenFromChunk(currentMember); - suppressNameDecoration = FALSE; - TexOutput("}}"); - } - } - break; - } - case ltMEMBER: - { -// SetCurrentOutput(winHelp ? Subsections : Chapters); - if (start) - { - TexOutput("{\\b "); - } - else - { - TexOutput("}\n"); - if (winHelp) - { - TexOutput("K{\\footnote {K} "); - TraverseChildrenFromChunk(currentMember); - TexOutput("}\n"); - } - if (!winHelp && useWord) - { - // Insert index entry for this function - TexOutput("{\\xe\\v {"); - suppressNameDecoration = TRUE; // Necessary so don't print "(\\bf" etc. - TraverseChildrenFromChunk(currentMember); - suppressNameDecoration = FALSE; - TexOutput("}}"); - } - } - break; - } - case ltDOCUMENT: - { - if (start) - SetCurrentOutput(Chapters); - break; - } - case ltTABLEOFCONTENTS: - { - if (start) - { - if (!winHelp && useWord) - { - // Insert Word for Windows table of contents - TexOutput("\\par\\pard\\pgnrestart\\sect\\titlepg"); - - // In linear RTF, same as chapter headings. - sprintf(buf, "{\\b\\fs%d %s}\\par\\par\\pard\n\n", chapterFont*2, ContentsNameString); - - TexOutput(buf); - sprintf(buf, "{\\field{\\*\\fldinst TOC \\\\o \"1-%d\" }{\\fldrslt PRESS F9 TO REFORMAT CONTENTS}}\n", contentsDepth); - TexOutput(buf); -// TexOutput("\\sect\\sectd"); - } - else - { - FILE *fd = fopen(ContentsName, "r"); - if (fd) - { - int ch = getc(fd); - while (ch != EOF) - { - putc(ch, Chapters); - ch = getc(fd); - } - fclose(fd); - } - else - { - TexOutput("{\\i RUN TEX2RTF AGAIN FOR CONTENTS PAGE}\\par\n"); - OnInform("Run Tex2RTF again to include contents page."); - } - } - } - break; - } - case ltVOID: - { -// if (start) -// TexOutput("{\\b void}"); - break; - } - case ltHARDY: - { - if (start) - TexOutput("{\\scaps HARDY}"); - break; - } - case ltWXCLIPS: - { - if (start) - TexOutput("wxCLIPS"); - break; - } - case ltSPECIALAMPERSAND: - { - if (start) - { - if (inTabular) - TexOutput("\\cell "); - else - TexOutput("&"); - } - break; - } - case ltSPECIALTILDE: - { - if (start) - { - if (inVerbatim) - TexOutput("~"); - else - TexOutput(" "); - } - break; - } - case ltBACKSLASHCHAR: - { - if (start) - { - if (inTabular) - { -// TexOutput("\\cell\\row\\trowd\\trgaph108\\trleft-108\n"); - TexOutput("\\cell\\row\\trowd\\trgaph108\n"); - int currentWidth = 0; - for (int i = 0; i < noColumns; i++) - { - currentWidth += TableData[i].width; - if (TableData[i].rightBorder) - TexOutput("\\clbrdrr\\brdrs\\brdrw15"); - - if (TableData[i].leftBorder) - TexOutput("\\clbrdrl\\brdrs\\brdrw15"); - - sprintf(buf, "\\cellx%d", currentWidth); - TexOutput(buf); - } - TexOutput("\\pard\\intbl\n"); - } - else - TexOutput("\\line\n"); - } - break; - } - case ltRANGLEBRA: - { - if (start) - TexOutput("\tab "); - break; - } - case ltRTFSP: // Explicit space, RTF only - { - if (start) - TexOutput(" "); - break; - } - case ltITEMIZE: - case ltENUMERATE: - case ltDESCRIPTION: - { - if (start) - { - if (indentLevel > 0) - { - TexOutput("\\par\\par\n"); - issuedNewParagraph = 2; - } - else - { - // Top-level list: issue a new paragraph if we haven't - // just done so - if (!issuedNewParagraph) - { - TexOutput("\\par\\pard"); - WriteEnvironmentStyles(); - issuedNewParagraph = 1; - } - else issuedNewParagraph = 0; - } - indentLevel ++; - TexOutput("\\fi0\n"); - int listType; - if (macroId == ltENUMERATE) - listType = LATEX_ENUMERATE; - else if (macroId == ltITEMIZE) - listType = LATEX_ITEMIZE; - else - listType = LATEX_DESCRIPTION; - - int oldIndent = 0; - wxNode *node = itemizeStack.First(); - if (node) - oldIndent = ((ItemizeStruc *)node->Data())->indentation; - - int indentSize1 = oldIndent + 20*labelIndentTab; - int indentSize2 = oldIndent + 20*itemIndentTab; - - ItemizeStruc *struc = new ItemizeStruc(listType, indentSize2, indentSize1); - itemizeStack.Insert(struc); - - sprintf(buf, "\\tx%d\\tx%d\\li%d", indentSize1, indentSize2, indentSize2); - PushEnvironmentStyle(buf); - } - else - { - currentItemSep = 8; // Reset to the default - indentLevel --; - PopEnvironmentStyle(); - - if (itemizeStack.First()) - { - ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.First()->Data(); - delete struc; - delete itemizeStack.First(); - } -/* Change 18/7/97 - don't know why we wish to do this - if (itemizeStack.Number() == 0) - { - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - issuedNewParagraph = 2; - } -*/ - } - break; - } - case ltTWOCOLLIST: - { - if (start) - { - indentLevel ++; - int oldIndent = 0; - wxNode *node = itemizeStack.First(); - if (node) - oldIndent = ((ItemizeStruc *)node->Data())->indentation; - - int indentSize = oldIndent + TwoColWidthA; - - ItemizeStruc *struc = new ItemizeStruc(LATEX_TWOCOL, indentSize); - itemizeStack.Insert(struc); - -// sprintf(buf, "\\tx%d\\li%d\\ri%d", indentSize, indentSize, TwoColWidthA+TwoColWidthB+oldIndent); - sprintf(buf, "\\tx%d\\li%d", indentSize, indentSize); - PushEnvironmentStyle(buf); - } - else - { - indentLevel --; - PopEnvironmentStyle(); - if (itemizeStack.First()) - { - ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.First()->Data(); - delete struc; - delete itemizeStack.First(); - } -/* - // JACS June 1997 - TexOutput("\\pard\n"); - WriteEnvironmentStyles(); -*/ -/* why do we need this? */ - if (itemizeStack.Number() == 0) - { - issuedNewParagraph = 0; - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - } - break; - } - case ltITEM: - { - wxNode *node = itemizeStack.First(); - if (node) - { - ItemizeStruc *struc = (ItemizeStruc *)node->Data(); - if (!start) - { - struc->currentItem += 1; - char indentBuf[60]; - - int indentSize1 = struc->labelIndentation; - int indentSize2 = struc->indentation; - - TexOutput("\n"); - if (struc->currentItem > 1) - { - if (currentItemSep > 0) - TexOutput("\\par"); - - TexOutput("\\par"); -// WriteEnvironmentStyles(); - } - - sprintf(buf, "\\tx%d\\tx%d\\li%d\\fi-%d\n", indentSize1, indentSize2, - indentSize2, 20*itemIndentTab); - TexOutput(buf); - - switch (struc->listType) - { - case LATEX_ENUMERATE: - { - if (descriptionItemArg) - { - TexOutput("\\tab{ "); - TraverseChildrenFromChunk(descriptionItemArg); - TexOutput("}\\tab"); - descriptionItemArg = NULL; - } - else - { - sprintf(indentBuf, "\\tab{\\b %d.}\\tab", struc->currentItem); - TexOutput(indentBuf); - } - break; - } - case LATEX_ITEMIZE: - { - if (descriptionItemArg) - { - TexOutput("\\tab{ "); - TraverseChildrenFromChunk(descriptionItemArg); - TexOutput("}\\tab"); - descriptionItemArg = NULL; - } - else - { - if (bulletFile && winHelp) - { - if (winHelpVersion > 3) // Transparent bitmap - sprintf(indentBuf, "\\tab\\{bmct %s\\}\\tab", bulletFile); - else - sprintf(indentBuf, "\\tab\\{bmc %s\\}\\tab", bulletFile); - } - else if (winHelp) - sprintf(indentBuf, "\\tab{\\b o}\\tab"); - else - sprintf(indentBuf, "\\tab{\\f1\\'b7}\\tab"); - TexOutput(indentBuf); - } - break; - } - default: - case LATEX_DESCRIPTION: - { - if (descriptionItemArg) - { - TexOutput("\\tab{\\b "); - TraverseChildrenFromChunk(descriptionItemArg); - TexOutput("} "); - descriptionItemArg = NULL; - } - break; - } - } - } - } - break; - } - case ltTWOCOLITEM: - case ltTWOCOLITEMRULED: - { - wxNode *node = itemizeStack.First(); - if (node) - { - ItemizeStruc *struc = (ItemizeStruc *)node->Data(); - if (start) - { - struc->currentItem += 1; - - int indentSize = struc->indentation; - int oldIndent = 0; - wxNode *node2 = NULL; - if (itemizeStack.Number() > 1) // TODO: do I actually mean Nth(0) here?? - node2 = itemizeStack.Nth(1); - if (node2) - oldIndent = ((ItemizeStruc *)node2->Data())->indentation; - - TexOutput("\n"); - if (struc->currentItem > 1) - { - if (currentItemSep > 0) - TexOutput("\\par"); - -// WriteEnvironmentStyles(); - } - -// sprintf(buf, "\\tx%d\\li%d\\fi-%d\\ri%d\n", TwoColWidthA, -// TwoColWidthA, TwoColWidthA, TwoColWidthA+TwoColWidthB+oldIndent); -/* - sprintf(buf, "\\tx%d\\li%d\\fi-%d\n", TwoColWidthA, - TwoColWidthA, TwoColWidthA); -*/ - sprintf(buf, "\\tx%d\\li%d\\fi-%d\n", TwoColWidthA + oldIndent, - TwoColWidthA + oldIndent, TwoColWidthA); - TexOutput(buf); - } - } - break; - } - case ltVERBATIM: - case ltVERB: - { - if (start) - { - if (macroId == ltVERBATIM) - { - if (!issuedNewParagraph) - { - TexOutput("\\par\\pard"); - WriteEnvironmentStyles(); - issuedNewParagraph = 1; - } - else issuedNewParagraph = 0; - } - sprintf(buf, "{\\f3\\fs20 "); - TexOutput(buf); - } - else - { - TexOutput("}"); - if (macroId == ltVERBATIM) - { - TexOutput("\\pard\n"); -// issuedNewParagraph = 1; - WriteEnvironmentStyles(); - } - } - break; - } - case ltCENTERLINE: - case ltCENTER: - { - if (start) - { - TexOutput("\\fi0\\qc "); - forbidParindent ++; - PushEnvironmentStyle("\\qc"); - } - else - { - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - forbidParindent --; - PopEnvironmentStyle(); - WriteEnvironmentStyles(); - } - break; - } - case ltFLUSHLEFT: - { - if (start) - { - TexOutput("\\fi0\\ql "); - forbidParindent ++; - PushEnvironmentStyle("\\ql"); - } - else - { - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - forbidParindent --; - PopEnvironmentStyle(); - WriteEnvironmentStyles(); - } - break; - } - case ltFLUSHRIGHT: - { - if (start) - { - TexOutput("\\fi0\\qr "); - forbidParindent ++; - PushEnvironmentStyle("\\qr"); - } - else - { - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - forbidParindent --; - PopEnvironmentStyle(); - WriteEnvironmentStyles(); - } - break; - } - case ltSMALL: - case ltFOOTNOTESIZE: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", smallFont*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltTINY: - case ltSCRIPTSIZE: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", tinyFont*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltNORMALSIZE: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", normalFont*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltlarge: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", largeFont1*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltLarge: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", LargeFont2*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltLARGE: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", LARGEFont3*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case lthuge: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", hugeFont1*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltHuge: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", HugeFont2*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltHUGE: - { - if (start) - { - sprintf(buf, "{\\fs%d\n", HUGEFont3*2); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltTEXTBF: - case ltBFSERIES: - case ltBF: - { - if (start) - { - TexOutput("{\\b "); - } - else TexOutput("}"); - break; - } - case ltUNDERLINE: - { - if (start) - { - TexOutput("{\\ul "); - } - else TexOutput("}"); - break; - } - case ltTEXTIT: - case ltITSHAPE: - case ltIT: - case ltEMPH: - case ltEM: - { - if (start) - { - TexOutput("{\\i "); - } - else TexOutput("}"); - break; - } - // Roman font: do nothing. Should really switch between - // fonts. - case ltTEXTRM: - case ltRMFAMILY: - case ltRM: - { -/* - if (start) - { - TexOutput("{\\plain "); - } - else TexOutput("}"); - */ - break; - } - // Medium-weight font. Unbolden... - case ltMDSERIES: - { - if (start) - { - TexOutput("{\\b0 "); - } - else TexOutput("}"); - break; - } - // Upright (un-italic or slant) - case ltUPSHAPE: - { - if (start) - { - TexOutput("{\\i0 "); - } - else TexOutput("}"); - break; - } - case ltTEXTSC: - case ltSCSHAPE: - case ltSC: - { - if (start) - { - TexOutput("{\\scaps "); - } - else TexOutput("}"); - break; - } - case ltTEXTTT: - case ltTTFAMILY: - case ltTT: - { - if (start) - { - TexOutput("{\\f3 "); - } - else TexOutput("}"); - break; - } - case ltLBRACE: - { - if (start) - TexOutput("\\{"); - break; - } - case ltRBRACE: - { - if (start) - TexOutput("\\}"); - break; - } - case ltBACKSLASH: - { - if (start) - TexOutput("\\\\"); - break; - } - case ltPAR: - { - if (start) - { - if ( issuedNewParagraph == 0 ) - { - TexOutput("\\par\\pard"); - issuedNewParagraph ++; - - // Extra par if parskip is more than zero (usually looks best.) - if (!inTabular && (ParSkip > 0)) - { - TexOutput("\\par"); - issuedNewParagraph ++; - } - WriteEnvironmentStyles(); - } - // 1 is a whole paragraph if ParSkip == 0, - // half a paragraph if ParSkip > 0 - else if ( issuedNewParagraph == 1 ) - { - // Don't need a par at all if we've already had one, - // and ParSkip == 0. - - // Extra par if parskip is more than zero (usually looks best.) - if (!inTabular && (ParSkip > 0)) - { - TexOutput("\\par"); - issuedNewParagraph ++; - } - WriteEnvironmentStyles(); - } -/* - if (!issuedNewParagraph || (issuedNewParagraph > 1)) - { - TexOutput("\\par\\pard"); - - // Extra par if parskip is more than zero (usually looks best.) - if (!inTabular && (ParSkip > 0)) - TexOutput("\\par"); - WriteEnvironmentStyles(); - } -*/ - - TexOutput("\n"); - } - break; - } - case ltNEWPAGE: - { - // In Windows Help, no newpages until we've started some chapters or sections - if (!(winHelp && !startedSections)) - if (start) - TexOutput("\\page\n"); - break; - } - case ltMAKETITLE: - { - if (start && DocumentTitle) - { - TexOutput("\\par\\pard"); - if (!winHelp) - TexOutput("\\par"); - sprintf(buf, "\\qc{\\fs%d\\b ", titleFont*2); - TexOutput(buf); - TraverseChildrenFromChunk(DocumentTitle); - TexOutput("}\\par\\pard\n"); - - if (DocumentAuthor) - { - if (!winHelp) - TexOutput("\\par"); - sprintf(buf, "\\par\\qc{\\fs%d ", authorFont*2); - TexOutput(buf); - TraverseChildrenFromChunk(DocumentAuthor); - TexOutput("}"); - TexOutput("\\par\\pard\n"); - } - if (DocumentDate) - { - TexOutput("\\par"); - sprintf(buf, "\\qc{\\fs%d ", authorFont*2); - TexOutput(buf); - TraverseChildrenFromChunk(DocumentDate); - TexOutput("}\\par\\pard\n"); - } - // If linear RTF, we want this titlepage to be in a separate - // section with its own (blank) header and footer - if (!winHelp && (DocumentStyle != LATEX_ARTICLE)) - { - TexOutput("{\\header }{\\footer }\n"); - // Not sure about this: we get too many sections. -// TexOutput("\\sect"); - } - } - break; - } - case ltADDCONTENTSLINE: - { - if (!start) - { - if (contentsLineSection && contentsLineValue) - { - if (strcmp(contentsLineSection, "chapter") == 0) - { - fprintf(Contents, "\\par\n{\\b %s}\\par\n", contentsLineValue); - } - else if (strcmp(contentsLineSection, "section") == 0) - { - if (DocumentStyle != LATEX_ARTICLE) - fprintf(Contents, "\n\\tab%s\\par\n", contentsLineValue); - else - fprintf(Contents, "\\par\n{\\b %s}\\par\n", contentsLineValue); - } - } - } - break; - } - case ltHRULE: - { - if (start) - { - TexOutput("\\brdrb\\brdrs\\par\\pard\n"); - issuedNewParagraph = 1; - WriteEnvironmentStyles(); - } - break; - } - case ltRULE: - { - if (start) - { - TexOutput("\\brdrb\\brdrs\\par\\pard\n"); - issuedNewParagraph = 1; - WriteEnvironmentStyles(); - } - break; - } - case ltHLINE: - { - if (start) - ruleTop ++; - break; - } - case ltNUMBEREDBIBITEM: - { - if (start) - TexOutput("\\li260\\fi-260 "); // Indent from 2nd line - else - TexOutput("\\par\\pard\\par\n\n"); - break; - } - case ltTHEPAGE: - { - if (start) - { - TexOutput("{\\field{\\*\\fldinst PAGE \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - } - break; - } - case ltTHECHAPTER: - { - if (start) - { -// TexOutput("{\\field{\\*\\fldinst SECTION \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - sprintf(buf, "%d", chapterNo); - TexOutput(buf); - } - break; - } - case ltTHESECTION: - { - if (start) - { -// TexOutput("{\\field{\\*\\fldinst SECTION \\\\* MERGEFORMAT }{\\fldrslt 1}}"); - sprintf(buf, "%d", sectionNo); - TexOutput(buf); - } - break; - } - case ltTWOCOLUMN: - { - if (!start && !winHelp) - { - TexOutput("\\cols2\n"); - } - break; - } - case ltONECOLUMN: - { - if (!start && !winHelp) - { - TexOutput("\\cols1\n"); - } - break; - } - case ltPRINTINDEX: - { - if (start && useWord && !winHelp) - { - FakeCurrentSection("Index"); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - TexOutput("\\par{\\field{\\*\\fldinst INDEX \\\\h \"\\emdash A\\emdash \"\\\\c \"2\"}{\\fldrslt PRESS F9 TO REFORMAT INDEX}}\n"); - } - break; - } - case ltLISTOFFIGURES: - { - if (start && useWord && !winHelp) - { - FakeCurrentSection(FiguresNameString, FALSE); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - char buf[200]; - sprintf(buf, "{\\field\\fldedit{\\*\\fldinst TOC \\\\c \"%s\" }{\\fldrslt PRESS F9 TO REFORMAT LIST OF FIGURES}}\n", - FigureNameString); - TexOutput(buf); - } - break; - } - case ltLISTOFTABLES: - { - if (start && useWord && !winHelp) - { - FakeCurrentSection(TablesNameString, FALSE); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - char buf[200]; - sprintf(buf, "{\\field\\fldedit{\\*\\fldinst TOC \\\\c \"%s\" }{\\fldrslt PRESS F9 TO REFORMAT LIST OF TABLES}}\n", - TablesNameString); - TexOutput(buf); - } - break; - } - // Symbols - case ltALPHA: - if (start) TexOutput("{\\f1\\'61}"); - break; - case ltBETA: - if (start) TexOutput("{\\f1\\'62}"); - break; - case ltGAMMA: - if (start) TexOutput("{\\f1\\'63}"); - break; - case ltDELTA: - if (start) TexOutput("{\\f1\\'64}"); - break; - case ltEPSILON: - case ltVAREPSILON: - if (start) TexOutput("{\\f1\\'65}"); - break; - case ltZETA: - if (start) TexOutput("{\\f1\\'7A}"); - break; - case ltETA: - if (start) TexOutput("{\\f1\\'68}"); - break; - case ltTHETA: - case ltVARTHETA: - if (start) TexOutput("{\\f1\\'71}"); - break; - case ltIOTA: - if (start) TexOutput("{\\f1\\'69}"); - break; - case ltKAPPA: - if (start) TexOutput("{\\f1\\'6B}"); - break; - case ltLAMBDA: - if (start) TexOutput("{\\f1\\'6C}"); - break; - case ltMU: - if (start) TexOutput("{\\f1\\'6D}"); - break; - case ltNU: - if (start) TexOutput("{\\f1\\'6E}"); - break; - case ltXI: - if (start) TexOutput("{\\f1\\'78}"); - break; - case ltPI: - if (start) TexOutput("{\\f1\\'70}"); - break; - case ltVARPI: - if (start) TexOutput("{\\f1\\'76}"); - break; - case ltRHO: - case ltVARRHO: - if (start) TexOutput("{\\f1\\'72}"); - break; - case ltSIGMA: - if (start) TexOutput("{\\f1\\'73}"); - break; - case ltVARSIGMA: - if (start) TexOutput("{\\f1\\'56}"); - break; - case ltTAU: - if (start) TexOutput("{\\f1\\'74}"); - break; - case ltUPSILON: - if (start) TexOutput("{\\f1\\'75}"); - break; - case ltPHI: - case ltVARPHI: - if (start) TexOutput("{\\f1\\'66}"); - break; - case ltCHI: - if (start) TexOutput("{\\f1\\'63}"); - break; - case ltPSI: - if (start) TexOutput("{\\f1\\'79}"); - break; - case ltOMEGA: - if (start) TexOutput("{\\f1\\'77}"); - break; - case ltCAP_GAMMA: - if (start) TexOutput("{\\f1\\'47}"); - break; - case ltCAP_DELTA: - if (start) TexOutput("{\\f1\\'44}"); - break; - case ltCAP_THETA: - if (start) TexOutput("{\\f1\\'51}"); - break; - case ltCAP_LAMBDA: - if (start) TexOutput("{\\f1\\'4C}"); - break; - case ltCAP_XI: - if (start) TexOutput("{\\f1\\'58}"); - break; - case ltCAP_PI: - if (start) TexOutput("{\\f1\\'50}"); - break; - case ltCAP_SIGMA: - if (start) TexOutput("{\\f1\\'53}"); - break; - case ltCAP_UPSILON: - if (start) TexOutput("{\\f1\\'54}"); - break; - case ltCAP_PHI: - if (start) TexOutput("{\\f1\\'46}"); - break; - case ltCAP_PSI: - if (start) TexOutput("{\\f1\\'59}"); - break; - case ltCAP_OMEGA: - if (start) TexOutput("{\\f1\\'57}"); - break; - // Binary operation symbols - case ltLE: - case ltLEQ: - if (start) TexOutput("{\\f1\\'A3}"); - break; - case ltLL: - if (start) TexOutput("<<"); - break; - case ltSUBSET: - if (start) TexOutput("{\\f1\\'CC}"); - break; - case ltSUBSETEQ: - if (start) TexOutput("{\\f1\\'CD}"); - break; - case ltIN: - if (start) TexOutput("{\\f1\\'CE}"); - break; - case ltGE: - case ltGEQ: - if (start) TexOutput("{\\f1\\'B3}"); - break; - case ltGG: - if (start) TexOutput(">>"); - break; - case ltSUPSET: - if (start) TexOutput("{\\f1\\'C9}"); - break; - case ltSUPSETEQ: - if (start) TexOutput("{\\f1\\'CD}"); - break; - case ltNI: - if (start) TexOutput("{\\f1\\'27}"); - break; - case ltPERP: - if (start) TexOutput("{\\f1\\'5E}"); - break; - case ltNEQ: - if (start) TexOutput("{\\f1\\'B9}"); - break; - case ltAPPROX: - if (start) TexOutput("{\\f1\\'BB}"); - break; - case ltCONG: - if (start) TexOutput("{\\f1\\'40}"); - break; - case ltEQUIV: - if (start) TexOutput("{\\f1\\'BA}"); - break; - case ltPROPTO: - if (start) TexOutput("{\\f1\\'B5}"); - break; - case ltSIM: - if (start) TexOutput("{\\f1\\'7E}"); - break; - case ltSMILE: - if (start) TexOutput("{\\f4\\'4A}"); - break; - case ltFROWN: - if (start) TexOutput("{\\f4\\'4C}"); - break; - case ltMID: - if (start) TexOutput("|"); - break; - - // Negated relation symbols - case ltNOTEQ: - if (start) TexOutput("{\\f1\\'B9}"); - break; - case ltNOTIN: - if (start) TexOutput("{\\f1\\'CF}"); - break; - case ltNOTSUBSET: - if (start) TexOutput("{\\f1\\'CB}"); - break; - - // Arrows - case ltLEFTARROW: - if (start) TexOutput("{\\f1\\'AC}"); - break; - case ltLEFTARROW2: - if (start) TexOutput("{\\f1\\'DC}"); - break; - case ltRIGHTARROW: - if (start) TexOutput("{\\f1\\'AE}"); - break; - case ltRIGHTARROW2: - if (start) TexOutput("{\\f1\\'DE}"); - break; - case ltLEFTRIGHTARROW: - if (start) TexOutput("{\\f1\\'AB}"); - break; - case ltLEFTRIGHTARROW2: - if (start) TexOutput("{\\f1\\'DB}"); - break; - case ltUPARROW: - if (start) TexOutput("{\\f1\\'AD}"); - break; - case ltUPARROW2: - if (start) TexOutput("{\\f1\\'DD}"); - break; - case ltDOWNARROW: - if (start) TexOutput("{\\f1\\'AF}"); - break; - case ltDOWNARROW2: - if (start) TexOutput("{\\f1\\'DF}"); - break; - - // Miscellaneous symbols - case ltALEPH: - if (start) TexOutput("{\\f1\\'CO}"); - break; - case ltWP: - if (start) TexOutput("{\\f1\\'C3}"); - break; - case ltRE: - if (start) TexOutput("{\\f1\\'C2}"); - break; - case ltIM: - if (start) TexOutput("{\\f1\\'C1}"); - break; - case ltEMPTYSET: - if (start) TexOutput("{\\f1\\'C6}"); - break; - case ltNABLA: - if (start) TexOutput("{\\f1\\'D1}"); - break; - case ltSURD: - if (start) TexOutput("{\\f1\\'D6}"); - break; - case ltPARTIAL: - if (start) TexOutput("{\\f1\\'B6}"); - break; - case ltBOT: - if (start) TexOutput("{\\f1\\'5E}"); - break; - case ltFORALL: - if (start) TexOutput("{\\f1\\'22}"); - break; - case ltEXISTS: - if (start) TexOutput("{\\f1\\'24}"); - break; - case ltNEG: - if (start) TexOutput("{\\f1\\'D8}"); - break; - case ltSHARP: - if (start) TexOutput("{\\f1\\'23}"); - break; - case ltANGLE: - if (start) TexOutput("{\\f1\\'D0}"); - break; - case ltTRIANGLE: - if (start) TexOutput("{\\f5\\'73}"); - break; - case ltCLUBSUIT: - if (start) TexOutput("{\\f5\\'A8}"); - break; - case ltDIAMONDSUIT: - if (start) TexOutput("{\\f5\\'A9}"); - break; - case ltHEARTSUIT: - if (start) TexOutput("{\\f5\\'AA}"); - break; - case ltSPADESUIT: - if (start) TexOutput("{\\f5\\'AB}"); - break; - case ltINFTY: - if (start) TexOutput("{\\f1\\'A5}"); - break; - case ltCOPYRIGHT: - if (start) TexOutput("{\\f0\\'A9}"); - break; - case ltREGISTERED: - if (start) TexOutput("{\\f0\\'AE}"); - break; - case ltPM: - if (start) TexOutput("{\\f1\\'B1}"); - break; - case ltMP: - if (start) TexOutput("{\\f1\\'B1}"); - break; - case ltTIMES: - if (start) TexOutput("{\\f1\\'B4}"); - break; - case ltDIV: - if (start) TexOutput("{\\f1\\'B8}"); - break; - case ltCDOT: - if (start) TexOutput("{\\f1\\'D7}"); - break; - case ltAST: - if (start) TexOutput("{\\f1\\'2A}"); - break; - case ltSTAR: - if (start) TexOutput("{\\f5\\'AB}"); - break; - case ltCAP: - if (start) TexOutput("{\\f1\\'C7}"); - break; - case ltCUP: - if (start) TexOutput("{\\f1\\'C8}"); - break; - case ltVEE: - if (start) TexOutput("{\\f1\\'DA}"); - break; - case ltWEDGE: - if (start) TexOutput("{\\f1\\'D9}"); - break; - case ltCIRC: - if (start) TexOutput("{\\f1\\'B0}"); - break; - case ltBULLET: - if (start) TexOutput("{\\f1\\'B7}"); - break; - case ltDIAMOND: - if (start) TexOutput("{\\f1\\'E0}"); - break; - case ltBOX: - if (start) TexOutput("{\\f1\\'C6}"); - break; - case ltDIAMOND2: - if (start) TexOutput("{\\f1\\'E0}"); - break; - case ltBIGTRIANGLEDOWN: - if (start) TexOutput("{\\f1\\'D1}"); - break; - case ltOPLUS: - if (start) TexOutput("{\\f1\\'C5}"); - break; - case ltOTIMES: - if (start) TexOutput("{\\f1\\'C4}"); - break; - case ltSS: - if (start) TexOutput("{\\'DF}"); - break; - case ltFIGURE: - { - if (start) inFigure = TRUE; - else inFigure = FALSE; - break; - } - case ltTABLE: - { - if (start) inTable = TRUE; - else inTable = FALSE; - break; - } - default: - { - DefaultOnMacro(macroId, no_args, start); - break; - } - } -} - -// Called on start/end of argument examination -bool RTFOnArgument(int macroId, int arg_no, bool start) -{ - char buf[300]; - switch (macroId) - { - case ltCHAPTER: - case ltCHAPTERSTAR: - case ltCHAPTERHEADING: - case ltSECTION: - case ltSECTIONSTAR: - case ltSECTIONHEADING: - case ltSUBSECTION: - case ltSUBSECTIONSTAR: - case ltSUBSUBSECTION: - case ltSUBSUBSECTIONSTAR: - case ltGLOSS: - case ltMEMBERSECTION: - case ltFUNCTIONSECTION: - case ltCAPTION: - case ltCAPTIONSTAR: - { - if (!start && (arg_no == 1)) - currentSection = GetArgChunk(); - return FALSE; - break; - } - case ltFUNC: - { - if (start && (arg_no == 1)) - TexOutput("\\pard\\li600\\fi-600{\\b "); - - if (!start && (arg_no == 1)) - TexOutput("} "); - - if (start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput("{\\b "); - currentMember = GetArgChunk(); - } - if (!start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput("}"); - } - - if (start && (arg_no == 3)) - TexOutput("("); - if (!start && (arg_no == 3)) - { -// TexOutput(")\\li0\\fi0"); -// TexOutput(")\\par\\pard\\li0\\fi0"); -// issuedNewParagraph = 1; - TexOutput(")"); - WriteEnvironmentStyles(); - } - break; - } - case ltCLIPSFUNC: - { - if (start && (arg_no == 1)) - TexOutput("\\pard\\li260\\fi-260{\\b "); - if (!start && (arg_no == 1)) - TexOutput("} "); - - if (start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput("({\\b "); - currentMember = GetArgChunk(); - } - if (!start && (arg_no == 2)) - { - if (!suppressNameDecoration) TexOutput("}"); - } - - if (!start && (arg_no == 3)) - { - TexOutput(")\\li0\\fi0"); - WriteEnvironmentStyles(); - } - break; - } - case ltPFUNC: - { - if (start && (arg_no == 1)) - TexOutput("\\pard\\li260\\fi-260"); - - if (!start && (arg_no == 1)) - TexOutput(" "); - - if (start && (arg_no == 2)) - TexOutput("(*"); - if (!start && (arg_no == 2)) - TexOutput(")"); - - if (start && (arg_no == 2)) - currentMember = GetArgChunk(); - - if (start && (arg_no == 3)) - TexOutput("("); - if (!start && (arg_no == 3)) - { - TexOutput(")\\li0\\fi0"); - WriteEnvironmentStyles(); - } - break; - } - case ltPARAM: - { - if (start && (arg_no == 1)) - TexOutput("{\\b "); - if (!start && (arg_no == 1)) - TexOutput("}"); - if (start && (arg_no == 2)) - { - TexOutput("{\\i "); - } - if (!start && (arg_no == 2)) - { - TexOutput("}"); - } - break; - } - case ltCPARAM: - { - if (start && (arg_no == 1)) - TexOutput("{\\b "); - if (!start && (arg_no == 1)) - TexOutput("} "); // This is the difference from param - one space! - if (start && (arg_no == 2)) - { - TexOutput("{\\i "); - } - if (!start && (arg_no == 2)) - { - TexOutput("}"); - } - break; - } - case ltMEMBER: - { - if (!start && (arg_no == 1)) - TexOutput(" "); - - if (start && (arg_no == 2)) - currentMember = GetArgChunk(); - break; - } - case ltREF: - { - if (start) - { - char *sec = NULL; - char *secName = NULL; - - char *refName = GetArgData(); - if (winHelp || !useWord) - { - if (refName) - { - TexRef *texRef = FindReference(refName); - if (texRef) - { - sec = texRef->sectionNumber; - secName = texRef->sectionName; - } - } - if (sec) - { - TexOutput(sec); - } - } - else - { - fprintf(Chapters, "{\\field{\\*\\fldinst REF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}", - refName); - } - return FALSE; - } - break; - } - case ltHELPREF: - case ltHELPREFN: - { - if (winHelp) - { - if ((GetNoArgs() - arg_no) == 1) - { - if (start) - TexOutput("{\\uldb "); - else - TexOutput("}"); - } - if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional - { - if (start) - { - TexOutput("{\\v "); - - // Remove green colour/underlining if specified - if (!hotSpotUnderline && !hotSpotColour) - TexOutput("%"); - else if (!hotSpotColour) - TexOutput("*"); - } - else TexOutput("}"); - } - } - else // If a linear document, must resolve the references ourselves - { - if ((GetNoArgs() - arg_no) == 1) - { - // In a linear document we display the anchor text in italic plus - // the page number. - if (start) - TexOutput("{\\i "); - else - TexOutput("}"); - return TRUE; - } - else if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional - { - if (macroId != ltHELPREFN) - { - if (start) - { - TexOutput(" ("); - char *refName = GetArgData(); - if (refName) - { - if (useWord) - { - char *s = GetArgData(); - TexOutput("p. "); - TexOutput("{\\field{\\*\\fldinst PAGEREF "); - TexOutput(refName); - TexOutput(" \\\\* MERGEFORMAT }{\\fldrslt ??}}"); - } - else - { - // Only print section name if we're not in Word mode, - // so can't do page references - TexRef *texRef = FindReference(refName); - if (texRef) - { - TexOutput(texRef->sectionName) ; TexOutput(" "); TexOutput(texRef->sectionNumber); - } - else - { - TexOutput("??"); - sprintf(buf, "Warning: unresolved reference %s.", refName); - OnInform(buf); - } - } - } - else TexOutput("??"); - } - else TexOutput(")"); - } - return FALSE; - } - } - break; - } - case ltURLREF: - { - if (arg_no == 1) - { - return TRUE; - } - else if (arg_no == 2) - { - if (start) - { - inVerbatim = TRUE; - TexOutput(" ({\\f3 "); - } - else - { - TexOutput("})"); - inVerbatim = FALSE; - } - return TRUE; - } - break; - } - case ltPOPREF: - { - if (winHelp) - { - if ((GetNoArgs() - arg_no) == 1) - { - if (start) - TexOutput("{\\ul "); - else - TexOutput("}"); - } - if ((GetNoArgs() - arg_no) == 0) // Arg = 2, or 3 if first is optional - { - if (start) - { - TexOutput("{\\v "); - - // Remove green colour/underlining if specified - if (!hotSpotUnderline && !hotSpotColour) - TexOutput("%"); - else if (!hotSpotColour) - TexOutput("*"); - } - else TexOutput("}"); - } - } - else // A linear document... - { - if ((GetNoArgs() - arg_no) == 1) - { - // In a linear document we just display the anchor text in italic - if (start) - TexOutput("{\\i "); - else - TexOutput("}"); - return TRUE; - } - else return FALSE; - } - break; - } - case ltADDCONTENTSLINE: - { - if (start && !winHelp) - { - if (arg_no == 2) - contentsLineSection = copystring(GetArgData()); - else if (arg_no == 3) - contentsLineValue = copystring(GetArgData()); - return FALSE; - } - else return FALSE; - break; - } - case ltIMAGE: - case ltIMAGEL: - case ltIMAGER: - case ltIMAGEMAP: - case ltPSBOXTO: - { - if (arg_no == 3) - return FALSE; - - static int imageWidth = 0; - static int imageHeight = 0; - - if (start && (arg_no == 1)) - { - char *imageDimensions = copystring(GetArgData()); - char buf1[50]; - strcpy(buf1, imageDimensions); - char *tok1 = strtok(buf1, ";:"); - char *tok2 = strtok(NULL, ";:"); - // Convert points to TWIPS (1 twip = 1/20th of point) - imageWidth = (int)(20*(tok1 ? ParseUnitArgument(tok1) : 0)); - imageHeight = (int)(20*(tok2 ? ParseUnitArgument(tok2) : 0)); - return FALSE; - } - else if (start && (arg_no == 2 )) - { - char *filename = copystring(GetArgData()); - wxString f = ""; - if ((winHelp || (strcmp(bitmapMethod, "includepicture") == 0) || (strcmp(bitmapMethod, "import") == 0)) && useWord) - { - if (f == "") // Try for a .shg (segmented hypergraphics file) - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".shg"); - f = TexPathList.FindValidPath(buf); - } - if (f == "") // Try for a .bmp - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".bmp"); - f = TexPathList.FindValidPath(buf); - } - if (f == "") // Try for a metafile instead - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".wmf"); - f = TexPathList.FindValidPath(buf); - } - if (f != "") - { - if (winHelp) - { - if (bitmapTransparency && (winHelpVersion > 3)) - TexOutput("\\{bmct "); - else - TexOutput("\\{bmc "); - wxString str = wxFileNameFromPath(f); - TexOutput((char*) (const char*) str); - TexOutput("\\}"); - } - else - { - // Microsoft Word method - if (strcmp(bitmapMethod, "import") == 0) - TexOutput("{\\field{\\*\\fldinst IMPORT "); - else - TexOutput("{\\field{\\*\\fldinst INCLUDEPICTURE "); - - // Full path appears not to be valid! - wxString str = wxFileNameFromPath(f); - TexOutput((char*)(const char*) str); -/* - int len = strlen(f); - char smallBuf[2]; smallBuf[1] = 0; - for (int i = 0; i < len; i++) - { - smallBuf[0] = f[i]; - TexOutput(smallBuf); - if (smallBuf[0] == '\\') - TexOutput(smallBuf); - } -*/ - TexOutput("}{\\fldrslt PRESS F9 TO FORMAT PICTURE}}"); - } - } - else - { - TexOutput("[No BMP or WMF for image file "); - TexOutput(filename); - TexOutput("]"); - sprintf(buf, "Warning: could not find a BMP or WMF equivalent for %s.", filename); - OnInform(buf); - } - } - else // linear RTF - { - if (f == "") // Try for a .bmp - { - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".bmp"); - f = TexPathList.FindValidPath(buf); - } - if (f != "") - { - FILE *fd = fopen(f, "rb"); - if (OutputBitmapHeader(fd, winHelp)) - OutputBitmapData(fd); - else - { - sprintf(buf, "Could not read bitmap %s.\nMay be in wrong format (needs RGB-encoded Windows BMP).", (const char*) f); - OnError(buf); - } - fclose(fd); - } - else // Try for a metafile instead - { -#ifdef __WXMSW__ - strcpy(buf, filename); - StripExtension(buf); - strcat(buf, ".wmf"); - f = TexPathList.FindValidPath(buf); - if (f != "") - { - // HFILE handle = _lopen(f, READ); - FILE *fd = fopen(f, "rb"); - if (OutputMetafileHeader(fd, winHelp, imageWidth, imageHeight)) - { - OutputMetafileData(fd); - } - else - { - sprintf(buf, "Could not read metafile %s. Perhaps it's not a placeable metafile?", f); - OnError(buf); - } - fclose(fd); - } - else - { -#endif - TexOutput("[No BMP or WMF for image file "); - TexOutput(filename); - TexOutput("]"); - sprintf(buf, "Warning: could not find a BMP or WMF equivalent for %s.", filename); - OnInform(buf); -#ifdef __WXMSW__ - } -#endif - } - } - return FALSE; - } - else - return FALSE; - break; - } - case ltTABULAR: - case ltSUPERTABULAR: - { - if (arg_no == 1) - { - if (start) - { - currentRowNumber = 0; - inTabular = TRUE; - startRows = TRUE; - tableVerticalLineLeft = FALSE; - tableVerticalLineRight = FALSE; - int currentWidth = 0; - - char *alignString = copystring(GetArgData()); - ParseTableArgument(alignString); - -// TexOutput("\\trowd\\trgaph108\\trleft-108"); - TexOutput("\\trowd\\trgaph108"); - - // Write the first row formatting for compatibility - // with standard Latex - if (compatibilityMode) - { - for (int i = 0; i < noColumns; i++) - { - currentWidth += TableData[i].width; - sprintf(buf, "\\cellx%d", currentWidth); - TexOutput(buf); - } - TexOutput("\\pard\\intbl\n"); - } - delete[] alignString; - - return FALSE; - } - } - else if (arg_no == 2 && !start) - { - TexOutput("\\pard\n"); - WriteEnvironmentStyles(); - inTabular = FALSE; - } - break; - } - - case ltQUOTE: - case ltVERSE: - { - if (start) - { - TexOutput("\\li360\n"); - forbidParindent ++; - PushEnvironmentStyle("\\li360"); - } - else - { - forbidParindent --; - PopEnvironmentStyle(); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - break; - } - case ltQUOTATION: - { - if (start) - { - TexOutput("\\li360\n"); - PushEnvironmentStyle("\\li360"); - } - else - { - PopEnvironmentStyle(); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - break; - } - case ltBOXIT: - case ltFRAMEBOX: - case ltFBOX: - case ltNORMALBOX: - case ltNORMALBOXD: - { - if (start) - { - sprintf(buf, "\\box\\trgaph108%s\n", ((macroId == ltNORMALBOXD) ? "\\brdrdb" : "\\brdrs")); - TexOutput(buf); - PushEnvironmentStyle(buf); - } - else - { - PopEnvironmentStyle(); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - break; - } - case ltHELPFONTSIZE: - { - if (start) - { - char *data = GetArgData(); - if (strcmp(data, "10") == 0) - SetFontSizes(10); - else if (strcmp(data, "11") == 0) - SetFontSizes(11); - else if (strcmp(data, "12") == 0) - SetFontSizes(12); - sprintf(buf, "\\fs%d\n", normalFont*2); - TexOutput(buf); - TexOutput(buf); - return FALSE; - } - break; - } - case ltHELPFONTFAMILY: - { - if (start) - { - char *data = GetArgData(); - if (strcmp(data, "Swiss") == 0) - TexOutput("\\f2\n"); - else if (strcmp(data, "Symbol") == 0) - TexOutput("\\f1\n"); - else if (strcmp(data, "Times") == 0) - TexOutput("\\f0\n"); - - return FALSE; - } - break; - } - case ltPARINDENT: - { - if (start && arg_no == 1) - { - char *data = GetArgData(); - ParIndent = ParseUnitArgument(data); - if (ParIndent == 0 || forbidParindent == 0) - { - sprintf(buf, "\\fi%d\n", ParIndent*20); - TexOutput(buf); - } - return FALSE; - } - break; - } - case ltITEM: - { - if (start && IsArgOptional()) - { - descriptionItemArg = GetArgChunk(); - return FALSE; - } - break; - } - case ltTWOCOLITEM: - case ltTWOCOLITEMRULED: - { - switch (arg_no) - { - case 1: - { - if (!start) - TexOutput("\\tab "); - break; - } - case 2: - { - if (!start) - { - if (macroId == ltTWOCOLITEMRULED) - TexOutput("\\brdrb\\brdrs\\brdrw15\\brsp20 "); - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - WriteEnvironmentStyles(); - } - break; - } - } - return TRUE; - break; - } - /* - * Accents - * - */ - case ltACCENT_GRAVE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("\\'e0"); - break; - case 'e': - TexOutput("\\'e8"); - break; - case 'i': - TexOutput("\\'ec"); - break; - case 'o': - TexOutput("\\'f2"); - break; - case 'u': - TexOutput("\\'f9"); - break; - case 'A': - TexOutput("\\'c0"); - break; - case 'E': - TexOutput("\\'c8"); - break; - case 'I': - TexOutput("\\'cc"); - break; - case 'O': - TexOutput("\\'d2"); - break; - case 'U': - TexOutput("\\'d9"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_ACUTE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("\\'e1"); - break; - case 'e': - TexOutput("\\'e9"); - break; - case 'i': - TexOutput("\\'ed"); - break; - case 'o': - TexOutput("\\'f3"); - break; - case 'u': - TexOutput("\\'fa"); - break; - case 'y': - TexOutput("\\'fd"); - break; - case 'A': - TexOutput("\\'c1"); - break; - case 'E': - TexOutput("\\'c9"); - break; - case 'I': - TexOutput("\\'cd"); - break; - case 'O': - TexOutput("\\'d3"); - break; - case 'U': - TexOutput("\\'da"); - break; - case 'Y': - TexOutput("\\'dd"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_CARET: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("\\'e2"); - break; - case 'e': - TexOutput("\\'ea"); - break; - case 'i': - TexOutput("\\'ee"); - break; - case 'o': - TexOutput("\\'f4"); - break; - case 'u': - TexOutput("\\'fb"); - break; - case 'A': - TexOutput("\\'c2"); - break; - case 'E': - TexOutput("\\'ca"); - break; - case 'I': - TexOutput("\\'ce"); - break; - case 'O': - TexOutput("\\'d4"); - break; - case 'U': - TexOutput("\\'db"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_TILDE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("\\'e3"); - break; - case ' ': - TexOutput("~"); - break; - case 'n': - TexOutput("\\'f1"); - break; - case 'o': - TexOutput("\\'f5"); - break; - case 'A': - TexOutput("\\'c3"); - break; - case 'N': - TexOutput("\\'d1"); - break; - case 'O': - TexOutput("\\'d5"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_UMLAUT: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("\\'e4"); - break; - case 'e': - TexOutput("\\'eb"); - break; - case 'i': - TexOutput("\\'ef"); - break; - case 'o': - TexOutput("\\'f6"); - break; - case 'u': - TexOutput("\\'fc"); - break; - case 's': - TexOutput("\\'df"); - break; - case 'y': - TexOutput("\\'ff"); - break; - case 'A': - TexOutput("\\'c4"); - break; - case 'E': - TexOutput("\\'cb"); - break; - case 'I': - TexOutput("\\'cf"); - break; - case 'O': - TexOutput("\\'d6"); - break; - case 'U': - TexOutput("\\'dc"); - break; - case 'Y': - TexOutput("\\'df"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_DOT: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("\\'e5"); - break; - case 'A': - TexOutput("\\'c5"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_CADILLA: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'c': - TexOutput("\\'e7"); - break; - case 'C': - TexOutput("\\'c7"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltFOOTNOTE: - { - static char *helpTopic = NULL; - static FILE *savedOutput = NULL; - if (winHelp) - { - if (arg_no == 1) - { - if (start) - { - OnInform("Consider using \\footnotepopup instead of \\footnote."); - footnoteCount ++; - char footBuf[20]; - sprintf(footBuf, "(%d)", footnoteCount); - - TexOutput(" {\\ul "); - TexOutput(footBuf); - TexOutput("}"); - helpTopic = FindTopicName(NULL); - TexOutput("{\\v "); - - // Remove green colour/underlining if specified - if (!hotSpotUnderline && !hotSpotColour) - TexOutput("%"); - else if (!hotSpotColour) - TexOutput("*"); - - TexOutput(helpTopic); - TexOutput("}"); - - fprintf(Popups, "\\page\n"); -// fprintf(Popups, "\n${\\footnote }"); // No title - fprintf(Popups, "\n#{\\footnote %s}\n", helpTopic); - fprintf(Popups, "+{\\footnote %s}\n", GetBrowseString()); - savedOutput = CurrentOutput1; - SetCurrentOutput(Popups); - } - else - { - SetCurrentOutput(savedOutput); - } - return TRUE; - } - return TRUE; - } - else - { - if (start) - { - TexOutput(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}", TRUE); - } - else - { - TexOutput("}}", TRUE); - } - return TRUE; - } - break; - } - case ltFOOTNOTEPOPUP: - { - static char *helpTopic = NULL; - static FILE *savedOutput = NULL; - if (winHelp) - { - if (arg_no == 1) - { - if (start) - { - TexOutput("{\\ul "); - } - else TexOutput("}"); - return TRUE; - } - else if (arg_no == 2) - { - if (start) - { - helpTopic = FindTopicName(NULL); - TexOutput("{\\v "); - - // Remove green colour/underlining if specified - if (!hotSpotUnderline && !hotSpotColour) - TexOutput("%"); - else if (!hotSpotColour) - TexOutput("*"); - - TexOutput(helpTopic); - TexOutput("}"); - - fprintf(Popups, "\\page\n"); -// fprintf(Popups, "\n${\\footnote }"); // No title - fprintf(Popups, "\n#{\\footnote %s}\n", helpTopic); - fprintf(Popups, "+{\\footnote %s}\n", GetBrowseString()); - savedOutput = CurrentOutput1; - SetCurrentOutput(Popups); - } - else - { - SetCurrentOutput(savedOutput); - } - return TRUE; - } - } - else - { - if (arg_no == 1) - return TRUE; - if (start) - { - TexOutput(" {\\super \\chftn{\\footnote \\fs20 {\\super \\chftn}", TRUE); - } - else - { - TexOutput("}}", TRUE); - } - return TRUE; - } - break; - } - case ltFANCYPLAIN: - { - if (start && (arg_no == 1)) - return FALSE; - else - return TRUE; - break; - } - case ltSETHEADER: - { - if (start) - forbidResetPar ++; - else - forbidResetPar --; - - if (winHelp) return FALSE; - if (start) - { - switch (arg_no) - { - case 1: - LeftHeaderEven = GetArgChunk(); - if (strlen(GetArgData(LeftHeaderEven)) == 0) - LeftHeaderEven = NULL; - break; - case 2: - CentreHeaderEven = GetArgChunk(); - if (strlen(GetArgData(CentreHeaderEven)) == 0) - CentreHeaderEven = NULL; - break; - case 3: - RightHeaderEven = GetArgChunk(); - if (strlen(GetArgData(RightHeaderEven)) == 0) - RightHeaderEven = NULL; - break; - case 4: - LeftHeaderOdd = GetArgChunk(); - if (strlen(GetArgData(LeftHeaderOdd)) == 0) - LeftHeaderOdd = NULL; - break; - case 5: - CentreHeaderOdd = GetArgChunk(); - if (strlen(GetArgData(CentreHeaderOdd)) == 0) - CentreHeaderOdd = NULL; - break; - case 6: - RightHeaderOdd = GetArgChunk(); - if (strlen(GetArgData(RightHeaderOdd)) == 0) - RightHeaderOdd = NULL; - OutputRTFHeaderCommands(); - break; - default: - break; - } - } - return FALSE; - break; - } - case ltSETFOOTER: - { - if (start) - forbidResetPar ++; - else - forbidResetPar --; - - if (winHelp) return FALSE; - if (start) - { - switch (arg_no) - { - case 1: - LeftFooterEven = GetArgChunk(); - if (strlen(GetArgData(LeftFooterEven)) == 0) - LeftFooterEven = NULL; - break; - case 2: - CentreFooterEven = GetArgChunk(); - if (strlen(GetArgData(CentreFooterEven)) == 0) - CentreFooterEven = NULL; - break; - case 3: - RightFooterEven = GetArgChunk(); - if (strlen(GetArgData(RightFooterEven)) == 0) - RightFooterEven = NULL; - break; - case 4: - LeftFooterOdd = GetArgChunk(); - if (strlen(GetArgData(LeftFooterOdd)) == 0) - LeftFooterOdd = NULL; - break; - case 5: - CentreFooterOdd = GetArgChunk(); - if (strlen(GetArgData(CentreFooterOdd)) == 0) - CentreFooterOdd = NULL; - break; - case 6: - RightFooterOdd = GetArgChunk(); - if (strlen(GetArgData(RightFooterOdd)) == 0) - RightFooterOdd = NULL; - OutputRTFFooterCommands(); - break; - default: - break; - } - } - return FALSE; - break; - } - case ltMARKRIGHT: - { - if (winHelp) return FALSE; - // Fake a SetHeader command - if (start) - { - LeftHeaderOdd = NULL; - CentreHeaderOdd = NULL; - RightHeaderOdd = NULL; - LeftHeaderEven = NULL; - CentreHeaderEven = NULL; - RightHeaderEven = NULL; - OnInform("Consider using setheader/setfooter rather than markright."); - } - RTFOnArgument(ltSETHEADER, 4, start); - if (!start) - OutputRTFHeaderCommands(); - return FALSE; - break; - } - case ltMARKBOTH: - { - if (winHelp) return FALSE; - // Fake a SetHeader command - switch (arg_no) - { - case 1: - { - if (start) - { - LeftHeaderOdd = NULL; - CentreHeaderOdd = NULL; - RightHeaderOdd = NULL; - LeftHeaderEven = NULL; - CentreHeaderEven = NULL; - RightHeaderEven = NULL; - OnInform("Consider using setheader/setfooter rather than markboth."); - } - return RTFOnArgument(ltSETHEADER, 1, start); - break; - } - case 2: - { - RTFOnArgument(ltSETHEADER, 4, start); - if (!start) - OutputRTFHeaderCommands(); - return FALSE; - break; - } - } - break; - } - case ltPAGENUMBERING: - { - if (start) - forbidResetPar ++; - else - forbidResetPar --; - - if (winHelp) return FALSE; - if (start) - { - TexOutput("\\pgnrestart"); - char *data = GetArgData(); - if (currentNumberStyle) delete[] currentNumberStyle; - currentNumberStyle = copystring(data); - OutputNumberStyle(currentNumberStyle); - - TexOutput("\n"); - } - return FALSE; - break; - } - case ltTWOCOLUMN: - { - if (winHelp) return FALSE; - if (start) - return TRUE; - break; - } - case ltITEMSEP: - { - if (start) - { - char *val = GetArgData(); - currentItemSep = ParseUnitArgument(val); - return FALSE; - } - break; - } - case ltEVENSIDEMARGIN: - { - return FALSE; - break; - } - case ltODDSIDEMARGIN: - { - if (start) - { - char *val = GetArgData(); - int twips = (int)(20*ParseUnitArgument(val)); - // Add an inch since in LaTeX it's specified minus an inch - twips += 1440; - CurrentLeftMarginOdd = twips; - sprintf(buf, "\\margl%d\n", twips); - TexOutput(buf); - - CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep; - } - return FALSE; - } - case ltMARGINPARWIDTH: - { - if (start) - { - char *val = GetArgData(); - int twips = (int)(20*ParseUnitArgument(val)); - CurrentMarginParWidth = twips; - } - return FALSE; - } - case ltMARGINPARSEP: - { - if (start) - { - char *val = GetArgData(); - int twips = (int)(20*ParseUnitArgument(val)); - CurrentMarginParSep = twips; - CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep; - } - return FALSE; - } - case ltTEXTWIDTH: - { - if (start) - { - char *val = GetArgData(); - int twips = (int)(20*ParseUnitArgument(val)); - CurrentTextWidth = twips; - - // Need to set an implicit right margin - CurrentRightMarginOdd = PageWidth - CurrentTextWidth - CurrentLeftMarginOdd; - CurrentRightMarginEven = PageWidth - CurrentTextWidth - CurrentLeftMarginEven; - CurrentMarginParX = CurrentLeftMarginOdd + CurrentTextWidth + CurrentMarginParSep; - sprintf(buf, "\\margr%d\n", CurrentRightMarginOdd); - TexOutput(buf); - } - return FALSE; - } - case ltMARGINPAR: - case ltMARGINPARODD: - { - if (start) - { - if (winHelp) - { - TexOutput("\\box\n"); - PushEnvironmentStyle("\\box"); - } - else - { - sprintf(buf, "\\phpg\\posx%d\\absw%d\n", CurrentMarginParX, CurrentMarginParWidth); - TexOutput(buf); - } - return TRUE; - } - else - { - if (winHelp) - { - TexOutput("\\par\\pard\n"); - PopEnvironmentStyle(); - WriteEnvironmentStyles(); - } - else - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - } - return FALSE; - } - case ltMARGINPAREVEN: - { - if (start) - { - if (winHelp) - { - TexOutput("\\box\n"); - PushEnvironmentStyle("\\box"); - } - else - { - if (mirrorMargins) - { - // Have to calculate what the margins are changed to in WfW margin - // mirror mode, on an even (left-hand) page. - int x = PageWidth - CurrentRightMarginOdd - CurrentMarginParWidth - CurrentMarginParSep - - CurrentTextWidth + GutterWidth; - sprintf(buf, "\\phpg\\posx%d\\absw%d\n", x, CurrentMarginParWidth); - TexOutput(buf); - } - else - { - sprintf(buf, "\\phpg\\posx%d\\absw%d\n", CurrentMarginParX, CurrentMarginParWidth); - TexOutput(buf); - } - } - return TRUE; - } - else - { - if (winHelp) - { - TexOutput("\\par\\pard\n"); - PopEnvironmentStyle(); - WriteEnvironmentStyles(); - } - else - issuedNewParagraph = 1; - TexOutput("\\par\\pard\n"); - } - return FALSE; - } - case ltTWOCOLWIDTHA: - { - if (start) - { - char *val = GetArgData(); - int twips = (int)(20*ParseUnitArgument(val)); - TwoColWidthA = twips; - } - return FALSE; - break; - } - case ltTWOCOLWIDTHB: - { - if (start) - { - char *val = GetArgData(); - int twips = (int)(20*ParseUnitArgument(val)); - TwoColWidthB = twips; - } - return FALSE; - break; - } - case ltROW: - case ltRULEDROW: - { - if (start) - { - int currentWidth = 0; - - if (!compatibilityMode || (currentRowNumber > 0)) - { - TexOutput("\\pard\\intbl"); - - if (macroId == ltRULEDROW) - ruleBottom = 1; - for (int i = 0; i < noColumns; i++) - { - currentWidth += TableData[i].width; - if (ruleTop == 1) - { - TexOutput("\\clbrdrt\\brdrs\\brdrw15"); - } - else if (ruleTop > 1) - { - TexOutput("\\clbrdrt\\brdrdb\\brdrw15"); - } - if (ruleBottom == 1) - { - TexOutput("\\clbrdrb\\brdrs\\brdrw15"); - } - else if (ruleBottom > 1) - { - TexOutput("\\clbrdrb\\brdrdb\\brdrw15"); - } - - if (TableData[i].rightBorder) - TexOutput("\\clbrdrr\\brdrs\\brdrw15"); - - if (TableData[i].leftBorder) - TexOutput("\\clbrdrl\\brdrs\\brdrw15"); - - sprintf(buf, "\\cellx%d", currentWidth); - TexOutput(buf); - } - TexOutput("\\pard\\intbl\n"); - } - ruleTop = 0; - ruleBottom = 0; - currentRowNumber ++; - return TRUE; - } - else - { -// TexOutput("\\cell\\row\\trowd\\trgaph108\\trleft-108\n"); - TexOutput("\\cell\\row\\trowd\\trgaph108\n"); - } - break; - } - case ltMULTICOLUMN: - { - static int noMultiColumns = 0; - if (start) - { - switch (arg_no) - { - case 1: - { - noMultiColumns = atoi(GetArgData()); - return FALSE; - break; - } - case 2: - { - return FALSE; - } - case 3: - { - return TRUE; - } - } - } - else - { - if (arg_no == 3) - { - for (int i = 1; i < noMultiColumns; i ++) - TexOutput("\\cell"); - } - } - break; - } - case ltINDENTED: - { - if (start && (arg_no == 1)) - { -// indentLevel ++; -// TexOutput("\\fi0\n"); - int oldIndent = 0; - wxNode *node = itemizeStack.First(); - if (node) - oldIndent = ((ItemizeStruc *)node->Data())->indentation; - - int indentValue = 20*ParseUnitArgument(GetArgData()); - int indentSize = indentValue + oldIndent; - - ItemizeStruc *struc = new ItemizeStruc(LATEX_INDENT, indentSize); - itemizeStack.Insert(struc); - - sprintf(buf, "\\tx%d\\li%d ", indentSize, indentSize); - PushEnvironmentStyle(buf); - TexOutput(buf); - return FALSE; - } - if (!start && (arg_no == 2)) - { - PopEnvironmentStyle(); - if (itemizeStack.First()) - { - ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.First()->Data(); - delete struc; - delete itemizeStack.First(); - } - if (itemizeStack.Number() == 0) - { - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - WriteEnvironmentStyles(); - } - } - return TRUE; - break; - } -/* - case ltSIZEDBOX: - case ltSIZEDBOXD: - { - if (start && (arg_no == 1)) - { - int oldIndent = 0; - wxNode *node = itemizeStack.First(); - if (node) - oldIndent = ((ItemizeStruc *)node->Data())->indentation; - - int boxWidth = 20*ParseUnitArgument(GetArgData()); - - int indentValue = (int)((CurrentTextWidth - oldIndent - boxWidth)/2.0); - int indentSize = indentValue + oldIndent; - int indentSizeRight = indentSize + boxWidth; - - ItemizeStruc *struc = new ItemizeStruc(LATEX_INDENT, indentSize); - itemizeStack.Insert(struc); - - sprintf(buf, "\\tx%d\\li%d\\lr%d\\box%s ", indentSize, indentSize, indentSizeRight, - ((macroId == ltCENTEREDBOX) ? "\\brdrs" : "\\brdrdb")); - PushEnvironmentStyle(buf); - TexOutput(buf); - return FALSE; - } - if (!start && (arg_no == 2)) - { - PopEnvironmentStyle(); - if (itemizeStack.First()) - { - ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.First()->Data(); - delete struc; - delete itemizeStack.First(); - } - if (itemizeStack.Number() == 0) - { - TexOutput("\\par\\pard\n"); - issuedNewParagraph = 1; - WriteEnvironmentStyles(); - } - } - return TRUE; - break; - } -*/ - case ltDOCUMENTSTYLE: - { - DefaultOnArgument(macroId, arg_no, start); - if (!start && !IsArgOptional()) - { - if (MinorDocumentStyleString) - { - if (StringMatch("twoside", MinorDocumentStyleString)) - // Mirror margins, switch on odd/even headers & footers, and break sections at odd pages - TexOutput("\\margmirror\\facingp\\sbkodd"); - if (StringMatch("twocolumn", MinorDocumentStyleString)) - TexOutput("\\cols2"); - } - TexOutput("\n"); - } - return FALSE; - } - case ltSETHOTSPOTCOLOUR: - case ltSETHOTSPOTCOLOR: - { - if (!start) - { - char *text = GetArgData(); - if (strcmp(text, "yes") == 0 || strcmp(text, "on") == 0 || strcmp(text, "ok") == 0) - hotSpotColour = TRUE; - else - hotSpotColour = FALSE; - } - return FALSE; - } - case ltSETTRANSPARENCY: - { - if (!start) - { - char *text = GetArgData(); - if (strcmp(text, "yes") == 0 || strcmp(text, "on") == 0 || strcmp(text, "ok") == 0) - bitmapTransparency = TRUE; - else - bitmapTransparency = FALSE; - } - return FALSE; - } - case ltSETHOTSPOTUNDERLINE: - { - if (!start) - { - char *text = GetArgData(); - if (strcmp(text, "yes") == 0 || strcmp(text, "on") == 0 || strcmp(text, "ok") == 0) - hotSpotUnderline = TRUE; - else - hotSpotUnderline = FALSE; - } - return FALSE; - } - case ltBIBITEM: - { - if (arg_no == 1 && start) - { - char *citeKey = GetArgData(); - TexRef *ref = (TexRef *)TexReferences.Get(citeKey); - if (ref) - { - if (ref->sectionNumber) delete[] ref->sectionNumber; - sprintf(buf, "[%d]", citeCount); - ref->sectionNumber = copystring(buf); - } - - TexOutput("\\li260\\fi-260 "); // Indent from 2nd line - sprintf(buf, "{\\b [%d]} ", citeCount); - TexOutput(buf); - citeCount ++; - return FALSE; - } - if (arg_no == 2 && !start) - TexOutput("\\par\\pard\\par\n\n"); - return TRUE; - break; - } - case ltTHEBIBLIOGRAPHY: - { - if (start && (arg_no == 1)) - { - citeCount = 1; - if (winHelp) - SetCurrentOutputs(Contents, Chapters); - - if (!winHelp) - { - fprintf(Chapters, "\\sect\\pgncont\\titlepg\n"); - - // If a non-custom page style, we generate the header now. - if (PageStyle && (strcmp(PageStyle, "plain") == 0 || - strcmp(PageStyle, "empty") == 0 || - strcmp(PageStyle, "headings") == 0)) - { - OutputRTFHeaderCommands(); - OutputRTFFooterCommands(); - } - - // Need to reset the current numbering style, or RTF forgets it. - OutputNumberStyle(currentNumberStyle); - SetCurrentOutput(Contents); - } - else - fprintf(Chapters, "\\page\n"); - - if (winHelp) - fprintf(Contents, "\n{\\uldb %s}", ReferencesNameString); - else - fprintf(Contents, "\\par\n\\pard{\\b %s}", ReferencesNameString); - - startedSections = TRUE; - - if (winHelp) - fprintf(Chapters, "\n${\\footnote %s}", ReferencesNameString); - - char *topicName = "bibliography"; - - if (winHelp) - fprintf(Contents, "{\\v %s}\\par\\pard\n", topicName); - else - fprintf(Contents, "\\par\\par\\pard\n"); - - if (winHelp) - { - fprintf(Chapters, "\n#{\\footnote %s}\n", topicName); - fprintf(Chapters, "+{\\footnote %s}\n", GetBrowseString()); - fprintf(Chapters, "K{\\footnote {K} %s}\n", ReferencesNameString); - GenerateKeywordsForTopic(topicName); - if (useUpButton) - { - fprintf(Chapters, "!{\\footnote EnableButton(\"Up\");ChangeButtonBinding(\"Up\", \"JumpId(`%s.hlp', `%s')\")}\n", - FileNameFromPath(FileRoot), "Contents"); - } - } - - SetCurrentOutput(Chapters); - char *styleCommand = ""; - if (!winHelp && useHeadingStyles) - styleCommand = "\\s1"; - fprintf(Chapters, "\\pard{%s", (winHelp ? "\\keepn\\sa140\\sb140" : styleCommand)); - WriteHeadingStyle(Chapters, 1); fprintf(Chapters, " References\\par\\pard}\n"); - - return FALSE; - } - return TRUE; - break; - } - case ltINDEX: - { - /* - * In Windows help, all keywords should be at the start of the - * topic, but Latex \index commands can be anywhere in the text. - * So we're going to have to build up lists of keywords for a topic, - * and insert them on the second pass. - * - * In linear RTF, we can embed the index entry now. - * - */ - if (start) - { -// char *entry = GetArgData(); - char buf[300]; - OutputChunkToString(GetArgChunk(), buf); - if (winHelp) - { - if (CurrentTopic) - { - AddKeyWordForTopic(CurrentTopic, buf); - } - } - else GenerateIndexEntry(buf); - } - return FALSE; - break; - } - case ltFCOL: - case ltBCOL: - { - if (start) - { - switch (arg_no) - { - case 1: - { - char *name = GetArgData(); - int pos = FindColourPosition(name); - if (pos > -1) - { - sprintf(buf, "{%s%d ", ((macroId == ltFCOL) ? "\\cf" : "\\cb"), pos); - TexOutput(buf); - } - else - { - sprintf(buf, "Could not find colour name %s", name); - OnError(buf); - } - break; - } - case 2: - { - return TRUE; - break; - } - default: - break; - } - } - else - { - if (arg_no == 2) TexOutput("}"); - } - return FALSE; - break; - } - case ltLABEL: - { - if (start && !winHelp && useWord) - { - char *s = GetArgData(); - // Only insert a bookmark here if it's not just been inserted - // in a section heading. - if ( !CurrentTopic || !(strcmp(CurrentTopic, s) == 0) ) -/* - if ( (!CurrentChapterName || !(CurrentChapterName && (strcmp(CurrentChapterName, s) == 0))) && - (!CurrentSectionName || !(CurrentSectionName && (strcmp(CurrentSectionName, s) == 0))) && - (!CurrentSubsectionName || !(CurrentSubsectionName && (strcmp(CurrentSubsectionName, s) == 0))) - ) -*/ - { - fprintf(Chapters, "{\\bkmkstart %s}{\\bkmkend %s}", s,s); - } - } - return FALSE; - break; - } - case ltPAGEREF: - { - if (start && useWord && !winHelp) - { - char *s = GetArgData(); - fprintf(Chapters, "{\\field{\\*\\fldinst PAGEREF %s \\\\* MERGEFORMAT }{\\fldrslt ??}}", - s); - } - return FALSE; - break; - } - case ltPOPREFONLY: - { - if (start) - inPopRefSection = TRUE; - else - inPopRefSection = FALSE; - break; - } - case ltINSERTATLEVEL: - { - // This macro allows you to insert text at a different level - // from the current level, e.g. into the Sections from within a subsubsection. - if (!winHelp & useWord) - return FALSE; - static int currentLevelNo = 1; - static FILE* oldLevelFile = Chapters; - if (start) - { - switch (arg_no) - { - case 1: - { - oldLevelFile = CurrentOutput1; - - char *str = GetArgData(); - currentLevelNo = atoi(str); - FILE* outputFile; - // TODO: cope with article style (no chapters) - switch (currentLevelNo) - { - case 1: - { - outputFile = Chapters; - break; - } - case 2: - { - outputFile = Sections; - break; - } - case 3: - { - outputFile = Subsections; - break; - } - case 4: - { - outputFile = Subsubsections; - break; - } - default: - { - outputFile = NULL; - break; - } - } - if (outputFile) - CurrentOutput1 = outputFile; - return FALSE; - break; - } - case 2: - { - return TRUE; - break; - } - default: - break; - } - return TRUE; - } - else - { - if (arg_no == 2) - { - CurrentOutput1 = oldLevelFile; - } - return TRUE; - } - break; - } - default: - { - return DefaultOnArgument(macroId, arg_no, start); - break; - } - } - return TRUE; -} - -bool RTFGo(void) -{ - // Reset variables - indentLevel = 0; - forbidParindent = 0; - contentsLineSection = NULL; - contentsLineValue = NULL; - descriptionItemArg = NULL; - inTabular = FALSE; - inTable = FALSE; - inFigure = FALSE; - startRows = FALSE; - tableVerticalLineLeft = FALSE; - tableVerticalLineRight = FALSE; - noColumns = 0; - startedSections = FALSE; - inVerbatim = FALSE; - browseId = 0; - - if (InputFile && OutputFile) - { - // Do some RTF-specific transformations on all the strings, - // recursively - Text2RTF(GetTopLevelChunk()); - - Contents = fopen(TmpContentsName, "w"); - Chapters = fopen("chapters.rtf", "w"); - if (winHelp) - { - Sections = fopen("sections.rtf", "w"); - Subsections = fopen("subsections.rtf", "w"); - Subsubsections = fopen("subsubsections.rtf", "w"); - Popups = fopen("popups.rtf", "w"); - if (winHelpContents) - { - WinHelpContentsFile = fopen(WinHelpContentsFileName, "w"); - if (WinHelpContentsFile) - fprintf(WinHelpContentsFile, ":Base %s.hlp\n", wxFileNameFromPath(FileRoot)); - } - - if (!Sections || !Subsections || !Subsubsections || !Popups || (winHelpContents && !WinHelpContentsFile)) - { - OnError("Ouch! Could not open temporary file(s) for writing."); - return FALSE; - } - } - if (!Contents || !Chapters) - { - OnError("Ouch! Could not open temporary file(s) for writing."); - return FALSE; - } - - if (winHelp) - { - fprintf(Chapters, "\n#{\\footnote Contents}\n"); - fprintf(Chapters, "${\\footnote Contents}\n"); - fprintf(Chapters, "+{\\footnote %s}\n", GetBrowseString()); - fprintf(Chapters, "K{\\footnote {K} %s}\n", ContentsNameString); - fprintf(Chapters, "!{\\footnote DisableButton(\"Up\")}\n"); - } - if (!winHelp) - { - fprintf(Chapters, "\\titlepg\n"); - fprintf(Contents, "\\par\\pard\\pgnrestart\\sect\\titlepg"); - } - - // In WinHelp, Contents title takes font of title. - // In linear RTF, same as chapter headings. - fprintf(Contents, "{\\b\\fs%d %s}\\par\\par\\pard\n\n", - (winHelp ? titleFont : chapterFont)*2, ContentsNameString); - - // By default, Swiss, 10 point. - fprintf(Chapters, "\\f2\\fs20\n"); - - SetCurrentOutput(Chapters); - - OnInform("Converting..."); - - TraverseDocument(); - - FILE *Header = fopen("header.rtf", "w"); - if (!Header) - { - OnError("Ouch! Could not open temporary file header.rtf for writing."); - return FALSE; - } - WriteRTFHeader(Header); - fclose(Header); Header = NULL; - - Tex2RTFYield(TRUE); - if (winHelp) - { -// fprintf(Contents, "\\page\n"); - fprintf(Chapters, "\\page\n"); - fprintf(Sections, "\\page\n"); - fprintf(Subsections, "\\page\n"); - fprintf(Subsubsections, "\\page\n\n"); - fprintf(Popups, "\\page\n}\n"); - } - -// TexOutput("\n\\info{\\doccomm Document created by Julian Smart's Tex2RTF.}\n"); - if (!winHelp) - TexOutput("}\n"); - fclose(Contents); Contents = NULL; - fclose(Chapters); Chapters = NULL; - if (winHelp) - { - fclose(Sections); Sections = NULL; - fclose(Subsections); Subsections = NULL; - fclose(Subsubsections); Subsubsections = NULL; - fclose(Popups); Popups = NULL; - if (winHelpContents) - { - fclose(WinHelpContentsFile); WinHelpContentsFile = NULL; - } - } - - if (winHelp) - { - wxConcatFiles("header.rtf", "chapters.rtf", "tmp1.rtf"); - Tex2RTFYield(TRUE); - wxConcatFiles("tmp1.rtf", "sections.rtf", "tmp2.rtf"); - Tex2RTFYield(TRUE); - wxConcatFiles("tmp2.rtf", "subsections.rtf", "tmp3.rtf"); - Tex2RTFYield(TRUE); - wxConcatFiles("tmp3.rtf", "subsubsections.rtf", "tmp4.rtf"); - Tex2RTFYield(TRUE); - wxConcatFiles("tmp4.rtf", "popups.rtf", OutputFile); - Tex2RTFYield(TRUE); - - wxRemoveFile("tmp1.rtf"); - wxRemoveFile("tmp2.rtf"); - wxRemoveFile("tmp3.rtf"); - wxRemoveFile("tmp4.rtf"); - } - else - { - wxConcatFiles("header.rtf", "chapters.rtf", "tmp1.rtf"); - Tex2RTFYield(TRUE); - if (FileExists(OutputFile)) wxRemoveFile(OutputFile); - wxCopyFile("tmp1.rtf", OutputFile); - Tex2RTFYield(TRUE); - wxRemoveFile("tmp1.rtf"); - } - - if (FileExists(ContentsName)) wxRemoveFile(ContentsName); - - if (!wxRenameFile(TmpContentsName, ContentsName)) - { - wxCopyFile(TmpContentsName, ContentsName); - wxRemoveFile(TmpContentsName); - } - - wxRemoveFile("chapters.rtf"); - wxRemoveFile("header.rtf"); - - if (winHelp) - { - wxRemoveFile("sections.rtf"); - wxRemoveFile("subsections.rtf"); - wxRemoveFile("subsubsections.rtf"); - wxRemoveFile("popups.rtf"); - } - if (winHelp && generateHPJ) - WriteHPJ(OutputFile); - return TRUE; - } - return FALSE; -} diff --git a/utils/tex2rtf/src/rtfutils.h b/utils/tex2rtf/src/rtfutils.h deleted file mode 100644 index 9f2cf955db..0000000000 --- a/utils/tex2rtf/src/rtfutils.h +++ /dev/null @@ -1,60 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: rtfutils.h -// Purpose: RTF-specific code -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - /* - * Write a suitable RTF header. - * - */ - -void WriteRTFHeader(FILE *fd); - -/* - * Given a TexChunk with a string value, scans through the string - * converting Latex-isms into RTF-isms, such as 2 newlines -> \par, - * and inserting spaces at the start of lines since in Latex, a newline - * implies a space, but not in RTF. - * - */ - -void ProcessText2RTF(TexChunk *chunk); - -/* - * Scan through all chunks starting from the given one, - * calling ProcessText2RTF to convert Latex-isms to RTF-isms. - * This should be called after Tex2Any has parsed the file, - * and before TraverseDocument is called. - * - */ - -void Text2RTF(TexChunk *chunk); - - -/* - * Keeping track of environments to restore the styles after \pard. - * Push strings like "\qc" onto stack. - * - */ - -void PushEnvironmentStyle(char *style); - -void PopEnvironmentStyle(void); - -// Write out the styles, most recent first. -void WriteEnvironmentStyles(void); - -// Called on start/end of macro examination -void DefaultRtfOnMacro(char *name, int no_args, bool start); - -// Called on start/end of argument examination -bool DefaultRtfOnArgument(char *macro_name, int arg_no, bool start); - -// Reset memory of which levels have 'books' (for WinHelp 4 contents file) -void ResetContentsLevels(int level); diff --git a/utils/tex2rtf/src/table.cpp b/utils/tex2rtf/src/table.cpp deleted file mode 100644 index 4dc88ee028..0000000000 --- a/utils/tex2rtf/src/table.cpp +++ /dev/null @@ -1,156 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: table.cpp -// Purpose: Utilities for manipulating tables -// Author: Julian Smart -// Modified by: -// Created: 01/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - - -#include - -#if wxUSE_IOSTREAMH -#include -#include -#else -#include -#include -#endif - -#include -#include "tex2any.h" -#include "table.h" - -ColumnData TableData[40]; -bool inTabular = FALSE; - -bool startRows = FALSE; -bool tableVerticalLineLeft = FALSE; -bool tableVerticalLineRight = FALSE; -int noColumns = 0; // Current number of columns in table -int ruleTop = 0; -int ruleBottom = 0; -int currentRowNumber = 0; - -/* - * Parse table argument - * - */ - -bool ParseTableArgument(char *value) -{ - noColumns = 0; - int i = 0; - int len = strlen(value); - bool isBorder = FALSE; - while (i < len) - { - int ch = value[i]; - if (ch == '|') - { - i ++; - isBorder = TRUE; - } - else if (ch == 'l') - { - TableData[noColumns].leftBorder = isBorder; - TableData[noColumns].rightBorder = FALSE; - TableData[noColumns].justification = 'l'; - TableData[noColumns].width = 2000; // Estimate - TableData[noColumns].absWidth = FALSE; -// TableData[noColumns].spacing = ?? - noColumns ++; - i ++; - isBorder = FALSE; - } - else if (ch == 'c') - { - TableData[noColumns].leftBorder = isBorder; - TableData[noColumns].rightBorder = FALSE; - TableData[noColumns].justification = 'c'; - TableData[noColumns].width = defaultTableColumnWidth; // Estimate - TableData[noColumns].absWidth = FALSE; -// TableData[noColumns].spacing = ?? - noColumns ++; - i ++; - isBorder = FALSE; - } - else if (ch == 'r') - { - TableData[noColumns].leftBorder = isBorder; - TableData[noColumns].rightBorder = FALSE; - TableData[noColumns].justification = 'r'; - TableData[noColumns].width = 2000; // Estimate - TableData[noColumns].absWidth = FALSE; -// TableData[noColumns].spacing = ?? - noColumns ++; - i ++; - isBorder = FALSE; - } - else if (ch == 'p') - { - i ++; - int j = 0; - char numberBuf[50]; - ch = value[i]; - if (ch == '{') - { - i++; - ch = value[i]; - } - - while ((i < len) && (isdigit(ch) || ch == '.')) - { - numberBuf[j] = ch; - j ++; - i ++; - ch = value[i]; - } - // Assume we have 2 characters for units - numberBuf[j] = value[i]; - j ++; i++; - numberBuf[j] = value[i]; - j ++; i++; - numberBuf[j] = 0; - if (value[i] == '}') i++; - - TableData[noColumns].leftBorder = isBorder; - TableData[noColumns].rightBorder = FALSE; - TableData[noColumns].justification = 'l'; - TableData[noColumns].width = 20*ParseUnitArgument(numberBuf); - TableData[noColumns].absWidth = TRUE; -// TableData[noColumns].spacing = ?? - noColumns ++; - isBorder = FALSE; - } - else - { - char *buf = new char[strlen(value) + 80]; - sprintf(buf, "Tabular first argument \"%s\" too complex!", value); - OnError(buf); - delete[] buf; - return FALSE; - } - } - if (isBorder) - TableData[noColumns-1].rightBorder = TRUE; - return TRUE; -} diff --git a/utils/tex2rtf/src/table.h b/utils/tex2rtf/src/table.h deleted file mode 100644 index d2235f2394..0000000000 --- a/utils/tex2rtf/src/table.h +++ /dev/null @@ -1,36 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: table.h -// Purpose: Table utilities -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -/* - * Table dimensions - * - */ - -struct ColumnData -{ - char justification; // l, r, c - int width; // -1 or a width in twips - int spacing; // Space between columns in twips - bool leftBorder; - bool rightBorder; - bool absWidth; // If FALSE (the default), don't use an absolute width if you can help it. -}; - -extern ColumnData TableData[]; -extern bool inTabular; -extern bool startRows; -extern bool tableVerticalLineLeft; -extern bool tableVerticalLineRight; -extern int noColumns; // Current number of columns in table -extern int ruleTop; -extern int ruleBottom; -extern int currentRowNumber; -extern bool ParseTableArgument(char *value); diff --git a/utils/tex2rtf/src/tex2any.cpp b/utils/tex2rtf/src/tex2any.cpp deleted file mode 100644 index cefb10037e..0000000000 --- a/utils/tex2rtf/src/tex2any.cpp +++ /dev/null @@ -1,3483 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tex2any.cpp -// Purpose: Utilities for Latex conversion. -// Author: Julian Smart -// Modified by: -// Created: 01/01/99 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include -#include "tex2any.h" -#include -#include - -/* - * Variables accessible from clients - * - */ - -TexChunk * DocumentTitle = NULL; -TexChunk * DocumentAuthor = NULL; -TexChunk * DocumentDate = NULL; - -// Header/footers/pagestyle -TexChunk * LeftHeaderEven = NULL; -TexChunk * LeftFooterEven = NULL; -TexChunk * CentreHeaderEven = NULL; -TexChunk * CentreFooterEven = NULL; -TexChunk * RightHeaderEven = NULL; -TexChunk * RightFooterEven = NULL; -TexChunk * LeftHeaderOdd = NULL; -TexChunk * LeftFooterOdd = NULL; -TexChunk * CentreHeaderOdd = NULL; -TexChunk * CentreFooterOdd = NULL; -TexChunk * RightHeaderOdd = NULL; -TexChunk * RightFooterOdd = NULL; -char * PageStyle = copystring("plain"); - -int DocumentStyle = LATEX_REPORT; -int MinorDocumentStyle = 0; -wxPathList TexPathList; -char * BibliographyStyleString = copystring("plain"); -char * DocumentStyleString = copystring("report"); -char * MinorDocumentStyleString = NULL; -int ParSkip = 0; -int ParIndent = 0; - -int normalFont = 10; -int smallFont = 8; -int tinyFont = 6; -int largeFont1 = 12; -int LargeFont2 = 14; -int LARGEFont3 = 18; -int hugeFont1 = 20; -int HugeFont2 = 24; -int HUGEFont3 = 28; - -/* - * USER-ADJUSTABLE SETTINGS - * - */ - -// Section font sizes -int chapterFont = 12; // LARGEFont3; -int sectionFont = 12; // LargeFont2; -int subsectionFont = 12; // largeFont1; -int titleFont = LARGEFont3; -int authorFont = LargeFont2; -int mirrorMargins = TRUE; -bool winHelp = FALSE; // Output in Windows Help format if TRUE, linear otherwise -bool isInteractive = FALSE; -bool runTwice = FALSE; -int convertMode = TEX_RTF; -bool headerRule = FALSE; -bool footerRule = FALSE; -bool compatibilityMode = FALSE; // If TRUE, maximum Latex compatibility - // (Quality of RTF generation deteriorate) -bool generateHPJ; // Generate WinHelp Help Project file -char *winHelpTitle = NULL; // Windows Help title -int defaultTableColumnWidth = 2000; - -int labelIndentTab = 18; // From left indent to item label (points) -int itemIndentTab = 40; // From left indent to item (points) - -bool useUpButton = TRUE; -int htmlBrowseButtons = HTML_BUTTONS_TEXT; - -bool truncateFilenames = FALSE; // Truncate for DOS -int winHelpVersion = 3; // WinHelp Version (3 for Windows 3.1, 4 for Win95) -bool winHelpContents = FALSE; // Generate .cnt file for WinHelp 4 -bool htmlIndex = FALSE; // Generate .htx file for HTML -bool htmlFrameContents = FALSE; // Use frames for HTML contents page -bool useHeadingStyles = TRUE; // Insert \s1, s2 etc. -bool useWord = TRUE; // Insert proper Word table of contents, etc etc -int contentsDepth = 4; // Depth of Word table of contents -bool indexSubsections = TRUE; // Index subsections in linear RTF -// Linear RTF method of including bitmaps. Can be "includepicture", "hex" -char *bitmapMethod = copystring("includepicture"); -bool upperCaseNames = FALSE; -// HTML background and text colours -char *backgroundImageString = NULL; -char *backgroundColourString = copystring("255;255;255"); -char *textColourString = NULL; -char *linkColourString = NULL; -char *followedLinkColourString = NULL; -bool combineSubSections = FALSE; -bool htmlWorkshopFiles = FALSE; - -/* - * International support - */ - -// Names to help with internationalisation -char *ContentsNameString = copystring("Contents"); -char *AbstractNameString = copystring("Abstract"); -char *GlossaryNameString = copystring("Glossary"); -char *ReferencesNameString = copystring("References"); -char *FiguresNameString = copystring("List of Figures"); -char *TablesNameString = copystring("List of Tables"); -char *FigureNameString = copystring("Figure"); -char *TableNameString = copystring("Table"); -char *IndexNameString = copystring("Index"); -char *ChapterNameString = copystring("chapter"); -char *SectionNameString = copystring("section"); -char *SubsectionNameString = copystring("subsection"); -char *SubsubsectionNameString = copystring("subsubsection"); -char *UpNameString = copystring("Up"); - -/* - * Section numbering - * - */ - -int chapterNo = 0; -int sectionNo = 0; -int subsectionNo = 0; -int subsubsectionNo = 0; -int figureNo = 0; -int tableNo = 0; - -/* - * Other variables - * - */ - -FILE *CurrentOutput1 = NULL; -FILE *CurrentOutput2 = NULL; -FILE *Inputs[15]; -int LineNumbers[15]; -char *FileNames[15]; -int CurrentInputIndex = 0; - -char *TexFileRoot = NULL; -char *TexBibName = NULL; // Bibliography output file name -char *TexTmpBibName = NULL; // Temporary bibliography output file name -bool isSync = FALSE; // If TRUE, should not yield to other processes. -bool stopRunning = FALSE; // If TRUE, should abort. - -static int currentColumn = 0; -char *currentArgData = NULL; -bool haveArgData = FALSE; // If TRUE, we're simulating the data. -TexChunk *currentArgument = NULL; -TexChunk *nextChunk = NULL; -bool isArgOptional = FALSE; -int noArgs = 0; - -TexChunk *TopLevel = NULL; -// wxList MacroDefs(wxKEY_STRING); -wxHashTable MacroDefs(wxKEY_STRING); -wxStringList IgnorableInputFiles; // Ignorable \input files, e.g. psbox.tex -char *BigBuffer = NULL; // For reading in large chunks of text -TexMacroDef *SoloBlockDef = NULL; -TexMacroDef *VerbatimMacroDef = NULL; - -#define IncrementLineNumber() LineNumbers[CurrentInputIndex] ++ - -void TexOutput(char *s, bool ordinaryText) -{ - int len = strlen(s); - - // Update current column, but only if we're guaranteed to - // be ordinary text (not mark-up stuff) - int i; - if (ordinaryText) - for (i = 0; i < len; i++) - { - if (s[i] == 13 || s[i] == 10) - currentColumn = 0; - else - currentColumn ++; - } - - if (CurrentOutput1) - fprintf(CurrentOutput1, "%s", s); - if (CurrentOutput2) - fprintf(CurrentOutput2, "%s", s); -} - -/* - * Try to find a Latex macro, in one of the following forms: - * (1) \begin{} ... \end{} - * (2) \macroname{arg1}...{argn} - * (3) {\bf arg1} - */ - -void ForbidWarning(TexMacroDef *def) -{ - char buf[100]; - switch (def->forbidden) - { - case FORBID_WARN: - { - sprintf(buf, "Warning: it is recommended that command %s is not used.", def->name); - OnInform(buf); - break; - } - case FORBID_ABSOLUTELY: - { - sprintf(buf, "Error: command %s cannot be used and will lead to errors.", def->name); - OnInform(buf); - break; - } - default: - break; - } -} - -TexMacroDef *MatchMacro(char *buffer, int *pos, char **env, bool *parseToBrace) -{ - *parseToBrace = TRUE; - int i = (*pos); - TexMacroDef *def = NULL; - char macroBuf[40]; - - // First, try to find begin{thing} - if (strncmp(buffer+i, "begin{", 6) == 0) - { - i += 6; - - int j = i; - while ((isalpha(buffer[j]) || buffer[j] == '*') && ((j - i) < 39)) - { - macroBuf[j-i] = buffer[j]; - j ++; - } - macroBuf[j-i] = 0; - def = (TexMacroDef *)MacroDefs.Get(macroBuf); - - if (def) - { - *pos = j + 1; // BUGBUG Should this be + 1??? - *env = def->name; - ForbidWarning(def); - return def; - } - else return NULL; - } - - // Failed, so try to find macro from definition list - int j = i; - - // First try getting a one-character macro, but ONLY - // if these TWO characters are not both alphabetical (could - // be a longer macro) - if (!(isalpha(buffer[i]) && isalpha(buffer[i+1]))) - { - macroBuf[0] = buffer[i]; - macroBuf[1] = 0; - - def = (TexMacroDef *)MacroDefs.Get(macroBuf); - if (def) j ++; - } - - if (!def) - { - while ((isalpha(buffer[j]) || buffer[j] == '*') && ((j - i) < 39)) - { - macroBuf[j-i] = buffer[j]; - j ++; - } - macroBuf[j-i] = 0; - def = (TexMacroDef *)MacroDefs.Get(macroBuf); - } - - if (def) - { - i = j; - - // We want to check whether this is a space-consuming macro - // (e.g. {\bf word}) - // No brace, e.g. \input thing.tex instead of \input{thing}; - // or a numeric argument, such as \parindent0pt - if ((def->no_args > 0) && ((buffer[i] == 32) || (buffer[i] == '=') || (isdigit(buffer[i])))) - { - if ((buffer[i] == 32) || (buffer[i] == '=')) - i ++; - - *parseToBrace = FALSE; - } - *pos = i; - ForbidWarning(def); - return def; - } - return NULL; -} - -void EatWhiteSpace(char *buffer, int *pos) -{ - int len = strlen(buffer); - int j = *pos; - bool keepGoing = TRUE; - bool moreLines = TRUE; - while ((j < len) && keepGoing && - (buffer[j] == 10 || buffer[j] == 13 || buffer[j] == ' ' || buffer[j] == 9)) - { - j ++; - if (j >= len) - { - if (moreLines) - { - moreLines = read_a_line(buffer); - len = strlen(buffer); - j = 0; - } - else - keepGoing = FALSE; - } - } - *pos = j; -} - -bool FindEndEnvironment(char *buffer, int *pos, char *env) -{ - int i = (*pos); - - // Try to find end{thing} - if ((strncmp(buffer+i, "end{", 4) == 0) && - (strncmp(buffer+i+4, env, strlen(env)) == 0)) - { - *pos = i + 5 + strlen(env); - return TRUE; - } - else return FALSE; -} - -bool readingVerbatim = FALSE; -bool readInVerbatim = FALSE; // Within a verbatim, but not nec. verbatiminput - -bool read_a_line(char *buf) -{ - if (CurrentInputIndex < 0) - { - buf[0] = 0; - return FALSE; - } - - int ch = -2; - int i = 0; - buf[0] = 0; - while (ch != EOF && ch != 10) - { - if (((i == 14) && (strncmp(buf, "\\end{verbatim}", 14) == 0)) || - ((i == 16) && (strncmp(buf, "\\end{toocomplex}", 16) == 0))) - readInVerbatim = FALSE; - - ch = getc(Inputs[CurrentInputIndex]); - if (ch != EOF) - { - // Check for 2 consecutive newlines and replace with \par - if (ch == 10 && !readInVerbatim) - { - int ch1 = getc(Inputs[CurrentInputIndex]); - if ((ch1 == 10) || (ch1 == 13)) - { - // Eliminate newline (10) following DOS linefeed - if (ch1 == 13) ch1 = getc(Inputs[CurrentInputIndex]); - buf[i] = 0; - IncrementLineNumber(); -// strcat(buf, "\\par\n"); -// i += 6; - strcat(buf, "\\par"); - i += 5; - } - else - { - ungetc(ch1, Inputs[CurrentInputIndex]); - buf[i] = ch; - i ++; - } - } - else - { - - // Convert embedded characters to RTF equivalents - switch(ch) - { - case 0xf6: // ö - case 0xe4: // ü - case 0xfc: // ü - case 0xd6: // Ö - case 0xc4: // Ä - case 0xdc: // Ü - buf[i++]='\\'; - buf[i++]='"'; - buf[i++]='{'; - switch(ch) - { - case 0xf6:buf[i++]='o';break; // ö - case 0xe4:buf[i++]='a';break; // ä - case 0xfc:buf[i++]='u';break; // ü - case 0xd6:buf[i++]='O';break; // Ö - case 0xc4:buf[i++]='A';break; // Ä - case 0xdc:buf[i++]='U';break; // Ü - } - buf[i++]='}'; - break; - case 0xdf: // ß - buf[i++]='\\'; - buf[i++]='s'; - buf[i++]='s'; - buf[i++]='\\'; - buf[i++]='/'; - break; - default: - buf[i++] = ch; - break; - } - - } - } - else - { - buf[i] = 0; - fclose(Inputs[CurrentInputIndex]); - Inputs[CurrentInputIndex] = NULL; - if (CurrentInputIndex > 0) ch = ' '; // No real end of file - CurrentInputIndex --; - if (readingVerbatim) - { - readingVerbatim = FALSE; - readInVerbatim = FALSE; - strcat(buf, "\\end{verbatim}\n"); - return FALSE; - } - } - if (ch == 10) - IncrementLineNumber(); - } - buf[i] = 0; - - // Strip out comment environment - if (strncmp(buf, "\\begin{comment}", 15) == 0) - { - while (strncmp(buf, "\\end{comment}", 13) != 0) - read_a_line(buf); - return read_a_line(buf); - } - // Read a verbatim input file as if it were a verbatim environment - else if (strncmp(buf, "\\verbatiminput", 14) == 0) - { - int wordLen = 14; - char *fileName = buf + wordLen + 1; - - int j = i - 1; - buf[j] = 0; - - // thing}\par -- eliminate the \par! - if (strncmp((buf + strlen(buf)-5), "\\par", 4) == 0) - { - j -= 5; - buf[j] = 0; - } - - if (buf[j-1] == '}') buf[j-1] = 0; // Ignore final brace - - wxString actualFile = TexPathList.FindValidPath(fileName); - if (actualFile == "") - { - char errBuf[300]; - strcpy(errBuf, "Could not find file: "); - strncat(errBuf, fileName, 100); - OnError(errBuf); - } - else - { - CurrentInputIndex ++; - Inputs[CurrentInputIndex] = fopen(actualFile, "r"); - LineNumbers[CurrentInputIndex] = 1; - if (FileNames[CurrentInputIndex]) - delete[] FileNames[CurrentInputIndex]; - FileNames[CurrentInputIndex] = copystring(actualFile); - - if (!Inputs[CurrentInputIndex]) - { - CurrentInputIndex --; - OnError("Could not open verbatiminput file."); - } - else - { - readingVerbatim = TRUE; - readInVerbatim = TRUE; - strcpy(buf, "\\begin{verbatim}\n"); - return FALSE; - } - } - return FALSE; - } - else if (strncmp(buf, "\\input", 6) == 0 || strncmp(buf, "\\helpinput", 10) == 0 || - strncmp(buf, "\\include", 8) == 0) - { - int wordLen; - if (strncmp(buf, "\\input", 6) == 0) - wordLen = 6; - else - if (strncmp(buf, "\\include", 8) == 0) - wordLen = 8; - else - wordLen = 10; - - char *fileName = buf + wordLen + 1; - - int j = i - 1; - buf[j] = 0; - - // \input{thing}\par -- eliminate the \par! -// if (strncmp((buf + strlen(buf)-5), "\\par", 4) == 0) - if (strncmp((buf + strlen(buf)-4), "\\par", 4) == 0) // Bug fix 8/2/95 Ulrich Leodolter - { -// j -= 5; - j -= 4; // Ditto - buf[j] = 0; - } - - if (buf[j-1] == '}') buf[j-1] = 0; // Ignore final brace - - // Ignore some types of input files (e.g. macro definition files) - char *fileOnly = FileNameFromPath(fileName); - if (IgnorableInputFiles.Member(fileOnly)) - return read_a_line(buf); - - wxString actualFile = TexPathList.FindValidPath(fileName); - if (actualFile == "") - { - char buf2[400]; - sprintf(buf2, "%s.tex", fileName); - actualFile = TexPathList.FindValidPath(buf2); - } - if (actualFile == "") - { - char errBuf[300]; - strcpy(errBuf, "Could not find file: "); - strncat(errBuf, fileName, 100); - OnError(errBuf); - } - else - { - // Ensure that if this file includes another, - // then we look in the same directory as this one. - TexPathList.EnsureFileAccessible(actualFile); - - CurrentInputIndex ++; - Inputs[CurrentInputIndex] = fopen(actualFile, "r"); - LineNumbers[CurrentInputIndex] = 1; - if (FileNames[CurrentInputIndex]) - delete[] FileNames[CurrentInputIndex]; - FileNames[CurrentInputIndex] = copystring(actualFile); - - if (!Inputs[CurrentInputIndex]) - { - char errBuf[300]; - sprintf(errBuf, "Could not open include file %s", (const char*) actualFile); - CurrentInputIndex --; - OnError(errBuf); - } - } - bool succ = read_a_line(buf); - return succ; - } - if (strncmp(buf, "\\begin{verbatim}", 16) == 0 || - strncmp(buf, "\\begin{toocomplex}", 18) == 0) - readInVerbatim = TRUE; - else if (strncmp(buf, "\\end{verbatim}", 14) == 0 || - strncmp(buf, "\\end{toocomplex}", 16) == 0) - readInVerbatim = FALSE; - - return (ch == EOF); -} - -/* - * Parse newcommand - * - */ - -bool ParseNewCommand(char *buffer, int *pos) -{ - if ((strncmp((buffer+(*pos)), "newcommand", 10) == 0) || - (strncmp((buffer+(*pos)), "renewcommand", 12) == 0)) - { - if (strncmp((buffer+(*pos)), "newcommand", 10) == 0) - *pos = *pos + 12; - else - *pos = *pos + 14; - - char commandName[100]; - char commandValue[1000]; - int noArgs = 0; - int i = 0; - while (buffer[*pos] != '}' && (buffer[*pos] != 0)) - { - commandName[i] = buffer[*pos]; - *pos += 1; - i ++; - } - commandName[i] = 0; - i = 0; - *pos += 1; - if (buffer[*pos] == '[') - { - *pos += 1; - noArgs = (int)(buffer[*pos]) - 48; - *pos += 2; // read past argument and '[' - } - bool end = FALSE; - int braceCount = 0; - while (!end) - { - char ch = buffer[*pos]; - if (ch == '{') - braceCount ++; - else if (ch == '}') - { - braceCount --; - if (braceCount == 0) - end = TRUE; - } - else if (ch == 0) - { - if (!read_a_line(buffer)) - end = TRUE; - *pos = 0; - break; - } - commandValue[i] = ch; - i ++; - *pos += 1; - } - commandValue[i] = 0; - - CustomMacro *macro = new CustomMacro(commandName, noArgs, NULL); - if (strlen(commandValue) > 0) - macro->macroBody = copystring(commandValue); - if (!CustomMacroList.Find(commandName)) - { - CustomMacroList.Append(commandName, macro); - AddMacroDef(ltCUSTOM_MACRO, commandName, noArgs); - } - return TRUE; - } - else return FALSE; -} - -void MacroError(char *buffer) -{ - char errBuf[300]; - char macroBuf[200]; - macroBuf[0] = '\\'; - int i = 1; - char ch; - while (((ch = buffer[i-1]) != '\n') && (ch != 0)) - { - macroBuf[i] = ch; - i ++; - } - macroBuf[i] = 0; - if (i > 20) - macroBuf[20] = 0; - - sprintf(errBuf, "Could not find macro: %s at line %d, file %s", - macroBuf, (int)(LineNumbers[CurrentInputIndex]-1), FileNames[CurrentInputIndex]); - OnError(errBuf); -} - -/* - * Parse an argument. - * 'environment' specifies the name of the macro IFF if we're looking for the end - * of an environment, e.g. \end{itemize}. Otherwise it's NULL. - * 'parseToBrace' is TRUE if the argument should extend to the next right brace, - * e.g. in {\bf an argument} as opposed to \vskip 30pt - * - */ -int ParseArg(TexChunk *thisArg, wxList& children, char *buffer, int pos, char *environment, bool parseToBrace, TexChunk *customMacroArgs) -{ - Tex2RTFYield(); - if (stopRunning) return pos; - - bool eof = FALSE; - BigBuffer[0] = 0; - int buf_ptr = 0; - int len; - -/* - - // Consume leading brace or square bracket, but ONLY if not following - // a space, because this could be e.g. {\large {\bf thing}} where {\bf thing} - // is the argument of \large AS WELL as being a block in its - // own right. - if (!environment) - { - if ((pos > 0) && (buffer[pos-1] != ' ') && buffer[pos] == '{') - pos ++; - else - - if ((pos > 0) && (buffer[pos-1] != ' ') && (buffer[pos] == '[' || buffer[pos] == '(')) - { - isOptional = TRUE; - pos ++; - } - else if ((pos > 1) && (buffer[pos-1] != ' ') && (buffer[pos+1] == '[' || buffer[pos+1] == '(')) - { - isOptional = TRUE; - pos += 2; - } - } -*/ - - // If not parsing to brace, just read the next word - // (e.g. \vskip 20pt) - if (!parseToBrace) - { - int ch = buffer[pos]; - while (!eof && ch != 13 && ch != 32 && ch != 10 && - ch != 0 && ch != '{') - { - BigBuffer[buf_ptr] = ch; - buf_ptr ++; - pos ++; - ch = buffer[pos]; - } - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - return pos; - } - - while (!eof) - { - len = strlen(buffer); - if (pos >= len) - { - if (customMacroArgs) return 0; - - eof = read_a_line(buffer); - pos = 0; - len = strlen(buffer); - // Check for verbatim (or toocomplex, which comes to the same thing) - if (strncmp(buffer, "\\begin{verbatim}", 16) == 0 || - strncmp(buffer, "\\begin{toocomplex}", 18) == 0) - { - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - BigBuffer[0] = 0; - buf_ptr = 0; - - eof = read_a_line(buffer); - while (!eof && (strncmp(buffer, "\\end{verbatim}", 14) != 0) && - (strncmp(buffer, "\\end{toocomplex}", 16) != 0) - ) - { - strcat(BigBuffer, buffer); - buf_ptr += strlen(buffer); - eof = read_a_line(buffer); - } - eof = read_a_line(buffer); - buf_ptr = 0; - - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO, VerbatimMacroDef); - chunk->no_args = 1; - chunk->macroId = ltVERBATIM; - TexChunk *arg = new TexChunk(CHUNK_TYPE_ARG, VerbatimMacroDef); - arg->argn = 1; - arg->macroId = ltVERBATIM; - TexChunk *str = new TexChunk(CHUNK_TYPE_STRING); - str->value = copystring(BigBuffer); - - children.Append((wxObject *)chunk); - chunk->children.Append((wxObject *)arg); - arg->children.Append((wxObject *)str); - - // Also want to include the following newline (is always a newline - // after a verbatim): EXCEPT in HTML - if (convertMode != TEX_HTML) - { - TexMacroDef *parDef = (TexMacroDef *)MacroDefs.Get("\\"); - TexChunk *parChunk = new TexChunk(CHUNK_TYPE_MACRO, parDef); - parChunk->no_args = 0; - parChunk->macroId = ltBACKSLASHCHAR; - children.Append((wxObject *)parChunk); - } - } - } - - char ch = buffer[pos]; - // End of optional argument -- pretend it's right brace for simplicity - if (thisArg->optional && (ch == ']')) - ch = '}'; - - switch (ch) - { - case 0: - case '}': // End of argument - { - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - if (ch == '}') pos ++; - return pos; - break; - } - case '\\': - { - if (buf_ptr > 0) // Finish off the string we've read so far - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - pos ++; - - - // Try matching \end{environment} - if (environment && FindEndEnvironment(buffer, &pos, environment)) - { - // Eliminate newline after an \end{} if possible - if (buffer[pos] == 13) - { - pos ++; - if (buffer[pos] == 10) - pos ++; - } - return pos; - } - - if (ParseNewCommand(buffer, &pos)) - break; - - if (strncmp(buffer+pos, "special", 7) == 0) - { - pos += 7; - - // Discard { - pos ++; - int noBraces = 1; - - wxBuffer[0] = 0; - int i = 0; - bool end = FALSE; - while (!end) - { - int ch = buffer[pos]; - if (ch == '}') - { - noBraces --; - if (noBraces == 0) - { - wxBuffer[i] = 0; - end = TRUE; - } - else - { - wxBuffer[i] = '}'; - i ++; - } - pos ++; - } - else if (ch == '{') - { - wxBuffer[i] = '{'; - i ++; - pos ++; - } - else if (ch == '\\' && buffer[pos+1] == '}') - { - wxBuffer[i] = '}'; - pos += 2; - i++; - } - else if (ch == '\\' && buffer[pos+1] == '{') - { - wxBuffer[i] = '{'; - pos += 2; - i++; - } - else - { - wxBuffer[i] = ch; - pos ++; - i ++; - if (ch == 0) - end = TRUE; - } - } - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 1; - chunk->macroId = ltSPECIAL; - TexMacroDef *specialDef = (TexMacroDef *)MacroDefs.Get("special"); - chunk->def = specialDef; - TexChunk *arg = new TexChunk(CHUNK_TYPE_ARG, specialDef); - chunk->children.Append((wxObject *)arg); - arg->argn = 1; - arg->macroId = chunk->macroId; - - // The value in the first argument. - TexChunk *argValue = new TexChunk(CHUNK_TYPE_STRING); - arg->children.Append((wxObject *)argValue); - argValue->argn = 1; - argValue->value = copystring(wxBuffer); - - children.Append((wxObject *)chunk); - } - else if (strncmp(buffer+pos, "verb", 4) == 0) - { - pos += 4; - if (buffer[pos] == '*') - pos ++; - - // Find the delimiter character - int ch = buffer[pos]; - pos ++; - // Now at start of verbatim text - int j = pos; - while ((buffer[pos] != ch) && buffer[pos] != 0) - pos ++; - char *val = new char[pos - j + 1]; - int i; - for (i = j; i < pos; i++) - { - val[i-j] = buffer[i]; - } - val[i-j] = 0; - - pos ++; - - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 1; - chunk->macroId = ltVERB; - TexMacroDef *verbDef = (TexMacroDef *)MacroDefs.Get("verb"); - chunk->def = verbDef; - TexChunk *arg = new TexChunk(CHUNK_TYPE_ARG, verbDef); - chunk->children.Append((wxObject *)arg); - arg->argn = 1; - arg->macroId = chunk->macroId; - - // The value in the first argument. - TexChunk *argValue = new TexChunk(CHUNK_TYPE_STRING); - arg->children.Append((wxObject *)argValue); - argValue->argn = 1; - argValue->value = val; - - children.Append((wxObject *)chunk); - } - else - { - char *env = NULL; - bool tmpParseToBrace = TRUE; - TexMacroDef *def = MatchMacro(buffer, &pos, &env, &tmpParseToBrace); - if (def) - { - CustomMacro *customMacro = FindCustomMacro(def->name); - - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO, def); - chunk->no_args = def->no_args; -// chunk->name = copystring(def->name); - chunk->macroId = def->macroId; - - if (!customMacro) - children.Append((wxObject *)chunk); - - // Eliminate newline after a \begin{} or a \\ if possible - if (env || strcmp(def->name, "\\") == 0) - if (buffer[pos] == 13) - { - pos ++; - if (buffer[pos] == 10) - pos ++; - } - - pos = ParseMacroBody(def->name, chunk, chunk->no_args, - buffer, pos, env, tmpParseToBrace, customMacroArgs); - - // If custom macro, parse the body substituting the above found args. - if (customMacro) - { - if (customMacro->macroBody) - { - char macroBuf[300]; -// strcpy(macroBuf, "{"); - strcpy(macroBuf, customMacro->macroBody); - strcat(macroBuf, "}"); - ParseArg(thisArg, children, macroBuf, 0, NULL, TRUE, chunk); - } - -// delete chunk; // Might delete children - } - } - else - { - MacroError(buffer+pos); - } - } - break; - } - // Parse constructs like {\bf thing} as if they were - // \bf{thing} - case '{': - { - pos ++; - if (buffer[pos] == '\\') - { - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - pos ++; - - char *env; - bool tmpParseToBrace; - TexMacroDef *def = MatchMacro(buffer, &pos, &env, &tmpParseToBrace); - if (def) - { - CustomMacro *customMacro = FindCustomMacro(def->name); - - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO, def); - chunk->no_args = def->no_args; -// chunk->name = copystring(def->name); - chunk->macroId = def->macroId; - if (!customMacro) - children.Append((wxObject *)chunk); - - pos = ParseMacroBody(def->name, chunk, chunk->no_args, - buffer, pos, NULL, TRUE, customMacroArgs); - - // If custom macro, parse the body substituting the above found args. - if (customMacro) - { - if (customMacro->macroBody) - { - char macroBuf[300]; -// strcpy(macroBuf, "{"); - strcpy(macroBuf, customMacro->macroBody); - strcat(macroBuf, "}"); - ParseArg(thisArg, children, macroBuf, 0, NULL, TRUE, chunk); - } - -// delete chunk; // Might delete children - } - } - else - { - MacroError(buffer+pos); - } - } - else - { - /* - * If all else fails, we assume that we have - * a pair of braces on their own, so return a `dummy' macro - * definition with just one argument to parse. - */ - if (!SoloBlockDef) - { - SoloBlockDef = new TexMacroDef(ltSOLO_BLOCK, "solo block", 1, FALSE); - } - // Save text so far - if (buf_ptr > 0) - { - TexChunk *chunk1 = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk1->value = copystring(BigBuffer); - children.Append((wxObject *)chunk1); - } - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO, SoloBlockDef); - chunk->no_args = SoloBlockDef->no_args; -// chunk->name = copystring(SoloBlockDef->name); - chunk->macroId = SoloBlockDef->macroId; - children.Append((wxObject *)chunk); - - TexChunk *arg = new TexChunk(CHUNK_TYPE_ARG, SoloBlockDef); - - chunk->children.Append((wxObject *)arg); -// arg->name = copystring(SoloBlockDef->name); - arg->argn = 1; - arg->macroId = chunk->macroId; - - pos = ParseArg(arg, arg->children, buffer, pos, NULL, TRUE, customMacroArgs); - } - break; - } - case '$': - { - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - - pos ++; - - if (buffer[pos] == '$') - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 0; -// chunk->name = copystring("$$"); - chunk->macroId = ltSPECIALDOUBLEDOLLAR; - children.Append((wxObject *)chunk); - pos ++; - } - else - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 0; -// chunk->name = copystring("_$"); - chunk->macroId = ltSPECIALDOLLAR; - children.Append((wxObject *)chunk); - } - break; - } - case '~': - { - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - - pos ++; - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 0; -// chunk->name = copystring("_~"); - chunk->macroId = ltSPECIALTILDE; - children.Append((wxObject *)chunk); - break; - } - case '#': // Either treat as a special TeX character or as a macro arg - { - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - - pos ++; - if (!customMacroArgs) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 0; -// chunk->name = copystring("_#"); - chunk->macroId = ltSPECIALHASH; - children.Append((wxObject *)chunk); - } - else - { - if (isdigit(buffer[pos])) - { - int n = buffer[pos] - 48; - pos ++; - wxNode *node = customMacroArgs->children.Nth(n-1); - if (node) - { - TexChunk *argChunk = (TexChunk *)node->Data(); - children.Append((wxObject *)new TexChunk(*argChunk)); - } - } - } - break; - } - case '&': - { - // Remove white space before and after the ampersand, - // since this is probably a table column separator with - // some convenient -- but useless -- white space in the text. - while ((buf_ptr > 0) && ((BigBuffer[buf_ptr-1] == ' ') || (BigBuffer[buf_ptr-1] == 9))) - buf_ptr --; - - if (buf_ptr > 0) - { - TexChunk *chunk = new TexChunk(CHUNK_TYPE_STRING); - BigBuffer[buf_ptr] = 0; - buf_ptr = 0; - chunk->value = copystring(BigBuffer); - children.Append((wxObject *)chunk); - } - - pos ++; - - while (buffer[pos] == ' ' || buffer[pos] == 9) - pos ++; - - TexChunk *chunk = new TexChunk(CHUNK_TYPE_MACRO); - chunk->no_args = 0; -// chunk->name = copystring("_&"); - chunk->macroId = ltSPECIALAMPERSAND; - children.Append((wxObject *)chunk); - break; - } - // Eliminate end-of-line comment - case '%': - { - ch = buffer[pos]; - while (ch != 10 && ch != 13 && ch != 0) - { - pos ++; - ch = buffer[pos]; - } - if (buffer[pos] == 10 || buffer[pos] == 13) - { - pos ++; - if (buffer[pos] == 10) pos ++; // Eliminate newline following DOS line feed - } - break; - } - // Eliminate tab - case 9: - { - BigBuffer[buf_ptr] = ' '; - BigBuffer[buf_ptr+1] = 0; - buf_ptr ++; - pos ++; - break; - } - default: - { - BigBuffer[buf_ptr] = ch; - BigBuffer[buf_ptr+1] = 0; - buf_ptr ++; - pos ++; - break; - } - } - } - return pos; -} - -/* - * Consume as many arguments as the macro definition specifies - * - */ - -int ParseMacroBody(char *macro_name, TexChunk *parent, - int no_args, char *buffer, int pos, - char *environment, bool parseToBrace, - TexChunk *customMacroArgs) -{ - Tex2RTFYield(); - if (stopRunning) return pos; - - // Check for a first optional argument - if (buffer[pos] == ' ' && buffer[pos+1] == '[') - { - // Fool following code into thinking that this is definitely - // an optional first argument. (If a space before a non-first argument, - // [ is interpreted as a [, not an optional argument.) - buffer[pos] = '!'; - pos ++; - no_args ++; - } - else - if (buffer[pos] == '[') - no_args ++; - - int maxArgs = 0; - - int i; - for (i = 0; i < no_args; i++) - { - maxArgs ++; - TexChunk *arg = new TexChunk(CHUNK_TYPE_ARG, parent->def); - - parent->children.Append((wxObject *)arg); -// arg->name = copystring(macro_name); - arg->argn = maxArgs; - arg->macroId = parent->macroId; - - // To parse the first arg of a 2 arg \begin{thing}{arg} ... \end{thing} - // have to fool parser into thinking this is a regular kind of block. - char *actualEnv; - if ((no_args == 2) && (i == 0)) - actualEnv = NULL; - else - actualEnv = environment; - - bool isOptional = FALSE; - - // Remove the first { of the argument so it doesn't get recognized as { ... } -// EatWhiteSpace(buffer, &pos); - if (!actualEnv) - { - // The reason for these tests is to not consume braces that don't - // belong to this macro. - // E.g. {\bf {\small thing}} - if ((pos > 0) && (buffer[pos-1] != ' ') && buffer[pos] == '{') - pos ++; - else - if ((pos > 0) && (buffer[pos-1] != ' ') && (buffer[pos] == '[')) - { - isOptional = TRUE; - pos ++; - } - else if ((pos > 1) && (buffer[pos-1] != ' ') && (buffer[pos+1] == '[')) - { - isOptional = TRUE; - pos += 2; - } - } - arg->optional = isOptional; - - pos = ParseArg(arg, arg->children, buffer, pos, actualEnv, parseToBrace, customMacroArgs); - - // If we've encountered an OPTIONAL argument, go another time around - // the loop, because we've got more than we thought. - // Hopefully optional args don't occur at the end of a macro use - // or we might miss it. - // Don't increment no of times round loop if the first optional arg - // -- we already did it before the loop. - if (arg->optional && (i > 0)) - i --; - } - parent->no_args = maxArgs; - - // Tell each argument how many args there are (useful when processing an arg) - wxNode *node = parent->children.First(); - while (node) - { - TexChunk *chunk = (TexChunk *)node->Data(); - chunk->no_args = maxArgs; - node = node->Next(); - } - return pos; -} - -bool TexLoadFile(char *filename) -{ - stopRunning = FALSE; - strcpy(TexFileRoot, filename); - StripExtension(TexFileRoot); - sprintf(TexBibName, "%s.bb", TexFileRoot); - sprintf(TexTmpBibName, "%s.bb1", TexFileRoot); - - TexPathList.EnsureFileAccessible(filename); - -#ifdef __WXMSW__ - static char *line_buffer = new char[600]; -#else - static char *line_buffer = new char[11000]; -#endif - - Inputs[0] = fopen(filename, "r"); - LineNumbers[0] = 1; - FileNames[0] = copystring(filename); - if (Inputs[0]) - { - read_a_line(line_buffer); - ParseMacroBody("toplevel", TopLevel, 1, line_buffer, 0, NULL, TRUE); - if (Inputs[0]) fclose(Inputs[0]); - return TRUE; - } - else return FALSE; -} - -TexMacroDef::TexMacroDef(int the_id, char *the_name, int n, bool ig, bool forbidLevel) -{ - name = copystring(the_name); - no_args = n; - ignore = ig; - macroId = the_id; - forbidden = forbidLevel; -} - -TexMacroDef::~TexMacroDef(void) -{ - if (name) delete[] name; -} - -TexChunk::TexChunk(int the_type, TexMacroDef *the_def) -{ - type = the_type; - no_args = 0; - argn = 0; -// name = NULL; - def = the_def; - macroId = 0; - value = NULL; - optional = FALSE; -} - -TexChunk::TexChunk(TexChunk& toCopy) -{ - type = toCopy.type; - no_args = toCopy.no_args; - argn = toCopy.argn; - macroId = toCopy.macroId; - -// if (toCopy.name) -// name = copystring(toCopy.name); -// else -// name = NULL; - def = toCopy.def; - - if (toCopy.value) - value = copystring(toCopy.value); - else - value = NULL; - - optional = toCopy.optional; - wxNode *node = toCopy.children.First(); - while (node) - { - TexChunk *child = (TexChunk *)node->Data(); - children.Append((wxObject *)new TexChunk(*child)); - node = node->Next(); - } -} - -TexChunk::~TexChunk(void) -{ -// if (name) delete[] name; - if (value) delete[] value; - wxNode *node = children.First(); - while (node) - { - TexChunk *child = (TexChunk *)node->Data(); - delete child; - wxNode *next = node->Next(); - delete node; - node = next; - } -} - -bool IsArgOptional(void) // Is this argument an optional argument? -{ - return isArgOptional; -} - -int GetNoArgs(void) // Number of args for this macro -{ - return noArgs; -} - -/* Gets the text of a chunk on request (must be for small arguments - * only!) - * - */ - -void GetArgData1(TexChunk *chunk) -{ - switch (chunk->type) - { - case CHUNK_TYPE_MACRO: - { - TexMacroDef *def = chunk->def; - if (def && def->ignore) - return; - - if (def && (strcmp(def->name, "solo block") != 0)) - { - strcat(currentArgData, "\\"); - strcat(currentArgData, def->name); - } - - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - strcat(currentArgData, "{"); - GetArgData1(child_chunk); - strcat(currentArgData, "}"); - node = node->Next(); - } - break; - } - case CHUNK_TYPE_ARG: - { - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - GetArgData1(child_chunk); - node = node->Next(); - } - break; - } - case CHUNK_TYPE_STRING: - { - if (chunk->value) - strcat(currentArgData, chunk->value); - break; - } - } -} - -char *GetArgData(TexChunk *chunk) -{ - currentArgData[0] = 0; - GetArgData1(currentArgument); - haveArgData = FALSE; - return currentArgData; -} - -char *GetArgData(void) -{ - if (!haveArgData) - { - currentArgData[0] = 0; - GetArgData1(currentArgument); - } - return currentArgData; -} - -TexChunk *GetArgChunk(void) -{ - return currentArgument; -} - -TexChunk *GetNextChunk(void) // Look ahead to the next chunk -{ - return nextChunk; -} - -TexChunk *GetTopLevelChunk(void) -{ - return TopLevel; -} - -int GetCurrentColumn(void) -{ - return currentColumn; -} - -/* - * Traverses document calling functions to allow the client to - * write out the appropriate stuff - */ - - -void TraverseFromChunk(TexChunk *chunk, wxNode *thisNode, bool childrenOnly) -{ - Tex2RTFYield(); - if (stopRunning) return; - - switch (chunk->type) - { - case CHUNK_TYPE_MACRO: - { - TexMacroDef *def = chunk->def; - if (def && def->ignore) - return; - - if (!childrenOnly) - OnMacro(chunk->macroId, chunk->no_args, TRUE); - - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - TraverseFromChunk(child_chunk, node); - node = node->Next(); - } - - if (thisNode && thisNode->Next()) nextChunk = (TexChunk *)thisNode->Next()->Data(); - - if (!childrenOnly) - OnMacro(chunk->macroId, chunk->no_args, FALSE); - break; - } - case CHUNK_TYPE_ARG: - { - currentArgument = chunk; - - isArgOptional = chunk->optional; - noArgs = chunk->no_args; - - // If OnArgument returns FALSE, don't output. - - if (childrenOnly || OnArgument(chunk->macroId, chunk->argn, TRUE)) - { - wxNode *node = chunk->children.First(); - while (node) - { - TexChunk *child_chunk = (TexChunk *)node->Data(); - TraverseFromChunk(child_chunk, node); - node = node->Next(); - } - } - - currentArgument = chunk; - - if (thisNode && thisNode->Next()) nextChunk = (TexChunk *)thisNode->Next()->Data(); - - isArgOptional = chunk->optional; - noArgs = chunk->no_args; - - if (!childrenOnly) - (void)OnArgument(chunk->macroId, chunk->argn, FALSE); - break; - } - case CHUNK_TYPE_STRING: - { - extern int issuedNewParagraph; - extern int forbidResetPar; - if (chunk->value && (forbidResetPar == 0)) - { - // If non-whitespace text, we no longer have a new paragraph. - if (issuedNewParagraph && !((chunk->value[0] == 10 || chunk->value[0] == 13 || chunk->value[0] == 32) - && chunk->value[1] == 0)) - issuedNewParagraph = FALSE; - TexOutput(chunk->value, TRUE); - } - break; - } - } -} - -void TraverseDocument(void) -{ - TraverseFromChunk(TopLevel, NULL); -} - -void SetCurrentOutput(FILE *fd) -{ - CurrentOutput1 = fd; - CurrentOutput2 = NULL; -} - -void SetCurrentOutputs(FILE *fd1, FILE *fd2) -{ - CurrentOutput1 = fd1; - CurrentOutput2 = fd2; -} - -void AddMacroDef(int the_id, char *name, int n, bool ignore, bool forbid) -{ - MacroDefs.Put(name, new TexMacroDef(the_id, name, n, ignore, forbid)); -} - -void TexInitialize(int bufSize) -{ - InitialiseColourTable(); -#ifdef __WXMSW__ - TexPathList.AddEnvList("TEXINPUT"); -#endif -#ifdef __UNIX__ - TexPathList.AddEnvList("TEXINPUTS"); -#endif - int i; - for (i = 0; i < 15; i++) - { - Inputs[i] = NULL; - LineNumbers[i] = 1; - FileNames[i] = NULL; - } - - IgnorableInputFiles.Add("psbox.tex"); - BigBuffer = new char[(bufSize*1000)]; - currentArgData = new char[2000]; - TexFileRoot = new char[300]; - TexBibName = new char[300]; - TexTmpBibName = new char[300]; - AddMacroDef(ltTOPLEVEL, "toplevel", 1); - TopLevel = new TexChunk(CHUNK_TYPE_MACRO); -// TopLevel->name = copystring("toplevel"); - TopLevel->macroId = ltTOPLEVEL; - TopLevel->no_args = 1; - VerbatimMacroDef = (TexMacroDef *)MacroDefs.Get("verbatim"); -} - -void TexCleanUp(void) -{ - int i; - for (i = 0; i < 15; i++) - Inputs[i] = NULL; - - chapterNo = 0; - sectionNo = 0; - subsectionNo = 0; - subsubsectionNo = 0; - figureNo = 0; - - CurrentOutput1 = NULL; - CurrentOutput2 = NULL; - CurrentInputIndex = 0; - haveArgData = FALSE; - noArgs = 0; - - if (TopLevel) - delete TopLevel; - TopLevel = new TexChunk(CHUNK_TYPE_MACRO); -// TopLevel->name = copystring("toplevel"); - TopLevel->macroId = ltTOPLEVEL; - TopLevel->no_args = 1; - - DocumentTitle = NULL; - DocumentAuthor = NULL; - DocumentDate = NULL; - DocumentStyle = LATEX_REPORT; - MinorDocumentStyle = 0; - BibliographyStyleString = copystring("plain"); - DocumentStyleString = copystring("report"); - MinorDocumentStyleString = NULL; -/* Don't want to remove custom macros after each pass. - SetFontSizes(10); - wxNode *node = CustomMacroList.First(); - while (node) - { - CustomMacro *macro = (CustomMacro *)node->Data(); - delete macro; - delete node; - node = CustomMacroList.First(); - } -*/ - TexReferences.BeginFind(); - wxNode *node = TexReferences.Next(); - while (node) - { - TexRef *ref = (TexRef *)node->Data(); - delete ref; - node = TexReferences.Next(); - } - TexReferences.Clear(); - - node = BibList.First(); - while (node) - { - BibEntry *entry = (BibEntry *)node->Data(); - delete entry; - delete node; - node = BibList.First(); - } - CitationList.Clear(); - ResetTopicCounter(); -} - -// There is likely to be one set of macros used by all utilities. -void DefineDefaultMacros(void) -{ - // Put names which subsume other names at the TOP - // so they get recognized first - - AddMacroDef(ltACCENT_GRAVE, "`", 1); - AddMacroDef(ltACCENT_ACUTE, "'", 1); - AddMacroDef(ltACCENT_CARET, "^", 1); - AddMacroDef(ltACCENT_UMLAUT, "\"", 1); - AddMacroDef(ltACCENT_TILDE, "~", 1); - AddMacroDef(ltACCENT_DOT, ".", 1); - AddMacroDef(ltACCENT_CADILLA, "c", 1); - AddMacroDef(ltSMALLSPACE1, ",", 0); - AddMacroDef(ltSMALLSPACE2, ";", 0); - - AddMacroDef(ltABSTRACT, "abstract", 1); - AddMacroDef(ltADDCONTENTSLINE, "addcontentsline", 3); - AddMacroDef(ltADDTOCOUNTER, "addtocounter", 2); - AddMacroDef(ltALEPH, "aleph", 0); - AddMacroDef(ltALPHA, "alpha", 0); - AddMacroDef(ltALPH1, "alph", 1); - AddMacroDef(ltALPH2, "Alph", 1); - AddMacroDef(ltANGLE, "angle", 0); - AddMacroDef(ltAPPENDIX, "appendix", 0); - AddMacroDef(ltAPPROX, "approx", 0); - AddMacroDef(ltARABIC, "arabic", 1); - AddMacroDef(ltARRAY, "array", 1); - AddMacroDef(ltAST, "ast", 0); - AddMacroDef(ltASYMP, "asymp", 0); - AddMacroDef(ltAUTHOR, "author", 1); - - AddMacroDef(ltBACKGROUNDCOLOUR, "backgroundcolour", 1); - AddMacroDef(ltBACKGROUNDIMAGE, "backgroundimage", 1); - AddMacroDef(ltBACKGROUND, "background", 1); - AddMacroDef(ltBACKSLASHRAW, "backslashraw", 0); - AddMacroDef(ltBACKSLASH, "backslash", 0); - AddMacroDef(ltBASELINESKIP, "baselineskip", 1); - AddMacroDef(ltBCOL, "bcol", 2); - AddMacroDef(ltBETA, "beta", 0); - AddMacroDef(ltBFSERIES, "bfseries", 1); - AddMacroDef(ltBF, "bf", 1); - AddMacroDef(ltBIBITEM, "bibitem", 2); // For convenience, bibitem has 2 args: label and item. - // The Latex syntax permits writing as 2 args. - AddMacroDef(ltBIBLIOGRAPHYSTYLE, "bibliographystyle", 1); - AddMacroDef(ltBIBLIOGRAPHY, "bibliography", 1); - AddMacroDef(ltBIGTRIANGLEDOWN, "bigtriangledown", 0); - AddMacroDef(ltBOT, "bot", 0); - AddMacroDef(ltBOXIT, "boxit", 1); - AddMacroDef(ltBOX, "box", 0); - AddMacroDef(ltBRCLEAR, "brclear", 0); - AddMacroDef(ltBULLET, "bullet", 0); - - AddMacroDef(ltCAPTIONSTAR, "caption*", 1); - AddMacroDef(ltCAPTION, "caption", 1); - AddMacroDef(ltCAP, "cap", 0); - AddMacroDef(ltCDOTS, "cdots", 0); - AddMacroDef(ltCDOT, "cdot", 0); - AddMacroDef(ltCENTERLINE, "centerline", 1); - AddMacroDef(ltCENTERING, "centering", 0); - AddMacroDef(ltCENTER, "center", 1); - AddMacroDef(ltCEXTRACT, "cextract", 0); - AddMacroDef(ltCHAPTERHEADING, "chapterheading", 1); - AddMacroDef(ltCHAPTERSTAR, "chapter*", 1); - AddMacroDef(ltCHAPTER, "chapter", 1); - AddMacroDef(ltCHI, "chi", 0); - AddMacroDef(ltCINSERT, "cinsert", 0); - AddMacroDef(ltCIRC, "circ", 0); - AddMacroDef(ltCITE, "cite", 1); - AddMacroDef(ltCLASS, "class", 1); - AddMacroDef(ltCLEARDOUBLEPAGE, "cleardoublepage", 0); - AddMacroDef(ltCLEARPAGE, "clearpage", 0); - AddMacroDef(ltCLINE, "cline", 1); - AddMacroDef(ltCLIPSFUNC, "clipsfunc", 3); - AddMacroDef(ltCLUBSUIT, "clubsuit", 0); - AddMacroDef(ltCOLUMNSEP, "columnsep", 1); - AddMacroDef(ltCOMMENT, "comment", 1, TRUE); - AddMacroDef(ltCONG, "cong", 0); - AddMacroDef(ltCOPYRIGHT, "copyright", 0); - AddMacroDef(ltCPARAM, "cparam", 2); - AddMacroDef(ltCHEAD, "chead", 1); - AddMacroDef(ltCFOOT, "cfoot", 1); - AddMacroDef(ltCUP, "cup", 0); - - AddMacroDef(ltDASHV, "dashv", 0); - AddMacroDef(ltDATE, "date", 1); - AddMacroDef(ltDELTA, "delta", 0); - AddMacroDef(ltCAP_DELTA, "Delta", 0); - AddMacroDef(ltDEFINECOLOUR, "definecolour", 4); - AddMacroDef(ltDEFINECOLOR, "definecolor", 4); - AddMacroDef(ltDESCRIPTION, "description", 1); - AddMacroDef(ltDESTRUCT, "destruct", 1); - AddMacroDef(ltDIAMOND2, "diamond2", 0); - AddMacroDef(ltDIAMOND, "diamond", 0); - AddMacroDef(ltDIV, "div", 0); - AddMacroDef(ltDOCUMENTCLASS, "documentclass", 1); - AddMacroDef(ltDOCUMENTSTYLE, "documentstyle", 1); - AddMacroDef(ltDOCUMENT, "document", 1); - AddMacroDef(ltDOUBLESPACE, "doublespace", 1); - AddMacroDef(ltDOTEQ, "doteq", 0); - AddMacroDef(ltDOWNARROW, "downarrow", 0); - AddMacroDef(ltDOWNARROW2, "Downarrow", 0); - - AddMacroDef(ltEMPTYSET, "emptyset", 0); - AddMacroDef(ltEMPH, "emph", 1); - AddMacroDef(ltEM, "em", 1); - AddMacroDef(ltENUMERATE, "enumerate", 1); - AddMacroDef(ltEPSILON, "epsilon", 0); - AddMacroDef(ltEQUATION, "equation", 1); - AddMacroDef(ltEQUIV, "equiv", 0); - AddMacroDef(ltETA, "eta", 0); - AddMacroDef(ltEVENSIDEMARGIN, "evensidemargin", 1); - AddMacroDef(ltEXISTS, "exists", 0); - - AddMacroDef(ltFBOX, "fbox", 1); - AddMacroDef(ltFCOL, "fcol", 2); - AddMacroDef(ltFIGURE, "figure", 1); - AddMacroDef(ltFIGURESTAR, "figure*", 1); - AddMacroDef(ltFLUSHLEFT, "flushleft", 1); - AddMacroDef(ltFLUSHRIGHT, "flushright", 1); - AddMacroDef(ltFOLLOWEDLINKCOLOUR, "followedlinkcolour", 1); - AddMacroDef(ltFOOTHEIGHT, "footheight", 1); - AddMacroDef(ltFOOTNOTEPOPUP, "footnotepopup", 2); - AddMacroDef(ltFOOTNOTE, "footnote", 1); - AddMacroDef(ltFOOTSKIP, "footskip", 1); - AddMacroDef(ltFORALL, "forall", 0); - AddMacroDef(ltFRAMEBOX, "framebox", 1); - AddMacroDef(ltFROWN, "frown", 0); - AddMacroDef(ltFUNCTIONSECTION, "functionsection", 1); - AddMacroDef(ltFUNC, "func", 3); - AddMacroDef(ltFOOTNOTESIZE, "footnotesize", 0); - AddMacroDef(ltFANCYPLAIN, "fancyplain", 2); - - AddMacroDef(ltGAMMA, "gamma", 0); - AddMacroDef(ltCAP_GAMMA, "Gamma", 0); - AddMacroDef(ltGEQ, "geq", 0); - AddMacroDef(ltGE, "ge", 0); - AddMacroDef(ltGG, "gg", 0); - AddMacroDef(ltGLOSSARY, "glossary", 1); - AddMacroDef(ltGLOSS, "gloss", 1); - - AddMacroDef(ltHEADHEIGHT, "headheight", 1); - AddMacroDef(ltHEARTSUIT, "heartsuit", 0); - AddMacroDef(ltHELPGLOSSARY, "helpglossary", 1); - AddMacroDef(ltHELPIGNORE, "helpignore", 1, TRUE); - AddMacroDef(ltHELPONLY, "helponly", 1); - AddMacroDef(ltHELPINPUT, "helpinput", 1); - AddMacroDef(ltHELPFONTFAMILY, "helpfontfamily", 1); - AddMacroDef(ltHELPFONTSIZE, "helpfontsize", 1); - AddMacroDef(ltHELPREFN, "helprefn", 2); - AddMacroDef(ltHELPREF, "helpref", 2); - AddMacroDef(ltHFILL, "hfill", 0); - AddMacroDef(ltHLINE, "hline", 0); - AddMacroDef(ltHRULE, "hrule", 0); - AddMacroDef(ltHSPACESTAR, "hspace*", 1); - AddMacroDef(ltHSPACE, "hspace", 1); - AddMacroDef(ltHSKIPSTAR, "hskip*", 1); - AddMacroDef(ltHSKIP, "hskip", 1); - AddMacroDef(lthuge, "huge", 1); - AddMacroDef(ltHuge, "Huge", 1); - AddMacroDef(ltHUGE, "HUGE", 1); - AddMacroDef(ltHTMLIGNORE, "htmlignore", 1); - AddMacroDef(ltHTMLONLY, "htmlonly", 1); - - AddMacroDef(ltIM, "im", 0); - AddMacroDef(ltINCLUDEONLY, "includeonly", 1); - AddMacroDef(ltINCLUDE, "include", 1); - AddMacroDef(ltINDENTED, "indented", 2); - AddMacroDef(ltINDEX, "index", 1); - AddMacroDef(ltINPUT, "input", 1, TRUE); - AddMacroDef(ltIOTA, "iota", 0); - AddMacroDef(ltITEMIZE, "itemize", 1); - AddMacroDef(ltITEM, "item", 0); - AddMacroDef(ltIMAGEMAP, "imagemap", 3); - AddMacroDef(ltIMAGEL, "imagel", 2); - AddMacroDef(ltIMAGER, "imager", 2); - AddMacroDef(ltIMAGE, "image", 2); - AddMacroDef(ltIN, "in", 0); - AddMacroDef(ltINFTY, "infty", 0); - AddMacroDef(ltITSHAPE, "itshape", 1); - AddMacroDef(ltIT, "it", 1); - AddMacroDef(ltITEMSEP, "itemsep", 1); - AddMacroDef(ltINSERTATLEVEL, "insertatlevel", 2); - - AddMacroDef(ltKAPPA, "kappa", 0); - AddMacroDef(ltKILL, "kill", 0); - - AddMacroDef(ltLABEL, "label", 1); - AddMacroDef(ltLAMBDA, "lambda", 0); - AddMacroDef(ltCAP_LAMBDA, "Lambda", 0); - AddMacroDef(ltlarge, "large", 1); - AddMacroDef(ltLarge, "Large", 1); - AddMacroDef(ltLARGE, "LARGE", 1); - AddMacroDef(ltLATEXIGNORE, "latexignore", 1); - AddMacroDef(ltLATEXONLY, "latexonly", 1); - AddMacroDef(ltLATEX, "LaTeX", 0); - AddMacroDef(ltLBOX, "lbox", 1); - AddMacroDef(ltLBRACERAW, "lbraceraw", 0); - AddMacroDef(ltLDOTS, "ldots", 0); - AddMacroDef(ltLEQ, "leq", 0); - AddMacroDef(ltLE, "le", 0); - AddMacroDef(ltLEFTARROW, "leftarrow", 0); - AddMacroDef(ltLEFTRIGHTARROW, "leftrightarrow", 0); - AddMacroDef(ltLEFTARROW2, "Leftarrow", 0); - AddMacroDef(ltLEFTRIGHTARROW2, "Leftrightarrow", 0); - AddMacroDef(ltLINEBREAK, "linebreak", 0); - AddMacroDef(ltLINKCOLOUR, "linkcolour", 1); - AddMacroDef(ltLISTOFFIGURES, "listoffigures", 0); - AddMacroDef(ltLISTOFTABLES, "listoftables", 0); - AddMacroDef(ltLHEAD, "lhead", 1); - AddMacroDef(ltLFOOT, "lfoot", 1); - AddMacroDef(ltLOWERCASE, "lowercase", 1); - AddMacroDef(ltLL, "ll", 0); - - AddMacroDef(ltMAKEGLOSSARY, "makeglossary", 0); - AddMacroDef(ltMAKEINDEX, "makeindex", 0); - AddMacroDef(ltMAKETITLE, "maketitle", 0); - AddMacroDef(ltMARKRIGHT, "markright", 1); - AddMacroDef(ltMARKBOTH, "markboth", 2); - AddMacroDef(ltMARGINPARWIDTH, "marginparwidth", 1); - AddMacroDef(ltMARGINPARSEP, "marginparsep", 1); - AddMacroDef(ltMARGINPARODD, "marginparodd", 1); - AddMacroDef(ltMARGINPAREVEN, "marginpareven", 1); - AddMacroDef(ltMARGINPAR, "marginpar", 1); - AddMacroDef(ltMBOX, "mbox", 1); - AddMacroDef(ltMDSERIES, "mdseries", 1); - AddMacroDef(ltMEMBERSECTION, "membersection", 1); - AddMacroDef(ltMEMBER, "member", 2); - AddMacroDef(ltMID, "mid", 0); - AddMacroDef(ltMODELS, "models", 0); - AddMacroDef(ltMP, "mp", 0); - AddMacroDef(ltMULTICOLUMN, "multicolumn", 3); - AddMacroDef(ltMU, "mu", 0); - - AddMacroDef(ltNABLA, "nabla", 0); - AddMacroDef(ltNEG, "neg", 0); - AddMacroDef(ltNEQ, "neq", 0); - AddMacroDef(ltNEWCOUNTER, "newcounter", 1, FALSE, FORBID_ABSOLUTELY); - AddMacroDef(ltNEWLINE, "newline", 0); - AddMacroDef(ltNEWPAGE, "newpage", 0); - AddMacroDef(ltNI, "ni", 0); - AddMacroDef(ltNOCITE, "nocite", 1); - AddMacroDef(ltNOINDENT, "noindent", 0); - AddMacroDef(ltNOLINEBREAK, "nolinebreak", 0); - AddMacroDef(ltNOPAGEBREAK, "nopagebreak", 0); - AddMacroDef(ltNORMALSIZE, "normalsize", 1); - AddMacroDef(ltNORMALBOX, "normalbox", 1); - AddMacroDef(ltNORMALBOXD, "normalboxd", 1); - AddMacroDef(ltNOTEQ, "noteq", 0); - AddMacroDef(ltNOTIN, "notin", 0); - AddMacroDef(ltNOTSUBSET, "notsubset", 0); - AddMacroDef(ltNU, "nu", 0); - - AddMacroDef(ltODDSIDEMARGIN, "oddsidemargin", 1); - AddMacroDef(ltOMEGA, "omega", 0); - AddMacroDef(ltCAP_OMEGA, "Omega", 0); - AddMacroDef(ltONECOLUMN, "onecolumn", 0); - AddMacroDef(ltOPLUS, "oplus", 0); - AddMacroDef(ltOSLASH, "oslash", 0); - AddMacroDef(ltOTIMES, "otimes", 0); - - AddMacroDef(ltPAGEBREAK, "pagebreak", 0); - AddMacroDef(ltPAGEREF, "pageref", 1); - AddMacroDef(ltPAGESTYLE, "pagestyle", 1); - AddMacroDef(ltPAGENUMBERING, "pagenumbering", 1); - AddMacroDef(ltPARAGRAPHSTAR, "paragraph*", 1); - AddMacroDef(ltPARAGRAPH, "paragraph", 1); - AddMacroDef(ltPARALLEL, "parallel", 0); - AddMacroDef(ltPARAM, "param", 2); - AddMacroDef(ltPARINDENT, "parindent", 1); - AddMacroDef(ltPARSKIP, "parskip", 1); - AddMacroDef(ltPARTIAL, "partial", 0); - AddMacroDef(ltPARTSTAR, "part*", 1); - AddMacroDef(ltPART, "part", 1); - AddMacroDef(ltPAR, "par", 0); - AddMacroDef(ltPERP, "perp", 0); - AddMacroDef(ltPHI, "phi", 0); - AddMacroDef(ltCAP_PHI, "Phi", 0); - AddMacroDef(ltPFUNC, "pfunc", 3); - AddMacroDef(ltPICTURE, "picture", 1); - AddMacroDef(ltPI, "pi", 0); - AddMacroDef(ltCAP_PI, "Pi", 0); - AddMacroDef(ltPM, "pm", 0); - AddMacroDef(ltPOPREFONLY, "poprefonly", 1); - AddMacroDef(ltPOPREF, "popref", 2); - AddMacroDef(ltPOUNDS, "pounds", 0); - AddMacroDef(ltPREC, "prec", 0); - AddMacroDef(ltPRECEQ, "preceq", 0); - AddMacroDef(ltPRINTINDEX, "printindex", 0); - AddMacroDef(ltPROPTO, "propto", 0); - AddMacroDef(ltPSBOXTO, "psboxto", 1, FALSE, FORBID_ABSOLUTELY); - AddMacroDef(ltPSBOX, "psbox", 1, FALSE, FORBID_ABSOLUTELY); - AddMacroDef(ltPSI, "psi", 0); - AddMacroDef(ltCAP_PSI, "Psi", 0); - - AddMacroDef(ltQUOTE, "quote", 1); - AddMacroDef(ltQUOTATION, "quotation", 1); - - AddMacroDef(ltRAGGEDBOTTOM, "raggedbottom", 0); - AddMacroDef(ltRAGGEDLEFT, "raggedleft", 0); - AddMacroDef(ltRAGGEDRIGHT, "raggedright", 0); - AddMacroDef(ltRBRACERAW, "rbraceraw", 0); - AddMacroDef(ltREF, "ref", 1); - AddMacroDef(ltREGISTERED, "registered", 0); - AddMacroDef(ltRE, "we", 0); - AddMacroDef(ltRHO, "rho", 0); - AddMacroDef(ltRIGHTARROW, "rightarrow", 0); - AddMacroDef(ltRIGHTARROW2, "rightarrow2", 0); - AddMacroDef(ltRMFAMILY, "rmfamily", 1); - AddMacroDef(ltRM, "rm", 1); - AddMacroDef(ltROMAN, "roman", 1); - AddMacroDef(ltROMAN2, "Roman", 1); -// AddMacroDef(lt"row", 1); - AddMacroDef(ltRTFSP, "rtfsp", 0); - AddMacroDef(ltRTFIGNORE, "rtfignore", 1); - AddMacroDef(ltRTFONLY, "rtfonly", 1); - AddMacroDef(ltRULEDROW, "ruledrow", 1); - AddMacroDef(ltDRULED, "druled", 1); - AddMacroDef(ltRULE, "rule", 2); - AddMacroDef(ltRHEAD, "rhead", 1); - AddMacroDef(ltRFOOT, "rfoot", 1); - AddMacroDef(ltROW, "row", 1); - - AddMacroDef(ltSCSHAPE, "scshape", 1); - AddMacroDef(ltSC, "sc", 1); - AddMacroDef(ltSECTIONHEADING, "sectionheading", 1); - AddMacroDef(ltSECTIONSTAR, "section*", 1); - AddMacroDef(ltSECTION, "section", 1); - AddMacroDef(ltSETCOUNTER, "setcounter", 2); - AddMacroDef(ltSFFAMILY, "sffamily", 1); - AddMacroDef(ltSF, "sf", 1); - AddMacroDef(ltSHARP, "sharp", 0); - AddMacroDef(ltSHORTCITE, "shortcite", 1); - AddMacroDef(ltSIGMA, "sigma", 0); - AddMacroDef(ltCAP_SIGMA, "Sigma", 0); - AddMacroDef(ltSIM, "sim", 0); - AddMacroDef(ltSIMEQ, "simeq", 0); - AddMacroDef(ltSINGLESPACE, "singlespace", 1); - AddMacroDef(ltSIZEDBOX, "sizedbox", 2); - AddMacroDef(ltSIZEDBOXD, "sizedboxd", 2); - AddMacroDef(ltSLOPPYPAR, "sloppypar", 1); - AddMacroDef(ltSLOPPY, "sloppy", 0); - AddMacroDef(ltSLSHAPE, "slshape", 1); - AddMacroDef(ltSL, "sl", 1); - AddMacroDef(ltSMALL, "small", 1); - AddMacroDef(ltSMILE, "smile", 0); - AddMacroDef(ltSS, "ss", 0); - AddMacroDef(ltSTAR, "star", 0); - AddMacroDef(ltSUBITEM, "subitem", 0); - AddMacroDef(ltSUBPARAGRAPHSTAR, "subparagraph*", 1); - AddMacroDef(ltSUBPARAGRAPH, "subparagraph", 1); - AddMacroDef(ltSPECIAL, "special", 1); - AddMacroDef(ltSUBSECTIONSTAR, "subsection*", 1); - AddMacroDef(ltSUBSECTION, "subsection", 1); - AddMacroDef(ltSUBSETEQ, "subseteq", 0); - AddMacroDef(ltSUBSET, "subset", 0); - AddMacroDef(ltSUCC, "succ", 0); - AddMacroDef(ltSUCCEQ, "succeq", 0); - AddMacroDef(ltSUPSETEQ, "supseteq", 0); - AddMacroDef(ltSUPSET, "supset", 0); - AddMacroDef(ltSUBSUBSECTIONSTAR,"subsubsection*", 1); - AddMacroDef(ltSUBSUBSECTION, "subsubsection", 1); - AddMacroDef(ltSUPERTABULAR, "supertabular", 2, FALSE); - AddMacroDef(ltSURD, "surd", 0); - AddMacroDef(ltSCRIPTSIZE, "scriptsize", 1); - AddMacroDef(ltSETHEADER, "setheader", 6); - AddMacroDef(ltSETFOOTER, "setfooter", 6); - AddMacroDef(ltSETHOTSPOTCOLOUR, "sethotspotcolour", 1); - AddMacroDef(ltSETHOTSPOTCOLOR, "sethotspotcolor", 1); - AddMacroDef(ltSETHOTSPOTUNDERLINE, "sethotspotunderline", 1); - AddMacroDef(ltSETTRANSPARENCY, "settransparency", 1); - AddMacroDef(ltSPADESUIT, "spadesuit", 0); - - AddMacroDef(ltTABBING, "tabbing", 2); - AddMacroDef(ltTABLEOFCONTENTS, "tableofcontents", 0); - AddMacroDef(ltTABLE, "table", 1); - AddMacroDef(ltTABULAR, "tabular", 2, FALSE); - AddMacroDef(ltTAB, "tab", 0); - AddMacroDef(ltTAU, "tau", 0); - AddMacroDef(ltTEXTRM, "textrm", 1); - AddMacroDef(ltTEXTSF, "textsf", 1); - AddMacroDef(ltTEXTTT, "texttt", 1); - AddMacroDef(ltTEXTBF, "textbf", 1); - AddMacroDef(ltTEXTIT, "textit", 1); - AddMacroDef(ltTEXTSL, "textsl", 1); - AddMacroDef(ltTEXTSC, "textsc", 1); - AddMacroDef(ltTEXTWIDTH, "textwidth", 1); - AddMacroDef(ltTEXTHEIGHT, "textheight", 1); - AddMacroDef(ltTEXTCOLOUR, "textcolour", 1); - AddMacroDef(ltTEX, "TeX", 0); - AddMacroDef(ltTHEBIBLIOGRAPHY, "thebibliography", 2); - AddMacroDef(ltTHETA, "theta", 0); - AddMacroDef(ltTIMES, "times", 0); - AddMacroDef(ltCAP_THETA, "Theta", 0); - AddMacroDef(ltTITLEPAGE, "titlepage", 1); - AddMacroDef(ltTITLE, "title", 1); - AddMacroDef(ltTINY, "tiny", 1); - AddMacroDef(ltTODAY, "today", 0); - AddMacroDef(ltTOPMARGIN, "topmargin", 1); - AddMacroDef(ltTOPSKIP, "topskip", 1); - AddMacroDef(ltTRIANGLE, "triangle", 0); - AddMacroDef(ltTTFAMILY, "ttfamily", 1); - AddMacroDef(ltTT, "tt", 1); - AddMacroDef(ltTYPEIN, "typein", 1); - AddMacroDef(ltTYPEOUT, "typeout", 1); - AddMacroDef(ltTWOCOLWIDTHA, "twocolwidtha", 1); - AddMacroDef(ltTWOCOLWIDTHB, "twocolwidthb", 1); - AddMacroDef(ltTWOCOLSPACING, "twocolspacing", 1); - AddMacroDef(ltTWOCOLITEMRULED, "twocolitemruled", 2); - AddMacroDef(ltTWOCOLITEM, "twocolitem", 2); - AddMacroDef(ltTWOCOLLIST, "twocollist", 1); - AddMacroDef(ltTWOCOLUMN, "twocolumn", 0); - AddMacroDef(ltTHEPAGE, "thepage", 0); - AddMacroDef(ltTHECHAPTER, "thechapter", 0); - AddMacroDef(ltTHESECTION, "thesection", 0); - AddMacroDef(ltTHISPAGESTYLE, "thispagestyle", 1); - - AddMacroDef(ltUNDERLINE, "underline", 1); - AddMacroDef(ltUPSILON, "upsilon", 0); - AddMacroDef(ltCAP_UPSILON, "Upsilon", 0); - AddMacroDef(ltUPARROW, "uparrow", 0); - AddMacroDef(ltUPARROW2, "Uparrow", 0); - AddMacroDef(ltUPPERCASE, "uppercase", 1); - AddMacroDef(ltUPSHAPE, "upshape", 1); - AddMacroDef(ltURLREF, "urlref", 2); - AddMacroDef(ltUSEPACKAGE, "usepackage", 1); - - AddMacroDef(ltVAREPSILON, "varepsilon", 0); - AddMacroDef(ltVARPHI, "varphi", 0); - AddMacroDef(ltVARPI, "varpi", 0); - AddMacroDef(ltVARRHO, "varrho", 0); - AddMacroDef(ltVARSIGMA, "varsigma", 0); - AddMacroDef(ltVARTHETA, "vartheta", 0); - AddMacroDef(ltVDOTS, "vdots", 0); - AddMacroDef(ltVEE, "vee", 0); - AddMacroDef(ltVERBATIMINPUT, "verbatiminput", 1); - AddMacroDef(ltVERBATIM, "verbatim", 1); - AddMacroDef(ltVERBSTAR, "verb*", 1); - AddMacroDef(ltVERB, "verb", 1); - AddMacroDef(ltVERSE, "verse", 1); - AddMacroDef(ltVFILL, "vfill", 0); - AddMacroDef(ltVLINE, "vline", 0); - AddMacroDef(ltVOID, "void", 0); - AddMacroDef(ltVDASH, "vdash", 0); - AddMacroDef(ltVRULE, "vrule", 0); - AddMacroDef(ltVSPACESTAR, "vspace*", 1); - AddMacroDef(ltVSKIPSTAR, "vskip*", 1); - AddMacroDef(ltVSPACE, "vspace", 1); - AddMacroDef(ltVSKIP, "vskip", 1); - - AddMacroDef(ltWEDGE, "wedge", 0); - AddMacroDef(ltWXCLIPS, "wxclips", 0); - AddMacroDef(ltWINHELPIGNORE, "winhelpignore", 1); - AddMacroDef(ltWINHELPONLY, "winhelponly", 1); - AddMacroDef(ltWP, "wp", 0); - - AddMacroDef(ltXI, "xi", 0); - AddMacroDef(ltCAP_XI, "Xi", 0); - AddMacroDef(ltXLPIGNORE, "xlpignore", 1); - AddMacroDef(ltXLPONLY, "xlponly", 1); - - AddMacroDef(ltZETA, "zeta", 0); - - AddMacroDef(ltSPACE, " ", 0); - AddMacroDef(ltBACKSLASHCHAR, "\\", 0); - AddMacroDef(ltPIPE, "|", 0); - AddMacroDef(ltFORWARDSLASH, "/", 0); - AddMacroDef(ltUNDERSCORE, "_", 0); - AddMacroDef(ltAMPERSAND, "&", 0); - AddMacroDef(ltPERCENT, "%", 0); - AddMacroDef(ltDOLLAR, "$", 0); - AddMacroDef(ltHASH, "#", 0); - AddMacroDef(ltLPARENTH, "(", 0); - AddMacroDef(ltRPARENTH, ")", 0); - AddMacroDef(ltLBRACE, "{", 0); - AddMacroDef(ltRBRACE, "}", 0); -// AddMacroDef(ltEQUALS, "=", 0); - AddMacroDef(ltRANGLEBRA, ">", 0); - AddMacroDef(ltLANGLEBRA, "<", 0); - AddMacroDef(ltPLUS, "+", 0); - AddMacroDef(ltDASH, "-", 0); - AddMacroDef(ltAT_SYMBOL, "@", 0); -// AddMacroDef(ltSINGLEQUOTE, "'", 0); -// AddMacroDef(ltBACKQUOTE, "`", 0); -} - -/* - * Default behaviour, should be called by client if can't match locally. - * - */ - -// Called on start/end of macro examination -void DefaultOnMacro(int macroId, int no_args, bool start) -{ - switch (macroId) - { - // Default behaviour for abstract - case ltABSTRACT: - { - if (start) - { - // Write the heading - FakeCurrentSection(AbstractNameString); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - else - { - if (DocumentStyle == LATEX_ARTICLE) - sectionNo --; - else - chapterNo --; - } - break; - } - - // Default behaviour for glossary - case ltHELPGLOSSARY: - { - if (start) - { - // Write the heading - FakeCurrentSection(GlossaryNameString); - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - if ((convertMode == TEX_RTF) && !winHelp) - { - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - } - break; - } - case ltSPECIALAMPERSAND: - if (start) - TexOutput(" "); - break; - - case ltCINSERT: - if (start) - TexOutput("<<", TRUE); - break; - case ltCEXTRACT: - if (start) - TexOutput(">>", TRUE); - break; - case ltDESTRUCT: - if (start) - TexOutput("~", TRUE); - break; - case ltTILDE: - if (start) - TexOutput("~", TRUE); - break; - case ltSPECIALTILDE: - if (start) - TexOutput(" ", TRUE); - break; - case ltUNDERSCORE: - if (start) - TexOutput("_", TRUE); - break; - case ltHASH: - if (start) - TexOutput("#", TRUE); - break; - case ltAMPERSAND: - if (start) - TexOutput("&", TRUE); - break; - case ltSPACE: - if (start) - TexOutput(" ", TRUE); - break; - case ltPIPE: - if (start) - TexOutput("|", TRUE); - break; - case ltPERCENT: - if (start) - TexOutput("%", TRUE); - break; - case ltDOLLAR: - if (start) - TexOutput("$", TRUE); - break; - case ltLPARENTH: - if (start) - TexOutput("", TRUE); - break; - case ltRPARENTH: - if (start) - TexOutput("", TRUE); - break; - case ltLBRACE: - if (start) - TexOutput("{", TRUE); - break; - case ltRBRACE: - if (start) - TexOutput("}", TRUE); - break; - case ltCOPYRIGHT: - if (start) - TexOutput("(c)", TRUE); - break; - case ltREGISTERED: - if (start) - TexOutput("(r)", TRUE); - break; - case ltBACKSLASH: - if (start) - TexOutput("\\", TRUE); - break; - case ltLDOTS: - case ltCDOTS: - if (start) - TexOutput("...", TRUE); - break; - case ltVDOTS: - if (start) - TexOutput("|", TRUE); - break; - case ltLATEX: - if (start) - TexOutput("LaTeX", TRUE); - break; - case ltTEX: - if (start) - TexOutput("TeX", TRUE); - break; - case ltPOUNDS: - if (start) - TexOutput("£", TRUE); - break; - case ltSPECIALDOUBLEDOLLAR: // Interpret as center - OnMacro(ltCENTER, no_args, start); - break; - case ltEMPH: - case ltTEXTSL: - case ltSLSHAPE: - case ltSL: - OnMacro(ltIT, no_args, start); - break; - case ltPARAGRAPH: - case ltPARAGRAPHSTAR: - case ltSUBPARAGRAPH: - case ltSUBPARAGRAPHSTAR: - OnMacro(ltSUBSUBSECTION, no_args, start); - break; - case ltTODAY: - { - if (start) - { - time_t when; - (void) time(&when); - TexOutput(ctime(&when), TRUE); - } - break; - } - case ltNOINDENT: - if (start) - ParIndent = 0; - break; - - // Symbols - case ltALPHA: - if (start) TexOutput("alpha"); - break; - case ltBETA: - if (start) TexOutput("beta"); - break; - case ltGAMMA: - if (start) TexOutput("gamma"); - break; - case ltDELTA: - if (start) TexOutput("delta"); - break; - case ltEPSILON: - case ltVAREPSILON: - if (start) TexOutput("epsilon"); - break; - case ltZETA: - if (start) TexOutput("zeta"); - break; - case ltETA: - if (start) TexOutput("eta"); - break; - case ltTHETA: - case ltVARTHETA: - if (start) TexOutput("theta"); - break; - case ltIOTA: - if (start) TexOutput("iota"); - break; - case ltKAPPA: - if (start) TexOutput("kappa"); - break; - case ltLAMBDA: - if (start) TexOutput("lambda"); - break; - case ltMU: - if (start) TexOutput("mu"); - break; - case ltNU: - if (start) TexOutput("nu"); - break; - case ltXI: - if (start) TexOutput("xi"); - break; - case ltPI: - case ltVARPI: - if (start) TexOutput("pi"); - break; - case ltRHO: - case ltVARRHO: - if (start) TexOutput("rho"); - break; - case ltSIGMA: - case ltVARSIGMA: - if (start) TexOutput("sigma"); - break; - case ltTAU: - if (start) TexOutput("tau"); - break; - case ltUPSILON: - if (start) TexOutput("upsilon"); - break; - case ltPHI: - case ltVARPHI: - if (start) TexOutput("phi"); - break; - case ltCHI: - if (start) TexOutput("chi"); - break; - case ltPSI: - if (start) TexOutput("psi"); - break; - case ltOMEGA: - if (start) TexOutput("omega"); - break; - case ltCAP_GAMMA: - if (start) TexOutput("GAMMA"); - break; - case ltCAP_DELTA: - if (start) TexOutput("DELTA"); - break; - case ltCAP_THETA: - if (start) TexOutput("THETA"); - break; - case ltCAP_LAMBDA: - if (start) TexOutput("LAMBDA"); - break; - case ltCAP_XI: - if (start) TexOutput("XI"); - break; - case ltCAP_PI: - if (start) TexOutput("PI"); - break; - case ltCAP_SIGMA: - if (start) TexOutput("SIGMA"); - break; - case ltCAP_UPSILON: - if (start) TexOutput("UPSILON"); - break; - case ltCAP_PHI: - if (start) TexOutput("PHI"); - break; - case ltCAP_PSI: - if (start) TexOutput("PSI"); - break; - case ltCAP_OMEGA: - if (start) TexOutput("OMEGA"); - break; - - // Binary operation symbols - case ltLE: - case ltLEQ: - if (start) TexOutput("<="); - break; - case ltLL: - if (start) TexOutput("<<"); - break; - case ltSUBSET: - if (start) TexOutput("SUBSET"); - break; - case ltSUBSETEQ: - if (start) TexOutput("SUBSETEQ"); - break; - case ltIN: - if (start) TexOutput("IN"); - break; - case ltVDASH: - if (start) TexOutput("VDASH"); - break; - case ltMODELS: - if (start) TexOutput("MODELS"); - break; - case ltGE: - case ltGEQ: - if (start) TexOutput(">="); - break; - case ltGG: - if (start) TexOutput(">>"); - break; - case ltSUPSET: - if (start) TexOutput("SUPSET"); - break; - case ltSUPSETEQ: - if (start) TexOutput("SUPSETEQ"); - break; - case ltNI: - if (start) TexOutput("NI"); - break; - case ltDASHV: - if (start) TexOutput("DASHV"); - break; - case ltPERP: - if (start) TexOutput("PERP"); - break; - case ltNEQ: - if (start) TexOutput("NEQ"); - break; - case ltDOTEQ: - if (start) TexOutput("DOTEQ"); - break; - case ltAPPROX: - if (start) TexOutput("APPROX"); - break; - case ltCONG: - if (start) TexOutput("CONG"); - break; - case ltEQUIV: - if (start) TexOutput("EQUIV"); - break; - case ltPROPTO: - if (start) TexOutput("PROPTO"); - break; - case ltPREC: - if (start) TexOutput("PREC"); - break; - case ltPRECEQ: - if (start) TexOutput("PRECEQ"); - break; - case ltPARALLEL: - if (start) TexOutput("|"); - break; - case ltSIM: - if (start) TexOutput("~"); - break; - case ltSIMEQ: - if (start) TexOutput("SIMEQ"); - break; - case ltASYMP: - if (start) TexOutput("ASYMP"); - break; - case ltSMILE: - if (start) TexOutput(":-)"); - break; - case ltFROWN: - if (start) TexOutput(":-("); - break; - case ltSUCC: - if (start) TexOutput("SUCC"); - break; - case ltSUCCEQ: - if (start) TexOutput("SUCCEQ"); - break; - case ltMID: - if (start) TexOutput("|"); - break; - - // Negated relation symbols - case ltNOTEQ: - if (start) TexOutput("!="); - break; - case ltNOTIN: - if (start) TexOutput("NOTIN"); - break; - case ltNOTSUBSET: - if (start) TexOutput("NOTSUBSET"); - break; - - // Arrows - case ltLEFTARROW: - if (start) TexOutput("<--"); - break; - case ltLEFTARROW2: - if (start) TexOutput("<=="); - break; - case ltRIGHTARROW: - if (start) TexOutput("-->"); - break; - case ltRIGHTARROW2: - if (start) TexOutput("==>"); - break; - case ltLEFTRIGHTARROW: - if (start) TexOutput("<-->"); - break; - case ltLEFTRIGHTARROW2: - if (start) TexOutput("<==>"); - break; - case ltUPARROW: - if (start) TexOutput("UPARROW"); - break; - case ltUPARROW2: - if (start) TexOutput("UPARROW2"); - break; - case ltDOWNARROW: - if (start) TexOutput("DOWNARROW"); - break; - case ltDOWNARROW2: - if (start) TexOutput("DOWNARROW2"); - break; - // Miscellaneous symbols - case ltALEPH: - if (start) TexOutput("ALEPH"); - break; - case ltWP: - if (start) TexOutput("WP"); - break; - case ltRE: - if (start) TexOutput("RE"); - break; - case ltIM: - if (start) TexOutput("IM"); - break; - case ltEMPTYSET: - if (start) TexOutput("EMPTYSET"); - break; - case ltNABLA: - if (start) TexOutput("NABLA"); - break; - case ltSURD: - if (start) TexOutput("SURD"); - break; - case ltPARTIAL: - if (start) TexOutput("PARTIAL"); - break; - case ltBOT: - if (start) TexOutput("BOT"); - break; - case ltFORALL: - if (start) TexOutput("FORALL"); - break; - case ltEXISTS: - if (start) TexOutput("EXISTS"); - break; - case ltNEG: - if (start) TexOutput("NEG"); - break; - case ltSHARP: - if (start) TexOutput("SHARP"); - break; - case ltANGLE: - if (start) TexOutput("ANGLE"); - break; - case ltTRIANGLE: - if (start) TexOutput("TRIANGLE"); - break; - case ltCLUBSUIT: - if (start) TexOutput("CLUBSUIT"); - break; - case ltDIAMONDSUIT: - if (start) TexOutput("DIAMONDSUIT"); - break; - case ltHEARTSUIT: - if (start) TexOutput("HEARTSUIT"); - break; - case ltSPADESUIT: - if (start) TexOutput("SPADESUIT"); - break; - case ltINFTY: - if (start) TexOutput("INFTY"); - break; - case ltPM: - if (start) TexOutput("PM"); - break; - case ltMP: - if (start) TexOutput("MP"); - break; - case ltTIMES: - if (start) TexOutput("TIMES"); - break; - case ltDIV: - if (start) TexOutput("DIV"); - break; - case ltCDOT: - if (start) TexOutput("CDOT"); - break; - case ltAST: - if (start) TexOutput("AST"); - break; - case ltSTAR: - if (start) TexOutput("STAR"); - break; - case ltCAP: - if (start) TexOutput("CAP"); - break; - case ltCUP: - if (start) TexOutput("CUP"); - break; - case ltVEE: - if (start) TexOutput("VEE"); - break; - case ltWEDGE: - if (start) TexOutput("WEDGE"); - break; - case ltCIRC: - if (start) TexOutput("CIRC"); - break; - case ltBULLET: - if (start) TexOutput("BULLET"); - break; - case ltDIAMOND: - if (start) TexOutput("DIAMOND"); - break; - case ltOSLASH: - if (start) TexOutput("OSLASH"); - break; - case ltBOX: - if (start) TexOutput("BOX"); - break; - case ltDIAMOND2: - if (start) TexOutput("DIAMOND2"); - break; - case ltBIGTRIANGLEDOWN: - if (start) TexOutput("BIGTRIANGLEDOWN"); - break; - case ltOPLUS: - if (start) TexOutput("OPLUS"); - break; - case ltOTIMES: - if (start) TexOutput("OTIMES"); - break; - case ltSS: - if (start) TexOutput("s"); - break; - case ltBACKSLASHRAW: - if (start) TexOutput("\\"); - break; - case ltLBRACERAW: - if (start) TexOutput("{"); - break; - case ltRBRACERAW: - if (start) TexOutput("}"); - break; - case ltSMALLSPACE1: - case ltSMALLSPACE2: - if (start) TexOutput(" "); - break; - default: - break; - } -} - -// Called on start/end of argument examination -bool DefaultOnArgument(int macroId, int arg_no, bool start) -{ - switch (macroId) - { - case ltREF: - { - if (arg_no == 1 && start) - { - char *refName = GetArgData(); - if (refName) - { - TexRef *texRef = FindReference(refName); - if (texRef) - { - // Must strip the 'section' or 'chapter' or 'figure' text - // from a normal 'ref' reference - char buf[150]; - strcpy(buf, texRef->sectionNumber); - int len = strlen(buf); - int i = 0; - if (strcmp(buf, "??") != 0) - { - while (i < len) - { - if (buf[i] == ' ') - { - i ++; - break; - } - else i ++; - } - } - TexOutput(texRef->sectionNumber + i, TRUE); - } - else - { - char buf[300]; - TexOutput("??", TRUE); - sprintf(buf, "Warning: unresolved reference %s.", refName); - OnInform(buf); - } - } - else TexOutput("??", TRUE); - return FALSE; - } - break; - } - case ltLABEL: - { - return FALSE; - break; - } - case ltAUTHOR: - { - if (start && (arg_no == 1)) - DocumentAuthor = GetArgChunk(); - return FALSE; - break; - } - case ltDATE: - { - if (start && (arg_no == 1)) - DocumentDate = GetArgChunk(); - return FALSE; - break; - } - case ltTITLE: - { - if (start && (arg_no == 1)) - DocumentTitle = GetArgChunk(); - return FALSE; - break; - } - case ltDOCUMENTCLASS: - case ltDOCUMENTSTYLE: - { - if (start && !IsArgOptional()) - { - DocumentStyleString = copystring(GetArgData()); - if (strncmp(DocumentStyleString, "art", 3) == 0) - DocumentStyle = LATEX_ARTICLE; - else if (strncmp(DocumentStyleString, "rep", 3) == 0) - DocumentStyle = LATEX_REPORT; - else if (strncmp(DocumentStyleString, "book", 4) == 0 || - strncmp(DocumentStyleString, "thesis", 6) == 0) - DocumentStyle = LATEX_BOOK; - else if (strncmp(DocumentStyleString, "letter", 6) == 0) - DocumentStyle = LATEX_LETTER; - else if (strncmp(DocumentStyleString, "slides", 6) == 0) - DocumentStyle = LATEX_SLIDES; - - if (StringMatch("10", DocumentStyleString)) - SetFontSizes(10); - else if (StringMatch("11", DocumentStyleString)) - SetFontSizes(11); - else if (StringMatch("12", DocumentStyleString)) - SetFontSizes(12); - - OnMacro(ltHELPFONTSIZE, 1, TRUE); - sprintf(currentArgData, "%d", normalFont); - haveArgData = TRUE; - OnArgument(ltHELPFONTSIZE, 1, TRUE); - OnArgument(ltHELPFONTSIZE, 1, FALSE); - haveArgData = FALSE; - OnMacro(ltHELPFONTSIZE, 1, FALSE); - } - else if (start && IsArgOptional()) - { - MinorDocumentStyleString = copystring(GetArgData()); - - if (StringMatch("10", MinorDocumentStyleString)) - SetFontSizes(10); - else if (StringMatch("11", MinorDocumentStyleString)) - SetFontSizes(11); - else if (StringMatch("12", MinorDocumentStyleString)) - SetFontSizes(12); - } - return FALSE; - break; - } - case ltBIBLIOGRAPHYSTYLE: - { - if (start && !IsArgOptional()) - BibliographyStyleString = copystring(GetArgData()); - return FALSE; - break; - } - case ltPAGESTYLE: - { - if (start && !IsArgOptional()) - { - if (PageStyle) delete[] PageStyle; - PageStyle = copystring(GetArgData()); - } - return FALSE; - break; - } -/* - case ltLHEAD: - { - if (start && !IsArgOptional()) - LeftHeader = GetArgChunk(); - return FALSE; - break; - } - case ltLFOOT: - { - if (start && !IsArgOptional()) - LeftFooter = GetArgChunk(); - return FALSE; - break; - } - case ltCHEAD: - { - if (start && !IsArgOptional()) - CentreHeader = GetArgChunk(); - return FALSE; - break; - } - case ltCFOOT: - { - if (start && !IsArgOptional()) - CentreFooter = GetArgChunk(); - return FALSE; - break; - } - case ltRHEAD: - { - if (start && !IsArgOptional()) - RightHeader = GetArgChunk(); - return FALSE; - break; - } - case ltRFOOT: - { - if (start && !IsArgOptional()) - RightFooter = GetArgChunk(); - return FALSE; - break; - } -*/ - case ltCITE: - case ltSHORTCITE: - { - if (start && !IsArgOptional()) - { - char *citeKeys = GetArgData(); - int pos = 0; - char *citeKey = ParseMultifieldString(citeKeys, &pos); - while (citeKey) - { - AddCitation(citeKey); - TexRef *ref = FindReference(citeKey); - if (ref) - { - TexOutput(ref->sectionNumber, TRUE); - if (strcmp(ref->sectionNumber, "??") == 0) - { - char buf[300]; - sprintf(buf, "Warning: unresolved citation %s.", citeKey); - OnInform(buf); - } - } - citeKey = ParseMultifieldString(citeKeys, &pos); - if (citeKey) - { - TexOutput(", ", TRUE); - } - } - return FALSE; - } - break; - } - case ltNOCITE: - { - if (start && !IsArgOptional()) - { - char *citeKey = GetArgData(); - AddCitation(citeKey); - return FALSE; - } - break; - } - case ltHELPFONTSIZE: - { - if (start) - { - char *data = GetArgData(); - if (strcmp(data, "10") == 0) - SetFontSizes(10); - else if (strcmp(data, "11") == 0) - SetFontSizes(11); - else if (strcmp(data, "12") == 0) - SetFontSizes(12); - return FALSE; - } - break; - } - case ltPAGEREF: - { - if (start) - { - TexOutput(" ??", TRUE); - return FALSE; - } - break; - } - case ltPARSKIP: - { - if (start && arg_no == 1) - { - char *data = GetArgData(); - ParSkip = ParseUnitArgument(data); - return FALSE; - } - break; - } - case ltPARINDENT: - { - if (start && arg_no == 1) - { - char *data = GetArgData(); - ParIndent = ParseUnitArgument(data); - return FALSE; - } - break; - } - case ltSL: - { - return OnArgument(ltIT, arg_no, start); - break; - } - case ltSPECIALDOUBLEDOLLAR: - { - return OnArgument(ltCENTER, arg_no, start); - break; - } - case ltPARAGRAPH: - case ltPARAGRAPHSTAR: - case ltSUBPARAGRAPH: - case ltSUBPARAGRAPHSTAR: - { - return OnArgument(ltSUBSUBSECTION, arg_no, start); - break; - } - case ltTYPEOUT: - { - if (start) - OnInform(GetArgData()); - break; - } - case ltFOOTNOTE: - { - if (start) - TexOutput(" (", TRUE); - else - TexOutput(")", TRUE); - break; - } - case ltBIBLIOGRAPHY: - { - if (start) - { - FILE *fd; - int ch; - char smallBuf[2]; - smallBuf[1] = 0; - if ((fd = fopen(TexBibName, "r"))) - { - ch = getc(fd); - smallBuf[0] = ch; - while (ch != EOF) - { - TexOutput(smallBuf); - ch = getc(fd); - smallBuf[0] = ch; - } - fclose(fd); - } - else - { - OnInform("Run Tex2RTF again to include bibliography."); - } - - // Read in the .bib file, resolve all known references, write out the RTF. - char *allFiles = GetArgData(); - int pos = 0; - char *bibFile = ParseMultifieldString(allFiles, &pos); - while (bibFile) - { - char fileBuf[300]; - strcpy(fileBuf, bibFile); - wxString actualFile = TexPathList.FindValidPath(fileBuf); - if (actualFile == "") - { - strcat(fileBuf, ".bib"); - actualFile = TexPathList.FindValidPath(fileBuf); - } - if (actualFile != "") - { - if (!ReadBib((char*) (const char*) actualFile)) - { - char buf[300]; - sprintf(buf, ".bib file %s not found or malformed", (const char*) actualFile); - OnError(buf); - } - } - else - { - char buf[300]; - sprintf(buf, ".bib file %s not found", fileBuf); - OnError(buf); - } - bibFile = ParseMultifieldString(allFiles, &pos); - } - - ResolveBibReferences(); - - // Write it a new bib section in the appropriate format. - FILE *save1 = CurrentOutput1; - FILE *save2 = CurrentOutput2; - FILE *Biblio = fopen(TexTmpBibName, "w"); - SetCurrentOutput(Biblio); - OutputBib(); - fclose(Biblio); - if (wxFileExists(TexTmpBibName)) - { - if (wxFileExists(TexBibName)) wxRemoveFile(TexBibName); - wxRenameFile(TexTmpBibName, TexBibName); - } - SetCurrentOutputs(save1, save2); - return FALSE; - } - break; - } - case ltMULTICOLUMN: - { - if (start && (arg_no == 3)) - return TRUE; - else - return FALSE; - break; - } - case ltSCSHAPE: - case ltTEXTSC: - case ltSC: - { - if (start && (arg_no == 1)) - { - char *s = GetArgData(); - if (s) - { - char *s1 = copystring(s); - int i; - for (i = 0; i < (int)strlen(s); i++) - s1[i] = toupper(s[i]); - TexOutput(s1); - delete[] s1; - return FALSE; - } - else return TRUE; - - } - return TRUE; - break; - } - case ltLOWERCASE: - { - if (start && (arg_no == 1)) - { - char *s = GetArgData(); - if (s) - { - char *s1 = copystring(s); - int i; - for (i = 0; i < (int)strlen(s); i++) - s1[i] = tolower(s[i]); - TexOutput(s1); - delete[] s1; - return FALSE; - } - else return TRUE; - - } - return TRUE; - break; - } - case ltUPPERCASE: - { - if (start && (arg_no == 1)) - { - char *s = GetArgData(); - if (s) - { - char *s1 = copystring(s); - int i; - for (i = 0; i < (int)strlen(s); i++) - s1[i] = toupper(s[i]); - TexOutput(s1); - delete[] s1; - return FALSE; - } - else return TRUE; - - } - return TRUE; - break; - } - case ltPOPREF: // Ignore second argument by default - { - if (start && (arg_no == 1)) - return TRUE; - else - return FALSE; - break; - } - case ltTWOCOLUMN: - return TRUE; - break; - case ltXLPIGNORE: - return ((convertMode == TEX_XLP) ? FALSE : TRUE); - break; - case ltXLPONLY: - return ((convertMode != TEX_XLP) ? FALSE : TRUE); - break; - case ltHTMLIGNORE: - return ((convertMode == TEX_HTML) ? FALSE : TRUE); - break; - case ltHTMLONLY: - return ((convertMode != TEX_HTML) ? FALSE : TRUE); - break; - case ltRTFIGNORE: - return (((convertMode == TEX_RTF) && !winHelp) ? FALSE : TRUE); - break; - case ltRTFONLY: - return (!((convertMode == TEX_RTF) && !winHelp) ? FALSE : TRUE); - break; - case ltWINHELPIGNORE: - return (winHelp ? FALSE : TRUE); - break; - case ltWINHELPONLY: - return (!winHelp ? FALSE : TRUE); - break; - case ltLATEXIGNORE: - return TRUE; - break; - case ltLATEXONLY: - return FALSE; - break; - case ltCLINE: - case ltARABIC: - case ltALPH1: - case ltALPH2: - case ltROMAN: - case ltROMAN2: - case ltSETCOUNTER: - case ltADDTOCOUNTER: - case ltADDCONTENTSLINE: - case ltNEWCOUNTER: - case ltTEXTWIDTH: - case ltTEXTHEIGHT: - case ltBASELINESKIP: - case ltVSPACESTAR: - case ltHSPACESTAR: - case ltVSPACE: - case ltHSPACE: - case ltVSKIPSTAR: - case ltHSKIPSTAR: - case ltVSKIP: - case ltHSKIP: - case ltPAGENUMBERING: - case ltTHEPAGE: - case ltTHECHAPTER: - case ltTHESECTION: - case ltITEMSEP: - case ltFANCYPLAIN: - case ltCHEAD: - case ltRHEAD: - case ltLHEAD: - case ltCFOOT: - case ltRFOOT: - case ltLFOOT: - case ltTHISPAGESTYLE: - case ltMARKRIGHT: - case ltMARKBOTH: - case ltEVENSIDEMARGIN: - case ltODDSIDEMARGIN: - case ltMARGINPAR: - case ltMARGINPARWIDTH: - case ltMARGINPARSEP: - case ltMARGINPAREVEN: - case ltMARGINPARODD: - case ltTWOCOLWIDTHA: - case ltTWOCOLWIDTHB: - case ltTWOCOLSPACING: - case ltSETHEADER: - case ltSETFOOTER: - case ltINDEX: - case ltITEM: - case ltBCOL: - case ltFCOL: - case ltSETHOTSPOTCOLOUR: - case ltSETHOTSPOTCOLOR: - case ltSETHOTSPOTUNDERLINE: - case ltSETTRANSPARENCY: - case ltUSEPACKAGE: - case ltBACKGROUND: - case ltBACKGROUNDCOLOUR: - case ltBACKGROUNDIMAGE: - case ltLINKCOLOUR: - case ltFOLLOWEDLINKCOLOUR: - case ltTEXTCOLOUR: - case ltIMAGE: - case ltIMAGEMAP: - case ltIMAGEL: - case ltIMAGER: - case ltPOPREFONLY: - case ltINSERTATLEVEL: - return FALSE; - break; - case ltTABULAR: - case ltSUPERTABULAR: - { - if (arg_no == 2) - return TRUE; - else return FALSE; - break; - } - case ltINDENTED: - { - if (arg_no == 2) return TRUE; - else return FALSE; - break; - } - case ltSIZEDBOX: - case ltSIZEDBOXD: - { - if (arg_no == 2) return TRUE; - else return FALSE; - break; - } - case ltDEFINECOLOUR: - case ltDEFINECOLOR: - { - static int redVal = 0; - static int greenVal = 0; - static int blueVal = 0; - static char *colourName = NULL; - if (start) - { - switch (arg_no) - { - case 1: - { - if (colourName) delete[] colourName; - colourName = copystring(GetArgData()); - break; - } - case 2: - { - redVal = atoi(GetArgData()); - break; - } - case 3: - { - greenVal = atoi(GetArgData()); - break; - } - case 4: - { - blueVal = atoi(GetArgData()); - AddColour(colourName, redVal, greenVal, blueVal); - break; - } - default: - break; - } - } - return FALSE; - break; - } - case ltFIGURE: - case ltFIGURESTAR: - case ltNORMALBOX: - case ltNORMALBOXD: - default: - { - if (IsArgOptional()) - return FALSE; - else - return TRUE; - break; - } - } - return TRUE; -} - diff --git a/utils/tex2rtf/src/tex2any.h b/utils/tex2rtf/src/tex2any.h deleted file mode 100644 index 37d25fb7b8..0000000000 --- a/utils/tex2rtf/src/tex2any.h +++ /dev/null @@ -1,1068 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tex2any.h -// Purpose: Latex conversion header -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#include -#include "wx/wx.h" -#include "wx/utils.h" -#include "wx/list.h" -#include "wx/hash.h" -#include "wxhlpblk.h" - -/* - * Conversion modes - * - */ - -#define TEX_RTF 1 -#define TEX_XLP 2 -#define TEX_HTML 3 - -/* - * We have a list of macro definitions which we must define - * in advance to enable the parsing to recognize macros. - */ - -#define FORBID_OK 0 -#define FORBID_WARN 1 -#define FORBID_ABSOLUTELY 2 - -class TexMacroDef: public wxObject -{ - public: - int no_args; - char *name; - bool ignore; - int forbidden; - int macroId; - - TexMacroDef(int the_id, char *the_name, int n, bool ig, bool forbidLevel = FORBID_OK); - ~TexMacroDef(void); -}; - -#define CHUNK_TYPE_MACRO 1 -#define CHUNK_TYPE_ARG 2 -#define CHUNK_TYPE_STRING 3 - -/* - We have nested lists to represent the Tex document. - Each element of a list of chunks can be one of: - - a plain string - - a macro with/without arguments. Arguments are lists of TexChunks. - -Example (\toplevel is implicit but made explicit here): - -AddMacroDef(ltMYMAT, "mymat", 2); - -\toplevel{The cat sat on the \mymat{very coarse and {\it cheap}}{mat}}. - -Parsed as: - -TexChunk: type = macro, name = toplevel, no_args = 1 - Children: - - TexChunk: type = argument - - Children: - TexChunk: type = string, value = "The cat sat on the " - TexChunk: type = macro, name = mymat, no_args = 2 - - Children: - TexChunk: type = argument - - Children: - TexChunk: type = string, value = "very coarse and " - TexChunk: type = macro, name = it, no_args = 1 - - Children: - TexChunk: type = argument - - Children: - TexChunk: type = string, value = "cheap" - - TexChunk: type = argument - - Children: - TexChunk: type = string, value = mat - */ - -class TexChunk -{ - public: - int type; -// char *name; - TexMacroDef *def; - char *value; - int macroId; - int no_args; - int argn; - bool optional; // Is an optional argument - - wxList children; - TexChunk(int the_type, TexMacroDef *the_def = NULL); - TexChunk(TexChunk& toCopy); - virtual ~TexChunk(void); -}; - -// Represents a topic, used for generating a table of contents file (.cnt). -// Also for storing keywords found in a topic, a list of which is then inserted -// into the topic in the next pass. -class TexTopic: public wxObject -{ - public: - // This flag is set to indicate that the topic has children. - // If this is the case, we know to insert a 'book' icon at this level, - // not just a 'page' icon. We don't want to have to open a book only - // to find there's only one page in it. We might force a book to be used if - // a top-level topic has no children (?) - bool hasChildren; - char *filename; - wxStringList *keywords; - TexTopic(char *f = NULL); - ~TexTopic(void); -}; -extern wxHashTable TopicTable; -void AddKeyWordForTopic(char *topic, char *entry, char *filename = NULL); -void ClearKeyWordTable(void); - -extern TexChunk *TopLevel; -extern wxHashTable MacroDefs; -extern wxStringList IgnorableInputFiles; // Ignorable \input files, e.g. psbox.tex - -bool read_a_line(char *buf); -bool TexLoadFile(char *filename); -int ParseArg(TexChunk *thisArg, wxList& children, char *buffer, int pos, - char *environment = NULL, bool parseArgToBrace = TRUE, TexChunk *customMacroArgs = NULL); -int ParseMacroBody(char *macro_name, TexChunk *parent, int no_args, - char *buffer, int pos, char *environment = NULL, bool parseArgToBrace = TRUE, TexChunk *customMacroArgs = NULL); -void TraverseDocument(void); -void TraverseFromChunk(TexChunk *chunk, wxNode *thisNode = NULL, bool childrenOnly = FALSE); -#define TraverseChildrenFromChunk(arg) TraverseFromChunk(arg, NULL, TRUE) -void SetCurrentOutput(FILE *fd); -void SetCurrentOutputs(FILE *fd1, FILE *fd2); -extern FILE *CurrentOutput1; -extern FILE *CurrentOutput2; -void AddMacroDef(int the_id, char *name, int n, bool ignore = FALSE, bool forbidden = FALSE); -void TexInitialize(int bufSize); -void TexCleanUp(void); -void TexOutput(char *s, bool ordinaryText = FALSE); -char *GetArgData(TexChunk *chunk); -char *GetArgData(void); // Get the string for the current argument -int GetNoArgs(void); // Get the number of arguments for the current macro -TexChunk *GetArgChunk(void); // Get the chunk for the current argument -TexChunk *GetTopLevelChunk(void); // Get the chunk for the top level -TexChunk *GetNextChunk(void); // Look ahead to the next chunk -bool IsArgOptional(void); // Is this argument an optional argument? -void DefineDefaultMacros(void); // Optional set of default macros -int GetCurrentColumn(void); // number of characters on current line -char *ConvertCase(char *s); // Convert case, according to upperCaseNames setting. -extern wxPathList TexPathList; // Path list, can be used for file searching. - -// Define a variable value from the .ini file -char *RegisterSetting(char *settingName, char *settingValue, bool interactive = TRUE); - -// Major document styles -#define LATEX_REPORT 1 -#define LATEX_ARTICLE 2 -#define LATEX_LETTER 3 -#define LATEX_BOOK 4 -#define LATEX_SLIDES 5 - -extern TexChunk *DocumentTitle; -extern TexChunk *DocumentAuthor; -extern TexChunk *DocumentDate; -extern int DocumentStyle; -extern int MinorDocumentStyle; -extern char *BibliographyStyleString; -extern char *DocumentStyleString; -extern char *MinorDocumentStyleString; - -extern int normalFont; -extern int smallFont; -extern int tinyFont; -extern int largeFont1; -extern int LargeFont2; -extern int LARGEFont3; -extern int hugeFont1; -extern int HugeFont2; -extern int HUGEFont3; - -/* - * USER-ADJUSTABLE SETTINGS - * - */ - -// Section font sizes -extern int chapterFont; -extern int sectionFont; -extern int subsectionFont; -extern int titleFont; -extern int authorFont; -extern bool winHelp; // Output in Windows Help format if TRUE, linear otherwise -extern bool isInteractive; -extern bool runTwice; -extern int convertMode; -extern bool stopRunning; -extern int mirrorMargins; -extern bool headerRule; -extern bool footerRule; -extern int labelIndentTab; // From left indent to item label (points) -extern int itemIndentTab; // From left indent to item (points) -extern bool useUpButton; -extern int htmlBrowseButtons; -extern bool useHeadingStyles; // Insert \s1, s2 etc. -extern bool useWord; // Insert Word table of contents, etc. etc. -extern bool indexSubsections; // put subsections in index -extern bool compatibilityMode; -extern bool generateHPJ; // Generate WinHelp HPJ file -extern char *winHelpTitle; // Title for Windows Help file -extern int defaultTableColumnWidth; -extern char *bitmapMethod; -extern bool truncateFilenames; // Truncate for DOS -extern int winHelpVersion; // Version e.g. 4 for Win95 -extern bool winHelpContents; // Generate .cnt file -extern bool htmlIndex; // Generate .htx HTML index file -extern bool htmlFrameContents; // Use frames for HTML contents page -extern int contentsDepth; // Depth of contents for linear RTF files -extern bool upperCaseNames; // Filenames; default is lower case -extern char *backgroundImageString; // HTML background image -extern char *backgroundColourString; // HTML background colour -extern char *textColourString; // HTML text colour -extern char *linkColourString; // HTML link colour -extern char *followedLinkColourString; // HTML followed link colour -extern bool combineSubSections; // Stop splitting files below section -extern bool htmlWorkshopFiles; // generate HTML Help Workshop project files - -// Names to help with internationalisation -extern char *ContentsNameString; -extern char *AbstractNameString; -extern char *GlossaryNameString; -extern char *ReferencesNameString; -extern char *FiguresNameString; -extern char *TablesNameString; -extern char *FigureNameString; -extern char *TableNameString; -extern char *IndexNameString; -extern char *ChapterNameString; -extern char *SectionNameString; -extern char *SubsectionNameString; -extern char *SubsubsectionNameString; -extern char *UpNameString; - -/* - * HTML button identifiers: what kind of browse buttons - * are placed in HTML files, if any. - * - */ - -#define HTML_BUTTONS_NONE 0 -#define HTML_BUTTONS_BITMAP 1 -#define HTML_BUTTONS_TEXT 2 - -/* - * Section numbering - * - */ - -extern int chapterNo; -extern int sectionNo; -extern int subsectionNo; -extern int subsubsectionNo; -extern int figureNo; -extern int tableNo; - -extern int ParSkip; -extern int ParIndent; - -extern bool isSync; - -// Set by client and by Tex2Any -extern TexChunk *currentSection; - -// Header/footers/pagestyle -extern TexChunk * LeftHeaderOdd; -extern TexChunk * LeftFooterOdd; -extern TexChunk * CentreHeaderOdd; -extern TexChunk * CentreFooterOdd; -extern TexChunk * RightHeaderOdd; -extern TexChunk * RightFooterOdd; -extern TexChunk * LeftHeaderEven; -extern TexChunk * LeftFooterEven; -extern TexChunk * CentreHeaderEven; -extern TexChunk * CentreFooterEven; -extern TexChunk * RightHeaderEven; -extern TexChunk * RightFooterEven; -extern char * PageStyle; - -// Repeat the currentSection, either real (Chapter) or simulated (References) -extern void OutputCurrentSection(void); -extern void OutputCurrentSectionToString(char *buf); -extern void OutputChunkToString(TexChunk *chunk, char *buf); - -extern char *fakeCurrentSection; - -// Called by Tex2Any to simulate a section -extern void FakeCurrentSection(char *fakeSection, bool addToContents = TRUE); - -/* - * Local to Tex2Any library - * - */ - -extern char *currentArgData; -extern bool haveArgData; // If TRUE, we're simulating the data. -void StartSimulateArgument(char *data); -void EndSimulateArgument(void); - -/* - * Client-defined - * - */ - -// Called on start/end of macro examination -void OnMacro(int macroId, int no_args, bool start); - -// Called on start/end of argument examination. -// Return TRUE at the start of an argument to traverse -// (output) the argument. -bool OnArgument(int macroId, int arg_no, bool start); - -// Default: library-defined -void DefaultOnMacro(int macroId, int no_args, bool start); - -// Default: library-defined -bool DefaultOnArgument(int macroId, int arg_no, bool start); - -// Called on error -void OnError(char *msg); - -// Called for information -void OnInform(char *msg); - -// Special yield wrapper -void Tex2RTFYield(bool force = FALSE); - -/* - * Useful utilities - * - */ - -// Look for \label macro, use this ref name if found or -// make up a topic name otherwise. -char *FindTopicName(TexChunk *chunk); -// Force the current topic to be this (e.g. force 'references' label). -void ForceTopicName(char *name); -void ResetTopicCounter(void); - -// Parse unit eg. 14, 12pt, 34cm and return value in points. -int ParseUnitArgument(char *unitArg); - -// Set small, large, normal etc. point sizes for reference size -void SetFontSizes(int pointSize); - -/* - * Strip off any extension (dot something) from end of file, - * IF one exists. Inserts zero into buffer. - * - */ - -void StripExtension(char *buffer); - -/* - * Reference structure - * - */ - -class TexRef: public wxObject -{ - public: - char *refLabel; // Reference label - char *refFile; // Reference filename (can be NULL) - char *sectionNumber; // Section or figure number (as a string) - char *sectionName; // name e.g. 'section' - TexRef(char *label, char *file, char *section, char *sectionN = NULL) - { - refLabel = copystring(label); - refFile = file ? copystring(file) : (char*) NULL; - sectionNumber = section ? copystring(section) : copystring("??"); - sectionName = sectionN ? copystring(sectionN) : copystring("??"); - } - ~TexRef(void) - { - delete[] refLabel; delete[] refFile; delete[] sectionNumber; delete[] sectionName; - } -}; - -extern wxHashTable TexReferences; - -/* - * Add a reference - * - */ - -void AddTexRef(char *name, char *file = NULL, char *sectionName = NULL, - int chapter = 0, int section = 0, int subsection = 0, int subsubsection = 0); - -/* - * Read and write reference file (.ref), to resolve refs for second pass. - * - */ -void WriteTexReferences(char *filename); -void ReadTexReferences(char *filename); - -/* - * Bibliography stuff - * - */ - -class BibEntry: public wxObject -{ - public: - char *key; - - /* - * book, inbook, article, phdthesis, inproceedings, techreport - */ - char *type; - - /* - * Possible fields - * - */ - char *editor; - char *title; - char *booktitle; - char *author; - char *journal; - char *volume; - char *number; - char *year; - char *month; - char *pages; - char *chapter; - char *publisher; - char *address; - char *institution; - char *organization; - char *comment; - - inline BibEntry(void) - { - key = NULL; - type = NULL; - editor = NULL; - title = NULL; - booktitle = NULL; - author = NULL; - journal = NULL; - volume = NULL; - number = NULL; - chapter = NULL; - year = NULL; - month = NULL; - pages = NULL; - publisher = NULL; - address = NULL; - institution = NULL; - organization = NULL; - comment = NULL; - } -}; - -extern wxList BibList; -extern wxStringList CitationList; - -bool ReadBib(char *filename); -void OutputBib(void); -void ResolveBibReferences(void); -void AddCitation(char *citeKey); -TexRef *FindReference(char *key); - -/* - * Ability to customize, or at least suppress unknown macro errors - * - */ - -extern wxList CustomMacroList; - -#define CUSTOM_MACRO_IGNORE 0 -#define CUSTOM_MACRO_OUTPUT 1 -#define CUSTOM_MACRO_MARK 2 - -class CustomMacro: public wxObject -{ - public: - char *macroName; - char *macroBody; - int noArgs; - inline CustomMacro(char *name, int args, char *body) - { - noArgs = args; - macroName = copystring(name); - if (body) - macroBody = copystring(body); - else - macroBody = NULL; - } -}; - -bool ReadCustomMacros(char *filename); -void ShowCustomMacros(void); -CustomMacro *FindCustomMacro(char *name); -char *ParseMultifieldString(char *s, int *pos); - -/* - * Colour table stuff - * - */ - -class ColourTableEntry: public wxObject -{ - public: - char *name; - unsigned int red; - unsigned int green; - unsigned int blue; - - ColourTableEntry(char *theName, unsigned int r, unsigned int g, unsigned int b); - ~ColourTableEntry(void); -}; - -extern wxList ColourTable; -extern void AddColour(char *theName, unsigned int r, unsigned int g, unsigned int b); -extern int FindColourPosition(char *theName); -// Converts e.g. "red" -> "#FF0000" -extern bool FindColourHTMLString(char *theName, char *buf); -extern void InitialiseColourTable(void); - -#define ltABSTRACT 1 -#define ltADDCONTENTSLINE 2 -#define ltADDTOCOUNTER 3 -#define ltALPH1 4 -#define ltALPH2 5 -#define ltAPPENDIX 6 -#define ltARABIC 7 -#define ltARRAY 8 -#define ltAUTHOR 9 - -#define ltBACKSLASH 30 -#define ltBASELINESKIP 31 -#define ltBF 32 -#define ltBIBITEM 33 -#define ltBIBLIOGRAPHYSTYLE 34 -#define ltBIBLIOGRAPHY 35 -#define ltBOXIT 36 -#define ltBACKSLASHRAW 37 -#define ltBACKGROUND 38 -#define ltBACKGROUNDCOLOUR 39 -#define ltBACKGROUNDIMAGE 40 -#define ltBRCLEAR 41 - -#define ltCAPTIONSTAR 50 -#define ltCAPTION 51 -#define ltCDOTS 52 -#define ltCENTERLINE 53 -#define ltCENTERING 54 -#define ltCENTER 55 -#define ltCEXTRACT 56 -#define ltCHAPTERHEADING 57 -#define ltCHAPTERSTAR 58 -#define ltCHAPTER 59 -#define ltCINSERT 60 -#define ltCITE 61 -#define ltCLASS 62 -#define ltCLEARDOUBLEPAGE 63 -#define ltCLEARPAGE 64 -#define ltCLINE 65 -#define ltCLIPSFUNC 66 -#define ltCOLUMNSEP 67 -#define ltCOMMENT 68 -#define ltCOPYRIGHT 69 -#define ltCPARAM 70 - -#define ltCHEAD 71 -#define ltCFOOT 72 - -#define ltCHAPTERHEADINGSTAR 73 - -#define ltDATE 90 -#define ltDESCRIPTION 91 -#define ltDESTRUCT 92 -#define ltDOCUMENTSTYLE 93 -#define ltDOCUMENT 94 -#define ltDOUBLESPACE 95 -#define ltDEFINECOLOUR 96 -#define ltDEFINECOLOR 97 - -#define ltEM 120 -#define ltENUMERATE 121 -#define ltEQUATION 122 -#define ltEVENSIDEMARGIN 123 - -#define ltFBOX 150 -#define ltFIGURE 151 -#define ltFLUSHLEFT 152 -#define ltFLUSHRIGHT 153 -#define ltFOOTHEIGHT 154 -#define ltFOOTNOTE 155 -#define ltFOOTSKIP 156 -#define ltFRAMEBOX 157 -#define ltFUNCTIONSECTION 158 -#define ltFUNC 159 -#define ltFIGURESTAR 160 -#define ltFOOTNOTESIZE 161 -#define ltFOOTNOTEPOPUP 162 -#define ltFANCYPLAIN 163 -#define ltFCOL 164 -#define ltBCOL 165 -#define ltFOLLOWEDLINKCOLOUR 166 - -#define ltGLOSSARY 180 -#define ltGLOSS 181 - -#define ltHEADHEIGHT 200 -#define ltHELPGLOSSARY 201 -#define ltHELPIGNORE 202 -#define ltHELPONLY 203 -#define ltHELPINPUT 204 -#define ltHELPFONTFAMILY 205 -#define ltHELPFONTSIZE 206 -#define ltHELPREFN 207 -#define ltHELPREF 208 -#define ltHFILL 209 -#define ltHLINE 210 -#define ltHRULE 211 -#define ltHSPACESTAR 212 -#define ltHSPACE 213 -#define ltHSKIPSTAR 214 -#define ltHSKIP 215 -#define lthuge 216 -#define ltHuge 217 -#define ltHUGE 218 -#define ltHTMLIGNORE 219 -#define ltHTMLONLY 220 - -#define ltINCLUDEONLY 240 -#define ltINCLUDE 241 -#define ltINDEX 242 -#define ltINPUT 243 -#define ltITEMIZE 244 -#define ltITEM 245 -#define ltIMAGE 246 -#define ltIT 247 -#define ltITEMSEP 248 -#define ltINDENTED 249 -#define ltIMAGEMAP 250 -#define ltIMAGER 251 -#define ltIMAGEL 252 -#define ltINSERTATLEVEL 253 - -#define ltKILL 260 - -#define ltLABEL 280 -#define ltlarge 281 -#define ltLarge 282 -#define ltLARGE 283 -#define ltLATEX 284 -#define ltLBOX 285 -#define ltLDOTS 286 -#define ltLINEBREAK 287 -#define ltLISTOFFIGURES 288 -#define ltLISTOFTABLES 289 -#define ltLHEAD 290 -#define ltLFOOT 291 -#define ltLATEXIGNORE 292 -#define ltLATEXONLY 293 -#define ltLOWERCASE 294 -#define ltLBRACERAW 295 -#define ltLINKCOLOUR 296 - -#define ltMAKEGLOSSARY 300 -#define ltMAKEINDEX 301 -#define ltMAKETITLE 302 -#define ltMARKRIGHT 303 -#define ltMARKBOTH 304 -#define ltMARGINPARWIDTH 305 -#define ltMARGINPAR 306 -#define ltMARGINPARODD 307 -#define ltMARGINPAREVEN 308 -#define ltMBOX 309 -#define ltMEMBERSECTION 310 -#define ltMEMBER 311 -#define ltMULTICOLUMN 312 -#define ltMARGINPARSEP 313 - -#define ltNEWCOUNTER 330 -#define ltNEWLINE 331 -#define ltNEWPAGE 332 -#define ltNOCITE 333 -#define ltNOINDENT 334 -#define ltNOLINEBREAK 335 -#define ltNOPAGEBREAK 336 -#define ltNORMALSIZE 337 -#define ltNORMALBOX 338 -#define ltNORMALBOXD 339 -#define ltNUMBEREDBIBITEM 340 - -#define ltONECOLUMN 360 -#define ltODDSIDEMARGIN 361 - -#define ltPAGEBREAK 380 -#define ltPAGEREF 381 -#define ltPAGESTYLE 382 -#define ltPAGENUMBERING 383 -#define ltPARAGRAPHSTAR 384 -#define ltPARAGRAPH 385 -#define ltPARAM 386 -#define ltPARINDENT 387 -#define ltPARSKIP 388 -#define ltPARTSTAR 389 -#define ltPART 390 -#define ltPAR 391 -#define ltPFUNC 392 -#define ltPICTURE 393 -#define ltPOPREF 394 -#define ltPOUNDS 395 -#define ltPRINTINDEX 396 -#define ltPSBOXTO 397 -#define ltPSBOX 398 -#define ltPOPREFONLY 399 - -#define ltQUOTE 420 -#define ltQUOTATION 421 - -#define ltRAGGEDBOTTOM 440 -#define ltRAGGEDLEFT 441 -#define ltRAGGEDRIGHT 442 -#define ltREF 443 -#define ltRM 444 -#define ltROMAN 445 -#define ltROMAN2 446 -#define ltRTFSP 447 -#define ltRULE 448 -#define ltRULEDROW 449 -#define ltDRULED 450 -#define ltRHEAD 451 -#define ltRFOOT 452 -#define ltROW 453 -#define ltRTFIGNORE 454 -#define ltRTFONLY 455 -#define ltRBRACERAW 456 -#define ltREGISTERED 457 - -#define ltSC 470 -#define ltSECTIONHEADING 471 -#define ltSECTIONSTAR 472 -#define ltSECTION 473 -#define ltSETCOUNTER 474 -#define ltSF 475 -#define ltSHORTCITE 476 -#define ltSINGLESPACE 477 -#define ltSLOPPYPAR 478 -#define ltSLOPPY 479 -#define ltSL 480 -#define ltSMALL 481 -#define ltSUBITEM 482 -#define ltSUBPARAGRAPHSTAR 483 -#define ltSUBPARAGRAPH 484 -#define ltSPECIAL 485 -#define ltSUBSECTIONSTAR 486 -#define ltSUBSECTION 487 -#define ltSUBSUBSECTIONSTAR 488 -#define ltSUBSUBSECTION 489 -#define ltSCRIPTSIZE 490 -#define ltSETHEADER 491 -#define ltSETFOOTER 492 -#define ltSIZEDBOX 493 -#define ltSIZEDBOXD 494 -#define ltSECTIONHEADINGSTAR 495 -#define ltSS 496 -#define ltSETHOTSPOTCOLOUR 497 -#define ltSETHOTSPOTCOLOR 498 -#define ltSETHOTSPOTUNDERLINE 499 -#define ltSETTRANSPARENCY 500 - -#define ltTABBING 510 -#define ltTABLEOFCONTENTS 511 -#define ltTABLE 512 -#define ltTABULAR 513 -#define ltTAB 514 -#define ltTEX 515 -#define ltTEXTWIDTH 516 -#define ltTEXTHEIGHT 517 -#define ltTHEBIBLIOGRAPHY 518 -#define ltTITLEPAGE 519 -#define ltTITLE 520 -#define ltTINY 521 -#define ltTODAY 522 -#define ltTOPMARGIN 523 -#define ltTOPSKIP 524 -#define ltTT 525 -#define ltTYPEIN 526 -#define ltTYPEOUT 527 -#define ltTWOCOLUMN 528 -#define ltTHEPAGE 529 -#define ltTHECHAPTER 530 -#define ltTHESECTION 531 -#define ltTHISPAGESTYLE 532 - -#define ltTWOCOLWIDTHA 533 -#define ltTWOCOLWIDTHB 534 -#define ltTWOCOLSPACING 535 -#define ltTWOCOLITEM 536 -#define ltTWOCOLITEMRULED 537 -#define ltTWOCOLLIST 538 -#define ltTEXTCOLOUR 539 - -#define ltUNDERLINE 550 -#define ltURLREF 551 -#define ltUPPERCASE 552 -#define ltUSEPACKAGE 553 - -#define ltVDOTS 570 -#define ltVERBATIMINPUT 571 -#define ltVERBATIM 572 -#define ltVERB 573 -#define ltVERSE 574 -#define ltVFILL 575 -#define ltVLINE 576 -#define ltVOID 577 -#define ltVRULE 578 -#define ltVSPACESTAR 579 -#define ltVSKIPSTAR 580 -#define ltVSPACE 581 -#define ltVSKIP 582 -#define ltVERBSTAR 583 - -#define ltWXCLIPS 600 -#define ltWINHELPIGNORE 601 -#define ltWINHELPONLY 602 - -#define ltXLPIGNORE 603 -#define ltXLPONLY 604 - -#define ltSPACE 620 -#define ltBACKSLASHCHAR 621 -#define ltPIPE 622 -#define ltFORWARDSLASH 623 -#define ltUNDERSCORE 624 -#define ltAMPERSAND 625 -#define ltPERCENT 626 -#define ltDOLLAR 627 -#define ltHASH 628 -#define ltLPARENTH 629 -#define ltRPARENTH 630 -#define ltLBRACE 631 -#define ltRBRACE 632 -#define ltEQUALS 633 -#define ltRANGLEBRA 634 -#define ltLANGLEBRA 635 -#define ltPLUS 636 -#define ltDASH 637 -#define ltSINGLEQUOTE 638 -#define ltBACKQUOTE 639 -#define ltTILDE 640 -#define ltAT_SYMBOL 641 - -// Characters, not macros but with special Latex significance -#define ltSPECIALDOLLAR 660 -#define ltSPECIALDOUBLEDOLLAR 661 -#define ltSPECIALTILDE 662 -#define ltSPECIALHASH 663 -#define ltSPECIALAMPERSAND 664 -#define ltSUPERTABULAR 665 - -// Accents -#define ltACCENT_GRAVE 700 -#define ltACCENT_ACUTE 701 -#define ltACCENT_CARET 702 -#define ltACCENT_UMLAUT 703 -#define ltACCENT_TILDE 704 -#define ltACCENT_DOT 705 -#define ltACCENT_CADILLA 706 - -// Symbols -#define ltALPHA 800 -#define ltBETA 801 -#define ltGAMMA 802 -#define ltDELTA 803 -#define ltEPSILON 804 -#define ltVAREPSILON 805 -#define ltZETA 806 -#define ltETA 807 -#define ltTHETA 808 -#define ltVARTHETA 809 -#define ltIOTA 810 -#define ltKAPPA 811 -#define ltLAMBDA 812 -#define ltMU 813 -#define ltNU 814 -#define ltXI 815 -#define ltPI 816 -#define ltVARPI 817 -#define ltRHO 818 -#define ltVARRHO 819 -#define ltSIGMA 820 -#define ltVARSIGMA 821 -#define ltTAU 822 -#define ltUPSILON 823 -#define ltPHI 824 -#define ltVARPHI 825 -#define ltCHI 826 -#define ltPSI 827 -#define ltOMEGA 828 - -#define ltCAP_GAMMA 830 -#define ltCAP_DELTA 831 -#define ltCAP_THETA 832 -#define ltCAP_LAMBDA 833 -#define ltCAP_XI 834 -#define ltCAP_PI 835 -#define ltCAP_SIGMA 836 -#define ltCAP_UPSILON 837 -#define ltCAP_PHI 838 -#define ltCAP_PSI 839 -#define ltCAP_OMEGA 840 - -// Binary operation symbols -#define ltLE 850 -#define ltLEQ 851 -#define ltLL 852 -#define ltSUBSET 853 -#define ltSUBSETEQ 854 -#define ltSQSUBSET 855 -#define ltSQSUBSETEQ 856 -#define ltIN 857 -#define ltVDASH 858 -#define ltMODELS 859 -#define ltGE 860 -#define ltGEQ 861 -#define ltGG 862 -#define ltSUPSET 863 -#define ltSUPSETEQ 864 -#define ltSQSUPSET 865 -#define ltSQSUPSETEQ 866 -#define ltNI 867 -#define ltDASHV 868 -#define ltPERP 869 -#define ltNEQ 870 -#define ltDOTEQ 871 -#define ltAPPROX 872 -#define ltCONG 873 -#define ltEQUIV 874 -#define ltPROPTO 875 -#define ltPREC 876 -#define ltPRECEQ 877 -#define ltPARALLEL 878 -#define ltSIM 879 -#define ltSIMEQ 880 -#define ltASYMP 881 -#define ltSMILE 882 -#define ltFROWN 883 -#define ltBOWTIE 884 -#define ltSUCC 885 -#define ltSUCCEQ 886 -#define ltMID 887 - -// Negated relation symbols (selected) -#define ltNOTEQ 890 -#define ltNOTIN 891 -#define ltNOTSUBSET 892 - -// Arrows -#define ltLEFTARROW 900 -#define ltLEFTARROW2 901 -#define ltRIGHTARROW 902 -#define ltRIGHTARROW2 903 -#define ltLEFTRIGHTARROW 904 -#define ltLEFTRIGHTARROW2 905 -#define ltUPARROW 906 -#define ltUPARROW2 907 -#define ltDOWNARROW 908 -#define ltDOWNARROW2 909 - -// Miscellaneous symbols -#define ltALEPH 1000 -#define ltWP 1001 -#define ltRE 1002 -#define ltIM 1003 -#define ltEMPTYSET 1004 -#define ltNABLA 1005 -#define ltSURD 1006 -#define ltPARTIAL 1007 -#define ltBOT 1008 -#define ltFORALL 1009 -#define ltEXISTS 1010 -#define ltNEG 1011 -#define ltSHARP 1012 -#define ltANGLE 1013 -#define ltTRIANGLE 1014 -#define ltCLUBSUIT 1015 -#define ltDIAMONDSUIT 1016 -#define ltHEARTSUIT 1017 -#define ltSPADESUIT 1018 -#define ltINFTY 1019 - -// Binary operation symbols -#define ltPM 1030 -#define ltMP 1031 -#define ltTIMES 1032 -#define ltDIV 1033 -#define ltCDOT 1034 -#define ltAST 1035 -#define ltSTAR 1036 -#define ltCAP 1037 -#define ltCUP 1038 -#define ltVEE 1039 -#define ltWEDGE 1040 -#define ltCIRC 1041 -#define ltBULLET 1042 -#define ltDIAMOND 1043 -#define ltOSLASH 1044 -#define ltBOX 1045 -#define ltDIAMOND2 1046 -#define ltBIGTRIANGLEDOWN 1047 -#define ltOPLUS 1048 -#define ltOTIMES 1049 - -// Latex2e commands -#define ltRMFAMILY 1200 -#define ltSFFAMILY 1201 -#define ltTTFAMILY 1202 -#define ltBFSERIES 1203 -#define ltITSHAPE 1204 -#define ltSLSHAPE 1205 -#define ltSCSHAPE 1206 - -#define ltMDSERIES 1207 -#define ltUPSHAPE 1208 - -#define ltTEXTRM 1209 -#define ltTEXTSF 1210 -#define ltTEXTTT 1211 -#define ltTEXTBF 1212 -#define ltTEXTIT 1213 -#define ltTEXTSL 1214 -#define ltTEXTSC 1215 -#define ltEMPH 1216 - -#define ltDOCUMENTCLASS 1217 - -// Space macros -#define ltSMALLSPACE1 1250 -#define ltSMALLSPACE2 1251 - -// Pseudo-macros -#define ltTOPLEVEL 15000 -#define ltCUSTOM_MACRO 15001 -#define ltSOLO_BLOCK 15002 - - - diff --git a/utils/tex2rtf/src/tex2rtf.cpp b/utils/tex2rtf/src/tex2rtf.cpp deleted file mode 100644 index cc22a9c52d..0000000000 --- a/utils/tex2rtf/src/tex2rtf.cpp +++ /dev/null @@ -1,1095 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tex2rtf.cpp -// Purpose: Converts Latex to linear/WinHelp RTF, HTML, wxHelp. -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#ifndef NO_GUI -#include -#include -#endif - -#ifdef NO_GUI -#if wxUSE_IOSTREAMH -#include -#include -#else -#include -#include -#endif -#endif - -#include -#include -#include "tex2any.h" -#include "tex2rtf.h" -#include "rtfutils.h" - -#if (defined(__WXGTK__) || defined(__WXMOTIF__)) && !defined(NO_GUI) -#include "tex2rtf.xpm" -#endif - -const float versionNo = 2.0; - -TexChunk *currentMember = NULL; -bool startedSections = FALSE; -char *contentsString = NULL; -bool suppressNameDecoration = FALSE; -bool OkToClose = TRUE; -int passNumber = 1; - -#ifndef NO_GUI -wxHelpController *HelpInstance = NULL; - -#ifdef __WXMSW__ -static char *ipc_buffer = NULL; -static char Tex2RTFLastStatus[100]; -Tex2RTFServer *TheTex2RTFServer = NULL; -#endif -#endif - -char *bulletFile = NULL; - -FILE *Contents = NULL; // Contents page -FILE *Chapters = NULL; // Chapters (WinHelp RTF) or rest of file (linear RTF) -FILE *Sections = NULL; -FILE *Subsections = NULL; -FILE *Subsubsections = NULL; -FILE *Popups = NULL; -FILE *WinHelpContentsFile = NULL; - -char *InputFile = NULL; -char *OutputFile = NULL; -char *MacroFile = copystring("tex2rtf.ini"); - -char *FileRoot = NULL; -char *ContentsName = NULL; // Contents page from last time around -char *TmpContentsName = NULL; // Current contents page -char *TmpFrameContentsName = NULL; // Current frame contents page -char *WinHelpContentsFileName = NULL; // WinHelp .cnt file -char *RefName = NULL; // Reference file name - -char *RTFCharset = copystring("ansi"); - -#ifdef __WXMSW__ -int BufSize = 100; // Size of buffer in K -#else -int BufSize = 500; -#endif - -bool Go(void); -void ShowOptions(void); - -#ifdef NO_GUI - -extern char *wxBuffer; // we must init it, otherwise tex2rtf will crash - -int main(int argc, char **argv) -#else -wxMenuBar *menuBar = NULL; -MyFrame *frame = NULL; - -// DECLARE_APP(MyApp) -IMPLEMENT_APP(MyApp) - -// `Main program' equivalent, creating windows and returning main app frame -bool MyApp::OnInit() -#endif -{ - // Use default list of macros defined in tex2any.cc - DefineDefaultMacros(); - AddMacroDef(ltHARDY, "hardy", 0); - - FileRoot = new char[300]; - ContentsName = new char[300]; - TmpContentsName = new char[300]; - TmpFrameContentsName = new char[300]; - WinHelpContentsFileName = new char[300]; - RefName = new char[300]; - - int n = 1; - - // Read input/output files - if (argc > 1) - { - if (argv[1][0] != '-') - { - InputFile = argv[1]; - n ++; - - if (argc > 2) - { - if (argv[2][0] != '-') - { - OutputFile = argv[2]; - n ++; - } - } - } - } - -#ifdef NO_GUI - wxBuffer = new char[1500]; - // this is done in wxApp, but NO_GUI version doesn't call it :-( - - if (!InputFile || !OutputFile) - { - cout << "Tex2RTF: input or output file is missing.\n"; - ShowOptions(); - exit(1); - } - -#endif - if (InputFile) - { - TexPathList.EnsureFileAccessible(InputFile); - } - if (!InputFile || !OutputFile) - isInteractive = TRUE; - - for (int i = n; i < argc;) - { - if (strcmp(argv[i], "-winhelp") == 0) - { - i ++; - convertMode = TEX_RTF; - winHelp = TRUE; - } -#ifndef NO_GUI - else if (strcmp(argv[i], "-interactive") == 0) - { - i ++; - isInteractive = TRUE; - } -#endif - else if (strcmp(argv[i], "-sync") == 0) // Don't yield - { - i ++; - isSync = TRUE; - } - else if (strcmp(argv[i], "-rtf") == 0) - { - i ++; - convertMode = TEX_RTF; - } - else if (strcmp(argv[i], "-html") == 0) - { - i ++; - convertMode = TEX_HTML; - } - else if (strcmp(argv[i], "-xlp") == 0) - { - i ++; - convertMode = TEX_XLP; - } - else if (strcmp(argv[i], "-twice") == 0) - { - i ++; - runTwice = TRUE; - } - else if (strcmp(argv[i], "-macros") == 0) - { - i ++; - if (i < argc) - { - MacroFile = copystring(argv[i]); - i ++; - } - } - else if (strcmp(argv[i], "-bufsize") == 0) - { - i ++; - if (i < argc) - { - BufSize = atoi(argv[i]); - i ++; - } - } - else if (strcmp(argv[i], "-charset") == 0) - { - i ++; - if (i < argc) - { - char *s = argv[i]; - i ++; - if (strcmp(s, "ansi") == 0 || strcmp(s, "pc") == 0 || strcmp(s, "mac") == 0 || - strcmp(s, "pca") == 0) - RTFCharset = copystring(s); - else - { - OnError("Incorrect argument for -charset"); - } - } - } - else - { - char buf[100]; - sprintf(buf, "Invalid switch %s.\n", argv[i]); - OnError(buf); - i++; -#ifdef NO_GUI - ShowOptions(); - exit(1); -#endif - } - } - -#if defined(__WXMSW__) && !defined(NO_GUI) - wxDDEInitialize(); - Tex2RTFLastStatus[0] = 0; // DDE connection return value - TheTex2RTFServer = new Tex2RTFServer; - TheTex2RTFServer->Create("TEX2RTF"); -#endif - -#if defined(__WXMSW__) && defined(__WIN16__) - // Limit to max Windows array size - if (BufSize > 64) BufSize = 64; -#endif - - TexInitialize(BufSize); - ResetContentsLevels(0); - -#ifndef NO_GUI - - if (isInteractive) - { - char buf[100]; - - // Create the main frame window - frame = new MyFrame(NULL, -1, "Tex2RTF", wxPoint(-1, -1), wxSize(400, 300)); - frame->CreateStatusBar(2); - - // Give it an icon - // TODO: uncomment this when we have tex2rtf.xpm - frame->SetIcon(wxICON(tex2rtf)); - - if (InputFile) - { - sprintf(buf, "Tex2RTF [%s]", FileNameFromPath(InputFile)); - frame->SetTitle(buf); - } - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(TEX_GO, "&Go", "Run converter"); - file_menu->Append(TEX_SET_INPUT, "Set &Input File", "Set the LaTeX input file"); - file_menu->Append(TEX_SET_OUTPUT, "Set &Output File", "Set the output file"); - file_menu->AppendSeparator(); - file_menu->Append(TEX_VIEW_LATEX, "View &LaTeX File", "View the LaTeX input file"); - file_menu->Append(TEX_VIEW_OUTPUT, "View Output &File", "View output file"); - file_menu->Append(TEX_SAVE_FILE, "&Save log file", "Save displayed text into file"); - file_menu->AppendSeparator(); - file_menu->Append(TEX_QUIT, "E&xit", "Exit Tex2RTF"); - - wxMenu *macro_menu = new wxMenu; - - macro_menu->Append(TEX_LOAD_CUSTOM_MACROS, "&Load Custom Macros", "Load custom LaTeX macro file"); - macro_menu->Append(TEX_VIEW_CUSTOM_MACROS, "View &Custom Macros", "View custom LaTeX macros"); - - wxMenu *mode_menu = new wxMenu; - - mode_menu->Append(TEX_MODE_RTF, "Output linear &RTF", "Wordprocessor-compatible RTF"); - mode_menu->Append(TEX_MODE_WINHELP, "Output &WinHelp RTF", "WinHelp-compatible RTF"); - mode_menu->Append(TEX_MODE_HTML, "Output &HTML", "HTML World Wide Web hypertext file"); - mode_menu->Append(TEX_MODE_XLP, "Output &XLP", "wxHelp hypertext help file"); - - wxMenu *help_menu = new wxMenu; - - help_menu->Append(TEX_HELP, "&Help", "Tex2RTF Contents Page"); - help_menu->Append(TEX_ABOUT, "&About Tex2RTF", "About Tex2RTF"); - - menuBar = new wxMenuBar; - menuBar->Append(file_menu, "&File"); - menuBar->Append(macro_menu, "&Macros"); - menuBar->Append(mode_menu, "&Conversion Mode"); - menuBar->Append(help_menu, "&Help"); - - frame->SetMenuBar(menuBar); - frame->textWindow = new wxTextCtrl(frame, -1, "", wxPoint(-1, -1), wxSize(-1, -1), wxTE_READONLY|wxTE_MULTILINE); - - (*frame->textWindow) << "Welcome to Julian Smart's LaTeX to RTF converter.\n"; -// ShowOptions(); - - HelpInstance = new wxHelpController(); - HelpInstance->Initialize("tex2rtf"); - - /* - * Read macro/initialisation file - * - */ - - wxString path; - if ((path = TexPathList.FindValidPath(MacroFile)) != "") - ReadCustomMacros((char*) (const char*) path); - - strcpy(buf, "In "); - - if (winHelp && (convertMode == TEX_RTF)) - strcat(buf, "WinHelp RTF"); - else if (!winHelp && (convertMode == TEX_RTF)) - strcat(buf, "linear RTF"); - else if (convertMode == TEX_HTML) strcat(buf, "HTML"); - else if (convertMode == TEX_XLP) strcat(buf, "XLP"); - strcat(buf, " mode."); - frame->SetStatusText(buf, 1); - - frame->Show(TRUE); - return TRUE; - } - else -#endif // NO_GUI - { - /* - * Read macro/initialisation file - * - */ - - wxString path; - if ((path = TexPathList.FindValidPath(MacroFile)) != "") - ReadCustomMacros((char*) (const char*) path); - - Go(); - if (runTwice) Go(); -#ifdef NO_GUI - return 0; -#else - return NULL; -#endif - } - -#ifndef NO_GUI - // Return the main frame window - return TRUE; -#else - delete[] wxBuffer; - return FALSE; -#endif -} - -#ifndef NO_GUI -int MyApp::OnExit() -{ - wxNode *node = CustomMacroList.First(); - while (node) - { - CustomMacro *macro = (CustomMacro *)node->Data(); - delete macro; - delete node; - node = CustomMacroList.First(); - } - MacroDefs.BeginFind(); - node = MacroDefs.Next(); - while (node) - { - TexMacroDef* def = (TexMacroDef*) node->Data(); - delete def; - node = MacroDefs.Next(); - } - MacroDefs.Clear(); -#ifdef __WXMSW__ - delete TheTex2RTFServer; - wxDDECleanUp(); -#endif - delete HelpInstance; - - // TODO: this simulates zero-memory leaks! - // Otherwise there are just too many... -#ifndef __WXGTK__ - wxDebugContext::SetCheckpoint(); -#endif - - return 0; -} -#endif -void ShowOptions(void) -{ - char buf[100]; - sprintf(buf, "Tex2RTF version %.2f", versionNo); - OnInform(buf); - OnInform("Usage: tex2rtf [input] [output] [switches]\n"); - OnInform("where valid switches are"); - OnInform(" -interactive"); - OnInform(" -bufsize "); - OnInform(" -charset (default ansi)"); - OnInform(" -twice"); - OnInform(" -sync"); - OnInform(" -macros "); - OnInform(" -winhelp"); - OnInform(" -rtf"); - OnInform(" -html"); - OnInform(" -xlp\n"); -} - -#ifndef NO_GUI - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_CLOSE(MyFrame::OnCloseWindow) - EVT_MENU(TEX_QUIT, MyFrame::OnExit) - EVT_MENU(TEX_GO, MyFrame::OnGo) - EVT_MENU(TEX_SET_INPUT, MyFrame::OnSetInput) - EVT_MENU(TEX_SET_OUTPUT, MyFrame::OnSetOutput) - EVT_MENU(TEX_SAVE_FILE, MyFrame::OnSaveFile) - EVT_MENU(TEX_VIEW_LATEX, MyFrame::OnViewLatex) - EVT_MENU(TEX_VIEW_OUTPUT, MyFrame::OnViewOutput) - EVT_MENU(TEX_VIEW_CUSTOM_MACROS, MyFrame::OnShowMacros) - EVT_MENU(TEX_LOAD_CUSTOM_MACROS, MyFrame::OnLoadMacros) - EVT_MENU(TEX_MODE_RTF, MyFrame::OnModeRTF) - EVT_MENU(TEX_MODE_WINHELP, MyFrame::OnModeWinHelp) - EVT_MENU(TEX_MODE_HTML, MyFrame::OnModeHTML) - EVT_MENU(TEX_MODE_XLP, MyFrame::OnModeXLP) - EVT_MENU(TEX_HELP, MyFrame::OnHelp) - EVT_MENU(TEX_ABOUT, MyFrame::OnAbout) -END_EVENT_TABLE() - -// My frame constructor -MyFrame::MyFrame(wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(frame, id, title, pos, size) -{} - -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - if (!stopRunning && !OkToClose) - { - stopRunning = TRUE; - runTwice = FALSE; - return; - } - else if (OkToClose) - { - this->Destroy(); - } -} - -void MyFrame::OnExit(wxCommandEvent& event) -{ - this->Destroy(); -} - -void MyFrame::OnGo(wxCommandEvent& event) -{ - menuBar->EnableTop(0, FALSE); - menuBar->EnableTop(1, FALSE); - menuBar->EnableTop(2, FALSE); - menuBar->EnableTop(3, FALSE); - textWindow->Clear(); - Tex2RTFYield(TRUE); - Go(); - - if (runTwice) - { - Tex2RTFYield(TRUE); - Go(); - } - menuBar->EnableTop(0, TRUE); - menuBar->EnableTop(1, TRUE); - menuBar->EnableTop(2, TRUE); - menuBar->EnableTop(3, TRUE); -} - -void MyFrame::OnSetInput(wxCommandEvent& event) -{ - ChooseInputFile(TRUE); -} - -void MyFrame::OnSetOutput(wxCommandEvent& event) -{ - ChooseOutputFile(TRUE); -} - -void MyFrame::OnSaveFile(wxCommandEvent& event) -{ - wxString s = wxFileSelector("Save text to file", "", "", "txt", "*.txt"); - if (s != "") - { - textWindow->SaveFile(s); - char buf[350]; - sprintf(buf, "Saved text to %s", (const char*) s); - frame->SetStatusText(buf, 0); - } -} - -void MyFrame::OnViewOutput(wxCommandEvent& event) -{ - ChooseOutputFile(); - if (OutputFile && wxFileExists(OutputFile)) - { - textWindow->LoadFile(OutputFile); - char buf[300]; - wxString str(wxFileNameFromPath(OutputFile)); - sprintf(buf, "Tex2RTF [%s]", (const char*) str); - frame->SetTitle(buf); - } -} - -void MyFrame::OnViewLatex(wxCommandEvent& event) -{ - ChooseInputFile(); - if (InputFile && wxFileExists(InputFile)) - { - textWindow->LoadFile(InputFile); - char buf[300]; - wxString str(wxFileNameFromPath(OutputFile)); - sprintf(buf, "Tex2RTF [%s]", (const char*) str); - frame->SetTitle(buf); - } -} - -void MyFrame::OnLoadMacros(wxCommandEvent& event) -{ - textWindow->Clear(); - wxString s = wxFileSelector("Choose custom macro file", wxPathOnly(MacroFile), wxFileNameFromPath(MacroFile), "ini", "*.ini"); - if (s != "" && wxFileExists(s)) - { - MacroFile = copystring(s); - ReadCustomMacros((char*) (const char*) s); - ShowCustomMacros(); - } -} - -void MyFrame::OnShowMacros(wxCommandEvent& event) -{ - textWindow->Clear(); - Tex2RTFYield(TRUE); - ShowCustomMacros(); -} - -void MyFrame::OnModeRTF(wxCommandEvent& event) -{ - convertMode = TEX_RTF; - winHelp = FALSE; - InputFile = NULL; - OutputFile = NULL; - SetStatusText("In linear RTF mode.", 1); -} - -void MyFrame::OnModeWinHelp(wxCommandEvent& event) -{ - convertMode = TEX_RTF; - winHelp = TRUE; - InputFile = NULL; - OutputFile = NULL; - SetStatusText("In WinHelp RTF mode.", 1); -} - -void MyFrame::OnModeHTML(wxCommandEvent& event) -{ - convertMode = TEX_HTML; - winHelp = FALSE; - InputFile = NULL; - OutputFile = NULL; - SetStatusText("In HTML mode.", 1); -} - -void MyFrame::OnModeXLP(wxCommandEvent& event) -{ - convertMode = TEX_XLP; - InputFile = NULL; - OutputFile = NULL; - SetStatusText("In XLP mode.", 1); -} - -void MyFrame::OnHelp(wxCommandEvent& event) -{ - HelpInstance->LoadFile(); - HelpInstance->DisplayContents(); -} - -void MyFrame::OnAbout(wxCommandEvent& event) -{ - char buf[300]; -#ifdef __WIN32__ - char *platform = " (32-bit)"; -#else -#ifdef __WXMSW__ - char *platform = " (16-bit)"; -#else - char *platform = ""; -#endif -#endif - sprintf(buf, "Tex2RTF Version %.2f%s\nLaTeX to RTF, WinHelp, HTML and wxHelp Conversion\n\n(c) Julian Smart 1999", versionNo, platform); - wxMessageBox(buf, "About Tex2RTF"); -} - -void ChooseInputFile(bool force) -{ - if (force || !InputFile) - { - wxString s = wxFileSelector("Choose LaTeX input file", wxPathOnly(InputFile), wxFileNameFromPath(InputFile), "tex", "*.tex"); - if (s != "") - { - // Different file, so clear index entries. - ClearKeyWordTable(); - ResetContentsLevels(0); - passNumber = 1; - char buf[300]; - InputFile = copystring(s); - wxString str = wxFileNameFromPath(InputFile); - sprintf(buf, "Tex2RTF [%s]", (const char*) str); - frame->SetTitle(buf); - OutputFile = NULL; - } - } -} - -void ChooseOutputFile(bool force) -{ - char extensionBuf[10]; - char wildBuf[10]; - strcpy(wildBuf, "*."); - wxString path; - if (OutputFile) - path = wxPathOnly(OutputFile); - else if (InputFile) - path = wxPathOnly(InputFile); - - switch (convertMode) - { - case TEX_RTF: - { - strcpy(extensionBuf, "rtf"); - strcat(wildBuf, "rtf"); - break; - } - case TEX_XLP: - { - strcpy(extensionBuf, "xlp"); - strcat(wildBuf, "xlp"); - break; - } - case TEX_HTML: - { -#if defined(__WXMSW__) && defined(__WIN16__) - strcpy(extensionBuf, "htm"); - strcat(wildBuf, "htm"); -#else - strcpy(extensionBuf, "html"); - strcat(wildBuf, "html"); -#endif - break; - } - } - if (force || !OutputFile) - { - wxString s = wxFileSelector("Choose output file", path, wxFileNameFromPath(OutputFile), - extensionBuf, wildBuf); - if (s != "") - OutputFile = copystring(s); - } -} -#endif - -bool Go(void) -{ -#ifndef NO_GUI - ChooseInputFile(); - ChooseOutputFile(); -#endif - - if (!InputFile || !OutputFile) - return FALSE; - -#ifndef NO_GUI - if (isInteractive) - { - char buf[300]; - wxString str = wxFileNameFromPath(InputFile); - - sprintf(buf, "Tex2RTF [%s]", (const char*) str); - frame->SetTitle(buf); - } - - wxStartTimer(); -#endif - - // Find extension-less filename - strcpy(FileRoot, OutputFile); - StripExtension(FileRoot); - - if (truncateFilenames && convertMode == TEX_HTML) - { - // Truncate to five characters. This ensures that - // we can generate DOS filenames such as thing999. But 1000 files - // may not be enough, of course... - char* sName = wxFileNameFromPath( FileRoot); // this Julian's method is non-destructive reference - - if(sName) - if(strlen( sName) > 5) - sName[5] = '\0'; // that should do! - } - - sprintf(ContentsName, "%s.con", FileRoot); - sprintf(TmpContentsName, "%s.cn1", FileRoot); - sprintf(TmpFrameContentsName, "%s.frc", FileRoot); - sprintf(WinHelpContentsFileName, "%s.cnt", FileRoot); - sprintf(RefName, "%s.ref", FileRoot); - - TexPathList.EnsureFileAccessible(InputFile); - if (!bulletFile) - { - wxString s = TexPathList.FindValidPath("bullet.bmp"); - if (s != "") - { - wxString str = wxFileNameFromPath(s); - bulletFile = copystring(str); - } - } - - if (wxFileExists(RefName)) - ReadTexReferences(RefName); - - bool success = FALSE; - - if (InputFile && OutputFile) - { - if (!FileExists(InputFile)) - { - OnError("Cannot open input file!"); - TexCleanUp(); - return FALSE; - } -#ifndef NO_GUI - if (isInteractive) - { - char buf[50]; - sprintf(buf, "Working, pass %d...", passNumber); - frame->SetStatusText(buf); - } -#endif - OkToClose = FALSE; - OnInform("Reading LaTeX file..."); - TexLoadFile(InputFile); - - switch (convertMode) - { - case TEX_RTF: - { - success = RTFGo(); - break; - } - case TEX_XLP: - { - success = XLPGo(); - break; - } - case TEX_HTML: - { - success = HTMLGo(); - break; - } - } - } - if (stopRunning) - { - OnInform("*** Aborted by user."); - success = FALSE; - stopRunning = FALSE; - } - - if (success) - { - WriteTexReferences(RefName); - TexCleanUp(); - startedSections = FALSE; - - char buf[100]; -#ifndef NO_GUI - long tim = wxGetElapsedTime(); - sprintf(buf, "Finished in %ld seconds.", (long)(tim/1000.0)); - OnInform(buf); - if (isInteractive) - { - sprintf(buf, "Done, %d %s.", passNumber, (passNumber > 1) ? "passes" : "pass"); - frame->SetStatusText(buf); - } -#else - sprintf(buf, "Done, %d %s.", passNumber, (passNumber > 1) ? "passes" : "pass"); - OnInform(buf); -#endif - passNumber ++; - OkToClose = TRUE; - return TRUE; - } - - TexCleanUp(); - startedSections = FALSE; - - OnInform("Sorry, unsuccessful."); - OkToClose = TRUE; - return FALSE; -} - -void OnError(char *msg) -{ -#ifdef NO_GUI - cerr << "Error: " << msg << "\n"; - cerr.flush(); -#else - if (isInteractive) - (*frame->textWindow) << "Error: " << msg << "\n"; - else -#ifdef __UNIX__ - { - cerr << "Error: " << msg << "\n"; - cerr.flush(); - } -#endif -#ifdef __WXMSW__ - wxError(msg); -#endif - Tex2RTFYield(TRUE); -#endif // NO_GUI -} - -void OnInform(char *msg) -{ -#ifdef NO_GUI - cout << msg << "\n"; - cout.flush(); -#else - if (isInteractive) - (*frame->textWindow) << msg << "\n"; - else -#ifdef __WXMSW__ - { - cout << msg << "\n"; - cout.flush(); - } -#endif -#ifdef __WXMSW__ - {} -#endif - if (isInteractive) - { - Tex2RTFYield(TRUE); - } -#endif // NO_GUI -} - -void OnMacro(int macroId, int no_args, bool start) -{ - switch (convertMode) - { - case TEX_RTF: - { - RTFOnMacro(macroId, no_args, start); - break; - } - case TEX_XLP: - { - XLPOnMacro(macroId, no_args, start); - break; - } - case TEX_HTML: - { - HTMLOnMacro(macroId, no_args, start); - break; - } - } -} - -bool OnArgument(int macroId, int arg_no, bool start) -{ - switch (convertMode) - { - case TEX_RTF: - { - return RTFOnArgument(macroId, arg_no, start); - break; - } - case TEX_XLP: - { - return XLPOnArgument(macroId, arg_no, start); - break; - } - case TEX_HTML: - { - return HTMLOnArgument(macroId, arg_no, start); - break; - } - } - return TRUE; -} - -/* - * DDE Stuff - */ -#if defined(__WXMSW__) && !defined(NO_GUI) - -/* - * Server - */ - -wxConnectionBase *Tex2RTFServer::OnAcceptConnection(const wxString& topic) -{ - if (topic == "TEX2RTF") - { - if (!ipc_buffer) - ipc_buffer = new char[1000]; - - return new Tex2RTFConnection(ipc_buffer, 4000); - } - else - return NULL; -} - - /* - * Connection - */ - -Tex2RTFConnection::Tex2RTFConnection(char *buf, int size):wxDDEConnection(buf, size) -{ -} - -Tex2RTFConnection::~Tex2RTFConnection(void) -{ -} - -bool SplitCommand(char *data, char *firstArg, char *secondArg) -{ - firstArg[0] = 0; - secondArg[0] = 0; - int i = 0; - int len = strlen(data); - bool stop = FALSE; - // Find first argument (command name) - while (!stop) - { - if (data[i] == ' ' || data[i] == 0) - stop = TRUE; - else - { - firstArg[i] = data[i]; - i ++; - } - } - firstArg[i] = 0; - if (data[i] == ' ') - { - // Find second argument - i ++; - int j = 0; - while (data[i] != 0) - { - secondArg[j] = data[i]; - i ++; - j ++; - } - secondArg[j] = 0; - } - return TRUE; -} - -bool Tex2RTFConnection::OnExecute(const wxString& topic, char *data, int size, int format) -{ - strcpy(Tex2RTFLastStatus, "OK"); - - char firstArg[50]; - char secondArg[300]; - if (SplitCommand(data, firstArg, secondArg)) - { - bool hasArg = (strlen(secondArg) > 0); - if (strcmp(firstArg, "INPUT") == 0 && hasArg) - { - if (InputFile) delete[] InputFile; - InputFile = copystring(secondArg); - if (frame) - { - char buf[100]; - wxString str = wxFileNameFromPath(InputFile); - sprintf(buf, "Tex2RTF [%s]", (const char*) str); - frame->SetTitle(buf); - } - } - else if (strcmp(firstArg, "OUTPUT") == 0 && hasArg) - { - if (OutputFile) delete[] OutputFile; - OutputFile = copystring(secondArg); - } - else if (strcmp(firstArg, "GO") == 0) - { - strcpy(Tex2RTFLastStatus, "WORKING"); - if (!Go()) - strcpy(Tex2RTFLastStatus, "CONVERSION ERROR"); - else - strcpy(Tex2RTFLastStatus, "OK"); - } - else if (strcmp(firstArg, "EXIT") == 0) - { - if (frame) frame->Close(); - } - else if (strcmp(firstArg, "MINIMIZE") == 0 || strcmp(firstArg, "ICONIZE") == 0) - { - if (frame) - frame->Iconize(TRUE); - } - else if (strcmp(firstArg, "SHOW") == 0 || strcmp(firstArg, "RESTORE") == 0) - { - if (frame) - { - frame->Iconize(FALSE); - frame->Show(TRUE); - } - } - else - { - // Try for a setting - strcpy(Tex2RTFLastStatus, RegisterSetting(firstArg, secondArg, FALSE)); -#ifndef NO_GUI - if (frame && strcmp(firstArg, "conversionMode") == 0) - { - char buf[100]; - strcpy(buf, "In "); - - if (winHelp && (convertMode == TEX_RTF)) - strcat(buf, "WinHelp RTF"); - else if (!winHelp && (convertMode == TEX_RTF)) - strcat(buf, "linear RTF"); - else if (convertMode == TEX_HTML) strcat(buf, "HTML"); - else if (convertMode == TEX_XLP) strcat(buf, "XLP"); - strcat(buf, " mode."); - frame->SetStatusText(buf, 1); - } -#endif - } - } - return TRUE; -} - -char *Tex2RTFConnection::OnRequest(const wxString& topic, const wxString& item, int *size, int format) -{ - return Tex2RTFLastStatus; -} - -#endif - -#ifndef NO_GUI -#ifndef __WXGTK__ -//void wxObject::Dump(ostream& str) -//{ -// if (GetClassInfo() && GetClassInfo()->GetClassName()) -// str << GetClassInfo()->GetClassName(); -// else -// str << "unknown object class"; -//} -#endif -#endif diff --git a/utils/tex2rtf/src/tex2rtf.def b/utils/tex2rtf/src/tex2rtf.def deleted file mode 100644 index 6a6a2f1c76..0000000000 --- a/utils/tex2rtf/src/tex2rtf.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME TEX2RTF -DESCRIPTION 'Tex2Rtf' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 3000 -STACKSIZE 20000 diff --git a/utils/tex2rtf/src/tex2rtf.h b/utils/tex2rtf/src/tex2rtf.h deleted file mode 100644 index 70f2156b6d..0000000000 --- a/utils/tex2rtf/src/tex2rtf.h +++ /dev/null @@ -1,157 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: tex2any.h -// Purpose: tex2RTF conversion header -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifndef NO_GUI -// Define a new application type -class MyApp: public wxApp -{ public: - bool OnInit(); - int OnExit(); -}; - -// Define a new frame type -class MyFrame: public wxFrame -{ public: - wxTextCtrl *textWindow; - MyFrame(wxFrame *frame, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size); - void OnMenuCommand(int id); - - void OnCloseWindow(wxCloseEvent& event); - void OnExit(wxCommandEvent& event); - void OnGo(wxCommandEvent& event); - void OnSetInput(wxCommandEvent& event); - void OnSetOutput(wxCommandEvent& event); - void OnSaveFile(wxCommandEvent& event); - void OnViewOutput(wxCommandEvent& event); - void OnViewLatex(wxCommandEvent& event); - void OnLoadMacros(wxCommandEvent& event); - void OnShowMacros(wxCommandEvent& event); - void OnModeRTF(wxCommandEvent& event); - void OnModeWinHelp(wxCommandEvent& event); - void OnModeHTML(wxCommandEvent& event); - void OnModeXLP(wxCommandEvent& event); - void OnHelp(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -#ifdef __WXMSW__ -#include "wx/dde.h" - -class Tex2RTFConnection: public wxDDEConnection -{ - public: - Tex2RTFConnection(char *buf, int size); - ~Tex2RTFConnection(void); - bool OnExecute(const wxString& topic, char *data, int size, int format); - char *OnRequest(const wxString& topic, const wxString& item, int *size, int format); -}; - -class Tex2RTFServer: public wxDDEServer -{ - public: - wxConnectionBase *OnAcceptConnection(const wxString& topic); -}; - -#endif // __WXMSW__ - -#endif // NO_GUI - -/* - * Itemize/enumerate structure: put on a stack for - * getting the indentation right - * - */ - -#define LATEX_ENUMERATE 1 -#define LATEX_ITEMIZE 2 -#define LATEX_DESCRIPTION 3 -#define LATEX_TWOCOL 5 -#define LATEX_INDENT 6 - -class ItemizeStruc: public wxObject -{ - public: - int listType; - int currentItem; - int indentation; - int labelIndentation; - inline ItemizeStruc(int lType, int indent = 0, int labIndent = 0) - { listType = lType; currentItem = 0; - indentation = indent; labelIndentation = labIndent; } -}; - -// ID for the menu quit command -#define TEX_QUIT 1 -#define TEX_GO 2 - -#define TEX_SET_INPUT 3 -#define TEX_SET_OUTPUT 4 - -#define TEX_VIEW_LATEX 5 -#define TEX_VIEW_OUTPUT 6 - -#define TEX_VIEW_CUSTOM_MACROS 7 -#define TEX_LOAD_CUSTOM_MACROS 8 - -#define TEX_MODE_RTF 9 -#define TEX_MODE_WINHELP 10 -#define TEX_MODE_HTML 11 -#define TEX_MODE_XLP 12 - -#define TEX_HELP 13 -#define TEX_ABOUT 14 -#define TEX_SAVE_FILE 15 - -extern TexChunk *currentMember; -extern bool startedSections; -extern char *contentsString; -extern bool suppressNameDecoration; -extern wxList itemizeStack; - -extern FILE *Contents; -extern FILE *Chapters; -extern FILE *Sections; -extern FILE *Subsections; -extern FILE *Subsubsections; - -extern char *InputFile; -extern char *OutputFile; -extern char *MacroFile; - -extern char *FileRoot; -extern char *ContentsName; // Contents page from last time around -extern char *TmpContentsName; // Current contents page -extern char *TmpFrameContentsName; // Current frame contents page -extern char *WinHelpContentsFileName; // WinHelp .cnt file -extern char *RefName; // Reference file name -extern char *bulletFile; - -#ifndef NO_GUI -void ChooseOutputFile(bool force = FALSE); -void ChooseInputFile(bool force = FALSE); -#endif - -void RTFOnMacro(int macroId, int no_args, bool start); -bool RTFOnArgument(int macroId, int arg_no, bool start); - -void HTMLOnMacro(int macroId, int no_args, bool start); -bool HTMLOnArgument(int macroId, int arg_no, bool start); - -void XLPOnMacro(int macroId, int no_args, bool start); -bool XLPOnArgument(int macroId, int arg_no, bool start); - -bool RTFGo(void); -bool HTMLGo(void); -bool XLPGo(void); - -#define ltHARDY 10000 diff --git a/utils/tex2rtf/src/tex2rtf.ico b/utils/tex2rtf/src/tex2rtf.ico deleted file mode 100644 index b68125570f7fce26e28c7f5e0035d1183fa2bed0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmchUF;c}a3`F-c%%l_*bxMxGkY(v5FjUu64y zl3wv|?3Mk_zUi40Blox6C6?~@?l=i`90%TsR!glpV)L0Y?p9#Lc6r7jMav9j6c^cy zy= - -#if wxUSE_IOSTREAMH -#include -#include -#else -#include -#include -#endif - -#include -#include "tex2any.h" - -wxHashTable TexReferences(wxKEY_STRING); -wxList BibList(wxKEY_STRING); -wxStringList CitationList; -wxList ColourTable(wxKEY_STRING); -wxHashTable BibStringTable(wxKEY_STRING); -wxList CustomMacroList(wxKEY_STRING); -TexChunk *currentSection = NULL; -char *fakeCurrentSection = NULL; - -static long BibLine = 1; - -void OutputCurrentSection(void) -{ - if (fakeCurrentSection) - TexOutput(fakeCurrentSection); - else if (currentSection) - TraverseChildrenFromChunk(currentSection); -} - -// Nasty but the way things are done now, necessary, -// in order to output a chunk properly to a string (macros and all). -void OutputCurrentSectionToString(char *buf) -{ - if (fakeCurrentSection) - strcpy(buf, fakeCurrentSection); - else - OutputChunkToString(currentSection, buf); -} - -void OutputChunkToString(TexChunk *chunk, char *buf) -{ - FILE *tempfd = fopen("tmp.tmp", "w"); - if (!tempfd) - return; - - FILE *old1 = CurrentOutput1; - FILE *old2 = CurrentOutput2; - - CurrentOutput1 = tempfd; - CurrentOutput2 = NULL; - - TraverseChildrenFromChunk(chunk); - - CurrentOutput1 = old1; - CurrentOutput2 = old2; - - fclose(tempfd); - - // Read from file into string - tempfd = fopen("tmp.tmp", "r"); - if (!tempfd) - return; - - buf[0] = 0; - int ch = -2; - int i = 0; - while (ch != EOF) - { - ch = getc(tempfd); - if (ch == EOF) - buf[i] = 0; - else - { - buf[i] = ch; - i ++; - } - } - fclose(tempfd); - wxRemoveFile("tmp.tmp"); -} - -// Called by Tex2Any to simulate a section -void FakeCurrentSection(char *fakeSection, bool addToContents) -{ - currentSection = NULL; - if (fakeCurrentSection) delete[] fakeCurrentSection; - fakeCurrentSection = copystring(fakeSection); - - if (DocumentStyle == LATEX_ARTICLE) - { - int mac = ltSECTIONHEADING; - if (!addToContents) - mac = ltSECTIONHEADINGSTAR; - OnMacro(mac, 0, TRUE); - OnMacro(mac, 0, FALSE); - } - else - { - int mac = ltCHAPTERHEADING; - if (!addToContents) - mac = ltCHAPTERHEADINGSTAR; - OnMacro(mac, 0, TRUE); - OnMacro(mac, 0, FALSE); - } - if (fakeCurrentSection) delete[] fakeCurrentSection; - fakeCurrentSection = NULL; -} - -// Look for \label macro, use this ref name if found or -// make up a topic name otherwise. -static long topicCounter = 0; - -void ResetTopicCounter(void) -{ - topicCounter = 0; -} - -static char *forceTopicName = NULL; - -void ForceTopicName(char *name) -{ - if (forceTopicName) - delete[] forceTopicName; - if (name) - forceTopicName = copystring(name); - else - forceTopicName = NULL; -} - -char *FindTopicName(TexChunk *chunk) -{ - if (forceTopicName) - return forceTopicName; - - char *topicName = NULL; - static char topicBuf[100]; - - if (chunk && (chunk->type == CHUNK_TYPE_MACRO) && - (chunk->macroId == ltLABEL)) - { - wxNode *node = chunk->children.First(); - if (node) - { - TexChunk *child = (TexChunk *)node->Data(); - if (child->type == CHUNK_TYPE_ARG) - { - wxNode *snode = child->children.First(); - if (snode) - { - TexChunk *schunk = (TexChunk *)snode->Data(); - if (schunk->type == CHUNK_TYPE_STRING) - topicName = schunk->value; - } - } - } - } - if (topicName) - return topicName; - else - { - sprintf(topicBuf, "topic%ld", topicCounter); - topicCounter ++; - return topicBuf; - } -} - -/* - * Simulate argument data, so we can 'drive' clients which implement - * certain basic formatting behaviour. - * Snag is that some save a TexChunk, so don't use yet... - * - */ - -void StartSimulateArgument(char *data) -{ - strcpy(currentArgData, data); - haveArgData = TRUE; -} - -void EndSimulateArgument(void) -{ - haveArgData = FALSE; -} - -/* - * Parse and convert unit arguments to points - * - */ - -int ParseUnitArgument(char *unitArg) -{ - float conversionFactor = 1.0; - float unitValue = 0.0; - int len = strlen(unitArg); - // Get rid of any accidentally embedded commands - for (int i = 0; i < len; i++) - if (unitArg[i] == '\\') - unitArg[i] = 0; - len = strlen(unitArg); - - if (unitArg && (len > 0) && (isdigit(unitArg[0]) || unitArg[0] == '-')) - { - sscanf(unitArg, "%f", &unitValue); - if (len > 1) - { - char units[3]; - units[0] = unitArg[len-2]; - units[1] = unitArg[len-1]; - units[2] = 0; - if (strcmp(units, "in") == 0) - conversionFactor = 72.0; - else if (strcmp(units, "cm") == 0) - conversionFactor = 72.0/2.51; - else if (strcmp(units, "mm") == 0) - conversionFactor = 72.0/25.1; - else if (strcmp(units, "pt") == 0) - conversionFactor = 1; - } - return (int)(unitValue*conversionFactor); - } - else return 0; -} - -/* - * Strip off any extension (dot something) from end of file, - * IF one exists. Inserts zero into buffer. - * - */ - -void StripExtension(char *buffer) -{ - int len = strlen(buffer); - int i = len-1; - while (i > 0) - { - if (buffer[i] == '.') - { - buffer[i] = 0; - break; - } - i --; - } -} - -/* - * Latex font setting - * - */ - -void SetFontSizes(int pointSize) -{ - switch (pointSize) - { - case 12: - { - normalFont = 12; - smallFont = 10; - tinyFont = 8; - largeFont1 = 14; - LargeFont2 = 16; - LARGEFont3 = 20; - hugeFont1 = 24; - HugeFont2 = 28; - HUGEFont3 = 32; - break; - } - case 11: - { - normalFont = 11; - smallFont = 9; - tinyFont = 7; - largeFont1 = 13; - LargeFont2 = 16; - LARGEFont3 = 19; - hugeFont1 = 22; - HugeFont2 = 26; - HUGEFont3 = 30; - break; - } - case 10: - { - normalFont = 10; - smallFont = 8; - tinyFont = 6; - largeFont1 = 12; - LargeFont2 = 14; - LARGEFont3 = 18; - hugeFont1 = 20; - HugeFont2 = 24; - HUGEFont3 = 28; - break; - } - } -} - - -/* - * Latex references - * - */ - -void AddTexRef(char *name, char *file, char *sectionName, - int chapter, int section, int subsection, int subsubsection) -{ - TexRef *texRef = (TexRef *)TexReferences.Get(name); - if (texRef) TexReferences.Delete(name); - - char buf[100]; - buf[0] = 0; -/* - if (sectionName) - { - strcat(buf, sectionName); - strcat(buf, " "); - } -*/ - if (chapter) - { - char buf2[10]; - sprintf(buf2, "%d", chapter); - strcat(buf, buf2); - } - if (section) - { - char buf2[10]; - if (chapter) - strcat(buf, "."); - - sprintf(buf2, "%d", section); - strcat(buf, buf2); - } - if (subsection) - { - char buf2[10]; - strcat(buf, "."); - sprintf(buf2, "%d", subsection); - strcat(buf, buf2); - } - if (subsubsection) - { - char buf2[10]; - strcat(buf, "."); - sprintf(buf2, "%d", subsubsection); - strcat(buf, buf2); - } - char *tmp = ((strlen(buf) > 0) ? buf : (char *)NULL); - TexReferences.Put(name, new TexRef(name, file, tmp, sectionName)); -} - -void WriteTexReferences(char *filename) -{ - ofstream ostr(filename); - if (ostr.bad()) return; - char buf[200]; - - TexReferences.BeginFind(); - wxNode *node = TexReferences.Next(); - while (node) - { - Tex2RTFYield(); - TexRef *ref = (TexRef *)node->Data(); - ostr << ref->refLabel << " " << (ref->refFile ? ref->refFile : "??") << " "; - ostr << (ref->sectionName ? ref->sectionName : "??") << " "; - ostr << (ref->sectionNumber ? ref->sectionNumber : "??") << "\n"; - if (!ref->sectionNumber || (strcmp(ref->sectionNumber, "??") == 0 && strcmp(ref->sectionName, "??") == 0)) - { - sprintf(buf, "Warning: reference %s not resolved.", ref->refLabel); - OnInform(buf); - } - node = TexReferences.Next(); - } -} - -void ReadTexReferences(char *filename) -{ - if (!wxFileExists(filename)) - return; - - ifstream istr(filename, ios::in); - - if (istr.bad()) return; - - char label[100]; - char file[400]; - char section[100]; - char sectionName[100]; - - while (!istr.eof()) - { - istr >> label; - if (!istr.eof()) - { - istr >> file; - istr >> sectionName; - char ch; - istr.get(ch); // Read past space - istr.get(ch); - int i = 0; - while (ch != '\n' && !istr.eof()) - { - section[i] = ch; - i ++; - istr.get(ch); - } - section[i] = 0; - TexReferences.Put(label, new TexRef(label, file, section, sectionName)); - } - } -} - - -/* - * Bibliography-handling code - * - */ - -void BibEatWhiteSpace(istream& str) -{ - char ch = str.peek(); - - while (!str.eof() && (ch == ' ' || ch == '\t' || ch == 13 || ch == 10 || ch == EOF)) - { - if (ch == 10) - BibLine ++; - str.get(ch); - if ((ch == EOF) || str.eof()) return; - ch = str.peek(); - } - - // Ignore end-of-line comments - if (ch == '%' || ch == ';' || ch == '#') - { - str.get(ch); - ch = str.peek(); - while (ch != 10 && ch != 13 && !str.eof()) - { - str.get(ch); - ch = str.peek(); - } - BibEatWhiteSpace(str); - } -} - -// Read word up to { or , or space -void BibReadWord(istream& istr, char *buffer) -{ - int i = 0; - buffer[i] = 0; - char ch = istr.peek(); - while (!istr.eof() && ch != ' ' && ch != '{' && ch != '(' && ch != 13 && ch != 10 && ch != '\t' && - ch != ',' && ch != '=') - { - istr.get(ch); - buffer[i] = ch; - i ++; - ch = istr.peek(); - } - buffer[i] = 0; -} - -// Read string (double-quoted or not) to end quote or EOL -void BibReadToEOL(istream& istr, char *buffer) -{ - int i = 0; - buffer[i] = 0; - char ch = istr.peek(); - bool inQuotes = FALSE; - if (ch == '"') - { - istr.get(ch); - ch = istr.peek(); - inQuotes = TRUE; - } - // If in quotes, read white space too. If not, - // stop at white space or comment. - while (!istr.eof() && ch != 13 && ch != 10 && ch != '"' && - (inQuotes || ((ch != ' ') && (ch != 9) && - (ch != ';') && (ch != '%') && (ch != '#')))) - { - istr.get(ch); - buffer[i] = ch; - i ++; - ch = istr.peek(); - } - if (ch == '"') - istr.get(ch); - buffer[i] = 0; -} - -// Read }-terminated value, taking nested braces into account. -void BibReadValue(istream& istr, char *buffer, bool ignoreBraces = TRUE, - bool quotesMayTerminate = TRUE) -{ - int braceCount = 1; - int i = 0; - buffer[i] = 0; - char ch = istr.peek(); - bool stopping = FALSE; - while (!istr.eof() && !stopping) - { -// i ++; - if (i >= 2000) - { - char buf[100]; - sprintf(buf, "Sorry, value > 2000 chars in bib file at line %ld, terminating.", BibLine); - wxFatalError(buf, "Tex2RTF Fatal Error"); - } - istr.get(ch); - - if (ch == '{') - braceCount ++; - - if (ch == '}') - { - braceCount --; - if (braceCount == 0) - { - stopping = TRUE; - break; - } - } - else if (quotesMayTerminate && ch == '"') - { - stopping = TRUE; - break; - } - if (!stopping) - { - if (!ignoreBraces || (ch != '{' && ch != '}')) - { - buffer[i] = ch; - i ++; - } - } - if (ch == 10) - BibLine ++; - } - buffer[i] = 0; -} - -bool ReadBib(char *filename) -{ - if (!wxFileExists(filename)) - return FALSE; - - char buf[300]; - ifstream istr(filename, ios::in); - if (istr.bad()) return FALSE; - - BibLine = 1; - - OnInform("Reading .bib file..."); - - char ch; - char fieldValue[2000]; - char recordType[100]; - char recordKey[100]; - char recordField[100]; - while (!istr.eof()) - { - Tex2RTFYield(); - - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '@') - { - sprintf(buf, "Expected @: malformed bib file at line %ld (%s)", BibLine, filename); - OnError(buf); - return FALSE; - } - BibReadWord(istr, recordType); - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '{' && ch != '(') - { - sprintf(buf, "Expected { or ( after record type: malformed .bib file at line %ld (%s)", BibLine, filename); - OnError(buf); - return FALSE; - } - BibEatWhiteSpace(istr); - if (StringMatch(recordType, "string", FALSE, TRUE)) - { - BibReadWord(istr, recordType); - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '=') - { - sprintf(buf, "Expected = after string key: malformed .bib file at line %ld (%s)", BibLine, filename); - OnError(buf); - return FALSE; - } - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '"' && ch != '{') - { - sprintf(buf, "Expected = after string key: malformed .bib file at line %ld (%s)", BibLine, filename); - OnError(buf); - return FALSE; - } - BibReadValue(istr, fieldValue); - - // Now put in hash table if necesary - if (!BibStringTable.Get(recordType)) - BibStringTable.Put(recordType, (wxObject *)copystring(fieldValue)); - - // Read closing ) or } - BibEatWhiteSpace(istr); - istr.get(ch); - BibEatWhiteSpace(istr); - } - else - { - BibReadWord(istr, recordKey); - - BibEntry *bibEntry = new BibEntry; - bibEntry->key = copystring(recordKey); - bibEntry->type = copystring(recordType); - - bool moreRecords = TRUE; - while (moreRecords && !istr.eof()) - { - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch == '}' || ch == ')') - { - moreRecords = FALSE; - } - else if (ch == ',') - { - BibEatWhiteSpace(istr); - BibReadWord(istr, recordField); - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '=') - { - sprintf(buf, "Expected = after field type: malformed .bib file at line %ld (%s)", BibLine, filename); - OnError(buf); - return FALSE; - } - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '{' && ch != '"') - { - fieldValue[0] = ch; - BibReadWord(istr, fieldValue+1); - - // If in the table of strings, replace with string from table. - char *s = (char *)BibStringTable.Get(fieldValue); - if (s) - { - strcpy(fieldValue, s); - } - } - else - BibReadValue(istr, fieldValue, TRUE, (ch == '"' ? TRUE : FALSE)); - - // Now we can add a field - if (StringMatch(recordField, "author", FALSE, TRUE)) - bibEntry->author = copystring(fieldValue); - else if (StringMatch(recordField, "key", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "annotate", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "abstract", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "edition", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "howpublished", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "note", FALSE, TRUE) || StringMatch(recordField, "notes", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "series", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "type", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "keywords", FALSE, TRUE)) - {} - else if (StringMatch(recordField, "editor", FALSE, TRUE) || StringMatch(recordField, "editors", FALSE, TRUE)) - bibEntry->editor= copystring(fieldValue); - else if (StringMatch(recordField, "title", FALSE, TRUE)) - bibEntry->title= copystring(fieldValue); - else if (StringMatch(recordField, "booktitle", FALSE, TRUE)) - bibEntry->booktitle= copystring(fieldValue); - else if (StringMatch(recordField, "journal", FALSE, TRUE)) - bibEntry->journal= copystring(fieldValue); - else if (StringMatch(recordField, "volume", FALSE, TRUE)) - bibEntry->volume= copystring(fieldValue); - else if (StringMatch(recordField, "number", FALSE, TRUE)) - bibEntry->number= copystring(fieldValue); - else if (StringMatch(recordField, "year", FALSE, TRUE)) - bibEntry->year= copystring(fieldValue); - else if (StringMatch(recordField, "month", FALSE, TRUE)) - bibEntry->month= copystring(fieldValue); - else if (StringMatch(recordField, "pages", FALSE, TRUE)) - bibEntry->pages= copystring(fieldValue); - else if (StringMatch(recordField, "publisher", FALSE, TRUE)) - bibEntry->publisher= copystring(fieldValue); - else if (StringMatch(recordField, "address", FALSE, TRUE)) - bibEntry->address= copystring(fieldValue); - else if (StringMatch(recordField, "institution", FALSE, TRUE) || StringMatch(recordField, "school", FALSE, TRUE)) - bibEntry->institution= copystring(fieldValue); - else if (StringMatch(recordField, "organization", FALSE, TRUE) || StringMatch(recordField, "organisation", FALSE, TRUE)) - bibEntry->organization= copystring(fieldValue); - else if (StringMatch(recordField, "comment", FALSE, TRUE) || StringMatch(recordField, "comments", FALSE, TRUE)) - bibEntry->comment= copystring(fieldValue); - else if (StringMatch(recordField, "annote", FALSE, TRUE)) - bibEntry->comment= copystring(fieldValue); - else if (StringMatch(recordField, "chapter", FALSE, TRUE)) - bibEntry->chapter= copystring(fieldValue); - else - { - sprintf(buf, "Unrecognised bib field type %s at line %ld (%s)", recordField, BibLine, filename); - OnError(buf); - } - } - } - BibList.Append(recordKey, bibEntry); - BibEatWhiteSpace(istr); - } - } - return TRUE; -} - -void OutputBibItem(TexRef *ref, BibEntry *bib) -{ - Tex2RTFYield(); - - OnMacro(ltNUMBEREDBIBITEM, 2, TRUE); - OnArgument(ltNUMBEREDBIBITEM, 1, TRUE); - TexOutput(ref->sectionNumber); - OnArgument(ltNUMBEREDBIBITEM, 1, FALSE); - OnArgument(ltNUMBEREDBIBITEM, 2, TRUE); - - TexOutput(" "); - OnMacro(ltBF, 1, TRUE); - OnArgument(ltBF, 1, TRUE); - if (bib->author) - TexOutput(bib->author); - OnArgument(ltBF, 1, FALSE); - OnMacro(ltBF, 1, FALSE); - if (bib->author && (strlen(bib->author) > 0) && (bib->author[strlen(bib->author) - 1] != '.')) - TexOutput(". "); - else - TexOutput(" "); - - if (bib->year) - { - TexOutput(bib->year); - } - if (bib->month) - { - TexOutput(" ("); - TexOutput(bib->month); - TexOutput(")"); - } - if (bib->year || bib->month) - TexOutput(". "); - - if (StringMatch(bib->type, "article", FALSE, TRUE)) - { - if (bib->title) - { - TexOutput(bib->title); - TexOutput(". "); - } - if (bib->journal) - { - OnMacro(ltIT, 1, TRUE); - OnArgument(ltIT, 1, TRUE); - TexOutput(bib->journal); - OnArgument(ltIT, 1, FALSE); - OnMacro(ltIT, 1, FALSE); - } - if (bib->volume) - { - TexOutput(", "); - OnMacro(ltBF, 1, TRUE); - OnArgument(ltBF, 1, TRUE); - TexOutput(bib->volume); - OnArgument(ltBF, 1, FALSE); - OnMacro(ltBF, 1, FALSE); - } - if (bib->number) - { - TexOutput("("); - TexOutput(bib->number); - TexOutput(")"); - } - if (bib->pages) - { - TexOutput(", pages "); - TexOutput(bib->pages); - } - TexOutput("."); - } - else if (StringMatch(bib->type, "book", FALSE, TRUE) || - StringMatch(bib->type, "unpublished", FALSE, TRUE) || - StringMatch(bib->type, "manual", FALSE, TRUE) || - StringMatch(bib->type, "phdthesis", FALSE, TRUE) || - StringMatch(bib->type, "mastersthesis", FALSE, TRUE) || - StringMatch(bib->type, "misc", FALSE, TRUE) || - StringMatch(bib->type, "techreport", FALSE, TRUE) || - StringMatch(bib->type, "booklet", FALSE, TRUE)) - { - if (bib->title || bib->booktitle) - { - OnMacro(ltIT, 1, TRUE); - OnArgument(ltIT, 1, TRUE); - TexOutput(bib->title ? bib->title : bib->booktitle); - TexOutput(". "); - OnArgument(ltIT, 1, FALSE); - OnMacro(ltIT, 1, FALSE); - } - if (StringMatch(bib->type, "phdthesis", FALSE, TRUE)) - TexOutput("PhD thesis. "); - if (StringMatch(bib->type, "techreport", FALSE, TRUE)) - TexOutput("Technical report. "); - if (bib->editor) - { - TexOutput("Ed. "); - TexOutput(bib->editor); - TexOutput(". "); - } - if (bib->institution) - { - TexOutput(bib->institution); - TexOutput(". "); - } - if (bib->organization) - { - TexOutput(bib->organization); - TexOutput(". "); - } - if (bib->publisher) - { - TexOutput(bib->publisher); - TexOutput(". "); - } - if (bib->address) - { - TexOutput(bib->address); - TexOutput(". "); - } - } - else if (StringMatch(bib->type, "inbook", FALSE, TRUE) || - StringMatch(bib->type, "inproceedings", FALSE, TRUE) || - StringMatch(bib->type, "incollection", FALSE, TRUE) || - StringMatch(bib->type, "conference", FALSE, TRUE)) - { - if (bib->title) - { - TexOutput(bib->title); - } - if (bib->booktitle) - { - TexOutput(", from "); - OnMacro(ltIT, 1, TRUE); - OnArgument(ltIT, 1, TRUE); - TexOutput(bib->booktitle); - TexOutput("."); - OnArgument(ltIT, 1, FALSE); - OnMacro(ltIT, 1, FALSE); - } - if (bib->editor) - { - TexOutput(", ed. "); - TexOutput(bib->editor); - } - if (bib->publisher) - { - TexOutput(" "); - TexOutput(bib->publisher); - } - if (bib->address) - { - if (bib->publisher) TexOutput(", "); - else TexOutput(" "); - TexOutput(bib->address); - } - if (bib->publisher || bib->address) - TexOutput("."); - - if (bib->volume) - { - TexOutput(" "); - OnMacro(ltBF, 1, TRUE); - OnArgument(ltBF, 1, TRUE); - TexOutput(bib->volume); - OnArgument(ltBF, 1, FALSE); - OnMacro(ltBF, 1, FALSE); - } - if (bib->number) - { - if (bib->volume) - { - TexOutput("("); - TexOutput(bib->number); - TexOutput(")."); - } - else - { - TexOutput(" Number "); - TexOutput(bib->number); - TexOutput("."); - } - } - if (bib->chapter) - { - TexOutput(" Chap. "); TexOutput(bib->chapter); - } - if (bib->pages) - { - if (bib->chapter) TexOutput(", pages "); - else TexOutput(" Pages "); - TexOutput(bib->pages); - TexOutput("."); - } - } - OnArgument(ltNUMBEREDBIBITEM, 2, FALSE); - OnMacro(ltNUMBEREDBIBITEM, 2, FALSE); -} - -void OutputBib(void) -{ - // Write the heading - ForceTopicName("bibliography"); - FakeCurrentSection(ReferencesNameString); - ForceTopicName(NULL); - - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - - if ((convertMode == TEX_RTF) && !winHelp) - { - OnMacro(ltPAR, 0, TRUE); - OnMacro(ltPAR, 0, FALSE); - } - - wxNode *node = CitationList.First(); - while (node) - { - char *citeKey = (char *)node->Data(); -// wxNode *texNode = TexReferences.Find(citeKey); - TexRef *ref = (TexRef *)TexReferences.Get(citeKey); - wxNode *bibNode = BibList.Find(citeKey); - if (bibNode && ref) - { - BibEntry *entry = (BibEntry *)bibNode->Data(); - OutputBibItem(ref, entry); - } - node = node->Next(); - } -} - -static int citeCount = 1; - -void ResolveBibReferences(void) -{ - if (CitationList.Number() > 0) - OnInform("Resolving bibliographic references..."); - - citeCount = 1; - char buf[200]; - wxNode *node = CitationList.First(); - while (node) - { - Tex2RTFYield(); - char *citeKey = (char *)node->Data(); -// wxNode *texNode = TexReferences.Find(citeKey); - TexRef *ref = (TexRef *)TexReferences.Get(citeKey); - wxNode *bibNode = BibList.Find(citeKey); - if (bibNode && ref) - { - // Unused Variable - //BibEntry *entry = (BibEntry *)bibNode->Data(); - if (ref->sectionNumber) delete[] ref->sectionNumber; - sprintf(buf, "[%d]", citeCount); - ref->sectionNumber = copystring(buf); - citeCount ++; - } - else - { - sprintf(buf, "Warning: bib ref %s not resolved.", citeKey); - OnInform(buf); - } - node = node->Next(); - } -} - -// Remember we need to resolve this citation -void AddCitation(char *citeKey) -{ - if (!CitationList.Member(citeKey)) - CitationList.Add(citeKey); - - if (!TexReferences.Get(citeKey)) - { - TexReferences.Put(citeKey, new TexRef(citeKey, "??", NULL)); - } -} - -TexRef *FindReference(char *key) -{ - return (TexRef *)TexReferences.Get(key); -} - -/* - * Custom macro stuff - * - */ - -bool StringTobool(char *val) -{ - if (strncmp(val, "yes", 3) == 0 || strncmp(val, "YES", 3) == 0 || - strncmp(val, "on", 2) == 0 || strncmp(val, "ON", 2) == 0 || - strncmp(val, "true", 4) == 0 || strncmp(val, "TRUE", 4) == 0 || - strncmp(val, "ok", 2) == 0 || strncmp(val, "OK", 2) == 0 || - strncmp(val, "1", 1) == 0) - return TRUE; - else - return FALSE; -} - -// Define a variable value from the .ini file -char *RegisterSetting(char *settingName, char *settingValue, bool interactive) -{ - static char errorCode[100]; - strcpy(errorCode, "OK"); - if (StringMatch(settingName, "chapterName", FALSE, TRUE)) - { - delete[] ChapterNameString; - ChapterNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "sectionName", FALSE, TRUE)) - { - delete[] SectionNameString; - SectionNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "subsectionName", FALSE, TRUE)) - { - delete[] SubsectionNameString; - SubsectionNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "subsubsectionName", FALSE, TRUE)) - { - delete[] SubsubsectionNameString; - SubsubsectionNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "indexName", FALSE, TRUE)) - { - delete[] IndexNameString; - IndexNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "contentsName", FALSE, TRUE)) - { - delete[] ContentsNameString; - ContentsNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "glossaryName", FALSE, TRUE)) - { - delete[] GlossaryNameString; - GlossaryNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "referencesName", FALSE, TRUE)) - { - delete[] ReferencesNameString; - ReferencesNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "tablesName", FALSE, TRUE)) - { - delete[] TablesNameString; - TablesNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "figuresName", FALSE, TRUE)) - { - delete[] FiguresNameString; - FiguresNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "tableName", FALSE, TRUE)) - { - delete[] TableNameString; - TableNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "figureName", FALSE, TRUE)) - { - delete[] FigureNameString; - FigureNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "abstractName", FALSE, TRUE)) - { - delete[] AbstractNameString; - AbstractNameString = copystring(settingValue); - } - else if (StringMatch(settingName, "chapterFontSize", FALSE, TRUE)) - StringToInt(settingValue, &chapterFont); - else if (StringMatch(settingName, "sectionFontSize", FALSE, TRUE)) - StringToInt(settingValue, §ionFont); - else if (StringMatch(settingName, "subsectionFontSize", FALSE, TRUE)) - StringToInt(settingValue, &subsectionFont); - else if (StringMatch(settingName, "titleFontSize", FALSE, TRUE)) - StringToInt(settingValue, &titleFont); - else if (StringMatch(settingName, "authorFontSize", FALSE, TRUE)) - StringToInt(settingValue, &authorFont); - else if (StringMatch(settingName, "ignoreInput", FALSE, TRUE)) - IgnorableInputFiles.Add(FileNameFromPath(settingValue)); - else if (StringMatch(settingName, "mirrorMargins", FALSE, TRUE)) - mirrorMargins = StringTobool(settingValue); - else if (StringMatch(settingName, "runTwice", FALSE, TRUE)) - runTwice = StringTobool(settingValue); - else if (StringMatch(settingName, "isInteractive", FALSE, TRUE)) - isInteractive = StringTobool(settingValue); - else if (StringMatch(settingName, "headerRule", FALSE, TRUE)) - headerRule = StringTobool(settingValue); - else if (StringMatch(settingName, "footerRule", FALSE, TRUE)) - footerRule = StringTobool(settingValue); - else if (StringMatch(settingName, "combineSubSections", FALSE, TRUE)) - combineSubSections = StringTobool(settingValue); - else if (StringMatch(settingName, "listLabelIndent", FALSE, TRUE)) - StringToInt(settingValue, &labelIndentTab); - else if (StringMatch(settingName, "listItemIndent", FALSE, TRUE)) - StringToInt(settingValue, &itemIndentTab); - else if (StringMatch(settingName, "useUpButton", FALSE, TRUE)) - useUpButton = StringTobool(settingValue); - else if (StringMatch(settingName, "useHeadingStyles", FALSE, TRUE)) - useHeadingStyles = StringTobool(settingValue); - else if (StringMatch(settingName, "useWord", FALSE, TRUE)) - useWord = StringTobool(settingValue); - else if (StringMatch(settingName, "contentsDepth", FALSE, TRUE)) - StringToInt(settingValue, &contentsDepth); - else if (StringMatch(settingName, "generateHPJ", FALSE, TRUE)) - generateHPJ = StringTobool(settingValue); - else if (StringMatch(settingName, "truncateFilenames", FALSE, TRUE)) - truncateFilenames = StringTobool(settingValue); - else if (StringMatch(settingName, "winHelpVersion", FALSE, TRUE)) - StringToInt(settingValue, &winHelpVersion); - else if (StringMatch(settingName, "winHelpContents", FALSE, TRUE)) - winHelpContents = StringTobool(settingValue); - else if (StringMatch(settingName, "htmlIndex", FALSE, TRUE)) - htmlIndex = StringTobool(settingValue); - else if (StringMatch(settingName, "htmlWorkshopFiles", FALSE, TRUE)) - htmlWorkshopFiles = StringTobool(settingValue); - else if (StringMatch(settingName, "htmlFrameContents", FALSE, TRUE)) - htmlFrameContents = StringTobool(settingValue); - else if (StringMatch(settingName, "upperCaseNames", FALSE, TRUE)) - upperCaseNames = StringTobool(settingValue); - else if (StringMatch(settingName, "winHelpTitle", FALSE, TRUE)) - { - if (winHelpTitle) - delete[] winHelpTitle; - winHelpTitle = copystring(settingValue); - } - else if (StringMatch(settingName, "indexSubsections", FALSE, TRUE)) - indexSubsections = StringTobool(settingValue); - else if (StringMatch(settingName, "compatibility", FALSE, TRUE)) - compatibilityMode = StringTobool(settingValue); - else if (StringMatch(settingName, "defaultColumnWidth", FALSE, TRUE)) - { - StringToInt(settingValue, &defaultTableColumnWidth); - defaultTableColumnWidth = 20*defaultTableColumnWidth; - } - else if (StringMatch(settingName, "bitmapMethod", FALSE, TRUE)) - { - if ((strcmp(settingValue, "includepicture") != 0) && (strcmp(settingValue, "hex") != 0) && - (strcmp(settingValue, "import") != 0)) - { - if (interactive) - OnError("Unknown bitmapMethod"); - strcpy(errorCode, "Unknown bitmapMethod"); - } - else - { - delete[] bitmapMethod; - bitmapMethod = copystring(settingValue); - } - } - else if (StringMatch(settingName, "htmlBrowseButtons", FALSE, TRUE)) - { - if (strcmp(settingValue, "none") == 0) - htmlBrowseButtons = HTML_BUTTONS_NONE; - else if (strcmp(settingValue, "bitmap") == 0) - htmlBrowseButtons = HTML_BUTTONS_BITMAP; - else if (strcmp(settingValue, "text") == 0) - htmlBrowseButtons = HTML_BUTTONS_TEXT; - else - { - if (interactive) - OnInform("Initialisation file error: htmlBrowseButtons must be one of none, bitmap, or text."); - strcpy(errorCode, "Initialisation file error: htmlBrowseButtons must be one of none, bitmap, or text."); - } - } - else if (StringMatch(settingName, "backgroundImage", FALSE, TRUE)) - { - backgroundImageString = copystring(settingValue); - } - else if (StringMatch(settingName, "backgroundColour", FALSE, TRUE)) - { - delete[] backgroundColourString; - backgroundColourString = copystring(settingValue); - } - else if (StringMatch(settingName, "textColour", FALSE, TRUE)) - { - textColourString = copystring(settingValue); - } - else if (StringMatch(settingName, "linkColour", FALSE, TRUE)) - { - linkColourString = copystring(settingValue); - } - else if (StringMatch(settingName, "followedLinkColour", FALSE, TRUE)) - { - followedLinkColourString = copystring(settingValue); - } - else if (StringMatch(settingName, "conversionMode", FALSE, TRUE)) - { - if (StringMatch(settingValue, "RTF", FALSE, TRUE)) - { - winHelp = FALSE; convertMode = TEX_RTF; - } - else if (StringMatch(settingValue, "WinHelp", FALSE, TRUE)) - { - winHelp = TRUE; convertMode = TEX_RTF; - } - else if (StringMatch(settingValue, "XLP", FALSE, TRUE) || - StringMatch(settingValue, "wxHelp", FALSE, TRUE)) - { - convertMode = TEX_XLP; - } - else if (StringMatch(settingValue, "HTML", FALSE, TRUE)) - { - convertMode = TEX_HTML; - } - else - { - if (interactive) - OnInform("Initialisation file error: conversionMode must be one of\nRTF, WinHelp, XLP (or wxHelp), HTML."); - strcpy(errorCode, "Initialisation file error: conversionMode must be one of\nRTF, WinHelp, XLP (or wxHelp), HTML."); - } - } - else if (StringMatch(settingName, "documentFontSize", FALSE, TRUE)) - { - int n; - StringToInt(settingValue, &n); - if (n == 10 || n == 11 || n == 12) - SetFontSizes(n); - else - { - char buf[200]; - sprintf(buf, "Initialisation file error: nonstandard document font size %d.", n); - if (interactive) - OnInform(buf); - strcpy(errorCode, buf); - } - } - else - { - char buf[200]; - sprintf(buf, "Initialisation file error: unrecognised setting %s.", settingName); - if (interactive) - OnInform(buf); - strcpy(errorCode, buf); - } - return errorCode; -} - -bool ReadCustomMacros(char *filename) -{ - if (!wxFileExists(filename)) - return FALSE; - - ifstream istr(filename, ios::in); - - if (istr.bad()) return FALSE; - - CustomMacroList.Clear(); - char ch; - char macroName[100]; - char macroBody[1000]; - int noArgs; - - while (!istr.eof()) - { - BibEatWhiteSpace(istr); - istr.get(ch); - if (istr.eof()) - break; - - if (ch != '\\') // Not a macro definition, so must be NAME=VALUE - { - char settingName[100]; - settingName[0] = ch; - BibReadWord(istr, (settingName+1)); - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '=') - { - OnError("Expected = following name: malformed tex2rtf.ini file."); - return FALSE; - } - else - { - char settingValue[200]; - BibEatWhiteSpace(istr); - BibReadToEOL(istr, settingValue); - RegisterSetting(settingName, settingValue); - } - } - else - { - BibReadWord(istr, macroName); - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '[') - { - OnError("Expected [ followed by number of arguments: malformed tex2rtf.ini file."); - return FALSE; - } - istr >> noArgs; - istr.get(ch); - if (ch != ']') - { - OnError("Expected ] following number of arguments: malformed tex2rtf.ini file."); - return FALSE; - } - BibEatWhiteSpace(istr); - istr.get(ch); - if (ch != '{') - { - OnError("Expected { followed by macro body: malformed tex2rtf.ini file."); - return FALSE; - } - CustomMacro *macro = new CustomMacro(macroName, noArgs, NULL); - BibReadValue(istr, macroBody, FALSE, FALSE); // Don't ignore extra braces - if (strlen(macroBody) > 0) - macro->macroBody = copystring(macroBody); - - BibEatWhiteSpace(istr); - CustomMacroList.Append(macroName, macro); - AddMacroDef(ltCUSTOM_MACRO, macroName, noArgs); - } - } - char mbuf[200]; - sprintf(mbuf, "Read initialization file %s.", filename); - OnInform(mbuf); - return TRUE; -} - -CustomMacro *FindCustomMacro(char *name) -{ - wxNode *node = CustomMacroList.Find(name); - if (node) - { - CustomMacro *macro = (CustomMacro *)node->Data(); - return macro; - } - return NULL; -} - -// Display custom macros -void ShowCustomMacros(void) -{ - wxNode *node = CustomMacroList.First(); - if (!node) - { - OnInform("No custom macros loaded.\n"); - return; - } - - char buf[400]; - while (node) - { - CustomMacro *macro = (CustomMacro *)node->Data(); - sprintf(buf, "\\%s[%d]\n {%s}", macro->macroName, macro->noArgs, - macro->macroBody ? macro->macroBody : ""); - OnInform(buf); - node = node->Next(); - } -} - -// Parse a string into several comma-separated fields -char *ParseMultifieldString(char *allFields, int *pos) -{ - static char buffer[300]; - int i = 0; - int fieldIndex = *pos; - int len = strlen(allFields); - int oldPos = *pos; - bool keepGoing = TRUE; - while ((fieldIndex <= len) && keepGoing) - { - if (allFields[fieldIndex] == ' ') - { - // Skip - fieldIndex ++; - } - else if (allFields[fieldIndex] == ',') - { - *pos = fieldIndex + 1; - keepGoing = FALSE; - } - else if (allFields[fieldIndex] == 0) - { - *pos = fieldIndex + 1; - keepGoing = FALSE; - } - else - { - buffer[i] = allFields[fieldIndex]; - fieldIndex ++; - i++; - } - } - buffer[i] = 0; - if (oldPos == (*pos)) - *pos = len + 1; - - if (i == 0) - return NULL; - else - return buffer; -} - -/* - * Colour tables - * - */ - -ColourTableEntry::ColourTableEntry(char *theName, unsigned int r, unsigned int g, unsigned int b) -{ - name = copystring(theName); - red = r; - green = g; - blue = b; -} - -ColourTableEntry::~ColourTableEntry(void) -{ - delete[] name; -} - -void AddColour(char *theName, unsigned int r, unsigned int g, unsigned int b) -{ - wxNode *node = ColourTable.Find(theName); - if (node) - { - ColourTableEntry *entry = (ColourTableEntry *)node->Data(); - if (entry->red == r || entry->green == g || entry->blue == b) - return; - else - { - delete entry; - delete node; - } - } - ColourTableEntry *entry = new ColourTableEntry(theName, r, g, b); - ColourTable.Append(theName, entry); -} - -int FindColourPosition(char *theName) -{ - int i = 0; - wxNode *node = ColourTable.First(); - while (node) - { - ColourTableEntry *entry = (ColourTableEntry *)node->Data(); - if (strcmp(theName, entry->name) == 0) - return i; - i ++; - node = node->Next(); - } - return -1; -} - -// Converts e.g. "red" -> "#FF0000" -extern void DecToHex(int, char *); -bool FindColourHTMLString(char *theName, char *buf) -{ - int i = 0; - wxNode *node = ColourTable.First(); - while (node) - { - ColourTableEntry *entry = (ColourTableEntry *)node->Data(); - if (strcmp(theName, entry->name) == 0) - { - strcpy(buf, "#"); - - char buf2[3]; - DecToHex(entry->red, buf2); - strcat(buf, buf2); - DecToHex(entry->green, buf2); - strcat(buf, buf2); - DecToHex(entry->blue, buf2); - strcat(buf, buf2); - - return TRUE; - } - i ++; - node = node->Next(); - } - return FALSE; -} - - -void InitialiseColourTable(void) -{ - // \\red0\\green0\\blue0; - AddColour("black", 0,0,0); - - // \\red0\\green0\\blue255;\\red0\\green255\\blue255;\n"); - AddColour("cyan", 0,255,255); - - // \\red0\\green255\\blue0; - AddColour("green", 0,255,0); - - // \\red255\\green0\\blue255; - AddColour("magenta", 255,0,255); - - // \\red255\\green0\\blue0; - AddColour("red", 255,0,0); - - // \\red255\\green255\\blue0; - AddColour("yellow", 255,255,0); - - // \\red255\\green255\\blue255;}"); - AddColour("white", 255,255,255); -} - -/* - * The purpose of this is to reduce the number of times wxYield is - * called, since under Windows this can slow things down. - */ - -static int yieldCount = 0; - -void Tex2RTFYield(bool force) -{ -#ifdef __WXMSW__ - if (isSync) - return; - - if (force) - yieldCount = 0; - if (yieldCount == 0) - { - wxYield(); - yieldCount = 10; - } - yieldCount --; -#endif -} - -// In both RTF generation and HTML generation for wxHelp version 2, -// we need to associate \indexed keywords with the current filename/topics. - -// Hash table for lists of keywords for topics (WinHelp). -wxHashTable TopicTable(wxKEY_STRING); -void AddKeyWordForTopic(char *topic, char *entry, char *filename) -{ - TexTopic *texTopic = (TexTopic *)TopicTable.Get(topic); - if (!texTopic) - { - texTopic = new TexTopic(filename); - texTopic->keywords = new wxStringList; - TopicTable.Put(topic, texTopic); - } - - if (!texTopic->keywords->Member(entry)) - texTopic->keywords->Add(entry); -} - -void ClearKeyWordTable(void) -{ - TopicTable.BeginFind(); - wxNode *node = TopicTable.Next(); - while (node) - { - TexTopic *texTopic = (TexTopic *)node->Data(); - delete texTopic; - node = TopicTable.Next(); - } - TopicTable.Clear(); -} - - -/* - * TexTopic structure - */ - -TexTopic::TexTopic(char *f) -{ - if (f) - filename = copystring(f); - else - filename = NULL; - hasChildren = FALSE; - keywords = NULL; -} - -TexTopic::~TexTopic(void) -{ - if (keywords) - delete keywords; - if (filename) - delete[] filename; -} - -// Convert case, according to upperCaseNames setting. -char *ConvertCase(char *s) -{ - static char buf[256]; - int len = strlen(s); - int i; - if (upperCaseNames) - for (i = 0; i < len; i ++) - buf[i] = toupper(s[i]); - else - for (i = 0; i < len; i ++) - buf[i] = tolower(s[i]); - buf[i] = 0; - return buf; -} diff --git a/utils/tex2rtf/src/wxhlpblk.h b/utils/tex2rtf/src/wxhlpblk.h deleted file mode 100644 index 6cfeb75e41..0000000000 --- a/utils/tex2rtf/src/wxhlpblk.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * File: wxhlpblk.h - * Purpose: Text blocks used in wxHelp - * Author: Julian Smart - * Created: 1993 - * Updated: - * Copyright: (c) 1993, AIAI, University of Edinburgh - */ - -/* sccsid[] = "%W% %G%" */ - -#ifndef wxhlpblkh -#define wxhlpblkh - -#define hyBLOCK_NORMAL 1 -#define hyBLOCK_RED 2 -#define hyBLOCK_BLUE 3 -#define hyBLOCK_GREEN 4 -#define hyBLOCK_LARGE_HEADING 5 -#define hyBLOCK_SMALL_HEADING 6 -#define hyBLOCK_ITALIC 7 -#define hyBLOCK_BOLD 8 -#define hyBLOCK_INVISIBLE_SECTION 9 -#define hyBLOCK_LARGE_VISIBLE_SECTION 10 -#define hyBLOCK_SMALL_VISIBLE_SECTION 11 -#define hyBLOCK_SMALL_TEXT 12 -#define hyBLOCK_RED_ITALIC 13 -#define hyBLOCK_TELETYPE 14 - -#endif // wxhlpblkh diff --git a/utils/tex2rtf/src/xlputils.cpp b/utils/tex2rtf/src/xlputils.cpp deleted file mode 100644 index bcbc4a0fb7..0000000000 --- a/utils/tex2rtf/src/xlputils.cpp +++ /dev/null @@ -1,1219 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: xlputils.cpp -// Purpose: Converts Latex to obsolete XLP format -// Author: Julian Smart -// Modified by: -// Created: 7.9.93 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation -#endif - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -#include "tex2any.h" -#include "tex2rtf.h" -#include - -long currentBlockId = -1; -static TexChunk *descriptionItemArg = NULL; -static int indentLevel = 0; -static int noColumns = 0; -static int currentTab = 0; -static bool tableVerticalLineLeft = FALSE; -static bool tableVerticalLineRight = FALSE; -static bool inTable = FALSE; -static int citeCount = 1; -wxList hyperLinks(wxKEY_INTEGER); -wxList hyperLabels(wxKEY_STRING); -FILE *Index = NULL; - -void PadToTab(int tabPos) -{ - int currentCol = GetCurrentColumn(); - for (int i = currentCol; i < tabPos; i++) - TexOutput(" ", TRUE); -} - -static long xlpBlockId = 0; -long NewBlockId(void) -{ - return xlpBlockId ++; -} - -// Called on start/end of macro examination -void XLPOnMacro(int macroId, int no_args, bool start) -{ - char buf[100]; - switch (macroId) - { - case ltCHAPTER: - case ltCHAPTERSTAR: - case ltCHAPTERHEADING: - { - if (!start) - { - sectionNo = 0; - figureNo = 0; - subsectionNo = 0; - subsubsectionNo = 0; - if (macroId != ltCHAPTERSTAR) - chapterNo ++; - - SetCurrentOutputs(Contents, Chapters); - long id1 = NewBlockId(); - currentBlockId = NewBlockId(); - - startedSections = TRUE; - fprintf(Contents, "\\hy-%d{%ld}{", hyBLOCK_SMALL_HEADING, id1); - fprintf(Chapters, "\n\\hy-%d{%ld}{", hyBLOCK_LARGE_VISIBLE_SECTION, currentBlockId); - fprintf(Index, "%ld %ld\n", id1, currentBlockId); - - OutputCurrentSection(); // Repeat section header - - fprintf(Contents, "}\n\n"); - fprintf(Chapters, "}\n\n"); - SetCurrentOutput(Chapters); - char *topicName = FindTopicName(GetNextChunk()); - hyperLabels.Append(topicName, (wxObject *)currentBlockId); - } - break; - } - case ltSECTION: - case ltSECTIONSTAR: - case ltSECTIONHEADING: - case ltGLOSS: - { - if (!start) - { - subsectionNo = 0; - subsubsectionNo = 0; - - if (macroId != ltSECTIONSTAR) - sectionNo ++; - - SetCurrentOutputs(Chapters, Sections); - long id1 = NewBlockId(); - currentBlockId = NewBlockId(); - - startedSections = TRUE; - - if (DocumentStyle == LATEX_ARTICLE) - fprintf(Contents, "\\hy-%d{%ld}{", hyBLOCK_LARGE_HEADING, id1); - else - fprintf(Chapters, "\\hy-%d{%ld}{", hyBLOCK_BOLD, id1); - fprintf(Sections, "\n\\hy-%d{%ld}{", hyBLOCK_LARGE_VISIBLE_SECTION, currentBlockId); - fprintf(Index, "%ld %ld\n", id1, currentBlockId); - - OutputCurrentSection(); // Repeat section header - - if (DocumentStyle == LATEX_ARTICLE) - fprintf(Contents, "}\n\n"); - else - fprintf(Chapters, "}\n\n"); - fprintf(Sections, "}\n\n"); - SetCurrentOutput(Sections); - char *topicName = FindTopicName(GetNextChunk()); - hyperLabels.Append(topicName, (wxObject *)currentBlockId); - } - break; - } - case ltSUBSECTION: - case ltSUBSECTIONSTAR: - case ltMEMBERSECTION: - case ltFUNCTIONSECTION: - { - if (!start) - { - subsubsectionNo = 0; - - if (macroId != ltSUBSECTIONSTAR) - subsectionNo ++; - - SetCurrentOutputs(Sections, Subsections); - long id1 = NewBlockId(); - currentBlockId = NewBlockId(); - fprintf(Sections, "\\hy-%d{%ld}{", hyBLOCK_BOLD, id1); - fprintf(Subsections, "\n\\hy-%d{%ld}{", hyBLOCK_LARGE_VISIBLE_SECTION, currentBlockId); - fprintf(Index, "%ld %ld\n", id1, currentBlockId); - - OutputCurrentSection(); // Repeat section header - - fprintf(Sections, "}\n\n"); - fprintf(Subsections, "}\n\n"); - SetCurrentOutput(Subsections); - char *topicName = FindTopicName(GetNextChunk()); - hyperLabels.Append(topicName, (wxObject *)currentBlockId); - } - break; - } - case ltSUBSUBSECTION: - case ltSUBSUBSECTIONSTAR: - { - if (!start) - { - if (macroId != ltSUBSUBSECTIONSTAR) - subsubsectionNo ++; - - SetCurrentOutputs(Subsections, Subsubsections); - long id1 = NewBlockId(); - currentBlockId = NewBlockId(); - fprintf(Subsections, "\\hy-%d{%ld}{", hyBLOCK_BOLD, id1); - fprintf(Subsubsections, "\n\\hy-%d{%ld}{", hyBLOCK_LARGE_VISIBLE_SECTION, currentBlockId); - fprintf(Index, "%ld %ld\n", id1, currentBlockId); - - OutputCurrentSection(); // Repeat section header - - fprintf(Subsections, "}\n\n"); - fprintf(Subsubsections, "}\n\n"); - SetCurrentOutput(Subsubsections); - char *topicName = FindTopicName(GetNextChunk()); - hyperLabels.Append(topicName, (wxObject *)currentBlockId); - } - break; - } - case ltFUNC: - case ltPFUNC: - case ltMEMBER: - { - SetCurrentOutput(Subsections); - if (start) - { - long id = NewBlockId(); - fprintf(Subsections, "\\hy-%d{%ld}{", hyBLOCK_BOLD, id); - } - else - fprintf(Subsections, "}"); - break; - } - case ltVOID: -// if (start) -// TexOutput("void", TRUE); - break; - case ltBACKSLASHCHAR: - if (start) - TexOutput("\n", TRUE); - break; - case ltPAR: - { - if (start) - { - if (ParSkip > 0) - TexOutput("\n", TRUE); - TexOutput("\n", TRUE); - } - break; - } - case ltRMFAMILY: - case ltTEXTRM: - case ltRM: - { - break; - } - case ltTEXTBF: - case ltBFSERIES: - case ltBF: - { - if (start) - { - char buf[100]; - long id = NewBlockId(); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_BOLD, id); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltTEXTIT: - case ltITSHAPE: - case ltIT: - { - if (start) - { - char buf[100]; - long id = NewBlockId(); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_ITALIC, id); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltTTFAMILY: - case ltTEXTTT: - case ltTT: - { - if (start) - { - long id = NewBlockId(); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_TELETYPE, id); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltSMALL: - { - if (start) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_SMALL_TEXT, NewBlockId()); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltTINY: - { - if (start) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_SMALL_TEXT, NewBlockId()); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltNORMALSIZE: - { - if (start) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_NORMAL, NewBlockId()); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltlarge: - { - if (start) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_SMALL_HEADING, NewBlockId()); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltLARGE: - { - if (start) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_LARGE_HEADING, NewBlockId()); - TexOutput(buf); - } - else TexOutput("}\n"); - break; - } - case ltITEMIZE: - case ltENUMERATE: - case ltDESCRIPTION: - case ltTWOCOLLIST: - { - if (start) - { -// tabCount ++; - -// if (indentLevel > 0) -// TexOutput("\\par\\par\n"); - indentLevel ++; - int listType; - if (macroId == ltENUMERATE) - listType = LATEX_ENUMERATE; - else if (macroId == ltITEMIZE) - listType = LATEX_ITEMIZE; - else - listType = LATEX_DESCRIPTION; - itemizeStack.Insert(new ItemizeStruc(listType)); - - } - else - { - indentLevel --; - - if (itemizeStack.First()) - { - ItemizeStruc *struc = (ItemizeStruc *)itemizeStack.First()->Data(); - delete struc; - delete itemizeStack.First(); - } - } - break; - } - case ltITEM: - { - wxNode *node = itemizeStack.First(); - if (node) - { - ItemizeStruc *struc = (ItemizeStruc *)node->Data(); - if (!start) - { - struc->currentItem += 1; - char indentBuf[30]; - - switch (struc->listType) - { - case LATEX_ENUMERATE: - { - sprintf(indentBuf, "\\hy-%d{%ld}{%d.} ", - hyBLOCK_BOLD, NewBlockId(), struc->currentItem); - TexOutput(indentBuf); - break; - } - case LATEX_ITEMIZE: - { - sprintf(indentBuf, "\\hy-%d{%ld}{o} ", - hyBLOCK_BOLD, NewBlockId()); - TexOutput(indentBuf); - break; - } - default: - case LATEX_DESCRIPTION: - { - if (descriptionItemArg) - { - sprintf(indentBuf, "\\hy-%d{%ld}{", - hyBLOCK_BOLD, NewBlockId()); - TexOutput(indentBuf); - TraverseChildrenFromChunk(descriptionItemArg); - TexOutput("} "); - descriptionItemArg = NULL; - } - break; - } - } - } - } - break; - } - case ltMAKETITLE: - { - if (start && DocumentTitle && DocumentAuthor) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_LARGE_HEADING, NewBlockId()); - TexOutput(buf); - TraverseChildrenFromChunk(DocumentTitle); - TexOutput("}\n\n"); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_SMALL_HEADING, NewBlockId()); - TexOutput(buf); - TraverseChildrenFromChunk(DocumentAuthor); - TexOutput("}\n\n"); - if (DocumentDate) - { - TraverseChildrenFromChunk(DocumentDate); - TexOutput("\n"); - } - } - break; - } - case ltTABLEOFCONTENTS: - { - if (start) - { - FILE *fd = fopen(ContentsName, "r"); - if (fd) - { - int ch = getc(fd); - while (ch != EOF) - { - putc(ch, Chapters); - ch = getc(fd); - } - fclose(fd); - } - else - { - TexOutput("RUN TEX2RTF AGAIN FOR CONTENTS PAGE\n"); - OnInform("Run Tex2RTF again to include contents page."); - } - } - break; - } - case ltHARDY: - { - if (start) - TexOutput("HARDY", TRUE); - break; - } - case ltWXCLIPS: - { - if (start) - TexOutput("wxCLIPS", TRUE); - break; - } - case ltVERBATIM: - { - if (start) - { - char buf[100]; - long id = NewBlockId(); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_TELETYPE, id); - TexOutput(buf); - } - else TexOutput("}"); - break; - } - case ltHRULE: - { - if (start) - { - TexOutput("\n------------------------------------------------------------------", TRUE); - } - break; - } - case ltHLINE: - { - if (start) - { - TexOutput("--------------------------------------------------------------------------------", TRUE); - } - break; - } - case ltSPECIALAMPERSAND: - { - if (start) - { - currentTab ++; - int tabPos = (80/noColumns)*currentTab; - PadToTab(tabPos); - } - break; - } - case ltTABULAR: - case ltSUPERTABULAR: - { - if (start) - { - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_TELETYPE, NewBlockId()); - TexOutput(buf); - } - else - TexOutput("}"); - break; - } - case ltNUMBEREDBIBITEM: - { - if (!start) - TexOutput("\n\n", TRUE); - break; - } - case ltCAPTION: - case ltCAPTIONSTAR: - { - if (start) - { - figureNo ++; - - char figBuf[40]; - if (DocumentStyle != LATEX_ARTICLE) - sprintf(figBuf, "Figure %d.%d: ", chapterNo, figureNo); - else - sprintf(figBuf, "Figure %d: ", figureNo); - - TexOutput(figBuf); - } - else - { - char *topicName = FindTopicName(GetNextChunk()); - - AddTexRef(topicName, NULL, NULL, - ((DocumentStyle != LATEX_ARTICLE) ? chapterNo : figureNo), - ((DocumentStyle != LATEX_ARTICLE) ? figureNo : 0)); - } - break; - } - default: - { - DefaultOnMacro(macroId, no_args, start); - break; - } - } -} - -bool XLPOnArgument(int macroId, int arg_no, bool start) -{ - char buf[300]; - switch (macroId) - { - case ltCHAPTER: - case ltCHAPTERSTAR: - case ltCHAPTERHEADING: - case ltSECTION: - case ltSECTIONSTAR: - case ltSECTIONHEADING: - case ltSUBSECTION: - case ltSUBSECTIONSTAR: - case ltSUBSUBSECTION: - case ltSUBSUBSECTIONSTAR: - case ltGLOSS: - case ltMEMBERSECTION: - case ltFUNCTIONSECTION: - { - if (!start && (arg_no == 1)) - currentSection = GetArgChunk(); - return FALSE; - break; - } - case ltFUNC: - { - if (!start && (arg_no == 1)) - TexOutput(" ", TRUE); - if (start && (arg_no == 3)) - TexOutput("(", TRUE); - if (!start && (arg_no == 3)) - TexOutput(")", TRUE); - break; - } - case ltPFUNC: - { - if (!start && (arg_no == 1)) - TexOutput(" ", TRUE); - - if (start && (arg_no == 2)) - TexOutput("(*", TRUE); - if (!start && (arg_no == 2)) - TexOutput(")", TRUE); - - if (start && (arg_no == 3)) - TexOutput("(", TRUE); - if (!start && (arg_no == 3)) - TexOutput(")", TRUE); - break; - } - case ltCLIPSFUNC: - { - if (!start && (arg_no == 1)) - TexOutput(" ", TRUE); - if (start && (arg_no == 2)) - { - TexOutput("(", TRUE); - long id = NewBlockId(); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_BOLD, id); - TexOutput(buf); - } - if (!start && (arg_no == 2)) - { - TexOutput("}"); - } - if (!start && (arg_no == 3)) - TexOutput(")", TRUE); - break; - } - case ltPARAM: - { - if (start && (arg_no == 2)) - { - long id = NewBlockId(); - sprintf(buf, " \\hy-%d{%ld}{", hyBLOCK_BOLD, id); - TexOutput(buf); - } - if (!start && (arg_no == 2)) - { - TexOutput("}"); - } - break; - } - case ltCPARAM: - { - if (start && (arg_no == 2)) - { - long id = NewBlockId(); - sprintf(buf, " \\hy-%d{%ld}{", hyBLOCK_BOLD, id); - TexOutput(buf); - } - if (!start && (arg_no == 2)) - { - TexOutput("}"); - } - break; - } - case ltMEMBER: - { - if (!start && (arg_no == 1)) - TexOutput(" ", TRUE); - break; - } - case ltLABEL: - { - return FALSE; - break; - } - case ltREF: - { - if (start) - { - char *sec = NULL; - - char *refName = GetArgData(); - if (refName) - { - TexRef *texRef = FindReference(refName); - if (texRef) - { - sec = texRef->sectionNumber; - } - } - if (sec) - { - TexOutput(sec); - } - return FALSE; - } - break; - } - case ltHELPREF: - case ltHELPREFN: - case ltPOPREF: - { - if (arg_no == 1) - { - if (start) - { - currentBlockId = NewBlockId(); - sprintf(buf, "\\hy-%d{%ld}{", hyBLOCK_RED_ITALIC, currentBlockId); - TexOutput(buf); - } - else TexOutput("}"); - } - if (arg_no == 2) - { - if (start) - { - char *label = GetArgData(); - hyperLinks.Append(currentBlockId, (wxObject *)copystring(label)); - } - - return FALSE; - } - break; - } - case ltURLREF: - { - if (arg_no == 1) - { - return TRUE; - } - else if (arg_no == 2) - { - if (start) - TexOutput(" ("); - else - TexOutput(")"); - return TRUE; - } - break; - } - case ltITEM: - { - if (start && IsArgOptional()) - { - descriptionItemArg = GetArgChunk(); - return FALSE; - } - break; - } - case ltTABULAR: - case ltSUPERTABULAR: - { - if (arg_no == 1) - { - if (start) - { - inTable = TRUE; - tableVerticalLineLeft = FALSE; - tableVerticalLineRight = FALSE; - - char *alignString = copystring(GetArgData()); - - // Count the number of columns - noColumns = 0; - int len = strlen(alignString); - if (len > 0) - { - if (alignString[0] == '|') - tableVerticalLineLeft = TRUE; - if (alignString[len-1] == '|') - tableVerticalLineRight = TRUE; - } - - for (int i = 0; i < len; i++) - if (isalpha(alignString[i])) - noColumns ++; - -/* - // Experimental - TexOutput("\\brdrt\\brdrs"); - if (tableVerticalLineLeft) - TexOutput("\\brdrl\\brdrs"); - if (tableVerticalLineRight) - TexOutput("\\brdrr\\brdrs"); -*/ - - // Calculate a rough size for each column -// int tabPos = 80/noColumns; - currentTab = 0; - - return FALSE; - } - } - else if (arg_no == 2 && !start) - { - inTable = FALSE; - } - else if (arg_no == 2 && start) - return TRUE; - break; - } - case ltMARGINPAR: - case ltMARGINPAREVEN: - case ltMARGINPARODD: - case ltNORMALBOX: - case ltNORMALBOXD: - { - if (start) - { - TexOutput("----------------------------------------------------------------------\n", TRUE); - return TRUE; - } - else - TexOutput("\n----------------------------------------------------------------------\n", TRUE); - break; - } - case ltBIBITEM: - { - char buf[100]; - if (arg_no == 1 && start) - { - char *citeKey = GetArgData(); - TexRef *ref = (TexRef *)TexReferences.Get(citeKey); - if (ref) - { - if (ref->sectionNumber) delete[] ref->sectionNumber; - sprintf(buf, "[%d]", citeCount); - ref->sectionNumber = copystring(buf); - } - - sprintf(buf, "\\hy-%d{%ld}{[%d]} ", hyBLOCK_BOLD, NewBlockId(), citeCount); - TexOutput(buf); - citeCount ++; - return FALSE; - } - return TRUE; - break; - } - case ltTHEBIBLIOGRAPHY: - { - if (start && (arg_no == 1)) - { - citeCount = 1; - - SetCurrentOutput(Chapters); - - SetCurrentOutputs(Contents, Chapters); - long id1 = NewBlockId(); - long id2 = NewBlockId(); - fprintf(Contents, "\\hy-%d{%ld}{%s}\n", hyBLOCK_SMALL_HEADING, id1, ReferencesNameString); - fprintf(Chapters, "\\hy-%d{%ld}{%s}\n\n\n", hyBLOCK_LARGE_VISIBLE_SECTION, id2, ReferencesNameString); - fprintf(Index, "%ld %ld\n", id1, id2); - - SetCurrentOutput(Chapters); - return FALSE; - } - if (!start && (arg_no == 2)) - { - } - return TRUE; - break; - } - case ltTWOCOLITEM: - case ltTWOCOLITEMRULED: - { - if (start && (arg_no == 2)) - TexOutput("\n "); - - if (!start && (arg_no == 2)) - TexOutput("\n"); - return TRUE; - } - /* - * Accents - * - */ - case ltACCENT_GRAVE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("a"); - break; - case 'e': - TexOutput("e"); - break; - case 'i': - TexOutput("i"); - break; - case 'o': - TexOutput("o"); - break; - case 'u': - TexOutput("u"); - break; - case 'A': - TexOutput("a"); - break; - case 'E': - TexOutput("E"); - break; - case 'I': - TexOutput("I"); - break; - case 'O': - TexOutput("O"); - break; - case 'U': - TexOutput("U"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_ACUTE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("a"); - break; - case 'e': - TexOutput("e"); - break; - case 'i': - TexOutput("i"); - break; - case 'o': - TexOutput("o"); - break; - case 'u': - TexOutput("u"); - break; - case 'y': - TexOutput("y"); - break; - case 'A': - TexOutput("A"); - break; - case 'E': - TexOutput("E"); - break; - case 'I': - TexOutput("I"); - break; - case 'O': - TexOutput("O"); - break; - case 'U': - TexOutput("U"); - break; - case 'Y': - TexOutput("Y"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_CARET: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("a"); - break; - case 'e': - TexOutput("e"); - break; - case 'i': - TexOutput("i"); - break; - case 'o': - TexOutput("o"); - break; - case 'u': - TexOutput("u"); - break; - case 'A': - TexOutput("A"); - break; - case 'E': - TexOutput("E"); - break; - case 'I': - TexOutput("I"); - break; - case 'O': - TexOutput("O"); - break; - case 'U': - TexOutput("U"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_TILDE: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("a"); - break; - case ' ': - TexOutput("~"); - break; - case 'n': - TexOutput("n"); - break; - case 'o': - TexOutput("o"); - break; - case 'A': - TexOutput("A"); - break; - case 'N': - TexOutput("N"); - break; - case 'O': - TexOutput("O"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_UMLAUT: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("a"); - break; - case 'e': - TexOutput("e"); - break; - case 'i': - TexOutput("i"); - break; - case 'o': - TexOutput("o"); - break; - case 'u': - TexOutput("u"); - break; - case 'y': - TexOutput("y"); - break; - case 'A': - TexOutput("A"); - break; - case 'E': - TexOutput("E"); - break; - case 'I': - TexOutput("I"); - break; - case 'O': - TexOutput("O"); - break; - case 'U': - TexOutput("U"); - break; - case 'Y': - TexOutput("Y"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_DOT: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'a': - TexOutput("a"); - break; - case 'A': - TexOutput("A"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - case ltACCENT_CADILLA: - { - if (start) - { - char *val = GetArgData(); - if (val) - { - switch (val[0]) - { - case 'c': - TexOutput("c"); - break; - case 'C': - TexOutput("C"); - break; - default: - break; - } - } - } - return FALSE; - break; - } - default: - { - return DefaultOnArgument(macroId, arg_no, start); - break; - } - } - return TRUE; -} - -bool XLPGo(void) -{ - xlpBlockId = 0; - - if (InputFile && OutputFile) - { - Contents = fopen(TmpContentsName, "w"); - Chapters = fopen("chapters.xlp", "w"); - Sections = fopen("sections.xlp", "w"); - Subsections = fopen("subsections.xlp", "w"); - Subsubsections = fopen("subsubsections.xlp", "w"); - Index = fopen("index.xlp", "w"); - - // Insert invisible section marker at beginning - fprintf(Chapters, "\\hy-%d{%ld}{%s}\n", - hyBLOCK_INVISIBLE_SECTION, NewBlockId(), "\n"); - - fprintf(Contents, "\\hy-%d{%ld}{%s}\n\n", -// hyBLOCK_LARGE_HEADING, NewBlockId(), "\n\n%s\n\n", ContentsNameString); - hyBLOCK_LARGE_HEADING, NewBlockId(), ContentsNameString); - - SetCurrentOutput(Chapters); - - fprintf(Index, "\n\\hyindex{\n\"%s\"\n", - contentsString ? contentsString : "WXHELPCONTENTS"); - TraverseDocument(); - - wxNode *node = hyperLinks.First(); - while (node) - { - long from = node->GetKeyInteger(); - char *label = (char *)node->Data(); - wxNode *otherNode = hyperLabels.Find(label); - if (otherNode) - { - long to = (long)otherNode->Data(); - fprintf(Index, "%ld %ld\n", from, to); - } - node = node->Next(); - } - - fprintf(Index, "}\n"); - - fclose(Contents); Contents = NULL; - fclose(Chapters); Chapters = NULL; - fclose(Sections); Sections = NULL; - fclose(Subsections); Subsections = NULL; - fclose(Subsubsections); Subsubsections = NULL; - fclose(Index); Index = NULL; - - if (FileExists(ContentsName)) wxRemoveFile(ContentsName); - - if (!wxRenameFile(TmpContentsName, ContentsName)) - { - wxCopyFile(TmpContentsName, ContentsName); - wxRemoveFile(TmpContentsName); - } - - wxConcatFiles("chapters.xlp", "sections.xlp", "tmp2.xlp"); - wxConcatFiles("tmp2.xlp", "subsections.xlp", "tmp1.xlp"); - wxConcatFiles("tmp1.xlp", "subsubsections.xlp", "tmp2.xlp"); - wxConcatFiles("tmp2.xlp", "index.xlp", OutputFile); - - wxRemoveFile("tmp1.xlp"); - wxRemoveFile("tmp2.xlp"); - - wxRemoveFile("chapters.xlp"); - wxRemoveFile("sections.xlp"); - wxRemoveFile("subsections.xlp"); - wxRemoveFile("subsubsections.xlp"); - wxRemoveFile("index.xlp"); - return TRUE; - } - return FALSE; -} - diff --git a/utils/wxMMedia/TODO b/utils/wxMMedia/TODO deleted file mode 100644 index a732d8c78a..0000000000 --- a/utils/wxMMedia/TODO +++ /dev/null @@ -1,7 +0,0 @@ -------------- -| TODO list | -------------- - -* Update the sound fragmenter to the new codec scheme. -* Fix the codec scheme. -* Add more codec. diff --git a/utils/wxMMedia/WARNING b/utils/wxMMedia/WARNING deleted file mode 100644 index b40c1bf486..0000000000 --- a/utils/wxMMedia/WARNING +++ /dev/null @@ -1,7 +0,0 @@ ------------------------------------------------------------------------------- -| WARNING: This sub-package doesn't work, so don't try to compile it if you | -| don't want to make some development on it. | ------------------------------------------------------------------------------- - -If you want to build it rename Makefile.bd in Makefile and Makefile.ibd in -Makefile.in. After that, rerun config.status. diff --git a/utils/wxMMedia/adpcm/g711.cpp b/utils/wxMMedia/adpcm/g711.cpp deleted file mode 100644 index d4d60a5c26..0000000000 --- a/utils/wxMMedia/adpcm/g711.cpp +++ /dev/null @@ -1,283 +0,0 @@ -/* - * This source code is a product of Sun Microsystems, Inc. and is provided - * for unrestricted use. Users may copy or modify this source code without - * charge. - * - * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING - * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun source code is provided with no support and without any obligation on - * the part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * g711.c - * - * u-law, A-law and linear PCM conversions. - */ -#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */ -#define QUANT_MASK (0xf) /* Quantization field mask. */ -#define NSEGS (8) /* Number of A-law segments. */ -#define SEG_SHIFT (4) /* Left shift for segment number. */ -#define SEG_MASK (0x70) /* Segment field mask. */ - -static short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF, - 0xFFF, 0x1FFF, 0x3FFF, 0x7FFF}; - -/* copy from CCITT G.711 specifications */ -unsigned char _u2a[128] = { /* u- to A-law conversions */ - 1, 1, 2, 2, 3, 3, 4, 4, - 5, 5, 6, 6, 7, 7, 8, 8, - 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, - 25, 27, 29, 31, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, - 46, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, - 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128}; - -unsigned char _a2u[128] = { /* A- to u-law conversions */ - 1, 3, 5, 7, 9, 11, 13, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 32, 33, 33, 34, 34, 35, 35, - 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 48, 49, 49, - 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 64, - 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 79, - 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127}; - -static int -search( - int val, - short *table, - int size) -{ - int i; - - for (i = 0; i < size; i++) { - if (val <= *table++) - return (i); - } - return (size); -} - -/* - * linear2alaw() - Convert a 16-bit linear PCM value to 8-bit A-law - * - * linear2alaw() accepts an 16-bit integer and encodes it as A-law data. - * - * Linear Input Code Compressed Code - * ------------------------ --------------- - * 0000000wxyza 000wxyz - * 0000001wxyza 001wxyz - * 000001wxyzab 010wxyz - * 00001wxyzabc 011wxyz - * 0001wxyzabcd 100wxyz - * 001wxyzabcde 101wxyz - * 01wxyzabcdef 110wxyz - * 1wxyzabcdefg 111wxyz - * - * For further information see John C. Bellamy's Digital Telephony, 1982, - * John Wiley & Sons, pps 98-111 and 472-476. - */ -unsigned char -linear2alaw( - int pcm_val) /* 2's complement (16-bit range) */ -{ - int mask; - int seg; - unsigned char aval; - - if (pcm_val >= 0) { - mask = 0xD5; /* sign (7th) bit = 1 */ - } else { - mask = 0x55; /* sign bit = 0 */ - pcm_val = -pcm_val - 8; - } - - /* Convert the scaled magnitude to segment number. */ - seg = search(pcm_val, seg_end, 8); - - /* Combine the sign, segment, and quantization bits. */ - - if (seg >= 8) /* out of range, return maximum value. */ - return (0x7F ^ mask); - else { - aval = seg << SEG_SHIFT; - if (seg < 2) - aval |= (pcm_val >> 4) & QUANT_MASK; - else - aval |= (pcm_val >> (seg + 3)) & QUANT_MASK; - return (aval ^ mask); - } -} - -/* - * alaw2linear() - Convert an A-law value to 16-bit linear PCM - * - */ -int -alaw2linear( - unsigned char a_val) -{ - int t; - int seg; - - a_val ^= 0x55; - - t = (a_val & QUANT_MASK) << 4; - seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT; - switch (seg) { - case 0: - t += 8; - break; - case 1: - t += 0x108; - break; - default: - t += 0x108; - t <<= seg - 1; - } - return ((a_val & SIGN_BIT) ? t : -t); -} - -#define BIAS (0x84) /* Bias for linear code. */ - -/* - * linear2ulaw() - Convert a linear PCM value to u-law - * - * In order to simplify the encoding process, the original linear magnitude - * is biased by adding 33 which shifts the encoding range from (0 - 8158) to - * (33 - 8191). The result can be seen in the following encoding table: - * - * Biased Linear Input Code Compressed Code - * ------------------------ --------------- - * 00000001wxyza 000wxyz - * 0000001wxyzab 001wxyz - * 000001wxyzabc 010wxyz - * 00001wxyzabcd 011wxyz - * 0001wxyzabcde 100wxyz - * 001wxyzabcdef 101wxyz - * 01wxyzabcdefg 110wxyz - * 1wxyzabcdefgh 111wxyz - * - * Each biased linear code has a leading 1 which identifies the segment - * number. The value of the segment number is equal to 7 minus the number - * of leading 0's. The quantization interval is directly available as the - * four bits wxyz. * The trailing bits (a - h) are ignored. - * - * Ordinarily the complement of the resulting code word is used for - * transmission, and so the code word is complemented before it is returned. - * - * For further information see John C. Bellamy's Digital Telephony, 1982, - * John Wiley & Sons, pps 98-111 and 472-476. - */ -unsigned char -linear2ulaw( - int pcm_val) /* 2's complement (16-bit range) */ -{ - int mask; - int seg; - unsigned char uval; - - /* Get the sign and the magnitude of the value. */ - if (pcm_val < 0) { - pcm_val = BIAS - pcm_val; - mask = 0x7F; - } else { - pcm_val += BIAS; - mask = 0xFF; - } - - /* Convert the scaled magnitude to segment number. */ - seg = search(pcm_val, seg_end, 8); - - /* - * Combine the sign, segment, quantization bits; - * and complement the code word. - */ - if (seg >= 8) /* out of range, return maximum value. */ - return (0x7F ^ mask); - else { - uval = (seg << 4) | ((pcm_val >> (seg + 3)) & 0xF); - return (uval ^ mask); - } - -} - -/* - * ulaw2linear() - Convert a u-law value to 16-bit linear PCM - * - * First, a biased linear code is derived from the code word. An unbiased - * output can then be obtained by subtracting 33 from the biased code. - * - * Note that this function expects to be passed the complement of the - * original code word. This is in keeping with ISDN conventions. - */ -int -ulaw2linear( - unsigned char u_val) -{ - int t; - - /* Complement to obtain normal u-law value. */ - u_val = ~u_val; - - /* - * Extract and bias the quantization bits. Then - * shift up by the segment number and subtract out the bias. - */ - t = ((u_val & QUANT_MASK) << 3) + BIAS; - t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT; - - return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS)); -} - -/* A-law to u-law conversion */ -unsigned char -alaw2ulaw( - unsigned char aval) -{ - aval &= 0xff; - return ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) : - (0x7F ^ _a2u[aval ^ 0x55])); -} - -/* u-law to A-law conversion */ -unsigned char -ulaw2alaw( - unsigned char uval) -{ - uval &= 0xff; - return ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) : - (0x55 ^ (_u2a[0x7F ^ uval] - 1))); -} diff --git a/utils/wxMMedia/adpcm/g721.cpp b/utils/wxMMedia/adpcm/g721.cpp deleted file mode 100644 index 3411d1a1bb..0000000000 --- a/utils/wxMMedia/adpcm/g721.cpp +++ /dev/null @@ -1,173 +0,0 @@ -/* - * This source code is a product of Sun Microsystems, Inc. and is provided - * for unrestricted use. Users may copy or modify this source code without - * charge. - * - * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING - * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun source code is provided with no support and without any obligation on - * the part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * g721.c - * - * Description: - * - * g721_encoder(), g721_decoder() - * - * These routines comprise an implementation of the CCITT G.721 ADPCM - * coding algorithm. Essentially, this implementation is identical to - * the bit level description except for a few deviations which - * take advantage of work station attributes, such as hardware 2's - * complement arithmetic and large memory. Specifically, certain time - * consuming operations such as multiplications are replaced - * with lookup tables and software 2's complement operations are - * replaced with hardware 2's complement. - * - * The deviation from the bit level specification (lookup tables) - * preserves the bit level performance specifications. - * - * As outlined in the G.721 Recommendation, the algorithm is broken - * down into modules. Each section of code below is preceded by - * the name of the module which it is implementing. - * - */ -#include "g72x.h" - -static short qtab_721[7] = {-124, 80, 178, 246, 300, 349, 400}; -/* - * Maps G.721 code word to reconstructed scale factor normalized log - * magnitude values. - */ -static short _dqlntab[16] = {-2048, 4, 135, 213, 273, 323, 373, 425, - 425, 373, 323, 273, 213, 135, 4, -2048}; - -/* Maps G.721 code word to log of scale factor multiplier. */ -static short _witab[16] = {-12, 18, 41, 64, 112, 198, 355, 1122, - 1122, 355, 198, 112, 64, 41, 18, -12}; -/* - * Maps G.721 code words to a set of values whose long and short - * term averages are computed and then compared to give an indication - * how stationary (steady state) the signal is. - */ -static short _fitab[16] = {0, 0, 0, 0x200, 0x200, 0x200, 0x600, 0xE00, - 0xE00, 0x600, 0x200, 0x200, 0x200, 0, 0, 0}; - -/* - * g721_encoder() - * - * Encodes the input vale of linear PCM, A-law or u-law data sl and returns - * the resulting code. -1 is returned for unknown input coding value. - */ -int -g721_encoder( - int sl, - int in_coding, - struct g72x_state *state_ptr) -{ - short sezi, se, sez; /* ACCUM */ - short d; /* SUBTA */ - short sr; /* ADDB */ - short y; /* MIX */ - short dqsez; /* ADDC */ - short dq, i; - - switch (in_coding) { /* linearize input sample to 14-bit PCM */ - case AUDIO_ENCODING_ALAW: - sl = alaw2linear(sl) >> 2; - break; - case AUDIO_ENCODING_ULAW: - sl = ulaw2linear(sl) >> 2; - break; - case AUDIO_ENCODING_LINEAR: - sl = ((short)sl) >> 2; /* 14-bit dynamic range */ - break; - default: - return (-1); - } - - sezi = predictor_zero(state_ptr); - sez = sezi >> 1; - se = (sezi + predictor_pole(state_ptr)) >> 1; /* estimated signal */ - - d = sl - se; /* estimation difference */ - - /* quantize the prediction difference */ - y = step_size(state_ptr); /* quantizer step size */ - i = quantize(d, y, qtab_721, 7); /* i = ADPCM code */ - - dq = reconstruct(i & 8, _dqlntab[i], y); /* quantized est diff */ - - sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconst. signal */ - - dqsez = sr + sez - se; /* pole prediction diff. */ - - update(4, y, _witab[i] << 5, _fitab[i], dq, sr, dqsez, state_ptr); - - return (i); -} - -/* - * g721_decoder() - * - * Description: - * - * Decodes a 4-bit code of G.721 encoded data of i and - * returns the resulting linear PCM, A-law or u-law value. - * return -1 for unknown out_coding value. - */ -int -g721_decoder( - int i, - int out_coding, - struct g72x_state *state_ptr) -{ - short sezi, sei, sez, se; /* ACCUM */ - short y; /* MIX */ - short sr; /* ADDB */ - short dq; - short dqsez; - - i &= 0x0f; /* mask to get proper bits */ - sezi = predictor_zero(state_ptr); - sez = sezi >> 1; - sei = sezi + predictor_pole(state_ptr); - se = sei >> 1; /* se = estimated signal */ - - y = step_size(state_ptr); /* dynamic quantizer step size */ - - dq = reconstruct(i & 0x08, _dqlntab[i], y); /* quantized diff. */ - - sr = (dq < 0) ? (se - (dq & 0x3FFF)) : se + dq; /* reconst. signal */ - - dqsez = sr - se + sez; /* pole prediction diff. */ - - update(4, y, _witab[i] << 5, _fitab[i], dq, sr, dqsez, state_ptr); - - switch (out_coding) { - case AUDIO_ENCODING_ALAW: - return (tandem_adjust_alaw(sr, se, y, i, 8, qtab_721)); - case AUDIO_ENCODING_ULAW: - return (tandem_adjust_ulaw(sr, se, y, i, 8, qtab_721)); - case AUDIO_ENCODING_LINEAR: - return (sr << 2); /* sr was 14-bit dynamic range */ - default: - return (-1); - } -} diff --git a/utils/wxMMedia/adpcm/g723_24.cpp b/utils/wxMMedia/adpcm/g723_24.cpp deleted file mode 100644 index ba122eadf3..0000000000 --- a/utils/wxMMedia/adpcm/g723_24.cpp +++ /dev/null @@ -1,158 +0,0 @@ -/* - * This source code is a product of Sun Microsystems, Inc. and is provided - * for unrestricted use. Users may copy or modify this source code without - * charge. - * - * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING - * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun source code is provided with no support and without any obligation on - * the part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * g723_24.c - * - * Description: - * - * g723_24_encoder(), g723_24_decoder() - * - * These routines comprise an implementation of the CCITT G.723 24 Kbps - * ADPCM coding algorithm. Essentially, this implementation is identical to - * the bit level description except for a few deviations which take advantage - * of workstation attributes, such as hardware 2's complement arithmetic. - * - */ -#include "g72x.h" - -/* - * Maps G.723_24 code word to reconstructed scale factor normalized log - * magnitude values. - */ -static short _dqlntab[8] = {-2048, 135, 273, 373, 373, 273, 135, -2048}; - -/* Maps G.723_24 code word to log of scale factor multiplier. */ -static short _witab[8] = {-128, 960, 4384, 18624, 18624, 4384, 960, -128}; - -/* - * Maps G.723_24 code words to a set of values whose long and short - * term averages are computed and then compared to give an indication - * how stationary (steady state) the signal is. - */ -static short _fitab[8] = {0, 0x200, 0x400, 0xE00, 0xE00, 0x400, 0x200, 0}; - -static short qtab_723_24[3] = {8, 218, 331}; - -/* - * g723_24_encoder() - * - * Encodes a linear PCM, A-law or u-law input sample and returns its 3-bit code. - * Returns -1 if invalid input coding value. - */ -int -g723_24_encoder( - int sl, - int in_coding, - struct g72x_state *state_ptr) -{ - short sei, sezi, se, sez; /* ACCUM */ - short d; /* SUBTA */ - short y; /* MIX */ - short sr; /* ADDB */ - short dqsez; /* ADDC */ - short dq, i; - - switch (in_coding) { /* linearize input sample to 14-bit PCM */ - case AUDIO_ENCODING_ALAW: - sl = alaw2linear(sl) >> 2; - break; - case AUDIO_ENCODING_ULAW: - sl = ulaw2linear(sl) >> 2; - break; - case AUDIO_ENCODING_LINEAR: - sl = ((short)sl) >> 2; /* sl of 14-bit dynamic range */ - break; - default: - return (-1); - } - - sezi = predictor_zero(state_ptr); - sez = sezi >> 1; - sei = sezi + predictor_pole(state_ptr); - se = sei >> 1; /* se = estimated signal */ - - d = sl - se; /* d = estimation diff. */ - - /* quantize prediction difference d */ - y = step_size(state_ptr); /* quantizer step size */ - i = quantize(d, y, qtab_723_24, 3); /* i = ADPCM code */ - dq = reconstruct(i & 4, _dqlntab[i], y); /* quantized diff. */ - - sr = (dq < 0) ? se - (dq & 0x3FFF) : se + dq; /* reconstructed signal */ - - dqsez = sr + sez - se; /* pole prediction diff. */ - - update(3, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr); - - return (i); -} - -/* - * g723_24_decoder() - * - * Decodes a 3-bit CCITT G.723_24 ADPCM code and returns - * the resulting 16-bit linear PCM, A-law or u-law sample value. - * -1 is returned if the output coding is unknown. - */ -int -g723_24_decoder( - int i, - int out_coding, - struct g72x_state *state_ptr) -{ - short sezi, sei, sez, se; /* ACCUM */ - short y; /* MIX */ - short sr; /* ADDB */ - short dq; - short dqsez; - - i &= 0x07; /* mask to get proper bits */ - sezi = predictor_zero(state_ptr); - sez = sezi >> 1; - sei = sezi + predictor_pole(state_ptr); - se = sei >> 1; /* se = estimated signal */ - - y = step_size(state_ptr); /* adaptive quantizer step size */ - dq = reconstruct(i & 0x04, _dqlntab[i], y); /* unquantize pred diff */ - - sr = (dq < 0) ? (se - (dq & 0x3FFF)) : (se + dq); /* reconst. signal */ - - dqsez = sr - se + sez; /* pole prediction diff. */ - - update(3, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr); - - switch (out_coding) { - case AUDIO_ENCODING_ALAW: - return (tandem_adjust_alaw(sr, se, y, i, 4, qtab_723_24)); - case AUDIO_ENCODING_ULAW: - return (tandem_adjust_ulaw(sr, se, y, i, 4, qtab_723_24)); - case AUDIO_ENCODING_LINEAR: - return (sr << 2); /* sr was of 14-bit dynamic range */ - default: - return (-1); - } -} diff --git a/utils/wxMMedia/adpcm/g723_40.cpp b/utils/wxMMedia/adpcm/g723_40.cpp deleted file mode 100644 index b8ec06a686..0000000000 --- a/utils/wxMMedia/adpcm/g723_40.cpp +++ /dev/null @@ -1,178 +0,0 @@ -/* - * This source code is a product of Sun Microsystems, Inc. and is provided - * for unrestricted use. Users may copy or modify this source code without - * charge. - * - * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING - * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun source code is provided with no support and without any obligation on - * the part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * g723_40.c - * - * Description: - * - * g723_40_encoder(), g723_40_decoder() - * - * These routines comprise an implementation of the CCITT G.723 40Kbps - * ADPCM coding algorithm. Essentially, this implementation is identical to - * the bit level description except for a few deviations which - * take advantage of workstation attributes, such as hardware 2's - * complement arithmetic. - * - * The deviation from the bit level specification (lookup tables), - * preserves the bit level performance specifications. - * - * As outlined in the G.723 Recommendation, the algorithm is broken - * down into modules. Each section of code below is preceded by - * the name of the module which it is implementing. - * - */ -#include "g72x.h" - -/* - * Maps G.723_40 code word to ructeconstructed scale factor normalized log - * magnitude values. - */ -static short _dqlntab[32] = {-2048, -66, 28, 104, 169, 224, 274, 318, - 358, 395, 429, 459, 488, 514, 539, 566, - 566, 539, 514, 488, 459, 429, 395, 358, - 318, 274, 224, 169, 104, 28, -66, -2048}; - -/* Maps G.723_40 code word to log of scale factor multiplier. */ -static short _witab[32] = {448, 448, 768, 1248, 1280, 1312, 1856, 3200, - 4512, 5728, 7008, 8960, 11456, 14080, 16928, 22272, - 22272, 16928, 14080, 11456, 8960, 7008, 5728, 4512, - 3200, 1856, 1312, 1280, 1248, 768, 448, 448}; - -/* - * Maps G.723_40 code words to a set of values whose long and short - * term averages are computed and then compared to give an indication - * how stationary (steady state) the signal is. - */ -static short _fitab[32] = {0, 0, 0, 0, 0, 0x200, 0x200, 0x200, - 0x200, 0x200, 0x400, 0x600, 0x800, 0xA00, 0xC00, 0xC00, - 0xC00, 0xC00, 0xA00, 0x800, 0x600, 0x400, 0x200, 0x200, - 0x200, 0x200, 0x200, 0, 0, 0, 0, 0}; - -static short qtab_723_40[15] = {-122, -16, 68, 139, 198, 250, 298, 339, - 378, 413, 445, 475, 502, 528, 553}; - -/* - * g723_40_encoder() - * - * Encodes a 16-bit linear PCM, A-law or u-law input sample and retuens - * the resulting 5-bit CCITT G.723 40Kbps code. - * Returns -1 if the input coding value is invalid. - */ -int -g723_40_encoder( - int sl, - int in_coding, - struct g72x_state *state_ptr) -{ - short sei, sezi, se, sez; /* ACCUM */ - short d; /* SUBTA */ - short y; /* MIX */ - short sr; /* ADDB */ - short dqsez; /* ADDC */ - short dq, i; - - switch (in_coding) { /* linearize input sample to 14-bit PCM */ - case AUDIO_ENCODING_ALAW: - sl = alaw2linear(sl) >> 2; - break; - case AUDIO_ENCODING_ULAW: - sl = ulaw2linear(sl) >> 2; - break; - case AUDIO_ENCODING_LINEAR: - sl = ((short) sl) >> 2; /* sl of 14-bit dynamic range */ - break; - default: - return (-1); - } - - sezi = predictor_zero(state_ptr); - sez = sezi >> 1; - sei = sezi + predictor_pole(state_ptr); - se = sei >> 1; /* se = estimated signal */ - - d = sl - se; /* d = estimation difference */ - - /* quantize prediction difference */ - y = step_size(state_ptr); /* adaptive quantizer step size */ - i = quantize(d, y, qtab_723_40, 15); /* i = ADPCM code */ - - dq = reconstruct(i & 0x10, _dqlntab[i], y); /* quantized diff */ - - sr = (dq < 0) ? se - (dq & 0x7FFF) : se + dq; /* reconstructed signal */ - - dqsez = sr + sez - se; /* dqsez = pole prediction diff. */ - - update(5, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr); - - return (i); -} - -/* - * g723_40_decoder() - * - * Decodes a 5-bit CCITT G.723 40Kbps code and returns - * the resulting 16-bit linear PCM, A-law or u-law sample value. - * -1 is returned if the output coding is unknown. - */ -int -g723_40_decoder( - int i, - int out_coding, - struct g72x_state *state_ptr) -{ - short sezi, sei, sez, se; /* ACCUM */ - short y; /* MIX */ - short sr; /* ADDB */ - short dq; - short dqsez; - - i &= 0x1f; /* mask to get proper bits */ - sezi = predictor_zero(state_ptr); - sez = sezi >> 1; - sei = sezi + predictor_pole(state_ptr); - se = sei >> 1; /* se = estimated signal */ - - y = step_size(state_ptr); /* adaptive quantizer step size */ - dq = reconstruct(i & 0x10, _dqlntab[i], y); /* estimation diff. */ - - sr = (dq < 0) ? (se - (dq & 0x7FFF)) : (se + dq); /* reconst. signal */ - - dqsez = sr - se + sez; /* pole prediction diff. */ - - update(5, y, _witab[i], _fitab[i], dq, sr, dqsez, state_ptr); - - switch (out_coding) { - case AUDIO_ENCODING_ALAW: - return (tandem_adjust_alaw(sr, se, y, i, 0x10, qtab_723_40)); - case AUDIO_ENCODING_ULAW: - return (tandem_adjust_ulaw(sr, se, y, i, 0x10, qtab_723_40)); - case AUDIO_ENCODING_LINEAR: - return (sr << 2); /* sr was of 14-bit dynamic range */ - default: - return (-1); - } -} diff --git a/utils/wxMMedia/adpcm/g72x.cpp b/utils/wxMMedia/adpcm/g72x.cpp deleted file mode 100644 index ff571bdad7..0000000000 --- a/utils/wxMMedia/adpcm/g72x.cpp +++ /dev/null @@ -1,608 +0,0 @@ -/* - * This source code is a product of Sun Microsystems, Inc. and is provided - * for unrestricted use. Users may copy or modify this source code without - * charge. - * - * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING - * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun source code is provided with no support and without any obligation on - * the part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * g72x.c - * - * Common routines for G.721 and G.723 conversions. - */ - -#include -#include "g72x.h" - -static short power2[15] = {1, 2, 4, 8, 0x10, 0x20, 0x40, 0x80, - 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000, 0x4000}; - -/* - * quan() - * - * quantizes the input val against the table of size short integers. - * It returns i if table[i - 1] <= val < table[i]. - * - * Using linear search for simple coding. - */ -static int -quan( - int val, - short *table, - int size) -{ - int i; - - for (i = 0; i < size; i++) - if (val < *table++) - break; - return (i); -} - -static char quan2_tab[65536]; -static short base2_tab[65536]; -static int init_tabs_done = 0; - -inline char quan2 (unsigned short val) -{ - return quan2_tab[val]; -} - -inline short base2 (unsigned short val) -{ - return base2_tab[val]; -} - -static void init_quan2_tab (void) -{ - long i; - - for (i = 0; i < 65536; i++) { - quan2_tab[i] = quan (i, power2, 15); - }; -} - -static void init_base2_tab (void) -{ - long i; - short exp; - - for (i = 0; i < 65536; i++) { - exp = quan2 (short (i)); - base2_tab[i] = short ((exp << 6) + ((i << 6) >> exp)); - }; -} - -static void init_tabs (void) -{ - if (init_tabs_done) return; - - init_quan2_tab(); - init_base2_tab(); - - init_tabs_done = 1; -} - -/* - * fmult() - * - * returns the integer product of the 14-bit integer "an" and - * "floating point" representation (4-bit exponent, 6-bit mantessa) "srn". - */ -static int -fmult( - int an, - int srn) -{ - short anmag, anexp, anmant; - short wanexp, wanmant; - short retval; - - anmag = (an > 0) ? an : ((-an) & 0x1FFF); - anexp = quan2(anmag) - 6; - anmant = (anmag == 0) ? 32 : - (anexp >= 0) ? anmag >> anexp : anmag << -anexp; - wanexp = anexp + ((srn >> 6) & 0xF) - 13; - - wanmant = (anmant * (srn & 077) + 0x30) >> 4; - retval = (wanexp >= 0) ? ((wanmant << wanexp) & 0x7FFF) : - (wanmant >> -wanexp); - - return (((an ^ srn) < 0) ? -retval : retval); -} - -/* - * g72x_init_state() - * - * This routine initializes and/or resets the g72x_state structure - * pointed to by 'state_ptr'. - * All the initial state values are specified in the CCITT G.721 document. - */ -void -g72x_init_state( - struct g72x_state *state_ptr) -{ - int cnta; - - init_tabs (); - - state_ptr->yl = 34816; - state_ptr->yu = 544; - state_ptr->dms = 0; - state_ptr->dml = 0; - state_ptr->ap = 0; - for (cnta = 0; cnta < 2; cnta++) { - state_ptr->a[cnta] = 0; - state_ptr->pk[cnta] = 0; - state_ptr->sr[cnta] = 32; - } - for (cnta = 0; cnta < 6; cnta++) { - state_ptr->b[cnta] = 0; - state_ptr->dq[cnta] = 32; - } - state_ptr->td = 0; -} - -/* - * predictor_zero() - * - * computes the estimated signal from 6-zero predictor. - * - */ -int -predictor_zero( - struct g72x_state *state_ptr) -{ - int i; - int sezi; - - sezi = fmult(state_ptr->b[0] >> 2, state_ptr->dq[0]); - for (i = 1; i < 6; i++) /* ACCUM */ - sezi += fmult(state_ptr->b[i] >> 2, state_ptr->dq[i]); - return (sezi); -} -/* - * predictor_pole() - * - * computes the estimated signal from 2-pole predictor. - * - */ -int -predictor_pole( - struct g72x_state *state_ptr) -{ - return (fmult(state_ptr->a[1] >> 2, state_ptr->sr[1]) + - fmult(state_ptr->a[0] >> 2, state_ptr->sr[0])); -} -/* - * step_size() - * - * computes the quantization step size of the adaptive quantizer. - * - */ -int -step_size( - struct g72x_state *state_ptr) -{ - int y; - int dif; - int al; - - if (state_ptr->ap >= 256) - return (state_ptr->yu); - else { - y = state_ptr->yl >> 6; - dif = state_ptr->yu - y; - al = state_ptr->ap >> 2; - if (dif > 0) - y += (dif * al) >> 6; - else if (dif < 0) - y += (dif * al + 0x3F) >> 6; - return (y); - } -} - -/* - * quantize() - * - * Given a raw sample, 'd', of the difference signal and a - * quantization step size scale factor, 'y', this routine returns the - * ADPCM codeword to which that sample gets quantized. The step - * size scale factor division operation is done in the log base 2 domain - * as a subtraction. - */ -int -quantize( - int d, /* Raw difference signal sample */ - int y, /* Step size multiplier */ - short *table, /* quantization table */ - int size) /* table size of short integers */ -{ - short dqm; /* Magnitude of 'd' */ - short exp; /* Integer part of base 2 log of 'd' */ - short mant; /* Fractional part of base 2 log */ - short dl; /* Log of magnitude of 'd' */ - short dln; /* Step size scale factor normalized log */ - int i; - - /* - * LOG - * - * Compute base 2 log of 'd', and store in 'dl'. - */ - dqm = abs(d); - exp = quan2(dqm >> 1); - mant = ((dqm << 7) >> exp) & 0x7F; /* Fractional portion. */ - dl = (exp << 7) + mant; - - /* - * SUBTB - * - * "Divide" by step size multiplier. - */ - dln = dl - (y >> 2); - - /* - * QUAN - * - * Obtain codword i for 'd'. - */ - i = quan(dln, table, size); - if (d < 0) /* take 1's complement of i */ - return ((size << 1) + 1 - i); - else if (i == 0) /* take 1's complement of 0 */ - return ((size << 1) + 1); /* new in 1988 */ - else - return (i); -} -/* - * reconstruct() - * - * Returns reconstructed difference signal 'dq' obtained from - * codeword 'i' and quantization step size scale factor 'y'. - * Multiplication is performed in log base 2 domain as addition. - */ -int -reconstruct( - int sign, /* 0 for non-negative value */ - int dqln, /* G.72x codeword */ - int y) /* Step size multiplier */ -{ - short dql; /* Log of 'dq' magnitude */ - short dex; /* Integer part of log */ - short dqt; - short dq; /* Reconstructed difference signal sample */ - - dql = dqln + (y >> 2); /* ADDA */ - - if (dql < 0) { - return ((sign) ? -0x8000 : 0); - } else { /* ANTILOG */ - dex = (dql >> 7) & 15; - dqt = 128 + (dql & 127); - dq = (dqt << 7) >> (14 - dex); - return ((sign) ? (dq - 0x8000) : dq); - } -} - - -/* - * update() - * - * updates the state variables for each output code - */ -void -update( - int code_size, /* distinguish 723_40 with others */ - int y, /* quantizer step size */ - int wi, /* scale factor multiplier */ - int fi, /* for long/short term energies */ - int dq, /* quantized prediction difference */ - int sr, /* reconstructed signal */ - int dqsez, /* difference from 2-pole predictor */ - struct g72x_state *state_ptr) /* coder state pointer */ -{ - int cnt; - short mag; /* Adaptive predictor, FLOAT A */ - short a2p; /* LIMC */ - short a1ul; /* UPA1 */ - short pks1; /* UPA2 */ - short fa1; - char tr; /* tone/transition detector */ - short ylint, thr2, dqthr; - short ylfrac, thr1; - short pk0; - - pk0 = (dqsez < 0) ? 1 : 0; /* needed in updating predictor poles */ - - mag = dq & 0x7FFF; /* prediction difference magnitude */ - /* TRANS */ - ylint = short (state_ptr->yl >> 15); /* exponent part of yl */ - ylfrac = (state_ptr->yl >> 10) & 0x1F; /* fractional part of yl */ - thr1 = (32 + ylfrac) << ylint; /* threshold */ - thr2 = (ylint > 9) ? 31 << 10 : thr1; /* limit thr2 to 31 << 10 */ - dqthr = (thr2 + (thr2 >> 1)) >> 1; /* dqthr = 0.75 * thr2 */ - if (state_ptr->td == 0) /* signal supposed voice */ - tr = 0; - else if (mag <= dqthr) /* supposed data, but small mag */ - tr = 0; /* treated as voice */ - else /* signal is data (modem) */ - tr = 1; - - /* - * Quantizer scale factor adaptation. - */ - - /* FUNCTW & FILTD & DELAY */ - /* update non-steady state step size multiplier */ - state_ptr->yu = y + ((wi - y) >> 5); - - /* LIMB */ - if (state_ptr->yu < 544) /* 544 <= yu <= 5120 */ - state_ptr->yu = 544; - else if (state_ptr->yu > 5120) - state_ptr->yu = 5120; - - /* FILTE & DELAY */ - /* update steady state step size multiplier */ - state_ptr->yl += state_ptr->yu + ((-state_ptr->yl) >> 6); - - /* - * Adaptive predictor coefficients. - */ - if (tr == 1) { /* reset a's and b's for modem signal */ - state_ptr->a[0] = 0; - state_ptr->a[1] = 0; - state_ptr->b[0] = 0; - state_ptr->b[1] = 0; - state_ptr->b[2] = 0; - state_ptr->b[3] = 0; - state_ptr->b[4] = 0; - state_ptr->b[5] = 0; - - a2p = 0; /* eliminate Compiler Warnings */ - } else { /* update a's and b's */ - pks1 = pk0 ^ state_ptr->pk[0]; /* UPA2 */ - - /* update predictor pole a[1] */ - a2p = state_ptr->a[1] - (state_ptr->a[1] >> 7); - if (dqsez != 0) { - fa1 = (pks1) ? state_ptr->a[0] : -state_ptr->a[0]; - if (fa1 < -8191) /* a2p = function of fa1 */ - a2p -= 0x100; - else if (fa1 > 8191) - a2p += 0xFF; - else - a2p += fa1 >> 5; - - if (pk0 ^ state_ptr->pk[1]) - /* LIMC */ - if (a2p <= -12160) - a2p = -12288; - else if (a2p >= 12416) - a2p = 12288; - else - a2p -= 0x80; - else if (a2p <= -12416) - a2p = -12288; - else if (a2p >= 12160) - a2p = 12288; - else - a2p += 0x80; - } - - /* TRIGB & DELAY */ - state_ptr->a[1] = a2p; - - /* UPA1 */ - /* update predictor pole a[0] */ - state_ptr->a[0] -= state_ptr->a[0] >> 8; - if (dqsez != 0) - if (pks1 == 0) - state_ptr->a[0] += 192; - else - state_ptr->a[0] -= 192; - - /* LIMD */ - a1ul = 15360 - a2p; - if (state_ptr->a[0] < -a1ul) - state_ptr->a[0] = -a1ul; - else if (state_ptr->a[0] > a1ul) - state_ptr->a[0] = a1ul; - - /* UPB : update predictor zeros b[6] */ - for (cnt = 0; cnt < 6; cnt++) { - if (code_size == 5) /* for 40Kbps G.723 */ - state_ptr->b[cnt] -= state_ptr->b[cnt] >> 9; - else /* for G.721 and 24Kbps G.723 */ - state_ptr->b[cnt] -= state_ptr->b[cnt] >> 8; - if (dq & 0x7FFF) { /* XOR */ - if ((dq ^ state_ptr->dq[cnt]) >= 0) - state_ptr->b[cnt] += 128; - else - state_ptr->b[cnt] -= 128; - } - } - } - - for (cnt = 5; cnt > 0; cnt--) - state_ptr->dq[cnt] = state_ptr->dq[cnt-1]; - /* FLOAT A : convert dq[0] to 4-bit exp, 6-bit mantissa f.p. */ - if (mag == 0) { - state_ptr->dq[0] = (dq >= 0) ? 0x20 : 0xFC20; - } else { - state_ptr->dq[0] = (dq >= 0) ? - base2 (mag) : base2 (mag) - 0x400; - } - - state_ptr->sr[1] = state_ptr->sr[0]; - /* FLOAT B : convert sr to 4-bit exp., 6-bit mantissa f.p. */ - if (sr == 0) { - state_ptr->sr[0] = 0x20; - } else if (sr > 0) { - state_ptr->sr[0] = base2(sr); - } else if (sr > -32768) { - mag = -sr; - state_ptr->sr[0] = base2(mag) - 0x400; - } else - state_ptr->sr[0] = short (0xFC20); - - /* DELAY A */ - state_ptr->pk[1] = state_ptr->pk[0]; - state_ptr->pk[0] = pk0; - - /* TONE */ - if (tr == 1) /* this sample has been treated as data */ - state_ptr->td = 0; /* next one will be treated as voice */ - else if (a2p < -11776) /* small sample-to-sample correlation */ - state_ptr->td = 1; /* signal may be data */ - else /* signal is voice */ - state_ptr->td = 0; - - /* - * Adaptation speed control. - */ - state_ptr->dms += (fi - state_ptr->dms) >> 5; /* FILTA */ - state_ptr->dml += (((fi << 2) - state_ptr->dml) >> 7); /* FILTB */ - - if (tr == 1) - state_ptr->ap = 256; - else if (y < 1536) /* SUBTC */ - state_ptr->ap += (0x200 - state_ptr->ap) >> 4; - else if (state_ptr->td == 1) - state_ptr->ap += (0x200 - state_ptr->ap) >> 4; - else if (abs((state_ptr->dms << 2) - state_ptr->dml) >= - (state_ptr->dml >> 3)) - state_ptr->ap += (0x200 - state_ptr->ap) >> 4; - else - state_ptr->ap += (-state_ptr->ap) >> 4; -} - -/* - * tandem_adjust(sr, se, y, i, sign) - * - * At the end of ADPCM decoding, it simulates an encoder which may be receiving - * the output of this decoder as a tandem process. If the output of the - * simulated encoder differs from the input to this decoder, the decoder output - * is adjusted by one level of A-law or u-law codes. - * - * Input: - * sr decoder output linear PCM sample, - * se predictor estimate sample, - * y quantizer step size, - * i decoder input code, - * sign sign bit of code i - * - * Return: - * adjusted A-law or u-law compressed sample. - */ -int -tandem_adjust_alaw( - int sr, /* decoder output linear PCM sample */ - int se, /* predictor estimate sample */ - int y, /* quantizer step size */ - int i, /* decoder input code */ - int sign, - short *qtab) -{ - unsigned char sp; /* A-law compressed 8-bit code */ - short dx; /* prediction error */ - char id; /* quantized prediction error */ - int sd; /* adjusted A-law decoded sample value */ - int im; /* biased magnitude of i */ - int imx; /* biased magnitude of id */ - - if (sr <= -32768) - sr = -1; - sp = linear2alaw((sr >> 1) << 3); /* short to A-law compression */ - dx = (alaw2linear(sp) >> 2) - se; /* 16-bit prediction error */ - id = quantize(dx, y, qtab, sign - 1); - - if (id == i) { /* no adjustment on sp */ - return (sp); - } else { /* sp adjustment needed */ - /* ADPCM codes : 8, 9, ... F, 0, 1, ... , 6, 7 */ - im = i ^ sign; /* 2's complement to biased unsigned */ - imx = id ^ sign; - - if (imx > im) { /* sp adjusted to next lower value */ - if (sp & 0x80) { - sd = (sp == 0xD5) ? 0x55 : - ((sp ^ 0x55) - 1) ^ 0x55; - } else { - sd = (sp == 0x2A) ? 0x2A : - ((sp ^ 0x55) + 1) ^ 0x55; - } - } else { /* sp adjusted to next higher value */ - if (sp & 0x80) - sd = (sp == 0xAA) ? 0xAA : - ((sp ^ 0x55) + 1) ^ 0x55; - else - sd = (sp == 0x55) ? 0xD5 : - ((sp ^ 0x55) - 1) ^ 0x55; - } - return (sd); - } -} - -int -tandem_adjust_ulaw( - int sr, /* decoder output linear PCM sample */ - int se, /* predictor estimate sample */ - int y, /* quantizer step size */ - int i, /* decoder input code */ - int sign, - short *qtab) -{ - unsigned char sp; /* u-law compressed 8-bit code */ - short dx; /* prediction error */ - char id; /* quantized prediction error */ - int sd; /* adjusted u-law decoded sample value */ - int im; /* biased magnitude of i */ - int imx; /* biased magnitude of id */ - - if (sr <= -32768) - sr = 0; - sp = linear2ulaw(sr << 2); /* short to u-law compression */ - dx = (ulaw2linear(sp) >> 2) - se; /* 16-bit prediction error */ - id = quantize(dx, y, qtab, sign - 1); - if (id == i) { - return (sp); - } else { - /* ADPCM codes : 8, 9, ... F, 0, 1, ... , 6, 7 */ - im = i ^ sign; /* 2's complement to biased unsigned */ - imx = id ^ sign; - if (imx > im) { /* sp adjusted to next lower value */ - if (sp & 0x80) - sd = (sp == 0xFF) ? 0x7E : sp + 1; - else - sd = (sp == 0) ? 0 : sp - 1; - - } else { /* sp adjusted to next higher value */ - if (sp & 0x80) - sd = (sp == 0x80) ? 0x80 : sp - 1; - else - sd = (sp == 0x7F) ? 0xFE : sp + 1; - } - return (sd); - } -} diff --git a/utils/wxMMedia/adpcm/g72x.h b/utils/wxMMedia/adpcm/g72x.h deleted file mode 100644 index dbfd64fd5b..0000000000 --- a/utils/wxMMedia/adpcm/g72x.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * This source code is a product of Sun Microsystems, Inc. and is provided - * for unrestricted use. Users may copy or modify this source code without - * charge. - * - * SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING - * THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR - * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE. - * - * Sun source code is provided with no support and without any obligation on - * the part of Sun Microsystems, Inc. to assist in its use, correction, - * modification or enhancement. - * - * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE - * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE - * OR ANY PART THEREOF. - * - * In no event will Sun Microsystems, Inc. be liable for any lost revenue - * or profits or other special, indirect and consequential damages, even if - * Sun has been advised of the possibility of such damages. - * - * Sun Microsystems, Inc. - * 2550 Garcia Avenue - * Mountain View, California 94043 - */ - -/* - * g72x.h - * - * Header file for CCITT conversion routines. - * - */ -#ifndef _G72X_H -#define _G72X_H - -#define AUDIO_ENCODING_ULAW (1) /* ISDN u-law */ -#define AUDIO_ENCODING_ALAW (2) /* ISDN A-law */ -#define AUDIO_ENCODING_LINEAR (3) /* PCM 2's-complement (0-center) */ - -/* - * The following is the definition of the state structure - * used by the G.721/G.723 encoder and decoder to preserve their internal - * state between successive calls. The meanings of the majority - * of the state structure fields are explained in detail in the - * CCITT Recommendation G.721. The field names are essentially indentical - * to variable names in the bit level description of the coding algorithm - * included in this Recommendation. - */ -struct g72x_state { - long yl; /* Locked or steady state step size multiplier. */ - short yu; /* Unlocked or non-steady state step size multiplier. */ - short dms; /* Short term energy estimate. */ - short dml; /* Long term energy estimate. */ - short ap; /* Linear weighting coefficient of 'yl' and 'yu'. */ - - short a[2]; /* Coefficients of pole portion of prediction filter. */ - short b[6]; /* Coefficients of zero portion of prediction filter. */ - short pk[2]; /* - * Signs of previous two samples of a partially - * reconstructed signal. - */ - short dq[6]; /* - * Previous 6 samples of the quantized difference - * signal represented in an internal floating point - * format. - */ - short sr[2]; /* - * Previous 2 samples of the quantized difference - * signal represented in an internal floating point - * format. - */ - char td; /* delayed tone detect, new in 1988 version */ -}; - -/* External function definitions. */ - -extern unsigned char linear2alaw (int pcm_val); /* 2's complement (16-bit range) */ -extern int alaw2linear (unsigned char a_val); -extern unsigned char linear2ulaw (int pcm_val); /* 2's complement (16-bit range) */ -extern int ulaw2linear (unsigned char u_val); -extern int predictor_zero (struct g72x_state *state_ptr); -extern int predictor_pole (struct g72x_state *state_ptr); -extern int step_size (struct g72x_state *state_ptr); -extern int quantize (int d, int y, short *table, int size); -extern int reconstruct (int sign, int dqln, int y); - -extern void update - ( int code_size, int y, int wi, int fi, int dq - , int sr, int dqsez, struct g72x_state *state_ptr); - -int tandem_adjust_alaw - (int sr, int se, int y, int i, int sign, short *qtab); - -int tandem_adjust_ulaw - (int sr, int se, int y, int i, int sign, short *qtab); - -extern void g72x_init_state (struct g72x_state *); -extern int g721_encoder( - int sample, - int in_coding, - struct g72x_state *state_ptr); -extern int g721_decoder( - int code, - int out_coding, - struct g72x_state *state_ptr); -extern int g723_24_encoder( - int sample, - int in_coding, - struct g72x_state *state_ptr); -extern int g723_24_decoder( - int code, - int out_coding, - struct g72x_state *state_ptr); -extern int g723_40_encoder( - int sample, - int in_coding, - struct g72x_state *state_ptr); -extern int g723_40_decoder( - int code, - int out_coding, - struct g72x_state *state_ptr); - -#endif /* !_G72X_H */ diff --git a/utils/wxMMedia/cdbase.cpp b/utils/wxMMedia/cdbase.cpp deleted file mode 100644 index 34348d8421..0000000000 --- a/utils/wxMMedia/cdbase.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndsnd.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif -#include "wx/wxprec.h" -#include "cdbase.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxCDtime wxCDAudio::CDtoc::GetTrackTime(wxUint8 track) const -{ - if (track > total_time.track) { - wxCDtime dummy_time = {0, 0, 0, 0}; - return dummy_time; - } - return tracks_time[track]; -} - -wxCDtime wxCDAudio::CDtoc::GetTrackPos(wxUint8 track) const -{ - if (track > total_time.track) { - wxCDtime dummy_time = {0, 0, 0, 0}; - return dummy_time; - } - return tracks_pos[track]; -} - -bool wxCDAudio::Play(const wxCDtime& beg_play) -{ - return Play(beg_play, GetToc().GetTotalTime()); -} - -bool wxCDAudio::Play(wxUint8 beg_track, wxUint8 end_track) -{ - wxCDtime beg_play = GetToc().GetTrackPos(beg_track); - wxCDtime end_play; - - if (end_track) - end_play = GetToc().GetTrackPos(end_track); - else - end_play = GetToc().GetTotalTime(); - return Play(beg_play, end_play); -} diff --git a/utils/wxMMedia/cdbase.h b/utils/wxMMedia/cdbase.h deleted file mode 100644 index 1c254b0f12..0000000000 --- a/utils/wxMMedia/cdbase.h +++ /dev/null @@ -1,88 +0,0 @@ -// -*- c++ -*- -// ///////////////////////////////////////////////////////////////////////////// -// Name: cdbase.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __CDA_base_H__ -#define __CDA_base_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include "mmtype.h" - -typedef struct wxCDtime { - wxUint8 track; - wxUint8 hour, min, sec; -} wxCDtime; - -/// -class WXDLLEXPORT wxCDAudio : public wxObject { - DECLARE_ABSTRACT_CLASS(wxCDAudio) -public: - /// - typedef enum { PLAYING, PAUSED, STOPPED } CDstatus; - /// Table of contents manager - class CDtoc { - protected: - wxCDtime *tracks_time, *tracks_pos; - wxCDtime total_time; - public: - /// - CDtoc(wxCDtime& tot_tm, wxCDtime *trks_tm, wxCDtime *trks_pos) - { tracks_time = trks_tm; total_time = tot_tm; tracks_pos = trks_pos; } - - /// Returns the length of the specified track - /** @param track track to get length */ - wxCDtime GetTrackTime(wxUint8 track) const; - /** Returns the position of the specified - @param track track to get position */ - wxCDtime GetTrackPos(wxUint8 track) const; - /// Returns the total time - inline wxCDtime GetTotalTime() const { return total_time; } - }; -public: - /// - wxCDAudio() : wxObject() {} - /// - virtual ~wxCDAudio() {} - - /// Play audio at the specified position - /** - * @param beg_play start position - * @param end_play end position - */ - virtual bool Play(const wxCDtime& beg_play, const wxCDtime& end_play) = 0; - /// Play audio from the specified to the end of the CD audio - /** - * @param beg_play start position - */ - bool Play(const wxCDtime& beg_play); - /// - bool Play(wxUint8 beg_track, wxUint8 end_track = 0); - /// Pause the audio playing - virtual bool Pause() = 0; - /// Resume a paused audio playing - virtual bool Resume() = 0; - /// Get the current CD status - virtual CDstatus GetStatus() = 0; - /// Get the current playing time - virtual wxCDtime GetTime() = 0; - /// Returns the table of contents - virtual const CDtoc& GetToc() = 0; - /// CD ok - virtual bool Ok() const = 0; -}; - -#endif diff --git a/utils/wxMMedia/cdunix.cpp b/utils/wxMMedia/cdunix.cpp deleted file mode 100644 index 92bf9fd72b..0000000000 --- a/utils/wxMMedia/cdunix.cpp +++ /dev/null @@ -1,199 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: cdlinux.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// CVS Id: $Id$ -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "cdunix.h" -#endif - -#include -#include -#include -#include -#include - -#ifdef __linux__ -#include -#else -// For Solaris -#include -#endif - -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include "mmtype.h" -#include "cdunix.h" - -wxCDAudioLinux::wxCDAudioLinux() - : wxCDAudio(), m_fd(-1) -{ - OpenDevice("/dev/cdrom"); -} - -wxCDAudioLinux::wxCDAudioLinux(const char *dev_name) - : wxCDAudio(), m_fd(-1) -{ - OpenDevice(dev_name); -} - -wxCDAudioLinux::~wxCDAudioLinux() -{ - if (m_fd != -1) { - close(m_fd); - wxDELETE(m_trksize); - wxDELETE(m_trkpos); - } -} - -void wxCDAudioLinux::OpenDevice(const char *dev_name) -{ - struct cdrom_tocentry entry, old_entry; - struct cdrom_tochdr diskinf; - struct cdrom_msf0 *msf = &entry.cdte_addr.msf, - *old_msf = &old_entry.cdte_addr.msf; - wxCDtime *the_track; - wxCDtime tot_tm; - wxUint8 nb_tracks, i; - int hour, minute, second; - - if (m_fd != -1) - return; - - m_fd = open(dev_name, O_RDONLY); - if (m_fd == -1) { - m_toc = NULL; - return; - } - m_status = STOPPED; - - ioctl(m_fd, CDROMREADTOCHDR, &diskinf); - - nb_tracks = diskinf.cdth_trk1-diskinf.cdth_trk0+1; - m_trksize = new wxCDtime[nb_tracks+1]; - m_trkpos = new wxCDtime[nb_tracks+1]; - - old_msf->minute = 0; - old_msf->second = 0; - for (i=diskinf.cdth_trk0;i<=diskinf.cdth_trk1;i++) { - entry.cdte_track = i; - entry.cdte_format = CDROM_MSF; - ioctl(m_fd, CDROMREADTOCENTRY, &entry); - - minute = msf->minute - old_msf->minute; - second = msf->second - old_msf->second; - if (second < 0) { - minute--; - second += 60; - } - - hour = minute / 60; - minute %= 60; - - the_track = &m_trksize[i-diskinf.cdth_trk0]; - the_track->track = i-diskinf.cdth_trk0; - the_track->hour = hour; - the_track->min = minute; - the_track->sec = second; - - the_track = &m_trkpos[i-diskinf.cdth_trk0]; - the_track->track = i-diskinf.cdth_trk0; - the_track->hour = old_msf->minute / 60; - the_track->min = old_msf->minute % 60; - the_track->sec = old_msf->second; - old_entry = entry; - } - - entry.cdte_track = CDROM_LEADOUT; - entry.cdte_format = CDROM_MSF; - ioctl(m_fd, CDROMREADTOCENTRY, &entry); - - tot_tm.track = nb_tracks; - tot_tm.hour = msf->minute / 60; - tot_tm.min = msf->minute % 60; - tot_tm.sec = msf->second % 60; - - m_trksize[nb_tracks].track = nb_tracks; - minute = msf->minute - old_msf->minute; - second = msf->second - old_msf->second; - if (second < 0) { - minute--; - second += 60; - } - hour = minute / 60; - minute %= 60; - - m_trksize[nb_tracks].hour = hour; - m_trksize[nb_tracks].min = minute; - m_trksize[nb_tracks].sec = second; - m_trkpos[nb_tracks].track = nb_tracks; - m_trkpos[nb_tracks].hour = old_msf->minute / 60; - m_trkpos[nb_tracks].min = old_msf->minute % 60; - m_trkpos[nb_tracks].sec = old_msf->second; - - m_toc = new CDtoc(tot_tm, m_trksize, m_trkpos); -} - -bool wxCDAudioLinux::Play(const wxCDtime& beg_time, const wxCDtime& end_time) -{ - struct cdrom_msf track_msf; - - track_msf.cdmsf_min0 = beg_time.hour * 60 + beg_time.min; - track_msf.cdmsf_sec0 = beg_time.sec; - track_msf.cdmsf_frame0 = 0; - track_msf.cdmsf_min1 = end_time.hour * 60 + end_time.min; - track_msf.cdmsf_sec1 = end_time.sec; - track_msf.cdmsf_frame1 = 0; - return (ioctl(m_fd, CDROMPLAYMSF, &track_msf) != -1); -} - -bool wxCDAudioLinux::Pause() -{ - return (ioctl(m_fd, CDROMPAUSE, 0) != -1); -} - -bool wxCDAudioLinux::Resume() -{ - return (ioctl(m_fd, CDROMRESUME, 0) != -1); -} - -wxCDAudio::CDstatus wxCDAudioLinux::GetStatus() -{ - struct cdrom_subchnl subchnl; - ioctl(m_fd, CDROMSUBCHNL, &subchnl); - switch (subchnl.cdsc_audiostatus) { - case CDROM_AUDIO_PLAY: return PLAYING; - case CDROM_AUDIO_PAUSED: return PAUSED; - case CDROM_AUDIO_COMPLETED: return STOPPED; - } - - return STOPPED; -} - -wxCDtime wxCDAudioLinux::GetTime() -{ - wxCDtime cdtime; - struct cdrom_subchnl subchnl; - - ioctl(m_fd, CDROMSUBCHNL, &subchnl); - cdtime.track = subchnl.cdsc_trk; - cdtime.min = subchnl.cdsc_reladdr.msf.minute; - cdtime.hour = cdtime.min / 60; - cdtime.min %= 60; - cdtime.sec = subchnl.cdsc_reladdr.msf.second; - - return cdtime; -} - -wxCDAudio::CDtoc& wxCDAudioLinux::GetToc() -{ - return *m_toc; -} diff --git a/utils/wxMMedia/cdunix.h b/utils/wxMMedia/cdunix.h deleted file mode 100644 index 0f8d73b324..0000000000 --- a/utils/wxMMedia/cdunix.h +++ /dev/null @@ -1,61 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: cdunix.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __CDUNIXH__ -#define __CDUNIXH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include "mmtype.h" -#include "cdbase.h" - -/// -class WXDLLEXPORT wxCDAudioLinux : public wxCDAudio { - DECLARE_DYNAMIC_CLASS(wxCDAudioLinux) -protected: - wxCDtime m_time; - CDstatus m_status; - CDtoc *m_toc; - int m_fd; - wxCDtime *m_trksize, *m_trkpos; -public: - /// - wxCDAudioLinux(); - /// - wxCDAudioLinux(const char *dev_name); - /// - virtual ~wxCDAudioLinux(); - - /// - virtual bool Play(const wxCDtime& beg_time, const wxCDtime& end_time); - /// - virtual bool Pause(); - /// - virtual bool Resume(); - /// - virtual CDstatus GetStatus(); - /// - virtual wxCDtime GetTime(); - /// - virtual CDtoc& GetToc(); - /// - virtual inline bool Ok() const { return (m_fd != -1); } -protected: - /// - void OpenDevice(const char *dev_name); -}; - -#endif diff --git a/utils/wxMMedia/cdwin.cpp b/utils/wxMMedia/cdwin.cpp deleted file mode 100644 index abe8469b70..0000000000 --- a/utils/wxMMedia/cdwin.cpp +++ /dev/null @@ -1,208 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: cdwin.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "cdwin.h" -#endif - -#include -#include -#include -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#define WXMMEDIA_INTERNAL -#include "mmtype.h" -#include "cdbase.h" -#include "cdwin.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxCDAudioWin::wxCDAudioWin(void) - : wxCDAudio(), m_trksize(NULL), m_trkpos(NULL), m_ok(TRUE), m_toc(NULL) -{ - MCI_OPEN_PARMS open_struct; - MCI_SET_PARMS set_struct; - DWORD ret; - - m_internal = new CDAW_Internal; - open_struct.lpstrDeviceType = "cdaudio"; - ret = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_TYPE, - (DWORD)&open_struct); - if (ret) { - m_ok = FALSE; - return; - } - m_internal->dev_id = open_struct.wDeviceID; - - set_struct.dwTimeFormat = MCI_FORMAT_MSF; - ret = mciSendCommand(m_internal->dev_id, MCI_SET, MCI_SET_TIME_FORMAT, - (DWORD)(LPVOID)&set_struct); - - PrepareToc(); - - set_struct.dwTimeFormat = MCI_FORMAT_TMSF; - ret = mciSendCommand(m_internal->dev_id, MCI_SET, MCI_SET_TIME_FORMAT, - (DWORD)(LPVOID)&set_struct); -} - -wxCDAudioWin::~wxCDAudioWin(void) -{ - if (m_ok) { - mciSendCommand(m_internal->dev_id, MCI_CLOSE, 0, NULL); - delete m_toc; - delete[] m_trksize; - delete[] m_trkpos; - } - delete m_internal; -} - -void wxCDAudioWin::PrepareToc(void) -{ - MCI_STATUS_PARMS status_struct; - MCI_SET_PARMS set_struct; - wxUint16 i, nb_m_trksize; - wxCDtime total_time, *trk; - DWORD ret, tmem; - - if (!m_ok) - return; - - status_struct.dwItem = MCI_STATUS_NUMBER_OF_TRACKS; - ret = mciSendCommand(m_internal->dev_id, MCI_STATUS, MCI_STATUS_ITEM, - (DWORD)&status_struct); - nb_m_trksize = status_struct.dwReturn; - - m_trksize = new wxCDtime[nb_m_trksize+1]; - m_trkpos = new wxCDtime[nb_m_trksize+1]; - - status_struct.dwItem = MCI_STATUS_LENGTH; - ret = mciSendCommand(m_internal->dev_id, MCI_STATUS, MCI_STATUS_ITEM, - (DWORD)&status_struct); - total_time.track = nb_m_trksize; - tmem = status_struct.dwReturn; - total_time.min = MCI_MSF_MINUTE(tmem); - total_time.sec = MCI_MSF_SECOND(tmem); - total_time.hour = total_time.min / 60; - total_time.min %= 60; - - for (i=1;i<=nb_m_trksize;i++) { - status_struct.dwItem = MCI_STATUS_POSITION; - status_struct.dwTrack = i; - ret = mciSendCommand(m_internal->dev_id, MCI_STATUS, - MCI_STATUS_ITEM | MCI_TRACK, - (DWORD)(LPVOID)&status_struct); - tmem = status_struct.dwReturn; - - trk = &m_trkpos[i]; - trk->track = i; - trk->min = MCI_MSF_MINUTE(tmem); - trk->sec = MCI_MSF_SECOND(tmem); - trk->hour = trk->min / 60; - trk->min %= 60; - - status_struct.dwItem = MCI_STATUS_LENGTH; - status_struct.dwTrack = i; - ret = mciSendCommand(m_internal->dev_id, MCI_STATUS, - MCI_STATUS_ITEM | MCI_TRACK, - (DWORD)(LPVOID)&status_struct); - tmem = status_struct.dwReturn; - - trk = &m_trksize[i]; - trk->track = i; - trk->min = MCI_MSF_MINUTE(tmem); - trk->sec = MCI_MSF_SECOND(tmem); - trk->hour = trk->min / 60; - trk->min %= 60; - } - - m_toc = new CDtoc(total_time, m_trksize, m_trkpos); -} - -bool wxCDAudioWin::Play(const wxCDtime& beg_time, const wxCDtime& end_time) -{ - DWORD tmsf; - MCI_PLAY_PARMS play_struct; - - if (!m_ok) - return FALSE; - - tmsf = MCI_MAKE_TMSF(beg_time.track, beg_time.min, - beg_time.sec, 0); - play_struct.dwFrom = tmsf; - tmsf = MCI_MAKE_TMSF(end_time.track, end_time.min, - end_time.sec, 0); - play_struct.dwTo = tmsf; - - mciSendCommand(m_internal->dev_id, MCI_PLAY, 0, (DWORD)&play_struct); - return TRUE; -} - -bool wxCDAudioWin::Pause(void) -{ - if (!m_ok) - return FALSE; - - return (mciSendCommand(m_internal->dev_id, MCI_PAUSE, 0, 0) == 0); -} - -bool wxCDAudioWin::Resume(void) -{ - if (!m_ok) - return FALSE; - - return (mciSendCommand(m_internal->dev_id, MCI_RESUME, 0, 0) == 0); -} - -wxCDAudio::CDstatus wxCDAudioWin::GetStatus(void) -{ - MCI_STATUS_PARMS status_struct; - - if (!m_ok) - return STOPPED; - - status_struct.dwItem = MCI_STATUS_MODE; - mciSendCommand(m_internal->dev_id, MCI_STATUS, MCI_STATUS_ITEM, - (DWORD)&status_struct); - switch (status_struct.dwReturn) { - case MCI_MODE_PAUSE: - return PAUSED; - case MCI_MODE_PLAY: - return PLAYING; - } - return STOPPED; -} - -wxCDtime wxCDAudioWin::GetTime(void) -{ - MCI_STATUS_PARMS status_struct; - wxCDtime cd_time = {-1, -1, -1, -1}; - - if (!m_ok) - return cd_time; - - status_struct.dwItem = MCI_STATUS_TIME_FORMAT; - mciSendCommand(m_internal->dev_id, MCI_STATUS, MCI_STATUS_ITEM, - (DWORD)&status_struct); - cd_time.track = MCI_TMSF_TRACK(status_struct.dwReturn); - cd_time.min = MCI_TMSF_MINUTE(status_struct.dwReturn); - cd_time.sec = MCI_TMSF_SECOND(status_struct.dwReturn); - cd_time.hour = cd_time.min / 60; - cd_time.min %= 60; - return cd_time; -} - -wxCDAudio::CDtoc& wxCDAudioWin::GetToc(void) -{ - return *m_toc; -} diff --git a/utils/wxMMedia/cdwin.h b/utils/wxMMedia/cdwin.h deleted file mode 100644 index 21db70ea9c..0000000000 --- a/utils/wxMMedia/cdwin.h +++ /dev/null @@ -1,67 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: cdwin.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __CDA_win_H__ -#define __CDA_win_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include "mmtype.h" -#include "cdbase.h" - -#ifdef WXMMEDIA_INTERNAL -#include -#include -typedef struct CDAW_Internal { - MCIDEVICEID dev_id; -} CDAW_Internal; -#endif - -/// -class WXDLLEXPORT wxCDAudioWin : public wxCDAudio { - DECLARE_DYNAMIC_CLASS(wxCDAudioWin) -protected: - struct CDAW_Internal *m_internal; - wxCDtime *m_trksize, *m_trkpos; - CDtoc *m_toc; - bool m_ok; -public: - /// - wxCDAudioWin(void); - /// - wxCDAudioWin(const char *dev_name); - /// - virtual ~wxCDAudioWin(void); - - /// - virtual bool Play(const wxCDtime& beg_time, const wxCDtime& end_time); - /// - virtual bool Pause(void); - /// - virtual bool Resume(void); - /// - virtual CDstatus GetStatus(void); - /// - virtual wxCDtime GetTime(void); - /// - virtual CDtoc& GetToc(void); - /// - virtual inline bool Ok(void) const { return m_ok; } -protected: - void PrepareToc(); -}; - -#endif diff --git a/utils/wxMMedia/makefile.b32 b/utils/wxMMedia/makefile.b32 deleted file mode 100644 index 5a396a0522..0000000000 --- a/utils/wxMMedia/makefile.b32 +++ /dev/null @@ -1,91 +0,0 @@ -# -# File: makefile.b32 -# Author: Patrick Halke, modified by Guilhem Lavaux -# Created: 1997 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds 32bit wxstring library for Windows 3.1 -# and Borland C++ 4.x - -WXDIR = $(WXWIN) - -!include $(WXDIR)\src\makeb32.env - -WXLIBDIR = $(WXDIR)\lib -WXLIB = $(WXDIR)\lib\wx32.lib -WXINC = $(WXDIR)\include\msw -WXBASESRC = $(WXDIR)\src\base -WXBASEINC = $(WXDIR)\include\base -LIBS=$(WXLIB) cw32 import32 ole2w32 - -!ifndef DEBUG -DEBUG=0 -!endif - -!if "$(FINAL)" == "0" -LINKFLAGS=/v /Tpe /L$(WXLIBDIR);$(BCCDIR)\lib -OPT = -Od -DEBUG_FLAGS= -v -DDEBUG=$(DEBUG) -!else -LINKFLAGS=/Tpe /L$(WXLIBDIR);$(BCCDIR)\lib -OPT = -O2 -DEBUG_FLAGS = -DDEBUG=$(DEBUG) -!endif - -CPPFLAGS=$(DEBUG_FLAGS) $(OPT) @$(CFG) - -LIBTARGET= $(WXLIBDIR)\wxmmedia.lib - -.c.obj: - bcc32 $(CPPFLAGS) -P- -c {$< } - -OBJECTS = sndsnd.$(OBJSUFF) sndwav.$(OBJSUFF) vidbdrv.$(OBJSUFF) \ - sndfile.$(OBJSUFF) sndwin.$(OBJSUFF) mmdata.$(OBJSUFF) \ - mmfile.$(OBJSUFF) mmsolve.$(OBJSUFF) sndfrag.$(OBJSUFF) \ - cdbase.$(OBJSUFF) cdwin.$(OBJSUFF) vidwin.$(OBJSUFF) \ - mmriff.$(OBJSUFF) - -all: $(LIBTARGET) - -$(LIBTARGET): $(OBJECTS) - erase $(LIBTARGET) - tlib $(LIBTARGET) /P32 @&&! -+$(OBJECTS:.obj =.obj +) -! - -sndsnd.$(OBJSUFF): sndsnd.$(SRCSUFF) sndsnd.h - -sndwin.$(OBJSUFF): sndwin.$(SRCSUFF) sndwin.h - -sndfile.$(OBJSUFF): sndfile.$(SRCSUFF) sndfile.h - -sndwav.$(OBJSUFF): sndwav.$(SRCSUFF) sndwav.h - -sndfrag.$(OBJSUFF): sndfrag.$(SRCSUFF) sndfrag.h - -mmdata.$(OBJSUFF): mmdata.$(SRCSUFF) - -mmfile.$(OBJSUFF): mmfile.$(SRCSUFF) mmfile.h - -mmsolve.$(OBJSUFF): mmsolve.$(SRCSUFF) mmsolve.h - -vidbdrv.$(OBJSUFF): vidbdrv.$(SRCSUFF) vidbdrv.h - -cdbase.$(OBJSUFF): cdbase.$(SRCSUFF) cdbase.h - -cdwin.$(OBJSUFF): cdwin.$(SRCSUFF) cdwin.h - -vidwin.$(OBJSUFF): vidwin.$(SRCSUFF) vidwin.h - -mmriff.$(OBJSUFF): mmriff.$(SRCSUFF) mmriff.h - -clean: - -erase *.obj - -erase $(LIBTARGET) - -erase *.exe - -erase *.res - -erase *.map - -erase *.rws diff --git a/utils/wxMMedia/makefile.nt b/utils/wxMMedia/makefile.nt deleted file mode 100644 index 6c7808adb9..0000000000 --- a/utils/wxMMedia/makefile.nt +++ /dev/null @@ -1,90 +0,0 @@ -# -# File: makefile.nt -# Author: Stefan Hammes (stefan.hammes@urz.uni-heidelberg.de) / Julian Smart / Petr Houser (1996) -# Created: 1995 -# Updated:=09 -# -# "%W% %G%" -# -# Makefile : Builds wxSock library for Windows NT / Win95 - -# Change WXDIR or WXWIN to wherever wxWindows is found -!include <..\..\src\ntwxwin.mak> - -WXMMEDDIR = $(WXDIR)\utils\wxmmedia -WXMMEDINC = $(WXMMEDDIR) -WXMMEDLIB = $(WXDIR)\lib\wxmmedia.lib -INC=-I$(WXBASEINC) -I$(WXINC) -I$(WXMMEDINC) - -WXLIB = $(WXDIR)\lib\wx.lib - -LIBS=$(WXSOCKLIB) $(LIBS) -#LIBS=$(WXLIB) $(WXSTRINGLIB) oldnames libw llibcew llibce commdlg shell - -OBJECTS = mmdata.obj mmfile.obj sndfile.obj sndsnd.obj sndwin.obj\ - sndwav.obj sndfrag.obj vidbase.obj - -all: $(WXMMEDLIB) - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.nt - cd $(ITSYDIR) - -demo: - -$(WXMMEDLIB): $(OBJECTS) - -erase $(WXSOCKLIB) - $(implib) @<< --out:$(WXSOCKLIB) --machine:$(CPU) -$(OBJECTS) -<< - -MMdata.obj: MMdata.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -MMfile.obj: MMfile.$(SRCSUFF) - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -SNDfile.obj: SNDfile.$(SRCSUFF) SNDfile.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -SNDwav.obj: SNDwav.$(SRCSUFF) SNDwav.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -SNDwin.obj: SNDwin.$(SRCSUFF) SNDwin.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -SNDsnd.obj: SNDsnd.$(SRCSUFF) SNDsnd.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -SNDfrag.obj: SNDfrag.$(SRCSUFF) SNDfrag.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -VIDbase.obj: VIDbase.$(SRCSUFF) VIDbase.h - cl @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -clean: - -erase *.obj - -erase *.exe - -erase *.lib - -erase *.res - -erase *.sbr - -erase *.pdb diff --git a/utils/wxMMedia/mmdata.cpp b/utils/wxMMedia/mmdata.cpp deleted file mode 100644 index ebd196874f..0000000000 --- a/utils/wxMMedia/mmdata.cpp +++ /dev/null @@ -1,96 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: mmdata.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#include "wx/wxprec.h" - -#include "mmfile.h" - -#include "sndsnd.h" -#include "sndfrmt.h" -#if defined(__UNIX__) -#include "snduss.h" -#endif -#include "sndfrag.h" -#include "sndfile.h" -#include "sndwav.h" -#include "sndaiff.h" -#include "sndau.h" -#include "sndpcm.h" -#include "sndmulaw.h" -#include "sndadpcm.h" -#include "vidbase.h" -#if defined(__X__) || defined(__WXGTK__) -#include "vidxanm.h" -#endif -#ifdef __WINDOWS__ -#include "sndwin.h" -#include "cdwin.h" -#include "vidwin.h" -#endif -#include "cdbase.h" -#ifdef __UNIX__ -#include "cdunix.h" -#endif -#include "mmsolve.h" -// #include "midfile.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -IMPLEMENT_ABSTRACT_CLASS(wxSound, wxObject) -IMPLEMENT_ABSTRACT_CLASS(wxSndBuffer, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxSndSimpleBuffer, wxSndBuffer) - -IMPLEMENT_ABSTRACT_CLASS(wxSoundCodec, wxObject) -IMPLEMENT_DYNAMIC_CLASS(wxSoundPcmCodec, wxSoundCodec) -IMPLEMENT_DYNAMIC_CLASS(wxSoundMulawCodec, wxSoundCodec) -IMPLEMENT_DYNAMIC_CLASS(wxSoundAdpcmCodec, wxSoundCodec) - -#ifdef __UNIX__ -IMPLEMENT_DYNAMIC_CLASS(wxUssSound, wxSound) -#endif -#ifdef __WINDOWS__ -IMPLEMENT_DYNAMIC_CLASS(wxWinSound, wxSound) -#endif - -IMPLEMENT_ABSTRACT_CLASS(wxSndFileCodec, wxMMediaFile) -IMPLEMENT_DYNAMIC_CLASS(wxSndWavCodec, wxSndFileCodec) -IMPLEMENT_DYNAMIC_CLASS(wxSndAuCodec, wxSndFileCodec) -IMPLEMENT_DYNAMIC_CLASS(wxSndAiffCodec, wxSndFileCodec) - -IMPLEMENT_ABSTRACT_CLASS(wxVideoBaseDriver, wxMMediaFile) -IMPLEMENT_DYNAMIC_CLASS(wxVideoOutput, wxWindow) -#if defined(__X__) || defined(__WXGTK__) -IMPLEMENT_DYNAMIC_CLASS(wxVideoXANIM, wxVideoBaseDriver) -#endif -#ifdef __WINDOWS__ -IMPLEMENT_DYNAMIC_CLASS(wxVideoWindows, wxVideoBaseDriver) -#endif - -IMPLEMENT_ABSTRACT_CLASS(wxCDAudio, wxObject) -#ifdef linux -IMPLEMENT_DYNAMIC_CLASS(wxCDAudioLinux, wxCDAudio) -#else -IMPLEMENT_DYNAMIC_CLASS(wxCDAudioWin, wxCDAudio) -#endif - -// IMPLEMENT_ABSTRACT_CLASS(wxMidiFile, wxObject) - -wxMediaFileSolve::wxMFileList *wxMediaFileSolve::m_first = NULL; -wxUint8 wxMediaFileSolve::m_devnum = 0; - -MMD_REGISTER_FILE("audio/x-wav", "Wav Player", wxSndWavCodec, "wav") -MMD_REGISTER_FILE("audio/x-aiff", "Aiff Player", wxSndAiffCodec, "aif") -MMD_REGISTER_FILE("audio/x-au", "Sun Audio File Player", wxSndAuCodec, "au") -#if defined(__X__) || defined(__WXGTK__) -MMD_REGISTER_FILE("video/*", "Video Player", wxVideoXANIM, "mov") -#else -MMD_REGISTER_FILE("video/avi", "AVI Player", wxVideoWindows, "avi") -#endif diff --git a/utils/wxMMedia/mmedia.h b/utils/wxMMedia/mmedia.h deleted file mode 100644 index a530b7bc36..0000000000 --- a/utils/wxMMedia/mmedia.h +++ /dev/null @@ -1,31 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: mmedia.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __MMEDIA_H__ -#define __MMEDIA_H__ - -#ifdef __WINDOWS__ - -#include "sndwin.h" -#define wxSoundDevice wxWinSound - -#include "vidwin.h" -#define wxVideoDevice wxVideoWindows - -#else - -#include "snduss.h" -#define wxSoundDevice wxUssSound - -#include "vidxanm.h" -#define wxVideoDevice wxVideoXANIM - -#endif - -#endif diff --git a/utils/wxMMedia/mmfile.cpp b/utils/wxMMedia/mmfile.cpp deleted file mode 100644 index b079b6b6a8..0000000000 --- a/utils/wxMMedia/mmfile.cpp +++ /dev/null @@ -1,199 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: mmfile.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include -#include - -#include "mmfile.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxMMediaFile::wxMMediaFile() - : m_istream(NULL), m_i_temp(NULL), m_ostream(NULL), m_o_temp(NULL), - m_tmpfname((char *)NULL), m_mfname((char *)NULL), - m_seekable(FALSE) -{ -} - -wxMMediaFile::wxMMediaFile(wxOutputStream& os, bool seekable) - : m_istream(NULL), m_i_temp(NULL), m_ostream(&os), m_o_temp(NULL), - m_tmpfname((char *)NULL), m_mfname((char *)NULL), - m_seekable(seekable) -{ -} - -wxMMediaFile::wxMMediaFile(wxInputStream& is, bool preload, bool seekable) - : m_istream(&is), m_i_temp(NULL), m_ostream(NULL), m_o_temp(NULL), - m_tmpfname((char *)NULL), m_mfname((char *)NULL), - m_seekable(seekable) -{ - if (preload) { - wxStreamBuffer *streamb = new wxStreamBuffer(wxStreamBuffer::read_write); - - streamb->Fixed(FALSE); - streamb->Flushable(FALSE); - - m_o_temp = new wxOutputStream(streamb); - m_i_temp = new wxInputStream(streamb); - - m_o_temp->Write(is); - streamb->ResetBuffer(); - } -} - -wxMMediaFile::wxMMediaFile(const wxString& fname) - : m_istream(NULL), m_i_temp(NULL), m_ostream(NULL), m_o_temp(NULL), - m_tmpfname((char *)NULL), m_mfname(fname), - m_seekable(TRUE) -{ - wxFileStream *s = new wxFileStream(fname); - - m_mfname = fname; - m_istream = s; - m_ostream = s; -} - -void wxMMediaFile::SetFile(wxInputStream& str, bool preload, bool seekable) -{ - CleanUpPrevious(); - m_istream = &str; - m_ostream = NULL; - m_seekable = seekable; - - if (preload) { - wxStreamBuffer *streamb = new wxStreamBuffer(wxStreamBuffer::read_write); - - streamb->Fixed(FALSE); - streamb->Flushable(FALSE); - - m_o_temp = new wxOutputStream(streamb); - m_i_temp = new wxInputStream(streamb); - - m_o_temp->Write(str); - streamb->ResetBuffer(); - } -} - -void wxMMediaFile::SetFile(wxOutputStream& str, bool seekable) -{ - CleanUpPrevious(); - m_ostream = &str; - m_istream = NULL; - m_seekable = seekable; -} - -void wxMMediaFile::SetFile(const wxString& fname) -{ - CleanUpPrevious(); - - m_mfname = fname; - wxFileStream *f = new wxFileStream(fname); - - SetFile(*f, FALSE, TRUE); -} - -void wxMMediaFile::CleanUpPrevious() -{ - if (m_i_temp) { - m_i_temp->SeekI(0); - - if (m_ostream) - m_ostream->Write(*m_i_temp); - - delete (m_i_temp->InputStreamBuffer()); - delete m_i_temp; - delete m_o_temp; - - if (m_tmpfname) - wxRemoveFile(m_tmpfname); - } - - if (!m_mfname.IsNull() && m_mfname != "") - delete m_istream; - - m_i_temp = NULL; - m_o_temp = NULL; - m_istream = NULL; - m_ostream = NULL; -} - -wxMMediaFile::~wxMMediaFile() -{ - CleanUpPrevious(); -} - -wxMMtime wxMMediaFile::GetLength() -{ - wxMMtime mm_time = {-1, 0, 0}; - return mm_time; -} - -wxMMtime wxMMediaFile::GetPosition() -{ - wxMMtime mm_time = {0, 0, 0}; - return mm_time; -} - -wxInputStream *wxMMediaFile::GetIRawData() -{ - if (!m_istream) - return NULL; - - if (!m_seekable && !m_i_temp) - CacheIO(); - - return (m_i_temp) ? m_i_temp : m_istream; -} - -wxOutputStream *wxMMediaFile::GetORawData() -{ - if (!m_ostream) - return NULL; - - if (!m_seekable && !m_i_temp) - CacheIO(); - - return (m_o_temp) ? m_o_temp : m_ostream; -} - -wxString wxMMediaFile::GetCurrentFile() -{ - if (!m_istream && !m_ostream) - return wxString((char *)NULL); - - if (!m_mfname && !m_i_temp) - CacheIO(); - - return (!m_tmpfname.IsEmpty()) ? m_tmpfname : m_mfname; -} - -void wxMMediaFile::CacheIO() -{ - if ((!m_istream && !m_ostream) || m_i_temp) - return; - - m_tmpfname = wxGetTempFileName("mmd"); - - wxFileStream *tmpstream = new wxFileStream(m_tmpfname); - m_i_temp = tmpstream; - m_o_temp = tmpstream; - - if (m_istream) - tmpstream->wxOutputStream::Write(*m_istream); -} diff --git a/utils/wxMMedia/mmfile.h b/utils/wxMMedia/mmfile.h deleted file mode 100644 index e6a3ccd20e..0000000000 --- a/utils/wxMMedia/mmfile.h +++ /dev/null @@ -1,89 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: mmfile.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __MMD_file_H__ -#define __MMD_file_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "wx/string.h" -#include "wx/stream.h" -#include "mmtype.h" - -/// -typedef enum { - wxMMFILE_NOERROR, - wxMMFILE_INVALID, - wxMMFILE_EOF -} /// - wxMMFileError; - -typedef struct { - wxInt8 hours; - wxUint8 minutes, seconds; -} wxMMtime; - -/// Common base class for multimedia file. -class wxMMediaFile { -public: - wxMMediaFile(); - /// - wxMMediaFile(wxInputStream& is, bool preload, bool seekable); - /// - wxMMediaFile(wxOutputStream& is, bool seekable); - /// - wxMMediaFile(const wxString& fname); - /// - virtual ~wxMMediaFile(); - - /// - wxInputStream *GetIRawData(); - wxOutputStream *GetORawData(); - /// - wxString GetCurrentFile(); - - /// - virtual void SetFile(wxInputStream& is, - bool preload = FALSE, bool seekable = FALSE); - /// - virtual void SetFile(wxOutputStream& is, bool seekable = FALSE); - /// - void SetFile(const wxString& fname); - - /// - wxMMFileError GetFileError() const { return m_mmerror; } - /// - virtual wxMMtime GetLength(); - /// - virtual wxMMtime GetPosition(); - /// - virtual bool StartPlay() = 0; - /// - virtual void StopPlay() = 0; -protected: - /// - wxMMFileError m_mmerror; - /// - wxInputStream *m_istream, *m_i_temp; - /// - wxOutputStream *m_ostream, *m_o_temp; - /// - wxString m_tmpfname, m_mfname; - /// - bool m_seekable; - - /// - void CacheIO(); - /// - void CleanUpPrevious(); -}; - -#endif diff --git a/utils/wxMMedia/mmriff.cpp b/utils/wxMMedia/mmriff.cpp deleted file mode 100644 index 10c8188195..0000000000 --- a/utils/wxMMedia/mmriff.cpp +++ /dev/null @@ -1,215 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: mmriff.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "mmriff.h" -#endif - -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include "mmfile.h" -#include "mmriff.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxRiffCodec::wxRiffCodec() : - riff_i_stream(NULL), riff_o_stream(NULL), chunk_length(INVALID_CHUNK_LEN) -{ -} - -wxRiffCodec::wxRiffCodec(wxInputStream& s) : - riff_i_stream(&s), riff_o_stream(NULL), chunk_length(INVALID_CHUNK_LEN) -{ -} - -wxRiffCodec::wxRiffCodec(wxOutputStream& s) : - riff_i_stream(NULL), riff_o_stream(&s), chunk_length(INVALID_CHUNK_LEN) -{ -} - -wxRiffCodec::~wxRiffCodec() -{ -} - -bool wxRiffCodec::RiffReset(wxUint8 mode) -{ - switch (mode) { - case RIFF_READ: - if (!riff_i_stream) - return FALSE; - riff_i_stream->SeekI(0); - chunk_length = INVALID_CHUNK_LEN; - return TRUE; - case RIFF_WRITE: - if (!riff_o_stream) - return FALSE; - riff_o_stream->SeekO(0); - chunk_length = INVALID_CHUNK_LEN; - return TRUE; - } - return FALSE; -} - -bool wxRiffCodec::ReadData(void *data, wxUint32 size) -{ - if (!riff_i_stream) - return FALSE; - - if (chunk_length != INVALID_CHUNK_LEN && (wxUint32)chunk_length < size) { - riff_error = wxMMFILE_EOF; - return FALSE; - } - if (chunk_length != INVALID_CHUNK_LEN) - chunk_length -= size; - - bool ret = (riff_i_stream->Read((char *)data, size).LastRead() == size); - - return ret; -} - -bool wxRiffCodec::WriteData(void *data, wxUint32 size) -{ - if (!riff_o_stream) - return FALSE; - - if (chunk_length < size) { - riff_error = wxMMFILE_EOF; - return FALSE; - } - chunk_length -= size; - - riff_o_stream->Write(data, size); - - return TRUE; -} - -bool wxRiffCodec::Read32(wxUint32& i32) -{ - wxUint8 i8[4]; - - if (!ReadData(i8, 4)) - return FALSE; - - i32 = i8[0]; - i32 |= ((wxUint32)i8[1]) << 8; - i32 |= ((wxUint32)i8[2]) << 16; - i32 |= ((wxUint32)i8[3]) << 24; - - return TRUE; -} - -bool wxRiffCodec::Write32(wxUint32 i32) -{ - wxUint8 i8[4]; - - i8[0] = i32 & 0xff; - i8[1] = (i32 >> 8) & 0xff; - i8[2] = (i32 >> 16) & 0xff; - i8[3] = (i32 >> 24) & 0xff; - - if (!WriteData(i8, 4)) - return FALSE; - - return TRUE; -} - -bool wxRiffCodec::Read16(wxUint16& i16) -{ - wxUint8 i8[2]; - - if (!ReadData(i8, 2)) - return FALSE; - - i16 = i8[0]; - i16 |= ((wxUint16)i8[1]) << 8; - - return TRUE; -} - -bool wxRiffCodec::Write16(wxUint16 i16) -{ - wxUint8 i8[2]; - - i8[0] = i16 & 0xff; - i8[1] = (i16 >> 8) & 0xff; - - if (!WriteData(i8, 2)) - return FALSE; - - return TRUE; -} - -bool wxRiffCodec::Skip(wxUint32 skip) -{ - if (!riff_i_stream || (chunk_length != INVALID_CHUNK_LEN && (wxInt32)skip > chunk_length)) - return FALSE; - - if (chunk_length != INVALID_CHUNK_LEN) - chunk_length -= skip; - riff_i_stream->SeekI(skip, wxFromCurrent); - - return TRUE; -} - -bool wxRiffCodec::CreateChunk(const wxString& name, wxUint32 size) -{ - if (!riff_o_stream || name.Length() != 4) - return FALSE; - - if (riff_o_stream->Write(name.GetData(), 4).LastError()) { - riff_error = wxMMFILE_EOF; - return FALSE; - } - - chunk_length = size+4; - - return Write32(size); -} - -bool wxRiffCodec::FindChunk(const wxString& name, bool from_here) -{ - char buf[5]; - wxString str2; - - if (!riff_i_stream) - return FALSE; - - if (chunk_length != INVALID_CHUNK_LEN && !from_here) - Skip(chunk_length); - while (1) { - if (riff_i_stream->Read(buf, 4).LastError()) { - riff_error = wxMMFILE_EOF; - return FALSE; - } - - chunk_length = INVALID_CHUNK_LEN; - if (!Read32(chunk_length)) { - riff_error = wxMMFILE_EOF; - return FALSE; - } - - buf[4] = 0; - str2 = buf; - if ((!name.IsNull()) && str2 != name) { - Skip(chunk_length); - continue; - } - - m_chunk = str2; - - return TRUE; - } - - return TRUE; -} diff --git a/utils/wxMMedia/mmriff.h b/utils/wxMMedia/mmriff.h deleted file mode 100644 index 5ea5395277..0000000000 --- a/utils/wxMMedia/mmriff.h +++ /dev/null @@ -1,81 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: mmriff.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1998 -// Updated: -// Copyright: (C) 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __MM_riff_H__ -#define __MM_riff_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmtype.h" -#include "mmfile.h" - -#define RIFF_READ 0 -#define RIFF_WRITE 1 -#define INVALID_CHUNK_LEN ((wxUint32)-1) - -/// -class wxRiffCodec { -public: - /// - wxRiffCodec(); - /// - wxRiffCodec(wxOutputStream& s); - /// - wxRiffCodec(wxInputStream& s); - /// - virtual ~wxRiffCodec(); - - /// - void SetFile(wxInputStream& s) { cout << "RIFF:SetFile(i)" << endl; riff_i_stream = &s; riff_o_stream = NULL; } - /// - void SetFile(wxOutputStream& s) { cout << "RIFF::SetFile(o)" << endl; riff_i_stream = NULL; riff_o_stream = &s; } - - /// - bool Read32(wxUint32& i32); - /// - bool Read16(wxUint16& i16); - /// - bool ReadData(void *data, wxUint32 size); - /// - bool Skip(wxUint32 skip); - - /// - bool Write32(wxUint32 i32); - /// - bool Write16(wxUint16 i16); - /// - bool WriteData(void *data, wxUint32 size); - - /// - inline wxUint32 GetChunkLength() const { return chunk_length; } - /// - inline const wxString& GetChunkName() const { return m_chunk; } - - /// - bool RiffReset(wxUint8 state); - - /// - bool FindChunk(const wxString& name = "", bool from_here = FALSE); - /// - bool CreateChunk(const wxString& name, wxUint32 chunk_size); - - /// - inline wxMMFileError GetError() const { return riff_error; } - -protected: - wxInputStream *riff_i_stream; - wxOutputStream *riff_o_stream; - wxUint32 chunk_length; - wxMMFileError riff_error; - wxString m_chunk; -}; - -#endif diff --git a/utils/wxMMedia/mmsolve.cpp b/utils/wxMMedia/mmsolve.cpp deleted file mode 100644 index a8cc35eaa1..0000000000 --- a/utils/wxMMedia/mmsolve.cpp +++ /dev/null @@ -1,124 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: mmsolve.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation -#endif -#include "mmsolve.h" - -wxMMediaFile *wxMediaFileSolve::ByExtension(const wxString& filename) -{ - wxMFileList *list = m_first; - wxString tmp, f_ext; - int pos = filename.Find('.', TRUE)+1; - - tmp = filename; - f_ext = tmp(pos, filename.Length()-pos); - - printf("f_ext = %s\n", f_ext.GetData()); - while (list) { - printf("list->ext = %s\n", list->ext.GetData()); - if (list->ext.CompareTo(f_ext) == 0) { - wxMMediaFile *mmf = list->creator(); - return mmf; - } - list = list->next; - } - return NULL; -} - -wxMMediaFile *wxMediaFileSolve::ByName(const wxString& name) -{ - wxMFileList *list = m_first; - - while (list) { - if (list->name == name) - return (wxMMediaFile *)(list->creator()); - list = list->next; - } - return NULL; -} - -bool wxMatchMimeType(const wxString& mime_obj, const wxString& type) -{ -#ifdef USE_GNU_WXSTRING - wxString mime2_obj = mime_obj; - wxString type2 = type; -#define mime_obj mime2_obj -#define type type2 -#endif - - if (mime_obj.Find('*') != -1) { - wxString part_str1[2], part_str2[2]; - - part_str1[0] = mime_obj.BeforeFirst('/'); - part_str1[1] = mime_obj.AfterFirst('/'); - - part_str2[0] = type.BeforeFirst('/'); - part_str2[1] = type.AfterFirst('/'); - - if (part_str1[0] == "*" && part_str1[1] == "*") - return TRUE; - - if (part_str1[0] == "*" && part_str1[1] == part_str2[1]) - return TRUE; - - if (part_str1[1] == "*" && part_str1[0] == part_str2[1]) - return TRUE; - - return FALSE; - } - if (mime_obj == type) - return TRUE; - return FALSE; -} - -wxMMediaFile *wxMediaFileSolve::ByType(const wxString& type) -{ - wxMFileList *list = m_first; - - while (list) { - if (wxMatchMimeType(*(list->mime_type), type)) - return (wxMMediaFile *)(list->creator()); - list = list->next; - } - return NULL; -} - -void wxMediaFileSolve::ListMDevice(wxString*& names, wxUint8& devices) -{ - wxMFileList *list = m_first; - wxUint8 d = 0; - - if (!m_devnum) { - names = NULL; - return; - } - devices = m_devnum; - names = new wxString[devices]; - - while (list) { - names[d++] = list->name; - list = list->next; - } -} - -wxMMDfileRegister::wxMMDfileRegister(wxMediaFileCreator cbk, - char *mtype, char *ext, char *name) -{ - wxMediaFileSolve::wxMFileList *entry = new wxMediaFileSolve::wxMFileList; - - entry->next = wxMediaFileSolve::m_first; - entry->creator = cbk; - entry->mime_type = wxString(mtype); - entry->name = wxString(name); - entry->ext = wxString(ext); - wxMediaFileSolve::m_devnum++; - wxMediaFileSolve::m_first = entry; -} diff --git a/utils/wxMMedia/mmsolve.h b/utils/wxMMedia/mmsolve.h deleted file mode 100644 index 04ef8f8080..0000000000 --- a/utils/wxMMedia/mmsolve.h +++ /dev/null @@ -1,92 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: mmsolve.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __MMD_solve_H__ -#define __MMD_solve_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include "mmfile.h" - -/** @name Solver classes */ -//@{ - -typedef wxMMediaFile *(*wxMediaFileCreator)(); - -/** wxMediaFileSolve is a class to do name resolution on multimedia files - * @memo Multimedia file solver - * @author Guilhem Lavaux - */ -class WXDLLEXPORT wxMediaFileSolve : public wxObject { -protected: - typedef struct wxMFileList { - wxMediaFileCreator creator; - wxString mime_type, name, ext; - wxMFileList *next; - } wxMFileList; - - static wxMFileList *m_first; - static wxUint8 m_devnum; - - friend class wxMMDfileRegister; -public: - wxMediaFileSolve() : wxObject() {} - ~wxMediaFileSolve() {} - - /** It resolves using the extension of the specified filename - * @memo - * @return the multimedia codec - * @param filename - */ - static wxMMediaFile *ByExtension(const wxString& filename); - - /** It resolves using the real name of a codec - * @memo - * @return the multimedia codec - * @param devname - */ - static wxMMediaFile *ByName(const wxString& devname); - - /** It resolves using a mime type - * @memo - * @return the multimedia codec - * @param mimetype - */ - static wxMMediaFile *ByType(const wxString& mimetype); - - /** It lists all codecs currently registered in "names". "names" is allocated - * by it and devices returns the number of codecs the list contains - * @memo - * @return nothing - * @param names an array - * @param devices - */ - static void ListMDevice(wxString*& names, wxUint8& devices); -}; - -/// -class wxMMDfileRegister { -public: - /// - wxMMDfileRegister(wxMediaFileCreator cbk, char *mtype, char *ext, char *name); -}; - -#define MMD_REGISTER_FILE(mtype, name, class, ext) \ -static wxMMediaFile *wxMediaFileConstructor_##class() { return new class(); } \ -wxMMDfileRegister mmd_##class(wxMediaFileConstructor_##class, mtype, ext, name); - -//@} - -#endif diff --git a/utils/wxMMedia/mmtype.h b/utils/wxMMedia/mmtype.h deleted file mode 100644 index e65d00dbf4..0000000000 --- a/utils/wxMMedia/mmtype.h +++ /dev/null @@ -1,41 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: mmtype.h -// Purpose: wxMMedia (imported from wxSocket) -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// - -#ifndef __SOCKTYPEH__ -#define __SOCKTYPEH__ - -#ifdef __UNIX__ -#include -#endif - -/// Type to use for 8 bits unsigned integers -typedef unsigned char wxUint8; -/// Type to use for 16 bits unsigned integers -typedef unsigned short wxUint16; -/// Type to use for 32 bits unsigned integers -typedef unsigned long wxUint32; -#if HAVE_UINT64 -/// Type to use for 64 bits unsigned integers -typedef unsigned long long wxUint64; -#endif - -/// Type to use for 8 bits signed integers -typedef char wxInt8; -/// Type to use for 16 bits signed integers -typedef short wxInt16; -/// Type to use for 32 bits signed integers -typedef long wxInt32; -#if HAVE_UINT64 -/// Type to use for 64 bits signed integers -typedef long long wxInt64; -#endif - -#endif - diff --git a/utils/wxMMedia/sndadpcm.cpp b/utils/wxMMedia/sndadpcm.cpp deleted file mode 100644 index 88b22e1c16..0000000000 --- a/utils/wxMMedia/sndadpcm.cpp +++ /dev/null @@ -1,118 +0,0 @@ -#ifdef __GNUG__ -#pragma implementation "sndmulaw.h" -#endif - -#include "sndsnd.h" -#include "sndfrmt.h" -#include "sndadpcm.h" -#include "adpcm/g72x.h" - -wxSoundAdpcmCodec::wxSoundAdpcmCodec() - : wxSoundCodec() -{ - // TODO: For the moment, only 1 channel is supported. - m_codec_state = new g72x_state; - g72x_init_state(m_codec_state); -} - -wxSoundAdpcmCodec::~wxSoundAdpcmCodec() -{ -} - -void wxSoundAdpcmCodec::InitWith(const wxSoundDataFormat& format) -{ - m_srate = format.GetSampleRate(); -} - -int wxSoundAdpcmCodec::GetBits(int nbits) -{ - unsigned int mask; - int bits; - - if (m_bits_waiting == 0) - m_current_byte = m_in_sound->GetChar(); - - mask = (1 << nbits) - 1; - bits = m_current_byte & mask; - m_current_byte >>= nbits; - m_bits_waiting -= nbits; - return bits; -} - -void wxSoundAdpcmCodec::Decode() -{ - int smp, bits; - wxSoundDataFormat pref_frmt; - - pref_frmt = GetPreferredFormat(0); - if (!(m_io_format == pref_frmt)) - ChainCodecAfter(pref_frmt); - - bits = GetBits(4); - if (m_io_format.GetByteOrder() == wxSND_SAMPLE_LE) { - while (!StreamOk()) { - smp = g721_decoder(bits, AUDIO_ENCODING_LINEAR, m_codec_state); - m_out_sound->PutChar(smp & 0x00ff); - m_out_sound->PutChar((smp & 0xff00) >> 8); - bits = GetBits(4); - } - } else { - while (!StreamOk()) { - smp = g721_decoder(bits, AUDIO_ENCODING_LINEAR, m_codec_state); - m_out_sound->PutChar((smp & 0xff00) >> 8); - m_out_sound->PutChar(smp & 0x00ff); - bits = GetBits(4); - } - } -} - -void wxSoundAdpcmCodec::Encode() -{ -/* - int smp; - wxSoundDataFormat pref_frmt; - - pref_frmt = GetPreferredFormat(0); - if (!(m_io_format == pref_frmt)) - ChainCodecAfter(pref_frmt); - - bits = GetBits(4); - if (m_io_format.GetByteOrder() == wxSND_SAMPLE_LE) { - while (!StreamOk()) { - smp = g721_decoder(bits, AUDIO_ENCODING_LINEAR, codec_state); - m_out_sound->PutChar(smp & 0x00ff); - m_out_sound->PutChar((smp & 0xff00) >> 8); - bits = GetBits(4); - } - } else { - while (!StreamOk()) { - smp = g721_decoder(bits, AUDIO_ENCODING_LINEAR, codec_state); - m_out_sound->PutChar((smp & 0xff00) >> 8); - m_out_sound->PutChar(smp & 0x00ff); - bits = GetBits(4); - } - } -*/ -} - -size_t wxSoundAdpcmCodec::GetByteRate() const -{ - return (m_io_format.GetSampleRate() * m_io_format.GetChannels()) / 2; -} - -wxSoundDataFormat wxSoundAdpcmCodec::GetPreferredFormat(int WXUNUSED(no)) const -{ - wxSoundDataFormat format; - - format.SetCodecNo(WXSOUND_PCM); - format.SetSampleRate(m_srate); - format.SetBps(16); - format.SetChannels(1); - format.SetSign(wxSND_SAMPLE_SIGNED); -#ifdef USE_BE_MACH - format.SetByteOrder(wxSND_SAMPLE_BE); -#else - format.SetByteOrder(wxSND_SAMPLE_LE); -#endif - return format; -} diff --git a/utils/wxMMedia/sndadpcm.h b/utils/wxMMedia/sndadpcm.h deleted file mode 100644 index 465958c887..0000000000 --- a/utils/wxMMedia/sndadpcm.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef __MEDIA_SNDADPCM_H__ -#define __MEDIA_SNDADPCM_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "sndfrmt.h" - -class wxSoundAdpcmCodec : public wxSoundCodec { - DECLARE_DYNAMIC_CLASS(wxSoundAdpcmCodec) - public: - wxSoundAdpcmCodec(); - ~wxSoundAdpcmCodec(); - - size_t GetByteRate() const; - wxSoundDataFormat GetPreferredFormat(int codec = 0) const; - int GetBits(int bits); - - void Decode(); - void Encode(); - - void InitWith(const wxSoundDataFormat& format); - protected: - struct g72x_state *m_codec_state; - int m_bits_waiting, m_current_byte; - int m_srate; -}; - -#endif diff --git a/utils/wxMMedia/sndaiff.cpp b/utils/wxMMedia/sndaiff.cpp deleted file mode 100644 index 19e67874c6..0000000000 --- a/utils/wxMMedia/sndaiff.cpp +++ /dev/null @@ -1,252 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndaiff.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: February 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndaiff.h" -#endif - -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include "wx/datstrm.h" -#include "sndaiff.h" -#include "sndpcm.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#define READ_DATA(n) m_istream->Read(tmp_buf,n) -#define WRITE_DATA(n) m_ostream->Write(tmp_buf,n) - -#define READ_STRING(s,n) \ - READ_DATA(n); \ - tmp_buf[n] = 0; \ - s = tmp_buf; - -#define WRITE_STRING(s,n) WRITE_DATA((const char *)s, n) - -#define READ32(i) \ - READ_DATA(4); \ - i = (unsigned long)tmp_buf[3] | \ - ((unsigned long)tmp_buf[2] << 8) | \ - ((unsigned long)tmp_buf[1] << 16) | \ - ((unsigned long)tmp_buf[0] << 24); - -#define WRITE32(i) \ - tmp_buf[3] = i & 0xFF; \ - tmp_buf[2] = (i >> 8) & 0xFF; \ - tmp_buf[1] = (i >> 16) & 0xFF; \ - tmp_buf[0] = (i >> 24) & 0xFF; \ - WRITE_DATA(4); - -#define READ16(i) \ - READ_DATA(2); \ - i = (unsigned short)tmp_buf[1] | \ - ((unsigned short)tmp_buf[0] << 8); - -wxSndAiffCodec::wxSndAiffCodec() - : wxSndFileCodec() -{ - m_sndtime.hours = -1; -} - -wxSndAiffCodec::wxSndAiffCodec(wxOutputStream& s, bool seekable) - : wxSndFileCodec(s, seekable) -{ - if (!seekable) - CacheIO(); - m_sndtime.hours = -1; -} - -wxSndAiffCodec::wxSndAiffCodec(wxInputStream& s, bool preload, bool seekable) - : wxSndFileCodec(s, preload, seekable) -{ - if (!seekable) - CacheIO(); - m_sndtime.hours = -1; -} - -wxSndAiffCodec::wxSndAiffCodec(const wxString& fname) - : wxSndFileCodec(fname) -{ - m_sndtime.hours = -1; -} - -wxUint32 wxSndAiffCodec::PrepareToPlay() -{ - char tmp_buf[5]; - wxString chunk_name; - - wxSndFileCodec::m_mmerror = wxMMFILE_INVALID; - - READ_STRING(chunk_name, 4); - if (chunk_name != "FORM") - return 0; - m_istream->SeekI(4, wxFromCurrent); - - READ_STRING(chunk_name, 4); - if (chunk_name != "AIFF" && chunk_name != "AIFC") - return 0; - - // To check whether the file is good - m_spos = 0; - m_slen = 0; - m_sndformat.SetSampleRate(0); - while (!m_spos || !m_sndformat.GetSampleRate()) { - READ_STRING(chunk_name, 4); - READ32(m_chunksize); - - if (chunk_name == "SSND") - ParseSSND(); - if (chunk_name == "COMM") - ParseCOMM(); - else - m_istream->SeekI(m_chunksize, wxFromCurrent); - } - - m_sndmode = wxSND_OUTPUT; - - wxUint32 sec1 = m_slen / m_sndformat.GetCodec()->GetByteRate(), - sec2 = sec1 % 3600; - - m_sndtime.hours = sec1 / 3600; - m_sndtime.minutes = sec2 / 60; - m_sndtime.seconds = sec2 % 60; - - wxSndFileCodec::m_mmerror = wxMMFILE_NOERROR; - - m_istream->SeekI(m_spos, wxFromStart); - wxSndFileCodec::m_fstate = wxSFILE_PREPARED_TO_PLAY; - - return m_slen; -} - -void wxSndAiffCodec::ParseCOMM() -{ - wxDataInputStream data_s(*m_istream); - char tmp_buf[10]; - wxUint16 channels; - wxUint32 srate, num_samples; - wxUint16 bps; - - READ16(channels); - READ32(num_samples); - READ16(bps); - - srate = (wxUint32)data_s.ReadDouble(); - m_sndformat.SetSampleRate(srate); - m_sndformat.SetBps(bps); - m_sndformat.SetChannels(channels); - m_sndformat.SetByteOrder(wxSND_SAMPLE_BE); - m_sndformat.SetSign(wxSND_SAMPLE_UNSIGNED); - ChangeCodec(WXSOUND_PCM); - - m_istream->SeekI(m_chunksize-18, wxFromCurrent); -} - -void wxSndAiffCodec::ParseSSND() -{ - wxDataInputStream data_s(*m_istream); - char tmp_buf[10]; - - READ32(m_spos); - m_istream->SeekI(4, wxFromCurrent); - - m_slen = m_chunksize - m_spos; - m_spos += m_istream->TellI(); -} - -wxSndAiffCodec::~wxSndAiffCodec() -{ -} - -bool wxSndAiffCodec::OnNeedData(char *buf, wxUint32 size) -{ - m_istream->Read(buf, size); - return TRUE; -} - -bool wxSndAiffCodec::OnWriteData(char *buf, wxUint32 size) -{ - return ( !(m_ostream->Write(buf, size).LastError()) ); -} - -void wxSndAiffCodec::WriteCOMM() -{ -/* - wxDataOutputStream data_s(*m_ostream); - char tmp_buf[10]; - wxUint16 channels; - wxUint32 srate, num_samples; - wxUint16 bps; - - m_chunksize = 18; - WRITE32(m_chunksize); - channels = m_sndformat.GetChannels(); - srate = m_sndformat.GetSampleRate(); - bps = m_sndformat.GetBps(); - - WRITE16(channels); - WRITE32(num_samples); - WRITE16(bps); - - data_s.WriteDouble((double)srate); - - m_sndformat.SetByteOrder(wxSND_SAMPLE_BE); - m_sndformat.SetSign(wxSND_SAMPLE_UNSIGNED); - ChangeCodec(WXSOUND_PCM); -*/ -} - -void wxSndAiffCodec::WriteSSND(wxUint32 fsize) -{ -/* - char tmp_buf[10]; - - WRITE32(m_spos); -// WRITE32(dummy ??); - - m_slen = m_chunksize - m_spos; - m_spos += m_istream->TellI(); -*/ -} - - -bool wxSndAiffCodec::PrepareToRecord(wxUint32 m_fsize) -{ - wxUint32 total_size = m_fsize + 0; - char tmp_buf[10]; - - m_ostream->Write("FORM", 4); - WRITE32(total_size); - - m_ostream->Write("AIFF", 4); - - WriteCOMM(); - WriteSSND(m_fsize); - - return TRUE; -} - -void wxSndAiffCodec::SetFile(wxInputStream& s, bool preload, bool seekable) -{ - wxMMediaFile::SetFile(s, preload, seekable); - if (!seekable) - CacheIO(); -} - -void wxSndAiffCodec::SetFile(wxOutputStream& s, bool seekable) -{ - wxMMediaFile::SetFile(s, seekable); - if (!seekable) - CacheIO(); -} diff --git a/utils/wxMMedia/sndaiff.h b/utils/wxMMedia/sndaiff.h deleted file mode 100644 index 0a574e8f3e..0000000000 --- a/utils/wxMMedia/sndaiff.h +++ /dev/null @@ -1,58 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndaiff.h -// Purpose: wxMMedia Aiff Codec -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: February 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __SND_aiff_H__ -#define __SND_aiff_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmriff.h" -#include "sndfile.h" - -/// -class wxSndAiffCodec : public wxSndFileCodec { - /// - DECLARE_DYNAMIC_CLASS(wxSndAiffCodec) -public: - /// - wxSndAiffCodec(); - /// - wxSndAiffCodec(wxInputStream& s, bool preload = FALSE, bool seekable = TRUE); - /// - wxSndAiffCodec(wxOutputStream& s, bool seekable = TRUE); - /// - wxSndAiffCodec(const wxString& fname); - /// - virtual ~wxSndAiffCodec(); - - virtual bool OnNeedData(char *buf, wxUint32 size); - virtual bool OnWriteData(char *buf, wxUint32 size); - - virtual wxUint32 PrepareToPlay(); - virtual bool PrepareToRecord(wxUint32 file_size); - - virtual void SetFile(wxInputStream& s, bool preload = FALSE, - bool seekable = FALSE); - virtual void SetFile(wxOutputStream& s, - bool seekable = FALSE); -protected: - void ParseCOMM(); - void ParseSSND(); - - void WriteCOMM(); - void WriteSSND(wxUint32 file_size); - -protected: - wxUint32 m_spos, m_slen; - wxUint32 m_chunksize; -}; - -#endif diff --git a/utils/wxMMedia/sndau.cpp b/utils/wxMMedia/sndau.cpp deleted file mode 100644 index 3ab950113b..0000000000 --- a/utils/wxMMedia/sndau.cpp +++ /dev/null @@ -1,112 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndau.cpp -// Purpose: wxMMedia Sun Audio File Codec -// Author: Guilhem Lavaux -// Created: 1998 -// Updated: -// Copyright: (C) 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndau.h" -#endif - -#include "mmriff.h" -#include "sndfile.h" -#include "sndau.h" - -#define AU_ISDN_ULAW 1 -#define AU_PCM_8BITS 2 -#define AU_PCM_16BITS 3 -#define AU_ADPCM 23 - -wxSndAuCodec::wxSndAuCodec() - : wxSndFileCodec() -{ -} - -wxSndAuCodec::wxSndAuCodec(wxInputStream& s, bool preload, bool seekable) - : wxSndFileCodec(s, preload, seekable) -{ -} - -wxSndAuCodec::wxSndAuCodec(wxOutputStream& s, bool seekable) - : wxSndFileCodec(s, seekable) -{ -} - -wxSndAuCodec::wxSndAuCodec(const wxString& fname) - : wxSndFileCodec(fname) -{ -} - -wxSndAuCodec::~wxSndAuCodec() -{ -} - -wxUint32 wxSndAuCodec::PrepareToPlay() -{ - wxString id; - char temp_buf[5]; - int offset, srate, codec, ch_count; - size_t len; - - m_istream->Read(temp_buf, 4); - temp_buf[4] = 0; - - id = temp_buf; - if (id != ".snd") { - m_mmerror = wxMMFILE_INVALID; - return 0; - } - -#define READ_BE_32(i) \ -m_istream->Read(temp_buf, 4); \ -i = (unsigned long)temp_buf[0] << 24; \ -i |= (unsigned long)temp_buf[1] << 16; \ -i |= (unsigned long)temp_buf[2] << 8; \ -i |= (unsigned long)temp_buf[3]; - - READ_BE_32(offset); - READ_BE_32(len); - READ_BE_32(codec); - READ_BE_32(srate); - READ_BE_32(ch_count); - - m_sndformat.SetSampleRate(srate); - m_sndformat.SetChannels(ch_count); - switch (codec) { - case AU_ISDN_ULAW: - ChangeCodec(WXSOUND_ULAW); - break; - case AU_PCM_8BITS: - ChangeCodec(WXSOUND_PCM); - m_sndformat.SetByteOrder(wxSND_SAMPLE_LE); - m_sndformat.SetSign(wxSND_SAMPLE_SIGNED); - break; - case AU_PCM_16BITS: - ChangeCodec(WXSOUND_PCM); - m_sndformat.SetByteOrder(wxSND_SAMPLE_LE); - m_sndformat.SetSign(wxSND_SAMPLE_SIGNED); - break; - case AU_ADPCM: - ChangeCodec(WXSOUND_ADPCM); - break; - } - return len; -} - -bool wxSndAuCodec::OnNeedData(char *buf, wxUint32 size) -{ - return m_istream->Read(buf, size).LastError(); -} - -bool wxSndAuCodec::OnWriteData(char *buf, wxUint32 size) -{ - return m_ostream->Write(buf, size).LastError(); -} - -bool wxSndAuCodec::PrepareToRecord(wxUint32 file_size) -{ - return FALSE; -} diff --git a/utils/wxMMedia/sndau.h b/utils/wxMMedia/sndau.h deleted file mode 100644 index ee8a2762ce..0000000000 --- a/utils/wxMMedia/sndau.h +++ /dev/null @@ -1,47 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndau.h -// Purpose: wxMMedia Sun Audio File Codec -// Author: Guilhem Lavaux -// Created: 1998 -// Updated: -// Copyright: (C) 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __SND_au_H__ -#define __SND_au_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmriff.h" -#include "sndfile.h" - -/// -class wxSndAuCodec : public wxSndFileCodec { - /// - DECLARE_DYNAMIC_CLASS(wxSndAuCodec) -public: - /// - wxSndAuCodec(); - /// - wxSndAuCodec(wxInputStream& s, bool preload = FALSE, bool seekable = TRUE); - /// - wxSndAuCodec(wxOutputStream& s, bool seekable = TRUE); - /// - wxSndAuCodec(const wxString& fname); - /// - virtual ~wxSndAuCodec(); - - bool OnNeedData(char *buf, wxUint32 size); - bool OnWriteData(char *buf, wxUint32 size); - - wxUint32 PrepareToPlay(); - bool PrepareToRecord(wxUint32 file_size); - -protected: - wxUint32 m_spos, m_slen; - wxUint32 m_chunksize; -}; - -#endif diff --git a/utils/wxMMedia/sndfile.cpp b/utils/wxMMedia/sndfile.cpp deleted file mode 100644 index 0a5c031b6e..0000000000 --- a/utils/wxMMedia/sndfile.cpp +++ /dev/null @@ -1,325 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndfile.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndfile.h" -#endif - -#include "mmedia.h" -#include "sndfile.h" -#ifdef WX_PRECOMP -#include -#else -#include -#endif -#include -#include "sndfrmt.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxSndFileCodec::wxSndFileCodec() - : wxMMediaFile(), wxSndBuffer(), - m_fstate(wxSFILE_STOPPED) -{ -} - -wxSndFileCodec::wxSndFileCodec(wxOutputStream& s, bool seekable) - : wxMMediaFile(s, seekable), - wxSndBuffer(), - m_fstate(wxSFILE_STOPPED) -{ -} - -wxSndFileCodec::wxSndFileCodec(wxInputStream& s, bool preload, bool seekable) - : wxMMediaFile(s, preload, seekable), - wxSndBuffer(), - m_fstate(wxSFILE_STOPPED) -{ -} - -wxSndFileCodec::wxSndFileCodec(const wxString& fname) - : wxMMediaFile(fname), wxSndBuffer(), - m_fstate(wxSFILE_STOPPED) -{ -} - -wxSndFileCodec::~wxSndFileCodec() -{ -} - -void wxSndFileCodec::Play(wxSound& snd) -{ - if (m_fstate != wxSFILE_STOPPED || IsSet(wxSND_BUFLOCKED)) - return; - - if (m_fstate != wxSFILE_PREPARED_TO_PLAY) - if (!(m_fsize = PrepareToPlay())) - return; - - m_fpos = 0; - m_fstate = wxSFILE_PLAYING; - - Set(wxSND_BUFREADY | wxSND_KEEPQUEUED); - snd.QueueBuffer(*this); -} - -void wxSndFileCodec::Stop(wxSound& snd) -{ - if (m_fstate == wxSFILE_STOPPED) - return; - - snd.UnqueueBuffer(*this); - Clear(wxSND_BUFREADY | wxSND_KEEPQUEUED); - m_fstate = wxSFILE_STOPPED; -} - -void wxSndFileCodec::Record(wxSound& snd, - const wxSoundDataFormat& format, - wxUint32 seconds) -{ - wxUint32 byterate; - - if (m_fstate != wxSFILE_STOPPED) - return; - - m_sndformat = format; - byterate = m_sndformat.GetCodec()->GetByteRate(); - - m_fsize = seconds*byterate; - if (!PrepareToRecord(m_fsize)) - return; - if (IsSet(wxSND_BUFLOCKED)) - return; - - wxUint32 sec1 = m_fsize / byterate, - sec2 = sec1 % 3600; - - m_sndtime.hours = sec1 / 3600; - m_sndtime.minutes = sec2 / 60; - m_sndtime.seconds = sec2 % 60; - - m_fdone = m_fpos = 0; - m_fstate = wxSFILE_RECORDING; - - m_sndmode = wxSND_INPUT; - - Set(wxSND_BUFREADY | wxSND_KEEPQUEUED); - snd.QueueBuffer(*this); -} - -void wxSndFileCodec::OnNeedOutputData(char *data, wxUint32& size) -{ - wxUint32 datas_left = m_fsize-m_fpos; - - if (m_fstate != wxSFILE_PLAYING) { - size = 0; - return; - } - - if (!datas_left) { - size = 0; - m_fpos = 0; - m_fstate = wxSFILE_STOPPED; - Clear(wxSND_KEEPQUEUED); - return; - } - - if (size > datas_left) - size = datas_left; - - if (!OnNeedData(data, size)) { - size = 0; - m_fpos = 0; - m_fstate = wxSFILE_STOPPED; - Clear(wxSND_KEEPQUEUED); - return; - } - - m_fpos += size; -} - -void wxSndFileCodec::OnBufferInFinished(char *iobuf, wxUint32& size) -{ - wxUint32 datas_left = m_fsize-m_fdone; - - if (m_fstate != wxSFILE_RECORDING) { - size = 0; - return; - } - - if (!datas_left) { - size = 0; - Clear(wxSND_KEEPQUEUED); // To be sure. - return; - } - - if (size > datas_left) - size = datas_left; - - OnWriteData(iobuf, size); - m_fdone += size; -} - -wxMMtime wxSndFileCodec::GetPosition() -{ - wxMMtime mm_time; - wxUint32 sec1, sec2; - wxUint32 byterate; - - byterate = m_sndformat.GetCodec()->GetByteRate(); - - if (m_fpos && byterate) { - sec1 = m_fpos / byterate; - sec2 = sec1 % 3600; - mm_time.hours = sec1 / 3600; - mm_time.minutes = sec2 / 60; - mm_time.seconds = sec2 % 60; - } else { - mm_time.hours = 0; - mm_time.minutes = 0; - mm_time.seconds = 0; - } - - return mm_time; -} - -wxMMtime wxSndFileCodec::GetLength() -{ - if (m_sndtime.hours == -1 && m_istream) - m_fsize = PrepareToPlay(); - - return m_sndtime; -} - -bool wxSndFileCodec::TranslateBuffer(wxSndBuffer& buf) -{ -#define TMP_BUFSIZE 10240 - - wxStreamBuffer *tmp_buf; - wxSoundCodec *codec_in, *codec_out; - wxSoundDataFormat std_format; - - if (!m_ostream || !buf.RestartBuffer(wxSND_OUTPUT)) - return FALSE; - - m_sndformat = buf.GetFormat(); - codec_in = buf.GetCurrentCodec(); - - m_fdone = 0; - - if (!PrepareToRecord(m_fsize)) - return FALSE; - - codec_out = GetCurrentCodec(); - m_fsize = (int)(((float)buf.GetSize() / codec_in->GetByteRate()) * - codec_out->GetByteRate()); - - if (!PrepareToRecord(m_fsize)) - return FALSE; - - codec_out = GetCurrentCodec(); - codec_in->InitIO(m_sndformat); - codec_out->InitIO(m_sndformat); - - tmp_buf = new wxStreamBuffer(wxStreamBuffer::read_write); - tmp_buf->Fixed(TRUE); - tmp_buf->Flushable(FALSE); - tmp_buf->SetBufferIO(TMP_BUFSIZE); - - m_fstate = wxSFILE_RECORDING; - - while (m_fdone < m_fsize) { - tmp_buf->ResetBuffer(); - codec_in->SetOutStream(tmp_buf); - codec_in->Decode(); - - tmp_buf->ResetBuffer(); - codec_out->SetInStream(tmp_buf); - codec_out->Encode(); - - buf.OnBufferOutFinished(); - } - delete tmp_buf; - - m_fstate = wxSFILE_STOPPED; - - return TRUE; -} - -bool wxSndFileCodec::RestartBuffer(wxSndMode mode) -{ - if (IsSet(wxSND_BUFLOCKED)) - return FALSE; - - m_fdone = 0; - m_fpos = 0; - - if (mode == wxSND_OUTPUT && m_istream) { - m_fsize = PrepareToPlay(); - m_fstate = wxSFILE_PLAYING; - return TRUE; - } - if (mode == wxSND_INPUT && m_ostream) { - m_fsize = 0; - m_fstate = wxSFILE_RECORDING; - return TRUE; - } - - return FALSE; -} - -wxUint32 wxSndFileCodec::GetSize() const -{ - return m_fsize; -} - -wxUint32 wxSndFileCodec::Available() const -{ - if (m_fstate == wxSFILE_STOPPED) - return 0; - return m_fsize-m_fpos; -} - -// -// Simple API -// -static wxSoundDevice *dev_snd = NULL; - -bool wxSndFileCodec::StartPlay() -{ - if (!dev_snd) - dev_snd = new wxSoundDevice; - - Play(*dev_snd); - - return TRUE; -} - -void wxSndFileCodec::StopPlay() -{ - if (!dev_snd) - return; - - Stop(*dev_snd); - m_fpos = 0; -} - -class wxSoundModule : public wxModule { - DECLARE_DYNAMIC_CLASS(wxSoundModule) -public: - virtual bool OnInit() { return TRUE; } - virtual void OnExit() { - if (dev_snd) - delete dev_snd; - } -}; - -IMPLEMENT_DYNAMIC_CLASS(wxSoundModule, wxModule) diff --git a/utils/wxMMedia/sndfile.h b/utils/wxMMedia/sndfile.h deleted file mode 100644 index 89e75cd18c..0000000000 --- a/utils/wxMMedia/sndfile.h +++ /dev/null @@ -1,93 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndfile.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __SND_file_H__ -#define __SND_file_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmfile.h" -#include "sndsnd.h" - -/// -class wxSndFileCodec : public wxMMediaFile, public wxSndBuffer { - /// - DECLARE_ABSTRACT_CLASS(wxSndFileCodec) -public: - - typedef enum { - wxSFILE_STOPPED, - wxSFILE_PLAYING, - wxSFILE_RECORDING, - wxSFILE_PREPARED_TO_PLAY, - wxSFILE_PREPARED_TO_RECORD, - } FileState; - -protected: - wxUint32 m_fsize, m_fpos, m_fdone; - FileState m_fstate; - wxMMtime m_sndtime; -public: - - /// - wxSndFileCodec(); - /// - wxSndFileCodec(wxInputStream& s, bool preload, bool seekable); - /// - wxSndFileCodec(wxOutputStream& s, bool seekable); - /// - wxSndFileCodec(const wxString& fname); - /// - virtual ~wxSndFileCodec(); - - /// - void Play(wxSound& snd); - /// - void Stop(wxSound& snd); - /// - void Record(wxSound& snd, - const wxSoundDataFormat& format, wxUint32 seconds); - - /// - void OnNeedOutputData(char *data, wxUint32& size); - /// - void OnBufferInFinished(char *iobuf, wxUint32& size); - - /// - virtual bool OnNeedData(char *buf, wxUint32 size) = 0; - /// - virtual bool OnWriteData(char *buf, wxUint32 size) = 0; - /// - virtual wxUint32 PrepareToPlay() = 0; - /// - virtual bool PrepareToRecord(wxUint32 file_size) = 0; - /// - virtual bool TranslateBuffer(wxSndBuffer& buf); - /// - virtual bool RestartBuffer(wxSndMode mode); - /// - virtual wxUint32 GetSize() const; - /// - virtual wxUint32 Available() const; - /// - virtual wxMMtime GetLength(); - - /// - wxMMtime GetPosition(); - - /// - virtual bool StartPlay(); - /// - virtual void StopPlay(); -}; - -#endif diff --git a/utils/wxMMedia/sndfrag.cpp b/utils/wxMMedia/sndfrag.cpp deleted file mode 100644 index 79c7b9a447..0000000000 --- a/utils/wxMMedia/sndfrag.cpp +++ /dev/null @@ -1,271 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndfrag.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndfrag.h" -#endif -#include -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include "sndfrag.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxFragmentBuffer::wxFragmentBuffer(wxSound& io_drv) - : m_iodrv(&io_drv), m_maxoq(0), m_maxiq(0), - m_lstoptrs(NULL), m_lstiptrs(NULL), - m_buf2free(FALSE), m_dontq(FALSE), m_freeing(FALSE) -{ -} - -wxFragmentBuffer::~wxFragmentBuffer() -{ -} - -void wxFragmentBuffer::AbortBuffer(wxSndBuffer *buf) -{ - for (wxUint8 i=0;iMember(buf)) { - if (m_lstoptrs[i].state == wxBUFFER_PLAYING) - // TODO: Do something. - ; - m_lstoptrs[i].state = wxBUFFER_TOFREE; - } - - for (wxUint8 i=0;iMember(buf)) { - if (m_lstiptrs[i].state == wxBUFFER_PLAYING) - // Do something. - ; - m_lstiptrs[i].state = wxBUFFER_TOFREE; - } -} - -wxFragmentBuffer::wxFragBufPtr *wxFragmentBuffer::FindFreeBuffer( - wxFragBufPtr *list, wxUint8 max_queue) -{ - if (!list) - return NULL; - - for (wxUint8 i=0;iGetCurrentCodec(); - - if (!m_iodrv->OnSetupDriver(*buf, wxSND_OUTPUT)) - return FALSE; - - while (1) { - // Find the first free (at least partly free) output buffer - ptr = FindFreeBuffer(m_lstoptrs, m_maxoq); - // No free : go out ! - if (ptr == NULL) - return FALSE; - - // Normally, these three functions could be called only once. - codec->SetOutStream(ptr->sndbuf); - codec->InitIO(m_drvformat); - codec->InitMode(wxSoundCodec::DECODING); - - // Fill it up - codec->Decode(); - - // No data to fill the buffer: dequeue the current wxSndBuffer - if (codec->Available() == 0) { - if (buf->IsNotSet(wxSND_KEEPQUEUED)) { - buf->Set(wxSND_UNQUEUEING); - m_iodrv->m_buffers.DeleteObject(buf); - } - return TRUE; - } - - // Data: append it to the list - ptr->buffers->Append(buf); - - // Output buffer full: send it to the driver - if (ptr->sndbuf->GetDataLeft() == 0) { - ptr->state = wxBUFFER_FFILLED; - OnBufferFilled(ptr, wxSND_OUTPUT); - } - } -} - -bool wxFragmentBuffer::NotifyInputBuffer(wxSndBuffer *buf) -{ - wxFragBufPtr *ptr; - size_t inc; - - if (!m_iodrv->OnSetupDriver(*buf, wxSND_INPUT)) - return FALSE; - - while (1) { - ptr = FindFreeBuffer(m_lstiptrs, m_maxiq); - if (ptr == NULL) - return FALSE; - - if (buf->Available() == 0) { - if (buf->IsNotSet(wxSND_KEEPQUEUED)) { - buf->Set(wxSND_UNQUEUEING); - m_iodrv->m_buffers.DeleteObject(buf); - } - - if (LastBuffer() == NULL && ptr->sndbuf->GetIntPosition() != 0) { - ptr->state = wxBUFFER_FFILLED; - if (!OnBufferFilled(ptr, wxSND_INPUT)) - return FALSE; - } - return TRUE; - } - ptr->buffers->Append(buf); - - // TODO: Add an "incrementer" in wxStreamBuffer. - inc = (buf->Available() < ptr->sndbuf->GetDataLeft()) ? - buf->Available() : ptr->sndbuf->GetDataLeft(); - - ptr->sndbuf->SetIntPosition(ptr->sndbuf->GetIntPosition() + inc); - - if (ptr->sndbuf->GetDataLeft() == 0) { - ptr->state = wxBUFFER_FFILLED; - if (!OnBufferFilled(ptr, wxSND_INPUT)) - return FALSE; - } - } - - return TRUE; -} - -void wxFragmentBuffer::FreeBufToFree(bool force) -{ - wxUint8 i; - // Garbage collecting - - m_dontq = TRUE; - m_buf2free = FALSE; - - for (i=0;ibuffers->First(); - - while (node) { - buf = (wxSndBuffer *)node->Data(); - - if (buf->GetMode() == wxSND_OUTPUT) { - buf->OnBufferOutFinished(); - } else { - codec = buf->GetCurrentCodec(); - - // Normally, these three functions could be called only once. - codec->SetInStream(ptr->sndbuf); - codec->InitIO(m_drvformat); - codec->InitMode(wxSoundCodec::ENCODING); - - // As there is an "auto-stopper" in the codec, we don't worry ... - codec->Encode(); - } - - if (buf->IsSet(wxSND_UNQUEUEING)) - buf->Clear(wxSND_UNQUEUEING | wxSND_BUFLOCKED | wxSND_BUFREADY); - - delete node; - node = ptr->buffers->First(); - } - - ptr->sndbuf->ResetBuffer(); - ptr->state = wxBUFFER_FREE; -} - -void wxFragmentBuffer::OnBufferFinished(wxFragBufPtr *ptr) -{ - wxNode *node; - wxSndBuffer *buf; - bool ret = TRUE; - - if (m_freeing) { - ptr->state = wxBUFFER_TOFREE; - m_buf2free = TRUE; - return; - } - m_freeing = TRUE; - - // Clean up the old buffer. - if (ptr && ptr->state != wxBUFFER_FREE) - ClearBuffer(ptr); - - // Garbage collecting ... - if (m_buf2free) - FreeBufToFree(); - - // If we are queueing, return immediately. - if (m_dontq) { - m_freeing = FALSE; - return; - } - - node = m_iodrv->m_buffers.First(); - - while (node && ret) { - buf = (wxSndBuffer *)node->Data(); - node = node->Next(); - - buf->HardLock(); - - // Stop request on this buffer. - if (buf->IsSet(wxSND_BUFSTOP)) { - buf->Clear(wxSND_BUFSTOP); - continue; - } - switch (buf->GetMode()) { - case wxSND_OUTPUT: - ret = NotifyOutputBuffer(buf); - break; - case wxSND_INPUT: - ret = NotifyInputBuffer(buf); - break; - case wxSND_DUPLEX: - case wxSND_OTHER_IO: - // ret = NotifyDuplexBuffer(buf); - break; - } - - buf->HardUnlock(); - } - m_freeing = FALSE; -} diff --git a/utils/wxMMedia/sndfrag.h b/utils/wxMMedia/sndfrag.h deleted file mode 100644 index 520f48ee4a..0000000000 --- a/utils/wxMMedia/sndfrag.h +++ /dev/null @@ -1,100 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndfrag.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __SND_frag_H__ -#define __SND_frag_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include "sndsnd.h" - -/// -class wxFragmentBuffer { -protected: - wxSound *m_iodrv; - - /// - wxUint8 m_maxoq, m_maxiq; - - /// - typedef enum { - wxBUFFER_FREE, - wxBUFFER_FFILLED, - wxBUFFER_TOFREE, - wxBUFFER_PLAYING - } BufState; -public: - /// - typedef struct { - // Local stream buffer for this fragment. - wxStreamBuffer *sndbuf; - // Data the driver would like to pass to the callback. - char *user_data; - // Buffers included in this fragment. - wxList *buffers; - // State of the fragment. - BufState state; - } wxFragBufPtr; -protected: - // - wxFragBufPtr *m_optrs, *m_iptrs; - // - wxFragBufPtr *m_lstoptrs, *m_lstiptrs; - // - bool m_buf2free, m_dontq, m_freeing; - // - wxSoundDataFormat m_drvformat; -public: - wxFragmentBuffer(wxSound& io_drv); - virtual ~wxFragmentBuffer(); - - // These functions initializes the fragments. They must initialize - // m_lstoptrs, m_lstiptrs, m_maxoq, m_maxiq. - virtual void AllocIOBuffer() = 0; - virtual void FreeIOBuffer() = 0; - - void AbortBuffer(wxSndBuffer *buf); - - // Find a free (or partly free) fragment. - wxFragBufPtr *FindFreeBuffer(wxFragBufPtr *list, wxUint8 max_queue); - // Add this sound buffer to an "OUTPUT" fragment. - bool NotifyOutputBuffer(wxSndBuffer *buf); - // Add this sound buffer to an "INPUT" fragment. - bool NotifyInputBuffer(wxSndBuffer *buf); - - // Called when a fragment is finished. - void OnBufferFinished(wxFragBufPtr *ptr); - - // Called when a fragment is full and it should be flushed in the sound card. - virtual bool OnBufferFilled(wxFragBufPtr *ptr, wxSndMode mode) = 0; - - inline wxSndBuffer *LastBuffer() { - wxNode *node = m_iodrv->m_buffers.Last(); - - if (!node) return NULL; - return (wxSndBuffer *)node->Data(); - } - inline wxSndBuffer *FirstBuffer() { - wxNode *node = m_iodrv->m_buffers.First(); - - if (!node) return NULL; - return (wxSndBuffer *)node->Data(); - } -protected: - void FreeBufToFree(bool force = FALSE); - void ClearBuffer(wxFragBufPtr *ptr); -}; - -#endif diff --git a/utils/wxMMedia/sndfrmt.cpp b/utils/wxMMedia/sndfrmt.cpp deleted file mode 100644 index fc9aa77654..0000000000 --- a/utils/wxMMedia/sndfrmt.cpp +++ /dev/null @@ -1,295 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndfrmt.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1998 -// Updated: December 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndfrmt.h" -#endif -#include "sndsnd.h" -#include "sndfrmt.h" -#include "sndpcm.h" - -// ---------------------------------------------------------------------------- -// wxSoundDataFormat -// ---------------------------------------------------------------------------- - -wxSoundDataFormat::wxSoundDataFormat() -{ - m_srate = 22050; - m_bps = 8; - m_channels = 1; - m_codno = 1; - m_codec = NULL; - m_codchange = FALSE; - m_codcreate = TRUE; -} - -wxSoundDataFormat::wxSoundDataFormat(const wxSoundDataFormat& format) -{ - m_srate = format.m_srate; - m_bps = format.m_bps; - m_channels = format.m_channels; - m_codno = format.m_codno; - m_sign = format.m_sign; - m_byteorder = format.m_byteorder; - m_codchange = FALSE; - m_codcreate = TRUE; - m_codec = NULL; -} - -wxSoundDataFormat::~wxSoundDataFormat() -{ - wxDELETE(m_codec); -} - -void wxSoundDataFormat::SetChannels(int channels) -{ - m_channels = channels; -} - -void wxSoundDataFormat::SetBps(int bps) -{ - m_bps = bps; - CodecChange(); -} - -void wxSoundDataFormat::SetSign(int sign) -{ - m_sign = sign; - CodecChange(); -} - -void wxSoundDataFormat::SetByteOrder(int byteorder) -{ - m_byteorder = byteorder; - CodecChange(); -} - -void wxSoundDataFormat::SetCodecNo(int codno) -{ - m_codno = codno; - m_codchange = TRUE; - CodecChange(); -} - -wxSoundCodec *wxSoundDataFormat::GetCodec() -{ - if (!m_codcreate) - return NULL; - - if (m_codchange) - wxDELETE(m_codec); - - if (m_codec) - return m_codec; - - m_codchange = FALSE; - m_codec = wxSoundCodec::Get(m_codno); - CodecChange(); - - return m_codec; -} - -void wxSoundDataFormat::CodecChange() -{ - wxSoundCodec *codec = GetCodec(); - - if (!codec) - return; - - switch (m_codno) { - case WXSOUND_PCM: { - wxSoundPcmCodec *pcm_codec = (wxSoundPcmCodec *)codec; - - pcm_codec->m_orig_format.SetSampleRate(m_srate); - pcm_codec->m_orig_format.SetBps(m_bps); - pcm_codec->m_orig_format.SetChannels(m_channels); - pcm_codec->m_orig_format.SetByteOrder(m_byteorder); - pcm_codec->m_orig_format.SetSign(m_sign); - break; - } - default: - codec->InitWith(*this); - break; - } -} - -wxSoundDataFormat& wxSoundDataFormat::operator =(const wxSoundDataFormat& format) -{ - wxDELETE(m_codec); - - m_srate = format.m_srate; - m_bps = format.m_bps; - m_channels = format.m_channels; - m_codno = format.m_codno; - m_sign = format.m_sign; - m_byteorder = format.m_byteorder; - - return *this; -} - -bool wxSoundDataFormat::operator ==(const wxSoundDataFormat& format) const -{ - if (m_codno != format.m_codno || m_srate != format.m_srate || - m_bps != format.m_bps || m_channels != format.m_channels) - return FALSE; - - if (m_codno == WXSOUND_PCM && - (m_sign != format.m_sign || m_byteorder != format.m_byteorder)) - return FALSE; - - return TRUE; -} - -// ---------------------------------------------------------------------------- -// wxSoundCodec -// ---------------------------------------------------------------------------- - -#include "sndpcm.h" -#include "sndadpcm.h" -//#include "sndalaw.h" -#include "sndmulaw.h" - -static wxClassInfo *l_sound_formats[] = { - NULL, - CLASSINFO(wxSoundPcmCodec), - CLASSINFO(wxSoundAdpcmCodec), - NULL, - NULL, - NULL, - NULL, // CLASSINFO(wxSoundAlawCodec), - CLASSINFO(wxSoundMulawCodec) -}; - -static int l_nb_formats = WXSIZEOF(l_sound_formats); - -wxSoundCodec::wxSoundCodec() -{ - m_in_sound = NULL; - m_out_sound = NULL; - m_init = TRUE; - m_chain_codec = NULL; -} - -wxSoundCodec::~wxSoundCodec() -{ - if (m_mode != WAITING) - ExitMode(); -} - -void wxSoundCodec::InitIO(const wxSoundDataFormat& format) -{ - m_io_format = format; -} - -void wxSoundCodec::InitMode(ModeType mode) -{ - wxStreamBuffer *buf_snd; - - m_mode = mode; - if (!m_chain_codec) { - if (m_mode == ENCODING) { - m_out_sound = new wxStreamBuffer(*this, wxStreamBuffer::write); - m_out_sound->SetBufferIO(1024); - } else { - m_in_sound = new wxStreamBuffer(*this, wxStreamBuffer::read); - m_in_sound->SetBufferIO(1024); - } - } - if (m_chain_codec) { - if (m_chain_before) { - m_chain_codec->SetInStream(m_in_sound); - buf_snd = new wxStreamBuffer(wxStreamBuffer::read_write); - buf_snd->Fixed(FALSE); - m_chain_codec->SetOutStream(buf_snd); - m_chain_codec->Decode(); - buf_snd->Seek(0, wxFromStart); - m_in_sound = buf_snd; - } else { - buf_snd = new wxStreamBuffer(wxStreamBuffer::read_write); - buf_snd->Fixed(FALSE); - - m_chain_codec->SetInStream(buf_snd); - m_chain_codec->SetOutStream(m_out_sound); - m_out_sound = buf_snd; - - buf_snd->Seek(0, wxFromStart); - } - } -} - -void wxSoundCodec::ExitMode() -{ - if (m_chain_codec) { - if (m_chain_before) { - delete m_in_sound; - m_in_sound = m_chain_codec->GetInStream(); - } else { - delete m_out_sound; - m_out_sound = m_chain_codec->GetOutStream(); - } - } - m_mode = WAITING; -} - -bool wxSoundCodec::ChainCodecBefore(wxSoundDataFormat& format) -{ - m_chain_codec = format.GetCodec(); - - if (!m_chain_codec) - return FALSE; - - m_chain_before = TRUE; - return TRUE; -} - -bool wxSoundCodec::ChainCodecAfter(wxSoundDataFormat& format) -{ - m_chain_codec = format.GetCodec(); - - if (!m_chain_codec) - return FALSE; - - m_chain_before = FALSE; - return TRUE; -} - -void wxSoundCodec::CopyToOutput() -{ - m_out_sound->Write(m_in_sound); -} - -size_t wxSoundCodec::Available() -{ - return m_io_sndbuf->Available(); -} - -size_t wxSoundCodec::OnSysRead(void *buffer, size_t bsize) -{ - wxUint32 s = bsize; - m_io_sndbuf->OnNeedOutputData((char *)buffer, s); - return bsize; -} - -size_t wxSoundCodec::OnSysWrite(const void *buffer, size_t bsize) -{ - wxUint32 s = bsize; - m_io_sndbuf->OnBufferInFinished((char *)buffer, s); - return bsize; -} - -wxSoundCodec *wxSoundCodec::Get(int no) -{ - if (no < 0 || no >= l_nb_formats) - return NULL; - - if (!l_sound_formats[no]) - return NULL; - - return (wxSoundCodec *)l_sound_formats[no]->CreateObject(); -} diff --git a/utils/wxMMedia/sndfrmt.h b/utils/wxMMedia/sndfrmt.h deleted file mode 100644 index 6a67db7de2..0000000000 --- a/utils/wxMMedia/sndfrmt.h +++ /dev/null @@ -1,136 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndfrmt.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1998 -// Updated: December 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifndef __SNDFRMT_H__ -#define __SNDFRMT_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include - -class wxSndBuffer; - -// Standard Microsoft types (why change ?) -#define WXSOUND_PCM 0x0001 -#define WXSOUND_ADPCM 0x0002 -#define WXSOUND_ALAW 0x0006 -#define WXSOUND_ULAW 0x0007 - -class wxSoundCodec; -class wxSoundDataFormat { - public: - wxSoundDataFormat(); - wxSoundDataFormat(const wxSoundDataFormat& format); - ~wxSoundDataFormat(); - - void SetSampleRate(int srate) { m_srate = srate; } - void SetChannels(int channels); - void SetStereo(bool on); - void SetCodecNo(int no); - int GetCodecNo() { return m_codno; } - void SetCodecCreate(bool create) { m_codcreate = create; } - - int GetSampleRate() const { return m_srate; } - int GetChannels() const { return m_channels; } - bool GetStereo() const { return (m_channels == 2); } - int GetCodecNo() const { return m_codno; } - - wxSoundCodec *GetCodec(); - - wxSoundDataFormat& operator =(const wxSoundDataFormat& format); - bool operator ==(const wxSoundDataFormat& format) const; - bool operator !=(const wxSoundDataFormat& format) const - { return !(operator ==(format)); } - - /// PCM format - void SetByteOrder(int order); - void SetSign(int sign); - int GetByteOrder() const { return m_byteorder; } - int GetSign() const { return m_sign; } - - void SetBps(int bps); - int GetBps() const { return m_bps; } - - protected: - void CodecChange(); - - protected: - int m_srate, m_bps, m_channels, m_codno; - int m_byteorder, m_sign; - bool m_codchange, m_codcreate; - wxSoundCodec *m_codec; -}; - -class wxSoundCodec : public wxObject, public wxStreamBase { - DECLARE_ABSTRACT_CLASS(wxSoundCodec) - public: - typedef enum { - WAITING = 0, - ENCODING, - DECODING - } ModeType; - public: - wxSoundCodec(); - virtual ~wxSoundCodec(); - - void SetIOBuffer(wxSndBuffer *sndbuf) { m_io_sndbuf = sndbuf; } - size_t Available(); - - void InitIO(const wxSoundDataFormat& format); - virtual void InitWith(const wxSoundDataFormat& format) {} - - inline void SetInStream(wxStreamBuffer *s) - { m_in_sound = s; } - inline void SetOutStream(wxStreamBuffer *s) - { m_out_sound = s; } - inline wxStreamBuffer *GetInStream() const { return m_in_sound; } - inline wxStreamBuffer *GetOutStream() const { return m_out_sound; } - - inline bool StreamOk() const - { return (m_in_sound->Stream()->LastError() == wxStream_NOERROR) && - (m_out_sound->Stream()->LastError() == wxStream_NOERROR); } - - virtual size_t GetByteRate() const = 0; - virtual wxSoundDataFormat GetPreferredFormat(int codec = 0) const = 0; - - virtual void InitMode(ModeType mode); - virtual void ExitMode(); - virtual void Decode() = 0; - virtual void Encode() = 0; - - static wxSoundCodec *Get(int no); - - protected: - void CopyToOutput(); - - unsigned short Convert8_16(unsigned char s) { return (s & 0xff) << 8; } - unsigned char Convert16_8(unsigned short s) { return (s & 0xff00) >> 8; } - - bool ChainCodecBefore(wxSoundDataFormat& cod_to); - bool ChainCodecAfter(wxSoundDataFormat& cod_to); - - // ------------- - // wxStream part - // ------------- - size_t OnSysWrite(const void *buffer, size_t bsize); - size_t OnSysRead(void *buffer, size_t bsize); - - protected: - wxSndBuffer *m_io_sndbuf; - wxSoundDataFormat m_io_format; - wxStreamBuffer *m_in_sound, *m_out_sound; - wxSoundCodec *m_chain_codec; - bool m_init, m_chain_before; - ModeType m_mode; -}; - -#endif diff --git a/utils/wxMMedia/sndmulaw.cpp b/utils/wxMMedia/sndmulaw.cpp deleted file mode 100644 index 3f45098f40..0000000000 --- a/utils/wxMMedia/sndmulaw.cpp +++ /dev/null @@ -1,94 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndmulaw.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: December 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndmulaw.h" -#endif - -#include "sndsnd.h" -#include "sndfrmt.h" -#include "sndmulaw.h" -#include "adpcm/g72x.h" - -wxSoundMulawCodec::wxSoundMulawCodec() - : wxSoundCodec() -{ -} - -wxSoundMulawCodec::~wxSoundMulawCodec() -{ -} - -void wxSoundMulawCodec::Decode() -{ - int smp; - wxSoundDataFormat pref_frmt; - - pref_frmt = GetPreferredFormat(0); - if (m_io_format != pref_frmt) - ChainCodecAfter(pref_frmt); - - InitMode(DECODING); - - while (!StreamOk()) { - smp = ulaw2linear(m_in_sound->GetChar()); -#ifdef USE_BE_MACH - m_out_sound->PutChar((smp & 0xff00) >> 8); - m_out_sound->PutChar(smp & 0xff); -#else - m_out_sound->PutChar(smp & 0xff); - m_out_sound->PutChar((smp & 0xff00) >> 8); -#endif - } -} - -void wxSoundMulawCodec::Encode() -{ - int smp; - wxSoundDataFormat pref_frmt; - - pref_frmt = GetPreferredFormat(0); - if (m_io_format != pref_frmt) - ChainCodecBefore(pref_frmt); - - InitMode(ENCODING); - - while (!StreamOk()) { -#ifdef USE_BE_MACH - smp = ((unsigned short)m_in_sound->GetChar()) << 8; - smp |= m_in_sound->GetChar() & 0xff; -#else - smp = m_in_sound->GetChar() & 0xff; - smp |= ((unsigned short)m_in_sound->GetChar()) << 8; -#endif - m_out_sound->PutChar(linear2ulaw(smp)); - } -} - -size_t wxSoundMulawCodec::GetByteRate() const -{ - return m_srate; -} - -wxSoundDataFormat wxSoundMulawCodec::GetPreferredFormat(int WXUNUSED(no)) const -{ - wxSoundDataFormat format; - - format.SetCodecNo(WXSOUND_PCM); - format.SetSampleRate(m_srate); - format.SetBps(16); - format.SetChannels(1); - format.SetSign(wxSND_SAMPLE_SIGNED); -#ifdef USE_BE_MACH - format.SetByteOrder(wxSND_SAMPLE_BE); -#else - format.SetByteOrder(wxSND_SAMPLE_LE); -#endif - return format; -} diff --git a/utils/wxMMedia/sndmulaw.h b/utils/wxMMedia/sndmulaw.h deleted file mode 100644 index 840567462a..0000000000 --- a/utils/wxMMedia/sndmulaw.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __MEDIA_SNDMULAW_H__ -#define __MEDIA_SNDMULAW_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "sndfrmt.h" - -class wxSoundMulawCodec : public wxSoundCodec { - DECLARE_DYNAMIC_CLASS(wxSoundMulawCodec) - public: - wxSoundMulawCodec(); - virtual ~wxSoundMulawCodec(); - - void SetSampleRate(int srate) { m_srate = srate; } - - size_t GetByteRate() const; - wxSoundDataFormat GetPreferredFormat(int codec = 0) const; - - void Decode(); - void Encode(); - - protected: - int m_srate; -}; - -#endif diff --git a/utils/wxMMedia/sndpcm.cpp b/utils/wxMMedia/sndpcm.cpp deleted file mode 100644 index f40fcadedc..0000000000 --- a/utils/wxMMedia/sndpcm.cpp +++ /dev/null @@ -1,209 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndpcm.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1998 -// Updated: 1999 -// Copyright: (C) 1997, 1998, 1999, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndpcm.h" -#endif -#include "sndsnd.h" -#include "sndpcm.h" - -#define WX_BIG_ENDIAN 0 - -wxSoundPcmCodec::wxSoundPcmCodec() - : wxSoundCodec() -{ - m_orig_format.SetCodecCreate(FALSE); - m_orig_format.SetCodecNo(WXSOUND_PCM); -} - -wxSoundPcmCodec::~wxSoundPcmCodec() -{ -} - -size_t wxSoundPcmCodec::GetByteRate() const -{ - return (m_orig_format.GetBps()/8)* - m_orig_format.GetSampleRate()* - m_orig_format.GetChannels(); -} - -wxSoundDataFormat wxSoundPcmCodec::GetPreferredFormat(int codec) const -{ - wxSoundDataFormat prefFormat; - - prefFormat = m_orig_format; - return prefFormat; -} - -// --------------------------------------------------------------------------- -// Main part of the decoder -// --------------------------------------------------------------------------- - -void wxSoundPcmCodec::Decode() -{ - if (m_io_format == m_orig_format) { - CopyToOutput(); - return; - } - - // Swap bytes - switch (m_io_format.GetBps()) { - case 8: - InputSign8(); - break; - case 16: - InputSwapAndSign16(); - break; - case 32: - case 64: - default: - break; - } -} - -// --------------------------------------------------------------------------- -// Change the sign of a 8-bit sample. - -#define GET() (m_in_sound->GetChar()) -#define PUT(c) (m_out_sound->PutChar(c)) - -void wxSoundPcmCodec::InputSign8() -{ - unsigned char signer = 0; - - if (m_io_format.GetSign() != m_orig_format.GetSign()) - signer = 128; - - while (StreamOk()) - PUT(GET() + signer); -} - -// --------------------------------------------------------------------------- -// Swap bytes and change the sign of a 16-bit sample. - -void wxSoundPcmCodec::InputSwapAndSign16() -{ - unsigned short signer1 = 0, signer2 = 0; - bool swap = (m_io_format.GetByteOrder() != m_orig_format.GetByteOrder()); - register char temp, temp2; - - if (m_io_format.GetSign() != m_orig_format.GetSign()) { - if (m_io_format.GetByteOrder() == wxSND_SAMPLE_LE) - signer2 = 0x80; - else - signer1 = 0x80; - } - - if (swap) { - while (StreamOk()) { - temp = GET(); - temp2 = GET(); - PUT(temp2 ^ signer2); - if (!StreamOk()) { - m_in_sound->WriteBack(temp); - m_in_sound->WriteBack(temp2); - break; - } - PUT(temp ^ signer1); - } - } else { - while (StreamOk()) { - temp = GET(); - temp2 = GET(); - PUT(temp ^ signer1); - if (!StreamOk()) { - m_in_sound->WriteBack(temp); - m_in_sound->WriteBack(temp2); - break; - } - PUT(GET() ^ signer2); - } - } -} - -// --------------------------------------------------------------------------- -// Encoder part. -// --------------------------------------------------------------------------- - -void wxSoundPcmCodec::OutputSign8() -{ - unsigned char signer = 0; - - if (m_io_format.GetSign() != m_orig_format.GetSign()) - signer = 128; - - while (StreamOk()) - PUT((char)(GET() + signer)); -} - -// --------------------------------------------------------------------------- - -void wxSoundPcmCodec::OutputSwapAndSign16() -{ - bool swap = (m_io_format.GetByteOrder() != m_orig_format.GetByteOrder()); - unsigned short signer1 = 0, signer2 = 0; - register char temp, temp2; - - if (m_io_format.GetSign() != m_orig_format.GetSign()) - if (m_io_format.GetByteOrder() == wxSND_SAMPLE_LE) - signer1 = 0x80; - else - signer2 = 0x80; - - if (swap) { - while (StreamOk()) { - temp = GET(); - temp2 = GET(); - PUT(temp2 ^ signer1); - if (!StreamOk()) { - m_in_sound->WriteBack(temp); - m_in_sound->WriteBack(temp2); - break; - } - PUT(temp ^ signer2); - } - } else { - while (StreamOk()) { - temp = GET(); - temp2 = GET(); - PUT(temp ^ signer1); - if (!StreamOk()) { - m_in_sound->WriteBack(temp); - m_in_sound->WriteBack(temp2); - break; - } - PUT(temp2 ^ signer2); - } - } - -} - -// --------------------------------------------------------------------------- - -void wxSoundPcmCodec::Encode() -{ - if (m_io_format == m_orig_format) { - CopyToOutput(); - return; - } - - // Swap bytes - switch (m_io_format.GetBps()) { - case 8: - OutputSign8(); - break; - case 16: - OutputSwapAndSign16(); - break; - case 32: - case 64: - default: - break; - } -} diff --git a/utils/wxMMedia/sndpcm.h b/utils/wxMMedia/sndpcm.h deleted file mode 100644 index 20fa95848d..0000000000 --- a/utils/wxMMedia/sndpcm.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __SNDPCM_H__ -#define __SNDPCM_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "sndfrmt.h" - -class wxSoundPcmCodec : public wxSoundCodec { - DECLARE_DYNAMIC_CLASS(wxSoundPcmCodec) - public: - wxSoundPcmCodec(); - virtual ~wxSoundPcmCodec(); - - size_t GetByteRate() const; - wxSoundDataFormat GetPreferredFormat(int codec = 0) const; - - void Decode(); - void Encode(); - - protected: - void InputSign8(); - void InputSwapAndSign16(); - void OutputSign8(); - void OutputSwapAndSign16(); - - protected: - friend class wxSoundDataFormat; - wxSoundDataFormat m_orig_format; - char m_char_stack; - bool m_char_bool; -}; - -#endif diff --git a/utils/wxMMedia/sndsnd.cpp b/utils/wxMMedia/sndsnd.cpp deleted file mode 100644 index b938f0a0b0..0000000000 --- a/utils/wxMMedia/sndsnd.cpp +++ /dev/null @@ -1,262 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndsnd.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndsnd.h" -#endif -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include "sndsnd.h" -#include "sndfrmt.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#define PROCESS_EVENT() wxYield() -// #define PROCESS_EVENT() - -// ---------------------------------------------------------------------------- -// wxSndBuffer: base sound buffer class -// ---------------------------------------------------------------------------- - - -wxSndBuffer::wxSndBuffer() - : m_sndmode(wxSND_OUTPUT), m_sndflags(0), m_sndoutput(NULL), m_sndcodec(NULL) -{ -} - -wxSndBuffer::~wxSndBuffer() -{ -} - -void wxSndBuffer::Set(wxSndFlags flags) -{ - m_sndflags |= flags; - - if ((m_sndflags & wxSND_BUFAUTO) && (flags & wxSND_BUFREADY)) - m_sndoutput->QueueBuffer(*this); -} - -void wxSndBuffer::SetError(wxSndError error) -{ - if (error == wxSND_NOERROR) - Clear(wxSND_BUFERR); - else - Set(wxSND_BUFERR); - - m_snderror = error; -} - -wxSndError wxSndBuffer::GetError() -{ - if (IsNotSet(wxSND_BUFERR)) - return wxSND_NOERROR; - Clear(wxSND_BUFERR); - return m_snderror; -} - -void wxSndBuffer::OnPlayFinished() -{ -} - -void wxSndBuffer::OnBufferOutFinished() -{ -} - -void wxSndBuffer::OnBufferInFinished(char *WXUNUSED(iobuf), - wxUint32& WXUNUSED(size)) -{ -} - -bool wxSndBuffer::Wait() -{ - if (IsNotSet(wxSND_BUFLOCKED)) - return FALSE; - - while (IsSet(wxSND_BUFLOCKED)) - PROCESS_EVENT(); - - return IsNotSet(wxSND_BUFERR); -} - -void wxSndBuffer::HardLock() -{ - m_mutex.Lock(); -} - -void wxSndBuffer::HardUnlock() -{ - m_mutex.Unlock(); -} - -void wxSndBuffer::ChangeCodec(int no) -{ - m_sndformat.SetCodecNo(no); - m_sndcodec = m_sndformat.GetCodec(); - m_sndcodec->SetIOBuffer(this); -} - -// ---------------------------------------------------------------------------- -// wxSndSimpleBuffer: the simplest sound buffer -// ---------------------------------------------------------------------------- - - -wxSndSimpleBuffer::wxSndSimpleBuffer(char *buffer, wxUint32 bufsize, - wxSndMode mode) - : wxSndBuffer() -{ - m_sndbuf = buffer; - m_sndsize = bufsize; - m_sndmode = mode; - - m_sndptr = 0; -} - -wxSndSimpleBuffer::~wxSndSimpleBuffer() -{ -} - -void wxSndSimpleBuffer::OnNeedOutputData(char *iobuf, wxUint32& size) -{ - char *buf = m_sndbuf + m_sndptr; - wxUint32 nbdata_left = m_sndsize - m_sndptr; - - if (m_sndptr >= m_sndsize) { - size = 0; - return; - } - - if (size > nbdata_left) - size = nbdata_left; - - m_sndptr += size; - - memcpy(iobuf, buf, size); -} - -void wxSndSimpleBuffer::OnBufferOutFinished() -{ - if (m_sndptr >= m_sndsize) - OnPlayFinished(); -} - -void wxSndSimpleBuffer::OnBufferInFinished(char *iobuf, wxUint32& size) -{ - char *raw_buf = m_sndbuf + m_sndptr; - wxUint32 data_left = m_sndsize - m_sndptr; - - if (!data_left) { - size = 0; - return; - } - - if (size > data_left) - size = data_left; - - memcpy(raw_buf, iobuf, size); - m_sndptr += size; -} - -void wxSndSimpleBuffer::SetData(char *buffer, wxUint32 bufsize, - wxSndMode mode) -{ - m_sndbuf = buffer; - m_sndsize = bufsize; - m_sndmode = mode; -} - -bool wxSndSimpleBuffer::RestartBuffer(wxSndMode mode) -{ - m_sndptr = 0; - return TRUE; -} - -wxUint32 wxSndSimpleBuffer::GetSize() const -{ - return m_sndsize; -} - -wxUint32 wxSndSimpleBuffer::Available() const -{ - return m_sndsize - m_sndptr; -} - -// ---------------------------------------------------------------------------- -// wxSound: base sound driver implementation -// ---------------------------------------------------------------------------- - -wxSound::wxSound() - : wxObject(), - m_lastbuf(NULL), m_sndcbk(NULL), m_snderror(wxSND_NOERROR) -{ - m_buffers.Clear(); -} - -wxSound::~wxSound() -{ - wxNode *node = m_buffers.First(); - - while (node) { - wxSndBuffer *buf = (wxSndBuffer *)node->Data(); - - buf->Clear(wxSND_BUFLOCKED); - } -} - -bool wxSound::QueueBuffer(wxSndBuffer& buf) -{ - if (buf.IsSet(wxSND_BUFLOCKED) || buf.IsNotSet(wxSND_BUFREADY)) - return FALSE; - - buf.Set(wxSND_BUFLOCKED); - buf.SetOutput(*this); - - m_buffers.Append(&buf); - return Wakeup(buf); -} - -bool wxSound::UnqueueBuffer(wxSndBuffer& buf) -{ - wxNode *node; - - if (buf.IsNotSet(wxSND_BUFLOCKED)) - return FALSE; - - node = m_buffers.Member(&buf); - if (!node) - return FALSE; - - StopBuffer(buf); - node = m_buffers.Member(&buf); - if (node) - delete node; - - return TRUE; -} - -void wxSound::Callback(wxSndCallback cbk) -{ - m_sndcbk = cbk; -} - -void wxSound::SetClientData(char *cdata) -{ - m_cdata = cdata; -} - -void wxSound::OnPlayBuffer(wxSndBuffer& buf) -{ - m_lastbuf = &buf; - if (m_sndcbk) - m_sndcbk(*this, buf, m_cdata); -} diff --git a/utils/wxMMedia/sndsnd.h b/utils/wxMMedia/sndsnd.h deleted file mode 100644 index 9fae1a8794..0000000000 --- a/utils/wxMMedia/sndsnd.h +++ /dev/null @@ -1,275 +0,0 @@ -/* Real -*- C++ -*- */ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndsnd.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -#ifndef __WX_SND_SOUND_H__ -#define __WX_SND_SOUND_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include -#include "sndfrmt.h" -#include "mmtype.h" - -class wxSound; -class wxSndBuffer; - -typedef enum { - wxSND_OUTPUT, - wxSND_INPUT, - wxSND_DUPLEX, - wxSND_OTHER_IO -} /// The possible sound output modes - wxSndMode; - -typedef enum { - wxSND_NOERROR = 0, - wxSND_NOCAPS, - wxSND_CANTOPEN, - wxSND_NOMEM, - wxSND_READERR, - wxSND_WRITEERR, - wxSND_CANTSET -} /// Sound errors - wxSndError; - -/// Sound callback -typedef void (*wxSndCallback)(wxSound&, wxSndBuffer&, char *); - -/// Sound flags -typedef wxUint16 wxSndFlags; - -/** @name Sound buffer flags */ -/// buffer ready -#define wxSND_BUFREADY 0x0001 -/// an error occured -#define wxSND_BUFERR 0x0002 -/// buffer is in use -#define wxSND_BUFLOCKED 0x0004 -/// the driver mustn't unqueue it -#define wxSND_KEEPQUEUED 0x0008 -/// automatic: when BUFREADY is set play the buffer -#define wxSND_BUFAUTO 0x0010 -/// -#define wxSND_UNFINISHED 0x0020 -/// buffer is nearly being unqueued -#define wxSND_UNQUEUEING 0x0040 -/// driver wants the buffer stop -#define wxSND_BUFSTOP 0x0080 -/// buffer will loop -#define wxSND_LOOP 0x0100 - -/** @name Sound data format */ -/// little endian -#define wxSND_SAMPLE_LE 0 -/// big endian -#define wxSND_SAMPLE_BE 1 -/// unsigned samples -#define wxSND_SAMPLE_UNSIGNED 0 -/// signed samples -#define wxSND_SAMPLE_SIGNED 1 - -/** @name wxSndBuffer - * @memo wxSndBuffer is the basic class for all the sound codec. - * @author Guilhem Lavaux - */ -class wxSndBuffer : public wxObject { - /// It is an abstract class - DECLARE_ABSTRACT_CLASS(wxSndBuffer) -protected: - wxMutex m_mutex; - /// output mode - wxSndMode m_sndmode; - /// last error - wxSndError m_snderror; - /// some flag - wxSndFlags m_sndflags; - /// last sound driver used - wxSound *m_sndoutput; - /// sound data format - wxSoundDataFormat m_sndformat; - /// current sound codec - wxSoundCodec *m_sndcodec; -public: - /** @name constructor and destructor */ - //@{ - /// Construct an uninitialized wxSndBuffer - wxSndBuffer(); - /// Destroy - virtual ~wxSndBuffer(); - //@} - - /** @name Functions returning the current state */ - //@{ - /// @return current mode - inline wxSndMode GetMode() const { return m_sndmode; } - /// @return sound data format - inline wxSoundDataFormat& GetFormat() { return m_sndformat; } - /// @return the size of the buffer - virtual wxUint32 GetSize() const = 0; - /// @return bytes left - virtual wxUint32 Available() const = 0; - - /** enable the specified flags - * @param flags - */ - void Set(wxSndFlags flags); - /** disable the specified flags - * @param flags - */ - inline void Clear(wxSndFlags flags) - { m_sndflags &= ~flags; } - /** Check if the specified flags is set - * @param flags - * @return TRUE if all flags is set - */ - inline bool IsSet(wxSndFlags flags) const - { return ((m_sndflags & flags) == flags); } - /** Check if the specified flags is not set - * @param flags - * @return TRUE if at least one flag is not set - */ - inline bool IsNotSet(wxSndFlags flags) const - { return ((m_sndflags & flags) != flags); } - /** Check if the buffer is currently being played - * @return TRUE - if the buffer is being played - */ - inline bool IsPlaying() const - { return IsSet(wxSND_BUFLOCKED); } - //@} - - /// - inline void SetOutput(wxSound& snd) - { m_sndoutput = &snd; } - /// - inline wxSoundCodec *GetCurrentCodec() const - { return m_sndcodec; } - /// - void HardLock(); - /// - void HardUnlock(); - - /// - wxSndError GetError(); - /// - void SetError(wxSndError err); - - /// - virtual bool Wait(); - /// - virtual bool RestartBuffer(wxSndMode mode) = 0; - /// - virtual bool Abort() { return TRUE; } - - /// - virtual void OnPlayFinished(); - - /** Data exchanging functions */ - //@{ - /// - virtual void OnNeedOutputData(char *io_buf, wxUint32& size) = 0; - /// - virtual void OnBufferOutFinished(); - /// - virtual void OnBufferInFinished(char *iobuf, wxUint32& size); - //@} - -protected: - void ChangeCodec(int no); -}; - -class wxSndSimpleBuffer : public wxSndBuffer { - DECLARE_DYNAMIC_CLASS(wxSndSimpleBuffer) -protected: - /// sound buffer - char *m_sndbuf; - /// size of the sound buffer - wxUint32 m_sndsize; - /// current position in the sound buffer - wxUint32 m_sndptr; -public: - wxSndSimpleBuffer(char *buffer = NULL, wxUint32 bufsize = 0, - wxSndMode mode = wxSND_OUTPUT); - virtual ~wxSndSimpleBuffer(); - - void SetData(char *buffer, wxUint32 bufsize, - wxSndMode mode = wxSND_OUTPUT); - inline void SetSoundFormat(const wxSoundDataFormat& format); - - void OnNeedOutputData(char *io_buf, wxUint32& size); - void OnNeedInputData(wxUint32& size); - - void OnBufferOutFinished(); - void OnBufferInFinished(char *iobuf, wxUint32& size); - - bool RestartBuffer(wxSndMode mode); - wxUint32 GetSize() const; - wxUint32 Available() const; -}; - -/// -class wxSound : public wxObject { - /// - DECLARE_ABSTRACT_CLASS(wxSound) -protected: - friend class wxFragmentBuffer; - - /// - wxSndBuffer *m_lastbuf; - /// - wxList m_buffers; - /// - wxSndCallback m_sndcbk; - /// - wxSndError m_snderror; - /// - char *m_cdata; -public: - /// - wxSound(); - /// - virtual ~wxSound(); - - /// - virtual bool QueueBuffer(wxSndBuffer& buf); - /// - virtual bool UnqueueBuffer(wxSndBuffer& buf); - /// - inline wxSndBuffer *LastBufferPlayed() - { return m_lastbuf; } - - /// - wxSndError GetError() { return m_snderror; } - - /// - void Callback(wxSndCallback cbk); - /// - void SetClientData(char *cdata); - /// - virtual void OnPlayBuffer(wxSndBuffer& buf); -protected: - /// - virtual bool Wakeup(wxSndBuffer& buf) = 0; - /// - virtual void StopBuffer(wxSndBuffer& buf) = 0; - - /// - virtual inline bool OnSetupDriver(wxSndBuffer& WXUNUSED(buf), - wxSndMode WXUNUSED(mode)) - { return TRUE; } -}; - -#endif diff --git a/utils/wxMMedia/snduss.cpp b/utils/wxMMedia/snduss.cpp deleted file mode 100644 index a0947d1504..0000000000 --- a/utils/wxMMedia/snduss.cpp +++ /dev/null @@ -1,302 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: snduss.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "snduss.h" -#endif - -#include -#include -#include -#include -#include - -#include "wx/app.h" -#include "wx/utils.h" - -#define WXMMEDIA_INTERNAL -#include "snduss.h" -#include "sndfrmt.h" - -wxUssSound::wxUssSound() - : wxSound(), - m_srate(0), m_bps(0), m_stereo(0), - m_mode(wxSND_OTHER_IO), - m_stop_thrd(TRUE), m_sleeping(FALSE) -{ - m_fd = -1; - m_ussformat.SetCodecNo(WXSOUND_PCM); - m_ussformat.SetSign(wxSND_SAMPLE_SIGNED); - m_ussformat.SetByteOrder(wxSND_SAMPLE_LE); - - m_sndbuf = new wxStreamBuffer(wxStreamBuffer::read_write); - m_sndbuf->Flushable(FALSE); - m_sndbuf->Fixed(TRUE); -} - -wxUssSound::~wxUssSound() -{ - if (!m_stop_thrd) { - m_stop_thrd = TRUE; - if (m_sleeping) { - m_sleep_mtx.Lock(); - m_sleep_cond.Signal(); - m_sleep_mtx.Unlock(); - } - while (IsAlive()) - Yield(); - } - - if (m_fd != -1) - close(m_fd); -} - -bool wxUssSound::Wakeup(wxSndBuffer& WXUNUSED(buf)) -{ - printf("Waking up (wxUssSound::Wakeup) ...\n"); - if (m_stop_thrd) { - m_stop_thrd = FALSE; - Entry(); -// wxThread::Create(); - } - - if (m_sleeping) { - m_sleep_mtx.Lock(); - m_sleep_cond.Signal(); - m_sleep_mtx.Unlock(); - } - - return TRUE; -} - -void wxUssSound::StopBuffer(wxSndBuffer& buf) -{ - buf.HardLock(); - buf.Set(wxSND_BUFSTOP); - buf.HardUnlock(); - while (buf.IsSet(wxSND_BUFSTOP)) - wxYield(); -// usleep(0); -} - -void wxUssSound::USS_Sleep() -{ - bool ret; - - printf("Asleeping ...\n"); - m_sleeping = TRUE; - m_sleep_mtx.Lock(); - ret = m_sleep_cond.Wait(m_sleep_mtx, 10, 0); - m_sleep_mtx.Unlock(); - m_sleeping = FALSE; - - printf("Waking up ...\n"); - if (!ret) - m_stop_thrd = TRUE; -} - -bool wxUssSound::DoInput(wxSndBuffer *buf) -{ - wxUint32 bufsize; - wxSoundCodec *codec = buf->GetCurrentCodec(); - - m_sndbuf->ResetBuffer(); - - bufsize = codec->Available(); - if (bufsize > m_max_bufsize) - bufsize = m_max_bufsize; - - if (!bufsize) { - buf->Clear(wxSND_BUFLOCKED | wxSND_BUFREADY); - return false; - } - read(m_fd, m_sndbuf->GetBufferStart(), bufsize); - codec->Encode(); - - return true; -} - -bool wxUssSound::DoOutput(wxSndBuffer *buf) -{ - wxSoundCodec *codec = buf->GetCurrentCodec(); - - m_sndbuf->ResetBuffer(); - - if (!codec->Available()) { - buf->Clear(wxSND_BUFLOCKED | wxSND_BUFREADY); - return FALSE; - } - codec->Decode(); - write(m_fd, m_sndbuf->GetBufferStart(), m_sndbuf->GetIntPosition()); - - // Well ... it's not accurate ! :-| - buf->OnBufferOutFinished(); - - return TRUE; -} - -bool wxUssSound::InitBuffer(wxSndBuffer *buf) -{ - wxSoundCodec *codec; - - if (!OnSetupDriver(*buf, buf->GetMode())) { - if (buf->IsNotSet(wxSND_BUFREADY)) - return FALSE; - } - - codec = buf->GetCurrentCodec(); - switch (m_mode) { - case wxSND_INPUT: - codec->SetInStream(m_sndbuf); - codec->InitIO(m_ussformat); - codec->InitMode(wxSoundCodec::ENCODING); - break; - case wxSND_OUTPUT: - codec->SetOutStream(m_sndbuf); - codec->InitIO(m_ussformat); - codec->InitMode(wxSoundCodec::DECODING); - break; - case wxSND_DUPLEX: - case wxSND_OTHER_IO: - break; - } - return TRUE; -} - -void *wxUssSound::Entry() -{ - wxNode *node; - wxSndBuffer *buf; - - node = m_buffers.First(); - if (!node) { - m_stop_thrd = FALSE; - return NULL; - } - - buf = (wxSndBuffer *)node->Data(); - InitBuffer(buf); - - while (!m_stop_thrd) { - buf->HardLock(); - if (buf->IsSet(wxSND_BUFSTOP)) { - buf->HardUnlock(); - goto sound_clean_buffer; - } - switch(m_mode) { - case wxSND_INPUT: - if (!DoInput(buf)) - goto sound_clean_buffer; - break; - case wxSND_OUTPUT: - if (!DoOutput(buf)) - goto sound_clean_buffer; - break; - case wxSND_DUPLEX: - case wxSND_OTHER_IO: - goto sound_clean_buffer; - break; - } - buf->HardUnlock(); - continue; - - sound_clean_buffer: - buf->GetCurrentCodec()->ExitMode(); - delete node; - node = m_buffers.First(); - if (!node) - USS_Sleep(); - if (node) - buf = (wxSndBuffer *)node->Data(); - } - return NULL; -} - -bool wxUssSound::OnSetupDriver(wxSndBuffer& buf, wxSndMode WXUNUSED(mode)) -{ - wxSoundDataFormat format; - wxSoundCodec *codec; - - codec = buf.GetCurrentCodec(); - format = codec->GetPreferredFormat(WXSOUND_PCM); - - if ((format.GetSampleRate() != m_srate) || - (format.GetBps() != m_bps) || - (format.GetStereo() != m_stereo)) { - - if (!SetupSound(format.GetSampleRate(), format.GetBps(), - format.GetStereo())) { - m_buffers.DeleteObject(&buf); - buf.Clear(wxSND_BUFLOCKED | wxSND_BUFREADY); - buf.SetError(wxSND_CANTSET); - return FALSE; - } - m_mode = wxSND_OTHER_IO; - } - - if (buf.GetMode() != m_mode) { - m_mode = buf.GetMode(); - return FALSE; - } - - return TRUE; -} - -wxUint32 wxUssSound::GetNbFragments() -{ - struct audio_buf_info frag_info; - - ioctl(m_fd, SNDCTL_DSP_GETOSPACE, &frag_info); - - return frag_info.fragstotal; -} - -wxUint32 wxUssSound::GetFragmentSize() -{ - return m_max_bufsize; -} - -bool wxUssSound::SetupSound(wxUint16 srate, wxUint8 bps, bool stereo) -{ - int tmp; - unsigned long tmp_ul; - - if (m_fd != -1) { - delete m_sndbuf; - fsync(m_fd); - close(m_fd); - } - - m_fd = open("/dev/dsp", O_RDWR); - - tmp = stereo; - if (ioctl(m_fd, SNDCTL_DSP_STEREO, &tmp) < 0) - return FALSE; - m_stereo = tmp; - - tmp_ul = srate; - if (ioctl(m_fd, SNDCTL_DSP_SPEED, &tmp_ul) < 0) - return FALSE; - m_srate = tmp_ul; - - tmp = bps; - if (ioctl(m_fd, SNDCTL_DSP_SAMPLESIZE, &tmp) < 0) - return FALSE; - m_bps = tmp; - - ioctl(m_fd, SNDCTL_DSP_GETBLKSIZE, &tmp); - m_max_bufsize = tmp; - m_sndbuf->SetBufferIO(m_max_bufsize); - - m_ussformat.SetBps(m_bps); - m_ussformat.SetChannels((m_stereo) ? 2 : 1); - m_ussformat.SetSampleRate(m_srate); - - return TRUE; -} diff --git a/utils/wxMMedia/snduss.h b/utils/wxMMedia/snduss.h deleted file mode 100644 index 10b9cb3945..0000000000 --- a/utils/wxMMedia/snduss.h +++ /dev/null @@ -1,86 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: snduss.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __SND_ussnd_H__ -#define __SND_ussnd_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include "sndsnd.h" -#include "sndfrag.h" -#include "sndfrmt.h" - -/// -class wxUssSound : public wxSound, public wxThread { - /// - DECLARE_DYNAMIC_CLASS(wxUssSound) -public: - wxUssSound(); - /// - virtual ~wxUssSound(); - - /// - void OnNeedBuffer(); -protected: - /// - virtual bool Wakeup(wxSndBuffer& buf); - /// - void USS_Sleep(); - /// - virtual void StopBuffer(wxSndBuffer& buf); - - /// - bool OnSetupDriver(wxSndBuffer& buf, wxSndMode mode); - - /// - bool SetupSound(wxUint16 srate, wxUint8 bps, bool stereo); - - /// - wxUint32 GetNbFragments(); - /// - wxUint32 GetFragmentSize(); - /// - void ThreadEntryPoint(); - -protected: - /// - wxUint16 m_srate; - /// - wxUint8 m_bps; - /// - wxUint32 m_max_bufsize; - /// - bool m_stereo; - /// - wxSndMode m_mode; - /// - wxSoundDataFormat m_ussformat; - /// - wxStreamBuffer *m_sndbuf; - /// - bool m_stop_thrd, m_sleeping; - /// Sound file descriptor. - int m_fd; - /// Thread sleep mutexes and conditions. - wxMutex m_sleep_mtx; - wxCondition m_sleep_cond; - - /// - bool InitBuffer(wxSndBuffer *buf); - bool DoInput(wxSndBuffer *buf); - bool DoOutput(wxSndBuffer *buf); - - /// - virtual void *Entry(); -}; - -#endif diff --git a/utils/wxMMedia/sndwav.cpp b/utils/wxMMedia/sndwav.cpp deleted file mode 100644 index 23857f15c1..0000000000 --- a/utils/wxMMedia/sndwav.cpp +++ /dev/null @@ -1,183 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndwav.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: February 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "sndwav.h" -#endif - -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include "sndwav.h" -#include "sndfrmt.h" -#include "sndpcm.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxSndWavCodec::wxSndWavCodec() - : wxSndFileCodec(), riff_codec() -{ - m_sndtime.hours = -1; -} - -wxSndWavCodec::wxSndWavCodec(wxOutputStream& s, bool seekable) - : wxSndFileCodec(s, seekable) -{ - if (!seekable) - CacheIO(); - riff_codec = wxRiffCodec(*m_ostream); - m_sndtime.hours = -1; -} - -wxSndWavCodec::wxSndWavCodec(wxInputStream& s, bool preload, bool seekable) - : wxSndFileCodec(s, preload, seekable) -{ - if (!seekable) - CacheIO(); - - riff_codec = wxRiffCodec(*m_istream); - m_sndtime.hours = -1; -} - -wxSndWavCodec::wxSndWavCodec(const wxString& fname) - : wxSndFileCodec(fname) -{ - riff_codec = wxRiffCodec(*m_istream); - m_sndtime.hours = -1; -} - -wxUint32 wxSndWavCodec::PrepareToPlay() -{ - if (!riff_codec.RiffReset(RIFF_READ)) - return 0; - - if (!riff_codec.FindChunk("RIFF", TRUE)) { - wxSndFileCodec::m_mmerror = wxMMFILE_INVALID; - return 0; - } - - char tmp_buf[5]; - riff_codec.ReadData(tmp_buf, 4); - tmp_buf[4] = 0; - if (wxString("WAVE") != tmp_buf) { - wxSndFileCodec::m_mmerror = wxMMFILE_INVALID; - return 0; - } - if (!riff_codec.FindChunk("fmt ", TRUE)) - return 0; - - riff_codec.Read16(wav_hdr.format); - riff_codec.Read16(wav_hdr.channels); - riff_codec.Read32(wav_hdr.sample_fq); - riff_codec.Read32(wav_hdr.byte_p_sec); - riff_codec.Read16(wav_hdr.byte_p_spl); - riff_codec.Read16(wav_hdr.bits_p_spl); - - if (!riff_codec.FindChunk("data")) - return 0; - - m_sndmode = wxSND_OUTPUT; - ChangeCodec(wav_hdr.format); - - m_sndformat.SetSampleRate(wav_hdr.sample_fq); - m_sndformat.SetBps(wav_hdr.bits_p_spl); - m_sndformat.SetChannels(wav_hdr.channels); - - if (wav_hdr.format == WXSOUND_PCM) { - m_sndformat.SetSign(wxSND_SAMPLE_SIGNED); - m_sndformat.SetByteOrder(wxSND_SAMPLE_LE); - } - - wxUint32 sec1 = riff_codec.GetChunkLength() / wav_hdr.byte_p_sec, - sec2 = sec1 % 3600; - - m_sndtime.hours = sec1 / 3600; - m_sndtime.minutes = sec2 / 60; - m_sndtime.seconds = sec2 % 60; - - wxSndFileCodec::m_mmerror = wxMMFILE_NOERROR; - wxSndFileCodec::m_fstate = wxSFILE_PREPARED_TO_PLAY; - - return riff_codec.GetChunkLength(); -} - -wxSndWavCodec::~wxSndWavCodec() -{ -} - -bool wxSndWavCodec::OnNeedData(char *buf, wxUint32 size) -{ - return riff_codec.ReadData(buf, size); -} - -bool wxSndWavCodec::OnWriteData(char *buf, wxUint32 size) -{ - return riff_codec.WriteData(buf, size); -} - -bool wxSndWavCodec::PrepareToRecord(wxUint32 m_fsize) -{ - wxUint32 total_size; - - if (!riff_codec.RiffReset(RIFF_WRITE)) - return FALSE; - - total_size = 16 + sizeof(wav_hdr) + m_fsize; - - if (!riff_codec.CreateChunk("RIFF", total_size)) - return FALSE; - riff_codec.WriteData("WAVE", 4); - if (!riff_codec.CreateChunk("fmt ", sizeof(wav_hdr))) - return FALSE; - - wav_hdr.format = m_sndformat.GetCodecNo(); // PCM_WAV_FORMAT - wav_hdr.channels = m_sndformat.GetChannels(); - wav_hdr.sample_fq = m_sndformat.GetSampleRate(); - wav_hdr.byte_p_spl = (m_sndformat.GetBps() / 8) * wav_hdr.channels; - wav_hdr.byte_p_sec = m_sndformat.GetCodec()->GetByteRate(); - wav_hdr.bits_p_spl = m_sndformat.GetBps(); - - if (wav_hdr.format == WXSOUND_PCM) { - m_sndformat.SetSign(wxSND_SAMPLE_SIGNED); - m_sndformat.SetByteOrder(wxSND_SAMPLE_LE); - } - - riff_codec.Write16(wav_hdr.format); - riff_codec.Write16(wav_hdr.channels); - riff_codec.Write32(wav_hdr.sample_fq); - riff_codec.Write32(wav_hdr.byte_p_sec); - riff_codec.Write16(wav_hdr.byte_p_spl); - riff_codec.Write16(wav_hdr.bits_p_spl); - - if (!riff_codec.CreateChunk("data", m_fsize)) - return FALSE; - return TRUE; -} - -void wxSndWavCodec::SetFile(wxInputStream& s, bool preload, bool seekable) -{ - wxMMediaFile::SetFile(s, preload, seekable); - if (!seekable) - CacheIO(); - - riff_codec.SetFile((seekable) ? s : *m_istream); -} - -void wxSndWavCodec::SetFile(wxOutputStream& s, bool seekable) -{ - wxMMediaFile::SetFile(s, seekable); - if (!seekable) - CacheIO(); - - riff_codec.SetFile((seekable) ? s : *m_ostream); -} diff --git a/utils/wxMMedia/sndwav.h b/utils/wxMMedia/sndwav.h deleted file mode 100644 index b442e34be1..0000000000 --- a/utils/wxMMedia/sndwav.h +++ /dev/null @@ -1,59 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndwav.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: February 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __SND_wav_H__ -#define __SND_wav_H__ -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmriff.h" -#include "sndfile.h" - -/// -class wxSndWavCodec : public wxSndFileCodec { - /// - DECLARE_DYNAMIC_CLASS(wxSndWavCodec) -public: - /// - wxSndWavCodec(); - /// - wxSndWavCodec(wxInputStream& s, bool preload = FALSE, bool seekable = TRUE); - /// - wxSndWavCodec(wxOutputStream& s, bool seekable = TRUE); - /// - wxSndWavCodec(const wxString& fname); - /// - virtual ~wxSndWavCodec(); - - virtual bool OnNeedData(char *buf, wxUint32 size); - virtual bool OnWriteData(char *buf, wxUint32 size); - - virtual wxUint32 PrepareToPlay(); - virtual bool PrepareToRecord(wxUint32 file_size); - - virtual void SetFile(wxInputStream& s, bool preload = FALSE, - bool seekable = FALSE); - virtual void SetFile(wxOutputStream& s, - bool seekable = FALSE); - -protected: - wxRiffCodec riff_codec; - struct { - wxUint16 format; - wxUint16 channels; - wxUint32 sample_fq; - wxUint32 byte_p_sec; - wxUint16 byte_p_spl; - wxUint16 bits_p_spl; - } wav_hdr; -}; - -#endif diff --git a/utils/wxMMedia/sndwin.cpp b/utils/wxMMedia/sndwin.cpp deleted file mode 100644 index 417ce57063..0000000000 --- a/utils/wxMMedia/sndwin.cpp +++ /dev/null @@ -1,384 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: sndwin.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include - -#define WXMMEDIA_INTERNAL -#include "sndwin.h" - -#define MMD_WIN_IO_BSIZE 16384 - -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxSndWinFragment::wxSndWinFragment(wxSound& io_drv) - : wxFragmentBuffer(io_drv) -{ -} - -wxSndWinFragment::~wxSndWinFragment(void) -{ -} - -void wxSndWinFragment::AllocIOBuffer(void) -{ - wxWinSound *w_snd = (wxWinSound *) m_iodrv; - wxUint8 i; - - m_maxoq = 5; - m_maxiq = 5; - - m_lstoptrs = new wxFragBufPtr[m_maxoq]; - m_lstiptrs = new wxFragBufPtr[m_maxiq]; - - for (i=0;iPrepareHeader(m_lstoptrs[i], wxSND_OUTPUT); - } - - for (i=0;iPrepareHeader(m_lstiptrs[i], wxSND_INPUT); - } -} - -void wxSndWinFragment::FreeIOBuffer(void) -{ - wxWinSound *w_snd = (wxWinSound *)m_iodrv; - wxUint8 i; - - if (!m_lstoptrs && !m_lstiptrs) - return; - - for (i=0;iUnprepareHeader(m_lstoptrs[i], wxSND_OUTPUT); - delete m_lstoptrs[i].buffers; - } - - for (i=0;iUnprepareHeader(m_lstiptrs[i], wxSND_INPUT); - delete m_lstiptrs[i].buffers; - } - - delete[] m_lstoptrs; - delete[] m_lstiptrs; - - m_lstoptrs = m_lstiptrs = NULL; - m_maxoq = m_maxiq = 0; -} - -void wxSndWinFragment::WaitForAll() -{ - bool buf_busy = TRUE; - int i; - - m_dontq = TRUE; - - while (buf_busy) { - buf_busy = FALSE; - - for (i=0;iuser_data; - wxWinSound *w_snd = (wxWinSound *)m_iodrv; - MMRESULT result; - - switch (mode) { - case wxSND_INPUT: - result = waveInAddBuffer(w_snd->internal->devin_id, info->hdr, - sizeof(WAVEHDR)); - break; - case wxSND_OUTPUT: - result = waveOutWrite(w_snd->internal->devout_id, info->hdr, - sizeof(WAVEHDR)); - printf("WINOUT: result=%d\n", result); - break; - } - return TRUE; -} - -wxWinSound::wxWinSound(void) - : wxSound(), - fragments(*this) -{ - internal = new wxWinSoundInternal; - internal->devout_id = 0; - internal->devin_id = 0; - internal->sndWin = 0; - - wout_opened = FALSE; - win_opened = FALSE; - curr_o_srate = (wxUint32)-1; - curr_o_bps = (wxUint8)-1; - curr_o_stereo = (bool)-1; - curr_i_srate = (wxUint32)-1; - curr_i_bps = (wxUint8)-1; - curr_i_stereo = (bool)-1; -} - -wxWinSound::~wxWinSound(void) -{ - int i; - - fragments.WaitForAll(); - - if (wout_opened) - waveOutReset(internal->devout_id); - if (win_opened) - waveInReset(internal->devout_id); - - fragments.FreeIOBuffer(); - - if (wout_opened) - waveOutClose(internal->devout_id); - if (win_opened) - waveInClose(internal->devin_id); - - if (internal->sndWin) - ::DestroyWindow(internal->sndWin); - - delete internal; -} - -bool wxWinSound::Wakeup(wxSndBuffer& buf) -{ - if (!Reopen(buf, FALSE)) { - buf.Clear(wxSND_BUFLOCKED); - return FALSE; - } - - fragments.OnBufferFinished(NULL); - return TRUE; -} - -void wxWinSound::PrepareHeader(wxFragmentBuffer::wxFragBufPtr& frag, - wxSndMode mode) -{ - wxSndWinInfo *info; - WAVEHDR *hdr; - - if ((mode == wxSND_INPUT && !win_opened) || - (mode == wxSND_OUTPUT && !wout_opened)) - return; - - info = new wxSndWinInfo; - - info->h_data = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, MMD_WIN_IO_BSIZE); - info->h_hdr = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE, sizeof(WAVEHDR)); - - info->data = (char *)GlobalLock(info->h_data); - hdr = info->hdr = (WAVEHDR *)GlobalLock(info->h_hdr); - - memset(hdr, 0, sizeof(*hdr)); - hdr->lpData = info->data; - hdr->dwBufferLength = frag.size; - hdr->dwUser = (DWORD)&frag; - hdr->dwFlags = WHDR_DONE; - - if (mode == wxSND_INPUT) { - MMRESULT result = waveInPrepareHeader(internal->devin_id, hdr, - sizeof(WAVEHDR)); - - if (result != MMSYSERR_NOERROR) - wxExit(); - } else { - MMRESULT result = waveOutPrepareHeader(internal->devout_id, hdr, - sizeof(WAVEHDR)); - if (result != MMSYSERR_NOERROR) - wxExit(); - } - - frag.sndbuf = new wxStreamBuffer(); - frag.sndbuf->SetBufferIO(info->data, info->data + MMD_WIN_IO_BSIZE); - frag.user_data = (char *)info; -} - -void wxWinSound::UnprepareHeader(wxFragmentBuffer::wxFragBufPtr& frag, - wxSndMode mode) -{ - wxSndWinInfo *info = (wxSndWinInfo *)frag.user_data; - - if ((mode == wxSND_INPUT && !win_opened) || - (mode == wxSND_OUTPUT && !wout_opened)) - return; - - MMRESULT result; - - if (mode == wxSND_INPUT) { - result = waveInUnprepareHeader(internal->devin_id, info->hdr, sizeof(*info->hdr)); - } else { - result = waveOutUnprepareHeader(internal->devout_id, info->hdr, sizeof(*info->hdr)); - } - - delete frag.sndbuf; - - printf("unprepare = %d\n", result); - - GlobalUnlock(info->h_hdr); - GlobalUnlock(info->h_data); - - GlobalFree(info->h_hdr); - GlobalFree(info->h_data); - - delete info; -} - -extern char wxCanvasClassName[]; - -LRESULT APIENTRY _EXPORT wxSoundHandlerWndProc(HWND hWnd, UINT message, - WPARAM wParam, LPARAM lParam) -{ - switch (message) { - case MM_WOM_DONE: { - wxWinSound *snd_drv = (wxWinSound *)GetWindowLong(hWnd, GWL_USERDATA); - WAVEHDR *hdr = (WAVEHDR *)lParam; - wxFragmentBuffer::wxFragBufPtr *buf = - (wxFragmentBuffer::wxFragBufPtr *)hdr->dwUser; - - // To be sure ... - hdr->dwFlags |= WHDR_DONE; - - snd_drv->fragments.OnBufferFinished(buf); - break; - } - case MM_WOM_OPEN: - printf("wave Open ack\n"); - break; - case MM_WOM_CLOSE: - printf("wave Close ack\n"); - break; - default: - // TODO: Useful ? - return DefWindowProc(hWnd, message, wParam, lParam); - } - return (LRESULT)0; -} - -void wxWinSound::StopBuffer(wxSndBuffer& buf) -{ - buf.HardLock(); - buf.Set(wxSND_BUFSTOP); - fragments.AbortBuffer(buf); - buf.HardUnlock(); - - while (buf.IsSet(wxSND_BUFSTOP)) - wxYield(); -} - -bool wxWinSound::Reopen(wxSndBuffer& buf, bool force) -{ - WAVEFORMATEX wformat; - - if ((buf.GetSampleRate() != curr_o_srate) || - (buf.GetBps() != curr_o_bps) || - (buf.GetStereo() != curr_o_stereo) || - (buf.GetMode() != curr_mode)) - force = TRUE; - - if (force) { - wxUint32 *curr_srate = - (buf.GetMode() == wxSND_OUTPUT) ? &curr_o_srate : &curr_i_srate; - wxUint8 *curr_bps = - (buf.GetMode() == wxSND_OUTPUT) ? &curr_o_bps : &curr_i_bps; - bool *curr_stereo = - (buf.GetMode() == wxSND_OUTPUT) ? &curr_o_stereo : &curr_i_stereo; - - fragments.WaitForAll(); - fragments.FreeIOBuffer(); - - if (!internal->sndWin) { - FARPROC proc = MakeProcInstance((FARPROC)wxSoundHandlerWndProc, wxGetInstance()); - - internal->sndWin = ::CreateWindow(wxCanvasClassName, NULL, 0, - 0, 0, 0, 0, NULL, (HMENU) NULL, - wxGetInstance(), 0); - - ::SetWindowLong(internal->sndWin, GWL_WNDPROC, - (LONG)proc); - ::SetWindowLong(internal->sndWin, GWL_USERDATA, (LONG) this); - } - - if (wout_opened) { - waveOutClose(internal->devout_id); - wout_opened = FALSE; - } - if (win_opened) { - waveInClose(internal->devin_id); - win_opened = FALSE; - } - - *curr_srate = buf.GetSampleRate(); - *curr_bps = buf.GetBps(); - *curr_stereo = buf.GetStereo(); - wformat.wFormatTag = WAVE_FORMAT_PCM; - wformat.nChannels = curr_o_stereo+1; - - wformat.nSamplesPerSec = curr_o_srate; - wformat.nBlockAlign = curr_o_bps / 8 * wformat.nChannels; - wformat.nAvgBytesPerSec = - wformat.nSamplesPerSec * wformat.nBlockAlign; - wformat.wBitsPerSample = curr_o_bps; - wformat.cbSize = 0; - - if (buf.GetMode() == wxSND_OUTPUT) { - MMRESULT result = waveOutOpen(&internal->devout_id, - WAVE_MAPPER, &wformat, - (DWORD)internal->sndWin, (DWORD)this, - CALLBACK_WINDOW); - if (result != MMSYSERR_NOERROR) - return FALSE; - internal->devin_id = 0; - wout_opened = TRUE; - curr_mode = wxSND_OUTPUT; - - fragments.AllocIOBuffer(); - } - else { - MMRESULT result = waveInOpen(&internal->devin_id, - WAVE_MAPPER, &wformat, - (DWORD)internal->sndWin, (DWORD)this, - CALLBACK_FUNCTION); - if (result != MMSYSERR_NOERROR) - return FALSE; - internal->devout_id = 0; - win_opened = TRUE; - curr_mode = wxSND_INPUT; - - fragments.AllocIOBuffer(); - } - } - return TRUE; -} diff --git a/utils/wxMMedia/sndwin.h b/utils/wxMMedia/sndwin.h deleted file mode 100644 index 5ac3eb07a9..0000000000 --- a/utils/wxMMedia/sndwin.h +++ /dev/null @@ -1,108 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: sndwin.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __SND_win_H__ -#define __SND_win_H__ - -#include "sndsnd.h" -#include "sndfrag.h" - -#ifdef WXMMEDIA_INTERNAL -#include -#include -#include - -typedef struct wxWinSoundInternal { - HWAVEOUT devout_id; - HWAVEIN devin_id; - HWND sndWin; -} wxWinSoundInternal; - -typedef struct wxSndWinInfo { - HGLOBAL h_data, h_hdr; - - char *data; - WAVEHDR *hdr; -} wxSndWinInfo; - -#endif - -/** Sound buffer fragmenter: windows specific implementation - * @author Guilhem Lavaux - */ -class wxSndWinFragment : public wxFragmentBuffer { -public: - wxSndWinFragment(wxSound& io_drv); - virtual ~wxSndWinFragment(void); - - virtual void AllocIOBuffer(void); - virtual void FreeIOBuffer(void); - - virtual bool OnBufferFilled(wxFragBufPtr *ptr, wxSndMode mode); - - void WaitForAll(); -}; - -/// -class wxWinSound : public wxSound { - /// - DECLARE_DYNAMIC_CLASS(wxWinSound) -protected: - struct wxWinSoundInternal *internal; - - /// - bool wout_opened, win_opened; - /// - wxUint32 curr_o_srate, curr_i_srate; - /// - wxUint8 curr_o_bps, curr_i_bps; - /// - bool curr_o_stereo, curr_i_stereo; - /// - wxSndMode curr_mode; - - /// - wxSndWinFragment fragments; - -#ifdef WXMMEDIA_INTERNAL - /// - friend LRESULT APIENTRY _EXPORT wxSoundHandlerWndProc(HWND win, - UINT message, - WPARAM wParam, LPARAM lParam); - -#endif - -public: - /// - wxWinSound(void); - /// - virtual ~wxWinSound(void); - - /// - void OnNeedBuffer(wxSndMode mode); - /// - void StopBuffer(wxSndBuffer& buf); -protected: - /// - virtual bool Wakeup(wxSndBuffer& buf); - - /// - bool Reopen(wxSndBuffer& buf, bool force); - - /// - friend class wxSndWinFragment; - - /// - void PrepareHeader(wxFragmentBuffer::wxFragBufPtr& frag, wxSndMode mode); - /// - void UnprepareHeader(wxFragmentBuffer::wxFragBufPtr& frag, wxSndMode mode); -}; - -#endif diff --git a/utils/wxMMedia/ulaw.h b/utils/wxMMedia/ulaw.h deleted file mode 100644 index 0ff8c0a3bd..0000000000 --- a/utils/wxMMedia/ulaw.h +++ /dev/null @@ -1,69 +0,0 @@ -static unsigned char ulaw_dsp[] = { - 3, 7, 11, 15, 19, 23, 27, 31, - 35, 39, 43, 47, 51, 55, 59, 63, - 66, 68, 70, 72, 74, 76, 78, 80, - 82, 84, 86, 88, 90, 92, 94, 96, - 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, - 113, 114, 114, 115, 115, 116, 116, 117, - 117, 118, 118, 119, 119, 120, 120, 121, - 121, 121, 122, 122, 122, 122, 123, 123, - 123, 123, 124, 124, 124, 124, 125, 125, - 125, 125, 125, 125, 126, 126, 126, 126, - 126, 126, 126, 126, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 253, 249, 245, 241, 237, 233, 229, 225, - 221, 217, 213, 209, 205, 201, 197, 193, - 190, 188, 186, 184, 182, 180, 178, 176, - 174, 172, 170, 168, 166, 164, 162, 160, - 158, 157, 156, 155, 154, 153, 152, 151, - 150, 149, 148, 147, 146, 145, 144, 143, - 143, 142, 142, 141, 141, 140, 140, 139, - 139, 138, 138, 137, 137, 136, 136, 135, - 135, 135, 134, 134, 134, 134, 133, 133, - 133, 133, 132, 132, 132, 132, 131, 131, - 131, 131, 131, 131, 130, 130, 130, 130, - 130, 130, 130, 130, 129, 129, 129, 129, - 129, 129, 129, 129, 129, 129, 129, 129, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, -}; - -static unsigned char dsp_ulaw[] = { - 0, 0, 0, 0, 0, 1, 1, 1, - 1, 2, 2, 2, 2, 3, 3, 3, - 3, 4, 4, 4, 4, 5, 5, 5, - 5, 6, 6, 6, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, - 9, 10, 10, 10, 10, 11, 11, 11, - 11, 12, 12, 12, 12, 13, 13, 13, - 13, 14, 14, 14, 14, 15, 15, 15, - 15, 16, 16, 17, 17, 18, 18, 19, - 19, 20, 20, 21, 21, 22, 22, 23, - 23, 24, 24, 25, 25, 26, 26, 27, - 27, 28, 28, 29, 29, 30, 30, 31, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 49, 51, 53, 55, 57, 59, 61, - 63, 66, 70, 74, 78, 84, 92, 104, - 254, 231, 219, 211, 205, 201, 197, 193, - 190, 188, 186, 184, 182, 180, 178, 176, - 175, 174, 173, 172, 171, 170, 169, 168, - 167, 166, 165, 164, 163, 162, 161, 160, - 159, 159, 158, 158, 157, 157, 156, 156, - 155, 155, 154, 154, 153, 153, 152, 152, - 151, 151, 150, 150, 149, 149, 148, 148, - 147, 147, 146, 146, 145, 145, 144, 144, - 143, 143, 143, 143, 142, 142, 142, 142, - 141, 141, 141, 141, 140, 140, 140, 140, - 139, 139, 139, 139, 138, 138, 138, 138, - 137, 137, 137, 137, 136, 136, 136, 136, - 135, 135, 135, 135, 134, 134, 134, 134, - 133, 133, 133, 133, 132, 132, 132, 132, - 131, 131, 131, 131, 130, 130, 130, 130, - 129, 129, 129, 129, 128, 128, 128, 128, -}; diff --git a/utils/wxMMedia/vidbase.cpp b/utils/wxMMedia/vidbase.cpp deleted file mode 100644 index ec0eab5aa8..0000000000 --- a/utils/wxMMedia/vidbase.cpp +++ /dev/null @@ -1,87 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: vidbdrv.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "vidbase.h" -#endif -#include -#include "vidbase.h" -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxVideoOutput::wxVideoOutput() - : wxWindow() -{ - dyn_size = TRUE; -} - -wxVideoOutput::wxVideoOutput(wxWindow *parent, const wxWindowID id, const wxPoint& position, - const wxSize& size, const long style, - const wxString& name) - : wxWindow(parent, id, position, size, style, name) -{ - dyn_size = TRUE; -} - -/// -wxVideoOutput::~wxVideoOutput() -{ -} - -wxVideoBaseDriver::wxVideoBaseDriver() - : wxMMediaFile() -{ -} - -wxVideoBaseDriver::wxVideoBaseDriver(wxInputStream& str, bool seekable) - : wxMMediaFile(str, FALSE, seekable) -{ -} - -wxVideoBaseDriver::wxVideoBaseDriver(const wxString& fname) - : wxMMediaFile(fname) -{ -} - -wxVideoBaseDriver::~wxVideoBaseDriver() -{ -} - -bool wxVideoBaseDriver::AttachOutput(wxVideoOutput& output) -{ - video_output = &output; - return TRUE; -} - -void wxVideoBaseDriver::DetachOutput() -{ - video_output = NULL; -} - -// Use an external frame for video output - -wxFrame *wxVideoCreateFrame(wxVideoBaseDriver *vid_drv) -{ - wxFrame *frame = new wxFrame(NULL, -1, "Video Output", wxDefaultPosition, wxSize(100, 100)); - wxVideoOutput *vid_out = new wxVideoOutput(frame, -1); - - vid_out->DynamicSize(TRUE); - vid_drv->AttachOutput(*vid_out); - frame->Layout(); - frame->Show(TRUE); - - return frame; -} diff --git a/utils/wxMMedia/vidbase.h b/utils/wxMMedia/vidbase.h deleted file mode 100644 index 9e766f5500..0000000000 --- a/utils/wxMMedia/vidbase.h +++ /dev/null @@ -1,106 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: vidbase.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// CVS: $Id$ -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __VID_bdrv_H__ -#define __VID_bdrv_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmtype.h" -#include "mmfile.h" -#include "wx/string.h" -#include "wx/window.h" -#include "wx/frame.h" - -/// -typedef enum { - wxVIDEO_MSAVI, - wxVIDEO_MPEG, - wxVIDEO_QT, - wxVIDEO_GIF, - wxVIDEO_JMOV, - wxVIDEO_FLI, - wxVIDEO_IFF, - wxVIDEO_SGI, - wxVIDEO_MPEG2 -} /// - wxVideoType; - -/// -class wxVideoBaseDriver; -class wxVideoOutput : public wxWindow { - /// - DECLARE_DYNAMIC_CLASS(wxVideoOutput) -protected: - bool dyn_size; -public: - /// - wxVideoOutput(); - /// - wxVideoOutput(wxWindow *parent, const wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, const long style = 0, - const wxString& name = "video_output"); - /// - virtual ~wxVideoOutput(); - - /// - bool DynamicSize() { return dyn_size; } - /// - void DynamicSize(bool dyn) { dyn_size = dyn; } -}; - -/// -class wxVideoBaseDriver : public wxObject, public wxMMediaFile { - /// - DECLARE_ABSTRACT_CLASS(wxVideoBaseDriver) -protected: - wxVideoOutput *video_output; -public: - friend class wxVideoOutput; - - /// - wxVideoBaseDriver(); - /// - wxVideoBaseDriver(wxInputStream& str, bool seekable = FALSE); - /// - wxVideoBaseDriver(const wxString& fname); - /// - virtual ~wxVideoBaseDriver(); - - /// - virtual bool Pause() = 0; - /// - virtual bool Resume() = 0; - - /// - virtual bool SetVolume(wxUint8 vol) = 0; - /// - virtual bool Resize(wxUint16 w, wxUint16 h) = 0; - - /// - virtual bool IsCapable(wxVideoType WXUNUSED(v_type)) { return FALSE; } - - /// - virtual void OnFinished() {} - - /// - virtual bool AttachOutput(wxVideoOutput& output); - /// - virtual void DetachOutput(); -}; - -extern wxFrame *wxVideoCreateFrame(wxVideoBaseDriver *vid_drv); - - -#endif diff --git a/utils/wxMMedia/vidwin.cpp b/utils/wxMMedia/vidwin.cpp deleted file mode 100644 index a8e83b2dec..0000000000 --- a/utils/wxMMedia/vidwin.cpp +++ /dev/null @@ -1,131 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: vidwin.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: February 1998 -// Updated: -// Copyright: (C) 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "vidwin.h" -#endif - -#if 0 -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif - -#define WXMMEDIA_INTERNAL -#include -#include -#include -#include "mmtype.h" -#include "mmfile.h" -#include "vidwin.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -wxVideoWindows::wxVideoWindows(void) -{ -} - -wxVideoWindows::wxVideoWindows(wxInputStream& str, bool seekable) - : wxVideoBaseDriver(str, seekable) -{ - OpenFile(GetCurrentFile()); -} - -wxVideoWindows::wxVideoWindows(const char *fname) - : wxVideoBaseDriver(fname) -{ - OpenFile(fname); -} - -wxVideoWindows::~wxVideoWindows(void) -{ - mciSendCommand(internal->dev_id, MCI_CLOSE, 0, 0); - - if (internal) - delete internal; -} - -void wxVideoWindows::OpenFile(const char *fname) -{ - MCI_DGV_OPEN_PARMS open_struct; - DWORD ret; - - internal = new VIDW_Internal; - - open_struct.lpstrDeviceType = "avivideo"; - open_struct.lpstrElementName = (LPSTR)fname; - open_struct.hWndParent = 0; - - ret = mciSendCommand(0, MCI_OPEN, - MCI_OPEN_ELEMENT|MCI_DGV_OPEN_PARENT|MCI_OPEN_TYPE|MCI_DGV_OPEN_32BIT, - (DWORD)(LPVOID)&open_struct); - internal->dev_id = open_struct.wDeviceID; -} - -bool wxVideoWindows::Pause(void) -{ - return (mciSendCommand(internal->dev_id, MCI_PAUSE, 0, 0) == 0); -} - -bool wxVideoWindows::Resume(void) -{ - return (mciSendCommand(internal->dev_id, MCI_PAUSE, 0, 0) == 0); -} - -bool wxVideoWindows::SetVolume(wxUint8 vol) -{ - return TRUE; -} - -bool wxVideoWindows::Resize(wxUint16 w, wxUint16 h) -{ - return TRUE; -} - -bool wxVideoWindows::IsCapable(wxVideoType v_type) -{ - return (v_type == wxVIDEO_MSAVI); -} - -bool wxVideoWindows::AttachOutput(wxVideoOutput& output) -{ - MCI_DGV_WINDOW_PARMS win_struct; - - if (!wxVideoBaseDriver::AttachOutput(output)) - return FALSE; - - win_struct.hWnd = (HWND)output.GetHWND(); - mciSendCommand(internal->dev_id, MCI_WINDOW, - MCI_DGV_WINDOW_HWND, (DWORD)(LPVOID)&win_struct); - return TRUE; -} - -void wxVideoWindows::DetachOutput(void) -{ - MCI_DGV_WINDOW_PARMS win_struct; - - wxVideoBaseDriver::DetachOutput(); - - win_struct.hWnd = 0; - mciSendCommand(internal->dev_id, MCI_WINDOW, - MCI_DGV_WINDOW_HWND, (DWORD)(LPVOID)&win_struct); -} - -bool wxVideoWindows::StartPlay(void) -{ - return (mciSendCommand(internal->dev_id, MCI_PLAY, 0, NULL) == 0); -} - -void wxVideoWindows::StopPlay(void) -{ - mciSendCommand(internal->dev_id, MCI_STOP, 0, NULL); -} diff --git a/utils/wxMMedia/vidwin.h b/utils/wxMMedia/vidwin.h deleted file mode 100644 index 784d72a2c0..0000000000 --- a/utils/wxMMedia/vidwin.h +++ /dev/null @@ -1,62 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: vidwin.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: February 1998 -// Updated: -// Copyright: (C) 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __VID_windows_H__ -#define __VID_windows_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include "mmtype.h" -#include "mmfile.h" -#ifdef WX_PRECOMP -#include "wx/wxprec.h" -#else -#include "wx/wx.h" -#endif -#include "vidbase.h" - -#ifdef WXMMEDIA_INTERNAL -#include -#include - -typedef struct VIDW_Internal { - MCIDEVICEID dev_id; -} VIDW_Internal; -#endif - -class wxVideoWindows : public wxVideoBaseDriver { - DECLARE_DYNAMIC_CLASS(wxVideoWindows) -protected: - struct VIDW_Internal *internal; - - void OpenFile(const char *fname); -public: - wxVideoWindows(void); - wxVideoWindows(wxInputStream& str, bool seekable = FALSE); - wxVideoWindows(const char *fname); - virtual ~wxVideoWindows(void); - - virtual bool StartPlay(void); - virtual void StopPlay(void); - virtual bool Pause(void); - virtual bool Resume(void); - - virtual bool SetVolume(wxUint8 vol); - virtual bool Resize(wxUint16 w, wxUint16 h); - - virtual bool IsCapable(wxVideoType v_type); - - virtual bool AttachOutput(wxVideoOutput& output); - virtual void DetachOutput(void); -}; - -#endif diff --git a/utils/wxMMedia/vidxanm.cpp b/utils/wxMMedia/vidxanm.cpp deleted file mode 100644 index 54c3c2e7e7..0000000000 --- a/utils/wxMMedia/vidxanm.cpp +++ /dev/null @@ -1,232 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// Name: vidxanm.cpp -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -//////////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "vidxanm.h" -#endif -#define WXMMEDIA_INTERNAL -#ifdef __XT__ -#define Uses_XLib -#define Uses_XtIntrinsic -#endif -#include "vidbase.h" -#include "vidxanm.h" -#ifdef WX_PRECOMP -#include "wx_prec.h" -#else -#include "wx/wx.h" -#endif -#include -#include -#ifdef __WXGTK__ -#include -#include -#include -#endif - -wxVideoXANIM::wxVideoXANIM() - : wxVideoBaseDriver() -{ - internal = new wxXANIMinternal; - xanim_started = false; - paused = false; -} - -wxVideoXANIM::wxVideoXANIM(wxInputStream& str) - : wxVideoBaseDriver(str, false) -{ - internal = new wxXANIMinternal; - xanim_started = false; - paused = false; -} - -wxVideoXANIM::wxVideoXANIM(const wxString& fname) - : wxVideoBaseDriver(fname) -{ - internal = new wxXANIMinternal; - xanim_started = false; -} - -wxVideoXANIM::~wxVideoXANIM() -{ - if (xanim_started) - StopPlay(); - delete internal; -} - -bool wxVideoXANIM::StartPlay() -{ - if (!paused && xanim_started) - return true; - if (!video_output) - wxVideoCreateFrame(this); - - if (SendCommand(" ")) { - paused = false; - return true; - } - return false; -} - -bool wxVideoXANIM::Pause() -{ - if (!paused && SendCommand(" ")) { - paused = TRUE; - return TRUE; - } - return FALSE; -} - -bool wxVideoXANIM::Resume() -{ - if (paused && SendCommand(" ")) { - paused = FALSE; - return TRUE; - } - return FALSE; -} - -void wxVideoXANIM::StopPlay() -{ - if (!xanim_started) - return; - - SendCommand("q"); - - xanim_started = FALSE; - paused = FALSE; -} - -bool wxVideoXANIM::SetVolume(wxUint8 vol) -{ - if (vol > 100) - vol = 100; - - wxString str_vol("v%d", vol); - return SendCommand(str_vol.GetData()); -} - -bool wxVideoXANIM::Resize(wxUint16 WXUNUSED(w), wxUint16 WXUNUSED(h)) -{ - // Not implemented - // Actually, I think that we just need to resize the output window ... - return FALSE; -} - -bool wxVideoXANIM::IsCapable(wxVideoType v_type) -{ - if (v_type == wxVIDEO_MSAVI || v_type == wxVIDEO_MPEG || - v_type == wxVIDEO_QT || v_type == wxVIDEO_GIF || v_type == wxVIDEO_JMOV || - v_type == wxVIDEO_FLI || v_type == wxVIDEO_IFF || v_type == wxVIDEO_SGI) - return true; - else - return false; -} - -bool wxVideoXANIM::AttachOutput(wxVideoOutput& out) -{ - if (!wxVideoBaseDriver::AttachOutput(out)) - return false; - - return RestartXANIM(); -} - -void wxVideoXANIM::DetachOutput() -{ - SendCommand("q"); - xanim_started = false; - paused = false; - - wxVideoBaseDriver::DetachOutput(); -} - -bool wxVideoXANIM::SendCommand(const char *command, char **ret, - wxUint32 *size) -{ - if (!xanim_started) - if (!RestartXANIM()) - return false; - - // Send a command to XAnim through X11 Property - XChangeProperty(internal->xanim_dpy, internal->xanim_window, - internal->xanim_atom, - XA_STRING, 8, PropModeReplace, (unsigned char *)command, - strlen(command)); - XFlush(internal->xanim_dpy); - if (ret) { - int prop_format; - Atom prop_type; - unsigned long extra; - - XGetWindowProperty(internal->xanim_dpy, internal->xanim_window, - internal->xanim_ret, 0, 16, True, AnyPropertyType, - &prop_type, &prop_format, (unsigned long *)size, - &extra, (unsigned char **)ret); - } - return true; -} - -bool wxVideoXANIM::RestartXANIM() -{ - wxString xanim_command; - int ret; - Atom prop_type; - int prop_format; - unsigned long nitems; - unsigned long extra; - char prop[4]; - bool xanim_chg_size; - - if (!video_output || xanim_started || !GetCurrentFile()) - return false; - - // Check if we can change the size of the window dynamicly - xanim_chg_size = video_output->DynamicSize(); - // Get current display -#ifdef __XT__ - internal->xanim_dpy = wxAPP_DISPLAY; -#endif -#ifdef __WXGTK__ - internal->xanim_dpy = gdk_display; -#endif - // Get the window id -#ifdef __XT__ - internal->xanim_window = XtWindow(video_output->FWidget()); -#else - internal->xanim_window = - ((GdkWindowPrivate *)video_output->m_widget->window)->xwindow; -#endif - // Get the XANIM atom - internal->xanim_atom = XInternAtom(internal->xanim_dpy, - "XANIM_PROPERTY", False); - - // Build the command - xanim_command.sprintf(__XANIM_COMMAND__ " +W%d +Wp +f +B -Zr +q +Zpe +Ae " - "+Av70 %s %s", internal->xanim_window, - (xanim_chg_size == true) ? "+Sr" : "", - (const char *)GetCurrentFile()); - // Execute it - if (!wxExecute(xanim_command, false)) - return false; - - // Wait for XAnim to be ready - nitems = 0; - while (nitems == 0) { - ret = XGetWindowProperty(internal->xanim_dpy, internal->xanim_window, - internal->xanim_atom, - 0, 4, False, AnyPropertyType, &prop_type, - &prop_format, &nitems, &extra, - (unsigned char **)&prop); -// wxYield(); - } - - xanim_started = true; - - return true; -} diff --git a/utils/wxMMedia/vidxanm.h b/utils/wxMMedia/vidxanm.h deleted file mode 100644 index 28d00989df..0000000000 --- a/utils/wxMMedia/vidxanm.h +++ /dev/null @@ -1,69 +0,0 @@ -// ///////////////////////////////////////////////////////////////////////////// -// Name: vidxanm.h -// Purpose: wxMMedia -// Author: Guilhem Lavaux -// Created: 1997 -// Updated: 1998 -// Copyright: (C) 1997, 1998, Guilhem Lavaux -// License: wxWindows license -// ///////////////////////////////////////////////////////////////////////////// -/* Real -*- C++ -*- */ -#ifndef __VID_xanim_H__ -#define __VID_xanim_H__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#if defined(WXMMEDIA_INTERNAL) && (defined(__X__) || defined(__WXGTK__)) -#include -#include -#endif - -#include "vidbase.h" - -#ifdef WXMMEDIA_INTERNAL -typedef struct wxXANIMinternal { - Display *xanim_dpy; - Window xanim_window; - Atom xanim_atom, xanim_ret; -} wxXANIMinternal; - -#ifndef __XANIM_COMMAND__ -#define __XANIM_COMMAND__ "/usr/X11R6/bin/xanim" -#endif -#endif - -class wxVideoXANIM : public wxVideoBaseDriver { - DECLARE_DYNAMIC_CLASS(wxVideoXANIM) -protected: - bool xanim_started, paused; - struct wxXANIMinternal *internal; -public: - wxVideoXANIM(); - wxVideoXANIM(wxInputStream& str); - wxVideoXANIM(const wxString& fname); - virtual ~wxVideoXANIM(); - - virtual bool StartPlay(); - virtual bool Pause(); - virtual bool Resume(); - virtual void StopPlay(); - - virtual bool SetVolume(wxUint8 vol); - virtual bool Resize(wxUint16 w, wxUint16 h); - - virtual bool IsCapable(wxVideoType v_type); - - virtual bool AttachOutput(wxVideoOutput& output); - virtual void DetachOutput(); - -protected: - /// - bool RestartXANIM(); - /// - bool SendCommand(const char *command, char **ret = NULL, - wxUint32 *size = NULL); -}; - -#endif diff --git a/utils/wxMMedia/wave.cpp b/utils/wxMMedia/wave.cpp deleted file mode 100644 index 740f86d0f5..0000000000 --- a/utils/wxMMedia/wave.cpp +++ /dev/null @@ -1,65 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.cpp -// Purpose: wxWave class -// Author: Guilhem Lavaux / API by Julian Smart -// Modified by: -// Created: 04/23/98 -// RCS-ID: $Id$ -// Copyright: (c) Guilhem Lavaux -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "wave.h" -#endif - -#include -#include "wave.h" - -wxWave::wxWave() -{ - m_wave = NULL; - m_iowave = NULL; -} - -wxWave::wxWave(const wxString& fileName, bool isResource = FALSE) -{ - Create(fileName, isResource); -} - -wxWave::~wxWave() -{ - Free(); -} - -bool wxWave::Create(const wxString& sFileName, bool isResource = FALSE) -{ - m_iowave = new wxFileInputStream(sFileName); - m_wave = new wxSndWavCodec(*m_iowave); - - return TRUE; -} - -bool wxWave::Play(bool async, bool looped) const -{ - if (!m_wave) - return FALSE; - - if (looped) - m_wave->Set(wxSND_LOOP); - if (!m_wave->StartPlay()); - return FALSE; - if (!async) - m_wave->Wait(); - - m_wave->Clear(wxSND_LOOP); - return TRUE; -} - -bool wxWave::Free() -{ - if (m_wave) { - delete m_wave; - delete m_iowave; - } - return TRUE; -} diff --git a/utils/wxMMedia/wave.h b/utils/wxMMedia/wave.h deleted file mode 100644 index b91edf96b7..0000000000 --- a/utils/wxMMedia/wave.h +++ /dev/null @@ -1,43 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wave.h -// Purpose: wxWave class -// Author: Julian Smart -// Modified by: Guilhem Lavaux for wxMMedia (02/05/1998) -// Created: 01/02/97 -// RCS-ID: $Id$ -// Copyright: (c) Julian Smart and Markus Holzem -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -#ifndef __WAVEH__ -#define __WAVEH__ - -#ifdef __GNUG__ -#pragma interface -#endif - -#include -#include -#include "sndwav.h" - -class wxWave : public wxObject -{ -public: - wxWave(); - wxWave(const wxString& fileName, bool isResource = FALSE); - ~wxWave(); - -public: - bool Create(const wxString& sFileName, bool isResource = FALSE); - bool IsOk() const { return (m_wave ? TRUE : FALSE); }; - bool Play(bool async = TRUE, bool looped = FALSE) const; - -protected: - bool Free(); - -protected: - wxInputStream *m_iowave; - wxSndWavCodec *m_wave; -}; - -#endif diff --git a/utils/wxOLE/gtk/wxole.cpp b/utils/wxOLE/gtk/wxole.cpp deleted file mode 100644 index aa48f8a614..0000000000 --- a/utils/wxOLE/gtk/wxole.cpp +++ /dev/null @@ -1,428 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxole.cpp -// Purpose: wxOLE -// Author: Robert Roebling -// Modified by: -// Created: 20/04/99 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wxole.h" -#endif - -#include "wx/defs.h" -#include "wxole.h" - -#include "wx/app.h" -#include "wx/menu.h" -#include "wx/statusbr.h" -#include "wx/toolbar.h" -#include "wx/stream.h" - -#include "wx/gtk/win_gtk.h" - -extern "C" { -#include "gtk/gtk.h" -#include "gdk/gdk.h" - -#include -#include -#include -#include -#include -#include -#include -#include -} - - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -const wxChar *wxOleNameStr = _T("olecontrol"); - -//--------------------------------------------------------------------------- -// wxOleServerEnvPrivate -//--------------------------------------------------------------------------- - -class wxOleServerEnvPrivate -{ -public: - - wxOleServerEnvPrivate() {} - ~wxOleServerEnvPrivate() {} - - CORBA_Environment m_ev; - CORBA_ORB m_orb; -}; - -//--------------------------------------------------------------------------- -// wxOleInputStream -//--------------------------------------------------------------------------- - -class wxOleInputStream : public wxInputStream -{ -public: - - wxOleInputStream( GNOME_Stream stream ); - ~wxOleInputStream(); - - bool Ok() const { return m_error; } - -protected: - - bool m_error; - GNOME_Stream m_gstream; - - size_t OnSysRead(void *buffer, size_t size); - off_t OnSysSeek(off_t pos, wxSeekMode mode); - off_t OnSysTell() const; -}; - -//--------------------------------------------------------------------------- -// wxOleServerEnv -//--------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxOleServerEnv,wxObject) - -wxOleServerEnv::wxOleServerEnv( const wxString &name, const wxString &version ) -{ - m_serverName = name; - m_serverVersion = version; - - m_priv = new wxOleServerEnvPrivate(); - - CORBA_exception_init( &(m_priv->m_ev) ); - - gnome_CORBA_init( - m_serverName.mb_str(), - m_serverVersion.mb_str(), - &wxTheApp->argc, - wxTheApp->argv, - GNORBA_INIT_SERVER_FUNC, - &(m_priv->m_ev) ); - - if (m_priv->m_ev._major != CORBA_NO_EXCEPTION) - { - return; - } - - m_priv->m_orb = gnome_CORBA_ORB(); - - if (bonobo_init( m_priv->m_orb, NULL, NULL ) == FALSE) - { - return; - } - -} - -wxOleServerEnv::~wxOleServerEnv() -{ - CORBA_exception_free( &(m_priv->m_ev) ); - delete m_priv; -} - -//--------------------------------------------------------------------------- -// wxOleInputStream -//--------------------------------------------------------------------------- - -wxOleInputStream::wxOleInputStream( GNOME_Stream stream ) -{ - m_gstream = stream; - m_error = (m_gstream); -} - -wxOleInputStream::~wxOleInputStream() -{ - /* we don't create the stream so we - don't destroy it either. */ -} - -size_t wxOleInputStream::OnSysRead( void *buffer, size_t size ) -{ - GNOME_Stream_iobuf *gbuffer = GNOME_Stream_iobuf__alloc(); - - CORBA_Environment ev; - CORBA_exception_init( &ev ); - - GNOME_Stream_read( m_gstream, size, &gbuffer, &ev ); - - CORBA_exception_free( &ev ); - - memcpy( buffer, gbuffer->_buffer, gbuffer->_length ); - - m_error = (gbuffer->_length != size); - - CORBA_free( gbuffer ); -} - -off_t wxOleInputStream::OnSysSeek( off_t pos, wxSeekMode mode ) -{ - CORBA_Environment ev; - CORBA_exception_init( &ev ); - - GNOME_Stream_seek( m_gstream, pos /* offset */, 0 /* whence */, &ev ); - - CORBA_exception_free( &ev ); -} - -off_t wxOleInputStream::OnSysTell() const -{ - return 0; /* oh well */ -} - - -//--------------------------------------------------------------------------- -// wxOleServerPrivate -//--------------------------------------------------------------------------- - -class wxOleServerPrivate -{ -public: - - wxOleServerPrivate() {} - ~wxOleServerPrivate() {} - - GnomeComponentFactory *m_factory; -}; - -//--------------------------------------------------------------------------- -// wxOleServer -//--------------------------------------------------------------------------- - -static GnomeView* -gnome_view_factory_callback( GnomeComponent *component, wxOleServer *server ) -{ -/* - printf( "Create OLE control.\n" ); -*/ - - wxOleControl *ctx = server->CreateOleControl(); - - if (!ctx) return (GnomeView*) NULL; - -/* - printf( "Creating OLE control succeeded. Returning as GnomeView\n" ); -*/ - - return gnome_view_new( ctx->m_widget ); -} - -static int -gnome_load_from_stream_callback( GnomePersistStream *ps, GNOME_Stream stream, GnomeComponent* component ) -{ - wxOleInputStream wxstream( stream ); - - -} - -static GnomeComponent* -gnome_component_factory_callback( GnomeComponentFactory *factory, const char *path, wxOleServer *server ) -{ -/* - printf( "new component.\n" ); - if (path) printf( "path is %s.\n", path ); -*/ - - GnomeComponent *component = - gnome_component_new( gnome_view_factory_callback, (void*) server ); - -/* - if (!component) - printf( "component creation failed.\n" ); - else - printf( "component creation succeded.\n" ); -*/ - - GnomePersistStream *stream = - gnome_persist_stream_new( gnome_load_from_stream_callback, NULL /*save*/, (void*) component ); - -/* - if (!stream) - printf( "stream creation failed.\n" ); - else - printf( "stream creation succeded.\n" ); -*/ - - gtk_object_add_interface( GTK_OBJECT(component), GTK_OBJECT(stream) ); - - return component; -} - -IMPLEMENT_CLASS(wxOleServer,wxObject) - -wxOleServer::wxOleServer( const wxString &id ) -{ - m_ID = "component:"; - m_ID += id; - - m_priv = new wxOleServerPrivate(); - -/* - printf( "new component factory.\n" ); -*/ - - m_priv->m_factory = - gnome_component_factory_new( m_ID.mb_str(), gnome_component_factory_callback, (void*) this ); -} - -wxOleServer::~wxOleServer() -{ - delete m_priv; -} - -wxOleControl *wxOleServer::CreateOleControl() -{ - return new wxOleControl( -1 ); -} - -//----------------------------------------------------------------------------- -// "size_allocate" -//----------------------------------------------------------------------------- - -static void gtk_olectx_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxOleControl *win ) -{ - if (!win->m_hasVMT) return; - -/* - printf( "OnFrameResize from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - if ((win->m_width != alloc->width) || (win->m_height != alloc->height)) - { - win->m_sizeSet = FALSE; - win->m_width = alloc->width; - win->m_height = alloc->height; - } -} - -//----------------------------------------------------------------------------- -// "delete_event" -//----------------------------------------------------------------------------- - -static gint gtk_olectx_delete_callback( GtkWidget *WXUNUSED(widget), GdkEvent *WXUNUSED(event), wxOleControl *win ) -{ -/* - printf( "OnDelete from " ); - if (win->GetClassInfo() && win->GetClassInfo()->GetClassName()) - printf( win->GetClassInfo()->GetClassName() ); - printf( ".\n" ); -*/ - - win->Close(); - - return TRUE; -} - -//----------------------------------------------------------------------------- -// "configure_event" -//----------------------------------------------------------------------------- - -static gint gtk_olectx_configure_callback( GtkWidget *WXUNUSED(widget), GdkEventConfigure *event, wxOleControl *win ) -{ - if (!win->m_hasVMT) return FALSE; - - win->m_x = event->x; - win->m_y = event->y; - - wxMoveEvent mevent( wxPoint(win->m_x,win->m_y), win->GetId() ); - mevent.SetEventObject( win ); - win->GetEventHandler()->ProcessEvent( mevent ); - - return FALSE; -} - -//--------------------------------------------------------------------------- -// wxOleControl -//--------------------------------------------------------------------------- - -IMPLEMENT_CLASS(wxOleControl,wxFrame) - -wxOleControl::wxOleControl( wxWindowID id, long style, const wxString &name ) -{ - Create( id, style, name ); -} - -bool wxOleControl::Create( wxWindowID id, long style, const wxString &name ) -{ - wxTopLevelWindows.Append( this ); - - m_needParent = FALSE; - - PreCreation( (wxWindow*) NULL, id, wxDefaultPosition, wxDefaultSize, style, name ); - - m_title = _T("wxWindows OLE Server"); - - /* any widget that can contain another widget and resizes it - to its full size */ - m_widget = gtk_hbox_new(0,0); - - GTK_WIDGET_UNSET_FLAGS( m_widget, GTK_CAN_FOCUS ); - - gtk_signal_connect( GTK_OBJECT(m_widget), "delete_event", - GTK_SIGNAL_FUNC(gtk_olectx_delete_callback), (gpointer)this ); - - /* m_mainWidget holds the toolbar, the menubar and the client area */ - m_mainWidget = gtk_myfixed_new(); - gtk_widget_show( m_mainWidget ); - GTK_WIDGET_UNSET_FLAGS( m_mainWidget, GTK_CAN_FOCUS ); - gtk_container_add( GTK_CONTAINER(m_widget), m_mainWidget ); - - /* m_wxwindow only represents the client area without toolbar and menubar */ - m_wxwindow = gtk_myfixed_new(); - gtk_widget_show( m_wxwindow ); - GTK_WIDGET_UNSET_FLAGS( m_wxwindow, GTK_CAN_FOCUS ); - gtk_container_add( GTK_CONTAINER(m_mainWidget), m_wxwindow ); - - PostCreation(); - - /* the user resized the frame by dragging etc. */ - gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate", - GTK_SIGNAL_FUNC(gtk_olectx_size_callback), (gpointer)this ); - - /* the only way to get the window size is to connect to this event */ - gtk_signal_connect( GTK_OBJECT(m_widget), "configure_event", - GTK_SIGNAL_FUNC(gtk_olectx_configure_callback), (gpointer)this ); - - gtk_widget_show_all( m_widget ); - - return TRUE; -} - -wxOleControl::~wxOleControl() -{ - if (m_frameMenuBar) delete m_frameMenuBar; - m_frameMenuBar = (wxMenuBar *) NULL; - - if (m_frameStatusBar) delete m_frameStatusBar; - m_frameStatusBar = (wxStatusBar *) NULL; - - if (m_frameToolBar) delete m_frameToolBar; - m_frameToolBar = (wxToolBar *) NULL; - - wxTopLevelWindows.DeleteObject( this ); - - if (wxTheApp->GetTopWindow() == this) - wxTheApp->SetTopWindow( (wxWindow*) NULL ); - - if (wxTopLevelWindows.Number() == 0) - wxTheApp->ExitMainLoop(); -} - - -void wxOleControl::DoSetSize( int x, int y, int width, int height, int sizeFlags ) -{ - // ignore -} - -void wxOleControl::DoSetClientSize(int width, int height) -{ - // ignore -} diff --git a/utils/wxOLE/gtk/wxole.h b/utils/wxOLE/gtk/wxole.h deleted file mode 100644 index 1f765dc507..0000000000 --- a/utils/wxOLE/gtk/wxole.h +++ /dev/null @@ -1,109 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxole.h -// Purpose: wxOLE -// Author: Robert Roebling -// Modified by: -// Created: 17/8/98 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma interface "wxole.h" -#endif - -#ifndef _WX_OLE_H_ -#define _WX_OLE_H_ - -#include "wx/defs.h" -#include "wx/object.h" -#include "wx/frame.h" -#include "wx/stream.h" - -//----------------------------------------------------------------------------- -// global data -//----------------------------------------------------------------------------- - -extern const wxChar *wxOleNameStr; - -//--------------------------------------------------------------------------- -// classes -//--------------------------------------------------------------------------- - -class wxOleServerEnv; -class wxOleServer; -class wxOleControl; - -//--------------------------------------------------------------------------- -// wxOleServerEnv -//--------------------------------------------------------------------------- - -class wxOleServerEnvPrivate; - -class wxOleServerEnv : public wxObject -{ - DECLARE_CLASS(wxOleServerEnv) - -public: - - wxOleServerEnv( const wxString &name, const wxString &version ); - ~wxOleServerEnv(); - -private: - - wxString m_serverName; - wxString m_serverVersion; - -protected: - wxOleServerEnvPrivate *m_priv; -}; - -//--------------------------------------------------------------------------- -// wxOleServer -//--------------------------------------------------------------------------- - -class wxOleServerPrivate; - -class wxOleServer : public wxObject -{ - DECLARE_CLASS(wxOleServer) - -public: - - wxOleServer( const wxString &id ); - ~wxOleServer(); - - virtual wxOleControl *CreateOleControl(); - -private: - - wxString m_ID; - -protected: - wxOleServerPrivate *m_priv; -}; - -//--------------------------------------------------------------------------- -// wxOleControl -//--------------------------------------------------------------------------- - -class wxOleControl : public wxFrame -{ - DECLARE_CLASS(wxOleControl) - -public: - - wxOleControl( wxWindowID id, long style = 0, const wxString &name = wxOleNameStr ); - ~wxOleControl(); - bool Create( wxWindowID id, long style = 0, const wxString &name = wxOleNameStr ); - -protected: - virtual void DoSetSize(int x, int y, - int width, int height, - int sizeFlags = wxSIZE_AUTO); - - virtual void DoSetClientSize(int width, int height); -}; - -#endif diff --git a/utils/wxOLE/samples/servlet/.cvsignore b/utils/wxOLE/samples/servlet/.cvsignore deleted file mode 100644 index e03775c213..0000000000 --- a/utils/wxOLE/samples/servlet/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -Linux -linux-gnu -linux -servlet -test-container -servlet.o -wxole.o diff --git a/utils/wxOLE/samples/servlet/mondrian.xpm b/utils/wxOLE/samples/servlet/mondrian.xpm deleted file mode 100644 index 409f27a843..0000000000 --- a/utils/wxOLE/samples/servlet/mondrian.xpm +++ /dev/null @@ -1,44 +0,0 @@ -/* XPM */ -static char *mondrian_xpm[] = { -/* columns rows colors chars-per-pixel */ -"32 32 6 1", -" c Black", -". c Blue", -"X c #00bf00", -"o c Red", -"O c Yellow", -"+ c Gray100", -/* pixels */ -" ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" oooooo +++++++++++++++++++++++ ", -" ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ .... ", -" ++++++ ++++++++++++++++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++++++++++++++++ ++++ ", -" ++++++ ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" ++++++ OOOOOOOOOOOO XXXXX ++++ ", -" " -}; diff --git a/utils/wxOLE/samples/servlet/servlet.cpp b/utils/wxOLE/samples/servlet/servlet.cpp deleted file mode 100644 index 9e6b2d6416..0000000000 --- a/utils/wxOLE/samples/servlet/servlet.cpp +++ /dev/null @@ -1,135 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: servlet.cpp -// Purpose: Minimal wxWindows OLE server sample -// Author: Robert Roebling -// Modified by: -// Created: 20/04/99 -// RCS-ID: $Id$ -// Copyright: (c) Robert Roebling -// Licence: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ - #pragma implementation "servlet.cpp" - #pragma interface "servlet.cpp" -#endif - -// 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 - -// For OLE stuff -#include "wxole.h" - -#if defined(__WXGTK__) || defined(__WXMOTIF__) - #include "mondrian.xpm" -#endif - -//---------------------------------------------------------------------------- -// MyOleControl -//---------------------------------------------------------------------------- - -class MyOleControl : public wxOleControl -{ -public: - - MyOleControl(); - - void OnPaint( wxPaintEvent &event ); - -private: - DECLARE_EVENT_TABLE() -}; - -//---------------------------------------------------------------------------- -// MyOleServer -//---------------------------------------------------------------------------- - -class MyOleServer : public wxOleServer -{ -public: - - MyOleServer() : wxOleServer( "servlet" ) { } - - wxOleControl *CreateOleControl() { return new MyOleControl(); } -}; - -//---------------------------------------------------------------------------- -// MyApp -//---------------------------------------------------------------------------- - -class MyApp : public wxApp -{ -public: - - MyApp(); - ~MyApp(); - - virtual bool OnInit(); - - wxOleServerEnv *m_oleEnv; - MyOleServer *m_oleServer; -}; - -//---------------------------------------------------------------------------- -// main -//---------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//---------------------------------------------------------------------------- -// MyApp -//---------------------------------------------------------------------------- - -MyApp::MyApp() -{ -} - -MyApp::~MyApp() -{ - delete m_oleEnv; - delete m_oleServer; -} - -#include "gtk/gtk.h" - -bool MyApp::OnInit() -{ - m_oleEnv = new wxOleServerEnv( "MyServer", "1.0" ); - m_oleServer = new MyOleServer(); - - /* how do we get outta here ? */ - for (;;) wxYield(); - - return TRUE; -} - -//---------------------------------------------------------------------------- -// MyOleControl -//---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(MyOleControl, wxOleControl) - EVT_PAINT(MyOleControl::OnPaint) -END_EVENT_TABLE() - -MyOleControl::MyOleControl() : - wxOleControl( -1 ) -{ - (void)new wxButton( this, -1, "Ole, Ole", wxPoint(5,40), wxSize(120,-1) ); - (void)new wxButton( this, -1, "Greetings", wxPoint(5,70), wxSize(120,-1) ); -} - -void MyOleControl::OnPaint( wxPaintEvent &WXUNUSED(event) ) -{ - wxPaintDC dc(this); - dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL, FALSE, "charter" ) ); - dc.DrawText( "wxWindows rules!", 5, 5 ); -} - diff --git a/utils/wxOLE/samples/servlet/servlet.gnorba b/utils/wxOLE/samples/servlet/servlet.gnorba deleted file mode 100644 index b6ee8b436e..0000000000 --- a/utils/wxOLE/samples/servlet/servlet.gnorba +++ /dev/null @@ -1,13 +0,0 @@ -[component-factory:servlet] -type=exe -repo_id=IDL:GNOME/ComponentFactory:1.0 IDL:GNOME/GenericFactory:1.0 -description=wxOLE test object server factory -location_info=servlet - -[component:servlet] -type=factory -repo_id=IDL:Component/servlet:1.0 IDL:GNOME/Component:1.0 -description=wxOLE Test server component -location_info=component-factory:servlet - - diff --git a/utils/wxPython/.cvsignore b/utils/wxPython/.cvsignore deleted file mode 100644 index d1d02e60fb..0000000000 --- a/utils/wxPython/.cvsignore +++ /dev/null @@ -1,106 +0,0 @@ -*.zip -*.pyc -*.pyo -.cvsignore -.emacs.desktop -__init__.py -__init__.py -__init__.pyc -__init__.pyc -__init__.pyo -__init__.pyo -cmndlgs.py -cmndlgs.py -cmndlgs.pyc -cmndlgs.pyc -cmndlgs.pyo -cmndlgs.pyo -controls.py -controls.py -controls.pyc -controls.pyc -controls.pyo -controls.pyo -controls2.py -controls2.py -controls2.pyc -controls2.pyc -controls2.pyo -controls2.pyo -docs -events.py -events.py -events.pyc -events.pyc -events.pyo -events.pyo -frames.py -frames.py -frames.pyc -frames.pyc -frames.pyo -frames.pyo -gdi.py -gdi.py -gdi.pyc -gdi.pyc -gdi.pyo -gdi.pyo -glcanvas.py -glcanvas.pyc -image.py -image.pyc -mdi.py -mdi.py -mdi.pyc -mdi.pyc -mdi.pyo -mdi.pyo -misc.py -misc.py -misc.pyc -misc.pyc -misc.pyo -misc.pyo -stattool.py -stattool.py -stattool.pyc -stattool.pyc -stattool.pyo -stattool.pyo -utils.py -utils.py -utils.pyc -utils.pyc -utils.pyo -utilsc.ilk -utilsc.pyd -windows.py -windows.py -windows.pyc -windows.pyc -windows.pyo -windows.pyo -windows2.py -windows2.py -windows2.pyc -windows2.pyc -windows2.pyo -windows2.pyo -windows3.py -windows3.pyc -windows3.pyo -wx.py -wx.py -wx.pyc -wx.pyc -wx.pyo -wxc.ilk -wxc.pdb -wxc.pyd -wxp.py -wxp.pyc -wxp.pyo -wxpc.ilk -wxpc.pdb -wxpc.pyd diff --git a/utils/wxPython/README.txt b/utils/wxPython/README.txt deleted file mode 100644 index ceeb4ad45c..0000000000 --- a/utils/wxPython/README.txt +++ /dev/null @@ -1,281 +0,0 @@ -wxPython README ---------------- - -Welcome to the wonderful world of wxPython! - -Now that you have installed the Win32 extension module, you can try it -out by going to the [install dir]\wxPython\demo directory and typing: - - python demo.py - -There are also some other sample files there for you to play with and -learn from. - -If you selected to install the documentation then point your browser -to [install dir]\wxPython\docs\index.htm and you will then be looking -at the docs for wxWindows. For the most part you can use the C++ docs -as most classes and methods are used identically. Where there are -differences they are documented with a "wxPython Note." - - - -Getting Help ------------- - -Since wxPython is a blending of multiple technologies, help comes from -multiple sources. See the http://alldunn.com/wxPython 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 - - http://starship.python.net/mailman/listinfo/wxpython-users - -Or you can send mail directly to the list using this address: - - wxpython-users@starship.python.net - - -What's new in 2.0b9 -------------------- -Bug fix for ListCtrl in test4.py (Was a missing file... DSM!) - -Bug fix for occassional GPF on Win32 systems upon termination of a -wxPython application. - -Added wxListBox.GetSelections returning selections as a Tuple. - -Added a wxTreeItemData that is able to hold any Python object and be -associated with items in a wxTreeCtrl. Added test pytree.py to show -this feature off. - -Added wxSafeYield function. - -OpenGL Canvas can be optionally compiled in to wxPython. - -Awesome new Demo Framework for showing off wxPython and for learning -how it all works. - -The pre-built Win32 version is no longer distributing the wxWindows -DLL. It is statically linked with the wxWindows library instead. - -Added a couple missing items from the docs. - -Added wxImage, wxImageHandler, wxPNGHandler, wxJPEGHandler, -wxGIFHandler and wxBMPHandler. - -Added new methods to wxTextCtrl. - -Fixed some problems with how SWIG was wrapping some wxTreeCtrl -methods. - - - -What's new in 2.0b8 -------------------- -Support for using Python threads in wxPython apps. - -Several missing methods from various classes. - -Various bug fixes. - - - -What's new in 2.0b7 -------------------- -Added DLG_PNT and DLG_SZE convienience methods to wxWindow class. - -Added missing constructor and other methods for wxMenuItem. - - - -What's new in 2.0b6 -------------------- -Just a quickie update to fix the self-installer to be compatible with -Python 1.5.2b2's Registry settings. - - -What's new in 2.0b5 -------------------- -Well obviously the numbering scheme has changed. I did this to -reflect the fact that this truly is the second major revision of -wxPython, (well the third actually if you count the one I did for -wxWindows 1.68 and then threw away...) and also that it is associated -with the 2.0 version of wxWindows. - -I have finally started documenting wxPython. There are several pages -in the wxWindows documentation tree specifically about wxPython, and I -have added notes within the class references about where and how wxPython -diverges from wxWindows. - -Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -window handle. If you can get the window handle into the python code, -it should just work... More news on this later. - -Added wxImageList, wxToolTip. - -Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -wxRegConfig class. - -As usual, some bug fixes, tweaks, etc. - - - -What's new in 0.5.3 -------------------- -Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. - -Various cleanup, tweaks, minor additions, etc. to maintain -compatibility with the current wxWindows. - - - -What's new in 0.5.0 -------------------- -Changed the import semantics from "from wxPython import *" to "from -wxPython.wx import *" This is for people who are worried about -namespace pollution, they can use "from wxPython import wx" and then -prefix all the wxPython identifiers with "wx." - -Added wxTaskbarIcon for wxMSW. - -Made the events work for wxGrid. - -Added wxConfig. - -Added wxMiniFrame for wxGTK. - -Changed many of the args and return values that were pointers to gdi -objects to references to reflect changes in the wxWindows API. - -Other assorted fixes and additions. - - - - -What's new in 0.4.2 -------------------- - -wxPython on wxGTK works!!! Both dynamic and static on Linux and -static on Solaris have been tested. Many thanks go to Harm - for his astute detective work on tracking -down a nasty DECREF bug. Okay so I have to confess that it was just a -DSM (Dumb Stupid Mistake) on my part but it was nasty none the less -because the behavior was so different on different platforms. - - -The dynamicly loaded module on Solaris is still segfaulting, so it -must have been a different issue all along... - - - -What's New in 0.4 ------------------ - -1. Worked on wxGTK compatibility. It is partially working. On a -Solaris/Sparc box wxPython is working but only when it is statically -linked with the Python interpreter. When built as a dyamically loaded -extension module, things start acting weirdly and it soon seg-faults. -And on Linux both the statically linked and the dynamically linked -version segfault shortly after starting up. - -2. Added Toolbar, StatusBar and SplitterWindow classes. - -3. Varioius bug fixes, enhancements, etc. - - - - -Build Instructions ------------------- -I used SWIG (http://www.swig.org) to create the source code for the -extension module. This enabled me to only have to deal with a small -amount of code and only have to bother with the exceptional issues. -SWIG takes care of the rest and generates all the repetative code for -me. You don't need SWIG to build the extension module as all the -generated C++ code is included under the src directory. - -I added a few minor features to SWIG to control some of the code -generation. If you want to playaround with this the patches are in -wxPython/SWIG.patches and they should be applied to the 1.1p5 version -of SWIG. These new patches are documented at -http://starship.skyport.net/crew/robind/#swig, and they should also -end up in the 1.2 version of SWIG. - -wxPython is organized as a Python package. This means that the -directory containing the results of the build process should be a -subdirectory of a directory on the PYTHONPATH. (And preferably should -be named wxPython.) You can control where the build process will dump -wxPython by setting the TARGETDIR makefile variable. The default is -$(WXWIN)/utils/wxPython, where this README.txt is located. If you -leave it here then you should add $(WXWIN)/utils to your PYTHONPATH. -However, you may prefer to use something that is already on your -PYTHONPATH, such as the site-packages directory on Unix systems. - - -Win32 ------ - -1. Build wxWindows with wxUSE_RESOURCE_LOADING_IN_MSW set to 1 in -include/wx/msw/setup.h so icons can be loaded dynamically. While -there, make sure wxUSE_OWNER_DRAWN is also set to 1. - -2. Change into the $(WXWIN)/utils/wxPython/src directory. - -3. Edit makefile.vc and specify where your python installation is at. -You may also want to fiddle with the TARGETDIR variable as described -above. - -4. Run nmake -f makefile.vc - -5. If it builds successfully, congratulations! Move on to the next -step. If not then you can try mailing me for help. Also, I will -always have a pre-built win32 version of this extension module at -http://alldunn.com/wxPython/. - -6. Change to the $(WXWIN)/utils/wxPython/demo directory. - -7. Try executing the demo program. For example: - - python demo.py - -To run it without requiring a console, you can use the pythonw.exe -version of Python either from the command line or from a shortcut. - - - -Unix ----- -0. I configure wxWindows like this, YMMV: - -./configure --with-gtk --without-shared --with-threads --without-unicode --with-libjpeg - - -1. Change into the $(WXWIN)/utils/wxPython/src directory. - -2. Edit Setup.in and ensure that the flags, directories, and toolkit -options are correct. See the above commentary about TARGETDIR. There -are a few sample Setup.in.[platform] files provided. - -3. Run this command to generate a makefile: - - make -f Makefile.pre.in boot - -4. Run these commands to build and then install the wxPython extension -module: - - make - make install - - -5. Change to the $(WXWIN)/utils/wxPython/demo directory. - -6. Try executing the demo program. For example: - - python demo.py - ----------------- -Robin Dunn -robin@alldunn.com - - - diff --git a/utils/wxPython/SWIG.patches/Include.patch b/utils/wxPython/SWIG.patches/Include.patch deleted file mode 100644 index 7d4b9521d6..0000000000 --- a/utils/wxPython/SWIG.patches/Include.patch +++ /dev/null @@ -1,97 +0,0 @@ -*** swig.h.old Wed Feb 04 14:59:40 1998 ---- swig.h Fri Aug 28 14:46:32 1998 -*************** -*** 178,185 **** ---- 178,211 ---- - char *firstkey(); - char *nextkey(); - }; - -+ // ------------------------------------------------------------------- -+ // Simple Vector class -+ // User is responsible for deleting contents before deleteing Vector -+ // ------------------------------------------------------------------- -+ -+ class Vector { -+ public: -+ Vector(size_t allocSize=8); -+ ~Vector(); -+ -+ size_t size() { return m_size; } -+ size_t count() { return m_count; } -+ size_t append(void* object); -+ size_t extend(size_t newSize); -+ -+ void*& operator[] (size_t idx); -+ -+ static void* s_nullPtr; -+ -+ private: -+ size_t m_size; -+ size_t m_count; -+ void** m_data; -+ }; -+ -+ - /************************************************************************ - * class DataType - * - * Defines the basic datatypes supported by the translator. -*************** -*** 684,691 **** ---- 710,761 ---- - extern char *name_get(char *vname, int suppress=0); - extern char *name_set(char *vname, int suppress=0); - extern char *name_construct(char *classname, int suppress=0); - extern char *name_destroy(char *classname, int suppress=0); -+ -+ // ---------------------------------------------------------------------- -+ // class CPP_class -+ // -+ // Class for managing class members (internally) -+ // ---------------------------------------------------------------------- -+ -+ class CPP_member; -+ -+ class CPP_class { -+ public: -+ char *classname; // Real class name -+ char *classrename; // New name of class (if applicable) -+ char *classtype; // class type (struct, union, class) -+ int strip; // Strip off class declarator -+ int wextern; // Value of extern wrapper variable for this class -+ int have_constructor; // Status bit indicating if we've seen a constructor -+ int have_destructor; // Status bit indicating if a destructor has been seen -+ int is_abstract; // Status bit indicating if this is an abstract class -+ int generate_default; // Generate default constructors -+ int objective_c; // Set if this is an objective C class -+ int error; // Set if this class can't be generated -+ int line; // Line number -+ char **baseclass; // Base classes (if any) -+ Hash *local; // Hash table for local types -+ Hash *scope; // Local scope hash table -+ DocEntry *de; // Documentation entry of class -+ CPP_member *members; // Linked list of members -+ CPP_class *next; // Next class -+ static CPP_class *classlist; // List of all classes stored -+ -+ Vector addPragmas; -+ -+ CPP_class(char *name, char *ctype); -+ void add_member(CPP_member *m); -+ CPP_member *search_member(char *name); -+ void inherit_decls(int mode); -+ void emit_decls(); -+ static CPP_class *search(char *name); -+ void create_default(); -+ static void create_all(); -+ }; -+ -+ extern CPP_class *current_class; - - /*********************************************************************** - * -- Revision History - * $Log$ - * Revision 1.1 1998/10/03 05:56:02 RD - * *** empty log message *** - * diff --git a/utils/wxPython/SWIG.patches/Modules.patch b/utils/wxPython/SWIG.patches/Modules.patch deleted file mode 100644 index b26b407ef0..0000000000 --- a/utils/wxPython/SWIG.patches/Modules.patch +++ /dev/null @@ -1,136 +0,0 @@ -*** python.cxx.old Fri Jan 02 22:17:40 1998 ---- python.cxx Fri Aug 28 14:49:18 1998 -*************** -*** 1679,1684 **** ---- 1679,1701 ---- - } - } - } -+ } else if (strcmp(cmd, "addtomethod") == 0) { -+ // parse value, expected to be in the form "methodName:line" -+ char* txtptr = strchr(value, ':'); -+ if (txtptr) { -+ // add name and line to a list in current_class -+ *txtptr = 0; -+ txtptr++; -+ AddPragmaData* apData = new AddPragmaData(value, txtptr); -+ current_class->addPragmas.append(apData); -+ -+ } else { -+ fprintf(stderr,"%s : Line %d. Malformed addtomethod pragma. Should be \"methodName:text\"\n", -+ input_file, line_number); -+ } -+ } else if (strcmp(cmd, "addtoclass") == 0) { -+ AddPragmaData* apData = new AddPragmaData("__class__", value); -+ current_class->addPragmas.append(apData); - } else { - fprintf(stderr,"%s : Line %d. Unrecognized pragma.\n", input_file, line_number); - } -*** python.h.old Thu Jul 24 22:18:50 1997 ---- python.h Fri Aug 28 14:46:08 1998 -*************** -*** 185,191 **** ---- 185,203 ---- - void cpp_class_decl(char *, char *,char *); - void pragma(char *, char *, char *); - void add_typedef(DataType *t, char *name); -+ -+ void emitAddPragmas(String& output, char* name, char* spacing); - }; - - #define PYSHADOW_MEMBER 0x2 -+ -+ struct AddPragmaData { -+ String m_method; -+ String m_text; -+ -+ AddPragmaData(char* method, char* text) -+ : m_method(method), -+ m_text(text) -+ {} -+ }; - -*** pycpp.cxx.old Fri Jan 02 20:23:22 1998 ---- pycpp.cxx Fri Aug 28 16:01:46 1998 -*************** -*** 276,281 **** ---- 276,282 ---- - } - } - // if ((t->type != T_VOID) || (t->is_pointer)) -+ emitAddPragmas(*pyclass, realname, tab8); - *pyclass << tab8 << "return val\n"; - - // Change the usage string to reflect our shadow class -*************** -*** 394,399 **** ---- 395,401 ---- - } - *construct << ")\n"; - *construct << tab8 << "self.thisown = 1\n"; -+ emitAddPragmas(*construct, "__init__", tab8); - have_constructor = 1; - } else { - -*************** -*** 494,502 **** - *pyclass << tab4 << "def __del__(self):\n" - << tab8 << "if self.thisown == 1 :\n" - << tab8 << tab4 << module << "." << name_destroy(realname) << "(self.this)\n"; -! - have_destructor = 1; -- - if (doc_entry) { - doc_entry->usage = ""; - doc_entry->usage << "del this"; ---- 496,503 ---- - *pyclass << tab4 << "def __del__(self):\n" - << tab8 << "if self.thisown == 1 :\n" - << tab8 << tab4 << module << "." << name_destroy(realname) << "(self.this)\n"; -! emitAddPragmas(*pyclass, "__del__", tab8); - have_destructor = 1; - if (doc_entry) { - doc_entry->usage = ""; - doc_entry->usage << "del this"; -*************** -*** 552,557 **** ---- 553,560 ---- - << tab8 << "return \"\"\n"; - - classes << repr; -+ emitAddPragmas(classes, "__class__", tab4); -+ - } - - // Now build the real class with a normal constructor -*************** -*** 747,752 **** ---- 750,777 ---- - } - } - -+ // -------------------------------------------------------------------------------- -+ // PYTHON::emitAddPragmas(String& output, char* name, char* spacing); -+ // -+ // Search the current_class->addPragmas vector for any text belonging to name. -+ // Append the text properly spcaed to the output string. -+ // -+ // -------------------------------------------------------------------------------- -+ -+ void PYTHON::emitAddPragmas(String& output, char* name, char* spacing) -+ { -+ AddPragmaData* apData; -+ size_t count; -+ int i; -+ -+ count = current_class->addPragmas.count(); -+ for (i=0; iaddPragmas[i]; -+ if (strcmp(apData->m_method, name) == 0) { -+ output << spacing << apData->m_text << "\n"; -+ } -+ } -+ } - - /********************************************************************************* - * diff --git a/utils/wxPython/SWIG.patches/SWIG.patch b/utils/wxPython/SWIG.patches/SWIG.patch deleted file mode 100644 index 6eb496c61e..0000000000 --- a/utils/wxPython/SWIG.patches/SWIG.patch +++ /dev/null @@ -1,499 +0,0 @@ -*** cplus.cxx.old Mon Feb 02 14:55:42 1998 ---- cplus.cxx Fri Aug 28 12:02:50 1998 -*************** -*** 581,612 **** - // Class for managing class members (internally) - // ---------------------------------------------------------------------- - - static char *inherit_base_class = 0; - -- class CPP_class { -- public: -- char *classname; // Real class name -- char *classrename; // New name of class (if applicable) -- char *classtype; // class type (struct, union, class) -- int strip; // Strip off class declarator -- int wextern; // Value of extern wrapper variable for this class -- int have_constructor; // Status bit indicating if we've seen a constructor -- int have_destructor; // Status bit indicating if a destructor has been seen -- int is_abstract; // Status bit indicating if this is an abstract class -- int generate_default; // Generate default constructors -- int objective_c; // Set if this is an objective C class -- int error; // Set if this class can't be generated -- int line; // Line number -- char **baseclass; // Base classes (if any) -- Hash *local; // Hash table for local types -- Hash *scope; // Local scope hash table -- DocEntry *de; // Documentation entry of class -- CPP_member *members; // Linked list of members -- CPP_class *next; // Next class -- static CPP_class *classlist; // List of all classes stored - -! CPP_class(char *name, char *ctype) { - CPP_class *c; - classname = copy_string(name); - classtype = copy_string(ctype); - classrename = 0; ---- 581,593 ---- - // Class for managing class members (internally) - // ---------------------------------------------------------------------- - - static char *inherit_base_class = 0; -+ CPP_class *CPP_class::classlist = 0; -+ CPP_class *current_class; - - -! CPP_class::CPP_class(char *name, char *ctype) { - CPP_class *c; - classname = copy_string(name); - classtype = copy_string(ctype); - classrename = 0; -*************** -*** 642,650 **** - // ------------------------------------------------------------------------------ - // Add a new C++ member to this class - // ------------------------------------------------------------------------------ - -! void add_member(CPP_member *m) { - CPP_member *cm; - - // Set base class where this was defined - if (inherit_base_class) ---- 623,631 ---- - // ------------------------------------------------------------------------------ - // Add a new C++ member to this class - // ------------------------------------------------------------------------------ - -! void CPP_class::add_member(CPP_member *m) { - CPP_member *cm; - - // Set base class where this was defined - if (inherit_base_class) -*************** -*** 664,672 **** - // ------------------------------------------------------------------------------ - // Search for a member with the given name. Returns the member on success, 0 on failure - // ------------------------------------------------------------------------------ - -! CPP_member *search_member(char *name) { - CPP_member *m; - char *c; - m = members; - while (m) { ---- 645,653 ---- - // ------------------------------------------------------------------------------ - // Search for a member with the given name. Returns the member on success, 0 on failure - // ------------------------------------------------------------------------------ - -! CPP_member *CPP_class::search_member(char *name) { - CPP_member *m; - char *c; - m = members; - while (m) { -*************** -*** 680,688 **** - // ------------------------------------------------------------------------------ - // Inherit. Put all the declarations associated with this class into the current - // ------------------------------------------------------------------------------ - -! void inherit_decls(int mode) { - CPP_member *m; - m = members; - while (m) { - inherit_base_class = m->base; ---- 661,669 ---- - // ------------------------------------------------------------------------------ - // Inherit. Put all the declarations associated with this class into the current - // ------------------------------------------------------------------------------ - -! void CPP_class::inherit_decls(int mode) { - CPP_member *m; - m = members; - while (m) { - inherit_base_class = m->base; -*************** -*** 696,704 **** - // ------------------------------------------------------------------------------ - // Emit all of the declarations associated with this class - // ------------------------------------------------------------------------------ - -! void emit_decls() { - CPP_member *m = members; - int last_scope = name_scope(0); - abstract = is_abstract; - while (m) { ---- 677,685 ---- - // ------------------------------------------------------------------------------ - // Emit all of the declarations associated with this class - // ------------------------------------------------------------------------------ - -! void CPP_class::emit_decls() { - CPP_member *m = members; - int last_scope = name_scope(0); - abstract = is_abstract; - while (m) { -*************** -*** 713,721 **** - // ------------------------------------------------------------------------------ - // Search for a given class in the list - // ------------------------------------------------------------------------------ - -! static CPP_class *search(char *name) { - CPP_class *c; - c = classlist; - if (!name) return 0; - while (c) { ---- 694,702 ---- - // ------------------------------------------------------------------------------ - // Search for a given class in the list - // ------------------------------------------------------------------------------ - -! CPP_class *CPP_class::search(char *name) { - CPP_class *c; - c = classlist; - if (!name) return 0; - while (c) { -*************** -*** 729,737 **** - // Add default constructors and destructors - // - // ------------------------------------------------------------------------------ - -! void create_default() { - if (!generate_default) return; - - // Try to generate a constructor if not available. - ---- 710,718 ---- - // Add default constructors and destructors - // - // ------------------------------------------------------------------------------ - -! void CPP_class::create_default() { - if (!generate_default) return; - - // Try to generate a constructor if not available. - -*************** -*** 751,764 **** - // ------------------------------------------------------------------------------ - // Dump *all* of the classes saved out to the various - // language modules (this does what cplus_close_class used to do) - // ------------------------------------------------------------------------------ -- static void create_all(); -- }; -- -- CPP_class *CPP_class::classlist = 0; -- static CPP_class *current_class; -- - void CPP_class::create_all() { - CPP_class *c; - c = classlist; - while (c) { ---- 732,739 ---- -*** vector.cxx.old Fri Aug 28 14:23:16 1998 ---- vector.cxx Fri Aug 28 14:46:52 1998 -*************** -*** 0 **** ---- 1,182 ---- -+ -+ /******************************************************************************* -+ * Simplified Wrapper and Interface Generator (SWIG) -+ * -+ * Dave Beazley -+ * -+ * Department of Computer Science Theoretical Division (T-11) -+ * University of Utah Los Alamos National Laboratory -+ * Salt Lake City, Utah 84112 Los Alamos, New Mexico 87545 -+ * beazley@cs.utah.edu beazley@lanl.gov -+ * -+ * Copyright (c) 1995-1997 -+ * The University of Utah and the Regents of the University of California -+ * All Rights Reserved -+ * -+ * Permission is hereby granted, without written agreement and without -+ * license or royalty fees, to use, copy, modify, and distribute this -+ * software and its documentation for any purpose, provided that -+ * (1) The above copyright notice and the following two paragraphs -+ * appear in all copies of the source code and (2) redistributions -+ * including binaries reproduces these notices in the supporting -+ * documentation. Substantial modifications to this software may be -+ * copyrighted by their authors and need not follow the licensing terms -+ * described here, provided that the new terms are clearly indicated in -+ * all files where they apply. -+ * -+ * IN NO EVENT SHALL THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, THE -+ * UNIVERSITY OF UTAH OR DISTRIBUTORS OF THIS SOFTWARE BE LIABLE TO ANY -+ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL -+ * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, -+ * EVEN IF THE AUTHORS OR ANY OF THE ABOVE PARTIES HAVE BEEN ADVISED OF -+ * THE POSSIBILITY OF SUCH DAMAGE. -+ * -+ * THE AUTHOR, THE UNIVERSITY OF CALIFORNIA, AND THE UNIVERSITY OF UTAH -+ * SPECIFICALLY DISCLAIM ANY WARRANTIES,INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND -+ * THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, -+ * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. -+ * -+ *******************************************************************************/ -+ -+ #include "internal.h" -+ -+ /******************************************************************************* -+ * $Header$ -+ * -+ * File : vector.cxx -+ * -+ * A very simple Vector class. Allways assumes that memory allocations are -+ * successful. Should be made more robust... -+ * -+ *******************************************************************************/ -+ -+ void* Vector::s_nullPtr = NULL; -+ -+ // ----------------------------------------------------------------------------- -+ // Vector::Vector(size_t allocSize = 8) -+ // -+ // Constructor. Creates a new Vector. -+ // -+ // Inputs : initial allocation size (optional) -+ // -+ // Output : New Vector object. -+ // -+ // Side Effects : None -+ // ----------------------------------------------------------------------------- -+ -+ Vector::Vector(size_t allocSize) -+ : m_size(allocSize), -+ m_count(0), -+ m_data(0) -+ { -+ if (m_size) { -+ m_data = new void*[m_size]; -+ int i; -+ for (i=0; i m_size) { -+ newSize = newSize + (GRANULARITY - (newSize % GRANULARITY)); -+ -+ void** temp = new void*[newSize]; -+ memcpy(temp, m_data, m_size*sizeof(void*)); -+ -+ int i; -+ for (i=m_size; i= m_size) { -+ extend(m_count + 1); -+ } -+ -+ m_data[m_count] = object; -+ m_count += 1; -+ -+ return m_count; -+ } -+ -+ -+ // ----------------------------------------------------------------------------- -+ // Vector::operator[] (size_t idx) -+ // -+ // Returns a reference to the void pointer at idx. If idx is beyond the range -+ // of the vector, returns a reference to s_nullPtr. -+ // -+ // ----------------------------------------------------------------------------- -+ -+ void*& Vector::operator[] (size_t idx) { -+ if (idx >= m_size) { -+ s_nullPtr = 0; -+ return s_nullPtr; -+ } -+ -+ return m_data[idx]; -+ } -+ -+ -+ /*********************************************************************** -+ * -+ * -- Revision History -+ * $Log$ -+ * Revision 1.2 1999/04/30 03:28:35 RD -+ * wxPython 2.0b9, first phase (win32) -+ * Added gobs of stuff, see wxPython/README.txt for details -+ * -+ * Revision 1.1.4.1 1999/03/27 23:28:59 RD -+ * -+ * wxPython 2.0b8 -+ * Python thread support -+ * various minor additions -+ * various minor fixes -+ * -+ * Revision 1.1 1998/10/03 05:56:03 RD -+ * *** empty log message *** -+ * -+ * -+ ***********************************************************************/ -+ -+ -+ -+ -+ -+ -*** makefile.msc.old Mon Jun 23 15:15:32 1997 ---- makefile.msc Fri Aug 28 10:21:58 1998 -*************** -*** 33,50 **** - # Normally, you shouldn't have to change anything below this point # - ######################################################################## - - LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj emit.obj newdoc.obj ascii.obj \ -! html.obj latex.obj cplus.obj lang.obj hash.obj sstring.obj wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj - - LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \ -! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \ - sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx - - LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h - LIBNAME = ..\libswig.lib - INCLUDE = -I../Include -I$(STD_INC) -! CFLAGS = -Zi -nologo -DSWIG_LIB="\"$(SWIG_LIB)\"" -DSWIG_CC="\"$(CC)\"" -DMSDOS -DSTDC_HEADERS=1 -DHAVE_LIBDL=1 $(SWIG_OPTS) - LD_FLAGS = -VERBOSE - - - # ---- 33,50 ---- - # Normally, you shouldn't have to change anything below this point # - ######################################################################## - - LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj emit.obj newdoc.obj ascii.obj \ -! html.obj latex.obj cplus.obj lang.obj hash.obj vector.obj sstring.obj wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj - - LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \ -! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx vector.cxx \ - sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx - - LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h - LIBNAME = ..\libswig.lib - INCLUDE = -I../Include -I$(STD_INC) -! CFLAGS = -Zi -nologo -DSWIG_LIB="\"$(SWIG_LIB)\"" -DSWIG_CC="\"$(CC)\"" -DMSDOS -DSTDC_HEADERS=1 -DHAVE_LIBDL=1 $(SWIG_OPTS) $(OTHERFLAGS) - LD_FLAGS = -VERBOSE - - - # -*** makefile.bc.old Sun Jan 04 12:49:24 1998 ---- makefile.bc Fri Aug 28 14:42:58 1998 -*************** -*** 34,47 **** - ######################################################################## - - LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj \ - emit.obj newdoc.obj ascii.obj \ -! html.obj latex.obj cplus.obj lang.obj hash.obj sstring.obj \ - wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj - - LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx \ - emit.cxx newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \ -! sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx - - LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h - LIBNAME = ..\libswig.lib - INCLUDE = -I../Include -I$(STD_INC) ---- 34,47 ---- - ######################################################################## - - LIBOBJS = main.obj scanner.obj symbol.obj include.obj types.obj parms.obj \ - emit.obj newdoc.obj ascii.obj \ -! html.obj latex.obj cplus.obj lang.obj hash.obj vector.obj sstring.obj \ - wrapfunc.obj getopt.obj comment.obj typemap.obj naming.obj - - LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx \ - emit.cxx newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \ -! vector.cxx sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx - - LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h - LIBNAME = ..\libswig.lib - INCLUDE = -I../Include -I$(STD_INC) -*** Makefile.in.old Wed May 28 22:56:56 1997 ---- Makefile.in Fri Aug 28 14:43:36 1998 -*************** -*** 51,63 **** - # Normally, you shouldn't have to change anything below this point # - ######################################################################## - - LIBOBJS = main.o scanner.o symbol.o include.o types.o parms.o emit.o newdoc.o ascii.o \ -! html.o latex.o cplus.o lang.o hash.o sstring.o wrapfunc.o getopt.o comment.o \ - typemap.o naming.o - - LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \ -! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx \ - sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx - - LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h - LIB = ../libswig.a ---- 51,63 ---- - # Normally, you shouldn't have to change anything below this point # - ######################################################################## - - LIBOBJS = main.o scanner.o symbol.o include.o types.o parms.o emit.o newdoc.o ascii.o \ -! html.o latex.o cplus.o lang.o hash.o vector.o sstring.o wrapfunc.o getopt.o comment.o \ - typemap.o naming.o - - LIBSRCS = main.cxx scanner.cxx symbol.cxx include.cxx types.cxx parms.cxx emit.cxx \ -! newdoc.cxx ascii.cxx html.cxx latex.cxx cplus.cxx lang.cxx hash.cxx vector.cxx \ - sstring.cxx wrapfunc.cxx getopt.cxx comment.cxx typemap.cxx naming.cxx - - LIBHEADERS = internal.h ../Include/swig.h latex.h ascii.h html.h nodoc.h - LIB = ../libswig.a diff --git a/utils/wxPython/demo/.cvsignore b/utils/wxPython/demo/.cvsignore deleted file mode 100644 index a0a19f67a4..0000000000 --- a/utils/wxPython/demo/.cvsignore +++ /dev/null @@ -1,5 +0,0 @@ -*.pyc -.emacs.desktop -hangman_dict.txt -setup.bat -tmphtml.txt diff --git a/utils/wxPython/demo/ColorPanel.py b/utils/wxPython/demo/ColorPanel.py deleted file mode 100644 index 42332ac9ec..0000000000 --- a/utils/wxPython/demo/ColorPanel.py +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: ColorPanel.py -# Purpose: Testing lots of stuff, controls, window types, etc. -# -# Author: Robin Dunn & Gary Dumer -# -# Created: -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - - -class ColoredPanel(wxWindow): - def __init__(self, parent, color): - wxWindow.__init__(self, parent, -1, - wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER) - self.SetBackgroundColour(color) - -#--------------------------------------------------------------------------- \ No newline at end of file diff --git a/utils/wxPython/demo/DialogUnits.py b/utils/wxPython/demo/DialogUnits.py deleted file mode 100644 index 403488c2c1..0000000000 --- a/utils/wxPython/demo/DialogUnits.py +++ /dev/null @@ -1,123 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: DialogUnits.py -# Purpose: A minimal wxPython program that is a bit smarter than test1. -# -# Author: Robin Dunn -# -# Created: A long time ago, in a galaxy far, far away... -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -## import all of the wxPython GUI package -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - -## Create a new frame class, derived from the wxPython Frame. -class MyFrame(wxFrame): - - def __init__(self, parent, id, title): - # First, call the base class' __init__ method to create the frame - wxFrame.__init__(self, parent, id, title, - wxPoint(100, 100), wxSize(160, 100)) - - # Associate some events with methods of this class - EVT_SIZE(self, self.OnSize) - EVT_MOVE(self, self.OnMove) - - # Add a panel and some controls to display the size and position - panel = wxPanel(self, -1) - wxStaticText(panel, -1, "Size:", - wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize) - wxStaticText(panel, -1, "Pos:", - wxDLG_PNT(panel, wxPoint(4, 14)), wxDefaultSize) - self.sizeCtrl = wxTextCtrl(panel, -1, "", - wxDLG_PNT(panel, wxPoint(24, 4)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - self.posCtrl = wxTextCtrl(panel, -1, "", - wxDLG_PNT(panel, wxPoint(24, 14)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - - # This method is called automatically when the CLOSE event is - # sent to this window - def OnCloseWindow(self, event): - # tell the window to kill itself - self.Destroy() - - - # This method is called by the System when the window is resized, - # because of the association above. - def OnSize(self, event): - size = event.GetSize() - self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height)) - - # tell the event system to continue looking for an event handler, - # so the default handler will get called. - event.Skip() - - # This method is called by the System when the window is moved, - # because of the association above. - def OnMove(self, event): - pos = event.GetPosition() - self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y)) - - - -#--------------------------------------------------------------------------- -# if running standalone - -if __name__ == "__main__": - # Every wxWindows application must have a class derived from wxApp - class MyApp(wxApp): - - # wxWindows calls this method to initialize the application - def OnInit(self): - - # Create an instance of our customized Frame class - frame = MyFrame(NULL, -1, "This is a test") - frame.Show(true) - - # Tell wxWindows that this is our main window - self.SetTopWindow(frame) - - # Return a success flag - return true - - - app = MyApp(0) # Create an instance of the application class - app.MainLoop() # Tell it to start processing events - - -#--------------------------------------------------------------------------- -# if running as part of the Demo Framework... - -def runTest(frame, nb, log): - win = MyFrame(frame, -1, "This is a test") - frame.otherWin = win - win.Show(true) - - -overview = """\ -A simple example that shows how to use Dialog Units. -""" - -#---------------------------------------------------------------------------- -# - - - - - - - - - diff --git a/utils/wxPython/demo/Layoutf.py b/utils/wxPython/demo/Layoutf.py deleted file mode 100644 index e5809b60c5..0000000000 --- a/utils/wxPython/demo/Layoutf.py +++ /dev/null @@ -1,62 +0,0 @@ - -from wxPython.wx import * -from wxPython.lib.layoutf import Layoutf - -#--------------------------------------------------------------------------- - -class TestLayoutf(wxPanel): - def __init__(self, parent): - wxPanel.__init__(self, parent, -1) - - self.SetAutoLayout(true) - EVT_BUTTON(self, 100, self.OnButton) - - self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelA.SetBackgroundColour(wxBLUE) - self.panelA.SetConstraints(Layoutf('t=t10#1;l=l10#1;b=b10#1;r%r50#1',(self,))) - - self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelB.SetBackgroundColour(wxRED) - self.panelB.SetConstraints(Layoutf('t=t10#1;r=r10#1;b%b30#1;l>10#2', (self,self.panelA))) - - self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelC.SetBackgroundColour(wxWHITE) - self.panelC.SetConstraints(Layoutf('t_10#3;r=r10#1;b=b10#1;l>10#2', (self,self.panelA,self.panelB))) - - b = wxButton(self.panelA, 100, ' Panel A ') - b.SetConstraints(Layoutf('X=X#1;Y=Y#1;h*;w%w50#1', (self.panelA,))) - - b = wxButton(self.panelB, 100, ' Panel B ') - b.SetConstraints(Layoutf('t=t2#1;r=r4#1;h*;w*', (self.panelB,))) - - self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelD.SetBackgroundColour(wxGREEN) - self.panelD.SetConstraints(Layoutf('b%h50#1;r%w50#1;h=h#2;w=w#2', (self.panelC, b))) - - b = wxButton(self.panelC, 100, ' Panel C ') - b.SetConstraints(Layoutf('t_#1;l>#1;h*;w*', (self.panelD,))) - - wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN) - - def OnButton(self, event): - wxBell() - - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestLayoutf(nb) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - -overview = Layoutf.__doc__ diff --git a/utils/wxPython/demo/Main.py b/utils/wxPython/demo/Main.py deleted file mode 100644 index 9b8b451988..0000000000 --- a/utils/wxPython/demo/Main.py +++ /dev/null @@ -1,318 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: Main.py -# Purpose: Testing lots of stuff, controls, window types, etc. -# -# Author: Robin Dunn & Gary Dumer -# -# Created: -# RCS-ID: $Id$ -# Copyright: (c) 1999 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -import sys, os -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - - -_treeList = [ - ('Managed Windows', ['wxFrame', 'wxDialog', 'wxMiniFrame']), - - ('Miscellaneous Windows', ['wxGrid', 'wxSashWindow', - 'wxScrolledWindow', 'wxSplitterWindow', - 'wxStatusBar', 'wxToolBar', 'wxNotebook']), - - ('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog', - 'wxSingleChoiceDialog', 'wxTextEntryDialog', - 'wxFontDialog', 'wxPageSetupDialog', 'wxPrintDialog', - 'wxMessageDialog']), - - ('Controls', ['wxButton', 'wxCheckBox', 'wxCheckListBox', 'wxChoice', - 'wxComboBox', 'wxGauge', 'wxListBox', 'wxListCtrl', 'wxTextCtrl', - 'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap', - 'wxRadioBox', 'wxSlider']), - - ('Window Layout', ['wxLayoutConstraints']), - - ('Micellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage']), - - ('wxPython Library', ['Layoutf', 'wxScrolledMessageDialog', - 'wxMultipleChoiceDialog', 'wxPlotCanvas']), - - ('Cool Contribs', ['pyTree', 'hangman', 'SlashDot']), - - ] - -#--------------------------------------------------------------------------- - -class wxPythonDemo(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, -1, title, - wxDefaultPosition, wxSize(700, 550)) - if wxPlatform == '__WXMSW__': - self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO) - self.SetIcon(self.icon) - - self.otherWin = None - EVT_IDLE(self, self.OnIdle) - - self.Centre(wxBOTH) - self.CreateStatusBar(1, wxST_SIZEGRIP) - splitter = wxSplitterWindow(self, -1) - splitter2 = wxSplitterWindow(splitter, -1) - - # Prevent TreeCtrl from displaying all items after destruction - self.dying = false - - # Make a File menu - self.mainmenu = wxMenuBar() - menu = wxMenu() - mID = NewId() - menu.Append(mID, 'E&xit', 'Get the heck outta here!') - EVT_MENU(self, mID, self.OnFileExit) - self.mainmenu.Append(menu, '&File') - - # Make a Help menu - mID = NewId() - menu = wxMenu() - menu.Append(mID, '&About', 'wxPython RULES!!!') - EVT_MENU(self, mID, self.OnHelpAbout) - self.mainmenu.Append(menu, '&Help') - self.SetMenuBar(self.mainmenu) - - # Create a TreeCtrl - tID = NewId() - self.tree = wxTreeCtrl(splitter, tID) - root = self.tree.AddRoot("Overview") - for item in _treeList: - child = self.tree.AppendItem(root, item[0]) - for childItem in item[1]: - self.tree.AppendItem(child, childItem) - self.tree.Expand(root) - EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded) - EVT_TREE_ITEM_COLLAPSED (self.tree, tID, self.OnItemCollapsed) - EVT_TREE_SEL_CHANGED (self.tree, tID, self.OnSelChanged) - - - # Create a Notebook - self.nb = wxNotebook(splitter2, -1) - - # Set up a TextCtrl on the Overview Notebook page - self.ovr = wxTextCtrl(self.nb, -1, '', wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE|wxTE_READONLY) - self.nb.AddPage(self.ovr, "Overview") - - - # Set up a TextCtrl on the Demo Code Notebook page - self.txt = wxTextCtrl(self.nb, -1, '', wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL) - self.nb.AddPage(self.txt, "Demo Code") - - - # select initial items - self.nb.SetSelection(0) - self.tree.SelectItem(root) - - # Set up a log on the View Log Notebook page - self.log = wxTextCtrl(splitter2, -1, '', wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL) - (w, self.charHeight) = self.log.GetTextExtent('X') - #self.WriteText('wxPython Demo Log:\n') - - - # add the windows to the splitter and split it. - splitter.SplitVertically(self.tree, splitter2) - splitter.SetSashPosition(180, true) - splitter.SetMinimumPaneSize(20) - - splitter2.SplitHorizontally(self.nb, self.log) - splitter2.SetSashPosition(360, true) - splitter2.SetMinimumPaneSize(20) - - # make our log window be stdout - #sys.stdout = self - - #--------------------------------------------- - def WriteText(self, text): - self.log.WriteText(text) - w, h = self.log.GetClientSizeTuple() - numLines = h/self.charHeight - x, y = self.log.PositionToXY(self.log.GetLastPosition()) - self.log.ShowPosition(self.log.XYToPosition(x, y-numLines+1)) - - def write(self, txt): - self.WriteText(txt) - - #--------------------------------------------- - def OnItemExpanded(self, event): - item = event.GetItem() - self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item)) - - #--------------------------------------------- - def OnItemCollapsed(self, event): - item = event.GetItem() - self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item)) - - #--------------------------------------------- - def OnSelChanged(self, event): - if self.dying: - return - - if self.nb.GetPageCount() == 3: - if self.nb.GetSelection() == 2: - self.nb.SetSelection(0) - self.nb.DeletePage(2) - - item = event.GetItem() - itemText = self.tree.GetItemText(item) - - if itemText == 'Overview': - self.GetDemoFile('Main.py') - self.SetOverview('Overview', overview) - #self.nb.ResizeChildren(); - self.nb.Refresh(); - #wxYield() - - else: - if os.path.exists(itemText + '.py'): - self.GetDemoFile(itemText + '.py') - module = __import__(itemText, globals()) - self.SetOverview(itemText, module.overview) - - # in case runTest is modal, make sure things look right... - self.nb.Refresh(); - wxYield() - - window = module.runTest(self, self.nb, self) - if window: - self.nb.AddPage(window, 'Demo') - self.nb.SetSelection(2) - self.nb.ResizeChildren(); - - else: - self.ovr.Clear() - self.txt.Clear() - - - #--------------------------------------------- - # Get the Demo files - def GetDemoFile(self, filename): - self.txt.Clear() - if not self.txt.LoadFile(filename): - self.txt.WriteText("Cannot open %s file." % filename) - - self.txt.SetInsertionPoint(0) - self.txt.ShowPosition(0) - - #--------------------------------------------- - def SetOverview(self, name, text): - self.ovr.Clear() - self.ovr.WriteText(text) - self.nb.SetPageText(0, name) - self.ovr.SetInsertionPoint(0) - self.ovr.ShowPosition(0) - - #--------------------------------------------- - # Menu methods - def OnFileExit(self, event): - self.Close() - - - def OnHelpAbout(self, event): - about = wxMessageDialog(self, - "wxPython is a Python extension module that\n" - "encapsulates the wxWindows GUI classes.\n\n" - "This demo shows off some of the capabilities\n" - "of wxPython.\n\n" - " Developed by Robin Dunn", - "About wxPython", wxOK) - about.ShowModal() - about.Destroy() - - - #--------------------------------------------- - def OnCloseWindow(self, event): - self.dying = true - self.Destroy() - - #--------------------------------------------- - def OnIdle(self, event): - if self.otherWin: - self.otherWin.Raise() - self.otherWin = None - - -#--------------------------------------------------------------------------- -#--------------------------------------------------------------------------- - -class MyApp(wxApp): - def OnInit(self): - wxImage_AddHandler(wxJPEGHandler()) - wxImage_AddHandler(wxPNGHandler()) - wxImage_AddHandler(wxGIFHandler()) - frame = wxPythonDemo(NULL, -1, "wxPython: (A Demonstration)") - frame.Show(true) - self.SetTopWindow(frame) - return true - -#--------------------------------------------------------------------------- - -def main(): - app = MyApp(0) - app.MainLoop() - - -#--------------------------------------------------------------------------- - - - -overview = """\ -Python ------------- - -Python is an interpreted, interactive, object-oriented programming language 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. - -wxWindows --------------------- - -wxWindows is a free C++ framework designed to make cross-platform programming child's play. Well, almost. wxWindows 2 supports Windows 3.1/95/98/NT, Unix with GTK/Motif/Lesstif, with a Mac version underway. Other ports are under consideration. - -wxWindows is a set of libraries that allows C++ applications to compile and run on several different types of computers, with minimal source code changes. There is one library per supported GUI (such as Motif, or Windows). As well as providing a common API (Application Programming Interface) for GUI functionality, it provides functionality for accessing some commonly-used operating system facilities, such as copying or deleting files. wxWindows is a 'framework' in the sense that it provides a lot of built-in functionality, which the application can use or replace as required, thus saving a great deal of coding effort. Basic data structures such as strings, linked lists and hash tables are also supported. - -wxPython ----------------- - -wxPython is a Python extension module that encapsulates the wxWindows GUI classes. Currently it is only available for the Win32 and GTK ports of wxWindows, but as soon as the other ports are brought up to the same level as Win32 and GTK, it should be fairly trivial to enable wxPython to be used with the new GUI. - -The wxPython extension module attempts to mirror the class heiarchy of wxWindows 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. Unfortunately, because of differences in the languages, wxPython doesn't match wxWindows exactly, but the differences should be easy to absorb because they are natural to Python. For example, some methods that return multiple values via argument pointers in C++ will return a tuple of values in Python. - -There is still much to be done for wxPython, many classes still need to be mirrored. Also, wxWindows is still somewhat of a moving target so it is a bit of an effort just keeping wxPython up to date. On the other hand, there are enough of the core classes completed that useful applications can be written. - -wxPython is close enough to the C++ version that the majority of the wxPython documentation is actually just notes attached to the C++ documents that describe the places where wxPython is different. There is also a series of sample programs included, and a series of documentation pages that assist the programmer in getting started with wxPython. -""" - - - - - - - -#---------------------------------------------------------------------------- -#---------------------------------------------------------------------------- - -if __name__ == '__main__': - main() - -#---------------------------------------------------------------------------- - - - - - - - diff --git a/utils/wxPython/demo/README.txt b/utils/wxPython/demo/README.txt deleted file mode 100644 index c1f635e957..0000000000 --- a/utils/wxPython/demo/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -To run the main demo in this directory, execute demo.py. In other -words, one of the following commands should do it: - - demo.py - python demo.py - pythonw demo.py - diff --git a/utils/wxPython/demo/SlashDot.py b/utils/wxPython/demo/SlashDot.py deleted file mode 100644 index 8a8fda8bc6..0000000000 --- a/utils/wxPython/demo/SlashDot.py +++ /dev/null @@ -1,378 +0,0 @@ -#!/usr/bin/python -"""This is SlashDot 1.2 - - It's the obligatory Slashdot.org headlines reader that -any modern widget set/library must have in order to be taken -seriously :-) - - Usage is quite simple; wxSlash attempts to download the -'ultramode.txt' file from http://slashdot.org, which -contains the headlines in a computer friendly format. It -then displays said headlines in a wxWindows list control. - - You can read articles using either Python's html library -or an external browser. Uncheck the 'browser->internal' menu -item to use the latter option. Use the settings dialog box -to set which external browser is started. - - This code is available under the wxWindows license, see -elsewhere. If you modify this code, be aware of the fact -that slashdot.org's maintainer, CmdrTaco, explicitly asks -'ultramode.txt' downloaders not to do this automatically -more than twice per hour. If this feature is abused, -CmdrTaco may remove the ultramode file completely and that -will make a *lot* of people unhappy. - - I want to thank Alex Shnitman whose slashes.pl -(Perl/GTK) script gave me the idea for this applet. - - Have fun with it, - - Harm van der Heijden (H.v.d.Heijden@phys.tue.nl) -""" - -from wxPython.wx import * -from httplib import HTTP -from htmllib import HTMLParser -import os -import re -import formatter - -class HTMLTextView(wxFrame): - def __init__(self, parent, id, title='HTMLTextView', url=None): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, - wxSize(600,400)) - - self.mainmenu = wxMenuBar() - - menu = wxMenu() - menu.Append(201, '&Open URL...', 'Open URL') - EVT_MENU(self, 201, self.OnFileOpen) - menu.Append(209, 'E&xit', 'Exit viewer') - EVT_MENU(self, 209, self.OnFileExit) - - self.mainmenu.Append(menu, '&File') - self.SetMenuBar(self.mainmenu) - self.CreateStatusBar(1) - - self.text = wxTextCtrl(self, -1, "", wxPyDefaultPosition, - wxPyDefaultSize, wxTE_MULTILINE | wxTE_READONLY) - - if (url): - self.OpenURL(url) - - def logprint(self, x): - self.SetStatusText(x) - - def OpenURL(self, url): - self.url = url - m = re.match('file:(\S+)\s*', url) - if m: - f = open(m.groups()[0],'r') - else: - m = re.match('http://([^/]+)(/\S*)\s*', url) - if m: - host = m.groups()[0] - path = m.groups()[1] - else: - m = re.match('http://(\S+)\s*', url) - if not m: - # Invalid URL - self.logprint("Invalid or unsupported URL: %s" % (url)) - return - host = m.groups()[0] - path = '' - f = RetrieveAsFile(host,path,self.logprint) - if not f: - self.logprint("Could not open %s" % (url)) - return - self.logprint("Receiving data...") - data = f.read() - tmp = open('tmphtml.txt','w') - fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp)) - p = HTMLParser(fmt) - self.logprint("Parsing data...") - p.feed(data) - p.close() - tmp.close() - tmp = open('tmphtml.txt', 'r') - self.text.SetValue(tmp.read()) - self.SetTitle(url) - self.logprint(url) - - def OnFileOpen(self, event): - dlg = wxTextEntryDialog(self, "Enter URL to open:", "") - if dlg.ShowModal() == wxID_OK: - url = dlg.GetValue() - else: - url = None - if url: - self.OpenURL(url) - - def OnFileExit(self, event): - self.Close() - - def OnCloseWindow(self, event): - self.Destroy() - - -def ParseSlashdot(f): - art_sep = re.compile('%%\r?\n') - line_sep = re.compile('\r?\n') - data = f.read() - list = art_sep.split(data) - art_list = [] - for i in range(1,len(list)-1): - art_list.append(line_sep.split(list[i])) - return art_list - -def myprint(x): - print x - -def RetrieveAsFile(host, path='', logprint = myprint): - try: - h = HTTP(host) - except: - logprint("Failed to create HTTP connection to %s... is the network available?" % (host)) - return None - h.putrequest('GET',path) - h.putheader('Accept','text/html') - h.putheader('Accept','text/plain') - h.endheaders() - errcode, errmsg, headers = h.getreply() - if errcode != 200: - logprint("HTTP error code %d: %s" % (errcode, errmsg)) - return None - f = h.getfile() -# f = open('/home/harm/ultramode.txt','r') - return f - - -class AppStatusBar(wxStatusBar): - def __init__(self, parent): - wxStatusBar.__init__(self,parent, -1) - self.SetFieldsCount(2) - self.SetStatusWidths([-1, 100]) - self.but = wxButton(self, 1001, "Refresh") - EVT_BUTTON(self, 1001, parent.OnViewRefresh) - self.OnSize(None) - - def logprint(self,x): - self.SetStatusText(x,0) - - def OnSize(self, event): - rect = self.GetFieldRect(1) - self.but.SetPosition(wxPoint(rect.x+2, rect.y+2)) - self.but.SetSize(wxSize(rect.width-4, rect.height-4)) - -# This is a simple timer class to start a function after a short delay; -class QuickTimer(wxTimer): - def __init__(self, func, wait=100): - wxTimer.__init__(self) - self.callback = func - self.Start(wait); # wait .1 second (.001 second doesn't work. why?) - def Notify(self): - self.Stop(); - apply(self.callback, ()); - -class AppFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, - wxSize(650, 250)) - - # if the window manager closes the window: - EVT_CLOSE(self, self.OnCloseWindow); - - # Now Create the menu bar and items - self.mainmenu = wxMenuBar() - - menu = wxMenu() - menu.Append(209, 'E&xit', 'Enough of this already!') - EVT_MENU(self, 209, self.OnFileExit) - self.mainmenu.Append(menu, '&File') - menu = wxMenu() - menu.Append(210, '&Refresh', 'Refresh headlines') - EVT_MENU(self, 210, self.OnViewRefresh) - menu.Append(211, '&Slashdot Index', 'View Slashdot index') - EVT_MENU(self, 211, self.OnViewIndex) - menu.Append(212, 'Selected &Article', 'View selected article') - EVT_MENU(self, 212, self.OnViewArticle) - self.mainmenu.Append(menu, '&View') - menu = wxMenu() - menu.Append(220, '&Internal', 'Use internal text browser',TRUE) - menu.Check(220, true) - self.UseInternal = 1; - EVT_MENU(self, 220, self.OnBrowserInternal) - menu.Append(222, '&Settings...', 'External browser Settings') - EVT_MENU(self, 222, self.OnBrowserSettings) - self.mainmenu.Append(menu, '&Browser') - menu = wxMenu() - menu.Append(230, '&About', 'Some documentation'); - EVT_MENU(self, 230, self.OnAbout) - self.mainmenu.Append(menu, '&Help') - - self.SetMenuBar(self.mainmenu) - - if wxPlatform == '__WXGTK__': - # I like lynx. Also Netscape 4.5 doesn't react to my cmdline opts - self.BrowserSettings = "xterm -e lynx %s &" - elif wxPlatform == '__WXMSW__': - # netscape 4.x likes to hang out here... - self.BrowserSettings = '\\progra~1\\Netscape\\Communicator\\Program\\netscape.exe %s' - else: - # a wild guess... - self.BrowserSettings = 'netscape %s' - - # A status bar to tell people what's happening - self.sb = AppStatusBar(self) - self.SetStatusBar(self.sb) - - self.list = wxListCtrl(self, 1100) - self.list.SetSingleStyle(wxLC_REPORT) - self.list.InsertColumn(0, 'Subject') - self.list.InsertColumn(1, 'Date') - self.list.InsertColumn(2, 'Posted by') - self.list.InsertColumn(3, 'Comments') - self.list.SetColumnWidth(0, 300) - self.list.SetColumnWidth(1, 150) - self.list.SetColumnWidth(2, 100) - self.list.SetColumnWidth(3, 100) - - EVT_LIST_ITEM_SELECTED(self, 1100, self.OnItemSelected) - EVT_LEFT_DCLICK(self.list, self.OnLeftDClick) - - self.logprint("Connecting to slashdot... Please wait.") - # wxYield doesn't yet work here. That's why we use a timer - # to make sure that we see some GUI stuff before the slashdot - # file is transfered. - self.timer = QuickTimer(self.DoRefresh, 1000) - - def logprint(self, x): - self.sb.logprint(x) - - def OnFileExit(self, event): - self.Destroy() - - def DoRefresh(self): - f = RetrieveAsFile('slashdot.org','/ultramode.txt',self.sb.logprint) - art_list = ParseSlashdot(f) - self.list.DeleteAllItems() - self.url = [] - self.current = -1 - i = 0; - for article in art_list: - self.list.InsertStringItem(i, article[0]) - self.list.SetStringItem(i, 1, article[2]) - self.list.SetStringItem(i, 2, article[3]) - self.list.SetStringItem(i, 3, article[6]) - self.url.append(article[1]) - i = i + 1 - self.logprint("File retrieved OK.") - - def OnViewRefresh(self, event): - self.logprint("Connecting to slashdot... Please wait."); - wxYield() - self.DoRefresh() - - def DoViewIndex(self): - if self.UseInternal: - self.view = HTMLTextView(self, -1, 'slashdot.org', - 'http://slashdot.org') - self.view.Show(true) - else: - self.logprint(self.BrowserSettings % ('http://slashdot.org')) - #os.system(self.BrowserSettings % ('http://slashdot.org')) - wxExecute(self.BrowserSettings % ('http://slashdot.org')) - self.logprint("OK") - - def OnViewIndex(self, event): - self.logprint("Starting browser... Please wait.") - wxYield() - self.DoViewIndex() - - def DoViewArticle(self): - if self.current<0: return - url = self.url[self.current] - if self.UseInternal: - self.view = HTMLTextView(self, -1, url, url) - self.view.Show(true) - else: - self.logprint(self.BrowserSettings % (url)) - os.system(self.BrowserSettings % (url)) - self.logprint("OK") - - def OnViewArticle(self, event): - self.logprint("Starting browser... Please wait.") - wxYield() - self.DoViewArticle() - - def OnBrowserInternal(self, event): - if self.mainmenu.Checked(220): - self.UseInternal = 1 - else: - self.UseInternal = 0 - - def OnBrowserSettings(self, event): - dlg = wxTextEntryDialog(self, "Enter command to view URL.\nUse %s as a placeholder for the URL.", "", self.BrowserSettings); - if dlg.ShowModal() == wxID_OK: - self.BrowserSettings = dlg.GetValue() - - def OnAbout(self, event): - dlg = wxMessageDialog(self, __doc__, "wxSlash", wxOK | wxICON_INFORMATION) - dlg.ShowModal() - - def OnItemSelected(self, event): - self.current = event.m_itemIndex - self.logprint("URL: %s" % (self.url[self.current])) - - def OnLeftDClick(self, event): - (x,y) = event.Position(); - # Actually, we should convert x,y to logical coords using - # a dc, but only for a wxScrolledWindow widget. - # Now wxGTK derives wxListCtrl from wxScrolledWindow, - # and wxMSW from wxControl... So that doesn't work. - #dc = wxClientDC(self.list) - ##self.list.PrepareDC(dc) - #x = dc.DeviceToLogicalX( event.GetX() ) - #y = dc.DeviceToLogicalY( event.GetY() ) - id = self.list.HitTest(wxPoint(x,y)) - #print "Double click at %d %d" % (x,y), id - # Okay, we got a double click. Let's assume it's the current selection - wxYield() - self.OnViewArticle(event) - - def OnCloseWindow(self, event): - self.Destroy() - - -#--------------------------------------------------------------------------- -# if running standalone - -if __name__ == '__main__': - class MyApp(wxApp): - def OnInit(self): - frame = AppFrame(NULL, -1, "Slashdot Breaking News") - frame.Show(true) - self.SetTopWindow(frame) - return true - - app = MyApp(0) - app.MainLoop() - - - -#--------------------------------------------------------------------------- -# if running as part of the Demo Framework... - -def runTest(frame, nb, log): - win = AppFrame(NULL, -1, "Slashdot Breaking News") - frame.otherWin = win - win.Show(true) - - -overview = __doc__ - - -#---------------------------------------------------------------------------- - - diff --git a/utils/wxPython/demo/bitmaps/copy.bmp b/utils/wxPython/demo/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa79e0a42c1ffb7cdbb90fd4f699dce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVK?*`K3`9pLxU9$U91{2|@hV+>tjiv)Cz3AyzP{vxy7<$~OeTT!c7JQf6T89- z%?kmn<${;(P#uFN<0A#FuUo(qgT{&F@ekspii W=d@ZzPG(Cb=QBs}_=7thzxV(viB<;y diff --git a/utils/wxPython/demo/bitmaps/image.bmp b/utils/wxPython/demo/bitmaps/image.bmp deleted file mode 100644 index bbab4cd3b08d22098ef8419a56eb3d3fd1a28c4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57138 zcmeIb2Y4OVdFMS~rzlY(DUp;|KoY(8-h1!8cU;^K;G#Ez015WqtJqYiLN&{FymnmT z*iP}LJIN-oMv-q?a_loUY@5I^OiPODfCwfPY z+J_HX2lrWKt~;i$^iN;zXTRq~$IK1K-j@dEUL82_#vnJd3>ew$W2S+$eCLk3n6n0xNnZ7con?6V5#P@HYLVW>@qHve zKMo`3oB%l^Ffw}FK62PLbifMdg9`x=Cq`y(4eWh+VE=1_2i_cl=}f&n=Dr@=u+cGN z;aBh;0AW9VQeb50%$f0clz8+7b>=N)x0{nlIKH*Rot;-!~hcu)Wq1VGN5Q2^WZI@G&&uYLD!+r)%oY!C#*0N0-P-oskMPGi64-FNwh3oIie#@=3GaY?PA zNCP;0uYS&ckzUmmi{p#XUI;&f5%a)+d2o=u(Qb!-T)YH2rY`ic37DMe#j_YaW*<2u z%q9gBm5Cle}9kN4wqtd^-Y<%Uj1rdRv1EP0azLihpSNs zLLG|nOf_;Qh6)su_kyFh*hBi6Ao%jhUBtuR#PVMGCB>Y{|n zc?pw~I!tiSaX|LHqWd6+-Wfi4cZff+yXb%G_&A)|W3yp&*+z_xJr=YH00A$YMGFYY zFAXghMqGO20gN~f9)!Jn_w0fB)yVR5VPd`a9tY?Yln#ms;GmVbKwxTmS~UQoKo)iy zUk)5Q##zuo!xrh)dr}I(#qmXeKc1fjMkXd;CsYYst$I)GMLbG5=9fiO3djg;B4L7W zP6&%V2HWBHhB-!|?71c`RfMbh8cqPEZF>UFckQljh2M!l{zxc|z#Q5Yfb?~1S~7YQ$kpZ8b{M!QI8 zf)q9&!#Co48RcH2cX50d!p~p?23GzxscMnDBkn58Kj=W^ECUmqVpvOXm(2#}V|VFJ z@$|I%{^32KAcDmAfQ4gp3Y$QR#WLR>(__oB)`g@z8%R+w;kScx0vf&@XZA?8w|vhL_o=D zWho&8Oz!EC?rxa;K8)XUbBUSQLX1tQOmG z5{?gI1c2Pbh*Bahj9lrzr$pWyB8iEuC1Y+%h3QFuj7c3JX7eJw%8FhbU)Xjb{46j6 zGfz%pey9o%ff0hPM~~u(D5rx1Wxt^jU~+6N;gS$p#ny6$Wap!VTZzj?N0lXp>bZvz zmEE)3X&W2AQdXAGAWn=3J#t34B%D=BVvW|!rkmulMF^t z7$Yzuogt+}7U^9aU)W=T{46lya8T)iL#_0P%5e*r96wI#jSaDbxg|^{oRQ&Sm6%id z1rRA#)EQEiwFrO=4RKF}AhZTQ6fluWM4W7v6E|-P zm|VF+*&zlS3I$i4J*Yt`2+l`?khz|nMNNxf*O4PCe~o_u?;)aLdoB~k*w~nGSez9g z!nm^8Tqc&dSY9t4inlIPlbBd8D+_?&XmECZPz$`^vr|iq&rV#6jSHxUA-|7tC5mBW zuAgt%P$ir-^mH4o!d1s@$9Wg#76F7sdKbs{qwq5rfy0e5NK5G~aV>!qS$Ru=R?S<(jl?$$)%3tehqQ74hdkhT$CEcl)7*RoH;iump(SnEhi1fV-Y6(9b z6N@6Ti+VVhv$_FBo!AjkDkj|aS>d(=6E-eDWuQdJ`0MHZm-Iq1RXK+GaK(OIQQt*+ z7svM_@w3n)7$K5-MTsDDF{m?q^;LlvrgF&H9Q+A4D)oWx!1Mwd#D~!@XdF(VILt#s z=HX$njf_~v#xS&0e3-Kz^y!kHsf)c+=f&(2Rbn?kmdg*p$jC99+N;WKJ^Twy_L#ZB z>`RWhI|By@WW7Di!OTs^p6ia8oBjJQDBrPJloW%KHF%l`>_IgLWUiGnRoF3-_75-M{x0 z$J`r^{cjF(Fmt0HdS`DtFfw_B5D3FP_6dkJvH#WS9hUSO3APLl>Kg++GGd16$w`}& zUKe!_9MIsY3qhVJI9sCSj~^*#na<5M8&#Wp$$MjoK+qy9-__$Zd>=;(0q#$)a?|0nAB zkr%7ms(U_gnL5R@=AU(4&zEh^PkVd2>zYSCW#M0{HawD2*D0RGhllfA^=ST7XBYmU zM_%coj@v$Pf10Eo;cA9!6!_+mcU#Dp>TZ&t4)suHr;2}F)TyUGd_&jI)s-J~*~344 z%s1SV`=}*8Ec(^Wpo)+--rUz=%*8H*Tnkbi5CA#L(%}{9Lz=3|R13@+RHg zz@So@LHPjMKvU_l=H}+c#>R$*2KGb8jbmr6LSkH!a~0)uMKK}kYCqSH9%Vqw;PPer*|ThYr%v${sCMi%4Ii}* z95mTyyUe>gjH7MF!S)wvE2>%J@q!jorF6L4mZKaj?Mgg;=_p zk)=!P>+7L{XH`~KR>)7!?k3}Ovw5b)wzs|SK>CQsbn@a=cs?TnF0yiNm@1j`s)x2)utmydS++4M@PE{ z2MrEKcV8b!9DeDg{!5o^r%zjt9<>}kY&(3o52pZ+;M6G^wh(?+eg426j9_9hI<#4@ zOTTmpBZ|xJbFoQh5T0_nFWGlr>7(Doc1=!u zzwY4rfqf?X?k>}KyJ4ugy|2zV+19_mXXJ!s@~oWgE&)PgMsC~~c=1Kc*|Qx74;qgi zH6Jj^zQB%IAF2v>F646YySw^ljY9`4n2wA-NMWNJl|X=Arsp#sQ%n|<6+vp|vbbQc zW#q73%7pHY!N%I|vht>)!iv0tl3YHm`}TDmK5RL0!hZCq3Cm|-ps};FvaYVWu8y`j zu3v|3fC)CUipB_}eAxJ6Ny3eEH2|SY%gO{5JS!(BCrf^+jfJ(AVhC&rA^_=qvlaeFLXXF`eO&^zvNCta!0gGlIL`10Qd?49d&>^C~*%>8>!eN!g<4wwyT&@weu-P>E(++0vy zod?gAm&1ECwKc%mc>H+h;ls_-)AUK*z(B*`VEgXfW-4-z9pkqKnYJd!@fdz~G4}ie zfswb~5*We!Adod*&H#{kQ?BO!%5}`6=@yy?tI(NgX=$mcsb!tHh|un-di%k4`fcKp zZ5oW+aNuykX}wcDhJn^*Q*A{{ab9IcReN!3Z=HFnec*tJyA6Pmix&Z`YC zW4Uc@#Rfw~PY?ZpY(z9U4)t`6HB=jlN?LMqtI}bc(#HIf+I)DU#9+v8ZcZsFiA+ok zkBJEj508$HN=S;&$WG7C&+nuN6XWFCwP6;NAjGX0#wAxDORozfunp`7rRsx#?VPCV z7^{U<>a4}!BBwSbsW3XVBrc;uFjY=zdP#kLZAW>Vt==@&j&vP5WJO3~lhBP=0zxLR ziiMn^&sd=55D`k1a{;Pn_?X2$*U>pzU(u1DR+NyC86A}v7M&QuC$qM;u&u4Kr>Cx` zr?RQ3w7fh!Co3r>F(oZIB_*Y1Xb3HACBQ<7(Sqp(APOT$B>EgOp&~RiG$bS>NPc3o z!xQo%lM13U$`f+yQp>yZn)=JTChKem+mIpF@hNt`9__#~tm`f>sLd*A$}MZn zhePV@_Kw}Vt<3tldUXP>yK@JCI4)c;@88eh!bKPct&SST*D%>+ooz=r^zSn{W=*#7 z9$?!wJ6mP77Bn>p0hp1Ikd%~}m040=TwaB2sA%7}uVwGv>cPRn?r!8{QAbCO-QGGr zZrr;UF75ibMd@G!3C5tPBs=`c=%{Lz4+RJ#23zu@secSNfia&cUtA&Sv}~0|Ntt<9wsigA?*2i`%o>$E)p!+r}?jcE8v=drQRYFdhuUEsdtC z+{%ool(5vo`24zzT2o2aD0I}@_U^^cf_u#<&9SkZ#>P-ILQ+yhLIT_fOuEMFhfWzf zCaR0uGgFFVL*oO2WBdXmeWQ}XqN1Xb3JQ|)^1|ceef<3yQ@;Sez+nHtkbuBo+7+19 z(o$-*HjIvT?%9J1#xPbv?1j*)h((kkT~SFfF)_$h9>Hysi=wk@l8Rb0^PAFg>XIQm zG|@jIB`_*IgtN%}nAC{GteE`jtU6Hwg_+|L<3b}s zynH-8JUw>p+7(+|oY~Y=H#}@Tas+#W2Mv)IK6h>*^db-tSx5sYg^C?JcDTE{Z{NP1 zytoG)aCrvyezfq>F1Xi87ZO=~bzcJwz|r#j7(9j3{)*8ZA`&VuZ!l-P{$ z;NalMPjc~wNNM%zpm zH>5pH{r$L^DS3IJ5fOfVex81w!4W~R2{EbZDL|}ccD8+PuDGWsp|CI_H8mhQIx;N{ zq!c47Dp9jduphnpQ9ob=!v=LvzhN7TwBYH}9DL|~y!*W4`r|sgM0kzH!`|o-xRm~+ z1L?iUw4mIEltxFXXBR6Ga^AjFlk7De~`bgpDzM1uB0Tjy1KBVquOTcpj3uZ z0dhSbMsKsBIrL;`i=l-+QJySrh%!I8r&q9-Z>2|IhfjLU|E zA`?R+lR}UN1@#$q=2F8%L;skgDk3%x#H>MUe zrxi4(qd;-NVzXm6++3GsO6?e^H;gx#rdv8k>zey23L7)xvmC~Kv>MUwYjvoggWC=eMBiZI`?aSITgU{re@ECOIilIe6_(ysLM0-Oi-B@ML@0_gZ zKi(O>FHn0^3$_R2vD)``b&oexbmk`)#w6xP#b$-2mc}6@{Tlq-Zn}96`?t;x;oLR! z^<`I9hQ`MFhlFg-*sQ&+t?gM`Fp)NP#b}(Xudx+mRVN1L`>i&w(uOtHwrptG&UUYu z#JGsah|utmz~BI1KOYZIPb6VbQc`GYYEp4=9{ttZD|8m7-2&)+@|#bt7+Mi&i)=PE zqw!Jem<=fU=PI9b8+3C$nuCoa8`9133~pLkTyjwif-yWH7?uu<@`*|bf!Knkj5>RX zd0)%;d8_cwW@glkdzt}YQ7hzXNnNS=Xt8~<%SV^F?!Rn!=~nymF*V^aY2mS{5n*9r zsYOL;HAQY;bzA0Gwyk_?U_^koub2Cd?K^kw^ziUVC@sxtZmu5~upT&IKX5?Jm3utB z9mbAab8bLyzy`;LCBsWxkLJK_$Zd7&>aA&8Q%Ymem{q3yMn_5ecvZ`A1v;+UTu{=U zh3ME|T<3PkZD;@Xy5SP@Y%|dtJW~wsgxp9ZzfVw5ctS#AK4Fc<8jGc>ySuEpIXNpU zFenIsprm{wJbc1;1;luTB=|;WhG5HKQSY#C)2?Z2``4ygi}Gt~64KK#q`iH-cY5r6 zrtul=iniADbX<8H{-*Kp;W99in+rO2VjqTt1V%?^5Zf#%L5zQFj9?D~4Wia!up~_Q z^FuMxY3f|@uPd}Wf;qSLZ7uC6MY>`R!4>Ecxp`xRly+v(ht`9wC7;gHexlLs%}1&n zM+}y|E%o-2?Am0mK`trFHpCF3{V#FDWy8yZ2V={Po$1BJ!I6;|PTSMAi&MwM*>S4EklimHl;DFtN)xxMSA-F)!T(73~}CAl;v zAx~)4u=v2B7(c&ouh4{mn5;0g4D4ju+eE|!NoH>)J zT|mvtZJrR|{_b7dQi|eXNX+|?xmfK_H0_{h#tO@d&8eG(wD8)1*oUVo4x)upceQ+;a^%#jSMVWz(KNSkGUvtdttV}BX(3JeLKVGlKk%ZHam zPlOou)msm=)L4rUgY<@PP*5;ol+@I;l9Iy4#=PokoXp7BSQs9~N6Y=AJp*IC!&3ud zvO}?2F{iUDQ#SwFM(wZlR&6qG4bP4f81WVu*=~`Hu}5>;Y3q&x+URK+uhq!Ibj>uX-3H;#(NGjJYV z9`R}M2shL*^a{Bh6vQ~6blSt@KTL1(+Zo~!pU|Ja+Oax1 zFWR@wSNoBCG^bvc+ov?`_cZPIHSJYxrFEr8iU*Pt>eT47=QunZ?&uM?IY47W8qwAh7dK%{%GKnf= zW@ZxbLD7Rp*PS0Ym``urWVfL7Z#3U;U^+9!ovge1D|VsZjEWp>Ymk4RX?>U zV$-&5+ZZ5*n?c9);u<_$sCfGGPisHcv{&?dE*)69sd$r@j~D9FKg@s0PnT%_sGq`$ z@NDypj*AWm2w>2;fNsaUf!PQVtA3bI?|goKpj%vjf)S)Bu@1h$DG@&qZ&G%M|dpd6zSnq=n_6?=ic0BXBwc^xY z=x0|9Er;2*zxRUplI`c3c0|+0v=vvDZ@u~a^Y3jGU3WoSVP3I4Z0nAl?)3jI1}KPt zOnO#L4fay+i4((@FE51N^1bEyQ=AR+uJsPh4PElHCHnVLjB97Lbr;rczrA(MA3Ool z0rJN3=X`@ay#hQue0TZ%s0bD5}D;2-(w zHwW_I0vH0)uW3Stz=40KEjzt5Zz6T+*OzL4sc9^B?rhtpd{5KZ;6@}BPduir7+jHLNU}_~lh3X0F3GJ-k4=m8 z4fcBe)FyEUfaYwH=ZJfGcTQGKVoXkGRAx|Evj1k|v#ztQgC|?p_$7D|en~4xEUe8= zPfu?gEUC2?KJ$lbF+#K--n$_`aSwC%^79Cf4SDA4Pm9MPot%#gZBGJXevy%W(a~%v zm6cV!y&bI5#w?E$Cn!khwpb8Q$PGU93?KMeOuic*pU>p#7>wX2k{01l5vad$g9s#% zE;bHavv(gT*(EGY4SeTZuTTv%k3n=cZ*%iz)CaNxj3{xDUz=ImQ)U=x4*lIgaq&fQ z@y=oQy6#G(Ty}MGR9Y|q@sILC!*2NUGvXRHdBd$u&-;dYcm?j<Ob@eOhD z`jT}3#M5tAV3;30lUtuklol^BXZ@J!yde(KNG2#g>Goot5xg~R3PvnxD0bmuj9y}@_&3p_2s z#H)ki;{)U3{9|I0D=J8~Hcw5Nj~=xhJJx&jXlq*=8W6QY5JnhaOi1kQ1t2(s06|n< zso5NIUO5;+O(={Ictog@!=gGxuK^~@bNe=tVSXrb?y|m}JBS;Ojd8=L|7pG6Jk+sl z|I?OdA|fNvm0$$(2~#SkGQGO9q;sIL=*?_#u~RL2^zT3e5-`L{CxnQPADtDl?T!0@ z@Qh)tPpF4y;Er8>?%vJP(B%$)=HA zZue5Yt0qp0d11H3gctGB3JDV`RZt~KUy0Sb7pHIX`Ht=miWY`Xm?;1=jJ8DX4sm-8`229stM1w_#3|ulAXWO7dxz{&7zvK|U;0xiwEw5G zD;hS2Ck6#X_#(SPq5`+qZ(Z(K{#4(S;^u6~z+cy$S^jj-+8IK>kwqvh%&D)}F>>wN zlq>@IPACw&Bx&5&kRGsVVAa}NYnKhkFcjhu&lfh3Em>oF zBAN_O1}1q-xgoE4sJ!=B+w3cS``;9kUntRGiA!oe>12>HA0}v%oG+v<`{gq2OWIRo zPo`K?+K<)M?ki83h<|oyy@3BU$!TBJAH?G}CT;{H;Smv81qImO-ON)sbcnPFH(%iR zc8}VZ{!;cc94_0xYH&3!WmHOvH`X%=_lSs?I0iZSg#RO=4%mTE{EMYHc{TPT(5xg&M-g`J6_8RQtMAg~(4S0GAFgDc_%m zoF6)7rZi>w_m*i4IvBa4-|d-(wRkT0?1U~8GUJ#0o73o(&ss6G5){Ye=7y!E1#nba znoj`DZU-ineSIY+6RuN6US4)VL4HX|WkW-Y$z)(^`GEtfqr{p&a%oT|q@!HGh?p=X z3nQs~6Dzu_W!Poykaz=vb4hkwb)X@pOORQZo#j_}F}YuB(mBW3pL9rcQ6lb^a#88j zw8F%a#=JIr9c38n{z2MBKhi1HPHJ2GHzyL<$O#Qg@lVK)@Vc}^^ad~?q$61|Fxe+C z+K0GMWJ>VUf8sQiWmi09dwOvgh$4)tC47jOHEv%9VX9 z5;9{*xbvwr<~0wO^&W4XdBr|+OB4X_mP;q`?g_Lr(&x&$m3> z{=tnFY`2ATA-HpuD^u?a$0OVs|p(wea!X{N1fOv6K3p z(_72QYxo2Q`-g=E;Y!EGB5Zt)`-sc_MZack`%^waUb}pD;F1JK2CVt3HTq3tcfGKC zWB2abtf54=&%22>1B(AHf*T^z@=1vl{`{6SsJQ1#+Om;l1w93W`&nn9)9w3iI#(Rl zpY?3{df}4q+7S{Kl9-gZ?i=g$XU*srL}y1QmX=24X)c*oCJ&xJkB6dy{7qyFhdkjIp z=Rd#S#PL<_8Qa?E;*hZ907B?HZf+I9qMu6TEBiLE%!hPjXktKIPQ(kJkB+Qd3K-s+bgDA{xouYPsyd!pAq_ca!w{zoC;BW6r`x z^$892V+#ohi;j+qkKc7_mvFm&CdHBLfgMTPJ$!crg!zWYhj^dy)Ng`HmEx{tx^nx? zEh6lIaflClUF!PF!bM$vd701buG~GTc{kHMzA62Sx3yJ6t2(BedL}#cKmpF+gx;P_ z1<#5oeF_;zDs|W)8-GT3`no5BYcS-iO9-Irk1Ip0gJ1|YAv={h?T`shnAks zmR3|$*w9eVay|R^_g}bxhk{5UV~7tzIE!iNV8k_HP}OGRfMB>1&caEdLR(m0@4N#> zNS)}*q#Qm>I-awFsos2DWJ%O`Ny$%dcy#$o>bt`_lTzf-X*}q~(;kL-!kS9O8hKP-TiPOLiGXxM1NiL2d$>{rrr_QKOotsb* z8(SXj_H#EeQeTmx^|v(bJI;U%p%q5tQ`&aJ_Qd4mgw)jdw6v7m+$@O^s;v93UL9m@ zZK~8hjNYNk=iPoL0~8p>k{`DBd83bBc-vi!AU%Lc|DKeD0Q0XUMj+(t+UmWlQyUX9 zOHwk6lfei!dGkn_abJVu7+u;kbl5UDCl=Lb>M=b`n2UMGOt@1p!R`VnY#d;cF$&Bs zEWcP1@wu>7-(Dp`zC7!%^!CsyuUt>cQ7CA{(PKJ5D|0Scqk~0kzJC&w% zskpPBBZ{gyf@OG^UI76lt)i3S*Sx<*Nd6z(6KI=iH+lzp;FUzDgs0aeE&Itb(KCOq zw=npopHL!b5N^w0feu2EQ`&0#s))iM()4X3)wccZ? zOerdg%gl^ON{Y?MNGdF(0J52+#)%VDsr7>qS-40|0y+hZU_{Z4^uKaIuv&3X01>ts z)|4pqmvePRB3P!|IN*C>+_D1vJMV1$6Q^GOqTalX))%6al03Y<$!=qDMJ0!26erhp zmD#4cI!-s}wEQ=5G2%UUB6;PHRtW1hHwU4MZE zt9>;P0qP~Z&zm#(FkF}M5xx(*rK9$zu zvZjKZ^0e&IREd$i`u^gs$y(dKc2WL4XX@WW?YCG`j}Z}XsQ@NUZGzneG{h!f^+I$} zEXV5TX&-A|{@!w-(GUVo$+@C`MM_3Wc7AqIX(2PBnp#>qO(ubnk3PQEn}>AIk=~Z$ zvU%7Y9`lci^2XDoN-ZM%*@@?bH}N}Cv0l(G+t9HNLn}NknBwI8s>~gq*r5-%youXc zH|?u3Nc$(62J7t;0Kpgt&G$u2*%-RgS!RQ+KtaX-k7+2mc5u56_`(%buxCO>VeIxG>Id%*gl3iU*+9o(QHkdlG z`1n+UXw)R{-%rgd@nJ9`wzFs9c`zcTW6L+-sP`QJ3Q;&jg$A`fXU-sCfddHAfphva zYDh#8Z`~pS2CO3AiPZZ6DJq+{dSFdlS{gABoLRt5kEP_sQv+`vZ|~h>cXw$hGtP`*{94#8)oXfM|Xyf`LFxh(;}RUns7$>d<f_HRi*Xy70t~Q z@YpY1qD~$Yl;Xz6&|7`P9JDt+@{5^*Az@2&glzee;icuK9!ifkeR_-D1OH2)-u(}@ z#m_~TOyoXsdv(f4JoVwtmTD%sQ1?qsQP*@$&rCh@P5KXYQvl42GbZMXx%T5GI+m3y zSl~sdlGg`?Z}O6GPxS5OfihdA$(t}{+&UC_jRZc0qymGi49z1dr;HzgKE<~61?^b_uD8$D+NAjpK-R~(za z`Melweu&F+zaH@^6$x1n&t3TJiOC5$x!F(s&3(S=(!r&rz4m8*{Wl^~VcAuK)&lmielceo@3tEmbGp`^AwzT%;Cl<))xTmKFb{eUsvkp_m7QD3lZB~um}73EhSxbi!z#GQ9*?ibt>3<>$B{Iy?R zs~y*fB?g)UtLv*t2b14tPfMuSLaVC8D{;}s^gxNJL`3^vmG(1!oi*PU`~^ zn-}Yu>M3F=XEg1c6jSJH82&e;)r4@v*vs$|(p|cuR9ukc-S8(H#C?dvFx*Hs0EH5n z(eJs!vdTX)B041{EjJelrZ_}3j1)u7fyO1jTp|P}X2$&(@yHZ43_Od#sjB7J{#j=v z&Dr1>>gBS7*G;Tj`cF%RMLH)W*k;q_+?HIb0*K2IiWflh@PJXtR*=&t-o+_KN+eC3 zTmeSJbm^nweT9Tp2+kwERL<8rWMo6Li>0LH0&XI=A}4b(A!zu@6{>U1v$Gx3gMtvn z+mh|+jez<%AIcKY%l`i4aiX)cnflZ?I0#51Z%G}>^%J6_)|u9+a+Iy!Ti1Nf842Mm z`a<5V;7Iz|Im^%)W6W#uD}OQ%M+8HLwGGw{r0p0E=nYGV@Op2@(qAmmKCS;&_z3W} zywB5)r;Uf3`wtkHN8dYZ=$kVR9konew6n4ba+`5^485k$9N+o30XmJY5g*nPJF=;V zi7zU`B@7=+UHcswT~VEY!v&)Eh^JGi6KRSBl6;U7DtpB!7_3&YSh4gql(G==^QH{{ zUh8K*-~()&HI?<`51$lO8E7>6hn66aG3jZ^-l(BtCKd-^KXTGSD1af}EnlnjF~%3~ zKL0CiI=wtXQWV%25uO~s{=)iIe>`uPXw2s{(cxFMjn=IsNhzkJ{)5QB;@SeQpp&<@ZZ6&046nnvwqcQ1zr6T;S4QEY&X<);60r zQ?Y;qKpBw~piVnyI(f@qNjm|TnVbAndbP-|3C;hsH?#l5Qe6i{C~1N8A{NLK5um90 zjP2PUZq^@--!ZIZ^pqnii7|o^w%pdHpu6!RBag@Q=kmEU01JFVa~pN5G1klGe$sAj5B^N>J)wkHKBPT2wE?h;C79%^kj0xR=G6(EhNk)otQR44lT zlgP_2$zT1?G8XqWsSX$jr*XKcw#5_1uq<==RXW z+$g5fL{d$i8r+Q$(5G(?YvL z$p%u|hc+Q{MJYZ7s7$Y}eY3>7vZjhs_Ck&-;kk_zto<-xz>KUT@-pbm+iWT zk#k~+l8;9(ro!rN1gg{#jA0zWap8>&ZcU()M&vZX99E9Viio z(`f}^x&(c~S=@rWLW#)h**{ydo?7U{yeMW#u#ybcFL77W6D~5lji1ZJE?rH002glCi`CS@nx6CJ8a)-|Mw)6)i;X2djI3iEYkGT;{QcwwaJ}X062J)PVDSw$4iGyG5PF~Hi5J{B#CA`Q7>z6h zYOvc`UBq_bLi3(IWmaouLxb0eFdf1_(x1MpcezJ!u)qk_8dQ6RhWbQA5ET(U?CZPq zAEbYc2$HlsoAa!y%N1r}xHq)dSxOs^m)G4X898fW0V0)6b9G%^PhEmFA4{rl{`&OiKrs z1t!G9{GK5p2tda4h21;ExH}ci3foF|FLy9P*dIGz`6JZDrJha|;qkwh5x*Pypf4F* z;u+x{ksOp-6jx^{={wMkmF02)=9648TOnlKw2KZVwo~{W5bfg=vdbq-RNe3N*s=Pn&g_!B3Ab98yMCvqCwWFPDH#n7OjB*1oHUak zXId!ry|-@B5->u1UM!+3-+qhv!BV0s6wf<5)Z1<5zuE?dVZA=|$iR&oEY!pFVRDx# z)3rKA<{{lDDV)g~Z1^K=!3hZ=iHZ2{eu05&e#>dl%BHSuT#Nh>o$u)x6z!K@n#k0% z?(s&_2cst~N-C~C#qGSki(anzpbw_6cpB1vRa(Um9@&tC#}Sf{K(Lg`d+*i|?LQ>zzOJ+G`pWgHper&e3a1z)%ed@(b*G5K z<2B<(jp$cC+qs?zq;Z)M40nUA+;PZ&68RuXH@b{@r+1k?mcWe8!p2Nymw+<#2%h`4 zFF6B@1QsM~`4{>yn>#Eq00#5%^U|1N%Dmm@#6>_-)3ool> z2@a~TWc3A25*T5jX}N-~Sjy?B9lpXa<`nkTJ&dSD*YRa2_Zl6=9~pV+rGAzIJ9)Bg z-@clW;pIPZW)dg$r+bwKGpCriwAgSN5xJm* z=tdH_7^shW&mCvQD#vo6W3lM*{LM+PqWaN$gW^ z@TRPdfv-NVKgheqgHm*Y!Rw?0NnYjLo7dwy7RnGRV|F$!nen)TKbMHUz z(-Ioo7#r4*6kVI1Qc;vvRz?XxTw>z$w_ng*lB4>?VM$^5-Fzr4FRagQv{V?znutLS z9W@J#@ESO|8WjzWJ`=s{=gw3Jv7Pgx1byY%mH9*YDC^xX+F65z;#e#+#HmmvQk!th zZy(Sj3#S)ngw6E!@vUEx)5;hHHe!s|#pZK0*t&1lx_`g@;K4rLAPGif7K!W<57n0` z`+!xLSn!rG!abx&X)vE&?(mq8Uf*@yX>0vz^p^M4#E+zAj2Bj2ax`Dt-SCA`y{f?( zWAqsnv$|N8B)%qlTaSmRI)>SZPLMWr%8mH^Bvxo)5}B|<8yXT1CW`nlc^q8nL;7Xw zhMq2O%g?Gvp-8*9Ij4P~mK7Zz_C#ES9s>fpdQUz6Q7&<2JnH`Cj+!ZQJ9E6E?lSNiTJFTBjl9A%v#!yYp*UN~pN4 zzt%L>>NwCdeAF_2$__x(YE-Jz>PG9f|B(!a|4;F(_2cV{OhxL{<9P-u;wLq?ktGr15j``b6thvNBWmHClby*usbvAwgaXyP zhxckx=zB1cYUKfXAO4l=oB!kVri^4Q`yb0(<+UP9s04y!s^udqm{+)BaHT%1$7N9K zH)X(Tk3Q~Mmd_WlOMin~qhCoHU0_252tzgc0?-_chqXe&XPOEO7dgWKmkqpM+J1mX@_P zcJAMAp^W76gHhY}7x1mkwil z@aIF8d~bq6F=AFf$(VnyRnqyFW?w#Pa7`cdhUa1E}pP$dhamv@(7 zBjJpoH-#PnCU@?Ld1o)Z)c3~Oz;DI5{gGSzAG6w7Hy5ayH-QxD;sDFRgJOMvLx)_g z{h$M(N7QRlmBsau^vHh>y)_p)p81Ik=3`>vBfla?>XE~JSXS-+k;KR~F_bLJKmrc+ zK@=CY4%^4P;Y^1y-0~){cl*9NF?(^Op?j>61=E-g!-B?-bl6?}=JT6QJBs_fCT{iY z#QM?Gmcb*Y>`x>w`^7TBOR^0bVR?Yye4Kiy*w4sWZy@@ca@xWtMD}Wj-Lu(j?!^aT z0Y+A{l%=g=YN{%8b^7dxM}R|PM8&&WZui9(g}RZtM(~EL*J9QQrgho=vJKynnN!+; z;@c;4tnbQJ{hn026wI)FOX^lc2TB%QOg91_)olLcz_q<7==E@TcbLtcW^jbZCgC7EgRVFfT!3uHO`v?2J)02q z^3_@-o;b_w8|H)(`Vi3%xxhFb>nay{JiYu}Q2L)wZ%c2B`yV(b_o)P_G%i1qhP2cF#x%uOa)A6 zF*0%~Yn=<@Ltx86)7HOoBJQBJWyD>K@ANcmX&x}JS%-QSIKHEA+)VxL z^40$;b5EdhbcN-`6KHk@y8n~cw*R9{%DY%g9nfId4{oHvAo_2m-2S?@?beQFM<+!{ zKtp|8qx``53XH%uZ@t9@*v~{PMX@3r_0BtRot_tvXQ7L!h?JwKTh)%&Zu!$KqObl@ zq{)O%`H{pad%Et2+Vbx&U-kE^R{rhE)!$#mw(9#UMI+g8BK}phdC9*oar+xLam+eh zBkSo*u~A?t0itFWizKGZ(Qp7#fCflm4=-W<(Gt}{(NvTO+3;JpC|B;?w@-hYHijii z^Y(2qAs1C50rm0db#)*I5A@+Zn8>Bz@2e`gA)ujhf`r=mE!f8}gUtUD^cEj3cK?0% zjeqy-3gVVZ9x`5R2;?7VZr^iT`}MVvUkq-)TjP=jA4G4)n*~q&%Np#Q=l^Cao$#xS zuj$BC)Mw(wq>Qg=p5F~|jqmiQ-;4QH;j=&9vhv5P6_1HM{DuIBEq|ab{m#;j-`F1g z<-Fp_;s^NoG2;tH2>yczu0e^g5DKP83XT{R6~HBItrDyR9uW$=vNf!7`5H?4!WdMq!sb-r3(^NEt$q1wo=Ca?SUhWHEV zVxA+M14ib(1503}Uxc7V0D-*!pg@YKkRgm<*D*p<1wh_;2O!XXR&t}Mn1wtVfG`Dy zy&&qXx0IFgtI(^cek4Zj>5+N#QjVo(_oQdUR9J!s*7IeLe#naIf+UuibnX*9gr zXuj1tdeQR0_&%Oq!^}YFZ$>}y+LMs4rnLMj<4a)@{@{w=TUq%<+r#7AVd^kl+t>ZZ zUc>tbjsNY0`3qqg%O1d>~=QMpYOh_FoM4+BAE|;T*ij$KnYcs4=ZNX zv9bYH$K`$;B7#cB~g9QX-4=(hrN{yFh*x{>a_C=nEK9O;JbW(t&W4 zu1D~NC4#Wu@Yx?3=W#*9bs&HsUn0T^wIH zXW{$|Mqn@%*J3Un>tiF3@AF4K`APm1_av?*Us28R10NSO)B#FF0ff8;SL!oQWm%Dq z5en2vQXCZ+A()2bM~MIsA^fSpXD42yE*?U@kGbCBm8lqAF8^J6D8PgZV0ao27EmI1 z>qN8^?Mjbu3Iyqq2N|G)*hP95#~037I6s3Ckuj0^5riv?h$*Ev9Owel$JkCPxP;@({6vJmvWvw1 zrGbPRqUeQuH(H5!GA58%Xz2EBrH>Hx7+1tU+4@-Uf8I(&+yHw|6wS)FlJQ$q8yBM% z2|KIyi#5Kcr%@KTFr+ovILn_ZmdG_|5Ntve6B`bc3UI04e$alAUNL2OaeP03pC5@4 z#Y@DXFpbzaV168dsRuBEU8G~=e&z!Uc*??w=Ji;-T z)DJ&&zew-m_&$=K7laWt=NdWlk|;nzkBBUuoS#SlR`}QIW5C}QibTZ~byafdlHmE9 zH*p6DBXd?I(S$l+{Xj5s^r(ubski~SAV(u&wxl+sCL;SUg2TIatB0U>bd)KW01)(u zgo(O9?12d@ct0wYbMKmmj_zS(k>17em0YCwc|jOq4yn?`w`H~7>w{F+sCcX}x8(FI z?j}}Ek#bv)BN39lb4SlmkiwJ2Ej(FRS(GA7PXiNdEu}|*0~d4l9!5x!gAr88sZ(Ov zRi~QZdV*K?veizD3#02HuK#FX+{4Hsy^G^JkDnin5vdNavV=>b{E@5DUcD`!YIzmI*zh6WMIKAC3`Hj)zl(uqJRh?w)`%Y>)+ zEruCZmQW=(Zs-`1>q)xY4QhHnNR@mvNX)-_k>17e{a}86Bt}$>SC8mEjFCHoL}Ep4 z;iw6VOXa)KAOHk68P>yU!fh8hdUS`%Zol^)Na0ITd!puKWJE7{1tz?s;m8r(5J16i z(HhiM3Yf?jF$=FBJtE(vshC=m$bdd_>%4K{rT9VMS59`MfmJW z1}=`TjQqIx`C*K(R1U8ufv4`nh||^*dgRU^)&7*J0~1meB9~{7(IolKM8G1_5V9g2 zA4C*9Q1>Ov?52jG$#Ou3Qk%F(SPZ zV8Vvor4Do)IJM*g{gFj_F*04Y^y2tF%+C*CgoqFTAxs3nQBR`Bex(mfF$r-GHGAmZ zJPuSze-Ghbpn(#>eFlBPOp?YD@m_F&S^+E^5ZaN&d4)udt;T z$JaG4=~4VVA0u#-;B)LB`BpfEk%xs0{)l)H0Ivg(#Z;ucaocg&)o+0SmJ&)qcPprv za=l&g_HC{qXQ6nQz0f8jBd8KkK$sV{<r0M=|u)Ej_-%^^L&iV7qB1i*riQido~K)g*=x_ z1S<(IbO$S$GnY!H{{V=Z+xYPw_kaCYi}e2gVSE)v5V`Q%;G8HR6l-nm5o&@eDZZhq zkagQQE8cGTx|pL4?l|U68Em`@fKzl7Ru;MdVJ=?l<9rJzp(-pN;aM=D{>l{sxx##s z+5s|F^Nvyw6CvfheO0#qL#5P(10qxHK!6ApY%iP?6{=E5IeQj63R{cc!m$Lq$dw3;@MaSdj?#GZeW^&adbc(9}Qb91?_hHJR YLLwNE-pwNc!k3HmE{^ZQ`5BD-Z_iK|A^-pY diff --git a/utils/wxPython/demo/bitmaps/image.gif b/utils/wxPython/demo/bitmaps/image.gif deleted file mode 100644 index 34b3e035701d1dce9ee3691e970e30d71a9bb456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7116 zcmc(g_dnb1`~D-utTqX;>kc&|RT4pmR*e`{k{}3*AfZOB7}2UwyTfdSYVC+s)ULa? zQM1tsEv-(gHL6>6zVmtM_mB8qznzckypHpE9A{pS*x2Ds5BhxoS%J1e|L|D~YAQ}xsV}ocs5KXYt%f^D(G!UB&V)H<3!Ol}2 z7Q~~0cx(`l2jU3;C6E9M63{>bHb}q&34j972BZNk;4#oG*qO6)Xjm*8i{)Xlf}OEI zMWbP9Y%Gn3r3rQ@fJ-(F%VuNQJSCiWShX0yb8_!wP_@ z05u>6Km(Kj7H|g)2DAZbKnr***fF$I1BXqc@n|%`jz3^5P_fxGHjl;@?AQe;fJ+{m z#^cd=0>C{01@zJcY?^>a69D#rJOE7KH4q2jAAkTH0@Q#Q01Z$AtpEow7|;f!0WHB! zay!>R4ICbuE!YVX@CS?qDjtu`69Bmab^!|Dk}cq|1wf8K(m((J7tjs_4Y&oO1o8kd zf!9DB025#sa0pNXVgNMo62JmDfWd$^AT8Kg(M~sT4b;F902>2>1pEPGfr=*(>@4u_ z`gbV)Zggj#f0wia^*8sO_5O`=hw*PZJKO$icnA5fhn?mB#oBT3cM>2C{2YKS0pS6j zfKmUy4tnPc*!dPf;sQ{U`@(cu`SDbU3|wVjL^&eOyAcGI6`w-o$TW$NI$EjL=3rgw zJMp%P@my^u^&{diHA|M4s(PW$=SAz>y$7?=9tD*T3bjsv_dbczymxK4+H_+O*5C1p zq9$g`BT~n{!Tt8>7ZV+7V_ApqWbZv;yfT;d&;5GuhOJQd0udp^E+YfzHFJM(R)uo3 z4${o)Yk5bvY}HBbA=>jPFk7Dg`oPi4ek?phMa#E-CFewIxkbRvD`!~bGN8GUnc|jSs%62?zXS$H&?j5h1 ztO8&4^F^j;Qf*zhRO;n_!m8Dy5#Y21hXKt(d6K~zKTQ=}MD?;!+bZ^oEZ6Olbs>7B zy|lE(YhBNa=T>VJkWD@QDI8w0)x6^NUUu2evyu+=S=+1oCjaEoablqc-n6tR$nQt3 z-5=d?$Z^cmz&VA^Ke%Ex|wsSHTngM`x!Wjea3{T&Oq?9J3?;gq7T*GUa8yZx>z?{}ObAAZ&064>B; zC-vWF>UCBy%{c`xqi4Byp64xw`^VTNRNmX={D^CrVJy#2NH&;PZM`eH7|{<6S$~__ zEP8Qv*f8+-KclMKqESP8mI6NCgFXl~B>&5(Lo*+|)Wo0pFS}a3LtHei$(1+-%EI5Dy_ZZYzTBCcO#5oSXPj{Vp8xs2ZzSDgYX6nYAnuZ* z7xD5-QZw42o9q*hR9t?sToXi#5UpM%*Vcd4~m zYP^NI2~{kIlCKNQuAui5Wd}&q+Tb$c#X>Aa`l*ij4_NLoy}TvMWReXwT;!6{xc^vl z@tE=ZcUO*Vs3*cj3&6uxBn90xH6yld7aD%TK5?%`E13OdwaL7wJw=V&I_{ukQFtZa ziPEe&(NP$sc8Zi`PJU{ycDIdGa{CcF(&c_zH7Dt+gcb5zGDn^iP;j>*6SLhf8Dte2 zZeQrT?^+$ynoHLyF_J;n;nWAMTjHO8o)AA#d2fI07yVZv_Nku{nIsh|f*HU285%Fh zb8V@#Sw}xKUQj5ztF|kTw&%Xts0A zTxq%@FmdO?6hy5-8lrl>(iEcsJ@lAsC9lL!!~4sfDheXsURRE}yXT7V^S!nn-yfKN zed9@ku}i#4dY^z@+%~*TIDuRyARE0 z$5PV#y{Asd@6MYE8l&!+FoNjGmhew!Uqz&Jrz31jXUx4=c7rga0xKcST<|+L{_;UB zJC=p~RR75N4iEMOEwk^)AV+VdR72e5(N35Q+Bg3BG7;9Wb zn&eO%_5OXU)W88}Jr41&5j$=m+n|id+;zhjq7$SEon0;?<2@z+{Om&4`qm+C9QK_W z$?lgv-sEdyucha;pwtGvr`o*mvI1FLXw0GoII919_H_Hu2>g~gSmjcnWB>%?etg&Z z;SNYFt6lj04F%mA8`w$ifVNr_(r8h)p-F^zoJq|f>5jzcUmVG4AHS4Q>CQ!IXl)r~ z?P`Py|N1%7upUNA;4r1R;R*Mp`9pHW?P;H;G_IGP)x5mWHlH@%Dd;5B4HmjKE}Em; zhxEq2NZ#mALF~~W6CRw_Gnb;U(w%LB-yfjV4hLDy7D@@7LRY*{D!7Yl$cZR|64Kwj z{yHMEj~P0x1>5_e#)wI=O1E>YVd_Bcj=Ezqh05FrX`}k>jZT@zZ+Z|Q&Z~v`A)OXY zU%WO@vZZ#=Ihg= zppof@L793&81>eZC&F2hQAQpk1|=erN$*2F+{a8olUMQrdJPns9_z#_hACsHDSfQ>`%JFq@}ufBFi+LJ3L;yVu)T3>6~ve?WZ>8b!3iwX^7hOuF=`Q2?^T&vEL^DC8$d|eIC@23J5s-DsDA+ z-q**csxNc?P!X|@aqwZuW-M(r4b^QRkTa+QfVe= zun#QMXdc>@o%z3+H_p#B9@%Lm6)ejt?KZ|a&z^0?2cGW?gS@53*tlxjfW^w=q}<7Y zTk`e@aTMNX$!w^A`h2(gv{=6uWb<Sy$l zA%qri9RHkd1wk`5rDL1rjPnSWllH7LTe4CxrfNRPgO}kF+ukH67zZjv(zQk7*Sg$S zGSD$yr~O<)t_MoCRysIqV{%$$lE0)sG9r@%oz$iXX@@qklctQ_L^zA3U6NsPy$&|p zPnent{5+(nkQc4HC99f2ynzqwojnVNW#w!+C6hy#ApZpSD5-1C9SXtg+Q){B)qcpG zybU9%Z&PN-Q79TC7Z;^xPWexZ)luir1oajsLYUC3Sl6uksr%?~jk%Q+M+LpMHz7i^ zCK8BbT+LyjI&)I$UOqxRWy<;CmYE97vi0$$@j_SWt5npt(9Uh|+I|hp?T9gXJtmDw zsBw3IPW;yc7*A9OGX<%F1lTyqmD9FeOn3VDVg zPRQyT7zV}`Gi?;|lA*4aigkr)X6 zAQY^=?FH|m|7((ea#(VA4})3m+~^xei97$!IPsWCgq2nRtpLg$(JqG(y|0Fy=R^p` zdLGpJUJ<7z) zp~sILNpWF7AasaRe^#=nk%1820i5oA&{tMoShJk*KC);bF!!EK+#gLd!xpi6c8<$q zD8V2MB^Ls*P1#+c^eMnDC6bgp<=0}HTGfoEamW>`v_UGhmC#7K*!C##7tUkKUBKe(;SeT!;N~ zABB%R6>^P!H$AM)BMhaT9>yh^L&xNqbLWEn(p776Q-^h+PUYnh68@fc@=V$d zhkUw@P2Am2*S&O(-9p?fT4gk5*h{sG1++^(G>J+V58s4H3zjRGqEX~H3osr2?v3|9 z9zH1Jg!3a=%AFSQg_}>_6rs$0=84{N!xv}S&TBPv9w%G-YKl-fINq(gIVi)RLiq{VkL%hxfj`MST!-C#g-UKP9ZU@Q)YF_l4*pu?RU>$$ zky8Y>h%4$W%3z^n$o_VIkBUEMdc*Y)7}PPn{+iiu7u&ey(c2-9gQN6qS`4#vmb0&3 z?M}$EfO(B`>QSw(gaSWzAF=KF$+{fvH#HhRDd1jrvr_t7b_Nrl@@hF=Ye6IOdz(mB z;b1L8bEFkvv$q%_BcnyUKr4I{Ai2DD+fc$tQ;lobDp?D?QskCkX$><+`1FqEam-uW zwL>udSKUfVgcIvEiVdA_Ybbr*f0<0GF7JUng$mh6hH(fF@QJRaon<3e#9Dfkvs@1i zUr$m>SILUHM}`_{R%i{tTt_twlZh)e4v#fBOt%i%YdUy7O%Za%?Z+u+f$Pcj8u}Cp zC*fJBM06_JmN=(Nk?&9_uBVd^FDh`A|ew~oZN`#anTtDjs28(s~O|bKOijG}O8P7VrcEQZg-OYpE-);{)JiLh`LsVo>F$r44}1;_6l#D{#wYGBrxko0zcEgi)er zV!e0yt_?<%Bq|iXprM~;w)U8HSJy{uv|D z@qSxPm!y>Ld8T{;-Frzy;kSFusr36d{@l{pAprgbx$TP1(v0Fbs&XhR8+A(V4LmrFIctYG9NNhF+|N@LPti zTuBOZZ&R)P{vMd6mG^cf>_5Y9yHBd;jEl)O!{Tor7z$bw+tHPr-#H3dwYDy(_QZ%& zqy718I(<#Ev7xVLpz=5O(bfcb=m>r>GDfx-HZ(iTd6tc&XDrTJiEc;f4O|g(3o+!P z4}VuiOc<5%Et>oc|MLqKy<}KUn(>-z?t!(T@C~@h%BDKHKBwYTWKd8nVwH%PQZD!C zigmaYVbv;M@fn)vrzgzs`RUoknaDe!4XdI}CoYZ==b`k`fnSM95ed*{&J&u9Ow=33 z#1Wa%mDmR^c34>iH7*vNt|Qz-jX7!N`jKbw6oZ+fi|Ej~lhYnUuu_qu@F!*+a>6nu z2~jrpo4Qr6G^tv8u1#)VxoK9$uc z7LWWkhHpe8HrvBIMrocF#Q}#D-5YqD64#{tGD0||@$Y2ouOC<(uxP0fqlEcH$G%!W z86j;bUy3l=_SZvXJ%eP-eZ>WeH>Nwn9k=DqpXu&5Lobwywcj;cs8382)rp~5;({)W z8F7!rM0;tg&0?PXvj^o9z$E;5f!UvKvU%u;Axqe6j_E9yM>53h^Y>Uc4Lrt%8>}tm zH1)YHVa>D(gqoEpO-#0$nyt(Yu&{hcEu#;A+t6eA+=40R1vLsBLQZCErK*Wa$ygR; z8qw6sDh=Z-Yq^Fbmzn8TZI3_BF8B#*_ntV84{(V#XR++NvgV(m!Gn`%zCz^w<;Cf- zJT>_IZ>_!YR7t(%2v=FbiRKS}xY2eG|8>>yYw&-jS>OKn_#3Wx5p@aSE8dq!+rtkV zEgm*E+>m;XP*r)?Ipc;Bf&~T3E~?ktA6Y;g-CHT7f>5i+7|Z?1+jPGJ7q>JrVs+&% zq6_7mQZZ_+E30F!?322R=KGLGt-MX~P^VdW89pl|_5EeynuN^W`zdO78Z~5EH9A}6 zXEt?bhCS6`3S(w+7E9z(CGMR*nG{ynuV#}Q>Sw@_;;KX!ew)?J0{P!B;pK`dAH(4O za9k{VIrUwX{!` zJfwVdT{++!yuN(&pHJ`n^X?zjS~WYQVJ+vNmiM)BzyF5?PdjHha9Hq<&9|jLr|`A^ zY8zSFx10aKm^{}&)-E5OgmDK0EG?>_tuK6&X6y@=9Kq`H*%({a*Wf2c3(5UYyhQ>v zzdqXc5}{Bj`?Yp4^NZXdf3qh*-eX!`{f4Qh(fb+i28hIZPeK5VX%pPb(5A%QIh3Ij&C)bLD!ky)8H~lTI z9JM}h=)-6K3yNF1_gg?6)=0sJk8wFB0-=E0t=K5i|NgUc!D*tU4#i~S{3lBS^DghIC$AMZ`tJ%)yC3_>y51MtjFZR=p``onmFt8*fsPFveSA99^QZ4b zqqbj^uH=}yd;6gSXO;yGEhiRu<(rqijxYnsokc}$4pMEWE!&w6$9A=6yC5%`DJL17 zzy!_Tu92cWdOG~+^g8SN8;66XJ*XW1UgJU)=GVmUpH?1nd|v(U-0vS-AGWiIu6WS# z`OV%YDD#$4VXyoChHfKCtBd9%NS*HM%&3pYgan6!uH4)u8{7ci^Jwi(YCz&fMS+G@ zsAhi4#ye91hGK7!w~O-7EHBe}ll$2bbEVv}S3KXM9ep-a?ZxbuhPrX)%)~9e7U?vS z)0mrw;Xsx5)mTnrGAr}+Ni{>c?bJ&{<0=#$Z@XOSfm)9UTuQ5ew49$~m|g9xVcy>+ zZlsse%Ws~f!rM;@WUf_)8k_f$2p0>H=W^St%J+S#XfnN5KVmL@8grO~_J=ip?#0-) zii@ShJXE(nflZ=uy<3C3AFm!NvR|~0Rg!-$4*&vz0L8}(@GuLI1%N@IKlkH6 zdb}a15C{?y1PuiR85IK!0|Olm9UT)37mA66gN2R`C4}PO;S&%LU|RO=0MQ&?wy}S3y?Ub`Xy%RVIxY5Oo3=$Q z&(qv&P^m$XGo>ILnJLhk{X<*Ud)BobK`Q~awX*+dI-UNyz?08LW4)_6UU*@?-cZ02$W$D9Ge35)b_N57gw3cu_DJ|WlkFXn*&h34%~&Q zPYHtPrl+nAy0`OphEeY6^lQ%*Nx0HluJtxp*D3HB&cq_OUpMeMXX1N%Y93c^Hk*7z zj`}3=rFb8?CBbKxHNnLI=am-xNgmd)qf>JLH9@Z`)swif&+gLBs+TP?8aHXI+k6fj zs)(?T;1pdvDEclNR&5hJ2OZfto&u9M76UF+Gj0#`4|aDPUlSLwBWRKGqaPIFVjh{) zDR(mt_EGF^z!JZRT%?u&{ag)}Q7QK@==7gr(j&GoRn5&OO`oRMlk(8ii0*$cYM^gH z`%zAjpZ|+uMc__;9!UzlXLV(-oIqr}oxMeZF>w63JTHgho~=cE>Dx!f7@+_V2#5qk zdgSyU+8)_Of&g&w@NsBp>3ER|c(|n>*+YGVfe?_!Wg;R|jx00~WS;z< z&L@$q$GCRN(5Xs9c+O4|w~_}d_~Iu8|CF=o)H#Jv)$6R-E>ILT8`QJC=4DlOPjmZF zz*TVJH_Tm8%FZG}HoW1fKn)AXJFF>zG66o~i+U04MK1SA(`LB&l>18eyEmdxG`7G> z=~?7)tM9>-7bwyaKT0O#K94`{ow74%qFH7SK?EI5X<_TLfW6eaNoHT1{a)wB zOOQEoG$a%#9}u}Gd3;YsXvD}q#k3=yHcx)IcA8q6S2EEtn-l4(dxd7OmUvY4H@K(a zvvG_PE&@iKyssz)i8a#R<7DfukzHX4s58c$-#B{|<$l5%VSPJKW)}gP>yTA#_3E;qpm(WeflqHiBg<2tgU>rV;Me?Zp!I%RlQGY9(W{hT|Gi)eKD3;m2PVb$X1GuJmp zw@-xwTX#;eF{4_N*z#*v0uT){9)qs*|F4kx_+y-M;Q)YOFc29D0{J&i|D;+Z92y7| z7mt=(TEi4JjGvIRe8?jcRMmd;H)0<{S`wI6IF}=5^Ii8)9IbwuSG7SVayYtt=?www zi`7ThP=Y)X!?shFRf}@TYDVQI9SXx1(DS*8=~~RTGZvP#ozrb$xj8SnK#DIVrx9d^ z?OB5WXELgbX;Jmm>M@a@)*8N>qffr1m{PDtD0YzeP{OhnGR2)r`BtTtn+~7vE#-L; z^wlQYQTH@{2pyNxR>`tbBBcd&f|*WO3TX<3qhqprcRy}S zZb9w~?2!wFKOO;$Vizr@KUZA`TB7FLoG|^me<`ZLn2=aShOzkb!=5E$<*--{S!=OV zT>3|CYm`tm%D>fy&cKT-rP*U*KjunfWYBuk?TNj5f^P4Vw5CXfWxi#?nKPLbFhfw#@y`MO{SR@Ma;Z{(ZL^Mc;7OkAo=GmCKCJ+s zmvR~i{U3e|aX#`(hx3?+9|sr!{!>uE)6%WG#-yBKCi}KN|j;jJsZuYAXaMo*5eyk#TrO2Q+P)@Nv zW<~uWFP^&z<5gZ%D&iOvH_my>1zxV8qwxRzvE-w(c>WeG5E29gd8}K1{Po9KxL}$; zf$-=p*fO*oNyaQFhmKb>LH2#s@V^BNSrSyCK}NIKPo}t{P|dkWc= zu(P2Z-wsH*Xf$30m_=#5EyP>&G0GK?ZA}(P=!&z^Hm}Q9qweh2A=66$t?U@+6RcmQ z2QKA#9N%^m7Crz}m|Bh-o;kqZvN_U4P!1LMI4fpI!;?z|KGQ<%L_%xx2|d&G1!HAAq~r{p~)OKEWi<}Z%S!ffW*cV7v#UcVLEIg$ACeHG^-A}Va9IW8xntQf7}qyn~OrhPxE&ImUB*+Yoh zT1^}*e1Jt7-cxB4l*%a{ah5Dd9M_~`BuKF9kD=REN~z8-q*j>MK>Lfin4k1_vhR~* zg{hA?9)91Pn8Fe1ti$^ImcIk&E7CLf4w&<}SX-N_>bv|mFZAvgrFj`k)bD%lK;At$ zv6Hea4VV55&f8S{;hP=5JLA(9m5NcqgMcJZ2Q@qwxgqC{wXk0i#cTniDp_c+lvqo` zaZZoKijOY>El3(CN44zd_IPv-rvkLbp1Did&0btTxwPCNh&$0xuxu!ul(x0x=oS7j zVPku*Ioq=ta~jdgE%4;d5>{h(1kg*4a)Vb9mv>g{V zvDfjQi)5~>7fXvb%0a$>>HuMata7WlA4WPL~$WqG=wdw%6QkUW^%dG^6|EAy{__BU}W*J|&GyjG_)K~t< zhIA8q#id7W&lw@OV8_am1(l2QX)L&rHHewbFPDuEN;P(U75`x!Pi`-YqjS`@bUn@+ zIWWEG-mqAiLm@+zry5{i6H>X#Atjl__+S7M-!i+F^hZjz>bFFehfAgdSvE%1r zZ~kICbeS%HREMBhiubi$qw<73xasIjNMZd|)nNHvvz+5$y^AOE=lmag(>}7bOJkic z_VoBpuM9Q9YRKxI-~C#WXNj!2S3Lrz7(P!O2nf&&5CU`G~ z=GF&^EESM+ERT3mf%5CH$lUU`AN-`0X%=cj_w4uqlfO|;uNQ^Jvfby}ic}3A0D4_x ze1Z%Ooy9ujI65g^zW`{0tkF6I_TT*EIG1ZrScyCE!2y+T)e~A^B~sfBL2BtW_n#w* zyX7}ITpF}pNR~w`1pF`q&CQK?w6iLeKb;a0RsVB<4dM_mgjiszh5~zw8?qN#Z4tgD z*LEdyR#wTNT1gvSXS^9yz?!zvkh4kkg!tGUzxF;auQJe(s+v_WV((9~WQ0C;3Xi=5 zeeFI5gbSrW&x}poE;N_QT~P=zltVNgBU4(SnYWbIcmi6G9`SXwNt8dN|D! zS1Zt`HU^H15eg&B%8j%nh3E$+;o{Sd9PyZxvsEV|=NWVxzwZCllx0SpZj~ewWQ>QQ16(F=Zl(A8ZQTQH&gbLOCaagJxUjZeO8tW!)o!~} zi0CM?Ds{S?JzBg&&+@B>L%MTJAtknu~ILxFRjP|Wi4H0TzhCw5EsEOFms3f$lI}qOavws#T|^s*Xl_5Qb5t3f}ByzOp#j zti{X+uC@hHr6cneYqkD0uZkj`mSf!Vk?lxdk;Oz2Uz^vY*!E~{+gML^GV<)K!YOj9 zTdM3Sp|kM|qB4eJ9Jo<@%B%-D1&zks>ehzGaCJuvW_2z85q$KJt>N)BsXb2=Rde*E zjWb@)$+hpaAx2eth4CB!=JsO3n|9;(bpLr%!J8)9JXDeN;*6Ohe5!-g{%fJr6k)Mg z#xK2XGd7V)5pHN^oeV?~R(#3)GOXAb%$Apq|Qq4W3eo)Yw@p{5sSGvFe zuknwWRGy#gQ&B3~~JvZ#m$o*ZL@#`s)BaR)^+HFD!G-Msy{dh&agkqsozq+{J z46+r}+ZZ_b<7B%a6?nIa#@{7!2Q_w=48?=U1&imTbq3ea{+FRks>biILiJMXbv@jQ zhl?kg&WfAqac@*7ydT+X#$X0A? z&-g^R${wxaqIe^(^NB<^cr+ChJR!4m0Vg)i>GG zVeCs7+ZsAfo~y+bw>q9-LuZpSp)O%c5BJZ8Hn2nj8ml9}>uFRP1{on2#gihnIjOu* zwbH#O%rA%Zs)&_KImjw!M=)zi@fp4#F8it}GrD=Gr`+~fMRxqxY9zV`E&k-iJGlDkyF&4wyE0y%;{iEq06iaTy%U?q$2j{o}gf+pYTbXK2SU zM$B(!*YUEn)FS;tYEhX)M2GV1xHxL1K8kh3#|-zNLXHDG7ESJ&PV`9-8LYC!EgOr?l;_DY6)yU?a$>-^{vKka(dPZE}Bec=iyNz2oLAR|j-2 zpa>!9BBb6&Oc8vX*wPkfn;Ks5<-m-Y4})~p=lmyE$o1Qj$E^JK)aOJ}~#u8Zu>AXJnbqd4eGx^XM0^TsY@_+FCs} z0grWn7Uwbj|En?nkr+T6z+)YFRE|N=oP>Xy9?nv}_;vnd8V|#5IuLyY#3Rm3XPm--Sh>^w^l_O@8isX3Q89 z8*l)K!s2~(%rAoVp?B+paYu_|E7i^suxs92Pgd3UfZuySYYwL6A&G& zw6>KvhVmape?cMbv^s(J3n(-xNu0oit+A6G;=B|6H?dp?so16|kC<-;$=5GG{ndqk zNCP50p34147yhZ}&0#F^I7d!mLaT$9$-21Ss)7g2HKh<^3gxZg z1qlxTqT4`BLfhgl*Y;gycH~K3Y$Bh`JLL z@W-7D(EkR(zunN^AkdID4N8Fh>4k=ukN(>WL02rIgiNe`908?KT8{i4k! z(ph&_W4Ux`UB;IE1ezk*~C2j&Wi3unG(lz6sft!TP3aD zreCEKoPG$DA}QpM(a#4tp19yLvRK#mnOq)FP#huw`F*JY_u~SfmdU6lfHz zIO3ouSMvLob3$Q(PaWqvI?v?ZNvC@XSMnJ>5bSHqW^h0M!``(4)@gj!ku?V;Y)eT4-_Kr8xjAXgr3_Krb?Mx!re0q`3 z)o1sFSYhsa2!mE%(fR#XlZaoIO#5aU#s0{jMB+P;x*Z8fgP+wa?dK%fSDwH5h5s8x z`xa-l9Z_8;6HSAC*5@|cnRqioEK)>UTY5ZPTl#@nb08Wy5EuP;BksuzI8Y-q%bM8z z2atM($gtb~J1sm`HIs;40nlHCF7GO-#lBR_TIEaXXG!4G=f901t$q9c0Z_;A?uPbl zRk%heDZcZ`D%y2DM^WJI#wy$y89wm<(8pjY>^>w$M@d2@m~!Zpp{@#*^Z71BY8jj! z81=LaJCDO64Ic8_H?BPpF`S$zbBvu)bn;`NU)@lm60LTD9^4-grVs?nXOwj`K10V$ zF8*Bf{wM0$5fE#!bunm_$k_v+mP^f|8X0@}-A`})-B(ORO{4W~m=kRo zM{&bXn6NgqWgJkyq*q?^Y&=i(R;#POC8p4olA8VOfE@$ilahexZ7e7;?ZI-3yEyq) zX9JZ&Y*wfgdb7AirOi@M{hZNX4`G^g=VkdUw`G?)z*m`#CXimL>id&e8C5S%FbebO zMv`6lF9pSui*HF7kuA@exYVp>+H+LvkV}4;aF(rTpCNTgDd??BPX2sPTsDtr4D}?8 zDT@Z_I^eLxpV9=F#>_r(it(!%{2wXmpK3@9lvCCN3N*8cQ zQ1*fS>^I+xl&ZsR&7gdx6wcn3}e1*${75I)Y@tFCkGD69ZgdN#(>E2?Nm`f!yKzV)y^V)zs5OGiEyC#3{8eN_ z%gUVE53Q=hc%O?>EYYK7JN2A@?*yl!Hu-k-Fh&l`1{^dYbb5uQvcS)xYQg*7wd^(% zML%NHq)w_uyj+GUe=6@SaDT0z$Ge5ScfvQ|WcFRD?Ls0?S?a@S_Hpv;{6XZTIdkdT zhRIXyrM%!KwzLlN#>C~A!fsfZs>w6>#OTwDA}V`jw5?ykaDKo^CC0M*mU99WIc(FE za}ag!f(CVNk9cGLXRD&T0L_^@v1Qmx1JQy5;Vc)|ATjv}A_ocshUX=<8Ok%}X%!9Y z*mOeEir=UwOuE`wm)X zkY}p{bLD2AvZ$J~xpE}6AiKIP&|_(izIM7ZqP;&tN#mm2+U=y1)fdz!u%pCQQ<$EN z&_CL4@56^sN|IFQ9DLuPm>5xrt*q*8)V(D6@yk12SXnjb+nGz$O&6s_n{VD%j2O(< z^RIP^y~Ty8tY0yh_Y|QpzrgptwQA67B}?@(d`>CS(L=j!xMa;Fz9O~GE`WS6{%cVa zaKZ?lr%1K1u}A(5Dwl2F?!6H?Vx<%p5|#sjURYrdT8Y@AU%njjP=Qd$HH3m*`; zExES?w0^|5o^#24y-({HLk@tT??oxRy3z@jS>daqJS5fq?C}7|SoX9zQaJtpIrm-4 J4avjw{{jP`!K?rP diff --git a/utils/wxPython/demo/bitmaps/image.png b/utils/wxPython/demo/bitmaps/image.png deleted file mode 100644 index 5a4ce74b8970c81980eea62df1c214d9ffdf3a40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17905 zcmV)RK(oJzP)?F0Y-MSe*{ zK~!ko>|1$kT*rBznRo5M6>n0cL|wElTeeO+v86apB*$)jp@3n#NfW05tfpv+HU$dA ze-!N>K^hb;;Gjs*0tRg4s9W2BgIM*U1gaz1k|oPhWm%GSQYR@c$z5{Kch2;i`QCfG zq-c>kf~LSeJTBk9eQ)ObeKX%ZL$_|-N-3=ksoQ-CX&d63Q6S2-O&zM5FMv zawJPAB?0GdAl!ggeM4vPqG_^1!QZ&CL%v6;roqYJZO-8oK_K?*8L=!4uHga3sIF7P zfbO(ZN>8V?y?e)&FP{Ssm?peU;Td?vaRSHTwjEr&Sb;k$SI!9nB7|&B$Y$g7Y^)^%ycyHHt^08uYUEOY@1UWOuajWLcqiUoIDAf>Q{i_`@-|MVE{R*CtWfZ z!2>(sCh(}KNe@)>5oh63lBnw%+yqAB9mN{1-lD3tN&Ul60SN&>RTt1h`~Z9fGAIrC zKI75A+rT?pytC*Gp;Iy~b#NP$3P1|D>`y(T6oC8>f50Z_iAm-V=osz*e-*O?JO&qx z$(KO#;Tle0B|HFnNO4wbDfKRu%x3|zEG7glggTI|0FO%=rm}vPY;E9e;GI3*nI#9? z2W+CQ_2`1io|Ih5PpK0~+!L1_NxcGJfv2u3Pk00Rwk*j+_!aaJ=M*`M9LGq9q5isR+%4^@}o`?Qx z0Q~`{V#gPGr_4Kv^%gdczfM7m4m6(8{qSoYE2o-!xQ3ycr61hD+rT?Zyw@%{A|^lV zQg$NG2^B)xdu$|bEp9xv;|LPj3ZZJu zR!|b4`QQ=&qdU>S+rWF{cxRRz;DV$ZEtjNFg=0cc@)^!1jY2MUfyzLc+R*Yw7gIYz zTa0W1e!(4(Y+x(Uin6Y1Vx3~t6UB$6(7!ORXP$6J=ANO znsO={cpG?c6t9kXL*K8tr0DH|1*|(6x}NIc&}2>t@~#qr)#uAGp7$l{dG!6FAdG^ZkTpOHLFhGNnNDa5!FE?gIW3M@-&;BDZ& zalE>12ayO)N|vhxB1016#D%7bC^r(uYBS~sCF5vawTYvPDMY;=NkeiFKpbC!Uc#p| zi`q69z*#Qz!Tkmexd77MP-xg(89y;322=lwryrfyFBT37uQv9mb4#X|M*B0<|tmF^Kt#EQyscv!ks{VA7})GA+$(#VK2aFl_$ zFgzGahFO$&?UMlF!Px~CgFy%WVvHy~ZrZ@xzS_h6+*tultCa-;)8MupAU2h^ z120lTwSqmV$HerKs(jvh*DzegfDbc@9;LjgDFo_Q%0*OECeb>JkOlAv=NOc+aES!4 z7_N22Sw#=3G+Eh=k}(RGz$|36hKhySqJg)8_lEJ(zy8VJ0e$5Im(v@1Fq>@OdF#)@FWxKl*n21!ld`4+4 z6gzdQcy-B6-P(a8F=;`o8l=i6BQtv4nJ+COzD#inkIV90l(A{x{r`)1RMS#Iq&WXS z$E(K_D+&Vcsr-i219HEFFf^g5;LHh#T307mU#kR2T#Z64vU~n2$ML%CiB_i!5nRf5 zWCoEj+|Pi^%axi5-9%S6su|)Z6Ru^ITiaUBpFg&F^V$CXWv{=!_T zPT7S` zFTTiTisr}Kx{f});qv<1vu)j=pe2Q#2Sk!msqO5ky9W-=yBXuF(|R$*JqTjDkwOuV zXTQq*`GW4?)Cw+1hP9|#N>3-b9O>u?$%VhZJ}G!_ zykTCNXyA^dYS)UDuDujo^hD&zOiyZ}pj$7+)g6P*=svL!x?IxL*b9 z37@f!m(_yo-y6JkBKgmEK7O#P|H{SBa?mkZrfFH$lTA18X~mJAmC)0 z-v7hLj@^9^NAAF&+xB28^=4=1!$U(HLv^9@*Ce8IGTx!3OLsr@)Y$y_q);F~|M|RV z-2qT4XL-0bJACoPl2r%RY`okxZ*u-vm(vnR4T7AWc9F($YdQ8Inqoe#Pqx7s9-w;}Dff zB!h$GD_4h9)3#3TlK+DpQFo6t-tsmzOT>`{a`; zXlF6oW{VeR2$t|rBycYZjNJj&(oet>sKQMwz(v-S#_6CqEUw>-I8AX{(J*yZb1@4n zzZ1M;b9-LA@0p==TlmwC9puYj1_cKKAQd@`a(g?0X$_yKG&OA?(foXB@pmVVpZMJ8 z_Wtoxb}B7(BEYvSIr=aS#>YpRns#L}55V|>gC~h#7@ySRg)!ar$Rnq>YzZ~ZkADmw zy{?NTPnnkkV4uaVeo1+8%ERCo>iJ$O)_(;hGYcibVx=I~+g(8$wIlQU5=eBi>5T$=mFJ>(yMC4A81D zNu_|Te79OlwP{{~ zpmJ*u4A7P18*M$Rg{JZN>b1oMSUm!Q)G|29Q!PvmhVfBUBObbCY2vp#Z{4=dWvmKs zG?@iY6nqg@V*%6GzfM-JB!>=7D>=~IBEQu1;cuH>etF<8{(R{1$0c*$doLs?m&@n# z;ZllRGTod3ea#GjNu@Ibd=j;tO~v;1_rLnp^Q%^oN(BV?O~crz>pi}Im6>!Mc+pI# z3?{+di>}KZm%p=k!)t5ruUJX))?07x+$rWYbx^qwI5L@6)H=u{`!mgfGQ&vy{=|B` z*C9FAjd!1wIIw(``1^m5cYp8$^1%n>o_pl=_r5o^5A@OjR6Z{st5(6Vb z`>N-%N1EmovE&H{I3_3zwtbj$Rw}LZ%b?J$qy?kQrN^ovm}IF$6A1w^GkpE&Mr112AtWKfJD*6pyc7Z=l*7zQu_ej}JAND+?)%clxv%|u zBJd3kXOQ+Boy*QIj8<4KFPRAE=x8{3Mn+22Dh_$FVw)+;;Fer|5mw414MHxJr61jP z`+;Yk@qx2&luDrXa;enzQfc$KbKN7rEao{b=n^I-tKMtJ8&CAu8$Kga|Jt|i%;&d+ zO`Sf?SFHFiLYCZ`+2mg0ewfNsi*vQG01!1*pXHpI7GkRRy2u0x@I-LuQrQIJlXR4i@q_tK4uyiTe zxf46@7#z%8z5p}1do=e!d;2iR46qMc0Q)mGrt|{;IGAsaoL(3d!AA$pZc5_=gDt0) zOEsY~EwLlhS*cX3RS+B7w!tzKt<0W3{o7JoC;8dW*pVZD(9V`52uyj03wVGROU)H$ z-G@7mW;**PvR&1@?|W77(Wr1M6;0^AWg5DnG2LLgTIy39U&je-J8&E+KPr^NrEayA z3h+!#a-_+ES*A7`NiORQm@BJMTIfP3s3hLT#5BYXRC=Y7Jw9Hkj#q+-YN4wqY%z*D zI$!un^Y|D}8V{Hs%|dvq3XU>PeTbC66jrNlE*Ge*3-GR5t|aHAAli`xX<@7@ubD6m zI+RZP*u^WaU`O4)e=pc{P)f1|O}AaJ#VWHn-Bi1Fyg0RhYZH3%jFFN0^_RcI)(k@K zH=K_1x!|4-+xArf5QsEPlSbj}3>^P~eB@GJi)g@n7(fB-W^-F zI-uadeF8E2)vu5jAT1vS3-#>DUQ&^>6DG20fIR`cMKcvPbnznoZz&e5>HxtIJv|5i z?Aa=a&D(F2BS-Ga&_$q?ec^jPOm=v{FIK#Y(_M91vxA=NRbAH$AdZnedgZdl4J+W> zkc?4I69vnQ8R(>{`eRVuXfo0FD07{+>&kL$pT zYJB^4cyVailFA8iPE`2N=ep|)g(TqjyzSf10{xmguIzoX1@W1%UwFuM?LOQxJ2?_Hs* za+meQgbRZWAom;8FA3CZOtxXf&wgo zmWEhg&J1)f+@-gu%5dnaCG815N9Qj1Sei#!Mb~m%%bV>%Q}2ELaJC=JJ;7?R;qwJt zJnis-q6k{71mnFQk4^~RsoIijo~K)ekunoq$wW`9*^dje51(N-?d_4y&nMs*IFGFCd|bE7bZ(P znM{VcA9ZBT57@%>c%TKoX#~#d^&EV1IQH(9@&Hm~S@Kg^9=E;Yzugsgj-T#nO|Iu_BD_;CKI~w0ybz>7|$8V`Vd?Biv`)qrUCg;M2J_ zFw`;4aB*3w6f9fT1d6R#w992zYGsWzHz(TKn&!@JJ$u%_4d_4ZxA4X=91K6 zvbd!M|EG%+a_yh$7zj2KW+Ih@6Iu(}JA5=yQACt+E6mUW*F(R&+JDQwZ~x`Us@3B7 z@lSTV{S^1Ypd)soT3RoC@r$3%UoN(9UvuP*g~dX7qU6iGwr}x-V8nO*^Sz4?-uvLC zZ!VO+YAy#-I``23+;#NmlJV@d;>AFka}A}ayk`BO$2RTOw5EUh;df|dB3I1ki~q~M zmj_vPSLfY*d227PrCokp=E?L62fAUK-fS48Ol!Va$KYg<;2EG#Z_QPQjkhg zrocG3Qid{M%vNS6U=-mXu&@L|){Lalj7HMz)3fxxyzSn1_k8D^dtdiRnnl8Y04hNI4)(+LExM?zUT0PTiSCLPq`ChN>Uze zOfwk`E{27<4qAY_KE3&-BuzF#-L#=teCJpc$ zTn|0pi-IT&LY&HR%B~BvY*Lk3kBwK}kZJbNGtbo*mUz}dLwFk;EDsHp&z0_N)!ZdYabLz%vbAV$zo0`v)i9{T_Tq z;Rrf)VdiY5x}mI#8}8}OPjCE{r*_<&&%QqV@Qh(1gKV~%Ja3c%(Ry1p?f?Bhn%lWs znVBIuL0X7}aXj6lO z(uKFb>*T-st;lgG!37mtw<0g<{owB(Pm-;jE0^8xJJ1 z{cz)gYL~@yJ`(!KvY&YC+n>7a&YT17c6(vzzK-%+Rn_RrJX3xV`AVU5eqf#Nl=40% zUqhj1nuaV30F=)C!TZ9|G3E4W<-6Y{;1Kv*j~q;pTgW6bVI`}56PwoQ(*gvwiHUT2 znuLNxS866f(5g2MdhMI%ma~Ca&1!Q4>$q>2qoaXl3&~@uq;tRb-b_g5_=e-wm8ca2 zUg&q)9c0Bxm{hA}7)H5lyOq+ByWjNqYv1GpA0oXucJvMZ`)_u)7eITp>eOoP;Gk<5 zL7Hk{cwfF8epMV(#!O`%hD+7C<>1SZ(E~`9H|#Wlk}1 z>7RFg<+b@==jI5`;@_2EB%%E5sXeznw)b^C+s$vd|9%p-rls6crt+KPoPGE2oqOkR zq(Azx^7${)J+F8L5y@5ZfjGWxaVEADPDV6NpO90=AQoZz^7Jl_jop9Gy~j3PlfN1` z^??T{fk^wqF~2A&(QKups#0KG?+g4=ZR z!5Y)2@H1bweDQ#jjmdrqQT`ncyxbd>$`{`M!Nqs|CiNe``AvLs+-q(Z60Roo#7b%hcJ%dYKy~Yg9AG z^LmDw3=Otl_xk)i3{~)_*bk^~5cpvbDBPxU9J5|8uiSX!{r~cJ7yBivW;5A;;75Ub z<8Xb@NGlb)Qn7F+PKkg;Y|V0bDEr>Jo-(6SnQM>=wS1?Tqa@;ca<(E^OAUb`hswy< zl$I@&OiJC%S&8NuJ209sg;kuKye5@5uW3ftJa4|(SAx(i+d>pA*Q>}Hm$zHwU+l>^y$*X>^7o7CnO$||hd&}e0B{I$fASNaj*C;;=17C>J5K)h zkM`D2Dj)vvmhBrim6JxJ{C_uZZawxG^k`S7`-;|zZPDZ+UWY&krGe#iI)J|bxH=AY zDSFRk+E;$}KP2Dzj`HBosFS;ES3k6B0SqC5dY}2jKf3VF-^dOeaBH=lV`G!cXJ$8! zJa+B1h>8t0-Iw`;e$S@@PX_Hq#%ns3QL+rjq<%K!qib25fQ;sJXhcb#=in>m;KTEg zokaP;b^D@^el+iq!&@P;0k<$44|?jg-Ch!gx@G{}Km`rUC~}yWBj2f!VwmOV(IV#f zUS(kVu2;|f!M~58^q=^IIybk@^LEV5HR@{DGBd(RI-4lT-M{JP96PY*8r74H;Y#P! z((&PP9~n_13Z9zUdexnoJ?tu(h5SO8;7{w7@5qjBv)cy<( zSOKMGIF}Wh3n^Eni`gpB$@Zi2h7iST*qqdS@M!RnG=n~z$hL!Qe&YqQoP_Jy;SKo_ zIYf{@h$F@8aXDO-aufWk0j?TUC79mAp8NdyJREns!RY$q|LIQy+o3}9lTRx3y0U$H z-_=E3zuD}lae3GGzIx&9ztP;bgFF`Z$jFn0p;fW7#{D@tCraP*o_WVA|5M$V zpBnx8*K3WTy$iEutLsN$Y$8q~RWPFn#^Z!xh?j$K5aKw-rRZ&|%C-ObPn=iXcHmX7 zCwb4#N|hGED@RdBH%|S@f0_QZx6-R`xuy4k56s_tul?Z4$l)j5P`yd*ZHu}+uh;f_ zqLf)X&=#6@#dT6bEHEL!HNvbhtq^y-q?U&oiZ(RhT%fgzrvCcR@2eolTsLxm%{`Bk zfKhw)C{I64T*{OKi}BW0%gP)u+fc!4(T|rY-?M$oIdn+8p|jFF_^*F&d3;j&_{S~J z8=9Nl(&?^uoG6Oa!II4QsGNqAqz!F(-|hJmxMn@5gaA|%7mh63mE~)8Q!N{yePTj6 zbqZl8E|(A0CMM1nTL!Eijo62GOI_8wp-80X^BY1WoSiN%auS-N89H+Pl}dGGV!iUg z4=Us1^o55bvUR)ptV@tW+&}=bUk6fsKW`+g)#n0L#A1Dj%wb4LELcaYb(*2YLC&UP zF-YJY%uAIANp(`J4Ih*0YM-;xXTYbAHa6yOD_U0-&%?{aa>RHHcq1yD7~RIYPPN{L zYBU;>We5M;{|t{jL&bhvcicg-bK^#`97fnt2WiamR)5AcEoJINbMGzGLN)T1RK3?T zYWC?re1C2>fBU!4r%t7Ec-!@dH(aai35HG_pYyvz^GE!)$4gOAek%y5dk_Sn=LHDd zCRO&cOVPV7i^uiQ`pJV&yzZV90KNa}I7-57{>EE#v*AX2cK6-qhlkJK^A6l*xz6JF zNaH(SP1+r=-AyS0O|@>KFSTe<*ffAJG-3-pKje`pX)!0?Hyi$0(3+~LW4Z>wRH<6O z);aryfkrqqM3@c6gB)E^P9|2P-FEc^S*2^(fkFw4EO@stgY5Bv zXdDy#933S)Ns?AH=>PWbtgX-v`cPnC3L`|iLM2*V0xShjMQe8hSdQ+{Dx3jFp&4UA zaNFFecBS+U*PL%O6zMe;ml=l5W>3;9L@1mDPiF(rnPwstuA%CkdT;-#`Pv32Y3a| zP^UL-$!~t@DRJ9Re*W{(4}M_%^x@GHPdC)~=$qcqy><`bkjY80oS@lhEv`fXvTi%b zlzbwaTd4Ge#l_~pAO#}$;Kv`QXz+$Nkh1~BxU*JUilU!aYa5&G4Tla>hG!^}A4_|S zX8(BfR!F-Hz3@00)D)jDe3;wr%+4;Ie8=^4PAKtLzM{PEefh%0zyQ97rukfbWNLKl z-lZoD3OKnEtJH_&i9DT3Et*Mb2`{U#@Yrnn+W`dF^7*E`))S4*+VCc&>(fV& z%dzDIsy^*F>$)8ac2MH_XHN}7o11#tOOo%*`i-%mqXI|Nx*oD1cVX6MSnc*UV$sO0$8zY^qoc;1#BG7y}@VyYeCehMl@`rzSrt$6=QihmdISUJ9 z80B(w{z6}ooGi84%@(XnHK?==#v(=)mH_hRjS}z^b#`^$!8SCZZbD7|Z8rNq8h1pn zoKmSj{N>EfoDO>;@oKdUCiHr$RHgg++z&h5Zrrz={v;0fbJ%i1KV}SvFRkCJ<{BK; z0JyNAutTDIfR)#F^d!(Pte@-wW#u!NrwYsIh$-fw8!-o7-Jt2%=?z;}3jjFrpMF&N z>%Xo&xqtJqLrJ$|)T_g@Q{5YHR)nV_?D@sk@(Q`DlG_~^&gY=`U4(Jw=QFowed6Q6 z`VE3xly84qk^O~RZzZV!-aPZn*=oJ!I?mEEaEr7rs7=lnYk*W=81~%k<5jk(TfyNCF9rDK}o;!bT7tOOOMea;|F-(dzG%ZF&FrA9f zGUS=XhzBAjmKQGCtAS0xil(a8XZmTC^IcYbEg9!N*qK#fIx#d#x_S^GhgN0Jpk~9e8 zkjg0_$PT@YKmYNmd+sG?1g`GhO`a5|IeWJ6RfnQp(52JsilurUl@oA7(e@ytE;mM! zga80f;t`CB6{&#LJ#VwE9z&$!c^_QsJBthFE`(t$CvP-Bsgor7^YpoIITBP}*b+73 zMZYLKMEL6eVgLT67ww^P?NS>awj?V633v?{eR5*+3vYH2>I#q`2aTt@p=b1#)$_l* zacwwO{^Bo24j&$S?6H{pzuHQYO)ZdXDO@`UiBFu5WfsAWyW<=Bl!=ML^!;aNC(eFn z?xvf%Lqn^FfDFKH1Rp$Vb{0HXvEAWl9?>3t%J)^@@78Ly!-rd@>A!H=;Dz)qY?{oC zc4{iWXJrLvE`RG=BRh61?cAC4%OueFhaaYN2rAC*vt^h3*>T%fk*I0$YzmAT3NQRbu1z(pLCZKI<+oIaSU3ZOnUV=c3>@ea=hU~s^%xv{PAW-jx51Q@Q zql5lH)w3w*phkm?|)xLakqTvKWr?!t&v7~ zW}4yvVo4P3+c!w!R&@MA*2AtwzEgc@zKuQ~PP_jm2|1z*4gAeh583gOmD zfimu@E3uv`m6Ojl+pnfd0~F)6uT_5bGjg52zqogA&>${cpBx zrkH==fTmIlYmpns$D?=;*U2+xnqDzR{bH{U8Z}7?5=( zfMgNk2BHKQ#C_s&r^SAail@=8-HFV46lJ$TC9+%_P%ymyhBKe|U*|scnNqiV*VHq2 zKKuCi%AyKq46nmErM~-D%1{89&EY( z`n)K#VI%L=BK;+(6H{=eaL6LQD)}x?O!VM%xQ3kv9K?JW^coxi7ht)LTPc+Xs&vt5R_qCG(D>Pvm_ieC^#!A%*iI zBaYIUIlt8n1Ip6shn`fMO){!Zhf*CRFo?GU1IgIfxqIH!8yEnz4FY*Msn7o1uMAC# zhN%_hwcgw&C9rLi2iPUKef}Wjm9L`84Jm0fi<|(u!*XavfpZ{@mVMNGC+><*1K{oq z59cWzC#kYu5m7HX?|SE{FeN$K`7u_$Z+;WsHfizA{!+K&M`SrkZaHDxo1DC8_`+|4 z(K3tR@4F@cEplu2BpUsqoJI{N=_eXCok^qRK0vM~DS&)RQ&TL;FqjCwgr-(ZS?_LNhv?9|3>2j23Q zeAr@i^nAVk)#=4M);S|tfWt1Yo2ZrtHlI0jYS%7`u7Ex4yu67C#O)+a!#LtmzK}Z6 zrp82Em3&u|99|sYzP8uj*v$c(Wx!{V<sLttJlAi{g+T z0*1S;U9GwU1La%&`6JDR3t%Ah9ZvK7c^QGXmls>Ji_`!E2rOx~*J&I)Fu%PRX+w+! z;O81yI5BZ*&vl*Wo*kW@Ho&x@iO1LP`Tm|emHY2E&raQI`&(3Xx>8zMY4>fWpWnWW z*>i)HT9vId9%V43q~03UNIe%6fKu zGilh#lcQ?-D@n)mqo~u1{V0vd&TtRVT__4#>`{#gZ`g zej(Pv*oS+dFZc^l1BnLG>}Q?Uq~-GLZAFp|U%Lr@Gq^Ci`x}jhvTu}>%=7ebd}H4; z&rH4XjfuLt1_!|AkBya~?#OV}nLcQnIU&?**}(W5<*q{U}GpNL)GQaPw5- zHiKnSr-3pZUW?Z9NjdhuvlAP0Nj>;rek#9*n3HkE)v}CI$pT0QY{SRzUODweb2rrq zid_a?XIM-Lw$RL;bcwFn|I?*%EwLTaH$*>#pz(2vw{SzH((JBXvxq{2gAd5c!(V-7 z=KCgM1A_~A5Ys6x>P7S$pI5vxnJCB%MHoq~v6KhbX*B|DfwPm6wmeXf z_obdTB?#d!|5BpamZhc9rYv|ZBxS4{^UQfB`MLCuFHdit&fRxk(dvx{ zn$6buc#89g}-#LuAm(fC$+Yz zx2>@USJ(9Hp;zZNUqc6GN!d!aJMP%+wii+>kp@aE17=e$Td*Gh=G&9SZ>F&a%P9cA z5d`+a0-$?;*AFUQ^}4qnKm7C2&46W8AwUi@GefWqAO*k&wuIk+S4eEa@byE=y_*yh zxvghF?6e2U7ZNPkOu1YZ%hA@38eGwGGTEk%(|&>9wpE$Lk+o784oy=*4*8hi3m*kU zc?On)*g7{i8HTTHwc^>?r67>K2(1_(Fla6UY}U_j*q(WwcH;P5-L6wp{5VY_ir~1J zDzvs~SZ2Cs549>k{b^HG?lApVX{`k_^9W2D-uU`(Xju94Kc@<#8t;x;c5Aui2j(+J z6dV`iahnzHh zh3AdU&8>7g=Gn9ALl0$u4N?tXg~ZwT%IxIKR2qe`!C4vs&XirAMLNejRcav&8Tt_8 zk@_q{Pjz78)nX`a64hT_3W{!-8V_Aus9Kc>mmY}FrJ;=`6o&hWp)79g6qX!EmE%M4lF;Y7gF-@}I=uAp;I~ zFr2cDx3c5BTEj{54w#XJsZw~Ie(Wyh&-+X1QifHFeOtL-`o!upu^K-9_`v@Cw{^SY zK21q1@*+_xoe^H%pj|)in@zx_e<^=a%7a&ubIri5lPeX6Kq`dez!$t60gd z^B1KK1GAd%fLIYR_Bb0WW=F zq4C8pE^OJdc1mhEi*_`pwfQ;HPXHSYIhCGqss`79B*)@8S@1+D()3~yS{SPo9$dep zyLjliv-?dmE)WGG$4Iw1e&H-)5zr@&jNr8G*dg`yH<=6bTc*#{Pn~QpwLL|Z3Qc52 z(0L>~47B>|2A7lXnb{fTYhN3gxo~T{yRO$;34)b4zt&a=q_iTNrrDZ32m+a&mwo-~ zlk?NJTTwL*I$_`iA+MLM8Xovh?$n^sN5?VNKk}m|hIdUW;rPKL>B54qW)bOSu8$Jd zz!*c(cXT>;ZZZF^X`ED?R9OXDhUeAJog1HlkX>Ft3w4!e-&G>v^Z(J@3dy! z{_St?X}4)pjfT9Fv{-K7#ZGdpum|Xh0LncTZQbc7t{XP|$Y^Y_(&-Q2it!2cfX{cT&Pj0mw;D7MTJyvt!)1JLtd$(4Gx*M zV+PS38?|1myG(N%P&tBRj1f!(F1Y-$v4NqXYOPj9l1l26DOaR7(6wEEf8VvurcE7p zR!Oc{P;u|6rv{E51wOPluXA0engo?3=&p3S?d~dep?wS(t5vF&N|iEF>dHXXu9P&( z5EF?aK;?XxgAMpLT7HF*9}6i$Ae4I4a-V;ul(v?UF$7+ ze!JcfCJT z9VbJK3Dq=7sU)jvNT?90VL1v7-RZkW>`|=+3qLg1yU;@3*vsY@txg9IOHFHeSw(sW zFvh~w$(23pnfbE)Y zwOk#lRT}lNiXG2;Nuov(br^VEjHVnw=eG7-RjDk%TNAi}&T!YCG8cjhZma180U%f! zrQy&(x9fMio(v&yuf`Ay(RF8d7^YW&;{of~UnsJ1bQyX}N_OXoXPa4mrNt$S;#QiL zmzOJpx)s_0B;7di+Fifx>xQJ#BpJ)4AX6QzRR`;(0rC-M$uY{N#2g;vUF~ESqnQa$ z&17aAuU8^J0!7{BR=d5@MyibzQ80{Vf>-e^#=KQFjo87#!!QnlkTr%_1j+I~Va2HQlCNO(=Ah0ShQBWeV7D88Ldj-VCSjRK&B4%*!BnPNg&k)+V(zXuwRb)sSY! z6H)9hx6RH1?R$p3Sfd4PJOnrzNDQBVQxW(G`jFSaT3lDde^5%=Y0(WO--5ZSVpu=V zQQz~P_bC4ym+&-ztirI}Zns*p79PW3KtKsjmit~dFNkQof`ZHQJm2?mGd|*SV-k1b zJDXXqPjb%+U*hLVOg$cjJ6nA9_>u~VEWV4FaUOhDP;5S{&9NCDlqc8>7x22PFHMRX zMSS7a&1SPtspOh8D!~_ygttq7T^j9jwh~``Zs-@UW?bq@sIm~_fnW$;+UKy)Wv{ss zzU0ollEGKCiWpnVp~+RyE4I|96qk(H2rX54!{8j{X?Z-c!*|4D`D?QS-1J!ckM<1PWUGl#mGap?m zIZUksbDx`w`sH)sQNFZeSt8n@n>RqCosz@l4}LBJsP9{z-~ESfZS%10BBQivPu6i| z4$fIrLO0VRN1tuit{=C`wr0{?T-Xl6ZqICcde>78JvhB$l^wWzw@L>h+ca$*)|4nZ zyVa|wSG)wt6q17^NwS~7!?{W%eW96PEV6LiB^eyisVGw$ZOs@sTQ6LXQqTl zqsc3Lwf=Fcw7b#QU`QvSS+7`W+e+7pN-7Re+B!s*1F%8OT=2y%Rm*O@tQcDR=jV*F zW%R%eGEJNf^x_V>^{VNGMMIgBgc77?lNu+-kGG)e?BXoSugmxeL{Zv+uXE?TOIe^? z)~1@x-raF|rUX&9UZD*o*J?j}7W8r`&veh%+rHX%w6m6+ zt5MZpHYVXz%I*cP zxq_@Ry?T0iGB^ds;2~_YXsD@TIRG`BQ6TNmOQo2-Dc!=NGW$_Z0tMHzvV5n2HbPZ} zf0xfn_bXj#mUl=1Z)s73bT=%Q&7oSHB(${w_|G|j3srU<&>I2YCuE2~H;}VsvYsGs z$W-8S-_NdwUR{@cm5j&4D6BEaQQ7!yK|5^g1;#7tOfSfwRPi0EV{${B@?N_Hd02p6 zEbCMTUIh#3bZjc3WKoK|$>967EO9F(yqHR1z_AJ27?cHWUsK_o)rjgaRBbXNPMk?S z@ThVbXk4pSOA>5wW#*d3#*2_X(R|RhDth~7hXNRT#QQjeub7;Gik1A0s{cDVOpRanS7~~cUn31 zG&vciu*2X%rx`2Jm9*FeVR~76G~Un2@}f~DR>U(*c%x;yB{wdY?ZJASCbZaN>eP;8 z{{oFvOg)5WiRosI@&cW?j#NnJjd9cWuZmusf^r@)U^#F+t}C0Qwn&Oo2%6RJhZmhv zE&(xWf5inXf`<%4Lw9m-FR8CVeu#z{ltk&%%kR<{*;fUO&<@A#c^Ma=so%;SN77P$QF1AL?)w7X2~~wN zQbLf*XVK3Ag>hz3w9+_C(|(U^jmq~T=O@dnRLo}6>pK;G8CN$s0`P+2YL6NA0D~$P z1*rPT=g2F7QfLO^fCFOQu&s1&E^(IvcI{RO(%kyE3Tw zO!3aFRC2ei6&F`=DJ7NF<<;GRHT32&h+~ebsYSk#t056?8VD>YpwdtszopU~1m~I* zLZMNXsgSYgHt98`)8atYRI#kQhJ2Ou^74|(35<*~>aHt=AIMZ=7n$)cI=X z9Ck>sVVD{NHHoz3*J!r_4^WBxWR+eCU{pd&@SmC*2^R+R%%|xgjfY$4P7@h|#<4}! zxnKa;NT{{wg+Q^nU!)`EAn}CRfc?CJrAQ^~^7_o+C@<9rlohj4ik6@ug@UYrx%~>P zcp9m&Nu9L+`BF*ejfFglu{mlo%^}%XQ3jRf8dwZX;;Kr~DU$91C}Dfk*>fY0OriJ0 zN*M_w=LgZNtp~@<0RoYDZn1|7V4w$cSQD#3)bYTYaPa?=-E1fIWLV)v^>_*4FrzJ|1FPMA}u2mCC$YzVoRY#CTh9z&JrQl zy!}c7XT`HrOA*p|9T1ieDIm-uRbwEXaWu;7#+TP;PCA}f1Iu_IUc9GbtcsAWjqIQO zP*HQp1P&H%iMWrW$i@$Vv;1CqYHM|({{uUulw(WEuUFP?ugFBBKm{=-=C`_vkvX!c zk`(2XUDUA?1S$hQ3IjEjaRLlkwT+Y<1r^}Qo+)AKw*a$Wj9#g7YHKSq@`E^FnVpex zh;&*-lem7M^c_4aTBfQO(@TZ+EKhGq@mXGZb#8U5FV1A-zh&)JWHgY&dY{FaFk%gBvWrV7 z7x8rM$_Jhk^XO+0`|?>2ad<^xhi6YyMkGq1T!r8T5fOG<>!@>2cn%Rtz>i?VpF<)px$&5_$!}7QF(szk|7UBUk0gn-`(?VoP}*y`pvnLlm_b2_W}D z#*@b>s?inn5;pk-=#}8pUuAvS@}=bz*I3L zqH_QBqQQ+9wNzPc2P*~FNvPrG;~JjPVT7j|;}&@hCp&pyRP*ohE%!+IyEBeg^h+2< zLeU3LQw^=JrsO8HU()+adjA>drTrW!0#j|zOfxf!!-U_Y_shq{BV>z~y4uA^ybSiL z((S&?Fm->Ko71mVgz$WC1H{U3nfX#UpnjmBe5IJ0CCXU_;)b=0eMKrAa+PL4mHbgm zsm9FxCB46-_ZOx2$}Af0y zjjI^?$Xc!c*S@*zHVs5!*mH^FIK8P*2_Y_G2iAO^{5MsfC1uG=>2#JdT z3EJYciR~HAIsbU#mNtOA0!?J9D#RK8r<$2F=l@Pk+iq_pcXrnHyVbAZasIKGCcR1T zpX;@c9&OMj_4@Vq?d=>*kvP@SER^oat~~N^XRem^Fl~dDPG)TMx$*tY&>&^FXPVoC z&l?7L8dtsgc=v8eN#ShPoSZazJvSxghepcnZT)$6aB!yf5^G^&^UQW!kX6WS_v zuh?nPlBb5Glg45e-iJ9&zfUIY%8O=)ycxB^&bC|5e$ud5sOi+;PePxMkrmL;QLwll zr1fIIXeoc|q&MjuuGdQU3ZI8)!@}7JRfS7?Q}DBafyjknq=4e2rcUp8Z@JE@t=5G_ zn-_g82_}(xVs&oRSa^$$DS&}}iL#Zd>viDZ($mH5b**UIU0bshP|=$S=A$q)tu!PO zpEt${ub`9Oq<6SpdwSZ?lXZnfnw<`N+~vW1=V$v4wQ@o*$V?4RmhcL2m6cT#N{qzc zLr*ZabkPiE`@#jnga)OxL1N)SI;mh;gfkhU2|zU>tFc^&l8!)%nV{~#6KQL9vLRkK*=ONhaWj*ZOsNm!2(p>KUu-1%5Kvr^z!Vo~KrQ}}32 z%7uh>O1oex(Nz>if`Xd5aNEJYR9(BTLm9qpwOcyyp&gBGscYRqKOAd#3lv|vVr>-C zWW=O5=^d)qMxem2u9U3q{=vOGH-&p)!XyB&6ip5e#dO5P0xwQR)3jDDCbG0_XjISz z;nwn|lhjrTRlT(8(M*zckOnAT5GAo~IC=}{Y`qSkNP3grA$mhqdTT5H_HD6pq#hXo z6hff5juQ0|5J3hRx=r9uv3V?QTZY3bwwGpJv-6(o+K)zHklDnoDq2hUG4tFAMd~Sq z6`(!q^5?csPl++STw|o~*RL*{CcR1TK)qq+&!Yk=b zdI##YUC;CHEzt{*A`eGrLB~BmRV`Yd7^K&nyrkGr|F!3E=pIugWT+%CAt7^d`Ln^{T_e$0%8lw)6A$?5wG(wyK)!KYEoV zH)+t%qTpuLq&Mju{<3f09ACZP?cI*OidokfgX_o350l-STuv#BE^||keBFBK3qN`G zHovp(7pb0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/utils/wxPython/demo/bitmaps/open.bmp b/utils/wxPython/demo/bitmaps/open.bmp deleted file mode 100644 index 1c38e97b59dac5b7dcb3d4ac14a31fe36d3fbc6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%m){3`Ez_nP2KLES>QN_TFVHvE)eH08ZrCQ{W?L=aStGNg%iTOA8O|3{UU~ zcRHZbGxVQiiBQhVP*Szl@Yxs<8e?XVGfPPN!qmmh`zzRz%k)d~SOwQraPKkc3JUWb WyzyG%ebUB{{{0*7WXGE5t%V;V>_w>n diff --git a/utils/wxPython/demo/bitmaps/paste.bmp b/utils/wxPython/demo/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0df7225f0a7adbe8457b41af537813bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%Ci@5Jbns$83OZ*I;# co}I%%@f6>ra3+S=gC69}eM%GII+SAI4J;x>B>(^b diff --git a/utils/wxPython/demo/bitmaps/smiles.bmp b/utils/wxPython/demo/bitmaps/smiles.bmp deleted file mode 100644 index 39006fae82aa4e8c238c053f871538a8e2e5d8ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmYLCu?@p83{!w^29lo9JF@qk%swHfXe~I@Ll4T-B?CjrNh_P8M9S9u{92Di^bqbR z2D_zEl|N(0<)vYA!mPEEvPx^MiNj!CBcl>@LW=$@$O2#@cM+TfUaN!+Sgqi_!zIHD cVh+Fj@4d)`=7RlVy^omkdw@(qd!o?x0|m}&@c;k- diff --git a/utils/wxPython/demo/bitmaps/smiles.ico b/utils/wxPython/demo/bitmaps/smiles.ico deleted file mode 100644 index bb29c8edd7e66d24e5acde41c632ebb805b87891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmah{Ic~!+5FEt;0>gz}rHxAeBL12A1hx8wdNzED%9JWo7^Y`-NeVsyue8_f>~eJg z9k0GWK=StieA6GPJ@rKG@JUNy?X?7eH$ren%Md9gdKI$W$XOAUmmry!5-Dq8r!>Z? zBAzxzO$%UbpmkU$zHE6l(2OW(RYUe1r&$ z)Fj+QvAFmA=iIxDWqcdyW1sT2rPo)xMz%;3e5eO~rChb~`%^9A_*2Ywb{KLcM0*hm9^!K!#8l_#G{|IAsMso6S1XX#9x FeFHZg6}12W diff --git a/utils/wxPython/demo/bitmaps/test2.bmp b/utils/wxPython/demo/bitmaps/test2.bmp deleted file mode 100644 index 3a6547321271e48f304443d3597480f9e1b6f448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12342 zcmd6tZ)jIl7{|Z8&NPZpvm&t63}q?^MbMaR&e(F8L9z)mBwvldfgngUL|pl1Y@uXt zBIsQ-7(tLA3>vIdCT#wBAwt523lfI2m7A{b^E$ zJm=hV&i&OjZ?8e=-**1p!2h-7|4(5RCH^ZvcNgyOJdjxMH3}3lmH02vN@COAO|@2y zg#zSSCF(*o?Rw;ksHiZ-gt7~Z0I-f=+q}KZl#4M(YRv&Nz;vMS5f!pYw#^gXl}u$- zh>%oqc?S3j=*1K;4vYfBz>r_Ceh3?ev2hfe#;HaJL%t~aQt*?!7xIJsW6>}kP{4K-cKquh5z#Esbc@kUi$6ZLt9QP=jfAO>d z3r&FY0x$Pr-FXi1xC@Kr4>VnH2*j+_b4{?K3D37!L z5zp<%nv;nxq<2A(e`(-dE2%CN;a^Jl#kr6W|D}h|av`M)qWmHFxjD?t;NCs?OWCTq zN7K__i9fZP5jk#iA(6UeMv_VOLHdi#D*Kp?!9y}+DAz!`~?D&Gq=(>eLsNAX5=PlLfhoH>IpzQFh2j#ome}7%@gc`l>8BFXEEH65VDDb z2hr9hoWK9hL{bbVVBbEpw1^HhuUwHtiW%gcXf5jR-HStq@Xa?8mVf?{TH->zEHhr} z!5bs&f=vGO;0r&oKl~7T_DGPKCvkql@7N(OR1|XY)8>2ciPvY(`utuOJjmKRWVR(y zWt3Pd;Z2An;n@q74$5nj@ZH@wf8NVF(*<1Pao3R11xbBPfO2jypPAL{ViuF$)&-nC zjn6*A=bz)d?_@X!@+ZM2BTxA8ac|U{QNU#?SK29EkQk_in-3r2@4xZKA2Ru{P~atR zs>_^7Zr{eGOZe$0{P2S~cB!B&d(NO_op}lTZ=b!QIxA^f#L83?LvnVJ3KmWw#%VKkA z2v@Iq(=wZ0R$B+O09~bR>Ai3Yh4{Vna5E%xyE1>eTAt3SQ~2~#965r%zJ!#hM8>NU zFiYdLrQ0rZ#72NH)sDEPeZHFWHlfU!_ucXO%WE2y%}qK%E%zaJ-0;+J1!EKu1jIaHH^ zSc{oeB)Y&2Li!L;<+zZiA*-YEf(yrwqrYF0+$<_ojY1}W<`9Tu>z$kpSv4z5FMRY7 z4j+yT2Tvy}{_KKgdRaPCN_-0_ZCuFTkkzy@8X9Co_`|_dcry6uyQQ-7LM~Navfk4t zhTnCcWmCEA!hr+wj=pk5?^8(6e_6;at6hTpvAJjQoGb%@lhW?pvcUNDSF4bRA1j*w z@BFv?@m!KoTwjk}yU@|W>FCMlPjG?obb;H4zP{@CxtDpig{P)G*-l(SL_%jTt7xdQ zHqh#}E@hd8>gwF?z&^^(AKA#XaW5HP!j<=xv8EFlG8&2*v5*D%OM@57cYz1jJbT|X z9$7!Q!_vf^mvg}~B=d()9&BCVFOWZupBv#-N9Dso&6HigIe6Cv8t{l<8KV4m@5=I+ zs{$T4a68Gub@jxAEOlmQZAF3S_;oL`&Q1&r*r!pmrDataL)QQ0wTFaSU5#Lj0d_WgSak-mxUwkiDt049wP6 zy|hAk^5^(11)qK7Jq^8oUGM{^D4IMje-_Vgks@;W<;x`yH#J;{PET6}4T}hsWw``X z_`M?(hw8c@&Y$Q)s3ChlU6wgt*Kd^*23sYWKPmW*`H}E5P?jMiyQGq|@wby!Kg=Hu zekOms3o;wB3RV^>79G@8?O(#d*Az<3pA3G&aFB8h7D-gT0yyb$=H&dzS(G`f#ZIaz z`$yWOW!k4c&$pA#ZxuKtf5;zk!3!zpNgkA$^G|QevM(~aqb2D$-80MmJ8jakJJwtF zZsl8&cYdCqKjea((y$40{_OE5O}`-p<(C6bo}bVrEz|zf?_l}Pln-H<`Qy4E;(}o4 ztCj~-k@Np*$UTqr!vSrMjlILy^zw#u`273{F1QRy{Qgqdg^JD9cy}lH!=E6l%Aa5_ z6y{8=_#*0FLgRk&2fm*wd}93FO=XS;ut^0+{E^6=!>QS!IYvl9a!;PNDq zl77FToEE+SKV3M;pMWhogWD7Z^LQqG9rYUxcj%AhfH={>Rq$5r}{rpekmLJQV{J>80u|Ph7js6FY C`uY<9 diff --git a/utils/wxPython/demo/bitmaps/tog1.bmp b/utils/wxPython/demo/bitmaps/tog1.bmp deleted file mode 100644 index 75f6e7c4cb5d8733655a31cdedc5a6e8a2cdf611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZ?rea8R+Wk5;;hy{R{ABY(lSb!u0Lj@2Y;e%kX0G!y*zyL%H`}adAAPHnL95`@* vp`oDxDDfYR82= self.min_length: break - n = n - 1 - if n: return string.lower(m.groups()[0]) - return "error" - - - -def stdprint(x): - print x - - - -class URLWordFetcher(WordFetcher): - def __init__(self, url): - self.OpenURL(url) - WordFetcher.__init__(self, "hangman_dict.txt") - - def logprint(self,x): - print x - - def RetrieveAsFile(self, host, path=''): - from httplib import HTTP - try: - h = HTTP(host) - except: - self.logprint("Failed to create HTTP connection to %s... is the network available?" % (host)) - return None - h.putrequest('GET',path) - h.putheader('Accept','text/html') - h.putheader('Accept','text/plain') - h.endheaders() - errcode, errmsg, headers = h.getreply() - if errcode != 200: - self.logprint("HTTP error code %d: %s" % (errcode, errmsg)) - return None - f = h.getfile() - return f - - def OpenURL(self,url): - from htmllib import HTMLParser - import formatter - self.url = url - m = re.match('http://([^/]+)(/\S*)\s*', url) - if m: - host = m.groups()[0] - path = m.groups()[1] - else: - m = re.match('http://(\S+)\s*', url) - if not m: - # Invalid URL - self.logprint("Invalid or unsupported URL: %s" % (url)) - return - host = m.groups()[0] - path = '' - f = self.RetrieveAsFile(host,path) - if not f: - self.logprint("Could not open %s" % (url)) - return - self.logprint("Receiving data...") - data = f.read() - tmp = open('hangman_dict.txt','w') - fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp)) - p = HTMLParser(fmt) - self.logprint("Parsing data...") - p.feed(data) - p.close() - tmp.close() - - - -class HangmanWnd(wxWindow): - def __init__(self, parent, id, pos=wxDefaultPosition, size=wxDefaultSize): - wxWindow.__init__(self, parent, id, pos, size) - self.SetBackgroundColour(wxNamedColour('white')) - if wxPlatform == '__WXGTK__': - self.font = wxFont(12, wxMODERN, wxNORMAL, wxNORMAL) - else: - self.font = wxFont(10, wxMODERN, wxNORMAL, wxNORMAL) - self.SetFocus() - - def StartGame(self, word): - self.word = word - self.guess = [] - self.tries = 0 - self.misses = 0 - self.Draw() - - def EndGame(self): - self.misses = 7; - self.guess = map(chr, range(ord('a'),ord('z')+1)) - self.Draw() - - def HandleKey(self, key): - self.message = "" - if self.guess.count(key): - self.message = 'Already guessed %s' % (key,) - return 0 - self.guess.append(key) - self.guess.sort() - self.tries = self.tries+1 - if not key in self.word: - self.misses = self.misses+1 - if self.misses == 7: - self.EndGame() - return 1 - has_won = 1 - for letter in self.word: - if not self.guess.count(letter): - has_won = 0 - break - if has_won: - self.Draw() - return 2 - self.Draw() - return 0 - - def Draw(self, dc = None): - if not dc: - dc = wxClientDC(self) - dc.SetFont(self.font) - dc.Clear() - (x,y) = self.GetSizeTuple() - x1 = x-200; y1 = 20 - for letter in self.word: - if self.guess.count(letter): - dc.DrawText(letter, x1, y1) - else: - dc.DrawText('.', x1, y1) - x1 = x1 + 10 - x1 = x-200 - dc.DrawText("tries %d misses %d" % (self.tries,self.misses),x1,50) - guesses = "" - for letter in self.guess: - guesses = guesses + letter - dc.DrawText("guessed:", x1, 70) - dc.DrawText(guesses[:13], x1+80, 70) - dc.DrawText(guesses[13:], x1+80, 90) - dc.SetUserScale(x/1000.0, y/1000.0) - self.DrawVictim(dc) - - def DrawVictim(self, dc): - dc.SetPen(wxPen(wxNamedColour('black'), 20)) - dc.DrawLines([(10, 980), (10,900), (700,900), (700,940), (720,940), - (720,980), (900,980)]) - dc.DrawLines([(100,900), (100, 100), (300,100)]) - dc.DrawLine(100,200,200,100) - if ( self.misses == 0 ): return - dc.SetPen(wxPen(wxNamedColour('blue'), 10)) - dc.DrawLine(300,100,300,200) - if ( self.misses == 1 ): return - dc.DrawEllipse(250,200,100,100) - if ( self.misses == 2 ): return - dc.DrawLine(300,300,300,600) - if ( self.misses == 3) : return - dc.DrawLine(300,300,250,550) - if ( self.misses == 4) : return - dc.DrawLine(300,300,350,550) - if ( self.misses == 5) : return - dc.DrawLine(300,600,350,850) - if ( self.misses == 6) : return - dc.DrawLine(300,600,250,850) - - def OnPaint(self, event): - dc = wxPaintDC(self) - self.Draw(dc) - - - -class HangmanDemo(HangmanWnd): - def __init__(self, wf, parent, id, pos, size): - HangmanWnd.__init__(self, parent, id, pos, size) - self.StartGame("dummy") - self.start_new = 1 - self.wf = wf - self.delay = 500 - self.timer = self.PlayTimer(self.MakeMove) - - def MakeMove(self): - self.timer.Stop() - if self.start_new: - self.StartGame(self.wf.Get()) - self.start_new = 0 - self.left = list('aaaabcdeeeeefghiiiiijklmnnnoooopqrssssttttuuuuvwxyz') - else: - key = self.left[int(random.random()*len(self.left))] - while self.left.count(key): self.left.remove(key) - self.start_new = self.HandleKey(key) - self.timer.Start(self.delay) - - def Stop(self): - self.timer.Stop() - - class PlayTimer(wxTimer): - def __init__(self,func): - wxTimer.__init__(self) - self.func = func - self.Start(1000) - - def Notify(self): - apply(self.func, ()) - - - -class HangmanDemoFrame(wxFrame): - def __init__(self, wf, parent, id, pos, size): - wxFrame.__init__(self, parent, id, "Hangman demo", pos, size) - self.demo = HangmanDemo(wf, self, -1, wxDefaultPosition, wxDefaultSize) - - def OnCloseWindow(self, event): - self.demo.timer.Stop() - self.Destroy() - - - -class AboutBox(wxDialog): - def __init__(self, parent,wf): - wxDialog.__init__(self, parent, -1, "About Hangman", wxDefaultPosition, wxSize(350,450)) - self.wnd = HangmanDemo(wf, self, -1, wxPoint(1,1), wxSize(350,150)) - self.static = wxStaticText(self, -1, __doc__, wxPoint(1,160), wxSize(350, 250)) - self.button = wxButton(self, 2001, "OK", wxPoint(150,420), wxSize(50,-1)) - EVT_BUTTON(self, 2001, self.OnOK) - - def OnOK(self, event): - self.wnd.Stop() - self.EndModal(wxID_OK) - - - -class MyFrame(wxFrame): - def __init__(self, parent, wf): - self.wf = wf - wxFrame.__init__(self, parent, -1, "hangman", wxDefaultPosition, wxSize(400,300)) - self.wnd = HangmanWnd(self, -1) - menu = wxMenu() - menu.Append(1001, "New") - menu.Append(1002, "End") - menu.AppendSeparator() - menu.Append(1003, "Reset") - menu.Append(1004, "Demo...") - menu.AppendSeparator() - menu.Append(1005, "Exit") - menubar = wxMenuBar() - menubar.Append(menu, "Game") - menu = wxMenu() - #menu.Append(1010, "Internal", "Use internal dictionary", TRUE) - menu.Append(1011, "ASCII File...") - urls = [ 'wxPython home', 'http://alldunn.com/wxPython/main.html', - 'slashdot.org', 'http://slashdot.org/', - 'cnn.com', 'http://cnn.com', - 'The New York Times', 'http://www.nytimes.com', - 'De Volkskrant', 'http://www.volkskrant.nl/frameless/25000006.html', - 'Gnu GPL', 'http://www.fsf.org/copyleft/gpl.html', - 'Bijbel: Genesis', 'http://www.coas.com/bijbel/gn1.htm'] - urlmenu = wxMenu() - for item in range(0,len(urls),2): - urlmenu.Append(1020+item/2, urls[item], urls[item+1]) - urlmenu.Append(1080, 'Other...', 'Enter an URL') - menu.AppendMenu(1012, 'URL', urlmenu, 'Use a webpage') - menu.Append(1013, 'Dump', 'Write contents to stdout') - menubar.Append(menu, "Dictionary") - self.urls = urls - self.urloffset = 1020 - menu = wxMenu() - menu.Append(1090, "About...") - menubar.Append(menu, "Help") - self.SetMenuBar(menubar) - self.CreateStatusBar(2) - EVT_MENU(self, 1001, self.OnGameNew) - EVT_MENU(self, 1002, self.OnGameEnd) - EVT_MENU(self, 1003, self.OnGameReset) - EVT_MENU(self, 1004, self.OnGameDemo) - EVT_MENU(self, 1005, self.OnWindowClose) - EVT_MENU(self, 1011, self.OnDictFile) - EVT_MENU_RANGE(self, 1020, 1020+len(urls)/2, self.OnDictURL) - EVT_MENU(self, 1080, self.OnDictURLSel) - EVT_MENU(self, 1013, self.OnDictDump) - EVT_MENU(self, 1090, self.OnHelpAbout) - EVT_CHAR(self.wnd, self.OnChar) - self.OnGameReset() - - def OnGameNew(self, event): - word = self.wf.Get() - self.in_progress = 1 - self.SetStatusText("",0) - self.wnd.StartGame(word) - - def OnGameEnd(self, event): - self.UpdateAverages(0) - self.in_progress = 0 - self.SetStatusText("",0) - self.wnd.EndGame() - - def OnGameReset(self, event=None): - self.played = 0 - self.won = 0 - self.history = [] - self.average = 0.0 - self.OnGameNew(None) - - def OnGameDemo(self, event): - frame = HangmanDemoFrame(self.wf, self, -1, wxDefaultPosition, self.GetSize()) - frame.Show(TRUE) - - def OnDictFile(self, event): - fd = wxFileDialog(self) - if (self.wf.filename): - fd.SetFilename(self.wf.filename) - if fd.ShowModal() == wxID_OK: - file = fd.GetPath() - self.wf = WordFetcher(file) - - def OnDictURL(self, event): - item = (event.GetId() - self.urloffset)*2 - print "Trying to open %s at %s" % (self.urls[item], self.urls[item+1]) - self.wf = URLWordFetcher(self.urls[item+1]) - - def OnDictURLSel(self, event): - msg = wxTextEntryDialog(self, "Enter the URL of the dictionary document", "Enter URL") - if msg.ShowModal() == wxID_OK: - url = msg.GetValue() - self.wf = URLWordFetcher(url) - def OnDictDump(self, event): - print self.wf.words - - def OnHelpAbout(self, event): - about = AboutBox(self, self.wf) - about.ShowModal() - about.wnd.Stop() # that damn timer won't stop! - - def UpdateAverages(self, has_won): - if has_won: - self.won = self.won + 1 - self.played = self.played+1 - self.history.append(self.wnd.misses) # ugly - total = 0.0 - for m in self.history: - total = total + m - self.average = float(total/len(self.history)) - - def OnChar(self, event): - if not self.in_progress: - self.OnGameNew(None) - return - key = event.KeyCode(); - if key >= ord('A') and key <= ord('Z'): - key = key + ord('a') - ord('A') - key = chr(key) - if key < 'a' or key > 'z': - event.Skip() - return - res = self.wnd.HandleKey(key) - if res == 0: - self.SetStatusText(self.wnd.message) - elif res == 1: - self.UpdateAverages(0) - self.SetStatusText("Too bad, you're dead!",0) - self.in_progress = 0 - elif res == 2: - self.in_progress = 0 - self.UpdateAverages(1) - self.SetStatusText("Congratulations!",0) - if self.played: - percent = (100.*self.won)/self.played - else: - percent = 0.0 - self.SetStatusText("p %d, w %d (%g %%), av %g" % (self.played,self.won, percent, self.average),1) - - def OnWindowClose(self, event): - self.Destroy() - - - -class MyApp(wxApp): - def OnInit(self): - if wxPlatform == '__WXGTK__': - defaultfile = "/usr/share/games/hangman-words" - elif wxPlatform == '__WXMSW__': - defaultfile = "c:\\windows\\hardware.txt" - else: - defaultfile = "" - wf = WordFetcher(defaultfile) - frame = MyFrame(NULL, wf) - self.SetTopWindow(frame) - frame.Show(TRUE) - return TRUE - - - -if __name__ == '__main__': - app = MyApp(0) - app.MainLoop() - - -#---------------------------------------------------------------------- - -overview = __doc__ - - -def runTest(frame, nb, log): - if wxPlatform == '__WXGTK__' or wxPlatform == '__WXMOTIF__': - defaultfile = "/usr/share/games/hangman-words" - elif wxPlatform == '__WXMSW__': - defaultfile = "c:\\windows\\hardware.txt" - else: - defaultfile = "" - wf = WordFetcher(defaultfile) - win = MyFrame(frame, wf) - frame.otherWin = win - win.Show(true) - - -#---------------------------------------------------------------------- - - - - diff --git a/utils/wxPython/demo/pyTree.py b/utils/wxPython/demo/pyTree.py deleted file mode 100644 index 47283527f1..0000000000 --- a/utils/wxPython/demo/pyTree.py +++ /dev/null @@ -1,211 +0,0 @@ -""" -Hello, and welcome to this test of the wxTreeItemData -class. - -The wxTreeItemData class can be used to associate a python -object with a wxTreeCtrl item. In this sample, its use is -demonstrated via a tree control that shows the contents of a -python namespace according to the standard dir() -command. Every item in the tree has its label taken from the -dir() output, and 'behind it' a reference to the python -object is stored in a wxTreeItemData object. - -As you may have guessed by now, this sample automatically -displays '__doc__' strings if the selected python object -happens to have one. Please expand the pyTree object to -learn more about the implementation. - -Version 1.0, April 4 1999. -Harm van der Heijden (H.v.d.Heijden@phys.tue.nl) - -P.S. Check out the string module. It's imported in this -sample not because it's used, but because it's so -beautifully documented... -""" - -from wxPython import wx -import string # Don't use it, but it's fun expanding :-) - -#---------------------------------------------------------------------- - -def _getindent(line): - """Returns the indentation level of the given line.""" - indent = 0 - for c in line: - if c == ' ': indent = indent + 1 - elif c == '\t': indent = indent + 8 - else: break - return indent - -def _sourcefinder(func): - """Given a func_code object, this function tries to find and return - the python source code of the function.""" - try: - f = open(func.co_filename,"r") - except: - return "(could not open file %s)" % (func.co_filename,) - - for i in range(func.co_firstlineno): - line = f.readline() - ind = _getindent(line) - msg = "" - while line: - msg = msg + line - line = f.readline() - # the following should be <= ind, but then we get - # confused by multiline docstrings. Using == works most of - # the time... but not always! - if _getindent(line) == ind: break - return msg - -#---------------------------------------------------------------------- - -class pyTree(wx.wxTreeCtrl): - """ - This wxTreeCtrl derivative displays a tree view of a Python namespace. - Anything from which the dir() command returns a non-empty list is a branch - in this tree. - """ - - def __init__(self, parent, id, root): - """ - Initialize function; because we insert branches into the tree - as needed, we use the ITEM_EXPANDING event handler. The - ITEM_COLLAPSED handler removes the stuff afterwards. The - SEL_CHANGED handler attempts to display interesting - information about the selected object. - """ - wx.wxTreeCtrl.__init__(self, parent, id) - self.root = self.AddRoot(str(root), -1, -1, wx.wxTreeItemData(root)) - if dir(root): - self.SetItemHasChildren(self.root, wx.TRUE) - wx.EVT_TREE_ITEM_EXPANDING(self, self.GetId(), self.OnItemExpanding) - wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemCollapsed) - wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged) - self.output = None - - - def SetOutput(self, output): - """ - Set output function (accepts single string). Used to display string - representation of the selected object by OnSelChanged. - """ - self.output = output - - - def OnItemExpanding(self,event): - """ - The real workhorse of this class. First we retrieve the object - (parent) belonging to the branch that is to be expanded. This - is done by calling GetPyData(parent), which is a short-cut for - GetPyItemData(parent).Get(). - - Then we get the dir() list of that object. For each item in - this list, a tree item is created with associated - wxTreeItemData referencing the child object. We get this - object using child = getattr(parent, item). - - Finally, we check wether the child returns a non-empty dir() - list. If so, it is labeled as 'having children', so that it - may be expanded. When it actually is expanded, this function - will again figure out what the offspring is. - """ - item = event.GetItem() - obj = self.GetPyData( item ) - lst = dir(obj) - for key in lst: - new_obj = getattr(obj,key) - new_item = self.AppendItem( item, key, -1, -1, - wx.wxTreeItemData(new_obj) ) - if dir(new_obj): - self.SetItemHasChildren(new_item, wx.TRUE) - - def OnItemCollapsed(self, event): - """ - We need to remove all children here, otherwise we'll see all - that old rubbish again after the next expansion. - """ - item = event.GetItem() - self.DeleteChildren(item) - - def OnSelChanged(self, event): - """ - If an output function is defined, we try to print some - informative, interesting and thought-provoking stuff to it. - If it has a __doc__ string, we print it. If it's a function or - unbound class method, we attempt to find the python source. - """ - if not self.output: - return - obj = self.GetPyData( event.GetItem() ) - msg = str(obj) - if hasattr(obj, '__doc__'): - msg = msg+"\n\nDocumentation string:\n\n%s" % ( getattr(obj, '__doc__'),) - # Is it a function? - func = None - if hasattr(obj, "func_code"): # normal function - func = getattr(obj, "func_code") - elif hasattr(obj, "im_func"): # unbound class method - func = getattr(getattr(obj, "im_func"), "func_code") - if func: # if we found one, let's try to print the source - msg = msg+"\n\nFunction source:\n\n" + _sourcefinder(func) - - apply(self.output, (msg,)) - -#---------------------------------------------------------------------- - -overview = __doc__ - -def runTest(frame, nb, log): - """ - This method is used by the wxPython Demo Framework for integrating - this demo with the rest. - """ - thisModule = __import__(__name__, globals()) - win = wx.wxFrame(frame, -1, "PyTreeItemData Test") - split = wx.wxSplitterWindow(win, -1) - tree = pyTree(split, -1, thisModule) - text = wx.wxTextCtrl(split, -1, "", wx.wxDefaultPosition, - wx.wxDefaultSize, wx.wxTE_MULTILINE) - split.SplitVertically(tree, text, 200) - tree.SetOutput(text.SetValue) - tree.SelectItem(tree.root) - win.SetSize(wx.wxSize(800,500)) - frame.otherWin = win - win.Show(1) - - - -#---------------------------------------------------------------------- -if __name__ == '__main__': - - class MyFrame(wx.wxFrame): - """Very standard Frame class. Nothing special here!""" - - def __init__(self): - """Make a splitter window; left a tree, right a textctrl. Wow.""" - import __main__ - wx.wxFrame.__init__(self, wx.NULL, -1, "PyTreeItemData Test", - wx.wxDefaultPosition, wx.wxSize(800,500)) - split = wx.wxSplitterWindow(self, -1) - tree = pyTree(split, -1, __main__) - text = wx.wxTextCtrl(split, -1, "", wx.wxDefaultPosition, - wx.wxDefaultSize, wx.wxTE_MULTILINE) - split.SplitVertically(tree, text, 200) - tree.SetOutput(text.SetValue) - tree.SelectItem(tree.root) - - class MyApp(wx.wxApp): - """This class is even less interesting than MyFrame.""" - - def OnInit(self): - """OnInit. Boring, boring, boring!""" - frame = MyFrame() - frame.Show(wx.TRUE) - self.SetTopWindow(frame) - return wx.TRUE - - app = MyApp(0) - app.MainLoop() - - diff --git a/utils/wxPython/demo/wxButton.py b/utils/wxPython/demo/wxButton.py deleted file mode 100644 index 2ea79bdca7..0000000000 --- a/utils/wxPython/demo/wxButton.py +++ /dev/null @@ -1,47 +0,0 @@ - -from wxPython.wx import * - -#---------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - - wxButton(self, 10, "Hello", wxPoint(20, 20)).SetDefault() - EVT_BUTTON(self, 10, self.OnClick) - - wxButton(self, 20, "HELLO AGAIN!", wxPoint(20, 60), wxSize(90, 45)) - EVT_BUTTON(self, 20, self.OnClick) - - bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) - wxBitmapButton(self, 30, bmp, wxPoint(140, 20), - wxSize(bmp.GetWidth()+10, bmp.GetHeight()+10)) - EVT_BUTTON(self, 30, self.OnClick) - - - def OnClick(self, event): - self.log.WriteText("Click! (%d)\n" % event.GetId()) - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" - - diff --git a/utils/wxPython/demo/wxCheckBox.py b/utils/wxPython/demo/wxCheckBox.py deleted file mode 100644 index 8f1f7d5d78..0000000000 --- a/utils/wxPython/demo/wxCheckBox.py +++ /dev/null @@ -1,80 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestCheckBox(wxPanel): - def __init__(self, parent, log): - self.log = log - wxPanel.__init__(self, parent, -1) - - wxStaticText(self, -1, "This example uses the wxCheckBox control.", - wxPoint(10, 10)) - - cID = NewId() - cb1 = wxCheckBox(self, cID, " Apples", wxPoint(65, 40), wxSize(150, 20), wxNO_BORDER) - cb2 = wxCheckBox(self, cID+1, " Oranges", wxPoint(65, 60), wxSize(150, 20), wxNO_BORDER) - cb2.SetValue(true) - cb3 = wxCheckBox(self, cID+2, " Pears", wxPoint(65, 80), wxSize(150, 20), wxNO_BORDER) - - EVT_CHECKBOX(self, cID, self.EvtCheckBox) - EVT_CHECKBOX(self, cID+1, self.EvtCheckBox) - EVT_CHECKBOX(self, cID+2, self.EvtCheckBox) - - - def EvtCheckBox(self, event): - self.log.WriteText('EvtCheckBox: %d\n' % event.Checked()) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestCheckBox(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - -overview = """\ -A checkbox is a labelled box which is either on (checkmark is visible) or off (no checkmark). - -wxCheckBox() ------------------------ - -Default constructor. - -wxCheckBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxValidator& val, const wxString& name = "checkBox") - -Constructor, creating and showing a checkbox. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Checkbox identifier. A value of -1 indicates a default value. - -label = Text to be displayed next to the checkbox. - -pos = Checkbox position. If the position (-1, -1) is specified then a default position is chosen. - -size = Checkbox size. If the default size (-1, -1) is specified then a default size is chosen. - -style = Window style. See wxCheckBox. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxCheckListBox.py b/utils/wxPython/demo/wxCheckListBox.py deleted file mode 100644 index 4727459b0c..0000000000 --- a/utils/wxPython/demo/wxCheckListBox.py +++ /dev/null @@ -1,53 +0,0 @@ - -from wxPython.wx import * - -#---------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - - sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', - 'twelve', 'thirteen', 'fourteen'] - - wxStaticText(self, -1, "This example uses the wxCheckListBox control.", - wxPoint(45, 15)) - - lb = wxCheckListBox(self, 60, wxPoint(80, 50), wxSize(80, 120), - sampleList) - EVT_LISTBOX(self, 60, self.EvtListBox) - EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick) - lb.SetSelection(0) - - - def EvtListBox(self, event): - self.log.WriteText('EvtListBox: %s\n' % event.GetString()) - - def EvtListBoxDClick(self, event): - self.log.WriteText('EvtListBoxDClick:\n') - - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" - - diff --git a/utils/wxPython/demo/wxChoice.py b/utils/wxPython/demo/wxChoice.py deleted file mode 100644 index 55ddbb5ebf..0000000000 --- a/utils/wxPython/demo/wxChoice.py +++ /dev/null @@ -1,76 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestChoice(wxPanel): - def __init__(self, parent, log): - self.log = log - wxPanel.__init__(self, parent, -1) - - sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight'] - - wxStaticText(self, -1, "This example uses the wxChoice control.", - wxPoint(15, 10)) - - wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 20)) - wxChoice(self, 40, wxPoint(80, 50), wxSize(95, 20), #wxDefaultSize, - sampleList) - EVT_CHOICE(self, 40, self.EvtChoice) - - def EvtChoice(self, event): - self.log.WriteText('EvtChoice: %s\n' % event.GetString()) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestChoice(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - -overview = """\ -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. - -wxChoice() -------------------- - -Default constructor. - -wxChoice(wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxSize& size, int n, const wxString choices[], long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "choice") - -Constructor, creating and showing a choice. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Window identifier. A value of -1 indicates a default value. - -pos = Window position. - -size = Window size. If the default size (-1, -1) is specified then the choice is sized appropriately. - -n = Number of strings with which to initialise the choice control. - -choices = An array of strings with which to initialise the choice control. - -style = Window style. See wxChoice. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxColourDialog.py b/utils/wxPython/demo/wxColourDialog.py deleted file mode 100644 index 1f06f5cb28..0000000000 --- a/utils/wxPython/demo/wxColourDialog.py +++ /dev/null @@ -1,38 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - data = wxColourData() - data.SetChooseFull(true) - dlg = wxColourDialog(frame, data) - if dlg.ShowModal() == wxID_OK: - data = dlg.GetColourData() - log.WriteText('You selected: %s\n' % str(data.GetColour().Get())) - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - -overview = """\ -This class represents the colour chooser dialog. - -wxColourDialog() ------------------------------- - -wxColourDialog(wxWindow* parent, 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. - -""" diff --git a/utils/wxPython/demo/wxComboBox.py b/utils/wxPython/demo/wxComboBox.py deleted file mode 100644 index 4415d2f64e..0000000000 --- a/utils/wxPython/demo/wxComboBox.py +++ /dev/null @@ -1,79 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestComboBox(wxPanel): - def __init__(self, parent, log): - self.log = log - wxPanel.__init__(self, parent, -1) - - sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight'] - - wxStaticText(self, -1, "This example uses the wxComboBox control.", - wxPoint(8, 10)) - - wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(75, 18)) - wxComboBox(self, 50, "default value", wxPoint(80, 50), wxSize(95, 20), - sampleList, wxCB_DROPDOWN) - EVT_COMBOBOX(self, 50, self.EvtComboBox) - - - def EvtComboBox(self, event): - self.log.WriteText('EvtComboBox: %s\n' % event.GetString()) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestComboBox(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - -overview = """\ -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. - -wxComboBox() ------------------------ - -Default constructor. - -wxComboBox(wxWindow* parent, wxWindowID id, const wxString& value = "", const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n, const wxString choices[], long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "comboBox") - -Constructor, creating and showing a combobox. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Window identifier. A value of -1 indicates a default value. - -pos = Window position. - -size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately. - -n = Number of strings with which to initialise the control. - -choices = An array of strings with which to initialise the control. - -style = Window style. See wxComboBox. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxDialog.py b/utils/wxPython/demo/wxDialog.py deleted file mode 100644 index a22a528248..0000000000 --- a/utils/wxPython/demo/wxDialog.py +++ /dev/null @@ -1,33 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = wxDialog(frame, -1, "This is a wxDialog", wxDefaultPosition, wxSize(350, 200)) - - wxStaticText(win, -1, "This is a wxDialog", wxPoint(20, 20)) - wxButton(win, wxID_OK, " OK ", wxPoint(75, 120), wxDefaultSize).SetDefault() - wxButton(win, wxID_CANCEL, " Cancel ", wxPoint(150, 120), wxDefaultSize) - - val = win.ShowModal() - if val == wxID_OK: - log.WriteText("You pressed OK\n") - else: - log.WriteText("You pressed Cancel\n") - - - -#--------------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxDirDialog.py b/utils/wxPython/demo/wxDirDialog.py deleted file mode 100644 index 1e40bf2bb1..0000000000 --- a/utils/wxPython/demo/wxDirDialog.py +++ /dev/null @@ -1,53 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - dlg = wxDirDialog(frame) - if dlg.ShowModal() == wxID_OK: - log.WriteText('You selected: %s\n' % dlg.GetPath()) - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - -overview = """\ -This class represents the directory chooser dialog. - -wxDirDialog() ------------------------- - -wxDirDialog(wxWindow* parent, const wxString& message = "Choose a directory", const wxString& defaultPath = "", long style = 0, const wxPoint& pos = wxDefaultPosition) - -Constructor. Use wxDirDialog::ShowModal to show the dialog. - -Parameters -------------------- - -parent = Parent window. - -message = Message to show on the dialog. - -defaultPath = The default path, or the empty string. - -style = A dialog style, currently unused. - -pos = Dialog position. -""" diff --git a/utils/wxPython/demo/wxFileDialog.py b/utils/wxPython/demo/wxFileDialog.py deleted file mode 100644 index 0287f4ccd5..0000000000 --- a/utils/wxPython/demo/wxFileDialog.py +++ /dev/null @@ -1,62 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - dlg = wxFileDialog(frame, "Choose a file", ".", "", "*.*", wxOPEN) - if dlg.ShowModal() == wxID_OK: - log.WriteText('You selected: %s\n' % dlg.GetPath()) - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - -overview = """\ -This class represents the file chooser dialog. - -wxFileDialog() ----------------------------- - -wxFileDialog(wxWindow* parent, const wxString& message = "Choose a file", const wxString& defaultDir = "" -, const wxString& defaultFile = "", const wxString& wildcard = "*.*", long style = 0, const wxPoint& pos = wxDefaultPosition) - -Constructor. Use wxFileDialog::ShowModal to show the dialog. - -Parameters -------------------- - -parent = Parent window. - -message = Message to show on the dialog. - -defaultDir = The default directory, or the empty string. - -defaultFile = The default filename, or the empty string. - -wildcard = A wildcard, such as "*.*". - -style = A dialog style. A bitlist of: - -wxOPEN This is an open dialog (Windows only). - -wxSAVE This is a save dialog (Windows only). - -wxHIDE_READONLY Hide read-only files (Windows only). - -wxOVERWRITE_PROMPT Prompt for a conformation if a file will be overridden (Windows only). - -pos = Dialog position. -""" diff --git a/utils/wxPython/demo/wxFontDialog.py b/utils/wxPython/demo/wxFontDialog.py deleted file mode 100644 index ec1caa73ff..0000000000 --- a/utils/wxPython/demo/wxFontDialog.py +++ /dev/null @@ -1,39 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - dlg = wxFontDialog(frame) - if dlg.ShowModal() == wxID_OK: - data = dlg.GetFontData() - font = data.GetChosenFont() - log.WriteText('You selected: "%s", %d points, color %s\n' % - (font.GetFaceName(), font.GetPointSize(), - data.GetColour().Get())) - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - -overview = """\ -This class represents the font chooser dialog. - -wxFontDialog() ----------------------------- - -wxFontDialog(wxWindow* parent, wxFontData* data = NULL) - -Constructor. Pass a parent window, and optionally a pointer to a block of font data, which will be copied to the font dialog's font data. -""" diff --git a/utils/wxPython/demo/wxFrame.py b/utils/wxPython/demo/wxFrame.py deleted file mode 100644 index e0fc080954..0000000000 --- a/utils/wxPython/demo/wxFrame.py +++ /dev/null @@ -1,41 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class MyFrame(wxFrame): - def __init__(self, parent, ID, title, pos, size): - wxFrame.__init__(self, parent, ID, title, pos, size) - panel = wxPanel(self, -1) - - button = wxButton(panel, 1003, "Close Me") - button.SetPosition(wxPoint(15, 15)) - EVT_BUTTON(self, 1003, self.OnCloseMe) - - def OnCloseMe(self, event): - self.Close(true) - - def OnCloseWindow(self, event): - self.Destroy() - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = MyFrame(frame, -1, "This is a wxFrame", wxDefaultPosition, wxSize(350, 200)) - frame.otherWin = win - win.Show(true) - - -#--------------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxGLCanvas.py b/utils/wxPython/demo/wxGLCanvas.py deleted file mode 100644 index 4290f92767..0000000000 --- a/utils/wxPython/demo/wxGLCanvas.py +++ /dev/null @@ -1,153 +0,0 @@ - -from wxPython.wx import * -try: - from wxPython.glcanvas import * - haveGLCanvas = true -except ImportError: - haveGLCanvas = false - -#---------------------------------------------------------------------- - -if not haveGLCanvas: - def runTest(frame, nb, log): - dlg = wxMessageDialog(frame, 'The wxGLCanvas has not been included with this build of wxPython!', - 'Sorry', wxOK | wxICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - -else: - - - def runTest(frame, nb, log): - win = TestGLCanvas(nb) - return win - - - - class TestGLCanvas(wxGLCanvas): - def __init__(self, parent): - wxGLCanvas.__init__(self, parent, -1) - EVT_ERASE_BACKGROUND(self, self.OnEraseBackground) - self.init = false - - def OnEraseBackground(self, event): - pass # Do nothing, to avoid flashing. - - - def OnSize(self, event): - size = self.GetClientSize() - if self.GetContext() != 'NULL': - self.SetCurrent() - glViewport(0, 0, size.width, size.height) - - - def OnPaint(self, event): - dc = wxPaintDC(self) - - ctx = self.GetContext() - if ctx == "NULL": return - - self.SetCurrent() - - - if not self.init: - self.InitGL() - self.init = true - - # clear color and depth buffers - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - # draw six faces of a cube - glBegin(GL_QUADS) - glNormal3f( 0.0, 0.0, 1.0) - glVertex3f( 0.5, 0.5, 0.5) - glVertex3f(-0.5, 0.5, 0.5) - glVertex3f(-0.5,-0.5, 0.5) - glVertex3f( 0.5,-0.5, 0.5) - - glNormal3f( 0.0, 0.0,-1.0) - glVertex3f(-0.5,-0.5,-0.5) - glVertex3f(-0.5, 0.5,-0.5) - glVertex3f( 0.5, 0.5,-0.5) - glVertex3f( 0.5,-0.5,-0.5) - - glNormal3f( 0.0, 1.0, 0.0) - glVertex3f( 0.5, 0.5, 0.5) - glVertex3f( 0.5, 0.5,-0.5) - glVertex3f(-0.5, 0.5,-0.5) - glVertex3f(-0.5, 0.5, 0.5) - - glNormal3f( 0.0,-1.0, 0.0) - glVertex3f(-0.5,-0.5,-0.5) - glVertex3f( 0.5,-0.5,-0.5) - glVertex3f( 0.5,-0.5, 0.5) - glVertex3f(-0.5,-0.5, 0.5) - - glNormal3f( 1.0, 0.0, 0.0) - glVertex3f( 0.5, 0.5, 0.5) - glVertex3f( 0.5,-0.5, 0.5) - glVertex3f( 0.5,-0.5,-0.5) - glVertex3f( 0.5, 0.5,-0.5) - - glNormal3f(-1.0, 0.0, 0.0) - glVertex3f(-0.5,-0.5,-0.5) - glVertex3f(-0.5,-0.5, 0.5) - glVertex3f(-0.5, 0.5, 0.5) - glVertex3f(-0.5, 0.5,-0.5) - glEnd() - - self.SwapBuffers() - - - def InitGL(self): - # set viewing projection - glMatrixMode(GL_PROJECTION); - glFrustum(-0.5, 0.5, -0.5, 0.5, 1.0, 3.0); - - # position viewer - glMatrixMode(GL_MODELVIEW); - glTranslatef(0.0, 0.0, -2.0); - - # position object - glRotatef(30.0, 1.0, 0.0, 0.0); - glRotatef(30.0, 0.0, 1.0, 0.0); - - glEnable(GL_DEPTH_TEST); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - - - - - - - - - - - - - -overview = """\ -""" - - - - - -#---------------------------------------------------------------------- - -def _test(): - class MyApp(wxApp): - def OnInit(self): - frame = wxFrame(NULL, -1, "HELP ME!!") - win = TestGLCanvas(frame) - frame.Show(TRUE) - self.SetTopWindow(frame) - return TRUE - - app = MyApp(0) - app.MainLoop() - -if __name__ == '__main__': - _test() diff --git a/utils/wxPython/demo/wxGauge.py b/utils/wxPython/demo/wxGauge.py deleted file mode 100644 index 3d26a6e727..0000000000 --- a/utils/wxPython/demo/wxGauge.py +++ /dev/null @@ -1,55 +0,0 @@ - -from wxPython.wx import * - -#---------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - self.count = 0 - - wxStaticText(self, -1, "This example uses the wxGauge control.", - wxPoint(45, 15)) - - #self.g1 = wxGauge(self, -1, 50, wxPoint(40, 50), wxSize(40, 160), - # wxGA_VERTICAL) - #self.g1.SetBezelFace(3) - #self.g1.SetShadowWidth(3) - - self.g2 = wxGauge(self, -1, 50, wxPoint(110, 50), wxSize(250, 25), - wxGA_HORIZONTAL) - self.g2.SetBezelFace(5) - self.g2.SetShadowWidth(5) - - EVT_IDLE(self, self.IdleHandler) - - - def IdleHandler(self, event): - self.count = self.count + 1 - if self.count >= 50: - self.count = 0 - #self.g1.SetValue(self.count) - self.g2.SetValue(self.count) - - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxGrid.py b/utils/wxPython/demo/wxGrid.py deleted file mode 100644 index 78431ca6c2..0000000000 --- a/utils/wxPython/demo/wxGrid.py +++ /dev/null @@ -1,77 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestGrid(wxGrid): - def __init__(self, parent, log): - wxGrid.__init__(self, parent, -1) - self.log = log - - self.CreateGrid(16, 16) - self.SetColumnWidth(3, 200) - self.SetRowHeight(4, 45) - self.SetCellValue("First cell", 0, 0) - self.SetCellValue("Another cell", 1, 1) - self.SetCellValue("Yet another cell", 2, 2) - self.SetCellTextFont(wxFont(12, wxROMAN, wxITALIC, wxNORMAL), 0, 0) - self.SetCellTextColour(wxRED, 1, 1) - self.SetCellBackgroundColour(wxCYAN, 2, 2) - self.UpdateDimensions() - self.AdjustScrollbars() - - EVT_GRID_SELECT_CELL(self, self.OnSelectCell) - EVT_GRID_CELL_CHANGE(self, self.OnCellChange) - EVT_GRID_CELL_LCLICK(self, self.OnCellClick) - EVT_GRID_LABEL_LCLICK(self, self.OnLabelClick) - - - - def OnSelectCell(self, event): - self.log.WriteText("OnSelectCell: (%d, %d)\n" % (event.m_row, event.m_col)) - - def OnCellChange(self, event): - self.log.WriteText("OnCellChange: (%d, %d)\n" % (event.m_row, event.m_col)) - - def OnCellClick(self, event): - self.log.WriteText("OnCellClick: (%d, %d)\n" % (event.m_row, event.m_col)) - - def OnLabelClick(self, event): - self.log.WriteText("OnLabelClick: (%d, %d)\n" % (event.m_row, event.m_col)) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestGrid(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - - -overview = """\ -wxGrid is a class for displaying and editing tabular information. - -wxGrid() ------------------ - -wxGrid(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style=0, const wxString& name="grid") - -Constructor. Before using a wxGrid object, you must call CreateGrid to set up the required rows and columns. -""" diff --git a/utils/wxPython/demo/wxImage.py b/utils/wxPython/demo/wxImage.py deleted file mode 100644 index bed1c2ca8b..0000000000 --- a/utils/wxPython/demo/wxImage.py +++ /dev/null @@ -1,40 +0,0 @@ - -from wxPython.wx import * - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - bmp = wxImage('bitmaps/image.bmp', wxBITMAP_TYPE_BMP).ConvertToBitmap() - gif = wxImage('bitmaps/image.gif', wxBITMAP_TYPE_GIF).ConvertToBitmap() - png = wxImage('bitmaps/image.png', wxBITMAP_TYPE_PNG).ConvertToBitmap() - jpg = wxImage('bitmaps/image.jpg', wxBITMAP_TYPE_JPEG).ConvertToBitmap() - - panel = wxPanel(nb, -1) - pos = 10 - wxStaticBitmap(panel, -1, bmp, wxPoint(10, pos), - wxSize(bmp.GetWidth(), bmp.GetHeight())) - - pos = pos + bmp.GetHeight() + 10 - wxStaticBitmap(panel, -1, gif, wxPoint(10, pos), - wxSize(gif.GetWidth(), gif.GetHeight())) - - pos = pos + gif.GetHeight() + 10 - wxStaticBitmap(panel, -1, png, wxPoint(10, pos), - wxSize(png.GetWidth(), png.GetHeight())) - - pos = pos + png.GetHeight() + 10 - wxStaticBitmap(panel, -1, jpg, wxPoint(10, pos), - wxSize(jpg.GetWidth(), jpg.GetHeight())) - - return panel - -#---------------------------------------------------------------------- - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxLayoutConstraints.py b/utils/wxPython/demo/wxLayoutConstraints.py deleted file mode 100644 index 9182115d4c..0000000000 --- a/utils/wxPython/demo/wxLayoutConstraints.py +++ /dev/null @@ -1,142 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestLayoutConstraints(wxWindow): - def __init__(self, parent): - wxWindow.__init__(self, parent, -1) - self.SetBackgroundColour(wxNamedColour("MEDIUM ORCHID")) - - self.SetAutoLayout(true) - EVT_BUTTON(self, 100, self.OnButton) - - self.panelA = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelA.SetBackgroundColour(wxBLUE) - txt = wxStaticText(self.panelA, -1, - "Resize the window and see\n" - "what happens... Notice that\n" - "there is no OnSize handler.", - wxPoint(5,5), wxSize(-1, 50)) - txt.SetBackgroundColour(wxBLUE) - txt.SetForegroundColour(wxWHITE) - - lc = wxLayoutConstraints() - lc.top.SameAs(self, wxTop, 10) - lc.left.SameAs(self, wxLeft, 10) - lc.bottom.SameAs(self, wxBottom, 10) - lc.right.PercentOf(self, wxRight, 50) - self.panelA.SetConstraints(lc) - - self.panelB = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelB.SetBackgroundColour(wxRED) - lc = wxLayoutConstraints() - lc.top.SameAs(self, wxTop, 10) - lc.right.SameAs(self, wxRight, 10) - lc.bottom.PercentOf(self, wxBottom, 30) - lc.left.RightOf(self.panelA, 10) - self.panelB.SetConstraints(lc) - - self.panelC = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelC.SetBackgroundColour(wxWHITE) - lc = wxLayoutConstraints() - lc.top.Below(self.panelB, 10) - lc.right.SameAs(self, wxRight, 10) - lc.bottom.SameAs(self, wxBottom, 10) - lc.left.RightOf(self.panelA, 10) - self.panelC.SetConstraints(lc) - - b = wxButton(self.panelA, 100, ' Panel A ') - lc = wxLayoutConstraints() - lc.centreX.SameAs (self.panelA, wxCentreX) - lc.centreY.SameAs (self.panelA, wxCentreY) - lc.height.AsIs () - lc.width.PercentOf (self.panelA, wxWidth, 50) - b.SetConstraints(lc); - - b = wxButton(self.panelB, 100, ' Panel B ') - lc = wxLayoutConstraints() - lc.top.SameAs (self.panelB, wxTop, 2) - lc.right.SameAs (self.panelB, wxRight, 4) - lc.height.AsIs () - lc.width.AsIs () - b.SetConstraints(lc); - - self.panelD = wxWindow(self.panelC, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelD.SetBackgroundColour(wxGREEN) - wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN) - - b = wxButton(self.panelC, 100, ' Panel C ') - lc = wxLayoutConstraints() - lc.top.Below (self.panelD) - lc.left.RightOf (self.panelD) - lc.height.AsIs () - lc.width.AsIs () - b.SetConstraints(lc); - - lc = wxLayoutConstraints() - lc.bottom.PercentOf (self.panelC, wxHeight, 50) - lc.right.PercentOf (self.panelC, wxWidth, 50) - lc.height.SameAs (b, wxHeight) - lc.width.SameAs (b, wxWidth) - self.panelD.SetConstraints(lc); - - - def OnButton(self, event): - wxBell() - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestLayoutConstraints(nb) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - -overview = """\ -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. - -left: represents the left hand edge of the window - -right: represents the right hand edge of the window - -top: represents the top edge of the window - -bottom: represents the bottom edge of the window - -width: represents the width of the window - -height: represents the height of the window - -centreX: represents the horizontal centre point of the window - -centreY: represents the vertical centre point of the window - -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 width and 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. - -wxLayoutConstraints() -------------------------------------------- - -Constructor. -""" diff --git a/utils/wxPython/demo/wxListBox.py b/utils/wxPython/demo/wxListBox.py deleted file mode 100644 index dd46fc5e30..0000000000 --- a/utils/wxPython/demo/wxListBox.py +++ /dev/null @@ -1,99 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestListBox(wxPanel): - def __init__(self, parent, log): - self.log = log - wxPanel.__init__(self, parent, -1) - - sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', - 'twelve', 'thirteen', 'fourteen'] - - wxStaticText(self, -1, "This example uses the wxListBox control.", - wxPoint(45, 10)) - - wxStaticText(self, -1, "Select one:", wxPoint(15, 50), wxSize(65, 18)) - lb = wxListBox(self, 60, wxPoint(80, 50), wxSize(80, 120), - sampleList, wxLB_SINGLE) - EVT_LISTBOX(self, 60, self.EvtListBox) - EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick) - lb.SetSelection(0) - - - wxStaticText(self, -1, "Select many:", wxPoint(200, 50), wxSize(65, 18)) - self.lb = wxListBox(self, 70, wxPoint(280, 50), wxSize(80, 120), - sampleList, wxLB_EXTENDED) - EVT_LISTBOX(self, 70, self.EvtMultiListBox) - EVT_LISTBOX_DCLICK(self, 70, self.EvtListBoxDClick) - self.lb.SetSelection(0) - - - def EvtListBox(self, event): - self.log.WriteText('EvtListBox: %s\n' % event.GetString()) - - def EvtListBoxDClick(self, event): - self.log.WriteText('EvtListBoxDClick:\n') - - def EvtMultiListBox(self, event): - self.log.WriteText('EvtMultiListBox: %s\n' % str(self.lb.GetSelections())) - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestListBox(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - -overview = """\ -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. - -wxListBox() ---------------------- - -Default constructor. - -wxListBox(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n, const wxString choices[] = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listBox") - -Constructor, creating and showing a list box. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Window identifier. A value of -1 indicates a default value. - -pos = Window position. - -size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately. - -n = Number of strings with which to initialise the control. - -choices = An array of strings with which to initialise the control. - -style = Window style. See wxListBox. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxListCtrl.py b/utils/wxPython/demo/wxListCtrl.py deleted file mode 100644 index a3d4daed82..0000000000 --- a/utils/wxPython/demo/wxListCtrl.py +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: ListCtrl.py -# Purpose: Testing lots of stuff, controls, window types, etc. -# -# Author: Robin Dunn & Gary Dumer -# -# Created: -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestListCtrlPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - - self.log = log - tID = NewId() - - self.il = wxImageList(16, 16) - idx1 = self.il.Add(wxNoRefBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP)) - - self.list = wxListCtrl(self, tID, wxDefaultPosition, wxDefaultSize, - wxLC_REPORT|wxSUNKEN_BORDER) - self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL) - - self.list.SetToolTip(wxToolTip("This is a ToolTip!")) - wxToolTip_Enable(true) - - self.list.InsertColumn(0, "Column 0") - self.list.InsertColumn(1, "Column 1") - self.list.InsertColumn(2, "One More Column (2)") - for x in range(50): - self.list.InsertImageStringItem(x, "This is item %d" % x, idx1) - self.list.SetStringItem(x, 1, "Col 1, item %d" % x) - self.list.SetStringItem(x, 2, "item %d in column 2" % x) - - self.list.SetColumnWidth(0, wxLIST_AUTOSIZE) - self.list.SetColumnWidth(1, wxLIST_AUTOSIZE) - self.list.SetColumnWidth(2, wxLIST_AUTOSIZE) - - - def OnSize(self, event): - w,h = self.GetClientSizeTuple() - self.list.SetDimensions(0, 0, w, h) - - - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestListCtrlPanel(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - - -overview = """\ -A list control presents lists in a number of formats: list view, report view, icon view and small icon view. Elements are numbered from zero. - -wxListCtrl() ------------------------- - -Default constructor. - -wxListCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl") - -Constructor, creating and showing a list control. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Window identifier. A value of -1 indicates a default value. - -pos = Window position. - -size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately. - -style = Window style. See wxListCtrl. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxMessageDialog.py b/utils/wxPython/demo/wxMessageDialog.py deleted file mode 100644 index 344d7190d5..0000000000 --- a/utils/wxPython/demo/wxMessageDialog.py +++ /dev/null @@ -1,62 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - dlg = wxMessageDialog(frame, 'Hello from Python and wxPython!', - 'A Message Box', wxOK | wxICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - -overview = """\ -wxMessageDialog() ----------------------------------- - -wxMessageDialog(wxWindow* parent, const wxString& message, const wxString& caption = "Message box", long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition) - -Constructor. Use wxMessageDialog::ShowModal to show the dialog. - -Parameters -------------------- - -parent = Parent window. - -message = Message to show on the dialog. - -caption = The dialog caption. - -style = A dialog style (bitlist) containing flags chosen from the following: - -wxOK Show an OK button. - -wxCANCEL Show a Cancel button. - -wxYES_NO Show Yes and No buttons. - -wxCENTRE Centre the message. Not Windows. - -wxICON_EXCLAMATION Shows an exclamation mark icon. Windows only. - -wxICON_HAND Shows a hand icon. Windows only. - -wxICON_QUESTION Shows a question mark icon. Windows only. - -wxICON_INFORMATION Shows an information (i) icon. Windows only. - -pos = Dialog position. -""" diff --git a/utils/wxPython/demo/wxMiniFrame.py b/utils/wxPython/demo/wxMiniFrame.py deleted file mode 100644 index ba9d7e527b..0000000000 --- a/utils/wxPython/demo/wxMiniFrame.py +++ /dev/null @@ -1,42 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- -class MyMiniFrame(wxMiniFrame): - def __init__(self, parent, ID, title, pos, size, style): - wxMiniFrame.__init__(self, parent, ID, title, pos, size, style) - panel = wxPanel(self, -1) - - button = wxButton(panel, 1003, "Close Me") - button.SetPosition(wxPoint(15, 15)) - EVT_BUTTON(self, 1003, self.OnCloseMe) - - def OnCloseMe(self, event): - self.Close(true) - - def OnCloseWindow(self, event): - self.Destroy() - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = MyMiniFrame(frame, -1, "This is a wxMiniFrame", - wxDefaultPosition, wxSize(200, 200), - wxDEFAULT_FRAME_STYLE | wxTINY_CAPTION_HORIZ) - frame.otherWin = win - win.Show(true) - - -#--------------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxMultipleChoiceDialog.py b/utils/wxPython/demo/wxMultipleChoiceDialog.py deleted file mode 100644 index 6e3fb5de55..0000000000 --- a/utils/wxPython/demo/wxMultipleChoiceDialog.py +++ /dev/null @@ -1,27 +0,0 @@ - -from wxPython.wx import * -from wxPython.lib.dialogs import wxMultipleChoiceDialog - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - lst = [ 'apple', 'pear', 'banana', 'coconut', 'orange', - 'etc', 'etc..', 'etc...' ] - dlg = wxMultipleChoiceDialog(frame, - "Pick some from\n this list\nblah blah...", - "m.s.d.", lst) - if (dlg.ShowModal() == wxID_OK): - print "Selection:", dlg.GetValue(), " -> ", dlg.GetValueString() - -#--------------------------------------------------------------------------- - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxNotebook.py b/utils/wxPython/demo/wxNotebook.py deleted file mode 100644 index 51c68d5825..0000000000 --- a/utils/wxPython/demo/wxNotebook.py +++ /dev/null @@ -1,84 +0,0 @@ - -from wxPython.wx import * -import ColorPanel - -#---------------------------------------------------------------------------- - -def runTest(frame, nb, log): - - testWin = wxNotebook(nb, -1) - - win = ColorPanel.ColoredPanel(testWin, wxBLUE) - testWin.AddPage(win, "Blue") - st = wxStaticText(win, -1, - "You can put nearly any type of window here!", - wxPoint(10, 10)) - st.SetForegroundColour(wxWHITE) - st.SetBackgroundColour(wxBLUE) - - win = ColorPanel.ColoredPanel(testWin, wxRED) - testWin.AddPage(win, "Red") - - win = ColorPanel.ColoredPanel(testWin, wxGREEN) - testWin.AddPage(win, "Green") - - win = ColorPanel.ColoredPanel(testWin, wxCYAN) - testWin.AddPage(win, "Cyan") - - win = ColorPanel.ColoredPanel(testWin, wxWHITE) - testWin.AddPage(win, "White") - - win = ColorPanel.ColoredPanel(testWin, wxBLACK) - testWin.AddPage(win, "Black") - - win = ColorPanel.ColoredPanel(testWin, wxNamedColour('MIDNIGHT BLUE')) - testWin.AddPage(win, "MIDNIGHT BLUE") - - win = ColorPanel.ColoredPanel(testWin, wxNamedColour('INDIAN RED')) - testWin.AddPage(win, "INDIAN RED") - - return testWin - -#---------------------------------------------------------------------------- - - - - - - - - - - - - - - - -overview = """\ -This class represents a notebook control, which manages multiple windows with associated tabs. - -To use the class, create a wxNotebook object and call AddPage or InsertPage, passing a window to be used as the page. Do not explicitly delete the window for a page that is currently managed by wxNotebook. - -wxNotebook() -------------------------- - -Default constructor. - -wxNotebook(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size, long style = 0, const wxString& name = "notebook") - -Constructs a notebook control. - -Parameters -------------------- - -parent = The parent window. Must be non-NULL. - -id = The window identifier. - -pos = The window position. - -size = The window size. - -style = The window style. Its value is a bit list of zero or more of wxTC_MULTILINE, wxTC_RIGHTJUSTIFY, wxTC_FIXEDWIDTH and wxTC_OWNERDRAW. -""" diff --git a/utils/wxPython/demo/wxPageSetupDialog.py b/utils/wxPython/demo/wxPageSetupDialog.py deleted file mode 100644 index 61ae29290d..0000000000 --- a/utils/wxPython/demo/wxPageSetupDialog.py +++ /dev/null @@ -1,33 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - data = wxPageSetupDialogData() - data.SetMarginTopLeft(wxPoint(50,50)) - data.SetMarginBottomRight(wxPoint(50,50)) - dlg = wxPageSetupDialog(frame, data) - if dlg.ShowModal() == wxID_OK: - data = dlg.GetPageSetupData() - tl = data.GetMarginTopLeft() - br = data.GetMarginBottomRight() - log.WriteText('Margins are: %s %s\n' % (str(tl), str(br))) - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxPlotCanvas.py b/utils/wxPython/demo/wxPlotCanvas.py deleted file mode 100644 index 1a9f7b2271..0000000000 --- a/utils/wxPython/demo/wxPlotCanvas.py +++ /dev/null @@ -1,39 +0,0 @@ - -from wxPython.lib.wxPlotCanvas import * -from wxPython.lib import wxPlotCanvas - -#--------------------------------------------------------------------------- - -def _InitObjects(): - # 100 points sin function, plotted as green circles - data1 = 2.*Numeric.pi*Numeric.arange(200)/200. - data1.shape = (100, 2) - data1[:,1] = Numeric.sin(data1[:,0]) - markers1 = PolyMarker(data1, color='green', marker='circle',size=1) - - # 50 points cos function, plotted as red line - data1 = 2.*Numeric.pi*Numeric.arange(100)/100. - data1.shape = (50,2) - data1[:,1] = Numeric.cos(data1[:,0]) - lines = PolyLine(data1, color='red') - - # A few more points... - pi = Numeric.pi - markers2 = PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.), - (3.*pi/4., -1)], color='blue', - fillcolor='green', marker='cross') - - return PlotGraphics([markers1, lines, markers2]) - - -#--------------------------------------------------------------------------- - - -def runTest(frame, nb, log): - win = PlotCanvas(nb) - win.draw(_InitObjects(),'automatic','automatic'); - return win - -overview = wxPlotCanvas.__doc__ - -#--------------------------------------------------------------------------- diff --git a/utils/wxPython/demo/wxPrintDialog.py b/utils/wxPython/demo/wxPrintDialog.py deleted file mode 100644 index 50da750bd2..0000000000 --- a/utils/wxPython/demo/wxPrintDialog.py +++ /dev/null @@ -1,31 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - data = wxPrintDialogData() - data.EnablePrintToFile(true) - data.EnablePageNumbers(true) - data.EnableSelection(true) - dlg = wxPrintDialog(frame, data) - if dlg.ShowModal() == wxID_OK: - log.WriteText('\n') - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxRadioBox.py b/utils/wxPython/demo/wxRadioBox.py deleted file mode 100644 index dbd28fd597..0000000000 --- a/utils/wxPython/demo/wxRadioBox.py +++ /dev/null @@ -1,76 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestRadioButtons(wxPanel): - def __init__(self, parent, log): - self.log = log - wxPanel.__init__(self, parent, -1) - - sampleList = ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight'] - - rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(35, 30), wxDefaultSize, - sampleList, 3, wxRA_SPECIFY_COLS | wxNO_BORDER) - EVT_RADIOBOX(self, 30, self.EvtRadioBox) - - - def EvtRadioBox(self, event): - self.log.WriteText('EvtRadioBox: %d\n' % event.GetInt()) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestRadioButtons(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - -overview = """\ -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. - -wxRadioBox() ----------------------- - -Default constructor. - -wxRadioBox(wxWindow* parent, wxWindowID id, const wxString& label, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, int n = 0, const wxString choices[] = NULL, int majorDimension = 0, long style = wxRA_SPECIFY_COLS, const wxValidator& validator = wxDefaultValidator, const wxString& name = "radioBox") - -Constructor, creating and showing a radiobox. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Window identifier. A value of -1 indicates a default value. - -label = Label for the static box surrounding the radio buttons. - -pos = Window position. If the position (-1, -1) is specified then a default position is chosen. - -size = Window size. If the default size (-1, -1) is specified then a default size is chosen. - -n = Number of choices with which to initialize the radiobox. - -choices = An array of choices with which to initialize the radiobox. - -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. - -style = Window style. See wxRadioBox. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxSashWindow.py b/utils/wxPython/demo/wxSashWindow.py deleted file mode 100644 index 446ffce9e4..0000000000 --- a/utils/wxPython/demo/wxSashWindow.py +++ /dev/null @@ -1,152 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestSashWindow(wxPanel): - ID_WINDOW_TOP = 5100 - ID_WINDOW_LEFT1 = 5101 - ID_WINDOW_LEFT2 = 5102 - ID_WINDOW_BOTTOM = 5103 - - - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - - self.log = log - - EVT_SASH_DRAGGED_RANGE(self, self.ID_WINDOW_TOP, - self.ID_WINDOW_BOTTOM, self.OnSashDrag) - - - # Create some layout windows - # A window like a toolbar - win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, wxDefaultPosition, - wxSize(200, 30), wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(1000, 30)) - win.SetOrientation(wxLAYOUT_HORIZONTAL) - win.SetAlignment(wxLAYOUT_TOP) - win.SetBackgroundColour(wxColour(255, 0, 0)) - win.SetSashVisible(wxSASH_BOTTOM, true) - - self.topWindow = win - - - # A window like a statusbar - win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM, - wxDefaultPosition, wxSize(200, 30), - wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(1000, 30)) - win.SetOrientation(wxLAYOUT_HORIZONTAL) - win.SetAlignment(wxLAYOUT_BOTTOM) - win.SetBackgroundColour(wxColour(0, 0, 255)) - win.SetSashVisible(wxSASH_TOP, true) - - self.bottomWindow = win - - - # A window to the left of the client window - win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1, - wxDefaultPosition, wxSize(200, 30), - wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(120, 1000)) - win.SetOrientation(wxLAYOUT_VERTICAL) - win.SetAlignment(wxLAYOUT_LEFT) - win.SetBackgroundColour(wxColour(0, 255, 0)) - win.SetSashVisible(wxSASH_RIGHT, TRUE) - win.SetExtraBorderSize(10) - - textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE|wxSUNKEN_BORDER) - textWindow.SetValue("A help window") - - self.leftWindow1 = win - - - # Another window to the left of the client window - win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2, - wxDefaultPosition, wxSize(200, 30), - wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(120, 1000)) - win.SetOrientation(wxLAYOUT_VERTICAL) - win.SetAlignment(wxLAYOUT_LEFT) - win.SetBackgroundColour(wxColour(0, 255, 255)) - win.SetSashVisible(wxSASH_RIGHT, TRUE) - - self.leftWindow2 = win - - - def OnSashDrag(self, event): - if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE: - return - - eID = event.GetId() - if eID == self.ID_WINDOW_TOP: - self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height)) - - elif eID == self.ID_WINDOW_LEFT1: - self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000)) - - - elif eID == self.ID_WINDOW_LEFT2: - self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000)) - - elif eID == self.ID_WINDOW_BOTTOM: - self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height)) - - wxLayoutAlgorithm().LayoutWindow(self) - - - def OnSize(self, event): - wxLayoutAlgorithm().LayoutWindow(self) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestSashWindow(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - - -overview = """\ -wxSashLayoutWindow responds to OnCalculateLayout events generated by 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. - -wxSashLayoutWindow() -------------------------------------------- - -Default constructor. - -wxSashLayoutWindow(wxSashLayoutWindow* parent, wxSashLayoutWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxCLIP_CHILDREN | wxSW_3D, const wxString& name = "layoutWindow") - -Constructs a sash layout window, which can be a child of a frame, dialog or any other non-control window. - -Parameters -------------------- - -parent = Pointer to a parent window. - -id = Window identifier. If -1, will automatically create an identifier. - -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. - -size = Window size. wxDefaultSize is (-1, -1) which indicates that wxSashLayoutWindows should generate a default size for the window. - -style = Window style. For window styles, please see wxSashLayoutWindow. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxScrolledMessageDialog.py b/utils/wxPython/demo/wxScrolledMessageDialog.py deleted file mode 100644 index e50d1e7c9e..0000000000 --- a/utils/wxPython/demo/wxScrolledMessageDialog.py +++ /dev/null @@ -1,24 +0,0 @@ - -from wxPython.wx import * -from wxPython.lib.dialogs import wxScrolledMessageDialog - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - f = open("Main.py", "r") - msg = f.read() - dlg = wxScrolledMessageDialog(frame, msg, "message test") - dlg.ShowModal() - -#--------------------------------------------------------------------------- - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxScrolledWindow.py b/utils/wxPython/demo/wxScrolledWindow.py deleted file mode 100644 index 9586cd1bc0..0000000000 --- a/utils/wxPython/demo/wxScrolledWindow.py +++ /dev/null @@ -1,122 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class MyCanvas(wxScrolledWindow): - def __init__(self, parent): - wxScrolledWindow.__init__(self, parent, -1, wxPoint(0, 0), wxPyDefaultSize, wxSUNKEN_BORDER) - - self.lines = [] - - self.SetBackgroundColour(wxNamedColor("WHITE")) - self.Connect(-1, -1, wxEVT_LEFT_DOWN, self.OnLeftButtonEvent) - self.Connect(-1, -1, wxEVT_LEFT_UP, self.OnLeftButtonEvent) - self.Connect(-1, -1, wxEVT_MOTION, self.OnLeftButtonEvent) - - self.SetCursor(wxStockCursor(wxCURSOR_PENCIL)) - #bmp = wxBitmap('bitmaps/image.bmp', wxBITMAP_TYPE_BMP) - #self.bmp = bmp - - self.SetScrollbars(20, 20, 50, 50) - - - def OnPaint(self, event): - dc = wxPaintDC(self) - self.PrepareDC(dc) - self.DoDrawing(dc) - - - def DoDrawing(self, dc): - dc.BeginDrawing() - #dc.Clear() - pen1 = wxPen(wxNamedColour('RED')) - dc.SetPen(pen1) - dc.DrawRectangle(5, 5, 50, 50) - - dc.SetBrush(wxLIGHT_GREY_BRUSH) - dc.SetPen(wxPen(wxNamedColour('BLUE'), 4)) - dc.DrawRectangle(15, 15, 50, 50) - - font = wxFont(14, wxSWISS, wxNORMAL, wxNORMAL) - dc.SetFont(font) - dc.SetTextForeground(wxColour(0xFF, 0x20, 0xFF)) - te = dc.GetTextExtent("Hello World") - dc.DrawText("Hello World", 60, 65) - - dc.SetPen(wxPen(wxNamedColour('VIOLET'), 4)) - dc.DrawLine(5, 65+te[1], 60+te[0], 65+te[1]) - - lst = [(100,110), (150,110), (150,160), (100,160)] - dc.DrawLines(lst, -60) - dc.SetPen(wxGREY_PEN) - dc.DrawPolygon(lst, 75) - dc.SetPen(wxGREEN_PEN) - dc.DrawSpline(lst+[(100,100)]) - - #dc.DrawBitmap(self.bmp, 200, 20) - #dc.SetTextForeground(wxColour(0, 0xFF, 0x80)) - #dc.DrawText("a bitmap", 200, 80) - - self.DrawSavedLines(dc) - dc.EndDrawing() - - - def DrawSavedLines(self, dc): - dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4)) - for line in self.lines: - for coords in line: - apply(dc.DrawLine, coords) - - - def SetXY(self, event): - self.x, self.y = self.ConvertEventCoords(event) - - def ConvertEventCoords(self, event): - xView, yView = self.ViewStart() - xDelta, yDelta = self.GetScrollPixelsPerUnit() - return (event.GetX() + (xView * xDelta), - event.GetY() + (yView * yDelta)) - - def OnLeftButtonEvent(self, event): - if event.LeftDown(): - self.SetXY(event) - self.curLine = [] - - elif event.Dragging(): - dc = wxClientDC(self) - self.PrepareDC(dc) - dc.BeginDrawing() - dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4)) - coords = (self.x, self.y) + self.ConvertEventCoords(event) - self.curLine.append(coords) - apply(dc.DrawLine, coords) - self.SetXY(event) - dc.EndDrawing() - - elif event.LeftUp(): - self.lines.append(self.curLine) - self.curLine = [] - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = MyCanvas(nb) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxSingleChoiceDialog.py b/utils/wxPython/demo/wxSingleChoiceDialog.py deleted file mode 100644 index 9b34808f13..0000000000 --- a/utils/wxPython/demo/wxSingleChoiceDialog.py +++ /dev/null @@ -1,59 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - dlg = wxSingleChoiceDialog(frame, 'Test Single Choice', 'The Caption', - ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight']) - if dlg.ShowModal() == wxID_OK: - log.WriteText('You selected: %s\n' % dlg.GetStringSelection()) - dlg.Destroy() - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - -overview = """\ -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. - -wxSingleChoiceDialog() ---------------------------------------------- - -wxSingleChoiceDialog(wxWindow* parent, const wxString& message, const wxString& caption, int n, const wxString* choices, char** clientData = NULL, long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition) - -Constructor, taking an array of wxString choices and optional client data. - -Parameters -------------------- - -parent = Parent window. - -message = Message to show on the dialog. - -caption = The dialog caption. -n = The number of choices. - -choices = An array of strings, or a string list, containing the choices. - -style = A dialog style (bitlist) containing flags chosen from the following: - -wxOK Show an OK button. - -wxCANCEL Show a Cancel button. - -wxCENTRE Centre the message. Not Windows. - -pos = Dialog position. -""" diff --git a/utils/wxPython/demo/wxSlider.py b/utils/wxPython/demo/wxSlider.py deleted file mode 100644 index 731486ee2b..0000000000 --- a/utils/wxPython/demo/wxSlider.py +++ /dev/null @@ -1,41 +0,0 @@ - -from wxPython.wx import * - -import string - -#---------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - self.count = 0 - - wxStaticText(self, -1, "This is a wxSlider.", wxPoint(45, 15)) - - slider = wxSlider(self, 100, 25, 1, 100, wxPoint(30, 60), - wxSize(250, -1), - wxSL_HORIZONTAL | wxSL_AUTOTICKS | wxSL_LABELS ) - slider.SetTickFreq(5, 1) - - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxSpinButton.py b/utils/wxPython/demo/wxSpinButton.py deleted file mode 100644 index 4974e1cef0..0000000000 --- a/utils/wxPython/demo/wxSpinButton.py +++ /dev/null @@ -1,49 +0,0 @@ - -from wxPython.wx import * - -import string - -#---------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - self.count = 0 - - wxStaticText(self, -1, "This example uses the wxSpinButton control.", - wxPoint(45, 15)) - - - self.text = wxTextCtrl(self, -1, "1", wxPoint(30, 50), wxSize(60, -1)) - h = self.text.GetSize().height - self.spin = wxSpinButton(self, 20, wxPoint(92, 50), wxSize(h*2, h)) - self.spin.SetRange(1, 100) - self.spin.SetValue(1) - - EVT_SPIN(self, 20, self.OnSpin) - - - def OnSpin(self, event): - self.text.SetValue(str(event.GetPosition())) - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxSplitterWindow.py b/utils/wxPython/demo/wxSplitterWindow.py deleted file mode 100644 index 20b4929c60..0000000000 --- a/utils/wxPython/demo/wxSplitterWindow.py +++ /dev/null @@ -1,67 +0,0 @@ - -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - splitter = wxSplitterWindow(nb, -1) - - p1 = wxWindow(splitter, -1) - p1.SetBackgroundColour(wxRED) - wxStaticText(p1, -1, "Panel One", wxPoint(5,5)).SetBackgroundColour(wxRED) - - p2 = wxWindow(splitter, -1) - p2.SetBackgroundColour(wxBLUE) - wxStaticText(p2, -1, "Panel Two", wxPoint(5,5)).SetBackgroundColour(wxBLUE) - - splitter.SplitVertically(p1, p2) - splitter.SetSashPosition(100) - splitter.SetMinimumPaneSize(20) - - return splitter - - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - -overview = """\ -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. - -wxSplitterWindow() ------------------------------------ - -Default constructor. - -wxSplitterWindow(wxWindow* parent, wxWindowID id, int x, const wxPoint& point = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style=wxSP_3D, const wxString& name = "splitterWindow") - -Constructor for creating the window. - -Parameters -------------------- - -parent = The parent of the splitter window. - -id = The window identifier. - -pos = The window position. - -size = The window size. - -style = The window style. See wxSplitterWindow. - -name = The window name. -""" diff --git a/utils/wxPython/demo/wxStaticBitmap.py b/utils/wxPython/demo/wxStaticBitmap.py deleted file mode 100644 index cb9c8df10b..0000000000 --- a/utils/wxPython/demo/wxStaticBitmap.py +++ /dev/null @@ -1,41 +0,0 @@ - -from wxPython.wx import * - -import string - -#---------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - self.count = 0 - - wxStaticText(self, -1, "This is a wxStaticBitmap.", wxPoint(45, 15)) - - bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) - wxStaticBitmap(self, -1, bmp, wxPoint(80, 50), - wxSize(bmp.GetWidth(), bmp.GetHeight())) - - - - -#---------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#---------------------------------------------------------------------- - - - - - - - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxStaticText.py b/utils/wxPython/demo/wxStaticText.py deleted file mode 100644 index baba79cf08..0000000000 --- a/utils/wxPython/demo/wxStaticText.py +++ /dev/null @@ -1,73 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent): - wxPanel.__init__(self, parent, -1) - - wxStaticText(self, -1, "This is an example of static text", - wxPoint(20, 10)) - - wxStaticText(self, -1, "using the wxStaticText Control.", - wxPoint(20, 30)) - - wxStaticText(self, -1, "Is this yellow?", - wxPoint(20, 70)).SetBackgroundColour(wxNamedColour('Yellow')) - - str = "This is a different font." - text = wxStaticText(self, -1, str, wxPoint(20, 100)) - font = wxFont(20, wxSWISS, wxNORMAL, wxNORMAL, false, "Arial") - w, h, d, e = self.GetFullTextExtent(str, font) - text.SetFont(font) - text.SetSize(wxSize(w, h)) - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - panel = TestPanel(nb) - return panel - - -#--------------------------------------------------------------------------- - - - - - - - - -overview = '''\ -A static text control displays one or more lines of read-only text. - -wxStaticText() -------------------------- - -Default constructor. - -wxStaticText(wxWindow* parent, wxWindowID id, const wxString& label = "", const wxPoint& pos, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "staticText") - -Constructor, creating and showing a text control. - -Parameters -------------------- - -parent = Parent window. Should not be NULL. - -id = Control identifier. A value of -1 denotes a default value. - -label = Text label. - -pos = Window position. - -size = Window size. - -style = Window style. See wxStaticText. - -name = Window name. -''' - -#--------------------------------------------------------------------------- diff --git a/utils/wxPython/demo/wxStatusBar.py b/utils/wxPython/demo/wxStatusBar.py deleted file mode 100644 index 97c32980eb..0000000000 --- a/utils/wxPython/demo/wxStatusBar.py +++ /dev/null @@ -1,114 +0,0 @@ - -from wxPython.wx import * - -import time - -#--------------------------------------------------------------------------- - -class CustomStatusBar(wxStatusBar): - def __init__(self, parent, log): - wxStatusBar.__init__(self, parent, -1) - self.SetFieldsCount(3) - self.log = log - - self.SetStatusText("A Custom StatusBar...", 0) - - self.cb = wxCheckBox(self, 1001, "toggle clock") - EVT_CHECKBOX(self, 1001, self.OnToggleClock) - self.cb.SetValue(true) - - # figure out how tall to make it. - dc = wxClientDC(self) - dc.SetFont(self.GetFont()) - (w,h) = dc.GetTextExtent('X') - h = int(h * 1.8) - self.SetSize(wxSize(100, h)) - - # start our timer - self.timer = wxPyTimer(self.Notify) - self.timer.Start(1000) - self.Notify() - - - # Time-out handler - def Notify(self): - t = time.localtime(time.time()) - st = time.strftime("%d-%b-%Y %I:%M:%S", t) - self.SetStatusText(st, 2) - self.log.WriteText("tick...\n") - - # the checkbox was clicked - def OnToggleClock(self, event): - if self.cb.GetValue(): - self.timer.Start(1000) - self.Notify() - else: - self.timer.Stop() - - - # reposition the checkbox - def OnSize(self, event): - rect = self.GetFieldRect(1) - self.cb.SetPosition(wxPoint(rect.x+2, rect.y+2)) - self.cb.SetSize(wxSize(rect.width-4, rect.height-4)) - - - -class TestCustomStatusBar(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar', - wxPoint(0,0), wxSize(500, 300)) - wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE")) - - self.sb = CustomStatusBar(self, log) - self.SetStatusBar(self.sb) - - def OnCloseWindow(self, event): - self.sb.timer.Stop() - del self.sb.timer - self.Destroy() - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestCustomStatusBar(frame, log) - frame.otherWin = win - win.Show(true) - -#--------------------------------------------------------------------------- - - - - - - - - - -overview = """\ -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. - -wxStatusBar() ----------------------------- - -Default constructor. - -wxStatusBar(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "statusBar") - -Constructor, creating the window. - -Parameters -------------------- - -parent = The window parent, usually a frame. - -id = The window identifier. It may take a value of -1 to indicate a default value. - -pos = The window position. A value of (-1, -1) indicates a default position, chosen by either the windowing system or wxWindows, depending on platform. - -size = The window size. A value of (-1, -1) indicates a default size, chosen by either the windowing system or wxWindows, depending on platform. - -style = The window style. See wxStatusBar. - -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. -""" diff --git a/utils/wxPython/demo/wxTextCtrl.py b/utils/wxPython/demo/wxTextCtrl.py deleted file mode 100644 index 49eaa00e75..0000000000 --- a/utils/wxPython/demo/wxTextCtrl.py +++ /dev/null @@ -1,40 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - self.log = log - - wxStaticText(self, -1, "wxTextCtrl", wxPoint(5, 25), wxSize(75, 20)) - wxTextCtrl(self, 10, "", wxPoint(80, 25), wxSize(150, 20)) - EVT_TEXT(self, 10, self.EvtText) - - wxStaticText(self, -1, "Passsword", wxPoint(5, 50), wxSize(75, 20)) - wxTextCtrl(self, 20, "", wxPoint(80, 50), wxSize(150, 20), wxTE_PASSWORD) - EVT_TEXT(self, 20, self.EvtText) - - wxStaticText(self, -1, "Multi-line", wxPoint(5, 75), wxSize(75, 20)) - wxTextCtrl(self, 30, "", wxPoint(80, 75), wxSize(200, 150), wxTE_MULTILINE) - EVT_TEXT(self, 30, self.EvtText) - - def EvtText(self, event): - self.log.WriteText('EvtText: %s\n' % event.GetString()) - - - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestPanel(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - -overview = """\ -""" diff --git a/utils/wxPython/demo/wxTextEntryDialog.py b/utils/wxPython/demo/wxTextEntryDialog.py deleted file mode 100644 index 08e93e237e..0000000000 --- a/utils/wxPython/demo/wxTextEntryDialog.py +++ /dev/null @@ -1,50 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - dlg = wxTextEntryDialog(frame, 'What is your favorite programming language?', - 'Duh??', 'Python') - dlg.SetValue("Python is the best!") #### this doesn't work? - if dlg.ShowModal() == wxID_OK: - log.WriteText('You entered: %s\n' % dlg.GetValue()) - dlg.Destroy() - - -#--------------------------------------------------------------------------- - - - - - - - - - - - - -overview = """\ -This class represents a dialog that requests a one-line text string from the user. It is implemented as a generic wxWindows dialog. - -wxTextEntryDialog() ----------------------------------- - -wxTextEntryDialog(wxWindow* parent, const wxString& message, const wxString& caption = "Please enter text", const wxString& defaultValue = "", long style = wxOK | wxCANCEL | wxCENTRE, const wxPoint& pos = wxDefaultPosition) - -Constructor. Use wxTextEntryDialog::ShowModal to show the dialog. - -Parameters -------------------- - -parent = Parent window. - -message = Message to show on the dialog. - -defaultValue = The default value, which may be the empty string. - -style = A dialog style, specifying the buttons (wxOK, wxCANCEL) and an optional wxCENTRE style. - -pos = Dialog position. -""" diff --git a/utils/wxPython/demo/wxTimer.py b/utils/wxPython/demo/wxTimer.py deleted file mode 100644 index a32f3d3500..0000000000 --- a/utils/wxPython/demo/wxTimer.py +++ /dev/null @@ -1,67 +0,0 @@ - -from wxPython.wx import * - -import time - -#--------------------------------------------------------------------------- - -class TestTimer(wxTimer): - def __init__(self, log = None): - wxTimer.__init__(self) - self.log = log - - def Notify(self): - wxBell() - if self.log: - self.log.WriteText('beep!\n') - -#--------------------------------------------------------------------------- - -_timer = TestTimer() - - -class TestTimerWin(wxPanel): - def __init__(self, parent, log): - _timer.log = log - wxPanel.__init__(self, parent, -1) - - wxStaticText(self, -1, "This is a timer example", - wxPoint(15, 30)) - - wxButton(self, 11101, ' Start ', wxPoint(15, 75), wxDefaultSize) - wxButton(self, 11102, ' Stop ', wxPoint(77, 75), wxDefaultSize) - EVT_BUTTON(self, 11101, self.OnStart) - EVT_BUTTON(self, 11102, self.OnStop) - - def OnStart(self, event): - _timer.Start(1000) - - def OnStop(self, event): - _timer.Stop() - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestTimerWin(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - -overview = """\ -The wxTimer class allows you to execute code at specified intervals. To use it, derive a new class and override the Notify member to perform the required action. Start with Start, stop with Stop, it's as simple as that. - -wxTimer() ------------------- - -Constructor. -""" diff --git a/utils/wxPython/demo/wxToolBar.py b/utils/wxPython/demo/wxToolBar.py deleted file mode 100644 index d49195ba75..0000000000 --- a/utils/wxPython/demo/wxToolBar.py +++ /dev/null @@ -1,125 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestToolBar(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test ToolBar', - wxPoint(0,0), wxSize(500, 300)) - self.log = log - - wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE")) - - tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER) - #tb = wxToolBar(self, -1, wxDefaultPosition, wxDefaultSize, - # wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT) - #self.SetToolBar(tb) - - self.CreateStatusBar() - - tb.AddTool(10, wxNoRefBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "New", "Long help for 'New'") - EVT_TOOL(self, 10, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick) - - tb.AddTool(20, wxNoRefBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "Open") - EVT_TOOL(self, 20, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick) - - tb.AddSeparator() - tb.AddTool(30, wxNoRefBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "Copy") - EVT_TOOL(self, 30, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick) - - tb.AddTool(40, wxNoRefBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "Paste") - EVT_TOOL(self, 40, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick) - - tb.AddSeparator() - - tb.AddTool(50, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, true, -1, -1, "Toggle this") - EVT_TOOL(self, 50, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 50, self.OnToolRClick) - - tb.AddTool(60, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), - wxNoRefBitmap('bitmaps/tog2.bmp', wxBITMAP_TYPE_BMP), - true, -1, -1, "Toggle with 2 bitmaps") - EVT_TOOL(self, 60, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 60, self.OnToolRClick) - - tb.Realize() - - - def OnCloseWindow(self, event): - self.Destroy() - - def OnToolClick(self, event): - self.log.WriteText("tool %s clicked\n" % event.GetId()) - - def OnToolRClick(self, event): - self.log.WriteText("tool %s right-clicked\n" % event.GetId()) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestToolBar(frame, log) - frame.otherWin = win - win.Show(true) - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - - -overview = """\ -The name wxToolBar is defined to be a synonym for one of the following classes: - -wxToolBar95 The native Windows 95 toolbar. Used on Windows 95, NT 4 and above. - -wxToolBarMSW A Windows implementation. Used on 16-bit Windows. - -wxToolBarGTK The GTK toolbar. - -wxToolBarSimple A simple implementation, with scrolling. Used on platforms with no native toolbar control, or where scrolling is required. - -wxToolBar() ------------------------ - -Default constructor. - -wxToolBar(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTB_HORIZONTAL | wxNO_BORDER, const wxString& name = wxPanelNameStr) - -Constructs a toolbar. - -Parameters -------------------- - -parent = Pointer to a parent window. - -id = Window identifier. If -1, will automatically create an identifier. - -pos = Window position. wxDefaultPosition is (-1, -1) which indicates that wxWindows should generate a default position for the window. If using the wxWindow class directly, supply an actual position. - -size = Window size. wxDefaultSize is (-1, -1) which indicates that wxWindows should generate a default size for the window. - -style = Window style. See wxToolBar for details. - -name = Window name. -""" diff --git a/utils/wxPython/demo/wxTreeCtrl.py b/utils/wxPython/demo/wxTreeCtrl.py deleted file mode 100644 index a14723b9e4..0000000000 --- a/utils/wxPython/demo/wxTreeCtrl.py +++ /dev/null @@ -1,98 +0,0 @@ - -from wxPython.wx import * - -#--------------------------------------------------------------------------- - -class TestTreeCtrlPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - - self.log = log - tID = NewId() - - self.tree = wxTreeCtrl(self, tID) - root = self.tree.AddRoot("The Root Item") - for x in range(15): - child = self.tree.AppendItem(root, "Item %d" % x) - for y in range(5): - last = self.tree.AppendItem(child, "item %d-%s" % (x, chr(ord("a")+y))) - for z in range(5): - self.tree.AppendItem(last, "item %d-%s-%d" % (x, chr(ord("a")+y), z)) - - self.tree.Expand(root) - EVT_TREE_ITEM_EXPANDED (self, tID, self.OnItemExpanded) - EVT_TREE_ITEM_COLLAPSED (self, tID, self.OnItemCollapsed) - EVT_TREE_SEL_CHANGED (self, tID, self.OnSelChanged) - - - def OnSize(self, event): - w,h = self.GetClientSizeTuple() - self.tree.SetDimensions(0, 0, w, h) - - - def OnItemExpanded(self, event): - item = event.GetItem() - self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item)) - - def OnItemCollapsed(self, event): - item = event.GetItem() - self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item)) - - def OnSelChanged(self, event): - item = event.GetItem() - self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(item)) - -#--------------------------------------------------------------------------- - -def runTest(frame, nb, log): - win = TestTreeCtrlPanel(nb, log) - return win - -#--------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - -overview = """\ -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. - -wxTreeCtrl() -------------------------- - -Default constructor. - -wxTreeCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxTR_HAS_BUTTONS, const wxValidator& validator = wxDefaultValidator, const wxString& name = "listCtrl") - -Constructor, creating and showing a tree control. - -Parameters -------------------- - -parent = Parent window. Must not be NULL. - -id = Window identifier. A value of -1 indicates a default value. - -pos = Window position. - -size = Window size. If the default size (-1, -1) is specified then the window is sized appropriately. - -style = Window style. See wxTreeCtrl. - -validator = Window validator. - -name = Window name. -""" diff --git a/utils/wxPython/distrib/.cvsignore b/utils/wxPython/distrib/.cvsignore deleted file mode 100644 index 21d5fb12cc..0000000000 --- a/utils/wxPython/distrib/.cvsignore +++ /dev/null @@ -1,6 +0,0 @@ -*.gz -*.rpm -*.zip -filelist -wxPython.spec -wxp2.wse diff --git a/utils/wxPython/distrib/.rpmrc b/utils/wxPython/distrib/.rpmrc deleted file mode 100644 index 1fbb510693..0000000000 --- a/utils/wxPython/distrib/.rpmrc +++ /dev/null @@ -1,5 +0,0 @@ -sourcedir : . -builddir : . -rpmdir : . -srcrpmdir : . - diff --git a/utils/wxPython/distrib/makerpm b/utils/wxPython/distrib/makerpm deleted file mode 100755 index 38bc7f388b..0000000000 --- a/utils/wxPython/distrib/makerpm +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -if [ -z $1 ]; then - echo "Please specify a version number on the command line." - exit 1 -fi - -if [ ! -f wxPython.spec.in ]; then - echo "Please run this script from the directory containing the wxPython.spec.in file." - exit 1 -fi - - - -mkdir i386 -strip /usr/lib/python1.5/site-packages/wxPython/wxcmodule.so - -cat wxPython.spec.in | sed s/__VERSION__/$1/g > wxPython.spec -rpm --rcfile .rpmrc -bb wxPython.spec - -mv i386/*.rpm . -rm -rf i386 diff --git a/utils/wxPython/distrib/maketgz b/utils/wxPython/distrib/maketgz deleted file mode 100755 index 57c33848f4..0000000000 --- a/utils/wxPython/distrib/maketgz +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -#---------------------------------------------------------------------- -# Make a source distribution as a tar.gz file. This script should be -# run from the directory that holds the wxPython dir (../..) and be -# given a version number as an parameter. The best way to do this is -# run "make dist" in the wxPython/src/ directory. -#---------------------------------------------------------------------- - -if [ -z $1 ]; then - echo "Please specify a version number on the command line." - exit 1 -fi - -if [ ! -d wxPython ]; then - echo "Please run this script from the directory containing the wxPython sources." - exit 1 -fi - - -rm -f wxPython/distrib/filelist -for x in `cat wxPython/distrib/wxPython.rsp`; do - ls $x >> wxPython/distrib/filelist -done - - -tar cf wxPython/distrib/dist-temp.tar -T wxPython/distrib/filelist -cd wxPython/distrib -tar xf dist-temp.tar -rm dist-temp.tar -mv wxPython wxPython-$1 - -tar cvf wxPython-$1.tar wxPython-$1 -gzip wxPython-$1.tar - -rm -rf wxPython-$1 - diff --git a/utils/wxPython/distrib/wxPython.bmp b/utils/wxPython/distrib/wxPython.bmp deleted file mode 100644 index e66da76cb440f0f18cb378f5314afb754eeae505..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 131190 zcmdSCO>Z1owyxLLFwh6^(0`!~7!n6vB4FU2k>Qbg;3Nwmla14o+5;br>Q1OW2AOP> zn7jkgvmUV^fUE{YW};P0PQ>2c-H40q580oxU$B2>t^!%p&_k_NVL@>>t^!;3E4& z_NVL@>>t^!^dkF1_NVL@>>t@}$Rhhg_NVL@>>t@}+#>r!_NVL@>>t@FfYKl4?>t_fghlp;>`&P**gvw{F^lXE*`KmsuzzH?vliJOvOi_NVE@Q&2QIQdWPi$j!Tyom zPF-Yw$o`c5g8d^q8Brf=@-%-Je12rN^B374vOi_NVE@RjKo;2_vOi_NVE@RjkQUh= zvOi_NVE@Rj;1<~*vOi_NVE@RjFc;Y$vOi_NVE@QY0_tP0Sd)wVedJT2FS0*mf69Kr z{*hfEEV4gjf69Kr{*hg9EV4gjf69Kr{*hh4EV4gjf69Kr{*j#z>O(mDQ}zq?kL+Ba zK1#@5u_hn$M`Y?lIQvuf3-*ufWI%lgXMf6m!Tyn*OsNmy>`&P**gvvU5cMIP{VDqe z`$u*PrwGE?pR!-DfBgT!-o3N5{MGX9<=frc-KDkevIomuw%bd5FE8C$T5#_!cbB?L z3#(jST3z6LtLx#yDpyt)R=dk&LwqhYk+`x-K3n&QNZ8Vy-d1;Yc{LgGy|6^^?XD@w zVEGPl?kscg)pGYMGxQ=MrZAgcpR9UYeG+(Wi$A`Wtfv{V8!K7fCN_V$VD4@ekg$9# zd%elqgv+a(cgddkUP|tL6ZgDE(6Uvf2fCL36{lP!rGJ)WCCp~IYfjc{;5Eu6&+cGg zFrgG_#1z--Rjrb}1=*t2?rJaDRwm{_`qiE#)MoXJH#sMl9QV3Q=F#mnc`S7wb-RC9 z{R8nWh-+JIfu7V>SNQC0ZEtP&`h5h*tdE0dIy-27&bKZQ8aFbadBx-2xLJ6fHy$6A2Rr1oX+i z#|NDSu9o{-cZ{`UMnpv#BqK@AITfry3g5)ARuxEXtBw6Zb-3-|lAXM~nvp?VT11xq z zd=qD&WZ3@9!S-N_3;vtbFWYAkjUb z=4LRb_bOH@m*6h7*j}@57vQR|`19zF4GO({wY(&oa0!yiMLr=Z$tNr!HQ5@I!g^xI z)J76Ey*`<9UA6&>9NW$EBQfg8v+ivgEx`Q}Gg4xc72kFUNqf)>e-WAiw98m*M9m=t z840G<%@wcO1KqXi(n_&i^6U@jc{3qKgh?M$(a)M|Oz0qhJ-zjfNeo|;;D^sOf zsY`)jsoO^oq~^ey^N}J<(^OnBDmh~*Q=;XP)u->+ySh={o53VeNkL{aIT0!TaUmGZ5e&r$V2tvefsiQoQfrFxj0g}J z-yZfLpE{IXmLU%5D>4qiq$z@fCg6blTJ+pm0%(TIEkq(C`zwq@t4YmOPsxH#6+Y>k zNRle#$`abtc*2>>4M0pqmVAoV%JeHy+TR+;HXhh*^rPM8?iX-RF$Oar>{LUMJh??o zB%>!dCb>fJn}3e_+m1oPpdJ#@7u74vlw}{$QHf_^Rh;;!I>SqdrQb*SB?L+!pn(FV zk+T6Z8Mw_wODZPzpi(6k5y`i=WhH=$7gHxcEDagvNDhNk{7axQ*}W`n*vtgTJe$VN zHHT4-dcAG3fyb;3VFNz`v9#PkY6>5bi=DXo2XjtT8EV^x05Ct@{me!9i!PSGI42nJ z-cw%+-u@b#AbRRg=D`{g6(wvAZpS)OHvp>z%AEz`QWT}+)2K6&sV0$nuOAEvmmWF^ z5mSv8IdoibD4M=fpOR_nKp$Ij;g@7VRYru(CnhKjgos0BJdW^}x_?MVn>aCPXtp(n zwB1G56*}o0d&kCy^o(dCL1%EHHc=EThnB*T|Hh;w1))v@{HE^@MuP#EigGqGyhfX; z8WEx{OW$z?3IM()D*nnT!3pYi?^8EBz+%dz0!?LO1uixos|t20fmTzDZO#2G{CP$` z3;^&XVND}wY>`XM0dvV;l9GB`i3Z1{XfodhE?e|k@17x;7huioa@j9wFA(Iq-?>71 zI%#cdLSTv+5UnoThuCG9U-XzG2;6BWEdWK7CqPim0ZV}eLbbq5CoFO?+OFT@_)Zj? zVnM%!Mu2iTWpAd;bHSj(tY~=PEHjHCki7{2O#OioLD4W zC8ldgM)VW`ra-MRn{LWC$4nqZl37$$IQ7H=Qv&vanr|=|!dq}$AP2cJk_QAMMtYsf zugaY!RtTE+T`?8_k$uojTq{PMWD|IlWb#WfojNXfv{>1wPC28=n>iyR;aN4b-3p)Y z{;K(=XZ#jc!7jC2#fmqEhE#u>YXh$~*S9R36Ob=hI4T|kOMTKo^}s4sr@KhVMv#rX zXV+N+{@ZU3EQ*g9H9$pHiV@^&kxgX5JnaDy_%|M1SBzu~2NT(p9t0$rPKq@VC?Oyc zM)?|@Nw$y;1|(^O5-bPE$SNAK<_;QbZd}kptLg@Isl3%;vzvthGfK_~ECYuqG*1F5=5 zNy^?fe7)?nkx)5~R1O>JDEJAq1tFViaf1A4K+>X%W`QFs$Ny366LKIM*+~ZL_wG|w zL06iQn#*ezXelQ2$Qc8E32LEkEc|rQg#-a9_AL&;3s({(f33wXK|+|#`Pc0r9~H+* zW&n%C8MS@7N#BARmQHBECA!F&Pnjy#oa0R7q#Vg@tDiJ>cXPlca7xYrnDVy`)dGT+ zw_`9Ru&BsZR$TJ6?c~n*q`4tB=eV3P$nt5?L?f`M%xfefu2@l3LtaEhXATD(ho4Y@ z1KOC3!b+vyJdYrl0;oI93K3WVDUp1^6QiI|9h-+JR5!sA7J9LI!;yikD>cDdHi??H z0}ZmX^PE&bV>y#?q<#Y7866N*QxmFttlb5WNf1m0sPNj z*h~^7Gtyg4i)p46&M^sqFAxCuvLp`3jk-oE_l<2ZdlD0 z#8E(Gw^ZCX)btUKAykEt(=#sqX%fNpncouF3X2r} z@hx8(H321l{aS?79J_~}ghG;qHr*;%+1^o|Bk-ULWPmO{#7r{vBbj%%kB3s5`C1Q% zn!<&fdXEarSft?_&1oH_G#M(@0ckC+Y@^l1K-}I!?t?Y0Xk_;ly%vcm#~AlpnM}lK zA;JvKccyG6(E<}MnK2?|z#_1s@B#=XSX7rHDG0+_1Sc0UVFY$biHQS8UI`6#G0eng zZ=j+A9=6)TNfWk?2%2b$Q@ZXdKoMLf z@mx2Tf97oin2Ol)K&V(MokAMWYL94c3A7NJIdHJG9lA0looZ$fTG67w-=Ul6pF+8mX%e{XUUoc|nAVs9`AZZ}H18!ZA(0)xdC#Z21T#S!wpWi3Qe~Ku12wsCLM<@4 zs`AGN@2MApIlgEB-Id+Gvi61oY5UHUAjY~2SN~*}Mn1%)t-u3j(z>Qp)C6OXj!@|0 z1F0Z+njicVi%z6SyMz>WBYD`jTk=}AEv>1+vDhQwHUecfNuZpTaUeRvph(32CU?Q1 zSZIz%xV06bU_jVG4^0b(#25cbXaSsUD|F&Xv*OF45QI{0vLqJu1~L63&^7vdbQ`%w z#r4WRK@6C(ssYKBSI+iWusM%70AjWqavL0nT)8UuiTooftXZErS+4{a6m6QVQ?jvG4EEOAUr+(jUB(em1m!C+#2K*+<2!)j7`rOOrKGdb$4Xq&UaQC4 z;IJHRZ{06)s3;X5Y;7emb$}?Ew5FnCQkK1u11<{~YX>A!YxqK`+Ave3>WQFm1F!8r z_nC|YIHHBFwE5=39vJ}yV4{sh?+Pz#P7%qiF~tB97e>R;$m_T&2FKx-5of)7VX+iz zn^Kv4Qvu*-Y|4)$Trp?} z7{IJ-L?F$x9fSUd(danv2z2cb*^aT1jD;;#w>}`q(X<^KO-ket%uuq84s)e;0!b>Y z%5ty;Wf8*`3oO3OTL!0t?N2{&WR*i+Aue;cwpCL^qL-td)Ul>AZ6r!s8z}Ih^6*$B zc`6lp8fpZN;7qJh0pw|^O>9vYtYCT9$S1K0NuHY~$)(ARG7UD1dqI4%Y({`-wt6sQ z(i)G73YY$fvAkxtX*!U!K&8nQx>838SU6=Dv=qX&o-n4#0pk>$k#q910o{R;1&Vye z7dF`Cs}LC(rDGyJs!K;B0dtRBJttqKDOM32ne>2~PBp|LD2fCuTriLk6t)d`wvGp0 z!WAMrnE|>vB??n3K-DyvI3x+!quoRiel*@F)`$7t0Ii#OC+Fq}m7CnUZDUH3JrxG2 zb;;l%(~vV|Nl)${(O5&dW` zc-TZ`GGK6GM9HZjr52^Y4eeazv+{#J>;bM*IX}5fdBHFxd4-+K>eIxTY1qrn6%6|1 zrnCt1&n(ql;5#$zSOI}vE|XR{!Z-9E$@=|2o15bv(TP*TEdrI$GoBk^u*)!`!I7$R zvbOdxrz9W)(jaH!>VG&kZ>N%F|0qUk_B|<5Dq>`~2#t~(b1)#jT92H-4Ie%9 zsBJN0z`*QMThwU?rKuc27HOh&L6ld6ryyRG33%E|dJQ}JQNRUfM-ffkoD6kfciRJ7 zOe85OS`xLF6LEpOqYydZ5WR>#;wrWbvjV;aR|~?#W-zEx>zJjTJ>^Q{)yz(W8h^O~?iqESh{q&bdS)`xtD|lFEQlU9#Zv0t|;qi~;l9qsi z(clC1q&6e+DzJJ<07^uG5ZMfADBUYe;2B^+k;eXDR%TqHAB;sCxdOv&2MP#;Kxqa< zOVo^=8aQwlbWS>1FbAZwI2Eu=hGidm;v=B;jHH-nF~GusKuM)3N&BhT`Gmw8WYK*> zi%%dSYvC7D+yRYZ?|v(i!2XE_8!{v7R{? znTFn#h`=}cgafV(d+^6_{Ni#HfDOY`FcEd5I}xKmg0MX&akn~rx-3-L*W!6;Rxk4$U;ZOb(oD%dlOEs3NV5WzV6AS~%FY7|B$hb99g1uO*^ z;FGm9?D$}8I%$*_kfNU=-;wHc6eyrB2|+rTUSNwYHjs)DTmT|v=EkQAvS0^h{*Z9d zLoPv}NjzRNUqG=2TtKRf0#=a2JI~cZJE+jN}4jq@Xcp zL#A7nPWBKXk^&DD#)nhK@e9$ApwS7S0xn1y9SNp@6u`TNHxL#%2|RE?%8VBC1a>Gd zE=XYJWA*^+IPe->jgL9DGNim7{YbFXO8E#CV@j-fOvADGlhj;+o<)IxpbH`fdhW({ zJdq`Bw;6QFhpH+hgP^vYbCMm{Iwl`tZ4V?wBFkWEeV{~7*t-l#OUSr$(uo!TMwuW< zUn)l!Ot|H<cj!ek+f0T!B$NxsL;;3krtk>f zOc)9SFa7?wxm-~ZB$HR#C08pdvfv85rR@f!E=N~fg|{j{`Rhl3H@-S03fIxS0~pV0 z;%ReqL|>8(q8B^?P>w*P9<|Zv?<17$2TlM!C5?xwPXKJmQl>ifcnoalEytOSvalF& zHkc!h$2eU$<@#rfX%)ZUvxWt zx0X{=(v(z%bdoF?^6f@wzrQ2mqQkh$Tq8ng5^?y%760_Y6KC_F#tGh7k?JX8=qnvT z2@Qxv@K8wM8=TO^;D~T~lmOgQFn&fH+Jn+HT)@)x2|RaoBHM`ofPy#`?&!t%+E6n< zT`IL}#m2d8NmF4Gs=-w<2Rf&yL7;VIEmf_ju;Ggzp&E_>8h=a>e}t{bN>vGkark#e zOtK>9fzTl=j5wmvvX&`708@*wVjuV*j~}`(cghtwzg1X{NY$exZp+5tm$R%#R(SS zHXpDE+L6c_YSE2EB_IC)3vfV0&8a0yBox7)sz%}v4Qxo6-7!JSkahY{BZcaqPPEJT z5>e!6odYsF3cJX|4P?U4u#B@EMm9>2%mA^hgU29+q|+#v4f}!!9*cNvZOfI_B5(3A zF6V$qq8VY$(?h8^*Ps}y*dJU21qkLE1YEwjcESf60H|w@Yzt{e!xu!k26Mm+rXUkl z5+BMG5nGlpl2(X8?Z+B$WF{i9@xcVwy;M9k7<;3LKQadyHjopklg|(02)dy~(4Tl3 zavCUs{+R#zxBAQ|j5mhiD8fRLC3SZ2jk#o=!KaXOFc^&*;5()~i>wY*jMl%U?jxtt{{0c2k$)6x=x7c7CM`)&;ECBJ^EzEzm|p}Fgh~vHk=Gh&$OMcP zutW_6|ug{$kU(2NGT6_DH<{p5+Tayq`gMq*xq<0Kj@XzBb30LvYd7SwPS zY)LxgN6sRQKhl_o^&0(1*H}H%BWVzV@QGJb*JP^JH5uRmXrV7~#b9M3fzkue{2S#M zlvy80O&TMRdiXVFPBCUA5HA+LFqD_90h`kz{v~8WQJug`(P)4f0(J52BBI95j{Lw6 zqDH@9o^QEKR|11I{1#CBdltwQ@;nO+r7!1Nauu=!K-_Rbs>!#&fqFzEih8ZBTpJ95 z9r5udD_f|ANud(reihSt41**^nTrg$D(78n`w_;oNTGL5P%6jZThX|Q1jd>5Kqfgi zPmUs7lEAQpSchmT^ARpe&^$z3#7PObaS*3&096@)lA)MC$})tVNMXncjTUIo_ZCk= za}%S8{eF~PLXdT2)j0&adj6IWY?e`RgR7-u-F@(3{G+k;t&9_3W3rddaPOe0KynT zq}=ZBY=a3wFvL0@zPO~&(eT_|aZ6EB34-v6rC`5exm*(+t41IxS!av%2@OzK1VRm< zlY?Wk;g3L#FrupN2q8-@aoFGsXmgQM_!|%N)#DSihk9ATX3SA4s{ zY|Q@n%BOqy|HUrWj~e(aZWR zgp!TcJfkk!Z!#7~gfbd92IIuKg3^?rh(br&CGapga4g6}qN>~^*SA1nn42v2ztneS#4(OV2)z<0HSS6$tL zIygn*rwn^g$z~pS2{eh*BOZt!RhV6zKGm3_Ai@<|!l{Q+W&Q+~Ik<#ghyo%`I1^vw zb4n7N{-?qcm{9}W6OkS%2O%G5Cuj+Eq8f!Pvh0&MHoe0tl83>MX-cMynHykzn;F)0RBQ|gzDKKC&T>YgD+9k z{~($iit0^5MH;oTi?;hmdR|Qu-;lGks&VOC257X zIM6*M+GIO`nCT;?ieM50($-G@k7zp_QPLHGOds`V+PjDbbDjEuM16*yMI9;Bh?sUp z<46%)=e|urDc4Cwb3rEjM~`9-t1$u_xDG_ABZo2V7r*60|PAc=f1 z97-Jg%PpcDASqL-N*qQqwIS={A-P;*7TWc~2$3Ra6mg~(ArtY&zXd z6w8<=Ybt34aCOkU;XoWw^j7~82}&LMM|0PR05Z{(m)W?W7lWo5rtdz-;NNLr4#5QhRM}Vo35OVHGM8-VWj;lbiN`4Q7aEkY#9%Higax_IVltE`bmoW5 z6_XnJ;vcmDbEz)%-eZ3i_Y}xrtsKZ-tk?itnmb{t(u<`m!J8J?zsP0MoA_%`YX6}f zRglrxGLgMTuWHpd8;8mifH;)-9O)+37w=u4sG-rR!bgVk57+AxfeK0GLqSSyl;j8q zuofP#VG+><5sa=&>~z1=y=w)o=ZO5+Vq(i%bX|d3DREPCG;*FUq$H}N7nDj- zCmkTcmV%SAzECAe zn6t?o7{T=6FDF;HWCJi^6evahIYFh!igHtdZfEE;Qn3LfDvPIr+K##q9f5IaX_V0k zI5C;ED+wYm z=qZAvv|OdZ%@Jq?0gRC0ahOyK&v8cE%qHN2u|b#TT$Gcp0fraF7BP%?1;%u#2>s9+ zmxC!`rBW9@#4KyfYI06Gn!$;A2dqqj)sX;E{vst+ruv{t)X_m`M4pcH#!!rVY0LSL z(?~GFyie{4bLCKlrzMreG&uTmHwZ=x#2O3CwbAihs4%@ye;QC^6$+Du0L&mNQo-WN zqyzC*DZf9ej2OI-kkds{I3YBE=GjO(gs)Skesrk#NXvsN09Leuu&ysjKsu$aoShp) zO_J#dqlP|=V$+p=MK1E3olow_lStQSuS>LOJWi4umeeJ^g>JmE((;(IeH0xTDCF@e zP;i2(7zM8MRRiJF7^!UXm)nR=6z+j5Mj&Mi>;-5I0b|NBHE?W@paBldD+O1h;SllI z{24>V#rL&0rzn6d$Cocmo^~aZ#0DX07WJVVG6bOx4Ri3G6teQZ zL@56+8vR?8MNG7SN|cWAhVIc8=9lZi)Q##&pH|bx=a_SyL>}vNTA$FqGBM6*qN+m7M1N9YhDrFn92l78VKvdUq1co zpRfW{(Qnal>c=(j4h3a=0T}Uw+Zvpq88zYKX${EGk)$S61*tW5Q^JW(iDV)+&>qbxc}Z}mnGL2I_7jbuBo-NP34B8;xuH!o zPVgr*is=QiH8=COGz34sB$Cq%6_i3J2e65BWj?1WR*%@=$eG9>de-C=;w+RMI+ok) z2v~|!lA6SH3@f<_=)pwfNr~6=0N?C3+ds0)m-m=F;>KpI#GFB znhctxsYkBpv-iMQ?i^&kf=Ta9BbiIne$54}psdhU(82^0YbZu=6QFsQ2q5`i6H2ed zae-1S#kkhPM-LWv<4*!@FcMaDtSQV{aTbsKX!vJMpTVx=g|u=(34*qm`H}_T=npXL zqqrmqsYe{pJ@hK4NDpWYpF~3Txt$JRlrU1nkIxm3F-kp+9mlz0bSPSkP%k&0i%1%D z5ppRZDNRb(AP4?rfQu1$F?q`+6&mXsh;tRXfPc)4TyTd-Q`sO0>Z)uD#stDRd=@Y{ zP;yOVF$2s49m;3`$2Z3$_tSrgj#N;bDb0+=(=7nmOVo(jY!%7zv}_}D*?~y0gp)QE z3l2k2vA;4Wkd(v>3Y5%@Gc(Sz5y^APEaS2ceG&XLqp>JxQ z2bBTBTJfhOs5TORE3TD~jIS3R5Iu?W%0*d@lAECT{W+SL7jDU@RCc z=wuvlHRvwkg9iRB&4RL>W(vWnC>QEg+o}@*WLw8VHX9+$F&Dx))HfVv7qzi$oVH(@ zL`02q{zyp_u9z@IiBZbUW!mnn08GNFYV$y-kdza~ns_EN0=*Hc{*)erC?}jDEd&YK zakpEa7ptVujljuAJh)S+mIQWLuik=7BMhWPJMt0F={=qH_18`mabN&7-55|(vQR{K_CJFSv<-P)4thw za8TYFjCSR9SlL@q1TfUWjD;ivMQI(CX@H*-3yrpek zOU(Q*E>%yUvzkbH%R5)S9)RU>3h9e~$Z5yh&{9w^rC|l)OBG(ekW!EnlmK_p(M=au zM=L*$=!Y833?dIm;C0Pd5B0VROTO)8g3O04){b4n7UgAr=~cw4Xl0^SIHW^f{3Gn3 zor=L-fQhkzu?W5xs=MJc1z=84Lg)dLD2SjOh*Ge)wV+7}+&N9_)P;2!YZ>WVQ**1W z>fM~QfhnWHl2Y07Pr@3EqGqy@NMO-Z%~k9$FD7bwg^QD%QvuIF4H*JMu;-y2>sOtS z1hynk!G#9QCwz^8udCH*fa6fHHu%DhkAqbP(+2ZT7e#Jw%UAh-z*qPyzI$BvIx0kw z=9k(~cUPzjjQLmag0{dG{)J#iGbTeKVv|}Li0O1duf(4<<-p$K~yOG2LEA4g>6Pn5u-c!@l~7HSd7V%feM z{pH3?)ox@1Hg>0}07@h;qp)k)L`D|O#*9whkgl%kGJy!3|4cUHuii`Sd4AS($7N!R6CQ@+Qki3h2FY&ESc|DZ46MHc8t z7!L>)?!2$bF;X70G%7v{*j<~<2i9CK6a!56s_=>njD=yU#r);N`_upn!ji|Z>ESkR zTNlQ>)d;i#wL+K}>oW7xHUnp}2{#1&qRooKTY!W?AJIIVa8V1Z*+L_9tcYPtFIG?5 ztxd1O^yxiPx`l=cj?N$1n!dHTW&;PYlN!J_-XTCdjllKPlvLD>PQu5MgCMK@*m=TD zE24m!im$a+nKUrVgs{wLaYb#YdX-}vO8Yf6tb`?A8a$D*;Q+2KCsiA>&5Dc>{xq~8 zUIEooShcxaz2!+8!eJnj2-Gb_Kzf-Kb0W%s=?nH?t3IM0Gpvx1<}loQ?4p)J7tj)2 zM|2wZ8S&q1ZNXZu*5UwUKwuD>7<$lfSf-A`OU)QFOiW2+ELxptMuAp;ILc(Ck^B`) z3^2jfK!EL%IkQ-E)PsBteds|mB<-w^R$4iWUn*C*w`Y%5OnIzs%NQ#LvUE+soVKD1 zw|JfYvfvVv^HPq3bz)N=tPc>t$OOG?@DspdrqLp5`h7o#xhD#o#T8A$u(A+0;n9>b z!z;?7=7)tcWjMPjb5oH`tZ0%FbU6iu)t_L6Qi#aC98v@=)gx_&@pv>RWZKwVO|8;5 z1o5OB25jy+r0Cq~szl-CCg)QWBJ5=l^otp0E21WwAnE~q%2`>>F_Ojr7a!cl#?<1I z4~Yz*;bjGEGyX62r1}x4pcMgK?sB^ztn96D6tL15VlN3Jpi;?+GBNZCH>U)kQCHHqy{Sib|T~Xgr`>{&L}fe*yM;Sj54Jo5R{G&WXQ0U zf^wm3E>5uOrCiPdmyU-x@1U)awyCl^z#CQhy-A>1DCpNRZqgHD>vF$>9PlGkiZ!>i0-bgut{r6w{4nn$1vx#R>MT?%-Ly=Wg)VIw1OIzC7{mbm0Oy;f~6+LRfM2?B@aS|qKHy=g_bezVJ%**BesMXK2`h> zx+1sWs8RKzazLJf1cC6#DerU;TXZRYQ#B{@y;$=Hg;6Q_LQf+thUFvsPFk zG?j{Ds|bLCFoP*EddVKu>7UM2kER~w?P&V6DOOFMx}~rfz63yCp!>3fxg5Vxv4n)tLEe3%p)p*i`k^eQb__R#$_gwe7S6kKVCx7VoHSh zRvSo5C5eOIdy%<`9hk8~+Bw13K0~Bx1YXN)u08cukdrQr4!SZrQHZ4-I>s?}f+S{C ze0wKZH3x1uyU|#hNfu52lrq(6Gr!H+99&5UrNAb$7IVpq>tIo$5E_%L+H%pqB&GH{ z{UA&*wHy8AG_tg09#+Bai??2HfEzA$#%XvybsnNLoc+K^HI!p@}k=>WCzfwN~a6`v3F~cL?&O^xh`4IKzH`7E&I+>&=?EG0daGCejOwvvi%$%?$mz#rvEFb_) z2`WYDA(rCR=t-X&8LLdJ>sg@|Uw(J{W#j`u?saSQ&9;kMC^ls({5hGS3Mc2222+8U z@{t?mSA~p-v6JZ2)}^kKlsU`CB-d#WM@F1R{(PLd1al`0dYy)DbZW6!`{_f(D041r zkU1q{XtDSUfMv0cx>ALRyB-SSNW;FHcm1{e<+2IMOL)m&d~1JsqZ^b(8ImUNGFzVux+?G_%KTBXt(oomgZuaVJf0 zqcwd~8BW|y?Nu5}dMwWy1ATgZ?#Rq6vtp}lCp8=OZ?Sb&I=5Cjt9*6%Tm@&{K5sF6 zGKE-UdCFGaa*!YqR^>pqM-)d8(hI@8lfe2+xn(jp3dbqxt`cR`_Yt4 zyt-xdNrE=>_Inbc=n0m}0h33Jy>MzmFfnQ(Q-e$r^8t_8`Kn4^5+ZB)1Z&w|c=9>W z|J5i)j=))_jRiW)uYwlDRfGj~1!Z}2Tz`j`J}@nmyiUA9NLOQ?G|*{X3d**TLcZGm zg3X#vpS19k1KZN()1spCLwWw|;8l56XPR_sn~b}iU)_SZR+d&bHV!uTH#$IUH7vHW ziL+(!Waqe$tQit)r3uRGN8GOl(Mg{w>xsz zt(C|7-#$Bhb@=AlvuAIfzk7BV9_w_rSvCD+2#;l3D_2Ea`RIG{oz1$*@iSitq*3y@ zNTnutnH;ov+0v#ZP65-xPfEEFz-g0&{F9>Tn6|r`)6Z1xlc1(@R)bXDS-pb6tAv;i*c4ALQHK7+tKtHg*G*_=Ng+np-FVSwz`1skuv%^E+b$U;m1&x?!rfKTUF@qo##Vq864?q_icfYUKsy7%k3p zG8~sXMa(T*H<-=}d90Z^x)Mw~KaN%xfW@3I{&F3B;Z6T4ubpV8jZhcfudfL)tY9|k z@;*5Is&Rl-$EUX5+F_Lc+y-`LqTJ|!>6IYO)1R1jR&1PJ(_|h^l5#wEX|%b7wY9Re zvGMq5`-dNnk3SqA{qV!vckkW>TV8v#`j{rMRA;DDY^#}Cj=UEsH0H9KFSX9T5P^GU zR11=rzdl>jNp5o>`1$^{kvC$^<#40O6f;{3q|x3vA{*6WTPqI0n~xnigT!Xx{DtpN zz`a@~80$uLROAjM_l2~;e8(hgrtt-9v1@~?yAj&`8szStu`%U9?flC@_nOpR`+0U zOZGUtANL zS?CIRG1ufbFL-!%V3e9a3Cza{`&;g}fcZ1uN8T{Pj& z%Oj3=XqvVOL%!ArwoT3VeB0(O{g*lUSIMCr^j9C=9<6t(FGriJD=Yl3th~9nc*Ebj zXB$D-5(wJ{V7xP+Auqm~Nn~+kN##rEpKtPG|Fny zOiKBw_@9lWiKt&y(0R)uPO*HUCUvp8meohqafpd4-bd(J9m8Lx zEg>>!%3DC;Gw)~@he2QAHom+v;)yio5gH|;%Z0ZgHhUF5SVdK?tbB`s54PN}!k$ZDnEERl0*r+yBFy`djhpp^`+&18pZphb29g3IXe(M$;~ymf&^YpwWm8+O3f*xMj!!-S zoAjQzij7J9p-M)`#=|wkKz@on-am?{(P2sk-v*UoP?|dx7ljMvEt%Of_$G!0e^DMmR=FOB-w|l_UQ}W5|~$i?qailP0(d zk;Ofsp8`br`Y#==Oo;sL1=OAPSNZBulsX*LmmC41hPqURSv28~Q*B{^VcLr=mawoo zg7qrY0|TFjT%oaRjQ%fH-%5Y7O=3?DW}@8aC$889|If$ujgG#)KDyiKY#u&){`}qZ z23s;12*V6p#RTI|26K@JTP(2VPGrN@GnH))Z?>b(KPh=O;jA$?8-DY+<;eNj&gZFf zw!k)>`L)Nh*Kd|n=aYuORfrgj0j#W|23IVSRz>=lEq}h;8^h~f`6&GLHeZ_QeQTc4 zmcODRwZDKE43=jdHNV(ZgCgo{T^W3Ldncn^ejx)yvAhMdl%HbK>hk~6=@qs6`O42V zY0{Fp(9fRy8=_YFwm+NP=1&KmZ#wInkH0;9{=*ONaZo&OH01kt&)&UXMRP8}U`O<3 z%V6FraMw@&B!HF1Sdm&X` zAM7mB)pS{w?|Wa`MTY$H748V(p@!4}2Dn=Lt2AWzE4nWl(wmGp>tlKGsaE9ohnzg} zO9QM%^^ua@AV+~)BB6_cW*&gykt(qeWwPdfh<;DR$Dt~gSB~5McO~DXdC|d z@7Ze39vgeEi8qs5KxP?LQpFACJS>Xm(&Sda&Gi3<^Eg^dPlm#{QN*1`Am;Bt==S0r zhG5FypV0BeUq0xuZTt_JKxV~6j4ti3tjwvIV_tf%wWVKG<6da>(ULA3FIp^WRLwDT6`mFQ^bwXpFbUZ^G)Z``jNuObSeBY{^8xb_wV04dvkb>6ZTiG zsi1+p8Z6k#hwG6-U^kXJP>+f8Eu{xBKhfyVUixg{7aB9QmTZHOUg)h-C^U(j<}o|z zs87oHBp?MgsheB+QrD%=e*4k9mYN$wI4SgcX?f)ny9?I>%U3bUSdy<+L`AA6!5S~W z*Tm;ozeE(JwwT^kz9cX13$g60JLFwM_#s?u!xLjPjvBTP%%*NX^D*0?pVJ#=H5)%! zJG+_i#3xr1W&WdyGwI{&>w|B;`AvB#xHcUjC;6n)=@*^ z?wi+;ZJuOnS&AuNAPUKa(*Q9~a>i&-Di@*`+NJMyjJ#b?xF z;I+(x30_^r(`fvb-CF;WSL)(xW5GlSj0)^Fqp7Xn=UdY@qxo(lPl7*}>T_X}1oH zSIi*!)b`Rn#rqUo$qb1BF6NCuD}S2%L6jhq#RQf|a+=uEx>qqqH#&Z~D>NFdb(y2* zwW-V=eWXl?O&1B%2Wb6EZ*0%iccyQ0cvGl#{U?*$%;Ls*+if!=??#Nd)A9N@cXen%O)(J=(D}741UUPc5i4}-eFxscnuYk6yR|LrGnH(xr5pn;jfi-^ z_;7t8-h14uKl&@(cqU*k-1a&qWUqRXXq#6=1F0}obYcUqGUsKlW$qB=zR;Qry}08@ zSMzf%a#p`zwRVwlhLMd;HK|8d0;K;x*MQl^{LJyqj=gz4pPcf;V5z|;m*xY;f4ci< zK4dC|qYc<=|Mfl$clT~*{VtYlX~_0Qw{NAmu@a0%`_z5?%{pMs_C~c&gH0B((M7%w zqV2iV$KJCQj8L9ibio;Y_-QxFU)~F~^SNz9CiOT0qG1cUO%qLzCQa5Y-&AYb@DyZL z6iB8BRL3d-lvWGCz!YSrcJ#y7;m7boEusyxYkPq){$;3;R=FlniNHv3#M6B#Q zNwOx@&BW7l7iJ*~I@%=;AZ&UmncVys?cHr^-gfUa!R3+oIyif^ez)_@-Okb@d=xYr z2G4^0;VyvF575-HO^AT8QuqXE{C{DSyyzNej!IgEPh*NX?*>*QZcbFwHk;Wf4!-JX z;eu9un)7_0&QyoGQ)lnABdxaflk3`B0*pG41G7@j!Ls!%T=~h%!h9i*{(GP3<0t$? z6@L6W$O3%KFCZ0-sMFqqnDyN)eou6(cx$b@plRP9b$L{XMK!}GSr<>HKnotr)GJj( zOjO4T=fxycsTtv|{EYR*CQn-TrGqw?_PgTE?n4ySS>G(iO-c0806U94i?4%Z17!hPLP}5Jj z?-6mg^>h`vNVO;7CwVf9lWcffO@vNEx$5J+a~rlx?!u=ApKpHVGOdhK%%o@zNYi4M z!qxY_aE=9r0*sbTxQip;<*Vl*tbW$30Sq&R?FgTVG>?y&3+-Xshwb^#e>2QUgd}|M zl8uLsEW6z%(rxuYUD*4SH<}bO%K-p;{qp4*`VkYqgW*{ZNM@yB7UKsXZ5g7O^|ljf z`y|`v(G9_hjpofzC#=zR90WOS%Vj~^fde~OtM*N?ET!bBVIxg8UnjN8l1SdtVi+Y% z;5e;i18|3ea!UTwt2qKuH3=>K8*sso)CmQV*(1LR5+cKm&+0;*_+SiZsT2JbkKXF? zs=h29@QBA=<`QLcnUK?}_v33Vdua^)h~L`fq;9@6m6gBElAN|vQa2XRIp8Xu%5-*J z@RHflj4b!c1Bvg8;HR*;Hmsk0JmdYPBN@NUP6 ztyGy3PzVi_m~e25ft4OSC-0)$=A{`#L6y$6JgH+sP{C|ehG949X7aTH%|IoFIHWDH z@BvqYE55u#B(nUK25$*@i^wI>-aynei~9tJ}z&s!WypW>*}voOzqiEf7>6kTvQM*+H4=@=QU!Q zIG=2(%V)x;5y=^=`DC>B-Ps<0>m66SvKEos+%BXDfq5s)*JDgl(ISkgcAH%Nq#z^? zIru7rY!g+MH{($^0D;zP^J%^bndd^9UkKe5_N?<{g%r=yvsf*Dy5`MgRL^!cXCIL%GEPi*?bI#b2D1{Z;4^S?ER# zd_V<*Nn764F3&wM^yd+rM&h>jedDgCpy;3{ZQuj?a(Sa~)XG~ygnt@13x|nNW)D8W z;LOEOduZlj9n#$@#-g=T@-#$a?HK3GCWcT)dFxL&}VGNxN*&sG0g51F@47vna(+6re5@i^W(qk&6P)wSa>H!dEBh?VUAccn762*uOX|a|eb4G1@ z&?Uxr3@q^K>TC5!7MwUrT=k{@>mHNFA}wjF_qAFPi;MrLN4j#SyL?BmS?m5akELPl z+v|f~hf=DAos$^3pJL?3B8z zD(NB3v`BE*A7}I3JdDy9@#IB}R`^eb@DSIH!31D>he5cMVNW@}9fSJt$fiG@S(`sA z#+%Dbr-?G{Q;$epC5(78keTN}d5dP}qtVTdlHDNO`W3{eHo)|Uaq|n_ECKU(DP5wI zS)`tOsEn05(pWSk4lqe8)|c?&RK>VZ{Do<+PZdW$N6X#Qc2vZ{NTIwgHLeQU&}^A` zV4)F{_m`$(N+430L~0{Xz9&MO95k1vJ=5edNpj;L3c~@7CpiQ{=lZG?=R#lJX0xBh z!u!;ykNy3_^JnLWt31edYqg{8to(|<%23e0X|~4vLn;IG6>aBX)z1~KDV6;Fr9tT@ z0Mgx|=}J2#&#c)HBiQPCbJLm`qd>Yg6vgP`v~BAIx?r%N4K`y666LEdEEa1kI?=7b ztEhg)x@!a|MX>Qp0Qs&uNW4rVLtOd9e-DQVGwEw^EWBJ;=*o#@-$B7d5pYe6FV9?a zFJJLg8c1V_>efiGb=UY+#-2+FM}1nB8`~KN5j<2uGiY=(E8=&^n8R1)B{1y@#@`Jq zV$$F*9JJCY83G0d_m?)}W>hll=xT;0y)%XVXHvDmXbWk^FI|nv7*{0~{ltaVBzW!ze9x8IcJ^aU+Bo7t0*kk!s(^q<$H2C z_?ll@U+(TgUU!xyV*Onse(M;5dIEXb5AhJ@ZAsQ15XJ7K;!pDaWnv(AY>P4hKB1F{ zXWDI%2dA@AORoqOCj~PKsd{Vrsi%lxC&wTe2?QdTQIS(1P1EG4EzAg2pVnJ>dLgaL4*u2hgIdCpAEERGV0_af{AzKA_D4t3~b{&@2mo$G-U`O6U9BGm5&d@5BzQ*b{;rWJBlvNd=+D3e+e;s_58VXA_wS4+^Qg} z4E$bqf&XrI0f70Y9Df(n--4l}8cJ(<=NHXpH06&KXqf}}T(|Y3?(s!I3c6Y(2ic5X zZ-r`?*QOj)O`hGrfoR!yy=!3y)&U1my|!r(J$=Px$u%YoZJe|z}m zaQ|7RkgJ?oRP+h=OeZ-wlHA@uKU~EH>;}lR#lqr3SN2h{(1A@|=%@??(B)ps`id{D3I-+yD#zG_UI{={4WIUS zg>ZqcFPp`#n05!aQs#84pMvmHbUG*{c2P}-GxRB1%-<+(hHq|M@s!+U28TDJ76A|5 zpFexGzt2LJ04w?tm@V((WySo0!@M^{QK#0*C$w=-P-zaL6{xPgGG>BNo zHUTgP=qI9$;w+Hf@FXgAu#3u~(<#KnE%cJjxMh&2jM8AL$n+{TY_ZsWe^T}&fEWzm zC=Y~G8tUy^R)X!l!pVx8Vky>iw|_4-z6HcNx%o}!?ybAGdQ{FJG2_p~ahUNi$$xU- zcyntj`=q8qX{Iey`dHTFrr1nH zSY=FZiplcnXw-=O6=M=`M@~>@357@*UaC)8!ApFt2aWOlZLN2;QIx|m6^n9o+K6$l zh77ED{}%?n_$pkLf1>7&F~F8J@)vx{dzl3}Oe1Lu>k8#kYKvFGMfb>A%dqJW`-Clh zQ-^$_v6zixQcOZVt2Dr=ccyj4C=#36z=8InRcA9G9^+UhukFR=>h>TQ3o;mRbSs+{ zQ0mx5ocV4Ea1N-PkTu3Hb%lB57BtA~v;DJIXWZw$3&2`ZiHpKF8&g{<{-;NGy^VBS zv;s2qMU@AG8Z;_&^qAj#ZR$XmIS$+Gv~ujA7c~~k01FQzuv(R^CU7Ct;k$P$E877` z|MBYT3Ugcj4v&sjZ^17BJmXs(*=|pQO=r{XY@@x=(Z;ak=3VcO$7X8kL#@n5ftOYo zb>*kQd6T^KRTPHB@2e-+xc#Vh%&UI2z;Lf(VQ~=Ms3l+I)wu8BwuQCjJA^`9%Xq(Z zq!P>DF{2;wNfZMq;G@;H*pM`ugy3XDKR5FEa*Mb!{j?yiCflwoR_$YBs#C5CXksD3k$X-yQ6| ze0_HIGPfb`^7=V8?y;#Lqj|v3>G-=n?;_pp)i^jVS5%{yift))^n-61;|+HFAT|~Q zEt$ZJr)8cD9`#T|Ac&vU$Z*vB0bD$llRHux*p5CPKG|5|c$>Ud^~?Dlpj(~qmzdvD znPz;eq9@)vKGG()OQcH+t30T;~4sc0i6>5C@0 z4R`J=++Mh|aHs28(G_L{RV9X<>FqI1125O&k2aG=>=~0ud8?=kDsDtX!L59ojAHJ?Pfa z@v3&@HbfeHx7Ue&a`lKu4X`5tKQNZTAweMqa3C^3=!^+`@hd;h9^+xvIf45NTffw# z4hrGr<{L772CXz?facUOE5Bf`<;KWgellFZ$;u)`TtB1T7+9sM({C+*J?Y+A6kZDp zcWj*-NO8cS_26tYDjTE0E5LGA?93ZuRyJ+{0f|W;Tp)jrr7u*70Lxe;#sq#SwP)`R z=o@=ZT$jzvE$&%$;*4}Ia+@8_Wg6wwUj}%zW!*PmJ7|K^jG2SE{2&KuP*Z|1|G!p7Bda9 zUt0HPqEfmI34vW7WwkD7P2pq#57QE?geUy8HT4pqcCH5XTG?&xCXca zF@{=xC@dPUWw^#FN?YtE^~RJvAgNg!i(wDsVv%y=*RclwIU&NsQwW8#&BxJuHx6Mt;M1(j=uO!Wv>2q1`oxwRVqu5=-d9_?B!q2&dvarLNr{nJ64gl zC^pmSCH$3zJpMM9LxCuCxPyV!@Dmrt_&*;X|8U52yCJb#jR|jV#^3$^<=KCr2shW9 zb(VZp2n(wUVFdzmJGuJs{{4Ap6Vq#BeQ$mLyZybr{dGWQ+I3c{m6p!*7Xp<09N4PB z>w|qkw7%3?btGENlpUrW?d`3LQp^4g&$Yuvj4o9UcNm$j2`PMDz=|70lGx}+X$ye) zE7F+u&KE^i?m==afw7>l6k};eUQ7tez*qr{ZzkUS%=$?WJz4Bu0HG+>v2rW2%wZa{ z_F(bBA_R8(mqx`C1heUW42jJQ)nYI?YDUsHAc)`C4&==m+*n|;Pb^^=r3?xH=JhxX z!DJBn{@I(q;A3a&F_y|Mrt9j)%N$eA6#2;^kiH(hMiKT}3jFR-r$-M%UoO-^dBWxysi3HSET z03x#$YQ`^EH>*LSd}+k14Rx&zHJ@K~mRb|dpU{!F(2>j{WiD@R2UoxjTTDBjCm`h^ z4KPi7b)>&t<&$XK4ElO)>kr{B5C(rOs2*{uVocCs*kCje>IGJLY`Z$_GVi@75XN|r zEjHK!Nw6S+ha6%Miw;3HPJ`+h?_DSB(3P~T+#oSx^yL!e$ zv2RvZ*H_j}nu$FH#Q-v1yG@VUkQ?7umml`Pk&Z97g98jM$Qky+2wT4kf^bpfQr+ZM zUE`BEy?)D59<^JCaX}4O=^Fb@sVne&2Lv@hIMfqB(r>w*U?{JzWfu*vBj7q zv$W!s`{2W6|I7oE+sQTWFI!oE^r$1gU``f7x}B8`NG+f+YmtHGPckNd0oUq0eKp z;K_f9%*SoL`C5*2&~YZK2`Ufj`v@`!kkmzLdSbV`W2Z= z#yTJTxnZ-Fjqb z=ElmmD-c-c7QY;w)ekjpFdV*r`4Vr)>+o0S5ihgelm_`Zq-{~47Ngat2jc5)=hod$ z(;bvD2*h4uKHe2!kB%nEt{>4M&&QTHG9qum9v*yE=C4!~*jU9S zsi(OU%b(pwn-B*UNCE6%zk|1e+Y-p+<=Ox7C&xVxL#jQuc^??niN8gZe}DGZKmAp) zZO6d3nQoavGQei1GS@5L{_b1ex_`?%I`(VKFCCeq-M_tl{kONTUn6DUU}mzqzW1o3g~ZPpM3cvS`n&uEK4ZK6ro-<{!}TV>G{iF~2ZfWzxbMSbFj?K*Rzr#` z*5{xU(TB^KF0O5T9kbr0U+v_Pb%aBZ=VXbTIa*`ph$^N-cbP5T@zFHpUvriF;On;! z?l0c?2Z4xOuJ0^#??X0@r7~OM_x6?pA&z^5&2uBIgnhoun_SLE{X7}p2ddx~UyM_2 zeA%Uz$Wsq^W8RY-{rK+vW8k&w`;;cW#h7Xsf-~O!>1+<*-^AL;-|;B+LbhOyw;aNv z*MEQIcz&r(g882wuh-2nSdbcHKn3|%h(kcmXlPV5rvNM@Iy$1=yc?a0q9C!K>E0)O z3RKRyV>x&&!2b3(%zS_Ap|iq@P_~AHAWMvmBk)xS0dHQ7r;mXyz|LOoE#2j{2jAdk z8I6|68LvUe&pscYzCC#P`e5%@3?i6W*D2_d1?}+D@#{D1ouf!&JbL}=CHQjYSQ{pO z{9LV-j9T0qEuB4`CEXO!2%mS5QI!A?;~?6!Vlg>tKe!-jptVO zm^tTe0n8iJF-$EgdVWOu+iTovbrho`?&Vj_Ai(tWj9vA^o4>r%D}+be#FI|3B3k%2 zEilAAyS>=tQBIWkMh9Y$yHG&P$2y(!&e9Qf;OOkkM~R{zJ2)-aVinQ1jug{EUw_p> z8o5pgl)kq<1+c5pb8qOd|I>z!Ry6SLfH&NAZb#2SPs3fv>s$uIjj*wT&!uh{aKDow z&H^v8x{5tdNxx!7$s#Bqp3x}4USlbq?K=bP{ATHRw8Z;czz_Td!s2)wkG{j7ai9;3 zx%P~57LB79Z_oF!AYI~mI>H^d{;O5S5+!(hkvoklQ8d_`zoZa+?I?_002cIws{#OQ5-IE- zT|I4e!57+6kL$wy478SiyrqR)ywP*@VDbLK?fXiIO($5aH6Uva{rihd7n;;IlY6-t zjI) zVcoyexuY3bKY{Z6kyiz{HfO7MJak=j048-6!h{vSqkv}g3&ZQS zc|JeuFLv?8c7A^T>diR_+q}O1u+O6& z?MKEBH-o^zrw(fpqW^0*iixOW-cMGd^e7{{v}x z?@t`@5;22;IY8{2niP#s4)!+=wl|zzc(Xp!kPMSB!sYp!PUo1uVp8^EaCFqU4RUM> z0Oej0raa5-;jkY8m^Vwa@=FUc?l10Zs2JV-D*l4Fm_zDS1y;pnYqg+|WdK<8JAGD0 zU!PDsul<5#S^X7#KqW>yivVm5EVDUIAvHTz!z&tERAu~3C|$$=M^0Ma4>hII>)AD$gP`}W&gzwZ3{ zmgq~LSP|SdQpW^{pTXJn_3^jotZ!NEu#oTofUO8Im)`RhF!l|c-Ph-@*j^t%P)qAe zv8quz^`J))*fsuvGi)Cy1AI5$I{PCl_~2VMECx8^$w5qWu+|T_8KwVIvsPCdbAV#bl8+3Ws`i*m5=*Mt|UkgsNa;phZH17TaISJWX&5}ER3+SGU% z?J{AEi6zBkkV(Y2>r&g%Z}0#1KH&KGi??rQgtk>>e7B1aaC+_h^M7>82`lT3XkG!s zWNLW42sbV){POmH2Zu@YF+&)M45F5l8lA^VW&kFCg}}n`UlcRok7+23#`(sFrryw zp{1qKJrp%ScP5m9gd0Tb%Eg{<-@XH2=KzzNM;n{cA4waAa!u`EV;z9mPfPp;PI$Ji z4!zqjmcTR>u3wBcI?$X9M;Sg8Yh8MRZ{S3wFy@0+j@FA~zK0nm=6#*z9 zHju^N!gBBHHD7_*@D~$C{S`1)ta8R7d;u9+IymEXUu-+SEi3Hyoyl);G9)x5kn2!$ zO!fF+;U8|(ipWD(2TvblFvaq{KG}Wn&)ikQs-yq0BIqjhBllDn@2oA}`K2mSC5cI` z8B#X@Kn#8@YE&xn>hSRW;o%B5j&E^a4}7ylwFq>%j;-aooZS5QaDH*V!J{0T@EE^7 zM4!5LfW*8plb8LD-=DwLaezs~46@t;tSO=Mr6%n6>mOeqoc-;9c^N)1r-f{&HNTkO zxmb~n#xYyCexd!f0Y;YYqD*&>zC-azb%}I*j*{DdeSV&o@~?CRy86+K27{x&?Q^H# zJ3UyrnUB?CQMuFpf_0xGhRB;Y?+$UEtuC#8pN{Yrk$q8hzy$awZ&2M@S=wfvZniv7 z#%Hzm?E&dF`8^ZuzgxF@%_9d!%e~($LYKhe2Xl1}^@F|eRKx+c%@1*FhCyB4A=1gE zf7Q1E04%`e6Ob&rU+A7(vn=1f!*Rtczp$7v_RID{tfR#{9%F?)SiJ32a-kMl#wX-5 z37(zX{q4UGf8BoYzhkEBVaSHHCIam6qM?(W-~Y$2V&zlXWZPx-xQ2oRdg#bsl0!GY zxNhbVX_%)4%@K6Et^_^;02zUKzElg(TJV0NA@|2qKVwLU0H@B5eYlLxo0s*6rO zs2|_G~9GCS!w{CS~p?Twl zpM60mdMC&m6iyx`0#eIgF7{xOnRnpV`Y#k@^rO!RfvouKvFrVr4#><^Vf>^vG&#hm z+FHP_-;s-p2o%f7eWr$Yc6Q=XMT_0O6C=F1Oa9`Id)}(gU*1{!{R3Exy0~E-+eBmm-B3P78kqV>;4_?H_2fCztoYW=@_1uV;+f^=;wL);g~~T%50VxP$!m<=JnFz;ZeKm0=$j z{lWg;>+ja}doI;;Ai86k_k}?+R@z0RQttN3+vx2x z7!2i%dlzS6&CF^PWYVQu)iJ^xl*Nk}8|6|8y;69gN_cS_61YiQz{{5efRlUv#Dc~> zmKV3UA+dPtzy50Z_QV8(&0LYgbKPilGFMBMhl0TaZ^1BHf2Vj-0oWb%BiLHR%Ev-- zQ=pk?k9K!(>Hn4);KH2;|BRY!07wk5$CO7yJV4<_CEgAl8Jy>ddC}KQA0ROKi{uMX zTtnkHSMdoTEB>)MAhGe`yTijDSos3Ps6he5foV>>UUL}`j)iKg8=ep0{|M}P2YpuO@xw@U*3Se~c!Z2E2(A9Qk zmgeRbZ#yoWV2zdD#+x5vWX;2{dw6(wbO^v87>32&6?j-EJX4sP)YkjY5v`9lQSg0? z+3q+D>P}ba5&VU$pIzK(}c?7jpFxm!6)PcdQd<2flvV4b{(t6O!aq zg!0^;nv&mupXOvJi>{YYqJrcyJVVjz{mO})Q-OW8fibwFX9rU0h=Sj0243wZsy#d$ zg$&urO|?h8DReWSW-Jbiqg(>peM^{e?`0NH1rpa_~W)&`K#*}!T> z!M3&r1n;T1`p^Xc?9HOC!0zl;^##0*o0b7-@8{6I9Own9tQ4)r@|_){{bRB~^TxD< zaH{%;%B()8FZ;}`Jzss1Fu%v;`p7haVIe~2G!6u2a=E3Y=|z+v7=q3yNZ!B#S0p44 z!_LOR;opz`ezZgs;a%jI#|r|kB?}&6IN8^`y`X2q8&w6&tX8{;z zCnmP@j~ekcf}GPA7gtrzOCA#~+wfQX#sEx^rd|MKEN$>tVXrs>vwyrpwe}Xc9lSo+ zH%zfd?J2eF2eTv+z`5nGETPBI{@~3Tp4G|unY-lFsLL52CFC%C{`}e0mydtg zAm)2+eyTE1EJVV3m;Y1UyTGdury3asd^?o-B{fWdE$A!!g+kvod^K_s?F)Ey=}E$4 zjph_FU^uwDUHcHGUF8PIAk9-l5SULjN*Gavvo!w~__ZhOLndN?9gG1T_31yV;3FaJ z2ha!fHp^YI3wxwK4f5e!D-XYa2!nOdGD`3Ai?;EKL@f#~;RSvj5bEMknzEEG86btf z3ceZ;7*VYC62rA935a|XWCr(Kk(tc@7<}1K+%lG>v?sEdeFv-4nAl#wriX}vHD3ZG zB35cG?QCPtq`>wdCm#!Mb@Hg?6x-)c2{s~;Mf*W-=If>DB{+no9c%6K>fCLdg%P5A z8;gre%qpUf@-Fhex{-i{GvLfWV7xZq@q9%UV32O{5&?mut+&RL09YfYbuhtSGQao3 z{u}#m{`v-dHH@*21JQDp7&A%vHKkd8XOGpIx9 zD7s32UF}Q51Ru&r9Ye*!YClrNUg_BEG#J>?Y@?M)Vyx%+pn7OrTSsV>x3h<{zw6w? z!}tYcgC|EE)-8`rg}yXjU_R~jzgYojQNe0}spMN`ifpV70Q*Lgqbe|f)5M5h>|Y(; z09XS%t(D~d$bs@v-tF@P7X&2JIND^5+h8}Eg-w%i4b?RYeU7oKKlpw0`tVI+7Cd_y zJyT-B1=uMgSYNO2?;n6KnvFbeoH_&+8P{3aUN1S)^SKrmP= zfvhry%?q-4dv!(x58px1Kf)}(Zfi)8VZ3A1jC{o3-2oT?PXgnUYARZnJ0OILVKC#r z_l{*S*^cURi}<=TAwT;1b@38KzpK6Aw3uXL_wDrTXfXH+0&4&-gbo&`dhrkx>pB+& zmNPmi`QtV~9iZD>#w&7!RbY)4QExWJnMTW_0KD);9lcy%dWqyw=Qi711dEpl*>e7~ zv-vp?mXT_e6FgcAyAbJTm&SWu{_3k~JVZ0#XORY`tZ4WyOY|Z6aGzJpi(koLbcd%K zlXoix3>At(vH9@b!Ta|b_vaN5xFo7k^Q2PX0 zeX+0tF?F!sCiGx@bUv_AfUch2q5DKqG#$2$DGcc*cEQ!I#+uL*4|E%1LRZ5JNz*ra z`Xa&41B!(OzTCI+aTZj4*1Xs4^&fs)j1)yCS}!Q4g}@*~4fnVM9`*$oQ{s+BvoaSl zGSU%@HgpcfNK??u@jUKDg#$fjqb&voer1~}Ad88j?w6}Y2_^nPQ-v-qv=!)YE9`alYI$xE2BT4F*0QbaAcsoU zE=(2m}1y?sYC<@|Kc z$lH*!V?nQKb7!4Nl=kG{XpuTYq%B+IGhM%q2Bw+n@`+O_uFgu!9 zv4l-IA5k&kBNU-Ghzxi&S`^Szqty~r;S3Q57;2wj)KCXNGdOvK>_mFv96_gHrT@*h&|z~KMMT7Y!CT}1XijKgjgK>a{v6>` zixr_fl<4nReirAxMy3=3Q$g4C;}Y492t|mhcCoXL8lJ`2T?O98D*dtV9{p)e7qa~_ zYEjc=@ngm4e)fLr-So@D_wO}qqx&TK*t1tECt%&d>afI_>_e{Ee>2RAz5wtF!n{?l ztBYunN8u~I4Ula?>N3$9m4rk4;0=bZhEi^9#W24=f<+Jq# z>tQwNt2NO;4bvpX1Jb4VRpwL07m(`AcC=1m)R?8Cr=uEnr~uY~h*?XO3I{lC{jiT4 z2qT4*P}1yJ~YB!Wj5jjDJv!i&NnEm2+sQAiPu2GDHMN8%k8Hc7L(@M+e_8pZL zwF-nz8-uyc#-qvNQ)VB6zZ4Dh^M_a!VldjtfN>9u&U#@8j>+!Re?;Oy*U%1k1TIJK z-@jaZ_x>GGjJ8^lYMdO?DMmIsjL1G1%q}R4dRp3-K{(~*gRY>a2G2%IOaBkT9Dq&U zUWlsL>8<@ZH@OfEpDDp{L*r}L4B9|M)l0UX?5u-xqTS|ZVh7}$Jo@wmQSsA{q@RMf zblvd%!zuB8Eo<;;uVjg zMUa7ycXu|=kcg$f=(I4g%t6%sliv54ZNYVJrQC+)? z0#}BbN3$AmrfFNj_wbuXiX6XY#i%hCUH<44EQQnj>-Ta;)VnX?xGc?Q0g-o0mT zTavj=E(4lEJe&RHT++)<&n+&ZdDA%qUr09KK_DM3Q@s8bo!c~x+4lDKA^{&*gBb;u zC!yCJ5PikIJPkXT*ynLjdrpQ9Q;;IRijdt~8ob{+VD{7L1++&_Xo2alLti3!Wq=3Z za33O_dPD|+$;UGbU9L~HmvjxA|KZbwaZCP+XIm%H;N~D)(!KJ@?(MGFz?Bs9%gU|#8qy)>kE2$>+#jEr8_b=bgY`uILui!kcKLM!g zueYSD&gJg(423{();15$<{1NYcS`dFMUD1Sxrk18whx!K2Bxhe?NeDEbeXb^paxY2 zqBx!thK3)IQHbIzjZcv%+39Gow7v9l9SJ#2�D>c^=Rh80UsBo-hpLBm8B=q*0Qo z1NNoqUI4IF3?h#6MOWqQL{1eOJ>Q4DABn_eVYn3U3v3fz{&8{LkNlbU9^n|nL_nsb zgoChq$zgOiGnS}_?JGvr_#mY%xC><;-5%PSL15a6qyw4oT75BLcnVoiw%eI#)3?(y zPchO(Y_wx-pvguL`~7dBEVfV30RVv-DWD?G5qT(&z!N>YhgfHK>=d&gA`SYPpigT2 zgy8xwbTx`H#q%ZY`MfG2apZUi^@janqwdw;{>|-s(Z3OoF>t19#nbD)QAiaQwzp?u zk<^H5KyEmUb~z7EEK7yIG=H!hynVL~zA&rfd*N6_uy!YUhKq||O-=)@>6zP$NHvIT zkw`+E*h}+{7%5#*l%pV*!h-3;t^a#{n;s%^bjC-)QE0s%iBED+fZ7+TShL|_aiqYK&K-49@vtQ)7aKV8Q&m55Pi78i393>5iDAs<3eprMC3 z9ztM`mHyLW*f+YuAd~MO_5o5iLP7~jBdu(HG111nWe87X*Q?P(1Sy?UqQ68QeFBP5 zV&v=uQTsL%P6^t#SS=%Sh!dPfKr(bfGHF;TNJmG7$od?S1(k0l!p}UsD^f)^m7FS$ z-U45bV^?DLN<0c*1IYgU<-z-Dx{-QTOkq=YkO`4>(~ze|E52wJWe>pRTE+^|u_{dG zG0FIHdbYi_zO}st%@L}sprw6h7nb+eU^9xf$&hS<93K(KfELB$Tlfo*w3oGz%+IZ^ zrze{k;0nNGY-$92Ku>?dA0PgjTr)Is4yU~uXRI+V*8T(n2UC+Ms<#Ou1YjD#>dp{B zKtBR7L)mz>p|8YsGLdN5i?P}zG+O_otI+j98zu{BixD1#JWm-sA&0e5?vagZ_lQd2 z)Hakt4NNZ)1cqTi5<_b`J7xwV9~F%OqY-V7*$tLqpTb|gZ@*u`O5cEl9lt;7ARkq^ z0126!l<>1X?XAt8{=iBR8uns?073-XNB?}KxBD9`_YtKNjUO&4szg;4$SD8?X_1va+6-@whk96IXt~KOz!#&& z-r3RHt%LQ&gDo_C`fe2&mR+{6R?W}MV-sEaYJTZ!@I85VZe|fH1ZIS#8Jz(>8v!L; z$=S$tvVOQ7Rc$h(gm9M=qxyP&5-^T7=SeB?eC;uVjJ`Ayu;MRz8#_k?bI(1VcZNy; zG=<^LqWef_15>`?+5ue-R?)u9Bi-yE!|XsdG;gU#cYFW!`==Z=!Lv?-k0wAD z{l@@I0}FQI+28eMp(_KSs!AC-Fc(t?T3oZaQdXZl?0;+5AmnFg4ql^bk;^7zY9(7` zQG|SAm_MOYzp+I0ulja|X4&sf7t-)G^Y7SOQg1_bB0?gKZpTUvQp;LIXwXZD_ys^yNq6K5TpYCMYM7;-8U(+$XM<2sWB}9~OG(ZJq`?F`KM+fU$ zTiemq(D1!G8EkoDe;zbF8O{^Nu=a?dzQp@@FIjjVxN*9cGn-6Nxr(#%OM|zy=pinU zkSc>Kn?F1w2!f=Z(~qYg6TuI*HwHic4fR$vg1vWe#AB#i@eoeck76D#WbpJ`8q4319^_;MK~~1}e0)o&hc7V`HLH0U*DL&+IP1Ttv7E z3m4iy8u-rQ>LMIAiT*{mUWLtWcaF6`7-f%Ax&SRi2@Ph4Eo!sp*&xOleR#@9TAD1a zMz6yzpUdJpHr9D1x>a5ys27u?W7} z+B(=ia10uYB~k&Rk~a3y@i+S$kDe2!ok07swYKuTuFh|QlD{#I<1gCir>HZDh36qj zd51lN9~hs4l88p=xg}0!12ud{Bl9s^SE;Gnjo%2c>90}rkwCyYd%|BYp8v=5|A_vD zKFEWC-2+sm@zL$ct*b!9IK-*N7jHO+9K{xRIdvN3#UDx+8JgfPs0*Jq7<2HpikKV* z25DQAutv+SBUT$=rK;;c{H15GJqwMsEL@hS51%R!(@j}v|6^y?$Q=L%=iu{HT0O+@ zzz9hRu1Yu&DcWZxy4#8nMpYkmI$wY>qwnoNie2dDiHBDGQE}yBr=apJo}8{OuCK4- z`-Q;h>T4LR71yAvDrETxeStC``pOY{^6D@9M6VFQ>J5r6XJpeH8xQB%_7b3&$Ihw- zwu8D%zDQJ3(i-DHqRlZoEH0v+eKo!GHK9T!PRL%Si#UrdW?OtBVGl?+M;B9km8?AS zSNFljD*6^NhYXT?PF68VB+=8HA{HppEM+vo8;;3Ufp9V&fNe&347LYa2Ye(UFc4O27Ih)>397}&?`odsgXn_*A#}YXT*-H13 zND15!QW#u`Tqad+(Z6=U6_3H<+}3+@T{29&45N)Ghey^P%>zZ?1-|fRI#j519__@( zgq2G%qC|k13x&r4{^ka-x!jfK2OZ=!f?iz!j2 zRD`><;|r>ye|wX9~?s^}UG#oSZ7nuthLb8lLV z`cy*vduIfivTP8PXU7bUlPBu|eWR*;d=x~Q1hm-Lm<@Vr6^4U2`qv?F$OL_*+C&>m%)Irz$JW)bSLp1+ntLiGydn|3_IT0 zVXOc=d$4u*a$Rr0^y9>f@g%51EErQWB8t?sUWLCFiZRan<*FsR$ZU9w*OtM^wgkY6 zofXsB^G6Cuk~rz3%y?stb35G%<>T4kuztW_^E`x8=n^xdWd@XE^&kX`yI^4MW8g)q z6hlEg)Ocv^shBMh#g>9ai>hH1e8oE?iGi%@zcrdWmQ_+tY7O1a@LCLSHJ!_`Cx#rpgZ&5*Hjj9hs1dot@TZadOE#!%| zOY!eFks^%Lt0w5%BrVu?AnZBt!I?pf z1+dfirX9AR3vQOb=J9uG!ADi?jW*^7^I`qQ6i+64-y`znO<`Z1RQoi;1oTDzDz3Y$ zPftvteu*(1MAo#j5rl!U5_|90Wrd^WFU+jcnDWusRl1Qef2n^p8~xs{!P3bTfKFo7 zQ~6(j0iZ;1M00}5tChpi%F{luKtiIpgD_-V4Dd)RMI;58okfjm-Rqe-lc&Mwfiq$A z!qCpHJ6hclP`a;29TqlTP3m*{xgVWg* zxwx|)O4BYjzl7xUu$`^NyEwTaMQ5K%a^fN%L9GQo#+vqi`|nF+VL}VDg|y%lFAaG7 zVQv1!+M2nV#8==+S>gPuD7oLinYoiF2L;)eBm+a=pE7v{?(4ZV`WmJ(m$_hCaG5FN zJ?@kN>H!$mT>;iUezm!VKT56DphOajJ%22?NJm8@AzOXUnA^&7lOtgB1Y3xGMjjsO zj|Z4X*d(ekPzWq^cWhwoqRtl;EZhZ&-G{SUjmY^NuA)h5`~B7-hLSVq)p>Q5_Ui4~4vBZRyo zLx>(zv^uZ|`LN4tv19ad`0ht@im41W;f(Z_y>(^Q+(TX3C=88e?3!Ij20mhAU05jn z$C(Kgu<#cu7v0A@h{skZPDd>je3^p1x=-jyk|dyW=8PSq9{r^u32*pT_^XM%fJ~21 z(C{>kQx>rTfoXUUgKfaZD;;1P99s{(CdJ8wXwMvDw8M(sZ+_aIjQeJ6h~d$Vhsgxh z6uBrv#8-TaBqb*bC(I3tP;0s@$LkDBh~@e=j=Rz=L;Y$qSPOTXS{W$>$XyHHJGr&J zKQHclF1^+Hr46iD#ug(XO~VkH;ZwCX%YYa&4ChRGMbiMmvI%C`Iyii}IK4El=^>Jn zr~c^WVgTj^XQmx>9$Z5tLG9W51IMIbpqQRo2OC7fME%lIk8bz_+C63}AVVvcxrKlh zB@ylCh(AU~u1<=uDzOv;)8^OKfY)G)2s59)ghwXOtz4Jm&GAG0!Z{<_dL@ca8 ztd$=`-)q4~M8ZtOL-dKxA;Pe&rfZ90c^aOb4&fO5i#9Z&Gg!e1ScfkG_}=l;m8Te8 z8Foi(2f~mJAp2kx6b@LF{J}Y{PY3@FSk^UZADnvgP#P@DSe-fbzw;nWJN8u(&>l41Brxa((e7lh}x12%ZP9 zJQ8OIFBezWlUaRca-CQS5Jn$g`G}(S7<4@|pNYv7IZ6wvtsEVwT(l~b$ikeu_T%~+ zMt&R~9$=-Rceph3)l7wCAC-%wcXm7nz7T=W*XF&#?Js>))O&tddx7Wj&x{erLh;x; zP&3GGwNTwd@B|plrK~;yO7Wm!VxP4W>tHPe1y6pEMuJ@{L0T}bHp&U z;mR_A8})c9k&4MUNO{n{5NR+A(W|tPwPzPk6d)m=64V2~F~FM`MT0CFQXC{f1POuy z?qgk3!7ggXO9q~uF)#%ASUQh7nV?B1tP}4BGLoz+o!NjvHJy5)-j5Cj&f$Rq!gEK} zphTF&U3btjk;Zh@S>O_SfQyU7Bml6i-bP2{ zRl)*RFI$J(7`3$SzI^!>1{2VsErM`>*E+tS`8Wz_7zE@NCXAiY0V$=H40GVgcvOHk z1&6r|m%l^DepJj8kEb-_R^e-cxS{KXp4&%7Ki^cxeayTFYM|9Ji<#tE}LS_?t*CLLn|;uPpqdrR@u`hN zQW&;S``LOncaHzt(Z)uE%eYNy-hc}#5oIsO#h(lje|7xdj(1M+L>{~(l{LYCToF+@ zze7mY1_LnAR!X!j57gmHwoWhE8DZcX;(B^=ZXZ-AC7D2jR(kyC_s<_cODB#MP+sNR z$ra06Rg4Yhw!#25SY6xSKYX)AlBvO)4dP#SaBt2m7if4u#G_sYmo@sPAn5s{X8_Ee zqAROyqocoV{B>>PZxQmSTS!hGd+w9&c5D;WJ0hphmvv^f0W?PtwU^C-kIT9On9L=E z<)ekIqHXt){u`w2a5GLI9}NJD z_SB97Rr?H)N*o%@uVUlK4PWx6BMIWIvJc_s+({r9&AgQcYz^4hHq2CMS|Y-)+ACfDbus<4>J z-#>c%9cHNH8%^rJ4M_^0C1GB05aE#UuHfGWZxnAxe^eeu; zgQuP`{o6kkZ6IdEa@+M)e28MV2Vur}NnHf8@&=|@(Z{yB(6uXxcm!c42hh5j7>Z@^ zqylCKl5Z+wMe|}55hEed^694y?LWdDqbFQxL_x$E-M-H3zs_P|2VqKNJ7jV{t~yJE zUXN;SgrWY)iRMf-bgf`w_jCp9A@y_&;24H>RfSOB??c1iUPArB+DJwb@U_efDYmr^TVU>?3sBAz03aX7 z0E?6Ldc%CenuGW64lrbBD0>UQa1s$6q;_CzLlm&nV{B-sN+um({&>iXY=u+3?ftF& z{WF2n|@!)WNDpr*2U--^5 zCr0;$!Obh+xHgPj^d?+%APKP8Z3Q=Y zWVJMg=+NDMwmG*7)uWcu^ZD{Sr{Tac$3Vp%X#?=W%xjpM(f`S^O`G6JT0)>s-PI>T zU@75-T3M^yom?Tcdgbjx?O)h(W$oYJ9iZLK0kF3(e*$0yUJ{tGuJ(Z7qT{2Z?L*8Q zg8>75G-^!YU|t^Vul|Yba^Eou;P=m7{NdRj9{nCt-tm!zTE;~hf3d1}NV;g!)bo|& zqV13_uaffPb(g;gvKP;u!}moRUff!pP)}o4gSX-g3#HK=7F&5$q7v)ZLUOQ{@ClK2 ze?r#c4~R{)(uGv9$GFsJd@j^b-f3u5un{W13}Za3JVuBEQS)ZU`3#JtdlRv#ptd;3 zzc0WSvJGdn{lB&-gl=?koHE4WDZxCLX4_PeJ{DRuR$?~kWyH9efG~~hYyn@yR^!ZhEH}jRD)r#832|z zObAT*sF6jPspYq>)$-+&-;ZT2yPvzK4250918AVEokw5gktiLzjlrA4H`15@Gw!Rq z3<)#C#^fAQ=OmpWWZuq zSYZQek8}%S!DkGd%!s|h##R4v%p)ArXuvwyMb5O7;1wV zf+rkFa8mPu_lymYLqQp2bTUg6A~{(d%qEW0Ghg}sTgFc!i(yM^f=;v0LM`#ZmBA`} zk^hC@r3}1lxkd5^Lo!==_ej+O(8?k^@?rdqx9%SJ! zMI@mU7+Hfc^?Tt3eUYnB{VVh(g+XHXTkSiTzM4I)UugJ^QNJNL&5=Rn(57g6d?CF4 zi%whpzR}>mC=g9f4cCucME`}faBMv$|TlxO!Q}q54lT(fiSct3E zH-uN|GcG2vfuB7A_H9JuJsu*w7Fq;7Wu&83$BdVof5oixjJaBvYXJUwOnx@3QZL`e zUO*Iia!^wV2&aRZY=;>n2Bn%4KfOkaIr{>2}j!(Q0Gp8rr}Q(dcR_q^5p*_(@S zVeQ9CdSSQm*P`Eye^N>tTV!FXcf=!d5j5n19QOVg%S6E$Mpn4181V~#0VQQ3@Ae!+ zVXe-c7U=;9>4PoM>>1gCgS$gl((t4DvNZgt-D&qVQr&BYzTq!!<-*+{A!keEje|Nc zr42m4I+k#_Q;1nIhfZUZLZ1rz$>FD0TCp%gL7sb_p&+|BGN#^;0y1}4q=NH>B5pm zz3{vGdg0pRueg||;jfg8!PMgrEZfP2$09|?PqX?OMSp8ca|Zuj-UuCw{UD6l6=I)gBQW7FhWr}?#xb1FD4vpp0#cW&EF!`5(34`6Usi5z;JoC!Sor&B z@eC`%Ovb=kb^sPW*98*0m|^>>W;u|zaxA1b3nCGaM3Es$eAwA?qF?hV;TSL`6EgVx z!k6Plt**1U)`(lt+x(t@ntyYw^9&7#alFp;fhx3v;d4MJ1T2Tc&!FG3)JhW9 zy|Rq2c4hsQpJd;f4)ziIhj=rqK5D=fH(TAl_;&UW-o1PK74n-W0MQMykm6V>iMXhs z__2#tcYWphSAJforSmNXZPgQ6SAD(t{E|$6jX*&oogv7Le zp@1YeIhNCf5ZD5e5KyUsMNnc~RYE$f7J#96HJekNS(2W_CykXt{SL>S&(%riVWJ)i zzDmjJ+b!jz+lTta8-I2bvQN3Mvir(6D^ELLv?uEMJIY$^Y7b$>5(O)Qs$-r)VaB;4 zZOggN(N&Ht?NnK5*tMC4X>(r~N`ngb|3Ls;gWRt)6aT92Aw$iNSz3g$sY^T$hJY6=x*L;sKYXhnGFsVq$ zQgRk@zPmqplkb$zb#d3E*G-1Kk9-G0BvfRDhdu5%86rF4p4+TS00BSJIK z*gDs?TwJmD=J}uh^881_Rxo-^POk4CzTZarpgybHbeA8H-ra#RsN0(Z+=BoN26OO@ z0@9`>Uwx&7Up(*lrY^4Z`!)Gn)2tqkavoM4tdyP3{K(18yiy@UP z6@f)hq!dAURoPcB`7^&iSk#|6?xxKcCqX(hB?2-T4BkSiHy~PYX_D~2jPS7b+C)?q z?Th{+Q8?pQ0t>%jWSWDvV`SBSFV*D#?j#T~r=?bxhH_5=KyZ!b=r#{68o=qpqb3Rw2q!}ZR+xNX=wHPT%2%n?F zSe6inIBYhyUSmxVV1)419mt3#vxAkTzFPJ3oKNZ%7e7mp_DOWkNpUOQo?jaP?j2Bt z?iupJsNxZEx*Uhv_2B{LdXP%dF<5^dAb{x`UcK7U0QQP z?Oobl9X2{;Yzkn4(tBsXJ}fV)Br8EC)Oc)h6QMnJO(&;?f`7!M)(Lg|&YhShfE&SI z0T-jTdpe5@Vl9bTM;#)V&dXYV+chA+6zuAKpZ_*@T%)?7i}$tHzb4;8izs02`U2Hw zxy0_uMCaoz%BJ>|4vgvDSV ztG!)GvDF1-`RZr5AL>F*B!U7B-=q_fizX&lx!3m97Gm%g(gg7++TgE@Qe!?3Dz>Pm z*9&vL=F;trZ)D6WBv6@2u$CR5hv9`m3~Ap-CX92B{+Tk`ZeQs zKsTTj-i`za@t2mf+Q7rnX7=y%8GDQ6Qkn@dzB0)nHvTQn^E~{-@g+Bm?Rbz z%;cDgMHnul(?FUM6CxwMq45!8pj;__x$TdYete6Uj=br4+wGKHt{+iV?v*p-=jIZ# z^$=c0CRGxw{e{RX!V!p)Ae#&k$XdWm;?dvS#^!{6&6+FMyJRL13sxrkc?_zX7*LV&mT4`%wa_xYjrw!Cu2!)Q2eFx{IC4D ze5T94a^BQLT^&DjrQ>z_YRbeZlzKuFerVw0MhBV#ZH#I}#gF0)Z!zy4%8_AA+b<6e zeqy>F`j_w*^alGoThKX6r%pWA#1-qra^-()-NEV=3JbOXk$6gsVL_R~5}etkL<^fy z)j?4`e-1C-MRn&t|H!#xtu>AB^76U(^-C*{U_Hlb0kGS|sSX%3$}h$}%pB~m|HTQ@ z({9*Si2-}Ws8%C<-m)m3ZtGvBgK2fa8(6EZ73UYPctup}(e^f0koCoi^snC17U+7* z%MPR&<0ycM6bisJQ5aWp(^7+s+N-}_;;`|Bey(~iZZ}LJORiZ=6GYpCsWU(Yx?f@A zHZI=E&mVFH#HAK5Dj=TX(kV9`n+B#3i?@j;Bt?wgADC-_*ia@x<6GoTpSd^)MxG(^ zPiMaL0;f0-t8h2#S`cv-H9*) zOqwYC19b{Xwjwf7!Dd>(D;W&$12FY3G<#S~&k!#WSA7#{r5A}ZMpCfeaj$o!map8{ z^%@wj`S^iX&hwx8c}x&1BYOr6FeR;xJd{GHxdc+ zd&lS_4X|~l3h)*B8W+7T&9xQvhF|b`8I7lJ0oYGl?*{0A089Z{0jvT#1a^hUKUR;I zPkxcwE|>7?e%V^}RfQHeN*|pZK~#laAi|)bsRcZabR?CJ@n?%TzM*xAJmIGHrFtL! zqKEhe-jR&FfaO(4tE;GWK;ADsP0YpXtUXrz@o=^hLL= z5KmQ{PX<m4g+Vm80p{cqp*ytTIbk}%lK}D#rVgKyMDsTUvh#CN18hPb#ZPm55N{l zR7nJ(Ls#u6zO5WFB$^Ok;jaw{>;MJdiCApX(x@^0oEPpgzOOuAsgTQi+1Ye zSHHcd1G)9?-3I+x7Eq3GG*LkEoG7Uo#5b0YR}cQhzkj|!V?l}`ie8Q`ZD7XmC#j15 zQBk%6F20A>*g)Q|9+EK$D6~;@v99vhR4jfWixH(WA;{3f0F`e>8OA(uA9#IkJOxAg z^`QZ5uT1JN9O<8ShnIkM{T_b_gsxoh@}bQ04!G9V2BueFSQ^>zr==bmg0j>-UQ-~G?-@&ahe^s578-R1A2-VN{;V&2G`i|ATU#Nl|`j`KP z4Z}boq%`w+04+mw%mstf9Z4;`uG9XdI?a_zQ9oMXk8Y%4F-h?BMEN{DlfE!|NuuPD zqc{+VKhIVUSwv`OPL- zeha3Ddqhlgd9HoE66-Y=YO!8bf7VY){aLU7;O9rqb@3QNd3TO>Hjfqn*gPqUNCJs- z5haY9UmhG_OU;XshjVk}1t$t@W56hC+=c8Ud8PBnNjjYF{+`g(*@5wDAmKz}Et%njbT3>y88#0U1YR;WJj< zZ}*AHZ<7qnt4d?xF1qp;iumbY3;N3YN89ndx<0zwl z1MCy_tNDAfF_@#zsY$~;^%;S|BW&WhvV80*IWOAftN+}u`kXV%o3EHGnd$hxB7-3K zGP}=RnhfPjGk&ZA0_-CvbX(l9*9&uf%}36|rg9lfGv;kjv!|~pbzxDJwF<^~FNRhn zf{2TFWC|=~BUbwbsmn$BTDWg`A^%MRz_3ab6$~W|*?4ZoM@}LmK^Td^2*p3;gT+xc zl`>XW*T+l$zh!HwvMZE%Q$21brwkg{ZQ!LD3_R6K0=)>9APYX}P6y<|BFiq(G_290 z8I$IX&cz#Uw1(j)-QCsWRktQ*NU*cG__fnPW+^2FV(HIXAas&3#BMCtCtdtgcX}1u z4Cn%4gg#ep|FD;_IfUV8=c@XTYW%Vn$WlbcIMD)Y*eB>e5}>0^;*Qa)S|ud1J8Jnr z4e_XXH5xwPLPiQOR*ZVhFd%7FBkKZOb=HN zx%QiJuuBiCJwY$wrR~b`f78RK`2hKIdzv_}{*QHZqgR=!^%^=rePJWK3G{ z1m=qM3;xoYW7LF#65Zb69ntZ@7<6WelP<_oEJk-voDMjPDh72aEcsQi#Ycl)WCOR- zs0)V;JF*oT0@FgG?3cSF``Fdx(wa*@uI`!NoXFvoJUrZ>%jG7%{3|W<2Mj&Fam|M{?Xbz&r9G$5Wdp+mDn}0-b1%C0Q@|J~Z%<~?b&%`gd?zlW2b1AfD zyye0d@;u?5)RVQyWJMb51X#NsX+jg58S|I|UAIqMIL&|ZYt?Mmjy};O0%`DN4 zu*}FIWpUrTZ6;$P`7#BvkePhpT4`Bvg^O<5CF@L)Qf9|rzABASL^YfP{-*2y@(18!O+rxi=+%&TXq@~f%#)%D zMlp^V!58Bf@32-Bv8wY(L=H|Okd`FU;7jkL-K@{dN}LR4aqP)HWzSLN&uw4#KO z>x6944nMrr?BVTZ8hCp+uTEkfam?EJIQ1)aP=n@!H&xXSrkC-NW_kV3EE~&AVB%@^ zf5fhZ>GUphO{u+SiaHw0#YS6MR;zzJKfkm_2IqT|cgvuT4>sgQ;C#3}gQbhRe()Z~ zJDn0F=2U)jGbmurX*Rj60B3{~G>Z*NYwyo8;fw@EbudXx5Q*_M!delKk{N%@t$^|syM3$^q-VM(fh_V*yoDL1=cYX92#u*k5>$9m3W3L7fOEdmd30^D!Gg6uYE7aXCLPMxwiRJ zR`dp>JDPk%np^Uy?rVzBcB+7!x0KcLWO;#LimB;G)9}|4ZW%N*a`)hgQHuLM#=coOhS7m6r8YiXYvc3Z_~rCXCPtiM7Q6k|`vcPFFoM?Cqv`nthNdk%m?u|x z>=9)x^O2b_`W_E%gz@=9|AD9F#>_GxBx{;-)Q62?# zh7ZMnaqNe#QPnqlkTTcHGd~7h7y5(e4rJGs#T{G>DWn>rcAcC;8;rPkRmo}qrgYRW zfdveR;a-rxj8-kl$yL6{PR_U?^z<3}iS0Y^Ri%GL2NP!+zaX&UA&O*deu1MK$yoRc z8e{O7HhnTntMXwBq(DRSsG_yRF2+-l^5(5>rYds(avPlQ<~Mh(w|`LDUOwd7uQ&Uz z2{Lq6jOlfZsj!&I3a6$Kk;K0^re_9ao?lokfSH;#!B>+#GvhhTr!MZb6JJ|#fd{T_ z`|yhMmaq3=+BIg4T*4tAc-@_xT26{apamY7y3VxCWoHUk3jfmo>Z& zF@!O`uRJU54>VF;Hy_w+MX;2*%pmcy;upOi?f>O45GYL&fDF8* zuxqN2@xlPB=0lo6aD6=z`4?Syyz|HJZoHdcmN&TBV?)(ISDDjHhZd2K7`OKD88czv z`JlItU$kt!B$sTLOZQiup{9`QC#-LcaVGQ2r{>5<|C*ayXYM4j;t`pqBarD_PwB$x zA0ilyxtXeEc(ykhrT|p>H9Z1dq^f;-$sR!kM<{|Uen06xARM(i%pFS_NY0eQYz?el zLsT7iv&*Q}z6-8`DJ9|`1GWlh3P|`1&WiaShzTuU=wHQ5kBb}it4K!RB!P91n^Ee0 zhq(x#2*ePQq?Egb9)|N9ISEGTNs7-Z2$rvP^d0 z)7+WE_^DmhrD~OPxL&P7Z3i|GM1E5X?gKCaS=Y#Iy0wo#8wPucQyV$Scrdz)^SYBk z*7_Fj>ws&{Jl;2*DaHB7TR{moWQLim`_&M-y58T&{vwAD*ArJra%;pilWsUUm(xxy zOH~4las>#t&_cgK$mH~ zuolS8wiZ^nSA-I>06l|srrxCP3!}X%BW&gAC=B({d~yQephOe0<2o+89Id{__Jz}0 z_3MC%51jQt8ry%%2Pt#FnK|i6C2fMH#U;{97B%F;C4SM@()6SN_~=pRR3l=FlYo&- zYKNrepJQ%ktaawWM}|*PAxs1A`Ls8ye~s@l_$XIWqE`JPy-jyy)HSL1c<9fl z#XP|%U@Jtodm^*xdPd-riG5I@7YMc@MW_U)VD=IUMJX&^AhBh>Lc&-17Ke~)_?lnw zJ)+)gSp{MDrkXLYYWosk$j4UE??qOO5_eSd;Vp61;-dwW`*j*1H>uD_Nt*T2sD zGQ=I+ycEfX%AAFJ&!;g-=5Jzf5ux0`9C&FHW^N-!40JKvR}sSfZvDWX(~xJd;B_Lr z@=)(mz3Bs<710=-*g^i$=XAQ#GW6j!NgPx8E1N1!SRPhdq5wcJ3%-q zA64P`l)t*YANc>H8h)107vQ2JN#IwRxFbTc)efi}02z4Ym+BUOm0dNeJ?IL7eg11G z4Eh3em{fnQ90 zO-$clYx|dj3x=rG?CN^waJxYp%syHynY?GE5L~DzWsWtFNsX95c5Z&KF-U0lj{|0k z__8FfFE?E2QJkuJ8dHTvP0L;J$^kV(*FhY!xCk|B+jlDwX3Gzv^&}_6hSjTy z!3N>m0*z+CMxjZXNv+FGTJFVG&?UHxp9r#e6Lv~S?f00e7PL)3V%qMT#^>nOmcM+# zWxS*73osTj2C?zZ0;IrF&{ecCMW=k$gTi{VsQFBWtD(Xy(~;};k3~&|oZ~(ZEds41 zd!jST4VHPk6QIbX1KBf{ceP7SqH)m$-w2^@yUDv-9!_gcfQ<;Ba@W|BU+k@?GejSx#vvVb5t{iy%CvuJZIS15uj~iBvw{Z&;ky%fA<_e;@ zyt&+MEtPRvZ7dVo?Z^S9;SgYxIpZ!iD9&^KT>0zlr0qLefA%q#r}`i5s|2nT5w7P> zUJ5c&0n2Z%Og%|t{ZXG*>tX)rGT>8tJm=&mNEJq#>QsfHP_#&!pq}q<&8j*cd8v94 z8NI;Z4(<0q3~V_$jKPJid+9#{Eq#!Q(+P_KG7%P771M+O%TEEOo4bjLf^{fjkQX3h z0){RVb|CS%Tn~$|!P>byZ;+Yru!_r6C&XQ#cXE>~J{%op{=?G2uGNFX+-&eZLFe2u zEupLobtT*^XB@XAm5G09C^V=PtR#Bc^X$6cM;6ZT>J0PFm0jraXU$C*tpbK9Oxo|_ zp%qHYQ8yjygtJsb?i_-Hj8u{2hPnWLYr-BciF4jnS(kWRcf$e zOT$cAXniV-bCz?aSlWmXMePY< zC-gJk#n-Z(N46s#h1YW4L{>em~e`4 zq&KN(1Wi&H1`E583>MMgIziq;N_X6UQXVeu&8Mq99KNzuPTRdRW(s7V&hcmk3kMou zPgGRaE+u33^NA!Zg}b)WQ2Gns+o!4)?XQYY7NSmj*?!(;^fovRu2 zbQPeIsMql(L>a;9ABpAm=!@X<>>*XPXQw*gY{+$0>rvk?HfnLuGuvX8%zwJbi?+H;-HHm2(xYib=;)qf00R!I>3A z;a=GWtx;FWN-sfAF*l8v1ORO6tJ8Owex5V!I1Y?$96%tDcPsiH4B5qy)L=-I2`a%= z%=Y;a+e9=l016`G9a8^lw;?YTFzG6<5SQ2jPipw0OObesxAG^FvY&2qfE!->2^enW`}9(&^#mWvQdBb9BmPGEU)XL5muy6Q$RdlouF z)|73m1RiZVxmT77QVBG@w26}2BUU^ntXw34t=vQqt=j1gM6OjM!}vKGy{YiUk&3Q7 zr5s5G9rqy%ZjG}97<}KHMb?opjC#W6?#ME0kID+k>lBjq{L@<;l-N5&=AA%P$)n=_ zj6dMgK#QIHNBt;DSb#=~!Wv>o%bLBAjZwtHVS+0YZ{vkz($IDduS8D3TQZmY6^wx- zA;xk?_EPO~5oUblCq77G4SxlH;g95J4^@g>tBbJ8YnWrF>B zxO<#iMaQqcN~t(!5iqF_7)=`s>g&kF!Dj!7sL zRldZlDkNFwfJa}>>coeGAEC$4*A($Nzzh4mBRejbzDl<-K5kSnmisVRMPjI7(ih_K z769X|eQSb1FnmRyH=PdN(0sDyw<&aM)NJgbXIX!~opNhXTAzx*GtOj??cFQi{rGOLf1E*FxpBq4Ie7TUq$#Rq|(!V};v4eU-pQMI ziJ{7RcG7|z7(s~n;!ig>+I`i9 zWTj$~*c={kAyxoJ?~%EM79tiSAmy#VD)gm(FNujP*ei<)n2Z*1@eZg^@k3`!Le!4^ zbvS{2zs3BL1nCb)O=fDWn4dvyE$#qBW4u6?0*Lksu;89ohOdaWK9#o6fSEl$Dk<)B z!!x2S^Q3aGR66a#I(C%*^(R@&eHvS>6=GvCfmIEhUFonim{rR+_+byfnpN+58n|e~ z)gjr}hI4k9l7+pX14~`f{$~uBG zSW@74k)>79s3U%<=!k0%M+_o+k5c!#ODwc18As7sRsQ}jR7>Y$n6ecl{mWyzEWqpLRk+R19#ii-?ed6stS=amFK4wy{Oyo)_kCg+bBotOd{=63ja` z7_(CaN|h)Q(9a(F0?C!nwun>dA98fOD5z|Kj9`Qa5_9rM@-6rMQ1H3hy;dQ1}s zK#czCsT%QY8Baq|5*)#|4(dH9;izIRdtr(%aedTi4q#sbIE-n+HZPkCzsD_7uf4doPs`{IU4 zDNnI1t=E+{L1!JVh=liO?m{Ob0=}SDzjG;NpKUx2vOEioEKNgbDr+3!u_Q)8zvX^- zUul_mUHbt|&L92HHaD5Y4kBNKNJJv+6lN1y812JznCA|dHw*?8irO^>nowh{pvyJ3I`U^1JOJ&LeQeDu-7>cB3I_El` z{|)mMk5puGJcATL#@XpwjOhI5x?-!>ht_8qKY7|I=86$E{ygNEgQOEjaO^Fgpvoa~ zGXBYP5$D0tJ|BV!ly9OXb9EgixPl=%s+Q9udD;DVw-5!E+B7K25nJo-CR-U1n5I7M zdpTSfK*qvpreM#_zKS;VC~)`*$-z_emf09-3I$fX)#|-UZ3#Da-|V8xNhfm2C zk9NDg)-1lW+$0@JKnd=G7P_Gv8HNyLs`k+S=;T;!i;B=X!yC@2W_N;Wq;8{}fn}J> zmZ33heOn1o0L-+h8&K0`0dB81U)V^MqF7a`fTn) zVv@@4algy-u3m#>v^i^wvfbH!Rbu!K{qRwCpj10L4rudmC#){Aj?B) zIFvmBQFT1egE#J&$UL`H6Aj!ure>&MJcd-MUji#*aAEu zt#c8n4#s*=1d{F}5|NSVN-7)+hY7b% zxtvX9!_eOcB1L4eQKJ&)RQcXT##vtO2Xf)MuH+2(e{x38srlecJ(`A;x-{W%SiM7q zBR`4}gAH8D5=9X6fUV^8QjO^06rj)c<)Td_1*_Cydo89**EGMdvOp$5CcN&^t*3UW zRhwTOH$dZ-?9Q8?1f=>8UrAf+$g2R2QnMl8g2D7a#tR9QUAe$j0crCCV2+A~WNL6m(!qOBi?LCy~^oZ^99&A>YVDgpn~{;O3mwC`jxPx(K)fTuf@}so)|dFT1mUlgZ^Fm=k-Rx;4Zq!Z4eI^~WK`!WXFPvr4=&(FOv-%5bSH3%4V^nQiaraECp9LfSwvX(fo2L2WQD=I z3`LykJZUc&5$``OZ>m!^+-sRdslpo)G0%|D5?f-&Op46-;8(7#>5ETo6w&fs3)w~W z0-wPb=T{5E`$(*g67LS+35OLp`Qr|>=7&%MW5syTJWB!3Fu|A z3WDqPc?65>p*cr#7d*jPX*Al|3dfKz>Vq-tL&UDwI;25{sW^Z!Vm4jo4V=1GI?ORa~l0IlZq#qq8AC3Tr#;4|K#DI}ZDLr&XX4@1|?5q!?jo>WW zxsXLW!&e6R0DbBUI3Rt6ki-A&#$d4!-2iWsg41wJfrvScGAjHmF;{4bVkyRdZk0cZ z3ocl8W+SRBAlnzX-v!iF(PCPM&0ZUab6&8RY*l{5nsBexB}9N>LaO)NBL^vY!H@D0 zO{|NM476BZzWB*5?34>)li;Xwfr425M9trZrGlxdBN-MGU9!|2@Fax+J!#D)wh30> zzr(z@w7J&%`}ZF}WYAXl3oWcHNJxwh2)Z;r6^>#Lf8pP>m1s|Bt3%yGM{29w7+YCI zi8+N72B5-ZuHy^*=O@+4<4QI6kfKe$v;bgNIt*HUXRS7}5K4(W`bP)NiP)@S{N{%{u`7$OyH z%4IMZ{S@$X1}E;K>$3_^B&fwxLEFm0QL(snsfGm+M0vdfSZbn0yn~{c(lJC!n*c>o z{JA9FAtIKFP}%7AnhSjr2imkkk{y`7))oO-r5Mu~WNlh83 zCe?2LpE(0(2^Zp5q-2`FqHPt)SiN(M01T|atiSj%)57v*L(`a&lydO5s9Aui`~Xpq zmXH!%O3l!g?A7`$E$@B`Oc%HC59$IhnCmltNoH(mn1Q;9rt9U<#=saaSV)1YwnDZP zh|K2+t&9S)k*=V>fD@F$Z_W(Z1fHw1uZ9ctRi7Q|cQgWcGzC9+s+cEKNI(ga7|*?# zV(p>>2%!b~_+$ciG&V#P=%6O?vcm^Pszup?gW#HoxHKQCm)->X6Mn%`i`!6fNfA2q z69BfvgaIvhY}0?G(G!`)ZA(fpp_@1x%}8tm<%Y8p>L*^(-JxE%GuxOxuyA7YP?p6o z#eu9+OgoV?7X+YF{n2I{2KE5a=_gf2t*|pSj-KCb03dNE2z5DA)q$b!zzQle6mUvs zbYQ|;c31OqS77$Q@0^f(t)z1-U_53NEtuk%_7q^V1Yt2I@j&)6Ju)!iPlN?CzXewR zTz-YEibm!>GM4*@B-RF0&0Atgl%a?HTE)Hs89r}>WDusjY;`bVv}Vy0L`;CAoet^fJRw~QHzG)6B)<;H1`m} zph7NuA$CB6z(kFk0E`eP8*M%z(Lp7m7{vA<8mU~+ z?W$&Fp(7d7fmi9YfLLsl*gt@rr{WSch^1(F!L!}&1acJAiY!X0T;)XF+0k)I?eo`Y zOid`XCT2R=)1@@5rGnOGt1e8Bh0}2?4M_f9)61w>0x0Z)w!aS?>s8(9S93VFLGnOQ zbTWpw+E^6W)CEr{M+tR^nVs**PS@}bzu9XPDe7-Pj9w&XDiSgm(aOqeAv6|Hd08r7 zFSiS)Nq%35>9@__qHg)(Yv`;gn*o`;yFTa>VhYWGEDFESfuv}6qYjgo0`!4DhZjj< zD(Ea2#dbK5`;sIACOEkX;n36+WrDIL!+xV-g9sxq)UrcKAV$js=|Hs8;dJm62(_V$ zNaI~YB@bdB29SFC=p&sz5?N~+#tU`@e;u5e%4w$I#i{`~+I=jn%t}b4Quh@zr-Cw! zra*#6fI`qMrEIxiesfXE?~|=w#d&DuR~l`(h}u0Qg$@8eG5=`?!DJv7cL?2qTEa-U zPtFONp&)rzdB~d1@)>5EMvLyh6@m2U*+3`)L)wq8+0&+6Mh0MS=9>#*Xr>9FsJE8z zLw2^@o`-K-i#sn+gQG$;-Yc!|dB+eCRA?Z4R6#XVIrfE6XqWq9&!Tw&vLYVCU?qNn zi&+}V(&7N^VeGBs?~)^cB=}Nd00o%Dl_s!C8_O@CbmyO;HkB}J6s%K*reEpz@R?B* zSwID&y7@|!E6}?2SwdX};2n^s34?GksS3aZlC_u>uBDLeN1p5 z_0lfDbD<4$wZe#Jy+$8KY>wzx0B8&7wIv#FA#H$*lB3X zVhO|P$aWp#vS6C~Y+)m+KRalgLhAQv$~yZiQ0KAWV(61yj9Mp@9apn^fG{`+CKX5` zlr=s#wl)5afL2kd;1sc}VM1(x$ef>`h`qpGZot!lgNno0rd`2*{(O)GPK8z(j3War zA;q6FBrA~xm>o!2FW3cKL9eH$Z6PmAVD-y>WBwI@1#-$w;|-OWE%{AitFg#lVX#;$ zqSdQ&@jxOQB|5+JYGR%69mZ7F;3Yz2&T|5@(p;<@~GgL(P1vUiO2LJ`UJaZu%+W0f4h1h zjsQw5Aec}SUYsS6gdPd2ysndMiX4$ovygJ3GBm))$0O$4U4cr#26xr&&N^{H^mT** z4PR7uis9+`)f>{lT`oYE+C8~tQi!RUq`rU*IHB!9sPC@zhImCVRI4}+_{d-AT}DZB z9M=fK>?P-Wc`IIUdz_*-@1D%Ar2I9Oi69H;2qZu6{Fa6nY`{uX@yAE>eAvuS)`hxw zyHEXt48h@lL}l}i1SX@gDnHp<1>! zL?QxLh;b6Di+gAyGPG)TMiZu&9QSE-It0`hh@xUpxv6R$)YU{ zQiaD(o_I~PmEF+-+zc>a#xA)#xIB>JR%uy}Z*X1rWRY|zm1yMYIksW>Dii`g$;ZV4 z`Dv@OgVyux$!T~nxcoiuTi`_T?_%r}S=pUKDt_?-6<8)U03m zs|>4^y2Tm^&fQrGjGx{ua)ZC&27z{FdEMKCP2z{0`0YL$f5@k%0!f9Z_#BHX!PilY&< z!}G@8z|0+6;Jaw)<%Ax=nRF)>l$CSQmGSJnPjNyZg1!I=QG5AP;fWuvp;^pqq7$y+a2!1l6ndHtWyw~CIW1RbvyYA^Ytme&yVxwP z>|MGXBibFz4I^$@Hv!&W4OP9m4(tR&NMt&t@EH9PQDQ5q0dz-Hgnc-QP0LfN(u7=; zA_9Iz6sVXjO1gM)lj75iNzxhza2Qp<1`CNQdga-Pk9 zwODFjydx!*#jNHOWgke;tC!9KoVb9{172!jz5=8|P6|ePjIfov$W}oYh^lbcLICoW zrVr}EGl5vJh75IUaU)UfSoftJWP}|6Dm9p)>1h;J`>TAq8^{nAa0d_)a7^W<5+pvY zV%}*FJx+Rs`g?5bVyvR)Ab;)R^R!!zj*AlJUR-PfLEO=1#>wx~M!<;b1U@Z9C~)D5 zI2C9uFtqy$^8_&C^g@bKh(v&i`emtXJ0L3wS^KJX6i1;pWgHq?iHPwzz`lxYM3wqf z5v(R)OGgK=#o4pqnqo;+B2udI%dF8vPqB5_`=iks zghO!>pR4F`fPc!ah1Ev?FVSs(sYp~&M^>FvEt_=vNB+a zz+~ru2xA!F5_D}y0v4dv0}?nYGS>aF0&ErGYIdm1b?WMD1$+MagLf!J^}am>GOZ!4 z2tf?7#mfh1&2$S1*Z?*Fr-Ri?kz{9ps{jy`q@m4IvC>H6#e{|GXvws7LU?I22~&$L zm-Sp8Rmead@<*C7KSMni72PB429Ty7dl?wXNU_&l2y>+ zJLeY};vzr%$O%|i`-6g_-oH{7^e!}4<0e>yomMc?o%}0yd>$3ArM_o*JRv1wtzgmz z$$RzU`)|RLKO;G#jR7V9$}VYj5EaQ7WVw4tjCBA^g$*RYQs9Djmd~ksie)>qw#e0- z$2a<);)k7eXtwU~MUHY$w?KUA^}!pnZ^8An@5r!545C`a*!A%JzAB&_7gSAKjG>3Tt%yuc60j?wdZ029i;GQP|JGFn2x!Z zHP8KL($&Nt;g$TekiKsDohIK~o}v4I3tX!18m%;!k*j*XjC}fK=W&Z1c5M zb5qDayFHmzW64?4-1<&yLkG3%t6GT`f8(^$8T8AOnmiiO7*i>bRj}*OAtDc5`_9;I zeK_=tDY>cQ7FGG?f?Z);ipjD|w^F{4a$^1HmzQtY*zW$bjU+`AFD0J--oM9(Ir=-T zPM~u{)BBVszGe=EFN{p022MGzcZb^H`D9@3VIP$=I(ZKm5o4`~Nsz@aj|l z*wnw=`lSM&nK+0FDWbqoT(y4h&J6)~T$vPjdT{SJ^LQ3uJS==6iAO8-avY zRx-zotKW&S+cB<|E9p{teU1n`9p@_l>b%{%dN9ixPMT~V4ntYN16E~vkA zjIzKcz%lID^qLRI&l&|NS`|MDi zuoh}{yy;LO4a#>e8y^;4U0F9+N~3j)!s0f`g}z!|&M-}(4uV}EsywjVKe;g^UnKoH z53jjwWS;)cq?mj1Lx9nNqUAHRF|@Yjd;-(P;%%-=wnH+F#r9SdfHrmuq#F`-0j zfSAJXma&7tUEm_nJD?N*&f=TF(1ss=9bWxBfsB5_8eu`Ce6lvggjMV*l{QU*Dlr-Q z!o}yTH)BM*H(i>@wdi~3+IrlLYe-Rwi6so53h8vj+4gY4fI-H2l~}S)YgoV@Mrtg6 z@NY0Qb@;5B&Yn<(*sFRDsgoVQjksH79U~=s`P*YGXVeulkVxN#<*Rck?7of+5W5x> zQB@aJH-MD4`}~teq_)Xv!etprjnv!N&E>*;s?shgTYmt}Ugwo^5qf369h0uq)UZeECJ(a<+wv?tbSYmW?mgj#$MiA$cKy z!9G(s+3HC#-G`q`<{eyVT4T)%^nwi|`S_vJ6zgvPLP#Km)sjJzrbSp&7y?lc8?&eO zG1WK|Kb7l-vEen7st5lTcd8^{6*^9qiUr$6QI*0h>MVQW1M3-bE8#liCtzKIB9P5fMhCElSnwrgd0Md)7Fo(8T4)+$Wel$hKqsIq zR1rk0Ra5|5KH`dU%7&Mq&$^uMJZ#Yhs(A;!35 z4GQPwC1rz(;{^DF(r}VIv)cJ|O547oeBFr2b0d2MLfzP9ZoQm*DA=4nOK zFWGOC5_w>+zhbUYWq7%8)M#?kvI(hE>7OzAg2i#b&TTsJ_WdXuX|XqSx);ncl-BbM zTlcKfP=L#k`fOb8zBk$d88#mgG!%2XZz#;D@Ce5Q@!3-kai&? zsY*6fJW8Qq@%XxyBW>E7{8j%{@mcfBKDgl>D%xqp@ECpjmyf!D`p25lo%vJPn%`BR zqd9^dXRgMVl6%!8Tq<@I%3{wAyrgPv)!vpdbw?;CFVd!57ivisO1!=LRj(AQ>p^qp zSwvLj&NrycYMx=G>3aoAgkgkh_o!EYYWRG2qiJddr^{j{V;e(e40}(kY{?orR#4)( zLOJ+`)qXDJ`0WR@B&}MLzABvGdL3EQt8mM8vSt^l4rbm{zvrGQGIUmlH?<$@uPB3O1aS zP1asKp7ltoJpHwjW#8nOqWbM zvf{^YFLO<0O=(=qbZZ>_bouFT3I>ee8AnaI{b_lNxHm$vUnfcpALn2-HzB=n)b)hQ zB+T5-Sqe2{C)e6r96p<6 zosPX($&edhqbrq((>eCbnUe9|J*MXT%AD*tWaw9T4QdmS`cdg<>RM3C~lrDZ%y$`TF052m2!1++8m|;TOWr^q{w>(j{3T73G#&^ zGEb`lO{q0|rLrm4Xk5IdF-62~IOO}f~A1JZGLWzWC~N72^#SsA|6N)1p25nNeH zZ9rnPKMqvULMUco_h64e0zL z-n-_xQY%~B@$pdCe5?*rL~m+^YQ#s>3@K4y*&clhf#psJ#;EK_iIqxCf5Jm=%12bv zg33JgCl1!y@^KEasHlra;ruTL$Q3I$1RvFkt>I<*q~M5|7bm_C&%h*7!)YaF%+BQzQvzrWGP*BpG3oxO}l*a)w?i zx8lP}waX4(oGGXCPx&E7q$=?v4)l`p0Y-xGLdz`jmc|K_gf) zGMiePT?CB+8N%c&G^AJ#4ka$l;6SG6^5m{c;xvaVor$K)2m-2xepW-O%(6pj2auCG zCP!DbDNnp+5G(reQ?u`{IbZ2faK*#mEWIChvWhhVr&#&B-EeK^9S#WUDMn7j^tE5tcDqJtOY#e|a&r zn&dzXKv~LW9!hC5(rokO_557@cuR)dSG`~zer#g?*%Ggtd(?<2I8m6(a7wre&rpIy zUcPxM)dXu36+wm);pZQb1cuP!mNn8Y+LcxU^*}TH=x?X2XH4PA^}nRkeYL3LLr#KC(c&VWyf(- zt=MXJTAc8NN1m7M5u$rO@17z?hV$}u@+m|-q+gt_N#VuGjif6&YBXejwCs!z``B5h$MmElDH`y9R!{w9htZY|}u5xyoD2A(?rm0u@#8KBoqzQD) zq$|q&ezTNKY&9(}>Eu*@*0c(fv{gK$G&szqzq|DXrRUu*T9jIzlFkSv#sWYOe2h4?L_T zTM5-9Zu>ZcgXL)0Jyfx8K{FkJCuGg4Hsv+%|EO5xDwi|w_?JkLtJEstnx7UnErDhp;fmP@*j6+jTq=?G?XKpGr_8IwVdx;1g-hsW z;BJ=jBC}(Dg9(nV=yo<_=7`w6)G)kag}o+V+kq~vst&#S#kT4DaRy5I#aHW+WrNGy zI4igsdwhO<_XFi3P3ICMs{Z1QrGU$1iX}?ZtjXA@lsB0*Wm6h>rVu~F%o)m~1y-2A`+2k06V#NOuX^V(`^a`he);iHoN zuhB)4tU+0NNeSFZN}VF9?3I6}WJ0tgE7LE%bB@fM#6-uZDM2kl~zS(Kl>*4RE|z-dDXWo9K&I|e*TZ`e?;#^ z?tu%BQ~OQ4+`F1=%_pN)2>Y!e08PvPDk~k^ghl@*Jbgye>*4!{R-~MFWVKGlZmAbo zlFLe|{Ht%<<_eVf7Q77PVGK$qciXO%PuXsWjmR68*B(zZns;5{yw%+aZvuXgvsW`?;n)lUi z>4A32D|}Ui$Zd(Gt+#|L@>Zbi-c`Qf8kgVr=*16UN(lTHNB@-&QA_+bXPDht1J22` XyRW6}l|AgWgi~OJh-azJNa+6o;FcWO diff --git a/utils/wxPython/distrib/wxPython.rsp b/utils/wxPython/distrib/wxPython.rsp deleted file mode 100644 index 3ae03f0bda..0000000000 --- a/utils/wxPython/distrib/wxPython.rsp +++ /dev/null @@ -1,44 +0,0 @@ -wxPython/*.txt - -wxPython/demo/*.py -wxPython/demo/bitmaps/*.bmp -wxPython/demo/bitmaps/*.ico -wxPython/demo/bitmaps/*.gif -wxPython/demo/bitmaps/*.png -wxPython/demo/bitmaps/*.jpg -wxPython/demo/README.txt - -wxPython/lib/*.py -wxPython/lib/*.txt - - -wxPython/src/*.i -wxPython/src/*.py -wxPython/src/*.cpp -wxPython/src/*.h -wxPython/src/*.ico -wxPython/src/*.def -wxPython/src/*.rc -wxPython/src/makefile.* -wxPython/src/Makefile.pre.in -wxPython/src/Setup.* - -wxPython/src/msw/*.cpp -wxPython/src/msw/*.h -wxPython/src/msw/*.py - -wxPython/src/gtk/*.cpp -wxPython/src/gtk/*.h -wxPython/src/gtk/*.py - -wxPython/src/motif/*.cpp -wxPython/src/motif/*.h -wxPython/src/motif/*.py - -wxPython/src/qt/*.cpp -wxPython/src/qt/*.h -wxPython/src/qt/*.py - -wxPython/SWIG.patches/*.patch - - diff --git a/utils/wxPython/distrib/wxPython.spec.in b/utils/wxPython/distrib/wxPython.spec.in deleted file mode 100644 index c439167674..0000000000 --- a/utils/wxPython/distrib/wxPython.spec.in +++ /dev/null @@ -1,41 +0,0 @@ -Summary: Cross platform GUI toolkit for use with the Python language. -Name: wxPython -Version: __VERSION__ -Release: 3 -Copyright: wxWindows -Group: Development/Languages/Python -Source: http://alldunn.com/wxPython/wxPython-__VERSION__.tar.gz -Packager: Robin Dunn -Vendor: Total Control Software -Requires: python >= 1.5.1 -Prefix: /usr/lib/python1.5/site-packages - -%description - -This Python package consists of an extension module that wraps around the -wxWindows C++ class library and provides a cross platform GUI toolkit for -use with Python. Currently supported platforms are Win32 and Unix/GTK/X. - -Python is an interpreted, interactive, object-oriented programming language. -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. - -#%prep -#%setup -#cd wxPython-__VERSION__ -#make -f Makefile.pre.in boot -# -#%build -#make -# -# -#%install -#make install - -%files -%doc ../README.txt -/usr/lib/python1.5/site-packages/wxPython - diff --git a/utils/wxPython/distrib/wxPython.wse b/utils/wxPython/distrib/wxPython.wse deleted file mode 100644 index cee54bf0c4..0000000000 --- a/utils/wxPython/distrib/wxPython.wse +++ /dev/null @@ -1,1397 +0,0 @@ -Document Type: WSE -item: Global - Version=6.01 - Title=wxPython 2.0 Installation - Flags=10010111 - Languages=65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - Japanese Font Name=MS Gothic - Japanese Font Size=10 - Progress Bar DLL=%_WISE_%\Progress\WIZ%_EXE_OS_TYPE_%.DLL - Start Gradient=128 128 255 - End Gradient=64 0 128 - Windows Flags=00000100000000010010110000011000 - Log Pathname=%MAINDIR%\INSTALL.LOG - Message Font=MS Sans Serif - Font Size=8 - Disk Filename=SETUP - Patch Flags=0000000000001001 - Patch Threshold=85 - Patch Memory=4000 - EXE Filename=wxPython-2.0b9.exe - FTP Cluster Size=20 - Per-User Version ID=1 - Dialogs Version=6 - Variable Name1=_SYS_ - Variable Default1=C:\WINNT\System32 - Variable Flags1=00001000 - Variable Name2=_WISE_ - Variable Default2=E:\Tools\Wise - Variable Flags2=00001000 - Variable Name3=_ODBC16_ - Variable Default3=C:\WINNT\System32 - Variable Flags3=00001000 - Variable Name4=_ODBC32_ - Variable Default4=C:\WINNT\System32 - Variable Flags4=00001000 - Variable Name5=_ALIASNAME_ - Variable Flags5=00001000 - Variable Name6=_ALIASPATH_ - Variable Flags6=00001000 - Variable Name7=_ALIASTYPE_ - Variable Flags7=00001000 -end -item: Open/Close INSTALL.LOG - Flags=00000001 -end -item: Check if File/Dir Exists - Pathname=%SYS% - Flags=10000100 -end -item: Set Variable - Variable=SYS - Value=%WIN% -end -item: End Block -end -item: Set Variable - Variable=APPTITLE - Value=wxPython 2.0 - Flags=10000000 -end -item: Set Variable - Variable=GROUP - Flags=10000000 -end -item: Set Variable - Variable=DISABLED - Value=! -end -item: Set Variable - Variable=MAINDIR - Value=wxPython - Flags=10000000 -end -item: Check Configuration - Flags=10111011 -end -item: Remark - Text= 1.5 and 1.5.1 have a CurrentVersion key -end -item: Get Registry Key Value - Variable=PYTHONVER - Key=SOFTWARE\Python\PythonCore\CurrentVersion - Default=None - Flags=00000100 -end -item: If/While Statement - Variable=PYTHONVER - Value=None -end -item: Remark - Text= Just try 1.5 since 1.5.2b2 doesn't set CurrentVersion but uses 1.5 -end -item: Set Variable - Variable=PYTHONVER - Value=1.5 -end -item: End Block -end -item: Get Registry Key Value - Variable=PYTHONDIR - Key=SOFTWARE\Python\PythonCore\%PYTHONVER%\InstallPath - Flags=00000100 -end -item: If/While Statement - Variable=PYTHONDIR - Value=None -end -item: Display Message - Title=Installation Error - Text=An existing Python installation was not found, wxPython installation can not proceed. Please download and install the Python core interpreter and library (version 1.5.1 or greater) from http://www.python.org/download/ - Flags=00001000 -end -item: Exit Installation -end -item: End Block -end -item: Set Variable - Variable=MAINDIR - Value=%PYTHONDIR% -end -item: Set Variable - Variable=EXPLORER - Value=1 -end -item: Get Registry Key Value - Variable=COMMON - Key=SOFTWARE\Microsoft\Windows\CurrentVersion - Default=C:\Program Files\Common Files - Value Name=CommonFilesDir - Flags=00000100 -end -item: Get Registry Key Value - Variable=PROGRAM_FILES - Key=SOFTWARE\Microsoft\Windows\CurrentVersion - Default=C:\Program Files - Value Name=ProgramFilesDir - Flags=00000100 -end -item: Else Statement -end -item: Set Variable - Variable=MAINDIR - Value=C:\%MAINDIR% -end -item: End Block -end -item: Set Variable - Variable=BACKUP - Value=%MAINDIR%\wxPython\BACKUP - Flags=10000000 -end -item: Set Variable - Variable=DOBACKUP - Value=B - Flags=10000000 -end -item: Set Variable - Variable=COMPONENTS - Value=A - Flags=10000000 -end -item: Set Variable - Variable=BRANDING - Value=0 -end -item: If/While Statement - Variable=BRANDING - Value=1 -end -item: Read INI Value - Variable=NAME - Pathname=%INST%\CUSTDATA.INI - Section=Registration - Item=Name -end -item: Read INI Value - Variable=COMPANY - Pathname=%INST%\CUSTDATA.INI - Section=Registration - Item=Company -end -item: If/While Statement - Variable=NAME -end -item: Set Variable - Variable=DOBRAND - Value=1 -end -item: End Block -end -item: End Block -end -item: Display Graphic - Pathname=e:\Projects\wx\utils\wxPython\distrib\wxPython.BMP - X Position=32784 - Y Position=16 - Flags=0000001010000000 -end -item: Wizard Block - Direction Variable=DIRECTION - Display Variable=DISPLAY - Bitmap Pathname=%_WISE_%\DIALOGS\TEMPLATE\WIZARD.BMP - X Position=9 - Y Position=10 - Filler Color=8421440 - Dialog=Select Program Manager Group - Dialog=Select Backup Directory - Dialog=Display Registration Information - Dialog=Get Registration Information - Variable=EXPLORER - Variable=DOBACKUP - Variable=DOBRAND - Variable=DOBRAND - Value=1 - Value=A - Value=1 - Value=1 - Compare=0 - Compare=1 - Compare=0 - Compare=1 - Flags=00000011 -end -item: Custom Dialog Set - Name=Welcome - Display Variable=DISPLAY - item: Dialog - Title=Welcome - Title French=Bienvenue - Title German=Willkommen - Title Portuguese=Bem-vindo - Title Spanish=Bienvenido - Title Italian=Benvenuto - Title Danish=Velkommen - Title Dutch=Welkom - Title Norwegian=Velkommen - Title Swedish=Välkommen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=83 8 121 33 - Action=2 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000001011 - Pathname=%_WISE_%\dialogs\template\install.grf - Pathname French=%_WISE_%\dialogs\template\install.grf - Pathname German=%_WISE_%\dialogs\template\install.grf - Pathname Portuguese=%_WISE_%\dialogs\template\install.grf - Pathname Spanish=%_WISE_%\dialogs\template\install.grf - Pathname Italian=%_WISE_%\dialogs\template\install.grf - Pathname Danish=%_WISE_%\dialogs\template\install.grf - Pathname Dutch=%_WISE_%\dialogs\template\install.grf - Pathname Norwegian=%_WISE_%\dialogs\template\install.grf - Pathname Swedish=%_WISE_%\dialogs\template\install.grf - end - item: Static - Rectangle=121 10 258 44 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=Welcome to %APPTITLE% Setup program. This program will install %APPTITLE% on your computer. - Text French=Bienvenue sur le programme d'installation %APPTITLE%. Ce programme va installer %APPTITLE% sur votre ordinateur. - Text German=Willkommen im Installationsprogramm für %APPTITLE%. Dieses Programm installiert %APPTITLE% auf Ihrem Computer. - Text Portuguese=Bem-vindo ao programa de configuração %APPTITLE%. Este programa instalará %APPTITLE% no seu computador - Text Spanish=Bienvenido al programa de Configuración %APPTITLE%. Este programa instalará %APPTITLE en su ordenador - Text Italian=Benvenuto nel programma di installazione di %APPTITLE%. Con questo programma puoi installare %APPTITLE% sul tuo computer. - Text Danish=Velkommen til %APPTITLE% installationsprogrammet. Dette program installerer %APPTITLE% på computeren. - Text Dutch=Welkom bij het %APPTITLE% installatieprogramma. Dit programma installeert %APPTITLE% op uw computer. - Text Norwegian=Velkommen til %APPTITLE% Oppsett-program. Dette programmet vil installere %APPTITLE% på datamaskinen din. - Text Swedish=Välkommen till installationsprogrammet för %APPTITLE%. Detta program installerar %APPTITLE% på din dator. - end - item: Static - Rectangle=90 45 260 175 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=It is strongly recommended that you exit all Windows programs before running this Setup Program. - Text= - Text=Click Cancel to quit Setup and close any programs you have running. Click Next to continue with the Setup program . - Text= - Text=WARNING: This program is protected by copyright law and international treaties. - Text= - Text=Unauthorized reproduction or distribution of this program, or any portion of it, may result in severe civil and criminal penalties, and will be prosecuted to the maximum extent possible under law. - Text French=Il vous est fortement recommandé de fermer tous les programmes Windows avant d'exécuter le Programme d'Installation - Text French= - Text French=Cliquez sur Annuler pour quitter l'Installation et fermez tous les programmes actuellement utilisés. Cliquez sur Suivant pour continuer l'installation - Text French= - Text French=ATTENTION : Ce programme est protégé par la loi sur les droits d'exploitation et par les traités internationaux - Text French= - Text French=Toute reproduction ou distribution, même partielle, de ce programme qui n'aura pas reçu d'autorisation préalable fera l'objet de poursuites et sera sévèrement sanctionnée par le droit civil et pénal - Text German=Wir empfehlen nachdrücklich, vor Ausführen dieses Installationsprogramms alle Windows-Programme zu beenden. - Text German= - Text German=Auf Abbrechen klicken, um die Installation zu beenden und alle laufenden Programme zu schließen. Auf Weiter klicken, um mit dem Installationsprogramm beginnen. - Text German= - Text German=WARNUNG: Dieses Programm ist urheberrechtlich sowie durch internationale Verträge geschützt. - Text German= - Text German=Die unzulässige Vervielfältigung oder Verbreitung dieses Programms, ob ganz oder auszugsweise, kann schwere zivil- und strafrechtliche Konsequenzen nach sich ziehen und wird unter voller Ausschöpfung der Rechtsmittel geahndet. - Text Portuguese=Recomenda-se insistentemente que saia de todos os programas do Windows antes de executar este Programa de Configuração. - Text Portuguese= - Text Portuguese=Faça um clique sobre Cancelar para sair da Configuração e feche todos os programas que estiver a executar. Faça um clique sobre Próximo para continuar com o programa de configuração - Text Portuguese= - Text Portuguese=AVISO: Este programa está protegido pela lei de direitos do autor e tratados internacionais - Text Portuguese= - Text Portuguese=A reprodução e a distribuição sem autorização deste programa, ou qualquer parte dele, pode dar lugar à aplicação de severas sanções civis e criminais, e serão perseguidas à extensão máxima permitida pela lei. - Text Spanish=Se recomienda encarecidamente que salga de todos los programas Windows antes de ejecutar este programa de Configuración. - Text Spanish= - Text Spanish=Haga un clic en Cancelar para abandonar la Configuración y cerrar cualquier programa que haya estado ejecutando. Haga un clic en Siguiente para continuar con el programa de Configuración. - Text Spanish= - Text Spanish=AVISO: Este programa está protegido por las leyes de derechos de autor y tratados internacionales. - Text Spanish= - Text Spanish=La reproducción o distribución no autorizadas de este programa, o cualquier parte de él, podría dar como resultado rigurosas multas civiles y penales, y se entablará la máxima acción judicial que permita la ley. - Text Italian=Ti consigliamo di uscire da tutti i programmi Windows prima di eseguire questo programma di installazione. - Text Italian= - Text Italian=Fai clic su Annulla per uscire dal programma di installazione e chiudi tutti i programmi aperti. Fai clic su Avanti per continuare con il programma di Installazione. - Text Italian= - Text Italian=AVVERTENZA: Questo programma è protetto ai sensi delle norme di legge e delle convenzioni internazionali in materia di diritti di copyright. - Text Italian= - Text Italian=La riproduzione o la distribuzione totale o parziale non autorizzata di questo programma potrà essere soggetta a penalità civili e penali, e sarà punita con la massima severità possibile a norma di legge. - Text Danish=Det anbefales kraftigt at afslutte alle Windows programmer, inden man kører dette installationsprogram. - Text Danish= - Text Danish=Klik på Annuller for at forlade installationsprogrammet og lukke alle igangværende programmer. Klik på Næste for at fortsætte med installationsprogrammet. - Text Danish= - Text Danish=ADVARSEL: Dette program er beskyttet af copyright og internationale traktater. - Text Danish= - Text Danish=Uautoriseret gengivelse eller videresalg af dette program eller dele heraf kan føre til streng civil- og/eller kriminel stra. Retsforfølgning heraf vil finde sted i det videste omfang der hjemles muligt. - Text Dutch=Het wordt aangeraden om alle Windows programma's af te sluiten voordat u met de installatie van dit programma begint. - Text Dutch= - Text Dutch=Klik op Annuleren om de installatie te verlaten en eventueel nog lopende programma's af te sluiten. Klik op Volgende om verder te gaan met het Installatieprogramma. - Text Dutch= - Text Dutch=WAARSCHUWING: dit computerprogramma is auteursrechtelijk beschermd. - Text Dutch= - Text Dutch=Onrechtmatige verveelvoudiging of distributie van dit programma of een gedeelte ervan is verboden en strafbaar en zal met alle beschikbare juridische middelen worden bestreden. - Text Norwegian=Det anbefales på det sterkeste at du avslutter alle Windows-programmer før du kjører dette Oppsett-programmet. - Text Norwegian= - Text Norwegian=Velg Avbryt for å avbryte Oppsett og lukk alle programmer som er i bruk. Velg Neste for å fortsette med Oppsett-programmet. - Text Norwegian= - Text Norwegian=ADVARSEL: Dette programmet er beskyttet i henhold til lover om opphavsrett og internasjonale konvensjoner. - Text Norwegian= - Text Norwegian=Uautorisert kopiering eller distribuering av dette programmet eller deler av det, vil resultere i alvorlig sivil og kriminell straff og vil føre til saksmål i høyest mulig utstrekning i henhold til loven. - Text Swedish=Du tillråds bestämt att gå ur alla Windows-program innan du kör installationsprogrammet. - Text Swedish= - Text Swedish=Klicka på Avbryt för att gå ur installationsprogrammet och stäng eventuella program som du har laddade. Klicka på Nästa för att fortsätta med installationen. - Text Swedish= - Text Swedish=VARNING: Detta program är skyddat av upphovsrätten och internationella avtal. - Text Swedish= - Text Swedish=Om du utan tillstånd kopierar eller distribuerar detta program eller delar av det kan det bli allvarliga civilrättsliga och brottsrättliga straffpåföljder. Vi beivrar sådana överträdelser i den allra högsta utsträckning som lagen tillåter. - end - end -end -item: Custom Dialog Set - Name=Select Destination Directory - Display Variable=DISPLAY - item: Dialog - Title=Choose Destination Location - Title French=Choisissez la localisation de destination - Title German=Zielpfad wählen - Title Portuguese=Escolher Local de Destino - Title Spanish=Elegir una localización de destino - Title Italian=Scegli Posizione di Destinazione - Title Danish=Vælg destinationsmappe - Title Dutch=Kies doellocatie - Title Norwegian=Velg målplassering - Title Swedish=Välj ställe för installationen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=89 10 260 74 - Create Flags=01010000000000000000000000000000 - Text=Setup will install %APPTITLE% in the following folder. - Text= - Text=To install into a different folder, click Browse, and select another folder. - Text= - Text=You can choose not to install %APPTITLE% by clicking Cancel to exit Setup. - Text French=%APPTITLE% va être installé dans le répertoire ci-dessous - Text French= - Text French=Pour l'installer dans un répertoire différent, cliquez sur Parcourir et sélectionnez un autre répertoire - Text French= - Text French=Vous pouvez choisir de ne pas installer %APPTITLE% en cliquant sur Annuler pour quitter l'Installation - Text German=Installation speichert %APPTITLE% im unten angegebenen Ordner: - Text German= - Text German=Zur Installation in einem anderen Ordner auf Blättern klicken und einen anderen Ordner wählen. - Text German= - Text German=Wenn Sie %APPTITLE% nicht installieren möchten, können Sie durch Klicken auf Abbrechen die Installation beenden. - Text Portuguese=Configuração instalará %APPTITLE% na seguinte pasta - Text Portuguese= - Text Portuguese=Para instalar numa pasta diferente, faça um clique sobre Procurar, e seleccione uma outra pasta. - Text Portuguese= - Text Portuguese=Pode escolher não instalar %APPTITLE% clicando no botão Cancelar para sair da Configuração - Text Spanish=El programa de Configuración instalará %APPTITLE% en la siguiente carpeta. - Text Spanish= - Text Spanish=Para instalar en una carpeta diferente, haga un clic en Visualizar, y seleccione otra carpeta. - Text Spanish= - Text Spanish=Puede elegir no instalar %APPTITLE% haciendo un clic en Cancelar para salir de Configuración. - Text Italian=Il programma di installazione installerà %APPTITLE% nella seguente cartella. - Text Italian= - Text Italian=Per effettuare l’installazione in una cartella diversa, fai clic su Sfoglia, e scegli un’altra cartella. - Text Italian= - Text Italian=Puoi scegliere di non installare %APPTITLE% facendo clic su Annulla per uscire dal programma di installazione - Text Danish=Installationsprogrammet installerer %APPTITLE% i denne mappe. - Text Danish= - Text Danish=Man installerer i en anden mappe ved at klikke på Browse og vælge en anden mappe. - Text Danish= - Text Danish=Man kan vælge ikke at installere %APPTITLE% ved at klikke på Slet og forlade installationsprogrammet. - Text Dutch=Het installatieprogramma installeert %APPTITLE% in de volgende directory. - Text Dutch= - Text Dutch=Als u het in een andere directory wilt installeren, klik dan op Bladeren en kies een andere locatie. - Text Dutch= - Text Dutch=U kunt ervoor kiezen om %APPTITLE% niet te installeren: klik op Annuleren om het installatieprogramma te verlaten. - Text Norwegian=Oppsett vil installere %APPTITLE% i følgende mappe. - Text Norwegian= - Text Norwegian=For å installere i en annen mappe, klikk Bla igjennom og velg en annen mappe. - Text Norwegian= - Text Norwegian=Du kan velge å ikke installere %APPTITLE% ved å velge Avbryt for å gå ut av Oppsett. - Text Swedish=Installationsprogrammet installerar %APPTITLE% i följande mapp. - Text Swedish= - Text Swedish=Om du vill att installationen ska göras i en annan mapp, klickar du på Bläddra och väljer en annan mapp. - Text Swedish= - Text Swedish=Du kan välja att inte installera %APPTITLE% genom att klicka på Avbryt för att lämna installationsprogrammet. - end - item: Static - Rectangle=90 134 260 162 - Action=1 - Create Flags=01010000000000000000000000000111 - Text=Destination Folder - Text French=Répertoire de destination - Text German=Zielordner - Text Portuguese=Pasta de Destino - Text Spanish=Carpeta de Destino - Text Italian=Cartella di destinazione - Text Danish=Destinationsmappe - Text Dutch=Doeldirectory - Text Norwegian=Målmappe - Text Swedish=Destinationsmapp - end - item: Push Button - Rectangle=213 143 255 157 - Variable=MAINDIR_SAVE - Value=%MAINDIR% - Destination Dialog=1 - Action=2 - Create Flags=01010000000000010000000000000000 - Text=B&rowse... - Text French=P&arcourir - Text German=B&lättern... - Text Portuguese=P&rocurar - Text Spanish=V&isualizar... - Text Italian=Sfoglia... - Text Danish=&Gennemse... - Text Dutch=B&laderen... - Text Norwegian=Bla igjennom - Text Swedish=&Bläddra - end - item: Static - Rectangle=95 146 211 157 - Destination Dialog=2 - Create Flags=01010000000000000000000000000000 - Text=%MAINDIR% - Text French=%MAINDIR% - Text German=%MAINDIR% - Text Portuguese=%MAINDIR% - Text Spanish=%MAINDIR% - Text Italian=%MAINDIR% - Text Danish=%MAINDIR% - Text Dutch=%MAINDIR% - Text Norwegian=%MAINDIR% - Text Swedish=%MAINDIR% - end - item: Static - Rectangle=94 81 138 96 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Flags=0000000000000001 - Name=MS Sans Serif - Font Style=-11 0 0 0 700 0 0 0 0 1 2 1 34 - Text=Please note: - end - item: Static - Rectangle=138 82 254 106 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=wxPython will be installed in a subdirectory of the path specfied below. - end - item: Static - Rectangle=91 74 259 113 - Action=1 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000111 - end - end - item: Dialog - Title=Select Destination Directory - Title French=Choisissez le répertoire de destination - Title German=Zielverzeichnis wählen - Title Portuguese=Seleccionar Directório de Destino - Title Spanish=Seleccione el Directorio de Destino - Title Italian=Seleziona Directory di destinazione - Title Danish=Vælg Destinationsbibliotek - Title Dutch=Kies doeldirectory - Title Norwegian=Velg målkatalog - Title Swedish=Välj destinationskalatog - Width=221 - Height=173 - Font Name=Helv - Font Size=8 - item: Listbox - Rectangle=5 2 160 149 - Variable=MAINDIR - Create Flags=01010000100000010000000101000000 - Flags=0000110000100010 - Text=%MAINDIR% - Text French=%MAINDIR% - Text German=%MAINDIR% - Text Portuguese=%MAINDIR% - Text Spanish=%MAINDIR% - Text Italian=%MAINDIR% - Text Danish=%MAINDIR% - Text Dutch=%MAINDIR% - Text Norwegian=%MAINDIR% - Text Swedish=%MAINDIR% - end - item: Push Button - Rectangle=167 6 212 21 - Create Flags=01010000000000010000000000000001 - Text=OK - Text French=OK - Text German=OK - Text Portuguese=OK - Text Spanish=ACEPTAR - Text Italian=OK - Text Danish=OK - Text Dutch=OK - Text Norwegian=OK - Text Swedish=OK - end - item: Push Button - Rectangle=167 25 212 40 - Variable=MAINDIR - Value=%MAINDIR_SAVE% - Create Flags=01010000000000010000000000000000 - Flags=0000000000000001 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Slet - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - end -end -item: Custom Dialog Set - Name=Select Components - Display Variable=DISPLAY - Flags=00000001 - item: Dialog - Title=Select Components - Title French=Sélectionner les éléments - Title German=Komponenten auswählen - Title Portuguese=Seleccionar Componentes - Title Spanish=Seleccione los Componentes - Title Italian=Seleziona Componenti - Title Danish=Vælg komponenter - Title Dutch=Selecteer onderdelen - Title Norwegian=Velg komponenter - Title Swedish=Välj komponenter - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=205 156 253 166 - Variable=COMPONENTS - Value=MAINDIR - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=205 148 253 157 - Variable=COMPONENTS - Create Flags=01010000000000000000000000000010 - end - item: Static - Rectangle=95 147 184 158 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Required: - Text French=Espace disque requis - Text German=Benötigter Festplattenspeicher: - Text Portuguese=Espaço de disco necessário: - Text Spanish=Espacio de Disco Requerido: - Text Italian=Spazio su disco richiesto: - Text Danish=Nødvendig diskplads: - Text Dutch=Vereiste hoeveelheid schijfruimte - Text Norwegian=Diskplass nødvendig: - Text Swedish=Erforderligt diskutrymme - end - item: Static - Rectangle=95 157 190 167 - Create Flags=01010000000000000000000000000000 - Text=Disk Space Remaining: - Text French=Espace disque disponible - Text German=Verbleibender Festplattenspeicher: - Text Portuguese=Espaço de disco restante: - Text Spanish=Espacio de Disco Remanente: - Text Italian=Spazio su disco rimanente: - Text Danish=Ledig diskplads: - Text Dutch=Resterende schijfruimte - Text Norwegian=Ledig diskplass: - Text Swedish=Återstående diskutrymme - end - item: Static - Rectangle=90 138 264 168 - Action=1 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 8 260 41 - Create Flags=01010000000000000000000000000000 - Text=In the options list below, select the checkboxes for the options that you would like to have installed. The disk space fields reflect the requirements of the options you have selected. - Text French=Dans la liste d'options suivante, veuillez sélectionner les cases des options que vous désirez installer. Le champ d'espace disque indique les conditions requises pour les options choisies - Text German=Wählen Sie in der Optionenliste unten die Kontrollkästchen für diejenigen Optionen, die Sie installieren möchten. Die Speicherfelder zeigen die benötigte Speicherkapazität für die gewählten Optionen an. - Text Portuguese=Na lista de opções abaixo, seleccione as caixas de verificação para as opções que gostaria de ter instalado. Os campos de espaço de disco reflectem os requerimentos das opções que seleccionou. - Text Spanish=En la lista de opciones que se ofrece a continuación, seleccione las casillas de comprobación para las opciones que desea instalar. Los campos del espacio en el disco reflejan los requerimientos de las opciones que ha seleccionado. - Text Italian=Nell’elenco delle opzioni sotto, marca le caselle di controllo delle opzioni che vuoi installare. I campi dello spazio sul disco riflettono i requisiti delle opzioni selezionate. - Text Danish=Marker afkrydsningsfelterne for de komponenter, der skal installeres, på listen herunder. Diskpladsfelterne angiver pladskravene for de valgte komponenter. - Text Dutch=Kruis in de onderstaande lijst het vakje aan naast de opties die u wilt installeren. Achter elke optie staat de benodigde schijfruimte vermeld. - Text Norwegian=I listen over alternativer nedenfor, klikk i kontrollrutene for de alternativene du ønsker å installere. Diskplassfeltene gjenspeiler kravene for de alternativene du har valgt. - Text Swedish=Kryssa för i rutorna nedan vilka alternativ du vill få installerade. I diskutrymmesfälten anges utrymmesbehoven för de alternativ du väljer. - end - item: Listbox - Rectangle=90 42 263 133 - Variable=COMPONENTS - Create Flags=01010000101000010000000101010001 - Flags=0000010001000111 - Text=wxPython package (you need this one!) - Text=wxPython documentation - Text= - Text French=wxPython package (you need this one!) - Text French=wxPython documentation - Text French= - Text German=wxPython package (you need this one!) - Text German=wxPython documentation - Text German= - Text Portuguese=%1% - Text Portuguese= - Text Spanish=wxPython package (you need this one!) - Text Spanish=wxPython documentation - Text Spanish= - Text Italian=wxPython package (you need this one!) - Text Italian=wxPython documentation - Text Italian= - Text Danish=%1% - Text Danish= - Text Dutch=%1% - Text Dutch= - Text Norwegian=%1% - Text Norwegian= - Text Swedish=%1% - Text Swedish= - end - end -end -item: Custom Dialog Set - Name=Start Installation - Display Variable=DISPLAY - item: Dialog - Title=Start Installation - Title French=Commencer l'installation - Title German=Installation beginnen - Title Portuguese=Iniciar Instalação - Title Spanish=Comenzar la Instalación - Title Italian=Avvia Installazione - Title Danish=Start installationen - Title Dutch=Start de installatie - Title Norwegian=Start installeringen - Title Swedish=Starta installationen - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=172 185 214 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Next > - Text French=&Suivant> - Text German=&Weiter> - Text Portuguese=&Próximo> - Text Spanish=&Siguiente > - Text Italian=&Avanti > - Text Danish=&Næste> - Text Dutch=&Volgende> - Text Norwegian=&Neste> - Text Swedish=&Nästa > - end - item: Push Button - Rectangle=130 185 172 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 10 260 70 - Create Flags=01010000000000000000000000000000 - Text=You are now ready to install %APPTITLE%. - Text= - Text=Press the Next button to begin the installation or the Back button to reenter the installation information. - Text French=Vous êtes maintenant prêt à installer %APPTITLE% - Text French= - Text French=Cliquez sur Suivant pour commencer l'installation ou Retour pour entrer à nouveau les informations d'installation - Text German=Sie sind jetzt zur Installation von %APPTITLE% bereit. - Text German= - Text German=Auf die Schaltfläche Weiter klicken, um mit dem Start der Installation zu beginnen, oder auf die Schaltfläche Zurück, um die Installationsinformationen nochmals aufzurufen. - Text Portuguese=Está agora pronto para instalar %APPTITLE% - Text Portuguese= - Text Portuguese=Pressione o botão Próximo para começar a instalação ou o botão Retornar para introduzir novamente a informação sobre a instalação - Text Spanish=Ahora estará listo para instalar %APPTITLE%. - Text Spanish= - Text Spanish=Pulse el botón de Siguiente para comenzar la instalación o el botón Retroceder para volver a introducir la información sobre la instalación. - Text Italian=Sei pronto ad installare %APPTITLE%. - Text Italian= - Text Italian=Premi il tasto Avanti per iniziare l’installazione o il tasto Indietro per rientrare nuovamente nei dati sull’installazione - Text Danish=Du er nu klar til at installere %APPTITLE%. - Text Danish= - Text Danish=Klik på Næste for at starte installationen eller på Tilbage for at ændre installationsoplysningerne. - Text Dutch=U bent nu klaar om %APPTITLE% te installeren. - Text Dutch= - Text Dutch=Druk op Volgende om met de installatie te beginnen of op Terug om de installatie-informatie opnieuw in te voeren. - Text Norwegian=Du er nå klar til å installere %APPTITLE% - Text Norwegian= - Text Norwegian=Trykk på Neste-tasten for å starte installeringen, eller Tilbake-tasten for å taste inn installasjonsinformasjonen på nytt. - Text Swedish=Du är nu redo att installera %APPTITLE%. - Text Swedish= - Text Swedish=Tryck på Nästa för att starta installationen eller på Tillbaka för att skriva in installationsinformationen på nytt. - end - end -end -item: If/While Statement - Variable=DISPLAY - Value=Select Destination Directory -end -item: Set Variable - Variable=BACKUP - Value=%MAINDIR%\wxPython\BACKUP -end -item: End Block -end -item: End Block -end -item: If/While Statement - Variable=DOBACKUP - Value=A -end -item: Set Variable - Variable=BACKUPDIR - Value=%BACKUP% -end -item: End Block -end -item: If/While Statement - Variable=BRANDING - Value=1 -end -item: If/While Statement - Variable=DOBRAND - Value=1 -end -item: Edit INI File - Pathname=%INST%\CUSTDATA.INI - Settings=[Registration] - Settings=NAME=%NAME% - Settings=COMPANY=%COMPANY% - Settings= -end -item: End Block -end -item: End Block -end -item: Remark -end -item: Set Variable - Variable=INST_LOG_PATH - Value=%MAINDIR%\wxPython\install.log -end -item: Open/Close INSTALL.LOG - Pathname=%INST_LOG_PATH% - Flags=00000010 -end -item: Check Disk Space - Component=COMPONENTS -end -item: Remark -end -item: If/While Statement - Variable=COMPONENTS - Value=A - Flags=00001010 -end -item: Install File - Source=c:\WINNT\System32\Msvcirt.dll - Destination=%SYS%\Msvcirt.dll - Flags=0000001010000011 -end -item: Install File - Source=c:\WINNT\System32\Msvcrt.dll - Destination=%SYS%\Msvcrt.dll - Flags=0000001010000011 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\*.py - Destination=%MAINDIR%\wxPython - Description=wxPython shadow class modules - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\*.pyd - Destination=%MAINDIR%\wxPython\ - Description=wxPython extension modules - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\README.txt - Destination=%MAINDIR%\wxPython\README.txt - Description=README file - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\lib\*.py - Destination=%MAINDIR%\wxPython\lib - Description=wxPython Standard Library - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\*.py - Destination=%MAINDIR%\wxPython\demo - Description=Demos - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\bitmaps\*.bmp - Destination=%MAINDIR%\wxPython\demo\bitmaps - Description=Demos - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\bitmaps\*.gif - Destination=%MAINDIR%\wxPython\demo\bitmaps - Description=Demos - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\bitmaps\*.jpg - Destination=%MAINDIR%\wxPython\demo\bitmaps - Description=Demos - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\bitmaps\*.png - Destination=%MAINDIR%\wxPython\demo\bitmaps - Description=Demos - Flags=0000000010000010 -end -item: Install File - Source=e:\Projects\wx\utils\wxPython\demo\bitmaps\*.ico - Destination=%MAINDIR%\wxPython\demo\bitmaps - Description=Demos - Flags=0000000010000010 -end -item: End Block -end -item: Remark -end -item: If/While Statement - Variable=COMPONENTS - Value=B - Flags=00001010 -end -item: Install File - Source=e:\projects\wx\docs\html\wx\*.* - Destination=%MAINDIR%\wxPython\docs - Description=wxPython documentation - Flags=0000000010000010 -end -item: Install File - Source=e:\projects\wx\docs\html\wx\wx.htm - Destination=%MAINDIR%\wxPython\docs\index.htm - Description=wxPython documentation - Flags=0000000010000010 -end -item: End Block -end -item: Remark -end -item: Remark - Text= Install Support for uninstalling the application. -end -item: Set Variable - Variable=UNINSTALL_PATH - Value=%MAINDIR%\wxPython\UNWISE.EXE -end -item: Compiler Variable If - Variable=_EXE_OS_TYPE_ - Value=WIN32 -end -item: Install File - Source=%_WISE_%\UNWISE32.EXE - Destination=%UNINSTALL_PATH% - Flags=0000000000000010 -end -item: Compiler Variable Else -end -item: Install File - Source=%_WISE_%\UNWISE.EXE - Destination=%UNINSTALL_PATH% - Flags=0000000000000010 -end -item: Compiler Variable End -end -item: Remark -end -item: Remark - Text= Install the add/remove or uninstall icon -end -item: Set Variable - Variable=UNINSTALL_PATH - Value=%UNINSTALL_PATH% - Flags=00010100 -end -item: Set Variable - Variable=INST_LOG_PATH - Value=%INST_LOG_PATH% - Flags=00010100 -end -item: Check Configuration - Flags=10111011 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%APPTITLE% - Value Name=DisplayName - Root=2 -end -item: Edit Registry - Total Keys=1 - Key=Software\Microsoft\Windows\CurrentVersion\Uninstall\%APPTITLE% - New Value=%UNINSTALL_PATH% /A %INST_LOG_PATH% - New Value= - Value Name=UninstallString - Root=2 -end -item: Else Statement -end -item: Add ProgMan Icon - Group=%GROUP% - Icon Name=Uninstall %APPTITLE% - Command Line=%UNINSTALL_PATH% %INST_LOG_PATH% -end -item: End Block -end -item: Remark -end -item: Remark -end -item: Add Text to INSTALL.LOG - Text=File Tree: %MAINDIR%\wxPython\*.* -end -item: Remark -end -item: Set Variable - Variable=COMMON - Value=%COMMON% - Flags=00010100 -end -item: Set Variable - Variable=MAINDIR - Value=%MAINDIR% - Flags=00010100 -end -item: Check Configuration - Flags=10111011 -end -item: Get Registry Key Value - Variable=STARTUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu\Programs\StartUp - Value Name=StartUp - Flags=00000010 -end -item: Get Registry Key Value - Variable=DESKTOPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Desktop - Value Name=Desktop - Flags=00000010 -end -item: Get Registry Key Value - Variable=STARTMENUDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu - Value Name=Start Menu - Flags=00000010 -end -item: Get Registry Key Value - Variable=GROUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%WIN%\Start Menu\Programs - Value Name=Programs - Flags=00000010 -end -item: Get Registry Key Value - Variable=CSTARTUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%STARTUPDIR% - Value Name=Common Startup - Flags=00000100 -end -item: Get Registry Key Value - Variable=CDESKTOPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%DESKTOPDIR% - Value Name=Common Desktop - Flags=00000100 -end -item: Get Registry Key Value - Variable=CSTARTMENUDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%STARTMENUDIR% - Value Name=Common Start Menu - Flags=00000100 -end -item: Get Registry Key Value - Variable=CGROUPDIR - Key=Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders - Default=%GROUPDIR% - Value Name=Common Programs - Flags=00000100 -end -item: Set Variable - Variable=CGROUP_SAVE - Value=%GROUP% -end -item: Set Variable - Variable=GROUP - Value=%GROUPDIR%\%GROUP% -end -item: Else Statement -end -item: End Block -end -item: Self-Register OCXs/DLLs - Description=Updating System Configuration, Please Wait... -end -item: Edit Registry - Total Keys=1 - Key=SOFTWARE\Python\PythonCore\%PYTHONVER%\PythonPath\wxPython - New Value=%MAINDIR% - New Value= - Root=2 -end -item: Wizard Block - Direction Variable=DIRECTION - Display Variable=DISPLAY - Bitmap Pathname=%_WISE_%\DIALOGS\TEMPLATE\WIZARD.BMP - X Position=9 - Y Position=10 - Filler Color=8421440 - Flags=00000011 -end -item: Custom Dialog Set - Name=Finished - Display Variable=DISPLAY - item: Dialog - Title=Installation Complete - Title French=Installation en cours - Title German=Installation abgeschlossen - Title Portuguese=Instalação Completa - Title Spanish=Se ha completado la Instalación - Title Italian=Installazione completata - Title Danish=Installation gennemført - Title Dutch=Installatie afgerond - Title Norwegian=Installasjonen er fullført - Title Swedish=Installationen klar - Width=280 - Height=224 - Font Name=Helv - Font Size=8 - item: Push Button - Rectangle=170 185 212 199 - Variable=DIRECTION - Value=N - Create Flags=01010000000000010000000000000001 - Text=&Finish > - Text French=&Terminer> - Text German=&Fertigstellen> - Text Portuguese=&Terminar > - Text Spanish=&Finalizar> - Text Italian=&Fine > - Text Danish=&Afslut > - Text Dutch=&Klaar> - Text Norwegian=&Avslutt> - Text Swedish=&Sluta> - end - item: Push Button - Control Name=CANCEL - Rectangle=222 185 264 199 - Action=3 - Create Flags=01010000000000010000000000000000 - Text=Cancel - Text French=Annuler - Text German=Abbrechen - Text Portuguese=Cancelar - Text Spanish=Cancelar - Text Italian=Annulla - Text Danish=Annuller - Text Dutch=Annuleren - Text Norwegian=Avbryt - Text Swedish=Avbryt - end - item: Static - Rectangle=9 177 263 178 - Action=3 - Create Flags=01010000000000000000000000000111 - end - item: Static - Rectangle=90 10 260 63 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000000000000000000000 - Text=%APPTITLE% has been successfully installed. - Text= - Text= - Text=Press the Finish button to exit this installation. - Text= - Text French=L'installation de %APPTITLE% est réussie - Text French= - Text French= - Text French=Cliquez sur Terminer pour quitter cette installation - Text French= - Text German=%APPTITLE% wurde erfolgreich installiert. - Text German= - Text German= - Text German=Zum Beenden dieser Installation Fertigstellen anklicken. - Text German= - Text Portuguese=%APPTITLE% foi instalado com êxito - Text Portuguese= - Text Portuguese= - Text Portuguese=Pressionar o botão Terminar para sair desta instalação - Text Portuguese= - Text Spanish=%APPTITLE% se ha instalado con éxito. - Text Spanish= - Text Spanish= - Text Spanish=Pulse el botón de Finalizar para salir de esta instalación. - Text Spanish= - Text Italian=%APPTITLE% è stato installato. - Text Italian= - Text Italian= - Text Italian=Premi il pulsante Fine per uscire dal programma di installazione - Text Italian= - Text Danish=%APPTITLE% er nu installeret korrekt. - Text Danish= - Text Danish= - Text Danish=Klik på Afslut for at afslutte installationen. - Text Danish= - Text Dutch=%APPTITLE% is met succes geïnstalleerd. - Text Dutch= - Text Dutch= - Text Dutch=Druk op Klaar om deze installatie af te ronden. - Text Dutch= - Text Norwegian=Installasjonen av %APPTITLE% er vellykket. - Text Norwegian= - Text Norwegian= - Text Norwegian=Trykk på Avslutt-tasten for å avslutte denne installasjonen. - Text Norwegian= - Text Swedish=Installationen av %APPTITLE% har lyckats. - Text Swedish= - Text Swedish= - Text Swedish=Tryck på Sluta för att gå ur installationsprogrammet. - Text Swedish= - end - item: Push Button - Control Name=BACK - Rectangle=128 185 170 199 - Variable=DIRECTION - Value=B - Create Flags=01010000000000010000000000000000 - Text=< &Back - Text French=<&Retour - Text German=<&Zurück - Text Portuguese=<&Retornar - Text Spanish=<&Retroceder - Text Italian=< &Indietro - Text Danish=<&Tilbage - Text Dutch=<&Terug - Text Norwegian=<&Tilbake - Text Swedish=< &Tillbaka - end - item: Push Button - Rectangle=90 68 153 82 - Alternate=0%MAINDIR%\wxPython\README.txt - Action=6 - Enabled Color=00000000000000001111111111111111 - Create Flags=01010000000000010000000000000000 - Text=View README.txt - end - item: Set Control Attribute - Control Name=BACK - Operation=1 - end - item: Set Control Attribute - Control Name=CANCEL - Operation=1 - end - end -end -item: End Block -end -item: New Event - Name=Cancel -end -item: Include Script - Pathname=%_WISE_%\INCLUDE\rollback.wse -end diff --git a/utils/wxPython/distrib/wxPython.wsm b/utils/wxPython/distrib/wxPython.wsm deleted file mode 100644 index ed0b49ba6521de2f7ef0d58152ecae140ec9f963..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6382 zcmb7|ZEO`)8pog7@>Xt;AO;QYs;iF1#BM2Cw7z6%d6AVimDUvHhGsfa0-FK}CJ=+WEQuPjO9ENVCg8#@;!AcvD7epm&ZUl7 zGxywn`hDo{f1dNqIp?04j<)9d!L>vcv|X7tIx=HE-Mioh!e7NRAKpz=Ut2-#=ZUn2 zbjOO8miBbpfamMh!n$;`*RL6_Uz0ISqRqdkpvB6|uRJunD&imi_v`=tabqQh3tC!< zzA?CSlx?TbPG)eUia@a-%jaI)C#s+KOq!v@4D!LdFf zaI%=q7*U~eiae8gk^YIG}yoY0Bw5k`F%v-WXdbE0!x`zTk335bd2e}?}bqaVAG2rS_)iJJcmFBq{a z8Xm^{zkKVn1|qOTM2~7`E!B=HSi1uH?%lcRL|_ShW$XdI`xGXBdU#(Q5m-WRRt+)q zwlyhwO*yyz*iVVT5^ipw-POf8>2<@Nw*JNiL|_TK%~ZXfC5|6W-0e@%tBUdF<5hfq zF-!PCp)t<~ps4uTVkn_&h!&!14(z4bQ)xa?3i@ zQ6DZw9n6v`j-iP@cKjNCd-xP@0I;0TTOjX>r5JVd&o3aQDSUhe5m++C>T<5nqcE7F zVdXc6FYs*%ER_(e;NW^xFdUxcd4MJT_$0C~BVs7r!Vd&26|u}P^;j7ve}{~TaG1*g z%VqGrDwfgv3Kqs*YddFv2lygz-r34?zbp1+9*ETxMh zt;w-H-{s?}c(mTV6;Uh0Oo|9B7Zux^zuk`Gee{jbW)gv=1DbqS{J5k-l<=p}<7Ww$ zN@&(SkFS%l74_H-tf>9gPq?RGxfs5cESp?aXLh2JnY)hj{shZKhRyHSh$}dowjdk#P1Iq;&R&j}J_$&0&Ve@Pvu$<2C*4JCH`YZw-9ox^{1j_~R<#@6c zw|Xi=UGzlEKZ-H+wM5`D zVtn26>qN@-hraJExSSLxyFi5eHx>deFQiz>^7?9CD<4dpoXd#wURaX9r~MA zq+FWVbi3fPQ+jh*qDLI0{B7ckrGm>&$=RIp-~rLwYy7hgE+fTq?2K#hOSYl$r`3J2 zAaEH$#T669Y(7{`&nt~|jSqV;$K+z)c{7gYrF(qK#7EyQRqLyXI(q1j!W!paba0}@ z*DFtGeG@{f5WnD$Sl}eFM>kC; z5T1Qbc%S@?2wc)D2yZpbiu$>e3k4^6`J8a(SIpuI&BX9|cECwaP^jU@L3HT`I0uIL x(|p9q&H^EAs}j;h{!Ip#kZOh1G9A{z;fpmy;8IpmJ2yvYz4M5`rL ", dlg.GetValueString() - - def OnMessageTest(self, event): - import sys; - f = open(sys.argv[0],"r") - msg = f.read() - dlg = wxScrolledMessageDialog(self, msg, "message test") - dlg.ShowModal() - - - class MyApp(wxApp): - def OnInit(self): - frame = MyFrame() - frame.Show(TRUE) - self.SetTopWindow(frame) - return TRUE - - app = MyApp(0) - app.MainLoop() - - - - - - - diff --git a/utils/wxPython/lib/layoutf.py b/utils/wxPython/lib/layoutf.py deleted file mode 100644 index cbbd7edd9e..0000000000 --- a/utils/wxPython/lib/layoutf.py +++ /dev/null @@ -1,262 +0,0 @@ -from wxPython.wx import wxLayoutConstraints,\ - wxTop, wxLeft, wxBottom, wxRight, \ - wxHeight, wxWidth, wxCentreX, wxCentreY -import re,string - -class Layoutf(wxLayoutConstraints): - """ -The class Layoutf(wxLayoutConstraints) presents a simplification -of the wxLayoutConstraints syntax. The name Layoutf is choosen -because of the similarity with C's printf function. - -Quick Example: - - lc = Layoutf('t=t#1;l=r10#2;r!100;h%h50#1', (self, self.panel)) - -is equivalent to - - lc = wxLayoutContraints() - lc.top.SameAs(self, wxTop) - lc.left.SameAs(self.panel, wxRight, 10) - lc.right.Absolute(100) - lc.height.PercentOf(self, wxHeight, 50) - -Usage: - - You can give a constraint string to the Layoutf constructor, -or use the 'pack' method. The following are equivalent: - - lc = Layoutf('t=t#1;l=r#2;r!100;h%h50#1', (self, self.panel)) - -and - - lc = Layoutf() - lc.pack('t=t#1;l=r#2;r!100;h%h50#1', (self, self.panel)) - - Besides 'pack' there's also 'debug_pack' which does not set -constraints, but prints traditional wxLayoutConstraint calls to -stdout. - - The calls to the Layoutf constructor and pack methods have -the following argument list: - - (constraint_string, objects_tuple) - -Constraint String syntax: - - Constraint directives are separated by semi-colons. You -generally (always?) need four directives to completely describe a -subwindow's location. - - A single directive has either of the following forms: - - 1. [numerical argument] - for example r!100 -> lc.right.Absolute(100) ) - and w* -> lc.width.AsIs() - - 2. [numerical argument] - # - for example t_10#2 (lc.top.Below(, 10) - - 3. - [numerical argument]# - for example w%h50#2 ( lc.width.PercentOf(, - wxHeight, 50) and t=b#1 ( lc.top.SameAs(, - wxBottom) ) - - Which one you need is defined by the -type. The following take type 1 (no object to compare with): - - '!': 'Absolute', '?': 'Unconstrained', '*': 'AsIs' - -These take type 2 (need to be compared with another object) - - '<': 'LeftOf', '>': 'RightOf', '^': 'Above', '_': 'Below' - -These take type 3 (need to be compared to another object -attribute) - - '=': 'SameAs', '%': 'PercentOf' - -For all types, the letter can be any of - - 't': 'top', 'l': 'left', 'b': 'bottom', - 'r': 'right', 'h': 'height', 'w': 'width', - 'x': 'centreX', 'y': 'centreY' - -If the operation takes an (optional) numerical argument, place it -in [numerical argument]. For type 3 directives, the letter can be any of - - 't': 'wxTop', 'l': 'wxLeft', 'b': 'wxBottom' - 'r': 'wxRight', 'h': 'wxHeight', 'w': 'wxWidth', - 'x': 'wxCentreX', 'y': 'wxCentreY' - -Note that these are the same letters as used for , -so you'll only need to remember one set. Finally, the object -whose attribute is refered to, is specified by #, where is the 1-based (stupid, I know, -but I've gotten used to it) index of the object in the -objects_tuple argument. - -Bugs: - -Not entirely happy about the logic in the order of arguments -after the character. - -Not all wxLayoutConstraint methods are included in the -syntax. However, the type 3 directives are generally the most -used. Further excuse: wxWindows layout constraints are at the -time of this writing not documented. - -""" - - attr_d = { 't': 'top', 'l': 'left', 'b': 'bottom', - 'r': 'right', 'h': 'height', 'w': 'width', - 'x': 'centreX', 'y': 'centreY' } - op_d = { '=': 'SameAs', '%': 'PercentOf', '<': 'LeftOf', - '>': 'RightOf', '^': 'Above', '_': 'Below', - '!': 'Absolute', '?': 'Unconstrained', '*': 'AsIs' } - cmp_d = { 't': 'wxTop', 'l': 'wxLeft', 'b': 'wxBottom', - 'r': 'wxRight', 'h': 'wxHeight', 'w': 'wxWidth', - 'x': 'wxCentreX', 'y': 'wxCentreY' } - - rexp1 = re.compile('^\s*([tlrbhwxy])\s*([!\?\*])\s*(\d*)\s*$') - rexp2 = re.compile('^\s*([tlrbhwxy])\s*([=%<>^_])\s*([tlrbhwxy]?)\s*(\d*)\s*#(\d+)\s*$') - - def __init__(self,pstr=None,winlist=None): - wxLayoutConstraints.__init__(self) - if pstr: - self.pack(pstr,winlist) - - def pack(self, pstr, winlist): - pstr = string.lower(pstr) - for item in string.split(pstr,';'): - m = self.rexp1.match(item) - if m: - g = list(m.groups()) - attr = getattr(self, self.attr_d[g[0]]) - func = getattr(attr, self.op_d[g[1]]) - if g[1] == '!': - func(int(g[2])) - else: - func() - continue - m = self.rexp2.match(item) - if not m: raise ValueError - g = list(m.groups()) - attr = getattr(self, self.attr_d[g[0]]) - func = getattr(attr, self.op_d[g[1]]) - if g[3]: g[3] = int(g[3]) - else: g[3] = None; - g[4] = int(g[4]) - 1 - if g[1] in '<>^_': - if g[3]: func(winlist[g[4]], g[3]) - else: func(winlist[g[4]]) - else: - cmp = eval(self.cmp_d[g[2]]) - if g[3]: func(winlist[g[4]], cmp, g[3]) - else: func(winlist[g[4]], cmp) - - def debug_pack(self, pstr, winlist): - pstr = string.lower(pstr) - for item in string.split(pstr,';'): - m = self.rexp1.match(item) - if m: - g = list(m.groups()) - attr = getattr(self, self.attr_d[g[0]]) - func = getattr(attr, self.op_d[g[1]]) - if g[1] == '!': - print "%s.%s.%s(%s)" % \ - ('self',self.attr_d[g[0]],self.op_d[g[1]],g[2]) - else: - print "%s.%s.%s()" % \ - ('self',self.attr_d[g[0]],self.op_d[g[1]]) - continue - m = self.rexp2.match(item) - if not m: raise ValueError - g = list(m.groups()) - if g[3]: g[3] = int(g[3]) - else: g[3] = 0; - g[4] = int(g[4]) - 1 - if g[1] in '<>^_': - if g[3]: print "%s.%s.%s(%s,%d)" % \ - ('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]], - g[3]) - else: print "%s.%s.%s(%s)" % \ - ('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]]) - else: - if g[3]: print "%s.%s.%s(%s,%s,%d)" % \ - ('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]], - self.cmp_d[g[2]],g[3]) - else: print "%s.%s.%s(%s,%s)" % \ - ('self',self.attr_d[g[0]],self.op_d[g[1]],winlist[g[4]], - self.cmp_d[g[2]]) - -if __name__=='__main__': - from wxPython.wx import * - - class TestLayoutf(wxFrame): - def __init__(self, parent): - wxFrame.__init__(self, parent, -1, 'Test Layout Constraints', - wxPyDefaultPosition, wxSize(500, 300)) - - self.SetAutoLayout(true) - EVT_BUTTON(self, 100, self.OnButton) - EVT_BUTTON(self, 101, self.OnAbout) - - self.panelA = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelA.SetBackgroundColour(wxBLUE) - self.panelA.SetConstraints(Layoutf('t=t10#1;l=l10#1;b=b10#1;r%r50#1',(self,))) - - self.panelB = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelB.SetBackgroundColour(wxRED) - self.panelB.SetConstraints(Layoutf('t=t10#1;r=r10#1;b%b30#1;l>10#2', (self,self.panelA))) - - self.panelC = wxWindow(self, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelC.SetBackgroundColour(wxWHITE) - self.panelC.SetConstraints(Layoutf('t_10#3;r=r10#1;b=b10#1;l>10#2', (self,self.panelA,self.panelB))) - - b = wxButton(self.panelA, 101, ' About: ') - b.SetConstraints(Layoutf('X=X#1;Y=Y#1;h*;w%w50#1', (self.panelA,))) - - b = wxButton(self.panelB, 100, ' Panel B ') - b.SetConstraints(Layoutf('t=t2#1;r=r4#1;h*;w*', (self.panelB,))) - - self.panelD = wxWindow(self.panelC, -1, wxPyDefaultPosition, wxPyDefaultSize, wxSIMPLE_BORDER) - self.panelD.SetBackgroundColour(wxGREEN) - self.panelD.SetConstraints(Layoutf('b%h50#1;r%w50#1;h=h#2;w=w#2', (self.panelC, b))) - - b = wxButton(self.panelC, 100, ' Panel C ') - b.SetConstraints(Layoutf('t_#1;l>#1;h*;w*', (self.panelD,))) - - wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN) - - def OnButton(self, event): - self.Close(true) - - def OnAbout(self, event): - try: - from dialogs import wxScrolledMessageDialog - msg = wxScrolledMessageDialog(self, Layoutf.__doc__, "about") - msg.ShowModal() - except: - print msg - - def OnCloseWindow(self, event): - self.Destroy() - - class TestApp(wxApp): - def OnInit(self): - frame = TestLayoutf(NULL) - frame.Show(1) - self.SetTopWindow(frame) - return 1 - - app = TestApp(0) - app.MainLoop() - - - - - diff --git a/utils/wxPython/lib/wxPlotCanvas.py b/utils/wxPython/lib/wxPlotCanvas.py deleted file mode 100644 index 569473ef22..0000000000 --- a/utils/wxPython/lib/wxPlotCanvas.py +++ /dev/null @@ -1,467 +0,0 @@ -""" -This is a port of Konrad Hinsen's tkPlotCanvas.py plotting module. -After thinking long and hard I came up with the name "wxPlotCanvas.py". - -This file contains two parts; first the re-usable library stuff, then, after -a "if __name__=='__main__'" test, a simple frame and a few default plots -for testing. - -Harm van der Heijden, feb 1999 - -Original comment follows below: -# This module defines a plot widget for Tk user interfaces. -# It supports only elementary line plots at the moment. -# See the example at the end for documentation... -# -# Written by Konrad Hinsen -# With contributions from RajGopal Srinivasan -# Last revision: 1998-7-28 -# -""" - -from wxPython import wx -import string - -# Not everybody will have Numeric, so let's be cool about it... -try: - import Numeric -except: - # bummer! - d = wx.wxMessageDialog(wx.NULL, - """This module requires the Numeric module, which could not be imported. -It probably is not installed (it's not part of the standard Python -distribution). See the Python site (http://www.python.org) for -information on downloading source or binaries.""", - "Numeric not found") - if d.ShowModal() == wx.wxID_CANCEL: - d = wx.wxMessageDialog(wx.NULL, "I kid you not! Pressing Cancel won't help you!", "Not a joke", wx.wxOK) - d.ShowModal() - raise ImportError - -# -# Plotting classes... -# -class PolyPoints: - - def __init__(self, points, attr): - self.points = Numeric.array(points) - self.scaled = self.points - self.attributes = {} - for name, value in self._attributes.items(): - try: - value = attr[name] - except KeyError: pass - self.attributes[name] = value - - def boundingBox(self): - return Numeric.minimum.reduce(self.points), \ - Numeric.maximum.reduce(self.points) - - def scaleAndShift(self, scale=1, shift=0): - self.scaled = scale*self.points+shift - - -class PolyLine(PolyPoints): - - def __init__(self, points, **attr): - PolyPoints.__init__(self, points, attr) - - _attributes = {'color': 'black', - 'width': 1} - - def draw(self, dc): - color = self.attributes['color'] - width = self.attributes['width'] - arguments = [] - dc.SetPen(wx.wxPen(wx.wxNamedColour(color), width)) - dc.DrawLines(map(tuple,self.scaled)) - - -class PolyMarker(PolyPoints): - - def __init__(self, points, **attr): - - PolyPoints.__init__(self, points, attr) - - _attributes = {'color': 'black', - 'width': 1, - 'fillcolor': None, - 'size': 2, - 'fillstyle': wx.wxSOLID, - 'outline': 'black', - 'marker': 'circle'} - - def draw(self, dc): - color = self.attributes['color'] - width = self.attributes['width'] - size = self.attributes['size'] - fillcolor = self.attributes['fillcolor'] - fillstyle = self.attributes['fillstyle'] - marker = self.attributes['marker'] - - dc.SetPen(wx.wxPen(wx.wxNamedColour(color),width)) - if fillcolor: - dc.SetBrush(wx.wxBrush(wx.wxNamedColour(fillcolor),fillstyle)) - else: - dc.SetBrush(wx.wxBrush(wx.wxNamedColour('black'), wx.wxTRANSPARENT)) - - self._drawmarkers(dc, self.scaled, marker, size) - - def _drawmarkers(self, dc, coords, marker,size=1): - f = eval('self._' +marker) - for xc, yc in coords: - f(dc, xc, yc, size) - - def _circle(self, dc, xc, yc, size=1): - dc.DrawEllipse(xc-2.5*size,yc-2.5*size,5.*size,5.*size) - - def _dot(self, dc, xc, yc, size=1): - dc.DrawPoint(xc,yc) - - def _square(self, dc, xc, yc, size=1): - dc.DrawRectangle(xc-2.5*size,yc-2.5*size,5.*size,5.*size) - - def _triangle(self, dc, xc, yc, size=1): - dc.DrawPolygon([(-0.5*size*5,0.2886751*size*5), - (0.5*size*5,0.2886751*size*5), - (0.0,-0.577350*size*5)],xc,yc) - - def _triangle_down(self, dc, xc, yc, size=1): - dc.DrawPolygon([(-0.5*size*5,-0.2886751*size*5), - (0.5*size*5,-0.2886751*size*5), - (0.0,0.577350*size*5)],xc,yc) - - def _cross(self, dc, xc, yc, size=1): - dc.DrawLine(xc-2.5*size,yc-2.5*size,xc+2.5*size,yc+2.5*size) - dc.DrawLine(xc-2.5*size,yc+2.5*size,xc+2.5*size,yc-2.5*size) - - def _plus(self, dc, xc, yc, size=1): - dc.DrawLine(xc-2.5*size,yc,xc+2.5*size,yc) - dc.DrawLine(xc,yc-2.5*size,xc,yc+2.5*size) - -class PlotGraphics: - - def __init__(self, objects): - self.objects = objects - - def boundingBox(self): - p1, p2 = self.objects[0].boundingBox() - for o in self.objects[1:]: - p1o, p2o = o.boundingBox() - p1 = Numeric.minimum(p1, p1o) - p2 = Numeric.maximum(p2, p2o) - return p1, p2 - - def scaleAndShift(self, scale=1, shift=0): - for o in self.objects: - o.scaleAndShift(scale, shift) - - def draw(self, canvas): - for o in self.objects: - o.draw(canvas) - - def __len__(self): - return len(self.objects) - - def __getitem__(self, item): - return self.objects[item] - - -class PlotCanvas(wx.wxWindow): - - def __init__(self, parent, id = -1): - wx.wxWindow.__init__(self, parent, id, wx.wxPyDefaultPosition, wx.wxPyDefaultSize) - self.border = (1,1) - self.SetClientSizeWH(400,400) - self.SetBackgroundColour(wx.wxNamedColour("white")) - - wx.EVT_SIZE(self,self.reconfigure) - self._setsize() - self.last_draw = None -# self.font = self._testFont(font) - - def OnPaint(self, event): - pdc = wx.wxPaintDC(self) - if self.last_draw is not None: - apply(self.draw, self.last_draw + (pdc,)) - - def reconfigure(self, event): - (new_width,new_height) = self.GetClientSizeTuple() - if new_width == self.width and new_height == self.height: - return - self._setsize() - # self.redraw() - - def _testFont(self, font): - if font is not None: - bg = self.canvas.cget('background') - try: - item = CanvasText(self.canvas, 0, 0, anchor=NW, - text='0', fill=bg, font=font) - self.canvas.delete(item) - except TclError: - font = None - return font - - def _setsize(self): - (self.width,self.height) = self.GetClientSizeTuple(); - self.plotbox_size = 0.97*Numeric.array([self.width, -self.height]) - xo = 0.5*(self.width-self.plotbox_size[0]) - yo = self.height-0.5*(self.height+self.plotbox_size[1]) - self.plotbox_origin = Numeric.array([xo, yo]) - - def draw(self, graphics, xaxis = None, yaxis = None, dc = None): - if dc == None: dc = wx.wxClientDC(self) - dc.BeginDrawing() - dc.Clear() - self.last_draw = (graphics, xaxis, yaxis) - p1, p2 = graphics.boundingBox() - xaxis = self._axisInterval(xaxis, p1[0], p2[0]) - yaxis = self._axisInterval(yaxis, p1[1], p2[1]) - text_width = [0., 0.] - text_height = [0., 0.] - if xaxis is not None: - p1[0] = xaxis[0] - p2[0] = xaxis[1] - xticks = self._ticks(xaxis[0], xaxis[1]) - bb = dc.GetTextExtent(xticks[0][1]) - text_height[1] = bb[1] - text_width[0] = 0.5*bb[0] - bb = dc.GetTextExtent(xticks[-1][1]) - text_width[1] = 0.5*bb[0] - else: - xticks = None - if yaxis is not None: - p1[1] = yaxis[0] - p2[1] = yaxis[1] - yticks = self._ticks(yaxis[0], yaxis[1]) - for y in yticks: - bb = dc.GetTextExtent(y[1]) - text_width[0] = max(text_width[0],bb[0]) - h = 0.5*bb[1] - text_height[0] = h - text_height[1] = max(text_height[1], h) - else: - yticks = None - text1 = Numeric.array([text_width[0], -text_height[1]]) - text2 = Numeric.array([text_width[1], -text_height[0]]) - scale = (self.plotbox_size-text1-text2) / (p2-p1) - shift = -p1*scale + self.plotbox_origin + text1 - self._drawAxes(dc, xaxis, yaxis, p1, p2, - scale, shift, xticks, yticks) - graphics.scaleAndShift(scale, shift) - graphics.draw(dc) - dc.EndDrawing() - - def _axisInterval(self, spec, lower, upper): - if spec is None: - return None - if spec == 'minimal': - if lower == upper: - return lower-0.5, upper+0.5 - else: - return lower, upper - if spec == 'automatic': - range = upper-lower - if range == 0.: - return lower-0.5, upper+0.5 - log = Numeric.log10(range) - power = Numeric.floor(log) - fraction = log-power - if fraction <= 0.05: - power = power-1 - grid = 10.**power - lower = lower - lower % grid - mod = upper % grid - if mod != 0: - upper = upper - mod + grid - return lower, upper - if type(spec) == type(()): - lower, upper = spec - if lower <= upper: - return lower, upper - else: - return upper, lower - raise ValueError, str(spec) + ': illegal axis specification' - - def _drawAxes(self, dc, xaxis, yaxis, - bb1, bb2, scale, shift, xticks, yticks): - dc.SetPen(wx.wxPen(wx.wxNamedColour('BLACK'),1)) - if xaxis is not None: - lower, upper = xaxis - text = 1 - for y, d in [(bb1[1], -3), (bb2[1], 3)]: - p1 = scale*Numeric.array([lower, y])+shift - p2 = scale*Numeric.array([upper, y])+shift - dc.DrawLine(p1[0],p1[1],p2[0],p2[1]) - for x, label in xticks: - p = scale*Numeric.array([x, y])+shift - dc.DrawLine(p[0],p[1],p[0],p[1]+d) - if text: - dc.DrawText(label,p[0],p[1]) - text = 0 - - if yaxis is not None: - lower, upper = yaxis - text = 1 - h = dc.GetCharHeight() - for x, d in [(bb1[0], -3), (bb2[0], 3)]: - p1 = scale*Numeric.array([x, lower])+shift - p2 = scale*Numeric.array([x, upper])+shift - dc.DrawLine(p1[0],p1[1],p2[0],p2[1]) - for y, label in yticks: - p = scale*Numeric.array([x, y])+shift - dc.DrawLine(p[0],p[1],p[0]-d,p[1]) - if text: - dc.DrawText(label,p[0]-dc.GetTextExtent(label)[0], - p[1]-0.5*h) - text = 0 - - def _ticks(self, lower, upper): - ideal = (upper-lower)/7. - log = Numeric.log10(ideal) - power = Numeric.floor(log) - fraction = log-power - factor = 1. - error = fraction - for f, lf in self._multiples: - e = Numeric.fabs(fraction-lf) - if e < error: - error = e - factor = f - grid = factor * 10.**power - if power > 3 or power < -3: - format = '%+7.0e' - elif power >= 0: - digits = max(1, int(power)) - format = '%' + `digits`+'.0f' - else: - digits = -int(power) - format = '%'+`digits+2`+'.'+`digits`+'f' - ticks = [] - t = -grid*Numeric.floor(-lower/grid) - while t <= upper: - ticks.append(t, format % (t,)) - t = t + grid - return ticks - - _multiples = [(2., Numeric.log10(2.)), (5., Numeric.log10(5.))] - - def redraw(self,dc=None): - if self.last_draw is not None: - apply(self.draw, self.last_draw + (dc,)) - - def clear(self): - self.canvas.delete('all') - -#--------------------------------------------------------------------------- -# if running standalone... -# -# ...a sample implementation using the above -# - - -if __name__ == '__main__': - def _InitObjects(): - # 100 points sin function, plotted as green circles - data1 = 2.*Numeric.pi*Numeric.arange(200)/200. - data1.shape = (100, 2) - data1[:,1] = Numeric.sin(data1[:,0]) - markers1 = PolyMarker(data1, color='green', marker='circle',size=1) - - # 50 points cos function, plotted as red line - data1 = 2.*Numeric.pi*Numeric.arange(100)/100. - data1.shape = (50,2) - data1[:,1] = Numeric.cos(data1[:,0]) - lines = PolyLine(data1, color='red') - - # A few more points... - pi = Numeric.pi - markers2 = PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.), - (3.*pi/4., -1)], color='blue', - fillcolor='green', marker='cross') - - return PlotGraphics([markers1, lines, markers2]) - - - class AppFrame(wx.wxFrame): - def __init__(self, parent, id, title): - wx.wxFrame.__init__(self, parent, id, title, - wx.wxPyDefaultPosition, wx.wxSize(400, 400)) - - # Now Create the menu bar and items - self.mainmenu = wx.wxMenuBar() - - menu = wx.wxMenu() - menu.Append(200, '&Print...', 'Print the current plot') - wx.EVT_MENU(self, 200, self.OnFilePrint) - menu.Append(209, 'E&xit', 'Enough of this already!') - wx.EVT_MENU(self, 209, self.OnFileExit) - self.mainmenu.Append(menu, '&File') - - menu = wx.wxMenu() - menu.Append(210, '&Draw', 'Draw plots') - wx.EVT_MENU(self,210,self.OnPlotDraw) - menu.Append(211, '&Redraw', 'Redraw plots') - wx.EVT_MENU(self,211,self.OnPlotRedraw) - menu.Append(212, '&Clear', 'Clear canvas') - wx.EVT_MENU(self,212,self.OnPlotClear) - self.mainmenu.Append(menu, '&Plot') - - menu = wx.wxMenu() - menu.Append(220, '&About', 'About this thing...') - wx.EVT_MENU(self, 220, self.OnHelpAbout) - self.mainmenu.Append(menu, '&Help') - - self.SetMenuBar(self.mainmenu) - - # A status bar to tell people what's happening - self.CreateStatusBar(1) - - self.client = PlotCanvas(self) - - def OnFilePrint(self, event): - d = wx.wxMessageDialog(self, -"""As of this writing, printing support in wxPython is shaky at best. -Are you sure you want to do this?""", "Danger!", wx.wxYES_NO) - if d.ShowModal() == wx.wxID_YES: - psdc = wx.wxPostScriptDC("out.ps", wx.TRUE, self) - self.client.redraw(psdc) - - def OnFileExit(self, event): - self.Close() - - def OnPlotDraw(self, event): - self.client.draw(_InitObjects(),'automatic','automatic'); - - def OnPlotRedraw(self,event): - self.client.redraw() - - def OnPlotClear(self,event): - self.client.last_draw = None - dc = wx.wxClientDC(self.client) - dc.Clear() - - def OnHelpAbout(self, event): - about = wx.wxMessageDialog(self, __doc__, "About...", wx.wxOK) - about.ShowModal() - - def OnCloseWindow(self, event): - self.Destroy() - - - class MyApp(wx.wxApp): - def OnInit(self): - frame = AppFrame(wx.NULL, -1, "wxPlotCanvas") - frame.Show(wx.TRUE) - self.SetTopWindow(frame) - return wx.TRUE - - - app = MyApp(0) - app.MainLoop() - - - - -#---------------------------------------------------------------------------- diff --git a/utils/wxPython/src/.cvsignore b/utils/wxPython/src/.cvsignore deleted file mode 100644 index 58b63ff758..0000000000 --- a/utils/wxPython/src/.cvsignore +++ /dev/null @@ -1,30 +0,0 @@ -.emacs.desktop -Makefile -Makefile.pre -Setup -Setup.in.new -Setup.save -Setup.save -config.c -glcanvas.h -glcanvasc.exp -make.bat -sedscript -templates -transfer.zip -utilsc.exp -vc50.pdb -vc60.pdb -wxPython.001 -wxPython.dsp -wxPython.dsw -wxPython.ncb -wxPython.opt -wxc.exp -wxc.lib -wxc.res -wxp.pch -wxpc.exp -wxpc.lib -wxpc.res -wxpc.res.save diff --git a/utils/wxPython/src/Makefile.pre.in b/utils/wxPython/src/Makefile.pre.in deleted file mode 100644 index 7a08b85a75..0000000000 --- a/utils/wxPython/src/Makefile.pre.in +++ /dev/null @@ -1,421 +0,0 @@ -# Universal Unix Makefile for Python extensions -# ============================================= - -# Short Instructions -# ------------------ - -# 1. Build and install Python (1.5 or newer). -# 2. "make -f Makefile.pre.in boot" -# 3. "make" -# You should now have a shared library. - -# Long Instructions -# ----------------- - -# Build *and install* the basic Python 1.5 distribution. See the -# Python README for instructions. (This version of Makefile.pre.in -# only withs with Python 1.5, alpha 3 or newer.) - -# Create a file Setup.in for your extension. This file follows the -# format of the Modules/Setup.in file; see the instructions there. -# For a simple module called "spam" on file "spammodule.c", it can -# contain a single line: -# spam spammodule.c -# You can build as many modules as you want in the same directory -- -# just have a separate line for each of them in the Setup.in file. - -# If you want to build your extension as a shared library, insert a -# line containing just the string -# *shared* -# at the top of your Setup.in file. - -# Note that the build process copies Setup.in to Setup, and then works -# with Setup. It doesn't overwrite Setup when Setup.in is changed, so -# while you're in the process of debugging your Setup.in file, you may -# want to edit Setup instead, and copy it back to Setup.in later. -# (All this is done so you can distribute your extension easily and -# someone else can select the modules they actually want to build by -# commenting out lines in the Setup file, without editing the -# original. Editing Setup is also used to specify nonstandard -# locations for include or library files.) - -# Copy this file (Misc/Makefile.pre.in) to the directory containing -# your extension. - -# Run "make -f Makefile.pre.in boot". This creates Makefile -# (producing Makefile.pre and sedscript as intermediate files) and -# config.c, incorporating the values for sys.prefix, sys.exec_prefix -# and sys.version from the installed Python binary. For this to work, -# the python binary must be on your path. If this fails, try -# make -f Makefile.pre.in Makefile VERSION=1.5 installdir= -# where is the prefix used to install Python for installdir -# (and possibly similar for exec_installdir=). - -# Note: "make boot" implies "make clobber" -- it assumes that when you -# bootstrap you may have changed platforms so it removes all previous -# output files. - -# If you are building your extension as a shared library (your -# Setup.in file starts with *shared*), run "make" or "make sharedmods" -# to build the shared library files. If you are building a statically -# linked Python binary (the only solution of your platform doesn't -# support shared libraries, and sometimes handy if you want to -# distribute or install the resulting Python binary), run "make -# python". - -# Note: Each time you edit Makefile.pre.in or Setup, you must run -# "make Makefile" before running "make". - -# Hint: if you want to use VPATH, you can start in an empty -# subdirectory and say (e.g.): -# make -f ../Makefile.pre.in boot srcdir=.. VPATH=.. - - -# === Bootstrap variables (edited through "make boot") === - -# The prefix used by "make inclinstall libainstall" of core python -installdir= /usr/local - -# The exec_prefix used by the same -exec_installdir=$(installdir) - -# Source directory and VPATH in case you want to use VPATH. -# (You will have to edit these two lines yourself -- there is no -# automatic support as the Makefile is not generated by -# config.status.) -srcdir= . -VPATH= . - -# === Variables that you may want to customize (rarely) === - -# (Static) build target -TARGET= python - -# Installed python binary (used only by boot target) -PYTHON= python - -# Add more -I and -D options here -CFLAGS= $(OPT) -I$(INCLUDEPY) -I$(EXECINCLUDEPY) $(DEFS) - -# These two variables can be set in Setup to merge extensions. -# See example[23]. -BASELIB= -BASESETUP= - -# === Variables set by makesetup === - -MODOBJS= _MODOBJS_ -MODLIBS= _MODLIBS_ - -# === Definitions added by makesetup === - -# === Variables from configure (through sedscript) === - -VERSION= @VERSION@ -CC= @CC@ -LINKCC= @LINKCC@ -SGI_ABI= @SGI_ABI@ -OPT= @OPT@ -LDFLAGS= @LDFLAGS@ -LDLAST= @LDLAST@ -DEFS= @DEFS@ -LIBS= @LIBS@ -LIBM= @LIBM@ -LIBC= @LIBC@ -RANLIB= @RANLIB@ -MACHDEP= @MACHDEP@ -SO= @SO@ -LDSHARED= @LDSHARED@ -CCSHARED= @CCSHARED@ -LINKFORSHARED= @LINKFORSHARED@ -#@SET_CCC@ - -# Install prefix for architecture-independent files -prefix= /usr/local - -# Install prefix for architecture-dependent files -exec_prefix= $(prefix) - -# === Fixed definitions === - -# Shell used by make (some versions default to the login shell, which is bad) -SHELL= /bin/sh - -# Expanded directories -BINDIR= $(exec_installdir)/bin -LIBDIR= $(exec_prefix)/lib -MANDIR= $(installdir)/man -INCLUDEDIR= $(installdir)/include -SCRIPTDIR= $(prefix)/lib - -# Detailed destination directories -BINLIBDEST= $(LIBDIR)/python$(VERSION) -LIBDEST= $(SCRIPTDIR)/python$(VERSION) -INCLUDEPY= $(INCLUDEDIR)/python$(VERSION) -EXECINCLUDEPY= $(exec_installdir)/include/python$(VERSION) -LIBP= $(exec_installdir)/lib/python$(VERSION) -DESTSHARED= $(BINLIBDEST)/site-packages - -LIBPL= $(LIBP)/config - -PYTHONLIBS= $(LIBPL)/libpython$(VERSION).a - -MAKESETUP= $(LIBPL)/makesetup -MAKEFILE= $(LIBPL)/Makefile -CONFIGC= $(LIBPL)/config.c -CONFIGCIN= $(LIBPL)/config.c.in -SETUP= $(LIBPL)/Setup - -SYSLIBS= $(LIBM) $(LIBC) - -ADDOBJS= $(LIBPL)/python.o config.o - -# Portable install script (configure doesn't always guess right) -INSTALL= $(LIBPL)/install-sh -c -# Shared libraries must be installed with executable mode on some systems; -# rather than figuring out exactly which, we always give them executable mode. -# Also, making them read-only seems to be a good idea... -INSTALL_SHARED= ${INSTALL} -m 555 - -#--------------------------------------------------- -# Possibly change some definintions for C++ -ifdef MY_LDSHARED -LDSHARED=$(MY_LDSHARED) -endif -ifdef MY_LINKCC -LINKCC=$(MY_LINKCC) -endif - - -# === Fixed rules === - -# Default target. This builds shared libraries only -default: sharedmods - -# Build everything -all: static sharedmods - -# Build shared libraries from our extension modules -sharedmods: $(SHAREDMODS) - -# Build a static Python binary containing our extension modules -static: $(TARGET) -$(TARGET): $(ADDOBJS) lib.a $(PYTHONLIBS) Makefile $(BASELIB) - $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) \ - $(ADDOBJS) lib.a $(PYTHONLIBS) \ - $(LINKPATH) $(BASELIB) $(MODLIBS) $(LIBS) $(SYSLIBS) \ - -o $(TARGET) $(LDLAST) - -#------------------------------------------------------------------------ -#------------------------------------------------------------------------ -# This is a default version of the install target for wxPython. It just -# redirects to wxInstall below... - -install: wxInstall - -#install: sharedmods -# if test ! -d $(DESTSHARED) ; then \ -# mkdir $(DESTSHARED) ; else true ; fi -# -for i in X $(SHAREDMODS); do \ -# if test $$i != X; \ -# then $(INSTALL_SHARED) $$i $(DESTSHARED)/$$i; \ -# fi; \ -# done - - -# Build the library containing our extension modules -lib.a: $(MODOBJS) - -rm -f lib.a - ar cr lib.a $(MODOBJS) - -$(RANLIB) lib.a - -# This runs makesetup *twice* to use the BASESETUP definition from Setup -config.c Makefile: Makefile.pre Setup $(BASESETUP) $(MAKESETUP) - $(MAKESETUP) \ - -m Makefile.pre -c $(CONFIGCIN) Setup -n $(BASESETUP) $(SETUP) - $(MAKE) -f Makefile do-it-again - -# Internal target to run makesetup for the second time -do-it-again: - $(MAKESETUP) \ - -m Makefile.pre -c $(CONFIGCIN) Setup -n $(BASESETUP) $(SETUP) - -# Make config.o from the config.c created by makesetup -config.o: config.c - $(CC) $(CFLAGS) -c config.c - -# Setup is copied from Setup.in *only* if it doesn't yet exist -Setup: - cp Setup.in Setup - -# Make the intermediate Makefile.pre from Makefile.pre.in -Makefile.pre: Makefile.pre.in sedscript - sed -f sedscript Makefile.pre.in >Makefile.pre - -# Shortcuts to make the sed arguments on one line -P=prefix -E=exec_prefix -H=Generated automatically from Makefile.pre.in by sedscript. -L=LINKFORSHARED - -# Make the sed script used to create Makefile.pre from Makefile.pre.in -sedscript: $(MAKEFILE) - sed -n \ - -e '1s/.*/1i\\/p' \ - -e '2s%.*%# $H%p' \ - -e '/^VERSION=/s/^VERSION=[ ]*\(.*\)/s%@VERSION[@]%\1%/p' \ - -e '/^CC=/s/^CC=[ ]*\(.*\)/s%@CC[@]%\1%/p' \ - -e '/^CCC=/s/^CCC=[ ]*\(.*\)/s%#@SET_CCC[@]%CCC=\1%/p' \ - -e '/^LINKCC=/s/^LINKCC=[ ]*\(.*\)/s%@LINKCC[@]%\1%/p' \ - -e '/^OPT=/s/^OPT=[ ]*\(.*\)/s%@OPT[@]%\1%/p' \ - -e '/^LDFLAGS=/s/^LDFLAGS=[ ]*\(.*\)/s%@LDFLAGS[@]%\1%/p' \ - -e '/^DEFS=/s/^DEFS=[ ]*\(.*\)/s%@DEFS[@]%\1%/p' \ - -e '/^LIBS=/s/^LIBS=[ ]*\(.*\)/s%@LIBS[@]%\1%/p' \ - -e '/^LIBM=/s/^LIBM=[ ]*\(.*\)/s%@LIBM[@]%\1%/p' \ - -e '/^LIBC=/s/^LIBC=[ ]*\(.*\)/s%@LIBC[@]%\1%/p' \ - -e '/^RANLIB=/s/^RANLIB=[ ]*\(.*\)/s%@RANLIB[@]%\1%/p' \ - -e '/^MACHDEP=/s/^MACHDEP=[ ]*\(.*\)/s%@MACHDEP[@]%\1%/p' \ - -e '/^SO=/s/^SO=[ ]*\(.*\)/s%@SO[@]%\1%/p' \ - -e '/^LDSHARED=/s/^LDSHARED=[ ]*\(.*\)/s%@LDSHARED[@]%\1%/p' \ - -e '/^CCSHARED=/s/^CCSHARED=[ ]*\(.*\)/s%@CCSHARED[@]%\1%/p' \ - -e '/^$L=/s/^$L=[ ]*\(.*\)/s%@$L[@]%\1%/p' \ - -e '/^$P=/s/^$P=\(.*\)/s%^$P=.*%$P=\1%/p' \ - -e '/^$E=/s/^$E=\(.*\)/s%^$E=.*%$E=\1%/p' \ - $(MAKEFILE) >sedscript - echo "/^#@SET_CCC@/d" >>sedscript - echo "/^installdir=/s%=.*%= $(installdir)%" >>sedscript - echo "/^exec_installdir=/s%=.*%=$(exec_installdir)%" >>sedscript - echo "/^srcdir=/s%=.*%= $(srcdir)%" >>sedscript - echo "/^VPATH=/s%=.*%= $(VPATH)%" >>sedscript - echo "/^LINKPATH=/s%=.*%= $(LINKPATH)%" >>sedscript - echo "/^BASELIB=/s%=.*%= $(BASELIB)%" >>sedscript - echo "/^BASESETUP=/s%=.*%= $(BASESETUP)%" >>sedscript - -# Bootstrap target -boot: clobber - VERSION=`$(PYTHON) -c "import sys; print sys.version[:3]"`; \ - installdir=`$(PYTHON) -c "import sys; print sys.prefix"`; \ - exec_installdir=`$(PYTHON) -c "import sys; print sys.exec_prefix"`; \ - $(MAKE) -f Makefile.pre.in VPATH=$(VPATH) srcdir=$(srcdir) \ - VERSION=$$VERSION \ - installdir=$$installdir \ - exec_installdir=$$exec_installdir \ - Makefile - -# Handy target to remove intermediate files and backups -clean: - -rm -f *.o *~ - -# Handy target to remove everything that is easily regenerated -clobber: clean - -rm -f *.a tags TAGS config.c Makefile.pre $(TARGET) sedscript - -rm -f *.so *.sl so_locations - - -# Handy target to remove everything you don't want to distribute -distclean: clobber - -rm -f Makefile Setup - - - - -#------------------------------------------------------------------------ -#------------------------------------------------------------------------ -# Custom rules and dependencies added for wxPython -# - -WXP_VERSION=2.0b9 - -SWIGFLAGS=-c++ -shadow -python -dnone -D__WXGTK__ $(SEPARATE) - - -PYMODULES = $(GENCODEDIR)/wx.py $(GENCODEDIR)/events.py \ - $(GENCODEDIR)/windows.py $(GENCODEDIR)/misc.py \ - $(GENCODEDIR)/gdi.py $(GENCODEDIR)/mdi.py \ - $(GENCODEDIR)/controls.py $(GENCODEDIR)/controls2.py \ - $(GENCODEDIR)/windows2.py $(GENCODEDIR)/cmndlgs.py \ - $(GENCODEDIR)/frames.py $(GENCODEDIR)/stattool.py \ - $(GENCODEDIR)/utils.py $(GENCODEDIR)/windows3.py \ - $(GENCODEDIR)/image.py $(GENCODEDIR)/glcanvas.py \ - __init__.py - - -# Implicit rules to run SWIG -$(GENCODEDIR)/%.cpp : %.i - swig $(SWIGFLAGS) -c -o $@ $< - -$(GENCODEDIR)/%.py : %.i - swig $(SWIGFLAGS) -c -o $@ $< - - -# This one must leave out the -c flag so we define the whole rule -$(GENCODEDIR)/wx.cpp $(GENCODEDIR)/wx.py : wx.i my_typemaps.i _defs.i _extras.py - swig $(SWIGFLAGS) -o $(GENCODEDIR)/wx.cpp wx.i - - -# define some dependencies -$(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py : windows.i my_typemaps.i _defs.i -$(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py : windows2.i my_typemaps.i _defs.i -$(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py : windows3.i my_typemaps.i _defs.i -$(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py : events.i my_typemaps.i _defs.i -$(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py : misc.i my_typemaps.i _defs.i -$(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py : gdi.i my_typemaps.i _defs.i -$(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py : mdi.i my_typemaps.i _defs.i -$(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py : controls.i my_typemaps.i _defs.i -$(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py : controls2.i my_typemaps.i _defs.i -$(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py : cmndlgs.i my_typemaps.i _defs.i -$(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py : frames.i my_typemaps.i _defs.i -$(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py : stattool.i my_typemaps.i _defs.i -$(GENCODEDIR)/image.cpp $(GENCODEDIR)/image.py : image.i my_typemaps.i _defs.i -$(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py : utils.i my_typemaps.i _defs.i -$(GENCODEDIR)/glcanvas.cpp $(GENCODEDIR)/glcanvas.py : glcanvas.i my_typemaps.i _defs.i - -$(GENCODEDIR)/helpers.cpp: - ln -s `pwd`/helpers.cpp $@ - -$(GENCODEDIR)/_glcanvas.cpp: - -cp $(WXWIN)/utils/glcanvas/$(GENCODEDIR)/glcanvas.cpp $@ - -cp $(WXWIN)/utils/glcanvas/$(GENCODEDIR)/glcanvas.h ./glcanvas.h - - -wxInstall : sharedmods $(PYMODULES) - if test ! -d $(TARGETDIR) ; then \ - mkdir $(TARGETDIR) ; else true ; fi - if [ "$(SHAREDMODS)" != "" ]; then \ - chmod 755 $(SHAREDMODS); \ - cp $(SHAREDMODS) $(TARGETDIR); fi - -for i in $(PYMODULES); do \ - cp $$i $(TARGETDIR); \ - done - if [ "$(TARGETDIR)" != ".." ]; then \ - mkdir $(TARGETDIR)/lib; \ - mkdir $(TARGETDIR)/demo; \ - cp ../lib/*.py $(TARGETDIR)/lib; \ - cp ../demo/*.py $(TARGETDIR)/demo; \ - cp ../lib/*.txt $(TARGETDIR)/lib; \ - cp ../demo/*.txt $(TARGETDIR)/demo;\ - fi - if [ "$(TARGETDIR)" != ".." ]; then \ - python $(LIBDEST)/compileall.py $(TARGETDIR); \ - python -O $(LIBDEST)/compileall.py $(TARGETDIR); \ - else \ - python $(LIBDEST)/compileall.py -l $(TARGETDIR); \ - python -O $(LIBDEST)/compileall.py -l $(TARGETDIR);\ - fi - - - - -lib : libwxPython.a - -libwxPython.a : lib.a - cp $< $@ - -dist: tgz rpm - -tgz: - cd ../..; wxPython/distrib/maketgz $(WXP_VERSION) - -rpm: - cd ../distrib; ./makerpm $(WXP_VERSION) - diff --git a/utils/wxPython/src/Setup.in b/utils/wxPython/src/Setup.in deleted file mode 100644 index f95a4409f5..0000000000 --- a/utils/wxPython/src/Setup.in +++ /dev/null @@ -1,45 +0,0 @@ -## This file gives the details of what is needed to build this extension -## module so the Makefile can be created. - -## If you have not done "make install" for wxWindows then see Setup.in.linux -## for a more verbose version of this file. - -*shared* - -CCC=c++ -WXWIN=../../.. -GENCODEDIR=gtk -srcdir=$(GENCODEDIR) -WX_CONFIG_CFLAGS=`wx-config --cflags` -WX_CONFIG_LIBS=`wx-config --libs` - - -## Depending on how your Python was built, you may have to set this -## value to use the C++ driver to link with instead of the default -## C driver. For example: -MY_LDSHARED=$(CCC) -shared - -## Same as above, but for statically linking Python and wxPython together, -## in other words, if you comment out the *shared* above. If this is the -## case then you should ensure that the main() function is Python's, not -## wxWindows'. You can rebuild $(WXWIN)/src/gtk/app.cpp with NOMAIN defined -## to force this... -MY_LINKCC=$(CCC) - - -## Pick one of these, or set your own. This is where the wxPython module -## should be installed. It should be a subdirectory named wxPython. -#TARGETDIR=.. -TARGETDIR=$(BINLIBDEST)/site-packages/wxPython - - -wxc wx.cpp helpers.cpp windows.cpp events.cpp misc.cpp gdi.cpp \ - mdi.cpp controls.cpp controls2.cpp windows2.cpp cmndlgs.cpp \ - frames.cpp stattool.cpp windows3.cpp image.cpp \ - utils.cpp \ - ## comment out the next line to disable wxGLCanvas - _glcanvas.cpp glcanvas.cpp -DWITH_GLCANVAS -lGL -lGLU \ - -I. $(WX_CONFIG_CFLAGS) -I/usr/local/lib/glib/include \ - -DSWIG_GLOBAL -DWXP_WITH_THREAD $(SEPARATE) -Xlinker $(WX_CONFIG_LIBS) - -##-Xlinker -Bstatic diff --git a/utils/wxPython/src/Setup.in.linux b/utils/wxPython/src/Setup.in.linux deleted file mode 100644 index dc9a0f6c44..0000000000 --- a/utils/wxPython/src/Setup.in.linux +++ /dev/null @@ -1,56 +0,0 @@ -# This file gives the details of what is needed to build this extension -# module so the Makefile can be created. - -### -### This file should be created by configure. Currently it is tweaked by hand. -### - -*shared* - -CCC=c++ -WXWIN=../../.. -GENCODEDIR=gtk -srcdir=$(GENCODEDIR) - -# Depending on how your Python was built, you may have to set this -# value to use the C++ driver to link with instead of the default -# C driver. For example: -MY_LDSHARED=$(CCC) -shared - -# Same as above, but for statically linking Python and wxPython together, -# in other words, if you comment out the *shared* above. If this is the -# case then you should ensure that the main() function is Python's, not -# wxWindows'. You can rebuild $(WXWIN)/src/gtk/app.cpp with NOMAIN defined -# to force this... -MY_LINKCC=$(CCC) - - -## Pick one of these, or set your own. This is where the -## wxPython module should be installed. It should be a -## subdirectory named wxPython. -TARGETDIR=.. -#TARGETDIR=$(BINLIBDEST)/site-packages/wxPython - -SEPARATE=-DSEPARATE - -wxc wx.cpp helpers.cpp windows.cpp events.cpp misc.cpp gdi.cpp \ - mdi.cpp controls.cpp controls2.cpp windows2.cpp cmndlgs.cpp \ - frames.cpp stattool.cpp windows3.cpp \ - # CFLAGS - -I. -I$(WXWIN)/include -I/usr/lib/glib/include -I$(WXWIN)/src \ - -I/usr/X11R6/include -DSWIG_GLOBAL -D__WXGTK__ \ - -DWXP_WITH_THREAD $(SEPARATE) \ - #-D__WXDEBUG__ \ - # LFLAGS - -L$(WXWIN)/lib/Linux -L/usr/X11R6/lib \ - -lwx_gtk2 -lgtk -lgdk -lglib -lXext -lX11 - -utilsc utils.cpp \ - # CFLAGS - -I. -I$(WXWIN)/include -I/usr/lib/glib/include -I$(WXWIN)/src \ - -I/usr/X11R6/include -DSWIG_GLOBAL -D__WXGTK__ \ - -DWXP_WITH_THREAD $(SEPARATE) \ - #-D__WXDEBUG__ \ - # LFLAGS - -L$(WXWIN)/lib/Linux -L/usr/X11R6/lib \ - -lwx_gtk2 -lgtk -lgdk -lglib -lXext -lX11 diff --git a/utils/wxPython/src/Setup.in.solaris b/utils/wxPython/src/Setup.in.solaris deleted file mode 100644 index d4c3d651af..0000000000 --- a/utils/wxPython/src/Setup.in.solaris +++ /dev/null @@ -1,45 +0,0 @@ -# This file gives the details of what is needed to build this extension -# module so the Makefile can be created. - -### -### This file should be created by configure. Currently it is tweaked by hand. -### - -#*shared* - -CCC=c++ -WXWIN=../../.. -GENCODEDIR=gtk -srcdir=$(GENCODEDIR) - -# Depending on how your Python was built, you may have to set this -# value to use the C++ driver to link with instead of the default -# C driver. For example: -#MY_LDSHARED=$(CCC) -shared - -# Same as above, but for statically linking Python and wxPython together, -# in other words, if you comment out the *shared* above. If this is the -# case then you should ensure that the main() function is Python's, not -# wxWindows'. You can rebuild $(WXWIN)/src/gtk/app.cpp with NOMAIN defined -# to force this... -MY_LINKCC=$(CCC) - - -## Pick one of these, or set your own. This is where the -## wxPython module should be installed. It should be a -## subdirectory named wxPython. -TARGETDIR=.. -#TARGETDIR=$(BINLIBDEST)/site-packages/wxPython - - -wxc wx.cpp helpers.cpp windows.cpp events.cpp misc.cpp gdi.cpp \ - mdi.cpp controls.cpp controls2.cpp windows2.cpp cmndlgs.cpp \ - frames.cpp stattool.cpp utils.cpp windows3.cpp \ - # CFLAGS - -I. -I$(WXWIN)/include -I/usr/local/lib/glib/include -I$(WXWIN)/src \ - -I/usr/X/include -DSWIG_GLOBAL -D__WXGTK__ \ - #-D__WXDEBUG__ \ - # LFLAGS - -L$(WXWIN)/lib/solaris2.6 -L/usr/X/lib \ - -L/usr/local/lib/gcc-lib/sparc-sun-solaris2.6/2.8.1 \ - -lwx_gtk2 -lgtk -lgdk -lglib -lXext -lX11 -lstdc++ -lgcc diff --git a/utils/wxPython/src/__init__.py b/utils/wxPython/src/__init__.py deleted file mode 100644 index 8967f75e0a..0000000000 --- a/utils/wxPython/src/__init__.py +++ /dev/null @@ -1,43 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: __init__.py -# Purpose: The presence of this file turns this directory into a -# Python package. -# -# Author: Robin Dunn -# -# Created: 8/8/98 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.3 1998/12/15 20:41:12 RD -# Changed the import semantics from "from wxPython import *" to "from -# wxPython.wx import *" This is for people who are worried about -# namespace pollution, they can use "from wxPython import wx" and then -# prefix all the wxPython identifiers with "wx." -# -# Added wxTaskbarIcon for wxMSW. -# -# Made the events work for wxGrid. -# -# Added wxConfig. -# -# Added wxMiniFrame for wxGTK, (untested.) -# -# Changed many of the args and return values that were pointers to gdi -# objects to references to reflect changes in the wxWindows API. -# -# Other assorted fixes and additions. -# -# Revision 1.2 1998/10/07 07:34:32 RD -# Version 0.4.1 for wxGTK -# -# Revision 1.1 1998/08/09 08:25:49 RD -# Initial version -# -# diff --git a/utils/wxPython/src/_defs.i b/utils/wxPython/src/_defs.i deleted file mode 100644 index 56899adb0c..0000000000 --- a/utils/wxPython/src/_defs.i +++ /dev/null @@ -1,926 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: _defs.i -// Purpose: Definitions and stuff -// -// Author: Robin Dunn -// -// Created: 6/24/97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - - -//--------------------------------------------------------------------------- -// Forward declares... - -class wxAcceleratorEntry; -class wxAcceleratorTable; -class wxActivateEvent; -class wxBitmapButton; -class wxBitmap; -class wxBrush; -class wxButton; -class wxCalculateLayoutEvent; -class wxCheckBox; -class wxCheckListBox; -class wxChoice; -class wxClientDC; -class wxCloseEvent; -class wxColourData; -class wxColourDialog; -class wxColour; -class wxComboBox; -class wxCommandEvent; -class wxConfig; -class wxControl; -class wxCursor; -class wxDC; -class wxDialog; -class wxDirDialog; -class wxDropFilesEvent; -class wxEraseEvent; -class wxEvent; -class wxEvtHandler; -class wxFileDialog; -class wxFocusEvent; -class wxFontData; -class wxFontDialog; -class wxFont; -class wxFrame; -class wxGauge; -class wxGridCell; -class wxGridEvent; -class wxGrid; -class wxIconizeEvent; -class wxIcon; -class wxIdleEvent; -class wxImageList; -class wxIndividualLayoutConstraint; -class wxInitDialogEvent; -class wxJoystickEvent; -class wxKeyEvent; -class wxLayoutAlgorithm; -class wxLayoutConstraints; -class wxListBox; -class wxListCtrl; -class wxListEvent; -class wxListItem; -class wxMDIChildFrame; -class wxMDIClientWindow; -class wxMDIParentFrame; -class wxMask; -class wxMaximizeEvent; -class wxMemoryDC; -class wxMenuBar; -class wxMenuEvent; -class wxMenuItem; -class wxMenu; -class wxMessageDialog; -class wxMetaFileDC; -class wxMiniFrame; -class wxMouseEvent; -class wxMoveEvent; -class wxNotebookEvent; -class wxNotebook; -class wxPageSetupData; -class wxPageSetupDialog; -class wxPaintDC; -class wxPaintEvent; -class wxPalette; -class wxPanel; -class wxPen; -class wxPoint; -class wxPostScriptDC; -class wxPrintData; -class wxPrintDialog; -class wxPrinterDC; -class wxQueryLayoutInfoEvent; -class wxRadioBox; -class wxRadioButton; -class wxRealPoint; -class wxRect; -class wxRegionIterator; -class wxRegion; -class wxSashEvent; -class wxSashLayoutWindow; -class wxSashWindow; -class wxScreenDC; -class wxScrollBar; -class wxScrollEvent; -class wxScrolledWindow; -class wxShowEvent; -class wxSingleChoiceDialog; -class wxSizeEvent; -class wxSize; -class wxSlider; -class wxSpinButton; -class wxSpinEvent; -class wxSplitterWindow; -class wxStaticBitmap; -class wxStaticBox; -class wxStaticText; -class wxStatusBar; -class wxSysColourChangedEvent; -class wxTaskBarIcon; -class wxTextCtrl; -class wxTextEntryDialog; -class wxTimer; -class wxToolBarTool; -class wxToolBar; -class wxToolTip; -class wxTreeCtrl; -class wxTreeEvent; -class wxTreeItemData; -class wxTreeItemId; -class wxUpdateUIEvent; -class wxWindowDC; -class wxWindow; - -class wxPyApp; -class wxPyMenu; -class wxPyTimer; - - -//--------------------------------------------------------------------------- - -// some definitions for SWIG only -typedef unsigned char byte; -typedef short int WXTYPE; -typedef int wxWindowID; -typedef unsigned int uint; -typedef signed int EBool; -typedef unsigned int size_t - -//--------------------------------------------------------------------------- - -// General numeric #define's and etc. Making them all enums makes SWIG use the -// real macro when making the Python Int - -enum { - wxMAJOR_VERSION, - wxMINOR_VERSION, - wxRELEASE_NUMBER, - - wxNOT_FOUND, - - wxVSCROLL, - wxHSCROLL, - wxCAPTION, - wxDOUBLE_BORDER, - wxSUNKEN_BORDER, - wxRAISED_BORDER, - wxBORDER, - wxSIMPLE_BORDER, - wxSTATIC_BORDER, - wxTRANSPARENT_WINDOW, - wxNO_BORDER, - wxUSER_COLOURS, - wxNO_3D, -//wxOVERRIDE_KEY_TRANSLATIONS, - wxTAB_TRAVERSAL, - wxHORIZONTAL, - wxVERTICAL, - wxBOTH, - wxCENTER_FRAME, - wxSTAY_ON_TOP, - wxICONIZE, - wxMINIMIZE, - wxMAXIMIZE, - wxTHICK_FRAME, - wxSYSTEM_MENU, - wxMINIMIZE_BOX, - wxMAXIMIZE_BOX, - wxTINY_CAPTION_HORIZ, - wxTINY_CAPTION_VERT, - wxRESIZE_BOX, - wxRESIZE_BORDER, - wxDIALOG_MODAL, - wxDIALOG_MODELESS, - wxDEFAULT_FRAME_STYLE, - wxDEFAULT_DIALOG_STYLE, - - wxFRAME_TOOL_WINDOW, - wxCLIP_CHILDREN, - - wxRETAINED, - wxBACKINGSTORE, - wxTB_3DBUTTONS, - wxTB_HORIZONTAL, - wxTB_VERTICAL, - wxTB_FLAT, - wxCOLOURED, - wxFIXED_LENGTH, - wxALIGN_LEFT, - wxALIGN_CENTER, - wxALIGN_CENTRE, - wxALIGN_RIGHT, - wxLB_NEEDED_SB, - wxLB_ALWAYS_SB, - wxLB_SORT, - wxLB_SINGLE, - wxLB_MULTIPLE, - wxLB_EXTENDED, - wxLB_OWNERDRAW, - wxLB_HSCROLL, - wxPROCESS_ENTER, - wxPASSWORD, - wxTE_PROCESS_ENTER, - wxTE_PASSWORD, - wxTE_READONLY, - wxTE_MULTILINE, - wxCB_SIMPLE, - wxCB_DROPDOWN, - wxCB_SORT, - wxCB_READONLY, - wxRA_HORIZONTAL, - wxRA_VERTICAL, - wxRA_SPECIFY_ROWS, - wxRA_SPECIFY_COLS, - wxRB_GROUP, - wxGA_PROGRESSBAR, - wxGA_HORIZONTAL, - wxGA_VERTICAL, - wxSL_HORIZONTAL, - wxSL_VERTICAL, - wxSL_AUTOTICKS, - wxSL_LABELS, - wxSL_LEFT, - wxSL_TOP, - wxSL_RIGHT, - wxSL_BOTTOM, - wxSL_BOTH, - wxSL_SELRANGE, - wxSB_HORIZONTAL, - wxSB_VERTICAL, - wxST_SIZEGRIP, - wxBU_AUTODRAW, - wxBU_NOAUTODRAW, - wxTR_HAS_BUTTONS, - wxTR_EDIT_LABELS, - wxTR_LINES_AT_ROOT, - wxLC_ICON, - wxLC_SMALL_ICON, - wxLC_LIST, - wxLC_REPORT, - wxLC_ALIGN_TOP, - wxLC_ALIGN_LEFT, - wxLC_AUTOARRANGE, - wxLC_USER_TEXT, - wxLC_EDIT_LABELS, - wxLC_NO_HEADER, - wxLC_NO_SORT_HEADER, - wxLC_SINGLE_SEL, - wxLC_SORT_ASCENDING, - wxLC_SORT_DESCENDING, - wxLC_MASK_TYPE, - wxLC_MASK_ALIGN, - wxLC_MASK_SORT, - wxSP_VERTICAL, - wxSP_HORIZONTAL, - wxSP_ARROW_KEYS, - wxSP_WRAP, - wxSP_NOBORDER, - wxSP_3D, - wxSP_BORDER, - wxFLOOD_SURFACE, - wxFLOOD_BORDER, - wxODDEVEN_RULE, - wxWINDING_RULE, - wxTOOL_TOP, - wxTOOL_BOTTOM, - wxTOOL_LEFT, - wxTOOL_RIGHT, - wxOK, - wxYES_NO, - wxCANCEL, - wxYES, - wxNO, - wxICON_EXCLAMATION, - wxICON_HAND, - wxICON_QUESTION, - wxICON_INFORMATION, - wxICON_STOP, - wxICON_ASTERISK, - wxICON_MASK, - wxCENTRE, - wxCENTER, - wxSIZE_AUTO_WIDTH, - wxSIZE_AUTO_HEIGHT, - wxSIZE_AUTO, - wxSIZE_USE_EXISTING, - wxSIZE_ALLOW_MINUS_ONE, -#ifndef __WXGTK__ - wxDF_TEXT, - wxDF_BITMAP, - wxDF_METAFILE, - wxDF_DIB, - wxDF_OEMTEXT, - wxDF_FILENAME, -#endif - wxPORTRAIT, - wxLANDSCAPE, - 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_PREVIEW, - wxID_ABOUT, - wxID_HELP_CONTENTS, - wxID_HELP_COMMANDS, - wxID_HELP_PROCEDURES, - wxID_HELP_CONTEXT, - wxID_CUT, - wxID_COPY, - wxID_PASTE, - wxID_CLEAR, - wxID_FIND, - wxID_FILE1, - wxID_FILE2, - wxID_FILE3, - wxID_FILE4, - wxID_FILE5, - wxID_FILE6, - wxID_FILE7, - wxID_FILE8, - wxID_FILE9, - wxID_OK, - wxID_CANCEL, - wxID_APPLY, - wxID_YES, - wxID_NO, - wxID_STATIC, - wxBITMAP_TYPE_BMP, - wxBITMAP_TYPE_BMP_RESOURCE, - wxBITMAP_TYPE_ICO, - wxBITMAP_TYPE_ICO_RESOURCE, - wxBITMAP_TYPE_CUR, - wxBITMAP_TYPE_CUR_RESOURCE, - wxBITMAP_TYPE_XBM, - wxBITMAP_TYPE_XBM_DATA, - wxBITMAP_TYPE_XPM, - wxBITMAP_TYPE_XPM_DATA, - wxBITMAP_TYPE_TIF, - wxBITMAP_TYPE_TIF_RESOURCE, - wxBITMAP_TYPE_GIF, - wxBITMAP_TYPE_GIF_RESOURCE, - wxBITMAP_TYPE_PNG, - wxBITMAP_TYPE_PNG_RESOURCE, - wxBITMAP_TYPE_ANY, - wxBITMAP_TYPE_RESOURCE, - wxBITMAP_TYPE_JPEG, - - wxOPEN, - wxSAVE, - wxHIDE_READONLY, - wxOVERWRITE_PROMPT, - - wxACCEL_ALT, - wxACCEL_CTRL, - wxACCEL_SHIFT, -}; - - -// // Standard error codes -// enum ErrCode -// { -// ERR_PARAM = (-4000), -// ERR_NODATA, -// ERR_CANCEL, -// ERR_SUCCESS = 0 -// }; - - -enum { - wxDEFAULT , - wxDECORATIVE, - wxROMAN, - wxSCRIPT, - wxSWISS, - wxMODERN, - wxTELETYPE, - wxVARIABLE, - wxFIXED, - wxNORMAL, - wxLIGHT, - wxBOLD, - wxITALIC, - wxSLANT, - wxSOLID, - wxDOT, - wxLONG_DASH, - wxSHORT_DASH, - wxDOT_DASH, - wxUSER_DASH, - wxTRANSPARENT, - wxSTIPPLE, - wxBDIAGONAL_HATCH, - wxCROSSDIAG_HATCH, - wxFDIAGONAL_HATCH, - wxCROSS_HATCH, - wxHORIZONTAL_HATCH, - wxVERTICAL_HATCH, - wxJOIN_BEVEL, - wxJOIN_MITER, - wxJOIN_ROUND, - wxCAP_ROUND, - wxCAP_PROJECTING, - wxCAP_BUTT -}; - -typedef enum { - wxCLEAR, // 0 - wxXOR, // src XOR dst - wxINVERT, // NOT dst - wxOR_REVERSE, // src OR (NOT dst) - wxAND_REVERSE,// src AND (NOT dst) - wxCOPY, // src - wxAND, // src AND dst - wxAND_INVERT, // (NOT src) AND dst - wxNO_OP, // dst - wxNOR, // (NOT src) AND (NOT dst) - wxEQUIV, // (NOT src) XOR dst - wxSRC_INVERT, // (NOT src) - wxOR_INVERT, // (NOT src) OR dst - wxNAND, // (NOT src) OR (NOT dst) - wxOR, // src OR dst - wxSET, // 1 - wxSRC_OR, // source _bitmap_ OR destination - wxSRC_AND // source _bitmap_ AND destination -} form_ops_t; - -enum _Virtual_keycodes { - WXK_BACK = 8, - WXK_TAB = 9, - WXK_RETURN = 13, - WXK_ESCAPE = 27, - WXK_SPACE = 32, - WXK_DELETE = 127, - - WXK_START = 300, - WXK_LBUTTON, - WXK_RBUTTON, - WXK_CANCEL, - WXK_MBUTTON, - WXK_CLEAR, - WXK_SHIFT, - WXK_CONTROL, - WXK_MENU, - WXK_PAUSE, - WXK_CAPITAL, - WXK_PRIOR, // Page up - WXK_NEXT, // Page down - 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 -}; - -typedef enum { - wxCURSOR_NONE = 0, - wxCURSOR_ARROW = 1, - wxCURSOR_BULLSEYE, - wxCURSOR_CHAR, - wxCURSOR_CROSS, - wxCURSOR_HAND, - wxCURSOR_IBEAM, - wxCURSOR_LEFT_BUTTON, - wxCURSOR_MAGNIFIER, - wxCURSOR_MIDDLE_BUTTON, - wxCURSOR_NO_ENTRY, - wxCURSOR_PAINT_BRUSH, - wxCURSOR_PENCIL, - wxCURSOR_POINT_LEFT, - wxCURSOR_POINT_RIGHT, - wxCURSOR_QUESTION_ARROW, - wxCURSOR_RIGHT_BUTTON, - wxCURSOR_SIZENESW, - wxCURSOR_SIZENS, - wxCURSOR_SIZENWSE, - wxCURSOR_SIZEWE, - wxCURSOR_SIZING, - wxCURSOR_SPRAYCAN, - wxCURSOR_WAIT, - wxCURSOR_WATCH, - wxCURSOR_BLANK -// #ifndef __WXMSW__ -// /* Not yet implemented for Windows */ -// , wxCURSOR_CROSS_REVERSE, -// wxCURSOR_DOUBLE_ARROW, -// wxCURSOR_BASED_ARROW_UP, -// wxCURSOR_BASED_ARROW_DOWN -// #endif -} _standard_cursors_t; - - - -typedef enum { - 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 - - 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 - -} wxPaperSize ; - - - -#define FALSE 0 -#define false 0 -#define TRUE 1 -#define true 1 - -const char* wxVERSION_STRING; - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - -/* - * Event types - * - */ -enum wxEventType { - wxEVT_NULL = 0, - wxEVT_FIRST = 10000, - - // New names - wxEVT_COMMAND_BUTTON_CLICKED, - wxEVT_COMMAND_CHECKBOX_CLICKED, - wxEVT_COMMAND_CHOICE_SELECTED, - wxEVT_COMMAND_LISTBOX_SELECTED, - wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, - wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, - wxEVT_COMMAND_TEXT_UPDATED, - wxEVT_COMMAND_TEXT_ENTER, - wxEVT_COMMAND_MENU_SELECTED, - wxEVT_COMMAND_SLIDER_UPDATED, - wxEVT_COMMAND_RADIOBOX_SELECTED, - wxEVT_COMMAND_RADIOBUTTON_SELECTED, -// wxEVT_COMMAND_SCROLLBAR_UPDATED is now obsolete since we use wxEVT_SCROLL... events - wxEVT_COMMAND_SCROLLBAR_UPDATED, - wxEVT_COMMAND_VLBOX_SELECTED, - wxEVT_COMMAND_COMBOBOX_SELECTED, - wxEVT_COMMAND_TOOL_CLICKED, - wxEVT_COMMAND_TOOL_RCLICKED, - wxEVT_COMMAND_TOOL_ENTER, - wxEVT_SET_FOCUS, - wxEVT_KILL_FOCUS, - -/* Mouse event types */ - wxEVT_LEFT_DOWN, - wxEVT_LEFT_UP, - wxEVT_MIDDLE_DOWN, - wxEVT_MIDDLE_UP, - wxEVT_RIGHT_DOWN, - wxEVT_RIGHT_UP, - wxEVT_MOTION, - wxEVT_ENTER_WINDOW, - wxEVT_LEAVE_WINDOW, - wxEVT_LEFT_DCLICK, - wxEVT_MIDDLE_DCLICK, - wxEVT_RIGHT_DCLICK, - - // Non-client mouse events - wxEVT_NC_LEFT_DOWN = wxEVT_FIRST + 100, - wxEVT_NC_LEFT_UP, - wxEVT_NC_MIDDLE_DOWN, - wxEVT_NC_MIDDLE_UP, - wxEVT_NC_RIGHT_DOWN, - wxEVT_NC_RIGHT_UP, - wxEVT_NC_MOTION, - wxEVT_NC_ENTER_WINDOW, - wxEVT_NC_LEAVE_WINDOW, - wxEVT_NC_LEFT_DCLICK, - wxEVT_NC_MIDDLE_DCLICK, - wxEVT_NC_RIGHT_DCLICK, - -/* Character input event type */ - wxEVT_CHAR, - - /* - * Scrollbar event identifiers - */ - wxEVT_SCROLL_TOP, - wxEVT_SCROLL_BOTTOM, - wxEVT_SCROLL_LINEUP, - wxEVT_SCROLL_LINEDOWN, - wxEVT_SCROLL_PAGEUP, - wxEVT_SCROLL_PAGEDOWN, - wxEVT_SCROLL_THUMBTRACK, - - wxEVT_SIZE = wxEVT_FIRST + 200, - wxEVT_MOVE, - wxEVT_CLOSE_WINDOW, - wxEVT_END_SESSION, - wxEVT_QUERY_END_SESSION, - wxEVT_ACTIVATE_APP, - wxEVT_POWER, - wxEVT_CHAR_HOOK, - wxEVT_KEY_UP, - wxEVT_ACTIVATE, - wxEVT_CREATE, - wxEVT_DESTROY, - wxEVT_SHOW, - wxEVT_ICONIZE, - wxEVT_MAXIMIZE, - wxEVT_MOUSE_CAPTURE_CHANGED, - wxEVT_PAINT, - wxEVT_ERASE_BACKGROUND, - wxEVT_NC_PAINT, - wxEVT_PAINT_ICON, - wxEVT_MENU_CHAR, - wxEVT_MENU_INIT, - wxEVT_MENU_HIGHLIGHT, - wxEVT_POPUP_MENU_INIT, - wxEVT_CONTEXT_MENU, - wxEVT_SYS_COLOUR_CHANGED, - wxEVT_SETTING_CHANGED, - wxEVT_QUERY_NEW_PALETTE, - wxEVT_PALETTE_CHANGED, - wxEVT_JOY_BUTTON_DOWN, - wxEVT_JOY_BUTTON_UP, - wxEVT_JOY_MOVE, - wxEVT_JOY_ZMOVE, - wxEVT_DROP_FILES, - wxEVT_DRAW_ITEM, - wxEVT_MEASURE_ITEM, - wxEVT_COMPARE_ITEM, - wxEVT_INIT_DIALOG, - wxEVT_IDLE, - wxEVT_UPDATE_UI, - - /* Generic command events */ - // Note: a click is a higher-level event - // than button down/up - wxEVT_COMMAND_LEFT_CLICK, - wxEVT_COMMAND_LEFT_DCLICK, - wxEVT_COMMAND_RIGHT_CLICK, - wxEVT_COMMAND_RIGHT_DCLICK, - wxEVT_COMMAND_SET_FOCUS, - wxEVT_COMMAND_KILL_FOCUS, - wxEVT_COMMAND_ENTER, - - /* Tree control event types */ - wxEVT_COMMAND_TREE_BEGIN_DRAG, - wxEVT_COMMAND_TREE_BEGIN_RDRAG, - wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, - wxEVT_COMMAND_TREE_END_LABEL_EDIT, - wxEVT_COMMAND_TREE_DELETE_ITEM, - wxEVT_COMMAND_TREE_GET_INFO, - wxEVT_COMMAND_TREE_SET_INFO, - wxEVT_COMMAND_TREE_ITEM_EXPANDED, - wxEVT_COMMAND_TREE_ITEM_EXPANDING, - wxEVT_COMMAND_TREE_ITEM_COLLAPSED, - wxEVT_COMMAND_TREE_ITEM_COLLAPSING, - wxEVT_COMMAND_TREE_SEL_CHANGED, - wxEVT_COMMAND_TREE_SEL_CHANGING, - wxEVT_COMMAND_TREE_KEY_DOWN, - - /* List control event types */ - wxEVT_COMMAND_LIST_BEGIN_DRAG, - wxEVT_COMMAND_LIST_BEGIN_RDRAG, - wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, - wxEVT_COMMAND_LIST_END_LABEL_EDIT, - wxEVT_COMMAND_LIST_DELETE_ITEM, - wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, - wxEVT_COMMAND_LIST_GET_INFO, - wxEVT_COMMAND_LIST_SET_INFO, - wxEVT_COMMAND_LIST_ITEM_SELECTED, - wxEVT_COMMAND_LIST_ITEM_DESELECTED, - wxEVT_COMMAND_LIST_KEY_DOWN, - wxEVT_COMMAND_LIST_INSERT_ITEM, - wxEVT_COMMAND_LIST_COL_CLICK, - - /* Tab and notebook control event types */ - wxEVT_COMMAND_TAB_SEL_CHANGED, - wxEVT_COMMAND_TAB_SEL_CHANGING, - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, - wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING - -}; - - - - -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.14 1999/05/02 02:06:15 RD -// More for wxPython 2.0b9 (hopefully the last...) -// -// Revision 1.13 1999/04/30 03:29:18 RD -// -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.12.4.2 1999/03/28 06:35:01 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.12.4.1 1999/03/27 23:29:13 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.12 1999/02/27 04:21:58 RD -// -// Added missing wxRA_SPECIFY_ROWS, wxRA_SPECIFY_COLS -// -// Revision 1.11 1999/02/20 09:02:54 RD -// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -// window handle. If you can get the window handle into the python code, -// it should just work... More news on this later. -// -// Added wxImageList, wxToolTip. -// -// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -// wxRegConfig class. -// -// As usual, some bug fixes, tweaks, etc. -// -// Revision 1.10 1999/01/30 07:30:08 RD -// -// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -// -// Various cleanup, tweaks, minor additions, etc. to maintain -// compatibility with the current wxWindows. -// -// Revision 1.9 1998/12/15 20:41:13 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.8 1998/11/15 23:03:42 RD -// Removing some ifdef's for wxGTK -// -// Revision 1.7 1998/11/11 03:12:24 RD -// -// Additions for wxTreeCtrl -// -// Revision 1.6 1998/10/20 06:43:53 RD -// New wxTreeCtrl wrappers (untested) -// some changes in helpers -// etc. -// -// Revision 1.5 1998/10/02 06:40:32 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.4 1998/08/18 19:48:11 RD -// more wxGTK compatibility things. -// -// It builds now but there are serious runtime problems... -// -// Revision 1.3 1998/08/14 23:36:33 RD -// Beginings of wxGTK compatibility -// -// Revision 1.2 1998/08/14 03:16:35 RD -// removed some definitions that got removed from defs.h -// -// Revision 1.1 1998/08/09 08:25:49 RD -// Initial version -// -// diff --git a/utils/wxPython/src/_extras.py b/utils/wxPython/src/_extras.py deleted file mode 100644 index 3b2e9366a2..0000000000 --- a/utils/wxPython/src/_extras.py +++ /dev/null @@ -1,709 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: _extra.py -# Purpose: This file is appended to the shadow class file generated -# by SWIG. We add some unSWIGable things here. -# -# Author: Robin Dunn -# -# Created: 6/30/97 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -import sys - -#---------------------------------------------------------------------- -# This gives this module's dictionary to the C++ extension code... - -_wxSetDictionary(vars()) - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -# Helper function to link python methods to wxWindows virtual -# functions by name. - -def _checkForCallback(obj, name, event, theID=-1): - try: cb = getattr(obj, name) - except: pass - else: obj.Connect(theID, -1, event, cb) - -def _StdWindowCallbacks(win): - _checkForCallback(win, "OnChar", wxEVT_CHAR) - _checkForCallback(win, "OnSize", wxEVT_SIZE) - _checkForCallback(win, "OnEraseBackground", wxEVT_ERASE_BACKGROUND) - _checkForCallback(win, "OnSysColourChanged", wxEVT_SYS_COLOUR_CHANGED) - _checkForCallback(win, "OnInitDialog", wxEVT_INIT_DIALOG) - _checkForCallback(win, "OnPaint", wxEVT_PAINT) - _checkForCallback(win, "OnIdle", wxEVT_IDLE) - - -def _StdFrameCallbacks(win): - _StdWindowCallbacks(win) - _checkForCallback(win, "OnActivate", wxEVT_ACTIVATE) - _checkForCallback(win, "OnMenuHighlight", wxEVT_MENU_HIGHLIGHT) - _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - - -def _StdDialogCallbacks(win): - _StdWindowCallbacks(win) - _checkForCallback(win, "OnOk", wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK) - _checkForCallback(win, "OnApply", wxEVT_COMMAND_BUTTON_CLICKED, wxID_APPLY) - _checkForCallback(win, "OnCancel", wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL) - _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - _checkForCallback(win, "OnCharHook", wxEVT_CHAR_HOOK) - - -def _StdOnScrollCallbacks(win): - try: cb = getattr(win, "OnScroll") - except: pass - else: EVT_SCROLL(win, cb) - - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -# functions that look and act like the C++ Macros of the same name - - -# Miscellaneous -def EVT_SIZE(win, func): - win.Connect(-1, -1, wxEVT_SIZE, func) - -def EVT_MOVE(win, func): - win.Connect(-1, -1, wxEVT_MOVE, func) - -def EVT_CLOSE(win, func): - win.Connect(-1, -1, wxEVT_CLOSE_WINDOW, func) - -def EVT_PAINT(win, func): - win.Connect(-1, -1, wxEVT_PAINT, func) - -def EVT_ERASE_BACKGROUND(win, func): - win.Connect(-1, -1, wxEVT_ERASE_BACKGROUND, func) - -def EVT_CHAR(win, func): - win.Connect(-1, -1, wxEVT_CHAR, func) - -def EVT_CHAR_HOOK(win, func): - win.Connect(-1, -1, wxEVT_CHAR_HOOK, func) - -def EVT_MENU_HIGHLIGHT(win, id, func): - win.Connect(id, -1, wxEVT_MENU_HIGHLIGHT, func) - -def EVT_MENU_HIGHLIGHT_ALL(win, func): - win.Connect(-1, -1, wxEVT_MENU_HIGHLIGHT, func) - -def EVT_SET_FOCUS(win, func): - win.Connect(-1, -1, wxEVT_SET_FOCUS, func) - -def EVT_KILL_FOCUS(win, func): - win.Connect(-1, -1, wxEVT_KILL_FOCUS, func) - -def EVT_ACTIVATE(win, func): - win.Connect(-1, -1, wxEVT_ACTIVATE, func) - -def EVT_ACTIVATE_APP(win, func): - win.Connect(-1, -1, wxEVT_ACTIVATE_APP, func) - -def EVT_END_SESSION(win, func): - win.Connect(-1, -1, wxEVT_END_SESSION, func) - -def EVT_QUERY_END_SESSION(win, func): - win.Connect(-1, -1, wxEVT_QUERY_END_SESSION, func) - -def EVT_DROP_FILES(win, func): - win.Connect(-1, -1, wxEVT_DROP_FILES, func) - -def EVT_INIT_DIALOG(win, func): - win.Connect(-1, -1, wxEVT_INIT_DIALOG, func) - -def EVT_SYS_COLOUR_CHANGED(win, func): - win.Connect(-1, -1, wxEVT_SYS_COLOUR_CHANGED, func) - -def EVT_SHOW(win, func): - win.Connect(-1, -1, wxEVT_SHOW, func) - -def EVT_MAXIMIZE(win, func): - win.Connect(-1, -1, wxEVT_MAXIMIZE, func) - -def EVT_ICONIZE(win, func): - win.Connect(-1, -1, wxEVT_ICONIZE, func) - -def EVT_NAVIGATION_KEY(win, func): - win.Connect(-1, -1, wxEVT_NAVIGATION_KEY, func) - -def EVT_IDLE(win, func): - win.Connect(-1, -1, wxEVT_IDLE, func) - - -# Mouse Events -def EVT_LEFT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DOWN, func) - -def EVT_LEFT_UP(win, func): - win.Connect(-1, -1, wxEVT_LEFT_UP, func) - -def EVT_MIDDLE_DOWN(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_DOWN, func) - -def EVT_MIDDLE_UP(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_UP, func) - -def EVT_RIGHT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_DOWN, func) - -def EVT_RIGHT_UP(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_UP, func) - -def EVT_MOTION(win, func): - win.Connect(-1, -1, wxEVT_MOTION, func) - -def EVT_LEFT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DCLICK, func) - -def EVT_MIDDLE_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_DCLICK, func) - -def EVT_RIGHT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_DCLICK, func) - -def EVT_LEAVE_WINDOW(win, func): - win.Connect(-1, -1, wxEVT_LEAVE_WINDOW, func) - -def EVT_ENTER_WINDOW(win, func): - win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) - - -# all mouse events -def EVT_MOUSE_EVENTS(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DOWN, func) - win.Connect(-1, -1, wxEVT_LEFT_UP, func) - win.Connect(-1, -1, wxEVT_MIDDLE_DOWN, func) - win.Connect(-1, -1, wxEVT_MIDDLE_UP, func) - win.Connect(-1, -1, wxEVT_RIGHT_DOWN, func) - win.Connect(-1, -1, wxEVT_RIGHT_UP, func) - win.Connect(-1, -1, wxEVT_MOTION, func) - win.Connect(-1, -1, wxEVT_LEFT_DCLICK, func) - win.Connect(-1, -1, wxEVT_MIDDLE_DCLICK, func) - win.Connect(-1, -1, wxEVT_RIGHT_DCLICK, func) - win.Connect(-1, -1, wxEVT_LEAVE_WINDOW, func) - win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) - -# EVT_COMMAND -def EVT_COMMAND(win, id, cmd, func): - win.Connect(id, -1, cmd, func) - -def EVT_COMMAND_RANGE(win, id1, id2, cmd, func): - win.Connect(id1, id2, cmd, func) - -# Scrolling -def EVT_SCROLL(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_TOP, func) - win.Connect(-1, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(-1, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(-1, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK,func) - -def EVT_SCROLL_TOP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_TOP, func) - -def EVT_SCROLL_BOTTOM(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_BOTTOM, func) - -def EVT_SCROLL_LINEUP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_SCROLL_LINEDOWN(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN, func) - -def EVT_SCROLL_PAGEUP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_PAGEUP, func) - -def EVT_SCROLL_PAGEDOWN(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN, func) - -def EVT_SCROLL_THUMBTRACK(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK, func) - - - -# Scrolling, with an id -def EVT_COMMAND_SCROLL(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - -def EVT_COMMAND_SCROLL_TOP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - -def EVT_COMMAND_SCROLL_BOTTOM(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - -def EVT_COMMAND_SCROLL_LINEUP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_COMMAND_SCROLL_LINEDOWN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - -def EVT_COMMAND_SCROLL_PAGEUP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - -def EVT_COMMAND_SCROLL_PAGEDOWN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - -def EVT_COMMAND_SCROLL_THUMBTRACK(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK, func) - - -# Convenience commands -def EVT_BUTTON(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_BUTTON_CLICKED, func) - -def EVT_CHECKBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHECKBOX_CLICKED, func) - -def EVT_CHOICE(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHOICE_SELECTED, func) - -def EVT_LISTBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LISTBOX_SELECTED, func) - -def EVT_LISTBOX_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, func) - -def EVT_TEXT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TEXT_UPDATED, func) - -def EVT_TEXT_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TEXT_ENTER, func) - -def EVT_MENU(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_MENU_SELECTED, func) - -def EVT_MENU_RANGE(win, id1, id2, func): - win.Connect(id1, id2, wxEVT_COMMAND_MENU_SELECTED, func) - -def EVT_SLIDER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SLIDER_UPDATED, func) - -def EVT_RADIOBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RADIOBOX_SELECTED, func) - -def EVT_RADIOBUTTON(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, func) - -def EVT_VLBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_VLBOX_SELECTED, func) - -def EVT_COMBOBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_COMBOBOX_SELECTED, func) - -def EVT_TOOL(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_CLICKED, func) - -def EVT_TOOL_RCLICKED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_RCLICKED, func) - -def EVT_TOOL_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_ENTER, func) - -def EVT_CHECKLISTBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, func) - - -# Generic command events - -def EVT_COMMAND_LEFT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LEFT_CLICK, func) - -def EVT_COMMAND_LEFT_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LEFT_DCLICK, func) - -def EVT_COMMAND_RIGHT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RIGHT_CLICK, func) - -def EVT_COMMAND_RIGHT_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RIGHT_DCLICK, func) - -def EVT_COMMAND_SET_FOCUS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SET_FOCUS, func) - -def EVT_COMMAND_KILL_FOCUS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_KILL_FOCUS, func) - -def EVT_COMMAND_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_ENTER, func) - - -# wxNotebook events -def EVT_NOTEBOOK_PAGE_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, func) - -def EVT_NOTEBOOK_PAGE_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, func) - - -# wxTreeCtrl events -def EVT_TREE_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_DRAG, func) - -def EVT_TREE_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func) - -def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func) - -def EVT_TREE_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_END_LABEL_EDIT, func) - -def EVT_TREE_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_GET_INFO, func) - -def EVT_TREE_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SET_INFO, func) - -def EVT_TREE_ITEM_EXPANDED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDED, func) - -def EVT_TREE_ITEM_EXPANDING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDING, func) - -def EVT_TREE_ITEM_COLLAPSED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSED, func) - -def EVT_TREE_ITEM_COLLAPSING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSING, func) - -def EVT_TREE_SEL_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGED, func) - -def EVT_TREE_SEL_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGING, func) - -def EVT_TREE_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_KEY_DOWN, func) - -def EVT_TREE_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_DELETE_ITEM, func) - - -# wxSpinButton -def EVT_SPIN_UP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_SPIN_DOWN(win, id, func): - win.Connect(id, -1,wxEVT_SCROLL_LINEDOWN, func) - -def EVT_SPIN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - - - - -# wxTaskBarIcon -def EVT_TASKBAR_MOVE(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_MOVE, func) - -def EVT_TASKBAR_LEFT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DOWN, func) - -def EVT_TASKBAR_LEFT_UP(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_UP, func) - -def EVT_TASKBAR_RIGHT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DOWN, func) - -def EVT_TASKBAR_RIGHT_UP(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_UP, func) - -def EVT_TASKBAR_LEFT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DCLICK, func) - -def EVT_TASKBAR_RIGHT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DCLICK, func) - - -# wxGrid -def EVT_GRID_SELECT_CELL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_SELECT_CELL, fn) - -def EVT_GRID_CREATE_CELL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CREATE_CELL, fn) - -def EVT_GRID_CHANGE_LABELS(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CHANGE_LABELS, fn) - -def EVT_GRID_CHANGE_SEL_LABEL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CHANGE_SEL_LABEL, fn) - -def EVT_GRID_CELL_CHANGE(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_CHANGE, fn) - -def EVT_GRID_CELL_LCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_LCLICK, fn) - -def EVT_GRID_CELL_RCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_RCLICK, fn) - -def EVT_GRID_LABEL_LCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_LABEL_LCLICK, fn) - -def EVT_GRID_LABEL_RCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_LABEL_RCLICK, fn) - - -# wxSashWindow -def EVT_SASH_DRAGGED(win, id, func): - win.Connect(id, -1, wxEVT_SASH_DRAGGED, func) - -def EVT_SASH_DRAGGED_RANGE(win, id1, id2, func): - win.Connect(id1, id2, wxEVT_SASH_DRAGGED, func) - -def EVT_QUERY_LAYOUT_INFO(win, func): - win.Connect(-1, -1, wxEVT_EVT_QUERY_LAYOUT_INFO, func) - -def EVT_CALCULATE_LAYOUT(win, func): - win.Connect(-1, -1, wxEVT_EVT_CALCULATE_LAYOUT, func) - - -# wxListCtrl -def EVT_LIST_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_DRAG, func) - -def EVT_LIST_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_RDRAG, func) - -def EVT_LIST_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, func) - -def EVT_LIST_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_END_LABEL_EDIT, func) - -def EVT_LIST_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ITEM, func) - -def EVT_LIST_DELETE_ALL_ITEMS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, func) - -def EVT_LIST_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_GET_INFO, func) - -def EVT_LIST_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_SET_INFO, func) - -def EVT_LIST_ITEM_SELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_SELECTED, func) - -def EVT_LIST_ITEM_DESELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_DESELECTED, func) - -def EVT_LIST_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_KEY_DOWN, func) - -def EVT_LIST_INSERT_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_INSERT_ITEM, func) - -def EVT_LIST_COL_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func) - - -#---------------------------------------------------------------------- - -class wxTimer(wxPyTimer): - def __init__(self): - wxPyTimer.__init__(self, self.Notify) # derived class must provide - # Notify(self) method. - -#---------------------------------------------------------------------- -# Some wxWin methods can take "NULL" as parameters, but the shadow classes -# expect an object with the SWIG pointer as a 'this' member. This class -# and instance fools the shadow into passing the NULL pointer. - -class NullObj: - this = 'NULL' # SWIG converts this to (void*)0 - -NULL = NullObj() - - -#---------------------------------------------------------------------- -# aliases - -wxColor = wxColour -wxNamedColor = wxNamedColour - -wxPyDefaultPosition.Set(-1,-1) -wxPyDefaultSize.Set(-1,-1) - -# aliases so that C++ documentation applies: -wxDefaultPosition = wxPyDefaultPosition -wxDefaultSize = wxPyDefaultSize - - -# This is to cover up a bug in SWIG. We are redefining -# the shadow class that is generated for wxAcceleratorTable -# because SWIG incorrectly uses "arg0.this" -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,arg0) : - self.this = miscc.new_wxAcceleratorTable(arg0) - self.thisown = 1 - -#---------------------------------------------------------------------- - -## class wxPyStdOutWindow: -## def __init__(self, title = "wxPython: stdout/stderr"): -## self.frame = None -## self.title = title - -## def write(self, str): -## if not self.frame: -## self.frame = wxFrame(NULL, -1, self.title) -## self.text = wxTextCtrl(self.frame, -1, "", wxPoint(0,0), wxDefaultSize, -## wxTE_MULTILINE|wxTE_READONLY) -## self.frame.SetSize(wxSize(450, 300)) -## self.frame.Show(true) -## EVT_CLOSE(self.frame, self.OnCloseWindow) -## self.text.AppendText(str) - -## def OnCloseWindow(self, event): -## wxBell() -## self.frame.Destroy() -## self.frame = None -## self.text = None - - -## def close(self): -## if self.frame: -## self.frame.Close(true) - -_defRedirect = (wxPlatform == '__WXMSW__') - -#---------------------------------------------------------------------- -# The main application class. Derive from this and implement an OnInit -# method that creates a frame and then calls self.SetTopWindow(frame) - -class wxApp(wxPyApp): - error = 'wxApp.error' - - def __init__(self, redirect=_defRedirect, filename=None): - wxPyApp.__init__(self) - self.stdioWin = None - self.saveStdio = (sys.stdout, sys.stderr) - if redirect: - self.RedirectStdio(filename) - - # this initializes wxWindows and then calls our OnInit - _wxStart(self.OnInit) - - - def __del__(self): - try: - self.RestoreStdio() - except: - pass - - def RedirectStdio(self, filename): - if filename: - sys.stdout = sys.stderr = open(filename, 'a') - else: - #raise self.error, 'wxPyStdOutWindow not yet implemented.' - self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow() - - def RestoreStdio(self): - sys.stdout, sys.stderr = self.saveStdio - if self.stdioWin != None: - self.stdioWin.close() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.12 1999/04/30 03:29:18 RD -# wxPython 2.0b9, first phase (win32) -# Added gobs of stuff, see wxPython/README.txt for details -# -# Revision 1.11.4.2 1999/03/28 06:35:01 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.11.4.1 1999/03/27 23:29:13 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.11 1999/02/20 09:02:55 RD -# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -# window handle. If you can get the window handle into the python code, -# it should just work... More news on this later. -# -# Added wxImageList, wxToolTip. -# -# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -# wxRegConfig class. -# -# As usual, some bug fixes, tweaks, etc. -# -# Revision 1.10 1999/02/01 00:10:39 RD -# -# Added the missing EVT_LIST_ITEM_SELECTED and friends. -# -# Revision 1.9 1999/01/30 07:30:09 RD -# -# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -# -# Various cleanup, tweaks, minor additions, etc. to maintain -# compatibility with the current wxWindows. -# -# Revision 1.8 1999/01/29 21:13:42 HH -# Added aliases for wxDefaultPosition and wxDefaultSize (from wxPy..) in _extras, -# so that C++ documentation applies. -# -# Revision 1.7 1998/11/25 08:45:21 RD -# -# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -# Added events for wxGrid -# Other various fixes and additions -# -# Revision 1.6 1998/11/16 00:00:52 RD -# Generic treectrl for wxPython/GTK compiles... -# -# Revision 1.5 1998/10/20 07:38:02 RD -# bug fix -# -# Revision 1.4 1998/10/20 06:43:54 RD -# New wxTreeCtrl wrappers (untested) -# some changes in helpers -# etc. -# -# Revision 1.3 1998/10/02 06:40:33 RD -# -# Version 0.4 of wxPython for MSW. -# -# Revision 1.2 1998/08/18 19:48:12 RD -# more wxGTK compatibility things. -# -# It builds now but there are serious runtime problems... -# -# Revision 1.1 1998/08/09 08:25:49 RD -# Initial version -# -# - diff --git a/utils/wxPython/src/cmndlgs.i b/utils/wxPython/src/cmndlgs.i deleted file mode 100644 index 85c55b7f8a..0000000000 --- a/utils/wxPython/src/cmndlgs.i +++ /dev/null @@ -1,369 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: cmndlgs.i -// Purpose: SWIG definitions for the Common Dialog Classes -// -// Author: Robin Dunn -// -// Created: 7/25/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module cmndlgs - -%{ -#include "helpers.h" -#include -#include -#include -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import gdi.i -%import windows.i - -%pragma(python) code = "import wx" - -//---------------------------------------------------------------------- - -class wxColourData { -public: - wxColourData(); - ~wxColourData(); - - bool GetChooseFull(); - wxColour& GetColour(); - wxColour GetCustomColour(int i); - void SetChooseFull(int flag); - void SetColour(const wxColour& colour); - void SetCustomColour(int i, const wxColour& colour); -}; - - -class wxColourDialog : public wxDialog { -public: - wxColourDialog(wxWindow* parent, wxColourData* data = NULL); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxColourData& GetColourData(); - int ShowModal(); -}; - - -//---------------------------------------------------------------------- - -class wxDirDialog : public wxDialog { -public: - wxDirDialog(wxWindow* parent, - char* message = "Choose a directory", - char* defaultPath = "", - long style = 0, - const wxPoint& pos = wxPyDefaultPosition); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxString GetPath(); - wxString GetMessage(); - long GetStyle(); - void SetMessage(const wxString& message); - void SetPath(const wxString& path); - int ShowModal(); -}; - -//---------------------------------------------------------------------- - -class wxFileDialog : public wxDialog { -public: - wxFileDialog(wxWindow* parent, - char* message = "Choose a file", - char* defaultDir = "", - char* defaultFile = "", - char* wildcard = "*.*", - long style = 0, - const wxPoint& pos = wxPyDefaultPosition); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxString GetDirectory(); - wxString GetFilename(); - int GetFilterIndex(); - wxString GetMessage(); - wxString GetPath(); - long GetStyle(); - wxString GetWildcard(); - void SetDirectory(const wxString& directory); - void SetFilename(const wxString& setfilename); - void SetFilterIndex(int filterIndex); - void SetMessage(const wxString& message); - void SetPath(const wxString& path); - void SetStyle(long style); - void SetWildcard(const wxString& wildCard); - int ShowModal(); -}; - - -//---------------------------------------------------------------------- - -//TODO: wxMultipleChoiceDialog - -//---------------------------------------------------------------------- - -class wxSingleChoiceDialog : public wxDialog { -public: - %addmethods { - // TODO: ignoring clientData for now... - // SWIG is messing up the &/*'s for some reason. - wxSingleChoiceDialog(wxWindow* parent, - wxString* message, - wxString* caption, - int LCOUNT, wxString* LIST, - //char** clientData = NULL, - long style = wxOK | wxCANCEL | wxCENTRE, - wxPoint* pos = &wxPyDefaultPosition) { - return new wxSingleChoiceDialog(parent, *message, *caption, - LCOUNT, LIST, NULL, style, *pos); - } - } - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - int GetSelection(); - wxString GetStringSelection(); - void SetSelection(int sel); - int ShowModal(); -}; - - -//---------------------------------------------------------------------- - -class wxTextEntryDialog : public wxDialog { -public: - wxTextEntryDialog(wxWindow* parent, - char* message, - char* caption = "Input Text", - char* defaultValue = "", - long style = wxOK | wxCANCEL | wxCENTRE, - const wxPoint& pos = wxPyDefaultPosition); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxString GetValue(); - void SetValue(const wxString& value); - int ShowModal(); -}; - -//---------------------------------------------------------------------- - -class wxFontData { -public: - wxFontData(); - ~wxFontData(); - - void EnableEffects(bool enable); - bool GetAllowSymbols(); - wxColour& GetColour(); - wxFont GetChosenFont(); - bool GetEnableEffects(); - wxFont GetInitialFont(); - bool GetShowHelp(); - void SetAllowSymbols(bool allowSymbols); - void SetChosenFont(const wxFont& font); - void SetColour(const wxColour& colour); - void SetInitialFont(const wxFont& font); - void SetRange(int min, int max); - void SetShowHelp(bool showHelp); -}; - - -class wxFontDialog : public wxDialog { -public: - wxFontDialog(wxWindow* parent, wxFontData* data = NULL); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxFontData& GetFontData(); - int ShowModal(); -}; - - -//---------------------------------------------------------------------- - - -class wxPageSetupDialogData { -public: - wxPageSetupDialogData(); - ~wxPageSetupDialogData(); - - void EnableHelp(bool flag); - void EnableMargins(bool flag); - void EnableOrientation(bool flag); - void EnablePaper(bool flag); - void EnablePrinter(bool flag); - bool GetDefaultMinMargins(); - bool GetEnableMargins(); - bool GetEnableOrientation(); - bool GetEnablePaper(); - bool GetEnablePrinter(); - bool GetEnableHelp(); - bool GetDefaultInfo(); - wxPoint GetMarginTopLeft(); - wxPoint GetMarginBottomRight(); - wxPoint GetMinMarginTopLeft(); - wxPoint GetMinMarginBottomRight(); - wxPaperSize GetPaperId(); - wxSize GetPaperSize(); - wxPrintData& GetPrintData(); - void SetDefaultInfo(bool flag); - void SetDefaultMinMargins(bool flag); - void SetMarginTopLeft(const wxPoint& pt); - void SetMarginBottomRight(const wxPoint& pt); - void SetMinMarginTopLeft(const wxPoint& pt); - void SetMinMarginBottomRight(const wxPoint& pt); - void SetPaperId(wxPaperSize& id); - void SetPaperSize(const wxSize& size); - void SetPrintData(const wxPrintData& printData); -}; - - -class wxPageSetupDialog : public wxDialog { -public: - wxPageSetupDialog(wxWindow* parent, wxPageSetupDialogData* data = NULL); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxPageSetupDialogData& GetPageSetupData(); - int ShowModal(); -}; - -//---------------------------------------------------------------------- - - -class wxPrintDialogData { -public: - wxPrintDialogData(); - ~wxPrintDialogData(); - - void EnableHelp(bool flag); - void EnablePageNumbers(bool flag); - void EnablePrintToFile(bool flag); - void EnableSelection(bool flag); - bool GetAllPages(); - bool GetCollate(); - int GetFromPage(); - int GetMaxPage(); - int GetMinPage(); - int GetNoCopies(); - wxPrintData& GetPrintData(); - bool GetPrintToFile(); - int GetToPage(); - void SetCollate(bool flag); - void SetFromPage(int page); - void SetMaxPage(int page); - void SetMinPage(int page); - void SetNoCopies(int n); - void SetPrintData(const wxPrintData& printData); - void SetPrintToFile(bool flag); - void SetSetupDialog(bool flag); - void SetToPage(int page); -}; - - -class wxPrintDialog : public wxDialog { -public: - wxPrintDialog(wxWindow* parent, wxPrintDialogData* data = NULL); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - wxPrintDialogData& GetPrintDialogData(); - %new wxDC* GetPrintDC(); - int ShowModal(); -}; - -//---------------------------------------------------------------------- - -class wxMessageDialog : public wxDialog { -public: - wxMessageDialog(wxWindow* parent, - char* message, - char* caption = "Message box", - long style = wxOK | wxCANCEL | wxCENTRE, - const wxPoint& pos = wxPyDefaultPosition); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - int ShowModal(); -}; - -//---------------------------------------------------------------------- - - -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.9 1999/04/30 03:29:18 RD -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.8 1998/12/17 14:07:25 RR -// -// Removed minor differences between wxMSW and wxGTK -// -// Revision 1.7 1998/12/15 20:41:14 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.6 1998/11/25 08:45:22 RD -// -// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -// Added events for wxGrid -// Other various fixes and additions -// -// Revision 1.5 1998/11/15 23:03:43 RD -// Removing some ifdef's for wxGTK -// -// Revision 1.4 1998/10/02 06:40:34 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.3 1998/08/18 19:48:13 RD -// more wxGTK compatibility things. -// -// It builds now but there are serious runtime problems... -// -// Revision 1.2 1998/08/15 07:36:25 RD -// - Moved the header in the .i files out of the code that gets put into -// the .cpp files. It caused CVS conflicts because of the RCS ID being -// different each time. -// -// - A few minor fixes. -// -// Revision 1.1 1998/08/09 08:25:49 RD -// Initial version -// -// - diff --git a/utils/wxPython/src/controls.i b/utils/wxPython/src/controls.i deleted file mode 100644 index 6ba5feae4b..0000000000 --- a/utils/wxPython/src/controls.i +++ /dev/null @@ -1,587 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: controls.i -// Purpose: Control (widget) classes for wxPython -// -// Author: Robin Dunn -// -// Created: 6/10/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module controls - -%{ -#include "helpers.h" -#include -#include -#include - -#ifdef __WXMSW__ -#if wxUSE_OWNER_DRAWN -#include -#endif -#endif - -#ifdef __WXGTK__ -#include -#endif -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import windows.i -%import gdi.i -%import events.i - -%pragma(python) code = "import wx" - -//---------------------------------------------------------------------- - -%{ -wxValidator wxPyDefaultValidator; // Non-const default because of SWIG -%} - -//---------------------------------------------------------------------- - -class wxControl : public wxWindow { -public: - void Command(wxCommandEvent& event); - wxString GetLabel(); - void SetLabel(const wxString& label); -}; - -//---------------------------------------------------------------------- - -class wxButton : public wxControl { -public: - wxButton(wxWindow* parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "button"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void SetDefault(); -}; - -//---------------------------------------------------------------------- - -class wxBitmapButton : public wxButton { -public: - wxBitmapButton(wxWindow* parent, wxWindowID id, const wxBitmap& bitmap, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxBU_AUTODRAW, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "button"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - wxBitmap& GetBitmapLabel(); - wxBitmap& GetBitmapDisabled(); - wxBitmap& GetBitmapFocus(); - wxBitmap& GetBitmapSelected(); - void SetBitmapDisabled(const wxBitmap& bitmap); - void SetBitmapFocus(const wxBitmap& bitmap); - void SetBitmapSelected(const wxBitmap& bitmap); - void SetBitmapLabel(const wxBitmap& bitmap); - -}; - -//---------------------------------------------------------------------- - -class wxCheckBox : public wxControl { -public: - wxCheckBox(wxWindow* parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - const wxValidator& val = wxPyDefaultValidator, - char* name = "checkBox"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - bool GetValue(); - void SetValue(const bool state); -}; - -//---------------------------------------------------------------------- - -class wxChoice : public wxControl { -public: - wxChoice(wxWindow *parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - int LCOUNT=0, wxString* LIST=NULL, - long style = 0, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "choice"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void Append(const wxString& item); - void Clear(); - int FindString(const wxString& string); - int GetColumns(); - int GetSelection(); - wxString GetString(const int n); - wxString GetStringSelection(); - int Number(); - void SetColumns(const int n = 1); - void SetSelection(const int n); - void SetStringSelection(const wxString& string); -}; - -//---------------------------------------------------------------------- - -class wxComboBox : public wxControl { -public: - wxComboBox(wxWindow* parent, wxWindowID id, char* value = "", - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - int LCOUNT=0, wxString* LIST=NULL, - long style = 0, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "comboBox"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void Append(const wxString& item); - // TODO: void Append(const wxString& item, char* clientData); - void Clear(); - void Copy(); - void Cut(); - void Delete(int n); - // NotMember??: void Deselect(int n); - int FindString(const wxString& string); - // TODO: char* GetClientData(const int n); - long GetInsertionPoint(); - long GetLastPosition(); - int GetSelection(); - wxString GetString(int n); - wxString GetStringSelection(); - wxString GetValue(); - int Number(); - void Paste(); - void Replace(long from, long to, const wxString& text); - void Remove(long from, long to); - // TODO: void SetClientData(const int n, char* data); - void SetInsertionPoint(long pos); - void SetInsertionPointEnd(); - void SetSelection(int n, bool select = TRUE); - %name(SetMark)void SetSelection(long from, long to); - void SetValue(const wxString& text); -}; - -//---------------------------------------------------------------------- - -class wxGauge : public wxControl { -public: - wxGauge(wxWindow* parent, wxWindowID id, int range, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxGA_HORIZONTAL, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "gauge"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - int GetBezelFace(); - int GetRange(); - int GetShadowWidth(); - int GetValue(); - void SetBezelFace(int width); - void SetRange(int range); - void SetShadowWidth(int width); - void SetValue(int pos); -}; - -//---------------------------------------------------------------------- - -class wxStaticBox : public wxControl { -public: - wxStaticBox(wxWindow* parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - char* name = "staticBox"); -}; - - -//---------------------------------------------------------------------- - -class wxStaticText : public wxControl { -public: - wxStaticText(wxWindow* parent, wxWindowID id, const wxString& label, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - char* name = "staticText"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - wxString GetLabel(); - void SetLabel(const wxString& label); -}; - -//---------------------------------------------------------------------- - -class wxListBox : public wxControl { -public: - wxListBox(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - int LCOUNT, wxString* LIST = NULL, - long style = 0, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "listBox"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void Append(const wxString& item); - // TODO: void Append(const wxString& item, char* clientData); - void Clear(); - void Delete(int n); - void Deselect(int n); - int FindString(const wxString& string); - // TODO: char* GetClientData(const int n); - int GetSelection(); - - // int GetSelections(int **selections); - %addmethods { - PyObject* GetSelections() { - wxArrayInt lst; - self->GetSelections(lst); - PyObject *tup = PyTuple_New(lst.GetCount()); - for(int i=0; i -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import windows.i -%import gdi.i -%import events.i -%import controls.i - -%pragma(python) code = "import wx" - -//---------------------------------------------------------------------- - -%{ -extern wxValidator wxPyDefaultValidator; -%} - -//---------------------------------------------------------------------- - -enum { - wxLIST_MASK_TEXT, - wxLIST_MASK_IMAGE, - wxLIST_MASK_DATA, - wxLIST_MASK_WIDTH, - wxLIST_MASK_FORMAT, - wxLIST_STATE_DONTCARE, - wxLIST_STATE_DROPHILITED, - wxLIST_STATE_FOCUSED, - wxLIST_STATE_SELECTED, - wxLIST_STATE_CUT, - wxLIST_HITTEST_ABOVE, - wxLIST_HITTEST_BELOW, - wxLIST_HITTEST_NOWHERE, - wxLIST_HITTEST_ONITEMICON, - wxLIST_HITTEST_ONITEMLABEL, - wxLIST_HITTEST_ONITEMRIGHT, - wxLIST_HITTEST_ONITEMSTATEICON, - wxLIST_HITTEST_TOLEFT, - wxLIST_HITTEST_TORIGHT, - wxLIST_HITTEST_ONITEM, - wxLIST_NEXT_ABOVE, - wxLIST_NEXT_ALL, - wxLIST_NEXT_BELOW, - wxLIST_NEXT_LEFT, - wxLIST_NEXT_RIGHT, - wxLIST_ALIGN_DEFAULT, - wxLIST_ALIGN_LEFT, - wxLIST_ALIGN_TOP, - wxLIST_ALIGN_SNAP_TO_GRID, - wxLIST_FORMAT_LEFT, - wxLIST_FORMAT_RIGHT, - wxLIST_FORMAT_CENTRE, - wxLIST_FORMAT_CENTER, - wxLIST_AUTOSIZE, - wxLIST_AUTOSIZE_USEHEADER, - wxLIST_RECT_BOUNDS, - wxLIST_RECT_ICON, - wxLIST_RECT_LABEL, - wxLIST_FIND_UP, - wxLIST_FIND_DOWN, - wxLIST_FIND_LEFT, - wxLIST_FIND_RIGHT, -}; - - -class wxListItem { -public: - long m_mask; // Indicates what fields are valid - long m_itemId; // The zero-based item position - int m_col; // Zero-based column, if in report mode - long m_state; // The state of the item - long m_stateMask; // Which flags of m_state are valid (uses same flags) - wxString m_text; // The label/header text - int m_image; // The zero-based index into an image list - long m_data; // App-defined data -// wxColour *m_colour; // only wxGLC, not supported by Windows ;-> - - // For columns only - int m_format; // left, right, centre - int m_width; // width of column - - wxListItem(); - ~wxListItem(); -}; - -class wxListEvent: public wxCommandEvent { -public: - int m_code; - long m_itemIndex; - long m_oldItemIndex; - int m_col; - bool m_cancelled; - wxPoint m_pointDrag; - wxListItem m_item; -}; - - - - -class wxListCtrl : public wxControl { -public: - wxListCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxLC_ICON, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "listCtrl"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - bool Arrange(int flag = wxLIST_ALIGN_DEFAULT); - bool DeleteItem(long item); - bool DeleteAllItems(); - bool DeleteColumn(int col); - bool DeleteAllColumns(void); - void ClearAll(void); -#ifdef __WXMSW__ - wxTextCtrl* EditLabel(long item); - bool EndEditLabel(bool cancel); - wxTextCtrl* GetEditControl(); -#endif - bool EnsureVisible(long item); - long FindItem(long start, const wxString& str, bool partial = FALSE); - %name(FindItemData)long FindItem(long start, long data); - %name(FindItemAtPos)long FindItem(long start, const wxPoint& pt, - int direction); - bool GetColumn(int col, wxListItem& item); - int GetColumnWidth(int col); - int GetCountPerPage(); - wxImageList* GetImageList(int which); - long GetItemData(long item); - - %addmethods { - %new wxListItem* GetItem(long itemId) { - wxListItem* info = new wxListItem; - info->m_itemId = itemId; - self->GetItem(*info); - return info; - } - %new wxPoint* GetItemPosition(long item) { - wxPoint* pos = new wxPoint; - self->GetItemPosition(item, *pos); - return pos; - } - %new wxRect* GetItemRect(long item, int code = wxLIST_RECT_BOUNDS) { - wxRect* rect= new wxRect; - self->GetItemRect(item, *rect, code); - return rect; - } - } - - int GetItemState(long item, long stateMask); - int GetItemCount(); - int GetItemSpacing(bool isSmall); - wxString GetItemText(long item); - long GetNextItem(long item, - int geometry = wxLIST_NEXT_ALL, - int state = wxLIST_STATE_DONTCARE); - int GetSelectedItemCount(); -#ifdef __WXMSW__ - wxColour GetTextColour(); - void SetTextColour(const wxColour& col); -#endif - long GetTopItem(); - long HitTest(const wxPoint& point, int& OUTPUT); - %name(InsertColumnWith)long InsertColumn(long col, wxListItem& info); - long InsertColumn(long col, const wxString& heading, - int format = wxLIST_FORMAT_LEFT, - int width = -1); - - long InsertItem(wxListItem& info); - %name(InsertStringItem) long InsertItem(long index, const wxString& label); - %name(InsertImageItem) long InsertItem(long index, int imageIndex); - %name(InsertImageStringItem)long InsertItem(long index, const wxString& label, - int imageIndex); - - bool ScrollList(int dx, int dy); - void SetBackgroundColour(const wxColour& col); - bool SetColumn(int col, wxListItem& item); - bool SetColumnWidth(int col, int width); - void SetImageList(wxImageList* imageList, int which); - - bool SetItem(wxListItem& info); - %name(SetStringItem)long SetItem(long index, int col, const wxString& label, - int imageId = -1); - - bool SetItemData(long item, long data); - bool SetItemImage(long item, int image, int selImage); - bool SetItemPosition(long item, const wxPoint& pos); - bool SetItemState(long item, long state, long stateMask); - void SetItemText(long item, const wxString& text); - void SetSingleStyle(long style, bool add = TRUE); - void SetWindowStyleFlag(long style); - // TODO: bool SortItems(wxListCtrlCompare fn, long data); -}; - - - -//---------------------------------------------------------------------- - - -class wxTreeItemId { -public: - wxTreeItemId(); - ~wxTreeItemId(); - bool IsOk() const { return m_itemId != 0; } - -}; - - - -%{ -class wxPyTreeItemData : public wxTreeItemData { -public: - wxPyTreeItemData(PyObject* obj = NULL) { - if (obj == NULL) - obj = Py_None; - Py_INCREF(obj); - m_obj = obj; - } - - ~wxPyTreeItemData() { - Py_DECREF(m_obj); - } - - PyObject* GetData() { - Py_INCREF(m_obj); - return m_obj; - } - - void SetData(PyObject* obj) { - Py_DECREF(m_obj); - m_obj = obj; - Py_INCREF(obj); - } - - PyObject* m_obj; -}; -%} - - - -%name(wxTreeItemData) class wxPyTreeItemData { -public: - wxPyTreeItemData(PyObject* obj = NULL); - - PyObject* GetData(); - void SetData(PyObject* obj); - - const wxTreeItemId& GetId(); - void SetId(const wxTreeItemId& id); -}; - - - -class wxTreeEvent : public wxCommandEvent { -public: - wxTreeItemId GetItem(); - wxTreeItemId GetOldItem(); - wxPoint GetPoint(); - int GetCode(); - void Veto(); -}; - - -// These are for the GetFirstChild/GetNextChild methods below -%typemap(python, in) long& INOUT = long* INOUT; -%typemap(python, argout) long& INOUT = long* INOUT; - - -class wxTreeCtrl : public wxControl { -public: - wxTreeCtrl(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT, - const wxValidator& validator = wxPyDefaultValidator, - char* name = "wxTreeCtrl"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - size_t GetCount(); - unsigned int GetIndent(); - void SetIndent(unsigned int indent); - wxImageList *GetImageList(); - wxImageList *GetStateImageList(); - void SetImageList(wxImageList *imageList); - void SetStateImageList(wxImageList *imageList); - - wxString GetItemText(const wxTreeItemId& item); - int GetItemImage(const wxTreeItemId& item); - int GetItemSelectedImage(const wxTreeItemId& item); - - void SetItemText(const wxTreeItemId& item, const wxString& text); - void SetItemImage(const wxTreeItemId& item, int image); - void SetItemSelectedImage(const wxTreeItemId& item, int image); - void SetItemHasChildren(const wxTreeItemId& item, bool hasChildren = TRUE); - - %addmethods { - // [Get|Set]ItemData substitutes. Automatically create wxPyTreeItemData - // if needed. - wxPyTreeItemData* GetItemData(const wxTreeItemId& item) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(); - self->SetItemData(item, data); - } - return data; - } - - void SetItemData(const wxTreeItemId& item, wxPyTreeItemData* data) { - self->SetItemData(item, data); - } - - // [Get|Set]PyData are short-cuts. Also made somewhat crash-proof by - // automatically creating data classes. - PyObject* GetPyData(const wxTreeItemId& item) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(); - self->SetItemData(item, data); - } - return data->GetData(); - } - - void SetPyData(const wxTreeItemId& item, PyObject* obj) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(obj); - self->SetItemData(item, data); - } else - data->SetData(obj); - } - } - - - bool IsVisible(const wxTreeItemId& item); - bool ItemHasChildren(const wxTreeItemId& item); - bool IsExpanded(const wxTreeItemId& item); - bool IsSelected(const wxTreeItemId& item); - - wxTreeItemId GetRootItem(); - wxTreeItemId GetSelection(); - wxTreeItemId GetParent(const wxTreeItemId& item); - - wxTreeItemId GetFirstChild(const wxTreeItemId& item, long& INOUT); - wxTreeItemId GetNextChild(const wxTreeItemId& item, long& INOUT); - wxTreeItemId GetNextSibling(const wxTreeItemId& item); - wxTreeItemId GetPrevSibling(const wxTreeItemId& item); - wxTreeItemId GetFirstVisibleItem(); - wxTreeItemId GetNextVisible(const wxTreeItemId& item); - wxTreeItemId GetPrevVisible(const wxTreeItemId& item); - - - wxTreeItemId AddRoot(const wxString& text, - int image = -1, int selectedImage = -1, - wxPyTreeItemData *data = NULL); - wxTreeItemId PrependItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxPyTreeItemData *data = NULL); - wxTreeItemId InsertItem(const wxTreeItemId& parent, - const wxTreeItemId& idPrevious, - const wxString& text, - int image = -1, int selectedImage = -1, - wxPyTreeItemData *data = NULL); - wxTreeItemId AppendItem(const wxTreeItemId& parent, - const wxString& text, - int image = -1, int selectedImage = -1, - wxPyTreeItemData *data = NULL); - - void Delete(const wxTreeItemId& item); - void DeleteChildren(const wxTreeItemId& item); - void DeleteAllItems(); - - void Expand(const wxTreeItemId& item); - void Collapse(const wxTreeItemId& item); - void CollapseAndReset(const wxTreeItemId& item); - void Toggle(const wxTreeItemId& item); - - void Unselect(); - void SelectItem(const wxTreeItemId& item); - void EnsureVisible(const wxTreeItemId& item); - void ScrollTo(const wxTreeItemId& item); - - wxTextCtrl* EditLabel(const wxTreeItemId& item); - // **** figure out how to do this - // wxClassInfo* textCtrlClass = CLASSINFO(wxTextCtrl)); - wxTextCtrl* GetEditControl(); - void EndEditLabel(const wxTreeItemId& item, bool discardChanges = FALSE); - -// void SortChildren(const wxTreeItemId& item); - // **** And this too - // wxTreeItemCmpFunc *cmpFunction = NULL); - - void SetItemBold(const wxTreeItemId& item, bool bold = TRUE); - bool IsBold(const wxTreeItemId& item) const; - wxTreeItemId HitTest(const wxPoint& point); - -%pragma(python) addtoclass = " - # Redefine a couple methods that SWIG gets a bit confused on... - def GetFirstChild(self,arg0,arg1): - val1, val2 = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - def GetNextChild(self,arg0,arg1): - val1, val2 = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) -" -}; - - -//---------------------------------------------------------------------- - -#ifdef SKIPTHIS -#ifdef __WXMSW__ -class wxTabEvent : public wxCommandEvent { -public: -}; - - - -class wxTabCtrl : public wxControl { -public: - wxTabCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - char* name = "tabCtrl"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - bool DeleteAllItems(); - bool DeleteItem(int item); - wxImageList* GetImageList(); - int GetItemCount(); - // TODO: void* GetItemData(); - int GetItemImage(int item); - - %addmethods { - %new wxRect* GetItemRect(int item) { - wxRect* rect = new wxRect; - self->GetItemRect(item, *rect); - return rect; - } - } - - wxString GetItemText(int item); - bool GetRowCount(); - int GetSelection(); - int HitTest(const wxPoint& pt, long& OUTPUT); - void InsertItem(int item, const wxString& text, - int imageId = -1, void* clientData = NULL); - // TODO: bool SetItemData(int item, void* data); - bool SetItemImage(int item, int image); - void SetImageList(wxImageList* imageList); - void SetItemSize(const wxSize& size); - bool SetItemText(int item, const wxString& text); - void SetPadding(const wxSize& padding); - int SetSelection(int item); - -}; - -#endif -#endif - -//---------------------------------------------------------------------- - - -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.18 1999/05/02 02:06:15 RD -// More for wxPython 2.0b9 (hopefully the last...) -// -// Revision 1.17 1999/04/30 03:29:18 RD -// -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.16 1999/02/25 07:08:32 RD -// -// wxPython version 2.0b5 -// -// Revision 1.15 1999/02/20 09:02:56 RD -// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -// window handle. If you can get the window handle into the python code, -// it should just work... More news on this later. -// -// Added wxImageList, wxToolTip. -// -// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -// wxRegConfig class. -// -// As usual, some bug fixes, tweaks, etc. -// -// Revision 1.14 1999/01/30 07:30:10 RD -// -// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -// -// Various cleanup, tweaks, minor additions, etc. to maintain -// compatibility with the current wxWindows. -// -// Revision 1.13 1998/12/17 14:07:34 RR -// -// Removed minor differences between wxMSW and wxGTK -// -// Revision 1.12 1998/12/16 22:10:52 RD -// -// Tweaks needed to be able to build wxPython with wxGTK. -// -// Revision 1.11 1998/12/15 20:41:16 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.10 1998/11/25 08:45:23 RD -// -// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -// Added events for wxGrid -// Other various fixes and additions -// -// Revision 1.9 1998/11/16 00:00:54 RD -// Generic treectrl for wxPython/GTK compiles... -// -// Revision 1.8 1998/11/11 04:40:20 RD -// wxTreeCtrl now works (sort of) for wxPython-GTK. This is the new -// TreeCtrl in src/gtk/treectrl.cpp not the old generic one. -// -// Revision 1.7 1998/11/11 03:12:25 RD -// -// Additions for wxTreeCtrl -// -// Revision 1.6 1998/10/20 06:43:55 RD -// New wxTreeCtrl wrappers (untested) -// some changes in helpers -// etc. -// -// Revision 1.5 1998/10/07 07:34:33 RD -// Version 0.4.1 for wxGTK -// -// Revision 1.4 1998/10/02 06:40:36 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.3 1998/08/18 19:48:15 RD -// more wxGTK compatibility things. -// -// It builds now but there are serious runtime problems... -// -// Revision 1.2 1998/08/15 07:36:30 RD -// - Moved the header in the .i files out of the code that gets put into -// the .cpp files. It caused CVS conflicts because of the RCS ID being -// different each time. -// -// - A few minor fixes. -// -// Revision 1.1 1998/08/09 08:25:49 RD -// Initial version -// -// diff --git a/utils/wxPython/src/events.i b/utils/wxPython/src/events.i deleted file mode 100644 index d8b0bd816d..0000000000 --- a/utils/wxPython/src/events.i +++ /dev/null @@ -1,373 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: events.i -// Purpose: SWIGgable Event classes for wxPython -// -// Author: Robin Dunn -// -// Created: 5/24/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module events - -%{ -#include "helpers.h" -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i - -//--------------------------------------------------------------------------- - -class wxEvent { -public: - wxObject* GetEventObject(); - wxEventType GetEventType(); - int GetId(); - bool GetSkipped(); - long GetTimestamp(); - void SetEventObject(wxObject* object); - void SetEventType(wxEventType typ); - void SetId(int id); - void SetTimestamp(long timeStamp); - void Skip(bool skip = TRUE); -}; - -//--------------------------------------------------------------------------- - -class wxSizeEvent : public wxEvent { -public: - wxSize GetSize(); -}; - -//--------------------------------------------------------------------------- - -class wxCloseEvent : public wxEvent { -public: - void SetLoggingOff(bool loggingOff); - bool GetLoggingOff(); - void Veto(bool veto = TRUE); - bool CanVeto(); - bool GetVeto(); - void SetCanVeto(bool canVeto); -}; - -//--------------------------------------------------------------------------- - -class wxCommandEvent : public wxEvent { -public: - bool Checked(); - long GetExtraLong(); - int GetInt(); - int GetSelection(); - wxString GetString(); - bool IsSelection(); -}; - - -//--------------------------------------------------------------------------- - -class wxScrollEvent: public wxCommandEvent { -public: - int GetOrientation(); - int GetPosition(); -}; - -//--------------------------------------------------------------------------- - -class wxSpinEvent : public wxScrollEvent { -public: - -}; - -//--------------------------------------------------------------------------- - -class wxMouseEvent: public wxEvent { -public: - bool IsButton(); - bool ButtonDown(int but = -1); - bool ButtonDClick(int but = -1); - bool ButtonUp(int but = -1); - bool Button(int but); - bool ButtonIsDown(int but); - bool ControlDown(); - bool MetaDown(); - bool AltDown(); - bool ShiftDown(); - bool LeftDown(); - bool MiddleDown(); - bool RightDown(); - bool LeftUp(); - bool MiddleUp(); - bool RightUp(); - bool LeftDClick(); - bool MiddleDClick(); - bool RightDClick(); - bool LeftIsDown(); - bool MiddleIsDown(); - bool RightIsDown(); - bool Dragging(); - bool Moving(); - bool Entering(); - bool Leaving(); - void Position(long *OUTPUT, long *OUTPUT); - wxPoint GetPosition(); - wxPoint GetLogicalPosition(const wxDC& dc); - long GetX(); - long GetY(); -}; - -//--------------------------------------------------------------------------- - -class wxKeyEvent: public wxEvent { -public: - bool ControlDown(); - bool MetaDown(); - bool AltDown(); - bool ShiftDown(); - long KeyCode(); - -}; - -//--------------------------------------------------------------------------- - -class wxMoveEvent: public wxEvent { -public: - wxPoint GetPosition(); -}; - -//--------------------------------------------------------------------------- - -class wxPaintEvent: public wxEvent { -public: - -}; - -//--------------------------------------------------------------------------- - -class wxEraseEvent: public wxEvent { -public: - wxDC *GetDC(); -}; - -//--------------------------------------------------------------------------- - -class wxFocusEvent: public wxEvent { -public: - -}; - -//--------------------------------------------------------------------------- - -class wxActivateEvent: public wxEvent{ -public: - bool GetActive(); -}; - -//--------------------------------------------------------------------------- - -class wxInitDialogEvent: public wxEvent { -public: - -}; - -//--------------------------------------------------------------------------- - -class wxMenuEvent: public wxEvent { -public: - int GetMenuId(); -}; - -//--------------------------------------------------------------------------- - -class wxShowEvent: public wxEvent { -public: - void SetShow(bool show); - bool GetShow(); -}; - -//--------------------------------------------------------------------------- - -class wxIconizeEvent: public wxEvent { -public: -}; - -//--------------------------------------------------------------------------- - -class wxMaximizeEvent: public wxEvent { -public: - -}; - -//--------------------------------------------------------------------------- - -class wxJoystickEvent: public wxEvent { -public: - wxPoint GetPosition(); - int GetZPosition(); - int GetButtonState(); - int GetButtonChange(); - int GetJoystick(); - void SetJoystick(int stick); - void SetButtonState(int state); - void SetButtonChange(int change); - void SetPosition(const wxPoint& pos); - void SetZPosition(int zPos); - bool IsButton(); - bool IsMove(); - bool IsZMove(); - bool ButtonDown(int but = wxJOY_BUTTON_ANY); - bool ButtonUp(int but = wxJOY_BUTTON_ANY); - bool ButtonIsDown(int but = wxJOY_BUTTON_ANY); -}; - -//--------------------------------------------------------------------------- - -class wxDropFilesEvent: public wxEvent { -public: - wxPoint GetPosition(); - int GetNumberOfFiles(); - - %addmethods { - PyObject* GetFiles() { - int count = self->GetNumberOfFiles(); - wxString* files = self->GetFiles(); - PyObject* list = PyList_New(count); - - if (!list) { - PyErr_SetString(PyExc_MemoryError, "Can't allocate list of files!"); - return NULL; - } - - for (int i=0; i -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import gdi.i -%import windows.i -%import stattool.i - -%pragma(python) code = "import wx" - -//---------------------------------------------------------------------- - -class wxFrame : public wxWindow { -public: - wxFrame(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - char* name = "frame"); - - %pragma(python) addtomethod = "__init__:wx._StdFrameCallbacks(self)" - - void Centre(int direction = wxBOTH); -#ifdef __WXMSW__ - void Command(int id); -#endif - wxStatusBar* CreateStatusBar(int number = 1, - long style = wxST_SIZEGRIP, - wxWindowID id = -1, - char* name = "statusBar"); - wxToolBar* CreateToolBar(long style = wxNO_BORDER|wxTB_HORIZONTAL|wxTB_FLAT, - wxWindowID id = -1, - char* name = "toolBar"); - - wxMenuBar* GetMenuBar(); - wxStatusBar* GetStatusBar(); - wxString GetTitle(); - wxToolBar* GetToolBar(); - void Iconize(bool iconize); - bool IsIconized(); - void Maximize(bool maximize); - void SetAcceleratorTable(const wxAcceleratorTable& accel); - void SetIcon(const wxIcon& icon); - void SetMenuBar(wxMenuBar* menuBar); - void SetStatusBar(wxStatusBar *statusBar); - void SetStatusText(const wxString& text, int number = 0); - void SetStatusWidths(int LCOUNT, int* LIST); // uses typemap - void SetTitle(const wxString& title); - void SetToolBar(wxToolBar* toolbar); - -}; - -//--------------------------------------------------------------------------- - -class wxMiniFrame : public wxFrame { -public: - wxMiniFrame(wxWindow* parent, const wxWindowID id, const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - char* name = "frame"); - - %pragma(python) addtomethod = "__init__:wx._StdFrameCallbacks(self)" -}; - - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.4 1998/12/16 22:10:53 RD -// Tweaks needed to be able to build wxPython with wxGTK. -// -// Revision 1.3 1998/12/15 20:41:18 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// - - - - - - diff --git a/utils/wxPython/src/gdi.i b/utils/wxPython/src/gdi.i deleted file mode 100644 index 85260b6db1..0000000000 --- a/utils/wxPython/src/gdi.i +++ /dev/null @@ -1,549 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: gdi.i -// Purpose: SWIG interface file for wxDC, wxBrush, wxPen, wxFont, etc. -// -// Author: Robin Dunn -// -// Created: 7/7/97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module gdi - -%{ -#include "helpers.h" -#include -#include -#ifndef __WXMSW__ -#include -#endif -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i - -//--------------------------------------------------------------------------- - -class wxBitmap { -public: - wxBitmap(const wxString& name, long type); - ~wxBitmap(); - -#ifdef __WXMSW__ - void Create(int width, int height, int depth = -1); -#endif - int GetDepth(); - int GetHeight(); - wxPalette* GetPalette(); - wxMask* GetMask(); - int GetWidth(); - bool LoadFile(const wxString& name, long flags); - bool Ok(); - bool SaveFile(const wxString& name, int type, wxPalette* palette = NULL); - void SetDepth(int depth); - void SetHeight(int height); - void SetMask(wxMask* mask); -#ifdef __WXMSW__ - void SetPalette(wxPalette& palette); -#endif - void SetWidth(int width); -}; - -%new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1); -wxBitmap* wxNoRefBitmap(char* name, long flags); - -%{ // Alternate 'constructor' - wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) { - return new wxBitmap(width, height, depth); - } - - // This one won't own the reference, so Python - // won't call the dtor, this is good for - // toolbars and such where the parent will - // manage the bitmap. - wxBitmap* wxNoRefBitmap(char* name, long flags) { - return new wxBitmap(name, flags); - } -%} - -//--------------------------------------------------------------------------- - -class wxMask { -public: - wxMask(const wxBitmap& bitmap); - ~wxMask(); -}; - -%new wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour); -%{ - wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour) { - return new wxMask(bitmap, colour); - } -%} - - -//--------------------------------------------------------------------------- - - -class wxIcon : public wxBitmap { -public: -#ifdef __WXMSW__ - wxIcon(const wxString& name, long flags, - int desiredWidth = -1, int desiredHeight = -1); -#endif - ~wxIcon(); - - int GetDepth(); - int GetHeight(); - int GetWidth(); - bool LoadFile(const wxString& name, long flags); - bool Ok(); - void SetDepth(int depth); - void SetHeight(int height); - void SetWidth(int width); -}; - -//--------------------------------------------------------------------------- - -class wxCursor : public wxBitmap { -public: -#ifdef __WXMSW__ - wxCursor(const wxString& cursorName, long flags, int hotSpotX=0, int hotSpotY=0); -#endif - ~wxCursor(); - bool Ok(); -}; - -%name(wxStockCursor) %new wxCursor* wxPyStockCursor(int id); -%{ // Alternate 'constructor' - wxCursor* wxPyStockCursor(int id) { - return new wxCursor(id); - } -%} - -//---------------------------------------------------------------------- - -class wxFont { -public: - // I'll do it this way to use long-lived objects and not have to - // worry about when python may delete the object. - %addmethods { - wxFont( int pointSize, int family, int style, int weight, - int underline=FALSE, char* faceName = "") { - - return wxTheFontList->FindOrCreateFont(pointSize, family, style, weight, - underline, faceName); - } - // NO Destructor. - } - - - wxString GetFaceName(); - int GetFamily(); -#ifdef __WXMSW__ - int GetFontId(); -#endif - int GetPointSize(); - int GetStyle(); - bool GetUnderlined(); - int GetWeight(); - void SetFaceName(const wxString& faceName); - void SetFamily(int family); - void SetPointSize(int pointSize); - void SetStyle(int style); - void SetUnderlined(bool underlined); - void SetWeight(int weight); -}; - -//---------------------------------------------------------------------- - -class wxColour { -public: - wxColour(unsigned char red=0, unsigned char green=0, unsigned char blue=0); - ~wxColour(); - unsigned char Red(); - unsigned char Green(); - unsigned char Blue(); - bool Ok(); - void Set(unsigned char red, unsigned char green, unsigned char blue); - %addmethods { - PyObject* Get() { - PyObject* rv = PyTuple_New(3); - PyTuple_SetItem(rv, 0, PyInt_FromLong(self->Red())); - PyTuple_SetItem(rv, 1, PyInt_FromLong(self->Green())); - PyTuple_SetItem(rv, 2, PyInt_FromLong(self->Blue())); - return rv; - } - } -}; - -%new wxColour* wxNamedColour(const wxString& colorName); -%{ // Alternate 'constructor' - wxColour* wxNamedColour(const wxString& colorName) { - return new wxColour(colorName); - } -%} - - -//---------------------------------------------------------------------- - -typedef unsigned long wxDash; - -class wxPen { -public: - // I'll do it this way to use long-lived objects and not have to - // worry about when python may delete the object. - %addmethods { - wxPen(wxColour* colour, int width=1, int style=wxSOLID) { - return wxThePenList->FindOrCreatePen(*colour, width, style); - } - // NO Destructor. - } - - int GetCap(); - wxColour& GetColour(); - - int GetJoin(); - int GetStyle(); - int GetWidth(); - bool Ok(); - void SetCap(int cap_style); - void SetColour(wxColour& colour); - void SetJoin(int join_style); - void SetStyle(int style); - void SetWidth(int width); - -#ifdef __WXMSW__ - // **** This one needs to return a list of ints (wxDash) - int GetDashes(wxDash **dashes); - wxBitmap* GetStipple(); - void SetDashes(int LCOUNT, wxDash* LIST); - void SetStipple(wxBitmap& stipple); -#endif -}; - -//---------------------------------------------------------------------- - -class wxBrush { -public: - // I'll do it this way to use long-lived objects and not have to - // worry about when python may delete the object. - %addmethods { - wxBrush(wxColour* colour, int style=wxSOLID) { - return wxTheBrushList->FindOrCreateBrush(*colour, style); - } - // NO Destructor. - } - - wxColour& GetColour(); - wxBitmap * GetStipple(); - int GetStyle(); - bool Ok(); - void SetColour(wxColour &colour); - void SetStipple(wxBitmap& bitmap); - void SetStyle(int style); -}; - -//---------------------------------------------------------------------- - - - -class wxDC { -public: -// wxDC(); **** abstract base class, can't instantiate. - ~wxDC(); - - void BeginDrawing(); - bool Blit(long xdest, long ydest, long width, long height, - wxDC *source, long xsrc, long ysrc, long logical_func); - void Clear(); - void CrossHair(long x, long y); - void DestroyClippingRegion(); - long DeviceToLogicalX(long x); - long DeviceToLogicalXRel(long x); - long DeviceToLogicalY(long y); - long DeviceToLogicalYRel(long y); - void DrawArc(long x1, long y1, long x2, long y2, long xc, long yc); - void DrawEllipse(long x, long y, long width, long height); - void DrawEllipticArc(long x, long y, long width, long height, long start, long end); - void DrawIcon(const wxIcon& icon, long x, long y); - void DrawLine(long x1, long y1, long x2, long y2); - void DrawLines(int LCOUNT, wxPoint* LIST, long xoffset=0, long yoffset=0); - void DrawPolygon(int LCOUNT, wxPoint* LIST, long xoffset=0, long yoffset=0, - int fill_style=wxODDEVEN_RULE); - void DrawPoint(long x, long y); - void DrawRectangle(long x, long y, long width, long height); - void DrawRoundedRectangle(long x, long y, long width, long height, long radius=20); - void DrawSpline(int LCOUNT, wxPoint* LIST); - void DrawText(const wxString& text, long x, long y); - void EndDoc(); - void EndDrawing(); - void EndPage(); - void FloodFill(long x, long y, const wxColour& colour, int style=wxFLOOD_SURFACE); - wxBrush& GetBackground(); - wxBrush& GetBrush(); - long GetCharHeight(); - long GetCharWidth(); - void GetClippingBox(long *OUTPUT, long *OUTPUT, - long *OUTPUT, long *OUTPUT); - wxFont& GetFont(); - int GetLogicalFunction(); - int GetMapMode(); - bool GetOptimization(); - wxPen& GetPen(); - %addmethods { - %new wxColour* GetPixel(long x, long y) { - wxColour* wc = new wxColour(); - self->GetPixel(x, y, wc); - return wc; - } - } - void GetSize(int* OUTPUT, int* OUTPUT); //void GetSize(long* OUTPUT, long* OUTPUT); - wxColour& GetTextBackground(); - void GetTextExtent(const wxString& string, long *OUTPUT, long *OUTPUT); - %name(GetFullTextExtent)void GetTextExtent(const wxString& string, - long *OUTPUT, long *OUTPUT, long *OUTPUT, long* OUTPUT, - const wxFont* font = NULL); - wxColour& GetTextForeground(); - long LogicalToDeviceX(long x); - long LogicalToDeviceXRel(long x); - long LogicalToDeviceY(long y); - long LogicalToDeviceYRel(long y); - long MaxX(); - long MaxY(); - long MinX(); - long MinY(); - bool Ok(); - void SetDeviceOrigin(long x, long y); - void SetBackground(const wxBrush& brush); - void SetBackgroundMode(int mode); - void SetClippingRegion(long x, long y, long width, long height); - void SetPalette(const wxPalette& colourMap); - void SetBrush(const wxBrush& brush); - void SetFont(const wxFont& font); - void SetLogicalFunction(int function); - void SetMapMode(int mode); - void SetOptimization(bool optimize); - void SetPen(const wxPen& pen); - void SetTextBackground(const wxColour& colour); - void SetTextForeground(const wxColour& colour); - void SetUserScale(double x_scale, double y_scale); - bool StartDoc(const wxString& message); - void StartPage(); - - - %addmethods { - // This one is my own creation... - void DrawBitmap(wxBitmap& bitmap, long x, long y, bool swapPalette=TRUE) { - wxMemoryDC* memDC = new wxMemoryDC; - memDC->SelectObject(bitmap); - if (swapPalette) - self->SetPalette(*bitmap.GetPalette()); - self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC, - 0, 0, self->GetLogicalFunction()); - memDC->SelectObject(wxNullBitmap); - delete memDC; - } - } -}; - - -//---------------------------------------------------------------------- - -class wxMemoryDC : public wxDC { -public: - wxMemoryDC(); - - void SelectObject(const wxBitmap& bitmap); -} - -%new wxMemoryDC* wxMemoryDCFromDC(wxDC* oldDC); -%{ // Alternate 'constructor' - wxMemoryDC* wxMemoryDCFromDC(wxDC* oldDC) { - return new wxMemoryDC(oldDC); - } -%} - - -//--------------------------------------------------------------------------- - -class wxScreenDC : public wxDC { -public: - wxScreenDC(); - - bool StartDrawingOnTop(wxWindow* window); - %name(StartDrawingOnTopRect) bool StartDrawingOnTop(wxRect* rect = NULL); - bool EndDrawingOnTop(); -}; - -//--------------------------------------------------------------------------- - -class wxClientDC : public wxDC { -public: - wxClientDC(wxWindow* win); -}; - -//--------------------------------------------------------------------------- - -class wxPaintDC : public wxDC { -public: - wxPaintDC(wxWindow* win); -}; - -//--------------------------------------------------------------------------- - -class wxWindowDC : public wxDC { -public: - wxWindowDC(wxWindow* win); -}; - -//--------------------------------------------------------------------------- - -#ifndef __WXMSW__ -class wxPostScriptDC : public wxDC { -public: - wxPostScriptDC(const wxString& output, bool interactive = TRUE, wxWindow* win = NULL); -}; -#endif - -//--------------------------------------------------------------------------- - -#ifdef __WXMSW__ -class wxPrinterDC : public wxDC { -public: - wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, - bool interactive = TRUE, int orientation = wxPORTRAIT); -}; -#endif - -//--------------------------------------------------------------------------- - -#ifdef __WXMSW__ -class wxMetaFileDC : public wxDC { -public: - wxMetaFileDC(const wxString& filename = wxPyEmptyStr); - wxMetaFile* Close(); -}; -#endif - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - - -%readonly -%{ -#if 0 -%} -extern wxFont *wxNORMAL_FONT; -extern wxFont *wxSMALL_FONT; -extern wxFont *wxITALIC_FONT; -extern wxFont *wxSWISS_FONT; -extern wxPen *wxRED_PEN; - -extern wxPen *wxCYAN_PEN; -extern wxPen *wxGREEN_PEN; -extern wxPen *wxBLACK_PEN; -extern wxPen *wxWHITE_PEN; -extern wxPen *wxTRANSPARENT_PEN; -extern wxPen *wxBLACK_DASHED_PEN; -extern wxPen *wxGREY_PEN; -extern wxPen *wxMEDIUM_GREY_PEN; -extern wxPen *wxLIGHT_GREY_PEN; - -extern wxBrush *wxBLUE_BRUSH; -extern wxBrush *wxGREEN_BRUSH; -extern wxBrush *wxWHITE_BRUSH; -extern wxBrush *wxBLACK_BRUSH; -extern wxBrush *wxTRANSPARENT_BRUSH; -extern wxBrush *wxCYAN_BRUSH; -extern wxBrush *wxRED_BRUSH; -extern wxBrush *wxGREY_BRUSH; -extern wxBrush *wxMEDIUM_GREY_BRUSH; -extern wxBrush *wxLIGHT_GREY_BRUSH; - -extern wxColour *wxBLACK; -extern wxColour *wxWHITE; -extern wxColour *wxRED; -extern wxColour *wxBLUE; -extern wxColour *wxGREEN; -extern wxColour *wxCYAN; -extern wxColour *wxLIGHT_GREY; - -extern wxCursor *wxSTANDARD_CURSOR; -extern wxCursor *wxHOURGLASS_CURSOR; -extern wxCursor *wxCROSS_CURSOR; - -extern wxBitmap wxNullBitmap; -extern wxIcon wxNullIcon; -extern wxCursor wxNullCursor; -extern wxPen wxNullPen; -extern wxBrush wxNullBrush; -extern wxPalette wxNullPalette; -extern wxFont wxNullFont; -extern wxColour wxNullColour; - -%readwrite -%{ -#endif -%} - -//--------------------------------------------------------------------------- - -class wxPalette { -public: - wxPalette(int LCOUNT, byte* LIST, byte* LIST, byte* LIST); - ~wxPalette(); - - int GetPixel(byte red, byte green, byte blue); - bool GetRGB(int pixel, byte* OUTPUT, byte* OUTPUT, byte* OUTPUT); - bool Ok(); -}; - -//--------------------------------------------------------------------------- - -enum { - wxIMAGELIST_DRAW_NORMAL , - wxIMAGELIST_DRAW_TRANSPARENT, - wxIMAGELIST_DRAW_SELECTED, - wxIMAGELIST_DRAW_FOCUSED, - wxIMAGE_LIST_NORMAL, - wxIMAGE_LIST_SMALL, - wxIMAGE_LIST_STATE -}; - -class wxImageList { -public: - wxImageList(int width, int height, const bool mask=TRUE, int initialCount=1); - ~wxImageList(); - -#ifdef __WXMSW__ - int Add(const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - %name(AddWithColourMask)int Add(const wxBitmap& bitmap, const wxColour& maskColour); - %name(AddIcon)int Add(const wxIcon& icon); - bool Replace(int index, const wxBitmap& bitmap, const wxBitmap& mask = wxNullBitmap); - %name(ReplaceIcon)bool Replace(int index, const wxIcon& icon); -#else - int Add(const wxBitmap& bitmap); - bool Replace(int index, const wxBitmap& bitmap); -#endif - - bool Draw(int index, wxDC& dc, int x, int x, int flags = wxIMAGELIST_DRAW_NORMAL, - const bool solidBackground = FALSE); - - int GetImageCount(); - bool Remove(int index); - bool RemoveAll(); -}; - - -//--------------------------------------------------------------------------- - diff --git a/utils/wxPython/src/glcanvas.i b/utils/wxPython/src/glcanvas.i deleted file mode 100644 index 6d112b1e15..0000000000 --- a/utils/wxPython/src/glcanvas.i +++ /dev/null @@ -1,1104 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: glcanvas.i -// Purpose: SWIG definitions for the OpenGL wxWindows classes -// -// Author: Robin Dunn -// -// Created: 15-Mar-1999 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module glcanvas - -%{ -#include "helpers.h" -#include -%} - -//--------------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -%extern wx.i -%extern windows.i -%extern windows2.i -%extern windows3.i -%extern frames.i -%extern _defs.i -%extern misc.i -%extern gdi.i -%extern controls.i -%extern events.i - - -%{ -#ifdef SEPARATE - static wxString wxPyEmptyStr(""); - static wxPoint wxPyDefaultPosition(-1, -1); - static wxSize wxPyDefaultSize(-1, -1); -#endif -%} - -%pragma(python) code = "import wx" - -//--------------------------------------------------------------------------- - -class wxPalette; -class wxWindow; -class wxSize; -class wxPoint; - -//--------------------------------------------------------------------------- - -class wxGLContext { -public: - wxGLContext(bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette); - ~wxGLContext(); - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - - void SetupPixelFormat(); - void SetupPalette(const wxPalette& palette); - wxPalette CreateDefaultPalette(); - - wxPalette* GetPalette(); - wxWindow* GetWindow(); -}; - -//--------------------------------------------------------------------------- - -class wxGLCanvas : public wxScrolledWindow { -public: - wxGLCanvas(wxWindow *parent, wxWindowID id = -1, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, long style = 0, - const char* name = "GLCanvas", - int *attribList = 0, - const wxPalette& palette = wxNullPalette); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void SetCurrent(); - void SetColour(const char *colour); - void SwapBuffers(); - - wxGLContext* GetContext(); -}; - - -//--------------------------------------------------------------------------- - -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - - -//--------------------------------------------------------------------------- -/* EXT_vertex_array */ -void glArrayElementEXT(GLint i); -void glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glDrawArraysEXT(GLenum mode, GLint first, GLsizei count); -void glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer); -void glGetPointervEXT(GLenum pname, GLvoid* *params); -void glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -void glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); - -#ifndef __WXGTK__ -/* EXT_color_subtable */ -void glColorSubtableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table); -#endif - -/* EXT_color_table */ -void glColorTableEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -#ifndef __WXGTK__ -void glCopyColorTableEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -#endif -void glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table); -#ifndef __WXGTK__ -void glGetColorTableParamaterfvEXT(GLenum target, GLenum pname, GLfloat *params); -void glGetColorTavleParameterivEXT(GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef __WXGTK__ -/* SGI_compiled_vertex_array */ -void glLockArraysSGI(GLint first, GLsizei count); -void glUnlockArraysSGI(); - -/* SGI_cull_vertex */ -void glCullParameterdvSGI(GLenum pname, GLdouble* params); -void glCullParameterfvSGI(GLenum pname, GLfloat* params); - -/* SGI_index_func */ -void glIndexFuncSGI(GLenum func, GLclampf ref); - -/* SGI_index_material */ -void glIndexMaterialSGI(GLenum face, GLenum mode); - -/* WIN_swap_hint */ -void glAddSwapHintRectWin(GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -//---------------------------------------------------------------------- -// From GL.H - -enum { - GL_2D, - GL_2_BYTES, - GL_3D, - GL_3D_COLOR, - GL_3D_COLOR_TEXTURE, - GL_3_BYTES, - GL_4D_COLOR_TEXTURE, - GL_4_BYTES, - GL_ACCUM, - GL_ACCUM_ALPHA_BITS, - GL_ACCUM_BLUE_BITS, - GL_ACCUM_BUFFER_BIT, - GL_ACCUM_CLEAR_VALUE, - GL_ACCUM_GREEN_BITS, - GL_ACCUM_RED_BITS, - GL_ADD, - GL_ALL_ATTRIB_BITS, - GL_ALPHA, - GL_ALPHA12, - GL_ALPHA16, - GL_ALPHA4, - GL_ALPHA8, - GL_ALPHA_BIAS, - GL_ALPHA_BITS, - GL_ALPHA_SCALE, - GL_ALPHA_TEST, - GL_ALPHA_TEST_FUNC, - GL_ALPHA_TEST_REF, - GL_ALWAYS, - GL_AMBIENT, - GL_AMBIENT_AND_DIFFUSE, - GL_AND, - GL_AND_INVERTED, - GL_AND_REVERSE, - GL_ATTRIB_STACK_DEPTH, - GL_AUTO_NORMAL, - GL_AUX0, - GL_AUX1, - GL_AUX2, - GL_AUX3, - GL_AUX_BUFFERS, - GL_BACK, - GL_BACK_LEFT, - GL_BACK_RIGHT, -#ifndef __WXGTK__ - GL_BGRA_EXT, - GL_BGR_EXT, -#endif - GL_BITMAP, - GL_BITMAP_TOKEN, - GL_BLEND, - GL_BLEND_DST, - GL_BLEND_SRC, - GL_BLUE, - GL_BLUE_BIAS, - GL_BLUE_BITS, - GL_BLUE_SCALE, - GL_BYTE, - GL_C3F_V3F, - GL_C4F_N3F_V3F, - GL_C4UB_V2F, - GL_C4UB_V3F, - GL_CCW, - GL_CLAMP, - GL_CLEAR, - GL_CLIENT_ALL_ATTRIB_BITS, - GL_CLIENT_ATTRIB_STACK_DEPTH, - GL_CLIENT_PIXEL_STORE_BIT, - GL_CLIENT_VERTEX_ARRAY_BIT, - GL_CLIP_PLANE0, - GL_CLIP_PLANE1, - GL_CLIP_PLANE2, - GL_CLIP_PLANE3, - GL_CLIP_PLANE4, - GL_CLIP_PLANE5, - GL_COEFF, - GL_COLOR, - GL_COLOR_ARRAY, - GL_COLOR_ARRAY_COUNT_EXT, - GL_COLOR_ARRAY_EXT, - GL_COLOR_ARRAY_POINTER, - GL_COLOR_ARRAY_POINTER_EXT, - GL_COLOR_ARRAY_SIZE, - GL_COLOR_ARRAY_SIZE_EXT, - GL_COLOR_ARRAY_STRIDE, - GL_COLOR_ARRAY_STRIDE_EXT, - GL_COLOR_ARRAY_TYPE, - GL_COLOR_ARRAY_TYPE_EXT, - GL_COLOR_BUFFER_BIT, - GL_COLOR_CLEAR_VALUE, - GL_COLOR_INDEX, - GL_COLOR_INDEX12_EXT, - GL_COLOR_INDEX16_EXT, - GL_COLOR_INDEX1_EXT, - GL_COLOR_INDEX2_EXT, - GL_COLOR_INDEX4_EXT, - GL_COLOR_INDEX8_EXT, - GL_COLOR_INDEXES, - GL_COLOR_LOGIC_OP, - GL_COLOR_MATERIAL, - GL_COLOR_MATERIAL_FACE, - GL_COLOR_MATERIAL_PARAMETER, - GL_COLOR_TABLE_ALPHA_SIZE_EXT, - GL_COLOR_TABLE_BLUE_SIZE_EXT, - GL_COLOR_TABLE_FORMAT_EXT, - GL_COLOR_TABLE_GREEN_SIZE_EXT, - GL_COLOR_TABLE_INTENSITY_SIZE_EXT, - GL_COLOR_TABLE_LUMINANCE_SIZE_EXT, - GL_COLOR_TABLE_RED_SIZE_EXT, - GL_COLOR_TABLE_WIDTH_EXT, - GL_COLOR_WRITEMASK, - GL_COMPILE, - GL_COMPILE_AND_EXECUTE, - GL_CONSTANT_ATTENUATION, - GL_COPY, - GL_COPY_INVERTED, - GL_COPY_PIXEL_TOKEN, - GL_CULL_FACE, - GL_CULL_FACE_MODE, - GL_CURRENT_BIT, - GL_CURRENT_COLOR, - GL_CURRENT_INDEX, - GL_CURRENT_NORMAL, - GL_CURRENT_RASTER_COLOR, - GL_CURRENT_RASTER_DISTANCE, - GL_CURRENT_RASTER_INDEX, - GL_CURRENT_RASTER_POSITION, - GL_CURRENT_RASTER_POSITION_VALID, - GL_CURRENT_RASTER_TEXTURE_COORDS, - GL_CURRENT_TEXTURE_COORDS, - GL_CW, - GL_DECAL, - GL_DECR, - GL_DEPTH, - GL_DEPTH_BIAS, - GL_DEPTH_BITS, - GL_DEPTH_BUFFER_BIT, - GL_DEPTH_CLEAR_VALUE, - GL_DEPTH_COMPONENT, - GL_DEPTH_FUNC, - GL_DEPTH_RANGE, - GL_DEPTH_SCALE, - GL_DEPTH_TEST, - GL_DEPTH_WRITEMASK, - GL_DIFFUSE, - GL_DITHER, - GL_DOMAIN, - GL_DONT_CARE, - GL_DOUBLE, - GL_DOUBLEBUFFER, -#ifndef __WXGTK__ - GL_DOUBLE_EXT, -#endif - GL_DRAW_BUFFER, - GL_DRAW_PIXEL_TOKEN, - GL_DST_ALPHA, - GL_DST_COLOR, - GL_EDGE_FLAG, - GL_EDGE_FLAG_ARRAY, - GL_EDGE_FLAG_ARRAY_COUNT_EXT, - GL_EDGE_FLAG_ARRAY_EXT, - GL_EDGE_FLAG_ARRAY_POINTER, - GL_EDGE_FLAG_ARRAY_POINTER_EXT, - GL_EDGE_FLAG_ARRAY_STRIDE, - GL_EDGE_FLAG_ARRAY_STRIDE_EXT, - GL_EMISSION, - GL_ENABLE_BIT, - GL_EQUAL, - GL_EQUIV, - GL_EVAL_BIT, - GL_EXP, - GL_EXP2, - GL_EXTENSIONS, -#ifndef __WXGTK__ - GL_EXT_bgra, -#endif - GL_EXT_paletted_texture, - GL_EXT_vertex_array, - GL_EYE_LINEAR, - GL_EYE_PLANE, - GL_FALSE, - GL_FASTEST, - GL_FEEDBACK, - GL_FEEDBACK_BUFFER_POINTER, - GL_FEEDBACK_BUFFER_SIZE, - GL_FEEDBACK_BUFFER_TYPE, - GL_FILL, - GL_FLAT, - GL_FLOAT, - GL_FOG, - GL_FOG_BIT, - GL_FOG_COLOR, - GL_FOG_DENSITY, - GL_FOG_END, - GL_FOG_HINT, - GL_FOG_INDEX, - GL_FOG_MODE, - GL_FOG_START, - GL_FRONT, - GL_FRONT_AND_BACK, - GL_FRONT_FACE, - GL_FRONT_LEFT, - GL_FRONT_RIGHT, - GL_GEQUAL, - GL_GREATER, - GL_GREEN, - GL_GREEN_BIAS, - GL_GREEN_BITS, - GL_GREEN_SCALE, - GL_HINT_BIT, - GL_INCR, - GL_INDEX_ARRAY, - GL_INDEX_ARRAY_COUNT_EXT, - GL_INDEX_ARRAY_EXT, - GL_INDEX_ARRAY_POINTER, - GL_INDEX_ARRAY_POINTER_EXT, - GL_INDEX_ARRAY_STRIDE, - GL_INDEX_ARRAY_STRIDE_EXT, - GL_INDEX_ARRAY_TYPE, - GL_INDEX_ARRAY_TYPE_EXT, - GL_INDEX_BITS, - GL_INDEX_CLEAR_VALUE, - GL_INDEX_LOGIC_OP, - GL_INDEX_MODE, - GL_INDEX_OFFSET, - GL_INDEX_SHIFT, - GL_INDEX_WRITEMASK, - GL_INT, - GL_INTENSITY, - GL_INTENSITY12, - GL_INTENSITY16, - GL_INTENSITY4, - GL_INTENSITY8, - GL_INVALID_ENUM, - GL_INVALID_OPERATION, - GL_INVALID_VALUE, - GL_INVERT, - GL_KEEP, - GL_LEFT, - GL_LEQUAL, - GL_LESS, - GL_LIGHT0, - GL_LIGHT1, - GL_LIGHT2, - GL_LIGHT3, - GL_LIGHT4, - GL_LIGHT5, - GL_LIGHT6, - GL_LIGHT7, - GL_LIGHTING, - GL_LIGHTING_BIT, - GL_LIGHT_MODEL_AMBIENT, - GL_LIGHT_MODEL_LOCAL_VIEWER, - GL_LIGHT_MODEL_TWO_SIDE, - GL_LINE, - GL_LINEAR, - GL_LINEAR_ATTENUATION, - GL_LINEAR_MIPMAP_LINEAR, - GL_LINEAR_MIPMAP_NEAREST, - GL_LINES, - GL_LINE_BIT, - GL_LINE_LOOP, - GL_LINE_RESET_TOKEN, - GL_LINE_SMOOTH, - GL_LINE_SMOOTH_HINT, - GL_LINE_STIPPLE, - GL_LINE_STIPPLE_PATTERN, - GL_LINE_STIPPLE_REPEAT, - GL_LINE_STRIP, - GL_LINE_TOKEN, - GL_LINE_WIDTH, - GL_LINE_WIDTH_GRANULARITY, - GL_LINE_WIDTH_RANGE, - GL_LIST_BASE, - GL_LIST_BIT, - GL_LIST_INDEX, - GL_LIST_MODE, - GL_LOAD, - GL_LOGIC_OP, - GL_LOGIC_OP_MODE, - GL_LUMINANCE, - GL_LUMINANCE12, - GL_LUMINANCE12_ALPHA12, - GL_LUMINANCE12_ALPHA4, - GL_LUMINANCE16, - GL_LUMINANCE16_ALPHA16, - GL_LUMINANCE4, - GL_LUMINANCE4_ALPHA4, - GL_LUMINANCE6_ALPHA2, - GL_LUMINANCE8, - GL_LUMINANCE8_ALPHA8, - GL_LUMINANCE_ALPHA, - GL_MAP1_COLOR_4, - GL_MAP1_GRID_DOMAIN, - GL_MAP1_GRID_SEGMENTS, - GL_MAP1_INDEX, - GL_MAP1_NORMAL, - GL_MAP1_TEXTURE_COORD_1, - GL_MAP1_TEXTURE_COORD_2, - GL_MAP1_TEXTURE_COORD_3, - GL_MAP1_TEXTURE_COORD_4, - GL_MAP1_VERTEX_3, - GL_MAP1_VERTEX_4, - GL_MAP2_COLOR_4, - GL_MAP2_GRID_DOMAIN, - GL_MAP2_GRID_SEGMENTS, - GL_MAP2_INDEX, - GL_MAP2_NORMAL, - GL_MAP2_TEXTURE_COORD_1, - GL_MAP2_TEXTURE_COORD_2, - GL_MAP2_TEXTURE_COORD_3, - GL_MAP2_TEXTURE_COORD_4, - GL_MAP2_VERTEX_3, - GL_MAP2_VERTEX_4, - GL_MAP_COLOR, - GL_MAP_STENCIL, - GL_MATRIX_MODE, - GL_MAX_ATTRIB_STACK_DEPTH, - GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, - GL_MAX_CLIP_PLANES, - GL_MAX_EVAL_ORDER, - GL_MAX_LIGHTS, - GL_MAX_LIST_NESTING, - GL_MAX_MODELVIEW_STACK_DEPTH, - GL_MAX_NAME_STACK_DEPTH, - GL_MAX_PIXEL_MAP_TABLE, - GL_MAX_PROJECTION_STACK_DEPTH, - GL_MAX_TEXTURE_SIZE, - GL_MAX_TEXTURE_STACK_DEPTH, - GL_MAX_VIEWPORT_DIMS, - GL_MODELVIEW, - GL_MODELVIEW_MATRIX, - GL_MODELVIEW_STACK_DEPTH, - GL_MODULATE, - GL_MULT, - GL_N3F_V3F, - GL_NAME_STACK_DEPTH, - GL_NAND, - GL_NEAREST, - GL_NEAREST_MIPMAP_LINEAR, - GL_NEAREST_MIPMAP_NEAREST, - GL_NEVER, - GL_NICEST, - GL_NONE, - GL_NOOP, - GL_NOR, - GL_NORMALIZE, - GL_NORMAL_ARRAY, - GL_NORMAL_ARRAY_COUNT_EXT, - GL_NORMAL_ARRAY_EXT, - GL_NORMAL_ARRAY_POINTER, - GL_NORMAL_ARRAY_POINTER_EXT, - GL_NORMAL_ARRAY_STRIDE, - GL_NORMAL_ARRAY_STRIDE_EXT, - GL_NORMAL_ARRAY_TYPE, - GL_NORMAL_ARRAY_TYPE_EXT, - GL_NOTEQUAL, - GL_NO_ERROR, - GL_OBJECT_LINEAR, - GL_OBJECT_PLANE, - GL_ONE, - GL_ONE_MINUS_DST_ALPHA, - GL_ONE_MINUS_DST_COLOR, - GL_ONE_MINUS_SRC_ALPHA, - GL_ONE_MINUS_SRC_COLOR, - GL_OR, - GL_ORDER, - GL_OR_INVERTED, - GL_OR_REVERSE, - GL_OUT_OF_MEMORY, - GL_PACK_ALIGNMENT, - GL_PACK_LSB_FIRST, - GL_PACK_ROW_LENGTH, - GL_PACK_SKIP_PIXELS, - GL_PACK_SKIP_ROWS, - GL_PACK_SWAP_BYTES, - GL_PASS_THROUGH_TOKEN, - GL_PERSPECTIVE_CORRECTION_HINT, - GL_PIXEL_MAP_A_TO_A, - GL_PIXEL_MAP_A_TO_A_SIZE, - GL_PIXEL_MAP_B_TO_B, - GL_PIXEL_MAP_B_TO_B_SIZE, - GL_PIXEL_MAP_G_TO_G, - GL_PIXEL_MAP_G_TO_G_SIZE, - GL_PIXEL_MAP_I_TO_A, - GL_PIXEL_MAP_I_TO_A_SIZE, - GL_PIXEL_MAP_I_TO_B, - GL_PIXEL_MAP_I_TO_B_SIZE, - GL_PIXEL_MAP_I_TO_G, - GL_PIXEL_MAP_I_TO_G_SIZE, - GL_PIXEL_MAP_I_TO_I, - GL_PIXEL_MAP_I_TO_I_SIZE, - GL_PIXEL_MAP_I_TO_R, - GL_PIXEL_MAP_I_TO_R_SIZE, - GL_PIXEL_MAP_R_TO_R, - GL_PIXEL_MAP_R_TO_R_SIZE, - GL_PIXEL_MAP_S_TO_S, - GL_PIXEL_MAP_S_TO_S_SIZE, - GL_PIXEL_MODE_BIT, - GL_POINT, - GL_POINTS, - GL_POINT_BIT, - GL_POINT_SIZE, - GL_POINT_SIZE_GRANULARITY, - GL_POINT_SIZE_RANGE, - GL_POINT_SMOOTH, - GL_POINT_SMOOTH_HINT, - GL_POINT_TOKEN, - GL_POLYGON, - GL_POLYGON_BIT, - GL_POLYGON_MODE, - GL_POLYGON_OFFSET_FACTOR, - GL_POLYGON_OFFSET_FILL, - GL_POLYGON_OFFSET_LINE, - GL_POLYGON_OFFSET_POINT, - GL_POLYGON_OFFSET_UNITS, - GL_POLYGON_SMOOTH, - GL_POLYGON_SMOOTH_HINT, - GL_POLYGON_STIPPLE, - GL_POLYGON_STIPPLE_BIT, - GL_POLYGON_TOKEN, - GL_POSITION, - GL_PROJECTION, - GL_PROJECTION_MATRIX, - GL_PROJECTION_STACK_DEPTH, - GL_PROXY_TEXTURE_1D, - GL_PROXY_TEXTURE_2D, - GL_Q, - GL_QUADRATIC_ATTENUATION, - GL_QUADS, - GL_QUAD_STRIP, - GL_R, - GL_R3_G3_B2, - GL_READ_BUFFER, - GL_RED, - GL_RED_BIAS, - GL_RED_BITS, - GL_RED_SCALE, - GL_RENDER, - GL_RENDERER, - GL_RENDER_MODE, - GL_REPEAT, - GL_REPLACE, - GL_RETURN, - GL_RGB, - GL_RGB10, - GL_RGB10_A2, - GL_RGB12, - GL_RGB16, - GL_RGB4, - GL_RGB5, - GL_RGB5_A1, - GL_RGB8, - GL_RGBA, - GL_RGBA12, - GL_RGBA16, - GL_RGBA2, - GL_RGBA4, - GL_RGBA8, - GL_RGBA_MODE, - GL_RIGHT, - GL_S, - GL_SCISSOR_BIT, - GL_SCISSOR_BOX, - GL_SCISSOR_TEST, - GL_SELECT, - GL_SELECTION_BUFFER_POINTER, - GL_SELECTION_BUFFER_SIZE, - GL_SET, - GL_SHADE_MODEL, - GL_SHININESS, - GL_SHORT, - GL_SMOOTH, - GL_SPECULAR, - GL_SPHERE_MAP, - GL_SPOT_CUTOFF, - GL_SPOT_DIRECTION, - GL_SPOT_EXPONENT, - GL_SRC_ALPHA, - GL_SRC_ALPHA_SATURATE, - GL_SRC_COLOR, - GL_STACK_OVERFLOW, - GL_STACK_UNDERFLOW, - GL_STENCIL, - GL_STENCIL_BITS, - GL_STENCIL_BUFFER_BIT, - GL_STENCIL_CLEAR_VALUE, - GL_STENCIL_FAIL, - GL_STENCIL_FUNC, - GL_STENCIL_INDEX, - GL_STENCIL_PASS_DEPTH_FAIL, - GL_STENCIL_PASS_DEPTH_PASS, - GL_STENCIL_REF, - GL_STENCIL_TEST, - GL_STENCIL_VALUE_MASK, - GL_STENCIL_WRITEMASK, - GL_STEREO, - GL_SUBPIXEL_BITS, - GL_T, - GL_T2F_C3F_V3F, - GL_T2F_C4F_N3F_V3F, - GL_T2F_C4UB_V3F, - GL_T2F_N3F_V3F, - GL_T2F_V3F, - GL_T4F_C4F_N3F_V4F, - GL_T4F_V4F, - GL_TEXTURE, - GL_TEXTURE_1D, - GL_TEXTURE_2D, - GL_TEXTURE_ALPHA_SIZE, - GL_TEXTURE_BINDING_1D, - GL_TEXTURE_BINDING_2D, - GL_TEXTURE_BIT, - GL_TEXTURE_BLUE_SIZE, - GL_TEXTURE_BORDER, - GL_TEXTURE_BORDER_COLOR, - GL_TEXTURE_COMPONENTS, - GL_TEXTURE_COORD_ARRAY, - GL_TEXTURE_COORD_ARRAY_COUNT_EXT, - GL_TEXTURE_COORD_ARRAY_EXT, - GL_TEXTURE_COORD_ARRAY_POINTER, - GL_TEXTURE_COORD_ARRAY_POINTER_EXT, - GL_TEXTURE_COORD_ARRAY_SIZE, - GL_TEXTURE_COORD_ARRAY_SIZE_EXT, - GL_TEXTURE_COORD_ARRAY_STRIDE, - GL_TEXTURE_COORD_ARRAY_STRIDE_EXT, - GL_TEXTURE_COORD_ARRAY_TYPE, - GL_TEXTURE_COORD_ARRAY_TYPE_EXT, - GL_TEXTURE_ENV, - GL_TEXTURE_ENV_COLOR, - GL_TEXTURE_ENV_MODE, - GL_TEXTURE_GEN_MODE, - GL_TEXTURE_GEN_Q, - GL_TEXTURE_GEN_R, - GL_TEXTURE_GEN_S, - GL_TEXTURE_GEN_T, - GL_TEXTURE_GREEN_SIZE, - GL_TEXTURE_HEIGHT, - GL_TEXTURE_INTENSITY_SIZE, - GL_TEXTURE_INTERNAL_FORMAT, - GL_TEXTURE_LUMINANCE_SIZE, - GL_TEXTURE_MAG_FILTER, - GL_TEXTURE_MATRIX, - GL_TEXTURE_MIN_FILTER, - GL_TEXTURE_PRIORITY, - GL_TEXTURE_RED_SIZE, - GL_TEXTURE_RESIDENT, - GL_TEXTURE_STACK_DEPTH, - GL_TEXTURE_WIDTH, - GL_TEXTURE_WRAP_S, - GL_TEXTURE_WRAP_T, - GL_TRANSFORM_BIT, - GL_TRIANGLES, - GL_TRIANGLE_FAN, - GL_TRIANGLE_STRIP, - GL_TRUE, - GL_UNPACK_ALIGNMENT, - GL_UNPACK_LSB_FIRST, - GL_UNPACK_ROW_LENGTH, - GL_UNPACK_SKIP_PIXELS, - GL_UNPACK_SKIP_ROWS, - GL_UNPACK_SWAP_BYTES, - GL_UNSIGNED_BYTE, - GL_UNSIGNED_INT, - GL_UNSIGNED_SHORT, - GL_V2F, - GL_V3F, - GL_VENDOR, - GL_VERSION, - GL_VERTEX_ARRAY, - GL_VERTEX_ARRAY_COUNT_EXT, - GL_VERTEX_ARRAY_EXT, - GL_VERTEX_ARRAY_POINTER, - GL_VERTEX_ARRAY_POINTER_EXT, - GL_VERTEX_ARRAY_SIZE, - GL_VERTEX_ARRAY_SIZE_EXT, - GL_VERTEX_ARRAY_STRIDE, - GL_VERTEX_ARRAY_STRIDE_EXT, - GL_VERTEX_ARRAY_TYPE, - GL_VERTEX_ARRAY_TYPE_EXT, - GL_VIEWPORT, - GL_VIEWPORT_BIT, - GL_XOR, - GL_ZERO, - GL_ZOOM_X, - GL_ZOOM_Y, -}; - - -void glAccum (GLenum op, GLfloat value); -void glAlphaFunc (GLenum func, GLclampf ref); -GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -void glArrayElement (GLint i); -void glBegin (GLenum mode); -void glBindTexture (GLenum target, GLuint texture); -void glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -void glBlendFunc (GLenum sfactor, GLenum dfactor); -void glCallList (GLuint list); -void glCallLists (GLsizei n, GLenum type, const GLvoid *lists); -void glClear (GLbitfield mask); -void glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -void glClearDepth (GLclampd depth); -void glClearIndex (GLfloat c); -void glClearStencil (GLint s); -void glClipPlane (GLenum plane, const GLdouble *equation); -void glColor3b (GLbyte red, GLbyte green, GLbyte blue); -void glColor3bv (const GLbyte *v); -void glColor3d (GLdouble red, GLdouble green, GLdouble blue); -void glColor3dv (const GLdouble *v); -void glColor3f (GLfloat red, GLfloat green, GLfloat blue); -void glColor3fv (const GLfloat *v); -void glColor3i (GLint red, GLint green, GLint blue); -void glColor3iv (const GLint *v); -void glColor3s (GLshort red, GLshort green, GLshort blue); -void glColor3sv (const GLshort *v); -void glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -void glColor3ubv (const GLubyte *v); -void glColor3ui (GLuint red, GLuint green, GLuint blue); -void glColor3uiv (const GLuint *v); -void glColor3us (GLushort red, GLushort green, GLushort blue); -void glColor3usv (const GLushort *v); -void glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -void glColor4bv (const GLbyte *v); -void glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -void glColor4dv (const GLdouble *v); -void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -void glColor4fv (const GLfloat *v); -void glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -void glColor4iv (const GLint *v); -void glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -void glColor4sv (const GLshort *v); -void glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -void glColor4ubv (const GLubyte *v); -void glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -void glColor4uiv (const GLuint *v); -void glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -void glColor4usv (const GLushort *v); -void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -void glColorMaterial (GLenum face, GLenum mode); -void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -void glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -void glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -void glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -void glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -void glCullFace (GLenum mode); -void glDeleteLists (GLuint list, GLsizei range); -void glDeleteTextures (GLsizei n, const GLuint *textures); -void glDepthFunc (GLenum func); -void glDepthMask (GLboolean flag); -void glDepthRange (GLclampd zNear, GLclampd zFar); -void glDisable (GLenum cap); -void glDisableClientState (GLenum array); -void glDrawArrays (GLenum mode, GLint first, GLsizei count); -void glDrawBuffer (GLenum mode); -void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -void glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -void glEdgeFlag (GLboolean flag); -void glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); -void glEdgeFlagv (const GLboolean *flag); -void glEnable (GLenum cap); -void glEnableClientState (GLenum array); -void glEnd (void); -void glEndList (void); -void glEvalCoord1d (GLdouble u); -void glEvalCoord1dv (const GLdouble *u); -void glEvalCoord1f (GLfloat u); -void glEvalCoord1fv (const GLfloat *u); -void glEvalCoord2d (GLdouble u, GLdouble v); -void glEvalCoord2dv (const GLdouble *u); -void glEvalCoord2f (GLfloat u, GLfloat v); -void glEvalCoord2fv (const GLfloat *u); -void glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -void glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -void glEvalPoint1 (GLint i); -void glEvalPoint2 (GLint i, GLint j); -void glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -void glFinish (void); -void glFlush (void); -void glFogf (GLenum pname, GLfloat param); -void glFogfv (GLenum pname, const GLfloat *params); -void glFogi (GLenum pname, GLint param); -void glFogiv (GLenum pname, const GLint *params); -void glFrontFace (GLenum mode); -void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLuint glGenLists (GLsizei range); -void glGenTextures (GLsizei n, GLuint *textures); -void glGetBooleanv (GLenum pname, GLboolean *params); -void glGetClipPlane (GLenum plane, GLdouble *equation); -void glGetDoublev (GLenum pname, GLdouble *params); -GLenum glGetError (void); -void glGetFloatv (GLenum pname, GLfloat *params); -void glGetIntegerv (GLenum pname, GLint *params); -void glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -void glGetLightiv (GLenum light, GLenum pname, GLint *params); -void glGetMapdv (GLenum target, GLenum query, GLdouble *v); -void glGetMapfv (GLenum target, GLenum query, GLfloat *v); -void glGetMapiv (GLenum target, GLenum query, GLint *v); -void glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -void glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -void glGetPixelMapfv (GLenum map, GLfloat *values); -void glGetPixelMapuiv (GLenum map, GLuint *values); -void glGetPixelMapusv (GLenum map, GLushort *values); -void glGetPointerv (GLenum pname, GLvoid* *params); -void glGetPolygonStipple (GLubyte *mask); -const GLubyte * glGetString (GLenum name); -void glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -void glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -void glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -void glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -void glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -void glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -void glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -void glHint (GLenum target, GLenum mode); -void glIndexMask (GLuint mask); -void glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -void glIndexd (GLdouble c); -void glIndexdv (const GLdouble *c); -void glIndexf (GLfloat c); -void glIndexfv (const GLfloat *c); -void glIndexi (GLint c); -void glIndexiv (const GLint *c); -void glIndexs (GLshort c); -void glIndexsv (const GLshort *c); -void glIndexub (GLubyte c); -void glIndexubv (const GLubyte *c); -void glInitNames (void); -void glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); -GLboolean glIsEnabled (GLenum cap); -GLboolean glIsList (GLuint list); -GLboolean glIsTexture (GLuint texture); -void glLightModelf (GLenum pname, GLfloat param); -void glLightModelfv (GLenum pname, const GLfloat *params); -void glLightModeli (GLenum pname, GLint param); -void glLightModeliv (GLenum pname, const GLint *params); -void glLightf (GLenum light, GLenum pname, GLfloat param); -void glLightfv (GLenum light, GLenum pname, const GLfloat *params); -void glLighti (GLenum light, GLenum pname, GLint param); -void glLightiv (GLenum light, GLenum pname, const GLint *params); -void glLineStipple (GLint factor, GLushort pattern); -void glLineWidth (GLfloat width); -void glListBase (GLuint base); -void glLoadIdentity (void); -void glLoadMatrixd (const GLdouble *m); -void glLoadMatrixf (const GLfloat *m); -void glLoadName (GLuint name); -void glLogicOp (GLenum opcode); -void glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -void glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -void glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -void glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -void glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -void glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -void glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -void glMaterialf (GLenum face, GLenum pname, GLfloat param); -void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -void glMateriali (GLenum face, GLenum pname, GLint param); -void glMaterialiv (GLenum face, GLenum pname, const GLint *params); -void glMatrixMode (GLenum mode); -void glMultMatrixd (const GLdouble *m); -void glMultMatrixf (const GLfloat *m); -void glNewList (GLuint list, GLenum mode); -void glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -void glNormal3bv (const GLbyte *v); -void glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -void glNormal3dv (const GLdouble *v); -void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -void glNormal3fv (const GLfloat *v); -void glNormal3i (GLint nx, GLint ny, GLint nz); -void glNormal3iv (const GLint *v); -void glNormal3s (GLshort nx, GLshort ny, GLshort nz); -void glNormal3sv (const GLshort *v); -void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -void glPassThrough (GLfloat token); -void glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -void glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -void glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -void glPixelStoref (GLenum pname, GLfloat param); -void glPixelStorei (GLenum pname, GLint param); -void glPixelTransferf (GLenum pname, GLfloat param); -void glPixelTransferi (GLenum pname, GLint param); -void glPixelZoom (GLfloat xfactor, GLfloat yfactor); -void glPointSize (GLfloat size); -void glPolygonMode (GLenum face, GLenum mode); -void glPolygonOffset (GLfloat factor, GLfloat units); -void glPolygonStipple (const GLubyte *mask); -void glPopAttrib (void); -void glPopClientAttrib (void); -void glPopMatrix (void); -void glPopName (void); -void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -void glPushAttrib (GLbitfield mask); -void glPushClientAttrib (GLbitfield mask); -void glPushMatrix (void); -void glPushName (GLuint name); -void glRasterPos2d (GLdouble x, GLdouble y); -void glRasterPos2dv (const GLdouble *v); -void glRasterPos2f (GLfloat x, GLfloat y); -void glRasterPos2fv (const GLfloat *v); -void glRasterPos2i (GLint x, GLint y); -void glRasterPos2iv (const GLint *v); -void glRasterPos2s (GLshort x, GLshort y); -void glRasterPos2sv (const GLshort *v); -void glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -void glRasterPos3dv (const GLdouble *v); -void glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -void glRasterPos3fv (const GLfloat *v); -void glRasterPos3i (GLint x, GLint y, GLint z); -void glRasterPos3iv (const GLint *v); -void glRasterPos3s (GLshort x, GLshort y, GLshort z); -void glRasterPos3sv (const GLshort *v); -void glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -void glRasterPos4dv (const GLdouble *v); -void glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -void glRasterPos4fv (const GLfloat *v); -void glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -void glRasterPos4iv (const GLint *v); -void glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -void glRasterPos4sv (const GLshort *v); -void glReadBuffer (GLenum mode); -void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -void glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -void glRectdv (const GLdouble *v1, const GLdouble *v2); -void glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -void glRectfv (const GLfloat *v1, const GLfloat *v2); -void glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -void glRectiv (const GLint *v1, const GLint *v2); -void glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -void glRectsv (const GLshort *v1, const GLshort *v2); -GLint glRenderMode (GLenum mode); -void glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -void glScaled (GLdouble x, GLdouble y, GLdouble z); -void glScalef (GLfloat x, GLfloat y, GLfloat z); -void glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -void glSelectBuffer (GLsizei size, GLuint *buffer); -void glShadeModel (GLenum mode); -void glStencilFunc (GLenum func, GLint ref, GLuint mask); -void glStencilMask (GLuint mask); -void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -void glTexCoord1d (GLdouble s); -void glTexCoord1dv (const GLdouble *v); -void glTexCoord1f (GLfloat s); -void glTexCoord1fv (const GLfloat *v); -void glTexCoord1i (GLint s); -void glTexCoord1iv (const GLint *v); -void glTexCoord1s (GLshort s); -void glTexCoord1sv (const GLshort *v); -void glTexCoord2d (GLdouble s, GLdouble t); -void glTexCoord2dv (const GLdouble *v); -void glTexCoord2f (GLfloat s, GLfloat t); -void glTexCoord2fv (const GLfloat *v); -void glTexCoord2i (GLint s, GLint t); -void glTexCoord2iv (const GLint *v); -void glTexCoord2s (GLshort s, GLshort t); -void glTexCoord2sv (const GLshort *v); -void glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -void glTexCoord3dv (const GLdouble *v); -void glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -void glTexCoord3fv (const GLfloat *v); -void glTexCoord3i (GLint s, GLint t, GLint r); -void glTexCoord3iv (const GLint *v); -void glTexCoord3s (GLshort s, GLshort t, GLshort r); -void glTexCoord3sv (const GLshort *v); -void glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -void glTexCoord4dv (const GLdouble *v); -void glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -void glTexCoord4fv (const GLfloat *v); -void glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -void glTexCoord4iv (const GLint *v); -void glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -void glTexCoord4sv (const GLshort *v); -void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -void glTexEnvf (GLenum target, GLenum pname, GLfloat param); -void glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -void glTexEnvi (GLenum target, GLenum pname, GLint param); -void glTexEnviv (GLenum target, GLenum pname, const GLint *params); -void glTexGend (GLenum coord, GLenum pname, GLdouble param); -void glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -void glTexGenf (GLenum coord, GLenum pname, GLfloat param); -void glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -void glTexGeni (GLenum coord, GLenum pname, GLint param); -void glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -void glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -void glTexParameterf (GLenum target, GLenum pname, GLfloat param); -void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -void glTexParameteri (GLenum target, GLenum pname, GLint param); -void glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -void glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -void glTranslated (GLdouble x, GLdouble y, GLdouble z); -void glTranslatef (GLfloat x, GLfloat y, GLfloat z); -void glVertex2d (GLdouble x, GLdouble y); -void glVertex2dv (const GLdouble *v); -void glVertex2f (GLfloat x, GLfloat y); -void glVertex2fv (const GLfloat *v); -void glVertex2i (GLint x, GLint y); -void glVertex2iv (const GLint *v); -void glVertex2s (GLshort x, GLshort y); -void glVertex2sv (const GLshort *v); -void glVertex3d (GLdouble x, GLdouble y, GLdouble z); -void glVertex3dv (const GLdouble *v); -void glVertex3f (GLfloat x, GLfloat y, GLfloat z); -void glVertex3fv (const GLfloat *v); -void glVertex3i (GLint x, GLint y, GLint z); -void glVertex3iv (const GLint *v); -void glVertex3s (GLshort x, GLshort y, GLshort z); -void glVertex3sv (const GLshort *v); -void glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -void glVertex4dv (const GLdouble *v); -void glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -void glVertex4fv (const GLfloat *v); -void glVertex4i (GLint x, GLint y, GLint z, GLint w); -void glVertex4iv (const GLint *v); -void glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -void glVertex4sv (const GLshort *v); -void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -void glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.2 1999/05/01 04:40:57 RD -// wxPython 2.0b9, second phase (gtk) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.1 1999/04/30 03:29:18 RD -// -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// diff --git a/utils/wxPython/src/glcanvasc.def b/utils/wxPython/src/glcanvasc.def deleted file mode 100644 index 8be1ced94e..0000000000 --- a/utils/wxPython/src/glcanvasc.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS - initglcanvasc diff --git a/utils/wxPython/src/gtk/.cvsignore b/utils/wxPython/src/gtk/.cvsignore deleted file mode 100644 index 3112d91a2f..0000000000 --- a/utils/wxPython/src/gtk/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -_glcanvas.cpp diff --git a/utils/wxPython/src/gtk/cmndlgs.cpp b/utils/wxPython/src/gtk/cmndlgs.cpp deleted file mode 100644 index b0548844b1..0000000000 --- a/utils/wxPython/src/gtk/cmndlgs.cpp +++ /dev/null @@ -1,4437 +0,0 @@ -/* - * FILE : gtk/cmndlgs.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initcmndlgsc - -#define SWIG_name "cmndlgsc" - -#include "helpers.h" -#include -#include -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define new_wxColourData() (new wxColourData()) -static PyObject *_wrap_new_wxColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxColourData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColourData *)new_wxColourData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxColourData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxColourData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxColourData. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxColourData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColourData_GetChooseFull(_swigobj) (_swigobj->GetChooseFull()) -static PyObject *_wrap_wxColourData_GetChooseFull(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxColourData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourData_GetChooseFull",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_GetChooseFull. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxColourData_GetChooseFull(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxColourData_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxColourData_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxColourData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourData_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_GetColour. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxColourData_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourData_GetCustomColour(_swigobj,_swigarg0) (_swigobj->GetCustomColour(_swigarg0)) -static PyObject *_wrap_wxColourData_GetCustomColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxColourData * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxColourData_GetCustomColour",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_GetCustomColour. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxColourData_GetCustomColour(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourData_SetChooseFull(_swigobj,_swigarg0) (_swigobj->SetChooseFull(_swigarg0)) -static PyObject *_wrap_wxColourData_SetChooseFull(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxColourData_SetChooseFull",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetChooseFull. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData_SetChooseFull(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColourData_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxColourData_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxColourData_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxColourData_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColourData_SetCustomColour(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetCustomColour(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxColourData_SetCustomColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - int _arg1; - wxColour * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxColourData_SetCustomColour",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetCustomColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxColourData_SetCustomColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData_SetCustomColour(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxColourDialogTowxDialog(void *ptr) { - wxColourDialog *src; - wxDialog *dest; - src = (wxColourDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxColourDialogTowxPanel(void *ptr) { - wxColourDialog *src; - wxPanel *dest; - src = (wxColourDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxColourDialogTowxWindow(void *ptr) { - wxColourDialog *src; - wxWindow *dest; - src = (wxColourDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxColourDialogTowxEvtHandler(void *ptr) { - wxColourDialog *src; - wxEvtHandler *dest; - src = (wxColourDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxColourDialog(_swigarg0,_swigarg1) (new wxColourDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxColourDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourDialog * _result; - wxWindow * _arg0; - wxColourData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxColourDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxColourDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxColourDialog. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColourDialog *)new_wxColourDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourDialog_GetColourData(_swigobj) (_swigobj->GetColourData()) -static PyObject *_wrap_wxColourDialog_GetColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _result; - wxColourDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourDialog_GetColourData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourDialog_GetColourData. Expected _wxColourDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData & _result_ref = wxColourDialog_GetColourData(_arg0); - _result = (wxColourData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxColourDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxColourDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourDialog_ShowModal. Expected _wxColourDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxColourDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxDirDialogTowxDialog(void *ptr) { - wxDirDialog *src; - wxDialog *dest; - src = (wxDirDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxDirDialogTowxPanel(void *ptr) { - wxDirDialog *src; - wxPanel *dest; - src = (wxDirDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxDirDialogTowxWindow(void *ptr) { - wxDirDialog *src; - wxWindow *dest; - src = (wxDirDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxDirDialogTowxEvtHandler(void *ptr) { - wxDirDialog *src; - wxEvtHandler *dest; - src = (wxDirDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxDirDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxDirDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxDirDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDirDialog * _result; - wxWindow * _arg0; - char * _arg1 = "Choose a directory"; - char * _arg2 = ""; - long _arg3 = 0; - wxPoint * _arg4 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssls:new_wxDirDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxDirDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxDirDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDirDialog *)new_wxDirDialog(_arg0,_arg1,_arg2,_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDirDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDirDialog_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxDirDialog_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_GetPath",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_GetPath. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxDirDialog_GetPath(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxDirDialog_GetMessage(_swigobj) (_swigobj->GetMessage()) -static PyObject *_wrap_wxDirDialog_GetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_GetMessage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_GetMessage. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxDirDialog_GetMessage(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxDirDialog_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxDirDialog_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_GetStyle. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDirDialog_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDirDialog_SetMessage(_swigobj,_swigarg0) (_swigobj->SetMessage(_swigarg0)) -static PyObject *_wrap_wxDirDialog_SetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDirDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDirDialog_SetMessage",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_SetMessage. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDirDialog_SetMessage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDirDialog_SetPath(_swigobj,_swigarg0) (_swigobj->SetPath(_swigarg0)) -static PyObject *_wrap_wxDirDialog_SetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDirDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDirDialog_SetPath",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_SetPath. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDirDialog_SetPath(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDirDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxDirDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_ShowModal. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDirDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxFileDialogTowxDialog(void *ptr) { - wxFileDialog *src; - wxDialog *dest; - src = (wxFileDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxFileDialogTowxPanel(void *ptr) { - wxFileDialog *src; - wxPanel *dest; - src = (wxFileDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxFileDialogTowxWindow(void *ptr) { - wxFileDialog *src; - wxWindow *dest; - src = (wxFileDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxFileDialogTowxEvtHandler(void *ptr) { - wxFileDialog *src; - wxEvtHandler *dest; - src = (wxFileDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxFileDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxFileDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxFileDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _result; - wxWindow * _arg0; - char * _arg1 = "Choose a file"; - char * _arg2 = ""; - char * _arg3 = ""; - char * _arg4 = "*.*"; - long _arg5 = 0; - wxPoint * _arg6 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssssls:new_wxFileDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFileDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxFileDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFileDialog *)new_wxFileDialog(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,*_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFileDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFileDialog_GetDirectory(_swigobj) (_swigobj->GetDirectory()) -static PyObject *_wrap_wxFileDialog_GetDirectory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetDirectory",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetDirectory. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetDirectory(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetFilename(_swigobj) (_swigobj->GetFilename()) -static PyObject *_wrap_wxFileDialog_GetFilename(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetFilename",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetFilename. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetFilename(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetFilterIndex(_swigobj) (_swigobj->GetFilterIndex()) -static PyObject *_wrap_wxFileDialog_GetFilterIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetFilterIndex",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetFilterIndex. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFileDialog_GetFilterIndex(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFileDialog_GetMessage(_swigobj) (_swigobj->GetMessage()) -static PyObject *_wrap_wxFileDialog_GetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetMessage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetMessage. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetMessage(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxFileDialog_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetPath",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetPath. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetPath(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxFileDialog_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetStyle. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxFileDialog_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxFileDialog_GetWildcard(_swigobj) (_swigobj->GetWildcard()) -static PyObject *_wrap_wxFileDialog_GetWildcard(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetWildcard",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetWildcard. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetWildcard(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_SetDirectory(_swigobj,_swigarg0) (_swigobj->SetDirectory(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetDirectory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetDirectory",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetDirectory. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetDirectory(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetFilename(_swigobj,_swigarg0) (_swigobj->SetFilename(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetFilename(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetFilename",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetFilename. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetFilename(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetFilterIndex(_swigobj,_swigarg0) (_swigobj->SetFilterIndex(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetFilterIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFileDialog_SetFilterIndex",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetFilterIndex. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetFilterIndex(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFileDialog_SetMessage(_swigobj,_swigarg0) (_swigobj->SetMessage(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetMessage",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetMessage. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetMessage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetPath(_swigobj,_swigarg0) (_swigobj->SetPath(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetPath",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetPath. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetPath(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxFileDialog_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetStyle. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFileDialog_SetWildcard(_swigobj,_swigarg0) (_swigobj->SetWildcard(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetWildcard(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetWildcard",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetWildcard. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetWildcard(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxFileDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_ShowModal. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFileDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxSingleChoiceDialogTowxDialog(void *ptr) { - wxSingleChoiceDialog *src; - wxDialog *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxSingleChoiceDialogTowxPanel(void *ptr) { - wxSingleChoiceDialog *src; - wxPanel *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxSingleChoiceDialogTowxWindow(void *ptr) { - wxSingleChoiceDialog *src; - wxWindow *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSingleChoiceDialogTowxEvtHandler(void *ptr) { - wxSingleChoiceDialog *src; - wxEvtHandler *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -static wxSingleChoiceDialog *new_wxSingleChoiceDialog(wxWindow *parent,wxString *message,wxString *caption,int LCOUNT,wxString *LIST,long style,wxPoint *pos) { - return new wxSingleChoiceDialog(parent, *message, *caption, - LCOUNT, LIST, NULL, style, *pos); - } - -static PyObject *_wrap_new_wxSingleChoiceDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSingleChoiceDialog * _result; - wxWindow * _arg0; - wxString * _arg1; - wxString * _arg2; - int _arg3; - wxString * _arg4; - long _arg5 = (wxOK)|(wxCANCEL)|(wxCENTRE); - wxPoint * _arg6 = &wxPyDefaultPosition; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sOOO|ls:new_wxSingleChoiceDialog",&_argc0,&_obj1,&_obj2,&_obj4,&_arg5,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSingleChoiceDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj4) -{ - _arg4 = wxString_LIST_helper(_obj4); - if (_arg4 == NULL) { - return NULL; - } -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxSingleChoiceDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - if (_obj4) { - _arg3 = PyList_Size(_obj4); - } - else { - _arg3 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSingleChoiceDialog *)new_wxSingleChoiceDialog(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSingleChoiceDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - delete [] _arg4; -} - return _resultobj; -} - -#define wxSingleChoiceDialog_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxSingleChoiceDialog_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSingleChoiceDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSingleChoiceDialog_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_GetSelection. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSingleChoiceDialog_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSingleChoiceDialog_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxSingleChoiceDialog_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxSingleChoiceDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSingleChoiceDialog_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_GetStringSelection. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxSingleChoiceDialog_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxSingleChoiceDialog_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxSingleChoiceDialog_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSingleChoiceDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSingleChoiceDialog_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_SetSelection. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSingleChoiceDialog_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSingleChoiceDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxSingleChoiceDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSingleChoiceDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSingleChoiceDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_ShowModal. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSingleChoiceDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxTextEntryDialogTowxDialog(void *ptr) { - wxTextEntryDialog *src; - wxDialog *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxTextEntryDialogTowxPanel(void *ptr) { - wxTextEntryDialog *src; - wxPanel *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxTextEntryDialogTowxWindow(void *ptr) { - wxTextEntryDialog *src; - wxWindow *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxTextEntryDialogTowxEvtHandler(void *ptr) { - wxTextEntryDialog *src; - wxEvtHandler *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTextEntryDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxTextEntryDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxTextEntryDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextEntryDialog * _result; - wxWindow * _arg0; - char * _arg1; - char * _arg2 = "Input Text"; - char * _arg3 = ""; - long _arg4 = (wxOK)|(wxCANCEL)|(wxCENTRE); - wxPoint * _arg5 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss|ssls:new_wxTextEntryDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextEntryDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxTextEntryDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextEntryDialog *)new_wxTextEntryDialog(_arg0,_arg1,_arg2,_arg3,_arg4,*_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextEntryDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTextEntryDialog_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxTextEntryDialog_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextEntryDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextEntryDialog_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextEntryDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextEntryDialog_GetValue. Expected _wxTextEntryDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTextEntryDialog_GetValue(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTextEntryDialog_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxTextEntryDialog_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextEntryDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextEntryDialog_SetValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextEntryDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextEntryDialog_SetValue. Expected _wxTextEntryDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextEntryDialog_SetValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextEntryDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxTextEntryDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTextEntryDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextEntryDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextEntryDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextEntryDialog_ShowModal. Expected _wxTextEntryDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTextEntryDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxFontData() (new wxFontData()) -static PyObject *_wrap_new_wxFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxFontData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFontData *)new_wxFontData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxFontData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxFontData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxFontData. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxFontData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_EnableEffects(_swigobj,_swigarg0) (_swigobj->EnableEffects(_swigarg0)) -static PyObject *_wrap_wxFontData_EnableEffects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFontData_EnableEffects",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_EnableEffects. Expected _wxFontData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_EnableEffects(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_GetAllowSymbols(_swigobj) (_swigobj->GetAllowSymbols()) -static PyObject *_wrap_wxFontData_GetAllowSymbols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetAllowSymbols",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetAllowSymbols. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFontData_GetAllowSymbols(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFontData_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxFontData_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxFontData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetColour. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxFontData_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontData_GetChosenFont(_swigobj) (_swigobj->GetChosenFont()) -static PyObject *_wrap_wxFontData_GetChosenFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxFontData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetChosenFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetChosenFont. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxFont (wxFontData_GetChosenFont(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontData_GetEnableEffects(_swigobj) (_swigobj->GetEnableEffects()) -static PyObject *_wrap_wxFontData_GetEnableEffects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetEnableEffects",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetEnableEffects. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFontData_GetEnableEffects(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFontData_GetInitialFont(_swigobj) (_swigobj->GetInitialFont()) -static PyObject *_wrap_wxFontData_GetInitialFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxFontData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetInitialFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetInitialFont. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxFont (wxFontData_GetInitialFont(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontData_GetShowHelp(_swigobj) (_swigobj->GetShowHelp()) -static PyObject *_wrap_wxFontData_GetShowHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetShowHelp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetShowHelp. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFontData_GetShowHelp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFontData_SetAllowSymbols(_swigobj,_swigarg0) (_swigobj->SetAllowSymbols(_swigarg0)) -static PyObject *_wrap_wxFontData_SetAllowSymbols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFontData_SetAllowSymbols",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetAllowSymbols. Expected _wxFontData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetAllowSymbols(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetChosenFont(_swigobj,_swigarg0) (_swigobj->SetChosenFont(_swigarg0)) -static PyObject *_wrap_wxFontData_SetChosenFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFontData_SetChosenFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetChosenFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFontData_SetChosenFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetChosenFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxFontData_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFontData_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetColour. Expected _wxFontData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFontData_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetInitialFont(_swigobj,_swigarg0) (_swigobj->SetInitialFont(_swigarg0)) -static PyObject *_wrap_wxFontData_SetInitialFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFontData_SetInitialFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetInitialFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFontData_SetInitialFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetInitialFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetRange(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRange(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxFontData_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxFontData_SetRange",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetRange. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetRange(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetShowHelp(_swigobj,_swigarg0) (_swigobj->SetShowHelp(_swigarg0)) -static PyObject *_wrap_wxFontData_SetShowHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFontData_SetShowHelp",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetShowHelp. Expected _wxFontData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetShowHelp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxFontDialogTowxDialog(void *ptr) { - wxFontDialog *src; - wxDialog *dest; - src = (wxFontDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxFontDialogTowxPanel(void *ptr) { - wxFontDialog *src; - wxPanel *dest; - src = (wxFontDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxFontDialogTowxWindow(void *ptr) { - wxFontDialog *src; - wxWindow *dest; - src = (wxFontDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxFontDialogTowxEvtHandler(void *ptr) { - wxFontDialog *src; - wxEvtHandler *dest; - src = (wxFontDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxFontDialog(_swigarg0,_swigarg1) (new wxFontDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxFontDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontDialog * _result; - wxWindow * _arg0; - wxFontData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxFontDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFontDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxFontDialog. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFontDialog *)new_wxFontDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontDialog_GetFontData(_swigobj) (_swigobj->GetFontData()) -static PyObject *_wrap_wxFontDialog_GetFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _result; - wxFontDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontDialog_GetFontData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontDialog_GetFontData. Expected _wxFontDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData & _result_ref = wxFontDialog_GetFontData(_arg0); - _result = (wxFontData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxFontDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFontDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontDialog_ShowModal. Expected _wxFontDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFontDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPageSetupDialogData() (new wxPageSetupDialogData()) -static PyObject *_wrap_new_wxPageSetupDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPageSetupDialogData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPageSetupDialogData *)new_wxPageSetupDialogData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPageSetupDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPageSetupDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPageSetupDialogData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPageSetupDialogData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPageSetupDialogData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnableHelp(_swigobj,_swigarg0) (_swigobj->EnableHelp(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnableHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnableHelp",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnableHelp. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnableHelp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnableMargins(_swigobj,_swigarg0) (_swigobj->EnableMargins(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnableMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnableMargins",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnableMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnableMargins(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnableOrientation(_swigobj,_swigarg0) (_swigobj->EnableOrientation(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnableOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnableOrientation",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnableOrientation. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnableOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnablePaper(_swigobj,_swigarg0) (_swigobj->EnablePaper(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnablePaper(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnablePaper",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnablePaper. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnablePaper(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnablePrinter(_swigobj,_swigarg0) (_swigobj->EnablePrinter(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnablePrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnablePrinter",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnablePrinter. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnablePrinter(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_GetDefaultMinMargins(_swigobj) (_swigobj->GetDefaultMinMargins()) -static PyObject *_wrap_wxPageSetupDialogData_GetDefaultMinMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetDefaultMinMargins",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetDefaultMinMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetDefaultMinMargins(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnableMargins(_swigobj) (_swigobj->GetEnableMargins()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnableMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnableMargins",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnableMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnableMargins(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnableOrientation(_swigobj) (_swigobj->GetEnableOrientation()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnableOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnableOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnableOrientation. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnableOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnablePaper(_swigobj) (_swigobj->GetEnablePaper()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnablePaper(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnablePaper",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnablePaper. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnablePaper(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnablePrinter(_swigobj) (_swigobj->GetEnablePrinter()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnablePrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnablePrinter",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnablePrinter. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnablePrinter(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnableHelp(_swigobj) (_swigobj->GetEnableHelp()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnableHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnableHelp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnableHelp. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnableHelp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetDefaultInfo(_swigobj) (_swigobj->GetDefaultInfo()) -static PyObject *_wrap_wxPageSetupDialogData_GetDefaultInfo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetDefaultInfo",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetDefaultInfo. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetDefaultInfo(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMarginTopLeft(_swigobj) (_swigobj->GetMarginTopLeft()) -static PyObject *_wrap_wxPageSetupDialogData_GetMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMarginTopLeft",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMarginTopLeft(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMarginBottomRight(_swigobj) (_swigobj->GetMarginBottomRight()) -static PyObject *_wrap_wxPageSetupDialogData_GetMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMarginBottomRight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMarginBottomRight(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMinMarginTopLeft(_swigobj) (_swigobj->GetMinMarginTopLeft()) -static PyObject *_wrap_wxPageSetupDialogData_GetMinMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMinMarginTopLeft",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMinMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMinMarginTopLeft(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMinMarginBottomRight(_swigobj) (_swigobj->GetMinMarginBottomRight()) -static PyObject *_wrap_wxPageSetupDialogData_GetMinMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMinMarginBottomRight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMinMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMinMarginBottomRight(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetPaperId(_swigobj) (_swigobj->GetPaperId()) -static PyObject *_wrap_wxPageSetupDialogData_GetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPaperSize _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetPaperId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetPaperId. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPaperSize )wxPageSetupDialogData_GetPaperId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetPaperSize(_swigobj) (_swigobj->GetPaperSize()) -static PyObject *_wrap_wxPageSetupDialogData_GetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetPaperSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetPaperSize. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxPageSetupDialogData_GetPaperSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetPrintData(_swigobj) (_swigobj->GetPrintData()) -static PyObject *_wrap_wxPageSetupDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetPrintData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetPrintData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData & _result_ref = wxPageSetupDialogData_GetPrintData(_arg0); - _result = (wxPrintData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_SetDefaultInfo(_swigobj,_swigarg0) (_swigobj->SetDefaultInfo(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetDefaultInfo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_SetDefaultInfo",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetDefaultInfo. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetDefaultInfo(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetDefaultMinMargins(_swigobj,_swigarg0) (_swigobj->SetDefaultMinMargins(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetDefaultMinMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_SetDefaultMinMargins",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetDefaultMinMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetDefaultMinMargins(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMarginTopLeft(_swigobj,_swigarg0) (_swigobj->SetMarginTopLeft(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMarginTopLeft",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMarginTopLeft. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMarginTopLeft(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMarginBottomRight(_swigobj,_swigarg0) (_swigobj->SetMarginBottomRight(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMarginBottomRight",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMarginBottomRight. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMarginBottomRight(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMinMarginTopLeft(_swigobj,_swigarg0) (_swigobj->SetMinMarginTopLeft(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMinMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMinMarginTopLeft",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMinMarginTopLeft. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMinMarginTopLeft(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMinMarginBottomRight(_swigobj,_swigarg0) (_swigobj->SetMinMarginBottomRight(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMinMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMinMarginBottomRight",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMinMarginBottomRight. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMinMarginBottomRight(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetPaperId(_swigobj,_swigarg0) (_swigobj->SetPaperId(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPaperSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetPaperId",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperId. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPaperSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetPaperId. Expected _wxPaperSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetPaperId(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetPaperSize(_swigobj,_swigarg0) (_swigobj->SetPaperSize(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetPaperSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperSize. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetPaperSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetPaperSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetPrintData(_swigobj,_swigarg0) (_swigobj->SetPrintData(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPrintData * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetPrintData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPrintData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetPrintData. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetPrintData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxPageSetupDialogTowxDialog(void *ptr) { - wxPageSetupDialog *src; - wxDialog *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxPageSetupDialogTowxPanel(void *ptr) { - wxPageSetupDialog *src; - wxPanel *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxPageSetupDialogTowxWindow(void *ptr) { - wxPageSetupDialog *src; - wxWindow *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPageSetupDialogTowxEvtHandler(void *ptr) { - wxPageSetupDialog *src; - wxEvtHandler *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPageSetupDialog(_swigarg0,_swigarg1) (new wxPageSetupDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPageSetupDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialog * _result; - wxWindow * _arg0; - wxPageSetupDialogData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxPageSetupDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPageSetupDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPageSetupDialog. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPageSetupDialog *)new_wxPageSetupDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialog_GetPageSetupData(_swigobj) (_swigobj->GetPageSetupData()) -static PyObject *_wrap_wxPageSetupDialog_GetPageSetupData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _result; - wxPageSetupDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialog_GetPageSetupData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialog_GetPageSetupData. Expected _wxPageSetupDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData & _result_ref = wxPageSetupDialog_GetPageSetupData(_arg0); - _result = (wxPageSetupDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPageSetupDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPageSetupDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialog_ShowModal. Expected _wxPageSetupDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPageSetupDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPrintDialogData() (new wxPrintDialogData()) -static PyObject *_wrap_new_wxPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPrintDialogData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintDialogData *)new_wxPrintDialogData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPrintDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPrintDialogData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPrintDialogData. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPrintDialogData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnableHelp(_swigobj,_swigarg0) (_swigobj->EnableHelp(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnableHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnableHelp",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnableHelp. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnableHelp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnablePageNumbers(_swigobj,_swigarg0) (_swigobj->EnablePageNumbers(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnablePageNumbers(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnablePageNumbers",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnablePageNumbers. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnablePageNumbers(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnablePrintToFile(_swigobj,_swigarg0) (_swigobj->EnablePrintToFile(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnablePrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnablePrintToFile",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnablePrintToFile. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnablePrintToFile(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnableSelection(_swigobj,_swigarg0) (_swigobj->EnableSelection(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnableSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnableSelection",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnableSelection. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnableSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_GetAllPages(_swigobj) (_swigobj->GetAllPages()) -static PyObject *_wrap_wxPrintDialogData_GetAllPages(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetAllPages",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetAllPages. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintDialogData_GetAllPages(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetCollate(_swigobj) (_swigobj->GetCollate()) -static PyObject *_wrap_wxPrintDialogData_GetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetCollate",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetCollate. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintDialogData_GetCollate(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetFromPage(_swigobj) (_swigobj->GetFromPage()) -static PyObject *_wrap_wxPrintDialogData_GetFromPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetFromPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetFromPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetFromPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetMaxPage(_swigobj) (_swigobj->GetMaxPage()) -static PyObject *_wrap_wxPrintDialogData_GetMaxPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetMaxPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetMaxPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetMaxPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetMinPage(_swigobj) (_swigobj->GetMinPage()) -static PyObject *_wrap_wxPrintDialogData_GetMinPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetMinPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetMinPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetMinPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetNoCopies(_swigobj) (_swigobj->GetNoCopies()) -static PyObject *_wrap_wxPrintDialogData_GetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetNoCopies",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetNoCopies. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetNoCopies(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetPrintData(_swigobj) (_swigobj->GetPrintData()) -static PyObject *_wrap_wxPrintDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetPrintData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetPrintData. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData & _result_ref = wxPrintDialogData_GetPrintData(_arg0); - _result = (wxPrintData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialogData_GetPrintToFile(_swigobj) (_swigobj->GetPrintToFile()) -static PyObject *_wrap_wxPrintDialogData_GetPrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetPrintToFile",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetPrintToFile. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintDialogData_GetPrintToFile(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetToPage(_swigobj) (_swigobj->GetToPage()) -static PyObject *_wrap_wxPrintDialogData_GetToPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetToPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetToPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetToPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_SetCollate(_swigobj,_swigarg0) (_swigobj->SetCollate(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetCollate",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetCollate. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetCollate(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetFromPage(_swigobj,_swigarg0) (_swigobj->SetFromPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetFromPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetFromPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetFromPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetFromPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetMaxPage(_swigobj,_swigarg0) (_swigobj->SetMaxPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetMaxPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetMaxPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetMaxPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetMaxPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetMinPage(_swigobj,_swigarg0) (_swigobj->SetMinPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetMinPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetMinPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetMinPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetMinPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetNoCopies(_swigobj,_swigarg0) (_swigobj->SetNoCopies(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetNoCopies",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetNoCopies. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetNoCopies(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetPrintData(_swigobj,_swigarg0) (_swigobj->SetPrintData(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - wxPrintData * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPrintDialogData_SetPrintData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetPrintData. Expected _wxPrintDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintDialogData_SetPrintData. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetPrintData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetPrintToFile(_swigobj,_swigarg0) (_swigobj->SetPrintToFile(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetPrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetPrintToFile",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetPrintToFile. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetPrintToFile(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetSetupDialog(_swigobj,_swigarg0) (_swigobj->SetSetupDialog(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetSetupDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetSetupDialog",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetSetupDialog. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetSetupDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetToPage(_swigobj,_swigarg0) (_swigobj->SetToPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetToPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetToPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetToPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetToPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxPrintDialogTowxDialog(void *ptr) { - wxPrintDialog *src; - wxDialog *dest; - src = (wxPrintDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxPrintDialogTowxPanel(void *ptr) { - wxPrintDialog *src; - wxPanel *dest; - src = (wxPrintDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxPrintDialogTowxWindow(void *ptr) { - wxPrintDialog *src; - wxWindow *dest; - src = (wxPrintDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPrintDialogTowxEvtHandler(void *ptr) { - wxPrintDialog *src; - wxEvtHandler *dest; - src = (wxPrintDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPrintDialog(_swigarg0,_swigarg1) (new wxPrintDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPrintDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialog * _result; - wxWindow * _arg0; - wxPrintDialogData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxPrintDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrintDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPrintDialog. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintDialog *)new_wxPrintDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialog_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrintDialog_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrintDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialog_GetPrintDialogData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialog_GetPrintDialogData. Expected _wxPrintDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData & _result_ref = wxPrintDialog_GetPrintDialogData(_arg0); - _result = (wxPrintDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialog_GetPrintDC(_swigobj) (_swigobj->GetPrintDC()) -static PyObject *_wrap_wxPrintDialog_GetPrintDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPrintDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialog_GetPrintDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialog_GetPrintDC. Expected _wxPrintDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxPrintDialog_GetPrintDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPrintDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialog_ShowModal. Expected _wxPrintDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxMessageDialogTowxDialog(void *ptr) { - wxMessageDialog *src; - wxDialog *dest; - src = (wxMessageDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxMessageDialogTowxPanel(void *ptr) { - wxMessageDialog *src; - wxPanel *dest; - src = (wxMessageDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxMessageDialogTowxWindow(void *ptr) { - wxMessageDialog *src; - wxWindow *dest; - src = (wxMessageDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMessageDialogTowxEvtHandler(void *ptr) { - wxMessageDialog *src; - wxEvtHandler *dest; - src = (wxMessageDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMessageDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxMessageDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxMessageDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMessageDialog * _result; - wxWindow * _arg0; - char * _arg1; - char * _arg2 = "Message box"; - long _arg3 = (wxOK)|(wxCANCEL)|(wxCENTRE); - wxPoint * _arg4 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss|sls:new_wxMessageDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMessageDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMessageDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMessageDialog *)new_wxMessageDialog(_arg0,_arg1,_arg2,_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMessageDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMessageDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxMessageDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMessageDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMessageDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMessageDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMessageDialog_ShowModal. Expected _wxMessageDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMessageDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef cmndlgscMethods[] = { - { "wxMessageDialog_ShowModal", _wrap_wxMessageDialog_ShowModal, 1 }, - { "new_wxMessageDialog", _wrap_new_wxMessageDialog, 1 }, - { "wxPrintDialog_ShowModal", _wrap_wxPrintDialog_ShowModal, 1 }, - { "wxPrintDialog_GetPrintDC", _wrap_wxPrintDialog_GetPrintDC, 1 }, - { "wxPrintDialog_GetPrintDialogData", _wrap_wxPrintDialog_GetPrintDialogData, 1 }, - { "new_wxPrintDialog", _wrap_new_wxPrintDialog, 1 }, - { "wxPrintDialogData_SetToPage", _wrap_wxPrintDialogData_SetToPage, 1 }, - { "wxPrintDialogData_SetSetupDialog", _wrap_wxPrintDialogData_SetSetupDialog, 1 }, - { "wxPrintDialogData_SetPrintToFile", _wrap_wxPrintDialogData_SetPrintToFile, 1 }, - { "wxPrintDialogData_SetPrintData", _wrap_wxPrintDialogData_SetPrintData, 1 }, - { "wxPrintDialogData_SetNoCopies", _wrap_wxPrintDialogData_SetNoCopies, 1 }, - { "wxPrintDialogData_SetMinPage", _wrap_wxPrintDialogData_SetMinPage, 1 }, - { "wxPrintDialogData_SetMaxPage", _wrap_wxPrintDialogData_SetMaxPage, 1 }, - { "wxPrintDialogData_SetFromPage", _wrap_wxPrintDialogData_SetFromPage, 1 }, - { "wxPrintDialogData_SetCollate", _wrap_wxPrintDialogData_SetCollate, 1 }, - { "wxPrintDialogData_GetToPage", _wrap_wxPrintDialogData_GetToPage, 1 }, - { "wxPrintDialogData_GetPrintToFile", _wrap_wxPrintDialogData_GetPrintToFile, 1 }, - { "wxPrintDialogData_GetPrintData", _wrap_wxPrintDialogData_GetPrintData, 1 }, - { "wxPrintDialogData_GetNoCopies", _wrap_wxPrintDialogData_GetNoCopies, 1 }, - { "wxPrintDialogData_GetMinPage", _wrap_wxPrintDialogData_GetMinPage, 1 }, - { "wxPrintDialogData_GetMaxPage", _wrap_wxPrintDialogData_GetMaxPage, 1 }, - { "wxPrintDialogData_GetFromPage", _wrap_wxPrintDialogData_GetFromPage, 1 }, - { "wxPrintDialogData_GetCollate", _wrap_wxPrintDialogData_GetCollate, 1 }, - { "wxPrintDialogData_GetAllPages", _wrap_wxPrintDialogData_GetAllPages, 1 }, - { "wxPrintDialogData_EnableSelection", _wrap_wxPrintDialogData_EnableSelection, 1 }, - { "wxPrintDialogData_EnablePrintToFile", _wrap_wxPrintDialogData_EnablePrintToFile, 1 }, - { "wxPrintDialogData_EnablePageNumbers", _wrap_wxPrintDialogData_EnablePageNumbers, 1 }, - { "wxPrintDialogData_EnableHelp", _wrap_wxPrintDialogData_EnableHelp, 1 }, - { "delete_wxPrintDialogData", _wrap_delete_wxPrintDialogData, 1 }, - { "new_wxPrintDialogData", _wrap_new_wxPrintDialogData, 1 }, - { "wxPageSetupDialog_ShowModal", _wrap_wxPageSetupDialog_ShowModal, 1 }, - { "wxPageSetupDialog_GetPageSetupData", _wrap_wxPageSetupDialog_GetPageSetupData, 1 }, - { "new_wxPageSetupDialog", _wrap_new_wxPageSetupDialog, 1 }, - { "wxPageSetupDialogData_SetPrintData", _wrap_wxPageSetupDialogData_SetPrintData, 1 }, - { "wxPageSetupDialogData_SetPaperSize", _wrap_wxPageSetupDialogData_SetPaperSize, 1 }, - { "wxPageSetupDialogData_SetPaperId", _wrap_wxPageSetupDialogData_SetPaperId, 1 }, - { "wxPageSetupDialogData_SetMinMarginBottomRight", _wrap_wxPageSetupDialogData_SetMinMarginBottomRight, 1 }, - { "wxPageSetupDialogData_SetMinMarginTopLeft", _wrap_wxPageSetupDialogData_SetMinMarginTopLeft, 1 }, - { "wxPageSetupDialogData_SetMarginBottomRight", _wrap_wxPageSetupDialogData_SetMarginBottomRight, 1 }, - { "wxPageSetupDialogData_SetMarginTopLeft", _wrap_wxPageSetupDialogData_SetMarginTopLeft, 1 }, - { "wxPageSetupDialogData_SetDefaultMinMargins", _wrap_wxPageSetupDialogData_SetDefaultMinMargins, 1 }, - { "wxPageSetupDialogData_SetDefaultInfo", _wrap_wxPageSetupDialogData_SetDefaultInfo, 1 }, - { "wxPageSetupDialogData_GetPrintData", _wrap_wxPageSetupDialogData_GetPrintData, 1 }, - { "wxPageSetupDialogData_GetPaperSize", _wrap_wxPageSetupDialogData_GetPaperSize, 1 }, - { "wxPageSetupDialogData_GetPaperId", _wrap_wxPageSetupDialogData_GetPaperId, 1 }, - { "wxPageSetupDialogData_GetMinMarginBottomRight", _wrap_wxPageSetupDialogData_GetMinMarginBottomRight, 1 }, - { "wxPageSetupDialogData_GetMinMarginTopLeft", _wrap_wxPageSetupDialogData_GetMinMarginTopLeft, 1 }, - { "wxPageSetupDialogData_GetMarginBottomRight", _wrap_wxPageSetupDialogData_GetMarginBottomRight, 1 }, - { "wxPageSetupDialogData_GetMarginTopLeft", _wrap_wxPageSetupDialogData_GetMarginTopLeft, 1 }, - { "wxPageSetupDialogData_GetDefaultInfo", _wrap_wxPageSetupDialogData_GetDefaultInfo, 1 }, - { "wxPageSetupDialogData_GetEnableHelp", _wrap_wxPageSetupDialogData_GetEnableHelp, 1 }, - { "wxPageSetupDialogData_GetEnablePrinter", _wrap_wxPageSetupDialogData_GetEnablePrinter, 1 }, - { "wxPageSetupDialogData_GetEnablePaper", _wrap_wxPageSetupDialogData_GetEnablePaper, 1 }, - { "wxPageSetupDialogData_GetEnableOrientation", _wrap_wxPageSetupDialogData_GetEnableOrientation, 1 }, - { "wxPageSetupDialogData_GetEnableMargins", _wrap_wxPageSetupDialogData_GetEnableMargins, 1 }, - { "wxPageSetupDialogData_GetDefaultMinMargins", _wrap_wxPageSetupDialogData_GetDefaultMinMargins, 1 }, - { "wxPageSetupDialogData_EnablePrinter", _wrap_wxPageSetupDialogData_EnablePrinter, 1 }, - { "wxPageSetupDialogData_EnablePaper", _wrap_wxPageSetupDialogData_EnablePaper, 1 }, - { "wxPageSetupDialogData_EnableOrientation", _wrap_wxPageSetupDialogData_EnableOrientation, 1 }, - { "wxPageSetupDialogData_EnableMargins", _wrap_wxPageSetupDialogData_EnableMargins, 1 }, - { "wxPageSetupDialogData_EnableHelp", _wrap_wxPageSetupDialogData_EnableHelp, 1 }, - { "delete_wxPageSetupDialogData", _wrap_delete_wxPageSetupDialogData, 1 }, - { "new_wxPageSetupDialogData", _wrap_new_wxPageSetupDialogData, 1 }, - { "wxFontDialog_ShowModal", _wrap_wxFontDialog_ShowModal, 1 }, - { "wxFontDialog_GetFontData", _wrap_wxFontDialog_GetFontData, 1 }, - { "new_wxFontDialog", _wrap_new_wxFontDialog, 1 }, - { "wxFontData_SetShowHelp", _wrap_wxFontData_SetShowHelp, 1 }, - { "wxFontData_SetRange", _wrap_wxFontData_SetRange, 1 }, - { "wxFontData_SetInitialFont", _wrap_wxFontData_SetInitialFont, 1 }, - { "wxFontData_SetColour", _wrap_wxFontData_SetColour, 1 }, - { "wxFontData_SetChosenFont", _wrap_wxFontData_SetChosenFont, 1 }, - { "wxFontData_SetAllowSymbols", _wrap_wxFontData_SetAllowSymbols, 1 }, - { "wxFontData_GetShowHelp", _wrap_wxFontData_GetShowHelp, 1 }, - { "wxFontData_GetInitialFont", _wrap_wxFontData_GetInitialFont, 1 }, - { "wxFontData_GetEnableEffects", _wrap_wxFontData_GetEnableEffects, 1 }, - { "wxFontData_GetChosenFont", _wrap_wxFontData_GetChosenFont, 1 }, - { "wxFontData_GetColour", _wrap_wxFontData_GetColour, 1 }, - { "wxFontData_GetAllowSymbols", _wrap_wxFontData_GetAllowSymbols, 1 }, - { "wxFontData_EnableEffects", _wrap_wxFontData_EnableEffects, 1 }, - { "delete_wxFontData", _wrap_delete_wxFontData, 1 }, - { "new_wxFontData", _wrap_new_wxFontData, 1 }, - { "wxTextEntryDialog_ShowModal", _wrap_wxTextEntryDialog_ShowModal, 1 }, - { "wxTextEntryDialog_SetValue", _wrap_wxTextEntryDialog_SetValue, 1 }, - { "wxTextEntryDialog_GetValue", _wrap_wxTextEntryDialog_GetValue, 1 }, - { "new_wxTextEntryDialog", _wrap_new_wxTextEntryDialog, 1 }, - { "wxSingleChoiceDialog_ShowModal", _wrap_wxSingleChoiceDialog_ShowModal, 1 }, - { "wxSingleChoiceDialog_SetSelection", _wrap_wxSingleChoiceDialog_SetSelection, 1 }, - { "wxSingleChoiceDialog_GetStringSelection", _wrap_wxSingleChoiceDialog_GetStringSelection, 1 }, - { "wxSingleChoiceDialog_GetSelection", _wrap_wxSingleChoiceDialog_GetSelection, 1 }, - { "new_wxSingleChoiceDialog", _wrap_new_wxSingleChoiceDialog, 1 }, - { "wxFileDialog_ShowModal", _wrap_wxFileDialog_ShowModal, 1 }, - { "wxFileDialog_SetWildcard", _wrap_wxFileDialog_SetWildcard, 1 }, - { "wxFileDialog_SetStyle", _wrap_wxFileDialog_SetStyle, 1 }, - { "wxFileDialog_SetPath", _wrap_wxFileDialog_SetPath, 1 }, - { "wxFileDialog_SetMessage", _wrap_wxFileDialog_SetMessage, 1 }, - { "wxFileDialog_SetFilterIndex", _wrap_wxFileDialog_SetFilterIndex, 1 }, - { "wxFileDialog_SetFilename", _wrap_wxFileDialog_SetFilename, 1 }, - { "wxFileDialog_SetDirectory", _wrap_wxFileDialog_SetDirectory, 1 }, - { "wxFileDialog_GetWildcard", _wrap_wxFileDialog_GetWildcard, 1 }, - { "wxFileDialog_GetStyle", _wrap_wxFileDialog_GetStyle, 1 }, - { "wxFileDialog_GetPath", _wrap_wxFileDialog_GetPath, 1 }, - { "wxFileDialog_GetMessage", _wrap_wxFileDialog_GetMessage, 1 }, - { "wxFileDialog_GetFilterIndex", _wrap_wxFileDialog_GetFilterIndex, 1 }, - { "wxFileDialog_GetFilename", _wrap_wxFileDialog_GetFilename, 1 }, - { "wxFileDialog_GetDirectory", _wrap_wxFileDialog_GetDirectory, 1 }, - { "new_wxFileDialog", _wrap_new_wxFileDialog, 1 }, - { "wxDirDialog_ShowModal", _wrap_wxDirDialog_ShowModal, 1 }, - { "wxDirDialog_SetPath", _wrap_wxDirDialog_SetPath, 1 }, - { "wxDirDialog_SetMessage", _wrap_wxDirDialog_SetMessage, 1 }, - { "wxDirDialog_GetStyle", _wrap_wxDirDialog_GetStyle, 1 }, - { "wxDirDialog_GetMessage", _wrap_wxDirDialog_GetMessage, 1 }, - { "wxDirDialog_GetPath", _wrap_wxDirDialog_GetPath, 1 }, - { "new_wxDirDialog", _wrap_new_wxDirDialog, 1 }, - { "wxColourDialog_ShowModal", _wrap_wxColourDialog_ShowModal, 1 }, - { "wxColourDialog_GetColourData", _wrap_wxColourDialog_GetColourData, 1 }, - { "new_wxColourDialog", _wrap_new_wxColourDialog, 1 }, - { "wxColourData_SetCustomColour", _wrap_wxColourData_SetCustomColour, 1 }, - { "wxColourData_SetColour", _wrap_wxColourData_SetColour, 1 }, - { "wxColourData_SetChooseFull", _wrap_wxColourData_SetChooseFull, 1 }, - { "wxColourData_GetCustomColour", _wrap_wxColourData_GetCustomColour, 1 }, - { "wxColourData_GetColour", _wrap_wxColourData_GetColour, 1 }, - { "wxColourData_GetChooseFull", _wrap_wxColourData_GetChooseFull, 1 }, - { "delete_wxColourData", _wrap_delete_wxColourData, 1 }, - { "new_wxColourData", _wrap_new_wxColourData, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initcmndlgsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("cmndlgsc", cmndlgscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",0); - SWIG_RegisterMapping("_class_wxPageSetupDialogData","_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxPrintDialogData","_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxPageSetupDialog","_class_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",0); - SWIG_RegisterMapping("_wxTextEntryDialog","_class_wxTextEntryDialog",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxDirDialog","_wxDirDialog",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxMessageDialog","_wxMessageDialog",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_wxFileDialog","_class_wxFileDialog",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxPrintDialogData","_class_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxPrintDialog","_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_class_wxFileDialog","_wxFileDialog",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxPageSetupDialog","_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxDirDialog","_class_wxDirDialog",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxColourDialog","_wxColourDialog",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxTextEntryDialog","_wxTextEntryDialog",0); - SWIG_RegisterMapping("_wxColourData","_class_wxColourData",0); - SWIG_RegisterMapping("_wxPageSetupDialogData","_class_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxFontDialog","_wxFontDialog",0); - SWIG_RegisterMapping("_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/gtk/cmndlgs.py b/utils/wxPython/src/gtk/cmndlgs.py deleted file mode 100644 index ec9137a497..0000000000 --- a/utils/wxPython/src/gtk/cmndlgs.py +++ /dev/null @@ -1,603 +0,0 @@ -# This file was created automatically by SWIG. -import cmndlgsc - -from misc import * - -from gdi import * - -from windows import * -import wx -class wxColourDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxColourData(self.this) - def GetChooseFull(self): - val = cmndlgsc.wxColourData_GetChooseFull(self.this) - return val - def GetColour(self): - val = cmndlgsc.wxColourData_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetCustomColour(self,arg0): - val = cmndlgsc.wxColourData_GetCustomColour(self.this,arg0) - val = wxColourPtr(val) - val.thisown = 1 - return val - def SetChooseFull(self,arg0): - val = cmndlgsc.wxColourData_SetChooseFull(self.this,arg0) - return val - def SetColour(self,arg0): - val = cmndlgsc.wxColourData_SetColour(self.this,arg0.this) - return val - def SetCustomColour(self,arg0,arg1): - val = cmndlgsc.wxColourData_SetCustomColour(self.this,arg0,arg1.this) - return val - def __repr__(self): - return "" -class wxColourData(wxColourDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxColourData() - self.thisown = 1 - - - - -class wxColourDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColourData(self): - val = cmndlgsc.wxColourDialog_GetColourData(self.this) - val = wxColourDataPtr(val) - return val - def ShowModal(self): - val = cmndlgsc.wxColourDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxColourDialog(wxColourDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxColourDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxDirDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPath(self): - val = cmndlgsc.wxDirDialog_GetPath(self.this) - return val - def GetMessage(self): - val = cmndlgsc.wxDirDialog_GetMessage(self.this) - return val - def GetStyle(self): - val = cmndlgsc.wxDirDialog_GetStyle(self.this) - return val - def SetMessage(self,arg0): - val = cmndlgsc.wxDirDialog_SetMessage(self.this,arg0) - return val - def SetPath(self,arg0): - val = cmndlgsc.wxDirDialog_SetPath(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxDirDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxDirDialog(wxDirDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[3] = argl[3].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxDirDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFileDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDirectory(self): - val = cmndlgsc.wxFileDialog_GetDirectory(self.this) - return val - def GetFilename(self): - val = cmndlgsc.wxFileDialog_GetFilename(self.this) - return val - def GetFilterIndex(self): - val = cmndlgsc.wxFileDialog_GetFilterIndex(self.this) - return val - def GetMessage(self): - val = cmndlgsc.wxFileDialog_GetMessage(self.this) - return val - def GetPath(self): - val = cmndlgsc.wxFileDialog_GetPath(self.this) - return val - def GetStyle(self): - val = cmndlgsc.wxFileDialog_GetStyle(self.this) - return val - def GetWildcard(self): - val = cmndlgsc.wxFileDialog_GetWildcard(self.this) - return val - def SetDirectory(self,arg0): - val = cmndlgsc.wxFileDialog_SetDirectory(self.this,arg0) - return val - def SetFilename(self,arg0): - val = cmndlgsc.wxFileDialog_SetFilename(self.this,arg0) - return val - def SetFilterIndex(self,arg0): - val = cmndlgsc.wxFileDialog_SetFilterIndex(self.this,arg0) - return val - def SetMessage(self,arg0): - val = cmndlgsc.wxFileDialog_SetMessage(self.this,arg0) - return val - def SetPath(self,arg0): - val = cmndlgsc.wxFileDialog_SetPath(self.this,arg0) - return val - def SetStyle(self,arg0): - val = cmndlgsc.wxFileDialog_SetStyle(self.this,arg0) - return val - def SetWildcard(self,arg0): - val = cmndlgsc.wxFileDialog_SetWildcard(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxFileDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxFileDialog(wxFileDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[5] = argl[5].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxFileDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxSingleChoiceDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self): - val = cmndlgsc.wxSingleChoiceDialog_GetSelection(self.this) - return val - def GetStringSelection(self): - val = cmndlgsc.wxSingleChoiceDialog_GetStringSelection(self.this) - return val - def SetSelection(self,arg0): - val = cmndlgsc.wxSingleChoiceDialog_SetSelection(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxSingleChoiceDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxSingleChoiceDialog(wxSingleChoiceDialogPtr): - def __init__(self,arg0,arg1,arg2,arg3,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxSingleChoiceDialog,(arg0.this,arg1,arg2,arg3,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxTextEntryDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self): - val = cmndlgsc.wxTextEntryDialog_GetValue(self.this) - return val - def SetValue(self,arg0): - val = cmndlgsc.wxTextEntryDialog_SetValue(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxTextEntryDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxTextEntryDialog(wxTextEntryDialogPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[3] = argl[3].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxTextEntryDialog,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFontDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxFontData(self.this) - def EnableEffects(self,arg0): - val = cmndlgsc.wxFontData_EnableEffects(self.this,arg0) - return val - def GetAllowSymbols(self): - val = cmndlgsc.wxFontData_GetAllowSymbols(self.this) - return val - def GetColour(self): - val = cmndlgsc.wxFontData_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetChosenFont(self): - val = cmndlgsc.wxFontData_GetChosenFont(self.this) - val = wxFontPtr(val) - val.thisown = 1 - return val - def GetEnableEffects(self): - val = cmndlgsc.wxFontData_GetEnableEffects(self.this) - return val - def GetInitialFont(self): - val = cmndlgsc.wxFontData_GetInitialFont(self.this) - val = wxFontPtr(val) - val.thisown = 1 - return val - def GetShowHelp(self): - val = cmndlgsc.wxFontData_GetShowHelp(self.this) - return val - def SetAllowSymbols(self,arg0): - val = cmndlgsc.wxFontData_SetAllowSymbols(self.this,arg0) - return val - def SetChosenFont(self,arg0): - val = cmndlgsc.wxFontData_SetChosenFont(self.this,arg0.this) - return val - def SetColour(self,arg0): - val = cmndlgsc.wxFontData_SetColour(self.this,arg0.this) - return val - def SetInitialFont(self,arg0): - val = cmndlgsc.wxFontData_SetInitialFont(self.this,arg0.this) - return val - def SetRange(self,arg0,arg1): - val = cmndlgsc.wxFontData_SetRange(self.this,arg0,arg1) - return val - def SetShowHelp(self,arg0): - val = cmndlgsc.wxFontData_SetShowHelp(self.this,arg0) - return val - def __repr__(self): - return "" -class wxFontData(wxFontDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxFontData() - self.thisown = 1 - - - - -class wxFontDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFontData(self): - val = cmndlgsc.wxFontDialog_GetFontData(self.this) - val = wxFontDataPtr(val) - return val - def ShowModal(self): - val = cmndlgsc.wxFontDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxFontDialog(wxFontDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxFontDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPageSetupDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxPageSetupDialogData(self.this) - def EnableHelp(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnableHelp(self.this,arg0) - return val - def EnableMargins(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnableMargins(self.this,arg0) - return val - def EnableOrientation(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnableOrientation(self.this,arg0) - return val - def EnablePaper(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnablePaper(self.this,arg0) - return val - def EnablePrinter(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnablePrinter(self.this,arg0) - return val - def GetDefaultMinMargins(self): - val = cmndlgsc.wxPageSetupDialogData_GetDefaultMinMargins(self.this) - return val - def GetEnableMargins(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnableMargins(self.this) - return val - def GetEnableOrientation(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnableOrientation(self.this) - return val - def GetEnablePaper(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnablePaper(self.this) - return val - def GetEnablePrinter(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnablePrinter(self.this) - return val - def GetEnableHelp(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnableHelp(self.this) - return val - def GetDefaultInfo(self): - val = cmndlgsc.wxPageSetupDialogData_GetDefaultInfo(self.this) - return val - def GetMarginTopLeft(self): - val = cmndlgsc.wxPageSetupDialogData_GetMarginTopLeft(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetMarginBottomRight(self): - val = cmndlgsc.wxPageSetupDialogData_GetMarginBottomRight(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetMinMarginTopLeft(self): - val = cmndlgsc.wxPageSetupDialogData_GetMinMarginTopLeft(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetMinMarginBottomRight(self): - val = cmndlgsc.wxPageSetupDialogData_GetMinMarginBottomRight(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetPaperId(self): - val = cmndlgsc.wxPageSetupDialogData_GetPaperId(self.this) - return val - def GetPaperSize(self): - val = cmndlgsc.wxPageSetupDialogData_GetPaperSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetPrintData(self): - val = cmndlgsc.wxPageSetupDialogData_GetPrintData(self.this) - val = wxPrintDataPtr(val) - return val - def SetDefaultInfo(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetDefaultInfo(self.this,arg0) - return val - def SetDefaultMinMargins(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetDefaultMinMargins(self.this,arg0) - return val - def SetMarginTopLeft(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMarginTopLeft(self.this,arg0.this) - return val - def SetMarginBottomRight(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMarginBottomRight(self.this,arg0.this) - return val - def SetMinMarginTopLeft(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMinMarginTopLeft(self.this,arg0.this) - return val - def SetMinMarginBottomRight(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMinMarginBottomRight(self.this,arg0.this) - return val - def SetPaperId(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetPaperId(self.this,arg0) - return val - def SetPaperSize(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetPaperSize(self.this,arg0.this) - return val - def SetPrintData(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetPrintData(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxPageSetupDialogData(wxPageSetupDialogDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxPageSetupDialogData() - self.thisown = 1 - - - - -class wxPageSetupDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPageSetupData(self): - val = cmndlgsc.wxPageSetupDialog_GetPageSetupData(self.this) - val = wxPageSetupDialogDataPtr(val) - return val - def ShowModal(self): - val = cmndlgsc.wxPageSetupDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxPageSetupDialog(wxPageSetupDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxPageSetupDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPrintDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxPrintDialogData(self.this) - def EnableHelp(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnableHelp(self.this,arg0) - return val - def EnablePageNumbers(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnablePageNumbers(self.this,arg0) - return val - def EnablePrintToFile(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnablePrintToFile(self.this,arg0) - return val - def EnableSelection(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnableSelection(self.this,arg0) - return val - def GetAllPages(self): - val = cmndlgsc.wxPrintDialogData_GetAllPages(self.this) - return val - def GetCollate(self): - val = cmndlgsc.wxPrintDialogData_GetCollate(self.this) - return val - def GetFromPage(self): - val = cmndlgsc.wxPrintDialogData_GetFromPage(self.this) - return val - def GetMaxPage(self): - val = cmndlgsc.wxPrintDialogData_GetMaxPage(self.this) - return val - def GetMinPage(self): - val = cmndlgsc.wxPrintDialogData_GetMinPage(self.this) - return val - def GetNoCopies(self): - val = cmndlgsc.wxPrintDialogData_GetNoCopies(self.this) - return val - def GetPrintData(self): - val = cmndlgsc.wxPrintDialogData_GetPrintData(self.this) - val = wxPrintDataPtr(val) - return val - def GetPrintToFile(self): - val = cmndlgsc.wxPrintDialogData_GetPrintToFile(self.this) - return val - def GetToPage(self): - val = cmndlgsc.wxPrintDialogData_GetToPage(self.this) - return val - def SetCollate(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetCollate(self.this,arg0) - return val - def SetFromPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetFromPage(self.this,arg0) - return val - def SetMaxPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetMaxPage(self.this,arg0) - return val - def SetMinPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetMinPage(self.this,arg0) - return val - def SetNoCopies(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetNoCopies(self.this,arg0) - return val - def SetPrintData(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetPrintData(self.this,arg0.this) - return val - def SetPrintToFile(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetPrintToFile(self.this,arg0) - return val - def SetSetupDialog(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetSetupDialog(self.this,arg0) - return val - def SetToPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetToPage(self.this,arg0) - return val - def __repr__(self): - return "" -class wxPrintDialogData(wxPrintDialogDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxPrintDialogData() - self.thisown = 1 - - - - -class wxPrintDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPrintDialogData(self): - val = cmndlgsc.wxPrintDialog_GetPrintDialogData(self.this) - val = wxPrintDialogDataPtr(val) - return val - def GetPrintDC(self): - val = cmndlgsc.wxPrintDialog_GetPrintDC(self.this) - val = wxDCPtr(val) - val.thisown = 1 - return val - def ShowModal(self): - val = cmndlgsc.wxPrintDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxPrintDialog(wxPrintDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxPrintDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxMessageDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ShowModal(self): - val = cmndlgsc.wxMessageDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxMessageDialog(wxMessageDialogPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxMessageDialog,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/controls.cpp b/utils/wxPython/src/gtk/controls.cpp deleted file mode 100644 index e8992c7493..0000000000 --- a/utils/wxPython/src/gtk/controls.cpp +++ /dev/null @@ -1,6825 +0,0 @@ -/* - * FILE : gtk/controls.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initcontrolsc - -#define SWIG_name "controlsc" - -#include "helpers.h" -#include -#include -#include - -#ifdef __WXMSW__ -#if wxUSE_OWNER_DRAWN -#include -#endif -#endif - -#ifdef __WXGTK__ -#include -#endif - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -wxValidator wxPyDefaultValidator; // Non-const default because of SWIG -static void *SwigwxControlTowxWindow(void *ptr) { - wxControl *src; - wxWindow *dest; - src = (wxControl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxControlTowxEvtHandler(void *ptr) { - wxControl *src; - wxEvtHandler *dest; - src = (wxControl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define wxControl_Command(_swigobj,_swigarg0) (_swigobj->Command(_swigarg0)) -static PyObject *_wrap_wxControl_Command(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxControl * _arg0; - wxCommandEvent * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxControl_Command",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_Command. Expected _wxControl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxControl_Command. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxControl_Command(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxControl_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxControl_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxControl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxControl_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_GetLabel. Expected _wxControl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxControl_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxControl_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxControl_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxControl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxControl_SetLabel",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_SetLabel. Expected _wxControl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxControl_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxButtonTowxControl(void *ptr) { - wxButton *src; - wxControl *dest; - src = (wxButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxButtonTowxWindow(void *ptr) { - wxButton *src; - wxWindow *dest; - src = (wxButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxButtonTowxEvtHandler(void *ptr) { - wxButton *src; - wxEvtHandler *dest; - src = (wxButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "button"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|sslss:new_wxButton",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxButton. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxButton. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxButton *)new_wxButton(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxButton_SetDefault(_swigobj) (_swigobj->SetDefault()) -static PyObject *_wrap_wxButton_SetDefault(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxButton_SetDefault",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxButton_SetDefault. Expected _wxButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxButton_SetDefault(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxBitmapButtonTowxButton(void *ptr) { - wxBitmapButton *src; - wxButton *dest; - src = (wxBitmapButton *) ptr; - dest = (wxButton *) src; - return (void *) dest; -} - -static void *SwigwxBitmapButtonTowxControl(void *ptr) { - wxBitmapButton *src; - wxControl *dest; - src = (wxBitmapButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxBitmapButtonTowxWindow(void *ptr) { - wxBitmapButton *src; - wxWindow *dest; - src = (wxBitmapButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxBitmapButtonTowxEvtHandler(void *ptr) { - wxBitmapButton *src; - wxEvtHandler *dest; - src = (wxBitmapButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxBitmapButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxBitmapButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxBitmapButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxBitmap * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxBU_AUTODRAW); - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "button"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|sslss:new_wxBitmapButton",&_argc0,&_arg1,&_argc2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxBitmapButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxBitmapButton. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxBitmapButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxBitmapButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxBitmapButton. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmapButton *)new_wxBitmapButton(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmapButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapLabel(_swigobj) (_swigobj->GetBitmapLabel()) -static PyObject *_wrap_wxBitmapButton_GetBitmapLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapLabel. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapLabel(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapDisabled(_swigobj) (_swigobj->GetBitmapDisabled()) -static PyObject *_wrap_wxBitmapButton_GetBitmapDisabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapDisabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapDisabled. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapDisabled(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapFocus(_swigobj) (_swigobj->GetBitmapFocus()) -static PyObject *_wrap_wxBitmapButton_GetBitmapFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapFocus",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapFocus. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapFocus(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapSelected(_swigobj) (_swigobj->GetBitmapSelected()) -static PyObject *_wrap_wxBitmapButton_GetBitmapSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapSelected",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapSelected. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapSelected(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_SetBitmapDisabled(_swigobj,_swigarg0) (_swigobj->SetBitmapDisabled(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapDisabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapDisabled",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapDisabled. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapDisabled. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapDisabled(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmapButton_SetBitmapFocus(_swigobj,_swigarg0) (_swigobj->SetBitmapFocus(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapFocus",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapFocus. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapFocus. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapFocus(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmapButton_SetBitmapSelected(_swigobj,_swigarg0) (_swigobj->SetBitmapSelected(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapSelected",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapSelected. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapSelected. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapSelected(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmapButton_SetBitmapLabel(_swigobj,_swigarg0) (_swigobj->SetBitmapLabel(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapLabel",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapLabel. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapLabel. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxCheckBoxTowxControl(void *ptr) { - wxCheckBox *src; - wxControl *dest; - src = (wxCheckBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxCheckBoxTowxWindow(void *ptr) { - wxCheckBox *src; - wxWindow *dest; - src = (wxCheckBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxCheckBoxTowxEvtHandler(void *ptr) { - wxCheckBox *src; - wxEvtHandler *dest; - src = (wxCheckBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxCheckBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxCheckBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxCheckBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "checkBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|sslss:new_wxCheckBox",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxCheckBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxCheckBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxCheckBox. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxCheckBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCheckBox *)new_wxCheckBox(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxCheckBox_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxCheckBox_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCheckBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCheckBox_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckBox_GetValue. Expected _wxCheckBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCheckBox_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCheckBox_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxCheckBox_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckBox * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCheckBox_SetValue",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckBox_SetValue. Expected _wxCheckBox_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCheckBox_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxChoiceTowxControl(void *ptr) { - wxChoice *src; - wxControl *dest; - src = (wxChoice *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxChoiceTowxWindow(void *ptr) { - wxChoice *src; - wxWindow *dest; - src = (wxChoice *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxChoiceTowxEvtHandler(void *ptr) { - wxChoice *src; - wxEvtHandler *dest; - src = (wxChoice *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxChoice(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new wxChoice(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8)) -static PyObject *_wrap_new_wxChoice(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - int _arg4 = 0; - wxString * _arg5 = NULL; - long _arg6 = 0; - wxValidator * _arg7 = &wxPyDefaultValidator; - char * _arg8 = "choice"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj5 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssOlss:new_wxChoice",&_argc0,&_arg1,&_argc2,&_argc3,&_obj5,&_arg6,&_argc7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxChoice. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxChoice. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxChoice. Expected _wxSize_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_LIST_helper(_obj5); - if (_arg5 == NULL) { - return NULL; - } -} - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxChoice. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj5) { - _arg4 = PyList_Size(_obj5); - } - else { - _arg4 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxChoice *)new_wxChoice(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxChoice_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg5; -} - return _resultobj; -} - -#define wxChoice_Append(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxChoice_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxChoice_Append",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_Append. Expected _wxChoice_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_Append(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxChoice_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxChoice_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_Clear. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxChoice_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxChoice_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxChoice_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_FindString. Expected _wxChoice_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxChoice_GetColumns(_swigobj) (_swigobj->GetColumns()) -static PyObject *_wrap_wxChoice_GetColumns(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_GetColumns",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetColumns. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_GetColumns(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxChoice_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxChoice_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxChoice_GetString(_swigobj,_swigarg0) (_swigobj->GetString(_swigarg0)) -static PyObject *_wrap_wxChoice_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxChoice * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxChoice_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetString. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxChoice_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxChoice_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxChoice_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetStringSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxChoice_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxChoice_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxChoice_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_Number. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxChoice_SetColumns(_swigobj,_swigarg0) (_swigobj->SetColumns(_swigarg0)) -static PyObject *_wrap_wxChoice_SetColumns(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - int _arg1 = 1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxChoice_SetColumns",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_SetColumns. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_SetColumns(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxChoice_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxChoice_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxChoice_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_SetSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxChoice_SetStringSelection(_swigobj,_swigarg0) (_swigobj->SetStringSelection(_swigarg0)) -static PyObject *_wrap_wxChoice_SetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxChoice_SetStringSelection",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_SetStringSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_SetStringSelection(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxComboBoxTowxControl(void *ptr) { - wxComboBox *src; - wxControl *dest; - src = (wxComboBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxComboBoxTowxWindow(void *ptr) { - wxComboBox *src; - wxWindow *dest; - src = (wxComboBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxComboBoxTowxEvtHandler(void *ptr) { - wxComboBox *src; - wxEvtHandler *dest; - src = (wxComboBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxComboBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9) (new wxComboBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9)) -static PyObject *_wrap_new_wxComboBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - char * _arg2 = ""; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - int _arg5 = 0; - wxString * _arg6 = NULL; - long _arg7 = 0; - wxValidator * _arg8 = &wxPyDefaultValidator; - char * _arg9 = "comboBox"; - char * _argc0 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - PyObject * _obj6 = 0; - char * _argc8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|sssOlss:new_wxComboBox",&_argc0,&_arg1,&_arg2,&_argc3,&_argc4,&_obj6,&_arg7,&_argc8,&_arg9)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxComboBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxComboBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxComboBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj6) -{ - _arg6 = wxString_LIST_helper(_obj6); - if (_arg6 == NULL) { - return NULL; - } -} - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of new_wxComboBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj6) { - _arg5 = PyList_Size(_obj6); - } - else { - _arg5 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxComboBox *)new_wxComboBox(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,_arg6,_arg7,*_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxComboBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg6; -} - return _resultobj; -} - -#define wxComboBox_Append(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxComboBox_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxComboBox_Append",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Append. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Append(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxComboBox_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxComboBox_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Clear. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Copy(_swigobj) (_swigobj->Copy()) -static PyObject *_wrap_wxComboBox_Copy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Copy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Copy. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Copy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Cut(_swigobj) (_swigobj->Cut()) -static PyObject *_wrap_wxComboBox_Cut(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Cut",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Cut. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Cut(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Delete(_swigobj,_swigarg0) (_swigobj->Delete(_swigarg0)) -static PyObject *_wrap_wxComboBox_Delete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxComboBox_Delete",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Delete. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Delete(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxComboBox_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxComboBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxComboBox_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_FindString. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxComboBox_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxComboBox_GetInsertionPoint(_swigobj) (_swigobj->GetInsertionPoint()) -static PyObject *_wrap_wxComboBox_GetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetInsertionPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetInsertionPoint. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxComboBox_GetInsertionPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxComboBox_GetLastPosition(_swigobj) (_swigobj->GetLastPosition()) -static PyObject *_wrap_wxComboBox_GetLastPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetLastPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetLastPosition. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxComboBox_GetLastPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxComboBox_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxComboBox_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetSelection. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxComboBox_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxComboBox_GetString(_swigobj,_swigarg0) (_swigobj->GetString(_swigarg0)) -static PyObject *_wrap_wxComboBox_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxComboBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxComboBox_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetString. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxComboBox_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxComboBox_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxComboBox_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetStringSelection. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxComboBox_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxComboBox_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxComboBox_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetValue. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxComboBox_GetValue(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxComboBox_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxComboBox_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Number. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxComboBox_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxComboBox_Paste(_swigobj) (_swigobj->Paste()) -static PyObject *_wrap_wxComboBox_Paste(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Paste",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Paste. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Paste(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxComboBox_Replace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - long _arg2; - wxString * _arg3; - char * _argc0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllO:wxComboBox_Replace",&_argc0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Replace. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Replace(_arg0,_arg1,_arg2,*_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxComboBox_Remove(_swigobj,_swigarg0,_swigarg1) (_swigobj->Remove(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxComboBox_Remove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxComboBox_Remove",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Remove. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Remove(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetInsertionPoint(_swigobj,_swigarg0) (_swigobj->SetInsertionPoint(_swigarg0)) -static PyObject *_wrap_wxComboBox_SetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxComboBox_SetInsertionPoint",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetInsertionPoint. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetInsertionPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetInsertionPointEnd(_swigobj) (_swigobj->SetInsertionPointEnd()) -static PyObject *_wrap_wxComboBox_SetInsertionPointEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_SetInsertionPointEnd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetInsertionPointEnd. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetInsertionPointEnd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxComboBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - int _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxComboBox_SetSelection",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetSelection. Expected _wxComboBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetMark(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxComboBox_SetMark(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxComboBox_SetMark",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetMark. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetMark(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxComboBox_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxComboBox_SetValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetValue. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxGaugeTowxControl(void *ptr) { - wxGauge *src; - wxControl *dest; - src = (wxGauge *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxGaugeTowxWindow(void *ptr) { - wxGauge *src; - wxWindow *dest; - src = (wxGauge *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxGaugeTowxEvtHandler(void *ptr) { - wxGauge *src; - wxEvtHandler *dest; - src = (wxGauge *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxGauge(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxGauge(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxGauge(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _result; - wxWindow * _arg0; - wxWindowID _arg1; - int _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxGA_HORIZONTAL); - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "gauge"; - char * _argc0 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii|sslss:new_wxGauge",&_argc0,&_arg1,&_arg2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGauge. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGauge. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxGauge. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxGauge. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGauge *)new_wxGauge(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGauge_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGauge_GetBezelFace(_swigobj) (_swigobj->GetBezelFace()) -static PyObject *_wrap_wxGauge_GetBezelFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetBezelFace",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetBezelFace. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetBezelFace(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_GetRange(_swigobj) (_swigobj->GetRange()) -static PyObject *_wrap_wxGauge_GetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetRange",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetRange. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetRange(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_GetShadowWidth(_swigobj) (_swigobj->GetShadowWidth()) -static PyObject *_wrap_wxGauge_GetShadowWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetShadowWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetShadowWidth. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetShadowWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxGauge_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetValue. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_SetBezelFace(_swigobj,_swigarg0) (_swigobj->SetBezelFace(_swigarg0)) -static PyObject *_wrap_wxGauge_SetBezelFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetBezelFace",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetBezelFace. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetBezelFace(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGauge_SetRange(_swigobj,_swigarg0) (_swigobj->SetRange(_swigarg0)) -static PyObject *_wrap_wxGauge_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetRange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetRange. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetRange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGauge_SetShadowWidth(_swigobj,_swigarg0) (_swigobj->SetShadowWidth(_swigarg0)) -static PyObject *_wrap_wxGauge_SetShadowWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetShadowWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetShadowWidth. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetShadowWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGauge_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxGauge_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetValue",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetValue. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxStaticBoxTowxControl(void *ptr) { - wxStaticBox *src; - wxControl *dest; - src = (wxStaticBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticBoxTowxWindow(void *ptr) { - wxStaticBox *src; - wxWindow *dest; - src = (wxStaticBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticBoxTowxEvtHandler(void *ptr) { - wxStaticBox *src; - wxEvtHandler *dest; - src = (wxStaticBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxStaticBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxStaticBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - char * _arg6 = "staticBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxStaticBox",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxStaticBox. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticBox *)new_wxStaticBox(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxStaticTextTowxControl(void *ptr) { - wxStaticText *src; - wxControl *dest; - src = (wxStaticText *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticTextTowxWindow(void *ptr) { - wxStaticText *src; - wxWindow *dest; - src = (wxStaticText *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticTextTowxEvtHandler(void *ptr) { - wxStaticText *src; - wxEvtHandler *dest; - src = (wxStaticText *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticText(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxStaticText(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxStaticText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticText * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - char * _arg6 = "staticText"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxStaticText",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticText. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticText. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxStaticText. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticText *)new_wxStaticText(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticText_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxStaticText_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxStaticText_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxStaticText * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStaticText_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticText_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticText_GetLabel. Expected _wxStaticText_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxStaticText_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxStaticText_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxStaticText_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticText * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxStaticText_SetLabel",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticText_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticText_SetLabel. Expected _wxStaticText_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStaticText_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxListBoxTowxControl(void *ptr) { - wxListBox *src; - wxControl *dest; - src = (wxListBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxListBoxTowxWindow(void *ptr) { - wxListBox *src; - wxWindow *dest; - src = (wxListBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxListBoxTowxEvtHandler(void *ptr) { - wxListBox *src; - wxEvtHandler *dest; - src = (wxListBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new wxListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8)) -static PyObject *_wrap_new_wxListBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - int _arg4; - wxString * _arg5 = NULL; - long _arg6 = 0; - wxValidator * _arg7 = &wxPyDefaultValidator; - char * _arg8 = "listBox"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj5 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssOlss:new_wxListBox",&_argc0,&_arg1,&_argc2,&_argc3,&_obj5,&_arg6,&_argc7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxListBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_LIST_helper(_obj5); - if (_arg5 == NULL) { - return NULL; - } -} - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxListBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj5) { - _arg4 = PyList_Size(_obj5); - } - else { - _arg4 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListBox *)new_wxListBox(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg5; -} - return _resultobj; -} - -#define wxListBox_Append(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxListBox_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_Append",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Append. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Append(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListBox_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxListBox_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Clear. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_Delete(_swigobj,_swigarg0) (_swigobj->Delete(_swigarg0)) -static PyObject *_wrap_wxListBox_Delete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_Delete",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Delete. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Delete(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_Deselect(_swigobj,_swigarg0) (_swigobj->Deselect(_swigarg0)) -static PyObject *_wrap_wxListBox_Deselect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_Deselect",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Deselect. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Deselect(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxListBox_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_FindString. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListBox_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListBox_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxListBox_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_GetSelection. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListBox_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject * wxListBox_GetSelections(wxListBox *self) { - wxArrayInt lst; - self->GetSelections(lst); - PyObject *tup = PyTuple_New(lst.GetCount()); - for(int i=0; iGetString(_swigarg0)) -static PyObject *_wrap_wxListBox_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_GetString. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxListBox_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxListBox_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxListBox_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_GetStringSelection. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxListBox_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxListBox_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxListBox_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Number. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListBox_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListBox_Selected(_swigobj,_swigarg0) (_swigobj->Selected(_swigarg0)) -static PyObject *_wrap_wxListBox_Selected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_Selected",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Selected. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListBox_Selected(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListBox_Set(_swigobj,_swigarg0,_swigarg1) (_swigobj->Set(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_Set",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Set. Expected _wxListBox_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxString_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Set(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxListBox_SetFirstItem(_swigobj,_swigarg0) (_swigobj->SetFirstItem(_swigarg0)) -static PyObject *_wrap_wxListBox_SetFirstItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_SetFirstItem",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetFirstItem. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetFirstItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_SetFirstItemStr(_swigobj,_swigarg0) (_swigobj->SetFirstItem(_swigarg0)) -static PyObject *_wrap_wxListBox_SetFirstItemStr(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_SetFirstItemStr",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetFirstItemStr. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetFirstItemStr(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListBox_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxListBox_SetSelection",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetSelection. Expected _wxListBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_SetString(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetString(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_SetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxListBox_SetString",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetString. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetString(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListBox_SetStringSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStringSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_SetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - wxString * _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - PyObject * _obj1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxListBox_SetStringSelection",&_argc0,&_obj1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetStringSelection. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetStringSelection(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxCheckListBoxTowxListBox(void *ptr) { - wxCheckListBox *src; - wxListBox *dest; - src = (wxCheckListBox *) ptr; - dest = (wxListBox *) src; - return (void *) dest; -} - -static void *SwigwxCheckListBoxTowxControl(void *ptr) { - wxCheckListBox *src; - wxControl *dest; - src = (wxCheckListBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxCheckListBoxTowxWindow(void *ptr) { - wxCheckListBox *src; - wxWindow *dest; - src = (wxCheckListBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxCheckListBoxTowxEvtHandler(void *ptr) { - wxCheckListBox *src; - wxEvtHandler *dest; - src = (wxCheckListBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxCheckListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new wxCheckListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8)) -static PyObject *_wrap_new_wxCheckListBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckListBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - int _arg4 = 0; - wxString * _arg5 = NULL; - long _arg6 = 0; - wxValidator * _arg7 = &wxPyDefaultValidator; - char * _arg8 = "listBox"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj5 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssOlss:new_wxCheckListBox",&_argc0,&_arg1,&_argc2,&_argc3,&_obj5,&_arg6,&_argc7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxCheckListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxCheckListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxCheckListBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_LIST_helper(_obj5); - if (_arg5 == NULL) { - return NULL; - } -} - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxCheckListBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj5) { - _arg4 = PyList_Size(_obj5); - } - else { - _arg4 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCheckListBox *)new_wxCheckListBox(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg5; -} - return _resultobj; -} - -#define wxCheckListBox_IsChecked(_swigobj,_swigarg0) (_swigobj->IsChecked(_swigarg0)) -static PyObject *_wrap_wxCheckListBox_IsChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCheckListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCheckListBox_IsChecked",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckListBox_IsChecked. Expected _wxCheckListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCheckListBox_IsChecked(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCheckListBox_Check(_swigobj,_swigarg0,_swigarg1) (_swigobj->Check(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxCheckListBox_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckListBox * _arg0; - int _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxCheckListBox_Check",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckListBox_Check. Expected _wxCheckListBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCheckListBox_Check(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCheckListBox_GetItemHeight(_swigobj) (_swigobj->GetItemHeight()) -static PyObject *_wrap_wxCheckListBox_GetItemHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCheckListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCheckListBox_GetItemHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckListBox_GetItemHeight. Expected _wxCheckListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCheckListBox_GetItemHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxTextCtrlTowxControl(void *ptr) { - wxTextCtrl *src; - wxControl *dest; - src = (wxTextCtrl *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxTextCtrlTowxWindow(void *ptr) { - wxTextCtrl *src; - wxWindow *dest; - src = (wxTextCtrl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxTextCtrlTowxEvtHandler(void *ptr) { - wxTextCtrl *src; - wxEvtHandler *dest; - src = (wxTextCtrl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTextCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxTextCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxTextCtrl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxWindow * _arg0; - wxWindowID _arg1; - char * _arg2 = ""; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "text"; - char * _argc0 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssslss:new_wxTextCtrl",&_argc0,&_arg1,&_arg2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTextCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxTextCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxTextCtrl. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)new_wxTextCtrl(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTextCtrl_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxTextCtrl_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Clear. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_Copy(_swigobj) (_swigobj->Copy()) -static PyObject *_wrap_wxTextCtrl_Copy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Copy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Copy. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Copy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_Cut(_swigobj) (_swigobj->Cut()) -static PyObject *_wrap_wxTextCtrl_Cut(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Cut",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Cut. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Cut(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_DiscardEdits(_swigobj) (_swigobj->DiscardEdits()) -static PyObject *_wrap_wxTextCtrl_DiscardEdits(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_DiscardEdits",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_DiscardEdits. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_DiscardEdits(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_GetInsertionPoint(_swigobj) (_swigobj->GetInsertionPoint()) -static PyObject *_wrap_wxTextCtrl_GetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetInsertionPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetInsertionPoint. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxTextCtrl_GetInsertionPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxTextCtrl_GetLastPosition(_swigobj) (_swigobj->GetLastPosition()) -static PyObject *_wrap_wxTextCtrl_GetLastPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetLastPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetLastPosition. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxTextCtrl_GetLastPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxTextCtrl_GetLineLength(_swigobj,_swigarg0) (_swigobj->GetLineLength(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_GetLineLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_GetLineLength",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetLineLength. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTextCtrl_GetLineLength(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_GetLineText(_swigobj,_swigarg0) (_swigobj->GetLineText(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_GetLineText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_GetLineText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetLineText. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTextCtrl_GetLineText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTextCtrl_GetNumberOfLines(_swigobj) (_swigobj->GetNumberOfLines()) -static PyObject *_wrap_wxTextCtrl_GetNumberOfLines(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetNumberOfLines",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetNumberOfLines. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTextCtrl_GetNumberOfLines(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxTextCtrl_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetValue. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTextCtrl_GetValue(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTextCtrl_IsModified(_swigobj) (_swigobj->IsModified()) -static PyObject *_wrap_wxTextCtrl_IsModified(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_IsModified",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_IsModified. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_IsModified(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_LoadFile(_swigobj,_swigarg0) (_swigobj->LoadFile(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_LoadFile",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_LoadFile. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_LoadFile(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_Paste(_swigobj) (_swigobj->Paste()) -static PyObject *_wrap_wxTextCtrl_Paste(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Paste",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Paste. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Paste(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_PositionToXY(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PositionToXY(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxTextCtrl_PositionToXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long * _arg2; - long temp; - long * _arg3; - long temp0; - char * _argc0 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_PositionToXY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_PositionToXY. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_PositionToXY(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTextCtrl_Remove(_swigobj,_swigarg0,_swigarg1) (_swigobj->Remove(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_Remove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxTextCtrl_Remove",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Remove. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Remove(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxTextCtrl_Replace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - wxString * _arg3; - char * _argc0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllO:wxTextCtrl_Replace",&_argc0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Replace. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Replace(_arg0,_arg1,_arg2,*_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxTextCtrl_SaveFile(_swigobj,_swigarg0) (_swigobj->SaveFile(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SaveFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_SaveFile",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SaveFile. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_SaveFile(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_SetEditable(_swigobj,_swigarg0) (_swigobj->SetEditable(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SetEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxTextCtrl_SetEditable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetEditable. Expected _wxTextCtrl_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetEditable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetInsertionPoint(_swigobj,_swigarg0) (_swigobj->SetInsertionPoint(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_SetInsertionPoint",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetInsertionPoint. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetInsertionPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetInsertionPointEnd(_swigobj) (_swigobj->SetInsertionPointEnd()) -static PyObject *_wrap_wxTextCtrl_SetInsertionPointEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_SetInsertionPointEnd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetInsertionPointEnd. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetInsertionPointEnd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxTextCtrl_SetSelection",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetSelection. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_SetValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetValue. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_ShowPosition(_swigobj,_swigarg0) (_swigobj->ShowPosition(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_ShowPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_ShowPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_ShowPosition. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_ShowPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_WriteText(_swigobj,_swigarg0) (_swigobj->WriteText(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_WriteText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_WriteText",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_WriteText. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_WriteText(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_AppendText(_swigobj,_swigarg0) (_swigobj->AppendText(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_AppendText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_AppendText",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_AppendText. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_AppendText(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_XYToPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->XYToPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_XYToPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxTextCtrl_XYToPosition",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_XYToPosition. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxTextCtrl_XYToPosition(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxTextCtrl_CanCopy(_swigobj) (_swigobj->CanCopy()) -static PyObject *_wrap_wxTextCtrl_CanCopy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanCopy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanCopy. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanCopy(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanCut(_swigobj) (_swigobj->CanCut()) -static PyObject *_wrap_wxTextCtrl_CanCut(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanCut",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanCut. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanCut(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanPaste(_swigobj) (_swigobj->CanPaste()) -static PyObject *_wrap_wxTextCtrl_CanPaste(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanPaste",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanPaste. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanPaste(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanRedo(_swigobj) (_swigobj->CanRedo()) -static PyObject *_wrap_wxTextCtrl_CanRedo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanRedo",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanRedo. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanRedo(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanUndo(_swigobj) (_swigobj->CanUndo()) -static PyObject *_wrap_wxTextCtrl_CanUndo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanUndo",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanUndo. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanUndo(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_GetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long * _arg1; - long temp; - long * _arg2; - long temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetSelection. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_GetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTextCtrl_IsEditable(_swigobj) (_swigobj->IsEditable()) -static PyObject *_wrap_wxTextCtrl_IsEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_IsEditable",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_IsEditable. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_IsEditable(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxScrollBarTowxControl(void *ptr) { - wxScrollBar *src; - wxControl *dest; - src = (wxScrollBar *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxScrollBarTowxWindow(void *ptr) { - wxScrollBar *src; - wxWindow *dest; - src = (wxScrollBar *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxScrollBarTowxEvtHandler(void *ptr) { - wxScrollBar *src; - wxEvtHandler *dest; - src = (wxScrollBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxScrollBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxScrollBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxSB_HORIZONTAL); - wxValidator * _arg5 = &wxPyDefaultValidator; - char * _arg6 = "scrollBar"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|isslss:new_wxScrollBar",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_argc5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrollBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrollBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxScrollBar. Expected _wxSize_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxScrollBar. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrollBar *)new_wxScrollBar(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxScrollBar_GetRange(_swigobj) (_swigobj->GetRange()) -static PyObject *_wrap_wxScrollBar_GetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetRange",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetRange. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetRange(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_GetPageSize(_swigobj) (_swigobj->GetPageSize()) -static PyObject *_wrap_wxScrollBar_GetPageSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetPageSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetPageSize. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetPageSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_GetThumbPosition(_swigobj) (_swigobj->GetThumbPosition()) -static PyObject *_wrap_wxScrollBar_GetThumbPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetThumbPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetThumbPosition. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetThumbPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_GetThumbSize(_swigobj) (_swigobj->GetThumbSize()) -static PyObject *_wrap_wxScrollBar_GetThumbSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetThumbSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetThumbSize. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetThumbSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_SetThumbPosition(_swigobj,_swigarg0) (_swigobj->SetThumbPosition(_swigarg0)) -static PyObject *_wrap_wxScrollBar_SetThumbPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxScrollBar_SetThumbPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_SetThumbPosition. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrollBar_SetThumbPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrollBar_SetScrollbar(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetScrollbar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxScrollBar_SetScrollbar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - bool _arg5 = (1); - char * _argc0 = 0; - int tempbool5; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|i:wxScrollBar_SetScrollbar",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_SetScrollbar. Expected _wxScrollBar_p."); - return NULL; - } - } - _arg5 = (bool ) tempbool5; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrollBar_SetScrollbar(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSpinButtonTowxControl(void *ptr) { - wxSpinButton *src; - wxControl *dest; - src = (wxSpinButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxSpinButtonTowxWindow(void *ptr) { - wxSpinButton *src; - wxWindow *dest; - src = (wxSpinButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSpinButtonTowxEvtHandler(void *ptr) { - wxSpinButton *src; - wxEvtHandler *dest; - src = (wxSpinButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSpinButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSpinButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSpinButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSpinButton * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxSP_HORIZONTAL); - char * _arg5 = "spinButton"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|issls:new_wxSpinButton",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSpinButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSpinButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSpinButton. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSpinButton *)new_wxSpinButton(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSpinButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSpinButton_GetMax(_swigobj) (_swigobj->GetMax()) -static PyObject *_wrap_wxSpinButton_GetMax(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSpinButton_GetMax",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_GetMax. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSpinButton_GetMax(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSpinButton_GetMin(_swigobj) (_swigobj->GetMin()) -static PyObject *_wrap_wxSpinButton_GetMin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSpinButton_GetMin",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_GetMin. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSpinButton_GetMin(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSpinButton_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxSpinButton_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSpinButton_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_GetValue. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSpinButton_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSpinButton_SetRange(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRange(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSpinButton_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSpinButton * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSpinButton_SetRange",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_SetRange. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSpinButton_SetRange(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSpinButton_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxSpinButton_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSpinButton * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSpinButton_SetValue",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_SetValue. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSpinButton_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxStaticBitmapTowxControl(void *ptr) { - wxStaticBitmap *src; - wxControl *dest; - src = (wxStaticBitmap *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticBitmapTowxWindow(void *ptr) { - wxStaticBitmap *src; - wxWindow *dest; - src = (wxStaticBitmap *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticBitmapTowxEvtHandler(void *ptr) { - wxStaticBitmap *src; - wxEvtHandler *dest; - src = (wxStaticBitmap *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticBitmap(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxStaticBitmap(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxStaticBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBitmap * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxBitmap * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - char * _arg6 = "staticBitmap"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|ssls:new_wxStaticBitmap",&_argc0,&_arg1,&_argc2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticBitmap. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStaticBitmap. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBitmap. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxStaticBitmap. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticBitmap *)new_wxStaticBitmap(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxStaticBitmap_GetBitmap(_swigobj) (_swigobj->GetBitmap()) -static PyObject *_wrap_wxStaticBitmap_GetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxStaticBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStaticBitmap_GetBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_GetBitmap. Expected _wxStaticBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxBitmap & _result_ref = wxStaticBitmap_GetBitmap(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxStaticBitmap_SetBitmap(_swigobj,_swigarg0) (_swigobj->SetBitmap(_swigarg0)) -static PyObject *_wrap_wxStaticBitmap_SetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBitmap * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxStaticBitmap_SetBitmap",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_SetBitmap. Expected _wxStaticBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStaticBitmap_SetBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStaticBitmap_SetBitmap(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxRadioBoxTowxControl(void *ptr) { - wxRadioBox *src; - wxControl *dest; - src = (wxRadioBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxRadioBoxTowxWindow(void *ptr) { - wxRadioBox *src; - wxWindow *dest; - src = (wxRadioBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxRadioBoxTowxEvtHandler(void *ptr) { - wxRadioBox *src; - wxEvtHandler *dest; - src = (wxRadioBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxRadioBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9,_swigarg10) (new wxRadioBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9,_swigarg10)) -static PyObject *_wrap_new_wxRadioBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - int _arg5 = 0; - wxString * _arg6 = NULL; - int _arg7 = 0; - long _arg8 = (wxRA_HORIZONTAL); - wxValidator * _arg9 = &wxPyDefaultValidator; - char * _arg10 = "radioBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - PyObject * _obj6 = 0; - char * _argc9 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssOilss:new_wxRadioBox",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_obj6,&_arg7,&_arg8,&_argc9,&_arg10)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxRadioBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxRadioBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj6) -{ - _arg6 = wxString_LIST_helper(_obj6); - if (_arg6 == NULL) { - return NULL; - } -} - if (_argc9) { - if (SWIG_GetPtr(_argc9,(void **) &_arg9,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 10 of new_wxRadioBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj6) { - _arg5 = PyList_Size(_obj6); - } - else { - _arg5 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRadioBox *)new_wxRadioBox(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6,_arg7,_arg8,*_arg9,_arg10); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} -{ - delete [] _arg6; -} - return _resultobj; -} - -#define wxRadioBox_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxRadioBox_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_Enable. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_EnableItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->Enable(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRadioBox_EnableItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxRadioBox_EnableItem",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_EnableItem. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_EnableItem(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxRadioBox_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxRadioBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxRadioBox_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_FindString. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxRadioBox_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxRadioBox_GetItemLabel(_swigobj,_swigarg0) (_swigobj->GetLabel(_swigarg0)) -static PyObject *_wrap_wxRadioBox_GetItemLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_GetItemLabel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetItemLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetItemLabel(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxRadioBox_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxRadioBox_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRadioBox_GetString(_swigobj,_swigarg0) (_swigobj->GetString(_swigarg0)) -static PyObject *_wrap_wxRadioBox_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetString. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxRadioBox_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetStringSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxRadioBox_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_Number. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxRadioBox_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRadioBox_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxRadioBox_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxRadioBox_SetLabel",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxRadioBox_SetItemLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRadioBox_SetItemLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxRadioBox_SetItemLabel",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetItemLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetItemLabel(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxRadioBox_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxRadioBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_SetStringSelection(_swigobj,_swigarg0) (_swigobj->SetStringSelection(_swigarg0)) -static PyObject *_wrap_wxRadioBox_SetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxRadioBox_SetStringSelection",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetStringSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetStringSelection(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxRadioBox_Show(_swigobj,_swigarg0) (_swigobj->Show(_swigarg0)) -static PyObject *_wrap_wxRadioBox_Show(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_Show",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_Show. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_Show(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_ShowItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->Show(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRadioBox_ShowItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxRadioBox_ShowItem",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_ShowItem. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_ShowItem(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxRadioButtonTowxControl(void *ptr) { - wxRadioButton *src; - wxControl *dest; - src = (wxRadioButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxRadioButtonTowxWindow(void *ptr) { - wxRadioButton *src; - wxWindow *dest; - src = (wxRadioButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxRadioButtonTowxEvtHandler(void *ptr) { - wxRadioButton *src; - wxEvtHandler *dest; - src = (wxRadioButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxRadioButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxRadioButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxRadioButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioButton * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "radioButton"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|sslss:new_wxRadioButton",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxRadioButton. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxRadioButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxRadioButton. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRadioButton *)new_wxRadioButton(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxRadioButton_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxRadioButton_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRadioButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioButton_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioButton_GetValue. Expected _wxRadioButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRadioButton_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRadioButton_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxRadioButton_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioButton * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioButton_SetValue",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioButton_SetValue. Expected _wxRadioButton_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioButton_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSliderTowxControl(void *ptr) { - wxSlider *src; - wxControl *dest; - src = (wxSlider *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxSliderTowxWindow(void *ptr) { - wxSlider *src; - wxWindow *dest; - src = (wxSlider *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSliderTowxEvtHandler(void *ptr) { - wxSlider *src; - wxEvtHandler *dest; - src = (wxSlider *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSlider(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9) (new wxSlider(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9)) -static PyObject *_wrap_new_wxSlider(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _result; - wxWindow * _arg0; - wxWindowID _arg1; - int _arg2; - int _arg3; - int _arg4; - wxPoint * _arg5 = &wxPyDefaultPosition; - wxSize * _arg6 = &wxPyDefaultSize; - long _arg7 = (wxSL_HORIZONTAL); - wxValidator * _arg8 = &wxPyDefaultValidator; - char * _arg9 = "slider"; - char * _argc0 = 0; - char * _argc5 = 0; - char * _argc6 = 0; - char * _argc8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|sslss:new_wxSlider",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5,&_argc6,&_arg7,&_argc8,&_arg9)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSlider. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxSlider. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxSlider. Expected _wxSize_p."); - return NULL; - } - } - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of new_wxSlider. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSlider *)new_wxSlider(_arg0,_arg1,_arg2,_arg3,_arg4,*_arg5,*_arg6,_arg7,*_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSlider_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSlider_ClearSel(_swigobj) (_swigobj->ClearSel()) -static PyObject *_wrap_wxSlider_ClearSel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_ClearSel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_ClearSel. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_ClearSel(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_ClearTicks(_swigobj) (_swigobj->ClearTicks()) -static PyObject *_wrap_wxSlider_ClearTicks(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_ClearTicks",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_ClearTicks. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_ClearTicks(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_GetLineSize(_swigobj) (_swigobj->GetLineSize()) -static PyObject *_wrap_wxSlider_GetLineSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetLineSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetLineSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetLineSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetMax(_swigobj) (_swigobj->GetMax()) -static PyObject *_wrap_wxSlider_GetMax(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetMax",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetMax. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetMax(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetMin(_swigobj) (_swigobj->GetMin()) -static PyObject *_wrap_wxSlider_GetMin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetMin",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetMin. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetMin(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetPageSize(_swigobj) (_swigobj->GetPageSize()) -static PyObject *_wrap_wxSlider_GetPageSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetPageSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetPageSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetPageSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetSelEnd(_swigobj) (_swigobj->GetSelEnd()) -static PyObject *_wrap_wxSlider_GetSelEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetSelEnd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetSelEnd. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetSelEnd(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetSelStart(_swigobj) (_swigobj->GetSelStart()) -static PyObject *_wrap_wxSlider_GetSelStart(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetSelStart",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetSelStart. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetSelStart(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetThumbLength(_swigobj) (_swigobj->GetThumbLength()) -static PyObject *_wrap_wxSlider_GetThumbLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetThumbLength",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetThumbLength. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetThumbLength(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetTickFreq(_swigobj) (_swigobj->GetTickFreq()) -static PyObject *_wrap_wxSlider_GetTickFreq(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetTickFreq",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetTickFreq. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetTickFreq(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxSlider_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetValue. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_SetRange(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRange(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSlider_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSlider_SetRange",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetRange. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetRange(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetTickFreq(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetTickFreq(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSlider_SetTickFreq(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSlider_SetTickFreq",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetTickFreq. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetTickFreq(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetLineSize(_swigobj,_swigarg0) (_swigobj->SetLineSize(_swigarg0)) -static PyObject *_wrap_wxSlider_SetLineSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetLineSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetLineSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetLineSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetPageSize(_swigobj,_swigarg0) (_swigobj->SetPageSize(_swigarg0)) -static PyObject *_wrap_wxSlider_SetPageSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetPageSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetPageSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetPageSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSlider_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSlider_SetSelection",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetSelection. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetThumbLength(_swigobj,_swigarg0) (_swigobj->SetThumbLength(_swigarg0)) -static PyObject *_wrap_wxSlider_SetThumbLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetThumbLength",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetThumbLength. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetThumbLength(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetTick(_swigobj,_swigarg0) (_swigobj->SetTick(_swigarg0)) -static PyObject *_wrap_wxSlider_SetTick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetTick",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetTick. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetTick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxSlider_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetValue",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetValue. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef controlscMethods[] = { - { "wxSlider_SetValue", _wrap_wxSlider_SetValue, 1 }, - { "wxSlider_SetTick", _wrap_wxSlider_SetTick, 1 }, - { "wxSlider_SetThumbLength", _wrap_wxSlider_SetThumbLength, 1 }, - { "wxSlider_SetSelection", _wrap_wxSlider_SetSelection, 1 }, - { "wxSlider_SetPageSize", _wrap_wxSlider_SetPageSize, 1 }, - { "wxSlider_SetLineSize", _wrap_wxSlider_SetLineSize, 1 }, - { "wxSlider_SetTickFreq", _wrap_wxSlider_SetTickFreq, 1 }, - { "wxSlider_SetRange", _wrap_wxSlider_SetRange, 1 }, - { "wxSlider_GetValue", _wrap_wxSlider_GetValue, 1 }, - { "wxSlider_GetTickFreq", _wrap_wxSlider_GetTickFreq, 1 }, - { "wxSlider_GetThumbLength", _wrap_wxSlider_GetThumbLength, 1 }, - { "wxSlider_GetSelStart", _wrap_wxSlider_GetSelStart, 1 }, - { "wxSlider_GetSelEnd", _wrap_wxSlider_GetSelEnd, 1 }, - { "wxSlider_GetPageSize", _wrap_wxSlider_GetPageSize, 1 }, - { "wxSlider_GetMin", _wrap_wxSlider_GetMin, 1 }, - { "wxSlider_GetMax", _wrap_wxSlider_GetMax, 1 }, - { "wxSlider_GetLineSize", _wrap_wxSlider_GetLineSize, 1 }, - { "wxSlider_ClearTicks", _wrap_wxSlider_ClearTicks, 1 }, - { "wxSlider_ClearSel", _wrap_wxSlider_ClearSel, 1 }, - { "new_wxSlider", _wrap_new_wxSlider, 1 }, - { "wxRadioButton_SetValue", _wrap_wxRadioButton_SetValue, 1 }, - { "wxRadioButton_GetValue", _wrap_wxRadioButton_GetValue, 1 }, - { "new_wxRadioButton", _wrap_new_wxRadioButton, 1 }, - { "wxRadioBox_ShowItem", _wrap_wxRadioBox_ShowItem, 1 }, - { "wxRadioBox_Show", _wrap_wxRadioBox_Show, 1 }, - { "wxRadioBox_SetStringSelection", _wrap_wxRadioBox_SetStringSelection, 1 }, - { "wxRadioBox_SetSelection", _wrap_wxRadioBox_SetSelection, 1 }, - { "wxRadioBox_SetItemLabel", _wrap_wxRadioBox_SetItemLabel, 1 }, - { "wxRadioBox_SetLabel", _wrap_wxRadioBox_SetLabel, 1 }, - { "wxRadioBox_Number", _wrap_wxRadioBox_Number, 1 }, - { "wxRadioBox_GetStringSelection", _wrap_wxRadioBox_GetStringSelection, 1 }, - { "wxRadioBox_GetString", _wrap_wxRadioBox_GetString, 1 }, - { "wxRadioBox_GetSelection", _wrap_wxRadioBox_GetSelection, 1 }, - { "wxRadioBox_GetItemLabel", _wrap_wxRadioBox_GetItemLabel, 1 }, - { "wxRadioBox_FindString", _wrap_wxRadioBox_FindString, 1 }, - { "wxRadioBox_EnableItem", _wrap_wxRadioBox_EnableItem, 1 }, - { "wxRadioBox_Enable", _wrap_wxRadioBox_Enable, 1 }, - { "new_wxRadioBox", _wrap_new_wxRadioBox, 1 }, - { "wxStaticBitmap_SetBitmap", _wrap_wxStaticBitmap_SetBitmap, 1 }, - { "wxStaticBitmap_GetBitmap", _wrap_wxStaticBitmap_GetBitmap, 1 }, - { "new_wxStaticBitmap", _wrap_new_wxStaticBitmap, 1 }, - { "wxSpinButton_SetValue", _wrap_wxSpinButton_SetValue, 1 }, - { "wxSpinButton_SetRange", _wrap_wxSpinButton_SetRange, 1 }, - { "wxSpinButton_GetValue", _wrap_wxSpinButton_GetValue, 1 }, - { "wxSpinButton_GetMin", _wrap_wxSpinButton_GetMin, 1 }, - { "wxSpinButton_GetMax", _wrap_wxSpinButton_GetMax, 1 }, - { "new_wxSpinButton", _wrap_new_wxSpinButton, 1 }, - { "wxScrollBar_SetScrollbar", _wrap_wxScrollBar_SetScrollbar, 1 }, - { "wxScrollBar_SetThumbPosition", _wrap_wxScrollBar_SetThumbPosition, 1 }, - { "wxScrollBar_GetThumbSize", _wrap_wxScrollBar_GetThumbSize, 1 }, - { "wxScrollBar_GetThumbPosition", _wrap_wxScrollBar_GetThumbPosition, 1 }, - { "wxScrollBar_GetPageSize", _wrap_wxScrollBar_GetPageSize, 1 }, - { "wxScrollBar_GetRange", _wrap_wxScrollBar_GetRange, 1 }, - { "new_wxScrollBar", _wrap_new_wxScrollBar, 1 }, - { "wxTextCtrl_IsEditable", _wrap_wxTextCtrl_IsEditable, 1 }, - { "wxTextCtrl_GetSelection", _wrap_wxTextCtrl_GetSelection, 1 }, - { "wxTextCtrl_CanUndo", _wrap_wxTextCtrl_CanUndo, 1 }, - { "wxTextCtrl_CanRedo", _wrap_wxTextCtrl_CanRedo, 1 }, - { "wxTextCtrl_CanPaste", _wrap_wxTextCtrl_CanPaste, 1 }, - { "wxTextCtrl_CanCut", _wrap_wxTextCtrl_CanCut, 1 }, - { "wxTextCtrl_CanCopy", _wrap_wxTextCtrl_CanCopy, 1 }, - { "wxTextCtrl_XYToPosition", _wrap_wxTextCtrl_XYToPosition, 1 }, - { "wxTextCtrl_AppendText", _wrap_wxTextCtrl_AppendText, 1 }, - { "wxTextCtrl_WriteText", _wrap_wxTextCtrl_WriteText, 1 }, - { "wxTextCtrl_ShowPosition", _wrap_wxTextCtrl_ShowPosition, 1 }, - { "wxTextCtrl_SetValue", _wrap_wxTextCtrl_SetValue, 1 }, - { "wxTextCtrl_SetSelection", _wrap_wxTextCtrl_SetSelection, 1 }, - { "wxTextCtrl_SetInsertionPointEnd", _wrap_wxTextCtrl_SetInsertionPointEnd, 1 }, - { "wxTextCtrl_SetInsertionPoint", _wrap_wxTextCtrl_SetInsertionPoint, 1 }, - { "wxTextCtrl_SetEditable", _wrap_wxTextCtrl_SetEditable, 1 }, - { "wxTextCtrl_SaveFile", _wrap_wxTextCtrl_SaveFile, 1 }, - { "wxTextCtrl_Replace", _wrap_wxTextCtrl_Replace, 1 }, - { "wxTextCtrl_Remove", _wrap_wxTextCtrl_Remove, 1 }, - { "wxTextCtrl_PositionToXY", _wrap_wxTextCtrl_PositionToXY, 1 }, - { "wxTextCtrl_Paste", _wrap_wxTextCtrl_Paste, 1 }, - { "wxTextCtrl_LoadFile", _wrap_wxTextCtrl_LoadFile, 1 }, - { "wxTextCtrl_IsModified", _wrap_wxTextCtrl_IsModified, 1 }, - { "wxTextCtrl_GetValue", _wrap_wxTextCtrl_GetValue, 1 }, - { "wxTextCtrl_GetNumberOfLines", _wrap_wxTextCtrl_GetNumberOfLines, 1 }, - { "wxTextCtrl_GetLineText", _wrap_wxTextCtrl_GetLineText, 1 }, - { "wxTextCtrl_GetLineLength", _wrap_wxTextCtrl_GetLineLength, 1 }, - { "wxTextCtrl_GetLastPosition", _wrap_wxTextCtrl_GetLastPosition, 1 }, - { "wxTextCtrl_GetInsertionPoint", _wrap_wxTextCtrl_GetInsertionPoint, 1 }, - { "wxTextCtrl_DiscardEdits", _wrap_wxTextCtrl_DiscardEdits, 1 }, - { "wxTextCtrl_Cut", _wrap_wxTextCtrl_Cut, 1 }, - { "wxTextCtrl_Copy", _wrap_wxTextCtrl_Copy, 1 }, - { "wxTextCtrl_Clear", _wrap_wxTextCtrl_Clear, 1 }, - { "new_wxTextCtrl", _wrap_new_wxTextCtrl, 1 }, - { "wxCheckListBox_GetItemHeight", _wrap_wxCheckListBox_GetItemHeight, 1 }, - { "wxCheckListBox_Check", _wrap_wxCheckListBox_Check, 1 }, - { "wxCheckListBox_IsChecked", _wrap_wxCheckListBox_IsChecked, 1 }, - { "new_wxCheckListBox", _wrap_new_wxCheckListBox, 1 }, - { "wxListBox_SetStringSelection", _wrap_wxListBox_SetStringSelection, 1 }, - { "wxListBox_SetString", _wrap_wxListBox_SetString, 1 }, - { "wxListBox_SetSelection", _wrap_wxListBox_SetSelection, 1 }, - { "wxListBox_SetFirstItemStr", _wrap_wxListBox_SetFirstItemStr, 1 }, - { "wxListBox_SetFirstItem", _wrap_wxListBox_SetFirstItem, 1 }, - { "wxListBox_Set", _wrap_wxListBox_Set, 1 }, - { "wxListBox_Selected", _wrap_wxListBox_Selected, 1 }, - { "wxListBox_Number", _wrap_wxListBox_Number, 1 }, - { "wxListBox_GetStringSelection", _wrap_wxListBox_GetStringSelection, 1 }, - { "wxListBox_GetString", _wrap_wxListBox_GetString, 1 }, - { "wxListBox_GetSelections", _wrap_wxListBox_GetSelections, 1 }, - { "wxListBox_GetSelection", _wrap_wxListBox_GetSelection, 1 }, - { "wxListBox_FindString", _wrap_wxListBox_FindString, 1 }, - { "wxListBox_Deselect", _wrap_wxListBox_Deselect, 1 }, - { "wxListBox_Delete", _wrap_wxListBox_Delete, 1 }, - { "wxListBox_Clear", _wrap_wxListBox_Clear, 1 }, - { "wxListBox_Append", _wrap_wxListBox_Append, 1 }, - { "new_wxListBox", _wrap_new_wxListBox, 1 }, - { "wxStaticText_SetLabel", _wrap_wxStaticText_SetLabel, 1 }, - { "wxStaticText_GetLabel", _wrap_wxStaticText_GetLabel, 1 }, - { "new_wxStaticText", _wrap_new_wxStaticText, 1 }, - { "new_wxStaticBox", _wrap_new_wxStaticBox, 1 }, - { "wxGauge_SetValue", _wrap_wxGauge_SetValue, 1 }, - { "wxGauge_SetShadowWidth", _wrap_wxGauge_SetShadowWidth, 1 }, - { "wxGauge_SetRange", _wrap_wxGauge_SetRange, 1 }, - { "wxGauge_SetBezelFace", _wrap_wxGauge_SetBezelFace, 1 }, - { "wxGauge_GetValue", _wrap_wxGauge_GetValue, 1 }, - { "wxGauge_GetShadowWidth", _wrap_wxGauge_GetShadowWidth, 1 }, - { "wxGauge_GetRange", _wrap_wxGauge_GetRange, 1 }, - { "wxGauge_GetBezelFace", _wrap_wxGauge_GetBezelFace, 1 }, - { "new_wxGauge", _wrap_new_wxGauge, 1 }, - { "wxComboBox_SetValue", _wrap_wxComboBox_SetValue, 1 }, - { "wxComboBox_SetMark", _wrap_wxComboBox_SetMark, 1 }, - { "wxComboBox_SetSelection", _wrap_wxComboBox_SetSelection, 1 }, - { "wxComboBox_SetInsertionPointEnd", _wrap_wxComboBox_SetInsertionPointEnd, 1 }, - { "wxComboBox_SetInsertionPoint", _wrap_wxComboBox_SetInsertionPoint, 1 }, - { "wxComboBox_Remove", _wrap_wxComboBox_Remove, 1 }, - { "wxComboBox_Replace", _wrap_wxComboBox_Replace, 1 }, - { "wxComboBox_Paste", _wrap_wxComboBox_Paste, 1 }, - { "wxComboBox_Number", _wrap_wxComboBox_Number, 1 }, - { "wxComboBox_GetValue", _wrap_wxComboBox_GetValue, 1 }, - { "wxComboBox_GetStringSelection", _wrap_wxComboBox_GetStringSelection, 1 }, - { "wxComboBox_GetString", _wrap_wxComboBox_GetString, 1 }, - { "wxComboBox_GetSelection", _wrap_wxComboBox_GetSelection, 1 }, - { "wxComboBox_GetLastPosition", _wrap_wxComboBox_GetLastPosition, 1 }, - { "wxComboBox_GetInsertionPoint", _wrap_wxComboBox_GetInsertionPoint, 1 }, - { "wxComboBox_FindString", _wrap_wxComboBox_FindString, 1 }, - { "wxComboBox_Delete", _wrap_wxComboBox_Delete, 1 }, - { "wxComboBox_Cut", _wrap_wxComboBox_Cut, 1 }, - { "wxComboBox_Copy", _wrap_wxComboBox_Copy, 1 }, - { "wxComboBox_Clear", _wrap_wxComboBox_Clear, 1 }, - { "wxComboBox_Append", _wrap_wxComboBox_Append, 1 }, - { "new_wxComboBox", _wrap_new_wxComboBox, 1 }, - { "wxChoice_SetStringSelection", _wrap_wxChoice_SetStringSelection, 1 }, - { "wxChoice_SetSelection", _wrap_wxChoice_SetSelection, 1 }, - { "wxChoice_SetColumns", _wrap_wxChoice_SetColumns, 1 }, - { "wxChoice_Number", _wrap_wxChoice_Number, 1 }, - { "wxChoice_GetStringSelection", _wrap_wxChoice_GetStringSelection, 1 }, - { "wxChoice_GetString", _wrap_wxChoice_GetString, 1 }, - { "wxChoice_GetSelection", _wrap_wxChoice_GetSelection, 1 }, - { "wxChoice_GetColumns", _wrap_wxChoice_GetColumns, 1 }, - { "wxChoice_FindString", _wrap_wxChoice_FindString, 1 }, - { "wxChoice_Clear", _wrap_wxChoice_Clear, 1 }, - { "wxChoice_Append", _wrap_wxChoice_Append, 1 }, - { "new_wxChoice", _wrap_new_wxChoice, 1 }, - { "wxCheckBox_SetValue", _wrap_wxCheckBox_SetValue, 1 }, - { "wxCheckBox_GetValue", _wrap_wxCheckBox_GetValue, 1 }, - { "new_wxCheckBox", _wrap_new_wxCheckBox, 1 }, - { "wxBitmapButton_SetBitmapLabel", _wrap_wxBitmapButton_SetBitmapLabel, 1 }, - { "wxBitmapButton_SetBitmapSelected", _wrap_wxBitmapButton_SetBitmapSelected, 1 }, - { "wxBitmapButton_SetBitmapFocus", _wrap_wxBitmapButton_SetBitmapFocus, 1 }, - { "wxBitmapButton_SetBitmapDisabled", _wrap_wxBitmapButton_SetBitmapDisabled, 1 }, - { "wxBitmapButton_GetBitmapSelected", _wrap_wxBitmapButton_GetBitmapSelected, 1 }, - { "wxBitmapButton_GetBitmapFocus", _wrap_wxBitmapButton_GetBitmapFocus, 1 }, - { "wxBitmapButton_GetBitmapDisabled", _wrap_wxBitmapButton_GetBitmapDisabled, 1 }, - { "wxBitmapButton_GetBitmapLabel", _wrap_wxBitmapButton_GetBitmapLabel, 1 }, - { "new_wxBitmapButton", _wrap_new_wxBitmapButton, 1 }, - { "wxButton_SetDefault", _wrap_wxButton_SetDefault, 1 }, - { "new_wxButton", _wrap_new_wxButton, 1 }, - { "wxControl_SetLabel", _wrap_wxControl_SetLabel, 1 }, - { "wxControl_GetLabel", _wrap_wxControl_GetLabel, 1 }, - { "wxControl_Command", _wrap_wxControl_Command, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initcontrolsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("controlsc", controlscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_class_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_wxControl","_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_wxControl","_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_wxControl","_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_wxControl","_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_class_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/gtk/controls.py b/utils/wxPython/src/gtk/controls.py deleted file mode 100644 index 852aef02bd..0000000000 --- a/utils/wxPython/src/gtk/controls.py +++ /dev/null @@ -1,863 +0,0 @@ -# This file was created automatically by SWIG. -import controlsc - -from misc import * - -from windows import * - -from gdi import * - -from events import * -import wx -class wxControlPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Command(self,arg0): - val = controlsc.wxControl_Command(self.this,arg0.this) - return val - def GetLabel(self): - val = controlsc.wxControl_GetLabel(self.this) - return val - def SetLabel(self,arg0): - val = controlsc.wxControl_SetLabel(self.this,arg0) - return val - def __repr__(self): - return "" -class wxControl(wxControlPtr): - def __init__(self,this): - self.this = this - - - - -class wxButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetDefault(self): - val = controlsc.wxButton_SetDefault(self.this) - return val - def __repr__(self): - return "" -class wxButton(wxButtonPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxButton,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxBitmapButtonPtr(wxButtonPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmapLabel(self): - val = controlsc.wxBitmapButton_GetBitmapLabel(self.this) - val = wxBitmapPtr(val) - return val - def GetBitmapDisabled(self): - val = controlsc.wxBitmapButton_GetBitmapDisabled(self.this) - val = wxBitmapPtr(val) - return val - def GetBitmapFocus(self): - val = controlsc.wxBitmapButton_GetBitmapFocus(self.this) - val = wxBitmapPtr(val) - return val - def GetBitmapSelected(self): - val = controlsc.wxBitmapButton_GetBitmapSelected(self.this) - val = wxBitmapPtr(val) - return val - def SetBitmapDisabled(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapDisabled(self.this,arg0.this) - return val - def SetBitmapFocus(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapFocus(self.this,arg0.this) - return val - def SetBitmapSelected(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapSelected(self.this,arg0.this) - return val - def SetBitmapLabel(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapLabel(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxBitmapButton(wxBitmapButtonPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxBitmapButton,(arg0.this,arg1,arg2.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self): - val = controlsc.wxCheckBox_GetValue(self.this) - return val - def SetValue(self,arg0): - val = controlsc.wxCheckBox_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxCheckBox(wxCheckBoxPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxCheckBox,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxChoicePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0): - val = controlsc.wxChoice_Append(self.this,arg0) - return val - def Clear(self): - val = controlsc.wxChoice_Clear(self.this) - return val - def FindString(self,arg0): - val = controlsc.wxChoice_FindString(self.this,arg0) - return val - def GetColumns(self): - val = controlsc.wxChoice_GetColumns(self.this) - return val - def GetSelection(self): - val = controlsc.wxChoice_GetSelection(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxChoice_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxChoice_GetStringSelection(self.this) - return val - def Number(self): - val = controlsc.wxChoice_Number(self.this) - return val - def SetColumns(self,*args): - val = apply(controlsc.wxChoice_SetColumns,(self.this,)+args) - return val - def SetSelection(self,arg0): - val = controlsc.wxChoice_SetSelection(self.this,arg0) - return val - def SetStringSelection(self,arg0): - val = controlsc.wxChoice_SetStringSelection(self.this,arg0) - return val - def __repr__(self): - return "" -class wxChoice(wxChoicePtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxChoice,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxComboBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0): - val = controlsc.wxComboBox_Append(self.this,arg0) - return val - def Clear(self): - val = controlsc.wxComboBox_Clear(self.this) - return val - def Copy(self): - val = controlsc.wxComboBox_Copy(self.this) - return val - def Cut(self): - val = controlsc.wxComboBox_Cut(self.this) - return val - def Delete(self,arg0): - val = controlsc.wxComboBox_Delete(self.this,arg0) - return val - def FindString(self,arg0): - val = controlsc.wxComboBox_FindString(self.this,arg0) - return val - def GetInsertionPoint(self): - val = controlsc.wxComboBox_GetInsertionPoint(self.this) - return val - def GetLastPosition(self): - val = controlsc.wxComboBox_GetLastPosition(self.this) - return val - def GetSelection(self): - val = controlsc.wxComboBox_GetSelection(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxComboBox_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxComboBox_GetStringSelection(self.this) - return val - def GetValue(self): - val = controlsc.wxComboBox_GetValue(self.this) - return val - def Number(self): - val = controlsc.wxComboBox_Number(self.this) - return val - def Paste(self): - val = controlsc.wxComboBox_Paste(self.this) - return val - def Replace(self,arg0,arg1,arg2): - val = controlsc.wxComboBox_Replace(self.this,arg0,arg1,arg2) - return val - def Remove(self,arg0,arg1): - val = controlsc.wxComboBox_Remove(self.this,arg0,arg1) - return val - def SetInsertionPoint(self,arg0): - val = controlsc.wxComboBox_SetInsertionPoint(self.this,arg0) - return val - def SetInsertionPointEnd(self): - val = controlsc.wxComboBox_SetInsertionPointEnd(self.this) - return val - def SetSelection(self,arg0,*args): - val = apply(controlsc.wxComboBox_SetSelection,(self.this,arg0,)+args) - return val - def SetMark(self,arg0,arg1): - val = controlsc.wxComboBox_SetMark(self.this,arg0,arg1) - return val - def SetValue(self,arg0): - val = controlsc.wxComboBox_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxComboBox(wxComboBoxPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxComboBox,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxGaugePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBezelFace(self): - val = controlsc.wxGauge_GetBezelFace(self.this) - return val - def GetRange(self): - val = controlsc.wxGauge_GetRange(self.this) - return val - def GetShadowWidth(self): - val = controlsc.wxGauge_GetShadowWidth(self.this) - return val - def GetValue(self): - val = controlsc.wxGauge_GetValue(self.this) - return val - def SetBezelFace(self,arg0): - val = controlsc.wxGauge_SetBezelFace(self.this,arg0) - return val - def SetRange(self,arg0): - val = controlsc.wxGauge_SetRange(self.this,arg0) - return val - def SetShadowWidth(self,arg0): - val = controlsc.wxGauge_SetShadowWidth(self.this,arg0) - return val - def SetValue(self,arg0): - val = controlsc.wxGauge_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxGauge(wxGaugePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxGauge,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxStaticBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxStaticBox(wxStaticBoxPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxStaticBox,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - - - - -class wxStaticTextPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetLabel(self): - val = controlsc.wxStaticText_GetLabel(self.this) - return val - def SetLabel(self,arg0): - val = controlsc.wxStaticText_SetLabel(self.this,arg0) - return val - def __repr__(self): - return "" -class wxStaticText(wxStaticTextPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxStaticText,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxListBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0): - val = controlsc.wxListBox_Append(self.this,arg0) - return val - def Clear(self): - val = controlsc.wxListBox_Clear(self.this) - return val - def Delete(self,arg0): - val = controlsc.wxListBox_Delete(self.this,arg0) - return val - def Deselect(self,arg0): - val = controlsc.wxListBox_Deselect(self.this,arg0) - return val - def FindString(self,arg0): - val = controlsc.wxListBox_FindString(self.this,arg0) - return val - def GetSelection(self): - val = controlsc.wxListBox_GetSelection(self.this) - return val - def GetSelections(self): - val = controlsc.wxListBox_GetSelections(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxListBox_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxListBox_GetStringSelection(self.this) - return val - def Number(self): - val = controlsc.wxListBox_Number(self.this) - return val - def Selected(self,arg0): - val = controlsc.wxListBox_Selected(self.this,arg0) - return val - def Set(self,arg0,*args): - val = apply(controlsc.wxListBox_Set,(self.this,arg0,)+args) - return val - def SetFirstItem(self,arg0): - val = controlsc.wxListBox_SetFirstItem(self.this,arg0) - return val - def SetFirstItemStr(self,arg0): - val = controlsc.wxListBox_SetFirstItemStr(self.this,arg0) - return val - def SetSelection(self,arg0,*args): - val = apply(controlsc.wxListBox_SetSelection,(self.this,arg0,)+args) - return val - def SetString(self,arg0,arg1): - val = controlsc.wxListBox_SetString(self.this,arg0,arg1) - return val - def SetStringSelection(self,arg0,*args): - val = apply(controlsc.wxListBox_SetStringSelection,(self.this,arg0,)+args) - return val - def __repr__(self): - return "" -class wxListBox(wxListBoxPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxListBox,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckListBoxPtr(wxListBoxPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsChecked(self,arg0): - val = controlsc.wxCheckListBox_IsChecked(self.this,arg0) - return val - def Check(self,arg0,*args): - val = apply(controlsc.wxCheckListBox_Check,(self.this,arg0,)+args) - return val - def GetItemHeight(self): - val = controlsc.wxCheckListBox_GetItemHeight(self.this) - return val - def __repr__(self): - return "" -class wxCheckListBox(wxCheckListBoxPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxCheckListBox,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTextCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Clear(self): - val = controlsc.wxTextCtrl_Clear(self.this) - return val - def Copy(self): - val = controlsc.wxTextCtrl_Copy(self.this) - return val - def Cut(self): - val = controlsc.wxTextCtrl_Cut(self.this) - return val - def DiscardEdits(self): - val = controlsc.wxTextCtrl_DiscardEdits(self.this) - return val - def GetInsertionPoint(self): - val = controlsc.wxTextCtrl_GetInsertionPoint(self.this) - return val - def GetLastPosition(self): - val = controlsc.wxTextCtrl_GetLastPosition(self.this) - return val - def GetLineLength(self,arg0): - val = controlsc.wxTextCtrl_GetLineLength(self.this,arg0) - return val - def GetLineText(self,arg0): - val = controlsc.wxTextCtrl_GetLineText(self.this,arg0) - return val - def GetNumberOfLines(self): - val = controlsc.wxTextCtrl_GetNumberOfLines(self.this) - return val - def GetValue(self): - val = controlsc.wxTextCtrl_GetValue(self.this) - return val - def IsModified(self): - val = controlsc.wxTextCtrl_IsModified(self.this) - return val - def LoadFile(self,arg0): - val = controlsc.wxTextCtrl_LoadFile(self.this,arg0) - return val - def Paste(self): - val = controlsc.wxTextCtrl_Paste(self.this) - return val - def PositionToXY(self,arg0): - val = controlsc.wxTextCtrl_PositionToXY(self.this,arg0) - return val - def Remove(self,arg0,arg1): - val = controlsc.wxTextCtrl_Remove(self.this,arg0,arg1) - return val - def Replace(self,arg0,arg1,arg2): - val = controlsc.wxTextCtrl_Replace(self.this,arg0,arg1,arg2) - return val - def SaveFile(self,arg0): - val = controlsc.wxTextCtrl_SaveFile(self.this,arg0) - return val - def SetEditable(self,arg0): - val = controlsc.wxTextCtrl_SetEditable(self.this,arg0) - return val - def SetInsertionPoint(self,arg0): - val = controlsc.wxTextCtrl_SetInsertionPoint(self.this,arg0) - return val - def SetInsertionPointEnd(self): - val = controlsc.wxTextCtrl_SetInsertionPointEnd(self.this) - return val - def SetSelection(self,arg0,arg1): - val = controlsc.wxTextCtrl_SetSelection(self.this,arg0,arg1) - return val - def SetValue(self,arg0): - val = controlsc.wxTextCtrl_SetValue(self.this,arg0) - return val - def ShowPosition(self,arg0): - val = controlsc.wxTextCtrl_ShowPosition(self.this,arg0) - return val - def WriteText(self,arg0): - val = controlsc.wxTextCtrl_WriteText(self.this,arg0) - return val - def AppendText(self,arg0): - val = controlsc.wxTextCtrl_AppendText(self.this,arg0) - return val - def XYToPosition(self,arg0,arg1): - val = controlsc.wxTextCtrl_XYToPosition(self.this,arg0,arg1) - return val - def CanCopy(self): - val = controlsc.wxTextCtrl_CanCopy(self.this) - return val - def CanCut(self): - val = controlsc.wxTextCtrl_CanCut(self.this) - return val - def CanPaste(self): - val = controlsc.wxTextCtrl_CanPaste(self.this) - return val - def CanRedo(self): - val = controlsc.wxTextCtrl_CanRedo(self.this) - return val - def CanUndo(self): - val = controlsc.wxTextCtrl_CanUndo(self.this) - return val - def GetSelection(self): - val = controlsc.wxTextCtrl_GetSelection(self.this) - return val - def IsEditable(self): - val = controlsc.wxTextCtrl_IsEditable(self.this) - return val - def __repr__(self): - return "" -class wxTextCtrl(wxTextCtrlPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxTextCtrl,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxScrollBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetRange(self): - val = controlsc.wxScrollBar_GetRange(self.this) - return val - def GetPageSize(self): - val = controlsc.wxScrollBar_GetPageSize(self.this) - return val - def GetThumbPosition(self): - val = controlsc.wxScrollBar_GetThumbPosition(self.this) - return val - def GetThumbSize(self): - val = controlsc.wxScrollBar_GetThumbSize(self.this) - return val - def SetThumbPosition(self,arg0): - val = controlsc.wxScrollBar_SetThumbPosition(self.this,arg0) - return val - def SetScrollbar(self,arg0,arg1,arg2,arg3,*args): - val = apply(controlsc.wxScrollBar_SetScrollbar,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def __repr__(self): - return "" -class wxScrollBar(wxScrollBarPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxScrollBar,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSpinButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetMax(self): - val = controlsc.wxSpinButton_GetMax(self.this) - return val - def GetMin(self): - val = controlsc.wxSpinButton_GetMin(self.this) - return val - def GetValue(self): - val = controlsc.wxSpinButton_GetValue(self.this) - return val - def SetRange(self,arg0,arg1): - val = controlsc.wxSpinButton_SetRange(self.this,arg0,arg1) - return val - def SetValue(self,arg0): - val = controlsc.wxSpinButton_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxSpinButton(wxSpinButtonPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxSpinButton,(arg0.this,)+args) - self.thisown = 1 - - - - -class wxStaticBitmapPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmap(self): - val = controlsc.wxStaticBitmap_GetBitmap(self.this) - val = wxBitmapPtr(val) - return val - def SetBitmap(self,arg0): - val = controlsc.wxStaticBitmap_SetBitmap(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxStaticBitmap(wxStaticBitmapPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxStaticBitmap,(arg0.this,arg1,arg2.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Enable(self,arg0): - val = controlsc.wxRadioBox_Enable(self.this,arg0) - return val - def EnableItem(self,arg0,arg1): - val = controlsc.wxRadioBox_EnableItem(self.this,arg0,arg1) - return val - def FindString(self,arg0): - val = controlsc.wxRadioBox_FindString(self.this,arg0) - return val - def GetItemLabel(self,arg0): - val = controlsc.wxRadioBox_GetItemLabel(self.this,arg0) - return val - def GetSelection(self): - val = controlsc.wxRadioBox_GetSelection(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxRadioBox_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxRadioBox_GetStringSelection(self.this) - return val - def Number(self): - val = controlsc.wxRadioBox_Number(self.this) - return val - def SetLabel(self,arg0): - val = controlsc.wxRadioBox_SetLabel(self.this,arg0) - return val - def SetItemLabel(self,arg0,arg1): - val = controlsc.wxRadioBox_SetItemLabel(self.this,arg0,arg1) - return val - def SetSelection(self,arg0): - val = controlsc.wxRadioBox_SetSelection(self.this,arg0) - return val - def SetStringSelection(self,arg0): - val = controlsc.wxRadioBox_SetStringSelection(self.this,arg0) - return val - def Show(self,arg0): - val = controlsc.wxRadioBox_Show(self.this,arg0) - return val - def ShowItem(self,arg0,arg1): - val = controlsc.wxRadioBox_ShowItem(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxRadioBox(wxRadioBoxPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxRadioBox,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self): - val = controlsc.wxRadioButton_GetValue(self.this) - return val - def SetValue(self,arg0): - val = controlsc.wxRadioButton_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxRadioButton(wxRadioButtonPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxRadioButton,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSliderPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ClearSel(self): - val = controlsc.wxSlider_ClearSel(self.this) - return val - def ClearTicks(self): - val = controlsc.wxSlider_ClearTicks(self.this) - return val - def GetLineSize(self): - val = controlsc.wxSlider_GetLineSize(self.this) - return val - def GetMax(self): - val = controlsc.wxSlider_GetMax(self.this) - return val - def GetMin(self): - val = controlsc.wxSlider_GetMin(self.this) - return val - def GetPageSize(self): - val = controlsc.wxSlider_GetPageSize(self.this) - return val - def GetSelEnd(self): - val = controlsc.wxSlider_GetSelEnd(self.this) - return val - def GetSelStart(self): - val = controlsc.wxSlider_GetSelStart(self.this) - return val - def GetThumbLength(self): - val = controlsc.wxSlider_GetThumbLength(self.this) - return val - def GetTickFreq(self): - val = controlsc.wxSlider_GetTickFreq(self.this) - return val - def GetValue(self): - val = controlsc.wxSlider_GetValue(self.this) - return val - def SetRange(self,arg0,arg1): - val = controlsc.wxSlider_SetRange(self.this,arg0,arg1) - return val - def SetTickFreq(self,arg0,arg1): - val = controlsc.wxSlider_SetTickFreq(self.this,arg0,arg1) - return val - def SetLineSize(self,arg0): - val = controlsc.wxSlider_SetLineSize(self.this,arg0) - return val - def SetPageSize(self,arg0): - val = controlsc.wxSlider_SetPageSize(self.this,arg0) - return val - def SetSelection(self,arg0,arg1): - val = controlsc.wxSlider_SetSelection(self.this,arg0,arg1) - return val - def SetThumbLength(self,arg0): - val = controlsc.wxSlider_SetThumbLength(self.this,arg0) - return val - def SetTick(self,arg0): - val = controlsc.wxSlider_SetTick(self.this,arg0) - return val - def SetValue(self,arg0): - val = controlsc.wxSlider_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxSlider(wxSliderPtr): - def __init__(self,arg0,arg1,arg2,arg3,arg4,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxSlider,(arg0.this,arg1,arg2,arg3,arg4,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/controls2.cpp b/utils/wxPython/src/gtk/controls2.cpp deleted file mode 100644 index 608b3e0436..0000000000 --- a/utils/wxPython/src/gtk/controls2.cpp +++ /dev/null @@ -1,5393 +0,0 @@ -/* - * FILE : gtk/controls2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initcontrols2c - -#define SWIG_name "controls2c" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -extern wxValidator wxPyDefaultValidator; - -class wxPyTreeItemData : public wxTreeItemData { -public: - wxPyTreeItemData(PyObject* obj = NULL) { - if (obj == NULL) - obj = Py_None; - Py_INCREF(obj); - m_obj = obj; - } - - ~wxPyTreeItemData() { - Py_DECREF(m_obj); - } - - PyObject* GetData() { - Py_INCREF(m_obj); - return m_obj; - } - - void SetData(PyObject* obj) { - Py_DECREF(m_obj); - m_obj = obj; - Py_INCREF(obj); - } - - PyObject* m_obj; -}; -#define wxListItem_m_mask_set(_swigobj,_swigval) (_swigobj->m_mask = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_mask_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_mask_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_mask_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_mask_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_mask_get(_swigobj) ((long ) _swigobj->m_mask) -static PyObject *_wrap_wxListItem_m_mask_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_mask_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_mask_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_mask_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_itemId_set(_swigobj,_swigval) (_swigobj->m_itemId = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_itemId_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_itemId_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_itemId_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_itemId_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_itemId_get(_swigobj) ((long ) _swigobj->m_itemId) -static PyObject *_wrap_wxListItem_m_itemId_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_itemId_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_itemId_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_itemId_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_col_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_col_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_col_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_col_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_col_get(_swigobj) ((int ) _swigobj->m_col) -static PyObject *_wrap_wxListItem_m_col_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_col_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_col_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_col_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_state_set(_swigobj,_swigval) (_swigobj->m_state = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_state_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_state_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_state_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_state_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_state_get(_swigobj) ((long ) _swigobj->m_state) -static PyObject *_wrap_wxListItem_m_state_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_state_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_state_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_state_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_stateMask_set(_swigobj,_swigval) (_swigobj->m_stateMask = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_stateMask_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_stateMask_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_stateMask_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_stateMask_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_stateMask_get(_swigobj) ((long ) _swigobj->m_stateMask) -static PyObject *_wrap_wxListItem_m_stateMask_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_stateMask_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_stateMask_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_stateMask_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_text_set(_swigobj,_swigval) (_swigobj->m_text = *(_swigval),_swigval) -static PyObject *_wrap_wxListItem_m_text_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListItem * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListItem_m_text_set",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_text_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxListItem_m_text_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListItem_m_text_get(_swigobj) (&_swigobj->m_text) -static PyObject *_wrap_wxListItem_m_text_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_text_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_text_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxListItem_m_text_get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxListItem_m_image_set(_swigobj,_swigval) (_swigobj->m_image = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_image_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_image_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_image_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_image_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_image_get(_swigobj) ((int ) _swigobj->m_image) -static PyObject *_wrap_wxListItem_m_image_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_image_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_image_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_image_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_data_set(_swigobj,_swigval) (_swigobj->m_data = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_data_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_data_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_data_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_data_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_data_get(_swigobj) ((long ) _swigobj->m_data) -static PyObject *_wrap_wxListItem_m_data_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_data_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_data_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_data_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_format_set(_swigobj,_swigval) (_swigobj->m_format = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_format_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_format_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_format_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_format_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_format_get(_swigobj) ((int ) _swigobj->m_format) -static PyObject *_wrap_wxListItem_m_format_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_format_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_format_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_format_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_width_set(_swigobj,_swigval) (_swigobj->m_width = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_width_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_width_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_width_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_width_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_width_get(_swigobj) ((int ) _swigobj->m_width) -static PyObject *_wrap_wxListItem_m_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_width_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxListItem() (new wxListItem()) -static PyObject *_wrap_new_wxListItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxListItem")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)new_wxListItem(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxListItem(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxListItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxListItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxListItem. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxListItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxListEventTowxCommandEvent(void *ptr) { - wxListEvent *src; - wxCommandEvent *dest; - src = (wxListEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxListEventTowxEvent(void *ptr) { - wxListEvent *src; - wxEvent *dest; - src = (wxListEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxListEvent_m_code_set(_swigobj,_swigval) (_swigobj->m_code = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_code_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListEvent_m_code_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_code_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_code_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_code_get(_swigobj) ((int ) _swigobj->m_code) -static PyObject *_wrap_wxListEvent_m_code_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_code_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_code_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_code_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_itemIndex_set(_swigobj,_swigval) (_swigobj->m_itemIndex = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_itemIndex_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListEvent_m_itemIndex_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_itemIndex_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_itemIndex_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_itemIndex_get(_swigobj) ((long ) _swigobj->m_itemIndex) -static PyObject *_wrap_wxListEvent_m_itemIndex_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_itemIndex_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_itemIndex_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_itemIndex_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_oldItemIndex_set(_swigobj,_swigval) (_swigobj->m_oldItemIndex = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_oldItemIndex_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListEvent_m_oldItemIndex_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_oldItemIndex_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_oldItemIndex_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_oldItemIndex_get(_swigobj) ((long ) _swigobj->m_oldItemIndex) -static PyObject *_wrap_wxListEvent_m_oldItemIndex_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_oldItemIndex_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_oldItemIndex_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_oldItemIndex_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_col_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListEvent_m_col_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_col_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_col_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_col_get(_swigobj) ((int ) _swigobj->m_col) -static PyObject *_wrap_wxListEvent_m_col_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_col_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_col_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_col_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_cancelled_set(_swigobj,_swigval) (_swigobj->m_cancelled = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_cancelled_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListEvent_m_cancelled_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_cancelled_set. Expected _wxListEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListEvent_m_cancelled_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_cancelled_get(_swigobj) ((bool ) _swigobj->m_cancelled) -static PyObject *_wrap_wxListEvent_m_cancelled_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_cancelled_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_cancelled_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListEvent_m_cancelled_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_pointDrag_set(_swigobj,_swigval) (_swigobj->m_pointDrag = *(_swigval),_swigval) -static PyObject *_wrap_wxListEvent_m_pointDrag_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxListEvent * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListEvent_m_pointDrag_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_pointDrag_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListEvent_m_pointDrag_set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)wxListEvent_m_pointDrag_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListEvent_m_pointDrag_get(_swigobj) (&_swigobj->m_pointDrag) -static PyObject *_wrap_wxListEvent_m_pointDrag_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxListEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_pointDrag_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_pointDrag_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)wxListEvent_m_pointDrag_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListEvent_m_item_set(_swigobj,_swigval) (_swigobj->m_item = *(_swigval),_swigval) -static PyObject *_wrap_wxListEvent_m_item_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - wxListEvent * _arg0; - wxListItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListEvent_m_item_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_item_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListEvent_m_item_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)wxListEvent_m_item_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListEvent_m_item_get(_swigobj) (&_swigobj->m_item) -static PyObject *_wrap_wxListEvent_m_item_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - wxListEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_item_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_item_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)wxListEvent_m_item_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxListCtrlTowxControl(void *ptr) { - wxListCtrl *src; - wxControl *dest; - src = (wxListCtrl *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxListCtrlTowxWindow(void *ptr) { - wxListCtrl *src; - wxWindow *dest; - src = (wxListCtrl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxListCtrlTowxEvtHandler(void *ptr) { - wxListCtrl *src; - wxEvtHandler *dest; - src = (wxListCtrl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxListCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxListCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxListCtrl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxLC_ICON); - wxValidator * _arg5 = &wxPyDefaultValidator; - char * _arg6 = "listCtrl"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|sslss:new_wxListCtrl",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_argc5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxListCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxListCtrl. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListCtrl *)new_wxListCtrl(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_Arrange(_swigobj,_swigarg0) (_swigobj->Arrange(_swigarg0)) -static PyObject *_wrap_wxListCtrl_Arrange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1 = (wxLIST_ALIGN_DEFAULT); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxListCtrl_Arrange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_Arrange. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_Arrange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteItem(_swigobj,_swigarg0) (_swigobj->DeleteItem(_swigarg0)) -static PyObject *_wrap_wxListCtrl_DeleteItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_DeleteItem",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteAllItems(_swigobj) (_swigobj->DeleteAllItems()) -static PyObject *_wrap_wxListCtrl_DeleteAllItems(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_DeleteAllItems",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteAllItems. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteAllItems(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteColumn(_swigobj,_swigarg0) (_swigobj->DeleteColumn(_swigarg0)) -static PyObject *_wrap_wxListCtrl_DeleteColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_DeleteColumn",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteColumn. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteColumn(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteAllColumns(_swigobj) (_swigobj->DeleteAllColumns()) -static PyObject *_wrap_wxListCtrl_DeleteAllColumns(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_DeleteAllColumns",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteAllColumns. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteAllColumns(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_ClearAll(_swigobj) (_swigobj->ClearAll()) -static PyObject *_wrap_wxListCtrl_ClearAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_ClearAll",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_ClearAll. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_ClearAll(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_EnsureVisible(_swigobj,_swigarg0) (_swigobj->EnsureVisible(_swigarg0)) -static PyObject *_wrap_wxListCtrl_EnsureVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_EnsureVisible",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_EnsureVisible. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_EnsureVisible(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_FindItem(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->FindItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_FindItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - bool _arg3 = (0); - char * _argc0 = 0; - PyObject * _obj2 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"slO|i:wxListCtrl_FindItem",&_argc0,&_arg1,&_obj2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_FindItem(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_FindItemData(_swigobj,_swigarg0,_swigarg1) (_swigobj->FindItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_FindItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxListCtrl_FindItemData",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItemData. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_FindItemData(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_FindItemAtPos(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->FindItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_FindItemAtPos(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxPoint * _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slsi:wxListCtrl_FindItemAtPos",&_argc0,&_arg1,&_argc2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItemAtPos. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_FindItemAtPos. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_FindItemAtPos(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_GetColumn(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetColumn(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_GetColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - wxListItem * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxListCtrl_GetColumn",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_GetColumn. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_GetColumn(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetColumnWidth(_swigobj,_swigarg0) (_swigobj->GetColumnWidth(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_GetColumnWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetColumnWidth. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetColumnWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetCountPerPage(_swigobj) (_swigobj->GetCountPerPage()) -static PyObject *_wrap_wxListCtrl_GetCountPerPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetCountPerPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetCountPerPage. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetCountPerPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetImageList(_swigobj,_swigarg0) (_swigobj->GetImageList(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxListCtrl * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_GetImageList",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetImageList. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxListCtrl_GetImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_GetItemData(_swigobj,_swigarg0) (_swigobj->GetItemData(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItemData",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemData. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_GetItemData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static wxListItem * wxListCtrl_GetItem(wxListCtrl *self,long itemId) { - wxListItem* info = new wxListItem; - info->m_itemId = itemId; - self->GetItem(*info); - return info; - } -static PyObject *_wrap_wxListCtrl_GetItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItem",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)wxListCtrl_GetItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxPoint * wxListCtrl_GetItemPosition(wxListCtrl *self,long item) { - wxPoint* pos = new wxPoint; - self->GetItemPosition(item, *pos); - return pos; - } -static PyObject *_wrap_wxListCtrl_GetItemPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItemPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemPosition. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)wxListCtrl_GetItemPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxRect * wxListCtrl_GetItemRect(wxListCtrl *self,long item,int code) { - wxRect* rect= new wxRect; - self->GetItemRect(item, *rect, code); - return rect; - } -static PyObject *_wrap_wxListCtrl_GetItemRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2 = (wxLIST_RECT_BOUNDS); - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl|i:wxListCtrl_GetItemRect",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemRect. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRect *)wxListCtrl_GetItemRect(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_GetItemState(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetItemState(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_GetItemState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxListCtrl_GetItemState",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemState. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetItemState(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetItemCount(_swigobj) (_swigobj->GetItemCount()) -static PyObject *_wrap_wxListCtrl_GetItemCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetItemCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemCount. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetItemCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetItemSpacing(_swigobj,_swigarg0) (_swigobj->GetItemSpacing(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetItemSpacing(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_GetItemSpacing",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemSpacing. Expected _wxListCtrl_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetItemSpacing(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetItemText(_swigobj,_swigarg0) (_swigobj->GetItemText(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItemText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemText. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxListCtrl_GetItemText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxListCtrl_GetNextItem(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetNextItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_GetNextItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2 = (wxLIST_NEXT_ALL); - int _arg3 = (wxLIST_STATE_DONTCARE); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl|ii:wxListCtrl_GetNextItem",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetNextItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_GetNextItem(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_GetSelectedItemCount(_swigobj) (_swigobj->GetSelectedItemCount()) -static PyObject *_wrap_wxListCtrl_GetSelectedItemCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetSelectedItemCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetSelectedItemCount. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetSelectedItemCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetTopItem(_swigobj) (_swigobj->GetTopItem()) -static PyObject *_wrap_wxListCtrl_GetTopItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetTopItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetTopItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_GetTopItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_HitTest(_swigobj,_swigarg0,_swigarg1) (_swigobj->HitTest(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_HitTest(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - wxPoint * _arg1; - int * _arg2; - int temp; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; -{ - _arg2 = &temp; -} - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_HitTest",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_HitTest. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_HitTest. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_HitTest(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxListCtrl_InsertColumnWith(_swigobj,_swigarg0,_swigarg1) (_swigobj->InsertColumn(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_InsertColumnWith(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxListItem * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sls:wxListCtrl_InsertColumnWith",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertColumnWith. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_InsertColumnWith. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertColumnWith(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_InsertColumn(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->InsertColumn(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxListCtrl_InsertColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - int _arg3 = (wxLIST_FORMAT_LEFT); - int _arg4 = -1; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slO|ii:wxListCtrl_InsertColumn",&_argc0,&_arg1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertColumn. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertColumn(_arg0,_arg1,*_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_InsertItem(_swigobj,_swigarg0) (_swigobj->InsertItem(_swigarg0)) -static PyObject *_wrap_wxListCtrl_InsertItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - wxListItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_InsertItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_InsertItem. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_InsertStringItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->InsertItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_InsertStringItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slO:wxListCtrl_InsertStringItem",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertStringItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertStringItem(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_InsertImageItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->InsertItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_InsertImageItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sli:wxListCtrl_InsertImageItem",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertImageItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertImageItem(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_InsertImageStringItem(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->InsertItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_InsertImageStringItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - int _arg3; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slOi:wxListCtrl_InsertImageStringItem",&_argc0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertImageStringItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertImageStringItem(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_ScrollList(_swigobj,_swigarg0,_swigarg1) (_swigobj->ScrollList(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_ScrollList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxListCtrl_ScrollList",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_ScrollList. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_ScrollList(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetBackgroundColour. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_SetColumn(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumn(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - wxListItem * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxListCtrl_SetColumn",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_SetColumn. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetColumn(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetColumnWidth(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumnWidth(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxListCtrl_SetColumnWidth",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetColumnWidth. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetColumnWidth(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetImageList(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetImageList(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - wxImageList * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxListCtrl_SetImageList",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetImageList. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetImageList(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_SetItem(_swigobj,_swigarg0) (_swigobj->SetItem(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - wxListItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_SetItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetItem. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetStringItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->SetItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxListCtrl_SetStringItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2; - wxString * _arg3; - int _arg4 = -1; - char * _argc0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sliO|i:wxListCtrl_SetStringItem",&_argc0,&_arg1,&_arg2,&_obj3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetStringItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_SetStringItem(_arg0,_arg1,_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxListCtrl_SetItemData(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemData(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxListCtrl_SetItemData",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemData. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemData(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemImage(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetItemImage(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_SetItemImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slii:wxListCtrl_SetItemImage",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemImage. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemImage(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetItemPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - wxPoint * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sls:wxListCtrl_SetItemPosition",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemPosition. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_SetItemPosition. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemPosition(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemState(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetItemState(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_SetItemState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - long _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slll:wxListCtrl_SetItemState",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemState. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemState(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slO:wxListCtrl_SetItemText",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemText. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetItemText(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_SetSingleStyle(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSingleStyle(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetSingleStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - long _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sl|i:wxListCtrl_SetSingleStyle",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetSingleStyle. Expected _wxListCtrl_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetSingleStyle(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_SetWindowStyleFlag(_swigobj,_swigarg0) (_swigobj->SetWindowStyleFlag(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetWindowStyleFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_SetWindowStyleFlag",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetWindowStyleFlag. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetWindowStyleFlag(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxTreeItemId() (new wxTreeItemId()) -static PyObject *_wrap_new_wxTreeItemId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxTreeItemId")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTreeItemId *)new_wxTreeItemId(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxTreeItemId(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxTreeItemId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxTreeItemId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxTreeItemId. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxTreeItemId(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeItemId_IsOk(_swigobj) (_swigobj->IsOk()) -static PyObject *_wrap_wxTreeItemId_IsOk(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeItemId * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeItemId_IsOk",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemId_IsOk. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeItemId_IsOk(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxTreeItemData(_swigarg0) (new wxPyTreeItemData(_swigarg0)) -static PyObject *_wrap_new_wxTreeItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _result; - PyObject * _arg0 = NULL; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxTreeItemData",&_obj0)) - return NULL; - if (_obj0) -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyTreeItemData *)new_wxTreeItemData(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeItemData_GetData(_swigobj) (_swigobj->GetData()) -static PyObject *_wrap_wxTreeItemData_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPyTreeItemData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeItemData_GetData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_GetData. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxTreeItemData_GetData(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define wxTreeItemData_SetData(_swigobj,_swigarg0) (_swigobj->SetData(_swigarg0)) -static PyObject *_wrap_wxTreeItemData_SetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _arg0; - PyObject * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTreeItemData_SetData",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_SetData. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeItemData_SetData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeItemData_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxTreeItemData_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxPyTreeItemData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeItemData_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_GetId. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxTreeItemId & _result_ref = wxTreeItemData_GetId(_arg0); - _result = (wxTreeItemId *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeItemData_SetId(_swigobj,_swigarg0) (_swigobj->SetId(_swigarg0)) -static PyObject *_wrap_wxTreeItemData_SetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeItemData_SetId",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_SetId. Expected _wxPyTreeItemData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeItemData_SetId. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeItemData_SetId(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxTreeEventTowxCommandEvent(void *ptr) { - wxTreeEvent *src; - wxCommandEvent *dest; - src = (wxTreeEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxTreeEventTowxEvent(void *ptr) { - wxTreeEvent *src; - wxEvent *dest; - src = (wxTreeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxTreeEvent_GetItem(_swigobj) (_swigobj->GetItem()) -static PyObject *_wrap_wxTreeEvent_GetItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetItem. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeEvent_GetItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeEvent_GetOldItem(_swigobj) (_swigobj->GetOldItem()) -static PyObject *_wrap_wxTreeEvent_GetOldItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetOldItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetOldItem. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeEvent_GetOldItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeEvent_GetPoint(_swigobj) (_swigobj->GetPoint()) -static PyObject *_wrap_wxTreeEvent_GetPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetPoint. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxTreeEvent_GetPoint(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeEvent_GetCode(_swigobj) (_swigobj->GetCode()) -static PyObject *_wrap_wxTreeEvent_GetCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetCode. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTreeEvent_GetCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeEvent_Veto(_swigobj) (_swigobj->Veto()) -static PyObject *_wrap_wxTreeEvent_Veto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_Veto",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_Veto. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeEvent_Veto(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxTreeCtrlTowxControl(void *ptr) { - wxTreeCtrl *src; - wxControl *dest; - src = (wxTreeCtrl *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxTreeCtrlTowxWindow(void *ptr) { - wxTreeCtrl *src; - wxWindow *dest; - src = (wxTreeCtrl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxTreeCtrlTowxEvtHandler(void *ptr) { - wxTreeCtrl *src; - wxEvtHandler *dest; - src = (wxTreeCtrl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTreeCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxTreeCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxTreeCtrl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxTR_HAS_BUTTONS)|(wxTR_LINES_AT_ROOT); - wxValidator * _arg5 = &wxPyDefaultValidator; - char * _arg6 = "wxTreeCtrl"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|isslss:new_wxTreeCtrl",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_argc5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTreeCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxTreeCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTreeCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxTreeCtrl. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTreeCtrl *)new_wxTreeCtrl(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetCount(_swigobj) (_swigobj->GetCount()) -static PyObject *_wrap_wxTreeCtrl_GetCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - size_t _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetCount. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (size_t )wxTreeCtrl_GetCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_GetIndent(_swigobj) (_swigobj->GetIndent()) -static PyObject *_wrap_wxTreeCtrl_GetIndent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned int _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetIndent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetIndent. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned int )wxTreeCtrl_GetIndent(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_SetIndent(_swigobj,_swigarg0) (_swigobj->SetIndent(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SetIndent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - unsigned int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxTreeCtrl_SetIndent",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetIndent. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetIndent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_GetImageList(_swigobj) (_swigobj->GetImageList()) -static PyObject *_wrap_wxTreeCtrl_GetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxTreeCtrl_GetImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetStateImageList(_swigobj) (_swigobj->GetStateImageList()) -static PyObject *_wrap_wxTreeCtrl_GetStateImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetStateImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetStateImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxTreeCtrl_GetStateImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_SetImageList(_swigobj,_swigarg0) (_swigobj->SetImageList(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxImageList * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_SetImageList",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetStateImageList(_swigobj,_swigarg0) (_swigobj->SetStateImageList(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SetStateImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxImageList * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_SetStateImageList",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetStateImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetStateImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetStateImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_GetItemText(_swigobj,_swigarg0) (_swigobj->GetItemText(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemText",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemText. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTreeCtrl_GetItemText(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTreeCtrl_GetItemImage(_swigobj,_swigarg0) (_swigobj->GetItemImage(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetItemImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemImage",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTreeCtrl_GetItemImage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_GetItemSelectedImage(_swigobj,_swigarg0) (_swigobj->GetItemSelectedImage(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetItemSelectedImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemSelectedImage",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemSelectedImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTreeCtrl_GetItemSelectedImage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_SetItemText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxString * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_SetItemText",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemText. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemText(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxTreeCtrl_SetItemImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxTreeCtrl_SetItemImage",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemImage(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetItemSelectedImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemSelectedImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemSelectedImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxTreeCtrl_SetItemSelectedImage",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemSelectedImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemSelectedImage(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetItemHasChildren(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemHasChildren(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemHasChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxTreeCtrl_SetItemHasChildren",&_argc0,&_argc1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemHasChildren. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemHasChildren(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static wxPyTreeItemData * wxTreeCtrl_GetItemData(wxTreeCtrl *self,const wxTreeItemId & item) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(); - self->SetItemData(item, data); - } - return data; - } -static PyObject *_wrap_wxTreeCtrl_GetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemData. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyTreeItemData *)wxTreeCtrl_GetItemData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void wxTreeCtrl_SetItemData(wxTreeCtrl *self,const wxTreeItemId & item,wxPyTreeItemData * data) { - self->SetItemData(item, data); - } -static PyObject *_wrap_wxTreeCtrl_SetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxPyTreeItemData * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss:wxTreeCtrl_SetItemData",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemData. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxTreeCtrl_SetItemData. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemData(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject * wxTreeCtrl_GetPyData(wxTreeCtrl *self,const wxTreeItemId & item) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(); - self->SetItemData(item, data); - } - return data->GetData(); - } -static PyObject *_wrap_wxTreeCtrl_GetPyData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetPyData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetPyData. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxTreeCtrl_GetPyData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static void wxTreeCtrl_SetPyData(wxTreeCtrl *self,const wxTreeItemId & item,PyObject * obj) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(obj); - self->SetItemData(item, data); - } else - data->SetData(obj); - } -static PyObject *_wrap_wxTreeCtrl_SetPyData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - PyObject * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_SetPyData",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetPyData. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - _arg2 = _obj2; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetPyData(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_IsVisible(_swigobj,_swigarg0) (_swigobj->IsVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsVisible(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_ItemHasChildren(_swigobj,_swigarg0) (_swigobj->ItemHasChildren(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_ItemHasChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_ItemHasChildren",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_ItemHasChildren. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_ItemHasChildren(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_IsExpanded(_swigobj,_swigarg0) (_swigobj->IsExpanded(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsExpanded(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsExpanded",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsExpanded. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsExpanded. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsExpanded(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_IsSelected(_swigobj,_swigarg0) (_swigobj->IsSelected(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsSelected",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsSelected. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsSelected. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsSelected(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_GetRootItem(_swigobj) (_swigobj->GetRootItem()) -static PyObject *_wrap_wxTreeCtrl_GetRootItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetRootItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetRootItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetRootItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxTreeCtrl_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetSelection. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetParent(_swigobj,_swigarg0) (_swigobj->GetParent(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetParent",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetParent. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetParent. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetParent(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetFirstChild(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetFirstChild(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_GetFirstChild(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - long * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_GetFirstChild",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetFirstChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetFirstChild. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - temp = (long) PyInt_AsLong(_obj2); - _arg2 = &temp; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetFirstChild(_arg0,*_arg1,*_arg2)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTreeCtrl_GetNextChild(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetNextChild(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_GetNextChild(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - long * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_GetNextChild",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetNextChild. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - temp = (long) PyInt_AsLong(_obj2); - _arg2 = &temp; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetNextChild(_arg0,*_arg1,*_arg2)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTreeCtrl_GetNextSibling(_swigobj,_swigarg0) (_swigobj->GetNextSibling(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetNextSibling(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetNextSibling",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetNextSibling. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetNextSibling(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetPrevSibling(_swigobj,_swigarg0) (_swigobj->GetPrevSibling(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetPrevSibling(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetPrevSibling",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetPrevSibling. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetPrevSibling(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetFirstVisibleItem(_swigobj) (_swigobj->GetFirstVisibleItem()) -static PyObject *_wrap_wxTreeCtrl_GetFirstVisibleItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetFirstVisibleItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetFirstVisibleItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetFirstVisibleItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetNextVisible(_swigobj,_swigarg0) (_swigobj->GetNextVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetNextVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetNextVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetNextVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetNextVisible(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetPrevVisible(_swigobj,_swigarg0) (_swigobj->GetPrevVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetPrevVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetPrevVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetPrevVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetPrevVisible(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_AddRoot(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->AddRoot(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxTreeCtrl_AddRoot(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxString * _arg1; - int _arg2 = -1; - int _arg3 = -1; - wxPyTreeItemData * _arg4 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sO|iis:wxTreeCtrl_AddRoot",&_argc0,&_obj1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_AddRoot. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxTreeCtrl_AddRoot. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_AddRoot(_arg0,*_arg1,_arg2,_arg3,_arg4)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTreeCtrl_PrependItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->PrependItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxTreeCtrl_PrependItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxString * _arg2; - int _arg3 = -1; - int _arg4 = -1; - wxPyTreeItemData * _arg5 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|iis:wxTreeCtrl_PrependItem",&_argc0,&_argc1,&_obj2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_PrependItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_PrependItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxTreeCtrl_PrependItem. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_PrependItem(_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxTreeCtrl_InsertItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->InsertItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxTreeCtrl_InsertItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxTreeItemId * _arg2; - wxString * _arg3; - int _arg4 = -1; - int _arg5 = -1; - wxPyTreeItemData * _arg6 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - PyObject * _obj3 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sssO|iis:wxTreeCtrl_InsertItem",&_argc0,&_argc1,&_argc2,&_obj3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_InsertItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_InsertItem. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxTreeCtrl_InsertItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxTreeCtrl_InsertItem. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_InsertItem(_arg0,*_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxTreeCtrl_AppendItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->AppendItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxTreeCtrl_AppendItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxString * _arg2; - int _arg3 = -1; - int _arg4 = -1; - wxPyTreeItemData * _arg5 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|iis:wxTreeCtrl_AppendItem",&_argc0,&_argc1,&_obj2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_AppendItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_AppendItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxTreeCtrl_AppendItem. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_AppendItem(_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxTreeCtrl_Delete(_swigobj,_swigarg0) (_swigobj->Delete(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Delete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Delete",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Delete. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Delete. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Delete(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_DeleteChildren(_swigobj,_swigarg0) (_swigobj->DeleteChildren(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_DeleteChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_DeleteChildren",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_DeleteChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_DeleteChildren. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_DeleteChildren(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_DeleteAllItems(_swigobj) (_swigobj->DeleteAllItems()) -static PyObject *_wrap_wxTreeCtrl_DeleteAllItems(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_DeleteAllItems",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_DeleteAllItems. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_DeleteAllItems(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Expand(_swigobj,_swigarg0) (_swigobj->Expand(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Expand(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Expand",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Expand. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Expand. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Expand(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Collapse(_swigobj,_swigarg0) (_swigobj->Collapse(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Collapse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Collapse",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Collapse. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Collapse. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Collapse(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_CollapseAndReset(_swigobj,_swigarg0) (_swigobj->CollapseAndReset(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_CollapseAndReset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_CollapseAndReset",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_CollapseAndReset. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_CollapseAndReset. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_CollapseAndReset(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Toggle(_swigobj,_swigarg0) (_swigobj->Toggle(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Toggle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Toggle",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Toggle. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Toggle. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Toggle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Unselect(_swigobj) (_swigobj->Unselect()) -static PyObject *_wrap_wxTreeCtrl_Unselect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_Unselect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Unselect. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Unselect(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SelectItem(_swigobj,_swigarg0) (_swigobj->SelectItem(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SelectItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_SelectItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SelectItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SelectItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SelectItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_EnsureVisible(_swigobj,_swigarg0) (_swigobj->EnsureVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_EnsureVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_EnsureVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EnsureVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_EnsureVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_EnsureVisible(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_ScrollTo(_swigobj,_swigarg0) (_swigobj->ScrollTo(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_ScrollTo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_ScrollTo",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ScrollTo. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_ScrollTo. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_ScrollTo(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_EditLabel(_swigobj,_swigarg0) (_swigobj->EditLabel(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_EditLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_EditLabel",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_EditLabel. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxTreeCtrl_EditLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetEditControl(_swigobj) (_swigobj->GetEditControl()) -static PyObject *_wrap_wxTreeCtrl_GetEditControl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetEditControl",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetEditControl. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxTreeCtrl_GetEditControl(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_EndEditLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->EndEditLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_EndEditLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (0); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxTreeCtrl_EndEditLabel",&_argc0,&_argc1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EndEditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_EndEditLabel. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_EndEditLabel(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetItemBold(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemBold(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemBold(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxTreeCtrl_SetItemBold",&_argc0,&_argc1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemBold. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemBold(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_IsBold(_swigobj,_swigarg0) (_swigobj->IsBold(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsBold(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsBold",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsBold. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsBold(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_HitTest(_swigobj,_swigarg0) (_swigobj->HitTest(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_HitTest(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_HitTest",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_HitTest. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_HitTest. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_HitTest(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef controls2cMethods[] = { - { "wxTreeCtrl_HitTest", _wrap_wxTreeCtrl_HitTest, 1 }, - { "wxTreeCtrl_IsBold", _wrap_wxTreeCtrl_IsBold, 1 }, - { "wxTreeCtrl_SetItemBold", _wrap_wxTreeCtrl_SetItemBold, 1 }, - { "wxTreeCtrl_EndEditLabel", _wrap_wxTreeCtrl_EndEditLabel, 1 }, - { "wxTreeCtrl_GetEditControl", _wrap_wxTreeCtrl_GetEditControl, 1 }, - { "wxTreeCtrl_EditLabel", _wrap_wxTreeCtrl_EditLabel, 1 }, - { "wxTreeCtrl_ScrollTo", _wrap_wxTreeCtrl_ScrollTo, 1 }, - { "wxTreeCtrl_EnsureVisible", _wrap_wxTreeCtrl_EnsureVisible, 1 }, - { "wxTreeCtrl_SelectItem", _wrap_wxTreeCtrl_SelectItem, 1 }, - { "wxTreeCtrl_Unselect", _wrap_wxTreeCtrl_Unselect, 1 }, - { "wxTreeCtrl_Toggle", _wrap_wxTreeCtrl_Toggle, 1 }, - { "wxTreeCtrl_CollapseAndReset", _wrap_wxTreeCtrl_CollapseAndReset, 1 }, - { "wxTreeCtrl_Collapse", _wrap_wxTreeCtrl_Collapse, 1 }, - { "wxTreeCtrl_Expand", _wrap_wxTreeCtrl_Expand, 1 }, - { "wxTreeCtrl_DeleteAllItems", _wrap_wxTreeCtrl_DeleteAllItems, 1 }, - { "wxTreeCtrl_DeleteChildren", _wrap_wxTreeCtrl_DeleteChildren, 1 }, - { "wxTreeCtrl_Delete", _wrap_wxTreeCtrl_Delete, 1 }, - { "wxTreeCtrl_AppendItem", _wrap_wxTreeCtrl_AppendItem, 1 }, - { "wxTreeCtrl_InsertItem", _wrap_wxTreeCtrl_InsertItem, 1 }, - { "wxTreeCtrl_PrependItem", _wrap_wxTreeCtrl_PrependItem, 1 }, - { "wxTreeCtrl_AddRoot", _wrap_wxTreeCtrl_AddRoot, 1 }, - { "wxTreeCtrl_GetPrevVisible", _wrap_wxTreeCtrl_GetPrevVisible, 1 }, - { "wxTreeCtrl_GetNextVisible", _wrap_wxTreeCtrl_GetNextVisible, 1 }, - { "wxTreeCtrl_GetFirstVisibleItem", _wrap_wxTreeCtrl_GetFirstVisibleItem, 1 }, - { "wxTreeCtrl_GetPrevSibling", _wrap_wxTreeCtrl_GetPrevSibling, 1 }, - { "wxTreeCtrl_GetNextSibling", _wrap_wxTreeCtrl_GetNextSibling, 1 }, - { "wxTreeCtrl_GetNextChild", _wrap_wxTreeCtrl_GetNextChild, 1 }, - { "wxTreeCtrl_GetFirstChild", _wrap_wxTreeCtrl_GetFirstChild, 1 }, - { "wxTreeCtrl_GetParent", _wrap_wxTreeCtrl_GetParent, 1 }, - { "wxTreeCtrl_GetSelection", _wrap_wxTreeCtrl_GetSelection, 1 }, - { "wxTreeCtrl_GetRootItem", _wrap_wxTreeCtrl_GetRootItem, 1 }, - { "wxTreeCtrl_IsSelected", _wrap_wxTreeCtrl_IsSelected, 1 }, - { "wxTreeCtrl_IsExpanded", _wrap_wxTreeCtrl_IsExpanded, 1 }, - { "wxTreeCtrl_ItemHasChildren", _wrap_wxTreeCtrl_ItemHasChildren, 1 }, - { "wxTreeCtrl_IsVisible", _wrap_wxTreeCtrl_IsVisible, 1 }, - { "wxTreeCtrl_SetPyData", _wrap_wxTreeCtrl_SetPyData, 1 }, - { "wxTreeCtrl_GetPyData", _wrap_wxTreeCtrl_GetPyData, 1 }, - { "wxTreeCtrl_SetItemData", _wrap_wxTreeCtrl_SetItemData, 1 }, - { "wxTreeCtrl_GetItemData", _wrap_wxTreeCtrl_GetItemData, 1 }, - { "wxTreeCtrl_SetItemHasChildren", _wrap_wxTreeCtrl_SetItemHasChildren, 1 }, - { "wxTreeCtrl_SetItemSelectedImage", _wrap_wxTreeCtrl_SetItemSelectedImage, 1 }, - { "wxTreeCtrl_SetItemImage", _wrap_wxTreeCtrl_SetItemImage, 1 }, - { "wxTreeCtrl_SetItemText", _wrap_wxTreeCtrl_SetItemText, 1 }, - { "wxTreeCtrl_GetItemSelectedImage", _wrap_wxTreeCtrl_GetItemSelectedImage, 1 }, - { "wxTreeCtrl_GetItemImage", _wrap_wxTreeCtrl_GetItemImage, 1 }, - { "wxTreeCtrl_GetItemText", _wrap_wxTreeCtrl_GetItemText, 1 }, - { "wxTreeCtrl_SetStateImageList", _wrap_wxTreeCtrl_SetStateImageList, 1 }, - { "wxTreeCtrl_SetImageList", _wrap_wxTreeCtrl_SetImageList, 1 }, - { "wxTreeCtrl_GetStateImageList", _wrap_wxTreeCtrl_GetStateImageList, 1 }, - { "wxTreeCtrl_GetImageList", _wrap_wxTreeCtrl_GetImageList, 1 }, - { "wxTreeCtrl_SetIndent", _wrap_wxTreeCtrl_SetIndent, 1 }, - { "wxTreeCtrl_GetIndent", _wrap_wxTreeCtrl_GetIndent, 1 }, - { "wxTreeCtrl_GetCount", _wrap_wxTreeCtrl_GetCount, 1 }, - { "new_wxTreeCtrl", _wrap_new_wxTreeCtrl, 1 }, - { "wxTreeEvent_Veto", _wrap_wxTreeEvent_Veto, 1 }, - { "wxTreeEvent_GetCode", _wrap_wxTreeEvent_GetCode, 1 }, - { "wxTreeEvent_GetPoint", _wrap_wxTreeEvent_GetPoint, 1 }, - { "wxTreeEvent_GetOldItem", _wrap_wxTreeEvent_GetOldItem, 1 }, - { "wxTreeEvent_GetItem", _wrap_wxTreeEvent_GetItem, 1 }, - { "wxTreeItemData_SetId", _wrap_wxTreeItemData_SetId, 1 }, - { "wxTreeItemData_GetId", _wrap_wxTreeItemData_GetId, 1 }, - { "wxTreeItemData_SetData", _wrap_wxTreeItemData_SetData, 1 }, - { "wxTreeItemData_GetData", _wrap_wxTreeItemData_GetData, 1 }, - { "new_wxTreeItemData", _wrap_new_wxTreeItemData, 1 }, - { "wxTreeItemId_IsOk", _wrap_wxTreeItemId_IsOk, 1 }, - { "delete_wxTreeItemId", _wrap_delete_wxTreeItemId, 1 }, - { "new_wxTreeItemId", _wrap_new_wxTreeItemId, 1 }, - { "wxListCtrl_SetWindowStyleFlag", _wrap_wxListCtrl_SetWindowStyleFlag, 1 }, - { "wxListCtrl_SetSingleStyle", _wrap_wxListCtrl_SetSingleStyle, 1 }, - { "wxListCtrl_SetItemText", _wrap_wxListCtrl_SetItemText, 1 }, - { "wxListCtrl_SetItemState", _wrap_wxListCtrl_SetItemState, 1 }, - { "wxListCtrl_SetItemPosition", _wrap_wxListCtrl_SetItemPosition, 1 }, - { "wxListCtrl_SetItemImage", _wrap_wxListCtrl_SetItemImage, 1 }, - { "wxListCtrl_SetItemData", _wrap_wxListCtrl_SetItemData, 1 }, - { "wxListCtrl_SetStringItem", _wrap_wxListCtrl_SetStringItem, 1 }, - { "wxListCtrl_SetItem", _wrap_wxListCtrl_SetItem, 1 }, - { "wxListCtrl_SetImageList", _wrap_wxListCtrl_SetImageList, 1 }, - { "wxListCtrl_SetColumnWidth", _wrap_wxListCtrl_SetColumnWidth, 1 }, - { "wxListCtrl_SetColumn", _wrap_wxListCtrl_SetColumn, 1 }, - { "wxListCtrl_SetBackgroundColour", _wrap_wxListCtrl_SetBackgroundColour, 1 }, - { "wxListCtrl_ScrollList", _wrap_wxListCtrl_ScrollList, 1 }, - { "wxListCtrl_InsertImageStringItem", _wrap_wxListCtrl_InsertImageStringItem, 1 }, - { "wxListCtrl_InsertImageItem", _wrap_wxListCtrl_InsertImageItem, 1 }, - { "wxListCtrl_InsertStringItem", _wrap_wxListCtrl_InsertStringItem, 1 }, - { "wxListCtrl_InsertItem", _wrap_wxListCtrl_InsertItem, 1 }, - { "wxListCtrl_InsertColumn", _wrap_wxListCtrl_InsertColumn, 1 }, - { "wxListCtrl_InsertColumnWith", _wrap_wxListCtrl_InsertColumnWith, 1 }, - { "wxListCtrl_HitTest", _wrap_wxListCtrl_HitTest, 1 }, - { "wxListCtrl_GetTopItem", _wrap_wxListCtrl_GetTopItem, 1 }, - { "wxListCtrl_GetSelectedItemCount", _wrap_wxListCtrl_GetSelectedItemCount, 1 }, - { "wxListCtrl_GetNextItem", _wrap_wxListCtrl_GetNextItem, 1 }, - { "wxListCtrl_GetItemText", _wrap_wxListCtrl_GetItemText, 1 }, - { "wxListCtrl_GetItemSpacing", _wrap_wxListCtrl_GetItemSpacing, 1 }, - { "wxListCtrl_GetItemCount", _wrap_wxListCtrl_GetItemCount, 1 }, - { "wxListCtrl_GetItemState", _wrap_wxListCtrl_GetItemState, 1 }, - { "wxListCtrl_GetItemRect", _wrap_wxListCtrl_GetItemRect, 1 }, - { "wxListCtrl_GetItemPosition", _wrap_wxListCtrl_GetItemPosition, 1 }, - { "wxListCtrl_GetItem", _wrap_wxListCtrl_GetItem, 1 }, - { "wxListCtrl_GetItemData", _wrap_wxListCtrl_GetItemData, 1 }, - { "wxListCtrl_GetImageList", _wrap_wxListCtrl_GetImageList, 1 }, - { "wxListCtrl_GetCountPerPage", _wrap_wxListCtrl_GetCountPerPage, 1 }, - { "wxListCtrl_GetColumnWidth", _wrap_wxListCtrl_GetColumnWidth, 1 }, - { "wxListCtrl_GetColumn", _wrap_wxListCtrl_GetColumn, 1 }, - { "wxListCtrl_FindItemAtPos", _wrap_wxListCtrl_FindItemAtPos, 1 }, - { "wxListCtrl_FindItemData", _wrap_wxListCtrl_FindItemData, 1 }, - { "wxListCtrl_FindItem", _wrap_wxListCtrl_FindItem, 1 }, - { "wxListCtrl_EnsureVisible", _wrap_wxListCtrl_EnsureVisible, 1 }, - { "wxListCtrl_ClearAll", _wrap_wxListCtrl_ClearAll, 1 }, - { "wxListCtrl_DeleteAllColumns", _wrap_wxListCtrl_DeleteAllColumns, 1 }, - { "wxListCtrl_DeleteColumn", _wrap_wxListCtrl_DeleteColumn, 1 }, - { "wxListCtrl_DeleteAllItems", _wrap_wxListCtrl_DeleteAllItems, 1 }, - { "wxListCtrl_DeleteItem", _wrap_wxListCtrl_DeleteItem, 1 }, - { "wxListCtrl_Arrange", _wrap_wxListCtrl_Arrange, 1 }, - { "new_wxListCtrl", _wrap_new_wxListCtrl, 1 }, - { "wxListEvent_m_item_get", _wrap_wxListEvent_m_item_get, 1 }, - { "wxListEvent_m_item_set", _wrap_wxListEvent_m_item_set, 1 }, - { "wxListEvent_m_pointDrag_get", _wrap_wxListEvent_m_pointDrag_get, 1 }, - { "wxListEvent_m_pointDrag_set", _wrap_wxListEvent_m_pointDrag_set, 1 }, - { "wxListEvent_m_cancelled_get", _wrap_wxListEvent_m_cancelled_get, 1 }, - { "wxListEvent_m_cancelled_set", _wrap_wxListEvent_m_cancelled_set, 1 }, - { "wxListEvent_m_col_get", _wrap_wxListEvent_m_col_get, 1 }, - { "wxListEvent_m_col_set", _wrap_wxListEvent_m_col_set, 1 }, - { "wxListEvent_m_oldItemIndex_get", _wrap_wxListEvent_m_oldItemIndex_get, 1 }, - { "wxListEvent_m_oldItemIndex_set", _wrap_wxListEvent_m_oldItemIndex_set, 1 }, - { "wxListEvent_m_itemIndex_get", _wrap_wxListEvent_m_itemIndex_get, 1 }, - { "wxListEvent_m_itemIndex_set", _wrap_wxListEvent_m_itemIndex_set, 1 }, - { "wxListEvent_m_code_get", _wrap_wxListEvent_m_code_get, 1 }, - { "wxListEvent_m_code_set", _wrap_wxListEvent_m_code_set, 1 }, - { "delete_wxListItem", _wrap_delete_wxListItem, 1 }, - { "new_wxListItem", _wrap_new_wxListItem, 1 }, - { "wxListItem_m_width_get", _wrap_wxListItem_m_width_get, 1 }, - { "wxListItem_m_width_set", _wrap_wxListItem_m_width_set, 1 }, - { "wxListItem_m_format_get", _wrap_wxListItem_m_format_get, 1 }, - { "wxListItem_m_format_set", _wrap_wxListItem_m_format_set, 1 }, - { "wxListItem_m_data_get", _wrap_wxListItem_m_data_get, 1 }, - { "wxListItem_m_data_set", _wrap_wxListItem_m_data_set, 1 }, - { "wxListItem_m_image_get", _wrap_wxListItem_m_image_get, 1 }, - { "wxListItem_m_image_set", _wrap_wxListItem_m_image_set, 1 }, - { "wxListItem_m_text_get", _wrap_wxListItem_m_text_get, 1 }, - { "wxListItem_m_text_set", _wrap_wxListItem_m_text_set, 1 }, - { "wxListItem_m_stateMask_get", _wrap_wxListItem_m_stateMask_get, 1 }, - { "wxListItem_m_stateMask_set", _wrap_wxListItem_m_stateMask_set, 1 }, - { "wxListItem_m_state_get", _wrap_wxListItem_m_state_get, 1 }, - { "wxListItem_m_state_set", _wrap_wxListItem_m_state_set, 1 }, - { "wxListItem_m_col_get", _wrap_wxListItem_m_col_get, 1 }, - { "wxListItem_m_col_set", _wrap_wxListItem_m_col_set, 1 }, - { "wxListItem_m_itemId_get", _wrap_wxListItem_m_itemId_get, 1 }, - { "wxListItem_m_itemId_set", _wrap_wxListItem_m_itemId_set, 1 }, - { "wxListItem_m_mask_get", _wrap_wxListItem_m_mask_get, 1 }, - { "wxListItem_m_mask_set", _wrap_wxListItem_m_mask_set, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initcontrols2c)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("controls2c", controls2cMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxLIST_MASK_TEXT", PyInt_FromLong((long) wxLIST_MASK_TEXT)); - PyDict_SetItemString(d,"wxLIST_MASK_IMAGE", PyInt_FromLong((long) wxLIST_MASK_IMAGE)); - PyDict_SetItemString(d,"wxLIST_MASK_DATA", PyInt_FromLong((long) wxLIST_MASK_DATA)); - PyDict_SetItemString(d,"wxLIST_MASK_WIDTH", PyInt_FromLong((long) wxLIST_MASK_WIDTH)); - PyDict_SetItemString(d,"wxLIST_MASK_FORMAT", PyInt_FromLong((long) wxLIST_MASK_FORMAT)); - PyDict_SetItemString(d,"wxLIST_STATE_DONTCARE", PyInt_FromLong((long) wxLIST_STATE_DONTCARE)); - PyDict_SetItemString(d,"wxLIST_STATE_DROPHILITED", PyInt_FromLong((long) wxLIST_STATE_DROPHILITED)); - PyDict_SetItemString(d,"wxLIST_STATE_FOCUSED", PyInt_FromLong((long) wxLIST_STATE_FOCUSED)); - PyDict_SetItemString(d,"wxLIST_STATE_SELECTED", PyInt_FromLong((long) wxLIST_STATE_SELECTED)); - PyDict_SetItemString(d,"wxLIST_STATE_CUT", PyInt_FromLong((long) wxLIST_STATE_CUT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ABOVE", PyInt_FromLong((long) wxLIST_HITTEST_ABOVE)); - PyDict_SetItemString(d,"wxLIST_HITTEST_BELOW", PyInt_FromLong((long) wxLIST_HITTEST_BELOW)); - PyDict_SetItemString(d,"wxLIST_HITTEST_NOWHERE", PyInt_FromLong((long) wxLIST_HITTEST_NOWHERE)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMICON", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMICON)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMLABEL", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMLABEL)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMRIGHT", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMRIGHT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMSTATEICON", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMSTATEICON)); - PyDict_SetItemString(d,"wxLIST_HITTEST_TOLEFT", PyInt_FromLong((long) wxLIST_HITTEST_TOLEFT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_TORIGHT", PyInt_FromLong((long) wxLIST_HITTEST_TORIGHT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEM", PyInt_FromLong((long) wxLIST_HITTEST_ONITEM)); - PyDict_SetItemString(d,"wxLIST_NEXT_ABOVE", PyInt_FromLong((long) wxLIST_NEXT_ABOVE)); - PyDict_SetItemString(d,"wxLIST_NEXT_ALL", PyInt_FromLong((long) wxLIST_NEXT_ALL)); - PyDict_SetItemString(d,"wxLIST_NEXT_BELOW", PyInt_FromLong((long) wxLIST_NEXT_BELOW)); - PyDict_SetItemString(d,"wxLIST_NEXT_LEFT", PyInt_FromLong((long) wxLIST_NEXT_LEFT)); - PyDict_SetItemString(d,"wxLIST_NEXT_RIGHT", PyInt_FromLong((long) wxLIST_NEXT_RIGHT)); - PyDict_SetItemString(d,"wxLIST_ALIGN_DEFAULT", PyInt_FromLong((long) wxLIST_ALIGN_DEFAULT)); - PyDict_SetItemString(d,"wxLIST_ALIGN_LEFT", PyInt_FromLong((long) wxLIST_ALIGN_LEFT)); - PyDict_SetItemString(d,"wxLIST_ALIGN_TOP", PyInt_FromLong((long) wxLIST_ALIGN_TOP)); - PyDict_SetItemString(d,"wxLIST_ALIGN_SNAP_TO_GRID", PyInt_FromLong((long) wxLIST_ALIGN_SNAP_TO_GRID)); - PyDict_SetItemString(d,"wxLIST_FORMAT_LEFT", PyInt_FromLong((long) wxLIST_FORMAT_LEFT)); - PyDict_SetItemString(d,"wxLIST_FORMAT_RIGHT", PyInt_FromLong((long) wxLIST_FORMAT_RIGHT)); - PyDict_SetItemString(d,"wxLIST_FORMAT_CENTRE", PyInt_FromLong((long) wxLIST_FORMAT_CENTRE)); - PyDict_SetItemString(d,"wxLIST_FORMAT_CENTER", PyInt_FromLong((long) wxLIST_FORMAT_CENTER)); - PyDict_SetItemString(d,"wxLIST_AUTOSIZE", PyInt_FromLong((long) wxLIST_AUTOSIZE)); - PyDict_SetItemString(d,"wxLIST_AUTOSIZE_USEHEADER", PyInt_FromLong((long) wxLIST_AUTOSIZE_USEHEADER)); - PyDict_SetItemString(d,"wxLIST_RECT_BOUNDS", PyInt_FromLong((long) wxLIST_RECT_BOUNDS)); - PyDict_SetItemString(d,"wxLIST_RECT_ICON", PyInt_FromLong((long) wxLIST_RECT_ICON)); - PyDict_SetItemString(d,"wxLIST_RECT_LABEL", PyInt_FromLong((long) wxLIST_RECT_LABEL)); - PyDict_SetItemString(d,"wxLIST_FIND_UP", PyInt_FromLong((long) wxLIST_FIND_UP)); - PyDict_SetItemString(d,"wxLIST_FIND_DOWN", PyInt_FromLong((long) wxLIST_FIND_DOWN)); - PyDict_SetItemString(d,"wxLIST_FIND_LEFT", PyInt_FromLong((long) wxLIST_FIND_LEFT)); - PyDict_SetItemString(d,"wxLIST_FIND_RIGHT", PyInt_FromLong((long) wxLIST_FIND_RIGHT)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxPyTreeItemData","_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxListEvent","_class_wxListEvent",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxListItem","_class_wxListItem",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxTreeEvent","_wxTreeEvent",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_wxListCtrl","_class_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxTreeItemId","_class_wxTreeItemId",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxListItem","_wxListItem",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxListEvent","_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_wxPyTreeItemData","_class_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxTreeItemId","_wxTreeItemId",0); - SWIG_RegisterMapping("_wxTreeCtrl","_class_wxTreeCtrl",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxListCtrl","_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxTreeEvent","_class_wxTreeEvent",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/gtk/controls2.py b/utils/wxPython/src/gtk/controls2.py deleted file mode 100644 index 9b1ba88428..0000000000 --- a/utils/wxPython/src/gtk/controls2.py +++ /dev/null @@ -1,673 +0,0 @@ -# This file was created automatically by SWIG. -import controls2c - -from misc import * - -from windows import * - -from gdi import * - -from events import * - -from controls import * -import wx -class wxListItemPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - controls2c.delete_wxListItem(self.this) - def __setattr__(self,name,value): - if name == "m_mask" : - controls2c.wxListItem_m_mask_set(self.this,value) - return - if name == "m_itemId" : - controls2c.wxListItem_m_itemId_set(self.this,value) - return - if name == "m_col" : - controls2c.wxListItem_m_col_set(self.this,value) - return - if name == "m_state" : - controls2c.wxListItem_m_state_set(self.this,value) - return - if name == "m_stateMask" : - controls2c.wxListItem_m_stateMask_set(self.this,value) - return - if name == "m_text" : - controls2c.wxListItem_m_text_set(self.this,value) - return - if name == "m_image" : - controls2c.wxListItem_m_image_set(self.this,value) - return - if name == "m_data" : - controls2c.wxListItem_m_data_set(self.this,value) - return - if name == "m_format" : - controls2c.wxListItem_m_format_set(self.this,value) - return - if name == "m_width" : - controls2c.wxListItem_m_width_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_mask" : - return controls2c.wxListItem_m_mask_get(self.this) - if name == "m_itemId" : - return controls2c.wxListItem_m_itemId_get(self.this) - if name == "m_col" : - return controls2c.wxListItem_m_col_get(self.this) - if name == "m_state" : - return controls2c.wxListItem_m_state_get(self.this) - if name == "m_stateMask" : - return controls2c.wxListItem_m_stateMask_get(self.this) - if name == "m_text" : - return controls2c.wxListItem_m_text_get(self.this) - if name == "m_image" : - return controls2c.wxListItem_m_image_get(self.this) - if name == "m_data" : - return controls2c.wxListItem_m_data_get(self.this) - if name == "m_format" : - return controls2c.wxListItem_m_format_get(self.this) - if name == "m_width" : - return controls2c.wxListItem_m_width_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" -class wxListItem(wxListItemPtr): - def __init__(self) : - self.this = controls2c.new_wxListItem() - self.thisown = 1 - - - - -class wxListEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __setattr__(self,name,value): - if name == "m_code" : - controls2c.wxListEvent_m_code_set(self.this,value) - return - if name == "m_itemIndex" : - controls2c.wxListEvent_m_itemIndex_set(self.this,value) - return - if name == "m_oldItemIndex" : - controls2c.wxListEvent_m_oldItemIndex_set(self.this,value) - return - if name == "m_col" : - controls2c.wxListEvent_m_col_set(self.this,value) - return - if name == "m_cancelled" : - controls2c.wxListEvent_m_cancelled_set(self.this,value) - return - if name == "m_pointDrag" : - controls2c.wxListEvent_m_pointDrag_set(self.this,value.this) - return - if name == "m_item" : - controls2c.wxListEvent_m_item_set(self.this,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_code" : - return controls2c.wxListEvent_m_code_get(self.this) - if name == "m_itemIndex" : - return controls2c.wxListEvent_m_itemIndex_get(self.this) - if name == "m_oldItemIndex" : - return controls2c.wxListEvent_m_oldItemIndex_get(self.this) - if name == "m_col" : - return controls2c.wxListEvent_m_col_get(self.this) - if name == "m_cancelled" : - return controls2c.wxListEvent_m_cancelled_get(self.this) - if name == "m_pointDrag" : - return wxPointPtr(controls2c.wxListEvent_m_pointDrag_get(self.this)) - if name == "m_item" : - return wxListItemPtr(controls2c.wxListEvent_m_item_get(self.this)) - raise AttributeError,name - def __repr__(self): - return "" -class wxListEvent(wxListEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxListCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Arrange(self,*args): - val = apply(controls2c.wxListCtrl_Arrange,(self.this,)+args) - return val - def DeleteItem(self,arg0): - val = controls2c.wxListCtrl_DeleteItem(self.this,arg0) - return val - def DeleteAllItems(self): - val = controls2c.wxListCtrl_DeleteAllItems(self.this) - return val - def DeleteColumn(self,arg0): - val = controls2c.wxListCtrl_DeleteColumn(self.this,arg0) - return val - def DeleteAllColumns(self): - val = controls2c.wxListCtrl_DeleteAllColumns(self.this) - return val - def ClearAll(self): - val = controls2c.wxListCtrl_ClearAll(self.this) - return val - def EnsureVisible(self,arg0): - val = controls2c.wxListCtrl_EnsureVisible(self.this,arg0) - return val - def FindItem(self,arg0,arg1,*args): - val = apply(controls2c.wxListCtrl_FindItem,(self.this,arg0,arg1,)+args) - return val - def FindItemData(self,arg0,arg1): - val = controls2c.wxListCtrl_FindItemData(self.this,arg0,arg1) - return val - def FindItemAtPos(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_FindItemAtPos(self.this,arg0,arg1.this,arg2) - return val - def GetColumn(self,arg0,arg1): - val = controls2c.wxListCtrl_GetColumn(self.this,arg0,arg1.this) - return val - def GetColumnWidth(self,arg0): - val = controls2c.wxListCtrl_GetColumnWidth(self.this,arg0) - return val - def GetCountPerPage(self): - val = controls2c.wxListCtrl_GetCountPerPage(self.this) - return val - def GetImageList(self,arg0): - val = controls2c.wxListCtrl_GetImageList(self.this,arg0) - val = wxImageListPtr(val) - return val - def GetItemData(self,arg0): - val = controls2c.wxListCtrl_GetItemData(self.this,arg0) - return val - def GetItem(self,arg0): - val = controls2c.wxListCtrl_GetItem(self.this,arg0) - val = wxListItemPtr(val) - val.thisown = 1 - return val - def GetItemPosition(self,arg0): - val = controls2c.wxListCtrl_GetItemPosition(self.this,arg0) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetItemRect(self,arg0,*args): - val = apply(controls2c.wxListCtrl_GetItemRect,(self.this,arg0,)+args) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetItemState(self,arg0,arg1): - val = controls2c.wxListCtrl_GetItemState(self.this,arg0,arg1) - return val - def GetItemCount(self): - val = controls2c.wxListCtrl_GetItemCount(self.this) - return val - def GetItemSpacing(self,arg0): - val = controls2c.wxListCtrl_GetItemSpacing(self.this,arg0) - return val - def GetItemText(self,arg0): - val = controls2c.wxListCtrl_GetItemText(self.this,arg0) - return val - def GetNextItem(self,arg0,*args): - val = apply(controls2c.wxListCtrl_GetNextItem,(self.this,arg0,)+args) - return val - def GetSelectedItemCount(self): - val = controls2c.wxListCtrl_GetSelectedItemCount(self.this) - return val - def GetTopItem(self): - val = controls2c.wxListCtrl_GetTopItem(self.this) - return val - def HitTest(self,arg0): - val = controls2c.wxListCtrl_HitTest(self.this,arg0.this) - return val - def InsertColumnWith(self,arg0,arg1): - val = controls2c.wxListCtrl_InsertColumnWith(self.this,arg0,arg1.this) - return val - def InsertColumn(self,arg0,arg1,*args): - val = apply(controls2c.wxListCtrl_InsertColumn,(self.this,arg0,arg1,)+args) - return val - def InsertItem(self,arg0): - val = controls2c.wxListCtrl_InsertItem(self.this,arg0.this) - return val - def InsertStringItem(self,arg0,arg1): - val = controls2c.wxListCtrl_InsertStringItem(self.this,arg0,arg1) - return val - def InsertImageItem(self,arg0,arg1): - val = controls2c.wxListCtrl_InsertImageItem(self.this,arg0,arg1) - return val - def InsertImageStringItem(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_InsertImageStringItem(self.this,arg0,arg1,arg2) - return val - def ScrollList(self,arg0,arg1): - val = controls2c.wxListCtrl_ScrollList(self.this,arg0,arg1) - return val - def SetBackgroundColour(self,arg0): - val = controls2c.wxListCtrl_SetBackgroundColour(self.this,arg0.this) - return val - def SetColumn(self,arg0,arg1): - val = controls2c.wxListCtrl_SetColumn(self.this,arg0,arg1.this) - return val - def SetColumnWidth(self,arg0,arg1): - val = controls2c.wxListCtrl_SetColumnWidth(self.this,arg0,arg1) - return val - def SetImageList(self,arg0,arg1): - val = controls2c.wxListCtrl_SetImageList(self.this,arg0.this,arg1) - return val - def SetItem(self,arg0): - val = controls2c.wxListCtrl_SetItem(self.this,arg0.this) - return val - def SetStringItem(self,arg0,arg1,arg2,*args): - val = apply(controls2c.wxListCtrl_SetStringItem,(self.this,arg0,arg1,arg2,)+args) - return val - def SetItemData(self,arg0,arg1): - val = controls2c.wxListCtrl_SetItemData(self.this,arg0,arg1) - return val - def SetItemImage(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_SetItemImage(self.this,arg0,arg1,arg2) - return val - def SetItemPosition(self,arg0,arg1): - val = controls2c.wxListCtrl_SetItemPosition(self.this,arg0,arg1.this) - return val - def SetItemState(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_SetItemState(self.this,arg0,arg1,arg2) - return val - def SetItemText(self,arg0,arg1): - val = controls2c.wxListCtrl_SetItemText(self.this,arg0,arg1) - return val - def SetSingleStyle(self,arg0,*args): - val = apply(controls2c.wxListCtrl_SetSingleStyle,(self.this,arg0,)+args) - return val - def SetWindowStyleFlag(self,arg0): - val = controls2c.wxListCtrl_SetWindowStyleFlag(self.this,arg0) - return val - def __repr__(self): - return "" -class wxListCtrl(wxListCtrlPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controls2c.new_wxListCtrl,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTreeItemIdPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - controls2c.delete_wxTreeItemId(self.this) - def IsOk(self): - val = controls2c.wxTreeItemId_IsOk(self.this) - return val - def __repr__(self): - return "" -class wxTreeItemId(wxTreeItemIdPtr): - def __init__(self) : - self.this = controls2c.new_wxTreeItemId() - self.thisown = 1 - - - - -class wxTreeItemDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetData(self): - val = controls2c.wxTreeItemData_GetData(self.this) - return val - def SetData(self,arg0): - val = controls2c.wxTreeItemData_SetData(self.this,arg0) - return val - def GetId(self): - val = controls2c.wxTreeItemData_GetId(self.this) - val = wxTreeItemIdPtr(val) - return val - def SetId(self,arg0): - val = controls2c.wxTreeItemData_SetId(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxTreeItemData(wxTreeItemDataPtr): - def __init__(self,*args) : - self.this = apply(controls2c.new_wxTreeItemData,()+args) - self.thisown = 1 - - - - -class wxTreeEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetItem(self): - val = controls2c.wxTreeEvent_GetItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetOldItem(self): - val = controls2c.wxTreeEvent_GetOldItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetPoint(self): - val = controls2c.wxTreeEvent_GetPoint(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetCode(self): - val = controls2c.wxTreeEvent_GetCode(self.this) - return val - def Veto(self): - val = controls2c.wxTreeEvent_Veto(self.this) - return val - def __repr__(self): - return "" -class wxTreeEvent(wxTreeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxTreeCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCount(self): - val = controls2c.wxTreeCtrl_GetCount(self.this) - return val - def GetIndent(self): - val = controls2c.wxTreeCtrl_GetIndent(self.this) - return val - def SetIndent(self,arg0): - val = controls2c.wxTreeCtrl_SetIndent(self.this,arg0) - return val - def GetImageList(self): - val = controls2c.wxTreeCtrl_GetImageList(self.this) - val = wxImageListPtr(val) - return val - def GetStateImageList(self): - val = controls2c.wxTreeCtrl_GetStateImageList(self.this) - val = wxImageListPtr(val) - return val - def SetImageList(self,arg0): - val = controls2c.wxTreeCtrl_SetImageList(self.this,arg0.this) - return val - def SetStateImageList(self,arg0): - val = controls2c.wxTreeCtrl_SetStateImageList(self.this,arg0.this) - return val - def GetItemText(self,arg0): - val = controls2c.wxTreeCtrl_GetItemText(self.this,arg0.this) - return val - def GetItemImage(self,arg0): - val = controls2c.wxTreeCtrl_GetItemImage(self.this,arg0.this) - return val - def GetItemSelectedImage(self,arg0): - val = controls2c.wxTreeCtrl_GetItemSelectedImage(self.this,arg0.this) - return val - def SetItemText(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemText(self.this,arg0.this,arg1) - return val - def SetItemImage(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemImage(self.this,arg0.this,arg1) - return val - def SetItemSelectedImage(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemSelectedImage(self.this,arg0.this,arg1) - return val - def SetItemHasChildren(self,arg0,*args): - val = apply(controls2c.wxTreeCtrl_SetItemHasChildren,(self.this,arg0.this,)+args) - return val - def GetItemData(self,arg0): - val = controls2c.wxTreeCtrl_GetItemData(self.this,arg0.this) - val = wxTreeItemDataPtr(val) - return val - def SetItemData(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemData(self.this,arg0.this,arg1.this) - return val - def GetPyData(self,arg0): - val = controls2c.wxTreeCtrl_GetPyData(self.this,arg0.this) - return val - def SetPyData(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetPyData(self.this,arg0.this,arg1) - return val - def IsVisible(self,arg0): - val = controls2c.wxTreeCtrl_IsVisible(self.this,arg0.this) - return val - def ItemHasChildren(self,arg0): - val = controls2c.wxTreeCtrl_ItemHasChildren(self.this,arg0.this) - return val - def IsExpanded(self,arg0): - val = controls2c.wxTreeCtrl_IsExpanded(self.this,arg0.this) - return val - def IsSelected(self,arg0): - val = controls2c.wxTreeCtrl_IsSelected(self.this,arg0.this) - return val - def GetRootItem(self): - val = controls2c.wxTreeCtrl_GetRootItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetSelection(self): - val = controls2c.wxTreeCtrl_GetSelection(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetParent(self,arg0): - val = controls2c.wxTreeCtrl_GetParent(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetFirstChild(self,arg0,arg1): - val = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - return val - def GetNextChild(self,arg0,arg1): - val = controls2c.wxTreeCtrl_GetNextChild(self.this,arg0.this,arg1) - return val - def GetNextSibling(self,arg0): - val = controls2c.wxTreeCtrl_GetNextSibling(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetPrevSibling(self,arg0): - val = controls2c.wxTreeCtrl_GetPrevSibling(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetFirstVisibleItem(self): - val = controls2c.wxTreeCtrl_GetFirstVisibleItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetNextVisible(self,arg0): - val = controls2c.wxTreeCtrl_GetNextVisible(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetPrevVisible(self,arg0): - val = controls2c.wxTreeCtrl_GetPrevVisible(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def AddRoot(self,arg0,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_AddRoot,(self.this,arg0,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def PrependItem(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_PrependItem,(self.this,arg0.this,arg1,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def InsertItem(self,arg0,arg1,arg2,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_InsertItem,(self.this,arg0.this,arg1.this,arg2,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def AppendItem(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_AppendItem,(self.this,arg0.this,arg1,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def Delete(self,arg0): - val = controls2c.wxTreeCtrl_Delete(self.this,arg0.this) - return val - def DeleteChildren(self,arg0): - val = controls2c.wxTreeCtrl_DeleteChildren(self.this,arg0.this) - return val - def DeleteAllItems(self): - val = controls2c.wxTreeCtrl_DeleteAllItems(self.this) - return val - def Expand(self,arg0): - val = controls2c.wxTreeCtrl_Expand(self.this,arg0.this) - return val - def Collapse(self,arg0): - val = controls2c.wxTreeCtrl_Collapse(self.this,arg0.this) - return val - def CollapseAndReset(self,arg0): - val = controls2c.wxTreeCtrl_CollapseAndReset(self.this,arg0.this) - return val - def Toggle(self,arg0): - val = controls2c.wxTreeCtrl_Toggle(self.this,arg0.this) - return val - def Unselect(self): - val = controls2c.wxTreeCtrl_Unselect(self.this) - return val - def SelectItem(self,arg0): - val = controls2c.wxTreeCtrl_SelectItem(self.this,arg0.this) - return val - def EnsureVisible(self,arg0): - val = controls2c.wxTreeCtrl_EnsureVisible(self.this,arg0.this) - return val - def ScrollTo(self,arg0): - val = controls2c.wxTreeCtrl_ScrollTo(self.this,arg0.this) - return val - def EditLabel(self,arg0): - val = controls2c.wxTreeCtrl_EditLabel(self.this,arg0.this) - val = wxTextCtrlPtr(val) - return val - def GetEditControl(self): - val = controls2c.wxTreeCtrl_GetEditControl(self.this) - val = wxTextCtrlPtr(val) - return val - def EndEditLabel(self,arg0,*args): - val = apply(controls2c.wxTreeCtrl_EndEditLabel,(self.this,arg0.this,)+args) - return val - def SetItemBold(self,arg0,*args): - val = apply(controls2c.wxTreeCtrl_SetItemBold,(self.this,arg0.this,)+args) - return val - def IsBold(self,arg0): - val = controls2c.wxTreeCtrl_IsBold(self.this,arg0.this) - return val - def HitTest(self,arg0): - val = controls2c.wxTreeCtrl_HitTest(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" - - # Redefine a couple methods that SWIG gets a bit confused on... - def GetFirstChild(self,arg0,arg1): - val1, val2 = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - def GetNextChild(self,arg0,arg1): - val1, val2 = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - -class wxTreeCtrl(wxTreeCtrlPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controls2c.new_wxTreeCtrl,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxLIST_MASK_TEXT = controls2c.wxLIST_MASK_TEXT -wxLIST_MASK_IMAGE = controls2c.wxLIST_MASK_IMAGE -wxLIST_MASK_DATA = controls2c.wxLIST_MASK_DATA -wxLIST_MASK_WIDTH = controls2c.wxLIST_MASK_WIDTH -wxLIST_MASK_FORMAT = controls2c.wxLIST_MASK_FORMAT -wxLIST_STATE_DONTCARE = controls2c.wxLIST_STATE_DONTCARE -wxLIST_STATE_DROPHILITED = controls2c.wxLIST_STATE_DROPHILITED -wxLIST_STATE_FOCUSED = controls2c.wxLIST_STATE_FOCUSED -wxLIST_STATE_SELECTED = controls2c.wxLIST_STATE_SELECTED -wxLIST_STATE_CUT = controls2c.wxLIST_STATE_CUT -wxLIST_HITTEST_ABOVE = controls2c.wxLIST_HITTEST_ABOVE -wxLIST_HITTEST_BELOW = controls2c.wxLIST_HITTEST_BELOW -wxLIST_HITTEST_NOWHERE = controls2c.wxLIST_HITTEST_NOWHERE -wxLIST_HITTEST_ONITEMICON = controls2c.wxLIST_HITTEST_ONITEMICON -wxLIST_HITTEST_ONITEMLABEL = controls2c.wxLIST_HITTEST_ONITEMLABEL -wxLIST_HITTEST_ONITEMRIGHT = controls2c.wxLIST_HITTEST_ONITEMRIGHT -wxLIST_HITTEST_ONITEMSTATEICON = controls2c.wxLIST_HITTEST_ONITEMSTATEICON -wxLIST_HITTEST_TOLEFT = controls2c.wxLIST_HITTEST_TOLEFT -wxLIST_HITTEST_TORIGHT = controls2c.wxLIST_HITTEST_TORIGHT -wxLIST_HITTEST_ONITEM = controls2c.wxLIST_HITTEST_ONITEM -wxLIST_NEXT_ABOVE = controls2c.wxLIST_NEXT_ABOVE -wxLIST_NEXT_ALL = controls2c.wxLIST_NEXT_ALL -wxLIST_NEXT_BELOW = controls2c.wxLIST_NEXT_BELOW -wxLIST_NEXT_LEFT = controls2c.wxLIST_NEXT_LEFT -wxLIST_NEXT_RIGHT = controls2c.wxLIST_NEXT_RIGHT -wxLIST_ALIGN_DEFAULT = controls2c.wxLIST_ALIGN_DEFAULT -wxLIST_ALIGN_LEFT = controls2c.wxLIST_ALIGN_LEFT -wxLIST_ALIGN_TOP = controls2c.wxLIST_ALIGN_TOP -wxLIST_ALIGN_SNAP_TO_GRID = controls2c.wxLIST_ALIGN_SNAP_TO_GRID -wxLIST_FORMAT_LEFT = controls2c.wxLIST_FORMAT_LEFT -wxLIST_FORMAT_RIGHT = controls2c.wxLIST_FORMAT_RIGHT -wxLIST_FORMAT_CENTRE = controls2c.wxLIST_FORMAT_CENTRE -wxLIST_FORMAT_CENTER = controls2c.wxLIST_FORMAT_CENTER -wxLIST_AUTOSIZE = controls2c.wxLIST_AUTOSIZE -wxLIST_AUTOSIZE_USEHEADER = controls2c.wxLIST_AUTOSIZE_USEHEADER -wxLIST_RECT_BOUNDS = controls2c.wxLIST_RECT_BOUNDS -wxLIST_RECT_ICON = controls2c.wxLIST_RECT_ICON -wxLIST_RECT_LABEL = controls2c.wxLIST_RECT_LABEL -wxLIST_FIND_UP = controls2c.wxLIST_FIND_UP -wxLIST_FIND_DOWN = controls2c.wxLIST_FIND_DOWN -wxLIST_FIND_LEFT = controls2c.wxLIST_FIND_LEFT -wxLIST_FIND_RIGHT = controls2c.wxLIST_FIND_RIGHT diff --git a/utils/wxPython/src/gtk/dummy b/utils/wxPython/src/gtk/dummy deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/wxPython/src/gtk/events.cpp b/utils/wxPython/src/gtk/events.cpp deleted file mode 100644 index 19fc1d1436..0000000000 --- a/utils/wxPython/src/gtk/events.cpp +++ /dev/null @@ -1,3348 +0,0 @@ -/* - * FILE : gtk/events.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initeventsc - -#define SWIG_name "eventsc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define wxEvent_GetEventObject(_swigobj) (_swigobj->GetEventObject()) -static PyObject *_wrap_wxEvent_GetEventObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetEventObject",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetEventObject. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxObject *)wxEvent_GetEventObject(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxEvent_GetEventType(_swigobj) (_swigobj->GetEventType()) -static PyObject *_wrap_wxEvent_GetEventType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEventType _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetEventType",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetEventType. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxEventType )wxEvent_GetEventType(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxEvent_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxEvent_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetId. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxEvent_GetId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxEvent_GetSkipped(_swigobj) (_swigobj->GetSkipped()) -static PyObject *_wrap_wxEvent_GetSkipped(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetSkipped",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetSkipped. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxEvent_GetSkipped(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxEvent_GetTimestamp(_swigobj) (_swigobj->GetTimestamp()) -static PyObject *_wrap_wxEvent_GetTimestamp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetTimestamp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetTimestamp. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxEvent_GetTimestamp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxEvent_SetEventObject(_swigobj,_swigarg0) (_swigobj->SetEventObject(_swigarg0)) -static PyObject *_wrap_wxEvent_SetEventObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - wxObject * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxEvent_SetEventObject",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetEventObject. Expected _wxEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxObject_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxEvent_SetEventObject. Expected _wxObject_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetEventObject(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_SetEventType(_swigobj,_swigarg0) (_swigobj->SetEventType(_swigarg0)) -static PyObject *_wrap_wxEvent_SetEventType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - wxEventType _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxEvent_SetEventType",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetEventType. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetEventType(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_SetId(_swigobj,_swigarg0) (_swigobj->SetId(_swigarg0)) -static PyObject *_wrap_wxEvent_SetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxEvent_SetId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetId. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_SetTimestamp(_swigobj,_swigarg0) (_swigobj->SetTimestamp(_swigarg0)) -static PyObject *_wrap_wxEvent_SetTimestamp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxEvent_SetTimestamp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetTimestamp. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetTimestamp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_Skip(_swigobj,_swigarg0) (_swigobj->Skip(_swigarg0)) -static PyObject *_wrap_wxEvent_Skip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxEvent_Skip",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_Skip. Expected _wxEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_Skip(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSizeEventTowxEvent(void *ptr) { - wxSizeEvent *src; - wxEvent *dest; - src = (wxSizeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxSizeEvent_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxSizeEvent_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxSizeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSizeEvent_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSizeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSizeEvent_GetSize. Expected _wxSizeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxSizeEvent_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxCloseEventTowxEvent(void *ptr) { - wxCloseEvent *src; - wxEvent *dest; - src = (wxCloseEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxCloseEvent_SetLoggingOff(_swigobj,_swigarg0) (_swigobj->SetLoggingOff(_swigarg0)) -static PyObject *_wrap_wxCloseEvent_SetLoggingOff(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCloseEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCloseEvent_SetLoggingOff",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_SetLoggingOff. Expected _wxCloseEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCloseEvent_SetLoggingOff(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCloseEvent_GetLoggingOff(_swigobj) (_swigobj->GetLoggingOff()) -static PyObject *_wrap_wxCloseEvent_GetLoggingOff(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCloseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCloseEvent_GetLoggingOff",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_GetLoggingOff. Expected _wxCloseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCloseEvent_GetLoggingOff(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCloseEvent_Veto(_swigobj,_swigarg0) (_swigobj->Veto(_swigarg0)) -static PyObject *_wrap_wxCloseEvent_Veto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCloseEvent * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxCloseEvent_Veto",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_Veto. Expected _wxCloseEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCloseEvent_Veto(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCloseEvent_CanVeto(_swigobj) (_swigobj->CanVeto()) -static PyObject *_wrap_wxCloseEvent_CanVeto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCloseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCloseEvent_CanVeto",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_CanVeto. Expected _wxCloseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCloseEvent_CanVeto(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCloseEvent_GetVeto(_swigobj) (_swigobj->GetVeto()) -static PyObject *_wrap_wxCloseEvent_GetVeto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCloseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCloseEvent_GetVeto",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_GetVeto. Expected _wxCloseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCloseEvent_GetVeto(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCloseEvent_SetCanVeto(_swigobj,_swigarg0) (_swigobj->SetCanVeto(_swigarg0)) -static PyObject *_wrap_wxCloseEvent_SetCanVeto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCloseEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCloseEvent_SetCanVeto",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_SetCanVeto. Expected _wxCloseEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCloseEvent_SetCanVeto(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxCommandEventTowxEvent(void *ptr) { - wxCommandEvent *src; - wxEvent *dest; - src = (wxCommandEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxCommandEvent_Checked(_swigobj) (_swigobj->Checked()) -static PyObject *_wrap_wxCommandEvent_Checked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_Checked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_Checked. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCommandEvent_Checked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCommandEvent_GetExtraLong(_swigobj) (_swigobj->GetExtraLong()) -static PyObject *_wrap_wxCommandEvent_GetExtraLong(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetExtraLong",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetExtraLong. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxCommandEvent_GetExtraLong(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxCommandEvent_GetInt(_swigobj) (_swigobj->GetInt()) -static PyObject *_wrap_wxCommandEvent_GetInt(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetInt",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetInt. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCommandEvent_GetInt(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCommandEvent_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxCommandEvent_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetSelection. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCommandEvent_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCommandEvent_GetString(_swigobj) (_swigobj->GetString()) -static PyObject *_wrap_wxCommandEvent_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetString",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetString. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxCommandEvent_GetString(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxCommandEvent_IsSelection(_swigobj) (_swigobj->IsSelection()) -static PyObject *_wrap_wxCommandEvent_IsSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_IsSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_IsSelection. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCommandEvent_IsSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxScrollEventTowxCommandEvent(void *ptr) { - wxScrollEvent *src; - wxCommandEvent *dest; - src = (wxScrollEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxScrollEventTowxEvent(void *ptr) { - wxScrollEvent *src; - wxEvent *dest; - src = (wxScrollEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxScrollEvent_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxScrollEvent_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollEvent_GetOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollEvent_GetOrientation. Expected _wxScrollEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollEvent_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxScrollEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollEvent_GetPosition. Expected _wxScrollEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollEvent_GetPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxSpinEventTowxScrollEvent(void *ptr) { - wxSpinEvent *src; - wxScrollEvent *dest; - src = (wxSpinEvent *) ptr; - dest = (wxScrollEvent *) src; - return (void *) dest; -} - -static void *SwigwxSpinEventTowxCommandEvent(void *ptr) { - wxSpinEvent *src; - wxCommandEvent *dest; - src = (wxSpinEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxSpinEventTowxEvent(void *ptr) { - wxSpinEvent *src; - wxEvent *dest; - src = (wxSpinEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxMouseEventTowxEvent(void *ptr) { - wxMouseEvent *src; - wxEvent *dest; - src = (wxMouseEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxMouseEvent_IsButton(_swigobj) (_swigobj->IsButton()) -static PyObject *_wrap_wxMouseEvent_IsButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_IsButton",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_IsButton. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_IsButton(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonDown(_swigobj,_swigarg0) (_swigobj->ButtonDown(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMouseEvent_ButtonDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonDClick(_swigobj,_swigarg0) (_swigobj->ButtonDClick(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMouseEvent_ButtonDClick",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonDClick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonUp(_swigobj,_swigarg0) (_swigobj->ButtonUp(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMouseEvent_ButtonUp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonUp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Button(_swigobj,_swigarg0) (_swigobj->Button(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_Button(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMouseEvent_Button",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Button. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Button(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonIsDown(_swigobj,_swigarg0) (_swigobj->ButtonIsDown(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMouseEvent_ButtonIsDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonIsDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ControlDown(_swigobj) (_swigobj->ControlDown()) -static PyObject *_wrap_wxMouseEvent_ControlDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_ControlDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ControlDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ControlDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MetaDown(_swigobj) (_swigobj->MetaDown()) -static PyObject *_wrap_wxMouseEvent_MetaDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MetaDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MetaDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MetaDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_AltDown(_swigobj) (_swigobj->AltDown()) -static PyObject *_wrap_wxMouseEvent_AltDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_AltDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_AltDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_AltDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ShiftDown(_swigobj) (_swigobj->ShiftDown()) -static PyObject *_wrap_wxMouseEvent_ShiftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_ShiftDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ShiftDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ShiftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftDown(_swigobj) (_swigobj->LeftDown()) -static PyObject *_wrap_wxMouseEvent_LeftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleDown(_swigobj) (_swigobj->MiddleDown()) -static PyObject *_wrap_wxMouseEvent_MiddleDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightDown(_swigobj) (_swigobj->RightDown()) -static PyObject *_wrap_wxMouseEvent_RightDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftUp(_swigobj) (_swigobj->LeftUp()) -static PyObject *_wrap_wxMouseEvent_LeftUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftUp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftUp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleUp(_swigobj) (_swigobj->MiddleUp()) -static PyObject *_wrap_wxMouseEvent_MiddleUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleUp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleUp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightUp(_swigobj) (_swigobj->RightUp()) -static PyObject *_wrap_wxMouseEvent_RightUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightUp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightUp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftDClick(_swigobj) (_swigobj->LeftDClick()) -static PyObject *_wrap_wxMouseEvent_LeftDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftDClick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftDClick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleDClick(_swigobj) (_swigobj->MiddleDClick()) -static PyObject *_wrap_wxMouseEvent_MiddleDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleDClick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleDClick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightDClick(_swigobj) (_swigobj->RightDClick()) -static PyObject *_wrap_wxMouseEvent_RightDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightDClick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightDClick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftIsDown(_swigobj) (_swigobj->LeftIsDown()) -static PyObject *_wrap_wxMouseEvent_LeftIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftIsDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftIsDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleIsDown(_swigobj) (_swigobj->MiddleIsDown()) -static PyObject *_wrap_wxMouseEvent_MiddleIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleIsDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleIsDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightIsDown(_swigobj) (_swigobj->RightIsDown()) -static PyObject *_wrap_wxMouseEvent_RightIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightIsDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightIsDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Dragging(_swigobj) (_swigobj->Dragging()) -static PyObject *_wrap_wxMouseEvent_Dragging(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Dragging",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Dragging. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Dragging(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Moving(_swigobj) (_swigobj->Moving()) -static PyObject *_wrap_wxMouseEvent_Moving(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Moving",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Moving. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Moving(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Entering(_swigobj) (_swigobj->Entering()) -static PyObject *_wrap_wxMouseEvent_Entering(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Entering",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Entering. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Entering(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Leaving(_swigobj) (_swigobj->Leaving()) -static PyObject *_wrap_wxMouseEvent_Leaving(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Leaving",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Leaving. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Leaving(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Position(_swigobj,_swigarg0,_swigarg1) (_swigobj->Position(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMouseEvent_Position(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMouseEvent * _arg0; - long * _arg1; - long temp; - long * _arg2; - long temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Position",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Position. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMouseEvent_Position(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxMouseEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxMouseEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetPosition. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxMouseEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMouseEvent_GetLogicalPosition(_swigobj,_swigarg0) (_swigobj->GetLogicalPosition(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_GetLogicalPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxMouseEvent * _arg0; - wxDC * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMouseEvent_GetLogicalPosition",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetLogicalPosition. Expected _wxMouseEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMouseEvent_GetLogicalPosition. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxMouseEvent_GetLogicalPosition(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMouseEvent_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxMouseEvent_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetX. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxMouseEvent_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxMouseEvent_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxMouseEvent_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetY. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxMouseEvent_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static void *SwigwxKeyEventTowxEvent(void *ptr) { - wxKeyEvent *src; - wxEvent *dest; - src = (wxKeyEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxKeyEvent_ControlDown(_swigobj) (_swigobj->ControlDown()) -static PyObject *_wrap_wxKeyEvent_ControlDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_ControlDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_ControlDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_ControlDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_MetaDown(_swigobj) (_swigobj->MetaDown()) -static PyObject *_wrap_wxKeyEvent_MetaDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_MetaDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_MetaDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_MetaDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_AltDown(_swigobj) (_swigobj->AltDown()) -static PyObject *_wrap_wxKeyEvent_AltDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_AltDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_AltDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_AltDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_ShiftDown(_swigobj) (_swigobj->ShiftDown()) -static PyObject *_wrap_wxKeyEvent_ShiftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_ShiftDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_ShiftDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_ShiftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_KeyCode(_swigobj) (_swigobj->KeyCode()) -static PyObject *_wrap_wxKeyEvent_KeyCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_KeyCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_KeyCode. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxKeyEvent_KeyCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static void *SwigwxMoveEventTowxEvent(void *ptr) { - wxMoveEvent *src; - wxEvent *dest; - src = (wxMoveEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxMoveEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxMoveEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxMoveEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMoveEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMoveEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMoveEvent_GetPosition. Expected _wxMoveEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxMoveEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPaintEventTowxEvent(void *ptr) { - wxPaintEvent *src; - wxEvent *dest; - src = (wxPaintEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxEraseEventTowxEvent(void *ptr) { - wxEraseEvent *src; - wxEvent *dest; - src = (wxEraseEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxEraseEvent_GetDC(_swigobj) (_swigobj->GetDC()) -static PyObject *_wrap_wxEraseEvent_GetDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxEraseEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEraseEvent_GetDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEraseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEraseEvent_GetDC. Expected _wxEraseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxEraseEvent_GetDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxFocusEventTowxEvent(void *ptr) { - wxFocusEvent *src; - wxEvent *dest; - src = (wxFocusEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxActivateEventTowxEvent(void *ptr) { - wxActivateEvent *src; - wxEvent *dest; - src = (wxActivateEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxActivateEvent_GetActive(_swigobj) (_swigobj->GetActive()) -static PyObject *_wrap_wxActivateEvent_GetActive(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxActivateEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxActivateEvent_GetActive",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxActivateEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxActivateEvent_GetActive. Expected _wxActivateEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxActivateEvent_GetActive(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxInitDialogEventTowxEvent(void *ptr) { - wxInitDialogEvent *src; - wxEvent *dest; - src = (wxInitDialogEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxMenuEventTowxEvent(void *ptr) { - wxMenuEvent *src; - wxEvent *dest; - src = (wxMenuEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxMenuEvent_GetMenuId(_swigobj) (_swigobj->GetMenuId()) -static PyObject *_wrap_wxMenuEvent_GetMenuId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuEvent_GetMenuId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuEvent_GetMenuId. Expected _wxMenuEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuEvent_GetMenuId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxShowEventTowxEvent(void *ptr) { - wxShowEvent *src; - wxEvent *dest; - src = (wxShowEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxShowEvent_SetShow(_swigobj,_swigarg0) (_swigobj->SetShow(_swigarg0)) -static PyObject *_wrap_wxShowEvent_SetShow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxShowEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxShowEvent_SetShow",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxShowEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShowEvent_SetShow. Expected _wxShowEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxShowEvent_SetShow(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxShowEvent_GetShow(_swigobj) (_swigobj->GetShow()) -static PyObject *_wrap_wxShowEvent_GetShow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxShowEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxShowEvent_GetShow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxShowEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShowEvent_GetShow. Expected _wxShowEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxShowEvent_GetShow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxIconizeEventTowxEvent(void *ptr) { - wxIconizeEvent *src; - wxEvent *dest; - src = (wxIconizeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxMaximizeEventTowxEvent(void *ptr) { - wxMaximizeEvent *src; - wxEvent *dest; - src = (wxMaximizeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxJoystickEventTowxEvent(void *ptr) { - wxJoystickEvent *src; - wxEvent *dest; - src = (wxJoystickEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxJoystickEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxJoystickEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxJoystickEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxJoystickEvent_GetZPosition(_swigobj) (_swigobj->GetZPosition()) -static PyObject *_wrap_wxJoystickEvent_GetZPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetZPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetZPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetZPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_GetButtonState(_swigobj) (_swigobj->GetButtonState()) -static PyObject *_wrap_wxJoystickEvent_GetButtonState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetButtonState",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetButtonState. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetButtonState(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_GetButtonChange(_swigobj) (_swigobj->GetButtonChange()) -static PyObject *_wrap_wxJoystickEvent_GetButtonChange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetButtonChange",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetButtonChange. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetButtonChange(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_GetJoystick(_swigobj) (_swigobj->GetJoystick()) -static PyObject *_wrap_wxJoystickEvent_GetJoystick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetJoystick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetJoystick. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetJoystick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_SetJoystick(_swigobj,_swigarg0) (_swigobj->SetJoystick(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetJoystick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetJoystick",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetJoystick. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetJoystick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetButtonState(_swigobj,_swigarg0) (_swigobj->SetButtonState(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetButtonState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetButtonState",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetButtonState. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetButtonState(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetButtonChange(_swigobj,_swigarg0) (_swigobj->SetButtonChange(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetButtonChange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetButtonChange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetButtonChange. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetButtonChange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetPosition(_swigobj,_swigarg0) (_swigobj->SetPosition(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxJoystickEvent_SetPosition",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxJoystickEvent_SetPosition. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetPosition(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetZPosition(_swigobj,_swigarg0) (_swigobj->SetZPosition(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetZPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetZPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetZPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetZPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_IsButton(_swigobj) (_swigobj->IsButton()) -static PyObject *_wrap_wxJoystickEvent_IsButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_IsButton",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_IsButton. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_IsButton(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_IsMove(_swigobj) (_swigobj->IsMove()) -static PyObject *_wrap_wxJoystickEvent_IsMove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_IsMove",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_IsMove. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_IsMove(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_IsZMove(_swigobj) (_swigobj->IsZMove()) -static PyObject *_wrap_wxJoystickEvent_IsZMove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_IsZMove",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_IsZMove. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_IsZMove(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_ButtonDown(_swigobj,_swigarg0) (_swigobj->ButtonDown(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_ButtonDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - int _arg1 = wxJOY_BUTTON_ANY; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxJoystickEvent_ButtonDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_ButtonDown. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_ButtonDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_ButtonUp(_swigobj,_swigarg0) (_swigobj->ButtonUp(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_ButtonUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - int _arg1 = wxJOY_BUTTON_ANY; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxJoystickEvent_ButtonUp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_ButtonUp. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_ButtonUp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_ButtonIsDown(_swigobj,_swigarg0) (_swigobj->ButtonIsDown(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_ButtonIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - int _arg1 = wxJOY_BUTTON_ANY; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxJoystickEvent_ButtonIsDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_ButtonIsDown. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_ButtonIsDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxDropFilesEventTowxEvent(void *ptr) { - wxDropFilesEvent *src; - wxEvent *dest; - src = (wxDropFilesEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxDropFilesEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxDropFilesEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxDropFilesEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDropFilesEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDropFilesEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDropFilesEvent_GetPosition. Expected _wxDropFilesEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxDropFilesEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDropFilesEvent_GetNumberOfFiles(_swigobj) (_swigobj->GetNumberOfFiles()) -static PyObject *_wrap_wxDropFilesEvent_GetNumberOfFiles(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDropFilesEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDropFilesEvent_GetNumberOfFiles",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDropFilesEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDropFilesEvent_GetNumberOfFiles. Expected _wxDropFilesEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDropFilesEvent_GetNumberOfFiles(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject * wxDropFilesEvent_GetFiles(wxDropFilesEvent *self) { - int count = self->GetNumberOfFiles(); - wxString* files = self->GetFiles(); - PyObject* list = PyList_New(count); - - if (!list) { - PyErr_SetString(PyExc_MemoryError, "Can't allocate list of files!"); - return NULL; - } - - for (int i=0; iRequestMore(_swigarg0)) -static PyObject *_wrap_wxIdleEvent_RequestMore(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIdleEvent * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxIdleEvent_RequestMore",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIdleEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIdleEvent_RequestMore. Expected _wxIdleEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIdleEvent_RequestMore(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIdleEvent_MoreRequested(_swigobj) (_swigobj->MoreRequested()) -static PyObject *_wrap_wxIdleEvent_MoreRequested(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxIdleEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIdleEvent_MoreRequested",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIdleEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIdleEvent_MoreRequested. Expected _wxIdleEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIdleEvent_MoreRequested(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxUpdateUIEventTowxEvent(void *ptr) { - wxUpdateUIEvent *src; - wxEvent *dest; - src = (wxUpdateUIEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxUpdateUIEvent_GetChecked(_swigobj) (_swigobj->GetChecked()) -static PyObject *_wrap_wxUpdateUIEvent_GetChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetChecked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetChecked. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetChecked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetEnabled(_swigobj) (_swigobj->GetEnabled()) -static PyObject *_wrap_wxUpdateUIEvent_GetEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetEnabled. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetText(_swigobj) (_swigobj->GetText()) -static PyObject *_wrap_wxUpdateUIEvent_GetText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetText",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetText. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxUpdateUIEvent_GetText(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxUpdateUIEvent_GetSetText(_swigobj) (_swigobj->GetSetText()) -static PyObject *_wrap_wxUpdateUIEvent_GetSetText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetSetText",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetSetText. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetSetText(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetSetChecked(_swigobj) (_swigobj->GetSetChecked()) -static PyObject *_wrap_wxUpdateUIEvent_GetSetChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetSetChecked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetSetChecked. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetSetChecked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetSetEnabled(_swigobj) (_swigobj->GetSetEnabled()) -static PyObject *_wrap_wxUpdateUIEvent_GetSetEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetSetEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetSetEnabled. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetSetEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_Check(_swigobj,_swigarg0) (_swigobj->Check(_swigarg0)) -static PyObject *_wrap_wxUpdateUIEvent_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxUpdateUIEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxUpdateUIEvent_Check",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_Check. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxUpdateUIEvent_Check(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxUpdateUIEvent_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxUpdateUIEvent_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxUpdateUIEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxUpdateUIEvent_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_Enable. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxUpdateUIEvent_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxUpdateUIEvent_SetText(_swigobj,_swigarg0) (_swigobj->SetText(_swigarg0)) -static PyObject *_wrap_wxUpdateUIEvent_SetText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxUpdateUIEvent * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxUpdateUIEvent_SetText",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_SetText. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxUpdateUIEvent_SetText(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxSysColourChangedEventTowxEvent(void *ptr) { - wxSysColourChangedEvent *src; - wxEvent *dest; - src = (wxSysColourChangedEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxPyEventTowxCommandEvent(void *ptr) { - wxPyEvent *src; - wxCommandEvent *dest; - src = (wxPyEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxPyEventTowxEvent(void *ptr) { - wxPyEvent *src; - wxEvent *dest; - src = (wxPyEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define new_wxPyEvent(_swigarg0,_swigarg1) (new wxPyEvent(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPyEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _result; - wxEventType _arg0 = (wxEVT_NULL); - PyObject * _arg1 = Py_None; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|iO:new_wxPyEvent",&_arg0,&_obj1)) - return NULL; - if (_obj1) -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyEvent *)new_wxPyEvent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyEvent_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPyEvent(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPyEvent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyEvent. Expected _wxPyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyEvent(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyEvent_SetUserData(_swigobj,_swigarg0) (_swigobj->SetUserData(_swigarg0)) -static PyObject *_wrap_wxPyEvent_SetUserData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _arg0; - PyObject * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyEvent_SetUserData",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEvent_SetUserData. Expected _wxPyEvent_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyEvent_SetUserData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyEvent_GetUserData(_swigobj) (_swigobj->GetUserData()) -static PyObject *_wrap_wxPyEvent_GetUserData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyEvent_GetUserData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEvent_GetUserData. Expected _wxPyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxPyEvent_GetUserData(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyMethodDef eventscMethods[] = { - { "wxPyEvent_GetUserData", _wrap_wxPyEvent_GetUserData, 1 }, - { "wxPyEvent_SetUserData", _wrap_wxPyEvent_SetUserData, 1 }, - { "delete_wxPyEvent", _wrap_delete_wxPyEvent, 1 }, - { "new_wxPyEvent", _wrap_new_wxPyEvent, 1 }, - { "wxUpdateUIEvent_SetText", _wrap_wxUpdateUIEvent_SetText, 1 }, - { "wxUpdateUIEvent_Enable", _wrap_wxUpdateUIEvent_Enable, 1 }, - { "wxUpdateUIEvent_Check", _wrap_wxUpdateUIEvent_Check, 1 }, - { "wxUpdateUIEvent_GetSetEnabled", _wrap_wxUpdateUIEvent_GetSetEnabled, 1 }, - { "wxUpdateUIEvent_GetSetChecked", _wrap_wxUpdateUIEvent_GetSetChecked, 1 }, - { "wxUpdateUIEvent_GetSetText", _wrap_wxUpdateUIEvent_GetSetText, 1 }, - { "wxUpdateUIEvent_GetText", _wrap_wxUpdateUIEvent_GetText, 1 }, - { "wxUpdateUIEvent_GetEnabled", _wrap_wxUpdateUIEvent_GetEnabled, 1 }, - { "wxUpdateUIEvent_GetChecked", _wrap_wxUpdateUIEvent_GetChecked, 1 }, - { "wxIdleEvent_MoreRequested", _wrap_wxIdleEvent_MoreRequested, 1 }, - { "wxIdleEvent_RequestMore", _wrap_wxIdleEvent_RequestMore, 1 }, - { "wxDropFilesEvent_GetFiles", _wrap_wxDropFilesEvent_GetFiles, 1 }, - { "wxDropFilesEvent_GetNumberOfFiles", _wrap_wxDropFilesEvent_GetNumberOfFiles, 1 }, - { "wxDropFilesEvent_GetPosition", _wrap_wxDropFilesEvent_GetPosition, 1 }, - { "wxJoystickEvent_ButtonIsDown", _wrap_wxJoystickEvent_ButtonIsDown, 1 }, - { "wxJoystickEvent_ButtonUp", _wrap_wxJoystickEvent_ButtonUp, 1 }, - { "wxJoystickEvent_ButtonDown", _wrap_wxJoystickEvent_ButtonDown, 1 }, - { "wxJoystickEvent_IsZMove", _wrap_wxJoystickEvent_IsZMove, 1 }, - { "wxJoystickEvent_IsMove", _wrap_wxJoystickEvent_IsMove, 1 }, - { "wxJoystickEvent_IsButton", _wrap_wxJoystickEvent_IsButton, 1 }, - { "wxJoystickEvent_SetZPosition", _wrap_wxJoystickEvent_SetZPosition, 1 }, - { "wxJoystickEvent_SetPosition", _wrap_wxJoystickEvent_SetPosition, 1 }, - { "wxJoystickEvent_SetButtonChange", _wrap_wxJoystickEvent_SetButtonChange, 1 }, - { "wxJoystickEvent_SetButtonState", _wrap_wxJoystickEvent_SetButtonState, 1 }, - { "wxJoystickEvent_SetJoystick", _wrap_wxJoystickEvent_SetJoystick, 1 }, - { "wxJoystickEvent_GetJoystick", _wrap_wxJoystickEvent_GetJoystick, 1 }, - { "wxJoystickEvent_GetButtonChange", _wrap_wxJoystickEvent_GetButtonChange, 1 }, - { "wxJoystickEvent_GetButtonState", _wrap_wxJoystickEvent_GetButtonState, 1 }, - { "wxJoystickEvent_GetZPosition", _wrap_wxJoystickEvent_GetZPosition, 1 }, - { "wxJoystickEvent_GetPosition", _wrap_wxJoystickEvent_GetPosition, 1 }, - { "wxShowEvent_GetShow", _wrap_wxShowEvent_GetShow, 1 }, - { "wxShowEvent_SetShow", _wrap_wxShowEvent_SetShow, 1 }, - { "wxMenuEvent_GetMenuId", _wrap_wxMenuEvent_GetMenuId, 1 }, - { "wxActivateEvent_GetActive", _wrap_wxActivateEvent_GetActive, 1 }, - { "wxEraseEvent_GetDC", _wrap_wxEraseEvent_GetDC, 1 }, - { "wxMoveEvent_GetPosition", _wrap_wxMoveEvent_GetPosition, 1 }, - { "wxKeyEvent_KeyCode", _wrap_wxKeyEvent_KeyCode, 1 }, - { "wxKeyEvent_ShiftDown", _wrap_wxKeyEvent_ShiftDown, 1 }, - { "wxKeyEvent_AltDown", _wrap_wxKeyEvent_AltDown, 1 }, - { "wxKeyEvent_MetaDown", _wrap_wxKeyEvent_MetaDown, 1 }, - { "wxKeyEvent_ControlDown", _wrap_wxKeyEvent_ControlDown, 1 }, - { "wxMouseEvent_GetY", _wrap_wxMouseEvent_GetY, 1 }, - { "wxMouseEvent_GetX", _wrap_wxMouseEvent_GetX, 1 }, - { "wxMouseEvent_GetLogicalPosition", _wrap_wxMouseEvent_GetLogicalPosition, 1 }, - { "wxMouseEvent_GetPosition", _wrap_wxMouseEvent_GetPosition, 1 }, - { "wxMouseEvent_Position", _wrap_wxMouseEvent_Position, 1 }, - { "wxMouseEvent_Leaving", _wrap_wxMouseEvent_Leaving, 1 }, - { "wxMouseEvent_Entering", _wrap_wxMouseEvent_Entering, 1 }, - { "wxMouseEvent_Moving", _wrap_wxMouseEvent_Moving, 1 }, - { "wxMouseEvent_Dragging", _wrap_wxMouseEvent_Dragging, 1 }, - { "wxMouseEvent_RightIsDown", _wrap_wxMouseEvent_RightIsDown, 1 }, - { "wxMouseEvent_MiddleIsDown", _wrap_wxMouseEvent_MiddleIsDown, 1 }, - { "wxMouseEvent_LeftIsDown", _wrap_wxMouseEvent_LeftIsDown, 1 }, - { "wxMouseEvent_RightDClick", _wrap_wxMouseEvent_RightDClick, 1 }, - { "wxMouseEvent_MiddleDClick", _wrap_wxMouseEvent_MiddleDClick, 1 }, - { "wxMouseEvent_LeftDClick", _wrap_wxMouseEvent_LeftDClick, 1 }, - { "wxMouseEvent_RightUp", _wrap_wxMouseEvent_RightUp, 1 }, - { "wxMouseEvent_MiddleUp", _wrap_wxMouseEvent_MiddleUp, 1 }, - { "wxMouseEvent_LeftUp", _wrap_wxMouseEvent_LeftUp, 1 }, - { "wxMouseEvent_RightDown", _wrap_wxMouseEvent_RightDown, 1 }, - { "wxMouseEvent_MiddleDown", _wrap_wxMouseEvent_MiddleDown, 1 }, - { "wxMouseEvent_LeftDown", _wrap_wxMouseEvent_LeftDown, 1 }, - { "wxMouseEvent_ShiftDown", _wrap_wxMouseEvent_ShiftDown, 1 }, - { "wxMouseEvent_AltDown", _wrap_wxMouseEvent_AltDown, 1 }, - { "wxMouseEvent_MetaDown", _wrap_wxMouseEvent_MetaDown, 1 }, - { "wxMouseEvent_ControlDown", _wrap_wxMouseEvent_ControlDown, 1 }, - { "wxMouseEvent_ButtonIsDown", _wrap_wxMouseEvent_ButtonIsDown, 1 }, - { "wxMouseEvent_Button", _wrap_wxMouseEvent_Button, 1 }, - { "wxMouseEvent_ButtonUp", _wrap_wxMouseEvent_ButtonUp, 1 }, - { "wxMouseEvent_ButtonDClick", _wrap_wxMouseEvent_ButtonDClick, 1 }, - { "wxMouseEvent_ButtonDown", _wrap_wxMouseEvent_ButtonDown, 1 }, - { "wxMouseEvent_IsButton", _wrap_wxMouseEvent_IsButton, 1 }, - { "wxScrollEvent_GetPosition", _wrap_wxScrollEvent_GetPosition, 1 }, - { "wxScrollEvent_GetOrientation", _wrap_wxScrollEvent_GetOrientation, 1 }, - { "wxCommandEvent_IsSelection", _wrap_wxCommandEvent_IsSelection, 1 }, - { "wxCommandEvent_GetString", _wrap_wxCommandEvent_GetString, 1 }, - { "wxCommandEvent_GetSelection", _wrap_wxCommandEvent_GetSelection, 1 }, - { "wxCommandEvent_GetInt", _wrap_wxCommandEvent_GetInt, 1 }, - { "wxCommandEvent_GetExtraLong", _wrap_wxCommandEvent_GetExtraLong, 1 }, - { "wxCommandEvent_Checked", _wrap_wxCommandEvent_Checked, 1 }, - { "wxCloseEvent_SetCanVeto", _wrap_wxCloseEvent_SetCanVeto, 1 }, - { "wxCloseEvent_GetVeto", _wrap_wxCloseEvent_GetVeto, 1 }, - { "wxCloseEvent_CanVeto", _wrap_wxCloseEvent_CanVeto, 1 }, - { "wxCloseEvent_Veto", _wrap_wxCloseEvent_Veto, 1 }, - { "wxCloseEvent_GetLoggingOff", _wrap_wxCloseEvent_GetLoggingOff, 1 }, - { "wxCloseEvent_SetLoggingOff", _wrap_wxCloseEvent_SetLoggingOff, 1 }, - { "wxSizeEvent_GetSize", _wrap_wxSizeEvent_GetSize, 1 }, - { "wxEvent_Skip", _wrap_wxEvent_Skip, 1 }, - { "wxEvent_SetTimestamp", _wrap_wxEvent_SetTimestamp, 1 }, - { "wxEvent_SetId", _wrap_wxEvent_SetId, 1 }, - { "wxEvent_SetEventType", _wrap_wxEvent_SetEventType, 1 }, - { "wxEvent_SetEventObject", _wrap_wxEvent_SetEventObject, 1 }, - { "wxEvent_GetTimestamp", _wrap_wxEvent_GetTimestamp, 1 }, - { "wxEvent_GetSkipped", _wrap_wxEvent_GetSkipped, 1 }, - { "wxEvent_GetId", _wrap_wxEvent_GetId, 1 }, - { "wxEvent_GetEventType", _wrap_wxEvent_GetEventType, 1 }, - { "wxEvent_GetEventObject", _wrap_wxEvent_GetEventObject, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initeventsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("eventsc", eventscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); -} diff --git a/utils/wxPython/src/gtk/events.py b/utils/wxPython/src/gtk/events.py deleted file mode 100644 index 40699659ba..0000000000 --- a/utils/wxPython/src/gtk/events.py +++ /dev/null @@ -1,638 +0,0 @@ -# This file was created automatically by SWIG. -import eventsc - -from misc import * -class wxEventPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetEventObject(self): - val = eventsc.wxEvent_GetEventObject(self.this) - return val - def GetEventType(self): - val = eventsc.wxEvent_GetEventType(self.this) - return val - def GetId(self): - val = eventsc.wxEvent_GetId(self.this) - return val - def GetSkipped(self): - val = eventsc.wxEvent_GetSkipped(self.this) - return val - def GetTimestamp(self): - val = eventsc.wxEvent_GetTimestamp(self.this) - return val - def SetEventObject(self,arg0): - val = eventsc.wxEvent_SetEventObject(self.this,arg0) - return val - def SetEventType(self,arg0): - val = eventsc.wxEvent_SetEventType(self.this,arg0) - return val - def SetId(self,arg0): - val = eventsc.wxEvent_SetId(self.this,arg0) - return val - def SetTimestamp(self,arg0): - val = eventsc.wxEvent_SetTimestamp(self.this,arg0) - return val - def Skip(self,*args): - val = apply(eventsc.wxEvent_Skip,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxEvent(wxEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSizeEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSize(self): - val = eventsc.wxSizeEvent_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" -class wxSizeEvent(wxSizeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxCloseEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetLoggingOff(self,arg0): - val = eventsc.wxCloseEvent_SetLoggingOff(self.this,arg0) - return val - def GetLoggingOff(self): - val = eventsc.wxCloseEvent_GetLoggingOff(self.this) - return val - def Veto(self,*args): - val = apply(eventsc.wxCloseEvent_Veto,(self.this,)+args) - return val - def CanVeto(self): - val = eventsc.wxCloseEvent_CanVeto(self.this) - return val - def GetVeto(self): - val = eventsc.wxCloseEvent_GetVeto(self.this) - return val - def SetCanVeto(self,arg0): - val = eventsc.wxCloseEvent_SetCanVeto(self.this,arg0) - return val - def __repr__(self): - return "" -class wxCloseEvent(wxCloseEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxCommandEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Checked(self): - val = eventsc.wxCommandEvent_Checked(self.this) - return val - def GetExtraLong(self): - val = eventsc.wxCommandEvent_GetExtraLong(self.this) - return val - def GetInt(self): - val = eventsc.wxCommandEvent_GetInt(self.this) - return val - def GetSelection(self): - val = eventsc.wxCommandEvent_GetSelection(self.this) - return val - def GetString(self): - val = eventsc.wxCommandEvent_GetString(self.this) - return val - def IsSelection(self): - val = eventsc.wxCommandEvent_IsSelection(self.this) - return val - def __repr__(self): - return "" -class wxCommandEvent(wxCommandEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxScrollEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetOrientation(self): - val = eventsc.wxScrollEvent_GetOrientation(self.this) - return val - def GetPosition(self): - val = eventsc.wxScrollEvent_GetPosition(self.this) - return val - def __repr__(self): - return "" -class wxScrollEvent(wxScrollEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSpinEventPtr(wxScrollEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxSpinEvent(wxSpinEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMouseEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsButton(self): - val = eventsc.wxMouseEvent_IsButton(self.this) - return val - def ButtonDown(self,*args): - val = apply(eventsc.wxMouseEvent_ButtonDown,(self.this,)+args) - return val - def ButtonDClick(self,*args): - val = apply(eventsc.wxMouseEvent_ButtonDClick,(self.this,)+args) - return val - def ButtonUp(self,*args): - val = apply(eventsc.wxMouseEvent_ButtonUp,(self.this,)+args) - return val - def Button(self,arg0): - val = eventsc.wxMouseEvent_Button(self.this,arg0) - return val - def ButtonIsDown(self,arg0): - val = eventsc.wxMouseEvent_ButtonIsDown(self.this,arg0) - return val - def ControlDown(self): - val = eventsc.wxMouseEvent_ControlDown(self.this) - return val - def MetaDown(self): - val = eventsc.wxMouseEvent_MetaDown(self.this) - return val - def AltDown(self): - val = eventsc.wxMouseEvent_AltDown(self.this) - return val - def ShiftDown(self): - val = eventsc.wxMouseEvent_ShiftDown(self.this) - return val - def LeftDown(self): - val = eventsc.wxMouseEvent_LeftDown(self.this) - return val - def MiddleDown(self): - val = eventsc.wxMouseEvent_MiddleDown(self.this) - return val - def RightDown(self): - val = eventsc.wxMouseEvent_RightDown(self.this) - return val - def LeftUp(self): - val = eventsc.wxMouseEvent_LeftUp(self.this) - return val - def MiddleUp(self): - val = eventsc.wxMouseEvent_MiddleUp(self.this) - return val - def RightUp(self): - val = eventsc.wxMouseEvent_RightUp(self.this) - return val - def LeftDClick(self): - val = eventsc.wxMouseEvent_LeftDClick(self.this) - return val - def MiddleDClick(self): - val = eventsc.wxMouseEvent_MiddleDClick(self.this) - return val - def RightDClick(self): - val = eventsc.wxMouseEvent_RightDClick(self.this) - return val - def LeftIsDown(self): - val = eventsc.wxMouseEvent_LeftIsDown(self.this) - return val - def MiddleIsDown(self): - val = eventsc.wxMouseEvent_MiddleIsDown(self.this) - return val - def RightIsDown(self): - val = eventsc.wxMouseEvent_RightIsDown(self.this) - return val - def Dragging(self): - val = eventsc.wxMouseEvent_Dragging(self.this) - return val - def Moving(self): - val = eventsc.wxMouseEvent_Moving(self.this) - return val - def Entering(self): - val = eventsc.wxMouseEvent_Entering(self.this) - return val - def Leaving(self): - val = eventsc.wxMouseEvent_Leaving(self.this) - return val - def Position(self): - val = eventsc.wxMouseEvent_Position(self.this) - return val - def GetPosition(self): - val = eventsc.wxMouseEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetLogicalPosition(self,arg0): - val = eventsc.wxMouseEvent_GetLogicalPosition(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetX(self): - val = eventsc.wxMouseEvent_GetX(self.this) - return val - def GetY(self): - val = eventsc.wxMouseEvent_GetY(self.this) - return val - def __repr__(self): - return "" -class wxMouseEvent(wxMouseEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxKeyEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ControlDown(self): - val = eventsc.wxKeyEvent_ControlDown(self.this) - return val - def MetaDown(self): - val = eventsc.wxKeyEvent_MetaDown(self.this) - return val - def AltDown(self): - val = eventsc.wxKeyEvent_AltDown(self.this) - return val - def ShiftDown(self): - val = eventsc.wxKeyEvent_ShiftDown(self.this) - return val - def KeyCode(self): - val = eventsc.wxKeyEvent_KeyCode(self.this) - return val - def __repr__(self): - return "" -class wxKeyEvent(wxKeyEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMoveEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPosition(self): - val = eventsc.wxMoveEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" -class wxMoveEvent(wxMoveEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxPaintEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPaintEvent(wxPaintEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxEraseEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDC(self): - val = eventsc.wxEraseEvent_GetDC(self.this) - val = wxDCPtr(val) - return val - def __repr__(self): - return "" -class wxEraseEvent(wxEraseEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxFocusEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxFocusEvent(wxFocusEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxActivateEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetActive(self): - val = eventsc.wxActivateEvent_GetActive(self.this) - return val - def __repr__(self): - return "" -class wxActivateEvent(wxActivateEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxInitDialogEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxInitDialogEvent(wxInitDialogEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMenuEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetMenuId(self): - val = eventsc.wxMenuEvent_GetMenuId(self.this) - return val - def __repr__(self): - return "" -class wxMenuEvent(wxMenuEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxShowEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetShow(self,arg0): - val = eventsc.wxShowEvent_SetShow(self.this,arg0) - return val - def GetShow(self): - val = eventsc.wxShowEvent_GetShow(self.this) - return val - def __repr__(self): - return "" -class wxShowEvent(wxShowEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxIconizeEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxIconizeEvent(wxIconizeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMaximizeEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxMaximizeEvent(wxMaximizeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxJoystickEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPosition(self): - val = eventsc.wxJoystickEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetZPosition(self): - val = eventsc.wxJoystickEvent_GetZPosition(self.this) - return val - def GetButtonState(self): - val = eventsc.wxJoystickEvent_GetButtonState(self.this) - return val - def GetButtonChange(self): - val = eventsc.wxJoystickEvent_GetButtonChange(self.this) - return val - def GetJoystick(self): - val = eventsc.wxJoystickEvent_GetJoystick(self.this) - return val - def SetJoystick(self,arg0): - val = eventsc.wxJoystickEvent_SetJoystick(self.this,arg0) - return val - def SetButtonState(self,arg0): - val = eventsc.wxJoystickEvent_SetButtonState(self.this,arg0) - return val - def SetButtonChange(self,arg0): - val = eventsc.wxJoystickEvent_SetButtonChange(self.this,arg0) - return val - def SetPosition(self,arg0): - val = eventsc.wxJoystickEvent_SetPosition(self.this,arg0.this) - return val - def SetZPosition(self,arg0): - val = eventsc.wxJoystickEvent_SetZPosition(self.this,arg0) - return val - def IsButton(self): - val = eventsc.wxJoystickEvent_IsButton(self.this) - return val - def IsMove(self): - val = eventsc.wxJoystickEvent_IsMove(self.this) - return val - def IsZMove(self): - val = eventsc.wxJoystickEvent_IsZMove(self.this) - return val - def ButtonDown(self,*args): - val = apply(eventsc.wxJoystickEvent_ButtonDown,(self.this,)+args) - return val - def ButtonUp(self,*args): - val = apply(eventsc.wxJoystickEvent_ButtonUp,(self.this,)+args) - return val - def ButtonIsDown(self,*args): - val = apply(eventsc.wxJoystickEvent_ButtonIsDown,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxJoystickEvent(wxJoystickEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxDropFilesEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPosition(self): - val = eventsc.wxDropFilesEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetNumberOfFiles(self): - val = eventsc.wxDropFilesEvent_GetNumberOfFiles(self.this) - return val - def GetFiles(self): - val = eventsc.wxDropFilesEvent_GetFiles(self.this) - return val - def __repr__(self): - return "" -class wxDropFilesEvent(wxDropFilesEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxIdleEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def RequestMore(self,*args): - val = apply(eventsc.wxIdleEvent_RequestMore,(self.this,)+args) - return val - def MoreRequested(self): - val = eventsc.wxIdleEvent_MoreRequested(self.this) - return val - def __repr__(self): - return "" -class wxIdleEvent(wxIdleEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxUpdateUIEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetChecked(self): - val = eventsc.wxUpdateUIEvent_GetChecked(self.this) - return val - def GetEnabled(self): - val = eventsc.wxUpdateUIEvent_GetEnabled(self.this) - return val - def GetText(self): - val = eventsc.wxUpdateUIEvent_GetText(self.this) - return val - def GetSetText(self): - val = eventsc.wxUpdateUIEvent_GetSetText(self.this) - return val - def GetSetChecked(self): - val = eventsc.wxUpdateUIEvent_GetSetChecked(self.this) - return val - def GetSetEnabled(self): - val = eventsc.wxUpdateUIEvent_GetSetEnabled(self.this) - return val - def Check(self,arg0): - val = eventsc.wxUpdateUIEvent_Check(self.this,arg0) - return val - def Enable(self,arg0): - val = eventsc.wxUpdateUIEvent_Enable(self.this,arg0) - return val - def SetText(self,arg0): - val = eventsc.wxUpdateUIEvent_SetText(self.this,arg0) - return val - def __repr__(self): - return "" -class wxUpdateUIEvent(wxUpdateUIEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSysColourChangedEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxSysColourChangedEvent(wxSysColourChangedEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxPyEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - eventsc.delete_wxPyEvent(self.this) - def SetUserData(self,arg0): - val = eventsc.wxPyEvent_SetUserData(self.this,arg0) - return val - def GetUserData(self): - val = eventsc.wxPyEvent_GetUserData(self.this) - return val - def __repr__(self): - return "" -class wxPyEvent(wxPyEventPtr): - def __init__(self,*args) : - self.this = apply(eventsc.new_wxPyEvent,()+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/frames.cpp b/utils/wxPython/src/gtk/frames.cpp deleted file mode 100644 index bd1a323bf8..0000000000 --- a/utils/wxPython/src/gtk/frames.cpp +++ /dev/null @@ -1,1119 +0,0 @@ -/* - * FILE : gtk/frames.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initframesc - -#define SWIG_name "framesc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxFrameTowxWindow(void *ptr) { - wxFrame *src; - wxWindow *dest; - src = (wxFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxFrameTowxEvtHandler(void *ptr) { - wxFrame *src; - wxEvtHandler *dest; - src = (wxFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFrame *)new_wxFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxFrame_Centre(_swigobj,_swigarg0) (_swigobj->Centre(_swigarg0)) -static PyObject *_wrap_wxFrame_Centre(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - int _arg1 = (wxBOTH); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxFrame_Centre",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Centre. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Centre(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_CreateStatusBar(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->CreateStatusBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxFrame_CreateStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxFrame * _arg0; - int _arg1 = 1; - long _arg2 = (wxST_SIZEGRIP); - wxWindowID _arg3 = -1; - char * _arg4 = "statusBar"; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ilis:wxFrame_CreateStatusBar",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_CreateStatusBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStatusBar *)wxFrame_CreateStatusBar(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_CreateToolBar(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->CreateToolBar(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxFrame_CreateToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _result; - wxFrame * _arg0; - long _arg1 = (wxNO_BORDER)|(wxTB_HORIZONTAL)|(wxTB_FLAT); - wxWindowID _arg2 = -1; - char * _arg3 = "toolBar"; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|lis:wxFrame_CreateToolBar",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_CreateToolBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBar *)wxFrame_CreateToolBar(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_GetMenuBar(_swigobj) (_swigobj->GetMenuBar()) -static PyObject *_wrap_wxFrame_GetMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - wxFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetMenuBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetMenuBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuBar *)wxFrame_GetMenuBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_GetStatusBar(_swigobj) (_swigobj->GetStatusBar()) -static PyObject *_wrap_wxFrame_GetStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetStatusBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetStatusBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStatusBar *)wxFrame_GetStatusBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxFrame_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetTitle. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFrame_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFrame_GetToolBar(_swigobj) (_swigobj->GetToolBar()) -static PyObject *_wrap_wxFrame_GetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _result; - wxFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetToolBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetToolBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBar *)wxFrame_GetToolBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_Iconize(_swigobj,_swigarg0) (_swigobj->Iconize(_swigarg0)) -static PyObject *_wrap_wxFrame_Iconize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFrame_Iconize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Iconize. Expected _wxFrame_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Iconize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_IsIconized(_swigobj) (_swigobj->IsIconized()) -static PyObject *_wrap_wxFrame_IsIconized(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_IsIconized",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_IsIconized. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFrame_IsIconized(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFrame_Maximize(_swigobj,_swigarg0) (_swigobj->Maximize(_swigarg0)) -static PyObject *_wrap_wxFrame_Maximize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFrame_Maximize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Maximize. Expected _wxFrame_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Maximize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetAcceleratorTable(_swigobj,_swigarg0) (_swigobj->SetAcceleratorTable(_swigarg0)) -static PyObject *_wrap_wxFrame_SetAcceleratorTable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxAcceleratorTable * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetAcceleratorTable",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetAcceleratorTable. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxAcceleratorTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetAcceleratorTable. Expected _wxAcceleratorTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetAcceleratorTable(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetIcon(_swigobj,_swigarg0) (_swigobj->SetIcon(_swigarg0)) -static PyObject *_wrap_wxFrame_SetIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxIcon * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetIcon",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetIcon. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetIcon(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetMenuBar(_swigobj,_swigarg0) (_swigobj->SetMenuBar(_swigarg0)) -static PyObject *_wrap_wxFrame_SetMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxMenuBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetMenuBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetMenuBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetMenuBar. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetMenuBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetStatusBar(_swigobj,_swigarg0) (_swigobj->SetStatusBar(_swigarg0)) -static PyObject *_wrap_wxFrame_SetStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxStatusBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetStatusBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetStatusBar. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetStatusBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetStatusText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxFrame_SetStatusText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxString * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxFrame_SetStatusText",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusText. Expected _wxFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetStatusText(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFrame_SetStatusWidths(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusWidths(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxFrame_SetStatusWidths(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - int _arg1; - int * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFrame_SetStatusWidths",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusWidths. Expected _wxFrame_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = int_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetStatusWidths(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxFrame_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxFrame_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFrame_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetTitle. Expected _wxFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFrame_SetToolBar(_swigobj,_swigarg0) (_swigobj->SetToolBar(_swigarg0)) -static PyObject *_wrap_wxFrame_SetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxToolBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetToolBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetToolBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetToolBar. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetToolBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMiniFrameTowxFrame(void *ptr) { - wxMiniFrame *src; - wxFrame *dest; - src = (wxMiniFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxMiniFrameTowxWindow(void *ptr) { - wxMiniFrame *src; - wxWindow *dest; - src = (wxMiniFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMiniFrameTowxEvtHandler(void *ptr) { - wxMiniFrame *src; - wxEvtHandler *dest; - src = (wxMiniFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMiniFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxMiniFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxMiniFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMiniFrame * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxMiniFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMiniFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMiniFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMiniFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMiniFrame *)new_wxMiniFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMiniFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static PyMethodDef framescMethods[] = { - { "new_wxMiniFrame", _wrap_new_wxMiniFrame, 1 }, - { "wxFrame_SetToolBar", _wrap_wxFrame_SetToolBar, 1 }, - { "wxFrame_SetTitle", _wrap_wxFrame_SetTitle, 1 }, - { "wxFrame_SetStatusWidths", _wrap_wxFrame_SetStatusWidths, 1 }, - { "wxFrame_SetStatusText", _wrap_wxFrame_SetStatusText, 1 }, - { "wxFrame_SetStatusBar", _wrap_wxFrame_SetStatusBar, 1 }, - { "wxFrame_SetMenuBar", _wrap_wxFrame_SetMenuBar, 1 }, - { "wxFrame_SetIcon", _wrap_wxFrame_SetIcon, 1 }, - { "wxFrame_SetAcceleratorTable", _wrap_wxFrame_SetAcceleratorTable, 1 }, - { "wxFrame_Maximize", _wrap_wxFrame_Maximize, 1 }, - { "wxFrame_IsIconized", _wrap_wxFrame_IsIconized, 1 }, - { "wxFrame_Iconize", _wrap_wxFrame_Iconize, 1 }, - { "wxFrame_GetToolBar", _wrap_wxFrame_GetToolBar, 1 }, - { "wxFrame_GetTitle", _wrap_wxFrame_GetTitle, 1 }, - { "wxFrame_GetStatusBar", _wrap_wxFrame_GetStatusBar, 1 }, - { "wxFrame_GetMenuBar", _wrap_wxFrame_GetMenuBar, 1 }, - { "wxFrame_CreateToolBar", _wrap_wxFrame_CreateToolBar, 1 }, - { "wxFrame_CreateStatusBar", _wrap_wxFrame_CreateStatusBar, 1 }, - { "wxFrame_Centre", _wrap_wxFrame_Centre, 1 }, - { "new_wxFrame", _wrap_new_wxFrame, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initframesc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("framesc", framescMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/gtk/frames.py b/utils/wxPython/src/gtk/frames.py deleted file mode 100644 index 0a3796059f..0000000000 --- a/utils/wxPython/src/gtk/frames.py +++ /dev/null @@ -1,124 +0,0 @@ -# This file was created automatically by SWIG. -import framesc - -from misc import * - -from gdi import * - -from windows import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxFramePtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Centre(self,*args): - val = apply(framesc.wxFrame_Centre,(self.this,)+args) - return val - def CreateStatusBar(self,*args): - val = apply(framesc.wxFrame_CreateStatusBar,(self.this,)+args) - val = wxStatusBarPtr(val) - return val - def CreateToolBar(self,*args): - val = apply(framesc.wxFrame_CreateToolBar,(self.this,)+args) - val = wxToolBarPtr(val) - return val - def GetMenuBar(self): - val = framesc.wxFrame_GetMenuBar(self.this) - val = wxMenuBarPtr(val) - return val - def GetStatusBar(self): - val = framesc.wxFrame_GetStatusBar(self.this) - val = wxStatusBarPtr(val) - return val - def GetTitle(self): - val = framesc.wxFrame_GetTitle(self.this) - return val - def GetToolBar(self): - val = framesc.wxFrame_GetToolBar(self.this) - val = wxToolBarPtr(val) - return val - def Iconize(self,arg0): - val = framesc.wxFrame_Iconize(self.this,arg0) - return val - def IsIconized(self): - val = framesc.wxFrame_IsIconized(self.this) - return val - def Maximize(self,arg0): - val = framesc.wxFrame_Maximize(self.this,arg0) - return val - def SetAcceleratorTable(self,arg0): - val = framesc.wxFrame_SetAcceleratorTable(self.this,arg0.this) - return val - def SetIcon(self,arg0): - val = framesc.wxFrame_SetIcon(self.this,arg0.this) - return val - def SetMenuBar(self,arg0): - val = framesc.wxFrame_SetMenuBar(self.this,arg0.this) - return val - def SetStatusBar(self,arg0): - val = framesc.wxFrame_SetStatusBar(self.this,arg0.this) - return val - def SetStatusText(self,arg0,*args): - val = apply(framesc.wxFrame_SetStatusText,(self.this,arg0,)+args) - return val - def SetStatusWidths(self,arg0,*args): - val = apply(framesc.wxFrame_SetStatusWidths,(self.this,arg0,)+args) - return val - def SetTitle(self,arg0): - val = framesc.wxFrame_SetTitle(self.this,arg0) - return val - def SetToolBar(self,arg0): - val = framesc.wxFrame_SetToolBar(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxFrame(wxFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(framesc.new_wxFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMiniFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxMiniFrame(wxMiniFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(framesc.new_wxMiniFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/gdi.cpp b/utils/wxPython/src/gtk/gdi.cpp deleted file mode 100644 index ff1443a723..0000000000 --- a/utils/wxPython/src/gtk/gdi.cpp +++ /dev/null @@ -1,6132 +0,0 @@ -/* - * FILE : gtk/gdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initgdic - -#define SWIG_name "gdic" - -#include "helpers.h" -#include -#include -#ifndef __WXMSW__ -#include -#endif - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - // Alternate 'constructor' - wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) { - return new wxBitmap(width, height, depth); - } - - // This one won't own the reference, so Python - // won't call the dtor, this is good for - // toolbars and such where the parent will - // manage the bitmap. - wxBitmap* wxNoRefBitmap(char* name, long flags) { - return new wxBitmap(name, flags); - } - - wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour) { - return new wxMask(bitmap, colour); - } - // Alternate 'constructor' - wxCursor* wxPyStockCursor(int id) { - return new wxCursor(id); - } - // Alternate 'constructor' - wxColour* wxNamedColour(const wxString& colorName) { - return new wxColour(colorName); - } - // Alternate 'constructor' - wxMemoryDC* wxMemoryDCFromDC(wxDC* oldDC) { - return new wxMemoryDC(oldDC); - } - -#if 0 -extern wxFont * wxNORMAL_FONT; -extern wxFont * wxSMALL_FONT; -extern wxFont * wxITALIC_FONT; -extern wxFont * wxSWISS_FONT; -extern wxPen * wxRED_PEN; -extern wxPen * wxCYAN_PEN; -extern wxPen * wxGREEN_PEN; -extern wxPen * wxBLACK_PEN; -extern wxPen * wxWHITE_PEN; -extern wxPen * wxTRANSPARENT_PEN; -extern wxPen * wxBLACK_DASHED_PEN; -extern wxPen * wxGREY_PEN; -extern wxPen * wxMEDIUM_GREY_PEN; -extern wxPen * wxLIGHT_GREY_PEN; -extern wxBrush * wxBLUE_BRUSH; -extern wxBrush * wxGREEN_BRUSH; -extern wxBrush * wxWHITE_BRUSH; -extern wxBrush * wxBLACK_BRUSH; -extern wxBrush * wxTRANSPARENT_BRUSH; -extern wxBrush * wxCYAN_BRUSH; -extern wxBrush * wxRED_BRUSH; -extern wxBrush * wxGREY_BRUSH; -extern wxBrush * wxMEDIUM_GREY_BRUSH; -extern wxBrush * wxLIGHT_GREY_BRUSH; -extern wxColour * wxBLACK; -extern wxColour * wxWHITE; -extern wxColour * wxRED; -extern wxColour * wxBLUE; -extern wxColour * wxGREEN; -extern wxColour * wxCYAN; -extern wxColour * wxLIGHT_GREY; -extern wxCursor * wxSTANDARD_CURSOR; -extern wxCursor * wxHOURGLASS_CURSOR; -extern wxCursor * wxCROSS_CURSOR; -extern wxBitmap wxNullBitmap; -extern wxIcon wxNullIcon; -extern wxCursor wxNullCursor; -extern wxPen wxNullPen; -extern wxBrush wxNullBrush; -extern wxPalette wxNullPalette; -extern wxFont wxNullFont; -extern wxColour wxNullColour; - -#endif -static PyObject *_wrap_wxEmptyBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - int _arg0; - int _arg1; - int _arg2 = -1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ii|i:wxEmptyBitmap",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxEmptyBitmap(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxNoRefBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - char * _arg0; - long _arg1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxNoRefBitmap",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxNoRefBitmap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxMaskColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMaskColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMaskColour. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMaskColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMask *)wxMaskColour(*_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxStockCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _result; - int _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxStockCursor",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCursor *)wxPyStockCursor(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxNamedColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxString * _arg0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNamedColour",&_obj0)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColour *)wxNamedColour(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxMemoryDCFromDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMemoryDCFromDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMemoryDCFromDC. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMemoryDC *)wxMemoryDCFromDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static int _wrap_wxNORMAL_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNORMAL_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxNORMAL_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxNORMAL_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxSMALL_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxSMALL_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxSMALL_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxSMALL_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxITALIC_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxITALIC_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxITALIC_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxITALIC_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxSWISS_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxSWISS_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxSWISS_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxSWISS_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxRED_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxRED_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxRED_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxRED_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCYAN_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCYAN_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxCYAN_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCYAN_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREEN_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREEN_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREEN_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREEN_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxWHITE_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxWHITE_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxWHITE_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxWHITE_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxTRANSPARENT_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxTRANSPARENT_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxTRANSPARENT_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxTRANSPARENT_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_DASHED_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK_DASHED_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_DASHED_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK_DASHED_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREY_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREY_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREY_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREY_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxMEDIUM_GREY_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxMEDIUM_GREY_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxMEDIUM_GREY_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxMEDIUM_GREY_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxLIGHT_GREY_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxLIGHT_GREY_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxLIGHT_GREY_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxLIGHT_GREY_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLUE_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLUE_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLUE_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLUE_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREEN_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREEN_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREEN_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREEN_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxWHITE_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxWHITE_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxWHITE_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxWHITE_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxTRANSPARENT_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxTRANSPARENT_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxTRANSPARENT_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxTRANSPARENT_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCYAN_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCYAN_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxCYAN_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCYAN_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxRED_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxRED_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxRED_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxRED_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREY_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREY_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREY_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREY_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxMEDIUM_GREY_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxMEDIUM_GREY_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxMEDIUM_GREY_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxMEDIUM_GREY_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxLIGHT_GREY_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxLIGHT_GREY_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxLIGHT_GREY_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxLIGHT_GREY_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxWHITE_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxWHITE is read-only."); - return 1; -} - -static PyObject *_wrap_wxWHITE_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxWHITE,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxRED_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxRED is read-only."); - return 1; -} - -static PyObject *_wrap_wxRED_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxRED,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLUE_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLUE is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLUE_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLUE,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREEN,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCYAN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCYAN is read-only."); - return 1; -} - -static PyObject *_wrap_wxCYAN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCYAN,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxLIGHT_GREY_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxLIGHT_GREY is read-only."); - return 1; -} - -static PyObject *_wrap_wxLIGHT_GREY_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxLIGHT_GREY,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxSTANDARD_CURSOR_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxSTANDARD_CURSOR is read-only."); - return 1; -} - -static PyObject *_wrap_wxSTANDARD_CURSOR_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxSTANDARD_CURSOR,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxHOURGLASS_CURSOR_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxHOURGLASS_CURSOR is read-only."); - return 1; -} - -static PyObject *_wrap_wxHOURGLASS_CURSOR_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxHOURGLASS_CURSOR,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCROSS_CURSOR_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCROSS_CURSOR is read-only."); - return 1; -} - -static PyObject *_wrap_wxCROSS_CURSOR_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCROSS_CURSOR,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullBitmap_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullBitmap is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullBitmap_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullBitmap,"_wxBitmap_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullIcon_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullIcon is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullIcon_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullIcon,"_wxIcon_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullCursor_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullCursor is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullCursor_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullCursor,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullPen_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullPen is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullPen_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullPen,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullBrush_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullBrush is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullBrush_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullBrush,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullPalette_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullPalette is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullPalette_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullPalette,"_wxPalette_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullFont_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullFont is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullFont_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullFont,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullColour_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullColour is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullColour_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullColour,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -#define new_wxBitmap(_swigarg0,_swigarg1) (new wxBitmap(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxString * _arg0; - long _arg1; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:new_wxBitmap",&_obj0,&_arg1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)new_wxBitmap(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxBitmap(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxBitmap(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_GetDepth(_swigobj) (_swigobj->GetDepth()) -static PyObject *_wrap_wxBitmap_GetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetDepth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetDepth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBitmap_GetDepth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxBitmap_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetHeight. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBitmap_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_GetPalette(_swigobj) (_swigobj->GetPalette()) -static PyObject *_wrap_wxBitmap_GetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetPalette. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPalette *)wxBitmap_GetPalette(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmap_GetMask(_swigobj) (_swigobj->GetMask()) -static PyObject *_wrap_wxBitmap_GetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetMask. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMask *)wxBitmap_GetMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmap_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxBitmap_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetWidth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBitmap_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxBitmap_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBitmap * _arg0; - wxString * _arg1; - long _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOl:wxBitmap_LoadFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_LoadFile. Expected _wxBitmap_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBitmap_LoadFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxBitmap_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxBitmap_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_Ok. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBitmap_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_SaveFile(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SaveFile(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxBitmap_SaveFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBitmap * _arg0; - wxString * _arg1; - int _arg2; - wxPalette * _arg3 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOi|s:wxBitmap_SaveFile",&_argc0,&_obj1,&_arg2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SaveFile. Expected _wxBitmap_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxBitmap_SaveFile. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBitmap_SaveFile(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxBitmap_SetDepth(_swigobj,_swigarg0) (_swigobj->SetDepth(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBitmap_SetDepth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetDepth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetDepth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBitmap_SetHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetHeight. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetMask(_swigobj,_swigarg0) (_swigobj->SetMask(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - wxMask * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmap_SetMask",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetMask. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMask_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmap_SetMask. Expected _wxMask_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetMask(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBitmap_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetWidth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxMask(_swigarg0) (new wxMask(_swigarg0)) -static PyObject *_wrap_new_wxMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMask. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMask *)new_wxMask(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxMask(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMask_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxMask. Expected _wxMask_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxIconTowxBitmap(void *ptr) { - wxIcon *src; - wxBitmap *dest; - src = (wxIcon *) ptr; - dest = (wxBitmap *) src; - return (void *) dest; -} - -#define delete_wxIcon(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxIcon",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxIcon(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIcon_GetDepth(_swigobj) (_swigobj->GetDepth()) -static PyObject *_wrap_wxIcon_GetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_GetDepth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_GetDepth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxIcon_GetDepth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxIcon_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_GetHeight. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxIcon_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxIcon_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_GetWidth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxIcon_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIcon_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxIcon * _arg0; - wxString * _arg1; - long _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOl:wxIcon_LoadFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_LoadFile. Expected _wxIcon_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIcon_LoadFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxIcon_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxIcon_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_Ok. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIcon_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_SetDepth(_swigobj,_swigarg0) (_swigobj->SetDepth(_swigarg0)) -static PyObject *_wrap_wxIcon_SetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIcon_SetDepth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_SetDepth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIcon_SetDepth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIcon_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxIcon_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIcon_SetHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_SetHeight. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIcon_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIcon_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxIcon_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIcon_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_SetWidth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIcon_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxCursorTowxBitmap(void *ptr) { - wxCursor *src; - wxBitmap *dest; - src = (wxCursor *) ptr; - dest = (wxBitmap *) src; - return (void *) dest; -} - -#define delete_wxCursor(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxCursor",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxCursor(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCursor_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxCursor_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCursor * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCursor_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCursor_Ok. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCursor_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static wxFont *new_wxFont(int pointSize,int family,int style,int weight,int underline,char *faceName) { - - return wxTheFontList->FindOrCreateFont(pointSize, family, style, weight, - underline, faceName); - } - -static PyObject *_wrap_new_wxFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - int _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4 = (0); - char * _arg5 = ""; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"iiii|is:new_wxFont",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFont *)new_wxFont(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFont_GetFaceName(_swigobj) (_swigobj->GetFaceName()) -static PyObject *_wrap_wxFont_GetFaceName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetFaceName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetFaceName. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFont_GetFaceName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFont_GetFamily(_swigobj) (_swigobj->GetFamily()) -static PyObject *_wrap_wxFont_GetFamily(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetFamily",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetFamily. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetFamily(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetPointSize(_swigobj) (_swigobj->GetPointSize()) -static PyObject *_wrap_wxFont_GetPointSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetPointSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetPointSize. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetPointSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxFont_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetStyle. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetUnderlined(_swigobj) (_swigobj->GetUnderlined()) -static PyObject *_wrap_wxFont_GetUnderlined(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetUnderlined",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetUnderlined. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFont_GetUnderlined(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetWeight(_swigobj) (_swigobj->GetWeight()) -static PyObject *_wrap_wxFont_GetWeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetWeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetWeight. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetWeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_SetFaceName(_swigobj,_swigarg0) (_swigobj->SetFaceName(_swigarg0)) -static PyObject *_wrap_wxFont_SetFaceName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFont_SetFaceName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetFaceName. Expected _wxFont_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetFaceName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFont_SetFamily(_swigobj,_swigarg0) (_swigobj->SetFamily(_swigarg0)) -static PyObject *_wrap_wxFont_SetFamily(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetFamily",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetFamily. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetFamily(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetPointSize(_swigobj,_swigarg0) (_swigobj->SetPointSize(_swigarg0)) -static PyObject *_wrap_wxFont_SetPointSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetPointSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetPointSize. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetPointSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxFont_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetStyle. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetUnderlined(_swigobj,_swigarg0) (_swigobj->SetUnderlined(_swigarg0)) -static PyObject *_wrap_wxFont_SetUnderlined(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetUnderlined",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetUnderlined. Expected _wxFont_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetUnderlined(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetWeight(_swigobj,_swigarg0) (_swigobj->SetWeight(_swigarg0)) -static PyObject *_wrap_wxFont_SetWeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetWeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetWeight. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetWeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxColour(_swigarg0,_swigarg1,_swigarg2) (new wxColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - unsigned char _arg0 = 0; - unsigned char _arg1 = 0; - unsigned char _arg2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|bbb:new_wxColour",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColour *)new_wxColour(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxColour(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxColour(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColour_Red(_swigobj) (_swigobj->Red()) -static PyObject *_wrap_wxColour_Red(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Red",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Red. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxColour_Red(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxColour_Green(_swigobj) (_swigobj->Green()) -static PyObject *_wrap_wxColour_Green(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Green",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Green. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxColour_Green(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxColour_Blue(_swigobj) (_swigobj->Blue()) -static PyObject *_wrap_wxColour_Blue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Blue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Blue. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxColour_Blue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxColour_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxColour_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Ok. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxColour_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxColour_Set(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Set(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxColour_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _arg0; - unsigned char _arg1; - unsigned char _arg2; - unsigned char _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sbbb:wxColour_Set",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Set. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour_Set(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject * wxColour_Get(wxColour *self) { - PyObject* rv = PyTuple_New(3); - PyTuple_SetItem(rv, 0, PyInt_FromLong(self->Red())); - PyTuple_SetItem(rv, 1, PyInt_FromLong(self->Green())); - PyTuple_SetItem(rv, 2, PyInt_FromLong(self->Blue())); - return rv; - } -static PyObject *_wrap_wxColour_Get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Get. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxColour_Get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static wxPen *new_wxPen(wxColour *colour,int width,int style) { - return wxThePenList->FindOrCreatePen(*colour, width, style); - } - -static PyObject *_wrap_new_wxPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _result; - wxColour * _arg0; - int _arg1 = 1; - int _arg2 = (wxSOLID); - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:new_wxPen",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPen. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPen *)new_wxPen(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPen_GetCap(_swigobj) (_swigobj->GetCap()) -static PyObject *_wrap_wxPen_GetCap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetCap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetCap. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetCap(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxPen_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxPen * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetColour. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxPen_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPen_GetJoin(_swigobj) (_swigobj->GetJoin()) -static PyObject *_wrap_wxPen_GetJoin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetJoin",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetJoin. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetJoin(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxPen_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetStyle. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxPen_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetWidth. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxPen_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_Ok. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPen_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_SetCap(_swigobj,_swigarg0) (_swigobj->SetCap(_swigarg0)) -static PyObject *_wrap_wxPen_SetCap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetCap",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetCap. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetCap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxPen_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPen_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetColour. Expected _wxPen_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPen_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetJoin(_swigobj,_swigarg0) (_swigobj->SetJoin(_swigarg0)) -static PyObject *_wrap_wxPen_SetJoin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetJoin",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetJoin. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetJoin(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxPen_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetStyle. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxPen_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetWidth. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static wxBrush *new_wxBrush(wxColour *colour,int style) { - return wxTheBrushList->FindOrCreateBrush(*colour, style); - } - -static PyObject *_wrap_new_wxBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxColour * _arg0; - int _arg1 = (wxSOLID); - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:new_wxBrush",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxBrush. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBrush *)new_wxBrush(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBrush_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxBrush_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxBrush * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_GetColour. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxBrush_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBrush_GetStipple(_swigobj) (_swigobj->GetStipple()) -static PyObject *_wrap_wxBrush_GetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBrush * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_GetStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_GetStipple. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxBrush_GetStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBrush_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxBrush_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBrush * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_GetStyle. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBrush_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBrush_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxBrush_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBrush * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_Ok. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBrush_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBrush_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxBrush_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBrush_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetColour. Expected _wxBrush_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBrush_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBrush_SetStipple(_swigobj,_swigarg0) (_swigobj->SetStipple(_swigarg0)) -static PyObject *_wrap_wxBrush_SetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBrush_SetStipple",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetStipple. Expected _wxBrush_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBrush_SetStipple. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush_SetStipple(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBrush_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxBrush_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBrush_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetStyle. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define delete_wxDC(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxDC. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_BeginDrawing(_swigobj) (_swigobj->BeginDrawing()) -static PyObject *_wrap_wxDC_BeginDrawing(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_BeginDrawing",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_BeginDrawing. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_BeginDrawing(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_Blit(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (_swigobj->Blit(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_wxDC_Blit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - wxDC * _arg5; - long _arg6; - long _arg7; - long _arg8; - char * _argc0 = 0; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllllslll:wxDC_Blit",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5,&_arg6,&_arg7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Blit. Expected _wxDC_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxDC_Blit. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_Blit(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxDC_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Clear. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_CrossHair(_swigobj,_swigarg0,_swigarg1) (_swigobj->CrossHair(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_CrossHair(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_CrossHair",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_CrossHair. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_CrossHair(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DestroyClippingRegion(_swigobj) (_swigobj->DestroyClippingRegion()) -static PyObject *_wrap_wxDC_DestroyClippingRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_DestroyClippingRegion",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DestroyClippingRegion. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DestroyClippingRegion(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DeviceToLogicalX(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalX(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DeviceToLogicalXRel(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalXRel(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalXRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalXRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalXRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalXRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DeviceToLogicalY(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalY(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DeviceToLogicalYRel(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalYRel(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalYRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalYRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalYRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalYRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DrawArc(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->DrawArc(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxDC_DrawArc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - long _arg5; - long _arg6; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllllll:wxDC_DrawArc",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawArc. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawEllipse(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawEllipse(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawEllipse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_DrawEllipse",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawEllipse. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawEllipse(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawEllipticArc(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->DrawEllipticArc(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxDC_DrawEllipticArc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - long _arg5; - long _arg6; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllllll:wxDC_DrawEllipticArc",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawEllipticArc. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawEllipticArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawIcon(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DrawIcon(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_DrawIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxIcon * _arg1; - long _arg2; - long _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssll:wxDC_DrawIcon",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawIcon. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_DrawIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawIcon(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawLine(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawLine(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_DrawLine",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawLine. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawLine(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawLines(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawLines(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawLines(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - wxPoint * _arg2; - long _arg3 = 0; - long _arg4 = 0; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|ll:wxDC_DrawLines",&_argc0,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawLines. Expected _wxDC_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxPoint_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawLines(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxDC_DrawPolygon(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->DrawPolygon(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxDC_DrawPolygon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - wxPoint * _arg2; - long _arg3 = 0; - long _arg4 = 0; - int _arg5 = (wxODDEVEN_RULE); - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|lli:wxDC_DrawPolygon",&_argc0,&_obj2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawPolygon. Expected _wxDC_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxPoint_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawPolygon(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxDC_DrawPoint(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawPoint(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_DrawPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_DrawPoint",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawPoint. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawPoint(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawRectangle(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawRectangle(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawRectangle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_DrawRectangle",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawRectangle. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawRectangle(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawRoundedRectangle(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->DrawRoundedRectangle(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxDC_DrawRoundedRectangle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - long _arg5 = 20; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll|l:wxDC_DrawRoundedRectangle",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawRoundedRectangle. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawRoundedRectangle(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawSpline(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawSpline(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_DrawSpline(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - wxPoint * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDC_DrawSpline",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawSpline. Expected _wxDC_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxPoint_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawSpline(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxDC_DrawText(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DrawText(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_DrawText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxString * _arg1; - long _arg2; - long _arg3; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOll:wxDC_DrawText",&_argc0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawText. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawText(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_EndDoc(_swigobj) (_swigobj->EndDoc()) -static PyObject *_wrap_wxDC_EndDoc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_EndDoc",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_EndDoc. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_EndDoc(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_EndDrawing(_swigobj) (_swigobj->EndDrawing()) -static PyObject *_wrap_wxDC_EndDrawing(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_EndDrawing",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_EndDrawing. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_EndDrawing(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_EndPage(_swigobj) (_swigobj->EndPage()) -static PyObject *_wrap_wxDC_EndPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_EndPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_EndPage. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_EndPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_FloodFill(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->FloodFill(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_FloodFill(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - wxColour * _arg3; - int _arg4 = (wxFLOOD_SURFACE); - char * _argc0 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slls|i:wxDC_FloodFill",&_argc0,&_arg1,&_arg2,&_argc3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_FloodFill. Expected _wxDC_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxDC_FloodFill. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_FloodFill(_arg0,_arg1,_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_GetBackground(_swigobj) (_swigobj->GetBackground()) -static PyObject *_wrap_wxDC_GetBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetBackground",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetBackground. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush & _result_ref = wxDC_GetBackground(_arg0); - _result = (wxBrush *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetBrush(_swigobj) (_swigobj->GetBrush()) -static PyObject *_wrap_wxDC_GetBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetBrush",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetBrush. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush & _result_ref = wxDC_GetBrush(_arg0); - _result = (wxBrush *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetCharHeight(_swigobj) (_swigobj->GetCharHeight()) -static PyObject *_wrap_wxDC_GetCharHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetCharHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetCharHeight. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_GetCharHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_GetCharWidth(_swigobj) (_swigobj->GetCharWidth()) -static PyObject *_wrap_wxDC_GetCharWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetCharWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetCharWidth. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_GetCharWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_GetClippingBox(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->GetClippingBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_GetClippingBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long * _arg1; - long temp; - long * _arg2; - long temp0; - long * _arg3; - long temp1; - long * _arg4; - long temp2; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} -{ - _arg3 = &temp1; -} -{ - _arg4 = &temp2; -} - if(!PyArg_ParseTuple(args,"s:wxDC_GetClippingBox",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetClippingBox. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetClippingBox(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxDC_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxDC_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetFont. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxDC_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetLogicalFunction(_swigobj) (_swigobj->GetLogicalFunction()) -static PyObject *_wrap_wxDC_GetLogicalFunction(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetLogicalFunction",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetLogicalFunction. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDC_GetLogicalFunction(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_GetMapMode(_swigobj) (_swigobj->GetMapMode()) -static PyObject *_wrap_wxDC_GetMapMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetMapMode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetMapMode. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDC_GetMapMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_GetOptimization(_swigobj) (_swigobj->GetOptimization()) -static PyObject *_wrap_wxDC_GetOptimization(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetOptimization",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetOptimization. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_GetOptimization(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_GetPen(_swigobj) (_swigobj->GetPen()) -static PyObject *_wrap_wxDC_GetPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetPen",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetPen. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen & _result_ref = wxDC_GetPen(_arg0); - _result = (wxPen *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxColour * wxDC_GetPixel(wxDC *self,long x,long y) { - wxColour* wc = new wxColour(); - self->GetPixel(x, y, wc); - return wc; - } -static PyObject *_wrap_wxDC_GetPixel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_GetPixel",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetPixel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColour *)wxDC_GetPixel(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxDC_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSize. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxDC_GetTextBackground(_swigobj) (_swigobj->GetTextBackground()) -static PyObject *_wrap_wxDC_GetTextBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetTextBackground",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetTextBackground. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxDC_GetTextBackground(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_GetTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxString * _arg1; - long * _arg2; - long temp; - long * _arg3; - long temp0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"sO:wxDC_GetTextExtent",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetTextExtent. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetTextExtent(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_GetFullTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxDC_GetFullTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxString * _arg1; - long * _arg2; - long temp; - long * _arg3; - long temp0; - long * _arg4; - long temp1; - long * _arg5; - long temp2; - wxFont * _arg6 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"sO|s:wxDC_GetFullTextExtent",&_argc0,&_obj1,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetFullTextExtent. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxDC_GetFullTextExtent. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetFullTextExtent(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg5)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_GetTextForeground(_swigobj) (_swigobj->GetTextForeground()) -static PyObject *_wrap_wxDC_GetTextForeground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetTextForeground",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetTextForeground. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxDC_GetTextForeground(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_LogicalToDeviceX(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceX(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_LogicalToDeviceXRel(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceXRel(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceXRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceXRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceXRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceXRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_LogicalToDeviceY(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceY(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_LogicalToDeviceYRel(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceYRel(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceYRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceYRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceYRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceYRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MaxX(_swigobj) (_swigobj->MaxX()) -static PyObject *_wrap_wxDC_MaxX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MaxX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MaxX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MaxX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MaxY(_swigobj) (_swigobj->MaxY()) -static PyObject *_wrap_wxDC_MaxY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MaxY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MaxY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MaxY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MinX(_swigobj) (_swigobj->MinX()) -static PyObject *_wrap_wxDC_MinX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MinX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MinX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MinX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MinY(_swigobj) (_swigobj->MinY()) -static PyObject *_wrap_wxDC_MinY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MinY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MinY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MinY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxDC_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Ok. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_SetDeviceOrigin(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetDeviceOrigin(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_SetDeviceOrigin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_SetDeviceOrigin",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetDeviceOrigin. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetDeviceOrigin(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetBackground(_swigobj,_swigarg0) (_swigobj->SetBackground(_swigarg0)) -static PyObject *_wrap_wxDC_SetBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxBrush * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetBackground",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetBackground. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetBackground(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetBackgroundMode(_swigobj,_swigarg0) (_swigobj->SetBackgroundMode(_swigarg0)) -static PyObject *_wrap_wxDC_SetBackgroundMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetBackgroundMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBackgroundMode. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetBackgroundMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetClippingRegion(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->SetClippingRegion(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_SetClippingRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_SetClippingRegion",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetClippingRegion. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetClippingRegion(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetPalette(_swigobj,_swigarg0) (_swigobj->SetPalette(_swigarg0)) -static PyObject *_wrap_wxDC_SetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxPalette * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetPalette",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPalette. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetPalette(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetBrush(_swigobj,_swigarg0) (_swigobj->SetBrush(_swigarg0)) -static PyObject *_wrap_wxDC_SetBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxBrush * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetBrush",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBrush. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetBrush. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetBrush(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxDC_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetFont. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetLogicalFunction(_swigobj,_swigarg0) (_swigobj->SetLogicalFunction(_swigarg0)) -static PyObject *_wrap_wxDC_SetLogicalFunction(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetLogicalFunction",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetLogicalFunction. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetLogicalFunction(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetMapMode(_swigobj,_swigarg0) (_swigobj->SetMapMode(_swigarg0)) -static PyObject *_wrap_wxDC_SetMapMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetMapMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetMapMode. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetMapMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetOptimization(_swigobj,_swigarg0) (_swigobj->SetOptimization(_swigarg0)) -static PyObject *_wrap_wxDC_SetOptimization(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetOptimization",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetOptimization. Expected _wxDC_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetOptimization(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetPen(_swigobj,_swigarg0) (_swigobj->SetPen(_swigarg0)) -static PyObject *_wrap_wxDC_SetPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxPen * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetPen",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPen. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetPen. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetPen(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetTextBackground(_swigobj,_swigarg0) (_swigobj->SetTextBackground(_swigarg0)) -static PyObject *_wrap_wxDC_SetTextBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetTextBackground",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetTextBackground. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetTextBackground(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetTextForeground(_swigobj,_swigarg0) (_swigobj->SetTextForeground(_swigarg0)) -static PyObject *_wrap_wxDC_SetTextForeground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetTextForeground",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextForeground. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetTextForeground. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetTextForeground(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetUserScale(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetUserScale(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_SetUserScale(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - double _arg1; - double _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sdd:wxDC_SetUserScale",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetUserScale. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetUserScale(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_StartDoc(_swigobj,_swigarg0) (_swigobj->StartDoc(_swigarg0)) -static PyObject *_wrap_wxDC_StartDoc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDC_StartDoc",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_StartDoc. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_StartDoc(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_StartPage(_swigobj) (_swigobj->StartPage()) -static PyObject *_wrap_wxDC_StartPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_StartPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_StartPage. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_StartPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxDC_DrawBitmap(wxDC *self,wxBitmap & bitmap,long x,long y,bool swapPalette) { - wxMemoryDC* memDC = new wxMemoryDC; - memDC->SelectObject(bitmap); - if (swapPalette) - self->SetPalette(*bitmap.GetPalette()); - self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC, - 0, 0, self->GetLogicalFunction()); - memDC->SelectObject(wxNullBitmap); - delete memDC; - } -static PyObject *_wrap_wxDC_DrawBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxBitmap * _arg1; - long _arg2; - long _arg3; - bool _arg4 = (1); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool4; - - self = self; - if(!PyArg_ParseTuple(args,"ssll|i:wxDC_DrawBitmap",&_argc0,&_argc1,&_arg2,&_arg3,&tempbool4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawBitmap. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_DrawBitmap. Expected _wxBitmap_p."); - return NULL; - } - } - _arg4 = (bool ) tempbool4; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawBitmap(_arg0,*_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMemoryDCTowxDC(void *ptr) { - wxMemoryDC *src; - wxDC *dest; - src = (wxMemoryDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxMemoryDC() (new wxMemoryDC()) -static PyObject *_wrap_new_wxMemoryDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxMemoryDC")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMemoryDC *)new_wxMemoryDC(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMemoryDC_SelectObject(_swigobj,_swigarg0) (_swigobj->SelectObject(_swigarg0)) -static PyObject *_wrap_wxMemoryDC_SelectObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMemoryDC_SelectObject",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMemoryDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMemoryDC_SelectObject. Expected _wxMemoryDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMemoryDC_SelectObject. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMemoryDC_SelectObject(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxScreenDCTowxDC(void *ptr) { - wxScreenDC *src; - wxDC *dest; - src = (wxScreenDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxScreenDC() (new wxScreenDC()) -static PyObject *_wrap_new_wxScreenDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScreenDC * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxScreenDC")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScreenDC *)new_wxScreenDC(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScreenDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxScreenDC_StartDrawingOnTop(_swigobj,_swigarg0) (_swigobj->StartDrawingOnTop(_swigarg0)) -static PyObject *_wrap_wxScreenDC_StartDrawingOnTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScreenDC * _arg0; - wxWindow * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxScreenDC_StartDrawingOnTop",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTop. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxScreenDC_StartDrawingOnTop. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScreenDC_StartDrawingOnTop(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScreenDC_StartDrawingOnTopRect(_swigobj,_swigarg0) (_swigobj->StartDrawingOnTop(_swigarg0)) -static PyObject *_wrap_wxScreenDC_StartDrawingOnTopRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScreenDC * _arg0; - wxRect * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxScreenDC_StartDrawingOnTopRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTopRect. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxScreenDC_StartDrawingOnTopRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScreenDC_StartDrawingOnTopRect(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScreenDC_EndDrawingOnTop(_swigobj) (_swigobj->EndDrawingOnTop()) -static PyObject *_wrap_wxScreenDC_EndDrawingOnTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScreenDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScreenDC_EndDrawingOnTop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_EndDrawingOnTop. Expected _wxScreenDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScreenDC_EndDrawingOnTop(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxClientDCTowxDC(void *ptr) { - wxClientDC *src; - wxDC *dest; - src = (wxClientDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxClientDC(_swigarg0) (new wxClientDC(_swigarg0)) -static PyObject *_wrap_new_wxClientDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxClientDC * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxClientDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxClientDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxClientDC *)new_wxClientDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxClientDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPaintDCTowxDC(void *ptr) { - wxPaintDC *src; - wxDC *dest; - src = (wxPaintDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxPaintDC(_swigarg0) (new wxPaintDC(_swigarg0)) -static PyObject *_wrap_new_wxPaintDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPaintDC * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxPaintDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPaintDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPaintDC *)new_wxPaintDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPaintDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxWindowDCTowxDC(void *ptr) { - wxWindowDC *src; - wxDC *dest; - src = (wxWindowDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxWindowDC(_swigarg0) (new wxWindowDC(_swigarg0)) -static PyObject *_wrap_new_wxWindowDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindowDC * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxWindowDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxWindowDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindowDC *)new_wxWindowDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindowDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPostScriptDCTowxDC(void *ptr) { - wxPostScriptDC *src; - wxDC *dest; - src = (wxPostScriptDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxPostScriptDC(_swigarg0,_swigarg1,_swigarg2) (new wxPostScriptDC(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxPostScriptDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPostScriptDC * _result; - wxString * _arg0; - bool _arg1 = (1); - wxWindow * _arg2 = NULL; - PyObject * _obj0 = 0; - int tempbool1; - char * _argc2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|is:new_wxPostScriptDC",&_obj0,&tempbool1,&_argc2)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - _arg1 = (bool ) tempbool1; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPostScriptDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPostScriptDC *)new_wxPostScriptDC(*_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPostScriptDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define new_wxPalette(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxPalette(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - int _arg0; - byte * _arg1; - byte * _arg2; - byte * _arg3; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:new_wxPalette",&_obj1,&_obj2,&_obj3)) - return NULL; -{ - _arg1 = byte_LIST_helper(_obj1); - if (_arg1 == NULL) { - return NULL; - } -} -{ - _arg2 = byte_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} - if (_obj3) -{ - _arg3 = byte_LIST_helper(_obj3); - if (_arg3 == NULL) { - return NULL; - } -} -{ - if (_obj1) { - _arg0 = PyList_Size(_obj1); - } - else { - _arg0 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPalette *)new_wxPalette(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg1; -} -{ - delete [] _arg2; -} -{ - delete [] _arg3; -} - return _resultobj; -} - -#define delete_wxPalette(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPalette(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPalette_GetPixel(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetPixel(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxPalette_GetPixel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPalette * _arg0; - byte _arg1; - byte _arg2; - byte _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sbbb:wxPalette_GetPixel",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_GetPixel. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPalette_GetPixel(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPalette_GetRGB(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->GetRGB(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxPalette_GetRGB(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPalette * _arg0; - int _arg1; - byte * _arg2; - byte * _arg3; - byte * _arg4; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sisss:wxPalette_GetRGB",&_argc0,&_arg1,&_argc2,&_argc3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_GetRGB. Expected _wxPalette_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPalette_GetRGB(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPalette_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxPalette_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPalette * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPalette_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_Ok. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPalette_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxImageList(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxImageList(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - int _arg0; - int _arg1; - bool _arg2 = (1); - int _arg3 = 1; - int tempbool2; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ii|ii:new_wxImageList",&_arg0,&_arg1,&tempbool2,&_arg3)) - return NULL; - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)new_wxImageList(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxImageList(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImageList_Add(_swigobj,_swigarg0) (_swigobj->Add(_swigarg0)) -static PyObject *_wrap_wxImageList_Add(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImageList * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxImageList_Add",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Add. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImageList_Add. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImageList_Add(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_Replace(_swigobj,_swigarg0,_swigarg1) (_swigobj->Replace(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImageList_Replace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - wxBitmap * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxImageList_Replace",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Replace. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Replace. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_Replace(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_Draw(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->Draw(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxImageList_Draw(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - wxDC * _arg2; - int _arg3; - int _arg4; - int _arg5 = (wxIMAGELIST_DRAW_NORMAL); - bool _arg6 = (0); - char * _argc0 = 0; - char * _argc2 = 0; - int tempbool6; - - self = self; - if(!PyArg_ParseTuple(args,"sisii|ii:wxImageList_Draw",&_argc0,&_arg1,&_argc2,&_arg3,&_arg4,&_arg5,&tempbool6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Draw. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Draw. Expected _wxDC_p."); - return NULL; - } - } - _arg6 = (bool ) tempbool6; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_Draw(_arg0,_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_GetImageCount(_swigobj) (_swigobj->GetImageCount()) -static PyObject *_wrap_wxImageList_GetImageCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImageList * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageList_GetImageCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_GetImageCount. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImageList_GetImageCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_Remove(_swigobj,_swigarg0) (_swigobj->Remove(_swigarg0)) -static PyObject *_wrap_wxImageList_Remove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxImageList_Remove",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Remove. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_Remove(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_RemoveAll(_swigobj) (_swigobj->RemoveAll()) -static PyObject *_wrap_wxImageList_RemoveAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageList_RemoveAll",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_RemoveAll. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_RemoveAll(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef gdicMethods[] = { - { "wxImageList_RemoveAll", _wrap_wxImageList_RemoveAll, 1 }, - { "wxImageList_Remove", _wrap_wxImageList_Remove, 1 }, - { "wxImageList_GetImageCount", _wrap_wxImageList_GetImageCount, 1 }, - { "wxImageList_Draw", _wrap_wxImageList_Draw, 1 }, - { "wxImageList_Replace", _wrap_wxImageList_Replace, 1 }, - { "wxImageList_Add", _wrap_wxImageList_Add, 1 }, - { "delete_wxImageList", _wrap_delete_wxImageList, 1 }, - { "new_wxImageList", _wrap_new_wxImageList, 1 }, - { "wxPalette_Ok", _wrap_wxPalette_Ok, 1 }, - { "wxPalette_GetRGB", _wrap_wxPalette_GetRGB, 1 }, - { "wxPalette_GetPixel", _wrap_wxPalette_GetPixel, 1 }, - { "delete_wxPalette", _wrap_delete_wxPalette, 1 }, - { "new_wxPalette", _wrap_new_wxPalette, 1 }, - { "new_wxPostScriptDC", _wrap_new_wxPostScriptDC, 1 }, - { "new_wxWindowDC", _wrap_new_wxWindowDC, 1 }, - { "new_wxPaintDC", _wrap_new_wxPaintDC, 1 }, - { "new_wxClientDC", _wrap_new_wxClientDC, 1 }, - { "wxScreenDC_EndDrawingOnTop", _wrap_wxScreenDC_EndDrawingOnTop, 1 }, - { "wxScreenDC_StartDrawingOnTopRect", _wrap_wxScreenDC_StartDrawingOnTopRect, 1 }, - { "wxScreenDC_StartDrawingOnTop", _wrap_wxScreenDC_StartDrawingOnTop, 1 }, - { "new_wxScreenDC", _wrap_new_wxScreenDC, 1 }, - { "wxMemoryDC_SelectObject", _wrap_wxMemoryDC_SelectObject, 1 }, - { "new_wxMemoryDC", _wrap_new_wxMemoryDC, 1 }, - { "wxDC_DrawBitmap", _wrap_wxDC_DrawBitmap, 1 }, - { "wxDC_StartPage", _wrap_wxDC_StartPage, 1 }, - { "wxDC_StartDoc", _wrap_wxDC_StartDoc, 1 }, - { "wxDC_SetUserScale", _wrap_wxDC_SetUserScale, 1 }, - { "wxDC_SetTextForeground", _wrap_wxDC_SetTextForeground, 1 }, - { "wxDC_SetTextBackground", _wrap_wxDC_SetTextBackground, 1 }, - { "wxDC_SetPen", _wrap_wxDC_SetPen, 1 }, - { "wxDC_SetOptimization", _wrap_wxDC_SetOptimization, 1 }, - { "wxDC_SetMapMode", _wrap_wxDC_SetMapMode, 1 }, - { "wxDC_SetLogicalFunction", _wrap_wxDC_SetLogicalFunction, 1 }, - { "wxDC_SetFont", _wrap_wxDC_SetFont, 1 }, - { "wxDC_SetBrush", _wrap_wxDC_SetBrush, 1 }, - { "wxDC_SetPalette", _wrap_wxDC_SetPalette, 1 }, - { "wxDC_SetClippingRegion", _wrap_wxDC_SetClippingRegion, 1 }, - { "wxDC_SetBackgroundMode", _wrap_wxDC_SetBackgroundMode, 1 }, - { "wxDC_SetBackground", _wrap_wxDC_SetBackground, 1 }, - { "wxDC_SetDeviceOrigin", _wrap_wxDC_SetDeviceOrigin, 1 }, - { "wxDC_Ok", _wrap_wxDC_Ok, 1 }, - { "wxDC_MinY", _wrap_wxDC_MinY, 1 }, - { "wxDC_MinX", _wrap_wxDC_MinX, 1 }, - { "wxDC_MaxY", _wrap_wxDC_MaxY, 1 }, - { "wxDC_MaxX", _wrap_wxDC_MaxX, 1 }, - { "wxDC_LogicalToDeviceYRel", _wrap_wxDC_LogicalToDeviceYRel, 1 }, - { "wxDC_LogicalToDeviceY", _wrap_wxDC_LogicalToDeviceY, 1 }, - { "wxDC_LogicalToDeviceXRel", _wrap_wxDC_LogicalToDeviceXRel, 1 }, - { "wxDC_LogicalToDeviceX", _wrap_wxDC_LogicalToDeviceX, 1 }, - { "wxDC_GetTextForeground", _wrap_wxDC_GetTextForeground, 1 }, - { "wxDC_GetFullTextExtent", _wrap_wxDC_GetFullTextExtent, 1 }, - { "wxDC_GetTextExtent", _wrap_wxDC_GetTextExtent, 1 }, - { "wxDC_GetTextBackground", _wrap_wxDC_GetTextBackground, 1 }, - { "wxDC_GetSize", _wrap_wxDC_GetSize, 1 }, - { "wxDC_GetPixel", _wrap_wxDC_GetPixel, 1 }, - { "wxDC_GetPen", _wrap_wxDC_GetPen, 1 }, - { "wxDC_GetOptimization", _wrap_wxDC_GetOptimization, 1 }, - { "wxDC_GetMapMode", _wrap_wxDC_GetMapMode, 1 }, - { "wxDC_GetLogicalFunction", _wrap_wxDC_GetLogicalFunction, 1 }, - { "wxDC_GetFont", _wrap_wxDC_GetFont, 1 }, - { "wxDC_GetClippingBox", _wrap_wxDC_GetClippingBox, 1 }, - { "wxDC_GetCharWidth", _wrap_wxDC_GetCharWidth, 1 }, - { "wxDC_GetCharHeight", _wrap_wxDC_GetCharHeight, 1 }, - { "wxDC_GetBrush", _wrap_wxDC_GetBrush, 1 }, - { "wxDC_GetBackground", _wrap_wxDC_GetBackground, 1 }, - { "wxDC_FloodFill", _wrap_wxDC_FloodFill, 1 }, - { "wxDC_EndPage", _wrap_wxDC_EndPage, 1 }, - { "wxDC_EndDrawing", _wrap_wxDC_EndDrawing, 1 }, - { "wxDC_EndDoc", _wrap_wxDC_EndDoc, 1 }, - { "wxDC_DrawText", _wrap_wxDC_DrawText, 1 }, - { "wxDC_DrawSpline", _wrap_wxDC_DrawSpline, 1 }, - { "wxDC_DrawRoundedRectangle", _wrap_wxDC_DrawRoundedRectangle, 1 }, - { "wxDC_DrawRectangle", _wrap_wxDC_DrawRectangle, 1 }, - { "wxDC_DrawPoint", _wrap_wxDC_DrawPoint, 1 }, - { "wxDC_DrawPolygon", _wrap_wxDC_DrawPolygon, 1 }, - { "wxDC_DrawLines", _wrap_wxDC_DrawLines, 1 }, - { "wxDC_DrawLine", _wrap_wxDC_DrawLine, 1 }, - { "wxDC_DrawIcon", _wrap_wxDC_DrawIcon, 1 }, - { "wxDC_DrawEllipticArc", _wrap_wxDC_DrawEllipticArc, 1 }, - { "wxDC_DrawEllipse", _wrap_wxDC_DrawEllipse, 1 }, - { "wxDC_DrawArc", _wrap_wxDC_DrawArc, 1 }, - { "wxDC_DeviceToLogicalYRel", _wrap_wxDC_DeviceToLogicalYRel, 1 }, - { "wxDC_DeviceToLogicalY", _wrap_wxDC_DeviceToLogicalY, 1 }, - { "wxDC_DeviceToLogicalXRel", _wrap_wxDC_DeviceToLogicalXRel, 1 }, - { "wxDC_DeviceToLogicalX", _wrap_wxDC_DeviceToLogicalX, 1 }, - { "wxDC_DestroyClippingRegion", _wrap_wxDC_DestroyClippingRegion, 1 }, - { "wxDC_CrossHair", _wrap_wxDC_CrossHair, 1 }, - { "wxDC_Clear", _wrap_wxDC_Clear, 1 }, - { "wxDC_Blit", _wrap_wxDC_Blit, 1 }, - { "wxDC_BeginDrawing", _wrap_wxDC_BeginDrawing, 1 }, - { "delete_wxDC", _wrap_delete_wxDC, 1 }, - { "wxBrush_SetStyle", _wrap_wxBrush_SetStyle, 1 }, - { "wxBrush_SetStipple", _wrap_wxBrush_SetStipple, 1 }, - { "wxBrush_SetColour", _wrap_wxBrush_SetColour, 1 }, - { "wxBrush_Ok", _wrap_wxBrush_Ok, 1 }, - { "wxBrush_GetStyle", _wrap_wxBrush_GetStyle, 1 }, - { "wxBrush_GetStipple", _wrap_wxBrush_GetStipple, 1 }, - { "wxBrush_GetColour", _wrap_wxBrush_GetColour, 1 }, - { "new_wxBrush", _wrap_new_wxBrush, 1 }, - { "wxPen_SetWidth", _wrap_wxPen_SetWidth, 1 }, - { "wxPen_SetStyle", _wrap_wxPen_SetStyle, 1 }, - { "wxPen_SetJoin", _wrap_wxPen_SetJoin, 1 }, - { "wxPen_SetColour", _wrap_wxPen_SetColour, 1 }, - { "wxPen_SetCap", _wrap_wxPen_SetCap, 1 }, - { "wxPen_Ok", _wrap_wxPen_Ok, 1 }, - { "wxPen_GetWidth", _wrap_wxPen_GetWidth, 1 }, - { "wxPen_GetStyle", _wrap_wxPen_GetStyle, 1 }, - { "wxPen_GetJoin", _wrap_wxPen_GetJoin, 1 }, - { "wxPen_GetColour", _wrap_wxPen_GetColour, 1 }, - { "wxPen_GetCap", _wrap_wxPen_GetCap, 1 }, - { "new_wxPen", _wrap_new_wxPen, 1 }, - { "wxColour_Get", _wrap_wxColour_Get, 1 }, - { "wxColour_Set", _wrap_wxColour_Set, 1 }, - { "wxColour_Ok", _wrap_wxColour_Ok, 1 }, - { "wxColour_Blue", _wrap_wxColour_Blue, 1 }, - { "wxColour_Green", _wrap_wxColour_Green, 1 }, - { "wxColour_Red", _wrap_wxColour_Red, 1 }, - { "delete_wxColour", _wrap_delete_wxColour, 1 }, - { "new_wxColour", _wrap_new_wxColour, 1 }, - { "wxFont_SetWeight", _wrap_wxFont_SetWeight, 1 }, - { "wxFont_SetUnderlined", _wrap_wxFont_SetUnderlined, 1 }, - { "wxFont_SetStyle", _wrap_wxFont_SetStyle, 1 }, - { "wxFont_SetPointSize", _wrap_wxFont_SetPointSize, 1 }, - { "wxFont_SetFamily", _wrap_wxFont_SetFamily, 1 }, - { "wxFont_SetFaceName", _wrap_wxFont_SetFaceName, 1 }, - { "wxFont_GetWeight", _wrap_wxFont_GetWeight, 1 }, - { "wxFont_GetUnderlined", _wrap_wxFont_GetUnderlined, 1 }, - { "wxFont_GetStyle", _wrap_wxFont_GetStyle, 1 }, - { "wxFont_GetPointSize", _wrap_wxFont_GetPointSize, 1 }, - { "wxFont_GetFamily", _wrap_wxFont_GetFamily, 1 }, - { "wxFont_GetFaceName", _wrap_wxFont_GetFaceName, 1 }, - { "new_wxFont", _wrap_new_wxFont, 1 }, - { "wxCursor_Ok", _wrap_wxCursor_Ok, 1 }, - { "delete_wxCursor", _wrap_delete_wxCursor, 1 }, - { "wxIcon_SetWidth", _wrap_wxIcon_SetWidth, 1 }, - { "wxIcon_SetHeight", _wrap_wxIcon_SetHeight, 1 }, - { "wxIcon_SetDepth", _wrap_wxIcon_SetDepth, 1 }, - { "wxIcon_Ok", _wrap_wxIcon_Ok, 1 }, - { "wxIcon_LoadFile", _wrap_wxIcon_LoadFile, 1 }, - { "wxIcon_GetWidth", _wrap_wxIcon_GetWidth, 1 }, - { "wxIcon_GetHeight", _wrap_wxIcon_GetHeight, 1 }, - { "wxIcon_GetDepth", _wrap_wxIcon_GetDepth, 1 }, - { "delete_wxIcon", _wrap_delete_wxIcon, 1 }, - { "delete_wxMask", _wrap_delete_wxMask, 1 }, - { "new_wxMask", _wrap_new_wxMask, 1 }, - { "wxBitmap_SetWidth", _wrap_wxBitmap_SetWidth, 1 }, - { "wxBitmap_SetMask", _wrap_wxBitmap_SetMask, 1 }, - { "wxBitmap_SetHeight", _wrap_wxBitmap_SetHeight, 1 }, - { "wxBitmap_SetDepth", _wrap_wxBitmap_SetDepth, 1 }, - { "wxBitmap_SaveFile", _wrap_wxBitmap_SaveFile, 1 }, - { "wxBitmap_Ok", _wrap_wxBitmap_Ok, 1 }, - { "wxBitmap_LoadFile", _wrap_wxBitmap_LoadFile, 1 }, - { "wxBitmap_GetWidth", _wrap_wxBitmap_GetWidth, 1 }, - { "wxBitmap_GetMask", _wrap_wxBitmap_GetMask, 1 }, - { "wxBitmap_GetPalette", _wrap_wxBitmap_GetPalette, 1 }, - { "wxBitmap_GetHeight", _wrap_wxBitmap_GetHeight, 1 }, - { "wxBitmap_GetDepth", _wrap_wxBitmap_GetDepth, 1 }, - { "delete_wxBitmap", _wrap_delete_wxBitmap, 1 }, - { "new_wxBitmap", _wrap_new_wxBitmap, 1 }, - { "wxMemoryDCFromDC", _wrap_wxMemoryDCFromDC, 1 }, - { "wxNamedColour", _wrap_wxNamedColour, 1 }, - { "wxStockCursor", _wrap_wxStockCursor, 1 }, - { "wxMaskColour", _wrap_wxMaskColour, 1 }, - { "wxNoRefBitmap", _wrap_wxNoRefBitmap, 1 }, - { "wxEmptyBitmap", _wrap_wxEmptyBitmap, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initgdic)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("gdic", gdicMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"cvar", SWIG_globals); - SWIG_addvarlink(SWIG_globals,"wxNORMAL_FONT",_wrap_wxNORMAL_FONT_get, _wrap_wxNORMAL_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxSMALL_FONT",_wrap_wxSMALL_FONT_get, _wrap_wxSMALL_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxITALIC_FONT",_wrap_wxITALIC_FONT_get, _wrap_wxITALIC_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxSWISS_FONT",_wrap_wxSWISS_FONT_get, _wrap_wxSWISS_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxRED_PEN",_wrap_wxRED_PEN_get, _wrap_wxRED_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxCYAN_PEN",_wrap_wxCYAN_PEN_get, _wrap_wxCYAN_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxGREEN_PEN",_wrap_wxGREEN_PEN_get, _wrap_wxGREEN_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK_PEN",_wrap_wxBLACK_PEN_get, _wrap_wxBLACK_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxWHITE_PEN",_wrap_wxWHITE_PEN_get, _wrap_wxWHITE_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxTRANSPARENT_PEN",_wrap_wxTRANSPARENT_PEN_get, _wrap_wxTRANSPARENT_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK_DASHED_PEN",_wrap_wxBLACK_DASHED_PEN_get, _wrap_wxBLACK_DASHED_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxGREY_PEN",_wrap_wxGREY_PEN_get, _wrap_wxGREY_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxMEDIUM_GREY_PEN",_wrap_wxMEDIUM_GREY_PEN_get, _wrap_wxMEDIUM_GREY_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxLIGHT_GREY_PEN",_wrap_wxLIGHT_GREY_PEN_get, _wrap_wxLIGHT_GREY_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxBLUE_BRUSH",_wrap_wxBLUE_BRUSH_get, _wrap_wxBLUE_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxGREEN_BRUSH",_wrap_wxGREEN_BRUSH_get, _wrap_wxGREEN_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxWHITE_BRUSH",_wrap_wxWHITE_BRUSH_get, _wrap_wxWHITE_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK_BRUSH",_wrap_wxBLACK_BRUSH_get, _wrap_wxBLACK_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxTRANSPARENT_BRUSH",_wrap_wxTRANSPARENT_BRUSH_get, _wrap_wxTRANSPARENT_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxCYAN_BRUSH",_wrap_wxCYAN_BRUSH_get, _wrap_wxCYAN_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxRED_BRUSH",_wrap_wxRED_BRUSH_get, _wrap_wxRED_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxGREY_BRUSH",_wrap_wxGREY_BRUSH_get, _wrap_wxGREY_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxMEDIUM_GREY_BRUSH",_wrap_wxMEDIUM_GREY_BRUSH_get, _wrap_wxMEDIUM_GREY_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxLIGHT_GREY_BRUSH",_wrap_wxLIGHT_GREY_BRUSH_get, _wrap_wxLIGHT_GREY_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK",_wrap_wxBLACK_get, _wrap_wxBLACK_set); - SWIG_addvarlink(SWIG_globals,"wxWHITE",_wrap_wxWHITE_get, _wrap_wxWHITE_set); - SWIG_addvarlink(SWIG_globals,"wxRED",_wrap_wxRED_get, _wrap_wxRED_set); - SWIG_addvarlink(SWIG_globals,"wxBLUE",_wrap_wxBLUE_get, _wrap_wxBLUE_set); - SWIG_addvarlink(SWIG_globals,"wxGREEN",_wrap_wxGREEN_get, _wrap_wxGREEN_set); - SWIG_addvarlink(SWIG_globals,"wxCYAN",_wrap_wxCYAN_get, _wrap_wxCYAN_set); - SWIG_addvarlink(SWIG_globals,"wxLIGHT_GREY",_wrap_wxLIGHT_GREY_get, _wrap_wxLIGHT_GREY_set); - SWIG_addvarlink(SWIG_globals,"wxSTANDARD_CURSOR",_wrap_wxSTANDARD_CURSOR_get, _wrap_wxSTANDARD_CURSOR_set); - SWIG_addvarlink(SWIG_globals,"wxHOURGLASS_CURSOR",_wrap_wxHOURGLASS_CURSOR_get, _wrap_wxHOURGLASS_CURSOR_set); - SWIG_addvarlink(SWIG_globals,"wxCROSS_CURSOR",_wrap_wxCROSS_CURSOR_get, _wrap_wxCROSS_CURSOR_set); - SWIG_addvarlink(SWIG_globals,"wxNullBitmap",_wrap_wxNullBitmap_get, _wrap_wxNullBitmap_set); - SWIG_addvarlink(SWIG_globals,"wxNullIcon",_wrap_wxNullIcon_get, _wrap_wxNullIcon_set); - SWIG_addvarlink(SWIG_globals,"wxNullCursor",_wrap_wxNullCursor_get, _wrap_wxNullCursor_set); - SWIG_addvarlink(SWIG_globals,"wxNullPen",_wrap_wxNullPen_get, _wrap_wxNullPen_set); - SWIG_addvarlink(SWIG_globals,"wxNullBrush",_wrap_wxNullBrush_get, _wrap_wxNullBrush_set); - SWIG_addvarlink(SWIG_globals,"wxNullPalette",_wrap_wxNullPalette_get, _wrap_wxNullPalette_set); - SWIG_addvarlink(SWIG_globals,"wxNullFont",_wrap_wxNullFont_get, _wrap_wxNullFont_set); - SWIG_addvarlink(SWIG_globals,"wxNullColour",_wrap_wxNullColour_get, _wrap_wxNullColour_set); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_NORMAL", PyInt_FromLong((long) wxIMAGELIST_DRAW_NORMAL)); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_TRANSPARENT", PyInt_FromLong((long) wxIMAGELIST_DRAW_TRANSPARENT)); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_SELECTED", PyInt_FromLong((long) wxIMAGELIST_DRAW_SELECTED)); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_FOCUSED", PyInt_FromLong((long) wxIMAGELIST_DRAW_FOCUSED)); - PyDict_SetItemString(d,"wxIMAGE_LIST_NORMAL", PyInt_FromLong((long) wxIMAGE_LIST_NORMAL)); - PyDict_SetItemString(d,"wxIMAGE_LIST_SMALL", PyInt_FromLong((long) wxIMAGE_LIST_SMALL)); - PyDict_SetItemString(d,"wxIMAGE_LIST_STATE", PyInt_FromLong((long) wxIMAGE_LIST_STATE)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxPostScriptDC",SwigwxPostScriptDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxPostScriptDC",SwigwxPostScriptDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_class_wxPostScriptDC",SwigwxPostScriptDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxPostScriptDC",SwigwxPostScriptDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); -} diff --git a/utils/wxPython/src/gtk/gdi.py b/utils/wxPython/src/gtk/gdi.py deleted file mode 100644 index 724c81dd9a..0000000000 --- a/utils/wxPython/src/gtk/gdi.py +++ /dev/null @@ -1,808 +0,0 @@ -# This file was created automatically by SWIG. -import gdic - -from misc import * -class wxBitmapPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxBitmap(self.this) - def GetDepth(self): - val = gdic.wxBitmap_GetDepth(self.this) - return val - def GetHeight(self): - val = gdic.wxBitmap_GetHeight(self.this) - return val - def GetPalette(self): - val = gdic.wxBitmap_GetPalette(self.this) - val = wxPalettePtr(val) - return val - def GetMask(self): - val = gdic.wxBitmap_GetMask(self.this) - val = wxMaskPtr(val) - return val - def GetWidth(self): - val = gdic.wxBitmap_GetWidth(self.this) - return val - def LoadFile(self,arg0,arg1): - val = gdic.wxBitmap_LoadFile(self.this,arg0,arg1) - return val - def Ok(self): - val = gdic.wxBitmap_Ok(self.this) - return val - def SaveFile(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxBitmap_SaveFile,(self.this,arg0,arg1,)+args) - return val - def SetDepth(self,arg0): - val = gdic.wxBitmap_SetDepth(self.this,arg0) - return val - def SetHeight(self,arg0): - val = gdic.wxBitmap_SetHeight(self.this,arg0) - return val - def SetMask(self,arg0): - val = gdic.wxBitmap_SetMask(self.this,arg0.this) - return val - def SetWidth(self,arg0): - val = gdic.wxBitmap_SetWidth(self.this,arg0) - return val - def __repr__(self): - return "" -class wxBitmap(wxBitmapPtr): - def __init__(self,arg0,arg1) : - self.this = gdic.new_wxBitmap(arg0,arg1) - self.thisown = 1 - - - - -class wxMaskPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxMask(self.this) - def __repr__(self): - return "" -class wxMask(wxMaskPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxMask(arg0.this) - self.thisown = 1 - - - - -class wxIconPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxIcon(self.this) - def GetDepth(self): - val = gdic.wxIcon_GetDepth(self.this) - return val - def GetHeight(self): - val = gdic.wxIcon_GetHeight(self.this) - return val - def GetWidth(self): - val = gdic.wxIcon_GetWidth(self.this) - return val - def LoadFile(self,arg0,arg1): - val = gdic.wxIcon_LoadFile(self.this,arg0,arg1) - return val - def Ok(self): - val = gdic.wxIcon_Ok(self.this) - return val - def SetDepth(self,arg0): - val = gdic.wxIcon_SetDepth(self.this,arg0) - return val - def SetHeight(self,arg0): - val = gdic.wxIcon_SetHeight(self.this,arg0) - return val - def SetWidth(self,arg0): - val = gdic.wxIcon_SetWidth(self.this,arg0) - return val - def __repr__(self): - return "" -class wxIcon(wxIconPtr): - def __init__(self,this): - self.this = this - - - - -class wxCursorPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxCursor(self.this) - def Ok(self): - val = gdic.wxCursor_Ok(self.this) - return val - def __repr__(self): - return "" -class wxCursor(wxCursorPtr): - def __init__(self,this): - self.this = this - - - - -class wxFontPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFaceName(self): - val = gdic.wxFont_GetFaceName(self.this) - return val - def GetFamily(self): - val = gdic.wxFont_GetFamily(self.this) - return val - def GetPointSize(self): - val = gdic.wxFont_GetPointSize(self.this) - return val - def GetStyle(self): - val = gdic.wxFont_GetStyle(self.this) - return val - def GetUnderlined(self): - val = gdic.wxFont_GetUnderlined(self.this) - return val - def GetWeight(self): - val = gdic.wxFont_GetWeight(self.this) - return val - def SetFaceName(self,arg0): - val = gdic.wxFont_SetFaceName(self.this,arg0) - return val - def SetFamily(self,arg0): - val = gdic.wxFont_SetFamily(self.this,arg0) - return val - def SetPointSize(self,arg0): - val = gdic.wxFont_SetPointSize(self.this,arg0) - return val - def SetStyle(self,arg0): - val = gdic.wxFont_SetStyle(self.this,arg0) - return val - def SetUnderlined(self,arg0): - val = gdic.wxFont_SetUnderlined(self.this,arg0) - return val - def SetWeight(self,arg0): - val = gdic.wxFont_SetWeight(self.this,arg0) - return val - def __repr__(self): - return "" -class wxFont(wxFontPtr): - def __init__(self,arg0,arg1,arg2,arg3,*args) : - self.this = apply(gdic.new_wxFont,(arg0,arg1,arg2,arg3,)+args) - self.thisown = 1 - - - - -class wxColourPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxColour(self.this) - def Red(self): - val = gdic.wxColour_Red(self.this) - return val - def Green(self): - val = gdic.wxColour_Green(self.this) - return val - def Blue(self): - val = gdic.wxColour_Blue(self.this) - return val - def Ok(self): - val = gdic.wxColour_Ok(self.this) - return val - def Set(self,arg0,arg1,arg2): - val = gdic.wxColour_Set(self.this,arg0,arg1,arg2) - return val - def Get(self): - val = gdic.wxColour_Get(self.this) - return val - def __repr__(self): - return "" -class wxColour(wxColourPtr): - def __init__(self,*args) : - self.this = apply(gdic.new_wxColour,()+args) - self.thisown = 1 - - - - -class wxPenPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCap(self): - val = gdic.wxPen_GetCap(self.this) - return val - def GetColour(self): - val = gdic.wxPen_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetJoin(self): - val = gdic.wxPen_GetJoin(self.this) - return val - def GetStyle(self): - val = gdic.wxPen_GetStyle(self.this) - return val - def GetWidth(self): - val = gdic.wxPen_GetWidth(self.this) - return val - def Ok(self): - val = gdic.wxPen_Ok(self.this) - return val - def SetCap(self,arg0): - val = gdic.wxPen_SetCap(self.this,arg0) - return val - def SetColour(self,arg0): - val = gdic.wxPen_SetColour(self.this,arg0.this) - return val - def SetJoin(self,arg0): - val = gdic.wxPen_SetJoin(self.this,arg0) - return val - def SetStyle(self,arg0): - val = gdic.wxPen_SetStyle(self.this,arg0) - return val - def SetWidth(self,arg0): - val = gdic.wxPen_SetWidth(self.this,arg0) - return val - def __repr__(self): - return "" -class wxPen(wxPenPtr): - def __init__(self,arg0,*args) : - self.this = apply(gdic.new_wxPen,(arg0.this,)+args) - self.thisown = 1 - - - - -class wxBrushPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColour(self): - val = gdic.wxBrush_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetStipple(self): - val = gdic.wxBrush_GetStipple(self.this) - val = wxBitmapPtr(val) - return val - def GetStyle(self): - val = gdic.wxBrush_GetStyle(self.this) - return val - def Ok(self): - val = gdic.wxBrush_Ok(self.this) - return val - def SetColour(self,arg0): - val = gdic.wxBrush_SetColour(self.this,arg0.this) - return val - def SetStipple(self,arg0): - val = gdic.wxBrush_SetStipple(self.this,arg0.this) - return val - def SetStyle(self,arg0): - val = gdic.wxBrush_SetStyle(self.this,arg0) - return val - def __repr__(self): - return "" -class wxBrush(wxBrushPtr): - def __init__(self,arg0,*args) : - self.this = apply(gdic.new_wxBrush,(arg0.this,)+args) - self.thisown = 1 - - - - -class wxDCPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxDC(self.this) - def BeginDrawing(self): - val = gdic.wxDC_BeginDrawing(self.this) - return val - def Blit(self,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7): - val = gdic.wxDC_Blit(self.this,arg0,arg1,arg2,arg3,arg4.this,arg5,arg6,arg7) - return val - def Clear(self): - val = gdic.wxDC_Clear(self.this) - return val - def CrossHair(self,arg0,arg1): - val = gdic.wxDC_CrossHair(self.this,arg0,arg1) - return val - def DestroyClippingRegion(self): - val = gdic.wxDC_DestroyClippingRegion(self.this) - return val - def DeviceToLogicalX(self,arg0): - val = gdic.wxDC_DeviceToLogicalX(self.this,arg0) - return val - def DeviceToLogicalXRel(self,arg0): - val = gdic.wxDC_DeviceToLogicalXRel(self.this,arg0) - return val - def DeviceToLogicalY(self,arg0): - val = gdic.wxDC_DeviceToLogicalY(self.this,arg0) - return val - def DeviceToLogicalYRel(self,arg0): - val = gdic.wxDC_DeviceToLogicalYRel(self.this,arg0) - return val - def DrawArc(self,arg0,arg1,arg2,arg3,arg4,arg5): - val = gdic.wxDC_DrawArc(self.this,arg0,arg1,arg2,arg3,arg4,arg5) - return val - def DrawEllipse(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_DrawEllipse(self.this,arg0,arg1,arg2,arg3) - return val - def DrawEllipticArc(self,arg0,arg1,arg2,arg3,arg4,arg5): - val = gdic.wxDC_DrawEllipticArc(self.this,arg0,arg1,arg2,arg3,arg4,arg5) - return val - def DrawIcon(self,arg0,arg1,arg2): - val = gdic.wxDC_DrawIcon(self.this,arg0.this,arg1,arg2) - return val - def DrawLine(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_DrawLine(self.this,arg0,arg1,arg2,arg3) - return val - def DrawLines(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_DrawLines,(self.this,arg0,)+args) - return val - def DrawPolygon(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_DrawPolygon,(self.this,arg0,)+args) - return val - def DrawPoint(self,arg0,arg1): - val = gdic.wxDC_DrawPoint(self.this,arg0,arg1) - return val - def DrawRectangle(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_DrawRectangle(self.this,arg0,arg1,arg2,arg3) - return val - def DrawRoundedRectangle(self,arg0,arg1,arg2,arg3,*args): - val = apply(gdic.wxDC_DrawRoundedRectangle,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def DrawSpline(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_DrawSpline,(self.this,arg0,)+args) - return val - def DrawText(self,arg0,arg1,arg2): - val = gdic.wxDC_DrawText(self.this,arg0,arg1,arg2) - return val - def EndDoc(self): - val = gdic.wxDC_EndDoc(self.this) - return val - def EndDrawing(self): - val = gdic.wxDC_EndDrawing(self.this) - return val - def EndPage(self): - val = gdic.wxDC_EndPage(self.this) - return val - def FloodFill(self,arg0,arg1,arg2,*args): - val = apply(gdic.wxDC_FloodFill,(self.this,arg0,arg1,arg2.this,)+args) - return val - def GetBackground(self): - val = gdic.wxDC_GetBackground(self.this) - val = wxBrushPtr(val) - return val - def GetBrush(self): - val = gdic.wxDC_GetBrush(self.this) - val = wxBrushPtr(val) - return val - def GetCharHeight(self): - val = gdic.wxDC_GetCharHeight(self.this) - return val - def GetCharWidth(self): - val = gdic.wxDC_GetCharWidth(self.this) - return val - def GetClippingBox(self): - val = gdic.wxDC_GetClippingBox(self.this) - return val - def GetFont(self): - val = gdic.wxDC_GetFont(self.this) - val = wxFontPtr(val) - return val - def GetLogicalFunction(self): - val = gdic.wxDC_GetLogicalFunction(self.this) - return val - def GetMapMode(self): - val = gdic.wxDC_GetMapMode(self.this) - return val - def GetOptimization(self): - val = gdic.wxDC_GetOptimization(self.this) - return val - def GetPen(self): - val = gdic.wxDC_GetPen(self.this) - val = wxPenPtr(val) - return val - def GetPixel(self,arg0,arg1): - val = gdic.wxDC_GetPixel(self.this,arg0,arg1) - val = wxColourPtr(val) - val.thisown = 1 - return val - def GetSize(self): - val = gdic.wxDC_GetSize(self.this) - return val - def GetTextBackground(self): - val = gdic.wxDC_GetTextBackground(self.this) - val = wxColourPtr(val) - return val - def GetTextExtent(self,arg0): - val = gdic.wxDC_GetTextExtent(self.this,arg0) - return val - def GetFullTextExtent(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_GetFullTextExtent,(self.this,arg0,)+args) - return val - def GetTextForeground(self): - val = gdic.wxDC_GetTextForeground(self.this) - val = wxColourPtr(val) - return val - def LogicalToDeviceX(self,arg0): - val = gdic.wxDC_LogicalToDeviceX(self.this,arg0) - return val - def LogicalToDeviceXRel(self,arg0): - val = gdic.wxDC_LogicalToDeviceXRel(self.this,arg0) - return val - def LogicalToDeviceY(self,arg0): - val = gdic.wxDC_LogicalToDeviceY(self.this,arg0) - return val - def LogicalToDeviceYRel(self,arg0): - val = gdic.wxDC_LogicalToDeviceYRel(self.this,arg0) - return val - def MaxX(self): - val = gdic.wxDC_MaxX(self.this) - return val - def MaxY(self): - val = gdic.wxDC_MaxY(self.this) - return val - def MinX(self): - val = gdic.wxDC_MinX(self.this) - return val - def MinY(self): - val = gdic.wxDC_MinY(self.this) - return val - def Ok(self): - val = gdic.wxDC_Ok(self.this) - return val - def SetDeviceOrigin(self,arg0,arg1): - val = gdic.wxDC_SetDeviceOrigin(self.this,arg0,arg1) - return val - def SetBackground(self,arg0): - val = gdic.wxDC_SetBackground(self.this,arg0.this) - return val - def SetBackgroundMode(self,arg0): - val = gdic.wxDC_SetBackgroundMode(self.this,arg0) - return val - def SetClippingRegion(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_SetClippingRegion(self.this,arg0,arg1,arg2,arg3) - return val - def SetPalette(self,arg0): - val = gdic.wxDC_SetPalette(self.this,arg0.this) - return val - def SetBrush(self,arg0): - val = gdic.wxDC_SetBrush(self.this,arg0.this) - return val - def SetFont(self,arg0): - val = gdic.wxDC_SetFont(self.this,arg0.this) - return val - def SetLogicalFunction(self,arg0): - val = gdic.wxDC_SetLogicalFunction(self.this,arg0) - return val - def SetMapMode(self,arg0): - val = gdic.wxDC_SetMapMode(self.this,arg0) - return val - def SetOptimization(self,arg0): - val = gdic.wxDC_SetOptimization(self.this,arg0) - return val - def SetPen(self,arg0): - val = gdic.wxDC_SetPen(self.this,arg0.this) - return val - def SetTextBackground(self,arg0): - val = gdic.wxDC_SetTextBackground(self.this,arg0.this) - return val - def SetTextForeground(self,arg0): - val = gdic.wxDC_SetTextForeground(self.this,arg0.this) - return val - def SetUserScale(self,arg0,arg1): - val = gdic.wxDC_SetUserScale(self.this,arg0,arg1) - return val - def StartDoc(self,arg0): - val = gdic.wxDC_StartDoc(self.this,arg0) - return val - def StartPage(self): - val = gdic.wxDC_StartPage(self.this) - return val - def DrawBitmap(self,arg0,arg1,arg2,*args): - val = apply(gdic.wxDC_DrawBitmap,(self.this,arg0.this,arg1,arg2,)+args) - return val - def __repr__(self): - return "" -class wxDC(wxDCPtr): - def __init__(self,this): - self.this = this - - - - -class wxMemoryDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SelectObject(self,arg0): - val = gdic.wxMemoryDC_SelectObject(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxMemoryDC(wxMemoryDCPtr): - def __init__(self) : - self.this = gdic.new_wxMemoryDC() - self.thisown = 1 - - - - -class wxScreenDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def StartDrawingOnTop(self,arg0): - val = gdic.wxScreenDC_StartDrawingOnTop(self.this,arg0.this) - return val - def StartDrawingOnTopRect(self,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxScreenDC_StartDrawingOnTopRect,(self.this,)+args) - return val - def EndDrawingOnTop(self): - val = gdic.wxScreenDC_EndDrawingOnTop(self.this) - return val - def __repr__(self): - return "" -class wxScreenDC(wxScreenDCPtr): - def __init__(self) : - self.this = gdic.new_wxScreenDC() - self.thisown = 1 - - - - -class wxClientDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxClientDC(wxClientDCPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxClientDC(arg0.this) - self.thisown = 1 - - - - -class wxPaintDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPaintDC(wxPaintDCPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxPaintDC(arg0.this) - self.thisown = 1 - - - - -class wxWindowDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxWindowDC(wxWindowDCPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxWindowDC(arg0.this) - self.thisown = 1 - - - - -class wxPostScriptDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPostScriptDC(wxPostScriptDCPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(gdic.new_wxPostScriptDC,(arg0,)+args) - self.thisown = 1 - - - - -class wxPalettePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxPalette(self.this) - def GetPixel(self,arg0,arg1,arg2): - val = gdic.wxPalette_GetPixel(self.this,arg0,arg1,arg2) - return val - def GetRGB(self,arg0,arg1,arg2,arg3): - val = gdic.wxPalette_GetRGB(self.this,arg0,arg1,arg2,arg3) - return val - def Ok(self): - val = gdic.wxPalette_Ok(self.this) - return val - def __repr__(self): - return "" -class wxPalette(wxPalettePtr): - def __init__(self,arg0,arg1,arg2) : - self.this = gdic.new_wxPalette(arg0,arg1,arg2) - self.thisown = 1 - - - - -class wxImageListPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxImageList(self.this) - def Add(self,arg0): - val = gdic.wxImageList_Add(self.this,arg0.this) - return val - def Replace(self,arg0,arg1): - val = gdic.wxImageList_Replace(self.this,arg0,arg1.this) - return val - def Draw(self,arg0,arg1,arg2,arg3,*args): - val = apply(gdic.wxImageList_Draw,(self.this,arg0,arg1.this,arg2,arg3,)+args) - return val - def GetImageCount(self): - val = gdic.wxImageList_GetImageCount(self.this) - return val - def Remove(self,arg0): - val = gdic.wxImageList_Remove(self.this,arg0) - return val - def RemoveAll(self): - val = gdic.wxImageList_RemoveAll(self.this) - return val - def __repr__(self): - return "" -class wxImageList(wxImageListPtr): - def __init__(self,arg0,arg1,*args) : - self.this = apply(gdic.new_wxImageList,(arg0,arg1,)+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxEmptyBitmap(arg0,arg1,*args): - val = apply(gdic.wxEmptyBitmap,(arg0,arg1,)+args) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - -def wxNoRefBitmap(arg0,arg1): - val = gdic.wxNoRefBitmap(arg0,arg1) - val = wxBitmapPtr(val) - return val - -def wxMaskColour(arg0,arg1): - val = gdic.wxMaskColour(arg0.this,arg1.this) - val = wxMaskPtr(val) - val.thisown = 1 - return val - -def wxStockCursor(arg0): - val = gdic.wxStockCursor(arg0) - val = wxCursorPtr(val) - val.thisown = 1 - return val - -def wxNamedColour(arg0): - val = gdic.wxNamedColour(arg0) - val = wxColourPtr(val) - val.thisown = 1 - return val - -def wxMemoryDCFromDC(arg0): - val = gdic.wxMemoryDCFromDC(arg0.this) - val = wxMemoryDCPtr(val) - val.thisown = 1 - return val - - - -#-------------- VARIABLE WRAPPERS ------------------ - -cvar = gdic.cvar -wxNORMAL_FONT = wxFontPtr(gdic.cvar.wxNORMAL_FONT) -wxSMALL_FONT = wxFontPtr(gdic.cvar.wxSMALL_FONT) -wxITALIC_FONT = wxFontPtr(gdic.cvar.wxITALIC_FONT) -wxSWISS_FONT = wxFontPtr(gdic.cvar.wxSWISS_FONT) -wxRED_PEN = wxPenPtr(gdic.cvar.wxRED_PEN) -wxCYAN_PEN = wxPenPtr(gdic.cvar.wxCYAN_PEN) -wxGREEN_PEN = wxPenPtr(gdic.cvar.wxGREEN_PEN) -wxBLACK_PEN = wxPenPtr(gdic.cvar.wxBLACK_PEN) -wxWHITE_PEN = wxPenPtr(gdic.cvar.wxWHITE_PEN) -wxTRANSPARENT_PEN = wxPenPtr(gdic.cvar.wxTRANSPARENT_PEN) -wxBLACK_DASHED_PEN = wxPenPtr(gdic.cvar.wxBLACK_DASHED_PEN) -wxGREY_PEN = wxPenPtr(gdic.cvar.wxGREY_PEN) -wxMEDIUM_GREY_PEN = wxPenPtr(gdic.cvar.wxMEDIUM_GREY_PEN) -wxLIGHT_GREY_PEN = wxPenPtr(gdic.cvar.wxLIGHT_GREY_PEN) -wxBLUE_BRUSH = wxBrushPtr(gdic.cvar.wxBLUE_BRUSH) -wxGREEN_BRUSH = wxBrushPtr(gdic.cvar.wxGREEN_BRUSH) -wxWHITE_BRUSH = wxBrushPtr(gdic.cvar.wxWHITE_BRUSH) -wxBLACK_BRUSH = wxBrushPtr(gdic.cvar.wxBLACK_BRUSH) -wxTRANSPARENT_BRUSH = wxBrushPtr(gdic.cvar.wxTRANSPARENT_BRUSH) -wxCYAN_BRUSH = wxBrushPtr(gdic.cvar.wxCYAN_BRUSH) -wxRED_BRUSH = wxBrushPtr(gdic.cvar.wxRED_BRUSH) -wxGREY_BRUSH = wxBrushPtr(gdic.cvar.wxGREY_BRUSH) -wxMEDIUM_GREY_BRUSH = wxBrushPtr(gdic.cvar.wxMEDIUM_GREY_BRUSH) -wxLIGHT_GREY_BRUSH = wxBrushPtr(gdic.cvar.wxLIGHT_GREY_BRUSH) -wxBLACK = wxColourPtr(gdic.cvar.wxBLACK) -wxWHITE = wxColourPtr(gdic.cvar.wxWHITE) -wxRED = wxColourPtr(gdic.cvar.wxRED) -wxBLUE = wxColourPtr(gdic.cvar.wxBLUE) -wxGREEN = wxColourPtr(gdic.cvar.wxGREEN) -wxCYAN = wxColourPtr(gdic.cvar.wxCYAN) -wxLIGHT_GREY = wxColourPtr(gdic.cvar.wxLIGHT_GREY) -wxSTANDARD_CURSOR = wxCursorPtr(gdic.cvar.wxSTANDARD_CURSOR) -wxHOURGLASS_CURSOR = wxCursorPtr(gdic.cvar.wxHOURGLASS_CURSOR) -wxCROSS_CURSOR = wxCursorPtr(gdic.cvar.wxCROSS_CURSOR) -wxNullBitmap = wxBitmapPtr(gdic.cvar.wxNullBitmap) -wxNullIcon = wxIconPtr(gdic.cvar.wxNullIcon) -wxNullCursor = wxCursorPtr(gdic.cvar.wxNullCursor) -wxNullPen = wxPenPtr(gdic.cvar.wxNullPen) -wxNullBrush = wxBrushPtr(gdic.cvar.wxNullBrush) -wxNullPalette = wxPalettePtr(gdic.cvar.wxNullPalette) -wxNullFont = wxFontPtr(gdic.cvar.wxNullFont) -wxNullColour = wxColourPtr(gdic.cvar.wxNullColour) -wxIMAGELIST_DRAW_NORMAL = gdic.wxIMAGELIST_DRAW_NORMAL -wxIMAGELIST_DRAW_TRANSPARENT = gdic.wxIMAGELIST_DRAW_TRANSPARENT -wxIMAGELIST_DRAW_SELECTED = gdic.wxIMAGELIST_DRAW_SELECTED -wxIMAGELIST_DRAW_FOCUSED = gdic.wxIMAGELIST_DRAW_FOCUSED -wxIMAGE_LIST_NORMAL = gdic.wxIMAGE_LIST_NORMAL -wxIMAGE_LIST_SMALL = gdic.wxIMAGE_LIST_SMALL -wxIMAGE_LIST_STATE = gdic.wxIMAGE_LIST_STATE diff --git a/utils/wxPython/src/gtk/glcanvas.cpp b/utils/wxPython/src/gtk/glcanvas.cpp deleted file mode 100644 index 66605e1f65..0000000000 --- a/utils/wxPython/src/gtk/glcanvas.cpp +++ /dev/null @@ -1,9533 +0,0 @@ -/* - * FILE : gtk/glcanvas.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initglcanvasc - -#define SWIG_name "glcanvasc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -#ifdef SEPARATE - static wxString wxPyEmptyStr(""); - static wxPoint wxPyDefaultPosition(-1, -1); - static wxSize wxPyDefaultSize(-1, -1); -#endif -static PyObject *_wrap_glArrayElementEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glArrayElementEXT",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glArrayElementEXT(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glColorPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glColorPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorPointerEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawArraysEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLsizei _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glDrawArraysEXT",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawArraysEXT(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlagPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLsizei _arg1; - GLboolean * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glEdgeFlagPointerEXT",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glEdgeFlagPointerEXT. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlagPointerEXT(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPointervEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLvoid ** _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPointervEXT",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPointervEXT. Expected _GLvoid_pp."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPointervEXT(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glIndexPointerEXT",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glIndexPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexPointerEXT(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormalPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glNormalPointerEXT",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glNormalPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormalPointerEXT(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoordPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glTexCoordPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glTexCoordPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoordPointerEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertexPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glVertexPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glVertexPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertexPointerEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorTableEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLsizei _arg2; - GLenum _arg3; - GLenum _arg4; - GLvoid * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiis:glColorTableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glColorTableEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorTableEXT(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetColorTableEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLenum _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glGetColorTableEXT",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glGetColorTableEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetColorTableEXT(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAccum(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glAccum",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glAccum(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAlphaFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLclampf _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glAlphaFunc",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glAlphaFunc(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAreTexturesResident(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLsizei _arg0; - GLuint * _arg1; - GLboolean * _arg2; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iss:glAreTexturesResident",&_arg0,&_argc1,&_argc2)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glAreTexturesResident. Expected _GLuint_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glAreTexturesResident. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glAreTexturesResident(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glArrayElement(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glArrayElement",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glArrayElement(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBegin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glBegin",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glBegin(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBindTexture(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLuint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glBindTexture",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glBindTexture(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLsizei _arg1; - GLfloat _arg2; - GLfloat _arg3; - GLfloat _arg4; - GLfloat _arg5; - GLubyte * _arg6; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiffffs:glBitmap",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of glBitmap. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glBitmap(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBlendFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glBlendFunc",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glBlendFunc(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCallList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glCallList",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCallList(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCallLists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLenum _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glCallLists",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glCallLists. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glCallLists(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbitfield _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glClear",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearAccum(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glClearAccum",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearAccum(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearColor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLclampf _arg0; - GLclampf _arg1; - GLclampf _arg2; - GLclampf _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glClearColor",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearColor(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLclampd _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glClearDepth",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearDepth(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glClearIndex",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearIndex(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearStencil(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glClearStencil",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearStencil(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClipPlane(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glClipPlane",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glClipPlane. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glClipPlane(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3b(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte _arg0; - GLbyte _arg1; - GLbyte _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"bbb:glColor3b",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3b(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3bv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3bv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLbyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3bv. Expected _GLbyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3bv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glColor3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glColor3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glColor3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glColor3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3ub(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte _arg0; - GLubyte _arg1; - GLubyte _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"bbb:glColor3ub",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3ub(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3ubv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3ubv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3ubv. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3ubv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3ui(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLuint _arg1; - GLuint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glColor3ui",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3ui(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3uiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3uiv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3uiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3uiv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3us(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort _arg0; - GLushort _arg1; - GLushort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glColor3us",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3us(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3usv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3usv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3usv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3usv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4b(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte _arg0; - GLbyte _arg1; - GLbyte _arg2; - GLbyte _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"bbbb:glColor4b",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4b(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4bv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4bv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLbyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4bv. Expected _GLbyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4bv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glColor4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glColor4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glColor4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glColor4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4ub(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte _arg0; - GLubyte _arg1; - GLubyte _arg2; - GLubyte _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"bbbb:glColor4ub",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4ub(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4ubv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4ubv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4ubv. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4ubv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4ui(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLuint _arg1; - GLuint _arg2; - GLuint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glColor4ui",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4ui(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4uiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4uiv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4uiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4uiv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4us(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort _arg0; - GLushort _arg1; - GLushort _arg2; - GLushort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glColor4us",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4us(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4usv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4usv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4usv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4usv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _arg0; - GLboolean _arg1; - GLboolean _arg2; - GLboolean _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"bbbb:glColorMask",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorMask(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorMaterial(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glColorMaterial",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorMaterial(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glColorPointer",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glColorPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorPointer(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLenum _arg4; - - self = self; - if(!PyArg_ParseTuple(args,"iiiii:glCopyPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyPixels(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLint _arg3; - GLint _arg4; - GLsizei _arg5; - GLint _arg6; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiii:glCopyTexImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLint _arg3; - GLint _arg4; - GLsizei _arg5; - GLsizei _arg6; - GLint _arg7; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiii:glCopyTexImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexSubImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLint _arg4; - GLsizei _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiii:glCopyTexSubImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexSubImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexSubImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLint _arg4; - GLint _arg5; - GLsizei _arg6; - GLsizei _arg7; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiii:glCopyTexSubImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexSubImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCullFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glCullFace",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCullFace(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDeleteLists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLsizei _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glDeleteLists",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDeleteLists(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDeleteTextures(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glDeleteTextures",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glDeleteTextures. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glDeleteTextures(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDepthFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDepthFunc",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDepthFunc(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDepthMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"b:glDepthMask",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDepthMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDepthRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLclampd _arg0; - GLclampd _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glDepthRange",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDepthRange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDisable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDisable",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDisable(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDisableClientState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDisableClientState",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDisableClientState(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawArrays(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLsizei _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glDrawArrays",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawArrays(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDrawBuffer",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawBuffer(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawElements(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLenum _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glDrawElements",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glDrawElements. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawElements(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLsizei _arg1; - GLenum _arg2; - GLenum _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glDrawPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glDrawPixels. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawPixels(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"b:glEdgeFlag",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlag(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlagPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLvoid * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glEdgeFlagPointer",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glEdgeFlagPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlagPointer(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlagv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEdgeFlagv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEdgeFlagv. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlagv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEnable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glEnable",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEnable(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEnableClientState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glEnableClientState",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEnableClientState(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glEnd")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEnd(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEndList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glEndList")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEndList(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glEvalCoord1d",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1d(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord1dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord1dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glEvalCoord1f",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1f(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord1fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord1fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glEvalCoord2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glEvalCoord2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalMesh1(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glEvalMesh1",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalMesh1(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalMesh2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLint _arg4; - - self = self; - if(!PyArg_ParseTuple(args,"iiiii:glEvalMesh2",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalMesh2(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalPoint1(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glEvalPoint1",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalPoint1(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalPoint2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glEvalPoint2",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalPoint2(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFeedbackBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glFeedbackBuffer",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glFeedbackBuffer. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glFeedbackBuffer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFinish(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glFinish")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFinish(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFlush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glFlush")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFlush(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glFogf",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glFogfv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glFogfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glFogi",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogi(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glFogiv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glFogiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogiv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFrontFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glFrontFace",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFrontFace(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFrustum(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - GLdouble _arg4; - GLdouble _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"dddddd:glFrustum",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFrustum(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGenLists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _result; - GLsizei _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glGenLists",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLuint )glGenLists(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_glGenTextures(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGenTextures",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGenTextures. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGenTextures(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetBooleanv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLboolean * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetBooleanv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetBooleanv. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetBooleanv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetClipPlane(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetClipPlane",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetClipPlane. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetClipPlane(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetDoublev(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetDoublev",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetDoublev. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetDoublev(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetError(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _result; - - self = self; - if(!PyArg_ParseTuple(args,":glGetError")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLenum )glGetError(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_glGetFloatv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetFloatv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetFloatv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetFloatv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetIntegerv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetIntegerv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetIntegerv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetIntegerv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetLightfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetLightfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetLightfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetLightfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetLightiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetLightiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetLightiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetLightiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMapdv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMapdv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMapdv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMapdv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMapfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMapfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMapfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMapfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMapiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMapiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMapiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMapiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMaterialfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMaterialfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMaterialfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMaterialfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMaterialiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMaterialiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMaterialiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMaterialiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPixelMapfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPixelMapfv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPixelMapfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPixelMapfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPixelMapuiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPixelMapuiv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPixelMapuiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPixelMapuiv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPixelMapusv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLushort * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPixelMapusv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPixelMapusv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPixelMapusv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPointerv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLvoid ** _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPointerv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPointerv. Expected _GLvoid_pp."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPointerv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPolygonStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glGetPolygonStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glGetPolygonStipple. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPolygonStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _result; - GLenum _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:glGetString",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLubyte *)glGetString(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_GLubyte_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_glGetTexEnvfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexEnvfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexEnvfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexEnvfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexEnviv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexEnviv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexEnviv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexEnviv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexGendv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexGendv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexGendv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexGendv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexGenfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexGenfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexGenfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexGenfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexGeniv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexGeniv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexGeniv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexGeniv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLenum _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glGetTexImage",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glGetTexImage. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexImage(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexLevelParameterfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLfloat * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glGetTexLevelParameterfv",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glGetTexLevelParameterfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexLevelParameterfv(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexLevelParameteriv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLint * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glGetTexLevelParameteriv",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glGetTexLevelParameteriv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexLevelParameteriv(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexParameterfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexParameterfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexParameterfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexParameterfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexParameteriv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexParameteriv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexParameteriv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexParameteriv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glHint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glHint",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glHint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIndexMask",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glIndexPointer",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glIndexPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexPointer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glIndexd",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexdv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexdv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexdv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexdv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glIndexf",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexf(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexfv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexfv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIndexi",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexi(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexiv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexiv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexs(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"h:glIndexs",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexs(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexsv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexsv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexsv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexsv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexub(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"b:glIndexub",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexub(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexubv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexubv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexubv. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexubv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glInitNames(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glInitNames")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glInitNames(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glInterleavedArrays(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glInterleavedArrays",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glInterleavedArrays. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glInterleavedArrays(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIsEnabled",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glIsEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glIsList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIsList",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glIsList(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glIsTexture(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIsTexture",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glIsTexture(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glLightModelf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glLightModelf",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModelf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightModelfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glLightModelfv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glLightModelfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModelfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightModeli(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glLightModeli",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModeli(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightModeliv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glLightModeliv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glLightModeliv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModeliv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glLightf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glLightfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glLightfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLighti(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glLighti",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLighti(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glLightiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glLightiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLineStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLushort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ih:glLineStipple",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLineStipple(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLineWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glLineWidth",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLineWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glListBase(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glListBase",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glListBase(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadIdentity(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glLoadIdentity")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadIdentity(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadMatrixd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glLoadMatrixd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glLoadMatrixd. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadMatrixd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadMatrixf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glLoadMatrixf",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glLoadMatrixf. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadMatrixf(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glLoadName",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadName(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLogicOp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glLogicOp",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLogicOp(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLint _arg3; - GLint _arg4; - GLdouble * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiis:glMap1d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glMap1d. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap1d(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLint _arg3; - GLint _arg4; - GLfloat * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiis:glMap1f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glMap1f. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap1f(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLint _arg3; - GLint _arg4; - GLdouble _arg5; - GLdouble _arg6; - GLint _arg7; - GLint _arg8; - GLdouble * _arg9; - char * _argc9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiiddiis:glMap2d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argc9)) - return NULL; - if (_argc9) { - if (SWIG_GetPtr(_argc9,(void **) &_arg9,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 10 of glMap2d. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap2d(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLint _arg3; - GLint _arg4; - GLfloat _arg5; - GLfloat _arg6; - GLint _arg7; - GLint _arg8; - GLfloat * _arg9; - char * _argc9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiiffiis:glMap2f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argc9)) - return NULL; - if (_argc9) { - if (SWIG_GetPtr(_argc9,(void **) &_arg9,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 10 of glMap2f. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap2f(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"idd:glMapGrid1d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid1d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iff:glMapGrid1f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid1f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLint _arg3; - GLdouble _arg4; - GLdouble _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"iddidd:glMapGrid2d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid2d(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLint _arg3; - GLfloat _arg4; - GLfloat _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"iffiff:glMapGrid2f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid2f(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMaterialf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glMaterialf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMaterialf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMaterialfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glMaterialfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glMaterialfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMaterialfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMateriali(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glMateriali",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMateriali(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMaterialiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glMaterialiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glMaterialiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMaterialiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMatrixMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glMatrixMode",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMatrixMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMultMatrixd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glMultMatrixd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glMultMatrixd. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMultMatrixd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMultMatrixf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glMultMatrixf",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glMultMatrixf. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMultMatrixf(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNewList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glNewList",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNewList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3b(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte _arg0; - GLbyte _arg1; - GLbyte _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"bbb:glNormal3b",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3b(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3bv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3bv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLbyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3bv. Expected _GLbyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3bv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glNormal3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glNormal3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glNormal3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glNormal3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormalPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glNormalPointer",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glNormalPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormalPointer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glOrtho(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - GLdouble _arg4; - GLdouble _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"dddddd:glOrtho",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glOrtho(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPassThrough(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glPassThrough",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPassThrough(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelMapfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glPixelMapfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPixelMapfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelMapfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelMapuiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLuint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glPixelMapuiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPixelMapuiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelMapuiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelMapusv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLushort * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glPixelMapusv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPixelMapusv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelMapusv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelStoref(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glPixelStoref",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelStoref(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelStorei(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glPixelStorei",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelStorei(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelTransferf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glPixelTransferf",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelTransferf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelTransferi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glPixelTransferi",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelTransferi(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelZoom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glPixelZoom",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelZoom(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPointSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glPointSize",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPointSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPolygonMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glPolygonMode",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPolygonMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPolygonOffset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glPolygonOffset",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPolygonOffset(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPolygonStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glPolygonStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glPolygonStipple. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPolygonStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopAttrib")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopAttrib(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopClientAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopClientAttrib")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopClientAttrib(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopMatrix(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopMatrix")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopMatrix(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopName")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopName(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPrioritizeTextures(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - GLclampf * _arg2; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iss:glPrioritizeTextures",&_arg0,&_argc1,&_argc2)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glPrioritizeTextures. Expected _GLuint_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLclampf_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPrioritizeTextures. Expected _GLclampf_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPrioritizeTextures(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbitfield _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glPushAttrib",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushAttrib(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushClientAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbitfield _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glPushClientAttrib",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushClientAttrib(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushMatrix(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPushMatrix")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushMatrix(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glPushName",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushName(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glRasterPos2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glRasterPos2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glRasterPos2i",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2i(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"hh:glRasterPos2s",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2s(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glRasterPos3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glRasterPos3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glRasterPos3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glRasterPos3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glRasterPos4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glRasterPos4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glRasterPos4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glRasterPos4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glReadBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glReadBuffer",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glReadBuffer(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glReadPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLenum _arg4; - GLenum _arg5; - GLvoid * _arg6; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiis:glReadPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of glReadPixels. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glReadPixels(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glRectd",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectd(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectdv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - GLdouble * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectdv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectdv. Expected _GLdouble_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectdv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectdv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glRectf",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectf(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - GLfloat * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectfv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectfv. Expected _GLfloat_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRecti(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glRecti",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRecti(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - GLint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectiv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectiv. Expected _GLint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectiv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glRects",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRects(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectsv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - GLshort * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectsv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectsv. Expected _GLshort_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectsv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectsv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRenderMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _result; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glRenderMode",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLint )glRenderMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_glRotated(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glRotated",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRotated(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRotatef(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glRotatef",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRotatef(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glScaled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glScaled",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glScaled(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glScalef(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glScalef",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glScalef(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glScissor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glScissor",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glScissor(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glSelectBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glSelectBuffer",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glSelectBuffer. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glSelectBuffer(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glShadeModel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glShadeModel",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glShadeModel(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glStencilFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLuint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glStencilFunc",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glStencilFunc(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glStencilMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glStencilMask",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glStencilMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glStencilOp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLenum _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glStencilOp",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glStencilOp(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glTexCoord1d",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1d(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glTexCoord1f",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1f(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glTexCoord1i",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1i(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"h:glTexCoord1s",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1s(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glTexCoord2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glTexCoord2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glTexCoord2i",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2i(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"hh:glTexCoord2s",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2s(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glTexCoord3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glTexCoord3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexCoord3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glTexCoord3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glTexCoord4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glTexCoord4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glTexCoord4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glTexCoord4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoordPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glTexCoordPointer",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glTexCoordPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoordPointer(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnvf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glTexEnvf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnvf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnvfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexEnvfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexEnvfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnvfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnvi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexEnvi",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnvi(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnviv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexEnviv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexEnviv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnviv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGend(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iid:glTexGend",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGend(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGendv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexGendv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexGendv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGendv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGenf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glTexGenf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGenf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGenfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexGenfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexGenfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGenfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGeni(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexGeni",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGeni(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGeniv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexGeniv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexGeniv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGeniv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLsizei _arg3; - GLint _arg4; - GLenum _arg5; - GLenum _arg6; - GLvoid * _arg7; - char * _argc7 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiis:glTexImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_argc7)) - return NULL; - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of glTexImage1D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLsizei _arg3; - GLsizei _arg4; - GLint _arg5; - GLenum _arg6; - GLenum _arg7; - GLvoid * _arg8; - char * _argc8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiis:glTexImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argc8)) - return NULL; - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of glTexImage2D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameterf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glTexParameterf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameterf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameterfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexParameterfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexParameterfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameterfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameteri(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexParameteri",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameteri(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameteriv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexParameteriv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexParameteriv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameteriv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexSubImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLsizei _arg3; - GLenum _arg4; - GLenum _arg5; - GLvoid * _arg6; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiis:glTexSubImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of glTexSubImage1D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexSubImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexSubImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLsizei _arg4; - GLsizei _arg5; - GLenum _arg6; - GLenum _arg7; - GLvoid * _arg8; - char * _argc8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiis:glTexSubImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argc8)) - return NULL; - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of glTexSubImage2D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexSubImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTranslated(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glTranslated",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTranslated(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTranslatef(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glTranslatef",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTranslatef(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glVertex2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glVertex2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glVertex2i",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2i(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"hh:glVertex2s",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2s(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glVertex3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glVertex3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glVertex3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glVertex3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glVertex4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glVertex4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glVertex4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glVertex4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertexPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glVertexPointer",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glVertexPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertexPointer(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glViewport(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glViewport",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glViewport(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxGLContext(_swigarg0,_swigarg1,_swigarg2) (new wxGLContext(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxGLContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _result; - bool _arg0; - wxWindow * _arg1; - wxPalette * _arg2 = &wxNullPalette; - int tempbool0; - char * _argc1 = 0; - char * _argc2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"is|s:new_wxGLContext",&tempbool0,&_argc1,&_argc2)) - return NULL; - _arg0 = (bool ) tempbool0; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxGLContext. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGLContext. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGLContext *)new_wxGLContext(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxGLContext(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGLContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxGLContext",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxGLContext. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxGLContext(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetCurrent(_swigobj) (_swigobj->SetCurrent()) -static PyObject *_wrap_wxGLContext_SetCurrent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_SetCurrent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetCurrent. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetCurrent(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxGLContext_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGLContext_SetColour",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetColour. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetColour(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SwapBuffers(_swigobj) (_swigobj->SwapBuffers()) -static PyObject *_wrap_wxGLContext_SwapBuffers(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_SwapBuffers",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SwapBuffers. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SwapBuffers(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetupPixelFormat(_swigobj) (_swigobj->SetupPixelFormat()) -static PyObject *_wrap_wxGLContext_SetupPixelFormat(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_SetupPixelFormat",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetupPixelFormat. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetupPixelFormat(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetupPalette(_swigobj,_swigarg0) (_swigobj->SetupPalette(_swigarg0)) -static PyObject *_wrap_wxGLContext_SetupPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - wxPalette * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGLContext_SetupPalette",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetupPalette. Expected _wxGLContext_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGLContext_SetupPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetupPalette(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_CreateDefaultPalette(_swigobj) (_swigobj->CreateDefaultPalette()) -static PyObject *_wrap_wxGLContext_CreateDefaultPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - wxGLContext * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_CreateDefaultPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_CreateDefaultPalette. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPalette (wxGLContext_CreateDefaultPalette(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGLContext_GetPalette(_swigobj) (_swigobj->GetPalette()) -static PyObject *_wrap_wxGLContext_GetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - wxGLContext * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_GetPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_GetPalette. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPalette *)wxGLContext_GetPalette(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGLContext_GetWindow(_swigobj) (_swigobj->GetWindow()) -static PyObject *_wrap_wxGLContext_GetWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxGLContext * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_GetWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_GetWindow. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxGLContext_GetWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxGLCanvasTowxScrolledWindow(void *ptr) { - wxGLCanvas *src; - wxScrolledWindow *dest; - src = (wxGLCanvas *) ptr; - dest = (wxScrolledWindow *) src; - return (void *) dest; -} - -static void *SwigwxGLCanvasTowxWindow(void *ptr) { - wxGLCanvas *src; - wxWindow *dest; - src = (wxGLCanvas *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxGLCanvasTowxEvtHandler(void *ptr) { - wxGLCanvas *src; - wxEvtHandler *dest; - src = (wxGLCanvas *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxGLCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxGLCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxGLCanvas(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "GLCanvas"; - int * _arg6 = 0; - wxPalette * _arg7 = &wxNullPalette; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc6 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|isslsss:new_wxGLCanvas",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5,&_argc6,&_argc7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGLCanvas. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGLCanvas. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGLCanvas. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_int_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxGLCanvas. Expected _int_p."); - return NULL; - } - } - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxGLCanvas. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGLCanvas *)new_wxGLCanvas(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLCanvas_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGLCanvas_SetCurrent(_swigobj) (_swigobj->SetCurrent()) -static PyObject *_wrap_wxGLCanvas_SetCurrent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLCanvas_SetCurrent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_SetCurrent. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLCanvas_SetCurrent(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLCanvas_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxGLCanvas_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - char * _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGLCanvas_SetColour",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_SetColour. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLCanvas_SetColour(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLCanvas_SwapBuffers(_swigobj) (_swigobj->SwapBuffers()) -static PyObject *_wrap_wxGLCanvas_SwapBuffers(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLCanvas_SwapBuffers",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_SwapBuffers. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLCanvas_SwapBuffers(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLCanvas_GetContext(_swigobj) (_swigobj->GetContext()) -static PyObject *_wrap_wxGLCanvas_GetContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _result; - wxGLCanvas * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLCanvas_GetContext",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_GetContext. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGLContext *)wxGLCanvas_GetContext(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef glcanvascMethods[] = { - { "wxGLCanvas_GetContext", _wrap_wxGLCanvas_GetContext, 1 }, - { "wxGLCanvas_SwapBuffers", _wrap_wxGLCanvas_SwapBuffers, 1 }, - { "wxGLCanvas_SetColour", _wrap_wxGLCanvas_SetColour, 1 }, - { "wxGLCanvas_SetCurrent", _wrap_wxGLCanvas_SetCurrent, 1 }, - { "new_wxGLCanvas", _wrap_new_wxGLCanvas, 1 }, - { "wxGLContext_GetWindow", _wrap_wxGLContext_GetWindow, 1 }, - { "wxGLContext_GetPalette", _wrap_wxGLContext_GetPalette, 1 }, - { "wxGLContext_CreateDefaultPalette", _wrap_wxGLContext_CreateDefaultPalette, 1 }, - { "wxGLContext_SetupPalette", _wrap_wxGLContext_SetupPalette, 1 }, - { "wxGLContext_SetupPixelFormat", _wrap_wxGLContext_SetupPixelFormat, 1 }, - { "wxGLContext_SwapBuffers", _wrap_wxGLContext_SwapBuffers, 1 }, - { "wxGLContext_SetColour", _wrap_wxGLContext_SetColour, 1 }, - { "wxGLContext_SetCurrent", _wrap_wxGLContext_SetCurrent, 1 }, - { "delete_wxGLContext", _wrap_delete_wxGLContext, 1 }, - { "new_wxGLContext", _wrap_new_wxGLContext, 1 }, - { "glViewport", _wrap_glViewport, 1 }, - { "glVertexPointer", _wrap_glVertexPointer, 1 }, - { "glVertex4sv", _wrap_glVertex4sv, 1 }, - { "glVertex4s", _wrap_glVertex4s, 1 }, - { "glVertex4iv", _wrap_glVertex4iv, 1 }, - { "glVertex4i", _wrap_glVertex4i, 1 }, - { "glVertex4fv", _wrap_glVertex4fv, 1 }, - { "glVertex4f", _wrap_glVertex4f, 1 }, - { "glVertex4dv", _wrap_glVertex4dv, 1 }, - { "glVertex4d", _wrap_glVertex4d, 1 }, - { "glVertex3sv", _wrap_glVertex3sv, 1 }, - { "glVertex3s", _wrap_glVertex3s, 1 }, - { "glVertex3iv", _wrap_glVertex3iv, 1 }, - { "glVertex3i", _wrap_glVertex3i, 1 }, - { "glVertex3fv", _wrap_glVertex3fv, 1 }, - { "glVertex3f", _wrap_glVertex3f, 1 }, - { "glVertex3dv", _wrap_glVertex3dv, 1 }, - { "glVertex3d", _wrap_glVertex3d, 1 }, - { "glVertex2sv", _wrap_glVertex2sv, 1 }, - { "glVertex2s", _wrap_glVertex2s, 1 }, - { "glVertex2iv", _wrap_glVertex2iv, 1 }, - { "glVertex2i", _wrap_glVertex2i, 1 }, - { "glVertex2fv", _wrap_glVertex2fv, 1 }, - { "glVertex2f", _wrap_glVertex2f, 1 }, - { "glVertex2dv", _wrap_glVertex2dv, 1 }, - { "glVertex2d", _wrap_glVertex2d, 1 }, - { "glTranslatef", _wrap_glTranslatef, 1 }, - { "glTranslated", _wrap_glTranslated, 1 }, - { "glTexSubImage2D", _wrap_glTexSubImage2D, 1 }, - { "glTexSubImage1D", _wrap_glTexSubImage1D, 1 }, - { "glTexParameteriv", _wrap_glTexParameteriv, 1 }, - { "glTexParameteri", _wrap_glTexParameteri, 1 }, - { "glTexParameterfv", _wrap_glTexParameterfv, 1 }, - { "glTexParameterf", _wrap_glTexParameterf, 1 }, - { "glTexImage2D", _wrap_glTexImage2D, 1 }, - { "glTexImage1D", _wrap_glTexImage1D, 1 }, - { "glTexGeniv", _wrap_glTexGeniv, 1 }, - { "glTexGeni", _wrap_glTexGeni, 1 }, - { "glTexGenfv", _wrap_glTexGenfv, 1 }, - { "glTexGenf", _wrap_glTexGenf, 1 }, - { "glTexGendv", _wrap_glTexGendv, 1 }, - { "glTexGend", _wrap_glTexGend, 1 }, - { "glTexEnviv", _wrap_glTexEnviv, 1 }, - { "glTexEnvi", _wrap_glTexEnvi, 1 }, - { "glTexEnvfv", _wrap_glTexEnvfv, 1 }, - { "glTexEnvf", _wrap_glTexEnvf, 1 }, - { "glTexCoordPointer", _wrap_glTexCoordPointer, 1 }, - { "glTexCoord4sv", _wrap_glTexCoord4sv, 1 }, - { "glTexCoord4s", _wrap_glTexCoord4s, 1 }, - { "glTexCoord4iv", _wrap_glTexCoord4iv, 1 }, - { "glTexCoord4i", _wrap_glTexCoord4i, 1 }, - { "glTexCoord4fv", _wrap_glTexCoord4fv, 1 }, - { "glTexCoord4f", _wrap_glTexCoord4f, 1 }, - { "glTexCoord4dv", _wrap_glTexCoord4dv, 1 }, - { "glTexCoord4d", _wrap_glTexCoord4d, 1 }, - { "glTexCoord3sv", _wrap_glTexCoord3sv, 1 }, - { "glTexCoord3s", _wrap_glTexCoord3s, 1 }, - { "glTexCoord3iv", _wrap_glTexCoord3iv, 1 }, - { "glTexCoord3i", _wrap_glTexCoord3i, 1 }, - { "glTexCoord3fv", _wrap_glTexCoord3fv, 1 }, - { "glTexCoord3f", _wrap_glTexCoord3f, 1 }, - { "glTexCoord3dv", _wrap_glTexCoord3dv, 1 }, - { "glTexCoord3d", _wrap_glTexCoord3d, 1 }, - { "glTexCoord2sv", _wrap_glTexCoord2sv, 1 }, - { "glTexCoord2s", _wrap_glTexCoord2s, 1 }, - { "glTexCoord2iv", _wrap_glTexCoord2iv, 1 }, - { "glTexCoord2i", _wrap_glTexCoord2i, 1 }, - { "glTexCoord2fv", _wrap_glTexCoord2fv, 1 }, - { "glTexCoord2f", _wrap_glTexCoord2f, 1 }, - { "glTexCoord2dv", _wrap_glTexCoord2dv, 1 }, - { "glTexCoord2d", _wrap_glTexCoord2d, 1 }, - { "glTexCoord1sv", _wrap_glTexCoord1sv, 1 }, - { "glTexCoord1s", _wrap_glTexCoord1s, 1 }, - { "glTexCoord1iv", _wrap_glTexCoord1iv, 1 }, - { "glTexCoord1i", _wrap_glTexCoord1i, 1 }, - { "glTexCoord1fv", _wrap_glTexCoord1fv, 1 }, - { "glTexCoord1f", _wrap_glTexCoord1f, 1 }, - { "glTexCoord1dv", _wrap_glTexCoord1dv, 1 }, - { "glTexCoord1d", _wrap_glTexCoord1d, 1 }, - { "glStencilOp", _wrap_glStencilOp, 1 }, - { "glStencilMask", _wrap_glStencilMask, 1 }, - { "glStencilFunc", _wrap_glStencilFunc, 1 }, - { "glShadeModel", _wrap_glShadeModel, 1 }, - { "glSelectBuffer", _wrap_glSelectBuffer, 1 }, - { "glScissor", _wrap_glScissor, 1 }, - { "glScalef", _wrap_glScalef, 1 }, - { "glScaled", _wrap_glScaled, 1 }, - { "glRotatef", _wrap_glRotatef, 1 }, - { "glRotated", _wrap_glRotated, 1 }, - { "glRenderMode", _wrap_glRenderMode, 1 }, - { "glRectsv", _wrap_glRectsv, 1 }, - { "glRects", _wrap_glRects, 1 }, - { "glRectiv", _wrap_glRectiv, 1 }, - { "glRecti", _wrap_glRecti, 1 }, - { "glRectfv", _wrap_glRectfv, 1 }, - { "glRectf", _wrap_glRectf, 1 }, - { "glRectdv", _wrap_glRectdv, 1 }, - { "glRectd", _wrap_glRectd, 1 }, - { "glReadPixels", _wrap_glReadPixels, 1 }, - { "glReadBuffer", _wrap_glReadBuffer, 1 }, - { "glRasterPos4sv", _wrap_glRasterPos4sv, 1 }, - { "glRasterPos4s", _wrap_glRasterPos4s, 1 }, - { "glRasterPos4iv", _wrap_glRasterPos4iv, 1 }, - { "glRasterPos4i", _wrap_glRasterPos4i, 1 }, - { "glRasterPos4fv", _wrap_glRasterPos4fv, 1 }, - { "glRasterPos4f", _wrap_glRasterPos4f, 1 }, - { "glRasterPos4dv", _wrap_glRasterPos4dv, 1 }, - { "glRasterPos4d", _wrap_glRasterPos4d, 1 }, - { "glRasterPos3sv", _wrap_glRasterPos3sv, 1 }, - { "glRasterPos3s", _wrap_glRasterPos3s, 1 }, - { "glRasterPos3iv", _wrap_glRasterPos3iv, 1 }, - { "glRasterPos3i", _wrap_glRasterPos3i, 1 }, - { "glRasterPos3fv", _wrap_glRasterPos3fv, 1 }, - { "glRasterPos3f", _wrap_glRasterPos3f, 1 }, - { "glRasterPos3dv", _wrap_glRasterPos3dv, 1 }, - { "glRasterPos3d", _wrap_glRasterPos3d, 1 }, - { "glRasterPos2sv", _wrap_glRasterPos2sv, 1 }, - { "glRasterPos2s", _wrap_glRasterPos2s, 1 }, - { "glRasterPos2iv", _wrap_glRasterPos2iv, 1 }, - { "glRasterPos2i", _wrap_glRasterPos2i, 1 }, - { "glRasterPos2fv", _wrap_glRasterPos2fv, 1 }, - { "glRasterPos2f", _wrap_glRasterPos2f, 1 }, - { "glRasterPos2dv", _wrap_glRasterPos2dv, 1 }, - { "glRasterPos2d", _wrap_glRasterPos2d, 1 }, - { "glPushName", _wrap_glPushName, 1 }, - { "glPushMatrix", _wrap_glPushMatrix, 1 }, - { "glPushClientAttrib", _wrap_glPushClientAttrib, 1 }, - { "glPushAttrib", _wrap_glPushAttrib, 1 }, - { "glPrioritizeTextures", _wrap_glPrioritizeTextures, 1 }, - { "glPopName", _wrap_glPopName, 1 }, - { "glPopMatrix", _wrap_glPopMatrix, 1 }, - { "glPopClientAttrib", _wrap_glPopClientAttrib, 1 }, - { "glPopAttrib", _wrap_glPopAttrib, 1 }, - { "glPolygonStipple", _wrap_glPolygonStipple, 1 }, - { "glPolygonOffset", _wrap_glPolygonOffset, 1 }, - { "glPolygonMode", _wrap_glPolygonMode, 1 }, - { "glPointSize", _wrap_glPointSize, 1 }, - { "glPixelZoom", _wrap_glPixelZoom, 1 }, - { "glPixelTransferi", _wrap_glPixelTransferi, 1 }, - { "glPixelTransferf", _wrap_glPixelTransferf, 1 }, - { "glPixelStorei", _wrap_glPixelStorei, 1 }, - { "glPixelStoref", _wrap_glPixelStoref, 1 }, - { "glPixelMapusv", _wrap_glPixelMapusv, 1 }, - { "glPixelMapuiv", _wrap_glPixelMapuiv, 1 }, - { "glPixelMapfv", _wrap_glPixelMapfv, 1 }, - { "glPassThrough", _wrap_glPassThrough, 1 }, - { "glOrtho", _wrap_glOrtho, 1 }, - { "glNormalPointer", _wrap_glNormalPointer, 1 }, - { "glNormal3sv", _wrap_glNormal3sv, 1 }, - { "glNormal3s", _wrap_glNormal3s, 1 }, - { "glNormal3iv", _wrap_glNormal3iv, 1 }, - { "glNormal3i", _wrap_glNormal3i, 1 }, - { "glNormal3fv", _wrap_glNormal3fv, 1 }, - { "glNormal3f", _wrap_glNormal3f, 1 }, - { "glNormal3dv", _wrap_glNormal3dv, 1 }, - { "glNormal3d", _wrap_glNormal3d, 1 }, - { "glNormal3bv", _wrap_glNormal3bv, 1 }, - { "glNormal3b", _wrap_glNormal3b, 1 }, - { "glNewList", _wrap_glNewList, 1 }, - { "glMultMatrixf", _wrap_glMultMatrixf, 1 }, - { "glMultMatrixd", _wrap_glMultMatrixd, 1 }, - { "glMatrixMode", _wrap_glMatrixMode, 1 }, - { "glMaterialiv", _wrap_glMaterialiv, 1 }, - { "glMateriali", _wrap_glMateriali, 1 }, - { "glMaterialfv", _wrap_glMaterialfv, 1 }, - { "glMaterialf", _wrap_glMaterialf, 1 }, - { "glMapGrid2f", _wrap_glMapGrid2f, 1 }, - { "glMapGrid2d", _wrap_glMapGrid2d, 1 }, - { "glMapGrid1f", _wrap_glMapGrid1f, 1 }, - { "glMapGrid1d", _wrap_glMapGrid1d, 1 }, - { "glMap2f", _wrap_glMap2f, 1 }, - { "glMap2d", _wrap_glMap2d, 1 }, - { "glMap1f", _wrap_glMap1f, 1 }, - { "glMap1d", _wrap_glMap1d, 1 }, - { "glLogicOp", _wrap_glLogicOp, 1 }, - { "glLoadName", _wrap_glLoadName, 1 }, - { "glLoadMatrixf", _wrap_glLoadMatrixf, 1 }, - { "glLoadMatrixd", _wrap_glLoadMatrixd, 1 }, - { "glLoadIdentity", _wrap_glLoadIdentity, 1 }, - { "glListBase", _wrap_glListBase, 1 }, - { "glLineWidth", _wrap_glLineWidth, 1 }, - { "glLineStipple", _wrap_glLineStipple, 1 }, - { "glLightiv", _wrap_glLightiv, 1 }, - { "glLighti", _wrap_glLighti, 1 }, - { "glLightfv", _wrap_glLightfv, 1 }, - { "glLightf", _wrap_glLightf, 1 }, - { "glLightModeliv", _wrap_glLightModeliv, 1 }, - { "glLightModeli", _wrap_glLightModeli, 1 }, - { "glLightModelfv", _wrap_glLightModelfv, 1 }, - { "glLightModelf", _wrap_glLightModelf, 1 }, - { "glIsTexture", _wrap_glIsTexture, 1 }, - { "glIsList", _wrap_glIsList, 1 }, - { "glIsEnabled", _wrap_glIsEnabled, 1 }, - { "glInterleavedArrays", _wrap_glInterleavedArrays, 1 }, - { "glInitNames", _wrap_glInitNames, 1 }, - { "glIndexubv", _wrap_glIndexubv, 1 }, - { "glIndexub", _wrap_glIndexub, 1 }, - { "glIndexsv", _wrap_glIndexsv, 1 }, - { "glIndexs", _wrap_glIndexs, 1 }, - { "glIndexiv", _wrap_glIndexiv, 1 }, - { "glIndexi", _wrap_glIndexi, 1 }, - { "glIndexfv", _wrap_glIndexfv, 1 }, - { "glIndexf", _wrap_glIndexf, 1 }, - { "glIndexdv", _wrap_glIndexdv, 1 }, - { "glIndexd", _wrap_glIndexd, 1 }, - { "glIndexPointer", _wrap_glIndexPointer, 1 }, - { "glIndexMask", _wrap_glIndexMask, 1 }, - { "glHint", _wrap_glHint, 1 }, - { "glGetTexParameteriv", _wrap_glGetTexParameteriv, 1 }, - { "glGetTexParameterfv", _wrap_glGetTexParameterfv, 1 }, - { "glGetTexLevelParameteriv", _wrap_glGetTexLevelParameteriv, 1 }, - { "glGetTexLevelParameterfv", _wrap_glGetTexLevelParameterfv, 1 }, - { "glGetTexImage", _wrap_glGetTexImage, 1 }, - { "glGetTexGeniv", _wrap_glGetTexGeniv, 1 }, - { "glGetTexGenfv", _wrap_glGetTexGenfv, 1 }, - { "glGetTexGendv", _wrap_glGetTexGendv, 1 }, - { "glGetTexEnviv", _wrap_glGetTexEnviv, 1 }, - { "glGetTexEnvfv", _wrap_glGetTexEnvfv, 1 }, - { "glGetString", _wrap_glGetString, 1 }, - { "glGetPolygonStipple", _wrap_glGetPolygonStipple, 1 }, - { "glGetPointerv", _wrap_glGetPointerv, 1 }, - { "glGetPixelMapusv", _wrap_glGetPixelMapusv, 1 }, - { "glGetPixelMapuiv", _wrap_glGetPixelMapuiv, 1 }, - { "glGetPixelMapfv", _wrap_glGetPixelMapfv, 1 }, - { "glGetMaterialiv", _wrap_glGetMaterialiv, 1 }, - { "glGetMaterialfv", _wrap_glGetMaterialfv, 1 }, - { "glGetMapiv", _wrap_glGetMapiv, 1 }, - { "glGetMapfv", _wrap_glGetMapfv, 1 }, - { "glGetMapdv", _wrap_glGetMapdv, 1 }, - { "glGetLightiv", _wrap_glGetLightiv, 1 }, - { "glGetLightfv", _wrap_glGetLightfv, 1 }, - { "glGetIntegerv", _wrap_glGetIntegerv, 1 }, - { "glGetFloatv", _wrap_glGetFloatv, 1 }, - { "glGetError", _wrap_glGetError, 1 }, - { "glGetDoublev", _wrap_glGetDoublev, 1 }, - { "glGetClipPlane", _wrap_glGetClipPlane, 1 }, - { "glGetBooleanv", _wrap_glGetBooleanv, 1 }, - { "glGenTextures", _wrap_glGenTextures, 1 }, - { "glGenLists", _wrap_glGenLists, 1 }, - { "glFrustum", _wrap_glFrustum, 1 }, - { "glFrontFace", _wrap_glFrontFace, 1 }, - { "glFogiv", _wrap_glFogiv, 1 }, - { "glFogi", _wrap_glFogi, 1 }, - { "glFogfv", _wrap_glFogfv, 1 }, - { "glFogf", _wrap_glFogf, 1 }, - { "glFlush", _wrap_glFlush, 1 }, - { "glFinish", _wrap_glFinish, 1 }, - { "glFeedbackBuffer", _wrap_glFeedbackBuffer, 1 }, - { "glEvalPoint2", _wrap_glEvalPoint2, 1 }, - { "glEvalPoint1", _wrap_glEvalPoint1, 1 }, - { "glEvalMesh2", _wrap_glEvalMesh2, 1 }, - { "glEvalMesh1", _wrap_glEvalMesh1, 1 }, - { "glEvalCoord2fv", _wrap_glEvalCoord2fv, 1 }, - { "glEvalCoord2f", _wrap_glEvalCoord2f, 1 }, - { "glEvalCoord2dv", _wrap_glEvalCoord2dv, 1 }, - { "glEvalCoord2d", _wrap_glEvalCoord2d, 1 }, - { "glEvalCoord1fv", _wrap_glEvalCoord1fv, 1 }, - { "glEvalCoord1f", _wrap_glEvalCoord1f, 1 }, - { "glEvalCoord1dv", _wrap_glEvalCoord1dv, 1 }, - { "glEvalCoord1d", _wrap_glEvalCoord1d, 1 }, - { "glEndList", _wrap_glEndList, 1 }, - { "glEnd", _wrap_glEnd, 1 }, - { "glEnableClientState", _wrap_glEnableClientState, 1 }, - { "glEnable", _wrap_glEnable, 1 }, - { "glEdgeFlagv", _wrap_glEdgeFlagv, 1 }, - { "glEdgeFlagPointer", _wrap_glEdgeFlagPointer, 1 }, - { "glEdgeFlag", _wrap_glEdgeFlag, 1 }, - { "glDrawPixels", _wrap_glDrawPixels, 1 }, - { "glDrawElements", _wrap_glDrawElements, 1 }, - { "glDrawBuffer", _wrap_glDrawBuffer, 1 }, - { "glDrawArrays", _wrap_glDrawArrays, 1 }, - { "glDisableClientState", _wrap_glDisableClientState, 1 }, - { "glDisable", _wrap_glDisable, 1 }, - { "glDepthRange", _wrap_glDepthRange, 1 }, - { "glDepthMask", _wrap_glDepthMask, 1 }, - { "glDepthFunc", _wrap_glDepthFunc, 1 }, - { "glDeleteTextures", _wrap_glDeleteTextures, 1 }, - { "glDeleteLists", _wrap_glDeleteLists, 1 }, - { "glCullFace", _wrap_glCullFace, 1 }, - { "glCopyTexSubImage2D", _wrap_glCopyTexSubImage2D, 1 }, - { "glCopyTexSubImage1D", _wrap_glCopyTexSubImage1D, 1 }, - { "glCopyTexImage2D", _wrap_glCopyTexImage2D, 1 }, - { "glCopyTexImage1D", _wrap_glCopyTexImage1D, 1 }, - { "glCopyPixels", _wrap_glCopyPixels, 1 }, - { "glColorPointer", _wrap_glColorPointer, 1 }, - { "glColorMaterial", _wrap_glColorMaterial, 1 }, - { "glColorMask", _wrap_glColorMask, 1 }, - { "glColor4usv", _wrap_glColor4usv, 1 }, - { "glColor4us", _wrap_glColor4us, 1 }, - { "glColor4uiv", _wrap_glColor4uiv, 1 }, - { "glColor4ui", _wrap_glColor4ui, 1 }, - { "glColor4ubv", _wrap_glColor4ubv, 1 }, - { "glColor4ub", _wrap_glColor4ub, 1 }, - { "glColor4sv", _wrap_glColor4sv, 1 }, - { "glColor4s", _wrap_glColor4s, 1 }, - { "glColor4iv", _wrap_glColor4iv, 1 }, - { "glColor4i", _wrap_glColor4i, 1 }, - { "glColor4fv", _wrap_glColor4fv, 1 }, - { "glColor4f", _wrap_glColor4f, 1 }, - { "glColor4dv", _wrap_glColor4dv, 1 }, - { "glColor4d", _wrap_glColor4d, 1 }, - { "glColor4bv", _wrap_glColor4bv, 1 }, - { "glColor4b", _wrap_glColor4b, 1 }, - { "glColor3usv", _wrap_glColor3usv, 1 }, - { "glColor3us", _wrap_glColor3us, 1 }, - { "glColor3uiv", _wrap_glColor3uiv, 1 }, - { "glColor3ui", _wrap_glColor3ui, 1 }, - { "glColor3ubv", _wrap_glColor3ubv, 1 }, - { "glColor3ub", _wrap_glColor3ub, 1 }, - { "glColor3sv", _wrap_glColor3sv, 1 }, - { "glColor3s", _wrap_glColor3s, 1 }, - { "glColor3iv", _wrap_glColor3iv, 1 }, - { "glColor3i", _wrap_glColor3i, 1 }, - { "glColor3fv", _wrap_glColor3fv, 1 }, - { "glColor3f", _wrap_glColor3f, 1 }, - { "glColor3dv", _wrap_glColor3dv, 1 }, - { "glColor3d", _wrap_glColor3d, 1 }, - { "glColor3bv", _wrap_glColor3bv, 1 }, - { "glColor3b", _wrap_glColor3b, 1 }, - { "glClipPlane", _wrap_glClipPlane, 1 }, - { "glClearStencil", _wrap_glClearStencil, 1 }, - { "glClearIndex", _wrap_glClearIndex, 1 }, - { "glClearDepth", _wrap_glClearDepth, 1 }, - { "glClearColor", _wrap_glClearColor, 1 }, - { "glClearAccum", _wrap_glClearAccum, 1 }, - { "glClear", _wrap_glClear, 1 }, - { "glCallLists", _wrap_glCallLists, 1 }, - { "glCallList", _wrap_glCallList, 1 }, - { "glBlendFunc", _wrap_glBlendFunc, 1 }, - { "glBitmap", _wrap_glBitmap, 1 }, - { "glBindTexture", _wrap_glBindTexture, 1 }, - { "glBegin", _wrap_glBegin, 1 }, - { "glArrayElement", _wrap_glArrayElement, 1 }, - { "glAreTexturesResident", _wrap_glAreTexturesResident, 1 }, - { "glAlphaFunc", _wrap_glAlphaFunc, 1 }, - { "glAccum", _wrap_glAccum, 1 }, - { "glGetColorTableEXT", _wrap_glGetColorTableEXT, 1 }, - { "glColorTableEXT", _wrap_glColorTableEXT, 1 }, - { "glVertexPointerEXT", _wrap_glVertexPointerEXT, 1 }, - { "glTexCoordPointerEXT", _wrap_glTexCoordPointerEXT, 1 }, - { "glNormalPointerEXT", _wrap_glNormalPointerEXT, 1 }, - { "glIndexPointerEXT", _wrap_glIndexPointerEXT, 1 }, - { "glGetPointervEXT", _wrap_glGetPointervEXT, 1 }, - { "glEdgeFlagPointerEXT", _wrap_glEdgeFlagPointerEXT, 1 }, - { "glDrawArraysEXT", _wrap_glDrawArraysEXT, 1 }, - { "glColorPointerEXT", _wrap_glColorPointerEXT, 1 }, - { "glArrayElementEXT", _wrap_glArrayElementEXT, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initglcanvasc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("glcanvasc", glcanvascMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"GL_2D", PyInt_FromLong((long) GL_2D)); - PyDict_SetItemString(d,"GL_2_BYTES", PyInt_FromLong((long) GL_2_BYTES)); - PyDict_SetItemString(d,"GL_3D", PyInt_FromLong((long) GL_3D)); - PyDict_SetItemString(d,"GL_3D_COLOR", PyInt_FromLong((long) GL_3D_COLOR)); - PyDict_SetItemString(d,"GL_3D_COLOR_TEXTURE", PyInt_FromLong((long) GL_3D_COLOR_TEXTURE)); - PyDict_SetItemString(d,"GL_3_BYTES", PyInt_FromLong((long) GL_3_BYTES)); - PyDict_SetItemString(d,"GL_4D_COLOR_TEXTURE", PyInt_FromLong((long) GL_4D_COLOR_TEXTURE)); - PyDict_SetItemString(d,"GL_4_BYTES", PyInt_FromLong((long) GL_4_BYTES)); - PyDict_SetItemString(d,"GL_ACCUM", PyInt_FromLong((long) GL_ACCUM)); - PyDict_SetItemString(d,"GL_ACCUM_ALPHA_BITS", PyInt_FromLong((long) GL_ACCUM_ALPHA_BITS)); - PyDict_SetItemString(d,"GL_ACCUM_BLUE_BITS", PyInt_FromLong((long) GL_ACCUM_BLUE_BITS)); - PyDict_SetItemString(d,"GL_ACCUM_BUFFER_BIT", PyInt_FromLong((long) GL_ACCUM_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_ACCUM_CLEAR_VALUE", PyInt_FromLong((long) GL_ACCUM_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_ACCUM_GREEN_BITS", PyInt_FromLong((long) GL_ACCUM_GREEN_BITS)); - PyDict_SetItemString(d,"GL_ACCUM_RED_BITS", PyInt_FromLong((long) GL_ACCUM_RED_BITS)); - PyDict_SetItemString(d,"GL_ADD", PyInt_FromLong((long) GL_ADD)); - PyDict_SetItemString(d,"GL_ALL_ATTRIB_BITS", PyInt_FromLong((long) GL_ALL_ATTRIB_BITS)); - PyDict_SetItemString(d,"GL_ALPHA", PyInt_FromLong((long) GL_ALPHA)); - PyDict_SetItemString(d,"GL_ALPHA12", PyInt_FromLong((long) GL_ALPHA12)); - PyDict_SetItemString(d,"GL_ALPHA16", PyInt_FromLong((long) GL_ALPHA16)); - PyDict_SetItemString(d,"GL_ALPHA4", PyInt_FromLong((long) GL_ALPHA4)); - PyDict_SetItemString(d,"GL_ALPHA8", PyInt_FromLong((long) GL_ALPHA8)); - PyDict_SetItemString(d,"GL_ALPHA_BIAS", PyInt_FromLong((long) GL_ALPHA_BIAS)); - PyDict_SetItemString(d,"GL_ALPHA_BITS", PyInt_FromLong((long) GL_ALPHA_BITS)); - PyDict_SetItemString(d,"GL_ALPHA_SCALE", PyInt_FromLong((long) GL_ALPHA_SCALE)); - PyDict_SetItemString(d,"GL_ALPHA_TEST", PyInt_FromLong((long) GL_ALPHA_TEST)); - PyDict_SetItemString(d,"GL_ALPHA_TEST_FUNC", PyInt_FromLong((long) GL_ALPHA_TEST_FUNC)); - PyDict_SetItemString(d,"GL_ALPHA_TEST_REF", PyInt_FromLong((long) GL_ALPHA_TEST_REF)); - PyDict_SetItemString(d,"GL_ALWAYS", PyInt_FromLong((long) GL_ALWAYS)); - PyDict_SetItemString(d,"GL_AMBIENT", PyInt_FromLong((long) GL_AMBIENT)); - PyDict_SetItemString(d,"GL_AMBIENT_AND_DIFFUSE", PyInt_FromLong((long) GL_AMBIENT_AND_DIFFUSE)); - PyDict_SetItemString(d,"GL_AND", PyInt_FromLong((long) GL_AND)); - PyDict_SetItemString(d,"GL_AND_INVERTED", PyInt_FromLong((long) GL_AND_INVERTED)); - PyDict_SetItemString(d,"GL_AND_REVERSE", PyInt_FromLong((long) GL_AND_REVERSE)); - PyDict_SetItemString(d,"GL_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_AUTO_NORMAL", PyInt_FromLong((long) GL_AUTO_NORMAL)); - PyDict_SetItemString(d,"GL_AUX0", PyInt_FromLong((long) GL_AUX0)); - PyDict_SetItemString(d,"GL_AUX1", PyInt_FromLong((long) GL_AUX1)); - PyDict_SetItemString(d,"GL_AUX2", PyInt_FromLong((long) GL_AUX2)); - PyDict_SetItemString(d,"GL_AUX3", PyInt_FromLong((long) GL_AUX3)); - PyDict_SetItemString(d,"GL_AUX_BUFFERS", PyInt_FromLong((long) GL_AUX_BUFFERS)); - PyDict_SetItemString(d,"GL_BACK", PyInt_FromLong((long) GL_BACK)); - PyDict_SetItemString(d,"GL_BACK_LEFT", PyInt_FromLong((long) GL_BACK_LEFT)); - PyDict_SetItemString(d,"GL_BACK_RIGHT", PyInt_FromLong((long) GL_BACK_RIGHT)); - PyDict_SetItemString(d,"GL_BITMAP", PyInt_FromLong((long) GL_BITMAP)); - PyDict_SetItemString(d,"GL_BITMAP_TOKEN", PyInt_FromLong((long) GL_BITMAP_TOKEN)); - PyDict_SetItemString(d,"GL_BLEND", PyInt_FromLong((long) GL_BLEND)); - PyDict_SetItemString(d,"GL_BLEND_DST", PyInt_FromLong((long) GL_BLEND_DST)); - PyDict_SetItemString(d,"GL_BLEND_SRC", PyInt_FromLong((long) GL_BLEND_SRC)); - PyDict_SetItemString(d,"GL_BLUE", PyInt_FromLong((long) GL_BLUE)); - PyDict_SetItemString(d,"GL_BLUE_BIAS", PyInt_FromLong((long) GL_BLUE_BIAS)); - PyDict_SetItemString(d,"GL_BLUE_BITS", PyInt_FromLong((long) GL_BLUE_BITS)); - PyDict_SetItemString(d,"GL_BLUE_SCALE", PyInt_FromLong((long) GL_BLUE_SCALE)); - PyDict_SetItemString(d,"GL_BYTE", PyInt_FromLong((long) GL_BYTE)); - PyDict_SetItemString(d,"GL_C3F_V3F", PyInt_FromLong((long) GL_C3F_V3F)); - PyDict_SetItemString(d,"GL_C4F_N3F_V3F", PyInt_FromLong((long) GL_C4F_N3F_V3F)); - PyDict_SetItemString(d,"GL_C4UB_V2F", PyInt_FromLong((long) GL_C4UB_V2F)); - PyDict_SetItemString(d,"GL_C4UB_V3F", PyInt_FromLong((long) GL_C4UB_V3F)); - PyDict_SetItemString(d,"GL_CCW", PyInt_FromLong((long) GL_CCW)); - PyDict_SetItemString(d,"GL_CLAMP", PyInt_FromLong((long) GL_CLAMP)); - PyDict_SetItemString(d,"GL_CLEAR", PyInt_FromLong((long) GL_CLEAR)); - PyDict_SetItemString(d,"GL_CLIENT_ALL_ATTRIB_BITS", PyInt_FromLong((long) GL_CLIENT_ALL_ATTRIB_BITS)); - PyDict_SetItemString(d,"GL_CLIENT_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_CLIENT_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_CLIENT_PIXEL_STORE_BIT", PyInt_FromLong((long) GL_CLIENT_PIXEL_STORE_BIT)); - PyDict_SetItemString(d,"GL_CLIENT_VERTEX_ARRAY_BIT", PyInt_FromLong((long) GL_CLIENT_VERTEX_ARRAY_BIT)); - PyDict_SetItemString(d,"GL_CLIP_PLANE0", PyInt_FromLong((long) GL_CLIP_PLANE0)); - PyDict_SetItemString(d,"GL_CLIP_PLANE1", PyInt_FromLong((long) GL_CLIP_PLANE1)); - PyDict_SetItemString(d,"GL_CLIP_PLANE2", PyInt_FromLong((long) GL_CLIP_PLANE2)); - PyDict_SetItemString(d,"GL_CLIP_PLANE3", PyInt_FromLong((long) GL_CLIP_PLANE3)); - PyDict_SetItemString(d,"GL_CLIP_PLANE4", PyInt_FromLong((long) GL_CLIP_PLANE4)); - PyDict_SetItemString(d,"GL_CLIP_PLANE5", PyInt_FromLong((long) GL_CLIP_PLANE5)); - PyDict_SetItemString(d,"GL_COEFF", PyInt_FromLong((long) GL_COEFF)); - PyDict_SetItemString(d,"GL_COLOR", PyInt_FromLong((long) GL_COLOR)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY", PyInt_FromLong((long) GL_COLOR_ARRAY)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_POINTER", PyInt_FromLong((long) GL_COLOR_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_SIZE", PyInt_FromLong((long) GL_COLOR_ARRAY_SIZE)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_STRIDE", PyInt_FromLong((long) GL_COLOR_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_TYPE", PyInt_FromLong((long) GL_COLOR_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_BUFFER_BIT", PyInt_FromLong((long) GL_COLOR_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_COLOR_CLEAR_VALUE", PyInt_FromLong((long) GL_COLOR_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_COLOR_INDEX", PyInt_FromLong((long) GL_COLOR_INDEX)); - PyDict_SetItemString(d,"GL_COLOR_INDEX12_EXT", PyInt_FromLong((long) GL_COLOR_INDEX12_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX16_EXT", PyInt_FromLong((long) GL_COLOR_INDEX16_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX1_EXT", PyInt_FromLong((long) GL_COLOR_INDEX1_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX2_EXT", PyInt_FromLong((long) GL_COLOR_INDEX2_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX4_EXT", PyInt_FromLong((long) GL_COLOR_INDEX4_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX8_EXT", PyInt_FromLong((long) GL_COLOR_INDEX8_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEXES", PyInt_FromLong((long) GL_COLOR_INDEXES)); - PyDict_SetItemString(d,"GL_COLOR_LOGIC_OP", PyInt_FromLong((long) GL_COLOR_LOGIC_OP)); - PyDict_SetItemString(d,"GL_COLOR_MATERIAL", PyInt_FromLong((long) GL_COLOR_MATERIAL)); - PyDict_SetItemString(d,"GL_COLOR_MATERIAL_FACE", PyInt_FromLong((long) GL_COLOR_MATERIAL_FACE)); - PyDict_SetItemString(d,"GL_COLOR_MATERIAL_PARAMETER", PyInt_FromLong((long) GL_COLOR_MATERIAL_PARAMETER)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_ALPHA_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_ALPHA_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_BLUE_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_BLUE_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_FORMAT_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_FORMAT_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_GREEN_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_GREEN_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_INTENSITY_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_INTENSITY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_LUMINANCE_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_LUMINANCE_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_RED_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_RED_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_WIDTH_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_WIDTH_EXT)); - PyDict_SetItemString(d,"GL_COLOR_WRITEMASK", PyInt_FromLong((long) GL_COLOR_WRITEMASK)); - PyDict_SetItemString(d,"GL_COMPILE", PyInt_FromLong((long) GL_COMPILE)); - PyDict_SetItemString(d,"GL_COMPILE_AND_EXECUTE", PyInt_FromLong((long) GL_COMPILE_AND_EXECUTE)); - PyDict_SetItemString(d,"GL_CONSTANT_ATTENUATION", PyInt_FromLong((long) GL_CONSTANT_ATTENUATION)); - PyDict_SetItemString(d,"GL_COPY", PyInt_FromLong((long) GL_COPY)); - PyDict_SetItemString(d,"GL_COPY_INVERTED", PyInt_FromLong((long) GL_COPY_INVERTED)); - PyDict_SetItemString(d,"GL_COPY_PIXEL_TOKEN", PyInt_FromLong((long) GL_COPY_PIXEL_TOKEN)); - PyDict_SetItemString(d,"GL_CULL_FACE", PyInt_FromLong((long) GL_CULL_FACE)); - PyDict_SetItemString(d,"GL_CULL_FACE_MODE", PyInt_FromLong((long) GL_CULL_FACE_MODE)); - PyDict_SetItemString(d,"GL_CURRENT_BIT", PyInt_FromLong((long) GL_CURRENT_BIT)); - PyDict_SetItemString(d,"GL_CURRENT_COLOR", PyInt_FromLong((long) GL_CURRENT_COLOR)); - PyDict_SetItemString(d,"GL_CURRENT_INDEX", PyInt_FromLong((long) GL_CURRENT_INDEX)); - PyDict_SetItemString(d,"GL_CURRENT_NORMAL", PyInt_FromLong((long) GL_CURRENT_NORMAL)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_COLOR", PyInt_FromLong((long) GL_CURRENT_RASTER_COLOR)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_DISTANCE", PyInt_FromLong((long) GL_CURRENT_RASTER_DISTANCE)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_INDEX", PyInt_FromLong((long) GL_CURRENT_RASTER_INDEX)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_POSITION", PyInt_FromLong((long) GL_CURRENT_RASTER_POSITION)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_POSITION_VALID", PyInt_FromLong((long) GL_CURRENT_RASTER_POSITION_VALID)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_TEXTURE_COORDS", PyInt_FromLong((long) GL_CURRENT_RASTER_TEXTURE_COORDS)); - PyDict_SetItemString(d,"GL_CURRENT_TEXTURE_COORDS", PyInt_FromLong((long) GL_CURRENT_TEXTURE_COORDS)); - PyDict_SetItemString(d,"GL_CW", PyInt_FromLong((long) GL_CW)); - PyDict_SetItemString(d,"GL_DECAL", PyInt_FromLong((long) GL_DECAL)); - PyDict_SetItemString(d,"GL_DECR", PyInt_FromLong((long) GL_DECR)); - PyDict_SetItemString(d,"GL_DEPTH", PyInt_FromLong((long) GL_DEPTH)); - PyDict_SetItemString(d,"GL_DEPTH_BIAS", PyInt_FromLong((long) GL_DEPTH_BIAS)); - PyDict_SetItemString(d,"GL_DEPTH_BITS", PyInt_FromLong((long) GL_DEPTH_BITS)); - PyDict_SetItemString(d,"GL_DEPTH_BUFFER_BIT", PyInt_FromLong((long) GL_DEPTH_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_DEPTH_CLEAR_VALUE", PyInt_FromLong((long) GL_DEPTH_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_DEPTH_COMPONENT", PyInt_FromLong((long) GL_DEPTH_COMPONENT)); - PyDict_SetItemString(d,"GL_DEPTH_FUNC", PyInt_FromLong((long) GL_DEPTH_FUNC)); - PyDict_SetItemString(d,"GL_DEPTH_RANGE", PyInt_FromLong((long) GL_DEPTH_RANGE)); - PyDict_SetItemString(d,"GL_DEPTH_SCALE", PyInt_FromLong((long) GL_DEPTH_SCALE)); - PyDict_SetItemString(d,"GL_DEPTH_TEST", PyInt_FromLong((long) GL_DEPTH_TEST)); - PyDict_SetItemString(d,"GL_DEPTH_WRITEMASK", PyInt_FromLong((long) GL_DEPTH_WRITEMASK)); - PyDict_SetItemString(d,"GL_DIFFUSE", PyInt_FromLong((long) GL_DIFFUSE)); - PyDict_SetItemString(d,"GL_DITHER", PyInt_FromLong((long) GL_DITHER)); - PyDict_SetItemString(d,"GL_DOMAIN", PyInt_FromLong((long) GL_DOMAIN)); - PyDict_SetItemString(d,"GL_DONT_CARE", PyInt_FromLong((long) GL_DONT_CARE)); - PyDict_SetItemString(d,"GL_DOUBLE", PyInt_FromLong((long) GL_DOUBLE)); - PyDict_SetItemString(d,"GL_DOUBLEBUFFER", PyInt_FromLong((long) GL_DOUBLEBUFFER)); - PyDict_SetItemString(d,"GL_DRAW_BUFFER", PyInt_FromLong((long) GL_DRAW_BUFFER)); - PyDict_SetItemString(d,"GL_DRAW_PIXEL_TOKEN", PyInt_FromLong((long) GL_DRAW_PIXEL_TOKEN)); - PyDict_SetItemString(d,"GL_DST_ALPHA", PyInt_FromLong((long) GL_DST_ALPHA)); - PyDict_SetItemString(d,"GL_DST_COLOR", PyInt_FromLong((long) GL_DST_COLOR)); - PyDict_SetItemString(d,"GL_EDGE_FLAG", PyInt_FromLong((long) GL_EDGE_FLAG)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_POINTER", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_STRIDE", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_EMISSION", PyInt_FromLong((long) GL_EMISSION)); - PyDict_SetItemString(d,"GL_ENABLE_BIT", PyInt_FromLong((long) GL_ENABLE_BIT)); - PyDict_SetItemString(d,"GL_EQUAL", PyInt_FromLong((long) GL_EQUAL)); - PyDict_SetItemString(d,"GL_EQUIV", PyInt_FromLong((long) GL_EQUIV)); - PyDict_SetItemString(d,"GL_EVAL_BIT", PyInt_FromLong((long) GL_EVAL_BIT)); - PyDict_SetItemString(d,"GL_EXP", PyInt_FromLong((long) GL_EXP)); - PyDict_SetItemString(d,"GL_EXP2", PyInt_FromLong((long) GL_EXP2)); - PyDict_SetItemString(d,"GL_EXTENSIONS", PyInt_FromLong((long) GL_EXTENSIONS)); - PyDict_SetItemString(d,"GL_EXT_paletted_texture", PyInt_FromLong((long) GL_EXT_paletted_texture)); - PyDict_SetItemString(d,"GL_EXT_vertex_array", PyInt_FromLong((long) GL_EXT_vertex_array)); - PyDict_SetItemString(d,"GL_EYE_LINEAR", PyInt_FromLong((long) GL_EYE_LINEAR)); - PyDict_SetItemString(d,"GL_EYE_PLANE", PyInt_FromLong((long) GL_EYE_PLANE)); - PyDict_SetItemString(d,"GL_FALSE", PyInt_FromLong((long) GL_FALSE)); - PyDict_SetItemString(d,"GL_FASTEST", PyInt_FromLong((long) GL_FASTEST)); - PyDict_SetItemString(d,"GL_FEEDBACK", PyInt_FromLong((long) GL_FEEDBACK)); - PyDict_SetItemString(d,"GL_FEEDBACK_BUFFER_POINTER", PyInt_FromLong((long) GL_FEEDBACK_BUFFER_POINTER)); - PyDict_SetItemString(d,"GL_FEEDBACK_BUFFER_SIZE", PyInt_FromLong((long) GL_FEEDBACK_BUFFER_SIZE)); - PyDict_SetItemString(d,"GL_FEEDBACK_BUFFER_TYPE", PyInt_FromLong((long) GL_FEEDBACK_BUFFER_TYPE)); - PyDict_SetItemString(d,"GL_FILL", PyInt_FromLong((long) GL_FILL)); - PyDict_SetItemString(d,"GL_FLAT", PyInt_FromLong((long) GL_FLAT)); - PyDict_SetItemString(d,"GL_FLOAT", PyInt_FromLong((long) GL_FLOAT)); - PyDict_SetItemString(d,"GL_FOG", PyInt_FromLong((long) GL_FOG)); - PyDict_SetItemString(d,"GL_FOG_BIT", PyInt_FromLong((long) GL_FOG_BIT)); - PyDict_SetItemString(d,"GL_FOG_COLOR", PyInt_FromLong((long) GL_FOG_COLOR)); - PyDict_SetItemString(d,"GL_FOG_DENSITY", PyInt_FromLong((long) GL_FOG_DENSITY)); - PyDict_SetItemString(d,"GL_FOG_END", PyInt_FromLong((long) GL_FOG_END)); - PyDict_SetItemString(d,"GL_FOG_HINT", PyInt_FromLong((long) GL_FOG_HINT)); - PyDict_SetItemString(d,"GL_FOG_INDEX", PyInt_FromLong((long) GL_FOG_INDEX)); - PyDict_SetItemString(d,"GL_FOG_MODE", PyInt_FromLong((long) GL_FOG_MODE)); - PyDict_SetItemString(d,"GL_FOG_START", PyInt_FromLong((long) GL_FOG_START)); - PyDict_SetItemString(d,"GL_FRONT", PyInt_FromLong((long) GL_FRONT)); - PyDict_SetItemString(d,"GL_FRONT_AND_BACK", PyInt_FromLong((long) GL_FRONT_AND_BACK)); - PyDict_SetItemString(d,"GL_FRONT_FACE", PyInt_FromLong((long) GL_FRONT_FACE)); - PyDict_SetItemString(d,"GL_FRONT_LEFT", PyInt_FromLong((long) GL_FRONT_LEFT)); - PyDict_SetItemString(d,"GL_FRONT_RIGHT", PyInt_FromLong((long) GL_FRONT_RIGHT)); - PyDict_SetItemString(d,"GL_GEQUAL", PyInt_FromLong((long) GL_GEQUAL)); - PyDict_SetItemString(d,"GL_GREATER", PyInt_FromLong((long) GL_GREATER)); - PyDict_SetItemString(d,"GL_GREEN", PyInt_FromLong((long) GL_GREEN)); - PyDict_SetItemString(d,"GL_GREEN_BIAS", PyInt_FromLong((long) GL_GREEN_BIAS)); - PyDict_SetItemString(d,"GL_GREEN_BITS", PyInt_FromLong((long) GL_GREEN_BITS)); - PyDict_SetItemString(d,"GL_GREEN_SCALE", PyInt_FromLong((long) GL_GREEN_SCALE)); - PyDict_SetItemString(d,"GL_HINT_BIT", PyInt_FromLong((long) GL_HINT_BIT)); - PyDict_SetItemString(d,"GL_INCR", PyInt_FromLong((long) GL_INCR)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY", PyInt_FromLong((long) GL_INDEX_ARRAY)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_POINTER", PyInt_FromLong((long) GL_INDEX_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_STRIDE", PyInt_FromLong((long) GL_INDEX_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_TYPE", PyInt_FromLong((long) GL_INDEX_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_INDEX_BITS", PyInt_FromLong((long) GL_INDEX_BITS)); - PyDict_SetItemString(d,"GL_INDEX_CLEAR_VALUE", PyInt_FromLong((long) GL_INDEX_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_INDEX_LOGIC_OP", PyInt_FromLong((long) GL_INDEX_LOGIC_OP)); - PyDict_SetItemString(d,"GL_INDEX_MODE", PyInt_FromLong((long) GL_INDEX_MODE)); - PyDict_SetItemString(d,"GL_INDEX_OFFSET", PyInt_FromLong((long) GL_INDEX_OFFSET)); - PyDict_SetItemString(d,"GL_INDEX_SHIFT", PyInt_FromLong((long) GL_INDEX_SHIFT)); - PyDict_SetItemString(d,"GL_INDEX_WRITEMASK", PyInt_FromLong((long) GL_INDEX_WRITEMASK)); - PyDict_SetItemString(d,"GL_INT", PyInt_FromLong((long) GL_INT)); - PyDict_SetItemString(d,"GL_INTENSITY", PyInt_FromLong((long) GL_INTENSITY)); - PyDict_SetItemString(d,"GL_INTENSITY12", PyInt_FromLong((long) GL_INTENSITY12)); - PyDict_SetItemString(d,"GL_INTENSITY16", PyInt_FromLong((long) GL_INTENSITY16)); - PyDict_SetItemString(d,"GL_INTENSITY4", PyInt_FromLong((long) GL_INTENSITY4)); - PyDict_SetItemString(d,"GL_INTENSITY8", PyInt_FromLong((long) GL_INTENSITY8)); - PyDict_SetItemString(d,"GL_INVALID_ENUM", PyInt_FromLong((long) GL_INVALID_ENUM)); - PyDict_SetItemString(d,"GL_INVALID_OPERATION", PyInt_FromLong((long) GL_INVALID_OPERATION)); - PyDict_SetItemString(d,"GL_INVALID_VALUE", PyInt_FromLong((long) GL_INVALID_VALUE)); - PyDict_SetItemString(d,"GL_INVERT", PyInt_FromLong((long) GL_INVERT)); - PyDict_SetItemString(d,"GL_KEEP", PyInt_FromLong((long) GL_KEEP)); - PyDict_SetItemString(d,"GL_LEFT", PyInt_FromLong((long) GL_LEFT)); - PyDict_SetItemString(d,"GL_LEQUAL", PyInt_FromLong((long) GL_LEQUAL)); - PyDict_SetItemString(d,"GL_LESS", PyInt_FromLong((long) GL_LESS)); - PyDict_SetItemString(d,"GL_LIGHT0", PyInt_FromLong((long) GL_LIGHT0)); - PyDict_SetItemString(d,"GL_LIGHT1", PyInt_FromLong((long) GL_LIGHT1)); - PyDict_SetItemString(d,"GL_LIGHT2", PyInt_FromLong((long) GL_LIGHT2)); - PyDict_SetItemString(d,"GL_LIGHT3", PyInt_FromLong((long) GL_LIGHT3)); - PyDict_SetItemString(d,"GL_LIGHT4", PyInt_FromLong((long) GL_LIGHT4)); - PyDict_SetItemString(d,"GL_LIGHT5", PyInt_FromLong((long) GL_LIGHT5)); - PyDict_SetItemString(d,"GL_LIGHT6", PyInt_FromLong((long) GL_LIGHT6)); - PyDict_SetItemString(d,"GL_LIGHT7", PyInt_FromLong((long) GL_LIGHT7)); - PyDict_SetItemString(d,"GL_LIGHTING", PyInt_FromLong((long) GL_LIGHTING)); - PyDict_SetItemString(d,"GL_LIGHTING_BIT", PyInt_FromLong((long) GL_LIGHTING_BIT)); - PyDict_SetItemString(d,"GL_LIGHT_MODEL_AMBIENT", PyInt_FromLong((long) GL_LIGHT_MODEL_AMBIENT)); - PyDict_SetItemString(d,"GL_LIGHT_MODEL_LOCAL_VIEWER", PyInt_FromLong((long) GL_LIGHT_MODEL_LOCAL_VIEWER)); - PyDict_SetItemString(d,"GL_LIGHT_MODEL_TWO_SIDE", PyInt_FromLong((long) GL_LIGHT_MODEL_TWO_SIDE)); - PyDict_SetItemString(d,"GL_LINE", PyInt_FromLong((long) GL_LINE)); - PyDict_SetItemString(d,"GL_LINEAR", PyInt_FromLong((long) GL_LINEAR)); - PyDict_SetItemString(d,"GL_LINEAR_ATTENUATION", PyInt_FromLong((long) GL_LINEAR_ATTENUATION)); - PyDict_SetItemString(d,"GL_LINEAR_MIPMAP_LINEAR", PyInt_FromLong((long) GL_LINEAR_MIPMAP_LINEAR)); - PyDict_SetItemString(d,"GL_LINEAR_MIPMAP_NEAREST", PyInt_FromLong((long) GL_LINEAR_MIPMAP_NEAREST)); - PyDict_SetItemString(d,"GL_LINES", PyInt_FromLong((long) GL_LINES)); - PyDict_SetItemString(d,"GL_LINE_BIT", PyInt_FromLong((long) GL_LINE_BIT)); - PyDict_SetItemString(d,"GL_LINE_LOOP", PyInt_FromLong((long) GL_LINE_LOOP)); - PyDict_SetItemString(d,"GL_LINE_RESET_TOKEN", PyInt_FromLong((long) GL_LINE_RESET_TOKEN)); - PyDict_SetItemString(d,"GL_LINE_SMOOTH", PyInt_FromLong((long) GL_LINE_SMOOTH)); - PyDict_SetItemString(d,"GL_LINE_SMOOTH_HINT", PyInt_FromLong((long) GL_LINE_SMOOTH_HINT)); - PyDict_SetItemString(d,"GL_LINE_STIPPLE", PyInt_FromLong((long) GL_LINE_STIPPLE)); - PyDict_SetItemString(d,"GL_LINE_STIPPLE_PATTERN", PyInt_FromLong((long) GL_LINE_STIPPLE_PATTERN)); - PyDict_SetItemString(d,"GL_LINE_STIPPLE_REPEAT", PyInt_FromLong((long) GL_LINE_STIPPLE_REPEAT)); - PyDict_SetItemString(d,"GL_LINE_STRIP", PyInt_FromLong((long) GL_LINE_STRIP)); - PyDict_SetItemString(d,"GL_LINE_TOKEN", PyInt_FromLong((long) GL_LINE_TOKEN)); - PyDict_SetItemString(d,"GL_LINE_WIDTH", PyInt_FromLong((long) GL_LINE_WIDTH)); - PyDict_SetItemString(d,"GL_LINE_WIDTH_GRANULARITY", PyInt_FromLong((long) GL_LINE_WIDTH_GRANULARITY)); - PyDict_SetItemString(d,"GL_LINE_WIDTH_RANGE", PyInt_FromLong((long) GL_LINE_WIDTH_RANGE)); - PyDict_SetItemString(d,"GL_LIST_BASE", PyInt_FromLong((long) GL_LIST_BASE)); - PyDict_SetItemString(d,"GL_LIST_BIT", PyInt_FromLong((long) GL_LIST_BIT)); - PyDict_SetItemString(d,"GL_LIST_INDEX", PyInt_FromLong((long) GL_LIST_INDEX)); - PyDict_SetItemString(d,"GL_LIST_MODE", PyInt_FromLong((long) GL_LIST_MODE)); - PyDict_SetItemString(d,"GL_LOAD", PyInt_FromLong((long) GL_LOAD)); - PyDict_SetItemString(d,"GL_LOGIC_OP", PyInt_FromLong((long) GL_LOGIC_OP)); - PyDict_SetItemString(d,"GL_LOGIC_OP_MODE", PyInt_FromLong((long) GL_LOGIC_OP_MODE)); - PyDict_SetItemString(d,"GL_LUMINANCE", PyInt_FromLong((long) GL_LUMINANCE)); - PyDict_SetItemString(d,"GL_LUMINANCE12", PyInt_FromLong((long) GL_LUMINANCE12)); - PyDict_SetItemString(d,"GL_LUMINANCE12_ALPHA12", PyInt_FromLong((long) GL_LUMINANCE12_ALPHA12)); - PyDict_SetItemString(d,"GL_LUMINANCE12_ALPHA4", PyInt_FromLong((long) GL_LUMINANCE12_ALPHA4)); - PyDict_SetItemString(d,"GL_LUMINANCE16", PyInt_FromLong((long) GL_LUMINANCE16)); - PyDict_SetItemString(d,"GL_LUMINANCE16_ALPHA16", PyInt_FromLong((long) GL_LUMINANCE16_ALPHA16)); - PyDict_SetItemString(d,"GL_LUMINANCE4", PyInt_FromLong((long) GL_LUMINANCE4)); - PyDict_SetItemString(d,"GL_LUMINANCE4_ALPHA4", PyInt_FromLong((long) GL_LUMINANCE4_ALPHA4)); - PyDict_SetItemString(d,"GL_LUMINANCE6_ALPHA2", PyInt_FromLong((long) GL_LUMINANCE6_ALPHA2)); - PyDict_SetItemString(d,"GL_LUMINANCE8", PyInt_FromLong((long) GL_LUMINANCE8)); - PyDict_SetItemString(d,"GL_LUMINANCE8_ALPHA8", PyInt_FromLong((long) GL_LUMINANCE8_ALPHA8)); - PyDict_SetItemString(d,"GL_LUMINANCE_ALPHA", PyInt_FromLong((long) GL_LUMINANCE_ALPHA)); - PyDict_SetItemString(d,"GL_MAP1_COLOR_4", PyInt_FromLong((long) GL_MAP1_COLOR_4)); - PyDict_SetItemString(d,"GL_MAP1_GRID_DOMAIN", PyInt_FromLong((long) GL_MAP1_GRID_DOMAIN)); - PyDict_SetItemString(d,"GL_MAP1_GRID_SEGMENTS", PyInt_FromLong((long) GL_MAP1_GRID_SEGMENTS)); - PyDict_SetItemString(d,"GL_MAP1_INDEX", PyInt_FromLong((long) GL_MAP1_INDEX)); - PyDict_SetItemString(d,"GL_MAP1_NORMAL", PyInt_FromLong((long) GL_MAP1_NORMAL)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_1", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_1)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_2", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_2)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_3", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_3)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_4", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_4)); - PyDict_SetItemString(d,"GL_MAP1_VERTEX_3", PyInt_FromLong((long) GL_MAP1_VERTEX_3)); - PyDict_SetItemString(d,"GL_MAP1_VERTEX_4", PyInt_FromLong((long) GL_MAP1_VERTEX_4)); - PyDict_SetItemString(d,"GL_MAP2_COLOR_4", PyInt_FromLong((long) GL_MAP2_COLOR_4)); - PyDict_SetItemString(d,"GL_MAP2_GRID_DOMAIN", PyInt_FromLong((long) GL_MAP2_GRID_DOMAIN)); - PyDict_SetItemString(d,"GL_MAP2_GRID_SEGMENTS", PyInt_FromLong((long) GL_MAP2_GRID_SEGMENTS)); - PyDict_SetItemString(d,"GL_MAP2_INDEX", PyInt_FromLong((long) GL_MAP2_INDEX)); - PyDict_SetItemString(d,"GL_MAP2_NORMAL", PyInt_FromLong((long) GL_MAP2_NORMAL)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_1", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_1)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_2", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_2)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_3", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_3)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_4", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_4)); - PyDict_SetItemString(d,"GL_MAP2_VERTEX_3", PyInt_FromLong((long) GL_MAP2_VERTEX_3)); - PyDict_SetItemString(d,"GL_MAP2_VERTEX_4", PyInt_FromLong((long) GL_MAP2_VERTEX_4)); - PyDict_SetItemString(d,"GL_MAP_COLOR", PyInt_FromLong((long) GL_MAP_COLOR)); - PyDict_SetItemString(d,"GL_MAP_STENCIL", PyInt_FromLong((long) GL_MAP_STENCIL)); - PyDict_SetItemString(d,"GL_MATRIX_MODE", PyInt_FromLong((long) GL_MATRIX_MODE)); - PyDict_SetItemString(d,"GL_MAX_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_CLIENT_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_CLIP_PLANES", PyInt_FromLong((long) GL_MAX_CLIP_PLANES)); - PyDict_SetItemString(d,"GL_MAX_EVAL_ORDER", PyInt_FromLong((long) GL_MAX_EVAL_ORDER)); - PyDict_SetItemString(d,"GL_MAX_LIGHTS", PyInt_FromLong((long) GL_MAX_LIGHTS)); - PyDict_SetItemString(d,"GL_MAX_LIST_NESTING", PyInt_FromLong((long) GL_MAX_LIST_NESTING)); - PyDict_SetItemString(d,"GL_MAX_MODELVIEW_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_MODELVIEW_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_NAME_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_NAME_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_PIXEL_MAP_TABLE", PyInt_FromLong((long) GL_MAX_PIXEL_MAP_TABLE)); - PyDict_SetItemString(d,"GL_MAX_PROJECTION_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_PROJECTION_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_TEXTURE_SIZE", PyInt_FromLong((long) GL_MAX_TEXTURE_SIZE)); - PyDict_SetItemString(d,"GL_MAX_TEXTURE_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_TEXTURE_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_VIEWPORT_DIMS", PyInt_FromLong((long) GL_MAX_VIEWPORT_DIMS)); - PyDict_SetItemString(d,"GL_MODELVIEW", PyInt_FromLong((long) GL_MODELVIEW)); - PyDict_SetItemString(d,"GL_MODELVIEW_MATRIX", PyInt_FromLong((long) GL_MODELVIEW_MATRIX)); - PyDict_SetItemString(d,"GL_MODELVIEW_STACK_DEPTH", PyInt_FromLong((long) GL_MODELVIEW_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MODULATE", PyInt_FromLong((long) GL_MODULATE)); - PyDict_SetItemString(d,"GL_MULT", PyInt_FromLong((long) GL_MULT)); - PyDict_SetItemString(d,"GL_N3F_V3F", PyInt_FromLong((long) GL_N3F_V3F)); - PyDict_SetItemString(d,"GL_NAME_STACK_DEPTH", PyInt_FromLong((long) GL_NAME_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_NAND", PyInt_FromLong((long) GL_NAND)); - PyDict_SetItemString(d,"GL_NEAREST", PyInt_FromLong((long) GL_NEAREST)); - PyDict_SetItemString(d,"GL_NEAREST_MIPMAP_LINEAR", PyInt_FromLong((long) GL_NEAREST_MIPMAP_LINEAR)); - PyDict_SetItemString(d,"GL_NEAREST_MIPMAP_NEAREST", PyInt_FromLong((long) GL_NEAREST_MIPMAP_NEAREST)); - PyDict_SetItemString(d,"GL_NEVER", PyInt_FromLong((long) GL_NEVER)); - PyDict_SetItemString(d,"GL_NICEST", PyInt_FromLong((long) GL_NICEST)); - PyDict_SetItemString(d,"GL_NONE", PyInt_FromLong((long) GL_NONE)); - PyDict_SetItemString(d,"GL_NOOP", PyInt_FromLong((long) GL_NOOP)); - PyDict_SetItemString(d,"GL_NOR", PyInt_FromLong((long) GL_NOR)); - PyDict_SetItemString(d,"GL_NORMALIZE", PyInt_FromLong((long) GL_NORMALIZE)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY", PyInt_FromLong((long) GL_NORMAL_ARRAY)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_POINTER", PyInt_FromLong((long) GL_NORMAL_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_STRIDE", PyInt_FromLong((long) GL_NORMAL_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_TYPE", PyInt_FromLong((long) GL_NORMAL_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_NOTEQUAL", PyInt_FromLong((long) GL_NOTEQUAL)); - PyDict_SetItemString(d,"GL_NO_ERROR", PyInt_FromLong((long) GL_NO_ERROR)); - PyDict_SetItemString(d,"GL_OBJECT_LINEAR", PyInt_FromLong((long) GL_OBJECT_LINEAR)); - PyDict_SetItemString(d,"GL_OBJECT_PLANE", PyInt_FromLong((long) GL_OBJECT_PLANE)); - PyDict_SetItemString(d,"GL_ONE", PyInt_FromLong((long) GL_ONE)); - PyDict_SetItemString(d,"GL_ONE_MINUS_DST_ALPHA", PyInt_FromLong((long) GL_ONE_MINUS_DST_ALPHA)); - PyDict_SetItemString(d,"GL_ONE_MINUS_DST_COLOR", PyInt_FromLong((long) GL_ONE_MINUS_DST_COLOR)); - PyDict_SetItemString(d,"GL_ONE_MINUS_SRC_ALPHA", PyInt_FromLong((long) GL_ONE_MINUS_SRC_ALPHA)); - PyDict_SetItemString(d,"GL_ONE_MINUS_SRC_COLOR", PyInt_FromLong((long) GL_ONE_MINUS_SRC_COLOR)); - PyDict_SetItemString(d,"GL_OR", PyInt_FromLong((long) GL_OR)); - PyDict_SetItemString(d,"GL_ORDER", PyInt_FromLong((long) GL_ORDER)); - PyDict_SetItemString(d,"GL_OR_INVERTED", PyInt_FromLong((long) GL_OR_INVERTED)); - PyDict_SetItemString(d,"GL_OR_REVERSE", PyInt_FromLong((long) GL_OR_REVERSE)); - PyDict_SetItemString(d,"GL_OUT_OF_MEMORY", PyInt_FromLong((long) GL_OUT_OF_MEMORY)); - PyDict_SetItemString(d,"GL_PACK_ALIGNMENT", PyInt_FromLong((long) GL_PACK_ALIGNMENT)); - PyDict_SetItemString(d,"GL_PACK_LSB_FIRST", PyInt_FromLong((long) GL_PACK_LSB_FIRST)); - PyDict_SetItemString(d,"GL_PACK_ROW_LENGTH", PyInt_FromLong((long) GL_PACK_ROW_LENGTH)); - PyDict_SetItemString(d,"GL_PACK_SKIP_PIXELS", PyInt_FromLong((long) GL_PACK_SKIP_PIXELS)); - PyDict_SetItemString(d,"GL_PACK_SKIP_ROWS", PyInt_FromLong((long) GL_PACK_SKIP_ROWS)); - PyDict_SetItemString(d,"GL_PACK_SWAP_BYTES", PyInt_FromLong((long) GL_PACK_SWAP_BYTES)); - PyDict_SetItemString(d,"GL_PASS_THROUGH_TOKEN", PyInt_FromLong((long) GL_PASS_THROUGH_TOKEN)); - PyDict_SetItemString(d,"GL_PERSPECTIVE_CORRECTION_HINT", PyInt_FromLong((long) GL_PERSPECTIVE_CORRECTION_HINT)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_A_TO_A", PyInt_FromLong((long) GL_PIXEL_MAP_A_TO_A)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_A_TO_A_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_A_TO_A_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_B_TO_B", PyInt_FromLong((long) GL_PIXEL_MAP_B_TO_B)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_B_TO_B_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_B_TO_B_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_G_TO_G", PyInt_FromLong((long) GL_PIXEL_MAP_G_TO_G)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_G_TO_G_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_G_TO_G_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_A", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_A)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_A_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_A_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_B", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_B)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_B_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_B_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_G", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_G)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_G_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_G_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_I", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_I)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_I_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_I_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_R", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_R)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_R_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_R_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_R_TO_R", PyInt_FromLong((long) GL_PIXEL_MAP_R_TO_R)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_R_TO_R_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_R_TO_R_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_S_TO_S", PyInt_FromLong((long) GL_PIXEL_MAP_S_TO_S)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_S_TO_S_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_S_TO_S_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MODE_BIT", PyInt_FromLong((long) GL_PIXEL_MODE_BIT)); - PyDict_SetItemString(d,"GL_POINT", PyInt_FromLong((long) GL_POINT)); - PyDict_SetItemString(d,"GL_POINTS", PyInt_FromLong((long) GL_POINTS)); - PyDict_SetItemString(d,"GL_POINT_BIT", PyInt_FromLong((long) GL_POINT_BIT)); - PyDict_SetItemString(d,"GL_POINT_SIZE", PyInt_FromLong((long) GL_POINT_SIZE)); - PyDict_SetItemString(d,"GL_POINT_SIZE_GRANULARITY", PyInt_FromLong((long) GL_POINT_SIZE_GRANULARITY)); - PyDict_SetItemString(d,"GL_POINT_SIZE_RANGE", PyInt_FromLong((long) GL_POINT_SIZE_RANGE)); - PyDict_SetItemString(d,"GL_POINT_SMOOTH", PyInt_FromLong((long) GL_POINT_SMOOTH)); - PyDict_SetItemString(d,"GL_POINT_SMOOTH_HINT", PyInt_FromLong((long) GL_POINT_SMOOTH_HINT)); - PyDict_SetItemString(d,"GL_POINT_TOKEN", PyInt_FromLong((long) GL_POINT_TOKEN)); - PyDict_SetItemString(d,"GL_POLYGON", PyInt_FromLong((long) GL_POLYGON)); - PyDict_SetItemString(d,"GL_POLYGON_BIT", PyInt_FromLong((long) GL_POLYGON_BIT)); - PyDict_SetItemString(d,"GL_POLYGON_MODE", PyInt_FromLong((long) GL_POLYGON_MODE)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_FACTOR", PyInt_FromLong((long) GL_POLYGON_OFFSET_FACTOR)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_FILL", PyInt_FromLong((long) GL_POLYGON_OFFSET_FILL)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_LINE", PyInt_FromLong((long) GL_POLYGON_OFFSET_LINE)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_POINT", PyInt_FromLong((long) GL_POLYGON_OFFSET_POINT)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_UNITS", PyInt_FromLong((long) GL_POLYGON_OFFSET_UNITS)); - PyDict_SetItemString(d,"GL_POLYGON_SMOOTH", PyInt_FromLong((long) GL_POLYGON_SMOOTH)); - PyDict_SetItemString(d,"GL_POLYGON_SMOOTH_HINT", PyInt_FromLong((long) GL_POLYGON_SMOOTH_HINT)); - PyDict_SetItemString(d,"GL_POLYGON_STIPPLE", PyInt_FromLong((long) GL_POLYGON_STIPPLE)); - PyDict_SetItemString(d,"GL_POLYGON_STIPPLE_BIT", PyInt_FromLong((long) GL_POLYGON_STIPPLE_BIT)); - PyDict_SetItemString(d,"GL_POLYGON_TOKEN", PyInt_FromLong((long) GL_POLYGON_TOKEN)); - PyDict_SetItemString(d,"GL_POSITION", PyInt_FromLong((long) GL_POSITION)); - PyDict_SetItemString(d,"GL_PROJECTION", PyInt_FromLong((long) GL_PROJECTION)); - PyDict_SetItemString(d,"GL_PROJECTION_MATRIX", PyInt_FromLong((long) GL_PROJECTION_MATRIX)); - PyDict_SetItemString(d,"GL_PROJECTION_STACK_DEPTH", PyInt_FromLong((long) GL_PROJECTION_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_PROXY_TEXTURE_1D", PyInt_FromLong((long) GL_PROXY_TEXTURE_1D)); - PyDict_SetItemString(d,"GL_PROXY_TEXTURE_2D", PyInt_FromLong((long) GL_PROXY_TEXTURE_2D)); - PyDict_SetItemString(d,"GL_Q", PyInt_FromLong((long) GL_Q)); - PyDict_SetItemString(d,"GL_QUADRATIC_ATTENUATION", PyInt_FromLong((long) GL_QUADRATIC_ATTENUATION)); - PyDict_SetItemString(d,"GL_QUADS", PyInt_FromLong((long) GL_QUADS)); - PyDict_SetItemString(d,"GL_QUAD_STRIP", PyInt_FromLong((long) GL_QUAD_STRIP)); - PyDict_SetItemString(d,"GL_R", PyInt_FromLong((long) GL_R)); - PyDict_SetItemString(d,"GL_R3_G3_B2", PyInt_FromLong((long) GL_R3_G3_B2)); - PyDict_SetItemString(d,"GL_READ_BUFFER", PyInt_FromLong((long) GL_READ_BUFFER)); - PyDict_SetItemString(d,"GL_RED", PyInt_FromLong((long) GL_RED)); - PyDict_SetItemString(d,"GL_RED_BIAS", PyInt_FromLong((long) GL_RED_BIAS)); - PyDict_SetItemString(d,"GL_RED_BITS", PyInt_FromLong((long) GL_RED_BITS)); - PyDict_SetItemString(d,"GL_RED_SCALE", PyInt_FromLong((long) GL_RED_SCALE)); - PyDict_SetItemString(d,"GL_RENDER", PyInt_FromLong((long) GL_RENDER)); - PyDict_SetItemString(d,"GL_RENDERER", PyInt_FromLong((long) GL_RENDERER)); - PyDict_SetItemString(d,"GL_RENDER_MODE", PyInt_FromLong((long) GL_RENDER_MODE)); - PyDict_SetItemString(d,"GL_REPEAT", PyInt_FromLong((long) GL_REPEAT)); - PyDict_SetItemString(d,"GL_REPLACE", PyInt_FromLong((long) GL_REPLACE)); - PyDict_SetItemString(d,"GL_RETURN", PyInt_FromLong((long) GL_RETURN)); - PyDict_SetItemString(d,"GL_RGB", PyInt_FromLong((long) GL_RGB)); - PyDict_SetItemString(d,"GL_RGB10", PyInt_FromLong((long) GL_RGB10)); - PyDict_SetItemString(d,"GL_RGB10_A2", PyInt_FromLong((long) GL_RGB10_A2)); - PyDict_SetItemString(d,"GL_RGB12", PyInt_FromLong((long) GL_RGB12)); - PyDict_SetItemString(d,"GL_RGB16", PyInt_FromLong((long) GL_RGB16)); - PyDict_SetItemString(d,"GL_RGB4", PyInt_FromLong((long) GL_RGB4)); - PyDict_SetItemString(d,"GL_RGB5", PyInt_FromLong((long) GL_RGB5)); - PyDict_SetItemString(d,"GL_RGB5_A1", PyInt_FromLong((long) GL_RGB5_A1)); - PyDict_SetItemString(d,"GL_RGB8", PyInt_FromLong((long) GL_RGB8)); - PyDict_SetItemString(d,"GL_RGBA", PyInt_FromLong((long) GL_RGBA)); - PyDict_SetItemString(d,"GL_RGBA12", PyInt_FromLong((long) GL_RGBA12)); - PyDict_SetItemString(d,"GL_RGBA16", PyInt_FromLong((long) GL_RGBA16)); - PyDict_SetItemString(d,"GL_RGBA2", PyInt_FromLong((long) GL_RGBA2)); - PyDict_SetItemString(d,"GL_RGBA4", PyInt_FromLong((long) GL_RGBA4)); - PyDict_SetItemString(d,"GL_RGBA8", PyInt_FromLong((long) GL_RGBA8)); - PyDict_SetItemString(d,"GL_RGBA_MODE", PyInt_FromLong((long) GL_RGBA_MODE)); - PyDict_SetItemString(d,"GL_RIGHT", PyInt_FromLong((long) GL_RIGHT)); - PyDict_SetItemString(d,"GL_S", PyInt_FromLong((long) GL_S)); - PyDict_SetItemString(d,"GL_SCISSOR_BIT", PyInt_FromLong((long) GL_SCISSOR_BIT)); - PyDict_SetItemString(d,"GL_SCISSOR_BOX", PyInt_FromLong((long) GL_SCISSOR_BOX)); - PyDict_SetItemString(d,"GL_SCISSOR_TEST", PyInt_FromLong((long) GL_SCISSOR_TEST)); - PyDict_SetItemString(d,"GL_SELECT", PyInt_FromLong((long) GL_SELECT)); - PyDict_SetItemString(d,"GL_SELECTION_BUFFER_POINTER", PyInt_FromLong((long) GL_SELECTION_BUFFER_POINTER)); - PyDict_SetItemString(d,"GL_SELECTION_BUFFER_SIZE", PyInt_FromLong((long) GL_SELECTION_BUFFER_SIZE)); - PyDict_SetItemString(d,"GL_SET", PyInt_FromLong((long) GL_SET)); - PyDict_SetItemString(d,"GL_SHADE_MODEL", PyInt_FromLong((long) GL_SHADE_MODEL)); - PyDict_SetItemString(d,"GL_SHININESS", PyInt_FromLong((long) GL_SHININESS)); - PyDict_SetItemString(d,"GL_SHORT", PyInt_FromLong((long) GL_SHORT)); - PyDict_SetItemString(d,"GL_SMOOTH", PyInt_FromLong((long) GL_SMOOTH)); - PyDict_SetItemString(d,"GL_SPECULAR", PyInt_FromLong((long) GL_SPECULAR)); - PyDict_SetItemString(d,"GL_SPHERE_MAP", PyInt_FromLong((long) GL_SPHERE_MAP)); - PyDict_SetItemString(d,"GL_SPOT_CUTOFF", PyInt_FromLong((long) GL_SPOT_CUTOFF)); - PyDict_SetItemString(d,"GL_SPOT_DIRECTION", PyInt_FromLong((long) GL_SPOT_DIRECTION)); - PyDict_SetItemString(d,"GL_SPOT_EXPONENT", PyInt_FromLong((long) GL_SPOT_EXPONENT)); - PyDict_SetItemString(d,"GL_SRC_ALPHA", PyInt_FromLong((long) GL_SRC_ALPHA)); - PyDict_SetItemString(d,"GL_SRC_ALPHA_SATURATE", PyInt_FromLong((long) GL_SRC_ALPHA_SATURATE)); - PyDict_SetItemString(d,"GL_SRC_COLOR", PyInt_FromLong((long) GL_SRC_COLOR)); - PyDict_SetItemString(d,"GL_STACK_OVERFLOW", PyInt_FromLong((long) GL_STACK_OVERFLOW)); - PyDict_SetItemString(d,"GL_STACK_UNDERFLOW", PyInt_FromLong((long) GL_STACK_UNDERFLOW)); - PyDict_SetItemString(d,"GL_STENCIL", PyInt_FromLong((long) GL_STENCIL)); - PyDict_SetItemString(d,"GL_STENCIL_BITS", PyInt_FromLong((long) GL_STENCIL_BITS)); - PyDict_SetItemString(d,"GL_STENCIL_BUFFER_BIT", PyInt_FromLong((long) GL_STENCIL_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_STENCIL_CLEAR_VALUE", PyInt_FromLong((long) GL_STENCIL_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_STENCIL_FAIL", PyInt_FromLong((long) GL_STENCIL_FAIL)); - PyDict_SetItemString(d,"GL_STENCIL_FUNC", PyInt_FromLong((long) GL_STENCIL_FUNC)); - PyDict_SetItemString(d,"GL_STENCIL_INDEX", PyInt_FromLong((long) GL_STENCIL_INDEX)); - PyDict_SetItemString(d,"GL_STENCIL_PASS_DEPTH_FAIL", PyInt_FromLong((long) GL_STENCIL_PASS_DEPTH_FAIL)); - PyDict_SetItemString(d,"GL_STENCIL_PASS_DEPTH_PASS", PyInt_FromLong((long) GL_STENCIL_PASS_DEPTH_PASS)); - PyDict_SetItemString(d,"GL_STENCIL_REF", PyInt_FromLong((long) GL_STENCIL_REF)); - PyDict_SetItemString(d,"GL_STENCIL_TEST", PyInt_FromLong((long) GL_STENCIL_TEST)); - PyDict_SetItemString(d,"GL_STENCIL_VALUE_MASK", PyInt_FromLong((long) GL_STENCIL_VALUE_MASK)); - PyDict_SetItemString(d,"GL_STENCIL_WRITEMASK", PyInt_FromLong((long) GL_STENCIL_WRITEMASK)); - PyDict_SetItemString(d,"GL_STEREO", PyInt_FromLong((long) GL_STEREO)); - PyDict_SetItemString(d,"GL_SUBPIXEL_BITS", PyInt_FromLong((long) GL_SUBPIXEL_BITS)); - PyDict_SetItemString(d,"GL_T", PyInt_FromLong((long) GL_T)); - PyDict_SetItemString(d,"GL_T2F_C3F_V3F", PyInt_FromLong((long) GL_T2F_C3F_V3F)); - PyDict_SetItemString(d,"GL_T2F_C4F_N3F_V3F", PyInt_FromLong((long) GL_T2F_C4F_N3F_V3F)); - PyDict_SetItemString(d,"GL_T2F_C4UB_V3F", PyInt_FromLong((long) GL_T2F_C4UB_V3F)); - PyDict_SetItemString(d,"GL_T2F_N3F_V3F", PyInt_FromLong((long) GL_T2F_N3F_V3F)); - PyDict_SetItemString(d,"GL_T2F_V3F", PyInt_FromLong((long) GL_T2F_V3F)); - PyDict_SetItemString(d,"GL_T4F_C4F_N3F_V4F", PyInt_FromLong((long) GL_T4F_C4F_N3F_V4F)); - PyDict_SetItemString(d,"GL_T4F_V4F", PyInt_FromLong((long) GL_T4F_V4F)); - PyDict_SetItemString(d,"GL_TEXTURE", PyInt_FromLong((long) GL_TEXTURE)); - PyDict_SetItemString(d,"GL_TEXTURE_1D", PyInt_FromLong((long) GL_TEXTURE_1D)); - PyDict_SetItemString(d,"GL_TEXTURE_2D", PyInt_FromLong((long) GL_TEXTURE_2D)); - PyDict_SetItemString(d,"GL_TEXTURE_ALPHA_SIZE", PyInt_FromLong((long) GL_TEXTURE_ALPHA_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_BINDING_1D", PyInt_FromLong((long) GL_TEXTURE_BINDING_1D)); - PyDict_SetItemString(d,"GL_TEXTURE_BINDING_2D", PyInt_FromLong((long) GL_TEXTURE_BINDING_2D)); - PyDict_SetItemString(d,"GL_TEXTURE_BIT", PyInt_FromLong((long) GL_TEXTURE_BIT)); - PyDict_SetItemString(d,"GL_TEXTURE_BLUE_SIZE", PyInt_FromLong((long) GL_TEXTURE_BLUE_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_BORDER", PyInt_FromLong((long) GL_TEXTURE_BORDER)); - PyDict_SetItemString(d,"GL_TEXTURE_BORDER_COLOR", PyInt_FromLong((long) GL_TEXTURE_BORDER_COLOR)); - PyDict_SetItemString(d,"GL_TEXTURE_COMPONENTS", PyInt_FromLong((long) GL_TEXTURE_COMPONENTS)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_POINTER", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_SIZE", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_SIZE_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_STRIDE", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_TYPE", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_ENV", PyInt_FromLong((long) GL_TEXTURE_ENV)); - PyDict_SetItemString(d,"GL_TEXTURE_ENV_COLOR", PyInt_FromLong((long) GL_TEXTURE_ENV_COLOR)); - PyDict_SetItemString(d,"GL_TEXTURE_ENV_MODE", PyInt_FromLong((long) GL_TEXTURE_ENV_MODE)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_MODE", PyInt_FromLong((long) GL_TEXTURE_GEN_MODE)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_Q", PyInt_FromLong((long) GL_TEXTURE_GEN_Q)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_R", PyInt_FromLong((long) GL_TEXTURE_GEN_R)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_S", PyInt_FromLong((long) GL_TEXTURE_GEN_S)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_T", PyInt_FromLong((long) GL_TEXTURE_GEN_T)); - PyDict_SetItemString(d,"GL_TEXTURE_GREEN_SIZE", PyInt_FromLong((long) GL_TEXTURE_GREEN_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_HEIGHT", PyInt_FromLong((long) GL_TEXTURE_HEIGHT)); - PyDict_SetItemString(d,"GL_TEXTURE_INTENSITY_SIZE", PyInt_FromLong((long) GL_TEXTURE_INTENSITY_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_INTERNAL_FORMAT", PyInt_FromLong((long) GL_TEXTURE_INTERNAL_FORMAT)); - PyDict_SetItemString(d,"GL_TEXTURE_LUMINANCE_SIZE", PyInt_FromLong((long) GL_TEXTURE_LUMINANCE_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_MAG_FILTER", PyInt_FromLong((long) GL_TEXTURE_MAG_FILTER)); - PyDict_SetItemString(d,"GL_TEXTURE_MATRIX", PyInt_FromLong((long) GL_TEXTURE_MATRIX)); - PyDict_SetItemString(d,"GL_TEXTURE_MIN_FILTER", PyInt_FromLong((long) GL_TEXTURE_MIN_FILTER)); - PyDict_SetItemString(d,"GL_TEXTURE_PRIORITY", PyInt_FromLong((long) GL_TEXTURE_PRIORITY)); - PyDict_SetItemString(d,"GL_TEXTURE_RED_SIZE", PyInt_FromLong((long) GL_TEXTURE_RED_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_RESIDENT", PyInt_FromLong((long) GL_TEXTURE_RESIDENT)); - PyDict_SetItemString(d,"GL_TEXTURE_STACK_DEPTH", PyInt_FromLong((long) GL_TEXTURE_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_TEXTURE_WIDTH", PyInt_FromLong((long) GL_TEXTURE_WIDTH)); - PyDict_SetItemString(d,"GL_TEXTURE_WRAP_S", PyInt_FromLong((long) GL_TEXTURE_WRAP_S)); - PyDict_SetItemString(d,"GL_TEXTURE_WRAP_T", PyInt_FromLong((long) GL_TEXTURE_WRAP_T)); - PyDict_SetItemString(d,"GL_TRANSFORM_BIT", PyInt_FromLong((long) GL_TRANSFORM_BIT)); - PyDict_SetItemString(d,"GL_TRIANGLES", PyInt_FromLong((long) GL_TRIANGLES)); - PyDict_SetItemString(d,"GL_TRIANGLE_FAN", PyInt_FromLong((long) GL_TRIANGLE_FAN)); - PyDict_SetItemString(d,"GL_TRIANGLE_STRIP", PyInt_FromLong((long) GL_TRIANGLE_STRIP)); - PyDict_SetItemString(d,"GL_TRUE", PyInt_FromLong((long) GL_TRUE)); - PyDict_SetItemString(d,"GL_UNPACK_ALIGNMENT", PyInt_FromLong((long) GL_UNPACK_ALIGNMENT)); - PyDict_SetItemString(d,"GL_UNPACK_LSB_FIRST", PyInt_FromLong((long) GL_UNPACK_LSB_FIRST)); - PyDict_SetItemString(d,"GL_UNPACK_ROW_LENGTH", PyInt_FromLong((long) GL_UNPACK_ROW_LENGTH)); - PyDict_SetItemString(d,"GL_UNPACK_SKIP_PIXELS", PyInt_FromLong((long) GL_UNPACK_SKIP_PIXELS)); - PyDict_SetItemString(d,"GL_UNPACK_SKIP_ROWS", PyInt_FromLong((long) GL_UNPACK_SKIP_ROWS)); - PyDict_SetItemString(d,"GL_UNPACK_SWAP_BYTES", PyInt_FromLong((long) GL_UNPACK_SWAP_BYTES)); - PyDict_SetItemString(d,"GL_UNSIGNED_BYTE", PyInt_FromLong((long) GL_UNSIGNED_BYTE)); - PyDict_SetItemString(d,"GL_UNSIGNED_INT", PyInt_FromLong((long) GL_UNSIGNED_INT)); - PyDict_SetItemString(d,"GL_UNSIGNED_SHORT", PyInt_FromLong((long) GL_UNSIGNED_SHORT)); - PyDict_SetItemString(d,"GL_V2F", PyInt_FromLong((long) GL_V2F)); - PyDict_SetItemString(d,"GL_V3F", PyInt_FromLong((long) GL_V3F)); - PyDict_SetItemString(d,"GL_VENDOR", PyInt_FromLong((long) GL_VENDOR)); - PyDict_SetItemString(d,"GL_VERSION", PyInt_FromLong((long) GL_VERSION)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY", PyInt_FromLong((long) GL_VERTEX_ARRAY)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_POINTER", PyInt_FromLong((long) GL_VERTEX_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_SIZE", PyInt_FromLong((long) GL_VERTEX_ARRAY_SIZE)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_SIZE_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_STRIDE", PyInt_FromLong((long) GL_VERTEX_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_TYPE", PyInt_FromLong((long) GL_VERTEX_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_VIEWPORT", PyInt_FromLong((long) GL_VIEWPORT)); - PyDict_SetItemString(d,"GL_VIEWPORT_BIT", PyInt_FromLong((long) GL_VIEWPORT_BIT)); - PyDict_SetItemString(d,"GL_XOR", PyInt_FromLong((long) GL_XOR)); - PyDict_SetItemString(d,"GL_ZERO", PyInt_FromLong((long) GL_ZERO)); - PyDict_SetItemString(d,"GL_ZOOM_X", PyInt_FromLong((long) GL_ZOOM_X)); - PyDict_SetItemString(d,"GL_ZOOM_Y", PyInt_FromLong((long) GL_ZOOM_Y)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_GLfloat","_GLclampf",0); - SWIG_RegisterMapping("_GLfloat","_float",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxJPEGHandler","_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxBMPHandler","_class_wxBMPHandler",0); - SWIG_RegisterMapping("_wxImage","_class_wxImage",0); - SWIG_RegisterMapping("_double","_GLclampd",0); - SWIG_RegisterMapping("_double","_GLdouble",0); - SWIG_RegisterMapping("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxPyTreeItemData","_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxGIFHandler","_class_wxGIFHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxImageHandler","_class_wxImageHandler",0); - SWIG_RegisterMapping("_GLsizei","_GLuint",0); - SWIG_RegisterMapping("_GLsizei","_int",0); - SWIG_RegisterMapping("_GLsizei","_signed_int",0); - SWIG_RegisterMapping("_GLsizei","_unsigned_int",0); - SWIG_RegisterMapping("_GLsizei","_wxWindowID",0); - SWIG_RegisterMapping("_GLsizei","_uint",0); - SWIG_RegisterMapping("_GLsizei","_EBool",0); - SWIG_RegisterMapping("_GLsizei","_size_t",0); - SWIG_RegisterMapping("_GLsizei","_GLenum",0); - SWIG_RegisterMapping("_GLsizei","_GLbitfield",0); - SWIG_RegisterMapping("_GLsizei","_GLint",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPNGHandler","_class_wxPNGHandler",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",0); - SWIG_RegisterMapping("_class_wxPageSetupDialogData","_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_GLbyte","_signed_char",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_GLubyte",0); - SWIG_RegisterMapping("_byte","_GLboolean",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashWindow",0); - SWIG_RegisterMapping("_GLenum","_GLuint",0); - SWIG_RegisterMapping("_GLenum","_GLsizei",0); - SWIG_RegisterMapping("_GLenum","_GLint",0); - SWIG_RegisterMapping("_GLenum","_GLbitfield",0); - SWIG_RegisterMapping("_GLenum","_unsigned_int",0); - SWIG_RegisterMapping("_GLenum","_int",0); - SWIG_RegisterMapping("_GLenum","_wxWindowID",0); - SWIG_RegisterMapping("_GLenum","_uint",0); - SWIG_RegisterMapping("_GLenum","_size_t",0); - SWIG_RegisterMapping("_class_wxPrintDialogData","_wxPrintDialogData",0); - SWIG_RegisterMapping("_wxGLContext","_class_wxGLContext",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_class_wxSashEvent","_wxSashEvent",0); - SWIG_RegisterMapping("_float","_GLclampf",0); - SWIG_RegisterMapping("_float","_GLfloat",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxListEvent","_class_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxBMPHandler","_wxBMPHandler",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSashLayoutWindow","_class_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_size_t","_GLuint",0); - SWIG_RegisterMapping("_size_t","_GLsizei",0); - SWIG_RegisterMapping("_size_t","_GLint",0); - SWIG_RegisterMapping("_size_t","_GLbitfield",0); - SWIG_RegisterMapping("_size_t","_GLenum",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxGIFHandler","_wxGIFHandler",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_signed_char","_GLbyte",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_class_wxPNGHandler","_wxPNGHandler",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxPageSetupDialog","_class_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashWindow",0); - SWIG_RegisterMapping("_GLuint","_unsigned_int",0); - SWIG_RegisterMapping("_GLuint","_int",0); - SWIG_RegisterMapping("_GLuint","_wxWindowID",0); - SWIG_RegisterMapping("_GLuint","_uint",0); - SWIG_RegisterMapping("_GLuint","_size_t",0); - SWIG_RegisterMapping("_GLuint","_GLenum",0); - SWIG_RegisterMapping("_GLuint","_GLbitfield",0); - SWIG_RegisterMapping("_GLuint","_GLint",0); - SWIG_RegisterMapping("_GLuint","_GLsizei",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_GLuint",0); - SWIG_RegisterMapping("_uint","_GLsizei",0); - SWIG_RegisterMapping("_uint","_GLint",0); - SWIG_RegisterMapping("_uint","_GLbitfield",0); - SWIG_RegisterMapping("_uint","_GLenum",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxImage","_wxImage",0); - SWIG_RegisterMapping("_GLclampd","_double",0); - SWIG_RegisterMapping("_GLclampd","_GLdouble",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxSashLayoutWindow","_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_GLclampf","_float",0); - SWIG_RegisterMapping("_GLclampf","_GLfloat",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",0); - SWIG_RegisterMapping("_GLbitfield","_GLuint",0); - SWIG_RegisterMapping("_GLbitfield","_GLsizei",0); - SWIG_RegisterMapping("_GLbitfield","_GLint",0); - SWIG_RegisterMapping("_GLbitfield","_unsigned_int",0); - SWIG_RegisterMapping("_GLbitfield","_int",0); - SWIG_RegisterMapping("_GLbitfield","_wxWindowID",0); - SWIG_RegisterMapping("_GLbitfield","_uint",0); - SWIG_RegisterMapping("_GLbitfield","_size_t",0); - SWIG_RegisterMapping("_GLbitfield","_GLenum",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextEntryDialog","_class_wxTextEntryDialog",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_wxListItem","_class_wxListItem",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_EBool","_GLsizei",0); - SWIG_RegisterMapping("_EBool","_GLint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxPyApp","_class_wxPyApp",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxTreeEvent","_wxTreeEvent",0); - SWIG_RegisterMapping("_class_wxDirDialog","_wxDirDialog",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxMessageDialog","_wxMessageDialog",0); - SWIG_RegisterMapping("_signed_int","_GLsizei",0); - SWIG_RegisterMapping("_signed_int","_GLint",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_GLboolean","_GLubyte",0); - SWIG_RegisterMapping("_GLboolean","_unsigned_char",0); - SWIG_RegisterMapping("_GLboolean","_byte",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_GLushort",0); - SWIG_RegisterMapping("_WXTYPE","_GLshort",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_wxFileDialog","_class_wxFileDialog",0); - SWIG_RegisterMapping("_GLshort","_GLushort",0); - SWIG_RegisterMapping("_GLshort","_short",0); - SWIG_RegisterMapping("_GLshort","_signed_short",0); - SWIG_RegisterMapping("_GLshort","_unsigned_short",0); - SWIG_RegisterMapping("_GLshort","_WXTYPE",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_GLushort",0); - SWIG_RegisterMapping("_unsigned_short","_GLshort",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_wxPrintDialogData","_class_wxPrintDialogData",0); - SWIG_RegisterMapping("_GLushort","_unsigned_short",0); - SWIG_RegisterMapping("_GLushort","_short",0); - SWIG_RegisterMapping("_GLushort","_WXTYPE",0); - SWIG_RegisterMapping("_GLushort","_GLshort",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxSashEvent","_class_wxSashEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_wxListCtrl","_class_wxListCtrl",0); - SWIG_RegisterMapping("_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_wxGLCanvas","_class_wxGLCanvas",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_GLshort",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxPrintDialog","_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_class_wxImageHandler","_wxImageHandler",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxTreeItemId","_class_wxTreeItemId",0); - SWIG_RegisterMapping("_unsigned_char","_GLubyte",0); - SWIG_RegisterMapping("_unsigned_char","_GLboolean",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_GLuint",0); - SWIG_RegisterMapping("_unsigned_int","_GLsizei",0); - SWIG_RegisterMapping("_unsigned_int","_GLint",0); - SWIG_RegisterMapping("_unsigned_int","_GLbitfield",0); - SWIG_RegisterMapping("_unsigned_int","_GLenum",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxListItem","_wxListItem",0); - SWIG_RegisterMapping("_GLdouble","_GLclampd",0); - SWIG_RegisterMapping("_GLdouble","_double",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_class_wxFileDialog","_wxFileDialog",0); - SWIG_RegisterMapping("_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_short","_GLushort",0); - SWIG_RegisterMapping("_short","_GLshort",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxGLContext","_wxGLContext",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxJPEGHandler","_class_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxWindowID","_GLuint",0); - SWIG_RegisterMapping("_wxWindowID","_GLsizei",0); - SWIG_RegisterMapping("_wxWindowID","_GLint",0); - SWIG_RegisterMapping("_wxWindowID","_GLbitfield",0); - SWIG_RegisterMapping("_wxWindowID","_GLenum",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_GLuint",0); - SWIG_RegisterMapping("_int","_GLsizei",0); - SWIG_RegisterMapping("_int","_GLint",0); - SWIG_RegisterMapping("_int","_GLbitfield",0); - SWIG_RegisterMapping("_int","_GLenum",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxListEvent","_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_class_wxPyApp","_wxPyApp",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_wxPyTreeItemData","_class_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxTreeItemId","_wxTreeItemId",0); - SWIG_RegisterMapping("_wxTreeCtrl","_class_wxTreeCtrl",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxPageSetupDialog","_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_GLint","_GLuint",0); - SWIG_RegisterMapping("_GLint","_GLsizei",0); - SWIG_RegisterMapping("_GLint","_int",0); - SWIG_RegisterMapping("_GLint","_signed_int",0); - SWIG_RegisterMapping("_GLint","_unsigned_int",0); - SWIG_RegisterMapping("_GLint","_wxWindowID",0); - SWIG_RegisterMapping("_GLint","_uint",0); - SWIG_RegisterMapping("_GLint","_EBool",0); - SWIG_RegisterMapping("_GLint","_size_t",0); - SWIG_RegisterMapping("_GLint","_GLenum",0); - SWIG_RegisterMapping("_GLint","_GLbitfield",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_GLubyte","_unsigned_char",0); - SWIG_RegisterMapping("_GLubyte","_byte",0); - SWIG_RegisterMapping("_GLubyte","_GLboolean",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxListCtrl","_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxGLCanvas","_wxGLCanvas",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxTreeEvent","_class_wxTreeEvent",0); - SWIG_RegisterMapping("_wxDirDialog","_class_wxDirDialog",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_class_wxColourDialog","_wxColourDialog",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxTextEntryDialog","_wxTextEntryDialog",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_wxColourData","_class_wxColourData",0); - SWIG_RegisterMapping("_wxPageSetupDialogData","_class_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxFontDialog","_wxFontDialog",0); - SWIG_RegisterMapping("_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/gtk/glcanvas.py b/utils/wxPython/src/gtk/glcanvas.py deleted file mode 100644 index 6af25bd70f..0000000000 --- a/utils/wxPython/src/gtk/glcanvas.py +++ /dev/null @@ -1,1392 +0,0 @@ -# This file was created automatically by SWIG. -import glcanvasc - -from misc import * - -from windows import * - -from gdi import * - -from events import * - -from mdi import * - -from frames import * - -from stattool import * - -from controls import * - -from controls2 import * - -from windows2 import * - -from cmndlgs import * - -from windows3 import * - -from image import * -import wx -class wxGLContextPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - glcanvasc.delete_wxGLContext(self.this) - def SetCurrent(self): - val = glcanvasc.wxGLContext_SetCurrent(self.this) - return val - def SetColour(self,arg0): - val = glcanvasc.wxGLContext_SetColour(self.this,arg0) - return val - def SwapBuffers(self): - val = glcanvasc.wxGLContext_SwapBuffers(self.this) - return val - def SetupPixelFormat(self): - val = glcanvasc.wxGLContext_SetupPixelFormat(self.this) - return val - def SetupPalette(self,arg0): - val = glcanvasc.wxGLContext_SetupPalette(self.this,arg0.this) - return val - def CreateDefaultPalette(self): - val = glcanvasc.wxGLContext_CreateDefaultPalette(self.this) - val = wxPalettePtr(val) - val.thisown = 1 - return val - def GetPalette(self): - val = glcanvasc.wxGLContext_GetPalette(self.this) - val = wxPalettePtr(val) - return val - def GetWindow(self): - val = glcanvasc.wxGLContext_GetWindow(self.this) - val = wxWindowPtr(val) - return val - def __repr__(self): - return "" -class wxGLContext(wxGLContextPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(glcanvasc.new_wxGLContext,(arg0,arg1.this,)+args) - self.thisown = 1 - - - - -class wxGLCanvasPtr(wxScrolledWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetCurrent(self): - val = glcanvasc.wxGLCanvas_SetCurrent(self.this) - return val - def SetColour(self,arg0): - val = glcanvasc.wxGLCanvas_SetColour(self.this,arg0) - return val - def SwapBuffers(self): - val = glcanvasc.wxGLCanvas_SwapBuffers(self.this) - return val - def GetContext(self): - val = glcanvasc.wxGLCanvas_GetContext(self.this) - val = wxGLContextPtr(val) - return val - def __repr__(self): - return "" -class wxGLCanvas(wxGLCanvasPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - try: argl[6] = argl[6].this - except: pass - args = tuple(argl) - self.this = apply(glcanvasc.new_wxGLCanvas,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -glArrayElementEXT = glcanvasc.glArrayElementEXT - -glColorPointerEXT = glcanvasc.glColorPointerEXT - -glDrawArraysEXT = glcanvasc.glDrawArraysEXT - -glEdgeFlagPointerEXT = glcanvasc.glEdgeFlagPointerEXT - -glGetPointervEXT = glcanvasc.glGetPointervEXT - -glIndexPointerEXT = glcanvasc.glIndexPointerEXT - -glNormalPointerEXT = glcanvasc.glNormalPointerEXT - -glTexCoordPointerEXT = glcanvasc.glTexCoordPointerEXT - -glVertexPointerEXT = glcanvasc.glVertexPointerEXT - -glColorTableEXT = glcanvasc.glColorTableEXT - -glGetColorTableEXT = glcanvasc.glGetColorTableEXT - -glAccum = glcanvasc.glAccum - -glAlphaFunc = glcanvasc.glAlphaFunc - -glAreTexturesResident = glcanvasc.glAreTexturesResident - -glArrayElement = glcanvasc.glArrayElement - -glBegin = glcanvasc.glBegin - -glBindTexture = glcanvasc.glBindTexture - -glBitmap = glcanvasc.glBitmap - -glBlendFunc = glcanvasc.glBlendFunc - -glCallList = glcanvasc.glCallList - -glCallLists = glcanvasc.glCallLists - -glClear = glcanvasc.glClear - -glClearAccum = glcanvasc.glClearAccum - -glClearColor = glcanvasc.glClearColor - -glClearDepth = glcanvasc.glClearDepth - -glClearIndex = glcanvasc.glClearIndex - -glClearStencil = glcanvasc.glClearStencil - -glClipPlane = glcanvasc.glClipPlane - -glColor3b = glcanvasc.glColor3b - -glColor3bv = glcanvasc.glColor3bv - -glColor3d = glcanvasc.glColor3d - -glColor3dv = glcanvasc.glColor3dv - -glColor3f = glcanvasc.glColor3f - -glColor3fv = glcanvasc.glColor3fv - -glColor3i = glcanvasc.glColor3i - -glColor3iv = glcanvasc.glColor3iv - -glColor3s = glcanvasc.glColor3s - -glColor3sv = glcanvasc.glColor3sv - -glColor3ub = glcanvasc.glColor3ub - -glColor3ubv = glcanvasc.glColor3ubv - -glColor3ui = glcanvasc.glColor3ui - -glColor3uiv = glcanvasc.glColor3uiv - -glColor3us = glcanvasc.glColor3us - -glColor3usv = glcanvasc.glColor3usv - -glColor4b = glcanvasc.glColor4b - -glColor4bv = glcanvasc.glColor4bv - -glColor4d = glcanvasc.glColor4d - -glColor4dv = glcanvasc.glColor4dv - -glColor4f = glcanvasc.glColor4f - -glColor4fv = glcanvasc.glColor4fv - -glColor4i = glcanvasc.glColor4i - -glColor4iv = glcanvasc.glColor4iv - -glColor4s = glcanvasc.glColor4s - -glColor4sv = glcanvasc.glColor4sv - -glColor4ub = glcanvasc.glColor4ub - -glColor4ubv = glcanvasc.glColor4ubv - -glColor4ui = glcanvasc.glColor4ui - -glColor4uiv = glcanvasc.glColor4uiv - -glColor4us = glcanvasc.glColor4us - -glColor4usv = glcanvasc.glColor4usv - -glColorMask = glcanvasc.glColorMask - -glColorMaterial = glcanvasc.glColorMaterial - -glColorPointer = glcanvasc.glColorPointer - -glCopyPixels = glcanvasc.glCopyPixels - -glCopyTexImage1D = glcanvasc.glCopyTexImage1D - -glCopyTexImage2D = glcanvasc.glCopyTexImage2D - -glCopyTexSubImage1D = glcanvasc.glCopyTexSubImage1D - -glCopyTexSubImage2D = glcanvasc.glCopyTexSubImage2D - -glCullFace = glcanvasc.glCullFace - -glDeleteLists = glcanvasc.glDeleteLists - -glDeleteTextures = glcanvasc.glDeleteTextures - -glDepthFunc = glcanvasc.glDepthFunc - -glDepthMask = glcanvasc.glDepthMask - -glDepthRange = glcanvasc.glDepthRange - -glDisable = glcanvasc.glDisable - -glDisableClientState = glcanvasc.glDisableClientState - -glDrawArrays = glcanvasc.glDrawArrays - -glDrawBuffer = glcanvasc.glDrawBuffer - -glDrawElements = glcanvasc.glDrawElements - -glDrawPixels = glcanvasc.glDrawPixels - -glEdgeFlag = glcanvasc.glEdgeFlag - -glEdgeFlagPointer = glcanvasc.glEdgeFlagPointer - -glEdgeFlagv = glcanvasc.glEdgeFlagv - -glEnable = glcanvasc.glEnable - -glEnableClientState = glcanvasc.glEnableClientState - -glEnd = glcanvasc.glEnd - -glEndList = glcanvasc.glEndList - -glEvalCoord1d = glcanvasc.glEvalCoord1d - -glEvalCoord1dv = glcanvasc.glEvalCoord1dv - -glEvalCoord1f = glcanvasc.glEvalCoord1f - -glEvalCoord1fv = glcanvasc.glEvalCoord1fv - -glEvalCoord2d = glcanvasc.glEvalCoord2d - -glEvalCoord2dv = glcanvasc.glEvalCoord2dv - -glEvalCoord2f = glcanvasc.glEvalCoord2f - -glEvalCoord2fv = glcanvasc.glEvalCoord2fv - -glEvalMesh1 = glcanvasc.glEvalMesh1 - -glEvalMesh2 = glcanvasc.glEvalMesh2 - -glEvalPoint1 = glcanvasc.glEvalPoint1 - -glEvalPoint2 = glcanvasc.glEvalPoint2 - -glFeedbackBuffer = glcanvasc.glFeedbackBuffer - -glFinish = glcanvasc.glFinish - -glFlush = glcanvasc.glFlush - -glFogf = glcanvasc.glFogf - -glFogfv = glcanvasc.glFogfv - -glFogi = glcanvasc.glFogi - -glFogiv = glcanvasc.glFogiv - -glFrontFace = glcanvasc.glFrontFace - -glFrustum = glcanvasc.glFrustum - -glGenLists = glcanvasc.glGenLists - -glGenTextures = glcanvasc.glGenTextures - -glGetBooleanv = glcanvasc.glGetBooleanv - -glGetClipPlane = glcanvasc.glGetClipPlane - -glGetDoublev = glcanvasc.glGetDoublev - -glGetError = glcanvasc.glGetError - -glGetFloatv = glcanvasc.glGetFloatv - -glGetIntegerv = glcanvasc.glGetIntegerv - -glGetLightfv = glcanvasc.glGetLightfv - -glGetLightiv = glcanvasc.glGetLightiv - -glGetMapdv = glcanvasc.glGetMapdv - -glGetMapfv = glcanvasc.glGetMapfv - -glGetMapiv = glcanvasc.glGetMapiv - -glGetMaterialfv = glcanvasc.glGetMaterialfv - -glGetMaterialiv = glcanvasc.glGetMaterialiv - -glGetPixelMapfv = glcanvasc.glGetPixelMapfv - -glGetPixelMapuiv = glcanvasc.glGetPixelMapuiv - -glGetPixelMapusv = glcanvasc.glGetPixelMapusv - -glGetPointerv = glcanvasc.glGetPointerv - -glGetPolygonStipple = glcanvasc.glGetPolygonStipple - -glGetString = glcanvasc.glGetString - -glGetTexEnvfv = glcanvasc.glGetTexEnvfv - -glGetTexEnviv = glcanvasc.glGetTexEnviv - -glGetTexGendv = glcanvasc.glGetTexGendv - -glGetTexGenfv = glcanvasc.glGetTexGenfv - -glGetTexGeniv = glcanvasc.glGetTexGeniv - -glGetTexImage = glcanvasc.glGetTexImage - -glGetTexLevelParameterfv = glcanvasc.glGetTexLevelParameterfv - -glGetTexLevelParameteriv = glcanvasc.glGetTexLevelParameteriv - -glGetTexParameterfv = glcanvasc.glGetTexParameterfv - -glGetTexParameteriv = glcanvasc.glGetTexParameteriv - -glHint = glcanvasc.glHint - -glIndexMask = glcanvasc.glIndexMask - -glIndexPointer = glcanvasc.glIndexPointer - -glIndexd = glcanvasc.glIndexd - -glIndexdv = glcanvasc.glIndexdv - -glIndexf = glcanvasc.glIndexf - -glIndexfv = glcanvasc.glIndexfv - -glIndexi = glcanvasc.glIndexi - -glIndexiv = glcanvasc.glIndexiv - -glIndexs = glcanvasc.glIndexs - -glIndexsv = glcanvasc.glIndexsv - -glIndexub = glcanvasc.glIndexub - -glIndexubv = glcanvasc.glIndexubv - -glInitNames = glcanvasc.glInitNames - -glInterleavedArrays = glcanvasc.glInterleavedArrays - -glIsEnabled = glcanvasc.glIsEnabled - -glIsList = glcanvasc.glIsList - -glIsTexture = glcanvasc.glIsTexture - -glLightModelf = glcanvasc.glLightModelf - -glLightModelfv = glcanvasc.glLightModelfv - -glLightModeli = glcanvasc.glLightModeli - -glLightModeliv = glcanvasc.glLightModeliv - -glLightf = glcanvasc.glLightf - -glLightfv = glcanvasc.glLightfv - -glLighti = glcanvasc.glLighti - -glLightiv = glcanvasc.glLightiv - -glLineStipple = glcanvasc.glLineStipple - -glLineWidth = glcanvasc.glLineWidth - -glListBase = glcanvasc.glListBase - -glLoadIdentity = glcanvasc.glLoadIdentity - -glLoadMatrixd = glcanvasc.glLoadMatrixd - -glLoadMatrixf = glcanvasc.glLoadMatrixf - -glLoadName = glcanvasc.glLoadName - -glLogicOp = glcanvasc.glLogicOp - -glMap1d = glcanvasc.glMap1d - -glMap1f = glcanvasc.glMap1f - -glMap2d = glcanvasc.glMap2d - -glMap2f = glcanvasc.glMap2f - -glMapGrid1d = glcanvasc.glMapGrid1d - -glMapGrid1f = glcanvasc.glMapGrid1f - -glMapGrid2d = glcanvasc.glMapGrid2d - -glMapGrid2f = glcanvasc.glMapGrid2f - -glMaterialf = glcanvasc.glMaterialf - -glMaterialfv = glcanvasc.glMaterialfv - -glMateriali = glcanvasc.glMateriali - -glMaterialiv = glcanvasc.glMaterialiv - -glMatrixMode = glcanvasc.glMatrixMode - -glMultMatrixd = glcanvasc.glMultMatrixd - -glMultMatrixf = glcanvasc.glMultMatrixf - -glNewList = glcanvasc.glNewList - -glNormal3b = glcanvasc.glNormal3b - -glNormal3bv = glcanvasc.glNormal3bv - -glNormal3d = glcanvasc.glNormal3d - -glNormal3dv = glcanvasc.glNormal3dv - -glNormal3f = glcanvasc.glNormal3f - -glNormal3fv = glcanvasc.glNormal3fv - -glNormal3i = glcanvasc.glNormal3i - -glNormal3iv = glcanvasc.glNormal3iv - -glNormal3s = glcanvasc.glNormal3s - -glNormal3sv = glcanvasc.glNormal3sv - -glNormalPointer = glcanvasc.glNormalPointer - -glOrtho = glcanvasc.glOrtho - -glPassThrough = glcanvasc.glPassThrough - -glPixelMapfv = glcanvasc.glPixelMapfv - -glPixelMapuiv = glcanvasc.glPixelMapuiv - -glPixelMapusv = glcanvasc.glPixelMapusv - -glPixelStoref = glcanvasc.glPixelStoref - -glPixelStorei = glcanvasc.glPixelStorei - -glPixelTransferf = glcanvasc.glPixelTransferf - -glPixelTransferi = glcanvasc.glPixelTransferi - -glPixelZoom = glcanvasc.glPixelZoom - -glPointSize = glcanvasc.glPointSize - -glPolygonMode = glcanvasc.glPolygonMode - -glPolygonOffset = glcanvasc.glPolygonOffset - -glPolygonStipple = glcanvasc.glPolygonStipple - -glPopAttrib = glcanvasc.glPopAttrib - -glPopClientAttrib = glcanvasc.glPopClientAttrib - -glPopMatrix = glcanvasc.glPopMatrix - -glPopName = glcanvasc.glPopName - -glPrioritizeTextures = glcanvasc.glPrioritizeTextures - -glPushAttrib = glcanvasc.glPushAttrib - -glPushClientAttrib = glcanvasc.glPushClientAttrib - -glPushMatrix = glcanvasc.glPushMatrix - -glPushName = glcanvasc.glPushName - -glRasterPos2d = glcanvasc.glRasterPos2d - -glRasterPos2dv = glcanvasc.glRasterPos2dv - -glRasterPos2f = glcanvasc.glRasterPos2f - -glRasterPos2fv = glcanvasc.glRasterPos2fv - -glRasterPos2i = glcanvasc.glRasterPos2i - -glRasterPos2iv = glcanvasc.glRasterPos2iv - -glRasterPos2s = glcanvasc.glRasterPos2s - -glRasterPos2sv = glcanvasc.glRasterPos2sv - -glRasterPos3d = glcanvasc.glRasterPos3d - -glRasterPos3dv = glcanvasc.glRasterPos3dv - -glRasterPos3f = glcanvasc.glRasterPos3f - -glRasterPos3fv = glcanvasc.glRasterPos3fv - -glRasterPos3i = glcanvasc.glRasterPos3i - -glRasterPos3iv = glcanvasc.glRasterPos3iv - -glRasterPos3s = glcanvasc.glRasterPos3s - -glRasterPos3sv = glcanvasc.glRasterPos3sv - -glRasterPos4d = glcanvasc.glRasterPos4d - -glRasterPos4dv = glcanvasc.glRasterPos4dv - -glRasterPos4f = glcanvasc.glRasterPos4f - -glRasterPos4fv = glcanvasc.glRasterPos4fv - -glRasterPos4i = glcanvasc.glRasterPos4i - -glRasterPos4iv = glcanvasc.glRasterPos4iv - -glRasterPos4s = glcanvasc.glRasterPos4s - -glRasterPos4sv = glcanvasc.glRasterPos4sv - -glReadBuffer = glcanvasc.glReadBuffer - -glReadPixels = glcanvasc.glReadPixels - -glRectd = glcanvasc.glRectd - -glRectdv = glcanvasc.glRectdv - -glRectf = glcanvasc.glRectf - -glRectfv = glcanvasc.glRectfv - -glRecti = glcanvasc.glRecti - -glRectiv = glcanvasc.glRectiv - -glRects = glcanvasc.glRects - -glRectsv = glcanvasc.glRectsv - -glRenderMode = glcanvasc.glRenderMode - -glRotated = glcanvasc.glRotated - -glRotatef = glcanvasc.glRotatef - -glScaled = glcanvasc.glScaled - -glScalef = glcanvasc.glScalef - -glScissor = glcanvasc.glScissor - -glSelectBuffer = glcanvasc.glSelectBuffer - -glShadeModel = glcanvasc.glShadeModel - -glStencilFunc = glcanvasc.glStencilFunc - -glStencilMask = glcanvasc.glStencilMask - -glStencilOp = glcanvasc.glStencilOp - -glTexCoord1d = glcanvasc.glTexCoord1d - -glTexCoord1dv = glcanvasc.glTexCoord1dv - -glTexCoord1f = glcanvasc.glTexCoord1f - -glTexCoord1fv = glcanvasc.glTexCoord1fv - -glTexCoord1i = glcanvasc.glTexCoord1i - -glTexCoord1iv = glcanvasc.glTexCoord1iv - -glTexCoord1s = glcanvasc.glTexCoord1s - -glTexCoord1sv = glcanvasc.glTexCoord1sv - -glTexCoord2d = glcanvasc.glTexCoord2d - -glTexCoord2dv = glcanvasc.glTexCoord2dv - -glTexCoord2f = glcanvasc.glTexCoord2f - -glTexCoord2fv = glcanvasc.glTexCoord2fv - -glTexCoord2i = glcanvasc.glTexCoord2i - -glTexCoord2iv = glcanvasc.glTexCoord2iv - -glTexCoord2s = glcanvasc.glTexCoord2s - -glTexCoord2sv = glcanvasc.glTexCoord2sv - -glTexCoord3d = glcanvasc.glTexCoord3d - -glTexCoord3dv = glcanvasc.glTexCoord3dv - -glTexCoord3f = glcanvasc.glTexCoord3f - -glTexCoord3fv = glcanvasc.glTexCoord3fv - -glTexCoord3i = glcanvasc.glTexCoord3i - -glTexCoord3iv = glcanvasc.glTexCoord3iv - -glTexCoord3s = glcanvasc.glTexCoord3s - -glTexCoord3sv = glcanvasc.glTexCoord3sv - -glTexCoord4d = glcanvasc.glTexCoord4d - -glTexCoord4dv = glcanvasc.glTexCoord4dv - -glTexCoord4f = glcanvasc.glTexCoord4f - -glTexCoord4fv = glcanvasc.glTexCoord4fv - -glTexCoord4i = glcanvasc.glTexCoord4i - -glTexCoord4iv = glcanvasc.glTexCoord4iv - -glTexCoord4s = glcanvasc.glTexCoord4s - -glTexCoord4sv = glcanvasc.glTexCoord4sv - -glTexCoordPointer = glcanvasc.glTexCoordPointer - -glTexEnvf = glcanvasc.glTexEnvf - -glTexEnvfv = glcanvasc.glTexEnvfv - -glTexEnvi = glcanvasc.glTexEnvi - -glTexEnviv = glcanvasc.glTexEnviv - -glTexGend = glcanvasc.glTexGend - -glTexGendv = glcanvasc.glTexGendv - -glTexGenf = glcanvasc.glTexGenf - -glTexGenfv = glcanvasc.glTexGenfv - -glTexGeni = glcanvasc.glTexGeni - -glTexGeniv = glcanvasc.glTexGeniv - -glTexImage1D = glcanvasc.glTexImage1D - -glTexImage2D = glcanvasc.glTexImage2D - -glTexParameterf = glcanvasc.glTexParameterf - -glTexParameterfv = glcanvasc.glTexParameterfv - -glTexParameteri = glcanvasc.glTexParameteri - -glTexParameteriv = glcanvasc.glTexParameteriv - -glTexSubImage1D = glcanvasc.glTexSubImage1D - -glTexSubImage2D = glcanvasc.glTexSubImage2D - -glTranslated = glcanvasc.glTranslated - -glTranslatef = glcanvasc.glTranslatef - -glVertex2d = glcanvasc.glVertex2d - -glVertex2dv = glcanvasc.glVertex2dv - -glVertex2f = glcanvasc.glVertex2f - -glVertex2fv = glcanvasc.glVertex2fv - -glVertex2i = glcanvasc.glVertex2i - -glVertex2iv = glcanvasc.glVertex2iv - -glVertex2s = glcanvasc.glVertex2s - -glVertex2sv = glcanvasc.glVertex2sv - -glVertex3d = glcanvasc.glVertex3d - -glVertex3dv = glcanvasc.glVertex3dv - -glVertex3f = glcanvasc.glVertex3f - -glVertex3fv = glcanvasc.glVertex3fv - -glVertex3i = glcanvasc.glVertex3i - -glVertex3iv = glcanvasc.glVertex3iv - -glVertex3s = glcanvasc.glVertex3s - -glVertex3sv = glcanvasc.glVertex3sv - -glVertex4d = glcanvasc.glVertex4d - -glVertex4dv = glcanvasc.glVertex4dv - -glVertex4f = glcanvasc.glVertex4f - -glVertex4fv = glcanvasc.glVertex4fv - -glVertex4i = glcanvasc.glVertex4i - -glVertex4iv = glcanvasc.glVertex4iv - -glVertex4s = glcanvasc.glVertex4s - -glVertex4sv = glcanvasc.glVertex4sv - -glVertexPointer = glcanvasc.glVertexPointer - -glViewport = glcanvasc.glViewport - - - -#-------------- VARIABLE WRAPPERS ------------------ - -GL_2D = glcanvasc.GL_2D -GL_2_BYTES = glcanvasc.GL_2_BYTES -GL_3D = glcanvasc.GL_3D -GL_3D_COLOR = glcanvasc.GL_3D_COLOR -GL_3D_COLOR_TEXTURE = glcanvasc.GL_3D_COLOR_TEXTURE -GL_3_BYTES = glcanvasc.GL_3_BYTES -GL_4D_COLOR_TEXTURE = glcanvasc.GL_4D_COLOR_TEXTURE -GL_4_BYTES = glcanvasc.GL_4_BYTES -GL_ACCUM = glcanvasc.GL_ACCUM -GL_ACCUM_ALPHA_BITS = glcanvasc.GL_ACCUM_ALPHA_BITS -GL_ACCUM_BLUE_BITS = glcanvasc.GL_ACCUM_BLUE_BITS -GL_ACCUM_BUFFER_BIT = glcanvasc.GL_ACCUM_BUFFER_BIT -GL_ACCUM_CLEAR_VALUE = glcanvasc.GL_ACCUM_CLEAR_VALUE -GL_ACCUM_GREEN_BITS = glcanvasc.GL_ACCUM_GREEN_BITS -GL_ACCUM_RED_BITS = glcanvasc.GL_ACCUM_RED_BITS -GL_ADD = glcanvasc.GL_ADD -GL_ALL_ATTRIB_BITS = glcanvasc.GL_ALL_ATTRIB_BITS -GL_ALPHA = glcanvasc.GL_ALPHA -GL_ALPHA12 = glcanvasc.GL_ALPHA12 -GL_ALPHA16 = glcanvasc.GL_ALPHA16 -GL_ALPHA4 = glcanvasc.GL_ALPHA4 -GL_ALPHA8 = glcanvasc.GL_ALPHA8 -GL_ALPHA_BIAS = glcanvasc.GL_ALPHA_BIAS -GL_ALPHA_BITS = glcanvasc.GL_ALPHA_BITS -GL_ALPHA_SCALE = glcanvasc.GL_ALPHA_SCALE -GL_ALPHA_TEST = glcanvasc.GL_ALPHA_TEST -GL_ALPHA_TEST_FUNC = glcanvasc.GL_ALPHA_TEST_FUNC -GL_ALPHA_TEST_REF = glcanvasc.GL_ALPHA_TEST_REF -GL_ALWAYS = glcanvasc.GL_ALWAYS -GL_AMBIENT = glcanvasc.GL_AMBIENT -GL_AMBIENT_AND_DIFFUSE = glcanvasc.GL_AMBIENT_AND_DIFFUSE -GL_AND = glcanvasc.GL_AND -GL_AND_INVERTED = glcanvasc.GL_AND_INVERTED -GL_AND_REVERSE = glcanvasc.GL_AND_REVERSE -GL_ATTRIB_STACK_DEPTH = glcanvasc.GL_ATTRIB_STACK_DEPTH -GL_AUTO_NORMAL = glcanvasc.GL_AUTO_NORMAL -GL_AUX0 = glcanvasc.GL_AUX0 -GL_AUX1 = glcanvasc.GL_AUX1 -GL_AUX2 = glcanvasc.GL_AUX2 -GL_AUX3 = glcanvasc.GL_AUX3 -GL_AUX_BUFFERS = glcanvasc.GL_AUX_BUFFERS -GL_BACK = glcanvasc.GL_BACK -GL_BACK_LEFT = glcanvasc.GL_BACK_LEFT -GL_BACK_RIGHT = glcanvasc.GL_BACK_RIGHT -GL_BITMAP = glcanvasc.GL_BITMAP -GL_BITMAP_TOKEN = glcanvasc.GL_BITMAP_TOKEN -GL_BLEND = glcanvasc.GL_BLEND -GL_BLEND_DST = glcanvasc.GL_BLEND_DST -GL_BLEND_SRC = glcanvasc.GL_BLEND_SRC -GL_BLUE = glcanvasc.GL_BLUE -GL_BLUE_BIAS = glcanvasc.GL_BLUE_BIAS -GL_BLUE_BITS = glcanvasc.GL_BLUE_BITS -GL_BLUE_SCALE = glcanvasc.GL_BLUE_SCALE -GL_BYTE = glcanvasc.GL_BYTE -GL_C3F_V3F = glcanvasc.GL_C3F_V3F -GL_C4F_N3F_V3F = glcanvasc.GL_C4F_N3F_V3F -GL_C4UB_V2F = glcanvasc.GL_C4UB_V2F -GL_C4UB_V3F = glcanvasc.GL_C4UB_V3F -GL_CCW = glcanvasc.GL_CCW -GL_CLAMP = glcanvasc.GL_CLAMP -GL_CLEAR = glcanvasc.GL_CLEAR -GL_CLIENT_ALL_ATTRIB_BITS = glcanvasc.GL_CLIENT_ALL_ATTRIB_BITS -GL_CLIENT_ATTRIB_STACK_DEPTH = glcanvasc.GL_CLIENT_ATTRIB_STACK_DEPTH -GL_CLIENT_PIXEL_STORE_BIT = glcanvasc.GL_CLIENT_PIXEL_STORE_BIT -GL_CLIENT_VERTEX_ARRAY_BIT = glcanvasc.GL_CLIENT_VERTEX_ARRAY_BIT -GL_CLIP_PLANE0 = glcanvasc.GL_CLIP_PLANE0 -GL_CLIP_PLANE1 = glcanvasc.GL_CLIP_PLANE1 -GL_CLIP_PLANE2 = glcanvasc.GL_CLIP_PLANE2 -GL_CLIP_PLANE3 = glcanvasc.GL_CLIP_PLANE3 -GL_CLIP_PLANE4 = glcanvasc.GL_CLIP_PLANE4 -GL_CLIP_PLANE5 = glcanvasc.GL_CLIP_PLANE5 -GL_COEFF = glcanvasc.GL_COEFF -GL_COLOR = glcanvasc.GL_COLOR -GL_COLOR_ARRAY = glcanvasc.GL_COLOR_ARRAY -GL_COLOR_ARRAY_COUNT_EXT = glcanvasc.GL_COLOR_ARRAY_COUNT_EXT -GL_COLOR_ARRAY_EXT = glcanvasc.GL_COLOR_ARRAY_EXT -GL_COLOR_ARRAY_POINTER = glcanvasc.GL_COLOR_ARRAY_POINTER -GL_COLOR_ARRAY_POINTER_EXT = glcanvasc.GL_COLOR_ARRAY_POINTER_EXT -GL_COLOR_ARRAY_SIZE = glcanvasc.GL_COLOR_ARRAY_SIZE -GL_COLOR_ARRAY_SIZE_EXT = glcanvasc.GL_COLOR_ARRAY_SIZE_EXT -GL_COLOR_ARRAY_STRIDE = glcanvasc.GL_COLOR_ARRAY_STRIDE -GL_COLOR_ARRAY_STRIDE_EXT = glcanvasc.GL_COLOR_ARRAY_STRIDE_EXT -GL_COLOR_ARRAY_TYPE = glcanvasc.GL_COLOR_ARRAY_TYPE -GL_COLOR_ARRAY_TYPE_EXT = glcanvasc.GL_COLOR_ARRAY_TYPE_EXT -GL_COLOR_BUFFER_BIT = glcanvasc.GL_COLOR_BUFFER_BIT -GL_COLOR_CLEAR_VALUE = glcanvasc.GL_COLOR_CLEAR_VALUE -GL_COLOR_INDEX = glcanvasc.GL_COLOR_INDEX -GL_COLOR_INDEX12_EXT = glcanvasc.GL_COLOR_INDEX12_EXT -GL_COLOR_INDEX16_EXT = glcanvasc.GL_COLOR_INDEX16_EXT -GL_COLOR_INDEX1_EXT = glcanvasc.GL_COLOR_INDEX1_EXT -GL_COLOR_INDEX2_EXT = glcanvasc.GL_COLOR_INDEX2_EXT -GL_COLOR_INDEX4_EXT = glcanvasc.GL_COLOR_INDEX4_EXT -GL_COLOR_INDEX8_EXT = glcanvasc.GL_COLOR_INDEX8_EXT -GL_COLOR_INDEXES = glcanvasc.GL_COLOR_INDEXES -GL_COLOR_LOGIC_OP = glcanvasc.GL_COLOR_LOGIC_OP -GL_COLOR_MATERIAL = glcanvasc.GL_COLOR_MATERIAL -GL_COLOR_MATERIAL_FACE = glcanvasc.GL_COLOR_MATERIAL_FACE -GL_COLOR_MATERIAL_PARAMETER = glcanvasc.GL_COLOR_MATERIAL_PARAMETER -GL_COLOR_TABLE_ALPHA_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_ALPHA_SIZE_EXT -GL_COLOR_TABLE_BLUE_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_BLUE_SIZE_EXT -GL_COLOR_TABLE_FORMAT_EXT = glcanvasc.GL_COLOR_TABLE_FORMAT_EXT -GL_COLOR_TABLE_GREEN_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_GREEN_SIZE_EXT -GL_COLOR_TABLE_INTENSITY_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_INTENSITY_SIZE_EXT -GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_LUMINANCE_SIZE_EXT -GL_COLOR_TABLE_RED_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_RED_SIZE_EXT -GL_COLOR_TABLE_WIDTH_EXT = glcanvasc.GL_COLOR_TABLE_WIDTH_EXT -GL_COLOR_WRITEMASK = glcanvasc.GL_COLOR_WRITEMASK -GL_COMPILE = glcanvasc.GL_COMPILE -GL_COMPILE_AND_EXECUTE = glcanvasc.GL_COMPILE_AND_EXECUTE -GL_CONSTANT_ATTENUATION = glcanvasc.GL_CONSTANT_ATTENUATION -GL_COPY = glcanvasc.GL_COPY -GL_COPY_INVERTED = glcanvasc.GL_COPY_INVERTED -GL_COPY_PIXEL_TOKEN = glcanvasc.GL_COPY_PIXEL_TOKEN -GL_CULL_FACE = glcanvasc.GL_CULL_FACE -GL_CULL_FACE_MODE = glcanvasc.GL_CULL_FACE_MODE -GL_CURRENT_BIT = glcanvasc.GL_CURRENT_BIT -GL_CURRENT_COLOR = glcanvasc.GL_CURRENT_COLOR -GL_CURRENT_INDEX = glcanvasc.GL_CURRENT_INDEX -GL_CURRENT_NORMAL = glcanvasc.GL_CURRENT_NORMAL -GL_CURRENT_RASTER_COLOR = glcanvasc.GL_CURRENT_RASTER_COLOR -GL_CURRENT_RASTER_DISTANCE = glcanvasc.GL_CURRENT_RASTER_DISTANCE -GL_CURRENT_RASTER_INDEX = glcanvasc.GL_CURRENT_RASTER_INDEX -GL_CURRENT_RASTER_POSITION = glcanvasc.GL_CURRENT_RASTER_POSITION -GL_CURRENT_RASTER_POSITION_VALID = glcanvasc.GL_CURRENT_RASTER_POSITION_VALID -GL_CURRENT_RASTER_TEXTURE_COORDS = glcanvasc.GL_CURRENT_RASTER_TEXTURE_COORDS -GL_CURRENT_TEXTURE_COORDS = glcanvasc.GL_CURRENT_TEXTURE_COORDS -GL_CW = glcanvasc.GL_CW -GL_DECAL = glcanvasc.GL_DECAL -GL_DECR = glcanvasc.GL_DECR -GL_DEPTH = glcanvasc.GL_DEPTH -GL_DEPTH_BIAS = glcanvasc.GL_DEPTH_BIAS -GL_DEPTH_BITS = glcanvasc.GL_DEPTH_BITS -GL_DEPTH_BUFFER_BIT = glcanvasc.GL_DEPTH_BUFFER_BIT -GL_DEPTH_CLEAR_VALUE = glcanvasc.GL_DEPTH_CLEAR_VALUE -GL_DEPTH_COMPONENT = glcanvasc.GL_DEPTH_COMPONENT -GL_DEPTH_FUNC = glcanvasc.GL_DEPTH_FUNC -GL_DEPTH_RANGE = glcanvasc.GL_DEPTH_RANGE -GL_DEPTH_SCALE = glcanvasc.GL_DEPTH_SCALE -GL_DEPTH_TEST = glcanvasc.GL_DEPTH_TEST -GL_DEPTH_WRITEMASK = glcanvasc.GL_DEPTH_WRITEMASK -GL_DIFFUSE = glcanvasc.GL_DIFFUSE -GL_DITHER = glcanvasc.GL_DITHER -GL_DOMAIN = glcanvasc.GL_DOMAIN -GL_DONT_CARE = glcanvasc.GL_DONT_CARE -GL_DOUBLE = glcanvasc.GL_DOUBLE -GL_DOUBLEBUFFER = glcanvasc.GL_DOUBLEBUFFER -GL_DRAW_BUFFER = glcanvasc.GL_DRAW_BUFFER -GL_DRAW_PIXEL_TOKEN = glcanvasc.GL_DRAW_PIXEL_TOKEN -GL_DST_ALPHA = glcanvasc.GL_DST_ALPHA -GL_DST_COLOR = glcanvasc.GL_DST_COLOR -GL_EDGE_FLAG = glcanvasc.GL_EDGE_FLAG -GL_EDGE_FLAG_ARRAY = glcanvasc.GL_EDGE_FLAG_ARRAY -GL_EDGE_FLAG_ARRAY_COUNT_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_COUNT_EXT -GL_EDGE_FLAG_ARRAY_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_EXT -GL_EDGE_FLAG_ARRAY_POINTER = glcanvasc.GL_EDGE_FLAG_ARRAY_POINTER -GL_EDGE_FLAG_ARRAY_POINTER_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_POINTER_EXT -GL_EDGE_FLAG_ARRAY_STRIDE = glcanvasc.GL_EDGE_FLAG_ARRAY_STRIDE -GL_EDGE_FLAG_ARRAY_STRIDE_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_STRIDE_EXT -GL_EMISSION = glcanvasc.GL_EMISSION -GL_ENABLE_BIT = glcanvasc.GL_ENABLE_BIT -GL_EQUAL = glcanvasc.GL_EQUAL -GL_EQUIV = glcanvasc.GL_EQUIV -GL_EVAL_BIT = glcanvasc.GL_EVAL_BIT -GL_EXP = glcanvasc.GL_EXP -GL_EXP2 = glcanvasc.GL_EXP2 -GL_EXTENSIONS = glcanvasc.GL_EXTENSIONS -GL_EXT_paletted_texture = glcanvasc.GL_EXT_paletted_texture -GL_EXT_vertex_array = glcanvasc.GL_EXT_vertex_array -GL_EYE_LINEAR = glcanvasc.GL_EYE_LINEAR -GL_EYE_PLANE = glcanvasc.GL_EYE_PLANE -GL_FALSE = glcanvasc.GL_FALSE -GL_FASTEST = glcanvasc.GL_FASTEST -GL_FEEDBACK = glcanvasc.GL_FEEDBACK -GL_FEEDBACK_BUFFER_POINTER = glcanvasc.GL_FEEDBACK_BUFFER_POINTER -GL_FEEDBACK_BUFFER_SIZE = glcanvasc.GL_FEEDBACK_BUFFER_SIZE -GL_FEEDBACK_BUFFER_TYPE = glcanvasc.GL_FEEDBACK_BUFFER_TYPE -GL_FILL = glcanvasc.GL_FILL -GL_FLAT = glcanvasc.GL_FLAT -GL_FLOAT = glcanvasc.GL_FLOAT -GL_FOG = glcanvasc.GL_FOG -GL_FOG_BIT = glcanvasc.GL_FOG_BIT -GL_FOG_COLOR = glcanvasc.GL_FOG_COLOR -GL_FOG_DENSITY = glcanvasc.GL_FOG_DENSITY -GL_FOG_END = glcanvasc.GL_FOG_END -GL_FOG_HINT = glcanvasc.GL_FOG_HINT -GL_FOG_INDEX = glcanvasc.GL_FOG_INDEX -GL_FOG_MODE = glcanvasc.GL_FOG_MODE -GL_FOG_START = glcanvasc.GL_FOG_START -GL_FRONT = glcanvasc.GL_FRONT -GL_FRONT_AND_BACK = glcanvasc.GL_FRONT_AND_BACK -GL_FRONT_FACE = glcanvasc.GL_FRONT_FACE -GL_FRONT_LEFT = glcanvasc.GL_FRONT_LEFT -GL_FRONT_RIGHT = glcanvasc.GL_FRONT_RIGHT -GL_GEQUAL = glcanvasc.GL_GEQUAL -GL_GREATER = glcanvasc.GL_GREATER -GL_GREEN = glcanvasc.GL_GREEN -GL_GREEN_BIAS = glcanvasc.GL_GREEN_BIAS -GL_GREEN_BITS = glcanvasc.GL_GREEN_BITS -GL_GREEN_SCALE = glcanvasc.GL_GREEN_SCALE -GL_HINT_BIT = glcanvasc.GL_HINT_BIT -GL_INCR = glcanvasc.GL_INCR -GL_INDEX_ARRAY = glcanvasc.GL_INDEX_ARRAY -GL_INDEX_ARRAY_COUNT_EXT = glcanvasc.GL_INDEX_ARRAY_COUNT_EXT -GL_INDEX_ARRAY_EXT = glcanvasc.GL_INDEX_ARRAY_EXT -GL_INDEX_ARRAY_POINTER = glcanvasc.GL_INDEX_ARRAY_POINTER -GL_INDEX_ARRAY_POINTER_EXT = glcanvasc.GL_INDEX_ARRAY_POINTER_EXT -GL_INDEX_ARRAY_STRIDE = glcanvasc.GL_INDEX_ARRAY_STRIDE -GL_INDEX_ARRAY_STRIDE_EXT = glcanvasc.GL_INDEX_ARRAY_STRIDE_EXT -GL_INDEX_ARRAY_TYPE = glcanvasc.GL_INDEX_ARRAY_TYPE -GL_INDEX_ARRAY_TYPE_EXT = glcanvasc.GL_INDEX_ARRAY_TYPE_EXT -GL_INDEX_BITS = glcanvasc.GL_INDEX_BITS -GL_INDEX_CLEAR_VALUE = glcanvasc.GL_INDEX_CLEAR_VALUE -GL_INDEX_LOGIC_OP = glcanvasc.GL_INDEX_LOGIC_OP -GL_INDEX_MODE = glcanvasc.GL_INDEX_MODE -GL_INDEX_OFFSET = glcanvasc.GL_INDEX_OFFSET -GL_INDEX_SHIFT = glcanvasc.GL_INDEX_SHIFT -GL_INDEX_WRITEMASK = glcanvasc.GL_INDEX_WRITEMASK -GL_INT = glcanvasc.GL_INT -GL_INTENSITY = glcanvasc.GL_INTENSITY -GL_INTENSITY12 = glcanvasc.GL_INTENSITY12 -GL_INTENSITY16 = glcanvasc.GL_INTENSITY16 -GL_INTENSITY4 = glcanvasc.GL_INTENSITY4 -GL_INTENSITY8 = glcanvasc.GL_INTENSITY8 -GL_INVALID_ENUM = glcanvasc.GL_INVALID_ENUM -GL_INVALID_OPERATION = glcanvasc.GL_INVALID_OPERATION -GL_INVALID_VALUE = glcanvasc.GL_INVALID_VALUE -GL_INVERT = glcanvasc.GL_INVERT -GL_KEEP = glcanvasc.GL_KEEP -GL_LEFT = glcanvasc.GL_LEFT -GL_LEQUAL = glcanvasc.GL_LEQUAL -GL_LESS = glcanvasc.GL_LESS -GL_LIGHT0 = glcanvasc.GL_LIGHT0 -GL_LIGHT1 = glcanvasc.GL_LIGHT1 -GL_LIGHT2 = glcanvasc.GL_LIGHT2 -GL_LIGHT3 = glcanvasc.GL_LIGHT3 -GL_LIGHT4 = glcanvasc.GL_LIGHT4 -GL_LIGHT5 = glcanvasc.GL_LIGHT5 -GL_LIGHT6 = glcanvasc.GL_LIGHT6 -GL_LIGHT7 = glcanvasc.GL_LIGHT7 -GL_LIGHTING = glcanvasc.GL_LIGHTING -GL_LIGHTING_BIT = glcanvasc.GL_LIGHTING_BIT -GL_LIGHT_MODEL_AMBIENT = glcanvasc.GL_LIGHT_MODEL_AMBIENT -GL_LIGHT_MODEL_LOCAL_VIEWER = glcanvasc.GL_LIGHT_MODEL_LOCAL_VIEWER -GL_LIGHT_MODEL_TWO_SIDE = glcanvasc.GL_LIGHT_MODEL_TWO_SIDE -GL_LINE = glcanvasc.GL_LINE -GL_LINEAR = glcanvasc.GL_LINEAR -GL_LINEAR_ATTENUATION = glcanvasc.GL_LINEAR_ATTENUATION -GL_LINEAR_MIPMAP_LINEAR = glcanvasc.GL_LINEAR_MIPMAP_LINEAR -GL_LINEAR_MIPMAP_NEAREST = glcanvasc.GL_LINEAR_MIPMAP_NEAREST -GL_LINES = glcanvasc.GL_LINES -GL_LINE_BIT = glcanvasc.GL_LINE_BIT -GL_LINE_LOOP = glcanvasc.GL_LINE_LOOP -GL_LINE_RESET_TOKEN = glcanvasc.GL_LINE_RESET_TOKEN -GL_LINE_SMOOTH = glcanvasc.GL_LINE_SMOOTH -GL_LINE_SMOOTH_HINT = glcanvasc.GL_LINE_SMOOTH_HINT -GL_LINE_STIPPLE = glcanvasc.GL_LINE_STIPPLE -GL_LINE_STIPPLE_PATTERN = glcanvasc.GL_LINE_STIPPLE_PATTERN -GL_LINE_STIPPLE_REPEAT = glcanvasc.GL_LINE_STIPPLE_REPEAT -GL_LINE_STRIP = glcanvasc.GL_LINE_STRIP -GL_LINE_TOKEN = glcanvasc.GL_LINE_TOKEN -GL_LINE_WIDTH = glcanvasc.GL_LINE_WIDTH -GL_LINE_WIDTH_GRANULARITY = glcanvasc.GL_LINE_WIDTH_GRANULARITY -GL_LINE_WIDTH_RANGE = glcanvasc.GL_LINE_WIDTH_RANGE -GL_LIST_BASE = glcanvasc.GL_LIST_BASE -GL_LIST_BIT = glcanvasc.GL_LIST_BIT -GL_LIST_INDEX = glcanvasc.GL_LIST_INDEX -GL_LIST_MODE = glcanvasc.GL_LIST_MODE -GL_LOAD = glcanvasc.GL_LOAD -GL_LOGIC_OP = glcanvasc.GL_LOGIC_OP -GL_LOGIC_OP_MODE = glcanvasc.GL_LOGIC_OP_MODE -GL_LUMINANCE = glcanvasc.GL_LUMINANCE -GL_LUMINANCE12 = glcanvasc.GL_LUMINANCE12 -GL_LUMINANCE12_ALPHA12 = glcanvasc.GL_LUMINANCE12_ALPHA12 -GL_LUMINANCE12_ALPHA4 = glcanvasc.GL_LUMINANCE12_ALPHA4 -GL_LUMINANCE16 = glcanvasc.GL_LUMINANCE16 -GL_LUMINANCE16_ALPHA16 = glcanvasc.GL_LUMINANCE16_ALPHA16 -GL_LUMINANCE4 = glcanvasc.GL_LUMINANCE4 -GL_LUMINANCE4_ALPHA4 = glcanvasc.GL_LUMINANCE4_ALPHA4 -GL_LUMINANCE6_ALPHA2 = glcanvasc.GL_LUMINANCE6_ALPHA2 -GL_LUMINANCE8 = glcanvasc.GL_LUMINANCE8 -GL_LUMINANCE8_ALPHA8 = glcanvasc.GL_LUMINANCE8_ALPHA8 -GL_LUMINANCE_ALPHA = glcanvasc.GL_LUMINANCE_ALPHA -GL_MAP1_COLOR_4 = glcanvasc.GL_MAP1_COLOR_4 -GL_MAP1_GRID_DOMAIN = glcanvasc.GL_MAP1_GRID_DOMAIN -GL_MAP1_GRID_SEGMENTS = glcanvasc.GL_MAP1_GRID_SEGMENTS -GL_MAP1_INDEX = glcanvasc.GL_MAP1_INDEX -GL_MAP1_NORMAL = glcanvasc.GL_MAP1_NORMAL -GL_MAP1_TEXTURE_COORD_1 = glcanvasc.GL_MAP1_TEXTURE_COORD_1 -GL_MAP1_TEXTURE_COORD_2 = glcanvasc.GL_MAP1_TEXTURE_COORD_2 -GL_MAP1_TEXTURE_COORD_3 = glcanvasc.GL_MAP1_TEXTURE_COORD_3 -GL_MAP1_TEXTURE_COORD_4 = glcanvasc.GL_MAP1_TEXTURE_COORD_4 -GL_MAP1_VERTEX_3 = glcanvasc.GL_MAP1_VERTEX_3 -GL_MAP1_VERTEX_4 = glcanvasc.GL_MAP1_VERTEX_4 -GL_MAP2_COLOR_4 = glcanvasc.GL_MAP2_COLOR_4 -GL_MAP2_GRID_DOMAIN = glcanvasc.GL_MAP2_GRID_DOMAIN -GL_MAP2_GRID_SEGMENTS = glcanvasc.GL_MAP2_GRID_SEGMENTS -GL_MAP2_INDEX = glcanvasc.GL_MAP2_INDEX -GL_MAP2_NORMAL = glcanvasc.GL_MAP2_NORMAL -GL_MAP2_TEXTURE_COORD_1 = glcanvasc.GL_MAP2_TEXTURE_COORD_1 -GL_MAP2_TEXTURE_COORD_2 = glcanvasc.GL_MAP2_TEXTURE_COORD_2 -GL_MAP2_TEXTURE_COORD_3 = glcanvasc.GL_MAP2_TEXTURE_COORD_3 -GL_MAP2_TEXTURE_COORD_4 = glcanvasc.GL_MAP2_TEXTURE_COORD_4 -GL_MAP2_VERTEX_3 = glcanvasc.GL_MAP2_VERTEX_3 -GL_MAP2_VERTEX_4 = glcanvasc.GL_MAP2_VERTEX_4 -GL_MAP_COLOR = glcanvasc.GL_MAP_COLOR -GL_MAP_STENCIL = glcanvasc.GL_MAP_STENCIL -GL_MATRIX_MODE = glcanvasc.GL_MATRIX_MODE -GL_MAX_ATTRIB_STACK_DEPTH = glcanvasc.GL_MAX_ATTRIB_STACK_DEPTH -GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = glcanvasc.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH -GL_MAX_CLIP_PLANES = glcanvasc.GL_MAX_CLIP_PLANES -GL_MAX_EVAL_ORDER = glcanvasc.GL_MAX_EVAL_ORDER -GL_MAX_LIGHTS = glcanvasc.GL_MAX_LIGHTS -GL_MAX_LIST_NESTING = glcanvasc.GL_MAX_LIST_NESTING -GL_MAX_MODELVIEW_STACK_DEPTH = glcanvasc.GL_MAX_MODELVIEW_STACK_DEPTH -GL_MAX_NAME_STACK_DEPTH = glcanvasc.GL_MAX_NAME_STACK_DEPTH -GL_MAX_PIXEL_MAP_TABLE = glcanvasc.GL_MAX_PIXEL_MAP_TABLE -GL_MAX_PROJECTION_STACK_DEPTH = glcanvasc.GL_MAX_PROJECTION_STACK_DEPTH -GL_MAX_TEXTURE_SIZE = glcanvasc.GL_MAX_TEXTURE_SIZE -GL_MAX_TEXTURE_STACK_DEPTH = glcanvasc.GL_MAX_TEXTURE_STACK_DEPTH -GL_MAX_VIEWPORT_DIMS = glcanvasc.GL_MAX_VIEWPORT_DIMS -GL_MODELVIEW = glcanvasc.GL_MODELVIEW -GL_MODELVIEW_MATRIX = glcanvasc.GL_MODELVIEW_MATRIX -GL_MODELVIEW_STACK_DEPTH = glcanvasc.GL_MODELVIEW_STACK_DEPTH -GL_MODULATE = glcanvasc.GL_MODULATE -GL_MULT = glcanvasc.GL_MULT -GL_N3F_V3F = glcanvasc.GL_N3F_V3F -GL_NAME_STACK_DEPTH = glcanvasc.GL_NAME_STACK_DEPTH -GL_NAND = glcanvasc.GL_NAND -GL_NEAREST = glcanvasc.GL_NEAREST -GL_NEAREST_MIPMAP_LINEAR = glcanvasc.GL_NEAREST_MIPMAP_LINEAR -GL_NEAREST_MIPMAP_NEAREST = glcanvasc.GL_NEAREST_MIPMAP_NEAREST -GL_NEVER = glcanvasc.GL_NEVER -GL_NICEST = glcanvasc.GL_NICEST -GL_NONE = glcanvasc.GL_NONE -GL_NOOP = glcanvasc.GL_NOOP -GL_NOR = glcanvasc.GL_NOR -GL_NORMALIZE = glcanvasc.GL_NORMALIZE -GL_NORMAL_ARRAY = glcanvasc.GL_NORMAL_ARRAY -GL_NORMAL_ARRAY_COUNT_EXT = glcanvasc.GL_NORMAL_ARRAY_COUNT_EXT -GL_NORMAL_ARRAY_EXT = glcanvasc.GL_NORMAL_ARRAY_EXT -GL_NORMAL_ARRAY_POINTER = glcanvasc.GL_NORMAL_ARRAY_POINTER -GL_NORMAL_ARRAY_POINTER_EXT = glcanvasc.GL_NORMAL_ARRAY_POINTER_EXT -GL_NORMAL_ARRAY_STRIDE = glcanvasc.GL_NORMAL_ARRAY_STRIDE -GL_NORMAL_ARRAY_STRIDE_EXT = glcanvasc.GL_NORMAL_ARRAY_STRIDE_EXT -GL_NORMAL_ARRAY_TYPE = glcanvasc.GL_NORMAL_ARRAY_TYPE -GL_NORMAL_ARRAY_TYPE_EXT = glcanvasc.GL_NORMAL_ARRAY_TYPE_EXT -GL_NOTEQUAL = glcanvasc.GL_NOTEQUAL -GL_NO_ERROR = glcanvasc.GL_NO_ERROR -GL_OBJECT_LINEAR = glcanvasc.GL_OBJECT_LINEAR -GL_OBJECT_PLANE = glcanvasc.GL_OBJECT_PLANE -GL_ONE = glcanvasc.GL_ONE -GL_ONE_MINUS_DST_ALPHA = glcanvasc.GL_ONE_MINUS_DST_ALPHA -GL_ONE_MINUS_DST_COLOR = glcanvasc.GL_ONE_MINUS_DST_COLOR -GL_ONE_MINUS_SRC_ALPHA = glcanvasc.GL_ONE_MINUS_SRC_ALPHA -GL_ONE_MINUS_SRC_COLOR = glcanvasc.GL_ONE_MINUS_SRC_COLOR -GL_OR = glcanvasc.GL_OR -GL_ORDER = glcanvasc.GL_ORDER -GL_OR_INVERTED = glcanvasc.GL_OR_INVERTED -GL_OR_REVERSE = glcanvasc.GL_OR_REVERSE -GL_OUT_OF_MEMORY = glcanvasc.GL_OUT_OF_MEMORY -GL_PACK_ALIGNMENT = glcanvasc.GL_PACK_ALIGNMENT -GL_PACK_LSB_FIRST = glcanvasc.GL_PACK_LSB_FIRST -GL_PACK_ROW_LENGTH = glcanvasc.GL_PACK_ROW_LENGTH -GL_PACK_SKIP_PIXELS = glcanvasc.GL_PACK_SKIP_PIXELS -GL_PACK_SKIP_ROWS = glcanvasc.GL_PACK_SKIP_ROWS -GL_PACK_SWAP_BYTES = glcanvasc.GL_PACK_SWAP_BYTES -GL_PASS_THROUGH_TOKEN = glcanvasc.GL_PASS_THROUGH_TOKEN -GL_PERSPECTIVE_CORRECTION_HINT = glcanvasc.GL_PERSPECTIVE_CORRECTION_HINT -GL_PIXEL_MAP_A_TO_A = glcanvasc.GL_PIXEL_MAP_A_TO_A -GL_PIXEL_MAP_A_TO_A_SIZE = glcanvasc.GL_PIXEL_MAP_A_TO_A_SIZE -GL_PIXEL_MAP_B_TO_B = glcanvasc.GL_PIXEL_MAP_B_TO_B -GL_PIXEL_MAP_B_TO_B_SIZE = glcanvasc.GL_PIXEL_MAP_B_TO_B_SIZE -GL_PIXEL_MAP_G_TO_G = glcanvasc.GL_PIXEL_MAP_G_TO_G -GL_PIXEL_MAP_G_TO_G_SIZE = glcanvasc.GL_PIXEL_MAP_G_TO_G_SIZE -GL_PIXEL_MAP_I_TO_A = glcanvasc.GL_PIXEL_MAP_I_TO_A -GL_PIXEL_MAP_I_TO_A_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_A_SIZE -GL_PIXEL_MAP_I_TO_B = glcanvasc.GL_PIXEL_MAP_I_TO_B -GL_PIXEL_MAP_I_TO_B_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_B_SIZE -GL_PIXEL_MAP_I_TO_G = glcanvasc.GL_PIXEL_MAP_I_TO_G -GL_PIXEL_MAP_I_TO_G_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_G_SIZE -GL_PIXEL_MAP_I_TO_I = glcanvasc.GL_PIXEL_MAP_I_TO_I -GL_PIXEL_MAP_I_TO_I_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_I_SIZE -GL_PIXEL_MAP_I_TO_R = glcanvasc.GL_PIXEL_MAP_I_TO_R -GL_PIXEL_MAP_I_TO_R_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_R_SIZE -GL_PIXEL_MAP_R_TO_R = glcanvasc.GL_PIXEL_MAP_R_TO_R -GL_PIXEL_MAP_R_TO_R_SIZE = glcanvasc.GL_PIXEL_MAP_R_TO_R_SIZE -GL_PIXEL_MAP_S_TO_S = glcanvasc.GL_PIXEL_MAP_S_TO_S -GL_PIXEL_MAP_S_TO_S_SIZE = glcanvasc.GL_PIXEL_MAP_S_TO_S_SIZE -GL_PIXEL_MODE_BIT = glcanvasc.GL_PIXEL_MODE_BIT -GL_POINT = glcanvasc.GL_POINT -GL_POINTS = glcanvasc.GL_POINTS -GL_POINT_BIT = glcanvasc.GL_POINT_BIT -GL_POINT_SIZE = glcanvasc.GL_POINT_SIZE -GL_POINT_SIZE_GRANULARITY = glcanvasc.GL_POINT_SIZE_GRANULARITY -GL_POINT_SIZE_RANGE = glcanvasc.GL_POINT_SIZE_RANGE -GL_POINT_SMOOTH = glcanvasc.GL_POINT_SMOOTH -GL_POINT_SMOOTH_HINT = glcanvasc.GL_POINT_SMOOTH_HINT -GL_POINT_TOKEN = glcanvasc.GL_POINT_TOKEN -GL_POLYGON = glcanvasc.GL_POLYGON -GL_POLYGON_BIT = glcanvasc.GL_POLYGON_BIT -GL_POLYGON_MODE = glcanvasc.GL_POLYGON_MODE -GL_POLYGON_OFFSET_FACTOR = glcanvasc.GL_POLYGON_OFFSET_FACTOR -GL_POLYGON_OFFSET_FILL = glcanvasc.GL_POLYGON_OFFSET_FILL -GL_POLYGON_OFFSET_LINE = glcanvasc.GL_POLYGON_OFFSET_LINE -GL_POLYGON_OFFSET_POINT = glcanvasc.GL_POLYGON_OFFSET_POINT -GL_POLYGON_OFFSET_UNITS = glcanvasc.GL_POLYGON_OFFSET_UNITS -GL_POLYGON_SMOOTH = glcanvasc.GL_POLYGON_SMOOTH -GL_POLYGON_SMOOTH_HINT = glcanvasc.GL_POLYGON_SMOOTH_HINT -GL_POLYGON_STIPPLE = glcanvasc.GL_POLYGON_STIPPLE -GL_POLYGON_STIPPLE_BIT = glcanvasc.GL_POLYGON_STIPPLE_BIT -GL_POLYGON_TOKEN = glcanvasc.GL_POLYGON_TOKEN -GL_POSITION = glcanvasc.GL_POSITION -GL_PROJECTION = glcanvasc.GL_PROJECTION -GL_PROJECTION_MATRIX = glcanvasc.GL_PROJECTION_MATRIX -GL_PROJECTION_STACK_DEPTH = glcanvasc.GL_PROJECTION_STACK_DEPTH -GL_PROXY_TEXTURE_1D = glcanvasc.GL_PROXY_TEXTURE_1D -GL_PROXY_TEXTURE_2D = glcanvasc.GL_PROXY_TEXTURE_2D -GL_Q = glcanvasc.GL_Q -GL_QUADRATIC_ATTENUATION = glcanvasc.GL_QUADRATIC_ATTENUATION -GL_QUADS = glcanvasc.GL_QUADS -GL_QUAD_STRIP = glcanvasc.GL_QUAD_STRIP -GL_R = glcanvasc.GL_R -GL_R3_G3_B2 = glcanvasc.GL_R3_G3_B2 -GL_READ_BUFFER = glcanvasc.GL_READ_BUFFER -GL_RED = glcanvasc.GL_RED -GL_RED_BIAS = glcanvasc.GL_RED_BIAS -GL_RED_BITS = glcanvasc.GL_RED_BITS -GL_RED_SCALE = glcanvasc.GL_RED_SCALE -GL_RENDER = glcanvasc.GL_RENDER -GL_RENDERER = glcanvasc.GL_RENDERER -GL_RENDER_MODE = glcanvasc.GL_RENDER_MODE -GL_REPEAT = glcanvasc.GL_REPEAT -GL_REPLACE = glcanvasc.GL_REPLACE -GL_RETURN = glcanvasc.GL_RETURN -GL_RGB = glcanvasc.GL_RGB -GL_RGB10 = glcanvasc.GL_RGB10 -GL_RGB10_A2 = glcanvasc.GL_RGB10_A2 -GL_RGB12 = glcanvasc.GL_RGB12 -GL_RGB16 = glcanvasc.GL_RGB16 -GL_RGB4 = glcanvasc.GL_RGB4 -GL_RGB5 = glcanvasc.GL_RGB5 -GL_RGB5_A1 = glcanvasc.GL_RGB5_A1 -GL_RGB8 = glcanvasc.GL_RGB8 -GL_RGBA = glcanvasc.GL_RGBA -GL_RGBA12 = glcanvasc.GL_RGBA12 -GL_RGBA16 = glcanvasc.GL_RGBA16 -GL_RGBA2 = glcanvasc.GL_RGBA2 -GL_RGBA4 = glcanvasc.GL_RGBA4 -GL_RGBA8 = glcanvasc.GL_RGBA8 -GL_RGBA_MODE = glcanvasc.GL_RGBA_MODE -GL_RIGHT = glcanvasc.GL_RIGHT -GL_S = glcanvasc.GL_S -GL_SCISSOR_BIT = glcanvasc.GL_SCISSOR_BIT -GL_SCISSOR_BOX = glcanvasc.GL_SCISSOR_BOX -GL_SCISSOR_TEST = glcanvasc.GL_SCISSOR_TEST -GL_SELECT = glcanvasc.GL_SELECT -GL_SELECTION_BUFFER_POINTER = glcanvasc.GL_SELECTION_BUFFER_POINTER -GL_SELECTION_BUFFER_SIZE = glcanvasc.GL_SELECTION_BUFFER_SIZE -GL_SET = glcanvasc.GL_SET -GL_SHADE_MODEL = glcanvasc.GL_SHADE_MODEL -GL_SHININESS = glcanvasc.GL_SHININESS -GL_SHORT = glcanvasc.GL_SHORT -GL_SMOOTH = glcanvasc.GL_SMOOTH -GL_SPECULAR = glcanvasc.GL_SPECULAR -GL_SPHERE_MAP = glcanvasc.GL_SPHERE_MAP -GL_SPOT_CUTOFF = glcanvasc.GL_SPOT_CUTOFF -GL_SPOT_DIRECTION = glcanvasc.GL_SPOT_DIRECTION -GL_SPOT_EXPONENT = glcanvasc.GL_SPOT_EXPONENT -GL_SRC_ALPHA = glcanvasc.GL_SRC_ALPHA -GL_SRC_ALPHA_SATURATE = glcanvasc.GL_SRC_ALPHA_SATURATE -GL_SRC_COLOR = glcanvasc.GL_SRC_COLOR -GL_STACK_OVERFLOW = glcanvasc.GL_STACK_OVERFLOW -GL_STACK_UNDERFLOW = glcanvasc.GL_STACK_UNDERFLOW -GL_STENCIL = glcanvasc.GL_STENCIL -GL_STENCIL_BITS = glcanvasc.GL_STENCIL_BITS -GL_STENCIL_BUFFER_BIT = glcanvasc.GL_STENCIL_BUFFER_BIT -GL_STENCIL_CLEAR_VALUE = glcanvasc.GL_STENCIL_CLEAR_VALUE -GL_STENCIL_FAIL = glcanvasc.GL_STENCIL_FAIL -GL_STENCIL_FUNC = glcanvasc.GL_STENCIL_FUNC -GL_STENCIL_INDEX = glcanvasc.GL_STENCIL_INDEX -GL_STENCIL_PASS_DEPTH_FAIL = glcanvasc.GL_STENCIL_PASS_DEPTH_FAIL -GL_STENCIL_PASS_DEPTH_PASS = glcanvasc.GL_STENCIL_PASS_DEPTH_PASS -GL_STENCIL_REF = glcanvasc.GL_STENCIL_REF -GL_STENCIL_TEST = glcanvasc.GL_STENCIL_TEST -GL_STENCIL_VALUE_MASK = glcanvasc.GL_STENCIL_VALUE_MASK -GL_STENCIL_WRITEMASK = glcanvasc.GL_STENCIL_WRITEMASK -GL_STEREO = glcanvasc.GL_STEREO -GL_SUBPIXEL_BITS = glcanvasc.GL_SUBPIXEL_BITS -GL_T = glcanvasc.GL_T -GL_T2F_C3F_V3F = glcanvasc.GL_T2F_C3F_V3F -GL_T2F_C4F_N3F_V3F = glcanvasc.GL_T2F_C4F_N3F_V3F -GL_T2F_C4UB_V3F = glcanvasc.GL_T2F_C4UB_V3F -GL_T2F_N3F_V3F = glcanvasc.GL_T2F_N3F_V3F -GL_T2F_V3F = glcanvasc.GL_T2F_V3F -GL_T4F_C4F_N3F_V4F = glcanvasc.GL_T4F_C4F_N3F_V4F -GL_T4F_V4F = glcanvasc.GL_T4F_V4F -GL_TEXTURE = glcanvasc.GL_TEXTURE -GL_TEXTURE_1D = glcanvasc.GL_TEXTURE_1D -GL_TEXTURE_2D = glcanvasc.GL_TEXTURE_2D -GL_TEXTURE_ALPHA_SIZE = glcanvasc.GL_TEXTURE_ALPHA_SIZE -GL_TEXTURE_BINDING_1D = glcanvasc.GL_TEXTURE_BINDING_1D -GL_TEXTURE_BINDING_2D = glcanvasc.GL_TEXTURE_BINDING_2D -GL_TEXTURE_BIT = glcanvasc.GL_TEXTURE_BIT -GL_TEXTURE_BLUE_SIZE = glcanvasc.GL_TEXTURE_BLUE_SIZE -GL_TEXTURE_BORDER = glcanvasc.GL_TEXTURE_BORDER -GL_TEXTURE_BORDER_COLOR = glcanvasc.GL_TEXTURE_BORDER_COLOR -GL_TEXTURE_COMPONENTS = glcanvasc.GL_TEXTURE_COMPONENTS -GL_TEXTURE_COORD_ARRAY = glcanvasc.GL_TEXTURE_COORD_ARRAY -GL_TEXTURE_COORD_ARRAY_COUNT_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_COUNT_EXT -GL_TEXTURE_COORD_ARRAY_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_EXT -GL_TEXTURE_COORD_ARRAY_POINTER = glcanvasc.GL_TEXTURE_COORD_ARRAY_POINTER -GL_TEXTURE_COORD_ARRAY_POINTER_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_POINTER_EXT -GL_TEXTURE_COORD_ARRAY_SIZE = glcanvasc.GL_TEXTURE_COORD_ARRAY_SIZE -GL_TEXTURE_COORD_ARRAY_SIZE_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_SIZE_EXT -GL_TEXTURE_COORD_ARRAY_STRIDE = glcanvasc.GL_TEXTURE_COORD_ARRAY_STRIDE -GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_STRIDE_EXT -GL_TEXTURE_COORD_ARRAY_TYPE = glcanvasc.GL_TEXTURE_COORD_ARRAY_TYPE -GL_TEXTURE_COORD_ARRAY_TYPE_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_TYPE_EXT -GL_TEXTURE_ENV = glcanvasc.GL_TEXTURE_ENV -GL_TEXTURE_ENV_COLOR = glcanvasc.GL_TEXTURE_ENV_COLOR -GL_TEXTURE_ENV_MODE = glcanvasc.GL_TEXTURE_ENV_MODE -GL_TEXTURE_GEN_MODE = glcanvasc.GL_TEXTURE_GEN_MODE -GL_TEXTURE_GEN_Q = glcanvasc.GL_TEXTURE_GEN_Q -GL_TEXTURE_GEN_R = glcanvasc.GL_TEXTURE_GEN_R -GL_TEXTURE_GEN_S = glcanvasc.GL_TEXTURE_GEN_S -GL_TEXTURE_GEN_T = glcanvasc.GL_TEXTURE_GEN_T -GL_TEXTURE_GREEN_SIZE = glcanvasc.GL_TEXTURE_GREEN_SIZE -GL_TEXTURE_HEIGHT = glcanvasc.GL_TEXTURE_HEIGHT -GL_TEXTURE_INTENSITY_SIZE = glcanvasc.GL_TEXTURE_INTENSITY_SIZE -GL_TEXTURE_INTERNAL_FORMAT = glcanvasc.GL_TEXTURE_INTERNAL_FORMAT -GL_TEXTURE_LUMINANCE_SIZE = glcanvasc.GL_TEXTURE_LUMINANCE_SIZE -GL_TEXTURE_MAG_FILTER = glcanvasc.GL_TEXTURE_MAG_FILTER -GL_TEXTURE_MATRIX = glcanvasc.GL_TEXTURE_MATRIX -GL_TEXTURE_MIN_FILTER = glcanvasc.GL_TEXTURE_MIN_FILTER -GL_TEXTURE_PRIORITY = glcanvasc.GL_TEXTURE_PRIORITY -GL_TEXTURE_RED_SIZE = glcanvasc.GL_TEXTURE_RED_SIZE -GL_TEXTURE_RESIDENT = glcanvasc.GL_TEXTURE_RESIDENT -GL_TEXTURE_STACK_DEPTH = glcanvasc.GL_TEXTURE_STACK_DEPTH -GL_TEXTURE_WIDTH = glcanvasc.GL_TEXTURE_WIDTH -GL_TEXTURE_WRAP_S = glcanvasc.GL_TEXTURE_WRAP_S -GL_TEXTURE_WRAP_T = glcanvasc.GL_TEXTURE_WRAP_T -GL_TRANSFORM_BIT = glcanvasc.GL_TRANSFORM_BIT -GL_TRIANGLES = glcanvasc.GL_TRIANGLES -GL_TRIANGLE_FAN = glcanvasc.GL_TRIANGLE_FAN -GL_TRIANGLE_STRIP = glcanvasc.GL_TRIANGLE_STRIP -GL_TRUE = glcanvasc.GL_TRUE -GL_UNPACK_ALIGNMENT = glcanvasc.GL_UNPACK_ALIGNMENT -GL_UNPACK_LSB_FIRST = glcanvasc.GL_UNPACK_LSB_FIRST -GL_UNPACK_ROW_LENGTH = glcanvasc.GL_UNPACK_ROW_LENGTH -GL_UNPACK_SKIP_PIXELS = glcanvasc.GL_UNPACK_SKIP_PIXELS -GL_UNPACK_SKIP_ROWS = glcanvasc.GL_UNPACK_SKIP_ROWS -GL_UNPACK_SWAP_BYTES = glcanvasc.GL_UNPACK_SWAP_BYTES -GL_UNSIGNED_BYTE = glcanvasc.GL_UNSIGNED_BYTE -GL_UNSIGNED_INT = glcanvasc.GL_UNSIGNED_INT -GL_UNSIGNED_SHORT = glcanvasc.GL_UNSIGNED_SHORT -GL_V2F = glcanvasc.GL_V2F -GL_V3F = glcanvasc.GL_V3F -GL_VENDOR = glcanvasc.GL_VENDOR -GL_VERSION = glcanvasc.GL_VERSION -GL_VERTEX_ARRAY = glcanvasc.GL_VERTEX_ARRAY -GL_VERTEX_ARRAY_COUNT_EXT = glcanvasc.GL_VERTEX_ARRAY_COUNT_EXT -GL_VERTEX_ARRAY_EXT = glcanvasc.GL_VERTEX_ARRAY_EXT -GL_VERTEX_ARRAY_POINTER = glcanvasc.GL_VERTEX_ARRAY_POINTER -GL_VERTEX_ARRAY_POINTER_EXT = glcanvasc.GL_VERTEX_ARRAY_POINTER_EXT -GL_VERTEX_ARRAY_SIZE = glcanvasc.GL_VERTEX_ARRAY_SIZE -GL_VERTEX_ARRAY_SIZE_EXT = glcanvasc.GL_VERTEX_ARRAY_SIZE_EXT -GL_VERTEX_ARRAY_STRIDE = glcanvasc.GL_VERTEX_ARRAY_STRIDE -GL_VERTEX_ARRAY_STRIDE_EXT = glcanvasc.GL_VERTEX_ARRAY_STRIDE_EXT -GL_VERTEX_ARRAY_TYPE = glcanvasc.GL_VERTEX_ARRAY_TYPE -GL_VERTEX_ARRAY_TYPE_EXT = glcanvasc.GL_VERTEX_ARRAY_TYPE_EXT -GL_VIEWPORT = glcanvasc.GL_VIEWPORT -GL_VIEWPORT_BIT = glcanvasc.GL_VIEWPORT_BIT -GL_XOR = glcanvasc.GL_XOR -GL_ZERO = glcanvasc.GL_ZERO -GL_ZOOM_X = glcanvasc.GL_ZOOM_X -GL_ZOOM_Y = glcanvasc.GL_ZOOM_Y diff --git a/utils/wxPython/src/gtk/image.cpp b/utils/wxPython/src/gtk/image.cpp deleted file mode 100644 index 926a90675e..0000000000 --- a/utils/wxPython/src/gtk/image.cpp +++ /dev/null @@ -1,1595 +0,0 @@ -/* - * FILE : gtk/image.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initimagec - -#define SWIG_name "imagec" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - - wxImage* wxNullImage() { - return new wxImage; - } - - wxImage* wxEmptyImage(int width, int height) { - return new wxImage(width, height); - } - - wxImage* wxImageFromMime(const wxString& name, const wxString& mimetype) { - return new wxImage(name, mimetype); - } - - wxImage* wxImageFromBitmap(const wxBitmap &bitmap) { - return new wxImage(bitmap); - } - - void wxImage_AddHandler(wxImageHandler *handler) { - wxImage::AddHandler(handler); - } -static PyObject *_wrap_wxNullImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":wxNullImage")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxNullImage(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxEmptyImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - int _arg0; - int _arg1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ii:wxEmptyImage",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxEmptyImage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxImageFromMime(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxString * _arg0; - wxString * _arg1; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageFromMime",&_obj0,&_obj1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxImageFromMime(*_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyObject *_wrap_wxImageFromBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageFromBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageFromBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxImageFromBitmap(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxImage_AddHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_AddHandler",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_AddHandler. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_AddHandler(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxImageHandler() (new wxImageHandler()) -static PyObject *_wrap_new_wxImageHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxImageHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageHandler *)new_wxImageHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImageHandler_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxImageHandler_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetName. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxImageHandler_GetName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxImageHandler_GetExtension(_swigobj) (_swigobj->GetExtension()) -static PyObject *_wrap_wxImageHandler_GetExtension(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetExtension",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetExtension. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxImageHandler_GetExtension(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxImageHandler_GetType(_swigobj) (_swigobj->GetType()) -static PyObject *_wrap_wxImageHandler_GetType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetType",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxImageHandler_GetType(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxImageHandler_GetMimeType(_swigobj) (_swigobj->GetMimeType()) -static PyObject *_wrap_wxImageHandler_GetMimeType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetMimeType",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetMimeType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxImageHandler_GetMimeType(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxImageHandler_SetName(_swigobj,_swigarg0) (_swigobj->SetName(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxImageHandler_SetName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetName. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImageHandler_SetExtension(_swigobj,_swigarg0) (_swigobj->SetExtension(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetExtension(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxImageHandler_SetExtension",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetExtension. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetExtension(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImageHandler_SetType(_swigobj,_swigarg0) (_swigobj->SetType(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxImageHandler_SetType",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetType(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImageHandler_SetMimeType(_swigobj,_swigarg0) (_swigobj->SetMimeType(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetMimeType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxImageHandler_SetMimeType",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetMimeType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetMimeType(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxPNGHandlerTowxImageHandler(void *ptr) { - wxPNGHandler *src; - wxImageHandler *dest; - src = (wxPNGHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxPNGHandler() (new wxPNGHandler()) -static PyObject *_wrap_new_wxPNGHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPNGHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPNGHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPNGHandler *)new_wxPNGHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPNGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxJPEGHandlerTowxImageHandler(void *ptr) { - wxJPEGHandler *src; - wxImageHandler *dest; - src = (wxJPEGHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxJPEGHandler() (new wxJPEGHandler()) -static PyObject *_wrap_new_wxJPEGHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJPEGHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxJPEGHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxJPEGHandler *)new_wxJPEGHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxJPEGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxBMPHandlerTowxImageHandler(void *ptr) { - wxBMPHandler *src; - wxImageHandler *dest; - src = (wxBMPHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxBMPHandler() (new wxBMPHandler()) -static PyObject *_wrap_new_wxBMPHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBMPHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxBMPHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBMPHandler *)new_wxBMPHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBMPHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxGIFHandlerTowxImageHandler(void *ptr) { - wxGIFHandler *src; - wxImageHandler *dest; - src = (wxGIFHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxGIFHandler() (new wxGIFHandler()) -static PyObject *_wrap_new_wxGIFHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGIFHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxGIFHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGIFHandler *)new_wxGIFHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGIFHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxImage(_swigarg0,_swigarg1) (new wxImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxString * _arg0; - long _arg1 = (wxBITMAP_TYPE_PNG); - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|l:new_wxImage",&_obj0,&_arg1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)new_wxImage(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxImage(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxImage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxImage. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxImage(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_ConvertToBitmap(_swigobj) (_swigobj->ConvertToBitmap()) -static PyObject *_wrap_wxImage_ConvertToBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxImage * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_ConvertToBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_ConvertToBitmap. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxBitmap (wxImage_ConvertToBitmap(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImage_Create(_swigobj,_swigarg0,_swigarg1) (_swigobj->Create(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_Create(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_Create",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Create. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_Create(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_Destroy(_swigobj) (_swigobj->Destroy()) -static PyObject *_wrap_wxImage_Destroy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_Destroy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Destroy. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_Destroy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_Scale(_swigobj,_swigarg0,_swigarg1) (_swigobj->Scale(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_Scale(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_Scale",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Scale. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxImage (wxImage_Scale(_arg0,_arg1,_arg2)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImage_SetRGB(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetRGB(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxImage_SetRGB(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - int _arg1; - int _arg2; - unsigned char _arg3; - unsigned char _arg4; - unsigned char _arg5; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siibbb:wxImage_SetRGB",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetRGB. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetRGB(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_GetRed(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetRed(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_GetRed(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_GetRed",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetRed. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetRed(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetGreen(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetGreen(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_GetGreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_GetGreen",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetGreen. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetGreen(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetBlue(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetBlue(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_GetBlue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_GetBlue",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetBlue. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetBlue(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - long _arg2 = (wxBITMAP_TYPE_PNG); - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|l:wxImage_LoadFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_LoadFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_LoadFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImage_LoadMimeFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_LoadMimeFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxImage_LoadMimeFile",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_LoadMimeFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_LoadMimeFile(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxImage_SaveFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->SaveFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_SaveFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - int _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOi:wxImage_SaveFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SaveFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_SaveFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImage_SaveMimeFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->SaveFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_SaveMimeFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxImage_SaveMimeFile",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SaveMimeFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_SaveMimeFile(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxImage_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxImage_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Ok. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImage_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxImage_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetWidth. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImage_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImage_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxImage_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetHeight. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImage_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImage_GetData(_swigobj) (_swigobj->GetData()) -static PyObject *_wrap_wxImage_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char * _result; - wxImage * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetData. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char *)wxImage_GetData(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_unsigned_char_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImage_SetData(_swigobj,_swigarg0) (_swigobj->SetData(_swigarg0)) -static PyObject *_wrap_wxImage_SetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - unsigned char * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxImage_SetData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetData. Expected _wxImage_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_unsigned_char_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImage_SetData. Expected _unsigned_char_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_SetMaskColour(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetMaskColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxImage_SetMaskColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - unsigned char _arg1; - unsigned char _arg2; - unsigned char _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sbbb:wxImage_SetMaskColour",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetMaskColour. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetMaskColour(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_GetMaskRed(_swigobj) (_swigobj->GetMaskRed()) -static PyObject *_wrap_wxImage_GetMaskRed(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetMaskRed",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetMaskRed. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetMaskRed(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetMaskGreen(_swigobj) (_swigobj->GetMaskGreen()) -static PyObject *_wrap_wxImage_GetMaskGreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetMaskGreen",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetMaskGreen. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetMaskGreen(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetMaskBlue(_swigobj) (_swigobj->GetMaskBlue()) -static PyObject *_wrap_wxImage_GetMaskBlue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetMaskBlue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetMaskBlue. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetMaskBlue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_SetMask(_swigobj,_swigarg0) (_swigobj->SetMask(_swigarg0)) -static PyObject *_wrap_wxImage_SetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxImage_SetMask",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetMask. Expected _wxImage_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetMask(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_HasMask(_swigobj) (_swigobj->HasMask()) -static PyObject *_wrap_wxImage_HasMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_HasMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_HasMask. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_HasMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef imagecMethods[] = { - { "wxImage_HasMask", _wrap_wxImage_HasMask, 1 }, - { "wxImage_SetMask", _wrap_wxImage_SetMask, 1 }, - { "wxImage_GetMaskBlue", _wrap_wxImage_GetMaskBlue, 1 }, - { "wxImage_GetMaskGreen", _wrap_wxImage_GetMaskGreen, 1 }, - { "wxImage_GetMaskRed", _wrap_wxImage_GetMaskRed, 1 }, - { "wxImage_SetMaskColour", _wrap_wxImage_SetMaskColour, 1 }, - { "wxImage_SetData", _wrap_wxImage_SetData, 1 }, - { "wxImage_GetData", _wrap_wxImage_GetData, 1 }, - { "wxImage_GetHeight", _wrap_wxImage_GetHeight, 1 }, - { "wxImage_GetWidth", _wrap_wxImage_GetWidth, 1 }, - { "wxImage_Ok", _wrap_wxImage_Ok, 1 }, - { "wxImage_SaveMimeFile", _wrap_wxImage_SaveMimeFile, 1 }, - { "wxImage_SaveFile", _wrap_wxImage_SaveFile, 1 }, - { "wxImage_LoadMimeFile", _wrap_wxImage_LoadMimeFile, 1 }, - { "wxImage_LoadFile", _wrap_wxImage_LoadFile, 1 }, - { "wxImage_GetBlue", _wrap_wxImage_GetBlue, 1 }, - { "wxImage_GetGreen", _wrap_wxImage_GetGreen, 1 }, - { "wxImage_GetRed", _wrap_wxImage_GetRed, 1 }, - { "wxImage_SetRGB", _wrap_wxImage_SetRGB, 1 }, - { "wxImage_Scale", _wrap_wxImage_Scale, 1 }, - { "wxImage_Destroy", _wrap_wxImage_Destroy, 1 }, - { "wxImage_Create", _wrap_wxImage_Create, 1 }, - { "wxImage_ConvertToBitmap", _wrap_wxImage_ConvertToBitmap, 1 }, - { "delete_wxImage", _wrap_delete_wxImage, 1 }, - { "new_wxImage", _wrap_new_wxImage, 1 }, - { "new_wxGIFHandler", _wrap_new_wxGIFHandler, 1 }, - { "new_wxBMPHandler", _wrap_new_wxBMPHandler, 1 }, - { "new_wxJPEGHandler", _wrap_new_wxJPEGHandler, 1 }, - { "new_wxPNGHandler", _wrap_new_wxPNGHandler, 1 }, - { "wxImageHandler_SetMimeType", _wrap_wxImageHandler_SetMimeType, 1 }, - { "wxImageHandler_SetType", _wrap_wxImageHandler_SetType, 1 }, - { "wxImageHandler_SetExtension", _wrap_wxImageHandler_SetExtension, 1 }, - { "wxImageHandler_SetName", _wrap_wxImageHandler_SetName, 1 }, - { "wxImageHandler_GetMimeType", _wrap_wxImageHandler_GetMimeType, 1 }, - { "wxImageHandler_GetType", _wrap_wxImageHandler_GetType, 1 }, - { "wxImageHandler_GetExtension", _wrap_wxImageHandler_GetExtension, 1 }, - { "wxImageHandler_GetName", _wrap_wxImageHandler_GetName, 1 }, - { "new_wxImageHandler", _wrap_new_wxImageHandler, 1 }, - { "wxImage_AddHandler", _wrap_wxImage_AddHandler, 1 }, - { "wxImageFromBitmap", _wrap_wxImageFromBitmap, 1 }, - { "wxImageFromMime", _wrap_wxImageFromMime, 1 }, - { "wxEmptyImage", _wrap_wxEmptyImage, 1 }, - { "wxNullImage", _wrap_wxNullImage, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initimagec)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("imagec", imagecMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxJPEGHandler","_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxBMPHandler","_class_wxBMPHandler",0); - SWIG_RegisterMapping("_wxImage","_class_wxImage",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxGIFHandler","_class_wxGIFHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxImageHandler",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPNGHandler","_class_wxPNGHandler",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_class_wxBMPHandler","_wxBMPHandler",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxGIFHandler","_wxGIFHandler",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxPNGHandler","_wxPNGHandler",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_class_wxImage","_wxImage",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxImageHandler",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxJPEGHandler","_class_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); -} diff --git a/utils/wxPython/src/gtk/image.py b/utils/wxPython/src/gtk/image.py deleted file mode 100644 index 6743bf9b5c..0000000000 --- a/utils/wxPython/src/gtk/image.py +++ /dev/null @@ -1,226 +0,0 @@ -# This file was created automatically by SWIG. -import imagec - -from misc import * - -from gdi import * -class wxImageHandlerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetName(self): - val = imagec.wxImageHandler_GetName(self.this) - return val - def GetExtension(self): - val = imagec.wxImageHandler_GetExtension(self.this) - return val - def GetType(self): - val = imagec.wxImageHandler_GetType(self.this) - return val - def GetMimeType(self): - val = imagec.wxImageHandler_GetMimeType(self.this) - return val - def SetName(self,arg0): - val = imagec.wxImageHandler_SetName(self.this,arg0) - return val - def SetExtension(self,arg0): - val = imagec.wxImageHandler_SetExtension(self.this,arg0) - return val - def SetType(self,arg0): - val = imagec.wxImageHandler_SetType(self.this,arg0) - return val - def SetMimeType(self,arg0): - val = imagec.wxImageHandler_SetMimeType(self.this,arg0) - return val - def __repr__(self): - return "" -class wxImageHandler(wxImageHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxImageHandler() - self.thisown = 1 - - - - -class wxPNGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPNGHandler(wxPNGHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxPNGHandler() - self.thisown = 1 - - - - -class wxJPEGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxJPEGHandler(wxJPEGHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxJPEGHandler() - self.thisown = 1 - - - - -class wxBMPHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxBMPHandler(wxBMPHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxBMPHandler() - self.thisown = 1 - - - - -class wxGIFHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxGIFHandler(wxGIFHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxGIFHandler() - self.thisown = 1 - - - - -class wxImagePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - imagec.delete_wxImage(self.this) - def ConvertToBitmap(self): - val = imagec.wxImage_ConvertToBitmap(self.this) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - def Create(self,arg0,arg1): - val = imagec.wxImage_Create(self.this,arg0,arg1) - return val - def Destroy(self): - val = imagec.wxImage_Destroy(self.this) - return val - def Scale(self,arg0,arg1): - val = imagec.wxImage_Scale(self.this,arg0,arg1) - val = wxImagePtr(val) - val.thisown = 1 - return val - def SetRGB(self,arg0,arg1,arg2,arg3,arg4): - val = imagec.wxImage_SetRGB(self.this,arg0,arg1,arg2,arg3,arg4) - return val - def GetRed(self,arg0,arg1): - val = imagec.wxImage_GetRed(self.this,arg0,arg1) - return val - def GetGreen(self,arg0,arg1): - val = imagec.wxImage_GetGreen(self.this,arg0,arg1) - return val - def GetBlue(self,arg0,arg1): - val = imagec.wxImage_GetBlue(self.this,arg0,arg1) - return val - def LoadFile(self,arg0,*args): - val = apply(imagec.wxImage_LoadFile,(self.this,arg0,)+args) - return val - def LoadMimeFile(self,arg0,arg1): - val = imagec.wxImage_LoadMimeFile(self.this,arg0,arg1) - return val - def SaveFile(self,arg0,arg1): - val = imagec.wxImage_SaveFile(self.this,arg0,arg1) - return val - def SaveMimeFile(self,arg0,arg1): - val = imagec.wxImage_SaveMimeFile(self.this,arg0,arg1) - return val - def Ok(self): - val = imagec.wxImage_Ok(self.this) - return val - def GetWidth(self): - val = imagec.wxImage_GetWidth(self.this) - return val - def GetHeight(self): - val = imagec.wxImage_GetHeight(self.this) - return val - def GetData(self): - val = imagec.wxImage_GetData(self.this) - return val - def SetData(self,arg0): - val = imagec.wxImage_SetData(self.this,arg0) - return val - def SetMaskColour(self,arg0,arg1,arg2): - val = imagec.wxImage_SetMaskColour(self.this,arg0,arg1,arg2) - return val - def GetMaskRed(self): - val = imagec.wxImage_GetMaskRed(self.this) - return val - def GetMaskGreen(self): - val = imagec.wxImage_GetMaskGreen(self.this) - return val - def GetMaskBlue(self): - val = imagec.wxImage_GetMaskBlue(self.this) - return val - def SetMask(self,*args): - val = apply(imagec.wxImage_SetMask,(self.this,)+args) - return val - def HasMask(self): - val = imagec.wxImage_HasMask(self.this) - return val - def __repr__(self): - return "" -class wxImage(wxImagePtr): - def __init__(self,arg0,*args) : - self.this = apply(imagec.new_wxImage,(arg0,)+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxNullImage(): - val = imagec.wxNullImage() - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxEmptyImage(arg0,arg1): - val = imagec.wxEmptyImage(arg0,arg1) - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxImageFromMime(arg0,arg1): - val = imagec.wxImageFromMime(arg0,arg1) - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxImageFromBitmap(arg0): - val = imagec.wxImageFromBitmap(arg0.this) - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxImage_AddHandler(arg0): - val = imagec.wxImage_AddHandler(arg0.this) - return val - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/mdi.cpp b/utils/wxPython/src/gtk/mdi.cpp deleted file mode 100644 index f1eef83a8e..0000000000 --- a/utils/wxPython/src/gtk/mdi.cpp +++ /dev/null @@ -1,899 +0,0 @@ -/* - * FILE : gtk/mdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initmdic - -#define SWIG_name "mdic" - -#include "helpers.h" - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxMDIParentFrameTowxFrame(void *ptr) { - wxMDIParentFrame *src; - wxFrame *dest; - src = (wxMDIParentFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxMDIParentFrameTowxWindow(void *ptr) { - wxMDIParentFrame *src; - wxWindow *dest; - src = (wxMDIParentFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMDIParentFrameTowxEvtHandler(void *ptr) { - wxMDIParentFrame *src; - wxEvtHandler *dest; - src = (wxMDIParentFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMDIParentFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxMDIParentFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxMDIParentFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE)|(wxVSCROLL)|(wxHSCROLL); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxMDIParentFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMDIParentFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIParentFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMDIParentFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIParentFrame *)new_wxMDIParentFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIParentFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMDIParentFrame_ActivateNext(_swigobj) (_swigobj->ActivateNext()) -static PyObject *_wrap_wxMDIParentFrame_ActivateNext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_ActivateNext",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_ActivateNext. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_ActivateNext(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_ActivatePrevious(_swigobj) (_swigobj->ActivatePrevious()) -static PyObject *_wrap_wxMDIParentFrame_ActivatePrevious(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_ActivatePrevious",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_ActivatePrevious. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_ActivatePrevious(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_ArrangeIcons(_swigobj) (_swigobj->ArrangeIcons()) -static PyObject *_wrap_wxMDIParentFrame_ArrangeIcons(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_ArrangeIcons",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_ArrangeIcons. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_ArrangeIcons(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_Cascade(_swigobj) (_swigobj->Cascade()) -static PyObject *_wrap_wxMDIParentFrame_Cascade(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_Cascade",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_Cascade. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_Cascade(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_GetActiveChild(_swigobj) (_swigobj->GetActiveChild()) -static PyObject *_wrap_wxMDIParentFrame_GetActiveChild(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _result; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_GetActiveChild",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_GetActiveChild. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIChildFrame *)wxMDIParentFrame_GetActiveChild(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMDIParentFrame_GetClientWindow(_swigobj) (_swigobj->GetClientWindow()) -static PyObject *_wrap_wxMDIParentFrame_GetClientWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIClientWindow * _result; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_GetClientWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_GetClientWindow. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIClientWindow *)wxMDIParentFrame_GetClientWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMDIParentFrame_GetToolBar(_swigobj) (_swigobj->GetToolBar()) -static PyObject *_wrap_wxMDIParentFrame_GetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_GetToolBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_GetToolBar. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxMDIParentFrame_GetToolBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMDIParentFrame_Tile(_swigobj) (_swigobj->Tile()) -static PyObject *_wrap_wxMDIParentFrame_Tile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_Tile",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_Tile. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_Tile(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMDIChildFrameTowxFrame(void *ptr) { - wxMDIChildFrame *src; - wxFrame *dest; - src = (wxMDIChildFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxMDIChildFrameTowxWindow(void *ptr) { - wxMDIChildFrame *src; - wxWindow *dest; - src = (wxMDIChildFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMDIChildFrameTowxEvtHandler(void *ptr) { - wxMDIChildFrame *src; - wxEvtHandler *dest; - src = (wxMDIChildFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMDIChildFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxMDIChildFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxMDIChildFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _result; - wxMDIParentFrame * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxMDIChildFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMDIChildFrame. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIChildFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMDIChildFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIChildFrame *)new_wxMDIChildFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMDIChildFrame_Activate(_swigobj) (_swigobj->Activate()) -static PyObject *_wrap_wxMDIChildFrame_Activate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIChildFrame_Activate",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIChildFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIChildFrame_Activate. Expected _wxMDIChildFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIChildFrame_Activate(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIChildFrame_Maximize(_swigobj,_swigarg0) (_swigobj->Maximize(_swigarg0)) -static PyObject *_wrap_wxMDIChildFrame_Maximize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMDIChildFrame_Maximize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIChildFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIChildFrame_Maximize. Expected _wxMDIChildFrame_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIChildFrame_Maximize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIChildFrame_Restore(_swigobj) (_swigobj->Restore()) -static PyObject *_wrap_wxMDIChildFrame_Restore(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIChildFrame_Restore",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIChildFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIChildFrame_Restore. Expected _wxMDIChildFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIChildFrame_Restore(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMDIClientWindowTowxWindow(void *ptr) { - wxMDIClientWindow *src; - wxWindow *dest; - src = (wxMDIClientWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMDIClientWindowTowxEvtHandler(void *ptr) { - wxMDIClientWindow *src; - wxEvtHandler *dest; - src = (wxMDIClientWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMDIClientWindow(_swigarg0,_swigarg1) (new wxMDIClientWindow(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxMDIClientWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIClientWindow * _result; - wxMDIParentFrame * _arg0; - long _arg1 = 0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|l:new_wxMDIClientWindow",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMDIClientWindow. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIClientWindow *)new_wxMDIClientWindow(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef mdicMethods[] = { - { "new_wxMDIClientWindow", _wrap_new_wxMDIClientWindow, 1 }, - { "wxMDIChildFrame_Restore", _wrap_wxMDIChildFrame_Restore, 1 }, - { "wxMDIChildFrame_Maximize", _wrap_wxMDIChildFrame_Maximize, 1 }, - { "wxMDIChildFrame_Activate", _wrap_wxMDIChildFrame_Activate, 1 }, - { "new_wxMDIChildFrame", _wrap_new_wxMDIChildFrame, 1 }, - { "wxMDIParentFrame_Tile", _wrap_wxMDIParentFrame_Tile, 1 }, - { "wxMDIParentFrame_GetToolBar", _wrap_wxMDIParentFrame_GetToolBar, 1 }, - { "wxMDIParentFrame_GetClientWindow", _wrap_wxMDIParentFrame_GetClientWindow, 1 }, - { "wxMDIParentFrame_GetActiveChild", _wrap_wxMDIParentFrame_GetActiveChild, 1 }, - { "wxMDIParentFrame_Cascade", _wrap_wxMDIParentFrame_Cascade, 1 }, - { "wxMDIParentFrame_ArrangeIcons", _wrap_wxMDIParentFrame_ArrangeIcons, 1 }, - { "wxMDIParentFrame_ActivatePrevious", _wrap_wxMDIParentFrame_ActivatePrevious, 1 }, - { "wxMDIParentFrame_ActivateNext", _wrap_wxMDIParentFrame_ActivateNext, 1 }, - { "new_wxMDIParentFrame", _wrap_new_wxMDIParentFrame, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initmdic)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("mdic", mdicMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/gtk/mdi.py b/utils/wxPython/src/gtk/mdi.py deleted file mode 100644 index 89f8f30eea..0000000000 --- a/utils/wxPython/src/gtk/mdi.py +++ /dev/null @@ -1,119 +0,0 @@ -# This file was created automatically by SWIG. -import mdic - -from misc import * - -from windows import * - -from gdi import * - -from frames import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxMDIParentFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ActivateNext(self): - val = mdic.wxMDIParentFrame_ActivateNext(self.this) - return val - def ActivatePrevious(self): - val = mdic.wxMDIParentFrame_ActivatePrevious(self.this) - return val - def ArrangeIcons(self): - val = mdic.wxMDIParentFrame_ArrangeIcons(self.this) - return val - def Cascade(self): - val = mdic.wxMDIParentFrame_Cascade(self.this) - return val - def GetActiveChild(self): - val = mdic.wxMDIParentFrame_GetActiveChild(self.this) - val = wxMDIChildFramePtr(val) - return val - def GetClientWindow(self): - val = mdic.wxMDIParentFrame_GetClientWindow(self.this) - val = wxMDIClientWindowPtr(val) - return val - def GetToolBar(self): - val = mdic.wxMDIParentFrame_GetToolBar(self.this) - val = wxWindowPtr(val) - return val - def Tile(self): - val = mdic.wxMDIParentFrame_Tile(self.this) - return val - def __repr__(self): - return "" -class wxMDIParentFrame(wxMDIParentFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(mdic.new_wxMDIParentFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIChildFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Activate(self): - val = mdic.wxMDIChildFrame_Activate(self.this) - return val - def Maximize(self,arg0): - val = mdic.wxMDIChildFrame_Maximize(self.this,arg0) - return val - def Restore(self): - val = mdic.wxMDIChildFrame_Restore(self.this) - return val - def __repr__(self): - return "" -class wxMDIChildFrame(wxMDIChildFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(mdic.new_wxMDIChildFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIClientWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxMDIClientWindow(wxMDIClientWindowPtr): - def __init__(self,arg0,*args) : - self.this = apply(mdic.new_wxMDIClientWindow,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._StdOnScrollCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/misc.cpp b/utils/wxPython/src/gtk/misc.cpp deleted file mode 100644 index 1ffbd96657..0000000000 --- a/utils/wxPython/src/gtk/misc.cpp +++ /dev/null @@ -1,4241 +0,0 @@ -/* - * FILE : gtk/misc.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initmiscc - -#define SWIG_name "miscc" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - - char* wxGetResource(char *section, char *entry, char *file = NULL) { - char * retval; - wxGetResource(section, entry, &retval, file); - return retval; - } - - void wxToolTip_Enable(bool flag) { - wxToolTip::Enable(flag); - } - - void wxToolTip_SetDelay(long milliseconds) { - wxToolTip::SetDelay(milliseconds); - } -static PyObject *_wrap_wxFileSelector(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - char * _arg0; - char * _arg1 = NULL; - char * _arg2 = NULL; - char * _arg3 = NULL; - char * _arg4 = "*.*"; - int _arg5 = 0; - wxWindow * _arg6 = NULL; - int _arg7 = -1; - int _arg8 = -1; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssssisii:wxFileSelector",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6,&_arg7,&_arg8)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxFileSelector. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileSelector(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetTextFromUser(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxString * _arg0; - wxString * _arg1 = &wxPyEmptyStr; - wxString * _arg2 = &wxPyEmptyStr; - wxWindow * _arg3 = NULL; - int _arg4 = -1; - int _arg5 = -1; - bool _arg6 = (1); - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - int tempbool6; - - self = self; - if(!PyArg_ParseTuple(args,"O|OOsiii:wxGetTextFromUser",&_obj0,&_obj1,&_obj2,&_argc3,&_arg4,&_arg5,&tempbool6)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxGetTextFromUser. Expected _wxWindow_p."); - return NULL; - } - } - _arg6 = (bool ) tempbool6; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxGetTextFromUser(*_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetSingleChoice(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxString * _arg0; - wxString * _arg1; - int _arg2; - wxString * _arg3; - wxWindow * _arg4 = NULL; - int _arg5 = -1; - int _arg6 = -1; - bool _arg7 = (1); - int _arg8 = 150; - int _arg9 = 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - char * _argc4 = 0; - int tempbool7; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|siiiii:wxGetSingleChoice",&_obj0,&_obj1,&_obj3,&_argc4,&_arg5,&_arg6,&tempbool7,&_arg8,&_arg9)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj3) -{ - _arg3 = wxString_LIST_helper(_obj3); - if (_arg3 == NULL) { - return NULL; - } -} - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxGetSingleChoice. Expected _wxWindow_p."); - return NULL; - } - } - _arg7 = (bool ) tempbool7; -{ - if (_obj3) { - _arg2 = PyList_Size(_obj3); - } - else { - _arg2 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxGetSingleChoice(*_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - delete [] _arg3; -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetSingleChoiceIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxString * _arg0; - wxString * _arg1; - int _arg2; - wxString * _arg3; - wxWindow * _arg4 = NULL; - int _arg5 = -1; - int _arg6 = -1; - bool _arg7 = (1); - int _arg8 = 150; - int _arg9 = 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - char * _argc4 = 0; - int tempbool7; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|siiiii:wxGetSingleChoiceIndex",&_obj0,&_obj1,&_obj3,&_argc4,&_arg5,&_arg6,&tempbool7,&_arg8,&_arg9)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj3) -{ - _arg3 = wxString_LIST_helper(_obj3); - if (_arg3 == NULL) { - return NULL; - } -} - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxGetSingleChoiceIndex. Expected _wxWindow_p."); - return NULL; - } - } - _arg7 = (bool ) tempbool7; -{ - if (_obj3) { - _arg2 = PyList_Size(_obj3); - } - else { - _arg2 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGetSingleChoiceIndex(*_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - delete [] _arg3; -} - return _resultobj; -} - -static PyObject *_wrap_wxMessageBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxString * _arg0; - wxString * _arg1 = &wxPyEmptyStr; - int _arg2 = (wxOK)|(wxCENTRE); - wxWindow * _arg3 = NULL; - int _arg4 = -1; - int _arg5 = -1; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|Oisii:wxMessageBox",&_obj0,&_obj1,&_arg2,&_argc3,&_arg4,&_arg5)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxMessageBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMessageBox(*_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyObject *_wrap_wxColourDisplay(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxColourDisplay")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxColourDisplay(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxDisplayDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxDisplayDepth")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDisplayDepth(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxSetCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSetCursor",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSetCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSetCursor(*_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxNewId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxNewId")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxNewId(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject *_wrap_wxRegisterId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"l:wxRegisterId",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegisterId(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_NewId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - - self = self; - if(!PyArg_ParseTuple(args,":NewId")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxNewId(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject *_wrap_RegisterId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"l:RegisterId",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegisterId(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxBeginBusyCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _arg0 = wxHOURGLASS_CURSOR; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"|s:wxBeginBusyCursor",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBeginBusyCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBeginBusyCursor(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxBell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxBell")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBell(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxDisplaySize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int * _arg0; - int temp; - int * _arg1; - int temp0; - - self = self; -{ - _arg0 = &temp; -} -{ - _arg1 = &temp0; -} - if(!PyArg_ParseTuple(args,":wxDisplaySize")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDisplaySize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg0)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static PyObject *_wrap_wxEndBusyCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxEndBusyCursor")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEndBusyCursor(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxExecute(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxString * _arg0; - bool _arg1 = (0); - PyObject * _obj0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxExecute",&_obj0,&tempbool1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxExecute(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxFindWindowByLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = NULL; - PyObject * _obj0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|s:wxFindWindowByLabel",&_obj0,&_argc1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFindWindowByLabel. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxFindWindowByLabel(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxFindWindowByName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = NULL; - PyObject * _obj0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|s:wxFindWindowByName",&_obj0,&_argc1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFindWindowByName. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxFindWindowByName(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetMousePosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int * _arg0; - int temp; - int * _arg1; - int temp0; - - self = self; -{ - _arg0 = &temp; -} -{ - _arg1 = &temp0; -} - if(!PyArg_ParseTuple(args,":wxGetMousePosition")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGetMousePosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg0)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static PyObject *_wrap_wxIsBusy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxIsBusy")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIsBusy(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxNow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxNow")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxNow()); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxYield(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxYield")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxYield(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxSafeYield(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxSafeYield")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSafeYield(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxGetResource(PyObject *self, PyObject *args) { - PyObject * _resultobj; - char * _result; - char * _arg0; - char * _arg1; - char * _arg2 = NULL; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxGetResource",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (char *)wxGetResource(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("s", _result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceAddIdentifier(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - int _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxResourceAddIdentifier",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceAddIdentifier(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceClear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxResourceClear")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxResourceClear(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxResourceCreateBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - char * _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceCreateBitmap",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxBitmap (wxResourceCreateBitmap(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxResourceCreateIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _result; - char * _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceCreateIcon",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxIcon (wxResourceCreateIcon(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxResourceCreateMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - char * _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceCreateMenuBar",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuBar *)wxResourceCreateMenuBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxResourceGetIdentifier(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - char * _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceGetIdentifier",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxResourceGetIdentifier(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceParseData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - wxResourceTable * _arg1 = NULL; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxResourceParseData",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxResourceParseData. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceParseData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceParseFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - wxResourceTable * _arg1 = NULL; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxResourceParseFile",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxResourceParseFile. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceParseFile(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceParseString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - wxResourceTable * _arg1 = NULL; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxResourceParseString",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxResourceParseString. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceParseString(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxToolTip_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _arg0; - int tempbool0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxToolTip_Enable",&tempbool0)) - return NULL; - _arg0 = (bool ) tempbool0; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolTip_Enable(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxToolTip_SetDelay(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"l:wxToolTip_SetDelay",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolTip_SetDelay(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxSize_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxSize_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_x_set. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_x_get(_swigobj) ((long ) _swigobj->x) -static PyObject *_wrap_wxSize_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_x_get. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxSize_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxSize_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_y_set. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_y_get(_swigobj) ((long ) _swigobj->y) -static PyObject *_wrap_wxSize_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_y_get. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define new_wxSize(_swigarg0,_swigarg1) (new wxSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - long _arg0 = 0; - long _arg1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|ll:new_wxSize",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSize *)new_wxSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxSize(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_Set(_swigobj,_swigarg0,_swigarg1) (_swigobj->Set(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSize_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxSize_Set",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_Set. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSize_Set(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxSize_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetX. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxSize_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetY. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject * wxSize_asTuple(wxSize *self) { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - return tup; - } -static PyObject *_wrap_wxSize_asTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_asTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_asTuple. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxSize_asTuple(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define wxRealPoint_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxRealPoint_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - double _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sd:wxRealPoint_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_x_set. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define wxRealPoint_x_get(_swigobj) ((double ) _swigobj->x) -static PyObject *_wrap_wxRealPoint_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRealPoint_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_x_get. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define wxRealPoint_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxRealPoint_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - double _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sd:wxRealPoint_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_y_set. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define wxRealPoint_y_get(_swigobj) ((double ) _swigobj->y) -static PyObject *_wrap_wxRealPoint_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRealPoint_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_y_get. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define new_wxRealPoint(_swigarg0,_swigarg1) (new wxRealPoint(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxRealPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRealPoint * _result; - double _arg0 = 0.0; - double _arg1 = 0.0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|dd:new_wxRealPoint",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRealPoint *)new_wxRealPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRealPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRealPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRealPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRealPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRealPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRealPoint. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRealPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPoint_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxPoint_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxPoint_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_x_set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxPoint_x_get(_swigobj) ((long ) _swigobj->x) -static PyObject *_wrap_wxPoint_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPoint_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_x_get. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxPoint_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxPoint_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxPoint_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_y_set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxPoint_y_get(_swigobj) ((long ) _swigobj->y) -static PyObject *_wrap_wxPoint_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPoint_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_y_get. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define new_wxPoint(_swigarg0,_swigarg1) (new wxPoint(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - long _arg0 = 0; - long _arg1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|ll:new_wxPoint",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)new_wxPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPoint. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxPoint_Set(wxPoint *self,long x,long y) { - self->x = x; - self->y = y; - } -static PyObject *_wrap_wxPoint_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxPoint_Set",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_Set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPoint_Set(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject * wxPoint_asTuple(wxPoint *self) { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - return tup; - } -static PyObject *_wrap_wxPoint_asTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPoint_asTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_asTuple. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxPoint_asTuple(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define new_wxRect(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxRect(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - long _arg0 = 0; - long _arg1 = 0; - long _arg2 = 0; - long _arg3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|llll:new_wxRect",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRect *)new_wxRect(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRect(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRect(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxRect_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetX. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetX(_swigobj,_swigarg0) (_swigobj->SetX(_swigarg0)) -static PyObject *_wrap_wxRect_SetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetX. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxRect_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetY. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetY(_swigobj,_swigarg0) (_swigobj->SetY(_swigarg0)) -static PyObject *_wrap_wxRect_SetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetY. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxRect_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetWidth. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxRect_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetWidth. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxRect_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetHeight. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxRect_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetHeight. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxRect_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxRect * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetPosition. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxRect_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRect_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxRect_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxRect * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetSize. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxRect_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRect_GetLeft(_swigobj) (_swigobj->GetLeft()) -static PyObject *_wrap_wxRect_GetLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetLeft",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetLeft. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetLeft(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_GetTop(_swigobj) (_swigobj->GetTop()) -static PyObject *_wrap_wxRect_GetTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetTop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetTop. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetTop(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_GetBottom(_swigobj) (_swigobj->GetBottom()) -static PyObject *_wrap_wxRect_GetBottom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetBottom",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetBottom. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetBottom(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_GetRight(_swigobj) (_swigobj->GetRight()) -static PyObject *_wrap_wxRect_GetRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetRight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetRight. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetRight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxRect_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_x_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_x_get(_swigobj) ((long ) _swigobj->x) -static PyObject *_wrap_wxRect_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_x_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxRect_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_y_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_y_get(_swigobj) ((long ) _swigobj->y) -static PyObject *_wrap_wxRect_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_y_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_width_set(_swigobj,_swigval) (_swigobj->width = _swigval,_swigval) -static PyObject *_wrap_wxRect_width_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_width_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_width_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_width_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_width_get(_swigobj) ((long ) _swigobj->width) -static PyObject *_wrap_wxRect_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_width_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_height_set(_swigobj,_swigval) (_swigobj->height = _swigval,_swigval) -static PyObject *_wrap_wxRect_height_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_height_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_height_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_height_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_height_get(_swigobj) ((long ) _swigobj->height) -static PyObject *_wrap_wxRect_height_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_height_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_height_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_height_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject * wxRect_asTuple(wxRect *self) { - PyObject* tup = PyTuple_New(4); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->width)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->height)); - return tup; - } -static PyObject *_wrap_wxRect_asTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_asTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_asTuple. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxRect_asTuple(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define new_wxPyTimer(_swigarg0) (new wxPyTimer(_swigarg0)) -static PyObject *_wrap_new_wxPyTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _result; - PyObject * _arg0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxPyTimer",&_obj0)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyTimer *)new_wxPyTimer(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTimer_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPyTimer(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPyTimer",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyTimer. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyTimer(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyTimer_Interval(_swigobj) (_swigobj->Interval()) -static PyObject *_wrap_wxPyTimer_Interval(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPyTimer * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyTimer_Interval",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTimer_Interval. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPyTimer_Interval(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyTimer_Start(_swigobj,_swigarg0,_swigarg1) (_swigobj->Start(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPyTimer_Start(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - int _arg1 = -1; - int _arg2 = (0); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:wxPyTimer_Start",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTimer_Start. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyTimer_Start(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyTimer_Stop(_swigobj) (_swigobj->Stop()) -static PyObject *_wrap_wxPyTimer_Stop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyTimer_Stop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTimer_Stop. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyTimer_Stop(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Above(_swigobj,_swigarg0,_swigarg1) (_swigobj->Above(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Above(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_Above",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Above. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_Above. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Above(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Absolute(_swigobj,_swigarg0) (_swigobj->Absolute(_swigarg0)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Absolute(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIndividualLayoutConstraint_Absolute",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Absolute. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Absolute(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_AsIs(_swigobj) (_swigobj->AsIs()) -static PyObject *_wrap_wxIndividualLayoutConstraint_AsIs(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIndividualLayoutConstraint_AsIs",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_AsIs. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_AsIs(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Below(_swigobj,_swigarg0,_swigarg1) (_swigobj->Below(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Below(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_Below",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Below. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_Below. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Below(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Unconstrained(_swigobj) (_swigobj->Unconstrained()) -static PyObject *_wrap_wxIndividualLayoutConstraint_Unconstrained(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIndividualLayoutConstraint_Unconstrained",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Unconstrained. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Unconstrained(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_LeftOf(_swigobj,_swigarg0,_swigarg1) (_swigobj->LeftOf(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_LeftOf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_LeftOf",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_LeftOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_LeftOf. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_LeftOf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_PercentOf(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PercentOf(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxIndividualLayoutConstraint_PercentOf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - wxEdge _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxIndividualLayoutConstraint_PercentOf",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_PercentOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_PercentOf. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_PercentOf(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_RightOf(_swigobj,_swigarg0,_swigarg1) (_swigobj->RightOf(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_RightOf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_RightOf",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_RightOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_RightOf. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_RightOf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_SameAs(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SameAs(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxIndividualLayoutConstraint_SameAs(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - wxEdge _arg2; - int _arg3 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi|i:wxIndividualLayoutConstraint_SameAs",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_SameAs. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_SameAs. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_SameAs(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Set(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->Set(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxRelationship _arg1; - wxWindow * _arg2; - wxEdge _arg3; - int _arg4 = 0; - int _arg5 = 0; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sisi|ii:wxIndividualLayoutConstraint_Set",&_argc0,&_arg1,&_argc2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Set. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxIndividualLayoutConstraint_Set. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Set(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxLayoutConstraints() (new wxLayoutConstraints()) -static PyObject *_wrap_new_wxLayoutConstraints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutConstraints * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxLayoutConstraints")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutConstraints *)new_wxLayoutConstraints(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_bottom_get(_swigobj) (&_swigobj->bottom) -static PyObject *_wrap_wxLayoutConstraints_bottom_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_bottom_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_bottom_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_bottom_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_centreX_get(_swigobj) (&_swigobj->centreX) -static PyObject *_wrap_wxLayoutConstraints_centreX_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_centreX_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_centreX_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_centreX_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_centreY_get(_swigobj) (&_swigobj->centreY) -static PyObject *_wrap_wxLayoutConstraints_centreY_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_centreY_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_centreY_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_centreY_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_height_get(_swigobj) (&_swigobj->height) -static PyObject *_wrap_wxLayoutConstraints_height_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_height_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_height_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_height_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_left_get(_swigobj) (&_swigobj->left) -static PyObject *_wrap_wxLayoutConstraints_left_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_left_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_left_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_left_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_right_get(_swigobj) (&_swigobj->right) -static PyObject *_wrap_wxLayoutConstraints_right_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_right_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_right_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_right_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_top_get(_swigobj) (&_swigobj->top) -static PyObject *_wrap_wxLayoutConstraints_top_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_top_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_top_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_top_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_width_get(_swigobj) (&_swigobj->width) -static PyObject *_wrap_wxLayoutConstraints_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_width_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxRegion() (new wxRegion()) -static PyObject *_wrap_new_wxRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxRegion")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegion *)new_wxRegion(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegion_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRegion(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRegion",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRegion. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRegion(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRegion_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxRegion_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegion_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Clear. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegion_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRegion_Contains(_swigobj,_swigarg0,_swigarg1) (_swigobj->Contains(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRegion_Contains(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionContain _result; - wxRegion * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxRegion_Contains",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Contains. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionContain )wxRegion_Contains(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_ContainsPoint(_swigobj,_swigarg0) (_swigobj->Contains(_swigarg0)) -static PyObject *_wrap_wxRegion_ContainsPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionContain _result; - wxRegion * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_ContainsPoint",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsPoint. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_ContainsPoint. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionContain )wxRegion_ContainsPoint(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_ContainsRect(_swigobj,_swigarg0) (_swigobj->Contains(_swigarg0)) -static PyObject *_wrap_wxRegion_ContainsRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionContain _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_ContainsRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsRect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_ContainsRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionContain )wxRegion_ContainsRect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_GetBox(_swigobj) (_swigobj->GetBox()) -static PyObject *_wrap_wxRegion_GetBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxRegion * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegion_GetBox",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_GetBox. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxRegion_GetBox(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRegion_Intersect(_swigobj,_swigarg0) (_swigobj->Intersect(_swigarg0)) -static PyObject *_wrap_wxRegion_Intersect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Intersect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Intersect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Intersect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Intersect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_Subtract(_swigobj,_swigarg0) (_swigobj->Subtract(_swigarg0)) -static PyObject *_wrap_wxRegion_Subtract(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Subtract",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Subtract. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Subtract. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Subtract(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_Union(_swigobj,_swigarg0) (_swigobj->Union(_swigarg0)) -static PyObject *_wrap_wxRegion_Union(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Union",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Union. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Union. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Union(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_Xor(_swigobj,_swigarg0) (_swigobj->Xor(_swigarg0)) -static PyObject *_wrap_wxRegion_Xor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Xor",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Xor. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Xor. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Xor(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxRegionIterator(_swigarg0) (new wxRegionIterator(_swigarg0)) -static PyObject *_wrap_new_wxRegionIterator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _result; - wxRegion * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxRegionIterator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxRegionIterator. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionIterator *)new_wxRegionIterator(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegionIterator_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRegionIterator(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegionIterator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRegionIterator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRegionIterator. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRegionIterator(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRegionIterator_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxRegionIterator_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetX. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxRegionIterator_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetY. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetW(_swigobj) (_swigobj->GetW()) -static PyObject *_wrap_wxRegionIterator_GetW(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetW",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetW. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetW(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxRegionIterator_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetWidth. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetH(_swigobj) (_swigobj->GetH()) -static PyObject *_wrap_wxRegionIterator_GetH(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetH",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetH. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetH(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxRegionIterator_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetHeight. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetRect(_swigobj) (_swigobj->GetRect()) -static PyObject *_wrap_wxRegionIterator_GetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetRect. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxRegionIterator_GetRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRegionIterator_HaveRects(_swigobj) (_swigobj->HaveRects()) -static PyObject *_wrap_wxRegionIterator_HaveRects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_HaveRects",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_HaveRects. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegionIterator_HaveRects(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegionIterator_Reset(_swigobj) (_swigobj->Reset()) -static PyObject *_wrap_wxRegionIterator_Reset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_Reset",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_Reset. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegionIterator_Reset(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxRegionIterator_Next(wxRegionIterator *self) { - (*self) ++; - } -static PyObject *_wrap_wxRegionIterator_Next(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_Next",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_Next. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegionIterator_Next(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxAcceleratorEntry(_swigarg0,_swigarg1,_swigarg2) (new wxAcceleratorEntry(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxAcceleratorEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxAcceleratorEntry * _result; - int _arg0 = 0; - int _arg1 = 0; - int _arg2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|iii:new_wxAcceleratorEntry",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxAcceleratorEntry *)new_wxAcceleratorEntry(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorEntry_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxAcceleratorEntry_Set(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Set(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxAcceleratorEntry_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxAcceleratorEntry * _arg0; - int _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siii:wxAcceleratorEntry_Set",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_Set. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxAcceleratorEntry_Set(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxAcceleratorEntry_GetFlags(_swigobj) (_swigobj->GetFlags()) -static PyObject *_wrap_wxAcceleratorEntry_GetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxAcceleratorEntry * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxAcceleratorEntry_GetFlags",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_GetFlags. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxAcceleratorEntry_GetFlags(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxAcceleratorEntry_GetKeyCode(_swigobj) (_swigobj->GetKeyCode()) -static PyObject *_wrap_wxAcceleratorEntry_GetKeyCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxAcceleratorEntry * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxAcceleratorEntry_GetKeyCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_GetKeyCode. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxAcceleratorEntry_GetKeyCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxAcceleratorEntry_GetCommand(_swigobj) (_swigobj->GetCommand()) -static PyObject *_wrap_wxAcceleratorEntry_GetCommand(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxAcceleratorEntry * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxAcceleratorEntry_GetCommand",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_GetCommand. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxAcceleratorEntry_GetCommand(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxAcceleratorTable(_swigarg0,_swigarg1) (new wxAcceleratorTable(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxAcceleratorTable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxAcceleratorTable * _result; - int _arg0; - wxAcceleratorEntry * _arg1; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxAcceleratorTable",&_obj1)) - return NULL; - if (_obj1) -{ - _arg1 = wxAcceleratorEntry_LIST_helper(_obj1); - if (_arg1 == NULL) { - return NULL; - } -} -{ - if (_obj1) { - _arg0 = PyList_Size(_obj1); - } - else { - _arg0 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxAcceleratorTable *)new_wxAcceleratorTable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorTable_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg1; -} - return _resultobj; -} - -#define new_wxToolTip(_swigarg0) (new wxToolTip(_swigarg0)) -static PyObject *_wrap_new_wxToolTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolTip * _result; - wxString * _arg0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxToolTip",&_obj0)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolTip *)new_wxToolTip(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define wxToolTip_SetTip(_swigobj,_swigarg0) (_swigobj->SetTip(_swigarg0)) -static PyObject *_wrap_wxToolTip_SetTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolTip * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxToolTip_SetTip",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolTip_SetTip. Expected _wxToolTip_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolTip_SetTip(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxToolTip_GetTip(_swigobj) (_swigobj->GetTip()) -static PyObject *_wrap_wxToolTip_GetTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolTip * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolTip_GetTip",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolTip_GetTip. Expected _wxToolTip_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxToolTip_GetTip(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxToolTip_GetWindow(_swigobj) (_swigobj->GetWindow()) -static PyObject *_wrap_wxToolTip_GetWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxToolTip * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolTip_GetWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolTip_GetWindow. Expected _wxToolTip_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxToolTip_GetWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef misccMethods[] = { - { "wxToolTip_GetWindow", _wrap_wxToolTip_GetWindow, 1 }, - { "wxToolTip_GetTip", _wrap_wxToolTip_GetTip, 1 }, - { "wxToolTip_SetTip", _wrap_wxToolTip_SetTip, 1 }, - { "new_wxToolTip", _wrap_new_wxToolTip, 1 }, - { "new_wxAcceleratorTable", _wrap_new_wxAcceleratorTable, 1 }, - { "wxAcceleratorEntry_GetCommand", _wrap_wxAcceleratorEntry_GetCommand, 1 }, - { "wxAcceleratorEntry_GetKeyCode", _wrap_wxAcceleratorEntry_GetKeyCode, 1 }, - { "wxAcceleratorEntry_GetFlags", _wrap_wxAcceleratorEntry_GetFlags, 1 }, - { "wxAcceleratorEntry_Set", _wrap_wxAcceleratorEntry_Set, 1 }, - { "new_wxAcceleratorEntry", _wrap_new_wxAcceleratorEntry, 1 }, - { "wxRegionIterator_Next", _wrap_wxRegionIterator_Next, 1 }, - { "wxRegionIterator_Reset", _wrap_wxRegionIterator_Reset, 1 }, - { "wxRegionIterator_HaveRects", _wrap_wxRegionIterator_HaveRects, 1 }, - { "wxRegionIterator_GetRect", _wrap_wxRegionIterator_GetRect, 1 }, - { "wxRegionIterator_GetHeight", _wrap_wxRegionIterator_GetHeight, 1 }, - { "wxRegionIterator_GetH", _wrap_wxRegionIterator_GetH, 1 }, - { "wxRegionIterator_GetWidth", _wrap_wxRegionIterator_GetWidth, 1 }, - { "wxRegionIterator_GetW", _wrap_wxRegionIterator_GetW, 1 }, - { "wxRegionIterator_GetY", _wrap_wxRegionIterator_GetY, 1 }, - { "wxRegionIterator_GetX", _wrap_wxRegionIterator_GetX, 1 }, - { "delete_wxRegionIterator", _wrap_delete_wxRegionIterator, 1 }, - { "new_wxRegionIterator", _wrap_new_wxRegionIterator, 1 }, - { "wxRegion_Xor", _wrap_wxRegion_Xor, 1 }, - { "wxRegion_Union", _wrap_wxRegion_Union, 1 }, - { "wxRegion_Subtract", _wrap_wxRegion_Subtract, 1 }, - { "wxRegion_Intersect", _wrap_wxRegion_Intersect, 1 }, - { "wxRegion_GetBox", _wrap_wxRegion_GetBox, 1 }, - { "wxRegion_ContainsRect", _wrap_wxRegion_ContainsRect, 1 }, - { "wxRegion_ContainsPoint", _wrap_wxRegion_ContainsPoint, 1 }, - { "wxRegion_Contains", _wrap_wxRegion_Contains, 1 }, - { "wxRegion_Clear", _wrap_wxRegion_Clear, 1 }, - { "delete_wxRegion", _wrap_delete_wxRegion, 1 }, - { "new_wxRegion", _wrap_new_wxRegion, 1 }, - { "wxLayoutConstraints_width_get", _wrap_wxLayoutConstraints_width_get, 1 }, - { "wxLayoutConstraints_top_get", _wrap_wxLayoutConstraints_top_get, 1 }, - { "wxLayoutConstraints_right_get", _wrap_wxLayoutConstraints_right_get, 1 }, - { "wxLayoutConstraints_left_get", _wrap_wxLayoutConstraints_left_get, 1 }, - { "wxLayoutConstraints_height_get", _wrap_wxLayoutConstraints_height_get, 1 }, - { "wxLayoutConstraints_centreY_get", _wrap_wxLayoutConstraints_centreY_get, 1 }, - { "wxLayoutConstraints_centreX_get", _wrap_wxLayoutConstraints_centreX_get, 1 }, - { "wxLayoutConstraints_bottom_get", _wrap_wxLayoutConstraints_bottom_get, 1 }, - { "new_wxLayoutConstraints", _wrap_new_wxLayoutConstraints, 1 }, - { "wxIndividualLayoutConstraint_Set", _wrap_wxIndividualLayoutConstraint_Set, 1 }, - { "wxIndividualLayoutConstraint_SameAs", _wrap_wxIndividualLayoutConstraint_SameAs, 1 }, - { "wxIndividualLayoutConstraint_RightOf", _wrap_wxIndividualLayoutConstraint_RightOf, 1 }, - { "wxIndividualLayoutConstraint_PercentOf", _wrap_wxIndividualLayoutConstraint_PercentOf, 1 }, - { "wxIndividualLayoutConstraint_LeftOf", _wrap_wxIndividualLayoutConstraint_LeftOf, 1 }, - { "wxIndividualLayoutConstraint_Unconstrained", _wrap_wxIndividualLayoutConstraint_Unconstrained, 1 }, - { "wxIndividualLayoutConstraint_Below", _wrap_wxIndividualLayoutConstraint_Below, 1 }, - { "wxIndividualLayoutConstraint_AsIs", _wrap_wxIndividualLayoutConstraint_AsIs, 1 }, - { "wxIndividualLayoutConstraint_Absolute", _wrap_wxIndividualLayoutConstraint_Absolute, 1 }, - { "wxIndividualLayoutConstraint_Above", _wrap_wxIndividualLayoutConstraint_Above, 1 }, - { "wxPyTimer_Stop", _wrap_wxPyTimer_Stop, 1 }, - { "wxPyTimer_Start", _wrap_wxPyTimer_Start, 1 }, - { "wxPyTimer_Interval", _wrap_wxPyTimer_Interval, 1 }, - { "delete_wxPyTimer", _wrap_delete_wxPyTimer, 1 }, - { "new_wxPyTimer", _wrap_new_wxPyTimer, 1 }, - { "wxRect_asTuple", _wrap_wxRect_asTuple, 1 }, - { "wxRect_height_get", _wrap_wxRect_height_get, 1 }, - { "wxRect_height_set", _wrap_wxRect_height_set, 1 }, - { "wxRect_width_get", _wrap_wxRect_width_get, 1 }, - { "wxRect_width_set", _wrap_wxRect_width_set, 1 }, - { "wxRect_y_get", _wrap_wxRect_y_get, 1 }, - { "wxRect_y_set", _wrap_wxRect_y_set, 1 }, - { "wxRect_x_get", _wrap_wxRect_x_get, 1 }, - { "wxRect_x_set", _wrap_wxRect_x_set, 1 }, - { "wxRect_GetRight", _wrap_wxRect_GetRight, 1 }, - { "wxRect_GetBottom", _wrap_wxRect_GetBottom, 1 }, - { "wxRect_GetTop", _wrap_wxRect_GetTop, 1 }, - { "wxRect_GetLeft", _wrap_wxRect_GetLeft, 1 }, - { "wxRect_GetSize", _wrap_wxRect_GetSize, 1 }, - { "wxRect_GetPosition", _wrap_wxRect_GetPosition, 1 }, - { "wxRect_SetHeight", _wrap_wxRect_SetHeight, 1 }, - { "wxRect_GetHeight", _wrap_wxRect_GetHeight, 1 }, - { "wxRect_SetWidth", _wrap_wxRect_SetWidth, 1 }, - { "wxRect_GetWidth", _wrap_wxRect_GetWidth, 1 }, - { "wxRect_SetY", _wrap_wxRect_SetY, 1 }, - { "wxRect_GetY", _wrap_wxRect_GetY, 1 }, - { "wxRect_SetX", _wrap_wxRect_SetX, 1 }, - { "wxRect_GetX", _wrap_wxRect_GetX, 1 }, - { "delete_wxRect", _wrap_delete_wxRect, 1 }, - { "new_wxRect", _wrap_new_wxRect, 1 }, - { "wxPoint_asTuple", _wrap_wxPoint_asTuple, 1 }, - { "wxPoint_Set", _wrap_wxPoint_Set, 1 }, - { "delete_wxPoint", _wrap_delete_wxPoint, 1 }, - { "new_wxPoint", _wrap_new_wxPoint, 1 }, - { "wxPoint_y_get", _wrap_wxPoint_y_get, 1 }, - { "wxPoint_y_set", _wrap_wxPoint_y_set, 1 }, - { "wxPoint_x_get", _wrap_wxPoint_x_get, 1 }, - { "wxPoint_x_set", _wrap_wxPoint_x_set, 1 }, - { "delete_wxRealPoint", _wrap_delete_wxRealPoint, 1 }, - { "new_wxRealPoint", _wrap_new_wxRealPoint, 1 }, - { "wxRealPoint_y_get", _wrap_wxRealPoint_y_get, 1 }, - { "wxRealPoint_y_set", _wrap_wxRealPoint_y_set, 1 }, - { "wxRealPoint_x_get", _wrap_wxRealPoint_x_get, 1 }, - { "wxRealPoint_x_set", _wrap_wxRealPoint_x_set, 1 }, - { "wxSize_asTuple", _wrap_wxSize_asTuple, 1 }, - { "wxSize_GetHeight", _wrap_wxSize_GetY, 1 }, - { "wxSize_GetWidth", _wrap_wxSize_GetX, 1 }, - { "wxSize_GetY", _wrap_wxSize_GetY, 1 }, - { "wxSize_GetX", _wrap_wxSize_GetX, 1 }, - { "wxSize_Set", _wrap_wxSize_Set, 1 }, - { "delete_wxSize", _wrap_delete_wxSize, 1 }, - { "new_wxSize", _wrap_new_wxSize, 1 }, - { "wxSize_height_get", _wrap_wxSize_y_get, 1 }, - { "wxSize_height_set", _wrap_wxSize_y_set, 1 }, - { "wxSize_width_get", _wrap_wxSize_x_get, 1 }, - { "wxSize_width_set", _wrap_wxSize_x_set, 1 }, - { "wxSize_y_get", _wrap_wxSize_y_get, 1 }, - { "wxSize_y_set", _wrap_wxSize_y_set, 1 }, - { "wxSize_x_get", _wrap_wxSize_x_get, 1 }, - { "wxSize_x_set", _wrap_wxSize_x_set, 1 }, - { "wxToolTip_SetDelay", _wrap_wxToolTip_SetDelay, 1 }, - { "wxToolTip_Enable", _wrap_wxToolTip_Enable, 1 }, - { "wxResourceParseString", _wrap_wxResourceParseString, 1 }, - { "wxResourceParseFile", _wrap_wxResourceParseFile, 1 }, - { "wxResourceParseData", _wrap_wxResourceParseData, 1 }, - { "wxResourceGetIdentifier", _wrap_wxResourceGetIdentifier, 1 }, - { "wxResourceCreateMenuBar", _wrap_wxResourceCreateMenuBar, 1 }, - { "wxResourceCreateIcon", _wrap_wxResourceCreateIcon, 1 }, - { "wxResourceCreateBitmap", _wrap_wxResourceCreateBitmap, 1 }, - { "wxResourceClear", _wrap_wxResourceClear, 1 }, - { "wxResourceAddIdentifier", _wrap_wxResourceAddIdentifier, 1 }, - { "wxGetResource", _wrap_wxGetResource, 1 }, - { "wxSafeYield", _wrap_wxSafeYield, 1 }, - { "wxYield", _wrap_wxYield, 1 }, - { "wxNow", _wrap_wxNow, 1 }, - { "wxIsBusy", _wrap_wxIsBusy, 1 }, - { "wxGetMousePosition", _wrap_wxGetMousePosition, 1 }, - { "wxFindWindowByName", _wrap_wxFindWindowByName, 1 }, - { "wxFindWindowByLabel", _wrap_wxFindWindowByLabel, 1 }, - { "wxExecute", _wrap_wxExecute, 1 }, - { "wxEndBusyCursor", _wrap_wxEndBusyCursor, 1 }, - { "wxDisplaySize", _wrap_wxDisplaySize, 1 }, - { "wxBell", _wrap_wxBell, 1 }, - { "wxBeginBusyCursor", _wrap_wxBeginBusyCursor, 1 }, - { "RegisterId", _wrap_RegisterId, 1 }, - { "NewId", _wrap_NewId, 1 }, - { "wxRegisterId", _wrap_wxRegisterId, 1 }, - { "wxNewId", _wrap_wxNewId, 1 }, - { "wxSetCursor", _wrap_wxSetCursor, 1 }, - { "wxDisplayDepth", _wrap_wxDisplayDepth, 1 }, - { "wxColourDisplay", _wrap_wxColourDisplay, 1 }, - { "wxMessageBox", _wrap_wxMessageBox, 1 }, - { "wxGetSingleChoiceIndex", _wrap_wxGetSingleChoiceIndex, 1 }, - { "wxGetSingleChoice", _wrap_wxGetSingleChoice, 1 }, - { "wxGetTextFromUser", _wrap_wxGetTextFromUser, 1 }, - { "wxFileSelector", _wrap_wxFileSelector, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initmiscc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("miscc", misccMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxLeft", PyInt_FromLong((long) wxLeft)); - PyDict_SetItemString(d,"wxTop", PyInt_FromLong((long) wxTop)); - PyDict_SetItemString(d,"wxRight", PyInt_FromLong((long) wxRight)); - PyDict_SetItemString(d,"wxBottom", PyInt_FromLong((long) wxBottom)); - PyDict_SetItemString(d,"wxWidth", PyInt_FromLong((long) wxWidth)); - PyDict_SetItemString(d,"wxHeight", PyInt_FromLong((long) wxHeight)); - PyDict_SetItemString(d,"wxCentre", PyInt_FromLong((long) wxCentre)); - PyDict_SetItemString(d,"wxCenter", PyInt_FromLong((long) wxCenter)); - PyDict_SetItemString(d,"wxCentreX", PyInt_FromLong((long) wxCentreX)); - PyDict_SetItemString(d,"wxCentreY", PyInt_FromLong((long) wxCentreY)); - PyDict_SetItemString(d,"wxUnconstrained", PyInt_FromLong((long) wxUnconstrained)); - PyDict_SetItemString(d,"wxAsIs", PyInt_FromLong((long) wxAsIs)); - PyDict_SetItemString(d,"wxPercentOf", PyInt_FromLong((long) wxPercentOf)); - PyDict_SetItemString(d,"wxAbove", PyInt_FromLong((long) wxAbove)); - PyDict_SetItemString(d,"wxBelow", PyInt_FromLong((long) wxBelow)); - PyDict_SetItemString(d,"wxLeftOf", PyInt_FromLong((long) wxLeftOf)); - PyDict_SetItemString(d,"wxRightOf", PyInt_FromLong((long) wxRightOf)); - PyDict_SetItemString(d,"wxSameAs", PyInt_FromLong((long) wxSameAs)); - PyDict_SetItemString(d,"wxAbsolute", PyInt_FromLong((long) wxAbsolute)); - PyDict_SetItemString(d,"wxOutRegion", PyInt_FromLong((long) wxOutRegion)); - PyDict_SetItemString(d,"wxPartRegion", PyInt_FromLong((long) wxPartRegion)); - PyDict_SetItemString(d,"wxInRegion", PyInt_FromLong((long) wxInRegion)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); -} diff --git a/utils/wxPython/src/gtk/misc.py b/utils/wxPython/src/gtk/misc.py deleted file mode 100644 index 701ba1ebec..0000000000 --- a/utils/wxPython/src/gtk/misc.py +++ /dev/null @@ -1,676 +0,0 @@ -# This file was created automatically by SWIG. -import miscc -class wxSizePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxSize(self.this) - def Set(self,arg0,arg1): - val = miscc.wxSize_Set(self.this,arg0,arg1) - return val - def GetX(self): - val = miscc.wxSize_GetX(self.this) - return val - def GetY(self): - val = miscc.wxSize_GetY(self.this) - return val - def GetWidth(self): - val = miscc.wxSize_GetWidth(self.this) - return val - def GetHeight(self): - val = miscc.wxSize_GetHeight(self.this) - return val - def asTuple(self): - val = miscc.wxSize_asTuple(self.this) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxSize_x_set(self.this,value) - return - if name == "y" : - miscc.wxSize_y_set(self.this,value) - return - if name == "width" : - miscc.wxSize_width_set(self.this,value) - return - if name == "height" : - miscc.wxSize_height_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxSize_x_get(self.this) - if name == "y" : - return miscc.wxSize_y_get(self.this) - if name == "width" : - return miscc.wxSize_width_get(self.this) - if name == "height" : - return miscc.wxSize_height_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxSize(wxSizePtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxSize,()+args) - self.thisown = 1 - - - - -class wxRealPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRealPoint(self.this) - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRealPoint_x_set(self.this,value) - return - if name == "y" : - miscc.wxRealPoint_y_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRealPoint_x_get(self.this) - if name == "y" : - return miscc.wxRealPoint_y_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" -class wxRealPoint(wxRealPointPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxRealPoint,()+args) - self.thisown = 1 - - - - -class wxPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxPoint(self.this) - def Set(self,arg0,arg1): - val = miscc.wxPoint_Set(self.this,arg0,arg1) - return val - def asTuple(self): - val = miscc.wxPoint_asTuple(self.this) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxPoint_x_set(self.this,value) - return - if name == "y" : - miscc.wxPoint_y_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxPoint_x_get(self.this) - if name == "y" : - return miscc.wxPoint_y_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxPoint(wxPointPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxPoint,()+args) - self.thisown = 1 - - - - -class wxRectPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRect(self.this) - def GetX(self): - val = miscc.wxRect_GetX(self.this) - return val - def SetX(self,arg0): - val = miscc.wxRect_SetX(self.this,arg0) - return val - def GetY(self): - val = miscc.wxRect_GetY(self.this) - return val - def SetY(self,arg0): - val = miscc.wxRect_SetY(self.this,arg0) - return val - def GetWidth(self): - val = miscc.wxRect_GetWidth(self.this) - return val - def SetWidth(self,arg0): - val = miscc.wxRect_SetWidth(self.this,arg0) - return val - def GetHeight(self): - val = miscc.wxRect_GetHeight(self.this) - return val - def SetHeight(self,arg0): - val = miscc.wxRect_SetHeight(self.this,arg0) - return val - def GetPosition(self): - val = miscc.wxRect_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetSize(self): - val = miscc.wxRect_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetLeft(self): - val = miscc.wxRect_GetLeft(self.this) - return val - def GetTop(self): - val = miscc.wxRect_GetTop(self.this) - return val - def GetBottom(self): - val = miscc.wxRect_GetBottom(self.this) - return val - def GetRight(self): - val = miscc.wxRect_GetRight(self.this) - return val - def asTuple(self): - val = miscc.wxRect_asTuple(self.this) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRect_x_set(self.this,value) - return - if name == "y" : - miscc.wxRect_y_set(self.this,value) - return - if name == "width" : - miscc.wxRect_width_set(self.this,value) - return - if name == "height" : - miscc.wxRect_height_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRect_x_get(self.this) - if name == "y" : - return miscc.wxRect_y_get(self.this) - if name == "width" : - return miscc.wxRect_width_get(self.this) - if name == "height" : - return miscc.wxRect_height_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxRect(wxRectPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxRect,()+args) - self.thisown = 1 - - - - -class wxPyTimerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxPyTimer(self.this) - def Interval(self): - val = miscc.wxPyTimer_Interval(self.this) - return val - def Start(self,*args): - val = apply(miscc.wxPyTimer_Start,(self.this,)+args) - return val - def Stop(self): - val = miscc.wxPyTimer_Stop(self.this) - return val - def __repr__(self): - return "" -class wxPyTimer(wxPyTimerPtr): - def __init__(self,arg0) : - self.this = miscc.new_wxPyTimer(arg0) - self.thisown = 1 - - - - -class wxIndividualLayoutConstraintPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Above(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_Above,(self.this,arg0.this,)+args) - return val - def Absolute(self,arg0): - val = miscc.wxIndividualLayoutConstraint_Absolute(self.this,arg0) - return val - def AsIs(self): - val = miscc.wxIndividualLayoutConstraint_AsIs(self.this) - return val - def Below(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_Below,(self.this,arg0.this,)+args) - return val - def Unconstrained(self): - val = miscc.wxIndividualLayoutConstraint_Unconstrained(self.this) - return val - def LeftOf(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_LeftOf,(self.this,arg0.this,)+args) - return val - def PercentOf(self,arg0,arg1,arg2): - val = miscc.wxIndividualLayoutConstraint_PercentOf(self.this,arg0.this,arg1,arg2) - return val - def RightOf(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_RightOf,(self.this,arg0.this,)+args) - return val - def SameAs(self,arg0,arg1,*args): - val = apply(miscc.wxIndividualLayoutConstraint_SameAs,(self.this,arg0.this,arg1,)+args) - return val - def Set(self,arg0,arg1,arg2,*args): - val = apply(miscc.wxIndividualLayoutConstraint_Set,(self.this,arg0,arg1.this,arg2,)+args) - return val - def __repr__(self): - return "" -class wxIndividualLayoutConstraint(wxIndividualLayoutConstraintPtr): - def __init__(self,this): - self.this = this - - - - -class wxLayoutConstraintsPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __setattr__(self,name,value): - if name == "bottom" : - miscc.wxLayoutConstraints_bottom_set(self.this,value.this) - return - if name == "centreX" : - miscc.wxLayoutConstraints_centreX_set(self.this,value.this) - return - if name == "centreY" : - miscc.wxLayoutConstraints_centreY_set(self.this,value.this) - return - if name == "height" : - miscc.wxLayoutConstraints_height_set(self.this,value.this) - return - if name == "left" : - miscc.wxLayoutConstraints_left_set(self.this,value.this) - return - if name == "right" : - miscc.wxLayoutConstraints_right_set(self.this,value.this) - return - if name == "top" : - miscc.wxLayoutConstraints_top_set(self.this,value.this) - return - if name == "width" : - miscc.wxLayoutConstraints_width_set(self.this,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "bottom" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_bottom_get(self.this)) - if name == "centreX" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreX_get(self.this)) - if name == "centreY" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreY_get(self.this)) - if name == "height" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_height_get(self.this)) - if name == "left" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_left_get(self.this)) - if name == "right" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_right_get(self.this)) - if name == "top" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_top_get(self.this)) - if name == "width" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_width_get(self.this)) - raise AttributeError,name - def __repr__(self): - return "" -class wxLayoutConstraints(wxLayoutConstraintsPtr): - def __init__(self) : - self.this = miscc.new_wxLayoutConstraints() - self.thisown = 1 - - - - -class wxRegionPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRegion(self.this) - def Clear(self): - val = miscc.wxRegion_Clear(self.this) - return val - def Contains(self,arg0,arg1): - val = miscc.wxRegion_Contains(self.this,arg0,arg1) - return val - def ContainsPoint(self,arg0): - val = miscc.wxRegion_ContainsPoint(self.this,arg0.this) - return val - def ContainsRect(self,arg0): - val = miscc.wxRegion_ContainsRect(self.this,arg0.this) - return val - def GetBox(self): - val = miscc.wxRegion_GetBox(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def Intersect(self,arg0): - val = miscc.wxRegion_Intersect(self.this,arg0.this) - return val - def Subtract(self,arg0): - val = miscc.wxRegion_Subtract(self.this,arg0.this) - return val - def Union(self,arg0): - val = miscc.wxRegion_Union(self.this,arg0.this) - return val - def Xor(self,arg0): - val = miscc.wxRegion_Xor(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxRegion(wxRegionPtr): - def __init__(self) : - self.this = miscc.new_wxRegion() - self.thisown = 1 - - - - -class wxRegionIteratorPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRegionIterator(self.this) - def GetX(self): - val = miscc.wxRegionIterator_GetX(self.this) - return val - def GetY(self): - val = miscc.wxRegionIterator_GetY(self.this) - return val - def GetW(self): - val = miscc.wxRegionIterator_GetW(self.this) - return val - def GetWidth(self): - val = miscc.wxRegionIterator_GetWidth(self.this) - return val - def GetH(self): - val = miscc.wxRegionIterator_GetH(self.this) - return val - def GetHeight(self): - val = miscc.wxRegionIterator_GetHeight(self.this) - return val - def GetRect(self): - val = miscc.wxRegionIterator_GetRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def HaveRects(self): - val = miscc.wxRegionIterator_HaveRects(self.this) - return val - def Reset(self): - val = miscc.wxRegionIterator_Reset(self.this) - return val - def Next(self): - val = miscc.wxRegionIterator_Next(self.this) - return val - def __repr__(self): - return "" -class wxRegionIterator(wxRegionIteratorPtr): - def __init__(self,arg0) : - self.this = miscc.new_wxRegionIterator(arg0.this) - self.thisown = 1 - - - - -class wxAcceleratorEntryPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Set(self,arg0,arg1,arg2): - val = miscc.wxAcceleratorEntry_Set(self.this,arg0,arg1,arg2) - return val - def GetFlags(self): - val = miscc.wxAcceleratorEntry_GetFlags(self.this) - return val - def GetKeyCode(self): - val = miscc.wxAcceleratorEntry_GetKeyCode(self.this) - return val - def GetCommand(self): - val = miscc.wxAcceleratorEntry_GetCommand(self.this) - return val - def __repr__(self): - return "" -class wxAcceleratorEntry(wxAcceleratorEntryPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxAcceleratorEntry,()+args) - self.thisown = 1 - - - - -class wxAcceleratorTablePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,arg0) : - self.this = miscc.new_wxAcceleratorTable(arg0.this) - self.thisown = 1 - - - - -class wxToolTipPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetTip(self,arg0): - val = miscc.wxToolTip_SetTip(self.this,arg0) - return val - def GetTip(self): - val = miscc.wxToolTip_GetTip(self.this) - return val - def GetWindow(self): - val = miscc.wxToolTip_GetWindow(self.this) - val = wxWindowPtr(val) - return val - def __repr__(self): - return "" -class wxToolTip(wxToolTipPtr): - def __init__(self,arg0) : - self.this = miscc.new_wxToolTip(arg0) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxFileSelector(arg0,*args): - argl = map(None,args) - try: argl[5] = argl[5].this - except: pass - args = tuple(argl) - val = apply(miscc.wxFileSelector,(arg0,)+args) - return val - -def wxGetTextFromUser(arg0,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(miscc.wxGetTextFromUser,(arg0,)+args) - return val - -def wxGetSingleChoice(arg0,arg1,arg2,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxGetSingleChoice,(arg0,arg1,arg2,)+args) - return val - -def wxGetSingleChoiceIndex(arg0,arg1,arg2,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxGetSingleChoiceIndex,(arg0,arg1,arg2,)+args) - return val - -def wxMessageBox(arg0,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(miscc.wxMessageBox,(arg0,)+args) - return val - -wxColourDisplay = miscc.wxColourDisplay - -wxDisplayDepth = miscc.wxDisplayDepth - -def wxSetCursor(arg0): - val = miscc.wxSetCursor(arg0.this) - return val - -wxNewId = miscc.wxNewId - -wxRegisterId = miscc.wxRegisterId - -NewId = miscc.NewId - -RegisterId = miscc.RegisterId - -def wxBeginBusyCursor(*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxBeginBusyCursor,()+args) - return val - -wxBell = miscc.wxBell - -wxDisplaySize = miscc.wxDisplaySize - -wxEndBusyCursor = miscc.wxEndBusyCursor - -wxExecute = miscc.wxExecute - -def wxFindWindowByLabel(arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxFindWindowByLabel,(arg0,)+args) - val = wxWindowPtr(val) - return val - -def wxFindWindowByName(arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxFindWindowByName,(arg0,)+args) - val = wxWindowPtr(val) - return val - -wxGetMousePosition = miscc.wxGetMousePosition - -wxIsBusy = miscc.wxIsBusy - -wxNow = miscc.wxNow - -wxYield = miscc.wxYield - -wxSafeYield = miscc.wxSafeYield - -wxGetResource = miscc.wxGetResource - -wxResourceAddIdentifier = miscc.wxResourceAddIdentifier - -wxResourceClear = miscc.wxResourceClear - -def wxResourceCreateBitmap(arg0): - val = miscc.wxResourceCreateBitmap(arg0) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - -def wxResourceCreateIcon(arg0): - val = miscc.wxResourceCreateIcon(arg0) - val = wxIconPtr(val) - val.thisown = 1 - return val - -def wxResourceCreateMenuBar(arg0): - val = miscc.wxResourceCreateMenuBar(arg0) - val = wxMenuBarPtr(val) - return val - -wxResourceGetIdentifier = miscc.wxResourceGetIdentifier - -wxResourceParseData = miscc.wxResourceParseData - -wxResourceParseFile = miscc.wxResourceParseFile - -wxResourceParseString = miscc.wxResourceParseString - -wxToolTip_Enable = miscc.wxToolTip_Enable - -wxToolTip_SetDelay = miscc.wxToolTip_SetDelay - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxLeft = miscc.wxLeft -wxTop = miscc.wxTop -wxRight = miscc.wxRight -wxBottom = miscc.wxBottom -wxWidth = miscc.wxWidth -wxHeight = miscc.wxHeight -wxCentre = miscc.wxCentre -wxCenter = miscc.wxCenter -wxCentreX = miscc.wxCentreX -wxCentreY = miscc.wxCentreY -wxUnconstrained = miscc.wxUnconstrained -wxAsIs = miscc.wxAsIs -wxPercentOf = miscc.wxPercentOf -wxAbove = miscc.wxAbove -wxBelow = miscc.wxBelow -wxLeftOf = miscc.wxLeftOf -wxRightOf = miscc.wxRightOf -wxSameAs = miscc.wxSameAs -wxAbsolute = miscc.wxAbsolute -wxOutRegion = miscc.wxOutRegion -wxPartRegion = miscc.wxPartRegion -wxInRegion = miscc.wxInRegion diff --git a/utils/wxPython/src/gtk/stattool.cpp b/utils/wxPython/src/gtk/stattool.cpp deleted file mode 100644 index bb4d2e58df..0000000000 --- a/utils/wxPython/src/gtk/stattool.cpp +++ /dev/null @@ -1,2162 +0,0 @@ -/* - * FILE : gtk/stattool.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initstattoolc - -#define SWIG_name "stattoolc" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxStatusBarTowxWindow(void *ptr) { - wxStatusBar *src; - wxWindow *dest; - src = (wxStatusBar *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStatusBarTowxEvtHandler(void *ptr) { - wxStatusBar *src; - wxEvtHandler *dest; - src = (wxStatusBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStatusBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxStatusBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxST_SIZEGRIP); - char * _arg5 = "statusBar"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxStatusBar",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStatusBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStatusBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStatusBar. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStatusBar *)new_wxStatusBar(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxRect * wxStatusBar_GetFieldRect(wxStatusBar *self,long item) { - wxRect* rect= new wxRect; - self->GetFieldRect(item, *rect); - return rect; - } -static PyObject *_wrap_wxStatusBar_GetFieldRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxStatusBar * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxStatusBar_GetFieldRect",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_GetFieldRect. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRect *)wxStatusBar_GetFieldRect(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxStatusBar_GetFieldsCount(_swigobj) (_swigobj->GetFieldsCount()) -static PyObject *_wrap_wxStatusBar_GetFieldsCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxStatusBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStatusBar_GetFieldsCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_GetFieldsCount. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxStatusBar_GetFieldsCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxStatusBar_GetStatusText(_swigobj,_swigarg0) (_swigobj->GetStatusText(_swigarg0)) -static PyObject *_wrap_wxStatusBar_GetStatusText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxStatusBar * _arg0; - int _arg1 = 0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxStatusBar_GetStatusText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_GetStatusText. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxStatusBar_GetStatusText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxStatusBar_DrawField(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawField(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_DrawField(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - wxDC * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxStatusBar_DrawField",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawField. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStatusBar_DrawField. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_DrawField(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_DrawFieldText(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawFieldText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_DrawFieldText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - wxDC * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxStatusBar_DrawFieldText",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawFieldText. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStatusBar_DrawFieldText. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_DrawFieldText(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_InitColours(_swigobj) (_swigobj->InitColours()) -static PyObject *_wrap_wxStatusBar_InitColours(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStatusBar_InitColours",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_InitColours. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_InitColours(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_SetFieldsCount(_swigobj,_swigarg0) (_swigobj->SetFieldsCount(_swigarg0)) -static PyObject *_wrap_wxStatusBar_SetFieldsCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - int _arg1 = 1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxStatusBar_SetFieldsCount",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_SetFieldsCount. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_SetFieldsCount(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_SetStatusText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_SetStatusText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - wxString * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxStatusBar_SetStatusText",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_SetStatusText. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_SetStatusText(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxStatusBar_SetStatusWidths(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusWidths(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_SetStatusWidths(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - int _arg1; - int * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxStatusBar_SetStatusWidths",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_SetStatusWidths. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = int_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_SetStatusWidths(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define new_wxToolBarTool() (new wxToolBarTool()) -static PyObject *_wrap_new_wxToolBarTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxToolBarTool")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)new_wxToolBarTool(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxToolBarTool(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxToolBarTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxToolBarTool",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxToolBarTool. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxToolBarTool(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBarTool_m_toolStyle_set(_swigobj,_swigval) (_swigobj->m_toolStyle = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_toolStyle_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_toolStyle_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toolStyle_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_toolStyle_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toolStyle_get(_swigobj) ((int ) _swigobj->m_toolStyle) -static PyObject *_wrap_wxToolBarTool_m_toolStyle_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_toolStyle_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toolStyle_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_toolStyle_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_clientData_set(_swigobj,_swigval) (_swigobj->m_clientData = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_clientData_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxToolBarTool * _arg0; - wxObject * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBarTool_m_clientData_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_clientData_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxObject_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBarTool_m_clientData_set. Expected _wxObject_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxObject *)wxToolBarTool_m_clientData_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_clientData_get(_swigobj) ((wxObject *) _swigobj->m_clientData) -static PyObject *_wrap_wxToolBarTool_m_clientData_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_clientData_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_clientData_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxObject *)wxToolBarTool_m_clientData_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_index_set(_swigobj,_swigval) (_swigobj->m_index = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_index_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_index_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_index_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_index_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_index_get(_swigobj) ((int ) _swigobj->m_index) -static PyObject *_wrap_wxToolBarTool_m_index_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_index_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_index_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_index_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toggleState_set(_swigobj,_swigval) (_swigobj->m_toggleState = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_toggleState_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_toggleState_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toggleState_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_toggleState_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toggleState_get(_swigobj) ((bool ) _swigobj->m_toggleState) -static PyObject *_wrap_wxToolBarTool_m_toggleState_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_toggleState_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toggleState_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_toggleState_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_isToggle_set(_swigobj,_swigval) (_swigobj->m_isToggle = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_isToggle_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_isToggle_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isToggle_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isToggle_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_isToggle_get(_swigobj) ((bool ) _swigobj->m_isToggle) -static PyObject *_wrap_wxToolBarTool_m_isToggle_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_isToggle_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isToggle_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isToggle_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_deleteSecondBitmap_set(_swigobj,_swigval) (_swigobj->m_deleteSecondBitmap = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_deleteSecondBitmap_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_deleteSecondBitmap_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_deleteSecondBitmap_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_deleteSecondBitmap_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_deleteSecondBitmap_get(_swigobj) ((bool ) _swigobj->m_deleteSecondBitmap) -static PyObject *_wrap_wxToolBarTool_m_deleteSecondBitmap_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_deleteSecondBitmap_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_deleteSecondBitmap_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_deleteSecondBitmap_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_enabled_set(_swigobj,_swigval) (_swigobj->m_enabled = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_enabled_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_enabled_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_enabled_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_enabled_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_enabled_get(_swigobj) ((bool ) _swigobj->m_enabled) -static PyObject *_wrap_wxToolBarTool_m_enabled_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_enabled_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_enabled_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_enabled_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap1_set(_swigobj,_swigval) (_swigobj->m_bitmap1 = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_bitmap1_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBarTool_m_bitmap1_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap1_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBarTool_m_bitmap1_set. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap1_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap1_get(_swigobj) (&_swigobj->m_bitmap1) -static PyObject *_wrap_wxToolBarTool_m_bitmap1_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_bitmap1_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap1_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap1_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap2_set(_swigobj,_swigval) (_swigobj->m_bitmap2 = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_bitmap2_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBarTool_m_bitmap2_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap2_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBarTool_m_bitmap2_set. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap2_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap2_get(_swigobj) (&_swigobj->m_bitmap2) -static PyObject *_wrap_wxToolBarTool_m_bitmap2_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_bitmap2_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap2_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap2_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_isMenuCommand_set(_swigobj,_swigval) (_swigobj->m_isMenuCommand = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_isMenuCommand_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_isMenuCommand_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isMenuCommand_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isMenuCommand_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_isMenuCommand_get(_swigobj) ((bool ) _swigobj->m_isMenuCommand) -static PyObject *_wrap_wxToolBarTool_m_isMenuCommand_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_isMenuCommand_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isMenuCommand_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isMenuCommand_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_shortHelpString_set(_swigobj,_swigval) (_swigobj->m_shortHelpString = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_shortHelpString_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxToolBarTool_m_shortHelpString_set",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_shortHelpString_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_shortHelpString_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxToolBarTool_m_shortHelpString_get(_swigobj) (&_swigobj->m_shortHelpString) -static PyObject *_wrap_wxToolBarTool_m_shortHelpString_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_shortHelpString_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_shortHelpString_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_shortHelpString_get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxToolBarTool_m_longHelpString_set(_swigobj,_swigval) (_swigobj->m_longHelpString = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_longHelpString_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxToolBarTool_m_longHelpString_set",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_longHelpString_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_longHelpString_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxToolBarTool_m_longHelpString_get(_swigobj) (&_swigobj->m_longHelpString) -static PyObject *_wrap_wxToolBarTool_m_longHelpString_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_longHelpString_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_longHelpString_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_longHelpString_get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -static void *SwigwxToolBarTowxControl(void *ptr) { - wxToolBar *src; - wxControl *dest; - src = (wxToolBar *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxToolBarTowxWindow(void *ptr) { - wxToolBar *src; - wxWindow *dest; - src = (wxToolBar *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxToolBarTowxEvtHandler(void *ptr) { - wxToolBar *src; - wxEvtHandler *dest; - src = (wxToolBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxToolBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxToolBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxTB_HORIZONTAL)|(wxNO_BORDER); - char * _arg5 = "toolBar"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxToolBar",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxToolBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxToolBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxToolBar. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBar *)new_wxToolBar(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBar_AddSeparator(_swigobj) (_swigobj->AddSeparator()) -static PyObject *_wrap_wxToolBar_AddSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_AddSeparator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddSeparator. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_AddSeparator(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static wxToolBarTool * wxToolBar_AddTool(wxToolBar *self,int toolIndex,const wxBitmap & bitmap1,const wxBitmap & bitmap2,int isToggle,long xPos,long yPos,const wxString & shortHelpString,const wxString & longHelpString) { - return self->AddTool(toolIndex, bitmap1, bitmap2, - isToggle, xPos, yPos, NULL, - shortHelpString, longHelpString); - } -static PyObject *_wrap_wxToolBar_AddTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - wxToolBar * _arg0; - int _arg1; - wxBitmap * _arg2; - wxBitmap * _arg3 = &wxNullBitmap; - int _arg4 = (0); - long _arg5 = -1; - long _arg6 = -1; - wxString * _arg7 = &wxPyEmptyStr; - wxString * _arg8 = &wxPyEmptyStr; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj7 = 0; - PyObject * _obj8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|sillOO:wxToolBar_AddTool",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5,&_arg6,&_obj7,&_obj8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxToolBar_AddTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBar_AddTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj7) -{ - if (!PyString_Check(_obj7)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg7 = new wxString(PyString_AsString(_obj7), PyString_Size(_obj7)); -} - if (_obj8) -{ - if (!PyString_Check(_obj8)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg8 = new wxString(PyString_AsString(_obj8), PyString_Size(_obj8)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)wxToolBar_AddTool(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,*_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj7) - delete _arg7; -} -{ - if (_obj8) - delete _arg8; -} - return _resultobj; -} - -static wxToolBarTool * wxToolBar_AddSimpleTool(wxToolBar *self,int toolIndex,const wxBitmap & bitmap,const wxString & shortHelpString,const wxString & longHelpString) { - return self->AddTool(toolIndex, bitmap, wxNullBitmap, - FALSE, -1, -1, NULL, - shortHelpString, longHelpString); - } -static PyObject *_wrap_wxToolBar_AddSimpleTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - wxToolBar * _arg0; - int _arg1; - wxBitmap * _arg2; - wxString * _arg3 = &wxPyEmptyStr; - wxString * _arg4 = &wxPyEmptyStr; - char * _argc0 = 0; - char * _argc2 = 0; - PyObject * _obj3 = 0; - PyObject * _obj4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|OO:wxToolBar_AddSimpleTool",&_argc0,&_arg1,&_argc2,&_obj3,&_obj4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddSimpleTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxToolBar_AddSimpleTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} - if (_obj4) -{ - if (!PyString_Check(_obj4)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg4 = new wxString(PyString_AsString(_obj4), PyString_Size(_obj4)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)wxToolBar_AddSimpleTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj3) - delete _arg3; -} -{ - if (_obj4) - delete _arg4; -} - return _resultobj; -} - -#define wxToolBar_EnableTool(_swigobj,_swigarg0,_swigarg1) (_swigobj->EnableTool(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_EnableTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxToolBar_EnableTool",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_EnableTool. Expected _wxToolBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_EnableTool(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_GetToolEnabled(_swigobj,_swigarg0) (_swigobj->GetToolEnabled(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolEnabled",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolEnabled. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBar_GetToolEnabled(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_GetToolLongHelp(_swigobj,_swigarg0) (_swigobj->GetToolLongHelp(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolLongHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolLongHelp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolLongHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxToolBar_GetToolLongHelp(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxToolBar_GetToolPacking(_swigobj) (_swigobj->GetToolPacking()) -static PyObject *_wrap_wxToolBar_GetToolPacking(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetToolPacking",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolPacking. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBar_GetToolPacking(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_GetToolSeparation(_swigobj) (_swigobj->GetToolSeparation()) -static PyObject *_wrap_wxToolBar_GetToolSeparation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetToolSeparation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolSeparation. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBar_GetToolSeparation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_GetToolShortHelp(_swigobj,_swigarg0) (_swigobj->GetToolShortHelp(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolShortHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolShortHelp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolShortHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxToolBar_GetToolShortHelp(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxToolBar_GetToolState(_swigobj,_swigarg0) (_swigobj->GetToolState(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolState",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolState. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBar_GetToolState(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_Realize(_swigobj) (_swigobj->Realize()) -static PyObject *_wrap_wxToolBar_Realize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_Realize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_Realize. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBar_Realize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_SetToolLongHelp(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetToolLongHelp(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_SetToolLongHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxToolBar_SetToolLongHelp",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolLongHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolLongHelp(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxToolBar_SetToolShortHelp(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetToolShortHelp(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_SetToolShortHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxToolBar_SetToolShortHelp",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolShortHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolShortHelp(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxToolBar_SetMargins(_swigobj,_swigarg0) (_swigobj->SetMargins(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBar_SetMargins",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetMargins. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBar_SetMargins. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetMargins(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_SetToolPacking(_swigobj,_swigarg0) (_swigobj->SetToolPacking(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetToolPacking(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_SetToolPacking",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolPacking. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolPacking(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_SetToolSeparation(_swigobj,_swigarg0) (_swigobj->SetToolSeparation(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetToolSeparation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_SetToolSeparation",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolSeparation. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolSeparation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_ToggleTool(_swigobj,_swigarg0,_swigarg1) (_swigobj->ToggleTool(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_ToggleTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxToolBar_ToggleTool",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_ToggleTool. Expected _wxToolBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_ToggleTool(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef stattoolcMethods[] = { - { "wxToolBar_ToggleTool", _wrap_wxToolBar_ToggleTool, 1 }, - { "wxToolBar_SetToolSeparation", _wrap_wxToolBar_SetToolSeparation, 1 }, - { "wxToolBar_SetToolPacking", _wrap_wxToolBar_SetToolPacking, 1 }, - { "wxToolBar_SetMargins", _wrap_wxToolBar_SetMargins, 1 }, - { "wxToolBar_SetToolShortHelp", _wrap_wxToolBar_SetToolShortHelp, 1 }, - { "wxToolBar_SetToolLongHelp", _wrap_wxToolBar_SetToolLongHelp, 1 }, - { "wxToolBar_Realize", _wrap_wxToolBar_Realize, 1 }, - { "wxToolBar_GetToolState", _wrap_wxToolBar_GetToolState, 1 }, - { "wxToolBar_GetToolShortHelp", _wrap_wxToolBar_GetToolShortHelp, 1 }, - { "wxToolBar_GetToolSeparation", _wrap_wxToolBar_GetToolSeparation, 1 }, - { "wxToolBar_GetToolPacking", _wrap_wxToolBar_GetToolPacking, 1 }, - { "wxToolBar_GetToolLongHelp", _wrap_wxToolBar_GetToolLongHelp, 1 }, - { "wxToolBar_GetToolEnabled", _wrap_wxToolBar_GetToolEnabled, 1 }, - { "wxToolBar_EnableTool", _wrap_wxToolBar_EnableTool, 1 }, - { "wxToolBar_AddSimpleTool", _wrap_wxToolBar_AddSimpleTool, 1 }, - { "wxToolBar_AddTool", _wrap_wxToolBar_AddTool, 1 }, - { "wxToolBar_AddSeparator", _wrap_wxToolBar_AddSeparator, 1 }, - { "new_wxToolBar", _wrap_new_wxToolBar, 1 }, - { "wxToolBarTool_m_longHelpString_get", _wrap_wxToolBarTool_m_longHelpString_get, 1 }, - { "wxToolBarTool_m_longHelpString_set", _wrap_wxToolBarTool_m_longHelpString_set, 1 }, - { "wxToolBarTool_m_shortHelpString_get", _wrap_wxToolBarTool_m_shortHelpString_get, 1 }, - { "wxToolBarTool_m_shortHelpString_set", _wrap_wxToolBarTool_m_shortHelpString_set, 1 }, - { "wxToolBarTool_m_isMenuCommand_get", _wrap_wxToolBarTool_m_isMenuCommand_get, 1 }, - { "wxToolBarTool_m_isMenuCommand_set", _wrap_wxToolBarTool_m_isMenuCommand_set, 1 }, - { "wxToolBarTool_m_bitmap2_get", _wrap_wxToolBarTool_m_bitmap2_get, 1 }, - { "wxToolBarTool_m_bitmap2_set", _wrap_wxToolBarTool_m_bitmap2_set, 1 }, - { "wxToolBarTool_m_bitmap1_get", _wrap_wxToolBarTool_m_bitmap1_get, 1 }, - { "wxToolBarTool_m_bitmap1_set", _wrap_wxToolBarTool_m_bitmap1_set, 1 }, - { "wxToolBarTool_m_enabled_get", _wrap_wxToolBarTool_m_enabled_get, 1 }, - { "wxToolBarTool_m_enabled_set", _wrap_wxToolBarTool_m_enabled_set, 1 }, - { "wxToolBarTool_m_deleteSecondBitmap_get", _wrap_wxToolBarTool_m_deleteSecondBitmap_get, 1 }, - { "wxToolBarTool_m_deleteSecondBitmap_set", _wrap_wxToolBarTool_m_deleteSecondBitmap_set, 1 }, - { "wxToolBarTool_m_isToggle_get", _wrap_wxToolBarTool_m_isToggle_get, 1 }, - { "wxToolBarTool_m_isToggle_set", _wrap_wxToolBarTool_m_isToggle_set, 1 }, - { "wxToolBarTool_m_toggleState_get", _wrap_wxToolBarTool_m_toggleState_get, 1 }, - { "wxToolBarTool_m_toggleState_set", _wrap_wxToolBarTool_m_toggleState_set, 1 }, - { "wxToolBarTool_m_index_get", _wrap_wxToolBarTool_m_index_get, 1 }, - { "wxToolBarTool_m_index_set", _wrap_wxToolBarTool_m_index_set, 1 }, - { "wxToolBarTool_m_clientData_get", _wrap_wxToolBarTool_m_clientData_get, 1 }, - { "wxToolBarTool_m_clientData_set", _wrap_wxToolBarTool_m_clientData_set, 1 }, - { "wxToolBarTool_m_toolStyle_get", _wrap_wxToolBarTool_m_toolStyle_get, 1 }, - { "wxToolBarTool_m_toolStyle_set", _wrap_wxToolBarTool_m_toolStyle_set, 1 }, - { "delete_wxToolBarTool", _wrap_delete_wxToolBarTool, 1 }, - { "new_wxToolBarTool", _wrap_new_wxToolBarTool, 1 }, - { "wxStatusBar_SetStatusWidths", _wrap_wxStatusBar_SetStatusWidths, 1 }, - { "wxStatusBar_SetStatusText", _wrap_wxStatusBar_SetStatusText, 1 }, - { "wxStatusBar_SetFieldsCount", _wrap_wxStatusBar_SetFieldsCount, 1 }, - { "wxStatusBar_InitColours", _wrap_wxStatusBar_InitColours, 1 }, - { "wxStatusBar_DrawFieldText", _wrap_wxStatusBar_DrawFieldText, 1 }, - { "wxStatusBar_DrawField", _wrap_wxStatusBar_DrawField, 1 }, - { "wxStatusBar_GetStatusText", _wrap_wxStatusBar_GetStatusText, 1 }, - { "wxStatusBar_GetFieldsCount", _wrap_wxStatusBar_GetFieldsCount, 1 }, - { "wxStatusBar_GetFieldRect", _wrap_wxStatusBar_GetFieldRect, 1 }, - { "new_wxStatusBar", _wrap_new_wxStatusBar, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initstattoolc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("stattoolc", stattoolcMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_wxControl","_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/gtk/stattool.py b/utils/wxPython/src/gtk/stattool.py deleted file mode 100644 index 6b7a740521..0000000000 --- a/utils/wxPython/src/gtk/stattool.py +++ /dev/null @@ -1,230 +0,0 @@ -# This file was created automatically by SWIG. -import stattoolc - -from misc import * - -from windows import * - -from gdi import * - -from controls import * - -from events import * -import wx -class wxStatusBarPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFieldRect(self,arg0): - val = stattoolc.wxStatusBar_GetFieldRect(self.this,arg0) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetFieldsCount(self): - val = stattoolc.wxStatusBar_GetFieldsCount(self.this) - return val - def GetStatusText(self,*args): - val = apply(stattoolc.wxStatusBar_GetStatusText,(self.this,)+args) - return val - def DrawField(self,arg0,arg1): - val = stattoolc.wxStatusBar_DrawField(self.this,arg0.this,arg1) - return val - def DrawFieldText(self,arg0,arg1): - val = stattoolc.wxStatusBar_DrawFieldText(self.this,arg0.this,arg1) - return val - def InitColours(self): - val = stattoolc.wxStatusBar_InitColours(self.this) - return val - def SetFieldsCount(self,*args): - val = apply(stattoolc.wxStatusBar_SetFieldsCount,(self.this,)+args) - return val - def SetStatusText(self,arg0,*args): - val = apply(stattoolc.wxStatusBar_SetStatusText,(self.this,arg0,)+args) - return val - def SetStatusWidths(self,arg0,*args): - val = apply(stattoolc.wxStatusBar_SetStatusWidths,(self.this,arg0,)+args) - return val - def __repr__(self): - return "" -class wxStatusBar(wxStatusBarPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(stattoolc.new_wxStatusBar,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxToolBarToolPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - stattoolc.delete_wxToolBarTool(self.this) - def __setattr__(self,name,value): - if name == "m_toolStyle" : - stattoolc.wxToolBarTool_m_toolStyle_set(self.this,value) - return - if name == "m_clientData" : - stattoolc.wxToolBarTool_m_clientData_set(self.this,value) - return - if name == "m_index" : - stattoolc.wxToolBarTool_m_index_set(self.this,value) - return - if name == "m_toggleState" : - stattoolc.wxToolBarTool_m_toggleState_set(self.this,value) - return - if name == "m_isToggle" : - stattoolc.wxToolBarTool_m_isToggle_set(self.this,value) - return - if name == "m_deleteSecondBitmap" : - stattoolc.wxToolBarTool_m_deleteSecondBitmap_set(self.this,value) - return - if name == "m_enabled" : - stattoolc.wxToolBarTool_m_enabled_set(self.this,value) - return - if name == "m_bitmap1" : - stattoolc.wxToolBarTool_m_bitmap1_set(self.this,value.this) - return - if name == "m_bitmap2" : - stattoolc.wxToolBarTool_m_bitmap2_set(self.this,value.this) - return - if name == "m_isMenuCommand" : - stattoolc.wxToolBarTool_m_isMenuCommand_set(self.this,value) - return - if name == "m_shortHelpString" : - stattoolc.wxToolBarTool_m_shortHelpString_set(self.this,value) - return - if name == "m_longHelpString" : - stattoolc.wxToolBarTool_m_longHelpString_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_toolStyle" : - return stattoolc.wxToolBarTool_m_toolStyle_get(self.this) - if name == "m_clientData" : - return stattoolc.wxToolBarTool_m_clientData_get(self.this) - if name == "m_index" : - return stattoolc.wxToolBarTool_m_index_get(self.this) - if name == "m_toggleState" : - return stattoolc.wxToolBarTool_m_toggleState_get(self.this) - if name == "m_isToggle" : - return stattoolc.wxToolBarTool_m_isToggle_get(self.this) - if name == "m_deleteSecondBitmap" : - return stattoolc.wxToolBarTool_m_deleteSecondBitmap_get(self.this) - if name == "m_enabled" : - return stattoolc.wxToolBarTool_m_enabled_get(self.this) - if name == "m_bitmap1" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap1_get(self.this)) - if name == "m_bitmap2" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap2_get(self.this)) - if name == "m_isMenuCommand" : - return stattoolc.wxToolBarTool_m_isMenuCommand_get(self.this) - if name == "m_shortHelpString" : - return stattoolc.wxToolBarTool_m_shortHelpString_get(self.this) - if name == "m_longHelpString" : - return stattoolc.wxToolBarTool_m_longHelpString_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" -class wxToolBarTool(wxToolBarToolPtr): - def __init__(self) : - self.this = stattoolc.new_wxToolBarTool() - self.thisown = 1 - - - - -class wxToolBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AddSeparator(self): - val = stattoolc.wxToolBar_AddSeparator(self.this) - return val - def AddTool(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(stattoolc.wxToolBar_AddTool,(self.this,arg0,arg1.this,)+args) - val = wxToolBarToolPtr(val) - return val - def AddSimpleTool(self,arg0,arg1,*args): - val = apply(stattoolc.wxToolBar_AddSimpleTool,(self.this,arg0,arg1.this,)+args) - val = wxToolBarToolPtr(val) - return val - def EnableTool(self,arg0,arg1): - val = stattoolc.wxToolBar_EnableTool(self.this,arg0,arg1) - return val - def GetToolEnabled(self,arg0): - val = stattoolc.wxToolBar_GetToolEnabled(self.this,arg0) - return val - def GetToolLongHelp(self,arg0): - val = stattoolc.wxToolBar_GetToolLongHelp(self.this,arg0) - return val - def GetToolPacking(self): - val = stattoolc.wxToolBar_GetToolPacking(self.this) - return val - def GetToolSeparation(self): - val = stattoolc.wxToolBar_GetToolSeparation(self.this) - return val - def GetToolShortHelp(self,arg0): - val = stattoolc.wxToolBar_GetToolShortHelp(self.this,arg0) - return val - def GetToolState(self,arg0): - val = stattoolc.wxToolBar_GetToolState(self.this,arg0) - return val - def Realize(self): - val = stattoolc.wxToolBar_Realize(self.this) - return val - def SetToolLongHelp(self,arg0,arg1): - val = stattoolc.wxToolBar_SetToolLongHelp(self.this,arg0,arg1) - return val - def SetToolShortHelp(self,arg0,arg1): - val = stattoolc.wxToolBar_SetToolShortHelp(self.this,arg0,arg1) - return val - def SetMargins(self,arg0): - val = stattoolc.wxToolBar_SetMargins(self.this,arg0.this) - return val - def SetToolPacking(self,arg0): - val = stattoolc.wxToolBar_SetToolPacking(self.this,arg0) - return val - def SetToolSeparation(self,arg0): - val = stattoolc.wxToolBar_SetToolSeparation(self.this,arg0) - return val - def ToggleTool(self,arg0,arg1): - val = stattoolc.wxToolBar_ToggleTool(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxToolBar(wxToolBarPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(stattoolc.new_wxToolBar,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/utils.cpp b/utils/wxPython/src/gtk/utils.cpp deleted file mode 100644 index c81965e0c8..0000000000 --- a/utils/wxPython/src/gtk/utils.cpp +++ /dev/null @@ -1,1254 +0,0 @@ -/* - * FILE : gtk/utils.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initutilsc - -#define SWIG_name "utilsc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -#ifdef SEPARATE - wxString wxPyEmptyStr(""); -#endif - - static PyObject* __EnumerationHelper(bool flag, wxString& str, long index) { - PyObject* ret = PyTuple_New(3); - if (ret) { - PyTuple_SET_ITEM(ret, 0, PyInt_FromLong(flag)); - PyTuple_SET_ITEM(ret, 1, PyString_FromString(str)); - PyTuple_SET_ITEM(ret, 2, PyInt_FromLong(index)); - } - return ret; - } -#define new_wxConfig(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxConfig(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxConfig(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _result; - wxString * _arg0 = &wxPyEmptyStr; - wxString * _arg1 = &wxPyEmptyStr; - wxString * _arg2 = &wxPyEmptyStr; - wxString * _arg3 = &wxPyEmptyStr; - long _arg4 = 0; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|OOOOl:new_wxConfig",&_obj0,&_obj1,&_obj2,&_obj3,&_arg4)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxConfig *)new_wxConfig(*_arg0,*_arg1,*_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxConfig_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define delete_wxConfig(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxConfig(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxConfig",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxConfig. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxConfig(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_DontCreateOnDemand(_swigobj) (_swigobj->DontCreateOnDemand()) -static PyObject *_wrap_wxConfig_DontCreateOnDemand(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_DontCreateOnDemand",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DontCreateOnDemand. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_DontCreateOnDemand(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_DeleteAll(_swigobj) (_swigobj->DeleteAll()) -static PyObject *_wrap_wxConfig_DeleteAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_DeleteAll",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DeleteAll. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_DeleteAll(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_DeleteEntry(_swigobj,_swigarg0,_swigarg1) (_swigobj->DeleteEntry(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_DeleteEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - bool _arg2 = TRUE; - char * _argc0 = 0; - PyObject * _obj1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxConfig_DeleteEntry",&_argc0,&_obj1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DeleteEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_DeleteEntry(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_DeleteGroup(_swigobj,_swigarg0) (_swigobj->DeleteGroup(_swigarg0)) -static PyObject *_wrap_wxConfig_DeleteGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_DeleteGroup",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DeleteGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_DeleteGroup(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_Exists(_swigobj,_swigarg0) (_swigobj->Exists(_swigarg0)) -static PyObject *_wrap_wxConfig_Exists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_Exists",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Exists. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_Exists(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_Flush(_swigobj,_swigarg0) (_swigobj->Flush(_swigarg0)) -static PyObject *_wrap_wxConfig_Flush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - bool _arg1 = FALSE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_Flush",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Flush. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_Flush(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_GetAppName(_swigobj) (_swigobj->GetAppName()) -static PyObject *_wrap_wxConfig_GetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetAppName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetAppName. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_GetAppName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetFirstGroup(wxConfig *self) { - bool cont; - long index = 0; - wxString value; - - cont = self->GetFirstGroup(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetFirstGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetFirstGroup",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetFirstGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetFirstGroup(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetFirstEntry(wxConfig *self) { - bool cont; - long index = 0; - wxString value; - - cont = self->GetFirstEntry(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetFirstEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetFirstEntry",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetFirstEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetFirstEntry(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetNextGroup(wxConfig *self,long index) { - bool cont; - wxString value; - - cont = self->GetNextGroup(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetNextGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxConfig_GetNextGroup",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNextGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetNextGroup(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetNextEntry(wxConfig *self,long index) { - bool cont; - wxString value; - - cont = self->GetNextEntry(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetNextEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxConfig_GetNextEntry",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNextEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetNextEntry(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define wxConfig_GetNumberOfEntries(_swigobj,_swigarg0) (_swigobj->GetNumberOfEntries(_swigarg0)) -static PyObject *_wrap_wxConfig_GetNumberOfEntries(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxConfig * _arg0; - bool _arg1 = FALSE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_GetNumberOfEntries",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNumberOfEntries. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxConfig_GetNumberOfEntries(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_GetNumberOfGroups(_swigobj,_swigarg0) (_swigobj->GetNumberOfGroups(_swigarg0)) -static PyObject *_wrap_wxConfig_GetNumberOfGroups(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxConfig * _arg0; - bool _arg1 = FALSE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_GetNumberOfGroups",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNumberOfGroups. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxConfig_GetNumberOfGroups(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxConfig_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetPath",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetPath. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_GetPath(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxConfig_GetVendorName(_swigobj) (_swigobj->GetVendorName()) -static PyObject *_wrap_wxConfig_GetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetVendorName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetVendorName. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_GetVendorName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxConfig_HasEntry(_swigobj,_swigarg0) (_swigobj->HasEntry(_swigarg0)) -static PyObject *_wrap_wxConfig_HasEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_HasEntry",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_HasEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_HasEntry(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_HasGroup(_swigobj,_swigarg0) (_swigobj->HasGroup(_swigarg0)) -static PyObject *_wrap_wxConfig_HasGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_HasGroup",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_HasGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_HasGroup(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_IsExpandingEnvVars(_swigobj) (_swigobj->IsExpandingEnvVars()) -static PyObject *_wrap_wxConfig_IsExpandingEnvVars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_IsExpandingEnvVars",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_IsExpandingEnvVars. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_IsExpandingEnvVars(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_IsRecordingDefaults(_swigobj) (_swigobj->IsRecordingDefaults()) -static PyObject *_wrap_wxConfig_IsRecordingDefaults(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_IsRecordingDefaults",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_IsRecordingDefaults. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_IsRecordingDefaults(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_Read(_swigobj,_swigarg0,_swigarg1) (_swigobj->Read(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_Read(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - wxString * _arg1; - wxString * _arg2 = &wxPyEmptyStr; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|O:wxConfig_Read",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Read. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_Read(_arg0,*_arg1,*_arg2)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - delete _result; -} - return _resultobj; -} - -#define wxConfig_ReadInt(_swigobj,_swigarg0,_swigarg1) (_swigobj->Read(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_ReadInt(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxConfig * _arg0; - wxString * _arg1; - long _arg2 = 0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|l:wxConfig_ReadInt",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_ReadInt. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxConfig_ReadInt(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_ReadFloat(_swigobj,_swigarg0,_swigarg1) (_swigobj->Read(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_ReadFloat(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxConfig * _arg0; - wxString * _arg1; - double _arg2 = 0.0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|d:wxConfig_ReadFloat",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_ReadFloat. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxConfig_ReadFloat(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_SetExpandEnvVars(_swigobj,_swigarg0) (_swigobj->SetExpandEnvVars(_swigarg0)) -static PyObject *_wrap_wxConfig_SetExpandEnvVars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - bool _arg1 = TRUE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_SetExpandEnvVars",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_SetExpandEnvVars. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_SetExpandEnvVars(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_SetPath(_swigobj,_swigarg0) (_swigobj->SetPath(_swigarg0)) -static PyObject *_wrap_wxConfig_SetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_SetPath",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_SetPath. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_SetPath(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_SetRecordDefaults(_swigobj,_swigarg0) (_swigobj->SetRecordDefaults(_swigarg0)) -static PyObject *_wrap_wxConfig_SetRecordDefaults(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - bool _arg1 = TRUE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_SetRecordDefaults",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_SetRecordDefaults. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_SetRecordDefaults(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_Write(_swigobj,_swigarg0,_swigarg1) (_swigobj->Write(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_Write(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxConfig_Write",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Write. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_Write(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxConfig_WriteInt(_swigobj,_swigarg0,_swigarg1) (_swigobj->Write(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_WriteInt(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - long _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOl:wxConfig_WriteInt",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_WriteInt. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_WriteInt(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_WriteFloat(_swigobj,_swigarg0,_swigarg1) (_swigobj->Write(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_WriteFloat(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - double _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOd:wxConfig_WriteFloat",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_WriteFloat. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_WriteFloat(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyMethodDef utilscMethods[] = { - { "wxConfig_WriteFloat", _wrap_wxConfig_WriteFloat, 1 }, - { "wxConfig_WriteInt", _wrap_wxConfig_WriteInt, 1 }, - { "wxConfig_Write", _wrap_wxConfig_Write, 1 }, - { "wxConfig_SetRecordDefaults", _wrap_wxConfig_SetRecordDefaults, 1 }, - { "wxConfig_SetPath", _wrap_wxConfig_SetPath, 1 }, - { "wxConfig_SetExpandEnvVars", _wrap_wxConfig_SetExpandEnvVars, 1 }, - { "wxConfig_ReadFloat", _wrap_wxConfig_ReadFloat, 1 }, - { "wxConfig_ReadInt", _wrap_wxConfig_ReadInt, 1 }, - { "wxConfig_Read", _wrap_wxConfig_Read, 1 }, - { "wxConfig_IsRecordingDefaults", _wrap_wxConfig_IsRecordingDefaults, 1 }, - { "wxConfig_IsExpandingEnvVars", _wrap_wxConfig_IsExpandingEnvVars, 1 }, - { "wxConfig_HasGroup", _wrap_wxConfig_HasGroup, 1 }, - { "wxConfig_HasEntry", _wrap_wxConfig_HasEntry, 1 }, - { "wxConfig_GetVendorName", _wrap_wxConfig_GetVendorName, 1 }, - { "wxConfig_GetPath", _wrap_wxConfig_GetPath, 1 }, - { "wxConfig_GetNumberOfGroups", _wrap_wxConfig_GetNumberOfGroups, 1 }, - { "wxConfig_GetNumberOfEntries", _wrap_wxConfig_GetNumberOfEntries, 1 }, - { "wxConfig_GetNextEntry", _wrap_wxConfig_GetNextEntry, 1 }, - { "wxConfig_GetNextGroup", _wrap_wxConfig_GetNextGroup, 1 }, - { "wxConfig_GetFirstEntry", _wrap_wxConfig_GetFirstEntry, 1 }, - { "wxConfig_GetFirstGroup", _wrap_wxConfig_GetFirstGroup, 1 }, - { "wxConfig_GetAppName", _wrap_wxConfig_GetAppName, 1 }, - { "wxConfig_Flush", _wrap_wxConfig_Flush, 1 }, - { "wxConfig_Exists", _wrap_wxConfig_Exists, 1 }, - { "wxConfig_DeleteGroup", _wrap_wxConfig_DeleteGroup, 1 }, - { "wxConfig_DeleteEntry", _wrap_wxConfig_DeleteEntry, 1 }, - { "wxConfig_DeleteAll", _wrap_wxConfig_DeleteAll, 1 }, - { "wxConfig_DontCreateOnDemand", _wrap_wxConfig_DontCreateOnDemand, 1 }, - { "delete_wxConfig", _wrap_delete_wxConfig, 1 }, - { "new_wxConfig", _wrap_new_wxConfig, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initutilsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("utilsc", utilscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxConfig","_class_wxConfig",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxConfig","_wxConfig",0); -} diff --git a/utils/wxPython/src/gtk/utils.py b/utils/wxPython/src/gtk/utils.py deleted file mode 100644 index 321e6ed069..0000000000 --- a/utils/wxPython/src/gtk/utils.py +++ /dev/null @@ -1,111 +0,0 @@ -# This file was created automatically by SWIG. -import utilsc -class wxConfigPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - utilsc.delete_wxConfig(self.this) - def DontCreateOnDemand(self): - val = utilsc.wxConfig_DontCreateOnDemand(self.this) - return val - def DeleteAll(self): - val = utilsc.wxConfig_DeleteAll(self.this) - return val - def DeleteEntry(self,arg0,*args): - val = apply(utilsc.wxConfig_DeleteEntry,(self.this,arg0,)+args) - return val - def DeleteGroup(self,arg0): - val = utilsc.wxConfig_DeleteGroup(self.this,arg0) - return val - def Exists(self,arg0): - val = utilsc.wxConfig_Exists(self.this,arg0) - return val - def Flush(self,*args): - val = apply(utilsc.wxConfig_Flush,(self.this,)+args) - return val - def GetAppName(self): - val = utilsc.wxConfig_GetAppName(self.this) - return val - def GetFirstGroup(self): - val = utilsc.wxConfig_GetFirstGroup(self.this) - return val - def GetFirstEntry(self): - val = utilsc.wxConfig_GetFirstEntry(self.this) - return val - def GetNextGroup(self,arg0): - val = utilsc.wxConfig_GetNextGroup(self.this,arg0) - return val - def GetNextEntry(self,arg0): - val = utilsc.wxConfig_GetNextEntry(self.this,arg0) - return val - def GetNumberOfEntries(self,*args): - val = apply(utilsc.wxConfig_GetNumberOfEntries,(self.this,)+args) - return val - def GetNumberOfGroups(self,*args): - val = apply(utilsc.wxConfig_GetNumberOfGroups,(self.this,)+args) - return val - def GetPath(self): - val = utilsc.wxConfig_GetPath(self.this) - return val - def GetVendorName(self): - val = utilsc.wxConfig_GetVendorName(self.this) - return val - def HasEntry(self,arg0): - val = utilsc.wxConfig_HasEntry(self.this,arg0) - return val - def HasGroup(self,arg0): - val = utilsc.wxConfig_HasGroup(self.this,arg0) - return val - def IsExpandingEnvVars(self): - val = utilsc.wxConfig_IsExpandingEnvVars(self.this) - return val - def IsRecordingDefaults(self): - val = utilsc.wxConfig_IsRecordingDefaults(self.this) - return val - def Read(self,arg0,*args): - val = apply(utilsc.wxConfig_Read,(self.this,arg0,)+args) - return val - def ReadInt(self,arg0,*args): - val = apply(utilsc.wxConfig_ReadInt,(self.this,arg0,)+args) - return val - def ReadFloat(self,arg0,*args): - val = apply(utilsc.wxConfig_ReadFloat,(self.this,arg0,)+args) - return val - def SetExpandEnvVars(self,*args): - val = apply(utilsc.wxConfig_SetExpandEnvVars,(self.this,)+args) - return val - def SetPath(self,arg0): - val = utilsc.wxConfig_SetPath(self.this,arg0) - return val - def SetRecordDefaults(self,*args): - val = apply(utilsc.wxConfig_SetRecordDefaults,(self.this,)+args) - return val - def Write(self,arg0,arg1): - val = utilsc.wxConfig_Write(self.this,arg0,arg1) - return val - def WriteInt(self,arg0,arg1): - val = utilsc.wxConfig_WriteInt(self.this,arg0,arg1) - return val - def WriteFloat(self,arg0,arg1): - val = utilsc.wxConfig_WriteFloat(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxConfig(wxConfigPtr): - def __init__(self,*args) : - self.this = apply(utilsc.new_wxConfig,()+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/windows.cpp b/utils/wxPython/src/gtk/windows.cpp deleted file mode 100644 index dbc72a3634..0000000000 --- a/utils/wxPython/src/gtk/windows.cpp +++ /dev/null @@ -1,5392 +0,0 @@ -/* - * FILE : gtk/windows.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initwindowsc - -#define SWIG_name "windowsc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define wxEvtHandler_ProcessEvent(_swigobj,_swigarg0) (_swigobj->ProcessEvent(_swigarg0)) -static PyObject *_wrap_wxEvtHandler_ProcessEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxEvtHandler * _arg0; - wxEvent * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxEvtHandler_ProcessEvent",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvtHandler_ProcessEvent. Expected _wxEvtHandler_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxEvtHandler_ProcessEvent. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxEvtHandler_ProcessEvent(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void wxEvtHandler_Connect(wxEvtHandler *self,int id,int lastId,int eventType,PyObject * func) { - if (PyCallable_Check(func)) { - self->Connect(id, lastId, eventType, - (wxObjectEventFunction) &wxPyCallback::EventThunker, - new wxPyCallback(func)); - } - } -static PyObject *_wrap_wxEvtHandler_Connect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvtHandler * _arg0; - int _arg1; - int _arg2; - int _arg3; - PyObject * _arg4; - char * _argc0 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siiiO:wxEvtHandler_Connect",&_argc0,&_arg1,&_arg2,&_arg3,&_obj4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvtHandler_Connect. Expected _wxEvtHandler_p."); - return NULL; - } - } -{ - _arg4 = _obj4; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvtHandler_Connect(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxWindowTowxEvtHandler(void *ptr) { - wxWindow *src; - wxEvtHandler *dest; - src = (wxWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "panel"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)new_wxWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_CaptureMouse(_swigobj) (_swigobj->CaptureMouse()) -static PyObject *_wrap_wxWindow_CaptureMouse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_CaptureMouse",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_CaptureMouse. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_CaptureMouse(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Center(_swigobj,_swigarg0) (_swigobj->Center(_swigarg0)) -static PyObject *_wrap_wxWindow_Center(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (wxHORIZONTAL); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxWindow_Center",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Center. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Center(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Centre(_swigobj,_swigarg0) (_swigobj->Centre(_swigarg0)) -static PyObject *_wrap_wxWindow_Centre(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (wxHORIZONTAL); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxWindow_Centre",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Centre. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Centre(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ClientToScreenXY(_swigobj,_swigarg0,_swigarg1) (_swigobj->ClientToScreen(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_ClientToScreenXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int * _arg2; - char * _argc0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxWindow_ClientToScreenXY",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ClientToScreenXY. Expected _wxWindow_p."); - return NULL; - } - } -{ - temp = (int) PyInt_AsLong(_obj1); - _arg1 = &temp; -} -{ - temp0 = (int) PyInt_AsLong(_obj2); - _arg2 = &temp0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ClientToScreenXY(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_Close(_swigobj,_swigarg0) (_swigobj->Close(_swigarg0)) -static PyObject *_wrap_wxWindow_Close(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - int _arg1 = (0); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxWindow_Close",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Close. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Close(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Destroy(_swigobj) (_swigobj->Destroy()) -static PyObject *_wrap_wxWindow_Destroy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Destroy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Destroy. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Destroy(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_DestroyChildren(_swigobj) (_swigobj->DestroyChildren()) -static PyObject *_wrap_wxWindow_DestroyChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_DestroyChildren",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_DestroyChildren. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_DestroyChildren(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxWindow_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Enable. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_FindWindowById(_swigobj,_swigarg0) (_swigobj->FindWindow(_swigarg0)) -static PyObject *_wrap_wxWindow_FindWindowById(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxWindow_FindWindowById",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_FindWindowById. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_FindWindowById(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_FindWindowByName(_swigobj,_swigarg0) (_swigobj->FindWindow(_swigarg0)) -static PyObject *_wrap_wxWindow_FindWindowByName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_FindWindowByName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_FindWindowByName. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_FindWindowByName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_Fit(_swigobj) (_swigobj->Fit()) -static PyObject *_wrap_wxWindow_Fit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Fit",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Fit. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Fit(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_GetBackgroundColour(_swigobj) (_swigobj->GetBackgroundColour()) -static PyObject *_wrap_wxWindow_GetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetBackgroundColour. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxWindow_GetBackgroundColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetCharHeight(_swigobj) (_swigobj->GetCharHeight()) -static PyObject *_wrap_wxWindow_GetCharHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetCharHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetCharHeight. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetCharHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetCharWidth(_swigobj) (_swigobj->GetCharWidth()) -static PyObject *_wrap_wxWindow_GetCharWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetCharWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetCharWidth. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetCharWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetClientSizeTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetClientSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_GetClientSizeTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxWindow_GetClientSizeTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetClientSizeTuple. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetClientSizeTuple(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_GetClientSize(_swigobj) (_swigobj->GetClientSize()) -static PyObject *_wrap_wxWindow_GetClientSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetClientSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetClientSize. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_GetClientSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetConstraints(_swigobj) (_swigobj->GetConstraints()) -static PyObject *_wrap_wxWindow_GetConstraints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutConstraints * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetConstraints",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetConstraints. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutConstraints *)wxWindow_GetConstraints(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxWindow_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetFont. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxWindow_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetForegroundColour(_swigobj) (_swigobj->GetForegroundColour()) -static PyObject *_wrap_wxWindow_GetForegroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetForegroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetForegroundColour. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxWindow_GetForegroundColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetGrandParent(_swigobj) (_swigobj->GetGrandParent()) -static PyObject *_wrap_wxWindow_GetGrandParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetGrandParent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetGrandParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_GetGrandParent(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxWindow_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetId. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxWindow_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetLabel. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxWindow_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxWindow_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxWindow_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetName. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxWindow_GetName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxWindow_GetParent(_swigobj) (_swigobj->GetParent()) -static PyObject *_wrap_wxWindow_GetParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetParent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_GetParent(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetPositionTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_GetPositionTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxWindow_GetPositionTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetPositionTuple. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetPositionTuple(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxWindow_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetPosition. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetRect(_swigobj) (_swigobj->GetRect()) -static PyObject *_wrap_wxWindow_GetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetRect. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxWindow_GetRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetScrollThumb(_swigobj,_swigarg0) (_swigobj->GetScrollThumb(_swigarg0)) -static PyObject *_wrap_wxWindow_GetScrollThumb(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_GetScrollThumb",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetScrollThumb. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetScrollThumb(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetScrollPos(_swigobj,_swigarg0) (_swigobj->GetScrollPos(_swigarg0)) -static PyObject *_wrap_wxWindow_GetScrollPos(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_GetScrollPos",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetScrollPos. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetScrollPos(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetScrollRange(_swigobj,_swigarg0) (_swigobj->GetScrollRange(_swigarg0)) -static PyObject *_wrap_wxWindow_GetScrollRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_GetScrollRange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetScrollRange. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetScrollRange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetSizeTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_GetSizeTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxWindow_GetSizeTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetSizeTuple. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetSizeTuple(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxWindow_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetSize. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_GetTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - int * _arg2; - int temp; - int * _arg3; - int temp0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"sO:wxWindow_GetTextExtent",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetTextExtent. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetTextExtent(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_GetFullTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxWindow_GetFullTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - int * _arg2; - int temp; - int * _arg3; - int temp0; - int * _arg4; - int temp1; - int * _arg5; - int temp2; - wxFont * _arg6 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"sO|s:wxWindow_GetFullTextExtent",&_argc0,&_obj1,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetFullTextExtent. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxWindow_GetFullTextExtent. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetFullTextExtent(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg5)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxWindow_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetTitle. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxWindow_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxWindow_GetWindowStyleFlag(_swigobj) (_swigobj->GetWindowStyleFlag()) -static PyObject *_wrap_wxWindow_GetWindowStyleFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetWindowStyleFlag",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetWindowStyleFlag. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxWindow_GetWindowStyleFlag(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxWindow_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxWindow_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_InitDialog",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_InitDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_InitDialog(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_IsEnabled(_swigobj) (_swigobj->IsEnabled()) -static PyObject *_wrap_wxWindow_IsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_IsEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsEnabled. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_IsRetained(_swigobj) (_swigobj->IsRetained()) -static PyObject *_wrap_wxWindow_IsRetained(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_IsRetained",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsRetained. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsRetained(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_IsShown(_swigobj) (_swigobj->IsShown()) -static PyObject *_wrap_wxWindow_IsShown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_IsShown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsShown. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsShown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Layout(_swigobj) (_swigobj->Layout()) -static PyObject *_wrap_wxWindow_Layout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Layout",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Layout. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Layout(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_LoadFromResource(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->LoadFromResource(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_LoadFromResource(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxWindow * _arg1; - wxString * _arg2; - wxResourceTable * _arg3 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|s:wxWindow_LoadFromResource",&_argc0,&_argc1,&_obj2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_LoadFromResource. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_LoadFromResource. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxWindow_LoadFromResource. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_LoadFromResource(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxWindow_Lower(_swigobj) (_swigobj->Lower()) -static PyObject *_wrap_wxWindow_Lower(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Lower",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Lower. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Lower(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_MakeModal(_swigobj,_swigarg0) (_swigobj->MakeModal(_swigarg0)) -static PyObject *_wrap_wxWindow_MakeModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_MakeModal",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_MakeModal. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_MakeModal(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_MoveXY(_swigobj,_swigarg0,_swigarg1) (_swigobj->Move(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_MoveXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxWindow_MoveXY",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_MoveXY. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_MoveXY(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Move(_swigobj,_swigarg0) (_swigobj->Move(_swigarg0)) -static PyObject *_wrap_wxWindow_Move(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_Move",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Move. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_Move. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Move(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_PopupMenu(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PopupMenu(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_PopupMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxMenu * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxWindow_PopupMenu",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_PopupMenu. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_PopupMenu. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_PopupMenu(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Raise(_swigobj) (_swigobj->Raise()) -static PyObject *_wrap_wxWindow_Raise(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Raise",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Raise. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Raise(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Refresh(_swigobj,_swigarg0,_swigarg1) (_swigobj->Refresh(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_Refresh(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1 = (1); - wxRect * _arg2 = NULL; - char * _argc0 = 0; - int tempbool1; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|is:wxWindow_Refresh",&_argc0,&tempbool1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Refresh. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxWindow_Refresh. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Refresh(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ReleaseMouse(_swigobj) (_swigobj->ReleaseMouse()) -static PyObject *_wrap_wxWindow_ReleaseMouse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_ReleaseMouse",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ReleaseMouse. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ReleaseMouse(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ScreenToClientXY(_swigobj,_swigarg0,_swigarg1) (_swigobj->ScreenToClient(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_ScreenToClientXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int * _arg2; - char * _argc0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxWindow_ScreenToClientXY",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScreenToClientXY. Expected _wxWindow_p."); - return NULL; - } - } -{ - temp = (int) PyInt_AsLong(_obj1); - _arg1 = &temp; -} -{ - temp0 = (int) PyInt_AsLong(_obj2); - _arg2 = &temp0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ScreenToClientXY(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_ScrollWindow(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->ScrollWindow(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_ScrollWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - wxRect * _arg3 = NULL; - char * _argc0 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii|s:wxWindow_ScrollWindow",&_argc0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScrollWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxWindow_ScrollWindow. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ScrollWindow(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetAcceleratorTable(_swigobj,_swigarg0) (_swigobj->SetAcceleratorTable(_swigarg0)) -static PyObject *_wrap_wxWindow_SetAcceleratorTable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxAcceleratorTable * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetAcceleratorTable",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetAcceleratorTable. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxAcceleratorTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetAcceleratorTable. Expected _wxAcceleratorTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetAcceleratorTable(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetAutoLayout(_swigobj,_swigarg0) (_swigobj->SetAutoLayout(_swigarg0)) -static PyObject *_wrap_wxWindow_SetAutoLayout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_SetAutoLayout",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetAutoLayout. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetAutoLayout(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxWindow_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetBackgroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetConstraints(_swigobj,_swigarg0) (_swigobj->SetConstraints(_swigarg0)) -static PyObject *_wrap_wxWindow_SetConstraints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxLayoutConstraints * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetConstraints",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetConstraints. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetConstraints. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetConstraints(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetFocus(_swigobj) (_swigobj->SetFocus()) -static PyObject *_wrap_wxWindow_SetFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_SetFocus",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetFocus. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetFocus(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxWindow_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetFont. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetForegroundColour(_swigobj,_swigarg0) (_swigobj->SetForegroundColour(_swigarg0)) -static PyObject *_wrap_wxWindow_SetForegroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetForegroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetForegroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetForegroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetForegroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetId(_swigobj,_swigarg0) (_swigobj->SetId(_swigarg0)) -static PyObject *_wrap_wxWindow_SetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_SetId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetId. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetName(_swigobj,_swigarg0) (_swigobj->SetName(_swigarg0)) -static PyObject *_wrap_wxWindow_SetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_SetName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetName. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_SetScrollbar(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetScrollbar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxWindow_SetScrollbar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - bool _arg5 = (1); - char * _argc0 = 0; - int tempbool5; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|i:wxWindow_SetScrollbar",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetScrollbar. Expected _wxWindow_p."); - return NULL; - } - } - _arg5 = (bool ) tempbool5; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetScrollbar(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetScrollPos(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetScrollPos(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_SetScrollPos(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"sii|i:wxWindow_SetScrollPos",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetScrollPos. Expected _wxWindow_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetScrollPos(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetDimensions(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetSize(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxWindow_SetDimensions(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - int _arg5 = (wxSIZE_AUTO); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|i:wxWindow_SetDimensions",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetDimensions. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetDimensions(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxWindow_SetSize(wxWindow *self,const wxSize & size) { - self->SetSize(size.x, size.y); - } -static PyObject *_wrap_wxWindow_SetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxWindow_SetPosition(wxWindow *self,const wxPoint & pos) { - self->SetSize(pos.x, pos.y, -1, -1); - } -static PyObject *_wrap_wxWindow_SetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetPosition",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetPosition. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetPosition. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetPosition(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetSizeHints(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->SetSizeHints(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxWindow_SetSizeHints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = -1; - int _arg2 = -1; - int _arg3 = -1; - int _arg4 = -1; - int _arg5 = -1; - int _arg6 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|iiiiii:wxWindow_SetSizeHints",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetSizeHints. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetSizeHints(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetClientSizeWH(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetClientSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_SetClientSizeWH(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxWindow_SetClientSizeWH",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetClientSizeWH. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetClientSizeWH(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetClientSize(_swigobj,_swigarg0) (_swigobj->SetClientSize(_swigarg0)) -static PyObject *_wrap_wxWindow_SetClientSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetClientSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetClientSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetClientSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetClientSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetCursor(_swigobj,_swigarg0) (_swigobj->SetCursor(_swigarg0)) -static PyObject *_wrap_wxWindow_SetCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxCursor * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetCursor",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetCursor. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetCursor(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxWindow_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetTitle. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_Show(_swigobj,_swigarg0) (_swigobj->Show(_swigarg0)) -static PyObject *_wrap_wxWindow_Show(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_Show",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Show. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Show(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_TransferDataFromWindow(_swigobj) (_swigobj->TransferDataFromWindow()) -static PyObject *_wrap_wxWindow_TransferDataFromWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_TransferDataFromWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_TransferDataFromWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_TransferDataFromWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_TransferDataToWindow(_swigobj) (_swigobj->TransferDataToWindow()) -static PyObject *_wrap_wxWindow_TransferDataToWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_TransferDataToWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_TransferDataToWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_TransferDataToWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Validate(_swigobj) (_swigobj->Validate()) -static PyObject *_wrap_wxWindow_Validate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Validate",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Validate. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Validate(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_WarpPointer(_swigobj,_swigarg0,_swigarg1) (_swigobj->WarpPointer(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_WarpPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxWindow_WarpPointer",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_WarpPointer. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_WarpPointer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ConvertDialogPointToPixels(_swigobj,_swigarg0) (_swigobj->ConvertDialogToPixels(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertDialogPointToPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertDialogPointToPixels",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogPointToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertDialogPointToPixels. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_ConvertDialogPointToPixels(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ConvertDialogSizeToPixels(_swigobj,_swigarg0) (_swigobj->ConvertDialogToPixels(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertDialogSizeToPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertDialogSizeToPixels",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogSizeToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertDialogSizeToPixels. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_ConvertDialogSizeToPixels(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ConvertPixelPointToDialog(_swigobj,_swigarg0) (_swigobj->ConvertPixelsToDialog(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertPixelPointToDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertPixelPointToDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelPointToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertPixelPointToDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_ConvertPixelPointToDialog(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ConvertPixelSizeToDialog(_swigobj,_swigarg0) (_swigobj->ConvertPixelsToDialog(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertPixelSizeToDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertPixelSizeToDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelSizeToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertPixelSizeToDialog. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_ConvertPixelSizeToDialog(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_SetToolTipString(_swigobj,_swigarg0) (_swigobj->SetToolTip(_swigarg0)) -static PyObject *_wrap_wxWindow_SetToolTipString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_SetToolTipString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetToolTipString. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetToolTipString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_SetToolTip(_swigobj,_swigarg0) (_swigobj->SetToolTip(_swigarg0)) -static PyObject *_wrap_wxWindow_SetToolTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxToolTip * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetToolTip",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetToolTip. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetToolTip. Expected _wxToolTip_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetToolTip(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_GetToolTip(_swigobj) (_swigobj->GetToolTip()) -static PyObject *_wrap_wxWindow_GetToolTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolTip * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetToolTip",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetToolTip. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolTip *)wxWindow_GetToolTip(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPanelTowxWindow(void *ptr) { - wxPanel *src; - wxWindow *dest; - src = (wxPanel *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPanelTowxEvtHandler(void *ptr) { - wxPanel *src; - wxEvtHandler *dest; - src = (wxPanel *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPanel(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxPanel(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxPanel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxTAB_TRAVERSAL); - char * _arg5 = "panel"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxPanel",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPanel. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPanel. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxPanel. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPanel *)new_wxPanel(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPanel_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPanel_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxPanel_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPanel_InitDialog",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPanel_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPanel_InitDialog. Expected _wxPanel_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPanel_InitDialog(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxDialogTowxPanel(void *ptr) { - wxDialog *src; - wxPanel *dest; - src = (wxDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxDialogTowxWindow(void *ptr) { - wxDialog *src; - wxWindow *dest; - src = (wxDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxDialogTowxEvtHandler(void *ptr) { - wxDialog *src; - wxEvtHandler *dest; - src = (wxDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_DIALOG_STYLE); - char * _arg6 = "dialogBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxDialog",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxDialog. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxDialog. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDialog *)new_wxDialog(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxDialog_Centre(_swigobj,_swigarg0) (_swigobj->Centre(_swigarg0)) -static PyObject *_wrap_wxDialog_Centre(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - int _arg1 = (wxBOTH); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxDialog_Centre",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_Centre. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_Centre(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_EndModal(_swigobj,_swigarg0) (_swigobj->EndModal(_swigarg0)) -static PyObject *_wrap_wxDialog_EndModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_EndModal",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_EndModal. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_EndModal(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxDialog_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_GetTitle. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxDialog_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxDialog_Iconize(_swigobj,_swigarg0) (_swigobj->Iconize(_swigarg0)) -static PyObject *_wrap_wxDialog_Iconize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_Iconize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_Iconize. Expected _wxDialog_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_Iconize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_IsIconized(_swigobj) (_swigobj->IsIconized()) -static PyObject *_wrap_wxDialog_IsIconized(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_IsIconized",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_IsIconized. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDialog_IsIconized(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_SetModal(_swigobj,_swigarg0) (_swigobj->SetModal(_swigarg0)) -static PyObject *_wrap_wxDialog_SetModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_SetModal",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_SetModal. Expected _wxDialog_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_SetModal(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_IsModal(_swigobj) (_swigobj->IsModal()) -static PyObject *_wrap_wxDialog_IsModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_IsModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_IsModal. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDialog_IsModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxDialog_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDialog_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_SetTitle. Expected _wxDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDialog_Show(_swigobj,_swigarg0) (_swigobj->Show(_swigarg0)) -static PyObject *_wrap_wxDialog_Show(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDialog * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_Show",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_Show. Expected _wxDialog_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDialog_Show(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_ShowModal. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_GetReturnCode(_swigobj) (_swigobj->GetReturnCode()) -static PyObject *_wrap_wxDialog_GetReturnCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_GetReturnCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_GetReturnCode. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDialog_GetReturnCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_SetReturnCode(_swigobj,_swigarg0) (_swigobj->SetReturnCode(_swigarg0)) -static PyObject *_wrap_wxDialog_SetReturnCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_SetReturnCode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_SetReturnCode. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_SetReturnCode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxScrolledWindowTowxWindow(void *ptr) { - wxScrolledWindow *src; - wxWindow *dest; - src = (wxScrolledWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxScrolledWindowTowxEvtHandler(void *ptr) { - wxScrolledWindow *src; - wxEvtHandler *dest; - src = (wxScrolledWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxScrolledWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxScrolledWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxScrolledWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxHSCROLL)|(wxVSCROLL); - char * _arg5 = "scrolledWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|issls:new_wxScrolledWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrolledWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrolledWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxScrolledWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrolledWindow *)new_wxScrolledWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrolledWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxScrolledWindow_EnableScrolling(_swigobj,_swigarg0,_swigarg1) (_swigobj->EnableScrolling(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_EnableScrolling(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - bool _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool1; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxScrolledWindow_EnableScrolling",&_argc0,&tempbool1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_EnableScrolling. Expected _wxScrolledWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_EnableScrolling(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_GetScrollPixelsPerUnit(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetScrollPixelsPerUnit(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_GetScrollPixelsPerUnit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_GetScrollPixelsPerUnit",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_GetScrollPixelsPerUnit. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_GetScrollPixelsPerUnit(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxScrolledWindow_GetVirtualSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetVirtualSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_GetVirtualSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_GetVirtualSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_GetVirtualSize. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_GetVirtualSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxScrolledWindow_IsRetained(_swigobj) (_swigobj->IsRetained()) -static PyObject *_wrap_wxScrolledWindow_IsRetained(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScrolledWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_IsRetained",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_IsRetained. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScrolledWindow_IsRetained(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrolledWindow_PrepareDC(_swigobj,_swigarg0) (_swigobj->PrepareDC(_swigarg0)) -static PyObject *_wrap_wxScrolledWindow_PrepareDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - wxDC * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxScrolledWindow_PrepareDC",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_PrepareDC. Expected _wxScrolledWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxScrolledWindow_PrepareDC. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_PrepareDC(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_Scroll(_swigobj,_swigarg0,_swigarg1) (_swigobj->Scroll(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_Scroll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxScrolledWindow_Scroll",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_Scroll. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_Scroll(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_SetScrollbars(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->SetScrollbars(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxScrolledWindow_SetScrollbars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - int _arg5 = 0; - int _arg6 = 0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|ii:wxScrolledWindow_SetScrollbars",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_SetScrollbars. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_SetScrollbars(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_ViewStart(_swigobj,_swigarg0,_swigarg1) (_swigobj->ViewStart(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_ViewStart(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_ViewStart",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_ViewStart. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_ViewStart(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static void *SwigwxMenuTowxEvtHandler(void *ptr) { - wxMenu *src; - wxEvtHandler *dest; - src = (wxMenu *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMenu(_swigarg0) (new wxMenu(_swigarg0)) -static PyObject *_wrap_new_wxMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxString * _arg0 = &wxPyEmptyStr; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxMenu",&_obj0)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenu *)new_wxMenu(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define wxMenu_Append(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->Append(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxMenu_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - wxString * _arg3 = &wxPyEmptyStr; - int _arg4 = (0); - char * _argc0 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO|Oi:wxMenu_Append",&_argc0,&_arg1,&_obj2,&_obj3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Append. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Append(_arg0,_arg1,*_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxMenu_AppendMenu(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->Append(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxMenu_AppendMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - wxMenu * _arg3; - wxString * _arg4 = &wxPyEmptyStr; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siOs|O:wxMenu_AppendMenu",&_argc0,&_arg1,&_obj2,&_argc3,&_obj4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_AppendMenu. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxMenu_AppendMenu. Expected _wxMenu_p."); - return NULL; - } - } - if (_obj4) -{ - if (!PyString_Check(_obj4)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg4 = new wxString(PyString_AsString(_obj4), PyString_Size(_obj4)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_AppendMenu(_arg0,_arg1,*_arg2,_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj4) - delete _arg4; -} - return _resultobj; -} - -#define wxMenu_AppendSeparator(_swigobj) (_swigobj->AppendSeparator()) -static PyObject *_wrap_wxMenu_AppendSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenu_AppendSeparator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_AppendSeparator. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_AppendSeparator(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_Break(_swigobj) (_swigobj->Break()) -static PyObject *_wrap_wxMenu_Break(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenu_Break",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Break. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Break(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_Check(_swigobj,_swigarg0,_swigarg1) (_swigobj->Check(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenu_Check",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Check. Expected _wxMenu_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Check(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_Enable(_swigobj,_swigarg0,_swigarg1) (_swigobj->Enable(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenu_Enable",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Enable. Expected _wxMenu_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Enable(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_FindItem(_swigobj,_swigarg0) (_swigobj->FindItem(_swigarg0)) -static PyObject *_wrap_wxMenu_FindItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenu * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenu_FindItem",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_FindItem. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenu_FindItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenu_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxMenu_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenu_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_GetTitle. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenu_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenu_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxMenu_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenu_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_SetTitle. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenu_FindItemForId(_swigobj,_swigarg0) (_swigobj->FindItemForId(_swigarg0)) -static PyObject *_wrap_wxMenu_FindItemForId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_FindItemForId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_FindItemForId. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuItem *)wxMenu_FindItemForId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenu_GetHelpString(_swigobj,_swigarg0) (_swigobj->GetHelpString(_swigarg0)) -static PyObject *_wrap_wxMenu_GetHelpString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_GetHelpString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_GetHelpString. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenu_GetHelpString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenu_GetLabel(_swigobj,_swigarg0) (_swigobj->GetLabel(_swigarg0)) -static PyObject *_wrap_wxMenu_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_GetLabel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_GetLabel. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenu_GetLabel(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenu_SetHelpString(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetHelpString(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_SetHelpString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenu_SetHelpString",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_SetHelpString. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_SetHelpString(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenu_IsChecked(_swigobj,_swigarg0) (_swigobj->IsChecked(_swigarg0)) -static PyObject *_wrap_wxMenu_IsChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_IsChecked",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_IsChecked. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenu_IsChecked(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenu_IsEnabled(_swigobj,_swigarg0) (_swigobj->IsEnabled(_swigarg0)) -static PyObject *_wrap_wxMenu_IsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_IsEnabled",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_IsEnabled. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenu_IsEnabled(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenu_SetLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenu_SetLabel",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_SetLabel. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_SetLabel(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxPyMenuTowxMenu(void *ptr) { - wxPyMenu *src; - wxMenu *dest; - src = (wxPyMenu *) ptr; - dest = (wxMenu *) src; - return (void *) dest; -} - -static void *SwigwxPyMenuTowxEvtHandler(void *ptr) { - wxPyMenu *src; - wxEvtHandler *dest; - src = (wxPyMenu *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPyMenu(_swigarg0,_swigarg1) (new wxPyMenu(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPyMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyMenu * _result; - wxString * _arg0 = &wxPyEmptyStr; - PyObject * _arg1 = NULL; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|OO:new_wxPyMenu",&_obj0,&_obj1)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyMenu *)new_wxPyMenu(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxPyMenu(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPyMenu",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyMenu. Expected _wxPyMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyMenu(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMenuBarTowxEvtHandler(void *ptr) { - wxMenuBar *src; - wxEvtHandler *dest; - src = (wxMenuBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMenuBar() (new wxMenuBar()) -static PyObject *_wrap_new_wxMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxMenuBar")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuBar *)new_wxMenuBar(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuBar_Append(_swigobj,_swigarg0,_swigarg1) (_swigobj->Append(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - wxMenu * _arg1; - wxString * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxMenuBar_Append",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Append. Expected _wxMenuBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuBar_Append. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_Append(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_Check(_swigobj,_swigarg0,_swigarg1) (_swigobj->Check(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenuBar_Check",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Check. Expected _wxMenuBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_Check(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuBar_Checked(_swigobj,_swigarg0) (_swigobj->Checked(_swigarg0)) -static PyObject *_wrap_wxMenuBar_Checked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_Checked",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Checked. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuBar_Checked(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuBar_Enable(_swigobj,_swigarg0,_swigarg1) (_swigobj->Enable(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenuBar_Enable",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Enable. Expected _wxMenuBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_Enable(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuBar_Enabled(_swigobj,_swigarg0) (_swigobj->Enabled(_swigarg0)) -static PyObject *_wrap_wxMenuBar_Enabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_Enabled",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Enabled. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuBar_Enabled(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuBar_FindMenuItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->FindMenuItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_FindMenuItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuBar * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxMenuBar_FindMenuItem",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_FindMenuItem. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuBar_FindMenuItem(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_FindItemForId(_swigobj,_swigarg0) (_swigobj->FindItemForId(_swigarg0)) -static PyObject *_wrap_wxMenuBar_FindItemForId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_FindItemForId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_FindItemForId. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuItem *)wxMenuBar_FindItemForId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuBar_GetMenuCount(_swigobj) (_swigobj->GetMenuCount()) -static PyObject *_wrap_wxMenuBar_GetMenuCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuBar_GetMenuCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetMenuCount. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuBar_GetMenuCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuBar_GetMenu(_swigobj,_swigarg0) (_swigobj->GetMenu(_swigarg0)) -static PyObject *_wrap_wxMenuBar_GetMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_GetMenu",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetMenu. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenu *)wxMenuBar_GetMenu(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxMenuItem() (new wxMenuItem()) -static PyObject *_wrap_new_wxMenuItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxMenuItem")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuItem *)new_wxMenuItem(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_IsSeparator(_swigobj) (_swigobj->IsSeparator()) -static PyObject *_wrap_wxMenuItem_IsSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsSeparator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsSeparator. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsSeparator(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_IsEnabled(_swigobj) (_swigobj->IsEnabled()) -static PyObject *_wrap_wxMenuItem_IsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsEnabled. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_IsChecked(_swigobj) (_swigobj->IsChecked()) -static PyObject *_wrap_wxMenuItem_IsChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsChecked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsChecked. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsChecked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_IsCheckable(_swigobj) (_swigobj->IsCheckable()) -static PyObject *_wrap_wxMenuItem_IsCheckable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsCheckable",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsCheckable. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsCheckable(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxMenuItem_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetId. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuItem_GetId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_GetSubMenu(_swigobj) (_swigobj->GetSubMenu()) -static PyObject *_wrap_wxMenuItem_GetSubMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetSubMenu",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetSubMenu. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenu *)wxMenuItem_GetSubMenu(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_SetName(_swigobj,_swigarg0) (_swigobj->SetName(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenuItem_SetName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetName. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenuItem_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxMenuItem_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetName. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuItem_GetName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuItem_GetHelp(_swigobj) (_swigobj->GetHelp()) -static PyObject *_wrap_wxMenuItem_GetHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetHelp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetHelp. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuItem_GetHelp(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuItem_SetHelp(_swigobj,_swigarg0) (_swigobj->SetHelp(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenuItem_SetHelp",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetHelp. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetHelp(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenuItem_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxMenuItem_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMenuItem_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_Enable. Expected _wxMenuItem_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_Check(_swigobj,_swigarg0) (_swigobj->Check(_swigarg0)) -static PyObject *_wrap_wxMenuItem_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMenuItem_Check",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_Check. Expected _wxMenuItem_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_Check(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef windowscMethods[] = { - { "wxMenuItem_Check", _wrap_wxMenuItem_Check, 1 }, - { "wxMenuItem_Enable", _wrap_wxMenuItem_Enable, 1 }, - { "wxMenuItem_SetHelp", _wrap_wxMenuItem_SetHelp, 1 }, - { "wxMenuItem_GetHelp", _wrap_wxMenuItem_GetHelp, 1 }, - { "wxMenuItem_GetName", _wrap_wxMenuItem_GetName, 1 }, - { "wxMenuItem_SetName", _wrap_wxMenuItem_SetName, 1 }, - { "wxMenuItem_GetSubMenu", _wrap_wxMenuItem_GetSubMenu, 1 }, - { "wxMenuItem_GetId", _wrap_wxMenuItem_GetId, 1 }, - { "wxMenuItem_IsCheckable", _wrap_wxMenuItem_IsCheckable, 1 }, - { "wxMenuItem_IsChecked", _wrap_wxMenuItem_IsChecked, 1 }, - { "wxMenuItem_IsEnabled", _wrap_wxMenuItem_IsEnabled, 1 }, - { "wxMenuItem_IsSeparator", _wrap_wxMenuItem_IsSeparator, 1 }, - { "new_wxMenuItem", _wrap_new_wxMenuItem, 1 }, - { "wxMenuBar_GetMenu", _wrap_wxMenuBar_GetMenu, 1 }, - { "wxMenuBar_GetMenuCount", _wrap_wxMenuBar_GetMenuCount, 1 }, - { "wxMenuBar_FindItemForId", _wrap_wxMenuBar_FindItemForId, 1 }, - { "wxMenuBar_FindMenuItem", _wrap_wxMenuBar_FindMenuItem, 1 }, - { "wxMenuBar_Enabled", _wrap_wxMenuBar_Enabled, 1 }, - { "wxMenuBar_Enable", _wrap_wxMenuBar_Enable, 1 }, - { "wxMenuBar_Checked", _wrap_wxMenuBar_Checked, 1 }, - { "wxMenuBar_Check", _wrap_wxMenuBar_Check, 1 }, - { "wxMenuBar_Append", _wrap_wxMenuBar_Append, 1 }, - { "new_wxMenuBar", _wrap_new_wxMenuBar, 1 }, - { "delete_wxPyMenu", _wrap_delete_wxPyMenu, 1 }, - { "new_wxPyMenu", _wrap_new_wxPyMenu, 1 }, - { "wxMenu_SetLabel", _wrap_wxMenu_SetLabel, 1 }, - { "wxMenu_IsEnabled", _wrap_wxMenu_IsEnabled, 1 }, - { "wxMenu_IsChecked", _wrap_wxMenu_IsChecked, 1 }, - { "wxMenu_SetHelpString", _wrap_wxMenu_SetHelpString, 1 }, - { "wxMenu_GetLabel", _wrap_wxMenu_GetLabel, 1 }, - { "wxMenu_GetHelpString", _wrap_wxMenu_GetHelpString, 1 }, - { "wxMenu_FindItemForId", _wrap_wxMenu_FindItemForId, 1 }, - { "wxMenu_SetTitle", _wrap_wxMenu_SetTitle, 1 }, - { "wxMenu_GetTitle", _wrap_wxMenu_GetTitle, 1 }, - { "wxMenu_FindItem", _wrap_wxMenu_FindItem, 1 }, - { "wxMenu_Enable", _wrap_wxMenu_Enable, 1 }, - { "wxMenu_Check", _wrap_wxMenu_Check, 1 }, - { "wxMenu_Break", _wrap_wxMenu_Break, 1 }, - { "wxMenu_AppendSeparator", _wrap_wxMenu_AppendSeparator, 1 }, - { "wxMenu_AppendMenu", _wrap_wxMenu_AppendMenu, 1 }, - { "wxMenu_Append", _wrap_wxMenu_Append, 1 }, - { "new_wxMenu", _wrap_new_wxMenu, 1 }, - { "wxScrolledWindow_ViewStart", _wrap_wxScrolledWindow_ViewStart, 1 }, - { "wxScrolledWindow_SetScrollbars", _wrap_wxScrolledWindow_SetScrollbars, 1 }, - { "wxScrolledWindow_Scroll", _wrap_wxScrolledWindow_Scroll, 1 }, - { "wxScrolledWindow_PrepareDC", _wrap_wxScrolledWindow_PrepareDC, 1 }, - { "wxScrolledWindow_IsRetained", _wrap_wxScrolledWindow_IsRetained, 1 }, - { "wxScrolledWindow_GetVirtualSize", _wrap_wxScrolledWindow_GetVirtualSize, 1 }, - { "wxScrolledWindow_GetScrollPixelsPerUnit", _wrap_wxScrolledWindow_GetScrollPixelsPerUnit, 1 }, - { "wxScrolledWindow_EnableScrolling", _wrap_wxScrolledWindow_EnableScrolling, 1 }, - { "new_wxScrolledWindow", _wrap_new_wxScrolledWindow, 1 }, - { "wxDialog_SetReturnCode", _wrap_wxDialog_SetReturnCode, 1 }, - { "wxDialog_GetReturnCode", _wrap_wxDialog_GetReturnCode, 1 }, - { "wxDialog_ShowModal", _wrap_wxDialog_ShowModal, 1 }, - { "wxDialog_Show", _wrap_wxDialog_Show, 1 }, - { "wxDialog_SetTitle", _wrap_wxDialog_SetTitle, 1 }, - { "wxDialog_IsModal", _wrap_wxDialog_IsModal, 1 }, - { "wxDialog_SetModal", _wrap_wxDialog_SetModal, 1 }, - { "wxDialog_IsIconized", _wrap_wxDialog_IsIconized, 1 }, - { "wxDialog_Iconize", _wrap_wxDialog_Iconize, 1 }, - { "wxDialog_GetTitle", _wrap_wxDialog_GetTitle, 1 }, - { "wxDialog_EndModal", _wrap_wxDialog_EndModal, 1 }, - { "wxDialog_Centre", _wrap_wxDialog_Centre, 1 }, - { "new_wxDialog", _wrap_new_wxDialog, 1 }, - { "wxPanel_InitDialog", _wrap_wxPanel_InitDialog, 1 }, - { "new_wxPanel", _wrap_new_wxPanel, 1 }, - { "wxWindow_GetToolTip", _wrap_wxWindow_GetToolTip, 1 }, - { "wxWindow_SetToolTip", _wrap_wxWindow_SetToolTip, 1 }, - { "wxWindow_SetToolTipString", _wrap_wxWindow_SetToolTipString, 1 }, - { "wxWindow_ConvertPixelSizeToDialog", _wrap_wxWindow_ConvertPixelSizeToDialog, 1 }, - { "wxWindow_ConvertPixelPointToDialog", _wrap_wxWindow_ConvertPixelPointToDialog, 1 }, - { "wxWindow_DLG_SZE", _wrap_wxWindow_ConvertDialogSizeToPixels, 1 }, - { "wxWindow_DLG_PNT", _wrap_wxWindow_ConvertDialogPointToPixels, 1 }, - { "wxWindow_ConvertDialogSizeToPixels", _wrap_wxWindow_ConvertDialogSizeToPixels, 1 }, - { "wxWindow_ConvertDialogPointToPixels", _wrap_wxWindow_ConvertDialogPointToPixels, 1 }, - { "wxWindow_WarpPointer", _wrap_wxWindow_WarpPointer, 1 }, - { "wxWindow_Validate", _wrap_wxWindow_Validate, 1 }, - { "wxWindow_TransferDataToWindow", _wrap_wxWindow_TransferDataToWindow, 1 }, - { "wxWindow_TransferDataFromWindow", _wrap_wxWindow_TransferDataFromWindow, 1 }, - { "wxWindow_Show", _wrap_wxWindow_Show, 1 }, - { "wxWindow_SetTitle", _wrap_wxWindow_SetTitle, 1 }, - { "wxWindow_SetCursor", _wrap_wxWindow_SetCursor, 1 }, - { "wxWindow_SetClientSize", _wrap_wxWindow_SetClientSize, 1 }, - { "wxWindow_SetClientSizeWH", _wrap_wxWindow_SetClientSizeWH, 1 }, - { "wxWindow_SetSizeHints", _wrap_wxWindow_SetSizeHints, 1 }, - { "wxWindow_SetPosition", _wrap_wxWindow_SetPosition, 1 }, - { "wxWindow_SetSize", _wrap_wxWindow_SetSize, 1 }, - { "wxWindow_SetDimensions", _wrap_wxWindow_SetDimensions, 1 }, - { "wxWindow_SetScrollPos", _wrap_wxWindow_SetScrollPos, 1 }, - { "wxWindow_SetScrollbar", _wrap_wxWindow_SetScrollbar, 1 }, - { "wxWindow_SetName", _wrap_wxWindow_SetName, 1 }, - { "wxWindow_SetId", _wrap_wxWindow_SetId, 1 }, - { "wxWindow_SetForegroundColour", _wrap_wxWindow_SetForegroundColour, 1 }, - { "wxWindow_SetFont", _wrap_wxWindow_SetFont, 1 }, - { "wxWindow_SetFocus", _wrap_wxWindow_SetFocus, 1 }, - { "wxWindow_SetConstraints", _wrap_wxWindow_SetConstraints, 1 }, - { "wxWindow_SetBackgroundColour", _wrap_wxWindow_SetBackgroundColour, 1 }, - { "wxWindow_SetAutoLayout", _wrap_wxWindow_SetAutoLayout, 1 }, - { "wxWindow_SetAcceleratorTable", _wrap_wxWindow_SetAcceleratorTable, 1 }, - { "wxWindow_ScrollWindow", _wrap_wxWindow_ScrollWindow, 1 }, - { "wxWindow_ScreenToClientXY", _wrap_wxWindow_ScreenToClientXY, 1 }, - { "wxWindow_ReleaseMouse", _wrap_wxWindow_ReleaseMouse, 1 }, - { "wxWindow_Refresh", _wrap_wxWindow_Refresh, 1 }, - { "wxWindow_Raise", _wrap_wxWindow_Raise, 1 }, - { "wxWindow_PopupMenu", _wrap_wxWindow_PopupMenu, 1 }, - { "wxWindow_Move", _wrap_wxWindow_Move, 1 }, - { "wxWindow_MoveXY", _wrap_wxWindow_MoveXY, 1 }, - { "wxWindow_MakeModal", _wrap_wxWindow_MakeModal, 1 }, - { "wxWindow_Lower", _wrap_wxWindow_Lower, 1 }, - { "wxWindow_LoadFromResource", _wrap_wxWindow_LoadFromResource, 1 }, - { "wxWindow_Layout", _wrap_wxWindow_Layout, 1 }, - { "wxWindow_IsShown", _wrap_wxWindow_IsShown, 1 }, - { "wxWindow_IsRetained", _wrap_wxWindow_IsRetained, 1 }, - { "wxWindow_IsEnabled", _wrap_wxWindow_IsEnabled, 1 }, - { "wxWindow_InitDialog", _wrap_wxWindow_InitDialog, 1 }, - { "wxWindow_GetWindowStyleFlag", _wrap_wxWindow_GetWindowStyleFlag, 1 }, - { "wxWindow_GetTitle", _wrap_wxWindow_GetTitle, 1 }, - { "wxWindow_GetFullTextExtent", _wrap_wxWindow_GetFullTextExtent, 1 }, - { "wxWindow_GetTextExtent", _wrap_wxWindow_GetTextExtent, 1 }, - { "wxWindow_GetSize", _wrap_wxWindow_GetSize, 1 }, - { "wxWindow_GetSizeTuple", _wrap_wxWindow_GetSizeTuple, 1 }, - { "wxWindow_GetScrollRange", _wrap_wxWindow_GetScrollRange, 1 }, - { "wxWindow_GetScrollPos", _wrap_wxWindow_GetScrollPos, 1 }, - { "wxWindow_GetScrollThumb", _wrap_wxWindow_GetScrollThumb, 1 }, - { "wxWindow_GetRect", _wrap_wxWindow_GetRect, 1 }, - { "wxWindow_GetPosition", _wrap_wxWindow_GetPosition, 1 }, - { "wxWindow_GetPositionTuple", _wrap_wxWindow_GetPositionTuple, 1 }, - { "wxWindow_GetParent", _wrap_wxWindow_GetParent, 1 }, - { "wxWindow_GetName", _wrap_wxWindow_GetName, 1 }, - { "wxWindow_GetLabel", _wrap_wxWindow_GetLabel, 1 }, - { "wxWindow_GetId", _wrap_wxWindow_GetId, 1 }, - { "wxWindow_GetGrandParent", _wrap_wxWindow_GetGrandParent, 1 }, - { "wxWindow_GetForegroundColour", _wrap_wxWindow_GetForegroundColour, 1 }, - { "wxWindow_GetFont", _wrap_wxWindow_GetFont, 1 }, - { "wxWindow_GetConstraints", _wrap_wxWindow_GetConstraints, 1 }, - { "wxWindow_GetClientSize", _wrap_wxWindow_GetClientSize, 1 }, - { "wxWindow_GetClientSizeTuple", _wrap_wxWindow_GetClientSizeTuple, 1 }, - { "wxWindow_GetCharWidth", _wrap_wxWindow_GetCharWidth, 1 }, - { "wxWindow_GetCharHeight", _wrap_wxWindow_GetCharHeight, 1 }, - { "wxWindow_GetBackgroundColour", _wrap_wxWindow_GetBackgroundColour, 1 }, - { "wxWindow_Fit", _wrap_wxWindow_Fit, 1 }, - { "wxWindow_FindWindowByName", _wrap_wxWindow_FindWindowByName, 1 }, - { "wxWindow_FindWindowById", _wrap_wxWindow_FindWindowById, 1 }, - { "wxWindow_Enable", _wrap_wxWindow_Enable, 1 }, - { "wxWindow_DestroyChildren", _wrap_wxWindow_DestroyChildren, 1 }, - { "wxWindow_Destroy", _wrap_wxWindow_Destroy, 1 }, - { "wxWindow_Close", _wrap_wxWindow_Close, 1 }, - { "wxWindow_ClientToScreenXY", _wrap_wxWindow_ClientToScreenXY, 1 }, - { "wxWindow_Centre", _wrap_wxWindow_Centre, 1 }, - { "wxWindow_Center", _wrap_wxWindow_Center, 1 }, - { "wxWindow_CaptureMouse", _wrap_wxWindow_CaptureMouse, 1 }, - { "new_wxWindow", _wrap_new_wxWindow, 1 }, - { "wxEvtHandler_Connect", _wrap_wxEvtHandler_Connect, 1 }, - { "wxEvtHandler_ProcessEvent", _wrap_wxEvtHandler_ProcessEvent, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwindowsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("windowsc", windowscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_wxMenu","_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_class_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_class_wxMenu","_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/gtk/windows.py b/utils/wxPython/src/gtk/windows.py deleted file mode 100644 index d28cce4efb..0000000000 --- a/utils/wxPython/src/gtk/windows.py +++ /dev/null @@ -1,661 +0,0 @@ -# This file was created automatically by SWIG. -import windowsc - -from misc import * - -from gdi import * -import wx - -def wxDLG_PNT(win, point): - return win.ConvertDialogPointToPixels(point) - -def wxDLG_SZE(win, size): - return win.ConvertDialogSizeToPixels(size) - -class wxEvtHandlerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def ProcessEvent(self,arg0): - val = windowsc.wxEvtHandler_ProcessEvent(self.this,arg0.this) - return val - def Connect(self,arg0,arg1,arg2,arg3): - val = windowsc.wxEvtHandler_Connect(self.this,arg0,arg1,arg2,arg3) - return val - def __repr__(self): - return "" -class wxEvtHandler(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - - - - -class wxWindowPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def CaptureMouse(self): - val = windowsc.wxWindow_CaptureMouse(self.this) - return val - def Center(self,*args): - val = apply(windowsc.wxWindow_Center,(self.this,)+args) - return val - def Centre(self,*args): - val = apply(windowsc.wxWindow_Centre,(self.this,)+args) - return val - def ClientToScreenXY(self,arg0,arg1): - val = windowsc.wxWindow_ClientToScreenXY(self.this,arg0,arg1) - return val - def Close(self,*args): - val = apply(windowsc.wxWindow_Close,(self.this,)+args) - return val - def Destroy(self): - val = windowsc.wxWindow_Destroy(self.this) - return val - def DestroyChildren(self): - val = windowsc.wxWindow_DestroyChildren(self.this) - return val - def Enable(self,arg0): - val = windowsc.wxWindow_Enable(self.this,arg0) - return val - def FindWindowById(self,arg0): - val = windowsc.wxWindow_FindWindowById(self.this,arg0) - val = wxWindowPtr(val) - return val - def FindWindowByName(self,arg0): - val = windowsc.wxWindow_FindWindowByName(self.this,arg0) - val = wxWindowPtr(val) - return val - def Fit(self): - val = windowsc.wxWindow_Fit(self.this) - return val - def GetBackgroundColour(self): - val = windowsc.wxWindow_GetBackgroundColour(self.this) - val = wxColourPtr(val) - val.thisown = 1 - return val - def GetCharHeight(self): - val = windowsc.wxWindow_GetCharHeight(self.this) - return val - def GetCharWidth(self): - val = windowsc.wxWindow_GetCharWidth(self.this) - return val - def GetClientSizeTuple(self): - val = windowsc.wxWindow_GetClientSizeTuple(self.this) - return val - def GetClientSize(self): - val = windowsc.wxWindow_GetClientSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetConstraints(self): - val = windowsc.wxWindow_GetConstraints(self.this) - val = wxLayoutConstraintsPtr(val) - return val - def GetFont(self): - val = windowsc.wxWindow_GetFont(self.this) - val = wxFontPtr(val) - return val - def GetForegroundColour(self): - val = windowsc.wxWindow_GetForegroundColour(self.this) - val = wxColourPtr(val) - val.thisown = 1 - return val - def GetGrandParent(self): - val = windowsc.wxWindow_GetGrandParent(self.this) - val = wxWindowPtr(val) - return val - def GetId(self): - val = windowsc.wxWindow_GetId(self.this) - return val - def GetLabel(self): - val = windowsc.wxWindow_GetLabel(self.this) - return val - def GetName(self): - val = windowsc.wxWindow_GetName(self.this) - return val - def GetParent(self): - val = windowsc.wxWindow_GetParent(self.this) - val = wxWindowPtr(val) - return val - def GetPositionTuple(self): - val = windowsc.wxWindow_GetPositionTuple(self.this) - return val - def GetPosition(self): - val = windowsc.wxWindow_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetRect(self): - val = windowsc.wxWindow_GetRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetScrollThumb(self,arg0): - val = windowsc.wxWindow_GetScrollThumb(self.this,arg0) - return val - def GetScrollPos(self,arg0): - val = windowsc.wxWindow_GetScrollPos(self.this,arg0) - return val - def GetScrollRange(self,arg0): - val = windowsc.wxWindow_GetScrollRange(self.this,arg0) - return val - def GetSizeTuple(self): - val = windowsc.wxWindow_GetSizeTuple(self.this) - return val - def GetSize(self): - val = windowsc.wxWindow_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetTextExtent(self,arg0): - val = windowsc.wxWindow_GetTextExtent(self.this,arg0) - return val - def GetFullTextExtent(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxWindow_GetFullTextExtent,(self.this,arg0,)+args) - return val - def GetTitle(self): - val = windowsc.wxWindow_GetTitle(self.this) - return val - def GetWindowStyleFlag(self): - val = windowsc.wxWindow_GetWindowStyleFlag(self.this) - return val - def InitDialog(self): - val = windowsc.wxWindow_InitDialog(self.this) - return val - def IsEnabled(self): - val = windowsc.wxWindow_IsEnabled(self.this) - return val - def IsRetained(self): - val = windowsc.wxWindow_IsRetained(self.this) - return val - def IsShown(self): - val = windowsc.wxWindow_IsShown(self.this) - return val - def Layout(self): - val = windowsc.wxWindow_Layout(self.this) - return val - def LoadFromResource(self,arg0,arg1,*args): - val = apply(windowsc.wxWindow_LoadFromResource,(self.this,arg0.this,arg1,)+args) - return val - def Lower(self): - val = windowsc.wxWindow_Lower(self.this) - return val - def MakeModal(self,arg0): - val = windowsc.wxWindow_MakeModal(self.this,arg0) - return val - def MoveXY(self,arg0,arg1): - val = windowsc.wxWindow_MoveXY(self.this,arg0,arg1) - return val - def Move(self,arg0): - val = windowsc.wxWindow_Move(self.this,arg0.this) - return val - def PopupMenu(self,arg0,arg1,arg2): - val = windowsc.wxWindow_PopupMenu(self.this,arg0.this,arg1,arg2) - return val - def Raise(self): - val = windowsc.wxWindow_Raise(self.this) - return val - def Refresh(self,*args): - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxWindow_Refresh,(self.this,)+args) - return val - def ReleaseMouse(self): - val = windowsc.wxWindow_ReleaseMouse(self.this) - return val - def ScreenToClientXY(self,arg0,arg1): - val = windowsc.wxWindow_ScreenToClientXY(self.this,arg0,arg1) - return val - def ScrollWindow(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxWindow_ScrollWindow,(self.this,arg0,arg1,)+args) - return val - def SetAcceleratorTable(self,arg0): - val = windowsc.wxWindow_SetAcceleratorTable(self.this,arg0.this) - return val - def SetAutoLayout(self,arg0): - val = windowsc.wxWindow_SetAutoLayout(self.this,arg0) - return val - def SetBackgroundColour(self,arg0): - val = windowsc.wxWindow_SetBackgroundColour(self.this,arg0.this) - return val - def SetConstraints(self,arg0): - val = windowsc.wxWindow_SetConstraints(self.this,arg0.this) - return val - def SetFocus(self): - val = windowsc.wxWindow_SetFocus(self.this) - return val - def SetFont(self,arg0): - val = windowsc.wxWindow_SetFont(self.this,arg0.this) - return val - def SetForegroundColour(self,arg0): - val = windowsc.wxWindow_SetForegroundColour(self.this,arg0.this) - return val - def SetId(self,arg0): - val = windowsc.wxWindow_SetId(self.this,arg0) - return val - def SetName(self,arg0): - val = windowsc.wxWindow_SetName(self.this,arg0) - return val - def SetScrollbar(self,arg0,arg1,arg2,arg3,*args): - val = apply(windowsc.wxWindow_SetScrollbar,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def SetScrollPos(self,arg0,arg1,*args): - val = apply(windowsc.wxWindow_SetScrollPos,(self.this,arg0,arg1,)+args) - return val - def SetDimensions(self,arg0,arg1,arg2,arg3,*args): - val = apply(windowsc.wxWindow_SetDimensions,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def SetSize(self,arg0): - val = windowsc.wxWindow_SetSize(self.this,arg0.this) - return val - def SetPosition(self,arg0): - val = windowsc.wxWindow_SetPosition(self.this,arg0.this) - return val - def SetSizeHints(self,*args): - val = apply(windowsc.wxWindow_SetSizeHints,(self.this,)+args) - return val - def SetClientSizeWH(self,arg0,arg1): - val = windowsc.wxWindow_SetClientSizeWH(self.this,arg0,arg1) - return val - def SetClientSize(self,arg0): - val = windowsc.wxWindow_SetClientSize(self.this,arg0.this) - return val - def SetCursor(self,arg0): - val = windowsc.wxWindow_SetCursor(self.this,arg0.this) - return val - def SetTitle(self,arg0): - val = windowsc.wxWindow_SetTitle(self.this,arg0) - return val - def Show(self,arg0): - val = windowsc.wxWindow_Show(self.this,arg0) - return val - def TransferDataFromWindow(self): - val = windowsc.wxWindow_TransferDataFromWindow(self.this) - return val - def TransferDataToWindow(self): - val = windowsc.wxWindow_TransferDataToWindow(self.this) - return val - def Validate(self): - val = windowsc.wxWindow_Validate(self.this) - return val - def WarpPointer(self,arg0,arg1): - val = windowsc.wxWindow_WarpPointer(self.this,arg0,arg1) - return val - def ConvertDialogPointToPixels(self,arg0): - val = windowsc.wxWindow_ConvertDialogPointToPixels(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def ConvertDialogSizeToPixels(self,arg0): - val = windowsc.wxWindow_ConvertDialogSizeToPixels(self.this,arg0.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def DLG_PNT(self,arg0): - val = windowsc.wxWindow_DLG_PNT(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def DLG_SZE(self,arg0): - val = windowsc.wxWindow_DLG_SZE(self.this,arg0.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def ConvertPixelPointToDialog(self,arg0): - val = windowsc.wxWindow_ConvertPixelPointToDialog(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def ConvertPixelSizeToDialog(self,arg0): - val = windowsc.wxWindow_ConvertPixelSizeToDialog(self.this,arg0.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def SetToolTipString(self,arg0): - val = windowsc.wxWindow_SetToolTipString(self.this,arg0) - return val - def SetToolTip(self,arg0): - val = windowsc.wxWindow_SetToolTip(self.this,arg0.this) - return val - def GetToolTip(self): - val = windowsc.wxWindow_GetToolTip(self.this) - val = wxToolTipPtr(val) - return val - def __repr__(self): - return "" -class wxWindow(wxWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxPanelPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def InitDialog(self): - val = windowsc.wxPanel_InitDialog(self.this) - return val - def __repr__(self): - return "" -class wxPanel(wxPanelPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxPanel,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxDialogPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Centre(self,*args): - val = apply(windowsc.wxDialog_Centre,(self.this,)+args) - return val - def EndModal(self,arg0): - val = windowsc.wxDialog_EndModal(self.this,arg0) - return val - def GetTitle(self): - val = windowsc.wxDialog_GetTitle(self.this) - return val - def Iconize(self,arg0): - val = windowsc.wxDialog_Iconize(self.this,arg0) - return val - def IsIconized(self): - val = windowsc.wxDialog_IsIconized(self.this) - return val - def SetModal(self,arg0): - val = windowsc.wxDialog_SetModal(self.this,arg0) - return val - def IsModal(self): - val = windowsc.wxDialog_IsModal(self.this) - return val - def SetTitle(self,arg0): - val = windowsc.wxDialog_SetTitle(self.this,arg0) - return val - def Show(self,arg0): - val = windowsc.wxDialog_Show(self.this,arg0) - return val - def ShowModal(self): - val = windowsc.wxDialog_ShowModal(self.this) - return val - def GetReturnCode(self): - val = windowsc.wxDialog_GetReturnCode(self.this) - return val - def SetReturnCode(self,arg0): - val = windowsc.wxDialog_SetReturnCode(self.this,arg0) - return val - def __repr__(self): - return "" -class wxDialog(wxDialogPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxDialog,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxScrolledWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def EnableScrolling(self,arg0,arg1): - val = windowsc.wxScrolledWindow_EnableScrolling(self.this,arg0,arg1) - return val - def GetScrollPixelsPerUnit(self): - val = windowsc.wxScrolledWindow_GetScrollPixelsPerUnit(self.this) - return val - def GetVirtualSize(self): - val = windowsc.wxScrolledWindow_GetVirtualSize(self.this) - return val - def IsRetained(self): - val = windowsc.wxScrolledWindow_IsRetained(self.this) - return val - def PrepareDC(self,arg0): - val = windowsc.wxScrolledWindow_PrepareDC(self.this,arg0.this) - return val - def Scroll(self,arg0,arg1): - val = windowsc.wxScrolledWindow_Scroll(self.this,arg0,arg1) - return val - def SetScrollbars(self,arg0,arg1,arg2,arg3,*args): - val = apply(windowsc.wxScrolledWindow_SetScrollbars,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def ViewStart(self): - val = windowsc.wxScrolledWindow_ViewStart(self.this) - return val - def __repr__(self): - return "" -class wxScrolledWindow(wxScrolledWindowPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxScrolledWindow,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._StdOnScrollCallbacks(self) - - - - -class wxMenuPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0,arg1,*args): - val = apply(windowsc.wxMenu_Append,(self.this,arg0,arg1,)+args) - return val - def AppendMenu(self,arg0,arg1,arg2,*args): - val = apply(windowsc.wxMenu_AppendMenu,(self.this,arg0,arg1,arg2.this,)+args) - return val - def AppendSeparator(self): - val = windowsc.wxMenu_AppendSeparator(self.this) - return val - def Break(self): - val = windowsc.wxMenu_Break(self.this) - return val - def Check(self,arg0,arg1): - val = windowsc.wxMenu_Check(self.this,arg0,arg1) - return val - def Enable(self,arg0,arg1): - val = windowsc.wxMenu_Enable(self.this,arg0,arg1) - return val - def FindItem(self,arg0): - val = windowsc.wxMenu_FindItem(self.this,arg0) - return val - def GetTitle(self): - val = windowsc.wxMenu_GetTitle(self.this) - return val - def SetTitle(self,arg0): - val = windowsc.wxMenu_SetTitle(self.this,arg0) - return val - def FindItemForId(self,arg0): - val = windowsc.wxMenu_FindItemForId(self.this,arg0) - val = wxMenuItemPtr(val) - return val - def GetHelpString(self,arg0): - val = windowsc.wxMenu_GetHelpString(self.this,arg0) - return val - def GetLabel(self,arg0): - val = windowsc.wxMenu_GetLabel(self.this,arg0) - return val - def SetHelpString(self,arg0,arg1): - val = windowsc.wxMenu_SetHelpString(self.this,arg0,arg1) - return val - def IsChecked(self,arg0): - val = windowsc.wxMenu_IsChecked(self.this,arg0) - return val - def IsEnabled(self,arg0): - val = windowsc.wxMenu_IsEnabled(self.this,arg0) - return val - def SetLabel(self,arg0,arg1): - val = windowsc.wxMenu_SetLabel(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxMenu(wxMenuPtr): - def __init__(self,*args) : - self.this = apply(windowsc.new_wxMenu,()+args) - self.thisown = 1 - - - - -class wxPyMenuPtr(wxMenuPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windowsc.delete_wxPyMenu(self.this) - def __repr__(self): - return "" -class wxPyMenu(wxPyMenuPtr): - def __init__(self,*args) : - self.this = apply(windowsc.new_wxPyMenu,()+args) - self.thisown = 1 - - - - -class wxMenuBarPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0,arg1): - val = windowsc.wxMenuBar_Append(self.this,arg0.this,arg1) - return val - def Check(self,arg0,arg1): - val = windowsc.wxMenuBar_Check(self.this,arg0,arg1) - return val - def Checked(self,arg0): - val = windowsc.wxMenuBar_Checked(self.this,arg0) - return val - def Enable(self,arg0,arg1): - val = windowsc.wxMenuBar_Enable(self.this,arg0,arg1) - return val - def Enabled(self,arg0): - val = windowsc.wxMenuBar_Enabled(self.this,arg0) - return val - def FindMenuItem(self,arg0,arg1): - val = windowsc.wxMenuBar_FindMenuItem(self.this,arg0,arg1) - return val - def FindItemForId(self,arg0): - val = windowsc.wxMenuBar_FindItemForId(self.this,arg0) - val = wxMenuItemPtr(val) - return val - def GetMenuCount(self): - val = windowsc.wxMenuBar_GetMenuCount(self.this) - return val - def GetMenu(self,arg0): - val = windowsc.wxMenuBar_GetMenu(self.this,arg0) - val = wxMenuPtr(val) - return val - def __repr__(self): - return "" -class wxMenuBar(wxMenuBarPtr): - def __init__(self) : - self.this = windowsc.new_wxMenuBar() - self.thisown = 1 - - - - -class wxMenuItemPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsSeparator(self): - val = windowsc.wxMenuItem_IsSeparator(self.this) - return val - def IsEnabled(self): - val = windowsc.wxMenuItem_IsEnabled(self.this) - return val - def IsChecked(self): - val = windowsc.wxMenuItem_IsChecked(self.this) - return val - def IsCheckable(self): - val = windowsc.wxMenuItem_IsCheckable(self.this) - return val - def GetId(self): - val = windowsc.wxMenuItem_GetId(self.this) - return val - def GetSubMenu(self): - val = windowsc.wxMenuItem_GetSubMenu(self.this) - val = wxMenuPtr(val) - return val - def SetName(self,arg0): - val = windowsc.wxMenuItem_SetName(self.this,arg0) - return val - def GetName(self): - val = windowsc.wxMenuItem_GetName(self.this) - return val - def GetHelp(self): - val = windowsc.wxMenuItem_GetHelp(self.this) - return val - def SetHelp(self,arg0): - val = windowsc.wxMenuItem_SetHelp(self.this,arg0) - return val - def Enable(self,*args): - val = apply(windowsc.wxMenuItem_Enable,(self.this,)+args) - return val - def Check(self,*args): - val = apply(windowsc.wxMenuItem_Check,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxMenuItem(wxMenuItemPtr): - def __init__(self) : - self.this = windowsc.new_wxMenuItem() - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/gtk/windows2.cpp b/utils/wxPython/src/gtk/windows2.cpp deleted file mode 100644 index c3cbe15ee7..0000000000 --- a/utils/wxPython/src/gtk/windows2.cpp +++ /dev/null @@ -1,4461 +0,0 @@ -/* - * FILE : gtk/windows2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initwindows2c - -#define SWIG_name "windows2c" - -#include "helpers.h" -#include -#include -#include -#ifdef __WXMSW__ -#include -#endif - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define new_wxGridCell() (new wxGridCell()) -static PyObject *_wrap_new_wxGridCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxGridCell")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)new_wxGridCell(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxGridCell(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGridCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxGridCell",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxGridCell. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxGridCell(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetTextValue(_swigobj) (_swigobj->GetTextValue()) -static PyObject *_wrap_wxGridCell_GetTextValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetTextValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetTextValue. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxString & _result_ref = wxGridCell_GetTextValue(_arg0); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxGridCell_SetTextValue(_swigobj,_swigarg0) (_swigobj->SetTextValue(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetTextValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxGridCell_SetTextValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextValue. Expected _wxGridCell_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetTextValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxGridCell_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxGridCell_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetFont. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGridCell_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetFont. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetTextColour(_swigobj) (_swigobj->GetTextColour()) -static PyObject *_wrap_wxGridCell_GetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetTextColour. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGridCell_GetTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetTextColour(_swigobj,_swigarg0) (_swigobj->SetTextColour(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetBackgroundColour(_swigobj) (_swigobj->GetBackgroundColour()) -static PyObject *_wrap_wxGridCell_GetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetBackgroundColour. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGridCell_GetBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetBackgroundColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetBackgroundBrush(_swigobj) (_swigobj->GetBackgroundBrush()) -static PyObject *_wrap_wxGridCell_GetBackgroundBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetBackgroundBrush",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetBackgroundBrush. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush & _result_ref = wxGridCell_GetBackgroundBrush(_arg0); - _result = (wxBrush *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxGridCell_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridCell * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetAlignment. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridCell_GetAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridCell_SetAlignment(_swigobj,_swigarg0) (_swigobj->SetAlignment(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridCell_SetAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetAlignment. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetCellBitmap(_swigobj) (_swigobj->GetCellBitmap()) -static PyObject *_wrap_wxGridCell_GetCellBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetCellBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetCellBitmap. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxGridCell_GetCellBitmap(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetCellBitmap(_swigobj,_swigarg0) (_swigobj->SetCellBitmap(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetCellBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetCellBitmap",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetCellBitmap. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetCellBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetCellBitmap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxGridTowxPanel(void *ptr) { - wxGrid *src; - wxPanel *dest; - src = (wxGrid *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxGridTowxWindow(void *ptr) { - wxGrid *src; - wxWindow *dest; - src = (wxGrid *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxGridTowxEvtHandler(void *ptr) { - wxGrid *src; - wxEvtHandler *dest; - src = (wxGrid *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxGrid(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxGrid(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxGrid(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "grid"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxGrid",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGrid. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGrid. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGrid. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGrid *)new_wxGrid(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGrid_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_AdjustScrollbars(_swigobj) (_swigobj->AdjustScrollbars()) -static PyObject *_wrap_wxGrid_AdjustScrollbars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_AdjustScrollbars",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AdjustScrollbars. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_AdjustScrollbars(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_AppendCols(_swigobj,_swigarg0,_swigarg1) (_swigobj->AppendCols(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_AppendCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:wxGrid_AppendCols",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AppendCols. Expected _wxGrid_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_AppendCols(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_AppendRows(_swigobj,_swigarg0,_swigarg1) (_swigobj->AppendRows(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_AppendRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:wxGrid_AppendRows",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AppendRows. Expected _wxGrid_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_AppendRows(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_BeginBatch(_swigobj) (_swigobj->BeginBatch()) -static PyObject *_wrap_wxGrid_BeginBatch(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_BeginBatch",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_BeginBatch. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_BeginBatch(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_CellHitTest(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->CellHitTest(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxGrid_CellHitTest(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - int * _arg3; - int temp; - int * _arg4; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg3 = &temp; -} -{ - _arg4 = &temp0; -} - if(!PyArg_ParseTuple(args,"sii:wxGrid_CellHitTest",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CellHitTest. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_CellHitTest(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static bool wxGrid_CreateGrid(wxGrid *self,int rows,int cols,short defaultWidth,short defaultHeight) { - return self->CreateGrid(rows, cols, NULL, NULL, - defaultWidth, defaultHeight); - } -static PyObject *_wrap_wxGrid_CreateGrid(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - short _arg3 = wxGRID_DEFAULT_CELL_WIDTH; - short _arg4 = wxGRID_DEFAULT_CELL_HEIGHT; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii|hh:wxGrid_CreateGrid",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CreateGrid. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_CreateGrid(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_CurrentCellVisible(_swigobj) (_swigobj->CurrentCellVisible()) -static PyObject *_wrap_wxGrid_CurrentCellVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_CurrentCellVisible",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CurrentCellVisible. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_CurrentCellVisible(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_DeleteCols(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DeleteCols(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_DeleteCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_DeleteCols",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_DeleteCols. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_DeleteCols(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_DeleteRows(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DeleteRows(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_DeleteRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_DeleteRows",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_DeleteRows. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_DeleteRows(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_EndBatch(_swigobj) (_swigobj->EndBatch()) -static PyObject *_wrap_wxGrid_EndBatch(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_EndBatch",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_EndBatch. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_EndBatch(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_GetBatchCount(_swigobj) (_swigobj->GetBatchCount()) -static PyObject *_wrap_wxGrid_GetBatchCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetBatchCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetBatchCount. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetBatchCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCell(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCell(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCell",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCell. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGrid_GetCell(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellAlignment(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellAlignment(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellAlignment",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCellAlignment(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetDefCellAlignment(_swigobj) (_swigobj->GetCellAlignment()) -static PyObject *_wrap_wxGrid_GetDefCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetDefCellAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCellBackgroundColour(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellBackgroundColour(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellBackgroundColour",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetCellBackgroundColour(_arg0,_arg1,_arg2); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetDefCellBackgroundColour(_swigobj) (_swigobj->GetCellBackgroundColour()) -static PyObject *_wrap_wxGrid_GetDefCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetDefCellBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellTextColour(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellTextColour(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellTextColour",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetCellTextColour(_arg0,_arg1,_arg2); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetDefCellTextColour(_swigobj) (_swigobj->GetCellTextColour()) -static PyObject *_wrap_wxGrid_GetDefCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetDefCellTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellTextFont(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellTextFont(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellTextFont",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGrid_GetCellTextFont(_arg0,_arg1,_arg2); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetDefCellTextFont(_swigobj) (_swigobj->GetCellTextFont()) -static PyObject *_wrap_wxGrid_GetDefCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellTextFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGrid_GetDefCellTextFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellValue(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellValue(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellValue",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxString & _result_ref = wxGrid_GetCellValue(_arg0,_arg1,_arg2); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxGrid_GetCols(_swigobj) (_swigobj->GetCols()) -static PyObject *_wrap_wxGrid_GetCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCols",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCols. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCols(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetColumnWidth(_swigobj,_swigarg0) (_swigobj->GetColumnWidth(_swigarg0)) -static PyObject *_wrap_wxGrid_GetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetColumnWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetColumnWidth. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetColumnWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCurrentRect(_swigobj) (_swigobj->GetCurrentRect()) -static PyObject *_wrap_wxGrid_GetCurrentRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCurrentRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCurrentRect. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxGrid_GetCurrentRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCursorColumn(_swigobj) (_swigobj->GetCursorColumn()) -static PyObject *_wrap_wxGrid_GetCursorColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCursorColumn",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCursorColumn. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCursorColumn(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCursorRow(_swigobj) (_swigobj->GetCursorRow()) -static PyObject *_wrap_wxGrid_GetCursorRow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCursorRow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCursorRow. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCursorRow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetEditable(_swigobj) (_swigobj->GetEditable()) -static PyObject *_wrap_wxGrid_GetEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetEditable",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetEditable. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_GetEditable(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetHorizScrollBar(_swigobj) (_swigobj->GetHorizScrollBar()) -static PyObject *_wrap_wxGrid_GetHorizScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetHorizScrollBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetHorizScrollBar. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrollBar *)wxGrid_GetHorizScrollBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelAlignment(_swigobj,_swigarg0) (_swigobj->GetLabelAlignment(_swigarg0)) -static PyObject *_wrap_wxGrid_GetLabelAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetLabelAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetLabelAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetLabelBackgroundColour(_swigobj) (_swigobj->GetLabelBackgroundColour()) -static PyObject *_wrap_wxGrid_GetLabelBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetLabelBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelSize(_swigobj,_swigarg0) (_swigobj->GetLabelSize(_swigarg0)) -static PyObject *_wrap_wxGrid_GetLabelSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetLabelSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelSize. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetLabelSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetLabelTextColour(_swigobj) (_swigobj->GetLabelTextColour()) -static PyObject *_wrap_wxGrid_GetLabelTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelTextColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetLabelTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelTextFont(_swigobj) (_swigobj->GetLabelTextFont()) -static PyObject *_wrap_wxGrid_GetLabelTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelTextFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelTextFont. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGrid_GetLabelTextFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelValue(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetLabelValue(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetLabelValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetLabelValue",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxString & _result_ref = wxGrid_GetLabelValue(_arg0,_arg1,_arg2); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxGrid_GetRowHeight(_swigobj,_swigarg0) (_swigobj->GetRowHeight(_swigarg0)) -static PyObject *_wrap_wxGrid_GetRowHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetRowHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetRowHeight. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetRowHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetRows(_swigobj) (_swigobj->GetRows()) -static PyObject *_wrap_wxGrid_GetRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetRows",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetRows. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetRows(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetScrollPosX(_swigobj) (_swigobj->GetScrollPosX()) -static PyObject *_wrap_wxGrid_GetScrollPosX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetScrollPosX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetScrollPosX. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetScrollPosX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetScrollPosY(_swigobj) (_swigobj->GetScrollPosY()) -static PyObject *_wrap_wxGrid_GetScrollPosY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetScrollPosY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetScrollPosY. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetScrollPosY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetTextItem(_swigobj) (_swigobj->GetTextItem()) -static PyObject *_wrap_wxGrid_GetTextItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetTextItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetTextItem. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxGrid_GetTextItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetVertScrollBar(_swigobj) (_swigobj->GetVertScrollBar()) -static PyObject *_wrap_wxGrid_GetVertScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetVertScrollBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetVertScrollBar. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrollBar *)wxGrid_GetVertScrollBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_InsertCols(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->InsertCols(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_InsertCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_InsertCols",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_InsertCols. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_InsertCols(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_InsertRows(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->InsertRows(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_InsertRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_InsertRows",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_InsertRows. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_InsertRows(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_OnActivate(_swigobj,_swigarg0) (_swigobj->OnActivate(_swigarg0)) -static PyObject *_wrap_wxGrid_OnActivate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_OnActivate",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_OnActivate. Expected _wxGrid_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_OnActivate(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellAlignment(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellAlignment(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siii:wxGrid_SetCellAlignment",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellAlignment(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellAlignment(_swigobj,_swigarg0) (_swigobj->SetCellAlignment(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_SetDefCellAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellBackgroundColour(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellBackgroundColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellBackgroundColour",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetCellBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellBackgroundColour(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetCellBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDefCellBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellTextColour(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellTextColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellTextColour",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetCellTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellTextColour(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellTextColour(_swigobj,_swigarg0) (_swigobj->SetCellTextColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDefCellTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellTextFont(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellTextFont(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxFont * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellTextFont",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetCellTextFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellTextFont(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellTextFont(_swigobj,_swigarg0) (_swigobj->SetCellTextFont(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellTextFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDefCellTextFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellTextFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellValue(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellValue(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxString * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOii:wxGrid_SetCellValue",&_argc0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellValue(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxGrid_SetColumnWidth(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumnWidth(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetColumnWidth",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetColumnWidth. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetColumnWidth(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDividerPen(_swigobj,_swigarg0) (_swigobj->SetDividerPen(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDividerPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxPen * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDividerPen",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDividerPen. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDividerPen. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDividerPen(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetEditable(_swigobj,_swigarg0) (_swigobj->SetEditable(_swigarg0)) -static PyObject *_wrap_wxGrid_SetEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_SetEditable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetEditable. Expected _wxGrid_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetEditable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetGridCursor(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetGridCursor(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetGridCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetGridCursor",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetGridCursor. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetGridCursor(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelAlignment(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabelAlignment(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetLabelAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetLabelAlignment",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelAlignment(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetLabelBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetLabelBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetLabelBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabelSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetLabelSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetLabelSize",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelSize. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelTextColour(_swigobj,_swigarg0) (_swigobj->SetLabelTextColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetLabelTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetLabelTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelTextFont(_swigobj,_swigarg0) (_swigobj->SetLabelTextFont(_swigarg0)) -static PyObject *_wrap_wxGrid_SetLabelTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelTextFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetLabelTextFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelTextFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelValue(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetLabelValue(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetLabelValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - wxString * _arg2; - int _arg3; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siOi:wxGrid_SetLabelValue",&_argc0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelValue(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxGrid_SetRowHeight(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRowHeight(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetRowHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetRowHeight",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetRowHeight. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetRowHeight(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_UpdateDimensions(_swigobj) (_swigobj->UpdateDimensions()) -static PyObject *_wrap_wxGrid_UpdateDimensions(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_UpdateDimensions",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_UpdateDimensions. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_UpdateDimensions(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxGridEventTowxEvent(void *ptr) { - wxGridEvent *src; - wxEvent *dest; - src = (wxGridEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxGridEvent_m_row_set(_swigobj,_swigval) (_swigobj->m_row = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_row_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_row_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_row_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_row_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_row_get(_swigobj) ((int ) _swigobj->m_row) -static PyObject *_wrap_wxGridEvent_m_row_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_row_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_row_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_row_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_col_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_col_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_col_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_col_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_col_get(_swigobj) ((int ) _swigobj->m_col) -static PyObject *_wrap_wxGridEvent_m_col_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_col_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_col_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_col_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_x_set(_swigobj,_swigval) (_swigobj->m_x = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_x_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_x_get(_swigobj) ((int ) _swigobj->m_x) -static PyObject *_wrap_wxGridEvent_m_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_x_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_y_set(_swigobj,_swigval) (_swigobj->m_y = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_y_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_y_get(_swigobj) ((int ) _swigobj->m_y) -static PyObject *_wrap_wxGridEvent_m_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_y_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_control_set(_swigobj,_swigval) (_swigobj->m_control = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_control_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_control_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_control_set. Expected _wxGridEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_control_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_control_get(_swigobj) ((bool ) _swigobj->m_control) -static PyObject *_wrap_wxGridEvent_m_control_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_control_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_control_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_control_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_shift_set(_swigobj,_swigval) (_swigobj->m_shift = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_shift_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_shift_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_shift_set. Expected _wxGridEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_shift_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_shift_get(_swigobj) ((bool ) _swigobj->m_shift) -static PyObject *_wrap_wxGridEvent_m_shift_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_shift_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_shift_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_shift_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_cell_set(_swigobj,_swigval) (_swigobj->m_cell = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_cell_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGridEvent * _arg0; - wxGridCell * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridEvent_m_cell_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_set. Expected _wxGridEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridEvent_m_cell_set. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGridEvent_m_cell_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridEvent_m_cell_get(_swigobj) ((wxGridCell *) _swigobj->m_cell) -static PyObject *_wrap_wxGridEvent_m_cell_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_cell_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGridEvent_m_cell_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxNotebookEventTowxCommandEvent(void *ptr) { - wxNotebookEvent *src; - wxCommandEvent *dest; - src = (wxNotebookEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxNotebookEventTowxEvent(void *ptr) { - wxNotebookEvent *src; - wxEvent *dest; - src = (wxNotebookEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxNotebookEvent_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxNotebookEvent_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebookEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebookEvent_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_GetSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebookEvent_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebookEvent_GetOldSelection(_swigobj) (_swigobj->GetOldSelection()) -static PyObject *_wrap_wxNotebookEvent_GetOldSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebookEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebookEvent_GetOldSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_GetOldSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebookEvent_GetOldSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxNotebookTowxControl(void *ptr) { - wxNotebook *src; - wxControl *dest; - src = (wxNotebook *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxNotebookTowxWindow(void *ptr) { - wxNotebook *src; - wxWindow *dest; - src = (wxNotebook *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxNotebookTowxEvtHandler(void *ptr) { - wxNotebook *src; - wxEvtHandler *dest; - src = (wxNotebook *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxNotebook(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxNotebook(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxNotebook(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "notebook"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxNotebook",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxNotebook. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxNotebook. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxNotebook. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxNotebook *)new_wxNotebook(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebook_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxNotebook_GetPageCount(_swigobj) (_swigobj->GetPageCount()) -static PyObject *_wrap_wxNotebook_GetPageCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetPageCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageCount. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetPageCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxNotebook_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetSelection. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_AdvanceSelection(_swigobj,_swigarg0) (_swigobj->AdvanceSelection(_swigarg0)) -static PyObject *_wrap_wxNotebook_AdvanceSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxNotebook_AdvanceSelection",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AdvanceSelection. Expected _wxNotebook_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebook_AdvanceSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxNotebook_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxNotebook_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetSelection. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_SetPageText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetPageText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxNotebook_SetPageText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxNotebook_SetPageText",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetPageText. Expected _wxNotebook_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_SetPageText(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxNotebook_GetPageText(_swigobj,_swigarg0) (_swigobj->GetPageText(_swigarg0)) -static PyObject *_wrap_wxNotebook_GetPageText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPageText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageText. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxNotebook_GetPageText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxNotebook_SetImageList(_swigobj,_swigarg0) (_swigobj->SetImageList(_swigarg0)) -static PyObject *_wrap_wxNotebook_SetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _arg0; - wxImageList * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxNotebook_SetImageList",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetImageList. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxNotebook_SetImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebook_SetImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxNotebook_GetImageList(_swigobj) (_swigobj->GetImageList()) -static PyObject *_wrap_wxNotebook_GetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxNotebook * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetImageList. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxNotebook_GetImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxNotebook_GetPageImage(_swigobj,_swigarg0) (_swigobj->GetPageImage(_swigarg0)) -static PyObject *_wrap_wxNotebook_GetPageImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPageImage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageImage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetPageImage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_SetPageImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetPageImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxNotebook_SetPageImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxNotebook_SetPageImage",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetPageImage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_SetPageImage(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_GetRowCount(_swigobj) (_swigobj->GetRowCount()) -static PyObject *_wrap_wxNotebook_GetRowCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetRowCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetRowCount. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetRowCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_DeletePage(_swigobj,_swigarg0) (_swigobj->DeletePage(_swigarg0)) -static PyObject *_wrap_wxNotebook_DeletePage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_DeletePage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_DeletePage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_DeletePage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_RemovePage(_swigobj,_swigarg0) (_swigobj->RemovePage(_swigarg0)) -static PyObject *_wrap_wxNotebook_RemovePage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_RemovePage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_RemovePage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_RemovePage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_DeleteAllPages(_swigobj) (_swigobj->DeleteAllPages()) -static PyObject *_wrap_wxNotebook_DeleteAllPages(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_DeleteAllPages",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_DeleteAllPages. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_DeleteAllPages(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_AddPage(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->AddPage(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxNotebook_AddPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - wxWindow * _arg1; - wxString * _arg2; - int _arg3 = (0); - int _arg4 = -1; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|ii:wxNotebook_AddPage",&_argc0,&_argc1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AddPage. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxNotebook_AddPage. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_AddPage(_arg0,_arg1,*_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxNotebook_GetPage(_swigobj,_swigarg0) (_swigobj->GetPage(_swigarg0)) -static PyObject *_wrap_wxNotebook_GetPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebookPage * _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxNotebookPage *)wxNotebook_GetPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebookPage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void wxNotebook_ResizeChildren(wxNotebook *self) { - wxSizeEvent evt(self->GetClientSize()); - self->GetEventHandler()->ProcessEvent(evt); - } -static PyObject *_wrap_wxNotebook_ResizeChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_ResizeChildren",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_ResizeChildren. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebook_ResizeChildren(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSplitterWindowTowxWindow(void *ptr) { - wxSplitterWindow *src; - wxWindow *dest; - src = (wxSplitterWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSplitterWindowTowxEvtHandler(void *ptr) { - wxSplitterWindow *src; - wxEvtHandler *dest; - src = (wxSplitterWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSplitterWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSplitterWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSplitterWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxSP_3D)|(wxCLIP_CHILDREN); - char * _arg5 = "splitterWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxSplitterWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSplitterWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSplitterWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSplitterWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSplitterWindow *)new_wxSplitterWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSplitterWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSplitterWindow_GetBorderSize(_swigobj) (_swigobj->GetBorderSize()) -static PyObject *_wrap_wxSplitterWindow_GetBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetBorderSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetBorderSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetBorderSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetMinimumPaneSize(_swigobj) (_swigobj->GetMinimumPaneSize()) -static PyObject *_wrap_wxSplitterWindow_GetMinimumPaneSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetMinimumPaneSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetMinimumPaneSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetMinimumPaneSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetSashPosition(_swigobj) (_swigobj->GetSashPosition()) -static PyObject *_wrap_wxSplitterWindow_GetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSashPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSashPosition. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetSashPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetSashSize(_swigobj) (_swigobj->GetSashSize()) -static PyObject *_wrap_wxSplitterWindow_GetSashSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSashSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSashSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetSashSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetSplitMode(_swigobj) (_swigobj->GetSplitMode()) -static PyObject *_wrap_wxSplitterWindow_GetSplitMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSplitMode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSplitMode. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetSplitMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetWindow1(_swigobj) (_swigobj->GetWindow1()) -static PyObject *_wrap_wxSplitterWindow_GetWindow1(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetWindow1",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetWindow1. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxSplitterWindow_GetWindow1(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSplitterWindow_GetWindow2(_swigobj) (_swigobj->GetWindow2()) -static PyObject *_wrap_wxSplitterWindow_GetWindow2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetWindow2",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetWindow2. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxSplitterWindow_GetWindow2(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSplitterWindow_Initialize(_swigobj,_swigarg0) (_swigobj->Initialize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_Initialize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - wxWindow * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxSplitterWindow_Initialize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Initialize. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_Initialize. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_Initialize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_IsSplit(_swigobj) (_swigobj->IsSplit()) -static PyObject *_wrap_wxSplitterWindow_IsSplit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_IsSplit",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_IsSplit. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_IsSplit(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_SetBorderSize(_swigobj,_swigarg0) (_swigobj->SetBorderSize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetBorderSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetBorderSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetBorderSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetSashPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSashPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSplitterWindow_SetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - int _arg2 = (1); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxSplitterWindow_SetSashPosition",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSashPosition. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetSashPosition(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetSashSize(_swigobj,_swigarg0) (_swigobj->SetSashSize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetSashSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetSashSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSashSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetSashSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetMinimumPaneSize(_swigobj,_swigarg0) (_swigobj->SetMinimumPaneSize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetMinimumPaneSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetMinimumPaneSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetMinimumPaneSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetMinimumPaneSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetSplitMode(_swigobj,_swigarg0) (_swigobj->SetSplitMode(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetSplitMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetSplitMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSplitMode. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetSplitMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SplitHorizontally(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SplitHorizontally(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxSplitterWindow_SplitHorizontally(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - wxWindow * _arg1; - wxWindow * _arg2; - int _arg3 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss|i:wxSplitterWindow_SplitHorizontally",&_argc0,&_argc1,&_argc2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitHorizontally. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_SplitHorizontally(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_SplitVertically(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SplitVertically(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxSplitterWindow_SplitVertically(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - wxWindow * _arg1; - wxWindow * _arg2; - int _arg3 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss|i:wxSplitterWindow_SplitVertically",&_argc0,&_argc1,&_argc2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitVertically. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_SplitVertically(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_Unsplit(_swigobj,_swigarg0) (_swigobj->Unsplit(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_Unsplit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - wxWindow * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxSplitterWindow_Unsplit",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Unsplit. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_Unsplit. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_Unsplit(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef windows2cMethods[] = { - { "wxSplitterWindow_Unsplit", _wrap_wxSplitterWindow_Unsplit, 1 }, - { "wxSplitterWindow_SplitVertically", _wrap_wxSplitterWindow_SplitVertically, 1 }, - { "wxSplitterWindow_SplitHorizontally", _wrap_wxSplitterWindow_SplitHorizontally, 1 }, - { "wxSplitterWindow_SetSplitMode", _wrap_wxSplitterWindow_SetSplitMode, 1 }, - { "wxSplitterWindow_SetMinimumPaneSize", _wrap_wxSplitterWindow_SetMinimumPaneSize, 1 }, - { "wxSplitterWindow_SetSashSize", _wrap_wxSplitterWindow_SetSashSize, 1 }, - { "wxSplitterWindow_SetSashPosition", _wrap_wxSplitterWindow_SetSashPosition, 1 }, - { "wxSplitterWindow_SetBorderSize", _wrap_wxSplitterWindow_SetBorderSize, 1 }, - { "wxSplitterWindow_IsSplit", _wrap_wxSplitterWindow_IsSplit, 1 }, - { "wxSplitterWindow_Initialize", _wrap_wxSplitterWindow_Initialize, 1 }, - { "wxSplitterWindow_GetWindow2", _wrap_wxSplitterWindow_GetWindow2, 1 }, - { "wxSplitterWindow_GetWindow1", _wrap_wxSplitterWindow_GetWindow1, 1 }, - { "wxSplitterWindow_GetSplitMode", _wrap_wxSplitterWindow_GetSplitMode, 1 }, - { "wxSplitterWindow_GetSashSize", _wrap_wxSplitterWindow_GetSashSize, 1 }, - { "wxSplitterWindow_GetSashPosition", _wrap_wxSplitterWindow_GetSashPosition, 1 }, - { "wxSplitterWindow_GetMinimumPaneSize", _wrap_wxSplitterWindow_GetMinimumPaneSize, 1 }, - { "wxSplitterWindow_GetBorderSize", _wrap_wxSplitterWindow_GetBorderSize, 1 }, - { "new_wxSplitterWindow", _wrap_new_wxSplitterWindow, 1 }, - { "wxNotebook_ResizeChildren", _wrap_wxNotebook_ResizeChildren, 1 }, - { "wxNotebook_GetPage", _wrap_wxNotebook_GetPage, 1 }, - { "wxNotebook_AddPage", _wrap_wxNotebook_AddPage, 1 }, - { "wxNotebook_DeleteAllPages", _wrap_wxNotebook_DeleteAllPages, 1 }, - { "wxNotebook_RemovePage", _wrap_wxNotebook_RemovePage, 1 }, - { "wxNotebook_DeletePage", _wrap_wxNotebook_DeletePage, 1 }, - { "wxNotebook_GetRowCount", _wrap_wxNotebook_GetRowCount, 1 }, - { "wxNotebook_SetPageImage", _wrap_wxNotebook_SetPageImage, 1 }, - { "wxNotebook_GetPageImage", _wrap_wxNotebook_GetPageImage, 1 }, - { "wxNotebook_GetImageList", _wrap_wxNotebook_GetImageList, 1 }, - { "wxNotebook_SetImageList", _wrap_wxNotebook_SetImageList, 1 }, - { "wxNotebook_GetPageText", _wrap_wxNotebook_GetPageText, 1 }, - { "wxNotebook_SetPageText", _wrap_wxNotebook_SetPageText, 1 }, - { "wxNotebook_GetSelection", _wrap_wxNotebook_GetSelection, 1 }, - { "wxNotebook_AdvanceSelection", _wrap_wxNotebook_AdvanceSelection, 1 }, - { "wxNotebook_SetSelection", _wrap_wxNotebook_SetSelection, 1 }, - { "wxNotebook_GetPageCount", _wrap_wxNotebook_GetPageCount, 1 }, - { "new_wxNotebook", _wrap_new_wxNotebook, 1 }, - { "wxNotebookEvent_GetOldSelection", _wrap_wxNotebookEvent_GetOldSelection, 1 }, - { "wxNotebookEvent_GetSelection", _wrap_wxNotebookEvent_GetSelection, 1 }, - { "wxGridEvent_m_cell_get", _wrap_wxGridEvent_m_cell_get, 1 }, - { "wxGridEvent_m_cell_set", _wrap_wxGridEvent_m_cell_set, 1 }, - { "wxGridEvent_m_shift_get", _wrap_wxGridEvent_m_shift_get, 1 }, - { "wxGridEvent_m_shift_set", _wrap_wxGridEvent_m_shift_set, 1 }, - { "wxGridEvent_m_control_get", _wrap_wxGridEvent_m_control_get, 1 }, - { "wxGridEvent_m_control_set", _wrap_wxGridEvent_m_control_set, 1 }, - { "wxGridEvent_m_y_get", _wrap_wxGridEvent_m_y_get, 1 }, - { "wxGridEvent_m_y_set", _wrap_wxGridEvent_m_y_set, 1 }, - { "wxGridEvent_m_x_get", _wrap_wxGridEvent_m_x_get, 1 }, - { "wxGridEvent_m_x_set", _wrap_wxGridEvent_m_x_set, 1 }, - { "wxGridEvent_m_col_get", _wrap_wxGridEvent_m_col_get, 1 }, - { "wxGridEvent_m_col_set", _wrap_wxGridEvent_m_col_set, 1 }, - { "wxGridEvent_m_row_get", _wrap_wxGridEvent_m_row_get, 1 }, - { "wxGridEvent_m_row_set", _wrap_wxGridEvent_m_row_set, 1 }, - { "wxGrid_UpdateDimensions", _wrap_wxGrid_UpdateDimensions, 1 }, - { "wxGrid_SetRowHeight", _wrap_wxGrid_SetRowHeight, 1 }, - { "wxGrid_SetLabelValue", _wrap_wxGrid_SetLabelValue, 1 }, - { "wxGrid_SetLabelTextFont", _wrap_wxGrid_SetLabelTextFont, 1 }, - { "wxGrid_SetLabelTextColour", _wrap_wxGrid_SetLabelTextColour, 1 }, - { "wxGrid_SetLabelSize", _wrap_wxGrid_SetLabelSize, 1 }, - { "wxGrid_SetLabelBackgroundColour", _wrap_wxGrid_SetLabelBackgroundColour, 1 }, - { "wxGrid_SetLabelAlignment", _wrap_wxGrid_SetLabelAlignment, 1 }, - { "wxGrid_SetGridCursor", _wrap_wxGrid_SetGridCursor, 1 }, - { "wxGrid_SetEditable", _wrap_wxGrid_SetEditable, 1 }, - { "wxGrid_SetDividerPen", _wrap_wxGrid_SetDividerPen, 1 }, - { "wxGrid_SetColumnWidth", _wrap_wxGrid_SetColumnWidth, 1 }, - { "wxGrid_SetCellValue", _wrap_wxGrid_SetCellValue, 1 }, - { "wxGrid_SetDefCellTextFont", _wrap_wxGrid_SetDefCellTextFont, 1 }, - { "wxGrid_SetCellTextFont", _wrap_wxGrid_SetCellTextFont, 1 }, - { "wxGrid_SetDefCellTextColour", _wrap_wxGrid_SetDefCellTextColour, 1 }, - { "wxGrid_SetCellTextColour", _wrap_wxGrid_SetCellTextColour, 1 }, - { "wxGrid_SetDefCellBackgroundColour", _wrap_wxGrid_SetDefCellBackgroundColour, 1 }, - { "wxGrid_SetCellBackgroundColour", _wrap_wxGrid_SetCellBackgroundColour, 1 }, - { "wxGrid_SetDefCellAlignment", _wrap_wxGrid_SetDefCellAlignment, 1 }, - { "wxGrid_SetCellAlignment", _wrap_wxGrid_SetCellAlignment, 1 }, - { "wxGrid_OnActivate", _wrap_wxGrid_OnActivate, 1 }, - { "wxGrid_InsertRows", _wrap_wxGrid_InsertRows, 1 }, - { "wxGrid_InsertCols", _wrap_wxGrid_InsertCols, 1 }, - { "wxGrid_GetVertScrollBar", _wrap_wxGrid_GetVertScrollBar, 1 }, - { "wxGrid_GetTextItem", _wrap_wxGrid_GetTextItem, 1 }, - { "wxGrid_GetScrollPosY", _wrap_wxGrid_GetScrollPosY, 1 }, - { "wxGrid_GetScrollPosX", _wrap_wxGrid_GetScrollPosX, 1 }, - { "wxGrid_GetRows", _wrap_wxGrid_GetRows, 1 }, - { "wxGrid_GetRowHeight", _wrap_wxGrid_GetRowHeight, 1 }, - { "wxGrid_GetLabelValue", _wrap_wxGrid_GetLabelValue, 1 }, - { "wxGrid_GetLabelTextFont", _wrap_wxGrid_GetLabelTextFont, 1 }, - { "wxGrid_GetLabelTextColour", _wrap_wxGrid_GetLabelTextColour, 1 }, - { "wxGrid_GetLabelSize", _wrap_wxGrid_GetLabelSize, 1 }, - { "wxGrid_GetLabelBackgroundColour", _wrap_wxGrid_GetLabelBackgroundColour, 1 }, - { "wxGrid_GetLabelAlignment", _wrap_wxGrid_GetLabelAlignment, 1 }, - { "wxGrid_GetHorizScrollBar", _wrap_wxGrid_GetHorizScrollBar, 1 }, - { "wxGrid_GetEditable", _wrap_wxGrid_GetEditable, 1 }, - { "wxGrid_GetCursorRow", _wrap_wxGrid_GetCursorRow, 1 }, - { "wxGrid_GetCursorColumn", _wrap_wxGrid_GetCursorColumn, 1 }, - { "wxGrid_GetCurrentRect", _wrap_wxGrid_GetCurrentRect, 1 }, - { "wxGrid_GetColumnWidth", _wrap_wxGrid_GetColumnWidth, 1 }, - { "wxGrid_GetCols", _wrap_wxGrid_GetCols, 1 }, - { "wxGrid_GetCellValue", _wrap_wxGrid_GetCellValue, 1 }, - { "wxGrid_GetDefCellTextFont", _wrap_wxGrid_GetDefCellTextFont, 1 }, - { "wxGrid_GetCellTextFont", _wrap_wxGrid_GetCellTextFont, 1 }, - { "wxGrid_GetDefCellTextColour", _wrap_wxGrid_GetDefCellTextColour, 1 }, - { "wxGrid_GetCellTextColour", _wrap_wxGrid_GetCellTextColour, 1 }, - { "wxGrid_GetDefCellBackgroundColour", _wrap_wxGrid_GetDefCellBackgroundColour, 1 }, - { "wxGrid_GetCellBackgroundColour", _wrap_wxGrid_GetCellBackgroundColour, 1 }, - { "wxGrid_GetDefCellAlignment", _wrap_wxGrid_GetDefCellAlignment, 1 }, - { "wxGrid_GetCellAlignment", _wrap_wxGrid_GetCellAlignment, 1 }, - { "wxGrid_GetCell", _wrap_wxGrid_GetCell, 1 }, - { "wxGrid_GetBatchCount", _wrap_wxGrid_GetBatchCount, 1 }, - { "wxGrid_EndBatch", _wrap_wxGrid_EndBatch, 1 }, - { "wxGrid_DeleteRows", _wrap_wxGrid_DeleteRows, 1 }, - { "wxGrid_DeleteCols", _wrap_wxGrid_DeleteCols, 1 }, - { "wxGrid_CurrentCellVisible", _wrap_wxGrid_CurrentCellVisible, 1 }, - { "wxGrid_CreateGrid", _wrap_wxGrid_CreateGrid, 1 }, - { "wxGrid_CellHitTest", _wrap_wxGrid_CellHitTest, 1 }, - { "wxGrid_BeginBatch", _wrap_wxGrid_BeginBatch, 1 }, - { "wxGrid_AppendRows", _wrap_wxGrid_AppendRows, 1 }, - { "wxGrid_AppendCols", _wrap_wxGrid_AppendCols, 1 }, - { "wxGrid_AdjustScrollbars", _wrap_wxGrid_AdjustScrollbars, 1 }, - { "new_wxGrid", _wrap_new_wxGrid, 1 }, - { "wxGridCell_SetCellBitmap", _wrap_wxGridCell_SetCellBitmap, 1 }, - { "wxGridCell_GetCellBitmap", _wrap_wxGridCell_GetCellBitmap, 1 }, - { "wxGridCell_SetAlignment", _wrap_wxGridCell_SetAlignment, 1 }, - { "wxGridCell_GetAlignment", _wrap_wxGridCell_GetAlignment, 1 }, - { "wxGridCell_GetBackgroundBrush", _wrap_wxGridCell_GetBackgroundBrush, 1 }, - { "wxGridCell_SetBackgroundColour", _wrap_wxGridCell_SetBackgroundColour, 1 }, - { "wxGridCell_GetBackgroundColour", _wrap_wxGridCell_GetBackgroundColour, 1 }, - { "wxGridCell_SetTextColour", _wrap_wxGridCell_SetTextColour, 1 }, - { "wxGridCell_GetTextColour", _wrap_wxGridCell_GetTextColour, 1 }, - { "wxGridCell_SetFont", _wrap_wxGridCell_SetFont, 1 }, - { "wxGridCell_GetFont", _wrap_wxGridCell_GetFont, 1 }, - { "wxGridCell_SetTextValue", _wrap_wxGridCell_SetTextValue, 1 }, - { "wxGridCell_GetTextValue", _wrap_wxGridCell_GetTextValue, 1 }, - { "delete_wxGridCell", _wrap_delete_wxGridCell, 1 }, - { "new_wxGridCell", _wrap_new_wxGridCell, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwindows2c)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("windows2c", windows2cMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxGRID_TEXT_CTRL", PyInt_FromLong((long) wxGRID_TEXT_CTRL)); - PyDict_SetItemString(d,"wxGRID_HSCROLL", PyInt_FromLong((long) wxGRID_HSCROLL)); - PyDict_SetItemString(d,"wxGRID_VSCROLL", PyInt_FromLong((long) wxGRID_VSCROLL)); - PyDict_SetItemString(d,"wxEVT_GRID_SELECT_CELL", PyInt_FromLong((long) wxEVT_GRID_SELECT_CELL)); - PyDict_SetItemString(d,"wxEVT_GRID_CREATE_CELL", PyInt_FromLong((long) wxEVT_GRID_CREATE_CELL)); - PyDict_SetItemString(d,"wxEVT_GRID_CHANGE_LABELS", PyInt_FromLong((long) wxEVT_GRID_CHANGE_LABELS)); - PyDict_SetItemString(d,"wxEVT_GRID_CHANGE_SEL_LABEL", PyInt_FromLong((long) wxEVT_GRID_CHANGE_SEL_LABEL)); - PyDict_SetItemString(d,"wxEVT_GRID_CELL_CHANGE", PyInt_FromLong((long) wxEVT_GRID_CELL_CHANGE)); - PyDict_SetItemString(d,"wxEVT_GRID_CELL_LCLICK", PyInt_FromLong((long) wxEVT_GRID_CELL_LCLICK)); - PyDict_SetItemString(d,"wxEVT_GRID_CELL_RCLICK", PyInt_FromLong((long) wxEVT_GRID_CELL_RCLICK)); - PyDict_SetItemString(d,"wxEVT_GRID_LABEL_LCLICK", PyInt_FromLong((long) wxEVT_GRID_LABEL_LCLICK)); - PyDict_SetItemString(d,"wxEVT_GRID_LABEL_RCLICK", PyInt_FromLong((long) wxEVT_GRID_LABEL_RCLICK)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_class_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_wxControl","_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/gtk/windows2.py b/utils/wxPython/src/gtk/windows2.py deleted file mode 100644 index cffcfe18f9..0000000000 --- a/utils/wxPython/src/gtk/windows2.py +++ /dev/null @@ -1,553 +0,0 @@ -# This file was created automatically by SWIG. -import windows2c - -from misc import * - -from gdi import * - -from windows import * - -from controls import * - -from events import * -import wx -class wxGridCellPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windows2c.delete_wxGridCell(self.this) - def GetTextValue(self): - val = windows2c.wxGridCell_GetTextValue(self.this) - return val - def SetTextValue(self,arg0): - val = windows2c.wxGridCell_SetTextValue(self.this,arg0) - return val - def GetFont(self): - val = windows2c.wxGridCell_GetFont(self.this) - val = wxFontPtr(val) - return val - def SetFont(self,arg0): - val = windows2c.wxGridCell_SetFont(self.this,arg0.this) - return val - def GetTextColour(self): - val = windows2c.wxGridCell_GetTextColour(self.this) - val = wxColourPtr(val) - return val - def SetTextColour(self,arg0): - val = windows2c.wxGridCell_SetTextColour(self.this,arg0.this) - return val - def GetBackgroundColour(self): - val = windows2c.wxGridCell_GetBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def SetBackgroundColour(self,arg0): - val = windows2c.wxGridCell_SetBackgroundColour(self.this,arg0.this) - return val - def GetBackgroundBrush(self): - val = windows2c.wxGridCell_GetBackgroundBrush(self.this) - val = wxBrushPtr(val) - return val - def GetAlignment(self): - val = windows2c.wxGridCell_GetAlignment(self.this) - return val - def SetAlignment(self,arg0): - val = windows2c.wxGridCell_SetAlignment(self.this,arg0) - return val - def GetCellBitmap(self): - val = windows2c.wxGridCell_GetCellBitmap(self.this) - val = wxBitmapPtr(val) - return val - def SetCellBitmap(self,arg0): - val = windows2c.wxGridCell_SetCellBitmap(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxGridCell(wxGridCellPtr): - def __init__(self) : - self.this = windows2c.new_wxGridCell() - self.thisown = 1 - - - - -class wxGridPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AdjustScrollbars(self): - val = windows2c.wxGrid_AdjustScrollbars(self.this) - return val - def AppendCols(self,*args): - val = apply(windows2c.wxGrid_AppendCols,(self.this,)+args) - return val - def AppendRows(self,*args): - val = apply(windows2c.wxGrid_AppendRows,(self.this,)+args) - return val - def BeginBatch(self): - val = windows2c.wxGrid_BeginBatch(self.this) - return val - def CellHitTest(self,arg0,arg1): - val = windows2c.wxGrid_CellHitTest(self.this,arg0,arg1) - return val - def CreateGrid(self,arg0,arg1,*args): - val = apply(windows2c.wxGrid_CreateGrid,(self.this,arg0,arg1,)+args) - return val - def CurrentCellVisible(self): - val = windows2c.wxGrid_CurrentCellVisible(self.this) - return val - def DeleteCols(self,*args): - val = apply(windows2c.wxGrid_DeleteCols,(self.this,)+args) - return val - def DeleteRows(self,*args): - val = apply(windows2c.wxGrid_DeleteRows,(self.this,)+args) - return val - def EndBatch(self): - val = windows2c.wxGrid_EndBatch(self.this) - return val - def GetBatchCount(self): - val = windows2c.wxGrid_GetBatchCount(self.this) - return val - def GetCell(self,arg0,arg1): - val = windows2c.wxGrid_GetCell(self.this,arg0,arg1) - val = wxGridCellPtr(val) - return val - def GetCellAlignment(self,arg0,arg1): - val = windows2c.wxGrid_GetCellAlignment(self.this,arg0,arg1) - return val - def GetDefCellAlignment(self): - val = windows2c.wxGrid_GetDefCellAlignment(self.this) - return val - def GetCellBackgroundColour(self,arg0,arg1): - val = windows2c.wxGrid_GetCellBackgroundColour(self.this,arg0,arg1) - val = wxColourPtr(val) - return val - def GetDefCellBackgroundColour(self): - val = windows2c.wxGrid_GetDefCellBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def GetCellTextColour(self,arg0,arg1): - val = windows2c.wxGrid_GetCellTextColour(self.this,arg0,arg1) - val = wxColourPtr(val) - return val - def GetDefCellTextColour(self): - val = windows2c.wxGrid_GetDefCellTextColour(self.this) - val = wxColourPtr(val) - return val - def GetCellTextFont(self,arg0,arg1): - val = windows2c.wxGrid_GetCellTextFont(self.this,arg0,arg1) - val = wxFontPtr(val) - return val - def GetDefCellTextFont(self): - val = windows2c.wxGrid_GetDefCellTextFont(self.this) - val = wxFontPtr(val) - return val - def GetCellValue(self,arg0,arg1): - val = windows2c.wxGrid_GetCellValue(self.this,arg0,arg1) - return val - def GetCols(self): - val = windows2c.wxGrid_GetCols(self.this) - return val - def GetColumnWidth(self,arg0): - val = windows2c.wxGrid_GetColumnWidth(self.this,arg0) - return val - def GetCurrentRect(self): - val = windows2c.wxGrid_GetCurrentRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetCursorColumn(self): - val = windows2c.wxGrid_GetCursorColumn(self.this) - return val - def GetCursorRow(self): - val = windows2c.wxGrid_GetCursorRow(self.this) - return val - def GetEditable(self): - val = windows2c.wxGrid_GetEditable(self.this) - return val - def GetHorizScrollBar(self): - val = windows2c.wxGrid_GetHorizScrollBar(self.this) - val = wxScrollBarPtr(val) - return val - def GetLabelAlignment(self,arg0): - val = windows2c.wxGrid_GetLabelAlignment(self.this,arg0) - return val - def GetLabelBackgroundColour(self): - val = windows2c.wxGrid_GetLabelBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def GetLabelSize(self,arg0): - val = windows2c.wxGrid_GetLabelSize(self.this,arg0) - return val - def GetLabelTextColour(self): - val = windows2c.wxGrid_GetLabelTextColour(self.this) - val = wxColourPtr(val) - return val - def GetLabelTextFont(self): - val = windows2c.wxGrid_GetLabelTextFont(self.this) - val = wxFontPtr(val) - return val - def GetLabelValue(self,arg0,arg1): - val = windows2c.wxGrid_GetLabelValue(self.this,arg0,arg1) - return val - def GetRowHeight(self,arg0): - val = windows2c.wxGrid_GetRowHeight(self.this,arg0) - return val - def GetRows(self): - val = windows2c.wxGrid_GetRows(self.this) - return val - def GetScrollPosX(self): - val = windows2c.wxGrid_GetScrollPosX(self.this) - return val - def GetScrollPosY(self): - val = windows2c.wxGrid_GetScrollPosY(self.this) - return val - def GetTextItem(self): - val = windows2c.wxGrid_GetTextItem(self.this) - val = wxTextCtrlPtr(val) - return val - def GetVertScrollBar(self): - val = windows2c.wxGrid_GetVertScrollBar(self.this) - val = wxScrollBarPtr(val) - return val - def InsertCols(self,*args): - val = apply(windows2c.wxGrid_InsertCols,(self.this,)+args) - return val - def InsertRows(self,*args): - val = apply(windows2c.wxGrid_InsertRows,(self.this,)+args) - return val - def OnActivate(self,arg0): - val = windows2c.wxGrid_OnActivate(self.this,arg0) - return val - def SetCellAlignment(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellAlignment(self.this,arg0,arg1,arg2) - return val - def SetDefCellAlignment(self,arg0): - val = windows2c.wxGrid_SetDefCellAlignment(self.this,arg0) - return val - def SetCellBackgroundColour(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellBackgroundColour(self.this,arg0.this,arg1,arg2) - return val - def SetDefCellBackgroundColour(self,arg0): - val = windows2c.wxGrid_SetDefCellBackgroundColour(self.this,arg0.this) - return val - def SetCellTextColour(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellTextColour(self.this,arg0.this,arg1,arg2) - return val - def SetDefCellTextColour(self,arg0): - val = windows2c.wxGrid_SetDefCellTextColour(self.this,arg0.this) - return val - def SetCellTextFont(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellTextFont(self.this,arg0.this,arg1,arg2) - return val - def SetDefCellTextFont(self,arg0): - val = windows2c.wxGrid_SetDefCellTextFont(self.this,arg0.this) - return val - def SetCellValue(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellValue(self.this,arg0,arg1,arg2) - return val - def SetColumnWidth(self,arg0,arg1): - val = windows2c.wxGrid_SetColumnWidth(self.this,arg0,arg1) - return val - def SetDividerPen(self,arg0): - val = windows2c.wxGrid_SetDividerPen(self.this,arg0.this) - return val - def SetEditable(self,arg0): - val = windows2c.wxGrid_SetEditable(self.this,arg0) - return val - def SetGridCursor(self,arg0,arg1): - val = windows2c.wxGrid_SetGridCursor(self.this,arg0,arg1) - return val - def SetLabelAlignment(self,arg0,arg1): - val = windows2c.wxGrid_SetLabelAlignment(self.this,arg0,arg1) - return val - def SetLabelBackgroundColour(self,arg0): - val = windows2c.wxGrid_SetLabelBackgroundColour(self.this,arg0.this) - return val - def SetLabelSize(self,arg0,arg1): - val = windows2c.wxGrid_SetLabelSize(self.this,arg0,arg1) - return val - def SetLabelTextColour(self,arg0): - val = windows2c.wxGrid_SetLabelTextColour(self.this,arg0.this) - return val - def SetLabelTextFont(self,arg0): - val = windows2c.wxGrid_SetLabelTextFont(self.this,arg0.this) - return val - def SetLabelValue(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetLabelValue(self.this,arg0,arg1,arg2) - return val - def SetRowHeight(self,arg0,arg1): - val = windows2c.wxGrid_SetRowHeight(self.this,arg0,arg1) - return val - def UpdateDimensions(self): - val = windows2c.wxGrid_UpdateDimensions(self.this) - return val - def __repr__(self): - return "" -class wxGrid(wxGridPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows2c.new_wxGrid,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL) - wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL) - wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS) - wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL) - wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE) - wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK) - wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK) - wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK) - wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK) - - - - -class wxGridEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __setattr__(self,name,value): - if name == "m_row" : - windows2c.wxGridEvent_m_row_set(self.this,value) - return - if name == "m_col" : - windows2c.wxGridEvent_m_col_set(self.this,value) - return - if name == "m_x" : - windows2c.wxGridEvent_m_x_set(self.this,value) - return - if name == "m_y" : - windows2c.wxGridEvent_m_y_set(self.this,value) - return - if name == "m_control" : - windows2c.wxGridEvent_m_control_set(self.this,value) - return - if name == "m_shift" : - windows2c.wxGridEvent_m_shift_set(self.this,value) - return - if name == "m_cell" : - windows2c.wxGridEvent_m_cell_set(self.this,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_row" : - return windows2c.wxGridEvent_m_row_get(self.this) - if name == "m_col" : - return windows2c.wxGridEvent_m_col_get(self.this) - if name == "m_x" : - return windows2c.wxGridEvent_m_x_get(self.this) - if name == "m_y" : - return windows2c.wxGridEvent_m_y_get(self.this) - if name == "m_control" : - return windows2c.wxGridEvent_m_control_get(self.this) - if name == "m_shift" : - return windows2c.wxGridEvent_m_shift_get(self.this) - if name == "m_cell" : - return wxGridCellPtr(windows2c.wxGridEvent_m_cell_get(self.this)) - raise AttributeError,name - def __repr__(self): - return "" -class wxGridEvent(wxGridEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxNotebookEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self): - val = windows2c.wxNotebookEvent_GetSelection(self.this) - return val - def GetOldSelection(self): - val = windows2c.wxNotebookEvent_GetOldSelection(self.this) - return val - def __repr__(self): - return "" -class wxNotebookEvent(wxNotebookEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxNotebookPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPageCount(self): - val = windows2c.wxNotebook_GetPageCount(self.this) - return val - def SetSelection(self,arg0): - val = windows2c.wxNotebook_SetSelection(self.this,arg0) - return val - def AdvanceSelection(self,*args): - val = apply(windows2c.wxNotebook_AdvanceSelection,(self.this,)+args) - return val - def GetSelection(self): - val = windows2c.wxNotebook_GetSelection(self.this) - return val - def SetPageText(self,arg0,arg1): - val = windows2c.wxNotebook_SetPageText(self.this,arg0,arg1) - return val - def GetPageText(self,arg0): - val = windows2c.wxNotebook_GetPageText(self.this,arg0) - return val - def SetImageList(self,arg0): - val = windows2c.wxNotebook_SetImageList(self.this,arg0.this) - return val - def GetImageList(self): - val = windows2c.wxNotebook_GetImageList(self.this) - val = wxImageListPtr(val) - return val - def GetPageImage(self,arg0): - val = windows2c.wxNotebook_GetPageImage(self.this,arg0) - return val - def SetPageImage(self,arg0,arg1): - val = windows2c.wxNotebook_SetPageImage(self.this,arg0,arg1) - return val - def GetRowCount(self): - val = windows2c.wxNotebook_GetRowCount(self.this) - return val - def DeletePage(self,arg0): - val = windows2c.wxNotebook_DeletePage(self.this,arg0) - return val - def RemovePage(self,arg0): - val = windows2c.wxNotebook_RemovePage(self.this,arg0) - return val - def DeleteAllPages(self): - val = windows2c.wxNotebook_DeleteAllPages(self.this) - return val - def AddPage(self,arg0,arg1,*args): - val = apply(windows2c.wxNotebook_AddPage,(self.this,arg0.this,arg1,)+args) - return val - def GetPage(self,arg0): - val = windows2c.wxNotebook_GetPage(self.this,arg0) - return val - def ResizeChildren(self): - val = windows2c.wxNotebook_ResizeChildren(self.this) - return val - def __repr__(self): - return "" -class wxNotebook(wxNotebookPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows2c.new_wxNotebook,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSplitterWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBorderSize(self): - val = windows2c.wxSplitterWindow_GetBorderSize(self.this) - return val - def GetMinimumPaneSize(self): - val = windows2c.wxSplitterWindow_GetMinimumPaneSize(self.this) - return val - def GetSashPosition(self): - val = windows2c.wxSplitterWindow_GetSashPosition(self.this) - return val - def GetSashSize(self): - val = windows2c.wxSplitterWindow_GetSashSize(self.this) - return val - def GetSplitMode(self): - val = windows2c.wxSplitterWindow_GetSplitMode(self.this) - return val - def GetWindow1(self): - val = windows2c.wxSplitterWindow_GetWindow1(self.this) - val = wxWindowPtr(val) - return val - def GetWindow2(self): - val = windows2c.wxSplitterWindow_GetWindow2(self.this) - val = wxWindowPtr(val) - return val - def Initialize(self,arg0): - val = windows2c.wxSplitterWindow_Initialize(self.this,arg0.this) - return val - def IsSplit(self): - val = windows2c.wxSplitterWindow_IsSplit(self.this) - return val - def SetBorderSize(self,arg0): - val = windows2c.wxSplitterWindow_SetBorderSize(self.this,arg0) - return val - def SetSashPosition(self,arg0,*args): - val = apply(windows2c.wxSplitterWindow_SetSashPosition,(self.this,arg0,)+args) - return val - def SetSashSize(self,arg0): - val = windows2c.wxSplitterWindow_SetSashSize(self.this,arg0) - return val - def SetMinimumPaneSize(self,arg0): - val = windows2c.wxSplitterWindow_SetMinimumPaneSize(self.this,arg0) - return val - def SetSplitMode(self,arg0): - val = windows2c.wxSplitterWindow_SetSplitMode(self.this,arg0) - return val - def SplitHorizontally(self,arg0,arg1,*args): - val = apply(windows2c.wxSplitterWindow_SplitHorizontally,(self.this,arg0.this,arg1.this,)+args) - return val - def SplitVertically(self,arg0,arg1,*args): - val = apply(windows2c.wxSplitterWindow_SplitVertically,(self.this,arg0.this,arg1.this,)+args) - return val - def Unsplit(self,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows2c.wxSplitterWindow_Unsplit,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxSplitterWindow(wxSplitterWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows2c.new_wxSplitterWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxGRID_TEXT_CTRL = windows2c.wxGRID_TEXT_CTRL -wxGRID_HSCROLL = windows2c.wxGRID_HSCROLL -wxGRID_VSCROLL = windows2c.wxGRID_VSCROLL -wxEVT_GRID_SELECT_CELL = windows2c.wxEVT_GRID_SELECT_CELL -wxEVT_GRID_CREATE_CELL = windows2c.wxEVT_GRID_CREATE_CELL -wxEVT_GRID_CHANGE_LABELS = windows2c.wxEVT_GRID_CHANGE_LABELS -wxEVT_GRID_CHANGE_SEL_LABEL = windows2c.wxEVT_GRID_CHANGE_SEL_LABEL -wxEVT_GRID_CELL_CHANGE = windows2c.wxEVT_GRID_CELL_CHANGE -wxEVT_GRID_CELL_LCLICK = windows2c.wxEVT_GRID_CELL_LCLICK -wxEVT_GRID_CELL_RCLICK = windows2c.wxEVT_GRID_CELL_RCLICK -wxEVT_GRID_LABEL_LCLICK = windows2c.wxEVT_GRID_LABEL_LCLICK -wxEVT_GRID_LABEL_RCLICK = windows2c.wxEVT_GRID_LABEL_RCLICK diff --git a/utils/wxPython/src/gtk/windows3.cpp b/utils/wxPython/src/gtk/windows3.cpp deleted file mode 100644 index 28478c5940..0000000000 --- a/utils/wxPython/src/gtk/windows3.cpp +++ /dev/null @@ -1,1933 +0,0 @@ -/* - * FILE : gtk/windows3.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initwindows3c - -#define SWIG_name "windows3c" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxSashEventTowxCommandEvent(void *ptr) { - wxSashEvent *src; - wxCommandEvent *dest; - src = (wxSashEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxSashEventTowxEvent(void *ptr) { - wxSashEvent *src; - wxEvent *dest; - src = (wxSashEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxSashEvent_SetEdge(_swigobj,_swigarg0) (_swigobj->SetEdge(_swigarg0)) -static PyObject *_wrap_wxSashEvent_SetEdge(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEvent * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashEvent_SetEdge",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetEdge. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashEvent_SetEdge(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashEvent_GetEdge(_swigobj) (_swigobj->GetEdge()) -static PyObject *_wrap_wxSashEvent_GetEdge(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEdgePosition _result; - wxSashEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashEvent_GetEdge",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_GetEdge. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashEdgePosition )wxSashEvent_GetEdge(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashEvent_SetDragRect(_swigobj,_swigarg0) (_swigobj->SetDragRect(_swigarg0)) -static PyObject *_wrap_wxSashEvent_SetDragRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEvent * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxSashEvent_SetDragRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetDragRect. Expected _wxSashEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSashEvent_SetDragRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashEvent_SetDragRect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashEvent_GetDragRect(_swigobj) (_swigobj->GetDragRect()) -static PyObject *_wrap_wxSashEvent_GetDragRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxSashEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashEvent_GetDragRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_GetDragRect. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxSashEvent_GetDragRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSashEvent_SetDragStatus(_swigobj,_swigarg0) (_swigobj->SetDragStatus(_swigarg0)) -static PyObject *_wrap_wxSashEvent_SetDragStatus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEvent * _arg0; - wxSashDragStatus _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashEvent_SetDragStatus",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetDragStatus. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashEvent_SetDragStatus(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashEvent_GetDragStatus(_swigobj) (_swigobj->GetDragStatus()) -static PyObject *_wrap_wxSashEvent_GetDragStatus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashDragStatus _result; - wxSashEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashEvent_GetDragStatus",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_GetDragStatus. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashDragStatus )wxSashEvent_GetDragStatus(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxSashWindowTowxWindow(void *ptr) { - wxSashWindow *src; - wxWindow *dest; - src = (wxSashWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSashWindowTowxEvtHandler(void *ptr) { - wxSashWindow *src; - wxEvtHandler *dest; - src = (wxSashWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSashWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSashWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSashWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxCLIP_CHILDREN)|(wxSW_3D); - char * _arg5 = "sashWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxSashWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSashWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashWindow *)new_wxSashWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSashWindow_GetSashVisible(_swigobj,_swigarg0) (_swigobj->GetSashVisible(_swigarg0)) -static PyObject *_wrap_wxSashWindow_GetSashVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_GetSashVisible",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetSashVisible. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSashWindow_GetSashVisible(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetDefaultBorderSize(_swigobj) (_swigobj->GetDefaultBorderSize()) -static PyObject *_wrap_wxSashWindow_GetDefaultBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetDefaultBorderSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetDefaultBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetDefaultBorderSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetEdgeMargin(_swigobj,_swigarg0) (_swigobj->GetEdgeMargin(_swigarg0)) -static PyObject *_wrap_wxSashWindow_GetEdgeMargin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_GetEdgeMargin",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetEdgeMargin. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetEdgeMargin(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetExtraBorderSize(_swigobj) (_swigobj->GetExtraBorderSize()) -static PyObject *_wrap_wxSashWindow_GetExtraBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetExtraBorderSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetExtraBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetExtraBorderSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMaximumSizeX(_swigobj) (_swigobj->GetMaximumSizeX()) -static PyObject *_wrap_wxSashWindow_GetMaximumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMaximumSizeX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMaximumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMaximumSizeX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMaximumSizeY(_swigobj) (_swigobj->GetMaximumSizeY()) -static PyObject *_wrap_wxSashWindow_GetMaximumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMaximumSizeY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMaximumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMaximumSizeY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMinimumSizeX(_swigobj) (_swigobj->GetMinimumSizeX()) -static PyObject *_wrap_wxSashWindow_GetMinimumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMinimumSizeX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMinimumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMinimumSizeX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMinimumSizeY(_swigobj) (_swigobj->GetMinimumSizeY()) -static PyObject *_wrap_wxSashWindow_GetMinimumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMinimumSizeY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMinimumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMinimumSizeY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_HasBorder(_swigobj,_swigarg0) (_swigobj->HasBorder(_swigarg0)) -static PyObject *_wrap_wxSashWindow_HasBorder(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_HasBorder",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_HasBorder. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSashWindow_HasBorder(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_SetDefaultBorderSize(_swigobj,_swigarg0) (_swigobj->SetDefaultBorderSize(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetDefaultBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetDefaultBorderSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetDefaultBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetDefaultBorderSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetExtraBorderSize(_swigobj,_swigarg0) (_swigobj->SetExtraBorderSize(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetExtraBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetExtraBorderSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetExtraBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetExtraBorderSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMaximumSizeX(_swigobj,_swigarg0) (_swigobj->SetMaximumSizeX(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMaximumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMaximumSizeX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMaximumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMaximumSizeX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMaximumSizeY(_swigobj,_swigarg0) (_swigobj->SetMaximumSizeY(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMaximumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMaximumSizeY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMaximumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMaximumSizeY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMinimumSizeX(_swigobj,_swigarg0) (_swigobj->SetMinimumSizeX(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMinimumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMinimumSizeX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMinimumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMinimumSizeX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMinimumSizeY(_swigobj,_swigarg0) (_swigobj->SetMinimumSizeY(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMinimumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMinimumSizeY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMinimumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMinimumSizeY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetSashVisible(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSashVisible(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSashWindow_SetSashVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSashWindow_SetSashVisible",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetSashVisible. Expected _wxSashWindow_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetSashVisible(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetSashBorder(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSashBorder(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSashWindow_SetSashBorder(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSashWindow_SetSashBorder",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetSashBorder. Expected _wxSashWindow_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetSashBorder(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxQueryLayoutInfoEventTowxEvent(void *ptr) { - wxQueryLayoutInfoEvent *src; - wxEvent *dest; - src = (wxQueryLayoutInfoEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxQueryLayoutInfoEvent_SetRequestedLength(_swigobj,_swigarg0) (_swigobj->SetRequestedLength(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetRequestedLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetRequestedLength",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetRequestedLength. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetRequestedLength(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetRequestedLength(_swigobj) (_swigobj->GetRequestedLength()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetRequestedLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetRequestedLength",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetRequestedLength. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxQueryLayoutInfoEvent_GetRequestedLength(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetFlags(_swigobj,_swigarg0) (_swigobj->SetFlags(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetFlags",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetFlags. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetFlags(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetFlags(_swigobj) (_swigobj->GetFlags()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetFlags",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetFlags. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxQueryLayoutInfoEvent_GetFlags(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetSize(_swigobj,_swigarg0) (_swigobj->SetSize(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxQueryLayoutInfoEvent_SetSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetSize. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxQueryLayoutInfoEvent_SetSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetSize. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxQueryLayoutInfoEvent_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetOrientation(_swigobj,_swigarg0) (_swigobj->SetOrientation(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - wxLayoutOrientation _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetOrientation",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetOrientation. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutOrientation _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetOrientation. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutOrientation )wxQueryLayoutInfoEvent_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetAlignment(_swigobj,_swigarg0) (_swigobj->SetAlignment(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - wxLayoutAlignment _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetAlignment. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlignment _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetAlignment. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutAlignment )wxQueryLayoutInfoEvent_GetAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxCalculateLayoutEventTowxEvent(void *ptr) { - wxCalculateLayoutEvent *src; - wxEvent *dest; - src = (wxCalculateLayoutEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxCalculateLayoutEvent_SetFlags(_swigobj,_swigarg0) (_swigobj->SetFlags(_swigarg0)) -static PyObject *_wrap_wxCalculateLayoutEvent_SetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCalculateLayoutEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCalculateLayoutEvent_SetFlags",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_SetFlags. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCalculateLayoutEvent_SetFlags(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCalculateLayoutEvent_GetFlags(_swigobj) (_swigobj->GetFlags()) -static PyObject *_wrap_wxCalculateLayoutEvent_GetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCalculateLayoutEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCalculateLayoutEvent_GetFlags",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_GetFlags. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCalculateLayoutEvent_GetFlags(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCalculateLayoutEvent_SetRect(_swigobj,_swigarg0) (_swigobj->SetRect(_swigarg0)) -static PyObject *_wrap_wxCalculateLayoutEvent_SetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCalculateLayoutEvent * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxCalculateLayoutEvent_SetRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_SetRect. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxCalculateLayoutEvent_SetRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCalculateLayoutEvent_SetRect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCalculateLayoutEvent_GetRect(_swigobj) (_swigobj->GetRect()) -static PyObject *_wrap_wxCalculateLayoutEvent_GetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxCalculateLayoutEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCalculateLayoutEvent_GetRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_GetRect. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxCalculateLayoutEvent_GetRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxSashLayoutWindowTowxSashWindow(void *ptr) { - wxSashLayoutWindow *src; - wxSashWindow *dest; - src = (wxSashLayoutWindow *) ptr; - dest = (wxSashWindow *) src; - return (void *) dest; -} - -static void *SwigwxSashLayoutWindowTowxWindow(void *ptr) { - wxSashLayoutWindow *src; - wxWindow *dest; - src = (wxSashLayoutWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSashLayoutWindowTowxEvtHandler(void *ptr) { - wxSashLayoutWindow *src; - wxEvtHandler *dest; - src = (wxSashLayoutWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSashLayoutWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSashLayoutWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSashLayoutWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxCLIP_CHILDREN)|(wxSW_3D); - char * _arg5 = "layoutWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxSashLayoutWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashLayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashLayoutWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSashLayoutWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashLayoutWindow *)new_wxSashLayoutWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashLayoutWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSashLayoutWindow_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxSashLayoutWindow_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlignment _result; - wxSashLayoutWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashLayoutWindow_GetAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_GetAlignment. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutAlignment )wxSashLayoutWindow_GetAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashLayoutWindow_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxSashLayoutWindow_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutOrientation _result; - wxSashLayoutWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashLayoutWindow_GetOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_GetOrientation. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutOrientation )wxSashLayoutWindow_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashLayoutWindow_SetAlignment(_swigobj,_swigarg0) (_swigobj->SetAlignment(_swigarg0)) -static PyObject *_wrap_wxSashLayoutWindow_SetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _arg0; - wxLayoutAlignment _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashLayoutWindow_SetAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetAlignment. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashLayoutWindow_SetAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashLayoutWindow_SetDefaultSize(_swigobj,_swigarg0) (_swigobj->SetDefaultSize(_swigarg0)) -static PyObject *_wrap_wxSashLayoutWindow_SetDefaultSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxSashLayoutWindow_SetDefaultSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetDefaultSize. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSashLayoutWindow_SetDefaultSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashLayoutWindow_SetDefaultSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashLayoutWindow_SetOrientation(_swigobj,_swigarg0) (_swigobj->SetOrientation(_swigarg0)) -static PyObject *_wrap_wxSashLayoutWindow_SetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _arg0; - wxLayoutOrientation _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashLayoutWindow_SetOrientation",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetOrientation. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashLayoutWindow_SetOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxLayoutAlgorithm() (new wxLayoutAlgorithm()) -static PyObject *_wrap_new_wxLayoutAlgorithm(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlgorithm * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxLayoutAlgorithm")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutAlgorithm *)new_wxLayoutAlgorithm(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutAlgorithm_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxLayoutAlgorithm(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxLayoutAlgorithm(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlgorithm * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxLayoutAlgorithm",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxLayoutAlgorithm. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxLayoutAlgorithm(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxLayoutAlgorithm_LayoutMDIFrame(_swigobj,_swigarg0,_swigarg1) (_swigobj->LayoutMDIFrame(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxLayoutAlgorithm_LayoutMDIFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxLayoutAlgorithm * _arg0; - wxMDIParentFrame * _arg1; - wxRect * _arg2 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxLayoutAlgorithm_LayoutMDIFrame",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxMDIParentFrame_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxLayoutAlgorithm_LayoutMDIFrame(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxLayoutAlgorithm_LayoutFrame(_swigobj,_swigarg0,_swigarg1) (_swigobj->LayoutFrame(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxLayoutAlgorithm_LayoutFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxLayoutAlgorithm * _arg0; - wxFrame * _arg1; - wxWindow * _arg2 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxLayoutAlgorithm_LayoutFrame",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutFrame. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxLayoutAlgorithm_LayoutFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxLayoutAlgorithm_LayoutFrame(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxLayoutAlgorithm_LayoutWindow(_swigobj,_swigarg0,_swigarg1) (_swigobj->LayoutWindow(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxLayoutAlgorithm_LayoutWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxLayoutAlgorithm * _arg0; - wxWindow * _arg1; - wxWindow * _arg2 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxLayoutAlgorithm_LayoutWindow",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutWindow. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxLayoutAlgorithm_LayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxLayoutAlgorithm_LayoutWindow(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef windows3cMethods[] = { - { "wxLayoutAlgorithm_LayoutWindow", _wrap_wxLayoutAlgorithm_LayoutWindow, 1 }, - { "wxLayoutAlgorithm_LayoutFrame", _wrap_wxLayoutAlgorithm_LayoutFrame, 1 }, - { "wxLayoutAlgorithm_LayoutMDIFrame", _wrap_wxLayoutAlgorithm_LayoutMDIFrame, 1 }, - { "delete_wxLayoutAlgorithm", _wrap_delete_wxLayoutAlgorithm, 1 }, - { "new_wxLayoutAlgorithm", _wrap_new_wxLayoutAlgorithm, 1 }, - { "wxSashLayoutWindow_SetOrientation", _wrap_wxSashLayoutWindow_SetOrientation, 1 }, - { "wxSashLayoutWindow_SetDefaultSize", _wrap_wxSashLayoutWindow_SetDefaultSize, 1 }, - { "wxSashLayoutWindow_SetAlignment", _wrap_wxSashLayoutWindow_SetAlignment, 1 }, - { "wxSashLayoutWindow_GetOrientation", _wrap_wxSashLayoutWindow_GetOrientation, 1 }, - { "wxSashLayoutWindow_GetAlignment", _wrap_wxSashLayoutWindow_GetAlignment, 1 }, - { "new_wxSashLayoutWindow", _wrap_new_wxSashLayoutWindow, 1 }, - { "wxCalculateLayoutEvent_GetRect", _wrap_wxCalculateLayoutEvent_GetRect, 1 }, - { "wxCalculateLayoutEvent_SetRect", _wrap_wxCalculateLayoutEvent_SetRect, 1 }, - { "wxCalculateLayoutEvent_GetFlags", _wrap_wxCalculateLayoutEvent_GetFlags, 1 }, - { "wxCalculateLayoutEvent_SetFlags", _wrap_wxCalculateLayoutEvent_SetFlags, 1 }, - { "wxQueryLayoutInfoEvent_GetAlignment", _wrap_wxQueryLayoutInfoEvent_GetAlignment, 1 }, - { "wxQueryLayoutInfoEvent_SetAlignment", _wrap_wxQueryLayoutInfoEvent_SetAlignment, 1 }, - { "wxQueryLayoutInfoEvent_GetOrientation", _wrap_wxQueryLayoutInfoEvent_GetOrientation, 1 }, - { "wxQueryLayoutInfoEvent_SetOrientation", _wrap_wxQueryLayoutInfoEvent_SetOrientation, 1 }, - { "wxQueryLayoutInfoEvent_GetSize", _wrap_wxQueryLayoutInfoEvent_GetSize, 1 }, - { "wxQueryLayoutInfoEvent_SetSize", _wrap_wxQueryLayoutInfoEvent_SetSize, 1 }, - { "wxQueryLayoutInfoEvent_GetFlags", _wrap_wxQueryLayoutInfoEvent_GetFlags, 1 }, - { "wxQueryLayoutInfoEvent_SetFlags", _wrap_wxQueryLayoutInfoEvent_SetFlags, 1 }, - { "wxQueryLayoutInfoEvent_GetRequestedLength", _wrap_wxQueryLayoutInfoEvent_GetRequestedLength, 1 }, - { "wxQueryLayoutInfoEvent_SetRequestedLength", _wrap_wxQueryLayoutInfoEvent_SetRequestedLength, 1 }, - { "wxSashWindow_SetSashBorder", _wrap_wxSashWindow_SetSashBorder, 1 }, - { "wxSashWindow_SetSashVisible", _wrap_wxSashWindow_SetSashVisible, 1 }, - { "wxSashWindow_SetMinimumSizeY", _wrap_wxSashWindow_SetMinimumSizeY, 1 }, - { "wxSashWindow_SetMinimumSizeX", _wrap_wxSashWindow_SetMinimumSizeX, 1 }, - { "wxSashWindow_SetMaximumSizeY", _wrap_wxSashWindow_SetMaximumSizeY, 1 }, - { "wxSashWindow_SetMaximumSizeX", _wrap_wxSashWindow_SetMaximumSizeX, 1 }, - { "wxSashWindow_SetExtraBorderSize", _wrap_wxSashWindow_SetExtraBorderSize, 1 }, - { "wxSashWindow_SetDefaultBorderSize", _wrap_wxSashWindow_SetDefaultBorderSize, 1 }, - { "wxSashWindow_HasBorder", _wrap_wxSashWindow_HasBorder, 1 }, - { "wxSashWindow_GetMinimumSizeY", _wrap_wxSashWindow_GetMinimumSizeY, 1 }, - { "wxSashWindow_GetMinimumSizeX", _wrap_wxSashWindow_GetMinimumSizeX, 1 }, - { "wxSashWindow_GetMaximumSizeY", _wrap_wxSashWindow_GetMaximumSizeY, 1 }, - { "wxSashWindow_GetMaximumSizeX", _wrap_wxSashWindow_GetMaximumSizeX, 1 }, - { "wxSashWindow_GetExtraBorderSize", _wrap_wxSashWindow_GetExtraBorderSize, 1 }, - { "wxSashWindow_GetEdgeMargin", _wrap_wxSashWindow_GetEdgeMargin, 1 }, - { "wxSashWindow_GetDefaultBorderSize", _wrap_wxSashWindow_GetDefaultBorderSize, 1 }, - { "wxSashWindow_GetSashVisible", _wrap_wxSashWindow_GetSashVisible, 1 }, - { "new_wxSashWindow", _wrap_new_wxSashWindow, 1 }, - { "wxSashEvent_GetDragStatus", _wrap_wxSashEvent_GetDragStatus, 1 }, - { "wxSashEvent_SetDragStatus", _wrap_wxSashEvent_SetDragStatus, 1 }, - { "wxSashEvent_GetDragRect", _wrap_wxSashEvent_GetDragRect, 1 }, - { "wxSashEvent_SetDragRect", _wrap_wxSashEvent_SetDragRect, 1 }, - { "wxSashEvent_GetEdge", _wrap_wxSashEvent_GetEdge, 1 }, - { "wxSashEvent_SetEdge", _wrap_wxSashEvent_SetEdge, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwindows3c)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("windows3c", windows3cMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxSASH_TOP", PyInt_FromLong((long) wxSASH_TOP)); - PyDict_SetItemString(d,"wxSASH_RIGHT", PyInt_FromLong((long) wxSASH_RIGHT)); - PyDict_SetItemString(d,"wxSASH_BOTTOM", PyInt_FromLong((long) wxSASH_BOTTOM)); - PyDict_SetItemString(d,"wxSASH_LEFT", PyInt_FromLong((long) wxSASH_LEFT)); - PyDict_SetItemString(d,"wxSASH_NONE", PyInt_FromLong((long) wxSASH_NONE)); - PyDict_SetItemString(d,"wxEVT_SASH_DRAGGED", PyInt_FromLong((long) wxEVT_SASH_DRAGGED)); - PyDict_SetItemString(d,"wxSW_3D", PyInt_FromLong((long) wxSW_3D)); - PyDict_SetItemString(d,"wxSASH_STATUS_OK", PyInt_FromLong((long) wxSASH_STATUS_OK)); - PyDict_SetItemString(d,"wxSASH_STATUS_OUT_OF_RANGE", PyInt_FromLong((long) wxSASH_STATUS_OUT_OF_RANGE)); - PyDict_SetItemString(d,"wxLAYOUT_HORIZONTAL", PyInt_FromLong((long) wxLAYOUT_HORIZONTAL)); - PyDict_SetItemString(d,"wxLAYOUT_VERTICAL", PyInt_FromLong((long) wxLAYOUT_VERTICAL)); - PyDict_SetItemString(d,"wxLAYOUT_NONE", PyInt_FromLong((long) wxLAYOUT_NONE)); - PyDict_SetItemString(d,"wxLAYOUT_TOP", PyInt_FromLong((long) wxLAYOUT_TOP)); - PyDict_SetItemString(d,"wxLAYOUT_LEFT", PyInt_FromLong((long) wxLAYOUT_LEFT)); - PyDict_SetItemString(d,"wxLAYOUT_RIGHT", PyInt_FromLong((long) wxLAYOUT_RIGHT)); - PyDict_SetItemString(d,"wxLAYOUT_BOTTOM", PyInt_FromLong((long) wxLAYOUT_BOTTOM)); - PyDict_SetItemString(d,"wxEVT_QUERY_LAYOUT_INFO", PyInt_FromLong((long) wxEVT_QUERY_LAYOUT_INFO)); - PyDict_SetItemString(d,"wxEVT_CALCULATE_LAYOUT", PyInt_FromLong((long) wxEVT_CALCULATE_LAYOUT)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashWindow",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_class_wxSashEvent","_wxSashEvent",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSashLayoutWindow","_class_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashWindow",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxSashLayoutWindow","_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxSashEvent","_class_wxSashEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/gtk/windows3.py b/utils/wxPython/src/gtk/windows3.py deleted file mode 100644 index cf20a91997..0000000000 --- a/utils/wxPython/src/gtk/windows3.py +++ /dev/null @@ -1,300 +0,0 @@ -# This file was created automatically by SWIG. -import windows3c - -from misc import * - -from gdi import * - -from windows import * - -from windows2 import * - -from controls import * - -from events import * - -from mdi import * - -from frames import * - -from stattool import * -import wx -class wxSashEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetEdge(self,arg0): - val = windows3c.wxSashEvent_SetEdge(self.this,arg0) - return val - def GetEdge(self): - val = windows3c.wxSashEvent_GetEdge(self.this) - return val - def SetDragRect(self,arg0): - val = windows3c.wxSashEvent_SetDragRect(self.this,arg0.this) - return val - def GetDragRect(self): - val = windows3c.wxSashEvent_GetDragRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def SetDragStatus(self,arg0): - val = windows3c.wxSashEvent_SetDragStatus(self.this,arg0) - return val - def GetDragStatus(self): - val = windows3c.wxSashEvent_GetDragStatus(self.this) - return val - def __repr__(self): - return "" -class wxSashEvent(wxSashEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSashWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSashVisible(self,arg0): - val = windows3c.wxSashWindow_GetSashVisible(self.this,arg0) - return val - def GetDefaultBorderSize(self): - val = windows3c.wxSashWindow_GetDefaultBorderSize(self.this) - return val - def GetEdgeMargin(self,arg0): - val = windows3c.wxSashWindow_GetEdgeMargin(self.this,arg0) - return val - def GetExtraBorderSize(self): - val = windows3c.wxSashWindow_GetExtraBorderSize(self.this) - return val - def GetMaximumSizeX(self): - val = windows3c.wxSashWindow_GetMaximumSizeX(self.this) - return val - def GetMaximumSizeY(self): - val = windows3c.wxSashWindow_GetMaximumSizeY(self.this) - return val - def GetMinimumSizeX(self): - val = windows3c.wxSashWindow_GetMinimumSizeX(self.this) - return val - def GetMinimumSizeY(self): - val = windows3c.wxSashWindow_GetMinimumSizeY(self.this) - return val - def HasBorder(self,arg0): - val = windows3c.wxSashWindow_HasBorder(self.this,arg0) - return val - def SetDefaultBorderSize(self,arg0): - val = windows3c.wxSashWindow_SetDefaultBorderSize(self.this,arg0) - return val - def SetExtraBorderSize(self,arg0): - val = windows3c.wxSashWindow_SetExtraBorderSize(self.this,arg0) - return val - def SetMaximumSizeX(self,arg0): - val = windows3c.wxSashWindow_SetMaximumSizeX(self.this,arg0) - return val - def SetMaximumSizeY(self,arg0): - val = windows3c.wxSashWindow_SetMaximumSizeY(self.this,arg0) - return val - def SetMinimumSizeX(self,arg0): - val = windows3c.wxSashWindow_SetMinimumSizeX(self.this,arg0) - return val - def SetMinimumSizeY(self,arg0): - val = windows3c.wxSashWindow_SetMinimumSizeY(self.this,arg0) - return val - def SetSashVisible(self,arg0,arg1): - val = windows3c.wxSashWindow_SetSashVisible(self.this,arg0,arg1) - return val - def SetSashBorder(self,arg0,arg1): - val = windows3c.wxSashWindow_SetSashBorder(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxSashWindow(wxSashWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows3c.new_wxSashWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxQueryLayoutInfoEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetRequestedLength(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetRequestedLength(self.this,arg0) - return val - def GetRequestedLength(self): - val = windows3c.wxQueryLayoutInfoEvent_GetRequestedLength(self.this) - return val - def SetFlags(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetFlags(self.this,arg0) - return val - def GetFlags(self): - val = windows3c.wxQueryLayoutInfoEvent_GetFlags(self.this) - return val - def SetSize(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetSize(self.this,arg0.this) - return val - def GetSize(self): - val = windows3c.wxQueryLayoutInfoEvent_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def SetOrientation(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetOrientation(self.this,arg0) - return val - def GetOrientation(self): - val = windows3c.wxQueryLayoutInfoEvent_GetOrientation(self.this) - return val - def SetAlignment(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetAlignment(self.this,arg0) - return val - def GetAlignment(self): - val = windows3c.wxQueryLayoutInfoEvent_GetAlignment(self.this) - return val - def __repr__(self): - return "" -class wxQueryLayoutInfoEvent(wxQueryLayoutInfoEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxCalculateLayoutEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetFlags(self,arg0): - val = windows3c.wxCalculateLayoutEvent_SetFlags(self.this,arg0) - return val - def GetFlags(self): - val = windows3c.wxCalculateLayoutEvent_GetFlags(self.this) - return val - def SetRect(self,arg0): - val = windows3c.wxCalculateLayoutEvent_SetRect(self.this,arg0.this) - return val - def GetRect(self): - val = windows3c.wxCalculateLayoutEvent_GetRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" -class wxCalculateLayoutEvent(wxCalculateLayoutEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSashLayoutWindowPtr(wxSashWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetAlignment(self): - val = windows3c.wxSashLayoutWindow_GetAlignment(self.this) - return val - def GetOrientation(self): - val = windows3c.wxSashLayoutWindow_GetOrientation(self.this) - return val - def SetAlignment(self,arg0): - val = windows3c.wxSashLayoutWindow_SetAlignment(self.this,arg0) - return val - def SetDefaultSize(self,arg0): - val = windows3c.wxSashLayoutWindow_SetDefaultSize(self.this,arg0.this) - return val - def SetOrientation(self,arg0): - val = windows3c.wxSashLayoutWindow_SetOrientation(self.this,arg0) - return val - def __repr__(self): - return "" -class wxSashLayoutWindow(wxSashLayoutWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows3c.new_wxSashLayoutWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._checkForCallback(self, 'OnCalculateLayout', wxEVT_CALCULATE_LAYOUT) - wx._checkForCallback(self, 'OnQueryLayoutInfo', wxEVT_QUERY_LAYOUT_INFO) - - - - -class wxLayoutAlgorithmPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windows3c.delete_wxLayoutAlgorithm(self.this) - def LayoutMDIFrame(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows3c.wxLayoutAlgorithm_LayoutMDIFrame,(self.this,arg0.this,)+args) - return val - def LayoutFrame(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows3c.wxLayoutAlgorithm_LayoutFrame,(self.this,arg0.this,)+args) - return val - def LayoutWindow(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows3c.wxLayoutAlgorithm_LayoutWindow,(self.this,arg0.this,)+args) - return val - def __repr__(self): - return "" -class wxLayoutAlgorithm(wxLayoutAlgorithmPtr): - def __init__(self) : - self.this = windows3c.new_wxLayoutAlgorithm() - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxSASH_TOP = windows3c.wxSASH_TOP -wxSASH_RIGHT = windows3c.wxSASH_RIGHT -wxSASH_BOTTOM = windows3c.wxSASH_BOTTOM -wxSASH_LEFT = windows3c.wxSASH_LEFT -wxSASH_NONE = windows3c.wxSASH_NONE -wxEVT_SASH_DRAGGED = windows3c.wxEVT_SASH_DRAGGED -wxSW_3D = windows3c.wxSW_3D -wxSASH_STATUS_OK = windows3c.wxSASH_STATUS_OK -wxSASH_STATUS_OUT_OF_RANGE = windows3c.wxSASH_STATUS_OUT_OF_RANGE -wxLAYOUT_HORIZONTAL = windows3c.wxLAYOUT_HORIZONTAL -wxLAYOUT_VERTICAL = windows3c.wxLAYOUT_VERTICAL -wxLAYOUT_NONE = windows3c.wxLAYOUT_NONE -wxLAYOUT_TOP = windows3c.wxLAYOUT_TOP -wxLAYOUT_LEFT = windows3c.wxLAYOUT_LEFT -wxLAYOUT_RIGHT = windows3c.wxLAYOUT_RIGHT -wxLAYOUT_BOTTOM = windows3c.wxLAYOUT_BOTTOM -wxEVT_QUERY_LAYOUT_INFO = windows3c.wxEVT_QUERY_LAYOUT_INFO -wxEVT_CALCULATE_LAYOUT = windows3c.wxEVT_CALCULATE_LAYOUT diff --git a/utils/wxPython/src/gtk/wx.cpp b/utils/wxPython/src/gtk/wx.cpp deleted file mode 100644 index dda350722c..0000000000 --- a/utils/wxPython/src/gtk/wx.cpp +++ /dev/null @@ -1,2190 +0,0 @@ -/* - * FILE : gtk/wx.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/*********************************************************************** - * $Header$ - * swig_lib/python/python.cfg - * - * This file contains coded needed to add variable linking to the - * Python interpreter. C variables are added as a new kind of Python - * datatype. - * - * Also contains supporting code for building python under Windows - * and things like that. - * - * $Log$ - * Revision 1.12 1999/05/15 00:56:11 RD - * fixes for GetReturnCode/SetReturnCode - * - ************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -#ifdef __cplusplus -} -#endif - -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef SWIG_GLOBAL -#ifdef __cplusplus -#define SWIGSTATIC extern "C" -#else -#define SWIGSTATIC -#endif -#endif - -#ifndef SWIGSTATIC -#define SWIGSTATIC static -#endif - -typedef struct { - char *name; - PyObject *(*get_attr)(void); - int (*set_attr)(PyObject *); -} swig_globalvar; - -typedef struct swig_varlinkobject { - PyObject_HEAD - swig_globalvar **vars; - int nvars; - int maxvars; -} swig_varlinkobject; - -/* ---------------------------------------------------------------------- - swig_varlink_repr() - - Function for python repr method - ---------------------------------------------------------------------- */ - -static PyObject * -swig_varlink_repr(swig_varlinkobject *v) -{ - v = v; - return PyString_FromString(""); -} - -/* --------------------------------------------------------------------- - swig_varlink_print() - - Print out all of the global variable names - --------------------------------------------------------------------- */ - -static int -swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) -{ - - int i = 0; - flags = flags; - fprintf(fp,"Global variables { "); - while (v->vars[i]) { - fprintf(fp,"%s", v->vars[i]->name); - i++; - if (v->vars[i]) fprintf(fp,", "); - } - fprintf(fp," }\n"); - return 0; -} - -/* -------------------------------------------------------------------- - swig_varlink_getattr - - This function gets the value of a variable and returns it as a - PyObject. In our case, we'll be looking at the datatype and - converting into a number or string - -------------------------------------------------------------------- */ - -static PyObject * -swig_varlink_getattr(swig_varlinkobject *v, char *n) -{ - int i = 0; - char temp[128]; - - while (v->vars[i]) { - if (strcmp(v->vars[i]->name,n) == 0) { - return (*v->vars[i]->get_attr)(); - } - i++; - } - sprintf(temp,"C global variable %s not found.", n); - PyErr_SetString(PyExc_NameError,temp); - return NULL; -} - -/* ------------------------------------------------------------------- - swig_varlink_setattr() - - This function sets the value of a variable. - ------------------------------------------------------------------- */ - -static int -swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) -{ - char temp[128]; - int i = 0; - while (v->vars[i]) { - if (strcmp(v->vars[i]->name,n) == 0) { - return (*v->vars[i]->set_attr)(p); - } - i++; - } - sprintf(temp,"C global variable %s not found.", n); - PyErr_SetString(PyExc_NameError,temp); - return 1; -} - -statichere PyTypeObject varlinktype = { -/* PyObject_HEAD_INIT(&PyType_Type) Note : This doesn't work on some machines */ - PyObject_HEAD_INIT(0) - 0, - "varlink", /* Type name */ - sizeof(swig_varlinkobject), /* Basic size */ - 0, /* Itemsize */ - 0, /* Deallocator */ - (printfunc) swig_varlink_print, /* Print */ - (getattrfunc) swig_varlink_getattr, /* get attr */ - (setattrfunc) swig_varlink_setattr, /* Set attr */ - 0, /* tp_compare */ - (reprfunc) swig_varlink_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_mapping*/ - 0, /* tp_hash */ -}; - -/* Create a variable linking object for use later */ - -SWIGSTATIC PyObject * -SWIG_newvarlink(void) -{ - swig_varlinkobject *result = 0; - result = PyMem_NEW(swig_varlinkobject,1); - varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ - result->ob_type = &varlinktype; - /* _Py_NewReference(result); Does not seem to be necessary */ - result->nvars = 0; - result->maxvars = 64; - result->vars = (swig_globalvar **) malloc(64*sizeof(swig_globalvar *)); - result->vars[0] = 0; - result->ob_refcnt = 0; - Py_XINCREF((PyObject *) result); - return ((PyObject*) result); -} - -SWIGSTATIC void -SWIG_addvarlink(PyObject *p, char *name, - PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) -{ - swig_varlinkobject *v; - v= (swig_varlinkobject *) p; - - if (v->nvars >= v->maxvars -1) { - v->maxvars = 2*v->maxvars; - v->vars = (swig_globalvar **) realloc(v->vars,v->maxvars*sizeof(swig_globalvar *)); - if (v->vars == NULL) { - fprintf(stderr,"SWIG : Fatal error in initializing Python module.\n"); - exit(1); - } - } - v->vars[v->nvars] = (swig_globalvar *) malloc(sizeof(swig_globalvar)); - v->vars[v->nvars]->name = (char *) malloc(strlen(name)+1); - strcpy(v->vars[v->nvars]->name,name); - v->vars[v->nvars]->get_attr = get_attr; - v->vars[v->nvars]->set_attr = set_attr; - v->nvars++; - v->vars[v->nvars] = 0; -} - - - -/***************************************************************************** - * $Header$ - * - * swigptr.swg - * - * This file contains supporting code for the SWIG run-time type checking - * mechanism. The following functions are available : - * - * SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)); - * - * Registers a new type-mapping with the type-checker. origtype is the - * original datatype and newtype is an equivalent type. cast is optional - * pointer to a function to cast pointer values between types (this - * is typically used to cast pointers from derived classes to base classes in C++) - * - * SWIG_MakePtr(char *buffer, void *ptr, char *typestring); - * - * Makes a pointer string from a pointer and typestring. The result is returned - * in buffer which is assumed to hold enough space for the result. - * - * char * SWIG_GetPtr(char *buffer, void **ptr, char *type) - * - * Gets a pointer value from a string. If there is a type-mismatch, returns - * a character string to the received type. On success, returns NULL. - * - * - * You can remap these functions by making a file called "swigptr.swg" in - * your the same directory as the interface file you are wrapping. - * - * These functions are normally declared static, but this file can be - * can be used in a multi-module environment by redefining the symbol - * SWIGSTATIC. - *****************************************************************************/ - -#include - -#ifdef SWIG_GLOBAL -#ifdef __cplusplus -#define SWIGSTATIC extern "C" -#else -#define SWIGSTATIC -#endif -#endif - -#ifndef SWIGSTATIC -#define SWIGSTATIC static -#endif - - -/* SWIG pointer structure */ - -typedef struct SwigPtrType { - char *name; /* Datatype name */ - int len; /* Length (used for optimization) */ - void *(*cast)(void *); /* Pointer casting function */ - struct SwigPtrType *next; /* Linked list pointer */ -} SwigPtrType; - -/* Pointer cache structure */ - -typedef struct { - int stat; /* Status (valid) bit */ - SwigPtrType *tp; /* Pointer to type structure */ - char name[256]; /* Given datatype name */ - char mapped[256]; /* Equivalent name */ -} SwigCacheType; - -/* Some variables */ - -static int SwigPtrMax = 64; /* Max entries that can be currently held */ - /* This value may be adjusted dynamically */ -static int SwigPtrN = 0; /* Current number of entries */ -static int SwigPtrSort = 0; /* Status flag indicating sort */ -static int SwigStart[256]; /* Starting positions of types */ - -/* Pointer table */ -static SwigPtrType *SwigPtrTable = 0; /* Table containing pointer equivalences */ - -/* Cached values */ - -#define SWIG_CACHESIZE 8 -#define SWIG_CACHEMASK 0x7 -static SwigCacheType SwigCache[SWIG_CACHESIZE]; -static int SwigCacheIndex = 0; -static int SwigLastCache = 0; - -/* Sort comparison function */ -static int swigsort(const void *data1, const void *data2) { - SwigPtrType *d1 = (SwigPtrType *) data1; - SwigPtrType *d2 = (SwigPtrType *) data2; - return strcmp(d1->name,d2->name); -} - -/* Binary Search function */ -static int swigcmp(const void *key, const void *data) { - char *k = (char *) key; - SwigPtrType *d = (SwigPtrType *) data; - return strncmp(k,d->name,d->len); -} - -/* Register a new datatype with the type-checker */ - -SWIGSTATIC -void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) { - - int i; - SwigPtrType *t = 0,*t1; - - /* Allocate the pointer table if necessary */ - - if (!SwigPtrTable) { - SwigPtrTable = (SwigPtrType *) malloc(SwigPtrMax*sizeof(SwigPtrType)); - SwigPtrN = 0; - } - /* Grow the table */ - if (SwigPtrN >= SwigPtrMax) { - SwigPtrMax = 2*SwigPtrMax; - SwigPtrTable = (SwigPtrType *) realloc((char *) SwigPtrTable,SwigPtrMax*sizeof(SwigPtrType)); - } - for (i = 0; i < SwigPtrN; i++) - if (strcmp(SwigPtrTable[i].name,origtype) == 0) { - t = &SwigPtrTable[i]; - break; - } - if (!t) { - t = &SwigPtrTable[SwigPtrN]; - t->name = origtype; - t->len = strlen(t->name); - t->cast = 0; - t->next = 0; - SwigPtrN++; - } - - /* Check for existing entry */ - - while (t->next) { - if ((strcmp(t->name,newtype) == 0)) { - if (cast) t->cast = cast; - return; - } - t = t->next; - } - - /* Now place entry (in sorted order) */ - - t1 = (SwigPtrType *) malloc(sizeof(SwigPtrType)); - t1->name = newtype; - t1->len = strlen(t1->name); - t1->cast = cast; - t1->next = 0; - t->next = t1; - SwigPtrSort = 0; -} - -/* Make a pointer value string */ - -SWIGSTATIC -void SWIG_MakePtr(char *_c, const void *_ptr, char *type) { - static char _hex[16] = - {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f'}; - unsigned long _p, _s; - char _result[20], *_r; /* Note : a 64-bit hex number = 16 digits */ - _r = _result; - _p = (unsigned long) _ptr; - if (_p > 0) { - while (_p > 0) { - _s = _p & 0xf; - *(_r++) = _hex[_s]; - _p = _p >> 4; - } - *_r = '_'; - while (_r >= _result) - *(_c++) = *(_r--); - } else { - strcpy (_c, "NULL"); - } - if (_ptr) - strcpy (_c, type); -} - -/* Define for backwards compatibility */ - -#define _swig_make_hex SWIG_MakePtr - -/* Function for getting a pointer value */ - -SWIGSTATIC -char *SWIG_GetPtr(char *_c, void **ptr, char *_t) -{ - unsigned long _p; - char temp_type[256]; - char *name; - int i, len; - SwigPtrType *sp,*tp; - SwigCacheType *cache; - int start, end; - _p = 0; - - /* Pointer values must start with leading underscore */ - if (*_c == '_') { - _c++; - /* Extract hex value from pointer */ - while (*_c) { - if ((*_c >= '0') && (*_c <= '9')) - _p = (_p << 4) + (*_c - '0'); - else if ((*_c >= 'a') && (*_c <= 'f')) - _p = (_p << 4) + ((*_c - 'a') + 10); - else - break; - _c++; - } - - if (_t) { - if (strcmp(_t,_c)) { - if (!SwigPtrSort) { - qsort((void *) SwigPtrTable, SwigPtrN, sizeof(SwigPtrType), swigsort); - for (i = 0; i < 256; i++) { - SwigStart[i] = SwigPtrN; - } - for (i = SwigPtrN-1; i >= 0; i--) { - SwigStart[(int) (SwigPtrTable[i].name[1])] = i; - } - for (i = 255; i >= 1; i--) { - if (SwigStart[i-1] > SwigStart[i]) - SwigStart[i-1] = SwigStart[i]; - } - SwigPtrSort = 1; - for (i = 0; i < SWIG_CACHESIZE; i++) - SwigCache[i].stat = 0; - } - - /* First check cache for matches. Uses last cache value as starting point */ - cache = &SwigCache[SwigLastCache]; - for (i = 0; i < SWIG_CACHESIZE; i++) { - if (cache->stat) { - if (strcmp(_t,cache->name) == 0) { - if (strcmp(_c,cache->mapped) == 0) { - cache->stat++; - *ptr = (void *) _p; - if (cache->tp->cast) *ptr = (*(cache->tp->cast))(*ptr); - return (char *) 0; - } - } - } - SwigLastCache = (SwigLastCache+1) & SWIG_CACHEMASK; - if (!SwigLastCache) cache = SwigCache; - else cache++; - } - /* We have a type mismatch. Will have to look through our type - mapping table to figure out whether or not we can accept this datatype */ - - start = SwigStart[(int) _t[1]]; - end = SwigStart[(int) _t[1]+1]; - sp = &SwigPtrTable[start]; - while (start < end) { - if (swigcmp(_t,sp) == 0) break; - sp++; - start++; - } - if (start >= end) sp = 0; - /* Try to find a match for this */ - if (sp) { - while (swigcmp(_t,sp) == 0) { - name = sp->name; - len = sp->len; - tp = sp->next; - /* Try to find entry for our given datatype */ - while(tp) { - if (tp->len >= 255) { - return _c; - } - strcpy(temp_type,tp->name); - strncat(temp_type,_t+len,255-tp->len); - if (strcmp(_c,temp_type) == 0) { - - strcpy(SwigCache[SwigCacheIndex].mapped,_c); - strcpy(SwigCache[SwigCacheIndex].name,_t); - SwigCache[SwigCacheIndex].stat = 1; - SwigCache[SwigCacheIndex].tp = tp; - SwigCacheIndex = SwigCacheIndex & SWIG_CACHEMASK; - - /* Get pointer value */ - *ptr = (void *) _p; - if (tp->cast) *ptr = (*(tp->cast))(*ptr); - return (char *) 0; - } - tp = tp->next; - } - sp++; - /* Hmmm. Didn't find it this time */ - } - } - /* Didn't find any sort of match for this data. - Get the pointer value and return the received type */ - *ptr = (void *) _p; - return _c; - } else { - /* Found a match on the first try. Return pointer value */ - *ptr = (void *) _p; - return (char *) 0; - } - } else { - /* No type specified. Good luck */ - *ptr = (void *) _p; - return (char *) 0; - } - } else { - if (strcmp (_c, "NULL") == 0) { - *ptr = (void *) 0; - return (char *) 0; - } - *ptr = (void *) 0; - return _c; - } -} - -/* Compatibility mode */ - -#define _swig_get_hex SWIG_GetPtr - -#define SWIG_init initwxc - -#define SWIG_name "wxc" - -#include "helpers.h" - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -extern "C" SWIGEXPORT(void,initwindowsc)(); -extern "C" SWIGEXPORT(void,initwindows2c)(); -extern "C" SWIGEXPORT(void,initeventsc)(); -extern "C" SWIGEXPORT(void,initmiscc)(); -extern "C" SWIGEXPORT(void,initgdic)(); -extern "C" SWIGEXPORT(void,initmdic)(); -extern "C" SWIGEXPORT(void,initcontrolsc)(); -extern "C" SWIGEXPORT(void,initcontrols2c)(); -extern "C" SWIGEXPORT(void,initcmndlgsc)(); -extern "C" SWIGEXPORT(void,initstattoolc)(); -extern "C" SWIGEXPORT(void,initframesc)(); -extern "C" SWIGEXPORT(void,initwindows3c)(); -extern "C" SWIGEXPORT(void,initimagec)(); -#ifndef SEPARATE -extern "C" SWIGEXPORT(void,initutilsc)(); -extern "C" SWIGEXPORT(void,initglcanvasc)(); -#endif -static int _wrap_wxPyDefaultPosition_set(PyObject *val) { - char * tval; - wxPoint * temp; - - tval = (char *) PyString_AsString(val); - if (PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError,"C variable 'wxPyDefaultPosition'(wxPoint *)"); - return 1; - } - if (tval) { - if (SWIG_GetPtr(tval,(void **) &temp,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in value of wxPyDefaultPosition. Expected _wxPoint_p."); - return 1; - } - } - wxPyDefaultPosition = *temp; - return 0; -} - -static PyObject *_wrap_wxPyDefaultPosition_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxPyDefaultPosition,"_wxPoint_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxPyDefaultSize_set(PyObject *val) { - char * tval; - wxSize * temp; - - tval = (char *) PyString_AsString(val); - if (PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError,"C variable 'wxPyDefaultSize'(wxSize *)"); - return 1; - } - if (tval) { - if (SWIG_GetPtr(tval,(void **) &temp,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in value of wxPyDefaultSize. Expected _wxSize_p."); - return 1; - } - } - wxPyDefaultSize = *temp; - return 0; -} - -static PyObject *_wrap_wxPyDefaultSize_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxPyDefaultSize,"_wxSize_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static void *SwigwxPyAppTowxEvtHandler(void *ptr) { - wxPyApp *src; - wxEvtHandler *dest; - src = (wxPyApp *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -static wxPyApp *new_wxPyApp() { - wxPythonApp = new wxPyApp(); - return wxPythonApp; - } - -static PyObject *_wrap_new_wxPyApp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPyApp")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyApp *)new_wxPyApp(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyApp_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPyApp_GetAppName(_swigobj) (_swigobj->GetAppName()) -static PyObject *_wrap_wxPyApp_GetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetAppName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetAppName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxPyApp_GetAppName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxPyApp_GetClassName(_swigobj) (_swigobj->GetClassName()) -static PyObject *_wrap_wxPyApp_GetClassName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetClassName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetClassName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxPyApp_GetClassName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxPyApp_GetExitOnFrameDelete(_swigobj) (_swigobj->GetExitOnFrameDelete()) -static PyObject *_wrap_wxPyApp_GetExitOnFrameDelete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetExitOnFrameDelete",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetExitOnFrameDelete. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_GetExitOnFrameDelete(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_GetPrintMode(_swigobj) (_swigobj->GetPrintMode()) -static PyObject *_wrap_wxPyApp_GetPrintMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetPrintMode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetPrintMode. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPyApp_GetPrintMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_GetTopWindow(_swigobj) (_swigobj->GetTopWindow()) -static PyObject *_wrap_wxPyApp_GetTopWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetTopWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetTopWindow. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxPyApp_GetTopWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPyApp_GetVendorName(_swigobj) (_swigobj->GetVendorName()) -static PyObject *_wrap_wxPyApp_GetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetVendorName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetVendorName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxPyApp_GetVendorName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxPyApp_Dispatch(_swigobj) (_swigobj->Dispatch()) -static PyObject *_wrap_wxPyApp_Dispatch(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_Dispatch",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_Dispatch. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_Dispatch(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_ExitMainLoop(_swigobj) (_swigobj->ExitMainLoop()) -static PyObject *_wrap_wxPyApp_ExitMainLoop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_ExitMainLoop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_ExitMainLoop. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_ExitMainLoop(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_Initialized(_swigobj) (_swigobj->Initialized()) -static PyObject *_wrap_wxPyApp_Initialized(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_Initialized",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_Initialized. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_Initialized(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_MainLoop(_swigobj) (_swigobj->MainLoop()) -static PyObject *_wrap_wxPyApp_MainLoop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_MainLoop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_MainLoop. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPyApp_MainLoop(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_Pending(_swigobj) (_swigobj->Pending()) -static PyObject *_wrap_wxPyApp_Pending(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_Pending",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_Pending. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_Pending(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_SetAppName(_swigobj,_swigarg0) (_swigobj->SetAppName(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyApp_SetAppName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetAppName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetAppName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPyApp_SetClassName(_swigobj,_swigarg0) (_swigobj->SetClassName(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetClassName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyApp_SetClassName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetClassName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetClassName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPyApp_SetExitOnFrameDelete(_swigobj,_swigarg0) (_swigobj->SetExitOnFrameDelete(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetExitOnFrameDelete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPyApp_SetExitOnFrameDelete",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetExitOnFrameDelete. Expected _wxPyApp_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetExitOnFrameDelete(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetPrintMode(_swigobj,_swigarg0) (_swigobj->SetPrintMode(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetPrintMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPyApp_SetPrintMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetPrintMode. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetPrintMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetTopWindow(_swigobj,_swigarg0) (_swigobj->SetTopWindow(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetTopWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxWindow * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPyApp_SetTopWindow",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetTopWindow. Expected _wxPyApp_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyApp_SetTopWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetTopWindow(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetVendorName(_swigobj,_swigarg0) (_swigobj->SetVendorName(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyApp_SetVendorName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetVendorName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetVendorName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPyApp_AfterMainLoop(_swigobj) (_swigobj->AfterMainLoop()) -static PyObject *_wrap_wxPyApp_AfterMainLoop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_AfterMainLoop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_AfterMainLoop. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_AfterMainLoop(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef wxcMethods[] = { - { "wxPyApp_AfterMainLoop", _wrap_wxPyApp_AfterMainLoop, 1 }, - { "wxPyApp_SetVendorName", _wrap_wxPyApp_SetVendorName, 1 }, - { "wxPyApp_SetTopWindow", _wrap_wxPyApp_SetTopWindow, 1 }, - { "wxPyApp_SetPrintMode", _wrap_wxPyApp_SetPrintMode, 1 }, - { "wxPyApp_SetExitOnFrameDelete", _wrap_wxPyApp_SetExitOnFrameDelete, 1 }, - { "wxPyApp_SetClassName", _wrap_wxPyApp_SetClassName, 1 }, - { "wxPyApp_SetAppName", _wrap_wxPyApp_SetAppName, 1 }, - { "wxPyApp_Pending", _wrap_wxPyApp_Pending, 1 }, - { "wxPyApp_MainLoop", _wrap_wxPyApp_MainLoop, 1 }, - { "wxPyApp_Initialized", _wrap_wxPyApp_Initialized, 1 }, - { "wxPyApp_ExitMainLoop", _wrap_wxPyApp_ExitMainLoop, 1 }, - { "wxPyApp_Dispatch", _wrap_wxPyApp_Dispatch, 1 }, - { "wxPyApp_GetVendorName", _wrap_wxPyApp_GetVendorName, 1 }, - { "wxPyApp_GetTopWindow", _wrap_wxPyApp_GetTopWindow, 1 }, - { "wxPyApp_GetPrintMode", _wrap_wxPyApp_GetPrintMode, 1 }, - { "wxPyApp_GetExitOnFrameDelete", _wrap_wxPyApp_GetExitOnFrameDelete, 1 }, - { "wxPyApp_GetClassName", _wrap_wxPyApp_GetClassName, 1 }, - { "wxPyApp_GetAppName", _wrap_wxPyApp_GetAppName, 1 }, - { "new_wxPyApp", _wrap_new_wxPyApp, 1 }, - { "_wxSetDictionary", __wxSetDictionary, 1 }, - { "_wxStart", __wxStart, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwxc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("wxc", wxcMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long) wxMAJOR_VERSION)); - PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long) wxMINOR_VERSION)); - PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long) wxRELEASE_NUMBER)); - PyDict_SetItemString(d,"wxNOT_FOUND", PyInt_FromLong((long) wxNOT_FOUND)); - PyDict_SetItemString(d,"wxVSCROLL", PyInt_FromLong((long) wxVSCROLL)); - PyDict_SetItemString(d,"wxHSCROLL", PyInt_FromLong((long) wxHSCROLL)); - PyDict_SetItemString(d,"wxCAPTION", PyInt_FromLong((long) wxCAPTION)); - PyDict_SetItemString(d,"wxDOUBLE_BORDER", PyInt_FromLong((long) wxDOUBLE_BORDER)); - PyDict_SetItemString(d,"wxSUNKEN_BORDER", PyInt_FromLong((long) wxSUNKEN_BORDER)); - PyDict_SetItemString(d,"wxRAISED_BORDER", PyInt_FromLong((long) wxRAISED_BORDER)); - PyDict_SetItemString(d,"wxBORDER", PyInt_FromLong((long) wxBORDER)); - PyDict_SetItemString(d,"wxSIMPLE_BORDER", PyInt_FromLong((long) wxSIMPLE_BORDER)); - PyDict_SetItemString(d,"wxSTATIC_BORDER", PyInt_FromLong((long) wxSTATIC_BORDER)); - PyDict_SetItemString(d,"wxTRANSPARENT_WINDOW", PyInt_FromLong((long) wxTRANSPARENT_WINDOW)); - PyDict_SetItemString(d,"wxNO_BORDER", PyInt_FromLong((long) wxNO_BORDER)); - PyDict_SetItemString(d,"wxUSER_COLOURS", PyInt_FromLong((long) wxUSER_COLOURS)); - PyDict_SetItemString(d,"wxNO_3D", PyInt_FromLong((long) wxNO_3D)); - PyDict_SetItemString(d,"wxTAB_TRAVERSAL", PyInt_FromLong((long) wxTAB_TRAVERSAL)); - PyDict_SetItemString(d,"wxHORIZONTAL", PyInt_FromLong((long) wxHORIZONTAL)); - PyDict_SetItemString(d,"wxVERTICAL", PyInt_FromLong((long) wxVERTICAL)); - PyDict_SetItemString(d,"wxBOTH", PyInt_FromLong((long) wxBOTH)); - PyDict_SetItemString(d,"wxCENTER_FRAME", PyInt_FromLong((long) wxCENTER_FRAME)); - PyDict_SetItemString(d,"wxSTAY_ON_TOP", PyInt_FromLong((long) wxSTAY_ON_TOP)); - PyDict_SetItemString(d,"wxICONIZE", PyInt_FromLong((long) wxICONIZE)); - PyDict_SetItemString(d,"wxMINIMIZE", PyInt_FromLong((long) wxMINIMIZE)); - PyDict_SetItemString(d,"wxMAXIMIZE", PyInt_FromLong((long) wxMAXIMIZE)); - PyDict_SetItemString(d,"wxTHICK_FRAME", PyInt_FromLong((long) wxTHICK_FRAME)); - PyDict_SetItemString(d,"wxSYSTEM_MENU", PyInt_FromLong((long) wxSYSTEM_MENU)); - PyDict_SetItemString(d,"wxMINIMIZE_BOX", PyInt_FromLong((long) wxMINIMIZE_BOX)); - PyDict_SetItemString(d,"wxMAXIMIZE_BOX", PyInt_FromLong((long) wxMAXIMIZE_BOX)); - PyDict_SetItemString(d,"wxTINY_CAPTION_HORIZ", PyInt_FromLong((long) wxTINY_CAPTION_HORIZ)); - PyDict_SetItemString(d,"wxTINY_CAPTION_VERT", PyInt_FromLong((long) wxTINY_CAPTION_VERT)); - PyDict_SetItemString(d,"wxRESIZE_BOX", PyInt_FromLong((long) wxRESIZE_BOX)); - PyDict_SetItemString(d,"wxRESIZE_BORDER", PyInt_FromLong((long) wxRESIZE_BORDER)); - PyDict_SetItemString(d,"wxDIALOG_MODAL", PyInt_FromLong((long) wxDIALOG_MODAL)); - PyDict_SetItemString(d,"wxDIALOG_MODELESS", PyInt_FromLong((long) wxDIALOG_MODELESS)); - PyDict_SetItemString(d,"wxDEFAULT_FRAME_STYLE", PyInt_FromLong((long) wxDEFAULT_FRAME_STYLE)); - PyDict_SetItemString(d,"wxDEFAULT_DIALOG_STYLE", PyInt_FromLong((long) wxDEFAULT_DIALOG_STYLE)); - PyDict_SetItemString(d,"wxFRAME_TOOL_WINDOW", PyInt_FromLong((long) wxFRAME_TOOL_WINDOW)); - PyDict_SetItemString(d,"wxCLIP_CHILDREN", PyInt_FromLong((long) wxCLIP_CHILDREN)); - PyDict_SetItemString(d,"wxRETAINED", PyInt_FromLong((long) wxRETAINED)); - PyDict_SetItemString(d,"wxBACKINGSTORE", PyInt_FromLong((long) wxBACKINGSTORE)); - PyDict_SetItemString(d,"wxTB_3DBUTTONS", PyInt_FromLong((long) wxTB_3DBUTTONS)); - PyDict_SetItemString(d,"wxTB_HORIZONTAL", PyInt_FromLong((long) wxTB_HORIZONTAL)); - PyDict_SetItemString(d,"wxTB_VERTICAL", PyInt_FromLong((long) wxTB_VERTICAL)); - PyDict_SetItemString(d,"wxTB_FLAT", PyInt_FromLong((long) wxTB_FLAT)); - PyDict_SetItemString(d,"wxCOLOURED", PyInt_FromLong((long) wxCOLOURED)); - PyDict_SetItemString(d,"wxFIXED_LENGTH", PyInt_FromLong((long) wxFIXED_LENGTH)); - PyDict_SetItemString(d,"wxALIGN_LEFT", PyInt_FromLong((long) wxALIGN_LEFT)); - PyDict_SetItemString(d,"wxALIGN_CENTER", PyInt_FromLong((long) wxALIGN_CENTER)); - PyDict_SetItemString(d,"wxALIGN_CENTRE", PyInt_FromLong((long) wxALIGN_CENTRE)); - PyDict_SetItemString(d,"wxALIGN_RIGHT", PyInt_FromLong((long) wxALIGN_RIGHT)); - PyDict_SetItemString(d,"wxLB_NEEDED_SB", PyInt_FromLong((long) wxLB_NEEDED_SB)); - PyDict_SetItemString(d,"wxLB_ALWAYS_SB", PyInt_FromLong((long) wxLB_ALWAYS_SB)); - PyDict_SetItemString(d,"wxLB_SORT", PyInt_FromLong((long) wxLB_SORT)); - PyDict_SetItemString(d,"wxLB_SINGLE", PyInt_FromLong((long) wxLB_SINGLE)); - PyDict_SetItemString(d,"wxLB_MULTIPLE", PyInt_FromLong((long) wxLB_MULTIPLE)); - PyDict_SetItemString(d,"wxLB_EXTENDED", PyInt_FromLong((long) wxLB_EXTENDED)); - PyDict_SetItemString(d,"wxLB_OWNERDRAW", PyInt_FromLong((long) wxLB_OWNERDRAW)); - PyDict_SetItemString(d,"wxLB_HSCROLL", PyInt_FromLong((long) wxLB_HSCROLL)); - PyDict_SetItemString(d,"wxPROCESS_ENTER", PyInt_FromLong((long) wxPROCESS_ENTER)); - PyDict_SetItemString(d,"wxPASSWORD", PyInt_FromLong((long) wxPASSWORD)); - PyDict_SetItemString(d,"wxTE_PROCESS_ENTER", PyInt_FromLong((long) wxTE_PROCESS_ENTER)); - PyDict_SetItemString(d,"wxTE_PASSWORD", PyInt_FromLong((long) wxTE_PASSWORD)); - PyDict_SetItemString(d,"wxTE_READONLY", PyInt_FromLong((long) wxTE_READONLY)); - PyDict_SetItemString(d,"wxTE_MULTILINE", PyInt_FromLong((long) wxTE_MULTILINE)); - PyDict_SetItemString(d,"wxCB_SIMPLE", PyInt_FromLong((long) wxCB_SIMPLE)); - PyDict_SetItemString(d,"wxCB_DROPDOWN", PyInt_FromLong((long) wxCB_DROPDOWN)); - PyDict_SetItemString(d,"wxCB_SORT", PyInt_FromLong((long) wxCB_SORT)); - PyDict_SetItemString(d,"wxCB_READONLY", PyInt_FromLong((long) wxCB_READONLY)); - PyDict_SetItemString(d,"wxRA_HORIZONTAL", PyInt_FromLong((long) wxRA_HORIZONTAL)); - PyDict_SetItemString(d,"wxRA_VERTICAL", PyInt_FromLong((long) wxRA_VERTICAL)); - PyDict_SetItemString(d,"wxRA_SPECIFY_ROWS", PyInt_FromLong((long) wxRA_SPECIFY_ROWS)); - PyDict_SetItemString(d,"wxRA_SPECIFY_COLS", PyInt_FromLong((long) wxRA_SPECIFY_COLS)); - PyDict_SetItemString(d,"wxRB_GROUP", PyInt_FromLong((long) wxRB_GROUP)); - PyDict_SetItemString(d,"wxGA_PROGRESSBAR", PyInt_FromLong((long) wxGA_PROGRESSBAR)); - PyDict_SetItemString(d,"wxGA_HORIZONTAL", PyInt_FromLong((long) wxGA_HORIZONTAL)); - PyDict_SetItemString(d,"wxGA_VERTICAL", PyInt_FromLong((long) wxGA_VERTICAL)); - PyDict_SetItemString(d,"wxSL_HORIZONTAL", PyInt_FromLong((long) wxSL_HORIZONTAL)); - PyDict_SetItemString(d,"wxSL_VERTICAL", PyInt_FromLong((long) wxSL_VERTICAL)); - PyDict_SetItemString(d,"wxSL_AUTOTICKS", PyInt_FromLong((long) wxSL_AUTOTICKS)); - PyDict_SetItemString(d,"wxSL_LABELS", PyInt_FromLong((long) wxSL_LABELS)); - PyDict_SetItemString(d,"wxSL_LEFT", PyInt_FromLong((long) wxSL_LEFT)); - PyDict_SetItemString(d,"wxSL_TOP", PyInt_FromLong((long) wxSL_TOP)); - PyDict_SetItemString(d,"wxSL_RIGHT", PyInt_FromLong((long) wxSL_RIGHT)); - PyDict_SetItemString(d,"wxSL_BOTTOM", PyInt_FromLong((long) wxSL_BOTTOM)); - PyDict_SetItemString(d,"wxSL_BOTH", PyInt_FromLong((long) wxSL_BOTH)); - PyDict_SetItemString(d,"wxSL_SELRANGE", PyInt_FromLong((long) wxSL_SELRANGE)); - PyDict_SetItemString(d,"wxSB_HORIZONTAL", PyInt_FromLong((long) wxSB_HORIZONTAL)); - PyDict_SetItemString(d,"wxSB_VERTICAL", PyInt_FromLong((long) wxSB_VERTICAL)); - PyDict_SetItemString(d,"wxST_SIZEGRIP", PyInt_FromLong((long) wxST_SIZEGRIP)); - PyDict_SetItemString(d,"wxBU_AUTODRAW", PyInt_FromLong((long) wxBU_AUTODRAW)); - PyDict_SetItemString(d,"wxBU_NOAUTODRAW", PyInt_FromLong((long) wxBU_NOAUTODRAW)); - PyDict_SetItemString(d,"wxTR_HAS_BUTTONS", PyInt_FromLong((long) wxTR_HAS_BUTTONS)); - PyDict_SetItemString(d,"wxTR_EDIT_LABELS", PyInt_FromLong((long) wxTR_EDIT_LABELS)); - PyDict_SetItemString(d,"wxTR_LINES_AT_ROOT", PyInt_FromLong((long) wxTR_LINES_AT_ROOT)); - PyDict_SetItemString(d,"wxLC_ICON", PyInt_FromLong((long) wxLC_ICON)); - PyDict_SetItemString(d,"wxLC_SMALL_ICON", PyInt_FromLong((long) wxLC_SMALL_ICON)); - PyDict_SetItemString(d,"wxLC_LIST", PyInt_FromLong((long) wxLC_LIST)); - PyDict_SetItemString(d,"wxLC_REPORT", PyInt_FromLong((long) wxLC_REPORT)); - PyDict_SetItemString(d,"wxLC_ALIGN_TOP", PyInt_FromLong((long) wxLC_ALIGN_TOP)); - PyDict_SetItemString(d,"wxLC_ALIGN_LEFT", PyInt_FromLong((long) wxLC_ALIGN_LEFT)); - PyDict_SetItemString(d,"wxLC_AUTOARRANGE", PyInt_FromLong((long) wxLC_AUTOARRANGE)); - PyDict_SetItemString(d,"wxLC_USER_TEXT", PyInt_FromLong((long) wxLC_USER_TEXT)); - PyDict_SetItemString(d,"wxLC_EDIT_LABELS", PyInt_FromLong((long) wxLC_EDIT_LABELS)); - PyDict_SetItemString(d,"wxLC_NO_HEADER", PyInt_FromLong((long) wxLC_NO_HEADER)); - PyDict_SetItemString(d,"wxLC_NO_SORT_HEADER", PyInt_FromLong((long) wxLC_NO_SORT_HEADER)); - PyDict_SetItemString(d,"wxLC_SINGLE_SEL", PyInt_FromLong((long) wxLC_SINGLE_SEL)); - PyDict_SetItemString(d,"wxLC_SORT_ASCENDING", PyInt_FromLong((long) wxLC_SORT_ASCENDING)); - PyDict_SetItemString(d,"wxLC_SORT_DESCENDING", PyInt_FromLong((long) wxLC_SORT_DESCENDING)); - PyDict_SetItemString(d,"wxLC_MASK_TYPE", PyInt_FromLong((long) wxLC_MASK_TYPE)); - PyDict_SetItemString(d,"wxLC_MASK_ALIGN", PyInt_FromLong((long) wxLC_MASK_ALIGN)); - PyDict_SetItemString(d,"wxLC_MASK_SORT", PyInt_FromLong((long) wxLC_MASK_SORT)); - PyDict_SetItemString(d,"wxSP_VERTICAL", PyInt_FromLong((long) wxSP_VERTICAL)); - PyDict_SetItemString(d,"wxSP_HORIZONTAL", PyInt_FromLong((long) wxSP_HORIZONTAL)); - PyDict_SetItemString(d,"wxSP_ARROW_KEYS", PyInt_FromLong((long) wxSP_ARROW_KEYS)); - PyDict_SetItemString(d,"wxSP_WRAP", PyInt_FromLong((long) wxSP_WRAP)); - PyDict_SetItemString(d,"wxSP_NOBORDER", PyInt_FromLong((long) wxSP_NOBORDER)); - PyDict_SetItemString(d,"wxSP_3D", PyInt_FromLong((long) wxSP_3D)); - PyDict_SetItemString(d,"wxSP_BORDER", PyInt_FromLong((long) wxSP_BORDER)); - PyDict_SetItemString(d,"wxFLOOD_SURFACE", PyInt_FromLong((long) wxFLOOD_SURFACE)); - PyDict_SetItemString(d,"wxFLOOD_BORDER", PyInt_FromLong((long) wxFLOOD_BORDER)); - PyDict_SetItemString(d,"wxODDEVEN_RULE", PyInt_FromLong((long) wxODDEVEN_RULE)); - PyDict_SetItemString(d,"wxWINDING_RULE", PyInt_FromLong((long) wxWINDING_RULE)); - PyDict_SetItemString(d,"wxTOOL_TOP", PyInt_FromLong((long) wxTOOL_TOP)); - PyDict_SetItemString(d,"wxTOOL_BOTTOM", PyInt_FromLong((long) wxTOOL_BOTTOM)); - PyDict_SetItemString(d,"wxTOOL_LEFT", PyInt_FromLong((long) wxTOOL_LEFT)); - PyDict_SetItemString(d,"wxTOOL_RIGHT", PyInt_FromLong((long) wxTOOL_RIGHT)); - PyDict_SetItemString(d,"wxOK", PyInt_FromLong((long) wxOK)); - PyDict_SetItemString(d,"wxYES_NO", PyInt_FromLong((long) wxYES_NO)); - PyDict_SetItemString(d,"wxCANCEL", PyInt_FromLong((long) wxCANCEL)); - PyDict_SetItemString(d,"wxYES", PyInt_FromLong((long) wxYES)); - PyDict_SetItemString(d,"wxNO", PyInt_FromLong((long) wxNO)); - PyDict_SetItemString(d,"wxICON_EXCLAMATION", PyInt_FromLong((long) wxICON_EXCLAMATION)); - PyDict_SetItemString(d,"wxICON_HAND", PyInt_FromLong((long) wxICON_HAND)); - PyDict_SetItemString(d,"wxICON_QUESTION", PyInt_FromLong((long) wxICON_QUESTION)); - PyDict_SetItemString(d,"wxICON_INFORMATION", PyInt_FromLong((long) wxICON_INFORMATION)); - PyDict_SetItemString(d,"wxICON_STOP", PyInt_FromLong((long) wxICON_STOP)); - PyDict_SetItemString(d,"wxICON_ASTERISK", PyInt_FromLong((long) wxICON_ASTERISK)); - PyDict_SetItemString(d,"wxICON_MASK", PyInt_FromLong((long) wxICON_MASK)); - PyDict_SetItemString(d,"wxCENTRE", PyInt_FromLong((long) wxCENTRE)); - PyDict_SetItemString(d,"wxCENTER", PyInt_FromLong((long) wxCENTER)); - PyDict_SetItemString(d,"wxSIZE_AUTO_WIDTH", PyInt_FromLong((long) wxSIZE_AUTO_WIDTH)); - PyDict_SetItemString(d,"wxSIZE_AUTO_HEIGHT", PyInt_FromLong((long) wxSIZE_AUTO_HEIGHT)); - PyDict_SetItemString(d,"wxSIZE_AUTO", PyInt_FromLong((long) wxSIZE_AUTO)); - PyDict_SetItemString(d,"wxSIZE_USE_EXISTING", PyInt_FromLong((long) wxSIZE_USE_EXISTING)); - PyDict_SetItemString(d,"wxSIZE_ALLOW_MINUS_ONE", PyInt_FromLong((long) wxSIZE_ALLOW_MINUS_ONE)); - PyDict_SetItemString(d,"wxPORTRAIT", PyInt_FromLong((long) wxPORTRAIT)); - PyDict_SetItemString(d,"wxLANDSCAPE", PyInt_FromLong((long) wxLANDSCAPE)); - PyDict_SetItemString(d,"wxID_OPEN", PyInt_FromLong((long) wxID_OPEN)); - PyDict_SetItemString(d,"wxID_CLOSE", PyInt_FromLong((long) wxID_CLOSE)); - PyDict_SetItemString(d,"wxID_NEW", PyInt_FromLong((long) wxID_NEW)); - PyDict_SetItemString(d,"wxID_SAVE", PyInt_FromLong((long) wxID_SAVE)); - PyDict_SetItemString(d,"wxID_SAVEAS", PyInt_FromLong((long) wxID_SAVEAS)); - PyDict_SetItemString(d,"wxID_REVERT", PyInt_FromLong((long) wxID_REVERT)); - PyDict_SetItemString(d,"wxID_EXIT", PyInt_FromLong((long) wxID_EXIT)); - PyDict_SetItemString(d,"wxID_UNDO", PyInt_FromLong((long) wxID_UNDO)); - PyDict_SetItemString(d,"wxID_REDO", PyInt_FromLong((long) wxID_REDO)); - PyDict_SetItemString(d,"wxID_HELP", PyInt_FromLong((long) wxID_HELP)); - PyDict_SetItemString(d,"wxID_PRINT", PyInt_FromLong((long) wxID_PRINT)); - PyDict_SetItemString(d,"wxID_PRINT_SETUP", PyInt_FromLong((long) wxID_PRINT_SETUP)); - PyDict_SetItemString(d,"wxID_PREVIEW", PyInt_FromLong((long) wxID_PREVIEW)); - PyDict_SetItemString(d,"wxID_ABOUT", PyInt_FromLong((long) wxID_ABOUT)); - PyDict_SetItemString(d,"wxID_HELP_CONTENTS", PyInt_FromLong((long) wxID_HELP_CONTENTS)); - PyDict_SetItemString(d,"wxID_HELP_COMMANDS", PyInt_FromLong((long) wxID_HELP_COMMANDS)); - PyDict_SetItemString(d,"wxID_HELP_PROCEDURES", PyInt_FromLong((long) wxID_HELP_PROCEDURES)); - PyDict_SetItemString(d,"wxID_HELP_CONTEXT", PyInt_FromLong((long) wxID_HELP_CONTEXT)); - PyDict_SetItemString(d,"wxID_CUT", PyInt_FromLong((long) wxID_CUT)); - PyDict_SetItemString(d,"wxID_COPY", PyInt_FromLong((long) wxID_COPY)); - PyDict_SetItemString(d,"wxID_PASTE", PyInt_FromLong((long) wxID_PASTE)); - PyDict_SetItemString(d,"wxID_CLEAR", PyInt_FromLong((long) wxID_CLEAR)); - PyDict_SetItemString(d,"wxID_FIND", PyInt_FromLong((long) wxID_FIND)); - PyDict_SetItemString(d,"wxID_FILE1", PyInt_FromLong((long) wxID_FILE1)); - PyDict_SetItemString(d,"wxID_FILE2", PyInt_FromLong((long) wxID_FILE2)); - PyDict_SetItemString(d,"wxID_FILE3", PyInt_FromLong((long) wxID_FILE3)); - PyDict_SetItemString(d,"wxID_FILE4", PyInt_FromLong((long) wxID_FILE4)); - PyDict_SetItemString(d,"wxID_FILE5", PyInt_FromLong((long) wxID_FILE5)); - PyDict_SetItemString(d,"wxID_FILE6", PyInt_FromLong((long) wxID_FILE6)); - PyDict_SetItemString(d,"wxID_FILE7", PyInt_FromLong((long) wxID_FILE7)); - PyDict_SetItemString(d,"wxID_FILE8", PyInt_FromLong((long) wxID_FILE8)); - PyDict_SetItemString(d,"wxID_FILE9", PyInt_FromLong((long) wxID_FILE9)); - PyDict_SetItemString(d,"wxID_OK", PyInt_FromLong((long) wxID_OK)); - PyDict_SetItemString(d,"wxID_CANCEL", PyInt_FromLong((long) wxID_CANCEL)); - PyDict_SetItemString(d,"wxID_APPLY", PyInt_FromLong((long) wxID_APPLY)); - PyDict_SetItemString(d,"wxID_YES", PyInt_FromLong((long) wxID_YES)); - PyDict_SetItemString(d,"wxID_NO", PyInt_FromLong((long) wxID_NO)); - PyDict_SetItemString(d,"wxID_STATIC", PyInt_FromLong((long) wxID_STATIC)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_BMP", PyInt_FromLong((long) wxBITMAP_TYPE_BMP)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_BMP_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_BMP_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_ICO", PyInt_FromLong((long) wxBITMAP_TYPE_ICO)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_ICO_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_ICO_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_CUR", PyInt_FromLong((long) wxBITMAP_TYPE_CUR)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_CUR_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_CUR_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XBM", PyInt_FromLong((long) wxBITMAP_TYPE_XBM)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XBM_DATA", PyInt_FromLong((long) wxBITMAP_TYPE_XBM_DATA)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XPM", PyInt_FromLong((long) wxBITMAP_TYPE_XPM)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XPM_DATA", PyInt_FromLong((long) wxBITMAP_TYPE_XPM_DATA)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_TIF", PyInt_FromLong((long) wxBITMAP_TYPE_TIF)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_TIF_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_TIF_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_GIF", PyInt_FromLong((long) wxBITMAP_TYPE_GIF)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_GIF_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_GIF_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_PNG", PyInt_FromLong((long) wxBITMAP_TYPE_PNG)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_PNG_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_PNG_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_ANY", PyInt_FromLong((long) wxBITMAP_TYPE_ANY)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_JPEG", PyInt_FromLong((long) wxBITMAP_TYPE_JPEG)); - PyDict_SetItemString(d,"wxOPEN", PyInt_FromLong((long) wxOPEN)); - PyDict_SetItemString(d,"wxSAVE", PyInt_FromLong((long) wxSAVE)); - PyDict_SetItemString(d,"wxHIDE_READONLY", PyInt_FromLong((long) wxHIDE_READONLY)); - PyDict_SetItemString(d,"wxOVERWRITE_PROMPT", PyInt_FromLong((long) wxOVERWRITE_PROMPT)); - PyDict_SetItemString(d,"wxACCEL_ALT", PyInt_FromLong((long) wxACCEL_ALT)); - PyDict_SetItemString(d,"wxACCEL_CTRL", PyInt_FromLong((long) wxACCEL_CTRL)); - PyDict_SetItemString(d,"wxACCEL_SHIFT", PyInt_FromLong((long) wxACCEL_SHIFT)); - PyDict_SetItemString(d,"wxDEFAULT", PyInt_FromLong((long) wxDEFAULT)); - PyDict_SetItemString(d,"wxDECORATIVE", PyInt_FromLong((long) wxDECORATIVE)); - PyDict_SetItemString(d,"wxROMAN", PyInt_FromLong((long) wxROMAN)); - PyDict_SetItemString(d,"wxSCRIPT", PyInt_FromLong((long) wxSCRIPT)); - PyDict_SetItemString(d,"wxSWISS", PyInt_FromLong((long) wxSWISS)); - PyDict_SetItemString(d,"wxMODERN", PyInt_FromLong((long) wxMODERN)); - PyDict_SetItemString(d,"wxTELETYPE", PyInt_FromLong((long) wxTELETYPE)); - PyDict_SetItemString(d,"wxVARIABLE", PyInt_FromLong((long) wxVARIABLE)); - PyDict_SetItemString(d,"wxFIXED", PyInt_FromLong((long) wxFIXED)); - PyDict_SetItemString(d,"wxNORMAL", PyInt_FromLong((long) wxNORMAL)); - PyDict_SetItemString(d,"wxLIGHT", PyInt_FromLong((long) wxLIGHT)); - PyDict_SetItemString(d,"wxBOLD", PyInt_FromLong((long) wxBOLD)); - PyDict_SetItemString(d,"wxITALIC", PyInt_FromLong((long) wxITALIC)); - PyDict_SetItemString(d,"wxSLANT", PyInt_FromLong((long) wxSLANT)); - PyDict_SetItemString(d,"wxSOLID", PyInt_FromLong((long) wxSOLID)); - PyDict_SetItemString(d,"wxDOT", PyInt_FromLong((long) wxDOT)); - PyDict_SetItemString(d,"wxLONG_DASH", PyInt_FromLong((long) wxLONG_DASH)); - PyDict_SetItemString(d,"wxSHORT_DASH", PyInt_FromLong((long) wxSHORT_DASH)); - PyDict_SetItemString(d,"wxDOT_DASH", PyInt_FromLong((long) wxDOT_DASH)); - PyDict_SetItemString(d,"wxUSER_DASH", PyInt_FromLong((long) wxUSER_DASH)); - PyDict_SetItemString(d,"wxTRANSPARENT", PyInt_FromLong((long) wxTRANSPARENT)); - PyDict_SetItemString(d,"wxSTIPPLE", PyInt_FromLong((long) wxSTIPPLE)); - PyDict_SetItemString(d,"wxBDIAGONAL_HATCH", PyInt_FromLong((long) wxBDIAGONAL_HATCH)); - PyDict_SetItemString(d,"wxCROSSDIAG_HATCH", PyInt_FromLong((long) wxCROSSDIAG_HATCH)); - PyDict_SetItemString(d,"wxFDIAGONAL_HATCH", PyInt_FromLong((long) wxFDIAGONAL_HATCH)); - PyDict_SetItemString(d,"wxCROSS_HATCH", PyInt_FromLong((long) wxCROSS_HATCH)); - PyDict_SetItemString(d,"wxHORIZONTAL_HATCH", PyInt_FromLong((long) wxHORIZONTAL_HATCH)); - PyDict_SetItemString(d,"wxVERTICAL_HATCH", PyInt_FromLong((long) wxVERTICAL_HATCH)); - PyDict_SetItemString(d,"wxJOIN_BEVEL", PyInt_FromLong((long) wxJOIN_BEVEL)); - PyDict_SetItemString(d,"wxJOIN_MITER", PyInt_FromLong((long) wxJOIN_MITER)); - PyDict_SetItemString(d,"wxJOIN_ROUND", PyInt_FromLong((long) wxJOIN_ROUND)); - PyDict_SetItemString(d,"wxCAP_ROUND", PyInt_FromLong((long) wxCAP_ROUND)); - PyDict_SetItemString(d,"wxCAP_PROJECTING", PyInt_FromLong((long) wxCAP_PROJECTING)); - PyDict_SetItemString(d,"wxCAP_BUTT", PyInt_FromLong((long) wxCAP_BUTT)); - PyDict_SetItemString(d,"wxCLEAR", PyInt_FromLong((long) wxCLEAR)); - PyDict_SetItemString(d,"wxXOR", PyInt_FromLong((long) wxXOR)); - PyDict_SetItemString(d,"wxINVERT", PyInt_FromLong((long) wxINVERT)); - PyDict_SetItemString(d,"wxOR_REVERSE", PyInt_FromLong((long) wxOR_REVERSE)); - PyDict_SetItemString(d,"wxAND_REVERSE", PyInt_FromLong((long) wxAND_REVERSE)); - PyDict_SetItemString(d,"wxCOPY", PyInt_FromLong((long) wxCOPY)); - PyDict_SetItemString(d,"wxAND", PyInt_FromLong((long) wxAND)); - PyDict_SetItemString(d,"wxAND_INVERT", PyInt_FromLong((long) wxAND_INVERT)); - PyDict_SetItemString(d,"wxNO_OP", PyInt_FromLong((long) wxNO_OP)); - PyDict_SetItemString(d,"wxNOR", PyInt_FromLong((long) wxNOR)); - PyDict_SetItemString(d,"wxEQUIV", PyInt_FromLong((long) wxEQUIV)); - PyDict_SetItemString(d,"wxSRC_INVERT", PyInt_FromLong((long) wxSRC_INVERT)); - PyDict_SetItemString(d,"wxOR_INVERT", PyInt_FromLong((long) wxOR_INVERT)); - PyDict_SetItemString(d,"wxNAND", PyInt_FromLong((long) wxNAND)); - PyDict_SetItemString(d,"wxOR", PyInt_FromLong((long) wxOR)); - PyDict_SetItemString(d,"wxSET", PyInt_FromLong((long) wxSET)); - PyDict_SetItemString(d,"wxSRC_OR", PyInt_FromLong((long) wxSRC_OR)); - PyDict_SetItemString(d,"wxSRC_AND", PyInt_FromLong((long) wxSRC_AND)); - PyDict_SetItemString(d,"WXK_BACK", PyInt_FromLong((long) WXK_BACK)); - PyDict_SetItemString(d,"WXK_TAB", PyInt_FromLong((long) WXK_TAB)); - PyDict_SetItemString(d,"WXK_RETURN", PyInt_FromLong((long) WXK_RETURN)); - PyDict_SetItemString(d,"WXK_ESCAPE", PyInt_FromLong((long) WXK_ESCAPE)); - PyDict_SetItemString(d,"WXK_SPACE", PyInt_FromLong((long) WXK_SPACE)); - PyDict_SetItemString(d,"WXK_DELETE", PyInt_FromLong((long) WXK_DELETE)); - PyDict_SetItemString(d,"WXK_START", PyInt_FromLong((long) WXK_START)); - PyDict_SetItemString(d,"WXK_LBUTTON", PyInt_FromLong((long) WXK_LBUTTON)); - PyDict_SetItemString(d,"WXK_RBUTTON", PyInt_FromLong((long) WXK_RBUTTON)); - PyDict_SetItemString(d,"WXK_CANCEL", PyInt_FromLong((long) WXK_CANCEL)); - PyDict_SetItemString(d,"WXK_MBUTTON", PyInt_FromLong((long) WXK_MBUTTON)); - PyDict_SetItemString(d,"WXK_CLEAR", PyInt_FromLong((long) WXK_CLEAR)); - PyDict_SetItemString(d,"WXK_SHIFT", PyInt_FromLong((long) WXK_SHIFT)); - PyDict_SetItemString(d,"WXK_CONTROL", PyInt_FromLong((long) WXK_CONTROL)); - PyDict_SetItemString(d,"WXK_MENU", PyInt_FromLong((long) WXK_MENU)); - PyDict_SetItemString(d,"WXK_PAUSE", PyInt_FromLong((long) WXK_PAUSE)); - PyDict_SetItemString(d,"WXK_CAPITAL", PyInt_FromLong((long) WXK_CAPITAL)); - PyDict_SetItemString(d,"WXK_PRIOR", PyInt_FromLong((long) WXK_PRIOR)); - PyDict_SetItemString(d,"WXK_NEXT", PyInt_FromLong((long) WXK_NEXT)); - PyDict_SetItemString(d,"WXK_END", PyInt_FromLong((long) WXK_END)); - PyDict_SetItemString(d,"WXK_HOME", PyInt_FromLong((long) WXK_HOME)); - PyDict_SetItemString(d,"WXK_LEFT", PyInt_FromLong((long) WXK_LEFT)); - PyDict_SetItemString(d,"WXK_UP", PyInt_FromLong((long) WXK_UP)); - PyDict_SetItemString(d,"WXK_RIGHT", PyInt_FromLong((long) WXK_RIGHT)); - PyDict_SetItemString(d,"WXK_DOWN", PyInt_FromLong((long) WXK_DOWN)); - PyDict_SetItemString(d,"WXK_SELECT", PyInt_FromLong((long) WXK_SELECT)); - PyDict_SetItemString(d,"WXK_PRINT", PyInt_FromLong((long) WXK_PRINT)); - PyDict_SetItemString(d,"WXK_EXECUTE", PyInt_FromLong((long) WXK_EXECUTE)); - PyDict_SetItemString(d,"WXK_SNAPSHOT", PyInt_FromLong((long) WXK_SNAPSHOT)); - PyDict_SetItemString(d,"WXK_INSERT", PyInt_FromLong((long) WXK_INSERT)); - PyDict_SetItemString(d,"WXK_HELP", PyInt_FromLong((long) WXK_HELP)); - PyDict_SetItemString(d,"WXK_NUMPAD0", PyInt_FromLong((long) WXK_NUMPAD0)); - PyDict_SetItemString(d,"WXK_NUMPAD1", PyInt_FromLong((long) WXK_NUMPAD1)); - PyDict_SetItemString(d,"WXK_NUMPAD2", PyInt_FromLong((long) WXK_NUMPAD2)); - PyDict_SetItemString(d,"WXK_NUMPAD3", PyInt_FromLong((long) WXK_NUMPAD3)); - PyDict_SetItemString(d,"WXK_NUMPAD4", PyInt_FromLong((long) WXK_NUMPAD4)); - PyDict_SetItemString(d,"WXK_NUMPAD5", PyInt_FromLong((long) WXK_NUMPAD5)); - PyDict_SetItemString(d,"WXK_NUMPAD6", PyInt_FromLong((long) WXK_NUMPAD6)); - PyDict_SetItemString(d,"WXK_NUMPAD7", PyInt_FromLong((long) WXK_NUMPAD7)); - PyDict_SetItemString(d,"WXK_NUMPAD8", PyInt_FromLong((long) WXK_NUMPAD8)); - PyDict_SetItemString(d,"WXK_NUMPAD9", PyInt_FromLong((long) WXK_NUMPAD9)); - PyDict_SetItemString(d,"WXK_MULTIPLY", PyInt_FromLong((long) WXK_MULTIPLY)); - PyDict_SetItemString(d,"WXK_ADD", PyInt_FromLong((long) WXK_ADD)); - PyDict_SetItemString(d,"WXK_SEPARATOR", PyInt_FromLong((long) WXK_SEPARATOR)); - PyDict_SetItemString(d,"WXK_SUBTRACT", PyInt_FromLong((long) WXK_SUBTRACT)); - PyDict_SetItemString(d,"WXK_DECIMAL", PyInt_FromLong((long) WXK_DECIMAL)); - PyDict_SetItemString(d,"WXK_DIVIDE", PyInt_FromLong((long) WXK_DIVIDE)); - PyDict_SetItemString(d,"WXK_F1", PyInt_FromLong((long) WXK_F1)); - PyDict_SetItemString(d,"WXK_F2", PyInt_FromLong((long) WXK_F2)); - PyDict_SetItemString(d,"WXK_F3", PyInt_FromLong((long) WXK_F3)); - PyDict_SetItemString(d,"WXK_F4", PyInt_FromLong((long) WXK_F4)); - PyDict_SetItemString(d,"WXK_F5", PyInt_FromLong((long) WXK_F5)); - PyDict_SetItemString(d,"WXK_F6", PyInt_FromLong((long) WXK_F6)); - PyDict_SetItemString(d,"WXK_F7", PyInt_FromLong((long) WXK_F7)); - PyDict_SetItemString(d,"WXK_F8", PyInt_FromLong((long) WXK_F8)); - PyDict_SetItemString(d,"WXK_F9", PyInt_FromLong((long) WXK_F9)); - PyDict_SetItemString(d,"WXK_F10", PyInt_FromLong((long) WXK_F10)); - PyDict_SetItemString(d,"WXK_F11", PyInt_FromLong((long) WXK_F11)); - PyDict_SetItemString(d,"WXK_F12", PyInt_FromLong((long) WXK_F12)); - PyDict_SetItemString(d,"WXK_F13", PyInt_FromLong((long) WXK_F13)); - PyDict_SetItemString(d,"WXK_F14", PyInt_FromLong((long) WXK_F14)); - PyDict_SetItemString(d,"WXK_F15", PyInt_FromLong((long) WXK_F15)); - PyDict_SetItemString(d,"WXK_F16", PyInt_FromLong((long) WXK_F16)); - PyDict_SetItemString(d,"WXK_F17", PyInt_FromLong((long) WXK_F17)); - PyDict_SetItemString(d,"WXK_F18", PyInt_FromLong((long) WXK_F18)); - PyDict_SetItemString(d,"WXK_F19", PyInt_FromLong((long) WXK_F19)); - PyDict_SetItemString(d,"WXK_F20", PyInt_FromLong((long) WXK_F20)); - PyDict_SetItemString(d,"WXK_F21", PyInt_FromLong((long) WXK_F21)); - PyDict_SetItemString(d,"WXK_F22", PyInt_FromLong((long) WXK_F22)); - PyDict_SetItemString(d,"WXK_F23", PyInt_FromLong((long) WXK_F23)); - PyDict_SetItemString(d,"WXK_F24", PyInt_FromLong((long) WXK_F24)); - PyDict_SetItemString(d,"WXK_NUMLOCK", PyInt_FromLong((long) WXK_NUMLOCK)); - PyDict_SetItemString(d,"WXK_SCROLL", PyInt_FromLong((long) WXK_SCROLL)); - PyDict_SetItemString(d,"WXK_PAGEUP", PyInt_FromLong((long) WXK_PAGEUP)); - PyDict_SetItemString(d,"WXK_PAGEDOWN", PyInt_FromLong((long) WXK_PAGEDOWN)); - PyDict_SetItemString(d,"wxCURSOR_NONE", PyInt_FromLong((long) wxCURSOR_NONE)); - PyDict_SetItemString(d,"wxCURSOR_ARROW", PyInt_FromLong((long) wxCURSOR_ARROW)); - PyDict_SetItemString(d,"wxCURSOR_BULLSEYE", PyInt_FromLong((long) wxCURSOR_BULLSEYE)); - PyDict_SetItemString(d,"wxCURSOR_CHAR", PyInt_FromLong((long) wxCURSOR_CHAR)); - PyDict_SetItemString(d,"wxCURSOR_CROSS", PyInt_FromLong((long) wxCURSOR_CROSS)); - PyDict_SetItemString(d,"wxCURSOR_HAND", PyInt_FromLong((long) wxCURSOR_HAND)); - PyDict_SetItemString(d,"wxCURSOR_IBEAM", PyInt_FromLong((long) wxCURSOR_IBEAM)); - PyDict_SetItemString(d,"wxCURSOR_LEFT_BUTTON", PyInt_FromLong((long) wxCURSOR_LEFT_BUTTON)); - PyDict_SetItemString(d,"wxCURSOR_MAGNIFIER", PyInt_FromLong((long) wxCURSOR_MAGNIFIER)); - PyDict_SetItemString(d,"wxCURSOR_MIDDLE_BUTTON", PyInt_FromLong((long) wxCURSOR_MIDDLE_BUTTON)); - PyDict_SetItemString(d,"wxCURSOR_NO_ENTRY", PyInt_FromLong((long) wxCURSOR_NO_ENTRY)); - PyDict_SetItemString(d,"wxCURSOR_PAINT_BRUSH", PyInt_FromLong((long) wxCURSOR_PAINT_BRUSH)); - PyDict_SetItemString(d,"wxCURSOR_PENCIL", PyInt_FromLong((long) wxCURSOR_PENCIL)); - PyDict_SetItemString(d,"wxCURSOR_POINT_LEFT", PyInt_FromLong((long) wxCURSOR_POINT_LEFT)); - PyDict_SetItemString(d,"wxCURSOR_POINT_RIGHT", PyInt_FromLong((long) wxCURSOR_POINT_RIGHT)); - PyDict_SetItemString(d,"wxCURSOR_QUESTION_ARROW", PyInt_FromLong((long) wxCURSOR_QUESTION_ARROW)); - PyDict_SetItemString(d,"wxCURSOR_RIGHT_BUTTON", PyInt_FromLong((long) wxCURSOR_RIGHT_BUTTON)); - PyDict_SetItemString(d,"wxCURSOR_SIZENESW", PyInt_FromLong((long) wxCURSOR_SIZENESW)); - PyDict_SetItemString(d,"wxCURSOR_SIZENS", PyInt_FromLong((long) wxCURSOR_SIZENS)); - PyDict_SetItemString(d,"wxCURSOR_SIZENWSE", PyInt_FromLong((long) wxCURSOR_SIZENWSE)); - PyDict_SetItemString(d,"wxCURSOR_SIZEWE", PyInt_FromLong((long) wxCURSOR_SIZEWE)); - PyDict_SetItemString(d,"wxCURSOR_SIZING", PyInt_FromLong((long) wxCURSOR_SIZING)); - PyDict_SetItemString(d,"wxCURSOR_SPRAYCAN", PyInt_FromLong((long) wxCURSOR_SPRAYCAN)); - PyDict_SetItemString(d,"wxCURSOR_WAIT", PyInt_FromLong((long) wxCURSOR_WAIT)); - PyDict_SetItemString(d,"wxCURSOR_WATCH", PyInt_FromLong((long) wxCURSOR_WATCH)); - PyDict_SetItemString(d,"wxCURSOR_BLANK", PyInt_FromLong((long) wxCURSOR_BLANK)); - PyDict_SetItemString(d,"wxPAPER_NONE", PyInt_FromLong((long) wxPAPER_NONE)); - PyDict_SetItemString(d,"wxPAPER_LETTER", PyInt_FromLong((long) wxPAPER_LETTER)); - PyDict_SetItemString(d,"wxPAPER_LEGAL", PyInt_FromLong((long) wxPAPER_LEGAL)); - PyDict_SetItemString(d,"wxPAPER_A4", PyInt_FromLong((long) wxPAPER_A4)); - PyDict_SetItemString(d,"wxPAPER_CSHEET", PyInt_FromLong((long) wxPAPER_CSHEET)); - PyDict_SetItemString(d,"wxPAPER_DSHEET", PyInt_FromLong((long) wxPAPER_DSHEET)); - PyDict_SetItemString(d,"wxPAPER_ESHEET", PyInt_FromLong((long) wxPAPER_ESHEET)); - PyDict_SetItemString(d,"wxPAPER_LETTERSMALL", PyInt_FromLong((long) wxPAPER_LETTERSMALL)); - PyDict_SetItemString(d,"wxPAPER_TABLOID", PyInt_FromLong((long) wxPAPER_TABLOID)); - PyDict_SetItemString(d,"wxPAPER_LEDGER", PyInt_FromLong((long) wxPAPER_LEDGER)); - PyDict_SetItemString(d,"wxPAPER_STATEMENT", PyInt_FromLong((long) wxPAPER_STATEMENT)); - PyDict_SetItemString(d,"wxPAPER_EXECUTIVE", PyInt_FromLong((long) wxPAPER_EXECUTIVE)); - PyDict_SetItemString(d,"wxPAPER_A3", PyInt_FromLong((long) wxPAPER_A3)); - PyDict_SetItemString(d,"wxPAPER_A4SMALL", PyInt_FromLong((long) wxPAPER_A4SMALL)); - PyDict_SetItemString(d,"wxPAPER_A5", PyInt_FromLong((long) wxPAPER_A5)); - PyDict_SetItemString(d,"wxPAPER_B4", PyInt_FromLong((long) wxPAPER_B4)); - PyDict_SetItemString(d,"wxPAPER_B5", PyInt_FromLong((long) wxPAPER_B5)); - PyDict_SetItemString(d,"wxPAPER_FOLIO", PyInt_FromLong((long) wxPAPER_FOLIO)); - PyDict_SetItemString(d,"wxPAPER_QUARTO", PyInt_FromLong((long) wxPAPER_QUARTO)); - PyDict_SetItemString(d,"wxPAPER_10X14", PyInt_FromLong((long) wxPAPER_10X14)); - PyDict_SetItemString(d,"wxPAPER_11X17", PyInt_FromLong((long) wxPAPER_11X17)); - PyDict_SetItemString(d,"wxPAPER_NOTE", PyInt_FromLong((long) wxPAPER_NOTE)); - PyDict_SetItemString(d,"wxPAPER_ENV_9", PyInt_FromLong((long) wxPAPER_ENV_9)); - PyDict_SetItemString(d,"wxPAPER_ENV_10", PyInt_FromLong((long) wxPAPER_ENV_10)); - PyDict_SetItemString(d,"wxPAPER_ENV_11", PyInt_FromLong((long) wxPAPER_ENV_11)); - PyDict_SetItemString(d,"wxPAPER_ENV_12", PyInt_FromLong((long) wxPAPER_ENV_12)); - PyDict_SetItemString(d,"wxPAPER_ENV_14", PyInt_FromLong((long) wxPAPER_ENV_14)); - PyDict_SetItemString(d,"wxPAPER_ENV_DL", PyInt_FromLong((long) wxPAPER_ENV_DL)); - PyDict_SetItemString(d,"wxPAPER_ENV_C5", PyInt_FromLong((long) wxPAPER_ENV_C5)); - PyDict_SetItemString(d,"wxPAPER_ENV_C3", PyInt_FromLong((long) wxPAPER_ENV_C3)); - PyDict_SetItemString(d,"wxPAPER_ENV_C4", PyInt_FromLong((long) wxPAPER_ENV_C4)); - PyDict_SetItemString(d,"wxPAPER_ENV_C6", PyInt_FromLong((long) wxPAPER_ENV_C6)); - PyDict_SetItemString(d,"wxPAPER_ENV_C65", PyInt_FromLong((long) wxPAPER_ENV_C65)); - PyDict_SetItemString(d,"wxPAPER_ENV_B4", PyInt_FromLong((long) wxPAPER_ENV_B4)); - PyDict_SetItemString(d,"wxPAPER_ENV_B5", PyInt_FromLong((long) wxPAPER_ENV_B5)); - PyDict_SetItemString(d,"wxPAPER_ENV_B6", PyInt_FromLong((long) wxPAPER_ENV_B6)); - PyDict_SetItemString(d,"wxPAPER_ENV_ITALY", PyInt_FromLong((long) wxPAPER_ENV_ITALY)); - PyDict_SetItemString(d,"wxPAPER_ENV_MONARCH", PyInt_FromLong((long) wxPAPER_ENV_MONARCH)); - PyDict_SetItemString(d,"wxPAPER_ENV_PERSONAL", PyInt_FromLong((long) wxPAPER_ENV_PERSONAL)); - PyDict_SetItemString(d,"wxPAPER_FANFOLD_US", PyInt_FromLong((long) wxPAPER_FANFOLD_US)); - PyDict_SetItemString(d,"wxPAPER_FANFOLD_STD_GERMAN", PyInt_FromLong((long) wxPAPER_FANFOLD_STD_GERMAN)); - PyDict_SetItemString(d,"wxPAPER_FANFOLD_LGL_GERMAN", PyInt_FromLong((long) wxPAPER_FANFOLD_LGL_GERMAN)); - PyDict_SetItemString(d,"wxPAPER_ISO_B4", PyInt_FromLong((long) wxPAPER_ISO_B4)); - PyDict_SetItemString(d,"wxPAPER_JAPANESE_POSTCARD", PyInt_FromLong((long) wxPAPER_JAPANESE_POSTCARD)); - PyDict_SetItemString(d,"wxPAPER_9X11", PyInt_FromLong((long) wxPAPER_9X11)); - PyDict_SetItemString(d,"wxPAPER_10X11", PyInt_FromLong((long) wxPAPER_10X11)); - PyDict_SetItemString(d,"wxPAPER_15X11", PyInt_FromLong((long) wxPAPER_15X11)); - PyDict_SetItemString(d,"wxPAPER_ENV_INVITE", PyInt_FromLong((long) wxPAPER_ENV_INVITE)); - PyDict_SetItemString(d,"wxPAPER_LETTER_EXTRA", PyInt_FromLong((long) wxPAPER_LETTER_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_LEGAL_EXTRA", PyInt_FromLong((long) wxPAPER_LEGAL_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_TABLOID_EXTRA", PyInt_FromLong((long) wxPAPER_TABLOID_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_A4_EXTRA", PyInt_FromLong((long) wxPAPER_A4_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_LETTER_TRANSVERSE", PyInt_FromLong((long) wxPAPER_LETTER_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A4_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A4_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_LETTER_EXTRA_TRANSVERSE", PyInt_FromLong((long) wxPAPER_LETTER_EXTRA_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A_PLUS", PyInt_FromLong((long) wxPAPER_A_PLUS)); - PyDict_SetItemString(d,"wxPAPER_B_PLUS", PyInt_FromLong((long) wxPAPER_B_PLUS)); - PyDict_SetItemString(d,"wxPAPER_LETTER_PLUS", PyInt_FromLong((long) wxPAPER_LETTER_PLUS)); - PyDict_SetItemString(d,"wxPAPER_A4_PLUS", PyInt_FromLong((long) wxPAPER_A4_PLUS)); - PyDict_SetItemString(d,"wxPAPER_A5_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A5_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_B5_TRANSVERSE", PyInt_FromLong((long) wxPAPER_B5_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A3_EXTRA", PyInt_FromLong((long) wxPAPER_A3_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_A5_EXTRA", PyInt_FromLong((long) wxPAPER_A5_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_B5_EXTRA", PyInt_FromLong((long) wxPAPER_B5_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_A2", PyInt_FromLong((long) wxPAPER_A2)); - PyDict_SetItemString(d,"wxPAPER_A3_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A3_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A3_EXTRA_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A3_EXTRA_TRANSVERSE)); - PyDict_SetItemString(d,"FALSE", PyInt_FromLong((long) 0)); - PyDict_SetItemString(d,"false", PyInt_FromLong((long) 0)); - PyDict_SetItemString(d,"TRUE", PyInt_FromLong((long) 1)); - PyDict_SetItemString(d,"true", PyInt_FromLong((long) 1)); - PyDict_SetItemString(d,"wxVERSION_STRING", PyString_FromString("wxVERSION_STRING")); - PyDict_SetItemString(d,"wxEVT_NULL", PyInt_FromLong((long) wxEVT_NULL)); - PyDict_SetItemString(d,"wxEVT_FIRST", PyInt_FromLong((long) wxEVT_FIRST)); - PyDict_SetItemString(d,"wxEVT_COMMAND_BUTTON_CLICKED", PyInt_FromLong((long) wxEVT_COMMAND_BUTTON_CLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_CHECKBOX_CLICKED", PyInt_FromLong((long) wxEVT_COMMAND_CHECKBOX_CLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_CHOICE_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_CHOICE_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LISTBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_LISTBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LISTBOX_DOUBLECLICKED", PyInt_FromLong((long) wxEVT_COMMAND_LISTBOX_DOUBLECLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_CHECKLISTBOX_TOGGLED", PyInt_FromLong((long) wxEVT_COMMAND_CHECKLISTBOX_TOGGLED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TEXT_UPDATED", PyInt_FromLong((long) wxEVT_COMMAND_TEXT_UPDATED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TEXT_ENTER", PyInt_FromLong((long) wxEVT_COMMAND_TEXT_ENTER)); - PyDict_SetItemString(d,"wxEVT_COMMAND_MENU_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_MENU_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SLIDER_UPDATED", PyInt_FromLong((long) wxEVT_COMMAND_SLIDER_UPDATED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RADIOBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_RADIOBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RADIOBUTTON_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_RADIOBUTTON_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SCROLLBAR_UPDATED", PyInt_FromLong((long) wxEVT_COMMAND_SCROLLBAR_UPDATED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_VLBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_VLBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_COMBOBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_COMBOBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TOOL_CLICKED", PyInt_FromLong((long) wxEVT_COMMAND_TOOL_CLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TOOL_RCLICKED", PyInt_FromLong((long) wxEVT_COMMAND_TOOL_RCLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TOOL_ENTER", PyInt_FromLong((long) wxEVT_COMMAND_TOOL_ENTER)); - PyDict_SetItemString(d,"wxEVT_SET_FOCUS", PyInt_FromLong((long) wxEVT_SET_FOCUS)); - PyDict_SetItemString(d,"wxEVT_KILL_FOCUS", PyInt_FromLong((long) wxEVT_KILL_FOCUS)); - PyDict_SetItemString(d,"wxEVT_LEFT_DOWN", PyInt_FromLong((long) wxEVT_LEFT_DOWN)); - PyDict_SetItemString(d,"wxEVT_LEFT_UP", PyInt_FromLong((long) wxEVT_LEFT_UP)); - PyDict_SetItemString(d,"wxEVT_MIDDLE_DOWN", PyInt_FromLong((long) wxEVT_MIDDLE_DOWN)); - PyDict_SetItemString(d,"wxEVT_MIDDLE_UP", PyInt_FromLong((long) wxEVT_MIDDLE_UP)); - PyDict_SetItemString(d,"wxEVT_RIGHT_DOWN", PyInt_FromLong((long) wxEVT_RIGHT_DOWN)); - PyDict_SetItemString(d,"wxEVT_RIGHT_UP", PyInt_FromLong((long) wxEVT_RIGHT_UP)); - PyDict_SetItemString(d,"wxEVT_MOTION", PyInt_FromLong((long) wxEVT_MOTION)); - PyDict_SetItemString(d,"wxEVT_ENTER_WINDOW", PyInt_FromLong((long) wxEVT_ENTER_WINDOW)); - PyDict_SetItemString(d,"wxEVT_LEAVE_WINDOW", PyInt_FromLong((long) wxEVT_LEAVE_WINDOW)); - PyDict_SetItemString(d,"wxEVT_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_MIDDLE_DCLICK", PyInt_FromLong((long) wxEVT_MIDDLE_DCLICK)); - PyDict_SetItemString(d,"wxEVT_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_RIGHT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_NC_LEFT_DOWN", PyInt_FromLong((long) wxEVT_NC_LEFT_DOWN)); - PyDict_SetItemString(d,"wxEVT_NC_LEFT_UP", PyInt_FromLong((long) wxEVT_NC_LEFT_UP)); - PyDict_SetItemString(d,"wxEVT_NC_MIDDLE_DOWN", PyInt_FromLong((long) wxEVT_NC_MIDDLE_DOWN)); - PyDict_SetItemString(d,"wxEVT_NC_MIDDLE_UP", PyInt_FromLong((long) wxEVT_NC_MIDDLE_UP)); - PyDict_SetItemString(d,"wxEVT_NC_RIGHT_DOWN", PyInt_FromLong((long) wxEVT_NC_RIGHT_DOWN)); - PyDict_SetItemString(d,"wxEVT_NC_RIGHT_UP", PyInt_FromLong((long) wxEVT_NC_RIGHT_UP)); - PyDict_SetItemString(d,"wxEVT_NC_MOTION", PyInt_FromLong((long) wxEVT_NC_MOTION)); - PyDict_SetItemString(d,"wxEVT_NC_ENTER_WINDOW", PyInt_FromLong((long) wxEVT_NC_ENTER_WINDOW)); - PyDict_SetItemString(d,"wxEVT_NC_LEAVE_WINDOW", PyInt_FromLong((long) wxEVT_NC_LEAVE_WINDOW)); - PyDict_SetItemString(d,"wxEVT_NC_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_NC_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_NC_MIDDLE_DCLICK", PyInt_FromLong((long) wxEVT_NC_MIDDLE_DCLICK)); - PyDict_SetItemString(d,"wxEVT_NC_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_NC_RIGHT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_CHAR", PyInt_FromLong((long) wxEVT_CHAR)); - PyDict_SetItemString(d,"wxEVT_SCROLL_TOP", PyInt_FromLong((long) wxEVT_SCROLL_TOP)); - PyDict_SetItemString(d,"wxEVT_SCROLL_BOTTOM", PyInt_FromLong((long) wxEVT_SCROLL_BOTTOM)); - PyDict_SetItemString(d,"wxEVT_SCROLL_LINEUP", PyInt_FromLong((long) wxEVT_SCROLL_LINEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLL_LINEDOWN", PyInt_FromLong((long) wxEVT_SCROLL_LINEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLL_PAGEUP", PyInt_FromLong((long) wxEVT_SCROLL_PAGEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLL_PAGEDOWN", PyInt_FromLong((long) wxEVT_SCROLL_PAGEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLL_THUMBTRACK", PyInt_FromLong((long) wxEVT_SCROLL_THUMBTRACK)); - PyDict_SetItemString(d,"wxEVT_SIZE", PyInt_FromLong((long) wxEVT_SIZE)); - PyDict_SetItemString(d,"wxEVT_MOVE", PyInt_FromLong((long) wxEVT_MOVE)); - PyDict_SetItemString(d,"wxEVT_CLOSE_WINDOW", PyInt_FromLong((long) wxEVT_CLOSE_WINDOW)); - PyDict_SetItemString(d,"wxEVT_END_SESSION", PyInt_FromLong((long) wxEVT_END_SESSION)); - PyDict_SetItemString(d,"wxEVT_QUERY_END_SESSION", PyInt_FromLong((long) wxEVT_QUERY_END_SESSION)); - PyDict_SetItemString(d,"wxEVT_ACTIVATE_APP", PyInt_FromLong((long) wxEVT_ACTIVATE_APP)); - PyDict_SetItemString(d,"wxEVT_POWER", PyInt_FromLong((long) wxEVT_POWER)); - PyDict_SetItemString(d,"wxEVT_CHAR_HOOK", PyInt_FromLong((long) wxEVT_CHAR_HOOK)); - PyDict_SetItemString(d,"wxEVT_KEY_UP", PyInt_FromLong((long) wxEVT_KEY_UP)); - PyDict_SetItemString(d,"wxEVT_ACTIVATE", PyInt_FromLong((long) wxEVT_ACTIVATE)); - PyDict_SetItemString(d,"wxEVT_CREATE", PyInt_FromLong((long) wxEVT_CREATE)); - PyDict_SetItemString(d,"wxEVT_DESTROY", PyInt_FromLong((long) wxEVT_DESTROY)); - PyDict_SetItemString(d,"wxEVT_SHOW", PyInt_FromLong((long) wxEVT_SHOW)); - PyDict_SetItemString(d,"wxEVT_ICONIZE", PyInt_FromLong((long) wxEVT_ICONIZE)); - PyDict_SetItemString(d,"wxEVT_MAXIMIZE", PyInt_FromLong((long) wxEVT_MAXIMIZE)); - PyDict_SetItemString(d,"wxEVT_MOUSE_CAPTURE_CHANGED", PyInt_FromLong((long) wxEVT_MOUSE_CAPTURE_CHANGED)); - PyDict_SetItemString(d,"wxEVT_PAINT", PyInt_FromLong((long) wxEVT_PAINT)); - PyDict_SetItemString(d,"wxEVT_ERASE_BACKGROUND", PyInt_FromLong((long) wxEVT_ERASE_BACKGROUND)); - PyDict_SetItemString(d,"wxEVT_NC_PAINT", PyInt_FromLong((long) wxEVT_NC_PAINT)); - PyDict_SetItemString(d,"wxEVT_PAINT_ICON", PyInt_FromLong((long) wxEVT_PAINT_ICON)); - PyDict_SetItemString(d,"wxEVT_MENU_CHAR", PyInt_FromLong((long) wxEVT_MENU_CHAR)); - PyDict_SetItemString(d,"wxEVT_MENU_INIT", PyInt_FromLong((long) wxEVT_MENU_INIT)); - PyDict_SetItemString(d,"wxEVT_MENU_HIGHLIGHT", PyInt_FromLong((long) wxEVT_MENU_HIGHLIGHT)); - PyDict_SetItemString(d,"wxEVT_POPUP_MENU_INIT", PyInt_FromLong((long) wxEVT_POPUP_MENU_INIT)); - PyDict_SetItemString(d,"wxEVT_CONTEXT_MENU", PyInt_FromLong((long) wxEVT_CONTEXT_MENU)); - PyDict_SetItemString(d,"wxEVT_SYS_COLOUR_CHANGED", PyInt_FromLong((long) wxEVT_SYS_COLOUR_CHANGED)); - PyDict_SetItemString(d,"wxEVT_SETTING_CHANGED", PyInt_FromLong((long) wxEVT_SETTING_CHANGED)); - PyDict_SetItemString(d,"wxEVT_QUERY_NEW_PALETTE", PyInt_FromLong((long) wxEVT_QUERY_NEW_PALETTE)); - PyDict_SetItemString(d,"wxEVT_PALETTE_CHANGED", PyInt_FromLong((long) wxEVT_PALETTE_CHANGED)); - PyDict_SetItemString(d,"wxEVT_JOY_BUTTON_DOWN", PyInt_FromLong((long) wxEVT_JOY_BUTTON_DOWN)); - PyDict_SetItemString(d,"wxEVT_JOY_BUTTON_UP", PyInt_FromLong((long) wxEVT_JOY_BUTTON_UP)); - PyDict_SetItemString(d,"wxEVT_JOY_MOVE", PyInt_FromLong((long) wxEVT_JOY_MOVE)); - PyDict_SetItemString(d,"wxEVT_JOY_ZMOVE", PyInt_FromLong((long) wxEVT_JOY_ZMOVE)); - PyDict_SetItemString(d,"wxEVT_DROP_FILES", PyInt_FromLong((long) wxEVT_DROP_FILES)); - PyDict_SetItemString(d,"wxEVT_DRAW_ITEM", PyInt_FromLong((long) wxEVT_DRAW_ITEM)); - PyDict_SetItemString(d,"wxEVT_MEASURE_ITEM", PyInt_FromLong((long) wxEVT_MEASURE_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMPARE_ITEM", PyInt_FromLong((long) wxEVT_COMPARE_ITEM)); - PyDict_SetItemString(d,"wxEVT_INIT_DIALOG", PyInt_FromLong((long) wxEVT_INIT_DIALOG)); - PyDict_SetItemString(d,"wxEVT_IDLE", PyInt_FromLong((long) wxEVT_IDLE)); - PyDict_SetItemString(d,"wxEVT_UPDATE_UI", PyInt_FromLong((long) wxEVT_UPDATE_UI)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LEFT_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LEFT_CLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_COMMAND_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RIGHT_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_RIGHT_CLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_COMMAND_RIGHT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SET_FOCUS", PyInt_FromLong((long) wxEVT_COMMAND_SET_FOCUS)); - PyDict_SetItemString(d,"wxEVT_COMMAND_KILL_FOCUS", PyInt_FromLong((long) wxEVT_COMMAND_KILL_FOCUS)); - PyDict_SetItemString(d,"wxEVT_COMMAND_ENTER", PyInt_FromLong((long) wxEVT_COMMAND_ENTER)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_BEGIN_DRAG", PyInt_FromLong((long) wxEVT_COMMAND_TREE_BEGIN_DRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_BEGIN_RDRAG", PyInt_FromLong((long) wxEVT_COMMAND_TREE_BEGIN_RDRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_END_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_TREE_END_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_DELETE_ITEM", PyInt_FromLong((long) wxEVT_COMMAND_TREE_DELETE_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_GET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_TREE_GET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_SET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_TREE_SET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_EXPANDED", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_EXPANDED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_EXPANDING", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_EXPANDING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_COLLAPSED", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_COLLAPSED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_COLLAPSING", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_COLLAPSING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_SEL_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_TREE_SEL_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_SEL_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_TREE_SEL_CHANGING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_KEY_DOWN", PyInt_FromLong((long) wxEVT_COMMAND_TREE_KEY_DOWN)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_BEGIN_DRAG", PyInt_FromLong((long) wxEVT_COMMAND_LIST_BEGIN_DRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_BEGIN_RDRAG", PyInt_FromLong((long) wxEVT_COMMAND_LIST_BEGIN_RDRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_END_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_LIST_END_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_DELETE_ITEM", PyInt_FromLong((long) wxEVT_COMMAND_LIST_DELETE_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS", PyInt_FromLong((long) wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_GET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_LIST_GET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_SET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_LIST_SET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_DESELECTED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_DESELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_KEY_DOWN", PyInt_FromLong((long) wxEVT_COMMAND_LIST_KEY_DOWN)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_INSERT_ITEM", PyInt_FromLong((long) wxEVT_COMMAND_LIST_INSERT_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_COL_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LIST_COL_CLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TAB_SEL_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_TAB_SEL_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TAB_SEL_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_TAB_SEL_CHANGING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING)); - PyDict_SetItemString(d,"__version__", PyString_FromString("2.0b9")); - PyDict_SetItemString(d,"cvar", SWIG_globals); - SWIG_addvarlink(SWIG_globals,"wxPyDefaultPosition",_wrap_wxPyDefaultPosition_get, _wrap_wxPyDefaultPosition_set); - SWIG_addvarlink(SWIG_globals,"wxPyDefaultSize",_wrap_wxPyDefaultSize_get, _wrap_wxPyDefaultSize_set); - - - __wxPreStart(); // initialize the GUI toolkit, if needed. - -// wxPyWindows = new wxHashTable(wxKEY_INTEGER, 100); - - // Since these modules are all linked together, initialize them now - // because python won't be able to find their shared library files, - // (since there isn't any.) - initwindowsc(); - initwindows2c(); - initeventsc(); - initmiscc(); - initgdic(); - initmdic(); - initcontrolsc(); - initcontrols2c(); - initcmndlgsc(); - initstattoolc(); - initframesc(); - initwindows3c(); - initimagec(); -#ifndef SEPARATE - initutilsc(); -#ifdef WITH_GLCANVAS - initglcanvasc(); -#endif -#endif -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxJPEGHandler","_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxBMPHandler","_class_wxBMPHandler",0); - SWIG_RegisterMapping("_wxImage","_class_wxImage",0); - SWIG_RegisterMapping("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxPyTreeItemData","_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxGIFHandler","_class_wxGIFHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxImageHandler","_class_wxImageHandler",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPNGHandler","_class_wxPNGHandler",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",0); - SWIG_RegisterMapping("_class_wxPageSetupDialogData","_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashWindow",0); - SWIG_RegisterMapping("_class_wxPrintDialogData","_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_class_wxSashEvent","_wxSashEvent",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxListEvent","_class_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxBMPHandler","_wxBMPHandler",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSashLayoutWindow","_class_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxGIFHandler","_wxGIFHandler",0); - SWIG_RegisterMapping("_class_wxPostScriptDC","_wxPostScriptDC",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_class_wxPNGHandler","_wxPNGHandler",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxPageSetupDialog","_class_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashWindow",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxImage","_wxImage",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxSashLayoutWindow","_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextEntryDialog","_class_wxTextEntryDialog",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_wxListItem","_class_wxListItem",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxPyApp","_class_wxPyApp",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxTreeEvent","_wxTreeEvent",0); - SWIG_RegisterMapping("_class_wxDirDialog","_wxDirDialog",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxMessageDialog","_wxMessageDialog",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_wxFileDialog","_class_wxFileDialog",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_wxPrintDialogData","_class_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxSashEvent","_class_wxSashEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_wxListCtrl","_class_wxListCtrl",0); - SWIG_RegisterMapping("_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxPrintDialog","_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxPostScriptDC","_class_wxPostScriptDC",0); - SWIG_RegisterMapping("_class_wxImageHandler","_wxImageHandler",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxTreeItemId","_class_wxTreeItemId",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxListItem","_wxListItem",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_class_wxFileDialog","_wxFileDialog",0); - SWIG_RegisterMapping("_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxJPEGHandler","_class_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxListEvent","_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_class_wxPyApp","_wxPyApp",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_wxPyTreeItemData","_class_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxTreeItemId","_wxTreeItemId",0); - SWIG_RegisterMapping("_wxTreeCtrl","_class_wxTreeCtrl",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxPageSetupDialog","_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxListCtrl","_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxTreeEvent","_class_wxTreeEvent",0); - SWIG_RegisterMapping("_wxDirDialog","_class_wxDirDialog",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_class_wxColourDialog","_wxColourDialog",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxTextEntryDialog","_wxTextEntryDialog",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_wxColourData","_class_wxColourData",0); - SWIG_RegisterMapping("_wxPageSetupDialogData","_class_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxFontDialog","_wxFontDialog",0); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/gtk/wx.py b/utils/wxPython/src/gtk/wx.py deleted file mode 100644 index 1a6538bb55..0000000000 --- a/utils/wxPython/src/gtk/wx.py +++ /dev/null @@ -1,1400 +0,0 @@ -# This file was created automatically by SWIG. -import wxc - -from misc import * - -from windows import * - -from gdi import * - -from events import * - -from mdi import * - -from frames import * - -from stattool import * - -from controls import * - -from controls2 import * - -from windows2 import * - -from cmndlgs import * - -from windows3 import * - -from image import * -class wxPyAppPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetAppName(self): - val = wxc.wxPyApp_GetAppName(self.this) - return val - def GetClassName(self): - val = wxc.wxPyApp_GetClassName(self.this) - return val - def GetExitOnFrameDelete(self): - val = wxc.wxPyApp_GetExitOnFrameDelete(self.this) - return val - def GetPrintMode(self): - val = wxc.wxPyApp_GetPrintMode(self.this) - return val - def GetTopWindow(self): - val = wxc.wxPyApp_GetTopWindow(self.this) - val = wxWindowPtr(val) - return val - def GetVendorName(self): - val = wxc.wxPyApp_GetVendorName(self.this) - return val - def Dispatch(self): - val = wxc.wxPyApp_Dispatch(self.this) - return val - def ExitMainLoop(self): - val = wxc.wxPyApp_ExitMainLoop(self.this) - return val - def Initialized(self): - val = wxc.wxPyApp_Initialized(self.this) - return val - def MainLoop(self): - val = wxc.wxPyApp_MainLoop(self.this) - return val - def Pending(self): - val = wxc.wxPyApp_Pending(self.this) - return val - def SetAppName(self,arg0): - val = wxc.wxPyApp_SetAppName(self.this,arg0) - return val - def SetClassName(self,arg0): - val = wxc.wxPyApp_SetClassName(self.this,arg0) - return val - def SetExitOnFrameDelete(self,arg0): - val = wxc.wxPyApp_SetExitOnFrameDelete(self.this,arg0) - return val - def SetPrintMode(self,arg0): - val = wxc.wxPyApp_SetPrintMode(self.this,arg0) - return val - def SetTopWindow(self,arg0): - val = wxc.wxPyApp_SetTopWindow(self.this,arg0.this) - return val - def SetVendorName(self,arg0): - val = wxc.wxPyApp_SetVendorName(self.this,arg0) - return val - def AfterMainLoop(self): - val = wxc.wxPyApp_AfterMainLoop(self.this) - return val - def __repr__(self): - return "" -class wxPyApp(wxPyAppPtr): - def __init__(self) : - self.this = wxc.new_wxPyApp() - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -_wxStart = wxc._wxStart - -_wxSetDictionary = wxc._wxSetDictionary - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxMAJOR_VERSION = wxc.wxMAJOR_VERSION -wxMINOR_VERSION = wxc.wxMINOR_VERSION -wxRELEASE_NUMBER = wxc.wxRELEASE_NUMBER -wxNOT_FOUND = wxc.wxNOT_FOUND -wxVSCROLL = wxc.wxVSCROLL -wxHSCROLL = wxc.wxHSCROLL -wxCAPTION = wxc.wxCAPTION -wxDOUBLE_BORDER = wxc.wxDOUBLE_BORDER -wxSUNKEN_BORDER = wxc.wxSUNKEN_BORDER -wxRAISED_BORDER = wxc.wxRAISED_BORDER -wxBORDER = wxc.wxBORDER -wxSIMPLE_BORDER = wxc.wxSIMPLE_BORDER -wxSTATIC_BORDER = wxc.wxSTATIC_BORDER -wxTRANSPARENT_WINDOW = wxc.wxTRANSPARENT_WINDOW -wxNO_BORDER = wxc.wxNO_BORDER -wxUSER_COLOURS = wxc.wxUSER_COLOURS -wxNO_3D = wxc.wxNO_3D -wxTAB_TRAVERSAL = wxc.wxTAB_TRAVERSAL -wxHORIZONTAL = wxc.wxHORIZONTAL -wxVERTICAL = wxc.wxVERTICAL -wxBOTH = wxc.wxBOTH -wxCENTER_FRAME = wxc.wxCENTER_FRAME -wxSTAY_ON_TOP = wxc.wxSTAY_ON_TOP -wxICONIZE = wxc.wxICONIZE -wxMINIMIZE = wxc.wxMINIMIZE -wxMAXIMIZE = wxc.wxMAXIMIZE -wxTHICK_FRAME = wxc.wxTHICK_FRAME -wxSYSTEM_MENU = wxc.wxSYSTEM_MENU -wxMINIMIZE_BOX = wxc.wxMINIMIZE_BOX -wxMAXIMIZE_BOX = wxc.wxMAXIMIZE_BOX -wxTINY_CAPTION_HORIZ = wxc.wxTINY_CAPTION_HORIZ -wxTINY_CAPTION_VERT = wxc.wxTINY_CAPTION_VERT -wxRESIZE_BOX = wxc.wxRESIZE_BOX -wxRESIZE_BORDER = wxc.wxRESIZE_BORDER -wxDIALOG_MODAL = wxc.wxDIALOG_MODAL -wxDIALOG_MODELESS = wxc.wxDIALOG_MODELESS -wxDEFAULT_FRAME_STYLE = wxc.wxDEFAULT_FRAME_STYLE -wxDEFAULT_DIALOG_STYLE = wxc.wxDEFAULT_DIALOG_STYLE -wxFRAME_TOOL_WINDOW = wxc.wxFRAME_TOOL_WINDOW -wxCLIP_CHILDREN = wxc.wxCLIP_CHILDREN -wxRETAINED = wxc.wxRETAINED -wxBACKINGSTORE = wxc.wxBACKINGSTORE -wxTB_3DBUTTONS = wxc.wxTB_3DBUTTONS -wxTB_HORIZONTAL = wxc.wxTB_HORIZONTAL -wxTB_VERTICAL = wxc.wxTB_VERTICAL -wxTB_FLAT = wxc.wxTB_FLAT -wxCOLOURED = wxc.wxCOLOURED -wxFIXED_LENGTH = wxc.wxFIXED_LENGTH -wxALIGN_LEFT = wxc.wxALIGN_LEFT -wxALIGN_CENTER = wxc.wxALIGN_CENTER -wxALIGN_CENTRE = wxc.wxALIGN_CENTRE -wxALIGN_RIGHT = wxc.wxALIGN_RIGHT -wxLB_NEEDED_SB = wxc.wxLB_NEEDED_SB -wxLB_ALWAYS_SB = wxc.wxLB_ALWAYS_SB -wxLB_SORT = wxc.wxLB_SORT -wxLB_SINGLE = wxc.wxLB_SINGLE -wxLB_MULTIPLE = wxc.wxLB_MULTIPLE -wxLB_EXTENDED = wxc.wxLB_EXTENDED -wxLB_OWNERDRAW = wxc.wxLB_OWNERDRAW -wxLB_HSCROLL = wxc.wxLB_HSCROLL -wxPROCESS_ENTER = wxc.wxPROCESS_ENTER -wxPASSWORD = wxc.wxPASSWORD -wxTE_PROCESS_ENTER = wxc.wxTE_PROCESS_ENTER -wxTE_PASSWORD = wxc.wxTE_PASSWORD -wxTE_READONLY = wxc.wxTE_READONLY -wxTE_MULTILINE = wxc.wxTE_MULTILINE -wxCB_SIMPLE = wxc.wxCB_SIMPLE -wxCB_DROPDOWN = wxc.wxCB_DROPDOWN -wxCB_SORT = wxc.wxCB_SORT -wxCB_READONLY = wxc.wxCB_READONLY -wxRA_HORIZONTAL = wxc.wxRA_HORIZONTAL -wxRA_VERTICAL = wxc.wxRA_VERTICAL -wxRA_SPECIFY_ROWS = wxc.wxRA_SPECIFY_ROWS -wxRA_SPECIFY_COLS = wxc.wxRA_SPECIFY_COLS -wxRB_GROUP = wxc.wxRB_GROUP -wxGA_PROGRESSBAR = wxc.wxGA_PROGRESSBAR -wxGA_HORIZONTAL = wxc.wxGA_HORIZONTAL -wxGA_VERTICAL = wxc.wxGA_VERTICAL -wxSL_HORIZONTAL = wxc.wxSL_HORIZONTAL -wxSL_VERTICAL = wxc.wxSL_VERTICAL -wxSL_AUTOTICKS = wxc.wxSL_AUTOTICKS -wxSL_LABELS = wxc.wxSL_LABELS -wxSL_LEFT = wxc.wxSL_LEFT -wxSL_TOP = wxc.wxSL_TOP -wxSL_RIGHT = wxc.wxSL_RIGHT -wxSL_BOTTOM = wxc.wxSL_BOTTOM -wxSL_BOTH = wxc.wxSL_BOTH -wxSL_SELRANGE = wxc.wxSL_SELRANGE -wxSB_HORIZONTAL = wxc.wxSB_HORIZONTAL -wxSB_VERTICAL = wxc.wxSB_VERTICAL -wxST_SIZEGRIP = wxc.wxST_SIZEGRIP -wxBU_AUTODRAW = wxc.wxBU_AUTODRAW -wxBU_NOAUTODRAW = wxc.wxBU_NOAUTODRAW -wxTR_HAS_BUTTONS = wxc.wxTR_HAS_BUTTONS -wxTR_EDIT_LABELS = wxc.wxTR_EDIT_LABELS -wxTR_LINES_AT_ROOT = wxc.wxTR_LINES_AT_ROOT -wxLC_ICON = wxc.wxLC_ICON -wxLC_SMALL_ICON = wxc.wxLC_SMALL_ICON -wxLC_LIST = wxc.wxLC_LIST -wxLC_REPORT = wxc.wxLC_REPORT -wxLC_ALIGN_TOP = wxc.wxLC_ALIGN_TOP -wxLC_ALIGN_LEFT = wxc.wxLC_ALIGN_LEFT -wxLC_AUTOARRANGE = wxc.wxLC_AUTOARRANGE -wxLC_USER_TEXT = wxc.wxLC_USER_TEXT -wxLC_EDIT_LABELS = wxc.wxLC_EDIT_LABELS -wxLC_NO_HEADER = wxc.wxLC_NO_HEADER -wxLC_NO_SORT_HEADER = wxc.wxLC_NO_SORT_HEADER -wxLC_SINGLE_SEL = wxc.wxLC_SINGLE_SEL -wxLC_SORT_ASCENDING = wxc.wxLC_SORT_ASCENDING -wxLC_SORT_DESCENDING = wxc.wxLC_SORT_DESCENDING -wxLC_MASK_TYPE = wxc.wxLC_MASK_TYPE -wxLC_MASK_ALIGN = wxc.wxLC_MASK_ALIGN -wxLC_MASK_SORT = wxc.wxLC_MASK_SORT -wxSP_VERTICAL = wxc.wxSP_VERTICAL -wxSP_HORIZONTAL = wxc.wxSP_HORIZONTAL -wxSP_ARROW_KEYS = wxc.wxSP_ARROW_KEYS -wxSP_WRAP = wxc.wxSP_WRAP -wxSP_NOBORDER = wxc.wxSP_NOBORDER -wxSP_3D = wxc.wxSP_3D -wxSP_BORDER = wxc.wxSP_BORDER -wxFLOOD_SURFACE = wxc.wxFLOOD_SURFACE -wxFLOOD_BORDER = wxc.wxFLOOD_BORDER -wxODDEVEN_RULE = wxc.wxODDEVEN_RULE -wxWINDING_RULE = wxc.wxWINDING_RULE -wxTOOL_TOP = wxc.wxTOOL_TOP -wxTOOL_BOTTOM = wxc.wxTOOL_BOTTOM -wxTOOL_LEFT = wxc.wxTOOL_LEFT -wxTOOL_RIGHT = wxc.wxTOOL_RIGHT -wxOK = wxc.wxOK -wxYES_NO = wxc.wxYES_NO -wxCANCEL = wxc.wxCANCEL -wxYES = wxc.wxYES -wxNO = wxc.wxNO -wxICON_EXCLAMATION = wxc.wxICON_EXCLAMATION -wxICON_HAND = wxc.wxICON_HAND -wxICON_QUESTION = wxc.wxICON_QUESTION -wxICON_INFORMATION = wxc.wxICON_INFORMATION -wxICON_STOP = wxc.wxICON_STOP -wxICON_ASTERISK = wxc.wxICON_ASTERISK -wxICON_MASK = wxc.wxICON_MASK -wxCENTRE = wxc.wxCENTRE -wxCENTER = wxc.wxCENTER -wxSIZE_AUTO_WIDTH = wxc.wxSIZE_AUTO_WIDTH -wxSIZE_AUTO_HEIGHT = wxc.wxSIZE_AUTO_HEIGHT -wxSIZE_AUTO = wxc.wxSIZE_AUTO -wxSIZE_USE_EXISTING = wxc.wxSIZE_USE_EXISTING -wxSIZE_ALLOW_MINUS_ONE = wxc.wxSIZE_ALLOW_MINUS_ONE -wxPORTRAIT = wxc.wxPORTRAIT -wxLANDSCAPE = wxc.wxLANDSCAPE -wxID_OPEN = wxc.wxID_OPEN -wxID_CLOSE = wxc.wxID_CLOSE -wxID_NEW = wxc.wxID_NEW -wxID_SAVE = wxc.wxID_SAVE -wxID_SAVEAS = wxc.wxID_SAVEAS -wxID_REVERT = wxc.wxID_REVERT -wxID_EXIT = wxc.wxID_EXIT -wxID_UNDO = wxc.wxID_UNDO -wxID_REDO = wxc.wxID_REDO -wxID_HELP = wxc.wxID_HELP -wxID_PRINT = wxc.wxID_PRINT -wxID_PRINT_SETUP = wxc.wxID_PRINT_SETUP -wxID_PREVIEW = wxc.wxID_PREVIEW -wxID_ABOUT = wxc.wxID_ABOUT -wxID_HELP_CONTENTS = wxc.wxID_HELP_CONTENTS -wxID_HELP_COMMANDS = wxc.wxID_HELP_COMMANDS -wxID_HELP_PROCEDURES = wxc.wxID_HELP_PROCEDURES -wxID_HELP_CONTEXT = wxc.wxID_HELP_CONTEXT -wxID_CUT = wxc.wxID_CUT -wxID_COPY = wxc.wxID_COPY -wxID_PASTE = wxc.wxID_PASTE -wxID_CLEAR = wxc.wxID_CLEAR -wxID_FIND = wxc.wxID_FIND -wxID_FILE1 = wxc.wxID_FILE1 -wxID_FILE2 = wxc.wxID_FILE2 -wxID_FILE3 = wxc.wxID_FILE3 -wxID_FILE4 = wxc.wxID_FILE4 -wxID_FILE5 = wxc.wxID_FILE5 -wxID_FILE6 = wxc.wxID_FILE6 -wxID_FILE7 = wxc.wxID_FILE7 -wxID_FILE8 = wxc.wxID_FILE8 -wxID_FILE9 = wxc.wxID_FILE9 -wxID_OK = wxc.wxID_OK -wxID_CANCEL = wxc.wxID_CANCEL -wxID_APPLY = wxc.wxID_APPLY -wxID_YES = wxc.wxID_YES -wxID_NO = wxc.wxID_NO -wxID_STATIC = wxc.wxID_STATIC -wxBITMAP_TYPE_BMP = wxc.wxBITMAP_TYPE_BMP -wxBITMAP_TYPE_BMP_RESOURCE = wxc.wxBITMAP_TYPE_BMP_RESOURCE -wxBITMAP_TYPE_ICO = wxc.wxBITMAP_TYPE_ICO -wxBITMAP_TYPE_ICO_RESOURCE = wxc.wxBITMAP_TYPE_ICO_RESOURCE -wxBITMAP_TYPE_CUR = wxc.wxBITMAP_TYPE_CUR -wxBITMAP_TYPE_CUR_RESOURCE = wxc.wxBITMAP_TYPE_CUR_RESOURCE -wxBITMAP_TYPE_XBM = wxc.wxBITMAP_TYPE_XBM -wxBITMAP_TYPE_XBM_DATA = wxc.wxBITMAP_TYPE_XBM_DATA -wxBITMAP_TYPE_XPM = wxc.wxBITMAP_TYPE_XPM -wxBITMAP_TYPE_XPM_DATA = wxc.wxBITMAP_TYPE_XPM_DATA -wxBITMAP_TYPE_TIF = wxc.wxBITMAP_TYPE_TIF -wxBITMAP_TYPE_TIF_RESOURCE = wxc.wxBITMAP_TYPE_TIF_RESOURCE -wxBITMAP_TYPE_GIF = wxc.wxBITMAP_TYPE_GIF -wxBITMAP_TYPE_GIF_RESOURCE = wxc.wxBITMAP_TYPE_GIF_RESOURCE -wxBITMAP_TYPE_PNG = wxc.wxBITMAP_TYPE_PNG -wxBITMAP_TYPE_PNG_RESOURCE = wxc.wxBITMAP_TYPE_PNG_RESOURCE -wxBITMAP_TYPE_ANY = wxc.wxBITMAP_TYPE_ANY -wxBITMAP_TYPE_RESOURCE = wxc.wxBITMAP_TYPE_RESOURCE -wxBITMAP_TYPE_JPEG = wxc.wxBITMAP_TYPE_JPEG -wxOPEN = wxc.wxOPEN -wxSAVE = wxc.wxSAVE -wxHIDE_READONLY = wxc.wxHIDE_READONLY -wxOVERWRITE_PROMPT = wxc.wxOVERWRITE_PROMPT -wxACCEL_ALT = wxc.wxACCEL_ALT -wxACCEL_CTRL = wxc.wxACCEL_CTRL -wxACCEL_SHIFT = wxc.wxACCEL_SHIFT -wxDEFAULT = wxc.wxDEFAULT -wxDECORATIVE = wxc.wxDECORATIVE -wxROMAN = wxc.wxROMAN -wxSCRIPT = wxc.wxSCRIPT -wxSWISS = wxc.wxSWISS -wxMODERN = wxc.wxMODERN -wxTELETYPE = wxc.wxTELETYPE -wxVARIABLE = wxc.wxVARIABLE -wxFIXED = wxc.wxFIXED -wxNORMAL = wxc.wxNORMAL -wxLIGHT = wxc.wxLIGHT -wxBOLD = wxc.wxBOLD -wxITALIC = wxc.wxITALIC -wxSLANT = wxc.wxSLANT -wxSOLID = wxc.wxSOLID -wxDOT = wxc.wxDOT -wxLONG_DASH = wxc.wxLONG_DASH -wxSHORT_DASH = wxc.wxSHORT_DASH -wxDOT_DASH = wxc.wxDOT_DASH -wxUSER_DASH = wxc.wxUSER_DASH -wxTRANSPARENT = wxc.wxTRANSPARENT -wxSTIPPLE = wxc.wxSTIPPLE -wxBDIAGONAL_HATCH = wxc.wxBDIAGONAL_HATCH -wxCROSSDIAG_HATCH = wxc.wxCROSSDIAG_HATCH -wxFDIAGONAL_HATCH = wxc.wxFDIAGONAL_HATCH -wxCROSS_HATCH = wxc.wxCROSS_HATCH -wxHORIZONTAL_HATCH = wxc.wxHORIZONTAL_HATCH -wxVERTICAL_HATCH = wxc.wxVERTICAL_HATCH -wxJOIN_BEVEL = wxc.wxJOIN_BEVEL -wxJOIN_MITER = wxc.wxJOIN_MITER -wxJOIN_ROUND = wxc.wxJOIN_ROUND -wxCAP_ROUND = wxc.wxCAP_ROUND -wxCAP_PROJECTING = wxc.wxCAP_PROJECTING -wxCAP_BUTT = wxc.wxCAP_BUTT -wxCLEAR = wxc.wxCLEAR -wxXOR = wxc.wxXOR -wxINVERT = wxc.wxINVERT -wxOR_REVERSE = wxc.wxOR_REVERSE -wxAND_REVERSE = wxc.wxAND_REVERSE -wxCOPY = wxc.wxCOPY -wxAND = wxc.wxAND -wxAND_INVERT = wxc.wxAND_INVERT -wxNO_OP = wxc.wxNO_OP -wxNOR = wxc.wxNOR -wxEQUIV = wxc.wxEQUIV -wxSRC_INVERT = wxc.wxSRC_INVERT -wxOR_INVERT = wxc.wxOR_INVERT -wxNAND = wxc.wxNAND -wxOR = wxc.wxOR -wxSET = wxc.wxSET -wxSRC_OR = wxc.wxSRC_OR -wxSRC_AND = wxc.wxSRC_AND -WXK_BACK = wxc.WXK_BACK -WXK_TAB = wxc.WXK_TAB -WXK_RETURN = wxc.WXK_RETURN -WXK_ESCAPE = wxc.WXK_ESCAPE -WXK_SPACE = wxc.WXK_SPACE -WXK_DELETE = wxc.WXK_DELETE -WXK_START = wxc.WXK_START -WXK_LBUTTON = wxc.WXK_LBUTTON -WXK_RBUTTON = wxc.WXK_RBUTTON -WXK_CANCEL = wxc.WXK_CANCEL -WXK_MBUTTON = wxc.WXK_MBUTTON -WXK_CLEAR = wxc.WXK_CLEAR -WXK_SHIFT = wxc.WXK_SHIFT -WXK_CONTROL = wxc.WXK_CONTROL -WXK_MENU = wxc.WXK_MENU -WXK_PAUSE = wxc.WXK_PAUSE -WXK_CAPITAL = wxc.WXK_CAPITAL -WXK_PRIOR = wxc.WXK_PRIOR -WXK_NEXT = wxc.WXK_NEXT -WXK_END = wxc.WXK_END -WXK_HOME = wxc.WXK_HOME -WXK_LEFT = wxc.WXK_LEFT -WXK_UP = wxc.WXK_UP -WXK_RIGHT = wxc.WXK_RIGHT -WXK_DOWN = wxc.WXK_DOWN -WXK_SELECT = wxc.WXK_SELECT -WXK_PRINT = wxc.WXK_PRINT -WXK_EXECUTE = wxc.WXK_EXECUTE -WXK_SNAPSHOT = wxc.WXK_SNAPSHOT -WXK_INSERT = wxc.WXK_INSERT -WXK_HELP = wxc.WXK_HELP -WXK_NUMPAD0 = wxc.WXK_NUMPAD0 -WXK_NUMPAD1 = wxc.WXK_NUMPAD1 -WXK_NUMPAD2 = wxc.WXK_NUMPAD2 -WXK_NUMPAD3 = wxc.WXK_NUMPAD3 -WXK_NUMPAD4 = wxc.WXK_NUMPAD4 -WXK_NUMPAD5 = wxc.WXK_NUMPAD5 -WXK_NUMPAD6 = wxc.WXK_NUMPAD6 -WXK_NUMPAD7 = wxc.WXK_NUMPAD7 -WXK_NUMPAD8 = wxc.WXK_NUMPAD8 -WXK_NUMPAD9 = wxc.WXK_NUMPAD9 -WXK_MULTIPLY = wxc.WXK_MULTIPLY -WXK_ADD = wxc.WXK_ADD -WXK_SEPARATOR = wxc.WXK_SEPARATOR -WXK_SUBTRACT = wxc.WXK_SUBTRACT -WXK_DECIMAL = wxc.WXK_DECIMAL -WXK_DIVIDE = wxc.WXK_DIVIDE -WXK_F1 = wxc.WXK_F1 -WXK_F2 = wxc.WXK_F2 -WXK_F3 = wxc.WXK_F3 -WXK_F4 = wxc.WXK_F4 -WXK_F5 = wxc.WXK_F5 -WXK_F6 = wxc.WXK_F6 -WXK_F7 = wxc.WXK_F7 -WXK_F8 = wxc.WXK_F8 -WXK_F9 = wxc.WXK_F9 -WXK_F10 = wxc.WXK_F10 -WXK_F11 = wxc.WXK_F11 -WXK_F12 = wxc.WXK_F12 -WXK_F13 = wxc.WXK_F13 -WXK_F14 = wxc.WXK_F14 -WXK_F15 = wxc.WXK_F15 -WXK_F16 = wxc.WXK_F16 -WXK_F17 = wxc.WXK_F17 -WXK_F18 = wxc.WXK_F18 -WXK_F19 = wxc.WXK_F19 -WXK_F20 = wxc.WXK_F20 -WXK_F21 = wxc.WXK_F21 -WXK_F22 = wxc.WXK_F22 -WXK_F23 = wxc.WXK_F23 -WXK_F24 = wxc.WXK_F24 -WXK_NUMLOCK = wxc.WXK_NUMLOCK -WXK_SCROLL = wxc.WXK_SCROLL -WXK_PAGEUP = wxc.WXK_PAGEUP -WXK_PAGEDOWN = wxc.WXK_PAGEDOWN -wxCURSOR_NONE = wxc.wxCURSOR_NONE -wxCURSOR_ARROW = wxc.wxCURSOR_ARROW -wxCURSOR_BULLSEYE = wxc.wxCURSOR_BULLSEYE -wxCURSOR_CHAR = wxc.wxCURSOR_CHAR -wxCURSOR_CROSS = wxc.wxCURSOR_CROSS -wxCURSOR_HAND = wxc.wxCURSOR_HAND -wxCURSOR_IBEAM = wxc.wxCURSOR_IBEAM -wxCURSOR_LEFT_BUTTON = wxc.wxCURSOR_LEFT_BUTTON -wxCURSOR_MAGNIFIER = wxc.wxCURSOR_MAGNIFIER -wxCURSOR_MIDDLE_BUTTON = wxc.wxCURSOR_MIDDLE_BUTTON -wxCURSOR_NO_ENTRY = wxc.wxCURSOR_NO_ENTRY -wxCURSOR_PAINT_BRUSH = wxc.wxCURSOR_PAINT_BRUSH -wxCURSOR_PENCIL = wxc.wxCURSOR_PENCIL -wxCURSOR_POINT_LEFT = wxc.wxCURSOR_POINT_LEFT -wxCURSOR_POINT_RIGHT = wxc.wxCURSOR_POINT_RIGHT -wxCURSOR_QUESTION_ARROW = wxc.wxCURSOR_QUESTION_ARROW -wxCURSOR_RIGHT_BUTTON = wxc.wxCURSOR_RIGHT_BUTTON -wxCURSOR_SIZENESW = wxc.wxCURSOR_SIZENESW -wxCURSOR_SIZENS = wxc.wxCURSOR_SIZENS -wxCURSOR_SIZENWSE = wxc.wxCURSOR_SIZENWSE -wxCURSOR_SIZEWE = wxc.wxCURSOR_SIZEWE -wxCURSOR_SIZING = wxc.wxCURSOR_SIZING -wxCURSOR_SPRAYCAN = wxc.wxCURSOR_SPRAYCAN -wxCURSOR_WAIT = wxc.wxCURSOR_WAIT -wxCURSOR_WATCH = wxc.wxCURSOR_WATCH -wxCURSOR_BLANK = wxc.wxCURSOR_BLANK -wxPAPER_NONE = wxc.wxPAPER_NONE -wxPAPER_LETTER = wxc.wxPAPER_LETTER -wxPAPER_LEGAL = wxc.wxPAPER_LEGAL -wxPAPER_A4 = wxc.wxPAPER_A4 -wxPAPER_CSHEET = wxc.wxPAPER_CSHEET -wxPAPER_DSHEET = wxc.wxPAPER_DSHEET -wxPAPER_ESHEET = wxc.wxPAPER_ESHEET -wxPAPER_LETTERSMALL = wxc.wxPAPER_LETTERSMALL -wxPAPER_TABLOID = wxc.wxPAPER_TABLOID -wxPAPER_LEDGER = wxc.wxPAPER_LEDGER -wxPAPER_STATEMENT = wxc.wxPAPER_STATEMENT -wxPAPER_EXECUTIVE = wxc.wxPAPER_EXECUTIVE -wxPAPER_A3 = wxc.wxPAPER_A3 -wxPAPER_A4SMALL = wxc.wxPAPER_A4SMALL -wxPAPER_A5 = wxc.wxPAPER_A5 -wxPAPER_B4 = wxc.wxPAPER_B4 -wxPAPER_B5 = wxc.wxPAPER_B5 -wxPAPER_FOLIO = wxc.wxPAPER_FOLIO -wxPAPER_QUARTO = wxc.wxPAPER_QUARTO -wxPAPER_10X14 = wxc.wxPAPER_10X14 -wxPAPER_11X17 = wxc.wxPAPER_11X17 -wxPAPER_NOTE = wxc.wxPAPER_NOTE -wxPAPER_ENV_9 = wxc.wxPAPER_ENV_9 -wxPAPER_ENV_10 = wxc.wxPAPER_ENV_10 -wxPAPER_ENV_11 = wxc.wxPAPER_ENV_11 -wxPAPER_ENV_12 = wxc.wxPAPER_ENV_12 -wxPAPER_ENV_14 = wxc.wxPAPER_ENV_14 -wxPAPER_ENV_DL = wxc.wxPAPER_ENV_DL -wxPAPER_ENV_C5 = wxc.wxPAPER_ENV_C5 -wxPAPER_ENV_C3 = wxc.wxPAPER_ENV_C3 -wxPAPER_ENV_C4 = wxc.wxPAPER_ENV_C4 -wxPAPER_ENV_C6 = wxc.wxPAPER_ENV_C6 -wxPAPER_ENV_C65 = wxc.wxPAPER_ENV_C65 -wxPAPER_ENV_B4 = wxc.wxPAPER_ENV_B4 -wxPAPER_ENV_B5 = wxc.wxPAPER_ENV_B5 -wxPAPER_ENV_B6 = wxc.wxPAPER_ENV_B6 -wxPAPER_ENV_ITALY = wxc.wxPAPER_ENV_ITALY -wxPAPER_ENV_MONARCH = wxc.wxPAPER_ENV_MONARCH -wxPAPER_ENV_PERSONAL = wxc.wxPAPER_ENV_PERSONAL -wxPAPER_FANFOLD_US = wxc.wxPAPER_FANFOLD_US -wxPAPER_FANFOLD_STD_GERMAN = wxc.wxPAPER_FANFOLD_STD_GERMAN -wxPAPER_FANFOLD_LGL_GERMAN = wxc.wxPAPER_FANFOLD_LGL_GERMAN -wxPAPER_ISO_B4 = wxc.wxPAPER_ISO_B4 -wxPAPER_JAPANESE_POSTCARD = wxc.wxPAPER_JAPANESE_POSTCARD -wxPAPER_9X11 = wxc.wxPAPER_9X11 -wxPAPER_10X11 = wxc.wxPAPER_10X11 -wxPAPER_15X11 = wxc.wxPAPER_15X11 -wxPAPER_ENV_INVITE = wxc.wxPAPER_ENV_INVITE -wxPAPER_LETTER_EXTRA = wxc.wxPAPER_LETTER_EXTRA -wxPAPER_LEGAL_EXTRA = wxc.wxPAPER_LEGAL_EXTRA -wxPAPER_TABLOID_EXTRA = wxc.wxPAPER_TABLOID_EXTRA -wxPAPER_A4_EXTRA = wxc.wxPAPER_A4_EXTRA -wxPAPER_LETTER_TRANSVERSE = wxc.wxPAPER_LETTER_TRANSVERSE -wxPAPER_A4_TRANSVERSE = wxc.wxPAPER_A4_TRANSVERSE -wxPAPER_LETTER_EXTRA_TRANSVERSE = wxc.wxPAPER_LETTER_EXTRA_TRANSVERSE -wxPAPER_A_PLUS = wxc.wxPAPER_A_PLUS -wxPAPER_B_PLUS = wxc.wxPAPER_B_PLUS -wxPAPER_LETTER_PLUS = wxc.wxPAPER_LETTER_PLUS -wxPAPER_A4_PLUS = wxc.wxPAPER_A4_PLUS -wxPAPER_A5_TRANSVERSE = wxc.wxPAPER_A5_TRANSVERSE -wxPAPER_B5_TRANSVERSE = wxc.wxPAPER_B5_TRANSVERSE -wxPAPER_A3_EXTRA = wxc.wxPAPER_A3_EXTRA -wxPAPER_A5_EXTRA = wxc.wxPAPER_A5_EXTRA -wxPAPER_B5_EXTRA = wxc.wxPAPER_B5_EXTRA -wxPAPER_A2 = wxc.wxPAPER_A2 -wxPAPER_A3_TRANSVERSE = wxc.wxPAPER_A3_TRANSVERSE -wxPAPER_A3_EXTRA_TRANSVERSE = wxc.wxPAPER_A3_EXTRA_TRANSVERSE -FALSE = wxc.FALSE -false = wxc.false -TRUE = wxc.TRUE -true = wxc.true -wxVERSION_STRING = wxc.wxVERSION_STRING -wxEVT_NULL = wxc.wxEVT_NULL -wxEVT_FIRST = wxc.wxEVT_FIRST -wxEVT_COMMAND_BUTTON_CLICKED = wxc.wxEVT_COMMAND_BUTTON_CLICKED -wxEVT_COMMAND_CHECKBOX_CLICKED = wxc.wxEVT_COMMAND_CHECKBOX_CLICKED -wxEVT_COMMAND_CHOICE_SELECTED = wxc.wxEVT_COMMAND_CHOICE_SELECTED -wxEVT_COMMAND_LISTBOX_SELECTED = wxc.wxEVT_COMMAND_LISTBOX_SELECTED -wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = wxc.wxEVT_COMMAND_LISTBOX_DOUBLECLICKED -wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxc.wxEVT_COMMAND_CHECKLISTBOX_TOGGLED -wxEVT_COMMAND_TEXT_UPDATED = wxc.wxEVT_COMMAND_TEXT_UPDATED -wxEVT_COMMAND_TEXT_ENTER = wxc.wxEVT_COMMAND_TEXT_ENTER -wxEVT_COMMAND_MENU_SELECTED = wxc.wxEVT_COMMAND_MENU_SELECTED -wxEVT_COMMAND_SLIDER_UPDATED = wxc.wxEVT_COMMAND_SLIDER_UPDATED -wxEVT_COMMAND_RADIOBOX_SELECTED = wxc.wxEVT_COMMAND_RADIOBOX_SELECTED -wxEVT_COMMAND_RADIOBUTTON_SELECTED = wxc.wxEVT_COMMAND_RADIOBUTTON_SELECTED -wxEVT_COMMAND_SCROLLBAR_UPDATED = wxc.wxEVT_COMMAND_SCROLLBAR_UPDATED -wxEVT_COMMAND_VLBOX_SELECTED = wxc.wxEVT_COMMAND_VLBOX_SELECTED -wxEVT_COMMAND_COMBOBOX_SELECTED = wxc.wxEVT_COMMAND_COMBOBOX_SELECTED -wxEVT_COMMAND_TOOL_CLICKED = wxc.wxEVT_COMMAND_TOOL_CLICKED -wxEVT_COMMAND_TOOL_RCLICKED = wxc.wxEVT_COMMAND_TOOL_RCLICKED -wxEVT_COMMAND_TOOL_ENTER = wxc.wxEVT_COMMAND_TOOL_ENTER -wxEVT_SET_FOCUS = wxc.wxEVT_SET_FOCUS -wxEVT_KILL_FOCUS = wxc.wxEVT_KILL_FOCUS -wxEVT_LEFT_DOWN = wxc.wxEVT_LEFT_DOWN -wxEVT_LEFT_UP = wxc.wxEVT_LEFT_UP -wxEVT_MIDDLE_DOWN = wxc.wxEVT_MIDDLE_DOWN -wxEVT_MIDDLE_UP = wxc.wxEVT_MIDDLE_UP -wxEVT_RIGHT_DOWN = wxc.wxEVT_RIGHT_DOWN -wxEVT_RIGHT_UP = wxc.wxEVT_RIGHT_UP -wxEVT_MOTION = wxc.wxEVT_MOTION -wxEVT_ENTER_WINDOW = wxc.wxEVT_ENTER_WINDOW -wxEVT_LEAVE_WINDOW = wxc.wxEVT_LEAVE_WINDOW -wxEVT_LEFT_DCLICK = wxc.wxEVT_LEFT_DCLICK -wxEVT_MIDDLE_DCLICK = wxc.wxEVT_MIDDLE_DCLICK -wxEVT_RIGHT_DCLICK = wxc.wxEVT_RIGHT_DCLICK -wxEVT_NC_LEFT_DOWN = wxc.wxEVT_NC_LEFT_DOWN -wxEVT_NC_LEFT_UP = wxc.wxEVT_NC_LEFT_UP -wxEVT_NC_MIDDLE_DOWN = wxc.wxEVT_NC_MIDDLE_DOWN -wxEVT_NC_MIDDLE_UP = wxc.wxEVT_NC_MIDDLE_UP -wxEVT_NC_RIGHT_DOWN = wxc.wxEVT_NC_RIGHT_DOWN -wxEVT_NC_RIGHT_UP = wxc.wxEVT_NC_RIGHT_UP -wxEVT_NC_MOTION = wxc.wxEVT_NC_MOTION -wxEVT_NC_ENTER_WINDOW = wxc.wxEVT_NC_ENTER_WINDOW -wxEVT_NC_LEAVE_WINDOW = wxc.wxEVT_NC_LEAVE_WINDOW -wxEVT_NC_LEFT_DCLICK = wxc.wxEVT_NC_LEFT_DCLICK -wxEVT_NC_MIDDLE_DCLICK = wxc.wxEVT_NC_MIDDLE_DCLICK -wxEVT_NC_RIGHT_DCLICK = wxc.wxEVT_NC_RIGHT_DCLICK -wxEVT_CHAR = wxc.wxEVT_CHAR -wxEVT_SCROLL_TOP = wxc.wxEVT_SCROLL_TOP -wxEVT_SCROLL_BOTTOM = wxc.wxEVT_SCROLL_BOTTOM -wxEVT_SCROLL_LINEUP = wxc.wxEVT_SCROLL_LINEUP -wxEVT_SCROLL_LINEDOWN = wxc.wxEVT_SCROLL_LINEDOWN -wxEVT_SCROLL_PAGEUP = wxc.wxEVT_SCROLL_PAGEUP -wxEVT_SCROLL_PAGEDOWN = wxc.wxEVT_SCROLL_PAGEDOWN -wxEVT_SCROLL_THUMBTRACK = wxc.wxEVT_SCROLL_THUMBTRACK -wxEVT_SIZE = wxc.wxEVT_SIZE -wxEVT_MOVE = wxc.wxEVT_MOVE -wxEVT_CLOSE_WINDOW = wxc.wxEVT_CLOSE_WINDOW -wxEVT_END_SESSION = wxc.wxEVT_END_SESSION -wxEVT_QUERY_END_SESSION = wxc.wxEVT_QUERY_END_SESSION -wxEVT_ACTIVATE_APP = wxc.wxEVT_ACTIVATE_APP -wxEVT_POWER = wxc.wxEVT_POWER -wxEVT_CHAR_HOOK = wxc.wxEVT_CHAR_HOOK -wxEVT_KEY_UP = wxc.wxEVT_KEY_UP -wxEVT_ACTIVATE = wxc.wxEVT_ACTIVATE -wxEVT_CREATE = wxc.wxEVT_CREATE -wxEVT_DESTROY = wxc.wxEVT_DESTROY -wxEVT_SHOW = wxc.wxEVT_SHOW -wxEVT_ICONIZE = wxc.wxEVT_ICONIZE -wxEVT_MAXIMIZE = wxc.wxEVT_MAXIMIZE -wxEVT_MOUSE_CAPTURE_CHANGED = wxc.wxEVT_MOUSE_CAPTURE_CHANGED -wxEVT_PAINT = wxc.wxEVT_PAINT -wxEVT_ERASE_BACKGROUND = wxc.wxEVT_ERASE_BACKGROUND -wxEVT_NC_PAINT = wxc.wxEVT_NC_PAINT -wxEVT_PAINT_ICON = wxc.wxEVT_PAINT_ICON -wxEVT_MENU_CHAR = wxc.wxEVT_MENU_CHAR -wxEVT_MENU_INIT = wxc.wxEVT_MENU_INIT -wxEVT_MENU_HIGHLIGHT = wxc.wxEVT_MENU_HIGHLIGHT -wxEVT_POPUP_MENU_INIT = wxc.wxEVT_POPUP_MENU_INIT -wxEVT_CONTEXT_MENU = wxc.wxEVT_CONTEXT_MENU -wxEVT_SYS_COLOUR_CHANGED = wxc.wxEVT_SYS_COLOUR_CHANGED -wxEVT_SETTING_CHANGED = wxc.wxEVT_SETTING_CHANGED -wxEVT_QUERY_NEW_PALETTE = wxc.wxEVT_QUERY_NEW_PALETTE -wxEVT_PALETTE_CHANGED = wxc.wxEVT_PALETTE_CHANGED -wxEVT_JOY_BUTTON_DOWN = wxc.wxEVT_JOY_BUTTON_DOWN -wxEVT_JOY_BUTTON_UP = wxc.wxEVT_JOY_BUTTON_UP -wxEVT_JOY_MOVE = wxc.wxEVT_JOY_MOVE -wxEVT_JOY_ZMOVE = wxc.wxEVT_JOY_ZMOVE -wxEVT_DROP_FILES = wxc.wxEVT_DROP_FILES -wxEVT_DRAW_ITEM = wxc.wxEVT_DRAW_ITEM -wxEVT_MEASURE_ITEM = wxc.wxEVT_MEASURE_ITEM -wxEVT_COMPARE_ITEM = wxc.wxEVT_COMPARE_ITEM -wxEVT_INIT_DIALOG = wxc.wxEVT_INIT_DIALOG -wxEVT_IDLE = wxc.wxEVT_IDLE -wxEVT_UPDATE_UI = wxc.wxEVT_UPDATE_UI -wxEVT_COMMAND_LEFT_CLICK = wxc.wxEVT_COMMAND_LEFT_CLICK -wxEVT_COMMAND_LEFT_DCLICK = wxc.wxEVT_COMMAND_LEFT_DCLICK -wxEVT_COMMAND_RIGHT_CLICK = wxc.wxEVT_COMMAND_RIGHT_CLICK -wxEVT_COMMAND_RIGHT_DCLICK = wxc.wxEVT_COMMAND_RIGHT_DCLICK -wxEVT_COMMAND_SET_FOCUS = wxc.wxEVT_COMMAND_SET_FOCUS -wxEVT_COMMAND_KILL_FOCUS = wxc.wxEVT_COMMAND_KILL_FOCUS -wxEVT_COMMAND_ENTER = wxc.wxEVT_COMMAND_ENTER -wxEVT_COMMAND_TREE_BEGIN_DRAG = wxc.wxEVT_COMMAND_TREE_BEGIN_DRAG -wxEVT_COMMAND_TREE_BEGIN_RDRAG = wxc.wxEVT_COMMAND_TREE_BEGIN_RDRAG -wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT = wxc.wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT -wxEVT_COMMAND_TREE_END_LABEL_EDIT = wxc.wxEVT_COMMAND_TREE_END_LABEL_EDIT -wxEVT_COMMAND_TREE_DELETE_ITEM = wxc.wxEVT_COMMAND_TREE_DELETE_ITEM -wxEVT_COMMAND_TREE_GET_INFO = wxc.wxEVT_COMMAND_TREE_GET_INFO -wxEVT_COMMAND_TREE_SET_INFO = wxc.wxEVT_COMMAND_TREE_SET_INFO -wxEVT_COMMAND_TREE_ITEM_EXPANDED = wxc.wxEVT_COMMAND_TREE_ITEM_EXPANDED -wxEVT_COMMAND_TREE_ITEM_EXPANDING = wxc.wxEVT_COMMAND_TREE_ITEM_EXPANDING -wxEVT_COMMAND_TREE_ITEM_COLLAPSED = wxc.wxEVT_COMMAND_TREE_ITEM_COLLAPSED -wxEVT_COMMAND_TREE_ITEM_COLLAPSING = wxc.wxEVT_COMMAND_TREE_ITEM_COLLAPSING -wxEVT_COMMAND_TREE_SEL_CHANGED = wxc.wxEVT_COMMAND_TREE_SEL_CHANGED -wxEVT_COMMAND_TREE_SEL_CHANGING = wxc.wxEVT_COMMAND_TREE_SEL_CHANGING -wxEVT_COMMAND_TREE_KEY_DOWN = wxc.wxEVT_COMMAND_TREE_KEY_DOWN -wxEVT_COMMAND_LIST_BEGIN_DRAG = wxc.wxEVT_COMMAND_LIST_BEGIN_DRAG -wxEVT_COMMAND_LIST_BEGIN_RDRAG = wxc.wxEVT_COMMAND_LIST_BEGIN_RDRAG -wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = wxc.wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT -wxEVT_COMMAND_LIST_END_LABEL_EDIT = wxc.wxEVT_COMMAND_LIST_END_LABEL_EDIT -wxEVT_COMMAND_LIST_DELETE_ITEM = wxc.wxEVT_COMMAND_LIST_DELETE_ITEM -wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = wxc.wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS -wxEVT_COMMAND_LIST_GET_INFO = wxc.wxEVT_COMMAND_LIST_GET_INFO -wxEVT_COMMAND_LIST_SET_INFO = wxc.wxEVT_COMMAND_LIST_SET_INFO -wxEVT_COMMAND_LIST_ITEM_SELECTED = wxc.wxEVT_COMMAND_LIST_ITEM_SELECTED -wxEVT_COMMAND_LIST_ITEM_DESELECTED = wxc.wxEVT_COMMAND_LIST_ITEM_DESELECTED -wxEVT_COMMAND_LIST_KEY_DOWN = wxc.wxEVT_COMMAND_LIST_KEY_DOWN -wxEVT_COMMAND_LIST_INSERT_ITEM = wxc.wxEVT_COMMAND_LIST_INSERT_ITEM -wxEVT_COMMAND_LIST_COL_CLICK = wxc.wxEVT_COMMAND_LIST_COL_CLICK -wxEVT_COMMAND_TAB_SEL_CHANGED = wxc.wxEVT_COMMAND_TAB_SEL_CHANGED -wxEVT_COMMAND_TAB_SEL_CHANGING = wxc.wxEVT_COMMAND_TAB_SEL_CHANGING -wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxc.wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED -wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxc.wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING -__version__ = wxc.__version__ -cvar = wxc.cvar -wxPyDefaultPosition = wxPointPtr(wxc.cvar.wxPyDefaultPosition) -wxPyDefaultSize = wxSizePtr(wxc.cvar.wxPyDefaultSize) - - -#-------------- USER INCLUDE ----------------------- - -#---------------------------------------------------------------------------- -# Name: _extra.py -# Purpose: This file is appended to the shadow class file generated -# by SWIG. We add some unSWIGable things here. -# -# Author: Robin Dunn -# -# Created: 6/30/97 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -import sys - -#---------------------------------------------------------------------- -# This gives this module's dictionary to the C++ extension code... - -_wxSetDictionary(vars()) - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -# Helper function to link python methods to wxWindows virtual -# functions by name. - -def _checkForCallback(obj, name, event, theID=-1): - try: cb = getattr(obj, name) - except: pass - else: obj.Connect(theID, -1, event, cb) - -def _StdWindowCallbacks(win): - _checkForCallback(win, "OnChar", wxEVT_CHAR) - _checkForCallback(win, "OnSize", wxEVT_SIZE) - _checkForCallback(win, "OnEraseBackground", wxEVT_ERASE_BACKGROUND) - _checkForCallback(win, "OnSysColourChanged", wxEVT_SYS_COLOUR_CHANGED) - _checkForCallback(win, "OnInitDialog", wxEVT_INIT_DIALOG) - _checkForCallback(win, "OnPaint", wxEVT_PAINT) - _checkForCallback(win, "OnIdle", wxEVT_IDLE) - - -def _StdFrameCallbacks(win): - _StdWindowCallbacks(win) - _checkForCallback(win, "OnActivate", wxEVT_ACTIVATE) - _checkForCallback(win, "OnMenuHighlight", wxEVT_MENU_HIGHLIGHT) - _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - - -def _StdDialogCallbacks(win): - _StdWindowCallbacks(win) - _checkForCallback(win, "OnOk", wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK) - _checkForCallback(win, "OnApply", wxEVT_COMMAND_BUTTON_CLICKED, wxID_APPLY) - _checkForCallback(win, "OnCancel", wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL) - _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - _checkForCallback(win, "OnCharHook", wxEVT_CHAR_HOOK) - - -def _StdOnScrollCallbacks(win): - try: cb = getattr(win, "OnScroll") - except: pass - else: EVT_SCROLL(win, cb) - - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -# functions that look and act like the C++ Macros of the same name - - -# Miscellaneous -def EVT_SIZE(win, func): - win.Connect(-1, -1, wxEVT_SIZE, func) - -def EVT_MOVE(win, func): - win.Connect(-1, -1, wxEVT_MOVE, func) - -def EVT_CLOSE(win, func): - win.Connect(-1, -1, wxEVT_CLOSE_WINDOW, func) - -def EVT_PAINT(win, func): - win.Connect(-1, -1, wxEVT_PAINT, func) - -def EVT_ERASE_BACKGROUND(win, func): - win.Connect(-1, -1, wxEVT_ERASE_BACKGROUND, func) - -def EVT_CHAR(win, func): - win.Connect(-1, -1, wxEVT_CHAR, func) - -def EVT_CHAR_HOOK(win, func): - win.Connect(-1, -1, wxEVT_CHAR_HOOK, func) - -def EVT_MENU_HIGHLIGHT(win, id, func): - win.Connect(id, -1, wxEVT_MENU_HIGHLIGHT, func) - -def EVT_MENU_HIGHLIGHT_ALL(win, func): - win.Connect(-1, -1, wxEVT_MENU_HIGHLIGHT, func) - -def EVT_SET_FOCUS(win, func): - win.Connect(-1, -1, wxEVT_SET_FOCUS, func) - -def EVT_KILL_FOCUS(win, func): - win.Connect(-1, -1, wxEVT_KILL_FOCUS, func) - -def EVT_ACTIVATE(win, func): - win.Connect(-1, -1, wxEVT_ACTIVATE, func) - -def EVT_ACTIVATE_APP(win, func): - win.Connect(-1, -1, wxEVT_ACTIVATE_APP, func) - -def EVT_END_SESSION(win, func): - win.Connect(-1, -1, wxEVT_END_SESSION, func) - -def EVT_QUERY_END_SESSION(win, func): - win.Connect(-1, -1, wxEVT_QUERY_END_SESSION, func) - -def EVT_DROP_FILES(win, func): - win.Connect(-1, -1, wxEVT_DROP_FILES, func) - -def EVT_INIT_DIALOG(win, func): - win.Connect(-1, -1, wxEVT_INIT_DIALOG, func) - -def EVT_SYS_COLOUR_CHANGED(win, func): - win.Connect(-1, -1, wxEVT_SYS_COLOUR_CHANGED, func) - -def EVT_SHOW(win, func): - win.Connect(-1, -1, wxEVT_SHOW, func) - -def EVT_MAXIMIZE(win, func): - win.Connect(-1, -1, wxEVT_MAXIMIZE, func) - -def EVT_ICONIZE(win, func): - win.Connect(-1, -1, wxEVT_ICONIZE, func) - -def EVT_NAVIGATION_KEY(win, func): - win.Connect(-1, -1, wxEVT_NAVIGATION_KEY, func) - -def EVT_IDLE(win, func): - win.Connect(-1, -1, wxEVT_IDLE, func) - - -# Mouse Events -def EVT_LEFT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DOWN, func) - -def EVT_LEFT_UP(win, func): - win.Connect(-1, -1, wxEVT_LEFT_UP, func) - -def EVT_MIDDLE_DOWN(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_DOWN, func) - -def EVT_MIDDLE_UP(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_UP, func) - -def EVT_RIGHT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_DOWN, func) - -def EVT_RIGHT_UP(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_UP, func) - -def EVT_MOTION(win, func): - win.Connect(-1, -1, wxEVT_MOTION, func) - -def EVT_LEFT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DCLICK, func) - -def EVT_MIDDLE_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_DCLICK, func) - -def EVT_RIGHT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_DCLICK, func) - -def EVT_LEAVE_WINDOW(win, func): - win.Connect(-1, -1, wxEVT_LEAVE_WINDOW, func) - -def EVT_ENTER_WINDOW(win, func): - win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) - - -# all mouse events -def EVT_MOUSE_EVENTS(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DOWN, func) - win.Connect(-1, -1, wxEVT_LEFT_UP, func) - win.Connect(-1, -1, wxEVT_MIDDLE_DOWN, func) - win.Connect(-1, -1, wxEVT_MIDDLE_UP, func) - win.Connect(-1, -1, wxEVT_RIGHT_DOWN, func) - win.Connect(-1, -1, wxEVT_RIGHT_UP, func) - win.Connect(-1, -1, wxEVT_MOTION, func) - win.Connect(-1, -1, wxEVT_LEFT_DCLICK, func) - win.Connect(-1, -1, wxEVT_MIDDLE_DCLICK, func) - win.Connect(-1, -1, wxEVT_RIGHT_DCLICK, func) - win.Connect(-1, -1, wxEVT_LEAVE_WINDOW, func) - win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) - -# EVT_COMMAND -def EVT_COMMAND(win, id, cmd, func): - win.Connect(id, -1, cmd, func) - -def EVT_COMMAND_RANGE(win, id1, id2, cmd, func): - win.Connect(id1, id2, cmd, func) - -# Scrolling -def EVT_SCROLL(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_TOP, func) - win.Connect(-1, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(-1, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(-1, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK,func) - -def EVT_SCROLL_TOP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_TOP, func) - -def EVT_SCROLL_BOTTOM(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_BOTTOM, func) - -def EVT_SCROLL_LINEUP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_SCROLL_LINEDOWN(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN, func) - -def EVT_SCROLL_PAGEUP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_PAGEUP, func) - -def EVT_SCROLL_PAGEDOWN(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN, func) - -def EVT_SCROLL_THUMBTRACK(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK, func) - - - -# Scrolling, with an id -def EVT_COMMAND_SCROLL(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - -def EVT_COMMAND_SCROLL_TOP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - -def EVT_COMMAND_SCROLL_BOTTOM(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - -def EVT_COMMAND_SCROLL_LINEUP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_COMMAND_SCROLL_LINEDOWN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - -def EVT_COMMAND_SCROLL_PAGEUP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - -def EVT_COMMAND_SCROLL_PAGEDOWN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - -def EVT_COMMAND_SCROLL_THUMBTRACK(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK, func) - - -# Convenience commands -def EVT_BUTTON(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_BUTTON_CLICKED, func) - -def EVT_CHECKBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHECKBOX_CLICKED, func) - -def EVT_CHOICE(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHOICE_SELECTED, func) - -def EVT_LISTBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LISTBOX_SELECTED, func) - -def EVT_LISTBOX_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, func) - -def EVT_TEXT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TEXT_UPDATED, func) - -def EVT_TEXT_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TEXT_ENTER, func) - -def EVT_MENU(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_MENU_SELECTED, func) - -def EVT_MENU_RANGE(win, id1, id2, func): - win.Connect(id1, id2, wxEVT_COMMAND_MENU_SELECTED, func) - -def EVT_SLIDER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SLIDER_UPDATED, func) - -def EVT_RADIOBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RADIOBOX_SELECTED, func) - -def EVT_RADIOBUTTON(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, func) - -def EVT_VLBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_VLBOX_SELECTED, func) - -def EVT_COMBOBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_COMBOBOX_SELECTED, func) - -def EVT_TOOL(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_CLICKED, func) - -def EVT_TOOL_RCLICKED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_RCLICKED, func) - -def EVT_TOOL_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_ENTER, func) - -def EVT_CHECKLISTBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, func) - - -# Generic command events - -def EVT_COMMAND_LEFT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LEFT_CLICK, func) - -def EVT_COMMAND_LEFT_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LEFT_DCLICK, func) - -def EVT_COMMAND_RIGHT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RIGHT_CLICK, func) - -def EVT_COMMAND_RIGHT_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RIGHT_DCLICK, func) - -def EVT_COMMAND_SET_FOCUS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SET_FOCUS, func) - -def EVT_COMMAND_KILL_FOCUS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_KILL_FOCUS, func) - -def EVT_COMMAND_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_ENTER, func) - - -# wxNotebook events -def EVT_NOTEBOOK_PAGE_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, func) - -def EVT_NOTEBOOK_PAGE_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, func) - - -# wxTreeCtrl events -def EVT_TREE_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_DRAG, func) - -def EVT_TREE_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func) - -def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func) - -def EVT_TREE_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_END_LABEL_EDIT, func) - -def EVT_TREE_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_GET_INFO, func) - -def EVT_TREE_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SET_INFO, func) - -def EVT_TREE_ITEM_EXPANDED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDED, func) - -def EVT_TREE_ITEM_EXPANDING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDING, func) - -def EVT_TREE_ITEM_COLLAPSED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSED, func) - -def EVT_TREE_ITEM_COLLAPSING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSING, func) - -def EVT_TREE_SEL_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGED, func) - -def EVT_TREE_SEL_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGING, func) - -def EVT_TREE_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_KEY_DOWN, func) - -def EVT_TREE_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_DELETE_ITEM, func) - - -# wxSpinButton -def EVT_SPIN_UP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_SPIN_DOWN(win, id, func): - win.Connect(id, -1,wxEVT_SCROLL_LINEDOWN, func) - -def EVT_SPIN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - - - - -# wxTaskBarIcon -def EVT_TASKBAR_MOVE(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_MOVE, func) - -def EVT_TASKBAR_LEFT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DOWN, func) - -def EVT_TASKBAR_LEFT_UP(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_UP, func) - -def EVT_TASKBAR_RIGHT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DOWN, func) - -def EVT_TASKBAR_RIGHT_UP(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_UP, func) - -def EVT_TASKBAR_LEFT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DCLICK, func) - -def EVT_TASKBAR_RIGHT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DCLICK, func) - - -# wxGrid -def EVT_GRID_SELECT_CELL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_SELECT_CELL, fn) - -def EVT_GRID_CREATE_CELL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CREATE_CELL, fn) - -def EVT_GRID_CHANGE_LABELS(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CHANGE_LABELS, fn) - -def EVT_GRID_CHANGE_SEL_LABEL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CHANGE_SEL_LABEL, fn) - -def EVT_GRID_CELL_CHANGE(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_CHANGE, fn) - -def EVT_GRID_CELL_LCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_LCLICK, fn) - -def EVT_GRID_CELL_RCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_RCLICK, fn) - -def EVT_GRID_LABEL_LCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_LABEL_LCLICK, fn) - -def EVT_GRID_LABEL_RCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_LABEL_RCLICK, fn) - - -# wxSashWindow -def EVT_SASH_DRAGGED(win, id, func): - win.Connect(id, -1, wxEVT_SASH_DRAGGED, func) - -def EVT_SASH_DRAGGED_RANGE(win, id1, id2, func): - win.Connect(id1, id2, wxEVT_SASH_DRAGGED, func) - -def EVT_QUERY_LAYOUT_INFO(win, func): - win.Connect(-1, -1, wxEVT_EVT_QUERY_LAYOUT_INFO, func) - -def EVT_CALCULATE_LAYOUT(win, func): - win.Connect(-1, -1, wxEVT_EVT_CALCULATE_LAYOUT, func) - - -# wxListCtrl -def EVT_LIST_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_DRAG, func) - -def EVT_LIST_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_RDRAG, func) - -def EVT_LIST_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, func) - -def EVT_LIST_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_END_LABEL_EDIT, func) - -def EVT_LIST_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ITEM, func) - -def EVT_LIST_DELETE_ALL_ITEMS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, func) - -def EVT_LIST_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_GET_INFO, func) - -def EVT_LIST_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_SET_INFO, func) - -def EVT_LIST_ITEM_SELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_SELECTED, func) - -def EVT_LIST_ITEM_DESELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_DESELECTED, func) - -def EVT_LIST_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_KEY_DOWN, func) - -def EVT_LIST_INSERT_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_INSERT_ITEM, func) - -def EVT_LIST_COL_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func) - - -#---------------------------------------------------------------------- - -class wxTimer(wxPyTimer): - def __init__(self): - wxPyTimer.__init__(self, self.Notify) # derived class must provide - # Notify(self) method. - -#---------------------------------------------------------------------- -# Some wxWin methods can take "NULL" as parameters, but the shadow classes -# expect an object with the SWIG pointer as a 'this' member. This class -# and instance fools the shadow into passing the NULL pointer. - -class NullObj: - this = 'NULL' # SWIG converts this to (void*)0 - -NULL = NullObj() - - -#---------------------------------------------------------------------- -# aliases - -wxColor = wxColour -wxNamedColor = wxNamedColour - -wxPyDefaultPosition.Set(-1,-1) -wxPyDefaultSize.Set(-1,-1) - -# aliases so that C++ documentation applies: -wxDefaultPosition = wxPyDefaultPosition -wxDefaultSize = wxPyDefaultSize - - -# This is to cover up a bug in SWIG. We are redefining -# the shadow class that is generated for wxAcceleratorTable -# because SWIG incorrectly uses "arg0.this" -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,arg0) : - self.this = miscc.new_wxAcceleratorTable(arg0) - self.thisown = 1 - -#---------------------------------------------------------------------- - -## class wxPyStdOutWindow: -## def __init__(self, title = "wxPython: stdout/stderr"): -## self.frame = None -## self.title = title - -## def write(self, str): -## if not self.frame: -## self.frame = wxFrame(NULL, -1, self.title) -## self.text = wxTextCtrl(self.frame, -1, "", wxPoint(0,0), wxDefaultSize, -## wxTE_MULTILINE|wxTE_READONLY) -## self.frame.SetSize(wxSize(450, 300)) -## self.frame.Show(true) -## EVT_CLOSE(self.frame, self.OnCloseWindow) -## self.text.AppendText(str) - -## def OnCloseWindow(self, event): -## wxBell() -## self.frame.Destroy() -## self.frame = None -## self.text = None - - -## def close(self): -## if self.frame: -## self.frame.Close(true) - -_defRedirect = (wxPlatform == '__WXMSW__') - -#---------------------------------------------------------------------- -# The main application class. Derive from this and implement an OnInit -# method that creates a frame and then calls self.SetTopWindow(frame) - -class wxApp(wxPyApp): - error = 'wxApp.error' - - def __init__(self, redirect=_defRedirect, filename=None): - wxPyApp.__init__(self) - self.stdioWin = None - self.saveStdio = (sys.stdout, sys.stderr) - if redirect: - self.RedirectStdio(filename) - - # this initializes wxWindows and then calls our OnInit - _wxStart(self.OnInit) - - - def __del__(self): - try: - self.RestoreStdio() - except: - pass - - def RedirectStdio(self, filename): - if filename: - sys.stdout = sys.stderr = open(filename, 'a') - else: - #raise self.error, 'wxPyStdOutWindow not yet implemented.' - self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow() - - def RestoreStdio(self): - sys.stdout, sys.stderr = self.saveStdio - if self.stdioWin != None: - self.stdioWin.close() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.11 1999/05/15 00:56:11 RD -# fixes for GetReturnCode/SetReturnCode -# -# Revision 1.12 1999/04/30 03:29:18 RD -# -# wxPython 2.0b9, first phase (win32) -# Added gobs of stuff, see wxPython/README.txt for details -# -# Revision 1.11.4.2 1999/03/28 06:35:01 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.11.4.1 1999/03/27 23:29:13 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.11 1999/02/20 09:02:55 RD -# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -# window handle. If you can get the window handle into the python code, -# it should just work... More news on this later. -# -# Added wxImageList, wxToolTip. -# -# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -# wxRegConfig class. -# -# As usual, some bug fixes, tweaks, etc. -# -# Revision 1.10 1999/02/01 00:10:39 RD -# -# Added the missing EVT_LIST_ITEM_SELECTED and friends. -# -# Revision 1.9 1999/01/30 07:30:09 RD -# -# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -# -# Various cleanup, tweaks, minor additions, etc. to maintain -# compatibility with the current wxWindows. -# -# Revision 1.8 1999/01/29 21:13:42 HH -# Added aliases for wxDefaultPosition and wxDefaultSize (from wxPy..) in _extras, -# so that C++ documentation applies. -# -# Revision 1.7 1998/11/25 08:45:21 RD -# -# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -# Added events for wxGrid -# Other various fixes and additions -# -# Revision 1.6 1998/11/16 00:00:52 RD -# Generic treectrl for wxPython/GTK compiles... -# -# Revision 1.5 1998/10/20 07:38:02 RD -# bug fix -# -# Revision 1.4 1998/10/20 06:43:54 RD -# New wxTreeCtrl wrappers (untested) -# some changes in helpers -# etc. -# -# Revision 1.3 1998/10/02 06:40:33 RD -# -# Version 0.4 of wxPython for MSW. -# -# Revision 1.2 1998/08/18 19:48:12 RD -# more wxGTK compatibility things. -# -# It builds now but there are serious runtime problems... -# -# Revision 1.1 1998/08/09 08:25:49 RD -# Initial version -# -# - diff --git a/utils/wxPython/src/helpers.cpp b/utils/wxPython/src/helpers.cpp deleted file mode 100644 index 2f5eabfb67..0000000000 --- a/utils/wxPython/src/helpers.cpp +++ /dev/null @@ -1,802 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: helpers.cpp -// Purpose: Helper functions/classes for the wxPython extension module -// -// Author: Robin Dunn -// -// Created: 7/1/97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -#ifdef __WXGTK__ -#include "gtk/gtk.h" -#endif - -#undef DEBUG -#include -#include "helpers.h" -#ifdef __WXMSW__ -#include -#undef FindWindow -#undef GetCharWidth -#undef LoadAccelerators -#undef GetClassInfo -#undef GetClassName -#endif -#include - - -//--------------------------------------------------------------------------- - -//wxHashTable* wxPyWindows = NULL; - - -wxPoint wxPyDefaultPosition; //wxDefaultPosition); -wxSize wxPyDefaultSize; //wxDefaultSize); -wxString wxPyEmptyStr(""); - - - -#ifdef __WXMSW__ // If building for win32... -//---------------------------------------------------------------------- -// This gets run when the DLL is loaded. We just need to save a handle. -//---------------------------------------------------------------------- - -BOOL WINAPI DllMain( - HINSTANCE hinstDLL, // handle to DLL module - DWORD fdwReason, // reason for calling function - LPVOID lpvReserved // reserved - ) -{ - wxSetInstance(hinstDLL); - return 1; -} -#endif - -//---------------------------------------------------------------------- -// Class for implementing the wxp main application shell. -//---------------------------------------------------------------------- - -wxPyApp *wxPythonApp = NULL; // Global instance of application object - - -wxPyApp::wxPyApp() { -// printf("**** ctor\n"); -} - -wxPyApp::~wxPyApp() { -// printf("**** dtor\n"); -} - - -// This one isn't acutally called... See __wxStart() -bool wxPyApp::OnInit(void) { - return false; -} - -int wxPyApp::MainLoop(void) { - int retval = wxApp::MainLoop(); - AfterMainLoop(); - return retval; -} - - -void wxPyApp::AfterMainLoop(void) { - // more stuff from wxEntry... - - if (wxPythonApp->GetTopWindow()) { - // Forcibly delete the window. - if (wxPythonApp->GetTopWindow()->IsKindOf(CLASSINFO(wxFrame)) || - wxPythonApp->GetTopWindow()->IsKindOf(CLASSINFO(wxDialog))) { - - wxPythonApp->GetTopWindow()->Close(TRUE); - wxPythonApp->DeletePendingObjects(); - } - else { - delete wxPythonApp->GetTopWindow(); - wxPythonApp->SetTopWindow(NULL); - } - } -#ifdef __WXGTK__ - wxPythonApp->DeletePendingObjects(); -#endif - - wxPythonApp->OnExit(); - wxApp::CleanUp(); -// delete wxPythonApp; -} - - -//--------------------------------------------------------------------- -// a few native methods to add to the module -//---------------------------------------------------------------------- - - -// This is where we pick up the first part of the wxEntry functionality... -// The rest is in __wxStart and AfterMainLoop. This function is called when -// wxpc is imported. (Before there is a wxApp object.) -void __wxPreStart() -{ - // Bail out if there is already windows created. This means that the - // toolkit has already been initialized, as in embedding wxPython in - // a C++ wxWindows app. - if (wxTopLevelWindows.Number() > 0) - return; - -#ifdef __WXMSW__ - wxApp::Initialize(); -#endif - -#ifdef __WXGTK__ - PyObject* sysargv = PySys_GetObject("argv"); - int argc = PyList_Size(sysargv); - char** argv = new char*[argc+1]; - int x; - for(x=0; x 0) { - PyErr_SetString(PyExc_TypeError, "Only 1 wxApp per process!"); - return NULL; - } - - - // This is the next part of the wxEntry functionality... - wxPythonApp->argc = 0; - wxPythonApp->argv = NULL; - wxPythonApp->OnInitGui(); - - - // Call the Python App's OnInit function - arglist = PyTuple_New(0); - - // Py_END_ALLOW_THREADS; **** __wxStart was called from Python, - // should already have the lock - result = PyEval_CallObject(onInitFunc, arglist); - // Py_BEGIN_ALLOW_THREADS; - - if (!result) { - PyErr_Print(); - exit(1); - } - - if (! PyInt_Check(result)) { - PyErr_SetString(PyExc_TypeError, "OnInit should return a boolean value"); - return NULL; - } - bResult = PyInt_AS_LONG(result); - if (! bResult) { - wxPythonApp->DeletePendingObjects(); - wxPythonApp->OnExit(); - wxApp::CleanUp(); - PyErr_SetString(PyExc_SystemExit, "OnInit returned false, exiting..."); - return NULL; - } - -#ifdef __WXGTK__ - wxTheApp->m_initialized = (wxTopLevelWindows.Number() > 0); -#endif - - Py_INCREF(Py_None); - return Py_None; -} - - - - - -PyObject* wxPython_dict; -PyObject* __wxSetDictionary(PyObject* /* self */, PyObject* args) -{ - - if (!PyArg_ParseTuple(args, "O", &wxPython_dict)) - return NULL; - - if (!PyDict_Check(wxPython_dict)) { - PyErr_SetString(PyExc_TypeError, "_wxSetDictionary must have dictionary object!"); - return NULL; - } -#ifdef __WXMOTIF__ -#define wxPlatform "__WXMOTIF__" -#endif -#ifdef __WXQT__ -#define wxPlatform "__WXQT__" -#endif -#ifdef __WXGTK__ -#define wxPlatform "__WXGTK__" -#endif -#if defined(__WIN32__) || defined(__WXMSW__) -#define wxPlatform "__WXMSW__" -#endif -#ifdef __WXMAC__ -#define wxPlatform "__WXMAC__" -#endif - - PyDict_SetItemString(wxPython_dict, "wxPlatform", PyString_FromString(wxPlatform)); - - Py_INCREF(Py_None); - return Py_None; -} - - -//--------------------------------------------------------------------------- - - -static -PyObject* wxPyConstructObject(void* ptr, char* className) -{ - char buff[64]; // should always be big enough... - char swigptr[64]; - - sprintf(buff, "_%s_p", className); - SWIG_MakePtr(swigptr, ptr, buff); - - sprintf(buff, "%sPtr", className); - PyObject* classobj = PyDict_GetItemString(wxPython_dict, buff); - if (! classobj) { - Py_INCREF(Py_None); - return Py_None; - } - - PyObject* arg = Py_BuildValue("(s)", swigptr); - PyObject* obj = PyInstance_New(classobj, arg, NULL); - Py_DECREF(arg); - - return obj; -} - - - -wxPyCallback::wxPyCallback(PyObject* func) { - m_func = func; - Py_INCREF(m_func); -} - -wxPyCallback::~wxPyCallback() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(event_tstate); -#endif - - Py_DECREF(m_func); - -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif -} - - - - -// This function is used for all events destined for Python event handlers. -void wxPyCallback::EventThunker(wxEvent& event) { - wxPyCallback* cb = (wxPyCallback*)event.m_callbackUserData; - PyObject* func = cb->m_func; - PyObject* result; - PyObject* arg; - PyObject* tuple; - - -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(event_tstate); -#endif - arg = wxPyConstructObject((void*)&event, event.GetClassInfo()->GetClassName()); - - tuple = PyTuple_New(1); - PyTuple_SET_ITEM(tuple, 0, arg); - result = PyEval_CallObject(func, tuple); - Py_DECREF(tuple); - if (result) { - Py_DECREF(result); - PyErr_Clear(); - } else { - PyErr_Print(); - } -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif -} - - -//--------------------------------------------------------------------------- - -wxPyMenu::wxPyMenu(const wxString& title, PyObject* _func) - : wxMenu(title, (wxFunction)(func ? MenuCallback : NULL)), func(0) { - - if (_func) { - func = _func; - Py_INCREF(func); - } -} - -wxPyMenu::~wxPyMenu() { - if (func) - Py_DECREF(func); -} - - -void wxPyMenu::MenuCallback(wxMenu& menu, wxCommandEvent& evt) { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(event_tstate); -#endif - PyObject* evtobj = wxPyConstructObject((void*)&evt, "wxCommandEvent"); - PyObject* menuobj = wxPyConstructObject((void*)&menu, "wxMenu"); - if (PyErr_Occurred()) { - // bail out if a problem - PyErr_Print(); - return; - } - // Now call the callback... - PyObject* func = ((wxPyMenu*)&menu)->func; - PyObject* args = PyTuple_New(2); - PyTuple_SET_ITEM(args, 0, menuobj); - PyTuple_SET_ITEM(args, 1, evtobj); - PyObject* res = PyEval_CallObject(func, args); - Py_DECREF(args); - Py_XDECREF(res); /* In case res is a NULL pointer */ -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif -} - - -//--------------------------------------------------------------------------- - -wxPyTimer::wxPyTimer(PyObject* callback) { - func = callback; - Py_INCREF(func); -} - -wxPyTimer::~wxPyTimer() { - Py_DECREF(func); -} - -void wxPyTimer::Notify() { -#ifdef WXP_WITH_THREAD - PyEval_RestoreThread(event_tstate); -#endif - PyObject* result; - PyObject* args = Py_BuildValue("()"); - - result = PyEval_CallObject(func, args); - Py_DECREF(args); - if (result) { - Py_DECREF(result); - PyErr_Clear(); - } else { - PyErr_Print(); - } -#ifdef WXP_WITH_THREAD - PyEval_SaveThread(); -#endif -} - - -//---------------------------------------------------------------------- - -IMPLEMENT_DYNAMIC_CLASS(wxPyEvent, wxCommandEvent) - -wxPyEvent::wxPyEvent(wxEventType commandType, PyObject* userData) - : wxCommandEvent(commandType), m_userData(Py_None) -{ - m_userData = userData; - if (m_userData != Py_None) { - Py_INCREF(m_userData); - } -} - - -wxPyEvent::~wxPyEvent() { - if (m_userData != Py_None) { - Py_DECREF(m_userData); - m_userData = Py_None; - } -} - - -void wxPyEvent::SetUserData(PyObject* userData) { - if (m_userData != Py_None) { - Py_DECREF(m_userData); - m_userData = Py_None; - } - m_userData = userData; - if (m_userData != Py_None) { - Py_INCREF(m_userData); - } -} - - -PyObject* wxPyEvent::GetUserData() { - return m_userData; -} - -//---------------------------------------------------------------------- -//---------------------------------------------------------------------- -// Some helper functions for typemaps in my_typemaps.i, so they won't be -// imcluded in every file... - - -byte* byte_LIST_helper(PyObject* source) { - if (!PyList_Check(source)) { - PyErr_SetString(PyExc_TypeError, "Expected a list object."); - return NULL; - } - int count = PyList_Size(source); - byte* temp = new byte[count]; - if (! temp) { - PyErr_SetString(PyExc_MemoryError, "Unable to allocate temporary array"); - return NULL; - } - for (int x=0; x - - -//---------------------------------------------------------------------- - -// if we want to handle threads and Python threads are available... -#if defined(WXP_USE_THREAD) && defined(WITH_THREAD) - -#define WXP_WITH_THREAD -#define wxPy_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS -#define wxPy_END_ALLOW_THREADS Py_END_ALLOW_THREADS - -#else // no Python threads... -#undef WXP_WITH_THREAD -#define wxPy_BEGIN_ALLOW_THREADS -#define wxPy_END_ALLOW_THREADS -#endif - - -//---------------------------------------------------------------------- - -class wxPyApp: public wxApp -{ -public: - wxPyApp(); - ~wxPyApp(); - int MainLoop(void); - bool OnInit(void); - void AfterMainLoop(void); -}; - -extern wxPyApp *wxPythonApp; - -//---------------------------------------------------------------------- - -void __wxPreStart(); -PyObject* __wxStart(PyObject*, PyObject* args); - -extern PyObject* wxPython_dict; -PyObject* __wxSetDictionary(PyObject*, PyObject* args); - -extern wxHashTable* wxPyWindows; // keep track of all windows so we - // don't accidentally delete them twice. - -void wxPyEventThunker(wxObject*, wxEvent& event); - -//---------------------------------------------------------------------- - - -#ifndef SWIGCODE -extern "C" void SWIG_MakePtr(char *, void *, char *); -extern "C" char *SWIG_GetPtr(char *, void **, char *); -#endif - - -#ifdef _MSC_VER -# pragma warning(disable:4800) -#endif - -typedef unsigned char byte; - - -// Non-const versions to keep SWIG happy. -extern wxPoint wxPyDefaultPosition; -extern wxSize wxPyDefaultSize; -extern wxString wxPyEmptyStr; - -//---------------------------------------------------------------------- - -class wxPyCallback : public wxObject { -public: - wxPyCallback(PyObject* func); - ~wxPyCallback(); - - void EventThunker(wxEvent& event); - - PyObject* m_func; -}; - -//--------------------------------------------------------------------------- - -class wxPyMenu : public wxMenu { -public: - wxPyMenu(const wxString& title = "", PyObject* func=NULL); - ~wxPyMenu(); - -private: - static void MenuCallback(wxMenu& menu, wxCommandEvent& evt); - PyObject* func; -}; - - -//--------------------------------------------------------------------------- - -class wxPyTimer : public wxTimer { -public: - wxPyTimer(PyObject* callback); - ~wxPyTimer(); - - void Notify(); - -private: - PyObject* func; -}; - -//--------------------------------------------------------------------------- - -class wxPyEvent : public wxCommandEvent { - DECLARE_DYNAMIC_CLASS(wxPyEvent) -public: - wxPyEvent(wxEventType commandType = wxEVT_NULL, PyObject* userData = Py_None); - ~wxPyEvent(); - - void SetUserData(PyObject* userData); - PyObject* GetUserData(); - -private: - PyObject* m_userData; -}; - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.7 1999/04/30 03:29:18 RD -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.6.4.1 1999/03/27 23:29:14 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.6 1998/11/25 08:45:26 RD -// -// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -// Added events for wxGrid -// Other various fixes and additions -// -// Revision 1.5 1998/10/02 06:40:40 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.4 1998/08/27 21:59:09 RD -// Some chicken-and-egg problems solved for wxPython on wxGTK -// -// Revision 1.3 1998/08/16 04:31:09 RD -// More wxGTK work. -// -// Revision 1.2 1998/08/14 23:36:37 RD -// Beginings of wxGTK compatibility -// -// Revision 1.1 1998/08/09 08:25:51 RD -// Initial version -// -// - -#endif - diff --git a/utils/wxPython/src/image.i b/utils/wxPython/src/image.i deleted file mode 100644 index 0674cb8e22..0000000000 --- a/utils/wxPython/src/image.i +++ /dev/null @@ -1,152 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: image.i -// Purpose: SWIG interface file for wxImage, wxImageHandler, etc. -// -// Author: Robin Dunn -// -// Created: 28-Apr-1999 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module image - -%{ -#include "helpers.h" -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import gdi.i - -//--------------------------------------------------------------------------- - -class wxImageHandler { -public: - wxImageHandler(); - wxString GetName(); - wxString GetExtension(); - long GetType(); - wxString GetMimeType(); - - //bool LoadFile(wxImage* image, wxInputStream& stream); - //bool SaveFile(wxImage* image, wxOutputStream& stream); - - void SetName(const wxString& name); - void SetExtension(const wxString& extension); - void SetType(long type); - void SetMimeType(const wxString& mimetype); -}; - -//--------------------------------------------------------------------------- - -class wxPNGHandler : public wxImageHandler { -public: - wxPNGHandler(); -}; - - -class wxJPEGHandler : public wxImageHandler { -public: - wxJPEGHandler(); -}; - - -class wxBMPHandler : public wxImageHandler { -public: - wxBMPHandler(); -}; - - -class wxGIFHandler : public wxImageHandler { -public: - wxGIFHandler(); -}; - - - -//--------------------------------------------------------------------------- - -class wxImage { -public: - wxImage( const wxString& name, long type = wxBITMAP_TYPE_PNG ); - ~wxImage(); - - wxBitmap ConvertToBitmap(); - void Create( int width, int height ); - void Destroy(); - wxImage Scale( int width, int height ); - - void SetRGB( int x, int y, unsigned char r, unsigned char g, unsigned char b ); - unsigned char GetRed( int x, int y ); - unsigned char GetGreen( int x, int y ); - unsigned char GetBlue( int x, int y ); - - bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_PNG ); - %name(LoadMimeFile)bool LoadFile( const wxString& name, const wxString& mimetype ); - - bool SaveFile( const wxString& name, int type ); - %name(SaveMimeFile)bool SaveFile( const wxString& name, const wxString& mimetype ); - - bool Ok(); - int GetWidth(); - int GetHeight(); - - unsigned char *GetData(); - void SetData( unsigned char *data ); - - void SetMaskColour( unsigned char r, unsigned char g, unsigned char b ); - unsigned char GetMaskRed(); - unsigned char GetMaskGreen(); - unsigned char GetMaskBlue(); - void SetMask( bool mask = TRUE ); - bool HasMask(); - -}; - -// Alternate constructors -%new wxImage* wxNullImage(); -%new wxImage* wxEmptyImage(int width, int height); -%new wxImage* wxImageFromMime(const wxString& name, const wxString& mimetype); -%new wxImage* wxImageFromBitmap(const wxBitmap &bitmap); -%{ - wxImage* wxNullImage() { - return new wxImage; - } - - wxImage* wxEmptyImage(int width, int height) { - return new wxImage(width, height); - } - - wxImage* wxImageFromMime(const wxString& name, const wxString& mimetype) { - return new wxImage(name, mimetype); - } - - wxImage* wxImageFromBitmap(const wxBitmap &bitmap) { - return new wxImage(bitmap); - } -%} - -// Static Methods -void wxImage_AddHandler(wxImageHandler *handler); -%{ - void wxImage_AddHandler(wxImageHandler *handler) { - wxImage::AddHandler(handler); - } -%} - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - - - - diff --git a/utils/wxPython/src/makefile.vc b/utils/wxPython/src/makefile.vc deleted file mode 100644 index cd397e21c0..0000000000 --- a/utils/wxPython/src/makefile.vc +++ /dev/null @@ -1,332 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: makefile.nt -# Purpose: Win32, VC++ 5/6 makefile for wxPython -# -# Author: Robin Dunn -# -# Created: 3/27/97 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- -VERSION=2.0b9 - -# Set WXDIR to the root wxWindows directory for your system -WXDIR = $(WXWIN) - -# Set this to the root of the Python installation -PYTHONDIR=e:\Tools\Python15 - -# Set this to 1 for a non-debug, optimised compile -FINAL=0 - -# Set this to where you want the stuff installed at. It should -# be a directory contained in a PYTHONPATH directory, and should be -# named wxPython -TARGETDIR=.. - -# Set this to 1 for make to pre-compile the Python modules, 0 to -# just copy the sources and let Python compile them the first -# time they are imported. -COMPILEPY=0 - -# If your wxWindows is built as a DLL, set this to 1. Using 0 or unset -# means that wxWindows will be staticaly linked with wxPython. -#WXUSINGDLL=1 - -# If you want to compile in code to aquire/release the Python -# Interpreter Lock at the appropriate places -WXP_USE_THREAD=1 - - -# Set this if you want to build the wxGLCanvas -WITH_GLCANVAS=1 - -# (experimental) -SEPARATE=0 - -#---------------------------------------------------------------------- - -!if "$(WXP_USE_THREAD)" == "1" -THREAD=-DWXP_USE_THREAD=1 -!endif - -#---------------------------------------------------------------------- - -NOPCH=1 -THISDIR=$(WXDIR)\utils\wxPython - - -EXTRALIBS=$(PYTHONDIR)\libs\python15.lib $(GLLIBS) -#EXTRALIBS=$(PYTHONDIR)\PCbuild\python15_d.lib -D_DEBUG -EXTRAINC=-I$(PYTHONDIR)\include -I. -I$(WXDIR)\utils\glcanvas\win -EXTRAFLAGS=/Fpwxp.pch /YXhelpers.h -DSWIG_GLOBAL -DHAVE_CONFIG_H $(THREAD) -OVERRIDEFLAGS=/GX- $(OTHERCFLAGS) - - -!if "$(WITH_GLCANVAS)" == "1" -GLLIBS=$(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib -OTHERSWIGFLAGS=-DWITH_GLCANVAS -OTHERCFLAGS=-DWITH_GLCANVAS -!endif - -SWIGFLAGS=-c++ -shadow -python -dnone -D__WXMSW__ $(OTHERSWIGFLAGS) -GENCODEDIR=msw - - -!include $(WXDIR)\src\ntwxwin.mak - -#---------------------------------------------------------------------- - -TARGET = wxc - -OBJECTS = wx.obj helpers.obj windows.obj events.obj \ - misc.obj gdi.obj mdi.obj controls.obj \ - controls2.obj windows2.obj cmndlgs.obj stattool.obj \ - frames.obj windows3.obj image.obj \ -!if "$(SEPARATE)" == "0" - utils.obj \ -!if "$(WITH_GLCANVAS)" == "1" - glcanvas.obj -!endif -!else - -OTHERCFLAGS=$(OTHERCFLAGS) -DSEPARATE=1 -OTHERSWIGFLAGS=$(OTHERSWIGFLAGS) -DSEPARATE -TARGET2 = utilsc -OBJECTS2 = utils.obj -target2=$(TARGETDIR)\$(TARGET2).pyd - -TARGET3 = glcanvasc -OBJECTS3 = glcanvas.obj -target3=$(TARGETDIR)\$(TARGET3).pyd -!endif - -PYMODULES = $(TARGETDIR)\wx.py $(TARGETDIR)\events.py \ - $(TARGETDIR)\windows.py $(TARGETDIR)\misc.py \ - $(TARGETDIR)\gdi.py $(TARGETDIR)\mdi.py \ - $(TARGETDIR)\controls.py $(TARGETDIR)\controls2.py \ - $(TARGETDIR)\windows2.py $(TARGETDIR)\cmndlgs.py \ - $(TARGETDIR)\stattool.py $(TARGETDIR)\frames.py \ - $(TARGETDIR)\windows3.py $(TARGETDIR)\__init__.py \ - $(TARGETDIR)\utils.py $(TARGETDIR)\image.py \ -!if "$(WITH_GLCANVAS)" == "1" - $(TARGETDIR)\glcanvas.py -!endif - -#---------------------------------------------------------------------- - -!if "$(FINAL)" == "0" -DEBUGLFLAGS = /DEBUG /INCREMENTAL:YES -!else -DEBUGLFLAGS = /INCREMENTAL:NO -!endif - -LFLAGS= $(DEBUGLFLAGS) /DLL /subsystem:windows,3.50 /machine:I386 /nologo - -#---------------------------------------------------------------------- - -default: $(TARGETDIR)\$(TARGET).pyd $(target2) $(target3) pycfiles - -all: wx $(TARGET) $(TARGET2) $(TARGET3) - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.nt FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.nt clean - cd $(THISDIR) - - -pycfiles : $(PYMODULES) -!if "$(COMPILEPY)" == "1" - $(PYTHONDIR)\python $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR) - $(PYTHONDIR)\python -O $(PYTHONDIR)\Lib\compileall.py -l $(TARGETDIR) -!endif - -#---------------------------------------------------------------------- - -$(TARGETDIR)\$(TARGET).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS) $(TARGET).res - $(link) @<< -/out:$@ /dll -$(LFLAGS) /def:$(TARGET).def /implib:./$(TARGET).lib -$(DUMMYOBJ) $(OBJECTS) $(TARGET).res -$(LIBS) -<< - -$(TARGETDIR)\$(TARGET2).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS2) - $(link) @<< -/out:$@ /dll -$(LFLAGS) /def:$(TARGET2).def /implib:./$(TARGET2).lib -$(DUMMYOBJ) $(OBJECTS2) -$(LIBS) wxc.lib -<< - -$(TARGETDIR)\$(TARGET3).pyd : $(DUMMYOBJ) $(WXLIB) $(OBJECTS3) - $(link) @<< -/out:$@ /dll -$(LFLAGS) /def:$(TARGET3).def /implib:./$(TARGET3).lib -$(DUMMYOBJ) $(OBJECTS3) -$(LIBS) $(WXDIR)\lib\glcanvas.lib glu32.lib opengl32.lib wxc.lib -<< - - -$(TARGET).res : $(TARGET).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(TARGET).rc - - - -# implicit rule for compiling .cpp files -{}.cpp{}.obj: - $(cc) @<< -$(CPPFLAGS) /c /Tp $< -<< - -{$(GENCODEDIR)}.cpp{}.obj: - $(cc) @<< -$(CPPFLAGS) /c /Tp $< -<< - - -clean: - -erase *.obj - -erase *.exe - -erase *.res - -erase *.map - -erase *.sbr - -erase *.pdb - -erase *.pch - -erase $(TARGET).exp - -erase $(TARGET).lib - -erase $(TARGETDIR)\$(TARGET).* -!if "$(SEPARATE)" != "0" - -erase $(TARGET2).exp - -erase $(TARGET2).lib - -erase $(TARGETDIR)\$(TARGET2).* - -erase $(TARGET3).exp - -erase $(TARGET3).lib - -erase $(TARGETDIR)\$(TARGET3).* -!endif - -erase $(TARGETDIR)\$(TARGET).pyd - -erase $(TARGETDIR)\*.py - -erase $(TARGETDIR)\*.pyc - -erase $(TARGETDIR)\*.pyo - - -showflags: - @echo $(CPPFLAGS) - -#------------------------------------------------------------------------ - -.SUFFIXES : .i .py - -# Implicit rules to run SWIG -{}.i{$(GENCODEDIR)}.cpp: - swig $(SWIGFLAGS) -c -o $@ $< - -{}.i{$(GENCODEDIR)}.py: - swig $(SWIGFLAGS) -c -o $@ $< - - -{$(GENCODEDIR)}.py{$(TARGETDIR)}.py: - copy $< $@ - -{}.py{$(TARGETDIR)}.py: - copy $< $@ - -#{}.py{$(TARGETDIR)}.$(PYEXT): -# $(PYTHON) -c "import py_compile; py_compile.compile('$<', '$@')" - - - - -# This one must leave out the -c flag so we define the whole rule -$(GENCODEDIR)\wx.cpp $(GENCODEDIR)\wx.py : wx.i my_typemaps.i _defs.i _extras.py - swig $(SWIGFLAGS) -o $(GENCODEDIR)/wx.cpp wx.i - - -# Define some dependencies. These MUST use forward slashes so SWIG -# will write the shadow file to the right directory. -$(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py : windows.i my_typemaps.i _defs.i -$(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py : windows2.i my_typemaps.i _defs.i -$(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py : windows3.i my_typemaps.i _defs.i -$(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py : events.i my_typemaps.i _defs.i -$(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py : misc.i my_typemaps.i _defs.i -$(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py : gdi.i my_typemaps.i _defs.i -$(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py : mdi.i my_typemaps.i _defs.i -$(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py : controls.i my_typemaps.i _defs.i -$(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py : controls2.i my_typemaps.i _defs.i -$(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py : cmndlgs.i my_typemaps.i _defs.i -$(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py : stattool.i my_typemaps.i _defs.i -$(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py : frames.i my_typemaps.i _defs.i -$(GENCODEDIR)/image.cpp $(GENCODEDIR)/image.py : image.i my_typemaps.i _defs.i - -!if "$(SEPARATE)" == "1" -$(GENCODEDIR)\utils.cpp $(GENCODEDIR)\utils.py : utils.i my_typemaps.i - swig $(SWIGFLAGS) -o $(GENCODEDIR)/utils.cpp utils.i - -!if "$(WITH_GLCANVAS)" == "1" -$(GENCODEDIR)\glcanvas.cpp $(GENCODEDIR)\glcanvas.py : glcanvas.i my_typemaps.i - swig $(SWIGFLAGS) -c -o $(GENCODEDIR)/glcanvas.cpp glcanvas.i -!endif -!else -$(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py : utils.i my_typemaps.i _defs.i -!if "$(WITH_GLCANVAS)" == "1" -$(GENCODEDIR)/glcanvas.cpp $(GENCODEDIR)/glcanvas.py : glcanvas.i my_typemaps.i _defs.i -!endif -!endif - - -$(TARGETDIR)\wx.py : $(GENCODEDIR)\wx.py -$(TARGETDIR)\windows.py : $(GENCODEDIR)\windows.py -$(TARGETDIR)\windows2.py : $(GENCODEDIR)\windows2.py -$(TARGETDIR)\windows3.py : $(GENCODEDIR)\windows3.py -$(TARGETDIR)\events.py : $(GENCODEDIR)\events.py -$(TARGETDIR)\misc.py : $(GENCODEDIR)\misc.py -$(TARGETDIR)\gdi.py : $(GENCODEDIR)\gdi.py -$(TARGETDIR)\mdi.py : $(GENCODEDIR)\mdi.py -$(TARGETDIR)\controls.py : $(GENCODEDIR)\controls.py -$(TARGETDIR)\controls2.py : $(GENCODEDIR)\controls2.py -$(TARGETDIR)\cmndlgs.py : $(GENCODEDIR)\cmndlgs.py -$(TARGETDIR)\frames.py : $(GENCODEDIR)\frames.py -$(TARGETDIR)\stattool.py : $(GENCODEDIR)\stattool.py -$(TARGETDIR)\__init__.py : __init__.py -$(TARGETDIR)\utils.py : $(GENCODEDIR)\utils.py -$(TARGETDIR)\image.py : $(GENCODEDIR)\utils.py -!if "$(WITH_GLCANVAS)" == "1" -$(TARGETDIR)\glcanvas.py : $(GENCODEDIR)\glcanvas.py -!endif - - -SOURCES = $(GENCODEDIR)\wx.cpp $(GENCODEDIR)\wx.py \ - $(GENCODEDIR)/windows.cpp $(GENCODEDIR)/windows.py \ - $(GENCODEDIR)/windows2.cpp $(GENCODEDIR)/windows2.py \ - $(GENCODEDIR)/windows3.cpp $(GENCODEDIR)/windows3.py \ - $(GENCODEDIR)/events.cpp $(GENCODEDIR)/events.py \ - $(GENCODEDIR)/misc.cpp $(GENCODEDIR)/misc.py \ - $(GENCODEDIR)/gdi.cpp $(GENCODEDIR)/gdi.py \ - $(GENCODEDIR)/mdi.cpp $(GENCODEDIR)/mdi.py \ - $(GENCODEDIR)/controls.cpp $(GENCODEDIR)/controls.py \ - $(GENCODEDIR)/controls2.cpp $(GENCODEDIR)/controls2.py\ - $(GENCODEDIR)/cmndlgs.cpp $(GENCODEDIR)/cmndlgs.py \ - $(GENCODEDIR)/stattool.cpp $(GENCODEDIR)/stattool.py \ - $(GENCODEDIR)/frames.cpp $(GENCODEDIR)/frames.py \ - $(GENCODEDIR)/utils.cpp $(GENCODEDIR)/utils.py \ - $(GENCODEDIR)/image.cpp $(GENCODEDIR)/image.py \ -!if "$(WITH_GLCANVAS)" == "1" - $(GENCODEDIR)/glcanvas.cpp $(GENCODEDIR)/glcanvas.py \ -!endif - - -sources : $(SOURCES) - - -dist: - cd ..\.. - wxPython\distrib\zipit.bat $(VERSION) - -#------------------------------------------------------------------------ -# diff --git a/utils/wxPython/src/mdi.i b/utils/wxPython/src/mdi.i deleted file mode 100644 index 52abcab5c3..0000000000 --- a/utils/wxPython/src/mdi.i +++ /dev/null @@ -1,98 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: mdi.i -// Purpose: MDI related class definitions for wxPython -// -// Author: Robin Dunn -// -// Created: 5/26/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module mdi - -%{ -#include "helpers.h" -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import windows.i -%import frames.i - -%pragma(python) code = "import wx" - -//---------------------------------------------------------------------- - -class wxMDIParentFrame : public wxFrame { -public: - wxMDIParentFrame(wxWindow *parent, - const wxWindowID id, - const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_FRAME_STYLE | wxVSCROLL | wxHSCROLL, - const char* name = "frame"); - - %pragma(python) addtomethod = "__init__:wx._StdFrameCallbacks(self)" - - void ActivateNext(); - void ActivatePrevious(); - void ArrangeIcons(); - void Cascade(); - wxMDIChildFrame* GetActiveChild(); - wxMDIClientWindow* GetClientWindow(); - wxWindow* GetToolBar(); - - // TODO: This isn't handled by the standard event-table system... - //wxMDIClientWindow* OnCreateClient(); - -#ifdef __WXMSW__ - void SetToolBar(wxToolBar* toolbar); -#endif - void Tile(); -}; - -//--------------------------------------------------------------------------- - -class wxMDIChildFrame : public wxFrame { -public: - wxMDIChildFrame(wxMDIParentFrame* parent, - const wxWindowID id, - const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_FRAME_STYLE, - const char* name = "frame"); - - %pragma(python) addtomethod = "__init__:wx._StdFrameCallbacks(self)" - - void Activate(); -#ifdef __WXMSW__ - void Maximize(); -#else - void Maximize(bool maximize); -#endif - void Restore(); - -}; - - -//--------------------------------------------------------------------------- - -class wxMDIClientWindow : public wxWindow { -public: - wxMDIClientWindow(wxMDIParentFrame* parent, long style = 0); - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - %pragma(python) addtomethod = "__init__:wx._StdOnScrollCallbacks(self)" -}; - -//--------------------------------------------------------------------------- diff --git a/utils/wxPython/src/misc.i b/utils/wxPython/src/misc.i deleted file mode 100644 index 984a802bd8..0000000000 --- a/utils/wxPython/src/misc.i +++ /dev/null @@ -1,509 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: misc.i -// Purpose: Definitions of miscelaneous functions and classes -// -// Author: Robin Dunn -// -// Created: 7/3/97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module misc - -%{ -#include "helpers.h" -#include -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i - -//--------------------------------------------------------------------------- - - - -class wxSize { -public: - long x; - long y; - %name(width) long x; - %name(height)long y; - - wxSize(long w=0, long h=0); - ~wxSize(); - void Set(long w, long h); - long GetX(); - long GetY(); - %name(GetWidth) long GetX(); - %name(GetHeight)long GetY(); - - %addmethods { - PyObject* asTuple() { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - return tup; - } - } - %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" - %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" - -}; - -//--------------------------------------------------------------------------- - -class wxRealPoint { -public: - double x; - double y; - wxRealPoint(double x=0.0, double y=0.0); - ~wxRealPoint(); -}; - -class wxPoint { -public: - long x; - long y; - wxPoint(long x=0, long y=0); - ~wxPoint(); - - %addmethods { - void Set(long x, long y) { - self->x = x; - self->y = y; - } - PyObject* asTuple() { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - return tup; - } - } - %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" - %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" -}; - -//--------------------------------------------------------------------------- - -class wxRect { -public: - wxRect(long x=0, long y=0, long w=0, long h=0); - // TODO: do this one too... wxRect(const wxPoint& pos, const wxSize& size); - ~wxRect(); - - long GetX(); - void SetX(long X); - long GetY(); - void SetY(long Y); - long GetWidth(); - void SetWidth(long w); - long GetHeight(); - void SetHeight(long h); - - - wxPoint GetPosition(); - wxSize GetSize(); - - long GetLeft(); - long GetTop(); - long GetBottom(); - long GetRight(); - - long x, y, width, height; - - %addmethods { - PyObject* asTuple() { - PyObject* tup = PyTuple_New(4); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->width)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->height)); - return tup; - } - } - %pragma(python) addtoclass = "def __str__(self): return str(self.asTuple())" - %pragma(python) addtoclass = "def __repr__(self): return str(self.asTuple())" -}; - - - -//--------------------------------------------------------------------------- -// Dialog Functions - -wxString wxFileSelector(char* message, - char* default_path = NULL, - char* default_filename = NULL, - char* default_extension = NULL, - char* wildcard = "*.*", - int flags = 0, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -wxString wxGetTextFromUser(const wxString& message, - const wxString& caption = wxPyEmptyStr, - const wxString& default_value = wxPyEmptyStr, - wxWindow *parent = NULL, - int x = -1, int y = -1, - bool centre = TRUE); - -// TODO: Need to custom wrap this one... -// int wxGetMultipleChoice(char* message, char* caption, -// int LCOUNT, char** LIST, -// int nsel, int *selection, -// wxWindow *parent = NULL, int x = -1, int y = -1, -// bool centre = TRUE, int width=150, int height=200); - - -wxString wxGetSingleChoice(const wxString& message, const wxString& caption, - int LCOUNT, wxString* LIST, - wxWindow *parent = NULL, - int x = -1, int y = -1, - bool centre = TRUE, - int width=150, int height=200); - -int wxGetSingleChoiceIndex(const wxString& message, const wxString& caption, - int LCOUNT, wxString* LIST, - wxWindow *parent = NULL, - int x = -1, int y = -1, - bool centre = TRUE, - int width=150, int height=200); - - -int wxMessageBox(const wxString& message, - const wxString& caption = wxPyEmptyStr, - int style = wxOK | wxCENTRE, - wxWindow *parent = NULL, - int x = -1, int y = -1); - -//--------------------------------------------------------------------------- -// GDI Functions - -bool wxColourDisplay(); -int wxDisplayDepth(); -void wxSetCursor(wxCursor& cursor); - -//--------------------------------------------------------------------------- -// Miscellaneous functions - -long wxNewId(); -void wxRegisterId(long id); -%name(NewId) long wxNewId(); -%name(RegisterId) void wxRegisterId(long id); - -void wxBeginBusyCursor(wxCursor *cursor = wxHOURGLASS_CURSOR); -void wxBell(); -void wxDisplaySize(int *OUTPUT, int *OUTPUT); -void wxEndBusyCursor(); -long wxExecute(const wxString& command, bool sync = FALSE); -wxWindow * wxFindWindowByLabel(const wxString& label, wxWindow *parent=NULL); -wxWindow * wxFindWindowByName(const wxString& name, wxWindow *parent=NULL); -#ifdef __WXMSW__ -wxWindow * wxGetActiveWindow(); -long wxGetElapsedTime(bool resetTimer = TRUE); -long wxGetFreeMemory(); -#endif -void wxGetMousePosition(int* OUTPUT, int* OUTPUT); -bool wxIsBusy(); -wxString wxNow(); -#ifdef __WXMSW__ -bool wxShell(const wxString& command = wxPyEmptyStr); -void wxStartTimer(); -int wxGetOsVersion(int *OUTPUT, int *OUTPUT); -#endif - -bool wxYield(); -bool wxSafeYield(); - -%inline %{ - char* wxGetResource(char *section, char *entry, char *file = NULL) { - char * retval; - wxGetResource(section, entry, &retval, file); - return retval; - } -%} - -//--------------------------------------------------------------------------- -// Resource System - -bool wxResourceAddIdentifier(char *name, int value); -void wxResourceClear(void); -wxBitmap wxResourceCreateBitmap(char *resource); -wxIcon wxResourceCreateIcon(char *resource); -wxMenuBar * wxResourceCreateMenuBar(char *resource); -int wxResourceGetIdentifier(char *name); -bool wxResourceParseData(char *resource, wxResourceTable *table = NULL); -bool wxResourceParseFile(char *filename, wxResourceTable *table = NULL); -bool wxResourceParseString(char *resource, wxResourceTable *table = NULL); - - - -//---------------------------------------------------------------------- - -class wxPyTimer { -public: - wxPyTimer(PyObject* notify); - ~wxPyTimer(); - int Interval(); - void Start(int milliseconds=-1, int oneShot=FALSE); - void Stop(); -}; - -//--------------------------------------------------------------------------- - -enum wxEdge { wxLeft, wxTop, wxRight, wxBottom, wxWidth, wxHeight, - wxCentre, wxCenter = wxCentre, wxCentreX, wxCentreY }; -enum wxRelationship { wxUnconstrained = 0, - wxAsIs, - wxPercentOf, - wxAbove, - wxBelow, - wxLeftOf, - wxRightOf, - wxSameAs, - wxAbsolute }; - - -class wxIndividualLayoutConstraint { -public: -// wxIndividualLayoutConstraint(); -// ~wxIndividualLayoutConstraint(); - - void Above(wxWindow *otherWin, int margin=0); - void Absolute(int value); - void AsIs(); - void Below(wxWindow *otherWin, int margin=0); - void Unconstrained(); - void LeftOf(wxWindow *otherWin, int margin=0); - void PercentOf(wxWindow *otherWin, wxEdge edge, int percent); - void RightOf(wxWindow *otherWin, int margin=0); - void SameAs(wxWindow *otherWin, wxEdge edge, int margin=0); - void Set(wxRelationship rel, wxWindow *otherWin, wxEdge otherEdge, int value=0, int margin=0); -}; - - -class wxLayoutConstraints { -public: - wxLayoutConstraints(); - -%readonly - wxIndividualLayoutConstraint bottom; - wxIndividualLayoutConstraint centreX; - wxIndividualLayoutConstraint centreY; - wxIndividualLayoutConstraint height; - wxIndividualLayoutConstraint left; - wxIndividualLayoutConstraint right; - wxIndividualLayoutConstraint top; - wxIndividualLayoutConstraint width; -%readwrite -} - - -//--------------------------------------------------------------------------- -// Regions, etc. - -enum wxRegionContain { - wxOutRegion, wxPartRegion, wxInRegion -}; - - -class wxRegion { -public: - wxRegion(); - ~wxRegion(); - - void Clear(); - wxRegionContain Contains(long x, long y); - %name(ContainsPoint)wxRegionContain Contains(const wxPoint& pt); - %name(ContainsRect)wxRegionContain Contains(const wxRect& rect); - - wxRect GetBox(); - bool Intersect(const wxRect& rect); -#ifdef __WXMSW__ - bool IsEmpty(); -#endif - bool Subtract(const wxRect& rect); - bool Union(const wxRect& rect); - bool Xor(const wxRect& rect); -}; - - - -class wxRegionIterator { -public: - wxRegionIterator(const wxRegion& region); - ~wxRegionIterator(); - - long GetX(); - long GetY(); - long GetW(); - long GetWidth(); - long GetH(); - long GetHeight(); - wxRect GetRect(); - bool HaveRects(); - void Reset(); - - %addmethods { - void Next() { - (*self) ++; - } - }; -}; - - - -//--------------------------------------------------------------------------- -// Accelerator Entry and Table - -class wxAcceleratorEntry { -public: - wxAcceleratorEntry(int flags = 0, int keyCode = 0, int cmd = 0); - //~wxAcceleratorEntry(); *** ? - - void Set(int flags, int keyCode, int Cmd); - int GetFlags(); - int GetKeyCode(); - int GetCommand(); -}; - - -class wxAcceleratorTable { -public: - // Can also accept a list of 3-tuples - wxAcceleratorTable(int LCOUNT, wxAcceleratorEntry* LIST); - // ~wxAcceleratorEntry(); *** ? - -}; - -//--------------------------------------------------------------------------- -// wxToolTip - -class wxToolTip { -public: - wxToolTip(const wxString &tip); - - void SetTip(const wxString& tip); - wxString GetTip(); - // *** Not in the "public" interface void SetWindow(wxWindow *win); - wxWindow *GetWindow(); -}; - - -%inline %{ - void wxToolTip_Enable(bool flag) { - wxToolTip::Enable(flag); - } - - void wxToolTip_SetDelay(long milliseconds) { - wxToolTip::SetDelay(milliseconds); - } -%} - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.14 1999/04/30 03:29:19 RD -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.13.4.1 1999/03/27 23:29:15 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.13 1999/02/25 07:08:34 RD -// -// wxPython version 2.0b5 -// -// Revision 1.12 1999/02/20 10:02:37 RD -// -// Changes needed to enable wxGTK compatibility. -// -// Revision 1.11 1999/02/20 09:03:01 RD -// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -// window handle. If you can get the window handle into the python code, -// it should just work... More news on this later. -// -// Added wxImageList, wxToolTip. -// -// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -// wxRegConfig class. -// -// As usual, some bug fixes, tweaks, etc. -// -// Revision 1.10 1999/01/30 07:30:14 RD -// -// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -// -// Various cleanup, tweaks, minor additions, etc. to maintain -// compatibility with the current wxWindows. -// -// Revision 1.9 1998/12/16 22:10:55 RD -// -// Tweaks needed to be able to build wxPython with wxGTK. -// -// Revision 1.8 1998/12/15 20:41:22 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.7 1998/11/25 08:45:27 RD -// -// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -// Added events for wxGrid -// Other various fixes and additions -// -// Revision 1.6 1998/11/15 23:03:46 RD -// Removing some ifdef's for wxGTK -// -// Revision 1.5 1998/10/20 06:43:59 RD -// New wxTreeCtrl wrappers (untested) -// some changes in helpers -// etc. -// -// Revision 1.4 1998/08/18 19:48:19 RD -// more wxGTK compatibility things. -// -// It builds now but there are serious runtime problems... -// -// Revision 1.3 1998/08/16 04:31:10 RD -// More wxGTK work. -// -// Revision 1.2 1998/08/15 07:36:41 RD -// - Moved the header in the .i files out of the code that gets put into -// the .cpp files. It caused CVS conflicts because of the RCS ID being -// different each time. -// -// - A few minor fixes. -// -// Revision 1.1 1998/08/09 08:25:51 RD -// Initial version -// -// - - diff --git a/utils/wxPython/src/motif/dummy b/utils/wxPython/src/motif/dummy deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/wxPython/src/msw/cmndlgs.cpp b/utils/wxPython/src/msw/cmndlgs.cpp deleted file mode 100644 index b0d1f88eda..0000000000 --- a/utils/wxPython/src/msw/cmndlgs.cpp +++ /dev/null @@ -1,4438 +0,0 @@ -/* - * FILE : msw/cmndlgs.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initcmndlgsc - -#define SWIG_name "cmndlgsc" - -#include "helpers.h" -#include -#include -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define new_wxColourData() (new wxColourData()) -static PyObject *_wrap_new_wxColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxColourData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColourData *)new_wxColourData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxColourData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxColourData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxColourData. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxColourData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColourData_GetChooseFull(_swigobj) (_swigobj->GetChooseFull()) -static PyObject *_wrap_wxColourData_GetChooseFull(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxColourData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourData_GetChooseFull",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_GetChooseFull. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxColourData_GetChooseFull(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxColourData_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxColourData_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxColourData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourData_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_GetColour. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxColourData_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourData_GetCustomColour(_swigobj,_swigarg0) (_swigobj->GetCustomColour(_swigarg0)) -static PyObject *_wrap_wxColourData_GetCustomColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxColourData * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxColourData_GetCustomColour",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_GetCustomColour. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxColourData_GetCustomColour(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourData_SetChooseFull(_swigobj,_swigarg0) (_swigobj->SetChooseFull(_swigarg0)) -static PyObject *_wrap_wxColourData_SetChooseFull(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxColourData_SetChooseFull",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetChooseFull. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData_SetChooseFull(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColourData_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxColourData_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxColourData_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxColourData_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColourData_SetCustomColour(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetCustomColour(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxColourData_SetCustomColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _arg0; - int _arg1; - wxColour * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxColourData_SetCustomColour",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourData_SetCustomColour. Expected _wxColourData_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxColourData_SetCustomColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData_SetCustomColour(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxColourDialogTowxDialog(void *ptr) { - wxColourDialog *src; - wxDialog *dest; - src = (wxColourDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxColourDialogTowxPanel(void *ptr) { - wxColourDialog *src; - wxPanel *dest; - src = (wxColourDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxColourDialogTowxWindow(void *ptr) { - wxColourDialog *src; - wxWindow *dest; - src = (wxColourDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxColourDialogTowxEvtHandler(void *ptr) { - wxColourDialog *src; - wxEvtHandler *dest; - src = (wxColourDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxColourDialog(_swigarg0,_swigarg1) (new wxColourDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxColourDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourDialog * _result; - wxWindow * _arg0; - wxColourData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxColourDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxColourDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColourData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxColourDialog. Expected _wxColourData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColourDialog *)new_wxColourDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourDialog_GetColourData(_swigobj) (_swigobj->GetColourData()) -static PyObject *_wrap_wxColourDialog_GetColourData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColourData * _result; - wxColourDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourDialog_GetColourData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourDialog_GetColourData. Expected _wxColourDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColourData & _result_ref = wxColourDialog_GetColourData(_arg0); - _result = (wxColourData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColourData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxColourDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxColourDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxColourDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColourDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColourDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColourDialog_ShowModal. Expected _wxColourDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxColourDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxDirDialogTowxDialog(void *ptr) { - wxDirDialog *src; - wxDialog *dest; - src = (wxDirDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxDirDialogTowxPanel(void *ptr) { - wxDirDialog *src; - wxPanel *dest; - src = (wxDirDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxDirDialogTowxWindow(void *ptr) { - wxDirDialog *src; - wxWindow *dest; - src = (wxDirDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxDirDialogTowxEvtHandler(void *ptr) { - wxDirDialog *src; - wxEvtHandler *dest; - src = (wxDirDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxDirDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxDirDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxDirDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDirDialog * _result; - wxWindow * _arg0; - char * _arg1 = "Choose a directory"; - char * _arg2 = ""; - long _arg3 = 0; - wxPoint * _arg4 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssls:new_wxDirDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxDirDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxDirDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDirDialog *)new_wxDirDialog(_arg0,_arg1,_arg2,_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDirDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDirDialog_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxDirDialog_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_GetPath",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_GetPath. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxDirDialog_GetPath(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxDirDialog_GetMessage(_swigobj) (_swigobj->GetMessage()) -static PyObject *_wrap_wxDirDialog_GetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_GetMessage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_GetMessage. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxDirDialog_GetMessage(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxDirDialog_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxDirDialog_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_GetStyle. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDirDialog_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDirDialog_SetMessage(_swigobj,_swigarg0) (_swigobj->SetMessage(_swigarg0)) -static PyObject *_wrap_wxDirDialog_SetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDirDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDirDialog_SetMessage",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_SetMessage. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDirDialog_SetMessage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDirDialog_SetPath(_swigobj,_swigarg0) (_swigobj->SetPath(_swigarg0)) -static PyObject *_wrap_wxDirDialog_SetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDirDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDirDialog_SetPath",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_SetPath. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDirDialog_SetPath(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDirDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxDirDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDirDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDirDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDirDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDirDialog_ShowModal. Expected _wxDirDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDirDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxFileDialogTowxDialog(void *ptr) { - wxFileDialog *src; - wxDialog *dest; - src = (wxFileDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxFileDialogTowxPanel(void *ptr) { - wxFileDialog *src; - wxPanel *dest; - src = (wxFileDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxFileDialogTowxWindow(void *ptr) { - wxFileDialog *src; - wxWindow *dest; - src = (wxFileDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxFileDialogTowxEvtHandler(void *ptr) { - wxFileDialog *src; - wxEvtHandler *dest; - src = (wxFileDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxFileDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxFileDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxFileDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _result; - wxWindow * _arg0; - char * _arg1 = "Choose a file"; - char * _arg2 = ""; - char * _arg3 = ""; - char * _arg4 = "*.*"; - long _arg5 = 0; - wxPoint * _arg6 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssssls:new_wxFileDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFileDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxFileDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFileDialog *)new_wxFileDialog(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,*_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFileDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFileDialog_GetDirectory(_swigobj) (_swigobj->GetDirectory()) -static PyObject *_wrap_wxFileDialog_GetDirectory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetDirectory",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetDirectory. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetDirectory(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetFilename(_swigobj) (_swigobj->GetFilename()) -static PyObject *_wrap_wxFileDialog_GetFilename(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetFilename",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetFilename. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetFilename(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetFilterIndex(_swigobj) (_swigobj->GetFilterIndex()) -static PyObject *_wrap_wxFileDialog_GetFilterIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetFilterIndex",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetFilterIndex. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFileDialog_GetFilterIndex(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFileDialog_GetMessage(_swigobj) (_swigobj->GetMessage()) -static PyObject *_wrap_wxFileDialog_GetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetMessage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetMessage. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetMessage(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxFileDialog_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetPath",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetPath. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetPath(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxFileDialog_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetStyle. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxFileDialog_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxFileDialog_GetWildcard(_swigobj) (_swigobj->GetWildcard()) -static PyObject *_wrap_wxFileDialog_GetWildcard(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_GetWildcard",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_GetWildcard. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileDialog_GetWildcard(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFileDialog_SetDirectory(_swigobj,_swigarg0) (_swigobj->SetDirectory(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetDirectory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetDirectory",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetDirectory. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetDirectory(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetFilename(_swigobj,_swigarg0) (_swigobj->SetFilename(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetFilename(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetFilename",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetFilename. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetFilename(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetFilterIndex(_swigobj,_swigarg0) (_swigobj->SetFilterIndex(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetFilterIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFileDialog_SetFilterIndex",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetFilterIndex. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetFilterIndex(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFileDialog_SetMessage(_swigobj,_swigarg0) (_swigobj->SetMessage(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetMessage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetMessage",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetMessage. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetMessage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetPath(_swigobj,_swigarg0) (_swigobj->SetPath(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetPath",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetPath. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetPath(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxFileDialog_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetStyle. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFileDialog_SetWildcard(_swigobj,_swigarg0) (_swigobj->SetWildcard(_swigarg0)) -static PyObject *_wrap_wxFileDialog_SetWildcard(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFileDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFileDialog_SetWildcard",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_SetWildcard. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFileDialog_SetWildcard(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFileDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxFileDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFileDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFileDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFileDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFileDialog_ShowModal. Expected _wxFileDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFileDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxSingleChoiceDialogTowxDialog(void *ptr) { - wxSingleChoiceDialog *src; - wxDialog *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxSingleChoiceDialogTowxPanel(void *ptr) { - wxSingleChoiceDialog *src; - wxPanel *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxSingleChoiceDialogTowxWindow(void *ptr) { - wxSingleChoiceDialog *src; - wxWindow *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSingleChoiceDialogTowxEvtHandler(void *ptr) { - wxSingleChoiceDialog *src; - wxEvtHandler *dest; - src = (wxSingleChoiceDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -static wxSingleChoiceDialog *new_wxSingleChoiceDialog(wxWindow *parent,wxString *message,wxString *caption,int LCOUNT,wxString *LIST,long style,wxPoint *pos) { - return new wxSingleChoiceDialog(parent, *message, *caption, - LCOUNT, LIST, NULL, style, *pos); - } - -static PyObject *_wrap_new_wxSingleChoiceDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSingleChoiceDialog * _result; - wxWindow * _arg0; - wxString * _arg1; - wxString * _arg2; - int _arg3; - wxString * _arg4; - long _arg5 = (wxOK)|(wxCANCEL)|(wxCENTRE); - wxPoint * _arg6 = &wxPyDefaultPosition; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sOOO|ls:new_wxSingleChoiceDialog",&_argc0,&_obj1,&_obj2,&_obj4,&_arg5,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSingleChoiceDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj4) -{ - _arg4 = wxString_LIST_helper(_obj4); - if (_arg4 == NULL) { - return NULL; - } -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxSingleChoiceDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - if (_obj4) { - _arg3 = PyList_Size(_obj4); - } - else { - _arg3 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSingleChoiceDialog *)new_wxSingleChoiceDialog(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSingleChoiceDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - delete [] _arg4; -} - return _resultobj; -} - -#define wxSingleChoiceDialog_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxSingleChoiceDialog_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSingleChoiceDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSingleChoiceDialog_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_GetSelection. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSingleChoiceDialog_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSingleChoiceDialog_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxSingleChoiceDialog_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxSingleChoiceDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSingleChoiceDialog_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_GetStringSelection. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxSingleChoiceDialog_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxSingleChoiceDialog_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxSingleChoiceDialog_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSingleChoiceDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSingleChoiceDialog_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_SetSelection. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSingleChoiceDialog_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSingleChoiceDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxSingleChoiceDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSingleChoiceDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSingleChoiceDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSingleChoiceDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSingleChoiceDialog_ShowModal. Expected _wxSingleChoiceDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSingleChoiceDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxTextEntryDialogTowxDialog(void *ptr) { - wxTextEntryDialog *src; - wxDialog *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxTextEntryDialogTowxPanel(void *ptr) { - wxTextEntryDialog *src; - wxPanel *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxTextEntryDialogTowxWindow(void *ptr) { - wxTextEntryDialog *src; - wxWindow *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxTextEntryDialogTowxEvtHandler(void *ptr) { - wxTextEntryDialog *src; - wxEvtHandler *dest; - src = (wxTextEntryDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTextEntryDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxTextEntryDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxTextEntryDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextEntryDialog * _result; - wxWindow * _arg0; - char * _arg1; - char * _arg2 = "Input Text"; - char * _arg3 = ""; - long _arg4 = (wxOK)|(wxCANCEL)|(wxCENTRE); - wxPoint * _arg5 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss|ssls:new_wxTextEntryDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextEntryDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxTextEntryDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextEntryDialog *)new_wxTextEntryDialog(_arg0,_arg1,_arg2,_arg3,_arg4,*_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextEntryDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTextEntryDialog_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxTextEntryDialog_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextEntryDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextEntryDialog_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextEntryDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextEntryDialog_GetValue. Expected _wxTextEntryDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTextEntryDialog_GetValue(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTextEntryDialog_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxTextEntryDialog_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextEntryDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextEntryDialog_SetValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextEntryDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextEntryDialog_SetValue. Expected _wxTextEntryDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextEntryDialog_SetValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextEntryDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxTextEntryDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTextEntryDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextEntryDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextEntryDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextEntryDialog_ShowModal. Expected _wxTextEntryDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTextEntryDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxFontData() (new wxFontData()) -static PyObject *_wrap_new_wxFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxFontData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFontData *)new_wxFontData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxFontData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxFontData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxFontData. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxFontData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_EnableEffects(_swigobj,_swigarg0) (_swigobj->EnableEffects(_swigarg0)) -static PyObject *_wrap_wxFontData_EnableEffects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFontData_EnableEffects",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_EnableEffects. Expected _wxFontData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_EnableEffects(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_GetAllowSymbols(_swigobj) (_swigobj->GetAllowSymbols()) -static PyObject *_wrap_wxFontData_GetAllowSymbols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetAllowSymbols",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetAllowSymbols. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFontData_GetAllowSymbols(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFontData_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxFontData_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxFontData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetColour. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxFontData_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontData_GetChosenFont(_swigobj) (_swigobj->GetChosenFont()) -static PyObject *_wrap_wxFontData_GetChosenFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxFontData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetChosenFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetChosenFont. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxFont (wxFontData_GetChosenFont(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontData_GetEnableEffects(_swigobj) (_swigobj->GetEnableEffects()) -static PyObject *_wrap_wxFontData_GetEnableEffects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetEnableEffects",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetEnableEffects. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFontData_GetEnableEffects(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFontData_GetInitialFont(_swigobj) (_swigobj->GetInitialFont()) -static PyObject *_wrap_wxFontData_GetInitialFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxFontData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetInitialFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetInitialFont. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxFont (wxFontData_GetInitialFont(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontData_GetShowHelp(_swigobj) (_swigobj->GetShowHelp()) -static PyObject *_wrap_wxFontData_GetShowHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFontData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontData_GetShowHelp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_GetShowHelp. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFontData_GetShowHelp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFontData_SetAllowSymbols(_swigobj,_swigarg0) (_swigobj->SetAllowSymbols(_swigarg0)) -static PyObject *_wrap_wxFontData_SetAllowSymbols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFontData_SetAllowSymbols",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetAllowSymbols. Expected _wxFontData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetAllowSymbols(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetChosenFont(_swigobj,_swigarg0) (_swigobj->SetChosenFont(_swigarg0)) -static PyObject *_wrap_wxFontData_SetChosenFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFontData_SetChosenFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetChosenFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFontData_SetChosenFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetChosenFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxFontData_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFontData_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetColour. Expected _wxFontData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFontData_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetInitialFont(_swigobj,_swigarg0) (_swigobj->SetInitialFont(_swigarg0)) -static PyObject *_wrap_wxFontData_SetInitialFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFontData_SetInitialFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetInitialFont. Expected _wxFontData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFontData_SetInitialFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetInitialFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetRange(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRange(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxFontData_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxFontData_SetRange",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetRange. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetRange(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFontData_SetShowHelp(_swigobj,_swigarg0) (_swigobj->SetShowHelp(_swigarg0)) -static PyObject *_wrap_wxFontData_SetShowHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFontData_SetShowHelp",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontData_SetShowHelp. Expected _wxFontData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData_SetShowHelp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxFontDialogTowxDialog(void *ptr) { - wxFontDialog *src; - wxDialog *dest; - src = (wxFontDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxFontDialogTowxPanel(void *ptr) { - wxFontDialog *src; - wxPanel *dest; - src = (wxFontDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxFontDialogTowxWindow(void *ptr) { - wxFontDialog *src; - wxWindow *dest; - src = (wxFontDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxFontDialogTowxEvtHandler(void *ptr) { - wxFontDialog *src; - wxEvtHandler *dest; - src = (wxFontDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxFontDialog(_swigarg0,_swigarg1) (new wxFontDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxFontDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontDialog * _result; - wxWindow * _arg0; - wxFontData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxFontDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFontDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFontData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxFontDialog. Expected _wxFontData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFontDialog *)new_wxFontDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontDialog_GetFontData(_swigobj) (_swigobj->GetFontData()) -static PyObject *_wrap_wxFontDialog_GetFontData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFontData * _result; - wxFontDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontDialog_GetFontData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontDialog_GetFontData. Expected _wxFontDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFontData & _result_ref = wxFontDialog_GetFontData(_arg0); - _result = (wxFontData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFontData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFontDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxFontDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFontDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFontDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFontDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFontDialog_ShowModal. Expected _wxFontDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFontDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPageSetupDialogData() (new wxPageSetupDialogData()) -static PyObject *_wrap_new_wxPageSetupDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPageSetupDialogData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPageSetupDialogData *)new_wxPageSetupDialogData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPageSetupDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPageSetupDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPageSetupDialogData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPageSetupDialogData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPageSetupDialogData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnableHelp(_swigobj,_swigarg0) (_swigobj->EnableHelp(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnableHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnableHelp",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnableHelp. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnableHelp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnableMargins(_swigobj,_swigarg0) (_swigobj->EnableMargins(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnableMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnableMargins",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnableMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnableMargins(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnableOrientation(_swigobj,_swigarg0) (_swigobj->EnableOrientation(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnableOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnableOrientation",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnableOrientation. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnableOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnablePaper(_swigobj,_swigarg0) (_swigobj->EnablePaper(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnablePaper(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnablePaper",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnablePaper. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnablePaper(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_EnablePrinter(_swigobj,_swigarg0) (_swigobj->EnablePrinter(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_EnablePrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_EnablePrinter",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_EnablePrinter. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_EnablePrinter(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_GetDefaultMinMargins(_swigobj) (_swigobj->GetDefaultMinMargins()) -static PyObject *_wrap_wxPageSetupDialogData_GetDefaultMinMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetDefaultMinMargins",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetDefaultMinMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetDefaultMinMargins(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnableMargins(_swigobj) (_swigobj->GetEnableMargins()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnableMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnableMargins",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnableMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnableMargins(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnableOrientation(_swigobj) (_swigobj->GetEnableOrientation()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnableOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnableOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnableOrientation. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnableOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnablePaper(_swigobj) (_swigobj->GetEnablePaper()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnablePaper(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnablePaper",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnablePaper. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnablePaper(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnablePrinter(_swigobj) (_swigobj->GetEnablePrinter()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnablePrinter(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnablePrinter",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnablePrinter. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnablePrinter(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetEnableHelp(_swigobj) (_swigobj->GetEnableHelp()) -static PyObject *_wrap_wxPageSetupDialogData_GetEnableHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetEnableHelp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetEnableHelp. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetEnableHelp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetDefaultInfo(_swigobj) (_swigobj->GetDefaultInfo()) -static PyObject *_wrap_wxPageSetupDialogData_GetDefaultInfo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetDefaultInfo",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetDefaultInfo. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPageSetupDialogData_GetDefaultInfo(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMarginTopLeft(_swigobj) (_swigobj->GetMarginTopLeft()) -static PyObject *_wrap_wxPageSetupDialogData_GetMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMarginTopLeft",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMarginTopLeft(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMarginBottomRight(_swigobj) (_swigobj->GetMarginBottomRight()) -static PyObject *_wrap_wxPageSetupDialogData_GetMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMarginBottomRight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMarginBottomRight(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMinMarginTopLeft(_swigobj) (_swigobj->GetMinMarginTopLeft()) -static PyObject *_wrap_wxPageSetupDialogData_GetMinMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMinMarginTopLeft",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMinMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMinMarginTopLeft(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetMinMarginBottomRight(_swigobj) (_swigobj->GetMinMarginBottomRight()) -static PyObject *_wrap_wxPageSetupDialogData_GetMinMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetMinMarginBottomRight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetMinMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxPageSetupDialogData_GetMinMarginBottomRight(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetPaperId(_swigobj) (_swigobj->GetPaperId()) -static PyObject *_wrap_wxPageSetupDialogData_GetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPaperSize _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetPaperId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetPaperId. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPaperSize )wxPageSetupDialogData_GetPaperId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPageSetupDialogData_GetPaperSize(_swigobj) (_swigobj->GetPaperSize()) -static PyObject *_wrap_wxPageSetupDialogData_GetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetPaperSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetPaperSize. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxPageSetupDialogData_GetPaperSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_GetPrintData(_swigobj) (_swigobj->GetPrintData()) -static PyObject *_wrap_wxPageSetupDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPageSetupDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialogData_GetPrintData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_GetPrintData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData & _result_ref = wxPageSetupDialogData_GetPrintData(_arg0); - _result = (wxPrintData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialogData_SetDefaultInfo(_swigobj,_swigarg0) (_swigobj->SetDefaultInfo(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetDefaultInfo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_SetDefaultInfo",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetDefaultInfo. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetDefaultInfo(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetDefaultMinMargins(_swigobj,_swigarg0) (_swigobj->SetDefaultMinMargins(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetDefaultMinMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPageSetupDialogData_SetDefaultMinMargins",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetDefaultMinMargins. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetDefaultMinMargins(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMarginTopLeft(_swigobj,_swigarg0) (_swigobj->SetMarginTopLeft(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMarginTopLeft",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMarginTopLeft. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMarginTopLeft(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMarginBottomRight(_swigobj,_swigarg0) (_swigobj->SetMarginBottomRight(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMarginBottomRight",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMarginBottomRight. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMarginBottomRight(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMinMarginTopLeft(_swigobj,_swigarg0) (_swigobj->SetMinMarginTopLeft(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMinMarginTopLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMinMarginTopLeft",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginTopLeft. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMinMarginTopLeft. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMinMarginTopLeft(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetMinMarginBottomRight(_swigobj,_swigarg0) (_swigobj->SetMinMarginBottomRight(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetMinMarginBottomRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetMinMarginBottomRight",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetMinMarginBottomRight. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetMinMarginBottomRight. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetMinMarginBottomRight(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetPaperId(_swigobj,_swigarg0) (_swigobj->SetPaperId(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetPaperId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPaperSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetPaperId",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperId. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPaperSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetPaperId. Expected _wxPaperSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetPaperId(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetPaperSize(_swigobj,_swigarg0) (_swigobj->SetPaperSize(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetPaperSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetPaperSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPaperSize. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetPaperSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetPaperSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPageSetupDialogData_SetPrintData(_swigobj,_swigarg0) (_swigobj->SetPrintData(_swigarg0)) -static PyObject *_wrap_wxPageSetupDialogData_SetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _arg0; - wxPrintData * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPageSetupDialogData_SetPrintData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialogData_SetPrintData. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPageSetupDialogData_SetPrintData. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData_SetPrintData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxPageSetupDialogTowxDialog(void *ptr) { - wxPageSetupDialog *src; - wxDialog *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxPageSetupDialogTowxPanel(void *ptr) { - wxPageSetupDialog *src; - wxPanel *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxPageSetupDialogTowxWindow(void *ptr) { - wxPageSetupDialog *src; - wxWindow *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPageSetupDialogTowxEvtHandler(void *ptr) { - wxPageSetupDialog *src; - wxEvtHandler *dest; - src = (wxPageSetupDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPageSetupDialog(_swigarg0,_swigarg1) (new wxPageSetupDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPageSetupDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialog * _result; - wxWindow * _arg0; - wxPageSetupDialogData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxPageSetupDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPageSetupDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPageSetupDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPageSetupDialog. Expected _wxPageSetupDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPageSetupDialog *)new_wxPageSetupDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialog_GetPageSetupData(_swigobj) (_swigobj->GetPageSetupData()) -static PyObject *_wrap_wxPageSetupDialog_GetPageSetupData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPageSetupDialogData * _result; - wxPageSetupDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialog_GetPageSetupData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialog_GetPageSetupData. Expected _wxPageSetupDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPageSetupDialogData & _result_ref = wxPageSetupDialog_GetPageSetupData(_arg0); - _result = (wxPageSetupDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPageSetupDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPageSetupDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPageSetupDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPageSetupDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPageSetupDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPageSetupDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPageSetupDialog_ShowModal. Expected _wxPageSetupDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPageSetupDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxPrintDialogData() (new wxPrintDialogData()) -static PyObject *_wrap_new_wxPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPrintDialogData")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintDialogData *)new_wxPrintDialogData(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPrintDialogData(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPrintDialogData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPrintDialogData. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPrintDialogData(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnableHelp(_swigobj,_swigarg0) (_swigobj->EnableHelp(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnableHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnableHelp",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnableHelp. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnableHelp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnablePageNumbers(_swigobj,_swigarg0) (_swigobj->EnablePageNumbers(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnablePageNumbers(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnablePageNumbers",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnablePageNumbers. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnablePageNumbers(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnablePrintToFile(_swigobj,_swigarg0) (_swigobj->EnablePrintToFile(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnablePrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnablePrintToFile",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnablePrintToFile. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnablePrintToFile(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_EnableSelection(_swigobj,_swigarg0) (_swigobj->EnableSelection(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_EnableSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_EnableSelection",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_EnableSelection. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_EnableSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_GetAllPages(_swigobj) (_swigobj->GetAllPages()) -static PyObject *_wrap_wxPrintDialogData_GetAllPages(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetAllPages",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetAllPages. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintDialogData_GetAllPages(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetCollate(_swigobj) (_swigobj->GetCollate()) -static PyObject *_wrap_wxPrintDialogData_GetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetCollate",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetCollate. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintDialogData_GetCollate(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetFromPage(_swigobj) (_swigobj->GetFromPage()) -static PyObject *_wrap_wxPrintDialogData_GetFromPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetFromPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetFromPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetFromPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetMaxPage(_swigobj) (_swigobj->GetMaxPage()) -static PyObject *_wrap_wxPrintDialogData_GetMaxPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetMaxPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetMaxPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetMaxPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetMinPage(_swigobj) (_swigobj->GetMinPage()) -static PyObject *_wrap_wxPrintDialogData_GetMinPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetMinPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetMinPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetMinPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetNoCopies(_swigobj) (_swigobj->GetNoCopies()) -static PyObject *_wrap_wxPrintDialogData_GetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetNoCopies",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetNoCopies. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetNoCopies(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetPrintData(_swigobj) (_swigobj->GetPrintData()) -static PyObject *_wrap_wxPrintDialogData_GetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintData * _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetPrintData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetPrintData. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintData & _result_ref = wxPrintDialogData_GetPrintData(_arg0); - _result = (wxPrintData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialogData_GetPrintToFile(_swigobj) (_swigobj->GetPrintToFile()) -static PyObject *_wrap_wxPrintDialogData_GetPrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetPrintToFile",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetPrintToFile. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPrintDialogData_GetPrintToFile(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_GetToPage(_swigobj) (_swigobj->GetToPage()) -static PyObject *_wrap_wxPrintDialogData_GetToPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialogData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialogData_GetToPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_GetToPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialogData_GetToPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPrintDialogData_SetCollate(_swigobj,_swigarg0) (_swigobj->SetCollate(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetCollate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetCollate",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetCollate. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetCollate(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetFromPage(_swigobj,_swigarg0) (_swigobj->SetFromPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetFromPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetFromPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetFromPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetFromPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetMaxPage(_swigobj,_swigarg0) (_swigobj->SetMaxPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetMaxPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetMaxPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetMaxPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetMaxPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetMinPage(_swigobj,_swigarg0) (_swigobj->SetMinPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetMinPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetMinPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetMinPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetMinPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetNoCopies(_swigobj,_swigarg0) (_swigobj->SetNoCopies(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetNoCopies(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetNoCopies",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetNoCopies. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetNoCopies(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetPrintData(_swigobj,_swigarg0) (_swigobj->SetPrintData(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetPrintData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - wxPrintData * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPrintDialogData_SetPrintData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetPrintData. Expected _wxPrintDialogData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPrintData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPrintDialogData_SetPrintData. Expected _wxPrintData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetPrintData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetPrintToFile(_swigobj,_swigarg0) (_swigobj->SetPrintToFile(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetPrintToFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetPrintToFile",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetPrintToFile. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetPrintToFile(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetSetupDialog(_swigobj,_swigarg0) (_swigobj->SetSetupDialog(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetSetupDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetSetupDialog",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetSetupDialog. Expected _wxPrintDialogData_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetSetupDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPrintDialogData_SetToPage(_swigobj,_swigarg0) (_swigobj->SetToPage(_swigarg0)) -static PyObject *_wrap_wxPrintDialogData_SetToPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPrintDialogData_SetToPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialogData_SetToPage. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData_SetToPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxPrintDialogTowxDialog(void *ptr) { - wxPrintDialog *src; - wxDialog *dest; - src = (wxPrintDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxPrintDialogTowxPanel(void *ptr) { - wxPrintDialog *src; - wxPanel *dest; - src = (wxPrintDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxPrintDialogTowxWindow(void *ptr) { - wxPrintDialog *src; - wxWindow *dest; - src = (wxPrintDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPrintDialogTowxEvtHandler(void *ptr) { - wxPrintDialog *src; - wxEvtHandler *dest; - src = (wxPrintDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPrintDialog(_swigarg0,_swigarg1) (new wxPrintDialog(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPrintDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialog * _result; - wxWindow * _arg0; - wxPrintDialogData * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:new_wxPrintDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPrintDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPrintDialogData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxPrintDialog. Expected _wxPrintDialogData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrintDialog *)new_wxPrintDialog(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialog_GetPrintDialogData(_swigobj) (_swigobj->GetPrintDialogData()) -static PyObject *_wrap_wxPrintDialog_GetPrintDialogData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrintDialogData * _result; - wxPrintDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialog_GetPrintDialogData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialog_GetPrintDialogData. Expected _wxPrintDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPrintDialogData & _result_ref = wxPrintDialog_GetPrintDialogData(_arg0); - _result = (wxPrintDialogData *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrintDialogData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialog_GetPrintDC(_swigobj) (_swigobj->GetPrintDC()) -static PyObject *_wrap_wxPrintDialog_GetPrintDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxPrintDialog * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialog_GetPrintDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialog_GetPrintDC. Expected _wxPrintDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxPrintDialog_GetPrintDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPrintDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxPrintDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPrintDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPrintDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPrintDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPrintDialog_ShowModal. Expected _wxPrintDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPrintDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxMessageDialogTowxDialog(void *ptr) { - wxMessageDialog *src; - wxDialog *dest; - src = (wxMessageDialog *) ptr; - dest = (wxDialog *) src; - return (void *) dest; -} - -static void *SwigwxMessageDialogTowxPanel(void *ptr) { - wxMessageDialog *src; - wxPanel *dest; - src = (wxMessageDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxMessageDialogTowxWindow(void *ptr) { - wxMessageDialog *src; - wxWindow *dest; - src = (wxMessageDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMessageDialogTowxEvtHandler(void *ptr) { - wxMessageDialog *src; - wxEvtHandler *dest; - src = (wxMessageDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMessageDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxMessageDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxMessageDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMessageDialog * _result; - wxWindow * _arg0; - char * _arg1; - char * _arg2 = "Message box"; - long _arg3 = (wxOK)|(wxCANCEL)|(wxCENTRE); - wxPoint * _arg4 = &wxPyDefaultPosition; - char * _argc0 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss|sls:new_wxMessageDialog",&_argc0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMessageDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMessageDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMessageDialog *)new_wxMessageDialog(_arg0,_arg1,_arg2,_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMessageDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMessageDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxMessageDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMessageDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMessageDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMessageDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMessageDialog_ShowModal. Expected _wxMessageDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMessageDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef cmndlgscMethods[] = { - { "wxMessageDialog_ShowModal", _wrap_wxMessageDialog_ShowModal, 1 }, - { "new_wxMessageDialog", _wrap_new_wxMessageDialog, 1 }, - { "wxPrintDialog_ShowModal", _wrap_wxPrintDialog_ShowModal, 1 }, - { "wxPrintDialog_GetPrintDC", _wrap_wxPrintDialog_GetPrintDC, 1 }, - { "wxPrintDialog_GetPrintDialogData", _wrap_wxPrintDialog_GetPrintDialogData, 1 }, - { "new_wxPrintDialog", _wrap_new_wxPrintDialog, 1 }, - { "wxPrintDialogData_SetToPage", _wrap_wxPrintDialogData_SetToPage, 1 }, - { "wxPrintDialogData_SetSetupDialog", _wrap_wxPrintDialogData_SetSetupDialog, 1 }, - { "wxPrintDialogData_SetPrintToFile", _wrap_wxPrintDialogData_SetPrintToFile, 1 }, - { "wxPrintDialogData_SetPrintData", _wrap_wxPrintDialogData_SetPrintData, 1 }, - { "wxPrintDialogData_SetNoCopies", _wrap_wxPrintDialogData_SetNoCopies, 1 }, - { "wxPrintDialogData_SetMinPage", _wrap_wxPrintDialogData_SetMinPage, 1 }, - { "wxPrintDialogData_SetMaxPage", _wrap_wxPrintDialogData_SetMaxPage, 1 }, - { "wxPrintDialogData_SetFromPage", _wrap_wxPrintDialogData_SetFromPage, 1 }, - { "wxPrintDialogData_SetCollate", _wrap_wxPrintDialogData_SetCollate, 1 }, - { "wxPrintDialogData_GetToPage", _wrap_wxPrintDialogData_GetToPage, 1 }, - { "wxPrintDialogData_GetPrintToFile", _wrap_wxPrintDialogData_GetPrintToFile, 1 }, - { "wxPrintDialogData_GetPrintData", _wrap_wxPrintDialogData_GetPrintData, 1 }, - { "wxPrintDialogData_GetNoCopies", _wrap_wxPrintDialogData_GetNoCopies, 1 }, - { "wxPrintDialogData_GetMinPage", _wrap_wxPrintDialogData_GetMinPage, 1 }, - { "wxPrintDialogData_GetMaxPage", _wrap_wxPrintDialogData_GetMaxPage, 1 }, - { "wxPrintDialogData_GetFromPage", _wrap_wxPrintDialogData_GetFromPage, 1 }, - { "wxPrintDialogData_GetCollate", _wrap_wxPrintDialogData_GetCollate, 1 }, - { "wxPrintDialogData_GetAllPages", _wrap_wxPrintDialogData_GetAllPages, 1 }, - { "wxPrintDialogData_EnableSelection", _wrap_wxPrintDialogData_EnableSelection, 1 }, - { "wxPrintDialogData_EnablePrintToFile", _wrap_wxPrintDialogData_EnablePrintToFile, 1 }, - { "wxPrintDialogData_EnablePageNumbers", _wrap_wxPrintDialogData_EnablePageNumbers, 1 }, - { "wxPrintDialogData_EnableHelp", _wrap_wxPrintDialogData_EnableHelp, 1 }, - { "delete_wxPrintDialogData", _wrap_delete_wxPrintDialogData, 1 }, - { "new_wxPrintDialogData", _wrap_new_wxPrintDialogData, 1 }, - { "wxPageSetupDialog_ShowModal", _wrap_wxPageSetupDialog_ShowModal, 1 }, - { "wxPageSetupDialog_GetPageSetupData", _wrap_wxPageSetupDialog_GetPageSetupData, 1 }, - { "new_wxPageSetupDialog", _wrap_new_wxPageSetupDialog, 1 }, - { "wxPageSetupDialogData_SetPrintData", _wrap_wxPageSetupDialogData_SetPrintData, 1 }, - { "wxPageSetupDialogData_SetPaperSize", _wrap_wxPageSetupDialogData_SetPaperSize, 1 }, - { "wxPageSetupDialogData_SetPaperId", _wrap_wxPageSetupDialogData_SetPaperId, 1 }, - { "wxPageSetupDialogData_SetMinMarginBottomRight", _wrap_wxPageSetupDialogData_SetMinMarginBottomRight, 1 }, - { "wxPageSetupDialogData_SetMinMarginTopLeft", _wrap_wxPageSetupDialogData_SetMinMarginTopLeft, 1 }, - { "wxPageSetupDialogData_SetMarginBottomRight", _wrap_wxPageSetupDialogData_SetMarginBottomRight, 1 }, - { "wxPageSetupDialogData_SetMarginTopLeft", _wrap_wxPageSetupDialogData_SetMarginTopLeft, 1 }, - { "wxPageSetupDialogData_SetDefaultMinMargins", _wrap_wxPageSetupDialogData_SetDefaultMinMargins, 1 }, - { "wxPageSetupDialogData_SetDefaultInfo", _wrap_wxPageSetupDialogData_SetDefaultInfo, 1 }, - { "wxPageSetupDialogData_GetPrintData", _wrap_wxPageSetupDialogData_GetPrintData, 1 }, - { "wxPageSetupDialogData_GetPaperSize", _wrap_wxPageSetupDialogData_GetPaperSize, 1 }, - { "wxPageSetupDialogData_GetPaperId", _wrap_wxPageSetupDialogData_GetPaperId, 1 }, - { "wxPageSetupDialogData_GetMinMarginBottomRight", _wrap_wxPageSetupDialogData_GetMinMarginBottomRight, 1 }, - { "wxPageSetupDialogData_GetMinMarginTopLeft", _wrap_wxPageSetupDialogData_GetMinMarginTopLeft, 1 }, - { "wxPageSetupDialogData_GetMarginBottomRight", _wrap_wxPageSetupDialogData_GetMarginBottomRight, 1 }, - { "wxPageSetupDialogData_GetMarginTopLeft", _wrap_wxPageSetupDialogData_GetMarginTopLeft, 1 }, - { "wxPageSetupDialogData_GetDefaultInfo", _wrap_wxPageSetupDialogData_GetDefaultInfo, 1 }, - { "wxPageSetupDialogData_GetEnableHelp", _wrap_wxPageSetupDialogData_GetEnableHelp, 1 }, - { "wxPageSetupDialogData_GetEnablePrinter", _wrap_wxPageSetupDialogData_GetEnablePrinter, 1 }, - { "wxPageSetupDialogData_GetEnablePaper", _wrap_wxPageSetupDialogData_GetEnablePaper, 1 }, - { "wxPageSetupDialogData_GetEnableOrientation", _wrap_wxPageSetupDialogData_GetEnableOrientation, 1 }, - { "wxPageSetupDialogData_GetEnableMargins", _wrap_wxPageSetupDialogData_GetEnableMargins, 1 }, - { "wxPageSetupDialogData_GetDefaultMinMargins", _wrap_wxPageSetupDialogData_GetDefaultMinMargins, 1 }, - { "wxPageSetupDialogData_EnablePrinter", _wrap_wxPageSetupDialogData_EnablePrinter, 1 }, - { "wxPageSetupDialogData_EnablePaper", _wrap_wxPageSetupDialogData_EnablePaper, 1 }, - { "wxPageSetupDialogData_EnableOrientation", _wrap_wxPageSetupDialogData_EnableOrientation, 1 }, - { "wxPageSetupDialogData_EnableMargins", _wrap_wxPageSetupDialogData_EnableMargins, 1 }, - { "wxPageSetupDialogData_EnableHelp", _wrap_wxPageSetupDialogData_EnableHelp, 1 }, - { "delete_wxPageSetupDialogData", _wrap_delete_wxPageSetupDialogData, 1 }, - { "new_wxPageSetupDialogData", _wrap_new_wxPageSetupDialogData, 1 }, - { "wxFontDialog_ShowModal", _wrap_wxFontDialog_ShowModal, 1 }, - { "wxFontDialog_GetFontData", _wrap_wxFontDialog_GetFontData, 1 }, - { "new_wxFontDialog", _wrap_new_wxFontDialog, 1 }, - { "wxFontData_SetShowHelp", _wrap_wxFontData_SetShowHelp, 1 }, - { "wxFontData_SetRange", _wrap_wxFontData_SetRange, 1 }, - { "wxFontData_SetInitialFont", _wrap_wxFontData_SetInitialFont, 1 }, - { "wxFontData_SetColour", _wrap_wxFontData_SetColour, 1 }, - { "wxFontData_SetChosenFont", _wrap_wxFontData_SetChosenFont, 1 }, - { "wxFontData_SetAllowSymbols", _wrap_wxFontData_SetAllowSymbols, 1 }, - { "wxFontData_GetShowHelp", _wrap_wxFontData_GetShowHelp, 1 }, - { "wxFontData_GetInitialFont", _wrap_wxFontData_GetInitialFont, 1 }, - { "wxFontData_GetEnableEffects", _wrap_wxFontData_GetEnableEffects, 1 }, - { "wxFontData_GetChosenFont", _wrap_wxFontData_GetChosenFont, 1 }, - { "wxFontData_GetColour", _wrap_wxFontData_GetColour, 1 }, - { "wxFontData_GetAllowSymbols", _wrap_wxFontData_GetAllowSymbols, 1 }, - { "wxFontData_EnableEffects", _wrap_wxFontData_EnableEffects, 1 }, - { "delete_wxFontData", _wrap_delete_wxFontData, 1 }, - { "new_wxFontData", _wrap_new_wxFontData, 1 }, - { "wxTextEntryDialog_ShowModal", _wrap_wxTextEntryDialog_ShowModal, 1 }, - { "wxTextEntryDialog_SetValue", _wrap_wxTextEntryDialog_SetValue, 1 }, - { "wxTextEntryDialog_GetValue", _wrap_wxTextEntryDialog_GetValue, 1 }, - { "new_wxTextEntryDialog", _wrap_new_wxTextEntryDialog, 1 }, - { "wxSingleChoiceDialog_ShowModal", _wrap_wxSingleChoiceDialog_ShowModal, 1 }, - { "wxSingleChoiceDialog_SetSelection", _wrap_wxSingleChoiceDialog_SetSelection, 1 }, - { "wxSingleChoiceDialog_GetStringSelection", _wrap_wxSingleChoiceDialog_GetStringSelection, 1 }, - { "wxSingleChoiceDialog_GetSelection", _wrap_wxSingleChoiceDialog_GetSelection, 1 }, - { "new_wxSingleChoiceDialog", _wrap_new_wxSingleChoiceDialog, 1 }, - { "wxFileDialog_ShowModal", _wrap_wxFileDialog_ShowModal, 1 }, - { "wxFileDialog_SetWildcard", _wrap_wxFileDialog_SetWildcard, 1 }, - { "wxFileDialog_SetStyle", _wrap_wxFileDialog_SetStyle, 1 }, - { "wxFileDialog_SetPath", _wrap_wxFileDialog_SetPath, 1 }, - { "wxFileDialog_SetMessage", _wrap_wxFileDialog_SetMessage, 1 }, - { "wxFileDialog_SetFilterIndex", _wrap_wxFileDialog_SetFilterIndex, 1 }, - { "wxFileDialog_SetFilename", _wrap_wxFileDialog_SetFilename, 1 }, - { "wxFileDialog_SetDirectory", _wrap_wxFileDialog_SetDirectory, 1 }, - { "wxFileDialog_GetWildcard", _wrap_wxFileDialog_GetWildcard, 1 }, - { "wxFileDialog_GetStyle", _wrap_wxFileDialog_GetStyle, 1 }, - { "wxFileDialog_GetPath", _wrap_wxFileDialog_GetPath, 1 }, - { "wxFileDialog_GetMessage", _wrap_wxFileDialog_GetMessage, 1 }, - { "wxFileDialog_GetFilterIndex", _wrap_wxFileDialog_GetFilterIndex, 1 }, - { "wxFileDialog_GetFilename", _wrap_wxFileDialog_GetFilename, 1 }, - { "wxFileDialog_GetDirectory", _wrap_wxFileDialog_GetDirectory, 1 }, - { "new_wxFileDialog", _wrap_new_wxFileDialog, 1 }, - { "wxDirDialog_ShowModal", _wrap_wxDirDialog_ShowModal, 1 }, - { "wxDirDialog_SetPath", _wrap_wxDirDialog_SetPath, 1 }, - { "wxDirDialog_SetMessage", _wrap_wxDirDialog_SetMessage, 1 }, - { "wxDirDialog_GetStyle", _wrap_wxDirDialog_GetStyle, 1 }, - { "wxDirDialog_GetMessage", _wrap_wxDirDialog_GetMessage, 1 }, - { "wxDirDialog_GetPath", _wrap_wxDirDialog_GetPath, 1 }, - { "new_wxDirDialog", _wrap_new_wxDirDialog, 1 }, - { "wxColourDialog_ShowModal", _wrap_wxColourDialog_ShowModal, 1 }, - { "wxColourDialog_GetColourData", _wrap_wxColourDialog_GetColourData, 1 }, - { "new_wxColourDialog", _wrap_new_wxColourDialog, 1 }, - { "wxColourData_SetCustomColour", _wrap_wxColourData_SetCustomColour, 1 }, - { "wxColourData_SetColour", _wrap_wxColourData_SetColour, 1 }, - { "wxColourData_SetChooseFull", _wrap_wxColourData_SetChooseFull, 1 }, - { "wxColourData_GetCustomColour", _wrap_wxColourData_GetCustomColour, 1 }, - { "wxColourData_GetColour", _wrap_wxColourData_GetColour, 1 }, - { "wxColourData_GetChooseFull", _wrap_wxColourData_GetChooseFull, 1 }, - { "delete_wxColourData", _wrap_delete_wxColourData, 1 }, - { "new_wxColourData", _wrap_new_wxColourData, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initcmndlgsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("cmndlgsc", cmndlgscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",0); - SWIG_RegisterMapping("_class_wxPageSetupDialogData","_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxPrintDialogData","_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxPageSetupDialog","_class_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",0); - SWIG_RegisterMapping("_wxTextEntryDialog","_class_wxTextEntryDialog",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxDirDialog","_wxDirDialog",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_class_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxMessageDialog",SwigwxMessageDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPrintDialog",SwigwxPrintDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPageSetupDialog",SwigwxPageSetupDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxFontDialog",SwigwxFontDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxTextEntryDialog",SwigwxTextEntryDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxFileDialog",SwigwxFileDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxDirDialog",SwigwxDirDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_class_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxColourDialog",SwigwxColourDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxMessageDialog","_wxMessageDialog",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_wxFileDialog","_class_wxFileDialog",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxPrintDialogData","_class_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxPrintDialog","_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxMessageDialog",SwigwxMessageDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxPrintDialog",SwigwxPrintDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxPageSetupDialog",SwigwxPageSetupDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxFontDialog",SwigwxFontDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxTextEntryDialog",SwigwxTextEntryDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxFileDialog",SwigwxFileDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxDirDialog",SwigwxDirDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_wxColourDialog",SwigwxColourDialogTowxDialog); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_class_wxFileDialog","_wxFileDialog",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxPageSetupDialog","_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxDirDialog","_class_wxDirDialog",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMessageDialog",SwigwxMessageDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPrintDialog",SwigwxPrintDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPageSetupDialog",SwigwxPageSetupDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxFontDialog",SwigwxFontDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTextEntryDialog",SwigwxTextEntryDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxFileDialog",SwigwxFileDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxDirDialog",SwigwxDirDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxColourDialog",SwigwxColourDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxColourDialog","_wxColourDialog",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxTextEntryDialog","_wxTextEntryDialog",0); - SWIG_RegisterMapping("_wxColourData","_class_wxColourData",0); - SWIG_RegisterMapping("_wxPageSetupDialogData","_class_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxFontDialog","_wxFontDialog",0); - SWIG_RegisterMapping("_wxWindow","_class_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMessageDialog",SwigwxMessageDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxPrintDialog",SwigwxPrintDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxPageSetupDialog",SwigwxPageSetupDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxFontDialog",SwigwxFontDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxTextEntryDialog",SwigwxTextEntryDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSingleChoiceDialog",SwigwxSingleChoiceDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxFileDialog",SwigwxFileDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxDirDialog",SwigwxDirDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxColourDialog",SwigwxColourDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/msw/cmndlgs.py b/utils/wxPython/src/msw/cmndlgs.py deleted file mode 100644 index ec9137a497..0000000000 --- a/utils/wxPython/src/msw/cmndlgs.py +++ /dev/null @@ -1,603 +0,0 @@ -# This file was created automatically by SWIG. -import cmndlgsc - -from misc import * - -from gdi import * - -from windows import * -import wx -class wxColourDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxColourData(self.this) - def GetChooseFull(self): - val = cmndlgsc.wxColourData_GetChooseFull(self.this) - return val - def GetColour(self): - val = cmndlgsc.wxColourData_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetCustomColour(self,arg0): - val = cmndlgsc.wxColourData_GetCustomColour(self.this,arg0) - val = wxColourPtr(val) - val.thisown = 1 - return val - def SetChooseFull(self,arg0): - val = cmndlgsc.wxColourData_SetChooseFull(self.this,arg0) - return val - def SetColour(self,arg0): - val = cmndlgsc.wxColourData_SetColour(self.this,arg0.this) - return val - def SetCustomColour(self,arg0,arg1): - val = cmndlgsc.wxColourData_SetCustomColour(self.this,arg0,arg1.this) - return val - def __repr__(self): - return "" -class wxColourData(wxColourDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxColourData() - self.thisown = 1 - - - - -class wxColourDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColourData(self): - val = cmndlgsc.wxColourDialog_GetColourData(self.this) - val = wxColourDataPtr(val) - return val - def ShowModal(self): - val = cmndlgsc.wxColourDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxColourDialog(wxColourDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxColourDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxDirDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPath(self): - val = cmndlgsc.wxDirDialog_GetPath(self.this) - return val - def GetMessage(self): - val = cmndlgsc.wxDirDialog_GetMessage(self.this) - return val - def GetStyle(self): - val = cmndlgsc.wxDirDialog_GetStyle(self.this) - return val - def SetMessage(self,arg0): - val = cmndlgsc.wxDirDialog_SetMessage(self.this,arg0) - return val - def SetPath(self,arg0): - val = cmndlgsc.wxDirDialog_SetPath(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxDirDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxDirDialog(wxDirDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[3] = argl[3].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxDirDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFileDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDirectory(self): - val = cmndlgsc.wxFileDialog_GetDirectory(self.this) - return val - def GetFilename(self): - val = cmndlgsc.wxFileDialog_GetFilename(self.this) - return val - def GetFilterIndex(self): - val = cmndlgsc.wxFileDialog_GetFilterIndex(self.this) - return val - def GetMessage(self): - val = cmndlgsc.wxFileDialog_GetMessage(self.this) - return val - def GetPath(self): - val = cmndlgsc.wxFileDialog_GetPath(self.this) - return val - def GetStyle(self): - val = cmndlgsc.wxFileDialog_GetStyle(self.this) - return val - def GetWildcard(self): - val = cmndlgsc.wxFileDialog_GetWildcard(self.this) - return val - def SetDirectory(self,arg0): - val = cmndlgsc.wxFileDialog_SetDirectory(self.this,arg0) - return val - def SetFilename(self,arg0): - val = cmndlgsc.wxFileDialog_SetFilename(self.this,arg0) - return val - def SetFilterIndex(self,arg0): - val = cmndlgsc.wxFileDialog_SetFilterIndex(self.this,arg0) - return val - def SetMessage(self,arg0): - val = cmndlgsc.wxFileDialog_SetMessage(self.this,arg0) - return val - def SetPath(self,arg0): - val = cmndlgsc.wxFileDialog_SetPath(self.this,arg0) - return val - def SetStyle(self,arg0): - val = cmndlgsc.wxFileDialog_SetStyle(self.this,arg0) - return val - def SetWildcard(self,arg0): - val = cmndlgsc.wxFileDialog_SetWildcard(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxFileDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxFileDialog(wxFileDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[5] = argl[5].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxFileDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxSingleChoiceDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self): - val = cmndlgsc.wxSingleChoiceDialog_GetSelection(self.this) - return val - def GetStringSelection(self): - val = cmndlgsc.wxSingleChoiceDialog_GetStringSelection(self.this) - return val - def SetSelection(self,arg0): - val = cmndlgsc.wxSingleChoiceDialog_SetSelection(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxSingleChoiceDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxSingleChoiceDialog(wxSingleChoiceDialogPtr): - def __init__(self,arg0,arg1,arg2,arg3,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxSingleChoiceDialog,(arg0.this,arg1,arg2,arg3,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxTextEntryDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self): - val = cmndlgsc.wxTextEntryDialog_GetValue(self.this) - return val - def SetValue(self,arg0): - val = cmndlgsc.wxTextEntryDialog_SetValue(self.this,arg0) - return val - def ShowModal(self): - val = cmndlgsc.wxTextEntryDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxTextEntryDialog(wxTextEntryDialogPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[3] = argl[3].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxTextEntryDialog,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxFontDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxFontData(self.this) - def EnableEffects(self,arg0): - val = cmndlgsc.wxFontData_EnableEffects(self.this,arg0) - return val - def GetAllowSymbols(self): - val = cmndlgsc.wxFontData_GetAllowSymbols(self.this) - return val - def GetColour(self): - val = cmndlgsc.wxFontData_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetChosenFont(self): - val = cmndlgsc.wxFontData_GetChosenFont(self.this) - val = wxFontPtr(val) - val.thisown = 1 - return val - def GetEnableEffects(self): - val = cmndlgsc.wxFontData_GetEnableEffects(self.this) - return val - def GetInitialFont(self): - val = cmndlgsc.wxFontData_GetInitialFont(self.this) - val = wxFontPtr(val) - val.thisown = 1 - return val - def GetShowHelp(self): - val = cmndlgsc.wxFontData_GetShowHelp(self.this) - return val - def SetAllowSymbols(self,arg0): - val = cmndlgsc.wxFontData_SetAllowSymbols(self.this,arg0) - return val - def SetChosenFont(self,arg0): - val = cmndlgsc.wxFontData_SetChosenFont(self.this,arg0.this) - return val - def SetColour(self,arg0): - val = cmndlgsc.wxFontData_SetColour(self.this,arg0.this) - return val - def SetInitialFont(self,arg0): - val = cmndlgsc.wxFontData_SetInitialFont(self.this,arg0.this) - return val - def SetRange(self,arg0,arg1): - val = cmndlgsc.wxFontData_SetRange(self.this,arg0,arg1) - return val - def SetShowHelp(self,arg0): - val = cmndlgsc.wxFontData_SetShowHelp(self.this,arg0) - return val - def __repr__(self): - return "" -class wxFontData(wxFontDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxFontData() - self.thisown = 1 - - - - -class wxFontDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFontData(self): - val = cmndlgsc.wxFontDialog_GetFontData(self.this) - val = wxFontDataPtr(val) - return val - def ShowModal(self): - val = cmndlgsc.wxFontDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxFontDialog(wxFontDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxFontDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPageSetupDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxPageSetupDialogData(self.this) - def EnableHelp(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnableHelp(self.this,arg0) - return val - def EnableMargins(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnableMargins(self.this,arg0) - return val - def EnableOrientation(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnableOrientation(self.this,arg0) - return val - def EnablePaper(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnablePaper(self.this,arg0) - return val - def EnablePrinter(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_EnablePrinter(self.this,arg0) - return val - def GetDefaultMinMargins(self): - val = cmndlgsc.wxPageSetupDialogData_GetDefaultMinMargins(self.this) - return val - def GetEnableMargins(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnableMargins(self.this) - return val - def GetEnableOrientation(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnableOrientation(self.this) - return val - def GetEnablePaper(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnablePaper(self.this) - return val - def GetEnablePrinter(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnablePrinter(self.this) - return val - def GetEnableHelp(self): - val = cmndlgsc.wxPageSetupDialogData_GetEnableHelp(self.this) - return val - def GetDefaultInfo(self): - val = cmndlgsc.wxPageSetupDialogData_GetDefaultInfo(self.this) - return val - def GetMarginTopLeft(self): - val = cmndlgsc.wxPageSetupDialogData_GetMarginTopLeft(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetMarginBottomRight(self): - val = cmndlgsc.wxPageSetupDialogData_GetMarginBottomRight(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetMinMarginTopLeft(self): - val = cmndlgsc.wxPageSetupDialogData_GetMinMarginTopLeft(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetMinMarginBottomRight(self): - val = cmndlgsc.wxPageSetupDialogData_GetMinMarginBottomRight(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetPaperId(self): - val = cmndlgsc.wxPageSetupDialogData_GetPaperId(self.this) - return val - def GetPaperSize(self): - val = cmndlgsc.wxPageSetupDialogData_GetPaperSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetPrintData(self): - val = cmndlgsc.wxPageSetupDialogData_GetPrintData(self.this) - val = wxPrintDataPtr(val) - return val - def SetDefaultInfo(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetDefaultInfo(self.this,arg0) - return val - def SetDefaultMinMargins(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetDefaultMinMargins(self.this,arg0) - return val - def SetMarginTopLeft(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMarginTopLeft(self.this,arg0.this) - return val - def SetMarginBottomRight(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMarginBottomRight(self.this,arg0.this) - return val - def SetMinMarginTopLeft(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMinMarginTopLeft(self.this,arg0.this) - return val - def SetMinMarginBottomRight(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetMinMarginBottomRight(self.this,arg0.this) - return val - def SetPaperId(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetPaperId(self.this,arg0) - return val - def SetPaperSize(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetPaperSize(self.this,arg0.this) - return val - def SetPrintData(self,arg0): - val = cmndlgsc.wxPageSetupDialogData_SetPrintData(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxPageSetupDialogData(wxPageSetupDialogDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxPageSetupDialogData() - self.thisown = 1 - - - - -class wxPageSetupDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPageSetupData(self): - val = cmndlgsc.wxPageSetupDialog_GetPageSetupData(self.this) - val = wxPageSetupDialogDataPtr(val) - return val - def ShowModal(self): - val = cmndlgsc.wxPageSetupDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxPageSetupDialog(wxPageSetupDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxPageSetupDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxPrintDialogDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - cmndlgsc.delete_wxPrintDialogData(self.this) - def EnableHelp(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnableHelp(self.this,arg0) - return val - def EnablePageNumbers(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnablePageNumbers(self.this,arg0) - return val - def EnablePrintToFile(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnablePrintToFile(self.this,arg0) - return val - def EnableSelection(self,arg0): - val = cmndlgsc.wxPrintDialogData_EnableSelection(self.this,arg0) - return val - def GetAllPages(self): - val = cmndlgsc.wxPrintDialogData_GetAllPages(self.this) - return val - def GetCollate(self): - val = cmndlgsc.wxPrintDialogData_GetCollate(self.this) - return val - def GetFromPage(self): - val = cmndlgsc.wxPrintDialogData_GetFromPage(self.this) - return val - def GetMaxPage(self): - val = cmndlgsc.wxPrintDialogData_GetMaxPage(self.this) - return val - def GetMinPage(self): - val = cmndlgsc.wxPrintDialogData_GetMinPage(self.this) - return val - def GetNoCopies(self): - val = cmndlgsc.wxPrintDialogData_GetNoCopies(self.this) - return val - def GetPrintData(self): - val = cmndlgsc.wxPrintDialogData_GetPrintData(self.this) - val = wxPrintDataPtr(val) - return val - def GetPrintToFile(self): - val = cmndlgsc.wxPrintDialogData_GetPrintToFile(self.this) - return val - def GetToPage(self): - val = cmndlgsc.wxPrintDialogData_GetToPage(self.this) - return val - def SetCollate(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetCollate(self.this,arg0) - return val - def SetFromPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetFromPage(self.this,arg0) - return val - def SetMaxPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetMaxPage(self.this,arg0) - return val - def SetMinPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetMinPage(self.this,arg0) - return val - def SetNoCopies(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetNoCopies(self.this,arg0) - return val - def SetPrintData(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetPrintData(self.this,arg0.this) - return val - def SetPrintToFile(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetPrintToFile(self.this,arg0) - return val - def SetSetupDialog(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetSetupDialog(self.this,arg0) - return val - def SetToPage(self,arg0): - val = cmndlgsc.wxPrintDialogData_SetToPage(self.this,arg0) - return val - def __repr__(self): - return "" -class wxPrintDialogData(wxPrintDialogDataPtr): - def __init__(self) : - self.this = cmndlgsc.new_wxPrintDialogData() - self.thisown = 1 - - - - -class wxPrintDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPrintDialogData(self): - val = cmndlgsc.wxPrintDialog_GetPrintDialogData(self.this) - val = wxPrintDialogDataPtr(val) - return val - def GetPrintDC(self): - val = cmndlgsc.wxPrintDialog_GetPrintDC(self.this) - val = wxDCPtr(val) - val.thisown = 1 - return val - def ShowModal(self): - val = cmndlgsc.wxPrintDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxPrintDialog(wxPrintDialogPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxPrintDialog,(arg0.this,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxMessageDialogPtr(wxDialogPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ShowModal(self): - val = cmndlgsc.wxMessageDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxMessageDialog(wxMessageDialogPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(cmndlgsc.new_wxMessageDialog,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/controls.cpp b/utils/wxPython/src/msw/controls.cpp deleted file mode 100644 index 2154930724..0000000000 --- a/utils/wxPython/src/msw/controls.cpp +++ /dev/null @@ -1,6857 +0,0 @@ -/* - * FILE : msw/controls.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initcontrolsc - -#define SWIG_name "controlsc" - -#include "helpers.h" -#include -#include -#include - -#ifdef __WXMSW__ -#if wxUSE_OWNER_DRAWN -#include -#endif -#endif - -#ifdef __WXGTK__ -#include -#endif - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -wxValidator wxPyDefaultValidator; // Non-const default because of SWIG -static void *SwigwxControlTowxWindow(void *ptr) { - wxControl *src; - wxWindow *dest; - src = (wxControl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxControlTowxEvtHandler(void *ptr) { - wxControl *src; - wxEvtHandler *dest; - src = (wxControl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define wxControl_Command(_swigobj,_swigarg0) (_swigobj->Command(_swigarg0)) -static PyObject *_wrap_wxControl_Command(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxControl * _arg0; - wxCommandEvent * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxControl_Command",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_Command. Expected _wxControl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxControl_Command. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxControl_Command(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxControl_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxControl_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxControl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxControl_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_GetLabel. Expected _wxControl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxControl_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxControl_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxControl_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxControl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxControl_SetLabel",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxControl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxControl_SetLabel. Expected _wxControl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxControl_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxButtonTowxControl(void *ptr) { - wxButton *src; - wxControl *dest; - src = (wxButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxButtonTowxWindow(void *ptr) { - wxButton *src; - wxWindow *dest; - src = (wxButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxButtonTowxEvtHandler(void *ptr) { - wxButton *src; - wxEvtHandler *dest; - src = (wxButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "button"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|sslss:new_wxButton",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxButton. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxButton. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxButton *)new_wxButton(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxButton_SetDefault(_swigobj) (_swigobj->SetDefault()) -static PyObject *_wrap_wxButton_SetDefault(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxButton_SetDefault",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxButton_SetDefault. Expected _wxButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxButton_SetDefault(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxBitmapButtonTowxButton(void *ptr) { - wxBitmapButton *src; - wxButton *dest; - src = (wxBitmapButton *) ptr; - dest = (wxButton *) src; - return (void *) dest; -} - -static void *SwigwxBitmapButtonTowxControl(void *ptr) { - wxBitmapButton *src; - wxControl *dest; - src = (wxBitmapButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxBitmapButtonTowxWindow(void *ptr) { - wxBitmapButton *src; - wxWindow *dest; - src = (wxBitmapButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxBitmapButtonTowxEvtHandler(void *ptr) { - wxBitmapButton *src; - wxEvtHandler *dest; - src = (wxBitmapButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxBitmapButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxBitmapButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxBitmapButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxBitmap * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxBU_AUTODRAW); - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "button"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|sslss:new_wxBitmapButton",&_argc0,&_arg1,&_argc2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxBitmapButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxBitmapButton. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxBitmapButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxBitmapButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxBitmapButton. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmapButton *)new_wxBitmapButton(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmapButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapLabel(_swigobj) (_swigobj->GetBitmapLabel()) -static PyObject *_wrap_wxBitmapButton_GetBitmapLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapLabel. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapLabel(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapDisabled(_swigobj) (_swigobj->GetBitmapDisabled()) -static PyObject *_wrap_wxBitmapButton_GetBitmapDisabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapDisabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapDisabled. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapDisabled(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapFocus(_swigobj) (_swigobj->GetBitmapFocus()) -static PyObject *_wrap_wxBitmapButton_GetBitmapFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapFocus",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapFocus. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapFocus(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_GetBitmapSelected(_swigobj) (_swigobj->GetBitmapSelected()) -static PyObject *_wrap_wxBitmapButton_GetBitmapSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBitmapButton * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmapButton_GetBitmapSelected",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_GetBitmapSelected. Expected _wxBitmapButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap & _result_ref = wxBitmapButton_GetBitmapSelected(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmapButton_SetBitmapDisabled(_swigobj,_swigarg0) (_swigobj->SetBitmapDisabled(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapDisabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapDisabled",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapDisabled. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapDisabled. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapDisabled(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmapButton_SetBitmapFocus(_swigobj,_swigarg0) (_swigobj->SetBitmapFocus(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapFocus",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapFocus. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapFocus. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapFocus(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmapButton_SetBitmapSelected(_swigobj,_swigarg0) (_swigobj->SetBitmapSelected(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapSelected",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapSelected. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapSelected. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapSelected(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmapButton_SetBitmapLabel(_swigobj,_swigarg0) (_swigobj->SetBitmapLabel(_swigarg0)) -static PyObject *_wrap_wxBitmapButton_SetBitmapLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmapButton * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmapButton_SetBitmapLabel",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmapButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapButton_SetBitmapLabel. Expected _wxBitmapButton_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmapButton_SetBitmapLabel. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmapButton_SetBitmapLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxCheckBoxTowxControl(void *ptr) { - wxCheckBox *src; - wxControl *dest; - src = (wxCheckBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxCheckBoxTowxWindow(void *ptr) { - wxCheckBox *src; - wxWindow *dest; - src = (wxCheckBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxCheckBoxTowxEvtHandler(void *ptr) { - wxCheckBox *src; - wxEvtHandler *dest; - src = (wxCheckBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxCheckBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxCheckBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxCheckBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "checkBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|sslss:new_wxCheckBox",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxCheckBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxCheckBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxCheckBox. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxCheckBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCheckBox *)new_wxCheckBox(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxCheckBox_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxCheckBox_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCheckBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCheckBox_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckBox_GetValue. Expected _wxCheckBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCheckBox_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCheckBox_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxCheckBox_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckBox * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCheckBox_SetValue",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckBox_SetValue. Expected _wxCheckBox_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCheckBox_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxChoiceTowxControl(void *ptr) { - wxChoice *src; - wxControl *dest; - src = (wxChoice *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxChoiceTowxWindow(void *ptr) { - wxChoice *src; - wxWindow *dest; - src = (wxChoice *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxChoiceTowxEvtHandler(void *ptr) { - wxChoice *src; - wxEvtHandler *dest; - src = (wxChoice *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxChoice(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new wxChoice(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8)) -static PyObject *_wrap_new_wxChoice(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - int _arg4 = 0; - wxString * _arg5 = NULL; - long _arg6 = 0; - wxValidator * _arg7 = &wxPyDefaultValidator; - char * _arg8 = "choice"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj5 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssOlss:new_wxChoice",&_argc0,&_arg1,&_argc2,&_argc3,&_obj5,&_arg6,&_argc7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxChoice. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxChoice. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxChoice. Expected _wxSize_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_LIST_helper(_obj5); - if (_arg5 == NULL) { - return NULL; - } -} - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxChoice. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj5) { - _arg4 = PyList_Size(_obj5); - } - else { - _arg4 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxChoice *)new_wxChoice(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxChoice_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg5; -} - return _resultobj; -} - -#define wxChoice_Append(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxChoice_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxChoice_Append",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_Append. Expected _wxChoice_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_Append(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxChoice_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxChoice_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_Clear. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxChoice_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxChoice_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxChoice_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_FindString. Expected _wxChoice_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxChoice_GetColumns(_swigobj) (_swigobj->GetColumns()) -static PyObject *_wrap_wxChoice_GetColumns(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_GetColumns",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetColumns. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_GetColumns(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxChoice_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxChoice_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxChoice_GetString(_swigobj,_swigarg0) (_swigobj->GetString(_swigarg0)) -static PyObject *_wrap_wxChoice_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxChoice * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxChoice_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetString. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxChoice_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxChoice_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxChoice_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_GetStringSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxChoice_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxChoice_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxChoice_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxChoice * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxChoice_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_Number. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxChoice_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxChoice_SetColumns(_swigobj,_swigarg0) (_swigobj->SetColumns(_swigarg0)) -static PyObject *_wrap_wxChoice_SetColumns(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - int _arg1 = 1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxChoice_SetColumns",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_SetColumns. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_SetColumns(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxChoice_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxChoice_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxChoice_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_SetSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxChoice_SetStringSelection(_swigobj,_swigarg0) (_swigobj->SetStringSelection(_swigarg0)) -static PyObject *_wrap_wxChoice_SetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxChoice * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxChoice_SetStringSelection",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxChoice_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxChoice_SetStringSelection. Expected _wxChoice_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxChoice_SetStringSelection(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxComboBoxTowxControl(void *ptr) { - wxComboBox *src; - wxControl *dest; - src = (wxComboBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxComboBoxTowxWindow(void *ptr) { - wxComboBox *src; - wxWindow *dest; - src = (wxComboBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxComboBoxTowxEvtHandler(void *ptr) { - wxComboBox *src; - wxEvtHandler *dest; - src = (wxComboBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxComboBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9) (new wxComboBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9)) -static PyObject *_wrap_new_wxComboBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - char * _arg2 = ""; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - int _arg5 = 0; - wxString * _arg6 = NULL; - long _arg7 = 0; - wxValidator * _arg8 = &wxPyDefaultValidator; - char * _arg9 = "comboBox"; - char * _argc0 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - PyObject * _obj6 = 0; - char * _argc8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|sssOlss:new_wxComboBox",&_argc0,&_arg1,&_arg2,&_argc3,&_argc4,&_obj6,&_arg7,&_argc8,&_arg9)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxComboBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxComboBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxComboBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj6) -{ - _arg6 = wxString_LIST_helper(_obj6); - if (_arg6 == NULL) { - return NULL; - } -} - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of new_wxComboBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj6) { - _arg5 = PyList_Size(_obj6); - } - else { - _arg5 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxComboBox *)new_wxComboBox(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,_arg6,_arg7,*_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxComboBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg6; -} - return _resultobj; -} - -#define wxComboBox_Append(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxComboBox_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxComboBox_Append",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Append. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Append(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxComboBox_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxComboBox_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Clear. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Copy(_swigobj) (_swigobj->Copy()) -static PyObject *_wrap_wxComboBox_Copy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Copy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Copy. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Copy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Cut(_swigobj) (_swigobj->Cut()) -static PyObject *_wrap_wxComboBox_Cut(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Cut",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Cut. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Cut(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Delete(_swigobj,_swigarg0) (_swigobj->Delete(_swigarg0)) -static PyObject *_wrap_wxComboBox_Delete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxComboBox_Delete",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Delete. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Delete(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxComboBox_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxComboBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxComboBox_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_FindString. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxComboBox_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxComboBox_GetInsertionPoint(_swigobj) (_swigobj->GetInsertionPoint()) -static PyObject *_wrap_wxComboBox_GetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetInsertionPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetInsertionPoint. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxComboBox_GetInsertionPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxComboBox_GetLastPosition(_swigobj) (_swigobj->GetLastPosition()) -static PyObject *_wrap_wxComboBox_GetLastPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetLastPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetLastPosition. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxComboBox_GetLastPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxComboBox_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxComboBox_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetSelection. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxComboBox_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxComboBox_GetString(_swigobj,_swigarg0) (_swigobj->GetString(_swigarg0)) -static PyObject *_wrap_wxComboBox_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxComboBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxComboBox_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetString. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxComboBox_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxComboBox_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxComboBox_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetStringSelection. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxComboBox_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxComboBox_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxComboBox_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_GetValue. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxComboBox_GetValue(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxComboBox_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxComboBox_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Number. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxComboBox_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxComboBox_Paste(_swigobj) (_swigobj->Paste()) -static PyObject *_wrap_wxComboBox_Paste(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_Paste",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Paste. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Paste(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxComboBox_Replace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - long _arg2; - wxString * _arg3; - char * _argc0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllO:wxComboBox_Replace",&_argc0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Replace. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Replace(_arg0,_arg1,_arg2,*_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxComboBox_Remove(_swigobj,_swigarg0,_swigarg1) (_swigobj->Remove(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxComboBox_Remove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxComboBox_Remove",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_Remove. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_Remove(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetInsertionPoint(_swigobj,_swigarg0) (_swigobj->SetInsertionPoint(_swigarg0)) -static PyObject *_wrap_wxComboBox_SetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxComboBox_SetInsertionPoint",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetInsertionPoint. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetInsertionPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetInsertionPointEnd(_swigobj) (_swigobj->SetInsertionPointEnd()) -static PyObject *_wrap_wxComboBox_SetInsertionPointEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxComboBox_SetInsertionPointEnd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetInsertionPointEnd. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetInsertionPointEnd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxComboBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - int _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxComboBox_SetSelection",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetSelection. Expected _wxComboBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetMark(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxComboBox_SetMark(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxComboBox_SetMark",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetMark. Expected _wxComboBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetMark(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxComboBox_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxComboBox_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxComboBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxComboBox_SetValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxComboBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxComboBox_SetValue. Expected _wxComboBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxComboBox_SetValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxGaugeTowxControl(void *ptr) { - wxGauge *src; - wxControl *dest; - src = (wxGauge *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxGaugeTowxWindow(void *ptr) { - wxGauge *src; - wxWindow *dest; - src = (wxGauge *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxGaugeTowxEvtHandler(void *ptr) { - wxGauge *src; - wxEvtHandler *dest; - src = (wxGauge *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxGauge(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxGauge(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxGauge(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _result; - wxWindow * _arg0; - wxWindowID _arg1; - int _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxGA_HORIZONTAL); - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "gauge"; - char * _argc0 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii|sslss:new_wxGauge",&_argc0,&_arg1,&_arg2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGauge. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGauge. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxGauge. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxGauge. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGauge *)new_wxGauge(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGauge_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGauge_GetBezelFace(_swigobj) (_swigobj->GetBezelFace()) -static PyObject *_wrap_wxGauge_GetBezelFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetBezelFace",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetBezelFace. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetBezelFace(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_GetRange(_swigobj) (_swigobj->GetRange()) -static PyObject *_wrap_wxGauge_GetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetRange",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetRange. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetRange(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_GetShadowWidth(_swigobj) (_swigobj->GetShadowWidth()) -static PyObject *_wrap_wxGauge_GetShadowWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetShadowWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetShadowWidth. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetShadowWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxGauge_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGauge * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGauge_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_GetValue. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGauge_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGauge_SetBezelFace(_swigobj,_swigarg0) (_swigobj->SetBezelFace(_swigarg0)) -static PyObject *_wrap_wxGauge_SetBezelFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetBezelFace",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetBezelFace. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetBezelFace(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGauge_SetRange(_swigobj,_swigarg0) (_swigobj->SetRange(_swigarg0)) -static PyObject *_wrap_wxGauge_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetRange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetRange. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetRange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGauge_SetShadowWidth(_swigobj,_swigarg0) (_swigobj->SetShadowWidth(_swigarg0)) -static PyObject *_wrap_wxGauge_SetShadowWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetShadowWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetShadowWidth. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetShadowWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGauge_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxGauge_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGauge * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGauge_SetValue",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGauge_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGauge_SetValue. Expected _wxGauge_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGauge_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxStaticBoxTowxControl(void *ptr) { - wxStaticBox *src; - wxControl *dest; - src = (wxStaticBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticBoxTowxWindow(void *ptr) { - wxStaticBox *src; - wxWindow *dest; - src = (wxStaticBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticBoxTowxEvtHandler(void *ptr) { - wxStaticBox *src; - wxEvtHandler *dest; - src = (wxStaticBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxStaticBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxStaticBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - char * _arg6 = "staticBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxStaticBox",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxStaticBox. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticBox *)new_wxStaticBox(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxStaticTextTowxControl(void *ptr) { - wxStaticText *src; - wxControl *dest; - src = (wxStaticText *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticTextTowxWindow(void *ptr) { - wxStaticText *src; - wxWindow *dest; - src = (wxStaticText *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticTextTowxEvtHandler(void *ptr) { - wxStaticText *src; - wxEvtHandler *dest; - src = (wxStaticText *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticText(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxStaticText(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxStaticText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticText * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - char * _arg6 = "staticText"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxStaticText",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticText. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticText. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxStaticText. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticText *)new_wxStaticText(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticText_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxStaticText_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxStaticText_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxStaticText * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStaticText_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticText_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticText_GetLabel. Expected _wxStaticText_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxStaticText_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxStaticText_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxStaticText_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticText * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxStaticText_SetLabel",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticText_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticText_SetLabel. Expected _wxStaticText_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStaticText_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxListBoxTowxControl(void *ptr) { - wxListBox *src; - wxControl *dest; - src = (wxListBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxListBoxTowxWindow(void *ptr) { - wxListBox *src; - wxWindow *dest; - src = (wxListBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxListBoxTowxEvtHandler(void *ptr) { - wxListBox *src; - wxEvtHandler *dest; - src = (wxListBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new wxListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8)) -static PyObject *_wrap_new_wxListBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - int _arg4; - wxString * _arg5 = NULL; - long _arg6 = 0; - wxValidator * _arg7 = &wxPyDefaultValidator; - char * _arg8 = "listBox"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj5 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssOlss:new_wxListBox",&_argc0,&_arg1,&_argc2,&_argc3,&_obj5,&_arg6,&_argc7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxListBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_LIST_helper(_obj5); - if (_arg5 == NULL) { - return NULL; - } -} - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxListBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj5) { - _arg4 = PyList_Size(_obj5); - } - else { - _arg4 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListBox *)new_wxListBox(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg5; -} - return _resultobj; -} - -#define wxListBox_Append(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxListBox_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_Append",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Append. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Append(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListBox_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxListBox_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Clear. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_Delete(_swigobj,_swigarg0) (_swigobj->Delete(_swigarg0)) -static PyObject *_wrap_wxListBox_Delete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_Delete",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Delete. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Delete(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_Deselect(_swigobj,_swigarg0) (_swigobj->Deselect(_swigarg0)) -static PyObject *_wrap_wxListBox_Deselect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_Deselect",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Deselect. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Deselect(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxListBox_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_FindString. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListBox_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListBox_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxListBox_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_GetSelection. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListBox_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject * wxListBox_GetSelections(wxListBox *self) { - wxArrayInt lst; - self->GetSelections(lst); - PyObject *tup = PyTuple_New(lst.GetCount()); - for(int i=0; iGetString(_swigarg0)) -static PyObject *_wrap_wxListBox_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_GetString. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxListBox_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxListBox_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxListBox_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_GetStringSelection. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxListBox_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxListBox_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxListBox_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListBox_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Number. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListBox_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListBox_Selected(_swigobj,_swigarg0) (_swigobj->Selected(_swigarg0)) -static PyObject *_wrap_wxListBox_Selected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_Selected",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Selected. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListBox_Selected(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListBox_Set(_swigobj,_swigarg0,_swigarg1) (_swigobj->Set(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_Set",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_Set. Expected _wxListBox_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxString_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_Set(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxListBox_SetFirstItem(_swigobj,_swigarg0) (_swigobj->SetFirstItem(_swigarg0)) -static PyObject *_wrap_wxListBox_SetFirstItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListBox_SetFirstItem",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetFirstItem. Expected _wxListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetFirstItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_SetFirstItemStr(_swigobj,_swigarg0) (_swigobj->SetFirstItem(_swigarg0)) -static PyObject *_wrap_wxListBox_SetFirstItemStr(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListBox_SetFirstItemStr",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetFirstItemStr. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetFirstItemStr(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListBox_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxListBox_SetSelection",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetSelection. Expected _wxListBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListBox_SetString(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetString(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_SetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxListBox_SetString",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetString. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetString(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListBox_SetStringSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStringSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListBox_SetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListBox * _arg0; - wxString * _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - PyObject * _obj1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxListBox_SetStringSelection",&_argc0,&_obj1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListBox_SetStringSelection. Expected _wxListBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListBox_SetStringSelection(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxCheckListBoxTowxListBox(void *ptr) { - wxCheckListBox *src; - wxListBox *dest; - src = (wxCheckListBox *) ptr; - dest = (wxListBox *) src; - return (void *) dest; -} - -static void *SwigwxCheckListBoxTowxControl(void *ptr) { - wxCheckListBox *src; - wxControl *dest; - src = (wxCheckListBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxCheckListBoxTowxWindow(void *ptr) { - wxCheckListBox *src; - wxWindow *dest; - src = (wxCheckListBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxCheckListBoxTowxEvtHandler(void *ptr) { - wxCheckListBox *src; - wxEvtHandler *dest; - src = (wxCheckListBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxCheckListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8) (new wxCheckListBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8)) -static PyObject *_wrap_new_wxCheckListBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckListBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - int _arg4 = 0; - wxString * _arg5 = NULL; - long _arg6 = 0; - wxValidator * _arg7 = &wxPyDefaultValidator; - char * _arg8 = "listBox"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj5 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssOlss:new_wxCheckListBox",&_argc0,&_arg1,&_argc2,&_argc3,&_obj5,&_arg6,&_argc7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxCheckListBox. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxCheckListBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxCheckListBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj5) -{ - _arg5 = wxString_LIST_helper(_obj5); - if (_arg5 == NULL) { - return NULL; - } -} - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxCheckListBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj5) { - _arg4 = PyList_Size(_obj5); - } - else { - _arg4 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCheckListBox *)new_wxCheckListBox(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCheckListBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg5; -} - return _resultobj; -} - -#define wxCheckListBox_IsChecked(_swigobj,_swigarg0) (_swigobj->IsChecked(_swigarg0)) -static PyObject *_wrap_wxCheckListBox_IsChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCheckListBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCheckListBox_IsChecked",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckListBox_IsChecked. Expected _wxCheckListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCheckListBox_IsChecked(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCheckListBox_Check(_swigobj,_swigarg0,_swigarg1) (_swigobj->Check(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxCheckListBox_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCheckListBox * _arg0; - int _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxCheckListBox_Check",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckListBox_Check. Expected _wxCheckListBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCheckListBox_Check(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCheckListBox_GetItemHeight(_swigobj) (_swigobj->GetItemHeight()) -static PyObject *_wrap_wxCheckListBox_GetItemHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCheckListBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCheckListBox_GetItemHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCheckListBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCheckListBox_GetItemHeight. Expected _wxCheckListBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCheckListBox_GetItemHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxTextCtrlTowxControl(void *ptr) { - wxTextCtrl *src; - wxControl *dest; - src = (wxTextCtrl *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxTextCtrlTowxWindow(void *ptr) { - wxTextCtrl *src; - wxWindow *dest; - src = (wxTextCtrl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxTextCtrlTowxEvtHandler(void *ptr) { - wxTextCtrl *src; - wxEvtHandler *dest; - src = (wxTextCtrl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTextCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxTextCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxTextCtrl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxWindow * _arg0; - wxWindowID _arg1; - char * _arg2 = ""; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "text"; - char * _argc0 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssslss:new_wxTextCtrl",&_argc0,&_arg1,&_arg2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTextCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTextCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxTextCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxTextCtrl. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)new_wxTextCtrl(_arg0,_arg1,_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTextCtrl_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxTextCtrl_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Clear. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_Copy(_swigobj) (_swigobj->Copy()) -static PyObject *_wrap_wxTextCtrl_Copy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Copy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Copy. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Copy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_Cut(_swigobj) (_swigobj->Cut()) -static PyObject *_wrap_wxTextCtrl_Cut(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Cut",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Cut. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Cut(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_DiscardEdits(_swigobj) (_swigobj->DiscardEdits()) -static PyObject *_wrap_wxTextCtrl_DiscardEdits(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_DiscardEdits",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_DiscardEdits. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_DiscardEdits(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_GetInsertionPoint(_swigobj) (_swigobj->GetInsertionPoint()) -static PyObject *_wrap_wxTextCtrl_GetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetInsertionPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetInsertionPoint. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxTextCtrl_GetInsertionPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxTextCtrl_GetLastPosition(_swigobj) (_swigobj->GetLastPosition()) -static PyObject *_wrap_wxTextCtrl_GetLastPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetLastPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetLastPosition. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxTextCtrl_GetLastPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxTextCtrl_GetLineLength(_swigobj,_swigarg0) (_swigobj->GetLineLength(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_GetLineLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_GetLineLength",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetLineLength. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTextCtrl_GetLineLength(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_GetLineText(_swigobj,_swigarg0) (_swigobj->GetLineText(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_GetLineText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_GetLineText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetLineText. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTextCtrl_GetLineText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTextCtrl_GetNumberOfLines(_swigobj) (_swigobj->GetNumberOfLines()) -static PyObject *_wrap_wxTextCtrl_GetNumberOfLines(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetNumberOfLines",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetNumberOfLines. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTextCtrl_GetNumberOfLines(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxTextCtrl_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetValue. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTextCtrl_GetValue(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTextCtrl_IsModified(_swigobj) (_swigobj->IsModified()) -static PyObject *_wrap_wxTextCtrl_IsModified(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_IsModified",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_IsModified. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_IsModified(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_LoadFile(_swigobj,_swigarg0) (_swigobj->LoadFile(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_LoadFile",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_LoadFile. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_LoadFile(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_Paste(_swigobj) (_swigobj->Paste()) -static PyObject *_wrap_wxTextCtrl_Paste(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_Paste",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Paste. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Paste(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_PositionToXY(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PositionToXY(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxTextCtrl_PositionToXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long * _arg2; - long temp; - long * _arg3; - long temp0; - char * _argc0 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_PositionToXY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_PositionToXY. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_PositionToXY(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTextCtrl_Remove(_swigobj,_swigarg0,_swigarg1) (_swigobj->Remove(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_Remove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxTextCtrl_Remove",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Remove. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Remove(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxTextCtrl_Replace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - wxString * _arg3; - char * _argc0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllO:wxTextCtrl_Replace",&_argc0,&_arg1,&_arg2,&_obj3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_Replace. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_Replace(_arg0,_arg1,_arg2,*_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxTextCtrl_SaveFile(_swigobj,_swigarg0) (_swigobj->SaveFile(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SaveFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_SaveFile",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SaveFile. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_SaveFile(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_SetEditable(_swigobj,_swigarg0) (_swigobj->SetEditable(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SetEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxTextCtrl_SetEditable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetEditable. Expected _wxTextCtrl_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetEditable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetInsertionPoint(_swigobj,_swigarg0) (_swigobj->SetInsertionPoint(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SetInsertionPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_SetInsertionPoint",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetInsertionPoint. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetInsertionPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetInsertionPointEnd(_swigobj) (_swigobj->SetInsertionPointEnd()) -static PyObject *_wrap_wxTextCtrl_SetInsertionPointEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_SetInsertionPointEnd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetInsertionPointEnd. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetInsertionPointEnd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxTextCtrl_SetSelection",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetSelection. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_SetValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_SetValue. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_SetValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_ShowPosition(_swigobj,_swigarg0) (_swigobj->ShowPosition(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_ShowPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxTextCtrl_ShowPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_ShowPosition. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_ShowPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTextCtrl_WriteText(_swigobj,_swigarg0) (_swigobj->WriteText(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_WriteText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_WriteText",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_WriteText. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_WriteText(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_AppendText(_swigobj,_swigarg0) (_swigobj->AppendText(_swigarg0)) -static PyObject *_wrap_wxTextCtrl_AppendText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTextCtrl_AppendText",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_AppendText. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_AppendText(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTextCtrl_XYToPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->XYToPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_XYToPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxTextCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxTextCtrl_XYToPosition",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_XYToPosition. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxTextCtrl_XYToPosition(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxTextCtrl_CanCopy(_swigobj) (_swigobj->CanCopy()) -static PyObject *_wrap_wxTextCtrl_CanCopy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanCopy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanCopy. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanCopy(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanCut(_swigobj) (_swigobj->CanCut()) -static PyObject *_wrap_wxTextCtrl_CanCut(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanCut",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanCut. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanCut(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanPaste(_swigobj) (_swigobj->CanPaste()) -static PyObject *_wrap_wxTextCtrl_CanPaste(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanPaste",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanPaste. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanPaste(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanRedo(_swigobj) (_swigobj->CanRedo()) -static PyObject *_wrap_wxTextCtrl_CanRedo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanRedo",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanRedo. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanRedo(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_CanUndo(_swigobj) (_swigobj->CanUndo()) -static PyObject *_wrap_wxTextCtrl_CanUndo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_CanUndo",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_CanUndo. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_CanUndo(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTextCtrl_GetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTextCtrl_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _arg0; - long * _arg1; - long temp; - long * _arg2; - long temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_GetSelection. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTextCtrl_GetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTextCtrl_IsEditable(_swigobj) (_swigobj->IsEditable()) -static PyObject *_wrap_wxTextCtrl_IsEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTextCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTextCtrl_IsEditable",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTextCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTextCtrl_IsEditable. Expected _wxTextCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTextCtrl_IsEditable(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxScrollBarTowxControl(void *ptr) { - wxScrollBar *src; - wxControl *dest; - src = (wxScrollBar *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxScrollBarTowxWindow(void *ptr) { - wxScrollBar *src; - wxWindow *dest; - src = (wxScrollBar *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxScrollBarTowxEvtHandler(void *ptr) { - wxScrollBar *src; - wxEvtHandler *dest; - src = (wxScrollBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxScrollBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxScrollBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxSB_HORIZONTAL); - wxValidator * _arg5 = &wxPyDefaultValidator; - char * _arg6 = "scrollBar"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|isslss:new_wxScrollBar",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_argc5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrollBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrollBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxScrollBar. Expected _wxSize_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxScrollBar. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrollBar *)new_wxScrollBar(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxScrollBar_GetRange(_swigobj) (_swigobj->GetRange()) -static PyObject *_wrap_wxScrollBar_GetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetRange",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetRange. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetRange(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_GetPageSize(_swigobj) (_swigobj->GetPageSize()) -static PyObject *_wrap_wxScrollBar_GetPageSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetPageSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetPageSize. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetPageSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_GetThumbPosition(_swigobj) (_swigobj->GetThumbPosition()) -static PyObject *_wrap_wxScrollBar_GetThumbPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetThumbPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetThumbPosition. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetThumbPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_GetThumbSize(_swigobj) (_swigobj->GetThumbSize()) -static PyObject *_wrap_wxScrollBar_GetThumbSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollBar_GetThumbSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_GetThumbSize. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollBar_GetThumbSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollBar_SetThumbPosition(_swigobj,_swigarg0) (_swigobj->SetThumbPosition(_swigarg0)) -static PyObject *_wrap_wxScrollBar_SetThumbPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxScrollBar_SetThumbPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_SetThumbPosition. Expected _wxScrollBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrollBar_SetThumbPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrollBar_SetScrollbar(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetScrollbar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxScrollBar_SetScrollbar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - bool _arg5 = (1); - char * _argc0 = 0; - int tempbool5; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|i:wxScrollBar_SetScrollbar",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollBar_SetScrollbar. Expected _wxScrollBar_p."); - return NULL; - } - } - _arg5 = (bool ) tempbool5; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrollBar_SetScrollbar(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSpinButtonTowxControl(void *ptr) { - wxSpinButton *src; - wxControl *dest; - src = (wxSpinButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxSpinButtonTowxWindow(void *ptr) { - wxSpinButton *src; - wxWindow *dest; - src = (wxSpinButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSpinButtonTowxEvtHandler(void *ptr) { - wxSpinButton *src; - wxEvtHandler *dest; - src = (wxSpinButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSpinButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSpinButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSpinButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSpinButton * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxSP_HORIZONTAL); - char * _arg5 = "spinButton"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|issls:new_wxSpinButton",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSpinButton. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSpinButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSpinButton. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSpinButton *)new_wxSpinButton(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSpinButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSpinButton_GetMax(_swigobj) (_swigobj->GetMax()) -static PyObject *_wrap_wxSpinButton_GetMax(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSpinButton_GetMax",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_GetMax. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSpinButton_GetMax(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSpinButton_GetMin(_swigobj) (_swigobj->GetMin()) -static PyObject *_wrap_wxSpinButton_GetMin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSpinButton_GetMin",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_GetMin. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSpinButton_GetMin(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSpinButton_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxSpinButton_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSpinButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSpinButton_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_GetValue. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSpinButton_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSpinButton_SetRange(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRange(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSpinButton_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSpinButton * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSpinButton_SetRange",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_SetRange. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSpinButton_SetRange(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSpinButton_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxSpinButton_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSpinButton * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSpinButton_SetValue",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSpinButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSpinButton_SetValue. Expected _wxSpinButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSpinButton_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxStaticBitmapTowxControl(void *ptr) { - wxStaticBitmap *src; - wxControl *dest; - src = (wxStaticBitmap *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxStaticBitmapTowxWindow(void *ptr) { - wxStaticBitmap *src; - wxWindow *dest; - src = (wxStaticBitmap *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStaticBitmapTowxEvtHandler(void *ptr) { - wxStaticBitmap *src; - wxEvtHandler *dest; - src = (wxStaticBitmap *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStaticBitmap(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxStaticBitmap(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxStaticBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBitmap * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxBitmap * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - char * _arg6 = "staticBitmap"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|ssls:new_wxStaticBitmap",&_argc0,&_arg1,&_argc2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStaticBitmap. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStaticBitmap. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStaticBitmap. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxStaticBitmap. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStaticBitmap *)new_wxStaticBitmap(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStaticBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxStaticBitmap_GetBitmap(_swigobj) (_swigobj->GetBitmap()) -static PyObject *_wrap_wxStaticBitmap_GetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxStaticBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStaticBitmap_GetBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_GetBitmap. Expected _wxStaticBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxBitmap & _result_ref = wxStaticBitmap_GetBitmap(_arg0); - _result = (wxBitmap *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxStaticBitmap_SetBitmap(_swigobj,_swigarg0) (_swigobj->SetBitmap(_swigarg0)) -static PyObject *_wrap_wxStaticBitmap_SetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStaticBitmap * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxStaticBitmap_SetBitmap",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStaticBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStaticBitmap_SetBitmap. Expected _wxStaticBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStaticBitmap_SetBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStaticBitmap_SetBitmap(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxRadioBoxTowxControl(void *ptr) { - wxRadioBox *src; - wxControl *dest; - src = (wxRadioBox *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxRadioBoxTowxWindow(void *ptr) { - wxRadioBox *src; - wxWindow *dest; - src = (wxRadioBox *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxRadioBoxTowxEvtHandler(void *ptr) { - wxRadioBox *src; - wxEvtHandler *dest; - src = (wxRadioBox *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxRadioBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9,_swigarg10) (new wxRadioBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9,_swigarg10)) -static PyObject *_wrap_new_wxRadioBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - int _arg5 = 0; - wxString * _arg6 = NULL; - int _arg7 = 0; - long _arg8 = (wxRA_HORIZONTAL); - wxValidator * _arg9 = &wxPyDefaultValidator; - char * _arg10 = "radioBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - PyObject * _obj6 = 0; - char * _argc9 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssOilss:new_wxRadioBox",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_obj6,&_arg7,&_arg8,&_argc9,&_arg10)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxRadioBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioBox. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxRadioBox. Expected _wxSize_p."); - return NULL; - } - } - if (_obj6) -{ - _arg6 = wxString_LIST_helper(_obj6); - if (_arg6 == NULL) { - return NULL; - } -} - if (_argc9) { - if (SWIG_GetPtr(_argc9,(void **) &_arg9,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 10 of new_wxRadioBox. Expected _wxValidator_p."); - return NULL; - } - } -{ - if (_obj6) { - _arg5 = PyList_Size(_obj6); - } - else { - _arg5 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRadioBox *)new_wxRadioBox(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6,_arg7,_arg8,*_arg9,_arg10); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioBox_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} -{ - delete [] _arg6; -} - return _resultobj; -} - -#define wxRadioBox_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxRadioBox_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_Enable. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_EnableItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->Enable(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRadioBox_EnableItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxRadioBox_EnableItem",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_EnableItem. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_EnableItem(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_FindString(_swigobj,_swigarg0) (_swigobj->FindString(_swigarg0)) -static PyObject *_wrap_wxRadioBox_FindString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxRadioBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxRadioBox_FindString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_FindString. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxRadioBox_FindString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxRadioBox_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxRadioBox_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_GetItemLabel(_swigobj,_swigarg0) (_swigobj->GetLabel(_swigarg0)) -static PyObject *_wrap_wxRadioBox_GetItemLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_GetItemLabel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetItemLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetItemLabel(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxRadioBox_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxRadioBox_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRadioBox_GetString(_swigobj,_swigarg0) (_swigobj->GetString(_swigarg0)) -static PyObject *_wrap_wxRadioBox_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_GetString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetString. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_GetStringSelection(_swigobj) (_swigobj->GetStringSelection()) -static PyObject *_wrap_wxRadioBox_GetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_GetStringSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_GetStringSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxRadioBox_GetStringSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxRadioBox_Number(_swigobj) (_swigobj->Number()) -static PyObject *_wrap_wxRadioBox_Number(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxRadioBox * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioBox_Number",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_Number. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxRadioBox_Number(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRadioBox_SetLabel(_swigobj,_swigarg0) (_swigobj->SetLabel(_swigarg0)) -static PyObject *_wrap_wxRadioBox_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxRadioBox_SetLabel",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxRadioBox_SetItemLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRadioBox_SetItemLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxRadioBox_SetItemLabel",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetItemLabel. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetItemLabel(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxRadioBox_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxRadioBox_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_SetStringSelection(_swigobj,_swigarg0) (_swigobj->SetStringSelection(_swigarg0)) -static PyObject *_wrap_wxRadioBox_SetStringSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxRadioBox_SetStringSelection",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_SetStringSelection. Expected _wxRadioBox_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_SetStringSelection(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxRadioBox_Show(_swigobj,_swigarg0) (_swigobj->Show(_swigarg0)) -static PyObject *_wrap_wxRadioBox_Show(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioBox_Show",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_Show. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_Show(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRadioBox_ShowItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->Show(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRadioBox_ShowItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioBox * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxRadioBox_ShowItem",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioBox_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioBox_ShowItem. Expected _wxRadioBox_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioBox_ShowItem(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxRadioButtonTowxControl(void *ptr) { - wxRadioButton *src; - wxControl *dest; - src = (wxRadioButton *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxRadioButtonTowxWindow(void *ptr) { - wxRadioButton *src; - wxWindow *dest; - src = (wxRadioButton *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxRadioButtonTowxEvtHandler(void *ptr) { - wxRadioButton *src; - wxEvtHandler *dest; - src = (wxRadioButton *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxRadioButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxRadioButton(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxRadioButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioButton * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = 0; - wxValidator * _arg6 = &wxPyDefaultValidator; - char * _arg7 = "radioButton"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|sslss:new_wxRadioButton",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_argc6,&_arg7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxRadioButton. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxRadioButton. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxRadioButton. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxRadioButton. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRadioButton *)new_wxRadioButton(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,*_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRadioButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxRadioButton_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxRadioButton_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRadioButton * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRadioButton_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioButton_GetValue. Expected _wxRadioButton_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRadioButton_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRadioButton_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxRadioButton_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRadioButton * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxRadioButton_SetValue",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRadioButton_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRadioButton_SetValue. Expected _wxRadioButton_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRadioButton_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSliderTowxControl(void *ptr) { - wxSlider *src; - wxControl *dest; - src = (wxSlider *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxSliderTowxWindow(void *ptr) { - wxSlider *src; - wxWindow *dest; - src = (wxSlider *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSliderTowxEvtHandler(void *ptr) { - wxSlider *src; - wxEvtHandler *dest; - src = (wxSlider *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSlider(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9) (new wxSlider(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7,_swigarg8,_swigarg9)) -static PyObject *_wrap_new_wxSlider(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _result; - wxWindow * _arg0; - wxWindowID _arg1; - int _arg2; - int _arg3; - int _arg4; - wxPoint * _arg5 = &wxPyDefaultPosition; - wxSize * _arg6 = &wxPyDefaultSize; - long _arg7 = (wxSL_HORIZONTAL); - wxValidator * _arg8 = &wxPyDefaultValidator; - char * _arg9 = "slider"; - char * _argc0 = 0; - char * _argc5 = 0; - char * _argc6 = 0; - char * _argc8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|sslss:new_wxSlider",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5,&_argc6,&_arg7,&_argc8,&_arg9)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSlider. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxSlider. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxSlider. Expected _wxSize_p."); - return NULL; - } - } - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of new_wxSlider. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSlider *)new_wxSlider(_arg0,_arg1,_arg2,_arg3,_arg4,*_arg5,*_arg6,_arg7,*_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSlider_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSlider_ClearSel(_swigobj) (_swigobj->ClearSel()) -static PyObject *_wrap_wxSlider_ClearSel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_ClearSel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_ClearSel. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_ClearSel(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_ClearTicks(_swigobj) (_swigobj->ClearTicks()) -static PyObject *_wrap_wxSlider_ClearTicks(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_ClearTicks",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_ClearTicks. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_ClearTicks(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_GetLineSize(_swigobj) (_swigobj->GetLineSize()) -static PyObject *_wrap_wxSlider_GetLineSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetLineSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetLineSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetLineSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetMax(_swigobj) (_swigobj->GetMax()) -static PyObject *_wrap_wxSlider_GetMax(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetMax",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetMax. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetMax(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetMin(_swigobj) (_swigobj->GetMin()) -static PyObject *_wrap_wxSlider_GetMin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetMin",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetMin. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetMin(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetPageSize(_swigobj) (_swigobj->GetPageSize()) -static PyObject *_wrap_wxSlider_GetPageSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetPageSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetPageSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetPageSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetSelEnd(_swigobj) (_swigobj->GetSelEnd()) -static PyObject *_wrap_wxSlider_GetSelEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetSelEnd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetSelEnd. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetSelEnd(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetSelStart(_swigobj) (_swigobj->GetSelStart()) -static PyObject *_wrap_wxSlider_GetSelStart(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetSelStart",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetSelStart. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetSelStart(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetThumbLength(_swigobj) (_swigobj->GetThumbLength()) -static PyObject *_wrap_wxSlider_GetThumbLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetThumbLength",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetThumbLength. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetThumbLength(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetTickFreq(_swigobj) (_swigobj->GetTickFreq()) -static PyObject *_wrap_wxSlider_GetTickFreq(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetTickFreq",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetTickFreq. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetTickFreq(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_GetValue(_swigobj) (_swigobj->GetValue()) -static PyObject *_wrap_wxSlider_GetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSlider * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSlider_GetValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_GetValue. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSlider_GetValue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSlider_SetRange(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRange(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSlider_SetRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSlider_SetRange",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetRange. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetRange(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetTickFreq(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetTickFreq(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSlider_SetTickFreq(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSlider_SetTickFreq",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetTickFreq. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetTickFreq(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetLineSize(_swigobj,_swigarg0) (_swigobj->SetLineSize(_swigarg0)) -static PyObject *_wrap_wxSlider_SetLineSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetLineSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetLineSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetLineSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetPageSize(_swigobj,_swigarg0) (_swigobj->SetPageSize(_swigarg0)) -static PyObject *_wrap_wxSlider_SetPageSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetPageSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetPageSize. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetPageSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetSelection(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSelection(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSlider_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSlider_SetSelection",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetSelection. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetSelection(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetThumbLength(_swigobj,_swigarg0) (_swigobj->SetThumbLength(_swigarg0)) -static PyObject *_wrap_wxSlider_SetThumbLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetThumbLength",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetThumbLength. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetThumbLength(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetTick(_swigobj,_swigarg0) (_swigobj->SetTick(_swigarg0)) -static PyObject *_wrap_wxSlider_SetTick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetTick",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetTick. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetTick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSlider_SetValue(_swigobj,_swigarg0) (_swigobj->SetValue(_swigarg0)) -static PyObject *_wrap_wxSlider_SetValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSlider * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSlider_SetValue",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSlider_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSlider_SetValue. Expected _wxSlider_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSlider_SetValue(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef controlscMethods[] = { - { "wxSlider_SetValue", _wrap_wxSlider_SetValue, 1 }, - { "wxSlider_SetTick", _wrap_wxSlider_SetTick, 1 }, - { "wxSlider_SetThumbLength", _wrap_wxSlider_SetThumbLength, 1 }, - { "wxSlider_SetSelection", _wrap_wxSlider_SetSelection, 1 }, - { "wxSlider_SetPageSize", _wrap_wxSlider_SetPageSize, 1 }, - { "wxSlider_SetLineSize", _wrap_wxSlider_SetLineSize, 1 }, - { "wxSlider_SetTickFreq", _wrap_wxSlider_SetTickFreq, 1 }, - { "wxSlider_SetRange", _wrap_wxSlider_SetRange, 1 }, - { "wxSlider_GetValue", _wrap_wxSlider_GetValue, 1 }, - { "wxSlider_GetTickFreq", _wrap_wxSlider_GetTickFreq, 1 }, - { "wxSlider_GetThumbLength", _wrap_wxSlider_GetThumbLength, 1 }, - { "wxSlider_GetSelStart", _wrap_wxSlider_GetSelStart, 1 }, - { "wxSlider_GetSelEnd", _wrap_wxSlider_GetSelEnd, 1 }, - { "wxSlider_GetPageSize", _wrap_wxSlider_GetPageSize, 1 }, - { "wxSlider_GetMin", _wrap_wxSlider_GetMin, 1 }, - { "wxSlider_GetMax", _wrap_wxSlider_GetMax, 1 }, - { "wxSlider_GetLineSize", _wrap_wxSlider_GetLineSize, 1 }, - { "wxSlider_ClearTicks", _wrap_wxSlider_ClearTicks, 1 }, - { "wxSlider_ClearSel", _wrap_wxSlider_ClearSel, 1 }, - { "new_wxSlider", _wrap_new_wxSlider, 1 }, - { "wxRadioButton_SetValue", _wrap_wxRadioButton_SetValue, 1 }, - { "wxRadioButton_GetValue", _wrap_wxRadioButton_GetValue, 1 }, - { "new_wxRadioButton", _wrap_new_wxRadioButton, 1 }, - { "wxRadioBox_ShowItem", _wrap_wxRadioBox_ShowItem, 1 }, - { "wxRadioBox_Show", _wrap_wxRadioBox_Show, 1 }, - { "wxRadioBox_SetStringSelection", _wrap_wxRadioBox_SetStringSelection, 1 }, - { "wxRadioBox_SetSelection", _wrap_wxRadioBox_SetSelection, 1 }, - { "wxRadioBox_SetItemLabel", _wrap_wxRadioBox_SetItemLabel, 1 }, - { "wxRadioBox_SetLabel", _wrap_wxRadioBox_SetLabel, 1 }, - { "wxRadioBox_Number", _wrap_wxRadioBox_Number, 1 }, - { "wxRadioBox_GetStringSelection", _wrap_wxRadioBox_GetStringSelection, 1 }, - { "wxRadioBox_GetString", _wrap_wxRadioBox_GetString, 1 }, - { "wxRadioBox_GetSelection", _wrap_wxRadioBox_GetSelection, 1 }, - { "wxRadioBox_GetItemLabel", _wrap_wxRadioBox_GetItemLabel, 1 }, - { "wxRadioBox_GetLabel", _wrap_wxRadioBox_GetLabel, 1 }, - { "wxRadioBox_FindString", _wrap_wxRadioBox_FindString, 1 }, - { "wxRadioBox_EnableItem", _wrap_wxRadioBox_EnableItem, 1 }, - { "wxRadioBox_Enable", _wrap_wxRadioBox_Enable, 1 }, - { "new_wxRadioBox", _wrap_new_wxRadioBox, 1 }, - { "wxStaticBitmap_SetBitmap", _wrap_wxStaticBitmap_SetBitmap, 1 }, - { "wxStaticBitmap_GetBitmap", _wrap_wxStaticBitmap_GetBitmap, 1 }, - { "new_wxStaticBitmap", _wrap_new_wxStaticBitmap, 1 }, - { "wxSpinButton_SetValue", _wrap_wxSpinButton_SetValue, 1 }, - { "wxSpinButton_SetRange", _wrap_wxSpinButton_SetRange, 1 }, - { "wxSpinButton_GetValue", _wrap_wxSpinButton_GetValue, 1 }, - { "wxSpinButton_GetMin", _wrap_wxSpinButton_GetMin, 1 }, - { "wxSpinButton_GetMax", _wrap_wxSpinButton_GetMax, 1 }, - { "new_wxSpinButton", _wrap_new_wxSpinButton, 1 }, - { "wxScrollBar_SetScrollbar", _wrap_wxScrollBar_SetScrollbar, 1 }, - { "wxScrollBar_SetThumbPosition", _wrap_wxScrollBar_SetThumbPosition, 1 }, - { "wxScrollBar_GetThumbSize", _wrap_wxScrollBar_GetThumbSize, 1 }, - { "wxScrollBar_GetThumbPosition", _wrap_wxScrollBar_GetThumbPosition, 1 }, - { "wxScrollBar_GetPageSize", _wrap_wxScrollBar_GetPageSize, 1 }, - { "wxScrollBar_GetRange", _wrap_wxScrollBar_GetRange, 1 }, - { "new_wxScrollBar", _wrap_new_wxScrollBar, 1 }, - { "wxTextCtrl_IsEditable", _wrap_wxTextCtrl_IsEditable, 1 }, - { "wxTextCtrl_GetSelection", _wrap_wxTextCtrl_GetSelection, 1 }, - { "wxTextCtrl_CanUndo", _wrap_wxTextCtrl_CanUndo, 1 }, - { "wxTextCtrl_CanRedo", _wrap_wxTextCtrl_CanRedo, 1 }, - { "wxTextCtrl_CanPaste", _wrap_wxTextCtrl_CanPaste, 1 }, - { "wxTextCtrl_CanCut", _wrap_wxTextCtrl_CanCut, 1 }, - { "wxTextCtrl_CanCopy", _wrap_wxTextCtrl_CanCopy, 1 }, - { "wxTextCtrl_XYToPosition", _wrap_wxTextCtrl_XYToPosition, 1 }, - { "wxTextCtrl_AppendText", _wrap_wxTextCtrl_AppendText, 1 }, - { "wxTextCtrl_WriteText", _wrap_wxTextCtrl_WriteText, 1 }, - { "wxTextCtrl_ShowPosition", _wrap_wxTextCtrl_ShowPosition, 1 }, - { "wxTextCtrl_SetValue", _wrap_wxTextCtrl_SetValue, 1 }, - { "wxTextCtrl_SetSelection", _wrap_wxTextCtrl_SetSelection, 1 }, - { "wxTextCtrl_SetInsertionPointEnd", _wrap_wxTextCtrl_SetInsertionPointEnd, 1 }, - { "wxTextCtrl_SetInsertionPoint", _wrap_wxTextCtrl_SetInsertionPoint, 1 }, - { "wxTextCtrl_SetEditable", _wrap_wxTextCtrl_SetEditable, 1 }, - { "wxTextCtrl_SaveFile", _wrap_wxTextCtrl_SaveFile, 1 }, - { "wxTextCtrl_Replace", _wrap_wxTextCtrl_Replace, 1 }, - { "wxTextCtrl_Remove", _wrap_wxTextCtrl_Remove, 1 }, - { "wxTextCtrl_PositionToXY", _wrap_wxTextCtrl_PositionToXY, 1 }, - { "wxTextCtrl_Paste", _wrap_wxTextCtrl_Paste, 1 }, - { "wxTextCtrl_LoadFile", _wrap_wxTextCtrl_LoadFile, 1 }, - { "wxTextCtrl_IsModified", _wrap_wxTextCtrl_IsModified, 1 }, - { "wxTextCtrl_GetValue", _wrap_wxTextCtrl_GetValue, 1 }, - { "wxTextCtrl_GetNumberOfLines", _wrap_wxTextCtrl_GetNumberOfLines, 1 }, - { "wxTextCtrl_GetLineText", _wrap_wxTextCtrl_GetLineText, 1 }, - { "wxTextCtrl_GetLineLength", _wrap_wxTextCtrl_GetLineLength, 1 }, - { "wxTextCtrl_GetLastPosition", _wrap_wxTextCtrl_GetLastPosition, 1 }, - { "wxTextCtrl_GetInsertionPoint", _wrap_wxTextCtrl_GetInsertionPoint, 1 }, - { "wxTextCtrl_DiscardEdits", _wrap_wxTextCtrl_DiscardEdits, 1 }, - { "wxTextCtrl_Cut", _wrap_wxTextCtrl_Cut, 1 }, - { "wxTextCtrl_Copy", _wrap_wxTextCtrl_Copy, 1 }, - { "wxTextCtrl_Clear", _wrap_wxTextCtrl_Clear, 1 }, - { "new_wxTextCtrl", _wrap_new_wxTextCtrl, 1 }, - { "wxCheckListBox_GetItemHeight", _wrap_wxCheckListBox_GetItemHeight, 1 }, - { "wxCheckListBox_Check", _wrap_wxCheckListBox_Check, 1 }, - { "wxCheckListBox_IsChecked", _wrap_wxCheckListBox_IsChecked, 1 }, - { "new_wxCheckListBox", _wrap_new_wxCheckListBox, 1 }, - { "wxListBox_SetStringSelection", _wrap_wxListBox_SetStringSelection, 1 }, - { "wxListBox_SetString", _wrap_wxListBox_SetString, 1 }, - { "wxListBox_SetSelection", _wrap_wxListBox_SetSelection, 1 }, - { "wxListBox_SetFirstItemStr", _wrap_wxListBox_SetFirstItemStr, 1 }, - { "wxListBox_SetFirstItem", _wrap_wxListBox_SetFirstItem, 1 }, - { "wxListBox_Set", _wrap_wxListBox_Set, 1 }, - { "wxListBox_Selected", _wrap_wxListBox_Selected, 1 }, - { "wxListBox_Number", _wrap_wxListBox_Number, 1 }, - { "wxListBox_GetStringSelection", _wrap_wxListBox_GetStringSelection, 1 }, - { "wxListBox_GetString", _wrap_wxListBox_GetString, 1 }, - { "wxListBox_GetSelections", _wrap_wxListBox_GetSelections, 1 }, - { "wxListBox_GetSelection", _wrap_wxListBox_GetSelection, 1 }, - { "wxListBox_FindString", _wrap_wxListBox_FindString, 1 }, - { "wxListBox_Deselect", _wrap_wxListBox_Deselect, 1 }, - { "wxListBox_Delete", _wrap_wxListBox_Delete, 1 }, - { "wxListBox_Clear", _wrap_wxListBox_Clear, 1 }, - { "wxListBox_Append", _wrap_wxListBox_Append, 1 }, - { "new_wxListBox", _wrap_new_wxListBox, 1 }, - { "wxStaticText_SetLabel", _wrap_wxStaticText_SetLabel, 1 }, - { "wxStaticText_GetLabel", _wrap_wxStaticText_GetLabel, 1 }, - { "new_wxStaticText", _wrap_new_wxStaticText, 1 }, - { "new_wxStaticBox", _wrap_new_wxStaticBox, 1 }, - { "wxGauge_SetValue", _wrap_wxGauge_SetValue, 1 }, - { "wxGauge_SetShadowWidth", _wrap_wxGauge_SetShadowWidth, 1 }, - { "wxGauge_SetRange", _wrap_wxGauge_SetRange, 1 }, - { "wxGauge_SetBezelFace", _wrap_wxGauge_SetBezelFace, 1 }, - { "wxGauge_GetValue", _wrap_wxGauge_GetValue, 1 }, - { "wxGauge_GetShadowWidth", _wrap_wxGauge_GetShadowWidth, 1 }, - { "wxGauge_GetRange", _wrap_wxGauge_GetRange, 1 }, - { "wxGauge_GetBezelFace", _wrap_wxGauge_GetBezelFace, 1 }, - { "new_wxGauge", _wrap_new_wxGauge, 1 }, - { "wxComboBox_SetValue", _wrap_wxComboBox_SetValue, 1 }, - { "wxComboBox_SetMark", _wrap_wxComboBox_SetMark, 1 }, - { "wxComboBox_SetSelection", _wrap_wxComboBox_SetSelection, 1 }, - { "wxComboBox_SetInsertionPointEnd", _wrap_wxComboBox_SetInsertionPointEnd, 1 }, - { "wxComboBox_SetInsertionPoint", _wrap_wxComboBox_SetInsertionPoint, 1 }, - { "wxComboBox_Remove", _wrap_wxComboBox_Remove, 1 }, - { "wxComboBox_Replace", _wrap_wxComboBox_Replace, 1 }, - { "wxComboBox_Paste", _wrap_wxComboBox_Paste, 1 }, - { "wxComboBox_Number", _wrap_wxComboBox_Number, 1 }, - { "wxComboBox_GetValue", _wrap_wxComboBox_GetValue, 1 }, - { "wxComboBox_GetStringSelection", _wrap_wxComboBox_GetStringSelection, 1 }, - { "wxComboBox_GetString", _wrap_wxComboBox_GetString, 1 }, - { "wxComboBox_GetSelection", _wrap_wxComboBox_GetSelection, 1 }, - { "wxComboBox_GetLastPosition", _wrap_wxComboBox_GetLastPosition, 1 }, - { "wxComboBox_GetInsertionPoint", _wrap_wxComboBox_GetInsertionPoint, 1 }, - { "wxComboBox_FindString", _wrap_wxComboBox_FindString, 1 }, - { "wxComboBox_Delete", _wrap_wxComboBox_Delete, 1 }, - { "wxComboBox_Cut", _wrap_wxComboBox_Cut, 1 }, - { "wxComboBox_Copy", _wrap_wxComboBox_Copy, 1 }, - { "wxComboBox_Clear", _wrap_wxComboBox_Clear, 1 }, - { "wxComboBox_Append", _wrap_wxComboBox_Append, 1 }, - { "new_wxComboBox", _wrap_new_wxComboBox, 1 }, - { "wxChoice_SetStringSelection", _wrap_wxChoice_SetStringSelection, 1 }, - { "wxChoice_SetSelection", _wrap_wxChoice_SetSelection, 1 }, - { "wxChoice_SetColumns", _wrap_wxChoice_SetColumns, 1 }, - { "wxChoice_Number", _wrap_wxChoice_Number, 1 }, - { "wxChoice_GetStringSelection", _wrap_wxChoice_GetStringSelection, 1 }, - { "wxChoice_GetString", _wrap_wxChoice_GetString, 1 }, - { "wxChoice_GetSelection", _wrap_wxChoice_GetSelection, 1 }, - { "wxChoice_GetColumns", _wrap_wxChoice_GetColumns, 1 }, - { "wxChoice_FindString", _wrap_wxChoice_FindString, 1 }, - { "wxChoice_Clear", _wrap_wxChoice_Clear, 1 }, - { "wxChoice_Append", _wrap_wxChoice_Append, 1 }, - { "new_wxChoice", _wrap_new_wxChoice, 1 }, - { "wxCheckBox_SetValue", _wrap_wxCheckBox_SetValue, 1 }, - { "wxCheckBox_GetValue", _wrap_wxCheckBox_GetValue, 1 }, - { "new_wxCheckBox", _wrap_new_wxCheckBox, 1 }, - { "wxBitmapButton_SetBitmapLabel", _wrap_wxBitmapButton_SetBitmapLabel, 1 }, - { "wxBitmapButton_SetBitmapSelected", _wrap_wxBitmapButton_SetBitmapSelected, 1 }, - { "wxBitmapButton_SetBitmapFocus", _wrap_wxBitmapButton_SetBitmapFocus, 1 }, - { "wxBitmapButton_SetBitmapDisabled", _wrap_wxBitmapButton_SetBitmapDisabled, 1 }, - { "wxBitmapButton_GetBitmapSelected", _wrap_wxBitmapButton_GetBitmapSelected, 1 }, - { "wxBitmapButton_GetBitmapFocus", _wrap_wxBitmapButton_GetBitmapFocus, 1 }, - { "wxBitmapButton_GetBitmapDisabled", _wrap_wxBitmapButton_GetBitmapDisabled, 1 }, - { "wxBitmapButton_GetBitmapLabel", _wrap_wxBitmapButton_GetBitmapLabel, 1 }, - { "new_wxBitmapButton", _wrap_new_wxBitmapButton, 1 }, - { "wxButton_SetDefault", _wrap_wxButton_SetDefault, 1 }, - { "new_wxButton", _wrap_new_wxButton, 1 }, - { "wxControl_SetLabel", _wrap_wxControl_SetLabel, 1 }, - { "wxControl_GetLabel", _wrap_wxControl_GetLabel, 1 }, - { "wxControl_Command", _wrap_wxControl_Command, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initcontrolsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("controlsc", controlscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_class_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_wxControl","_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_wxControl","_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_wxControl","_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_wxControl","_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_class_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_class_wxListBox","_wxCheckListBox",SwigwxCheckListBoxTowxListBox); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_wxButton","_wxBitmapButton",SwigwxBitmapButtonTowxButton); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxSlider",SwigwxSliderTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxRadioButton",SwigwxRadioButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxRadioBox",SwigwxRadioBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxStaticBitmap",SwigwxStaticBitmapTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxSpinButton",SwigwxSpinButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxScrollBar",SwigwxScrollBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxTextCtrl",SwigwxTextCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxCheckListBox",SwigwxCheckListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxListBox",SwigwxListBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxStaticText",SwigwxStaticTextTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxStaticBox",SwigwxStaticBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxGauge",SwigwxGaugeTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxComboBox",SwigwxComboBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxChoice",SwigwxChoiceTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxCheckBox",SwigwxCheckBoxTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxBitmapButton",SwigwxBitmapButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxButton",SwigwxButtonTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSlider",SwigwxSliderTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxRadioButton",SwigwxRadioButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxRadioBox",SwigwxRadioBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStaticBitmap",SwigwxStaticBitmapTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSpinButton",SwigwxSpinButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxScrollBar",SwigwxScrollBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTextCtrl",SwigwxTextCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxCheckListBox",SwigwxCheckListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxListBox",SwigwxListBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStaticText",SwigwxStaticTextTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStaticBox",SwigwxStaticBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxGauge",SwigwxGaugeTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxComboBox",SwigwxComboBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxChoice",SwigwxChoiceTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxCheckBox",SwigwxCheckBoxTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxBitmapButton",SwigwxBitmapButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxButton",SwigwxButtonTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxControl",SwigwxControlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSlider",SwigwxSliderTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxRadioButton",SwigwxRadioButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxRadioBox",SwigwxRadioBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStaticBitmap",SwigwxStaticBitmapTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSpinButton",SwigwxSpinButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxScrollBar",SwigwxScrollBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxTextCtrl",SwigwxTextCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxCheckListBox",SwigwxCheckListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxListBox",SwigwxListBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStaticText",SwigwxStaticTextTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStaticBox",SwigwxStaticBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxGauge",SwigwxGaugeTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxComboBox",SwigwxComboBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxChoice",SwigwxChoiceTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxCheckBox",SwigwxCheckBoxTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxBitmapButton",SwigwxBitmapButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxButton",SwigwxButtonTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxControl",SwigwxControlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/msw/controls.py b/utils/wxPython/src/msw/controls.py deleted file mode 100644 index 21dc6fc93e..0000000000 --- a/utils/wxPython/src/msw/controls.py +++ /dev/null @@ -1,866 +0,0 @@ -# This file was created automatically by SWIG. -import controlsc - -from misc import * - -from windows import * - -from gdi import * - -from events import * -import wx -class wxControlPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Command(self,arg0): - val = controlsc.wxControl_Command(self.this,arg0.this) - return val - def GetLabel(self): - val = controlsc.wxControl_GetLabel(self.this) - return val - def SetLabel(self,arg0): - val = controlsc.wxControl_SetLabel(self.this,arg0) - return val - def __repr__(self): - return "" -class wxControl(wxControlPtr): - def __init__(self,this): - self.this = this - - - - -class wxButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetDefault(self): - val = controlsc.wxButton_SetDefault(self.this) - return val - def __repr__(self): - return "" -class wxButton(wxButtonPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxButton,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxBitmapButtonPtr(wxButtonPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmapLabel(self): - val = controlsc.wxBitmapButton_GetBitmapLabel(self.this) - val = wxBitmapPtr(val) - return val - def GetBitmapDisabled(self): - val = controlsc.wxBitmapButton_GetBitmapDisabled(self.this) - val = wxBitmapPtr(val) - return val - def GetBitmapFocus(self): - val = controlsc.wxBitmapButton_GetBitmapFocus(self.this) - val = wxBitmapPtr(val) - return val - def GetBitmapSelected(self): - val = controlsc.wxBitmapButton_GetBitmapSelected(self.this) - val = wxBitmapPtr(val) - return val - def SetBitmapDisabled(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapDisabled(self.this,arg0.this) - return val - def SetBitmapFocus(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapFocus(self.this,arg0.this) - return val - def SetBitmapSelected(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapSelected(self.this,arg0.this) - return val - def SetBitmapLabel(self,arg0): - val = controlsc.wxBitmapButton_SetBitmapLabel(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxBitmapButton(wxBitmapButtonPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxBitmapButton,(arg0.this,arg1,arg2.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self): - val = controlsc.wxCheckBox_GetValue(self.this) - return val - def SetValue(self,arg0): - val = controlsc.wxCheckBox_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxCheckBox(wxCheckBoxPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxCheckBox,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxChoicePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0): - val = controlsc.wxChoice_Append(self.this,arg0) - return val - def Clear(self): - val = controlsc.wxChoice_Clear(self.this) - return val - def FindString(self,arg0): - val = controlsc.wxChoice_FindString(self.this,arg0) - return val - def GetColumns(self): - val = controlsc.wxChoice_GetColumns(self.this) - return val - def GetSelection(self): - val = controlsc.wxChoice_GetSelection(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxChoice_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxChoice_GetStringSelection(self.this) - return val - def Number(self): - val = controlsc.wxChoice_Number(self.this) - return val - def SetColumns(self,*args): - val = apply(controlsc.wxChoice_SetColumns,(self.this,)+args) - return val - def SetSelection(self,arg0): - val = controlsc.wxChoice_SetSelection(self.this,arg0) - return val - def SetStringSelection(self,arg0): - val = controlsc.wxChoice_SetStringSelection(self.this,arg0) - return val - def __repr__(self): - return "" -class wxChoice(wxChoicePtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxChoice,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxComboBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0): - val = controlsc.wxComboBox_Append(self.this,arg0) - return val - def Clear(self): - val = controlsc.wxComboBox_Clear(self.this) - return val - def Copy(self): - val = controlsc.wxComboBox_Copy(self.this) - return val - def Cut(self): - val = controlsc.wxComboBox_Cut(self.this) - return val - def Delete(self,arg0): - val = controlsc.wxComboBox_Delete(self.this,arg0) - return val - def FindString(self,arg0): - val = controlsc.wxComboBox_FindString(self.this,arg0) - return val - def GetInsertionPoint(self): - val = controlsc.wxComboBox_GetInsertionPoint(self.this) - return val - def GetLastPosition(self): - val = controlsc.wxComboBox_GetLastPosition(self.this) - return val - def GetSelection(self): - val = controlsc.wxComboBox_GetSelection(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxComboBox_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxComboBox_GetStringSelection(self.this) - return val - def GetValue(self): - val = controlsc.wxComboBox_GetValue(self.this) - return val - def Number(self): - val = controlsc.wxComboBox_Number(self.this) - return val - def Paste(self): - val = controlsc.wxComboBox_Paste(self.this) - return val - def Replace(self,arg0,arg1,arg2): - val = controlsc.wxComboBox_Replace(self.this,arg0,arg1,arg2) - return val - def Remove(self,arg0,arg1): - val = controlsc.wxComboBox_Remove(self.this,arg0,arg1) - return val - def SetInsertionPoint(self,arg0): - val = controlsc.wxComboBox_SetInsertionPoint(self.this,arg0) - return val - def SetInsertionPointEnd(self): - val = controlsc.wxComboBox_SetInsertionPointEnd(self.this) - return val - def SetSelection(self,arg0,*args): - val = apply(controlsc.wxComboBox_SetSelection,(self.this,arg0,)+args) - return val - def SetMark(self,arg0,arg1): - val = controlsc.wxComboBox_SetMark(self.this,arg0,arg1) - return val - def SetValue(self,arg0): - val = controlsc.wxComboBox_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxComboBox(wxComboBoxPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxComboBox,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxGaugePtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBezelFace(self): - val = controlsc.wxGauge_GetBezelFace(self.this) - return val - def GetRange(self): - val = controlsc.wxGauge_GetRange(self.this) - return val - def GetShadowWidth(self): - val = controlsc.wxGauge_GetShadowWidth(self.this) - return val - def GetValue(self): - val = controlsc.wxGauge_GetValue(self.this) - return val - def SetBezelFace(self,arg0): - val = controlsc.wxGauge_SetBezelFace(self.this,arg0) - return val - def SetRange(self,arg0): - val = controlsc.wxGauge_SetRange(self.this,arg0) - return val - def SetShadowWidth(self,arg0): - val = controlsc.wxGauge_SetShadowWidth(self.this,arg0) - return val - def SetValue(self,arg0): - val = controlsc.wxGauge_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxGauge(wxGaugePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxGauge,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxStaticBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxStaticBox(wxStaticBoxPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxStaticBox,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - - - - -class wxStaticTextPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetLabel(self): - val = controlsc.wxStaticText_GetLabel(self.this) - return val - def SetLabel(self,arg0): - val = controlsc.wxStaticText_SetLabel(self.this,arg0) - return val - def __repr__(self): - return "" -class wxStaticText(wxStaticTextPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxStaticText,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxListBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0): - val = controlsc.wxListBox_Append(self.this,arg0) - return val - def Clear(self): - val = controlsc.wxListBox_Clear(self.this) - return val - def Delete(self,arg0): - val = controlsc.wxListBox_Delete(self.this,arg0) - return val - def Deselect(self,arg0): - val = controlsc.wxListBox_Deselect(self.this,arg0) - return val - def FindString(self,arg0): - val = controlsc.wxListBox_FindString(self.this,arg0) - return val - def GetSelection(self): - val = controlsc.wxListBox_GetSelection(self.this) - return val - def GetSelections(self): - val = controlsc.wxListBox_GetSelections(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxListBox_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxListBox_GetStringSelection(self.this) - return val - def Number(self): - val = controlsc.wxListBox_Number(self.this) - return val - def Selected(self,arg0): - val = controlsc.wxListBox_Selected(self.this,arg0) - return val - def Set(self,arg0,*args): - val = apply(controlsc.wxListBox_Set,(self.this,arg0,)+args) - return val - def SetFirstItem(self,arg0): - val = controlsc.wxListBox_SetFirstItem(self.this,arg0) - return val - def SetFirstItemStr(self,arg0): - val = controlsc.wxListBox_SetFirstItemStr(self.this,arg0) - return val - def SetSelection(self,arg0,*args): - val = apply(controlsc.wxListBox_SetSelection,(self.this,arg0,)+args) - return val - def SetString(self,arg0,arg1): - val = controlsc.wxListBox_SetString(self.this,arg0,arg1) - return val - def SetStringSelection(self,arg0,*args): - val = apply(controlsc.wxListBox_SetStringSelection,(self.this,arg0,)+args) - return val - def __repr__(self): - return "" -class wxListBox(wxListBoxPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxListBox,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxCheckListBoxPtr(wxListBoxPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsChecked(self,arg0): - val = controlsc.wxCheckListBox_IsChecked(self.this,arg0) - return val - def Check(self,arg0,*args): - val = apply(controlsc.wxCheckListBox_Check,(self.this,arg0,)+args) - return val - def GetItemHeight(self): - val = controlsc.wxCheckListBox_GetItemHeight(self.this) - return val - def __repr__(self): - return "" -class wxCheckListBox(wxCheckListBoxPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxCheckListBox,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTextCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Clear(self): - val = controlsc.wxTextCtrl_Clear(self.this) - return val - def Copy(self): - val = controlsc.wxTextCtrl_Copy(self.this) - return val - def Cut(self): - val = controlsc.wxTextCtrl_Cut(self.this) - return val - def DiscardEdits(self): - val = controlsc.wxTextCtrl_DiscardEdits(self.this) - return val - def GetInsertionPoint(self): - val = controlsc.wxTextCtrl_GetInsertionPoint(self.this) - return val - def GetLastPosition(self): - val = controlsc.wxTextCtrl_GetLastPosition(self.this) - return val - def GetLineLength(self,arg0): - val = controlsc.wxTextCtrl_GetLineLength(self.this,arg0) - return val - def GetLineText(self,arg0): - val = controlsc.wxTextCtrl_GetLineText(self.this,arg0) - return val - def GetNumberOfLines(self): - val = controlsc.wxTextCtrl_GetNumberOfLines(self.this) - return val - def GetValue(self): - val = controlsc.wxTextCtrl_GetValue(self.this) - return val - def IsModified(self): - val = controlsc.wxTextCtrl_IsModified(self.this) - return val - def LoadFile(self,arg0): - val = controlsc.wxTextCtrl_LoadFile(self.this,arg0) - return val - def Paste(self): - val = controlsc.wxTextCtrl_Paste(self.this) - return val - def PositionToXY(self,arg0): - val = controlsc.wxTextCtrl_PositionToXY(self.this,arg0) - return val - def Remove(self,arg0,arg1): - val = controlsc.wxTextCtrl_Remove(self.this,arg0,arg1) - return val - def Replace(self,arg0,arg1,arg2): - val = controlsc.wxTextCtrl_Replace(self.this,arg0,arg1,arg2) - return val - def SaveFile(self,arg0): - val = controlsc.wxTextCtrl_SaveFile(self.this,arg0) - return val - def SetEditable(self,arg0): - val = controlsc.wxTextCtrl_SetEditable(self.this,arg0) - return val - def SetInsertionPoint(self,arg0): - val = controlsc.wxTextCtrl_SetInsertionPoint(self.this,arg0) - return val - def SetInsertionPointEnd(self): - val = controlsc.wxTextCtrl_SetInsertionPointEnd(self.this) - return val - def SetSelection(self,arg0,arg1): - val = controlsc.wxTextCtrl_SetSelection(self.this,arg0,arg1) - return val - def SetValue(self,arg0): - val = controlsc.wxTextCtrl_SetValue(self.this,arg0) - return val - def ShowPosition(self,arg0): - val = controlsc.wxTextCtrl_ShowPosition(self.this,arg0) - return val - def WriteText(self,arg0): - val = controlsc.wxTextCtrl_WriteText(self.this,arg0) - return val - def AppendText(self,arg0): - val = controlsc.wxTextCtrl_AppendText(self.this,arg0) - return val - def XYToPosition(self,arg0,arg1): - val = controlsc.wxTextCtrl_XYToPosition(self.this,arg0,arg1) - return val - def CanCopy(self): - val = controlsc.wxTextCtrl_CanCopy(self.this) - return val - def CanCut(self): - val = controlsc.wxTextCtrl_CanCut(self.this) - return val - def CanPaste(self): - val = controlsc.wxTextCtrl_CanPaste(self.this) - return val - def CanRedo(self): - val = controlsc.wxTextCtrl_CanRedo(self.this) - return val - def CanUndo(self): - val = controlsc.wxTextCtrl_CanUndo(self.this) - return val - def GetSelection(self): - val = controlsc.wxTextCtrl_GetSelection(self.this) - return val - def IsEditable(self): - val = controlsc.wxTextCtrl_IsEditable(self.this) - return val - def __repr__(self): - return "" -class wxTextCtrl(wxTextCtrlPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxTextCtrl,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxScrollBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetRange(self): - val = controlsc.wxScrollBar_GetRange(self.this) - return val - def GetPageSize(self): - val = controlsc.wxScrollBar_GetPageSize(self.this) - return val - def GetThumbPosition(self): - val = controlsc.wxScrollBar_GetThumbPosition(self.this) - return val - def GetThumbSize(self): - val = controlsc.wxScrollBar_GetThumbSize(self.this) - return val - def SetThumbPosition(self,arg0): - val = controlsc.wxScrollBar_SetThumbPosition(self.this,arg0) - return val - def SetScrollbar(self,arg0,arg1,arg2,arg3,*args): - val = apply(controlsc.wxScrollBar_SetScrollbar,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def __repr__(self): - return "" -class wxScrollBar(wxScrollBarPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxScrollBar,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSpinButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetMax(self): - val = controlsc.wxSpinButton_GetMax(self.this) - return val - def GetMin(self): - val = controlsc.wxSpinButton_GetMin(self.this) - return val - def GetValue(self): - val = controlsc.wxSpinButton_GetValue(self.this) - return val - def SetRange(self,arg0,arg1): - val = controlsc.wxSpinButton_SetRange(self.this,arg0,arg1) - return val - def SetValue(self,arg0): - val = controlsc.wxSpinButton_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxSpinButton(wxSpinButtonPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxSpinButton,(arg0.this,)+args) - self.thisown = 1 - - - - -class wxStaticBitmapPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBitmap(self): - val = controlsc.wxStaticBitmap_GetBitmap(self.this) - val = wxBitmapPtr(val) - return val - def SetBitmap(self,arg0): - val = controlsc.wxStaticBitmap_SetBitmap(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxStaticBitmap(wxStaticBitmapPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxStaticBitmap,(arg0.this,arg1,arg2.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioBoxPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Enable(self,arg0): - val = controlsc.wxRadioBox_Enable(self.this,arg0) - return val - def EnableItem(self,arg0,arg1): - val = controlsc.wxRadioBox_EnableItem(self.this,arg0,arg1) - return val - def FindString(self,arg0): - val = controlsc.wxRadioBox_FindString(self.this,arg0) - return val - def GetLabel(self): - val = controlsc.wxRadioBox_GetLabel(self.this) - return val - def GetItemLabel(self,arg0): - val = controlsc.wxRadioBox_GetItemLabel(self.this,arg0) - return val - def GetSelection(self): - val = controlsc.wxRadioBox_GetSelection(self.this) - return val - def GetString(self,arg0): - val = controlsc.wxRadioBox_GetString(self.this,arg0) - return val - def GetStringSelection(self): - val = controlsc.wxRadioBox_GetStringSelection(self.this) - return val - def Number(self): - val = controlsc.wxRadioBox_Number(self.this) - return val - def SetLabel(self,arg0): - val = controlsc.wxRadioBox_SetLabel(self.this,arg0) - return val - def SetItemLabel(self,arg0,arg1): - val = controlsc.wxRadioBox_SetItemLabel(self.this,arg0,arg1) - return val - def SetSelection(self,arg0): - val = controlsc.wxRadioBox_SetSelection(self.this,arg0) - return val - def SetStringSelection(self,arg0): - val = controlsc.wxRadioBox_SetStringSelection(self.this,arg0) - return val - def Show(self,arg0): - val = controlsc.wxRadioBox_Show(self.this,arg0) - return val - def ShowItem(self,arg0,arg1): - val = controlsc.wxRadioBox_ShowItem(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxRadioBox(wxRadioBoxPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxRadioBox,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxRadioButtonPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetValue(self): - val = controlsc.wxRadioButton_GetValue(self.this) - return val - def SetValue(self,arg0): - val = controlsc.wxRadioButton_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxRadioButton(wxRadioButtonPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxRadioButton,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSliderPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ClearSel(self): - val = controlsc.wxSlider_ClearSel(self.this) - return val - def ClearTicks(self): - val = controlsc.wxSlider_ClearTicks(self.this) - return val - def GetLineSize(self): - val = controlsc.wxSlider_GetLineSize(self.this) - return val - def GetMax(self): - val = controlsc.wxSlider_GetMax(self.this) - return val - def GetMin(self): - val = controlsc.wxSlider_GetMin(self.this) - return val - def GetPageSize(self): - val = controlsc.wxSlider_GetPageSize(self.this) - return val - def GetSelEnd(self): - val = controlsc.wxSlider_GetSelEnd(self.this) - return val - def GetSelStart(self): - val = controlsc.wxSlider_GetSelStart(self.this) - return val - def GetThumbLength(self): - val = controlsc.wxSlider_GetThumbLength(self.this) - return val - def GetTickFreq(self): - val = controlsc.wxSlider_GetTickFreq(self.this) - return val - def GetValue(self): - val = controlsc.wxSlider_GetValue(self.this) - return val - def SetRange(self,arg0,arg1): - val = controlsc.wxSlider_SetRange(self.this,arg0,arg1) - return val - def SetTickFreq(self,arg0,arg1): - val = controlsc.wxSlider_SetTickFreq(self.this,arg0,arg1) - return val - def SetLineSize(self,arg0): - val = controlsc.wxSlider_SetLineSize(self.this,arg0) - return val - def SetPageSize(self,arg0): - val = controlsc.wxSlider_SetPageSize(self.this,arg0) - return val - def SetSelection(self,arg0,arg1): - val = controlsc.wxSlider_SetSelection(self.this,arg0,arg1) - return val - def SetThumbLength(self,arg0): - val = controlsc.wxSlider_SetThumbLength(self.this,arg0) - return val - def SetTick(self,arg0): - val = controlsc.wxSlider_SetTick(self.this,arg0) - return val - def SetValue(self,arg0): - val = controlsc.wxSlider_SetValue(self.this,arg0) - return val - def __repr__(self): - return "" -class wxSlider(wxSliderPtr): - def __init__(self,arg0,arg1,arg2,arg3,arg4,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controlsc.new_wxSlider,(arg0.this,arg1,arg2,arg3,arg4,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/controls2.cpp b/utils/wxPython/src/msw/controls2.cpp deleted file mode 100644 index cae9e6ef4c..0000000000 --- a/utils/wxPython/src/msw/controls2.cpp +++ /dev/null @@ -1,5542 +0,0 @@ -/* - * FILE : msw/controls2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initcontrols2c - -#define SWIG_name "controls2c" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -extern wxValidator wxPyDefaultValidator; - -class wxPyTreeItemData : public wxTreeItemData { -public: - wxPyTreeItemData(PyObject* obj = NULL) { - if (obj == NULL) - obj = Py_None; - Py_INCREF(obj); - m_obj = obj; - } - - ~wxPyTreeItemData() { - Py_DECREF(m_obj); - } - - PyObject* GetData() { - Py_INCREF(m_obj); - return m_obj; - } - - void SetData(PyObject* obj) { - Py_DECREF(m_obj); - m_obj = obj; - Py_INCREF(obj); - } - - PyObject* m_obj; -}; -#define wxListItem_m_mask_set(_swigobj,_swigval) (_swigobj->m_mask = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_mask_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_mask_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_mask_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_mask_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_mask_get(_swigobj) ((long ) _swigobj->m_mask) -static PyObject *_wrap_wxListItem_m_mask_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_mask_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_mask_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_mask_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_itemId_set(_swigobj,_swigval) (_swigobj->m_itemId = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_itemId_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_itemId_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_itemId_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_itemId_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_itemId_get(_swigobj) ((long ) _swigobj->m_itemId) -static PyObject *_wrap_wxListItem_m_itemId_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_itemId_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_itemId_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_itemId_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_col_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_col_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_col_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_col_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_col_get(_swigobj) ((int ) _swigobj->m_col) -static PyObject *_wrap_wxListItem_m_col_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_col_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_col_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_col_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_state_set(_swigobj,_swigval) (_swigobj->m_state = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_state_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_state_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_state_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_state_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_state_get(_swigobj) ((long ) _swigobj->m_state) -static PyObject *_wrap_wxListItem_m_state_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_state_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_state_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_state_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_stateMask_set(_swigobj,_swigval) (_swigobj->m_stateMask = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_stateMask_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_stateMask_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_stateMask_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_stateMask_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_stateMask_get(_swigobj) ((long ) _swigobj->m_stateMask) -static PyObject *_wrap_wxListItem_m_stateMask_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_stateMask_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_stateMask_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_stateMask_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_text_set(_swigobj,_swigval) (_swigobj->m_text = *(_swigval),_swigval) -static PyObject *_wrap_wxListItem_m_text_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListItem * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxListItem_m_text_set",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_text_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxListItem_m_text_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxListItem_m_text_get(_swigobj) (&_swigobj->m_text) -static PyObject *_wrap_wxListItem_m_text_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_text_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_text_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxListItem_m_text_get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxListItem_m_image_set(_swigobj,_swigval) (_swigobj->m_image = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_image_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_image_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_image_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_image_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_image_get(_swigobj) ((int ) _swigobj->m_image) -static PyObject *_wrap_wxListItem_m_image_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_image_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_image_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_image_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_data_set(_swigobj,_swigval) (_swigobj->m_data = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_data_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListItem_m_data_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_data_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_data_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_data_get(_swigobj) ((long ) _swigobj->m_data) -static PyObject *_wrap_wxListItem_m_data_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_data_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_data_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListItem_m_data_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListItem_m_format_set(_swigobj,_swigval) (_swigobj->m_format = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_format_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_format_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_format_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_format_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_format_get(_swigobj) ((int ) _swigobj->m_format) -static PyObject *_wrap_wxListItem_m_format_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_format_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_format_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_format_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_width_set(_swigobj,_swigval) (_swigobj->m_width = _swigval,_swigval) -static PyObject *_wrap_wxListItem_m_width_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListItem_m_width_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_width_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_width_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListItem_m_width_get(_swigobj) ((int ) _swigobj->m_width) -static PyObject *_wrap_wxListItem_m_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListItem_m_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListItem_m_width_get. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListItem_m_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxListItem() (new wxListItem()) -static PyObject *_wrap_new_wxListItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxListItem")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)new_wxListItem(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxListItem(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxListItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxListItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxListItem. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxListItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxListEventTowxCommandEvent(void *ptr) { - wxListEvent *src; - wxCommandEvent *dest; - src = (wxListEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxListEventTowxEvent(void *ptr) { - wxListEvent *src; - wxEvent *dest; - src = (wxListEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxListEvent_m_code_set(_swigobj,_swigval) (_swigobj->m_code = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_code_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListEvent_m_code_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_code_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_code_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_code_get(_swigobj) ((int ) _swigobj->m_code) -static PyObject *_wrap_wxListEvent_m_code_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_code_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_code_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_code_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_itemIndex_set(_swigobj,_swigval) (_swigobj->m_itemIndex = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_itemIndex_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListEvent_m_itemIndex_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_itemIndex_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_itemIndex_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_itemIndex_get(_swigobj) ((long ) _swigobj->m_itemIndex) -static PyObject *_wrap_wxListEvent_m_itemIndex_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_itemIndex_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_itemIndex_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_itemIndex_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_oldItemIndex_set(_swigobj,_swigval) (_swigobj->m_oldItemIndex = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_oldItemIndex_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListEvent_m_oldItemIndex_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_oldItemIndex_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_oldItemIndex_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_oldItemIndex_get(_swigobj) ((long ) _swigobj->m_oldItemIndex) -static PyObject *_wrap_wxListEvent_m_oldItemIndex_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_oldItemIndex_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_oldItemIndex_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListEvent_m_oldItemIndex_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListEvent_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_col_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListEvent_m_col_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_col_set. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_col_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_col_get(_swigobj) ((int ) _swigobj->m_col) -static PyObject *_wrap_wxListEvent_m_col_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_col_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_col_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListEvent_m_col_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_cancelled_set(_swigobj,_swigval) (_swigobj->m_cancelled = _swigval,_swigval) -static PyObject *_wrap_wxListEvent_m_cancelled_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListEvent_m_cancelled_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_cancelled_set. Expected _wxListEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListEvent_m_cancelled_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_cancelled_get(_swigobj) ((bool ) _swigobj->m_cancelled) -static PyObject *_wrap_wxListEvent_m_cancelled_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_cancelled_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_cancelled_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListEvent_m_cancelled_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListEvent_m_pointDrag_set(_swigobj,_swigval) (_swigobj->m_pointDrag = *(_swigval),_swigval) -static PyObject *_wrap_wxListEvent_m_pointDrag_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxListEvent * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListEvent_m_pointDrag_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_pointDrag_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListEvent_m_pointDrag_set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)wxListEvent_m_pointDrag_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListEvent_m_pointDrag_get(_swigobj) (&_swigobj->m_pointDrag) -static PyObject *_wrap_wxListEvent_m_pointDrag_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxListEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_pointDrag_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_pointDrag_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)wxListEvent_m_pointDrag_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListEvent_m_item_set(_swigobj,_swigval) (_swigobj->m_item = *(_swigval),_swigval) -static PyObject *_wrap_wxListEvent_m_item_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - wxListEvent * _arg0; - wxListItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListEvent_m_item_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_item_set. Expected _wxListEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListEvent_m_item_set. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)wxListEvent_m_item_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListEvent_m_item_get(_swigobj) (&_swigobj->m_item) -static PyObject *_wrap_wxListEvent_m_item_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - wxListEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListEvent_m_item_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListEvent_m_item_get. Expected _wxListEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)wxListEvent_m_item_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxListCtrlTowxControl(void *ptr) { - wxListCtrl *src; - wxControl *dest; - src = (wxListCtrl *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxListCtrlTowxWindow(void *ptr) { - wxListCtrl *src; - wxWindow *dest; - src = (wxListCtrl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxListCtrlTowxEvtHandler(void *ptr) { - wxListCtrl *src; - wxEvtHandler *dest; - src = (wxListCtrl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxListCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxListCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxListCtrl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxLC_ICON); - wxValidator * _arg5 = &wxPyDefaultValidator; - char * _arg6 = "listCtrl"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|sslss:new_wxListCtrl",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_argc5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxListCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxListCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxListCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxListCtrl. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListCtrl *)new_wxListCtrl(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_Arrange(_swigobj,_swigarg0) (_swigobj->Arrange(_swigarg0)) -static PyObject *_wrap_wxListCtrl_Arrange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1 = (wxLIST_ALIGN_DEFAULT); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxListCtrl_Arrange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_Arrange. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_Arrange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteItem(_swigobj,_swigarg0) (_swigobj->DeleteItem(_swigarg0)) -static PyObject *_wrap_wxListCtrl_DeleteItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_DeleteItem",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteAllItems(_swigobj) (_swigobj->DeleteAllItems()) -static PyObject *_wrap_wxListCtrl_DeleteAllItems(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_DeleteAllItems",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteAllItems. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteAllItems(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteColumn(_swigobj,_swigarg0) (_swigobj->DeleteColumn(_swigarg0)) -static PyObject *_wrap_wxListCtrl_DeleteColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_DeleteColumn",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteColumn. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteColumn(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_DeleteAllColumns(_swigobj) (_swigobj->DeleteAllColumns()) -static PyObject *_wrap_wxListCtrl_DeleteAllColumns(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_DeleteAllColumns",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_DeleteAllColumns. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_DeleteAllColumns(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_ClearAll(_swigobj) (_swigobj->ClearAll()) -static PyObject *_wrap_wxListCtrl_ClearAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_ClearAll",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_ClearAll. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_ClearAll(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_EditLabel(_swigobj,_swigarg0) (_swigobj->EditLabel(_swigarg0)) -static PyObject *_wrap_wxListCtrl_EditLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_EditLabel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_EditLabel. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxListCtrl_EditLabel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_EndEditLabel(_swigobj,_swigarg0) (_swigobj->EndEditLabel(_swigarg0)) -static PyObject *_wrap_wxListCtrl_EndEditLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_EndEditLabel",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_EndEditLabel. Expected _wxListCtrl_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_EndEditLabel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetEditControl(_swigobj) (_swigobj->GetEditControl()) -static PyObject *_wrap_wxListCtrl_GetEditControl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetEditControl",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetEditControl. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxListCtrl_GetEditControl(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_EnsureVisible(_swigobj,_swigarg0) (_swigobj->EnsureVisible(_swigarg0)) -static PyObject *_wrap_wxListCtrl_EnsureVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_EnsureVisible",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_EnsureVisible. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_EnsureVisible(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_FindItem(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->FindItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_FindItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - bool _arg3 = (0); - char * _argc0 = 0; - PyObject * _obj2 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"slO|i:wxListCtrl_FindItem",&_argc0,&_arg1,&_obj2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_FindItem(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_FindItemData(_swigobj,_swigarg0,_swigarg1) (_swigobj->FindItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_FindItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxListCtrl_FindItemData",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItemData. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_FindItemData(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_FindItemAtPos(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->FindItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_FindItemAtPos(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxPoint * _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slsi:wxListCtrl_FindItemAtPos",&_argc0,&_arg1,&_argc2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_FindItemAtPos. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_FindItemAtPos. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_FindItemAtPos(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_GetColumn(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetColumn(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_GetColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - wxListItem * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxListCtrl_GetColumn",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_GetColumn. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_GetColumn(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetColumnWidth(_swigobj,_swigarg0) (_swigobj->GetColumnWidth(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_GetColumnWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetColumnWidth. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetColumnWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetCountPerPage(_swigobj) (_swigobj->GetCountPerPage()) -static PyObject *_wrap_wxListCtrl_GetCountPerPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetCountPerPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetCountPerPage. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetCountPerPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetImageList(_swigobj,_swigarg0) (_swigobj->GetImageList(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxListCtrl * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_GetImageList",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetImageList. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxListCtrl_GetImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_GetItemData(_swigobj,_swigarg0) (_swigobj->GetItemData(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItemData",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemData. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_GetItemData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static wxListItem * wxListCtrl_GetItem(wxListCtrl *self,long itemId) { - wxListItem* info = new wxListItem; - info->m_itemId = itemId; - self->GetItem(*info); - return info; - } -static PyObject *_wrap_wxListCtrl_GetItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListItem * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItem",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxListItem *)wxListCtrl_GetItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxListItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxPoint * wxListCtrl_GetItemPosition(wxListCtrl *self,long item) { - wxPoint* pos = new wxPoint; - self->GetItemPosition(item, *pos); - return pos; - } -static PyObject *_wrap_wxListCtrl_GetItemPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItemPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemPosition. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)wxListCtrl_GetItemPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxRect * wxListCtrl_GetItemRect(wxListCtrl *self,long item,int code) { - wxRect* rect= new wxRect; - self->GetItemRect(item, *rect, code); - return rect; - } -static PyObject *_wrap_wxListCtrl_GetItemRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2 = (wxLIST_RECT_BOUNDS); - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl|i:wxListCtrl_GetItemRect",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemRect. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRect *)wxListCtrl_GetItemRect(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_GetItemState(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetItemState(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_GetItemState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxListCtrl_GetItemState",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemState. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetItemState(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetItemCount(_swigobj) (_swigobj->GetItemCount()) -static PyObject *_wrap_wxListCtrl_GetItemCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetItemCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemCount. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetItemCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetItemSpacing(_swigobj,_swigarg0) (_swigobj->GetItemSpacing(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetItemSpacing(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxListCtrl_GetItemSpacing",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemSpacing. Expected _wxListCtrl_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetItemSpacing(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetItemText(_swigobj,_swigarg0) (_swigobj->GetItemText(_swigarg0)) -static PyObject *_wrap_wxListCtrl_GetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_GetItemText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetItemText. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxListCtrl_GetItemText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxListCtrl_GetNextItem(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetNextItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_GetNextItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2 = (wxLIST_NEXT_ALL); - int _arg3 = (wxLIST_STATE_DONTCARE); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl|ii:wxListCtrl_GetNextItem",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetNextItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_GetNextItem(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_GetSelectedItemCount(_swigobj) (_swigobj->GetSelectedItemCount()) -static PyObject *_wrap_wxListCtrl_GetSelectedItemCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetSelectedItemCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetSelectedItemCount. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxListCtrl_GetSelectedItemCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_GetTextColour(_swigobj) (_swigobj->GetTextColour()) -static PyObject *_wrap_wxListCtrl_GetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetTextColour. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxListCtrl_GetTextColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxListCtrl_SetTextColour(_swigobj,_swigarg0) (_swigobj->SetTextColour(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_SetTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetTextColour. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_GetTopItem(_swigobj) (_swigobj->GetTopItem()) -static PyObject *_wrap_wxListCtrl_GetTopItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxListCtrl_GetTopItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_GetTopItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_GetTopItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_HitTest(_swigobj,_swigarg0,_swigarg1) (_swigobj->HitTest(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_HitTest(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - wxPoint * _arg1; - int * _arg2; - int temp; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; -{ - _arg2 = &temp; -} - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_HitTest",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_HitTest. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_HitTest. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_HitTest(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxListCtrl_InsertColumnWith(_swigobj,_swigarg0,_swigarg1) (_swigobj->InsertColumn(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_InsertColumnWith(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxListItem * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sls:wxListCtrl_InsertColumnWith",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertColumnWith. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_InsertColumnWith. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertColumnWith(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_InsertColumn(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->InsertColumn(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxListCtrl_InsertColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - int _arg3 = (wxLIST_FORMAT_LEFT); - int _arg4 = -1; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slO|ii:wxListCtrl_InsertColumn",&_argc0,&_arg1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertColumn. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertColumn(_arg0,_arg1,*_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_InsertItem(_swigobj,_swigarg0) (_swigobj->InsertItem(_swigarg0)) -static PyObject *_wrap_wxListCtrl_InsertItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - wxListItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_InsertItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_InsertItem. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_InsertStringItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->InsertItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_InsertStringItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slO:wxListCtrl_InsertStringItem",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertStringItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertStringItem(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_InsertImageItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->InsertItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_InsertImageItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sli:wxListCtrl_InsertImageItem",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertImageItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertImageItem(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxListCtrl_InsertImageStringItem(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->InsertItem(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_InsertImageStringItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - int _arg3; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slOi:wxListCtrl_InsertImageStringItem",&_argc0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_InsertImageStringItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_InsertImageStringItem(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_ScrollList(_swigobj,_swigarg0,_swigarg1) (_swigobj->ScrollList(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_ScrollList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxListCtrl_ScrollList",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_ScrollList. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_ScrollList(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetBackgroundColour. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_SetColumn(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumn(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - wxListItem * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxListCtrl_SetColumn",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetColumn. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_SetColumn. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetColumn(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetColumnWidth(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumnWidth(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxListCtrl_SetColumnWidth",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetColumnWidth. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetColumnWidth(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetImageList(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetImageList(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - wxImageList * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxListCtrl_SetImageList",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetImageList. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetImageList(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_SetItem(_swigobj,_swigarg0) (_swigobj->SetItem(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - wxListItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxListCtrl_SetItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItem. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxListItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxListCtrl_SetItem. Expected _wxListItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetStringItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->SetItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxListCtrl_SetStringItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2; - wxString * _arg3; - int _arg4 = -1; - char * _argc0 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sliO|i:wxListCtrl_SetStringItem",&_argc0,&_arg1,&_arg2,&_obj3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetStringItem. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxListCtrl_SetStringItem(_arg0,_arg1,_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxListCtrl_SetItemData(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemData(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxListCtrl_SetItemData",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemData. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemData(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemImage(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetItemImage(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_SetItemImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slii:wxListCtrl_SetItemImage",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemImage. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemImage(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetItemPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - wxPoint * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sls:wxListCtrl_SetItemPosition",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemPosition. Expected _wxListCtrl_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxListCtrl_SetItemPosition. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemPosition(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemState(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetItemState(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxListCtrl_SetItemState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxListCtrl * _arg0; - long _arg1; - long _arg2; - long _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slll:wxListCtrl_SetItemState",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemState. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxListCtrl_SetItemState(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxListCtrl_SetItemText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - long _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slO:wxListCtrl_SetItemText",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetItemText. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetItemText(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxListCtrl_SetSingleStyle(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSingleStyle(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxListCtrl_SetSingleStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - long _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sl|i:wxListCtrl_SetSingleStyle",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetSingleStyle. Expected _wxListCtrl_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetSingleStyle(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxListCtrl_SetWindowStyleFlag(_swigobj,_swigarg0) (_swigobj->SetWindowStyleFlag(_swigarg0)) -static PyObject *_wrap_wxListCtrl_SetWindowStyleFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxListCtrl * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxListCtrl_SetWindowStyleFlag",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxListCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxListCtrl_SetWindowStyleFlag. Expected _wxListCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxListCtrl_SetWindowStyleFlag(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxTreeItemId() (new wxTreeItemId()) -static PyObject *_wrap_new_wxTreeItemId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxTreeItemId")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTreeItemId *)new_wxTreeItemId(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxTreeItemId(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxTreeItemId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxTreeItemId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxTreeItemId. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxTreeItemId(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeItemId_IsOk(_swigobj) (_swigobj->IsOk()) -static PyObject *_wrap_wxTreeItemId_IsOk(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeItemId * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeItemId_IsOk",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemId_IsOk. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeItemId_IsOk(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxTreeItemData(_swigarg0) (new wxPyTreeItemData(_swigarg0)) -static PyObject *_wrap_new_wxTreeItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _result; - PyObject * _arg0 = NULL; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxTreeItemData",&_obj0)) - return NULL; - if (_obj0) -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyTreeItemData *)new_wxTreeItemData(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeItemData_GetData(_swigobj) (_swigobj->GetData()) -static PyObject *_wrap_wxTreeItemData_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPyTreeItemData * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeItemData_GetData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_GetData. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxTreeItemData_GetData(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define wxTreeItemData_SetData(_swigobj,_swigarg0) (_swigobj->SetData(_swigarg0)) -static PyObject *_wrap_wxTreeItemData_SetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _arg0; - PyObject * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxTreeItemData_SetData",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_SetData. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeItemData_SetData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeItemData_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxTreeItemData_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxPyTreeItemData * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeItemData_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_GetId. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - const wxTreeItemId & _result_ref = wxTreeItemData_GetId(_arg0); - _result = (wxTreeItemId *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeItemData_SetId(_swigobj,_swigarg0) (_swigobj->SetId(_swigarg0)) -static PyObject *_wrap_wxTreeItemData_SetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeItemData_SetId",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeItemData_SetId. Expected _wxPyTreeItemData_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeItemData_SetId. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeItemData_SetId(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxTreeEventTowxCommandEvent(void *ptr) { - wxTreeEvent *src; - wxCommandEvent *dest; - src = (wxTreeEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxTreeEventTowxEvent(void *ptr) { - wxTreeEvent *src; - wxEvent *dest; - src = (wxTreeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxTreeEvent_GetItem(_swigobj) (_swigobj->GetItem()) -static PyObject *_wrap_wxTreeEvent_GetItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetItem. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeEvent_GetItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeEvent_GetOldItem(_swigobj) (_swigobj->GetOldItem()) -static PyObject *_wrap_wxTreeEvent_GetOldItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetOldItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetOldItem. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeEvent_GetOldItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeEvent_GetPoint(_swigobj) (_swigobj->GetPoint()) -static PyObject *_wrap_wxTreeEvent_GetPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetPoint. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxTreeEvent_GetPoint(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeEvent_GetCode(_swigobj) (_swigobj->GetCode()) -static PyObject *_wrap_wxTreeEvent_GetCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTreeEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_GetCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_GetCode. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTreeEvent_GetCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeEvent_Veto(_swigobj) (_swigobj->Veto()) -static PyObject *_wrap_wxTreeEvent_Veto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeEvent_Veto",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeEvent_Veto. Expected _wxTreeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeEvent_Veto(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxTreeCtrlTowxControl(void *ptr) { - wxTreeCtrl *src; - wxControl *dest; - src = (wxTreeCtrl *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxTreeCtrlTowxWindow(void *ptr) { - wxTreeCtrl *src; - wxWindow *dest; - src = (wxTreeCtrl *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxTreeCtrlTowxEvtHandler(void *ptr) { - wxTreeCtrl *src; - wxEvtHandler *dest; - src = (wxTreeCtrl *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTreeCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxTreeCtrl(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxTreeCtrl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxTR_HAS_BUTTONS)|(wxTR_LINES_AT_ROOT); - wxValidator * _arg5 = &wxPyDefaultValidator; - char * _arg6 = "wxTreeCtrl"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|isslss:new_wxTreeCtrl",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_argc5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxTreeCtrl. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxTreeCtrl. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxTreeCtrl. Expected _wxSize_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxValidator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxTreeCtrl. Expected _wxValidator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTreeCtrl *)new_wxTreeCtrl(_arg0,_arg1,*_arg2,*_arg3,_arg4,*_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTreeCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetCount(_swigobj) (_swigobj->GetCount()) -static PyObject *_wrap_wxTreeCtrl_GetCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - size_t _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetCount. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (size_t )wxTreeCtrl_GetCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_GetIndent(_swigobj) (_swigobj->GetIndent()) -static PyObject *_wrap_wxTreeCtrl_GetIndent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned int _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetIndent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetIndent. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned int )wxTreeCtrl_GetIndent(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_SetIndent(_swigobj,_swigarg0) (_swigobj->SetIndent(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SetIndent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - unsigned int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxTreeCtrl_SetIndent",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetIndent. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetIndent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_GetImageList(_swigobj) (_swigobj->GetImageList()) -static PyObject *_wrap_wxTreeCtrl_GetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxTreeCtrl_GetImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetStateImageList(_swigobj) (_swigobj->GetStateImageList()) -static PyObject *_wrap_wxTreeCtrl_GetStateImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetStateImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetStateImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxTreeCtrl_GetStateImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_SetImageList(_swigobj,_swigarg0) (_swigobj->SetImageList(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxImageList * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_SetImageList",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetStateImageList(_swigobj,_swigarg0) (_swigobj->SetStateImageList(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SetStateImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxImageList * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_SetStateImageList",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetStateImageList. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetStateImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetStateImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_GetItemText(_swigobj,_swigarg0) (_swigobj->GetItemText(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemText",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemText. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxTreeCtrl_GetItemText(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxTreeCtrl_GetItemImage(_swigobj,_swigarg0) (_swigobj->GetItemImage(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetItemImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemImage",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTreeCtrl_GetItemImage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_GetItemSelectedImage(_swigobj,_swigarg0) (_swigobj->GetItemSelectedImage(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetItemSelectedImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemSelectedImage",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemSelectedImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxTreeCtrl_GetItemSelectedImage(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_SetItemText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxString * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_SetItemText",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemText. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemText. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemText(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxTreeCtrl_SetItemImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxTreeCtrl_SetItemImage",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemImage(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetItemSelectedImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemSelectedImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemSelectedImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxTreeCtrl_SetItemSelectedImage",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemSelectedImage. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemSelectedImage. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemSelectedImage(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetItemHasChildren(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemHasChildren(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemHasChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxTreeCtrl_SetItemHasChildren",&_argc0,&_argc1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemHasChildren. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemHasChildren(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static wxPyTreeItemData * wxTreeCtrl_GetItemData(wxTreeCtrl *self,const wxTreeItemId & item) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(); - self->SetItemData(item, data); - } - return data; - } -static PyObject *_wrap_wxTreeCtrl_GetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTreeItemData * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetItemData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetItemData. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyTreeItemData *)wxTreeCtrl_GetItemData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTreeItemData_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void wxTreeCtrl_SetItemData(wxTreeCtrl *self,const wxTreeItemId & item,wxPyTreeItemData * data) { - self->SetItemData(item, data); - } -static PyObject *_wrap_wxTreeCtrl_SetItemData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxPyTreeItemData * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss:wxTreeCtrl_SetItemData",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemData. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxTreeCtrl_SetItemData. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemData(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject * wxTreeCtrl_GetPyData(wxTreeCtrl *self,const wxTreeItemId & item) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(); - self->SetItemData(item, data); - } - return data->GetData(); - } -static PyObject *_wrap_wxTreeCtrl_GetPyData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetPyData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetPyData. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxTreeCtrl_GetPyData(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static void wxTreeCtrl_SetPyData(wxTreeCtrl *self,const wxTreeItemId & item,PyObject * obj) { - wxPyTreeItemData* data = (wxPyTreeItemData*)self->GetItemData(item); - if (data == NULL) { - data = new wxPyTreeItemData(obj); - self->SetItemData(item, data); - } else - data->SetData(obj); - } -static PyObject *_wrap_wxTreeCtrl_SetPyData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - PyObject * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_SetPyData",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetPyData. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetPyData. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - _arg2 = _obj2; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetPyData(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_IsVisible(_swigobj,_swigarg0) (_swigobj->IsVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsVisible(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_ItemHasChildren(_swigobj,_swigarg0) (_swigobj->ItemHasChildren(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_ItemHasChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_ItemHasChildren",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ItemHasChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_ItemHasChildren. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_ItemHasChildren(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_IsExpanded(_swigobj,_swigarg0) (_swigobj->IsExpanded(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsExpanded(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsExpanded",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsExpanded. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsExpanded. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsExpanded(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_IsSelected(_swigobj,_swigarg0) (_swigobj->IsSelected(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsSelected(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsSelected",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsSelected. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsSelected. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsSelected(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_GetRootItem(_swigobj) (_swigobj->GetRootItem()) -static PyObject *_wrap_wxTreeCtrl_GetRootItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetRootItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetRootItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetRootItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxTreeCtrl_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetSelection. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetSelection(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetParent(_swigobj,_swigarg0) (_swigobj->GetParent(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetParent",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetParent. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetParent. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetParent(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetFirstChild(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetFirstChild(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_GetFirstChild(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - long * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_GetFirstChild",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetFirstChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetFirstChild. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - temp = (long) PyInt_AsLong(_obj2); - _arg2 = &temp; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetFirstChild(_arg0,*_arg1,*_arg2)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTreeCtrl_GetNextChild(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetNextChild(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_GetNextChild(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - long * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - long temp; - PyObject * _obj2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxTreeCtrl_GetNextChild",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextChild. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetNextChild. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - temp = (long) PyInt_AsLong(_obj2); - _arg2 = &temp; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetNextChild(_arg0,*_arg1,*_arg2)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxTreeCtrl_GetNextSibling(_swigobj,_swigarg0) (_swigobj->GetNextSibling(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetNextSibling(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetNextSibling",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetNextSibling. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetNextSibling(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetPrevSibling(_swigobj,_swigarg0) (_swigobj->GetPrevSibling(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetPrevSibling(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetPrevSibling",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevSibling. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetPrevSibling. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetPrevSibling(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetFirstVisibleItem(_swigobj) (_swigobj->GetFirstVisibleItem()) -static PyObject *_wrap_wxTreeCtrl_GetFirstVisibleItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetFirstVisibleItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetFirstVisibleItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetFirstVisibleItem(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetNextVisible(_swigobj,_swigarg0) (_swigobj->GetNextVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetNextVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetNextVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetNextVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetNextVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetNextVisible(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetPrevVisible(_swigobj,_swigarg0) (_swigobj->GetPrevVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_GetPrevVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_GetPrevVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetPrevVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_GetPrevVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_GetPrevVisible(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_AddRoot(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->AddRoot(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxTreeCtrl_AddRoot(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxString * _arg1; - int _arg2 = -1; - int _arg3 = -1; - wxPyTreeItemData * _arg4 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sO|iis:wxTreeCtrl_AddRoot",&_argc0,&_obj1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_AddRoot. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxTreeCtrl_AddRoot. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_AddRoot(_arg0,*_arg1,_arg2,_arg3,_arg4)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxTreeCtrl_PrependItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->PrependItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxTreeCtrl_PrependItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxString * _arg2; - int _arg3 = -1; - int _arg4 = -1; - wxPyTreeItemData * _arg5 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|iis:wxTreeCtrl_PrependItem",&_argc0,&_argc1,&_obj2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_PrependItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_PrependItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxTreeCtrl_PrependItem. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_PrependItem(_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxTreeCtrl_InsertItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->InsertItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxTreeCtrl_InsertItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxTreeItemId * _arg2; - wxString * _arg3; - int _arg4 = -1; - int _arg5 = -1; - wxPyTreeItemData * _arg6 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - PyObject * _obj3 = 0; - char * _argc6 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sssO|iis:wxTreeCtrl_InsertItem",&_argc0,&_argc1,&_argc2,&_obj3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_InsertItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_InsertItem. Expected _wxTreeItemId_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxTreeCtrl_InsertItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxTreeCtrl_InsertItem. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_InsertItem(_arg0,*_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxTreeCtrl_AppendItem(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->AppendItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxTreeCtrl_AppendItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - wxString * _arg2; - int _arg3 = -1; - int _arg4 = -1; - wxPyTreeItemData * _arg5 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|iis:wxTreeCtrl_AppendItem",&_argc0,&_argc1,&_obj2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_AppendItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_AppendItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxPyTreeItemData_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxTreeCtrl_AppendItem. Expected _wxPyTreeItemData_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_AppendItem(_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxTreeCtrl_Delete(_swigobj,_swigarg0) (_swigobj->Delete(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Delete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Delete",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Delete. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Delete. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Delete(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_DeleteChildren(_swigobj,_swigarg0) (_swigobj->DeleteChildren(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_DeleteChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_DeleteChildren",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_DeleteChildren. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_DeleteChildren. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_DeleteChildren(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_DeleteAllItems(_swigobj) (_swigobj->DeleteAllItems()) -static PyObject *_wrap_wxTreeCtrl_DeleteAllItems(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_DeleteAllItems",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_DeleteAllItems. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_DeleteAllItems(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Expand(_swigobj,_swigarg0) (_swigobj->Expand(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Expand(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Expand",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Expand. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Expand. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Expand(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Collapse(_swigobj,_swigarg0) (_swigobj->Collapse(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Collapse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Collapse",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Collapse. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Collapse. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Collapse(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_CollapseAndReset(_swigobj,_swigarg0) (_swigobj->CollapseAndReset(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_CollapseAndReset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_CollapseAndReset",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_CollapseAndReset. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_CollapseAndReset. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_CollapseAndReset(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Toggle(_swigobj,_swigarg0) (_swigobj->Toggle(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_Toggle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_Toggle",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Toggle. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_Toggle. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Toggle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_Unselect(_swigobj) (_swigobj->Unselect()) -static PyObject *_wrap_wxTreeCtrl_Unselect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_Unselect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_Unselect. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_Unselect(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SelectItem(_swigobj,_swigarg0) (_swigobj->SelectItem(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_SelectItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_SelectItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SelectItem. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SelectItem. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SelectItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_EnsureVisible(_swigobj,_swigarg0) (_swigobj->EnsureVisible(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_EnsureVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_EnsureVisible",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EnsureVisible. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_EnsureVisible. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_EnsureVisible(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_ScrollTo(_swigobj,_swigarg0) (_swigobj->ScrollTo(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_ScrollTo(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_ScrollTo",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_ScrollTo. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_ScrollTo. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_ScrollTo(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_EditLabel(_swigobj,_swigarg0) (_swigobj->EditLabel(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_EditLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_EditLabel",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_EditLabel. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxTreeCtrl_EditLabel(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_GetEditControl(_swigobj) (_swigobj->GetEditControl()) -static PyObject *_wrap_wxTreeCtrl_GetEditControl(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxTreeCtrl * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTreeCtrl_GetEditControl",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_GetEditControl. Expected _wxTreeCtrl_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxTreeCtrl_GetEditControl(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxTreeCtrl_EndEditLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->EndEditLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_EndEditLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (0); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxTreeCtrl_EndEditLabel",&_argc0,&_argc1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_EndEditLabel. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_EndEditLabel. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_EndEditLabel(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_SetItemBold(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetItemBold(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTreeCtrl_SetItemBold(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - bool _arg2 = (1); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxTreeCtrl_SetItemBold",&_argc0,&_argc1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_SetItemBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_SetItemBold. Expected _wxTreeItemId_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxTreeCtrl_SetItemBold(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTreeCtrl_IsBold(_swigobj,_swigarg0) (_swigobj->IsBold(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_IsBold(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTreeCtrl * _arg0; - wxTreeItemId * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_IsBold",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_IsBold. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxTreeItemId_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_IsBold. Expected _wxTreeItemId_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTreeCtrl_IsBold(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTreeCtrl_HitTest(_swigobj,_swigarg0) (_swigobj->HitTest(_swigarg0)) -static PyObject *_wrap_wxTreeCtrl_HitTest(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTreeItemId * _result; - wxTreeCtrl * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTreeCtrl_HitTest",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTreeCtrl_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTreeCtrl_HitTest. Expected _wxTreeCtrl_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTreeCtrl_HitTest. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxTreeItemId (wxTreeCtrl_HitTest(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxTreeItemId_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef controls2cMethods[] = { - { "wxTreeCtrl_HitTest", _wrap_wxTreeCtrl_HitTest, 1 }, - { "wxTreeCtrl_IsBold", _wrap_wxTreeCtrl_IsBold, 1 }, - { "wxTreeCtrl_SetItemBold", _wrap_wxTreeCtrl_SetItemBold, 1 }, - { "wxTreeCtrl_EndEditLabel", _wrap_wxTreeCtrl_EndEditLabel, 1 }, - { "wxTreeCtrl_GetEditControl", _wrap_wxTreeCtrl_GetEditControl, 1 }, - { "wxTreeCtrl_EditLabel", _wrap_wxTreeCtrl_EditLabel, 1 }, - { "wxTreeCtrl_ScrollTo", _wrap_wxTreeCtrl_ScrollTo, 1 }, - { "wxTreeCtrl_EnsureVisible", _wrap_wxTreeCtrl_EnsureVisible, 1 }, - { "wxTreeCtrl_SelectItem", _wrap_wxTreeCtrl_SelectItem, 1 }, - { "wxTreeCtrl_Unselect", _wrap_wxTreeCtrl_Unselect, 1 }, - { "wxTreeCtrl_Toggle", _wrap_wxTreeCtrl_Toggle, 1 }, - { "wxTreeCtrl_CollapseAndReset", _wrap_wxTreeCtrl_CollapseAndReset, 1 }, - { "wxTreeCtrl_Collapse", _wrap_wxTreeCtrl_Collapse, 1 }, - { "wxTreeCtrl_Expand", _wrap_wxTreeCtrl_Expand, 1 }, - { "wxTreeCtrl_DeleteAllItems", _wrap_wxTreeCtrl_DeleteAllItems, 1 }, - { "wxTreeCtrl_DeleteChildren", _wrap_wxTreeCtrl_DeleteChildren, 1 }, - { "wxTreeCtrl_Delete", _wrap_wxTreeCtrl_Delete, 1 }, - { "wxTreeCtrl_AppendItem", _wrap_wxTreeCtrl_AppendItem, 1 }, - { "wxTreeCtrl_InsertItem", _wrap_wxTreeCtrl_InsertItem, 1 }, - { "wxTreeCtrl_PrependItem", _wrap_wxTreeCtrl_PrependItem, 1 }, - { "wxTreeCtrl_AddRoot", _wrap_wxTreeCtrl_AddRoot, 1 }, - { "wxTreeCtrl_GetPrevVisible", _wrap_wxTreeCtrl_GetPrevVisible, 1 }, - { "wxTreeCtrl_GetNextVisible", _wrap_wxTreeCtrl_GetNextVisible, 1 }, - { "wxTreeCtrl_GetFirstVisibleItem", _wrap_wxTreeCtrl_GetFirstVisibleItem, 1 }, - { "wxTreeCtrl_GetPrevSibling", _wrap_wxTreeCtrl_GetPrevSibling, 1 }, - { "wxTreeCtrl_GetNextSibling", _wrap_wxTreeCtrl_GetNextSibling, 1 }, - { "wxTreeCtrl_GetNextChild", _wrap_wxTreeCtrl_GetNextChild, 1 }, - { "wxTreeCtrl_GetFirstChild", _wrap_wxTreeCtrl_GetFirstChild, 1 }, - { "wxTreeCtrl_GetParent", _wrap_wxTreeCtrl_GetParent, 1 }, - { "wxTreeCtrl_GetSelection", _wrap_wxTreeCtrl_GetSelection, 1 }, - { "wxTreeCtrl_GetRootItem", _wrap_wxTreeCtrl_GetRootItem, 1 }, - { "wxTreeCtrl_IsSelected", _wrap_wxTreeCtrl_IsSelected, 1 }, - { "wxTreeCtrl_IsExpanded", _wrap_wxTreeCtrl_IsExpanded, 1 }, - { "wxTreeCtrl_ItemHasChildren", _wrap_wxTreeCtrl_ItemHasChildren, 1 }, - { "wxTreeCtrl_IsVisible", _wrap_wxTreeCtrl_IsVisible, 1 }, - { "wxTreeCtrl_SetPyData", _wrap_wxTreeCtrl_SetPyData, 1 }, - { "wxTreeCtrl_GetPyData", _wrap_wxTreeCtrl_GetPyData, 1 }, - { "wxTreeCtrl_SetItemData", _wrap_wxTreeCtrl_SetItemData, 1 }, - { "wxTreeCtrl_GetItemData", _wrap_wxTreeCtrl_GetItemData, 1 }, - { "wxTreeCtrl_SetItemHasChildren", _wrap_wxTreeCtrl_SetItemHasChildren, 1 }, - { "wxTreeCtrl_SetItemSelectedImage", _wrap_wxTreeCtrl_SetItemSelectedImage, 1 }, - { "wxTreeCtrl_SetItemImage", _wrap_wxTreeCtrl_SetItemImage, 1 }, - { "wxTreeCtrl_SetItemText", _wrap_wxTreeCtrl_SetItemText, 1 }, - { "wxTreeCtrl_GetItemSelectedImage", _wrap_wxTreeCtrl_GetItemSelectedImage, 1 }, - { "wxTreeCtrl_GetItemImage", _wrap_wxTreeCtrl_GetItemImage, 1 }, - { "wxTreeCtrl_GetItemText", _wrap_wxTreeCtrl_GetItemText, 1 }, - { "wxTreeCtrl_SetStateImageList", _wrap_wxTreeCtrl_SetStateImageList, 1 }, - { "wxTreeCtrl_SetImageList", _wrap_wxTreeCtrl_SetImageList, 1 }, - { "wxTreeCtrl_GetStateImageList", _wrap_wxTreeCtrl_GetStateImageList, 1 }, - { "wxTreeCtrl_GetImageList", _wrap_wxTreeCtrl_GetImageList, 1 }, - { "wxTreeCtrl_SetIndent", _wrap_wxTreeCtrl_SetIndent, 1 }, - { "wxTreeCtrl_GetIndent", _wrap_wxTreeCtrl_GetIndent, 1 }, - { "wxTreeCtrl_GetCount", _wrap_wxTreeCtrl_GetCount, 1 }, - { "new_wxTreeCtrl", _wrap_new_wxTreeCtrl, 1 }, - { "wxTreeEvent_Veto", _wrap_wxTreeEvent_Veto, 1 }, - { "wxTreeEvent_GetCode", _wrap_wxTreeEvent_GetCode, 1 }, - { "wxTreeEvent_GetPoint", _wrap_wxTreeEvent_GetPoint, 1 }, - { "wxTreeEvent_GetOldItem", _wrap_wxTreeEvent_GetOldItem, 1 }, - { "wxTreeEvent_GetItem", _wrap_wxTreeEvent_GetItem, 1 }, - { "wxTreeItemData_SetId", _wrap_wxTreeItemData_SetId, 1 }, - { "wxTreeItemData_GetId", _wrap_wxTreeItemData_GetId, 1 }, - { "wxTreeItemData_SetData", _wrap_wxTreeItemData_SetData, 1 }, - { "wxTreeItemData_GetData", _wrap_wxTreeItemData_GetData, 1 }, - { "new_wxTreeItemData", _wrap_new_wxTreeItemData, 1 }, - { "wxTreeItemId_IsOk", _wrap_wxTreeItemId_IsOk, 1 }, - { "delete_wxTreeItemId", _wrap_delete_wxTreeItemId, 1 }, - { "new_wxTreeItemId", _wrap_new_wxTreeItemId, 1 }, - { "wxListCtrl_SetWindowStyleFlag", _wrap_wxListCtrl_SetWindowStyleFlag, 1 }, - { "wxListCtrl_SetSingleStyle", _wrap_wxListCtrl_SetSingleStyle, 1 }, - { "wxListCtrl_SetItemText", _wrap_wxListCtrl_SetItemText, 1 }, - { "wxListCtrl_SetItemState", _wrap_wxListCtrl_SetItemState, 1 }, - { "wxListCtrl_SetItemPosition", _wrap_wxListCtrl_SetItemPosition, 1 }, - { "wxListCtrl_SetItemImage", _wrap_wxListCtrl_SetItemImage, 1 }, - { "wxListCtrl_SetItemData", _wrap_wxListCtrl_SetItemData, 1 }, - { "wxListCtrl_SetStringItem", _wrap_wxListCtrl_SetStringItem, 1 }, - { "wxListCtrl_SetItem", _wrap_wxListCtrl_SetItem, 1 }, - { "wxListCtrl_SetImageList", _wrap_wxListCtrl_SetImageList, 1 }, - { "wxListCtrl_SetColumnWidth", _wrap_wxListCtrl_SetColumnWidth, 1 }, - { "wxListCtrl_SetColumn", _wrap_wxListCtrl_SetColumn, 1 }, - { "wxListCtrl_SetBackgroundColour", _wrap_wxListCtrl_SetBackgroundColour, 1 }, - { "wxListCtrl_ScrollList", _wrap_wxListCtrl_ScrollList, 1 }, - { "wxListCtrl_InsertImageStringItem", _wrap_wxListCtrl_InsertImageStringItem, 1 }, - { "wxListCtrl_InsertImageItem", _wrap_wxListCtrl_InsertImageItem, 1 }, - { "wxListCtrl_InsertStringItem", _wrap_wxListCtrl_InsertStringItem, 1 }, - { "wxListCtrl_InsertItem", _wrap_wxListCtrl_InsertItem, 1 }, - { "wxListCtrl_InsertColumn", _wrap_wxListCtrl_InsertColumn, 1 }, - { "wxListCtrl_InsertColumnWith", _wrap_wxListCtrl_InsertColumnWith, 1 }, - { "wxListCtrl_HitTest", _wrap_wxListCtrl_HitTest, 1 }, - { "wxListCtrl_GetTopItem", _wrap_wxListCtrl_GetTopItem, 1 }, - { "wxListCtrl_SetTextColour", _wrap_wxListCtrl_SetTextColour, 1 }, - { "wxListCtrl_GetTextColour", _wrap_wxListCtrl_GetTextColour, 1 }, - { "wxListCtrl_GetSelectedItemCount", _wrap_wxListCtrl_GetSelectedItemCount, 1 }, - { "wxListCtrl_GetNextItem", _wrap_wxListCtrl_GetNextItem, 1 }, - { "wxListCtrl_GetItemText", _wrap_wxListCtrl_GetItemText, 1 }, - { "wxListCtrl_GetItemSpacing", _wrap_wxListCtrl_GetItemSpacing, 1 }, - { "wxListCtrl_GetItemCount", _wrap_wxListCtrl_GetItemCount, 1 }, - { "wxListCtrl_GetItemState", _wrap_wxListCtrl_GetItemState, 1 }, - { "wxListCtrl_GetItemRect", _wrap_wxListCtrl_GetItemRect, 1 }, - { "wxListCtrl_GetItemPosition", _wrap_wxListCtrl_GetItemPosition, 1 }, - { "wxListCtrl_GetItem", _wrap_wxListCtrl_GetItem, 1 }, - { "wxListCtrl_GetItemData", _wrap_wxListCtrl_GetItemData, 1 }, - { "wxListCtrl_GetImageList", _wrap_wxListCtrl_GetImageList, 1 }, - { "wxListCtrl_GetCountPerPage", _wrap_wxListCtrl_GetCountPerPage, 1 }, - { "wxListCtrl_GetColumnWidth", _wrap_wxListCtrl_GetColumnWidth, 1 }, - { "wxListCtrl_GetColumn", _wrap_wxListCtrl_GetColumn, 1 }, - { "wxListCtrl_FindItemAtPos", _wrap_wxListCtrl_FindItemAtPos, 1 }, - { "wxListCtrl_FindItemData", _wrap_wxListCtrl_FindItemData, 1 }, - { "wxListCtrl_FindItem", _wrap_wxListCtrl_FindItem, 1 }, - { "wxListCtrl_EnsureVisible", _wrap_wxListCtrl_EnsureVisible, 1 }, - { "wxListCtrl_GetEditControl", _wrap_wxListCtrl_GetEditControl, 1 }, - { "wxListCtrl_EndEditLabel", _wrap_wxListCtrl_EndEditLabel, 1 }, - { "wxListCtrl_EditLabel", _wrap_wxListCtrl_EditLabel, 1 }, - { "wxListCtrl_ClearAll", _wrap_wxListCtrl_ClearAll, 1 }, - { "wxListCtrl_DeleteAllColumns", _wrap_wxListCtrl_DeleteAllColumns, 1 }, - { "wxListCtrl_DeleteColumn", _wrap_wxListCtrl_DeleteColumn, 1 }, - { "wxListCtrl_DeleteAllItems", _wrap_wxListCtrl_DeleteAllItems, 1 }, - { "wxListCtrl_DeleteItem", _wrap_wxListCtrl_DeleteItem, 1 }, - { "wxListCtrl_Arrange", _wrap_wxListCtrl_Arrange, 1 }, - { "new_wxListCtrl", _wrap_new_wxListCtrl, 1 }, - { "wxListEvent_m_item_get", _wrap_wxListEvent_m_item_get, 1 }, - { "wxListEvent_m_item_set", _wrap_wxListEvent_m_item_set, 1 }, - { "wxListEvent_m_pointDrag_get", _wrap_wxListEvent_m_pointDrag_get, 1 }, - { "wxListEvent_m_pointDrag_set", _wrap_wxListEvent_m_pointDrag_set, 1 }, - { "wxListEvent_m_cancelled_get", _wrap_wxListEvent_m_cancelled_get, 1 }, - { "wxListEvent_m_cancelled_set", _wrap_wxListEvent_m_cancelled_set, 1 }, - { "wxListEvent_m_col_get", _wrap_wxListEvent_m_col_get, 1 }, - { "wxListEvent_m_col_set", _wrap_wxListEvent_m_col_set, 1 }, - { "wxListEvent_m_oldItemIndex_get", _wrap_wxListEvent_m_oldItemIndex_get, 1 }, - { "wxListEvent_m_oldItemIndex_set", _wrap_wxListEvent_m_oldItemIndex_set, 1 }, - { "wxListEvent_m_itemIndex_get", _wrap_wxListEvent_m_itemIndex_get, 1 }, - { "wxListEvent_m_itemIndex_set", _wrap_wxListEvent_m_itemIndex_set, 1 }, - { "wxListEvent_m_code_get", _wrap_wxListEvent_m_code_get, 1 }, - { "wxListEvent_m_code_set", _wrap_wxListEvent_m_code_set, 1 }, - { "delete_wxListItem", _wrap_delete_wxListItem, 1 }, - { "new_wxListItem", _wrap_new_wxListItem, 1 }, - { "wxListItem_m_width_get", _wrap_wxListItem_m_width_get, 1 }, - { "wxListItem_m_width_set", _wrap_wxListItem_m_width_set, 1 }, - { "wxListItem_m_format_get", _wrap_wxListItem_m_format_get, 1 }, - { "wxListItem_m_format_set", _wrap_wxListItem_m_format_set, 1 }, - { "wxListItem_m_data_get", _wrap_wxListItem_m_data_get, 1 }, - { "wxListItem_m_data_set", _wrap_wxListItem_m_data_set, 1 }, - { "wxListItem_m_image_get", _wrap_wxListItem_m_image_get, 1 }, - { "wxListItem_m_image_set", _wrap_wxListItem_m_image_set, 1 }, - { "wxListItem_m_text_get", _wrap_wxListItem_m_text_get, 1 }, - { "wxListItem_m_text_set", _wrap_wxListItem_m_text_set, 1 }, - { "wxListItem_m_stateMask_get", _wrap_wxListItem_m_stateMask_get, 1 }, - { "wxListItem_m_stateMask_set", _wrap_wxListItem_m_stateMask_set, 1 }, - { "wxListItem_m_state_get", _wrap_wxListItem_m_state_get, 1 }, - { "wxListItem_m_state_set", _wrap_wxListItem_m_state_set, 1 }, - { "wxListItem_m_col_get", _wrap_wxListItem_m_col_get, 1 }, - { "wxListItem_m_col_set", _wrap_wxListItem_m_col_set, 1 }, - { "wxListItem_m_itemId_get", _wrap_wxListItem_m_itemId_get, 1 }, - { "wxListItem_m_itemId_set", _wrap_wxListItem_m_itemId_set, 1 }, - { "wxListItem_m_mask_get", _wrap_wxListItem_m_mask_get, 1 }, - { "wxListItem_m_mask_set", _wrap_wxListItem_m_mask_set, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initcontrols2c)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("controls2c", controls2cMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxLIST_MASK_TEXT", PyInt_FromLong((long) wxLIST_MASK_TEXT)); - PyDict_SetItemString(d,"wxLIST_MASK_IMAGE", PyInt_FromLong((long) wxLIST_MASK_IMAGE)); - PyDict_SetItemString(d,"wxLIST_MASK_DATA", PyInt_FromLong((long) wxLIST_MASK_DATA)); - PyDict_SetItemString(d,"wxLIST_MASK_WIDTH", PyInt_FromLong((long) wxLIST_MASK_WIDTH)); - PyDict_SetItemString(d,"wxLIST_MASK_FORMAT", PyInt_FromLong((long) wxLIST_MASK_FORMAT)); - PyDict_SetItemString(d,"wxLIST_STATE_DONTCARE", PyInt_FromLong((long) wxLIST_STATE_DONTCARE)); - PyDict_SetItemString(d,"wxLIST_STATE_DROPHILITED", PyInt_FromLong((long) wxLIST_STATE_DROPHILITED)); - PyDict_SetItemString(d,"wxLIST_STATE_FOCUSED", PyInt_FromLong((long) wxLIST_STATE_FOCUSED)); - PyDict_SetItemString(d,"wxLIST_STATE_SELECTED", PyInt_FromLong((long) wxLIST_STATE_SELECTED)); - PyDict_SetItemString(d,"wxLIST_STATE_CUT", PyInt_FromLong((long) wxLIST_STATE_CUT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ABOVE", PyInt_FromLong((long) wxLIST_HITTEST_ABOVE)); - PyDict_SetItemString(d,"wxLIST_HITTEST_BELOW", PyInt_FromLong((long) wxLIST_HITTEST_BELOW)); - PyDict_SetItemString(d,"wxLIST_HITTEST_NOWHERE", PyInt_FromLong((long) wxLIST_HITTEST_NOWHERE)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMICON", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMICON)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMLABEL", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMLABEL)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMRIGHT", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMRIGHT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEMSTATEICON", PyInt_FromLong((long) wxLIST_HITTEST_ONITEMSTATEICON)); - PyDict_SetItemString(d,"wxLIST_HITTEST_TOLEFT", PyInt_FromLong((long) wxLIST_HITTEST_TOLEFT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_TORIGHT", PyInt_FromLong((long) wxLIST_HITTEST_TORIGHT)); - PyDict_SetItemString(d,"wxLIST_HITTEST_ONITEM", PyInt_FromLong((long) wxLIST_HITTEST_ONITEM)); - PyDict_SetItemString(d,"wxLIST_NEXT_ABOVE", PyInt_FromLong((long) wxLIST_NEXT_ABOVE)); - PyDict_SetItemString(d,"wxLIST_NEXT_ALL", PyInt_FromLong((long) wxLIST_NEXT_ALL)); - PyDict_SetItemString(d,"wxLIST_NEXT_BELOW", PyInt_FromLong((long) wxLIST_NEXT_BELOW)); - PyDict_SetItemString(d,"wxLIST_NEXT_LEFT", PyInt_FromLong((long) wxLIST_NEXT_LEFT)); - PyDict_SetItemString(d,"wxLIST_NEXT_RIGHT", PyInt_FromLong((long) wxLIST_NEXT_RIGHT)); - PyDict_SetItemString(d,"wxLIST_ALIGN_DEFAULT", PyInt_FromLong((long) wxLIST_ALIGN_DEFAULT)); - PyDict_SetItemString(d,"wxLIST_ALIGN_LEFT", PyInt_FromLong((long) wxLIST_ALIGN_LEFT)); - PyDict_SetItemString(d,"wxLIST_ALIGN_TOP", PyInt_FromLong((long) wxLIST_ALIGN_TOP)); - PyDict_SetItemString(d,"wxLIST_ALIGN_SNAP_TO_GRID", PyInt_FromLong((long) wxLIST_ALIGN_SNAP_TO_GRID)); - PyDict_SetItemString(d,"wxLIST_FORMAT_LEFT", PyInt_FromLong((long) wxLIST_FORMAT_LEFT)); - PyDict_SetItemString(d,"wxLIST_FORMAT_RIGHT", PyInt_FromLong((long) wxLIST_FORMAT_RIGHT)); - PyDict_SetItemString(d,"wxLIST_FORMAT_CENTRE", PyInt_FromLong((long) wxLIST_FORMAT_CENTRE)); - PyDict_SetItemString(d,"wxLIST_FORMAT_CENTER", PyInt_FromLong((long) wxLIST_FORMAT_CENTER)); - PyDict_SetItemString(d,"wxLIST_AUTOSIZE", PyInt_FromLong((long) wxLIST_AUTOSIZE)); - PyDict_SetItemString(d,"wxLIST_AUTOSIZE_USEHEADER", PyInt_FromLong((long) wxLIST_AUTOSIZE_USEHEADER)); - PyDict_SetItemString(d,"wxLIST_RECT_BOUNDS", PyInt_FromLong((long) wxLIST_RECT_BOUNDS)); - PyDict_SetItemString(d,"wxLIST_RECT_ICON", PyInt_FromLong((long) wxLIST_RECT_ICON)); - PyDict_SetItemString(d,"wxLIST_RECT_LABEL", PyInt_FromLong((long) wxLIST_RECT_LABEL)); - PyDict_SetItemString(d,"wxLIST_FIND_UP", PyInt_FromLong((long) wxLIST_FIND_UP)); - PyDict_SetItemString(d,"wxLIST_FIND_DOWN", PyInt_FromLong((long) wxLIST_FIND_DOWN)); - PyDict_SetItemString(d,"wxLIST_FIND_LEFT", PyInt_FromLong((long) wxLIST_FIND_LEFT)); - PyDict_SetItemString(d,"wxLIST_FIND_RIGHT", PyInt_FromLong((long) wxLIST_FIND_RIGHT)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxPyTreeItemData","_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxListEvent","_class_wxListEvent",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxTreeEvent",SwigwxTreeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxListEvent",SwigwxListEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxListItem","_class_wxListItem",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxTreeEvent","_wxTreeEvent",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_wxListCtrl","_class_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxTreeItemId","_class_wxTreeItemId",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxListItem","_wxListItem",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxListEvent","_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_wxPyTreeItemData","_class_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxTreeItemId","_wxTreeItemId",0); - SWIG_RegisterMapping("_wxTreeCtrl","_class_wxTreeCtrl",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxTreeCtrl",SwigwxTreeCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_class_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxListCtrl",SwigwxListCtrlTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxTreeEvent",SwigwxTreeEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxListEvent",SwigwxListEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxListCtrl","_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxTreeEvent","_class_wxTreeEvent",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTreeCtrl",SwigwxTreeCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxListCtrl",SwigwxListCtrlTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxTreeCtrl",SwigwxTreeCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxListCtrl",SwigwxListCtrlTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/msw/controls2.py b/utils/wxPython/src/msw/controls2.py deleted file mode 100644 index 7df4455454..0000000000 --- a/utils/wxPython/src/msw/controls2.py +++ /dev/null @@ -1,692 +0,0 @@ -# This file was created automatically by SWIG. -import controls2c - -from misc import * - -from windows import * - -from gdi import * - -from events import * - -from controls import * -import wx -class wxListItemPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - controls2c.delete_wxListItem(self.this) - def __setattr__(self,name,value): - if name == "m_mask" : - controls2c.wxListItem_m_mask_set(self.this,value) - return - if name == "m_itemId" : - controls2c.wxListItem_m_itemId_set(self.this,value) - return - if name == "m_col" : - controls2c.wxListItem_m_col_set(self.this,value) - return - if name == "m_state" : - controls2c.wxListItem_m_state_set(self.this,value) - return - if name == "m_stateMask" : - controls2c.wxListItem_m_stateMask_set(self.this,value) - return - if name == "m_text" : - controls2c.wxListItem_m_text_set(self.this,value) - return - if name == "m_image" : - controls2c.wxListItem_m_image_set(self.this,value) - return - if name == "m_data" : - controls2c.wxListItem_m_data_set(self.this,value) - return - if name == "m_format" : - controls2c.wxListItem_m_format_set(self.this,value) - return - if name == "m_width" : - controls2c.wxListItem_m_width_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_mask" : - return controls2c.wxListItem_m_mask_get(self.this) - if name == "m_itemId" : - return controls2c.wxListItem_m_itemId_get(self.this) - if name == "m_col" : - return controls2c.wxListItem_m_col_get(self.this) - if name == "m_state" : - return controls2c.wxListItem_m_state_get(self.this) - if name == "m_stateMask" : - return controls2c.wxListItem_m_stateMask_get(self.this) - if name == "m_text" : - return controls2c.wxListItem_m_text_get(self.this) - if name == "m_image" : - return controls2c.wxListItem_m_image_get(self.this) - if name == "m_data" : - return controls2c.wxListItem_m_data_get(self.this) - if name == "m_format" : - return controls2c.wxListItem_m_format_get(self.this) - if name == "m_width" : - return controls2c.wxListItem_m_width_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" -class wxListItem(wxListItemPtr): - def __init__(self) : - self.this = controls2c.new_wxListItem() - self.thisown = 1 - - - - -class wxListEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __setattr__(self,name,value): - if name == "m_code" : - controls2c.wxListEvent_m_code_set(self.this,value) - return - if name == "m_itemIndex" : - controls2c.wxListEvent_m_itemIndex_set(self.this,value) - return - if name == "m_oldItemIndex" : - controls2c.wxListEvent_m_oldItemIndex_set(self.this,value) - return - if name == "m_col" : - controls2c.wxListEvent_m_col_set(self.this,value) - return - if name == "m_cancelled" : - controls2c.wxListEvent_m_cancelled_set(self.this,value) - return - if name == "m_pointDrag" : - controls2c.wxListEvent_m_pointDrag_set(self.this,value.this) - return - if name == "m_item" : - controls2c.wxListEvent_m_item_set(self.this,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_code" : - return controls2c.wxListEvent_m_code_get(self.this) - if name == "m_itemIndex" : - return controls2c.wxListEvent_m_itemIndex_get(self.this) - if name == "m_oldItemIndex" : - return controls2c.wxListEvent_m_oldItemIndex_get(self.this) - if name == "m_col" : - return controls2c.wxListEvent_m_col_get(self.this) - if name == "m_cancelled" : - return controls2c.wxListEvent_m_cancelled_get(self.this) - if name == "m_pointDrag" : - return wxPointPtr(controls2c.wxListEvent_m_pointDrag_get(self.this)) - if name == "m_item" : - return wxListItemPtr(controls2c.wxListEvent_m_item_get(self.this)) - raise AttributeError,name - def __repr__(self): - return "" -class wxListEvent(wxListEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxListCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Arrange(self,*args): - val = apply(controls2c.wxListCtrl_Arrange,(self.this,)+args) - return val - def DeleteItem(self,arg0): - val = controls2c.wxListCtrl_DeleteItem(self.this,arg0) - return val - def DeleteAllItems(self): - val = controls2c.wxListCtrl_DeleteAllItems(self.this) - return val - def DeleteColumn(self,arg0): - val = controls2c.wxListCtrl_DeleteColumn(self.this,arg0) - return val - def DeleteAllColumns(self): - val = controls2c.wxListCtrl_DeleteAllColumns(self.this) - return val - def ClearAll(self): - val = controls2c.wxListCtrl_ClearAll(self.this) - return val - def EditLabel(self,arg0): - val = controls2c.wxListCtrl_EditLabel(self.this,arg0) - val = wxTextCtrlPtr(val) - return val - def EndEditLabel(self,arg0): - val = controls2c.wxListCtrl_EndEditLabel(self.this,arg0) - return val - def GetEditControl(self): - val = controls2c.wxListCtrl_GetEditControl(self.this) - val = wxTextCtrlPtr(val) - return val - def EnsureVisible(self,arg0): - val = controls2c.wxListCtrl_EnsureVisible(self.this,arg0) - return val - def FindItem(self,arg0,arg1,*args): - val = apply(controls2c.wxListCtrl_FindItem,(self.this,arg0,arg1,)+args) - return val - def FindItemData(self,arg0,arg1): - val = controls2c.wxListCtrl_FindItemData(self.this,arg0,arg1) - return val - def FindItemAtPos(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_FindItemAtPos(self.this,arg0,arg1.this,arg2) - return val - def GetColumn(self,arg0,arg1): - val = controls2c.wxListCtrl_GetColumn(self.this,arg0,arg1.this) - return val - def GetColumnWidth(self,arg0): - val = controls2c.wxListCtrl_GetColumnWidth(self.this,arg0) - return val - def GetCountPerPage(self): - val = controls2c.wxListCtrl_GetCountPerPage(self.this) - return val - def GetImageList(self,arg0): - val = controls2c.wxListCtrl_GetImageList(self.this,arg0) - val = wxImageListPtr(val) - return val - def GetItemData(self,arg0): - val = controls2c.wxListCtrl_GetItemData(self.this,arg0) - return val - def GetItem(self,arg0): - val = controls2c.wxListCtrl_GetItem(self.this,arg0) - val = wxListItemPtr(val) - val.thisown = 1 - return val - def GetItemPosition(self,arg0): - val = controls2c.wxListCtrl_GetItemPosition(self.this,arg0) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetItemRect(self,arg0,*args): - val = apply(controls2c.wxListCtrl_GetItemRect,(self.this,arg0,)+args) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetItemState(self,arg0,arg1): - val = controls2c.wxListCtrl_GetItemState(self.this,arg0,arg1) - return val - def GetItemCount(self): - val = controls2c.wxListCtrl_GetItemCount(self.this) - return val - def GetItemSpacing(self,arg0): - val = controls2c.wxListCtrl_GetItemSpacing(self.this,arg0) - return val - def GetItemText(self,arg0): - val = controls2c.wxListCtrl_GetItemText(self.this,arg0) - return val - def GetNextItem(self,arg0,*args): - val = apply(controls2c.wxListCtrl_GetNextItem,(self.this,arg0,)+args) - return val - def GetSelectedItemCount(self): - val = controls2c.wxListCtrl_GetSelectedItemCount(self.this) - return val - def GetTextColour(self): - val = controls2c.wxListCtrl_GetTextColour(self.this) - val = wxColourPtr(val) - val.thisown = 1 - return val - def SetTextColour(self,arg0): - val = controls2c.wxListCtrl_SetTextColour(self.this,arg0.this) - return val - def GetTopItem(self): - val = controls2c.wxListCtrl_GetTopItem(self.this) - return val - def HitTest(self,arg0): - val = controls2c.wxListCtrl_HitTest(self.this,arg0.this) - return val - def InsertColumnWith(self,arg0,arg1): - val = controls2c.wxListCtrl_InsertColumnWith(self.this,arg0,arg1.this) - return val - def InsertColumn(self,arg0,arg1,*args): - val = apply(controls2c.wxListCtrl_InsertColumn,(self.this,arg0,arg1,)+args) - return val - def InsertItem(self,arg0): - val = controls2c.wxListCtrl_InsertItem(self.this,arg0.this) - return val - def InsertStringItem(self,arg0,arg1): - val = controls2c.wxListCtrl_InsertStringItem(self.this,arg0,arg1) - return val - def InsertImageItem(self,arg0,arg1): - val = controls2c.wxListCtrl_InsertImageItem(self.this,arg0,arg1) - return val - def InsertImageStringItem(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_InsertImageStringItem(self.this,arg0,arg1,arg2) - return val - def ScrollList(self,arg0,arg1): - val = controls2c.wxListCtrl_ScrollList(self.this,arg0,arg1) - return val - def SetBackgroundColour(self,arg0): - val = controls2c.wxListCtrl_SetBackgroundColour(self.this,arg0.this) - return val - def SetColumn(self,arg0,arg1): - val = controls2c.wxListCtrl_SetColumn(self.this,arg0,arg1.this) - return val - def SetColumnWidth(self,arg0,arg1): - val = controls2c.wxListCtrl_SetColumnWidth(self.this,arg0,arg1) - return val - def SetImageList(self,arg0,arg1): - val = controls2c.wxListCtrl_SetImageList(self.this,arg0.this,arg1) - return val - def SetItem(self,arg0): - val = controls2c.wxListCtrl_SetItem(self.this,arg0.this) - return val - def SetStringItem(self,arg0,arg1,arg2,*args): - val = apply(controls2c.wxListCtrl_SetStringItem,(self.this,arg0,arg1,arg2,)+args) - return val - def SetItemData(self,arg0,arg1): - val = controls2c.wxListCtrl_SetItemData(self.this,arg0,arg1) - return val - def SetItemImage(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_SetItemImage(self.this,arg0,arg1,arg2) - return val - def SetItemPosition(self,arg0,arg1): - val = controls2c.wxListCtrl_SetItemPosition(self.this,arg0,arg1.this) - return val - def SetItemState(self,arg0,arg1,arg2): - val = controls2c.wxListCtrl_SetItemState(self.this,arg0,arg1,arg2) - return val - def SetItemText(self,arg0,arg1): - val = controls2c.wxListCtrl_SetItemText(self.this,arg0,arg1) - return val - def SetSingleStyle(self,arg0,*args): - val = apply(controls2c.wxListCtrl_SetSingleStyle,(self.this,arg0,)+args) - return val - def SetWindowStyleFlag(self,arg0): - val = controls2c.wxListCtrl_SetWindowStyleFlag(self.this,arg0) - return val - def __repr__(self): - return "" -class wxListCtrl(wxListCtrlPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(controls2c.new_wxListCtrl,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTreeItemIdPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - controls2c.delete_wxTreeItemId(self.this) - def IsOk(self): - val = controls2c.wxTreeItemId_IsOk(self.this) - return val - def __repr__(self): - return "" -class wxTreeItemId(wxTreeItemIdPtr): - def __init__(self) : - self.this = controls2c.new_wxTreeItemId() - self.thisown = 1 - - - - -class wxTreeItemDataPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetData(self): - val = controls2c.wxTreeItemData_GetData(self.this) - return val - def SetData(self,arg0): - val = controls2c.wxTreeItemData_SetData(self.this,arg0) - return val - def GetId(self): - val = controls2c.wxTreeItemData_GetId(self.this) - val = wxTreeItemIdPtr(val) - return val - def SetId(self,arg0): - val = controls2c.wxTreeItemData_SetId(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxTreeItemData(wxTreeItemDataPtr): - def __init__(self,*args) : - self.this = apply(controls2c.new_wxTreeItemData,()+args) - self.thisown = 1 - - - - -class wxTreeEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetItem(self): - val = controls2c.wxTreeEvent_GetItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetOldItem(self): - val = controls2c.wxTreeEvent_GetOldItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetPoint(self): - val = controls2c.wxTreeEvent_GetPoint(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetCode(self): - val = controls2c.wxTreeEvent_GetCode(self.this) - return val - def Veto(self): - val = controls2c.wxTreeEvent_Veto(self.this) - return val - def __repr__(self): - return "" -class wxTreeEvent(wxTreeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxTreeCtrlPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCount(self): - val = controls2c.wxTreeCtrl_GetCount(self.this) - return val - def GetIndent(self): - val = controls2c.wxTreeCtrl_GetIndent(self.this) - return val - def SetIndent(self,arg0): - val = controls2c.wxTreeCtrl_SetIndent(self.this,arg0) - return val - def GetImageList(self): - val = controls2c.wxTreeCtrl_GetImageList(self.this) - val = wxImageListPtr(val) - return val - def GetStateImageList(self): - val = controls2c.wxTreeCtrl_GetStateImageList(self.this) - val = wxImageListPtr(val) - return val - def SetImageList(self,arg0): - val = controls2c.wxTreeCtrl_SetImageList(self.this,arg0.this) - return val - def SetStateImageList(self,arg0): - val = controls2c.wxTreeCtrl_SetStateImageList(self.this,arg0.this) - return val - def GetItemText(self,arg0): - val = controls2c.wxTreeCtrl_GetItemText(self.this,arg0.this) - return val - def GetItemImage(self,arg0): - val = controls2c.wxTreeCtrl_GetItemImage(self.this,arg0.this) - return val - def GetItemSelectedImage(self,arg0): - val = controls2c.wxTreeCtrl_GetItemSelectedImage(self.this,arg0.this) - return val - def SetItemText(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemText(self.this,arg0.this,arg1) - return val - def SetItemImage(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemImage(self.this,arg0.this,arg1) - return val - def SetItemSelectedImage(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemSelectedImage(self.this,arg0.this,arg1) - return val - def SetItemHasChildren(self,arg0,*args): - val = apply(controls2c.wxTreeCtrl_SetItemHasChildren,(self.this,arg0.this,)+args) - return val - def GetItemData(self,arg0): - val = controls2c.wxTreeCtrl_GetItemData(self.this,arg0.this) - val = wxTreeItemDataPtr(val) - return val - def SetItemData(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetItemData(self.this,arg0.this,arg1.this) - return val - def GetPyData(self,arg0): - val = controls2c.wxTreeCtrl_GetPyData(self.this,arg0.this) - return val - def SetPyData(self,arg0,arg1): - val = controls2c.wxTreeCtrl_SetPyData(self.this,arg0.this,arg1) - return val - def IsVisible(self,arg0): - val = controls2c.wxTreeCtrl_IsVisible(self.this,arg0.this) - return val - def ItemHasChildren(self,arg0): - val = controls2c.wxTreeCtrl_ItemHasChildren(self.this,arg0.this) - return val - def IsExpanded(self,arg0): - val = controls2c.wxTreeCtrl_IsExpanded(self.this,arg0.this) - return val - def IsSelected(self,arg0): - val = controls2c.wxTreeCtrl_IsSelected(self.this,arg0.this) - return val - def GetRootItem(self): - val = controls2c.wxTreeCtrl_GetRootItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetSelection(self): - val = controls2c.wxTreeCtrl_GetSelection(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetParent(self,arg0): - val = controls2c.wxTreeCtrl_GetParent(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetFirstChild(self,arg0,arg1): - val = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - return val - def GetNextChild(self,arg0,arg1): - val = controls2c.wxTreeCtrl_GetNextChild(self.this,arg0.this,arg1) - return val - def GetNextSibling(self,arg0): - val = controls2c.wxTreeCtrl_GetNextSibling(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetPrevSibling(self,arg0): - val = controls2c.wxTreeCtrl_GetPrevSibling(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetFirstVisibleItem(self): - val = controls2c.wxTreeCtrl_GetFirstVisibleItem(self.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetNextVisible(self,arg0): - val = controls2c.wxTreeCtrl_GetNextVisible(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def GetPrevVisible(self,arg0): - val = controls2c.wxTreeCtrl_GetPrevVisible(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def AddRoot(self,arg0,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_AddRoot,(self.this,arg0,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def PrependItem(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_PrependItem,(self.this,arg0.this,arg1,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def InsertItem(self,arg0,arg1,arg2,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_InsertItem,(self.this,arg0.this,arg1.this,arg2,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def AppendItem(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(controls2c.wxTreeCtrl_AppendItem,(self.this,arg0.this,arg1,)+args) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def Delete(self,arg0): - val = controls2c.wxTreeCtrl_Delete(self.this,arg0.this) - return val - def DeleteChildren(self,arg0): - val = controls2c.wxTreeCtrl_DeleteChildren(self.this,arg0.this) - return val - def DeleteAllItems(self): - val = controls2c.wxTreeCtrl_DeleteAllItems(self.this) - return val - def Expand(self,arg0): - val = controls2c.wxTreeCtrl_Expand(self.this,arg0.this) - return val - def Collapse(self,arg0): - val = controls2c.wxTreeCtrl_Collapse(self.this,arg0.this) - return val - def CollapseAndReset(self,arg0): - val = controls2c.wxTreeCtrl_CollapseAndReset(self.this,arg0.this) - return val - def Toggle(self,arg0): - val = controls2c.wxTreeCtrl_Toggle(self.this,arg0.this) - return val - def Unselect(self): - val = controls2c.wxTreeCtrl_Unselect(self.this) - return val - def SelectItem(self,arg0): - val = controls2c.wxTreeCtrl_SelectItem(self.this,arg0.this) - return val - def EnsureVisible(self,arg0): - val = controls2c.wxTreeCtrl_EnsureVisible(self.this,arg0.this) - return val - def ScrollTo(self,arg0): - val = controls2c.wxTreeCtrl_ScrollTo(self.this,arg0.this) - return val - def EditLabel(self,arg0): - val = controls2c.wxTreeCtrl_EditLabel(self.this,arg0.this) - val = wxTextCtrlPtr(val) - return val - def GetEditControl(self): - val = controls2c.wxTreeCtrl_GetEditControl(self.this) - val = wxTextCtrlPtr(val) - return val - def EndEditLabel(self,arg0,*args): - val = apply(controls2c.wxTreeCtrl_EndEditLabel,(self.this,arg0.this,)+args) - return val - def SetItemBold(self,arg0,*args): - val = apply(controls2c.wxTreeCtrl_SetItemBold,(self.this,arg0.this,)+args) - return val - def IsBold(self,arg0): - val = controls2c.wxTreeCtrl_IsBold(self.this,arg0.this) - return val - def HitTest(self,arg0): - val = controls2c.wxTreeCtrl_HitTest(self.this,arg0.this) - val = wxTreeItemIdPtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" - - # Redefine a couple methods that SWIG gets a bit confused on... - def GetFirstChild(self,arg0,arg1): - val1, val2 = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - def GetNextChild(self,arg0,arg1): - val1, val2 = controls2c.wxTreeCtrl_GetFirstChild(self.this,arg0.this,arg1) - val1 = wxTreeItemIdPtr(val1) - val1.thisown = 1 - return (val1,val2) - -class wxTreeCtrl(wxTreeCtrlPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(controls2c.new_wxTreeCtrl,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxLIST_MASK_TEXT = controls2c.wxLIST_MASK_TEXT -wxLIST_MASK_IMAGE = controls2c.wxLIST_MASK_IMAGE -wxLIST_MASK_DATA = controls2c.wxLIST_MASK_DATA -wxLIST_MASK_WIDTH = controls2c.wxLIST_MASK_WIDTH -wxLIST_MASK_FORMAT = controls2c.wxLIST_MASK_FORMAT -wxLIST_STATE_DONTCARE = controls2c.wxLIST_STATE_DONTCARE -wxLIST_STATE_DROPHILITED = controls2c.wxLIST_STATE_DROPHILITED -wxLIST_STATE_FOCUSED = controls2c.wxLIST_STATE_FOCUSED -wxLIST_STATE_SELECTED = controls2c.wxLIST_STATE_SELECTED -wxLIST_STATE_CUT = controls2c.wxLIST_STATE_CUT -wxLIST_HITTEST_ABOVE = controls2c.wxLIST_HITTEST_ABOVE -wxLIST_HITTEST_BELOW = controls2c.wxLIST_HITTEST_BELOW -wxLIST_HITTEST_NOWHERE = controls2c.wxLIST_HITTEST_NOWHERE -wxLIST_HITTEST_ONITEMICON = controls2c.wxLIST_HITTEST_ONITEMICON -wxLIST_HITTEST_ONITEMLABEL = controls2c.wxLIST_HITTEST_ONITEMLABEL -wxLIST_HITTEST_ONITEMRIGHT = controls2c.wxLIST_HITTEST_ONITEMRIGHT -wxLIST_HITTEST_ONITEMSTATEICON = controls2c.wxLIST_HITTEST_ONITEMSTATEICON -wxLIST_HITTEST_TOLEFT = controls2c.wxLIST_HITTEST_TOLEFT -wxLIST_HITTEST_TORIGHT = controls2c.wxLIST_HITTEST_TORIGHT -wxLIST_HITTEST_ONITEM = controls2c.wxLIST_HITTEST_ONITEM -wxLIST_NEXT_ABOVE = controls2c.wxLIST_NEXT_ABOVE -wxLIST_NEXT_ALL = controls2c.wxLIST_NEXT_ALL -wxLIST_NEXT_BELOW = controls2c.wxLIST_NEXT_BELOW -wxLIST_NEXT_LEFT = controls2c.wxLIST_NEXT_LEFT -wxLIST_NEXT_RIGHT = controls2c.wxLIST_NEXT_RIGHT -wxLIST_ALIGN_DEFAULT = controls2c.wxLIST_ALIGN_DEFAULT -wxLIST_ALIGN_LEFT = controls2c.wxLIST_ALIGN_LEFT -wxLIST_ALIGN_TOP = controls2c.wxLIST_ALIGN_TOP -wxLIST_ALIGN_SNAP_TO_GRID = controls2c.wxLIST_ALIGN_SNAP_TO_GRID -wxLIST_FORMAT_LEFT = controls2c.wxLIST_FORMAT_LEFT -wxLIST_FORMAT_RIGHT = controls2c.wxLIST_FORMAT_RIGHT -wxLIST_FORMAT_CENTRE = controls2c.wxLIST_FORMAT_CENTRE -wxLIST_FORMAT_CENTER = controls2c.wxLIST_FORMAT_CENTER -wxLIST_AUTOSIZE = controls2c.wxLIST_AUTOSIZE -wxLIST_AUTOSIZE_USEHEADER = controls2c.wxLIST_AUTOSIZE_USEHEADER -wxLIST_RECT_BOUNDS = controls2c.wxLIST_RECT_BOUNDS -wxLIST_RECT_ICON = controls2c.wxLIST_RECT_ICON -wxLIST_RECT_LABEL = controls2c.wxLIST_RECT_LABEL -wxLIST_FIND_UP = controls2c.wxLIST_FIND_UP -wxLIST_FIND_DOWN = controls2c.wxLIST_FIND_DOWN -wxLIST_FIND_LEFT = controls2c.wxLIST_FIND_LEFT -wxLIST_FIND_RIGHT = controls2c.wxLIST_FIND_RIGHT diff --git a/utils/wxPython/src/msw/dummy b/utils/wxPython/src/msw/dummy deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/wxPython/src/msw/events.cpp b/utils/wxPython/src/msw/events.cpp deleted file mode 100644 index 4825c2f504..0000000000 --- a/utils/wxPython/src/msw/events.cpp +++ /dev/null @@ -1,3347 +0,0 @@ -/* - * FILE : msw/events.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initeventsc - -#define SWIG_name "eventsc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define wxEvent_GetEventObject(_swigobj) (_swigobj->GetEventObject()) -static PyObject *_wrap_wxEvent_GetEventObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetEventObject",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetEventObject. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxObject *)wxEvent_GetEventObject(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxEvent_GetEventType(_swigobj) (_swigobj->GetEventType()) -static PyObject *_wrap_wxEvent_GetEventType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEventType _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetEventType",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetEventType. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxEventType )wxEvent_GetEventType(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxEvent_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxEvent_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetId. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxEvent_GetId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxEvent_GetSkipped(_swigobj) (_swigobj->GetSkipped()) -static PyObject *_wrap_wxEvent_GetSkipped(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetSkipped",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetSkipped. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxEvent_GetSkipped(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxEvent_GetTimestamp(_swigobj) (_swigobj->GetTimestamp()) -static PyObject *_wrap_wxEvent_GetTimestamp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEvent_GetTimestamp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_GetTimestamp. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxEvent_GetTimestamp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxEvent_SetEventObject(_swigobj,_swigarg0) (_swigobj->SetEventObject(_swigarg0)) -static PyObject *_wrap_wxEvent_SetEventObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - wxObject * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxEvent_SetEventObject",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetEventObject. Expected _wxEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxObject_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxEvent_SetEventObject. Expected _wxObject_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetEventObject(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_SetEventType(_swigobj,_swigarg0) (_swigobj->SetEventType(_swigarg0)) -static PyObject *_wrap_wxEvent_SetEventType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - wxEventType _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxEvent_SetEventType",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetEventType. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetEventType(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_SetId(_swigobj,_swigarg0) (_swigobj->SetId(_swigarg0)) -static PyObject *_wrap_wxEvent_SetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxEvent_SetId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetId. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_SetTimestamp(_swigobj,_swigarg0) (_swigobj->SetTimestamp(_swigarg0)) -static PyObject *_wrap_wxEvent_SetTimestamp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxEvent_SetTimestamp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_SetTimestamp. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_SetTimestamp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxEvent_Skip(_swigobj,_swigarg0) (_swigobj->Skip(_swigarg0)) -static PyObject *_wrap_wxEvent_Skip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvent * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxEvent_Skip",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvent_Skip. Expected _wxEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvent_Skip(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSizeEventTowxEvent(void *ptr) { - wxSizeEvent *src; - wxEvent *dest; - src = (wxSizeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxSizeEvent_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxSizeEvent_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxSizeEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSizeEvent_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSizeEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSizeEvent_GetSize. Expected _wxSizeEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxSizeEvent_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxCloseEventTowxEvent(void *ptr) { - wxCloseEvent *src; - wxEvent *dest; - src = (wxCloseEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxCloseEvent_SetLoggingOff(_swigobj,_swigarg0) (_swigobj->SetLoggingOff(_swigarg0)) -static PyObject *_wrap_wxCloseEvent_SetLoggingOff(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCloseEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCloseEvent_SetLoggingOff",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_SetLoggingOff. Expected _wxCloseEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCloseEvent_SetLoggingOff(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCloseEvent_GetLoggingOff(_swigobj) (_swigobj->GetLoggingOff()) -static PyObject *_wrap_wxCloseEvent_GetLoggingOff(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCloseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCloseEvent_GetLoggingOff",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_GetLoggingOff. Expected _wxCloseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCloseEvent_GetLoggingOff(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCloseEvent_Veto(_swigobj,_swigarg0) (_swigobj->Veto(_swigarg0)) -static PyObject *_wrap_wxCloseEvent_Veto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCloseEvent * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxCloseEvent_Veto",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_Veto. Expected _wxCloseEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCloseEvent_Veto(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCloseEvent_CanVeto(_swigobj) (_swigobj->CanVeto()) -static PyObject *_wrap_wxCloseEvent_CanVeto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCloseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCloseEvent_CanVeto",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_CanVeto. Expected _wxCloseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCloseEvent_CanVeto(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCloseEvent_GetVeto(_swigobj) (_swigobj->GetVeto()) -static PyObject *_wrap_wxCloseEvent_GetVeto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCloseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCloseEvent_GetVeto",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_GetVeto. Expected _wxCloseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCloseEvent_GetVeto(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCloseEvent_SetCanVeto(_swigobj,_swigarg0) (_swigobj->SetCanVeto(_swigarg0)) -static PyObject *_wrap_wxCloseEvent_SetCanVeto(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCloseEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCloseEvent_SetCanVeto",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCloseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCloseEvent_SetCanVeto. Expected _wxCloseEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCloseEvent_SetCanVeto(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxCommandEventTowxEvent(void *ptr) { - wxCommandEvent *src; - wxEvent *dest; - src = (wxCommandEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxCommandEvent_Checked(_swigobj) (_swigobj->Checked()) -static PyObject *_wrap_wxCommandEvent_Checked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_Checked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_Checked. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCommandEvent_Checked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCommandEvent_GetExtraLong(_swigobj) (_swigobj->GetExtraLong()) -static PyObject *_wrap_wxCommandEvent_GetExtraLong(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetExtraLong",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetExtraLong. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxCommandEvent_GetExtraLong(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxCommandEvent_GetInt(_swigobj) (_swigobj->GetInt()) -static PyObject *_wrap_wxCommandEvent_GetInt(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetInt",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetInt. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCommandEvent_GetInt(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCommandEvent_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxCommandEvent_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetSelection. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCommandEvent_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCommandEvent_GetString(_swigobj) (_swigobj->GetString()) -static PyObject *_wrap_wxCommandEvent_GetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_GetString",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_GetString. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxCommandEvent_GetString(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxCommandEvent_IsSelection(_swigobj) (_swigobj->IsSelection()) -static PyObject *_wrap_wxCommandEvent_IsSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCommandEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCommandEvent_IsSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCommandEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCommandEvent_IsSelection. Expected _wxCommandEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCommandEvent_IsSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxScrollEventTowxCommandEvent(void *ptr) { - wxScrollEvent *src; - wxCommandEvent *dest; - src = (wxScrollEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxScrollEventTowxEvent(void *ptr) { - wxScrollEvent *src; - wxEvent *dest; - src = (wxScrollEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxScrollEvent_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxScrollEvent_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollEvent_GetOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollEvent_GetOrientation. Expected _wxScrollEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollEvent_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrollEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxScrollEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxScrollEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrollEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrollEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrollEvent_GetPosition. Expected _wxScrollEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxScrollEvent_GetPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxSpinEventTowxScrollEvent(void *ptr) { - wxSpinEvent *src; - wxScrollEvent *dest; - src = (wxSpinEvent *) ptr; - dest = (wxScrollEvent *) src; - return (void *) dest; -} - -static void *SwigwxSpinEventTowxCommandEvent(void *ptr) { - wxSpinEvent *src; - wxCommandEvent *dest; - src = (wxSpinEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxSpinEventTowxEvent(void *ptr) { - wxSpinEvent *src; - wxEvent *dest; - src = (wxSpinEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxMouseEventTowxEvent(void *ptr) { - wxMouseEvent *src; - wxEvent *dest; - src = (wxMouseEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxMouseEvent_IsButton(_swigobj) (_swigobj->IsButton()) -static PyObject *_wrap_wxMouseEvent_IsButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_IsButton",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_IsButton. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_IsButton(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonDown(_swigobj,_swigarg0) (_swigobj->ButtonDown(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMouseEvent_ButtonDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonDClick(_swigobj,_swigarg0) (_swigobj->ButtonDClick(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMouseEvent_ButtonDClick",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonDClick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonUp(_swigobj,_swigarg0) (_swigobj->ButtonUp(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMouseEvent_ButtonUp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonUp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Button(_swigobj,_swigarg0) (_swigobj->Button(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_Button(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMouseEvent_Button",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Button. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Button(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ButtonIsDown(_swigobj,_swigarg0) (_swigobj->ButtonIsDown(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_ButtonIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMouseEvent_ButtonIsDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ButtonIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ButtonIsDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ControlDown(_swigobj) (_swigobj->ControlDown()) -static PyObject *_wrap_wxMouseEvent_ControlDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_ControlDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ControlDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ControlDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MetaDown(_swigobj) (_swigobj->MetaDown()) -static PyObject *_wrap_wxMouseEvent_MetaDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MetaDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MetaDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MetaDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_AltDown(_swigobj) (_swigobj->AltDown()) -static PyObject *_wrap_wxMouseEvent_AltDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_AltDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_AltDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_AltDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_ShiftDown(_swigobj) (_swigobj->ShiftDown()) -static PyObject *_wrap_wxMouseEvent_ShiftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_ShiftDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_ShiftDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_ShiftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftDown(_swigobj) (_swigobj->LeftDown()) -static PyObject *_wrap_wxMouseEvent_LeftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleDown(_swigobj) (_swigobj->MiddleDown()) -static PyObject *_wrap_wxMouseEvent_MiddleDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightDown(_swigobj) (_swigobj->RightDown()) -static PyObject *_wrap_wxMouseEvent_RightDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftUp(_swigobj) (_swigobj->LeftUp()) -static PyObject *_wrap_wxMouseEvent_LeftUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftUp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftUp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleUp(_swigobj) (_swigobj->MiddleUp()) -static PyObject *_wrap_wxMouseEvent_MiddleUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleUp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleUp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightUp(_swigobj) (_swigobj->RightUp()) -static PyObject *_wrap_wxMouseEvent_RightUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightUp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightUp. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightUp(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftDClick(_swigobj) (_swigobj->LeftDClick()) -static PyObject *_wrap_wxMouseEvent_LeftDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftDClick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftDClick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleDClick(_swigobj) (_swigobj->MiddleDClick()) -static PyObject *_wrap_wxMouseEvent_MiddleDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleDClick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleDClick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightDClick(_swigobj) (_swigobj->RightDClick()) -static PyObject *_wrap_wxMouseEvent_RightDClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightDClick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightDClick. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightDClick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_LeftIsDown(_swigobj) (_swigobj->LeftIsDown()) -static PyObject *_wrap_wxMouseEvent_LeftIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_LeftIsDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_LeftIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_LeftIsDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_MiddleIsDown(_swigobj) (_swigobj->MiddleIsDown()) -static PyObject *_wrap_wxMouseEvent_MiddleIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_MiddleIsDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_MiddleIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_MiddleIsDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_RightIsDown(_swigobj) (_swigobj->RightIsDown()) -static PyObject *_wrap_wxMouseEvent_RightIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_RightIsDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_RightIsDown. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_RightIsDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Dragging(_swigobj) (_swigobj->Dragging()) -static PyObject *_wrap_wxMouseEvent_Dragging(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Dragging",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Dragging. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Dragging(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Moving(_swigobj) (_swigobj->Moving()) -static PyObject *_wrap_wxMouseEvent_Moving(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Moving",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Moving. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Moving(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Entering(_swigobj) (_swigobj->Entering()) -static PyObject *_wrap_wxMouseEvent_Entering(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Entering",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Entering. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Entering(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Leaving(_swigobj) (_swigobj->Leaving()) -static PyObject *_wrap_wxMouseEvent_Leaving(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Leaving",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Leaving. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMouseEvent_Leaving(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMouseEvent_Position(_swigobj,_swigarg0,_swigarg1) (_swigobj->Position(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMouseEvent_Position(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMouseEvent * _arg0; - long * _arg1; - long temp; - long * _arg2; - long temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_Position",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_Position. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMouseEvent_Position(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxMouseEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxMouseEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetPosition. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxMouseEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMouseEvent_GetLogicalPosition(_swigobj,_swigarg0) (_swigobj->GetLogicalPosition(_swigarg0)) -static PyObject *_wrap_wxMouseEvent_GetLogicalPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxMouseEvent * _arg0; - wxDC * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMouseEvent_GetLogicalPosition",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetLogicalPosition. Expected _wxMouseEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMouseEvent_GetLogicalPosition. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxMouseEvent_GetLogicalPosition(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMouseEvent_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxMouseEvent_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetX. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxMouseEvent_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxMouseEvent_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxMouseEvent_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxMouseEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMouseEvent_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMouseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMouseEvent_GetY. Expected _wxMouseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxMouseEvent_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static void *SwigwxKeyEventTowxEvent(void *ptr) { - wxKeyEvent *src; - wxEvent *dest; - src = (wxKeyEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxKeyEvent_ControlDown(_swigobj) (_swigobj->ControlDown()) -static PyObject *_wrap_wxKeyEvent_ControlDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_ControlDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_ControlDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_ControlDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_MetaDown(_swigobj) (_swigobj->MetaDown()) -static PyObject *_wrap_wxKeyEvent_MetaDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_MetaDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_MetaDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_MetaDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_AltDown(_swigobj) (_swigobj->AltDown()) -static PyObject *_wrap_wxKeyEvent_AltDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_AltDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_AltDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_AltDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_ShiftDown(_swigobj) (_swigobj->ShiftDown()) -static PyObject *_wrap_wxKeyEvent_ShiftDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_ShiftDown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_ShiftDown. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxKeyEvent_ShiftDown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxKeyEvent_KeyCode(_swigobj) (_swigobj->KeyCode()) -static PyObject *_wrap_wxKeyEvent_KeyCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxKeyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxKeyEvent_KeyCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxKeyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxKeyEvent_KeyCode. Expected _wxKeyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxKeyEvent_KeyCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static void *SwigwxMoveEventTowxEvent(void *ptr) { - wxMoveEvent *src; - wxEvent *dest; - src = (wxMoveEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxMoveEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxMoveEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxMoveEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMoveEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMoveEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMoveEvent_GetPosition. Expected _wxMoveEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxMoveEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPaintEventTowxEvent(void *ptr) { - wxPaintEvent *src; - wxEvent *dest; - src = (wxPaintEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxEraseEventTowxEvent(void *ptr) { - wxEraseEvent *src; - wxEvent *dest; - src = (wxEraseEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxEraseEvent_GetDC(_swigobj) (_swigobj->GetDC()) -static PyObject *_wrap_wxEraseEvent_GetDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _result; - wxEraseEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxEraseEvent_GetDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEraseEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEraseEvent_GetDC. Expected _wxEraseEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDC *)wxEraseEvent_GetDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxFocusEventTowxEvent(void *ptr) { - wxFocusEvent *src; - wxEvent *dest; - src = (wxFocusEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxActivateEventTowxEvent(void *ptr) { - wxActivateEvent *src; - wxEvent *dest; - src = (wxActivateEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxActivateEvent_GetActive(_swigobj) (_swigobj->GetActive()) -static PyObject *_wrap_wxActivateEvent_GetActive(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxActivateEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxActivateEvent_GetActive",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxActivateEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxActivateEvent_GetActive. Expected _wxActivateEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxActivateEvent_GetActive(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxInitDialogEventTowxEvent(void *ptr) { - wxInitDialogEvent *src; - wxEvent *dest; - src = (wxInitDialogEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxMenuEventTowxEvent(void *ptr) { - wxMenuEvent *src; - wxEvent *dest; - src = (wxMenuEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxMenuEvent_GetMenuId(_swigobj) (_swigobj->GetMenuId()) -static PyObject *_wrap_wxMenuEvent_GetMenuId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuEvent_GetMenuId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuEvent_GetMenuId. Expected _wxMenuEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuEvent_GetMenuId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxShowEventTowxEvent(void *ptr) { - wxShowEvent *src; - wxEvent *dest; - src = (wxShowEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxShowEvent_SetShow(_swigobj,_swigarg0) (_swigobj->SetShow(_swigarg0)) -static PyObject *_wrap_wxShowEvent_SetShow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxShowEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxShowEvent_SetShow",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxShowEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShowEvent_SetShow. Expected _wxShowEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxShowEvent_SetShow(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxShowEvent_GetShow(_swigobj) (_swigobj->GetShow()) -static PyObject *_wrap_wxShowEvent_GetShow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxShowEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxShowEvent_GetShow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxShowEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxShowEvent_GetShow. Expected _wxShowEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxShowEvent_GetShow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxIconizeEventTowxEvent(void *ptr) { - wxIconizeEvent *src; - wxEvent *dest; - src = (wxIconizeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxMaximizeEventTowxEvent(void *ptr) { - wxMaximizeEvent *src; - wxEvent *dest; - src = (wxMaximizeEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxJoystickEventTowxEvent(void *ptr) { - wxJoystickEvent *src; - wxEvent *dest; - src = (wxJoystickEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxJoystickEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxJoystickEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxJoystickEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxJoystickEvent_GetZPosition(_swigobj) (_swigobj->GetZPosition()) -static PyObject *_wrap_wxJoystickEvent_GetZPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetZPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetZPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetZPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_GetButtonState(_swigobj) (_swigobj->GetButtonState()) -static PyObject *_wrap_wxJoystickEvent_GetButtonState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetButtonState",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetButtonState. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetButtonState(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_GetButtonChange(_swigobj) (_swigobj->GetButtonChange()) -static PyObject *_wrap_wxJoystickEvent_GetButtonChange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetButtonChange",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetButtonChange. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetButtonChange(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_GetJoystick(_swigobj) (_swigobj->GetJoystick()) -static PyObject *_wrap_wxJoystickEvent_GetJoystick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_GetJoystick",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_GetJoystick. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxJoystickEvent_GetJoystick(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_SetJoystick(_swigobj,_swigarg0) (_swigobj->SetJoystick(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetJoystick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetJoystick",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetJoystick. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetJoystick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetButtonState(_swigobj,_swigarg0) (_swigobj->SetButtonState(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetButtonState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetButtonState",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetButtonState. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetButtonState(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetButtonChange(_swigobj,_swigarg0) (_swigobj->SetButtonChange(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetButtonChange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetButtonChange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetButtonChange. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetButtonChange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetPosition(_swigobj,_swigarg0) (_swigobj->SetPosition(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxJoystickEvent_SetPosition",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxJoystickEvent_SetPosition. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetPosition(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_SetZPosition(_swigobj,_swigarg0) (_swigobj->SetZPosition(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_SetZPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJoystickEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxJoystickEvent_SetZPosition",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_SetZPosition. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxJoystickEvent_SetZPosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxJoystickEvent_IsButton(_swigobj) (_swigobj->IsButton()) -static PyObject *_wrap_wxJoystickEvent_IsButton(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_IsButton",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_IsButton. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_IsButton(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_IsMove(_swigobj) (_swigobj->IsMove()) -static PyObject *_wrap_wxJoystickEvent_IsMove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_IsMove",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_IsMove. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_IsMove(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_IsZMove(_swigobj) (_swigobj->IsZMove()) -static PyObject *_wrap_wxJoystickEvent_IsZMove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxJoystickEvent_IsZMove",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_IsZMove. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_IsZMove(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_ButtonDown(_swigobj,_swigarg0) (_swigobj->ButtonDown(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_ButtonDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - int _arg1 = wxJOY_BUTTON_ANY; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxJoystickEvent_ButtonDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_ButtonDown. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_ButtonDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_ButtonUp(_swigobj,_swigarg0) (_swigobj->ButtonUp(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_ButtonUp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - int _arg1 = wxJOY_BUTTON_ANY; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxJoystickEvent_ButtonUp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_ButtonUp. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_ButtonUp(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxJoystickEvent_ButtonIsDown(_swigobj,_swigarg0) (_swigobj->ButtonIsDown(_swigarg0)) -static PyObject *_wrap_wxJoystickEvent_ButtonIsDown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxJoystickEvent * _arg0; - int _arg1 = wxJOY_BUTTON_ANY; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxJoystickEvent_ButtonIsDown",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxJoystickEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxJoystickEvent_ButtonIsDown. Expected _wxJoystickEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxJoystickEvent_ButtonIsDown(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxDropFilesEventTowxEvent(void *ptr) { - wxDropFilesEvent *src; - wxEvent *dest; - src = (wxDropFilesEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxDropFilesEvent_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxDropFilesEvent_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxDropFilesEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDropFilesEvent_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDropFilesEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDropFilesEvent_GetPosition. Expected _wxDropFilesEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxDropFilesEvent_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDropFilesEvent_GetNumberOfFiles(_swigobj) (_swigobj->GetNumberOfFiles()) -static PyObject *_wrap_wxDropFilesEvent_GetNumberOfFiles(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDropFilesEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDropFilesEvent_GetNumberOfFiles",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDropFilesEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDropFilesEvent_GetNumberOfFiles. Expected _wxDropFilesEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDropFilesEvent_GetNumberOfFiles(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject * wxDropFilesEvent_GetFiles(wxDropFilesEvent *self) { - int count = self->GetNumberOfFiles(); - wxString* files = self->GetFiles(); - PyObject* list = PyList_New(count); - - if (!list) { - PyErr_SetString(PyExc_MemoryError, "Can't allocate list of files!"); - return NULL; - } - - for (int i=0; iRequestMore(_swigarg0)) -static PyObject *_wrap_wxIdleEvent_RequestMore(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIdleEvent * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxIdleEvent_RequestMore",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIdleEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIdleEvent_RequestMore. Expected _wxIdleEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIdleEvent_RequestMore(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIdleEvent_MoreRequested(_swigobj) (_swigobj->MoreRequested()) -static PyObject *_wrap_wxIdleEvent_MoreRequested(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxIdleEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIdleEvent_MoreRequested",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIdleEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIdleEvent_MoreRequested. Expected _wxIdleEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIdleEvent_MoreRequested(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxUpdateUIEventTowxEvent(void *ptr) { - wxUpdateUIEvent *src; - wxEvent *dest; - src = (wxUpdateUIEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxUpdateUIEvent_GetChecked(_swigobj) (_swigobj->GetChecked()) -static PyObject *_wrap_wxUpdateUIEvent_GetChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetChecked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetChecked. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetChecked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetEnabled(_swigobj) (_swigobj->GetEnabled()) -static PyObject *_wrap_wxUpdateUIEvent_GetEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetEnabled. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetText(_swigobj) (_swigobj->GetText()) -static PyObject *_wrap_wxUpdateUIEvent_GetText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetText",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetText. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxUpdateUIEvent_GetText(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxUpdateUIEvent_GetSetText(_swigobj) (_swigobj->GetSetText()) -static PyObject *_wrap_wxUpdateUIEvent_GetSetText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetSetText",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetSetText. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetSetText(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetSetChecked(_swigobj) (_swigobj->GetSetChecked()) -static PyObject *_wrap_wxUpdateUIEvent_GetSetChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetSetChecked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetSetChecked. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetSetChecked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_GetSetEnabled(_swigobj) (_swigobj->GetSetEnabled()) -static PyObject *_wrap_wxUpdateUIEvent_GetSetEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxUpdateUIEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxUpdateUIEvent_GetSetEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_GetSetEnabled. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxUpdateUIEvent_GetSetEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxUpdateUIEvent_Check(_swigobj,_swigarg0) (_swigobj->Check(_swigarg0)) -static PyObject *_wrap_wxUpdateUIEvent_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxUpdateUIEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxUpdateUIEvent_Check",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_Check. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxUpdateUIEvent_Check(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxUpdateUIEvent_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxUpdateUIEvent_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxUpdateUIEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxUpdateUIEvent_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_Enable. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxUpdateUIEvent_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxUpdateUIEvent_SetText(_swigobj,_swigarg0) (_swigobj->SetText(_swigarg0)) -static PyObject *_wrap_wxUpdateUIEvent_SetText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxUpdateUIEvent * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxUpdateUIEvent_SetText",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxUpdateUIEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxUpdateUIEvent_SetText. Expected _wxUpdateUIEvent_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxUpdateUIEvent_SetText(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxSysColourChangedEventTowxEvent(void *ptr) { - wxSysColourChangedEvent *src; - wxEvent *dest; - src = (wxSysColourChangedEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -static void *SwigwxPyEventTowxCommandEvent(void *ptr) { - wxPyEvent *src; - wxCommandEvent *dest; - src = (wxPyEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxPyEventTowxEvent(void *ptr) { - wxPyEvent *src; - wxEvent *dest; - src = (wxPyEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define new_wxPyEvent(_swigarg0,_swigarg1) (new wxPyEvent(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPyEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _result; - wxEventType _arg0 = (wxEVT_NULL); - PyObject * _arg1 = Py_None; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|iO:new_wxPyEvent",&_arg0,&_obj1)) - return NULL; - if (_obj1) -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyEvent *)new_wxPyEvent(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyEvent_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPyEvent(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPyEvent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyEvent. Expected _wxPyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyEvent(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyEvent_SetUserData(_swigobj,_swigarg0) (_swigobj->SetUserData(_swigarg0)) -static PyObject *_wrap_wxPyEvent_SetUserData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyEvent * _arg0; - PyObject * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyEvent_SetUserData",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEvent_SetUserData. Expected _wxPyEvent_p."); - return NULL; - } - } -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyEvent_SetUserData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyEvent_GetUserData(_swigobj) (_swigobj->GetUserData()) -static PyObject *_wrap_wxPyEvent_GetUserData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPyEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyEvent_GetUserData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyEvent_GetUserData. Expected _wxPyEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxPyEvent_GetUserData(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyMethodDef eventscMethods[] = { - { "wxPyEvent_GetUserData", _wrap_wxPyEvent_GetUserData, 1 }, - { "wxPyEvent_SetUserData", _wrap_wxPyEvent_SetUserData, 1 }, - { "delete_wxPyEvent", _wrap_delete_wxPyEvent, 1 }, - { "new_wxPyEvent", _wrap_new_wxPyEvent, 1 }, - { "wxUpdateUIEvent_SetText", _wrap_wxUpdateUIEvent_SetText, 1 }, - { "wxUpdateUIEvent_Enable", _wrap_wxUpdateUIEvent_Enable, 1 }, - { "wxUpdateUIEvent_Check", _wrap_wxUpdateUIEvent_Check, 1 }, - { "wxUpdateUIEvent_GetSetEnabled", _wrap_wxUpdateUIEvent_GetSetEnabled, 1 }, - { "wxUpdateUIEvent_GetSetChecked", _wrap_wxUpdateUIEvent_GetSetChecked, 1 }, - { "wxUpdateUIEvent_GetSetText", _wrap_wxUpdateUIEvent_GetSetText, 1 }, - { "wxUpdateUIEvent_GetText", _wrap_wxUpdateUIEvent_GetText, 1 }, - { "wxUpdateUIEvent_GetEnabled", _wrap_wxUpdateUIEvent_GetEnabled, 1 }, - { "wxUpdateUIEvent_GetChecked", _wrap_wxUpdateUIEvent_GetChecked, 1 }, - { "wxIdleEvent_MoreRequested", _wrap_wxIdleEvent_MoreRequested, 1 }, - { "wxIdleEvent_RequestMore", _wrap_wxIdleEvent_RequestMore, 1 }, - { "wxDropFilesEvent_GetFiles", _wrap_wxDropFilesEvent_GetFiles, 1 }, - { "wxDropFilesEvent_GetNumberOfFiles", _wrap_wxDropFilesEvent_GetNumberOfFiles, 1 }, - { "wxDropFilesEvent_GetPosition", _wrap_wxDropFilesEvent_GetPosition, 1 }, - { "wxJoystickEvent_ButtonIsDown", _wrap_wxJoystickEvent_ButtonIsDown, 1 }, - { "wxJoystickEvent_ButtonUp", _wrap_wxJoystickEvent_ButtonUp, 1 }, - { "wxJoystickEvent_ButtonDown", _wrap_wxJoystickEvent_ButtonDown, 1 }, - { "wxJoystickEvent_IsZMove", _wrap_wxJoystickEvent_IsZMove, 1 }, - { "wxJoystickEvent_IsMove", _wrap_wxJoystickEvent_IsMove, 1 }, - { "wxJoystickEvent_IsButton", _wrap_wxJoystickEvent_IsButton, 1 }, - { "wxJoystickEvent_SetZPosition", _wrap_wxJoystickEvent_SetZPosition, 1 }, - { "wxJoystickEvent_SetPosition", _wrap_wxJoystickEvent_SetPosition, 1 }, - { "wxJoystickEvent_SetButtonChange", _wrap_wxJoystickEvent_SetButtonChange, 1 }, - { "wxJoystickEvent_SetButtonState", _wrap_wxJoystickEvent_SetButtonState, 1 }, - { "wxJoystickEvent_SetJoystick", _wrap_wxJoystickEvent_SetJoystick, 1 }, - { "wxJoystickEvent_GetJoystick", _wrap_wxJoystickEvent_GetJoystick, 1 }, - { "wxJoystickEvent_GetButtonChange", _wrap_wxJoystickEvent_GetButtonChange, 1 }, - { "wxJoystickEvent_GetButtonState", _wrap_wxJoystickEvent_GetButtonState, 1 }, - { "wxJoystickEvent_GetZPosition", _wrap_wxJoystickEvent_GetZPosition, 1 }, - { "wxJoystickEvent_GetPosition", _wrap_wxJoystickEvent_GetPosition, 1 }, - { "wxShowEvent_GetShow", _wrap_wxShowEvent_GetShow, 1 }, - { "wxShowEvent_SetShow", _wrap_wxShowEvent_SetShow, 1 }, - { "wxMenuEvent_GetMenuId", _wrap_wxMenuEvent_GetMenuId, 1 }, - { "wxActivateEvent_GetActive", _wrap_wxActivateEvent_GetActive, 1 }, - { "wxEraseEvent_GetDC", _wrap_wxEraseEvent_GetDC, 1 }, - { "wxMoveEvent_GetPosition", _wrap_wxMoveEvent_GetPosition, 1 }, - { "wxKeyEvent_KeyCode", _wrap_wxKeyEvent_KeyCode, 1 }, - { "wxKeyEvent_ShiftDown", _wrap_wxKeyEvent_ShiftDown, 1 }, - { "wxKeyEvent_AltDown", _wrap_wxKeyEvent_AltDown, 1 }, - { "wxKeyEvent_MetaDown", _wrap_wxKeyEvent_MetaDown, 1 }, - { "wxKeyEvent_ControlDown", _wrap_wxKeyEvent_ControlDown, 1 }, - { "wxMouseEvent_GetY", _wrap_wxMouseEvent_GetY, 1 }, - { "wxMouseEvent_GetX", _wrap_wxMouseEvent_GetX, 1 }, - { "wxMouseEvent_GetLogicalPosition", _wrap_wxMouseEvent_GetLogicalPosition, 1 }, - { "wxMouseEvent_GetPosition", _wrap_wxMouseEvent_GetPosition, 1 }, - { "wxMouseEvent_Position", _wrap_wxMouseEvent_Position, 1 }, - { "wxMouseEvent_Leaving", _wrap_wxMouseEvent_Leaving, 1 }, - { "wxMouseEvent_Entering", _wrap_wxMouseEvent_Entering, 1 }, - { "wxMouseEvent_Moving", _wrap_wxMouseEvent_Moving, 1 }, - { "wxMouseEvent_Dragging", _wrap_wxMouseEvent_Dragging, 1 }, - { "wxMouseEvent_RightIsDown", _wrap_wxMouseEvent_RightIsDown, 1 }, - { "wxMouseEvent_MiddleIsDown", _wrap_wxMouseEvent_MiddleIsDown, 1 }, - { "wxMouseEvent_LeftIsDown", _wrap_wxMouseEvent_LeftIsDown, 1 }, - { "wxMouseEvent_RightDClick", _wrap_wxMouseEvent_RightDClick, 1 }, - { "wxMouseEvent_MiddleDClick", _wrap_wxMouseEvent_MiddleDClick, 1 }, - { "wxMouseEvent_LeftDClick", _wrap_wxMouseEvent_LeftDClick, 1 }, - { "wxMouseEvent_RightUp", _wrap_wxMouseEvent_RightUp, 1 }, - { "wxMouseEvent_MiddleUp", _wrap_wxMouseEvent_MiddleUp, 1 }, - { "wxMouseEvent_LeftUp", _wrap_wxMouseEvent_LeftUp, 1 }, - { "wxMouseEvent_RightDown", _wrap_wxMouseEvent_RightDown, 1 }, - { "wxMouseEvent_MiddleDown", _wrap_wxMouseEvent_MiddleDown, 1 }, - { "wxMouseEvent_LeftDown", _wrap_wxMouseEvent_LeftDown, 1 }, - { "wxMouseEvent_ShiftDown", _wrap_wxMouseEvent_ShiftDown, 1 }, - { "wxMouseEvent_AltDown", _wrap_wxMouseEvent_AltDown, 1 }, - { "wxMouseEvent_MetaDown", _wrap_wxMouseEvent_MetaDown, 1 }, - { "wxMouseEvent_ControlDown", _wrap_wxMouseEvent_ControlDown, 1 }, - { "wxMouseEvent_ButtonIsDown", _wrap_wxMouseEvent_ButtonIsDown, 1 }, - { "wxMouseEvent_Button", _wrap_wxMouseEvent_Button, 1 }, - { "wxMouseEvent_ButtonUp", _wrap_wxMouseEvent_ButtonUp, 1 }, - { "wxMouseEvent_ButtonDClick", _wrap_wxMouseEvent_ButtonDClick, 1 }, - { "wxMouseEvent_ButtonDown", _wrap_wxMouseEvent_ButtonDown, 1 }, - { "wxMouseEvent_IsButton", _wrap_wxMouseEvent_IsButton, 1 }, - { "wxScrollEvent_GetPosition", _wrap_wxScrollEvent_GetPosition, 1 }, - { "wxScrollEvent_GetOrientation", _wrap_wxScrollEvent_GetOrientation, 1 }, - { "wxCommandEvent_IsSelection", _wrap_wxCommandEvent_IsSelection, 1 }, - { "wxCommandEvent_GetString", _wrap_wxCommandEvent_GetString, 1 }, - { "wxCommandEvent_GetSelection", _wrap_wxCommandEvent_GetSelection, 1 }, - { "wxCommandEvent_GetInt", _wrap_wxCommandEvent_GetInt, 1 }, - { "wxCommandEvent_GetExtraLong", _wrap_wxCommandEvent_GetExtraLong, 1 }, - { "wxCommandEvent_Checked", _wrap_wxCommandEvent_Checked, 1 }, - { "wxCloseEvent_SetCanVeto", _wrap_wxCloseEvent_SetCanVeto, 1 }, - { "wxCloseEvent_GetVeto", _wrap_wxCloseEvent_GetVeto, 1 }, - { "wxCloseEvent_CanVeto", _wrap_wxCloseEvent_CanVeto, 1 }, - { "wxCloseEvent_Veto", _wrap_wxCloseEvent_Veto, 1 }, - { "wxCloseEvent_GetLoggingOff", _wrap_wxCloseEvent_GetLoggingOff, 1 }, - { "wxCloseEvent_SetLoggingOff", _wrap_wxCloseEvent_SetLoggingOff, 1 }, - { "wxSizeEvent_GetSize", _wrap_wxSizeEvent_GetSize, 1 }, - { "wxEvent_Skip", _wrap_wxEvent_Skip, 1 }, - { "wxEvent_SetTimestamp", _wrap_wxEvent_SetTimestamp, 1 }, - { "wxEvent_SetId", _wrap_wxEvent_SetId, 1 }, - { "wxEvent_SetEventType", _wrap_wxEvent_SetEventType, 1 }, - { "wxEvent_SetEventObject", _wrap_wxEvent_SetEventObject, 1 }, - { "wxEvent_GetTimestamp", _wrap_wxEvent_GetTimestamp, 1 }, - { "wxEvent_GetSkipped", _wrap_wxEvent_GetSkipped, 1 }, - { "wxEvent_GetId", _wrap_wxEvent_GetId, 1 }, - { "wxEvent_GetEventType", _wrap_wxEvent_GetEventType, 1 }, - { "wxEvent_GetEventObject", _wrap_wxEvent_GetEventObject, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initeventsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("eventsc", eventscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxPyEvent",SwigwxPyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSysColourChangedEvent",SwigwxSysColourChangedEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxUpdateUIEvent",SwigwxUpdateUIEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxIdleEvent",SwigwxIdleEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxDropFilesEvent",SwigwxDropFilesEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxJoystickEvent",SwigwxJoystickEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMaximizeEvent",SwigwxMaximizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxIconizeEvent",SwigwxIconizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxShowEvent",SwigwxShowEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMenuEvent",SwigwxMenuEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxInitDialogEvent",SwigwxInitDialogEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxActivateEvent",SwigwxActivateEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxFocusEvent",SwigwxFocusEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEraseEvent",SwigwxEraseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxPaintEvent",SwigwxPaintEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMoveEvent",SwigwxMoveEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxKeyEvent",SwigwxKeyEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxMouseEvent",SwigwxMouseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSpinEvent",SwigwxSpinEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxScrollEvent",SwigwxScrollEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxCommandEvent",SwigwxCommandEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxCloseEvent",SwigwxCloseEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSizeEvent",SwigwxSizeEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_class_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxSpinEvent",SwigwxSpinEventTowxScrollEvent); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxPyEvent",SwigwxPyEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxSpinEvent",SwigwxSpinEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxScrollEvent",SwigwxScrollEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); -} diff --git a/utils/wxPython/src/msw/events.py b/utils/wxPython/src/msw/events.py deleted file mode 100644 index 40699659ba..0000000000 --- a/utils/wxPython/src/msw/events.py +++ /dev/null @@ -1,638 +0,0 @@ -# This file was created automatically by SWIG. -import eventsc - -from misc import * -class wxEventPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetEventObject(self): - val = eventsc.wxEvent_GetEventObject(self.this) - return val - def GetEventType(self): - val = eventsc.wxEvent_GetEventType(self.this) - return val - def GetId(self): - val = eventsc.wxEvent_GetId(self.this) - return val - def GetSkipped(self): - val = eventsc.wxEvent_GetSkipped(self.this) - return val - def GetTimestamp(self): - val = eventsc.wxEvent_GetTimestamp(self.this) - return val - def SetEventObject(self,arg0): - val = eventsc.wxEvent_SetEventObject(self.this,arg0) - return val - def SetEventType(self,arg0): - val = eventsc.wxEvent_SetEventType(self.this,arg0) - return val - def SetId(self,arg0): - val = eventsc.wxEvent_SetId(self.this,arg0) - return val - def SetTimestamp(self,arg0): - val = eventsc.wxEvent_SetTimestamp(self.this,arg0) - return val - def Skip(self,*args): - val = apply(eventsc.wxEvent_Skip,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxEvent(wxEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSizeEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSize(self): - val = eventsc.wxSizeEvent_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" -class wxSizeEvent(wxSizeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxCloseEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetLoggingOff(self,arg0): - val = eventsc.wxCloseEvent_SetLoggingOff(self.this,arg0) - return val - def GetLoggingOff(self): - val = eventsc.wxCloseEvent_GetLoggingOff(self.this) - return val - def Veto(self,*args): - val = apply(eventsc.wxCloseEvent_Veto,(self.this,)+args) - return val - def CanVeto(self): - val = eventsc.wxCloseEvent_CanVeto(self.this) - return val - def GetVeto(self): - val = eventsc.wxCloseEvent_GetVeto(self.this) - return val - def SetCanVeto(self,arg0): - val = eventsc.wxCloseEvent_SetCanVeto(self.this,arg0) - return val - def __repr__(self): - return "" -class wxCloseEvent(wxCloseEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxCommandEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Checked(self): - val = eventsc.wxCommandEvent_Checked(self.this) - return val - def GetExtraLong(self): - val = eventsc.wxCommandEvent_GetExtraLong(self.this) - return val - def GetInt(self): - val = eventsc.wxCommandEvent_GetInt(self.this) - return val - def GetSelection(self): - val = eventsc.wxCommandEvent_GetSelection(self.this) - return val - def GetString(self): - val = eventsc.wxCommandEvent_GetString(self.this) - return val - def IsSelection(self): - val = eventsc.wxCommandEvent_IsSelection(self.this) - return val - def __repr__(self): - return "" -class wxCommandEvent(wxCommandEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxScrollEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetOrientation(self): - val = eventsc.wxScrollEvent_GetOrientation(self.this) - return val - def GetPosition(self): - val = eventsc.wxScrollEvent_GetPosition(self.this) - return val - def __repr__(self): - return "" -class wxScrollEvent(wxScrollEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSpinEventPtr(wxScrollEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxSpinEvent(wxSpinEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMouseEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsButton(self): - val = eventsc.wxMouseEvent_IsButton(self.this) - return val - def ButtonDown(self,*args): - val = apply(eventsc.wxMouseEvent_ButtonDown,(self.this,)+args) - return val - def ButtonDClick(self,*args): - val = apply(eventsc.wxMouseEvent_ButtonDClick,(self.this,)+args) - return val - def ButtonUp(self,*args): - val = apply(eventsc.wxMouseEvent_ButtonUp,(self.this,)+args) - return val - def Button(self,arg0): - val = eventsc.wxMouseEvent_Button(self.this,arg0) - return val - def ButtonIsDown(self,arg0): - val = eventsc.wxMouseEvent_ButtonIsDown(self.this,arg0) - return val - def ControlDown(self): - val = eventsc.wxMouseEvent_ControlDown(self.this) - return val - def MetaDown(self): - val = eventsc.wxMouseEvent_MetaDown(self.this) - return val - def AltDown(self): - val = eventsc.wxMouseEvent_AltDown(self.this) - return val - def ShiftDown(self): - val = eventsc.wxMouseEvent_ShiftDown(self.this) - return val - def LeftDown(self): - val = eventsc.wxMouseEvent_LeftDown(self.this) - return val - def MiddleDown(self): - val = eventsc.wxMouseEvent_MiddleDown(self.this) - return val - def RightDown(self): - val = eventsc.wxMouseEvent_RightDown(self.this) - return val - def LeftUp(self): - val = eventsc.wxMouseEvent_LeftUp(self.this) - return val - def MiddleUp(self): - val = eventsc.wxMouseEvent_MiddleUp(self.this) - return val - def RightUp(self): - val = eventsc.wxMouseEvent_RightUp(self.this) - return val - def LeftDClick(self): - val = eventsc.wxMouseEvent_LeftDClick(self.this) - return val - def MiddleDClick(self): - val = eventsc.wxMouseEvent_MiddleDClick(self.this) - return val - def RightDClick(self): - val = eventsc.wxMouseEvent_RightDClick(self.this) - return val - def LeftIsDown(self): - val = eventsc.wxMouseEvent_LeftIsDown(self.this) - return val - def MiddleIsDown(self): - val = eventsc.wxMouseEvent_MiddleIsDown(self.this) - return val - def RightIsDown(self): - val = eventsc.wxMouseEvent_RightIsDown(self.this) - return val - def Dragging(self): - val = eventsc.wxMouseEvent_Dragging(self.this) - return val - def Moving(self): - val = eventsc.wxMouseEvent_Moving(self.this) - return val - def Entering(self): - val = eventsc.wxMouseEvent_Entering(self.this) - return val - def Leaving(self): - val = eventsc.wxMouseEvent_Leaving(self.this) - return val - def Position(self): - val = eventsc.wxMouseEvent_Position(self.this) - return val - def GetPosition(self): - val = eventsc.wxMouseEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetLogicalPosition(self,arg0): - val = eventsc.wxMouseEvent_GetLogicalPosition(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetX(self): - val = eventsc.wxMouseEvent_GetX(self.this) - return val - def GetY(self): - val = eventsc.wxMouseEvent_GetY(self.this) - return val - def __repr__(self): - return "" -class wxMouseEvent(wxMouseEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxKeyEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ControlDown(self): - val = eventsc.wxKeyEvent_ControlDown(self.this) - return val - def MetaDown(self): - val = eventsc.wxKeyEvent_MetaDown(self.this) - return val - def AltDown(self): - val = eventsc.wxKeyEvent_AltDown(self.this) - return val - def ShiftDown(self): - val = eventsc.wxKeyEvent_ShiftDown(self.this) - return val - def KeyCode(self): - val = eventsc.wxKeyEvent_KeyCode(self.this) - return val - def __repr__(self): - return "" -class wxKeyEvent(wxKeyEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMoveEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPosition(self): - val = eventsc.wxMoveEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" -class wxMoveEvent(wxMoveEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxPaintEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPaintEvent(wxPaintEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxEraseEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetDC(self): - val = eventsc.wxEraseEvent_GetDC(self.this) - val = wxDCPtr(val) - return val - def __repr__(self): - return "" -class wxEraseEvent(wxEraseEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxFocusEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxFocusEvent(wxFocusEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxActivateEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetActive(self): - val = eventsc.wxActivateEvent_GetActive(self.this) - return val - def __repr__(self): - return "" -class wxActivateEvent(wxActivateEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxInitDialogEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxInitDialogEvent(wxInitDialogEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMenuEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetMenuId(self): - val = eventsc.wxMenuEvent_GetMenuId(self.this) - return val - def __repr__(self): - return "" -class wxMenuEvent(wxMenuEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxShowEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetShow(self,arg0): - val = eventsc.wxShowEvent_SetShow(self.this,arg0) - return val - def GetShow(self): - val = eventsc.wxShowEvent_GetShow(self.this) - return val - def __repr__(self): - return "" -class wxShowEvent(wxShowEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxIconizeEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxIconizeEvent(wxIconizeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxMaximizeEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxMaximizeEvent(wxMaximizeEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxJoystickEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPosition(self): - val = eventsc.wxJoystickEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetZPosition(self): - val = eventsc.wxJoystickEvent_GetZPosition(self.this) - return val - def GetButtonState(self): - val = eventsc.wxJoystickEvent_GetButtonState(self.this) - return val - def GetButtonChange(self): - val = eventsc.wxJoystickEvent_GetButtonChange(self.this) - return val - def GetJoystick(self): - val = eventsc.wxJoystickEvent_GetJoystick(self.this) - return val - def SetJoystick(self,arg0): - val = eventsc.wxJoystickEvent_SetJoystick(self.this,arg0) - return val - def SetButtonState(self,arg0): - val = eventsc.wxJoystickEvent_SetButtonState(self.this,arg0) - return val - def SetButtonChange(self,arg0): - val = eventsc.wxJoystickEvent_SetButtonChange(self.this,arg0) - return val - def SetPosition(self,arg0): - val = eventsc.wxJoystickEvent_SetPosition(self.this,arg0.this) - return val - def SetZPosition(self,arg0): - val = eventsc.wxJoystickEvent_SetZPosition(self.this,arg0) - return val - def IsButton(self): - val = eventsc.wxJoystickEvent_IsButton(self.this) - return val - def IsMove(self): - val = eventsc.wxJoystickEvent_IsMove(self.this) - return val - def IsZMove(self): - val = eventsc.wxJoystickEvent_IsZMove(self.this) - return val - def ButtonDown(self,*args): - val = apply(eventsc.wxJoystickEvent_ButtonDown,(self.this,)+args) - return val - def ButtonUp(self,*args): - val = apply(eventsc.wxJoystickEvent_ButtonUp,(self.this,)+args) - return val - def ButtonIsDown(self,*args): - val = apply(eventsc.wxJoystickEvent_ButtonIsDown,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxJoystickEvent(wxJoystickEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxDropFilesEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPosition(self): - val = eventsc.wxDropFilesEvent_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetNumberOfFiles(self): - val = eventsc.wxDropFilesEvent_GetNumberOfFiles(self.this) - return val - def GetFiles(self): - val = eventsc.wxDropFilesEvent_GetFiles(self.this) - return val - def __repr__(self): - return "" -class wxDropFilesEvent(wxDropFilesEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxIdleEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def RequestMore(self,*args): - val = apply(eventsc.wxIdleEvent_RequestMore,(self.this,)+args) - return val - def MoreRequested(self): - val = eventsc.wxIdleEvent_MoreRequested(self.this) - return val - def __repr__(self): - return "" -class wxIdleEvent(wxIdleEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxUpdateUIEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetChecked(self): - val = eventsc.wxUpdateUIEvent_GetChecked(self.this) - return val - def GetEnabled(self): - val = eventsc.wxUpdateUIEvent_GetEnabled(self.this) - return val - def GetText(self): - val = eventsc.wxUpdateUIEvent_GetText(self.this) - return val - def GetSetText(self): - val = eventsc.wxUpdateUIEvent_GetSetText(self.this) - return val - def GetSetChecked(self): - val = eventsc.wxUpdateUIEvent_GetSetChecked(self.this) - return val - def GetSetEnabled(self): - val = eventsc.wxUpdateUIEvent_GetSetEnabled(self.this) - return val - def Check(self,arg0): - val = eventsc.wxUpdateUIEvent_Check(self.this,arg0) - return val - def Enable(self,arg0): - val = eventsc.wxUpdateUIEvent_Enable(self.this,arg0) - return val - def SetText(self,arg0): - val = eventsc.wxUpdateUIEvent_SetText(self.this,arg0) - return val - def __repr__(self): - return "" -class wxUpdateUIEvent(wxUpdateUIEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSysColourChangedEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxSysColourChangedEvent(wxSysColourChangedEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxPyEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - eventsc.delete_wxPyEvent(self.this) - def SetUserData(self,arg0): - val = eventsc.wxPyEvent_SetUserData(self.this,arg0) - return val - def GetUserData(self): - val = eventsc.wxPyEvent_GetUserData(self.this) - return val - def __repr__(self): - return "" -class wxPyEvent(wxPyEventPtr): - def __init__(self,*args) : - self.this = apply(eventsc.new_wxPyEvent,()+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/frames.cpp b/utils/wxPython/src/msw/frames.cpp deleted file mode 100644 index 5b12e362a5..0000000000 --- a/utils/wxPython/src/msw/frames.cpp +++ /dev/null @@ -1,1147 +0,0 @@ -/* - * FILE : msw/frames.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initframesc - -#define SWIG_name "framesc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxFrameTowxWindow(void *ptr) { - wxFrame *src; - wxWindow *dest; - src = (wxFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxFrameTowxEvtHandler(void *ptr) { - wxFrame *src; - wxEvtHandler *dest; - src = (wxFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFrame *)new_wxFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxFrame_Centre(_swigobj,_swigarg0) (_swigobj->Centre(_swigarg0)) -static PyObject *_wrap_wxFrame_Centre(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - int _arg1 = (wxBOTH); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxFrame_Centre",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Centre. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Centre(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_Command(_swigobj,_swigarg0) (_swigobj->Command(_swigarg0)) -static PyObject *_wrap_wxFrame_Command(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFrame_Command",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Command. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Command(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_CreateStatusBar(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->CreateStatusBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxFrame_CreateStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxFrame * _arg0; - int _arg1 = 1; - long _arg2 = (wxST_SIZEGRIP); - wxWindowID _arg3 = -1; - char * _arg4 = "statusBar"; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ilis:wxFrame_CreateStatusBar",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_CreateStatusBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStatusBar *)wxFrame_CreateStatusBar(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_CreateToolBar(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->CreateToolBar(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxFrame_CreateToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _result; - wxFrame * _arg0; - long _arg1 = (wxNO_BORDER)|(wxTB_HORIZONTAL)|(wxTB_FLAT); - wxWindowID _arg2 = -1; - char * _arg3 = "toolBar"; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|lis:wxFrame_CreateToolBar",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_CreateToolBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBar *)wxFrame_CreateToolBar(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_GetMenuBar(_swigobj) (_swigobj->GetMenuBar()) -static PyObject *_wrap_wxFrame_GetMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - wxFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetMenuBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetMenuBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuBar *)wxFrame_GetMenuBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_GetStatusBar(_swigobj) (_swigobj->GetStatusBar()) -static PyObject *_wrap_wxFrame_GetStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetStatusBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetStatusBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStatusBar *)wxFrame_GetStatusBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxFrame_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetTitle. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFrame_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFrame_GetToolBar(_swigobj) (_swigobj->GetToolBar()) -static PyObject *_wrap_wxFrame_GetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _result; - wxFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_GetToolBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_GetToolBar. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBar *)wxFrame_GetToolBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFrame_Iconize(_swigobj,_swigarg0) (_swigobj->Iconize(_swigarg0)) -static PyObject *_wrap_wxFrame_Iconize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFrame_Iconize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Iconize. Expected _wxFrame_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Iconize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_IsIconized(_swigobj) (_swigobj->IsIconized()) -static PyObject *_wrap_wxFrame_IsIconized(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFrame_IsIconized",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_IsIconized. Expected _wxFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFrame_IsIconized(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFrame_Maximize(_swigobj,_swigarg0) (_swigobj->Maximize(_swigarg0)) -static PyObject *_wrap_wxFrame_Maximize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFrame_Maximize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_Maximize. Expected _wxFrame_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_Maximize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetAcceleratorTable(_swigobj,_swigarg0) (_swigobj->SetAcceleratorTable(_swigarg0)) -static PyObject *_wrap_wxFrame_SetAcceleratorTable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxAcceleratorTable * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetAcceleratorTable",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetAcceleratorTable. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxAcceleratorTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetAcceleratorTable. Expected _wxAcceleratorTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetAcceleratorTable(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetIcon(_swigobj,_swigarg0) (_swigobj->SetIcon(_swigarg0)) -static PyObject *_wrap_wxFrame_SetIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxIcon * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetIcon",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetIcon. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetIcon(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetMenuBar(_swigobj,_swigarg0) (_swigobj->SetMenuBar(_swigarg0)) -static PyObject *_wrap_wxFrame_SetMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxMenuBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetMenuBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetMenuBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetMenuBar. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetMenuBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetStatusBar(_swigobj,_swigarg0) (_swigobj->SetStatusBar(_swigarg0)) -static PyObject *_wrap_wxFrame_SetStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxStatusBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetStatusBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetStatusBar. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetStatusBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFrame_SetStatusText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxFrame_SetStatusText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxString * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxFrame_SetStatusText",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusText. Expected _wxFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetStatusText(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFrame_SetStatusWidths(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusWidths(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxFrame_SetStatusWidths(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - int _arg1; - int * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFrame_SetStatusWidths",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetStatusWidths. Expected _wxFrame_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = int_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetStatusWidths(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxFrame_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxFrame_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFrame_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetTitle. Expected _wxFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFrame_SetToolBar(_swigobj,_swigarg0) (_swigobj->SetToolBar(_swigarg0)) -static PyObject *_wrap_wxFrame_SetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFrame * _arg0; - wxToolBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxFrame_SetToolBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFrame_SetToolBar. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFrame_SetToolBar. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFrame_SetToolBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMiniFrameTowxFrame(void *ptr) { - wxMiniFrame *src; - wxFrame *dest; - src = (wxMiniFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxMiniFrameTowxWindow(void *ptr) { - wxMiniFrame *src; - wxWindow *dest; - src = (wxMiniFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMiniFrameTowxEvtHandler(void *ptr) { - wxMiniFrame *src; - wxEvtHandler *dest; - src = (wxMiniFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMiniFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxMiniFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxMiniFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMiniFrame * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxMiniFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMiniFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMiniFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMiniFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMiniFrame *)new_wxMiniFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMiniFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static PyMethodDef framescMethods[] = { - { "new_wxMiniFrame", _wrap_new_wxMiniFrame, 1 }, - { "wxFrame_SetToolBar", _wrap_wxFrame_SetToolBar, 1 }, - { "wxFrame_SetTitle", _wrap_wxFrame_SetTitle, 1 }, - { "wxFrame_SetStatusWidths", _wrap_wxFrame_SetStatusWidths, 1 }, - { "wxFrame_SetStatusText", _wrap_wxFrame_SetStatusText, 1 }, - { "wxFrame_SetStatusBar", _wrap_wxFrame_SetStatusBar, 1 }, - { "wxFrame_SetMenuBar", _wrap_wxFrame_SetMenuBar, 1 }, - { "wxFrame_SetIcon", _wrap_wxFrame_SetIcon, 1 }, - { "wxFrame_SetAcceleratorTable", _wrap_wxFrame_SetAcceleratorTable, 1 }, - { "wxFrame_Maximize", _wrap_wxFrame_Maximize, 1 }, - { "wxFrame_IsIconized", _wrap_wxFrame_IsIconized, 1 }, - { "wxFrame_Iconize", _wrap_wxFrame_Iconize, 1 }, - { "wxFrame_GetToolBar", _wrap_wxFrame_GetToolBar, 1 }, - { "wxFrame_GetTitle", _wrap_wxFrame_GetTitle, 1 }, - { "wxFrame_GetStatusBar", _wrap_wxFrame_GetStatusBar, 1 }, - { "wxFrame_GetMenuBar", _wrap_wxFrame_GetMenuBar, 1 }, - { "wxFrame_CreateToolBar", _wrap_wxFrame_CreateToolBar, 1 }, - { "wxFrame_CreateStatusBar", _wrap_wxFrame_CreateStatusBar, 1 }, - { "wxFrame_Command", _wrap_wxFrame_Command, 1 }, - { "wxFrame_Centre", _wrap_wxFrame_Centre, 1 }, - { "new_wxFrame", _wrap_new_wxFrame, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initframesc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("framesc", framescMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMiniFrame",SwigwxMiniFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxFrame",SwigwxFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMiniFrame",SwigwxMiniFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxFrame",SwigwxFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_class_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxMiniFrame",SwigwxMiniFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/msw/frames.py b/utils/wxPython/src/msw/frames.py deleted file mode 100644 index e03413e799..0000000000 --- a/utils/wxPython/src/msw/frames.py +++ /dev/null @@ -1,127 +0,0 @@ -# This file was created automatically by SWIG. -import framesc - -from misc import * - -from gdi import * - -from windows import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxFramePtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Centre(self,*args): - val = apply(framesc.wxFrame_Centre,(self.this,)+args) - return val - def Command(self,arg0): - val = framesc.wxFrame_Command(self.this,arg0) - return val - def CreateStatusBar(self,*args): - val = apply(framesc.wxFrame_CreateStatusBar,(self.this,)+args) - val = wxStatusBarPtr(val) - return val - def CreateToolBar(self,*args): - val = apply(framesc.wxFrame_CreateToolBar,(self.this,)+args) - val = wxToolBarPtr(val) - return val - def GetMenuBar(self): - val = framesc.wxFrame_GetMenuBar(self.this) - val = wxMenuBarPtr(val) - return val - def GetStatusBar(self): - val = framesc.wxFrame_GetStatusBar(self.this) - val = wxStatusBarPtr(val) - return val - def GetTitle(self): - val = framesc.wxFrame_GetTitle(self.this) - return val - def GetToolBar(self): - val = framesc.wxFrame_GetToolBar(self.this) - val = wxToolBarPtr(val) - return val - def Iconize(self,arg0): - val = framesc.wxFrame_Iconize(self.this,arg0) - return val - def IsIconized(self): - val = framesc.wxFrame_IsIconized(self.this) - return val - def Maximize(self,arg0): - val = framesc.wxFrame_Maximize(self.this,arg0) - return val - def SetAcceleratorTable(self,arg0): - val = framesc.wxFrame_SetAcceleratorTable(self.this,arg0.this) - return val - def SetIcon(self,arg0): - val = framesc.wxFrame_SetIcon(self.this,arg0.this) - return val - def SetMenuBar(self,arg0): - val = framesc.wxFrame_SetMenuBar(self.this,arg0.this) - return val - def SetStatusBar(self,arg0): - val = framesc.wxFrame_SetStatusBar(self.this,arg0.this) - return val - def SetStatusText(self,arg0,*args): - val = apply(framesc.wxFrame_SetStatusText,(self.this,arg0,)+args) - return val - def SetStatusWidths(self,arg0,*args): - val = apply(framesc.wxFrame_SetStatusWidths,(self.this,arg0,)+args) - return val - def SetTitle(self,arg0): - val = framesc.wxFrame_SetTitle(self.this,arg0) - return val - def SetToolBar(self,arg0): - val = framesc.wxFrame_SetToolBar(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxFrame(wxFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(framesc.new_wxFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMiniFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxMiniFrame(wxMiniFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(framesc.new_wxMiniFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/gdi.cpp b/utils/wxPython/src/msw/gdi.cpp deleted file mode 100644 index cd932832d0..0000000000 --- a/utils/wxPython/src/msw/gdi.cpp +++ /dev/null @@ -1,6657 +0,0 @@ -/* - * FILE : msw/gdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initgdic - -#define SWIG_name "gdic" - -#include "helpers.h" -#include -#include -#ifndef __WXMSW__ -#include -#endif - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - // Alternate 'constructor' - wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) { - return new wxBitmap(width, height, depth); - } - - // This one won't own the reference, so Python - // won't call the dtor, this is good for - // toolbars and such where the parent will - // manage the bitmap. - wxBitmap* wxNoRefBitmap(char* name, long flags) { - return new wxBitmap(name, flags); - } - - wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour) { - return new wxMask(bitmap, colour); - } - // Alternate 'constructor' - wxCursor* wxPyStockCursor(int id) { - return new wxCursor(id); - } - // Alternate 'constructor' - wxColour* wxNamedColour(const wxString& colorName) { - return new wxColour(colorName); - } - // Alternate 'constructor' - wxMemoryDC* wxMemoryDCFromDC(wxDC* oldDC) { - return new wxMemoryDC(oldDC); - } - -#if 0 -extern wxFont * wxNORMAL_FONT; -extern wxFont * wxSMALL_FONT; -extern wxFont * wxITALIC_FONT; -extern wxFont * wxSWISS_FONT; -extern wxPen * wxRED_PEN; -extern wxPen * wxCYAN_PEN; -extern wxPen * wxGREEN_PEN; -extern wxPen * wxBLACK_PEN; -extern wxPen * wxWHITE_PEN; -extern wxPen * wxTRANSPARENT_PEN; -extern wxPen * wxBLACK_DASHED_PEN; -extern wxPen * wxGREY_PEN; -extern wxPen * wxMEDIUM_GREY_PEN; -extern wxPen * wxLIGHT_GREY_PEN; -extern wxBrush * wxBLUE_BRUSH; -extern wxBrush * wxGREEN_BRUSH; -extern wxBrush * wxWHITE_BRUSH; -extern wxBrush * wxBLACK_BRUSH; -extern wxBrush * wxTRANSPARENT_BRUSH; -extern wxBrush * wxCYAN_BRUSH; -extern wxBrush * wxRED_BRUSH; -extern wxBrush * wxGREY_BRUSH; -extern wxBrush * wxMEDIUM_GREY_BRUSH; -extern wxBrush * wxLIGHT_GREY_BRUSH; -extern wxColour * wxBLACK; -extern wxColour * wxWHITE; -extern wxColour * wxRED; -extern wxColour * wxBLUE; -extern wxColour * wxGREEN; -extern wxColour * wxCYAN; -extern wxColour * wxLIGHT_GREY; -extern wxCursor * wxSTANDARD_CURSOR; -extern wxCursor * wxHOURGLASS_CURSOR; -extern wxCursor * wxCROSS_CURSOR; -extern wxBitmap wxNullBitmap; -extern wxIcon wxNullIcon; -extern wxCursor wxNullCursor; -extern wxPen wxNullPen; -extern wxBrush wxNullBrush; -extern wxPalette wxNullPalette; -extern wxFont wxNullFont; -extern wxColour wxNullColour; - -#endif -static PyObject *_wrap_wxEmptyBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - int _arg0; - int _arg1; - int _arg2 = -1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ii|i:wxEmptyBitmap",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxEmptyBitmap(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxNoRefBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - char * _arg0; - long _arg1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxNoRefBitmap",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxNoRefBitmap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxMaskColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMaskColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMaskColour. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMaskColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMask *)wxMaskColour(*_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxStockCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _result; - int _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxStockCursor",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCursor *)wxPyStockCursor(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxNamedColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxString * _arg0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:wxNamedColour",&_obj0)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColour *)wxNamedColour(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxMemoryDCFromDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMemoryDCFromDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMemoryDCFromDC. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMemoryDC *)wxMemoryDCFromDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static int _wrap_wxNORMAL_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNORMAL_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxNORMAL_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxNORMAL_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxSMALL_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxSMALL_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxSMALL_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxSMALL_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxITALIC_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxITALIC_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxITALIC_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxITALIC_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxSWISS_FONT_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxSWISS_FONT is read-only."); - return 1; -} - -static PyObject *_wrap_wxSWISS_FONT_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxSWISS_FONT,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxRED_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxRED_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxRED_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxRED_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCYAN_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCYAN_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxCYAN_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCYAN_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREEN_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREEN_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREEN_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREEN_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxWHITE_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxWHITE_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxWHITE_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxWHITE_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxTRANSPARENT_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxTRANSPARENT_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxTRANSPARENT_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxTRANSPARENT_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_DASHED_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK_DASHED_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_DASHED_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK_DASHED_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREY_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREY_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREY_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREY_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxMEDIUM_GREY_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxMEDIUM_GREY_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxMEDIUM_GREY_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxMEDIUM_GREY_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxLIGHT_GREY_PEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxLIGHT_GREY_PEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxLIGHT_GREY_PEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxLIGHT_GREY_PEN,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLUE_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLUE_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLUE_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLUE_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREEN_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREEN_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREEN_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREEN_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxWHITE_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxWHITE_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxWHITE_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxWHITE_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxTRANSPARENT_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxTRANSPARENT_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxTRANSPARENT_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxTRANSPARENT_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCYAN_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCYAN_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxCYAN_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCYAN_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxRED_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxRED_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxRED_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxRED_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREY_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREY_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREY_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREY_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxMEDIUM_GREY_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxMEDIUM_GREY_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxMEDIUM_GREY_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxMEDIUM_GREY_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxLIGHT_GREY_BRUSH_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxLIGHT_GREY_BRUSH is read-only."); - return 1; -} - -static PyObject *_wrap_wxLIGHT_GREY_BRUSH_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxLIGHT_GREY_BRUSH,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLACK_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLACK is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLACK_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLACK,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxWHITE_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxWHITE is read-only."); - return 1; -} - -static PyObject *_wrap_wxWHITE_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxWHITE,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxRED_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxRED is read-only."); - return 1; -} - -static PyObject *_wrap_wxRED_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxRED,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxBLUE_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxBLUE is read-only."); - return 1; -} - -static PyObject *_wrap_wxBLUE_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxBLUE,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxGREEN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxGREEN is read-only."); - return 1; -} - -static PyObject *_wrap_wxGREEN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxGREEN,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCYAN_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCYAN is read-only."); - return 1; -} - -static PyObject *_wrap_wxCYAN_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCYAN,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxLIGHT_GREY_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxLIGHT_GREY is read-only."); - return 1; -} - -static PyObject *_wrap_wxLIGHT_GREY_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxLIGHT_GREY,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxSTANDARD_CURSOR_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxSTANDARD_CURSOR is read-only."); - return 1; -} - -static PyObject *_wrap_wxSTANDARD_CURSOR_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxSTANDARD_CURSOR,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxHOURGLASS_CURSOR_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxHOURGLASS_CURSOR is read-only."); - return 1; -} - -static PyObject *_wrap_wxHOURGLASS_CURSOR_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxHOURGLASS_CURSOR,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxCROSS_CURSOR_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxCROSS_CURSOR is read-only."); - return 1; -} - -static PyObject *_wrap_wxCROSS_CURSOR_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp, (char *) wxCROSS_CURSOR,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullBitmap_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullBitmap is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullBitmap_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullBitmap,"_wxBitmap_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullIcon_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullIcon is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullIcon_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullIcon,"_wxIcon_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullCursor_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullCursor is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullCursor_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullCursor,"_wxCursor_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullPen_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullPen is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullPen_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullPen,"_wxPen_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullBrush_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullBrush is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullBrush_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullBrush,"_wxBrush_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullPalette_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullPalette is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullPalette_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullPalette,"_wxPalette_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullFont_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullFont is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullFont_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullFont,"_wxFont_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxNullColour_set(PyObject *val) { - - PyErr_SetString(PyExc_TypeError,"Variable wxNullColour is read-only."); - return 1; -} - -static PyObject *_wrap_wxNullColour_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxNullColour,"_wxColour_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -#define new_wxBitmap(_swigarg0,_swigarg1) (new wxBitmap(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxString * _arg0; - long _arg1; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol:new_wxBitmap",&_obj0,&_arg1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)new_wxBitmap(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxBitmap(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxBitmap(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_Create(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Create(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxBitmap_Create(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - int _arg2; - int _arg3 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii|i:wxBitmap_Create",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_Create. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_Create(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_GetDepth(_swigobj) (_swigobj->GetDepth()) -static PyObject *_wrap_wxBitmap_GetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetDepth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetDepth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBitmap_GetDepth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxBitmap_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetHeight. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBitmap_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_GetPalette(_swigobj) (_swigobj->GetPalette()) -static PyObject *_wrap_wxBitmap_GetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetPalette. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPalette *)wxBitmap_GetPalette(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmap_GetMask(_swigobj) (_swigobj->GetMask()) -static PyObject *_wrap_wxBitmap_GetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetMask. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMask *)wxBitmap_GetMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBitmap_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxBitmap_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_GetWidth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBitmap_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxBitmap_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBitmap * _arg0; - wxString * _arg1; - long _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOl:wxBitmap_LoadFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_LoadFile. Expected _wxBitmap_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBitmap_LoadFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxBitmap_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxBitmap_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBitmap * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBitmap_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_Ok. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBitmap_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBitmap_SaveFile(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SaveFile(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxBitmap_SaveFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBitmap * _arg0; - wxString * _arg1; - int _arg2; - wxPalette * _arg3 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOi|s:wxBitmap_SaveFile",&_argc0,&_obj1,&_arg2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SaveFile. Expected _wxBitmap_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxBitmap_SaveFile. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBitmap_SaveFile(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxBitmap_SetDepth(_swigobj,_swigarg0) (_swigobj->SetDepth(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBitmap_SetDepth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetDepth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetDepth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBitmap_SetHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetHeight. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetMask(_swigobj,_swigarg0) (_swigobj->SetMask(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - wxMask * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmap_SetMask",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetMask. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMask_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmap_SetMask. Expected _wxMask_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetMask(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetPalette(_swigobj,_swigarg0) (_swigobj->SetPalette(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - wxPalette * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBitmap_SetPalette",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetPalette. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBitmap_SetPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetPalette(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBitmap_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxBitmap_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBitmap_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmap_SetWidth. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBitmap_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxMask(_swigarg0) (new wxMask(_swigarg0)) -static PyObject *_wrap_new_wxMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMask. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMask *)new_wxMask(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMask_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxMask(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMask * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMask_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxMask. Expected _wxMask_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxIconTowxBitmap(void *ptr) { - wxIcon *src; - wxBitmap *dest; - src = (wxIcon *) ptr; - dest = (wxBitmap *) src; - return (void *) dest; -} - -#define new_wxIcon(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxIcon(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _result; - wxString * _arg0; - long _arg1; - int _arg2 = -1; - int _arg3 = -1; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|ii:new_wxIcon",&_obj0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIcon *)new_wxIcon(*_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxIcon(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxIcon",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxIcon(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIcon_GetDepth(_swigobj) (_swigobj->GetDepth()) -static PyObject *_wrap_wxIcon_GetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_GetDepth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_GetDepth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxIcon_GetDepth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxIcon_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_GetHeight. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxIcon_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxIcon_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_GetWidth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxIcon_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIcon_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxIcon * _arg0; - wxString * _arg1; - long _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOl:wxIcon_LoadFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_LoadFile. Expected _wxIcon_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIcon_LoadFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxIcon_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxIcon_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIcon_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_Ok. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIcon_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxIcon_SetDepth(_swigobj,_swigarg0) (_swigobj->SetDepth(_swigarg0)) -static PyObject *_wrap_wxIcon_SetDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIcon_SetDepth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_SetDepth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIcon_SetDepth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIcon_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxIcon_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIcon_SetHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_SetHeight. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIcon_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIcon_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxIcon_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIcon_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_SetWidth. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIcon_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxCursorTowxBitmap(void *ptr) { - wxCursor *src; - wxBitmap *dest; - src = (wxCursor *) ptr; - dest = (wxBitmap *) src; - return (void *) dest; -} - -#define new_wxCursor(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxCursor(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _result; - wxString * _arg0; - long _arg1; - int _arg2 = 0; - int _arg3 = 0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"Ol|ii:new_wxCursor",&_obj0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxCursor *)new_wxCursor(*_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxCursor_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxCursor(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxCursor",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxCursor(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCursor_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxCursor_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxCursor * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCursor_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCursor_Ok. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxCursor_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static wxFont *new_wxFont(int pointSize,int family,int style,int weight,int underline,char *faceName) { - - return wxTheFontList->FindOrCreateFont(pointSize, family, style, weight, - underline, faceName); - } - -static PyObject *_wrap_new_wxFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - int _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4 = (0); - char * _arg5 = ""; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"iiii|is:new_wxFont",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxFont *)new_wxFont(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxFont_GetFaceName(_swigobj) (_swigobj->GetFaceName()) -static PyObject *_wrap_wxFont_GetFaceName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetFaceName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetFaceName. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFont_GetFaceName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxFont_GetFamily(_swigobj) (_swigobj->GetFamily()) -static PyObject *_wrap_wxFont_GetFamily(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetFamily",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetFamily. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetFamily(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetFontId(_swigobj) (_swigobj->GetFontId()) -static PyObject *_wrap_wxFont_GetFontId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetFontId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetFontId. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetFontId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetPointSize(_swigobj) (_swigobj->GetPointSize()) -static PyObject *_wrap_wxFont_GetPointSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetPointSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetPointSize. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetPointSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxFont_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetStyle. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetUnderlined(_swigobj) (_swigobj->GetUnderlined()) -static PyObject *_wrap_wxFont_GetUnderlined(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetUnderlined",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetUnderlined. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxFont_GetUnderlined(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_GetWeight(_swigobj) (_swigobj->GetWeight()) -static PyObject *_wrap_wxFont_GetWeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxFont * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxFont_GetWeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_GetWeight. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxFont_GetWeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxFont_SetFaceName(_swigobj,_swigarg0) (_swigobj->SetFaceName(_swigarg0)) -static PyObject *_wrap_wxFont_SetFaceName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxFont_SetFaceName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetFaceName. Expected _wxFont_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetFaceName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxFont_SetFamily(_swigobj,_swigarg0) (_swigobj->SetFamily(_swigarg0)) -static PyObject *_wrap_wxFont_SetFamily(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetFamily",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetFamily. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetFamily(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetPointSize(_swigobj,_swigarg0) (_swigobj->SetPointSize(_swigarg0)) -static PyObject *_wrap_wxFont_SetPointSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetPointSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetPointSize. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetPointSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxFont_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetStyle. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetUnderlined(_swigobj,_swigarg0) (_swigobj->SetUnderlined(_swigarg0)) -static PyObject *_wrap_wxFont_SetUnderlined(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetUnderlined",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetUnderlined. Expected _wxFont_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetUnderlined(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxFont_SetWeight(_swigobj,_swigarg0) (_swigobj->SetWeight(_swigarg0)) -static PyObject *_wrap_wxFont_SetWeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxFont_SetWeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxFont_SetWeight. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont_SetWeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxColour(_swigarg0,_swigarg1,_swigarg2) (new wxColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - unsigned char _arg0 = 0; - unsigned char _arg1 = 0; - unsigned char _arg2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|bbb:new_wxColour",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColour *)new_wxColour(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxColour(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxColour(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxColour_Red(_swigobj) (_swigobj->Red()) -static PyObject *_wrap_wxColour_Red(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Red",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Red. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxColour_Red(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxColour_Green(_swigobj) (_swigobj->Green()) -static PyObject *_wrap_wxColour_Green(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Green",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Green. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxColour_Green(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxColour_Blue(_swigobj) (_swigobj->Blue()) -static PyObject *_wrap_wxColour_Blue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Blue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Blue. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxColour_Blue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxColour_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxColour_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Ok. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxColour_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxColour_Set(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Set(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxColour_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _arg0; - unsigned char _arg1; - unsigned char _arg2; - unsigned char _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sbbb:wxColour_Set",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Set. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour_Set(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject * wxColour_Get(wxColour *self) { - PyObject* rv = PyTuple_New(3); - PyTuple_SetItem(rv, 0, PyInt_FromLong(self->Red())); - PyTuple_SetItem(rv, 1, PyInt_FromLong(self->Green())); - PyTuple_SetItem(rv, 2, PyInt_FromLong(self->Blue())); - return rv; - } -static PyObject *_wrap_wxColour_Get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxColour * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxColour_Get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxColour_Get. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxColour_Get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static wxPen *new_wxPen(wxColour *colour,int width,int style) { - return wxThePenList->FindOrCreatePen(*colour, width, style); - } - -static PyObject *_wrap_new_wxPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _result; - wxColour * _arg0; - int _arg1 = 1; - int _arg2 = (wxSOLID); - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:new_wxPen",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPen. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPen *)new_wxPen(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPen_GetCap(_swigobj) (_swigobj->GetCap()) -static PyObject *_wrap_wxPen_GetCap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetCap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetCap. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetCap(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxPen_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxPen * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetColour. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxPen_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPen_GetJoin(_swigobj) (_swigobj->GetJoin()) -static PyObject *_wrap_wxPen_GetJoin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetJoin",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetJoin. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetJoin(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxPen_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetStyle. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxPen_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetWidth. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxPen_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPen * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_Ok. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPen_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_SetCap(_swigobj,_swigarg0) (_swigobj->SetCap(_swigarg0)) -static PyObject *_wrap_wxPen_SetCap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetCap",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetCap. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetCap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxPen_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPen_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetColour. Expected _wxPen_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPen_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetJoin(_swigobj,_swigarg0) (_swigobj->SetJoin(_swigarg0)) -static PyObject *_wrap_wxPen_SetJoin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetJoin",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetJoin. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetJoin(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxPen_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetStyle. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxPen_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPen_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetWidth. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPen_GetDashes(_swigobj,_swigarg0) (_swigobj->GetDashes(_swigarg0)) -static PyObject *_wrap_wxPen_GetDashes(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPen * _arg0; - wxDash ** _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPen_GetDashes",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetDashes. Expected _wxPen_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDash_pp")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPen_GetDashes. Expected _wxDash_pp."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPen_GetDashes(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPen_GetStipple(_swigobj) (_swigobj->GetStipple()) -static PyObject *_wrap_wxPen_GetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxPen * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPen_GetStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_GetStipple. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxPen_GetStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPen_SetDashes(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetDashes(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPen_SetDashes(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - int _arg1; - wxDash * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPen_SetDashes",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetDashes. Expected _wxPen_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = (unsigned long*)long_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetDashes(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxPen_SetStipple(_swigobj,_swigarg0) (_swigobj->SetStipple(_swigarg0)) -static PyObject *_wrap_wxPen_SetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPen_SetStipple",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPen_SetStipple. Expected _wxPen_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPen_SetStipple. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen_SetStipple(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static wxBrush *new_wxBrush(wxColour *colour,int style) { - return wxTheBrushList->FindOrCreateBrush(*colour, style); - } - -static PyObject *_wrap_new_wxBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxColour * _arg0; - int _arg1 = (wxSOLID); - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:new_wxBrush",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxBrush. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBrush *)new_wxBrush(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBrush_GetColour(_swigobj) (_swigobj->GetColour()) -static PyObject *_wrap_wxBrush_GetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxBrush * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_GetColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_GetColour. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxBrush_GetColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBrush_GetStipple(_swigobj) (_swigobj->GetStipple()) -static PyObject *_wrap_wxBrush_GetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxBrush * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_GetStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_GetStipple. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxBrush_GetStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxBrush_GetStyle(_swigobj) (_swigobj->GetStyle()) -static PyObject *_wrap_wxBrush_GetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxBrush * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_GetStyle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_GetStyle. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxBrush_GetStyle(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBrush_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxBrush_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxBrush * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxBrush_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_Ok. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxBrush_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxBrush_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxBrush_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBrush_SetColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetColour. Expected _wxBrush_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBrush_SetColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush_SetColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBrush_SetStipple(_swigobj,_swigarg0) (_swigobj->SetStipple(_swigarg0)) -static PyObject *_wrap_wxBrush_SetStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxBrush_SetStipple",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetStipple. Expected _wxBrush_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxBrush_SetStipple. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush_SetStipple(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxBrush_SetStyle(_swigobj,_swigarg0) (_swigobj->SetStyle(_swigarg0)) -static PyObject *_wrap_wxBrush_SetStyle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxBrush_SetStyle",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBrush_SetStyle. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush_SetStyle(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define delete_wxDC(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxDC. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_BeginDrawing(_swigobj) (_swigobj->BeginDrawing()) -static PyObject *_wrap_wxDC_BeginDrawing(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_BeginDrawing",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_BeginDrawing. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_BeginDrawing(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_Blit(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (_swigobj->Blit(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_wxDC_Blit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - wxDC * _arg5; - long _arg6; - long _arg7; - long _arg8; - char * _argc0 = 0; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllllslll:wxDC_Blit",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5,&_arg6,&_arg7,&_arg8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Blit. Expected _wxDC_p."); - return NULL; - } - } - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of wxDC_Blit. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_Blit(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxDC_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Clear. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_CrossHair(_swigobj,_swigarg0,_swigarg1) (_swigobj->CrossHair(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_CrossHair(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_CrossHair",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_CrossHair. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_CrossHair(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DestroyClippingRegion(_swigobj) (_swigobj->DestroyClippingRegion()) -static PyObject *_wrap_wxDC_DestroyClippingRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_DestroyClippingRegion",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DestroyClippingRegion. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DestroyClippingRegion(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DeviceToLogicalX(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalX(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DeviceToLogicalXRel(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalXRel(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalXRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalXRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalXRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalXRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DeviceToLogicalY(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalY(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DeviceToLogicalYRel(_swigobj,_swigarg0) (_swigobj->DeviceToLogicalYRel(_swigarg0)) -static PyObject *_wrap_wxDC_DeviceToLogicalYRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_DeviceToLogicalYRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DeviceToLogicalYRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_DeviceToLogicalYRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_DrawArc(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->DrawArc(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxDC_DrawArc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - long _arg5; - long _arg6; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllllll:wxDC_DrawArc",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawArc. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawEllipse(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawEllipse(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawEllipse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_DrawEllipse",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawEllipse. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawEllipse(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawEllipticArc(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->DrawEllipticArc(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxDC_DrawEllipticArc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - long _arg5; - long _arg6; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllllll:wxDC_DrawEllipticArc",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawEllipticArc. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawEllipticArc(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawIcon(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DrawIcon(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_DrawIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxIcon * _arg1; - long _arg2; - long _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssll:wxDC_DrawIcon",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawIcon. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_DrawIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawIcon(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawLine(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawLine(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawLine(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_DrawLine",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawLine. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawLine(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawLines(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawLines(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawLines(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - wxPoint * _arg2; - long _arg3 = 0; - long _arg4 = 0; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|ll:wxDC_DrawLines",&_argc0,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawLines. Expected _wxDC_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxPoint_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawLines(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxDC_DrawPolygon(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->DrawPolygon(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxDC_DrawPolygon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - wxPoint * _arg2; - long _arg3 = 0; - long _arg4 = 0; - int _arg5 = (wxODDEVEN_RULE); - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|lli:wxDC_DrawPolygon",&_argc0,&_obj2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawPolygon. Expected _wxDC_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxPoint_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawPolygon(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxDC_DrawPoint(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawPoint(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_DrawPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_DrawPoint",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawPoint. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawPoint(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawRectangle(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->DrawRectangle(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_DrawRectangle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_DrawRectangle",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawRectangle. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawRectangle(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawRoundedRectangle(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->DrawRoundedRectangle(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxDC_DrawRoundedRectangle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - long _arg5 = 20; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll|l:wxDC_DrawRoundedRectangle",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawRoundedRectangle. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawRoundedRectangle(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_DrawSpline(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawSpline(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_DrawSpline(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - wxPoint * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDC_DrawSpline",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawSpline. Expected _wxDC_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = wxPoint_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawSpline(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define wxDC_DrawText(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DrawText(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_DrawText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxString * _arg1; - long _arg2; - long _arg3; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOll:wxDC_DrawText",&_argc0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawText. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawText(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_EndDoc(_swigobj) (_swigobj->EndDoc()) -static PyObject *_wrap_wxDC_EndDoc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_EndDoc",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_EndDoc. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_EndDoc(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_EndDrawing(_swigobj) (_swigobj->EndDrawing()) -static PyObject *_wrap_wxDC_EndDrawing(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_EndDrawing",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_EndDrawing. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_EndDrawing(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_EndPage(_swigobj) (_swigobj->EndPage()) -static PyObject *_wrap_wxDC_EndPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_EndPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_EndPage. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_EndPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_FloodFill(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->FloodFill(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_FloodFill(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - wxColour * _arg3; - int _arg4 = (wxFLOOD_SURFACE); - char * _argc0 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"slls|i:wxDC_FloodFill",&_argc0,&_arg1,&_arg2,&_argc3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_FloodFill. Expected _wxDC_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxDC_FloodFill. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_FloodFill(_arg0,_arg1,_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_GetBackground(_swigobj) (_swigobj->GetBackground()) -static PyObject *_wrap_wxDC_GetBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetBackground",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetBackground. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush & _result_ref = wxDC_GetBackground(_arg0); - _result = (wxBrush *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetBrush(_swigobj) (_swigobj->GetBrush()) -static PyObject *_wrap_wxDC_GetBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetBrush",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetBrush. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush & _result_ref = wxDC_GetBrush(_arg0); - _result = (wxBrush *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetCharHeight(_swigobj) (_swigobj->GetCharHeight()) -static PyObject *_wrap_wxDC_GetCharHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetCharHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetCharHeight. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_GetCharHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_GetCharWidth(_swigobj) (_swigobj->GetCharWidth()) -static PyObject *_wrap_wxDC_GetCharWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetCharWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetCharWidth. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_GetCharWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_GetClippingBox(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->GetClippingBox(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_GetClippingBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long * _arg1; - long temp; - long * _arg2; - long temp0; - long * _arg3; - long temp1; - long * _arg4; - long temp2; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} -{ - _arg3 = &temp1; -} -{ - _arg4 = &temp2; -} - if(!PyArg_ParseTuple(args,"s:wxDC_GetClippingBox",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetClippingBox. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetClippingBox(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxDC_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxDC_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetFont. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxDC_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetLogicalFunction(_swigobj) (_swigobj->GetLogicalFunction()) -static PyObject *_wrap_wxDC_GetLogicalFunction(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetLogicalFunction",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetLogicalFunction. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDC_GetLogicalFunction(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_GetMapMode(_swigobj) (_swigobj->GetMapMode()) -static PyObject *_wrap_wxDC_GetMapMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetMapMode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetMapMode. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDC_GetMapMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_GetOptimization(_swigobj) (_swigobj->GetOptimization()) -static PyObject *_wrap_wxDC_GetOptimization(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetOptimization",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetOptimization. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_GetOptimization(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_GetPen(_swigobj) (_swigobj->GetPen()) -static PyObject *_wrap_wxDC_GetPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPen * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetPen",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetPen. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPen & _result_ref = wxDC_GetPen(_arg0); - _result = (wxPen *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPen_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxColour * wxDC_GetPixel(wxDC *self,long x,long y) { - wxColour* wc = new wxColour(); - self->GetPixel(x, y, wc); - return wc; - } -static PyObject *_wrap_wxDC_GetPixel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_GetPixel",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetPixel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxColour *)wxDC_GetPixel(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxDC_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetSize. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxDC_GetTextBackground(_swigobj) (_swigobj->GetTextBackground()) -static PyObject *_wrap_wxDC_GetTextBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetTextBackground",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetTextBackground. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxDC_GetTextBackground(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_GetTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxDC_GetTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxString * _arg1; - long * _arg2; - long temp; - long * _arg3; - long temp0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"sO:wxDC_GetTextExtent",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetTextExtent. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetTextExtent(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_GetFullTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxDC_GetFullTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxString * _arg1; - long * _arg2; - long temp; - long * _arg3; - long temp0; - long * _arg4; - long temp1; - long * _arg5; - long temp2; - wxFont * _arg6 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"sO|s:wxDC_GetFullTextExtent",&_argc0,&_obj1,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetFullTextExtent. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxDC_GetFullTextExtent. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_GetFullTextExtent(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg5)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_GetTextForeground(_swigobj) (_swigobj->GetTextForeground()) -static PyObject *_wrap_wxDC_GetTextForeground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_GetTextForeground",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_GetTextForeground. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxDC_GetTextForeground(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxDC_LogicalToDeviceX(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceX(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_LogicalToDeviceXRel(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceXRel(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceXRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceXRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceXRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceXRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_LogicalToDeviceY(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceY(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_LogicalToDeviceYRel(_swigobj,_swigarg0) (_swigobj->LogicalToDeviceYRel(_swigarg0)) -static PyObject *_wrap_wxDC_LogicalToDeviceYRel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxDC_LogicalToDeviceYRel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_LogicalToDeviceYRel. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_LogicalToDeviceYRel(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MaxX(_swigobj) (_swigobj->MaxX()) -static PyObject *_wrap_wxDC_MaxX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MaxX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MaxX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MaxX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MaxY(_swigobj) (_swigobj->MaxY()) -static PyObject *_wrap_wxDC_MaxY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MaxY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MaxY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MaxY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MinX(_swigobj) (_swigobj->MinX()) -static PyObject *_wrap_wxDC_MinX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MinX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MinX. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MinX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_MinY(_swigobj) (_swigobj->MinY()) -static PyObject *_wrap_wxDC_MinY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_MinY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_MinY. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxDC_MinY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxDC_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxDC_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_Ok. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDC_SetDeviceOrigin(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetDeviceOrigin(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_SetDeviceOrigin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxDC_SetDeviceOrigin",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetDeviceOrigin. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetDeviceOrigin(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetBackground(_swigobj,_swigarg0) (_swigobj->SetBackground(_swigarg0)) -static PyObject *_wrap_wxDC_SetBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxBrush * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetBackground",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetBackground. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetBackground(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetBackgroundMode(_swigobj,_swigarg0) (_swigobj->SetBackgroundMode(_swigarg0)) -static PyObject *_wrap_wxDC_SetBackgroundMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetBackgroundMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBackgroundMode. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetBackgroundMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetClippingRegion(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->SetClippingRegion(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxDC_SetClippingRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - long _arg1; - long _arg2; - long _arg3; - long _arg4; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sllll:wxDC_SetClippingRegion",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetClippingRegion. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetClippingRegion(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetPalette(_swigobj,_swigarg0) (_swigobj->SetPalette(_swigarg0)) -static PyObject *_wrap_wxDC_SetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxPalette * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetPalette",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPalette. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetPalette(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetBrush(_swigobj,_swigarg0) (_swigobj->SetBrush(_swigarg0)) -static PyObject *_wrap_wxDC_SetBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxBrush * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetBrush",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetBrush. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBrush_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetBrush. Expected _wxBrush_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetBrush(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxDC_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetFont. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetLogicalFunction(_swigobj,_swigarg0) (_swigobj->SetLogicalFunction(_swigarg0)) -static PyObject *_wrap_wxDC_SetLogicalFunction(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetLogicalFunction",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetLogicalFunction. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetLogicalFunction(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetMapMode(_swigobj,_swigarg0) (_swigobj->SetMapMode(_swigarg0)) -static PyObject *_wrap_wxDC_SetMapMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetMapMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetMapMode. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetMapMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetOptimization(_swigobj,_swigarg0) (_swigobj->SetOptimization(_swigarg0)) -static PyObject *_wrap_wxDC_SetOptimization(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDC_SetOptimization",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetOptimization. Expected _wxDC_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetOptimization(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetPen(_swigobj,_swigarg0) (_swigobj->SetPen(_swigarg0)) -static PyObject *_wrap_wxDC_SetPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxPen * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetPen",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetPen. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetPen. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetPen(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetTextBackground(_swigobj,_swigarg0) (_swigobj->SetTextBackground(_swigarg0)) -static PyObject *_wrap_wxDC_SetTextBackground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetTextBackground",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextBackground. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetTextBackground. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetTextBackground(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetTextForeground(_swigobj,_swigarg0) (_swigobj->SetTextForeground(_swigarg0)) -static PyObject *_wrap_wxDC_SetTextForeground(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxDC_SetTextForeground",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetTextForeground. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_SetTextForeground. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetTextForeground(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_SetUserScale(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetUserScale(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxDC_SetUserScale(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - double _arg1; - double _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sdd:wxDC_SetUserScale",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_SetUserScale. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_SetUserScale(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDC_StartDoc(_swigobj,_swigarg0) (_swigobj->StartDoc(_swigarg0)) -static PyObject *_wrap_wxDC_StartDoc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDC * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDC_StartDoc",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_StartDoc. Expected _wxDC_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDC_StartDoc(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDC_StartPage(_swigobj) (_swigobj->StartPage()) -static PyObject *_wrap_wxDC_StartPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDC_StartPage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_StartPage. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_StartPage(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxDC_DrawBitmap(wxDC *self,wxBitmap & bitmap,long x,long y,bool swapPalette) { - wxMemoryDC* memDC = new wxMemoryDC; - memDC->SelectObject(bitmap); - if (swapPalette) - self->SetPalette(*bitmap.GetPalette()); - self->Blit(x, y, bitmap.GetWidth(), bitmap.GetHeight(), memDC, - 0, 0, self->GetLogicalFunction()); - memDC->SelectObject(wxNullBitmap); - delete memDC; - } -static PyObject *_wrap_wxDC_DrawBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDC * _arg0; - wxBitmap * _arg1; - long _arg2; - long _arg3; - bool _arg4 = (1); - char * _argc0 = 0; - char * _argc1 = 0; - int tempbool4; - - self = self; - if(!PyArg_ParseTuple(args,"ssll|i:wxDC_DrawBitmap",&_argc0,&_argc1,&_arg2,&_arg3,&tempbool4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDC_DrawBitmap. Expected _wxDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxDC_DrawBitmap. Expected _wxBitmap_p."); - return NULL; - } - } - _arg4 = (bool ) tempbool4; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDC_DrawBitmap(_arg0,*_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMemoryDCTowxDC(void *ptr) { - wxMemoryDC *src; - wxDC *dest; - src = (wxMemoryDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxMemoryDC() (new wxMemoryDC()) -static PyObject *_wrap_new_wxMemoryDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxMemoryDC")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMemoryDC *)new_wxMemoryDC(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMemoryDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMemoryDC_SelectObject(_swigobj,_swigarg0) (_swigobj->SelectObject(_swigarg0)) -static PyObject *_wrap_wxMemoryDC_SelectObject(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMemoryDC * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMemoryDC_SelectObject",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMemoryDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMemoryDC_SelectObject. Expected _wxMemoryDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMemoryDC_SelectObject. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMemoryDC_SelectObject(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxScreenDCTowxDC(void *ptr) { - wxScreenDC *src; - wxDC *dest; - src = (wxScreenDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxScreenDC() (new wxScreenDC()) -static PyObject *_wrap_new_wxScreenDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScreenDC * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxScreenDC")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScreenDC *)new_wxScreenDC(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScreenDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxScreenDC_StartDrawingOnTop(_swigobj,_swigarg0) (_swigobj->StartDrawingOnTop(_swigarg0)) -static PyObject *_wrap_wxScreenDC_StartDrawingOnTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScreenDC * _arg0; - wxWindow * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxScreenDC_StartDrawingOnTop",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTop. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxScreenDC_StartDrawingOnTop. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScreenDC_StartDrawingOnTop(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScreenDC_StartDrawingOnTopRect(_swigobj,_swigarg0) (_swigobj->StartDrawingOnTop(_swigarg0)) -static PyObject *_wrap_wxScreenDC_StartDrawingOnTopRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScreenDC * _arg0; - wxRect * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxScreenDC_StartDrawingOnTopRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_StartDrawingOnTopRect. Expected _wxScreenDC_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxScreenDC_StartDrawingOnTopRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScreenDC_StartDrawingOnTopRect(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScreenDC_EndDrawingOnTop(_swigobj) (_swigobj->EndDrawingOnTop()) -static PyObject *_wrap_wxScreenDC_EndDrawingOnTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScreenDC * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScreenDC_EndDrawingOnTop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScreenDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScreenDC_EndDrawingOnTop. Expected _wxScreenDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScreenDC_EndDrawingOnTop(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxClientDCTowxDC(void *ptr) { - wxClientDC *src; - wxDC *dest; - src = (wxClientDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxClientDC(_swigarg0) (new wxClientDC(_swigarg0)) -static PyObject *_wrap_new_wxClientDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxClientDC * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxClientDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxClientDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxClientDC *)new_wxClientDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxClientDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPaintDCTowxDC(void *ptr) { - wxPaintDC *src; - wxDC *dest; - src = (wxPaintDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxPaintDC(_swigarg0) (new wxPaintDC(_swigarg0)) -static PyObject *_wrap_new_wxPaintDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPaintDC * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxPaintDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPaintDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPaintDC *)new_wxPaintDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPaintDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxWindowDCTowxDC(void *ptr) { - wxWindowDC *src; - wxDC *dest; - src = (wxWindowDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxWindowDC(_swigarg0) (new wxWindowDC(_swigarg0)) -static PyObject *_wrap_new_wxWindowDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindowDC * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxWindowDC",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxWindowDC. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindowDC *)new_wxWindowDC(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindowDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPrinterDCTowxDC(void *ptr) { - wxPrinterDC *src; - wxDC *dest; - src = (wxPrinterDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxPrinterDC(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxPrinterDC(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxPrinterDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPrinterDC * _result; - wxString * _arg0; - wxString * _arg1; - wxString * _arg2; - bool _arg3 = (1); - int _arg4 = (wxPORTRAIT); - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - int tempbool3; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|ii:new_wxPrinterDC",&_obj0,&_obj1,&_obj2,&tempbool3,&_arg4)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPrinterDC *)new_wxPrinterDC(*_arg0,*_arg1,*_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPrinterDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxMetaFileDCTowxDC(void *ptr) { - wxMetaFileDC *src; - wxDC *dest; - src = (wxMetaFileDC *) ptr; - dest = (wxDC *) src; - return (void *) dest; -} - -#define new_wxMetaFileDC(_swigarg0) (new wxMetaFileDC(_swigarg0)) -static PyObject *_wrap_new_wxMetaFileDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMetaFileDC * _result; - wxString * _arg0 = &wxPyEmptyStr; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxMetaFileDC",&_obj0)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMetaFileDC *)new_wxMetaFileDC(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFileDC_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define wxMetaFileDC_Close(_swigobj) (_swigobj->Close()) -static PyObject *_wrap_wxMetaFileDC_Close(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMetaFile * _result; - wxMetaFileDC * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMetaFileDC_Close",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMetaFileDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMetaFileDC_Close. Expected _wxMetaFileDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMetaFile *)wxMetaFileDC_Close(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMetaFile_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxPalette(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxPalette(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - int _arg0; - byte * _arg1; - byte * _arg2; - byte * _arg3; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OOO:new_wxPalette",&_obj1,&_obj2,&_obj3)) - return NULL; -{ - _arg1 = byte_LIST_helper(_obj1); - if (_arg1 == NULL) { - return NULL; - } -} -{ - _arg2 = byte_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} - if (_obj3) -{ - _arg3 = byte_LIST_helper(_obj3); - if (_arg3 == NULL) { - return NULL; - } -} -{ - if (_obj1) { - _arg0 = PyList_Size(_obj1); - } - else { - _arg0 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPalette *)new_wxPalette(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg1; -} -{ - delete [] _arg2; -} -{ - delete [] _arg3; -} - return _resultobj; -} - -#define delete_wxPalette(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPalette(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPalette_GetPixel(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetPixel(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxPalette_GetPixel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPalette * _arg0; - byte _arg1; - byte _arg2; - byte _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sbbb:wxPalette_GetPixel",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_GetPixel. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPalette_GetPixel(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPalette_GetRGB(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->GetRGB(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxPalette_GetRGB(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPalette * _arg0; - int _arg1; - byte * _arg2; - byte * _arg3; - byte * _arg4; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sisss:wxPalette_GetRGB",&_argc0,&_arg1,&_argc2,&_argc3,&_argc4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_GetRGB. Expected _wxPalette_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_byte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxPalette_GetRGB. Expected _byte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPalette_GetRGB(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPalette_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxPalette_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPalette * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPalette_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPalette_Ok. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPalette_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxImageList(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxImageList(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - int _arg0; - int _arg1; - bool _arg2 = (1); - int _arg3 = 1; - int tempbool2; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ii|ii:new_wxImageList",&_arg0,&_arg1,&tempbool2,&_arg3)) - return NULL; - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)new_wxImageList(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxImageList(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImageList_Add(_swigobj,_swigarg0,_swigarg1) (_swigobj->Add(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImageList_Add(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImageList * _arg0; - wxBitmap * _arg1; - wxBitmap * _arg2 = &wxNullBitmap; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxImageList_Add",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Add. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImageList_Add. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Add. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImageList_Add(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_AddWithColourMask(_swigobj,_swigarg0,_swigarg1) (_swigobj->Add(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImageList_AddWithColourMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImageList * _arg0; - wxBitmap * _arg1; - wxColour * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss:wxImageList_AddWithColourMask",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_AddWithColourMask. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImageList_AddWithColourMask. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_AddWithColourMask. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImageList_AddWithColourMask(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_AddIcon(_swigobj,_swigarg0) (_swigobj->Add(_swigarg0)) -static PyObject *_wrap_wxImageList_AddIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImageList * _arg0; - wxIcon * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxImageList_AddIcon",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_AddIcon. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImageList_AddIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImageList_AddIcon(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_Replace(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Replace(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxImageList_Replace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - wxBitmap * _arg2; - wxBitmap * _arg3 = &wxNullBitmap; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis|s:wxImageList_Replace",&_argc0,&_arg1,&_argc2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Replace. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Replace. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxImageList_Replace. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_Replace(_arg0,_arg1,*_arg2,*_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_ReplaceIcon(_swigobj,_swigarg0,_swigarg1) (_swigobj->Replace(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImageList_ReplaceIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - wxIcon * _arg2; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sis:wxImageList_ReplaceIcon",&_argc0,&_arg1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_ReplaceIcon. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_ReplaceIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_ReplaceIcon(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_Draw(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->Draw(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxImageList_Draw(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - wxDC * _arg2; - int _arg3; - int _arg4; - int _arg5 = (wxIMAGELIST_DRAW_NORMAL); - bool _arg6 = (0); - char * _argc0 = 0; - char * _argc2 = 0; - int tempbool6; - - self = self; - if(!PyArg_ParseTuple(args,"sisii|ii:wxImageList_Draw",&_argc0,&_arg1,&_argc2,&_arg3,&_arg4,&_arg5,&tempbool6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Draw. Expected _wxImageList_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxImageList_Draw. Expected _wxDC_p."); - return NULL; - } - } - _arg6 = (bool ) tempbool6; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_Draw(_arg0,_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_GetImageCount(_swigobj) (_swigobj->GetImageCount()) -static PyObject *_wrap_wxImageList_GetImageCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImageList * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageList_GetImageCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_GetImageCount. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImageList_GetImageCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_Remove(_swigobj,_swigarg0) (_swigobj->Remove(_swigarg0)) -static PyObject *_wrap_wxImageList_Remove(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxImageList_Remove",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_Remove. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_Remove(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImageList_RemoveAll(_swigobj) (_swigobj->RemoveAll()) -static PyObject *_wrap_wxImageList_RemoveAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImageList * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageList_RemoveAll",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageList_RemoveAll. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImageList_RemoveAll(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef gdicMethods[] = { - { "wxImageList_RemoveAll", _wrap_wxImageList_RemoveAll, 1 }, - { "wxImageList_Remove", _wrap_wxImageList_Remove, 1 }, - { "wxImageList_GetImageCount", _wrap_wxImageList_GetImageCount, 1 }, - { "wxImageList_Draw", _wrap_wxImageList_Draw, 1 }, - { "wxImageList_ReplaceIcon", _wrap_wxImageList_ReplaceIcon, 1 }, - { "wxImageList_Replace", _wrap_wxImageList_Replace, 1 }, - { "wxImageList_AddIcon", _wrap_wxImageList_AddIcon, 1 }, - { "wxImageList_AddWithColourMask", _wrap_wxImageList_AddWithColourMask, 1 }, - { "wxImageList_Add", _wrap_wxImageList_Add, 1 }, - { "delete_wxImageList", _wrap_delete_wxImageList, 1 }, - { "new_wxImageList", _wrap_new_wxImageList, 1 }, - { "wxPalette_Ok", _wrap_wxPalette_Ok, 1 }, - { "wxPalette_GetRGB", _wrap_wxPalette_GetRGB, 1 }, - { "wxPalette_GetPixel", _wrap_wxPalette_GetPixel, 1 }, - { "delete_wxPalette", _wrap_delete_wxPalette, 1 }, - { "new_wxPalette", _wrap_new_wxPalette, 1 }, - { "wxMetaFileDC_Close", _wrap_wxMetaFileDC_Close, 1 }, - { "new_wxMetaFileDC", _wrap_new_wxMetaFileDC, 1 }, - { "new_wxPrinterDC", _wrap_new_wxPrinterDC, 1 }, - { "new_wxWindowDC", _wrap_new_wxWindowDC, 1 }, - { "new_wxPaintDC", _wrap_new_wxPaintDC, 1 }, - { "new_wxClientDC", _wrap_new_wxClientDC, 1 }, - { "wxScreenDC_EndDrawingOnTop", _wrap_wxScreenDC_EndDrawingOnTop, 1 }, - { "wxScreenDC_StartDrawingOnTopRect", _wrap_wxScreenDC_StartDrawingOnTopRect, 1 }, - { "wxScreenDC_StartDrawingOnTop", _wrap_wxScreenDC_StartDrawingOnTop, 1 }, - { "new_wxScreenDC", _wrap_new_wxScreenDC, 1 }, - { "wxMemoryDC_SelectObject", _wrap_wxMemoryDC_SelectObject, 1 }, - { "new_wxMemoryDC", _wrap_new_wxMemoryDC, 1 }, - { "wxDC_DrawBitmap", _wrap_wxDC_DrawBitmap, 1 }, - { "wxDC_StartPage", _wrap_wxDC_StartPage, 1 }, - { "wxDC_StartDoc", _wrap_wxDC_StartDoc, 1 }, - { "wxDC_SetUserScale", _wrap_wxDC_SetUserScale, 1 }, - { "wxDC_SetTextForeground", _wrap_wxDC_SetTextForeground, 1 }, - { "wxDC_SetTextBackground", _wrap_wxDC_SetTextBackground, 1 }, - { "wxDC_SetPen", _wrap_wxDC_SetPen, 1 }, - { "wxDC_SetOptimization", _wrap_wxDC_SetOptimization, 1 }, - { "wxDC_SetMapMode", _wrap_wxDC_SetMapMode, 1 }, - { "wxDC_SetLogicalFunction", _wrap_wxDC_SetLogicalFunction, 1 }, - { "wxDC_SetFont", _wrap_wxDC_SetFont, 1 }, - { "wxDC_SetBrush", _wrap_wxDC_SetBrush, 1 }, - { "wxDC_SetPalette", _wrap_wxDC_SetPalette, 1 }, - { "wxDC_SetClippingRegion", _wrap_wxDC_SetClippingRegion, 1 }, - { "wxDC_SetBackgroundMode", _wrap_wxDC_SetBackgroundMode, 1 }, - { "wxDC_SetBackground", _wrap_wxDC_SetBackground, 1 }, - { "wxDC_SetDeviceOrigin", _wrap_wxDC_SetDeviceOrigin, 1 }, - { "wxDC_Ok", _wrap_wxDC_Ok, 1 }, - { "wxDC_MinY", _wrap_wxDC_MinY, 1 }, - { "wxDC_MinX", _wrap_wxDC_MinX, 1 }, - { "wxDC_MaxY", _wrap_wxDC_MaxY, 1 }, - { "wxDC_MaxX", _wrap_wxDC_MaxX, 1 }, - { "wxDC_LogicalToDeviceYRel", _wrap_wxDC_LogicalToDeviceYRel, 1 }, - { "wxDC_LogicalToDeviceY", _wrap_wxDC_LogicalToDeviceY, 1 }, - { "wxDC_LogicalToDeviceXRel", _wrap_wxDC_LogicalToDeviceXRel, 1 }, - { "wxDC_LogicalToDeviceX", _wrap_wxDC_LogicalToDeviceX, 1 }, - { "wxDC_GetTextForeground", _wrap_wxDC_GetTextForeground, 1 }, - { "wxDC_GetFullTextExtent", _wrap_wxDC_GetFullTextExtent, 1 }, - { "wxDC_GetTextExtent", _wrap_wxDC_GetTextExtent, 1 }, - { "wxDC_GetTextBackground", _wrap_wxDC_GetTextBackground, 1 }, - { "wxDC_GetSize", _wrap_wxDC_GetSize, 1 }, - { "wxDC_GetPixel", _wrap_wxDC_GetPixel, 1 }, - { "wxDC_GetPen", _wrap_wxDC_GetPen, 1 }, - { "wxDC_GetOptimization", _wrap_wxDC_GetOptimization, 1 }, - { "wxDC_GetMapMode", _wrap_wxDC_GetMapMode, 1 }, - { "wxDC_GetLogicalFunction", _wrap_wxDC_GetLogicalFunction, 1 }, - { "wxDC_GetFont", _wrap_wxDC_GetFont, 1 }, - { "wxDC_GetClippingBox", _wrap_wxDC_GetClippingBox, 1 }, - { "wxDC_GetCharWidth", _wrap_wxDC_GetCharWidth, 1 }, - { "wxDC_GetCharHeight", _wrap_wxDC_GetCharHeight, 1 }, - { "wxDC_GetBrush", _wrap_wxDC_GetBrush, 1 }, - { "wxDC_GetBackground", _wrap_wxDC_GetBackground, 1 }, - { "wxDC_FloodFill", _wrap_wxDC_FloodFill, 1 }, - { "wxDC_EndPage", _wrap_wxDC_EndPage, 1 }, - { "wxDC_EndDrawing", _wrap_wxDC_EndDrawing, 1 }, - { "wxDC_EndDoc", _wrap_wxDC_EndDoc, 1 }, - { "wxDC_DrawText", _wrap_wxDC_DrawText, 1 }, - { "wxDC_DrawSpline", _wrap_wxDC_DrawSpline, 1 }, - { "wxDC_DrawRoundedRectangle", _wrap_wxDC_DrawRoundedRectangle, 1 }, - { "wxDC_DrawRectangle", _wrap_wxDC_DrawRectangle, 1 }, - { "wxDC_DrawPoint", _wrap_wxDC_DrawPoint, 1 }, - { "wxDC_DrawPolygon", _wrap_wxDC_DrawPolygon, 1 }, - { "wxDC_DrawLines", _wrap_wxDC_DrawLines, 1 }, - { "wxDC_DrawLine", _wrap_wxDC_DrawLine, 1 }, - { "wxDC_DrawIcon", _wrap_wxDC_DrawIcon, 1 }, - { "wxDC_DrawEllipticArc", _wrap_wxDC_DrawEllipticArc, 1 }, - { "wxDC_DrawEllipse", _wrap_wxDC_DrawEllipse, 1 }, - { "wxDC_DrawArc", _wrap_wxDC_DrawArc, 1 }, - { "wxDC_DeviceToLogicalYRel", _wrap_wxDC_DeviceToLogicalYRel, 1 }, - { "wxDC_DeviceToLogicalY", _wrap_wxDC_DeviceToLogicalY, 1 }, - { "wxDC_DeviceToLogicalXRel", _wrap_wxDC_DeviceToLogicalXRel, 1 }, - { "wxDC_DeviceToLogicalX", _wrap_wxDC_DeviceToLogicalX, 1 }, - { "wxDC_DestroyClippingRegion", _wrap_wxDC_DestroyClippingRegion, 1 }, - { "wxDC_CrossHair", _wrap_wxDC_CrossHair, 1 }, - { "wxDC_Clear", _wrap_wxDC_Clear, 1 }, - { "wxDC_Blit", _wrap_wxDC_Blit, 1 }, - { "wxDC_BeginDrawing", _wrap_wxDC_BeginDrawing, 1 }, - { "delete_wxDC", _wrap_delete_wxDC, 1 }, - { "wxBrush_SetStyle", _wrap_wxBrush_SetStyle, 1 }, - { "wxBrush_SetStipple", _wrap_wxBrush_SetStipple, 1 }, - { "wxBrush_SetColour", _wrap_wxBrush_SetColour, 1 }, - { "wxBrush_Ok", _wrap_wxBrush_Ok, 1 }, - { "wxBrush_GetStyle", _wrap_wxBrush_GetStyle, 1 }, - { "wxBrush_GetStipple", _wrap_wxBrush_GetStipple, 1 }, - { "wxBrush_GetColour", _wrap_wxBrush_GetColour, 1 }, - { "new_wxBrush", _wrap_new_wxBrush, 1 }, - { "wxPen_SetStipple", _wrap_wxPen_SetStipple, 1 }, - { "wxPen_SetDashes", _wrap_wxPen_SetDashes, 1 }, - { "wxPen_GetStipple", _wrap_wxPen_GetStipple, 1 }, - { "wxPen_GetDashes", _wrap_wxPen_GetDashes, 1 }, - { "wxPen_SetWidth", _wrap_wxPen_SetWidth, 1 }, - { "wxPen_SetStyle", _wrap_wxPen_SetStyle, 1 }, - { "wxPen_SetJoin", _wrap_wxPen_SetJoin, 1 }, - { "wxPen_SetColour", _wrap_wxPen_SetColour, 1 }, - { "wxPen_SetCap", _wrap_wxPen_SetCap, 1 }, - { "wxPen_Ok", _wrap_wxPen_Ok, 1 }, - { "wxPen_GetWidth", _wrap_wxPen_GetWidth, 1 }, - { "wxPen_GetStyle", _wrap_wxPen_GetStyle, 1 }, - { "wxPen_GetJoin", _wrap_wxPen_GetJoin, 1 }, - { "wxPen_GetColour", _wrap_wxPen_GetColour, 1 }, - { "wxPen_GetCap", _wrap_wxPen_GetCap, 1 }, - { "new_wxPen", _wrap_new_wxPen, 1 }, - { "wxColour_Get", _wrap_wxColour_Get, 1 }, - { "wxColour_Set", _wrap_wxColour_Set, 1 }, - { "wxColour_Ok", _wrap_wxColour_Ok, 1 }, - { "wxColour_Blue", _wrap_wxColour_Blue, 1 }, - { "wxColour_Green", _wrap_wxColour_Green, 1 }, - { "wxColour_Red", _wrap_wxColour_Red, 1 }, - { "delete_wxColour", _wrap_delete_wxColour, 1 }, - { "new_wxColour", _wrap_new_wxColour, 1 }, - { "wxFont_SetWeight", _wrap_wxFont_SetWeight, 1 }, - { "wxFont_SetUnderlined", _wrap_wxFont_SetUnderlined, 1 }, - { "wxFont_SetStyle", _wrap_wxFont_SetStyle, 1 }, - { "wxFont_SetPointSize", _wrap_wxFont_SetPointSize, 1 }, - { "wxFont_SetFamily", _wrap_wxFont_SetFamily, 1 }, - { "wxFont_SetFaceName", _wrap_wxFont_SetFaceName, 1 }, - { "wxFont_GetWeight", _wrap_wxFont_GetWeight, 1 }, - { "wxFont_GetUnderlined", _wrap_wxFont_GetUnderlined, 1 }, - { "wxFont_GetStyle", _wrap_wxFont_GetStyle, 1 }, - { "wxFont_GetPointSize", _wrap_wxFont_GetPointSize, 1 }, - { "wxFont_GetFontId", _wrap_wxFont_GetFontId, 1 }, - { "wxFont_GetFamily", _wrap_wxFont_GetFamily, 1 }, - { "wxFont_GetFaceName", _wrap_wxFont_GetFaceName, 1 }, - { "new_wxFont", _wrap_new_wxFont, 1 }, - { "wxCursor_Ok", _wrap_wxCursor_Ok, 1 }, - { "delete_wxCursor", _wrap_delete_wxCursor, 1 }, - { "new_wxCursor", _wrap_new_wxCursor, 1 }, - { "wxIcon_SetWidth", _wrap_wxIcon_SetWidth, 1 }, - { "wxIcon_SetHeight", _wrap_wxIcon_SetHeight, 1 }, - { "wxIcon_SetDepth", _wrap_wxIcon_SetDepth, 1 }, - { "wxIcon_Ok", _wrap_wxIcon_Ok, 1 }, - { "wxIcon_LoadFile", _wrap_wxIcon_LoadFile, 1 }, - { "wxIcon_GetWidth", _wrap_wxIcon_GetWidth, 1 }, - { "wxIcon_GetHeight", _wrap_wxIcon_GetHeight, 1 }, - { "wxIcon_GetDepth", _wrap_wxIcon_GetDepth, 1 }, - { "delete_wxIcon", _wrap_delete_wxIcon, 1 }, - { "new_wxIcon", _wrap_new_wxIcon, 1 }, - { "delete_wxMask", _wrap_delete_wxMask, 1 }, - { "new_wxMask", _wrap_new_wxMask, 1 }, - { "wxBitmap_SetWidth", _wrap_wxBitmap_SetWidth, 1 }, - { "wxBitmap_SetPalette", _wrap_wxBitmap_SetPalette, 1 }, - { "wxBitmap_SetMask", _wrap_wxBitmap_SetMask, 1 }, - { "wxBitmap_SetHeight", _wrap_wxBitmap_SetHeight, 1 }, - { "wxBitmap_SetDepth", _wrap_wxBitmap_SetDepth, 1 }, - { "wxBitmap_SaveFile", _wrap_wxBitmap_SaveFile, 1 }, - { "wxBitmap_Ok", _wrap_wxBitmap_Ok, 1 }, - { "wxBitmap_LoadFile", _wrap_wxBitmap_LoadFile, 1 }, - { "wxBitmap_GetWidth", _wrap_wxBitmap_GetWidth, 1 }, - { "wxBitmap_GetMask", _wrap_wxBitmap_GetMask, 1 }, - { "wxBitmap_GetPalette", _wrap_wxBitmap_GetPalette, 1 }, - { "wxBitmap_GetHeight", _wrap_wxBitmap_GetHeight, 1 }, - { "wxBitmap_GetDepth", _wrap_wxBitmap_GetDepth, 1 }, - { "wxBitmap_Create", _wrap_wxBitmap_Create, 1 }, - { "delete_wxBitmap", _wrap_delete_wxBitmap, 1 }, - { "new_wxBitmap", _wrap_new_wxBitmap, 1 }, - { "wxMemoryDCFromDC", _wrap_wxMemoryDCFromDC, 1 }, - { "wxNamedColour", _wrap_wxNamedColour, 1 }, - { "wxStockCursor", _wrap_wxStockCursor, 1 }, - { "wxMaskColour", _wrap_wxMaskColour, 1 }, - { "wxNoRefBitmap", _wrap_wxNoRefBitmap, 1 }, - { "wxEmptyBitmap", _wrap_wxEmptyBitmap, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initgdic)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("gdic", gdicMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"cvar", SWIG_globals); - SWIG_addvarlink(SWIG_globals,"wxNORMAL_FONT",_wrap_wxNORMAL_FONT_get, _wrap_wxNORMAL_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxSMALL_FONT",_wrap_wxSMALL_FONT_get, _wrap_wxSMALL_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxITALIC_FONT",_wrap_wxITALIC_FONT_get, _wrap_wxITALIC_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxSWISS_FONT",_wrap_wxSWISS_FONT_get, _wrap_wxSWISS_FONT_set); - SWIG_addvarlink(SWIG_globals,"wxRED_PEN",_wrap_wxRED_PEN_get, _wrap_wxRED_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxCYAN_PEN",_wrap_wxCYAN_PEN_get, _wrap_wxCYAN_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxGREEN_PEN",_wrap_wxGREEN_PEN_get, _wrap_wxGREEN_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK_PEN",_wrap_wxBLACK_PEN_get, _wrap_wxBLACK_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxWHITE_PEN",_wrap_wxWHITE_PEN_get, _wrap_wxWHITE_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxTRANSPARENT_PEN",_wrap_wxTRANSPARENT_PEN_get, _wrap_wxTRANSPARENT_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK_DASHED_PEN",_wrap_wxBLACK_DASHED_PEN_get, _wrap_wxBLACK_DASHED_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxGREY_PEN",_wrap_wxGREY_PEN_get, _wrap_wxGREY_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxMEDIUM_GREY_PEN",_wrap_wxMEDIUM_GREY_PEN_get, _wrap_wxMEDIUM_GREY_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxLIGHT_GREY_PEN",_wrap_wxLIGHT_GREY_PEN_get, _wrap_wxLIGHT_GREY_PEN_set); - SWIG_addvarlink(SWIG_globals,"wxBLUE_BRUSH",_wrap_wxBLUE_BRUSH_get, _wrap_wxBLUE_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxGREEN_BRUSH",_wrap_wxGREEN_BRUSH_get, _wrap_wxGREEN_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxWHITE_BRUSH",_wrap_wxWHITE_BRUSH_get, _wrap_wxWHITE_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK_BRUSH",_wrap_wxBLACK_BRUSH_get, _wrap_wxBLACK_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxTRANSPARENT_BRUSH",_wrap_wxTRANSPARENT_BRUSH_get, _wrap_wxTRANSPARENT_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxCYAN_BRUSH",_wrap_wxCYAN_BRUSH_get, _wrap_wxCYAN_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxRED_BRUSH",_wrap_wxRED_BRUSH_get, _wrap_wxRED_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxGREY_BRUSH",_wrap_wxGREY_BRUSH_get, _wrap_wxGREY_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxMEDIUM_GREY_BRUSH",_wrap_wxMEDIUM_GREY_BRUSH_get, _wrap_wxMEDIUM_GREY_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxLIGHT_GREY_BRUSH",_wrap_wxLIGHT_GREY_BRUSH_get, _wrap_wxLIGHT_GREY_BRUSH_set); - SWIG_addvarlink(SWIG_globals,"wxBLACK",_wrap_wxBLACK_get, _wrap_wxBLACK_set); - SWIG_addvarlink(SWIG_globals,"wxWHITE",_wrap_wxWHITE_get, _wrap_wxWHITE_set); - SWIG_addvarlink(SWIG_globals,"wxRED",_wrap_wxRED_get, _wrap_wxRED_set); - SWIG_addvarlink(SWIG_globals,"wxBLUE",_wrap_wxBLUE_get, _wrap_wxBLUE_set); - SWIG_addvarlink(SWIG_globals,"wxGREEN",_wrap_wxGREEN_get, _wrap_wxGREEN_set); - SWIG_addvarlink(SWIG_globals,"wxCYAN",_wrap_wxCYAN_get, _wrap_wxCYAN_set); - SWIG_addvarlink(SWIG_globals,"wxLIGHT_GREY",_wrap_wxLIGHT_GREY_get, _wrap_wxLIGHT_GREY_set); - SWIG_addvarlink(SWIG_globals,"wxSTANDARD_CURSOR",_wrap_wxSTANDARD_CURSOR_get, _wrap_wxSTANDARD_CURSOR_set); - SWIG_addvarlink(SWIG_globals,"wxHOURGLASS_CURSOR",_wrap_wxHOURGLASS_CURSOR_get, _wrap_wxHOURGLASS_CURSOR_set); - SWIG_addvarlink(SWIG_globals,"wxCROSS_CURSOR",_wrap_wxCROSS_CURSOR_get, _wrap_wxCROSS_CURSOR_set); - SWIG_addvarlink(SWIG_globals,"wxNullBitmap",_wrap_wxNullBitmap_get, _wrap_wxNullBitmap_set); - SWIG_addvarlink(SWIG_globals,"wxNullIcon",_wrap_wxNullIcon_get, _wrap_wxNullIcon_set); - SWIG_addvarlink(SWIG_globals,"wxNullCursor",_wrap_wxNullCursor_get, _wrap_wxNullCursor_set); - SWIG_addvarlink(SWIG_globals,"wxNullPen",_wrap_wxNullPen_get, _wrap_wxNullPen_set); - SWIG_addvarlink(SWIG_globals,"wxNullBrush",_wrap_wxNullBrush_get, _wrap_wxNullBrush_set); - SWIG_addvarlink(SWIG_globals,"wxNullPalette",_wrap_wxNullPalette_get, _wrap_wxNullPalette_set); - SWIG_addvarlink(SWIG_globals,"wxNullFont",_wrap_wxNullFont_get, _wrap_wxNullFont_set); - SWIG_addvarlink(SWIG_globals,"wxNullColour",_wrap_wxNullColour_get, _wrap_wxNullColour_set); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_NORMAL", PyInt_FromLong((long) wxIMAGELIST_DRAW_NORMAL)); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_TRANSPARENT", PyInt_FromLong((long) wxIMAGELIST_DRAW_TRANSPARENT)); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_SELECTED", PyInt_FromLong((long) wxIMAGELIST_DRAW_SELECTED)); - PyDict_SetItemString(d,"wxIMAGELIST_DRAW_FOCUSED", PyInt_FromLong((long) wxIMAGELIST_DRAW_FOCUSED)); - PyDict_SetItemString(d,"wxIMAGE_LIST_NORMAL", PyInt_FromLong((long) wxIMAGE_LIST_NORMAL)); - PyDict_SetItemString(d,"wxIMAGE_LIST_SMALL", PyInt_FromLong((long) wxIMAGE_LIST_SMALL)); - PyDict_SetItemString(d,"wxIMAGE_LIST_STATE", PyInt_FromLong((long) wxIMAGE_LIST_STATE)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxMetaFileDC",SwigwxMetaFileDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxMetaFileDC",SwigwxMetaFileDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxPrinterDC",SwigwxPrinterDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxPrinterDC",SwigwxPrinterDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_class_wxMetaFileDC",SwigwxMetaFileDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxMetaFileDC",SwigwxMetaFileDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxPrinterDC",SwigwxPrinterDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxPrinterDC",SwigwxPrinterDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxWindowDC",SwigwxWindowDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxPaintDC",SwigwxPaintDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxClientDC",SwigwxClientDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxScreenDC",SwigwxScreenDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_class_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxMemoryDC",SwigwxMemoryDCTowxDC); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_class_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_wxCursor",SwigwxCursorTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_class_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_wxIcon",SwigwxIconTowxBitmap); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); -} diff --git a/utils/wxPython/src/msw/gdi.py b/utils/wxPython/src/msw/gdi.py deleted file mode 100644 index ca04475c3e..0000000000 --- a/utils/wxPython/src/msw/gdi.py +++ /dev/null @@ -1,862 +0,0 @@ -# This file was created automatically by SWIG. -import gdic - -from misc import * -class wxBitmapPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxBitmap(self.this) - def Create(self,arg0,arg1,*args): - val = apply(gdic.wxBitmap_Create,(self.this,arg0,arg1,)+args) - return val - def GetDepth(self): - val = gdic.wxBitmap_GetDepth(self.this) - return val - def GetHeight(self): - val = gdic.wxBitmap_GetHeight(self.this) - return val - def GetPalette(self): - val = gdic.wxBitmap_GetPalette(self.this) - val = wxPalettePtr(val) - return val - def GetMask(self): - val = gdic.wxBitmap_GetMask(self.this) - val = wxMaskPtr(val) - return val - def GetWidth(self): - val = gdic.wxBitmap_GetWidth(self.this) - return val - def LoadFile(self,arg0,arg1): - val = gdic.wxBitmap_LoadFile(self.this,arg0,arg1) - return val - def Ok(self): - val = gdic.wxBitmap_Ok(self.this) - return val - def SaveFile(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxBitmap_SaveFile,(self.this,arg0,arg1,)+args) - return val - def SetDepth(self,arg0): - val = gdic.wxBitmap_SetDepth(self.this,arg0) - return val - def SetHeight(self,arg0): - val = gdic.wxBitmap_SetHeight(self.this,arg0) - return val - def SetMask(self,arg0): - val = gdic.wxBitmap_SetMask(self.this,arg0.this) - return val - def SetPalette(self,arg0): - val = gdic.wxBitmap_SetPalette(self.this,arg0.this) - return val - def SetWidth(self,arg0): - val = gdic.wxBitmap_SetWidth(self.this,arg0) - return val - def __repr__(self): - return "" -class wxBitmap(wxBitmapPtr): - def __init__(self,arg0,arg1) : - self.this = gdic.new_wxBitmap(arg0,arg1) - self.thisown = 1 - - - - -class wxMaskPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxMask(self.this) - def __repr__(self): - return "" -class wxMask(wxMaskPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxMask(arg0.this) - self.thisown = 1 - - - - -class wxIconPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxIcon(self.this) - def GetDepth(self): - val = gdic.wxIcon_GetDepth(self.this) - return val - def GetHeight(self): - val = gdic.wxIcon_GetHeight(self.this) - return val - def GetWidth(self): - val = gdic.wxIcon_GetWidth(self.this) - return val - def LoadFile(self,arg0,arg1): - val = gdic.wxIcon_LoadFile(self.this,arg0,arg1) - return val - def Ok(self): - val = gdic.wxIcon_Ok(self.this) - return val - def SetDepth(self,arg0): - val = gdic.wxIcon_SetDepth(self.this,arg0) - return val - def SetHeight(self,arg0): - val = gdic.wxIcon_SetHeight(self.this,arg0) - return val - def SetWidth(self,arg0): - val = gdic.wxIcon_SetWidth(self.this,arg0) - return val - def __repr__(self): - return "" -class wxIcon(wxIconPtr): - def __init__(self,arg0,arg1,*args) : - self.this = apply(gdic.new_wxIcon,(arg0,arg1,)+args) - self.thisown = 1 - - - - -class wxCursorPtr(wxBitmapPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxCursor(self.this) - def Ok(self): - val = gdic.wxCursor_Ok(self.this) - return val - def __repr__(self): - return "" -class wxCursor(wxCursorPtr): - def __init__(self,arg0,arg1,*args) : - self.this = apply(gdic.new_wxCursor,(arg0,arg1,)+args) - self.thisown = 1 - - - - -class wxFontPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFaceName(self): - val = gdic.wxFont_GetFaceName(self.this) - return val - def GetFamily(self): - val = gdic.wxFont_GetFamily(self.this) - return val - def GetFontId(self): - val = gdic.wxFont_GetFontId(self.this) - return val - def GetPointSize(self): - val = gdic.wxFont_GetPointSize(self.this) - return val - def GetStyle(self): - val = gdic.wxFont_GetStyle(self.this) - return val - def GetUnderlined(self): - val = gdic.wxFont_GetUnderlined(self.this) - return val - def GetWeight(self): - val = gdic.wxFont_GetWeight(self.this) - return val - def SetFaceName(self,arg0): - val = gdic.wxFont_SetFaceName(self.this,arg0) - return val - def SetFamily(self,arg0): - val = gdic.wxFont_SetFamily(self.this,arg0) - return val - def SetPointSize(self,arg0): - val = gdic.wxFont_SetPointSize(self.this,arg0) - return val - def SetStyle(self,arg0): - val = gdic.wxFont_SetStyle(self.this,arg0) - return val - def SetUnderlined(self,arg0): - val = gdic.wxFont_SetUnderlined(self.this,arg0) - return val - def SetWeight(self,arg0): - val = gdic.wxFont_SetWeight(self.this,arg0) - return val - def __repr__(self): - return "" -class wxFont(wxFontPtr): - def __init__(self,arg0,arg1,arg2,arg3,*args) : - self.this = apply(gdic.new_wxFont,(arg0,arg1,arg2,arg3,)+args) - self.thisown = 1 - - - - -class wxColourPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxColour(self.this) - def Red(self): - val = gdic.wxColour_Red(self.this) - return val - def Green(self): - val = gdic.wxColour_Green(self.this) - return val - def Blue(self): - val = gdic.wxColour_Blue(self.this) - return val - def Ok(self): - val = gdic.wxColour_Ok(self.this) - return val - def Set(self,arg0,arg1,arg2): - val = gdic.wxColour_Set(self.this,arg0,arg1,arg2) - return val - def Get(self): - val = gdic.wxColour_Get(self.this) - return val - def __repr__(self): - return "" -class wxColour(wxColourPtr): - def __init__(self,*args) : - self.this = apply(gdic.new_wxColour,()+args) - self.thisown = 1 - - - - -class wxPenPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetCap(self): - val = gdic.wxPen_GetCap(self.this) - return val - def GetColour(self): - val = gdic.wxPen_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetJoin(self): - val = gdic.wxPen_GetJoin(self.this) - return val - def GetStyle(self): - val = gdic.wxPen_GetStyle(self.this) - return val - def GetWidth(self): - val = gdic.wxPen_GetWidth(self.this) - return val - def Ok(self): - val = gdic.wxPen_Ok(self.this) - return val - def SetCap(self,arg0): - val = gdic.wxPen_SetCap(self.this,arg0) - return val - def SetColour(self,arg0): - val = gdic.wxPen_SetColour(self.this,arg0.this) - return val - def SetJoin(self,arg0): - val = gdic.wxPen_SetJoin(self.this,arg0) - return val - def SetStyle(self,arg0): - val = gdic.wxPen_SetStyle(self.this,arg0) - return val - def SetWidth(self,arg0): - val = gdic.wxPen_SetWidth(self.this,arg0) - return val - def GetDashes(self,arg0): - val = gdic.wxPen_GetDashes(self.this,arg0) - return val - def GetStipple(self): - val = gdic.wxPen_GetStipple(self.this) - val = wxBitmapPtr(val) - return val - def SetDashes(self,arg0,*args): - val = apply(gdic.wxPen_SetDashes,(self.this,arg0,)+args) - return val - def SetStipple(self,arg0): - val = gdic.wxPen_SetStipple(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxPen(wxPenPtr): - def __init__(self,arg0,*args) : - self.this = apply(gdic.new_wxPen,(arg0.this,)+args) - self.thisown = 1 - - - - -class wxBrushPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetColour(self): - val = gdic.wxBrush_GetColour(self.this) - val = wxColourPtr(val) - return val - def GetStipple(self): - val = gdic.wxBrush_GetStipple(self.this) - val = wxBitmapPtr(val) - return val - def GetStyle(self): - val = gdic.wxBrush_GetStyle(self.this) - return val - def Ok(self): - val = gdic.wxBrush_Ok(self.this) - return val - def SetColour(self,arg0): - val = gdic.wxBrush_SetColour(self.this,arg0.this) - return val - def SetStipple(self,arg0): - val = gdic.wxBrush_SetStipple(self.this,arg0.this) - return val - def SetStyle(self,arg0): - val = gdic.wxBrush_SetStyle(self.this,arg0) - return val - def __repr__(self): - return "" -class wxBrush(wxBrushPtr): - def __init__(self,arg0,*args) : - self.this = apply(gdic.new_wxBrush,(arg0.this,)+args) - self.thisown = 1 - - - - -class wxDCPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxDC(self.this) - def BeginDrawing(self): - val = gdic.wxDC_BeginDrawing(self.this) - return val - def Blit(self,arg0,arg1,arg2,arg3,arg4,arg5,arg6,arg7): - val = gdic.wxDC_Blit(self.this,arg0,arg1,arg2,arg3,arg4.this,arg5,arg6,arg7) - return val - def Clear(self): - val = gdic.wxDC_Clear(self.this) - return val - def CrossHair(self,arg0,arg1): - val = gdic.wxDC_CrossHair(self.this,arg0,arg1) - return val - def DestroyClippingRegion(self): - val = gdic.wxDC_DestroyClippingRegion(self.this) - return val - def DeviceToLogicalX(self,arg0): - val = gdic.wxDC_DeviceToLogicalX(self.this,arg0) - return val - def DeviceToLogicalXRel(self,arg0): - val = gdic.wxDC_DeviceToLogicalXRel(self.this,arg0) - return val - def DeviceToLogicalY(self,arg0): - val = gdic.wxDC_DeviceToLogicalY(self.this,arg0) - return val - def DeviceToLogicalYRel(self,arg0): - val = gdic.wxDC_DeviceToLogicalYRel(self.this,arg0) - return val - def DrawArc(self,arg0,arg1,arg2,arg3,arg4,arg5): - val = gdic.wxDC_DrawArc(self.this,arg0,arg1,arg2,arg3,arg4,arg5) - return val - def DrawEllipse(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_DrawEllipse(self.this,arg0,arg1,arg2,arg3) - return val - def DrawEllipticArc(self,arg0,arg1,arg2,arg3,arg4,arg5): - val = gdic.wxDC_DrawEllipticArc(self.this,arg0,arg1,arg2,arg3,arg4,arg5) - return val - def DrawIcon(self,arg0,arg1,arg2): - val = gdic.wxDC_DrawIcon(self.this,arg0.this,arg1,arg2) - return val - def DrawLine(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_DrawLine(self.this,arg0,arg1,arg2,arg3) - return val - def DrawLines(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_DrawLines,(self.this,arg0,)+args) - return val - def DrawPolygon(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_DrawPolygon,(self.this,arg0,)+args) - return val - def DrawPoint(self,arg0,arg1): - val = gdic.wxDC_DrawPoint(self.this,arg0,arg1) - return val - def DrawRectangle(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_DrawRectangle(self.this,arg0,arg1,arg2,arg3) - return val - def DrawRoundedRectangle(self,arg0,arg1,arg2,arg3,*args): - val = apply(gdic.wxDC_DrawRoundedRectangle,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def DrawSpline(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_DrawSpline,(self.this,arg0,)+args) - return val - def DrawText(self,arg0,arg1,arg2): - val = gdic.wxDC_DrawText(self.this,arg0,arg1,arg2) - return val - def EndDoc(self): - val = gdic.wxDC_EndDoc(self.this) - return val - def EndDrawing(self): - val = gdic.wxDC_EndDrawing(self.this) - return val - def EndPage(self): - val = gdic.wxDC_EndPage(self.this) - return val - def FloodFill(self,arg0,arg1,arg2,*args): - val = apply(gdic.wxDC_FloodFill,(self.this,arg0,arg1,arg2.this,)+args) - return val - def GetBackground(self): - val = gdic.wxDC_GetBackground(self.this) - val = wxBrushPtr(val) - return val - def GetBrush(self): - val = gdic.wxDC_GetBrush(self.this) - val = wxBrushPtr(val) - return val - def GetCharHeight(self): - val = gdic.wxDC_GetCharHeight(self.this) - return val - def GetCharWidth(self): - val = gdic.wxDC_GetCharWidth(self.this) - return val - def GetClippingBox(self): - val = gdic.wxDC_GetClippingBox(self.this) - return val - def GetFont(self): - val = gdic.wxDC_GetFont(self.this) - val = wxFontPtr(val) - return val - def GetLogicalFunction(self): - val = gdic.wxDC_GetLogicalFunction(self.this) - return val - def GetMapMode(self): - val = gdic.wxDC_GetMapMode(self.this) - return val - def GetOptimization(self): - val = gdic.wxDC_GetOptimization(self.this) - return val - def GetPen(self): - val = gdic.wxDC_GetPen(self.this) - val = wxPenPtr(val) - return val - def GetPixel(self,arg0,arg1): - val = gdic.wxDC_GetPixel(self.this,arg0,arg1) - val = wxColourPtr(val) - val.thisown = 1 - return val - def GetSize(self): - val = gdic.wxDC_GetSize(self.this) - return val - def GetTextBackground(self): - val = gdic.wxDC_GetTextBackground(self.this) - val = wxColourPtr(val) - return val - def GetTextExtent(self,arg0): - val = gdic.wxDC_GetTextExtent(self.this,arg0) - return val - def GetFullTextExtent(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxDC_GetFullTextExtent,(self.this,arg0,)+args) - return val - def GetTextForeground(self): - val = gdic.wxDC_GetTextForeground(self.this) - val = wxColourPtr(val) - return val - def LogicalToDeviceX(self,arg0): - val = gdic.wxDC_LogicalToDeviceX(self.this,arg0) - return val - def LogicalToDeviceXRel(self,arg0): - val = gdic.wxDC_LogicalToDeviceXRel(self.this,arg0) - return val - def LogicalToDeviceY(self,arg0): - val = gdic.wxDC_LogicalToDeviceY(self.this,arg0) - return val - def LogicalToDeviceYRel(self,arg0): - val = gdic.wxDC_LogicalToDeviceYRel(self.this,arg0) - return val - def MaxX(self): - val = gdic.wxDC_MaxX(self.this) - return val - def MaxY(self): - val = gdic.wxDC_MaxY(self.this) - return val - def MinX(self): - val = gdic.wxDC_MinX(self.this) - return val - def MinY(self): - val = gdic.wxDC_MinY(self.this) - return val - def Ok(self): - val = gdic.wxDC_Ok(self.this) - return val - def SetDeviceOrigin(self,arg0,arg1): - val = gdic.wxDC_SetDeviceOrigin(self.this,arg0,arg1) - return val - def SetBackground(self,arg0): - val = gdic.wxDC_SetBackground(self.this,arg0.this) - return val - def SetBackgroundMode(self,arg0): - val = gdic.wxDC_SetBackgroundMode(self.this,arg0) - return val - def SetClippingRegion(self,arg0,arg1,arg2,arg3): - val = gdic.wxDC_SetClippingRegion(self.this,arg0,arg1,arg2,arg3) - return val - def SetPalette(self,arg0): - val = gdic.wxDC_SetPalette(self.this,arg0.this) - return val - def SetBrush(self,arg0): - val = gdic.wxDC_SetBrush(self.this,arg0.this) - return val - def SetFont(self,arg0): - val = gdic.wxDC_SetFont(self.this,arg0.this) - return val - def SetLogicalFunction(self,arg0): - val = gdic.wxDC_SetLogicalFunction(self.this,arg0) - return val - def SetMapMode(self,arg0): - val = gdic.wxDC_SetMapMode(self.this,arg0) - return val - def SetOptimization(self,arg0): - val = gdic.wxDC_SetOptimization(self.this,arg0) - return val - def SetPen(self,arg0): - val = gdic.wxDC_SetPen(self.this,arg0.this) - return val - def SetTextBackground(self,arg0): - val = gdic.wxDC_SetTextBackground(self.this,arg0.this) - return val - def SetTextForeground(self,arg0): - val = gdic.wxDC_SetTextForeground(self.this,arg0.this) - return val - def SetUserScale(self,arg0,arg1): - val = gdic.wxDC_SetUserScale(self.this,arg0,arg1) - return val - def StartDoc(self,arg0): - val = gdic.wxDC_StartDoc(self.this,arg0) - return val - def StartPage(self): - val = gdic.wxDC_StartPage(self.this) - return val - def DrawBitmap(self,arg0,arg1,arg2,*args): - val = apply(gdic.wxDC_DrawBitmap,(self.this,arg0.this,arg1,arg2,)+args) - return val - def __repr__(self): - return "" -class wxDC(wxDCPtr): - def __init__(self,this): - self.this = this - - - - -class wxMemoryDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SelectObject(self,arg0): - val = gdic.wxMemoryDC_SelectObject(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxMemoryDC(wxMemoryDCPtr): - def __init__(self) : - self.this = gdic.new_wxMemoryDC() - self.thisown = 1 - - - - -class wxScreenDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def StartDrawingOnTop(self,arg0): - val = gdic.wxScreenDC_StartDrawingOnTop(self.this,arg0.this) - return val - def StartDrawingOnTopRect(self,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxScreenDC_StartDrawingOnTopRect,(self.this,)+args) - return val - def EndDrawingOnTop(self): - val = gdic.wxScreenDC_EndDrawingOnTop(self.this) - return val - def __repr__(self): - return "" -class wxScreenDC(wxScreenDCPtr): - def __init__(self) : - self.this = gdic.new_wxScreenDC() - self.thisown = 1 - - - - -class wxClientDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxClientDC(wxClientDCPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxClientDC(arg0.this) - self.thisown = 1 - - - - -class wxPaintDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPaintDC(wxPaintDCPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxPaintDC(arg0.this) - self.thisown = 1 - - - - -class wxWindowDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxWindowDC(wxWindowDCPtr): - def __init__(self,arg0) : - self.this = gdic.new_wxWindowDC(arg0.this) - self.thisown = 1 - - - - -class wxPrinterDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPrinterDC(wxPrinterDCPtr): - def __init__(self,arg0,arg1,arg2,*args) : - self.this = apply(gdic.new_wxPrinterDC,(arg0,arg1,arg2,)+args) - self.thisown = 1 - - - - -class wxMetaFileDCPtr(wxDCPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Close(self): - val = gdic.wxMetaFileDC_Close(self.this) - return val - def __repr__(self): - return "" -class wxMetaFileDC(wxMetaFileDCPtr): - def __init__(self,*args) : - self.this = apply(gdic.new_wxMetaFileDC,()+args) - self.thisown = 1 - - - - -class wxPalettePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxPalette(self.this) - def GetPixel(self,arg0,arg1,arg2): - val = gdic.wxPalette_GetPixel(self.this,arg0,arg1,arg2) - return val - def GetRGB(self,arg0,arg1,arg2,arg3): - val = gdic.wxPalette_GetRGB(self.this,arg0,arg1,arg2,arg3) - return val - def Ok(self): - val = gdic.wxPalette_Ok(self.this) - return val - def __repr__(self): - return "" -class wxPalette(wxPalettePtr): - def __init__(self,arg0,arg1,arg2) : - self.this = gdic.new_wxPalette(arg0,arg1,arg2) - self.thisown = 1 - - - - -class wxImageListPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - gdic.delete_wxImageList(self.this) - def Add(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxImageList_Add,(self.this,arg0.this,)+args) - return val - def AddWithColourMask(self,arg0,arg1): - val = gdic.wxImageList_AddWithColourMask(self.this,arg0.this,arg1.this) - return val - def AddIcon(self,arg0): - val = gdic.wxImageList_AddIcon(self.this,arg0.this) - return val - def Replace(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(gdic.wxImageList_Replace,(self.this,arg0,arg1.this,)+args) - return val - def ReplaceIcon(self,arg0,arg1): - val = gdic.wxImageList_ReplaceIcon(self.this,arg0,arg1.this) - return val - def Draw(self,arg0,arg1,arg2,arg3,*args): - val = apply(gdic.wxImageList_Draw,(self.this,arg0,arg1.this,arg2,arg3,)+args) - return val - def GetImageCount(self): - val = gdic.wxImageList_GetImageCount(self.this) - return val - def Remove(self,arg0): - val = gdic.wxImageList_Remove(self.this,arg0) - return val - def RemoveAll(self): - val = gdic.wxImageList_RemoveAll(self.this) - return val - def __repr__(self): - return "" -class wxImageList(wxImageListPtr): - def __init__(self,arg0,arg1,*args) : - self.this = apply(gdic.new_wxImageList,(arg0,arg1,)+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxEmptyBitmap(arg0,arg1,*args): - val = apply(gdic.wxEmptyBitmap,(arg0,arg1,)+args) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - -def wxNoRefBitmap(arg0,arg1): - val = gdic.wxNoRefBitmap(arg0,arg1) - val = wxBitmapPtr(val) - return val - -def wxMaskColour(arg0,arg1): - val = gdic.wxMaskColour(arg0.this,arg1.this) - val = wxMaskPtr(val) - val.thisown = 1 - return val - -def wxStockCursor(arg0): - val = gdic.wxStockCursor(arg0) - val = wxCursorPtr(val) - val.thisown = 1 - return val - -def wxNamedColour(arg0): - val = gdic.wxNamedColour(arg0) - val = wxColourPtr(val) - val.thisown = 1 - return val - -def wxMemoryDCFromDC(arg0): - val = gdic.wxMemoryDCFromDC(arg0.this) - val = wxMemoryDCPtr(val) - val.thisown = 1 - return val - - - -#-------------- VARIABLE WRAPPERS ------------------ - -cvar = gdic.cvar -wxNORMAL_FONT = wxFontPtr(gdic.cvar.wxNORMAL_FONT) -wxSMALL_FONT = wxFontPtr(gdic.cvar.wxSMALL_FONT) -wxITALIC_FONT = wxFontPtr(gdic.cvar.wxITALIC_FONT) -wxSWISS_FONT = wxFontPtr(gdic.cvar.wxSWISS_FONT) -wxRED_PEN = wxPenPtr(gdic.cvar.wxRED_PEN) -wxCYAN_PEN = wxPenPtr(gdic.cvar.wxCYAN_PEN) -wxGREEN_PEN = wxPenPtr(gdic.cvar.wxGREEN_PEN) -wxBLACK_PEN = wxPenPtr(gdic.cvar.wxBLACK_PEN) -wxWHITE_PEN = wxPenPtr(gdic.cvar.wxWHITE_PEN) -wxTRANSPARENT_PEN = wxPenPtr(gdic.cvar.wxTRANSPARENT_PEN) -wxBLACK_DASHED_PEN = wxPenPtr(gdic.cvar.wxBLACK_DASHED_PEN) -wxGREY_PEN = wxPenPtr(gdic.cvar.wxGREY_PEN) -wxMEDIUM_GREY_PEN = wxPenPtr(gdic.cvar.wxMEDIUM_GREY_PEN) -wxLIGHT_GREY_PEN = wxPenPtr(gdic.cvar.wxLIGHT_GREY_PEN) -wxBLUE_BRUSH = wxBrushPtr(gdic.cvar.wxBLUE_BRUSH) -wxGREEN_BRUSH = wxBrushPtr(gdic.cvar.wxGREEN_BRUSH) -wxWHITE_BRUSH = wxBrushPtr(gdic.cvar.wxWHITE_BRUSH) -wxBLACK_BRUSH = wxBrushPtr(gdic.cvar.wxBLACK_BRUSH) -wxTRANSPARENT_BRUSH = wxBrushPtr(gdic.cvar.wxTRANSPARENT_BRUSH) -wxCYAN_BRUSH = wxBrushPtr(gdic.cvar.wxCYAN_BRUSH) -wxRED_BRUSH = wxBrushPtr(gdic.cvar.wxRED_BRUSH) -wxGREY_BRUSH = wxBrushPtr(gdic.cvar.wxGREY_BRUSH) -wxMEDIUM_GREY_BRUSH = wxBrushPtr(gdic.cvar.wxMEDIUM_GREY_BRUSH) -wxLIGHT_GREY_BRUSH = wxBrushPtr(gdic.cvar.wxLIGHT_GREY_BRUSH) -wxBLACK = wxColourPtr(gdic.cvar.wxBLACK) -wxWHITE = wxColourPtr(gdic.cvar.wxWHITE) -wxRED = wxColourPtr(gdic.cvar.wxRED) -wxBLUE = wxColourPtr(gdic.cvar.wxBLUE) -wxGREEN = wxColourPtr(gdic.cvar.wxGREEN) -wxCYAN = wxColourPtr(gdic.cvar.wxCYAN) -wxLIGHT_GREY = wxColourPtr(gdic.cvar.wxLIGHT_GREY) -wxSTANDARD_CURSOR = wxCursorPtr(gdic.cvar.wxSTANDARD_CURSOR) -wxHOURGLASS_CURSOR = wxCursorPtr(gdic.cvar.wxHOURGLASS_CURSOR) -wxCROSS_CURSOR = wxCursorPtr(gdic.cvar.wxCROSS_CURSOR) -wxNullBitmap = wxBitmapPtr(gdic.cvar.wxNullBitmap) -wxNullIcon = wxIconPtr(gdic.cvar.wxNullIcon) -wxNullCursor = wxCursorPtr(gdic.cvar.wxNullCursor) -wxNullPen = wxPenPtr(gdic.cvar.wxNullPen) -wxNullBrush = wxBrushPtr(gdic.cvar.wxNullBrush) -wxNullPalette = wxPalettePtr(gdic.cvar.wxNullPalette) -wxNullFont = wxFontPtr(gdic.cvar.wxNullFont) -wxNullColour = wxColourPtr(gdic.cvar.wxNullColour) -wxIMAGELIST_DRAW_NORMAL = gdic.wxIMAGELIST_DRAW_NORMAL -wxIMAGELIST_DRAW_TRANSPARENT = gdic.wxIMAGELIST_DRAW_TRANSPARENT -wxIMAGELIST_DRAW_SELECTED = gdic.wxIMAGELIST_DRAW_SELECTED -wxIMAGELIST_DRAW_FOCUSED = gdic.wxIMAGELIST_DRAW_FOCUSED -wxIMAGE_LIST_NORMAL = gdic.wxIMAGE_LIST_NORMAL -wxIMAGE_LIST_SMALL = gdic.wxIMAGE_LIST_SMALL -wxIMAGE_LIST_STATE = gdic.wxIMAGE_LIST_STATE diff --git a/utils/wxPython/src/msw/glcanvas.cpp b/utils/wxPython/src/msw/glcanvas.cpp deleted file mode 100644 index 51f05beca5..0000000000 --- a/utils/wxPython/src/msw/glcanvas.cpp +++ /dev/null @@ -1,9793 +0,0 @@ -/* - * FILE : msw/glcanvas.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initglcanvasc - -#define SWIG_name "glcanvasc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -#ifdef SEPARATE - static wxString wxPyEmptyStr(""); - static wxPoint wxPyDefaultPosition(-1, -1); - static wxSize wxPyDefaultSize(-1, -1); -#endif -static PyObject *_wrap_glArrayElementEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glArrayElementEXT",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glArrayElementEXT(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glColorPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glColorPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorPointerEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawArraysEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLsizei _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glDrawArraysEXT",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawArraysEXT(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlagPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLsizei _arg1; - GLboolean * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glEdgeFlagPointerEXT",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glEdgeFlagPointerEXT. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlagPointerEXT(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPointervEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLvoid ** _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPointervEXT",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPointervEXT. Expected _GLvoid_pp."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPointervEXT(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glIndexPointerEXT",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glIndexPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexPointerEXT(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormalPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glNormalPointerEXT",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glNormalPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormalPointerEXT(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoordPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glTexCoordPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glTexCoordPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoordPointerEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertexPointerEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glVertexPointerEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glVertexPointerEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertexPointerEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorSubtableEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLsizei _arg2; - GLenum _arg3; - GLenum _arg4; - GLvoid * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiis:glColorSubtableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glColorSubtableEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorSubtableEXT(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorTableEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLsizei _arg2; - GLenum _arg3; - GLenum _arg4; - GLvoid * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiis:glColorTableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glColorTableEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorTableEXT(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyColorTableEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - GLint _arg3; - GLsizei _arg4; - - self = self; - if(!PyArg_ParseTuple(args,"iiiii:glCopyColorTableEXT",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyColorTableEXT(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetColorTableEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLenum _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glGetColorTableEXT",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glGetColorTableEXT. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetColorTableEXT(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetColorTableParamaterfvEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetColorTableParamaterfvEXT",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetColorTableParamaterfvEXT. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetColorTableParamaterfvEXT(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetColorTavleParameterivEXT(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetColorTavleParameterivEXT",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetColorTavleParameterivEXT. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetColorTavleParameterivEXT(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLockArraysSGI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLsizei _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glLockArraysSGI",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLockArraysSGI(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glUnlockArraysSGI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glUnlockArraysSGI")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glUnlockArraysSGI(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCullParameterdvSGI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glCullParameterdvSGI",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glCullParameterdvSGI. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glCullParameterdvSGI(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCullParameterfvSGI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glCullParameterfvSGI",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glCullParameterfvSGI. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glCullParameterfvSGI(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexFuncSGI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLclampf _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glIndexFuncSGI",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexFuncSGI(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexMaterialSGI(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glIndexMaterialSGI",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexMaterialSGI(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAddSwapHintRectWin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glAddSwapHintRectWin",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glAddSwapHintRectWin(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAccum(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glAccum",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glAccum(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAlphaFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLclampf _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glAlphaFunc",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glAlphaFunc(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glAreTexturesResident(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLsizei _arg0; - GLuint * _arg1; - GLboolean * _arg2; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iss:glAreTexturesResident",&_arg0,&_argc1,&_argc2)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glAreTexturesResident. Expected _GLuint_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glAreTexturesResident. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glAreTexturesResident(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glArrayElement(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glArrayElement",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glArrayElement(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBegin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glBegin",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glBegin(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBindTexture(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLuint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glBindTexture",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glBindTexture(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLsizei _arg1; - GLfloat _arg2; - GLfloat _arg3; - GLfloat _arg4; - GLfloat _arg5; - GLubyte * _arg6; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiffffs:glBitmap",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of glBitmap. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glBitmap(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glBlendFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glBlendFunc",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glBlendFunc(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCallList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glCallList",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCallList(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCallLists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLenum _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glCallLists",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glCallLists. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glCallLists(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbitfield _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glClear",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearAccum(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glClearAccum",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearAccum(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearColor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLclampf _arg0; - GLclampf _arg1; - GLclampf _arg2; - GLclampf _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glClearColor",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearColor(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLclampd _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glClearDepth",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearDepth(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glClearIndex",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearIndex(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClearStencil(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glClearStencil",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glClearStencil(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glClipPlane(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glClipPlane",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glClipPlane. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glClipPlane(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3b(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte _arg0; - GLbyte _arg1; - GLbyte _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"bbb:glColor3b",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3b(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3bv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3bv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLbyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3bv. Expected _GLbyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3bv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glColor3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glColor3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glColor3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glColor3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3ub(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte _arg0; - GLubyte _arg1; - GLubyte _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"bbb:glColor3ub",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3ub(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3ubv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3ubv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3ubv. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3ubv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3ui(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLuint _arg1; - GLuint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glColor3ui",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3ui(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3uiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3uiv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3uiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3uiv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3us(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort _arg0; - GLushort _arg1; - GLushort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glColor3us",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3us(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor3usv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor3usv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor3usv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor3usv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4b(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte _arg0; - GLbyte _arg1; - GLbyte _arg2; - GLbyte _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"bbbb:glColor4b",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4b(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4bv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4bv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLbyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4bv. Expected _GLbyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4bv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glColor4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glColor4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glColor4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glColor4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4ub(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte _arg0; - GLubyte _arg1; - GLubyte _arg2; - GLubyte _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"bbbb:glColor4ub",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4ub(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4ubv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4ubv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4ubv. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4ubv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4ui(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLuint _arg1; - GLuint _arg2; - GLuint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glColor4ui",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4ui(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4uiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4uiv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4uiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4uiv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4us(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort _arg0; - GLushort _arg1; - GLushort _arg2; - GLushort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glColor4us",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4us(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColor4usv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLushort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glColor4usv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glColor4usv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColor4usv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _arg0; - GLboolean _arg1; - GLboolean _arg2; - GLboolean _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"bbbb:glColorMask",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorMask(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorMaterial(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glColorMaterial",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorMaterial(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glColorPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glColorPointer",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glColorPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glColorPointer(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLenum _arg4; - - self = self; - if(!PyArg_ParseTuple(args,"iiiii:glCopyPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyPixels(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLint _arg3; - GLint _arg4; - GLsizei _arg5; - GLint _arg6; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiii:glCopyTexImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLint _arg3; - GLint _arg4; - GLsizei _arg5; - GLsizei _arg6; - GLint _arg7; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiii:glCopyTexImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexSubImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLint _arg4; - GLsizei _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiii:glCopyTexSubImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexSubImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCopyTexSubImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLint _arg4; - GLint _arg5; - GLsizei _arg6; - GLsizei _arg7; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiii:glCopyTexSubImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCopyTexSubImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glCullFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glCullFace",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glCullFace(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDeleteLists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLsizei _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glDeleteLists",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDeleteLists(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDeleteTextures(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glDeleteTextures",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glDeleteTextures. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glDeleteTextures(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDepthFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDepthFunc",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDepthFunc(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDepthMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"b:glDepthMask",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDepthMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDepthRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLclampd _arg0; - GLclampd _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glDepthRange",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDepthRange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDisable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDisable",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDisable(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDisableClientState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDisableClientState",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDisableClientState(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawArrays(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLsizei _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glDrawArrays",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawArrays(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glDrawBuffer",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawBuffer(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawElements(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLenum _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glDrawElements",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glDrawElements. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawElements(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glDrawPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLsizei _arg1; - GLenum _arg2; - GLenum _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glDrawPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glDrawPixels. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glDrawPixels(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"b:glEdgeFlag",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlag(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlagPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLvoid * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glEdgeFlagPointer",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glEdgeFlagPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlagPointer(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEdgeFlagv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEdgeFlagv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEdgeFlagv. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEdgeFlagv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEnable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glEnable",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEnable(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEnableClientState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glEnableClientState",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEnableClientState(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEnd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glEnd")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEnd(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEndList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glEndList")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEndList(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glEvalCoord1d",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1d(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord1dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord1dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glEvalCoord1f",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1f(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord1fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord1fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord1fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord1fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glEvalCoord2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glEvalCoord2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalCoord2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glEvalCoord2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glEvalCoord2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalCoord2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalMesh1(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glEvalMesh1",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalMesh1(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalMesh2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLint _arg4; - - self = self; - if(!PyArg_ParseTuple(args,"iiiii:glEvalMesh2",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalMesh2(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalPoint1(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glEvalPoint1",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalPoint1(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glEvalPoint2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glEvalPoint2",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glEvalPoint2(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFeedbackBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glFeedbackBuffer",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glFeedbackBuffer. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glFeedbackBuffer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFinish(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glFinish")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFinish(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFlush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glFlush")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFlush(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glFogf",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glFogfv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glFogfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glFogi",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogi(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFogiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glFogiv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glFogiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glFogiv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFrontFace(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glFrontFace",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFrontFace(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glFrustum(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - GLdouble _arg4; - GLdouble _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"dddddd:glFrustum",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glFrustum(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGenLists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _result; - GLsizei _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glGenLists",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLuint )glGenLists(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_glGenTextures(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGenTextures",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGenTextures. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGenTextures(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetBooleanv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLboolean * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetBooleanv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLboolean_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetBooleanv. Expected _GLboolean_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetBooleanv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetClipPlane(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetClipPlane",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetClipPlane. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetClipPlane(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetDoublev(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetDoublev",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetDoublev. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetDoublev(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetError(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _result; - - self = self; - if(!PyArg_ParseTuple(args,":glGetError")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLenum )glGetError(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_glGetFloatv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetFloatv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetFloatv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetFloatv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetIntegerv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetIntegerv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetIntegerv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetIntegerv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetLightfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetLightfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetLightfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetLightfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetLightiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetLightiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetLightiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetLightiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMapdv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMapdv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMapdv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMapdv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMapfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMapfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMapfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMapfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMapiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMapiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMapiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMapiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMaterialfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMaterialfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMaterialfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMaterialfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetMaterialiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetMaterialiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetMaterialiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetMaterialiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPixelMapfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPixelMapfv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPixelMapfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPixelMapfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPixelMapuiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPixelMapuiv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPixelMapuiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPixelMapuiv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPixelMapusv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLushort * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPixelMapusv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPixelMapusv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPixelMapusv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPointerv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLvoid ** _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glGetPointerv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glGetPointerv. Expected _GLvoid_pp."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPointerv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetPolygonStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glGetPolygonStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glGetPolygonStipple. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetPolygonStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _result; - GLenum _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"i:glGetString",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLubyte *)glGetString(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_GLubyte_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_glGetTexEnvfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexEnvfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexEnvfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexEnvfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexEnviv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexEnviv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexEnviv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexEnviv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexGendv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexGendv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexGendv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexGendv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexGenfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexGenfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexGenfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexGenfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexGeniv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexGeniv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexGeniv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexGeniv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLenum _arg3; - GLvoid * _arg4; - char * _argc4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiis:glGetTexImage",&_arg0,&_arg1,&_arg2,&_arg3,&_argc4)) - return NULL; - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of glGetTexImage. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexImage(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexLevelParameterfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLfloat * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glGetTexLevelParameterfv",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glGetTexLevelParameterfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexLevelParameterfv(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexLevelParameteriv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLenum _arg2; - GLint * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glGetTexLevelParameteriv",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glGetTexLevelParameteriv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexLevelParameteriv(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexParameterfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexParameterfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexParameterfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexParameterfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glGetTexParameteriv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glGetTexParameteriv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glGetTexParameteriv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glGetTexParameteriv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glHint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glHint",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glHint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIndexMask",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glIndexPointer",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glIndexPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexPointer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glIndexd",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexdv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexdv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexdv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexdv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glIndexf",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexf(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexfv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexfv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIndexi",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexi(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexiv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexiv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexs(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"h:glIndexs",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexs(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexsv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexsv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexsv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexsv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexub(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"b:glIndexub",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexub(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIndexubv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glIndexubv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glIndexubv. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glIndexubv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glInitNames(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glInitNames")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glInitNames(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glInterleavedArrays(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glInterleavedArrays",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glInterleavedArrays. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glInterleavedArrays(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glIsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIsEnabled",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glIsEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glIsList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIsList",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glIsList(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glIsTexture(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLboolean _result; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glIsTexture",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLboolean )glIsTexture(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -static PyObject *_wrap_glLightModelf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glLightModelf",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModelf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightModelfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glLightModelfv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glLightModelfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModelfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightModeli(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glLightModeli",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModeli(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightModeliv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glLightModeliv",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glLightModeliv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightModeliv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glLightf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glLightfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glLightfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLighti(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glLighti",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLighti(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLightiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glLightiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glLightiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLightiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLineStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLushort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ih:glLineStipple",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLineStipple(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLineWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glLineWidth",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLineWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glListBase(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glListBase",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glListBase(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadIdentity(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glLoadIdentity")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadIdentity(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadMatrixd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glLoadMatrixd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glLoadMatrixd. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadMatrixd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadMatrixf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glLoadMatrixf",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glLoadMatrixf. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadMatrixf(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLoadName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glLoadName",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLoadName(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glLogicOp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glLogicOp",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glLogicOp(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLint _arg3; - GLint _arg4; - GLdouble * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiis:glMap1d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glMap1d. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap1d(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLint _arg3; - GLint _arg4; - GLfloat * _arg5; - char * _argc5 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiis:glMap1f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_argc5)) - return NULL; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of glMap1f. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap1f(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLint _arg3; - GLint _arg4; - GLdouble _arg5; - GLdouble _arg6; - GLint _arg7; - GLint _arg8; - GLdouble * _arg9; - char * _argc9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iddiiddiis:glMap2d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argc9)) - return NULL; - if (_argc9) { - if (SWIG_GetPtr(_argc9,(void **) &_arg9,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 10 of glMap2d. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap2d(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMap2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLint _arg3; - GLint _arg4; - GLfloat _arg5; - GLfloat _arg6; - GLint _arg7; - GLint _arg8; - GLfloat * _arg9; - char * _argc9 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iffiiffiis:glMap2f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_arg8,&_argc9)) - return NULL; - if (_argc9) { - if (SWIG_GetPtr(_argc9,(void **) &_arg9,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 10 of glMap2f. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMap2f(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"idd:glMapGrid1d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid1d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iff:glMapGrid1f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid1f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLint _arg3; - GLdouble _arg4; - GLdouble _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"iddidd:glMapGrid2d",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid2d(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMapGrid2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLint _arg3; - GLfloat _arg4; - GLfloat _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"iffiff:glMapGrid2f",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMapGrid2f(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMaterialf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glMaterialf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMaterialf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMaterialfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glMaterialfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glMaterialfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMaterialfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMateriali(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glMateriali",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMateriali(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMaterialiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glMaterialiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glMaterialiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMaterialiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMatrixMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glMatrixMode",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glMatrixMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMultMatrixd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glMultMatrixd",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glMultMatrixd. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMultMatrixd(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glMultMatrixf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glMultMatrixf",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glMultMatrixf. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glMultMatrixf(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNewList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glNewList",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNewList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3b(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte _arg0; - GLbyte _arg1; - GLbyte _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"bbb:glNormal3b",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3b(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3bv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3bv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLbyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3bv. Expected _GLbyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3bv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glNormal3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glNormal3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glNormal3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glNormal3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormal3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glNormal3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glNormal3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormal3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glNormalPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLvoid * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glNormalPointer",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glNormalPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glNormalPointer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glOrtho(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - GLdouble _arg4; - GLdouble _arg5; - - self = self; - if(!PyArg_ParseTuple(args,"dddddd:glOrtho",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glOrtho(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPassThrough(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glPassThrough",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPassThrough(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelMapfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glPixelMapfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPixelMapfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelMapfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelMapuiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLuint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glPixelMapuiv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPixelMapuiv. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelMapuiv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelMapusv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLsizei _arg1; - GLushort * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glPixelMapusv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLushort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPixelMapusv. Expected _GLushort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelMapusv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelStoref(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glPixelStoref",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelStoref(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelStorei(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glPixelStorei",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelStorei(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelTransferf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"if:glPixelTransferf",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelTransferf(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelTransferi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glPixelTransferi",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelTransferi(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPixelZoom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glPixelZoom",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPixelZoom(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPointSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glPointSize",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPointSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPolygonMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glPolygonMode",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPolygonMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPolygonOffset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glPolygonOffset",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPolygonOffset(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPolygonStipple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLubyte * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glPolygonStipple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLubyte_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glPolygonStipple. Expected _GLubyte_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPolygonStipple(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopAttrib")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopAttrib(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopClientAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopClientAttrib")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopClientAttrib(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopMatrix(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopMatrix")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopMatrix(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPopName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPopName")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPopName(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPrioritizeTextures(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - GLclampf * _arg2; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iss:glPrioritizeTextures",&_arg0,&_argc1,&_argc2)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glPrioritizeTextures. Expected _GLuint_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLclampf_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glPrioritizeTextures. Expected _GLclampf_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glPrioritizeTextures(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbitfield _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glPushAttrib",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushAttrib(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushClientAttrib(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLbitfield _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glPushClientAttrib",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushClientAttrib(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushMatrix(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":glPushMatrix")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushMatrix(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glPushName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glPushName",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glPushName(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glRasterPos2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glRasterPos2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glRasterPos2i",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2i(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"hh:glRasterPos2s",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2s(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos2sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos2sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos2sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos2sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glRasterPos3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glRasterPos3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glRasterPos3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glRasterPos3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glRasterPos4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glRasterPos4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glRasterPos4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glRasterPos4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRasterPos4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glRasterPos4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRasterPos4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRasterPos4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glReadBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glReadBuffer",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glReadBuffer(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glReadPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - GLenum _arg4; - GLenum _arg5; - GLvoid * _arg6; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiis:glReadPixels",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of glReadPixels. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glReadPixels(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectd(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glRectd",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectd(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectdv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - GLdouble * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectdv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectdv. Expected _GLdouble_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectdv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectdv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glRectf",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectf(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - GLfloat * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectfv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectfv. Expected _GLfloat_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectfv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRecti(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glRecti",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRecti(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectiv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - GLint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectiv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectiv. Expected _GLint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectiv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectiv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glRects",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRects(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRectsv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - GLshort * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:glRectsv",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glRectsv. Expected _GLshort_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glRectsv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glRectsv(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRenderMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _result; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glRenderMode",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (GLint )glRenderMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_glRotated(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glRotated",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRotated(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glRotatef(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glRotatef",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glRotatef(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glScaled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glScaled",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glScaled(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glScalef(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glScalef",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glScalef(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glScissor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glScissor",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glScissor(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glSelectBuffer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLsizei _arg0; - GLuint * _arg1; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"is:glSelectBuffer",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_GLuint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of glSelectBuffer. Expected _GLuint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glSelectBuffer(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glShadeModel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glShadeModel",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glShadeModel(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glStencilFunc(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLuint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glStencilFunc",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glStencilFunc(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glStencilMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLuint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glStencilMask",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glStencilMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glStencilOp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLenum _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glStencilOp",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glStencilOp(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"d:glTexCoord1d",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1d(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"f:glTexCoord1f",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1f(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"i:glTexCoord1i",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1i(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"h:glTexCoord1s",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1s(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord1sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord1sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord1sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord1sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glTexCoord2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glTexCoord2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glTexCoord2i",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2i(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"hh:glTexCoord2s",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2s(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord2sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord2sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord2sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord2sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glTexCoord3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glTexCoord3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexCoord3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glTexCoord3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glTexCoord4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glTexCoord4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glTexCoord4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glTexCoord4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoord4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glTexCoord4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glTexCoord4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoord4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexCoordPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glTexCoordPointer",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glTexCoordPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexCoordPointer(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnvf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glTexEnvf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnvf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnvfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexEnvfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexEnvfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnvfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnvi(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexEnvi",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnvi(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexEnviv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexEnviv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexEnviv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexEnviv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGend(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iid:glTexGend",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGend(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGendv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLdouble * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexGendv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexGendv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGendv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGenf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glTexGenf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGenf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGenfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexGenfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexGenfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGenfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGeni(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexGeni",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGeni(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexGeniv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexGeniv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexGeniv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexGeniv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLsizei _arg3; - GLint _arg4; - GLenum _arg5; - GLenum _arg6; - GLvoid * _arg7; - char * _argc7 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiis:glTexImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_argc7)) - return NULL; - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of glTexImage1D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLsizei _arg3; - GLsizei _arg4; - GLint _arg5; - GLenum _arg6; - GLenum _arg7; - GLvoid * _arg8; - char * _argc8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiis:glTexImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argc8)) - return NULL; - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of glTexImage2D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameterf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iif:glTexParameterf",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameterf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameterfv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLfloat * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexParameterfv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexParameterfv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameterfv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameteri(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glTexParameteri",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameteri(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexParameteriv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLenum _arg1; - GLint * _arg2; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iis:glTexParameteriv",&_arg0,&_arg1,&_argc2)) - return NULL; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of glTexParameteriv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexParameteriv(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexSubImage1D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLsizei _arg3; - GLenum _arg4; - GLenum _arg5; - GLvoid * _arg6; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiis:glTexSubImage1D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of glTexSubImage1D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexSubImage1D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTexSubImage2D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLenum _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - GLsizei _arg4; - GLsizei _arg5; - GLenum _arg6; - GLenum _arg7; - GLvoid * _arg8; - char * _argc8 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiiiiiiis:glTexSubImage2D",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6,&_arg7,&_argc8)) - return NULL; - if (_argc8) { - if (SWIG_GetPtr(_argc8,(void **) &_arg8,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 9 of glTexSubImage2D. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glTexSubImage2D(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTranslated(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glTranslated",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTranslated(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glTranslatef(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glTranslatef",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glTranslatef(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"dd:glVertex2d",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2d(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ff:glVertex2f",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2f(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"ii:glVertex2i",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2i(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"hh:glVertex2s",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2s(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex2sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex2sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex2sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex2sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"ddd:glVertex3d",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3d(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"fff:glVertex3f",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3f(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"iii:glVertex3i",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3i(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - - self = self; - if(!PyArg_ParseTuple(args,"hhh:glVertex3s",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3s(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex3sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex3sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex3sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex3sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4d(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble _arg0; - GLdouble _arg1; - GLdouble _arg2; - GLdouble _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"dddd:glVertex4d",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4d(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4dv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLdouble * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4dv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLdouble_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4dv. Expected _GLdouble_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4dv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4f(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat _arg0; - GLfloat _arg1; - GLfloat _arg2; - GLfloat _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"ffff:glVertex4f",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4f(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4fv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLfloat * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4fv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLfloat_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4fv. Expected _GLfloat_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4fv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4i(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLint _arg2; - GLint _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glVertex4i",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4i(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4iv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4iv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4iv. Expected _GLint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4iv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4s(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort _arg0; - GLshort _arg1; - GLshort _arg2; - GLshort _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"hhhh:glVertex4s",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4s(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertex4sv(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLshort * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:glVertex4sv",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_GLshort_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of glVertex4sv. Expected _GLshort_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertex4sv(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glVertexPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLenum _arg1; - GLsizei _arg2; - GLvoid * _arg3; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"iiis:glVertexPointer",&_arg0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,(char *) 0 )) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of glVertexPointer. Expected _GLvoid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - glVertexPointer(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_glViewport(PyObject *self, PyObject *args) { - PyObject * _resultobj; - GLint _arg0; - GLint _arg1; - GLsizei _arg2; - GLsizei _arg3; - - self = self; - if(!PyArg_ParseTuple(args,"iiii:glViewport",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - glViewport(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxGLContext(_swigarg0,_swigarg1,_swigarg2) (new wxGLContext(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxGLContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _result; - bool _arg0; - wxWindow * _arg1; - wxPalette * _arg2 = &wxNullPalette; - int tempbool0; - char * _argc1 = 0; - char * _argc2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"is|s:new_wxGLContext",&tempbool0,&_argc1,&_argc2)) - return NULL; - _arg0 = (bool ) tempbool0; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of new_wxGLContext. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGLContext. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGLContext *)new_wxGLContext(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxGLContext(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGLContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxGLContext",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxGLContext. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxGLContext(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetCurrent(_swigobj) (_swigobj->SetCurrent()) -static PyObject *_wrap_wxGLContext_SetCurrent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_SetCurrent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetCurrent. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetCurrent(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxGLContext_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGLContext_SetColour",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetColour. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetColour(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SwapBuffers(_swigobj) (_swigobj->SwapBuffers()) -static PyObject *_wrap_wxGLContext_SwapBuffers(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_SwapBuffers",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SwapBuffers. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SwapBuffers(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetupPixelFormat(_swigobj) (_swigobj->SetupPixelFormat()) -static PyObject *_wrap_wxGLContext_SetupPixelFormat(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_SetupPixelFormat",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetupPixelFormat. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetupPixelFormat(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_SetupPalette(_swigobj,_swigarg0) (_swigobj->SetupPalette(_swigarg0)) -static PyObject *_wrap_wxGLContext_SetupPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _arg0; - wxPalette * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGLContext_SetupPalette",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_SetupPalette. Expected _wxGLContext_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGLContext_SetupPalette. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLContext_SetupPalette(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLContext_CreateDefaultPalette(_swigobj) (_swigobj->CreateDefaultPalette()) -static PyObject *_wrap_wxGLContext_CreateDefaultPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - wxGLContext * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_CreateDefaultPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_CreateDefaultPalette. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPalette (wxGLContext_CreateDefaultPalette(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGLContext_GetPalette(_swigobj) (_swigobj->GetPalette()) -static PyObject *_wrap_wxGLContext_GetPalette(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPalette * _result; - wxGLContext * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_GetPalette",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_GetPalette. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPalette *)wxGLContext_GetPalette(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPalette_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGLContext_GetWindow(_swigobj) (_swigobj->GetWindow()) -static PyObject *_wrap_wxGLContext_GetWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxGLContext * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLContext_GetWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLContext_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLContext_GetWindow. Expected _wxGLContext_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxGLContext_GetWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxGLCanvasTowxScrolledWindow(void *ptr) { - wxGLCanvas *src; - wxScrolledWindow *dest; - src = (wxGLCanvas *) ptr; - dest = (wxScrolledWindow *) src; - return (void *) dest; -} - -static void *SwigwxGLCanvasTowxWindow(void *ptr) { - wxGLCanvas *src; - wxWindow *dest; - src = (wxGLCanvas *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxGLCanvasTowxEvtHandler(void *ptr) { - wxGLCanvas *src; - wxEvtHandler *dest; - src = (wxGLCanvas *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxGLCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7) (new wxGLCanvas(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6,_swigarg7)) -static PyObject *_wrap_new_wxGLCanvas(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "GLCanvas"; - int * _arg6 = 0; - wxPalette * _arg7 = &wxNullPalette; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char * _argc6 = 0; - char * _argc7 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|isslsss:new_wxGLCanvas",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5,&_argc6,&_argc7)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGLCanvas. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGLCanvas. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGLCanvas. Expected _wxSize_p."); - return NULL; - } - } - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_int_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of new_wxGLCanvas. Expected _int_p."); - return NULL; - } - } - if (_argc7) { - if (SWIG_GetPtr(_argc7,(void **) &_arg7,"_wxPalette_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 8 of new_wxGLCanvas. Expected _wxPalette_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGLCanvas *)new_wxGLCanvas(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLCanvas_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGLCanvas_SetCurrent(_swigobj) (_swigobj->SetCurrent()) -static PyObject *_wrap_wxGLCanvas_SetCurrent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLCanvas_SetCurrent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_SetCurrent. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLCanvas_SetCurrent(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLCanvas_SetColour(_swigobj,_swigarg0) (_swigobj->SetColour(_swigarg0)) -static PyObject *_wrap_wxGLCanvas_SetColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - char * _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGLCanvas_SetColour",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_SetColour. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLCanvas_SetColour(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLCanvas_SwapBuffers(_swigobj) (_swigobj->SwapBuffers()) -static PyObject *_wrap_wxGLCanvas_SwapBuffers(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLCanvas * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLCanvas_SwapBuffers",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_SwapBuffers. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGLCanvas_SwapBuffers(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGLCanvas_GetContext(_swigobj) (_swigobj->GetContext()) -static PyObject *_wrap_wxGLCanvas_GetContext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGLContext * _result; - wxGLCanvas * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGLCanvas_GetContext",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGLCanvas_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGLCanvas_GetContext. Expected _wxGLCanvas_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGLContext *)wxGLCanvas_GetContext(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGLContext_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef glcanvascMethods[] = { - { "wxGLCanvas_GetContext", _wrap_wxGLCanvas_GetContext, 1 }, - { "wxGLCanvas_SwapBuffers", _wrap_wxGLCanvas_SwapBuffers, 1 }, - { "wxGLCanvas_SetColour", _wrap_wxGLCanvas_SetColour, 1 }, - { "wxGLCanvas_SetCurrent", _wrap_wxGLCanvas_SetCurrent, 1 }, - { "new_wxGLCanvas", _wrap_new_wxGLCanvas, 1 }, - { "wxGLContext_GetWindow", _wrap_wxGLContext_GetWindow, 1 }, - { "wxGLContext_GetPalette", _wrap_wxGLContext_GetPalette, 1 }, - { "wxGLContext_CreateDefaultPalette", _wrap_wxGLContext_CreateDefaultPalette, 1 }, - { "wxGLContext_SetupPalette", _wrap_wxGLContext_SetupPalette, 1 }, - { "wxGLContext_SetupPixelFormat", _wrap_wxGLContext_SetupPixelFormat, 1 }, - { "wxGLContext_SwapBuffers", _wrap_wxGLContext_SwapBuffers, 1 }, - { "wxGLContext_SetColour", _wrap_wxGLContext_SetColour, 1 }, - { "wxGLContext_SetCurrent", _wrap_wxGLContext_SetCurrent, 1 }, - { "delete_wxGLContext", _wrap_delete_wxGLContext, 1 }, - { "new_wxGLContext", _wrap_new_wxGLContext, 1 }, - { "glViewport", _wrap_glViewport, 1 }, - { "glVertexPointer", _wrap_glVertexPointer, 1 }, - { "glVertex4sv", _wrap_glVertex4sv, 1 }, - { "glVertex4s", _wrap_glVertex4s, 1 }, - { "glVertex4iv", _wrap_glVertex4iv, 1 }, - { "glVertex4i", _wrap_glVertex4i, 1 }, - { "glVertex4fv", _wrap_glVertex4fv, 1 }, - { "glVertex4f", _wrap_glVertex4f, 1 }, - { "glVertex4dv", _wrap_glVertex4dv, 1 }, - { "glVertex4d", _wrap_glVertex4d, 1 }, - { "glVertex3sv", _wrap_glVertex3sv, 1 }, - { "glVertex3s", _wrap_glVertex3s, 1 }, - { "glVertex3iv", _wrap_glVertex3iv, 1 }, - { "glVertex3i", _wrap_glVertex3i, 1 }, - { "glVertex3fv", _wrap_glVertex3fv, 1 }, - { "glVertex3f", _wrap_glVertex3f, 1 }, - { "glVertex3dv", _wrap_glVertex3dv, 1 }, - { "glVertex3d", _wrap_glVertex3d, 1 }, - { "glVertex2sv", _wrap_glVertex2sv, 1 }, - { "glVertex2s", _wrap_glVertex2s, 1 }, - { "glVertex2iv", _wrap_glVertex2iv, 1 }, - { "glVertex2i", _wrap_glVertex2i, 1 }, - { "glVertex2fv", _wrap_glVertex2fv, 1 }, - { "glVertex2f", _wrap_glVertex2f, 1 }, - { "glVertex2dv", _wrap_glVertex2dv, 1 }, - { "glVertex2d", _wrap_glVertex2d, 1 }, - { "glTranslatef", _wrap_glTranslatef, 1 }, - { "glTranslated", _wrap_glTranslated, 1 }, - { "glTexSubImage2D", _wrap_glTexSubImage2D, 1 }, - { "glTexSubImage1D", _wrap_glTexSubImage1D, 1 }, - { "glTexParameteriv", _wrap_glTexParameteriv, 1 }, - { "glTexParameteri", _wrap_glTexParameteri, 1 }, - { "glTexParameterfv", _wrap_glTexParameterfv, 1 }, - { "glTexParameterf", _wrap_glTexParameterf, 1 }, - { "glTexImage2D", _wrap_glTexImage2D, 1 }, - { "glTexImage1D", _wrap_glTexImage1D, 1 }, - { "glTexGeniv", _wrap_glTexGeniv, 1 }, - { "glTexGeni", _wrap_glTexGeni, 1 }, - { "glTexGenfv", _wrap_glTexGenfv, 1 }, - { "glTexGenf", _wrap_glTexGenf, 1 }, - { "glTexGendv", _wrap_glTexGendv, 1 }, - { "glTexGend", _wrap_glTexGend, 1 }, - { "glTexEnviv", _wrap_glTexEnviv, 1 }, - { "glTexEnvi", _wrap_glTexEnvi, 1 }, - { "glTexEnvfv", _wrap_glTexEnvfv, 1 }, - { "glTexEnvf", _wrap_glTexEnvf, 1 }, - { "glTexCoordPointer", _wrap_glTexCoordPointer, 1 }, - { "glTexCoord4sv", _wrap_glTexCoord4sv, 1 }, - { "glTexCoord4s", _wrap_glTexCoord4s, 1 }, - { "glTexCoord4iv", _wrap_glTexCoord4iv, 1 }, - { "glTexCoord4i", _wrap_glTexCoord4i, 1 }, - { "glTexCoord4fv", _wrap_glTexCoord4fv, 1 }, - { "glTexCoord4f", _wrap_glTexCoord4f, 1 }, - { "glTexCoord4dv", _wrap_glTexCoord4dv, 1 }, - { "glTexCoord4d", _wrap_glTexCoord4d, 1 }, - { "glTexCoord3sv", _wrap_glTexCoord3sv, 1 }, - { "glTexCoord3s", _wrap_glTexCoord3s, 1 }, - { "glTexCoord3iv", _wrap_glTexCoord3iv, 1 }, - { "glTexCoord3i", _wrap_glTexCoord3i, 1 }, - { "glTexCoord3fv", _wrap_glTexCoord3fv, 1 }, - { "glTexCoord3f", _wrap_glTexCoord3f, 1 }, - { "glTexCoord3dv", _wrap_glTexCoord3dv, 1 }, - { "glTexCoord3d", _wrap_glTexCoord3d, 1 }, - { "glTexCoord2sv", _wrap_glTexCoord2sv, 1 }, - { "glTexCoord2s", _wrap_glTexCoord2s, 1 }, - { "glTexCoord2iv", _wrap_glTexCoord2iv, 1 }, - { "glTexCoord2i", _wrap_glTexCoord2i, 1 }, - { "glTexCoord2fv", _wrap_glTexCoord2fv, 1 }, - { "glTexCoord2f", _wrap_glTexCoord2f, 1 }, - { "glTexCoord2dv", _wrap_glTexCoord2dv, 1 }, - { "glTexCoord2d", _wrap_glTexCoord2d, 1 }, - { "glTexCoord1sv", _wrap_glTexCoord1sv, 1 }, - { "glTexCoord1s", _wrap_glTexCoord1s, 1 }, - { "glTexCoord1iv", _wrap_glTexCoord1iv, 1 }, - { "glTexCoord1i", _wrap_glTexCoord1i, 1 }, - { "glTexCoord1fv", _wrap_glTexCoord1fv, 1 }, - { "glTexCoord1f", _wrap_glTexCoord1f, 1 }, - { "glTexCoord1dv", _wrap_glTexCoord1dv, 1 }, - { "glTexCoord1d", _wrap_glTexCoord1d, 1 }, - { "glStencilOp", _wrap_glStencilOp, 1 }, - { "glStencilMask", _wrap_glStencilMask, 1 }, - { "glStencilFunc", _wrap_glStencilFunc, 1 }, - { "glShadeModel", _wrap_glShadeModel, 1 }, - { "glSelectBuffer", _wrap_glSelectBuffer, 1 }, - { "glScissor", _wrap_glScissor, 1 }, - { "glScalef", _wrap_glScalef, 1 }, - { "glScaled", _wrap_glScaled, 1 }, - { "glRotatef", _wrap_glRotatef, 1 }, - { "glRotated", _wrap_glRotated, 1 }, - { "glRenderMode", _wrap_glRenderMode, 1 }, - { "glRectsv", _wrap_glRectsv, 1 }, - { "glRects", _wrap_glRects, 1 }, - { "glRectiv", _wrap_glRectiv, 1 }, - { "glRecti", _wrap_glRecti, 1 }, - { "glRectfv", _wrap_glRectfv, 1 }, - { "glRectf", _wrap_glRectf, 1 }, - { "glRectdv", _wrap_glRectdv, 1 }, - { "glRectd", _wrap_glRectd, 1 }, - { "glReadPixels", _wrap_glReadPixels, 1 }, - { "glReadBuffer", _wrap_glReadBuffer, 1 }, - { "glRasterPos4sv", _wrap_glRasterPos4sv, 1 }, - { "glRasterPos4s", _wrap_glRasterPos4s, 1 }, - { "glRasterPos4iv", _wrap_glRasterPos4iv, 1 }, - { "glRasterPos4i", _wrap_glRasterPos4i, 1 }, - { "glRasterPos4fv", _wrap_glRasterPos4fv, 1 }, - { "glRasterPos4f", _wrap_glRasterPos4f, 1 }, - { "glRasterPos4dv", _wrap_glRasterPos4dv, 1 }, - { "glRasterPos4d", _wrap_glRasterPos4d, 1 }, - { "glRasterPos3sv", _wrap_glRasterPos3sv, 1 }, - { "glRasterPos3s", _wrap_glRasterPos3s, 1 }, - { "glRasterPos3iv", _wrap_glRasterPos3iv, 1 }, - { "glRasterPos3i", _wrap_glRasterPos3i, 1 }, - { "glRasterPos3fv", _wrap_glRasterPos3fv, 1 }, - { "glRasterPos3f", _wrap_glRasterPos3f, 1 }, - { "glRasterPos3dv", _wrap_glRasterPos3dv, 1 }, - { "glRasterPos3d", _wrap_glRasterPos3d, 1 }, - { "glRasterPos2sv", _wrap_glRasterPos2sv, 1 }, - { "glRasterPos2s", _wrap_glRasterPos2s, 1 }, - { "glRasterPos2iv", _wrap_glRasterPos2iv, 1 }, - { "glRasterPos2i", _wrap_glRasterPos2i, 1 }, - { "glRasterPos2fv", _wrap_glRasterPos2fv, 1 }, - { "glRasterPos2f", _wrap_glRasterPos2f, 1 }, - { "glRasterPos2dv", _wrap_glRasterPos2dv, 1 }, - { "glRasterPos2d", _wrap_glRasterPos2d, 1 }, - { "glPushName", _wrap_glPushName, 1 }, - { "glPushMatrix", _wrap_glPushMatrix, 1 }, - { "glPushClientAttrib", _wrap_glPushClientAttrib, 1 }, - { "glPushAttrib", _wrap_glPushAttrib, 1 }, - { "glPrioritizeTextures", _wrap_glPrioritizeTextures, 1 }, - { "glPopName", _wrap_glPopName, 1 }, - { "glPopMatrix", _wrap_glPopMatrix, 1 }, - { "glPopClientAttrib", _wrap_glPopClientAttrib, 1 }, - { "glPopAttrib", _wrap_glPopAttrib, 1 }, - { "glPolygonStipple", _wrap_glPolygonStipple, 1 }, - { "glPolygonOffset", _wrap_glPolygonOffset, 1 }, - { "glPolygonMode", _wrap_glPolygonMode, 1 }, - { "glPointSize", _wrap_glPointSize, 1 }, - { "glPixelZoom", _wrap_glPixelZoom, 1 }, - { "glPixelTransferi", _wrap_glPixelTransferi, 1 }, - { "glPixelTransferf", _wrap_glPixelTransferf, 1 }, - { "glPixelStorei", _wrap_glPixelStorei, 1 }, - { "glPixelStoref", _wrap_glPixelStoref, 1 }, - { "glPixelMapusv", _wrap_glPixelMapusv, 1 }, - { "glPixelMapuiv", _wrap_glPixelMapuiv, 1 }, - { "glPixelMapfv", _wrap_glPixelMapfv, 1 }, - { "glPassThrough", _wrap_glPassThrough, 1 }, - { "glOrtho", _wrap_glOrtho, 1 }, - { "glNormalPointer", _wrap_glNormalPointer, 1 }, - { "glNormal3sv", _wrap_glNormal3sv, 1 }, - { "glNormal3s", _wrap_glNormal3s, 1 }, - { "glNormal3iv", _wrap_glNormal3iv, 1 }, - { "glNormal3i", _wrap_glNormal3i, 1 }, - { "glNormal3fv", _wrap_glNormal3fv, 1 }, - { "glNormal3f", _wrap_glNormal3f, 1 }, - { "glNormal3dv", _wrap_glNormal3dv, 1 }, - { "glNormal3d", _wrap_glNormal3d, 1 }, - { "glNormal3bv", _wrap_glNormal3bv, 1 }, - { "glNormal3b", _wrap_glNormal3b, 1 }, - { "glNewList", _wrap_glNewList, 1 }, - { "glMultMatrixf", _wrap_glMultMatrixf, 1 }, - { "glMultMatrixd", _wrap_glMultMatrixd, 1 }, - { "glMatrixMode", _wrap_glMatrixMode, 1 }, - { "glMaterialiv", _wrap_glMaterialiv, 1 }, - { "glMateriali", _wrap_glMateriali, 1 }, - { "glMaterialfv", _wrap_glMaterialfv, 1 }, - { "glMaterialf", _wrap_glMaterialf, 1 }, - { "glMapGrid2f", _wrap_glMapGrid2f, 1 }, - { "glMapGrid2d", _wrap_glMapGrid2d, 1 }, - { "glMapGrid1f", _wrap_glMapGrid1f, 1 }, - { "glMapGrid1d", _wrap_glMapGrid1d, 1 }, - { "glMap2f", _wrap_glMap2f, 1 }, - { "glMap2d", _wrap_glMap2d, 1 }, - { "glMap1f", _wrap_glMap1f, 1 }, - { "glMap1d", _wrap_glMap1d, 1 }, - { "glLogicOp", _wrap_glLogicOp, 1 }, - { "glLoadName", _wrap_glLoadName, 1 }, - { "glLoadMatrixf", _wrap_glLoadMatrixf, 1 }, - { "glLoadMatrixd", _wrap_glLoadMatrixd, 1 }, - { "glLoadIdentity", _wrap_glLoadIdentity, 1 }, - { "glListBase", _wrap_glListBase, 1 }, - { "glLineWidth", _wrap_glLineWidth, 1 }, - { "glLineStipple", _wrap_glLineStipple, 1 }, - { "glLightiv", _wrap_glLightiv, 1 }, - { "glLighti", _wrap_glLighti, 1 }, - { "glLightfv", _wrap_glLightfv, 1 }, - { "glLightf", _wrap_glLightf, 1 }, - { "glLightModeliv", _wrap_glLightModeliv, 1 }, - { "glLightModeli", _wrap_glLightModeli, 1 }, - { "glLightModelfv", _wrap_glLightModelfv, 1 }, - { "glLightModelf", _wrap_glLightModelf, 1 }, - { "glIsTexture", _wrap_glIsTexture, 1 }, - { "glIsList", _wrap_glIsList, 1 }, - { "glIsEnabled", _wrap_glIsEnabled, 1 }, - { "glInterleavedArrays", _wrap_glInterleavedArrays, 1 }, - { "glInitNames", _wrap_glInitNames, 1 }, - { "glIndexubv", _wrap_glIndexubv, 1 }, - { "glIndexub", _wrap_glIndexub, 1 }, - { "glIndexsv", _wrap_glIndexsv, 1 }, - { "glIndexs", _wrap_glIndexs, 1 }, - { "glIndexiv", _wrap_glIndexiv, 1 }, - { "glIndexi", _wrap_glIndexi, 1 }, - { "glIndexfv", _wrap_glIndexfv, 1 }, - { "glIndexf", _wrap_glIndexf, 1 }, - { "glIndexdv", _wrap_glIndexdv, 1 }, - { "glIndexd", _wrap_glIndexd, 1 }, - { "glIndexPointer", _wrap_glIndexPointer, 1 }, - { "glIndexMask", _wrap_glIndexMask, 1 }, - { "glHint", _wrap_glHint, 1 }, - { "glGetTexParameteriv", _wrap_glGetTexParameteriv, 1 }, - { "glGetTexParameterfv", _wrap_glGetTexParameterfv, 1 }, - { "glGetTexLevelParameteriv", _wrap_glGetTexLevelParameteriv, 1 }, - { "glGetTexLevelParameterfv", _wrap_glGetTexLevelParameterfv, 1 }, - { "glGetTexImage", _wrap_glGetTexImage, 1 }, - { "glGetTexGeniv", _wrap_glGetTexGeniv, 1 }, - { "glGetTexGenfv", _wrap_glGetTexGenfv, 1 }, - { "glGetTexGendv", _wrap_glGetTexGendv, 1 }, - { "glGetTexEnviv", _wrap_glGetTexEnviv, 1 }, - { "glGetTexEnvfv", _wrap_glGetTexEnvfv, 1 }, - { "glGetString", _wrap_glGetString, 1 }, - { "glGetPolygonStipple", _wrap_glGetPolygonStipple, 1 }, - { "glGetPointerv", _wrap_glGetPointerv, 1 }, - { "glGetPixelMapusv", _wrap_glGetPixelMapusv, 1 }, - { "glGetPixelMapuiv", _wrap_glGetPixelMapuiv, 1 }, - { "glGetPixelMapfv", _wrap_glGetPixelMapfv, 1 }, - { "glGetMaterialiv", _wrap_glGetMaterialiv, 1 }, - { "glGetMaterialfv", _wrap_glGetMaterialfv, 1 }, - { "glGetMapiv", _wrap_glGetMapiv, 1 }, - { "glGetMapfv", _wrap_glGetMapfv, 1 }, - { "glGetMapdv", _wrap_glGetMapdv, 1 }, - { "glGetLightiv", _wrap_glGetLightiv, 1 }, - { "glGetLightfv", _wrap_glGetLightfv, 1 }, - { "glGetIntegerv", _wrap_glGetIntegerv, 1 }, - { "glGetFloatv", _wrap_glGetFloatv, 1 }, - { "glGetError", _wrap_glGetError, 1 }, - { "glGetDoublev", _wrap_glGetDoublev, 1 }, - { "glGetClipPlane", _wrap_glGetClipPlane, 1 }, - { "glGetBooleanv", _wrap_glGetBooleanv, 1 }, - { "glGenTextures", _wrap_glGenTextures, 1 }, - { "glGenLists", _wrap_glGenLists, 1 }, - { "glFrustum", _wrap_glFrustum, 1 }, - { "glFrontFace", _wrap_glFrontFace, 1 }, - { "glFogiv", _wrap_glFogiv, 1 }, - { "glFogi", _wrap_glFogi, 1 }, - { "glFogfv", _wrap_glFogfv, 1 }, - { "glFogf", _wrap_glFogf, 1 }, - { "glFlush", _wrap_glFlush, 1 }, - { "glFinish", _wrap_glFinish, 1 }, - { "glFeedbackBuffer", _wrap_glFeedbackBuffer, 1 }, - { "glEvalPoint2", _wrap_glEvalPoint2, 1 }, - { "glEvalPoint1", _wrap_glEvalPoint1, 1 }, - { "glEvalMesh2", _wrap_glEvalMesh2, 1 }, - { "glEvalMesh1", _wrap_glEvalMesh1, 1 }, - { "glEvalCoord2fv", _wrap_glEvalCoord2fv, 1 }, - { "glEvalCoord2f", _wrap_glEvalCoord2f, 1 }, - { "glEvalCoord2dv", _wrap_glEvalCoord2dv, 1 }, - { "glEvalCoord2d", _wrap_glEvalCoord2d, 1 }, - { "glEvalCoord1fv", _wrap_glEvalCoord1fv, 1 }, - { "glEvalCoord1f", _wrap_glEvalCoord1f, 1 }, - { "glEvalCoord1dv", _wrap_glEvalCoord1dv, 1 }, - { "glEvalCoord1d", _wrap_glEvalCoord1d, 1 }, - { "glEndList", _wrap_glEndList, 1 }, - { "glEnd", _wrap_glEnd, 1 }, - { "glEnableClientState", _wrap_glEnableClientState, 1 }, - { "glEnable", _wrap_glEnable, 1 }, - { "glEdgeFlagv", _wrap_glEdgeFlagv, 1 }, - { "glEdgeFlagPointer", _wrap_glEdgeFlagPointer, 1 }, - { "glEdgeFlag", _wrap_glEdgeFlag, 1 }, - { "glDrawPixels", _wrap_glDrawPixels, 1 }, - { "glDrawElements", _wrap_glDrawElements, 1 }, - { "glDrawBuffer", _wrap_glDrawBuffer, 1 }, - { "glDrawArrays", _wrap_glDrawArrays, 1 }, - { "glDisableClientState", _wrap_glDisableClientState, 1 }, - { "glDisable", _wrap_glDisable, 1 }, - { "glDepthRange", _wrap_glDepthRange, 1 }, - { "glDepthMask", _wrap_glDepthMask, 1 }, - { "glDepthFunc", _wrap_glDepthFunc, 1 }, - { "glDeleteTextures", _wrap_glDeleteTextures, 1 }, - { "glDeleteLists", _wrap_glDeleteLists, 1 }, - { "glCullFace", _wrap_glCullFace, 1 }, - { "glCopyTexSubImage2D", _wrap_glCopyTexSubImage2D, 1 }, - { "glCopyTexSubImage1D", _wrap_glCopyTexSubImage1D, 1 }, - { "glCopyTexImage2D", _wrap_glCopyTexImage2D, 1 }, - { "glCopyTexImage1D", _wrap_glCopyTexImage1D, 1 }, - { "glCopyPixels", _wrap_glCopyPixels, 1 }, - { "glColorPointer", _wrap_glColorPointer, 1 }, - { "glColorMaterial", _wrap_glColorMaterial, 1 }, - { "glColorMask", _wrap_glColorMask, 1 }, - { "glColor4usv", _wrap_glColor4usv, 1 }, - { "glColor4us", _wrap_glColor4us, 1 }, - { "glColor4uiv", _wrap_glColor4uiv, 1 }, - { "glColor4ui", _wrap_glColor4ui, 1 }, - { "glColor4ubv", _wrap_glColor4ubv, 1 }, - { "glColor4ub", _wrap_glColor4ub, 1 }, - { "glColor4sv", _wrap_glColor4sv, 1 }, - { "glColor4s", _wrap_glColor4s, 1 }, - { "glColor4iv", _wrap_glColor4iv, 1 }, - { "glColor4i", _wrap_glColor4i, 1 }, - { "glColor4fv", _wrap_glColor4fv, 1 }, - { "glColor4f", _wrap_glColor4f, 1 }, - { "glColor4dv", _wrap_glColor4dv, 1 }, - { "glColor4d", _wrap_glColor4d, 1 }, - { "glColor4bv", _wrap_glColor4bv, 1 }, - { "glColor4b", _wrap_glColor4b, 1 }, - { "glColor3usv", _wrap_glColor3usv, 1 }, - { "glColor3us", _wrap_glColor3us, 1 }, - { "glColor3uiv", _wrap_glColor3uiv, 1 }, - { "glColor3ui", _wrap_glColor3ui, 1 }, - { "glColor3ubv", _wrap_glColor3ubv, 1 }, - { "glColor3ub", _wrap_glColor3ub, 1 }, - { "glColor3sv", _wrap_glColor3sv, 1 }, - { "glColor3s", _wrap_glColor3s, 1 }, - { "glColor3iv", _wrap_glColor3iv, 1 }, - { "glColor3i", _wrap_glColor3i, 1 }, - { "glColor3fv", _wrap_glColor3fv, 1 }, - { "glColor3f", _wrap_glColor3f, 1 }, - { "glColor3dv", _wrap_glColor3dv, 1 }, - { "glColor3d", _wrap_glColor3d, 1 }, - { "glColor3bv", _wrap_glColor3bv, 1 }, - { "glColor3b", _wrap_glColor3b, 1 }, - { "glClipPlane", _wrap_glClipPlane, 1 }, - { "glClearStencil", _wrap_glClearStencil, 1 }, - { "glClearIndex", _wrap_glClearIndex, 1 }, - { "glClearDepth", _wrap_glClearDepth, 1 }, - { "glClearColor", _wrap_glClearColor, 1 }, - { "glClearAccum", _wrap_glClearAccum, 1 }, - { "glClear", _wrap_glClear, 1 }, - { "glCallLists", _wrap_glCallLists, 1 }, - { "glCallList", _wrap_glCallList, 1 }, - { "glBlendFunc", _wrap_glBlendFunc, 1 }, - { "glBitmap", _wrap_glBitmap, 1 }, - { "glBindTexture", _wrap_glBindTexture, 1 }, - { "glBegin", _wrap_glBegin, 1 }, - { "glArrayElement", _wrap_glArrayElement, 1 }, - { "glAreTexturesResident", _wrap_glAreTexturesResident, 1 }, - { "glAlphaFunc", _wrap_glAlphaFunc, 1 }, - { "glAccum", _wrap_glAccum, 1 }, - { "glAddSwapHintRectWin", _wrap_glAddSwapHintRectWin, 1 }, - { "glIndexMaterialSGI", _wrap_glIndexMaterialSGI, 1 }, - { "glIndexFuncSGI", _wrap_glIndexFuncSGI, 1 }, - { "glCullParameterfvSGI", _wrap_glCullParameterfvSGI, 1 }, - { "glCullParameterdvSGI", _wrap_glCullParameterdvSGI, 1 }, - { "glUnlockArraysSGI", _wrap_glUnlockArraysSGI, 1 }, - { "glLockArraysSGI", _wrap_glLockArraysSGI, 1 }, - { "glGetColorTavleParameterivEXT", _wrap_glGetColorTavleParameterivEXT, 1 }, - { "glGetColorTableParamaterfvEXT", _wrap_glGetColorTableParamaterfvEXT, 1 }, - { "glGetColorTableEXT", _wrap_glGetColorTableEXT, 1 }, - { "glCopyColorTableEXT", _wrap_glCopyColorTableEXT, 1 }, - { "glColorTableEXT", _wrap_glColorTableEXT, 1 }, - { "glColorSubtableEXT", _wrap_glColorSubtableEXT, 1 }, - { "glVertexPointerEXT", _wrap_glVertexPointerEXT, 1 }, - { "glTexCoordPointerEXT", _wrap_glTexCoordPointerEXT, 1 }, - { "glNormalPointerEXT", _wrap_glNormalPointerEXT, 1 }, - { "glIndexPointerEXT", _wrap_glIndexPointerEXT, 1 }, - { "glGetPointervEXT", _wrap_glGetPointervEXT, 1 }, - { "glEdgeFlagPointerEXT", _wrap_glEdgeFlagPointerEXT, 1 }, - { "glDrawArraysEXT", _wrap_glDrawArraysEXT, 1 }, - { "glColorPointerEXT", _wrap_glColorPointerEXT, 1 }, - { "glArrayElementEXT", _wrap_glArrayElementEXT, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initglcanvasc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("glcanvasc", glcanvascMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"GL_2D", PyInt_FromLong((long) GL_2D)); - PyDict_SetItemString(d,"GL_2_BYTES", PyInt_FromLong((long) GL_2_BYTES)); - PyDict_SetItemString(d,"GL_3D", PyInt_FromLong((long) GL_3D)); - PyDict_SetItemString(d,"GL_3D_COLOR", PyInt_FromLong((long) GL_3D_COLOR)); - PyDict_SetItemString(d,"GL_3D_COLOR_TEXTURE", PyInt_FromLong((long) GL_3D_COLOR_TEXTURE)); - PyDict_SetItemString(d,"GL_3_BYTES", PyInt_FromLong((long) GL_3_BYTES)); - PyDict_SetItemString(d,"GL_4D_COLOR_TEXTURE", PyInt_FromLong((long) GL_4D_COLOR_TEXTURE)); - PyDict_SetItemString(d,"GL_4_BYTES", PyInt_FromLong((long) GL_4_BYTES)); - PyDict_SetItemString(d,"GL_ACCUM", PyInt_FromLong((long) GL_ACCUM)); - PyDict_SetItemString(d,"GL_ACCUM_ALPHA_BITS", PyInt_FromLong((long) GL_ACCUM_ALPHA_BITS)); - PyDict_SetItemString(d,"GL_ACCUM_BLUE_BITS", PyInt_FromLong((long) GL_ACCUM_BLUE_BITS)); - PyDict_SetItemString(d,"GL_ACCUM_BUFFER_BIT", PyInt_FromLong((long) GL_ACCUM_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_ACCUM_CLEAR_VALUE", PyInt_FromLong((long) GL_ACCUM_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_ACCUM_GREEN_BITS", PyInt_FromLong((long) GL_ACCUM_GREEN_BITS)); - PyDict_SetItemString(d,"GL_ACCUM_RED_BITS", PyInt_FromLong((long) GL_ACCUM_RED_BITS)); - PyDict_SetItemString(d,"GL_ADD", PyInt_FromLong((long) GL_ADD)); - PyDict_SetItemString(d,"GL_ALL_ATTRIB_BITS", PyInt_FromLong((long) GL_ALL_ATTRIB_BITS)); - PyDict_SetItemString(d,"GL_ALPHA", PyInt_FromLong((long) GL_ALPHA)); - PyDict_SetItemString(d,"GL_ALPHA12", PyInt_FromLong((long) GL_ALPHA12)); - PyDict_SetItemString(d,"GL_ALPHA16", PyInt_FromLong((long) GL_ALPHA16)); - PyDict_SetItemString(d,"GL_ALPHA4", PyInt_FromLong((long) GL_ALPHA4)); - PyDict_SetItemString(d,"GL_ALPHA8", PyInt_FromLong((long) GL_ALPHA8)); - PyDict_SetItemString(d,"GL_ALPHA_BIAS", PyInt_FromLong((long) GL_ALPHA_BIAS)); - PyDict_SetItemString(d,"GL_ALPHA_BITS", PyInt_FromLong((long) GL_ALPHA_BITS)); - PyDict_SetItemString(d,"GL_ALPHA_SCALE", PyInt_FromLong((long) GL_ALPHA_SCALE)); - PyDict_SetItemString(d,"GL_ALPHA_TEST", PyInt_FromLong((long) GL_ALPHA_TEST)); - PyDict_SetItemString(d,"GL_ALPHA_TEST_FUNC", PyInt_FromLong((long) GL_ALPHA_TEST_FUNC)); - PyDict_SetItemString(d,"GL_ALPHA_TEST_REF", PyInt_FromLong((long) GL_ALPHA_TEST_REF)); - PyDict_SetItemString(d,"GL_ALWAYS", PyInt_FromLong((long) GL_ALWAYS)); - PyDict_SetItemString(d,"GL_AMBIENT", PyInt_FromLong((long) GL_AMBIENT)); - PyDict_SetItemString(d,"GL_AMBIENT_AND_DIFFUSE", PyInt_FromLong((long) GL_AMBIENT_AND_DIFFUSE)); - PyDict_SetItemString(d,"GL_AND", PyInt_FromLong((long) GL_AND)); - PyDict_SetItemString(d,"GL_AND_INVERTED", PyInt_FromLong((long) GL_AND_INVERTED)); - PyDict_SetItemString(d,"GL_AND_REVERSE", PyInt_FromLong((long) GL_AND_REVERSE)); - PyDict_SetItemString(d,"GL_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_AUTO_NORMAL", PyInt_FromLong((long) GL_AUTO_NORMAL)); - PyDict_SetItemString(d,"GL_AUX0", PyInt_FromLong((long) GL_AUX0)); - PyDict_SetItemString(d,"GL_AUX1", PyInt_FromLong((long) GL_AUX1)); - PyDict_SetItemString(d,"GL_AUX2", PyInt_FromLong((long) GL_AUX2)); - PyDict_SetItemString(d,"GL_AUX3", PyInt_FromLong((long) GL_AUX3)); - PyDict_SetItemString(d,"GL_AUX_BUFFERS", PyInt_FromLong((long) GL_AUX_BUFFERS)); - PyDict_SetItemString(d,"GL_BACK", PyInt_FromLong((long) GL_BACK)); - PyDict_SetItemString(d,"GL_BACK_LEFT", PyInt_FromLong((long) GL_BACK_LEFT)); - PyDict_SetItemString(d,"GL_BACK_RIGHT", PyInt_FromLong((long) GL_BACK_RIGHT)); - PyDict_SetItemString(d,"GL_BGRA_EXT", PyInt_FromLong((long) GL_BGRA_EXT)); - PyDict_SetItemString(d,"GL_BGR_EXT", PyInt_FromLong((long) GL_BGR_EXT)); - PyDict_SetItemString(d,"GL_BITMAP", PyInt_FromLong((long) GL_BITMAP)); - PyDict_SetItemString(d,"GL_BITMAP_TOKEN", PyInt_FromLong((long) GL_BITMAP_TOKEN)); - PyDict_SetItemString(d,"GL_BLEND", PyInt_FromLong((long) GL_BLEND)); - PyDict_SetItemString(d,"GL_BLEND_DST", PyInt_FromLong((long) GL_BLEND_DST)); - PyDict_SetItemString(d,"GL_BLEND_SRC", PyInt_FromLong((long) GL_BLEND_SRC)); - PyDict_SetItemString(d,"GL_BLUE", PyInt_FromLong((long) GL_BLUE)); - PyDict_SetItemString(d,"GL_BLUE_BIAS", PyInt_FromLong((long) GL_BLUE_BIAS)); - PyDict_SetItemString(d,"GL_BLUE_BITS", PyInt_FromLong((long) GL_BLUE_BITS)); - PyDict_SetItemString(d,"GL_BLUE_SCALE", PyInt_FromLong((long) GL_BLUE_SCALE)); - PyDict_SetItemString(d,"GL_BYTE", PyInt_FromLong((long) GL_BYTE)); - PyDict_SetItemString(d,"GL_C3F_V3F", PyInt_FromLong((long) GL_C3F_V3F)); - PyDict_SetItemString(d,"GL_C4F_N3F_V3F", PyInt_FromLong((long) GL_C4F_N3F_V3F)); - PyDict_SetItemString(d,"GL_C4UB_V2F", PyInt_FromLong((long) GL_C4UB_V2F)); - PyDict_SetItemString(d,"GL_C4UB_V3F", PyInt_FromLong((long) GL_C4UB_V3F)); - PyDict_SetItemString(d,"GL_CCW", PyInt_FromLong((long) GL_CCW)); - PyDict_SetItemString(d,"GL_CLAMP", PyInt_FromLong((long) GL_CLAMP)); - PyDict_SetItemString(d,"GL_CLEAR", PyInt_FromLong((long) GL_CLEAR)); - PyDict_SetItemString(d,"GL_CLIENT_ALL_ATTRIB_BITS", PyInt_FromLong((long) GL_CLIENT_ALL_ATTRIB_BITS)); - PyDict_SetItemString(d,"GL_CLIENT_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_CLIENT_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_CLIENT_PIXEL_STORE_BIT", PyInt_FromLong((long) GL_CLIENT_PIXEL_STORE_BIT)); - PyDict_SetItemString(d,"GL_CLIENT_VERTEX_ARRAY_BIT", PyInt_FromLong((long) GL_CLIENT_VERTEX_ARRAY_BIT)); - PyDict_SetItemString(d,"GL_CLIP_PLANE0", PyInt_FromLong((long) GL_CLIP_PLANE0)); - PyDict_SetItemString(d,"GL_CLIP_PLANE1", PyInt_FromLong((long) GL_CLIP_PLANE1)); - PyDict_SetItemString(d,"GL_CLIP_PLANE2", PyInt_FromLong((long) GL_CLIP_PLANE2)); - PyDict_SetItemString(d,"GL_CLIP_PLANE3", PyInt_FromLong((long) GL_CLIP_PLANE3)); - PyDict_SetItemString(d,"GL_CLIP_PLANE4", PyInt_FromLong((long) GL_CLIP_PLANE4)); - PyDict_SetItemString(d,"GL_CLIP_PLANE5", PyInt_FromLong((long) GL_CLIP_PLANE5)); - PyDict_SetItemString(d,"GL_COEFF", PyInt_FromLong((long) GL_COEFF)); - PyDict_SetItemString(d,"GL_COLOR", PyInt_FromLong((long) GL_COLOR)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY", PyInt_FromLong((long) GL_COLOR_ARRAY)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_POINTER", PyInt_FromLong((long) GL_COLOR_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_SIZE", PyInt_FromLong((long) GL_COLOR_ARRAY_SIZE)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_STRIDE", PyInt_FromLong((long) GL_COLOR_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_TYPE", PyInt_FromLong((long) GL_COLOR_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_COLOR_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_COLOR_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_BUFFER_BIT", PyInt_FromLong((long) GL_COLOR_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_COLOR_CLEAR_VALUE", PyInt_FromLong((long) GL_COLOR_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_COLOR_INDEX", PyInt_FromLong((long) GL_COLOR_INDEX)); - PyDict_SetItemString(d,"GL_COLOR_INDEX12_EXT", PyInt_FromLong((long) GL_COLOR_INDEX12_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX16_EXT", PyInt_FromLong((long) GL_COLOR_INDEX16_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX1_EXT", PyInt_FromLong((long) GL_COLOR_INDEX1_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX2_EXT", PyInt_FromLong((long) GL_COLOR_INDEX2_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX4_EXT", PyInt_FromLong((long) GL_COLOR_INDEX4_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEX8_EXT", PyInt_FromLong((long) GL_COLOR_INDEX8_EXT)); - PyDict_SetItemString(d,"GL_COLOR_INDEXES", PyInt_FromLong((long) GL_COLOR_INDEXES)); - PyDict_SetItemString(d,"GL_COLOR_LOGIC_OP", PyInt_FromLong((long) GL_COLOR_LOGIC_OP)); - PyDict_SetItemString(d,"GL_COLOR_MATERIAL", PyInt_FromLong((long) GL_COLOR_MATERIAL)); - PyDict_SetItemString(d,"GL_COLOR_MATERIAL_FACE", PyInt_FromLong((long) GL_COLOR_MATERIAL_FACE)); - PyDict_SetItemString(d,"GL_COLOR_MATERIAL_PARAMETER", PyInt_FromLong((long) GL_COLOR_MATERIAL_PARAMETER)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_ALPHA_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_ALPHA_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_BLUE_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_BLUE_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_FORMAT_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_FORMAT_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_GREEN_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_GREEN_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_INTENSITY_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_INTENSITY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_LUMINANCE_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_LUMINANCE_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_RED_SIZE_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_RED_SIZE_EXT)); - PyDict_SetItemString(d,"GL_COLOR_TABLE_WIDTH_EXT", PyInt_FromLong((long) GL_COLOR_TABLE_WIDTH_EXT)); - PyDict_SetItemString(d,"GL_COLOR_WRITEMASK", PyInt_FromLong((long) GL_COLOR_WRITEMASK)); - PyDict_SetItemString(d,"GL_COMPILE", PyInt_FromLong((long) GL_COMPILE)); - PyDict_SetItemString(d,"GL_COMPILE_AND_EXECUTE", PyInt_FromLong((long) GL_COMPILE_AND_EXECUTE)); - PyDict_SetItemString(d,"GL_CONSTANT_ATTENUATION", PyInt_FromLong((long) GL_CONSTANT_ATTENUATION)); - PyDict_SetItemString(d,"GL_COPY", PyInt_FromLong((long) GL_COPY)); - PyDict_SetItemString(d,"GL_COPY_INVERTED", PyInt_FromLong((long) GL_COPY_INVERTED)); - PyDict_SetItemString(d,"GL_COPY_PIXEL_TOKEN", PyInt_FromLong((long) GL_COPY_PIXEL_TOKEN)); - PyDict_SetItemString(d,"GL_CULL_FACE", PyInt_FromLong((long) GL_CULL_FACE)); - PyDict_SetItemString(d,"GL_CULL_FACE_MODE", PyInt_FromLong((long) GL_CULL_FACE_MODE)); - PyDict_SetItemString(d,"GL_CURRENT_BIT", PyInt_FromLong((long) GL_CURRENT_BIT)); - PyDict_SetItemString(d,"GL_CURRENT_COLOR", PyInt_FromLong((long) GL_CURRENT_COLOR)); - PyDict_SetItemString(d,"GL_CURRENT_INDEX", PyInt_FromLong((long) GL_CURRENT_INDEX)); - PyDict_SetItemString(d,"GL_CURRENT_NORMAL", PyInt_FromLong((long) GL_CURRENT_NORMAL)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_COLOR", PyInt_FromLong((long) GL_CURRENT_RASTER_COLOR)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_DISTANCE", PyInt_FromLong((long) GL_CURRENT_RASTER_DISTANCE)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_INDEX", PyInt_FromLong((long) GL_CURRENT_RASTER_INDEX)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_POSITION", PyInt_FromLong((long) GL_CURRENT_RASTER_POSITION)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_POSITION_VALID", PyInt_FromLong((long) GL_CURRENT_RASTER_POSITION_VALID)); - PyDict_SetItemString(d,"GL_CURRENT_RASTER_TEXTURE_COORDS", PyInt_FromLong((long) GL_CURRENT_RASTER_TEXTURE_COORDS)); - PyDict_SetItemString(d,"GL_CURRENT_TEXTURE_COORDS", PyInt_FromLong((long) GL_CURRENT_TEXTURE_COORDS)); - PyDict_SetItemString(d,"GL_CW", PyInt_FromLong((long) GL_CW)); - PyDict_SetItemString(d,"GL_DECAL", PyInt_FromLong((long) GL_DECAL)); - PyDict_SetItemString(d,"GL_DECR", PyInt_FromLong((long) GL_DECR)); - PyDict_SetItemString(d,"GL_DEPTH", PyInt_FromLong((long) GL_DEPTH)); - PyDict_SetItemString(d,"GL_DEPTH_BIAS", PyInt_FromLong((long) GL_DEPTH_BIAS)); - PyDict_SetItemString(d,"GL_DEPTH_BITS", PyInt_FromLong((long) GL_DEPTH_BITS)); - PyDict_SetItemString(d,"GL_DEPTH_BUFFER_BIT", PyInt_FromLong((long) GL_DEPTH_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_DEPTH_CLEAR_VALUE", PyInt_FromLong((long) GL_DEPTH_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_DEPTH_COMPONENT", PyInt_FromLong((long) GL_DEPTH_COMPONENT)); - PyDict_SetItemString(d,"GL_DEPTH_FUNC", PyInt_FromLong((long) GL_DEPTH_FUNC)); - PyDict_SetItemString(d,"GL_DEPTH_RANGE", PyInt_FromLong((long) GL_DEPTH_RANGE)); - PyDict_SetItemString(d,"GL_DEPTH_SCALE", PyInt_FromLong((long) GL_DEPTH_SCALE)); - PyDict_SetItemString(d,"GL_DEPTH_TEST", PyInt_FromLong((long) GL_DEPTH_TEST)); - PyDict_SetItemString(d,"GL_DEPTH_WRITEMASK", PyInt_FromLong((long) GL_DEPTH_WRITEMASK)); - PyDict_SetItemString(d,"GL_DIFFUSE", PyInt_FromLong((long) GL_DIFFUSE)); - PyDict_SetItemString(d,"GL_DITHER", PyInt_FromLong((long) GL_DITHER)); - PyDict_SetItemString(d,"GL_DOMAIN", PyInt_FromLong((long) GL_DOMAIN)); - PyDict_SetItemString(d,"GL_DONT_CARE", PyInt_FromLong((long) GL_DONT_CARE)); - PyDict_SetItemString(d,"GL_DOUBLE", PyInt_FromLong((long) GL_DOUBLE)); - PyDict_SetItemString(d,"GL_DOUBLEBUFFER", PyInt_FromLong((long) GL_DOUBLEBUFFER)); - PyDict_SetItemString(d,"GL_DOUBLE_EXT", PyInt_FromLong((long) GL_DOUBLE_EXT)); - PyDict_SetItemString(d,"GL_DRAW_BUFFER", PyInt_FromLong((long) GL_DRAW_BUFFER)); - PyDict_SetItemString(d,"GL_DRAW_PIXEL_TOKEN", PyInt_FromLong((long) GL_DRAW_PIXEL_TOKEN)); - PyDict_SetItemString(d,"GL_DST_ALPHA", PyInt_FromLong((long) GL_DST_ALPHA)); - PyDict_SetItemString(d,"GL_DST_COLOR", PyInt_FromLong((long) GL_DST_COLOR)); - PyDict_SetItemString(d,"GL_EDGE_FLAG", PyInt_FromLong((long) GL_EDGE_FLAG)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_POINTER", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_STRIDE", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_EDGE_FLAG_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_EDGE_FLAG_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_EMISSION", PyInt_FromLong((long) GL_EMISSION)); - PyDict_SetItemString(d,"GL_ENABLE_BIT", PyInt_FromLong((long) GL_ENABLE_BIT)); - PyDict_SetItemString(d,"GL_EQUAL", PyInt_FromLong((long) GL_EQUAL)); - PyDict_SetItemString(d,"GL_EQUIV", PyInt_FromLong((long) GL_EQUIV)); - PyDict_SetItemString(d,"GL_EVAL_BIT", PyInt_FromLong((long) GL_EVAL_BIT)); - PyDict_SetItemString(d,"GL_EXP", PyInt_FromLong((long) GL_EXP)); - PyDict_SetItemString(d,"GL_EXP2", PyInt_FromLong((long) GL_EXP2)); - PyDict_SetItemString(d,"GL_EXTENSIONS", PyInt_FromLong((long) GL_EXTENSIONS)); - PyDict_SetItemString(d,"GL_EXT_bgra", PyInt_FromLong((long) GL_EXT_bgra)); - PyDict_SetItemString(d,"GL_EXT_paletted_texture", PyInt_FromLong((long) GL_EXT_paletted_texture)); - PyDict_SetItemString(d,"GL_EXT_vertex_array", PyInt_FromLong((long) GL_EXT_vertex_array)); - PyDict_SetItemString(d,"GL_EYE_LINEAR", PyInt_FromLong((long) GL_EYE_LINEAR)); - PyDict_SetItemString(d,"GL_EYE_PLANE", PyInt_FromLong((long) GL_EYE_PLANE)); - PyDict_SetItemString(d,"GL_FALSE", PyInt_FromLong((long) GL_FALSE)); - PyDict_SetItemString(d,"GL_FASTEST", PyInt_FromLong((long) GL_FASTEST)); - PyDict_SetItemString(d,"GL_FEEDBACK", PyInt_FromLong((long) GL_FEEDBACK)); - PyDict_SetItemString(d,"GL_FEEDBACK_BUFFER_POINTER", PyInt_FromLong((long) GL_FEEDBACK_BUFFER_POINTER)); - PyDict_SetItemString(d,"GL_FEEDBACK_BUFFER_SIZE", PyInt_FromLong((long) GL_FEEDBACK_BUFFER_SIZE)); - PyDict_SetItemString(d,"GL_FEEDBACK_BUFFER_TYPE", PyInt_FromLong((long) GL_FEEDBACK_BUFFER_TYPE)); - PyDict_SetItemString(d,"GL_FILL", PyInt_FromLong((long) GL_FILL)); - PyDict_SetItemString(d,"GL_FLAT", PyInt_FromLong((long) GL_FLAT)); - PyDict_SetItemString(d,"GL_FLOAT", PyInt_FromLong((long) GL_FLOAT)); - PyDict_SetItemString(d,"GL_FOG", PyInt_FromLong((long) GL_FOG)); - PyDict_SetItemString(d,"GL_FOG_BIT", PyInt_FromLong((long) GL_FOG_BIT)); - PyDict_SetItemString(d,"GL_FOG_COLOR", PyInt_FromLong((long) GL_FOG_COLOR)); - PyDict_SetItemString(d,"GL_FOG_DENSITY", PyInt_FromLong((long) GL_FOG_DENSITY)); - PyDict_SetItemString(d,"GL_FOG_END", PyInt_FromLong((long) GL_FOG_END)); - PyDict_SetItemString(d,"GL_FOG_HINT", PyInt_FromLong((long) GL_FOG_HINT)); - PyDict_SetItemString(d,"GL_FOG_INDEX", PyInt_FromLong((long) GL_FOG_INDEX)); - PyDict_SetItemString(d,"GL_FOG_MODE", PyInt_FromLong((long) GL_FOG_MODE)); - PyDict_SetItemString(d,"GL_FOG_START", PyInt_FromLong((long) GL_FOG_START)); - PyDict_SetItemString(d,"GL_FRONT", PyInt_FromLong((long) GL_FRONT)); - PyDict_SetItemString(d,"GL_FRONT_AND_BACK", PyInt_FromLong((long) GL_FRONT_AND_BACK)); - PyDict_SetItemString(d,"GL_FRONT_FACE", PyInt_FromLong((long) GL_FRONT_FACE)); - PyDict_SetItemString(d,"GL_FRONT_LEFT", PyInt_FromLong((long) GL_FRONT_LEFT)); - PyDict_SetItemString(d,"GL_FRONT_RIGHT", PyInt_FromLong((long) GL_FRONT_RIGHT)); - PyDict_SetItemString(d,"GL_GEQUAL", PyInt_FromLong((long) GL_GEQUAL)); - PyDict_SetItemString(d,"GL_GREATER", PyInt_FromLong((long) GL_GREATER)); - PyDict_SetItemString(d,"GL_GREEN", PyInt_FromLong((long) GL_GREEN)); - PyDict_SetItemString(d,"GL_GREEN_BIAS", PyInt_FromLong((long) GL_GREEN_BIAS)); - PyDict_SetItemString(d,"GL_GREEN_BITS", PyInt_FromLong((long) GL_GREEN_BITS)); - PyDict_SetItemString(d,"GL_GREEN_SCALE", PyInt_FromLong((long) GL_GREEN_SCALE)); - PyDict_SetItemString(d,"GL_HINT_BIT", PyInt_FromLong((long) GL_HINT_BIT)); - PyDict_SetItemString(d,"GL_INCR", PyInt_FromLong((long) GL_INCR)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY", PyInt_FromLong((long) GL_INDEX_ARRAY)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_POINTER", PyInt_FromLong((long) GL_INDEX_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_STRIDE", PyInt_FromLong((long) GL_INDEX_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_TYPE", PyInt_FromLong((long) GL_INDEX_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_INDEX_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_INDEX_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_INDEX_BITS", PyInt_FromLong((long) GL_INDEX_BITS)); - PyDict_SetItemString(d,"GL_INDEX_CLEAR_VALUE", PyInt_FromLong((long) GL_INDEX_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_INDEX_LOGIC_OP", PyInt_FromLong((long) GL_INDEX_LOGIC_OP)); - PyDict_SetItemString(d,"GL_INDEX_MODE", PyInt_FromLong((long) GL_INDEX_MODE)); - PyDict_SetItemString(d,"GL_INDEX_OFFSET", PyInt_FromLong((long) GL_INDEX_OFFSET)); - PyDict_SetItemString(d,"GL_INDEX_SHIFT", PyInt_FromLong((long) GL_INDEX_SHIFT)); - PyDict_SetItemString(d,"GL_INDEX_WRITEMASK", PyInt_FromLong((long) GL_INDEX_WRITEMASK)); - PyDict_SetItemString(d,"GL_INT", PyInt_FromLong((long) GL_INT)); - PyDict_SetItemString(d,"GL_INTENSITY", PyInt_FromLong((long) GL_INTENSITY)); - PyDict_SetItemString(d,"GL_INTENSITY12", PyInt_FromLong((long) GL_INTENSITY12)); - PyDict_SetItemString(d,"GL_INTENSITY16", PyInt_FromLong((long) GL_INTENSITY16)); - PyDict_SetItemString(d,"GL_INTENSITY4", PyInt_FromLong((long) GL_INTENSITY4)); - PyDict_SetItemString(d,"GL_INTENSITY8", PyInt_FromLong((long) GL_INTENSITY8)); - PyDict_SetItemString(d,"GL_INVALID_ENUM", PyInt_FromLong((long) GL_INVALID_ENUM)); - PyDict_SetItemString(d,"GL_INVALID_OPERATION", PyInt_FromLong((long) GL_INVALID_OPERATION)); - PyDict_SetItemString(d,"GL_INVALID_VALUE", PyInt_FromLong((long) GL_INVALID_VALUE)); - PyDict_SetItemString(d,"GL_INVERT", PyInt_FromLong((long) GL_INVERT)); - PyDict_SetItemString(d,"GL_KEEP", PyInt_FromLong((long) GL_KEEP)); - PyDict_SetItemString(d,"GL_LEFT", PyInt_FromLong((long) GL_LEFT)); - PyDict_SetItemString(d,"GL_LEQUAL", PyInt_FromLong((long) GL_LEQUAL)); - PyDict_SetItemString(d,"GL_LESS", PyInt_FromLong((long) GL_LESS)); - PyDict_SetItemString(d,"GL_LIGHT0", PyInt_FromLong((long) GL_LIGHT0)); - PyDict_SetItemString(d,"GL_LIGHT1", PyInt_FromLong((long) GL_LIGHT1)); - PyDict_SetItemString(d,"GL_LIGHT2", PyInt_FromLong((long) GL_LIGHT2)); - PyDict_SetItemString(d,"GL_LIGHT3", PyInt_FromLong((long) GL_LIGHT3)); - PyDict_SetItemString(d,"GL_LIGHT4", PyInt_FromLong((long) GL_LIGHT4)); - PyDict_SetItemString(d,"GL_LIGHT5", PyInt_FromLong((long) GL_LIGHT5)); - PyDict_SetItemString(d,"GL_LIGHT6", PyInt_FromLong((long) GL_LIGHT6)); - PyDict_SetItemString(d,"GL_LIGHT7", PyInt_FromLong((long) GL_LIGHT7)); - PyDict_SetItemString(d,"GL_LIGHTING", PyInt_FromLong((long) GL_LIGHTING)); - PyDict_SetItemString(d,"GL_LIGHTING_BIT", PyInt_FromLong((long) GL_LIGHTING_BIT)); - PyDict_SetItemString(d,"GL_LIGHT_MODEL_AMBIENT", PyInt_FromLong((long) GL_LIGHT_MODEL_AMBIENT)); - PyDict_SetItemString(d,"GL_LIGHT_MODEL_LOCAL_VIEWER", PyInt_FromLong((long) GL_LIGHT_MODEL_LOCAL_VIEWER)); - PyDict_SetItemString(d,"GL_LIGHT_MODEL_TWO_SIDE", PyInt_FromLong((long) GL_LIGHT_MODEL_TWO_SIDE)); - PyDict_SetItemString(d,"GL_LINE", PyInt_FromLong((long) GL_LINE)); - PyDict_SetItemString(d,"GL_LINEAR", PyInt_FromLong((long) GL_LINEAR)); - PyDict_SetItemString(d,"GL_LINEAR_ATTENUATION", PyInt_FromLong((long) GL_LINEAR_ATTENUATION)); - PyDict_SetItemString(d,"GL_LINEAR_MIPMAP_LINEAR", PyInt_FromLong((long) GL_LINEAR_MIPMAP_LINEAR)); - PyDict_SetItemString(d,"GL_LINEAR_MIPMAP_NEAREST", PyInt_FromLong((long) GL_LINEAR_MIPMAP_NEAREST)); - PyDict_SetItemString(d,"GL_LINES", PyInt_FromLong((long) GL_LINES)); - PyDict_SetItemString(d,"GL_LINE_BIT", PyInt_FromLong((long) GL_LINE_BIT)); - PyDict_SetItemString(d,"GL_LINE_LOOP", PyInt_FromLong((long) GL_LINE_LOOP)); - PyDict_SetItemString(d,"GL_LINE_RESET_TOKEN", PyInt_FromLong((long) GL_LINE_RESET_TOKEN)); - PyDict_SetItemString(d,"GL_LINE_SMOOTH", PyInt_FromLong((long) GL_LINE_SMOOTH)); - PyDict_SetItemString(d,"GL_LINE_SMOOTH_HINT", PyInt_FromLong((long) GL_LINE_SMOOTH_HINT)); - PyDict_SetItemString(d,"GL_LINE_STIPPLE", PyInt_FromLong((long) GL_LINE_STIPPLE)); - PyDict_SetItemString(d,"GL_LINE_STIPPLE_PATTERN", PyInt_FromLong((long) GL_LINE_STIPPLE_PATTERN)); - PyDict_SetItemString(d,"GL_LINE_STIPPLE_REPEAT", PyInt_FromLong((long) GL_LINE_STIPPLE_REPEAT)); - PyDict_SetItemString(d,"GL_LINE_STRIP", PyInt_FromLong((long) GL_LINE_STRIP)); - PyDict_SetItemString(d,"GL_LINE_TOKEN", PyInt_FromLong((long) GL_LINE_TOKEN)); - PyDict_SetItemString(d,"GL_LINE_WIDTH", PyInt_FromLong((long) GL_LINE_WIDTH)); - PyDict_SetItemString(d,"GL_LINE_WIDTH_GRANULARITY", PyInt_FromLong((long) GL_LINE_WIDTH_GRANULARITY)); - PyDict_SetItemString(d,"GL_LINE_WIDTH_RANGE", PyInt_FromLong((long) GL_LINE_WIDTH_RANGE)); - PyDict_SetItemString(d,"GL_LIST_BASE", PyInt_FromLong((long) GL_LIST_BASE)); - PyDict_SetItemString(d,"GL_LIST_BIT", PyInt_FromLong((long) GL_LIST_BIT)); - PyDict_SetItemString(d,"GL_LIST_INDEX", PyInt_FromLong((long) GL_LIST_INDEX)); - PyDict_SetItemString(d,"GL_LIST_MODE", PyInt_FromLong((long) GL_LIST_MODE)); - PyDict_SetItemString(d,"GL_LOAD", PyInt_FromLong((long) GL_LOAD)); - PyDict_SetItemString(d,"GL_LOGIC_OP", PyInt_FromLong((long) GL_LOGIC_OP)); - PyDict_SetItemString(d,"GL_LOGIC_OP_MODE", PyInt_FromLong((long) GL_LOGIC_OP_MODE)); - PyDict_SetItemString(d,"GL_LUMINANCE", PyInt_FromLong((long) GL_LUMINANCE)); - PyDict_SetItemString(d,"GL_LUMINANCE12", PyInt_FromLong((long) GL_LUMINANCE12)); - PyDict_SetItemString(d,"GL_LUMINANCE12_ALPHA12", PyInt_FromLong((long) GL_LUMINANCE12_ALPHA12)); - PyDict_SetItemString(d,"GL_LUMINANCE12_ALPHA4", PyInt_FromLong((long) GL_LUMINANCE12_ALPHA4)); - PyDict_SetItemString(d,"GL_LUMINANCE16", PyInt_FromLong((long) GL_LUMINANCE16)); - PyDict_SetItemString(d,"GL_LUMINANCE16_ALPHA16", PyInt_FromLong((long) GL_LUMINANCE16_ALPHA16)); - PyDict_SetItemString(d,"GL_LUMINANCE4", PyInt_FromLong((long) GL_LUMINANCE4)); - PyDict_SetItemString(d,"GL_LUMINANCE4_ALPHA4", PyInt_FromLong((long) GL_LUMINANCE4_ALPHA4)); - PyDict_SetItemString(d,"GL_LUMINANCE6_ALPHA2", PyInt_FromLong((long) GL_LUMINANCE6_ALPHA2)); - PyDict_SetItemString(d,"GL_LUMINANCE8", PyInt_FromLong((long) GL_LUMINANCE8)); - PyDict_SetItemString(d,"GL_LUMINANCE8_ALPHA8", PyInt_FromLong((long) GL_LUMINANCE8_ALPHA8)); - PyDict_SetItemString(d,"GL_LUMINANCE_ALPHA", PyInt_FromLong((long) GL_LUMINANCE_ALPHA)); - PyDict_SetItemString(d,"GL_MAP1_COLOR_4", PyInt_FromLong((long) GL_MAP1_COLOR_4)); - PyDict_SetItemString(d,"GL_MAP1_GRID_DOMAIN", PyInt_FromLong((long) GL_MAP1_GRID_DOMAIN)); - PyDict_SetItemString(d,"GL_MAP1_GRID_SEGMENTS", PyInt_FromLong((long) GL_MAP1_GRID_SEGMENTS)); - PyDict_SetItemString(d,"GL_MAP1_INDEX", PyInt_FromLong((long) GL_MAP1_INDEX)); - PyDict_SetItemString(d,"GL_MAP1_NORMAL", PyInt_FromLong((long) GL_MAP1_NORMAL)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_1", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_1)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_2", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_2)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_3", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_3)); - PyDict_SetItemString(d,"GL_MAP1_TEXTURE_COORD_4", PyInt_FromLong((long) GL_MAP1_TEXTURE_COORD_4)); - PyDict_SetItemString(d,"GL_MAP1_VERTEX_3", PyInt_FromLong((long) GL_MAP1_VERTEX_3)); - PyDict_SetItemString(d,"GL_MAP1_VERTEX_4", PyInt_FromLong((long) GL_MAP1_VERTEX_4)); - PyDict_SetItemString(d,"GL_MAP2_COLOR_4", PyInt_FromLong((long) GL_MAP2_COLOR_4)); - PyDict_SetItemString(d,"GL_MAP2_GRID_DOMAIN", PyInt_FromLong((long) GL_MAP2_GRID_DOMAIN)); - PyDict_SetItemString(d,"GL_MAP2_GRID_SEGMENTS", PyInt_FromLong((long) GL_MAP2_GRID_SEGMENTS)); - PyDict_SetItemString(d,"GL_MAP2_INDEX", PyInt_FromLong((long) GL_MAP2_INDEX)); - PyDict_SetItemString(d,"GL_MAP2_NORMAL", PyInt_FromLong((long) GL_MAP2_NORMAL)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_1", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_1)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_2", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_2)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_3", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_3)); - PyDict_SetItemString(d,"GL_MAP2_TEXTURE_COORD_4", PyInt_FromLong((long) GL_MAP2_TEXTURE_COORD_4)); - PyDict_SetItemString(d,"GL_MAP2_VERTEX_3", PyInt_FromLong((long) GL_MAP2_VERTEX_3)); - PyDict_SetItemString(d,"GL_MAP2_VERTEX_4", PyInt_FromLong((long) GL_MAP2_VERTEX_4)); - PyDict_SetItemString(d,"GL_MAP_COLOR", PyInt_FromLong((long) GL_MAP_COLOR)); - PyDict_SetItemString(d,"GL_MAP_STENCIL", PyInt_FromLong((long) GL_MAP_STENCIL)); - PyDict_SetItemString(d,"GL_MATRIX_MODE", PyInt_FromLong((long) GL_MATRIX_MODE)); - PyDict_SetItemString(d,"GL_MAX_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_CLIENT_ATTRIB_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_CLIP_PLANES", PyInt_FromLong((long) GL_MAX_CLIP_PLANES)); - PyDict_SetItemString(d,"GL_MAX_EVAL_ORDER", PyInt_FromLong((long) GL_MAX_EVAL_ORDER)); - PyDict_SetItemString(d,"GL_MAX_LIGHTS", PyInt_FromLong((long) GL_MAX_LIGHTS)); - PyDict_SetItemString(d,"GL_MAX_LIST_NESTING", PyInt_FromLong((long) GL_MAX_LIST_NESTING)); - PyDict_SetItemString(d,"GL_MAX_MODELVIEW_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_MODELVIEW_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_NAME_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_NAME_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_PIXEL_MAP_TABLE", PyInt_FromLong((long) GL_MAX_PIXEL_MAP_TABLE)); - PyDict_SetItemString(d,"GL_MAX_PROJECTION_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_PROJECTION_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_TEXTURE_SIZE", PyInt_FromLong((long) GL_MAX_TEXTURE_SIZE)); - PyDict_SetItemString(d,"GL_MAX_TEXTURE_STACK_DEPTH", PyInt_FromLong((long) GL_MAX_TEXTURE_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MAX_VIEWPORT_DIMS", PyInt_FromLong((long) GL_MAX_VIEWPORT_DIMS)); - PyDict_SetItemString(d,"GL_MODELVIEW", PyInt_FromLong((long) GL_MODELVIEW)); - PyDict_SetItemString(d,"GL_MODELVIEW_MATRIX", PyInt_FromLong((long) GL_MODELVIEW_MATRIX)); - PyDict_SetItemString(d,"GL_MODELVIEW_STACK_DEPTH", PyInt_FromLong((long) GL_MODELVIEW_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_MODULATE", PyInt_FromLong((long) GL_MODULATE)); - PyDict_SetItemString(d,"GL_MULT", PyInt_FromLong((long) GL_MULT)); - PyDict_SetItemString(d,"GL_N3F_V3F", PyInt_FromLong((long) GL_N3F_V3F)); - PyDict_SetItemString(d,"GL_NAME_STACK_DEPTH", PyInt_FromLong((long) GL_NAME_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_NAND", PyInt_FromLong((long) GL_NAND)); - PyDict_SetItemString(d,"GL_NEAREST", PyInt_FromLong((long) GL_NEAREST)); - PyDict_SetItemString(d,"GL_NEAREST_MIPMAP_LINEAR", PyInt_FromLong((long) GL_NEAREST_MIPMAP_LINEAR)); - PyDict_SetItemString(d,"GL_NEAREST_MIPMAP_NEAREST", PyInt_FromLong((long) GL_NEAREST_MIPMAP_NEAREST)); - PyDict_SetItemString(d,"GL_NEVER", PyInt_FromLong((long) GL_NEVER)); - PyDict_SetItemString(d,"GL_NICEST", PyInt_FromLong((long) GL_NICEST)); - PyDict_SetItemString(d,"GL_NONE", PyInt_FromLong((long) GL_NONE)); - PyDict_SetItemString(d,"GL_NOOP", PyInt_FromLong((long) GL_NOOP)); - PyDict_SetItemString(d,"GL_NOR", PyInt_FromLong((long) GL_NOR)); - PyDict_SetItemString(d,"GL_NORMALIZE", PyInt_FromLong((long) GL_NORMALIZE)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY", PyInt_FromLong((long) GL_NORMAL_ARRAY)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_POINTER", PyInt_FromLong((long) GL_NORMAL_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_STRIDE", PyInt_FromLong((long) GL_NORMAL_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_TYPE", PyInt_FromLong((long) GL_NORMAL_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_NORMAL_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_NORMAL_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_NOTEQUAL", PyInt_FromLong((long) GL_NOTEQUAL)); - PyDict_SetItemString(d,"GL_NO_ERROR", PyInt_FromLong((long) GL_NO_ERROR)); - PyDict_SetItemString(d,"GL_OBJECT_LINEAR", PyInt_FromLong((long) GL_OBJECT_LINEAR)); - PyDict_SetItemString(d,"GL_OBJECT_PLANE", PyInt_FromLong((long) GL_OBJECT_PLANE)); - PyDict_SetItemString(d,"GL_ONE", PyInt_FromLong((long) GL_ONE)); - PyDict_SetItemString(d,"GL_ONE_MINUS_DST_ALPHA", PyInt_FromLong((long) GL_ONE_MINUS_DST_ALPHA)); - PyDict_SetItemString(d,"GL_ONE_MINUS_DST_COLOR", PyInt_FromLong((long) GL_ONE_MINUS_DST_COLOR)); - PyDict_SetItemString(d,"GL_ONE_MINUS_SRC_ALPHA", PyInt_FromLong((long) GL_ONE_MINUS_SRC_ALPHA)); - PyDict_SetItemString(d,"GL_ONE_MINUS_SRC_COLOR", PyInt_FromLong((long) GL_ONE_MINUS_SRC_COLOR)); - PyDict_SetItemString(d,"GL_OR", PyInt_FromLong((long) GL_OR)); - PyDict_SetItemString(d,"GL_ORDER", PyInt_FromLong((long) GL_ORDER)); - PyDict_SetItemString(d,"GL_OR_INVERTED", PyInt_FromLong((long) GL_OR_INVERTED)); - PyDict_SetItemString(d,"GL_OR_REVERSE", PyInt_FromLong((long) GL_OR_REVERSE)); - PyDict_SetItemString(d,"GL_OUT_OF_MEMORY", PyInt_FromLong((long) GL_OUT_OF_MEMORY)); - PyDict_SetItemString(d,"GL_PACK_ALIGNMENT", PyInt_FromLong((long) GL_PACK_ALIGNMENT)); - PyDict_SetItemString(d,"GL_PACK_LSB_FIRST", PyInt_FromLong((long) GL_PACK_LSB_FIRST)); - PyDict_SetItemString(d,"GL_PACK_ROW_LENGTH", PyInt_FromLong((long) GL_PACK_ROW_LENGTH)); - PyDict_SetItemString(d,"GL_PACK_SKIP_PIXELS", PyInt_FromLong((long) GL_PACK_SKIP_PIXELS)); - PyDict_SetItemString(d,"GL_PACK_SKIP_ROWS", PyInt_FromLong((long) GL_PACK_SKIP_ROWS)); - PyDict_SetItemString(d,"GL_PACK_SWAP_BYTES", PyInt_FromLong((long) GL_PACK_SWAP_BYTES)); - PyDict_SetItemString(d,"GL_PASS_THROUGH_TOKEN", PyInt_FromLong((long) GL_PASS_THROUGH_TOKEN)); - PyDict_SetItemString(d,"GL_PERSPECTIVE_CORRECTION_HINT", PyInt_FromLong((long) GL_PERSPECTIVE_CORRECTION_HINT)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_A_TO_A", PyInt_FromLong((long) GL_PIXEL_MAP_A_TO_A)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_A_TO_A_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_A_TO_A_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_B_TO_B", PyInt_FromLong((long) GL_PIXEL_MAP_B_TO_B)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_B_TO_B_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_B_TO_B_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_G_TO_G", PyInt_FromLong((long) GL_PIXEL_MAP_G_TO_G)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_G_TO_G_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_G_TO_G_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_A", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_A)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_A_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_A_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_B", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_B)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_B_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_B_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_G", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_G)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_G_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_G_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_I", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_I)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_I_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_I_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_R", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_R)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_I_TO_R_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_I_TO_R_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_R_TO_R", PyInt_FromLong((long) GL_PIXEL_MAP_R_TO_R)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_R_TO_R_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_R_TO_R_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_S_TO_S", PyInt_FromLong((long) GL_PIXEL_MAP_S_TO_S)); - PyDict_SetItemString(d,"GL_PIXEL_MAP_S_TO_S_SIZE", PyInt_FromLong((long) GL_PIXEL_MAP_S_TO_S_SIZE)); - PyDict_SetItemString(d,"GL_PIXEL_MODE_BIT", PyInt_FromLong((long) GL_PIXEL_MODE_BIT)); - PyDict_SetItemString(d,"GL_POINT", PyInt_FromLong((long) GL_POINT)); - PyDict_SetItemString(d,"GL_POINTS", PyInt_FromLong((long) GL_POINTS)); - PyDict_SetItemString(d,"GL_POINT_BIT", PyInt_FromLong((long) GL_POINT_BIT)); - PyDict_SetItemString(d,"GL_POINT_SIZE", PyInt_FromLong((long) GL_POINT_SIZE)); - PyDict_SetItemString(d,"GL_POINT_SIZE_GRANULARITY", PyInt_FromLong((long) GL_POINT_SIZE_GRANULARITY)); - PyDict_SetItemString(d,"GL_POINT_SIZE_RANGE", PyInt_FromLong((long) GL_POINT_SIZE_RANGE)); - PyDict_SetItemString(d,"GL_POINT_SMOOTH", PyInt_FromLong((long) GL_POINT_SMOOTH)); - PyDict_SetItemString(d,"GL_POINT_SMOOTH_HINT", PyInt_FromLong((long) GL_POINT_SMOOTH_HINT)); - PyDict_SetItemString(d,"GL_POINT_TOKEN", PyInt_FromLong((long) GL_POINT_TOKEN)); - PyDict_SetItemString(d,"GL_POLYGON", PyInt_FromLong((long) GL_POLYGON)); - PyDict_SetItemString(d,"GL_POLYGON_BIT", PyInt_FromLong((long) GL_POLYGON_BIT)); - PyDict_SetItemString(d,"GL_POLYGON_MODE", PyInt_FromLong((long) GL_POLYGON_MODE)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_FACTOR", PyInt_FromLong((long) GL_POLYGON_OFFSET_FACTOR)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_FILL", PyInt_FromLong((long) GL_POLYGON_OFFSET_FILL)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_LINE", PyInt_FromLong((long) GL_POLYGON_OFFSET_LINE)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_POINT", PyInt_FromLong((long) GL_POLYGON_OFFSET_POINT)); - PyDict_SetItemString(d,"GL_POLYGON_OFFSET_UNITS", PyInt_FromLong((long) GL_POLYGON_OFFSET_UNITS)); - PyDict_SetItemString(d,"GL_POLYGON_SMOOTH", PyInt_FromLong((long) GL_POLYGON_SMOOTH)); - PyDict_SetItemString(d,"GL_POLYGON_SMOOTH_HINT", PyInt_FromLong((long) GL_POLYGON_SMOOTH_HINT)); - PyDict_SetItemString(d,"GL_POLYGON_STIPPLE", PyInt_FromLong((long) GL_POLYGON_STIPPLE)); - PyDict_SetItemString(d,"GL_POLYGON_STIPPLE_BIT", PyInt_FromLong((long) GL_POLYGON_STIPPLE_BIT)); - PyDict_SetItemString(d,"GL_POLYGON_TOKEN", PyInt_FromLong((long) GL_POLYGON_TOKEN)); - PyDict_SetItemString(d,"GL_POSITION", PyInt_FromLong((long) GL_POSITION)); - PyDict_SetItemString(d,"GL_PROJECTION", PyInt_FromLong((long) GL_PROJECTION)); - PyDict_SetItemString(d,"GL_PROJECTION_MATRIX", PyInt_FromLong((long) GL_PROJECTION_MATRIX)); - PyDict_SetItemString(d,"GL_PROJECTION_STACK_DEPTH", PyInt_FromLong((long) GL_PROJECTION_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_PROXY_TEXTURE_1D", PyInt_FromLong((long) GL_PROXY_TEXTURE_1D)); - PyDict_SetItemString(d,"GL_PROXY_TEXTURE_2D", PyInt_FromLong((long) GL_PROXY_TEXTURE_2D)); - PyDict_SetItemString(d,"GL_Q", PyInt_FromLong((long) GL_Q)); - PyDict_SetItemString(d,"GL_QUADRATIC_ATTENUATION", PyInt_FromLong((long) GL_QUADRATIC_ATTENUATION)); - PyDict_SetItemString(d,"GL_QUADS", PyInt_FromLong((long) GL_QUADS)); - PyDict_SetItemString(d,"GL_QUAD_STRIP", PyInt_FromLong((long) GL_QUAD_STRIP)); - PyDict_SetItemString(d,"GL_R", PyInt_FromLong((long) GL_R)); - PyDict_SetItemString(d,"GL_R3_G3_B2", PyInt_FromLong((long) GL_R3_G3_B2)); - PyDict_SetItemString(d,"GL_READ_BUFFER", PyInt_FromLong((long) GL_READ_BUFFER)); - PyDict_SetItemString(d,"GL_RED", PyInt_FromLong((long) GL_RED)); - PyDict_SetItemString(d,"GL_RED_BIAS", PyInt_FromLong((long) GL_RED_BIAS)); - PyDict_SetItemString(d,"GL_RED_BITS", PyInt_FromLong((long) GL_RED_BITS)); - PyDict_SetItemString(d,"GL_RED_SCALE", PyInt_FromLong((long) GL_RED_SCALE)); - PyDict_SetItemString(d,"GL_RENDER", PyInt_FromLong((long) GL_RENDER)); - PyDict_SetItemString(d,"GL_RENDERER", PyInt_FromLong((long) GL_RENDERER)); - PyDict_SetItemString(d,"GL_RENDER_MODE", PyInt_FromLong((long) GL_RENDER_MODE)); - PyDict_SetItemString(d,"GL_REPEAT", PyInt_FromLong((long) GL_REPEAT)); - PyDict_SetItemString(d,"GL_REPLACE", PyInt_FromLong((long) GL_REPLACE)); - PyDict_SetItemString(d,"GL_RETURN", PyInt_FromLong((long) GL_RETURN)); - PyDict_SetItemString(d,"GL_RGB", PyInt_FromLong((long) GL_RGB)); - PyDict_SetItemString(d,"GL_RGB10", PyInt_FromLong((long) GL_RGB10)); - PyDict_SetItemString(d,"GL_RGB10_A2", PyInt_FromLong((long) GL_RGB10_A2)); - PyDict_SetItemString(d,"GL_RGB12", PyInt_FromLong((long) GL_RGB12)); - PyDict_SetItemString(d,"GL_RGB16", PyInt_FromLong((long) GL_RGB16)); - PyDict_SetItemString(d,"GL_RGB4", PyInt_FromLong((long) GL_RGB4)); - PyDict_SetItemString(d,"GL_RGB5", PyInt_FromLong((long) GL_RGB5)); - PyDict_SetItemString(d,"GL_RGB5_A1", PyInt_FromLong((long) GL_RGB5_A1)); - PyDict_SetItemString(d,"GL_RGB8", PyInt_FromLong((long) GL_RGB8)); - PyDict_SetItemString(d,"GL_RGBA", PyInt_FromLong((long) GL_RGBA)); - PyDict_SetItemString(d,"GL_RGBA12", PyInt_FromLong((long) GL_RGBA12)); - PyDict_SetItemString(d,"GL_RGBA16", PyInt_FromLong((long) GL_RGBA16)); - PyDict_SetItemString(d,"GL_RGBA2", PyInt_FromLong((long) GL_RGBA2)); - PyDict_SetItemString(d,"GL_RGBA4", PyInt_FromLong((long) GL_RGBA4)); - PyDict_SetItemString(d,"GL_RGBA8", PyInt_FromLong((long) GL_RGBA8)); - PyDict_SetItemString(d,"GL_RGBA_MODE", PyInt_FromLong((long) GL_RGBA_MODE)); - PyDict_SetItemString(d,"GL_RIGHT", PyInt_FromLong((long) GL_RIGHT)); - PyDict_SetItemString(d,"GL_S", PyInt_FromLong((long) GL_S)); - PyDict_SetItemString(d,"GL_SCISSOR_BIT", PyInt_FromLong((long) GL_SCISSOR_BIT)); - PyDict_SetItemString(d,"GL_SCISSOR_BOX", PyInt_FromLong((long) GL_SCISSOR_BOX)); - PyDict_SetItemString(d,"GL_SCISSOR_TEST", PyInt_FromLong((long) GL_SCISSOR_TEST)); - PyDict_SetItemString(d,"GL_SELECT", PyInt_FromLong((long) GL_SELECT)); - PyDict_SetItemString(d,"GL_SELECTION_BUFFER_POINTER", PyInt_FromLong((long) GL_SELECTION_BUFFER_POINTER)); - PyDict_SetItemString(d,"GL_SELECTION_BUFFER_SIZE", PyInt_FromLong((long) GL_SELECTION_BUFFER_SIZE)); - PyDict_SetItemString(d,"GL_SET", PyInt_FromLong((long) GL_SET)); - PyDict_SetItemString(d,"GL_SHADE_MODEL", PyInt_FromLong((long) GL_SHADE_MODEL)); - PyDict_SetItemString(d,"GL_SHININESS", PyInt_FromLong((long) GL_SHININESS)); - PyDict_SetItemString(d,"GL_SHORT", PyInt_FromLong((long) GL_SHORT)); - PyDict_SetItemString(d,"GL_SMOOTH", PyInt_FromLong((long) GL_SMOOTH)); - PyDict_SetItemString(d,"GL_SPECULAR", PyInt_FromLong((long) GL_SPECULAR)); - PyDict_SetItemString(d,"GL_SPHERE_MAP", PyInt_FromLong((long) GL_SPHERE_MAP)); - PyDict_SetItemString(d,"GL_SPOT_CUTOFF", PyInt_FromLong((long) GL_SPOT_CUTOFF)); - PyDict_SetItemString(d,"GL_SPOT_DIRECTION", PyInt_FromLong((long) GL_SPOT_DIRECTION)); - PyDict_SetItemString(d,"GL_SPOT_EXPONENT", PyInt_FromLong((long) GL_SPOT_EXPONENT)); - PyDict_SetItemString(d,"GL_SRC_ALPHA", PyInt_FromLong((long) GL_SRC_ALPHA)); - PyDict_SetItemString(d,"GL_SRC_ALPHA_SATURATE", PyInt_FromLong((long) GL_SRC_ALPHA_SATURATE)); - PyDict_SetItemString(d,"GL_SRC_COLOR", PyInt_FromLong((long) GL_SRC_COLOR)); - PyDict_SetItemString(d,"GL_STACK_OVERFLOW", PyInt_FromLong((long) GL_STACK_OVERFLOW)); - PyDict_SetItemString(d,"GL_STACK_UNDERFLOW", PyInt_FromLong((long) GL_STACK_UNDERFLOW)); - PyDict_SetItemString(d,"GL_STENCIL", PyInt_FromLong((long) GL_STENCIL)); - PyDict_SetItemString(d,"GL_STENCIL_BITS", PyInt_FromLong((long) GL_STENCIL_BITS)); - PyDict_SetItemString(d,"GL_STENCIL_BUFFER_BIT", PyInt_FromLong((long) GL_STENCIL_BUFFER_BIT)); - PyDict_SetItemString(d,"GL_STENCIL_CLEAR_VALUE", PyInt_FromLong((long) GL_STENCIL_CLEAR_VALUE)); - PyDict_SetItemString(d,"GL_STENCIL_FAIL", PyInt_FromLong((long) GL_STENCIL_FAIL)); - PyDict_SetItemString(d,"GL_STENCIL_FUNC", PyInt_FromLong((long) GL_STENCIL_FUNC)); - PyDict_SetItemString(d,"GL_STENCIL_INDEX", PyInt_FromLong((long) GL_STENCIL_INDEX)); - PyDict_SetItemString(d,"GL_STENCIL_PASS_DEPTH_FAIL", PyInt_FromLong((long) GL_STENCIL_PASS_DEPTH_FAIL)); - PyDict_SetItemString(d,"GL_STENCIL_PASS_DEPTH_PASS", PyInt_FromLong((long) GL_STENCIL_PASS_DEPTH_PASS)); - PyDict_SetItemString(d,"GL_STENCIL_REF", PyInt_FromLong((long) GL_STENCIL_REF)); - PyDict_SetItemString(d,"GL_STENCIL_TEST", PyInt_FromLong((long) GL_STENCIL_TEST)); - PyDict_SetItemString(d,"GL_STENCIL_VALUE_MASK", PyInt_FromLong((long) GL_STENCIL_VALUE_MASK)); - PyDict_SetItemString(d,"GL_STENCIL_WRITEMASK", PyInt_FromLong((long) GL_STENCIL_WRITEMASK)); - PyDict_SetItemString(d,"GL_STEREO", PyInt_FromLong((long) GL_STEREO)); - PyDict_SetItemString(d,"GL_SUBPIXEL_BITS", PyInt_FromLong((long) GL_SUBPIXEL_BITS)); - PyDict_SetItemString(d,"GL_T", PyInt_FromLong((long) GL_T)); - PyDict_SetItemString(d,"GL_T2F_C3F_V3F", PyInt_FromLong((long) GL_T2F_C3F_V3F)); - PyDict_SetItemString(d,"GL_T2F_C4F_N3F_V3F", PyInt_FromLong((long) GL_T2F_C4F_N3F_V3F)); - PyDict_SetItemString(d,"GL_T2F_C4UB_V3F", PyInt_FromLong((long) GL_T2F_C4UB_V3F)); - PyDict_SetItemString(d,"GL_T2F_N3F_V3F", PyInt_FromLong((long) GL_T2F_N3F_V3F)); - PyDict_SetItemString(d,"GL_T2F_V3F", PyInt_FromLong((long) GL_T2F_V3F)); - PyDict_SetItemString(d,"GL_T4F_C4F_N3F_V4F", PyInt_FromLong((long) GL_T4F_C4F_N3F_V4F)); - PyDict_SetItemString(d,"GL_T4F_V4F", PyInt_FromLong((long) GL_T4F_V4F)); - PyDict_SetItemString(d,"GL_TEXTURE", PyInt_FromLong((long) GL_TEXTURE)); - PyDict_SetItemString(d,"GL_TEXTURE_1D", PyInt_FromLong((long) GL_TEXTURE_1D)); - PyDict_SetItemString(d,"GL_TEXTURE_2D", PyInt_FromLong((long) GL_TEXTURE_2D)); - PyDict_SetItemString(d,"GL_TEXTURE_ALPHA_SIZE", PyInt_FromLong((long) GL_TEXTURE_ALPHA_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_BINDING_1D", PyInt_FromLong((long) GL_TEXTURE_BINDING_1D)); - PyDict_SetItemString(d,"GL_TEXTURE_BINDING_2D", PyInt_FromLong((long) GL_TEXTURE_BINDING_2D)); - PyDict_SetItemString(d,"GL_TEXTURE_BIT", PyInt_FromLong((long) GL_TEXTURE_BIT)); - PyDict_SetItemString(d,"GL_TEXTURE_BLUE_SIZE", PyInt_FromLong((long) GL_TEXTURE_BLUE_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_BORDER", PyInt_FromLong((long) GL_TEXTURE_BORDER)); - PyDict_SetItemString(d,"GL_TEXTURE_BORDER_COLOR", PyInt_FromLong((long) GL_TEXTURE_BORDER_COLOR)); - PyDict_SetItemString(d,"GL_TEXTURE_COMPONENTS", PyInt_FromLong((long) GL_TEXTURE_COMPONENTS)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_POINTER", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_SIZE", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_SIZE_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_STRIDE", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_TYPE", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_TEXTURE_COORD_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_TEXTURE_COORD_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_TEXTURE_ENV", PyInt_FromLong((long) GL_TEXTURE_ENV)); - PyDict_SetItemString(d,"GL_TEXTURE_ENV_COLOR", PyInt_FromLong((long) GL_TEXTURE_ENV_COLOR)); - PyDict_SetItemString(d,"GL_TEXTURE_ENV_MODE", PyInt_FromLong((long) GL_TEXTURE_ENV_MODE)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_MODE", PyInt_FromLong((long) GL_TEXTURE_GEN_MODE)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_Q", PyInt_FromLong((long) GL_TEXTURE_GEN_Q)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_R", PyInt_FromLong((long) GL_TEXTURE_GEN_R)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_S", PyInt_FromLong((long) GL_TEXTURE_GEN_S)); - PyDict_SetItemString(d,"GL_TEXTURE_GEN_T", PyInt_FromLong((long) GL_TEXTURE_GEN_T)); - PyDict_SetItemString(d,"GL_TEXTURE_GREEN_SIZE", PyInt_FromLong((long) GL_TEXTURE_GREEN_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_HEIGHT", PyInt_FromLong((long) GL_TEXTURE_HEIGHT)); - PyDict_SetItemString(d,"GL_TEXTURE_INTENSITY_SIZE", PyInt_FromLong((long) GL_TEXTURE_INTENSITY_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_INTERNAL_FORMAT", PyInt_FromLong((long) GL_TEXTURE_INTERNAL_FORMAT)); - PyDict_SetItemString(d,"GL_TEXTURE_LUMINANCE_SIZE", PyInt_FromLong((long) GL_TEXTURE_LUMINANCE_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_MAG_FILTER", PyInt_FromLong((long) GL_TEXTURE_MAG_FILTER)); - PyDict_SetItemString(d,"GL_TEXTURE_MATRIX", PyInt_FromLong((long) GL_TEXTURE_MATRIX)); - PyDict_SetItemString(d,"GL_TEXTURE_MIN_FILTER", PyInt_FromLong((long) GL_TEXTURE_MIN_FILTER)); - PyDict_SetItemString(d,"GL_TEXTURE_PRIORITY", PyInt_FromLong((long) GL_TEXTURE_PRIORITY)); - PyDict_SetItemString(d,"GL_TEXTURE_RED_SIZE", PyInt_FromLong((long) GL_TEXTURE_RED_SIZE)); - PyDict_SetItemString(d,"GL_TEXTURE_RESIDENT", PyInt_FromLong((long) GL_TEXTURE_RESIDENT)); - PyDict_SetItemString(d,"GL_TEXTURE_STACK_DEPTH", PyInt_FromLong((long) GL_TEXTURE_STACK_DEPTH)); - PyDict_SetItemString(d,"GL_TEXTURE_WIDTH", PyInt_FromLong((long) GL_TEXTURE_WIDTH)); - PyDict_SetItemString(d,"GL_TEXTURE_WRAP_S", PyInt_FromLong((long) GL_TEXTURE_WRAP_S)); - PyDict_SetItemString(d,"GL_TEXTURE_WRAP_T", PyInt_FromLong((long) GL_TEXTURE_WRAP_T)); - PyDict_SetItemString(d,"GL_TRANSFORM_BIT", PyInt_FromLong((long) GL_TRANSFORM_BIT)); - PyDict_SetItemString(d,"GL_TRIANGLES", PyInt_FromLong((long) GL_TRIANGLES)); - PyDict_SetItemString(d,"GL_TRIANGLE_FAN", PyInt_FromLong((long) GL_TRIANGLE_FAN)); - PyDict_SetItemString(d,"GL_TRIANGLE_STRIP", PyInt_FromLong((long) GL_TRIANGLE_STRIP)); - PyDict_SetItemString(d,"GL_TRUE", PyInt_FromLong((long) GL_TRUE)); - PyDict_SetItemString(d,"GL_UNPACK_ALIGNMENT", PyInt_FromLong((long) GL_UNPACK_ALIGNMENT)); - PyDict_SetItemString(d,"GL_UNPACK_LSB_FIRST", PyInt_FromLong((long) GL_UNPACK_LSB_FIRST)); - PyDict_SetItemString(d,"GL_UNPACK_ROW_LENGTH", PyInt_FromLong((long) GL_UNPACK_ROW_LENGTH)); - PyDict_SetItemString(d,"GL_UNPACK_SKIP_PIXELS", PyInt_FromLong((long) GL_UNPACK_SKIP_PIXELS)); - PyDict_SetItemString(d,"GL_UNPACK_SKIP_ROWS", PyInt_FromLong((long) GL_UNPACK_SKIP_ROWS)); - PyDict_SetItemString(d,"GL_UNPACK_SWAP_BYTES", PyInt_FromLong((long) GL_UNPACK_SWAP_BYTES)); - PyDict_SetItemString(d,"GL_UNSIGNED_BYTE", PyInt_FromLong((long) GL_UNSIGNED_BYTE)); - PyDict_SetItemString(d,"GL_UNSIGNED_INT", PyInt_FromLong((long) GL_UNSIGNED_INT)); - PyDict_SetItemString(d,"GL_UNSIGNED_SHORT", PyInt_FromLong((long) GL_UNSIGNED_SHORT)); - PyDict_SetItemString(d,"GL_V2F", PyInt_FromLong((long) GL_V2F)); - PyDict_SetItemString(d,"GL_V3F", PyInt_FromLong((long) GL_V3F)); - PyDict_SetItemString(d,"GL_VENDOR", PyInt_FromLong((long) GL_VENDOR)); - PyDict_SetItemString(d,"GL_VERSION", PyInt_FromLong((long) GL_VERSION)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY", PyInt_FromLong((long) GL_VERTEX_ARRAY)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_COUNT_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_COUNT_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_POINTER", PyInt_FromLong((long) GL_VERTEX_ARRAY_POINTER)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_POINTER_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_POINTER_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_SIZE", PyInt_FromLong((long) GL_VERTEX_ARRAY_SIZE)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_SIZE_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_SIZE_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_STRIDE", PyInt_FromLong((long) GL_VERTEX_ARRAY_STRIDE)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_STRIDE_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_STRIDE_EXT)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_TYPE", PyInt_FromLong((long) GL_VERTEX_ARRAY_TYPE)); - PyDict_SetItemString(d,"GL_VERTEX_ARRAY_TYPE_EXT", PyInt_FromLong((long) GL_VERTEX_ARRAY_TYPE_EXT)); - PyDict_SetItemString(d,"GL_VIEWPORT", PyInt_FromLong((long) GL_VIEWPORT)); - PyDict_SetItemString(d,"GL_VIEWPORT_BIT", PyInt_FromLong((long) GL_VIEWPORT_BIT)); - PyDict_SetItemString(d,"GL_XOR", PyInt_FromLong((long) GL_XOR)); - PyDict_SetItemString(d,"GL_ZERO", PyInt_FromLong((long) GL_ZERO)); - PyDict_SetItemString(d,"GL_ZOOM_X", PyInt_FromLong((long) GL_ZOOM_X)); - PyDict_SetItemString(d,"GL_ZOOM_Y", PyInt_FromLong((long) GL_ZOOM_Y)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_GLfloat","_GLclampf",0); - SWIG_RegisterMapping("_GLfloat","_float",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxJPEGHandler","_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxBMPHandler","_class_wxBMPHandler",0); - SWIG_RegisterMapping("_wxImage","_class_wxImage",0); - SWIG_RegisterMapping("_double","_GLclampd",0); - SWIG_RegisterMapping("_double","_GLdouble",0); - SWIG_RegisterMapping("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxPyTreeItemData","_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxGIFHandler","_class_wxGIFHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxImageHandler","_class_wxImageHandler",0); - SWIG_RegisterMapping("_GLsizei","_GLuint",0); - SWIG_RegisterMapping("_GLsizei","_int",0); - SWIG_RegisterMapping("_GLsizei","_signed_int",0); - SWIG_RegisterMapping("_GLsizei","_unsigned_int",0); - SWIG_RegisterMapping("_GLsizei","_wxWindowID",0); - SWIG_RegisterMapping("_GLsizei","_uint",0); - SWIG_RegisterMapping("_GLsizei","_EBool",0); - SWIG_RegisterMapping("_GLsizei","_size_t",0); - SWIG_RegisterMapping("_GLsizei","_GLenum",0); - SWIG_RegisterMapping("_GLsizei","_GLbitfield",0); - SWIG_RegisterMapping("_GLsizei","_GLint",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPNGHandler","_class_wxPNGHandler",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",0); - SWIG_RegisterMapping("_class_wxPageSetupDialogData","_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_GLbyte","_signed_char",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_GLubyte",0); - SWIG_RegisterMapping("_byte","_GLboolean",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashWindow",0); - SWIG_RegisterMapping("_GLenum","_GLuint",0); - SWIG_RegisterMapping("_GLenum","_GLsizei",0); - SWIG_RegisterMapping("_GLenum","_GLint",0); - SWIG_RegisterMapping("_GLenum","_GLbitfield",0); - SWIG_RegisterMapping("_GLenum","_unsigned_int",0); - SWIG_RegisterMapping("_GLenum","_int",0); - SWIG_RegisterMapping("_GLenum","_wxWindowID",0); - SWIG_RegisterMapping("_GLenum","_uint",0); - SWIG_RegisterMapping("_GLenum","_size_t",0); - SWIG_RegisterMapping("_class_wxPrintDialogData","_wxPrintDialogData",0); - SWIG_RegisterMapping("_wxGLContext","_class_wxGLContext",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_class_wxSashEvent","_wxSashEvent",0); - SWIG_RegisterMapping("_float","_GLclampf",0); - SWIG_RegisterMapping("_float","_GLfloat",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxListEvent","_class_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxBMPHandler","_wxBMPHandler",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSashLayoutWindow","_class_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_size_t","_GLuint",0); - SWIG_RegisterMapping("_size_t","_GLsizei",0); - SWIG_RegisterMapping("_size_t","_GLint",0); - SWIG_RegisterMapping("_size_t","_GLbitfield",0); - SWIG_RegisterMapping("_size_t","_GLenum",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxGIFHandler","_wxGIFHandler",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_signed_char","_GLbyte",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_class_wxPNGHandler","_wxPNGHandler",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxPageSetupDialog","_class_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashWindow",0); - SWIG_RegisterMapping("_GLuint","_unsigned_int",0); - SWIG_RegisterMapping("_GLuint","_int",0); - SWIG_RegisterMapping("_GLuint","_wxWindowID",0); - SWIG_RegisterMapping("_GLuint","_uint",0); - SWIG_RegisterMapping("_GLuint","_size_t",0); - SWIG_RegisterMapping("_GLuint","_GLenum",0); - SWIG_RegisterMapping("_GLuint","_GLbitfield",0); - SWIG_RegisterMapping("_GLuint","_GLint",0); - SWIG_RegisterMapping("_GLuint","_GLsizei",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_GLuint",0); - SWIG_RegisterMapping("_uint","_GLsizei",0); - SWIG_RegisterMapping("_uint","_GLint",0); - SWIG_RegisterMapping("_uint","_GLbitfield",0); - SWIG_RegisterMapping("_uint","_GLenum",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxImage","_wxImage",0); - SWIG_RegisterMapping("_GLclampd","_double",0); - SWIG_RegisterMapping("_GLclampd","_GLdouble",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxSashLayoutWindow","_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_GLclampf","_float",0); - SWIG_RegisterMapping("_GLclampf","_GLfloat",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxTaskBarIcon","_class_wxTaskBarIcon",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",0); - SWIG_RegisterMapping("_GLbitfield","_GLuint",0); - SWIG_RegisterMapping("_GLbitfield","_GLsizei",0); - SWIG_RegisterMapping("_GLbitfield","_GLint",0); - SWIG_RegisterMapping("_GLbitfield","_unsigned_int",0); - SWIG_RegisterMapping("_GLbitfield","_int",0); - SWIG_RegisterMapping("_GLbitfield","_wxWindowID",0); - SWIG_RegisterMapping("_GLbitfield","_uint",0); - SWIG_RegisterMapping("_GLbitfield","_size_t",0); - SWIG_RegisterMapping("_GLbitfield","_GLenum",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextEntryDialog","_class_wxTextEntryDialog",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_wxListItem","_class_wxListItem",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_EBool","_GLsizei",0); - SWIG_RegisterMapping("_EBool","_GLint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxPyApp","_class_wxPyApp",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxTreeEvent","_wxTreeEvent",0); - SWIG_RegisterMapping("_class_wxDirDialog","_wxDirDialog",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxMessageDialog","_wxMessageDialog",0); - SWIG_RegisterMapping("_signed_int","_GLsizei",0); - SWIG_RegisterMapping("_signed_int","_GLint",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_GLboolean","_GLubyte",0); - SWIG_RegisterMapping("_GLboolean","_unsigned_char",0); - SWIG_RegisterMapping("_GLboolean","_byte",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_GLushort",0); - SWIG_RegisterMapping("_WXTYPE","_GLshort",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_wxFileDialog","_class_wxFileDialog",0); - SWIG_RegisterMapping("_GLshort","_GLushort",0); - SWIG_RegisterMapping("_GLshort","_short",0); - SWIG_RegisterMapping("_GLshort","_signed_short",0); - SWIG_RegisterMapping("_GLshort","_unsigned_short",0); - SWIG_RegisterMapping("_GLshort","_WXTYPE",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_GLushort",0); - SWIG_RegisterMapping("_unsigned_short","_GLshort",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_wxPrintDialogData","_class_wxPrintDialogData",0); - SWIG_RegisterMapping("_GLushort","_unsigned_short",0); - SWIG_RegisterMapping("_GLushort","_short",0); - SWIG_RegisterMapping("_GLushort","_WXTYPE",0); - SWIG_RegisterMapping("_GLushort","_GLshort",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxSashEvent","_class_wxSashEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_wxListCtrl","_class_wxListCtrl",0); - SWIG_RegisterMapping("_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_wxGLCanvas","_class_wxGLCanvas",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_GLshort",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxTaskBarIcon","_wxTaskBarIcon",0); - SWIG_RegisterMapping("_class_wxPrintDialog","_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_class_wxImageHandler","_wxImageHandler",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxTreeItemId","_class_wxTreeItemId",0); - SWIG_RegisterMapping("_unsigned_char","_GLubyte",0); - SWIG_RegisterMapping("_unsigned_char","_GLboolean",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_GLuint",0); - SWIG_RegisterMapping("_unsigned_int","_GLsizei",0); - SWIG_RegisterMapping("_unsigned_int","_GLint",0); - SWIG_RegisterMapping("_unsigned_int","_GLbitfield",0); - SWIG_RegisterMapping("_unsigned_int","_GLenum",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxListItem","_wxListItem",0); - SWIG_RegisterMapping("_GLdouble","_GLclampd",0); - SWIG_RegisterMapping("_GLdouble","_double",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_class_wxFileDialog","_wxFileDialog",0); - SWIG_RegisterMapping("_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_short","_GLushort",0); - SWIG_RegisterMapping("_short","_GLshort",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxGLContext","_wxGLContext",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxJPEGHandler","_class_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxWindowID","_GLuint",0); - SWIG_RegisterMapping("_wxWindowID","_GLsizei",0); - SWIG_RegisterMapping("_wxWindowID","_GLint",0); - SWIG_RegisterMapping("_wxWindowID","_GLbitfield",0); - SWIG_RegisterMapping("_wxWindowID","_GLenum",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_GLuint",0); - SWIG_RegisterMapping("_int","_GLsizei",0); - SWIG_RegisterMapping("_int","_GLint",0); - SWIG_RegisterMapping("_int","_GLbitfield",0); - SWIG_RegisterMapping("_int","_GLenum",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxListEvent","_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_class_wxPyApp","_wxPyApp",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_wxPyTreeItemData","_class_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxTreeItemId","_wxTreeItemId",0); - SWIG_RegisterMapping("_wxTreeCtrl","_class_wxTreeCtrl",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxPageSetupDialog","_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_GLint","_GLuint",0); - SWIG_RegisterMapping("_GLint","_GLsizei",0); - SWIG_RegisterMapping("_GLint","_int",0); - SWIG_RegisterMapping("_GLint","_signed_int",0); - SWIG_RegisterMapping("_GLint","_unsigned_int",0); - SWIG_RegisterMapping("_GLint","_wxWindowID",0); - SWIG_RegisterMapping("_GLint","_uint",0); - SWIG_RegisterMapping("_GLint","_EBool",0); - SWIG_RegisterMapping("_GLint","_size_t",0); - SWIG_RegisterMapping("_GLint","_GLenum",0); - SWIG_RegisterMapping("_GLint","_GLbitfield",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_GLubyte","_unsigned_char",0); - SWIG_RegisterMapping("_GLubyte","_byte",0); - SWIG_RegisterMapping("_GLubyte","_GLboolean",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxListCtrl","_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxGLCanvas","_wxGLCanvas",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxTreeEvent","_class_wxTreeEvent",0); - SWIG_RegisterMapping("_wxDirDialog","_class_wxDirDialog",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxGLCanvas",SwigwxGLCanvasTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_class_wxColourDialog","_wxColourDialog",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxGLCanvas",SwigwxGLCanvasTowxScrolledWindow); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxTextEntryDialog","_wxTextEntryDialog",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_wxColourData","_class_wxColourData",0); - SWIG_RegisterMapping("_wxPageSetupDialogData","_class_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxFontDialog","_wxFontDialog",0); - SWIG_RegisterMapping("_wxWindow","_class_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxGLCanvas",SwigwxGLCanvasTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/msw/glcanvas.py b/utils/wxPython/src/msw/glcanvas.py deleted file mode 100644 index b701f81977..0000000000 --- a/utils/wxPython/src/msw/glcanvas.py +++ /dev/null @@ -1,1418 +0,0 @@ -# This file was created automatically by SWIG. -import glcanvasc - -from misc import * - -from windows import * - -from gdi import * - -from events import * - -from mdi import * - -from frames import * - -from stattool import * - -from controls import * - -from controls2 import * - -from windows2 import * - -from cmndlgs import * - -from windows3 import * - -from image import * -import wx -class wxGLContextPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - glcanvasc.delete_wxGLContext(self.this) - def SetCurrent(self): - val = glcanvasc.wxGLContext_SetCurrent(self.this) - return val - def SetColour(self,arg0): - val = glcanvasc.wxGLContext_SetColour(self.this,arg0) - return val - def SwapBuffers(self): - val = glcanvasc.wxGLContext_SwapBuffers(self.this) - return val - def SetupPixelFormat(self): - val = glcanvasc.wxGLContext_SetupPixelFormat(self.this) - return val - def SetupPalette(self,arg0): - val = glcanvasc.wxGLContext_SetupPalette(self.this,arg0.this) - return val - def CreateDefaultPalette(self): - val = glcanvasc.wxGLContext_CreateDefaultPalette(self.this) - val = wxPalettePtr(val) - val.thisown = 1 - return val - def GetPalette(self): - val = glcanvasc.wxGLContext_GetPalette(self.this) - val = wxPalettePtr(val) - return val - def GetWindow(self): - val = glcanvasc.wxGLContext_GetWindow(self.this) - val = wxWindowPtr(val) - return val - def __repr__(self): - return "" -class wxGLContext(wxGLContextPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - self.this = apply(glcanvasc.new_wxGLContext,(arg0,arg1.this,)+args) - self.thisown = 1 - - - - -class wxGLCanvasPtr(wxScrolledWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetCurrent(self): - val = glcanvasc.wxGLCanvas_SetCurrent(self.this) - return val - def SetColour(self,arg0): - val = glcanvasc.wxGLCanvas_SetColour(self.this,arg0) - return val - def SwapBuffers(self): - val = glcanvasc.wxGLCanvas_SwapBuffers(self.this) - return val - def GetContext(self): - val = glcanvasc.wxGLCanvas_GetContext(self.this) - val = wxGLContextPtr(val) - return val - def __repr__(self): - return "" -class wxGLCanvas(wxGLCanvasPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - try: argl[6] = argl[6].this - except: pass - args = tuple(argl) - self.this = apply(glcanvasc.new_wxGLCanvas,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -glArrayElementEXT = glcanvasc.glArrayElementEXT - -glColorPointerEXT = glcanvasc.glColorPointerEXT - -glDrawArraysEXT = glcanvasc.glDrawArraysEXT - -glEdgeFlagPointerEXT = glcanvasc.glEdgeFlagPointerEXT - -glGetPointervEXT = glcanvasc.glGetPointervEXT - -glIndexPointerEXT = glcanvasc.glIndexPointerEXT - -glNormalPointerEXT = glcanvasc.glNormalPointerEXT - -glTexCoordPointerEXT = glcanvasc.glTexCoordPointerEXT - -glVertexPointerEXT = glcanvasc.glVertexPointerEXT - -glColorSubtableEXT = glcanvasc.glColorSubtableEXT - -glColorTableEXT = glcanvasc.glColorTableEXT - -glCopyColorTableEXT = glcanvasc.glCopyColorTableEXT - -glGetColorTableEXT = glcanvasc.glGetColorTableEXT - -glGetColorTableParamaterfvEXT = glcanvasc.glGetColorTableParamaterfvEXT - -glGetColorTavleParameterivEXT = glcanvasc.glGetColorTavleParameterivEXT - -glLockArraysSGI = glcanvasc.glLockArraysSGI - -glUnlockArraysSGI = glcanvasc.glUnlockArraysSGI - -glCullParameterdvSGI = glcanvasc.glCullParameterdvSGI - -glCullParameterfvSGI = glcanvasc.glCullParameterfvSGI - -glIndexFuncSGI = glcanvasc.glIndexFuncSGI - -glIndexMaterialSGI = glcanvasc.glIndexMaterialSGI - -glAddSwapHintRectWin = glcanvasc.glAddSwapHintRectWin - -glAccum = glcanvasc.glAccum - -glAlphaFunc = glcanvasc.glAlphaFunc - -glAreTexturesResident = glcanvasc.glAreTexturesResident - -glArrayElement = glcanvasc.glArrayElement - -glBegin = glcanvasc.glBegin - -glBindTexture = glcanvasc.glBindTexture - -glBitmap = glcanvasc.glBitmap - -glBlendFunc = glcanvasc.glBlendFunc - -glCallList = glcanvasc.glCallList - -glCallLists = glcanvasc.glCallLists - -glClear = glcanvasc.glClear - -glClearAccum = glcanvasc.glClearAccum - -glClearColor = glcanvasc.glClearColor - -glClearDepth = glcanvasc.glClearDepth - -glClearIndex = glcanvasc.glClearIndex - -glClearStencil = glcanvasc.glClearStencil - -glClipPlane = glcanvasc.glClipPlane - -glColor3b = glcanvasc.glColor3b - -glColor3bv = glcanvasc.glColor3bv - -glColor3d = glcanvasc.glColor3d - -glColor3dv = glcanvasc.glColor3dv - -glColor3f = glcanvasc.glColor3f - -glColor3fv = glcanvasc.glColor3fv - -glColor3i = glcanvasc.glColor3i - -glColor3iv = glcanvasc.glColor3iv - -glColor3s = glcanvasc.glColor3s - -glColor3sv = glcanvasc.glColor3sv - -glColor3ub = glcanvasc.glColor3ub - -glColor3ubv = glcanvasc.glColor3ubv - -glColor3ui = glcanvasc.glColor3ui - -glColor3uiv = glcanvasc.glColor3uiv - -glColor3us = glcanvasc.glColor3us - -glColor3usv = glcanvasc.glColor3usv - -glColor4b = glcanvasc.glColor4b - -glColor4bv = glcanvasc.glColor4bv - -glColor4d = glcanvasc.glColor4d - -glColor4dv = glcanvasc.glColor4dv - -glColor4f = glcanvasc.glColor4f - -glColor4fv = glcanvasc.glColor4fv - -glColor4i = glcanvasc.glColor4i - -glColor4iv = glcanvasc.glColor4iv - -glColor4s = glcanvasc.glColor4s - -glColor4sv = glcanvasc.glColor4sv - -glColor4ub = glcanvasc.glColor4ub - -glColor4ubv = glcanvasc.glColor4ubv - -glColor4ui = glcanvasc.glColor4ui - -glColor4uiv = glcanvasc.glColor4uiv - -glColor4us = glcanvasc.glColor4us - -glColor4usv = glcanvasc.glColor4usv - -glColorMask = glcanvasc.glColorMask - -glColorMaterial = glcanvasc.glColorMaterial - -glColorPointer = glcanvasc.glColorPointer - -glCopyPixels = glcanvasc.glCopyPixels - -glCopyTexImage1D = glcanvasc.glCopyTexImage1D - -glCopyTexImage2D = glcanvasc.glCopyTexImage2D - -glCopyTexSubImage1D = glcanvasc.glCopyTexSubImage1D - -glCopyTexSubImage2D = glcanvasc.glCopyTexSubImage2D - -glCullFace = glcanvasc.glCullFace - -glDeleteLists = glcanvasc.glDeleteLists - -glDeleteTextures = glcanvasc.glDeleteTextures - -glDepthFunc = glcanvasc.glDepthFunc - -glDepthMask = glcanvasc.glDepthMask - -glDepthRange = glcanvasc.glDepthRange - -glDisable = glcanvasc.glDisable - -glDisableClientState = glcanvasc.glDisableClientState - -glDrawArrays = glcanvasc.glDrawArrays - -glDrawBuffer = glcanvasc.glDrawBuffer - -glDrawElements = glcanvasc.glDrawElements - -glDrawPixels = glcanvasc.glDrawPixels - -glEdgeFlag = glcanvasc.glEdgeFlag - -glEdgeFlagPointer = glcanvasc.glEdgeFlagPointer - -glEdgeFlagv = glcanvasc.glEdgeFlagv - -glEnable = glcanvasc.glEnable - -glEnableClientState = glcanvasc.glEnableClientState - -glEnd = glcanvasc.glEnd - -glEndList = glcanvasc.glEndList - -glEvalCoord1d = glcanvasc.glEvalCoord1d - -glEvalCoord1dv = glcanvasc.glEvalCoord1dv - -glEvalCoord1f = glcanvasc.glEvalCoord1f - -glEvalCoord1fv = glcanvasc.glEvalCoord1fv - -glEvalCoord2d = glcanvasc.glEvalCoord2d - -glEvalCoord2dv = glcanvasc.glEvalCoord2dv - -glEvalCoord2f = glcanvasc.glEvalCoord2f - -glEvalCoord2fv = glcanvasc.glEvalCoord2fv - -glEvalMesh1 = glcanvasc.glEvalMesh1 - -glEvalMesh2 = glcanvasc.glEvalMesh2 - -glEvalPoint1 = glcanvasc.glEvalPoint1 - -glEvalPoint2 = glcanvasc.glEvalPoint2 - -glFeedbackBuffer = glcanvasc.glFeedbackBuffer - -glFinish = glcanvasc.glFinish - -glFlush = glcanvasc.glFlush - -glFogf = glcanvasc.glFogf - -glFogfv = glcanvasc.glFogfv - -glFogi = glcanvasc.glFogi - -glFogiv = glcanvasc.glFogiv - -glFrontFace = glcanvasc.glFrontFace - -glFrustum = glcanvasc.glFrustum - -glGenLists = glcanvasc.glGenLists - -glGenTextures = glcanvasc.glGenTextures - -glGetBooleanv = glcanvasc.glGetBooleanv - -glGetClipPlane = glcanvasc.glGetClipPlane - -glGetDoublev = glcanvasc.glGetDoublev - -glGetError = glcanvasc.glGetError - -glGetFloatv = glcanvasc.glGetFloatv - -glGetIntegerv = glcanvasc.glGetIntegerv - -glGetLightfv = glcanvasc.glGetLightfv - -glGetLightiv = glcanvasc.glGetLightiv - -glGetMapdv = glcanvasc.glGetMapdv - -glGetMapfv = glcanvasc.glGetMapfv - -glGetMapiv = glcanvasc.glGetMapiv - -glGetMaterialfv = glcanvasc.glGetMaterialfv - -glGetMaterialiv = glcanvasc.glGetMaterialiv - -glGetPixelMapfv = glcanvasc.glGetPixelMapfv - -glGetPixelMapuiv = glcanvasc.glGetPixelMapuiv - -glGetPixelMapusv = glcanvasc.glGetPixelMapusv - -glGetPointerv = glcanvasc.glGetPointerv - -glGetPolygonStipple = glcanvasc.glGetPolygonStipple - -glGetString = glcanvasc.glGetString - -glGetTexEnvfv = glcanvasc.glGetTexEnvfv - -glGetTexEnviv = glcanvasc.glGetTexEnviv - -glGetTexGendv = glcanvasc.glGetTexGendv - -glGetTexGenfv = glcanvasc.glGetTexGenfv - -glGetTexGeniv = glcanvasc.glGetTexGeniv - -glGetTexImage = glcanvasc.glGetTexImage - -glGetTexLevelParameterfv = glcanvasc.glGetTexLevelParameterfv - -glGetTexLevelParameteriv = glcanvasc.glGetTexLevelParameteriv - -glGetTexParameterfv = glcanvasc.glGetTexParameterfv - -glGetTexParameteriv = glcanvasc.glGetTexParameteriv - -glHint = glcanvasc.glHint - -glIndexMask = glcanvasc.glIndexMask - -glIndexPointer = glcanvasc.glIndexPointer - -glIndexd = glcanvasc.glIndexd - -glIndexdv = glcanvasc.glIndexdv - -glIndexf = glcanvasc.glIndexf - -glIndexfv = glcanvasc.glIndexfv - -glIndexi = glcanvasc.glIndexi - -glIndexiv = glcanvasc.glIndexiv - -glIndexs = glcanvasc.glIndexs - -glIndexsv = glcanvasc.glIndexsv - -glIndexub = glcanvasc.glIndexub - -glIndexubv = glcanvasc.glIndexubv - -glInitNames = glcanvasc.glInitNames - -glInterleavedArrays = glcanvasc.glInterleavedArrays - -glIsEnabled = glcanvasc.glIsEnabled - -glIsList = glcanvasc.glIsList - -glIsTexture = glcanvasc.glIsTexture - -glLightModelf = glcanvasc.glLightModelf - -glLightModelfv = glcanvasc.glLightModelfv - -glLightModeli = glcanvasc.glLightModeli - -glLightModeliv = glcanvasc.glLightModeliv - -glLightf = glcanvasc.glLightf - -glLightfv = glcanvasc.glLightfv - -glLighti = glcanvasc.glLighti - -glLightiv = glcanvasc.glLightiv - -glLineStipple = glcanvasc.glLineStipple - -glLineWidth = glcanvasc.glLineWidth - -glListBase = glcanvasc.glListBase - -glLoadIdentity = glcanvasc.glLoadIdentity - -glLoadMatrixd = glcanvasc.glLoadMatrixd - -glLoadMatrixf = glcanvasc.glLoadMatrixf - -glLoadName = glcanvasc.glLoadName - -glLogicOp = glcanvasc.glLogicOp - -glMap1d = glcanvasc.glMap1d - -glMap1f = glcanvasc.glMap1f - -glMap2d = glcanvasc.glMap2d - -glMap2f = glcanvasc.glMap2f - -glMapGrid1d = glcanvasc.glMapGrid1d - -glMapGrid1f = glcanvasc.glMapGrid1f - -glMapGrid2d = glcanvasc.glMapGrid2d - -glMapGrid2f = glcanvasc.glMapGrid2f - -glMaterialf = glcanvasc.glMaterialf - -glMaterialfv = glcanvasc.glMaterialfv - -glMateriali = glcanvasc.glMateriali - -glMaterialiv = glcanvasc.glMaterialiv - -glMatrixMode = glcanvasc.glMatrixMode - -glMultMatrixd = glcanvasc.glMultMatrixd - -glMultMatrixf = glcanvasc.glMultMatrixf - -glNewList = glcanvasc.glNewList - -glNormal3b = glcanvasc.glNormal3b - -glNormal3bv = glcanvasc.glNormal3bv - -glNormal3d = glcanvasc.glNormal3d - -glNormal3dv = glcanvasc.glNormal3dv - -glNormal3f = glcanvasc.glNormal3f - -glNormal3fv = glcanvasc.glNormal3fv - -glNormal3i = glcanvasc.glNormal3i - -glNormal3iv = glcanvasc.glNormal3iv - -glNormal3s = glcanvasc.glNormal3s - -glNormal3sv = glcanvasc.glNormal3sv - -glNormalPointer = glcanvasc.glNormalPointer - -glOrtho = glcanvasc.glOrtho - -glPassThrough = glcanvasc.glPassThrough - -glPixelMapfv = glcanvasc.glPixelMapfv - -glPixelMapuiv = glcanvasc.glPixelMapuiv - -glPixelMapusv = glcanvasc.glPixelMapusv - -glPixelStoref = glcanvasc.glPixelStoref - -glPixelStorei = glcanvasc.glPixelStorei - -glPixelTransferf = glcanvasc.glPixelTransferf - -glPixelTransferi = glcanvasc.glPixelTransferi - -glPixelZoom = glcanvasc.glPixelZoom - -glPointSize = glcanvasc.glPointSize - -glPolygonMode = glcanvasc.glPolygonMode - -glPolygonOffset = glcanvasc.glPolygonOffset - -glPolygonStipple = glcanvasc.glPolygonStipple - -glPopAttrib = glcanvasc.glPopAttrib - -glPopClientAttrib = glcanvasc.glPopClientAttrib - -glPopMatrix = glcanvasc.glPopMatrix - -glPopName = glcanvasc.glPopName - -glPrioritizeTextures = glcanvasc.glPrioritizeTextures - -glPushAttrib = glcanvasc.glPushAttrib - -glPushClientAttrib = glcanvasc.glPushClientAttrib - -glPushMatrix = glcanvasc.glPushMatrix - -glPushName = glcanvasc.glPushName - -glRasterPos2d = glcanvasc.glRasterPos2d - -glRasterPos2dv = glcanvasc.glRasterPos2dv - -glRasterPos2f = glcanvasc.glRasterPos2f - -glRasterPos2fv = glcanvasc.glRasterPos2fv - -glRasterPos2i = glcanvasc.glRasterPos2i - -glRasterPos2iv = glcanvasc.glRasterPos2iv - -glRasterPos2s = glcanvasc.glRasterPos2s - -glRasterPos2sv = glcanvasc.glRasterPos2sv - -glRasterPos3d = glcanvasc.glRasterPos3d - -glRasterPos3dv = glcanvasc.glRasterPos3dv - -glRasterPos3f = glcanvasc.glRasterPos3f - -glRasterPos3fv = glcanvasc.glRasterPos3fv - -glRasterPos3i = glcanvasc.glRasterPos3i - -glRasterPos3iv = glcanvasc.glRasterPos3iv - -glRasterPos3s = glcanvasc.glRasterPos3s - -glRasterPos3sv = glcanvasc.glRasterPos3sv - -glRasterPos4d = glcanvasc.glRasterPos4d - -glRasterPos4dv = glcanvasc.glRasterPos4dv - -glRasterPos4f = glcanvasc.glRasterPos4f - -glRasterPos4fv = glcanvasc.glRasterPos4fv - -glRasterPos4i = glcanvasc.glRasterPos4i - -glRasterPos4iv = glcanvasc.glRasterPos4iv - -glRasterPos4s = glcanvasc.glRasterPos4s - -glRasterPos4sv = glcanvasc.glRasterPos4sv - -glReadBuffer = glcanvasc.glReadBuffer - -glReadPixels = glcanvasc.glReadPixels - -glRectd = glcanvasc.glRectd - -glRectdv = glcanvasc.glRectdv - -glRectf = glcanvasc.glRectf - -glRectfv = glcanvasc.glRectfv - -glRecti = glcanvasc.glRecti - -glRectiv = glcanvasc.glRectiv - -glRects = glcanvasc.glRects - -glRectsv = glcanvasc.glRectsv - -glRenderMode = glcanvasc.glRenderMode - -glRotated = glcanvasc.glRotated - -glRotatef = glcanvasc.glRotatef - -glScaled = glcanvasc.glScaled - -glScalef = glcanvasc.glScalef - -glScissor = glcanvasc.glScissor - -glSelectBuffer = glcanvasc.glSelectBuffer - -glShadeModel = glcanvasc.glShadeModel - -glStencilFunc = glcanvasc.glStencilFunc - -glStencilMask = glcanvasc.glStencilMask - -glStencilOp = glcanvasc.glStencilOp - -glTexCoord1d = glcanvasc.glTexCoord1d - -glTexCoord1dv = glcanvasc.glTexCoord1dv - -glTexCoord1f = glcanvasc.glTexCoord1f - -glTexCoord1fv = glcanvasc.glTexCoord1fv - -glTexCoord1i = glcanvasc.glTexCoord1i - -glTexCoord1iv = glcanvasc.glTexCoord1iv - -glTexCoord1s = glcanvasc.glTexCoord1s - -glTexCoord1sv = glcanvasc.glTexCoord1sv - -glTexCoord2d = glcanvasc.glTexCoord2d - -glTexCoord2dv = glcanvasc.glTexCoord2dv - -glTexCoord2f = glcanvasc.glTexCoord2f - -glTexCoord2fv = glcanvasc.glTexCoord2fv - -glTexCoord2i = glcanvasc.glTexCoord2i - -glTexCoord2iv = glcanvasc.glTexCoord2iv - -glTexCoord2s = glcanvasc.glTexCoord2s - -glTexCoord2sv = glcanvasc.glTexCoord2sv - -glTexCoord3d = glcanvasc.glTexCoord3d - -glTexCoord3dv = glcanvasc.glTexCoord3dv - -glTexCoord3f = glcanvasc.glTexCoord3f - -glTexCoord3fv = glcanvasc.glTexCoord3fv - -glTexCoord3i = glcanvasc.glTexCoord3i - -glTexCoord3iv = glcanvasc.glTexCoord3iv - -glTexCoord3s = glcanvasc.glTexCoord3s - -glTexCoord3sv = glcanvasc.glTexCoord3sv - -glTexCoord4d = glcanvasc.glTexCoord4d - -glTexCoord4dv = glcanvasc.glTexCoord4dv - -glTexCoord4f = glcanvasc.glTexCoord4f - -glTexCoord4fv = glcanvasc.glTexCoord4fv - -glTexCoord4i = glcanvasc.glTexCoord4i - -glTexCoord4iv = glcanvasc.glTexCoord4iv - -glTexCoord4s = glcanvasc.glTexCoord4s - -glTexCoord4sv = glcanvasc.glTexCoord4sv - -glTexCoordPointer = glcanvasc.glTexCoordPointer - -glTexEnvf = glcanvasc.glTexEnvf - -glTexEnvfv = glcanvasc.glTexEnvfv - -glTexEnvi = glcanvasc.glTexEnvi - -glTexEnviv = glcanvasc.glTexEnviv - -glTexGend = glcanvasc.glTexGend - -glTexGendv = glcanvasc.glTexGendv - -glTexGenf = glcanvasc.glTexGenf - -glTexGenfv = glcanvasc.glTexGenfv - -glTexGeni = glcanvasc.glTexGeni - -glTexGeniv = glcanvasc.glTexGeniv - -glTexImage1D = glcanvasc.glTexImage1D - -glTexImage2D = glcanvasc.glTexImage2D - -glTexParameterf = glcanvasc.glTexParameterf - -glTexParameterfv = glcanvasc.glTexParameterfv - -glTexParameteri = glcanvasc.glTexParameteri - -glTexParameteriv = glcanvasc.glTexParameteriv - -glTexSubImage1D = glcanvasc.glTexSubImage1D - -glTexSubImage2D = glcanvasc.glTexSubImage2D - -glTranslated = glcanvasc.glTranslated - -glTranslatef = glcanvasc.glTranslatef - -glVertex2d = glcanvasc.glVertex2d - -glVertex2dv = glcanvasc.glVertex2dv - -glVertex2f = glcanvasc.glVertex2f - -glVertex2fv = glcanvasc.glVertex2fv - -glVertex2i = glcanvasc.glVertex2i - -glVertex2iv = glcanvasc.glVertex2iv - -glVertex2s = glcanvasc.glVertex2s - -glVertex2sv = glcanvasc.glVertex2sv - -glVertex3d = glcanvasc.glVertex3d - -glVertex3dv = glcanvasc.glVertex3dv - -glVertex3f = glcanvasc.glVertex3f - -glVertex3fv = glcanvasc.glVertex3fv - -glVertex3i = glcanvasc.glVertex3i - -glVertex3iv = glcanvasc.glVertex3iv - -glVertex3s = glcanvasc.glVertex3s - -glVertex3sv = glcanvasc.glVertex3sv - -glVertex4d = glcanvasc.glVertex4d - -glVertex4dv = glcanvasc.glVertex4dv - -glVertex4f = glcanvasc.glVertex4f - -glVertex4fv = glcanvasc.glVertex4fv - -glVertex4i = glcanvasc.glVertex4i - -glVertex4iv = glcanvasc.glVertex4iv - -glVertex4s = glcanvasc.glVertex4s - -glVertex4sv = glcanvasc.glVertex4sv - -glVertexPointer = glcanvasc.glVertexPointer - -glViewport = glcanvasc.glViewport - - - -#-------------- VARIABLE WRAPPERS ------------------ - -GL_2D = glcanvasc.GL_2D -GL_2_BYTES = glcanvasc.GL_2_BYTES -GL_3D = glcanvasc.GL_3D -GL_3D_COLOR = glcanvasc.GL_3D_COLOR -GL_3D_COLOR_TEXTURE = glcanvasc.GL_3D_COLOR_TEXTURE -GL_3_BYTES = glcanvasc.GL_3_BYTES -GL_4D_COLOR_TEXTURE = glcanvasc.GL_4D_COLOR_TEXTURE -GL_4_BYTES = glcanvasc.GL_4_BYTES -GL_ACCUM = glcanvasc.GL_ACCUM -GL_ACCUM_ALPHA_BITS = glcanvasc.GL_ACCUM_ALPHA_BITS -GL_ACCUM_BLUE_BITS = glcanvasc.GL_ACCUM_BLUE_BITS -GL_ACCUM_BUFFER_BIT = glcanvasc.GL_ACCUM_BUFFER_BIT -GL_ACCUM_CLEAR_VALUE = glcanvasc.GL_ACCUM_CLEAR_VALUE -GL_ACCUM_GREEN_BITS = glcanvasc.GL_ACCUM_GREEN_BITS -GL_ACCUM_RED_BITS = glcanvasc.GL_ACCUM_RED_BITS -GL_ADD = glcanvasc.GL_ADD -GL_ALL_ATTRIB_BITS = glcanvasc.GL_ALL_ATTRIB_BITS -GL_ALPHA = glcanvasc.GL_ALPHA -GL_ALPHA12 = glcanvasc.GL_ALPHA12 -GL_ALPHA16 = glcanvasc.GL_ALPHA16 -GL_ALPHA4 = glcanvasc.GL_ALPHA4 -GL_ALPHA8 = glcanvasc.GL_ALPHA8 -GL_ALPHA_BIAS = glcanvasc.GL_ALPHA_BIAS -GL_ALPHA_BITS = glcanvasc.GL_ALPHA_BITS -GL_ALPHA_SCALE = glcanvasc.GL_ALPHA_SCALE -GL_ALPHA_TEST = glcanvasc.GL_ALPHA_TEST -GL_ALPHA_TEST_FUNC = glcanvasc.GL_ALPHA_TEST_FUNC -GL_ALPHA_TEST_REF = glcanvasc.GL_ALPHA_TEST_REF -GL_ALWAYS = glcanvasc.GL_ALWAYS -GL_AMBIENT = glcanvasc.GL_AMBIENT -GL_AMBIENT_AND_DIFFUSE = glcanvasc.GL_AMBIENT_AND_DIFFUSE -GL_AND = glcanvasc.GL_AND -GL_AND_INVERTED = glcanvasc.GL_AND_INVERTED -GL_AND_REVERSE = glcanvasc.GL_AND_REVERSE -GL_ATTRIB_STACK_DEPTH = glcanvasc.GL_ATTRIB_STACK_DEPTH -GL_AUTO_NORMAL = glcanvasc.GL_AUTO_NORMAL -GL_AUX0 = glcanvasc.GL_AUX0 -GL_AUX1 = glcanvasc.GL_AUX1 -GL_AUX2 = glcanvasc.GL_AUX2 -GL_AUX3 = glcanvasc.GL_AUX3 -GL_AUX_BUFFERS = glcanvasc.GL_AUX_BUFFERS -GL_BACK = glcanvasc.GL_BACK -GL_BACK_LEFT = glcanvasc.GL_BACK_LEFT -GL_BACK_RIGHT = glcanvasc.GL_BACK_RIGHT -GL_BGRA_EXT = glcanvasc.GL_BGRA_EXT -GL_BGR_EXT = glcanvasc.GL_BGR_EXT -GL_BITMAP = glcanvasc.GL_BITMAP -GL_BITMAP_TOKEN = glcanvasc.GL_BITMAP_TOKEN -GL_BLEND = glcanvasc.GL_BLEND -GL_BLEND_DST = glcanvasc.GL_BLEND_DST -GL_BLEND_SRC = glcanvasc.GL_BLEND_SRC -GL_BLUE = glcanvasc.GL_BLUE -GL_BLUE_BIAS = glcanvasc.GL_BLUE_BIAS -GL_BLUE_BITS = glcanvasc.GL_BLUE_BITS -GL_BLUE_SCALE = glcanvasc.GL_BLUE_SCALE -GL_BYTE = glcanvasc.GL_BYTE -GL_C3F_V3F = glcanvasc.GL_C3F_V3F -GL_C4F_N3F_V3F = glcanvasc.GL_C4F_N3F_V3F -GL_C4UB_V2F = glcanvasc.GL_C4UB_V2F -GL_C4UB_V3F = glcanvasc.GL_C4UB_V3F -GL_CCW = glcanvasc.GL_CCW -GL_CLAMP = glcanvasc.GL_CLAMP -GL_CLEAR = glcanvasc.GL_CLEAR -GL_CLIENT_ALL_ATTRIB_BITS = glcanvasc.GL_CLIENT_ALL_ATTRIB_BITS -GL_CLIENT_ATTRIB_STACK_DEPTH = glcanvasc.GL_CLIENT_ATTRIB_STACK_DEPTH -GL_CLIENT_PIXEL_STORE_BIT = glcanvasc.GL_CLIENT_PIXEL_STORE_BIT -GL_CLIENT_VERTEX_ARRAY_BIT = glcanvasc.GL_CLIENT_VERTEX_ARRAY_BIT -GL_CLIP_PLANE0 = glcanvasc.GL_CLIP_PLANE0 -GL_CLIP_PLANE1 = glcanvasc.GL_CLIP_PLANE1 -GL_CLIP_PLANE2 = glcanvasc.GL_CLIP_PLANE2 -GL_CLIP_PLANE3 = glcanvasc.GL_CLIP_PLANE3 -GL_CLIP_PLANE4 = glcanvasc.GL_CLIP_PLANE4 -GL_CLIP_PLANE5 = glcanvasc.GL_CLIP_PLANE5 -GL_COEFF = glcanvasc.GL_COEFF -GL_COLOR = glcanvasc.GL_COLOR -GL_COLOR_ARRAY = glcanvasc.GL_COLOR_ARRAY -GL_COLOR_ARRAY_COUNT_EXT = glcanvasc.GL_COLOR_ARRAY_COUNT_EXT -GL_COLOR_ARRAY_EXT = glcanvasc.GL_COLOR_ARRAY_EXT -GL_COLOR_ARRAY_POINTER = glcanvasc.GL_COLOR_ARRAY_POINTER -GL_COLOR_ARRAY_POINTER_EXT = glcanvasc.GL_COLOR_ARRAY_POINTER_EXT -GL_COLOR_ARRAY_SIZE = glcanvasc.GL_COLOR_ARRAY_SIZE -GL_COLOR_ARRAY_SIZE_EXT = glcanvasc.GL_COLOR_ARRAY_SIZE_EXT -GL_COLOR_ARRAY_STRIDE = glcanvasc.GL_COLOR_ARRAY_STRIDE -GL_COLOR_ARRAY_STRIDE_EXT = glcanvasc.GL_COLOR_ARRAY_STRIDE_EXT -GL_COLOR_ARRAY_TYPE = glcanvasc.GL_COLOR_ARRAY_TYPE -GL_COLOR_ARRAY_TYPE_EXT = glcanvasc.GL_COLOR_ARRAY_TYPE_EXT -GL_COLOR_BUFFER_BIT = glcanvasc.GL_COLOR_BUFFER_BIT -GL_COLOR_CLEAR_VALUE = glcanvasc.GL_COLOR_CLEAR_VALUE -GL_COLOR_INDEX = glcanvasc.GL_COLOR_INDEX -GL_COLOR_INDEX12_EXT = glcanvasc.GL_COLOR_INDEX12_EXT -GL_COLOR_INDEX16_EXT = glcanvasc.GL_COLOR_INDEX16_EXT -GL_COLOR_INDEX1_EXT = glcanvasc.GL_COLOR_INDEX1_EXT -GL_COLOR_INDEX2_EXT = glcanvasc.GL_COLOR_INDEX2_EXT -GL_COLOR_INDEX4_EXT = glcanvasc.GL_COLOR_INDEX4_EXT -GL_COLOR_INDEX8_EXT = glcanvasc.GL_COLOR_INDEX8_EXT -GL_COLOR_INDEXES = glcanvasc.GL_COLOR_INDEXES -GL_COLOR_LOGIC_OP = glcanvasc.GL_COLOR_LOGIC_OP -GL_COLOR_MATERIAL = glcanvasc.GL_COLOR_MATERIAL -GL_COLOR_MATERIAL_FACE = glcanvasc.GL_COLOR_MATERIAL_FACE -GL_COLOR_MATERIAL_PARAMETER = glcanvasc.GL_COLOR_MATERIAL_PARAMETER -GL_COLOR_TABLE_ALPHA_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_ALPHA_SIZE_EXT -GL_COLOR_TABLE_BLUE_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_BLUE_SIZE_EXT -GL_COLOR_TABLE_FORMAT_EXT = glcanvasc.GL_COLOR_TABLE_FORMAT_EXT -GL_COLOR_TABLE_GREEN_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_GREEN_SIZE_EXT -GL_COLOR_TABLE_INTENSITY_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_INTENSITY_SIZE_EXT -GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_LUMINANCE_SIZE_EXT -GL_COLOR_TABLE_RED_SIZE_EXT = glcanvasc.GL_COLOR_TABLE_RED_SIZE_EXT -GL_COLOR_TABLE_WIDTH_EXT = glcanvasc.GL_COLOR_TABLE_WIDTH_EXT -GL_COLOR_WRITEMASK = glcanvasc.GL_COLOR_WRITEMASK -GL_COMPILE = glcanvasc.GL_COMPILE -GL_COMPILE_AND_EXECUTE = glcanvasc.GL_COMPILE_AND_EXECUTE -GL_CONSTANT_ATTENUATION = glcanvasc.GL_CONSTANT_ATTENUATION -GL_COPY = glcanvasc.GL_COPY -GL_COPY_INVERTED = glcanvasc.GL_COPY_INVERTED -GL_COPY_PIXEL_TOKEN = glcanvasc.GL_COPY_PIXEL_TOKEN -GL_CULL_FACE = glcanvasc.GL_CULL_FACE -GL_CULL_FACE_MODE = glcanvasc.GL_CULL_FACE_MODE -GL_CURRENT_BIT = glcanvasc.GL_CURRENT_BIT -GL_CURRENT_COLOR = glcanvasc.GL_CURRENT_COLOR -GL_CURRENT_INDEX = glcanvasc.GL_CURRENT_INDEX -GL_CURRENT_NORMAL = glcanvasc.GL_CURRENT_NORMAL -GL_CURRENT_RASTER_COLOR = glcanvasc.GL_CURRENT_RASTER_COLOR -GL_CURRENT_RASTER_DISTANCE = glcanvasc.GL_CURRENT_RASTER_DISTANCE -GL_CURRENT_RASTER_INDEX = glcanvasc.GL_CURRENT_RASTER_INDEX -GL_CURRENT_RASTER_POSITION = glcanvasc.GL_CURRENT_RASTER_POSITION -GL_CURRENT_RASTER_POSITION_VALID = glcanvasc.GL_CURRENT_RASTER_POSITION_VALID -GL_CURRENT_RASTER_TEXTURE_COORDS = glcanvasc.GL_CURRENT_RASTER_TEXTURE_COORDS -GL_CURRENT_TEXTURE_COORDS = glcanvasc.GL_CURRENT_TEXTURE_COORDS -GL_CW = glcanvasc.GL_CW -GL_DECAL = glcanvasc.GL_DECAL -GL_DECR = glcanvasc.GL_DECR -GL_DEPTH = glcanvasc.GL_DEPTH -GL_DEPTH_BIAS = glcanvasc.GL_DEPTH_BIAS -GL_DEPTH_BITS = glcanvasc.GL_DEPTH_BITS -GL_DEPTH_BUFFER_BIT = glcanvasc.GL_DEPTH_BUFFER_BIT -GL_DEPTH_CLEAR_VALUE = glcanvasc.GL_DEPTH_CLEAR_VALUE -GL_DEPTH_COMPONENT = glcanvasc.GL_DEPTH_COMPONENT -GL_DEPTH_FUNC = glcanvasc.GL_DEPTH_FUNC -GL_DEPTH_RANGE = glcanvasc.GL_DEPTH_RANGE -GL_DEPTH_SCALE = glcanvasc.GL_DEPTH_SCALE -GL_DEPTH_TEST = glcanvasc.GL_DEPTH_TEST -GL_DEPTH_WRITEMASK = glcanvasc.GL_DEPTH_WRITEMASK -GL_DIFFUSE = glcanvasc.GL_DIFFUSE -GL_DITHER = glcanvasc.GL_DITHER -GL_DOMAIN = glcanvasc.GL_DOMAIN -GL_DONT_CARE = glcanvasc.GL_DONT_CARE -GL_DOUBLE = glcanvasc.GL_DOUBLE -GL_DOUBLEBUFFER = glcanvasc.GL_DOUBLEBUFFER -GL_DOUBLE_EXT = glcanvasc.GL_DOUBLE_EXT -GL_DRAW_BUFFER = glcanvasc.GL_DRAW_BUFFER -GL_DRAW_PIXEL_TOKEN = glcanvasc.GL_DRAW_PIXEL_TOKEN -GL_DST_ALPHA = glcanvasc.GL_DST_ALPHA -GL_DST_COLOR = glcanvasc.GL_DST_COLOR -GL_EDGE_FLAG = glcanvasc.GL_EDGE_FLAG -GL_EDGE_FLAG_ARRAY = glcanvasc.GL_EDGE_FLAG_ARRAY -GL_EDGE_FLAG_ARRAY_COUNT_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_COUNT_EXT -GL_EDGE_FLAG_ARRAY_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_EXT -GL_EDGE_FLAG_ARRAY_POINTER = glcanvasc.GL_EDGE_FLAG_ARRAY_POINTER -GL_EDGE_FLAG_ARRAY_POINTER_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_POINTER_EXT -GL_EDGE_FLAG_ARRAY_STRIDE = glcanvasc.GL_EDGE_FLAG_ARRAY_STRIDE -GL_EDGE_FLAG_ARRAY_STRIDE_EXT = glcanvasc.GL_EDGE_FLAG_ARRAY_STRIDE_EXT -GL_EMISSION = glcanvasc.GL_EMISSION -GL_ENABLE_BIT = glcanvasc.GL_ENABLE_BIT -GL_EQUAL = glcanvasc.GL_EQUAL -GL_EQUIV = glcanvasc.GL_EQUIV -GL_EVAL_BIT = glcanvasc.GL_EVAL_BIT -GL_EXP = glcanvasc.GL_EXP -GL_EXP2 = glcanvasc.GL_EXP2 -GL_EXTENSIONS = glcanvasc.GL_EXTENSIONS -GL_EXT_bgra = glcanvasc.GL_EXT_bgra -GL_EXT_paletted_texture = glcanvasc.GL_EXT_paletted_texture -GL_EXT_vertex_array = glcanvasc.GL_EXT_vertex_array -GL_EYE_LINEAR = glcanvasc.GL_EYE_LINEAR -GL_EYE_PLANE = glcanvasc.GL_EYE_PLANE -GL_FALSE = glcanvasc.GL_FALSE -GL_FASTEST = glcanvasc.GL_FASTEST -GL_FEEDBACK = glcanvasc.GL_FEEDBACK -GL_FEEDBACK_BUFFER_POINTER = glcanvasc.GL_FEEDBACK_BUFFER_POINTER -GL_FEEDBACK_BUFFER_SIZE = glcanvasc.GL_FEEDBACK_BUFFER_SIZE -GL_FEEDBACK_BUFFER_TYPE = glcanvasc.GL_FEEDBACK_BUFFER_TYPE -GL_FILL = glcanvasc.GL_FILL -GL_FLAT = glcanvasc.GL_FLAT -GL_FLOAT = glcanvasc.GL_FLOAT -GL_FOG = glcanvasc.GL_FOG -GL_FOG_BIT = glcanvasc.GL_FOG_BIT -GL_FOG_COLOR = glcanvasc.GL_FOG_COLOR -GL_FOG_DENSITY = glcanvasc.GL_FOG_DENSITY -GL_FOG_END = glcanvasc.GL_FOG_END -GL_FOG_HINT = glcanvasc.GL_FOG_HINT -GL_FOG_INDEX = glcanvasc.GL_FOG_INDEX -GL_FOG_MODE = glcanvasc.GL_FOG_MODE -GL_FOG_START = glcanvasc.GL_FOG_START -GL_FRONT = glcanvasc.GL_FRONT -GL_FRONT_AND_BACK = glcanvasc.GL_FRONT_AND_BACK -GL_FRONT_FACE = glcanvasc.GL_FRONT_FACE -GL_FRONT_LEFT = glcanvasc.GL_FRONT_LEFT -GL_FRONT_RIGHT = glcanvasc.GL_FRONT_RIGHT -GL_GEQUAL = glcanvasc.GL_GEQUAL -GL_GREATER = glcanvasc.GL_GREATER -GL_GREEN = glcanvasc.GL_GREEN -GL_GREEN_BIAS = glcanvasc.GL_GREEN_BIAS -GL_GREEN_BITS = glcanvasc.GL_GREEN_BITS -GL_GREEN_SCALE = glcanvasc.GL_GREEN_SCALE -GL_HINT_BIT = glcanvasc.GL_HINT_BIT -GL_INCR = glcanvasc.GL_INCR -GL_INDEX_ARRAY = glcanvasc.GL_INDEX_ARRAY -GL_INDEX_ARRAY_COUNT_EXT = glcanvasc.GL_INDEX_ARRAY_COUNT_EXT -GL_INDEX_ARRAY_EXT = glcanvasc.GL_INDEX_ARRAY_EXT -GL_INDEX_ARRAY_POINTER = glcanvasc.GL_INDEX_ARRAY_POINTER -GL_INDEX_ARRAY_POINTER_EXT = glcanvasc.GL_INDEX_ARRAY_POINTER_EXT -GL_INDEX_ARRAY_STRIDE = glcanvasc.GL_INDEX_ARRAY_STRIDE -GL_INDEX_ARRAY_STRIDE_EXT = glcanvasc.GL_INDEX_ARRAY_STRIDE_EXT -GL_INDEX_ARRAY_TYPE = glcanvasc.GL_INDEX_ARRAY_TYPE -GL_INDEX_ARRAY_TYPE_EXT = glcanvasc.GL_INDEX_ARRAY_TYPE_EXT -GL_INDEX_BITS = glcanvasc.GL_INDEX_BITS -GL_INDEX_CLEAR_VALUE = glcanvasc.GL_INDEX_CLEAR_VALUE -GL_INDEX_LOGIC_OP = glcanvasc.GL_INDEX_LOGIC_OP -GL_INDEX_MODE = glcanvasc.GL_INDEX_MODE -GL_INDEX_OFFSET = glcanvasc.GL_INDEX_OFFSET -GL_INDEX_SHIFT = glcanvasc.GL_INDEX_SHIFT -GL_INDEX_WRITEMASK = glcanvasc.GL_INDEX_WRITEMASK -GL_INT = glcanvasc.GL_INT -GL_INTENSITY = glcanvasc.GL_INTENSITY -GL_INTENSITY12 = glcanvasc.GL_INTENSITY12 -GL_INTENSITY16 = glcanvasc.GL_INTENSITY16 -GL_INTENSITY4 = glcanvasc.GL_INTENSITY4 -GL_INTENSITY8 = glcanvasc.GL_INTENSITY8 -GL_INVALID_ENUM = glcanvasc.GL_INVALID_ENUM -GL_INVALID_OPERATION = glcanvasc.GL_INVALID_OPERATION -GL_INVALID_VALUE = glcanvasc.GL_INVALID_VALUE -GL_INVERT = glcanvasc.GL_INVERT -GL_KEEP = glcanvasc.GL_KEEP -GL_LEFT = glcanvasc.GL_LEFT -GL_LEQUAL = glcanvasc.GL_LEQUAL -GL_LESS = glcanvasc.GL_LESS -GL_LIGHT0 = glcanvasc.GL_LIGHT0 -GL_LIGHT1 = glcanvasc.GL_LIGHT1 -GL_LIGHT2 = glcanvasc.GL_LIGHT2 -GL_LIGHT3 = glcanvasc.GL_LIGHT3 -GL_LIGHT4 = glcanvasc.GL_LIGHT4 -GL_LIGHT5 = glcanvasc.GL_LIGHT5 -GL_LIGHT6 = glcanvasc.GL_LIGHT6 -GL_LIGHT7 = glcanvasc.GL_LIGHT7 -GL_LIGHTING = glcanvasc.GL_LIGHTING -GL_LIGHTING_BIT = glcanvasc.GL_LIGHTING_BIT -GL_LIGHT_MODEL_AMBIENT = glcanvasc.GL_LIGHT_MODEL_AMBIENT -GL_LIGHT_MODEL_LOCAL_VIEWER = glcanvasc.GL_LIGHT_MODEL_LOCAL_VIEWER -GL_LIGHT_MODEL_TWO_SIDE = glcanvasc.GL_LIGHT_MODEL_TWO_SIDE -GL_LINE = glcanvasc.GL_LINE -GL_LINEAR = glcanvasc.GL_LINEAR -GL_LINEAR_ATTENUATION = glcanvasc.GL_LINEAR_ATTENUATION -GL_LINEAR_MIPMAP_LINEAR = glcanvasc.GL_LINEAR_MIPMAP_LINEAR -GL_LINEAR_MIPMAP_NEAREST = glcanvasc.GL_LINEAR_MIPMAP_NEAREST -GL_LINES = glcanvasc.GL_LINES -GL_LINE_BIT = glcanvasc.GL_LINE_BIT -GL_LINE_LOOP = glcanvasc.GL_LINE_LOOP -GL_LINE_RESET_TOKEN = glcanvasc.GL_LINE_RESET_TOKEN -GL_LINE_SMOOTH = glcanvasc.GL_LINE_SMOOTH -GL_LINE_SMOOTH_HINT = glcanvasc.GL_LINE_SMOOTH_HINT -GL_LINE_STIPPLE = glcanvasc.GL_LINE_STIPPLE -GL_LINE_STIPPLE_PATTERN = glcanvasc.GL_LINE_STIPPLE_PATTERN -GL_LINE_STIPPLE_REPEAT = glcanvasc.GL_LINE_STIPPLE_REPEAT -GL_LINE_STRIP = glcanvasc.GL_LINE_STRIP -GL_LINE_TOKEN = glcanvasc.GL_LINE_TOKEN -GL_LINE_WIDTH = glcanvasc.GL_LINE_WIDTH -GL_LINE_WIDTH_GRANULARITY = glcanvasc.GL_LINE_WIDTH_GRANULARITY -GL_LINE_WIDTH_RANGE = glcanvasc.GL_LINE_WIDTH_RANGE -GL_LIST_BASE = glcanvasc.GL_LIST_BASE -GL_LIST_BIT = glcanvasc.GL_LIST_BIT -GL_LIST_INDEX = glcanvasc.GL_LIST_INDEX -GL_LIST_MODE = glcanvasc.GL_LIST_MODE -GL_LOAD = glcanvasc.GL_LOAD -GL_LOGIC_OP = glcanvasc.GL_LOGIC_OP -GL_LOGIC_OP_MODE = glcanvasc.GL_LOGIC_OP_MODE -GL_LUMINANCE = glcanvasc.GL_LUMINANCE -GL_LUMINANCE12 = glcanvasc.GL_LUMINANCE12 -GL_LUMINANCE12_ALPHA12 = glcanvasc.GL_LUMINANCE12_ALPHA12 -GL_LUMINANCE12_ALPHA4 = glcanvasc.GL_LUMINANCE12_ALPHA4 -GL_LUMINANCE16 = glcanvasc.GL_LUMINANCE16 -GL_LUMINANCE16_ALPHA16 = glcanvasc.GL_LUMINANCE16_ALPHA16 -GL_LUMINANCE4 = glcanvasc.GL_LUMINANCE4 -GL_LUMINANCE4_ALPHA4 = glcanvasc.GL_LUMINANCE4_ALPHA4 -GL_LUMINANCE6_ALPHA2 = glcanvasc.GL_LUMINANCE6_ALPHA2 -GL_LUMINANCE8 = glcanvasc.GL_LUMINANCE8 -GL_LUMINANCE8_ALPHA8 = glcanvasc.GL_LUMINANCE8_ALPHA8 -GL_LUMINANCE_ALPHA = glcanvasc.GL_LUMINANCE_ALPHA -GL_MAP1_COLOR_4 = glcanvasc.GL_MAP1_COLOR_4 -GL_MAP1_GRID_DOMAIN = glcanvasc.GL_MAP1_GRID_DOMAIN -GL_MAP1_GRID_SEGMENTS = glcanvasc.GL_MAP1_GRID_SEGMENTS -GL_MAP1_INDEX = glcanvasc.GL_MAP1_INDEX -GL_MAP1_NORMAL = glcanvasc.GL_MAP1_NORMAL -GL_MAP1_TEXTURE_COORD_1 = glcanvasc.GL_MAP1_TEXTURE_COORD_1 -GL_MAP1_TEXTURE_COORD_2 = glcanvasc.GL_MAP1_TEXTURE_COORD_2 -GL_MAP1_TEXTURE_COORD_3 = glcanvasc.GL_MAP1_TEXTURE_COORD_3 -GL_MAP1_TEXTURE_COORD_4 = glcanvasc.GL_MAP1_TEXTURE_COORD_4 -GL_MAP1_VERTEX_3 = glcanvasc.GL_MAP1_VERTEX_3 -GL_MAP1_VERTEX_4 = glcanvasc.GL_MAP1_VERTEX_4 -GL_MAP2_COLOR_4 = glcanvasc.GL_MAP2_COLOR_4 -GL_MAP2_GRID_DOMAIN = glcanvasc.GL_MAP2_GRID_DOMAIN -GL_MAP2_GRID_SEGMENTS = glcanvasc.GL_MAP2_GRID_SEGMENTS -GL_MAP2_INDEX = glcanvasc.GL_MAP2_INDEX -GL_MAP2_NORMAL = glcanvasc.GL_MAP2_NORMAL -GL_MAP2_TEXTURE_COORD_1 = glcanvasc.GL_MAP2_TEXTURE_COORD_1 -GL_MAP2_TEXTURE_COORD_2 = glcanvasc.GL_MAP2_TEXTURE_COORD_2 -GL_MAP2_TEXTURE_COORD_3 = glcanvasc.GL_MAP2_TEXTURE_COORD_3 -GL_MAP2_TEXTURE_COORD_4 = glcanvasc.GL_MAP2_TEXTURE_COORD_4 -GL_MAP2_VERTEX_3 = glcanvasc.GL_MAP2_VERTEX_3 -GL_MAP2_VERTEX_4 = glcanvasc.GL_MAP2_VERTEX_4 -GL_MAP_COLOR = glcanvasc.GL_MAP_COLOR -GL_MAP_STENCIL = glcanvasc.GL_MAP_STENCIL -GL_MATRIX_MODE = glcanvasc.GL_MATRIX_MODE -GL_MAX_ATTRIB_STACK_DEPTH = glcanvasc.GL_MAX_ATTRIB_STACK_DEPTH -GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = glcanvasc.GL_MAX_CLIENT_ATTRIB_STACK_DEPTH -GL_MAX_CLIP_PLANES = glcanvasc.GL_MAX_CLIP_PLANES -GL_MAX_EVAL_ORDER = glcanvasc.GL_MAX_EVAL_ORDER -GL_MAX_LIGHTS = glcanvasc.GL_MAX_LIGHTS -GL_MAX_LIST_NESTING = glcanvasc.GL_MAX_LIST_NESTING -GL_MAX_MODELVIEW_STACK_DEPTH = glcanvasc.GL_MAX_MODELVIEW_STACK_DEPTH -GL_MAX_NAME_STACK_DEPTH = glcanvasc.GL_MAX_NAME_STACK_DEPTH -GL_MAX_PIXEL_MAP_TABLE = glcanvasc.GL_MAX_PIXEL_MAP_TABLE -GL_MAX_PROJECTION_STACK_DEPTH = glcanvasc.GL_MAX_PROJECTION_STACK_DEPTH -GL_MAX_TEXTURE_SIZE = glcanvasc.GL_MAX_TEXTURE_SIZE -GL_MAX_TEXTURE_STACK_DEPTH = glcanvasc.GL_MAX_TEXTURE_STACK_DEPTH -GL_MAX_VIEWPORT_DIMS = glcanvasc.GL_MAX_VIEWPORT_DIMS -GL_MODELVIEW = glcanvasc.GL_MODELVIEW -GL_MODELVIEW_MATRIX = glcanvasc.GL_MODELVIEW_MATRIX -GL_MODELVIEW_STACK_DEPTH = glcanvasc.GL_MODELVIEW_STACK_DEPTH -GL_MODULATE = glcanvasc.GL_MODULATE -GL_MULT = glcanvasc.GL_MULT -GL_N3F_V3F = glcanvasc.GL_N3F_V3F -GL_NAME_STACK_DEPTH = glcanvasc.GL_NAME_STACK_DEPTH -GL_NAND = glcanvasc.GL_NAND -GL_NEAREST = glcanvasc.GL_NEAREST -GL_NEAREST_MIPMAP_LINEAR = glcanvasc.GL_NEAREST_MIPMAP_LINEAR -GL_NEAREST_MIPMAP_NEAREST = glcanvasc.GL_NEAREST_MIPMAP_NEAREST -GL_NEVER = glcanvasc.GL_NEVER -GL_NICEST = glcanvasc.GL_NICEST -GL_NONE = glcanvasc.GL_NONE -GL_NOOP = glcanvasc.GL_NOOP -GL_NOR = glcanvasc.GL_NOR -GL_NORMALIZE = glcanvasc.GL_NORMALIZE -GL_NORMAL_ARRAY = glcanvasc.GL_NORMAL_ARRAY -GL_NORMAL_ARRAY_COUNT_EXT = glcanvasc.GL_NORMAL_ARRAY_COUNT_EXT -GL_NORMAL_ARRAY_EXT = glcanvasc.GL_NORMAL_ARRAY_EXT -GL_NORMAL_ARRAY_POINTER = glcanvasc.GL_NORMAL_ARRAY_POINTER -GL_NORMAL_ARRAY_POINTER_EXT = glcanvasc.GL_NORMAL_ARRAY_POINTER_EXT -GL_NORMAL_ARRAY_STRIDE = glcanvasc.GL_NORMAL_ARRAY_STRIDE -GL_NORMAL_ARRAY_STRIDE_EXT = glcanvasc.GL_NORMAL_ARRAY_STRIDE_EXT -GL_NORMAL_ARRAY_TYPE = glcanvasc.GL_NORMAL_ARRAY_TYPE -GL_NORMAL_ARRAY_TYPE_EXT = glcanvasc.GL_NORMAL_ARRAY_TYPE_EXT -GL_NOTEQUAL = glcanvasc.GL_NOTEQUAL -GL_NO_ERROR = glcanvasc.GL_NO_ERROR -GL_OBJECT_LINEAR = glcanvasc.GL_OBJECT_LINEAR -GL_OBJECT_PLANE = glcanvasc.GL_OBJECT_PLANE -GL_ONE = glcanvasc.GL_ONE -GL_ONE_MINUS_DST_ALPHA = glcanvasc.GL_ONE_MINUS_DST_ALPHA -GL_ONE_MINUS_DST_COLOR = glcanvasc.GL_ONE_MINUS_DST_COLOR -GL_ONE_MINUS_SRC_ALPHA = glcanvasc.GL_ONE_MINUS_SRC_ALPHA -GL_ONE_MINUS_SRC_COLOR = glcanvasc.GL_ONE_MINUS_SRC_COLOR -GL_OR = glcanvasc.GL_OR -GL_ORDER = glcanvasc.GL_ORDER -GL_OR_INVERTED = glcanvasc.GL_OR_INVERTED -GL_OR_REVERSE = glcanvasc.GL_OR_REVERSE -GL_OUT_OF_MEMORY = glcanvasc.GL_OUT_OF_MEMORY -GL_PACK_ALIGNMENT = glcanvasc.GL_PACK_ALIGNMENT -GL_PACK_LSB_FIRST = glcanvasc.GL_PACK_LSB_FIRST -GL_PACK_ROW_LENGTH = glcanvasc.GL_PACK_ROW_LENGTH -GL_PACK_SKIP_PIXELS = glcanvasc.GL_PACK_SKIP_PIXELS -GL_PACK_SKIP_ROWS = glcanvasc.GL_PACK_SKIP_ROWS -GL_PACK_SWAP_BYTES = glcanvasc.GL_PACK_SWAP_BYTES -GL_PASS_THROUGH_TOKEN = glcanvasc.GL_PASS_THROUGH_TOKEN -GL_PERSPECTIVE_CORRECTION_HINT = glcanvasc.GL_PERSPECTIVE_CORRECTION_HINT -GL_PIXEL_MAP_A_TO_A = glcanvasc.GL_PIXEL_MAP_A_TO_A -GL_PIXEL_MAP_A_TO_A_SIZE = glcanvasc.GL_PIXEL_MAP_A_TO_A_SIZE -GL_PIXEL_MAP_B_TO_B = glcanvasc.GL_PIXEL_MAP_B_TO_B -GL_PIXEL_MAP_B_TO_B_SIZE = glcanvasc.GL_PIXEL_MAP_B_TO_B_SIZE -GL_PIXEL_MAP_G_TO_G = glcanvasc.GL_PIXEL_MAP_G_TO_G -GL_PIXEL_MAP_G_TO_G_SIZE = glcanvasc.GL_PIXEL_MAP_G_TO_G_SIZE -GL_PIXEL_MAP_I_TO_A = glcanvasc.GL_PIXEL_MAP_I_TO_A -GL_PIXEL_MAP_I_TO_A_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_A_SIZE -GL_PIXEL_MAP_I_TO_B = glcanvasc.GL_PIXEL_MAP_I_TO_B -GL_PIXEL_MAP_I_TO_B_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_B_SIZE -GL_PIXEL_MAP_I_TO_G = glcanvasc.GL_PIXEL_MAP_I_TO_G -GL_PIXEL_MAP_I_TO_G_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_G_SIZE -GL_PIXEL_MAP_I_TO_I = glcanvasc.GL_PIXEL_MAP_I_TO_I -GL_PIXEL_MAP_I_TO_I_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_I_SIZE -GL_PIXEL_MAP_I_TO_R = glcanvasc.GL_PIXEL_MAP_I_TO_R -GL_PIXEL_MAP_I_TO_R_SIZE = glcanvasc.GL_PIXEL_MAP_I_TO_R_SIZE -GL_PIXEL_MAP_R_TO_R = glcanvasc.GL_PIXEL_MAP_R_TO_R -GL_PIXEL_MAP_R_TO_R_SIZE = glcanvasc.GL_PIXEL_MAP_R_TO_R_SIZE -GL_PIXEL_MAP_S_TO_S = glcanvasc.GL_PIXEL_MAP_S_TO_S -GL_PIXEL_MAP_S_TO_S_SIZE = glcanvasc.GL_PIXEL_MAP_S_TO_S_SIZE -GL_PIXEL_MODE_BIT = glcanvasc.GL_PIXEL_MODE_BIT -GL_POINT = glcanvasc.GL_POINT -GL_POINTS = glcanvasc.GL_POINTS -GL_POINT_BIT = glcanvasc.GL_POINT_BIT -GL_POINT_SIZE = glcanvasc.GL_POINT_SIZE -GL_POINT_SIZE_GRANULARITY = glcanvasc.GL_POINT_SIZE_GRANULARITY -GL_POINT_SIZE_RANGE = glcanvasc.GL_POINT_SIZE_RANGE -GL_POINT_SMOOTH = glcanvasc.GL_POINT_SMOOTH -GL_POINT_SMOOTH_HINT = glcanvasc.GL_POINT_SMOOTH_HINT -GL_POINT_TOKEN = glcanvasc.GL_POINT_TOKEN -GL_POLYGON = glcanvasc.GL_POLYGON -GL_POLYGON_BIT = glcanvasc.GL_POLYGON_BIT -GL_POLYGON_MODE = glcanvasc.GL_POLYGON_MODE -GL_POLYGON_OFFSET_FACTOR = glcanvasc.GL_POLYGON_OFFSET_FACTOR -GL_POLYGON_OFFSET_FILL = glcanvasc.GL_POLYGON_OFFSET_FILL -GL_POLYGON_OFFSET_LINE = glcanvasc.GL_POLYGON_OFFSET_LINE -GL_POLYGON_OFFSET_POINT = glcanvasc.GL_POLYGON_OFFSET_POINT -GL_POLYGON_OFFSET_UNITS = glcanvasc.GL_POLYGON_OFFSET_UNITS -GL_POLYGON_SMOOTH = glcanvasc.GL_POLYGON_SMOOTH -GL_POLYGON_SMOOTH_HINT = glcanvasc.GL_POLYGON_SMOOTH_HINT -GL_POLYGON_STIPPLE = glcanvasc.GL_POLYGON_STIPPLE -GL_POLYGON_STIPPLE_BIT = glcanvasc.GL_POLYGON_STIPPLE_BIT -GL_POLYGON_TOKEN = glcanvasc.GL_POLYGON_TOKEN -GL_POSITION = glcanvasc.GL_POSITION -GL_PROJECTION = glcanvasc.GL_PROJECTION -GL_PROJECTION_MATRIX = glcanvasc.GL_PROJECTION_MATRIX -GL_PROJECTION_STACK_DEPTH = glcanvasc.GL_PROJECTION_STACK_DEPTH -GL_PROXY_TEXTURE_1D = glcanvasc.GL_PROXY_TEXTURE_1D -GL_PROXY_TEXTURE_2D = glcanvasc.GL_PROXY_TEXTURE_2D -GL_Q = glcanvasc.GL_Q -GL_QUADRATIC_ATTENUATION = glcanvasc.GL_QUADRATIC_ATTENUATION -GL_QUADS = glcanvasc.GL_QUADS -GL_QUAD_STRIP = glcanvasc.GL_QUAD_STRIP -GL_R = glcanvasc.GL_R -GL_R3_G3_B2 = glcanvasc.GL_R3_G3_B2 -GL_READ_BUFFER = glcanvasc.GL_READ_BUFFER -GL_RED = glcanvasc.GL_RED -GL_RED_BIAS = glcanvasc.GL_RED_BIAS -GL_RED_BITS = glcanvasc.GL_RED_BITS -GL_RED_SCALE = glcanvasc.GL_RED_SCALE -GL_RENDER = glcanvasc.GL_RENDER -GL_RENDERER = glcanvasc.GL_RENDERER -GL_RENDER_MODE = glcanvasc.GL_RENDER_MODE -GL_REPEAT = glcanvasc.GL_REPEAT -GL_REPLACE = glcanvasc.GL_REPLACE -GL_RETURN = glcanvasc.GL_RETURN -GL_RGB = glcanvasc.GL_RGB -GL_RGB10 = glcanvasc.GL_RGB10 -GL_RGB10_A2 = glcanvasc.GL_RGB10_A2 -GL_RGB12 = glcanvasc.GL_RGB12 -GL_RGB16 = glcanvasc.GL_RGB16 -GL_RGB4 = glcanvasc.GL_RGB4 -GL_RGB5 = glcanvasc.GL_RGB5 -GL_RGB5_A1 = glcanvasc.GL_RGB5_A1 -GL_RGB8 = glcanvasc.GL_RGB8 -GL_RGBA = glcanvasc.GL_RGBA -GL_RGBA12 = glcanvasc.GL_RGBA12 -GL_RGBA16 = glcanvasc.GL_RGBA16 -GL_RGBA2 = glcanvasc.GL_RGBA2 -GL_RGBA4 = glcanvasc.GL_RGBA4 -GL_RGBA8 = glcanvasc.GL_RGBA8 -GL_RGBA_MODE = glcanvasc.GL_RGBA_MODE -GL_RIGHT = glcanvasc.GL_RIGHT -GL_S = glcanvasc.GL_S -GL_SCISSOR_BIT = glcanvasc.GL_SCISSOR_BIT -GL_SCISSOR_BOX = glcanvasc.GL_SCISSOR_BOX -GL_SCISSOR_TEST = glcanvasc.GL_SCISSOR_TEST -GL_SELECT = glcanvasc.GL_SELECT -GL_SELECTION_BUFFER_POINTER = glcanvasc.GL_SELECTION_BUFFER_POINTER -GL_SELECTION_BUFFER_SIZE = glcanvasc.GL_SELECTION_BUFFER_SIZE -GL_SET = glcanvasc.GL_SET -GL_SHADE_MODEL = glcanvasc.GL_SHADE_MODEL -GL_SHININESS = glcanvasc.GL_SHININESS -GL_SHORT = glcanvasc.GL_SHORT -GL_SMOOTH = glcanvasc.GL_SMOOTH -GL_SPECULAR = glcanvasc.GL_SPECULAR -GL_SPHERE_MAP = glcanvasc.GL_SPHERE_MAP -GL_SPOT_CUTOFF = glcanvasc.GL_SPOT_CUTOFF -GL_SPOT_DIRECTION = glcanvasc.GL_SPOT_DIRECTION -GL_SPOT_EXPONENT = glcanvasc.GL_SPOT_EXPONENT -GL_SRC_ALPHA = glcanvasc.GL_SRC_ALPHA -GL_SRC_ALPHA_SATURATE = glcanvasc.GL_SRC_ALPHA_SATURATE -GL_SRC_COLOR = glcanvasc.GL_SRC_COLOR -GL_STACK_OVERFLOW = glcanvasc.GL_STACK_OVERFLOW -GL_STACK_UNDERFLOW = glcanvasc.GL_STACK_UNDERFLOW -GL_STENCIL = glcanvasc.GL_STENCIL -GL_STENCIL_BITS = glcanvasc.GL_STENCIL_BITS -GL_STENCIL_BUFFER_BIT = glcanvasc.GL_STENCIL_BUFFER_BIT -GL_STENCIL_CLEAR_VALUE = glcanvasc.GL_STENCIL_CLEAR_VALUE -GL_STENCIL_FAIL = glcanvasc.GL_STENCIL_FAIL -GL_STENCIL_FUNC = glcanvasc.GL_STENCIL_FUNC -GL_STENCIL_INDEX = glcanvasc.GL_STENCIL_INDEX -GL_STENCIL_PASS_DEPTH_FAIL = glcanvasc.GL_STENCIL_PASS_DEPTH_FAIL -GL_STENCIL_PASS_DEPTH_PASS = glcanvasc.GL_STENCIL_PASS_DEPTH_PASS -GL_STENCIL_REF = glcanvasc.GL_STENCIL_REF -GL_STENCIL_TEST = glcanvasc.GL_STENCIL_TEST -GL_STENCIL_VALUE_MASK = glcanvasc.GL_STENCIL_VALUE_MASK -GL_STENCIL_WRITEMASK = glcanvasc.GL_STENCIL_WRITEMASK -GL_STEREO = glcanvasc.GL_STEREO -GL_SUBPIXEL_BITS = glcanvasc.GL_SUBPIXEL_BITS -GL_T = glcanvasc.GL_T -GL_T2F_C3F_V3F = glcanvasc.GL_T2F_C3F_V3F -GL_T2F_C4F_N3F_V3F = glcanvasc.GL_T2F_C4F_N3F_V3F -GL_T2F_C4UB_V3F = glcanvasc.GL_T2F_C4UB_V3F -GL_T2F_N3F_V3F = glcanvasc.GL_T2F_N3F_V3F -GL_T2F_V3F = glcanvasc.GL_T2F_V3F -GL_T4F_C4F_N3F_V4F = glcanvasc.GL_T4F_C4F_N3F_V4F -GL_T4F_V4F = glcanvasc.GL_T4F_V4F -GL_TEXTURE = glcanvasc.GL_TEXTURE -GL_TEXTURE_1D = glcanvasc.GL_TEXTURE_1D -GL_TEXTURE_2D = glcanvasc.GL_TEXTURE_2D -GL_TEXTURE_ALPHA_SIZE = glcanvasc.GL_TEXTURE_ALPHA_SIZE -GL_TEXTURE_BINDING_1D = glcanvasc.GL_TEXTURE_BINDING_1D -GL_TEXTURE_BINDING_2D = glcanvasc.GL_TEXTURE_BINDING_2D -GL_TEXTURE_BIT = glcanvasc.GL_TEXTURE_BIT -GL_TEXTURE_BLUE_SIZE = glcanvasc.GL_TEXTURE_BLUE_SIZE -GL_TEXTURE_BORDER = glcanvasc.GL_TEXTURE_BORDER -GL_TEXTURE_BORDER_COLOR = glcanvasc.GL_TEXTURE_BORDER_COLOR -GL_TEXTURE_COMPONENTS = glcanvasc.GL_TEXTURE_COMPONENTS -GL_TEXTURE_COORD_ARRAY = glcanvasc.GL_TEXTURE_COORD_ARRAY -GL_TEXTURE_COORD_ARRAY_COUNT_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_COUNT_EXT -GL_TEXTURE_COORD_ARRAY_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_EXT -GL_TEXTURE_COORD_ARRAY_POINTER = glcanvasc.GL_TEXTURE_COORD_ARRAY_POINTER -GL_TEXTURE_COORD_ARRAY_POINTER_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_POINTER_EXT -GL_TEXTURE_COORD_ARRAY_SIZE = glcanvasc.GL_TEXTURE_COORD_ARRAY_SIZE -GL_TEXTURE_COORD_ARRAY_SIZE_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_SIZE_EXT -GL_TEXTURE_COORD_ARRAY_STRIDE = glcanvasc.GL_TEXTURE_COORD_ARRAY_STRIDE -GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_STRIDE_EXT -GL_TEXTURE_COORD_ARRAY_TYPE = glcanvasc.GL_TEXTURE_COORD_ARRAY_TYPE -GL_TEXTURE_COORD_ARRAY_TYPE_EXT = glcanvasc.GL_TEXTURE_COORD_ARRAY_TYPE_EXT -GL_TEXTURE_ENV = glcanvasc.GL_TEXTURE_ENV -GL_TEXTURE_ENV_COLOR = glcanvasc.GL_TEXTURE_ENV_COLOR -GL_TEXTURE_ENV_MODE = glcanvasc.GL_TEXTURE_ENV_MODE -GL_TEXTURE_GEN_MODE = glcanvasc.GL_TEXTURE_GEN_MODE -GL_TEXTURE_GEN_Q = glcanvasc.GL_TEXTURE_GEN_Q -GL_TEXTURE_GEN_R = glcanvasc.GL_TEXTURE_GEN_R -GL_TEXTURE_GEN_S = glcanvasc.GL_TEXTURE_GEN_S -GL_TEXTURE_GEN_T = glcanvasc.GL_TEXTURE_GEN_T -GL_TEXTURE_GREEN_SIZE = glcanvasc.GL_TEXTURE_GREEN_SIZE -GL_TEXTURE_HEIGHT = glcanvasc.GL_TEXTURE_HEIGHT -GL_TEXTURE_INTENSITY_SIZE = glcanvasc.GL_TEXTURE_INTENSITY_SIZE -GL_TEXTURE_INTERNAL_FORMAT = glcanvasc.GL_TEXTURE_INTERNAL_FORMAT -GL_TEXTURE_LUMINANCE_SIZE = glcanvasc.GL_TEXTURE_LUMINANCE_SIZE -GL_TEXTURE_MAG_FILTER = glcanvasc.GL_TEXTURE_MAG_FILTER -GL_TEXTURE_MATRIX = glcanvasc.GL_TEXTURE_MATRIX -GL_TEXTURE_MIN_FILTER = glcanvasc.GL_TEXTURE_MIN_FILTER -GL_TEXTURE_PRIORITY = glcanvasc.GL_TEXTURE_PRIORITY -GL_TEXTURE_RED_SIZE = glcanvasc.GL_TEXTURE_RED_SIZE -GL_TEXTURE_RESIDENT = glcanvasc.GL_TEXTURE_RESIDENT -GL_TEXTURE_STACK_DEPTH = glcanvasc.GL_TEXTURE_STACK_DEPTH -GL_TEXTURE_WIDTH = glcanvasc.GL_TEXTURE_WIDTH -GL_TEXTURE_WRAP_S = glcanvasc.GL_TEXTURE_WRAP_S -GL_TEXTURE_WRAP_T = glcanvasc.GL_TEXTURE_WRAP_T -GL_TRANSFORM_BIT = glcanvasc.GL_TRANSFORM_BIT -GL_TRIANGLES = glcanvasc.GL_TRIANGLES -GL_TRIANGLE_FAN = glcanvasc.GL_TRIANGLE_FAN -GL_TRIANGLE_STRIP = glcanvasc.GL_TRIANGLE_STRIP -GL_TRUE = glcanvasc.GL_TRUE -GL_UNPACK_ALIGNMENT = glcanvasc.GL_UNPACK_ALIGNMENT -GL_UNPACK_LSB_FIRST = glcanvasc.GL_UNPACK_LSB_FIRST -GL_UNPACK_ROW_LENGTH = glcanvasc.GL_UNPACK_ROW_LENGTH -GL_UNPACK_SKIP_PIXELS = glcanvasc.GL_UNPACK_SKIP_PIXELS -GL_UNPACK_SKIP_ROWS = glcanvasc.GL_UNPACK_SKIP_ROWS -GL_UNPACK_SWAP_BYTES = glcanvasc.GL_UNPACK_SWAP_BYTES -GL_UNSIGNED_BYTE = glcanvasc.GL_UNSIGNED_BYTE -GL_UNSIGNED_INT = glcanvasc.GL_UNSIGNED_INT -GL_UNSIGNED_SHORT = glcanvasc.GL_UNSIGNED_SHORT -GL_V2F = glcanvasc.GL_V2F -GL_V3F = glcanvasc.GL_V3F -GL_VENDOR = glcanvasc.GL_VENDOR -GL_VERSION = glcanvasc.GL_VERSION -GL_VERTEX_ARRAY = glcanvasc.GL_VERTEX_ARRAY -GL_VERTEX_ARRAY_COUNT_EXT = glcanvasc.GL_VERTEX_ARRAY_COUNT_EXT -GL_VERTEX_ARRAY_EXT = glcanvasc.GL_VERTEX_ARRAY_EXT -GL_VERTEX_ARRAY_POINTER = glcanvasc.GL_VERTEX_ARRAY_POINTER -GL_VERTEX_ARRAY_POINTER_EXT = glcanvasc.GL_VERTEX_ARRAY_POINTER_EXT -GL_VERTEX_ARRAY_SIZE = glcanvasc.GL_VERTEX_ARRAY_SIZE -GL_VERTEX_ARRAY_SIZE_EXT = glcanvasc.GL_VERTEX_ARRAY_SIZE_EXT -GL_VERTEX_ARRAY_STRIDE = glcanvasc.GL_VERTEX_ARRAY_STRIDE -GL_VERTEX_ARRAY_STRIDE_EXT = glcanvasc.GL_VERTEX_ARRAY_STRIDE_EXT -GL_VERTEX_ARRAY_TYPE = glcanvasc.GL_VERTEX_ARRAY_TYPE -GL_VERTEX_ARRAY_TYPE_EXT = glcanvasc.GL_VERTEX_ARRAY_TYPE_EXT -GL_VIEWPORT = glcanvasc.GL_VIEWPORT -GL_VIEWPORT_BIT = glcanvasc.GL_VIEWPORT_BIT -GL_XOR = glcanvasc.GL_XOR -GL_ZERO = glcanvasc.GL_ZERO -GL_ZOOM_X = glcanvasc.GL_ZOOM_X -GL_ZOOM_Y = glcanvasc.GL_ZOOM_Y diff --git a/utils/wxPython/src/msw/image.cpp b/utils/wxPython/src/msw/image.cpp deleted file mode 100644 index 5609152eb5..0000000000 --- a/utils/wxPython/src/msw/image.cpp +++ /dev/null @@ -1,1596 +0,0 @@ -/* - * FILE : msw/image.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initimagec - -#define SWIG_name "imagec" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - - wxImage* wxNullImage() { - return new wxImage; - } - - wxImage* wxEmptyImage(int width, int height) { - return new wxImage(width, height); - } - - wxImage* wxImageFromMime(const wxString& name, const wxString& mimetype) { - return new wxImage(name, mimetype); - } - - wxImage* wxImageFromBitmap(const wxBitmap &bitmap) { - return new wxImage(bitmap); - } - - void wxImage_AddHandler(wxImageHandler *handler) { - wxImage::AddHandler(handler); - } -static PyObject *_wrap_wxNullImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":wxNullImage")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxNullImage(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxEmptyImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - int _arg0; - int _arg1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ii:wxEmptyImage",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxEmptyImage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxImageFromMime(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxString * _arg0; - wxString * _arg1; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"OO:wxImageFromMime",&_obj0,&_obj1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxImageFromMime(*_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyObject *_wrap_wxImageFromBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxBitmap * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageFromBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageFromBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)wxImageFromBitmap(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxImage_AddHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_AddHandler",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_AddHandler. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_AddHandler(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxImageHandler() (new wxImageHandler()) -static PyObject *_wrap_new_wxImageHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxImageHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageHandler *)new_wxImageHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImageHandler_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxImageHandler_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetName. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxImageHandler_GetName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxImageHandler_GetExtension(_swigobj) (_swigobj->GetExtension()) -static PyObject *_wrap_wxImageHandler_GetExtension(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetExtension",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetExtension. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxImageHandler_GetExtension(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxImageHandler_GetType(_swigobj) (_swigobj->GetType()) -static PyObject *_wrap_wxImageHandler_GetType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetType",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxImageHandler_GetType(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxImageHandler_GetMimeType(_swigobj) (_swigobj->GetMimeType()) -static PyObject *_wrap_wxImageHandler_GetMimeType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxImageHandler * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImageHandler_GetMimeType",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_GetMimeType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxImageHandler_GetMimeType(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxImageHandler_SetName(_swigobj,_swigarg0) (_swigobj->SetName(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxImageHandler_SetName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetName. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImageHandler_SetExtension(_swigobj,_swigarg0) (_swigobj->SetExtension(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetExtension(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxImageHandler_SetExtension",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetExtension. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetExtension(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImageHandler_SetType(_swigobj,_swigarg0) (_swigobj->SetType(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxImageHandler_SetType",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetType(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImageHandler_SetMimeType(_swigobj,_swigarg0) (_swigobj->SetMimeType(_swigarg0)) -static PyObject *_wrap_wxImageHandler_SetMimeType(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageHandler * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxImageHandler_SetMimeType",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImageHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImageHandler_SetMimeType. Expected _wxImageHandler_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImageHandler_SetMimeType(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static void *SwigwxPNGHandlerTowxImageHandler(void *ptr) { - wxPNGHandler *src; - wxImageHandler *dest; - src = (wxPNGHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxPNGHandler() (new wxPNGHandler()) -static PyObject *_wrap_new_wxPNGHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPNGHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPNGHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPNGHandler *)new_wxPNGHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPNGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxJPEGHandlerTowxImageHandler(void *ptr) { - wxJPEGHandler *src; - wxImageHandler *dest; - src = (wxJPEGHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxJPEGHandler() (new wxJPEGHandler()) -static PyObject *_wrap_new_wxJPEGHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxJPEGHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxJPEGHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxJPEGHandler *)new_wxJPEGHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxJPEGHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxBMPHandlerTowxImageHandler(void *ptr) { - wxBMPHandler *src; - wxImageHandler *dest; - src = (wxBMPHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxBMPHandler() (new wxBMPHandler()) -static PyObject *_wrap_new_wxBMPHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBMPHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxBMPHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBMPHandler *)new_wxBMPHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBMPHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxGIFHandlerTowxImageHandler(void *ptr) { - wxGIFHandler *src; - wxImageHandler *dest; - src = (wxGIFHandler *) ptr; - dest = (wxImageHandler *) src; - return (void *) dest; -} - -#define new_wxGIFHandler() (new wxGIFHandler()) -static PyObject *_wrap_new_wxGIFHandler(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGIFHandler * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxGIFHandler")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGIFHandler *)new_wxGIFHandler(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGIFHandler_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxImage(_swigarg0,_swigarg1) (new wxImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxString * _arg0; - long _arg1 = (wxBITMAP_TYPE_PNG); - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|l:new_wxImage",&_obj0,&_arg1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImage *)new_wxImage(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxImage(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxImage",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxImage. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxImage(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_ConvertToBitmap(_swigobj) (_swigobj->ConvertToBitmap()) -static PyObject *_wrap_wxImage_ConvertToBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxImage * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_ConvertToBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_ConvertToBitmap. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxBitmap (wxImage_ConvertToBitmap(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImage_Create(_swigobj,_swigarg0,_swigarg1) (_swigobj->Create(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_Create(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_Create",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Create. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_Create(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_Destroy(_swigobj) (_swigobj->Destroy()) -static PyObject *_wrap_wxImage_Destroy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_Destroy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Destroy. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_Destroy(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_Scale(_swigobj,_swigarg0,_swigarg1) (_swigobj->Scale(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_Scale(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_Scale",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Scale. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxImage (wxImage_Scale(_arg0,_arg1,_arg2)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxImage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImage_SetRGB(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetRGB(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxImage_SetRGB(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - int _arg1; - int _arg2; - unsigned char _arg3; - unsigned char _arg4; - unsigned char _arg5; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siibbb:wxImage_SetRGB",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetRGB. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetRGB(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_GetRed(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetRed(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_GetRed(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_GetRed",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetRed. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetRed(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetGreen(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetGreen(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_GetGreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_GetGreen",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetGreen. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetGreen(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetBlue(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetBlue(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_GetBlue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxImage_GetBlue",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetBlue. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetBlue(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_LoadFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - long _arg2 = (wxBITMAP_TYPE_PNG); - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|l:wxImage_LoadFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_LoadFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_LoadFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImage_LoadMimeFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_LoadMimeFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxImage_LoadMimeFile",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_LoadMimeFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_LoadMimeFile(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxImage_SaveFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->SaveFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_SaveFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - int _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOi:wxImage_SaveFile",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SaveFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_SaveFile(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxImage_SaveMimeFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->SaveFile(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxImage_SaveMimeFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxImage_SaveMimeFile",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SaveMimeFile. Expected _wxImage_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_SaveMimeFile(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxImage_Ok(_swigobj) (_swigobj->Ok()) -static PyObject *_wrap_wxImage_Ok(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_Ok",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_Ok. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_Ok(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImage_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxImage_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetWidth. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImage_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImage_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxImage_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetHeight. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxImage_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxImage_GetData(_swigobj) (_swigobj->GetData()) -static PyObject *_wrap_wxImage_GetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char * _result; - wxImage * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetData",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetData. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char *)wxImage_GetData(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_unsigned_char_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxImage_SetData(_swigobj,_swigarg0) (_swigobj->SetData(_swigarg0)) -static PyObject *_wrap_wxImage_SetData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - unsigned char * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxImage_SetData",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetData. Expected _wxImage_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_unsigned_char_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxImage_SetData. Expected _unsigned_char_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_SetMaskColour(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetMaskColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxImage_SetMaskColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - unsigned char _arg1; - unsigned char _arg2; - unsigned char _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sbbb:wxImage_SetMaskColour",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetMaskColour. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetMaskColour(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_GetMaskRed(_swigobj) (_swigobj->GetMaskRed()) -static PyObject *_wrap_wxImage_GetMaskRed(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetMaskRed",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetMaskRed. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetMaskRed(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetMaskGreen(_swigobj) (_swigobj->GetMaskGreen()) -static PyObject *_wrap_wxImage_GetMaskGreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetMaskGreen",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetMaskGreen. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetMaskGreen(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_GetMaskBlue(_swigobj) (_swigobj->GetMaskBlue()) -static PyObject *_wrap_wxImage_GetMaskBlue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - unsigned char _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_GetMaskBlue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_GetMaskBlue. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (unsigned char )wxImage_GetMaskBlue(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("b",_result); - return _resultobj; -} - -#define wxImage_SetMask(_swigobj,_swigarg0) (_swigobj->SetMask(_swigarg0)) -static PyObject *_wrap_wxImage_SetMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImage * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxImage_SetMask",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_SetMask. Expected _wxImage_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxImage_SetMask(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxImage_HasMask(_swigobj) (_swigobj->HasMask()) -static PyObject *_wrap_wxImage_HasMask(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxImage * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxImage_HasMask",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxImage_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_HasMask. Expected _wxImage_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxImage_HasMask(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef imagecMethods[] = { - { "wxImage_HasMask", _wrap_wxImage_HasMask, 1 }, - { "wxImage_SetMask", _wrap_wxImage_SetMask, 1 }, - { "wxImage_GetMaskBlue", _wrap_wxImage_GetMaskBlue, 1 }, - { "wxImage_GetMaskGreen", _wrap_wxImage_GetMaskGreen, 1 }, - { "wxImage_GetMaskRed", _wrap_wxImage_GetMaskRed, 1 }, - { "wxImage_SetMaskColour", _wrap_wxImage_SetMaskColour, 1 }, - { "wxImage_SetData", _wrap_wxImage_SetData, 1 }, - { "wxImage_GetData", _wrap_wxImage_GetData, 1 }, - { "wxImage_GetHeight", _wrap_wxImage_GetHeight, 1 }, - { "wxImage_GetWidth", _wrap_wxImage_GetWidth, 1 }, - { "wxImage_Ok", _wrap_wxImage_Ok, 1 }, - { "wxImage_SaveMimeFile", _wrap_wxImage_SaveMimeFile, 1 }, - { "wxImage_SaveFile", _wrap_wxImage_SaveFile, 1 }, - { "wxImage_LoadMimeFile", _wrap_wxImage_LoadMimeFile, 1 }, - { "wxImage_LoadFile", _wrap_wxImage_LoadFile, 1 }, - { "wxImage_GetBlue", _wrap_wxImage_GetBlue, 1 }, - { "wxImage_GetGreen", _wrap_wxImage_GetGreen, 1 }, - { "wxImage_GetRed", _wrap_wxImage_GetRed, 1 }, - { "wxImage_SetRGB", _wrap_wxImage_SetRGB, 1 }, - { "wxImage_Scale", _wrap_wxImage_Scale, 1 }, - { "wxImage_Destroy", _wrap_wxImage_Destroy, 1 }, - { "wxImage_Create", _wrap_wxImage_Create, 1 }, - { "wxImage_ConvertToBitmap", _wrap_wxImage_ConvertToBitmap, 1 }, - { "delete_wxImage", _wrap_delete_wxImage, 1 }, - { "new_wxImage", _wrap_new_wxImage, 1 }, - { "new_wxGIFHandler", _wrap_new_wxGIFHandler, 1 }, - { "new_wxBMPHandler", _wrap_new_wxBMPHandler, 1 }, - { "new_wxJPEGHandler", _wrap_new_wxJPEGHandler, 1 }, - { "new_wxPNGHandler", _wrap_new_wxPNGHandler, 1 }, - { "wxImageHandler_SetMimeType", _wrap_wxImageHandler_SetMimeType, 1 }, - { "wxImageHandler_SetType", _wrap_wxImageHandler_SetType, 1 }, - { "wxImageHandler_SetExtension", _wrap_wxImageHandler_SetExtension, 1 }, - { "wxImageHandler_SetName", _wrap_wxImageHandler_SetName, 1 }, - { "wxImageHandler_GetMimeType", _wrap_wxImageHandler_GetMimeType, 1 }, - { "wxImageHandler_GetType", _wrap_wxImageHandler_GetType, 1 }, - { "wxImageHandler_GetExtension", _wrap_wxImageHandler_GetExtension, 1 }, - { "wxImageHandler_GetName", _wrap_wxImageHandler_GetName, 1 }, - { "new_wxImageHandler", _wrap_new_wxImageHandler, 1 }, - { "wxImage_AddHandler", _wrap_wxImage_AddHandler, 1 }, - { "wxImageFromBitmap", _wrap_wxImageFromBitmap, 1 }, - { "wxImageFromMime", _wrap_wxImageFromMime, 1 }, - { "wxEmptyImage", _wrap_wxEmptyImage, 1 }, - { "wxNullImage", _wrap_wxNullImage, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initimagec)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("imagec", imagecMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxJPEGHandler","_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxBMPHandler","_class_wxBMPHandler",0); - SWIG_RegisterMapping("_wxImage","_class_wxImage",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxGIFHandler","_class_wxGIFHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_wxImageHandler","_class_wxImageHandler",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPNGHandler","_class_wxPNGHandler",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_class_wxBMPHandler","_wxBMPHandler",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxGIFHandler","_wxGIFHandler",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxPNGHandler","_wxPNGHandler",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_class_wxImage","_wxImage",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxGIFHandler",SwigwxGIFHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxBMPHandler",SwigwxBMPHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxJPEGHandler",SwigwxJPEGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_class_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxPNGHandler",SwigwxPNGHandlerTowxImageHandler); - SWIG_RegisterMapping("_class_wxImageHandler","_wxImageHandler",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxJPEGHandler","_class_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); -} diff --git a/utils/wxPython/src/msw/image.py b/utils/wxPython/src/msw/image.py deleted file mode 100644 index 6743bf9b5c..0000000000 --- a/utils/wxPython/src/msw/image.py +++ /dev/null @@ -1,226 +0,0 @@ -# This file was created automatically by SWIG. -import imagec - -from misc import * - -from gdi import * -class wxImageHandlerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetName(self): - val = imagec.wxImageHandler_GetName(self.this) - return val - def GetExtension(self): - val = imagec.wxImageHandler_GetExtension(self.this) - return val - def GetType(self): - val = imagec.wxImageHandler_GetType(self.this) - return val - def GetMimeType(self): - val = imagec.wxImageHandler_GetMimeType(self.this) - return val - def SetName(self,arg0): - val = imagec.wxImageHandler_SetName(self.this,arg0) - return val - def SetExtension(self,arg0): - val = imagec.wxImageHandler_SetExtension(self.this,arg0) - return val - def SetType(self,arg0): - val = imagec.wxImageHandler_SetType(self.this,arg0) - return val - def SetMimeType(self,arg0): - val = imagec.wxImageHandler_SetMimeType(self.this,arg0) - return val - def __repr__(self): - return "" -class wxImageHandler(wxImageHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxImageHandler() - self.thisown = 1 - - - - -class wxPNGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxPNGHandler(wxPNGHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxPNGHandler() - self.thisown = 1 - - - - -class wxJPEGHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxJPEGHandler(wxJPEGHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxJPEGHandler() - self.thisown = 1 - - - - -class wxBMPHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxBMPHandler(wxBMPHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxBMPHandler() - self.thisown = 1 - - - - -class wxGIFHandlerPtr(wxImageHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxGIFHandler(wxGIFHandlerPtr): - def __init__(self) : - self.this = imagec.new_wxGIFHandler() - self.thisown = 1 - - - - -class wxImagePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - imagec.delete_wxImage(self.this) - def ConvertToBitmap(self): - val = imagec.wxImage_ConvertToBitmap(self.this) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - def Create(self,arg0,arg1): - val = imagec.wxImage_Create(self.this,arg0,arg1) - return val - def Destroy(self): - val = imagec.wxImage_Destroy(self.this) - return val - def Scale(self,arg0,arg1): - val = imagec.wxImage_Scale(self.this,arg0,arg1) - val = wxImagePtr(val) - val.thisown = 1 - return val - def SetRGB(self,arg0,arg1,arg2,arg3,arg4): - val = imagec.wxImage_SetRGB(self.this,arg0,arg1,arg2,arg3,arg4) - return val - def GetRed(self,arg0,arg1): - val = imagec.wxImage_GetRed(self.this,arg0,arg1) - return val - def GetGreen(self,arg0,arg1): - val = imagec.wxImage_GetGreen(self.this,arg0,arg1) - return val - def GetBlue(self,arg0,arg1): - val = imagec.wxImage_GetBlue(self.this,arg0,arg1) - return val - def LoadFile(self,arg0,*args): - val = apply(imagec.wxImage_LoadFile,(self.this,arg0,)+args) - return val - def LoadMimeFile(self,arg0,arg1): - val = imagec.wxImage_LoadMimeFile(self.this,arg0,arg1) - return val - def SaveFile(self,arg0,arg1): - val = imagec.wxImage_SaveFile(self.this,arg0,arg1) - return val - def SaveMimeFile(self,arg0,arg1): - val = imagec.wxImage_SaveMimeFile(self.this,arg0,arg1) - return val - def Ok(self): - val = imagec.wxImage_Ok(self.this) - return val - def GetWidth(self): - val = imagec.wxImage_GetWidth(self.this) - return val - def GetHeight(self): - val = imagec.wxImage_GetHeight(self.this) - return val - def GetData(self): - val = imagec.wxImage_GetData(self.this) - return val - def SetData(self,arg0): - val = imagec.wxImage_SetData(self.this,arg0) - return val - def SetMaskColour(self,arg0,arg1,arg2): - val = imagec.wxImage_SetMaskColour(self.this,arg0,arg1,arg2) - return val - def GetMaskRed(self): - val = imagec.wxImage_GetMaskRed(self.this) - return val - def GetMaskGreen(self): - val = imagec.wxImage_GetMaskGreen(self.this) - return val - def GetMaskBlue(self): - val = imagec.wxImage_GetMaskBlue(self.this) - return val - def SetMask(self,*args): - val = apply(imagec.wxImage_SetMask,(self.this,)+args) - return val - def HasMask(self): - val = imagec.wxImage_HasMask(self.this) - return val - def __repr__(self): - return "" -class wxImage(wxImagePtr): - def __init__(self,arg0,*args) : - self.this = apply(imagec.new_wxImage,(arg0,)+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxNullImage(): - val = imagec.wxNullImage() - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxEmptyImage(arg0,arg1): - val = imagec.wxEmptyImage(arg0,arg1) - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxImageFromMime(arg0,arg1): - val = imagec.wxImageFromMime(arg0,arg1) - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxImageFromBitmap(arg0): - val = imagec.wxImageFromBitmap(arg0.this) - val = wxImagePtr(val) - val.thisown = 1 - return val - -def wxImage_AddHandler(arg0): - val = imagec.wxImage_AddHandler(arg0.this) - return val - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/mdi.cpp b/utils/wxPython/src/msw/mdi.cpp deleted file mode 100644 index 66866f01ae..0000000000 --- a/utils/wxPython/src/msw/mdi.cpp +++ /dev/null @@ -1,931 +0,0 @@ -/* - * FILE : msw/mdi.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initmdic - -#define SWIG_name "mdic" - -#include "helpers.h" - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxMDIParentFrameTowxFrame(void *ptr) { - wxMDIParentFrame *src; - wxFrame *dest; - src = (wxMDIParentFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxMDIParentFrameTowxWindow(void *ptr) { - wxMDIParentFrame *src; - wxWindow *dest; - src = (wxMDIParentFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMDIParentFrameTowxEvtHandler(void *ptr) { - wxMDIParentFrame *src; - wxEvtHandler *dest; - src = (wxMDIParentFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMDIParentFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxMDIParentFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxMDIParentFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE)|(wxVSCROLL)|(wxHSCROLL); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxMDIParentFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMDIParentFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIParentFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMDIParentFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIParentFrame *)new_wxMDIParentFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIParentFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMDIParentFrame_ActivateNext(_swigobj) (_swigobj->ActivateNext()) -static PyObject *_wrap_wxMDIParentFrame_ActivateNext(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_ActivateNext",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_ActivateNext. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_ActivateNext(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_ActivatePrevious(_swigobj) (_swigobj->ActivatePrevious()) -static PyObject *_wrap_wxMDIParentFrame_ActivatePrevious(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_ActivatePrevious",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_ActivatePrevious. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_ActivatePrevious(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_ArrangeIcons(_swigobj) (_swigobj->ArrangeIcons()) -static PyObject *_wrap_wxMDIParentFrame_ArrangeIcons(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_ArrangeIcons",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_ArrangeIcons. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_ArrangeIcons(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_Cascade(_swigobj) (_swigobj->Cascade()) -static PyObject *_wrap_wxMDIParentFrame_Cascade(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_Cascade",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_Cascade. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_Cascade(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_GetActiveChild(_swigobj) (_swigobj->GetActiveChild()) -static PyObject *_wrap_wxMDIParentFrame_GetActiveChild(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _result; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_GetActiveChild",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_GetActiveChild. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIChildFrame *)wxMDIParentFrame_GetActiveChild(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMDIParentFrame_GetClientWindow(_swigobj) (_swigobj->GetClientWindow()) -static PyObject *_wrap_wxMDIParentFrame_GetClientWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIClientWindow * _result; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_GetClientWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_GetClientWindow. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIClientWindow *)wxMDIParentFrame_GetClientWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMDIParentFrame_GetToolBar(_swigobj) (_swigobj->GetToolBar()) -static PyObject *_wrap_wxMDIParentFrame_GetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_GetToolBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_GetToolBar. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxMDIParentFrame_GetToolBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMDIParentFrame_SetToolBar(_swigobj,_swigarg0) (_swigobj->SetToolBar(_swigarg0)) -static PyObject *_wrap_wxMDIParentFrame_SetToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - wxToolBar * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMDIParentFrame_SetToolBar",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_SetToolBar. Expected _wxMDIParentFrame_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMDIParentFrame_SetToolBar. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_SetToolBar(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIParentFrame_Tile(_swigobj) (_swigobj->Tile()) -static PyObject *_wrap_wxMDIParentFrame_Tile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIParentFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIParentFrame_Tile",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIParentFrame_Tile. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIParentFrame_Tile(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMDIChildFrameTowxFrame(void *ptr) { - wxMDIChildFrame *src; - wxFrame *dest; - src = (wxMDIChildFrame *) ptr; - dest = (wxFrame *) src; - return (void *) dest; -} - -static void *SwigwxMDIChildFrameTowxWindow(void *ptr) { - wxMDIChildFrame *src; - wxWindow *dest; - src = (wxMDIChildFrame *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMDIChildFrameTowxEvtHandler(void *ptr) { - wxMDIChildFrame *src; - wxEvtHandler *dest; - src = (wxMDIChildFrame *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMDIChildFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxMDIChildFrame(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxMDIChildFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _result; - wxMDIParentFrame * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_FRAME_STYLE); - char * _arg6 = "frame"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxMDIChildFrame",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMDIChildFrame. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxMDIChildFrame. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxMDIChildFrame. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIChildFrame *)new_wxMDIChildFrame(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIChildFrame_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMDIChildFrame_Activate(_swigobj) (_swigobj->Activate()) -static PyObject *_wrap_wxMDIChildFrame_Activate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIChildFrame_Activate",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIChildFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIChildFrame_Activate. Expected _wxMDIChildFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIChildFrame_Activate(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIChildFrame_Maximize(_swigobj) (_swigobj->Maximize()) -static PyObject *_wrap_wxMDIChildFrame_Maximize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIChildFrame_Maximize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIChildFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIChildFrame_Maximize. Expected _wxMDIChildFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIChildFrame_Maximize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMDIChildFrame_Restore(_swigobj) (_swigobj->Restore()) -static PyObject *_wrap_wxMDIChildFrame_Restore(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIChildFrame * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMDIChildFrame_Restore",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIChildFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMDIChildFrame_Restore. Expected _wxMDIChildFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMDIChildFrame_Restore(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMDIClientWindowTowxWindow(void *ptr) { - wxMDIClientWindow *src; - wxWindow *dest; - src = (wxMDIClientWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxMDIClientWindowTowxEvtHandler(void *ptr) { - wxMDIClientWindow *src; - wxEvtHandler *dest; - src = (wxMDIClientWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMDIClientWindow(_swigarg0,_swigarg1) (new wxMDIClientWindow(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxMDIClientWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMDIClientWindow * _result; - wxMDIParentFrame * _arg0; - long _arg1 = 0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|l:new_wxMDIClientWindow",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMDIClientWindow. Expected _wxMDIParentFrame_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMDIClientWindow *)new_wxMDIClientWindow(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMDIClientWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef mdicMethods[] = { - { "new_wxMDIClientWindow", _wrap_new_wxMDIClientWindow, 1 }, - { "wxMDIChildFrame_Restore", _wrap_wxMDIChildFrame_Restore, 1 }, - { "wxMDIChildFrame_Maximize", _wrap_wxMDIChildFrame_Maximize, 1 }, - { "wxMDIChildFrame_Activate", _wrap_wxMDIChildFrame_Activate, 1 }, - { "new_wxMDIChildFrame", _wrap_new_wxMDIChildFrame, 1 }, - { "wxMDIParentFrame_Tile", _wrap_wxMDIParentFrame_Tile, 1 }, - { "wxMDIParentFrame_SetToolBar", _wrap_wxMDIParentFrame_SetToolBar, 1 }, - { "wxMDIParentFrame_GetToolBar", _wrap_wxMDIParentFrame_GetToolBar, 1 }, - { "wxMDIParentFrame_GetClientWindow", _wrap_wxMDIParentFrame_GetClientWindow, 1 }, - { "wxMDIParentFrame_GetActiveChild", _wrap_wxMDIParentFrame_GetActiveChild, 1 }, - { "wxMDIParentFrame_Cascade", _wrap_wxMDIParentFrame_Cascade, 1 }, - { "wxMDIParentFrame_ArrangeIcons", _wrap_wxMDIParentFrame_ArrangeIcons, 1 }, - { "wxMDIParentFrame_ActivatePrevious", _wrap_wxMDIParentFrame_ActivatePrevious, 1 }, - { "wxMDIParentFrame_ActivateNext", _wrap_wxMDIParentFrame_ActivateNext, 1 }, - { "new_wxMDIParentFrame", _wrap_new_wxMDIParentFrame, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initmdic)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("mdic", mdicMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMDIClientWindow",SwigwxMDIClientWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMDIChildFrame",SwigwxMDIChildFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMDIParentFrame",SwigwxMDIParentFrameTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_wxWindow","_class_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMDIClientWindow",SwigwxMDIClientWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMDIChildFrame",SwigwxMDIChildFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxMDIParentFrame",SwigwxMDIParentFrameTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_class_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxMDIChildFrame",SwigwxMDIChildFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_class_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxMDIParentFrame",SwigwxMDIParentFrameTowxFrame); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/msw/mdi.py b/utils/wxPython/src/msw/mdi.py deleted file mode 100644 index d1e2ca65ae..0000000000 --- a/utils/wxPython/src/msw/mdi.py +++ /dev/null @@ -1,122 +0,0 @@ -# This file was created automatically by SWIG. -import mdic - -from misc import * - -from windows import * - -from gdi import * - -from frames import * - -from stattool import * - -from controls import * - -from events import * -import wx -class wxMDIParentFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def ActivateNext(self): - val = mdic.wxMDIParentFrame_ActivateNext(self.this) - return val - def ActivatePrevious(self): - val = mdic.wxMDIParentFrame_ActivatePrevious(self.this) - return val - def ArrangeIcons(self): - val = mdic.wxMDIParentFrame_ArrangeIcons(self.this) - return val - def Cascade(self): - val = mdic.wxMDIParentFrame_Cascade(self.this) - return val - def GetActiveChild(self): - val = mdic.wxMDIParentFrame_GetActiveChild(self.this) - val = wxMDIChildFramePtr(val) - return val - def GetClientWindow(self): - val = mdic.wxMDIParentFrame_GetClientWindow(self.this) - val = wxMDIClientWindowPtr(val) - return val - def GetToolBar(self): - val = mdic.wxMDIParentFrame_GetToolBar(self.this) - val = wxWindowPtr(val) - return val - def SetToolBar(self,arg0): - val = mdic.wxMDIParentFrame_SetToolBar(self.this,arg0.this) - return val - def Tile(self): - val = mdic.wxMDIParentFrame_Tile(self.this) - return val - def __repr__(self): - return "" -class wxMDIParentFrame(wxMDIParentFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(mdic.new_wxMDIParentFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIChildFramePtr(wxFramePtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Activate(self): - val = mdic.wxMDIChildFrame_Activate(self.this) - return val - def Maximize(self): - val = mdic.wxMDIChildFrame_Maximize(self.this) - return val - def Restore(self): - val = mdic.wxMDIChildFrame_Restore(self.this) - return val - def __repr__(self): - return "" -class wxMDIChildFrame(wxMDIChildFramePtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(mdic.new_wxMDIChildFrame,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdFrameCallbacks(self) - - - - -class wxMDIClientWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxMDIClientWindow(wxMDIClientWindowPtr): - def __init__(self,arg0,*args) : - self.this = apply(mdic.new_wxMDIClientWindow,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._StdOnScrollCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/misc.cpp b/utils/wxPython/src/msw/misc.cpp deleted file mode 100644 index 0d9bec1f4d..0000000000 --- a/utils/wxPython/src/msw/misc.cpp +++ /dev/null @@ -1,4407 +0,0 @@ -/* - * FILE : msw/misc.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initmiscc - -#define SWIG_name "miscc" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - - char* wxGetResource(char *section, char *entry, char *file = NULL) { - char * retval; - wxGetResource(section, entry, &retval, file); - return retval; - } - - void wxToolTip_Enable(bool flag) { - wxToolTip::Enable(flag); - } - - void wxToolTip_SetDelay(long milliseconds) { - wxToolTip::SetDelay(milliseconds); - } -static PyObject *_wrap_wxFileSelector(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - char * _arg0; - char * _arg1 = NULL; - char * _arg2 = NULL; - char * _arg3 = NULL; - char * _arg4 = "*.*"; - int _arg5 = 0; - wxWindow * _arg6 = NULL; - int _arg7 = -1; - int _arg8 = -1; - char * _argc6 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|ssssisii:wxFileSelector",&_arg0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_argc6,&_arg7,&_arg8)) - return NULL; - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxFileSelector. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxFileSelector(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetTextFromUser(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxString * _arg0; - wxString * _arg1 = &wxPyEmptyStr; - wxString * _arg2 = &wxPyEmptyStr; - wxWindow * _arg3 = NULL; - int _arg4 = -1; - int _arg5 = -1; - bool _arg6 = (1); - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - int tempbool6; - - self = self; - if(!PyArg_ParseTuple(args,"O|OOsiii:wxGetTextFromUser",&_obj0,&_obj1,&_obj2,&_argc3,&_arg4,&_arg5,&tempbool6)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxGetTextFromUser. Expected _wxWindow_p."); - return NULL; - } - } - _arg6 = (bool ) tempbool6; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxGetTextFromUser(*_arg0,*_arg1,*_arg2,_arg3,_arg4,_arg5,_arg6)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetSingleChoice(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxString * _arg0; - wxString * _arg1; - int _arg2; - wxString * _arg3; - wxWindow * _arg4 = NULL; - int _arg5 = -1; - int _arg6 = -1; - bool _arg7 = (1); - int _arg8 = 150; - int _arg9 = 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - char * _argc4 = 0; - int tempbool7; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|siiiii:wxGetSingleChoice",&_obj0,&_obj1,&_obj3,&_argc4,&_arg5,&_arg6,&tempbool7,&_arg8,&_arg9)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj3) -{ - _arg3 = wxString_LIST_helper(_obj3); - if (_arg3 == NULL) { - return NULL; - } -} - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxGetSingleChoice. Expected _wxWindow_p."); - return NULL; - } - } - _arg7 = (bool ) tempbool7; -{ - if (_obj3) { - _arg2 = PyList_Size(_obj3); - } - else { - _arg2 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxGetSingleChoice(*_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - delete [] _arg3; -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetSingleChoiceIndex(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxString * _arg0; - wxString * _arg1; - int _arg2; - wxString * _arg3; - wxWindow * _arg4 = NULL; - int _arg5 = -1; - int _arg6 = -1; - bool _arg7 = (1); - int _arg8 = 150; - int _arg9 = 200; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj3 = 0; - char * _argc4 = 0; - int tempbool7; - - self = self; - if(!PyArg_ParseTuple(args,"OOO|siiiii:wxGetSingleChoiceIndex",&_obj0,&_obj1,&_obj3,&_argc4,&_arg5,&_arg6,&tempbool7,&_arg8,&_arg9)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj3) -{ - _arg3 = wxString_LIST_helper(_obj3); - if (_arg3 == NULL) { - return NULL; - } -} - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of wxGetSingleChoiceIndex. Expected _wxWindow_p."); - return NULL; - } - } - _arg7 = (bool ) tempbool7; -{ - if (_obj3) { - _arg2 = PyList_Size(_obj3); - } - else { - _arg2 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGetSingleChoiceIndex(*_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6,_arg7,_arg8,_arg9); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - delete [] _arg3; -} - return _resultobj; -} - -static PyObject *_wrap_wxMessageBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxString * _arg0; - wxString * _arg1 = &wxPyEmptyStr; - int _arg2 = (wxOK)|(wxCENTRE); - wxWindow * _arg3 = NULL; - int _arg4 = -1; - int _arg5 = -1; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"O|Oisii:wxMessageBox",&_obj0,&_obj1,&_arg2,&_argc3,&_arg4,&_arg5)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxMessageBox. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMessageBox(*_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyObject *_wrap_wxColourDisplay(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxColourDisplay")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxColourDisplay(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxDisplayDepth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxDisplayDepth")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDisplayDepth(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxSetCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSetCursor",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSetCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSetCursor(*_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxNewId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxNewId")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxNewId(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject *_wrap_wxRegisterId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"l:wxRegisterId",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegisterId(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_NewId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - - self = self; - if(!PyArg_ParseTuple(args,":NewId")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxNewId(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject *_wrap_RegisterId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"l:RegisterId",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegisterId(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxBeginBusyCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCursor * _arg0 = wxHOURGLASS_CURSOR; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"|s:wxBeginBusyCursor",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBeginBusyCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBeginBusyCursor(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxBell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxBell")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBell(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxDisplaySize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int * _arg0; - int temp; - int * _arg1; - int temp0; - - self = self; -{ - _arg0 = &temp; -} -{ - _arg1 = &temp0; -} - if(!PyArg_ParseTuple(args,":wxDisplaySize")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDisplaySize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg0)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static PyObject *_wrap_wxEndBusyCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxEndBusyCursor")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEndBusyCursor(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxExecute(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxString * _arg0; - bool _arg1 = (0); - PyObject * _obj0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"O|i:wxExecute",&_obj0,&tempbool1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxExecute(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxFindWindowByLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = NULL; - PyObject * _obj0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|s:wxFindWindowByLabel",&_obj0,&_argc1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFindWindowByLabel. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxFindWindowByLabel(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxFindWindowByName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxString * _arg0; - wxWindow * _arg1 = NULL; - PyObject * _obj0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O|s:wxFindWindowByName",&_obj0,&_argc1)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxFindWindowByName. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxFindWindowByName(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxGetActiveWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":wxGetActiveWindow")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxGetActiveWindow(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxGetElapsedTime(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - bool _arg0 = (1); - int tempbool0; - - self = self; - if(!PyArg_ParseTuple(args,"|i:wxGetElapsedTime",&tempbool0)) - return NULL; - _arg0 = (bool ) tempbool0; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxGetElapsedTime(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject *_wrap_wxGetFreeMemory(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxGetFreeMemory")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxGetFreeMemory(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject *_wrap_wxGetMousePosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int * _arg0; - int temp; - int * _arg1; - int temp0; - - self = self; -{ - _arg0 = &temp; -} -{ - _arg1 = &temp0; -} - if(!PyArg_ParseTuple(args,":wxGetMousePosition")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGetMousePosition(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg0)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static PyObject *_wrap_wxIsBusy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxIsBusy")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxIsBusy(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxNow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxNow")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxNow()); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject *_wrap_wxShell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxString * _arg0 = &wxPyEmptyStr; - PyObject * _obj0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"|O:wxShell",&_obj0)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxShell(*_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -static PyObject *_wrap_wxStartTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxStartTimer")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStartTimer(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxGetOsVersion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - int * _arg0; - int temp; - int * _arg1; - int temp0; - - self = self; -{ - _arg0 = &temp; -} -{ - _arg1 = &temp0; -} - if(!PyArg_ParseTuple(args,":wxGetOsVersion")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGetOsVersion(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg0)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static PyObject *_wrap_wxYield(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxYield")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxYield(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxSafeYield(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - - self = self; - if(!PyArg_ParseTuple(args,":wxSafeYield")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSafeYield(); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxGetResource(PyObject *self, PyObject *args) { - PyObject * _resultobj; - char * _result; - char * _arg0; - char * _arg1; - char * _arg2 = NULL; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxGetResource",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (char *)wxGetResource(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("s", _result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceAddIdentifier(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - int _arg1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxResourceAddIdentifier",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceAddIdentifier(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceClear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - - self = self; - if(!PyArg_ParseTuple(args,":wxResourceClear")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxResourceClear(); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxResourceCreateBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - char * _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceCreateBitmap",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxBitmap (wxResourceCreateBitmap(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxResourceCreateIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIcon * _result; - char * _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceCreateIcon",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxIcon (wxResourceCreateIcon(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxResourceCreateMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - char * _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceCreateMenuBar",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuBar *)wxResourceCreateMenuBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxResourceGetIdentifier(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - char * _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxResourceGetIdentifier",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxResourceGetIdentifier(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceParseData(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - wxResourceTable * _arg1 = NULL; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxResourceParseData",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxResourceParseData. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceParseData(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceParseFile(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - wxResourceTable * _arg1 = NULL; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxResourceParseFile",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxResourceParseFile. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceParseFile(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxResourceParseString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - char * _arg0; - wxResourceTable * _arg1 = NULL; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxResourceParseString",&_arg0,&_argc1)) - return NULL; - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxResourceParseString. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxResourceParseString(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyObject *_wrap_wxToolTip_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _arg0; - int tempbool0; - - self = self; - if(!PyArg_ParseTuple(args,"i:wxToolTip_Enable",&tempbool0)) - return NULL; - _arg0 = (bool ) tempbool0; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolTip_Enable(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject *_wrap_wxToolTip_SetDelay(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _arg0; - - self = self; - if(!PyArg_ParseTuple(args,"l:wxToolTip_SetDelay",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolTip_SetDelay(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxSize_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxSize_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_x_set. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_x_get(_swigobj) ((long ) _swigobj->x) -static PyObject *_wrap_wxSize_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_x_get. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxSize_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxSize_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_y_set. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_y_get(_swigobj) ((long ) _swigobj->y) -static PyObject *_wrap_wxSize_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_y_get. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define new_wxSize(_swigarg0,_swigarg1) (new wxSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - long _arg0 = 0; - long _arg1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|ll:new_wxSize",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSize *)new_wxSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxSize(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_Set(_swigobj,_swigarg0,_swigarg1) (_swigobj->Set(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSize_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxSize_Set",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_Set. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSize_Set(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSize_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxSize_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetX. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxSize_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxSize_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_GetY. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxSize_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject * wxSize_asTuple(wxSize *self) { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - return tup; - } -static PyObject *_wrap_wxSize_asTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxSize * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSize_asTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSize_asTuple. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxSize_asTuple(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define wxRealPoint_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxRealPoint_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - double _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sd:wxRealPoint_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_x_set. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define wxRealPoint_x_get(_swigobj) ((double ) _swigobj->x) -static PyObject *_wrap_wxRealPoint_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRealPoint_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_x_get. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define wxRealPoint_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxRealPoint_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - double _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sd:wxRealPoint_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_y_set. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define wxRealPoint_y_get(_swigobj) ((double ) _swigobj->y) -static PyObject *_wrap_wxRealPoint_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxRealPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRealPoint_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRealPoint_y_get. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxRealPoint_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); - return _resultobj; -} - -#define new_wxRealPoint(_swigarg0,_swigarg1) (new wxRealPoint(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxRealPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRealPoint * _result; - double _arg0 = 0.0; - double _arg1 = 0.0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|dd:new_wxRealPoint",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRealPoint *)new_wxRealPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRealPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRealPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRealPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRealPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRealPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRealPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRealPoint. Expected _wxRealPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRealPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPoint_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxPoint_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxPoint_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_x_set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxPoint_x_get(_swigobj) ((long ) _swigobj->x) -static PyObject *_wrap_wxPoint_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPoint_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_x_get. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxPoint_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxPoint_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxPoint_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_y_set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxPoint_y_get(_swigobj) ((long ) _swigobj->y) -static PyObject *_wrap_wxPoint_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPoint_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_y_get. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxPoint_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define new_wxPoint(_swigarg0,_swigarg1) (new wxPoint(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - long _arg0 = 0; - long _arg1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|ll:new_wxPoint",&_arg0,&_arg1)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPoint *)new_wxPoint(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPoint(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPoint",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPoint. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPoint(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxPoint_Set(wxPoint *self,long x,long y) { - self->x = x; - self->y = y; - } -static PyObject *_wrap_wxPoint_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxPoint_Set",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_Set. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPoint_Set(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyObject * wxPoint_asTuple(wxPoint *self) { - PyObject* tup = PyTuple_New(2); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - return tup; - } -static PyObject *_wrap_wxPoint_asTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxPoint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPoint_asTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPoint_asTuple. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxPoint_asTuple(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define new_wxRect(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxRect(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_new_wxRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - long _arg0 = 0; - long _arg1 = 0; - long _arg2 = 0; - long _arg3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|llll:new_wxRect",&_arg0,&_arg1,&_arg2,&_arg3)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRect *)new_wxRect(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRect(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRect(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxRect_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetX. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetX(_swigobj,_swigarg0) (_swigobj->SetX(_swigarg0)) -static PyObject *_wrap_wxRect_SetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetX. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxRect_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetY. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetY(_swigobj,_swigarg0) (_swigobj->SetY(_swigarg0)) -static PyObject *_wrap_wxRect_SetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetY. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxRect_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetWidth. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetWidth(_swigobj,_swigarg0) (_swigobj->SetWidth(_swigarg0)) -static PyObject *_wrap_wxRect_SetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetWidth. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxRect_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetHeight. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_SetHeight(_swigobj,_swigarg0) (_swigobj->SetHeight(_swigarg0)) -static PyObject *_wrap_wxRect_SetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_SetHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_SetHeight. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRect_SetHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRect_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxRect_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxRect * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetPosition. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxRect_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRect_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxRect_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxRect * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetSize. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxRect_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRect_GetLeft(_swigobj) (_swigobj->GetLeft()) -static PyObject *_wrap_wxRect_GetLeft(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetLeft",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetLeft. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetLeft(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_GetTop(_swigobj) (_swigobj->GetTop()) -static PyObject *_wrap_wxRect_GetTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetTop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetTop. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetTop(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_GetBottom(_swigobj) (_swigobj->GetBottom()) -static PyObject *_wrap_wxRect_GetBottom(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetBottom",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetBottom. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetBottom(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_GetRight(_swigobj) (_swigobj->GetRight()) -static PyObject *_wrap_wxRect_GetRight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_GetRight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_GetRight. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_GetRight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_x_set(_swigobj,_swigval) (_swigobj->x = _swigval,_swigval) -static PyObject *_wrap_wxRect_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_x_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_x_get(_swigobj) ((long ) _swigobj->x) -static PyObject *_wrap_wxRect_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_x_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_y_set(_swigobj,_swigval) (_swigobj->y = _swigval,_swigval) -static PyObject *_wrap_wxRect_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_y_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_y_get(_swigobj) ((long ) _swigobj->y) -static PyObject *_wrap_wxRect_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_y_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_width_set(_swigobj,_swigval) (_swigobj->width = _swigval,_swigval) -static PyObject *_wrap_wxRect_width_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_width_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_width_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_width_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_width_get(_swigobj) ((long ) _swigobj->width) -static PyObject *_wrap_wxRect_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_width_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_height_set(_swigobj,_swigval) (_swigobj->height = _swigval,_swigval) -static PyObject *_wrap_wxRect_height_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxRect_height_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_height_set. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_height_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRect_height_get(_swigobj) ((long ) _swigobj->height) -static PyObject *_wrap_wxRect_height_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_height_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_height_get. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRect_height_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -static PyObject * wxRect_asTuple(wxRect *self) { - PyObject* tup = PyTuple_New(4); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->x)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->y)); - PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->width)); - PyTuple_SET_ITEM(tup, 1, PyInt_FromLong(self->height)); - return tup; - } -static PyObject *_wrap_wxRect_asTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxRect * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRect_asTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRect_asTuple. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxRect_asTuple(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define new_wxPyTimer(_swigarg0) (new wxPyTimer(_swigarg0)) -static PyObject *_wrap_new_wxPyTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _result; - PyObject * _arg0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxPyTimer",&_obj0)) - return NULL; -{ - _arg0 = _obj0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyTimer *)new_wxPyTimer(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyTimer_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxPyTimer(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyTimer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPyTimer",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyTimer. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyTimer(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyTimer_Interval(_swigobj) (_swigobj->Interval()) -static PyObject *_wrap_wxPyTimer_Interval(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPyTimer * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyTimer_Interval",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTimer_Interval. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPyTimer_Interval(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyTimer_Start(_swigobj,_swigarg0,_swigarg1) (_swigobj->Start(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxPyTimer_Start(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - int _arg1 = -1; - int _arg2 = (0); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:wxPyTimer_Start",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTimer_Start. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyTimer_Start(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyTimer_Stop(_swigobj) (_swigobj->Stop()) -static PyObject *_wrap_wxPyTimer_Stop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyTimer * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyTimer_Stop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyTimer_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyTimer_Stop. Expected _wxPyTimer_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyTimer_Stop(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Above(_swigobj,_swigarg0,_swigarg1) (_swigobj->Above(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Above(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_Above",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Above. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_Above. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Above(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Absolute(_swigobj,_swigarg0) (_swigobj->Absolute(_swigarg0)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Absolute(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxIndividualLayoutConstraint_Absolute",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Absolute. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Absolute(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_AsIs(_swigobj) (_swigobj->AsIs()) -static PyObject *_wrap_wxIndividualLayoutConstraint_AsIs(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIndividualLayoutConstraint_AsIs",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_AsIs. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_AsIs(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Below(_swigobj,_swigarg0,_swigarg1) (_swigobj->Below(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Below(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_Below",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Below. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_Below. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Below(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Unconstrained(_swigobj) (_swigobj->Unconstrained()) -static PyObject *_wrap_wxIndividualLayoutConstraint_Unconstrained(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxIndividualLayoutConstraint_Unconstrained",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Unconstrained. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Unconstrained(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_LeftOf(_swigobj,_swigarg0,_swigarg1) (_swigobj->LeftOf(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_LeftOf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_LeftOf",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_LeftOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_LeftOf. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_LeftOf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_PercentOf(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PercentOf(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxIndividualLayoutConstraint_PercentOf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - wxEdge _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxIndividualLayoutConstraint_PercentOf",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_PercentOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_PercentOf. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_PercentOf(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_RightOf(_swigobj,_swigarg0,_swigarg1) (_swigobj->RightOf(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxIndividualLayoutConstraint_RightOf(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|i:wxIndividualLayoutConstraint_RightOf",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_RightOf. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_RightOf. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_RightOf(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_SameAs(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SameAs(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxIndividualLayoutConstraint_SameAs(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxWindow * _arg1; - wxEdge _arg2; - int _arg3 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi|i:wxIndividualLayoutConstraint_SameAs",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_SameAs. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIndividualLayoutConstraint_SameAs. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_SameAs(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxIndividualLayoutConstraint_Set(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->Set(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxIndividualLayoutConstraint_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _arg0; - wxRelationship _arg1; - wxWindow * _arg2; - wxEdge _arg3; - int _arg4 = 0; - int _arg5 = 0; - char * _argc0 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sisi|ii:wxIndividualLayoutConstraint_Set",&_argc0,&_arg1,&_argc2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxIndividualLayoutConstraint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIndividualLayoutConstraint_Set. Expected _wxIndividualLayoutConstraint_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxIndividualLayoutConstraint_Set. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxIndividualLayoutConstraint_Set(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxLayoutConstraints() (new wxLayoutConstraints()) -static PyObject *_wrap_new_wxLayoutConstraints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutConstraints * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxLayoutConstraints")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutConstraints *)new_wxLayoutConstraints(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_bottom_get(_swigobj) (&_swigobj->bottom) -static PyObject *_wrap_wxLayoutConstraints_bottom_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_bottom_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_bottom_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_bottom_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_centreX_get(_swigobj) (&_swigobj->centreX) -static PyObject *_wrap_wxLayoutConstraints_centreX_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_centreX_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_centreX_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_centreX_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_centreY_get(_swigobj) (&_swigobj->centreY) -static PyObject *_wrap_wxLayoutConstraints_centreY_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_centreY_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_centreY_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_centreY_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_height_get(_swigobj) (&_swigobj->height) -static PyObject *_wrap_wxLayoutConstraints_height_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_height_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_height_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_height_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_left_get(_swigobj) (&_swigobj->left) -static PyObject *_wrap_wxLayoutConstraints_left_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_left_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_left_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_left_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_right_get(_swigobj) (&_swigobj->right) -static PyObject *_wrap_wxLayoutConstraints_right_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_right_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_right_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_right_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_top_get(_swigobj) (&_swigobj->top) -static PyObject *_wrap_wxLayoutConstraints_top_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_top_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_top_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_top_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxLayoutConstraints_width_get(_swigobj) (&_swigobj->width) -static PyObject *_wrap_wxLayoutConstraints_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxIndividualLayoutConstraint * _result; - wxLayoutConstraints * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxLayoutConstraints_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutConstraints_width_get. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxIndividualLayoutConstraint *)wxLayoutConstraints_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxIndividualLayoutConstraint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxRegion() (new wxRegion()) -static PyObject *_wrap_new_wxRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxRegion")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegion *)new_wxRegion(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegion_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRegion(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegion(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRegion",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRegion. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRegion(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRegion_Clear(_swigobj) (_swigobj->Clear()) -static PyObject *_wrap_wxRegion_Clear(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegion * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegion_Clear",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Clear. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegion_Clear(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRegion_Contains(_swigobj,_swigarg0,_swigarg1) (_swigobj->Contains(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxRegion_Contains(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionContain _result; - wxRegion * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxRegion_Contains",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Contains. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionContain )wxRegion_Contains(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_ContainsPoint(_swigobj,_swigarg0) (_swigobj->Contains(_swigarg0)) -static PyObject *_wrap_wxRegion_ContainsPoint(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionContain _result; - wxRegion * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_ContainsPoint",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsPoint. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_ContainsPoint. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionContain )wxRegion_ContainsPoint(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_ContainsRect(_swigobj,_swigarg0) (_swigobj->Contains(_swigarg0)) -static PyObject *_wrap_wxRegion_ContainsRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionContain _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_ContainsRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_ContainsRect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_ContainsRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionContain )wxRegion_ContainsRect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_GetBox(_swigobj) (_swigobj->GetBox()) -static PyObject *_wrap_wxRegion_GetBox(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxRegion * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegion_GetBox",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_GetBox. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxRegion_GetBox(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRegion_Intersect(_swigobj,_swigarg0) (_swigobj->Intersect(_swigarg0)) -static PyObject *_wrap_wxRegion_Intersect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Intersect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Intersect. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Intersect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Intersect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_IsEmpty(_swigobj) (_swigobj->IsEmpty()) -static PyObject *_wrap_wxRegion_IsEmpty(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegion_IsEmpty",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_IsEmpty. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_IsEmpty(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_Subtract(_swigobj,_swigarg0) (_swigobj->Subtract(_swigarg0)) -static PyObject *_wrap_wxRegion_Subtract(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Subtract",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Subtract. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Subtract. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Subtract(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_Union(_swigobj,_swigarg0) (_swigobj->Union(_swigarg0)) -static PyObject *_wrap_wxRegion_Union(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Union",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Union. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Union. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Union(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegion_Xor(_swigobj,_swigarg0) (_swigobj->Xor(_swigarg0)) -static PyObject *_wrap_wxRegion_Xor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegion * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxRegion_Xor",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegion_Xor. Expected _wxRegion_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxRegion_Xor. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegion_Xor(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxRegionIterator(_swigarg0) (new wxRegionIterator(_swigarg0)) -static PyObject *_wrap_new_wxRegionIterator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _result; - wxRegion * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:new_wxRegionIterator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegion_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxRegionIterator. Expected _wxRegion_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRegionIterator *)new_wxRegionIterator(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRegionIterator_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxRegionIterator(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxRegionIterator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxRegionIterator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxRegionIterator. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxRegionIterator(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxRegionIterator_GetX(_swigobj) (_swigobj->GetX()) -static PyObject *_wrap_wxRegionIterator_GetX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetX. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetY(_swigobj) (_swigobj->GetY()) -static PyObject *_wrap_wxRegionIterator_GetY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetY. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetW(_swigobj) (_swigobj->GetW()) -static PyObject *_wrap_wxRegionIterator_GetW(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetW",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetW. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetW(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxRegionIterator_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetWidth. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetH(_swigobj) (_swigobj->GetH()) -static PyObject *_wrap_wxRegionIterator_GetH(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetH",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetH. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetH(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxRegionIterator_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetHeight. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxRegionIterator_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxRegionIterator_GetRect(_swigobj) (_swigobj->GetRect()) -static PyObject *_wrap_wxRegionIterator_GetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_GetRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_GetRect. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxRegionIterator_GetRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxRegionIterator_HaveRects(_swigobj) (_swigobj->HaveRects()) -static PyObject *_wrap_wxRegionIterator_HaveRects(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_HaveRects",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_HaveRects. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxRegionIterator_HaveRects(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxRegionIterator_Reset(_swigobj) (_swigobj->Reset()) -static PyObject *_wrap_wxRegionIterator_Reset(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_Reset",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_Reset. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegionIterator_Reset(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxRegionIterator_Next(wxRegionIterator *self) { - (*self) ++; - } -static PyObject *_wrap_wxRegionIterator_Next(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRegionIterator * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxRegionIterator_Next",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxRegionIterator_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxRegionIterator_Next. Expected _wxRegionIterator_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxRegionIterator_Next(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxAcceleratorEntry(_swigarg0,_swigarg1,_swigarg2) (new wxAcceleratorEntry(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_new_wxAcceleratorEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxAcceleratorEntry * _result; - int _arg0 = 0; - int _arg1 = 0; - int _arg2 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|iii:new_wxAcceleratorEntry",&_arg0,&_arg1,&_arg2)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxAcceleratorEntry *)new_wxAcceleratorEntry(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorEntry_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxAcceleratorEntry_Set(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->Set(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxAcceleratorEntry_Set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxAcceleratorEntry * _arg0; - int _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siii:wxAcceleratorEntry_Set",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_Set. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxAcceleratorEntry_Set(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxAcceleratorEntry_GetFlags(_swigobj) (_swigobj->GetFlags()) -static PyObject *_wrap_wxAcceleratorEntry_GetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxAcceleratorEntry * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxAcceleratorEntry_GetFlags",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_GetFlags. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxAcceleratorEntry_GetFlags(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxAcceleratorEntry_GetKeyCode(_swigobj) (_swigobj->GetKeyCode()) -static PyObject *_wrap_wxAcceleratorEntry_GetKeyCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxAcceleratorEntry * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxAcceleratorEntry_GetKeyCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_GetKeyCode. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxAcceleratorEntry_GetKeyCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxAcceleratorEntry_GetCommand(_swigobj) (_swigobj->GetCommand()) -static PyObject *_wrap_wxAcceleratorEntry_GetCommand(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxAcceleratorEntry * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxAcceleratorEntry_GetCommand",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxAcceleratorEntry_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxAcceleratorEntry_GetCommand. Expected _wxAcceleratorEntry_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxAcceleratorEntry_GetCommand(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define new_wxAcceleratorTable(_swigarg0,_swigarg1) (new wxAcceleratorTable(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxAcceleratorTable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxAcceleratorTable * _result; - int _arg0; - wxAcceleratorEntry * _arg1; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxAcceleratorTable",&_obj1)) - return NULL; - if (_obj1) -{ - _arg1 = wxAcceleratorEntry_LIST_helper(_obj1); - if (_arg1 == NULL) { - return NULL; - } -} -{ - if (_obj1) { - _arg0 = PyList_Size(_obj1); - } - else { - _arg0 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxAcceleratorTable *)new_wxAcceleratorTable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxAcceleratorTable_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - delete [] _arg1; -} - return _resultobj; -} - -#define new_wxToolTip(_swigarg0) (new wxToolTip(_swigarg0)) -static PyObject *_wrap_new_wxToolTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolTip * _result; - wxString * _arg0; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"O:new_wxToolTip",&_obj0)) - return NULL; -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolTip *)new_wxToolTip(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define wxToolTip_SetTip(_swigobj,_swigarg0) (_swigobj->SetTip(_swigarg0)) -static PyObject *_wrap_wxToolTip_SetTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolTip * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxToolTip_SetTip",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolTip_SetTip. Expected _wxToolTip_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolTip_SetTip(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxToolTip_GetTip(_swigobj) (_swigobj->GetTip()) -static PyObject *_wrap_wxToolTip_GetTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolTip * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolTip_GetTip",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolTip_GetTip. Expected _wxToolTip_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxToolTip_GetTip(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxToolTip_GetWindow(_swigobj) (_swigobj->GetWindow()) -static PyObject *_wrap_wxToolTip_GetWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxToolTip * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolTip_GetWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolTip_GetWindow. Expected _wxToolTip_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxToolTip_GetWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyMethodDef misccMethods[] = { - { "wxToolTip_GetWindow", _wrap_wxToolTip_GetWindow, 1 }, - { "wxToolTip_GetTip", _wrap_wxToolTip_GetTip, 1 }, - { "wxToolTip_SetTip", _wrap_wxToolTip_SetTip, 1 }, - { "new_wxToolTip", _wrap_new_wxToolTip, 1 }, - { "new_wxAcceleratorTable", _wrap_new_wxAcceleratorTable, 1 }, - { "wxAcceleratorEntry_GetCommand", _wrap_wxAcceleratorEntry_GetCommand, 1 }, - { "wxAcceleratorEntry_GetKeyCode", _wrap_wxAcceleratorEntry_GetKeyCode, 1 }, - { "wxAcceleratorEntry_GetFlags", _wrap_wxAcceleratorEntry_GetFlags, 1 }, - { "wxAcceleratorEntry_Set", _wrap_wxAcceleratorEntry_Set, 1 }, - { "new_wxAcceleratorEntry", _wrap_new_wxAcceleratorEntry, 1 }, - { "wxRegionIterator_Next", _wrap_wxRegionIterator_Next, 1 }, - { "wxRegionIterator_Reset", _wrap_wxRegionIterator_Reset, 1 }, - { "wxRegionIterator_HaveRects", _wrap_wxRegionIterator_HaveRects, 1 }, - { "wxRegionIterator_GetRect", _wrap_wxRegionIterator_GetRect, 1 }, - { "wxRegionIterator_GetHeight", _wrap_wxRegionIterator_GetHeight, 1 }, - { "wxRegionIterator_GetH", _wrap_wxRegionIterator_GetH, 1 }, - { "wxRegionIterator_GetWidth", _wrap_wxRegionIterator_GetWidth, 1 }, - { "wxRegionIterator_GetW", _wrap_wxRegionIterator_GetW, 1 }, - { "wxRegionIterator_GetY", _wrap_wxRegionIterator_GetY, 1 }, - { "wxRegionIterator_GetX", _wrap_wxRegionIterator_GetX, 1 }, - { "delete_wxRegionIterator", _wrap_delete_wxRegionIterator, 1 }, - { "new_wxRegionIterator", _wrap_new_wxRegionIterator, 1 }, - { "wxRegion_Xor", _wrap_wxRegion_Xor, 1 }, - { "wxRegion_Union", _wrap_wxRegion_Union, 1 }, - { "wxRegion_Subtract", _wrap_wxRegion_Subtract, 1 }, - { "wxRegion_IsEmpty", _wrap_wxRegion_IsEmpty, 1 }, - { "wxRegion_Intersect", _wrap_wxRegion_Intersect, 1 }, - { "wxRegion_GetBox", _wrap_wxRegion_GetBox, 1 }, - { "wxRegion_ContainsRect", _wrap_wxRegion_ContainsRect, 1 }, - { "wxRegion_ContainsPoint", _wrap_wxRegion_ContainsPoint, 1 }, - { "wxRegion_Contains", _wrap_wxRegion_Contains, 1 }, - { "wxRegion_Clear", _wrap_wxRegion_Clear, 1 }, - { "delete_wxRegion", _wrap_delete_wxRegion, 1 }, - { "new_wxRegion", _wrap_new_wxRegion, 1 }, - { "wxLayoutConstraints_width_get", _wrap_wxLayoutConstraints_width_get, 1 }, - { "wxLayoutConstraints_top_get", _wrap_wxLayoutConstraints_top_get, 1 }, - { "wxLayoutConstraints_right_get", _wrap_wxLayoutConstraints_right_get, 1 }, - { "wxLayoutConstraints_left_get", _wrap_wxLayoutConstraints_left_get, 1 }, - { "wxLayoutConstraints_height_get", _wrap_wxLayoutConstraints_height_get, 1 }, - { "wxLayoutConstraints_centreY_get", _wrap_wxLayoutConstraints_centreY_get, 1 }, - { "wxLayoutConstraints_centreX_get", _wrap_wxLayoutConstraints_centreX_get, 1 }, - { "wxLayoutConstraints_bottom_get", _wrap_wxLayoutConstraints_bottom_get, 1 }, - { "new_wxLayoutConstraints", _wrap_new_wxLayoutConstraints, 1 }, - { "wxIndividualLayoutConstraint_Set", _wrap_wxIndividualLayoutConstraint_Set, 1 }, - { "wxIndividualLayoutConstraint_SameAs", _wrap_wxIndividualLayoutConstraint_SameAs, 1 }, - { "wxIndividualLayoutConstraint_RightOf", _wrap_wxIndividualLayoutConstraint_RightOf, 1 }, - { "wxIndividualLayoutConstraint_PercentOf", _wrap_wxIndividualLayoutConstraint_PercentOf, 1 }, - { "wxIndividualLayoutConstraint_LeftOf", _wrap_wxIndividualLayoutConstraint_LeftOf, 1 }, - { "wxIndividualLayoutConstraint_Unconstrained", _wrap_wxIndividualLayoutConstraint_Unconstrained, 1 }, - { "wxIndividualLayoutConstraint_Below", _wrap_wxIndividualLayoutConstraint_Below, 1 }, - { "wxIndividualLayoutConstraint_AsIs", _wrap_wxIndividualLayoutConstraint_AsIs, 1 }, - { "wxIndividualLayoutConstraint_Absolute", _wrap_wxIndividualLayoutConstraint_Absolute, 1 }, - { "wxIndividualLayoutConstraint_Above", _wrap_wxIndividualLayoutConstraint_Above, 1 }, - { "wxPyTimer_Stop", _wrap_wxPyTimer_Stop, 1 }, - { "wxPyTimer_Start", _wrap_wxPyTimer_Start, 1 }, - { "wxPyTimer_Interval", _wrap_wxPyTimer_Interval, 1 }, - { "delete_wxPyTimer", _wrap_delete_wxPyTimer, 1 }, - { "new_wxPyTimer", _wrap_new_wxPyTimer, 1 }, - { "wxRect_asTuple", _wrap_wxRect_asTuple, 1 }, - { "wxRect_height_get", _wrap_wxRect_height_get, 1 }, - { "wxRect_height_set", _wrap_wxRect_height_set, 1 }, - { "wxRect_width_get", _wrap_wxRect_width_get, 1 }, - { "wxRect_width_set", _wrap_wxRect_width_set, 1 }, - { "wxRect_y_get", _wrap_wxRect_y_get, 1 }, - { "wxRect_y_set", _wrap_wxRect_y_set, 1 }, - { "wxRect_x_get", _wrap_wxRect_x_get, 1 }, - { "wxRect_x_set", _wrap_wxRect_x_set, 1 }, - { "wxRect_GetRight", _wrap_wxRect_GetRight, 1 }, - { "wxRect_GetBottom", _wrap_wxRect_GetBottom, 1 }, - { "wxRect_GetTop", _wrap_wxRect_GetTop, 1 }, - { "wxRect_GetLeft", _wrap_wxRect_GetLeft, 1 }, - { "wxRect_GetSize", _wrap_wxRect_GetSize, 1 }, - { "wxRect_GetPosition", _wrap_wxRect_GetPosition, 1 }, - { "wxRect_SetHeight", _wrap_wxRect_SetHeight, 1 }, - { "wxRect_GetHeight", _wrap_wxRect_GetHeight, 1 }, - { "wxRect_SetWidth", _wrap_wxRect_SetWidth, 1 }, - { "wxRect_GetWidth", _wrap_wxRect_GetWidth, 1 }, - { "wxRect_SetY", _wrap_wxRect_SetY, 1 }, - { "wxRect_GetY", _wrap_wxRect_GetY, 1 }, - { "wxRect_SetX", _wrap_wxRect_SetX, 1 }, - { "wxRect_GetX", _wrap_wxRect_GetX, 1 }, - { "delete_wxRect", _wrap_delete_wxRect, 1 }, - { "new_wxRect", _wrap_new_wxRect, 1 }, - { "wxPoint_asTuple", _wrap_wxPoint_asTuple, 1 }, - { "wxPoint_Set", _wrap_wxPoint_Set, 1 }, - { "delete_wxPoint", _wrap_delete_wxPoint, 1 }, - { "new_wxPoint", _wrap_new_wxPoint, 1 }, - { "wxPoint_y_get", _wrap_wxPoint_y_get, 1 }, - { "wxPoint_y_set", _wrap_wxPoint_y_set, 1 }, - { "wxPoint_x_get", _wrap_wxPoint_x_get, 1 }, - { "wxPoint_x_set", _wrap_wxPoint_x_set, 1 }, - { "delete_wxRealPoint", _wrap_delete_wxRealPoint, 1 }, - { "new_wxRealPoint", _wrap_new_wxRealPoint, 1 }, - { "wxRealPoint_y_get", _wrap_wxRealPoint_y_get, 1 }, - { "wxRealPoint_y_set", _wrap_wxRealPoint_y_set, 1 }, - { "wxRealPoint_x_get", _wrap_wxRealPoint_x_get, 1 }, - { "wxRealPoint_x_set", _wrap_wxRealPoint_x_set, 1 }, - { "wxSize_asTuple", _wrap_wxSize_asTuple, 1 }, - { "wxSize_GetHeight", _wrap_wxSize_GetY, 1 }, - { "wxSize_GetWidth", _wrap_wxSize_GetX, 1 }, - { "wxSize_GetY", _wrap_wxSize_GetY, 1 }, - { "wxSize_GetX", _wrap_wxSize_GetX, 1 }, - { "wxSize_Set", _wrap_wxSize_Set, 1 }, - { "delete_wxSize", _wrap_delete_wxSize, 1 }, - { "new_wxSize", _wrap_new_wxSize, 1 }, - { "wxSize_height_get", _wrap_wxSize_y_get, 1 }, - { "wxSize_height_set", _wrap_wxSize_y_set, 1 }, - { "wxSize_width_get", _wrap_wxSize_x_get, 1 }, - { "wxSize_width_set", _wrap_wxSize_x_set, 1 }, - { "wxSize_y_get", _wrap_wxSize_y_get, 1 }, - { "wxSize_y_set", _wrap_wxSize_y_set, 1 }, - { "wxSize_x_get", _wrap_wxSize_x_get, 1 }, - { "wxSize_x_set", _wrap_wxSize_x_set, 1 }, - { "wxToolTip_SetDelay", _wrap_wxToolTip_SetDelay, 1 }, - { "wxToolTip_Enable", _wrap_wxToolTip_Enable, 1 }, - { "wxResourceParseString", _wrap_wxResourceParseString, 1 }, - { "wxResourceParseFile", _wrap_wxResourceParseFile, 1 }, - { "wxResourceParseData", _wrap_wxResourceParseData, 1 }, - { "wxResourceGetIdentifier", _wrap_wxResourceGetIdentifier, 1 }, - { "wxResourceCreateMenuBar", _wrap_wxResourceCreateMenuBar, 1 }, - { "wxResourceCreateIcon", _wrap_wxResourceCreateIcon, 1 }, - { "wxResourceCreateBitmap", _wrap_wxResourceCreateBitmap, 1 }, - { "wxResourceClear", _wrap_wxResourceClear, 1 }, - { "wxResourceAddIdentifier", _wrap_wxResourceAddIdentifier, 1 }, - { "wxGetResource", _wrap_wxGetResource, 1 }, - { "wxSafeYield", _wrap_wxSafeYield, 1 }, - { "wxYield", _wrap_wxYield, 1 }, - { "wxGetOsVersion", _wrap_wxGetOsVersion, 1 }, - { "wxStartTimer", _wrap_wxStartTimer, 1 }, - { "wxShell", _wrap_wxShell, 1 }, - { "wxNow", _wrap_wxNow, 1 }, - { "wxIsBusy", _wrap_wxIsBusy, 1 }, - { "wxGetMousePosition", _wrap_wxGetMousePosition, 1 }, - { "wxGetFreeMemory", _wrap_wxGetFreeMemory, 1 }, - { "wxGetElapsedTime", _wrap_wxGetElapsedTime, 1 }, - { "wxGetActiveWindow", _wrap_wxGetActiveWindow, 1 }, - { "wxFindWindowByName", _wrap_wxFindWindowByName, 1 }, - { "wxFindWindowByLabel", _wrap_wxFindWindowByLabel, 1 }, - { "wxExecute", _wrap_wxExecute, 1 }, - { "wxEndBusyCursor", _wrap_wxEndBusyCursor, 1 }, - { "wxDisplaySize", _wrap_wxDisplaySize, 1 }, - { "wxBell", _wrap_wxBell, 1 }, - { "wxBeginBusyCursor", _wrap_wxBeginBusyCursor, 1 }, - { "RegisterId", _wrap_RegisterId, 1 }, - { "NewId", _wrap_NewId, 1 }, - { "wxRegisterId", _wrap_wxRegisterId, 1 }, - { "wxNewId", _wrap_wxNewId, 1 }, - { "wxSetCursor", _wrap_wxSetCursor, 1 }, - { "wxDisplayDepth", _wrap_wxDisplayDepth, 1 }, - { "wxColourDisplay", _wrap_wxColourDisplay, 1 }, - { "wxMessageBox", _wrap_wxMessageBox, 1 }, - { "wxGetSingleChoiceIndex", _wrap_wxGetSingleChoiceIndex, 1 }, - { "wxGetSingleChoice", _wrap_wxGetSingleChoice, 1 }, - { "wxGetTextFromUser", _wrap_wxGetTextFromUser, 1 }, - { "wxFileSelector", _wrap_wxFileSelector, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initmiscc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("miscc", misccMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxLeft", PyInt_FromLong((long) wxLeft)); - PyDict_SetItemString(d,"wxTop", PyInt_FromLong((long) wxTop)); - PyDict_SetItemString(d,"wxRight", PyInt_FromLong((long) wxRight)); - PyDict_SetItemString(d,"wxBottom", PyInt_FromLong((long) wxBottom)); - PyDict_SetItemString(d,"wxWidth", PyInt_FromLong((long) wxWidth)); - PyDict_SetItemString(d,"wxHeight", PyInt_FromLong((long) wxHeight)); - PyDict_SetItemString(d,"wxCentre", PyInt_FromLong((long) wxCentre)); - PyDict_SetItemString(d,"wxCenter", PyInt_FromLong((long) wxCenter)); - PyDict_SetItemString(d,"wxCentreX", PyInt_FromLong((long) wxCentreX)); - PyDict_SetItemString(d,"wxCentreY", PyInt_FromLong((long) wxCentreY)); - PyDict_SetItemString(d,"wxUnconstrained", PyInt_FromLong((long) wxUnconstrained)); - PyDict_SetItemString(d,"wxAsIs", PyInt_FromLong((long) wxAsIs)); - PyDict_SetItemString(d,"wxPercentOf", PyInt_FromLong((long) wxPercentOf)); - PyDict_SetItemString(d,"wxAbove", PyInt_FromLong((long) wxAbove)); - PyDict_SetItemString(d,"wxBelow", PyInt_FromLong((long) wxBelow)); - PyDict_SetItemString(d,"wxLeftOf", PyInt_FromLong((long) wxLeftOf)); - PyDict_SetItemString(d,"wxRightOf", PyInt_FromLong((long) wxRightOf)); - PyDict_SetItemString(d,"wxSameAs", PyInt_FromLong((long) wxSameAs)); - PyDict_SetItemString(d,"wxAbsolute", PyInt_FromLong((long) wxAbsolute)); - PyDict_SetItemString(d,"wxOutRegion", PyInt_FromLong((long) wxOutRegion)); - PyDict_SetItemString(d,"wxPartRegion", PyInt_FromLong((long) wxPartRegion)); - PyDict_SetItemString(d,"wxInRegion", PyInt_FromLong((long) wxInRegion)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); -} diff --git a/utils/wxPython/src/msw/misc.py b/utils/wxPython/src/msw/misc.py deleted file mode 100644 index 76cf76348a..0000000000 --- a/utils/wxPython/src/msw/misc.py +++ /dev/null @@ -1,694 +0,0 @@ -# This file was created automatically by SWIG. -import miscc -class wxSizePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxSize(self.this) - def Set(self,arg0,arg1): - val = miscc.wxSize_Set(self.this,arg0,arg1) - return val - def GetX(self): - val = miscc.wxSize_GetX(self.this) - return val - def GetY(self): - val = miscc.wxSize_GetY(self.this) - return val - def GetWidth(self): - val = miscc.wxSize_GetWidth(self.this) - return val - def GetHeight(self): - val = miscc.wxSize_GetHeight(self.this) - return val - def asTuple(self): - val = miscc.wxSize_asTuple(self.this) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxSize_x_set(self.this,value) - return - if name == "y" : - miscc.wxSize_y_set(self.this,value) - return - if name == "width" : - miscc.wxSize_width_set(self.this,value) - return - if name == "height" : - miscc.wxSize_height_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxSize_x_get(self.this) - if name == "y" : - return miscc.wxSize_y_get(self.this) - if name == "width" : - return miscc.wxSize_width_get(self.this) - if name == "height" : - return miscc.wxSize_height_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxSize(wxSizePtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxSize,()+args) - self.thisown = 1 - - - - -class wxRealPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRealPoint(self.this) - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRealPoint_x_set(self.this,value) - return - if name == "y" : - miscc.wxRealPoint_y_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRealPoint_x_get(self.this) - if name == "y" : - return miscc.wxRealPoint_y_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" -class wxRealPoint(wxRealPointPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxRealPoint,()+args) - self.thisown = 1 - - - - -class wxPointPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxPoint(self.this) - def Set(self,arg0,arg1): - val = miscc.wxPoint_Set(self.this,arg0,arg1) - return val - def asTuple(self): - val = miscc.wxPoint_asTuple(self.this) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxPoint_x_set(self.this,value) - return - if name == "y" : - miscc.wxPoint_y_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxPoint_x_get(self.this) - if name == "y" : - return miscc.wxPoint_y_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxPoint(wxPointPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxPoint,()+args) - self.thisown = 1 - - - - -class wxRectPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRect(self.this) - def GetX(self): - val = miscc.wxRect_GetX(self.this) - return val - def SetX(self,arg0): - val = miscc.wxRect_SetX(self.this,arg0) - return val - def GetY(self): - val = miscc.wxRect_GetY(self.this) - return val - def SetY(self,arg0): - val = miscc.wxRect_SetY(self.this,arg0) - return val - def GetWidth(self): - val = miscc.wxRect_GetWidth(self.this) - return val - def SetWidth(self,arg0): - val = miscc.wxRect_SetWidth(self.this,arg0) - return val - def GetHeight(self): - val = miscc.wxRect_GetHeight(self.this) - return val - def SetHeight(self,arg0): - val = miscc.wxRect_SetHeight(self.this,arg0) - return val - def GetPosition(self): - val = miscc.wxRect_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetSize(self): - val = miscc.wxRect_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetLeft(self): - val = miscc.wxRect_GetLeft(self.this) - return val - def GetTop(self): - val = miscc.wxRect_GetTop(self.this) - return val - def GetBottom(self): - val = miscc.wxRect_GetBottom(self.this) - return val - def GetRight(self): - val = miscc.wxRect_GetRight(self.this) - return val - def asTuple(self): - val = miscc.wxRect_asTuple(self.this) - return val - def __setattr__(self,name,value): - if name == "x" : - miscc.wxRect_x_set(self.this,value) - return - if name == "y" : - miscc.wxRect_y_set(self.this,value) - return - if name == "width" : - miscc.wxRect_width_set(self.this,value) - return - if name == "height" : - miscc.wxRect_height_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "x" : - return miscc.wxRect_x_get(self.this) - if name == "y" : - return miscc.wxRect_y_get(self.this) - if name == "width" : - return miscc.wxRect_width_get(self.this) - if name == "height" : - return miscc.wxRect_height_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" - def __str__(self): return str(self.asTuple()) - def __repr__(self): return str(self.asTuple()) -class wxRect(wxRectPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxRect,()+args) - self.thisown = 1 - - - - -class wxPyTimerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxPyTimer(self.this) - def Interval(self): - val = miscc.wxPyTimer_Interval(self.this) - return val - def Start(self,*args): - val = apply(miscc.wxPyTimer_Start,(self.this,)+args) - return val - def Stop(self): - val = miscc.wxPyTimer_Stop(self.this) - return val - def __repr__(self): - return "" -class wxPyTimer(wxPyTimerPtr): - def __init__(self,arg0) : - self.this = miscc.new_wxPyTimer(arg0) - self.thisown = 1 - - - - -class wxIndividualLayoutConstraintPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Above(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_Above,(self.this,arg0.this,)+args) - return val - def Absolute(self,arg0): - val = miscc.wxIndividualLayoutConstraint_Absolute(self.this,arg0) - return val - def AsIs(self): - val = miscc.wxIndividualLayoutConstraint_AsIs(self.this) - return val - def Below(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_Below,(self.this,arg0.this,)+args) - return val - def Unconstrained(self): - val = miscc.wxIndividualLayoutConstraint_Unconstrained(self.this) - return val - def LeftOf(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_LeftOf,(self.this,arg0.this,)+args) - return val - def PercentOf(self,arg0,arg1,arg2): - val = miscc.wxIndividualLayoutConstraint_PercentOf(self.this,arg0.this,arg1,arg2) - return val - def RightOf(self,arg0,*args): - val = apply(miscc.wxIndividualLayoutConstraint_RightOf,(self.this,arg0.this,)+args) - return val - def SameAs(self,arg0,arg1,*args): - val = apply(miscc.wxIndividualLayoutConstraint_SameAs,(self.this,arg0.this,arg1,)+args) - return val - def Set(self,arg0,arg1,arg2,*args): - val = apply(miscc.wxIndividualLayoutConstraint_Set,(self.this,arg0,arg1.this,arg2,)+args) - return val - def __repr__(self): - return "" -class wxIndividualLayoutConstraint(wxIndividualLayoutConstraintPtr): - def __init__(self,this): - self.this = this - - - - -class wxLayoutConstraintsPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __setattr__(self,name,value): - if name == "bottom" : - miscc.wxLayoutConstraints_bottom_set(self.this,value.this) - return - if name == "centreX" : - miscc.wxLayoutConstraints_centreX_set(self.this,value.this) - return - if name == "centreY" : - miscc.wxLayoutConstraints_centreY_set(self.this,value.this) - return - if name == "height" : - miscc.wxLayoutConstraints_height_set(self.this,value.this) - return - if name == "left" : - miscc.wxLayoutConstraints_left_set(self.this,value.this) - return - if name == "right" : - miscc.wxLayoutConstraints_right_set(self.this,value.this) - return - if name == "top" : - miscc.wxLayoutConstraints_top_set(self.this,value.this) - return - if name == "width" : - miscc.wxLayoutConstraints_width_set(self.this,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "bottom" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_bottom_get(self.this)) - if name == "centreX" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreX_get(self.this)) - if name == "centreY" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_centreY_get(self.this)) - if name == "height" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_height_get(self.this)) - if name == "left" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_left_get(self.this)) - if name == "right" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_right_get(self.this)) - if name == "top" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_top_get(self.this)) - if name == "width" : - return wxIndividualLayoutConstraintPtr(miscc.wxLayoutConstraints_width_get(self.this)) - raise AttributeError,name - def __repr__(self): - return "" -class wxLayoutConstraints(wxLayoutConstraintsPtr): - def __init__(self) : - self.this = miscc.new_wxLayoutConstraints() - self.thisown = 1 - - - - -class wxRegionPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRegion(self.this) - def Clear(self): - val = miscc.wxRegion_Clear(self.this) - return val - def Contains(self,arg0,arg1): - val = miscc.wxRegion_Contains(self.this,arg0,arg1) - return val - def ContainsPoint(self,arg0): - val = miscc.wxRegion_ContainsPoint(self.this,arg0.this) - return val - def ContainsRect(self,arg0): - val = miscc.wxRegion_ContainsRect(self.this,arg0.this) - return val - def GetBox(self): - val = miscc.wxRegion_GetBox(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def Intersect(self,arg0): - val = miscc.wxRegion_Intersect(self.this,arg0.this) - return val - def IsEmpty(self): - val = miscc.wxRegion_IsEmpty(self.this) - return val - def Subtract(self,arg0): - val = miscc.wxRegion_Subtract(self.this,arg0.this) - return val - def Union(self,arg0): - val = miscc.wxRegion_Union(self.this,arg0.this) - return val - def Xor(self,arg0): - val = miscc.wxRegion_Xor(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxRegion(wxRegionPtr): - def __init__(self) : - self.this = miscc.new_wxRegion() - self.thisown = 1 - - - - -class wxRegionIteratorPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - miscc.delete_wxRegionIterator(self.this) - def GetX(self): - val = miscc.wxRegionIterator_GetX(self.this) - return val - def GetY(self): - val = miscc.wxRegionIterator_GetY(self.this) - return val - def GetW(self): - val = miscc.wxRegionIterator_GetW(self.this) - return val - def GetWidth(self): - val = miscc.wxRegionIterator_GetWidth(self.this) - return val - def GetH(self): - val = miscc.wxRegionIterator_GetH(self.this) - return val - def GetHeight(self): - val = miscc.wxRegionIterator_GetHeight(self.this) - return val - def GetRect(self): - val = miscc.wxRegionIterator_GetRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def HaveRects(self): - val = miscc.wxRegionIterator_HaveRects(self.this) - return val - def Reset(self): - val = miscc.wxRegionIterator_Reset(self.this) - return val - def Next(self): - val = miscc.wxRegionIterator_Next(self.this) - return val - def __repr__(self): - return "" -class wxRegionIterator(wxRegionIteratorPtr): - def __init__(self,arg0) : - self.this = miscc.new_wxRegionIterator(arg0.this) - self.thisown = 1 - - - - -class wxAcceleratorEntryPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def Set(self,arg0,arg1,arg2): - val = miscc.wxAcceleratorEntry_Set(self.this,arg0,arg1,arg2) - return val - def GetFlags(self): - val = miscc.wxAcceleratorEntry_GetFlags(self.this) - return val - def GetKeyCode(self): - val = miscc.wxAcceleratorEntry_GetKeyCode(self.this) - return val - def GetCommand(self): - val = miscc.wxAcceleratorEntry_GetCommand(self.this) - return val - def __repr__(self): - return "" -class wxAcceleratorEntry(wxAcceleratorEntryPtr): - def __init__(self,*args) : - self.this = apply(miscc.new_wxAcceleratorEntry,()+args) - self.thisown = 1 - - - - -class wxAcceleratorTablePtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __repr__(self): - return "" -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,arg0) : - self.this = miscc.new_wxAcceleratorTable(arg0.this) - self.thisown = 1 - - - - -class wxToolTipPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetTip(self,arg0): - val = miscc.wxToolTip_SetTip(self.this,arg0) - return val - def GetTip(self): - val = miscc.wxToolTip_GetTip(self.this) - return val - def GetWindow(self): - val = miscc.wxToolTip_GetWindow(self.this) - val = wxWindowPtr(val) - return val - def __repr__(self): - return "" -class wxToolTip(wxToolTipPtr): - def __init__(self,arg0) : - self.this = miscc.new_wxToolTip(arg0) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxFileSelector(arg0,*args): - argl = map(None,args) - try: argl[5] = argl[5].this - except: pass - args = tuple(argl) - val = apply(miscc.wxFileSelector,(arg0,)+args) - return val - -def wxGetTextFromUser(arg0,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(miscc.wxGetTextFromUser,(arg0,)+args) - return val - -def wxGetSingleChoice(arg0,arg1,arg2,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxGetSingleChoice,(arg0,arg1,arg2,)+args) - return val - -def wxGetSingleChoiceIndex(arg0,arg1,arg2,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxGetSingleChoiceIndex,(arg0,arg1,arg2,)+args) - return val - -def wxMessageBox(arg0,*args): - argl = map(None,args) - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - val = apply(miscc.wxMessageBox,(arg0,)+args) - return val - -wxColourDisplay = miscc.wxColourDisplay - -wxDisplayDepth = miscc.wxDisplayDepth - -def wxSetCursor(arg0): - val = miscc.wxSetCursor(arg0.this) - return val - -wxNewId = miscc.wxNewId - -wxRegisterId = miscc.wxRegisterId - -NewId = miscc.NewId - -RegisterId = miscc.RegisterId - -def wxBeginBusyCursor(*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxBeginBusyCursor,()+args) - return val - -wxBell = miscc.wxBell - -wxDisplaySize = miscc.wxDisplaySize - -wxEndBusyCursor = miscc.wxEndBusyCursor - -wxExecute = miscc.wxExecute - -def wxFindWindowByLabel(arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxFindWindowByLabel,(arg0,)+args) - val = wxWindowPtr(val) - return val - -def wxFindWindowByName(arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(miscc.wxFindWindowByName,(arg0,)+args) - val = wxWindowPtr(val) - return val - -def wxGetActiveWindow(): - val = miscc.wxGetActiveWindow() - val = wxWindowPtr(val) - return val - -wxGetElapsedTime = miscc.wxGetElapsedTime - -wxGetFreeMemory = miscc.wxGetFreeMemory - -wxGetMousePosition = miscc.wxGetMousePosition - -wxIsBusy = miscc.wxIsBusy - -wxNow = miscc.wxNow - -wxShell = miscc.wxShell - -wxStartTimer = miscc.wxStartTimer - -wxGetOsVersion = miscc.wxGetOsVersion - -wxYield = miscc.wxYield - -wxSafeYield = miscc.wxSafeYield - -wxGetResource = miscc.wxGetResource - -wxResourceAddIdentifier = miscc.wxResourceAddIdentifier - -wxResourceClear = miscc.wxResourceClear - -def wxResourceCreateBitmap(arg0): - val = miscc.wxResourceCreateBitmap(arg0) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - -def wxResourceCreateIcon(arg0): - val = miscc.wxResourceCreateIcon(arg0) - val = wxIconPtr(val) - val.thisown = 1 - return val - -def wxResourceCreateMenuBar(arg0): - val = miscc.wxResourceCreateMenuBar(arg0) - val = wxMenuBarPtr(val) - return val - -wxResourceGetIdentifier = miscc.wxResourceGetIdentifier - -wxResourceParseData = miscc.wxResourceParseData - -wxResourceParseFile = miscc.wxResourceParseFile - -wxResourceParseString = miscc.wxResourceParseString - -wxToolTip_Enable = miscc.wxToolTip_Enable - -wxToolTip_SetDelay = miscc.wxToolTip_SetDelay - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxLeft = miscc.wxLeft -wxTop = miscc.wxTop -wxRight = miscc.wxRight -wxBottom = miscc.wxBottom -wxWidth = miscc.wxWidth -wxHeight = miscc.wxHeight -wxCentre = miscc.wxCentre -wxCenter = miscc.wxCenter -wxCentreX = miscc.wxCentreX -wxCentreY = miscc.wxCentreY -wxUnconstrained = miscc.wxUnconstrained -wxAsIs = miscc.wxAsIs -wxPercentOf = miscc.wxPercentOf -wxAbove = miscc.wxAbove -wxBelow = miscc.wxBelow -wxLeftOf = miscc.wxLeftOf -wxRightOf = miscc.wxRightOf -wxSameAs = miscc.wxSameAs -wxAbsolute = miscc.wxAbsolute -wxOutRegion = miscc.wxOutRegion -wxPartRegion = miscc.wxPartRegion -wxInRegion = miscc.wxInRegion diff --git a/utils/wxPython/src/msw/stattool.cpp b/utils/wxPython/src/msw/stattool.cpp deleted file mode 100644 index 428dd3a2ac..0000000000 --- a/utils/wxPython/src/msw/stattool.cpp +++ /dev/null @@ -1,2603 +0,0 @@ -/* - * FILE : msw/stattool.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initstattoolc - -#define SWIG_name "stattoolc" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxStatusBarTowxWindow(void *ptr) { - wxStatusBar *src; - wxWindow *dest; - src = (wxStatusBar *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxStatusBarTowxEvtHandler(void *ptr) { - wxStatusBar *src; - wxEvtHandler *dest; - src = (wxStatusBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxStatusBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxStatusBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxStatusBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxST_SIZEGRIP); - char * _arg5 = "statusBar"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxStatusBar",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxStatusBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxStatusBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxStatusBar. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxStatusBar *)new_wxStatusBar(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxStatusBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static wxRect * wxStatusBar_GetFieldRect(wxStatusBar *self,long item) { - wxRect* rect= new wxRect; - self->GetFieldRect(item, *rect); - return rect; - } -static PyObject *_wrap_wxStatusBar_GetFieldRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxStatusBar * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxStatusBar_GetFieldRect",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_GetFieldRect. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxRect *)wxStatusBar_GetFieldRect(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxStatusBar_GetFieldsCount(_swigobj) (_swigobj->GetFieldsCount()) -static PyObject *_wrap_wxStatusBar_GetFieldsCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxStatusBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStatusBar_GetFieldsCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_GetFieldsCount. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxStatusBar_GetFieldsCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxStatusBar_GetStatusText(_swigobj,_swigarg0) (_swigobj->GetStatusText(_swigarg0)) -static PyObject *_wrap_wxStatusBar_GetStatusText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxStatusBar * _arg0; - int _arg1 = 0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxStatusBar_GetStatusText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_GetStatusText. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxStatusBar_GetStatusText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxStatusBar_DrawField(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawField(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_DrawField(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - wxDC * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxStatusBar_DrawField",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawField. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStatusBar_DrawField. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_DrawField(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_DrawFieldText(_swigobj,_swigarg0,_swigarg1) (_swigobj->DrawFieldText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_DrawFieldText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - wxDC * _arg1; - int _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssi:wxStatusBar_DrawFieldText",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_DrawFieldText. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxStatusBar_DrawFieldText. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_DrawFieldText(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_InitColours(_swigobj) (_swigobj->InitColours()) -static PyObject *_wrap_wxStatusBar_InitColours(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxStatusBar_InitColours",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_InitColours. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_InitColours(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_SetFieldsCount(_swigobj,_swigarg0) (_swigobj->SetFieldsCount(_swigarg0)) -static PyObject *_wrap_wxStatusBar_SetFieldsCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - int _arg1 = 1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxStatusBar_SetFieldsCount",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_SetFieldsCount. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_SetFieldsCount(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxStatusBar_SetStatusText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_SetStatusText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - wxString * _arg1; - int _arg2 = 0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxStatusBar_SetStatusText",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_SetStatusText. Expected _wxStatusBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_SetStatusText(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxStatusBar_SetStatusWidths(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetStatusWidths(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxStatusBar_SetStatusWidths(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxStatusBar * _arg0; - int _arg1; - int * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxStatusBar_SetStatusWidths",&_argc0,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxStatusBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxStatusBar_SetStatusWidths. Expected _wxStatusBar_p."); - return NULL; - } - } - if (_obj2) -{ - _arg2 = int_LIST_helper(_obj2); - if (_arg2 == NULL) { - return NULL; - } -} -{ - if (_obj2) { - _arg1 = PyList_Size(_obj2); - } - else { - _arg1 = 0; - } -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxStatusBar_SetStatusWidths(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - delete [] _arg2; -} - return _resultobj; -} - -#define new_wxToolBarTool() (new wxToolBarTool()) -static PyObject *_wrap_new_wxToolBarTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxToolBarTool")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)new_wxToolBarTool(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxToolBarTool(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxToolBarTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxToolBarTool",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxToolBarTool. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxToolBarTool(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBarTool_SetSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBarTool_SetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _arg0; - long _arg1; - long _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sll:wxToolBarTool_SetSize",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_SetSize. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBarTool_SetSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBarTool_GetWidth(_swigobj) (_swigobj->GetWidth()) -static PyObject *_wrap_wxToolBarTool_GetWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_GetWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_GetWidth. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_GetWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_GetHeight(_swigobj) (_swigobj->GetHeight()) -static PyObject *_wrap_wxToolBarTool_GetHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_GetHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_GetHeight. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_GetHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toolStyle_set(_swigobj,_swigval) (_swigobj->m_toolStyle = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_toolStyle_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_toolStyle_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toolStyle_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_toolStyle_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toolStyle_get(_swigobj) ((int ) _swigobj->m_toolStyle) -static PyObject *_wrap_wxToolBarTool_m_toolStyle_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_toolStyle_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toolStyle_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_toolStyle_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_clientData_set(_swigobj,_swigval) (_swigobj->m_clientData = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_clientData_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxToolBarTool * _arg0; - wxObject * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBarTool_m_clientData_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_clientData_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxObject_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBarTool_m_clientData_set. Expected _wxObject_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxObject *)wxToolBarTool_m_clientData_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_clientData_get(_swigobj) ((wxObject *) _swigobj->m_clientData) -static PyObject *_wrap_wxToolBarTool_m_clientData_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxObject * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_clientData_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_clientData_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxObject *)wxToolBarTool_m_clientData_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxObject_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_index_set(_swigobj,_swigval) (_swigobj->m_index = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_index_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_index_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_index_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_index_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_index_get(_swigobj) ((int ) _swigobj->m_index) -static PyObject *_wrap_wxToolBarTool_m_index_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_index_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_index_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBarTool_m_index_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_x_set(_swigobj,_swigval) (_swigobj->m_x = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxToolBarTool_m_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_x_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_x_get(_swigobj) ((long ) _swigobj->m_x) -static PyObject *_wrap_wxToolBarTool_m_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_x_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_y_set(_swigobj,_swigval) (_swigobj->m_y = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxToolBarTool_m_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_y_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_y_get(_swigobj) ((long ) _swigobj->m_y) -static PyObject *_wrap_wxToolBarTool_m_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_y_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_width_set(_swigobj,_swigval) (_swigobj->m_width = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_width_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxToolBarTool_m_width_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_width_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_width_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_width_get(_swigobj) ((long ) _swigobj->m_width) -static PyObject *_wrap_wxToolBarTool_m_width_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_width_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_width_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_width_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_height_set(_swigobj,_swigval) (_swigobj->m_height = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_height_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxToolBarTool_m_height_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_height_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_height_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_height_get(_swigobj) ((long ) _swigobj->m_height) -static PyObject *_wrap_wxToolBarTool_m_height_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_height_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_height_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxToolBarTool_m_height_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toggleState_set(_swigobj,_swigval) (_swigobj->m_toggleState = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_toggleState_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_toggleState_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toggleState_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_toggleState_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_toggleState_get(_swigobj) ((bool ) _swigobj->m_toggleState) -static PyObject *_wrap_wxToolBarTool_m_toggleState_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_toggleState_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_toggleState_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_toggleState_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_isToggle_set(_swigobj,_swigval) (_swigobj->m_isToggle = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_isToggle_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_isToggle_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isToggle_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isToggle_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_isToggle_get(_swigobj) ((bool ) _swigobj->m_isToggle) -static PyObject *_wrap_wxToolBarTool_m_isToggle_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_isToggle_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isToggle_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isToggle_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_deleteSecondBitmap_set(_swigobj,_swigval) (_swigobj->m_deleteSecondBitmap = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_deleteSecondBitmap_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_deleteSecondBitmap_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_deleteSecondBitmap_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_deleteSecondBitmap_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_deleteSecondBitmap_get(_swigobj) ((bool ) _swigobj->m_deleteSecondBitmap) -static PyObject *_wrap_wxToolBarTool_m_deleteSecondBitmap_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_deleteSecondBitmap_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_deleteSecondBitmap_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_deleteSecondBitmap_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_enabled_set(_swigobj,_swigval) (_swigobj->m_enabled = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_enabled_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_enabled_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_enabled_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_enabled_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_enabled_get(_swigobj) ((bool ) _swigobj->m_enabled) -static PyObject *_wrap_wxToolBarTool_m_enabled_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_enabled_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_enabled_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_enabled_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap1_set(_swigobj,_swigval) (_swigobj->m_bitmap1 = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_bitmap1_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBarTool_m_bitmap1_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap1_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBarTool_m_bitmap1_set. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap1_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap1_get(_swigobj) (&_swigobj->m_bitmap1) -static PyObject *_wrap_wxToolBarTool_m_bitmap1_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_bitmap1_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap1_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap1_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap2_set(_swigobj,_swigval) (_swigobj->m_bitmap2 = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_bitmap2_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBarTool_m_bitmap2_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap2_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBarTool_m_bitmap2_set. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap2_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_bitmap2_get(_swigobj) (&_swigobj->m_bitmap2) -static PyObject *_wrap_wxToolBarTool_m_bitmap2_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_bitmap2_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_bitmap2_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxToolBarTool_m_bitmap2_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBarTool_m_isMenuCommand_set(_swigobj,_swigval) (_swigobj->m_isMenuCommand = _swigval,_swigval) -static PyObject *_wrap_wxToolBarTool_m_isMenuCommand_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBarTool_m_isMenuCommand_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isMenuCommand_set. Expected _wxToolBarTool_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isMenuCommand_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_isMenuCommand_get(_swigobj) ((bool ) _swigobj->m_isMenuCommand) -static PyObject *_wrap_wxToolBarTool_m_isMenuCommand_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_isMenuCommand_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_isMenuCommand_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBarTool_m_isMenuCommand_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBarTool_m_shortHelpString_set(_swigobj,_swigval) (_swigobj->m_shortHelpString = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_shortHelpString_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxToolBarTool_m_shortHelpString_set",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_shortHelpString_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_shortHelpString_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxToolBarTool_m_shortHelpString_get(_swigobj) (&_swigobj->m_shortHelpString) -static PyObject *_wrap_wxToolBarTool_m_shortHelpString_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_shortHelpString_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_shortHelpString_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_shortHelpString_get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxToolBarTool_m_longHelpString_set(_swigobj,_swigval) (_swigobj->m_longHelpString = *(_swigval),_swigval) -static PyObject *_wrap_wxToolBarTool_m_longHelpString_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxToolBarTool_m_longHelpString_set",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_longHelpString_set. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_longHelpString_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxToolBarTool_m_longHelpString_get(_swigobj) (&_swigobj->m_longHelpString) -static PyObject *_wrap_wxToolBarTool_m_longHelpString_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBarTool * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBarTool_m_longHelpString_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBarTool_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBarTool_m_longHelpString_get. Expected _wxToolBarTool_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxString *)wxToolBarTool_m_longHelpString_get(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -static void *SwigwxToolBarTowxControl(void *ptr) { - wxToolBar *src; - wxControl *dest; - src = (wxToolBar *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxToolBarTowxWindow(void *ptr) { - wxToolBar *src; - wxWindow *dest; - src = (wxToolBar *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxToolBarTowxEvtHandler(void *ptr) { - wxToolBar *src; - wxEvtHandler *dest; - src = (wxToolBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxToolBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxToolBar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxToolBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxTB_HORIZONTAL)|(wxNO_BORDER); - char * _arg5 = "toolBar"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxToolBar",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxToolBar. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxToolBar. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxToolBar. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBar *)new_wxToolBar(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBar_AddSeparator(_swigobj) (_swigobj->AddSeparator()) -static PyObject *_wrap_wxToolBar_AddSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_AddSeparator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddSeparator. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_AddSeparator(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static wxToolBarTool * wxToolBar_AddTool(wxToolBar *self,int toolIndex,const wxBitmap & bitmap1,const wxBitmap & bitmap2,int isToggle,long xPos,long yPos,const wxString & shortHelpString,const wxString & longHelpString) { - return self->AddTool(toolIndex, bitmap1, bitmap2, - isToggle, xPos, yPos, NULL, - shortHelpString, longHelpString); - } -static PyObject *_wrap_wxToolBar_AddTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - wxToolBar * _arg0; - int _arg1; - wxBitmap * _arg2; - wxBitmap * _arg3 = &wxNullBitmap; - int _arg4 = (0); - long _arg5 = -1; - long _arg6 = -1; - wxString * _arg7 = &wxPyEmptyStr; - wxString * _arg8 = &wxPyEmptyStr; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - PyObject * _obj7 = 0; - PyObject * _obj8 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|sillOO:wxToolBar_AddTool",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5,&_arg6,&_obj7,&_obj8)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxToolBar_AddTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxToolBar_AddTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj7) -{ - if (!PyString_Check(_obj7)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg7 = new wxString(PyString_AsString(_obj7), PyString_Size(_obj7)); -} - if (_obj8) -{ - if (!PyString_Check(_obj8)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg8 = new wxString(PyString_AsString(_obj8), PyString_Size(_obj8)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)wxToolBar_AddTool(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5,_arg6,*_arg7,*_arg8); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj7) - delete _arg7; -} -{ - if (_obj8) - delete _arg8; -} - return _resultobj; -} - -static wxToolBarTool * wxToolBar_AddSimpleTool(wxToolBar *self,int toolIndex,const wxBitmap & bitmap,const wxString & shortHelpString,const wxString & longHelpString) { - return self->AddTool(toolIndex, bitmap, wxNullBitmap, - FALSE, -1, -1, NULL, - shortHelpString, longHelpString); - } -static PyObject *_wrap_wxToolBar_AddSimpleTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - wxToolBar * _arg0; - int _arg1; - wxBitmap * _arg2; - wxString * _arg3 = &wxPyEmptyStr; - wxString * _arg4 = &wxPyEmptyStr; - char * _argc0 = 0; - char * _argc2 = 0; - PyObject * _obj3 = 0; - PyObject * _obj4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sis|OO:wxToolBar_AddSimpleTool",&_argc0,&_arg1,&_argc2,&_obj3,&_obj4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_AddSimpleTool. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxToolBar_AddSimpleTool. Expected _wxBitmap_p."); - return NULL; - } - } - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} - if (_obj4) -{ - if (!PyString_Check(_obj4)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg4 = new wxString(PyString_AsString(_obj4), PyString_Size(_obj4)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)wxToolBar_AddSimpleTool(_arg0,_arg1,*_arg2,*_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj3) - delete _arg3; -} -{ - if (_obj4) - delete _arg4; -} - return _resultobj; -} - -#define wxToolBar_EnableTool(_swigobj,_swigarg0,_swigarg1) (_swigobj->EnableTool(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_EnableTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxToolBar_EnableTool",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_EnableTool. Expected _wxToolBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_EnableTool(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_FindToolForPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->FindToolForPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_FindToolForPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBarTool * _result; - wxToolBar * _arg0; - float _arg1; - float _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sff:wxToolBar_FindToolForPosition",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_FindToolForPosition. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolBarTool *)wxToolBar_FindToolForPosition(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolBarTool_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBar_GetToolSize(_swigobj) (_swigobj->GetToolSize()) -static PyObject *_wrap_wxToolBar_GetToolSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxToolBar * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetToolSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolSize. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxToolBar_GetToolSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBar_GetToolBitmapSize(_swigobj) (_swigobj->GetToolBitmapSize()) -static PyObject *_wrap_wxToolBar_GetToolBitmapSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxToolBar * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetToolBitmapSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolBitmapSize. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxToolBar_GetToolBitmapSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBar_SetToolBitmapSize(_swigobj,_swigarg0) (_swigobj->SetToolBitmapSize(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetToolBitmapSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBar_SetToolBitmapSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolBitmapSize. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBar_SetToolBitmapSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolBitmapSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_GetMaxSize(_swigobj) (_swigobj->GetMaxSize()) -static PyObject *_wrap_wxToolBar_GetMaxSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxToolBar * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetMaxSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetMaxSize. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxToolBar_GetMaxSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxToolBar_GetToolEnabled(_swigobj,_swigarg0) (_swigobj->GetToolEnabled(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolEnabled",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolEnabled. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBar_GetToolEnabled(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_GetToolLongHelp(_swigobj,_swigarg0) (_swigobj->GetToolLongHelp(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolLongHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolLongHelp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolLongHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxToolBar_GetToolLongHelp(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxToolBar_GetToolPacking(_swigobj) (_swigobj->GetToolPacking()) -static PyObject *_wrap_wxToolBar_GetToolPacking(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetToolPacking",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolPacking. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBar_GetToolPacking(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_GetToolSeparation(_swigobj) (_swigobj->GetToolSeparation()) -static PyObject *_wrap_wxToolBar_GetToolSeparation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_GetToolSeparation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolSeparation. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxToolBar_GetToolSeparation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_GetToolShortHelp(_swigobj,_swigarg0) (_swigobj->GetToolShortHelp(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolShortHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolShortHelp",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolShortHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxToolBar_GetToolShortHelp(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxToolBar_GetToolState(_swigobj,_swigarg0) (_swigobj->GetToolState(_swigarg0)) -static PyObject *_wrap_wxToolBar_GetToolState(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_GetToolState",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_GetToolState. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBar_GetToolState(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_Realize(_swigobj) (_swigobj->Realize()) -static PyObject *_wrap_wxToolBar_Realize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxToolBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxToolBar_Realize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_Realize. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxToolBar_Realize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxToolBar_SetToolLongHelp(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetToolLongHelp(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_SetToolLongHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxToolBar_SetToolLongHelp",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolLongHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolLongHelp(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxToolBar_SetToolShortHelp(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetToolShortHelp(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_SetToolShortHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxToolBar_SetToolShortHelp",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolShortHelp. Expected _wxToolBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolShortHelp(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxToolBar_SetMargins(_swigobj,_swigarg0) (_swigobj->SetMargins(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetMargins(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxToolBar_SetMargins",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetMargins. Expected _wxToolBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxToolBar_SetMargins. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetMargins(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_SetToolPacking(_swigobj,_swigarg0) (_swigobj->SetToolPacking(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetToolPacking(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_SetToolPacking",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolPacking. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolPacking(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_SetToolSeparation(_swigobj,_swigarg0) (_swigobj->SetToolSeparation(_swigarg0)) -static PyObject *_wrap_wxToolBar_SetToolSeparation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxToolBar_SetToolSeparation",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_SetToolSeparation. Expected _wxToolBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_SetToolSeparation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxToolBar_ToggleTool(_swigobj,_swigarg0,_swigarg1) (_swigobj->ToggleTool(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxToolBar_ToggleTool(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxToolBar_ToggleTool",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxToolBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxToolBar_ToggleTool. Expected _wxToolBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxToolBar_ToggleTool(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef stattoolcMethods[] = { - { "wxToolBar_ToggleTool", _wrap_wxToolBar_ToggleTool, 1 }, - { "wxToolBar_SetToolSeparation", _wrap_wxToolBar_SetToolSeparation, 1 }, - { "wxToolBar_SetToolPacking", _wrap_wxToolBar_SetToolPacking, 1 }, - { "wxToolBar_SetMargins", _wrap_wxToolBar_SetMargins, 1 }, - { "wxToolBar_SetToolShortHelp", _wrap_wxToolBar_SetToolShortHelp, 1 }, - { "wxToolBar_SetToolLongHelp", _wrap_wxToolBar_SetToolLongHelp, 1 }, - { "wxToolBar_Realize", _wrap_wxToolBar_Realize, 1 }, - { "wxToolBar_GetToolState", _wrap_wxToolBar_GetToolState, 1 }, - { "wxToolBar_GetToolShortHelp", _wrap_wxToolBar_GetToolShortHelp, 1 }, - { "wxToolBar_GetToolSeparation", _wrap_wxToolBar_GetToolSeparation, 1 }, - { "wxToolBar_GetToolPacking", _wrap_wxToolBar_GetToolPacking, 1 }, - { "wxToolBar_GetToolLongHelp", _wrap_wxToolBar_GetToolLongHelp, 1 }, - { "wxToolBar_GetToolEnabled", _wrap_wxToolBar_GetToolEnabled, 1 }, - { "wxToolBar_GetMaxSize", _wrap_wxToolBar_GetMaxSize, 1 }, - { "wxToolBar_SetToolBitmapSize", _wrap_wxToolBar_SetToolBitmapSize, 1 }, - { "wxToolBar_GetToolBitmapSize", _wrap_wxToolBar_GetToolBitmapSize, 1 }, - { "wxToolBar_GetToolSize", _wrap_wxToolBar_GetToolSize, 1 }, - { "wxToolBar_FindToolForPosition", _wrap_wxToolBar_FindToolForPosition, 1 }, - { "wxToolBar_EnableTool", _wrap_wxToolBar_EnableTool, 1 }, - { "wxToolBar_AddSimpleTool", _wrap_wxToolBar_AddSimpleTool, 1 }, - { "wxToolBar_AddTool", _wrap_wxToolBar_AddTool, 1 }, - { "wxToolBar_AddSeparator", _wrap_wxToolBar_AddSeparator, 1 }, - { "new_wxToolBar", _wrap_new_wxToolBar, 1 }, - { "wxToolBarTool_m_longHelpString_get", _wrap_wxToolBarTool_m_longHelpString_get, 1 }, - { "wxToolBarTool_m_longHelpString_set", _wrap_wxToolBarTool_m_longHelpString_set, 1 }, - { "wxToolBarTool_m_shortHelpString_get", _wrap_wxToolBarTool_m_shortHelpString_get, 1 }, - { "wxToolBarTool_m_shortHelpString_set", _wrap_wxToolBarTool_m_shortHelpString_set, 1 }, - { "wxToolBarTool_m_isMenuCommand_get", _wrap_wxToolBarTool_m_isMenuCommand_get, 1 }, - { "wxToolBarTool_m_isMenuCommand_set", _wrap_wxToolBarTool_m_isMenuCommand_set, 1 }, - { "wxToolBarTool_m_bitmap2_get", _wrap_wxToolBarTool_m_bitmap2_get, 1 }, - { "wxToolBarTool_m_bitmap2_set", _wrap_wxToolBarTool_m_bitmap2_set, 1 }, - { "wxToolBarTool_m_bitmap1_get", _wrap_wxToolBarTool_m_bitmap1_get, 1 }, - { "wxToolBarTool_m_bitmap1_set", _wrap_wxToolBarTool_m_bitmap1_set, 1 }, - { "wxToolBarTool_m_enabled_get", _wrap_wxToolBarTool_m_enabled_get, 1 }, - { "wxToolBarTool_m_enabled_set", _wrap_wxToolBarTool_m_enabled_set, 1 }, - { "wxToolBarTool_m_deleteSecondBitmap_get", _wrap_wxToolBarTool_m_deleteSecondBitmap_get, 1 }, - { "wxToolBarTool_m_deleteSecondBitmap_set", _wrap_wxToolBarTool_m_deleteSecondBitmap_set, 1 }, - { "wxToolBarTool_m_isToggle_get", _wrap_wxToolBarTool_m_isToggle_get, 1 }, - { "wxToolBarTool_m_isToggle_set", _wrap_wxToolBarTool_m_isToggle_set, 1 }, - { "wxToolBarTool_m_toggleState_get", _wrap_wxToolBarTool_m_toggleState_get, 1 }, - { "wxToolBarTool_m_toggleState_set", _wrap_wxToolBarTool_m_toggleState_set, 1 }, - { "wxToolBarTool_m_height_get", _wrap_wxToolBarTool_m_height_get, 1 }, - { "wxToolBarTool_m_height_set", _wrap_wxToolBarTool_m_height_set, 1 }, - { "wxToolBarTool_m_width_get", _wrap_wxToolBarTool_m_width_get, 1 }, - { "wxToolBarTool_m_width_set", _wrap_wxToolBarTool_m_width_set, 1 }, - { "wxToolBarTool_m_y_get", _wrap_wxToolBarTool_m_y_get, 1 }, - { "wxToolBarTool_m_y_set", _wrap_wxToolBarTool_m_y_set, 1 }, - { "wxToolBarTool_m_x_get", _wrap_wxToolBarTool_m_x_get, 1 }, - { "wxToolBarTool_m_x_set", _wrap_wxToolBarTool_m_x_set, 1 }, - { "wxToolBarTool_m_index_get", _wrap_wxToolBarTool_m_index_get, 1 }, - { "wxToolBarTool_m_index_set", _wrap_wxToolBarTool_m_index_set, 1 }, - { "wxToolBarTool_m_clientData_get", _wrap_wxToolBarTool_m_clientData_get, 1 }, - { "wxToolBarTool_m_clientData_set", _wrap_wxToolBarTool_m_clientData_set, 1 }, - { "wxToolBarTool_m_toolStyle_get", _wrap_wxToolBarTool_m_toolStyle_get, 1 }, - { "wxToolBarTool_m_toolStyle_set", _wrap_wxToolBarTool_m_toolStyle_set, 1 }, - { "wxToolBarTool_GetHeight", _wrap_wxToolBarTool_GetHeight, 1 }, - { "wxToolBarTool_GetWidth", _wrap_wxToolBarTool_GetWidth, 1 }, - { "wxToolBarTool_SetSize", _wrap_wxToolBarTool_SetSize, 1 }, - { "delete_wxToolBarTool", _wrap_delete_wxToolBarTool, 1 }, - { "new_wxToolBarTool", _wrap_new_wxToolBarTool, 1 }, - { "wxStatusBar_SetStatusWidths", _wrap_wxStatusBar_SetStatusWidths, 1 }, - { "wxStatusBar_SetStatusText", _wrap_wxStatusBar_SetStatusText, 1 }, - { "wxStatusBar_SetFieldsCount", _wrap_wxStatusBar_SetFieldsCount, 1 }, - { "wxStatusBar_InitColours", _wrap_wxStatusBar_InitColours, 1 }, - { "wxStatusBar_DrawFieldText", _wrap_wxStatusBar_DrawFieldText, 1 }, - { "wxStatusBar_DrawField", _wrap_wxStatusBar_DrawField, 1 }, - { "wxStatusBar_GetStatusText", _wrap_wxStatusBar_GetStatusText, 1 }, - { "wxStatusBar_GetFieldsCount", _wrap_wxStatusBar_GetFieldsCount, 1 }, - { "wxStatusBar_GetFieldRect", _wrap_wxStatusBar_GetFieldRect, 1 }, - { "new_wxStatusBar", _wrap_new_wxStatusBar, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initstattoolc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("stattoolc", stattoolcMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_wxControl","_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxToolBar",SwigwxToolBarTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxToolBar",SwigwxToolBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxStatusBar",SwigwxStatusBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxToolBar",SwigwxToolBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxStatusBar",SwigwxStatusBarTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/msw/stattool.py b/utils/wxPython/src/msw/stattool.py deleted file mode 100644 index 364ce8dda2..0000000000 --- a/utils/wxPython/src/msw/stattool.py +++ /dev/null @@ -1,281 +0,0 @@ -# This file was created automatically by SWIG. -import stattoolc - -from misc import * - -from windows import * - -from gdi import * - -from controls import * - -from events import * -import wx -class wxStatusBarPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetFieldRect(self,arg0): - val = stattoolc.wxStatusBar_GetFieldRect(self.this,arg0) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetFieldsCount(self): - val = stattoolc.wxStatusBar_GetFieldsCount(self.this) - return val - def GetStatusText(self,*args): - val = apply(stattoolc.wxStatusBar_GetStatusText,(self.this,)+args) - return val - def DrawField(self,arg0,arg1): - val = stattoolc.wxStatusBar_DrawField(self.this,arg0.this,arg1) - return val - def DrawFieldText(self,arg0,arg1): - val = stattoolc.wxStatusBar_DrawFieldText(self.this,arg0.this,arg1) - return val - def InitColours(self): - val = stattoolc.wxStatusBar_InitColours(self.this) - return val - def SetFieldsCount(self,*args): - val = apply(stattoolc.wxStatusBar_SetFieldsCount,(self.this,)+args) - return val - def SetStatusText(self,arg0,*args): - val = apply(stattoolc.wxStatusBar_SetStatusText,(self.this,arg0,)+args) - return val - def SetStatusWidths(self,arg0,*args): - val = apply(stattoolc.wxStatusBar_SetStatusWidths,(self.this,arg0,)+args) - return val - def __repr__(self): - return "" -class wxStatusBar(wxStatusBarPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(stattoolc.new_wxStatusBar,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxToolBarToolPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - stattoolc.delete_wxToolBarTool(self.this) - def SetSize(self,arg0,arg1): - val = stattoolc.wxToolBarTool_SetSize(self.this,arg0,arg1) - return val - def GetWidth(self): - val = stattoolc.wxToolBarTool_GetWidth(self.this) - return val - def GetHeight(self): - val = stattoolc.wxToolBarTool_GetHeight(self.this) - return val - def __setattr__(self,name,value): - if name == "m_toolStyle" : - stattoolc.wxToolBarTool_m_toolStyle_set(self.this,value) - return - if name == "m_clientData" : - stattoolc.wxToolBarTool_m_clientData_set(self.this,value) - return - if name == "m_index" : - stattoolc.wxToolBarTool_m_index_set(self.this,value) - return - if name == "m_x" : - stattoolc.wxToolBarTool_m_x_set(self.this,value) - return - if name == "m_y" : - stattoolc.wxToolBarTool_m_y_set(self.this,value) - return - if name == "m_width" : - stattoolc.wxToolBarTool_m_width_set(self.this,value) - return - if name == "m_height" : - stattoolc.wxToolBarTool_m_height_set(self.this,value) - return - if name == "m_toggleState" : - stattoolc.wxToolBarTool_m_toggleState_set(self.this,value) - return - if name == "m_isToggle" : - stattoolc.wxToolBarTool_m_isToggle_set(self.this,value) - return - if name == "m_deleteSecondBitmap" : - stattoolc.wxToolBarTool_m_deleteSecondBitmap_set(self.this,value) - return - if name == "m_enabled" : - stattoolc.wxToolBarTool_m_enabled_set(self.this,value) - return - if name == "m_bitmap1" : - stattoolc.wxToolBarTool_m_bitmap1_set(self.this,value.this) - return - if name == "m_bitmap2" : - stattoolc.wxToolBarTool_m_bitmap2_set(self.this,value.this) - return - if name == "m_isMenuCommand" : - stattoolc.wxToolBarTool_m_isMenuCommand_set(self.this,value) - return - if name == "m_shortHelpString" : - stattoolc.wxToolBarTool_m_shortHelpString_set(self.this,value) - return - if name == "m_longHelpString" : - stattoolc.wxToolBarTool_m_longHelpString_set(self.this,value) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_toolStyle" : - return stattoolc.wxToolBarTool_m_toolStyle_get(self.this) - if name == "m_clientData" : - return stattoolc.wxToolBarTool_m_clientData_get(self.this) - if name == "m_index" : - return stattoolc.wxToolBarTool_m_index_get(self.this) - if name == "m_x" : - return stattoolc.wxToolBarTool_m_x_get(self.this) - if name == "m_y" : - return stattoolc.wxToolBarTool_m_y_get(self.this) - if name == "m_width" : - return stattoolc.wxToolBarTool_m_width_get(self.this) - if name == "m_height" : - return stattoolc.wxToolBarTool_m_height_get(self.this) - if name == "m_toggleState" : - return stattoolc.wxToolBarTool_m_toggleState_get(self.this) - if name == "m_isToggle" : - return stattoolc.wxToolBarTool_m_isToggle_get(self.this) - if name == "m_deleteSecondBitmap" : - return stattoolc.wxToolBarTool_m_deleteSecondBitmap_get(self.this) - if name == "m_enabled" : - return stattoolc.wxToolBarTool_m_enabled_get(self.this) - if name == "m_bitmap1" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap1_get(self.this)) - if name == "m_bitmap2" : - return wxBitmapPtr(stattoolc.wxToolBarTool_m_bitmap2_get(self.this)) - if name == "m_isMenuCommand" : - return stattoolc.wxToolBarTool_m_isMenuCommand_get(self.this) - if name == "m_shortHelpString" : - return stattoolc.wxToolBarTool_m_shortHelpString_get(self.this) - if name == "m_longHelpString" : - return stattoolc.wxToolBarTool_m_longHelpString_get(self.this) - raise AttributeError,name - def __repr__(self): - return "" -class wxToolBarTool(wxToolBarToolPtr): - def __init__(self) : - self.this = stattoolc.new_wxToolBarTool() - self.thisown = 1 - - - - -class wxToolBarPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AddSeparator(self): - val = stattoolc.wxToolBar_AddSeparator(self.this) - return val - def AddTool(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(stattoolc.wxToolBar_AddTool,(self.this,arg0,arg1.this,)+args) - val = wxToolBarToolPtr(val) - return val - def AddSimpleTool(self,arg0,arg1,*args): - val = apply(stattoolc.wxToolBar_AddSimpleTool,(self.this,arg0,arg1.this,)+args) - val = wxToolBarToolPtr(val) - return val - def EnableTool(self,arg0,arg1): - val = stattoolc.wxToolBar_EnableTool(self.this,arg0,arg1) - return val - def FindToolForPosition(self,arg0,arg1): - val = stattoolc.wxToolBar_FindToolForPosition(self.this,arg0,arg1) - val = wxToolBarToolPtr(val) - return val - def GetToolSize(self): - val = stattoolc.wxToolBar_GetToolSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetToolBitmapSize(self): - val = stattoolc.wxToolBar_GetToolBitmapSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def SetToolBitmapSize(self,arg0): - val = stattoolc.wxToolBar_SetToolBitmapSize(self.this,arg0.this) - return val - def GetMaxSize(self): - val = stattoolc.wxToolBar_GetMaxSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetToolEnabled(self,arg0): - val = stattoolc.wxToolBar_GetToolEnabled(self.this,arg0) - return val - def GetToolLongHelp(self,arg0): - val = stattoolc.wxToolBar_GetToolLongHelp(self.this,arg0) - return val - def GetToolPacking(self): - val = stattoolc.wxToolBar_GetToolPacking(self.this) - return val - def GetToolSeparation(self): - val = stattoolc.wxToolBar_GetToolSeparation(self.this) - return val - def GetToolShortHelp(self,arg0): - val = stattoolc.wxToolBar_GetToolShortHelp(self.this,arg0) - return val - def GetToolState(self,arg0): - val = stattoolc.wxToolBar_GetToolState(self.this,arg0) - return val - def Realize(self): - val = stattoolc.wxToolBar_Realize(self.this) - return val - def SetToolLongHelp(self,arg0,arg1): - val = stattoolc.wxToolBar_SetToolLongHelp(self.this,arg0,arg1) - return val - def SetToolShortHelp(self,arg0,arg1): - val = stattoolc.wxToolBar_SetToolShortHelp(self.this,arg0,arg1) - return val - def SetMargins(self,arg0): - val = stattoolc.wxToolBar_SetMargins(self.this,arg0.this) - return val - def SetToolPacking(self,arg0): - val = stattoolc.wxToolBar_SetToolPacking(self.this,arg0) - return val - def SetToolSeparation(self,arg0): - val = stattoolc.wxToolBar_SetToolSeparation(self.this,arg0) - return val - def ToggleTool(self,arg0,arg1): - val = stattoolc.wxToolBar_ToggleTool(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxToolBar(wxToolBarPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(stattoolc.new_wxToolBar,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/utils.cpp b/utils/wxPython/src/msw/utils.cpp deleted file mode 100644 index be01d09440..0000000000 --- a/utils/wxPython/src/msw/utils.cpp +++ /dev/null @@ -1,1253 +0,0 @@ -/* - * FILE : msw/utils.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initutilsc - -#define SWIG_name "utilsc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -#ifdef SEPARATE - wxString wxPyEmptyStr(""); -#endif - - static PyObject* __EnumerationHelper(bool flag, wxString& str, long index) { - PyObject* ret = PyTuple_New(3); - if (ret) { - PyTuple_SET_ITEM(ret, 0, PyInt_FromLong(flag)); - PyTuple_SET_ITEM(ret, 1, PyString_FromString(str)); - PyTuple_SET_ITEM(ret, 2, PyInt_FromLong(index)); - } - return ret; - } -#define new_wxConfig(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (new wxConfig(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_new_wxConfig(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _result; - wxString * _arg0 = &wxPyEmptyStr; - wxString * _arg1 = &wxPyEmptyStr; - wxString * _arg2 = &wxPyEmptyStr; - wxString * _arg3 = &wxPyEmptyStr; - long _arg4 = 0; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|OOOOl:new_wxConfig",&_obj0,&_obj1,&_obj2,&_obj3,&_arg4)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxConfig *)new_wxConfig(*_arg0,*_arg1,*_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxConfig_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define delete_wxConfig(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxConfig(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxConfig",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxConfig. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxConfig(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_DontCreateOnDemand(_swigobj) (_swigobj->DontCreateOnDemand()) -static PyObject *_wrap_wxConfig_DontCreateOnDemand(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_DontCreateOnDemand",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DontCreateOnDemand. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_DontCreateOnDemand(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_DeleteAll(_swigobj) (_swigobj->DeleteAll()) -static PyObject *_wrap_wxConfig_DeleteAll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_DeleteAll",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DeleteAll. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_DeleteAll(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_DeleteEntry(_swigobj,_swigarg0,_swigarg1) (_swigobj->DeleteEntry(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_DeleteEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - bool _arg2 = TRUE; - char * _argc0 = 0; - PyObject * _obj1 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sO|i:wxConfig_DeleteEntry",&_argc0,&_obj1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DeleteEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_DeleteEntry(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_DeleteGroup(_swigobj,_swigarg0) (_swigobj->DeleteGroup(_swigarg0)) -static PyObject *_wrap_wxConfig_DeleteGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_DeleteGroup",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_DeleteGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_DeleteGroup(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_Exists(_swigobj,_swigarg0) (_swigobj->Exists(_swigarg0)) -static PyObject *_wrap_wxConfig_Exists(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_Exists",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Exists. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_Exists(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_Flush(_swigobj,_swigarg0) (_swigobj->Flush(_swigarg0)) -static PyObject *_wrap_wxConfig_Flush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - bool _arg1 = FALSE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_Flush",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Flush. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_Flush(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_GetAppName(_swigobj) (_swigobj->GetAppName()) -static PyObject *_wrap_wxConfig_GetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetAppName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetAppName. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_GetAppName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetFirstGroup(wxConfig *self) { - bool cont; - long index = 0; - wxString value; - - cont = self->GetFirstGroup(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetFirstGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetFirstGroup",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetFirstGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetFirstGroup(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetFirstEntry(wxConfig *self) { - bool cont; - long index = 0; - wxString value; - - cont = self->GetFirstEntry(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetFirstEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetFirstEntry",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetFirstEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetFirstEntry(_arg0); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetNextGroup(wxConfig *self,long index) { - bool cont; - wxString value; - - cont = self->GetNextGroup(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetNextGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxConfig_GetNextGroup",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNextGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetNextGroup(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -static PyObject * wxConfig_GetNextEntry(wxConfig *self,long index) { - bool cont; - wxString value; - - cont = self->GetNextEntry(value, index); - return __EnumerationHelper(cont, value, index); - } -static PyObject *_wrap_wxConfig_GetNextEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - PyObject * _result; - wxConfig * _arg0; - long _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxConfig_GetNextEntry",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNextEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (PyObject *)wxConfig_GetNextEntry(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = _result; -} - return _resultobj; -} - -#define wxConfig_GetNumberOfEntries(_swigobj,_swigarg0) (_swigobj->GetNumberOfEntries(_swigarg0)) -static PyObject *_wrap_wxConfig_GetNumberOfEntries(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxConfig * _arg0; - bool _arg1 = FALSE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_GetNumberOfEntries",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNumberOfEntries. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxConfig_GetNumberOfEntries(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_GetNumberOfGroups(_swigobj,_swigarg0) (_swigobj->GetNumberOfGroups(_swigarg0)) -static PyObject *_wrap_wxConfig_GetNumberOfGroups(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxConfig * _arg0; - bool _arg1 = FALSE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_GetNumberOfGroups",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetNumberOfGroups. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxConfig_GetNumberOfGroups(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_GetPath(_swigobj) (_swigobj->GetPath()) -static PyObject *_wrap_wxConfig_GetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetPath",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetPath. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_GetPath(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxConfig_GetVendorName(_swigobj) (_swigobj->GetVendorName()) -static PyObject *_wrap_wxConfig_GetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_GetVendorName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_GetVendorName. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_GetVendorName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxConfig_HasEntry(_swigobj,_swigarg0) (_swigobj->HasEntry(_swigarg0)) -static PyObject *_wrap_wxConfig_HasEntry(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_HasEntry",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_HasEntry. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_HasEntry(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_HasGroup(_swigobj,_swigarg0) (_swigobj->HasGroup(_swigarg0)) -static PyObject *_wrap_wxConfig_HasGroup(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_HasGroup",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_HasGroup. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_HasGroup(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_IsExpandingEnvVars(_swigobj) (_swigobj->IsExpandingEnvVars()) -static PyObject *_wrap_wxConfig_IsExpandingEnvVars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_IsExpandingEnvVars",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_IsExpandingEnvVars. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_IsExpandingEnvVars(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_IsRecordingDefaults(_swigobj) (_swigobj->IsRecordingDefaults()) -static PyObject *_wrap_wxConfig_IsRecordingDefaults(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxConfig_IsRecordingDefaults",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_IsRecordingDefaults. Expected _wxConfig_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_IsRecordingDefaults(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxConfig_Read(_swigobj,_swigarg0,_swigarg1) (_swigobj->Read(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_Read(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxConfig * _arg0; - wxString * _arg1; - wxString * _arg2 = &wxPyEmptyStr; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|O:wxConfig_Read",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Read. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxConfig_Read(_arg0,*_arg1,*_arg2)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} -{ - delete _result; -} - return _resultobj; -} - -#define wxConfig_ReadInt(_swigobj,_swigarg0,_swigarg1) (_swigobj->Read(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_ReadInt(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxConfig * _arg0; - wxString * _arg1; - long _arg2 = 0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|l:wxConfig_ReadInt",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_ReadInt. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxConfig_ReadInt(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_ReadFloat(_swigobj,_swigarg0,_swigarg1) (_swigobj->Read(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_ReadFloat(PyObject *self, PyObject *args) { - PyObject * _resultobj; - double _result; - wxConfig * _arg0; - wxString * _arg1; - double _arg2 = 0.0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO|d:wxConfig_ReadFloat",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_ReadFloat. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (double )wxConfig_ReadFloat(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("d",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_SetExpandEnvVars(_swigobj,_swigarg0) (_swigobj->SetExpandEnvVars(_swigarg0)) -static PyObject *_wrap_wxConfig_SetExpandEnvVars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - bool _arg1 = TRUE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_SetExpandEnvVars",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_SetExpandEnvVars. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_SetExpandEnvVars(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_SetPath(_swigobj,_swigarg0) (_swigobj->SetPath(_swigarg0)) -static PyObject *_wrap_wxConfig_SetPath(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxConfig_SetPath",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_SetPath. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_SetPath(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_SetRecordDefaults(_swigobj,_swigarg0) (_swigobj->SetRecordDefaults(_swigarg0)) -static PyObject *_wrap_wxConfig_SetRecordDefaults(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxConfig * _arg0; - bool _arg1 = TRUE; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxConfig_SetRecordDefaults",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_SetRecordDefaults. Expected _wxConfig_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxConfig_SetRecordDefaults(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxConfig_Write(_swigobj,_swigarg0,_swigarg1) (_swigobj->Write(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_Write(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxConfig_Write",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_Write. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_Write(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxConfig_WriteInt(_swigobj,_swigarg0,_swigarg1) (_swigobj->Write(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_WriteInt(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - long _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOl:wxConfig_WriteInt",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_WriteInt. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_WriteInt(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxConfig_WriteFloat(_swigobj,_swigarg0,_swigarg1) (_swigobj->Write(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxConfig_WriteFloat(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxConfig * _arg0; - wxString * _arg1; - double _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOd:wxConfig_WriteFloat",&_argc0,&_obj1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxConfig_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxConfig_WriteFloat. Expected _wxConfig_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxConfig_WriteFloat(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -static PyMethodDef utilscMethods[] = { - { "wxConfig_WriteFloat", _wrap_wxConfig_WriteFloat, 1 }, - { "wxConfig_WriteInt", _wrap_wxConfig_WriteInt, 1 }, - { "wxConfig_Write", _wrap_wxConfig_Write, 1 }, - { "wxConfig_SetRecordDefaults", _wrap_wxConfig_SetRecordDefaults, 1 }, - { "wxConfig_SetPath", _wrap_wxConfig_SetPath, 1 }, - { "wxConfig_SetExpandEnvVars", _wrap_wxConfig_SetExpandEnvVars, 1 }, - { "wxConfig_ReadFloat", _wrap_wxConfig_ReadFloat, 1 }, - { "wxConfig_ReadInt", _wrap_wxConfig_ReadInt, 1 }, - { "wxConfig_Read", _wrap_wxConfig_Read, 1 }, - { "wxConfig_IsRecordingDefaults", _wrap_wxConfig_IsRecordingDefaults, 1 }, - { "wxConfig_IsExpandingEnvVars", _wrap_wxConfig_IsExpandingEnvVars, 1 }, - { "wxConfig_HasGroup", _wrap_wxConfig_HasGroup, 1 }, - { "wxConfig_HasEntry", _wrap_wxConfig_HasEntry, 1 }, - { "wxConfig_GetVendorName", _wrap_wxConfig_GetVendorName, 1 }, - { "wxConfig_GetPath", _wrap_wxConfig_GetPath, 1 }, - { "wxConfig_GetNumberOfGroups", _wrap_wxConfig_GetNumberOfGroups, 1 }, - { "wxConfig_GetNumberOfEntries", _wrap_wxConfig_GetNumberOfEntries, 1 }, - { "wxConfig_GetNextEntry", _wrap_wxConfig_GetNextEntry, 1 }, - { "wxConfig_GetNextGroup", _wrap_wxConfig_GetNextGroup, 1 }, - { "wxConfig_GetFirstEntry", _wrap_wxConfig_GetFirstEntry, 1 }, - { "wxConfig_GetFirstGroup", _wrap_wxConfig_GetFirstGroup, 1 }, - { "wxConfig_GetAppName", _wrap_wxConfig_GetAppName, 1 }, - { "wxConfig_Flush", _wrap_wxConfig_Flush, 1 }, - { "wxConfig_Exists", _wrap_wxConfig_Exists, 1 }, - { "wxConfig_DeleteGroup", _wrap_wxConfig_DeleteGroup, 1 }, - { "wxConfig_DeleteEntry", _wrap_wxConfig_DeleteEntry, 1 }, - { "wxConfig_DeleteAll", _wrap_wxConfig_DeleteAll, 1 }, - { "wxConfig_DontCreateOnDemand", _wrap_wxConfig_DontCreateOnDemand, 1 }, - { "delete_wxConfig", _wrap_delete_wxConfig, 1 }, - { "new_wxConfig", _wrap_new_wxConfig, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initutilsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("utilsc", utilscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxConfig","_class_wxConfig",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxConfig","_wxConfig",0); -} diff --git a/utils/wxPython/src/msw/utils.py b/utils/wxPython/src/msw/utils.py deleted file mode 100644 index 321e6ed069..0000000000 --- a/utils/wxPython/src/msw/utils.py +++ /dev/null @@ -1,111 +0,0 @@ -# This file was created automatically by SWIG. -import utilsc -class wxConfigPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - utilsc.delete_wxConfig(self.this) - def DontCreateOnDemand(self): - val = utilsc.wxConfig_DontCreateOnDemand(self.this) - return val - def DeleteAll(self): - val = utilsc.wxConfig_DeleteAll(self.this) - return val - def DeleteEntry(self,arg0,*args): - val = apply(utilsc.wxConfig_DeleteEntry,(self.this,arg0,)+args) - return val - def DeleteGroup(self,arg0): - val = utilsc.wxConfig_DeleteGroup(self.this,arg0) - return val - def Exists(self,arg0): - val = utilsc.wxConfig_Exists(self.this,arg0) - return val - def Flush(self,*args): - val = apply(utilsc.wxConfig_Flush,(self.this,)+args) - return val - def GetAppName(self): - val = utilsc.wxConfig_GetAppName(self.this) - return val - def GetFirstGroup(self): - val = utilsc.wxConfig_GetFirstGroup(self.this) - return val - def GetFirstEntry(self): - val = utilsc.wxConfig_GetFirstEntry(self.this) - return val - def GetNextGroup(self,arg0): - val = utilsc.wxConfig_GetNextGroup(self.this,arg0) - return val - def GetNextEntry(self,arg0): - val = utilsc.wxConfig_GetNextEntry(self.this,arg0) - return val - def GetNumberOfEntries(self,*args): - val = apply(utilsc.wxConfig_GetNumberOfEntries,(self.this,)+args) - return val - def GetNumberOfGroups(self,*args): - val = apply(utilsc.wxConfig_GetNumberOfGroups,(self.this,)+args) - return val - def GetPath(self): - val = utilsc.wxConfig_GetPath(self.this) - return val - def GetVendorName(self): - val = utilsc.wxConfig_GetVendorName(self.this) - return val - def HasEntry(self,arg0): - val = utilsc.wxConfig_HasEntry(self.this,arg0) - return val - def HasGroup(self,arg0): - val = utilsc.wxConfig_HasGroup(self.this,arg0) - return val - def IsExpandingEnvVars(self): - val = utilsc.wxConfig_IsExpandingEnvVars(self.this) - return val - def IsRecordingDefaults(self): - val = utilsc.wxConfig_IsRecordingDefaults(self.this) - return val - def Read(self,arg0,*args): - val = apply(utilsc.wxConfig_Read,(self.this,arg0,)+args) - return val - def ReadInt(self,arg0,*args): - val = apply(utilsc.wxConfig_ReadInt,(self.this,arg0,)+args) - return val - def ReadFloat(self,arg0,*args): - val = apply(utilsc.wxConfig_ReadFloat,(self.this,arg0,)+args) - return val - def SetExpandEnvVars(self,*args): - val = apply(utilsc.wxConfig_SetExpandEnvVars,(self.this,)+args) - return val - def SetPath(self,arg0): - val = utilsc.wxConfig_SetPath(self.this,arg0) - return val - def SetRecordDefaults(self,*args): - val = apply(utilsc.wxConfig_SetRecordDefaults,(self.this,)+args) - return val - def Write(self,arg0,arg1): - val = utilsc.wxConfig_Write(self.this,arg0,arg1) - return val - def WriteInt(self,arg0,arg1): - val = utilsc.wxConfig_WriteInt(self.this,arg0,arg1) - return val - def WriteFloat(self,arg0,arg1): - val = utilsc.wxConfig_WriteFloat(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxConfig(wxConfigPtr): - def __init__(self,*args) : - self.this = apply(utilsc.new_wxConfig,()+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/windows.cpp b/utils/wxPython/src/msw/windows.cpp deleted file mode 100644 index 3491b5b589..0000000000 --- a/utils/wxPython/src/msw/windows.cpp +++ /dev/null @@ -1,6270 +0,0 @@ -/* - * FILE : msw/windows.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initwindowsc - -#define SWIG_name "windowsc" - -#include "helpers.h" -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - - wxWindow* wxWindow_FindFocus() { - return wxWindow::FindFocus(); - } - -wxWindow* wxWindow_FromHWND(unsigned long hWnd) { - wxWindow* win = new wxWindow; - win->SetHWND(hWnd); - win->SubclassWin(hWnd); - return win; -} -static PyObject *_wrap_wxWindow_FindFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":wxWindow_FindFocus")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_FindFocus(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static PyObject *_wrap_wxWindow_FromHWND(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - unsigned long _arg0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"l:wxWindow_FromHWND",&_arg0)) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_FromHWND(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxEvtHandler_ProcessEvent(_swigobj,_swigarg0) (_swigobj->ProcessEvent(_swigarg0)) -static PyObject *_wrap_wxEvtHandler_ProcessEvent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxEvtHandler * _arg0; - wxEvent * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxEvtHandler_ProcessEvent",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvtHandler_ProcessEvent. Expected _wxEvtHandler_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxEvtHandler_ProcessEvent. Expected _wxEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxEvtHandler_ProcessEvent(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void wxEvtHandler_Connect(wxEvtHandler *self,int id,int lastId,int eventType,PyObject * func) { - if (PyCallable_Check(func)) { - self->Connect(id, lastId, eventType, - (wxObjectEventFunction) &wxPyCallback::EventThunker, - new wxPyCallback(func)); - } - } -static PyObject *_wrap_wxEvtHandler_Connect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxEvtHandler * _arg0; - int _arg1; - int _arg2; - int _arg3; - PyObject * _arg4; - char * _argc0 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siiiO:wxEvtHandler_Connect",&_argc0,&_arg1,&_arg2,&_arg3,&_obj4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxEvtHandler_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxEvtHandler_Connect. Expected _wxEvtHandler_p."); - return NULL; - } - } -{ - _arg4 = _obj4; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxEvtHandler_Connect(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxWindowTowxEvtHandler(void *ptr) { - wxWindow *src; - wxEvtHandler *dest; - src = (wxWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "panel"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)new_wxWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_CaptureMouse(_swigobj) (_swigobj->CaptureMouse()) -static PyObject *_wrap_wxWindow_CaptureMouse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_CaptureMouse",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_CaptureMouse. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_CaptureMouse(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Center(_swigobj,_swigarg0) (_swigobj->Center(_swigarg0)) -static PyObject *_wrap_wxWindow_Center(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (wxHORIZONTAL); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxWindow_Center",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Center. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Center(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Centre(_swigobj,_swigarg0) (_swigobj->Centre(_swigarg0)) -static PyObject *_wrap_wxWindow_Centre(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = (wxHORIZONTAL); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxWindow_Centre",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Centre. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Centre(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ClientToScreenXY(_swigobj,_swigarg0,_swigarg1) (_swigobj->ClientToScreen(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_ClientToScreenXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int * _arg2; - char * _argc0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxWindow_ClientToScreenXY",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ClientToScreenXY. Expected _wxWindow_p."); - return NULL; - } - } -{ - temp = (int) PyInt_AsLong(_obj1); - _arg1 = &temp; -} -{ - temp0 = (int) PyInt_AsLong(_obj2); - _arg2 = &temp0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ClientToScreenXY(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_ClientToScreen(_swigobj,_swigarg0) (_swigobj->ClientToScreen(_swigarg0)) -static PyObject *_wrap_wxWindow_ClientToScreen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ClientToScreen",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ClientToScreen. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ClientToScreen. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_ClientToScreen(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_Close(_swigobj,_swigarg0) (_swigobj->Close(_swigarg0)) -static PyObject *_wrap_wxWindow_Close(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - int _arg1 = (0); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxWindow_Close",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Close. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Close(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Destroy(_swigobj) (_swigobj->Destroy()) -static PyObject *_wrap_wxWindow_Destroy(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Destroy",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Destroy. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Destroy(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_DestroyChildren(_swigobj) (_swigobj->DestroyChildren()) -static PyObject *_wrap_wxWindow_DestroyChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_DestroyChildren",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_DestroyChildren. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_DestroyChildren(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_DragAcceptFiles(_swigobj,_swigarg0) (_swigobj->DragAcceptFiles(_swigarg0)) -static PyObject *_wrap_wxWindow_DragAcceptFiles(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_DragAcceptFiles",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_DragAcceptFiles. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_DragAcceptFiles(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxWindow_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Enable. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_FindWindowById(_swigobj,_swigarg0) (_swigobj->FindWindow(_swigarg0)) -static PyObject *_wrap_wxWindow_FindWindowById(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - long _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sl:wxWindow_FindWindowById",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_FindWindowById. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_FindWindowById(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_FindWindowByName(_swigobj,_swigarg0) (_swigobj->FindWindow(_swigarg0)) -static PyObject *_wrap_wxWindow_FindWindowByName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_FindWindowByName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_FindWindowByName. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_FindWindowByName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_Fit(_swigobj) (_swigobj->Fit()) -static PyObject *_wrap_wxWindow_Fit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Fit",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Fit. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Fit(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_GetBackgroundColour(_swigobj) (_swigobj->GetBackgroundColour()) -static PyObject *_wrap_wxWindow_GetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetBackgroundColour. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxWindow_GetBackgroundColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetCharHeight(_swigobj) (_swigobj->GetCharHeight()) -static PyObject *_wrap_wxWindow_GetCharHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetCharHeight",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetCharHeight. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetCharHeight(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetCharWidth(_swigobj) (_swigobj->GetCharWidth()) -static PyObject *_wrap_wxWindow_GetCharWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetCharWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetCharWidth. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetCharWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetClientSizeTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetClientSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_GetClientSizeTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxWindow_GetClientSizeTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetClientSizeTuple. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetClientSizeTuple(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_GetClientSize(_swigobj) (_swigobj->GetClientSize()) -static PyObject *_wrap_wxWindow_GetClientSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetClientSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetClientSize. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_GetClientSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetConstraints(_swigobj) (_swigobj->GetConstraints()) -static PyObject *_wrap_wxWindow_GetConstraints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutConstraints * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetConstraints",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetConstraints. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutConstraints *)wxWindow_GetConstraints(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutConstraints_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetDefaultItem(_swigobj) (_swigobj->GetDefaultItem()) -static PyObject *_wrap_wxWindow_GetDefaultItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxButton * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetDefaultItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetDefaultItem. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxButton *)wxWindow_GetDefaultItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxButton_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxWindow_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetFont. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxWindow_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetForegroundColour(_swigobj) (_swigobj->GetForegroundColour()) -static PyObject *_wrap_wxWindow_GetForegroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetForegroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetForegroundColour. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxColour (wxWindow_GetForegroundColour(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetGrandParent(_swigobj) (_swigobj->GetGrandParent()) -static PyObject *_wrap_wxWindow_GetGrandParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetGrandParent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetGrandParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_GetGrandParent(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxWindow_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetId. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetLabel(_swigobj) (_swigobj->GetLabel()) -static PyObject *_wrap_wxWindow_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetLabel",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetLabel. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxWindow_GetLabel(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxWindow_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxWindow_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetName. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxWindow_GetName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxWindow_GetParent(_swigobj) (_swigobj->GetParent()) -static PyObject *_wrap_wxWindow_GetParent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetParent",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetParent. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxWindow_GetParent(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetPositionTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_GetPositionTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxWindow_GetPositionTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetPositionTuple. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetPositionTuple(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_GetPosition(_swigobj) (_swigobj->GetPosition()) -static PyObject *_wrap_wxWindow_GetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetPosition. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_GetPosition(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetRect(_swigobj) (_swigobj->GetRect()) -static PyObject *_wrap_wxWindow_GetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetRect. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxWindow_GetRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetReturnCode(_swigobj) (_swigobj->GetReturnCode()) -static PyObject *_wrap_wxWindow_GetReturnCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetReturnCode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetReturnCode. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetReturnCode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetScrollThumb(_swigobj,_swigarg0) (_swigobj->GetScrollThumb(_swigarg0)) -static PyObject *_wrap_wxWindow_GetScrollThumb(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_GetScrollThumb",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetScrollThumb. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetScrollThumb(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetScrollPos(_swigobj,_swigarg0) (_swigobj->GetScrollPos(_swigarg0)) -static PyObject *_wrap_wxWindow_GetScrollPos(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_GetScrollPos",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetScrollPos. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetScrollPos(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetScrollRange(_swigobj,_swigarg0) (_swigobj->GetScrollRange(_swigarg0)) -static PyObject *_wrap_wxWindow_GetScrollRange(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_GetScrollRange",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetScrollRange. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxWindow_GetScrollRange(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_GetSizeTuple(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_GetSizeTuple(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxWindow_GetSizeTuple",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetSizeTuple. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetSizeTuple(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxWindow_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetSize. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_GetTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_GetTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - int * _arg2; - int temp; - int * _arg3; - int temp0; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} - if(!PyArg_ParseTuple(args,"sO:wxWindow_GetTextExtent",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetTextExtent. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetTextExtent(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_GetFullTextExtent(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->GetTextExtent(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxWindow_GetFullTextExtent(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - int * _arg2; - int temp; - int * _arg3; - int temp0; - int * _arg4; - int temp1; - int * _arg5; - int temp2; - wxFont * _arg6 = NULL; - char * _argc0 = 0; - PyObject * _obj1 = 0; - char * _argc6 = 0; - - self = self; -{ - _arg2 = &temp; -} -{ - _arg3 = &temp0; -} -{ - _arg4 = &temp1; -} -{ - _arg5 = &temp2; -} - if(!PyArg_ParseTuple(args,"sO|s:wxWindow_GetFullTextExtent",&_argc0,&_obj1,&_argc6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetFullTextExtent. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} - if (_argc6) { - if (SWIG_GetPtr(_argc6,(void **) &_arg6,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 7 of wxWindow_GetFullTextExtent. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_GetFullTextExtent(_arg0,*_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg5)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxWindow_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetTitle. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxWindow_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxWindow_GetWindowStyleFlag(_swigobj) (_swigobj->GetWindowStyleFlag()) -static PyObject *_wrap_wxWindow_GetWindowStyleFlag(PyObject *self, PyObject *args) { - PyObject * _resultobj; - long _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetWindowStyleFlag",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetWindowStyleFlag. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (long )wxWindow_GetWindowStyleFlag(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("l",_result); - return _resultobj; -} - -#define wxWindow_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxWindow_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_InitDialog",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_InitDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_InitDialog(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_IsEnabled(_swigobj) (_swigobj->IsEnabled()) -static PyObject *_wrap_wxWindow_IsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_IsEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsEnabled. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_IsRetained(_swigobj) (_swigobj->IsRetained()) -static PyObject *_wrap_wxWindow_IsRetained(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_IsRetained",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsRetained. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsRetained(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_IsShown(_swigobj) (_swigobj->IsShown()) -static PyObject *_wrap_wxWindow_IsShown(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_IsShown",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_IsShown. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_IsShown(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Layout(_swigobj) (_swigobj->Layout()) -static PyObject *_wrap_wxWindow_Layout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Layout",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Layout. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Layout(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_LoadFromResource(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->LoadFromResource(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_LoadFromResource(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxWindow * _arg1; - wxString * _arg2; - wxResourceTable * _arg3 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|s:wxWindow_LoadFromResource",&_argc0,&_argc1,&_obj2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_LoadFromResource. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_LoadFromResource. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxResourceTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxWindow_LoadFromResource. Expected _wxResourceTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_LoadFromResource(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxWindow_Lower(_swigobj) (_swigobj->Lower()) -static PyObject *_wrap_wxWindow_Lower(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Lower",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Lower. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Lower(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_MakeModal(_swigobj,_swigarg0) (_swigobj->MakeModal(_swigarg0)) -static PyObject *_wrap_wxWindow_MakeModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_MakeModal",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_MakeModal. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_MakeModal(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_MoveXY(_swigobj,_swigarg0,_swigarg1) (_swigobj->Move(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_MoveXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxWindow_MoveXY",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_MoveXY. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_MoveXY(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Move(_swigobj,_swigarg0) (_swigobj->Move(_swigarg0)) -static PyObject *_wrap_wxWindow_Move(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_Move",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Move. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_Move. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Move(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_PopupMenu(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->PopupMenu(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_PopupMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - wxMenu * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxWindow_PopupMenu",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_PopupMenu. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_PopupMenu. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_PopupMenu(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Raise(_swigobj) (_swigobj->Raise()) -static PyObject *_wrap_wxWindow_Raise(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Raise",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Raise. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Raise(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_Refresh(_swigobj,_swigarg0,_swigarg1) (_swigobj->Refresh(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_Refresh(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1 = (1); - wxRect * _arg2 = NULL; - char * _argc0 = 0; - int tempbool1; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|is:wxWindow_Refresh",&_argc0,&tempbool1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Refresh. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxWindow_Refresh. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_Refresh(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ReleaseMouse(_swigobj) (_swigobj->ReleaseMouse()) -static PyObject *_wrap_wxWindow_ReleaseMouse(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_ReleaseMouse",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ReleaseMouse. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ReleaseMouse(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ScreenToClientXY(_swigobj,_swigarg0,_swigarg1) (_swigobj->ScreenToClient(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_ScreenToClientXY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int * _arg1; - int * _arg2; - char * _argc0 = 0; - int temp; - PyObject * _obj1 = 0; - int temp0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxWindow_ScreenToClientXY",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScreenToClientXY. Expected _wxWindow_p."); - return NULL; - } - } -{ - temp = (int) PyInt_AsLong(_obj1); - _arg1 = &temp; -} -{ - temp0 = (int) PyInt_AsLong(_obj2); - _arg2 = &temp0; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ScreenToClientXY(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxWindow_ScreenToClient(_swigobj,_swigarg0) (_swigobj->ScreenToClient(_swigarg0)) -static PyObject *_wrap_wxWindow_ScreenToClient(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ScreenToClient",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScreenToClient. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ScreenToClient. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_ScreenToClient(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ScrollWindow(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->ScrollWindow(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_ScrollWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - wxRect * _arg3 = NULL; - char * _argc0 = 0; - char * _argc3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii|s:wxWindow_ScrollWindow",&_argc0,&_arg1,&_arg2,&_argc3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ScrollWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxWindow_ScrollWindow. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_ScrollWindow(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetAcceleratorTable(_swigobj,_swigarg0) (_swigobj->SetAcceleratorTable(_swigarg0)) -static PyObject *_wrap_wxWindow_SetAcceleratorTable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxAcceleratorTable * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetAcceleratorTable",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetAcceleratorTable. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxAcceleratorTable_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetAcceleratorTable. Expected _wxAcceleratorTable_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetAcceleratorTable(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetAutoLayout(_swigobj,_swigarg0) (_swigobj->SetAutoLayout(_swigarg0)) -static PyObject *_wrap_wxWindow_SetAutoLayout(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_SetAutoLayout",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetAutoLayout. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetAutoLayout(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxWindow_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetBackgroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetConstraints(_swigobj,_swigarg0) (_swigobj->SetConstraints(_swigarg0)) -static PyObject *_wrap_wxWindow_SetConstraints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxLayoutConstraints * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetConstraints",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetConstraints. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxLayoutConstraints_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetConstraints. Expected _wxLayoutConstraints_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetConstraints(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetDoubleClick(_swigobj,_swigarg0) (_swigobj->SetDoubleClick(_swigarg0)) -static PyObject *_wrap_wxWindow_SetDoubleClick(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_SetDoubleClick",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetDoubleClick. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetDoubleClick(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetFocus(_swigobj) (_swigobj->SetFocus()) -static PyObject *_wrap_wxWindow_SetFocus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_SetFocus",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetFocus. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetFocus(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxWindow_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetFont. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetForegroundColour(_swigobj,_swigarg0) (_swigobj->SetForegroundColour(_swigarg0)) -static PyObject *_wrap_wxWindow_SetForegroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetForegroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetForegroundColour. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetForegroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetForegroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetId(_swigobj,_swigarg0) (_swigobj->SetId(_swigarg0)) -static PyObject *_wrap_wxWindow_SetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_SetId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetId. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetName(_swigobj,_swigarg0) (_swigobj->SetName(_swigarg0)) -static PyObject *_wrap_wxWindow_SetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_SetName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetName. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_SetReturnCode(_swigobj,_swigarg0) (_swigobj->SetReturnCode(_swigarg0)) -static PyObject *_wrap_wxWindow_SetReturnCode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_SetReturnCode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetReturnCode. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetReturnCode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetScrollbar(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetScrollbar(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxWindow_SetScrollbar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - bool _arg5 = (1); - char * _argc0 = 0; - int tempbool5; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|i:wxWindow_SetScrollbar",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&tempbool5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetScrollbar. Expected _wxWindow_p."); - return NULL; - } - } - _arg5 = (bool ) tempbool5; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetScrollbar(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetScrollPos(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetScrollPos(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxWindow_SetScrollPos(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"sii|i:wxWindow_SetScrollPos",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetScrollPos. Expected _wxWindow_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetScrollPos(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetDimensions(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->SetSize(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxWindow_SetDimensions(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - int _arg5 = (wxSIZE_AUTO); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|i:wxWindow_SetDimensions",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetDimensions. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetDimensions(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxWindow_SetSize(wxWindow *self,const wxSize & size) { - self->SetSize(size.x, size.y); - } -static PyObject *_wrap_wxWindow_SetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void wxWindow_SetPosition(wxWindow *self,const wxPoint & pos) { - self->SetSize(pos.x, pos.y, -1, -1); - } -static PyObject *_wrap_wxWindow_SetPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetPosition",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetPosition. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetPosition. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetPosition(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetSizeHints(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->SetSizeHints(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxWindow_SetSizeHints(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1 = -1; - int _arg2 = -1; - int _arg3 = -1; - int _arg4 = -1; - int _arg5 = -1; - int _arg6 = -1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|iiiiii:wxWindow_SetSizeHints",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetSizeHints. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetSizeHints(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetClientSizeWH(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetClientSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_SetClientSizeWH(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxWindow_SetClientSizeWH",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetClientSizeWH. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetClientSizeWH(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetClientSize(_swigobj,_swigarg0) (_swigobj->SetClientSize(_swigarg0)) -static PyObject *_wrap_wxWindow_SetClientSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetClientSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetClientSize. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetClientSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetClientSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetCursor(_swigobj,_swigarg0) (_swigobj->SetCursor(_swigarg0)) -static PyObject *_wrap_wxWindow_SetCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxCursor * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetCursor",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetCursor. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxCursor_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetCursor. Expected _wxCursor_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetCursor(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxWindow_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetTitle. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_Show(_swigobj,_swigarg0) (_swigobj->Show(_swigarg0)) -static PyObject *_wrap_wxWindow_Show(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxWindow_Show",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Show. Expected _wxWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Show(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_TransferDataFromWindow(_swigobj) (_swigobj->TransferDataFromWindow()) -static PyObject *_wrap_wxWindow_TransferDataFromWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_TransferDataFromWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_TransferDataFromWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_TransferDataFromWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_TransferDataToWindow(_swigobj) (_swigobj->TransferDataToWindow()) -static PyObject *_wrap_wxWindow_TransferDataToWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_TransferDataToWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_TransferDataToWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_TransferDataToWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_Validate(_swigobj) (_swigobj->Validate()) -static PyObject *_wrap_wxWindow_Validate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_Validate",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_Validate. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxWindow_Validate(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxWindow_WarpPointer(_swigobj,_swigarg0,_swigarg1) (_swigobj->WarpPointer(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxWindow_WarpPointer(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxWindow_WarpPointer",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_WarpPointer. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_WarpPointer(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_ConvertDialogPointToPixels(_swigobj,_swigarg0) (_swigobj->ConvertDialogToPixels(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertDialogPointToPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertDialogPointToPixels",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogPointToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertDialogPointToPixels. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_ConvertDialogPointToPixels(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ConvertDialogSizeToPixels(_swigobj,_swigarg0) (_swigobj->ConvertDialogToPixels(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertDialogSizeToPixels(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertDialogSizeToPixels",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertDialogSizeToPixels. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertDialogSizeToPixels. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_ConvertDialogSizeToPixels(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ConvertPixelPointToDialog(_swigobj,_swigarg0) (_swigobj->ConvertPixelsToDialog(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertPixelPointToDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPoint * _result; - wxWindow * _arg0; - wxPoint * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertPixelPointToDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelPointToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertPixelPointToDialog. Expected _wxPoint_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxPoint (wxWindow_ConvertPixelPointToDialog(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxPoint_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_ConvertPixelSizeToDialog(_swigobj,_swigarg0) (_swigobj->ConvertPixelsToDialog(_swigarg0)) -static PyObject *_wrap_wxWindow_ConvertPixelSizeToDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_ConvertPixelSizeToDialog",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_ConvertPixelSizeToDialog. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_ConvertPixelSizeToDialog. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxWindow_ConvertPixelSizeToDialog(_arg0,*_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxWindow_SetToolTipString(_swigobj,_swigarg0) (_swigobj->SetToolTip(_swigarg0)) -static PyObject *_wrap_wxWindow_SetToolTipString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxWindow_SetToolTipString",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetToolTipString. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetToolTipString(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxWindow_SetToolTip(_swigobj,_swigarg0) (_swigobj->SetToolTip(_swigarg0)) -static PyObject *_wrap_wxWindow_SetToolTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _arg0; - wxToolTip * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxWindow_SetToolTip",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_SetToolTip. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxToolTip_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxWindow_SetToolTip. Expected _wxToolTip_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxWindow_SetToolTip(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxWindow_GetToolTip(_swigobj) (_swigobj->GetToolTip()) -static PyObject *_wrap_wxWindow_GetToolTip(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxToolTip * _result; - wxWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxWindow_GetToolTip",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxWindow_GetToolTip. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxToolTip *)wxWindow_GetToolTip(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxToolTip_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxPanelTowxWindow(void *ptr) { - wxPanel *src; - wxWindow *dest; - src = (wxPanel *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxPanelTowxEvtHandler(void *ptr) { - wxPanel *src; - wxEvtHandler *dest; - src = (wxPanel *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPanel(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxPanel(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxPanel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxTAB_TRAVERSAL); - char * _arg5 = "panel"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxPanel",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxPanel. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxPanel. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxPanel. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPanel *)new_wxPanel(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPanel_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPanel_InitDialog(_swigobj) (_swigobj->InitDialog()) -static PyObject *_wrap_wxPanel_InitDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPanel * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPanel_InitDialog",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPanel_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPanel_InitDialog. Expected _wxPanel_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPanel_InitDialog(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxDialogTowxPanel(void *ptr) { - wxDialog *src; - wxPanel *dest; - src = (wxDialog *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxDialogTowxWindow(void *ptr) { - wxDialog *src; - wxWindow *dest; - src = (wxDialog *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxDialogTowxEvtHandler(void *ptr) { - wxDialog *src; - wxEvtHandler *dest; - src = (wxDialog *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6) (new wxDialog(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5,_swigarg6)) -static PyObject *_wrap_new_wxDialog(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxString * _arg2; - wxPoint * _arg3 = &wxPyDefaultPosition; - wxSize * _arg4 = &wxPyDefaultSize; - long _arg5 = (wxDEFAULT_DIALOG_STYLE); - char * _arg6 = "dialogBox"; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - char * _argc4 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"siO|ssls:new_wxDialog",&_argc0,&_arg1,&_obj2,&_argc3,&_argc4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxDialog. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxDialog. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc4) { - if (SWIG_GetPtr(_argc4,(void **) &_arg4,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 5 of new_wxDialog. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxDialog *)new_wxDialog(_arg0,_arg1,*_arg2,*_arg3,*_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxDialog_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxDialog_Centre(_swigobj,_swigarg0) (_swigobj->Centre(_swigarg0)) -static PyObject *_wrap_wxDialog_Centre(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - int _arg1 = (wxBOTH); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxDialog_Centre",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_Centre. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_Centre(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_EndModal(_swigobj,_swigarg0) (_swigobj->EndModal(_swigarg0)) -static PyObject *_wrap_wxDialog_EndModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_EndModal",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_EndModal. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_EndModal(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxDialog_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_GetTitle. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxDialog_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxDialog_Iconize(_swigobj,_swigarg0) (_swigobj->Iconize(_swigarg0)) -static PyObject *_wrap_wxDialog_Iconize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_Iconize",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_Iconize. Expected _wxDialog_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_Iconize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_IsIconized(_swigobj) (_swigobj->IsIconized()) -static PyObject *_wrap_wxDialog_IsIconized(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_IsIconized",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_IsIconized. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDialog_IsIconized(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_SetModal(_swigobj,_swigarg0) (_swigobj->SetModal(_swigarg0)) -static PyObject *_wrap_wxDialog_SetModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_SetModal",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_SetModal. Expected _wxDialog_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_SetModal(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxDialog_IsModal(_swigobj) (_swigobj->IsModal()) -static PyObject *_wrap_wxDialog_IsModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_IsModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_IsModal. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDialog_IsModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxDialog_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxDialog * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxDialog_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_SetTitle. Expected _wxDialog_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxDialog_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxDialog_Show(_swigobj,_swigarg0) (_swigobj->Show(_swigarg0)) -static PyObject *_wrap_wxDialog_Show(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxDialog * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxDialog_Show",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_Show. Expected _wxDialog_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxDialog_Show(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxDialog_ShowModal(_swigobj) (_swigobj->ShowModal()) -static PyObject *_wrap_wxDialog_ShowModal(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxDialog * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxDialog_ShowModal",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxDialog_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxDialog_ShowModal. Expected _wxDialog_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxDialog_ShowModal(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxScrolledWindowTowxWindow(void *ptr) { - wxScrolledWindow *src; - wxWindow *dest; - src = (wxScrolledWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxScrolledWindowTowxEvtHandler(void *ptr) { - wxScrolledWindow *src; - wxEvtHandler *dest; - src = (wxScrolledWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxScrolledWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxScrolledWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxScrolledWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1 = -1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxHSCROLL)|(wxVSCROLL); - char * _arg5 = "scrolledWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|issls:new_wxScrolledWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxScrolledWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxScrolledWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxScrolledWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrolledWindow *)new_wxScrolledWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrolledWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxScrolledWindow_EnableScrolling(_swigobj,_swigarg0,_swigarg1) (_swigobj->EnableScrolling(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_EnableScrolling(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - bool _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool1; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxScrolledWindow_EnableScrolling",&_argc0,&tempbool1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_EnableScrolling. Expected _wxScrolledWindow_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_EnableScrolling(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_GetScrollPixelsPerUnit(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetScrollPixelsPerUnit(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_GetScrollPixelsPerUnit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_GetScrollPixelsPerUnit",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_GetScrollPixelsPerUnit. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_GetScrollPixelsPerUnit(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxScrolledWindow_GetVirtualSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetVirtualSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_GetVirtualSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_GetVirtualSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_GetVirtualSize. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_GetVirtualSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -#define wxScrolledWindow_IsRetained(_swigobj) (_swigobj->IsRetained()) -static PyObject *_wrap_wxScrolledWindow_IsRetained(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxScrolledWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_IsRetained",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_IsRetained. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxScrolledWindow_IsRetained(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxScrolledWindow_PrepareDC(_swigobj,_swigarg0) (_swigobj->PrepareDC(_swigarg0)) -static PyObject *_wrap_wxScrolledWindow_PrepareDC(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - wxDC * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxScrolledWindow_PrepareDC",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_PrepareDC. Expected _wxScrolledWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxDC_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxScrolledWindow_PrepareDC. Expected _wxDC_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_PrepareDC(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_Scroll(_swigobj,_swigarg0,_swigarg1) (_swigobj->Scroll(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_Scroll(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxScrolledWindow_Scroll",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_Scroll. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_Scroll(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_SetScrollbars(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (_swigobj->SetScrollbars(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_wxScrolledWindow_SetScrollbars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int _arg1; - int _arg2; - int _arg3; - int _arg4; - int _arg5 = 0; - int _arg6 = 0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siiii|ii:wxScrolledWindow_SetScrollbars",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4,&_arg5,&_arg6)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_SetScrollbars. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_SetScrollbars(_arg0,_arg1,_arg2,_arg3,_arg4,_arg5,_arg6); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxScrolledWindow_ViewStart(_swigobj,_swigarg0,_swigarg1) (_swigobj->ViewStart(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxScrolledWindow_ViewStart(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrolledWindow * _arg0; - int * _arg1; - int temp; - int * _arg2; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg1 = &temp; -} -{ - _arg2 = &temp0; -} - if(!PyArg_ParseTuple(args,"s:wxScrolledWindow_ViewStart",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxScrolledWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxScrolledWindow_ViewStart. Expected _wxScrolledWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxScrolledWindow_ViewStart(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg1)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg2)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static void *SwigwxMenuTowxEvtHandler(void *ptr) { - wxMenu *src; - wxEvtHandler *dest; - src = (wxMenu *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMenu(_swigarg0) (new wxMenu(_swigarg0)) -static PyObject *_wrap_new_wxMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxString * _arg0 = &wxPyEmptyStr; - PyObject * _obj0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|O:new_wxMenu",&_obj0)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenu *)new_wxMenu(*_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define wxMenu_Append(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->Append(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxMenu_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - wxString * _arg3 = &wxPyEmptyStr; - int _arg4 = (0); - char * _argc0 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO|Oi:wxMenu_Append",&_argc0,&_arg1,&_obj2,&_obj3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Append. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Append(_arg0,_arg1,*_arg2,*_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxMenu_AppendMenu(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->Append(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxMenu_AppendMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - wxMenu * _arg3; - wxString * _arg4 = &wxPyEmptyStr; - char * _argc0 = 0; - PyObject * _obj2 = 0; - char * _argc3 = 0; - PyObject * _obj4 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siOs|O:wxMenu_AppendMenu",&_argc0,&_arg1,&_obj2,&_argc3,&_obj4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_AppendMenu. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of wxMenu_AppendMenu. Expected _wxMenu_p."); - return NULL; - } - } - if (_obj4) -{ - if (!PyString_Check(_obj4)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg4 = new wxString(PyString_AsString(_obj4), PyString_Size(_obj4)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_AppendMenu(_arg0,_arg1,*_arg2,_arg3,*_arg4); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj4) - delete _arg4; -} - return _resultobj; -} - -#define wxMenu_AppendItem(_swigobj,_swigarg0) (_swigobj->Append(_swigarg0)) -static PyObject *_wrap_wxMenu_AppendItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - wxMenuItem * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMenu_AppendItem",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_AppendItem. Expected _wxMenu_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenu_AppendItem. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_AppendItem(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_AppendSeparator(_swigobj) (_swigobj->AppendSeparator()) -static PyObject *_wrap_wxMenu_AppendSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenu_AppendSeparator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_AppendSeparator. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_AppendSeparator(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_Break(_swigobj) (_swigobj->Break()) -static PyObject *_wrap_wxMenu_Break(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenu_Break",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Break. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Break(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_Check(_swigobj,_swigarg0,_swigarg1) (_swigobj->Check(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenu_Check",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Check. Expected _wxMenu_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Check(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_Enable(_swigobj,_swigarg0,_swigarg1) (_swigobj->Enable(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenu_Enable",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_Enable. Expected _wxMenu_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_Enable(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenu_FindItem(_swigobj,_swigarg0) (_swigobj->FindItem(_swigarg0)) -static PyObject *_wrap_wxMenu_FindItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenu * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenu_FindItem",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_FindItem. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenu_FindItem(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenu_GetTitle(_swigobj) (_swigobj->GetTitle()) -static PyObject *_wrap_wxMenu_GetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenu_GetTitle",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_GetTitle. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenu_GetTitle(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenu_SetTitle(_swigobj,_swigarg0) (_swigobj->SetTitle(_swigarg0)) -static PyObject *_wrap_wxMenu_SetTitle(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenu_SetTitle",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_SetTitle. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_SetTitle(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenu_FindItemForId(_swigobj,_swigarg0) (_swigobj->FindItemForId(_swigarg0)) -static PyObject *_wrap_wxMenu_FindItemForId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_FindItemForId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_FindItemForId. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuItem *)wxMenu_FindItemForId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenu_GetHelpString(_swigobj,_swigarg0) (_swigobj->GetHelpString(_swigarg0)) -static PyObject *_wrap_wxMenu_GetHelpString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_GetHelpString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_GetHelpString. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenu_GetHelpString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenu_GetLabel(_swigobj,_swigarg0) (_swigobj->GetLabel(_swigarg0)) -static PyObject *_wrap_wxMenu_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_GetLabel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_GetLabel. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenu_GetLabel(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenu_SetHelpString(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetHelpString(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_SetHelpString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenu_SetHelpString",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_SetHelpString. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_SetHelpString(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenu_IsChecked(_swigobj,_swigarg0) (_swigobj->IsChecked(_swigarg0)) -static PyObject *_wrap_wxMenu_IsChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_IsChecked",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_IsChecked. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenu_IsChecked(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenu_IsEnabled(_swigobj,_swigarg0) (_swigobj->IsEnabled(_swigarg0)) -static PyObject *_wrap_wxMenu_IsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenu * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenu_IsEnabled",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_IsEnabled. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenu_IsEnabled(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenu_SetLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenu_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenu_SetLabel",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenu_SetLabel. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenu_SetLabel(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -static void *SwigwxPyMenuTowxMenu(void *ptr) { - wxPyMenu *src; - wxMenu *dest; - src = (wxPyMenu *) ptr; - dest = (wxMenu *) src; - return (void *) dest; -} - -static void *SwigwxPyMenuTowxEvtHandler(void *ptr) { - wxPyMenu *src; - wxEvtHandler *dest; - src = (wxPyMenu *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxPyMenu(_swigarg0,_swigarg1) (new wxPyMenu(_swigarg0,_swigarg1)) -static PyObject *_wrap_new_wxPyMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyMenu * _result; - wxString * _arg0 = &wxPyEmptyStr; - PyObject * _arg1 = NULL; - PyObject * _obj0 = 0; - PyObject * _obj1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|OO:new_wxPyMenu",&_obj0,&_obj1)) - return NULL; - if (_obj0) -{ - if (!PyString_Check(_obj0)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg0 = new wxString(PyString_AsString(_obj0), PyString_Size(_obj0)); -} - if (_obj1) -{ - _arg1 = _obj1; -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyMenu *)new_wxPyMenu(*_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj0) - delete _arg0; -} - return _resultobj; -} - -#define delete_wxPyMenu(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxPyMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyMenu * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxPyMenu",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxPyMenu. Expected _wxPyMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxPyMenu(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxMenuBarTowxEvtHandler(void *ptr) { - wxMenuBar *src; - wxEvtHandler *dest; - src = (wxMenuBar *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxMenuBar() (new wxMenuBar()) -static PyObject *_wrap_new_wxMenuBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxMenuBar")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuBar *)new_wxMenuBar(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuBar_Append(_swigobj,_swigarg0,_swigarg1) (_swigobj->Append(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_Append(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - wxMenu * _arg1; - wxString * _arg2; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO:wxMenuBar_Append",&_argc0,&_argc1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Append. Expected _wxMenuBar_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuBar_Append. Expected _wxMenu_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_Append(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_Check(_swigobj,_swigarg0,_swigarg1) (_swigobj->Check(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenuBar_Check",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Check. Expected _wxMenuBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_Check(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuBar_Checked(_swigobj,_swigarg0) (_swigobj->Checked(_swigarg0)) -static PyObject *_wrap_wxMenuBar_Checked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_Checked",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Checked. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuBar_Checked(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuBar_Enable(_swigobj,_swigarg0,_swigarg1) (_swigobj->Enable(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenuBar_Enable",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Enable. Expected _wxMenuBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_Enable(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuBar_Enabled(_swigobj,_swigarg0) (_swigobj->Enabled(_swigarg0)) -static PyObject *_wrap_wxMenuBar_Enabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_Enabled",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_Enabled. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuBar_Enabled(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuBar_FindMenuItem(_swigobj,_swigarg0,_swigarg1) (_swigobj->FindMenuItem(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_FindMenuItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuBar * _arg0; - wxString * _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOO:wxMenuBar_FindMenuItem",&_argc0,&_obj1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_FindMenuItem. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuBar_FindMenuItem(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj1) - delete _arg1; -} -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_FindItemForId(_swigobj,_swigarg0) (_swigobj->FindItemForId(_swigarg0)) -static PyObject *_wrap_wxMenuBar_FindItemForId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_FindItemForId",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_FindItemForId. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuItem *)wxMenuBar_FindItemForId(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuBar_EnableTop(_swigobj,_swigarg0,_swigarg1) (_swigobj->EnableTop(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_EnableTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxMenuBar_EnableTop",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_EnableTop. Expected _wxMenuBar_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_EnableTop(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuBar_GetHelpString(_swigobj,_swigarg0) (_swigobj->GetHelpString(_swigarg0)) -static PyObject *_wrap_wxMenuBar_GetHelpString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_GetHelpString",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetHelpString. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuBar_GetHelpString(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuBar_GetLabel(_swigobj,_swigarg0) (_swigobj->GetLabel(_swigarg0)) -static PyObject *_wrap_wxMenuBar_GetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_GetLabel",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetLabel. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuBar_GetLabel(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuBar_SetHelpString(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetHelpString(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_SetHelpString(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenuBar_SetHelpString",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_SetHelpString. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_SetHelpString(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_SetLabel(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabel(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_SetLabel(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenuBar_SetLabel",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_SetLabel. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_SetLabel(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_GetLabelTop(_swigobj,_swigarg0) (_swigobj->GetLabelTop(_swigarg0)) -static PyObject *_wrap_wxMenuBar_GetLabelTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_GetLabelTop",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetLabelTop. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuBar_GetLabelTop(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuBar_SetLabelTop(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabelTop(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuBar_SetLabelTop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuBar * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxMenuBar_SetLabelTop",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_SetLabelTop. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuBar_SetLabelTop(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxMenuBar_GetMenuCount(_swigobj) (_swigobj->GetMenuCount()) -static PyObject *_wrap_wxMenuBar_GetMenuCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuBar * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuBar_GetMenuCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetMenuCount. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuBar_GetMenuCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuBar_GetMenu(_swigobj,_swigarg0) (_swigobj->GetMenu(_swigarg0)) -static PyObject *_wrap_wxMenuBar_GetMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxMenuBar * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuBar_GetMenu",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuBar_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuBar_GetMenu. Expected _wxMenuBar_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenu *)wxMenuBar_GetMenu(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define new_wxMenuItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxMenuItem(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxMenuItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _result; - wxMenu * _arg0 = NULL; - int _arg1 = ID_SEPARATOR; - wxString * _arg2 = &wxPyEmptyStr; - wxString * _arg3 = &wxPyEmptyStr; - bool _arg4 = (0); - wxMenu * _arg5 = NULL; - char * _argc0 = 0; - PyObject * _obj2 = 0; - PyObject * _obj3 = 0; - int tempbool4; - char * _argc5 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"|siOOis:new_wxMenuItem",&_argc0,&_arg1,&_obj2,&_obj3,&tempbool4,&_argc5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxMenuItem. Expected _wxMenu_p."); - return NULL; - } - } - if (_obj2) -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} - if (_obj3) -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} - _arg4 = (bool ) tempbool4; - if (_argc5) { - if (SWIG_GetPtr(_argc5,(void **) &_arg5,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 6 of new_wxMenuItem. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenuItem *)new_wxMenuItem(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenuItem_p"); - _resultobj = Py_BuildValue("s",_ptemp); -{ - if (_obj2) - delete _arg2; -} -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxMenuItem_IsSeparator(_swigobj) (_swigobj->IsSeparator()) -static PyObject *_wrap_wxMenuItem_IsSeparator(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsSeparator",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsSeparator. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsSeparator(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_IsEnabled(_swigobj) (_swigobj->IsEnabled()) -static PyObject *_wrap_wxMenuItem_IsEnabled(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsEnabled",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsEnabled. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsEnabled(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_IsChecked(_swigobj) (_swigobj->IsChecked()) -static PyObject *_wrap_wxMenuItem_IsChecked(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsChecked",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsChecked. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsChecked(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_IsCheckable(_swigobj) (_swigobj->IsCheckable()) -static PyObject *_wrap_wxMenuItem_IsCheckable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_IsCheckable",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_IsCheckable. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxMenuItem_IsCheckable(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_GetId(_swigobj) (_swigobj->GetId()) -static PyObject *_wrap_wxMenuItem_GetId(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetId",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetId. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuItem_GetId(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_GetSubMenu(_swigobj) (_swigobj->GetSubMenu()) -static PyObject *_wrap_wxMenuItem_GetSubMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenu * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetSubMenu",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetSubMenu. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxMenu *)wxMenuItem_GetSubMenu(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxMenu_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_SetName(_swigobj,_swigarg0) (_swigobj->SetName(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenuItem_SetName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetName. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenuItem_GetName(_swigobj) (_swigobj->GetName()) -static PyObject *_wrap_wxMenuItem_GetName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetName. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuItem_GetName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuItem_GetHelp(_swigobj) (_swigobj->GetHelp()) -static PyObject *_wrap_wxMenuItem_GetHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetHelp",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetHelp. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxMenuItem_GetHelp(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxMenuItem_SetHelp(_swigobj,_swigarg0) (_swigobj->SetHelp(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetHelp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxMenuItem_SetHelp",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetHelp. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetHelp(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxMenuItem_Enable(_swigobj,_swigarg0) (_swigobj->Enable(_swigarg0)) -static PyObject *_wrap_wxMenuItem_Enable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMenuItem_Enable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_Enable. Expected _wxMenuItem_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_Enable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_Check(_swigobj,_swigarg0) (_swigobj->Check(_swigarg0)) -static PyObject *_wrap_wxMenuItem_Check(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMenuItem_Check",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_Check. Expected _wxMenuItem_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_Check(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_GetBackgroundColour(_swigobj) (_swigobj->GetBackgroundColour()) -static PyObject *_wrap_wxMenuItem_GetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetBackgroundColour. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxMenuItem_GetBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_GetBitmap(_swigobj,_swigarg0) (_swigobj->GetBitmap(_swigarg0)) -static PyObject *_wrap_wxMenuItem_GetBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxMenuItem * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxMenuItem_GetBitmap",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetBitmap. Expected _wxMenuItem_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxBitmap (wxMenuItem_GetBitmap(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxMenuItem_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetFont. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxMenuItem_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_GetMarginWidth(_swigobj) (_swigobj->GetMarginWidth()) -static PyObject *_wrap_wxMenuItem_GetMarginWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetMarginWidth",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetMarginWidth. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxMenuItem_GetMarginWidth(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxMenuItem_GetTextColour(_swigobj) (_swigobj->GetTextColour()) -static PyObject *_wrap_wxMenuItem_GetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxMenuItem * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_GetTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_GetTextColour. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxMenuItem_GetTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxMenuItem_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMenuItem_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetBackgroundColour. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuItem_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_SetBitmaps(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetBitmaps(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxMenuItem_SetBitmaps(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxBitmap * _arg1; - wxBitmap * _arg2 = &wxNullBitmap; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxMenuItem_SetBitmaps",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetBitmaps. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuItem_SetBitmaps. Expected _wxBitmap_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxMenuItem_SetBitmaps. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetBitmaps(_arg0,*_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMenuItem_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetFont. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuItem_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_SetMarginWidth(_swigobj,_swigarg0) (_swigobj->SetMarginWidth(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetMarginWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxMenuItem_SetMarginWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetMarginWidth. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetMarginWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_SetTextColour(_swigobj,_swigarg0) (_swigobj->SetTextColour(_swigarg0)) -static PyObject *_wrap_wxMenuItem_SetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxMenuItem_SetTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_SetTextColour. Expected _wxMenuItem_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxMenuItem_SetTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_SetTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxMenuItem_DeleteSubMenu(_swigobj) (_swigobj->DeleteSubMenu()) -static PyObject *_wrap_wxMenuItem_DeleteSubMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxMenuItem * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxMenuItem_DeleteSubMenu",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxMenuItem_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMenuItem_DeleteSubMenu. Expected _wxMenuItem_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxMenuItem_DeleteSubMenu(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef windowscMethods[] = { - { "wxMenuItem_DeleteSubMenu", _wrap_wxMenuItem_DeleteSubMenu, 1 }, - { "wxMenuItem_SetTextColour", _wrap_wxMenuItem_SetTextColour, 1 }, - { "wxMenuItem_SetMarginWidth", _wrap_wxMenuItem_SetMarginWidth, 1 }, - { "wxMenuItem_SetFont", _wrap_wxMenuItem_SetFont, 1 }, - { "wxMenuItem_SetBitmaps", _wrap_wxMenuItem_SetBitmaps, 1 }, - { "wxMenuItem_SetBackgroundColour", _wrap_wxMenuItem_SetBackgroundColour, 1 }, - { "wxMenuItem_GetTextColour", _wrap_wxMenuItem_GetTextColour, 1 }, - { "wxMenuItem_GetMarginWidth", _wrap_wxMenuItem_GetMarginWidth, 1 }, - { "wxMenuItem_GetFont", _wrap_wxMenuItem_GetFont, 1 }, - { "wxMenuItem_GetBitmap", _wrap_wxMenuItem_GetBitmap, 1 }, - { "wxMenuItem_GetBackgroundColour", _wrap_wxMenuItem_GetBackgroundColour, 1 }, - { "wxMenuItem_Check", _wrap_wxMenuItem_Check, 1 }, - { "wxMenuItem_Enable", _wrap_wxMenuItem_Enable, 1 }, - { "wxMenuItem_SetHelp", _wrap_wxMenuItem_SetHelp, 1 }, - { "wxMenuItem_GetHelp", _wrap_wxMenuItem_GetHelp, 1 }, - { "wxMenuItem_GetName", _wrap_wxMenuItem_GetName, 1 }, - { "wxMenuItem_SetName", _wrap_wxMenuItem_SetName, 1 }, - { "wxMenuItem_GetSubMenu", _wrap_wxMenuItem_GetSubMenu, 1 }, - { "wxMenuItem_GetId", _wrap_wxMenuItem_GetId, 1 }, - { "wxMenuItem_IsCheckable", _wrap_wxMenuItem_IsCheckable, 1 }, - { "wxMenuItem_IsChecked", _wrap_wxMenuItem_IsChecked, 1 }, - { "wxMenuItem_IsEnabled", _wrap_wxMenuItem_IsEnabled, 1 }, - { "wxMenuItem_IsSeparator", _wrap_wxMenuItem_IsSeparator, 1 }, - { "new_wxMenuItem", _wrap_new_wxMenuItem, 1 }, - { "wxMenuBar_GetMenu", _wrap_wxMenuBar_GetMenu, 1 }, - { "wxMenuBar_GetMenuCount", _wrap_wxMenuBar_GetMenuCount, 1 }, - { "wxMenuBar_SetLabelTop", _wrap_wxMenuBar_SetLabelTop, 1 }, - { "wxMenuBar_GetLabelTop", _wrap_wxMenuBar_GetLabelTop, 1 }, - { "wxMenuBar_SetLabel", _wrap_wxMenuBar_SetLabel, 1 }, - { "wxMenuBar_SetHelpString", _wrap_wxMenuBar_SetHelpString, 1 }, - { "wxMenuBar_GetLabel", _wrap_wxMenuBar_GetLabel, 1 }, - { "wxMenuBar_GetHelpString", _wrap_wxMenuBar_GetHelpString, 1 }, - { "wxMenuBar_EnableTop", _wrap_wxMenuBar_EnableTop, 1 }, - { "wxMenuBar_FindItemForId", _wrap_wxMenuBar_FindItemForId, 1 }, - { "wxMenuBar_FindMenuItem", _wrap_wxMenuBar_FindMenuItem, 1 }, - { "wxMenuBar_Enabled", _wrap_wxMenuBar_Enabled, 1 }, - { "wxMenuBar_Enable", _wrap_wxMenuBar_Enable, 1 }, - { "wxMenuBar_Checked", _wrap_wxMenuBar_Checked, 1 }, - { "wxMenuBar_Check", _wrap_wxMenuBar_Check, 1 }, - { "wxMenuBar_Append", _wrap_wxMenuBar_Append, 1 }, - { "new_wxMenuBar", _wrap_new_wxMenuBar, 1 }, - { "delete_wxPyMenu", _wrap_delete_wxPyMenu, 1 }, - { "new_wxPyMenu", _wrap_new_wxPyMenu, 1 }, - { "wxMenu_SetLabel", _wrap_wxMenu_SetLabel, 1 }, - { "wxMenu_IsEnabled", _wrap_wxMenu_IsEnabled, 1 }, - { "wxMenu_IsChecked", _wrap_wxMenu_IsChecked, 1 }, - { "wxMenu_SetHelpString", _wrap_wxMenu_SetHelpString, 1 }, - { "wxMenu_GetLabel", _wrap_wxMenu_GetLabel, 1 }, - { "wxMenu_GetHelpString", _wrap_wxMenu_GetHelpString, 1 }, - { "wxMenu_FindItemForId", _wrap_wxMenu_FindItemForId, 1 }, - { "wxMenu_SetTitle", _wrap_wxMenu_SetTitle, 1 }, - { "wxMenu_GetTitle", _wrap_wxMenu_GetTitle, 1 }, - { "wxMenu_FindItem", _wrap_wxMenu_FindItem, 1 }, - { "wxMenu_Enable", _wrap_wxMenu_Enable, 1 }, - { "wxMenu_Check", _wrap_wxMenu_Check, 1 }, - { "wxMenu_Break", _wrap_wxMenu_Break, 1 }, - { "wxMenu_AppendSeparator", _wrap_wxMenu_AppendSeparator, 1 }, - { "wxMenu_AppendItem", _wrap_wxMenu_AppendItem, 1 }, - { "wxMenu_AppendMenu", _wrap_wxMenu_AppendMenu, 1 }, - { "wxMenu_Append", _wrap_wxMenu_Append, 1 }, - { "new_wxMenu", _wrap_new_wxMenu, 1 }, - { "wxScrolledWindow_ViewStart", _wrap_wxScrolledWindow_ViewStart, 1 }, - { "wxScrolledWindow_SetScrollbars", _wrap_wxScrolledWindow_SetScrollbars, 1 }, - { "wxScrolledWindow_Scroll", _wrap_wxScrolledWindow_Scroll, 1 }, - { "wxScrolledWindow_PrepareDC", _wrap_wxScrolledWindow_PrepareDC, 1 }, - { "wxScrolledWindow_IsRetained", _wrap_wxScrolledWindow_IsRetained, 1 }, - { "wxScrolledWindow_GetVirtualSize", _wrap_wxScrolledWindow_GetVirtualSize, 1 }, - { "wxScrolledWindow_GetScrollPixelsPerUnit", _wrap_wxScrolledWindow_GetScrollPixelsPerUnit, 1 }, - { "wxScrolledWindow_EnableScrolling", _wrap_wxScrolledWindow_EnableScrolling, 1 }, - { "new_wxScrolledWindow", _wrap_new_wxScrolledWindow, 1 }, - { "wxDialog_ShowModal", _wrap_wxDialog_ShowModal, 1 }, - { "wxDialog_Show", _wrap_wxDialog_Show, 1 }, - { "wxDialog_SetTitle", _wrap_wxDialog_SetTitle, 1 }, - { "wxDialog_IsModal", _wrap_wxDialog_IsModal, 1 }, - { "wxDialog_SetModal", _wrap_wxDialog_SetModal, 1 }, - { "wxDialog_IsIconized", _wrap_wxDialog_IsIconized, 1 }, - { "wxDialog_Iconize", _wrap_wxDialog_Iconize, 1 }, - { "wxDialog_GetTitle", _wrap_wxDialog_GetTitle, 1 }, - { "wxDialog_EndModal", _wrap_wxDialog_EndModal, 1 }, - { "wxDialog_Centre", _wrap_wxDialog_Centre, 1 }, - { "new_wxDialog", _wrap_new_wxDialog, 1 }, - { "wxPanel_InitDialog", _wrap_wxPanel_InitDialog, 1 }, - { "new_wxPanel", _wrap_new_wxPanel, 1 }, - { "wxWindow_GetToolTip", _wrap_wxWindow_GetToolTip, 1 }, - { "wxWindow_SetToolTip", _wrap_wxWindow_SetToolTip, 1 }, - { "wxWindow_SetToolTipString", _wrap_wxWindow_SetToolTipString, 1 }, - { "wxWindow_ConvertPixelSizeToDialog", _wrap_wxWindow_ConvertPixelSizeToDialog, 1 }, - { "wxWindow_ConvertPixelPointToDialog", _wrap_wxWindow_ConvertPixelPointToDialog, 1 }, - { "wxWindow_DLG_SZE", _wrap_wxWindow_ConvertDialogSizeToPixels, 1 }, - { "wxWindow_DLG_PNT", _wrap_wxWindow_ConvertDialogPointToPixels, 1 }, - { "wxWindow_ConvertDialogSizeToPixels", _wrap_wxWindow_ConvertDialogSizeToPixels, 1 }, - { "wxWindow_ConvertDialogPointToPixels", _wrap_wxWindow_ConvertDialogPointToPixels, 1 }, - { "wxWindow_WarpPointer", _wrap_wxWindow_WarpPointer, 1 }, - { "wxWindow_Validate", _wrap_wxWindow_Validate, 1 }, - { "wxWindow_TransferDataToWindow", _wrap_wxWindow_TransferDataToWindow, 1 }, - { "wxWindow_TransferDataFromWindow", _wrap_wxWindow_TransferDataFromWindow, 1 }, - { "wxWindow_Show", _wrap_wxWindow_Show, 1 }, - { "wxWindow_SetTitle", _wrap_wxWindow_SetTitle, 1 }, - { "wxWindow_SetCursor", _wrap_wxWindow_SetCursor, 1 }, - { "wxWindow_SetClientSize", _wrap_wxWindow_SetClientSize, 1 }, - { "wxWindow_SetClientSizeWH", _wrap_wxWindow_SetClientSizeWH, 1 }, - { "wxWindow_SetSizeHints", _wrap_wxWindow_SetSizeHints, 1 }, - { "wxWindow_SetPosition", _wrap_wxWindow_SetPosition, 1 }, - { "wxWindow_SetSize", _wrap_wxWindow_SetSize, 1 }, - { "wxWindow_SetDimensions", _wrap_wxWindow_SetDimensions, 1 }, - { "wxWindow_SetScrollPos", _wrap_wxWindow_SetScrollPos, 1 }, - { "wxWindow_SetScrollbar", _wrap_wxWindow_SetScrollbar, 1 }, - { "wxWindow_SetReturnCode", _wrap_wxWindow_SetReturnCode, 1 }, - { "wxWindow_SetName", _wrap_wxWindow_SetName, 1 }, - { "wxWindow_SetId", _wrap_wxWindow_SetId, 1 }, - { "wxWindow_SetForegroundColour", _wrap_wxWindow_SetForegroundColour, 1 }, - { "wxWindow_SetFont", _wrap_wxWindow_SetFont, 1 }, - { "wxWindow_SetFocus", _wrap_wxWindow_SetFocus, 1 }, - { "wxWindow_SetDoubleClick", _wrap_wxWindow_SetDoubleClick, 1 }, - { "wxWindow_SetConstraints", _wrap_wxWindow_SetConstraints, 1 }, - { "wxWindow_SetBackgroundColour", _wrap_wxWindow_SetBackgroundColour, 1 }, - { "wxWindow_SetAutoLayout", _wrap_wxWindow_SetAutoLayout, 1 }, - { "wxWindow_SetAcceleratorTable", _wrap_wxWindow_SetAcceleratorTable, 1 }, - { "wxWindow_ScrollWindow", _wrap_wxWindow_ScrollWindow, 1 }, - { "wxWindow_ScreenToClient", _wrap_wxWindow_ScreenToClient, 1 }, - { "wxWindow_ScreenToClientXY", _wrap_wxWindow_ScreenToClientXY, 1 }, - { "wxWindow_ReleaseMouse", _wrap_wxWindow_ReleaseMouse, 1 }, - { "wxWindow_Refresh", _wrap_wxWindow_Refresh, 1 }, - { "wxWindow_Raise", _wrap_wxWindow_Raise, 1 }, - { "wxWindow_PopupMenu", _wrap_wxWindow_PopupMenu, 1 }, - { "wxWindow_Move", _wrap_wxWindow_Move, 1 }, - { "wxWindow_MoveXY", _wrap_wxWindow_MoveXY, 1 }, - { "wxWindow_MakeModal", _wrap_wxWindow_MakeModal, 1 }, - { "wxWindow_Lower", _wrap_wxWindow_Lower, 1 }, - { "wxWindow_LoadFromResource", _wrap_wxWindow_LoadFromResource, 1 }, - { "wxWindow_Layout", _wrap_wxWindow_Layout, 1 }, - { "wxWindow_IsShown", _wrap_wxWindow_IsShown, 1 }, - { "wxWindow_IsRetained", _wrap_wxWindow_IsRetained, 1 }, - { "wxWindow_IsEnabled", _wrap_wxWindow_IsEnabled, 1 }, - { "wxWindow_InitDialog", _wrap_wxWindow_InitDialog, 1 }, - { "wxWindow_GetWindowStyleFlag", _wrap_wxWindow_GetWindowStyleFlag, 1 }, - { "wxWindow_GetTitle", _wrap_wxWindow_GetTitle, 1 }, - { "wxWindow_GetFullTextExtent", _wrap_wxWindow_GetFullTextExtent, 1 }, - { "wxWindow_GetTextExtent", _wrap_wxWindow_GetTextExtent, 1 }, - { "wxWindow_GetSize", _wrap_wxWindow_GetSize, 1 }, - { "wxWindow_GetSizeTuple", _wrap_wxWindow_GetSizeTuple, 1 }, - { "wxWindow_GetScrollRange", _wrap_wxWindow_GetScrollRange, 1 }, - { "wxWindow_GetScrollPos", _wrap_wxWindow_GetScrollPos, 1 }, - { "wxWindow_GetScrollThumb", _wrap_wxWindow_GetScrollThumb, 1 }, - { "wxWindow_GetReturnCode", _wrap_wxWindow_GetReturnCode, 1 }, - { "wxWindow_GetRect", _wrap_wxWindow_GetRect, 1 }, - { "wxWindow_GetPosition", _wrap_wxWindow_GetPosition, 1 }, - { "wxWindow_GetPositionTuple", _wrap_wxWindow_GetPositionTuple, 1 }, - { "wxWindow_GetParent", _wrap_wxWindow_GetParent, 1 }, - { "wxWindow_GetName", _wrap_wxWindow_GetName, 1 }, - { "wxWindow_GetLabel", _wrap_wxWindow_GetLabel, 1 }, - { "wxWindow_GetId", _wrap_wxWindow_GetId, 1 }, - { "wxWindow_GetGrandParent", _wrap_wxWindow_GetGrandParent, 1 }, - { "wxWindow_GetForegroundColour", _wrap_wxWindow_GetForegroundColour, 1 }, - { "wxWindow_GetFont", _wrap_wxWindow_GetFont, 1 }, - { "wxWindow_GetDefaultItem", _wrap_wxWindow_GetDefaultItem, 1 }, - { "wxWindow_GetConstraints", _wrap_wxWindow_GetConstraints, 1 }, - { "wxWindow_GetClientSize", _wrap_wxWindow_GetClientSize, 1 }, - { "wxWindow_GetClientSizeTuple", _wrap_wxWindow_GetClientSizeTuple, 1 }, - { "wxWindow_GetCharWidth", _wrap_wxWindow_GetCharWidth, 1 }, - { "wxWindow_GetCharHeight", _wrap_wxWindow_GetCharHeight, 1 }, - { "wxWindow_GetBackgroundColour", _wrap_wxWindow_GetBackgroundColour, 1 }, - { "wxWindow_Fit", _wrap_wxWindow_Fit, 1 }, - { "wxWindow_FindWindowByName", _wrap_wxWindow_FindWindowByName, 1 }, - { "wxWindow_FindWindowById", _wrap_wxWindow_FindWindowById, 1 }, - { "wxWindow_Enable", _wrap_wxWindow_Enable, 1 }, - { "wxWindow_DragAcceptFiles", _wrap_wxWindow_DragAcceptFiles, 1 }, - { "wxWindow_DestroyChildren", _wrap_wxWindow_DestroyChildren, 1 }, - { "wxWindow_Destroy", _wrap_wxWindow_Destroy, 1 }, - { "wxWindow_Close", _wrap_wxWindow_Close, 1 }, - { "wxWindow_ClientToScreen", _wrap_wxWindow_ClientToScreen, 1 }, - { "wxWindow_ClientToScreenXY", _wrap_wxWindow_ClientToScreenXY, 1 }, - { "wxWindow_Centre", _wrap_wxWindow_Centre, 1 }, - { "wxWindow_Center", _wrap_wxWindow_Center, 1 }, - { "wxWindow_CaptureMouse", _wrap_wxWindow_CaptureMouse, 1 }, - { "new_wxWindow", _wrap_new_wxWindow, 1 }, - { "wxEvtHandler_Connect", _wrap_wxEvtHandler_Connect, 1 }, - { "wxEvtHandler_ProcessEvent", _wrap_wxEvtHandler_ProcessEvent, 1 }, - { "wxWindow_FromHWND", _wrap_wxWindow_FromHWND, 1 }, - { "wxWindow_FindFocus", _wrap_wxWindow_FindFocus, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwindowsc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("windowsc", windowscMethods); - d = PyModule_GetDict(m); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_class_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxDialog",SwigwxDialogTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_wxMenu","_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_class_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_class_wxMenu","_wxPyMenu",SwigwxPyMenuTowxMenu); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMenuBar",SwigwxMenuBarTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPyMenu",SwigwxPyMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxMenu",SwigwxMenuTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxScrolledWindow",SwigwxScrolledWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxDialog",SwigwxDialogTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPanel",SwigwxPanelTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxWindow",SwigwxWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_wxWindow","_class_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxScrolledWindow",SwigwxScrolledWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxDialog",SwigwxDialogTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxPanel",SwigwxPanelTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/msw/windows.py b/utils/wxPython/src/msw/windows.py deleted file mode 100644 index ecc37e6fb0..0000000000 --- a/utils/wxPython/src/msw/windows.py +++ /dev/null @@ -1,763 +0,0 @@ -# This file was created automatically by SWIG. -import windowsc - -from misc import * - -from gdi import * -import wx - -def wxDLG_PNT(win, point): - return win.ConvertDialogPointToPixels(point) - -def wxDLG_SZE(win, size): - return win.ConvertDialogSizeToPixels(size) - -class wxEvtHandlerPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def ProcessEvent(self,arg0): - val = windowsc.wxEvtHandler_ProcessEvent(self.this,arg0.this) - return val - def Connect(self,arg0,arg1,arg2,arg3): - val = windowsc.wxEvtHandler_Connect(self.this,arg0,arg1,arg2,arg3) - return val - def __repr__(self): - return "" -class wxEvtHandler(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - - - - -class wxWindowPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def CaptureMouse(self): - val = windowsc.wxWindow_CaptureMouse(self.this) - return val - def Center(self,*args): - val = apply(windowsc.wxWindow_Center,(self.this,)+args) - return val - def Centre(self,*args): - val = apply(windowsc.wxWindow_Centre,(self.this,)+args) - return val - def ClientToScreenXY(self,arg0,arg1): - val = windowsc.wxWindow_ClientToScreenXY(self.this,arg0,arg1) - return val - def ClientToScreen(self,arg0): - val = windowsc.wxWindow_ClientToScreen(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def Close(self,*args): - val = apply(windowsc.wxWindow_Close,(self.this,)+args) - return val - def Destroy(self): - val = windowsc.wxWindow_Destroy(self.this) - return val - def DestroyChildren(self): - val = windowsc.wxWindow_DestroyChildren(self.this) - return val - def DragAcceptFiles(self,arg0): - val = windowsc.wxWindow_DragAcceptFiles(self.this,arg0) - return val - def Enable(self,arg0): - val = windowsc.wxWindow_Enable(self.this,arg0) - return val - def FindWindowById(self,arg0): - val = windowsc.wxWindow_FindWindowById(self.this,arg0) - val = wxWindowPtr(val) - return val - def FindWindowByName(self,arg0): - val = windowsc.wxWindow_FindWindowByName(self.this,arg0) - val = wxWindowPtr(val) - return val - def Fit(self): - val = windowsc.wxWindow_Fit(self.this) - return val - def GetBackgroundColour(self): - val = windowsc.wxWindow_GetBackgroundColour(self.this) - val = wxColourPtr(val) - val.thisown = 1 - return val - def GetCharHeight(self): - val = windowsc.wxWindow_GetCharHeight(self.this) - return val - def GetCharWidth(self): - val = windowsc.wxWindow_GetCharWidth(self.this) - return val - def GetClientSizeTuple(self): - val = windowsc.wxWindow_GetClientSizeTuple(self.this) - return val - def GetClientSize(self): - val = windowsc.wxWindow_GetClientSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetConstraints(self): - val = windowsc.wxWindow_GetConstraints(self.this) - val = wxLayoutConstraintsPtr(val) - return val - def GetDefaultItem(self): - val = windowsc.wxWindow_GetDefaultItem(self.this) - val = wxButtonPtr(val) - return val - def GetFont(self): - val = windowsc.wxWindow_GetFont(self.this) - val = wxFontPtr(val) - return val - def GetForegroundColour(self): - val = windowsc.wxWindow_GetForegroundColour(self.this) - val = wxColourPtr(val) - val.thisown = 1 - return val - def GetGrandParent(self): - val = windowsc.wxWindow_GetGrandParent(self.this) - val = wxWindowPtr(val) - return val - def GetId(self): - val = windowsc.wxWindow_GetId(self.this) - return val - def GetLabel(self): - val = windowsc.wxWindow_GetLabel(self.this) - return val - def GetName(self): - val = windowsc.wxWindow_GetName(self.this) - return val - def GetParent(self): - val = windowsc.wxWindow_GetParent(self.this) - val = wxWindowPtr(val) - return val - def GetPositionTuple(self): - val = windowsc.wxWindow_GetPositionTuple(self.this) - return val - def GetPosition(self): - val = windowsc.wxWindow_GetPosition(self.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def GetRect(self): - val = windowsc.wxWindow_GetRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetReturnCode(self): - val = windowsc.wxWindow_GetReturnCode(self.this) - return val - def GetScrollThumb(self,arg0): - val = windowsc.wxWindow_GetScrollThumb(self.this,arg0) - return val - def GetScrollPos(self,arg0): - val = windowsc.wxWindow_GetScrollPos(self.this,arg0) - return val - def GetScrollRange(self,arg0): - val = windowsc.wxWindow_GetScrollRange(self.this,arg0) - return val - def GetSizeTuple(self): - val = windowsc.wxWindow_GetSizeTuple(self.this) - return val - def GetSize(self): - val = windowsc.wxWindow_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def GetTextExtent(self,arg0): - val = windowsc.wxWindow_GetTextExtent(self.this,arg0) - return val - def GetFullTextExtent(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxWindow_GetFullTextExtent,(self.this,arg0,)+args) - return val - def GetTitle(self): - val = windowsc.wxWindow_GetTitle(self.this) - return val - def GetWindowStyleFlag(self): - val = windowsc.wxWindow_GetWindowStyleFlag(self.this) - return val - def InitDialog(self): - val = windowsc.wxWindow_InitDialog(self.this) - return val - def IsEnabled(self): - val = windowsc.wxWindow_IsEnabled(self.this) - return val - def IsRetained(self): - val = windowsc.wxWindow_IsRetained(self.this) - return val - def IsShown(self): - val = windowsc.wxWindow_IsShown(self.this) - return val - def Layout(self): - val = windowsc.wxWindow_Layout(self.this) - return val - def LoadFromResource(self,arg0,arg1,*args): - val = apply(windowsc.wxWindow_LoadFromResource,(self.this,arg0.this,arg1,)+args) - return val - def Lower(self): - val = windowsc.wxWindow_Lower(self.this) - return val - def MakeModal(self,arg0): - val = windowsc.wxWindow_MakeModal(self.this,arg0) - return val - def MoveXY(self,arg0,arg1): - val = windowsc.wxWindow_MoveXY(self.this,arg0,arg1) - return val - def Move(self,arg0): - val = windowsc.wxWindow_Move(self.this,arg0.this) - return val - def PopupMenu(self,arg0,arg1,arg2): - val = windowsc.wxWindow_PopupMenu(self.this,arg0.this,arg1,arg2) - return val - def Raise(self): - val = windowsc.wxWindow_Raise(self.this) - return val - def Refresh(self,*args): - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxWindow_Refresh,(self.this,)+args) - return val - def ReleaseMouse(self): - val = windowsc.wxWindow_ReleaseMouse(self.this) - return val - def ScreenToClientXY(self,arg0,arg1): - val = windowsc.wxWindow_ScreenToClientXY(self.this,arg0,arg1) - return val - def ScreenToClient(self,arg0): - val = windowsc.wxWindow_ScreenToClient(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def ScrollWindow(self,arg0,arg1,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxWindow_ScrollWindow,(self.this,arg0,arg1,)+args) - return val - def SetAcceleratorTable(self,arg0): - val = windowsc.wxWindow_SetAcceleratorTable(self.this,arg0.this) - return val - def SetAutoLayout(self,arg0): - val = windowsc.wxWindow_SetAutoLayout(self.this,arg0) - return val - def SetBackgroundColour(self,arg0): - val = windowsc.wxWindow_SetBackgroundColour(self.this,arg0.this) - return val - def SetConstraints(self,arg0): - val = windowsc.wxWindow_SetConstraints(self.this,arg0.this) - return val - def SetDoubleClick(self,arg0): - val = windowsc.wxWindow_SetDoubleClick(self.this,arg0) - return val - def SetFocus(self): - val = windowsc.wxWindow_SetFocus(self.this) - return val - def SetFont(self,arg0): - val = windowsc.wxWindow_SetFont(self.this,arg0.this) - return val - def SetForegroundColour(self,arg0): - val = windowsc.wxWindow_SetForegroundColour(self.this,arg0.this) - return val - def SetId(self,arg0): - val = windowsc.wxWindow_SetId(self.this,arg0) - return val - def SetName(self,arg0): - val = windowsc.wxWindow_SetName(self.this,arg0) - return val - def SetReturnCode(self,arg0): - val = windowsc.wxWindow_SetReturnCode(self.this,arg0) - return val - def SetScrollbar(self,arg0,arg1,arg2,arg3,*args): - val = apply(windowsc.wxWindow_SetScrollbar,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def SetScrollPos(self,arg0,arg1,*args): - val = apply(windowsc.wxWindow_SetScrollPos,(self.this,arg0,arg1,)+args) - return val - def SetDimensions(self,arg0,arg1,arg2,arg3,*args): - val = apply(windowsc.wxWindow_SetDimensions,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def SetSize(self,arg0): - val = windowsc.wxWindow_SetSize(self.this,arg0.this) - return val - def SetPosition(self,arg0): - val = windowsc.wxWindow_SetPosition(self.this,arg0.this) - return val - def SetSizeHints(self,*args): - val = apply(windowsc.wxWindow_SetSizeHints,(self.this,)+args) - return val - def SetClientSizeWH(self,arg0,arg1): - val = windowsc.wxWindow_SetClientSizeWH(self.this,arg0,arg1) - return val - def SetClientSize(self,arg0): - val = windowsc.wxWindow_SetClientSize(self.this,arg0.this) - return val - def SetCursor(self,arg0): - val = windowsc.wxWindow_SetCursor(self.this,arg0.this) - return val - def SetTitle(self,arg0): - val = windowsc.wxWindow_SetTitle(self.this,arg0) - return val - def Show(self,arg0): - val = windowsc.wxWindow_Show(self.this,arg0) - return val - def TransferDataFromWindow(self): - val = windowsc.wxWindow_TransferDataFromWindow(self.this) - return val - def TransferDataToWindow(self): - val = windowsc.wxWindow_TransferDataToWindow(self.this) - return val - def Validate(self): - val = windowsc.wxWindow_Validate(self.this) - return val - def WarpPointer(self,arg0,arg1): - val = windowsc.wxWindow_WarpPointer(self.this,arg0,arg1) - return val - def ConvertDialogPointToPixels(self,arg0): - val = windowsc.wxWindow_ConvertDialogPointToPixels(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def ConvertDialogSizeToPixels(self,arg0): - val = windowsc.wxWindow_ConvertDialogSizeToPixels(self.this,arg0.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def DLG_PNT(self,arg0): - val = windowsc.wxWindow_DLG_PNT(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def DLG_SZE(self,arg0): - val = windowsc.wxWindow_DLG_SZE(self.this,arg0.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def ConvertPixelPointToDialog(self,arg0): - val = windowsc.wxWindow_ConvertPixelPointToDialog(self.this,arg0.this) - val = wxPointPtr(val) - val.thisown = 1 - return val - def ConvertPixelSizeToDialog(self,arg0): - val = windowsc.wxWindow_ConvertPixelSizeToDialog(self.this,arg0.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def SetToolTipString(self,arg0): - val = windowsc.wxWindow_SetToolTipString(self.this,arg0) - return val - def SetToolTip(self,arg0): - val = windowsc.wxWindow_SetToolTip(self.this,arg0.this) - return val - def GetToolTip(self): - val = windowsc.wxWindow_GetToolTip(self.this) - val = wxToolTipPtr(val) - return val - def __repr__(self): - return "" -class wxWindow(wxWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxPanelPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def InitDialog(self): - val = windowsc.wxPanel_InitDialog(self.this) - return val - def __repr__(self): - return "" -class wxPanel(wxPanelPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxPanel,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxDialogPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Centre(self,*args): - val = apply(windowsc.wxDialog_Centre,(self.this,)+args) - return val - def EndModal(self,arg0): - val = windowsc.wxDialog_EndModal(self.this,arg0) - return val - def GetTitle(self): - val = windowsc.wxDialog_GetTitle(self.this) - return val - def Iconize(self,arg0): - val = windowsc.wxDialog_Iconize(self.this,arg0) - return val - def IsIconized(self): - val = windowsc.wxDialog_IsIconized(self.this) - return val - def SetModal(self,arg0): - val = windowsc.wxDialog_SetModal(self.this,arg0) - return val - def IsModal(self): - val = windowsc.wxDialog_IsModal(self.this) - return val - def SetTitle(self,arg0): - val = windowsc.wxDialog_SetTitle(self.this,arg0) - return val - def Show(self,arg0): - val = windowsc.wxDialog_Show(self.this,arg0) - return val - def ShowModal(self): - val = windowsc.wxDialog_ShowModal(self.this) - return val - def __repr__(self): - return "" -class wxDialog(wxDialogPtr): - def __init__(self,arg0,arg1,arg2,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxDialog,(arg0.this,arg1,arg2,)+args) - self.thisown = 1 - wx._StdDialogCallbacks(self) - - - - -class wxScrolledWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def EnableScrolling(self,arg0,arg1): - val = windowsc.wxScrolledWindow_EnableScrolling(self.this,arg0,arg1) - return val - def GetScrollPixelsPerUnit(self): - val = windowsc.wxScrolledWindow_GetScrollPixelsPerUnit(self.this) - return val - def GetVirtualSize(self): - val = windowsc.wxScrolledWindow_GetVirtualSize(self.this) - return val - def IsRetained(self): - val = windowsc.wxScrolledWindow_IsRetained(self.this) - return val - def PrepareDC(self,arg0): - val = windowsc.wxScrolledWindow_PrepareDC(self.this,arg0.this) - return val - def Scroll(self,arg0,arg1): - val = windowsc.wxScrolledWindow_Scroll(self.this,arg0,arg1) - return val - def SetScrollbars(self,arg0,arg1,arg2,arg3,*args): - val = apply(windowsc.wxScrolledWindow_SetScrollbars,(self.this,arg0,arg1,arg2,arg3,)+args) - return val - def ViewStart(self): - val = windowsc.wxScrolledWindow_ViewStart(self.this) - return val - def __repr__(self): - return "" -class wxScrolledWindow(wxScrolledWindowPtr): - def __init__(self,arg0,*args) : - argl = map(None,args) - try: argl[1] = argl[1].this - except: pass - try: argl[2] = argl[2].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxScrolledWindow,(arg0.this,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._StdOnScrollCallbacks(self) - - - - -class wxMenuPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0,arg1,*args): - val = apply(windowsc.wxMenu_Append,(self.this,arg0,arg1,)+args) - return val - def AppendMenu(self,arg0,arg1,arg2,*args): - val = apply(windowsc.wxMenu_AppendMenu,(self.this,arg0,arg1,arg2.this,)+args) - return val - def AppendItem(self,arg0): - val = windowsc.wxMenu_AppendItem(self.this,arg0.this) - return val - def AppendSeparator(self): - val = windowsc.wxMenu_AppendSeparator(self.this) - return val - def Break(self): - val = windowsc.wxMenu_Break(self.this) - return val - def Check(self,arg0,arg1): - val = windowsc.wxMenu_Check(self.this,arg0,arg1) - return val - def Enable(self,arg0,arg1): - val = windowsc.wxMenu_Enable(self.this,arg0,arg1) - return val - def FindItem(self,arg0): - val = windowsc.wxMenu_FindItem(self.this,arg0) - return val - def GetTitle(self): - val = windowsc.wxMenu_GetTitle(self.this) - return val - def SetTitle(self,arg0): - val = windowsc.wxMenu_SetTitle(self.this,arg0) - return val - def FindItemForId(self,arg0): - val = windowsc.wxMenu_FindItemForId(self.this,arg0) - val = wxMenuItemPtr(val) - return val - def GetHelpString(self,arg0): - val = windowsc.wxMenu_GetHelpString(self.this,arg0) - return val - def GetLabel(self,arg0): - val = windowsc.wxMenu_GetLabel(self.this,arg0) - return val - def SetHelpString(self,arg0,arg1): - val = windowsc.wxMenu_SetHelpString(self.this,arg0,arg1) - return val - def IsChecked(self,arg0): - val = windowsc.wxMenu_IsChecked(self.this,arg0) - return val - def IsEnabled(self,arg0): - val = windowsc.wxMenu_IsEnabled(self.this,arg0) - return val - def SetLabel(self,arg0,arg1): - val = windowsc.wxMenu_SetLabel(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxMenu(wxMenuPtr): - def __init__(self,*args) : - self.this = apply(windowsc.new_wxMenu,()+args) - self.thisown = 1 - - - - -class wxPyMenuPtr(wxMenuPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windowsc.delete_wxPyMenu(self.this) - def __repr__(self): - return "" -class wxPyMenu(wxPyMenuPtr): - def __init__(self,*args) : - self.this = apply(windowsc.new_wxPyMenu,()+args) - self.thisown = 1 - - - - -class wxMenuBarPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def Append(self,arg0,arg1): - val = windowsc.wxMenuBar_Append(self.this,arg0.this,arg1) - return val - def Check(self,arg0,arg1): - val = windowsc.wxMenuBar_Check(self.this,arg0,arg1) - return val - def Checked(self,arg0): - val = windowsc.wxMenuBar_Checked(self.this,arg0) - return val - def Enable(self,arg0,arg1): - val = windowsc.wxMenuBar_Enable(self.this,arg0,arg1) - return val - def Enabled(self,arg0): - val = windowsc.wxMenuBar_Enabled(self.this,arg0) - return val - def FindMenuItem(self,arg0,arg1): - val = windowsc.wxMenuBar_FindMenuItem(self.this,arg0,arg1) - return val - def FindItemForId(self,arg0): - val = windowsc.wxMenuBar_FindItemForId(self.this,arg0) - val = wxMenuItemPtr(val) - return val - def EnableTop(self,arg0,arg1): - val = windowsc.wxMenuBar_EnableTop(self.this,arg0,arg1) - return val - def GetHelpString(self,arg0): - val = windowsc.wxMenuBar_GetHelpString(self.this,arg0) - return val - def GetLabel(self,arg0): - val = windowsc.wxMenuBar_GetLabel(self.this,arg0) - return val - def SetHelpString(self,arg0,arg1): - val = windowsc.wxMenuBar_SetHelpString(self.this,arg0,arg1) - return val - def SetLabel(self,arg0,arg1): - val = windowsc.wxMenuBar_SetLabel(self.this,arg0,arg1) - return val - def GetLabelTop(self,arg0): - val = windowsc.wxMenuBar_GetLabelTop(self.this,arg0) - return val - def SetLabelTop(self,arg0,arg1): - val = windowsc.wxMenuBar_SetLabelTop(self.this,arg0,arg1) - return val - def GetMenuCount(self): - val = windowsc.wxMenuBar_GetMenuCount(self.this) - return val - def GetMenu(self,arg0): - val = windowsc.wxMenuBar_GetMenu(self.this,arg0) - val = wxMenuPtr(val) - return val - def __repr__(self): - return "" -class wxMenuBar(wxMenuBarPtr): - def __init__(self) : - self.this = windowsc.new_wxMenuBar() - self.thisown = 1 - - - - -class wxMenuItemPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def IsSeparator(self): - val = windowsc.wxMenuItem_IsSeparator(self.this) - return val - def IsEnabled(self): - val = windowsc.wxMenuItem_IsEnabled(self.this) - return val - def IsChecked(self): - val = windowsc.wxMenuItem_IsChecked(self.this) - return val - def IsCheckable(self): - val = windowsc.wxMenuItem_IsCheckable(self.this) - return val - def GetId(self): - val = windowsc.wxMenuItem_GetId(self.this) - return val - def GetSubMenu(self): - val = windowsc.wxMenuItem_GetSubMenu(self.this) - val = wxMenuPtr(val) - return val - def SetName(self,arg0): - val = windowsc.wxMenuItem_SetName(self.this,arg0) - return val - def GetName(self): - val = windowsc.wxMenuItem_GetName(self.this) - return val - def GetHelp(self): - val = windowsc.wxMenuItem_GetHelp(self.this) - return val - def SetHelp(self,arg0): - val = windowsc.wxMenuItem_SetHelp(self.this,arg0) - return val - def Enable(self,*args): - val = apply(windowsc.wxMenuItem_Enable,(self.this,)+args) - return val - def Check(self,*args): - val = apply(windowsc.wxMenuItem_Check,(self.this,)+args) - return val - def GetBackgroundColour(self): - val = windowsc.wxMenuItem_GetBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def GetBitmap(self,*args): - val = apply(windowsc.wxMenuItem_GetBitmap,(self.this,)+args) - val = wxBitmapPtr(val) - val.thisown = 1 - return val - def GetFont(self): - val = windowsc.wxMenuItem_GetFont(self.this) - val = wxFontPtr(val) - return val - def GetMarginWidth(self): - val = windowsc.wxMenuItem_GetMarginWidth(self.this) - return val - def GetTextColour(self): - val = windowsc.wxMenuItem_GetTextColour(self.this) - val = wxColourPtr(val) - return val - def SetBackgroundColour(self,arg0): - val = windowsc.wxMenuItem_SetBackgroundColour(self.this,arg0.this) - return val - def SetBitmaps(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windowsc.wxMenuItem_SetBitmaps,(self.this,arg0.this,)+args) - return val - def SetFont(self,arg0): - val = windowsc.wxMenuItem_SetFont(self.this,arg0.this) - return val - def SetMarginWidth(self,arg0): - val = windowsc.wxMenuItem_SetMarginWidth(self.this,arg0) - return val - def SetTextColour(self,arg0): - val = windowsc.wxMenuItem_SetTextColour(self.this,arg0.this) - return val - def DeleteSubMenu(self): - val = windowsc.wxMenuItem_DeleteSubMenu(self.this) - return val - def __repr__(self): - return "" -class wxMenuItem(wxMenuItemPtr): - def __init__(self,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[5] = argl[5].this - except: pass - args = tuple(argl) - self.this = apply(windowsc.new_wxMenuItem,()+args) - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -def wxWindow_FindFocus(): - val = windowsc.wxWindow_FindFocus() - val = wxWindowPtr(val) - return val - -def wxWindow_FromHWND(arg0): - val = windowsc.wxWindow_FromHWND(arg0) - val = wxWindowPtr(val) - return val - - - -#-------------- VARIABLE WRAPPERS ------------------ - diff --git a/utils/wxPython/src/msw/windows2.cpp b/utils/wxPython/src/msw/windows2.cpp deleted file mode 100644 index 1ba1abeb9b..0000000000 --- a/utils/wxPython/src/msw/windows2.cpp +++ /dev/null @@ -1,4676 +0,0 @@ -/* - * FILE : msw/windows2.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initwindows2c - -#define SWIG_name "windows2c" - -#include "helpers.h" -#include -#include -#include -#ifdef __WXMSW__ -#include -#endif - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -#define new_wxGridCell() (new wxGridCell()) -static PyObject *_wrap_new_wxGridCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxGridCell")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)new_wxGridCell(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxGridCell(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxGridCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxGridCell",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxGridCell. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxGridCell(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetTextValue(_swigobj) (_swigobj->GetTextValue()) -static PyObject *_wrap_wxGridCell_GetTextValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetTextValue",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetTextValue. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxString & _result_ref = wxGridCell_GetTextValue(_arg0); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxGridCell_SetTextValue(_swigobj,_swigarg0) (_swigobj->SetTextValue(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetTextValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxGridCell_SetTextValue",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextValue. Expected _wxGridCell_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetTextValue(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxGridCell_GetFont(_swigobj) (_swigobj->GetFont()) -static PyObject *_wrap_wxGridCell_GetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetFont. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGridCell_GetFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetFont(_swigobj,_swigarg0) (_swigobj->SetFont(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetFont. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetTextColour(_swigobj) (_swigobj->GetTextColour()) -static PyObject *_wrap_wxGridCell_GetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetTextColour. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGridCell_GetTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetTextColour(_swigobj,_swigarg0) (_swigobj->SetTextColour(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetTextColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetBackgroundColour(_swigobj) (_swigobj->GetBackgroundColour()) -static PyObject *_wrap_wxGridCell_GetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetBackgroundColour. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGridCell_GetBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetBackgroundColour. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetBackgroundBrush(_swigobj) (_swigobj->GetBackgroundBrush()) -static PyObject *_wrap_wxGridCell_GetBackgroundBrush(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBrush * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetBackgroundBrush",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetBackgroundBrush. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxBrush & _result_ref = wxGridCell_GetBackgroundBrush(_arg0); - _result = (wxBrush *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBrush_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxGridCell_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridCell * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetAlignment. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridCell_GetAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridCell_SetAlignment(_swigobj,_swigarg0) (_swigobj->SetAlignment(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridCell_SetAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetAlignment. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGridCell_GetCellBitmap(_swigobj) (_swigobj->GetCellBitmap()) -static PyObject *_wrap_wxGridCell_GetCellBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxBitmap * _result; - wxGridCell * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridCell_GetCellBitmap",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_GetCellBitmap. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxBitmap *)wxGridCell_GetCellBitmap(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridCell_SetCellBitmap(_swigobj,_swigarg0) (_swigobj->SetCellBitmap(_swigarg0)) -static PyObject *_wrap_wxGridCell_SetCellBitmap(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _arg0; - wxBitmap * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridCell_SetCellBitmap",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridCell_SetCellBitmap. Expected _wxGridCell_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxBitmap_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridCell_SetCellBitmap. Expected _wxBitmap_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGridCell_SetCellBitmap(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxGridTowxPanel(void *ptr) { - wxGrid *src; - wxPanel *dest; - src = (wxGrid *) ptr; - dest = (wxPanel *) src; - return (void *) dest; -} - -static void *SwigwxGridTowxWindow(void *ptr) { - wxGrid *src; - wxWindow *dest; - src = (wxGrid *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxGridTowxEvtHandler(void *ptr) { - wxGrid *src; - wxEvtHandler *dest; - src = (wxGrid *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxGrid(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxGrid(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxGrid(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "grid"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxGrid",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxGrid. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxGrid. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxGrid. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGrid *)new_wxGrid(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGrid_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_AdjustScrollbars(_swigobj) (_swigobj->AdjustScrollbars()) -static PyObject *_wrap_wxGrid_AdjustScrollbars(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_AdjustScrollbars",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AdjustScrollbars. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_AdjustScrollbars(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_AppendCols(_swigobj,_swigarg0,_swigarg1) (_swigobj->AppendCols(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_AppendCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:wxGrid_AppendCols",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AppendCols. Expected _wxGrid_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_AppendCols(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_AppendRows(_swigobj,_swigarg0,_swigarg1) (_swigobj->AppendRows(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_AppendRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 1; - bool _arg2 = (1); - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"s|ii:wxGrid_AppendRows",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_AppendRows. Expected _wxGrid_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_AppendRows(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_BeginBatch(_swigobj) (_swigobj->BeginBatch()) -static PyObject *_wrap_wxGrid_BeginBatch(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_BeginBatch",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_BeginBatch. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_BeginBatch(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_CellHitTest(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->CellHitTest(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxGrid_CellHitTest(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - int * _arg3; - int temp; - int * _arg4; - int temp0; - char * _argc0 = 0; - - self = self; -{ - _arg3 = &temp; -} -{ - _arg4 = &temp0; -} - if(!PyArg_ParseTuple(args,"sii:wxGrid_CellHitTest",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CellHitTest. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_CellHitTest(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg3)); - _resultobj = t_output_helper(_resultobj, o); -} -{ - PyObject *o; - o = PyInt_FromLong((long) (*_arg4)); - _resultobj = t_output_helper(_resultobj, o); -} - return _resultobj; -} - -static bool wxGrid_CreateGrid(wxGrid *self,int rows,int cols,short defaultWidth,short defaultHeight) { - return self->CreateGrid(rows, cols, NULL, NULL, - defaultWidth, defaultHeight); - } -static PyObject *_wrap_wxGrid_CreateGrid(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - short _arg3 = wxGRID_DEFAULT_CELL_WIDTH; - short _arg4 = wxGRID_DEFAULT_CELL_HEIGHT; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii|hh:wxGrid_CreateGrid",&_argc0,&_arg1,&_arg2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CreateGrid. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_CreateGrid(_arg0,_arg1,_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_CurrentCellVisible(_swigobj) (_swigobj->CurrentCellVisible()) -static PyObject *_wrap_wxGrid_CurrentCellVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_CurrentCellVisible",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_CurrentCellVisible. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_CurrentCellVisible(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_DeleteCols(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DeleteCols(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_DeleteCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_DeleteCols",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_DeleteCols. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_DeleteCols(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_DeleteRows(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->DeleteRows(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_DeleteRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_DeleteRows",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_DeleteRows. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_DeleteRows(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_EndBatch(_swigobj) (_swigobj->EndBatch()) -static PyObject *_wrap_wxGrid_EndBatch(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_EndBatch",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_EndBatch. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_EndBatch(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_GetBatchCount(_swigobj) (_swigobj->GetBatchCount()) -static PyObject *_wrap_wxGrid_GetBatchCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetBatchCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetBatchCount. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetBatchCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCell(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCell(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCell(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCell",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCell. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGrid_GetCell(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellAlignment(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellAlignment(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellAlignment",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCellAlignment(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetDefCellAlignment(_swigobj) (_swigobj->GetCellAlignment()) -static PyObject *_wrap_wxGrid_GetDefCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetDefCellAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCellBackgroundColour(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellBackgroundColour(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellBackgroundColour",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetCellBackgroundColour(_arg0,_arg1,_arg2); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetDefCellBackgroundColour(_swigobj) (_swigobj->GetCellBackgroundColour()) -static PyObject *_wrap_wxGrid_GetDefCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetDefCellBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellTextColour(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellTextColour(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellTextColour",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetCellTextColour(_arg0,_arg1,_arg2); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetDefCellTextColour(_swigobj) (_swigobj->GetCellTextColour()) -static PyObject *_wrap_wxGrid_GetDefCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetDefCellTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellTextFont(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellTextFont(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellTextFont",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGrid_GetCellTextFont(_arg0,_arg1,_arg2); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetDefCellTextFont(_swigobj) (_swigobj->GetCellTextFont()) -static PyObject *_wrap_wxGrid_GetDefCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetDefCellTextFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetDefCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGrid_GetDefCellTextFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCellValue(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetCellValue(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetCellValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetCellValue",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCellValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxString & _result_ref = wxGrid_GetCellValue(_arg0,_arg1,_arg2); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxGrid_GetCols(_swigobj) (_swigobj->GetCols()) -static PyObject *_wrap_wxGrid_GetCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCols",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCols. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCols(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetColumnWidth(_swigobj,_swigarg0) (_swigobj->GetColumnWidth(_swigarg0)) -static PyObject *_wrap_wxGrid_GetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetColumnWidth",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetColumnWidth. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetColumnWidth(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCurrentRect(_swigobj) (_swigobj->GetCurrentRect()) -static PyObject *_wrap_wxGrid_GetCurrentRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCurrentRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCurrentRect. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxGrid_GetCurrentRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetCursorColumn(_swigobj) (_swigobj->GetCursorColumn()) -static PyObject *_wrap_wxGrid_GetCursorColumn(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCursorColumn",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCursorColumn. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCursorColumn(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetCursorRow(_swigobj) (_swigobj->GetCursorRow()) -static PyObject *_wrap_wxGrid_GetCursorRow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetCursorRow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetCursorRow. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetCursorRow(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetEditable(_swigobj) (_swigobj->GetEditable()) -static PyObject *_wrap_wxGrid_GetEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetEditable",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetEditable. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_GetEditable(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetHorizScrollBar(_swigobj) (_swigobj->GetHorizScrollBar()) -static PyObject *_wrap_wxGrid_GetHorizScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetHorizScrollBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetHorizScrollBar. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrollBar *)wxGrid_GetHorizScrollBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelAlignment(_swigobj,_swigarg0) (_swigobj->GetLabelAlignment(_swigarg0)) -static PyObject *_wrap_wxGrid_GetLabelAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetLabelAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetLabelAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetLabelBackgroundColour(_swigobj) (_swigobj->GetLabelBackgroundColour()) -static PyObject *_wrap_wxGrid_GetLabelBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelBackgroundColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetLabelBackgroundColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelSize(_swigobj,_swigarg0) (_swigobj->GetLabelSize(_swigarg0)) -static PyObject *_wrap_wxGrid_GetLabelSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetLabelSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelSize. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetLabelSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetLabelTextColour(_swigobj) (_swigobj->GetLabelTextColour()) -static PyObject *_wrap_wxGrid_GetLabelTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxColour * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelTextColour",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelTextColour. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxColour & _result_ref = wxGrid_GetLabelTextColour(_arg0); - _result = (wxColour *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxColour_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelTextFont(_swigobj) (_swigobj->GetLabelTextFont()) -static PyObject *_wrap_wxGrid_GetLabelTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxFont * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetLabelTextFont",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelTextFont. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxFont & _result_ref = wxGrid_GetLabelTextFont(_arg0); - _result = (wxFont *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxFont_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetLabelValue(_swigobj,_swigarg0,_swigarg1) (_swigobj->GetLabelValue(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_GetLabelValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_GetLabelValue",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetLabelValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxString & _result_ref = wxGrid_GetLabelValue(_arg0,_arg1,_arg2); - _result = (wxString *) &_result_ref; - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST (*_result)); -} - return _resultobj; -} - -#define wxGrid_GetRowHeight(_swigobj,_swigarg0) (_swigobj->GetRowHeight(_swigarg0)) -static PyObject *_wrap_wxGrid_GetRowHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_GetRowHeight",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetRowHeight. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetRowHeight(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetRows(_swigobj) (_swigobj->GetRows()) -static PyObject *_wrap_wxGrid_GetRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetRows",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetRows. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetRows(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetScrollPosX(_swigobj) (_swigobj->GetScrollPosX()) -static PyObject *_wrap_wxGrid_GetScrollPosX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetScrollPosX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetScrollPosX. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetScrollPosX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetScrollPosY(_swigobj) (_swigobj->GetScrollPosY()) -static PyObject *_wrap_wxGrid_GetScrollPosY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetScrollPosY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetScrollPosY. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGrid_GetScrollPosY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_GetTextItem(_swigobj) (_swigobj->GetTextItem()) -static PyObject *_wrap_wxGrid_GetTextItem(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTextCtrl * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetTextItem",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetTextItem. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTextCtrl *)wxGrid_GetTextItem(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTextCtrl_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_GetVertScrollBar(_swigobj) (_swigobj->GetVertScrollBar()) -static PyObject *_wrap_wxGrid_GetVertScrollBar(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxScrollBar * _result; - wxGrid * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_GetVertScrollBar",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_GetVertScrollBar. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxScrollBar *)wxGrid_GetVertScrollBar(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxScrollBar_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGrid_InsertCols(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->InsertCols(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_InsertCols(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_InsertCols",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_InsertCols. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_InsertCols(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_InsertRows(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->InsertRows(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_InsertRows(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGrid * _arg0; - int _arg1 = 0; - int _arg2 = 1; - bool _arg3 = (1); - char * _argc0 = 0; - int tempbool3; - - self = self; - if(!PyArg_ParseTuple(args,"s|iii:wxGrid_InsertRows",&_argc0,&_arg1,&_arg2,&tempbool3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_InsertRows. Expected _wxGrid_p."); - return NULL; - } - } - _arg3 = (bool ) tempbool3; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGrid_InsertRows(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGrid_OnActivate(_swigobj,_swigarg0) (_swigobj->OnActivate(_swigarg0)) -static PyObject *_wrap_wxGrid_OnActivate(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_OnActivate",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_OnActivate. Expected _wxGrid_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_OnActivate(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellAlignment(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellAlignment(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siii:wxGrid_SetCellAlignment",&_argc0,&_arg1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellAlignment(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellAlignment(_swigobj,_swigarg0) (_swigobj->SetCellAlignment(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_SetDefCellAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellBackgroundColour(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellBackgroundColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellBackgroundColour",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetCellBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellBackgroundColour(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetCellBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDefCellBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellTextColour(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellTextColour(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellTextColour",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetCellTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellTextColour(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellTextColour(_swigobj,_swigarg0) (_swigobj->SetCellTextColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDefCellTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellTextFont(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellTextFont(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxFont * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssii:wxGrid_SetCellTextFont",&_argc0,&_argc1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetCellTextFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellTextFont(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDefCellTextFont(_swigobj,_swigarg0) (_swigobj->SetCellTextFont(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDefCellTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDefCellTextFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDefCellTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDefCellTextFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDefCellTextFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetCellValue(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetCellValue(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetCellValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxString * _arg1; - int _arg2; - int _arg3; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sOii:wxGrid_SetCellValue",&_argc0,&_obj1,&_arg2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetCellValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetCellValue(_arg0,*_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxGrid_SetColumnWidth(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetColumnWidth(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetColumnWidth(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetColumnWidth",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetColumnWidth. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetColumnWidth(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetDividerPen(_swigobj,_swigarg0) (_swigobj->SetDividerPen(_swigarg0)) -static PyObject *_wrap_wxGrid_SetDividerPen(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxPen * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetDividerPen",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetDividerPen. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxPen_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetDividerPen. Expected _wxPen_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetDividerPen(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetEditable(_swigobj,_swigarg0) (_swigobj->SetEditable(_swigarg0)) -static PyObject *_wrap_wxGrid_SetEditable(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGrid_SetEditable",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetEditable. Expected _wxGrid_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetEditable(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetGridCursor(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetGridCursor(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetGridCursor(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetGridCursor",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetGridCursor. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetGridCursor(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelAlignment(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabelAlignment(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetLabelAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetLabelAlignment",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelAlignment. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelAlignment(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelBackgroundColour(_swigobj,_swigarg0) (_swigobj->SetLabelBackgroundColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetLabelBackgroundColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelBackgroundColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelBackgroundColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetLabelBackgroundColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelBackgroundColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelSize(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetLabelSize(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetLabelSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetLabelSize",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelSize. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelSize(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelTextColour(_swigobj,_swigarg0) (_swigobj->SetLabelTextColour(_swigarg0)) -static PyObject *_wrap_wxGrid_SetLabelTextColour(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxColour * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelTextColour",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextColour. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxColour_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetLabelTextColour. Expected _wxColour_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelTextColour(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelTextFont(_swigobj,_swigarg0) (_swigobj->SetLabelTextFont(_swigarg0)) -static PyObject *_wrap_wxGrid_SetLabelTextFont(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - wxFont * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGrid_SetLabelTextFont",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelTextFont. Expected _wxGrid_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFont_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGrid_SetLabelTextFont. Expected _wxFont_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelTextFont(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_SetLabelValue(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SetLabelValue(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxGrid_SetLabelValue(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - wxString * _arg2; - int _arg3; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siOi:wxGrid_SetLabelValue",&_argc0,&_arg1,&_obj2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetLabelValue. Expected _wxGrid_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetLabelValue(_arg0,_arg1,*_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxGrid_SetRowHeight(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetRowHeight(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxGrid_SetRowHeight(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxGrid_SetRowHeight",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_SetRowHeight. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_SetRowHeight(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxGrid_UpdateDimensions(_swigobj) (_swigobj->UpdateDimensions()) -static PyObject *_wrap_wxGrid_UpdateDimensions(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGrid * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGrid_UpdateDimensions",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGrid_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGrid_UpdateDimensions. Expected _wxGrid_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxGrid_UpdateDimensions(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxGridEventTowxEvent(void *ptr) { - wxGridEvent *src; - wxEvent *dest; - src = (wxGridEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxGridEvent_m_row_set(_swigobj,_swigval) (_swigobj->m_row = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_row_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_row_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_row_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_row_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_row_get(_swigobj) ((int ) _swigobj->m_row) -static PyObject *_wrap_wxGridEvent_m_row_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_row_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_row_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_row_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_col_set(_swigobj,_swigval) (_swigobj->m_col = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_col_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_col_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_col_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_col_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_col_get(_swigobj) ((int ) _swigobj->m_col) -static PyObject *_wrap_wxGridEvent_m_col_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_col_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_col_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_col_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_x_set(_swigobj,_swigval) (_swigobj->m_x = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_x_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_x_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_x_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_x_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_x_get(_swigobj) ((int ) _swigobj->m_x) -static PyObject *_wrap_wxGridEvent_m_x_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_x_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_x_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_x_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_y_set(_swigobj,_swigval) (_swigobj->m_y = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_y_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_y_set",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_y_set. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_y_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_y_get(_swigobj) ((int ) _swigobj->m_y) -static PyObject *_wrap_wxGridEvent_m_y_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_y_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_y_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxGridEvent_m_y_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_control_set(_swigobj,_swigval) (_swigobj->m_control = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_control_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_control_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_control_set. Expected _wxGridEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_control_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_control_get(_swigobj) ((bool ) _swigobj->m_control) -static PyObject *_wrap_wxGridEvent_m_control_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_control_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_control_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_control_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_shift_set(_swigobj,_swigval) (_swigobj->m_shift = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_shift_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxGridEvent_m_shift_set",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_shift_set. Expected _wxGridEvent_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_shift_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_shift_get(_swigobj) ((bool ) _swigobj->m_shift) -static PyObject *_wrap_wxGridEvent_m_shift_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_shift_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_shift_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxGridEvent_m_shift_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxGridEvent_m_cell_set(_swigobj,_swigval) (_swigobj->m_cell = _swigval,_swigval) -static PyObject *_wrap_wxGridEvent_m_cell_set(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGridEvent * _arg0; - wxGridCell * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxGridEvent_m_cell_set",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_set. Expected _wxGridEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxGridCell_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxGridEvent_m_cell_set. Expected _wxGridCell_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGridEvent_m_cell_set(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxGridEvent_m_cell_get(_swigobj) ((wxGridCell *) _swigobj->m_cell) -static PyObject *_wrap_wxGridEvent_m_cell_get(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxGridCell * _result; - wxGridEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxGridEvent_m_cell_get",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxGridEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxGridEvent_m_cell_get. Expected _wxGridEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxGridCell *)wxGridEvent_m_cell_get(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxGridCell_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxNotebookEventTowxCommandEvent(void *ptr) { - wxNotebookEvent *src; - wxCommandEvent *dest; - src = (wxNotebookEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxNotebookEventTowxEvent(void *ptr) { - wxNotebookEvent *src; - wxEvent *dest; - src = (wxNotebookEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxNotebookEvent_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxNotebookEvent_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebookEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebookEvent_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_GetSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebookEvent_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebookEvent_GetOldSelection(_swigobj) (_swigobj->GetOldSelection()) -static PyObject *_wrap_wxNotebookEvent_GetOldSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebookEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebookEvent_GetOldSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebookEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebookEvent_GetOldSelection. Expected _wxNotebookEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebookEvent_GetOldSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxNotebookTowxControl(void *ptr) { - wxNotebook *src; - wxControl *dest; - src = (wxNotebook *) ptr; - dest = (wxControl *) src; - return (void *) dest; -} - -static void *SwigwxNotebookTowxWindow(void *ptr) { - wxNotebook *src; - wxWindow *dest; - src = (wxNotebook *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxNotebookTowxEvtHandler(void *ptr) { - wxNotebook *src; - wxEvtHandler *dest; - src = (wxNotebook *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxNotebook(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxNotebook(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxNotebook(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = 0; - char * _arg5 = "notebook"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxNotebook",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxNotebook. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxNotebook. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxNotebook. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxNotebook *)new_wxNotebook(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebook_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxNotebook_GetPageCount(_swigobj) (_swigobj->GetPageCount()) -static PyObject *_wrap_wxNotebook_GetPageCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetPageCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageCount. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetPageCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_SetSelection(_swigobj,_swigarg0) (_swigobj->SetSelection(_swigarg0)) -static PyObject *_wrap_wxNotebook_SetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_SetSelection",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetSelection. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_SetSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_AdvanceSelection(_swigobj,_swigarg0) (_swigobj->AdvanceSelection(_swigarg0)) -static PyObject *_wrap_wxNotebook_AdvanceSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _arg0; - bool _arg1 = (1); - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"s|i:wxNotebook_AdvanceSelection",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AdvanceSelection. Expected _wxNotebook_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebook_AdvanceSelection(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxNotebook_GetSelection(_swigobj) (_swigobj->GetSelection()) -static PyObject *_wrap_wxNotebook_GetSelection(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetSelection",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetSelection. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetSelection(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_SetPageText(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetPageText(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxNotebook_SetPageText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - wxString * _arg2; - char * _argc0 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"siO:wxNotebook_SetPageText",&_argc0,&_arg1,&_obj2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetPageText. Expected _wxNotebook_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_SetPageText(_arg0,_arg1,*_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxNotebook_GetPageText(_swigobj,_swigarg0) (_swigobj->GetPageText(_swigarg0)) -static PyObject *_wrap_wxNotebook_GetPageText(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPageText",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageText. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxNotebook_GetPageText(_arg0,_arg1)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxNotebook_SetImageList(_swigobj,_swigarg0) (_swigobj->SetImageList(_swigarg0)) -static PyObject *_wrap_wxNotebook_SetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _arg0; - wxImageList * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxNotebook_SetImageList",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetImageList. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxImageList_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxNotebook_SetImageList. Expected _wxImageList_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebook_SetImageList(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxNotebook_GetImageList(_swigobj) (_swigobj->GetImageList()) -static PyObject *_wrap_wxNotebook_GetImageList(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxImageList * _result; - wxNotebook * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetImageList",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetImageList. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxImageList *)wxNotebook_GetImageList(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxImageList_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxNotebook_GetPageImage(_swigobj,_swigarg0) (_swigobj->GetPageImage(_swigarg0)) -static PyObject *_wrap_wxNotebook_GetPageImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPageImage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPageImage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetPageImage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_SetPageImage(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetPageImage(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxNotebook_SetPageImage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - int _arg2; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxNotebook_SetPageImage",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_SetPageImage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_SetPageImage(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_GetRowCount(_swigobj) (_swigobj->GetRowCount()) -static PyObject *_wrap_wxNotebook_GetRowCount(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_GetRowCount",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetRowCount. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxNotebook_GetRowCount(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_DeletePage(_swigobj,_swigarg0) (_swigobj->DeletePage(_swigarg0)) -static PyObject *_wrap_wxNotebook_DeletePage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_DeletePage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_DeletePage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_DeletePage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_RemovePage(_swigobj,_swigarg0) (_swigobj->RemovePage(_swigarg0)) -static PyObject *_wrap_wxNotebook_RemovePage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_RemovePage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_RemovePage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_RemovePage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_DeleteAllPages(_swigobj) (_swigobj->DeleteAllPages()) -static PyObject *_wrap_wxNotebook_DeleteAllPages(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_DeleteAllPages",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_DeleteAllPages. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_DeleteAllPages(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxNotebook_AddPage(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3) (_swigobj->AddPage(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) -static PyObject *_wrap_wxNotebook_AddPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - wxWindow * _arg1; - wxString * _arg2; - int _arg3 = (0); - int _arg4 = -1; - char * _argc0 = 0; - char * _argc1 = 0; - PyObject * _obj2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ssO|ii:wxNotebook_AddPage",&_argc0,&_argc1,&_obj2,&_arg3,&_arg4)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_AddPage. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxNotebook_AddPage. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj2)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg2 = new wxString(PyString_AsString(_obj2), PyString_Size(_obj2)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_AddPage(_arg0,_arg1,*_arg2,_arg3,_arg4); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj2) - delete _arg2; -} - return _resultobj; -} - -#define wxNotebook_InsertPage(_swigobj,_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4) (_swigobj->InsertPage(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4)) -static PyObject *_wrap_wxNotebook_InsertPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxNotebook * _arg0; - int _arg1; - wxWindow * _arg2; - wxString * _arg3; - bool _arg4 = (0); - int _arg5 = -1; - char * _argc0 = 0; - char * _argc2 = 0; - PyObject * _obj3 = 0; - int tempbool4; - - self = self; - if(!PyArg_ParseTuple(args,"sisO|ii:wxNotebook_InsertPage",&_argc0,&_arg1,&_argc2,&_obj3,&tempbool4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_InsertPage. Expected _wxNotebook_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxNotebook_InsertPage. Expected _wxWindow_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj3)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg3 = new wxString(PyString_AsString(_obj3), PyString_Size(_obj3)); -} - _arg4 = (bool ) tempbool4; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxNotebook_InsertPage(_arg0,_arg1,_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); -{ - if (_obj3) - delete _arg3; -} - return _resultobj; -} - -#define wxNotebook_GetPage(_swigobj,_swigarg0) (_swigobj->GetPage(_swigarg0)) -static PyObject *_wrap_wxNotebook_GetPage(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebookPage * _result; - wxNotebook * _arg0; - int _arg1; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxNotebook_GetPage",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_GetPage. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxNotebookPage *)wxNotebook_GetPage(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxNotebookPage_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void wxNotebook_ResizeChildren(wxNotebook *self) { - wxSizeEvent evt(self->GetClientSize()); - self->OnSize(evt); - } -static PyObject *_wrap_wxNotebook_ResizeChildren(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxNotebook * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxNotebook_ResizeChildren",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxNotebook_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxNotebook_ResizeChildren. Expected _wxNotebook_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxNotebook_ResizeChildren(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxSplitterWindowTowxWindow(void *ptr) { - wxSplitterWindow *src; - wxWindow *dest; - src = (wxSplitterWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSplitterWindowTowxEvtHandler(void *ptr) { - wxSplitterWindow *src; - wxEvtHandler *dest; - src = (wxSplitterWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSplitterWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSplitterWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSplitterWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxSP_3D)|(wxCLIP_CHILDREN); - char * _arg5 = "splitterWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxSplitterWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSplitterWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSplitterWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSplitterWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSplitterWindow *)new_wxSplitterWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSplitterWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSplitterWindow_GetBorderSize(_swigobj) (_swigobj->GetBorderSize()) -static PyObject *_wrap_wxSplitterWindow_GetBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetBorderSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetBorderSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetBorderSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetMinimumPaneSize(_swigobj) (_swigobj->GetMinimumPaneSize()) -static PyObject *_wrap_wxSplitterWindow_GetMinimumPaneSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetMinimumPaneSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetMinimumPaneSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetMinimumPaneSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetSashPosition(_swigobj) (_swigobj->GetSashPosition()) -static PyObject *_wrap_wxSplitterWindow_GetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSashPosition",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSashPosition. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetSashPosition(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetSashSize(_swigobj) (_swigobj->GetSashSize()) -static PyObject *_wrap_wxSplitterWindow_GetSashSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSashSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSashSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetSashSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetSplitMode(_swigobj) (_swigobj->GetSplitMode()) -static PyObject *_wrap_wxSplitterWindow_GetSplitMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetSplitMode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetSplitMode. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSplitterWindow_GetSplitMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_GetWindow1(_swigobj) (_swigobj->GetWindow1()) -static PyObject *_wrap_wxSplitterWindow_GetWindow1(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetWindow1",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetWindow1. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxSplitterWindow_GetWindow1(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSplitterWindow_GetWindow2(_swigobj) (_swigobj->GetWindow2()) -static PyObject *_wrap_wxSplitterWindow_GetWindow2(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_GetWindow2",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_GetWindow2. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxSplitterWindow_GetWindow2(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSplitterWindow_Initialize(_swigobj,_swigarg0) (_swigobj->Initialize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_Initialize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - wxWindow * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxSplitterWindow_Initialize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Initialize. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_Initialize. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_Initialize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_IsSplit(_swigobj) (_swigobj->IsSplit()) -static PyObject *_wrap_wxSplitterWindow_IsSplit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSplitterWindow_IsSplit",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_IsSplit. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_IsSplit(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_SetBorderSize(_swigobj,_swigarg0) (_swigobj->SetBorderSize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetBorderSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetBorderSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetBorderSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetSashPosition(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSashPosition(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSplitterWindow_SetSashPosition(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - int _arg2 = (1); - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si|i:wxSplitterWindow_SetSashPosition",&_argc0,&_arg1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSashPosition. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetSashPosition(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetSashSize(_swigobj,_swigarg0) (_swigobj->SetSashSize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetSashSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetSashSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSashSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetSashSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetMinimumPaneSize(_swigobj,_swigarg0) (_swigobj->SetMinimumPaneSize(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetMinimumPaneSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetMinimumPaneSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetMinimumPaneSize. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetMinimumPaneSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SetSplitMode(_swigobj,_swigarg0) (_swigobj->SetSplitMode(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_SetSplitMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSplitterWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSplitterWindow_SetSplitMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SetSplitMode. Expected _wxSplitterWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSplitterWindow_SetSplitMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSplitterWindow_SplitHorizontally(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SplitHorizontally(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxSplitterWindow_SplitHorizontally(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - wxWindow * _arg1; - wxWindow * _arg2; - int _arg3 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss|i:wxSplitterWindow_SplitHorizontally",&_argc0,&_argc1,&_argc2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitHorizontally. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxSplitterWindow_SplitHorizontally. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_SplitHorizontally(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_SplitVertically(_swigobj,_swigarg0,_swigarg1,_swigarg2) (_swigobj->SplitVertically(_swigarg0,_swigarg1,_swigarg2)) -static PyObject *_wrap_wxSplitterWindow_SplitVertically(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - wxWindow * _arg1; - wxWindow * _arg2; - int _arg3 = 0; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sss|i:wxSplitterWindow_SplitVertically",&_argc0,&_argc1,&_argc2,&_arg3)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_SplitVertically. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxSplitterWindow_SplitVertically. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_SplitVertically(_arg0,_arg1,_arg2,_arg3); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSplitterWindow_Unsplit(_swigobj,_swigarg0) (_swigobj->Unsplit(_swigarg0)) -static PyObject *_wrap_wxSplitterWindow_Unsplit(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSplitterWindow * _arg0; - wxWindow * _arg1 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s|s:wxSplitterWindow_Unsplit",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSplitterWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSplitterWindow_Unsplit. Expected _wxSplitterWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSplitterWindow_Unsplit. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSplitterWindow_Unsplit(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxTaskBarIconTowxEvtHandler(void *ptr) { - wxTaskBarIcon *src; - wxEvtHandler *dest; - src = (wxTaskBarIcon *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxTaskBarIcon() (new wxTaskBarIcon()) -static PyObject *_wrap_new_wxTaskBarIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTaskBarIcon * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxTaskBarIcon")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxTaskBarIcon *)new_wxTaskBarIcon(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxTaskBarIcon_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxTaskBarIcon(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxTaskBarIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxTaskBarIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxTaskBarIcon",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTaskBarIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxTaskBarIcon. Expected _wxTaskBarIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxTaskBarIcon(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxTaskBarIcon_SetIcon(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetIcon(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxTaskBarIcon_SetIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTaskBarIcon * _arg0; - wxIcon * _arg1; - char * _arg2 = ""; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxTaskBarIcon_SetIcon",&_argc0,&_argc1,&_arg2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTaskBarIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTaskBarIcon_SetIcon. Expected _wxTaskBarIcon_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTaskBarIcon_SetIcon. Expected _wxIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTaskBarIcon_SetIcon(_arg0,*_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTaskBarIcon_RemoveIcon(_swigobj) (_swigobj->RemoveIcon()) -static PyObject *_wrap_wxTaskBarIcon_RemoveIcon(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTaskBarIcon * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxTaskBarIcon_RemoveIcon",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTaskBarIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTaskBarIcon_RemoveIcon. Expected _wxTaskBarIcon_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTaskBarIcon_RemoveIcon(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxTaskBarIcon_PopupMenu(_swigobj,_swigarg0) (_swigobj->PopupMenu(_swigarg0)) -static PyObject *_wrap_wxTaskBarIcon_PopupMenu(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxTaskBarIcon * _arg0; - wxMenu * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxTaskBarIcon_PopupMenu",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxTaskBarIcon_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxTaskBarIcon_PopupMenu. Expected _wxTaskBarIcon_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMenu_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxTaskBarIcon_PopupMenu. Expected _wxMenu_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxTaskBarIcon_PopupMenu(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef windows2cMethods[] = { - { "wxTaskBarIcon_PopupMenu", _wrap_wxTaskBarIcon_PopupMenu, 1 }, - { "wxTaskBarIcon_RemoveIcon", _wrap_wxTaskBarIcon_RemoveIcon, 1 }, - { "wxTaskBarIcon_SetIcon", _wrap_wxTaskBarIcon_SetIcon, 1 }, - { "delete_wxTaskBarIcon", _wrap_delete_wxTaskBarIcon, 1 }, - { "new_wxTaskBarIcon", _wrap_new_wxTaskBarIcon, 1 }, - { "wxSplitterWindow_Unsplit", _wrap_wxSplitterWindow_Unsplit, 1 }, - { "wxSplitterWindow_SplitVertically", _wrap_wxSplitterWindow_SplitVertically, 1 }, - { "wxSplitterWindow_SplitHorizontally", _wrap_wxSplitterWindow_SplitHorizontally, 1 }, - { "wxSplitterWindow_SetSplitMode", _wrap_wxSplitterWindow_SetSplitMode, 1 }, - { "wxSplitterWindow_SetMinimumPaneSize", _wrap_wxSplitterWindow_SetMinimumPaneSize, 1 }, - { "wxSplitterWindow_SetSashSize", _wrap_wxSplitterWindow_SetSashSize, 1 }, - { "wxSplitterWindow_SetSashPosition", _wrap_wxSplitterWindow_SetSashPosition, 1 }, - { "wxSplitterWindow_SetBorderSize", _wrap_wxSplitterWindow_SetBorderSize, 1 }, - { "wxSplitterWindow_IsSplit", _wrap_wxSplitterWindow_IsSplit, 1 }, - { "wxSplitterWindow_Initialize", _wrap_wxSplitterWindow_Initialize, 1 }, - { "wxSplitterWindow_GetWindow2", _wrap_wxSplitterWindow_GetWindow2, 1 }, - { "wxSplitterWindow_GetWindow1", _wrap_wxSplitterWindow_GetWindow1, 1 }, - { "wxSplitterWindow_GetSplitMode", _wrap_wxSplitterWindow_GetSplitMode, 1 }, - { "wxSplitterWindow_GetSashSize", _wrap_wxSplitterWindow_GetSashSize, 1 }, - { "wxSplitterWindow_GetSashPosition", _wrap_wxSplitterWindow_GetSashPosition, 1 }, - { "wxSplitterWindow_GetMinimumPaneSize", _wrap_wxSplitterWindow_GetMinimumPaneSize, 1 }, - { "wxSplitterWindow_GetBorderSize", _wrap_wxSplitterWindow_GetBorderSize, 1 }, - { "new_wxSplitterWindow", _wrap_new_wxSplitterWindow, 1 }, - { "wxNotebook_ResizeChildren", _wrap_wxNotebook_ResizeChildren, 1 }, - { "wxNotebook_GetPage", _wrap_wxNotebook_GetPage, 1 }, - { "wxNotebook_InsertPage", _wrap_wxNotebook_InsertPage, 1 }, - { "wxNotebook_AddPage", _wrap_wxNotebook_AddPage, 1 }, - { "wxNotebook_DeleteAllPages", _wrap_wxNotebook_DeleteAllPages, 1 }, - { "wxNotebook_RemovePage", _wrap_wxNotebook_RemovePage, 1 }, - { "wxNotebook_DeletePage", _wrap_wxNotebook_DeletePage, 1 }, - { "wxNotebook_GetRowCount", _wrap_wxNotebook_GetRowCount, 1 }, - { "wxNotebook_SetPageImage", _wrap_wxNotebook_SetPageImage, 1 }, - { "wxNotebook_GetPageImage", _wrap_wxNotebook_GetPageImage, 1 }, - { "wxNotebook_GetImageList", _wrap_wxNotebook_GetImageList, 1 }, - { "wxNotebook_SetImageList", _wrap_wxNotebook_SetImageList, 1 }, - { "wxNotebook_GetPageText", _wrap_wxNotebook_GetPageText, 1 }, - { "wxNotebook_SetPageText", _wrap_wxNotebook_SetPageText, 1 }, - { "wxNotebook_GetSelection", _wrap_wxNotebook_GetSelection, 1 }, - { "wxNotebook_AdvanceSelection", _wrap_wxNotebook_AdvanceSelection, 1 }, - { "wxNotebook_SetSelection", _wrap_wxNotebook_SetSelection, 1 }, - { "wxNotebook_GetPageCount", _wrap_wxNotebook_GetPageCount, 1 }, - { "new_wxNotebook", _wrap_new_wxNotebook, 1 }, - { "wxNotebookEvent_GetOldSelection", _wrap_wxNotebookEvent_GetOldSelection, 1 }, - { "wxNotebookEvent_GetSelection", _wrap_wxNotebookEvent_GetSelection, 1 }, - { "wxGridEvent_m_cell_get", _wrap_wxGridEvent_m_cell_get, 1 }, - { "wxGridEvent_m_cell_set", _wrap_wxGridEvent_m_cell_set, 1 }, - { "wxGridEvent_m_shift_get", _wrap_wxGridEvent_m_shift_get, 1 }, - { "wxGridEvent_m_shift_set", _wrap_wxGridEvent_m_shift_set, 1 }, - { "wxGridEvent_m_control_get", _wrap_wxGridEvent_m_control_get, 1 }, - { "wxGridEvent_m_control_set", _wrap_wxGridEvent_m_control_set, 1 }, - { "wxGridEvent_m_y_get", _wrap_wxGridEvent_m_y_get, 1 }, - { "wxGridEvent_m_y_set", _wrap_wxGridEvent_m_y_set, 1 }, - { "wxGridEvent_m_x_get", _wrap_wxGridEvent_m_x_get, 1 }, - { "wxGridEvent_m_x_set", _wrap_wxGridEvent_m_x_set, 1 }, - { "wxGridEvent_m_col_get", _wrap_wxGridEvent_m_col_get, 1 }, - { "wxGridEvent_m_col_set", _wrap_wxGridEvent_m_col_set, 1 }, - { "wxGridEvent_m_row_get", _wrap_wxGridEvent_m_row_get, 1 }, - { "wxGridEvent_m_row_set", _wrap_wxGridEvent_m_row_set, 1 }, - { "wxGrid_UpdateDimensions", _wrap_wxGrid_UpdateDimensions, 1 }, - { "wxGrid_SetRowHeight", _wrap_wxGrid_SetRowHeight, 1 }, - { "wxGrid_SetLabelValue", _wrap_wxGrid_SetLabelValue, 1 }, - { "wxGrid_SetLabelTextFont", _wrap_wxGrid_SetLabelTextFont, 1 }, - { "wxGrid_SetLabelTextColour", _wrap_wxGrid_SetLabelTextColour, 1 }, - { "wxGrid_SetLabelSize", _wrap_wxGrid_SetLabelSize, 1 }, - { "wxGrid_SetLabelBackgroundColour", _wrap_wxGrid_SetLabelBackgroundColour, 1 }, - { "wxGrid_SetLabelAlignment", _wrap_wxGrid_SetLabelAlignment, 1 }, - { "wxGrid_SetGridCursor", _wrap_wxGrid_SetGridCursor, 1 }, - { "wxGrid_SetEditable", _wrap_wxGrid_SetEditable, 1 }, - { "wxGrid_SetDividerPen", _wrap_wxGrid_SetDividerPen, 1 }, - { "wxGrid_SetColumnWidth", _wrap_wxGrid_SetColumnWidth, 1 }, - { "wxGrid_SetCellValue", _wrap_wxGrid_SetCellValue, 1 }, - { "wxGrid_SetDefCellTextFont", _wrap_wxGrid_SetDefCellTextFont, 1 }, - { "wxGrid_SetCellTextFont", _wrap_wxGrid_SetCellTextFont, 1 }, - { "wxGrid_SetDefCellTextColour", _wrap_wxGrid_SetDefCellTextColour, 1 }, - { "wxGrid_SetCellTextColour", _wrap_wxGrid_SetCellTextColour, 1 }, - { "wxGrid_SetDefCellBackgroundColour", _wrap_wxGrid_SetDefCellBackgroundColour, 1 }, - { "wxGrid_SetCellBackgroundColour", _wrap_wxGrid_SetCellBackgroundColour, 1 }, - { "wxGrid_SetDefCellAlignment", _wrap_wxGrid_SetDefCellAlignment, 1 }, - { "wxGrid_SetCellAlignment", _wrap_wxGrid_SetCellAlignment, 1 }, - { "wxGrid_OnActivate", _wrap_wxGrid_OnActivate, 1 }, - { "wxGrid_InsertRows", _wrap_wxGrid_InsertRows, 1 }, - { "wxGrid_InsertCols", _wrap_wxGrid_InsertCols, 1 }, - { "wxGrid_GetVertScrollBar", _wrap_wxGrid_GetVertScrollBar, 1 }, - { "wxGrid_GetTextItem", _wrap_wxGrid_GetTextItem, 1 }, - { "wxGrid_GetScrollPosY", _wrap_wxGrid_GetScrollPosY, 1 }, - { "wxGrid_GetScrollPosX", _wrap_wxGrid_GetScrollPosX, 1 }, - { "wxGrid_GetRows", _wrap_wxGrid_GetRows, 1 }, - { "wxGrid_GetRowHeight", _wrap_wxGrid_GetRowHeight, 1 }, - { "wxGrid_GetLabelValue", _wrap_wxGrid_GetLabelValue, 1 }, - { "wxGrid_GetLabelTextFont", _wrap_wxGrid_GetLabelTextFont, 1 }, - { "wxGrid_GetLabelTextColour", _wrap_wxGrid_GetLabelTextColour, 1 }, - { "wxGrid_GetLabelSize", _wrap_wxGrid_GetLabelSize, 1 }, - { "wxGrid_GetLabelBackgroundColour", _wrap_wxGrid_GetLabelBackgroundColour, 1 }, - { "wxGrid_GetLabelAlignment", _wrap_wxGrid_GetLabelAlignment, 1 }, - { "wxGrid_GetHorizScrollBar", _wrap_wxGrid_GetHorizScrollBar, 1 }, - { "wxGrid_GetEditable", _wrap_wxGrid_GetEditable, 1 }, - { "wxGrid_GetCursorRow", _wrap_wxGrid_GetCursorRow, 1 }, - { "wxGrid_GetCursorColumn", _wrap_wxGrid_GetCursorColumn, 1 }, - { "wxGrid_GetCurrentRect", _wrap_wxGrid_GetCurrentRect, 1 }, - { "wxGrid_GetColumnWidth", _wrap_wxGrid_GetColumnWidth, 1 }, - { "wxGrid_GetCols", _wrap_wxGrid_GetCols, 1 }, - { "wxGrid_GetCellValue", _wrap_wxGrid_GetCellValue, 1 }, - { "wxGrid_GetDefCellTextFont", _wrap_wxGrid_GetDefCellTextFont, 1 }, - { "wxGrid_GetCellTextFont", _wrap_wxGrid_GetCellTextFont, 1 }, - { "wxGrid_GetDefCellTextColour", _wrap_wxGrid_GetDefCellTextColour, 1 }, - { "wxGrid_GetCellTextColour", _wrap_wxGrid_GetCellTextColour, 1 }, - { "wxGrid_GetDefCellBackgroundColour", _wrap_wxGrid_GetDefCellBackgroundColour, 1 }, - { "wxGrid_GetCellBackgroundColour", _wrap_wxGrid_GetCellBackgroundColour, 1 }, - { "wxGrid_GetDefCellAlignment", _wrap_wxGrid_GetDefCellAlignment, 1 }, - { "wxGrid_GetCellAlignment", _wrap_wxGrid_GetCellAlignment, 1 }, - { "wxGrid_GetCell", _wrap_wxGrid_GetCell, 1 }, - { "wxGrid_GetBatchCount", _wrap_wxGrid_GetBatchCount, 1 }, - { "wxGrid_EndBatch", _wrap_wxGrid_EndBatch, 1 }, - { "wxGrid_DeleteRows", _wrap_wxGrid_DeleteRows, 1 }, - { "wxGrid_DeleteCols", _wrap_wxGrid_DeleteCols, 1 }, - { "wxGrid_CurrentCellVisible", _wrap_wxGrid_CurrentCellVisible, 1 }, - { "wxGrid_CreateGrid", _wrap_wxGrid_CreateGrid, 1 }, - { "wxGrid_CellHitTest", _wrap_wxGrid_CellHitTest, 1 }, - { "wxGrid_BeginBatch", _wrap_wxGrid_BeginBatch, 1 }, - { "wxGrid_AppendRows", _wrap_wxGrid_AppendRows, 1 }, - { "wxGrid_AppendCols", _wrap_wxGrid_AppendCols, 1 }, - { "wxGrid_AdjustScrollbars", _wrap_wxGrid_AdjustScrollbars, 1 }, - { "new_wxGrid", _wrap_new_wxGrid, 1 }, - { "wxGridCell_SetCellBitmap", _wrap_wxGridCell_SetCellBitmap, 1 }, - { "wxGridCell_GetCellBitmap", _wrap_wxGridCell_GetCellBitmap, 1 }, - { "wxGridCell_SetAlignment", _wrap_wxGridCell_SetAlignment, 1 }, - { "wxGridCell_GetAlignment", _wrap_wxGridCell_GetAlignment, 1 }, - { "wxGridCell_GetBackgroundBrush", _wrap_wxGridCell_GetBackgroundBrush, 1 }, - { "wxGridCell_SetBackgroundColour", _wrap_wxGridCell_SetBackgroundColour, 1 }, - { "wxGridCell_GetBackgroundColour", _wrap_wxGridCell_GetBackgroundColour, 1 }, - { "wxGridCell_SetTextColour", _wrap_wxGridCell_SetTextColour, 1 }, - { "wxGridCell_GetTextColour", _wrap_wxGridCell_GetTextColour, 1 }, - { "wxGridCell_SetFont", _wrap_wxGridCell_SetFont, 1 }, - { "wxGridCell_GetFont", _wrap_wxGridCell_GetFont, 1 }, - { "wxGridCell_SetTextValue", _wrap_wxGridCell_SetTextValue, 1 }, - { "wxGridCell_GetTextValue", _wrap_wxGridCell_GetTextValue, 1 }, - { "delete_wxGridCell", _wrap_delete_wxGridCell, 1 }, - { "new_wxGridCell", _wrap_new_wxGridCell, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwindows2c)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("windows2c", windows2cMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxGRID_TEXT_CTRL", PyInt_FromLong((long) wxGRID_TEXT_CTRL)); - PyDict_SetItemString(d,"wxGRID_HSCROLL", PyInt_FromLong((long) wxGRID_HSCROLL)); - PyDict_SetItemString(d,"wxGRID_VSCROLL", PyInt_FromLong((long) wxGRID_VSCROLL)); - PyDict_SetItemString(d,"wxEVT_GRID_SELECT_CELL", PyInt_FromLong((long) wxEVT_GRID_SELECT_CELL)); - PyDict_SetItemString(d,"wxEVT_GRID_CREATE_CELL", PyInt_FromLong((long) wxEVT_GRID_CREATE_CELL)); - PyDict_SetItemString(d,"wxEVT_GRID_CHANGE_LABELS", PyInt_FromLong((long) wxEVT_GRID_CHANGE_LABELS)); - PyDict_SetItemString(d,"wxEVT_GRID_CHANGE_SEL_LABEL", PyInt_FromLong((long) wxEVT_GRID_CHANGE_SEL_LABEL)); - PyDict_SetItemString(d,"wxEVT_GRID_CELL_CHANGE", PyInt_FromLong((long) wxEVT_GRID_CELL_CHANGE)); - PyDict_SetItemString(d,"wxEVT_GRID_CELL_LCLICK", PyInt_FromLong((long) wxEVT_GRID_CELL_LCLICK)); - PyDict_SetItemString(d,"wxEVT_GRID_CELL_RCLICK", PyInt_FromLong((long) wxEVT_GRID_CELL_RCLICK)); - PyDict_SetItemString(d,"wxEVT_GRID_LABEL_LCLICK", PyInt_FromLong((long) wxEVT_GRID_LABEL_LCLICK)); - PyDict_SetItemString(d,"wxEVT_GRID_LABEL_RCLICK", PyInt_FromLong((long) wxEVT_GRID_LABEL_RCLICK)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_MOVE", PyInt_FromLong((long) wxEVT_TASKBAR_MOVE)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_LEFT_DOWN", PyInt_FromLong((long) wxEVT_TASKBAR_LEFT_DOWN)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_LEFT_UP", PyInt_FromLong((long) wxEVT_TASKBAR_LEFT_UP)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_RIGHT_DOWN", PyInt_FromLong((long) wxEVT_TASKBAR_RIGHT_DOWN)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_RIGHT_UP", PyInt_FromLong((long) wxEVT_TASKBAR_RIGHT_UP)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_TASKBAR_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_TASKBAR_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_TASKBAR_RIGHT_DCLICK)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_wxPanel","_class_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_wxPanel","_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxNotebookEvent",SwigwxNotebookEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxGridEvent",SwigwxGridEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxTaskBarIcon","_class_wxTaskBarIcon",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_class_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxGrid",SwigwxGridTowxPanel); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxTaskBarIcon","_wxTaskBarIcon",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_wxControl","_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_class_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxNotebook",SwigwxNotebookTowxControl); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxNotebookEvent",SwigwxNotebookEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxTaskBarIcon",SwigwxTaskBarIconTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSplitterWindow",SwigwxSplitterWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxNotebook",SwigwxNotebookTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxGrid",SwigwxGridTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxWindow","_class_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSplitterWindow",SwigwxSplitterWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxNotebook",SwigwxNotebookTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxGrid",SwigwxGridTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); -} diff --git a/utils/wxPython/src/msw/windows2.py b/utils/wxPython/src/msw/windows2.py deleted file mode 100644 index 25ed395296..0000000000 --- a/utils/wxPython/src/msw/windows2.py +++ /dev/null @@ -1,596 +0,0 @@ -# This file was created automatically by SWIG. -import windows2c - -from misc import * - -from gdi import * - -from windows import * - -from controls import * - -from events import * -import wx -class wxGridCellPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windows2c.delete_wxGridCell(self.this) - def GetTextValue(self): - val = windows2c.wxGridCell_GetTextValue(self.this) - return val - def SetTextValue(self,arg0): - val = windows2c.wxGridCell_SetTextValue(self.this,arg0) - return val - def GetFont(self): - val = windows2c.wxGridCell_GetFont(self.this) - val = wxFontPtr(val) - return val - def SetFont(self,arg0): - val = windows2c.wxGridCell_SetFont(self.this,arg0.this) - return val - def GetTextColour(self): - val = windows2c.wxGridCell_GetTextColour(self.this) - val = wxColourPtr(val) - return val - def SetTextColour(self,arg0): - val = windows2c.wxGridCell_SetTextColour(self.this,arg0.this) - return val - def GetBackgroundColour(self): - val = windows2c.wxGridCell_GetBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def SetBackgroundColour(self,arg0): - val = windows2c.wxGridCell_SetBackgroundColour(self.this,arg0.this) - return val - def GetBackgroundBrush(self): - val = windows2c.wxGridCell_GetBackgroundBrush(self.this) - val = wxBrushPtr(val) - return val - def GetAlignment(self): - val = windows2c.wxGridCell_GetAlignment(self.this) - return val - def SetAlignment(self,arg0): - val = windows2c.wxGridCell_SetAlignment(self.this,arg0) - return val - def GetCellBitmap(self): - val = windows2c.wxGridCell_GetCellBitmap(self.this) - val = wxBitmapPtr(val) - return val - def SetCellBitmap(self,arg0): - val = windows2c.wxGridCell_SetCellBitmap(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxGridCell(wxGridCellPtr): - def __init__(self) : - self.this = windows2c.new_wxGridCell() - self.thisown = 1 - - - - -class wxGridPtr(wxPanelPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def AdjustScrollbars(self): - val = windows2c.wxGrid_AdjustScrollbars(self.this) - return val - def AppendCols(self,*args): - val = apply(windows2c.wxGrid_AppendCols,(self.this,)+args) - return val - def AppendRows(self,*args): - val = apply(windows2c.wxGrid_AppendRows,(self.this,)+args) - return val - def BeginBatch(self): - val = windows2c.wxGrid_BeginBatch(self.this) - return val - def CellHitTest(self,arg0,arg1): - val = windows2c.wxGrid_CellHitTest(self.this,arg0,arg1) - return val - def CreateGrid(self,arg0,arg1,*args): - val = apply(windows2c.wxGrid_CreateGrid,(self.this,arg0,arg1,)+args) - return val - def CurrentCellVisible(self): - val = windows2c.wxGrid_CurrentCellVisible(self.this) - return val - def DeleteCols(self,*args): - val = apply(windows2c.wxGrid_DeleteCols,(self.this,)+args) - return val - def DeleteRows(self,*args): - val = apply(windows2c.wxGrid_DeleteRows,(self.this,)+args) - return val - def EndBatch(self): - val = windows2c.wxGrid_EndBatch(self.this) - return val - def GetBatchCount(self): - val = windows2c.wxGrid_GetBatchCount(self.this) - return val - def GetCell(self,arg0,arg1): - val = windows2c.wxGrid_GetCell(self.this,arg0,arg1) - val = wxGridCellPtr(val) - return val - def GetCellAlignment(self,arg0,arg1): - val = windows2c.wxGrid_GetCellAlignment(self.this,arg0,arg1) - return val - def GetDefCellAlignment(self): - val = windows2c.wxGrid_GetDefCellAlignment(self.this) - return val - def GetCellBackgroundColour(self,arg0,arg1): - val = windows2c.wxGrid_GetCellBackgroundColour(self.this,arg0,arg1) - val = wxColourPtr(val) - return val - def GetDefCellBackgroundColour(self): - val = windows2c.wxGrid_GetDefCellBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def GetCellTextColour(self,arg0,arg1): - val = windows2c.wxGrid_GetCellTextColour(self.this,arg0,arg1) - val = wxColourPtr(val) - return val - def GetDefCellTextColour(self): - val = windows2c.wxGrid_GetDefCellTextColour(self.this) - val = wxColourPtr(val) - return val - def GetCellTextFont(self,arg0,arg1): - val = windows2c.wxGrid_GetCellTextFont(self.this,arg0,arg1) - val = wxFontPtr(val) - return val - def GetDefCellTextFont(self): - val = windows2c.wxGrid_GetDefCellTextFont(self.this) - val = wxFontPtr(val) - return val - def GetCellValue(self,arg0,arg1): - val = windows2c.wxGrid_GetCellValue(self.this,arg0,arg1) - return val - def GetCols(self): - val = windows2c.wxGrid_GetCols(self.this) - return val - def GetColumnWidth(self,arg0): - val = windows2c.wxGrid_GetColumnWidth(self.this,arg0) - return val - def GetCurrentRect(self): - val = windows2c.wxGrid_GetCurrentRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def GetCursorColumn(self): - val = windows2c.wxGrid_GetCursorColumn(self.this) - return val - def GetCursorRow(self): - val = windows2c.wxGrid_GetCursorRow(self.this) - return val - def GetEditable(self): - val = windows2c.wxGrid_GetEditable(self.this) - return val - def GetHorizScrollBar(self): - val = windows2c.wxGrid_GetHorizScrollBar(self.this) - val = wxScrollBarPtr(val) - return val - def GetLabelAlignment(self,arg0): - val = windows2c.wxGrid_GetLabelAlignment(self.this,arg0) - return val - def GetLabelBackgroundColour(self): - val = windows2c.wxGrid_GetLabelBackgroundColour(self.this) - val = wxColourPtr(val) - return val - def GetLabelSize(self,arg0): - val = windows2c.wxGrid_GetLabelSize(self.this,arg0) - return val - def GetLabelTextColour(self): - val = windows2c.wxGrid_GetLabelTextColour(self.this) - val = wxColourPtr(val) - return val - def GetLabelTextFont(self): - val = windows2c.wxGrid_GetLabelTextFont(self.this) - val = wxFontPtr(val) - return val - def GetLabelValue(self,arg0,arg1): - val = windows2c.wxGrid_GetLabelValue(self.this,arg0,arg1) - return val - def GetRowHeight(self,arg0): - val = windows2c.wxGrid_GetRowHeight(self.this,arg0) - return val - def GetRows(self): - val = windows2c.wxGrid_GetRows(self.this) - return val - def GetScrollPosX(self): - val = windows2c.wxGrid_GetScrollPosX(self.this) - return val - def GetScrollPosY(self): - val = windows2c.wxGrid_GetScrollPosY(self.this) - return val - def GetTextItem(self): - val = windows2c.wxGrid_GetTextItem(self.this) - val = wxTextCtrlPtr(val) - return val - def GetVertScrollBar(self): - val = windows2c.wxGrid_GetVertScrollBar(self.this) - val = wxScrollBarPtr(val) - return val - def InsertCols(self,*args): - val = apply(windows2c.wxGrid_InsertCols,(self.this,)+args) - return val - def InsertRows(self,*args): - val = apply(windows2c.wxGrid_InsertRows,(self.this,)+args) - return val - def OnActivate(self,arg0): - val = windows2c.wxGrid_OnActivate(self.this,arg0) - return val - def SetCellAlignment(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellAlignment(self.this,arg0,arg1,arg2) - return val - def SetDefCellAlignment(self,arg0): - val = windows2c.wxGrid_SetDefCellAlignment(self.this,arg0) - return val - def SetCellBackgroundColour(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellBackgroundColour(self.this,arg0.this,arg1,arg2) - return val - def SetDefCellBackgroundColour(self,arg0): - val = windows2c.wxGrid_SetDefCellBackgroundColour(self.this,arg0.this) - return val - def SetCellTextColour(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellTextColour(self.this,arg0.this,arg1,arg2) - return val - def SetDefCellTextColour(self,arg0): - val = windows2c.wxGrid_SetDefCellTextColour(self.this,arg0.this) - return val - def SetCellTextFont(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellTextFont(self.this,arg0.this,arg1,arg2) - return val - def SetDefCellTextFont(self,arg0): - val = windows2c.wxGrid_SetDefCellTextFont(self.this,arg0.this) - return val - def SetCellValue(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetCellValue(self.this,arg0,arg1,arg2) - return val - def SetColumnWidth(self,arg0,arg1): - val = windows2c.wxGrid_SetColumnWidth(self.this,arg0,arg1) - return val - def SetDividerPen(self,arg0): - val = windows2c.wxGrid_SetDividerPen(self.this,arg0.this) - return val - def SetEditable(self,arg0): - val = windows2c.wxGrid_SetEditable(self.this,arg0) - return val - def SetGridCursor(self,arg0,arg1): - val = windows2c.wxGrid_SetGridCursor(self.this,arg0,arg1) - return val - def SetLabelAlignment(self,arg0,arg1): - val = windows2c.wxGrid_SetLabelAlignment(self.this,arg0,arg1) - return val - def SetLabelBackgroundColour(self,arg0): - val = windows2c.wxGrid_SetLabelBackgroundColour(self.this,arg0.this) - return val - def SetLabelSize(self,arg0,arg1): - val = windows2c.wxGrid_SetLabelSize(self.this,arg0,arg1) - return val - def SetLabelTextColour(self,arg0): - val = windows2c.wxGrid_SetLabelTextColour(self.this,arg0.this) - return val - def SetLabelTextFont(self,arg0): - val = windows2c.wxGrid_SetLabelTextFont(self.this,arg0.this) - return val - def SetLabelValue(self,arg0,arg1,arg2): - val = windows2c.wxGrid_SetLabelValue(self.this,arg0,arg1,arg2) - return val - def SetRowHeight(self,arg0,arg1): - val = windows2c.wxGrid_SetRowHeight(self.this,arg0,arg1) - return val - def UpdateDimensions(self): - val = windows2c.wxGrid_UpdateDimensions(self.this) - return val - def __repr__(self): - return "" -class wxGrid(wxGridPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows2c.new_wxGrid,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL) - wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL) - wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS) - wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL) - wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE) - wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK) - wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK) - wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK) - wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK) - - - - -class wxGridEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __setattr__(self,name,value): - if name == "m_row" : - windows2c.wxGridEvent_m_row_set(self.this,value) - return - if name == "m_col" : - windows2c.wxGridEvent_m_col_set(self.this,value) - return - if name == "m_x" : - windows2c.wxGridEvent_m_x_set(self.this,value) - return - if name == "m_y" : - windows2c.wxGridEvent_m_y_set(self.this,value) - return - if name == "m_control" : - windows2c.wxGridEvent_m_control_set(self.this,value) - return - if name == "m_shift" : - windows2c.wxGridEvent_m_shift_set(self.this,value) - return - if name == "m_cell" : - windows2c.wxGridEvent_m_cell_set(self.this,value.this) - return - self.__dict__[name] = value - def __getattr__(self,name): - if name == "m_row" : - return windows2c.wxGridEvent_m_row_get(self.this) - if name == "m_col" : - return windows2c.wxGridEvent_m_col_get(self.this) - if name == "m_x" : - return windows2c.wxGridEvent_m_x_get(self.this) - if name == "m_y" : - return windows2c.wxGridEvent_m_y_get(self.this) - if name == "m_control" : - return windows2c.wxGridEvent_m_control_get(self.this) - if name == "m_shift" : - return windows2c.wxGridEvent_m_shift_get(self.this) - if name == "m_cell" : - return wxGridCellPtr(windows2c.wxGridEvent_m_cell_get(self.this)) - raise AttributeError,name - def __repr__(self): - return "" -class wxGridEvent(wxGridEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxNotebookEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSelection(self): - val = windows2c.wxNotebookEvent_GetSelection(self.this) - return val - def GetOldSelection(self): - val = windows2c.wxNotebookEvent_GetOldSelection(self.this) - return val - def __repr__(self): - return "" -class wxNotebookEvent(wxNotebookEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxNotebookPtr(wxControlPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetPageCount(self): - val = windows2c.wxNotebook_GetPageCount(self.this) - return val - def SetSelection(self,arg0): - val = windows2c.wxNotebook_SetSelection(self.this,arg0) - return val - def AdvanceSelection(self,*args): - val = apply(windows2c.wxNotebook_AdvanceSelection,(self.this,)+args) - return val - def GetSelection(self): - val = windows2c.wxNotebook_GetSelection(self.this) - return val - def SetPageText(self,arg0,arg1): - val = windows2c.wxNotebook_SetPageText(self.this,arg0,arg1) - return val - def GetPageText(self,arg0): - val = windows2c.wxNotebook_GetPageText(self.this,arg0) - return val - def SetImageList(self,arg0): - val = windows2c.wxNotebook_SetImageList(self.this,arg0.this) - return val - def GetImageList(self): - val = windows2c.wxNotebook_GetImageList(self.this) - val = wxImageListPtr(val) - return val - def GetPageImage(self,arg0): - val = windows2c.wxNotebook_GetPageImage(self.this,arg0) - return val - def SetPageImage(self,arg0,arg1): - val = windows2c.wxNotebook_SetPageImage(self.this,arg0,arg1) - return val - def GetRowCount(self): - val = windows2c.wxNotebook_GetRowCount(self.this) - return val - def DeletePage(self,arg0): - val = windows2c.wxNotebook_DeletePage(self.this,arg0) - return val - def RemovePage(self,arg0): - val = windows2c.wxNotebook_RemovePage(self.this,arg0) - return val - def DeleteAllPages(self): - val = windows2c.wxNotebook_DeleteAllPages(self.this) - return val - def AddPage(self,arg0,arg1,*args): - val = apply(windows2c.wxNotebook_AddPage,(self.this,arg0.this,arg1,)+args) - return val - def InsertPage(self,arg0,arg1,arg2,*args): - val = apply(windows2c.wxNotebook_InsertPage,(self.this,arg0,arg1.this,arg2,)+args) - return val - def GetPage(self,arg0): - val = windows2c.wxNotebook_GetPage(self.this,arg0) - return val - def ResizeChildren(self): - val = windows2c.wxNotebook_ResizeChildren(self.this) - return val - def __repr__(self): - return "" -class wxNotebook(wxNotebookPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows2c.new_wxNotebook,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxSplitterWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetBorderSize(self): - val = windows2c.wxSplitterWindow_GetBorderSize(self.this) - return val - def GetMinimumPaneSize(self): - val = windows2c.wxSplitterWindow_GetMinimumPaneSize(self.this) - return val - def GetSashPosition(self): - val = windows2c.wxSplitterWindow_GetSashPosition(self.this) - return val - def GetSashSize(self): - val = windows2c.wxSplitterWindow_GetSashSize(self.this) - return val - def GetSplitMode(self): - val = windows2c.wxSplitterWindow_GetSplitMode(self.this) - return val - def GetWindow1(self): - val = windows2c.wxSplitterWindow_GetWindow1(self.this) - val = wxWindowPtr(val) - return val - def GetWindow2(self): - val = windows2c.wxSplitterWindow_GetWindow2(self.this) - val = wxWindowPtr(val) - return val - def Initialize(self,arg0): - val = windows2c.wxSplitterWindow_Initialize(self.this,arg0.this) - return val - def IsSplit(self): - val = windows2c.wxSplitterWindow_IsSplit(self.this) - return val - def SetBorderSize(self,arg0): - val = windows2c.wxSplitterWindow_SetBorderSize(self.this,arg0) - return val - def SetSashPosition(self,arg0,*args): - val = apply(windows2c.wxSplitterWindow_SetSashPosition,(self.this,arg0,)+args) - return val - def SetSashSize(self,arg0): - val = windows2c.wxSplitterWindow_SetSashSize(self.this,arg0) - return val - def SetMinimumPaneSize(self,arg0): - val = windows2c.wxSplitterWindow_SetMinimumPaneSize(self.this,arg0) - return val - def SetSplitMode(self,arg0): - val = windows2c.wxSplitterWindow_SetSplitMode(self.this,arg0) - return val - def SplitHorizontally(self,arg0,arg1,*args): - val = apply(windows2c.wxSplitterWindow_SplitHorizontally,(self.this,arg0.this,arg1.this,)+args) - return val - def SplitVertically(self,arg0,arg1,*args): - val = apply(windows2c.wxSplitterWindow_SplitVertically,(self.this,arg0.this,arg1.this,)+args) - return val - def Unsplit(self,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows2c.wxSplitterWindow_Unsplit,(self.this,)+args) - return val - def __repr__(self): - return "" -class wxSplitterWindow(wxSplitterWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows2c.new_wxSplitterWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxTaskBarIconPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windows2c.delete_wxTaskBarIcon(self.this) - def SetIcon(self,arg0,*args): - val = apply(windows2c.wxTaskBarIcon_SetIcon,(self.this,arg0.this,)+args) - return val - def RemoveIcon(self): - val = windows2c.wxTaskBarIcon_RemoveIcon(self.this) - return val - def PopupMenu(self,arg0): - val = windows2c.wxTaskBarIcon_PopupMenu(self.this,arg0.this) - return val - def __repr__(self): - return "" -class wxTaskBarIcon(wxTaskBarIconPtr): - def __init__(self) : - self.this = windows2c.new_wxTaskBarIcon() - self.thisown = 1 - wx._checkForCallback(self, 'OnMouseMove', wxEVT_TASKBAR_MOVE) - wx._checkForCallback(self, 'OnLButtonDown', wxEVT_TASKBAR_LEFT_DOWN) - wx._checkForCallback(self, 'OnLButtonUp', wxEVT_TASKBAR_LEFT_UP) - wx._checkForCallback(self, 'OnRButtonDown', wxEVT_TASKBAR_RIGHT_DOWN) - wx._checkForCallback(self, 'OnRButtonUp', wxEVT_TASKBAR_RIGHT_UP) - wx._checkForCallback(self, 'OnLButtonDClick',wxEVT_TASKBAR_LEFT_DCLICK) - wx._checkForCallback(self, 'OnRButtonDClick',wxEVT_TASKBAR_RIGHT_DCLICK) - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxGRID_TEXT_CTRL = windows2c.wxGRID_TEXT_CTRL -wxGRID_HSCROLL = windows2c.wxGRID_HSCROLL -wxGRID_VSCROLL = windows2c.wxGRID_VSCROLL -wxEVT_GRID_SELECT_CELL = windows2c.wxEVT_GRID_SELECT_CELL -wxEVT_GRID_CREATE_CELL = windows2c.wxEVT_GRID_CREATE_CELL -wxEVT_GRID_CHANGE_LABELS = windows2c.wxEVT_GRID_CHANGE_LABELS -wxEVT_GRID_CHANGE_SEL_LABEL = windows2c.wxEVT_GRID_CHANGE_SEL_LABEL -wxEVT_GRID_CELL_CHANGE = windows2c.wxEVT_GRID_CELL_CHANGE -wxEVT_GRID_CELL_LCLICK = windows2c.wxEVT_GRID_CELL_LCLICK -wxEVT_GRID_CELL_RCLICK = windows2c.wxEVT_GRID_CELL_RCLICK -wxEVT_GRID_LABEL_LCLICK = windows2c.wxEVT_GRID_LABEL_LCLICK -wxEVT_GRID_LABEL_RCLICK = windows2c.wxEVT_GRID_LABEL_RCLICK -wxEVT_TASKBAR_MOVE = windows2c.wxEVT_TASKBAR_MOVE -wxEVT_TASKBAR_LEFT_DOWN = windows2c.wxEVT_TASKBAR_LEFT_DOWN -wxEVT_TASKBAR_LEFT_UP = windows2c.wxEVT_TASKBAR_LEFT_UP -wxEVT_TASKBAR_RIGHT_DOWN = windows2c.wxEVT_TASKBAR_RIGHT_DOWN -wxEVT_TASKBAR_RIGHT_UP = windows2c.wxEVT_TASKBAR_RIGHT_UP -wxEVT_TASKBAR_LEFT_DCLICK = windows2c.wxEVT_TASKBAR_LEFT_DCLICK -wxEVT_TASKBAR_RIGHT_DCLICK = windows2c.wxEVT_TASKBAR_RIGHT_DCLICK diff --git a/utils/wxPython/src/msw/windows3.cpp b/utils/wxPython/src/msw/windows3.cpp deleted file mode 100644 index 7beae7a312..0000000000 --- a/utils/wxPython/src/msw/windows3.cpp +++ /dev/null @@ -1,1936 +0,0 @@ -/* - * FILE : msw/windows3.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -extern void SWIG_MakePtr(char *, void *, char *); -extern void SWIG_RegisterMapping(char *, char *, void *(*)(void *)); -extern char *SWIG_GetPtr(char *, void **, char *); -extern void SWIG_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *)); -extern PyObject *SWIG_newvarlink(void); -#ifdef __cplusplus -} -#endif - -#define SWIG_init initwindows3c - -#define SWIG_name "windows3c" - -#include "helpers.h" -#include -#include - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; -static void *SwigwxSashEventTowxCommandEvent(void *ptr) { - wxSashEvent *src; - wxCommandEvent *dest; - src = (wxSashEvent *) ptr; - dest = (wxCommandEvent *) src; - return (void *) dest; -} - -static void *SwigwxSashEventTowxEvent(void *ptr) { - wxSashEvent *src; - wxEvent *dest; - src = (wxSashEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxSashEvent_SetEdge(_swigobj,_swigarg0) (_swigobj->SetEdge(_swigarg0)) -static PyObject *_wrap_wxSashEvent_SetEdge(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEvent * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashEvent_SetEdge",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetEdge. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashEvent_SetEdge(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashEvent_GetEdge(_swigobj) (_swigobj->GetEdge()) -static PyObject *_wrap_wxSashEvent_GetEdge(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEdgePosition _result; - wxSashEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashEvent_GetEdge",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_GetEdge. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashEdgePosition )wxSashEvent_GetEdge(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashEvent_SetDragRect(_swigobj,_swigarg0) (_swigobj->SetDragRect(_swigarg0)) -static PyObject *_wrap_wxSashEvent_SetDragRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEvent * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxSashEvent_SetDragRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetDragRect. Expected _wxSashEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSashEvent_SetDragRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashEvent_SetDragRect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashEvent_GetDragRect(_swigobj) (_swigobj->GetDragRect()) -static PyObject *_wrap_wxSashEvent_GetDragRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxSashEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashEvent_GetDragRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_GetDragRect. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxSashEvent_GetDragRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSashEvent_SetDragStatus(_swigobj,_swigarg0) (_swigobj->SetDragStatus(_swigarg0)) -static PyObject *_wrap_wxSashEvent_SetDragStatus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashEvent * _arg0; - wxSashDragStatus _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashEvent_SetDragStatus",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_SetDragStatus. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashEvent_SetDragStatus(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashEvent_GetDragStatus(_swigobj) (_swigobj->GetDragStatus()) -static PyObject *_wrap_wxSashEvent_GetDragStatus(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashDragStatus _result; - wxSashEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashEvent_GetDragStatus",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashEvent_GetDragStatus. Expected _wxSashEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashDragStatus )wxSashEvent_GetDragStatus(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxSashWindowTowxWindow(void *ptr) { - wxSashWindow *src; - wxWindow *dest; - src = (wxSashWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSashWindowTowxEvtHandler(void *ptr) { - wxSashWindow *src; - wxEvtHandler *dest; - src = (wxSashWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSashWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSashWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSashWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxCLIP_CHILDREN)|(wxSW_3D); - char * _arg5 = "sashWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxSashWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSashWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashWindow *)new_wxSashWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSashWindow_GetSashVisible(_swigobj,_swigarg0) (_swigobj->GetSashVisible(_swigarg0)) -static PyObject *_wrap_wxSashWindow_GetSashVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_GetSashVisible",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetSashVisible. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSashWindow_GetSashVisible(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetDefaultBorderSize(_swigobj) (_swigobj->GetDefaultBorderSize()) -static PyObject *_wrap_wxSashWindow_GetDefaultBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetDefaultBorderSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetDefaultBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetDefaultBorderSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetEdgeMargin(_swigobj,_swigarg0) (_swigobj->GetEdgeMargin(_swigarg0)) -static PyObject *_wrap_wxSashWindow_GetEdgeMargin(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_GetEdgeMargin",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetEdgeMargin. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetEdgeMargin(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetExtraBorderSize(_swigobj) (_swigobj->GetExtraBorderSize()) -static PyObject *_wrap_wxSashWindow_GetExtraBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetExtraBorderSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetExtraBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetExtraBorderSize(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMaximumSizeX(_swigobj) (_swigobj->GetMaximumSizeX()) -static PyObject *_wrap_wxSashWindow_GetMaximumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMaximumSizeX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMaximumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMaximumSizeX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMaximumSizeY(_swigobj) (_swigobj->GetMaximumSizeY()) -static PyObject *_wrap_wxSashWindow_GetMaximumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMaximumSizeY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMaximumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMaximumSizeY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMinimumSizeX(_swigobj) (_swigobj->GetMinimumSizeX()) -static PyObject *_wrap_wxSashWindow_GetMinimumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMinimumSizeX",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMinimumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMinimumSizeX(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_GetMinimumSizeY(_swigobj) (_swigobj->GetMinimumSizeY()) -static PyObject *_wrap_wxSashWindow_GetMinimumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxSashWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashWindow_GetMinimumSizeY",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_GetMinimumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxSashWindow_GetMinimumSizeY(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_HasBorder(_swigobj,_swigarg0) (_swigobj->HasBorder(_swigarg0)) -static PyObject *_wrap_wxSashWindow_HasBorder(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_HasBorder",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_HasBorder. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxSashWindow_HasBorder(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashWindow_SetDefaultBorderSize(_swigobj,_swigarg0) (_swigobj->SetDefaultBorderSize(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetDefaultBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetDefaultBorderSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetDefaultBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetDefaultBorderSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetExtraBorderSize(_swigobj,_swigarg0) (_swigobj->SetExtraBorderSize(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetExtraBorderSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetExtraBorderSize",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetExtraBorderSize. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetExtraBorderSize(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMaximumSizeX(_swigobj,_swigarg0) (_swigobj->SetMaximumSizeX(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMaximumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMaximumSizeX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMaximumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMaximumSizeX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMaximumSizeY(_swigobj,_swigarg0) (_swigobj->SetMaximumSizeY(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMaximumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMaximumSizeY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMaximumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMaximumSizeY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMinimumSizeX(_swigobj,_swigarg0) (_swigobj->SetMinimumSizeX(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMinimumSizeX(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMinimumSizeX",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMinimumSizeX. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMinimumSizeX(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetMinimumSizeY(_swigobj,_swigarg0) (_swigobj->SetMinimumSizeY(_swigarg0)) -static PyObject *_wrap_wxSashWindow_SetMinimumSizeY(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashWindow_SetMinimumSizeY",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetMinimumSizeY. Expected _wxSashWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetMinimumSizeY(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetSashVisible(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSashVisible(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSashWindow_SetSashVisible(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSashWindow_SetSashVisible",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetSashVisible. Expected _wxSashWindow_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetSashVisible(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashWindow_SetSashBorder(_swigobj,_swigarg0,_swigarg1) (_swigobj->SetSashBorder(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxSashWindow_SetSashBorder(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashWindow * _arg0; - wxSashEdgePosition _arg1; - bool _arg2; - char * _argc0 = 0; - int tempbool2; - - self = self; - if(!PyArg_ParseTuple(args,"sii:wxSashWindow_SetSashBorder",&_argc0,&_arg1,&tempbool2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashWindow_SetSashBorder. Expected _wxSashWindow_p."); - return NULL; - } - } - _arg2 = (bool ) tempbool2; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashWindow_SetSashBorder(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static void *SwigwxQueryLayoutInfoEventTowxEvent(void *ptr) { - wxQueryLayoutInfoEvent *src; - wxEvent *dest; - src = (wxQueryLayoutInfoEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxQueryLayoutInfoEvent_SetRequestedLength(_swigobj,_swigarg0) (_swigobj->SetRequestedLength(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetRequestedLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetRequestedLength",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetRequestedLength. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetRequestedLength(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetRequestedLength(_swigobj) (_swigobj->GetRequestedLength()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetRequestedLength(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetRequestedLength",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetRequestedLength. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxQueryLayoutInfoEvent_GetRequestedLength(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetFlags(_swigobj,_swigarg0) (_swigobj->SetFlags(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetFlags",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetFlags. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetFlags(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetFlags(_swigobj) (_swigobj->GetFlags()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetFlags",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetFlags. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxQueryLayoutInfoEvent_GetFlags(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetSize(_swigobj,_swigarg0) (_swigobj->SetSize(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxQueryLayoutInfoEvent_SetSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetSize. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxQueryLayoutInfoEvent_SetSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetSize(_swigobj) (_swigobj->GetSize()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSize * _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetSize",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetSize. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxSize (wxQueryLayoutInfoEvent_GetSize(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxSize_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetOrientation(_swigobj,_swigarg0) (_swigobj->SetOrientation(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - wxLayoutOrientation _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetOrientation",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetOrientation. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutOrientation _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetOrientation. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutOrientation )wxQueryLayoutInfoEvent_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_SetAlignment(_swigobj,_swigarg0) (_swigobj->SetAlignment(_swigarg0)) -static PyObject *_wrap_wxQueryLayoutInfoEvent_SetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxQueryLayoutInfoEvent * _arg0; - wxLayoutAlignment _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxQueryLayoutInfoEvent_SetAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_SetAlignment. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxQueryLayoutInfoEvent_SetAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxQueryLayoutInfoEvent_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxQueryLayoutInfoEvent_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlignment _result; - wxQueryLayoutInfoEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxQueryLayoutInfoEvent_GetAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxQueryLayoutInfoEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxQueryLayoutInfoEvent_GetAlignment. Expected _wxQueryLayoutInfoEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutAlignment )wxQueryLayoutInfoEvent_GetAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static void *SwigwxCalculateLayoutEventTowxEvent(void *ptr) { - wxCalculateLayoutEvent *src; - wxEvent *dest; - src = (wxCalculateLayoutEvent *) ptr; - dest = (wxEvent *) src; - return (void *) dest; -} - -#define wxCalculateLayoutEvent_SetFlags(_swigobj,_swigarg0) (_swigobj->SetFlags(_swigarg0)) -static PyObject *_wrap_wxCalculateLayoutEvent_SetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCalculateLayoutEvent * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxCalculateLayoutEvent_SetFlags",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_SetFlags. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCalculateLayoutEvent_SetFlags(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCalculateLayoutEvent_GetFlags(_swigobj) (_swigobj->GetFlags()) -static PyObject *_wrap_wxCalculateLayoutEvent_GetFlags(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxCalculateLayoutEvent * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCalculateLayoutEvent_GetFlags",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_GetFlags. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxCalculateLayoutEvent_GetFlags(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxCalculateLayoutEvent_SetRect(_swigobj,_swigarg0) (_swigobj->SetRect(_swigarg0)) -static PyObject *_wrap_wxCalculateLayoutEvent_SetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxCalculateLayoutEvent * _arg0; - wxRect * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxCalculateLayoutEvent_SetRect",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_SetRect. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxCalculateLayoutEvent_SetRect. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxCalculateLayoutEvent_SetRect(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxCalculateLayoutEvent_GetRect(_swigobj) (_swigobj->GetRect()) -static PyObject *_wrap_wxCalculateLayoutEvent_GetRect(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxRect * _result; - wxCalculateLayoutEvent * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxCalculateLayoutEvent_GetRect",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxCalculateLayoutEvent_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxCalculateLayoutEvent_GetRect. Expected _wxCalculateLayoutEvent_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxRect (wxCalculateLayoutEvent_GetRect(_arg0)); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (void *) _result,"_wxRect_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -static void *SwigwxSashLayoutWindowTowxSashWindow(void *ptr) { - wxSashLayoutWindow *src; - wxSashWindow *dest; - src = (wxSashLayoutWindow *) ptr; - dest = (wxSashWindow *) src; - return (void *) dest; -} - -static void *SwigwxSashLayoutWindowTowxWindow(void *ptr) { - wxSashLayoutWindow *src; - wxWindow *dest; - src = (wxSashLayoutWindow *) ptr; - dest = (wxWindow *) src; - return (void *) dest; -} - -static void *SwigwxSashLayoutWindowTowxEvtHandler(void *ptr) { - wxSashLayoutWindow *src; - wxEvtHandler *dest; - src = (wxSashLayoutWindow *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -#define new_wxSashLayoutWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5) (new wxSashLayoutWindow(_swigarg0,_swigarg1,_swigarg2,_swigarg3,_swigarg4,_swigarg5)) -static PyObject *_wrap_new_wxSashLayoutWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _result; - wxWindow * _arg0; - wxWindowID _arg1; - wxPoint * _arg2 = &wxPyDefaultPosition; - wxSize * _arg3 = &wxPyDefaultSize; - long _arg4 = (wxCLIP_CHILDREN)|(wxSW_3D); - char * _arg5 = "layoutWindow"; - char * _argc0 = 0; - char * _argc2 = 0; - char * _argc3 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"si|ssls:new_wxSashLayoutWindow",&_argc0,&_arg1,&_argc2,&_argc3,&_arg4,&_arg5)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of new_wxSashLayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of new_wxSashLayoutWindow. Expected _wxPoint_p."); - return NULL; - } - } - if (_argc3) { - if (SWIG_GetPtr(_argc3,(void **) &_arg3,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 4 of new_wxSashLayoutWindow. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxSashLayoutWindow *)new_wxSashLayoutWindow(_arg0,_arg1,*_arg2,*_arg3,_arg4,_arg5); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxSashLayoutWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxSashLayoutWindow_GetAlignment(_swigobj) (_swigobj->GetAlignment()) -static PyObject *_wrap_wxSashLayoutWindow_GetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlignment _result; - wxSashLayoutWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashLayoutWindow_GetAlignment",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_GetAlignment. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutAlignment )wxSashLayoutWindow_GetAlignment(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashLayoutWindow_GetOrientation(_swigobj) (_swigobj->GetOrientation()) -static PyObject *_wrap_wxSashLayoutWindow_GetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutOrientation _result; - wxSashLayoutWindow * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxSashLayoutWindow_GetOrientation",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_GetOrientation. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutOrientation )wxSashLayoutWindow_GetOrientation(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxSashLayoutWindow_SetAlignment(_swigobj,_swigarg0) (_swigobj->SetAlignment(_swigarg0)) -static PyObject *_wrap_wxSashLayoutWindow_SetAlignment(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _arg0; - wxLayoutAlignment _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashLayoutWindow_SetAlignment",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetAlignment. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashLayoutWindow_SetAlignment(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashLayoutWindow_SetDefaultSize(_swigobj,_swigarg0) (_swigobj->SetDefaultSize(_swigarg0)) -static PyObject *_wrap_wxSashLayoutWindow_SetDefaultSize(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _arg0; - wxSize * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxSashLayoutWindow_SetDefaultSize",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetDefaultSize. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxSashLayoutWindow_SetDefaultSize. Expected _wxSize_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashLayoutWindow_SetDefaultSize(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxSashLayoutWindow_SetOrientation(_swigobj,_swigarg0) (_swigobj->SetOrientation(_swigarg0)) -static PyObject *_wrap_wxSashLayoutWindow_SetOrientation(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxSashLayoutWindow * _arg0; - wxLayoutOrientation _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxSashLayoutWindow_SetOrientation",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxSashLayoutWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxSashLayoutWindow_SetOrientation. Expected _wxSashLayoutWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxSashLayoutWindow_SetOrientation(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define new_wxLayoutAlgorithm() (new wxLayoutAlgorithm()) -static PyObject *_wrap_new_wxLayoutAlgorithm(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlgorithm * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxLayoutAlgorithm")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxLayoutAlgorithm *)new_wxLayoutAlgorithm(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxLayoutAlgorithm_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define delete_wxLayoutAlgorithm(_swigobj) (delete _swigobj) -static PyObject *_wrap_delete_wxLayoutAlgorithm(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxLayoutAlgorithm * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:delete_wxLayoutAlgorithm",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of delete_wxLayoutAlgorithm. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - delete_wxLayoutAlgorithm(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxLayoutAlgorithm_LayoutMDIFrame(_swigobj,_swigarg0,_swigarg1) (_swigobj->LayoutMDIFrame(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxLayoutAlgorithm_LayoutMDIFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxLayoutAlgorithm * _arg0; - wxMDIParentFrame * _arg1; - wxRect * _arg2 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxLayoutAlgorithm_LayoutMDIFrame",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxMDIParentFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxMDIParentFrame_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxRect_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxLayoutAlgorithm_LayoutMDIFrame. Expected _wxRect_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxLayoutAlgorithm_LayoutMDIFrame(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxLayoutAlgorithm_LayoutFrame(_swigobj,_swigarg0,_swigarg1) (_swigobj->LayoutFrame(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxLayoutAlgorithm_LayoutFrame(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxLayoutAlgorithm * _arg0; - wxFrame * _arg1; - wxWindow * _arg2 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxLayoutAlgorithm_LayoutFrame",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutFrame. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxFrame_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutFrame. Expected _wxFrame_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxLayoutAlgorithm_LayoutFrame. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxLayoutAlgorithm_LayoutFrame(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxLayoutAlgorithm_LayoutWindow(_swigobj,_swigarg0,_swigarg1) (_swigobj->LayoutWindow(_swigarg0,_swigarg1)) -static PyObject *_wrap_wxLayoutAlgorithm_LayoutWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxLayoutAlgorithm * _arg0; - wxWindow * _arg1; - wxWindow * _arg2 = NULL; - char * _argc0 = 0; - char * _argc1 = 0; - char * _argc2 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss|s:wxLayoutAlgorithm_LayoutWindow",&_argc0,&_argc1,&_argc2)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxLayoutAlgorithm_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxLayoutAlgorithm_LayoutWindow. Expected _wxLayoutAlgorithm_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxLayoutAlgorithm_LayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } - if (_argc2) { - if (SWIG_GetPtr(_argc2,(void **) &_arg2,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 3 of wxLayoutAlgorithm_LayoutWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxLayoutAlgorithm_LayoutWindow(_arg0,_arg1,_arg2); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -static PyMethodDef windows3cMethods[] = { - { "wxLayoutAlgorithm_LayoutWindow", _wrap_wxLayoutAlgorithm_LayoutWindow, 1 }, - { "wxLayoutAlgorithm_LayoutFrame", _wrap_wxLayoutAlgorithm_LayoutFrame, 1 }, - { "wxLayoutAlgorithm_LayoutMDIFrame", _wrap_wxLayoutAlgorithm_LayoutMDIFrame, 1 }, - { "delete_wxLayoutAlgorithm", _wrap_delete_wxLayoutAlgorithm, 1 }, - { "new_wxLayoutAlgorithm", _wrap_new_wxLayoutAlgorithm, 1 }, - { "wxSashLayoutWindow_SetOrientation", _wrap_wxSashLayoutWindow_SetOrientation, 1 }, - { "wxSashLayoutWindow_SetDefaultSize", _wrap_wxSashLayoutWindow_SetDefaultSize, 1 }, - { "wxSashLayoutWindow_SetAlignment", _wrap_wxSashLayoutWindow_SetAlignment, 1 }, - { "wxSashLayoutWindow_GetOrientation", _wrap_wxSashLayoutWindow_GetOrientation, 1 }, - { "wxSashLayoutWindow_GetAlignment", _wrap_wxSashLayoutWindow_GetAlignment, 1 }, - { "new_wxSashLayoutWindow", _wrap_new_wxSashLayoutWindow, 1 }, - { "wxCalculateLayoutEvent_GetRect", _wrap_wxCalculateLayoutEvent_GetRect, 1 }, - { "wxCalculateLayoutEvent_SetRect", _wrap_wxCalculateLayoutEvent_SetRect, 1 }, - { "wxCalculateLayoutEvent_GetFlags", _wrap_wxCalculateLayoutEvent_GetFlags, 1 }, - { "wxCalculateLayoutEvent_SetFlags", _wrap_wxCalculateLayoutEvent_SetFlags, 1 }, - { "wxQueryLayoutInfoEvent_GetAlignment", _wrap_wxQueryLayoutInfoEvent_GetAlignment, 1 }, - { "wxQueryLayoutInfoEvent_SetAlignment", _wrap_wxQueryLayoutInfoEvent_SetAlignment, 1 }, - { "wxQueryLayoutInfoEvent_GetOrientation", _wrap_wxQueryLayoutInfoEvent_GetOrientation, 1 }, - { "wxQueryLayoutInfoEvent_SetOrientation", _wrap_wxQueryLayoutInfoEvent_SetOrientation, 1 }, - { "wxQueryLayoutInfoEvent_GetSize", _wrap_wxQueryLayoutInfoEvent_GetSize, 1 }, - { "wxQueryLayoutInfoEvent_SetSize", _wrap_wxQueryLayoutInfoEvent_SetSize, 1 }, - { "wxQueryLayoutInfoEvent_GetFlags", _wrap_wxQueryLayoutInfoEvent_GetFlags, 1 }, - { "wxQueryLayoutInfoEvent_SetFlags", _wrap_wxQueryLayoutInfoEvent_SetFlags, 1 }, - { "wxQueryLayoutInfoEvent_GetRequestedLength", _wrap_wxQueryLayoutInfoEvent_GetRequestedLength, 1 }, - { "wxQueryLayoutInfoEvent_SetRequestedLength", _wrap_wxQueryLayoutInfoEvent_SetRequestedLength, 1 }, - { "wxSashWindow_SetSashBorder", _wrap_wxSashWindow_SetSashBorder, 1 }, - { "wxSashWindow_SetSashVisible", _wrap_wxSashWindow_SetSashVisible, 1 }, - { "wxSashWindow_SetMinimumSizeY", _wrap_wxSashWindow_SetMinimumSizeY, 1 }, - { "wxSashWindow_SetMinimumSizeX", _wrap_wxSashWindow_SetMinimumSizeX, 1 }, - { "wxSashWindow_SetMaximumSizeY", _wrap_wxSashWindow_SetMaximumSizeY, 1 }, - { "wxSashWindow_SetMaximumSizeX", _wrap_wxSashWindow_SetMaximumSizeX, 1 }, - { "wxSashWindow_SetExtraBorderSize", _wrap_wxSashWindow_SetExtraBorderSize, 1 }, - { "wxSashWindow_SetDefaultBorderSize", _wrap_wxSashWindow_SetDefaultBorderSize, 1 }, - { "wxSashWindow_HasBorder", _wrap_wxSashWindow_HasBorder, 1 }, - { "wxSashWindow_GetMinimumSizeY", _wrap_wxSashWindow_GetMinimumSizeY, 1 }, - { "wxSashWindow_GetMinimumSizeX", _wrap_wxSashWindow_GetMinimumSizeX, 1 }, - { "wxSashWindow_GetMaximumSizeY", _wrap_wxSashWindow_GetMaximumSizeY, 1 }, - { "wxSashWindow_GetMaximumSizeX", _wrap_wxSashWindow_GetMaximumSizeX, 1 }, - { "wxSashWindow_GetExtraBorderSize", _wrap_wxSashWindow_GetExtraBorderSize, 1 }, - { "wxSashWindow_GetEdgeMargin", _wrap_wxSashWindow_GetEdgeMargin, 1 }, - { "wxSashWindow_GetDefaultBorderSize", _wrap_wxSashWindow_GetDefaultBorderSize, 1 }, - { "wxSashWindow_GetSashVisible", _wrap_wxSashWindow_GetSashVisible, 1 }, - { "new_wxSashWindow", _wrap_new_wxSashWindow, 1 }, - { "wxSashEvent_GetDragStatus", _wrap_wxSashEvent_GetDragStatus, 1 }, - { "wxSashEvent_SetDragStatus", _wrap_wxSashEvent_SetDragStatus, 1 }, - { "wxSashEvent_GetDragRect", _wrap_wxSashEvent_GetDragRect, 1 }, - { "wxSashEvent_SetDragRect", _wrap_wxSashEvent_SetDragRect, 1 }, - { "wxSashEvent_GetEdge", _wrap_wxSashEvent_GetEdge, 1 }, - { "wxSashEvent_SetEdge", _wrap_wxSashEvent_SetEdge, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwindows3c)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("windows3c", windows3cMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxSASH_TOP", PyInt_FromLong((long) wxSASH_TOP)); - PyDict_SetItemString(d,"wxSASH_RIGHT", PyInt_FromLong((long) wxSASH_RIGHT)); - PyDict_SetItemString(d,"wxSASH_BOTTOM", PyInt_FromLong((long) wxSASH_BOTTOM)); - PyDict_SetItemString(d,"wxSASH_LEFT", PyInt_FromLong((long) wxSASH_LEFT)); - PyDict_SetItemString(d,"wxSASH_NONE", PyInt_FromLong((long) wxSASH_NONE)); - PyDict_SetItemString(d,"wxEVT_SASH_DRAGGED", PyInt_FromLong((long) wxEVT_SASH_DRAGGED)); - PyDict_SetItemString(d,"wxSW_3D", PyInt_FromLong((long) wxSW_3D)); - PyDict_SetItemString(d,"wxSASH_STATUS_OK", PyInt_FromLong((long) wxSASH_STATUS_OK)); - PyDict_SetItemString(d,"wxSASH_STATUS_OUT_OF_RANGE", PyInt_FromLong((long) wxSASH_STATUS_OUT_OF_RANGE)); - PyDict_SetItemString(d,"wxLAYOUT_HORIZONTAL", PyInt_FromLong((long) wxLAYOUT_HORIZONTAL)); - PyDict_SetItemString(d,"wxLAYOUT_VERTICAL", PyInt_FromLong((long) wxLAYOUT_VERTICAL)); - PyDict_SetItemString(d,"wxLAYOUT_NONE", PyInt_FromLong((long) wxLAYOUT_NONE)); - PyDict_SetItemString(d,"wxLAYOUT_TOP", PyInt_FromLong((long) wxLAYOUT_TOP)); - PyDict_SetItemString(d,"wxLAYOUT_LEFT", PyInt_FromLong((long) wxLAYOUT_LEFT)); - PyDict_SetItemString(d,"wxLAYOUT_RIGHT", PyInt_FromLong((long) wxLAYOUT_RIGHT)); - PyDict_SetItemString(d,"wxLAYOUT_BOTTOM", PyInt_FromLong((long) wxLAYOUT_BOTTOM)); - PyDict_SetItemString(d,"wxEVT_QUERY_LAYOUT_INFO", PyInt_FromLong((long) wxEVT_QUERY_LAYOUT_INFO)); - PyDict_SetItemString(d,"wxEVT_CALCULATE_LAYOUT", PyInt_FromLong((long) wxEVT_CALCULATE_LAYOUT)); -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashWindow",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_class_wxSashEvent","_wxSashEvent",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSashLayoutWindow","_class_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxSashWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxSashWindow); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashWindow",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_class_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxCalculateLayoutEvent",SwigwxCalculateLayoutEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxQueryLayoutInfoEvent",SwigwxQueryLayoutInfoEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_class_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxSashEvent",SwigwxSashEventTowxEvent); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxSashLayoutWindow","_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxTaskBarIcon","_class_wxTaskBarIcon",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxSashEvent","_class_wxSashEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxTaskBarIcon","_wxTaskBarIcon",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_class_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxSashEvent",SwigwxSashEventTowxCommandEvent); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxSashWindow",SwigwxSashWindowTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_wxWindow","_class_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSashLayoutWindow",SwigwxSashLayoutWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_wxSashWindow",SwigwxSashWindowTowxWindow); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/msw/windows3.py b/utils/wxPython/src/msw/windows3.py deleted file mode 100644 index cf20a91997..0000000000 --- a/utils/wxPython/src/msw/windows3.py +++ /dev/null @@ -1,300 +0,0 @@ -# This file was created automatically by SWIG. -import windows3c - -from misc import * - -from gdi import * - -from windows import * - -from windows2 import * - -from controls import * - -from events import * - -from mdi import * - -from frames import * - -from stattool import * -import wx -class wxSashEventPtr(wxCommandEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetEdge(self,arg0): - val = windows3c.wxSashEvent_SetEdge(self.this,arg0) - return val - def GetEdge(self): - val = windows3c.wxSashEvent_GetEdge(self.this) - return val - def SetDragRect(self,arg0): - val = windows3c.wxSashEvent_SetDragRect(self.this,arg0.this) - return val - def GetDragRect(self): - val = windows3c.wxSashEvent_GetDragRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def SetDragStatus(self,arg0): - val = windows3c.wxSashEvent_SetDragStatus(self.this,arg0) - return val - def GetDragStatus(self): - val = windows3c.wxSashEvent_GetDragStatus(self.this) - return val - def __repr__(self): - return "" -class wxSashEvent(wxSashEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSashWindowPtr(wxWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetSashVisible(self,arg0): - val = windows3c.wxSashWindow_GetSashVisible(self.this,arg0) - return val - def GetDefaultBorderSize(self): - val = windows3c.wxSashWindow_GetDefaultBorderSize(self.this) - return val - def GetEdgeMargin(self,arg0): - val = windows3c.wxSashWindow_GetEdgeMargin(self.this,arg0) - return val - def GetExtraBorderSize(self): - val = windows3c.wxSashWindow_GetExtraBorderSize(self.this) - return val - def GetMaximumSizeX(self): - val = windows3c.wxSashWindow_GetMaximumSizeX(self.this) - return val - def GetMaximumSizeY(self): - val = windows3c.wxSashWindow_GetMaximumSizeY(self.this) - return val - def GetMinimumSizeX(self): - val = windows3c.wxSashWindow_GetMinimumSizeX(self.this) - return val - def GetMinimumSizeY(self): - val = windows3c.wxSashWindow_GetMinimumSizeY(self.this) - return val - def HasBorder(self,arg0): - val = windows3c.wxSashWindow_HasBorder(self.this,arg0) - return val - def SetDefaultBorderSize(self,arg0): - val = windows3c.wxSashWindow_SetDefaultBorderSize(self.this,arg0) - return val - def SetExtraBorderSize(self,arg0): - val = windows3c.wxSashWindow_SetExtraBorderSize(self.this,arg0) - return val - def SetMaximumSizeX(self,arg0): - val = windows3c.wxSashWindow_SetMaximumSizeX(self.this,arg0) - return val - def SetMaximumSizeY(self,arg0): - val = windows3c.wxSashWindow_SetMaximumSizeY(self.this,arg0) - return val - def SetMinimumSizeX(self,arg0): - val = windows3c.wxSashWindow_SetMinimumSizeX(self.this,arg0) - return val - def SetMinimumSizeY(self,arg0): - val = windows3c.wxSashWindow_SetMinimumSizeY(self.this,arg0) - return val - def SetSashVisible(self,arg0,arg1): - val = windows3c.wxSashWindow_SetSashVisible(self.this,arg0,arg1) - return val - def SetSashBorder(self,arg0,arg1): - val = windows3c.wxSashWindow_SetSashBorder(self.this,arg0,arg1) - return val - def __repr__(self): - return "" -class wxSashWindow(wxSashWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows3c.new_wxSashWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - - - - -class wxQueryLayoutInfoEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetRequestedLength(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetRequestedLength(self.this,arg0) - return val - def GetRequestedLength(self): - val = windows3c.wxQueryLayoutInfoEvent_GetRequestedLength(self.this) - return val - def SetFlags(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetFlags(self.this,arg0) - return val - def GetFlags(self): - val = windows3c.wxQueryLayoutInfoEvent_GetFlags(self.this) - return val - def SetSize(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetSize(self.this,arg0.this) - return val - def GetSize(self): - val = windows3c.wxQueryLayoutInfoEvent_GetSize(self.this) - val = wxSizePtr(val) - val.thisown = 1 - return val - def SetOrientation(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetOrientation(self.this,arg0) - return val - def GetOrientation(self): - val = windows3c.wxQueryLayoutInfoEvent_GetOrientation(self.this) - return val - def SetAlignment(self,arg0): - val = windows3c.wxQueryLayoutInfoEvent_SetAlignment(self.this,arg0) - return val - def GetAlignment(self): - val = windows3c.wxQueryLayoutInfoEvent_GetAlignment(self.this) - return val - def __repr__(self): - return "" -class wxQueryLayoutInfoEvent(wxQueryLayoutInfoEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxCalculateLayoutEventPtr(wxEventPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def SetFlags(self,arg0): - val = windows3c.wxCalculateLayoutEvent_SetFlags(self.this,arg0) - return val - def GetFlags(self): - val = windows3c.wxCalculateLayoutEvent_GetFlags(self.this) - return val - def SetRect(self,arg0): - val = windows3c.wxCalculateLayoutEvent_SetRect(self.this,arg0.this) - return val - def GetRect(self): - val = windows3c.wxCalculateLayoutEvent_GetRect(self.this) - val = wxRectPtr(val) - val.thisown = 1 - return val - def __repr__(self): - return "" -class wxCalculateLayoutEvent(wxCalculateLayoutEventPtr): - def __init__(self,this): - self.this = this - - - - -class wxSashLayoutWindowPtr(wxSashWindowPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetAlignment(self): - val = windows3c.wxSashLayoutWindow_GetAlignment(self.this) - return val - def GetOrientation(self): - val = windows3c.wxSashLayoutWindow_GetOrientation(self.this) - return val - def SetAlignment(self,arg0): - val = windows3c.wxSashLayoutWindow_SetAlignment(self.this,arg0) - return val - def SetDefaultSize(self,arg0): - val = windows3c.wxSashLayoutWindow_SetDefaultSize(self.this,arg0.this) - return val - def SetOrientation(self,arg0): - val = windows3c.wxSashLayoutWindow_SetOrientation(self.this,arg0) - return val - def __repr__(self): - return "" -class wxSashLayoutWindow(wxSashLayoutWindowPtr): - def __init__(self,arg0,arg1,*args) : - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - try: argl[1] = argl[1].this - except: pass - args = tuple(argl) - self.this = apply(windows3c.new_wxSashLayoutWindow,(arg0.this,arg1,)+args) - self.thisown = 1 - wx._StdWindowCallbacks(self) - wx._checkForCallback(self, 'OnCalculateLayout', wxEVT_CALCULATE_LAYOUT) - wx._checkForCallback(self, 'OnQueryLayoutInfo', wxEVT_QUERY_LAYOUT_INFO) - - - - -class wxLayoutAlgorithmPtr : - def __init__(self,this): - self.this = this - self.thisown = 0 - def __del__(self): - if self.thisown == 1 : - windows3c.delete_wxLayoutAlgorithm(self.this) - def LayoutMDIFrame(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows3c.wxLayoutAlgorithm_LayoutMDIFrame,(self.this,arg0.this,)+args) - return val - def LayoutFrame(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows3c.wxLayoutAlgorithm_LayoutFrame,(self.this,arg0.this,)+args) - return val - def LayoutWindow(self,arg0,*args): - argl = map(None,args) - try: argl[0] = argl[0].this - except: pass - args = tuple(argl) - val = apply(windows3c.wxLayoutAlgorithm_LayoutWindow,(self.this,arg0.this,)+args) - return val - def __repr__(self): - return "" -class wxLayoutAlgorithm(wxLayoutAlgorithmPtr): - def __init__(self) : - self.this = windows3c.new_wxLayoutAlgorithm() - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxSASH_TOP = windows3c.wxSASH_TOP -wxSASH_RIGHT = windows3c.wxSASH_RIGHT -wxSASH_BOTTOM = windows3c.wxSASH_BOTTOM -wxSASH_LEFT = windows3c.wxSASH_LEFT -wxSASH_NONE = windows3c.wxSASH_NONE -wxEVT_SASH_DRAGGED = windows3c.wxEVT_SASH_DRAGGED -wxSW_3D = windows3c.wxSW_3D -wxSASH_STATUS_OK = windows3c.wxSASH_STATUS_OK -wxSASH_STATUS_OUT_OF_RANGE = windows3c.wxSASH_STATUS_OUT_OF_RANGE -wxLAYOUT_HORIZONTAL = windows3c.wxLAYOUT_HORIZONTAL -wxLAYOUT_VERTICAL = windows3c.wxLAYOUT_VERTICAL -wxLAYOUT_NONE = windows3c.wxLAYOUT_NONE -wxLAYOUT_TOP = windows3c.wxLAYOUT_TOP -wxLAYOUT_LEFT = windows3c.wxLAYOUT_LEFT -wxLAYOUT_RIGHT = windows3c.wxLAYOUT_RIGHT -wxLAYOUT_BOTTOM = windows3c.wxLAYOUT_BOTTOM -wxEVT_QUERY_LAYOUT_INFO = windows3c.wxEVT_QUERY_LAYOUT_INFO -wxEVT_CALCULATE_LAYOUT = windows3c.wxEVT_CALCULATE_LAYOUT diff --git a/utils/wxPython/src/msw/wx.cpp b/utils/wxPython/src/msw/wx.cpp deleted file mode 100644 index 08dd75253e..0000000000 --- a/utils/wxPython/src/msw/wx.cpp +++ /dev/null @@ -1,2254 +0,0 @@ -/* - * FILE : msw/wx.cpp - * - * This file was automatically generated by : - * Simplified Wrapper and Interface Generator (SWIG) - * Version 1.1 (Patch 5) - * - * Portions Copyright (c) 1995-1998 - * The University of Utah and The Regents of the University of California. - * Permission is granted to distribute this file in any manner provided - * this notice remains intact. - * - * Do not make changes to this file--changes will be lost! - * - */ - - -#define SWIGCODE -/* Implementation : PYTHON */ - -#define SWIGPYTHON -#include -#include -/*********************************************************************** - * $Header$ - * swig_lib/python/python.cfg - * - * This file contains coded needed to add variable linking to the - * Python interpreter. C variables are added as a new kind of Python - * datatype. - * - * Also contains supporting code for building python under Windows - * and things like that. - * - * $Log$ - * Revision 1.10 1999/05/02 02:06:37 RD - * More for wxPython 2.0b9 (hopefully the last...) - * - ************************************************************************/ - -#ifdef __cplusplus -extern "C" { -#endif -#include "Python.h" -#ifdef __cplusplus -} -#endif - -/* Definitions for Windows/Unix exporting */ -#if defined(__WIN32__) -# if defined(_MSC_VER) -# define SWIGEXPORT(a,b) __declspec(dllexport) a b -# else -# if defined(__BORLANDC__) -# define SWIGEXPORT(a,b) a _export b -# else -# define SWIGEXPORT(a,b) a b -# endif -# endif -#else -# define SWIGEXPORT(a,b) a b -#endif - -#ifdef SWIG_GLOBAL -#ifdef __cplusplus -#define SWIGSTATIC extern "C" -#else -#define SWIGSTATIC -#endif -#endif - -#ifndef SWIGSTATIC -#define SWIGSTATIC static -#endif - -typedef struct { - char *name; - PyObject *(*get_attr)(void); - int (*set_attr)(PyObject *); -} swig_globalvar; - -typedef struct swig_varlinkobject { - PyObject_HEAD - swig_globalvar **vars; - int nvars; - int maxvars; -} swig_varlinkobject; - -/* ---------------------------------------------------------------------- - swig_varlink_repr() - - Function for python repr method - ---------------------------------------------------------------------- */ - -static PyObject * -swig_varlink_repr(swig_varlinkobject *v) -{ - v = v; - return PyString_FromString(""); -} - -/* --------------------------------------------------------------------- - swig_varlink_print() - - Print out all of the global variable names - --------------------------------------------------------------------- */ - -static int -swig_varlink_print(swig_varlinkobject *v, FILE *fp, int flags) -{ - - int i = 0; - flags = flags; - fprintf(fp,"Global variables { "); - while (v->vars[i]) { - fprintf(fp,"%s", v->vars[i]->name); - i++; - if (v->vars[i]) fprintf(fp,", "); - } - fprintf(fp," }\n"); - return 0; -} - -/* -------------------------------------------------------------------- - swig_varlink_getattr - - This function gets the value of a variable and returns it as a - PyObject. In our case, we'll be looking at the datatype and - converting into a number or string - -------------------------------------------------------------------- */ - -static PyObject * -swig_varlink_getattr(swig_varlinkobject *v, char *n) -{ - int i = 0; - char temp[128]; - - while (v->vars[i]) { - if (strcmp(v->vars[i]->name,n) == 0) { - return (*v->vars[i]->get_attr)(); - } - i++; - } - sprintf(temp,"C global variable %s not found.", n); - PyErr_SetString(PyExc_NameError,temp); - return NULL; -} - -/* ------------------------------------------------------------------- - swig_varlink_setattr() - - This function sets the value of a variable. - ------------------------------------------------------------------- */ - -static int -swig_varlink_setattr(swig_varlinkobject *v, char *n, PyObject *p) -{ - char temp[128]; - int i = 0; - while (v->vars[i]) { - if (strcmp(v->vars[i]->name,n) == 0) { - return (*v->vars[i]->set_attr)(p); - } - i++; - } - sprintf(temp,"C global variable %s not found.", n); - PyErr_SetString(PyExc_NameError,temp); - return 1; -} - -statichere PyTypeObject varlinktype = { -/* PyObject_HEAD_INIT(&PyType_Type) Note : This doesn't work on some machines */ - PyObject_HEAD_INIT(0) - 0, - "varlink", /* Type name */ - sizeof(swig_varlinkobject), /* Basic size */ - 0, /* Itemsize */ - 0, /* Deallocator */ - (printfunc) swig_varlink_print, /* Print */ - (getattrfunc) swig_varlink_getattr, /* get attr */ - (setattrfunc) swig_varlink_setattr, /* Set attr */ - 0, /* tp_compare */ - (reprfunc) swig_varlink_repr, /* tp_repr */ - 0, /* tp_as_number */ - 0, /* tp_as_mapping*/ - 0, /* tp_hash */ -}; - -/* Create a variable linking object for use later */ - -SWIGSTATIC PyObject * -SWIG_newvarlink(void) -{ - swig_varlinkobject *result = 0; - result = PyMem_NEW(swig_varlinkobject,1); - varlinktype.ob_type = &PyType_Type; /* Patch varlinktype into a PyType */ - result->ob_type = &varlinktype; - /* _Py_NewReference(result); Does not seem to be necessary */ - result->nvars = 0; - result->maxvars = 64; - result->vars = (swig_globalvar **) malloc(64*sizeof(swig_globalvar *)); - result->vars[0] = 0; - result->ob_refcnt = 0; - Py_XINCREF((PyObject *) result); - return ((PyObject*) result); -} - -SWIGSTATIC void -SWIG_addvarlink(PyObject *p, char *name, - PyObject *(*get_attr)(void), int (*set_attr)(PyObject *p)) -{ - swig_varlinkobject *v; - v= (swig_varlinkobject *) p; - - if (v->nvars >= v->maxvars -1) { - v->maxvars = 2*v->maxvars; - v->vars = (swig_globalvar **) realloc(v->vars,v->maxvars*sizeof(swig_globalvar *)); - if (v->vars == NULL) { - fprintf(stderr,"SWIG : Fatal error in initializing Python module.\n"); - exit(1); - } - } - v->vars[v->nvars] = (swig_globalvar *) malloc(sizeof(swig_globalvar)); - v->vars[v->nvars]->name = (char *) malloc(strlen(name)+1); - strcpy(v->vars[v->nvars]->name,name); - v->vars[v->nvars]->get_attr = get_attr; - v->vars[v->nvars]->set_attr = set_attr; - v->nvars++; - v->vars[v->nvars] = 0; -} - - - -/***************************************************************************** - * $Header$ - * - * swigptr.swg - * - * This file contains supporting code for the SWIG run-time type checking - * mechanism. The following functions are available : - * - * SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)); - * - * Registers a new type-mapping with the type-checker. origtype is the - * original datatype and newtype is an equivalent type. cast is optional - * pointer to a function to cast pointer values between types (this - * is typically used to cast pointers from derived classes to base classes in C++) - * - * SWIG_MakePtr(char *buffer, void *ptr, char *typestring); - * - * Makes a pointer string from a pointer and typestring. The result is returned - * in buffer which is assumed to hold enough space for the result. - * - * char * SWIG_GetPtr(char *buffer, void **ptr, char *type) - * - * Gets a pointer value from a string. If there is a type-mismatch, returns - * a character string to the received type. On success, returns NULL. - * - * - * You can remap these functions by making a file called "swigptr.swg" in - * your the same directory as the interface file you are wrapping. - * - * These functions are normally declared static, but this file can be - * can be used in a multi-module environment by redefining the symbol - * SWIGSTATIC. - *****************************************************************************/ - -#include - -#ifdef SWIG_GLOBAL -#ifdef __cplusplus -#define SWIGSTATIC extern "C" -#else -#define SWIGSTATIC -#endif -#endif - -#ifndef SWIGSTATIC -#define SWIGSTATIC static -#endif - - -/* SWIG pointer structure */ - -typedef struct SwigPtrType { - char *name; /* Datatype name */ - int len; /* Length (used for optimization) */ - void *(*cast)(void *); /* Pointer casting function */ - struct SwigPtrType *next; /* Linked list pointer */ -} SwigPtrType; - -/* Pointer cache structure */ - -typedef struct { - int stat; /* Status (valid) bit */ - SwigPtrType *tp; /* Pointer to type structure */ - char name[256]; /* Given datatype name */ - char mapped[256]; /* Equivalent name */ -} SwigCacheType; - -/* Some variables */ - -static int SwigPtrMax = 64; /* Max entries that can be currently held */ - /* This value may be adjusted dynamically */ -static int SwigPtrN = 0; /* Current number of entries */ -static int SwigPtrSort = 0; /* Status flag indicating sort */ -static int SwigStart[256]; /* Starting positions of types */ - -/* Pointer table */ -static SwigPtrType *SwigPtrTable = 0; /* Table containing pointer equivalences */ - -/* Cached values */ - -#define SWIG_CACHESIZE 8 -#define SWIG_CACHEMASK 0x7 -static SwigCacheType SwigCache[SWIG_CACHESIZE]; -static int SwigCacheIndex = 0; -static int SwigLastCache = 0; - -/* Sort comparison function */ -static int swigsort(const void *data1, const void *data2) { - SwigPtrType *d1 = (SwigPtrType *) data1; - SwigPtrType *d2 = (SwigPtrType *) data2; - return strcmp(d1->name,d2->name); -} - -/* Binary Search function */ -static int swigcmp(const void *key, const void *data) { - char *k = (char *) key; - SwigPtrType *d = (SwigPtrType *) data; - return strncmp(k,d->name,d->len); -} - -/* Register a new datatype with the type-checker */ - -SWIGSTATIC -void SWIG_RegisterMapping(char *origtype, char *newtype, void *(*cast)(void *)) { - - int i; - SwigPtrType *t = 0,*t1; - - /* Allocate the pointer table if necessary */ - - if (!SwigPtrTable) { - SwigPtrTable = (SwigPtrType *) malloc(SwigPtrMax*sizeof(SwigPtrType)); - SwigPtrN = 0; - } - /* Grow the table */ - if (SwigPtrN >= SwigPtrMax) { - SwigPtrMax = 2*SwigPtrMax; - SwigPtrTable = (SwigPtrType *) realloc((char *) SwigPtrTable,SwigPtrMax*sizeof(SwigPtrType)); - } - for (i = 0; i < SwigPtrN; i++) - if (strcmp(SwigPtrTable[i].name,origtype) == 0) { - t = &SwigPtrTable[i]; - break; - } - if (!t) { - t = &SwigPtrTable[SwigPtrN]; - t->name = origtype; - t->len = strlen(t->name); - t->cast = 0; - t->next = 0; - SwigPtrN++; - } - - /* Check for existing entry */ - - while (t->next) { - if ((strcmp(t->name,newtype) == 0)) { - if (cast) t->cast = cast; - return; - } - t = t->next; - } - - /* Now place entry (in sorted order) */ - - t1 = (SwigPtrType *) malloc(sizeof(SwigPtrType)); - t1->name = newtype; - t1->len = strlen(t1->name); - t1->cast = cast; - t1->next = 0; - t->next = t1; - SwigPtrSort = 0; -} - -/* Make a pointer value string */ - -SWIGSTATIC -void SWIG_MakePtr(char *_c, const void *_ptr, char *type) { - static char _hex[16] = - {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f'}; - unsigned long _p, _s; - char _result[20], *_r; /* Note : a 64-bit hex number = 16 digits */ - _r = _result; - _p = (unsigned long) _ptr; - if (_p > 0) { - while (_p > 0) { - _s = _p & 0xf; - *(_r++) = _hex[_s]; - _p = _p >> 4; - } - *_r = '_'; - while (_r >= _result) - *(_c++) = *(_r--); - } else { - strcpy (_c, "NULL"); - } - if (_ptr) - strcpy (_c, type); -} - -/* Define for backwards compatibility */ - -#define _swig_make_hex SWIG_MakePtr - -/* Function for getting a pointer value */ - -SWIGSTATIC -char *SWIG_GetPtr(char *_c, void **ptr, char *_t) -{ - unsigned long _p; - char temp_type[256]; - char *name; - int i, len; - SwigPtrType *sp,*tp; - SwigCacheType *cache; - int start, end; - _p = 0; - - /* Pointer values must start with leading underscore */ - if (*_c == '_') { - _c++; - /* Extract hex value from pointer */ - while (*_c) { - if ((*_c >= '0') && (*_c <= '9')) - _p = (_p << 4) + (*_c - '0'); - else if ((*_c >= 'a') && (*_c <= 'f')) - _p = (_p << 4) + ((*_c - 'a') + 10); - else - break; - _c++; - } - - if (_t) { - if (strcmp(_t,_c)) { - if (!SwigPtrSort) { - qsort((void *) SwigPtrTable, SwigPtrN, sizeof(SwigPtrType), swigsort); - for (i = 0; i < 256; i++) { - SwigStart[i] = SwigPtrN; - } - for (i = SwigPtrN-1; i >= 0; i--) { - SwigStart[(int) (SwigPtrTable[i].name[1])] = i; - } - for (i = 255; i >= 1; i--) { - if (SwigStart[i-1] > SwigStart[i]) - SwigStart[i-1] = SwigStart[i]; - } - SwigPtrSort = 1; - for (i = 0; i < SWIG_CACHESIZE; i++) - SwigCache[i].stat = 0; - } - - /* First check cache for matches. Uses last cache value as starting point */ - cache = &SwigCache[SwigLastCache]; - for (i = 0; i < SWIG_CACHESIZE; i++) { - if (cache->stat) { - if (strcmp(_t,cache->name) == 0) { - if (strcmp(_c,cache->mapped) == 0) { - cache->stat++; - *ptr = (void *) _p; - if (cache->tp->cast) *ptr = (*(cache->tp->cast))(*ptr); - return (char *) 0; - } - } - } - SwigLastCache = (SwigLastCache+1) & SWIG_CACHEMASK; - if (!SwigLastCache) cache = SwigCache; - else cache++; - } - /* We have a type mismatch. Will have to look through our type - mapping table to figure out whether or not we can accept this datatype */ - - start = SwigStart[(int) _t[1]]; - end = SwigStart[(int) _t[1]+1]; - sp = &SwigPtrTable[start]; - while (start < end) { - if (swigcmp(_t,sp) == 0) break; - sp++; - start++; - } - if (start >= end) sp = 0; - /* Try to find a match for this */ - if (sp) { - while (swigcmp(_t,sp) == 0) { - name = sp->name; - len = sp->len; - tp = sp->next; - /* Try to find entry for our given datatype */ - while(tp) { - if (tp->len >= 255) { - return _c; - } - strcpy(temp_type,tp->name); - strncat(temp_type,_t+len,255-tp->len); - if (strcmp(_c,temp_type) == 0) { - - strcpy(SwigCache[SwigCacheIndex].mapped,_c); - strcpy(SwigCache[SwigCacheIndex].name,_t); - SwigCache[SwigCacheIndex].stat = 1; - SwigCache[SwigCacheIndex].tp = tp; - SwigCacheIndex = SwigCacheIndex & SWIG_CACHEMASK; - - /* Get pointer value */ - *ptr = (void *) _p; - if (tp->cast) *ptr = (*(tp->cast))(*ptr); - return (char *) 0; - } - tp = tp->next; - } - sp++; - /* Hmmm. Didn't find it this time */ - } - } - /* Didn't find any sort of match for this data. - Get the pointer value and return the received type */ - *ptr = (void *) _p; - return _c; - } else { - /* Found a match on the first try. Return pointer value */ - *ptr = (void *) _p; - return (char *) 0; - } - } else { - /* No type specified. Good luck */ - *ptr = (void *) _p; - return (char *) 0; - } - } else { - if (strcmp (_c, "NULL") == 0) { - *ptr = (void *) 0; - return (char *) 0; - } - *ptr = (void *) 0; - return _c; - } -} - -/* Compatibility mode */ - -#define _swig_get_hex SWIG_GetPtr - -#define SWIG_init initwxc - -#define SWIG_name "wxc" - -#include "helpers.h" - -static PyObject* l_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyList_Check(target)) { - o2 = target; - target = PyList_New(0); - PyList_Append(target, o2); - Py_XDECREF(o2); - } - PyList_Append(target,o); - Py_XDECREF(o); - } - return target; -} - -static PyObject* t_output_helper(PyObject* target, PyObject* o) { - PyObject* o2; - PyObject* o3; - - if (!target) { - target = o; - } else if (target == Py_None) { - Py_DECREF(Py_None); - target = o; - } else { - if (!PyTuple_Check(target)) { - o2 = target; - target = PyTuple_New(1); - PyTuple_SetItem(target, 0, o2); - } - o3 = PyTuple_New(1); - PyTuple_SetItem(o3, 0, o); - - o2 = target; - target = PySequence_Concat(o2, o3); - Py_DECREF(o2); - Py_DECREF(o3); - } - return target; -} - - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - - -static char* wxStringErrorMsg = "string type is required for parameter"; - -extern "C" SWIGEXPORT(void,initwindowsc)(); -extern "C" SWIGEXPORT(void,initwindows2c)(); -extern "C" SWIGEXPORT(void,initeventsc)(); -extern "C" SWIGEXPORT(void,initmiscc)(); -extern "C" SWIGEXPORT(void,initgdic)(); -extern "C" SWIGEXPORT(void,initmdic)(); -extern "C" SWIGEXPORT(void,initcontrolsc)(); -extern "C" SWIGEXPORT(void,initcontrols2c)(); -extern "C" SWIGEXPORT(void,initcmndlgsc)(); -extern "C" SWIGEXPORT(void,initstattoolc)(); -extern "C" SWIGEXPORT(void,initframesc)(); -extern "C" SWIGEXPORT(void,initwindows3c)(); -extern "C" SWIGEXPORT(void,initimagec)(); -#ifndef SEPARATE -extern "C" SWIGEXPORT(void,initutilsc)(); -extern "C" SWIGEXPORT(void,initglcanvasc)(); -#endif -static int _wrap_wxPyDefaultPosition_set(PyObject *val) { - char * tval; - wxPoint * temp; - - tval = (char *) PyString_AsString(val); - if (PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError,"C variable 'wxPyDefaultPosition'(wxPoint *)"); - return 1; - } - if (tval) { - if (SWIG_GetPtr(tval,(void **) &temp,"_wxPoint_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in value of wxPyDefaultPosition. Expected _wxPoint_p."); - return 1; - } - } - wxPyDefaultPosition = *temp; - return 0; -} - -static PyObject *_wrap_wxPyDefaultPosition_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxPyDefaultPosition,"_wxPoint_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static int _wrap_wxPyDefaultSize_set(PyObject *val) { - char * tval; - wxSize * temp; - - tval = (char *) PyString_AsString(val); - if (PyErr_Occurred()) { - PyErr_SetString(PyExc_TypeError,"C variable 'wxPyDefaultSize'(wxSize *)"); - return 1; - } - if (tval) { - if (SWIG_GetPtr(tval,(void **) &temp,"_wxSize_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in value of wxPyDefaultSize. Expected _wxSize_p."); - return 1; - } - } - wxPyDefaultSize = *temp; - return 0; -} - -static PyObject *_wrap_wxPyDefaultSize_get() { - PyObject * pyobj; - char ptemp[128]; - - SWIG_MakePtr(ptemp,(char *) &wxPyDefaultSize,"_wxSize_p"); - pyobj = PyString_FromString(ptemp); - return pyobj; -} - -static void *SwigwxPyAppTowxEvtHandler(void *ptr) { - wxPyApp *src; - wxEvtHandler *dest; - src = (wxPyApp *) ptr; - dest = (wxEvtHandler *) src; - return (void *) dest; -} - -static wxPyApp *new_wxPyApp() { - wxPythonApp = new wxPyApp(); - return wxPythonApp; - } - -static PyObject *_wrap_new_wxPyApp(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _result; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,":new_wxPyApp")) - return NULL; -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxPyApp *)new_wxPyApp(); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxPyApp_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPyApp_GetAppName(_swigobj) (_swigobj->GetAppName()) -static PyObject *_wrap_wxPyApp_GetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetAppName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetAppName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxPyApp_GetAppName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxPyApp_GetAuto3D(_swigobj) (_swigobj->GetAuto3D()) -static PyObject *_wrap_wxPyApp_GetAuto3D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetAuto3D",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetAuto3D. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_GetAuto3D(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_GetClassName(_swigobj) (_swigobj->GetClassName()) -static PyObject *_wrap_wxPyApp_GetClassName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetClassName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetClassName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxPyApp_GetClassName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxPyApp_GetExitOnFrameDelete(_swigobj) (_swigobj->GetExitOnFrameDelete()) -static PyObject *_wrap_wxPyApp_GetExitOnFrameDelete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetExitOnFrameDelete",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetExitOnFrameDelete. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_GetExitOnFrameDelete(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_GetPrintMode(_swigobj) (_swigobj->GetPrintMode()) -static PyObject *_wrap_wxPyApp_GetPrintMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetPrintMode",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetPrintMode. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPyApp_GetPrintMode(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_GetTopWindow(_swigobj) (_swigobj->GetTopWindow()) -static PyObject *_wrap_wxPyApp_GetTopWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxWindow * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - char _ptemp[128]; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetTopWindow",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetTopWindow. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (wxWindow *)wxPyApp_GetTopWindow(_arg0); - - wxPy_END_ALLOW_THREADS; -} SWIG_MakePtr(_ptemp, (char *) _result,"_wxWindow_p"); - _resultobj = Py_BuildValue("s",_ptemp); - return _resultobj; -} - -#define wxPyApp_GetVendorName(_swigobj) (_swigobj->GetVendorName()) -static PyObject *_wrap_wxPyApp_GetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxString * _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_GetVendorName",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_GetVendorName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = new wxString (wxPyApp_GetVendorName(_arg0)); - - wxPy_END_ALLOW_THREADS; -}{ - _resultobj = PyString_FromString(WXSTRINGCAST *(_result)); -} -{ - delete _result; -} - return _resultobj; -} - -#define wxPyApp_Dispatch(_swigobj) (_swigobj->Dispatch()) -static PyObject *_wrap_wxPyApp_Dispatch(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_Dispatch",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_Dispatch. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_Dispatch(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_ExitMainLoop(_swigobj) (_swigobj->ExitMainLoop()) -static PyObject *_wrap_wxPyApp_ExitMainLoop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_ExitMainLoop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_ExitMainLoop. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_ExitMainLoop(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_Initialized(_swigobj) (_swigobj->Initialized()) -static PyObject *_wrap_wxPyApp_Initialized(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_Initialized",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_Initialized. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_Initialized(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_MainLoop(_swigobj) (_swigobj->MainLoop()) -static PyObject *_wrap_wxPyApp_MainLoop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - int _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_MainLoop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_MainLoop. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (int )wxPyApp_MainLoop(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_Pending(_swigobj) (_swigobj->Pending()) -static PyObject *_wrap_wxPyApp_Pending(PyObject *self, PyObject *args) { - PyObject * _resultobj; - bool _result; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_Pending",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_Pending. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - _result = (bool )wxPyApp_Pending(_arg0); - - wxPy_END_ALLOW_THREADS; -} _resultobj = Py_BuildValue("i",_result); - return _resultobj; -} - -#define wxPyApp_SetAppName(_swigobj,_swigarg0) (_swigobj->SetAppName(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetAppName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyApp_SetAppName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetAppName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetAppName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPyApp_SetAuto3D(_swigobj,_swigarg0) (_swigobj->SetAuto3D(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetAuto3D(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPyApp_SetAuto3D",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetAuto3D. Expected _wxPyApp_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetAuto3D(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetClassName(_swigobj,_swigarg0) (_swigobj->SetClassName(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetClassName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyApp_SetClassName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetClassName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetClassName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPyApp_SetExitOnFrameDelete(_swigobj,_swigarg0) (_swigobj->SetExitOnFrameDelete(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetExitOnFrameDelete(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - bool _arg1; - char * _argc0 = 0; - int tempbool1; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPyApp_SetExitOnFrameDelete",&_argc0,&tempbool1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetExitOnFrameDelete. Expected _wxPyApp_p."); - return NULL; - } - } - _arg1 = (bool ) tempbool1; -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetExitOnFrameDelete(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetPrintMode(_swigobj,_swigarg0) (_swigobj->SetPrintMode(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetPrintMode(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - int _arg1; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"si:wxPyApp_SetPrintMode",&_argc0,&_arg1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetPrintMode. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetPrintMode(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetTopWindow(_swigobj,_swigarg0) (_swigobj->SetTopWindow(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetTopWindow(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxWindow * _arg1; - char * _argc0 = 0; - char * _argc1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"ss:wxPyApp_SetTopWindow",&_argc0,&_argc1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetTopWindow. Expected _wxPyApp_p."); - return NULL; - } - } - if (_argc1) { - if (SWIG_GetPtr(_argc1,(void **) &_arg1,"_wxWindow_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxPyApp_SetTopWindow. Expected _wxWindow_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetTopWindow(_arg0,_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -#define wxPyApp_SetVendorName(_swigobj,_swigarg0) (_swigobj->SetVendorName(_swigarg0)) -static PyObject *_wrap_wxPyApp_SetVendorName(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - wxString * _arg1; - char * _argc0 = 0; - PyObject * _obj1 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"sO:wxPyApp_SetVendorName",&_argc0,&_obj1)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_SetVendorName. Expected _wxPyApp_p."); - return NULL; - } - } -{ - if (!PyString_Check(_obj1)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - _arg1 = new wxString(PyString_AsString(_obj1), PyString_Size(_obj1)); -} -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_SetVendorName(_arg0,*_arg1); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; -{ - if (_obj1) - delete _arg1; -} - return _resultobj; -} - -#define wxPyApp_AfterMainLoop(_swigobj) (_swigobj->AfterMainLoop()) -static PyObject *_wrap_wxPyApp_AfterMainLoop(PyObject *self, PyObject *args) { - PyObject * _resultobj; - wxPyApp * _arg0; - char * _argc0 = 0; - - self = self; - if(!PyArg_ParseTuple(args,"s:wxPyApp_AfterMainLoop",&_argc0)) - return NULL; - if (_argc0) { - if (SWIG_GetPtr(_argc0,(void **) &_arg0,"_wxPyApp_p")) { - PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxPyApp_AfterMainLoop. Expected _wxPyApp_p."); - return NULL; - } - } -{ - wxPy_BEGIN_ALLOW_THREADS; - wxPyApp_AfterMainLoop(_arg0); - - wxPy_END_ALLOW_THREADS; -} Py_INCREF(Py_None); - _resultobj = Py_None; - return _resultobj; -} - -static PyMethodDef wxcMethods[] = { - { "wxPyApp_AfterMainLoop", _wrap_wxPyApp_AfterMainLoop, 1 }, - { "wxPyApp_SetVendorName", _wrap_wxPyApp_SetVendorName, 1 }, - { "wxPyApp_SetTopWindow", _wrap_wxPyApp_SetTopWindow, 1 }, - { "wxPyApp_SetPrintMode", _wrap_wxPyApp_SetPrintMode, 1 }, - { "wxPyApp_SetExitOnFrameDelete", _wrap_wxPyApp_SetExitOnFrameDelete, 1 }, - { "wxPyApp_SetClassName", _wrap_wxPyApp_SetClassName, 1 }, - { "wxPyApp_SetAuto3D", _wrap_wxPyApp_SetAuto3D, 1 }, - { "wxPyApp_SetAppName", _wrap_wxPyApp_SetAppName, 1 }, - { "wxPyApp_Pending", _wrap_wxPyApp_Pending, 1 }, - { "wxPyApp_MainLoop", _wrap_wxPyApp_MainLoop, 1 }, - { "wxPyApp_Initialized", _wrap_wxPyApp_Initialized, 1 }, - { "wxPyApp_ExitMainLoop", _wrap_wxPyApp_ExitMainLoop, 1 }, - { "wxPyApp_Dispatch", _wrap_wxPyApp_Dispatch, 1 }, - { "wxPyApp_GetVendorName", _wrap_wxPyApp_GetVendorName, 1 }, - { "wxPyApp_GetTopWindow", _wrap_wxPyApp_GetTopWindow, 1 }, - { "wxPyApp_GetPrintMode", _wrap_wxPyApp_GetPrintMode, 1 }, - { "wxPyApp_GetExitOnFrameDelete", _wrap_wxPyApp_GetExitOnFrameDelete, 1 }, - { "wxPyApp_GetClassName", _wrap_wxPyApp_GetClassName, 1 }, - { "wxPyApp_GetAuto3D", _wrap_wxPyApp_GetAuto3D, 1 }, - { "wxPyApp_GetAppName", _wrap_wxPyApp_GetAppName, 1 }, - { "new_wxPyApp", _wrap_new_wxPyApp, 1 }, - { "_wxSetDictionary", __wxSetDictionary, 1 }, - { "_wxStart", __wxStart, 1 }, - { NULL, NULL } -}; -static PyObject *SWIG_globals; -#ifdef __cplusplus -extern "C" -#endif -SWIGEXPORT(void,initwxc)() { - PyObject *m, *d; - SWIG_globals = SWIG_newvarlink(); - m = Py_InitModule("wxc", wxcMethods); - d = PyModule_GetDict(m); - PyDict_SetItemString(d,"wxMAJOR_VERSION", PyInt_FromLong((long) wxMAJOR_VERSION)); - PyDict_SetItemString(d,"wxMINOR_VERSION", PyInt_FromLong((long) wxMINOR_VERSION)); - PyDict_SetItemString(d,"wxRELEASE_NUMBER", PyInt_FromLong((long) wxRELEASE_NUMBER)); - PyDict_SetItemString(d,"wxNOT_FOUND", PyInt_FromLong((long) wxNOT_FOUND)); - PyDict_SetItemString(d,"wxVSCROLL", PyInt_FromLong((long) wxVSCROLL)); - PyDict_SetItemString(d,"wxHSCROLL", PyInt_FromLong((long) wxHSCROLL)); - PyDict_SetItemString(d,"wxCAPTION", PyInt_FromLong((long) wxCAPTION)); - PyDict_SetItemString(d,"wxDOUBLE_BORDER", PyInt_FromLong((long) wxDOUBLE_BORDER)); - PyDict_SetItemString(d,"wxSUNKEN_BORDER", PyInt_FromLong((long) wxSUNKEN_BORDER)); - PyDict_SetItemString(d,"wxRAISED_BORDER", PyInt_FromLong((long) wxRAISED_BORDER)); - PyDict_SetItemString(d,"wxBORDER", PyInt_FromLong((long) wxBORDER)); - PyDict_SetItemString(d,"wxSIMPLE_BORDER", PyInt_FromLong((long) wxSIMPLE_BORDER)); - PyDict_SetItemString(d,"wxSTATIC_BORDER", PyInt_FromLong((long) wxSTATIC_BORDER)); - PyDict_SetItemString(d,"wxTRANSPARENT_WINDOW", PyInt_FromLong((long) wxTRANSPARENT_WINDOW)); - PyDict_SetItemString(d,"wxNO_BORDER", PyInt_FromLong((long) wxNO_BORDER)); - PyDict_SetItemString(d,"wxUSER_COLOURS", PyInt_FromLong((long) wxUSER_COLOURS)); - PyDict_SetItemString(d,"wxNO_3D", PyInt_FromLong((long) wxNO_3D)); - PyDict_SetItemString(d,"wxTAB_TRAVERSAL", PyInt_FromLong((long) wxTAB_TRAVERSAL)); - PyDict_SetItemString(d,"wxHORIZONTAL", PyInt_FromLong((long) wxHORIZONTAL)); - PyDict_SetItemString(d,"wxVERTICAL", PyInt_FromLong((long) wxVERTICAL)); - PyDict_SetItemString(d,"wxBOTH", PyInt_FromLong((long) wxBOTH)); - PyDict_SetItemString(d,"wxCENTER_FRAME", PyInt_FromLong((long) wxCENTER_FRAME)); - PyDict_SetItemString(d,"wxSTAY_ON_TOP", PyInt_FromLong((long) wxSTAY_ON_TOP)); - PyDict_SetItemString(d,"wxICONIZE", PyInt_FromLong((long) wxICONIZE)); - PyDict_SetItemString(d,"wxMINIMIZE", PyInt_FromLong((long) wxMINIMIZE)); - PyDict_SetItemString(d,"wxMAXIMIZE", PyInt_FromLong((long) wxMAXIMIZE)); - PyDict_SetItemString(d,"wxTHICK_FRAME", PyInt_FromLong((long) wxTHICK_FRAME)); - PyDict_SetItemString(d,"wxSYSTEM_MENU", PyInt_FromLong((long) wxSYSTEM_MENU)); - PyDict_SetItemString(d,"wxMINIMIZE_BOX", PyInt_FromLong((long) wxMINIMIZE_BOX)); - PyDict_SetItemString(d,"wxMAXIMIZE_BOX", PyInt_FromLong((long) wxMAXIMIZE_BOX)); - PyDict_SetItemString(d,"wxTINY_CAPTION_HORIZ", PyInt_FromLong((long) wxTINY_CAPTION_HORIZ)); - PyDict_SetItemString(d,"wxTINY_CAPTION_VERT", PyInt_FromLong((long) wxTINY_CAPTION_VERT)); - PyDict_SetItemString(d,"wxRESIZE_BOX", PyInt_FromLong((long) wxRESIZE_BOX)); - PyDict_SetItemString(d,"wxRESIZE_BORDER", PyInt_FromLong((long) wxRESIZE_BORDER)); - PyDict_SetItemString(d,"wxDIALOG_MODAL", PyInt_FromLong((long) wxDIALOG_MODAL)); - PyDict_SetItemString(d,"wxDIALOG_MODELESS", PyInt_FromLong((long) wxDIALOG_MODELESS)); - PyDict_SetItemString(d,"wxDEFAULT_FRAME_STYLE", PyInt_FromLong((long) wxDEFAULT_FRAME_STYLE)); - PyDict_SetItemString(d,"wxDEFAULT_DIALOG_STYLE", PyInt_FromLong((long) wxDEFAULT_DIALOG_STYLE)); - PyDict_SetItemString(d,"wxFRAME_TOOL_WINDOW", PyInt_FromLong((long) wxFRAME_TOOL_WINDOW)); - PyDict_SetItemString(d,"wxCLIP_CHILDREN", PyInt_FromLong((long) wxCLIP_CHILDREN)); - PyDict_SetItemString(d,"wxRETAINED", PyInt_FromLong((long) wxRETAINED)); - PyDict_SetItemString(d,"wxBACKINGSTORE", PyInt_FromLong((long) wxBACKINGSTORE)); - PyDict_SetItemString(d,"wxTB_3DBUTTONS", PyInt_FromLong((long) wxTB_3DBUTTONS)); - PyDict_SetItemString(d,"wxTB_HORIZONTAL", PyInt_FromLong((long) wxTB_HORIZONTAL)); - PyDict_SetItemString(d,"wxTB_VERTICAL", PyInt_FromLong((long) wxTB_VERTICAL)); - PyDict_SetItemString(d,"wxTB_FLAT", PyInt_FromLong((long) wxTB_FLAT)); - PyDict_SetItemString(d,"wxCOLOURED", PyInt_FromLong((long) wxCOLOURED)); - PyDict_SetItemString(d,"wxFIXED_LENGTH", PyInt_FromLong((long) wxFIXED_LENGTH)); - PyDict_SetItemString(d,"wxALIGN_LEFT", PyInt_FromLong((long) wxALIGN_LEFT)); - PyDict_SetItemString(d,"wxALIGN_CENTER", PyInt_FromLong((long) wxALIGN_CENTER)); - PyDict_SetItemString(d,"wxALIGN_CENTRE", PyInt_FromLong((long) wxALIGN_CENTRE)); - PyDict_SetItemString(d,"wxALIGN_RIGHT", PyInt_FromLong((long) wxALIGN_RIGHT)); - PyDict_SetItemString(d,"wxLB_NEEDED_SB", PyInt_FromLong((long) wxLB_NEEDED_SB)); - PyDict_SetItemString(d,"wxLB_ALWAYS_SB", PyInt_FromLong((long) wxLB_ALWAYS_SB)); - PyDict_SetItemString(d,"wxLB_SORT", PyInt_FromLong((long) wxLB_SORT)); - PyDict_SetItemString(d,"wxLB_SINGLE", PyInt_FromLong((long) wxLB_SINGLE)); - PyDict_SetItemString(d,"wxLB_MULTIPLE", PyInt_FromLong((long) wxLB_MULTIPLE)); - PyDict_SetItemString(d,"wxLB_EXTENDED", PyInt_FromLong((long) wxLB_EXTENDED)); - PyDict_SetItemString(d,"wxLB_OWNERDRAW", PyInt_FromLong((long) wxLB_OWNERDRAW)); - PyDict_SetItemString(d,"wxLB_HSCROLL", PyInt_FromLong((long) wxLB_HSCROLL)); - PyDict_SetItemString(d,"wxPROCESS_ENTER", PyInt_FromLong((long) wxPROCESS_ENTER)); - PyDict_SetItemString(d,"wxPASSWORD", PyInt_FromLong((long) wxPASSWORD)); - PyDict_SetItemString(d,"wxTE_PROCESS_ENTER", PyInt_FromLong((long) wxTE_PROCESS_ENTER)); - PyDict_SetItemString(d,"wxTE_PASSWORD", PyInt_FromLong((long) wxTE_PASSWORD)); - PyDict_SetItemString(d,"wxTE_READONLY", PyInt_FromLong((long) wxTE_READONLY)); - PyDict_SetItemString(d,"wxTE_MULTILINE", PyInt_FromLong((long) wxTE_MULTILINE)); - PyDict_SetItemString(d,"wxCB_SIMPLE", PyInt_FromLong((long) wxCB_SIMPLE)); - PyDict_SetItemString(d,"wxCB_DROPDOWN", PyInt_FromLong((long) wxCB_DROPDOWN)); - PyDict_SetItemString(d,"wxCB_SORT", PyInt_FromLong((long) wxCB_SORT)); - PyDict_SetItemString(d,"wxCB_READONLY", PyInt_FromLong((long) wxCB_READONLY)); - PyDict_SetItemString(d,"wxRA_HORIZONTAL", PyInt_FromLong((long) wxRA_HORIZONTAL)); - PyDict_SetItemString(d,"wxRA_VERTICAL", PyInt_FromLong((long) wxRA_VERTICAL)); - PyDict_SetItemString(d,"wxRA_SPECIFY_ROWS", PyInt_FromLong((long) wxRA_SPECIFY_ROWS)); - PyDict_SetItemString(d,"wxRA_SPECIFY_COLS", PyInt_FromLong((long) wxRA_SPECIFY_COLS)); - PyDict_SetItemString(d,"wxRB_GROUP", PyInt_FromLong((long) wxRB_GROUP)); - PyDict_SetItemString(d,"wxGA_PROGRESSBAR", PyInt_FromLong((long) wxGA_PROGRESSBAR)); - PyDict_SetItemString(d,"wxGA_HORIZONTAL", PyInt_FromLong((long) wxGA_HORIZONTAL)); - PyDict_SetItemString(d,"wxGA_VERTICAL", PyInt_FromLong((long) wxGA_VERTICAL)); - PyDict_SetItemString(d,"wxSL_HORIZONTAL", PyInt_FromLong((long) wxSL_HORIZONTAL)); - PyDict_SetItemString(d,"wxSL_VERTICAL", PyInt_FromLong((long) wxSL_VERTICAL)); - PyDict_SetItemString(d,"wxSL_AUTOTICKS", PyInt_FromLong((long) wxSL_AUTOTICKS)); - PyDict_SetItemString(d,"wxSL_LABELS", PyInt_FromLong((long) wxSL_LABELS)); - PyDict_SetItemString(d,"wxSL_LEFT", PyInt_FromLong((long) wxSL_LEFT)); - PyDict_SetItemString(d,"wxSL_TOP", PyInt_FromLong((long) wxSL_TOP)); - PyDict_SetItemString(d,"wxSL_RIGHT", PyInt_FromLong((long) wxSL_RIGHT)); - PyDict_SetItemString(d,"wxSL_BOTTOM", PyInt_FromLong((long) wxSL_BOTTOM)); - PyDict_SetItemString(d,"wxSL_BOTH", PyInt_FromLong((long) wxSL_BOTH)); - PyDict_SetItemString(d,"wxSL_SELRANGE", PyInt_FromLong((long) wxSL_SELRANGE)); - PyDict_SetItemString(d,"wxSB_HORIZONTAL", PyInt_FromLong((long) wxSB_HORIZONTAL)); - PyDict_SetItemString(d,"wxSB_VERTICAL", PyInt_FromLong((long) wxSB_VERTICAL)); - PyDict_SetItemString(d,"wxST_SIZEGRIP", PyInt_FromLong((long) wxST_SIZEGRIP)); - PyDict_SetItemString(d,"wxBU_AUTODRAW", PyInt_FromLong((long) wxBU_AUTODRAW)); - PyDict_SetItemString(d,"wxBU_NOAUTODRAW", PyInt_FromLong((long) wxBU_NOAUTODRAW)); - PyDict_SetItemString(d,"wxTR_HAS_BUTTONS", PyInt_FromLong((long) wxTR_HAS_BUTTONS)); - PyDict_SetItemString(d,"wxTR_EDIT_LABELS", PyInt_FromLong((long) wxTR_EDIT_LABELS)); - PyDict_SetItemString(d,"wxTR_LINES_AT_ROOT", PyInt_FromLong((long) wxTR_LINES_AT_ROOT)); - PyDict_SetItemString(d,"wxLC_ICON", PyInt_FromLong((long) wxLC_ICON)); - PyDict_SetItemString(d,"wxLC_SMALL_ICON", PyInt_FromLong((long) wxLC_SMALL_ICON)); - PyDict_SetItemString(d,"wxLC_LIST", PyInt_FromLong((long) wxLC_LIST)); - PyDict_SetItemString(d,"wxLC_REPORT", PyInt_FromLong((long) wxLC_REPORT)); - PyDict_SetItemString(d,"wxLC_ALIGN_TOP", PyInt_FromLong((long) wxLC_ALIGN_TOP)); - PyDict_SetItemString(d,"wxLC_ALIGN_LEFT", PyInt_FromLong((long) wxLC_ALIGN_LEFT)); - PyDict_SetItemString(d,"wxLC_AUTOARRANGE", PyInt_FromLong((long) wxLC_AUTOARRANGE)); - PyDict_SetItemString(d,"wxLC_USER_TEXT", PyInt_FromLong((long) wxLC_USER_TEXT)); - PyDict_SetItemString(d,"wxLC_EDIT_LABELS", PyInt_FromLong((long) wxLC_EDIT_LABELS)); - PyDict_SetItemString(d,"wxLC_NO_HEADER", PyInt_FromLong((long) wxLC_NO_HEADER)); - PyDict_SetItemString(d,"wxLC_NO_SORT_HEADER", PyInt_FromLong((long) wxLC_NO_SORT_HEADER)); - PyDict_SetItemString(d,"wxLC_SINGLE_SEL", PyInt_FromLong((long) wxLC_SINGLE_SEL)); - PyDict_SetItemString(d,"wxLC_SORT_ASCENDING", PyInt_FromLong((long) wxLC_SORT_ASCENDING)); - PyDict_SetItemString(d,"wxLC_SORT_DESCENDING", PyInt_FromLong((long) wxLC_SORT_DESCENDING)); - PyDict_SetItemString(d,"wxLC_MASK_TYPE", PyInt_FromLong((long) wxLC_MASK_TYPE)); - PyDict_SetItemString(d,"wxLC_MASK_ALIGN", PyInt_FromLong((long) wxLC_MASK_ALIGN)); - PyDict_SetItemString(d,"wxLC_MASK_SORT", PyInt_FromLong((long) wxLC_MASK_SORT)); - PyDict_SetItemString(d,"wxSP_VERTICAL", PyInt_FromLong((long) wxSP_VERTICAL)); - PyDict_SetItemString(d,"wxSP_HORIZONTAL", PyInt_FromLong((long) wxSP_HORIZONTAL)); - PyDict_SetItemString(d,"wxSP_ARROW_KEYS", PyInt_FromLong((long) wxSP_ARROW_KEYS)); - PyDict_SetItemString(d,"wxSP_WRAP", PyInt_FromLong((long) wxSP_WRAP)); - PyDict_SetItemString(d,"wxSP_NOBORDER", PyInt_FromLong((long) wxSP_NOBORDER)); - PyDict_SetItemString(d,"wxSP_3D", PyInt_FromLong((long) wxSP_3D)); - PyDict_SetItemString(d,"wxSP_BORDER", PyInt_FromLong((long) wxSP_BORDER)); - PyDict_SetItemString(d,"wxFLOOD_SURFACE", PyInt_FromLong((long) wxFLOOD_SURFACE)); - PyDict_SetItemString(d,"wxFLOOD_BORDER", PyInt_FromLong((long) wxFLOOD_BORDER)); - PyDict_SetItemString(d,"wxODDEVEN_RULE", PyInt_FromLong((long) wxODDEVEN_RULE)); - PyDict_SetItemString(d,"wxWINDING_RULE", PyInt_FromLong((long) wxWINDING_RULE)); - PyDict_SetItemString(d,"wxTOOL_TOP", PyInt_FromLong((long) wxTOOL_TOP)); - PyDict_SetItemString(d,"wxTOOL_BOTTOM", PyInt_FromLong((long) wxTOOL_BOTTOM)); - PyDict_SetItemString(d,"wxTOOL_LEFT", PyInt_FromLong((long) wxTOOL_LEFT)); - PyDict_SetItemString(d,"wxTOOL_RIGHT", PyInt_FromLong((long) wxTOOL_RIGHT)); - PyDict_SetItemString(d,"wxOK", PyInt_FromLong((long) wxOK)); - PyDict_SetItemString(d,"wxYES_NO", PyInt_FromLong((long) wxYES_NO)); - PyDict_SetItemString(d,"wxCANCEL", PyInt_FromLong((long) wxCANCEL)); - PyDict_SetItemString(d,"wxYES", PyInt_FromLong((long) wxYES)); - PyDict_SetItemString(d,"wxNO", PyInt_FromLong((long) wxNO)); - PyDict_SetItemString(d,"wxICON_EXCLAMATION", PyInt_FromLong((long) wxICON_EXCLAMATION)); - PyDict_SetItemString(d,"wxICON_HAND", PyInt_FromLong((long) wxICON_HAND)); - PyDict_SetItemString(d,"wxICON_QUESTION", PyInt_FromLong((long) wxICON_QUESTION)); - PyDict_SetItemString(d,"wxICON_INFORMATION", PyInt_FromLong((long) wxICON_INFORMATION)); - PyDict_SetItemString(d,"wxICON_STOP", PyInt_FromLong((long) wxICON_STOP)); - PyDict_SetItemString(d,"wxICON_ASTERISK", PyInt_FromLong((long) wxICON_ASTERISK)); - PyDict_SetItemString(d,"wxICON_MASK", PyInt_FromLong((long) wxICON_MASK)); - PyDict_SetItemString(d,"wxCENTRE", PyInt_FromLong((long) wxCENTRE)); - PyDict_SetItemString(d,"wxCENTER", PyInt_FromLong((long) wxCENTER)); - PyDict_SetItemString(d,"wxSIZE_AUTO_WIDTH", PyInt_FromLong((long) wxSIZE_AUTO_WIDTH)); - PyDict_SetItemString(d,"wxSIZE_AUTO_HEIGHT", PyInt_FromLong((long) wxSIZE_AUTO_HEIGHT)); - PyDict_SetItemString(d,"wxSIZE_AUTO", PyInt_FromLong((long) wxSIZE_AUTO)); - PyDict_SetItemString(d,"wxSIZE_USE_EXISTING", PyInt_FromLong((long) wxSIZE_USE_EXISTING)); - PyDict_SetItemString(d,"wxSIZE_ALLOW_MINUS_ONE", PyInt_FromLong((long) wxSIZE_ALLOW_MINUS_ONE)); - PyDict_SetItemString(d,"wxDF_TEXT", PyInt_FromLong((long) wxDF_TEXT)); - PyDict_SetItemString(d,"wxDF_BITMAP", PyInt_FromLong((long) wxDF_BITMAP)); - PyDict_SetItemString(d,"wxDF_METAFILE", PyInt_FromLong((long) wxDF_METAFILE)); - PyDict_SetItemString(d,"wxDF_DIB", PyInt_FromLong((long) wxDF_DIB)); - PyDict_SetItemString(d,"wxDF_OEMTEXT", PyInt_FromLong((long) wxDF_OEMTEXT)); - PyDict_SetItemString(d,"wxDF_FILENAME", PyInt_FromLong((long) wxDF_FILENAME)); - PyDict_SetItemString(d,"wxPORTRAIT", PyInt_FromLong((long) wxPORTRAIT)); - PyDict_SetItemString(d,"wxLANDSCAPE", PyInt_FromLong((long) wxLANDSCAPE)); - PyDict_SetItemString(d,"wxID_OPEN", PyInt_FromLong((long) wxID_OPEN)); - PyDict_SetItemString(d,"wxID_CLOSE", PyInt_FromLong((long) wxID_CLOSE)); - PyDict_SetItemString(d,"wxID_NEW", PyInt_FromLong((long) wxID_NEW)); - PyDict_SetItemString(d,"wxID_SAVE", PyInt_FromLong((long) wxID_SAVE)); - PyDict_SetItemString(d,"wxID_SAVEAS", PyInt_FromLong((long) wxID_SAVEAS)); - PyDict_SetItemString(d,"wxID_REVERT", PyInt_FromLong((long) wxID_REVERT)); - PyDict_SetItemString(d,"wxID_EXIT", PyInt_FromLong((long) wxID_EXIT)); - PyDict_SetItemString(d,"wxID_UNDO", PyInt_FromLong((long) wxID_UNDO)); - PyDict_SetItemString(d,"wxID_REDO", PyInt_FromLong((long) wxID_REDO)); - PyDict_SetItemString(d,"wxID_HELP", PyInt_FromLong((long) wxID_HELP)); - PyDict_SetItemString(d,"wxID_PRINT", PyInt_FromLong((long) wxID_PRINT)); - PyDict_SetItemString(d,"wxID_PRINT_SETUP", PyInt_FromLong((long) wxID_PRINT_SETUP)); - PyDict_SetItemString(d,"wxID_PREVIEW", PyInt_FromLong((long) wxID_PREVIEW)); - PyDict_SetItemString(d,"wxID_ABOUT", PyInt_FromLong((long) wxID_ABOUT)); - PyDict_SetItemString(d,"wxID_HELP_CONTENTS", PyInt_FromLong((long) wxID_HELP_CONTENTS)); - PyDict_SetItemString(d,"wxID_HELP_COMMANDS", PyInt_FromLong((long) wxID_HELP_COMMANDS)); - PyDict_SetItemString(d,"wxID_HELP_PROCEDURES", PyInt_FromLong((long) wxID_HELP_PROCEDURES)); - PyDict_SetItemString(d,"wxID_HELP_CONTEXT", PyInt_FromLong((long) wxID_HELP_CONTEXT)); - PyDict_SetItemString(d,"wxID_CUT", PyInt_FromLong((long) wxID_CUT)); - PyDict_SetItemString(d,"wxID_COPY", PyInt_FromLong((long) wxID_COPY)); - PyDict_SetItemString(d,"wxID_PASTE", PyInt_FromLong((long) wxID_PASTE)); - PyDict_SetItemString(d,"wxID_CLEAR", PyInt_FromLong((long) wxID_CLEAR)); - PyDict_SetItemString(d,"wxID_FIND", PyInt_FromLong((long) wxID_FIND)); - PyDict_SetItemString(d,"wxID_FILE1", PyInt_FromLong((long) wxID_FILE1)); - PyDict_SetItemString(d,"wxID_FILE2", PyInt_FromLong((long) wxID_FILE2)); - PyDict_SetItemString(d,"wxID_FILE3", PyInt_FromLong((long) wxID_FILE3)); - PyDict_SetItemString(d,"wxID_FILE4", PyInt_FromLong((long) wxID_FILE4)); - PyDict_SetItemString(d,"wxID_FILE5", PyInt_FromLong((long) wxID_FILE5)); - PyDict_SetItemString(d,"wxID_FILE6", PyInt_FromLong((long) wxID_FILE6)); - PyDict_SetItemString(d,"wxID_FILE7", PyInt_FromLong((long) wxID_FILE7)); - PyDict_SetItemString(d,"wxID_FILE8", PyInt_FromLong((long) wxID_FILE8)); - PyDict_SetItemString(d,"wxID_FILE9", PyInt_FromLong((long) wxID_FILE9)); - PyDict_SetItemString(d,"wxID_OK", PyInt_FromLong((long) wxID_OK)); - PyDict_SetItemString(d,"wxID_CANCEL", PyInt_FromLong((long) wxID_CANCEL)); - PyDict_SetItemString(d,"wxID_APPLY", PyInt_FromLong((long) wxID_APPLY)); - PyDict_SetItemString(d,"wxID_YES", PyInt_FromLong((long) wxID_YES)); - PyDict_SetItemString(d,"wxID_NO", PyInt_FromLong((long) wxID_NO)); - PyDict_SetItemString(d,"wxID_STATIC", PyInt_FromLong((long) wxID_STATIC)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_BMP", PyInt_FromLong((long) wxBITMAP_TYPE_BMP)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_BMP_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_BMP_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_ICO", PyInt_FromLong((long) wxBITMAP_TYPE_ICO)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_ICO_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_ICO_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_CUR", PyInt_FromLong((long) wxBITMAP_TYPE_CUR)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_CUR_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_CUR_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XBM", PyInt_FromLong((long) wxBITMAP_TYPE_XBM)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XBM_DATA", PyInt_FromLong((long) wxBITMAP_TYPE_XBM_DATA)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XPM", PyInt_FromLong((long) wxBITMAP_TYPE_XPM)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_XPM_DATA", PyInt_FromLong((long) wxBITMAP_TYPE_XPM_DATA)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_TIF", PyInt_FromLong((long) wxBITMAP_TYPE_TIF)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_TIF_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_TIF_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_GIF", PyInt_FromLong((long) wxBITMAP_TYPE_GIF)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_GIF_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_GIF_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_PNG", PyInt_FromLong((long) wxBITMAP_TYPE_PNG)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_PNG_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_PNG_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_ANY", PyInt_FromLong((long) wxBITMAP_TYPE_ANY)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_RESOURCE", PyInt_FromLong((long) wxBITMAP_TYPE_RESOURCE)); - PyDict_SetItemString(d,"wxBITMAP_TYPE_JPEG", PyInt_FromLong((long) wxBITMAP_TYPE_JPEG)); - PyDict_SetItemString(d,"wxOPEN", PyInt_FromLong((long) wxOPEN)); - PyDict_SetItemString(d,"wxSAVE", PyInt_FromLong((long) wxSAVE)); - PyDict_SetItemString(d,"wxHIDE_READONLY", PyInt_FromLong((long) wxHIDE_READONLY)); - PyDict_SetItemString(d,"wxOVERWRITE_PROMPT", PyInt_FromLong((long) wxOVERWRITE_PROMPT)); - PyDict_SetItemString(d,"wxACCEL_ALT", PyInt_FromLong((long) wxACCEL_ALT)); - PyDict_SetItemString(d,"wxACCEL_CTRL", PyInt_FromLong((long) wxACCEL_CTRL)); - PyDict_SetItemString(d,"wxACCEL_SHIFT", PyInt_FromLong((long) wxACCEL_SHIFT)); - PyDict_SetItemString(d,"wxDEFAULT", PyInt_FromLong((long) wxDEFAULT)); - PyDict_SetItemString(d,"wxDECORATIVE", PyInt_FromLong((long) wxDECORATIVE)); - PyDict_SetItemString(d,"wxROMAN", PyInt_FromLong((long) wxROMAN)); - PyDict_SetItemString(d,"wxSCRIPT", PyInt_FromLong((long) wxSCRIPT)); - PyDict_SetItemString(d,"wxSWISS", PyInt_FromLong((long) wxSWISS)); - PyDict_SetItemString(d,"wxMODERN", PyInt_FromLong((long) wxMODERN)); - PyDict_SetItemString(d,"wxTELETYPE", PyInt_FromLong((long) wxTELETYPE)); - PyDict_SetItemString(d,"wxVARIABLE", PyInt_FromLong((long) wxVARIABLE)); - PyDict_SetItemString(d,"wxFIXED", PyInt_FromLong((long) wxFIXED)); - PyDict_SetItemString(d,"wxNORMAL", PyInt_FromLong((long) wxNORMAL)); - PyDict_SetItemString(d,"wxLIGHT", PyInt_FromLong((long) wxLIGHT)); - PyDict_SetItemString(d,"wxBOLD", PyInt_FromLong((long) wxBOLD)); - PyDict_SetItemString(d,"wxITALIC", PyInt_FromLong((long) wxITALIC)); - PyDict_SetItemString(d,"wxSLANT", PyInt_FromLong((long) wxSLANT)); - PyDict_SetItemString(d,"wxSOLID", PyInt_FromLong((long) wxSOLID)); - PyDict_SetItemString(d,"wxDOT", PyInt_FromLong((long) wxDOT)); - PyDict_SetItemString(d,"wxLONG_DASH", PyInt_FromLong((long) wxLONG_DASH)); - PyDict_SetItemString(d,"wxSHORT_DASH", PyInt_FromLong((long) wxSHORT_DASH)); - PyDict_SetItemString(d,"wxDOT_DASH", PyInt_FromLong((long) wxDOT_DASH)); - PyDict_SetItemString(d,"wxUSER_DASH", PyInt_FromLong((long) wxUSER_DASH)); - PyDict_SetItemString(d,"wxTRANSPARENT", PyInt_FromLong((long) wxTRANSPARENT)); - PyDict_SetItemString(d,"wxSTIPPLE", PyInt_FromLong((long) wxSTIPPLE)); - PyDict_SetItemString(d,"wxBDIAGONAL_HATCH", PyInt_FromLong((long) wxBDIAGONAL_HATCH)); - PyDict_SetItemString(d,"wxCROSSDIAG_HATCH", PyInt_FromLong((long) wxCROSSDIAG_HATCH)); - PyDict_SetItemString(d,"wxFDIAGONAL_HATCH", PyInt_FromLong((long) wxFDIAGONAL_HATCH)); - PyDict_SetItemString(d,"wxCROSS_HATCH", PyInt_FromLong((long) wxCROSS_HATCH)); - PyDict_SetItemString(d,"wxHORIZONTAL_HATCH", PyInt_FromLong((long) wxHORIZONTAL_HATCH)); - PyDict_SetItemString(d,"wxVERTICAL_HATCH", PyInt_FromLong((long) wxVERTICAL_HATCH)); - PyDict_SetItemString(d,"wxJOIN_BEVEL", PyInt_FromLong((long) wxJOIN_BEVEL)); - PyDict_SetItemString(d,"wxJOIN_MITER", PyInt_FromLong((long) wxJOIN_MITER)); - PyDict_SetItemString(d,"wxJOIN_ROUND", PyInt_FromLong((long) wxJOIN_ROUND)); - PyDict_SetItemString(d,"wxCAP_ROUND", PyInt_FromLong((long) wxCAP_ROUND)); - PyDict_SetItemString(d,"wxCAP_PROJECTING", PyInt_FromLong((long) wxCAP_PROJECTING)); - PyDict_SetItemString(d,"wxCAP_BUTT", PyInt_FromLong((long) wxCAP_BUTT)); - PyDict_SetItemString(d,"wxCLEAR", PyInt_FromLong((long) wxCLEAR)); - PyDict_SetItemString(d,"wxXOR", PyInt_FromLong((long) wxXOR)); - PyDict_SetItemString(d,"wxINVERT", PyInt_FromLong((long) wxINVERT)); - PyDict_SetItemString(d,"wxOR_REVERSE", PyInt_FromLong((long) wxOR_REVERSE)); - PyDict_SetItemString(d,"wxAND_REVERSE", PyInt_FromLong((long) wxAND_REVERSE)); - PyDict_SetItemString(d,"wxCOPY", PyInt_FromLong((long) wxCOPY)); - PyDict_SetItemString(d,"wxAND", PyInt_FromLong((long) wxAND)); - PyDict_SetItemString(d,"wxAND_INVERT", PyInt_FromLong((long) wxAND_INVERT)); - PyDict_SetItemString(d,"wxNO_OP", PyInt_FromLong((long) wxNO_OP)); - PyDict_SetItemString(d,"wxNOR", PyInt_FromLong((long) wxNOR)); - PyDict_SetItemString(d,"wxEQUIV", PyInt_FromLong((long) wxEQUIV)); - PyDict_SetItemString(d,"wxSRC_INVERT", PyInt_FromLong((long) wxSRC_INVERT)); - PyDict_SetItemString(d,"wxOR_INVERT", PyInt_FromLong((long) wxOR_INVERT)); - PyDict_SetItemString(d,"wxNAND", PyInt_FromLong((long) wxNAND)); - PyDict_SetItemString(d,"wxOR", PyInt_FromLong((long) wxOR)); - PyDict_SetItemString(d,"wxSET", PyInt_FromLong((long) wxSET)); - PyDict_SetItemString(d,"wxSRC_OR", PyInt_FromLong((long) wxSRC_OR)); - PyDict_SetItemString(d,"wxSRC_AND", PyInt_FromLong((long) wxSRC_AND)); - PyDict_SetItemString(d,"WXK_BACK", PyInt_FromLong((long) WXK_BACK)); - PyDict_SetItemString(d,"WXK_TAB", PyInt_FromLong((long) WXK_TAB)); - PyDict_SetItemString(d,"WXK_RETURN", PyInt_FromLong((long) WXK_RETURN)); - PyDict_SetItemString(d,"WXK_ESCAPE", PyInt_FromLong((long) WXK_ESCAPE)); - PyDict_SetItemString(d,"WXK_SPACE", PyInt_FromLong((long) WXK_SPACE)); - PyDict_SetItemString(d,"WXK_DELETE", PyInt_FromLong((long) WXK_DELETE)); - PyDict_SetItemString(d,"WXK_START", PyInt_FromLong((long) WXK_START)); - PyDict_SetItemString(d,"WXK_LBUTTON", PyInt_FromLong((long) WXK_LBUTTON)); - PyDict_SetItemString(d,"WXK_RBUTTON", PyInt_FromLong((long) WXK_RBUTTON)); - PyDict_SetItemString(d,"WXK_CANCEL", PyInt_FromLong((long) WXK_CANCEL)); - PyDict_SetItemString(d,"WXK_MBUTTON", PyInt_FromLong((long) WXK_MBUTTON)); - PyDict_SetItemString(d,"WXK_CLEAR", PyInt_FromLong((long) WXK_CLEAR)); - PyDict_SetItemString(d,"WXK_SHIFT", PyInt_FromLong((long) WXK_SHIFT)); - PyDict_SetItemString(d,"WXK_CONTROL", PyInt_FromLong((long) WXK_CONTROL)); - PyDict_SetItemString(d,"WXK_MENU", PyInt_FromLong((long) WXK_MENU)); - PyDict_SetItemString(d,"WXK_PAUSE", PyInt_FromLong((long) WXK_PAUSE)); - PyDict_SetItemString(d,"WXK_CAPITAL", PyInt_FromLong((long) WXK_CAPITAL)); - PyDict_SetItemString(d,"WXK_PRIOR", PyInt_FromLong((long) WXK_PRIOR)); - PyDict_SetItemString(d,"WXK_NEXT", PyInt_FromLong((long) WXK_NEXT)); - PyDict_SetItemString(d,"WXK_END", PyInt_FromLong((long) WXK_END)); - PyDict_SetItemString(d,"WXK_HOME", PyInt_FromLong((long) WXK_HOME)); - PyDict_SetItemString(d,"WXK_LEFT", PyInt_FromLong((long) WXK_LEFT)); - PyDict_SetItemString(d,"WXK_UP", PyInt_FromLong((long) WXK_UP)); - PyDict_SetItemString(d,"WXK_RIGHT", PyInt_FromLong((long) WXK_RIGHT)); - PyDict_SetItemString(d,"WXK_DOWN", PyInt_FromLong((long) WXK_DOWN)); - PyDict_SetItemString(d,"WXK_SELECT", PyInt_FromLong((long) WXK_SELECT)); - PyDict_SetItemString(d,"WXK_PRINT", PyInt_FromLong((long) WXK_PRINT)); - PyDict_SetItemString(d,"WXK_EXECUTE", PyInt_FromLong((long) WXK_EXECUTE)); - PyDict_SetItemString(d,"WXK_SNAPSHOT", PyInt_FromLong((long) WXK_SNAPSHOT)); - PyDict_SetItemString(d,"WXK_INSERT", PyInt_FromLong((long) WXK_INSERT)); - PyDict_SetItemString(d,"WXK_HELP", PyInt_FromLong((long) WXK_HELP)); - PyDict_SetItemString(d,"WXK_NUMPAD0", PyInt_FromLong((long) WXK_NUMPAD0)); - PyDict_SetItemString(d,"WXK_NUMPAD1", PyInt_FromLong((long) WXK_NUMPAD1)); - PyDict_SetItemString(d,"WXK_NUMPAD2", PyInt_FromLong((long) WXK_NUMPAD2)); - PyDict_SetItemString(d,"WXK_NUMPAD3", PyInt_FromLong((long) WXK_NUMPAD3)); - PyDict_SetItemString(d,"WXK_NUMPAD4", PyInt_FromLong((long) WXK_NUMPAD4)); - PyDict_SetItemString(d,"WXK_NUMPAD5", PyInt_FromLong((long) WXK_NUMPAD5)); - PyDict_SetItemString(d,"WXK_NUMPAD6", PyInt_FromLong((long) WXK_NUMPAD6)); - PyDict_SetItemString(d,"WXK_NUMPAD7", PyInt_FromLong((long) WXK_NUMPAD7)); - PyDict_SetItemString(d,"WXK_NUMPAD8", PyInt_FromLong((long) WXK_NUMPAD8)); - PyDict_SetItemString(d,"WXK_NUMPAD9", PyInt_FromLong((long) WXK_NUMPAD9)); - PyDict_SetItemString(d,"WXK_MULTIPLY", PyInt_FromLong((long) WXK_MULTIPLY)); - PyDict_SetItemString(d,"WXK_ADD", PyInt_FromLong((long) WXK_ADD)); - PyDict_SetItemString(d,"WXK_SEPARATOR", PyInt_FromLong((long) WXK_SEPARATOR)); - PyDict_SetItemString(d,"WXK_SUBTRACT", PyInt_FromLong((long) WXK_SUBTRACT)); - PyDict_SetItemString(d,"WXK_DECIMAL", PyInt_FromLong((long) WXK_DECIMAL)); - PyDict_SetItemString(d,"WXK_DIVIDE", PyInt_FromLong((long) WXK_DIVIDE)); - PyDict_SetItemString(d,"WXK_F1", PyInt_FromLong((long) WXK_F1)); - PyDict_SetItemString(d,"WXK_F2", PyInt_FromLong((long) WXK_F2)); - PyDict_SetItemString(d,"WXK_F3", PyInt_FromLong((long) WXK_F3)); - PyDict_SetItemString(d,"WXK_F4", PyInt_FromLong((long) WXK_F4)); - PyDict_SetItemString(d,"WXK_F5", PyInt_FromLong((long) WXK_F5)); - PyDict_SetItemString(d,"WXK_F6", PyInt_FromLong((long) WXK_F6)); - PyDict_SetItemString(d,"WXK_F7", PyInt_FromLong((long) WXK_F7)); - PyDict_SetItemString(d,"WXK_F8", PyInt_FromLong((long) WXK_F8)); - PyDict_SetItemString(d,"WXK_F9", PyInt_FromLong((long) WXK_F9)); - PyDict_SetItemString(d,"WXK_F10", PyInt_FromLong((long) WXK_F10)); - PyDict_SetItemString(d,"WXK_F11", PyInt_FromLong((long) WXK_F11)); - PyDict_SetItemString(d,"WXK_F12", PyInt_FromLong((long) WXK_F12)); - PyDict_SetItemString(d,"WXK_F13", PyInt_FromLong((long) WXK_F13)); - PyDict_SetItemString(d,"WXK_F14", PyInt_FromLong((long) WXK_F14)); - PyDict_SetItemString(d,"WXK_F15", PyInt_FromLong((long) WXK_F15)); - PyDict_SetItemString(d,"WXK_F16", PyInt_FromLong((long) WXK_F16)); - PyDict_SetItemString(d,"WXK_F17", PyInt_FromLong((long) WXK_F17)); - PyDict_SetItemString(d,"WXK_F18", PyInt_FromLong((long) WXK_F18)); - PyDict_SetItemString(d,"WXK_F19", PyInt_FromLong((long) WXK_F19)); - PyDict_SetItemString(d,"WXK_F20", PyInt_FromLong((long) WXK_F20)); - PyDict_SetItemString(d,"WXK_F21", PyInt_FromLong((long) WXK_F21)); - PyDict_SetItemString(d,"WXK_F22", PyInt_FromLong((long) WXK_F22)); - PyDict_SetItemString(d,"WXK_F23", PyInt_FromLong((long) WXK_F23)); - PyDict_SetItemString(d,"WXK_F24", PyInt_FromLong((long) WXK_F24)); - PyDict_SetItemString(d,"WXK_NUMLOCK", PyInt_FromLong((long) WXK_NUMLOCK)); - PyDict_SetItemString(d,"WXK_SCROLL", PyInt_FromLong((long) WXK_SCROLL)); - PyDict_SetItemString(d,"WXK_PAGEUP", PyInt_FromLong((long) WXK_PAGEUP)); - PyDict_SetItemString(d,"WXK_PAGEDOWN", PyInt_FromLong((long) WXK_PAGEDOWN)); - PyDict_SetItemString(d,"wxCURSOR_NONE", PyInt_FromLong((long) wxCURSOR_NONE)); - PyDict_SetItemString(d,"wxCURSOR_ARROW", PyInt_FromLong((long) wxCURSOR_ARROW)); - PyDict_SetItemString(d,"wxCURSOR_BULLSEYE", PyInt_FromLong((long) wxCURSOR_BULLSEYE)); - PyDict_SetItemString(d,"wxCURSOR_CHAR", PyInt_FromLong((long) wxCURSOR_CHAR)); - PyDict_SetItemString(d,"wxCURSOR_CROSS", PyInt_FromLong((long) wxCURSOR_CROSS)); - PyDict_SetItemString(d,"wxCURSOR_HAND", PyInt_FromLong((long) wxCURSOR_HAND)); - PyDict_SetItemString(d,"wxCURSOR_IBEAM", PyInt_FromLong((long) wxCURSOR_IBEAM)); - PyDict_SetItemString(d,"wxCURSOR_LEFT_BUTTON", PyInt_FromLong((long) wxCURSOR_LEFT_BUTTON)); - PyDict_SetItemString(d,"wxCURSOR_MAGNIFIER", PyInt_FromLong((long) wxCURSOR_MAGNIFIER)); - PyDict_SetItemString(d,"wxCURSOR_MIDDLE_BUTTON", PyInt_FromLong((long) wxCURSOR_MIDDLE_BUTTON)); - PyDict_SetItemString(d,"wxCURSOR_NO_ENTRY", PyInt_FromLong((long) wxCURSOR_NO_ENTRY)); - PyDict_SetItemString(d,"wxCURSOR_PAINT_BRUSH", PyInt_FromLong((long) wxCURSOR_PAINT_BRUSH)); - PyDict_SetItemString(d,"wxCURSOR_PENCIL", PyInt_FromLong((long) wxCURSOR_PENCIL)); - PyDict_SetItemString(d,"wxCURSOR_POINT_LEFT", PyInt_FromLong((long) wxCURSOR_POINT_LEFT)); - PyDict_SetItemString(d,"wxCURSOR_POINT_RIGHT", PyInt_FromLong((long) wxCURSOR_POINT_RIGHT)); - PyDict_SetItemString(d,"wxCURSOR_QUESTION_ARROW", PyInt_FromLong((long) wxCURSOR_QUESTION_ARROW)); - PyDict_SetItemString(d,"wxCURSOR_RIGHT_BUTTON", PyInt_FromLong((long) wxCURSOR_RIGHT_BUTTON)); - PyDict_SetItemString(d,"wxCURSOR_SIZENESW", PyInt_FromLong((long) wxCURSOR_SIZENESW)); - PyDict_SetItemString(d,"wxCURSOR_SIZENS", PyInt_FromLong((long) wxCURSOR_SIZENS)); - PyDict_SetItemString(d,"wxCURSOR_SIZENWSE", PyInt_FromLong((long) wxCURSOR_SIZENWSE)); - PyDict_SetItemString(d,"wxCURSOR_SIZEWE", PyInt_FromLong((long) wxCURSOR_SIZEWE)); - PyDict_SetItemString(d,"wxCURSOR_SIZING", PyInt_FromLong((long) wxCURSOR_SIZING)); - PyDict_SetItemString(d,"wxCURSOR_SPRAYCAN", PyInt_FromLong((long) wxCURSOR_SPRAYCAN)); - PyDict_SetItemString(d,"wxCURSOR_WAIT", PyInt_FromLong((long) wxCURSOR_WAIT)); - PyDict_SetItemString(d,"wxCURSOR_WATCH", PyInt_FromLong((long) wxCURSOR_WATCH)); - PyDict_SetItemString(d,"wxCURSOR_BLANK", PyInt_FromLong((long) wxCURSOR_BLANK)); - PyDict_SetItemString(d,"wxPAPER_NONE", PyInt_FromLong((long) wxPAPER_NONE)); - PyDict_SetItemString(d,"wxPAPER_LETTER", PyInt_FromLong((long) wxPAPER_LETTER)); - PyDict_SetItemString(d,"wxPAPER_LEGAL", PyInt_FromLong((long) wxPAPER_LEGAL)); - PyDict_SetItemString(d,"wxPAPER_A4", PyInt_FromLong((long) wxPAPER_A4)); - PyDict_SetItemString(d,"wxPAPER_CSHEET", PyInt_FromLong((long) wxPAPER_CSHEET)); - PyDict_SetItemString(d,"wxPAPER_DSHEET", PyInt_FromLong((long) wxPAPER_DSHEET)); - PyDict_SetItemString(d,"wxPAPER_ESHEET", PyInt_FromLong((long) wxPAPER_ESHEET)); - PyDict_SetItemString(d,"wxPAPER_LETTERSMALL", PyInt_FromLong((long) wxPAPER_LETTERSMALL)); - PyDict_SetItemString(d,"wxPAPER_TABLOID", PyInt_FromLong((long) wxPAPER_TABLOID)); - PyDict_SetItemString(d,"wxPAPER_LEDGER", PyInt_FromLong((long) wxPAPER_LEDGER)); - PyDict_SetItemString(d,"wxPAPER_STATEMENT", PyInt_FromLong((long) wxPAPER_STATEMENT)); - PyDict_SetItemString(d,"wxPAPER_EXECUTIVE", PyInt_FromLong((long) wxPAPER_EXECUTIVE)); - PyDict_SetItemString(d,"wxPAPER_A3", PyInt_FromLong((long) wxPAPER_A3)); - PyDict_SetItemString(d,"wxPAPER_A4SMALL", PyInt_FromLong((long) wxPAPER_A4SMALL)); - PyDict_SetItemString(d,"wxPAPER_A5", PyInt_FromLong((long) wxPAPER_A5)); - PyDict_SetItemString(d,"wxPAPER_B4", PyInt_FromLong((long) wxPAPER_B4)); - PyDict_SetItemString(d,"wxPAPER_B5", PyInt_FromLong((long) wxPAPER_B5)); - PyDict_SetItemString(d,"wxPAPER_FOLIO", PyInt_FromLong((long) wxPAPER_FOLIO)); - PyDict_SetItemString(d,"wxPAPER_QUARTO", PyInt_FromLong((long) wxPAPER_QUARTO)); - PyDict_SetItemString(d,"wxPAPER_10X14", PyInt_FromLong((long) wxPAPER_10X14)); - PyDict_SetItemString(d,"wxPAPER_11X17", PyInt_FromLong((long) wxPAPER_11X17)); - PyDict_SetItemString(d,"wxPAPER_NOTE", PyInt_FromLong((long) wxPAPER_NOTE)); - PyDict_SetItemString(d,"wxPAPER_ENV_9", PyInt_FromLong((long) wxPAPER_ENV_9)); - PyDict_SetItemString(d,"wxPAPER_ENV_10", PyInt_FromLong((long) wxPAPER_ENV_10)); - PyDict_SetItemString(d,"wxPAPER_ENV_11", PyInt_FromLong((long) wxPAPER_ENV_11)); - PyDict_SetItemString(d,"wxPAPER_ENV_12", PyInt_FromLong((long) wxPAPER_ENV_12)); - PyDict_SetItemString(d,"wxPAPER_ENV_14", PyInt_FromLong((long) wxPAPER_ENV_14)); - PyDict_SetItemString(d,"wxPAPER_ENV_DL", PyInt_FromLong((long) wxPAPER_ENV_DL)); - PyDict_SetItemString(d,"wxPAPER_ENV_C5", PyInt_FromLong((long) wxPAPER_ENV_C5)); - PyDict_SetItemString(d,"wxPAPER_ENV_C3", PyInt_FromLong((long) wxPAPER_ENV_C3)); - PyDict_SetItemString(d,"wxPAPER_ENV_C4", PyInt_FromLong((long) wxPAPER_ENV_C4)); - PyDict_SetItemString(d,"wxPAPER_ENV_C6", PyInt_FromLong((long) wxPAPER_ENV_C6)); - PyDict_SetItemString(d,"wxPAPER_ENV_C65", PyInt_FromLong((long) wxPAPER_ENV_C65)); - PyDict_SetItemString(d,"wxPAPER_ENV_B4", PyInt_FromLong((long) wxPAPER_ENV_B4)); - PyDict_SetItemString(d,"wxPAPER_ENV_B5", PyInt_FromLong((long) wxPAPER_ENV_B5)); - PyDict_SetItemString(d,"wxPAPER_ENV_B6", PyInt_FromLong((long) wxPAPER_ENV_B6)); - PyDict_SetItemString(d,"wxPAPER_ENV_ITALY", PyInt_FromLong((long) wxPAPER_ENV_ITALY)); - PyDict_SetItemString(d,"wxPAPER_ENV_MONARCH", PyInt_FromLong((long) wxPAPER_ENV_MONARCH)); - PyDict_SetItemString(d,"wxPAPER_ENV_PERSONAL", PyInt_FromLong((long) wxPAPER_ENV_PERSONAL)); - PyDict_SetItemString(d,"wxPAPER_FANFOLD_US", PyInt_FromLong((long) wxPAPER_FANFOLD_US)); - PyDict_SetItemString(d,"wxPAPER_FANFOLD_STD_GERMAN", PyInt_FromLong((long) wxPAPER_FANFOLD_STD_GERMAN)); - PyDict_SetItemString(d,"wxPAPER_FANFOLD_LGL_GERMAN", PyInt_FromLong((long) wxPAPER_FANFOLD_LGL_GERMAN)); - PyDict_SetItemString(d,"wxPAPER_ISO_B4", PyInt_FromLong((long) wxPAPER_ISO_B4)); - PyDict_SetItemString(d,"wxPAPER_JAPANESE_POSTCARD", PyInt_FromLong((long) wxPAPER_JAPANESE_POSTCARD)); - PyDict_SetItemString(d,"wxPAPER_9X11", PyInt_FromLong((long) wxPAPER_9X11)); - PyDict_SetItemString(d,"wxPAPER_10X11", PyInt_FromLong((long) wxPAPER_10X11)); - PyDict_SetItemString(d,"wxPAPER_15X11", PyInt_FromLong((long) wxPAPER_15X11)); - PyDict_SetItemString(d,"wxPAPER_ENV_INVITE", PyInt_FromLong((long) wxPAPER_ENV_INVITE)); - PyDict_SetItemString(d,"wxPAPER_LETTER_EXTRA", PyInt_FromLong((long) wxPAPER_LETTER_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_LEGAL_EXTRA", PyInt_FromLong((long) wxPAPER_LEGAL_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_TABLOID_EXTRA", PyInt_FromLong((long) wxPAPER_TABLOID_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_A4_EXTRA", PyInt_FromLong((long) wxPAPER_A4_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_LETTER_TRANSVERSE", PyInt_FromLong((long) wxPAPER_LETTER_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A4_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A4_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_LETTER_EXTRA_TRANSVERSE", PyInt_FromLong((long) wxPAPER_LETTER_EXTRA_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A_PLUS", PyInt_FromLong((long) wxPAPER_A_PLUS)); - PyDict_SetItemString(d,"wxPAPER_B_PLUS", PyInt_FromLong((long) wxPAPER_B_PLUS)); - PyDict_SetItemString(d,"wxPAPER_LETTER_PLUS", PyInt_FromLong((long) wxPAPER_LETTER_PLUS)); - PyDict_SetItemString(d,"wxPAPER_A4_PLUS", PyInt_FromLong((long) wxPAPER_A4_PLUS)); - PyDict_SetItemString(d,"wxPAPER_A5_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A5_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_B5_TRANSVERSE", PyInt_FromLong((long) wxPAPER_B5_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A3_EXTRA", PyInt_FromLong((long) wxPAPER_A3_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_A5_EXTRA", PyInt_FromLong((long) wxPAPER_A5_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_B5_EXTRA", PyInt_FromLong((long) wxPAPER_B5_EXTRA)); - PyDict_SetItemString(d,"wxPAPER_A2", PyInt_FromLong((long) wxPAPER_A2)); - PyDict_SetItemString(d,"wxPAPER_A3_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A3_TRANSVERSE)); - PyDict_SetItemString(d,"wxPAPER_A3_EXTRA_TRANSVERSE", PyInt_FromLong((long) wxPAPER_A3_EXTRA_TRANSVERSE)); - PyDict_SetItemString(d,"FALSE", PyInt_FromLong((long) 0)); - PyDict_SetItemString(d,"false", PyInt_FromLong((long) 0)); - PyDict_SetItemString(d,"TRUE", PyInt_FromLong((long) 1)); - PyDict_SetItemString(d,"true", PyInt_FromLong((long) 1)); - PyDict_SetItemString(d,"wxVERSION_STRING", PyString_FromString("wxVERSION_STRING")); - PyDict_SetItemString(d,"wxEVT_NULL", PyInt_FromLong((long) wxEVT_NULL)); - PyDict_SetItemString(d,"wxEVT_FIRST", PyInt_FromLong((long) wxEVT_FIRST)); - PyDict_SetItemString(d,"wxEVT_COMMAND_BUTTON_CLICKED", PyInt_FromLong((long) wxEVT_COMMAND_BUTTON_CLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_CHECKBOX_CLICKED", PyInt_FromLong((long) wxEVT_COMMAND_CHECKBOX_CLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_CHOICE_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_CHOICE_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LISTBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_LISTBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LISTBOX_DOUBLECLICKED", PyInt_FromLong((long) wxEVT_COMMAND_LISTBOX_DOUBLECLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_CHECKLISTBOX_TOGGLED", PyInt_FromLong((long) wxEVT_COMMAND_CHECKLISTBOX_TOGGLED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TEXT_UPDATED", PyInt_FromLong((long) wxEVT_COMMAND_TEXT_UPDATED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TEXT_ENTER", PyInt_FromLong((long) wxEVT_COMMAND_TEXT_ENTER)); - PyDict_SetItemString(d,"wxEVT_COMMAND_MENU_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_MENU_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SLIDER_UPDATED", PyInt_FromLong((long) wxEVT_COMMAND_SLIDER_UPDATED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RADIOBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_RADIOBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RADIOBUTTON_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_RADIOBUTTON_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SCROLLBAR_UPDATED", PyInt_FromLong((long) wxEVT_COMMAND_SCROLLBAR_UPDATED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_VLBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_VLBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_COMBOBOX_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_COMBOBOX_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TOOL_CLICKED", PyInt_FromLong((long) wxEVT_COMMAND_TOOL_CLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TOOL_RCLICKED", PyInt_FromLong((long) wxEVT_COMMAND_TOOL_RCLICKED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TOOL_ENTER", PyInt_FromLong((long) wxEVT_COMMAND_TOOL_ENTER)); - PyDict_SetItemString(d,"wxEVT_SET_FOCUS", PyInt_FromLong((long) wxEVT_SET_FOCUS)); - PyDict_SetItemString(d,"wxEVT_KILL_FOCUS", PyInt_FromLong((long) wxEVT_KILL_FOCUS)); - PyDict_SetItemString(d,"wxEVT_LEFT_DOWN", PyInt_FromLong((long) wxEVT_LEFT_DOWN)); - PyDict_SetItemString(d,"wxEVT_LEFT_UP", PyInt_FromLong((long) wxEVT_LEFT_UP)); - PyDict_SetItemString(d,"wxEVT_MIDDLE_DOWN", PyInt_FromLong((long) wxEVT_MIDDLE_DOWN)); - PyDict_SetItemString(d,"wxEVT_MIDDLE_UP", PyInt_FromLong((long) wxEVT_MIDDLE_UP)); - PyDict_SetItemString(d,"wxEVT_RIGHT_DOWN", PyInt_FromLong((long) wxEVT_RIGHT_DOWN)); - PyDict_SetItemString(d,"wxEVT_RIGHT_UP", PyInt_FromLong((long) wxEVT_RIGHT_UP)); - PyDict_SetItemString(d,"wxEVT_MOTION", PyInt_FromLong((long) wxEVT_MOTION)); - PyDict_SetItemString(d,"wxEVT_ENTER_WINDOW", PyInt_FromLong((long) wxEVT_ENTER_WINDOW)); - PyDict_SetItemString(d,"wxEVT_LEAVE_WINDOW", PyInt_FromLong((long) wxEVT_LEAVE_WINDOW)); - PyDict_SetItemString(d,"wxEVT_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_MIDDLE_DCLICK", PyInt_FromLong((long) wxEVT_MIDDLE_DCLICK)); - PyDict_SetItemString(d,"wxEVT_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_RIGHT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_NC_LEFT_DOWN", PyInt_FromLong((long) wxEVT_NC_LEFT_DOWN)); - PyDict_SetItemString(d,"wxEVT_NC_LEFT_UP", PyInt_FromLong((long) wxEVT_NC_LEFT_UP)); - PyDict_SetItemString(d,"wxEVT_NC_MIDDLE_DOWN", PyInt_FromLong((long) wxEVT_NC_MIDDLE_DOWN)); - PyDict_SetItemString(d,"wxEVT_NC_MIDDLE_UP", PyInt_FromLong((long) wxEVT_NC_MIDDLE_UP)); - PyDict_SetItemString(d,"wxEVT_NC_RIGHT_DOWN", PyInt_FromLong((long) wxEVT_NC_RIGHT_DOWN)); - PyDict_SetItemString(d,"wxEVT_NC_RIGHT_UP", PyInt_FromLong((long) wxEVT_NC_RIGHT_UP)); - PyDict_SetItemString(d,"wxEVT_NC_MOTION", PyInt_FromLong((long) wxEVT_NC_MOTION)); - PyDict_SetItemString(d,"wxEVT_NC_ENTER_WINDOW", PyInt_FromLong((long) wxEVT_NC_ENTER_WINDOW)); - PyDict_SetItemString(d,"wxEVT_NC_LEAVE_WINDOW", PyInt_FromLong((long) wxEVT_NC_LEAVE_WINDOW)); - PyDict_SetItemString(d,"wxEVT_NC_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_NC_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_NC_MIDDLE_DCLICK", PyInt_FromLong((long) wxEVT_NC_MIDDLE_DCLICK)); - PyDict_SetItemString(d,"wxEVT_NC_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_NC_RIGHT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_CHAR", PyInt_FromLong((long) wxEVT_CHAR)); - PyDict_SetItemString(d,"wxEVT_SCROLL_TOP", PyInt_FromLong((long) wxEVT_SCROLL_TOP)); - PyDict_SetItemString(d,"wxEVT_SCROLL_BOTTOM", PyInt_FromLong((long) wxEVT_SCROLL_BOTTOM)); - PyDict_SetItemString(d,"wxEVT_SCROLL_LINEUP", PyInt_FromLong((long) wxEVT_SCROLL_LINEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLL_LINEDOWN", PyInt_FromLong((long) wxEVT_SCROLL_LINEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLL_PAGEUP", PyInt_FromLong((long) wxEVT_SCROLL_PAGEUP)); - PyDict_SetItemString(d,"wxEVT_SCROLL_PAGEDOWN", PyInt_FromLong((long) wxEVT_SCROLL_PAGEDOWN)); - PyDict_SetItemString(d,"wxEVT_SCROLL_THUMBTRACK", PyInt_FromLong((long) wxEVT_SCROLL_THUMBTRACK)); - PyDict_SetItemString(d,"wxEVT_SIZE", PyInt_FromLong((long) wxEVT_SIZE)); - PyDict_SetItemString(d,"wxEVT_MOVE", PyInt_FromLong((long) wxEVT_MOVE)); - PyDict_SetItemString(d,"wxEVT_CLOSE_WINDOW", PyInt_FromLong((long) wxEVT_CLOSE_WINDOW)); - PyDict_SetItemString(d,"wxEVT_END_SESSION", PyInt_FromLong((long) wxEVT_END_SESSION)); - PyDict_SetItemString(d,"wxEVT_QUERY_END_SESSION", PyInt_FromLong((long) wxEVT_QUERY_END_SESSION)); - PyDict_SetItemString(d,"wxEVT_ACTIVATE_APP", PyInt_FromLong((long) wxEVT_ACTIVATE_APP)); - PyDict_SetItemString(d,"wxEVT_POWER", PyInt_FromLong((long) wxEVT_POWER)); - PyDict_SetItemString(d,"wxEVT_CHAR_HOOK", PyInt_FromLong((long) wxEVT_CHAR_HOOK)); - PyDict_SetItemString(d,"wxEVT_KEY_UP", PyInt_FromLong((long) wxEVT_KEY_UP)); - PyDict_SetItemString(d,"wxEVT_ACTIVATE", PyInt_FromLong((long) wxEVT_ACTIVATE)); - PyDict_SetItemString(d,"wxEVT_CREATE", PyInt_FromLong((long) wxEVT_CREATE)); - PyDict_SetItemString(d,"wxEVT_DESTROY", PyInt_FromLong((long) wxEVT_DESTROY)); - PyDict_SetItemString(d,"wxEVT_SHOW", PyInt_FromLong((long) wxEVT_SHOW)); - PyDict_SetItemString(d,"wxEVT_ICONIZE", PyInt_FromLong((long) wxEVT_ICONIZE)); - PyDict_SetItemString(d,"wxEVT_MAXIMIZE", PyInt_FromLong((long) wxEVT_MAXIMIZE)); - PyDict_SetItemString(d,"wxEVT_MOUSE_CAPTURE_CHANGED", PyInt_FromLong((long) wxEVT_MOUSE_CAPTURE_CHANGED)); - PyDict_SetItemString(d,"wxEVT_PAINT", PyInt_FromLong((long) wxEVT_PAINT)); - PyDict_SetItemString(d,"wxEVT_ERASE_BACKGROUND", PyInt_FromLong((long) wxEVT_ERASE_BACKGROUND)); - PyDict_SetItemString(d,"wxEVT_NC_PAINT", PyInt_FromLong((long) wxEVT_NC_PAINT)); - PyDict_SetItemString(d,"wxEVT_PAINT_ICON", PyInt_FromLong((long) wxEVT_PAINT_ICON)); - PyDict_SetItemString(d,"wxEVT_MENU_CHAR", PyInt_FromLong((long) wxEVT_MENU_CHAR)); - PyDict_SetItemString(d,"wxEVT_MENU_INIT", PyInt_FromLong((long) wxEVT_MENU_INIT)); - PyDict_SetItemString(d,"wxEVT_MENU_HIGHLIGHT", PyInt_FromLong((long) wxEVT_MENU_HIGHLIGHT)); - PyDict_SetItemString(d,"wxEVT_POPUP_MENU_INIT", PyInt_FromLong((long) wxEVT_POPUP_MENU_INIT)); - PyDict_SetItemString(d,"wxEVT_CONTEXT_MENU", PyInt_FromLong((long) wxEVT_CONTEXT_MENU)); - PyDict_SetItemString(d,"wxEVT_SYS_COLOUR_CHANGED", PyInt_FromLong((long) wxEVT_SYS_COLOUR_CHANGED)); - PyDict_SetItemString(d,"wxEVT_SETTING_CHANGED", PyInt_FromLong((long) wxEVT_SETTING_CHANGED)); - PyDict_SetItemString(d,"wxEVT_QUERY_NEW_PALETTE", PyInt_FromLong((long) wxEVT_QUERY_NEW_PALETTE)); - PyDict_SetItemString(d,"wxEVT_PALETTE_CHANGED", PyInt_FromLong((long) wxEVT_PALETTE_CHANGED)); - PyDict_SetItemString(d,"wxEVT_JOY_BUTTON_DOWN", PyInt_FromLong((long) wxEVT_JOY_BUTTON_DOWN)); - PyDict_SetItemString(d,"wxEVT_JOY_BUTTON_UP", PyInt_FromLong((long) wxEVT_JOY_BUTTON_UP)); - PyDict_SetItemString(d,"wxEVT_JOY_MOVE", PyInt_FromLong((long) wxEVT_JOY_MOVE)); - PyDict_SetItemString(d,"wxEVT_JOY_ZMOVE", PyInt_FromLong((long) wxEVT_JOY_ZMOVE)); - PyDict_SetItemString(d,"wxEVT_DROP_FILES", PyInt_FromLong((long) wxEVT_DROP_FILES)); - PyDict_SetItemString(d,"wxEVT_DRAW_ITEM", PyInt_FromLong((long) wxEVT_DRAW_ITEM)); - PyDict_SetItemString(d,"wxEVT_MEASURE_ITEM", PyInt_FromLong((long) wxEVT_MEASURE_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMPARE_ITEM", PyInt_FromLong((long) wxEVT_COMPARE_ITEM)); - PyDict_SetItemString(d,"wxEVT_INIT_DIALOG", PyInt_FromLong((long) wxEVT_INIT_DIALOG)); - PyDict_SetItemString(d,"wxEVT_IDLE", PyInt_FromLong((long) wxEVT_IDLE)); - PyDict_SetItemString(d,"wxEVT_UPDATE_UI", PyInt_FromLong((long) wxEVT_UPDATE_UI)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LEFT_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LEFT_CLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LEFT_DCLICK", PyInt_FromLong((long) wxEVT_COMMAND_LEFT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RIGHT_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_RIGHT_CLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_RIGHT_DCLICK", PyInt_FromLong((long) wxEVT_COMMAND_RIGHT_DCLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_SET_FOCUS", PyInt_FromLong((long) wxEVT_COMMAND_SET_FOCUS)); - PyDict_SetItemString(d,"wxEVT_COMMAND_KILL_FOCUS", PyInt_FromLong((long) wxEVT_COMMAND_KILL_FOCUS)); - PyDict_SetItemString(d,"wxEVT_COMMAND_ENTER", PyInt_FromLong((long) wxEVT_COMMAND_ENTER)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_BEGIN_DRAG", PyInt_FromLong((long) wxEVT_COMMAND_TREE_BEGIN_DRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_BEGIN_RDRAG", PyInt_FromLong((long) wxEVT_COMMAND_TREE_BEGIN_RDRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_END_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_TREE_END_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_DELETE_ITEM", PyInt_FromLong((long) wxEVT_COMMAND_TREE_DELETE_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_GET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_TREE_GET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_SET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_TREE_SET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_EXPANDED", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_EXPANDED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_EXPANDING", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_EXPANDING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_COLLAPSED", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_COLLAPSED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_ITEM_COLLAPSING", PyInt_FromLong((long) wxEVT_COMMAND_TREE_ITEM_COLLAPSING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_SEL_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_TREE_SEL_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_SEL_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_TREE_SEL_CHANGING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TREE_KEY_DOWN", PyInt_FromLong((long) wxEVT_COMMAND_TREE_KEY_DOWN)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_BEGIN_DRAG", PyInt_FromLong((long) wxEVT_COMMAND_LIST_BEGIN_DRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_BEGIN_RDRAG", PyInt_FromLong((long) wxEVT_COMMAND_LIST_BEGIN_RDRAG)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_END_LABEL_EDIT", PyInt_FromLong((long) wxEVT_COMMAND_LIST_END_LABEL_EDIT)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_DELETE_ITEM", PyInt_FromLong((long) wxEVT_COMMAND_LIST_DELETE_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS", PyInt_FromLong((long) wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_GET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_LIST_GET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_SET_INFO", PyInt_FromLong((long) wxEVT_COMMAND_LIST_SET_INFO)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_SELECTED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_SELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_ITEM_DESELECTED", PyInt_FromLong((long) wxEVT_COMMAND_LIST_ITEM_DESELECTED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_KEY_DOWN", PyInt_FromLong((long) wxEVT_COMMAND_LIST_KEY_DOWN)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_INSERT_ITEM", PyInt_FromLong((long) wxEVT_COMMAND_LIST_INSERT_ITEM)); - PyDict_SetItemString(d,"wxEVT_COMMAND_LIST_COL_CLICK", PyInt_FromLong((long) wxEVT_COMMAND_LIST_COL_CLICK)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TAB_SEL_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_TAB_SEL_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_TAB_SEL_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_TAB_SEL_CHANGING)); - PyDict_SetItemString(d,"wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED", PyInt_FromLong((long) wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED)); - PyDict_SetItemString(d,"wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING", PyInt_FromLong((long) wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING)); - PyDict_SetItemString(d,"__version__", PyString_FromString("2.0b9")); - PyDict_SetItemString(d,"cvar", SWIG_globals); - SWIG_addvarlink(SWIG_globals,"wxPyDefaultPosition",_wrap_wxPyDefaultPosition_get, _wrap_wxPyDefaultPosition_set); - SWIG_addvarlink(SWIG_globals,"wxPyDefaultSize",_wrap_wxPyDefaultSize_get, _wrap_wxPyDefaultSize_set); - - - __wxPreStart(); // initialize the GUI toolkit, if needed. - -// wxPyWindows = new wxHashTable(wxKEY_INTEGER, 100); - - // Since these modules are all linked together, initialize them now - // because python won't be able to find their shared library files, - // (since there isn't any.) - initwindowsc(); - initwindows2c(); - initeventsc(); - initmiscc(); - initgdic(); - initmdic(); - initcontrolsc(); - initcontrols2c(); - initcmndlgsc(); - initstattoolc(); - initframesc(); - initwindows3c(); - initimagec(); -#ifndef SEPARATE - initutilsc(); -#ifdef WITH_GLCANVAS - initglcanvasc(); -#endif -#endif -/* - * These are the pointer type-equivalency mappings. - * (Used by the SWIG pointer type-checker). - */ - SWIG_RegisterMapping("_wxAcceleratorTable","_class_wxAcceleratorTable",0); - SWIG_RegisterMapping("_wxEvent","_class_wxEvent",0); - SWIG_RegisterMapping("_class_wxActivateEvent","_wxActivateEvent",0); - SWIG_RegisterMapping("_signed_long","_long",0); - SWIG_RegisterMapping("_wxMenuEvent","_class_wxMenuEvent",0); - SWIG_RegisterMapping("_class_wxJPEGHandler","_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxBMPHandler","_class_wxBMPHandler",0); - SWIG_RegisterMapping("_wxImage","_class_wxImage",0); - SWIG_RegisterMapping("_wxFontData","_class_wxFontData",0); - SWIG_RegisterMapping("_class_wxRegionIterator","_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxMenuBar","_wxMenuBar",0); - SWIG_RegisterMapping("_class_wxPyTreeItemData","_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_class_wxEvtHandler","_wxEvtHandler",0); - SWIG_RegisterMapping("_wxPaintEvent","_class_wxPaintEvent",0); - SWIG_RegisterMapping("_wxGIFHandler","_class_wxGIFHandler",0); - SWIG_RegisterMapping("_wxIndividualLayoutConstraint","_class_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxCursor","_class_wxCursor",0); - SWIG_RegisterMapping("_wxImageHandler","_class_wxImageHandler",0); - SWIG_RegisterMapping("_class_wxTreeCtrl","_wxTreeCtrl",0); - SWIG_RegisterMapping("_wxToolTip","_class_wxToolTip",0); - SWIG_RegisterMapping("_wxMask","_class_wxMask",0); - SWIG_RegisterMapping("_wxGrid","_class_wxGrid",0); - SWIG_RegisterMapping("_wxPNGHandler","_class_wxPNGHandler",0); - SWIG_RegisterMapping("_wxPyMenu","_class_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxColourData","_wxColourData",0); - SWIG_RegisterMapping("_class_wxPageSetupDialogData","_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_wxPen","_class_wxPen",0); - SWIG_RegisterMapping("_wxUpdateUIEvent","_class_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_byte","_unsigned_char",0); - SWIG_RegisterMapping("_wxStaticBox","_class_wxStaticBox",0); - SWIG_RegisterMapping("_wxChoice","_class_wxChoice",0); - SWIG_RegisterMapping("_wxSlider","_class_wxSlider",0); - SWIG_RegisterMapping("_wxNotebookEvent","_class_wxNotebookEvent",0); - SWIG_RegisterMapping("_long","_wxDash",0); - SWIG_RegisterMapping("_long","_unsigned_long",0); - SWIG_RegisterMapping("_long","_signed_long",0); - SWIG_RegisterMapping("_wxImageList","_class_wxImageList",0); - SWIG_RegisterMapping("_wxDropFilesEvent","_class_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxBitmapButton","_class_wxBitmapButton",0); - SWIG_RegisterMapping("_wxSashWindow","_class_wxSashWindow",0); - SWIG_RegisterMapping("_class_wxPrintDialogData","_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxAcceleratorTable","_wxAcceleratorTable",0); - SWIG_RegisterMapping("_class_wxGauge","_wxGauge",0); - SWIG_RegisterMapping("_class_wxSashEvent","_wxSashEvent",0); - SWIG_RegisterMapping("_wxDC","_class_wxDC",0); - SWIG_RegisterMapping("_wxListEvent","_class_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSingleChoiceDialog","_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxBMPHandler","_wxBMPHandler",0); - SWIG_RegisterMapping("_wxSpinEvent","_class_wxSpinEvent",0); - SWIG_RegisterMapping("_wxSashLayoutWindow","_class_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_size_t","_unsigned_int",0); - SWIG_RegisterMapping("_size_t","_int",0); - SWIG_RegisterMapping("_size_t","_wxWindowID",0); - SWIG_RegisterMapping("_size_t","_uint",0); - SWIG_RegisterMapping("_class_wxRealPoint","_wxRealPoint",0); - SWIG_RegisterMapping("_wxPrinterDC","_class_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMenuItem","_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxPaintEvent","_wxPaintEvent",0); - SWIG_RegisterMapping("_wxSysColourChangedEvent","_class_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxStatusBar","_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxGIFHandler","_wxGIFHandler",0); - SWIG_RegisterMapping("_wxPanel","_class_wxPanel",0); - SWIG_RegisterMapping("_wxInitDialogEvent","_class_wxInitDialogEvent",0); - SWIG_RegisterMapping("_wxCheckBox","_class_wxCheckBox",0); - SWIG_RegisterMapping("_wxPyEvent","_class_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextCtrl","_class_wxTextCtrl",0); - SWIG_RegisterMapping("_class_wxToolTip","_wxToolTip",0); - SWIG_RegisterMapping("_class_wxMask","_wxMask",0); - SWIG_RegisterMapping("_class_wxKeyEvent","_wxKeyEvent",0); - SWIG_RegisterMapping("_class_wxGrid","_wxGrid",0); - SWIG_RegisterMapping("_class_wxPNGHandler","_wxPNGHandler",0); - SWIG_RegisterMapping("_wxColour","_class_wxColour",0); - SWIG_RegisterMapping("_class_wxDialog","_wxDialog",0); - SWIG_RegisterMapping("_wxPageSetupDialog","_class_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxIdleEvent","_class_wxIdleEvent",0); - SWIG_RegisterMapping("_class_wxUpdateUIEvent","_wxUpdateUIEvent",0); - SWIG_RegisterMapping("_wxToolBar","_class_wxToolBar",0); - SWIG_RegisterMapping("_class_wxLayoutAlgorithm","_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_wxBrush","_class_wxBrush",0); - SWIG_RegisterMapping("_wxMiniFrame","_class_wxMiniFrame",0); - SWIG_RegisterMapping("_class_wxNotebookEvent","_wxNotebookEvent",0); - SWIG_RegisterMapping("_class_wxSashWindow","_wxSashWindow",0); - SWIG_RegisterMapping("_wxShowEvent","_class_wxShowEvent",0); - SWIG_RegisterMapping("_uint","_size_t",0); - SWIG_RegisterMapping("_uint","_unsigned_int",0); - SWIG_RegisterMapping("_uint","_int",0); - SWIG_RegisterMapping("_uint","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxEvent","_wxEvent",0); - SWIG_RegisterMapping("_wxCheckListBox","_class_wxCheckListBox",0); - SWIG_RegisterMapping("_wxGridEvent","_class_wxGridEvent",0); - SWIG_RegisterMapping("_wxRect","_class_wxRect",0); - SWIG_RegisterMapping("_wxCommandEvent","_class_wxCommandEvent",0); - SWIG_RegisterMapping("_wxSizeEvent","_class_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxImage","_wxImage",0); - SWIG_RegisterMapping("_wxPoint","_class_wxPoint",0); - SWIG_RegisterMapping("_class_wxSashLayoutWindow","_wxSashLayoutWindow",0); - SWIG_RegisterMapping("_class_wxButton","_wxButton",0); - SWIG_RegisterMapping("_wxRadioBox","_class_wxRadioBox",0); - SWIG_RegisterMapping("_class_wxFontData","_wxFontData",0); - SWIG_RegisterMapping("_wxBitmap","_class_wxBitmap",0); - SWIG_RegisterMapping("_wxTaskBarIcon","_class_wxTaskBarIcon",0); - SWIG_RegisterMapping("_wxPrintDialog","_class_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPyTimer","_class_wxPyTimer",0); - SWIG_RegisterMapping("_wxWindowDC","_class_wxWindowDC",0); - SWIG_RegisterMapping("_wxScrollBar","_class_wxScrollBar",0); - SWIG_RegisterMapping("_wxSpinButton","_class_wxSpinButton",0); - SWIG_RegisterMapping("_wxToolBarTool","_class_wxToolBarTool",0); - SWIG_RegisterMapping("_wxColourDialog","_class_wxColourDialog",0); - SWIG_RegisterMapping("_class_wxIndividualLayoutConstraint","_wxIndividualLayoutConstraint",0); - SWIG_RegisterMapping("_wxMessageDialog","_class_wxMessageDialog",0); - SWIG_RegisterMapping("_class_wxPyEvent","_wxPyEvent",0); - SWIG_RegisterMapping("_wxTextEntryDialog","_class_wxTextEntryDialog",0); - SWIG_RegisterMapping("_class_wxIconizeEvent","_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxStaticBitmap","_wxStaticBitmap",0); - SWIG_RegisterMapping("_wxMDIChildFrame","_class_wxMDIChildFrame",0); - SWIG_RegisterMapping("_wxListItem","_class_wxListItem",0); - SWIG_RegisterMapping("_class_wxToolBar","_wxToolBar",0); - SWIG_RegisterMapping("_wxScrollEvent","_class_wxScrollEvent",0); - SWIG_RegisterMapping("_wxCalculateLayoutEvent","_class_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_EBool","_signed_int",0); - SWIG_RegisterMapping("_EBool","_int",0); - SWIG_RegisterMapping("_EBool","_wxWindowID",0); - SWIG_RegisterMapping("_class_wxRegion","_wxRegion",0); - SWIG_RegisterMapping("_class_wxDropFilesEvent","_wxDropFilesEvent",0); - SWIG_RegisterMapping("_wxStaticText","_class_wxStaticText",0); - SWIG_RegisterMapping("_wxFont","_class_wxFont",0); - SWIG_RegisterMapping("_wxCloseEvent","_class_wxCloseEvent",0); - SWIG_RegisterMapping("_wxNotebook","_class_wxNotebook",0); - SWIG_RegisterMapping("_unsigned_long","_wxDash",0); - SWIG_RegisterMapping("_unsigned_long","_long",0); - SWIG_RegisterMapping("_class_wxRect","_wxRect",0); - SWIG_RegisterMapping("_class_wxDC","_wxDC",0); - SWIG_RegisterMapping("_wxPyApp","_class_wxPyApp",0); - SWIG_RegisterMapping("_wxMDIParentFrame","_class_wxMDIParentFrame",0); - SWIG_RegisterMapping("_class_wxTreeEvent","_wxTreeEvent",0); - SWIG_RegisterMapping("_class_wxDirDialog","_wxDirDialog",0); - SWIG_RegisterMapping("_class_wxPyTimer","_wxPyTimer",0); - SWIG_RegisterMapping("_wxFocusEvent","_class_wxFocusEvent",0); - SWIG_RegisterMapping("_wxMaximizeEvent","_class_wxMaximizeEvent",0); - SWIG_RegisterMapping("_class_wxSpinButton","_wxSpinButton",0); - SWIG_RegisterMapping("_wxAcceleratorEntry","_class_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxPanel","_wxPanel",0); - SWIG_RegisterMapping("_class_wxCheckBox","_wxCheckBox",0); - SWIG_RegisterMapping("_wxComboBox","_class_wxComboBox",0); - SWIG_RegisterMapping("_wxRadioButton","_class_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxMessageDialog","_wxMessageDialog",0); - SWIG_RegisterMapping("_signed_int","_EBool",0); - SWIG_RegisterMapping("_signed_int","_wxWindowID",0); - SWIG_RegisterMapping("_signed_int","_int",0); - SWIG_RegisterMapping("_class_wxTextCtrl","_wxTextCtrl",0); - SWIG_RegisterMapping("_wxLayoutConstraints","_class_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxMetaFileDC","_class_wxMetaFileDC",0); - SWIG_RegisterMapping("_wxMenu","_class_wxMenu",0); - SWIG_RegisterMapping("_class_wxMoveEvent","_wxMoveEvent",0); - SWIG_RegisterMapping("_wxListBox","_class_wxListBox",0); - SWIG_RegisterMapping("_wxScreenDC","_class_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxMDIChildFrame","_wxMDIChildFrame",0); - SWIG_RegisterMapping("_WXTYPE","_short",0); - SWIG_RegisterMapping("_WXTYPE","_signed_short",0); - SWIG_RegisterMapping("_WXTYPE","_unsigned_short",0); - SWIG_RegisterMapping("_wxFileDialog","_class_wxFileDialog",0); - SWIG_RegisterMapping("_class_wxMDIClientWindow","_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxBrush","_wxBrush",0); - SWIG_RegisterMapping("_unsigned_short","_WXTYPE",0); - SWIG_RegisterMapping("_unsigned_short","_short",0); - SWIG_RegisterMapping("_class_wxWindow","_wxWindow",0); - SWIG_RegisterMapping("_wxSplitterWindow","_class_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxStaticText","_wxStaticText",0); - SWIG_RegisterMapping("_wxPrintDialogData","_class_wxPrintDialogData",0); - SWIG_RegisterMapping("_class_wxFont","_wxFont",0); - SWIG_RegisterMapping("_class_wxCloseEvent","_wxCloseEvent",0); - SWIG_RegisterMapping("_wxSashEvent","_class_wxSashEvent",0); - SWIG_RegisterMapping("_class_wxMenuEvent","_wxMenuEvent",0); - SWIG_RegisterMapping("_wxClientDC","_class_wxClientDC",0); - SWIG_RegisterMapping("_wxMouseEvent","_class_wxMouseEvent",0); - SWIG_RegisterMapping("_wxListCtrl","_class_wxListCtrl",0); - SWIG_RegisterMapping("_wxSingleChoiceDialog","_class_wxSingleChoiceDialog",0); - SWIG_RegisterMapping("_class_wxPoint","_wxPoint",0); - SWIG_RegisterMapping("_wxRealPoint","_class_wxRealPoint",0); - SWIG_RegisterMapping("_class_wxRadioBox","_wxRadioBox",0); - SWIG_RegisterMapping("_wxGridCell","_class_wxGridCell",0); - SWIG_RegisterMapping("_signed_short","_WXTYPE",0); - SWIG_RegisterMapping("_signed_short","_short",0); - SWIG_RegisterMapping("_wxMemoryDC","_class_wxMemoryDC",0); - SWIG_RegisterMapping("_class_wxTaskBarIcon","_wxTaskBarIcon",0); - SWIG_RegisterMapping("_class_wxPrintDialog","_wxPrintDialog",0); - SWIG_RegisterMapping("_wxPaintDC","_class_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxWindowDC","_wxWindowDC",0); - SWIG_RegisterMapping("_class_wxFocusEvent","_wxFocusEvent",0); - SWIG_RegisterMapping("_class_wxMaximizeEvent","_wxMaximizeEvent",0); - SWIG_RegisterMapping("_wxStatusBar","_class_wxStatusBar",0); - SWIG_RegisterMapping("_class_wxToolBarTool","_wxToolBarTool",0); - SWIG_RegisterMapping("_class_wxAcceleratorEntry","_wxAcceleratorEntry",0); - SWIG_RegisterMapping("_class_wxCursor","_wxCursor",0); - SWIG_RegisterMapping("_class_wxImageHandler","_wxImageHandler",0); - SWIG_RegisterMapping("_wxScrolledWindow","_class_wxScrolledWindow",0); - SWIG_RegisterMapping("_wxTreeItemId","_class_wxTreeItemId",0); - SWIG_RegisterMapping("_unsigned_char","_byte",0); - SWIG_RegisterMapping("_class_wxMetaFileDC","_wxMetaFileDC",0); - SWIG_RegisterMapping("_class_wxMenu","_wxMenu",0); - SWIG_RegisterMapping("_wxControl","_class_wxControl",0); - SWIG_RegisterMapping("_class_wxListBox","_wxListBox",0); - SWIG_RegisterMapping("_unsigned_int","_size_t",0); - SWIG_RegisterMapping("_unsigned_int","_uint",0); - SWIG_RegisterMapping("_unsigned_int","_wxWindowID",0); - SWIG_RegisterMapping("_unsigned_int","_int",0); - SWIG_RegisterMapping("_wxIcon","_class_wxIcon",0); - SWIG_RegisterMapping("_wxDialog","_class_wxDialog",0); - SWIG_RegisterMapping("_class_wxPyMenu","_wxPyMenu",0); - SWIG_RegisterMapping("_class_wxListItem","_wxListItem",0); - SWIG_RegisterMapping("_class_wxPen","_wxPen",0); - SWIG_RegisterMapping("_class_wxFileDialog","_wxFileDialog",0); - SWIG_RegisterMapping("_wxQueryLayoutInfoEvent","_class_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_short","_WXTYPE",0); - SWIG_RegisterMapping("_short","_unsigned_short",0); - SWIG_RegisterMapping("_short","_signed_short",0); - SWIG_RegisterMapping("_class_wxStaticBox","_wxStaticBox",0); - SWIG_RegisterMapping("_wxLayoutAlgorithm","_class_wxLayoutAlgorithm",0); - SWIG_RegisterMapping("_class_wxScrollEvent","_wxScrollEvent",0); - SWIG_RegisterMapping("_wxJoystickEvent","_class_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxChoice","_wxChoice",0); - SWIG_RegisterMapping("_class_wxSlider","_wxSlider",0); - SWIG_RegisterMapping("_class_wxCalculateLayoutEvent","_wxCalculateLayoutEvent",0); - SWIG_RegisterMapping("_class_wxImageList","_wxImageList",0); - SWIG_RegisterMapping("_class_wxBitmapButton","_wxBitmapButton",0); - SWIG_RegisterMapping("_wxFrame","_class_wxFrame",0); - SWIG_RegisterMapping("_class_wxNotebook","_wxNotebook",0); - SWIG_RegisterMapping("_wxJPEGHandler","_class_wxJPEGHandler",0); - SWIG_RegisterMapping("_wxWindowID","_size_t",0); - SWIG_RegisterMapping("_wxWindowID","_EBool",0); - SWIG_RegisterMapping("_wxWindowID","_uint",0); - SWIG_RegisterMapping("_wxWindowID","_int",0); - SWIG_RegisterMapping("_wxWindowID","_signed_int",0); - SWIG_RegisterMapping("_wxWindowID","_unsigned_int",0); - SWIG_RegisterMapping("_int","_size_t",0); - SWIG_RegisterMapping("_int","_EBool",0); - SWIG_RegisterMapping("_int","_uint",0); - SWIG_RegisterMapping("_int","_wxWindowID",0); - SWIG_RegisterMapping("_int","_unsigned_int",0); - SWIG_RegisterMapping("_int","_signed_int",0); - SWIG_RegisterMapping("_class_wxMouseEvent","_wxMouseEvent",0); - SWIG_RegisterMapping("_class_wxListEvent","_wxListEvent",0); - SWIG_RegisterMapping("_class_wxSpinEvent","_wxSpinEvent",0); - SWIG_RegisterMapping("_wxButton","_class_wxButton",0); - SWIG_RegisterMapping("_class_wxPyApp","_wxPyApp",0); - SWIG_RegisterMapping("_wxSize","_class_wxSize",0); - SWIG_RegisterMapping("_wxRegionIterator","_class_wxRegionIterator",0); - SWIG_RegisterMapping("_class_wxPrinterDC","_wxPrinterDC",0); - SWIG_RegisterMapping("_class_wxMDIParentFrame","_wxMDIParentFrame",0); - SWIG_RegisterMapping("_wxPyTreeItemData","_class_wxPyTreeItemData",0); - SWIG_RegisterMapping("_class_wxPaintDC","_wxPaintDC",0); - SWIG_RegisterMapping("_class_wxSysColourChangedEvent","_wxSysColourChangedEvent",0); - SWIG_RegisterMapping("_class_wxInitDialogEvent","_wxInitDialogEvent",0); - SWIG_RegisterMapping("_class_wxComboBox","_wxComboBox",0); - SWIG_RegisterMapping("_class_wxRadioButton","_wxRadioButton",0); - SWIG_RegisterMapping("_class_wxTreeItemId","_wxTreeItemId",0); - SWIG_RegisterMapping("_wxTreeCtrl","_class_wxTreeCtrl",0); - SWIG_RegisterMapping("_class_wxLayoutConstraints","_wxLayoutConstraints",0); - SWIG_RegisterMapping("_wxIconizeEvent","_class_wxIconizeEvent",0); - SWIG_RegisterMapping("_class_wxControl","_wxControl",0); - SWIG_RegisterMapping("_wxStaticBitmap","_class_wxStaticBitmap",0); - SWIG_RegisterMapping("_class_wxIcon","_wxIcon",0); - SWIG_RegisterMapping("_class_wxColour","_wxColour",0); - SWIG_RegisterMapping("_class_wxScreenDC","_wxScreenDC",0); - SWIG_RegisterMapping("_class_wxPageSetupDialog","_wxPageSetupDialog",0); - SWIG_RegisterMapping("_wxPalette","_class_wxPalette",0); - SWIG_RegisterMapping("_class_wxIdleEvent","_wxIdleEvent",0); - SWIG_RegisterMapping("_wxEraseEvent","_class_wxEraseEvent",0); - SWIG_RegisterMapping("_class_wxJoystickEvent","_wxJoystickEvent",0); - SWIG_RegisterMapping("_class_wxMiniFrame","_wxMiniFrame",0); - SWIG_RegisterMapping("_wxFontDialog","_class_wxFontDialog",0); - SWIG_RegisterMapping("_wxRegion","_class_wxRegion",0); - SWIG_RegisterMapping("_class_wxSplitterWindow","_wxSplitterWindow",0); - SWIG_RegisterMapping("_class_wxShowEvent","_wxShowEvent",0); - SWIG_RegisterMapping("_wxActivateEvent","_class_wxActivateEvent",0); - SWIG_RegisterMapping("_wxGauge","_class_wxGauge",0); - SWIG_RegisterMapping("_class_wxCheckListBox","_wxCheckListBox",0); - SWIG_RegisterMapping("_class_wxGridEvent","_wxGridEvent",0); - SWIG_RegisterMapping("_class_wxCommandEvent","_wxCommandEvent",0); - SWIG_RegisterMapping("_class_wxClientDC","_wxClientDC",0); - SWIG_RegisterMapping("_class_wxSizeEvent","_wxSizeEvent",0); - SWIG_RegisterMapping("_class_wxListCtrl","_wxListCtrl",0); - SWIG_RegisterMapping("_class_wxGridCell","_wxGridCell",0); - SWIG_RegisterMapping("_class_wxSize","_wxSize",0); - SWIG_RegisterMapping("_class_wxBitmap","_wxBitmap",0); - SWIG_RegisterMapping("_class_wxMemoryDC","_wxMemoryDC",0); - SWIG_RegisterMapping("_wxMenuBar","_class_wxMenuBar",0); - SWIG_RegisterMapping("_wxTreeEvent","_class_wxTreeEvent",0); - SWIG_RegisterMapping("_wxDirDialog","_class_wxDirDialog",0); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_wxPyApp",SwigwxPyAppTowxEvtHandler); - SWIG_RegisterMapping("_wxEvtHandler","_class_wxEvtHandler",0); - SWIG_RegisterMapping("_wxMenuItem","_class_wxMenuItem",0); - SWIG_RegisterMapping("_class_wxScrollBar","_wxScrollBar",0); - SWIG_RegisterMapping("_class_wxColourDialog","_wxColourDialog",0); - SWIG_RegisterMapping("_wxDash","_unsigned_long",0); - SWIG_RegisterMapping("_wxDash","_long",0); - SWIG_RegisterMapping("_class_wxScrolledWindow","_wxScrolledWindow",0); - SWIG_RegisterMapping("_class_wxTextEntryDialog","_wxTextEntryDialog",0); - SWIG_RegisterMapping("_wxKeyEvent","_class_wxKeyEvent",0); - SWIG_RegisterMapping("_wxMoveEvent","_class_wxMoveEvent",0); - SWIG_RegisterMapping("_wxColourData","_class_wxColourData",0); - SWIG_RegisterMapping("_wxPageSetupDialogData","_class_wxPageSetupDialogData",0); - SWIG_RegisterMapping("_class_wxPalette","_wxPalette",0); - SWIG_RegisterMapping("_class_wxQueryLayoutInfoEvent","_wxQueryLayoutInfoEvent",0); - SWIG_RegisterMapping("_class_wxEraseEvent","_wxEraseEvent",0); - SWIG_RegisterMapping("_wxMDIClientWindow","_class_wxMDIClientWindow",0); - SWIG_RegisterMapping("_class_wxFontDialog","_wxFontDialog",0); - SWIG_RegisterMapping("_wxWindow","_class_wxWindow",0); - SWIG_RegisterMapping("_class_wxFrame","_wxFrame",0); -} diff --git a/utils/wxPython/src/msw/wx.py b/utils/wxPython/src/msw/wx.py deleted file mode 100644 index 104df7325a..0000000000 --- a/utils/wxPython/src/msw/wx.py +++ /dev/null @@ -1,1412 +0,0 @@ -# This file was created automatically by SWIG. -import wxc - -from misc import * - -from windows import * - -from gdi import * - -from events import * - -from mdi import * - -from frames import * - -from stattool import * - -from controls import * - -from controls2 import * - -from windows2 import * - -from cmndlgs import * - -from windows3 import * - -from image import * -class wxPyAppPtr(wxEvtHandlerPtr): - def __init__(self,this): - self.this = this - self.thisown = 0 - def GetAppName(self): - val = wxc.wxPyApp_GetAppName(self.this) - return val - def GetAuto3D(self): - val = wxc.wxPyApp_GetAuto3D(self.this) - return val - def GetClassName(self): - val = wxc.wxPyApp_GetClassName(self.this) - return val - def GetExitOnFrameDelete(self): - val = wxc.wxPyApp_GetExitOnFrameDelete(self.this) - return val - def GetPrintMode(self): - val = wxc.wxPyApp_GetPrintMode(self.this) - return val - def GetTopWindow(self): - val = wxc.wxPyApp_GetTopWindow(self.this) - val = wxWindowPtr(val) - return val - def GetVendorName(self): - val = wxc.wxPyApp_GetVendorName(self.this) - return val - def Dispatch(self): - val = wxc.wxPyApp_Dispatch(self.this) - return val - def ExitMainLoop(self): - val = wxc.wxPyApp_ExitMainLoop(self.this) - return val - def Initialized(self): - val = wxc.wxPyApp_Initialized(self.this) - return val - def MainLoop(self): - val = wxc.wxPyApp_MainLoop(self.this) - return val - def Pending(self): - val = wxc.wxPyApp_Pending(self.this) - return val - def SetAppName(self,arg0): - val = wxc.wxPyApp_SetAppName(self.this,arg0) - return val - def SetAuto3D(self,arg0): - val = wxc.wxPyApp_SetAuto3D(self.this,arg0) - return val - def SetClassName(self,arg0): - val = wxc.wxPyApp_SetClassName(self.this,arg0) - return val - def SetExitOnFrameDelete(self,arg0): - val = wxc.wxPyApp_SetExitOnFrameDelete(self.this,arg0) - return val - def SetPrintMode(self,arg0): - val = wxc.wxPyApp_SetPrintMode(self.this,arg0) - return val - def SetTopWindow(self,arg0): - val = wxc.wxPyApp_SetTopWindow(self.this,arg0.this) - return val - def SetVendorName(self,arg0): - val = wxc.wxPyApp_SetVendorName(self.this,arg0) - return val - def AfterMainLoop(self): - val = wxc.wxPyApp_AfterMainLoop(self.this) - return val - def __repr__(self): - return "" -class wxPyApp(wxPyAppPtr): - def __init__(self) : - self.this = wxc.new_wxPyApp() - self.thisown = 1 - - - - - - -#-------------- FUNCTION WRAPPERS ------------------ - -_wxStart = wxc._wxStart - -_wxSetDictionary = wxc._wxSetDictionary - - - -#-------------- VARIABLE WRAPPERS ------------------ - -wxMAJOR_VERSION = wxc.wxMAJOR_VERSION -wxMINOR_VERSION = wxc.wxMINOR_VERSION -wxRELEASE_NUMBER = wxc.wxRELEASE_NUMBER -wxNOT_FOUND = wxc.wxNOT_FOUND -wxVSCROLL = wxc.wxVSCROLL -wxHSCROLL = wxc.wxHSCROLL -wxCAPTION = wxc.wxCAPTION -wxDOUBLE_BORDER = wxc.wxDOUBLE_BORDER -wxSUNKEN_BORDER = wxc.wxSUNKEN_BORDER -wxRAISED_BORDER = wxc.wxRAISED_BORDER -wxBORDER = wxc.wxBORDER -wxSIMPLE_BORDER = wxc.wxSIMPLE_BORDER -wxSTATIC_BORDER = wxc.wxSTATIC_BORDER -wxTRANSPARENT_WINDOW = wxc.wxTRANSPARENT_WINDOW -wxNO_BORDER = wxc.wxNO_BORDER -wxUSER_COLOURS = wxc.wxUSER_COLOURS -wxNO_3D = wxc.wxNO_3D -wxTAB_TRAVERSAL = wxc.wxTAB_TRAVERSAL -wxHORIZONTAL = wxc.wxHORIZONTAL -wxVERTICAL = wxc.wxVERTICAL -wxBOTH = wxc.wxBOTH -wxCENTER_FRAME = wxc.wxCENTER_FRAME -wxSTAY_ON_TOP = wxc.wxSTAY_ON_TOP -wxICONIZE = wxc.wxICONIZE -wxMINIMIZE = wxc.wxMINIMIZE -wxMAXIMIZE = wxc.wxMAXIMIZE -wxTHICK_FRAME = wxc.wxTHICK_FRAME -wxSYSTEM_MENU = wxc.wxSYSTEM_MENU -wxMINIMIZE_BOX = wxc.wxMINIMIZE_BOX -wxMAXIMIZE_BOX = wxc.wxMAXIMIZE_BOX -wxTINY_CAPTION_HORIZ = wxc.wxTINY_CAPTION_HORIZ -wxTINY_CAPTION_VERT = wxc.wxTINY_CAPTION_VERT -wxRESIZE_BOX = wxc.wxRESIZE_BOX -wxRESIZE_BORDER = wxc.wxRESIZE_BORDER -wxDIALOG_MODAL = wxc.wxDIALOG_MODAL -wxDIALOG_MODELESS = wxc.wxDIALOG_MODELESS -wxDEFAULT_FRAME_STYLE = wxc.wxDEFAULT_FRAME_STYLE -wxDEFAULT_DIALOG_STYLE = wxc.wxDEFAULT_DIALOG_STYLE -wxFRAME_TOOL_WINDOW = wxc.wxFRAME_TOOL_WINDOW -wxCLIP_CHILDREN = wxc.wxCLIP_CHILDREN -wxRETAINED = wxc.wxRETAINED -wxBACKINGSTORE = wxc.wxBACKINGSTORE -wxTB_3DBUTTONS = wxc.wxTB_3DBUTTONS -wxTB_HORIZONTAL = wxc.wxTB_HORIZONTAL -wxTB_VERTICAL = wxc.wxTB_VERTICAL -wxTB_FLAT = wxc.wxTB_FLAT -wxCOLOURED = wxc.wxCOLOURED -wxFIXED_LENGTH = wxc.wxFIXED_LENGTH -wxALIGN_LEFT = wxc.wxALIGN_LEFT -wxALIGN_CENTER = wxc.wxALIGN_CENTER -wxALIGN_CENTRE = wxc.wxALIGN_CENTRE -wxALIGN_RIGHT = wxc.wxALIGN_RIGHT -wxLB_NEEDED_SB = wxc.wxLB_NEEDED_SB -wxLB_ALWAYS_SB = wxc.wxLB_ALWAYS_SB -wxLB_SORT = wxc.wxLB_SORT -wxLB_SINGLE = wxc.wxLB_SINGLE -wxLB_MULTIPLE = wxc.wxLB_MULTIPLE -wxLB_EXTENDED = wxc.wxLB_EXTENDED -wxLB_OWNERDRAW = wxc.wxLB_OWNERDRAW -wxLB_HSCROLL = wxc.wxLB_HSCROLL -wxPROCESS_ENTER = wxc.wxPROCESS_ENTER -wxPASSWORD = wxc.wxPASSWORD -wxTE_PROCESS_ENTER = wxc.wxTE_PROCESS_ENTER -wxTE_PASSWORD = wxc.wxTE_PASSWORD -wxTE_READONLY = wxc.wxTE_READONLY -wxTE_MULTILINE = wxc.wxTE_MULTILINE -wxCB_SIMPLE = wxc.wxCB_SIMPLE -wxCB_DROPDOWN = wxc.wxCB_DROPDOWN -wxCB_SORT = wxc.wxCB_SORT -wxCB_READONLY = wxc.wxCB_READONLY -wxRA_HORIZONTAL = wxc.wxRA_HORIZONTAL -wxRA_VERTICAL = wxc.wxRA_VERTICAL -wxRA_SPECIFY_ROWS = wxc.wxRA_SPECIFY_ROWS -wxRA_SPECIFY_COLS = wxc.wxRA_SPECIFY_COLS -wxRB_GROUP = wxc.wxRB_GROUP -wxGA_PROGRESSBAR = wxc.wxGA_PROGRESSBAR -wxGA_HORIZONTAL = wxc.wxGA_HORIZONTAL -wxGA_VERTICAL = wxc.wxGA_VERTICAL -wxSL_HORIZONTAL = wxc.wxSL_HORIZONTAL -wxSL_VERTICAL = wxc.wxSL_VERTICAL -wxSL_AUTOTICKS = wxc.wxSL_AUTOTICKS -wxSL_LABELS = wxc.wxSL_LABELS -wxSL_LEFT = wxc.wxSL_LEFT -wxSL_TOP = wxc.wxSL_TOP -wxSL_RIGHT = wxc.wxSL_RIGHT -wxSL_BOTTOM = wxc.wxSL_BOTTOM -wxSL_BOTH = wxc.wxSL_BOTH -wxSL_SELRANGE = wxc.wxSL_SELRANGE -wxSB_HORIZONTAL = wxc.wxSB_HORIZONTAL -wxSB_VERTICAL = wxc.wxSB_VERTICAL -wxST_SIZEGRIP = wxc.wxST_SIZEGRIP -wxBU_AUTODRAW = wxc.wxBU_AUTODRAW -wxBU_NOAUTODRAW = wxc.wxBU_NOAUTODRAW -wxTR_HAS_BUTTONS = wxc.wxTR_HAS_BUTTONS -wxTR_EDIT_LABELS = wxc.wxTR_EDIT_LABELS -wxTR_LINES_AT_ROOT = wxc.wxTR_LINES_AT_ROOT -wxLC_ICON = wxc.wxLC_ICON -wxLC_SMALL_ICON = wxc.wxLC_SMALL_ICON -wxLC_LIST = wxc.wxLC_LIST -wxLC_REPORT = wxc.wxLC_REPORT -wxLC_ALIGN_TOP = wxc.wxLC_ALIGN_TOP -wxLC_ALIGN_LEFT = wxc.wxLC_ALIGN_LEFT -wxLC_AUTOARRANGE = wxc.wxLC_AUTOARRANGE -wxLC_USER_TEXT = wxc.wxLC_USER_TEXT -wxLC_EDIT_LABELS = wxc.wxLC_EDIT_LABELS -wxLC_NO_HEADER = wxc.wxLC_NO_HEADER -wxLC_NO_SORT_HEADER = wxc.wxLC_NO_SORT_HEADER -wxLC_SINGLE_SEL = wxc.wxLC_SINGLE_SEL -wxLC_SORT_ASCENDING = wxc.wxLC_SORT_ASCENDING -wxLC_SORT_DESCENDING = wxc.wxLC_SORT_DESCENDING -wxLC_MASK_TYPE = wxc.wxLC_MASK_TYPE -wxLC_MASK_ALIGN = wxc.wxLC_MASK_ALIGN -wxLC_MASK_SORT = wxc.wxLC_MASK_SORT -wxSP_VERTICAL = wxc.wxSP_VERTICAL -wxSP_HORIZONTAL = wxc.wxSP_HORIZONTAL -wxSP_ARROW_KEYS = wxc.wxSP_ARROW_KEYS -wxSP_WRAP = wxc.wxSP_WRAP -wxSP_NOBORDER = wxc.wxSP_NOBORDER -wxSP_3D = wxc.wxSP_3D -wxSP_BORDER = wxc.wxSP_BORDER -wxFLOOD_SURFACE = wxc.wxFLOOD_SURFACE -wxFLOOD_BORDER = wxc.wxFLOOD_BORDER -wxODDEVEN_RULE = wxc.wxODDEVEN_RULE -wxWINDING_RULE = wxc.wxWINDING_RULE -wxTOOL_TOP = wxc.wxTOOL_TOP -wxTOOL_BOTTOM = wxc.wxTOOL_BOTTOM -wxTOOL_LEFT = wxc.wxTOOL_LEFT -wxTOOL_RIGHT = wxc.wxTOOL_RIGHT -wxOK = wxc.wxOK -wxYES_NO = wxc.wxYES_NO -wxCANCEL = wxc.wxCANCEL -wxYES = wxc.wxYES -wxNO = wxc.wxNO -wxICON_EXCLAMATION = wxc.wxICON_EXCLAMATION -wxICON_HAND = wxc.wxICON_HAND -wxICON_QUESTION = wxc.wxICON_QUESTION -wxICON_INFORMATION = wxc.wxICON_INFORMATION -wxICON_STOP = wxc.wxICON_STOP -wxICON_ASTERISK = wxc.wxICON_ASTERISK -wxICON_MASK = wxc.wxICON_MASK -wxCENTRE = wxc.wxCENTRE -wxCENTER = wxc.wxCENTER -wxSIZE_AUTO_WIDTH = wxc.wxSIZE_AUTO_WIDTH -wxSIZE_AUTO_HEIGHT = wxc.wxSIZE_AUTO_HEIGHT -wxSIZE_AUTO = wxc.wxSIZE_AUTO -wxSIZE_USE_EXISTING = wxc.wxSIZE_USE_EXISTING -wxSIZE_ALLOW_MINUS_ONE = wxc.wxSIZE_ALLOW_MINUS_ONE -wxDF_TEXT = wxc.wxDF_TEXT -wxDF_BITMAP = wxc.wxDF_BITMAP -wxDF_METAFILE = wxc.wxDF_METAFILE -wxDF_DIB = wxc.wxDF_DIB -wxDF_OEMTEXT = wxc.wxDF_OEMTEXT -wxDF_FILENAME = wxc.wxDF_FILENAME -wxPORTRAIT = wxc.wxPORTRAIT -wxLANDSCAPE = wxc.wxLANDSCAPE -wxID_OPEN = wxc.wxID_OPEN -wxID_CLOSE = wxc.wxID_CLOSE -wxID_NEW = wxc.wxID_NEW -wxID_SAVE = wxc.wxID_SAVE -wxID_SAVEAS = wxc.wxID_SAVEAS -wxID_REVERT = wxc.wxID_REVERT -wxID_EXIT = wxc.wxID_EXIT -wxID_UNDO = wxc.wxID_UNDO -wxID_REDO = wxc.wxID_REDO -wxID_HELP = wxc.wxID_HELP -wxID_PRINT = wxc.wxID_PRINT -wxID_PRINT_SETUP = wxc.wxID_PRINT_SETUP -wxID_PREVIEW = wxc.wxID_PREVIEW -wxID_ABOUT = wxc.wxID_ABOUT -wxID_HELP_CONTENTS = wxc.wxID_HELP_CONTENTS -wxID_HELP_COMMANDS = wxc.wxID_HELP_COMMANDS -wxID_HELP_PROCEDURES = wxc.wxID_HELP_PROCEDURES -wxID_HELP_CONTEXT = wxc.wxID_HELP_CONTEXT -wxID_CUT = wxc.wxID_CUT -wxID_COPY = wxc.wxID_COPY -wxID_PASTE = wxc.wxID_PASTE -wxID_CLEAR = wxc.wxID_CLEAR -wxID_FIND = wxc.wxID_FIND -wxID_FILE1 = wxc.wxID_FILE1 -wxID_FILE2 = wxc.wxID_FILE2 -wxID_FILE3 = wxc.wxID_FILE3 -wxID_FILE4 = wxc.wxID_FILE4 -wxID_FILE5 = wxc.wxID_FILE5 -wxID_FILE6 = wxc.wxID_FILE6 -wxID_FILE7 = wxc.wxID_FILE7 -wxID_FILE8 = wxc.wxID_FILE8 -wxID_FILE9 = wxc.wxID_FILE9 -wxID_OK = wxc.wxID_OK -wxID_CANCEL = wxc.wxID_CANCEL -wxID_APPLY = wxc.wxID_APPLY -wxID_YES = wxc.wxID_YES -wxID_NO = wxc.wxID_NO -wxID_STATIC = wxc.wxID_STATIC -wxBITMAP_TYPE_BMP = wxc.wxBITMAP_TYPE_BMP -wxBITMAP_TYPE_BMP_RESOURCE = wxc.wxBITMAP_TYPE_BMP_RESOURCE -wxBITMAP_TYPE_ICO = wxc.wxBITMAP_TYPE_ICO -wxBITMAP_TYPE_ICO_RESOURCE = wxc.wxBITMAP_TYPE_ICO_RESOURCE -wxBITMAP_TYPE_CUR = wxc.wxBITMAP_TYPE_CUR -wxBITMAP_TYPE_CUR_RESOURCE = wxc.wxBITMAP_TYPE_CUR_RESOURCE -wxBITMAP_TYPE_XBM = wxc.wxBITMAP_TYPE_XBM -wxBITMAP_TYPE_XBM_DATA = wxc.wxBITMAP_TYPE_XBM_DATA -wxBITMAP_TYPE_XPM = wxc.wxBITMAP_TYPE_XPM -wxBITMAP_TYPE_XPM_DATA = wxc.wxBITMAP_TYPE_XPM_DATA -wxBITMAP_TYPE_TIF = wxc.wxBITMAP_TYPE_TIF -wxBITMAP_TYPE_TIF_RESOURCE = wxc.wxBITMAP_TYPE_TIF_RESOURCE -wxBITMAP_TYPE_GIF = wxc.wxBITMAP_TYPE_GIF -wxBITMAP_TYPE_GIF_RESOURCE = wxc.wxBITMAP_TYPE_GIF_RESOURCE -wxBITMAP_TYPE_PNG = wxc.wxBITMAP_TYPE_PNG -wxBITMAP_TYPE_PNG_RESOURCE = wxc.wxBITMAP_TYPE_PNG_RESOURCE -wxBITMAP_TYPE_ANY = wxc.wxBITMAP_TYPE_ANY -wxBITMAP_TYPE_RESOURCE = wxc.wxBITMAP_TYPE_RESOURCE -wxBITMAP_TYPE_JPEG = wxc.wxBITMAP_TYPE_JPEG -wxOPEN = wxc.wxOPEN -wxSAVE = wxc.wxSAVE -wxHIDE_READONLY = wxc.wxHIDE_READONLY -wxOVERWRITE_PROMPT = wxc.wxOVERWRITE_PROMPT -wxACCEL_ALT = wxc.wxACCEL_ALT -wxACCEL_CTRL = wxc.wxACCEL_CTRL -wxACCEL_SHIFT = wxc.wxACCEL_SHIFT -wxDEFAULT = wxc.wxDEFAULT -wxDECORATIVE = wxc.wxDECORATIVE -wxROMAN = wxc.wxROMAN -wxSCRIPT = wxc.wxSCRIPT -wxSWISS = wxc.wxSWISS -wxMODERN = wxc.wxMODERN -wxTELETYPE = wxc.wxTELETYPE -wxVARIABLE = wxc.wxVARIABLE -wxFIXED = wxc.wxFIXED -wxNORMAL = wxc.wxNORMAL -wxLIGHT = wxc.wxLIGHT -wxBOLD = wxc.wxBOLD -wxITALIC = wxc.wxITALIC -wxSLANT = wxc.wxSLANT -wxSOLID = wxc.wxSOLID -wxDOT = wxc.wxDOT -wxLONG_DASH = wxc.wxLONG_DASH -wxSHORT_DASH = wxc.wxSHORT_DASH -wxDOT_DASH = wxc.wxDOT_DASH -wxUSER_DASH = wxc.wxUSER_DASH -wxTRANSPARENT = wxc.wxTRANSPARENT -wxSTIPPLE = wxc.wxSTIPPLE -wxBDIAGONAL_HATCH = wxc.wxBDIAGONAL_HATCH -wxCROSSDIAG_HATCH = wxc.wxCROSSDIAG_HATCH -wxFDIAGONAL_HATCH = wxc.wxFDIAGONAL_HATCH -wxCROSS_HATCH = wxc.wxCROSS_HATCH -wxHORIZONTAL_HATCH = wxc.wxHORIZONTAL_HATCH -wxVERTICAL_HATCH = wxc.wxVERTICAL_HATCH -wxJOIN_BEVEL = wxc.wxJOIN_BEVEL -wxJOIN_MITER = wxc.wxJOIN_MITER -wxJOIN_ROUND = wxc.wxJOIN_ROUND -wxCAP_ROUND = wxc.wxCAP_ROUND -wxCAP_PROJECTING = wxc.wxCAP_PROJECTING -wxCAP_BUTT = wxc.wxCAP_BUTT -wxCLEAR = wxc.wxCLEAR -wxXOR = wxc.wxXOR -wxINVERT = wxc.wxINVERT -wxOR_REVERSE = wxc.wxOR_REVERSE -wxAND_REVERSE = wxc.wxAND_REVERSE -wxCOPY = wxc.wxCOPY -wxAND = wxc.wxAND -wxAND_INVERT = wxc.wxAND_INVERT -wxNO_OP = wxc.wxNO_OP -wxNOR = wxc.wxNOR -wxEQUIV = wxc.wxEQUIV -wxSRC_INVERT = wxc.wxSRC_INVERT -wxOR_INVERT = wxc.wxOR_INVERT -wxNAND = wxc.wxNAND -wxOR = wxc.wxOR -wxSET = wxc.wxSET -wxSRC_OR = wxc.wxSRC_OR -wxSRC_AND = wxc.wxSRC_AND -WXK_BACK = wxc.WXK_BACK -WXK_TAB = wxc.WXK_TAB -WXK_RETURN = wxc.WXK_RETURN -WXK_ESCAPE = wxc.WXK_ESCAPE -WXK_SPACE = wxc.WXK_SPACE -WXK_DELETE = wxc.WXK_DELETE -WXK_START = wxc.WXK_START -WXK_LBUTTON = wxc.WXK_LBUTTON -WXK_RBUTTON = wxc.WXK_RBUTTON -WXK_CANCEL = wxc.WXK_CANCEL -WXK_MBUTTON = wxc.WXK_MBUTTON -WXK_CLEAR = wxc.WXK_CLEAR -WXK_SHIFT = wxc.WXK_SHIFT -WXK_CONTROL = wxc.WXK_CONTROL -WXK_MENU = wxc.WXK_MENU -WXK_PAUSE = wxc.WXK_PAUSE -WXK_CAPITAL = wxc.WXK_CAPITAL -WXK_PRIOR = wxc.WXK_PRIOR -WXK_NEXT = wxc.WXK_NEXT -WXK_END = wxc.WXK_END -WXK_HOME = wxc.WXK_HOME -WXK_LEFT = wxc.WXK_LEFT -WXK_UP = wxc.WXK_UP -WXK_RIGHT = wxc.WXK_RIGHT -WXK_DOWN = wxc.WXK_DOWN -WXK_SELECT = wxc.WXK_SELECT -WXK_PRINT = wxc.WXK_PRINT -WXK_EXECUTE = wxc.WXK_EXECUTE -WXK_SNAPSHOT = wxc.WXK_SNAPSHOT -WXK_INSERT = wxc.WXK_INSERT -WXK_HELP = wxc.WXK_HELP -WXK_NUMPAD0 = wxc.WXK_NUMPAD0 -WXK_NUMPAD1 = wxc.WXK_NUMPAD1 -WXK_NUMPAD2 = wxc.WXK_NUMPAD2 -WXK_NUMPAD3 = wxc.WXK_NUMPAD3 -WXK_NUMPAD4 = wxc.WXK_NUMPAD4 -WXK_NUMPAD5 = wxc.WXK_NUMPAD5 -WXK_NUMPAD6 = wxc.WXK_NUMPAD6 -WXK_NUMPAD7 = wxc.WXK_NUMPAD7 -WXK_NUMPAD8 = wxc.WXK_NUMPAD8 -WXK_NUMPAD9 = wxc.WXK_NUMPAD9 -WXK_MULTIPLY = wxc.WXK_MULTIPLY -WXK_ADD = wxc.WXK_ADD -WXK_SEPARATOR = wxc.WXK_SEPARATOR -WXK_SUBTRACT = wxc.WXK_SUBTRACT -WXK_DECIMAL = wxc.WXK_DECIMAL -WXK_DIVIDE = wxc.WXK_DIVIDE -WXK_F1 = wxc.WXK_F1 -WXK_F2 = wxc.WXK_F2 -WXK_F3 = wxc.WXK_F3 -WXK_F4 = wxc.WXK_F4 -WXK_F5 = wxc.WXK_F5 -WXK_F6 = wxc.WXK_F6 -WXK_F7 = wxc.WXK_F7 -WXK_F8 = wxc.WXK_F8 -WXK_F9 = wxc.WXK_F9 -WXK_F10 = wxc.WXK_F10 -WXK_F11 = wxc.WXK_F11 -WXK_F12 = wxc.WXK_F12 -WXK_F13 = wxc.WXK_F13 -WXK_F14 = wxc.WXK_F14 -WXK_F15 = wxc.WXK_F15 -WXK_F16 = wxc.WXK_F16 -WXK_F17 = wxc.WXK_F17 -WXK_F18 = wxc.WXK_F18 -WXK_F19 = wxc.WXK_F19 -WXK_F20 = wxc.WXK_F20 -WXK_F21 = wxc.WXK_F21 -WXK_F22 = wxc.WXK_F22 -WXK_F23 = wxc.WXK_F23 -WXK_F24 = wxc.WXK_F24 -WXK_NUMLOCK = wxc.WXK_NUMLOCK -WXK_SCROLL = wxc.WXK_SCROLL -WXK_PAGEUP = wxc.WXK_PAGEUP -WXK_PAGEDOWN = wxc.WXK_PAGEDOWN -wxCURSOR_NONE = wxc.wxCURSOR_NONE -wxCURSOR_ARROW = wxc.wxCURSOR_ARROW -wxCURSOR_BULLSEYE = wxc.wxCURSOR_BULLSEYE -wxCURSOR_CHAR = wxc.wxCURSOR_CHAR -wxCURSOR_CROSS = wxc.wxCURSOR_CROSS -wxCURSOR_HAND = wxc.wxCURSOR_HAND -wxCURSOR_IBEAM = wxc.wxCURSOR_IBEAM -wxCURSOR_LEFT_BUTTON = wxc.wxCURSOR_LEFT_BUTTON -wxCURSOR_MAGNIFIER = wxc.wxCURSOR_MAGNIFIER -wxCURSOR_MIDDLE_BUTTON = wxc.wxCURSOR_MIDDLE_BUTTON -wxCURSOR_NO_ENTRY = wxc.wxCURSOR_NO_ENTRY -wxCURSOR_PAINT_BRUSH = wxc.wxCURSOR_PAINT_BRUSH -wxCURSOR_PENCIL = wxc.wxCURSOR_PENCIL -wxCURSOR_POINT_LEFT = wxc.wxCURSOR_POINT_LEFT -wxCURSOR_POINT_RIGHT = wxc.wxCURSOR_POINT_RIGHT -wxCURSOR_QUESTION_ARROW = wxc.wxCURSOR_QUESTION_ARROW -wxCURSOR_RIGHT_BUTTON = wxc.wxCURSOR_RIGHT_BUTTON -wxCURSOR_SIZENESW = wxc.wxCURSOR_SIZENESW -wxCURSOR_SIZENS = wxc.wxCURSOR_SIZENS -wxCURSOR_SIZENWSE = wxc.wxCURSOR_SIZENWSE -wxCURSOR_SIZEWE = wxc.wxCURSOR_SIZEWE -wxCURSOR_SIZING = wxc.wxCURSOR_SIZING -wxCURSOR_SPRAYCAN = wxc.wxCURSOR_SPRAYCAN -wxCURSOR_WAIT = wxc.wxCURSOR_WAIT -wxCURSOR_WATCH = wxc.wxCURSOR_WATCH -wxCURSOR_BLANK = wxc.wxCURSOR_BLANK -wxPAPER_NONE = wxc.wxPAPER_NONE -wxPAPER_LETTER = wxc.wxPAPER_LETTER -wxPAPER_LEGAL = wxc.wxPAPER_LEGAL -wxPAPER_A4 = wxc.wxPAPER_A4 -wxPAPER_CSHEET = wxc.wxPAPER_CSHEET -wxPAPER_DSHEET = wxc.wxPAPER_DSHEET -wxPAPER_ESHEET = wxc.wxPAPER_ESHEET -wxPAPER_LETTERSMALL = wxc.wxPAPER_LETTERSMALL -wxPAPER_TABLOID = wxc.wxPAPER_TABLOID -wxPAPER_LEDGER = wxc.wxPAPER_LEDGER -wxPAPER_STATEMENT = wxc.wxPAPER_STATEMENT -wxPAPER_EXECUTIVE = wxc.wxPAPER_EXECUTIVE -wxPAPER_A3 = wxc.wxPAPER_A3 -wxPAPER_A4SMALL = wxc.wxPAPER_A4SMALL -wxPAPER_A5 = wxc.wxPAPER_A5 -wxPAPER_B4 = wxc.wxPAPER_B4 -wxPAPER_B5 = wxc.wxPAPER_B5 -wxPAPER_FOLIO = wxc.wxPAPER_FOLIO -wxPAPER_QUARTO = wxc.wxPAPER_QUARTO -wxPAPER_10X14 = wxc.wxPAPER_10X14 -wxPAPER_11X17 = wxc.wxPAPER_11X17 -wxPAPER_NOTE = wxc.wxPAPER_NOTE -wxPAPER_ENV_9 = wxc.wxPAPER_ENV_9 -wxPAPER_ENV_10 = wxc.wxPAPER_ENV_10 -wxPAPER_ENV_11 = wxc.wxPAPER_ENV_11 -wxPAPER_ENV_12 = wxc.wxPAPER_ENV_12 -wxPAPER_ENV_14 = wxc.wxPAPER_ENV_14 -wxPAPER_ENV_DL = wxc.wxPAPER_ENV_DL -wxPAPER_ENV_C5 = wxc.wxPAPER_ENV_C5 -wxPAPER_ENV_C3 = wxc.wxPAPER_ENV_C3 -wxPAPER_ENV_C4 = wxc.wxPAPER_ENV_C4 -wxPAPER_ENV_C6 = wxc.wxPAPER_ENV_C6 -wxPAPER_ENV_C65 = wxc.wxPAPER_ENV_C65 -wxPAPER_ENV_B4 = wxc.wxPAPER_ENV_B4 -wxPAPER_ENV_B5 = wxc.wxPAPER_ENV_B5 -wxPAPER_ENV_B6 = wxc.wxPAPER_ENV_B6 -wxPAPER_ENV_ITALY = wxc.wxPAPER_ENV_ITALY -wxPAPER_ENV_MONARCH = wxc.wxPAPER_ENV_MONARCH -wxPAPER_ENV_PERSONAL = wxc.wxPAPER_ENV_PERSONAL -wxPAPER_FANFOLD_US = wxc.wxPAPER_FANFOLD_US -wxPAPER_FANFOLD_STD_GERMAN = wxc.wxPAPER_FANFOLD_STD_GERMAN -wxPAPER_FANFOLD_LGL_GERMAN = wxc.wxPAPER_FANFOLD_LGL_GERMAN -wxPAPER_ISO_B4 = wxc.wxPAPER_ISO_B4 -wxPAPER_JAPANESE_POSTCARD = wxc.wxPAPER_JAPANESE_POSTCARD -wxPAPER_9X11 = wxc.wxPAPER_9X11 -wxPAPER_10X11 = wxc.wxPAPER_10X11 -wxPAPER_15X11 = wxc.wxPAPER_15X11 -wxPAPER_ENV_INVITE = wxc.wxPAPER_ENV_INVITE -wxPAPER_LETTER_EXTRA = wxc.wxPAPER_LETTER_EXTRA -wxPAPER_LEGAL_EXTRA = wxc.wxPAPER_LEGAL_EXTRA -wxPAPER_TABLOID_EXTRA = wxc.wxPAPER_TABLOID_EXTRA -wxPAPER_A4_EXTRA = wxc.wxPAPER_A4_EXTRA -wxPAPER_LETTER_TRANSVERSE = wxc.wxPAPER_LETTER_TRANSVERSE -wxPAPER_A4_TRANSVERSE = wxc.wxPAPER_A4_TRANSVERSE -wxPAPER_LETTER_EXTRA_TRANSVERSE = wxc.wxPAPER_LETTER_EXTRA_TRANSVERSE -wxPAPER_A_PLUS = wxc.wxPAPER_A_PLUS -wxPAPER_B_PLUS = wxc.wxPAPER_B_PLUS -wxPAPER_LETTER_PLUS = wxc.wxPAPER_LETTER_PLUS -wxPAPER_A4_PLUS = wxc.wxPAPER_A4_PLUS -wxPAPER_A5_TRANSVERSE = wxc.wxPAPER_A5_TRANSVERSE -wxPAPER_B5_TRANSVERSE = wxc.wxPAPER_B5_TRANSVERSE -wxPAPER_A3_EXTRA = wxc.wxPAPER_A3_EXTRA -wxPAPER_A5_EXTRA = wxc.wxPAPER_A5_EXTRA -wxPAPER_B5_EXTRA = wxc.wxPAPER_B5_EXTRA -wxPAPER_A2 = wxc.wxPAPER_A2 -wxPAPER_A3_TRANSVERSE = wxc.wxPAPER_A3_TRANSVERSE -wxPAPER_A3_EXTRA_TRANSVERSE = wxc.wxPAPER_A3_EXTRA_TRANSVERSE -FALSE = wxc.FALSE -false = wxc.false -TRUE = wxc.TRUE -true = wxc.true -wxVERSION_STRING = wxc.wxVERSION_STRING -wxEVT_NULL = wxc.wxEVT_NULL -wxEVT_FIRST = wxc.wxEVT_FIRST -wxEVT_COMMAND_BUTTON_CLICKED = wxc.wxEVT_COMMAND_BUTTON_CLICKED -wxEVT_COMMAND_CHECKBOX_CLICKED = wxc.wxEVT_COMMAND_CHECKBOX_CLICKED -wxEVT_COMMAND_CHOICE_SELECTED = wxc.wxEVT_COMMAND_CHOICE_SELECTED -wxEVT_COMMAND_LISTBOX_SELECTED = wxc.wxEVT_COMMAND_LISTBOX_SELECTED -wxEVT_COMMAND_LISTBOX_DOUBLECLICKED = wxc.wxEVT_COMMAND_LISTBOX_DOUBLECLICKED -wxEVT_COMMAND_CHECKLISTBOX_TOGGLED = wxc.wxEVT_COMMAND_CHECKLISTBOX_TOGGLED -wxEVT_COMMAND_TEXT_UPDATED = wxc.wxEVT_COMMAND_TEXT_UPDATED -wxEVT_COMMAND_TEXT_ENTER = wxc.wxEVT_COMMAND_TEXT_ENTER -wxEVT_COMMAND_MENU_SELECTED = wxc.wxEVT_COMMAND_MENU_SELECTED -wxEVT_COMMAND_SLIDER_UPDATED = wxc.wxEVT_COMMAND_SLIDER_UPDATED -wxEVT_COMMAND_RADIOBOX_SELECTED = wxc.wxEVT_COMMAND_RADIOBOX_SELECTED -wxEVT_COMMAND_RADIOBUTTON_SELECTED = wxc.wxEVT_COMMAND_RADIOBUTTON_SELECTED -wxEVT_COMMAND_SCROLLBAR_UPDATED = wxc.wxEVT_COMMAND_SCROLLBAR_UPDATED -wxEVT_COMMAND_VLBOX_SELECTED = wxc.wxEVT_COMMAND_VLBOX_SELECTED -wxEVT_COMMAND_COMBOBOX_SELECTED = wxc.wxEVT_COMMAND_COMBOBOX_SELECTED -wxEVT_COMMAND_TOOL_CLICKED = wxc.wxEVT_COMMAND_TOOL_CLICKED -wxEVT_COMMAND_TOOL_RCLICKED = wxc.wxEVT_COMMAND_TOOL_RCLICKED -wxEVT_COMMAND_TOOL_ENTER = wxc.wxEVT_COMMAND_TOOL_ENTER -wxEVT_SET_FOCUS = wxc.wxEVT_SET_FOCUS -wxEVT_KILL_FOCUS = wxc.wxEVT_KILL_FOCUS -wxEVT_LEFT_DOWN = wxc.wxEVT_LEFT_DOWN -wxEVT_LEFT_UP = wxc.wxEVT_LEFT_UP -wxEVT_MIDDLE_DOWN = wxc.wxEVT_MIDDLE_DOWN -wxEVT_MIDDLE_UP = wxc.wxEVT_MIDDLE_UP -wxEVT_RIGHT_DOWN = wxc.wxEVT_RIGHT_DOWN -wxEVT_RIGHT_UP = wxc.wxEVT_RIGHT_UP -wxEVT_MOTION = wxc.wxEVT_MOTION -wxEVT_ENTER_WINDOW = wxc.wxEVT_ENTER_WINDOW -wxEVT_LEAVE_WINDOW = wxc.wxEVT_LEAVE_WINDOW -wxEVT_LEFT_DCLICK = wxc.wxEVT_LEFT_DCLICK -wxEVT_MIDDLE_DCLICK = wxc.wxEVT_MIDDLE_DCLICK -wxEVT_RIGHT_DCLICK = wxc.wxEVT_RIGHT_DCLICK -wxEVT_NC_LEFT_DOWN = wxc.wxEVT_NC_LEFT_DOWN -wxEVT_NC_LEFT_UP = wxc.wxEVT_NC_LEFT_UP -wxEVT_NC_MIDDLE_DOWN = wxc.wxEVT_NC_MIDDLE_DOWN -wxEVT_NC_MIDDLE_UP = wxc.wxEVT_NC_MIDDLE_UP -wxEVT_NC_RIGHT_DOWN = wxc.wxEVT_NC_RIGHT_DOWN -wxEVT_NC_RIGHT_UP = wxc.wxEVT_NC_RIGHT_UP -wxEVT_NC_MOTION = wxc.wxEVT_NC_MOTION -wxEVT_NC_ENTER_WINDOW = wxc.wxEVT_NC_ENTER_WINDOW -wxEVT_NC_LEAVE_WINDOW = wxc.wxEVT_NC_LEAVE_WINDOW -wxEVT_NC_LEFT_DCLICK = wxc.wxEVT_NC_LEFT_DCLICK -wxEVT_NC_MIDDLE_DCLICK = wxc.wxEVT_NC_MIDDLE_DCLICK -wxEVT_NC_RIGHT_DCLICK = wxc.wxEVT_NC_RIGHT_DCLICK -wxEVT_CHAR = wxc.wxEVT_CHAR -wxEVT_SCROLL_TOP = wxc.wxEVT_SCROLL_TOP -wxEVT_SCROLL_BOTTOM = wxc.wxEVT_SCROLL_BOTTOM -wxEVT_SCROLL_LINEUP = wxc.wxEVT_SCROLL_LINEUP -wxEVT_SCROLL_LINEDOWN = wxc.wxEVT_SCROLL_LINEDOWN -wxEVT_SCROLL_PAGEUP = wxc.wxEVT_SCROLL_PAGEUP -wxEVT_SCROLL_PAGEDOWN = wxc.wxEVT_SCROLL_PAGEDOWN -wxEVT_SCROLL_THUMBTRACK = wxc.wxEVT_SCROLL_THUMBTRACK -wxEVT_SIZE = wxc.wxEVT_SIZE -wxEVT_MOVE = wxc.wxEVT_MOVE -wxEVT_CLOSE_WINDOW = wxc.wxEVT_CLOSE_WINDOW -wxEVT_END_SESSION = wxc.wxEVT_END_SESSION -wxEVT_QUERY_END_SESSION = wxc.wxEVT_QUERY_END_SESSION -wxEVT_ACTIVATE_APP = wxc.wxEVT_ACTIVATE_APP -wxEVT_POWER = wxc.wxEVT_POWER -wxEVT_CHAR_HOOK = wxc.wxEVT_CHAR_HOOK -wxEVT_KEY_UP = wxc.wxEVT_KEY_UP -wxEVT_ACTIVATE = wxc.wxEVT_ACTIVATE -wxEVT_CREATE = wxc.wxEVT_CREATE -wxEVT_DESTROY = wxc.wxEVT_DESTROY -wxEVT_SHOW = wxc.wxEVT_SHOW -wxEVT_ICONIZE = wxc.wxEVT_ICONIZE -wxEVT_MAXIMIZE = wxc.wxEVT_MAXIMIZE -wxEVT_MOUSE_CAPTURE_CHANGED = wxc.wxEVT_MOUSE_CAPTURE_CHANGED -wxEVT_PAINT = wxc.wxEVT_PAINT -wxEVT_ERASE_BACKGROUND = wxc.wxEVT_ERASE_BACKGROUND -wxEVT_NC_PAINT = wxc.wxEVT_NC_PAINT -wxEVT_PAINT_ICON = wxc.wxEVT_PAINT_ICON -wxEVT_MENU_CHAR = wxc.wxEVT_MENU_CHAR -wxEVT_MENU_INIT = wxc.wxEVT_MENU_INIT -wxEVT_MENU_HIGHLIGHT = wxc.wxEVT_MENU_HIGHLIGHT -wxEVT_POPUP_MENU_INIT = wxc.wxEVT_POPUP_MENU_INIT -wxEVT_CONTEXT_MENU = wxc.wxEVT_CONTEXT_MENU -wxEVT_SYS_COLOUR_CHANGED = wxc.wxEVT_SYS_COLOUR_CHANGED -wxEVT_SETTING_CHANGED = wxc.wxEVT_SETTING_CHANGED -wxEVT_QUERY_NEW_PALETTE = wxc.wxEVT_QUERY_NEW_PALETTE -wxEVT_PALETTE_CHANGED = wxc.wxEVT_PALETTE_CHANGED -wxEVT_JOY_BUTTON_DOWN = wxc.wxEVT_JOY_BUTTON_DOWN -wxEVT_JOY_BUTTON_UP = wxc.wxEVT_JOY_BUTTON_UP -wxEVT_JOY_MOVE = wxc.wxEVT_JOY_MOVE -wxEVT_JOY_ZMOVE = wxc.wxEVT_JOY_ZMOVE -wxEVT_DROP_FILES = wxc.wxEVT_DROP_FILES -wxEVT_DRAW_ITEM = wxc.wxEVT_DRAW_ITEM -wxEVT_MEASURE_ITEM = wxc.wxEVT_MEASURE_ITEM -wxEVT_COMPARE_ITEM = wxc.wxEVT_COMPARE_ITEM -wxEVT_INIT_DIALOG = wxc.wxEVT_INIT_DIALOG -wxEVT_IDLE = wxc.wxEVT_IDLE -wxEVT_UPDATE_UI = wxc.wxEVT_UPDATE_UI -wxEVT_COMMAND_LEFT_CLICK = wxc.wxEVT_COMMAND_LEFT_CLICK -wxEVT_COMMAND_LEFT_DCLICK = wxc.wxEVT_COMMAND_LEFT_DCLICK -wxEVT_COMMAND_RIGHT_CLICK = wxc.wxEVT_COMMAND_RIGHT_CLICK -wxEVT_COMMAND_RIGHT_DCLICK = wxc.wxEVT_COMMAND_RIGHT_DCLICK -wxEVT_COMMAND_SET_FOCUS = wxc.wxEVT_COMMAND_SET_FOCUS -wxEVT_COMMAND_KILL_FOCUS = wxc.wxEVT_COMMAND_KILL_FOCUS -wxEVT_COMMAND_ENTER = wxc.wxEVT_COMMAND_ENTER -wxEVT_COMMAND_TREE_BEGIN_DRAG = wxc.wxEVT_COMMAND_TREE_BEGIN_DRAG -wxEVT_COMMAND_TREE_BEGIN_RDRAG = wxc.wxEVT_COMMAND_TREE_BEGIN_RDRAG -wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT = wxc.wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT -wxEVT_COMMAND_TREE_END_LABEL_EDIT = wxc.wxEVT_COMMAND_TREE_END_LABEL_EDIT -wxEVT_COMMAND_TREE_DELETE_ITEM = wxc.wxEVT_COMMAND_TREE_DELETE_ITEM -wxEVT_COMMAND_TREE_GET_INFO = wxc.wxEVT_COMMAND_TREE_GET_INFO -wxEVT_COMMAND_TREE_SET_INFO = wxc.wxEVT_COMMAND_TREE_SET_INFO -wxEVT_COMMAND_TREE_ITEM_EXPANDED = wxc.wxEVT_COMMAND_TREE_ITEM_EXPANDED -wxEVT_COMMAND_TREE_ITEM_EXPANDING = wxc.wxEVT_COMMAND_TREE_ITEM_EXPANDING -wxEVT_COMMAND_TREE_ITEM_COLLAPSED = wxc.wxEVT_COMMAND_TREE_ITEM_COLLAPSED -wxEVT_COMMAND_TREE_ITEM_COLLAPSING = wxc.wxEVT_COMMAND_TREE_ITEM_COLLAPSING -wxEVT_COMMAND_TREE_SEL_CHANGED = wxc.wxEVT_COMMAND_TREE_SEL_CHANGED -wxEVT_COMMAND_TREE_SEL_CHANGING = wxc.wxEVT_COMMAND_TREE_SEL_CHANGING -wxEVT_COMMAND_TREE_KEY_DOWN = wxc.wxEVT_COMMAND_TREE_KEY_DOWN -wxEVT_COMMAND_LIST_BEGIN_DRAG = wxc.wxEVT_COMMAND_LIST_BEGIN_DRAG -wxEVT_COMMAND_LIST_BEGIN_RDRAG = wxc.wxEVT_COMMAND_LIST_BEGIN_RDRAG -wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT = wxc.wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT -wxEVT_COMMAND_LIST_END_LABEL_EDIT = wxc.wxEVT_COMMAND_LIST_END_LABEL_EDIT -wxEVT_COMMAND_LIST_DELETE_ITEM = wxc.wxEVT_COMMAND_LIST_DELETE_ITEM -wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS = wxc.wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS -wxEVT_COMMAND_LIST_GET_INFO = wxc.wxEVT_COMMAND_LIST_GET_INFO -wxEVT_COMMAND_LIST_SET_INFO = wxc.wxEVT_COMMAND_LIST_SET_INFO -wxEVT_COMMAND_LIST_ITEM_SELECTED = wxc.wxEVT_COMMAND_LIST_ITEM_SELECTED -wxEVT_COMMAND_LIST_ITEM_DESELECTED = wxc.wxEVT_COMMAND_LIST_ITEM_DESELECTED -wxEVT_COMMAND_LIST_KEY_DOWN = wxc.wxEVT_COMMAND_LIST_KEY_DOWN -wxEVT_COMMAND_LIST_INSERT_ITEM = wxc.wxEVT_COMMAND_LIST_INSERT_ITEM -wxEVT_COMMAND_LIST_COL_CLICK = wxc.wxEVT_COMMAND_LIST_COL_CLICK -wxEVT_COMMAND_TAB_SEL_CHANGED = wxc.wxEVT_COMMAND_TAB_SEL_CHANGED -wxEVT_COMMAND_TAB_SEL_CHANGING = wxc.wxEVT_COMMAND_TAB_SEL_CHANGING -wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED = wxc.wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED -wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING = wxc.wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING -__version__ = wxc.__version__ -cvar = wxc.cvar -wxPyDefaultPosition = wxPointPtr(wxc.cvar.wxPyDefaultPosition) -wxPyDefaultSize = wxSizePtr(wxc.cvar.wxPyDefaultSize) - - -#-------------- USER INCLUDE ----------------------- - -#---------------------------------------------------------------------------- -# Name: _extra.py -# Purpose: This file is appended to the shadow class file generated -# by SWIG. We add some unSWIGable things here. -# -# Author: Robin Dunn -# -# Created: 6/30/97 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -import sys - -#---------------------------------------------------------------------- -# This gives this module's dictionary to the C++ extension code... - -_wxSetDictionary(vars()) - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -# Helper function to link python methods to wxWindows virtual -# functions by name. - -def _checkForCallback(obj, name, event, theID=-1): - try: cb = getattr(obj, name) - except: pass - else: obj.Connect(theID, -1, event, cb) - -def _StdWindowCallbacks(win): - _checkForCallback(win, "OnChar", wxEVT_CHAR) - _checkForCallback(win, "OnSize", wxEVT_SIZE) - _checkForCallback(win, "OnEraseBackground", wxEVT_ERASE_BACKGROUND) - _checkForCallback(win, "OnSysColourChanged", wxEVT_SYS_COLOUR_CHANGED) - _checkForCallback(win, "OnInitDialog", wxEVT_INIT_DIALOG) - _checkForCallback(win, "OnPaint", wxEVT_PAINT) - _checkForCallback(win, "OnIdle", wxEVT_IDLE) - - -def _StdFrameCallbacks(win): - _StdWindowCallbacks(win) - _checkForCallback(win, "OnActivate", wxEVT_ACTIVATE) - _checkForCallback(win, "OnMenuHighlight", wxEVT_MENU_HIGHLIGHT) - _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - - -def _StdDialogCallbacks(win): - _StdWindowCallbacks(win) - _checkForCallback(win, "OnOk", wxEVT_COMMAND_BUTTON_CLICKED, wxID_OK) - _checkForCallback(win, "OnApply", wxEVT_COMMAND_BUTTON_CLICKED, wxID_APPLY) - _checkForCallback(win, "OnCancel", wxEVT_COMMAND_BUTTON_CLICKED, wxID_CANCEL) - _checkForCallback(win, "OnCloseWindow", wxEVT_CLOSE_WINDOW) - _checkForCallback(win, "OnCharHook", wxEVT_CHAR_HOOK) - - -def _StdOnScrollCallbacks(win): - try: cb = getattr(win, "OnScroll") - except: pass - else: EVT_SCROLL(win, cb) - - - -#---------------------------------------------------------------------- -#---------------------------------------------------------------------- -# functions that look and act like the C++ Macros of the same name - - -# Miscellaneous -def EVT_SIZE(win, func): - win.Connect(-1, -1, wxEVT_SIZE, func) - -def EVT_MOVE(win, func): - win.Connect(-1, -1, wxEVT_MOVE, func) - -def EVT_CLOSE(win, func): - win.Connect(-1, -1, wxEVT_CLOSE_WINDOW, func) - -def EVT_PAINT(win, func): - win.Connect(-1, -1, wxEVT_PAINT, func) - -def EVT_ERASE_BACKGROUND(win, func): - win.Connect(-1, -1, wxEVT_ERASE_BACKGROUND, func) - -def EVT_CHAR(win, func): - win.Connect(-1, -1, wxEVT_CHAR, func) - -def EVT_CHAR_HOOK(win, func): - win.Connect(-1, -1, wxEVT_CHAR_HOOK, func) - -def EVT_MENU_HIGHLIGHT(win, id, func): - win.Connect(id, -1, wxEVT_MENU_HIGHLIGHT, func) - -def EVT_MENU_HIGHLIGHT_ALL(win, func): - win.Connect(-1, -1, wxEVT_MENU_HIGHLIGHT, func) - -def EVT_SET_FOCUS(win, func): - win.Connect(-1, -1, wxEVT_SET_FOCUS, func) - -def EVT_KILL_FOCUS(win, func): - win.Connect(-1, -1, wxEVT_KILL_FOCUS, func) - -def EVT_ACTIVATE(win, func): - win.Connect(-1, -1, wxEVT_ACTIVATE, func) - -def EVT_ACTIVATE_APP(win, func): - win.Connect(-1, -1, wxEVT_ACTIVATE_APP, func) - -def EVT_END_SESSION(win, func): - win.Connect(-1, -1, wxEVT_END_SESSION, func) - -def EVT_QUERY_END_SESSION(win, func): - win.Connect(-1, -1, wxEVT_QUERY_END_SESSION, func) - -def EVT_DROP_FILES(win, func): - win.Connect(-1, -1, wxEVT_DROP_FILES, func) - -def EVT_INIT_DIALOG(win, func): - win.Connect(-1, -1, wxEVT_INIT_DIALOG, func) - -def EVT_SYS_COLOUR_CHANGED(win, func): - win.Connect(-1, -1, wxEVT_SYS_COLOUR_CHANGED, func) - -def EVT_SHOW(win, func): - win.Connect(-1, -1, wxEVT_SHOW, func) - -def EVT_MAXIMIZE(win, func): - win.Connect(-1, -1, wxEVT_MAXIMIZE, func) - -def EVT_ICONIZE(win, func): - win.Connect(-1, -1, wxEVT_ICONIZE, func) - -def EVT_NAVIGATION_KEY(win, func): - win.Connect(-1, -1, wxEVT_NAVIGATION_KEY, func) - -def EVT_IDLE(win, func): - win.Connect(-1, -1, wxEVT_IDLE, func) - - -# Mouse Events -def EVT_LEFT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DOWN, func) - -def EVT_LEFT_UP(win, func): - win.Connect(-1, -1, wxEVT_LEFT_UP, func) - -def EVT_MIDDLE_DOWN(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_DOWN, func) - -def EVT_MIDDLE_UP(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_UP, func) - -def EVT_RIGHT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_DOWN, func) - -def EVT_RIGHT_UP(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_UP, func) - -def EVT_MOTION(win, func): - win.Connect(-1, -1, wxEVT_MOTION, func) - -def EVT_LEFT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DCLICK, func) - -def EVT_MIDDLE_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_MIDDLE_DCLICK, func) - -def EVT_RIGHT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_RIGHT_DCLICK, func) - -def EVT_LEAVE_WINDOW(win, func): - win.Connect(-1, -1, wxEVT_LEAVE_WINDOW, func) - -def EVT_ENTER_WINDOW(win, func): - win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) - - -# all mouse events -def EVT_MOUSE_EVENTS(win, func): - win.Connect(-1, -1, wxEVT_LEFT_DOWN, func) - win.Connect(-1, -1, wxEVT_LEFT_UP, func) - win.Connect(-1, -1, wxEVT_MIDDLE_DOWN, func) - win.Connect(-1, -1, wxEVT_MIDDLE_UP, func) - win.Connect(-1, -1, wxEVT_RIGHT_DOWN, func) - win.Connect(-1, -1, wxEVT_RIGHT_UP, func) - win.Connect(-1, -1, wxEVT_MOTION, func) - win.Connect(-1, -1, wxEVT_LEFT_DCLICK, func) - win.Connect(-1, -1, wxEVT_MIDDLE_DCLICK, func) - win.Connect(-1, -1, wxEVT_RIGHT_DCLICK, func) - win.Connect(-1, -1, wxEVT_LEAVE_WINDOW, func) - win.Connect(-1, -1, wxEVT_ENTER_WINDOW, func) - -# EVT_COMMAND -def EVT_COMMAND(win, id, cmd, func): - win.Connect(id, -1, cmd, func) - -def EVT_COMMAND_RANGE(win, id1, id2, cmd, func): - win.Connect(id1, id2, cmd, func) - -# Scrolling -def EVT_SCROLL(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_TOP, func) - win.Connect(-1, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(-1, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(-1, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK,func) - -def EVT_SCROLL_TOP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_TOP, func) - -def EVT_SCROLL_BOTTOM(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_BOTTOM, func) - -def EVT_SCROLL_LINEUP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_SCROLL_LINEDOWN(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_LINEDOWN, func) - -def EVT_SCROLL_PAGEUP(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_PAGEUP, func) - -def EVT_SCROLL_PAGEDOWN(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_PAGEDOWN, func) - -def EVT_SCROLL_THUMBTRACK(win, func): - win.Connect(-1, -1, wxEVT_SCROLL_THUMBTRACK, func) - - - -# Scrolling, with an id -def EVT_COMMAND_SCROLL(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - -def EVT_COMMAND_SCROLL_TOP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - -def EVT_COMMAND_SCROLL_BOTTOM(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - -def EVT_COMMAND_SCROLL_LINEUP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_COMMAND_SCROLL_LINEDOWN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - -def EVT_COMMAND_SCROLL_PAGEUP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - -def EVT_COMMAND_SCROLL_PAGEDOWN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - -def EVT_COMMAND_SCROLL_THUMBTRACK(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK, func) - - -# Convenience commands -def EVT_BUTTON(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_BUTTON_CLICKED, func) - -def EVT_CHECKBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHECKBOX_CLICKED, func) - -def EVT_CHOICE(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHOICE_SELECTED, func) - -def EVT_LISTBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LISTBOX_SELECTED, func) - -def EVT_LISTBOX_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, func) - -def EVT_TEXT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TEXT_UPDATED, func) - -def EVT_TEXT_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TEXT_ENTER, func) - -def EVT_MENU(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_MENU_SELECTED, func) - -def EVT_MENU_RANGE(win, id1, id2, func): - win.Connect(id1, id2, wxEVT_COMMAND_MENU_SELECTED, func) - -def EVT_SLIDER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SLIDER_UPDATED, func) - -def EVT_RADIOBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RADIOBOX_SELECTED, func) - -def EVT_RADIOBUTTON(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RADIOBUTTON_SELECTED, func) - -def EVT_VLBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_VLBOX_SELECTED, func) - -def EVT_COMBOBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_COMBOBOX_SELECTED, func) - -def EVT_TOOL(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_CLICKED, func) - -def EVT_TOOL_RCLICKED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_RCLICKED, func) - -def EVT_TOOL_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TOOL_ENTER, func) - -def EVT_CHECKLISTBOX(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_CHECKLISTBOX_TOGGLED, func) - - -# Generic command events - -def EVT_COMMAND_LEFT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LEFT_CLICK, func) - -def EVT_COMMAND_LEFT_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LEFT_DCLICK, func) - -def EVT_COMMAND_RIGHT_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RIGHT_CLICK, func) - -def EVT_COMMAND_RIGHT_DCLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_RIGHT_DCLICK, func) - -def EVT_COMMAND_SET_FOCUS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_SET_FOCUS, func) - -def EVT_COMMAND_KILL_FOCUS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_KILL_FOCUS, func) - -def EVT_COMMAND_ENTER(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_ENTER, func) - - -# wxNotebook events -def EVT_NOTEBOOK_PAGE_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, func) - -def EVT_NOTEBOOK_PAGE_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, func) - - -# wxTreeCtrl events -def EVT_TREE_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_DRAG, func) - -def EVT_TREE_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_RDRAG, func) - -def EVT_TREE_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_BEGIN_LABEL_EDIT, func) - -def EVT_TREE_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_END_LABEL_EDIT, func) - -def EVT_TREE_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_GET_INFO, func) - -def EVT_TREE_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SET_INFO, func) - -def EVT_TREE_ITEM_EXPANDED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDED, func) - -def EVT_TREE_ITEM_EXPANDING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_EXPANDING, func) - -def EVT_TREE_ITEM_COLLAPSED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSED, func) - -def EVT_TREE_ITEM_COLLAPSING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_ITEM_COLLAPSING, func) - -def EVT_TREE_SEL_CHANGED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGED, func) - -def EVT_TREE_SEL_CHANGING(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_SEL_CHANGING, func) - -def EVT_TREE_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_KEY_DOWN, func) - -def EVT_TREE_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_TREE_DELETE_ITEM, func) - - -# wxSpinButton -def EVT_SPIN_UP(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - -def EVT_SPIN_DOWN(win, id, func): - win.Connect(id, -1,wxEVT_SCROLL_LINEDOWN, func) - -def EVT_SPIN(win, id, func): - win.Connect(id, -1, wxEVT_SCROLL_TOP, func) - win.Connect(id, -1, wxEVT_SCROLL_BOTTOM, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_LINEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEUP, func) - win.Connect(id, -1, wxEVT_SCROLL_PAGEDOWN, func) - win.Connect(id, -1, wxEVT_SCROLL_THUMBTRACK,func) - - - - -# wxTaskBarIcon -def EVT_TASKBAR_MOVE(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_MOVE, func) - -def EVT_TASKBAR_LEFT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DOWN, func) - -def EVT_TASKBAR_LEFT_UP(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_UP, func) - -def EVT_TASKBAR_RIGHT_DOWN(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DOWN, func) - -def EVT_TASKBAR_RIGHT_UP(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_UP, func) - -def EVT_TASKBAR_LEFT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_LEFT_DCLICK, func) - -def EVT_TASKBAR_RIGHT_DCLICK(win, func): - win.Connect(-1, -1, wxEVT_TASKBAR_RIGHT_DCLICK, func) - - -# wxGrid -def EVT_GRID_SELECT_CELL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_SELECT_CELL, fn) - -def EVT_GRID_CREATE_CELL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CREATE_CELL, fn) - -def EVT_GRID_CHANGE_LABELS(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CHANGE_LABELS, fn) - -def EVT_GRID_CHANGE_SEL_LABEL(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CHANGE_SEL_LABEL, fn) - -def EVT_GRID_CELL_CHANGE(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_CHANGE, fn) - -def EVT_GRID_CELL_LCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_LCLICK, fn) - -def EVT_GRID_CELL_RCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_CELL_RCLICK, fn) - -def EVT_GRID_LABEL_LCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_LABEL_LCLICK, fn) - -def EVT_GRID_LABEL_RCLICK(win, fn): - win.Connect(-1, -1, wxEVT_GRID_LABEL_RCLICK, fn) - - -# wxSashWindow -def EVT_SASH_DRAGGED(win, id, func): - win.Connect(id, -1, wxEVT_SASH_DRAGGED, func) - -def EVT_SASH_DRAGGED_RANGE(win, id1, id2, func): - win.Connect(id1, id2, wxEVT_SASH_DRAGGED, func) - -def EVT_QUERY_LAYOUT_INFO(win, func): - win.Connect(-1, -1, wxEVT_EVT_QUERY_LAYOUT_INFO, func) - -def EVT_CALCULATE_LAYOUT(win, func): - win.Connect(-1, -1, wxEVT_EVT_CALCULATE_LAYOUT, func) - - -# wxListCtrl -def EVT_LIST_BEGIN_DRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_DRAG, func) - -def EVT_LIST_BEGIN_RDRAG(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_RDRAG, func) - -def EVT_LIST_BEGIN_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_BEGIN_LABEL_EDIT, func) - -def EVT_LIST_END_LABEL_EDIT(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_END_LABEL_EDIT, func) - -def EVT_LIST_DELETE_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ITEM, func) - -def EVT_LIST_DELETE_ALL_ITEMS(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_DELETE_ALL_ITEMS, func) - -def EVT_LIST_GET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_GET_INFO, func) - -def EVT_LIST_SET_INFO(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_SET_INFO, func) - -def EVT_LIST_ITEM_SELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_SELECTED, func) - -def EVT_LIST_ITEM_DESELECTED(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_ITEM_DESELECTED, func) - -def EVT_LIST_KEY_DOWN(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_KEY_DOWN, func) - -def EVT_LIST_INSERT_ITEM(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_INSERT_ITEM, func) - -def EVT_LIST_COL_CLICK(win, id, func): - win.Connect(id, -1, wxEVT_COMMAND_LIST_COL_CLICK, func) - - -#---------------------------------------------------------------------- - -class wxTimer(wxPyTimer): - def __init__(self): - wxPyTimer.__init__(self, self.Notify) # derived class must provide - # Notify(self) method. - -#---------------------------------------------------------------------- -# Some wxWin methods can take "NULL" as parameters, but the shadow classes -# expect an object with the SWIG pointer as a 'this' member. This class -# and instance fools the shadow into passing the NULL pointer. - -class NullObj: - this = 'NULL' # SWIG converts this to (void*)0 - -NULL = NullObj() - - -#---------------------------------------------------------------------- -# aliases - -wxColor = wxColour -wxNamedColor = wxNamedColour - -wxPyDefaultPosition.Set(-1,-1) -wxPyDefaultSize.Set(-1,-1) - -# aliases so that C++ documentation applies: -wxDefaultPosition = wxPyDefaultPosition -wxDefaultSize = wxPyDefaultSize - - -# This is to cover up a bug in SWIG. We are redefining -# the shadow class that is generated for wxAcceleratorTable -# because SWIG incorrectly uses "arg0.this" -class wxAcceleratorTable(wxAcceleratorTablePtr): - def __init__(self,arg0) : - self.this = miscc.new_wxAcceleratorTable(arg0) - self.thisown = 1 - -#---------------------------------------------------------------------- - -## class wxPyStdOutWindow: -## def __init__(self, title = "wxPython: stdout/stderr"): -## self.frame = None -## self.title = title - -## def write(self, str): -## if not self.frame: -## self.frame = wxFrame(NULL, -1, self.title) -## self.text = wxTextCtrl(self.frame, -1, "", wxPoint(0,0), wxDefaultSize, -## wxTE_MULTILINE|wxTE_READONLY) -## self.frame.SetSize(wxSize(450, 300)) -## self.frame.Show(true) -## EVT_CLOSE(self.frame, self.OnCloseWindow) -## self.text.AppendText(str) - -## def OnCloseWindow(self, event): -## wxBell() -## self.frame.Destroy() -## self.frame = None -## self.text = None - - -## def close(self): -## if self.frame: -## self.frame.Close(true) - -_defRedirect = (wxPlatform == '__WXMSW__') - -#---------------------------------------------------------------------- -# The main application class. Derive from this and implement an OnInit -# method that creates a frame and then calls self.SetTopWindow(frame) - -class wxApp(wxPyApp): - error = 'wxApp.error' - - def __init__(self, redirect=_defRedirect, filename=None): - wxPyApp.__init__(self) - self.stdioWin = None - self.saveStdio = (sys.stdout, sys.stderr) - if redirect: - self.RedirectStdio(filename) - - # this initializes wxWindows and then calls our OnInit - _wxStart(self.OnInit) - - - def __del__(self): - try: - self.RestoreStdio() - except: - pass - - def RedirectStdio(self, filename): - if filename: - sys.stdout = sys.stderr = open(filename, 'a') - else: - #raise self.error, 'wxPyStdOutWindow not yet implemented.' - self.stdioWin = sys.stdout = sys.stderr = wxPyStdOutWindow() - - def RestoreStdio(self): - sys.stdout, sys.stderr = self.saveStdio - if self.stdioWin != None: - self.stdioWin.close() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.10 1999/05/02 02:06:37 RD -# More for wxPython 2.0b9 (hopefully the last...) -# -# Revision 1.12 1999/04/30 03:29:18 RD -# -# wxPython 2.0b9, first phase (win32) -# Added gobs of stuff, see wxPython/README.txt for details -# -# Revision 1.11.4.2 1999/03/28 06:35:01 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.11.4.1 1999/03/27 23:29:13 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.11 1999/02/20 09:02:55 RD -# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -# window handle. If you can get the window handle into the python code, -# it should just work... More news on this later. -# -# Added wxImageList, wxToolTip. -# -# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -# wxRegConfig class. -# -# As usual, some bug fixes, tweaks, etc. -# -# Revision 1.10 1999/02/01 00:10:39 RD -# -# Added the missing EVT_LIST_ITEM_SELECTED and friends. -# -# Revision 1.9 1999/01/30 07:30:09 RD -# -# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -# -# Various cleanup, tweaks, minor additions, etc. to maintain -# compatibility with the current wxWindows. -# -# Revision 1.8 1999/01/29 21:13:42 HH -# Added aliases for wxDefaultPosition and wxDefaultSize (from wxPy..) in _extras, -# so that C++ documentation applies. -# -# Revision 1.7 1998/11/25 08:45:21 RD -# -# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -# Added events for wxGrid -# Other various fixes and additions -# -# Revision 1.6 1998/11/16 00:00:52 RD -# Generic treectrl for wxPython/GTK compiles... -# -# Revision 1.5 1998/10/20 07:38:02 RD -# bug fix -# -# Revision 1.4 1998/10/20 06:43:54 RD -# New wxTreeCtrl wrappers (untested) -# some changes in helpers -# etc. -# -# Revision 1.3 1998/10/02 06:40:33 RD -# -# Version 0.4 of wxPython for MSW. -# -# Revision 1.2 1998/08/18 19:48:12 RD -# more wxGTK compatibility things. -# -# It builds now but there are serious runtime problems... -# -# Revision 1.1 1998/08/09 08:25:49 RD -# Initial version -# -# - diff --git a/utils/wxPython/src/my_typemaps.i b/utils/wxPython/src/my_typemaps.i deleted file mode 100644 index 20d43b33fb..0000000000 --- a/utils/wxPython/src/my_typemaps.i +++ /dev/null @@ -1,246 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: my_typemaps.i -// Purpose: Special typemaps specifically for wxPython. -// -// Author: Robin Dunn -// -// Created: 7/3/97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -//--------------------------------------------------------------------------- -// Tell SWIG to wrap all the wrappers with Python's thread macros - -%except(python) { - wxPy_BEGIN_ALLOW_THREADS; - $function - wxPy_END_ALLOW_THREADS; -} - -//---------------------------------------------------------------------- -// Here are some to map (int LCOUNT, int* LIST), etc. from a python list - -%{ - -extern byte* byte_LIST_helper(PyObject* source); -extern int* int_LIST_helper(PyObject* source); -extern long* long_LIST_helper(PyObject* source); -extern char** string_LIST_helper(PyObject* source); -extern wxPoint* wxPoint_LIST_helper(PyObject* source); -extern wxBitmap** wxBitmap_LIST_helper(PyObject* source); -extern wxString* wxString_LIST_helper(PyObject* source); -extern wxAcceleratorEntry* wxAcceleratorEntry_LIST_helper(PyObject* source); - -%} - -//---------------------------------------------------------------------- - -%typemap(python,build) int LCOUNT { - if (_in_LIST) { - $target = PyList_Size(_in_LIST); - } - else { - $target = 0; - } -} - - - -%typemap(python,in) byte* LIST { - $target = byte_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) byte* LIST { - delete [] $source; -} - - -%typemap(python,in) int* LIST { - $target = int_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) int* LIST { - delete [] $source; -} - - -%typemap(python,in) long* LIST { - $target = long_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) long* LIST { - delete [] $source; -} - - -%typemap(python,in) unsigned long* LIST { - $target = (unsigned long*)long_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) unsigned long* LIST { - delete [] $source; -} - - - -%typemap(python,in) wxDash* LIST = unsigned long* LIST; -%typemap(python,freearg) wxDash* LIST = unsigned long* LIST; - - -%typemap(python,in) char** LIST { - $target = string_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) char** LIST { - delete [] $source; -} - - - -%typemap(python,in) wxPoint* LIST { - $target = wxPoint_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) wxPoint* LIST { - delete [] $source; -} - -%typemap(python,in) wxBitmap** LIST { - $target = wxBitmap_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) wxBitmap** LIST { - delete [] $source; -} - -%typemap(python,in) wxString* LIST { - $target = wxString_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) wxString* LIST { - delete [] $source; -} - -%typemap(python,in) wxAcceleratorEntry* LIST { - $target = wxAcceleratorEntry_LIST_helper($source); - if ($target == NULL) { - return NULL; - } -} -%typemap(python,freearg) wxAcceleratorEntry* LIST { - delete [] $source; -} - - -//--------------------------------------------------------------------------- - -%{ -static char* wxStringErrorMsg = "string type is required for parameter"; -%} - -%typemap(python, in) wxString& { - if (!PyString_Check($source)) { - PyErr_SetString(PyExc_TypeError, wxStringErrorMsg); - return NULL; - } - $target = new wxString(PyString_AsString($source), PyString_Size($source)); -} -%typemap(python, freearg) wxString& { - if ($target) - delete $source; -} - - - -%typemap(python, out) wxString { - $target = PyString_FromString(WXSTRINGCAST *($source)); -} -%typemap(python, ret) wxString { - delete $source; -} - - -%typemap(python, out) wxString* { - $target = PyString_FromString(WXSTRINGCAST (*$source)); -} - - -// -------------------------------------------------------------------- -//--------------------------------------------------------------------------- - - - -// -------------------------------------------------------------------- -// Map T_OUTPUTs for floats to return ints. - - -%typemap(python,ignore) float *T_OUTPUT_TOINT(float temp), - double *T_OUTPUT_TOINT(double temp) -{ - $target = &temp; -} - - -%typemap(python,argout) float *T_OUTPUT_TOINT, - double *T_OUTPUT_TOINT -{ - PyObject *o; - o = PyInt_FromLong((long) (*$source)); - $target = t_output_helper($target, o); -} - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.5 1999/04/30 03:29:19 RD -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.4.4.2 1999/03/28 06:35:01 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.4.4.1 1999/03/16 06:04:03 RD -// -// wxPython 2.0b7 -// -// Revision 1.4 1998/11/25 08:45:27 RD -// -// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -// Added events for wxGrid -// Other various fixes and additions -// -// Revision 1.3 1998/11/15 23:03:47 RD -// Removing some ifdef's for wxGTK -// -// Revision 1.2 1998/08/14 23:36:39 RD -// Beginings of wxGTK compatibility -// -// Revision 1.1 1998/08/09 08:25:52 RD -// Initial version -// -// - diff --git a/utils/wxPython/src/qt/dummy b/utils/wxPython/src/qt/dummy deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/wxPython/src/stattool.i b/utils/wxPython/src/stattool.i deleted file mode 100644 index 53fd289193..0000000000 --- a/utils/wxPython/src/stattool.i +++ /dev/null @@ -1,234 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: stattool.i -// Purpose: SWIG definitions for StatusBar and ToolBar classes -// -// Author: Robin Dunn -// -// Created: 08/24/1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module stattool - -%{ -#include "helpers.h" -#include -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import windows.i -%import controls.i - -%pragma(python) code = "import wx" - -//--------------------------------------------------------------------------- - -class wxStatusBar : public wxWindow { -public: - wxStatusBar(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxST_SIZEGRIP, - char* name = "statusBar"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - %addmethods { - %new wxRect* GetFieldRect(long item) { - wxRect* rect= new wxRect; - self->GetFieldRect(item, *rect); - return rect; - } - } - int GetFieldsCount(void); - wxString GetStatusText(int ir = 0); - void DrawField(wxDC& dc, int i); - void DrawFieldText(wxDC& dc, int i); - void InitColours(void); - - // OnSysColourChanged(wxSysColourChangedEvent& event); - - void SetFieldsCount(int number = 1); - void SetStatusText(const wxString& text, int i = 0); - void SetStatusWidths(int LCOUNT, int* LIST); -}; - - -//--------------------------------------------------------------------------- - -class wxToolBarTool { -public: - wxToolBarTool(); - ~wxToolBarTool(); -#ifdef __WXMSW__ - void SetSize( long w, long h ) { m_width = w; m_height = h; } - long GetWidth () const { return m_width; } - long GetHeight () const { return m_height; } -#endif - -public: - int m_toolStyle; - wxObject * m_clientData; - int m_index; -#ifdef __WXMSW__ - long m_x; - long m_y; - long m_width; - long m_height; -#endif - bool m_toggleState; - bool m_isToggle; - bool m_deleteSecondBitmap; - bool m_enabled; - wxBitmap m_bitmap1; - wxBitmap m_bitmap2; - bool m_isMenuCommand; - wxString m_shortHelpString; - wxString m_longHelpString; -}; - - - -// class wxToolBarBase : public wxControl { -// public: - -class wxToolBar : public wxControl { -public: - wxToolBar(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxTB_HORIZONTAL | wxNO_BORDER, - char* name = "toolBar"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - - void AddSeparator(); - - // Ignoge the clientData for now... - %addmethods { - wxToolBarTool* AddTool(int toolIndex, - const wxBitmap& bitmap1, - const wxBitmap& bitmap2 = wxNullBitmap, - int isToggle = FALSE, - long xPos = -1, - long yPos = -1, - //wxObject* clientData = NULL, - const wxString& shortHelpString = wxPyEmptyStr, - const wxString& longHelpString = wxPyEmptyStr) { - return self->AddTool(toolIndex, bitmap1, bitmap2, - isToggle, xPos, yPos, NULL, - shortHelpString, longHelpString); - } - - wxToolBarTool* AddSimpleTool(int toolIndex, - const wxBitmap& bitmap, - const wxString& shortHelpString = wxPyEmptyStr, - const wxString& longHelpString = wxPyEmptyStr) { - return self->AddTool(toolIndex, bitmap, wxNullBitmap, - FALSE, -1, -1, NULL, - shortHelpString, longHelpString); - } - } - - -// void DrawTool(wxMemoryDC& memDC, wxToolBarTool* tool); - void EnableTool(int toolIndex, const bool enable); -#ifdef __WXMSW__ - wxToolBarTool* FindToolForPosition(const float x, const float y); - wxSize GetToolSize(); - wxSize GetToolBitmapSize(); - void SetToolBitmapSize(const wxSize& size); -// wxSize GetMargins(); - wxSize GetMaxSize(); -// wxObject* GetToolClientData(int toolIndex); -#endif - bool GetToolEnabled(int toolIndex); - wxString GetToolLongHelp(int toolIndex); - int GetToolPacking(); - int GetToolSeparation(); - wxString GetToolShortHelp(int toolIndex); - bool GetToolState(int toolIndex); - - // TODO: figure out how to handle these - //bool OnLeftClick(int toolIndex, bool toggleDown); - //void OnMouseEnter(int toolIndex); - //void OnRightClick(int toolIndex, float x, float y); - - bool Realize(); - - void SetToolLongHelp(int toolIndex, const wxString& helpString); - void SetToolShortHelp(int toolIndex, const wxString& helpString); - void SetMargins(const wxSize& size); - void SetToolPacking(int packing); - void SetToolSeparation(int separation); - void ToggleTool(int toolIndex, const bool toggle); -}; - - - - -//--------------------------------------------------------------------------- - -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.6 1999/02/25 07:08:35 RD -// wxPython version 2.0b5 -// -// Revision 1.5 1999/01/30 07:30:15 RD -// -// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -// -// Various cleanup, tweaks, minor additions, etc. to maintain -// compatibility with the current wxWindows. -// -// Revision 1.4 1998/12/17 14:07:43 RR -// -// Removed minor differences between wxMSW and wxGTK -// -// Revision 1.3 1998/12/15 20:41:23 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.2 1998/10/07 07:34:34 RD -// Version 0.4.1 for wxGTK -// -// Revision 1.1 1998/10/02 06:40:42 RD -// -// Version 0.4 of wxPython for MSW. -// -// - - - - - - - diff --git a/utils/wxPython/src/utils.i b/utils/wxPython/src/utils.i deleted file mode 100644 index 41d3f99a0b..0000000000 --- a/utils/wxPython/src/utils.i +++ /dev/null @@ -1,184 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: utils.i -// Purpose: SWIG definitions of various utility classes -// -// Author: Robin Dunn -// -// Created: 25-nov-1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module utils - -%{ -#include "helpers.h" -#include -%} - -//--------------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - - -%{ -#ifdef SEPARATE - wxString wxPyEmptyStr(""); -#endif -%} - - -%{ - static PyObject* __EnumerationHelper(bool flag, wxString& str, long index) { - PyObject* ret = PyTuple_New(3); - if (ret) { - PyTuple_SET_ITEM(ret, 0, PyInt_FromLong(flag)); - PyTuple_SET_ITEM(ret, 1, PyString_FromString(str)); - PyTuple_SET_ITEM(ret, 2, PyInt_FromLong(index)); - } - return ret; - } -%} - -//--------------------------------------------------------------------------- - -class wxConfig { -public: - wxConfig(const wxString& appName = wxPyEmptyStr, - const wxString& vendorName = wxPyEmptyStr, - const wxString& localFilename = wxPyEmptyStr, - const wxString& globalFilename = wxPyEmptyStr, - long style = 0); - ~wxConfig(); - - - void DontCreateOnDemand(); - bool DeleteAll(); // This is supposed to have been fixed... - bool DeleteEntry(const wxString& key, bool bDeleteGroupIfEmpty = TRUE); - bool DeleteGroup(const wxString& key); - bool Exists(wxString& strName); - bool Flush(bool bCurrentOnly = FALSE); - wxString GetAppName(); - - - // Each of these enumeration methods return a 3-tuple consisting of - // the continue flag, the value string, and the index for the next call. - %addmethods { - PyObject* GetFirstGroup() { - bool cont; - long index = 0; - wxString value; - - cont = self->GetFirstGroup(value, index); - return __EnumerationHelper(cont, value, index); - } - - PyObject* GetFirstEntry() { - bool cont; - long index = 0; - wxString value; - - cont = self->GetFirstEntry(value, index); - return __EnumerationHelper(cont, value, index); - } - - PyObject* GetNextGroup(long index) { - bool cont; - wxString value; - - cont = self->GetNextGroup(value, index); - return __EnumerationHelper(cont, value, index); - } - - PyObject* GetNextEntry(long index) { - bool cont; - wxString value; - - cont = self->GetNextEntry(value, index); - return __EnumerationHelper(cont, value, index); - } - } - - - int GetNumberOfEntries(bool bRecursive = FALSE); - int GetNumberOfGroups(bool bRecursive = FALSE); - wxString GetPath(); - wxString GetVendorName(); - bool HasEntry(wxString& strName); - bool HasGroup(const wxString& strName); - bool IsExpandingEnvVars(); - bool IsRecordingDefaults(); - - wxString Read(const wxString& key, const wxString& defaultVal = wxPyEmptyStr); - %name(ReadInt)long Read(const wxString& key, long defaultVal = 0); - %name(ReadFloat)double Read(const wxString& key, double defaultVal = 0.0); - - void SetExpandEnvVars (bool bDoIt = TRUE); - void SetPath(const wxString& strPath); - void SetRecordDefaults(bool bDoIt = TRUE); - - bool Write(const wxString& key, const wxString& value); - %name(WriteInt)bool Write(const wxString& key, long value); - %name(WriteFloat)bool Write(const wxString& key, double value); - -}; - - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.5 1999/05/01 04:40:57 RD -// wxPython 2.0b9, second phase (gtk) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.4 1999/04/30 03:29:19 RD -// -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.3.4.1 1999/03/27 23:29:15 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.3 1999/02/25 07:08:36 RD -// -// wxPython version 2.0b5 -// -// Revision 1.2 1999/02/20 09:03:02 RD -// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -// window handle. If you can get the window handle into the python code, -// it should just work... More news on this later. -// -// Added wxImageList, wxToolTip. -// -// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -// wxRegConfig class. -// -// As usual, some bug fixes, tweaks, etc. -// -// Revision 1.1 1998/12/15 20:41:23 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// diff --git a/utils/wxPython/src/utilsc.def b/utils/wxPython/src/utilsc.def deleted file mode 100644 index ddb56a1c38..0000000000 --- a/utils/wxPython/src/utilsc.def +++ /dev/null @@ -1,2 +0,0 @@ -EXPORTS - initutilsc diff --git a/utils/wxPython/src/windows.i b/utils/wxPython/src/windows.i deleted file mode 100644 index 1cc3b9fb84..0000000000 --- a/utils/wxPython/src/windows.i +++ /dev/null @@ -1,511 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows.i -// Purpose: SWIG definitions of various window classes -// -// Author: Robin Dunn -// -// Created: 6/24/97 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - - -%module windows - -%{ -#include "helpers.h" -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import gdi.i - -%pragma(python) code = "import wx" - -//--------------------------------------------------------------------------- - -class wxEvtHandler { -public: - bool ProcessEvent(wxEvent& event); - %addmethods { - void Connect( int id, int lastId, int eventType, PyObject* func) { - if (PyCallable_Check(func)) { - self->Connect(id, lastId, eventType, - (wxObjectEventFunction) &wxPyCallback::EventThunker, - new wxPyCallback(func)); - } - } - } -}; - - -//---------------------------------------------------------------------- - - -class wxWindow : public wxEvtHandler { -public: - - wxWindow(wxWindow* parent, const wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - char* name = "panel"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void CaptureMouse(); - void Center(int direction = wxHORIZONTAL); - void Centre(int direction = wxHORIZONTAL); - %name(ClientToScreenXY)void ClientToScreen(int *BOTH, int *BOTH); -#ifndef __WXGTK__ - wxPoint ClientToScreen(const wxPoint& pt); -#endif - bool Close(int force = FALSE); - bool Destroy(); - void DestroyChildren(); -#ifdef __WXMSW__ - void DragAcceptFiles(bool accept); -#endif - void Enable(bool enable); - //bool FakePopupMenu(wxMenu* menu, int x, int y); - %name(FindWindowById) wxWindow* FindWindow(long id); - %name(FindWindowByName) wxWindow* FindWindow(const wxString& name); - void Fit(); - wxColour GetBackgroundColour(); - int GetCharHeight(); - int GetCharWidth(); - %name(GetClientSizeTuple) void GetClientSize(int *OUTPUT, int *OUTPUT); - wxSize GetClientSize(); - wxLayoutConstraints * GetConstraints(); -#ifdef __WXMSW__ - wxButton* GetDefaultItem(); -#endif - //wxEvtHandler* GetEventHandler(); - - wxFont& GetFont(); - wxColour GetForegroundColour(); - wxWindow * GetGrandParent(); - int GetId(); - wxString GetLabel(); - wxString GetName(); - wxWindow * GetParent(); - %name(GetPositionTuple) void GetPosition(int *OUTPUT, int *OUTPUT); - wxPoint GetPosition(); - wxRect GetRect(); - int GetScrollThumb(int orientation); - int GetScrollPos(int orientation); - int GetScrollRange(int orientation); - %name(GetSizeTuple) void GetSize(int *OUTPUT, int *OUTPUT); - wxSize GetSize(); - void GetTextExtent(const wxString& string, int *OUTPUT, int *OUTPUT); - %name(GetFullTextExtent)void GetTextExtent(const wxString& string, - int *OUTPUT, int *OUTPUT, int *OUTPUT, int* OUTPUT, - const wxFont* font = NULL); //, bool use16 = FALSE) - wxString GetTitle(); - long GetWindowStyleFlag(); - void InitDialog(); - bool IsEnabled(); - bool IsRetained(); - bool IsShown(); - void Layout(); - bool LoadFromResource(wxWindow* parent, const wxString& resourceName, const wxResourceTable* resourceTable = NULL); - void Lower(); - void MakeModal(bool flag); - %name(MoveXY)void Move(int x, int y); - void Move(const wxPoint& point); - - //wxEvtHandler* PopEventHandler(bool deleteHandler = FALSE); - bool PopupMenu(wxMenu *menu, int x, int y); - //void PushEventHandler(wxEvtHandler* handler); - - void Raise(); - void Refresh(bool eraseBackground = TRUE, const wxRect* rect = NULL); - void ReleaseMouse(); - %name(ScreenToClientXY)void ScreenToClient(int *BOTH, int *BOTH); -#ifndef __WXGTK__ - wxPoint ScreenToClient(const wxPoint& pt); -#endif - - void ScrollWindow(int dx, int dy, const wxRect* rect = NULL); - void SetAcceleratorTable(const wxAcceleratorTable& accel); - void SetAutoLayout(bool autoLayout); - void SetBackgroundColour(const wxColour& colour); - void SetConstraints(wxLayoutConstraints *constraints); -// void SetDoubleClick(bool allowDoubleClick); - void SetFocus(); - void SetFont(const wxFont& font); - void SetForegroundColour(const wxColour& colour); - void SetId(int id); - void SetName(const wxString& name); - void SetScrollbar(int orientation, int position, int thumbSize, int range, bool refresh = TRUE); - void SetScrollPos(int orientation, int pos, bool refresh = TRUE); - - %name(SetDimensions) void SetSize(int x, int y, int width, int height, int sizeFlags=wxSIZE_AUTO); - %addmethods { - void SetSize(const wxSize& size) { - self->SetSize(size.x, size.y); - } - - void SetPosition(const wxPoint& pos) { - self->SetSize(pos.x, pos.y, -1, -1); - } - } - - void SetSizeHints(int minW=-1, int minH=-1, int maxW=-1, int maxH=-1, int incW=-1, int incH=-1); - %name(SetClientSizeWH)void SetClientSize(int width, int height); - void SetClientSize(const wxSize& size); - //void SetPalette(wxPalette* palette); - void SetCursor(const wxCursor&cursor); - //void SetEventHandler(wxEvtHandler* handler); - void SetTitle(const wxString& title); - bool Show(bool show); - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - bool Validate(); - void WarpPointer(int x, int y); - - %name(ConvertDialogPointToPixels) wxPoint ConvertDialogToPixels(const wxPoint& pt); - %name(ConvertDialogSizeToPixels) wxSize ConvertDialogToPixels(const wxSize& sz); - - %name(DLG_PNT) wxPoint ConvertDialogToPixels(const wxPoint& pt); - %name(DLG_SZE) wxSize ConvertDialogToPixels(const wxSize& sz); - - %name(ConvertPixelPointToDialog) wxPoint ConvertPixelsToDialog(const wxPoint& pt); - %name(ConvertPixelSizeToDialog) wxSize ConvertPixelsToDialog(const wxSize& sz); - - %name(SetToolTipString)void SetToolTip(const wxString &tip); - void SetToolTip(wxToolTip *tooltip); - wxToolTip* GetToolTip(); -}; - -%pragma(python) code = " -def wxDLG_PNT(win, point): - return win.ConvertDialogPointToPixels(point) - -def wxDLG_SZE(win, size): - return win.ConvertDialogSizeToPixels(size) -" - -#ifdef __WXMSW__ -%inline %{ - wxWindow* wxWindow_FindFocus() { - return wxWindow::FindFocus(); - } -%} - - -%inline %{ -wxWindow* wxWindow_FromHWND(unsigned long hWnd) { - wxWindow* win = new wxWindow; - win->SetHWND(hWnd); - win->SubclassWin(hWnd); - return win; -} -%} -#endif - - -//--------------------------------------------------------------------------- - -class wxPanel : public wxWindow { -public: - wxPanel(wxWindow* parent, - const wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxTAB_TRAVERSAL, - const char* name = "panel"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - void InitDialog(); - -}; - -//--------------------------------------------------------------------------- - -class wxDialog : public wxPanel { -public: - wxDialog(wxWindow* parent, - const wxWindowID id, - const wxString& title, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, - const char* name = "dialogBox"); - - %pragma(python) addtomethod = "__init__:wx._StdDialogCallbacks(self)" - - void Centre(int direction = wxBOTH); - void EndModal(int retCode); - wxString GetTitle(); - void Iconize(bool iconize); - bool IsIconized(); - void SetModal(bool flag); - bool IsModal(); - void SetTitle(const wxString& title); - bool Show(bool show); - int ShowModal(); - - int GetReturnCode(); - void SetReturnCode(int retCode); -}; - -//--------------------------------------------------------------------------- - -class wxScrolledWindow : public wxWindow { -public: - wxScrolledWindow(wxWindow* parent, - const wxWindowID id = -1, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxHSCROLL | wxVSCROLL, - char* name = "scrolledWindow"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - %pragma(python) addtomethod = "__init__:wx._StdOnScrollCallbacks(self)" - - void EnableScrolling(bool xScrolling, bool yScrolling); - void GetScrollPixelsPerUnit(int* OUTPUT, int* OUTPUT); - void GetVirtualSize(int* OUTPUT, int* OUTPUT); - bool IsRetained(); - void PrepareDC(wxDC& dc); - void Scroll(int x, int y); - void SetScrollbars(int pixelsPerUnitX, int pixelsPerUnitY, - int noUnitsX, int noUnitsY, - int xPos = 0, int yPos = 0); - void ViewStart(int* OUTPUT, int* OUTPUT); -}; - -//---------------------------------------------------------------------- - - -class wxMenu : public wxEvtHandler { -public: - wxMenu(const wxString& title = wxPyEmptyStr); - - void Append(int id, const wxString& item, - const wxString& helpString = wxPyEmptyStr, - int checkable = FALSE); - %name(AppendMenu)void Append(int id, const wxString& item, wxMenu *subMenu, - const wxString& helpString = wxPyEmptyStr); -#ifndef __WXGTK__ - %name(AppendItem)void Append(const wxMenuItem* item); -#endif - - void AppendSeparator(); - void Break(); - void Check(int id, bool flag); - void Enable(int id, bool enable); - int FindItem(const wxString& itemString); - wxString GetTitle(); - void SetTitle(const wxString& title); - wxMenuItem* FindItemForId(int id); - wxString GetHelpString(int id); - wxString GetLabel(int id); - void SetHelpString(int id, const wxString& helpString); - bool IsChecked(int id); - bool IsEnabled(int id); - void SetLabel(int id, const wxString& label); -}; - - -// -// This one knows how to set a callback and handle INC- and DECREFing it. To -// be used for PopupMenus, but you must retain a referece to it while using -// it. -// -class wxPyMenu : public wxMenu { -public: - wxPyMenu(const wxString& title = wxPyEmptyStr, PyObject* func = NULL); - ~wxPyMenu(); -}; - -//---------------------------------------------------------------------- - -class wxMenuBar : public wxEvtHandler { -public: - wxMenuBar(); - - void Append(wxMenu *menu, const wxString& title); - void Check(int id, bool flag); - bool Checked(int id); - void Enable(int id, bool enable); - bool Enabled(int id); - int FindMenuItem(const wxString& menuString, const wxString& itemString); - wxMenuItem * FindItemForId(int id); -#ifdef __WXMSW__ - void EnableTop(int pos, bool enable); - wxString GetHelpString(int id); - wxString GetLabel(int id); - void SetHelpString(int id, const wxString& helpString); - void SetLabel(int id, const wxString& label); - wxString GetLabelTop(int pos); - void SetLabelTop(int pos, const wxString& label); -#endif - int GetMenuCount(); - wxMenu* GetMenu(int i); -}; - - -//---------------------------------------------------------------------- - -class wxMenuItem { -public: -#ifndef __WXGTK__ - wxMenuItem(wxMenu* parentMenu=NULL, int id=ID_SEPARATOR, - const wxString& text = wxPyEmptyStr, - const wxString& helpString = wxPyEmptyStr, - bool checkable = FALSE, wxMenu* subMenu = NULL); -#else - wxMenuItem(); -#endif - - bool IsSeparator(); - bool IsEnabled(); - bool IsChecked(); - bool IsCheckable(); - int GetId(); - wxMenu* GetSubMenu(); - void SetName(const wxString& strName); - wxString GetName(); - wxString GetHelp(); - void SetHelp(const wxString& strHelp); - void Enable(bool bDoEnable = TRUE); - void Check(bool bDoCheck = TRUE); - -#ifdef __WXMSW__ - wxColour& GetBackgroundColour(); - wxBitmap GetBitmap(bool checked = TRUE); - wxFont& GetFont(); - int GetMarginWidth(); - wxColour& GetTextColour(); - void SetBackgroundColour(const wxColour& colour); - void SetBitmaps(const wxBitmap& checked, const wxBitmap& unchecked = wxNullBitmap); - void SetFont(const wxFont& font); - void SetMarginWidth(int width); - void SetTextColour(const wxColour& colour); - void DeleteSubMenu(); -#endif -}; - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.16 1999/05/15 00:56:04 RD -// fixes for GetReturnCode/SetReturnCode -// -// Revision 1.15 1999/04/30 03:29:19 RD -// -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.14.4.3 1999/03/27 23:29:15 RD -// -// wxPython 2.0b8 -// Python thread support -// various minor additions -// various minor fixes -// -// Revision 1.14.4.2 1999/03/16 06:26:29 RD -// -// wxPython 2.0b7 -// -// Revision 1.14.4.1 1999/03/16 06:04:04 RD -// -// wxPython 2.0b7 -// -// Revision 1.14 1999/02/23 23:48:33 RD -// -// reenabled some methods for wxPython on wxGTK -// -// Revision 1.13 1999/02/20 10:02:38 RD -// -// Changes needed to enable wxGTK compatibility. -// -// Revision 1.12 1999/02/20 09:03:03 RD -// Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -// window handle. If you can get the window handle into the python code, -// it should just work... More news on this later. -// -// Added wxImageList, wxToolTip. -// -// Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -// wxRegConfig class. -// -// As usual, some bug fixes, tweaks, etc. -// -// Revision 1.11 1998/12/18 15:49:10 RR -// -// wxClipboard now serves the primary selection as well -// wxPython fixes -// warning mesages -// -// Revision 1.10 1998/12/17 17:52:20 RD -// -// wxPython 0.5.2 -// Minor fixes and SWIG code generation for RR's changes. MSW and GTK -// versions are much closer now! -// -// Revision 1.9 1998/12/17 14:07:46 RR -// -// Removed minor differences between wxMSW and wxGTK -// -// Revision 1.8 1998/12/16 22:10:56 RD -// -// Tweaks needed to be able to build wxPython with wxGTK. -// -// Revision 1.7 1998/12/15 20:41:25 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.6 1998/10/02 06:40:43 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.5 1998/08/17 18:29:40 RD -// Removed an extra method definition -// -// Revision 1.4 1998/08/16 04:31:11 RD -// More wxGTK work. -// -// Revision 1.3 1998/08/15 07:36:47 RD -// - Moved the header in the .i files out of the code that gets put into -// the .cpp files. It caused CVS conflicts because of the RCS ID being -// different each time. -// -// - A few minor fixes. -// -// Revision 1.2 1998/08/14 23:36:46 RD -// Beginings of wxGTK compatibility -// -// Revision 1.1 1998/08/09 08:25:52 RD -// Initial version -// -// - - diff --git a/utils/wxPython/src/windows2.i b/utils/wxPython/src/windows2.i deleted file mode 100644 index 74e4e1b85f..0000000000 --- a/utils/wxPython/src/windows2.i +++ /dev/null @@ -1,413 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows2.i -// Purpose: SWIG definitions of MORE window classes -// -// Author: Robin Dunn -// -// Created: 6/2/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module windows2 - -%{ -#include "helpers.h" -#include -#include -#include -#ifdef __WXMSW__ -#include -#endif -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import gdi.i -%import windows.i -%import controls.i -%import events.i - -%pragma(python) code = "import wx" - -//--------------------------------------------------------------------------- - - -enum { - wxGRID_TEXT_CTRL, - wxGRID_HSCROLL, - wxGRID_VSCROLL -}; - -class wxGridCell { -public: - wxGridCell(); - ~wxGridCell(); - - wxString& GetTextValue(); - void SetTextValue(const wxString& str); - wxFont& GetFont(); - void SetFont(wxFont& f); - wxColour& GetTextColour(); - void SetTextColour(const wxColour& colour); - wxColour& GetBackgroundColour(); - void SetBackgroundColour(const wxColour& colour); - wxBrush& GetBackgroundBrush(); - int GetAlignment(); - void SetAlignment(int align); - wxBitmap* GetCellBitmap(); - void SetCellBitmap(wxBitmap* bitmap); -}; - - - - -class wxGrid : public wxPanel { -public: - wxGrid(wxWindow* parent, wxWindowID id, - const wxPoint& pos=wxPyDefaultPosition, - const wxSize& size=wxPyDefaultSize, - long style=0, - char* name="grid"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK)" - - - void AdjustScrollbars(); - bool AppendCols(int n=1, bool updateLabels=TRUE); - bool AppendRows(int n=1, bool updateLabels=TRUE); - void BeginBatch(); - bool CellHitTest(int x, int y, int *OUTPUT, int *OUTPUT); - - %addmethods { - // TODO: For now we are just ignoring the initial cellValues - // and widths. Add support for loading them from - // Python sequence objects. - bool CreateGrid(int rows, int cols, - //PyObject* cellValues = NULL, - //PyObject* widths = NULL, - short defaultWidth = wxGRID_DEFAULT_CELL_WIDTH, - short defaultHeight = wxGRID_DEFAULT_CELL_HEIGHT) { - return self->CreateGrid(rows, cols, NULL, NULL, - defaultWidth, defaultHeight); - } - } - - bool CurrentCellVisible(); - bool DeleteCols(int pos=0, int n=1, bool updateLabels=TRUE); - bool DeleteRows(int pos=0, int n=1, bool updateLabels=TRUE); - void EndBatch(); - - int GetBatchCount(); - wxGridCell* GetCell(int row, int col); - int GetCellAlignment(int row, int col); - %name(GetDefCellAlignment)int GetCellAlignment(); - wxColour& GetCellBackgroundColour(int row, int col); - %name(GetDefCellBackgroundColour) wxColour& GetCellBackgroundColour(); - //wxGridCell *** GetCells(); - wxColour& GetCellTextColour(int row, int col); - %name(GetDefCellTextColour)wxColour& GetCellTextColour(); - wxFont& GetCellTextFont(int row, int col); - %name(GetDefCellTextFont)wxFont& GetCellTextFont(); - wxString& GetCellValue(int row, int col); - int GetCols(); - int GetColumnWidth(int col); - wxRect GetCurrentRect(); - int GetCursorColumn(); - int GetCursorRow(); - bool GetEditable(); - wxScrollBar * GetHorizScrollBar(); - int GetLabelAlignment(int orientation); - wxColour& GetLabelBackgroundColour(); - int GetLabelSize(int orientation); - wxColour& GetLabelTextColour(); - wxFont& GetLabelTextFont(); - wxString& GetLabelValue(int orientation, int pos); - int GetRowHeight(int row); - int GetRows(); - int GetScrollPosX(); - int GetScrollPosY(); - wxTextCtrl* GetTextItem(); - wxScrollBar* GetVertScrollBar(); - - bool InsertCols(int pos=0, int n=1, bool updateLabels=TRUE); - bool InsertRows(int pos=0, int n=1, bool updateLabels=TRUE); - - void OnActivate(bool active); - - void SetCellAlignment(int alignment, int row, int col); - %name(SetDefCellAlignment)void SetCellAlignment(int alignment); - void SetCellBackgroundColour(const wxColour& colour, int row, int col); - %name(SetDefCellBackgroundColour) - void SetCellBackgroundColour(const wxColour& colour); - void SetCellTextColour(const wxColour& colour, int row, int col); - %name(SetDefCellTextColour)void SetCellTextColour(const wxColour& colour); - void SetCellTextFont(wxFont& font, int row, int col); - %name(SetDefCellTextFont)void SetCellTextFont(wxFont& font); - void SetCellValue(const wxString& val, int row, int col); - void SetColumnWidth(int col, int width); - void SetDividerPen(wxPen& pen); - void SetEditable(bool editable); - void SetGridCursor(int row, int col); - void SetLabelAlignment(int orientation, int alignment); - void SetLabelBackgroundColour(const wxColour& value); - void SetLabelSize(int orientation, int size); - void SetLabelTextColour(const wxColour& value); - void SetLabelTextFont(wxFont& font); - void SetLabelValue(int orientation, const wxString& value, int pos); - void SetRowHeight(int row, int height); - - void UpdateDimensions(); -}; - - -class wxGridEvent : public wxEvent { -public: - int m_row; - int m_col; - int m_x; - int m_y; - bool m_control; - bool m_shift; - wxGridCell* m_cell; -}; - - -enum { - wxEVT_GRID_SELECT_CELL, - wxEVT_GRID_CREATE_CELL, - wxEVT_GRID_CHANGE_LABELS, - wxEVT_GRID_CHANGE_SEL_LABEL, - wxEVT_GRID_CELL_CHANGE, - wxEVT_GRID_CELL_LCLICK, - wxEVT_GRID_CELL_RCLICK, - wxEVT_GRID_LABEL_LCLICK, - wxEVT_GRID_LABEL_RCLICK, -}; - - -//--------------------------------------------------------------------------- - -class wxNotebookEvent : public wxCommandEvent { -public: - int GetSelection(); - int GetOldSelection(); -}; - - - -class wxNotebook : public wxControl { -public: - wxNotebook(wxWindow *parent, - wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = 0, - char* name = "notebook"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - int GetPageCount(); - int SetSelection(int nPage); - void AdvanceSelection(bool bForward = TRUE); - int GetSelection(); - bool SetPageText(int nPage, const wxString& strText); - wxString GetPageText(int nPage) const; - void SetImageList(wxImageList* imageList); - wxImageList* GetImageList(); - int GetPageImage(int nPage); - bool SetPageImage(int nPage, int nImage); - int GetRowCount(); - - // LINK ERROR: void SetPageSize(const wxSize& size); - // LINK ERROR: void SetPadding(const wxSize& padding); - bool DeletePage(int nPage); - bool RemovePage(int nPage); - bool DeleteAllPages(); - bool AddPage(/*wxNotebookPage*/ wxWindow *pPage, - const wxString& strText, - int bSelect = FALSE, - int imageId = -1); -#ifdef __WXMSW__ - bool InsertPage(int nPage, - /*wxNotebookPage*/ wxWindow *pPage, - const wxString& strText, - bool bSelect = FALSE, - int imageId = -1); -#endif - wxNotebookPage *GetPage(int nPage); - - %addmethods { - void ResizeChildren() { - wxSizeEvent evt(self->GetClientSize()); - self->GetEventHandler()->ProcessEvent(evt); - } - } - - -}; - -//--------------------------------------------------------------------------- - -class wxSplitterWindow : public wxWindow { -public: - wxSplitterWindow(wxWindow* parent, wxWindowID id, - const wxPoint& point = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style=wxSP_3D|wxCLIP_CHILDREN, - char* name = "splitterWindow"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - int GetBorderSize(); - int GetMinimumPaneSize(); - int GetSashPosition(); - int GetSashSize(); - int GetSplitMode(); - wxWindow* GetWindow1(); - wxWindow* GetWindow2(); - void Initialize(wxWindow* window); - bool IsSplit(); - - // TODO: How to handle callbacks that don't come from - // event system??? - // - //void OnDoubleClickSash(int x, int y); - //bool OnSashPositionChange(int newSashPosition); - //void OnUnsplit(wxWindow* removed); - - void SetBorderSize(int width); - void SetSashPosition(int position, int redraw = TRUE); - void SetSashSize(int width); - void SetMinimumPaneSize(int paneSize); - void SetSplitMode(int mode); - bool SplitHorizontally(wxWindow* window1, wxWindow* window2, int sashPosition = 0); - bool SplitVertically(wxWindow* window1, wxWindow* window2, int sashPosition = 0); - bool Unsplit(wxWindow* toRemove = NULL); -}; - -//--------------------------------------------------------------------------- - -#ifdef __WXMSW__ - -enum { - wxEVT_TASKBAR_MOVE, - wxEVT_TASKBAR_LEFT_DOWN, - wxEVT_TASKBAR_LEFT_UP, - wxEVT_TASKBAR_RIGHT_DOWN, - wxEVT_TASKBAR_RIGHT_UP, - wxEVT_TASKBAR_LEFT_DCLICK, - wxEVT_TASKBAR_RIGHT_DCLICK -}; - - -class wxTaskBarIcon : public wxEvtHandler { -public: - wxTaskBarIcon(); - ~wxTaskBarIcon(); - - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnMouseMove', wxEVT_TASKBAR_MOVE)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDown', wxEVT_TASKBAR_LEFT_DOWN)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonUp', wxEVT_TASKBAR_LEFT_UP)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDown', wxEVT_TASKBAR_RIGHT_DOWN)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonUp', wxEVT_TASKBAR_RIGHT_UP)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDClick',wxEVT_TASKBAR_LEFT_DCLICK)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDClick',wxEVT_TASKBAR_RIGHT_DCLICK)" - - bool SetIcon(const wxIcon& icon, const char* tooltip = ""); - bool RemoveIcon(void); - bool PopupMenu(wxMenu *menu); - -}; -#endif - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.11 1999/05/15 00:56:05 RD -// fixes for GetReturnCode/SetReturnCode -// -// Revision 1.10 1999/04/30 03:29:19 RD -// -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.9.4.1 1999/03/16 06:04:05 RD -// -// wxPython 2.0b7 -// -// Revision 1.9 1999/02/25 07:08:36 RD -// -// wxPython version 2.0b5 -// -// Revision 1.8 1998/12/17 18:05:53 RD -// -// wxPython 0.5.2 -// Minor fixes and SWIG code generation for RR's changes. MSW and GTK -// versions are much closer now! -// -// Revision 1.7 1998/12/15 20:41:25 RD -// Changed the import semantics from "from wxPython import *" to "from -// wxPython.wx import *" This is for people who are worried about -// namespace pollution, they can use "from wxPython import wx" and then -// prefix all the wxPython identifiers with "wx." -// -// Added wxTaskbarIcon for wxMSW. -// -// Made the events work for wxGrid. -// -// Added wxConfig. -// -// Added wxMiniFrame for wxGTK, (untested.) -// -// Changed many of the args and return values that were pointers to gdi -// objects to references to reflect changes in the wxWindows API. -// -// Other assorted fixes and additions. -// -// Revision 1.6 1998/11/25 08:45:28 RD -// -// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -// Added events for wxGrid -// Other various fixes and additions -// -// Revision 1.5 1998/11/03 09:21:57 RD -// fixed a typo -// -// Revision 1.4 1998/10/02 06:40:43 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.3 1998/08/18 19:48:20 RD -// more wxGTK compatibility things. -// -// It builds now but there are serious runtime problems... -// -// Revision 1.2 1998/08/15 07:36:50 RD -// - Moved the header in the .i files out of the code that gets put into -// the .cpp files. It caused CVS conflicts because of the RCS ID being -// different each time. -// -// - A few minor fixes. -// -// Revision 1.1 1998/08/09 08:25:52 RD -// Initial version -// -// diff --git a/utils/wxPython/src/windows3.i b/utils/wxPython/src/windows3.i deleted file mode 100644 index 64934638e7..0000000000 --- a/utils/wxPython/src/windows3.i +++ /dev/null @@ -1,199 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: windows3.i -// Purpose: SWIG definitions of MORE window classes -// -// Author: Robin Dunn -// -// Created: 22-Dec-1998 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module windows3 - -%{ -#include "helpers.h" -#include -#include -%} - -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i - -// Import some definitions of other classes, etc. -%import _defs.i -%import misc.i -%import gdi.i -%import windows.i -%import windows2.i -%import mdi.i -%import events.i - -%pragma(python) code = "import wx" - -//--------------------------------------------------------------------------- - -enum wxSashEdgePosition { - wxSASH_TOP = 0, - wxSASH_RIGHT, - wxSASH_BOTTOM, - wxSASH_LEFT, - wxSASH_NONE = 100 -}; - -enum { - wxEVT_SASH_DRAGGED, - wxSW_3D, -}; - -enum wxSashDragStatus -{ - wxSASH_STATUS_OK, - wxSASH_STATUS_OUT_OF_RANGE -}; - - -class wxSashEvent : public wxCommandEvent { -public: - void SetEdge(wxSashEdgePosition edge); - wxSashEdgePosition GetEdge(); - void SetDragRect(const wxRect& rect); - wxRect GetDragRect(); - void SetDragStatus(wxSashDragStatus status); - wxSashDragStatus GetDragStatus(); -}; - - - -class wxSashWindow: public wxWindow { -public: - wxSashWindow(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxCLIP_CHILDREN | wxSW_3D, - const char* name = "sashWindow"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - - bool GetSashVisible(wxSashEdgePosition edge); - int GetDefaultBorderSize(); - int GetEdgeMargin(wxSashEdgePosition edge); - int GetExtraBorderSize(); - int GetMaximumSizeX(); - int GetMaximumSizeY(); - int GetMinimumSizeX(); - int GetMinimumSizeY(); - bool HasBorder(wxSashEdgePosition edge); - void SetDefaultBorderSize(int width); - void SetExtraBorderSize(int width); - void SetMaximumSizeX(int min); - void SetMaximumSizeY(int min); - void SetMinimumSizeX(int min); - void SetMinimumSizeY(int min); - void SetSashVisible(wxSashEdgePosition edge, bool visible); - void SetSashBorder(wxSashEdgePosition edge, bool hasBorder); - -}; - - -//--------------------------------------------------------------------------- - -enum wxLayoutOrientation { - wxLAYOUT_HORIZONTAL, - wxLAYOUT_VERTICAL -}; - -enum wxLayoutAlignment { - wxLAYOUT_NONE, - wxLAYOUT_TOP, - wxLAYOUT_LEFT, - wxLAYOUT_RIGHT, - wxLAYOUT_BOTTOM, -}; - - -enum { - wxEVT_QUERY_LAYOUT_INFO, - wxEVT_CALCULATE_LAYOUT, -}; - - -class wxQueryLayoutInfoEvent: public wxEvent { -public: - - void SetRequestedLength(int length); - int GetRequestedLength(); - void SetFlags(int flags); - int GetFlags(); - void SetSize(const wxSize& size); - wxSize GetSize(); - void SetOrientation(wxLayoutOrientation orient); - wxLayoutOrientation GetOrientation(); - void SetAlignment(wxLayoutAlignment align); - wxLayoutAlignment GetAlignment(); -}; - - - -class wxCalculateLayoutEvent: public wxEvent { -public: - void SetFlags(int flags); - int GetFlags(); - void SetRect(const wxRect& rect); - wxRect GetRect(); -}; - - -class wxSashLayoutWindow: public wxSashWindow { -public: - wxSashLayoutWindow(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxPyDefaultPosition, - const wxSize& size = wxPyDefaultSize, - long style = wxCLIP_CHILDREN | wxSW_3D, - const char* name = "layoutWindow"); - - %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCalculateLayout', wxEVT_CALCULATE_LAYOUT)" - %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnQueryLayoutInfo', wxEVT_QUERY_LAYOUT_INFO)" - - - wxLayoutAlignment GetAlignment(); - wxLayoutOrientation GetOrientation(); - void SetAlignment(wxLayoutAlignment alignment); - void SetDefaultSize(const wxSize& size); - void SetOrientation(wxLayoutOrientation orientation); -}; - -//--------------------------------------------------------------------------- - -class wxLayoutAlgorithm { -public: - wxLayoutAlgorithm(); - ~wxLayoutAlgorithm(); - - bool LayoutMDIFrame(wxMDIParentFrame* frame, wxRect* rect = NULL); - bool LayoutFrame(wxFrame* frame, wxWindow* mainWindow = NULL); - bool LayoutWindow(wxWindow* parent, wxWindow* mainWindow = NULL); -}; - - -//--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.2 1999/04/30 03:29:19 RD -// wxPython 2.0b9, first phase (win32) -// Added gobs of stuff, see wxPython/README.txt for details -// -// Revision 1.1 1999/01/30 07:30:16 RD -// -// Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -// -// Various cleanup, tweaks, minor additions, etc. to maintain -// compatibility with the current wxWindows. -// -// -// diff --git a/utils/wxPython/src/wx.i b/utils/wxPython/src/wx.i deleted file mode 100644 index a3c7d06b4c..0000000000 --- a/utils/wxPython/src/wx.i +++ /dev/null @@ -1,161 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wxp.i -// Purpose: SWIG interface file for a python wxWindows module -// -// Author: Robin Dunn -// -// Created: 5/22/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 by Total Control Software -// Licence: wxWindows license -///////////////////////////////////////////////////////////////////////////// - -%module wx - - -%{ -#include "helpers.h" -%} - -//---------------------------------------------------------------------- -// This is where we include the other wrapper definition files for SWIG -//---------------------------------------------------------------------- - -%include typemaps.i -%include my_typemaps.i -%include _defs.i - -%import misc.i -%import windows.i -%import events.i -%import gdi.i -%import mdi.i -%import controls.i -%import controls2.i -%import windows2.i -%import cmndlgs.i -%import stattool.i -%import frames.i -%import windows3.i -%import image.i - - -%native(_wxStart) __wxStart; -%native(_wxSetDictionary) __wxSetDictionary; - -//--------------------------------------------------------------------------- - -#define __version__ "2.0b9" - -wxPoint wxPyDefaultPosition; -wxSize wxPyDefaultSize; - -//--------------------------------------------------------------------------- -//--------------------------------------------------------------------------- - -class wxPyApp : public wxEvtHandler { -public: - %addmethods { - wxPyApp() { - wxPythonApp = new wxPyApp(); - return wxPythonApp; - } - } - - - wxString GetAppName(); -#ifdef __WXMSW__ - bool GetAuto3D(); -#endif - wxString GetClassName(); - bool GetExitOnFrameDelete(); - int GetPrintMode(); - wxWindow * GetTopWindow(); - wxString GetVendorName(); - - void Dispatch(); - void ExitMainLoop(); - bool Initialized(); - int MainLoop(); - bool Pending(); - - void SetAppName(const wxString& name); -#ifdef __WXMSW__ - void SetAuto3D(bool auto3D); -#endif - void SetClassName(const wxString& name); - void SetExitOnFrameDelete(bool flag); - void SetPrintMode(int mode); - void SetTopWindow(wxWindow* window); - void SetVendorName(const wxString& name); - - // This one is wxPython specific. If you override MainLoop, - // call this when done. - void AfterMainLoop(); -}; - - - -//---------------------------------------------------------------------- -// This code gets added to the module initialization function -//---------------------------------------------------------------------- - -%{ -extern "C" SWIGEXPORT(void,initwindowsc)(); -extern "C" SWIGEXPORT(void,initwindows2c)(); -extern "C" SWIGEXPORT(void,initeventsc)(); -extern "C" SWIGEXPORT(void,initmiscc)(); -extern "C" SWIGEXPORT(void,initgdic)(); -extern "C" SWIGEXPORT(void,initmdic)(); -extern "C" SWIGEXPORT(void,initcontrolsc)(); -extern "C" SWIGEXPORT(void,initcontrols2c)(); -extern "C" SWIGEXPORT(void,initcmndlgsc)(); -extern "C" SWIGEXPORT(void,initstattoolc)(); -extern "C" SWIGEXPORT(void,initframesc)(); -extern "C" SWIGEXPORT(void,initwindows3c)(); -extern "C" SWIGEXPORT(void,initimagec)(); -#ifndef SEPARATE -extern "C" SWIGEXPORT(void,initutilsc)(); -extern "C" SWIGEXPORT(void,initglcanvasc)(); -#endif -%} - - - -%init %{ - - __wxPreStart(); // initialize the GUI toolkit, if needed. - -// wxPyWindows = new wxHashTable(wxKEY_INTEGER, 100); - - // Since these modules are all linked together, initialize them now - // because python won't be able to find their shared library files, - // (since there isn't any.) - initwindowsc(); - initwindows2c(); - initeventsc(); - initmiscc(); - initgdic(); - initmdic(); - initcontrolsc(); - initcontrols2c(); - initcmndlgsc(); - initstattoolc(); - initframesc(); - initwindows3c(); - initimagec(); -#ifndef SEPARATE - initutilsc(); -#ifdef WITH_GLCANVAS - initglcanvasc(); -#endif -#endif -%} - -//---------------------------------------------------------------------- -// And this gets appended to the shadow class file. -//---------------------------------------------------------------------- - -%pragma(python) include="_extras.py"; - - diff --git a/utils/wxPython/src/wxc.def b/utils/wxPython/src/wxc.def deleted file mode 100644 index 87d2d233b6..0000000000 --- a/utils/wxPython/src/wxc.def +++ /dev/null @@ -1,6 +0,0 @@ -EXPORTS - initwxc - SWIG_GetPtr - SWIG_MakePtr - SWIG_RegisterMapping - SWIG_newvarlink diff --git a/utils/wxPython/src/wxc.rc b/utils/wxPython/src/wxc.rc deleted file mode 100644 index 9d6118d5b5..0000000000 --- a/utils/wxPython/src/wxc.rc +++ /dev/null @@ -1,2 +0,0 @@ -wxpicon ICON "wxp.ico" -#include "wx/msw/wx.rc" diff --git a/utils/wxPython/src/wxp.ico b/utils/wxPython/src/wxp.ico deleted file mode 100644 index 60fc2b318bf259e2a6528f9e498683807ba7e941..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmc(cF%H5o3`Ktt3lS1b%pExfN6QgdyLHaeEBFAFdJV1sLNeb@LmPy|h||P<{y&M; z0u4vo9$|6Y04L@%XUlovY_R1DL~7q7Qlt`NPF(p45n(n#{eh~zadKG6mXFwvRfzMX zrTBvd?l0~!^c73WJfA0_=8!5zs#u6?o$fW8d*P?M7uMkNd%r%`Jn~EALhern7StS> zLozl8c~ZN|9EF*^P%*b;KFmiCneA-z^8_wHAp6}c1J{u3E|(QuXY9>b16^ishIlVL W7l`gpJvYw5{XKStsDJ$KzvBx8xnpSn diff --git a/utils/wxPython/tests/.cvsignore b/utils/wxPython/tests/.cvsignore deleted file mode 100644 index d75b7dec7d..0000000000 --- a/utils/wxPython/tests/.cvsignore +++ /dev/null @@ -1,7 +0,0 @@ -hh_test.py -setup.bat -test1.pyc -test4.pyc -test6.pyc -test8.pyc -th_test.py diff --git a/utils/wxPython/tests/README.txt b/utils/wxPython/tests/README.txt deleted file mode 100644 index f480e98ff0..0000000000 --- a/utils/wxPython/tests/README.txt +++ /dev/null @@ -1,7 +0,0 @@ -29-Apr-1999 - -The tests in this directory are being depreciated in favor of the demo -program found in ../demo. - - -Robin \ No newline at end of file diff --git a/utils/wxPython/tests/bitmaps/copy.bmp b/utils/wxPython/tests/bitmaps/copy.bmp deleted file mode 100644 index 4551a06bfa79e0a42c1ffb7cdbb90fd4f699dce2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVK?*`K3`9pLxU9$U91{2|@hV+>tjiv)Cz3AyzP{vxy7<$~OeTT!c7JQf6T89- z%?kmn<${;(P#uFN<0A#FuUo(qgT{&F@ekspii W=d@ZzPG(Cb=QBs}_=7thzxV(viB<;y diff --git a/utils/wxPython/tests/bitmaps/mondrian.ico b/utils/wxPython/tests/bitmaps/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Zb0l4tjP;1(ew=nJ8j|<6WY3bU0`GK9aK^RUId`!4(ELX-1{H u>6c`QQqJ8_T9s0iQsQ8(Wab^@`3kuPA_p->w)Xt4Pkz>06 diff --git a/utils/wxPython/tests/bitmaps/open.bmp b/utils/wxPython/tests/bitmaps/open.bmp deleted file mode 100644 index 1c38e97b59dac5b7dcb3d4ac14a31fe36d3fbc6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%m){3`Ez_nP2KLES>QN_TFVHvE)eH08ZrCQ{W?L=aStGNg%iTOA8O|3{UU~ zcRHZbGxVQiiBQhVP*Szl@Yxs<8e?XVGfPPN!qmmh`zzRz%k)d~SOwQraPKkc3JUWb WyzyG%ebUB{{{0*7WXGE5t%V;V>_w>n diff --git a/utils/wxPython/tests/bitmaps/paste.bmp b/utils/wxPython/tests/bitmaps/paste.bmp deleted file mode 100644 index 564f514e0df7225f0a7adbe8457b41af537813bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZvVF%Ci@5Jbns$83OZ*I;# co}I%%@f6>ra3+S=gC69}eM%GII+SAI4J;x>B>(^b diff --git a/utils/wxPython/tests/bitmaps/smiles.bmp b/utils/wxPython/tests/bitmaps/smiles.bmp deleted file mode 100644 index 39006fae82aa4e8c238c053f871538a8e2e5d8ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmYLCu?@p83{!w^29lo9JF@qk%swHfXe~I@Ll4T-B?CjrNh_P8M9S9u{92Di^bqbR z2D_zEl|N(0<)vYA!mPEEvPx^MiNj!CBcl>@LW=$@$O2#@cM+TfUaN!+Sgqi_!zIHD cVh+Fj@4d)`=7RlVy^omkdw@(qd!o?x0|m}&@c;k- diff --git a/utils/wxPython/tests/bitmaps/smiles.ico b/utils/wxPython/tests/bitmaps/smiles.ico deleted file mode 100644 index bb29c8edd7e66d24e5acde41c632ebb805b87891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmah{Ic~!+5FEt;0>gz}rHxAeBL12A1hx8wdNzED%9JWo7^Y`-NeVsyue8_f>~eJg z9k0GWK=StieA6GPJ@rKG@JUNy?X?7eH$ren%Md9gdKI$W$XOAUmmry!5-Dq8r!>Z? zBAzxzO$%UbpmkU$zHE6l(2OW(RYUe1r&$ z)Fj+QvAFmA=iIxDWqcdyW1sT2rPo)xMz%;3e5eO~rChb~`%^9A_*2Ywb{KLcM0*hm9^!K!#8l_#G{|IAsMso6S1XX#9x FeFHZg6}12W diff --git a/utils/wxPython/tests/bitmaps/test2.bmp b/utils/wxPython/tests/bitmaps/test2.bmp deleted file mode 100644 index 3a6547321271e48f304443d3597480f9e1b6f448..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12342 zcmd6tZ)jIl7{|Z8&NPZpvm&t63}q?^MbMaR&e(F8L9z)mBwvldfgngUL|pl1Y@uXt zBIsQ-7(tLA3>vIdCT#wBAwt523lfI2m7A{b^E$ zJm=hV&i&OjZ?8e=-**1p!2h-7|4(5RCH^ZvcNgyOJdjxMH3}3lmH02vN@COAO|@2y zg#zSSCF(*o?Rw;ksHiZ-gt7~Z0I-f=+q}KZl#4M(YRv&Nz;vMS5f!pYw#^gXl}u$- zh>%oqc?S3j=*1K;4vYfBz>r_Ceh3?ev2hfe#;HaJL%t~aQt*?!7xIJsW6>}kP{4K-cKquh5z#Esbc@kUi$6ZLt9QP=jfAO>d z3r&FY0x$Pr-FXi1xC@Kr4>VnH2*j+_b4{?K3D37!L z5zp<%nv;nxq<2A(e`(-dE2%CN;a^Jl#kr6W|D}h|av`M)qWmHFxjD?t;NCs?OWCTq zN7K__i9fZP5jk#iA(6UeMv_VOLHdi#D*Kp?!9y}+DAz!`~?D&Gq=(>eLsNAX5=PlLfhoH>IpzQFh2j#ome}7%@gc`l>8BFXEEH65VDDb z2hr9hoWK9hL{bbVVBbEpw1^HhuUwHtiW%gcXf5jR-HStq@Xa?8mVf?{TH->zEHhr} z!5bs&f=vGO;0r&oKl~7T_DGPKCvkql@7N(OR1|XY)8>2ciPvY(`utuOJjmKRWVR(y zWt3Pd;Z2An;n@q74$5nj@ZH@wf8NVF(*<1Pao3R11xbBPfO2jypPAL{ViuF$)&-nC zjn6*A=bz)d?_@X!@+ZM2BTxA8ac|U{QNU#?SK29EkQk_in-3r2@4xZKA2Ru{P~atR zs>_^7Zr{eGOZe$0{P2S~cB!B&d(NO_op}lTZ=b!QIxA^f#L83?LvnVJ3KmWw#%VKkA z2v@Iq(=wZ0R$B+O09~bR>Ai3Yh4{Vna5E%xyE1>eTAt3SQ~2~#965r%zJ!#hM8>NU zFiYdLrQ0rZ#72NH)sDEPeZHFWHlfU!_ucXO%WE2y%}qK%E%zaJ-0;+J1!EKu1jIaHH^ zSc{oeB)Y&2Li!L;<+zZiA*-YEf(yrwqrYF0+$<_ojY1}W<`9Tu>z$kpSv4z5FMRY7 z4j+yT2Tvy}{_KKgdRaPCN_-0_ZCuFTkkzy@8X9Co_`|_dcry6uyQQ-7LM~Navfk4t zhTnCcWmCEA!hr+wj=pk5?^8(6e_6;at6hTpvAJjQoGb%@lhW?pvcUNDSF4bRA1j*w z@BFv?@m!KoTwjk}yU@|W>FCMlPjG?obb;H4zP{@CxtDpig{P)G*-l(SL_%jTt7xdQ zHqh#}E@hd8>gwF?z&^^(AKA#XaW5HP!j<=xv8EFlG8&2*v5*D%OM@57cYz1jJbT|X z9$7!Q!_vf^mvg}~B=d()9&BCVFOWZupBv#-N9Dso&6HigIe6Cv8t{l<8KV4m@5=I+ zs{$T4a68Gub@jxAEOlmQZAF3S_;oL`&Q1&r*r!pmrDataL)QQ0wTFaSU5#Lj0d_WgSak-mxUwkiDt049wP6 zy|hAk^5^(11)qK7Jq^8oUGM{^D4IMje-_Vgks@;W<;x`yH#J;{PET6}4T}hsWw``X z_`M?(hw8c@&Y$Q)s3ChlU6wgt*Kd^*23sYWKPmW*`H}E5P?jMiyQGq|@wby!Kg=Hu zekOms3o;wB3RV^>79G@8?O(#d*Az<3pA3G&aFB8h7D-gT0yyb$=H&dzS(G`f#ZIaz z`$yWOW!k4c&$pA#ZxuKtf5;zk!3!zpNgkA$^G|QevM(~aqb2D$-80MmJ8jakJJwtF zZsl8&cYdCqKjea((y$40{_OE5O}`-p<(C6bo}bVrEz|zf?_l}Pln-H<`Qy4E;(}o4 ztCj~-k@Np*$UTqr!vSrMjlILy^zw#u`273{F1QRy{Qgqdg^JD9cy}lH!=E6l%Aa5_ z6y{8=_#*0FLgRk&2fm*wd}93FO=XS;ut^0+{E^6=!>QS!IYvl9a!;PNDq zl77FToEE+SKV3M;pMWhogWD7Z^LQqG9rYUxcj%AhfH={>Rq$5r}{rpekmLJQV{J>80u|Ph7js6FY C`uY<9 diff --git a/utils/wxPython/tests/bitmaps/tog1.bmp b/utils/wxPython/tests/bitmaps/tog1.bmp deleted file mode 100644 index 75f6e7c4cb5d8733655a31cdedc5a6e8a2cdf611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmZ?rea8R+Wk5;;hy{R{ABY(lSb!u0Lj@2Y;e%kX0G!y*zyL%H`}adAAPHnL95`@* vp`oDxDDfYR82= self.min_length: break - n = n - 1 - if n: return string.lower(m.groups()[0]) - return "error" - builtin_words = ' albatros banana electrometer eggshell' - -def stdprint(x): - print x - -class URLWordFetcher(WordFetcher): - def __init__(self, url): - self.OpenURL(url) - WordFetcher.__init__(self, "hangman_dict.txt") - def logprint(self,x): - print x - def RetrieveAsFile(self, host, path=''): - from httplib import HTTP - try: - h = HTTP(host) - except: - self.logprint("Failed to create HTTP connection to %s... is the network available?" % (host)) - return None - h.putrequest('GET',path) - h.putheader('Accept','text/html') - h.putheader('Accept','text/plain') - h.endheaders() - errcode, errmsg, headers = h.getreply() - if errcode != 200: - self.logprint("HTTP error code %d: %s" % (errcode, errmsg)) - return None - f = h.getfile() - return f - def OpenURL(self,url): - from htmllib import HTMLParser - import formatter - self.url = url - m = re.match('http://([^/]+)(/\S*)\s*', url) - if m: - host = m.groups()[0] - path = m.groups()[1] - else: - m = re.match('http://(\S+)\s*', url) - if not m: - # Invalid URL - self.logprint("Invalid or unsupported URL: %s" % (url)) - return - host = m.groups()[0] - path = '' - f = self.RetrieveAsFile(host,path) - if not f: - self.logprint("Could not open %s" % (url)) - return - self.logprint("Receiving data...") - data = f.read() - tmp = open('hangman_dict.txt','w') - fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp)) - p = HTMLParser(fmt) - self.logprint("Parsing data...") - p.feed(data) - p.close() - tmp.close() - -class HangmanWnd(wxWindow): - def __init__(self, parent, id, pos=wxDefaultPosition, size=wxDefaultSize): - wxWindow.__init__(self, parent, id, pos, size) - self.SetBackgroundColour(wxNamedColour('white')) - if wxPlatform == '__WXGTK__': - self.font = wxFont(12, wxMODERN, wxNORMAL, wxNORMAL) - else: - self.font = wxFont(10, wxMODERN, wxNORMAL, wxNORMAL) - self.SetFocus() - def StartGame(self, word): - self.word = word - self.guess = [] - self.tries = 0 - self.misses = 0 - self.Draw() - def EndGame(self): - self.misses = 7; - self.guess = map(chr, range(ord('a'),ord('z')+1)) - self.Draw() - def HandleKey(self, key): - self.message = "" - if self.guess.count(key): - self.message = 'Already guessed %s' % (key,) - return 0 - self.guess.append(key) - self.guess.sort() - self.tries = self.tries+1 - if not key in self.word: - self.misses = self.misses+1 - if self.misses == 7: - self.EndGame() - return 1 - has_won = 1 - for letter in self.word: - if not self.guess.count(letter): - has_won = 0 - break - if has_won: - self.Draw() - return 2 - self.Draw() - return 0 - def Draw(self, dc = None): - if not dc: - dc = wxClientDC(self) - dc.SetFont(self.font) - dc.Clear() - (x,y) = self.GetSizeTuple() - x1 = x-200; y1 = 20 - for letter in self.word: - if self.guess.count(letter): - dc.DrawText(letter, x1, y1) - else: - dc.DrawText('.', x1, y1) - x1 = x1 + 10 - x1 = x-200 - dc.DrawText("tries %d misses %d" % (self.tries,self.misses),x1,50) - guesses = "" - for letter in self.guess: - guesses = guesses + letter - dc.DrawText("guessed:", x1, 70) - dc.DrawText(guesses[:13], x1+80, 70) - dc.DrawText(guesses[13:], x1+80, 90) - dc.SetUserScale(x/1000., y/1000.) - self.DrawVictim(dc) - def DrawVictim(self, dc): - dc.SetPen(wxPen(wxNamedColour('black'), 20)) - dc.DrawLines([(10, 980), (10,900), (700,900), (700,940), (720,940), - (720,980), (900,980)]) - dc.DrawLines([(100,900), (100, 100), (300,100)]) - dc.DrawLine(100,200,200,100) - if ( self.misses == 0 ): return - dc.SetPen(wxPen(wxNamedColour('blue'), 10)) - dc.DrawLine(300,100,300,200) - if ( self.misses == 1 ): return - dc.DrawEllipse(250,200,100,100) - if ( self.misses == 2 ): return - dc.DrawLine(300,300,300,600) - if ( self.misses == 3) : return - dc.DrawLine(300,300,250,550) - if ( self.misses == 4) : return - dc.DrawLine(300,300,350,550) - if ( self.misses == 5) : return - dc.DrawLine(300,600,350,850) - if ( self.misses == 6) : return - dc.DrawLine(300,600,250,850) - def OnPaint(self, event): - dc = wxPaintDC(self) - self.Draw(dc) - -class HangmanDemo(HangmanWnd): - def __init__(self, wf, parent, id, pos, size): - HangmanWnd.__init__(self, parent, id, pos, size) - self.StartGame("dummy") - self.start_new = 1 - self.wf = wf - self.delay = 500 - self.timer = self.PlayTimer(self.MakeMove) - def MakeMove(self): - self.timer.Stop() - if self.start_new: - self.StartGame(self.wf.Get()) - self.start_new = 0 - self.left = list('aaaabcdeeeeefghiiiiijklmnnnoooopqrssssttttuuuuvwxyz') - else: - key = self.left[int(random.random()*len(self.left))] - while self.left.count(key): self.left.remove(key) - self.start_new = self.HandleKey(key) - self.timer.Start(self.delay) - def Stop(self): - self.timer.Stop() - class PlayTimer(wxTimer): - def __init__(self,func): - wxTimer.__init__(self) - self.func = func - self.Start(1000) - def Notify(self): - apply(self.func, ()) - -class HangmanDemoFrame(wxFrame): - def __init__(self, wf, parent, id, pos, size): - wxFrame.__init__(self, parent, id, "Hangman demo", pos, size) - self.demo = HangmanDemo(wf, self, -1, wxDefaultPosition, wxDefaultSize) - def OnCloseWindow(self, event): - self.demo.timer.Stop() - self.Destroy() - -class AboutBox(wxDialog): - def __init__(self, parent,wf): - wxDialog.__init__(self, parent, -1, "About Hangman", wxDefaultPosition, wxSize(350,450)) - self.wnd = HangmanDemo(wf, self, -1, wxPoint(1,1), wxSize(350,150)) - self.static = wxStaticText(self, -1, __doc__, wxPoint(1,160), wxSize(350, 250)) - self.button = wxButton(self, 2001, "OK", wxPoint(150,420), wxSize(50,-1)) - EVT_BUTTON(self, 2001, self.OnOK) - def OnOK(self, event): - self.wnd.Stop() - self.EndModal(wxID_OK) - -class MyFrame(wxFrame): - def __init__(self, wf): - self.wf = wf - wxFrame.__init__(self, NULL, -1, "hangman", wxDefaultPosition, wxSize(400,300)) - self.wnd = HangmanWnd(self, -1) - menu = wxMenu() - menu.Append(1001, "New") - menu.Append(1002, "End") - menu.AppendSeparator() - menu.Append(1003, "Reset") - menu.Append(1004, "Demo...") - menu.AppendSeparator() - menu.Append(1005, "Exit") - menubar = wxMenuBar() - menubar.Append(menu, "Game") - menu = wxMenu() - #menu.Append(1010, "Internal", "Use internal dictionary", TRUE) - menu.Append(1011, "ASCII File...") - urls = [ 'wxPython home', 'http://208.240.253.245/wxPython/main.html', - 'slashdot.org', 'http://slashdot.org/', - 'cnn.com', 'http://cnn.com', - 'The New York Times', 'http://www.nytimes.com', - 'De Volkskrant', 'http://www.volkskrant.nl/frameless/25000006.html', - 'Gnu GPL', 'http://www.fsf.org/copyleft/gpl.html', - 'Bijbel: Genesis', 'http://www.coas.com/bijbel/gn1.htm'] - urlmenu = wxMenu() - for item in range(0,len(urls),2): - urlmenu.Append(1020+item/2, urls[item], urls[item+1]) - urlmenu.Append(1080, 'Other...', 'Enter an URL') - menu.AppendMenu(1012, 'URL', urlmenu, 'Use a webpage') - menu.Append(1013, 'Dump', 'Write contents to stdout') - menubar.Append(menu, "Dictionary") - self.urls = urls - self.urloffset = 1020 - menu = wxMenu() - menu.Append(1090, "About...") - menubar.Append(menu, "Help") - self.SetMenuBar(menubar) - self.CreateStatusBar(2) - EVT_MENU(self, 1001, self.OnGameNew) - EVT_MENU(self, 1002, self.OnGameEnd) - EVT_MENU(self, 1003, self.OnGameReset) - EVT_MENU(self, 1004, self.OnGameDemo) - EVT_MENU(self, 1005, self.OnWindowClose) - EVT_MENU(self, 1011, self.OnDictFile) - EVT_MENU_RANGE(self, 1020, 1020+len(urls)/2, self.OnDictURL) - EVT_MENU(self, 1080, self.OnDictURLSel) - EVT_MENU(self, 1013, self.OnDictDump) - EVT_MENU(self, 1090, self.OnHelpAbout) - EVT_CHAR(self.wnd, self.OnChar) - self.OnGameReset() - def OnGameNew(self, event): - word = self.wf.Get() - self.in_progress = 1 - self.SetStatusText("",0) - self.wnd.StartGame(word) - def OnGameEnd(self, event): - self.UpdateAverages(0) - self.in_progress = 0 - self.SetStatusText("",0) - self.wnd.EndGame() - def OnGameReset(self, event=None): - self.played = 0 - self.won = 0 - self.history = [] - self.average = 0.0 - self.OnGameNew(None) - def OnGameDemo(self, event): - frame = HangmanDemoFrame(self.wf, self, -1, wxDefaultPosition, self.GetSize()) - frame.Show(TRUE) - def OnDictFile(self, event): - fd = wxFileDialog(self) - if (self.wf.filename): - fd.SetFilename(self.wf.filename) - if fd.ShowModal() == wxID_OK: - file = fd.GetPath() - self.wf = WordFetcher(file) - def OnDictURL(self, event): - item = (event.GetId() - self.urloffset)*2 - print "Trying to open %s at %s" % (self.urls[item], self.urls[item+1]) - self.wf = URLWordFetcher(self.urls[item+1]) - def OnDictURLSel(self, event): - msg = wxTextEntryDialog(self, "Enter the URL of the dictionary document", "Enter URL") - if msg.ShowModal() == wxID_OK: - url = msg.GetValue() - self.wf = URLWordFetcher(url) - def OnDictDump(self, event): - print self.wf.words - def OnHelpAbout(self, event): - about = AboutBox(self, self.wf) - about.ShowModal() - about.wnd.Stop() # that damn timer won't stop! - def UpdateAverages(self, has_won): - if has_won: - self.won = self.won + 1 - self.played = self.played+1 - self.history.append(self.wnd.misses) # ugly - total = 0.0 - for m in self.history: - total = total + m - self.average = float(total/len(self.history)) - def OnChar(self, event): - if not self.in_progress: - self.OnGameNew(None) - return - key = event.KeyCode(); - if key >= ord('A') and key <= ord('Z'): - key = key + ord('a') - ord('A') - key = chr(key) - if key < 'a' or key > 'z': - event.Skip() - return - res = self.wnd.HandleKey(key) - if res == 0: - self.SetStatusText(self.wnd.message) - elif res == 1: - self.UpdateAverages(0) - self.SetStatusText("Too bad, you're dead!",0) - self.in_progress = 0 - elif res == 2: - self.in_progress = 0 - self.UpdateAverages(1) - self.SetStatusText("Congratulations!",0) - if self.played: - percent = (100.*self.won)/self.played - else: - percent = 0.0 - self.SetStatusText("p %d, w %d (%g %%), av %g" % (self.played,self.won, percent, self.average),1) - - def OnWindowClose(self, event): - self.Destroy() - -class MyApp(wxApp): - def OnInit(self): - if wxPlatform == '__WXGTK__': - defaultfile = "/usr/share/games/hangman-words" - elif wxPlatform == '__WXMSW__': - defaultfile = "c:\\windows\\hardware.txt" - else: - defaultfile = "" - wf = WordFetcher(defaultfile) - frame = MyFrame(wf) - self.SetTopWindow(frame) - frame.Show(TRUE) - return TRUE - -if __name__ == '__main__': - app = MyApp(0) - app.MainLoop() diff --git a/utils/wxPython/tests/test1.py b/utils/wxPython/tests/test1.py deleted file mode 100644 index 90e68ee2de..0000000000 --- a/utils/wxPython/tests/test1.py +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test1.py -# Purpose: A minimal wxPython program -# -# Author: Robin Dunn -# -# Created: A long time ago, in a galaxy far, far away... -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -## import all of the wxPython GUI package -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - -## Create a new frame class, derived from the wxPython Frame. -class MyFrame(wxFrame): - - def __init__(self, parent, id, title): - # First, call the base class' __init__ method to create the frame - wxFrame.__init__(self, parent, id, title, - wxPoint(100, 100), wxSize(160, 100)) - - # Associate some events with methods of this class - EVT_SIZE(self, self.OnSize) - EVT_MOVE(self, self.OnMove) - - - # This method is called automatically when the CLOSE event is - # sent to this window - def OnCloseWindow(self, event): - # tell the window to kill itself - self.Destroy() - - - # This method is called by the System when the window is resized, - # because of the association above. - def OnSize(self, event): - size = event.GetSize() - print "size:", size.width, size.height - - # This method is called by the System when the window is moved, - # because of the association above. - def OnMove(self, event): - pos = event.GetPosition() - print "pos:", pos.x, pos.y - - - -#--------------------------------------------------------------------------- - -# Every wxWindows application must have a class derived from wxApp -class MyApp(wxApp): - - # wxWindows calls this method to initialize the application - def OnInit(self): - - # Create an instance of our customized Frame class - frame = MyFrame(NULL, -1, "This is a test") - frame.Show(true) - - # Tell wxWindows that this is our main window - self.SetTopWindow(frame) - - # Return a success flag - return true - -#--------------------------------------------------------------------------- - - -app = MyApp(0) # Create an instance of the application class -app.MainLoop() # Tell it to start processing events - -print 'done!' - -#---------------------------------------------------------------------------- -# - diff --git a/utils/wxPython/tests/test2.py b/utils/wxPython/tests/test2.py deleted file mode 100644 index aacfba61e7..0000000000 --- a/utils/wxPython/tests/test2.py +++ /dev/null @@ -1,190 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test2.py -# Purpose: Testing GDI stuff and events. -# -# Author: Robin Dunn -# -# Created: -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - - - -class MyCanvas(wxScrolledWindow): - def __init__(self, parent): - wxScrolledWindow.__init__(self, parent, -1, wxPoint(0, 0), wxPyDefaultSize, wxSUNKEN_BORDER) - - self.SetBackgroundColour(wxNamedColor("WHITE")) - self.Connect(-1, -1, wxEVT_LEFT_DOWN, self.OnLeftButtonEvent) - self.Connect(-1, -1, wxEVT_LEFT_UP, self.OnLeftButtonEvent) - self.Connect(-1, -1, wxEVT_MOTION, self.OnLeftButtonEvent) - - self.SetCursor(wxStockCursor(wxCURSOR_PENCIL)) - bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) - self.bmp = bmp - - self.SetScrollbars(20, 20, 50, 50) - - self.lines = [] - - - - def OnPaint(self, event): - dc = wxPaintDC(self) - self.PrepareDC(dc) - self.DoDrawing(dc) - - - - def DoDrawing(self, dc): - dc.BeginDrawing() - #dc.Clear() - pen1 = wxPen(wxNamedColour('RED')) - dc.SetPen(pen1) - dc.DrawRectangle(5, 5, 50, 50) - - dc.SetBrush(wxLIGHT_GREY_BRUSH) - dc.SetPen(wxPen(wxNamedColour('BLUE'), 4)) - dc.DrawRectangle(15, 15, 50, 50) - - font = wxFont(14, wxSWISS, wxNORMAL, wxNORMAL) - dc.SetFont(font) - dc.SetTextForeground(wxColour(0xFF, 0x20, 0xFF)) - te = dc.GetTextExtent("Hello World") - dc.DrawText("Hello World", 60, 65) - - dc.SetPen(wxPen(wxNamedColour('VIOLET'), 4)) - dc.DrawLine(5, 65+te[1], 60+te[0], 65+te[1]) - - lst = [(100,110), (150,110), (150,160), (100,160)] - dc.DrawLines(lst, -60) - dc.SetPen(wxGREY_PEN) - dc.DrawPolygon(lst, 75) - dc.SetPen(wxGREEN_PEN) - dc.DrawSpline(lst+[(100,100)]) - - dc.DrawBitmap(self.bmp, 200, 20) - dc.SetTextForeground(wxColour(0, 0xFF, 0x80)) - dc.DrawText("a bitmap", 200, 80) - - self.DrawSavedLines(dc) - dc.EndDrawing() - - - def DrawSavedLines(self, dc): - dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4)) - for line in self.lines: - for coords in line: - apply(dc.DrawLine, coords) - - - - def OnLeftButtonEvent(self, event): - if event.LeftDown(): - self.x, self.y = event.GetX(), event.GetY() - self.curLine = [] - elif event.Dragging(): - dc = wxClientDC(self) - dc.BeginDrawing() - dc.SetPen(wxPen(wxNamedColour('MEDIUM FOREST GREEN'), 4)) - coords = (self.x, self.y, event.GetX(), event.GetY()) - self.curLine.append(coords) - apply(dc.DrawLine, coords) - self.x, self.y = event.GetX(), event.GetY() - dc.EndDrawing() - elif event.LeftUp(): - self.lines.append(self.curLine) - self.curLine = [] - - - - - -#--------------------------------------------------------------------------- - -class MyFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, wxSize(320, 200)) - self.canvas = MyCanvas(self) - - def OnCloseWindow(self, event): - self.Destroy() - - def OnSize(self, event): - size = self.GetClientSize() - self.canvas.SetDimensions(5, 5, size.width-10, size.height-10) - - -#--------------------------------------------------------------------------- - - -class MyApp(wxApp): - def OnInit(self): - frame = MyFrame(NULL, -1, "Test 2") - frame.Show(true) - self.SetTopWindow(frame) - return true - - -#--------------------------------------------------------------------------- - - -def main(): - app = MyApp(0) - app.MainLoop() - - -def t(): - import pdb - pdb.run('main()') - -if __name__ == '__main__': - main() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.3 1999/04/30 03:29:53 RD -# wxPython 2.0b9, first phase (win32) -# Added gobs of stuff, see wxPython/README.txt for details -# -# Revision 1.2.4.1 1999/03/27 23:30:00 RD -# -# wxPython 2.0b8 -# Python thread support -# various minor additions -# various minor fixes -# -# Revision 1.2 1998/12/15 20:44:34 RD -# Changed the import semantics from "from wxPython import *" to "from -# wxPython.wx import *" This is for people who are worried about -# namespace pollution, they can use "from wxPython import wx" and then -# prefix all the wxPython identifiers with "wx." -# -# Added wxTaskbarIcon for wxMSW. -# -# Made the events work for wxGrid. -# -# Added wxConfig. -# -# Added wxMiniFrame for wxGTK, (untested.) -# -# Changed many of the args and return values that were pointers to gdi -# objects to references to reflect changes in the wxWindows API. -# -# Other assorted fixes and additions. -# -# Revision 1.1 1998/08/09 08:28:05 RD -# Initial version -# -# diff --git a/utils/wxPython/tests/test3.py b/utils/wxPython/tests/test3.py deleted file mode 100644 index da57af5baa..0000000000 --- a/utils/wxPython/tests/test3.py +++ /dev/null @@ -1,194 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test3.py -# Purpose: Testing menus and status lines -# -# Author: Robin Dunn -# -# Created: -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - -class MyCanvas(wxWindow): - def __init__(self, parent, ID): - wxWindow.__init__(self, parent, ID) - self.SetBackgroundColour(wxNamedColor("WHITE")) - - def OnPaint(self, event): - dc = wxPaintDC(self) - dc.BeginDrawing() - size = self.GetClientSize() - font = wxFont(42, wxSWISS, wxNORMAL, wxNORMAL) - dc.SetFont(font) - st = "Python Rules!" - tw,th = dc.GetTextExtent(st) - dc.DrawText(st, (size.width-tw)/2, (size.height-th)/2) - dc.EndDrawing() - -#--------------------------------------------------------------------------- - -#if wxPlatform == '__WXMSW__': -class MyMiniFrame(wxMiniFrame): - def __init__(self, parent, ID, title, pos, size, style): - wxMiniFrame.__init__(self, parent, ID, title, pos, size, style) - panel = wxPanel(self, -1) - ID = NewId() - button = wxButton(panel, ID, "Close Me") - button.SetPosition(wxPoint(15, 15)) - self.Connect(ID, -1, wxEVT_COMMAND_BUTTON_CLICKED, self.OnCloseMe) - - def OnCloseMe(self, event): - self.Close(true) - - def OnCloseWindow(self, event): - self.Destroy() -#--------------------------------------------------------------------------- - -class MyFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, - wxSize(420, 200)) - self.canvas = MyCanvas(self, -1) - self.CreateStatusBar(2) - mainmenu = wxMenuBar() - menu = wxMenu() - menu.Append(100, 'A &Menu Item', 'the help text') - menu.Append(101, '&Another', 'Grok!') - menu.AppendSeparator() - menu.Append(200, 'E&xit', 'Get the heck outta here!') - mainmenu.Append(menu, "&It's a menu!") - self.SetMenuBar(mainmenu) - if wxPlatform == '__WXMSW__': - print menu.GetHelpString(100) - print mainmenu.GetHelpString(101) - print mainmenu.GetHelpString(200) - self.DragAcceptFiles(true) - - self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand) - self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles) - - - - def OnCloseWindow(self, event): - print 'OnCloseWindow' - self.Destroy() - - - def OnSize(self, event): - size = self.GetClientSize() - self.canvas.SetSize(size) - self.SetStatusText("hello, this is a test: (%d, %d)" % (size.width, size.height), 1) - -## def OnMenuHighlight(self, event): -## mainmenu = self.GetMenuBar() -## st = mainmenu.GetHelpString(event.GetMenuId()) -## self.SetStatusText('['+st+']', 0) - - def OnMenuCommand(self, event): - # why isn't this a wxMenuEvent??? - print event, event.GetInt() - if event.GetInt() == 200: - self.Close() - elif event.GetInt() == 101: - #if wxPlatform == '__WXMSW__': - win = MyMiniFrame(self, -1, "This is a Mini...", - wxPoint(-1, -1), #wxPyDefaultPosition, - wxSize(150, 150), - wxMINIMIZE_BOX | wxMAXIMIZE_BOX | - wxTHICK_FRAME | wxSYSTEM_MENU | - wxTINY_CAPTION_HORIZ) - win.Show(true) - #else: - # print 'Sorry, can\'t do mini\'s...' - - - - def OnDropFiles(self, event): - fileList = event.GetFiles() - for file in fileList: - print file - - -#--------------------------------------------------------------------------- - - -class MyApp(wxApp): - def OnInit(self): - frame = MyFrame(NULL, -1, "Test 3") - frame.Show(true) - self.SetTopWindow(frame) - return true - -#--------------------------------------------------------------------------- - - -def main(): - app = MyApp(0) - app.MainLoop() - - -def t(): - import pdb - pdb.run('main()') - -if __name__ == '__main__': - main() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.6 1999/04/30 03:29:53 RD -# wxPython 2.0b9, first phase (win32) -# Added gobs of stuff, see wxPython/README.txt for details -# -# Revision 1.5 1999/02/20 09:04:43 RD -# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -# window handle. If you can get the window handle into the python code, -# it should just work... More news on this later. -# -# Added wxImageList, wxToolTip. -# -# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -# wxRegConfig class. -# -# As usual, some bug fixes, tweaks, etc. -# -# Revision 1.4 1998/12/16 22:12:46 RD -# -# Tweaks needed to be able to build wxPython with wxGTK. -# -# Revision 1.3 1998/12/15 20:44:35 RD -# Changed the import semantics from "from wxPython import *" to "from -# wxPython.wx import *" This is for people who are worried about -# namespace pollution, they can use "from wxPython import wx" and then -# prefix all the wxPython identifiers with "wx." -# -# Added wxTaskbarIcon for wxMSW. -# -# Made the events work for wxGrid. -# -# Added wxConfig. -# -# Added wxMiniFrame for wxGTK, (untested.) -# -# Changed many of the args and return values that were pointers to gdi -# objects to references to reflect changes in the wxWindows API. -# -# Other assorted fixes and additions. -# -# Revision 1.2 1998/08/22 19:51:17 RD -# some tweaks for wxGTK -# -# Revision 1.1 1998/08/09 08:28:05 RD -# Initial version -# -# diff --git a/utils/wxPython/tests/test4.py b/utils/wxPython/tests/test4.py deleted file mode 100644 index 89b94ebe2e..0000000000 --- a/utils/wxPython/tests/test4.py +++ /dev/null @@ -1,1095 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test4.py -# Purpose: Testing lots of stuff, controls, window types, etc. -# -# Author: Robin Dunn -# -# Created: -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -from wxPython.wx import * - -import time - -#--------------------------------------------------------------------------- - -class TestSimpleControlsDlg(wxDialog): - def __init__(self, parent, log): - self.log = log - wxDialog.__init__(self, parent, -1, "Test Simple Controls", - wxDefaultPosition, wxSize(350, 400)) - - - sampleList = ["zero", "one", "two", "three", "four", "five", - "six", "seven", "eight", "nine", "ten"] - - y_pos = 5 - delta = 25 - - wxStaticText(self, -1, "wxTextCtrl", wxPoint(5, y_pos), wxSize(75, 20)) - wxTextCtrl(self, 10, "", wxPoint(80, y_pos), wxSize(150, 20)) - EVT_TEXT(self, 10, self.EvtText) - y_pos = y_pos + delta - - wxCheckBox(self, 20, "wxCheckBox", wxPoint(80, y_pos), wxSize(150, 20), wxNO_BORDER) - EVT_CHECKBOX(self, 20, self.EvtCheckBox) - y_pos = y_pos + delta - - rb = wxRadioBox(self, 30, "wxRadioBox", wxPoint(80, y_pos), wxDefaultSize, - sampleList, 3, wxRA_SPECIFY_COLS | wxNO_BORDER) - EVT_RADIOBOX(self, 30, self.EvtRadioBox) - width, height = rb.GetSizeTuple() - y_pos = y_pos + height + 5 - - wxStaticText(self, -1, "wxChoice", wxPoint(5, y_pos), wxSize(75, 20)) - wxChoice(self, 40, wxPoint(80, y_pos), wxSize(95, 20), #wxDefaultSize, - sampleList) - EVT_CHOICE(self, 40, self.EvtChoice) - y_pos = y_pos + delta - - wxStaticText(self, -1, "wxComboBox", wxPoint(5, y_pos), wxSize(75, 18)) - wxComboBox(self, 50, "default value", wxPoint(80, y_pos), wxSize(95, 20), - sampleList, wxCB_DROPDOWN) - EVT_COMBOBOX(self, 50, self.EvtComboBox) - y_pos = y_pos + delta - - wxStaticText(self, -1, "wxListBox", wxPoint(5, y_pos), wxSize(75, 18)) - lb = wxListBox(self, 60, wxPoint(80, y_pos), wxDefaultSize, - sampleList, wxLB_SINGLE) - EVT_LISTBOX(self, 60, self.EvtListBox) - EVT_LISTBOX_DCLICK(self, 60, self.EvtListBoxDClick) - lb.SetSelection(0) - width, height = lb.GetSizeTuple() - y_pos = y_pos + height + 5 - - - - y_pos = y_pos + 15 - wxButton(self, wxID_OK, ' OK ', wxPoint(80, y_pos), wxDefaultSize).SetDefault() - wxButton(self, wxID_CANCEL, ' Cancel ', wxPoint(140, y_pos)) - - - def EvtText(self, event): - self.log.WriteText('EvtText: %s\n' % event.GetString()) - - def EvtCheckBox(self, event): - self.log.WriteText('EvtCheckBox: %d\n' % event.GetInt()) - - def EvtRadioBox(self, event): - self.log.WriteText('EvtRadioBox: %d\n' % event.GetInt()) - - def EvtChoice(self, event): - self.log.WriteText('EvtChoice: %s\n' % event.GetString()) - - def EvtComboBox(self, event): - self.log.WriteText('EvtComboBox: %s\n' % event.GetString()) - - def EvtListBox(self, event): - self.log.WriteText('EvtListBox: %s\n' % event.GetString()) - - def EvtListBoxDClick(self, event): - self.log.WriteText('EvtListBoxDClick:\n') - - - -#--------------------------------------------------------------------------- - -class TestTimer(wxTimer): - def __init__(self, log): - wxTimer.__init__(self) - self.log = log - - def Notify(self): - wxBell() - self.log.WriteText('beep!\n') - - -#--------------------------------------------------------------------------- - -class TestLayoutConstraints(wxFrame): - def __init__(self, parent): - wxFrame.__init__(self, parent, -1, 'Test Layout Constraints', - wxDefaultPosition, wxSize(500, 300)) - - self.SetAutoLayout(true) - EVT_BUTTON(self, 100, self.OnButton) - - self.panelA = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelA.SetBackgroundColour(wxBLUE) - lc = wxLayoutConstraints() - lc.top.SameAs(self, wxTop, 10) - lc.left.SameAs(self, wxLeft, 10) - lc.bottom.SameAs(self, wxBottom, 10) - lc.right.PercentOf(self, wxRight, 50) - self.panelA.SetConstraints(lc) - - self.panelB = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelB.SetBackgroundColour(wxRED) - lc = wxLayoutConstraints() - lc.top.SameAs(self, wxTop, 10) - lc.right.SameAs(self, wxRight, 10) - lc.bottom.PercentOf(self, wxBottom, 30) - lc.left.RightOf(self.panelA, 10) - self.panelB.SetConstraints(lc) - - self.panelC = wxWindow(self, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelC.SetBackgroundColour(wxWHITE) - lc = wxLayoutConstraints() - lc.top.Below(self.panelB, 10) - lc.right.SameAs(self, wxRight, 10) - lc.bottom.SameAs(self, wxBottom, 10) - lc.left.RightOf(self.panelA, 10) - self.panelC.SetConstraints(lc) - - b = wxButton(self.panelA, 100, ' Panel A ') - lc = wxLayoutConstraints() - lc.centreX.SameAs (self.panelA, wxCentreX) - lc.centreY.SameAs (self.panelA, wxCentreY) - lc.height.AsIs () - lc.width.PercentOf (self.panelA, wxWidth, 50) - b.SetConstraints(lc); - - b = wxButton(self.panelB, 100, ' Panel B ') - lc = wxLayoutConstraints() - lc.top.SameAs (self.panelB, wxTop, 2) - lc.right.SameAs (self.panelB, wxRight, 4) - lc.height.AsIs () - lc.width.AsIs () - b.SetConstraints(lc); - - self.panelD = wxWindow(self.panelC, -1, wxDefaultPosition, wxDefaultSize, - wxSIMPLE_BORDER) - self.panelD.SetBackgroundColour(wxGREEN) - wxStaticText(self.panelD, -1, "Panel D", wxPoint(4, 4)).SetBackgroundColour(wxGREEN) - - b = wxButton(self.panelC, 100, ' Panel C ') - lc = wxLayoutConstraints() - lc.top.Below (self.panelD) - lc.left.RightOf (self.panelD) - lc.height.AsIs () - lc.width.AsIs () - b.SetConstraints(lc); - - lc = wxLayoutConstraints() - lc.bottom.PercentOf (self.panelC, wxHeight, 50) - lc.right.PercentOf (self.panelC, wxWidth, 50) - lc.height.SameAs (b, wxHeight) - lc.width.SameAs (b, wxWidth) - self.panelD.SetConstraints(lc); - - - def OnButton(self, event): - self.Close(true) - - - def OnCloseWindow(self, event): - self.Destroy() - - -#--------------------------------------------------------------------------- - -class TestGrid(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test Grid', - wxDefaultPosition, wxSize(500, 300)) - self.log = log - - grid = wxGrid(self, -1) - - grid.CreateGrid(16, 16) - grid.SetColumnWidth(3, 200) - grid.SetRowHeight(4, 45) - grid.SetCellValue("First cell", 0, 0) - grid.SetCellValue("Another cell", 1, 1) - grid.SetCellValue("Yet another cell", 2, 2) - grid.SetCellTextFont(wxFont(12, wxROMAN, wxITALIC, wxNORMAL), 0, 0) - grid.SetCellTextColour(wxRED, 1, 1) - grid.SetCellBackgroundColour(wxCYAN, 2, 2) - grid.UpdateDimensions() - grid.AdjustScrollbars() - - EVT_GRID_SELECT_CELL(grid, self.OnSelectCell) - EVT_GRID_CELL_CHANGE(grid, self.OnCellChange) - EVT_GRID_CELL_LCLICK(grid, self.OnCellClick) - EVT_GRID_LABEL_LCLICK(grid, self.OnLabelClick) - - - - def OnCloseWindow(self, event): - self.Destroy() - - def OnSelectCell(self, event): - self.log.WriteText("OnSelectCell: (%d, %d)\n" % (event.m_row, event.m_col)) - - def OnCellChange(self, event): - self.log.WriteText("OnCellChange: (%d, %d)\n" % (event.m_row, event.m_col)) - - def OnCellClick(self, event): - self.log.WriteText("OnCellClick: (%d, %d)\n" % (event.m_row, event.m_col)) - - def OnLabelClick(self, event): - self.log.WriteText("OnLabelClick: (%d, %d)\n" % (event.m_row, event.m_col)) - -#--------------------------------------------------------------------------- - - -class ColoredPanel(wxWindow): - def __init__(self, parent, color): - wxWindow.__init__(self, parent, -1, - wxDefaultPosition, wxDefaultSize, wxRAISED_BORDER) - self.SetBackgroundColour(color) - - -class TestNotebookWindow(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test wxNotebook') - - nb = wxNotebook(self, -1, wxPoint(0,0), self.GetClientSize()) - - win = ColoredPanel(nb, wxBLUE) - nb.AddPage(win, "Blue") - st = wxStaticText(win, -1, - "You can put nearly any type of window here!", - wxPoint(10, 10)) - st.SetForegroundColour(wxWHITE) - st.SetBackgroundColour(wxBLUE) - st = wxStaticText(win, -1, - "Check the next tab for an example...", - wxPoint(10, 30)) - st.SetForegroundColour(wxWHITE) - st.SetBackgroundColour(wxBLUE) - - win = TestTreeCtrlPanel(nb, log) - nb.AddPage(win, "TreeCtrl") - - win = TestListCtrlPanel(nb, log) - nb.AddPage(win, "ListCtrl") - - win = ColoredPanel(nb, wxRED) - nb.AddPage(win, "Red") - - win = ColoredPanel(nb, wxGREEN) - nb.AddPage(win, "Green") - - win = ColoredPanel(nb, wxCYAN) - nb.AddPage(win, "Cyan") - - win = ColoredPanel(nb, wxWHITE) - nb.AddPage(win, "White") - - win = ColoredPanel(nb, wxBLACK) - nb.AddPage(win, "Black") - - win = ColoredPanel(nb, wxNamedColour('MIDNIGHT BLUE')) - nb.AddPage(win, "MIDNIGHT BLUE") - - win = ColoredPanel(nb, wxNamedColour('INDIAN RED')) - nb.AddPage(win, "INDIAN RED") - - nb.SetSelection(0) - self.SetSize(wxSize(350, 300)) - - - def OnCloseWindow(self, event): - self.Destroy() - -#--------------------------------------------------------------------------- - -class TestSplitterWindow(wxFrame): - def __init__(self, parent): - wxFrame.__init__(self, parent, -1, 'Test wxSplitterWindow', - wxDefaultPosition, wxSize(500, 300)) - - splitter = wxSplitterWindow(self, -1) - - p1 = ColoredPanel(splitter, wxRED) - wxStaticText(p1, -1, "Panel One", wxPoint(5,5)).SetBackgroundColour(wxRED) - - p2 = ColoredPanel(splitter, wxBLUE) - wxStaticText(p2, -1, "Panel Two", wxPoint(5,5)).SetBackgroundColour(wxBLUE) - - splitter.SplitVertically(p1, p2) - - - def OnCloseWindow(self, event): - self.Destroy() - - -#--------------------------------------------------------------------------- - -class CustomStatusBar(wxStatusBar): - def __init__(self, parent): - wxStatusBar.__init__(self, parent, -1) - self.SetFieldsCount(3) - - self.SetStatusText("A Custom StatusBar...", 0) - - self.cb = wxCheckBox(self, 1001, "toggle clock") - EVT_CHECKBOX(self, 1001, self.OnToggleClock) - self.cb.SetValue(true) - - # figure out how tall to make it. - dc = wxClientDC(self) - dc.SetFont(self.GetFont()) - (w,h) = dc.GetTextExtent('X') - h = int(h * 1.8) - self.SetSize(wxSize(100, h)) - - # start our timer - self.timer = wxPyTimer(self.Notify) - self.timer.Start(1000) - self.Notify() - - - # Time-out handler - def Notify(self): - t = time.localtime(time.time()) - st = time.strftime("%d-%b-%Y %I:%M:%S", t) - self.SetStatusText(st, 2) - - # the checkbox was clicked - def OnToggleClock(self, event): - if self.cb.GetValue(): - self.timer.Start(1000) - self.Notify() - else: - self.timer.Stop() - - # reposition the checkbox - def OnSize(self, event): - rect = self.GetFieldRect(1) - print "%s, %s" % (rect.x, rect.y) - self.cb.SetPosition(wxPoint(rect.x+2, rect.y+2)) - self.cb.SetSize(wxSize(rect.width-4, rect.height-4)) - - - -class TestCustomStatusBar(wxFrame): - def __init__(self, parent): - wxFrame.__init__(self, parent, -1, 'Test Custom StatusBar', - wxDefaultPosition, wxSize(500, 300)) - wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE")) - - self.sb = CustomStatusBar(self) - self.SetStatusBar(self.sb) - - def OnCloseWindow(self, event): - self.sb.timer.Stop() - self.Destroy() - - -#--------------------------------------------------------------------------- - -class TestToolBar(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test ToolBar', - wxDefaultPosition, wxSize(500, 300)) - self.log = log - - wxWindow(self, -1).SetBackgroundColour(wxNamedColour("WHITE")) - - tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER) - #tb = wxToolBar(self, -1, wxDefaultPosition, wxDefaultSize, - # wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT) - #self.SetToolBar(tb) - - self.CreateStatusBar() - - tb.AddTool(10, wxNoRefBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "New", "Long help for 'New'") - EVT_TOOL(self, 10, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick) - - tb.AddTool(20, wxNoRefBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "Open") - EVT_TOOL(self, 20, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick) - - tb.AddSeparator() - tb.AddTool(30, wxNoRefBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "Copy") - EVT_TOOL(self, 30, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick) - - tb.AddTool(40, wxNoRefBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, false, -1, -1, "Paste") - EVT_TOOL(self, 40, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick) - - tb.AddSeparator() - - tb.AddTool(50, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), - wxNullBitmap, true, -1, -1, "Toggle this") - EVT_TOOL(self, 50, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 50, self.OnToolRClick) - - tb.AddTool(60, wxNoRefBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), - wxNoRefBitmap('bitmaps/tog2.bmp', wxBITMAP_TYPE_BMP), - true, -1, -1, "Toggle with 2 bitmaps") - EVT_TOOL(self, 60, self.OnToolClick) - EVT_TOOL_RCLICKED(self, 60, self.OnToolRClick) - - tb.Realize() - - - def OnCloseWindow(self, event): - self.Destroy() - - def OnToolClick(self, event): - self.log.WriteText("tool %s clicked\n" % event.GetId()) - - def OnToolRClick(self, event): - self.log.WriteText("tool %s right-clicked\n" % event.GetId()) - - -#--------------------------------------------------------------------------- - -class TestTreeCtrlPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - - self.log = log - tID = 1101 - - self.tree = wxTreeCtrl(self, tID) - root = self.tree.AddRoot("The Root Item") - for x in range(10): - child = self.tree.AppendItem(root, "Item %d" % x) - for y in range(5): - last = self.tree.AppendItem(child, "item %d-%s" % (x, chr(ord("a")+y))) - - self.tree.Expand(root) - EVT_TREE_ITEM_EXPANDED (self, tID, self.OnItemExpanded) - EVT_TREE_ITEM_COLLAPSED (self, tID, self.OnItemCollapsed) - EVT_TREE_SEL_CHANGED (self, tID, self.OnSelChanged) - - - def OnSize(self, event): - w,h = self.GetClientSizeTuple() - self.tree.SetDimensions(0, 0, w, h) - - - def OnItemExpanded(self, event): - item = event.GetItem() - self.log.WriteText("OnItemExpanded: %s\n" % self.tree.GetItemText(item)) - - def OnItemCollapsed(self, event): - item = event.GetItem() - self.log.WriteText("OnItemCollapsed: %s\n" % self.tree.GetItemText(item)) - - def OnSelChanged(self, event): - item = event.GetItem() - self.log.WriteText("OnSelChanged: %s\n" % self.tree.GetItemText(item)) - - - - -class TestTreeCtrl(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test TreeCtrl', - wxDefaultPosition, wxSize(250, 300)) - - p = TestTreeCtrlPanel(self, log) - - -#--------------------------------------------------------------------------- - -class TestListCtrlPanel(wxPanel): - def __init__(self, parent, log): - wxPanel.__init__(self, parent, -1) - - self.log = log - tID = 1101 - - self.il = wxImageList(16, 16) - idx1 = self.il.Add(wxNoRefBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP)) - - self.list = wxListCtrl(self, tID, wxDefaultPosition, wxDefaultSize, - wxLC_REPORT|wxSUNKEN_BORDER) - self.list.SetImageList(self.il, wxIMAGE_LIST_SMALL) - - #self.list.SetToolTip(wxToolTip("This is a ToolTip!")) - #wxToolTip_Enable(true) - - self.list.InsertColumn(0, "Column 0") - self.list.InsertColumn(1, "Column 1") - self.list.InsertColumn(2, "One More Column (2)") - for x in range(50): - self.list.InsertImageStringItem(x, "This is item %d" % x, idx1) - self.list.SetStringItem(x, 1, "Col 1, item %d" % x) - self.list.SetStringItem(x, 2, "item %d in column 2" % x) - - self.list.SetColumnWidth(0, wxLIST_AUTOSIZE) - self.list.SetColumnWidth(1, wxLIST_AUTOSIZE) - self.list.SetColumnWidth(2, wxLIST_AUTOSIZE) - - - def OnSize(self, event): - w,h = self.GetClientSizeTuple() - self.list.SetDimensions(0, 0, w, h) - - - - -class TestListCtrl(wxFrame): - def __init__(self, parent, log): - wxFrame.__init__(self, parent, -1, 'Test ListCtrl', - wxDefaultPosition, wxSize(250, 300)) - - p = TestListCtrlPanel(self, log) - - -#--------------------------------------------------------------------------- - -class TestSashWindow(wxMDIParentFrame): - NEW_WINDOW = 5000 - TOGGLE_WINDOW = 5001 - QUIT = 5002 - ID_WINDOW_TOP = 5100 - ID_WINDOW_LEFT1 = 5101 - ID_WINDOW_LEFT2 = 5102 - ID_WINDOW_BOTTOM = 5103 - - - def __init__(self, parent, log): - wxMDIParentFrame.__init__(self, parent, -1, 'Test Sash Window', - wxDefaultPosition, wxSize(250, 300)) - - self.log = log - menu = wxMenu() - menu.Append(self.NEW_WINDOW, "&New Window") - menu.Append(self.TOGGLE_WINDOW, "&Toggle window") - menu.Append(self.QUIT, "E&xit") - - menubar = wxMenuBar() - menubar.Append(menu, "&File") - - self.SetMenuBar(menubar) - self.CreateStatusBar() - - EVT_MENU(self, self.NEW_WINDOW, self.OnNewWindow) - EVT_MENU(self, self.TOGGLE_WINDOW, self.OnToggleWindow) - EVT_MENU(self, self.QUIT, self.OnQuit) - - EVT_SASH_DRAGGED_RANGE(self, self.ID_WINDOW_TOP, - self.ID_WINDOW_BOTTOM, self.OnSashDrag) - - - # Create some layout windows - # A window like a toolbar - win = wxSashLayoutWindow(self, self.ID_WINDOW_TOP, wxDefaultPosition, - wxSize(200, 30), wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(1000, 30)) - win.SetOrientation(wxLAYOUT_HORIZONTAL) - win.SetAlignment(wxLAYOUT_TOP) - win.SetBackgroundColour(wxColour(255, 0, 0)) - win.SetSashVisible(wxSASH_BOTTOM, true) - - self.topWindow = win - - - # A window like a statusbar - win = wxSashLayoutWindow(self, self.ID_WINDOW_BOTTOM, - wxDefaultPosition, wxSize(200, 30), - wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(1000, 30)) - win.SetOrientation(wxLAYOUT_HORIZONTAL) - win.SetAlignment(wxLAYOUT_BOTTOM) - win.SetBackgroundColour(wxColour(0, 0, 255)) - win.SetSashVisible(wxSASH_TOP, true) - - self.bottomWindow = win - - - # A window to the left of the client window - win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT1, - wxDefaultPosition, wxSize(200, 30), - wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(120, 1000)) - win.SetOrientation(wxLAYOUT_VERTICAL) - win.SetAlignment(wxLAYOUT_LEFT) - win.SetBackgroundColour(wxColour(0, 255, 0)) - win.SetSashVisible(wxSASH_RIGHT, TRUE) - win.SetExtraBorderSize(10) - - textWindow = wxTextCtrl(win, -1, "", wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE|wxSUNKEN_BORDER) - textWindow.SetValue("A help window") - - self.leftWindow1 = win - - - # Another window to the left of the client window - win = wxSashLayoutWindow(self, self.ID_WINDOW_LEFT2, - wxDefaultPosition, wxSize(200, 30), - wxNO_BORDER|wxSW_3D) - win.SetDefaultSize(wxSize(120, 1000)) - win.SetOrientation(wxLAYOUT_VERTICAL) - win.SetAlignment(wxLAYOUT_LEFT) - win.SetBackgroundColour(wxColour(0, 255, 255)) - win.SetSashVisible(wxSASH_RIGHT, TRUE) - - self.leftWindow2 = win - - - def OnNewWindow(self, event): - pass - - def OnToggleWindow(self, event): - pass - - def OnQuit(self, event): - self.Close(true) - - def OnSashDrag(self, event): - if event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE: - return - - eID = event.GetId() - if eID == self.ID_WINDOW_TOP: - self.topWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height)) - - elif eID == self.ID_WINDOW_LEFT1: - self.leftWindow1.SetDefaultSize(wxSize(event.GetDragRect().width, 1000)) - - - elif eID == self.ID_WINDOW_LEFT2: - self.leftWindow2.SetDefaultSize(wxSize(event.GetDragRect().width, 1000)) - - elif eID == self.ID_WINDOW_BOTTOM: - self.bottomWindow.SetDefaultSize(wxSize(1000, event.GetDragRect().height)) - - wxLayoutAlgorithm().LayoutMDIFrame(self) - - # Leaves bits of itself behind sometimes - self.GetClientWindow().Refresh() - - - def OnSize(self, event): - wxLayoutAlgorithm().LayoutMDIFrame(self) - -#--------------------------------------------------------------------------- -#--------------------------------------------------------------------------- -#--------------------------------------------------------------------------- - -class AppFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, wxDefaultPosition, - wxSize(420, 200)) - if wxPlatform == '__WXMSW__': - self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO) - self.SetIcon(self.icon) - - self.mainmenu = wxMenuBar() - menu = wxMenu() - menu.Append(200, 'E&xit', 'Get the heck outta here!') - EVT_MENU(self, 200, self.OnFileExit) - self.mainmenu.Append(menu, '&File') - - menu = self.MakeTestsMenu() - self.mainmenu.Append(menu, '&Tests') - self.SetMenuBar(self.mainmenu) - - self.log = wxTextCtrl(self, -1, '', wxDefaultPosition, wxDefaultSize, - wxTE_MULTILINE|wxTE_READONLY) - self.log.WriteText('Test 4:\n') - (w, self.charHeight) = self.log.GetTextExtent('X') - - - def MakeTestsMenu(self): - menu = wxMenu() - - mID = NewId() - menu.Append(mID, '&Simple Controls') - EVT_MENU(self, mID, self.OnTestSimpleControls) - - mID = NewId() - menu.Append(mID, '&Timer', '', true) - EVT_MENU(self, mID, self.OnTestTimer) - self.timerID = mID - self.timer = None - - mID = NewId() - menu.Append(mID, '&Layout Constraints') - EVT_MENU(self, mID, self.OnTestLayoutConstraints) - - mID = NewId() - menu.Append(mID, '&Grid') - EVT_MENU(self, mID, self.OnTestGrid) - - - smenu = wxMenu() # make a sub-menu - - mID = NewId() - smenu.Append(mID, '&Colour') - EVT_MENU(self, mID, self.OnTestColourDlg) - - mID = NewId() - smenu.Append(mID, '&Directory') - EVT_MENU(self, mID, self.OnTestDirDlg) - - mID = NewId() - smenu.Append(mID, '&File') - EVT_MENU(self, mID, self.OnTestFileDlg) - - mID = NewId() - smenu.Append(mID, '&Single Choice') - EVT_MENU(self, mID, self.OnTestSingleChoiceDlg) - - mID = NewId() - smenu.Append(mID, '&TextEntry') - EVT_MENU(self, mID, self.OnTestTextEntryDlg) - - mID = NewId() - smenu.Append(mID, '&Font') - EVT_MENU(self, mID, self.OnTestFontDlg) - - mID = NewId() - smenu.Append(mID, '&PageSetup') - EVT_MENU(self, mID, self.OnTestPageSetupDlg) - - mID = NewId() - smenu.Append(mID, '&Print') - EVT_MENU(self, mID, self.OnTestPrintDlg) - - mID = NewId() - smenu.Append(mID, '&Message') - EVT_MENU(self, mID, self.OnTestMessageDlg) - - - menu.AppendMenu(NewId(), '&Common Dialogs', smenu) - - - mID = NewId() - menu.Append(mID, '&Notebook') - EVT_MENU(self, mID, self.OnTestNotebook) - - mID = NewId() - menu.Append(mID, '&Splitter Window') - EVT_MENU(self, mID, self.OnTestSplitter) - - mID = NewId() - menu.Append(mID, '&Custom StatusBar') - EVT_MENU(self, mID, self.OnTestCustomStatusBar) - - mID = NewId() - menu.Append(mID, '&ToolBar') - EVT_MENU(self, mID, self.OnTestToolBar) - - mID = NewId() - menu.Append(mID, 'T&ree Control') - EVT_MENU(self, mID, self.OnTestTreeCtrl) - - mID = NewId() - menu.Append(mID, '&List Control') - EVT_MENU(self, mID, self.OnTestListCtrl) - - mID = NewId() - menu.Append(mID, 'S&ash Window and Layout Algorithm') - EVT_MENU(self, mID, self.OnTestSashWindow) - - return menu - - - - - def WriteText(self, str): - self.log.WriteText(str) - if wxPlatform == '__WXMSW__': - w, h = self.log.GetClientSizeTuple() - numLines = h/self.charHeight - x, y = self.log.PositionToXY(self.log.GetLastPosition()) - self.log.ShowPosition(self.log.XYToPosition(x, y-numLines+1)) - - def OnFileExit(self, event): - self.Close() - - def OnCloseWindow(self, event): - self.Destroy() - - - - - def OnTestSimpleControls(self, event): - dlg = TestSimpleControlsDlg(self, self) - dlg.Centre() - dlg.ShowModal() - dlg.Destroy() - - def OnTestTimer(self, event): - if self.timer: - self.mainmenu.Check(self.timerID, false) - self.timer.Stop() - self.timer = None - else: - self.mainmenu.Check(self.timerID, true) - self.timer = TestTimer(self) - self.timer.Start(1000) - - def OnTestLayoutConstraints(self, event): - win = TestLayoutConstraints(self) - win.Show(true) - - def OnTestGrid(self, event): - win = TestGrid(self, self) - win.Show(true) - win.SetSize(wxSize(505, 300)) # have to force a resize, or the grid doesn't - # show up for some reason.... - - def OnTestColourDlg(self, event): - data = wxColourData() - data.SetChooseFull(true) - dlg = wxColourDialog(self, data) - if dlg.ShowModal() == wxID_OK: - data = dlg.GetColourData() - self.log.WriteText('You selected: %s\n' % str(data.GetColour().Get())) - dlg.Destroy() - - def OnTestDirDlg(self, event): - dlg = wxDirDialog(self) - if dlg.ShowModal() == wxID_OK: - self.log.WriteText('You selected: %s\n' % dlg.GetPath()) - dlg.Destroy() - - def OnTestFileDlg(self, event): - dlg = wxFileDialog(self, "Choose a file", ".", "", "*.*", wxOPEN) - if dlg.ShowModal() == wxID_OK: - self.log.WriteText('You selected: %s\n' % dlg.GetPath()) - dlg.Destroy() - - def OnTestSingleChoiceDlg(self, event): - dlg = wxSingleChoiceDialog(self, 'Test Single Choice', 'The Caption', - ['zero', 'one', 'two', 'three', 'four', 'five', - 'six', 'seven', 'eight']) - if dlg.ShowModal() == wxID_OK: - self.log.WriteText('You selected: %s\n' % dlg.GetStringSelection()) - dlg.Destroy() - - def OnTestTextEntryDlg(self, event): - dlg = wxTextEntryDialog(self, 'What is your favorite programming language?', - 'Duh??', 'Python') - #dlg.SetValue("Python is the best!") #### this doesn't work? - if dlg.ShowModal() == wxID_OK: - self.log.WriteText('You entered: %s\n' % dlg.GetValue()) - dlg.Destroy() - - - def OnTestFontDlg(self, event): - dlg = wxFontDialog(self) - if dlg.ShowModal() == wxID_OK: - data = dlg.GetFontData() - font = data.GetChosenFont() - self.log.WriteText('You selected: "%s", %d points, color %s\n' % - (font.GetFaceName(), font.GetPointSize(), - data.GetColour().Get())) - dlg.Destroy() - - - def OnTestPageSetupDlg(self, event): - data = wxPageSetupDialogData() - data.SetMarginTopLeft(wxPoint(50,50)) - data.SetMarginBottomRight(wxPoint(50,50)) - dlg = wxPageSetupDialog(self, data) - if dlg.ShowModal() == wxID_OK: - data = dlg.GetPageSetupData() - tl = data.GetMarginTopLeft() - br = data.GetMarginBottomRight() - self.log.WriteText('Margins are: %s %s\n' % (str(tl), str(br))) - dlg.Destroy() - - def OnTestPrintDlg(self, event): - data = wxPrintDialogData() - data.EnablePrintToFile(true) - data.EnablePageNumbers(true) - data.EnableSelection(true) - dlg = wxPrintDialog(self, data) - if dlg.ShowModal() == wxID_OK: - self.log.WriteText('\n') - dlg.Destroy() - - def OnTestMessageDlg(self, event): - dlg = wxMessageDialog(self, 'Hello from Python and wxWindows!', - 'A Message Box', wxOK | wxICON_INFORMATION) - dlg.ShowModal() - dlg.Destroy() - - - def OnTestNotebook(self, event): - win = TestNotebookWindow(self, self) - win.Show(true) - - def OnTestSplitter(self, event): - win = TestSplitterWindow(self) - win.Show(true) - - def OnTestCustomStatusBar(self, event): - win = TestCustomStatusBar(self) - win.Show(true) - - def OnTestToolBar(self, event): - win = TestToolBar(self, self) - win.Show(true) - - def OnTestTreeCtrl(self, event): - win = TestTreeCtrl(self, self) - win.Show(true) - - def OnTestListCtrl(self, event): - win = TestListCtrl(self, self) - win.Show(true) - - def OnTestSashWindow(self, event): - win = TestSashWindow(self, self) - win.Show(true) - -#--------------------------------------------------------------------------- - - -class MyApp(wxApp): - def OnInit(self): - frame = AppFrame(NULL, -1, "Test 4: (lots of little tests...)") - frame.Show(true) - self.SetTopWindow(frame) - return true - -#--------------------------------------------------------------------------- - - -def main(): - app = MyApp(0) - app.MainLoop() - - -def t(): - import pdb - pdb.run('main()') - - -# for focused testing... -def main2(): - class T2App(wxApp): - def OnInit(self): - frame = TestLayoutConstraints(NULL) - frame.Show(true) - self.SetTopWindow(frame) - return true - - app = T2App(0) - app.MainLoop() - -def t2(): - import pdb - pdb.run('main2()') - - - -if __name__ == '__main__': - main() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.16 1999/04/30 03:29:54 RD -# wxPython 2.0b9, first phase (win32) -# Added gobs of stuff, see wxPython/README.txt for details -# -# Revision 1.15.2.1 1999/03/16 06:05:50 RD -# -# wxPython 2.0b7 -# -# Revision 1.15 1999/03/05 07:23:42 RD -# -# Minor wxPython changes for wxWin 2.0 -# -# Revision 1.14 1999/02/27 04:20:50 RD -# -# minor tweaks for testing -# -# Revision 1.13 1999/02/20 09:04:44 RD -# Added wxWindow_FromHWND(hWnd) for wxMSW to construct a wxWindow from a -# window handle. If you can get the window handle into the python code, -# it should just work... More news on this later. -# -# Added wxImageList, wxToolTip. -# -# Re-enabled wxConfig.DeleteAll() since it is reportedly fixed for the -# wxRegConfig class. -# -# As usual, some bug fixes, tweaks, etc. -# -# Revision 1.12 1999/01/30 07:31:33 RD -# -# Added wxSashWindow, wxSashEvent, wxLayoutAlgorithm, etc. -# -# Various cleanup, tweaks, minor additions, etc. to maintain -# compatibility with the current wxWindows. -# -# Revision 1.11 1999/01/29 16:17:59 HH -# In test4's toolbar sample, changed NULL to wxNullBitmap to prevent SIGSEVS -# with wxGTK. The sample works now. -# -# Revision 1.10 1998/12/16 22:12:47 RD -# -# Tweaks needed to be able to build wxPython with wxGTK. -# -# Revision 1.9 1998/12/15 20:44:35 RD -# Changed the import semantics from "from wxPython import *" to "from -# wxPython.wx import *" This is for people who are worried about -# namespace pollution, they can use "from wxPython import wx" and then -# prefix all the wxPython identifiers with "wx." -# -# Added wxTaskbarIcon for wxMSW. -# -# Made the events work for wxGrid. -# -# Added wxConfig. -# -# Added wxMiniFrame for wxGTK, (untested.) -# -# Changed many of the args and return values that were pointers to gdi -# objects to references to reflect changes in the wxWindows API. -# -# Other assorted fixes and additions. -# -# Revision 1.8 1998/11/25 08:47:11 RD -# -# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -# Added events for wxGrid -# Other various fixes and additions -# -# Revision 1.7 1998/11/11 03:13:19 RD -# -# Additions for wxTreeCtrl -# -# Revision 1.6 1998/10/20 06:45:33 RD -# New wxTreeCtrl wrappers (untested) -# some changes in helpers -# etc. -# -# Revision 1.5 1998/10/02 06:42:28 RD -# -# Version 0.4 of wxPython for MSW. -# -# Revision 1.4 1998/08/27 21:59:51 RD -# Some chicken-and-egg problems solved for wxPython on wxGTK -# -# Revision 1.3 1998/08/27 00:01:17 RD -# - more tweaks -# - have discovered some problems but not yet discovered solutions... -# -# Revision 1.2 1998/08/22 19:51:18 RD -# some tweaks for wxGTK -# -# Revision 1.1 1998/08/09 08:28:05 RD -# Initial version -# -# diff --git a/utils/wxPython/tests/test5.py b/utils/wxPython/tests/test5.py deleted file mode 100644 index 17976f73e4..0000000000 --- a/utils/wxPython/tests/test5.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test5.py -# Purpose: Testing wxTaskBarIcon for win32 systems -# -# Author: Robin Dunn -# -# Created: 17-Nov-1998 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - -class MyDialog(wxDialog): - def __init__(self): - wxDialog.__init__(self, NULL, -1, "wxTaskBarIcon Test", - wxPoint(-1,-1), wxSize(380,250), - wxDIALOG_MODELESS|wxDEFAULT_DIALOG_STYLE) - - # build the contents of the Dialog - wxStaticText(self, -1, - "Press OK to hide me, Exit to quit.", - wxPoint(10, 20)) - wxStaticText(self, -1, - "Double-click on the taskbar icon to show me again.", - wxPoint(10, 40)) - - okButton = wxButton(self, wxID_OK, "OK", wxPoint(100, 180), wxSize(80, 25)) - exitButton = wxButton(self, wxID_EXIT, "Exit", wxPoint(185, 180), wxSize(80, 25)) - okButton.SetDefault() - self.Centre(wxBOTH) - - EVT_BUTTON(self, wxID_OK, self.OnOK) - EVT_BUTTON(self, wxID_EXIT, self.OnExit) - - - # make the TaskBar icon - self.tbIcon = wxTaskBarIcon() - icon = wxIcon('bitmaps/smiles.ico', wxBITMAP_TYPE_ICO) - self.tbIcon.SetIcon(icon, "Test ToolTip") - EVT_TASKBAR_LEFT_DCLICK(self.tbIcon, self.OnTaskBarActivate) - - - - def OnTaskBarActivate(self, event): - self.Show(true) - - def OnOK(self, event): - self.Show(false) - - def OnExit(self, event): - self.Close(true) - - def OnCloseWindow(self, event): - self.Destroy() - del self.tbIcon # ensure the tbIcon is cleaned up... - - - -#--------------------------------------------------------------------------- - -class MyApp(wxApp): - def OnInit(self): - self.dlg = MyDialog() - self.dlg.Show(true) - self.SetTopWindow(self.dlg) - return true - -#--------------------------------------------------------------------------- - - -def main(): - app = MyApp(0) - app.MainLoop() - - -def t(): - import pdb - pdb.run('main()') - -if __name__ == '__main__': - main() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.2 1998/12/15 20:44:36 RD -# Changed the import semantics from "from wxPython import *" to "from -# wxPython.wx import *" This is for people who are worried about -# namespace pollution, they can use "from wxPython import wx" and then -# prefix all the wxPython identifiers with "wx." -# -# Added wxTaskbarIcon for wxMSW. -# -# Made the events work for wxGrid. -# -# Added wxConfig. -# -# Added wxMiniFrame for wxGTK, (untested.) -# -# Changed many of the args and return values that were pointers to gdi -# objects to references to reflect changes in the wxWindows API. -# -# Other assorted fixes and additions. -# -# Revision 1.1 1998/11/25 08:47:12 RD -# -# Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon -# Added events for wxGrid -# Other various fixes and additions -# -# diff --git a/utils/wxPython/tests/test6.py b/utils/wxPython/tests/test6.py deleted file mode 100644 index 7d24149fd4..0000000000 --- a/utils/wxPython/tests/test6.py +++ /dev/null @@ -1,106 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test6.py -# Purpose: Testing wxConfig -# -# Author: Robin Dunn -# -# Created: 26-Nov-1998 -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - -import sys -from wxPython.utils import wxConfig - - -#---------------------------------------------------------------------------- - -def main(): - - cfg = wxConfig('test6', 'TCS') - - cmd = '' - if len(sys.argv) > 1: - cmd = sys.argv[1] - - if cmd == 'add': - cfg.SetPath('one/two/three') - cfg.Flush() - - cfg.Write('aaa', 'The quick brown fox jummped over the lazy dog.') - cfg.Write('bbb', 'This is a test of the emergency broadcast system') - - aList = ['one', 'two', 'buckle', 'my', 'shoe', 1966] - cfg.Write('ccc', str(aList)) - - cfg.Write('zzz/yyy', 'foobar') - cfg.Write('zzz/xxx', 'spam and eggs') - - cfg.Flush() - - elif cmd == 'enum': - traverse(cfg, '/') - - elif cmd == 'del': - cfg.DeleteAll() - - else: - print 'Specify command: add, enum, or del.' - - - -def traverse(cfg, path): - print path - cont, val, idx = cfg.GetFirstEntry() - while cont: - print "%s/%s = %s" % (path, val, cfg.Read(val)) - cont, val, idx = cfg.GetNextEntry(idx) - - cont, val, idx = cfg.GetFirstGroup() - while cont: - if path == '/': - newpath = path+val - else: - newpath = path+'/'+val - - cfg.SetPath(newpath) - traverse(cfg, newpath) - cfg.SetPath(path) - cont, val, idx = cfg.GetNextGroup(idx) - - - -if __name__ == '__main__': - #import pdb - #pdb.run('main()') - main() - - -#---------------------------------------------------------------------------- -# -# $Log$ -# Revision 1.2 1999/02/25 07:09:51 RD -# wxPython version 2.0b5 -# -# Revision 1.1 1998/12/15 20:44:37 RD -# Changed the import semantics from "from wxPython import *" to "from -# wxPython.wx import *" This is for people who are worried about -# namespace pollution, they can use "from wxPython import wx" and then -# prefix all the wxPython identifiers with "wx." -# -# Added wxTaskbarIcon for wxMSW. -# -# Made the events work for wxGrid. -# -# Added wxConfig. -# -# Added wxMiniFrame for wxGTK, (untested.) -# -# Changed many of the args and return values that were pointers to gdi -# objects to references to reflect changes in the wxWindows API. -# -# Other assorted fixes and additions. -# -# diff --git a/utils/wxPython/tests/test7.py b/utils/wxPython/tests/test7.py deleted file mode 100644 index 50f394ad5f..0000000000 --- a/utils/wxPython/tests/test7.py +++ /dev/null @@ -1,110 +0,0 @@ -#!/bin/env python -#---------------------------------------------------------------------------- -# Name: test7.py -# Purpose: A minimal wxPython program that is a bit smarter than test1. -# -# Author: Robin Dunn -# -# Created: A long time ago, in a galaxy far, far away... -# RCS-ID: $Id$ -# Copyright: (c) 1998 by Total Control Software -# Licence: wxWindows license -#---------------------------------------------------------------------------- - - -## import all of the wxPython GUI package -from wxPython.wx import * - - -#--------------------------------------------------------------------------- - -## Create a new frame class, derived from the wxPython Frame. -class MyFrame(wxFrame): - - def __init__(self, parent, id, title): - # First, call the base class' __init__ method to create the frame - wxFrame.__init__(self, parent, id, title, - wxPoint(100, 100), wxSize(160, 100)) - - # Associate some events with methods of this class - EVT_SIZE(self, self.OnSize) - EVT_MOVE(self, self.OnMove) - - # Add a panel and some controls to display the size and position - panel = wxPanel(self, -1) - wxStaticText(panel, -1, "Size:", - wxDLG_PNT(panel, wxPoint(4, 4)), wxDefaultSize) - wxStaticText(panel, -1, "Pos:", - wxDLG_PNT(panel, wxPoint(4, 14)), wxDefaultSize) - self.sizeCtrl = wxTextCtrl(panel, -1, "", - wxDLG_PNT(panel, wxPoint(24, 4)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - self.posCtrl = wxTextCtrl(panel, -1, "", - wxDLG_PNT(panel, wxPoint(24, 14)), - wxDLG_SZE(panel, wxSize(36, -1)), - wxTE_READONLY) - - - # This method is called automatically when the CLOSE event is - # sent to this window - def OnCloseWindow(self, event): - # tell the window to kill itself - self.Destroy() - - - # This method is called by the System when the window is resized, - # because of the association above. - def OnSize(self, event): - size = event.GetSize() - self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height)) - - # tell the event system to continue looking for an event handler, - # so the default handler will get called. - event.Skip() - - # This method is called by the System when the window is moved, - # because of the association above. - def OnMove(self, event): - pos = event.GetPosition() - self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y)) - - - -#--------------------------------------------------------------------------- - -# Every wxWindows application must have a class derived from wxApp -class MyApp(wxApp): - - # wxWindows calls this method to initialize the application - def OnInit(self): - - # Create an instance of our customized Frame class - frame = MyFrame(NULL, -1, "This is a test") - frame.Show(true) - - # Tell wxWindows that this is our main window - self.SetTopWindow(frame) - - # Return a success flag - return true - -#--------------------------------------------------------------------------- - - -app = MyApp(0) # Create an instance of the application class -app.MainLoop() # Tell it to start processing events - - -#---------------------------------------------------------------------------- -# - - - - - - - - - diff --git a/utils/wxPython/tests/test8.py b/utils/wxPython/tests/test8.py deleted file mode 100644 index ec383b7a09..0000000000 --- a/utils/wxPython/tests/test8.py +++ /dev/null @@ -1,85 +0,0 @@ -# Thread testing example. Harm van der Heijden, March 26 1999. -# -# Rule One in threading: make sure only one thread interacts with the -# user interface. See the wxTextCtrlQueue class for an example of how -# to accomplish this - -import thread -import time -from whrandom import random - -from wxPython.wx import * - -# Set this to zero to prevent entering the wxApp mainloop -# (for testing whether threads work at all in the absense of wxWindows) -use_wxpython = 1 - -# write a message to stdout every second -def DoThread(mesg): - while 1: - sleeptime = (random() * 3) + 0.5 - print "Hello from %s (%1.3f)" % (mesg, sleeptime) - time.sleep(sleeptime) - -# the same, but write it to a textctrl. -def DoTextCtrlThread(text, mesg): - while 1: - sleeptime = (random() * 3) + 0.5 - text.WriteText("Hello from %s (%1.3f)\n" % (mesg, sleeptime)) - time.sleep(sleeptime) - -# A very simple queue for textctrls. -# Nice demonstration of the power of OO programming too (at least I think so!) -# WriteText puts text in the queue, rather than writing it immediately. -# The main (UI) thread must call Flush to force output. (see MyFrame::OnIdle) -class wxTextCtrlQueue(wxTextCtrl): - def __init__(self, parent, id, value, pos, size, flags): - wxTextCtrl.__init__(self,parent, id, value, pos, size, flags) - self.queue = [] - def WriteText(self, value): - self.queue.append(value) - def Flush(self): - queue = self.queue - self.queue = [] - for value in queue: - wxTextCtrl.WriteText(self,value) - -# MyFrame and MyApp are very simple classes to test python threads in -# wxPython. -class MyFrame(wxFrame): - def __init__(self): - wxFrame.__init__(self, NULL, -1, "test threads", wxDefaultPosition, wxSize(300,200)) - self.text = wxTextCtrlQueue(self, -1, "thread output\n", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE) - menu = wxMenu() - menu.Append(1001, "Start thread") - self.cnt = 0; - menubar = wxMenuBar() - menubar.Append(menu, "Action") - self.SetMenuBar(menubar) - EVT_MENU(self, 1001, self.StartThread) - def StartThread(self, event): - self.cnt = self.cnt + 1 - thread.start_new_thread(DoTextCtrlThread, (self.text, "thread %d" % self.cnt)) - def OnIdle(self, event): - self.text.Flush() - -class MyApp(wxApp): - def OnInit(self): - frame = MyFrame() - self.SetTopWindow(frame) - frame.Show(TRUE) - return TRUE - -# Start two threads that print a message every second -thread.start_new_thread(DoThread, ("thread A",)) -thread.start_new_thread(DoThread, ("thread B",)) - -# if using wxpython, open a frame. Otherwise, just hang in while 1 -if use_wxpython: - app = MyApp(0) - app.MainLoop() -else: - while 1: - print "main loop" - time.sleep(4) -print 'done!' diff --git a/utils/wxPython/tests/wxPlotCanvas.py b/utils/wxPython/tests/wxPlotCanvas.py deleted file mode 100644 index baa9112c10..0000000000 --- a/utils/wxPython/tests/wxPlotCanvas.py +++ /dev/null @@ -1,460 +0,0 @@ -""" -This is a port of Konrad Hinsen's tkPlotCanvas.py plotting module. -After thinking long and hard I came up with the name "wxPlotCanvas.py". - -This file contains two parts; first the re-usable library stuff, then, after -a "if __name__=='__main__'" test, a simple frame and a few default plots -for testing. - -Harm van der Heijden, feb 1999 - -Original comment follows below: -# This module defines a plot widget for Tk user interfaces. -# It supports only elementary line plots at the moment. -# See the example at the end for documentation... -# -# Written by Konrad Hinsen -# With contributions from RajGopal Srinivasan -# Last revision: 1998-7-28 -# -""" - -from wxPython import wx -import string - -# Not everybody will have Numeric, so let's be cool about it... -try: - import Numeric -except: - # bummer! - d = wx.wxMessageDialog(wx.NULL, - """This module requires the Numeric module, which could not be imported. -It probably is not installed (it's not part of the standard Python -distribution). See the Python site (http://www.python.org) for -information on downloading source or binaries.""", - "Numeric not found") - if d.ShowModal() == wx.wxID_CANCEL: - d = wx.wxMessageDialog(wx.NULL, "I kid you not! Pressing Cancel won't help you!", "Not a joke", wx.wxOK) - d.ShowModal() - import sys - sys.exit() - -# -# Plotting classes... -# -class PolyPoints: - - def __init__(self, points, attr): - self.points = Numeric.array(points) - self.scaled = self.points - self.attributes = {} - for name, value in self._attributes.items(): - try: - value = attr[name] - except KeyError: pass - self.attributes[name] = value - - def boundingBox(self): - return Numeric.minimum.reduce(self.points), \ - Numeric.maximum.reduce(self.points) - - def scaleAndShift(self, scale=1, shift=0): - self.scaled = scale*self.points+shift - - -class PolyLine(PolyPoints): - - def __init__(self, points, **attr): - PolyPoints.__init__(self, points, attr) - - _attributes = {'color': 'black', - 'width': 1} - - def draw(self, dc): - color = self.attributes['color'] - width = self.attributes['width'] - arguments = [] - dc.SetPen(wx.wxPen(wx.wxNamedColour(color), width)) - dc.DrawLines(map(tuple,self.scaled)) - - -class PolyMarker(PolyPoints): - - def __init__(self, points, **attr): - - PolyPoints.__init__(self, points, attr) - - _attributes = {'color': 'black', - 'width': 1, - 'fillcolor': None, - 'size': 2, - 'fillstyle': wx.wxSOLID, - 'outline': 'black', - 'marker': 'circle'} - - def draw(self, dc): - color = self.attributes['color'] - width = self.attributes['width'] - size = self.attributes['size'] - fillcolor = self.attributes['fillcolor'] - fillstyle = self.attributes['fillstyle'] - marker = self.attributes['marker'] - - dc.SetPen(wx.wxPen(wx.wxNamedColour(color),width)) - if fillcolor: - dc.SetBrush(wx.wxBrush(wx.wxNamedColour(fillcolor),fillstyle)) - else: - dc.SetBrush(wx.wxBrush(wx.wxNamedColour('black'), wx.wxTRANSPARENT)) - - self._drawmarkers(dc, self.scaled, marker, size) - - def _drawmarkers(self, dc, coords, marker,size=1): - f = eval('self._' +marker) - for xc, yc in coords: - f(dc, xc, yc, size) - - def _circle(self, dc, xc, yc, size=1): - dc.DrawEllipse(xc-2.5*size,yc-2.5*size,5.*size,5.*size) - - def _dot(self, dc, xc, yc, size=1): - dc.DrawPoint(xc,yc) - - def _square(self, dc, xc, yc, size=1): - dc.DrawRectangle(xc-2.5*size,yc-2.5*size,5.*size,5.*size) - - def _triangle(self, dc, xc, yc, size=1): - dc.DrawPolygon([(-0.5*size*5,0.2886751*size*5), - (0.5*size*5,0.2886751*size*5), - (0.0,-0.577350*size*5)],xc,yc) - - def _triangle_down(self, dc, xc, yc, size=1): - dc.DrawPolygon([(-0.5*size*5,-0.2886751*size*5), - (0.5*size*5,-0.2886751*size*5), - (0.0,0.577350*size*5)],xc,yc) - - def _cross(self, dc, xc, yc, size=1): - dc.DrawLine(xc-2.5*size,yc-2.5*size,xc+2.5*size,yc+2.5*size) - dc.DrawLine(xc-2.5*size,yc+2.5*size,xc+2.5*size,yc-2.5*size) - - def _plus(self, dc, xc, yc, size=1): - dc.DrawLine(xc-2.5*size,yc,xc+2.5*size,yc) - dc.DrawLine(xc,yc-2.5*size,xc,yc+2.5*size) - -class PlotGraphics: - - def __init__(self, objects): - self.objects = objects - - def boundingBox(self): - p1, p2 = self.objects[0].boundingBox() - for o in self.objects[1:]: - p1o, p2o = o.boundingBox() - p1 = Numeric.minimum(p1, p1o) - p2 = Numeric.maximum(p2, p2o) - return p1, p2 - - def scaleAndShift(self, scale=1, shift=0): - for o in self.objects: - o.scaleAndShift(scale, shift) - - def draw(self, canvas): - for o in self.objects: - o.draw(canvas) - - def __len__(self): - return len(self.objects) - - def __getitem__(self, item): - return self.objects[item] - - -class PlotCanvas(wx.wxWindow): - - def __init__(self, parent, id = -1): - wx.wxWindow.__init__(self, parent, id, wx.wxPyDefaultPosition, wx.wxPyDefaultSize) - self.border = (1,1) - self.SetClientSizeWH(400,400) - self.SetBackgroundColour(wx.wxNamedColour("white")) - - wx.EVT_SIZE(self,self.reconfigure) - self._setsize() - self.last_draw = None -# self.font = self._testFont(font) - - def OnPaint(self, event): - pdc = wx.wxPaintDC(self) - if self.last_draw is not None: - apply(self.draw, self.last_draw + (pdc,)) - - def reconfigure(self, event): - (new_width,new_height) = self.GetClientSizeTuple() - if new_width == self.width and new_height == self.height: - return - self._setsize() - # self.redraw() - - def _testFont(self, font): - if font is not None: - bg = self.canvas.cget('background') - try: - item = CanvasText(self.canvas, 0, 0, anchor=NW, - text='0', fill=bg, font=font) - self.canvas.delete(item) - except TclError: - font = None - return font - - def _setsize(self): - (self.width,self.height) = self.GetClientSizeTuple(); - self.plotbox_size = 0.97*Numeric.array([self.width, -self.height]) - xo = 0.5*(self.width-self.plotbox_size[0]) - yo = self.height-0.5*(self.height+self.plotbox_size[1]) - self.plotbox_origin = Numeric.array([xo, yo]) - - def draw(self, graphics, xaxis = None, yaxis = None, dc = None): - if dc == None: dc = wx.wxClientDC(self) - dc.BeginDrawing() - dc.Clear() - self.last_draw = (graphics, xaxis, yaxis) - p1, p2 = graphics.boundingBox() - xaxis = self._axisInterval(xaxis, p1[0], p2[0]) - yaxis = self._axisInterval(yaxis, p1[1], p2[1]) - text_width = [0., 0.] - text_height = [0., 0.] - if xaxis is not None: - p1[0] = xaxis[0] - p2[0] = xaxis[1] - xticks = self._ticks(xaxis[0], xaxis[1]) - bb = dc.GetTextExtent(xticks[0][1]) - text_height[1] = bb[1] - text_width[0] = 0.5*bb[0] - bb = dc.GetTextExtent(xticks[-1][1]) - text_width[1] = 0.5*bb[0] - else: - xticks = None - if yaxis is not None: - p1[1] = yaxis[0] - p2[1] = yaxis[1] - yticks = self._ticks(yaxis[0], yaxis[1]) - for y in yticks: - bb = dc.GetTextExtent(y[1]) - text_width[0] = max(text_width[0],bb[0]) - h = 0.5*bb[1] - text_height[0] = h - text_height[1] = max(text_height[1], h) - else: - yticks = None - text1 = Numeric.array([text_width[0], -text_height[1]]) - text2 = Numeric.array([text_width[1], -text_height[0]]) - scale = (self.plotbox_size-text1-text2) / (p2-p1) - shift = -p1*scale + self.plotbox_origin + text1 - self._drawAxes(dc, xaxis, yaxis, p1, p2, - scale, shift, xticks, yticks) - graphics.scaleAndShift(scale, shift) - graphics.draw(dc) - dc.EndDrawing() - - def _axisInterval(self, spec, lower, upper): - if spec is None: - return None - if spec == 'minimal': - if lower == upper: - return lower-0.5, upper+0.5 - else: - return lower, upper - if spec == 'automatic': - range = upper-lower - if range == 0.: - return lower-0.5, upper+0.5 - log = Numeric.log10(range) - power = Numeric.floor(log) - fraction = log-power - if fraction <= 0.05: - power = power-1 - grid = 10.**power - lower = lower - lower % grid - mod = upper % grid - if mod != 0: - upper = upper - mod + grid - return lower, upper - if type(spec) == type(()): - lower, upper = spec - if lower <= upper: - return lower, upper - else: - return upper, lower - raise ValueError, str(spec) + ': illegal axis specification' - - def _drawAxes(self, dc, xaxis, yaxis, - bb1, bb2, scale, shift, xticks, yticks): - dc.SetPen(wx.wxPen(wx.wxNamedColour('BLACK'),1)) - if xaxis is not None: - lower, upper = xaxis - text = 1 - for y, d in [(bb1[1], -3), (bb2[1], 3)]: - p1 = scale*Numeric.array([lower, y])+shift - p2 = scale*Numeric.array([upper, y])+shift - dc.DrawLine(p1[0],p1[1],p2[0],p2[1]) - for x, label in xticks: - p = scale*Numeric.array([x, y])+shift - dc.DrawLine(p[0],p[1],p[0],p[1]+d) - if text: - dc.DrawText(label,p[0],p[1]) - text = 0 - - if yaxis is not None: - lower, upper = yaxis - text = 1 - h = dc.GetCharHeight() - for x, d in [(bb1[0], -3), (bb2[0], 3)]: - p1 = scale*Numeric.array([x, lower])+shift - p2 = scale*Numeric.array([x, upper])+shift - dc.DrawLine(p1[0],p1[1],p2[0],p2[1]) - for y, label in yticks: - p = scale*Numeric.array([x, y])+shift - dc.DrawLine(p[0],p[1],p[0]-d,p[1]) - if text: - dc.DrawText(label,p[0]-dc.GetTextExtent(label)[0], - p[1]-0.5*h) - text = 0 - - def _ticks(self, lower, upper): - ideal = (upper-lower)/7. - log = Numeric.log10(ideal) - power = Numeric.floor(log) - fraction = log-power - factor = 1. - error = fraction - for f, lf in self._multiples: - e = Numeric.fabs(fraction-lf) - if e < error: - error = e - factor = f - grid = factor * 10.**power - if power > 3 or power < -3: - format = '%+7.0e' - elif power >= 0: - digits = max(1, int(power)) - format = '%' + `digits`+'.0f' - else: - digits = -int(power) - format = '%'+`digits+2`+'.'+`digits`+'f' - ticks = [] - t = -grid*Numeric.floor(-lower/grid) - while t <= upper: - ticks.append(t, format % (t,)) - t = t + grid - return ticks - - _multiples = [(2., Numeric.log10(2.)), (5., Numeric.log10(5.))] - - def redraw(self,dc=None): - if self.last_draw is not None: - apply(self.draw, self.last_draw + (dc,)) - - def clear(self): - self.canvas.delete('all') - -# -# Now a sample implementation using the above... -# - -if __name__ == '__main__': - - class AppFrame(wx.wxFrame): - def __init__(self, parent, id, title): - wx.wxFrame.__init__(self, parent, id, title, - wx.wxPyDefaultPosition, wx.wxSize(400, 400)) - - # Now Create the menu bar and items - self.mainmenu = wx.wxMenuBar() - - menu = wx.wxMenu() - menu.Append(200, '&Print...', 'Print the current plot') - wx.EVT_MENU(self, 200, self.OnFilePrint) - menu.Append(209, 'E&xit', 'Enough of this already!') - wx.EVT_MENU(self, 209, self.OnFileExit) - self.mainmenu.Append(menu, '&File') - - menu = wx.wxMenu() - menu.Append(210, '&Draw', 'Draw plots') - wx.EVT_MENU(self,210,self.OnPlotDraw) - menu.Append(211, '&Redraw', 'Redraw plots') - wx.EVT_MENU(self,211,self.OnPlotRedraw) - menu.Append(212, '&Clear', 'Clear canvas') - wx.EVT_MENU(self,212,self.OnPlotClear) - self.mainmenu.Append(menu, '&Plot') - - menu = wx.wxMenu() - menu.Append(220, '&About', 'About this thing...') - wx.EVT_MENU(self, 220, self.OnHelpAbout) - self.mainmenu.Append(menu, '&Help') - - self.SetMenuBar(self.mainmenu) - - # A status bar to tell people what's happening - self.CreateStatusBar(1) - - self.client = PlotCanvas(self) - - def OnFilePrint(self, event): - d = wx.wxMessageDialog(self, -"""As of this writing, printing support in wxPython is shaky at best. -Are you sure you want to do this?""", "Danger!", wx.wxYES_NO) - if d.ShowModal() == wx.wxID_YES: - psdc = wx.wxPostScriptDC("out.ps", wx.TRUE, self) - self.client.redraw(psdc) - - def OnFileExit(self, event): - self.Close() - - def OnPlotDraw(self, event): - self.client.draw(InitObjects(),'automatic','automatic'); - - def OnPlotRedraw(self,event): - self.client.redraw() - - def OnPlotClear(self,event): - self.client.last_draw = None - dc = wx.wxClientDC(self.client) - dc.Clear() - - def OnHelpAbout(self, event): - about = wx.wxMessageDialog(self, __doc__, "About...", wx.wxOK) - about.ShowModal() - - def OnCloseWindow(self, event): - self.Destroy() - - def InitObjects(): - # 100 points sin function, plotted as green circles - data1 = 2.*Numeric.pi*Numeric.arange(200)/200. - data1.shape = (100, 2) - data1[:,1] = Numeric.sin(data1[:,0]) - markers1 = PolyMarker(data1, color='green', marker='circle',size=1) - - # 50 points cos function, plotted as red line - data1 = 2.*Numeric.pi*Numeric.arange(100)/100. - data1.shape = (50,2) - data1[:,1] = Numeric.cos(data1[:,0]) - lines = PolyLine(data1, color='red') - - # A few more points... - pi = Numeric.pi - markers2 = PolyMarker([(0., 0.), (pi/4., 1.), (pi/2, 0.), - (3.*pi/4., -1)], color='blue', - fillcolor='green', marker='cross') - - return PlotGraphics([markers1, lines, markers2]) - - - class MyApp(wx.wxApp): - def OnInit(self): - frame = AppFrame(wx.NULL, -1, "wxPlotCanvas") - frame.Show(wx.TRUE) - self.SetTopWindow(frame) - return wx.TRUE - - - app = MyApp(0) - app.MainLoop() diff --git a/utils/wxPython/tests/wxSlash.py b/utils/wxPython/tests/wxSlash.py deleted file mode 100644 index ae1164d233..0000000000 --- a/utils/wxPython/tests/wxSlash.py +++ /dev/null @@ -1,359 +0,0 @@ -#!/usr/bin/python -"""This is wxSlash 1.1 - - It's the obligatory Slashdot.org headlines reader that any modern -widget set/library must have in order to be taken seriously :-) - - Usage is quite simple; wxSlash attempts to download the 'ultramode.txt' -file from http://slashdot.org, which contains the headlines in a computer -friendly format. It then displays said headlines in a wxWindows list control. - - You can read articles using either Python's html library or an external -browser. Uncheck the 'browser->internal' menu item to use the latter option. -Use the settings dialog box to set which external browser is started. - - This code is available under the wxWindows license, see elsewhere. If you -modify this code, be aware of the fact that slashdot.org's maintainer, -CmdrTaco, explicitly asks 'ultramode.txt' downloaders not to do this -automatically more than twice per hour. If this feature is abused, CmdrTaco -may remove the ultramode file completely and that will make a *lot* of people -unhappy. - - I want to thank Alex Shnitman whose slashes.pl (Perl/GTK) script gave me -the idea for this applet. - - Have fun with it, - - Harm van der Heijden (H.v.d.Heijden@phys.tue.nl) -""" - -from wxPython.wx import * -from httplib import HTTP -from htmllib import HTMLParser -import os -import re -import formatter - -class HTMLTextView(wxFrame): - def __init__(self, parent, id, title='HTMLTextView', url=None): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, - wxSize(600,400)) - - self.mainmenu = wxMenuBar() - - menu = wxMenu() - menu.Append(201, '&Open URL...', 'Open URL') - EVT_MENU(self, 201, self.OnFileOpen) - menu.Append(209, 'E&xit', 'Exit viewer') - EVT_MENU(self, 209, self.OnFileExit) - - self.mainmenu.Append(menu, '&File') - self.SetMenuBar(self.mainmenu) - self.CreateStatusBar(1) - - self.text = wxTextCtrl(self, -1, "", wxPyDefaultPosition, - wxPyDefaultSize, wxTE_MULTILINE | wxTE_READONLY) - - if (url): - self.OpenURL(url) - - def logprint(self, x): - self.SetStatusText(x) - - def OpenURL(self, url): - self.url = url - m = re.match('file:(\S+)\s*', url) - if m: - f = open(m.groups()[0],'r') - else: - m = re.match('http://([^/]+)(/\S*)\s*', url) - if m: - host = m.groups()[0] - path = m.groups()[1] - else: - m = re.match('http://(\S+)\s*', url) - if not m: - # Invalid URL - self.logprint("Invalid or unsupported URL: %s" % (url)) - return - host = m.groups()[0] - path = '' - f = RetrieveAsFile(host,path,self.logprint) - if not f: - self.logprint("Could not open %s" % (url)) - return - self.logprint("Receiving data...") - data = f.read() - tmp = open('tmphtml.txt','w') - fmt = formatter.AbstractFormatter(formatter.DumbWriter(tmp)) - p = HTMLParser(fmt) - self.logprint("Parsing data...") - p.feed(data) - p.close() - tmp.close() - tmp = open('tmphtml.txt', 'r') - self.text.SetValue(tmp.read()) - self.SetTitle(url) - self.logprint(url) - - def OnFileOpen(self, event): - dlg = wxTextEntryDialog(self, "Enter URL to open:", "") - if dlg.ShowModal() == wxID_OK: - url = dlg.GetValue() - else: - url = None - if url: - self.OpenURL(url) - - def OnFileExit(self, event): - self.Close() - - def OnCloseWindow(self, event): - self.Destroy() - - -def ParseSlashdot(f): - art_sep = re.compile('%%\r?\n') - line_sep = re.compile('\r?\n') - data = f.read() - list = art_sep.split(data) - art_list = [] - for i in range(1,len(list)-1): - art_list.append(line_sep.split(list[i])) - return art_list - -def myprint(x): - print x - -def RetrieveAsFile(host, path='', logprint = myprint): - try: - h = HTTP(host) - except: - logprint("Failed to create HTTP connection to %s... is the network available?" % (host)) - return None - h.putrequest('GET',path) - h.putheader('Accept','text/html') - h.putheader('Accept','text/plain') - h.endheaders() - errcode, errmsg, headers = h.getreply() - if errcode != 200: - logprint("HTTP error code %d: %s" % (errcode, errmsg)) - return None - f = h.getfile() -# f = open('/home/harm/ultramode.txt','r') - return f - - -class AppStatusBar(wxStatusBar): - def __init__(self, parent): - wxStatusBar.__init__(self,parent, -1) - self.SetFieldsCount(2) - self.SetStatusWidths([-1, 100]) - self.but = wxButton(self, 1001, "Refresh") - EVT_BUTTON(self, 1001, parent.OnViewRefresh) - self.OnSize(None) - - def logprint(self,x): - self.SetStatusText(x,0) - - def OnSize(self, event): - rect = self.GetFieldRect(1) - self.but.SetPosition(wxPoint(rect.x+2, rect.y+2)) - self.but.SetSize(wxSize(rect.width-4, rect.height-4)) - -# This is a simple timer class to start a function after a short delay; -class QuickTimer(wxTimer): - def __init__(self, func, wait=100): - wxTimer.__init__(self) - self.callback = func - self.Start(wait); # wait .1 second (.001 second doesn't work. why?) - def Notify(self): - self.Stop(); - apply(self.callback, ()); - -class AppFrame(wxFrame): - def __init__(self, parent, id, title): - wxFrame.__init__(self, parent, id, title, wxPyDefaultPosition, - wxSize(650, 250)) - - # if the window manager closes the window: - EVT_CLOSE(self, self.OnCloseWindow); - - # Now Create the menu bar and items - self.mainmenu = wxMenuBar() - - menu = wxMenu() - menu.Append(209, 'E&xit', 'Enough of this already!') - EVT_MENU(self, 209, self.OnFileExit) - self.mainmenu.Append(menu, '&File') - menu = wxMenu() - menu.Append(210, '&Refresh', 'Refresh headlines') - EVT_MENU(self, 210, self.OnViewRefresh) - menu.Append(211, '&Slashdot Index', 'View Slashdot index') - EVT_MENU(self, 211, self.OnViewIndex) - menu.Append(212, 'Selected &Article', 'View selected article') - EVT_MENU(self, 212, self.OnViewArticle) - self.mainmenu.Append(menu, '&View') - menu = wxMenu() - menu.Append(220, '&Internal', 'Use internal text browser',TRUE) - menu.Check(220, true) - self.UseInternal = 1; - EVT_MENU(self, 220, self.OnBrowserInternal) - menu.Append(222, '&Settings...', 'External browser Settings') - EVT_MENU(self, 222, self.OnBrowserSettings) - self.mainmenu.Append(menu, '&Browser') - menu = wxMenu() - menu.Append(230, '&About', 'Some documentation'); - EVT_MENU(self, 230, self.OnAbout) - self.mainmenu.Append(menu, '&Help') - - self.SetMenuBar(self.mainmenu) - - if wxPlatform == '__WXGTK__': - # I like lynx. Also Netscape 4.5 doesn't react to my cmdline opts - self.BrowserSettings = "xterm -e lynx %s &" - elif wxPlatform == '__WXMSW__': - # netscape 4.x likes to hang out here... - self.BrowserSettings = '\\progra~1\\Netscape\\Communicator\\Program\\netscape.exe %s' - else: - # a wild guess... - self.BrowserSettings = 'netscape %s' - - # A status bar to tell people what's happening - self.sb = AppStatusBar(self) - self.SetStatusBar(self.sb) - - self.list = wxListCtrl(self, 1100) - self.list.SetSingleStyle(wxLC_REPORT) - self.list.InsertColumn(0, 'Subject') - self.list.InsertColumn(1, 'Date') - self.list.InsertColumn(2, 'Posted by') - self.list.InsertColumn(3, 'Comments') - self.list.SetColumnWidth(0, 300) - self.list.SetColumnWidth(1, 150) - self.list.SetColumnWidth(2, 100) - self.list.SetColumnWidth(3, 100) - - EVT_LIST_ITEM_SELECTED(self, 1100, self.OnItemSelected) - EVT_LEFT_DCLICK(self.list, self.OnLeftDClick) - - self.logprint("Connecting to slashdot... Please wait.") - # wxYield doesn't yet work here. That's why we use a timer - # to make sure that we see some GUI stuff before the slashdot - # file is transfered. - self.timer = QuickTimer(self.DoRefresh, 1000) - - def logprint(self, x): - self.sb.logprint(x) - - def OnFileExit(self, event): - self.Destroy() - - def DoRefresh(self): - f = RetrieveAsFile('slashdot.org','/ultramode.txt',self.sb.logprint) - art_list = ParseSlashdot(f) - self.list.DeleteAllItems() - self.url = [] - self.current = -1 - i = 0; - for article in art_list: - self.list.InsertStringItem(i, article[0]) - self.list.SetStringItem(i, 1, article[2]) - self.list.SetStringItem(i, 2, article[3]) - self.list.SetStringItem(i, 3, article[6]) - self.url.append(article[1]) - i = i + 1 - self.logprint("File retrieved OK.") - - def OnViewRefresh(self, event): - self.logprint("Connecting to slashdot... Please wait."); - wxYield() - self.DoRefresh() - - def DoViewIndex(self): - if self.UseInternal: - self.view = HTMLTextView(self, -1, 'slashdot.org', - 'http://slashdot.org') - self.view.Show(true) - else: - self.logprint(self.BrowserSettings % ('http://slashdot.org')) - os.system(self.BrowserSettings % ('http://slashdot.org')) - self.logprint("OK") - - def OnViewIndex(self, event): - self.logprint("Starting browser... Please wait.") - wxYield() - self.DoViewIndex() - - def DoViewArticle(self): - if self.current<0: return - url = self.url[self.current] - if self.UseInternal: - self.view = HTMLTextView(self, -1, url, url) - self.view.Show(true) - else: - self.logprint(self.BrowserSettings % (url)) - os.system(self.BrowserSettings % (url)) - self.logprint("OK") - - def OnViewArticle(self, event): - self.logprint("Starting browser... Please wait.") - wxYield() - self.DoViewArticle() - - def OnBrowserInternal(self, event): - if self.mainmenu.Checked(220): - self.UseInternal = 1 - else: - self.UseInternal = 0 - - def OnBrowserSettings(self, event): - dlg = wxTextEntryDialog(self, "Enter command to view URL.\nUse %s as a placeholder for the URL.", "", self.BrowserSettings); - if dlg.ShowModal() == wxID_OK: - self.BrowserSettings = dlg.GetValue() - - def OnAbout(self, event): - dlg = wxMessageDialog(self, __doc__, "wxSlash", wxOK | wxICON_INFORMATION) - dlg.ShowModal() - - def OnItemSelected(self, event): - self.current = event.m_itemIndex - self.logprint("URL: %s" % (self.url[self.current])) - - def OnLeftDClick(self, event): - (x,y) = event.Position(); - # Actually, we should convert x,y to logical coords using - # a dc, but only for a wxScrolledWindow widget. - # Now wxGTK derives wxListCtrl from wxScrolledWindow, - # and wxMSW from wxControl... So that doesn't work. - #dc = wxClientDC(self.list) - ##self.list.PrepareDC(dc) - #x = dc.DeviceToLogicalX( event.GetX() ) - #y = dc.DeviceToLogicalY( event.GetY() ) - id = self.list.HitTest(wxPoint(x,y)) - #print "Double click at %d %d" % (x,y), id - # Okay, we got a double click. Let's assume it's the current selection - wxYield() - self.OnViewArticle(event) - - def OnCloseWindow(self, event): - self.Destroy() - -class MyApp(wxApp): - def OnInit(self): - frame = AppFrame(NULL, -1, "Slashdot Breaking News") - frame.Show(true) - self.SetTopWindow(frame) - return true - -# -# main thingy -# -if __name__ == '__main__': - app = MyApp(0) - app.MainLoop() - - - - - diff --git a/utils/wxtree/docs/back.gif b/utils/wxtree/docs/back.gif deleted file mode 100644 index 8a61076d3ba74bdedc1d24f60c3d1f5a361a6cee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 225 zcmV<703QEGNk%v~VLt#E0Pz3-zrVld=jU&4Z(9HWEC2ui06zd20008IjE||y?GK}z zNf>~$-n{z{YJwGn=81mem9{RpmcUHc_KoNIPRH~B4DyD9p%LJl6@Sa4^Epcbno6kk zD5XxT&EQg7>t<(Iwfoo diff --git a/utils/wxtree/docs/books.gif b/utils/wxtree/docs/books.gif deleted file mode 100644 index 26ff394df62cbdb103908648614173654ec6d7eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 433 zcmZ?wbhEHb)Mn6T*vtR|`@wiWnA#8I?caakz=4K_hW|kE{|x`Z6p#k8fI#sl3nK#q zJA)2LC&&y2mVX~kc&^@S@%pT_yTXfJi2|GDp6e!c+BKZ&%hNhxEdIWs;JKB{`SQ<< zPEHBjEDpTA+u5C@f_Kd_OY(VT@*wQ`^@ZOn?o==|n=f}d-eJDgYH!-kgw~pQIm^yJ zXXjvP=CI1BsxGLD%W7s3YHF40W?)U_XRRqLV(6RR*epGzV`f*;yy>Y6CaJQe#!Z{C zG>UD-^ymfsl8Zb1&6`&m_|BiWyJ*Ao%}m=4ZI5W$CBCQ1cE#btXOFO~5xrb_#{Jx* zoonY*JxIO&=++(K#Sd;geEISGLb2|JE2D3|`n+=W_r6@~gZ$Dxn*aVxe61F6#H#M4 z+#(G(M&FGcoR<~PT+2yhbBbrNeE0fzVUh`tc%sLY@Sv%-ybAJtM`mzESx;fke0N#G zhwFr(q4BvrDU)5js(vjKIV-p&b=Q1{zHc=TUM!ikY^BWIkV&5=g{jIH2eop2JLI}4 V)i6YMM%m#@+X@~Z>t$fD1^{??#6$o9 diff --git a/utils/wxtree/docs/classes.tex b/utils/wxtree/docs/classes.tex deleted file mode 100644 index 98b9e89ee2..0000000000 --- a/utils/wxtree/docs/classes.tex +++ /dev/null @@ -1,304 +0,0 @@ -\chapter{wxTreeLayout Class Reference} -\setheader{{\it CHAPTER \thechapter}}{}{}{}{}{{\it CHAPTER \thechapter}}% -\setfooter{\thepage}{}{}{}{}{\thepage} - -\section{\class{wxTreeLayout}}\label{wxtreelayout} - -This abstract class is used for drawing a tree. You must derive a new -class from this, and define member functions to access the data that -wxTreeLayout needs. - -Nodes are identified by long integer identifiers. The derived class -communicates the actual tree structure to wxTreeLayout by defining \helprefn{wxTreeLayout::GetChildren}{getchildren}\rtfsp -and \helprefn{wxTreeLayout::GetNodeParent}{getnodeparent} functions. - -The application should call \helprefn{DoLayout}{dolayout} to do the tree -layout. Depending on how the derived class has been defined, either -\rtfsp\helprefn{wxTreeLayout::Draw}{draw} must be called (for example by the OnPaint member -of a wxScrolledWindow) or the application-defined drawing code should be called -as normal. - -For example, if you have an image drawing system already defined, you -may want wxTreeLayout to position existing node images in that system. So you -just need a way for wxTreeLayout to set the node image positions according to -the layout algorithm, and the rest will be done by your own image drawing -system. - -\wxheading{Derived from} - -wxObject - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxTreeLayout::wxTreeLayout} - -\func{}{wxTreeLayout}{\void} - -Constructor. - -\membersection{wxTreeLayout::ActivateNode}\label{activatenode} - -\func{void}{ActivateNode}{\param{long}{ id}, \param{bool }{active}} - -Define this so wxTreeLayout can turn nodes on and off for drawing purposes -(not all nodes may be connected in the tree). See also \helprefn{NodeActive}{nodeactive}. - -\membersection{wxTreeLayout::CalcLayout} - -\func{void}{CalcLayout}{\param{long}{ id}, \param{int}{ level}} - -Private function for laying out a branch. - -\membersection{wxTreeLayout::DoLayout}\label{dolayout} - -\func{void}{DoLayout}{\param{wxDC\&}{ dc}, \param{long}{ topNode = -1}} - -Calculates the layout for the tree, optionally specifying the top node. - -\membersection{wxTreeLayout::Draw}\label{draw} - -\func{void}{Draw}{\param{wxDC\&}{ dc}} - -Call this to let wxTreeLayout draw the tree itself, once the layout has been -calculated with \helprefn{DoLayout}{dolayout}. - -\membersection{wxTreeLayout::DrawBranch} - -\func{void}{DrawBranch}{\param{long}{ from}, \param{long}{ to}, \param{wxDC\&}{ dc}} - -Defined by wxTreeLayout to draw an arc between two nodes. - -\membersection{wxTreeLayout::DrawBranches} - -\func{void}{DrawBranches}{\param{wxDC\&}{ dc}} - -Defined by wxTreeLayout to draw the arcs between nodes. - -\membersection{wxTreeLayout::DrawNode} - -\func{void}{DrawNode}{\param{long}{ id}, \param{wxDC\&}{ dc}} - -Defined by wxTreeLayout to draw a node. - -\membersection{wxTreeLayout::DrawNodes} - -\func{void}{DrawNodes}{\param{wxDC\&}{ dc}} - -Defined by wxTreeLayout to draw the nodes. - -\membersection{wxTreeLayout::GetChildren}\label{getchildren} - -\func{void}{GetChildren}{\param{long}{ id}, \param{wxList \&}{list}} - -Must be defined to return the children of node {\it id} in the given list -of integers. - -\membersection{wxTreeLayout::GetNextNode}\label{getnextnode} - -\func{long}{GetNextNode}{\param{long}{ id}} - -Must be defined to return the next node after {\it id}, so that wxTreeLayout can -iterate through all relevant nodes. The ordering is not important. -The function should return -1 if there are no more nodes. - -\membersection{wxTreeLayout::GetNodeName} - -\constfunc{wxString}{GetNodeName}{\param{long}{ id}} - -May optionally be defined to get a node's name (for example if leaving -the drawing to wxTreeLayout). - -\membersection{wxTreeLayout::GetNodeSize} - -\constfunc{void}{GetNodeSize}{\param{long}{ id}, \param{long*}{ x}, \param{long*}{ y}} - -Can be defined to indicate a node's size, or left to wxTreeLayout to use the -name as an indication of size. - -\membersection{wxTreeLayout::GetNodeParent}\label{getnodeparent} - -\constfunc{long}{GetNodeParent}{\param{long}{ id}} - -Must be defined to return the parent node of {\it id}. -The function should return -1 if there is no parent. - -\membersection{wxTreeLayout::GetNodeX} - -\constfunc{long}{GetNodeX}{\param{long}{ id}} - -Must be defined to return the current X position of the node. Note that -coordinates are assumed to be at the top-left of the node so some conversion -may be necessary for your application. - -\membersection{wxTreeLayout::GetNodeY} - -\constfunc{long}{GetNodeY}{\param{long}{ id}} - -Must be defined to return the current Y position of the node. Note that -coordinates are assumed to be at the top-left of the node so some conversion -may be necessary for your application. - -\membersection{wxTreeLayout::GetLeftMargin} - -\constfunc{long}{GetLeftMargin}{\void} - -Gets the left margin set with \helprefn{SetMargins}{setmargins}. - -\membersection{wxTreeLayout::GetOrientation} - -\constfunc{bool}{GetOrientation}{\void} - -Gets the orientation: TRUE means top-to-bottom, FALSE means left-to-right (the default). - -\membersection{wxTreeLayout::GetTopMargin} - -\constfunc{long}{GetTopMargin}{\void} - -Gets the top margin set with \helprefn{SetMargins}{setmargins}. - -\membersection{wxTreeLayout::GetTopNode} - -\constfunc{long}{GetTopNode}{\void} - -wxTreeLayout calls this to get the top of the tree. Don't redefine this; call -\rtfsp\helprefn{SetTopNode}{settopnode} instead before calling \helprefn{DoLayout}{dolayout}. - -\membersection{wxTreeLayout::GetXSpacing} - -\constfunc{long}{GetXSpacing}{\void} - -Gets the horizontal spacing between nodes. - -\membersection{wxTreeLayout::GetYSpacing} - -\constfunc{long}{GetYSpacing}{\void} - -Gets the vertical spacing between nodes. - -\membersection{wxTreeLayout::Initialize} - -\func{void}{Initialize}{\void} - -Initializes wxTreeLayout. Call from application or overridden {\bf Initialize} -or constructor. - -\membersection{wxTreeLayout::NodeActive}\label{nodeactive} - -\func{bool}{NodeActive}{\param{long}{ id}} - -Define this so wxTreeLayout can know which nodes are to be drawn (not all -nodes may be connected in the tree). See also \helprefn{ActivateNode}{activatenode}. - -\membersection{wxTreeLayout::SetNodeName} - -\func{void}{SetNodeName}{\param{long}{ id}, \param{const wxString\& }{ name}} - -May optionally be defined to set a node's name. - -\membersection{wxTreeLayout::SetNodeX} - -\func{void}{SetNodeX}{\param{long}{ id}, \param{long}{ x}} - -Must be defined to set the current X position of the node. Note that -coordinates are assumed to be at the top-left of the node so some conversion -may be necessary for your application. - -\membersection{wxTreeLayout::SetNodeY} - -\func{void}{SetNodeY}{\param{long}{ id}, \param{long}{ y}} - -Must be defined to set the current Y position of the node. Note that -coordinates are assumed to be at the top-left of the node so some conversion -may be necessary for your application. - -\membersection{wxTreeLayout::SetOrientation} - -\func{void}{SetOrientation}{\param{bool}{ orientation}} - -Sets the tree orientation: TRUE means top-to-bottom, FALSE means left-to-right (the default). - -\membersection{wxTreeLayout::SetTopNode}\label{settopnode} - -\func{void}{SetTopNode}{\param{long}{ id}} - -Call this to identify the top of the tree to wxTreeLayout. - -\membersection{wxTreeLayout::SetSpacing} - -\func{void}{SetSpacing}{\param{long}{ x}, \param{long}{ y}} - -Sets the horizontal and vertical spacing between nodes in the tree. - -\membersection{wxTreeLayout::SetMargins}\label{setmargins} - -\func{void}{SetMargins}{\param{long}{ x}, \param{long}{ y}} - -Sets the left and top margins of the whole tree. - -\section{\class{wxStoredTree}}\label{wxstoredtree} - -wxStoredTree provides storage for node labels, position and client data. It also provides hit-testing -(which node a mouse event occurred on). It is usually a more convenient class to use than wxTreeLayout. - -\wxheading{Derived from} - -\helpref{wxTreeLayout}{wxtreelayout} - -\latexignore{\rtfignore{\wxheading{Members}}} - -\membersection{wxStoredTree::wxStoredTree} - -\func{}{wxStoredTree}{\param{int }{noNodes = 200}} - -Constructor. Specify the maximum number of nodes to be allocated. - -\membersection{wxStoredTree::AddChild}\label{wxstoredtreeaddchild} - -\func{long}{AddChild}{\param{const wxString\&}{ name}, \param{const wxString\&}{ parent = ""}} - -Adds a child with a given parent, returning the node id. - -\membersection{wxStoredTree::GetClientData}\label{wxstoredtreegetclientdata} - -\constfunc{long}{GetClientData}{\param{long}{ id}} - -Gets the client data for the given node. - -\membersection{wxStoredTree::GetNode}\label{wxstoredtreegetnode} - -\constfunc{wxStoredNode*}{GetNode}{\param{long}{ id}} - -Returns the wxStoredNode object for the given node id. - -\membersection{wxStoredTree::GetNodeCount}\label{wxstoredtreegetnodecount} - -\constfunc{int}{GetNodeCount}{\void} - -Returns the current number of nodes. - -\membersection{wxStoredTree::GetNumNodes}\label{wxstoredtreegetnumnodes} - -\constfunc{int}{GetNumNodes}{\void} - -Returns the maximum number of nodes. - -\membersection{wxStoredTree::HitTest}\label{wxstoredtreehittest} - -\func{wxString}{HitTest}{\param{wxMouseEvent\&}{ event}, \param{wxDC\& }{dc}} - -Returns a string with the node name corresponding to the position of the mouse event, or the empty string if no node -was detected. - -\membersection{wxStoredTree::NameToId}\label{wxstoredtreenametoid} - -\func{long}{NameToId}{\param{const wxString\&}{ name}} - -Returns the id for the given node name, or -1 if there was no such node. - -\membersection{wxStoredTree::SetClientData}\label{wxstoredtreesetclientdata} - -\func{void}{SetClientData}{\param{long}{ id}, \param{long}{ clientData}} - -Sets client data for the given node. - - diff --git a/utils/wxtree/docs/contents.gif b/utils/wxtree/docs/contents.gif deleted file mode 100644 index 3dddfa3dd5f0c652e8b27cd6c29e1fdd49ced5a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 231 zcmVG0Pz3-zrVld=jU&4Z(9HWEC2ui06_p40008OjE||y?GK}z zO&EZ)-n{z{a)K3v=81;mmA0S4Fj_r^UyThZDG{h6k9m zHI_(7spd!5_$SH6m{Q-cu3}3Ku`2^Nfa3dZ+VyHW%gtsZ`jV7k@%j8Ij}~W) zc{NUP6)X3OWa^|{8nl?rh|gZ1@{(qofnsWu+nmFHSnaq>lB41zSVC9`a)_v*xHx0L S5h*!IS!o$ynW>ps0028gDN7ju diff --git a/utils/wxtree/docs/tex2rtf.ini b/utils/wxtree/docs/tex2rtf.ini deleted file mode 100644 index 8b55040f1f..0000000000 --- a/utils/wxtree/docs/tex2rtf.ini +++ /dev/null @@ -1,28 +0,0 @@ -;;; Tex2RTF initialisation 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 = no -htmlBrowseButtons = bitmap -winHelpContents = yes -winHelpVersion = 3 ; 3 for Windows 3.x, 4 for Windows 95 -winHelpTitle = "wxTreeLayout Manual" -truncateFilenames = yes -combineSubSections = yes -\overview [2] {\rtfonly{See also }\settransparency{on}\sethotspotcolour{off}\sethotspotunderline{on}\winhelponly{\image{}{books.bmp}\settransparency{off}} -\htmlonly{\image{}{books.gif}}\helpref{#1}{#2} -\sethotspotcolour{on}\sethotspotunderline{on}} -\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] {{\bf #1} {\bf #2}(#3) {\bf const}\index{#2}} -\windowstyle [1] {{\bf #1}\index{#1}} diff --git a/utils/wxtree/docs/tree.bib b/utils/wxtree/docs/tree.bib deleted file mode 100644 index 9793c41c47..0000000000 --- a/utils/wxtree/docs/tree.bib +++ /dev/null @@ -1,8 +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} -} - diff --git a/utils/wxtree/docs/treetst.bmp b/utils/wxtree/docs/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@*%*@{Yk=rnctzf9laPFEsr0TbCG&S z%{fTlqvi>#)>@S7D=rlc1>9K~_qi_r_V7DiCq zz3IIs%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;eGLjH6(-$d`>OUA8+78LO%T;Lce-@wAfH<;b4$rqNlq`0C{u0?!b z8CSN;_7vZ&r`!-6UuK4t|3|K^Nl4_uml;uP(J0h9F1v<9xZRB 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-gy6nIMlE9Uo)2e*=*PDOR8FHSc>Wchepn5?`*j(*DJed~m4gR94Tf;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?3Ex67Y zZnMK2_WgRjwxcrqNH#91Z->-z=6Tw)-&@vW1wC^TxCzZAi_gq_nP~vmyi}*h;9pxk z`{KLxTno5;r)eO;6yU5nZh++2X?yzEv$cAw@bd&FzE#Ha9sIf` zU$zxALk3eIqm+_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-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>@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%8C7Rq!(mr(rsD&ls}htF}~ePYo58sY@BA2=XIw-yBK1Q^PI4cxVhd>eqxNMr!4veWn;3rac%X*^yoy=qYq>p)jLPh?d%$ZIw#L>TRu|s@S8a z##+~;F|3MfjJJ|BYpGp zo2<45GV1HLl^tVTx#kLXEnzJo)~TtqSp4e(~&H!1U#D{7~B*T~T`xL_(D;g1GurcQD9F7(?GP#Mh*)nHB zp@z`MV|!KkamcV@#oC-1!U`s6j4`+r3D$I~|G*J3>~mPXn8(YFZ<8 z^3@$}t>V;90qCsPs3M7pj!ge_*S=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{tY4N4qu7r#VVfZfk5;c6f@R7vwe|#VZ7QHNrb%*8ODEDjMW+86gHt{ zE=bHek~+fbdZXezX|qAXTkCD(8=C10SpGSh6&N&38`x6C^9i zq(m|SG?xs?9_0=mb}WNS3mE5G`N%v|3iqin72Z z(rQ^V;aDy^z$`{F8Hhr${p*-`v&zu1O-zCfp zhEkINZN>uro7vFu!0;gl^^Z%g2vJ6csVgCqqrPZ(vU3q1WswSmlS-PE9a3XQgUYWcrodIjXH$ZIT27x22)B zwLym5CJ*WAJi8vItH4=~JfVcU$pmqFfPE`t8#~3C5^$nmN!ww8VLz^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 zPo^+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(hnjw9(`@?lKJmo<(tYd9d);k*_W%gtCeAWZlgxpoy|ZDMRPr_m>p rx}08pS4?)u<%PW $(TREEDIR)/docs/wxtree.xlp - /bin/rm -f $(TREEDIR)/docs/tmp.xlp - -$(HTMLDIR)/wxtree/wxtree_contents.html: $(TREEDIR)/docs/manual.tex $(TREEDIR)/docs/classes.tex - cd ../docs; tex2rtf manual.tex $(HTMLDIR)/wxtree/wxtree.html -html -twice - -$(TREEDIR)/docs/manual.dvi: $(TREEDIR)/docs/manual.tex $(TREEDIR)/docs/classes.tex - cd $(TREEDIR)/docs; latex manual; latex manual; makeindex manual; bibtex manual; latex manual; latex manual - -$(TREEDIR)/docs/manual.ps: $(TREEDIR)/docs/manual.dvi - cd $(TREEDIR)/docs; dvips -f -r < manual.dvi > manual.ps - -clean_motif: - $(MAKE) -f makefile.unx GUISUFFIX=_motif cleanany - -clean_ol: - $(MAKE) -f makefile.unx GUISUFFIX=_ol cleanany - -clean_hp: - $(MAKE) -f makefile.unx GUISUFFIX=_hp cleanany - -cleanany: - rm -f $(OBJECTS) $(OBJDIR)/*.$(OBJSUFF) test$(GUISUFFIX) $(TREELIB) core - -wxclean_ol: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx clean_ol - -wxclean_motif: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx clean_motif - -wxclean_hp: - cd $(WXDIR)/src/x; $(MAKE) -f makefile.unx clean_hp diff --git a/utils/wxtree/src/makefile.vc b/utils/wxtree/src/makefile.vc deleted file mode 100644 index 26db16510a..0000000000 --- a/utils/wxtree/src/makefile.vc +++ /dev/null @@ -1,133 +0,0 @@ -# -# File: makefile.nt -# Author: Julian Smart -# Created: 1993 -# Updated: -# Copyright: (c) 1993, AIAI, University of Edinburgh -# -# "%W% %G%" -# -# Makefile : Builds wxTree class library (MS VC++). -# Use FINAL=1 argument to nmake to build final version with no debugging -# info - -# Set WXDIR for your system -WXDIR = $(WXWIN) -TREEDIR = $(WXDIR)\utils\wxtree -THISDIR = $(WXDIR)\utils\wxtree\src -EXTRALIBS=$(WXDIR)\lib\wxtree.lib -DOCDIR=$(WXDIR)\docs -LOCALDOCDIR=$(WXDIR)\utils\wxtree\docs - -!include $(WXDIR)\src\ntwxwin.mak - -PROGRAM=test - -OBJECTS = wxtree.obj -PROGOBJECTS = $(PROGRAM).obj -LIBTARGET=$(WXDIR)\lib\wxtree.lib - -all: $(LIBTARGET) - -$(PROGRAM): $(PROGRAM).exe - -wx: - cd $(WXDIR)\src\msw - nmake -f makefile.nt FINAL=$(FINAL) - cd $(THISDIR) - -wxclean: - cd $(WXDIR)\src\msw - nmake -f makefile.nt clean - cd $(THISDIR) - -$(LIBTARGET): $(OBJECTS) - -erase $(LIBTARGET) - $(implib) @<< --out:$(LIBTARGET) --machine:$(CPU) -$(OBJECTS) -<< - -$(PROGRAM).exe: $(DUMMYOBJ) $(WXLIB) $(PROGOBJECTS) $(LIBTARGET) $(PROGRAM).res - $(link) @<< --out:$(PROGRAM).exe -$(LINKFLAGS) -$(DUMMYOBJ) $(PROGOBJECTS) $(PROGRAM).res -$(LIBS) -<< - -wxtree.obj: wxtree.h wxtree.$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(PROGRAM).obj: $(PROGRAM).h $(PROGRAM).$(SRCSUFF) $(DUMMYOBJ) - $(cc) @<< -$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) -<< - -$(PROGRAM).res : $(PROGRAM).rc $(WXDIR)\include\wx\msw\wx.rc - $(rc) -r /i$(WXDIR)\include -fo$@ $(PROGRAM).rc - - -clean: - -erase *.obj - -erase *.sbr - -erase *.exe - -erase *.res - -erase *.map - -erase *.pdb - -erase $(LIBTARGET) - -DOCSOURCES=$(LOCALDOCDIR)\wxtree.tex $(LOCALDOCDIR)\classes.tex - -html: $(DOCDIR)\html\wxtree\tree.htm -hlp: $(DOCDIR)\winhelp\wxtree.hlp -pdfrtf: $(DOCDIR)\pdf\wxtree.rtf -ps: $(WXDIR)\docs\ps\wxtree.ps - -$(DOCDIR)\winhelp\wxtree.hlp: $(LOCALDOCDIR)\wxtree.rtf $(LOCALDOCDIR)\wxtree.hpj - cd $(LOCALDOCDIR) - -erase wxtree.ph - hc wxtree - move wxtree.hlp $(DOCDIR)\winhelp\wxtree.hlp - move wxtree.cnt $(DOCDIR)\winhelp\wxtree.cnt - cd $(THISDIR) - -$(LOCALDOCDIR)\wxtree.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -start /w tex2rtf $(LOCALDOCDIR)\wxtree.tex $(LOCALDOCDIR)\wxtree.rtf -twice -winhelp - cd $(THISDIR) - -$(DOCDIR)\pdf\wxtree.rtf: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -copy *.bmp $(DOCDIR)\pdf - -start /w tex2rtf $(LOCALDOCDIR)\wxtree.tex $(DOCDIR)\pdf\wxtree.rtf -twice -rtf - cd $(THISDIR) - -$(DOCDIR)\html\wxtree\tree.htm: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -mkdir $(DOCDIR)\html\wxtree - -start /w tex2rtf $(LOCALDOCDIR)\wxtree.tex $(DOCDIR)\html\wxtree\tree.htm -twice -html - -erase $(DOCDIR)\html\wxtree\*.con - -erase $(DOCDIR)\html\wxtree\*.ref - cd $(THISDIR) - -$(LOCALDOCDIR)\wxtree.dvi: $(DOCSOURCES) - cd $(LOCALDOCDIR) - -latex wxtree - -latex wxtree - -makeindx wxtree - -bibtex wxtree - -latex wxtree - -latex wxtree - cd $(THISDIR) - -$(WXDIR)\docs\ps\wxtree.ps: $(LOCALDOCDIR)\wxtree.dvi - cd $(LOCALDOCDIR) - -dvips32 -o wxtree.ps wxtree - move wxtree.ps $(WXDIR)\docs\ps\wxtree.ps - cd $(THISDIR) - - diff --git a/utils/wxtree/src/makefile.wat b/utils/wxtree/src/makefile.wat deleted file mode 100644 index 818e657eac..0000000000 --- a/utils/wxtree/src/makefile.wat +++ /dev/null @@ -1,49 +0,0 @@ -WXDIR = ..\..\.. - -NOPRECOMP=1 - -!include $(WXDIR)\src\makewat.env - -WXLIB=$(WXDIR)\lib -LIBTARGET = ..\lib\wxtree.lib -IFLAGS = -i=$(WXINC) -i=$(WXBASEINC) -EXTRACPPFLAGS = -NAME = wxtree -LNK = test.lnk -TESTOBJECTS=test.obj - -OBJECTS = $(name).obj - -all: $(OBJECTS) $(LIBTARGET) - -$(LIBTARGET): $(OBJECTS) - *wlib /b /c /n /P=256 $(LIBTARGET) $(OBJECTS) - -test: test.exe - -test.obj: test.$(SRCSUFF) test.h wxtree.h - -test.exe : $(TESTOBJECTS) test.res $(LNK) $(LIBTARGET) $(WXLIB)\wx$(LEVEL).lib - wlink @$(LNK) - $(BINDCOMMAND) test.res - -test.res : test.rc $(WXDIR)\include\msw\wx.rc - $(RC) $(RESFLAGS1) test.rc - -$(LNK) : makefile.wat - %create $(LNK) - @%append $(LNK) debug all - @%append $(LNK) system $(LINKOPTION) - @%append $(LNK) $(MINDATA) - @%append $(LNK) $(MAXDATA) - @%append $(LNK) $(STACK) - @%append $(LNK) name test - @%append $(LNK) file $(WXLIB)\wx$(LEVEL).lib - @%append $(LNK) file $(LIBTARGET) - @for %i in ($(EXTRALIBS)) do @%append $(LNK) file %i - @for %i in ($(TESTOBJECTS)) do @%append $(LNK) file %i - -clean: .SYMBOLIC - -erase $(LIBTARGET) *.obj *.bak *.err *.pch *.lib *.lbc *.res *.exe - - diff --git a/utils/wxtree/src/mondrian.ico b/utils/wxtree/src/mondrian.ico deleted file mode 100644 index 2310c5d275a87af295d5ea8dc79ea417a5e74c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0Z - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include "wxtree.h" -#include "test.h" - -wxStoredTree *myTree = NULL; - -// A macro needed for some compilers (AIX) that need 'main' to be defined -// in the application itself. -IMPLEMENT_APP(MyApp) - -// The `main program' equivalent, creating the windows and returning the -// main frame -bool MyApp::OnInit() -{ - // Create the main frame window - MyFrame* frame = new MyFrame(NULL, "Tree Test", wxPoint(-1, -1), wxSize(400, 550)); - - // Give it a status line - frame->CreateStatusBar(2); - - // Give it an icon -#ifdef __WINDOWS__ - wxIcon icon("tree_icn"); - frame->SetIcon(icon); -#endif - - // Make a menubar - wxMenu *file_menu = new wxMenu; - file_menu->Append(TEST_LEFT_RIGHT, "&Left to right", "Redraw left to right"); - file_menu->Append(TEST_TOP_BOTTOM, "&Top to bottom", "Redraw top to bottom"); - file_menu->AppendSeparator(); - file_menu->Append(TEST_QUIT, "E&xit", "Quit program"); - - wxMenu *help_menu = new wxMenu; - help_menu->Append(TEST_ABOUT, "&About", "About Tree Test"); - - wxMenuBar* menu_bar = new wxMenuBar; - - menu_bar->Append(file_menu, "&File"); - menu_bar->Append(help_menu, "&Help"); - - // Associate the menu bar with the frame - frame->SetMenuBar(menu_bar); - - MyCanvas *canvas = new MyCanvas(frame); - - // Give it scrollbars: the virtual canvas is 20 * 50 = 1000 pixels in each direction - canvas->SetScrollbars(20, 20, 50, 50); - frame->canvas = canvas; - - myTree = new wxStoredTree(); - - wxClientDC dc(canvas); - wxFont font(10, wxROMAN, wxNORMAL, wxBOLD); - dc.SetFont(font); - TreeTest(*myTree, dc); - - frame->Show(TRUE); - - frame->SetStatusText("Hello, tree!"); - - // Return the main frame window - return TRUE; -} - -void MyApp::TreeTest(wxStoredTree& tree, wxDC& dc) -{ - tree.Initialize(200); - - tree.AddChild("animal"); - tree.AddChild("mammal", "animal"); - tree.AddChild("insect", "animal"); - tree.AddChild("bird", "animal"); - - tree.AddChild("man", "mammal"); - tree.AddChild("cat", "mammal"); - tree.AddChild("dog", "mammal"); - tree.AddChild("giraffe", "mammal"); - tree.AddChild("elephant", "mammal"); - tree.AddChild("donkey", "mammal"); - tree.AddChild("horse", "mammal"); - - tree.AddChild("fido", "dog"); - tree.AddChild("domestic cat", "cat"); - tree.AddChild("lion", "cat"); - tree.AddChild("tiger", "cat"); - tree.AddChild("felix", "domestic cat"); - tree.AddChild("socks", "domestic cat"); - - tree.AddChild("beetle", "insect"); - tree.AddChild("earwig", "insect"); - tree.AddChild("eagle", "bird"); - tree.AddChild("bluetit", "bird"); - tree.AddChild("sparrow", "bird"); - tree.AddChild("blackbird", "bird"); - tree.AddChild("emu", "bird"); - tree.AddChild("crow", "bird"); - - tree.DoLayout(dc); -} - -BEGIN_EVENT_TABLE(MyFrame, wxFrame) - EVT_MENU(TEST_QUIT, MyFrame::OnQuit) - EVT_MENU(TEST_ABOUT, MyFrame::OnAbout) - EVT_MENU(TEST_LEFT_RIGHT, MyFrame::OnLeftRight) - EVT_MENU(TEST_TOP_BOTTOM, MyFrame::OnTopBottom) - EVT_CLOSE(MyFrame::OnCloseWindow) -END_EVENT_TABLE() - -// Define my frame constructor -MyFrame::MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size): - wxFrame(parent, -1, title, pos, size) -{ -} - -void MyFrame::OnQuit(wxCommandEvent& event) -{ - Close(TRUE); -} - -void MyFrame::OnLeftRight(wxCommandEvent& event) -{ - if (myTree) - { - myTree->SetOrientation(FALSE); - wxClientDC dc(canvas); - wxFont font(10, wxROMAN, wxNORMAL, wxBOLD); - dc.SetFont(font); - wxGetApp().TreeTest(*myTree, dc); - canvas->Refresh(); - } -} - -void MyFrame::OnTopBottom(wxCommandEvent& event) -{ - if (myTree) - { - myTree->SetOrientation(TRUE); - wxClientDC dc(canvas); - wxFont font(10, wxROMAN, wxNORMAL, wxBOLD); - dc.SetFont(font); - wxGetApp().TreeTest(*myTree, dc); - canvas->Refresh(); - } -} - -void MyFrame::OnAbout(wxCommandEvent& event) -{ - (void)wxMessageBox("wxWindows tree library demo Vsn 2.0\nAuthor: Julian Smart (c) 1998", "About tree test"); -} - -void MyFrame::OnCloseWindow(wxCloseEvent& event) -{ - Destroy(); -} - -BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) - EVT_PAINT(MyCanvas::OnPaint) -END_EVENT_TABLE() - -// Define a constructor for my canvas -MyCanvas::MyCanvas(wxWindow *parent): - wxScrolledWindow(parent, -1) -{ - SetBackgroundColour(*wxWHITE); -} - -// Define the repainting behaviour -void MyCanvas::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - PrepareDC(dc); - if (myTree) - { - wxFont font(10, wxROMAN, wxNORMAL, wxBOLD); - dc.SetFont(font); - myTree->Draw(dc); - } -} - diff --git a/utils/wxtree/src/test.def b/utils/wxtree/src/test.def deleted file mode 100644 index 558ccc1235..0000000000 --- a/utils/wxtree/src/test.def +++ /dev/null @@ -1,8 +0,0 @@ -NAME Test -DESCRIPTION 'Tree Test' -EXETYPE WINDOWS -STUB 'WINSTUB.EXE' -CODE PRELOAD MOVEABLE DISCARDABLE -DATA PRELOAD MOVEABLE MULTIPLE -HEAPSIZE 1024 -STACKSIZE 16192 diff --git a/utils/wxtree/src/test.h b/utils/wxtree/src/test.h deleted file mode 100644 index b00660744e..0000000000 --- a/utils/wxtree/src/test.h +++ /dev/null @@ -1,54 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: test.h -// Purpose: wxTreeLayout sample -// Author: Julian Smart -// Modified by: -// Created: 7/4/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -// Define a new application -class MyApp: public wxApp -{ - public: - bool OnInit(); - void TreeTest(wxStoredTree& tree, wxDC& dc); -}; - -DECLARE_APP(MyApp) - -class MyCanvas; - -class MyFrame: public wxFrame -{ - public: - MyCanvas *canvas; - MyFrame(wxWindow *parent, const wxString& title, const wxPoint& pos, const wxSize& size); - - void OnCloseWindow(wxCloseEvent& event); - void OnQuit(wxCommandEvent& event); - void OnAbout(wxCommandEvent& event); - void OnLeftRight(wxCommandEvent& event); - void OnTopBottom(wxCommandEvent& event); - -DECLARE_EVENT_TABLE() -}; - -// Define a new canvas which can receive some events -class MyCanvas: public wxScrolledWindow -{ - public: - MyCanvas(wxWindow *frame); - void OnPaint(wxPaintEvent& event); - void OnEvent(wxMouseEvent& event); - void OnChar(wxKeyEvent& event); -DECLARE_EVENT_TABLE() -}; - -#define TEST_QUIT 1 -#define TEST_ABOUT 2 -#define TEST_LEFT_RIGHT 3 -#define TEST_TOP_BOTTOM 4 - diff --git a/utils/wxtree/src/test.rc b/utils/wxtree/src/test.rc deleted file mode 100644 index 41e6896e8e..0000000000 --- a/utils/wxtree/src/test.rc +++ /dev/null @@ -1,3 +0,0 @@ -tree_icn ICON "mondrian.ico" -#include "wx/msw/wx.rc" - diff --git a/utils/wxtree/src/wxtree.cpp b/utils/wxtree/src/wxtree.cpp deleted file mode 100644 index aed1afafed..0000000000 --- a/utils/wxtree/src/wxtree.cpp +++ /dev/null @@ -1,440 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: tree.h -// Purpose: wxTreeLayout class -// Author: Julian Smart -// Modified by: -// Created: 7/4/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifdef __GNUG__ -#pragma implementation "wxtree.h" -#endif - -// For compilers that support precompilation, includes "wx.h". -#include - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include -#endif - -#include "wxtree.h" - -/* - * Abstract tree - * - */ - -IMPLEMENT_ABSTRACT_CLASS(wxTreeLayout, wxObject) - -wxTreeLayout::wxTreeLayout() -{ - m_xSpacing = 16; - m_ySpacing = 20; - m_topMargin = 5; - m_leftMargin = 5; - m_orientation = FALSE; - m_parentNode = 0; -} - -void wxTreeLayout::DoLayout(wxDC& dc, long topId) -{ - if (topId != -1) - SetTopNode(topId); - - long actualTopId = GetTopNode(); - long id = actualTopId; - while (id != -1) - { - SetNodeX(id, 0); - SetNodeY(id, 0); - ActivateNode(id, FALSE); - id = GetNextNode(id); - } - m_lastY = m_topMargin; - m_lastX = m_leftMargin; - CalcLayout(actualTopId, 0, dc); -} - -void wxTreeLayout::Draw(wxDC& dc) -{ - dc.Clear(); - DrawBranches(dc); - DrawNodes(dc); -} - -void wxTreeLayout::DrawNodes(wxDC& dc) -{ - long id = GetTopNode(); - while (id != -1) - { - if (NodeActive(id)) - DrawNode(id, dc); - id = GetNextNode(id); - } -} - -void wxTreeLayout::DrawBranches(wxDC& dc) -{ - long id = GetTopNode(); - while (id != -1) - { - if (GetNodeParent(id) > -1) - { - long parent = GetNodeParent(id); - if (NodeActive(parent)) - DrawBranch(parent, id, dc); - } - id = GetNextNode(id); - } -} - -void wxTreeLayout::DrawNode(long id, wxDC& dc) -{ - char buf[80]; - wxString name(GetNodeName(id)); - if (name != "") - sprintf(buf, "%s", (const char*) name); - else - sprintf(buf, ""); - - long x = 80; - long y = 20; - dc.GetTextExtent(buf, &x, &y); - dc.DrawText(buf, GetNodeX(id), (long)(GetNodeY(id) - (y/2.0))); -} - -void wxTreeLayout::DrawBranch(long from, long to, wxDC& dc) -{ - long w, h; - GetNodeSize(from, &w, &h, dc); - dc.DrawLine(GetNodeX(from)+w, GetNodeY(from), - GetNodeX(to), GetNodeY(to)); -} - -void wxTreeLayout::Initialize(void) -{ -} - -void wxTreeLayout::GetNodeSize(long id, long *x, long *y, wxDC& dc) -{ - wxString name(GetNodeName(id)); - if (name != "") - dc.GetTextExtent(name, x, y); - else - { - *x = 70; *y = 20; - } -} - -void wxTreeLayout::CalcLayout(long nodeId, int level, wxDC& dc) -{ - wxList children; - GetChildren(nodeId, children); - int n = children.Number(); - - if (m_orientation == FALSE) - { - // Left to right - // X Calculations - if (level == 0) - SetNodeX(nodeId, m_leftMargin); - else - { - long x = 0; - long y = 0; - long parentId = GetNodeParent(nodeId); - if (parentId != -1) - GetNodeSize(parentId, &x, &y, dc); - SetNodeX(nodeId, (long)(GetNodeX(parentId) + m_xSpacing + x)); - } - - wxNode *node = children.First(); - while (node) - { - CalcLayout((long)node->Data(), level+1, dc); - node = node->Next(); - } - - // Y Calculations - long averageY; - ActivateNode(nodeId, TRUE); - - if (n > 0) - { - averageY = 0; - node = children.First(); - while (node) - { - averageY += GetNodeY((long)node->Data()); - node = node->Next(); - } - averageY = averageY / n; - SetNodeY(nodeId, averageY); - } - else - { - SetNodeY(nodeId, m_lastY); - long x, y; - GetNodeSize(nodeId, &x, &y, dc); - - m_lastY = m_lastY + y + m_ySpacing; - } - } - else - { - // Top to bottom - - // Y Calculations - if (level == 0) - SetNodeY(nodeId, m_topMargin); - else - { - long x = 0; - long y = 0; - long parentId = GetNodeParent(nodeId); - if (parentId != -1) - GetNodeSize(parentId, &x, &y, dc); - SetNodeY(nodeId, (long)(GetNodeY(parentId) + m_ySpacing + y)); - } - - wxNode *node = children.First(); - while (node) - { - CalcLayout((long)node->Data(), level+1, dc); - node = node->Next(); - } - - // X Calculations - long averageX; - ActivateNode(nodeId, TRUE); - - if (n > 0) - { - averageX = 0; - node = children.First(); - while (node) - { - averageX += GetNodeX((long)node->Data()); - node = node->Next(); - } - averageX = averageX / n; - SetNodeX(nodeId, averageX); - } - else - { - SetNodeX(nodeId, m_lastX); - long x, y; - GetNodeSize(nodeId, &x, &y, dc); - - m_lastX = m_lastX + x + m_xSpacing; - } - } -} - -/* - * Tree with storage - * - */ - -IMPLEMENT_DYNAMIC_CLASS(wxStoredTree, wxTreeLayout) - -wxStoredTree::wxStoredTree(int n):wxTreeLayout() -{ - m_nodes = NULL; - m_maxNodes = 0; - Initialize(n); -} - -wxStoredTree::~wxStoredTree(void) -{ - if (m_nodes) - delete[] m_nodes; -} - -void wxStoredTree::Initialize(int n) -{ - m_maxNodes = n; - wxTreeLayout::Initialize(); - if (m_nodes) delete[] m_nodes; - m_nodes = new wxStoredNode[m_maxNodes]; - int i; - for (i = 0; i < n; i++) - { - m_nodes[i].m_name = ""; - m_nodes[i].m_active = FALSE; - m_nodes[i].m_parentId = -1; - m_nodes[i].m_x = 0; - m_nodes[i].m_y = 0; - } - m_num = 0; -} - -long wxStoredTree::AddChild(const wxString& name, const wxString& parent) -{ - if (m_num < (m_maxNodes -1 )) - { - long i = -1; - if (parent != "") - i = NameToId(parent); - else m_parentNode = m_num; - - m_nodes[m_num].m_parentId = i; - m_nodes[m_num].m_name = name; - m_nodes[m_num].m_x = m_nodes[m_num].m_y = 0; - m_nodes[m_num].m_clientData = 0; - m_num ++; - - return (m_num - 1); - } - else - return -1; -} - -long wxStoredTree::NameToId(const wxString& name) -{ - long i; - for (i = 0; i < m_num; i++) - if (name == m_nodes[i].m_name) - return i; - return -1; -} - -void wxStoredTree::GetChildren(long id, wxList& list) -{ - long currentId = GetTopNode(); - while (currentId != -1) - { - if (id == GetNodeParent(currentId)) - list.Append((wxObject *)currentId); - currentId = GetNextNode(currentId); - } -} - -wxStoredNode* wxStoredTree::GetNode(long idx) const -{ - wxASSERT(idx < m_num); - - return &m_nodes[idx]; -}; - -long wxStoredTree::GetNodeX(long id) -{ - wxASSERT(id < m_num); - - return (long)m_nodes[id].m_x; -} - -long wxStoredTree::GetNodeY(long id) -{ - wxASSERT(id < m_num); - - return (long)m_nodes[id].m_y; -} - -void wxStoredTree::SetNodeX(long id, long x) -{ - wxASSERT(id < m_num); - - m_nodes[id].m_x = (int)x; -} - -void wxStoredTree::SetNodeY(long id, long y) -{ - wxASSERT(id < m_num); - - m_nodes[id].m_y = (int)y; -} - -void wxStoredTree::SetNodeName(long id, const wxString& name) -{ - wxASSERT(id < m_num); - - m_nodes[id].m_name = name; -} - -wxString wxStoredTree::GetNodeName(long id) -{ - wxASSERT(id < m_num); - - return m_nodes[id].m_name; -} - -long wxStoredTree::GetNodeParent(long id) -{ - if (id != -1) - { - wxASSERT(id < m_num); - - return m_nodes[id].m_parentId; - } - else - return -1; -} - -long wxStoredTree::GetNextNode(long id) -{ - wxASSERT(id < m_num); - - if ((id != -1) && (id < (m_num - 1))) - return id + 1; - else - return -1; -} - -void wxStoredTree::SetClientData(long id, long clientData) -{ - wxASSERT(id < m_num); - - m_nodes[id].m_clientData = clientData; -} - -long wxStoredTree::GetClientData(long id) const -{ - wxASSERT(id < m_num); - - return m_nodes[id].m_clientData; -} - -void wxStoredTree::ActivateNode(long id, bool active) -{ - wxASSERT(id < m_num); - - m_nodes[id].m_active = active; -} - -bool wxStoredTree::NodeActive(long id) -{ - wxASSERT(id < m_num); - - return m_nodes[id].m_active; -} - -wxString wxStoredTree::HitTest(wxMouseEvent& event, wxDC& dc) -{ - long x, y; - event.Position(&x, &y); - - int i; - for (i = 0; i < m_maxNodes; i++) - { - wxStoredNode* item = &m_nodes[i]; - - long width, height; - dc.GetTextExtent(m_nodes[i].m_name, &width, &height); - - if ( (x >= (m_nodes[i].m_x-10)) && (x < (m_nodes[i].m_x + width+10)) && - (y >= m_nodes[i].m_y-10) && (y < (m_nodes[i].m_y + height+10)) ) - { - return m_nodes[i].m_name; - } - } - - return wxString(""); -} diff --git a/utils/wxtree/src/wxtree.h b/utils/wxtree/src/wxtree.h deleted file mode 100644 index 538e9e0891..0000000000 --- a/utils/wxtree/src/wxtree.h +++ /dev/null @@ -1,135 +0,0 @@ -/////////////////////////////////////////////////////////////////////////////// -// Name: tree.h -// Purpose: wxTreeLayout class -// Author: Julian Smart -// Modified by: -// Created: 7/4/98 -// RCS-ID: $Id$ -// Copyright: (c) 1998 Julian Smart -// Licence: wxWindows licence -/////////////////////////////////////////////////////////////////////////////// - -#ifndef _WXTREE_H_ -#define _WXTREE_H_ - -#ifdef __GNUG__ -#pragma interface "wxtree.h" -#endif - -#include - -class wxTreeLayout: public wxObject -{ - DECLARE_ABSTRACT_CLASS(wxTreeLayout) - - public: - wxTreeLayout(); - - // Redefine these - virtual void GetChildren(long id, wxList& list) = 0; - virtual long GetNextNode(long id) = 0; - virtual long GetNodeParent(long id) = 0; - virtual long GetNodeX(long id) = 0; - virtual long GetNodeY(long id) = 0; - virtual void SetNodeX(long id, long x) = 0; - virtual void SetNodeY(long id, long y) = 0; - virtual void ActivateNode(long id, bool active) = 0; - virtual bool NodeActive(long id) = 0; - - // Optional redefinition - void Initialize(void); - inline virtual void SetNodeName(long id, const wxString& name) {} - inline virtual wxString GetNodeName(long id) { return wxString(""); } - virtual void GetNodeSize(long id, long *x, long *y, wxDC& dc); - virtual void Draw(wxDC& dc); - virtual void DrawNodes(wxDC& dc); - virtual void DrawBranches(wxDC& dc); - virtual void DrawNode(long id, wxDC& dc); - virtual void DrawBranch(long from, long to, wxDC& dc); - - // Don't redefine - virtual void DoLayout(wxDC& dc, long topNode = -1); - - // Accessors -- don't redefine - inline void SetTopNode(long id) { m_parentNode = id; } - inline long GetTopNode(void) const { return m_parentNode; } - inline void SetSpacing(long x, long y) { m_xSpacing = x; m_ySpacing = y; } - inline long GetXSpacing(void) const { return m_xSpacing; } - inline long GetYSpacing(void) const { return m_ySpacing; } - inline void SetMargins(long x, long y) { m_leftMargin = x; m_topMargin = y; } - inline long GetTopMargin(void) const { return m_topMargin; } - inline long GetLeftMargin(void) const { return m_leftMargin; } - - inline bool GetOrientation(void) const { return m_orientation; } - inline void SetOrientation(bool or) { m_orientation = or; } - - private: - void CalcLayout(long node_id, int level, wxDC& dc); - -// Members - - protected: - long m_parentNode; - long m_lastY; - long m_lastX; - long m_xSpacing; - long m_ySpacing; - long m_topMargin; - long m_leftMargin; - bool m_orientation; // TRUE for top-to-bottom, FALSE for left-to-right -}; - -class wxStoredNode -{ - public: - wxString m_name; - long m_x, m_y; - long m_parentId; - bool m_active; - long m_clientData; -}; - -/* - * A version of wxTreeLayout with storage for nodes - */ - -class wxStoredTree: public wxTreeLayout -{ - DECLARE_DYNAMIC_CLASS(wxStoredTree) -public: - wxStoredTree(int noNodes = 200); - ~wxStoredTree(void); - void Initialize(int n); - - wxString HitTest(wxMouseEvent& event, wxDC& dc); - wxStoredNode* GetNode(long id) const; - inline int GetNumNodes() const { return m_maxNodes; }; - inline int GetNodeCount() const { return m_num; }; - - virtual void GetChildren(long id, wxList& list); - virtual long GetNextNode(long id); - virtual long GetNodeParent(long id); - virtual long GetNodeX(long id); - virtual long GetNodeY(long id); - virtual void SetNodeX(long id, long x); - virtual void SetNodeY(long id, long y); - virtual void SetNodeName(long id, const wxString& name); - virtual wxString GetNodeName(long id); - virtual void ActivateNode(long id, bool active); - virtual bool NodeActive(long id); - virtual void SetClientData(long id, long clientData); - virtual long GetClientData(long id) const; - - virtual long AddChild(const wxString& name, const wxString& parent = ""); - virtual long NameToId(const wxString& name); - -// Data members -private: - wxStoredNode* m_nodes; - int m_num; - int m_maxNodes; -}; - -#endif - // _WXTREE_H_ - diff --git a/wx-config.in b/wx-config.in deleted file mode 100755 index 6c0f4262a8..0000000000 --- a/wx-config.in +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -exec_prefix_set=no - -usage="\ -Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]" - -if test $# -eq 0; then - echo "${usage}" 1>&2 - exit 1 -fi - -while test $# -gt 0; do - case "$1" in - -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - case $1 in - --prefix=*) - prefix=$optarg - if test $exec_prefix_set = no ; then - exec_prefix=$optarg - fi - ;; - --prefix) - echo $prefix - ;; - --exec-prefix=*) - exec_prefix=$optarg - exec_prefix_set=yes - ;; - --exec-prefix) - echo $exec_prefix - ;; - --version) - echo @WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@.@WX_RELEASE_NUMBER@ - ;; - --cflags) - if test @includedir@ != /usr/include ; then - if test @includedir@ != /usr/include/c++ ; then - includes=-I@includedir@ - fi - fi - includes="$includes -I@libdir@/wx/include" - echo $includes @WXDEBUG_DEFINE@ @TOOLKIT_DEF@ @TOOLKIT_INCLUDE@ - ;; - --libs) - if test @libdir@ != /usr/lib ; then - libs="-L@libdir@" - fi - echo $libs -l@WX_LIBRARY@ @EXTRA_LIBS@ - ;; - *) - echo "${usage}" 1>&2 - exit 1 - ;; - esac - shift -done - diff --git a/wxGTK.spec b/wxGTK.spec deleted file mode 100644 index 85ede51036..0000000000 --- a/wxGTK.spec +++ /dev/null @@ -1,59 +0,0 @@ -# Note that this is NOT a relocatable package -%define pref /usr -%define ver 2.1.0 -%define rel 6 - -Summary: The GTK+ 1.2 port of the wxWindows library -Name: wxGTK -Version: %{ver} -Release: %{rel} -Copyright: wxWindows Licence -Group: X11/Libraries -Source: ftp://wesley.informatik.uni-freiburg.de/pub/linux/wxxt/source/wxGTK-2.1.0-b6.tgz -URL: http://wesley.informatik.uni-freiburg.de/~wxxt/docs.html -Packager: Robert Roebling -Requires: gtk+ >= 1.2.1 -BuildRoot: /tmp/wxgtk_root - -# all packages providing an implementation of wxWindows library (regardless of -# the toolkit used) should provide the (virtual) wxwin package, this makes it -# possible to require wxwin instead of requiring "wxgtk or wxmotif or wxqt..." -Provides: wxwin - -%description -wxWindows is a free C++ library for cross-platform GUI development. -With wxWindows, you can create applications for different GUIs (GTK+, -Motif/LessTif, MS Windows, Mac) from the same source code. - -%prep -%setup -n wxGTK -./configure --prefix=%{pref} --with-threads - -%build -make - -%install -rm -rf $RPM_BUILD_ROOT -make prefix=$RPM_BUILD_ROOT%{pref} install - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -/sbin/ldconfig - -%postun -/sbin/ldconfig - -%files -%defattr (644, root, root, 755) -%doc COPYING.LIB INSTALL.txt LICENCE.txt README.txt SYMBOLS.txt TODO.txt -%dir %{pref}/include/wx -%{pref}/include/wx/* -%dir %{pref}/lib/wx -%{pref}/lib/wx/* -%dir %{pref}/share/wx -%{pref}/share/wx/* -%attr(755, -, -) %{pref}/lib/libwx_gtk* -%attr(755, -, -) %{pref}/bin/wx-config -